<?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>160629</bug_id>
          
          <creation_ts>2016-08-05 21:49:20 -0700</creation_ts>
          <short_desc>Compile ICU breaking iterators at build time rather than run time</short_desc>
          <delta_ts>2017-03-05 14:41:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>165940</dependson>
          <blocked>168207</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>jbedard</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mitz</cc>
    
    <cc>msaboff</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1218184</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-05 21:49:20 -0700</bug_when>
    <thetext>Compile ICU breaking iterators at build time rather than run time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218185</commentid>
    <comment_count>1</comment_count>
      <attachid>285480</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-05 21:52:17 -0700</bug_when>
    <thetext>Created attachment 285480
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218222</commentid>
    <comment_count>2</comment_count>
      <attachid>285484</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-05 23:52:28 -0700</bug_when>
    <thetext>Created attachment 285484
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218227</commentid>
    <comment_count>3</comment_count>
      <attachid>285485</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-06 01:02:39 -0700</bug_when>
    <thetext>Created attachment 285485
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218228</commentid>
    <comment_count>4</comment_count>
      <attachid>285486</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-06 01:12:44 -0700</bug_when>
    <thetext>Created attachment 285486
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218231</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-06 01:50:54 -0700</bug_when>
    <thetext>Attachment 285486 did not pass style-queue:

ERROR: Source/WTF/icu/unicode/uchriter.h:8:  #ifndef header guard has wrong style, please use: uchriter_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:11:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/uchriter.h:18:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:44:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:59:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:60:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:78:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:79:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:80:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:81:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:90:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:96:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:106:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:107:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:117:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:124:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:133:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:142:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:152:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:163:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:173:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:191:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:201:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:214:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:221:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:228:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:237:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:247:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:259:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:280:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:289:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:298:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:309:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:341:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:350:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:357:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:364:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:371:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:376:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:20:  #ifndef header guard has wrong style, please use: brkiter_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:45:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:48:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:50:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:166:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:174:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:194:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:204:  The parameter name &quot;it&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:291:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:474:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:475:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:486:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:508:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:509:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  The parameter name &quot;locale&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:556:  The parameter name &quot;key&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:572:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:581:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:611:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:612:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:613:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:614:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:627:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:655:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WTF/icu/unicode/umisc.h:15:  #ifndef header guard has wrong style, please use: umisc_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/umisc.h:37:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:42:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:47:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:29:  #ifndef header guard has wrong style, please use: locid_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/locid.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:267:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:268:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:268:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:269:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:270:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:285:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
ERROR: Source/WTF/icu/unicode/locid.h:303:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:313:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Extra space between UErrorCode&amp; and success  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:494:  Extra space between uint32_t and getLCID  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:522:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:538:  Extra space between UnicodeString&amp; and dispLang  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:538:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Extra space between UnicodeString&amp; and dispScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:594:  Extra space between UnicodeString&amp; and dispCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:594:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:614:  Extra space between UnicodeString&amp; and dispVar  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:614:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space between UnicodeString&amp; and ge
tDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:642:  Extra space between UnicodeString&amp; and name  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:642:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:648:  Extra space between int32_t and hashCode  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:736:  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/WTF/icu/unicode/locid.h:808:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:14:  #ifndef header guard has wrong style, please use: rbbi_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:39:  Extra space between class and RuleBasedBreakIteratorTables  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:40:  Extra space between class and BreakIterator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:41:  Extra space between class and RBBIDataWrapper  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:42:  Extra space between class and UStack  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:43:  Extra space between class and LanguageBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:44:  Extra space between class and UnhandledEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:72:  Extra space between UText and *fText  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:79:  Extra space between CharacterIterator and *fCharIter  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:99:  Extra space between RBBIDataWrapper and *fData  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:104:  Extra space between int32_t and fLastRuleStatusIndex  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:112:  Extra space between UBool and fLastStatusIndexValid  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:119:  Extra space between uint32_t and fDictionaryCharCount  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:128:  Extra space between int32_t* and fCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:134:  Extra space between int32_t and fNumCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:141:  Extra space between int32_t and fPositionInCache  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:150:  Extra space between UStack and *fLanguageBreakEngines  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:159:  Extra space between UnhandledEngine and *fUnhandledBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:166:  Extra space between int32_t and fBreakType  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:196:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;dontAdopt&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:240:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Extra space between UParseError and &amp;parseError  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  The parameter name &quot;parseError&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Extra space between uint32_t and ruleLength  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:374:  Extra space between virtual and CharacterIterator&amp;  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:391:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:423:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:449:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:614:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:697:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:759:  The parameter name &quot;c&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:774:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:19:  #ifndef header guard has wrong style, please use: ucasemap_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/ucasemap.h:22:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:23:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:270:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:271:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:300:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:301:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:302:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:329:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:330:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:331:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:381:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:419:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:420:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:421:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:10:  #ifndef header guard has wrong style, please use: chariter_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:13:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:14:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:20:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:96:  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/WTF/icu/unicode/chariter.h:595:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:608:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:642:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:671:  Extra space between int32_t and pos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:677:  Extra space between int32_t and begin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:683:  Extra space between int32_t and end  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:687:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:692:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:697:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:702:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:707:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:712:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:717:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:18:  #ifndef header guard has wrong style, please use: schriter_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/schriter.h:21:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:29:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:52:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:63:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Extra space between int32_t and textBegin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Extra space between int32_t and textEnd  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:95:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:101:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:111:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:112:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:122:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:138:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:147:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:154:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:161:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:168:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:176:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Extra space between UnicodeString and text  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:17:  #ifndef header guard has wrong style, please use: udata_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/udata.h:20:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/udata.h:39:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:173:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:200:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  The parameter name &quot;isAcceptable&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:253:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:361:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:392:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:426:  The parameter name &quot;access&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 249 in 28 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>1218234</commentid>
    <comment_count>6</comment_count>
      <attachid>285487</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-06 01:51:45 -0700</bug_when>
    <thetext>Created attachment 285487
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218245</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-08-06 08:19:04 -0700</bug_when>
    <thetext>Will be this result in problems whenever ICU compiled format changes? There are multiple scenarios in which ICU and WebKit are not interlocked. 

My recollection is that compilation is very fast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218249</commentid>
    <comment_count>8</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-06 10:35:31 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Will be this result in problems whenever ICU compiled format changes? There
&gt; are multiple scenarios in which ICU and WebKit are not interlocked. 

No, because the rules are compiled as a build step. The build step uses the system&apos;s ICU. (Just like how compiling C++ uses the system&apos;s compiler.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218251</commentid>
    <comment_count>9</comment_count>
      <attachid>285490</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-06 11:11:51 -0700</bug_when>
    <thetext>Created attachment 285490
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218257</commentid>
    <comment_count>10</comment_count>
      <attachid>285492</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-06 12:18:04 -0700</bug_when>
    <thetext>Created attachment 285492
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218258</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-08-06 12:26:25 -0700</bug_when>
    <thetext>No, because the rules are compiled as a build step. The build step uses the system&apos;s ICU.

&gt; This is actually exactly what I expect to cause issues.

Continuing the discussion in rdar://problem/7131057.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218262</commentid>
    <comment_count>12</comment_count>
      <attachid>285492</attachid>
    <who name="">mitz</who>
    <bug_when>2016-08-06 12:34:54 -0700</bug_when>
    <thetext>Comment on attachment 285492
WIP

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

&gt; Source/WTF/wtf/DerivedSources.make:25
&gt; +# Copyright (C) 2016 Apple Inc. All rights reserved.
&gt; +#
&gt; +# Redistribution and use in source and binary forms, with or without
&gt; +# modification, are permitted provided that the following conditions
&gt; +# are met:
&gt; +#
&gt; +# 1.  Redistributions of source code must retain the above copyright
&gt; +#     notice, this list of conditions and the following disclaimer.
&gt; +# 2.  Redistributions in binary form must reproduce the above copyright
&gt; +#     notice, this list of conditions and the following disclaimer in the
&gt; +#     documentation and/or other materials provided with the distribution.
&gt; +# 3.  Neither the name of Apple Inc. (&quot;Apple&quot;) nor the names of
&gt; +#     its contributors may be used to endorse or promote products derived
&gt; +#     from this software without specific prior written permission.
&gt; +#
&gt; +# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS &quot;AS IS&quot; AND ANY
&gt; +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
&gt; +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
&gt; +# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
&gt; +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
&gt; +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
&gt; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
&gt; +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
&gt; +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
&gt; +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

This doesn’t appear to be the right license.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218263</commentid>
    <comment_count>13</comment_count>
      <attachid>285492</attachid>
    <who name="">mitz</who>
    <bug_when>2016-08-06 12:38:05 -0700</bug_when>
    <thetext>Comment on attachment 285492
WIP

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

&gt; Source/WTF/ChangeLog:10
&gt; +        * wtf/genbrk: Added.

Adding prebuilt binaries to the source tree is incompatible with how Apple’s internal build system works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218278</commentid>
    <comment_count>14</comment_count>
      <attachid>285499</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-06 15:14:06 -0700</bug_when>
    <thetext>Created attachment 285499
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218279</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-06 15:17:00 -0700</bug_when>
    <thetext>Attachment 285499 did not pass style-queue:

ERROR: Source/WTF/icu/unicode/uchriter.h:8:  #ifndef header guard has wrong style, please use: uchriter_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:11:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/uchriter.h:18:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:44:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:59:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:60:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:78:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:79:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:80:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:81:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:90:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:96:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:106:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:107:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:117:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:124:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:133:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:142:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:152:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:163:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:173:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:191:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:201:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:214:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:221:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:228:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:237:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:247:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:259:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:280:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:289:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:298:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:309:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:341:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:350:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:357:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:364:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:371:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:376:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:20:  #ifndef header guard has wrong style, please use: brkiter_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:45:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:48:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:50:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:166:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:174:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:194:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:204:  The parameter name &quot;it&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:291:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:474:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:475:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:486:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:508:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:509:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  The parameter name &quot;locale&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:556:  The parameter name &quot;key&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:572:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:581:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:611:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:612:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:613:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:614:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:627:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:655:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WTF/icu/unicode/umisc.h:15:  #ifndef header guard has wrong style, please use: umisc_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/umisc.h:37:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:42:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:47:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:29:  #ifndef header guard has wrong style, please use: locid_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/locid.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:267:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:268:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:268:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:269:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:270:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:285:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
ERROR: Source/WTF/icu/unicode/locid.h:303:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:313:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Extra space between UErrorCode&amp; and success  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:494:  Extra space between uint32_t and getLCID  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:522:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:538:  Extra space between UnicodeString&amp; and dispLang  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:538:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Extra space between UnicodeString&amp; and dispScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:594:  Extra space between UnicodeString&amp; and dispCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:594:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:614:  Extra space between UnicodeString&amp; and dispVar  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:614:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:642:  Extra space between UnicodeString&amp; and name  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:642:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:648:  Extra space between int32_t and hashCode  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:736:  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/WTF/icu/unicode/locid.h:808:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:14:  #ifndef header guard has wrong style, please use: rbbi_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:39:  Extra space between class and RuleBasedBreakIteratorTables  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:40:  Extra space between class and BreakIterator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:41:  Extra space between class and RBBIDataWrapper  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:42:  Extra space between class and UStack  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:43:  Extra space between class and LanguageBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:44:  Extra space between class and UnhandledEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:72:  Extra space between UText and *fText  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:79:  Extra space between CharacterIterator and *fCharIter  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:99:  Extra space between RBBIDataWrapper and *fData  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:104:  Extra space between int32_t and fLastRuleStatusIndex  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:112:  Extra space between UBool and fLastStatusIndexValid  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:119:  Extra space between uint32_t and fDictionaryCharCount  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:128:  Extra space between int32_t* and fCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:134:  Extra space between int32_t and fNumCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:141:  Extra space between int32_t and fPositionInCache  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:150:  Extra space between UStack and *fLanguageBreakEngines  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:159:  Extra space between UnhandledEngine and *fUnhandledBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:166:  Extra space between int32_t and fBreakType  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:196:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;dontAdopt&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:240:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Extra space between UParseError and &amp;parseError  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  The parameter name &quot;parseError&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Extra space between uint32_t and ruleLength  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:374:  Extra space between virtual and CharacterIterator&amp;  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:391:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:423:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:449:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:614:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:697:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:759:  The parameter name &quot;c&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:774:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:19:  #ifndef header guard has wrong style, please use: ucasemap_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/ucasemap.h:22:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:23:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:270:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:271:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:300:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:301:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:302:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:329:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:330:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:331:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:381:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:419:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:420:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:421:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:10:  #ifndef header guard has wrong style, please use: chariter_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:13:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:14:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:20:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:96:  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/WTF/icu/unicode/chariter.h:595:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:608:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:642:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:671:  Extra space between int32_t and pos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:677:  Extra space between int32_t and begin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:683:  Extra space between int32_t and end  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:687:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:692:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:697:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:702:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:707:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:712:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:717:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:18:  #ifndef header guard has wrong style, please use: schriter_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/schriter.h:21:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:29:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:52:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:63:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Extra space between int32_t and textBegin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Extra space between int32_t and textEnd  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:95:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:101:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:111:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:112:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:122:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:138:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:147:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:154:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:161:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:168:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:176:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Extra space between UnicodeString and text  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/CMakeLists.txt:263:  Alphabetical sorting problem. &quot;wtf/text/BreakingRules/LineBreakIteratorUAX14LooseCJK.txt&quot; should be before &quot;wtf/text/BreakingRules/LineBreakIteratorUAX14NonCJK.txt&quot;.  [list/order] [5]
ERROR: Source/WTF/wtf/CMakeLists.txt:269:  Alphabetical sorting problem. &quot;wtf/text/BreakingRules/LineBreakIteratorEpilogue.txt&quot; should be before &quot;wtf/text/BreakingRules/LineBreakIteratorUAX14StrictNonCJK.txt&quot;.  [list/order] [5]
ERROR: Source/WTF/icu/unicode/udata.h:17:  #ifndef header guard has wrong style, please use: udata_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/udata.h:20:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/udata.h:39:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:173:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:200:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  The parameter name &quot;isAcceptable&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:253:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:361:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:392:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:426: 
 The parameter name &quot;access&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 251 in 31 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>1218280</commentid>
    <comment_count>16</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-06 15:18:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/7131057&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218287</commentid>
    <comment_count>17</comment_count>
      <attachid>285503</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-06 15:39:24 -0700</bug_when>
    <thetext>Created attachment 285503
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218288</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-06 15:41:31 -0700</bug_when>
    <thetext>Attachment 285503 did not pass style-queue:

ERROR: Source/WTF/icu/unicode/uchriter.h:8:  #ifndef header guard has wrong style, please use: uchriter_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:11:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/uchriter.h:18:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:44:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:59:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:60:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:78:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:79:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:80:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:81:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:90:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:96:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:106:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:107:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:117:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:124:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:133:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:142:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:152:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:163:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:173:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:191:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:201:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:214:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:221:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:228:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:237:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:247:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:259:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:280:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:289:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:298:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:309:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:341:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:350:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:357:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:364:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:371:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:376:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:20:  #ifndef header guard has wrong style, please use: brkiter_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:45:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:48:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:50:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:166:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:174:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:194:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:204:  The parameter name &quot;it&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:291:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:474:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:475:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:486:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:508:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:509:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  The parameter name &quot;locale&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:556:  The parameter name &quot;key&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:572:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:581:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:611:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:612:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:613:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:614:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:627:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:655:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WTF/icu/unicode/umisc.h:15:  #ifndef header guard has wrong style, please use: umisc_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/umisc.h:37:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:42:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:47:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:29:  #ifndef header guard has wrong style, please use: locid_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/locid.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:267:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:268:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:268:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:269:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:270:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:285:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
ERROR: Source/WTF/icu/unicode/locid.h:303:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:313:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Extra space between UErrorCode&amp; and success  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:494:  Extra space between uint32_t and getLCID  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:522:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:538:  Extra space between UnicodeString&amp; and dispLang  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:538:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Extra space between UnicodeString&amp; and dispScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:594:  Extra space between UnicodeString&amp; and dispCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:594:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:614:  Extra space between UnicodeString&amp; and dispVar  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:614:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:642:  Extra space between UnicodeString&amp; and name  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:642:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:648:  Extra space between int32_t and hashCode  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:736:  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/WTF/icu/unicode/locid.h:808:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:14:  #ifndef header guard has wrong style, please use: rbbi_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:39:  Extra space between class and RuleBasedBreakIteratorTables  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:40:  Extra space between class and BreakIterator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:41:  Extra space between class and RBBIDataWrapper  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:42:  Extra space between class and UStack  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:43:  Extra space between class and LanguageBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:44:  Extra space between class and UnhandledEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:72:  Extra space between UText and *fText  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:79:  Extra space between CharacterIterator and *fCharIter  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:99:  Extra space between RBBIDataWrapper and *fData  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:104:  Extra space between int32_t and fLastRuleStatusIndex  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:112:  Extra space between UBool and fLastStatusIndexValid  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:119:  Extra space between uint32_t and fDictionaryCharCount  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:128:  Extra space between int32_t* and fCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:134:  Extra space between int32_t and fNumCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:141:  Extra space between int32_t and fPositionInCache  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:150:  Extra space between UStack and *fLanguageBreakEngines  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:159:  Extra space between UnhandledEngine and *fUnhandledBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:166:  Extra space between int32_t and fBreakType  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:196:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;dontAdopt&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:240:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Extra space between UParseError and &amp;parseError  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  The parameter name &quot;parseError&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Extra space between uint32_t and ruleLength  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:374:  Extra space between virtual and CharacterIterator&amp;  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:391:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:423:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:449:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:614:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:697:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:759:  The parameter name &quot;c&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:774:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:19:  #ifndef header guard has wrong style, please use: ucasemap_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/ucasemap.h:22:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:23:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:270:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:271:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:300:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:301:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:302:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:329:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:330:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:331:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:381:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:419:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:420:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:421:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:10:  #ifndef header guard has wrong style, please use: chariter_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:13:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:14:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:20:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:96:  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/WTF/icu/unicode/chariter.h:595:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:608:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:642:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:671:  Extra space between int32_t and pos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:677:  Extra space between int32_t and begin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:683:  Extra space between int32_t and end  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:687:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:692:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:697:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:702:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:707:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:712:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:717:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:18:  #ifndef header guard has wrong style, please use: schriter_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/schriter.h:21:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:29:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:52:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:63:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Extra space between int32_t and textBegin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Extra space between int32_t and textEnd  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:95:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:101:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:111:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:112:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:122:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:138:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:147:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:154:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:161:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:168:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:176:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Extra space between UnicodeString and text  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/CMakeLists.txt:263:  Alphabetical sorting problem. &quot;text/BreakingRules/LineBreakIteratorUAX14LooseCJK.txt&quot; should be before &quot;text/BreakingRules/LineBreakIteratorUAX14NonCJK.txt&quot;.  [list/order] [5]
ERROR: Source/WTF/wtf/CMakeLists.txt:269:  Alphabetical sorting problem. &quot;text/BreakingRules/LineBreakIteratorEpilogue.txt&quot; should be before &quot;text/BreakingRules/LineBreakIteratorUAX14StrictNonCJK.txt&quot;.  [list/order] [5]
ERROR: Source/WTF/icu/unicode/udata.h:17:  #ifndef header guard has wrong style, please use: udata_h  [build/header_guard] [5]
ERROR: Source/WTF/icu/unicode/udata.h:20:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/udata.h:39:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:173:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:200:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  The parameter name &quot;isAcceptable&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:253:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:361:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:392:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:426:  The parameter n
ame &quot;access&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 251 in 31 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>1218295</commentid>
    <comment_count>19</comment_count>
      <attachid>285503</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-06 16:28:04 -0700</bug_when>
    <thetext>Comment on attachment 285503
WIP

Attachment 285503 did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/1825839

New failing tests:
editing/selection/move-by-word-visually-multi-space.html
editing/selection/move-by-word-visually-multi-line.html
editing/selection/move-left-right.html
editing/selection/move-by-character-brute-force.html
editing/selection/move-by-word-visually-mac.html
editing/selection/move-by-word-visually-single-space-one-element.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218296</commentid>
    <comment_count>20</comment_count>
      <attachid>285507</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-06 16:28:09 -0700</bug_when>
    <thetext>Created attachment 285507
Archive of layout-test-results from ews103 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218297</commentid>
    <comment_count>21</comment_count>
      <attachid>285503</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-06 16:36:50 -0700</bug_when>
    <thetext>Comment on attachment 285503
WIP

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

New failing tests:
editing/selection/move-by-word-visually-multi-space.html
editing/selection/move-by-word-visually-multi-line.html
editing/selection/move-by-character-brute-force.html
editing/selection/move-by-word-visually-single-space-inline-element.html
editing/selection/move-by-word-visually-mac.html
editing/selection/move-by-word-visually-single-space-one-element.html
editing/selection/caret-at-bidi-boundary.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218298</commentid>
    <comment_count>22</comment_count>
      <attachid>285508</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-06 16:36:55 -0700</bug_when>
    <thetext>Created attachment 285508
Archive of layout-test-results from ews107 for mac-yosemite-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews107  Port: mac-yosemite-wk2  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218301</commentid>
    <comment_count>23</comment_count>
      <attachid>285503</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-06 16:49:53 -0700</bug_when>
    <thetext>Comment on attachment 285503
WIP

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

New failing tests:
editing/selection/move-by-word-visually-multi-space.html
editing/selection/move-by-word-visually-multi-line.html
editing/selection/move-left-right.html
editing/selection/move-by-character-brute-force.html
editing/selection/move-by-word-visually-mac.html
editing/selection/move-by-word-visually-single-space-one-element.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218302</commentid>
    <comment_count>24</comment_count>
      <attachid>285509</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-08-06 16:49:58 -0700</bug_when>
    <thetext>Created attachment 285509
Archive of layout-test-results from ews114 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews114  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218355</commentid>
    <comment_count>25</comment_count>
      <attachid>285524</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-07 01:05:06 -0700</bug_when>
    <thetext>Created attachment 285524
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218356</commentid>
    <comment_count>26</comment_count>
      <attachid>285525</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-07 02:17:14 -0700</bug_when>
    <thetext>Created attachment 285525
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218454</commentid>
    <comment_count>27</comment_count>
      <attachid>285525</attachid>
    <who name="">mitz</who>
    <bug_when>2016-08-07 21:05:47 -0700</bug_when>
    <thetext>Comment on attachment 285525
WIP

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

&gt; Source/WTF/WTF.xcodeproj/project.pbxproj:1638
&gt; +				1CD187881D55698800CC7DEC /* PBXTargetDependency */,
&gt;  				65AFA28E1630B99E003D723C /* PBXTargetDependency */,

Apple’s internal build system forces the use of the same SDK for a target and for its dependencies, so this setup is incompatible with how Apple builds WTF for iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218470</commentid>
    <comment_count>28</comment_count>
      <attachid>285560</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-08 01:50:23 -0700</bug_when>
    <thetext>Created attachment 285560
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218471</commentid>
    <comment_count>29</comment_count>
      <attachid>285561</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-08 01:53:04 -0700</bug_when>
    <thetext>Created attachment 285561
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218619</commentid>
    <comment_count>30</comment_count>
      <attachid>285604</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-08 16:29:03 -0700</bug_when>
    <thetext>Created attachment 285604
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218629</commentid>
    <comment_count>31</comment_count>
      <attachid>285607</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-08 16:56:47 -0700</bug_when>
    <thetext>Created attachment 285607
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218634</commentid>
    <comment_count>32</comment_count>
      <attachid>285609</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-08 17:02:26 -0700</bug_when>
    <thetext>Created attachment 285609
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218640</commentid>
    <comment_count>33</comment_count>
      <attachid>285612</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-08 17:16:17 -0700</bug_when>
    <thetext>Created attachment 285612
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219406</commentid>
    <comment_count>34</comment_count>
      <attachid>285853</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-11 14:03:35 -0700</bug_when>
    <thetext>Created attachment 285853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259885</commentid>
    <comment_count>35</comment_count>
      <attachid>297121</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-14 13:36:04 -0800</bug_when>
    <thetext>Created attachment 297121
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259894</commentid>
    <comment_count>36</comment_count>
      <attachid>297122</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-14 14:01:10 -0800</bug_when>
    <thetext>Created attachment 297122
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259898</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-14 14:05:06 -0800</bug_when>
    <thetext>Attachment 297122 did not pass style-queue:


ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 1 in 23 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>1259904</commentid>
    <comment_count>38</comment_count>
      <attachid>297126</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-14 14:24:01 -0800</bug_when>
    <thetext>Created attachment 297126
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259905</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-14 14:26:59 -0800</bug_when>
    <thetext>Attachment 297126 did not pass style-queue:

ERROR: Source/WTF/icu/unicode/uchriter.h:11:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/uchriter.h:18:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:44:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:59:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:60:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:78:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:79:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:80:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:81:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:90:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:96:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:106:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:107:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:117:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:124:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:133:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:142:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:152:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:163:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:173:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:191:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:201:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:214:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:221:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:228:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:237:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:247:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:259:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:280:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:289:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:298:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:309:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:341:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:350:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:357:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:364:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:371:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:376:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:45:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:48:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:50:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:166:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:174:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:194:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:204:  The parameter name &quot;it&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:291:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:474:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:475:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:486:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:508:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:509:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  The parameter name &quot;locale&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:556:  The parameter name &quot;key&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:572:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:581:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:611:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:612:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:613:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:614:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:627:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:655:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WTF/icu/unicode/umisc.h:37:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:42:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:47:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:267:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:268:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:268:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:269:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:270:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:285:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
ERROR: Source/WTF/icu/unicode/locid.h:303:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:313:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Extra space between UErrorCode&amp; and success  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:494:  Extra space between uint32_t and getLCID  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:522:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:538:  Extra space between UnicodeString&amp; and dispLang  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:538:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Extra space between UnicodeString&amp; and dispScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:594:  Extra space between UnicodeString&amp; and dispCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:594:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:614:  Extra space between UnicodeString&amp; and dispVar  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:614:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:642:  Extra space between UnicodeString&amp; and name  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:642:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:648:  Extra space between int32_t and hashCode  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/
unicode/locid.h:736:  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/WTF/icu/unicode/locid.h:808:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:39:  Extra space between class and RuleBasedBreakIteratorTables  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:40:  Extra space between class and BreakIterator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:41:  Extra space between class and RBBIDataWrapper  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:42:  Extra space between class and UStack  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:43:  Extra space between class and LanguageBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:44:  Extra space between class and UnhandledEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:72:  Extra space between UText and *fText  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:79:  Extra space between CharacterIterator and *fCharIter  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:99:  Extra space between RBBIDataWrapper and *fData  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:104:  Extra space between int32_t and fLastRuleStatusIndex  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:112:  Extra space between UBool and fLastStatusIndexValid  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:119:  Extra space between uint32_t and fDictionaryCharCount  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:128:  Extra space between int32_t* and fCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:134:  Extra space between int32_t and fNumCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:141:  Extra space between int32_t and fPositionInCache  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:150:  Extra space between UStack and *fLanguageBreakEngines  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:159:  Extra space between UnhandledEngine and *fUnhandledBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:166:  Extra space between int32_t and fBreakType  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:196:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;dontAdopt&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:240:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Extra space between UParseError and &amp;parseError  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  The parameter name &quot;parseError&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Extra space between uint32_t and ruleLength  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:374:  Extra space between virtual and CharacterIterator&amp;  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:391:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:423:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:449:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:614:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:697:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:759:  The parameter name &quot;c&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:774:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:22:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:23:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:270:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:271:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:300:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:301:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:302:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:329:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:330:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:331:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:381:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:419:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:420:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:421:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:13:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:14:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:20:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:96:  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/WTF/icu/unicode/chariter.h:595:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:608:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:642:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:671:  Extra space between int32_t and pos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:677:  Extra space between int32_t and begin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:683:  Extra space between int32_t and end  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:687:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:692:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:697:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:702:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:707:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:712:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:717:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:21:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:29:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:52:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:63:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Extra space between int32_t and textBegin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Extra space between int32_t and textEnd  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:95:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:101:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:111:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:112:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:122:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:138:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:147:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:154:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:161:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:168:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:176:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Extra space between UnicodeString and text  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:20:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/udata.h:39:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:173:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:200:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  The parameter name &quot;isAcceptable&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:253:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:361:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:392:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:426:  The parameter name &quot;access&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 240 in 32 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>1259922</commentid>
    <comment_count>40</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-14 15:04:16 -0800</bug_when>
    <thetext>Just verified that the compile rules work on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259964</commentid>
    <comment_count>41</comment_count>
      <attachid>297143</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-14 16:31:52 -0800</bug_when>
    <thetext>Created attachment 297143
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259965</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-14 16:33:42 -0800</bug_when>
    <thetext>Attachment 297143 did not pass style-queue:

ERROR: Source/WTF/icu/unicode/uchriter.h:11:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/uchriter.h:18:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:44:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:59:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:60:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:78:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:79:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:80:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:81:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:90:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:96:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:106:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:107:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:117:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:124:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:133:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:142:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:152:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:163:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:173:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:191:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:201:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:214:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:221:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:228:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:237:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:247:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:259:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:280:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:289:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:298:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:309:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:341:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:350:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:357:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:364:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:371:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:376:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:45:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:48:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:50:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:166:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:174:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:194:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:204:  The parameter name &quot;it&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:291:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:474:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:475:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:486:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:508:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:509:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  The parameter name &quot;locale&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:556:  The parameter name &quot;key&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:572:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:581:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:611:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:612:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:613:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:614:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:627:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:655:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WTF/icu/unicode/umisc.h:37:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:42:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:47:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:267:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:268:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:268:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:269:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:270:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:285:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
ERROR: Source/WTF/icu/unicode/locid.h:303:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:313:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Extra space between UErrorCode&amp; and success  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:494:  Extra space between uint32_t and getLCID  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:522:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:538:  Extra space between UnicodeString&amp; and dispLang  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:538:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Extra space between UnicodeString&amp; and dispScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:594:  Extra space between UnicodeString&amp; and dispCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:594:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:614:  Extra space between UnicodeString&amp; and dispVar  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:614:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:642:  Extra space between UnicodeString&amp; and name  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:642:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:648:  Extra space between int32_t and hashCode  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/
unicode/locid.h:736:  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/WTF/icu/unicode/locid.h:808:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:39:  Extra space between class and RuleBasedBreakIteratorTables  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:40:  Extra space between class and BreakIterator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:41:  Extra space between class and RBBIDataWrapper  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:42:  Extra space between class and UStack  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:43:  Extra space between class and LanguageBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:44:  Extra space between class and UnhandledEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:72:  Extra space between UText and *fText  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:79:  Extra space between CharacterIterator and *fCharIter  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:99:  Extra space between RBBIDataWrapper and *fData  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:104:  Extra space between int32_t and fLastRuleStatusIndex  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:112:  Extra space between UBool and fLastStatusIndexValid  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:119:  Extra space between uint32_t and fDictionaryCharCount  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:128:  Extra space between int32_t* and fCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:134:  Extra space between int32_t and fNumCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:141:  Extra space between int32_t and fPositionInCache  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:150:  Extra space between UStack and *fLanguageBreakEngines  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:159:  Extra space between UnhandledEngine and *fUnhandledBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:166:  Extra space between int32_t and fBreakType  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:196:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;dontAdopt&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:240:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Extra space between UParseError and &amp;parseError  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  The parameter name &quot;parseError&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Extra space between uint32_t and ruleLength  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:374:  Extra space between virtual and CharacterIterator&amp;  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:391:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:423:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:449:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:614:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:697:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:759:  The parameter name &quot;c&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:774:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:22:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:23:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:270:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:271:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:300:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:301:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:302:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:329:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:330:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:331:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:381:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:419:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:420:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:421:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:13:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:14:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:20:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:96:  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/WTF/icu/unicode/chariter.h:595:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:608:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:642:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:671:  Extra space between int32_t and pos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:677:  Extra space between int32_t and begin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:683:  Extra space between int32_t and end  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:687:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:692:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:697:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:702:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:707:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:712:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:717:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:21:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:29:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:52:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:63:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Extra space between int32_t and textBegin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Extra space between int32_t and textEnd  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:95:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:101:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:111:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:112:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:122:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:138:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:147:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:154:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:161:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:168:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:176:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Extra space between UnicodeString and text  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:20:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/udata.h:39:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:173:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:200:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  The parameter name &quot;isAcceptable&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:253:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:361:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:392:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:426:  The parameter name &quot;access&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 240 in 32 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>1260006</commentid>
    <comment_count>43</comment_count>
      <attachid>297155</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-14 18:41:47 -0800</bug_when>
    <thetext>Created attachment 297155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260007</commentid>
    <comment_count>44</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-14 18:43:38 -0800</bug_when>
    <thetext>Attachment 297155 did not pass style-queue:

ERROR: Source/WTF/icu/unicode/uchriter.h:11:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/uchriter.h:18:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:44:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:59:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:60:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:78:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:79:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:80:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:81:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:90:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:96:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:106:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:107:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:117:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:124:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:133:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:142:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:152:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:163:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:173:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:191:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:201:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:214:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:221:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:228:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:237:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:247:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:259:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:280:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:289:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:298:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:309:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:341:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:350:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:357:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:364:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:371:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:376:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:45:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:48:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:50:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:166:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:174:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:194:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:204:  The parameter name &quot;it&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:291:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:474:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:475:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:486:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:508:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:509:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  The parameter name &quot;locale&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:556:  The parameter name &quot;key&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:572:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:581:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:611:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:612:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:613:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:614:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:627:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:655:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WTF/icu/unicode/umisc.h:37:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:42:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:47:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:267:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:268:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:268:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:269:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:270:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:285:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
ERROR: Source/WTF/icu/unicode/locid.h:303:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:313:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Extra space between UErrorCode&amp; and success  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:494:  Extra space between uint32_t and getLCID  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:522:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:538:  Extra space between UnicodeString&amp; and dispLang  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:538:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Extra space between UnicodeString&amp; and dispScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:594:  Extra space between UnicodeString&amp; and dispCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:594:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:614:  Extra space between UnicodeString&amp; and dispVar  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:614:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:642:  Extra space between UnicodeString&amp; and name  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:642:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:648:  Extra space between int32_t and hashCode  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/
unicode/locid.h:736:  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/WTF/icu/unicode/locid.h:808:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:39:  Extra space between class and RuleBasedBreakIteratorTables  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:40:  Extra space between class and BreakIterator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:41:  Extra space between class and RBBIDataWrapper  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:42:  Extra space between class and UStack  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:43:  Extra space between class and LanguageBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:44:  Extra space between class and UnhandledEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:72:  Extra space between UText and *fText  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:79:  Extra space between CharacterIterator and *fCharIter  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:99:  Extra space between RBBIDataWrapper and *fData  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:104:  Extra space between int32_t and fLastRuleStatusIndex  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:112:  Extra space between UBool and fLastStatusIndexValid  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:119:  Extra space between uint32_t and fDictionaryCharCount  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:128:  Extra space between int32_t* and fCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:134:  Extra space between int32_t and fNumCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:141:  Extra space between int32_t and fPositionInCache  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:150:  Extra space between UStack and *fLanguageBreakEngines  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:159:  Extra space between UnhandledEngine and *fUnhandledBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:166:  Extra space between int32_t and fBreakType  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:196:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;dontAdopt&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:240:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Extra space between UParseError and &amp;parseError  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  The parameter name &quot;parseError&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Extra space between uint32_t and ruleLength  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:374:  Extra space between virtual and CharacterIterator&amp;  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:391:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:423:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:449:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:614:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:697:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:759:  The parameter name &quot;c&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:774:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:22:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:23:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:270:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:271:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:300:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:301:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:302:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:329:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:330:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:331:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:381:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:419:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:420:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:421:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:13:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:14:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:20:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:96:  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/WTF/icu/unicode/chariter.h:595:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:608:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:642:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:671:  Extra space between int32_t and pos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:677:  Extra space between int32_t and begin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:683:  Extra space between int32_t and end  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:687:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:692:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:697:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:702:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:707:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:712:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:717:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:21:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:29:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:52:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:63:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Extra space between int32_t and textBegin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Extra space between int32_t and textEnd  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:95:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:101:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:111:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:112:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:122:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:138:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:147:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:154:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:161:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:168:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:176:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Extra space between UnicodeString and text  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:20:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/udata.h:39:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:173:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:200:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  The parameter name &quot;isAcceptable&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:253:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:361:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:392:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:426:  The parameter name &quot;access&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 240 in 32 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>1260061</commentid>
    <comment_count>45</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-14 22:44:10 -0800</bug_when>
    <thetext>(In reply to comment #40)
&gt; Just verified that the compile rules work on Mac.

Just verified they work on iOS too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260063</commentid>
    <comment_count>46</comment_count>
      <attachid>297155</attachid>
    <who name="">mitz</who>
    <bug_when>2016-12-14 22:47:25 -0800</bug_when>
    <thetext>Comment on attachment 297155
Patch

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

&gt; Source/WTF/wtf/text/BreakingRules/CursorMovementIteratorRules.txt:1
&gt; +# Copyright (C) 2016 Apple Inc. All rights reserved.

Seems like the contents of this and similar files come from TextBreakIterator.cpp and was authored before 2016.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260189</commentid>
    <comment_count>47</comment_count>
      <attachid>297205</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-15 11:24:07 -0800</bug_when>
    <thetext>Created attachment 297205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260190</commentid>
    <comment_count>48</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-15 11:26:23 -0800</bug_when>
    <thetext>Attachment 297205 did not pass style-queue:

ERROR: Source/WTF/icu/unicode/uchriter.h:11:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/uchriter.h:18:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:44:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:59:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:60:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:78:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:79:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:80:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:81:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:90:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:96:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:106:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:107:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:117:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:124:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:133:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:142:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:152:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:163:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:173:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:191:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:201:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:214:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:221:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:228:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:237:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:247:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:259:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:280:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:289:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:298:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:309:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:341:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:350:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:357:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:364:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:371:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:376:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:45:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:48:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:50:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:166:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:174:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:194:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:204:  The parameter name &quot;it&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:291:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:474:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:475:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:486:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:508:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:509:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  The parameter name &quot;locale&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:556:  The parameter name &quot;key&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:572:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:581:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:611:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:612:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:613:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:614:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:627:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:655:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WTF/icu/unicode/umisc.h:37:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:42:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:47:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:267:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:268:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:268:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:269:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:270:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:285:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
ERROR: Source/WTF/icu/unicode/locid.h:303:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:313:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Extra space between UErrorCode&amp; and success  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:494:  Extra space between uint32_t and getLCID  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:522:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:538:  Extra space between UnicodeString&amp; and dispLang  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:538:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Extra space between UnicodeString&amp; and dispScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:594:  Extra space between UnicodeString&amp; and dispCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:594:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:614:  Extra space between UnicodeString&amp; and dispVar  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:614:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:642:  Extra space between UnicodeString&amp; and name  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:642:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:648:  Extra space between int32_t and hashCode  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/
unicode/locid.h:736:  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/WTF/icu/unicode/locid.h:808:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:39:  Extra space between class and RuleBasedBreakIteratorTables  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:40:  Extra space between class and BreakIterator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:41:  Extra space between class and RBBIDataWrapper  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:42:  Extra space between class and UStack  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:43:  Extra space between class and LanguageBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:44:  Extra space between class and UnhandledEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:72:  Extra space between UText and *fText  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:79:  Extra space between CharacterIterator and *fCharIter  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:99:  Extra space between RBBIDataWrapper and *fData  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:104:  Extra space between int32_t and fLastRuleStatusIndex  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:112:  Extra space between UBool and fLastStatusIndexValid  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:119:  Extra space between uint32_t and fDictionaryCharCount  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:128:  Extra space between int32_t* and fCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:134:  Extra space between int32_t and fNumCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:141:  Extra space between int32_t and fPositionInCache  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:150:  Extra space between UStack and *fLanguageBreakEngines  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:159:  Extra space between UnhandledEngine and *fUnhandledBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:166:  Extra space between int32_t and fBreakType  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:196:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;dontAdopt&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:240:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Extra space between UParseError and &amp;parseError  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  The parameter name &quot;parseError&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Extra space between uint32_t and ruleLength  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:374:  Extra space between virtual and CharacterIterator&amp;  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:391:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:423:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:449:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:614:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:697:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:759:  The parameter name &quot;c&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:774:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:22:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:23:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:270:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:271:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:300:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:301:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:302:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:329:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:330:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:331:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:381:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:419:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:420:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:421:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:13:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:14:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:20:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:96:  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/WTF/icu/unicode/chariter.h:595:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:608:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:642:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:671:  Extra space between int32_t and pos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:677:  Extra space between int32_t and begin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:683:  Extra space between int32_t and end  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:687:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:692:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:697:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:702:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:707:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:712:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:717:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:21:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:29:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:52:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:63:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Extra space between int32_t and textBegin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Extra space between int32_t and textEnd  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:95:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:101:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:111:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:112:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:122:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:138:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:147:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:154:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:161:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:168:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:176:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Extra space between UnicodeString and text  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:20:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/udata.h:39:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:173:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:200:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  The parameter name &quot;isAcceptable&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:253:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:361:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:392:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:426:  The parameter name &quot;access&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 240 in 32 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>1260191</commentid>
    <comment_count>49</comment_count>
      <attachid>297205</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-12-15 11:37:49 -0800</bug_when>
    <thetext>Comment on attachment 297205
Patch

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

&gt; Source/WTF/ChangeLog:17
&gt; +        of our projects use generated sources. However, additionally, on OSes which support it,

&quot;However, additionally&quot; =&gt; Additionally

&gt; Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm:52
&gt; +TextBreakIterator* createIteratorForRuleSet(BreakingRuleSet ruleSet)

Can we return a std::unique_ptr?

&gt; Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm:105
&gt; +    static NeverDestroyed&lt;RuleCache&gt; cursorMovementIterator;
&gt; +    static NeverDestroyed&lt;RuleCache&gt; lineBreakUAX14CJKIterator;
&gt; +    static NeverDestroyed&lt;RuleCache&gt; lineBreakUAX14NonCJKIterator;
&gt; +    static NeverDestroyed&lt;RuleCache&gt; lineBreakUAX14LooseCJKIterator;
&gt; +    static NeverDestroyed&lt;RuleCache&gt; lineBreakUAX14LooseNonCJKIterator;
&gt; +    static NeverDestroyed&lt;RuleCache&gt; lineBreakUAX14NormalCJKIterator;
&gt; +    static NeverDestroyed&lt;RuleCache&gt; lineBreakUAX14NormalNonCJKIterator;
&gt; +    static NeverDestroyed&lt;RuleCache&gt; lineBreakUAX14StrictCJKIterator;
&gt; +    static NeverDestroyed&lt;RuleCache&gt; lineBreakUAX14StrictNonCJKIterator;
&gt; +
&gt; +    NSString *fileNameBase;
&gt; +    RuleCache* cache = nullptr;
&gt; +
&gt; +    switch (ruleSet) {
&gt; +    case BreakingRuleSet::CursorMovement:
&gt; +        fileNameBase = @&quot;CursorMovementIteratorRules&quot;;
&gt; +        cache = &amp;cursorMovementIterator.get();
&gt; +        break;
&gt; +    case BreakingRuleSet::UAX14CJK:
&gt; +        fileNameBase = @&quot;LineBreakIteratorUAX14CJK&quot;;
&gt; +        cache = &amp;lineBreakUAX14CJKIterator.get();
&gt; +        break;
&gt; +    case BreakingRuleSet::UAX14NonCJK:
&gt; +        fileNameBase = @&quot;LineBreakIteratorUAX14NonCJK&quot;;
&gt; +        cache = &amp;lineBreakUAX14NonCJKIterator.get();
&gt; +        break;
&gt; +    case BreakingRuleSet::UAX14LooseCJK:
&gt; +        fileNameBase = @&quot;LineBreakIteratorUAX14LooseCJK&quot;;
&gt; +        cache = &amp;lineBreakUAX14LooseCJKIterator.get();
&gt; +        break;
&gt; +    case BreakingRuleSet::UAX14LooseNonCJK:
&gt; +        fileNameBase = @&quot;LineBreakIteratorUAX14LooseNonCJK&quot;;
&gt; +        cache = &amp;lineBreakUAX14LooseNonCJKIterator.get();
&gt; +        break;
&gt; +    case BreakingRuleSet::UAX14NormalCJK:
&gt; +        fileNameBase = @&quot;LineBreakIteratorUAX14NormalCJK&quot;;
&gt; +        cache = &amp;lineBreakUAX14NormalCJKIterator.get();
&gt; +        break;
&gt; +    case BreakingRuleSet::UAX14NormalNonCJK:
&gt; +        fileNameBase = @&quot;LineBreakIteratorUAX14NormalNonCJK&quot;;
&gt; +        cache = &amp;lineBreakUAX14NormalNonCJKIterator.get();
&gt; +        break;
&gt; +    case BreakingRuleSet::UAX14StrictCJK:
&gt; +        fileNameBase = @&quot;LineBreakIteratorUAX14StrictCJK&quot;;
&gt; +        cache = &amp;lineBreakUAX14StrictCJKIterator.get();
&gt; +        break;
&gt; +    case BreakingRuleSet::UAX14StrictNonCJK:
&gt; +        fileNameBase = @&quot;LineBreakIteratorUAX14StrictNonCJK&quot;;
&gt; +        cache = &amp;lineBreakUAX14StrictNonCJKIterator.get();
&gt; +        break;
&gt; +    }
&gt; +

For your consideration, I suggest that we take a similar approach as in Cursor::fromType(), &lt;http://trac.webkit.org/browser/trunk/Source/WebCore/platform/Cursor.cpp?rev=209618#L55&gt;, and define a static function for each kind of iterator that loads the rule set file and returns a std::unique_ptr&lt;RuleBasedBreakIterator&gt;. Then implement this function as a switch block that effectively returns the results of calling the case-specific static function. Something like (the following code may have correctness/syntax issues):

static std::unique_ptr&lt;RuleBasedBreakIterator&gt; breakIteratorFromResource(NSString resourceName)
{
    NSBundle *bundle = [NSBundle bundleForClass:[WTFBundleFinder class]];
    NSString *path = [bundle pathForResource:resourceName ofType:@&quot;brk&quot; inDirectory:@&quot;BreakingRules&quot;];
    NSString *directory = [path stringByDeletingLastPathComponent];
    if (!directory) {
        ASSERT_NOT_REACHED();
        return nullptr;
    }

    UErrorCode errorCode = U_ZERO_ERROR;

#if PLATFORM(IOS)
    udata_setFileAccess(UDATA_FILES_FIRST, &amp;errorCode);
    if (errorCode != U_ZERO_ERROR)
        return nullptr;
#endif

    LocalUDataMemoryPointer data { udata_open([directory UTF8String], &quot;brk&quot;, [resourceName UTF8String], &amp;errorCode) };
    if (errorCode != U_ZERO_ERROR)
        return nullptr;

#if PLATFORM(IOS)
    udata_setFileAccess(UDATA_DEFAULT_ACCESS, &amp;errorCode);
    if (errorCode != U_ZERO_ERROR)
        return nullptr;
#endif

    auto iterator = std::make_unique&lt;RuleBasedBreakIterator&gt;(data.orphan(), errorCode);
    return errorCode == U_ZERO_ERROR ? iterator : nullptr;
}

// FIXME: Consider using processors macros to generate these functions because they are almost identical.

static RuleBasedBreakIterator* cursorMovementIterator()
{
    static NeverDestroyed&lt;std::unique_ptr&lt;RuleBasedBreakIterator&gt;&gt; iterator = breakIteratorFromResource(@&quot;CursorMovementIteratorRules&quot;);
    return *iterator.get();
}

...

static RuleBasedBreakIterator* lineBreakUAX14StrictNonCJKIterator()
{
    static NeverDestroyed&lt;std::unique_ptr&lt;RuleBasedBreakIterator&gt;&gt; iterator = breakIteratorFromResource(@&quot;LineBreakIteratorUAX14StrictNonCJK&quot;);
    return *iterator.get();
}

// FIXME: Can we return a std::unique_ptr?
TextBreakIterator* createIteratorForRuleSet(BreakingRuleSet ruleSet)
{
    std::unique_ptr&lt;RuleBasedBreakIterator&gt; result;
    switch (ruleSet) {
    case BreakingRuleSet::CursorMovement:
        result = std::make_unique&lt;RuleBasedBreakIterator&gt;(cursorMovementIterator());
        break;
    ...
    case BreakingRuleSet::UAX14StrictNonCJK:
        result = std::make_unique&lt;RuleBasedBreakIterator&gt;(lineBreakUAX14StrictNonCJKIterator());
        break;
    }
    // FIXME: Is it necessary to return a copy?
    return reinterpret_cast&lt;TextBreakIterator*&gt;(result.release());
}

Alternatively, if do not expect to make use of more than 7 rule sets in a typical web surfing session (we could run an appropriate PLT suite and track how many rule sets we use) then we could write this in terms of a HashSet. Using a HashSet may simplify the code because we can take advantage of the nullity of the iterator pointer to know if loading the rule set failed and can take advantage of whether the set contains an entry to know if we ever tried to load a rule set.

&gt; Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm:148
&gt; +    return reinterpret_cast&lt;TextBreakIterator*&gt;(std::make_unique&lt;RuleBasedBreakIterator&gt;(*cache-&gt;iterator).release());

Is it necessary to make a copy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260213</commentid>
    <comment_count>50</comment_count>
      <attachid>297205</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-12-15 12:42:53 -0800</bug_when>
    <thetext>Comment on attachment 297205
Patch

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

I have some drive-by suggestions for build system changes. It looks pretty cool though!

&gt; Source/WTF/ChangeLog:31
&gt; +        * WTF.xcodeproj/project.pbxproj:

Please include more fine grained details of what you changed.

&gt; Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:5912
&gt; +				1CD1878F1D55961200CC7DEC /* BreakingRules */,

It is unusual to have no file extension for an output file. Please add one unless it&apos;s a hard constraint.

&gt; Source/WTF/WTF.xcodeproj/project.pbxproj:19
&gt; +			productName = &quot;Copy WTF Headers&quot;;

Not sure this is the right (dummy) product name.

&gt; Source/WTF/WTF.xcodeproj/project.pbxproj:512
&gt; +		1CB4FB941D559A0D00F9FE38 /* LineBreakIteratorUAX14CJK.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LineBreakIteratorUAX14CJK.txt; sourceTree = &quot;&lt;group&gt;&quot;; };

I think you need to sort the pbxproj file again.

&gt; Source/WTF/WTF.xcodeproj/project.pbxproj:1661
&gt; +				1CD187881D55698800CC7DEC /* PBXTargetDependency */,

This should be noted in the ChangeLog.

&gt; Source/WTF/WTF.xcodeproj/project.pbxproj:1699
&gt; +		1CD187821D55695C00CC7DEC /* Generate Derived Sources */ = {

This has some precedent, but I strongly prefer you make a tiny script and invoke it from this script phase, so that it&apos;s possible to review its contents easily in bugzilla. This could go in, say, WTF/Scripts/generate-wtf-derived-sources.sh

&gt; Source/WTF/wtf/DerivedSources.make:36
&gt; +    BreakingRules/CursorMovementIteratorRules.cpp \

If these two file sets are always going to be 1:1, then you should just keep the .brk list and use Make to generate the other list.

BREAKING_RULES_DEFINITIONS=$(BREAKING_RULES_FILES:.brk=.cpp)

&gt; Source/WTF/wtf/DerivedSources.make:52
&gt; +ifeq ($(WTF_PLATFORM_IOS), 1)

Usually we place this inside a check of ifeq ($(OS),MACOS), but I don&apos;t know if that&apos;s actually necessary any more since only Apple ports use DerivedSources.make these days.

&gt; Source/WTF/wtf/DerivedSources.make:72
&gt; +	python $(WTF)/wtf/text/BreakingRules/GenerateBreakingRuleStrings.py cursorMovementIteratorRules $&lt; &gt; $@

Please put the script in $(WTF)/Scripts/ so it matches the structure used in JSC (and elsewhere).

&gt; Source/WTF/wtf/DerivedSources.make:75
&gt; +	python $(WTF)/wtf/text/BreakingRules/GenerateBreakingRuleStrings.py lineBreakIterator$*Rules $&lt; &gt; $@

You can add a generic rule to go from .pp to .cpp files:

%.cpp : %.pp
    python .................

Just make sure the .cpp targets are somehow added to `all`.

&gt; Source/WTF/wtf/DerivedSources.make:80
&gt; +BreakingRules/LineBreakIterator%.pp : $(WTF)/wtf/text/BreakingRules/LineBreakIteratorPrologue.txt $(WTF)/wtf/text/BreakingRules/LineBreakIterator%.txt $(WTF)/wtf/text/BreakingRules/LineBreakIteratorEpilogue.txt

This special case rule seems unavoidable.

&gt; Source/WTF/wtf/DerivedSources.make:81
&gt; +	-cat $? | unifdef -DADDITIONAL_EMOJI_SUPPORT=$(ADDITIONAL_EMOJI_SUPPORT) -DHAVE_EXTRA_ICU_NAMED_SETS=$(HAVE_EXTRA_ICU_NAMED_SETS) -o $@

I&apos;m pretty sure you can generate the arguments to unifdef using

FEATURE_DEFINES = \
    HAVE_EXTRA_ICU_NAMED_SETS \
    ADDITIONAL_EMOJI_SUPPORT \

ARGS = $(foreach d,$(FEATURE_DEFINES),-D$(d)=$($d)))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260293</commentid>
    <comment_count>51</comment_count>
      <attachid>297232</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-15 15:23:50 -0800</bug_when>
    <thetext>Created attachment 297232
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260294</commentid>
    <comment_count>52</comment_count>
      <attachid>297205</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-15 15:24:30 -0800</bug_when>
    <thetext>Comment on attachment 297205
Patch

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

&gt;&gt; Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:5912
&gt;&gt; +				1CD1878F1D55961200CC7DEC /* BreakingRules */,
&gt; 
&gt; It is unusual to have no file extension for an output file. Please add one unless it&apos;s a hard constraint.

This is a folder reference. The project is set up to copy the entire folder into the bundle. It has no concept of the contents of the folder (which is important because old OSes which don&apos;t have the rules compiler won&apos;t generate the byte code files)

&gt;&gt; Source/WTF/WTF.xcodeproj/project.pbxproj:1699
&gt;&gt; +		1CD187821D55695C00CC7DEC /* Generate Derived Sources */ = {
&gt; 
&gt; This has some precedent, but I strongly prefer you make a tiny script and invoke it from this script phase, so that it&apos;s possible to review its contents easily in bugzilla. This could go in, say, WTF/Scripts/generate-wtf-derived-sources.sh

WebKit2, WebCore, and JavaScriptCore all work this way. (The WebKit project doesn&apos;t have derived sources)

&gt;&gt; Source/WTF/wtf/DerivedSources.make:75
&gt;&gt; +	python $(WTF)/wtf/text/BreakingRules/GenerateBreakingRuleStrings.py lineBreakIterator$*Rules $&lt; &gt; $@
&gt; 
&gt; You can add a generic rule to go from .pp to .cpp files:
&gt; 
&gt; %.cpp : %.pp
&gt;     python .................
&gt; 
&gt; Just make sure the .cpp targets are somehow added to `all`.

The capitalization is different between CursorMovementIteratorRules and cursorMovementIteratorRules, so I&apos;m not sure I can come up with that &quot;.....................&quot;

&gt;&gt; Source/WTF/wtf/DerivedSources.make:81
&gt;&gt; +	-cat $? | unifdef -DADDITIONAL_EMOJI_SUPPORT=$(ADDITIONAL_EMOJI_SUPPORT) -DHAVE_EXTRA_ICU_NAMED_SETS=$(HAVE_EXTRA_ICU_NAMED_SETS) -o $@
&gt; 
&gt; I&apos;m pretty sure you can generate the arguments to unifdef using
&gt; 
&gt; FEATURE_DEFINES = \
&gt;     HAVE_EXTRA_ICU_NAMED_SETS \
&gt;     ADDITIONAL_EMOJI_SUPPORT \
&gt; 
&gt; ARGS = $(foreach d,$(FEATURE_DEFINES),-D$(d)=$($d)))

Because the definition of ADDITIONAL_EMOJI_SUPPORT is different in the two blocks, I&apos;d have to do this twice, which makes it much more verbose than just doing it inline like I&apos;ve done.

&gt;&gt; Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm:52
&gt;&gt; +TextBreakIterator* createIteratorForRuleSet(BreakingRuleSet ruleSet)
&gt; 
&gt; Can we return a std::unique_ptr?

Unfortunately, these TextBreakIterator pointers can be created/allocated by ubrk_open*() and destroyed/freed by ubrk_close(), which means that simply free() or deleting the pointers won&apos;t work in all cases. However, it should totally be possible to RAII these pointers so that we don&apos;t manually have to call ubrk_close() in closeLineBreakIterator(). That is a big enough project, though, that it should be done in a different patch.

&gt;&gt; Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm:148
&gt;&gt; +    return reinterpret_cast&lt;TextBreakIterator*&gt;(std::make_unique&lt;RuleBasedBreakIterator&gt;(*cache-&gt;iterator).release());
&gt; 
&gt; Is it necessary to make a copy?

Unfortunately, yes. These iterators maintain internal state (for example, their current position inside a string, among other things). It is also expected for us to call this same function multiple times with the same input (there&apos;s a cache, but it has fixed size which means we may make it back to this function successive times). If we got back the exact same object, it may have leftover state from the last time it was used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260295</commentid>
    <comment_count>53</comment_count>
      <attachid>297205</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-15 15:24:38 -0800</bug_when>
    <thetext>Comment on attachment 297205
Patch

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

&gt;&gt; Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:5912
&gt;&gt; +				1CD1878F1D55961200CC7DEC /* BreakingRules */,
&gt; 
&gt; It is unusual to have no file extension for an output file. Please add one unless it&apos;s a hard constraint.

This is a folder reference. The project is set up to copy the entire folder into the bundle. It has no concept of the contents of the folder (which is important because old OSes which don&apos;t have the rules compiler won&apos;t generate the byte code files)

&gt;&gt; Source/WTF/WTF.xcodeproj/project.pbxproj:1699
&gt;&gt; +		1CD187821D55695C00CC7DEC /* Generate Derived Sources */ = {
&gt; 
&gt; This has some precedent, but I strongly prefer you make a tiny script and invoke it from this script phase, so that it&apos;s possible to review its contents easily in bugzilla. This could go in, say, WTF/Scripts/generate-wtf-derived-sources.sh

WebKit2, WebCore, and JavaScriptCore all work this way. (The WebKit project doesn&apos;t have derived sources)

&gt;&gt; Source/WTF/wtf/DerivedSources.make:75
&gt;&gt; +	python $(WTF)/wtf/text/BreakingRules/GenerateBreakingRuleStrings.py lineBreakIterator$*Rules $&lt; &gt; $@
&gt; 
&gt; You can add a generic rule to go from .pp to .cpp files:
&gt; 
&gt; %.cpp : %.pp
&gt;     python .................
&gt; 
&gt; Just make sure the .cpp targets are somehow added to `all`.

The capitalization is different between CursorMovementIteratorRules and cursorMovementIteratorRules, so I&apos;m not sure I can come up with that &quot;.....................&quot;

&gt;&gt; Source/WTF/wtf/DerivedSources.make:81
&gt;&gt; +	-cat $? | unifdef -DADDITIONAL_EMOJI_SUPPORT=$(ADDITIONAL_EMOJI_SUPPORT) -DHAVE_EXTRA_ICU_NAMED_SETS=$(HAVE_EXTRA_ICU_NAMED_SETS) -o $@
&gt; 
&gt; I&apos;m pretty sure you can generate the arguments to unifdef using
&gt; 
&gt; FEATURE_DEFINES = \
&gt;     HAVE_EXTRA_ICU_NAMED_SETS \
&gt;     ADDITIONAL_EMOJI_SUPPORT \
&gt; 
&gt; ARGS = $(foreach d,$(FEATURE_DEFINES),-D$(d)=$($d)))

Because the definition of ADDITIONAL_EMOJI_SUPPORT is different in the two blocks, I&apos;d have to do this twice, which makes it much more verbose than just doing it inline like I&apos;ve done.

&gt;&gt; Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm:52
&gt;&gt; +TextBreakIterator* createIteratorForRuleSet(BreakingRuleSet ruleSet)
&gt; 
&gt; Can we return a std::unique_ptr?

Unfortunately, these TextBreakIterator pointers can be created/allocated by ubrk_open*() and destroyed/freed by ubrk_close(), which means that simply free() or deleting the pointers won&apos;t work in all cases. However, it should totally be possible to RAII these pointers so that we don&apos;t manually have to call ubrk_close() in closeLineBreakIterator(). That is a big enough project, though, that it should be done in a different patch.

&gt;&gt; Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm:148
&gt;&gt; +    return reinterpret_cast&lt;TextBreakIterator*&gt;(std::make_unique&lt;RuleBasedBreakIterator&gt;(*cache-&gt;iterator).release());
&gt; 
&gt; Is it necessary to make a copy?

Unfortunately, yes. These iterators maintain internal state (for example, their current position inside a string, among other things). It is also expected for us to call this same function multiple times with the same input (there&apos;s a cache, but it has fixed size which means we may make it back to this function successive times). If we got back the exact same object, it may have leftover state from the last time it was used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260296</commentid>
    <comment_count>54</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-15 15:25:54 -0800</bug_when>
    <thetext>Attachment 297232 did not pass style-queue:

ERROR: Source/WTF/icu/unicode/uchriter.h:11:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/uchriter.h:18:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:44:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:59:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:60:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:78:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:79:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:80:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:81:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:90:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:96:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:106:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:107:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:117:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:124:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:133:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:142:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:152:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:163:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:173:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:191:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:201:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:214:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:221:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:228:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:237:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:247:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:259:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:280:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:289:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:298:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:309:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:341:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:350:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:357:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:364:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:371:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:376:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:45:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:48:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:50:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:166:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:174:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:194:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:204:  The parameter name &quot;it&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:291:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:474:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:475:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:486:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:508:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:509:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  The parameter name &quot;locale&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:556:  The parameter name &quot;key&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:572:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:581:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:611:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:612:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:613:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:614:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:627:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:655:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WTF/icu/unicode/umisc.h:37:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:42:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:47:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:267:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:268:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:268:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:269:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:270:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:285:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
ERROR: Source/WTF/icu/unicode/locid.h:303:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:313:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Extra space between UErrorCode&amp; and success  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:494:  Extra space between uint32_t and getLCID  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:522:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:538:  Extra space between UnicodeString&amp; and dispLang  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:538:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Extra space between UnicodeString&amp; and dispScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:594:  Extra space between UnicodeString&amp; and dispCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:594:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:614:  Extra space between UnicodeString&amp; and dispVar  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:614:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:642:  Extra space between UnicodeString&amp; and name  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:642:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:648:  Extra space between int32_t and hashCode  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/
unicode/locid.h:736:  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/WTF/icu/unicode/locid.h:808:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:39:  Extra space between class and RuleBasedBreakIteratorTables  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:40:  Extra space between class and BreakIterator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:41:  Extra space between class and RBBIDataWrapper  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:42:  Extra space between class and UStack  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:43:  Extra space between class and LanguageBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:44:  Extra space between class and UnhandledEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:72:  Extra space between UText and *fText  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:79:  Extra space between CharacterIterator and *fCharIter  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:99:  Extra space between RBBIDataWrapper and *fData  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:104:  Extra space between int32_t and fLastRuleStatusIndex  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:112:  Extra space between UBool and fLastStatusIndexValid  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:119:  Extra space between uint32_t and fDictionaryCharCount  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:128:  Extra space between int32_t* and fCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:134:  Extra space between int32_t and fNumCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:141:  Extra space between int32_t and fPositionInCache  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:150:  Extra space between UStack and *fLanguageBreakEngines  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:159:  Extra space between UnhandledEngine and *fUnhandledBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:166:  Extra space between int32_t and fBreakType  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:196:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;dontAdopt&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:240:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Extra space between UParseError and &amp;parseError  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  The parameter name &quot;parseError&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Extra space between uint32_t and ruleLength  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:374:  Extra space between virtual and CharacterIterator&amp;  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:391:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:423:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:449:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:614:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:697:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:759:  The parameter name &quot;c&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:774:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:22:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:23:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:270:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:271:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:300:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:301:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:302:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:329:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:330:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:331:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:381:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:419:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:420:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:421:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:13:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:14:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:20:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:96:  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/WTF/icu/unicode/chariter.h:595:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:608:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:642:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:671:  Extra space between int32_t and pos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:677:  Extra space between int32_t and begin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:683:  Extra space between int32_t and end  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:687:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:692:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:697:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:702:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:707:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:712:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:717:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:21:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:29:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:52:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:63:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Extra space between int32_t and textBegin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Extra space between int32_t and textEnd  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:95:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:101:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:111:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:112:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:122:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:138:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:147:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:154:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:161:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:168:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:176:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Extra space between UnicodeString and text  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:20:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/udata.h:39:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:173:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:200:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  The parameter name &quot;isAcceptable&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:253:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:361:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:392:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:426:  The parameter name &quot;access&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 240 in 32 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>1260379</commentid>
    <comment_count>55</comment_count>
      <attachid>297232</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-15 16:50:04 -0800</bug_when>
    <thetext>Comment on attachment 297232
Patch

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

&gt; Source/WTF/Scripts/GenerateBreakingRuleStrings.py:72
&gt; +    print(&quot;// WTF/wtf/text/BreakingRules/GenerateBreakingRuleStrings.py&quot;)

This is no longer accurate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260435</commentid>
    <comment_count>56</comment_count>
      <attachid>297271</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-15 18:09:08 -0800</bug_when>
    <thetext>Created attachment 297271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260438</commentid>
    <comment_count>57</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-15 18:11:26 -0800</bug_when>
    <thetext>Attachment 297271 did not pass style-queue:

ERROR: Source/WTF/icu/unicode/uchriter.h:11:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/uchriter.h:18:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:44:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:59:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:60:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:78:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:79:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:80:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:81:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:90:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:96:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:106:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:107:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:117:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:124:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:133:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:142:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:152:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:163:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:173:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:191:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:201:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:214:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:221:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:228:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:237:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:247:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:259:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:280:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:289:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:298:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:309:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:322:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/uchriter.h:335:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:341:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:350:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:357:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:364:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:371:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/uchriter.h:376:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:45:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:48:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:50:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:166:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:174:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:194:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:204:  The parameter name &quot;it&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:291:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:474:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:475:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:486:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:508:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:509:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:540:  The parameter name &quot;locale&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:556:  The parameter name &quot;key&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:572:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:581:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:611:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/brkiter.h:612:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:613:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:614:  The parameter name &quot;loc&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:625:  Missing space inside { }.  [whitespace/braces] [5]
ERROR: Source/WTF/icu/unicode/brkiter.h:627:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/brkiter.h:655:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/WTF/icu/unicode/umisc.h:37:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:42:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/umisc.h:47:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/locid.h:267:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:268:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:268:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:269:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:270:  Extra space between const and char  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:285:  Extra space before last semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
ERROR: Source/WTF/icu/unicode/locid.h:303:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:313:  Extra space between UBool and operator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Extra space between UErrorCode&amp; and success  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:359:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:388:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:397:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:404:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:411:  Extra space before )  [whitespace/parens] [2]
ERROR: Source/WTF/icu/unicode/locid.h:494:  Extra space between uint32_t and getLCID  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:522:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space between UnicodeString&amp; and getDisplayLanguage  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:537:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:538:  Extra space between UnicodeString&amp; and dispLang  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:538:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:549:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space between UnicodeString&amp; and getDisplayScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:565:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Extra space between UnicodeString&amp; and dispScript  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:566:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:577:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space between UnicodeString&amp; and getDisplayCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:593:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:594:  Extra space between UnicodeString&amp; and dispCountry  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:594:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:603:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space between UnicodeString&amp; and getDisplayVariant  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:613:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:614:  Extra space between UnicodeString&amp; and dispVar  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:614:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:627:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space between UnicodeString&amp; and getDisplayName  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:641:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/locid.h:642:  Extra space between UnicodeString&amp; and name  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/locid.h:642:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/locid.h:648:  Extra space between int32_t and hashCode  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/
unicode/locid.h:736:  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/WTF/icu/unicode/locid.h:808:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:39:  Extra space between class and RuleBasedBreakIteratorTables  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:40:  Extra space between class and BreakIterator  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:41:  Extra space between class and RBBIDataWrapper  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:42:  Extra space between class and UStack  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:43:  Extra space between class and LanguageBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:44:  Extra space between class and UnhandledEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:72:  Extra space between UText and *fText  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:79:  Extra space between CharacterIterator and *fCharIter  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:99:  Extra space between RBBIDataWrapper and *fData  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:104:  Extra space between int32_t and fLastRuleStatusIndex  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:112:  Extra space between UBool and fLastStatusIndexValid  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:119:  Extra space between uint32_t and fDictionaryCharCount  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:128:  Extra space between int32_t* and fCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:134:  Extra space between int32_t and fNumCachedBreakPositions  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:141:  Extra space between int32_t and fPositionInCache  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:150:  Extra space between UStack and *fLanguageBreakEngines  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:159:  Extra space between UnhandledEngine and *fUnhandledBreakEngine  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:166:  Extra space between int32_t and fBreakType  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:196:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:206:  The parameter name &quot;dontAdopt&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:240:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Extra space between UParseError and &amp;parseError  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:241:  The parameter name &quot;parseError&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:242:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Extra space between uint32_t and ruleLength  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:268:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Extra space between UErrorCode and &amp;status  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:374:  Extra space between virtual and CharacterIterator&amp;  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:391:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:423:  The parameter name &quot;text&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:449:  The parameter name &quot;n&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:613:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:614:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/rbbi.h:697:  The parameter name &quot;type&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:759:  The parameter name &quot;c&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/rbbi.h:774:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:22:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:23:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/ucasemap.h:269:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:270:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:271:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:300:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:301:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:302:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:329:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:330:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:331:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:381:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:419:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:420:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/ucasemap.h:421:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:13:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:14:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:20:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:96:  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/WTF/icu/unicode/chariter.h:595:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:608:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/chariter.h:642:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:671:  Extra space between int32_t and pos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:677:  Extra space between int32_t and begin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:683:  Extra space between int32_t and end  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/chariter.h:687:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:692:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:697:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:702:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:707:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:712:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/chariter.h:717:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:21:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/schriter.h:29:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:52:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:63:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:82:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Extra space between int32_t and textBegin  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:83:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Extra space between int32_t and textEnd  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:84:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Extra space between int32_t and textPos  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:85:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:95:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:101:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:111:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:112:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:122:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:138:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:147:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:154:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:161:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:168:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:176:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Extra space between UnicodeString and text  [whitespace/declaration] [3]
ERROR: Source/WTF/icu/unicode/schriter.h:182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:20:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/icu/unicode/udata.h:39:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:173:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:200:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:252:  The parameter name &quot;isAcceptable&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:253:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WTF/icu/unicode/udata.h:361:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:392:  The parameter name &quot;err&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/icu/unicode/udata.h:426:  The parameter name &quot;access&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 240 in 32 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>1260547</commentid>
    <comment_count>58</comment_count>
      <attachid>297271</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-15 23:49:34 -0800</bug_when>
    <thetext>Comment on attachment 297271
Patch

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

&gt; Source/WTF/wtf/text/TextBreakIterator.cpp:182
&gt; +    static TextBreakIterator* staticCursorMovementIterator = createCursorMovementIteratorWithFallback();

This should be NeverDestroyed.

&gt; Source/WTF/wtf/text/TextBreakIterator.cpp:185
&gt;      static TextBreakIterator* staticCursorMovementIterator = initializeIterator(UBRK_CHARACTER, &quot;th&quot;);

This should be NeverDestroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260551</commentid>
    <comment_count>59</comment_count>
      <attachid>297306</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-16 01:02:46 -0800</bug_when>
    <thetext>Created attachment 297306
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1260827</commentid>
    <comment_count>60</comment_count>
      <attachid>297306</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-16 16:56:45 -0800</bug_when>
    <thetext>Comment on attachment 297306
WIP

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

&gt; Source/WTF/Scripts/GenerateBreakingRuleStrings.py:70
&gt; +    print(&quot;&quot;)

Use &apos;&apos;&apos;

&gt; Source/WTF/Scripts/GenerateBreakingRuleStrings.py:72
&gt; +    print(&quot;// WTF/wtf/text/BreakingRules/GenerateBreakingRuleStrings.py&quot;)

You can use argv[0]

&gt; Source/WTF/Scripts/GenerateBreakingRuleStrings.py:83
&gt; +    print(&quot;const char* &quot; + symbolName + &quot; = &quot;)

string interpolation (string.format or like printf format)

&gt; Source/WTF/wtf/DerivedSources.make:69
&gt; +	-unifdef -DADDITIONAL_EMOJI_SUPPORT=$(ADDITIONAL_EMOJI_SUPPORT_FOR_CURSOR_MOVEMENT) -DHAVE_EXTRA_ICU_NAMED_SETS=$(HAVE_EXTRA_ICU_NAMED_SETS) -o $@ $&lt;

Write a comment about how the cmake file doesn&apos;t do this unifdef. Or do this in python directly

&gt; Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm:31
&gt; +#include &lt;unicode/rbbi.h&gt;

Maybe copy headers around into every directory

&gt; Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm:51
&gt; +    if (!path)

Move this down.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261535</commentid>
    <comment_count>61</comment_count>
      <attachid>297306</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-20 11:01:04 -0800</bug_when>
    <thetext>Comment on attachment 297306
WIP

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

&gt; Source/WTF/Scripts/GenerateBreakingRuleStrings.py:61
&gt; +    if argv[fileNameStartIndex] == &quot;-includeDefines&quot;:

Use optparse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261545</commentid>
    <comment_count>62</comment_count>
      <attachid>297306</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-12-20 11:04:14 -0800</bug_when>
    <thetext>Comment on attachment 297306
WIP

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

&gt;&gt; Source/WTF/wtf/DerivedSources.make:69
&gt;&gt; +	-unifdef -DADDITIONAL_EMOJI_SUPPORT=$(ADDITIONAL_EMOJI_SUPPORT_FOR_CURSOR_MOVEMENT) -DHAVE_EXTRA_ICU_NAMED_SETS=$(HAVE_EXTRA_ICU_NAMED_SETS) -o $@ $&lt;
&gt; 
&gt; Write a comment about how the cmake file doesn&apos;t do this unifdef. Or do this in python directly

It looks like we don&apos;t have a C preprocessor in webkitpy, and I&apos;d rather not rewrite this script in Perl. It also doesn&apos;t look like there&apos;s one that comes as part of a standard Python install on macOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264268</commentid>
    <comment_count>63</comment_count>
      <attachid>297306</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-01-05 15:47:08 -0800</bug_when>
    <thetext>Comment on attachment 297306
WIP

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

&gt; Source/WTF/wtf/text/BreakingRules/CursorMovementIteratorRules.txt:77
&gt; +    $EmojiForMods = [\u261D \u26F9 \u270A-\u270D \U0001F385 \U0001F3C3-\U0001F3C4 \U0001F3CA \U0001F3CB \U0001F442-\U0001F443 \U0001F446-\U0001F450 \U0001F466-\U0001F469 \U0001F46E-\U0001F478 \U0001F47C \U0001F481-\U0001F483 \U0001F485-\U0001F487 \U0001F4AA \U0001F575 \U0001F590 \U0001F595 \U0001F596 \U0001F645-\U0001F647 \U0001F64B-\U0001F64F \U0001F6A3 \U0001F6B4-\U0001F6B6 \U0001F6C0 \U0001F918] ; # Emoji that take Fitzpatrick modifiers

See https://bugs.webkit.org/show_bug.cgi?id=166711

&gt; Source/WTF/wtf/text/BreakingRules/LineBreakIteratorEpilogue.txt:81
&gt; +    $EmojiForMods = [\u261D \u26F9 \u270A-\u270D \U0001F385 \U0001F3C3-\U0001F3C4 \U0001F3CA \U0001F3CB \U0001F442-\U0001F443 \U0001F446-\U0001F450 \U0001F466-\U0001F469 \U0001F46E-\U0001F478 \U0001F47C \U0001F481-\U0001F483 \U0001F485-\U0001F487 \U0001F4AA \U0001F575 \U0001F590 \U0001F595 \U0001F596 \U0001F645-\U0001F647 \U0001F64B-\U0001F64F \U0001F6A3 \U0001F6B4-\U0001F6B6 \U0001F6C0 \U0001F918] ; # Emoji that take Fitzpatrick modifiers

See https://bugs.webkit.org/show_bug.cgi?id=166711

&gt; Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm:63
&gt; +    LocalUDataMemoryPointer data(udata_open([directory UTF8String], &quot;brk&quot;, [fileNameBase UTF8String], &amp;errorCode));

This code path should only be used on internal builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267874</commentid>
    <comment_count>64</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-01-18 14:16:23 -0800</bug_when>
    <thetext>We&apos;re blocked on new ICU API: http://bugs.icu-project.org/trac/ticket/12914</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274237</commentid>
    <comment_count>65</comment_count>
      <attachid>300869</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-07 18:00:18 -0800</bug_when>
    <thetext>Created attachment 300869
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274491</commentid>
    <comment_count>66</comment_count>
      <attachid>300934</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-08 11:59:44 -0800</bug_when>
    <thetext>Created attachment 300934
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274493</commentid>
    <comment_count>67</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-08 12:02:19 -0800</bug_when>
    <thetext>Attachment 300934 did not pass style-queue:


ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 1 in 24 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>1274519</commentid>
    <comment_count>68</comment_count>
      <attachid>300943</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-08 13:03:53 -0800</bug_when>
    <thetext>Created attachment 300943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274523</commentid>
    <comment_count>69</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-08 13:07:17 -0800</bug_when>
    <thetext>Attachment 300943 did not pass style-queue:


ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 1 in 25 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>1274527</commentid>
    <comment_count>70</comment_count>
      <attachid>300947</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-08 13:14:43 -0800</bug_when>
    <thetext>Created attachment 300947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274541</commentid>
    <comment_count>71</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-08 13:36:59 -0800</bug_when>
    <thetext>Attachment 300947 did not pass style-queue:


ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 1 in 24 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>1274560</commentid>
    <comment_count>72</comment_count>
      <attachid>300947</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-02-08 14:09:49 -0800</bug_when>
    <thetext>Comment on attachment 300947
Patch

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

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274561</commentid>
    <comment_count>73</comment_count>
      <attachid>300960</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-02-08 14:09:56 -0800</bug_when>
    <thetext>Created attachment 300960
Archive of layout-test-results from ews104 for mac-elcapitan-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews104  Port: mac-elcapitan-wk2  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274566</commentid>
    <comment_count>74</comment_count>
      <attachid>300964</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-08 14:14:33 -0800</bug_when>
    <thetext>Created attachment 300964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274568</commentid>
    <comment_count>75</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-08 14:18:06 -0800</bug_when>
    <thetext>Attachment 300964 did not pass style-queue:


ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 1 in 24 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>1274573</commentid>
    <comment_count>76</comment_count>
      <attachid>300966</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-08 14:26:17 -0800</bug_when>
    <thetext>Created attachment 300966
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274577</commentid>
    <comment_count>77</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-08 14:29:43 -0800</bug_when>
    <thetext>Attachment 300966 did not pass style-queue:


ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 1 in 24 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>1275068</commentid>
    <comment_count>78</comment_count>
      <attachid>301090</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-09 15:03:48 -0800</bug_when>
    <thetext>Created attachment 301090
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275095</commentid>
    <comment_count>79</comment_count>
      <attachid>301096</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-09 16:03:10 -0800</bug_when>
    <thetext>Created attachment 301096
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275096</commentid>
    <comment_count>80</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-09 16:05:35 -0800</bug_when>
    <thetext>Attachment 301096 did not pass style-queue:


ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 1 in 24 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>1275097</commentid>
    <comment_count>81</comment_count>
      <attachid>301097</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-09 16:08:17 -0800</bug_when>
    <thetext>Created attachment 301097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275100</commentid>
    <comment_count>82</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-09 16:11:19 -0800</bug_when>
    <thetext>Attachment 301097 did not pass style-queue:


ERROR: Source/WTF/wtf/text/TextBreakIterator.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]
Total errors found: 1 in 24 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>1275373</commentid>
    <comment_count>83</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-02-10 10:29:33 -0800</bug_when>
    <thetext>(In reply to comment #82)
&gt; Attachment 301097 [details] did not pass style-queue:
&gt; 
&gt; 
&gt; ERROR: Source/WTF/wtf/text/TextBreakIterator.h:34:  enum members should use
&gt; InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums. 
&gt; [readability/enum_casing] [4]
&gt; Total errors found: 1 in 24 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against
&gt; check-webkit-style.

I don&apos;t think it&apos;s worth trying to make an exception in the style-checker for these kinds of variables.  We would need an acronym detector.

Something like: Uax14CJK would satisfy the style checker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275573</commentid>
    <comment_count>84</comment_count>
      <attachid>301097</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-10 15:33:34 -0800</bug_when>
    <thetext>Comment on attachment 301097
Patch

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

&gt; Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm:50
&gt; +    NSString *path = [bundle pathForResource:fileNameBase ofType:@&quot;brk&quot; inDirectory:@&quot;BreakingRules&quot;];

Do this without file IO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275686</commentid>
    <comment_count>85</comment_count>
      <attachid>301230</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-10 18:08:05 -0800</bug_when>
    <thetext>Created attachment 301230
Reduce filesystem access</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276276</commentid>
    <comment_count>86</comment_count>
      <attachid>301367</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-13 11:54:54 -0800</bug_when>
    <thetext>Created attachment 301367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276441</commentid>
    <comment_count>87</comment_count>
      <attachid>301367</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-13 16:34:01 -0800</bug_when>
    <thetext>Comment on attachment 301367
Patch

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

&gt; Source/WTF/wtf/DerivedSources.make:49
&gt; +BreakingRules/CursorMovementIteratorRules.cpp : $(WTF)/wtf/text/BreakingRules/CursorMovementIteratorRules.txt

Probably shouldn&apos;t put the .cpp files in the folder which gets included in the bundle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276482</commentid>
    <comment_count>88</comment_count>
      <attachid>301425</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-13 17:34:56 -0800</bug_when>
    <thetext>Created attachment 301425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276484</commentid>
    <comment_count>89</comment_count>
      <attachid>301426</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-13 17:37:23 -0800</bug_when>
    <thetext>Created attachment 301426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276495</commentid>
    <comment_count>90</comment_count>
      <attachid>301429</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-13 17:56:00 -0800</bug_when>
    <thetext>Created attachment 301429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281194</commentid>
    <comment_count>91</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-26 16:39:03 -0800</bug_when>
    <thetext>After r213020, we no longer use custom ICU breaking iterators.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1283627</commentid>
    <comment_count>92</comment_count>
      <attachid>301429</attachid>
    <who name="">mitz</who>
    <bug_when>2017-03-05 14:41:24 -0800</bug_when>
    <thetext>Comment on attachment 301429
Patch

Removing the review? flag because the bug’s status is “resolved”.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285480</attachid>
            <date>2016-08-05 21:52:17 -0700</date>
            <delta_ts>2016-08-05 23:52:26 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160805215050.patch</filename>
            <type>text/plain</type>
            <size>54095</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
N2NiMzY4YTdmY2IyZjJhMzM4MWUzMGIwYTZlZjdkNzRmNmNiMDdjLi44Njc1NDdiMjE2YTQzMmQ5
MTQ1MThkMDk2YTEyZDEzYmE2MzM3N2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDUgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQXNzZXJ0aW9uIGZhaWx1cmUgd2hlbiBhY2Nlc3NpbmcgVERaIHZhcmlhYmxlIGlu
IGNhdGNoIHRocm91Z2ggZXZhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBiY2Q5ODE0MWZmOGNhMjI1ZDAyZDRiNDM2YjU1YTky
NmMxZDdhYzQ1Li5mM2NiYWNlNWNkN2I1NDI5NDFjNDMzZTYxZDQ3NTZjMmFhNmY0OTg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMyIEBACisyMDE2LTA4LTA1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVs
ZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJQ1UgYnJlYWtpbmcgaXRlcmF0b3JzIGF0
IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkLgorICAgICAgICAqIHd0
Zi9nZW5icms6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dDogQWRkZWQuCisgICAgICAg
ICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDog
QWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQ6
IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQ6IEFkZGVkLgorICAgICAgICAq
IHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNK
Sy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQ6IEFkZGVk
LgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdU
Rjo6aXRlcmF0b3JGb3JSdWxlU2V0KToKKyAgICAgICAgKFdURjo6Y3Vyc29yTW92ZW1lbnRJdGVy
YXRvcik6CisgICAgICAgIChXVEY6Om9wZW5MaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgICog
d3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDoKKyAgICAgICAgKiB3dGYvdGV4dC9tYWMvVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbToKKyAgICAgICAgKFdURjo6aXRlcmF0b3JG
b3JSdWxlU2V0KToKKwogMjAxNi0wOC0wNSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBEZWxldGUgb3V0IG9mIGRhdGUgV0FTTSBjb2RlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNTEwZjVjMjJmZmQyMGMxYWRjYzAzMDEyMDViMDY4
M2EwNDJhYjZlLi4xMmIxOThmMzliOGIwOGFkMmVhYWFkNzQ5OTY4ZjQzNzQ2NjZiY2ExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOCw2ICsxMTA4LDcgQEAKIAkJMTRGOTc0
NDcxMzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhDODUzRTAwREExQzY3IC8q
IEhlYXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjhE
NEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNGNzM3NzE3MUNBNkZCMDBD
OUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgKi87IH07CisJCTFD
RDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMg
LyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFBNzAwOTFFRTVGIC8qIEpT
U3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi87
IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1QTUxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2MkQ4NUI2MUMwRDY1MEYw
MDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQxQzBENjUwRjAwNkFDQjYx
IC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07CkBAIC0zMjYxLDYgKzMy
NjIsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFzZS54Y2NvbmZpZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYgLyogSmF2YVNjcmlwdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQxQkNGRiAvKiBKYXZhU2Ny
aXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Q29y
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdE
RUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7IHBhdGggPSAuLi9XVEYv
QnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTQxNTJC
QUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQ
YXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0aCA9IGIzL2Fpci9BaXJG
aXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTQxNCw2ICs1NDE2LDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAwNzY5RTU0IC8qIERlcml2
ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJMEY2
MTgzMzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAogCQkJCTBGNjE4MzM0MUM0
NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywKIAkJCQkwRjYxODMzNTFD
NDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAgLTg0MTYsNiArODQxOSw3
IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJ
QTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8s
CisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGJl
NGZjMWRhNDRjYzlhMThmMjEyZTgyMGRiMzU4MGJjNmIyOWVmMy4uZjFiNWMzMGYzNDVhOWIzZDNk
YjZhMDhlNjA3OGFlM2YzNjYyZTQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC03LDYgKzcsMTcgQEAKIAlvYmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhB
Z2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyog
RGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OworCQkJ
YnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMwMENDN0RFQyAvKiBCdWls
ZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3Vy
Y2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RF
QyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOworCQkJZGVwZW5kZW5jaWVz
ID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXByb2R1Y3ROYW1l
ID0gIkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0Mg
LyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsK
IAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyog
QnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RG
IEhlYWRlcnMiICovOwpAQCAtMzQyLDYgKzM1MywxMyBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJp
bmcgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzY7CiAJCQlyZW1vdGVJbmZvID0gV1RGOwogCQl9
OworCQkxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICov
ID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFs
ID0gNUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJv
eHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gMUNEMTg3ODExRDU1Njk1QzAw
Q0M3REVDOworCQkJcmVtb3RlSW5mbyA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQl9OwogCQk2NUFG
QTI4RDE2MzBCOTlFMDAzRDcyM0MgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewogCQkJ
aXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFsID0gNUQyNDdC
NTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAtNDM0LDYgKzQ1Miwx
OCBAQAogCQkxQzE4MUM4RDFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYx
Ni5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzhFMUQzMDdBQjgwMEY1
RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVVRleHRQcm92aWRlclVURjE2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFDMTgxQzk1MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNV
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgcGF0aCA9IG1hYy9UZXh0QnJlYWtJdGVyYXRvcklu
dGVybmFsSUNVTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NDFE
NTU5QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQ7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk1MUQ1NTlBNjkwMEY5RkUzOCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNC
NEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50
eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pL
LnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTcxRDU1OUFBODAwRjlG
RTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
QjRGQjlBMUQ1NTlCMjMwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Q0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUIxRDU1OUIzRTAw
RjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyog
TGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGlu
ZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDRDE4NzhBMUQ1NThBRDMwMENDN0RFQyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IG5hbWUg
PSBEZXJpdmVkU291cmNlcy5tYWtlOyBwYXRoID0gd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHVzZXNUYWJzID0gMTsgfTsKKwkJMUNEMTg3OTIxRDU1OThF
MTAwQ0M3REVDIC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyog
V2ViQ29yZVRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJDb3JlVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODkx
NTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ29yZVRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyNjE0N0IwODE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJz
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjEsNiArNzUxLDI0IEBACiAJ
CQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUNEMTg3
OTExRDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBD
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFDRDE4NzkzMUQ1NTk5NjUw
MENDN0RFQyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLywKKwkJCQkxQ0I0RkI5
NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8sCisJ
CQkJMUNCNEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25D
SksudHh0ICovLAorCQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk4
MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAq
LywKKwkJCQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJCTFDQjRGQjlCMUQ1NTlC
M0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLywK
KwkJCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1
ZS50eHQgKi8sCisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTc0Miw2ICs3OTAs
NyBAQAogCQk1RDI0N0I1NzE0Njg5Qjg2MDBFNzhCNzYgPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzhBMUQ1NThBRDMwMENDN0RFQyAvKiBEZXJpdmVk
U291cmNlcy5tYWtlICovLAogCQkJCTVEMjQ3QjZEMTQ2ODlDNDcwMEU3OEI3NiAvKiBDb25maWd1
cmF0aW9ucyAqLywKIAkJCQkxNDAyMkYzRjE4RjVDM0U1MDA3RkYwRUIgLyogTGlicmFyaWVzICov
LAogCQkJCTVEMjQ3QjYzMTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9kdWN0cyAqLywKQEAgLTEwNzcs
NiArMTEyNiw3IEBACiAJCUE4QTQ3MzFCMTUxQTgyNUIwMDQxMjNGRiAvKiB0ZXh0ICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc5MTFENTU5OEUx
MDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJCQkxQzE4MUM4ODFEMzA3QUI4MDBGNUZB
MTYgLyogaWN1ICovLAogCQkJCUE1QkExNUY2MTgyNDM1OUUwMEE4MkU2OSAvKiBjZiAqLywKIAkJ
CQlBNUJBMTVGMTE4MjQzMzlGMDBBODJFNjkgLyogbWFjICovLApAQCAtMTQ2Miw2ICsxNTEyLDcg
QEAKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTFD
RDE4Nzg4MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTY1
QUZBMjhFMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsK
IAkJCW5hbWUgPSBXVEY7CkBAIC0xNDkyLDEyICsxNTQzLDI3IEBACiAJCQl0YXJnZXRzID0gKAog
CQkJCTVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NiAvKiBXVEYgKi8sCiAJCQkJNjVBRkExNkYxNjMw
Qjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi8sCisJCQkJMUNEMTg3ODExRDU1Njk1
QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVCRDE4RkNFNTY5MDBC
M0Q3RkYgLyogbWJtYWxsb2MgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2Vj
dGlvbiAqLwogCiAvKiBCZWdpbiBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLwor
CQkxQ0QxODc4MjFENTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICov
ID0geworCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25N
YXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAo
CisJCQkpOworCQkJbmFtZSA9ICJHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMiOworCQkJb3V0cHV0
UGF0aHMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAibWtkaXIgLXAg
XCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcbmNkIFwiJHtCVUlM
VF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURlwiXG5cbi9iaW4vbG4gLXNmaCBcIiR7
U1JDUk9PVH1cIiBXVEZcbmV4cG9ydCBXVEY9XCJXVEZcIlxuXG5leHBvcnQgSEFWRV9FWFRSQV9J
Q1VfTkFNRURfU0VUUz0xXG5pZiBbIFwiJFNES19WRVJTSU9OXCIgPT0gXCIxMC4xMFwiIF07IHRo
ZW5cbiAgICBleHBvcnQgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPTBcbmVsc2VcbiAgICBleHBv
cnQgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPTFcbmZpXG5cbmlmIFsgXCIke0FDVElPTn1cIiA9
IFwiYnVpbGRcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsXCIgLW8gXCIke0FDVElPTn1c
IiA9IFwiaW5zdGFsbGhkcnNcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsYXBpXCIgXTsg
dGhlblxubWFrZSAtLW5vLWJ1aWx0aW4tcnVsZXMgLWYgXCJXVEYvd3RmL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2VcIiAtaiBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5hY3RpdmVjcHVgIFNES1JPT1Q9XCIk
e1NES1JPT1R9XCJcbmZpXG4iOworCQl9OwogCQk2NUFGQTE3MDE2MzBCOTc3MDAzRDcyM0MgLyog
Q29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFz
ZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNjI5LDYgKzE2OTUsMTEg
QEAKIAkJCXRhcmdldCA9IDVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NiAvKiBXVEYgKi87CiAJCQl0
YXJnZXRQcm94eSA9IDE0NDdBRUMzMThGQ0U1NzAwMEIzRDdGRiAvKiBQQlhDb250YWluZXJJdGVt
UHJveHkgKi87CiAJCX07CisJCTFDRDE4Nzg4MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhUYXJnZXRE
ZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdl
dCA9IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi87CisJCQl0
YXJnZXRQcm94eSA9IDFDRDE4Nzg3MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhDb250YWluZXJJdGVt
UHJveHkgKi87CisJCX07CiAJCTY1QUZBMjhFMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhUYXJnZXRE
ZXBlbmRlbmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdl
dCA9IDY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovOwpAQCAt
MTY1OCw2ICsxNzI5LDMwIEBACiAJCQl9OwogCQkJbmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJ
CTFDRDE4Nzg0MUQ1NTY5NUMwMENDN0RFQyAvKiBEZWJ1ZyAqLyA9IHsKKwkJCWlzYSA9IFhDQnVp
bGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA2NTQxQ0FG
NDE2MzBEQjI2MDA2RDBERUMgLyogQ29weVdURkhlYWRlcnMueGNjb25maWcgKi87CisJCQlidWls
ZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9
OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQkxQ0QxODc4NTFENTU2OTVDMDBDQzdERUMgLyog
UmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNv
bmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA2NTQxQ0FGNDE2MzBEQjI2MDA2RDBERUMgLyogQ29weVdU
RkhlYWRlcnMueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1Rf
TkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07
CisJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNh
ID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9
IDY1NDFDQUY0MTYzMERCMjYwMDZEMERFQyAvKiBDb3B5V1RGSGVhZGVycy54Y2NvbmZpZyAqLzsK
KwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUp
IjsKKwkJCX07CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdCNjQxNDY4OUI4
NjAwRTc4Qjc2IC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3
NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CkBAIC0xNzQxLDYgKzE4MzYsMTYgQEAKIAkJ
CWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRDb25maWd1cmF0
aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJCTFDRDE4NzgzMUQ1NTY5NUMwMENDN0RFQyAv
KiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiRGVyaXZl
ZCBTb3VyY2VzIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CisJCQlidWls
ZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTFDRDE4Nzg0MUQ1NTY5NUMwMENDN0RFQyAvKiBEZWJ1
ZyAqLywKKwkJCQkxQ0QxODc4NTFENTU2OTVDMDBDQzdERUMgLyogUmVsZWFzZSAqLywKKwkJCQkx
Q0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJvZHVjdGlvbiAqLywKKwkJCSk7CisJCQlkZWZh
dWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5h
bWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDI0N0I1QzE0Njg5Qjg2MDBFNzhCNzYgLyogQnVp
bGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJXVEYiICovID0gewogCQkJaXNh
ID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dURi93
dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jN2IwZGJmY2Y1NGIwYjg5N2ZjMmVk
ZjUzYzlkMWRhNzgwNjVmZWU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRGVy
aXZlZFNvdXJjZXMubWFrZQpAQCAtMCwwICsxLDQ3IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMgMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorIyAgICAgaXRz
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZAorIyAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorIyBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworQlJFQUtJTkdf
UlVMRVNfRklMRVMgPSBcCisgICAgQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksu
YnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuYnJr
IFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5icmsg
XAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmJy
ayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmJy
ayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
LmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9u
Q0pLLmJyaworCithbGwgOiAkKEJSRUFLSU5HX1JVTEVTX0ZJTEVTKQorCitCcmVha2luZ1J1bGVz
LyUuYnJrIDogJS5wcAorCS4vV1RGL3d0Zi9nZW5icmsgLXEgLWMgLXIgJDwgLW8gJEAKKworQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhUUkFf
SUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQCAkPAorCitM
aW5lQnJlYWtJdGVyYXRvciUucHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvciUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisJLWNhdCAkPyB8IHVuaWZkZWYgLURBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQ9JChBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQpIC1ESEFWRV9FWFRSQV9J
Q1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRACmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9nZW5icmsgYi9Tb3VyY2UvV1RGL3d0Zi9nZW5icmsKbmV3IGZp
bGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjJiODJlNDk4YjI2ZTVhMjY4YjM2MWU0MDg1NTUyODQ3ZTAxOThmOQpHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMjQ3NTIKemNtZUhPNHxHKTNuWkg0ejc9ZUomMXptd0JPRWhaITRHe2hi
Ql9TRG5CU1ZhVlNPb0Y7R1Y+LWdHTVMwKnlAQUJsCnpaSkArNVBFdkIoZ0NjYklQPHpfcilfVE9Q
d3Y9dW0tT3xHOERySCZNam5vM1ZtQSh7S1MrfDE0KSFFOzctK2h6Rwp6PEtPbjJwMGooLXpJJEAt
e2w0I2gtKj48SnlaOE9jejRMeH57QCp7bGhPdlVIODAjOXI3YHAqXj1oY2pMdnMqd2gKemJ8YlFr
dFNGN09jbCVmUW85LXApQEtpOUl5KG1ZMU8ze0kkdG5qWn5GPGdiKU9UJVNNQFE5NVNBfG9XODZ2
Zm0hCnpPdT9YWGBgZDZtMV9TeE9rYFdUfCFfcjlCbUNxfVJWV3dKKW9YRzhPPHN7byp6dENgYSQ2
JUUzSHh3V0ZRPShlRAp6VURLaURfQlJQWVA8I3ZjcGN4fmNhTD1VKzslZzBzNnM7cXF3VlI1bXd6
JlBSeFhKZHtCT0RNdiV3TnYyTyg7c3AKekYhZmxYUm1rMWBQNiZVbWo8Z2tzN2JGK0JlSmVeVHV8
QWR2RTNyZioyQFNXdVpCeTt8OXUpbCVAQWVeQGN0emBFCnowTjV4PmVlSF9jeWNXcyEhXlIwMmMl
QjRMPmpaMDx1TjlJak4rUFpwb295fTJ4WUJPd20tT2VqVzBHeDh3dj1jLQp6Ql9jI3BsLTZZNHZi
KF9GSUxWRj0lWWBUNkRJTz0wemlBR0dUMmJRYTw+RClxI0NVLVBDRjFrXyhSZlIhS19vPjkKenRF
VEYzN3ZmaVNpfHVjLUBKRD85eWJmOH5sJWxqNExzIUx4eyZyKDk8WjR1JlZTYXB+bl9NZit0OT41
ezF7Iys3Cno+alRhYHBofUZoTXlQX1B2YGZAOSZVfDAhd3U/OFI3PkJsVHNKRWVoOXlSe2gwRSpw
TVYwfDt+YDIpI2xQSWlPOAp6My0jbDNwXnJlWDFLbyZCPkNaJV9la0xNTU40YHt3JlNBYGRrO2J1
Kk55d3YtRF5yR0U4SVFHOGhDQWI3QFJhQD4Kem5jYEA9QCNIcj9lWXhzYHI/LXhzZkF7Q3MrKGRu
aUx1UjlrYylyOG9OcnFJNEBzaXpNKkx7cm8hQkR0UThZMyYxCnpNfV9EKzhCKmdzMHo/ckRyT1o/
WExXIzlOPE1NV2gqfHJFSmIqLVd7WEp5K0Z6N3p9Wlp7JHFDPEA5SVVoMz5xdwp6IVk2RGw9IWQ8
RDx1K1ZAZDhjNyZaNTUwMng/IzclS2pFPHBeRj9keGNFUXY5UUpSY1E/YX42d0AjUTlwbClkQzMK
ejszNDI0OzM0MjQ7MzQyNDszNDI0OzM0cFQzeFFAaXtvZUElXmUxd3J4KWQrPWFfXzxiLXVyJDFS
cyNQclRqI0tpCnpCZDMxPz1fNmIhcnc+YHBYaDxLb3JsMkNAK0FxfUpVKXgtfVYhNkVHXmcpYSpr
VWw0ODNLeHVsVkZ0R1QhdzM5NQp6R35fXyQ4YVo5S3puSjxNKH5TU3VfRk4wOHdIIVRrX1pNJUQ7
aCh+JTNjbjBfUVEtcTlpQFBeSyh6UzN1e2J5SWEKej1gVlRuMns0PWJpI040XzN1ZGFmZkRMQktj
Y0pROWMjMEl3KFE7PHRLflBvemVucm98ezwoIWB4b1hNM1AqcSVpCnpWczdDVzk/MGJQNVFKUEBL
T3B4JChQSV9FQ2k2czNjZVojLUhGfVdLZV9mVCRXYCE1SXg3dl5ZNXJnUy0hU3QpOAp6a1h4bDNv
Uyh8d3piZjd8N3k3PWxkKzEqPzhRQElpT348WHRyfn5QcmBfQjR+a2EhZmF5LVNKJFU7NkI8ZUJj
MF8KeldhWip6QTZ4elMtejw8bXUkVFM9NHlMb2deb01mI0UkYTxQZ1koVzVjZlN2fWJ3M3xEaHI5
a1JxO2haYlgxUkErCno0fE1DKFhSUjFTQkpMTlU4Y2NzezlDX35VNTJpbWMkSDx7Jm4/Y0Ewe317
T2FQJSE7dGllMnRhXn5tVzFSeUZUPAp6emM3QUA4XjAoKUFxZWpqYnVqJX5neUspMXZCdWUqZD97
TzgtMkZFUVJLUVotK2ZnOD15Qz1iQlk0M3RYKTwqeSQKemtwM0NqISMwP0h6ZG42bGNzUFY2KGJG
MEBLKHFDPzFhdDJiZVNZK0hIa2tnTW9hclNgUnhgO0Ria34zZUJ5OFhGCnooNj81U0ZpbSl5SCg+
eU1hXz80QkFScXxiYXhAM2gkQ2psKDtHRzBCRlZhWWh3X0psITF1fEY1bkohd01hX180UAp6QWpV
TGk0K3Fsd1ljdXVKTjJVdjMjZU17cTwjVlgpazt8RE1hfHw8RUlVMVI2U18jJjc7UitGbUw3WU5S
blhUanYKei0zUVlydCFKczNCWVdLWEdVIVptUHhxMUhFZ3dQZXU1UXZSP2pDQ2dMKXx4eSF0YDFE
QVBBO0V1enJCcmRLXlg5CnohZXtCOV90YT15YlBaVVkpK3E9SEJXbm99blprRXkkPlAkdyVZVjRJ
bj5HVnt7cWx6V0dgN3tYNTd3QCFlVytHaAp6XkhiPmtnekhWUiVFXnFiO3AjV0JuPXwtdDFWVSFh
SCtrIzRhfDgwV0t4Vj1Mdn5JKSZqcTgzVClifUFgWDEoKUMKekh0V2s7TV5WOUAmSjlLKHM9dEVi
LVdreD8hX15rJDQwaFI/R0Jrc2tzejdGe14pZlc8eks/Vjc3YEwyMFlXKkghCnp5QVJySGchOWpG
PVdgTG9aPWlRLUpWWWFNcUVwO2QmVFFwWi1FT2k0bVJhbFR3KFZRRUdzJjRybVktTlkmVlJOSQp6
KCNQZldGRCUrfCEtUUUwVGwpb31KJnxrd0wjQ0lPUDxeSm05dT5NajsrUl5FIWZyT3whRU8jKFZM
fSltQzY7JmYKelRTcCheKE1xdnk2bFN6O0ZeVUQ7ZihDWSlZZyZKUm9XZVBkZGhxMEA5TkxMRnJU
PyhxMzE2PjZYQ0l0cXQoUXJBCnpLZVRaKDtjSDwmMU9VXmJUZFVRSmYqTm9VUkRlQTc+ciheU2wz
IXI1dm44K2JAKD9jJV5ZUkVVLXsyKUpoLX1GSwp6Rk9UeF9aQylQWjxxMk5DJWdmKkpAKzI9VVVq
Qn1rcitOODRGVkZEdUx0ZyUjbXVHcVRGKXo+YV4xcGFWTTtfU3sKeitGOzYtak5zKStVUzdAMVE3
RDdHbEx2dUM/ZWM4TlRkNGJANyNIdlk3U1M3c2RZaD0qaCZuPFBaN21LU0J4KlRQCnpkeGAySz5K
XzRQNWNNNlJKfGIhLVFSOFZecEMrbnxzMi12ZzYxOTtpbio2fklxU2d8WEFuR3hxIWJFSylZODZw
Kgp6VW05I0E+TlRSNDVPc193eTRzXyglbS0lPmJzZXNlTDBaMWk9fG9LLSUxNmAkcUgyZ0xCQzNI
WE0kfChAbyY1fHsKem9UJEA4Sngwe0tMflNOJmZUKEFQSXotZ0JpUHtlO3lRNnpVUn5OZiNCZjRq
ZGpDZGt+d3BUTkYyKGo7aCE0cl5LCnp4VH5gX3okYF9yUV9FRGBNcm8mIXIrZE1Xa2hpUD02WDhB
fioja3BiWX09XiQ5R0c+RVN7byRnVjBkYWEpSytjMgp6UkFOWjAlaCM8emshJnwoJCVMXitEJVR9
Rjcxem9tdkE4Q2NDIzdWe1kpX2UtRW4/UjtYPSslQ0M4UVF6UWBicnsKelFgMSRsPDBnaGdYSGIl
dzJ1dGdBRz9BJWZNbTREPW1RZUxoaUZWP1BMX2hQM3R9VHlCTm5JKm0jTElGejhJcXRLCnpHbyUj
NyMoaEVRZSFGPntyV0AxYEJfbzwjRlI3OXZZU1JvZGZOc2R2NEpGJDxeO20xdmdsO1NtaWxAUkYp
UTY7cgp6cSF8bTV7PEBzK21aWUleLSkyZnJOYXpSN3h5Jjl0YlJWXktBNUZ6SEA9R2I0bDtCRFYk
QmcjNCs5fEQ5XiNsJSgKejM9VGxNb0B+Xy03JVhHOUNIOSpNZk4pSFFXbFl5WFcpaGYwMDZgcXYo
azNpbiplTkE2RXZ5bTVmVk5FdyQ1aH0qCnpiYHM1cFFDNClWLVNfWV5sOG5jYj50V1c/RFlkSSt2
YGgrWDVqN1B6RihwWSVHTks2RVFHXythPFJNVn1wZk5MaQp6eyZFcU9BKjNOXkc8KVEqaC10Y3hQ
JS1uTldMcTBlYVhnail0YUB2ek8tcT40dj1VPWw1dT01fTFMWVhsKng3dHIKeiR9cHZ0cSMyYzNH
fDZiIUxhfDZwM3MpMnxzVitCTHJGRk1VR3BjO0UlY0tCfS1pfU8tT04mem1gWjVlQG5IcWBgCnox
c2xDUkRPTWlFMD40LXY2O2Y/SEU7WjUyOCZaPklYITwmSUErWnU7ejckZHVlNm5KUm0+RTshdkJ4
d2lQfWZ8Ngp6I2JsfnglOChXa049JEVJYjsocGIldkY9XlRFWShBOS1OO2VmT1F8SHgjRXxILUgt
fDspK3dZdHBMfE5UVVM1LSMKellfNXh7SS0rbmxodjNjQm50PEEzKXpIRj0+N29rb1lidlJgd0l4
WTRaT31gP1d0ZkZ7c3gyWHZnb3t8S21UMXd9CnomSWMmTkJGeyZrZistVm88ZnoqZFQ0RzxURyRO
WW9KZms5SjR9Pm1kLXQ2MjhAYHB9V0VmZCFZcE04VkQxc2h1SAp6T2V7RS15WmppeGdxLWAzUSMo
PGEkeitfQ1NiSlBFdjdVYG9EMUAxaHF+aF5UeH50KSZndDQyMjUhSio/JGFGS00KenZxZGBCdF5y
TUZLbzhLTjN7bmo7b2ZGWCtGbTlETj5sd2kmYTBeemo1ZDElX0VXRUZQNip6WkxOZEQpazZiRT1A
CnpJNzhHNk03PjFSamlPIzk+YWVJMnFWNXAmTXA1Xk9gZXsrYDYhbXZSe2ZlbWZpdSQwYWtCSGhH
YFApSyVRcSpUZQp6ZU99WmZmZUZQd1JAOVMzSngkYlFxTWp9NDhkMlhQWU54K1I/QzVQMUk1VURS
KjRJayhubCY7SChjN2xse1ckdlcKem4haVV0Y3FQMz4hbSNXTHteK1NrWTFTMz1iUD9uSEU5ZlBL
LXNpOE43WlpBY0U5aXhWLWhFZmwzKSNiOXRGTkg8CnpzTD1CJjQqP0dXNCo/R1c0Kj9HVzQqP0dX
NCo/R1c0Kj9IPktNc05NKEBHentlKHs2O3UySXJgV08rbDRxTzF6NQp6anFCS2JgdEV8QUE3ZUx7
ci1EOWVOVF9ZaEJ+d35FSXUhaVktQUU+fC1ER3d1PiNBN1NMRH5oVFJNMG04Y0tENkcKejhkfEdf
cUhDNGJsJlhncklmRjJheV90M31eZ0NKcEpBNEhAczFVTlEwbyRBJCp5SCk1IWgocmpJPSk2cERl
YyZmCnoocldjcWdZX31KaWJTLT5zTXp+YUIlN08pTVgrVU5MYGhiWWxreDR7I25gdThPTEY7b2ls
U2pBYzcxI15uLWo1Ngp6R09SNzxLYz10cWBQSWd5V3trOE5GUjR9VV5SRlh+bHx2ZGNXP1h6ejM9
VyU/SFlgX017ckg9RnpVRD82NldfQ0gKekA+TWwrcTdJUmU9WkErcCZ1THohd1BFS3E5UVJgfihI
NmIxRXdTRjtNb3NOI04tM2VaclkySUQ1MmtsOzBjSXp1CnpIPmhwZ2J5b3FHd1E2UVA1VWg3TGMx
ZTQpLTklZkMjUC0+JmFTX2RKeW90NkVMdmlkeGxsSVA+RDIkITNrbT13Vwp6WXNKMjNPNk5NeT1Y
N1pJaypzIypCK2pOSU5lPnAjWUhQTVhOV2pKQHdyb2ohbjJZbGtWTUw5XnNiUFFgdjxeRyQKejZV
MFB2YWFvKm9gYThxOWM2Pk50TSMlREcmZUkrI2FhfCtHKVgrNChPZzN9USlaKUM0S0Y7eGxNNV4w
fTlyQ2wyCnp2bmk5LXI9MUVFcjdlbn1IMmlFXiEqP1ZxVEBNcCErbUVMV0NBNT5yKiFfQCVJYnwx
Zys/JnNUNkAyOFgwPTlKQwp6eDR1OWN2PCp7JSF1ZFg/NUYzUWteTFQyWGolPDZrXiYyM309Z0ZT
LTdmRS1idXk9VUplbWZuPEFRNGFZNG5HPEMKeng4anQ+YENnP0d5aE1zMyY3Xmt4eXJKPEgrcVE7
eW9RNkIhOElWNmBGTnNWViZeYHIxWEZMeEotaWFweWVyI1RVCno5bj1wMFJsQCh7KVNsTzBuKXRs
XzI9TCtwezImRjFgbGZGTFB7WDYwWm5iJCo8N28qPndDREkxN3lvQDF8Qyk8YAp6aHgxKkMhY0sh
T3t0Vn4md2t9dD04bEMwR0dzKHJAPkVoYFdJYldaP0tnI0ZwVUhub1B6cnd8QGNKVkRQcDdzYXYK
em0mNUIoN3ZKZ1B6aTlKMHtHTXwwJiQjIyhUPlNUSjk7S2M3VUZ+blVfIUJQdlF4YHU5a3dCRC1o
cHM/ZCNyOXZ+Cno7JUI7ZXpzPXt5P31IZ1c5cFVAK15IOV40SitgSjl3d0wrMEErKk8maG5CU1lV
eHszV09oMGo7Jm1Md1dTMG0zeAp6b3tUJk5uR1JBVjxpOXxraiRERkZZbSR6bk9PYkMhejYxR0E8
VEIqPiRWZkhWVVMrbytQZWNDU2ohOXd7eVZ0cEkKejs4JUwmVVpSfnBZQE4xMDx6dj9JSXM1X1pt
aHdqe2cjMStzSE44M0VvIyFHaU9UJTd8Xz4qYXYjQ35EUWR0SV8wCnpTazlBNWlTUzMxNSlzYzdD
QmgjezslVEhyXyt2PGsqdn12NSFLMmB5K2hCUSplMl95QWRvVUx+PHNzdmJjaHAwIwp6UkE0VDYk
U2VHaSgwKz5BXmQlbmFjQjM2VXg1KylvaHJnbzxQUTBCN0Y3TGhVZl9LTnRge35GfkdiLXNscjgx
Z3EKeig8KlYwK2tzPSljKH5IZ0x6T3QzVCE5bmVPOFkzVFFrKk1SZ3hjSExXbztMeVYoYEZeWXto
fUs7ck9hKDtjWlBDCnpVWkQoNGNveEVZVE9QcXtqWnZPUj5UVVFjdDdHbkxXJWV2YkM1YzZgJUlE
KzExZ0s0Zj50a0FzRFEjKmohUzFmQgp6JWxxc3p1S0FifWoqQG44amAoUS1YWGVyWUpieT5+bFIz
aGpWSk13SEhvNn5vekxrKFQmbkNMdihBfStgWml1S0cKenArbWdITXNOWFd3aUI2ZFZNT0J8eElt
SWRASzRYY0c2OHNiSFBXbmt2dTBKI0BYZ2FedEctQ00jVyVBYGlfRHVuCnp1ZXdUYHNtX3w/dEY4
fEZSSk5eQz5UN3NHOD1MQ3JEWkZScnVCTGBaeTduRW8+Nl8mckFEUSMqaUZKUT9rfl9Vagp6QHBt
aD9lZUtASUtBaUd7TVlINGtONThWOzxYM3l7SWBOO2MtfF9kYFV0QldyJkZ3UF5FNUNrOThAT1pi
X3ZnR18KenhPd31ZSWpgQCNYWipYKiZEZTdDP2s4S0h5TG5fXi1MantpZWUpYWRaSlAyKUBHSE9t
O2pkYm91Yj1lTjFKP0Z1CnplKStSZ1BreXYoJT15cmNBQyo1YnpOUi0tSEVZLUVuQHw1fSRMR3Ip
eTdBRGBtcCtUQ14qPGM3YVdDKjhWQ1l3TQp6P0VKQ29oe2k5Qnl5UExeQT5iazRBPmJrNEE+Yms0
QT5iazRBPmJrNEE+Yms0QT5iazRBPmJrNEE+Yms0QT5iazQKZ0E+Yms0QT5iazRBPmJrNEE+Yms0
QT5iazRBPmJrS3t8fHh4MXwhMTk5c21GVQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTE1MTY3MjBiZmFmMTNmMWNi
MDAxMTM5ZGRlNDNiOTUwZTA1NzA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKQEAgLTAs
MCArMSwxNDIgQEAKKyRDUiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ1J9
XTsKKyRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsKKyRDb250
cm9sID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOworJFZvaWNlTWFy
a3MgPSBbXFx1RkY5RVxcdUZGOUZdOyAjIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9p
Y2VkIG1hcmtzCiskRXh0ZW5kICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVu
ZH0gJFZvaWNlTWFya3MgLSBbXFx1MEUzMCBcXHUwRTMyIFxcdTBFNDUgXFx1MEVCMCBcXHUwRUIy
XV07CiskU3BhY2luZ01hcmsgPSBbW1xccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJr
fV0gLSAkRXh0ZW5kXTsKKyRMICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
TH1dOworJFYgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07CiskVCAg
ICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFR9XTsKKyRMViAgICAgID0gW1xc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsKKyRMVlQgICAgID0gW1xccHtHcmFwaGVt
ZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07CiskSGluMCAgICA9IFtcXHUwOTA1LVxcdTA5MzldOyAj
IERldmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCiskSGluViAgICA9IFxcdTA5NEQ7ICMgRGV2YW5h
Z2FyaSBTaWduIFZpcmFtYQorJEhpbjEgICAgPSBbXFx1MDkxNS1cXHUwOTM5XTsgIyBEZXZhbmFn
YXJpIExldHRlciBLYSwuLi4sSGEKKyRCZW4wICAgID0gW1xcdTA5ODUtXFx1MDlCOV07ICMgQmVu
Z2FsaSBMZXR0ZXIgQSwuLi4sSGEKKyRCZW5WICAgID0gXFx1MDlDRDsgIyBCZW5nYWxpIFNpZ24g
VmlyYW1hCiskQmVuMSAgICA9IFtcXHUwOTk1LVxcdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVyIEth
LC4uLixIYQorJFBhbjAgICAgPSBbXFx1MEEwNS1cXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIg
QSwuLi4sSGEKKyRQYW5WICAgID0gXFx1MEE0RDsgIyBHdXJtdWtoaSBTaWduIFZpcmFtYQorJFBh
bjEgICAgPSBbXFx1MEExNS1cXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCisk
R3VqMCAgICA9IFtcXHUwQTg1LVxcdTBBQjldOyAjIEd1amFyYXRpIExldHRlciBBLC4uLixIYQor
JEd1alYgICAgPSBcXHUwQUNEOyAjIEd1amFyYXRpIFNpZ24gVmlyYW1hCiskR3VqMSAgICA9IFtc
XHUwQTk1LVxcdTBBQjldOyAjIEd1amFyYXRpIExldHRlciBLYSwuLi4sSGEKKyRPcmkwICAgID0g
W1xcdTBCMDUtXFx1MEIzOV07ICMgT3JpeWEgTGV0dGVyIEEsLi4uLEhhCiskT3JpViAgICA9IFxc
dTBCNEQ7ICMgT3JpeWEgU2lnbiBWaXJhbWEKKyRPcmkxICAgID0gW1xcdTBCMTUtXFx1MEIzOV07
ICMgT3JpeWEgTGV0dGVyIEthLC4uLixIYQorJFRlbDAgICAgPSBbXFx1MEMwNS1cXHUwQzM5XTsg
IyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9IFxcdTBDNEQ7ICMgVGVsdWd1IFNp
Z24gVmlyYW1hCiskVGVsMSAgICA9IFtcXHUwQzE0LVxcdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIg
S2EsLi4uLEhhCiskS2FuMCAgICA9IFtcXHUwQzg1LVxcdTBDQjldOyAjIEthbm5hZGEgTGV0dGVy
IEEsLi4uLEhhCiskS2FuViAgICA9IFxcdTBDQ0Q7ICMgS2FubmFkYSBTaWduIFZpcmFtYQorJEth
bjEgICAgPSBbXFx1MEM5NS1cXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4uLixIYQorJE1h
bDAgICAgPSBbXFx1MEQwNS1cXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCisk
TWFsViAgICA9IFxcdTBENEQ7ICMgTWFsYXlhbGFtIFNpZ24gVmlyYW1hCiskTWFsMSAgICA9IFtc
XHUwRDE1LVxcdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRSSSAgICAgID0g
W1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsgIyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCisk
WldKICAgICA9IFxcdTIwMEQ7ICMgWmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9IFtcXHVG
RTBGXTsgIyBFbW9qaS1zdHlsZSB2YXJpYXRpb24gc2VsZWN0b3IKKworI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1
MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFG
M0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAw
MDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxc
VTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3
IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFG
NjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAw
MDFGNkI0LVxcVTAwMDFGNkI2XTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1
ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3
MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAw
MUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxV
MDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0Mg
XFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0
QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAw
MUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxV
MDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MThdIDsgIyBFbW9qaSB0
aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JT
ZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJdOyAjIEVt
b2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMg
PSBbXFx1MjYxRCBcXHUyNzBBLVxcdTI3MEMgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAw
MUYzQzQgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0EgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxV
MDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUt
XFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0
ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAw
MUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxV
MDAwMUY2QjYgXFxVMDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9k
aWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZG
XTsgIyBGaXR6cGF0cmljayBtb2RpZmllcnMKKyEhY2hhaW47CisKKyNpZiBBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQKKworICAgICEhUklOb0NoYWluOworCisjZW5kaWYKKworISFmb3J3YXJkOwor
JENSICRMRjsKKyRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7CisoJExWIHwgJFYpICgkViB8ICRU
KTsKKygkTFZUIHwgJFQpICRUOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAg
ICAkUkkgJFJJICRFeHRlbmQqIC8gJFJJOworICAgICRSSSAkUkkgJEV4dGVuZCo7CisgICAgW14k
Q29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJFNwYWNp
bmdNYXJrOworCisjZWxzZQorCisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOworICAg
IFteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOworICAgICRSSSAkUkkgLyAkUkk7Cisg
ICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4wICRIaW5WICRIaW4xOyAjIERldmFuYWdhcmkg
VmlyYW1hIChmb3J3YXJkKQorJEJlbjAgJEJlblYgJEJlbjE7ICMgQmVuZ2FsaSBWaXJhbWEgKGZv
cndhcmQpCiskUGFuMCAkUGFuViAkUGFuMTsgIyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCisk
R3VqMCAkR3VqViAkR3VqMTsgIyBHdWphcmF0aSBWaXJhbWEgKGZvcndhcmQpCiskT3JpMCAkT3Jp
ViAkT3JpMTsgIyBPcml5YSBWaXJhbWEgKGZvcndhcmQpCiskVGVsMCAkVGVsViAkVGVsMTsgIyBU
ZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQorJEthbjAgJEthblYgJEthbjE7ICMgS2FubmFkYSBWaXJh
bWEgKGZvcndhcmQpCiskTWFsMCAkTWFsViAkTWFsMTsgIyBNYWxheWFsYW0gVmlyYW1hIChmb3J3
YXJkKQorJFpXSiAkRW1vamlGb3JTZXFzOyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVl
bmNlcworJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7ICMgRG9udCBicmVhayBi
ZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3Rvcikg
YW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCishIXJldmVyc2U7CiskTEYgJENSOworKCRMIHwgJFYg
fCAkTFYgfCAkTFZUKSAkTDsKKygkViB8ICRUKSAoJExWIHwgJFYpOworJFQgKCRMVlQgfCAkVCk7
CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFeHRlbmQqICRSSSAkUkkg
LyAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQqICRSSSAkUkk7CisgICAgJEV4dGVuZCAg
ICAgIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENS
ICRMRl07CisKKyNlbHNlCisKKyAgICAkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsK
KyAgICAkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkUkkgJFJJIC8gJFJJ
ICRSSTsKKyAgICAkUkkgJFJJOworCisjZW5kaWYKKworJEhpbjEgJEhpblYgJEhpbjA7ICMgRGV2
YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQorJEJlbjEgJEJlblYgJEJlbjA7ICMgQmVuZ2FsaSBW
aXJhbWEgKGJhY2t3YXJkKQorJFBhbjEgJFBhblYgJFBhbjA7ICMgR3VybXVraGkgVmlyYW1hIChi
YWNrd2FyZCkKKyRHdWoxICRHdWpWICRHdWowOyAjIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQp
CiskT3JpMSAkT3JpViAkT3JpMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJFRlbDEg
JFRlbFYgJFRlbDA7ICMgVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCiskS2FuMSAkS2FuViAkS2Fu
MDsgIyBLYW5uYWRhIFZpcmFtYSAoYmFja3dhcmQpCiskTWFsMSAkTWFsViAkTWFsMDsgIyBNYWxh
eWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKKyRFbW9qaUZvclNlcXMgJFpXSjsgIyBEb250IGJyZWFr
IGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JN
b2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2
YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorCisjaWYgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIXNhZmVfcmV2ZXJzZTsKKyAgICAkUkkgJFJJKzsK
KyAgICBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOworICAgICEhc2FmZV9m
b3J3YXJkOworICAgICRSSSAkUkkrOworICAgICRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1v
amlNb2RzXSs7CisKKyNlbHNlCisKKyAgICBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlG
b3JNb2RzOworICAgICRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7CisgICAg
ISFzYWZlX3JldmVyc2U7CisgICAgISFzYWZlX2ZvcndhcmQ7CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBp
bG9ndWUudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yRXBpbG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3NDM5OTg3ZDcyZTk1NzAzYjFkOGUwNjdm
ZWEzN2UwNjY5ZjQ2OGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKQEAgLTAsMCArMSwzNDcg
QEAKKyRBSSA9IFs6TGluZUJyZWFrID0gQW1iaWd1b3VzOl07CiskQUwgPSBbOkxpbmVCcmVhayA9
IEFscGhhYmV0aWM6XTsKKyRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFf
U1VCXTsKKyRCQiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07CiskQksgPSBbOkxpbmVC
cmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOworJEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19Cb3Ro
Ol07CiskQ0IgPSBbOkxpbmVCcmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsKKyRDTCA9IFs6TGlu
ZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246XTsKKyRDTSA9IFs6TGluZUJyZWFrID0gQ29tYmlu
aW5nX01hcms6XTsKKyRDUCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsKKyRD
UiA9IFs6TGluZUJyZWFrID0gQ2FycmlhZ2VfUmV0dXJuOl07CiskRVggPSBbWzpMaW5lQnJlYWsg
PSBFeGNsYW1hdGlvbjpdIC0gJEVYX1NVQl07CiskR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsK
KworI2lmIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMKKworICAgICRITCA9IFs6TGluZUJyZWFr
ID0gSGVicmV3X0xldHRlcjpdOworCisjZWxzZQorCisgICAgJEhMID0gW1s6SGVicmV3Ol0gJiBb
OkxldHRlcjpdXTsKKworI2VuZGlmCisKKyRIWSA9IFs6TGluZUJyZWFrID0gSHlwaGVuOl07Cisk
SDIgPSBbOkxpbmVCcmVhayA9IEgyOl07CiskSDMgPSBbOkxpbmVCcmVhayA9IEgzOl07CiskSUQg
PSBbW1tbOkxpbmVCcmVhayA9IElkZW9ncmFwaGljOl0gLSAkQ0pdICRJRF9BRERdIC0gJElEX1NV
Ql07CiskSU4gPSBbWzpMaW5lQnJlYWsgPSBJbnNlcGFyYWJsZTpdIC0gJElOX1NVQl07CiskSVMg
PSBbWzpMaW5lQnJlYWsgPSBJbmZpeF9OdW1lcmljOl0gLSAkSVNfU1VCXTsKKyRKTCA9IFs6TGlu
ZUJyZWFrID0gSkw6XTsKKyRKViA9IFs6TGluZUJyZWFrID0gSlY6XTsKKyRKVCA9IFs6TGluZUJy
ZWFrID0gSlQ6XTsKKyRMRiA9IFs6TGluZUJyZWFrID0gTGluZV9GZWVkOl07CiskTkwgPSBbOkxp
bmVCcmVhayA9IE5leHRfTGluZTpdOworJE5TID0gW1tbWzpMaW5lQnJlYWsgPSBOb25zdGFydGVy
Ol0gLSAkQ0pdICROU19BRERdIC0gJE5TX1NVQl07CiskTlUgPSBbOkxpbmVCcmVhayA9IE51bWVy
aWM6XTsKKyRPUCA9IFs6TGluZUJyZWFrID0gT3Blbl9QdW5jdHVhdGlvbjpdOworJFBPID0gW1s6
TGluZUJyZWFrID0gUG9zdGZpeF9OdW1lcmljOl0gLSAkUE9fU1VCXTsKKyRQUiA9IFtbOkxpbmVC
cmVhayA9IFByZWZpeF9OdW1lcmljOl0gLSAkUFJfU1VCXTsKKyRRVSA9IFs6TGluZUJyZWFrID0g
UXVvdGF0aW9uOl07CiskUkkgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOworJFNBID0gWzpM
aW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsKKyRTRyA9IFs6TGluZUJyZWFrID0gU3Vycm9n
YXRlOl07CiskU1AgPSBbOkxpbmVCcmVhayA9IFNwYWNlOl07CiskU1kgPSBbOkxpbmVCcmVhayA9
IEJyZWFrX1N5bWJvbHM6XTsKKyRXSiA9IFs6TGluZUJyZWFrID0gV29yZF9Kb2luZXI6XTsKKyRY
WCA9IFs6TGluZUJyZWFrID0gVW5rbm93bjpdOworJFpXID0gWzpMaW5lQnJlYWsgPSBaV1NwYWNl
Ol07CiskWldKID0gXFx1MjAwRDsKKyRFbW9qaVZhciA9IFxcdUZFMEY7CisKKyNpZiBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFbW9qaUZvclNlcXMgPSBbXFx1MjY0MCBcXHUyNjQy
IFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUw
MDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBcXFUwMDAxRjQ2Ni1c
XFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3MSBcXFUwMDAxRjQ3
MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAxRjQ4Ni1cXFUwMDAx
RjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUwMDAxRjY0NS1cXFUw
MDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBcXFUwMDAxRjZBMyBc
XFUwMDAxRjZCNC1cXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0og
c2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1c
XHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxc
VTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUw
IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFG
NDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAw
MDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxc
VTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEz
IFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4XSA7ICMgRW1v
amkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZWxzZQorCisgICAgJEVtb2pp
Rm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDhCXTsK
KyAgICAkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1
IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFG
NDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAw
MDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxc
VTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2
IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFG
NkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0
YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcXFUw
MDAxRjNGQi1cXFUwMDAxRjNGRl07CiskZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxl
eF9Db250ZXh0Ol07CiskQUxQbHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOworJEFMY20gPSAk
QUxQbHVzICRDTSo7CiskQkFjbSA9ICRCQSAkQ00qOworJEJCY20gPSAkQkIgJENNKjsKKyRCMmNt
ID0gJEIyICRDTSo7CiskQ0xjbSA9ICRDTCAkQ00qOworJENQY20gPSAkQ1AgJENNKjsKKyRFWGNt
ID0gJEVYICRDTSo7CiskR0xjbSA9ICRHTCAkQ00qOworJEhMY20gPSAkSEwgJENNKjsKKyRIWWNt
ID0gJEhZICRDTSo7CiskSDJjbSA9ICRIMiAkQ00qOworJEgzY20gPSAkSDMgJENNKjsKKyRJRGNt
ID0gJElEICRDTSo7CiskSU5jbSA9ICRJTiAkQ00qOworJElTY20gPSAkSVMgJENNKjsKKyRKTGNt
ID0gJEpMICRDTSo7CiskSlZjbSA9ICRKViAkQ00qOworJEpUY20gPSAkSlQgJENNKjsKKyROU2Nt
ID0gJE5TICRDTSo7CiskTlVjbSA9ICROVSAkQ00qOworJE9QY20gPSAkT1AgJENNKjsKKyRQT2Nt
ID0gJFBPICRDTSo7CiskUFJjbSA9ICRQUiAkQ00qOworJFFVY20gPSAkUVUgJENNKjsKKyRSSWNt
ID0gJFJJICRDTSo7CiskU1ljbSA9ICRTWSAkQ00qOworJFdKY20gPSAkV0ogJENNKjsKKworISFm
b3J3YXJkOworJENBTl9DTSA9IFteJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRDQU5U
X0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07CiskQUxfRk9MTE9XX05PQ00gPSBb
JEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOworJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAk
SEwgJElTICRTWSAkV0ogJEdMICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsK
KyRBTF9GT0xMT1cgPSBbJEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOworJExCNEJyZWFr
cyA9IFskQksgJENSICRMRiAkTkxdOworJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5M
XTsKKyRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOworJExCOE5vbkJyZWFrcyA9IFtbJExC
NE5vbkJyZWFrc10gLSBbJFpXXV07CiskTEIxOE5vbkJyZWFrcyA9IFskTEI4Tm9uQnJlYWtzIC0g
WyRTUF1dOworJExCMThCcmVha3MgPSBbJExCOEJyZWFrcyAkU1BdOworJExCMjBOb25CcmVha3Mg
PSBbJExCMThOb25CcmVha3MgLSAkQ0JdOworJEFMUGx1cyAkQ00rOworJEJBICRDTSs7CiskQkIg
JENNKzsKKyRCMiAkQ00rOworJENMICRDTSs7CiskQ1AgJENNKzsKKyRFWCAkQ00rOworJEdMICRD
TSs7CiskSEwgJENNKzsKKyRIWSAkQ00rOworJEgyICRDTSs7CiskSDMgJENNKzsKKyRJRCAkQ00r
OworJElOICRDTSs7CiskSVMgJENNKzsKKyRKTCAkQ00rOworJEpWICRDTSs7CiskSlQgJENNKzsK
KyROUyAkQ00rOworJE5VICRDTSs7CiskT1AgJENNKzsKKyRQTyAkQ00rOworJFBSICRDTSs7Cisk
UVUgJENNKzsKKyRSSSAkQ00rOworJFNZICRDTSs7CiskV0ogJENNKzsKKyRDUiAkTEYgezEwMH07
CiskTEI0Tm9uQnJlYWtzPyAkTEI0QnJlYWtzIHsxMDB9OworJENBTl9DTSAkQ00qICRMQjRCcmVh
a3MgezEwMH07CiskQ00rICRMQjRCcmVha3MgezEwMH07CiskTEI0Tm9uQnJlYWtzIFskU1AgJFpX
XTsKKyRDQU5fQ00gJENNKiBbJFNQICRaV107CiskQ00rIFskU1AgJFpXXTsKKyRFbW9qaUZvclNl
cXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7CiskQ0FOX0NNICRD
TSs7CiskQ00rOworJENBTl9DTSAkQ00qICRXSmNtOworJExCOE5vbkJyZWFrcyAkV0pjbTsKKyRD
TSsgJFdKY207CiskV0pjbSAkQ0FOVF9DTTsKKyRXSmNtICRDQU5fQ00gJENNKjsKKyRHTGNtICRD
QU5fQ00gJENNKjsKKyRHTGNtICRDQU5UX0NNOworW1skTEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJB
ICRIWV1dICRDTSogJEdMY207CiskQ00rIEdMY207CiskTEI4Tm9uQnJlYWtzICRDTDsKKyRDQU5f
Q00gJENNKiAkQ0w7CiskQ00rICRDTDsKKyRMQjhOb25CcmVha3MgJENQOworJENBTl9DTSAkQ00q
ICRDUDsKKyRDTSsgJENQOworJExCOE5vbkJyZWFrcyAkRVg7CiskQ0FOX0NNICRDTSogJEVYOwor
JENNKyAkRVg7CiskTEI4Tm9uQnJlYWtzICRJUzsKKyRDQU5fQ00gJENNKiAkSVM7CiskQ00rICRJ
UzsKKyRMQjhOb25CcmVha3MgJFNZOworJENBTl9DTSAkQ00qICRTWTsKKyRDTSsgJFNZOworJE9Q
Y20gJFNQKiAkQ0FOX0NNICRDTSo7CiskT1BjbSAkU1AqICRDQU5UX0NNOworJE9QY20gJFNQKyAk
Q00rICRBTF9GT0xMT1c/OworJFFVY20gJFNQKiAkT1BjbTsKKygkQ0xjbSB8ICRDUGNtKSAkU1Aq
ICROU2NtOworJEIyY20gJFNQKiAkQjJjbTsKKyRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207Cisk
Q00rICRRVWNtOworJFFVY20gLj87CiskUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00qOworJExCMjBO
b25CcmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsgCiskQkJjbSBbXiRDQl07Cisk
QkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOworJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87
CiskU1ljbSAkSExjbTsKKygkQUxjbSB8ICRITGNtKSAkSU5jbTsKKyRDTSsgJElOY207CiskRVhj
bSAkSU5jbTsKKyRJRGNtICRJTmNtOworJElOY20gJElOY207CiskTlVjbSAkSU5jbTsKKyRJRGNt
ICRQT2NtOworJEFMY20gJE5VY207CiskSExjbSAkTlVjbTsKKyRDTSsgJE5VY207CiskTlVjbSAk
QUxjbTsKKyROVWNtICRITGNtOworJFBSY20gJElEY207CiskUFJjbSAoJEFMY20gfCAkSExjbSk7
CiskUE9jbSAoJEFMY20gfCAkSExjbSk7CisoJFBSY20gfCAkUE9jbSk/ICgkT1BjbSB8ICRIWWNt
KT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRDUGNtKT8gKCRQUmNt
IHwgJFBPY20pPzsKKyRKTGNtICgkSkxjbSB8ICRKVmNtIHwgJEgyY20gfCAkSDNjbSk7CisoJEpW
Y20gfCAkSDJjbSkgKCRKVmNtIHwgJEpUY20pOworKCRKVGNtIHwgJEgzY20pICRKVGNtOworKCRK
TGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOworKCRKTGNtIHwgJEpW
Y20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRQT2NtOworJFBSY20gKCRKTGNtIHwgJEpWY20g
fCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pOworKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNt
KTsKKyRDTSsgKCRBTGNtIHwgJEhMY20pOworJElTY20gKCRBTGNtIHwgJEhMY20pOworKCRBTGNt
IHwgJEhMY20gfCAkTlVjbSkgJE9QY207CiskQ00rICRPUGNtOworJENQY20gKCRBTGNtIHwgJEhM
Y20gfCAkTlVjbSk7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRSSWNt
ICRSSWNtOworCisjZW5kaWYKKworJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7
CisKKyEhcmV2ZXJzZTsKKyRDTSsgJEFMUGx1czsKKyRDTSsgJEJBOworJENNKyAkQkI7CiskQ00r
ICRCMjsKKyRDTSsgJENMOworJENNKyAkQ1A7CiskQ00rICRFWDsKKyRDTSsgJEdMOworJENNKyAk
SEw7CiskQ00rICRIWTsKKyRDTSsgJEgyOworJENNKyAkSDM7CiskQ00rICRJRDsKKyRDTSsgJElO
OworJENNKyAkSVM7CiskQ00rICRKTDsKKyRDTSsgJEpWOworJENNKyAkSlQ7CiskQ00rICROUzsK
KyRDTSsgJE5VOworJENNKyAkT1A7CiskQ00rICRQTzsKKyRDTSsgJFBSOworJENNKyAkUVU7CisK
KyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRDTSsgJFJJOworCisjZW5kaWYK
KworJENNKyAkU1k7CiskQ00rICRXSjsKKyRDTSs7CiskQUxfRk9MTE9XICRDTSsgLyAoWyRCSyAk
Q1IgJExGICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14kT1Ag
JENNICRTUF0gfCBbJEFMIHtlb2Z9XSkpOworWyRQUl0gLyAkQ00rIFskQksgJENSICRMRiAkTkwg
JFpXICRTUCB7ZW9mfV07CiskTEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtzLSRDTV07CiskTEI0QnJl
YWtzICRDTSsgJENBTl9DTTsKKyRMRiAkQ1I7CitbJFNQICRaV10gWyRMQjROb25CcmVha3MtJENN
XTsKK1skU1AgJFpXXSAkQ00rICRDQU5fQ007CiskRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9k
cz8gJEVtb2ppVmFyPyAkRW1vamlGb3JTZXFzOworJENNKyAkQ0FOX0NNOworJENNKiAkV0ogJENN
KiAkQ0FOX0NNOworJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsKKyRDQU5UX0NNICRDTSog
JFdKOworJENNKiAkQ0FOX0NNICRDTSogJFdKOworJENNKiAkR0wgJENNKiBbJExCOE5vbkJyZWFr
cy1bJENNICRTUCAkQkEgJEhZXV07CiskQ0FOVF9DTSAkQ00qICRHTDsKKyRDTSogJENBTl9DTSAk
Q00qICRHTDsKKyRDTCAkQ00rICRDQU5fQ007CiskQ1AgJENNKyAkQ0FOX0NNOworJEVYICRDTSsg
JENBTl9DTTsKKyRJUyAkQ00rICRDQU5fQ007CiskU1kgJENNKyAkQ0FOX0NNOworJENMIFskTEI4
Tm9uQnJlYWtzLSRDTV07CiskQ1AgWyRMQjhOb25CcmVha3MtJENNXTsKKyRFWCBbJExCOE5vbkJy
ZWFrcy0kQ01dOworJElTIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskU1kgWyRMQjhOb25CcmVha3Mt
JENNXTsKK1skQ0wgJENQICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7IAorJENNKiAk
Q0FOX0NNICRTUCogJENNKiAkT1A7CiskQ0FOVF9DTSAkU1AqICRDTSogJE9QOworJEFMX0ZPTExP
Vz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsKKyRBTF9GT0xMT1dfTk9DTSAkQ00rICRTUCsgJENN
KiAkT1A7CiskQ00qICRBTF9GT0xMT1dfQ00gJENNKyAkU1ArICRDTSogJE9QOworJFNZICRDTSAk
U1ArICRPUDsKKyRDTSogJE9QICRTUCogJENNKiAkUVU7CiskQ00qICROUyAkU1AqICRDTSogKCRD
TCB8ICRDUCk7CiskQ00qICRCMiAkU1AqICRDTSogJEIyOworJENNKiAkUVUgJENNKiAkQ0FOX0NN
OworJENNKiAkUVUgJExCMThOb25CcmVha3M7CiskQ00qICRDQU5fQ00gJENNKiAkUVU7CiskQ0FO
VF9DTSAkQ00qICRRVTsKKyRDTSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBbJExCMjBOb25CcmVh
a3MtJENNXTsKKyRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV0gJENNKiAkQkI7CitbXiRDQl0gJENN
KiAkQkI7CitbXiRDQl0gJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsKKyRDTSogJEhMICRDTSog
JFNZOworJENNKiAkSU4gJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICRJTiAkQ00qICRFWDsK
KyRDTSogJElOICRDTSogJElEOworJENNKiAkSU4gJENNKiAkSU47CiskQ00qICRJTiAkQ00qICRO
VTsKKyRDTSogJFBPICRDTSogJElEOworJENNKiAkTlUgJENNKiAoJEFMUGx1cyB8ICRITCk7Cisk
Q00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICROVTsKKyRDTSogJElEICRDTSogJFBSOworJENNKiAo
JEFMUGx1cyB8ICRITCkgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQTzsK
KygkQ00qICgkUFIgfCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElT
IHwgJFNZKSkqICRDTSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykp
PzsKKyRDTSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7CiskQ00qICgkSlQgfCAk
SlYpICRDTSogKCRIMiB8ICRKVik7CiskQ00qICRKVCAkQ00qICgkSDMgfCAkSlQpOworJENNKiAk
SU4gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsKKyRDTSogJFBPICRDTSogKCRI
MyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7CiskQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYg
fCAkSkwpICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRI
TCk7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRJUzsKKyRDTSogJE9QICRDTSogKCRBTFBs
dXMgfCAkSEwgfCAkTlUpOworJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7CisK
KyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRDTSogJFJJICRDTSogJFJJOwor
CisjZW5kaWYKKworJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7CisKKyEhc2Fm
ZV9mb3J3YXJkOworWyRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRTUCAkZGlj
dGlvbmFyeV0rIFteJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJGRpY3Rpb25h
cnldOworJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7CisgICAgCishIXNhZmVfcmV2ZXJzZTsKKyRD
TSsgW14kQ00gJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOworJENNKyAkU1AgLyAuOworJFNQKyAk
Q00qICRPUDsKKyRTUCsgJENNKiAkUVU7CiskU1ArICRDTSogKCRDTCB8ICRDUCk7CiskU1ArICRD
TSogJEIyOworJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsKKygkQ00qICgkSVMgfCAkU1kpKSsg
JENNKiAkTlU7CisoJENMIHwgJENQKSAkQ00qICgkTlUgfCAkSVMgfCAkU1kpOworJGRpY3Rpb25h
cnkgJGRpY3Rpb25hcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGQ3YzQ0MzU1ZmNlNzI4ZTZmMzJlNTU5NWJkODBlZjZiZjk5ODYwZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclBy
b2xvZ3VlLnR4dApAQCAtMCwwICsxLDIwIEBACishIWNoYWluOworISFMQkNNTm9DaGFpbjsKKyEh
bG9va0FoZWFkSGFyZEJyZWFrOworCiskQ0ogPSBbCisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1F
RF9TRVRTCisKKyAgICA6TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6CisK
KyNlbHNlCisKKyAgICBcXHUzMDQxXFx1MzA0M1xcdTMwNDVcXHUzMDQ3XFx1MzA0OVxcdTMwNjNc
XHUzMDgzXFx1MzA4NVxcdTMwODdcXHUzMDhFXFx1MzA5NVxcdTMwOTZcXHUzMEExXFx1MzBBM1xc
dTMwQTVcXHUzMEE3CisgICAgXFx1MzBBOVxcdTMwQzNcXHUzMEUzXFx1MzBFNVxcdTMwRTdcXHUz
MEVFXFx1MzBGNVxcdTMwRjZcXHUzMEZDCisgICAgXFx1MzFGMFxcdTMxRjFcXHUzMUYyXFx1MzFG
M1xcdTMxRjRcXHUzMUY1XFx1MzFGNlxcdTMxRjdcXHUzMUY4XFx1MzFGOVxcdTMxRkFcXHUzMUZC
XFx1MzFGQ1xcdTMxRkRcXHUzMUZFXFx1MzFGRgorICAgIFxcdUZGNjdcXHVGRjY4XFx1RkY2OVxc
dUZGNkFcXHVGRjZCXFx1RkY2Q1xcdUZGNkRcXHVGRjZFXFx1RkY2RlxcdUZGNzAKKworI2VuZGlm
CisKK107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTczODJkOWUx
MjNlMDEyZWMxNWI3Y2JjZWFiZDM1ZjIwN2ExNWNjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4
dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsKKyRFWF9TVUIg
PSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19T
VUIgPSBbXFx1MzAxQ1xcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElE
X0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc4ZDM4MWM5ZDRjZTRkMWUw
Njg5MmRkNDdiM2Y4NTRkZGY1YjM5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0CkBA
IC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOworJEVYX1NVQiA9IFtc
XHUwMDIxXFx1MDAzRlxcdUZGMDFcXHVGRjFGXTsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSBb
XFx1MjAyNVxcdTIwMjZdOworJElTX1NVQiA9IFtcXHUwMDNBXFx1MDAzQl07CiskTlNfU1VCID0g
W1xcdTIwM0NcXHUyMDQ3XFx1MjA0OFxcdTIwNDlcXHUzMDA1XFx1MzAxQ1xcdTMwM0JcXHUzMDlE
XFx1MzA5RVxcdTMwQTBcXHUzMEZCXFx1MzBGRFxcdTMwRkVcXHVGRjFBXFx1RkYxQlxcdUZGNjVd
OworJFBPX1NVQiA9IFtcXHUwMDI1XFx1MDBBMlxcdTAwQjBcXHUyMDMwXFx1MjAzMlxcdTIwMzNc
XHUyMTAzXFx1RkYwNVxcdUZGRTBdOworJFBSX1NVQiA9IFtcXHUwMDI0XFx1MDBBM1xcdTAwQTVc
XHUyMEFDXFx1MjExNlxcdUZGMDRcXHVGRkUxXFx1RkZFNV07CiskSURfQUREID0gWyRDSiAkQkFf
U1VCICRFWF9TVUIgJElOX1NVQiAkSVNfU1VCICROU19TVUIgJFBPX1NVQiAkUFJfU1VCXTsKKyRO
U19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0IGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDQ4Y2I1ZDk1NzBjZTY5MjVmNWQ2ZTYxNzQ1NzJkZGMxOWRkYWRmMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIg
PSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSBbXFx1MjAyNVxc
dTIwMjZdOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcXHUzMDA1XFx1MzAzQlxcdTMwOURc
XHUzMDlFXFx1MzBGRFxcdTMwRkVdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElE
X0FERCA9IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTlmY2YwZjhhOTkyMjEyMGViYjEx
ZGQ1ZGE0NDE3ZjkyNjc2MjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0CkBAIC0wLDAg
KzEsMTAgQEAKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJ
Tl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsK
KyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzM4MmQ5ZTEyM2Uw
MTJlYzE1YjdjYmNlYWJkMzVmMjA3YTE1Y2NjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
dHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOworJEVYX1NV
QiA9ICcnOworJElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5T
X1NVQiA9IFtcXHUzMDFDXFx1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7Cisk
SURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxOb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2MzU1OWVi
MWVkNjRmMjYzZDg5ZTE2MmQzMTc3MTk4N2NkZmNmYjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcn
OworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9
ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0pdOworJE5T
X0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjE1OWZjZjBmOGE5OTIyMTIwZWJiMTFkZDVkYTQ0MTdmOTI2NzYyNzIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NVQiA9ICcnOwor
JEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcn
OworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9
ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0IGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1OWZjZjBmOGE5OTIyMTIwZWJiMTFkZDVkYTQ0MTdm
OTI2NzYyNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKQEAgLTAsMCArMSwx
MCBAQAorJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NV
QiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBS
X1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcAppbmRleCAzMWEzZjAyYjNlY2E4ZTA1M2RkNTI1
MjUwNTEyNTM1ZmUxMGJiYjNiLi5jMzUyOTEyYTg5MjlhODcxNzQ4ZWM3M2UyYWFhMGM4NzdkZTdh
NjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcApAQCAtNTks
NiArNTksMTIgQEAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBpbml0aWFsaXplSXRlcmF0b3JX
aXRoUnVsZXMoY29uc3QgY2hhciogYnJlYWtSdWxlcykKIAogI2VuZGlmCiAKKyNpZiAhUExBVEZP
Uk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yRm9y
UnVsZVNldChCcmVha2luZ1J1bGVTZXQgcnVsZVNldCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKyNlbmRpZgogCiAvLyBJdGVyYXRvciB0ZXh0IHNldHRpbmcKIApAQCAtMTY1LDYgKzE3MSwx
MyBAQCBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKFN0cmluZ1ZpZXcg
c3RyaW5nKQogVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoU3RyaW5n
VmlldyBzdHJpbmcpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKKworICAgIGlmIChhdXRvKiBpdGVy
YXRvciA9IGl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50
KSkgeworICAgICAgICBpZiAoYXV0byogaXRlcmF0b3JXaXRoVGV4dCA9IHNldFRleHRGb3JJdGVy
YXRvcigqaXRlcmF0b3IsIHN0cmluZykpCisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JXaXRo
VGV4dDsKKyAgICAgICAgdWJya19jbG9zZShyZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9y
Kj4oaXRlcmF0b3IpKTsKKyAgICB9CisKICAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9u
IGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKICAgICAvLyA8aHR0cDov
L3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9z
b3VyY2UvZGF0YS9icmtpdHIvPi4KICAgICAvLyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0
aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgpAQCAtNzg2LDYgKzc5OSwyNCBAQCBU
ZXh0QnJlYWtJdGVyYXRvciogb3BlbkxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbG9jYWxlLCBMaW5lQnJlYWtJdAogICAgIGlmIChtb2RlID09IExpbmVCcmVha0l0ZXJhdG9y
TW9kZVVBWDE0KQogICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlbihVQlJLX0xJTkUsIGxvY2Fs
ZUlzRW1wdHkgPyBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKSA6IGxvY2FsZS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpLCAwLCAwLCAmb3BlblN0YXR1cyk7CiAgICAgZWxzZSB7CisgICAgICAgIEJy
ZWFraW5nUnVsZVNldCBydWxlU2V0OworICAgICAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICAgICAg
Y2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBp
c0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0
Tm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0
b3JNb2RlVUFYMTRMb29zZToKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5n
UnVsZVNldDo6VUFYMTRMb29zZUNKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZU5vbkNK
SzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9k
ZVVBWDE0Tm9ybWFsOgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxl
U2V0OjpVQVgxNE5vcm1hbENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVV
QVgxNFN0cmljdDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNl
dDo6VUFYMTRTdHJpY3RDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9y
ID0gaXRlcmF0b3JGb3JSdWxlU2V0KHJ1bGVTZXQpKQorICAgICAgICAgICAgcmV0dXJuIGl0ZXJh
dG9yOworCiAgICAgICAgIFVQYXJzZUVycm9yIHBhcnNlU3RhdHVzOwogICAgICAgICBhdXRvIHJ1
bGVzID0gbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMobW9kZSwgaXNDSkspOwogICAgICAgICB1
YnJrSXRlciA9IHVicmtfb3BlblJ1bGVzKFN0cmluZ1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hh
cmFjdGVycygpLCBydWxlcy5sZW5ndGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKaW5kZXggZDkwMzIxNWFl
NDEzN2U0YzNhOWVhMzViM2QwMjViZjUyZTQ1MThlYy4uOWRhZTI2Mzc5OWE1YjRmM2IzMGEzOWEz
NGM3NTA5ZmRhOGRiZDA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJl
YWtJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
aApAQCAtMzgsNiArMzgsMjAgQEAgZW51bSBMaW5lQnJlYWtJdGVyYXRvck1vZGUgewogICAgIExp
bmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0U3RyaWN0LAogfTsKIAorZW51bSBjbGFzcyBCcmVha2lu
Z1J1bGVTZXQgeworICAgIEN1cnNvck1vdmVtZW50LAorICAgIFVBWDE0Q0pLLAorICAgIFVBWDE0
Tm9uQ0pLLAorICAgIFVBWDE0TG9vc2VDSkssCisgICAgVUFYMTRMb29zZU5vbkNKSywKKyAgICBV
QVgxNE5vcm1hbENKSywKKyAgICBVQVgxNE5vcm1hbE5vbkNKSywKKyAgICBVQVgxNFN0cmljdENK
SywKKyAgICBVQVgxNFN0cmljdE5vbkNKSworfTsKKworVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJh
dG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpOworCiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8g
Y2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRv
CiAvLyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0
aGlzIGNhbiBiZSBkaWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlz
IFRoYWkgcHJlcGVuZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMu
bW0KaW5kZXggYmVmNWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVlOGU4OGEzODkyYy4uNmRmOGNk
NjBkNmQyNGZjMWUwMGMyNjNkOTdjZDc0YWY3NjQxMmZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1t
CkBAIC0yMSwxMiArMjEsNzUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0
QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgiCiAKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRv
ci5oIgorCisjaWYgZGVmaW5lZChVX1NIT1dfQ1BMVVNQTFVTX0FQSSkKKyN1bmRlZiBVX1NIT1df
Q1BMVVNQTFVTX0FQSQorI2VuZGlmCisjZGVmaW5lIFVfU0hPV19DUExVU1BMVVNfQVBJIDEKKwor
I2luY2x1ZGUgPHVuaWNvZGUvcmJiaS5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWRhdGEuaD4KICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKK0BpbnRlcmZhY2UgV1RGQnVuZGxlRmluZGVyIDog
TlNPYmplY3QKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdURkJ1bmRsZUZpbmRlcgorQGVuZAor
CiBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0IGludCBtYXhMb2NhbGVTdHJpbmdMZW5n
dGggPSAzMjsKIAorVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2lu
Z1J1bGVTZXQgcnVsZVNldCkKK3sKKyAgICBOU1N0cmluZyAqZmlsZU5hbWVCYXNlOworICAgIHN3
aXRjaCAocnVsZVNldCkgeworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpDdXJzb3JNb3ZlbWVu
dDoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMi
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRDSks6Cisg
ICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSyI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzoKKyAgICAg
ICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLIjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VDSks6CisgICAg
ICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLIjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks6
CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9u
Q0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9y
bWFsQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFY
MTROb3JtYWxOb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbE5vbkNKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdS
dWxlU2V0OjpVQVgxNFN0cmljdENKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVh
a2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBA
IkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksiOworICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICBOU0J1bmRsZSAqYnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltX
VEZCdW5kbGVGaW5kZXIgY2xhc3NdXTsKKyAgICBOU1N0cmluZyAqcGF0aCA9IFtidW5kbGUgcGF0
aEZvclJlc291cmNlOmZpbGVOYW1lQmFzZSBvZlR5cGU6QCJicmsiIGluRGlyZWN0b3J5OkAiQnJl
YWtpbmdSdWxlcyJdOworICAgIGlmICghcGF0aCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgTlNTdHJpbmcgKmRpcmVjdG9yeSA9IFtwYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENv
bXBvbmVudF07CisgICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAg
TG9jYWxVRGF0YU1lbW9yeVBvaW50ZXIgZGF0YSh1ZGF0YV9vcGVuKFtkaXJlY3RvcnkgVVRGOFN0
cmluZ10sICJicmsiLCBbZmlsZU5hbWVCYXNlIFVURjhTdHJpbmddLCAmZXJyb3JDb2RlKSk7Cisg
ICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJST1IpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRl
cmF0b3I+KGRhdGEub3JwaGFuKCksIGVycm9yQ29kZSk7CisgICAgaWYgKGVycm9yQ29kZSAhPSBV
X1pFUk9fRVJST1IpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PFRleHRCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IucmVsZWFzZSgpKTsKK30KKwog
c3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHRleHRCcmVha0xvY2FsZVByZWZl
cmVuY2UoKQogewogICAgIFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gbG9jYWxlID0gYWRv
cHRDRihDRlByZWZlcmVuY2VzQ29weVZhbHVlKENGU1RSKCJBcHBsZVRleHRCcmVha0xvY2FsZSIp
LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285484</attachid>
            <date>2016-08-05 23:52:28 -0700</date>
            <delta_ts>2016-08-06 01:02:36 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160805235100.patch</filename>
            <type>text/plain</type>
            <size>232239</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTFhOGVhNzFmOTFiNmU2MWM4MGI2MWVhNDFiZjQ1MWEyNjBjNGM3Li5mZDZkMmJhZTQ3NDQwYTUx
OTljMDljYzVhYWVmZDMxNTVkN2Y2NzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDUgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIExFQkRlY29kZXIgYW5kIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM5MGE4MzM4MWYx
NGNlODlmODdjMzFhNTRjNjczZDY2N2EzMjU4ZjEuLjY0OTkzNWE2NTkzYjM1YWVmYzIzZDdiZTNk
YzQ2NjdjMDJhMTVkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgtMDUgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBi
cmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTog
QWRkZWQuCisgICAgICAgICogd3RmL2dlbmJyazogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisg
ICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuY3BwOgorICAgICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RG
OjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0
ZXJhdG9yKToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAg
ICAqIHd0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAg
ICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorCiAyMDE2LTA4LTA1ICBLZWl0aCBNaWxs
ZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBMRUJEZWNvZGVyIGFu
ZCB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMzBkYzllNGQwMjAzNjIw
YjE0Y2EyMjhiNGViMmJiNGZkZWNlZjBkLi4xYWJlNDdjMjQ2NGRhODk4ZmFkNTMwYWNjMzI2Mzdj
OGJkYTYyYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOSw2ICsxMTA5
LDcgQEAKIAkJMTRGOTc0NDcxMzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhD
ODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBK
U1N0cmluZ1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNG
NzM3NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5j
cHAgKi87IH07CisJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFE
NTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2
MkQ4NUI2MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQx
QzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07
CkBAIC0zMjcyLDYgKzMyNzMsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFz
ZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYg
LyogSmF2YVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2Ny
aXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQx
QkNGRiAvKiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKYXZhU2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4
RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7
IHBhdGggPSAuLi9XVEYvQnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9p
bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0
aCA9IGIzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTQzOCw2ICs1NDQwLDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAw
NzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVs
ZXMgKi8sCiAJCQkJMEY2MTgzMzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAog
CQkJCTBGNjE4MzM0MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywK
IAkJCQkwRjYxODMzNTFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAg
LTg0NTcsNiArODQ2MCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBp
biBSZXNvdXJjZXMgKi8sCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5n
UnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNGM3NzM4MzJhY2RmNDNkZWNhMTUwMjQ0NThlMzAzZGVhNjdmNzg4ZS4uZTc4
ZTI4NjI4MjI0Y2JhNWY2NzlhMzcwYzJjNDQyZmFlZThjYTY0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcsMTcgQEAKIAlvYmplY3RzID0gewog
CiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2
OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVn
YXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMw
MENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4Nzgy
MUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOwor
CQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsK
KwkJCXByb2R1Y3ROYW1lID0gIkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2
MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFn
Z3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBC
OTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtMzQzLDYgKzM1NCwxMyBAQAogCQkJcmVt
b3RlR2xvYmFsSURTdHJpbmcgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzY7CiAJCQlyZW1vdGVJ
bmZvID0gV1RGOwogCQl9OworCQkxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFp
bmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJ
Y29udGFpbmVyUG9ydGFsID0gNUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2Jq
ZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gMUNE
MTg3ODExRDU1Njk1QzAwQ0M3REVDOworCQkJcmVtb3RlSW5mbyA9ICJEZXJpdmVkIFNvdXJjZXMi
OworCQl9OwogCQk2NUFGQTI4RDE2MzBCOTlFMDAzRDcyM0MgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJY29udGFpbmVy
UG9ydGFsID0gNUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOwpA
QCAtNDM1LDYgKzQ1MywxOCBAQAogCQkxQzE4MUM4RDFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQ
cm92aWRlclVURjE2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVU
ZXh0UHJvdmlkZXJVVEYxNi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgx
QzhFMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFDMTgxQzk1MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVy
YXRvckludGVybmFsSUNVTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgcGF0aCA9IG1hYy9UZXh0
QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQ0I0RkI5NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
Sy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk1MUQ1NTlBNjkwMEY5RkUz
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZC
OTcxRDU1OUFBODAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50
eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9u
Q0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTgxRDU1OUFEMjAw
RjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDQjRGQjlBMUQ1NTlCMjMwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNC
NEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25D
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QzFENTU5
QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDRDE4NzhBMUQ1NThBRDMwMENDN0RFQyAvKiBEZXJpdmVkU291cmNl
cy5tYWtlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC54bWw7IG5hbWUgPSBEZXJpdmVkU291cmNlcy5tYWtlOyBwYXRoID0gd3RmL0Rlcml2ZWRT
b3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHVzZXNUYWJzID0gMTsgfTsKKwkJ
MUNEMTg3OTIxRDU1OThFMTAwQ0M3REVDIC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50
eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJh
dG9yUHJvbG9ndWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9y
UHJvbG9ndWUudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4ODE1MjUw
MkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUZBNDdDODkxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVRocmVhZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyNjE0N0IwODE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3Ry
aW5nQ29udmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlZ2Vy
VG9TdHJpbmdDb252ZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjMs
NiArNzUzLDI0IEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJMUNEMTg3OTExRDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkyMUQ1NTk4
RTEwMENDN0RFQyAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFD
RDE4NzkzMUQ1NTk5NjUwMENDN0RFQyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAq
LywKKwkJCQkxQ0I0RkI5NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NENKSy50eHQgKi8sCisJCQkJMUNCNEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1
NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICov
LAorCQkJCTFDQjRGQjk4MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIy
MzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJ
CTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFr
SXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8sCisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7
CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1
NjhEMUIgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTc0NCw2ICs3OTIsNyBAQAogCQk1RDI0N0I1NzE0Njg5Qjg2MDBFNzhCNzYgPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzhBMUQ1NThBRDMwMEND
N0RFQyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovLAogCQkJCTVEMjQ3QjZEMTQ2ODlDNDcwMEU3
OEI3NiAvKiBDb25maWd1cmF0aW9ucyAqLywKIAkJCQkxNDAyMkYzRjE4RjVDM0U1MDA3RkYwRUIg
LyogTGlicmFyaWVzICovLAogCQkJCTVEMjQ3QjYzMTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9kdWN0
cyAqLywKQEAgLTEwODAsNiArMTEyOSw3IEBACiAJCUE4QTQ3MzFCMTUxQTgyNUIwMDQxMjNGRiAv
KiB0ZXh0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkx
Q0QxODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJCQkxQzE4MUM4
ODFEMzA3QUI4MDBGNUZBMTYgLyogaWN1ICovLAogCQkJCUE1QkExNUY2MTgyNDM1OUUwMEE4MkU2
OSAvKiBjZiAqLywKIAkJCQlBNUJBMTVGMTE4MjQzMzlGMDBBODJFNjkgLyogbWFjICovLApAQCAt
MTQ2Niw2ICsxNTE2LDcgQEAKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5j
aWVzID0gKAorCQkJCTFDRDE4Nzg4MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovLAogCQkJCTY1QUZBMjhFMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBXVEY7CkBAIC0xNDk2LDEyICsxNTQ3LDI3IEBACiAJ
CQl0YXJnZXRzID0gKAogCQkJCTVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NiAvKiBXVEYgKi8sCiAJ
CQkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi8sCisJCQkJ
MUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3
QUVCRDE4RkNFNTY5MDBCM0Q3RkYgLyogbWJtYWxsb2MgKi8sCiAJCQkpOwogCQl9OwogLyogRW5k
IFBCWFByb2plY3Qgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhh
c2Ugc2VjdGlvbiAqLworCQkxQ0QxODc4MjFENTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVy
aXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwor
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJ
CWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJbmFtZSA9ICJHZW5lcmF0ZSBEZXJpdmVkIFNvdXJj
ZXMiOworCQkJb3V0cHV0UGF0aHMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3Jp
cHQgPSAibWtkaXIgLXAgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RG
XCJcbmNkIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURlwiXG5cbi9i
aW4vbG4gLXNmaCBcIiR7U1JDUk9PVH1cIiBXVEZcbmV4cG9ydCBXVEY9XCJXVEZcIlxuXG5pZiBb
ICEgLWQgQnJlYWtpbmdSdWxlcyBdOyB0aGVuXG4gICAgbWtkaXIgQnJlYWtpbmdSdWxlc1xuZmlc
blxuZXhwb3J0IEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9MVxuaWYgWyBcIiRTREtfVkVSU0lP
TlwiID09IFwiMTAuMTBcIiBdOyB0aGVuXG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVD0wXG5lbHNlXG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0xXG5maVxu
XG5pZiBbIFwiJHtBQ1RJT059XCIgPSBcImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5z
dGFsbFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxoZHJzXCIgLW8gXCIke0FDVElPTn1c
IiA9IFwiaW5zdGFsbGFwaVwiIF07IHRoZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwi
V1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcu
YWN0aXZlY3B1YCBTREtST09UPVwiJHtTREtST09UfVwiXG5maVxuIjsKKwkJfTsKIAkJNjVBRkEx
NzAxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OwpAQCAtMTYzMyw2ICsxNjk5LDExIEBACiAJCQl0YXJnZXQgPSA1RDI0N0I2MTE0Njg5Qjg2MDBF
NzhCNzYgLyogV1RGICovOwogCQkJdGFyZ2V0UHJveHkgPSAxNDQ3QUVDMzE4RkNFNTcwMDBCM0Q3
RkYgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9OworCQkxQ0QxODc4ODFENTU2OTg4
MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdl
dERlcGVuZGVuY3k7CisJCQl0YXJnZXQgPSAxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVy
aXZlZCBTb3VyY2VzICovOworCQkJdGFyZ2V0UHJveHkgPSAxQ0QxODc4NzFENTU2OTg4MDBDQzdE
RUMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9OwogCQk2NUFGQTI4RTE2MzBCOTlF
MDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdl
dERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSA2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29w
eSBXVEYgSGVhZGVycyAqLzsKQEAgLTE2NjIsNiArMTczMywzMCBAQAogCQkJfTsKIAkJCW5hbWUg
PSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcg
Ki8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0
aW9uUmVmZXJlbmNlID0gNjU0MUNBRjQxNjMwREIyNjAwNkQwREVDIC8qIENvcHlXVEZIZWFkZXJz
LnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAi
JChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJMUNEMTg3
ODUxRDU1Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29u
ZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNjU0MUNBRjQxNjMw
REIyNjAwNkQwREVDIC8qIENvcHlXVEZIZWFkZXJzLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0
aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJ
CW5hbWUgPSBSZWxlYXNlOworCQl9OworCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJv
ZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNv
bmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA2NTQxQ0FGNDE2MzBEQjI2MDA2RDBERUMgLyogQ29weVdU
RkhlYWRlcnMueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1Rf
TkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJ
CX07CiAJCTVEMjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9
IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1
RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOwpAQCAt
MTc0NSw2ICsxODQwLDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7
CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0Qx
ODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhB
Z2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZp
Z3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkxQ0QxODc4NDFE
NTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVD
IC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rp
b24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJ
ZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdCNUMx
NDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVj
dCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENv
bmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9icmtp
dGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jya2l0ZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWE1
ZTU1Mjc5NjA5MGVhZWJjZDdjZTdiN2QyNzVhYThiMzc3NWI0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmgKQEAgLTAsMCArMSw2NTUgQEAKKy8qCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDE0LCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4g
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxl
IGJya2l0ZXIuaAorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAg
ICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAyLzE4Lzk3ICAgIGFsaXUgICAgICAgIEFk
ZGVkIHR5cGVkZWYgZm9yIFRleHRDb3VudC4gIE1hZGUgRE9ORSBjb25zdC4KKyogICAwNS8wNy85
NyAgICBhbGl1ICAgICAgICBGaXhlZCBETEwgZGVjbGFyYXRpb24uCisqICAgMDcvMDkvOTcgICAg
amZpdHogICAgICAgUmVuYW1lZCBCcmVha0l0ZXJhdG9yIGFuZCBpbnRlcmZhY2Ugc3luY2VkIHdp
dGggSkRLCisqICAgMDgvMTEvOTggICAgaGVsZW5hICAgICAgU3luYy11cCBKREsxLjIuCisqICAg
MDEvMTMvMjAwMCAgaGVsZW5hICAgICAgQWRkZWQgVUVycm9yQ29kZSBwYXJhbWV0ZXIgdG8gY3Jl
YXRlWFhYSW5zdGFuY2UgbWV0aG9kcy4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisj
aWZuZGVmIEJSS0lURVJfSAorI2RlZmluZSBCUktJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUv
dXR5cGVzLmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBCcmVhayBJdGVy
YXRvci4KKyAqLworCisjaWYgVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworVV9OQU1FU1BB
Q0VfQkVHSU4KKworLyoKKyAqIEFsbG93IHRoZSBkZWNsYXJhdGlvbiBvZiBBUElzIHdpdGggcG9p
bnRlcnMgdG8gQnJlYWtJdGVyYXRvcgorICogZXZlbiB3aGVuIGJyZWFrIGl0ZXJhdGlvbiBpcyBy
ZW1vdmVkIGZyb20gdGhlIGJ1aWxkLgorICovCitjbGFzcyBCcmVha0l0ZXJhdG9yOworCitVX05B
TUVTUEFDRV9FTkQKKworI2Vsc2UKKworI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2lu
Y2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisjaW5jbHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgor
I2luY2x1ZGUgInVuaWNvZGUvbG9jaWQuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VicmsuaCIKKyNp
bmNsdWRlICJ1bmljb2RlL3N0cmVudW0uaCIKKyNpbmNsdWRlICJ1bmljb2RlL3V0ZXh0LmgiCisj
aW5jbHVkZSAidW5pY29kZS91bWlzYy5oIgorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAq
IFRoZSBCcmVha0l0ZXJhdG9yIGNsYXNzIGltcGxlbWVudHMgbWV0aG9kcyBmb3IgZmluZGluZyB0
aGUgbG9jYXRpb24KKyAqIG9mIGJvdW5kYXJpZXMgaW4gdGV4dC4gQnJlYWtJdGVyYXRvciBpcyBh
biBhYnN0cmFjdCBiYXNlIGNsYXNzLgorICogSW5zdGFuY2VzIG9mIEJyZWFrSXRlcmF0b3IgbWFp
bnRhaW4gYSBjdXJyZW50IHBvc2l0aW9uIGFuZCBzY2FuIG92ZXIKKyAqIHRleHQgcmV0dXJuaW5n
IHRoZSBpbmRleCBvZiBjaGFyYWN0ZXJzIHdoZXJlIGJvdW5kYXJpZXMgb2NjdXIuCisgKiA8cD4K
KyAqIExpbmUgYm91bmRhcnkgYW5hbHlzaXMgZGV0ZXJtaW5lcyB3aGVyZSBhIHRleHQgc3RyaW5n
IGNhbiBiZSBicm9rZW4KKyAqIHdoZW4gbGluZS13cmFwcGluZy4gVGhlIG1lY2hhbmlzbSBjb3Jy
ZWN0bHkgaGFuZGxlcyBwdW5jdHVhdGlvbiBhbmQKKyAqIGh5cGhlbmF0ZWQgd29yZHMuCisgKiA8
cD4KKyAqIFNlbnRlbmNlIGJvdW5kYXJ5IGFuYWx5c2lzIGFsbG93cyBzZWxlY3Rpb24gd2l0aCBj
b3JyZWN0CisgKiBpbnRlcnByZXRhdGlvbiBvZiBwZXJpb2RzIHdpdGhpbiBudW1iZXJzIGFuZCBh
YmJyZXZpYXRpb25zLCBhbmQKKyAqIHRyYWlsaW5nIHB1bmN0dWF0aW9uIG1hcmtzIHN1Y2ggYXMg
cXVvdGF0aW9uIG1hcmtzIGFuZCBwYXJlbnRoZXNlcy4KKyAqIDxwPgorICogV29yZCBib3VuZGFy
eSBhbmFseXNpcyBpcyB1c2VkIGJ5IHNlYXJjaCBhbmQgcmVwbGFjZSBmdW5jdGlvbnMsIGFzCisg
KiB3ZWxsIGFzIHdpdGhpbiB0ZXh0IGVkaXRpbmcgYXBwbGljYXRpb25zIHRoYXQgYWxsb3cgdGhl
IHVzZXIgdG8KKyAqIHNlbGVjdCB3b3JkcyB3aXRoIGEgZG91YmxlIGNsaWNrLiBXb3JkIHNlbGVj
dGlvbiBwcm92aWRlcyBjb3JyZWN0CisgKiBpbnRlcnByZXRhdGlvbiBvZiBwdW5jdHVhdGlvbiBt
YXJrcyB3aXRoaW4gYW5kIGZvbGxvd2luZworICogd29yZHMuIENoYXJhY3RlcnMgdGhhdCBhcmUg
bm90IHBhcnQgb2YgYSB3b3JkLCBzdWNoIGFzIHN5bWJvbHMgb3IKKyAqIHB1bmN0dWF0aW9uIG1h
cmtzLCBoYXZlIHdvcmQtYnJlYWtzIG9uIGJvdGggc2lkZXMuCisgKiA8cD4KKyAqIENoYXJhY3Rl
ciBib3VuZGFyeSBhbmFseXNpcyBhbGxvd3MgdXNlcnMgdG8gaW50ZXJhY3Qgd2l0aAorICogY2hh
cmFjdGVycyBhcyB0aGV5IGV4cGVjdCB0bywgZm9yIGV4YW1wbGUsIHdoZW4gbW92aW5nIHRoZSBj
dXJzb3IKKyAqIHRocm91Z2ggYSB0ZXh0IHN0cmluZy4gQ2hhcmFjdGVyIGJvdW5kYXJ5IGFuYWx5
c2lzIHByb3ZpZGVzIGNvcnJlY3QKKyAqIG5hdmlnYXRpb24gb2YgdGhyb3VnaCBjaGFyYWN0ZXIg
c3RyaW5ncywgcmVnYXJkbGVzcyBvZiBob3cgdGhlCisgKiBjaGFyYWN0ZXIgaXMgc3RvcmVkLiAg
Rm9yIGV4YW1wbGUsIGFuIGFjY2VudGVkIGNoYXJhY3RlciBtaWdodCBiZQorICogc3RvcmVkIGFz
IGEgYmFzZSBjaGFyYWN0ZXIgYW5kIGEgZGlhY3JpdGljYWwgbWFyay4gV2hhdCB1c2VycworICog
Y29uc2lkZXIgdG8gYmUgYSBjaGFyYWN0ZXIgY2FuIGRpZmZlciBiZXR3ZWVuIGxhbmd1YWdlcy4K
KyAqIDxwPgorICogVGhlIHRleHQgYm91bmRhcnkgcG9zaXRpb25zIGFyZSBmb3VuZCBhY2NvcmRp
bmcgdG8gdGhlIHJ1bGVzCisgKiBkZXNjcmliZWQgaW4gVW5pY29kZSBTdGFuZGFyZCBBbm5leCAj
MjksIFRleHQgQm91bmRhcmllcywgYW5kCisgKiBVbmljb2RlIFN0YW5kYXJkIEFubmV4ICMxNCwg
TGluZSBCcmVha2luZyBQcm9wZXJ0aWVzLiAgVGhlc2UKKyAqIGFyZSBhdmFpbGFibGUgYXQgaHR0
cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMTQvIGFuZAorICogaHR0cDovL3d3dy51bmlj
b2RlLm9yZy9yZXBvcnRzL3RyMjkvLgorICogPHA+CisgKiBJbiBhZGRpdGlvbiB0byB0aGUgQysr
IEFQSSBkZWZpbmVkIGluIHRoaXMgaGVhZGVyIGZpbGUsIGEKKyAqIHBsYWluIEMgQVBJIHdpdGgg
ZXF1aXZhbGVudCBmdW5jdGlvbmFsaXR5IGlzIGRlZmluZWQgaW4gdGhlCisgKiBmaWxlIHVicmsu
aAorICogPHA+CisgKiBDb2RlIHNuaXBwZXRzIGlsbHVzdHJhdGluZyB0aGUgdXNlIG9mIHRoZSBC
cmVhayBJdGVyYXRvciBBUElzCisgKiBhcmUgYXZhaWxhYmxlIGluIHRoZSBJQ1UgVXNlciBHdWlk
ZSwKKyAqIGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL2JvdW5kYXJ5QW5hbHlzaXMu
aHRtbAorICogYW5kIGluIHRoZSBzYW1wbGUgcHJvZ3JhbSBpY3Uvc291cmNlL3NhbXBsZXMvYnJl
YWsvYnJlYWsuY3BwCisgKgorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgQnJlYWtJdGVyYXRvciA6
IHB1YmxpYyBVT2JqZWN0IHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiAgZGVzdHJ1Y3Rvcgor
ICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIH5CcmVha0l0ZXJh
dG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiBhbm90aGVyIG9iamVjdCBp
cyBzZW1hbnRpY2FsbHkgZXF1YWwgdG8gdGhpcworICAgICAqIG9uZS4gVGhlIG90aGVyIG9iamVj
dCBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2YgdGhlIHNhbWUgc3ViY2xhc3Mgb2YKKyAgICAgKiBC
cmVha0l0ZXJhdG9yLiBPYmplY3RzIG9mIGRpZmZlcmVudCBzdWJjbGFzc2VzIGFyZSBjb25zaWRl
cmVkCisgICAgICogdW5lcXVhbC4KKyAgICAgKiA8UD4KKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0
aGlzIEJyZWFrSXRlcmF0b3IgaXMgYXQgdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlCisgICAgICog
c2FtZSB0ZXh0LCBhbmQgaXMgdGhlIHNhbWUgY2xhc3MgYW5kIHR5cGUgKHdvcmQsIGxpbmUsIGV0
Yy4pIG9mCisgICAgICogQnJlYWtJdGVyYXRvciwgYXMgdGhlIGFyZ3VtZW50LiAgVGV4dCBpcyBj
b25zaWRlcmVkIHRoZSBzYW1lIGlmCisgICAgICogaXQgY29udGFpbnMgdGhlIHNhbWUgY2hhcmFj
dGVycywgaXQgbmVlZCBub3QgYmUgdGhlIHNhbWUKKyAgICAgKiBvYmplY3QsIGFuZCBzdHlsZXMg
YXJlIG5vdCBjb25zaWRlcmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBCcmVha0l0ZXJhdG9yJikgY29uc3QgPSAw
OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29tcGxlbWVudCBvZiB0aGUgcmVzdWx0
IG9mIG9wZXJhdG9yPT0KKyAgICAgKiBAcGFyYW0gcmhzIFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJl
IGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5CisgICAgICogQHJldHVybiB0aGUgY29tcGxlbWVudCBv
ZiB0aGUgcmVzdWx0IG9mIG9wZXJhdG9yPT0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHJocykgY29uc3Qg
eyByZXR1cm4gIW9wZXJhdG9yPT0ocmhzKTsgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEg
cG9seW1vcnBoaWMgY29weSBvZiB0aGlzIG9iamVjdC4gIFRoaXMgaXMgYW4gYWJzdHJhY3QKKyAg
ICAgKiBtZXRob2Qgd2hpY2ggc3ViY2xhc3NlcyBpbXBsZW1lbnQuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yKiBjbG9uZSh2b2lkKSBj
b25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBwb2x5bW9ycGhpYyBjbGFzcyBJ
RCBmb3IgdGhpcyBvYmplY3QuIERpZmZlcmVudCBzdWJjbGFzc2VzCisgICAgICogd2lsbCByZXR1
cm4gZGlzdGluY3QgdW5lcXVhbCB2YWx1ZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdCA9
IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRo
ZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3ImIGdldFRleHQodm9pZCkgY29uc3QgPSAwOwor
CisKKyAgICAvKioKKyAgICAgICogIEdldCBhIFVUZXh0IGZvciB0aGUgdGV4dCBiZWluZyBhbmFs
eXplZC4KKyAgICAgICogIFRoZSByZXR1cm5lZCBVVGV4dCBpcyBhIHNoYWxsb3cgY2xvbmUgb2Yg
dGhlIFVUZXh0IHVzZWQgaW50ZXJuYWxseQorICAgICAgKiAgYnkgdGhlIGJyZWFrIGl0ZXJhdG9y
IGltcGxlbWVudGF0aW9uLiAgSXQgY2FuIHNhZmVseSBiZSB1c2VkIHRvCisgICAgICAqICBhY2Nl
c3MgdGhlIHRleHQgd2l0aG91dCBpbXBhY3RpbmcgYW55IGJyZWFrIGl0ZXJhdG9yIG9wZXJhdGlv
bnMsCisgICAgICAqICBidXQgdGhlIHVuZGVybHlpbmcgdGV4dCBpdHNlbGYgbXVzdCBub3QgYmUg
YWx0ZXJlZC4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGZpbGxJbiBBIFVUZXh0IHRvIGJlIGZp
bGxlZCBpbi4gIElmIE5VTEwsIGEgbmV3IFVUZXh0IHdpbGwgYmUKKyAgICAgICogICAgICAgICAg
IGFsbG9jYXRlZCB0byBob2xkIHRoZSByZXN1bHQuCisgICAgICAqIEBwYXJhbSBzdGF0dXMgcmVj
ZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAgKiBAcmV0dXJuICAgVGhlIGN1cnJlbnQgVVRl
eHQgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuICBJZiBhbiBpbnB1dAorICAgICAgKiAgICAgICAg
ICAgVVRleHQgd2FzIHByb3ZpZGVkLCBpdCB3aWxsIGFsd2F5cyBiZSByZXR1cm5lZC4KKyAgICAg
ICogQHN0YWJsZSBJQ1UgMy40CisgICAgICAqLworICAgICB2aXJ0dWFsIFVUZXh0ICpnZXRVVGV4
dChVVGV4dCAqZmlsbEluLCBVRXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0ID0gMDsKKworICAgIC8q
KgorICAgICAqIENoYW5nZSB0aGUgdGV4dCBvdmVyIHdoaWNoIHRoaXMgb3BlcmF0ZXMuIFRoZSB0
ZXh0IGJvdW5kYXJ5IGlzCisgICAgICogcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqIEBwYXJh
bSB0ZXh0IFRoZSBVbmljb2RlU3RyaW5nIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChjb25z
dCBVbmljb2RlU3RyaW5nICZ0ZXh0KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUg
YnJlYWsgaXRlcmF0b3IgdG8gb3BlcmF0ZSBvdmVyIHRoZSB0ZXh0IHJlcHJlc2VudGVkIGJ5Cisg
ICAgICogdGhlIFVUZXh0LiAgVGhlIGl0ZXJhdG9yIHBvc2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBz
dGFydC4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gbWFrZXMgYSBzaGFsbG93IGNsb25l
IG9mIHRoZSBzdXBwbGllZCBVVGV4dC4gIFRoaXMgbWVhbnMKKyAgICAgKiB0aGF0IHRoZSBjYWxs
ZXIgaXMgZnJlZSB0byBpbW1lZGlhdGVseSBjbG9zZSBvciBvdGhlcndpc2UgcmV1c2UgdGhlCisg
ICAgICogVXRleHQgdGhhdCB3YXMgcGFzc2VkIGFzIGEgcGFyYW1ldGVyLCBidXQgdGhhdCB0aGUg
dW5kZXJseWluZyB0ZXh0IGl0c2VsZgorICAgICAqIG11c3Qgbm90IGJlIGFsdGVyZWQgd2hpbGUg
YmVpbmcgcmVmZXJlbmNlZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBB
bGwgaW5kZXggcG9zaXRpb25zIHJldHVybmVkIGJ5IGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyBh
cmUKKyAgICAgKiBuYXRpdmUgaW5kaWNlcyBmcm9tIHRoZSBVVGV4dC4gRm9yIGV4YW1wbGUsIHdo
ZW4gYnJlYWtpbmcgVVRGLTgKKyAgICAgKiBlbmNvZGVkIHRleHQsIHRoZSBicmVhayBwb3NpdGlv
bnMgcmV0dXJuZWQgYnkgbmV4dCgpLCBwcmV2aW91cygpLCBldGMuCisgICAgICogd2lsbCBiZSBV
VEYtOCBzdHJpbmcgaW5kaWNlcywgbm90IFVURi0xNiBwb3NpdGlvbnMuCisgICAgICoKKyAgICAg
KiBAcGFyYW0gdGV4dCBUaGUgVVRleHQgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICog
QHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMuCisgICAgICogQHN0YWJsZSBJ
Q1UgMy40CisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBzZXRUZXh0KFVUZXh0ICp0ZXh0LCBV
RXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKworICAgIC8qKgorICAgICAqIENoYW5nZSB0aGUgdGV4
dCBvdmVyIHdoaWNoIHRoaXMgb3BlcmF0ZXMuIFRoZSB0ZXh0IGJvdW5kYXJ5IGlzCisgICAgICog
cmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqIE5vdGUgdGhhdCBzZXRUZXh0KFVUZXh0ICopIHBy
b3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSB0byB0aGlzIGZ1bmN0aW9uLAorICAgICAqIGFu
ZCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICAgKiBAcGFyYW0gaXQgVGhlIENoYXJhY3Rlckl0ZXJh
dG9yIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgdm9pZCAgYWRvcHRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKiBpdCkg
PSAwOworCisgICAgZW51bSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBET05FIGlzIHJldHVy
bmVkIGJ5IHByZXZpb3VzKCkgYW5kIG5leHQoKSBhZnRlciBhbGwgdmFsaWQKKyAgICAgICAgICog
Ym91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAgICAgKi8KKyAgICAgICAgRE9ORSA9IChpbnQzMl90KS0xCisgICAgfTsKKworICAg
IC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBi
ZWdpbm5pbmcgb2YgdGhlIHRleHQsIHBvc2l0aW9uIHplcm8uCisgICAgICogQHJldHVybiBUaGUg
b2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHplcm8uCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGZpcnN0KHZvaWQpID0gMDsK
KworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGluZGV4
IGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgYmVpbmcg
c2Nhbm5lZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBpbmRleCBpbW1lZGlhdGVseSBCRVlPTkQgdGhl
IGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJlaW5nIHNjYW5uZWQuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGxhc3Qodm9pZCkgPSAwOwor
CisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgYm91bmRh
cnkgcHJlY2VkaW5nIHRoZSBjdXJyZW50IGJvdW5kYXJ5LgorICAgICAqIEByZXR1cm4gVGhlIGNo
YXJhY3RlciBpbmRleCBvZiB0aGUgcHJldmlvdXMgdGV4dCBib3VuZGFyeSBvciBET05FIGlmIGFs
bAorICAgICAqIGJvdW5kYXJpZXMgaGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmV2aW91cyh2b2lkKSA9IDA7
CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlIHRoZSBpdGVyYXRvciB0byB0aGUgYm91bmRhcnkg
Zm9sbG93aW5nIHRoZSBjdXJyZW50IGJvdW5kYXJ5LgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJh
Y3RlciBpbmRleCBvZiB0aGUgbmV4dCB0ZXh0IGJvdW5kYXJ5IG9yIERPTkUgaWYgYWxsCisgICAg
ICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQodm9pZCkgPSAwOworCisgICAgLyoq
CisgICAgICogUmV0dXJuIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgY3VycmVudCBpbnRlcmF0b3Ig
cG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gVGhlIGJvdW5kYXJ5IG1v
c3QgcmVjZW50bHkgcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBpbnQzMl90IGN1cnJlbnQodm9pZCkgY29uc3QgPSAwOworCisgICAgLyoqCisg
ICAgICogQWR2YW5jZSB0aGUgaXRlcmF0b3IgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IGZvbGxvd2lu
ZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgYWx3
YXlzIGdyZWF0ZXIgdGhhbiB0aGUgb2Zmc2V0IG9yCisgICAgICogdGhlIHZhbHVlIEJyZWFrSXRl
cmF0b3IuRE9ORQorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBiZWdpbiBzY2Fu
bmluZy4KKyAgICAgKiBAcmV0dXJuIFRoZSBmaXJzdCBib3VuZGFyeSBhZnRlciB0aGUgc3BlY2lm
aWVkIG9mZnNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IGludDMyX3QgZm9sbG93aW5nKGludDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwcmVjZWRp
bmcgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFs
d2F5cyBzbWFsbGVyIHRoYW4gdGhlIG9mZnNldCBvcgorICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0
ZXJhdG9yLkRPTkUKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nh
bm5pbmcuCisgICAgICogQHJldHVybiBUaGUgZmlyc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzcGVj
aWZpZWQgb2Zmc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgaW50MzJfdCBwcmVjZWRpbmcoaW50MzJfdCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAg
ICAqIFJldHVybiB0cnVlIGlmIHRoZSBzcGVjZmllZCBwb3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBv
c2l0aW9uLgorICAgICAqIEFzIGEgc2lkZSBlZmZlY3QsIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9m
IHRoZSBpdGVyYXRvciBpcyBzZXQKKyAgICAgKiB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRp
b24gYXQgb3IgZm9sbG93aW5nIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBwYXJhbSBv
ZmZzZXQgdGhlIG9mZnNldCB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuIFRydWUgaWYgIm9mZnNl
dCIgaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIFVCb29sIGlzQm91bmRhcnkoaW50MzJfdCBvZmZzZXQpID0gMDsKKwor
ICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIG50aCBib3Vu
ZGFyeSBmcm9tIHRoZSBjdXJyZW50IGJvdW5kYXJ5CisgICAgICogQHBhcmFtIG4gdGhlIG51bWJl
ciBvZiBib3VuZGFyaWVzIHRvIG1vdmUgYnkuICBBIHZhbHVlIG9mIDAKKyAgICAgKiBkb2VzIG5v
dGhpbmcuICBOZWdhdGl2ZSB2YWx1ZXMgbW92ZSB0byBwcmV2aW91cyBib3VuZGFyaWVzCisgICAg
ICogYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3ZlIHRvIGxhdGVyIGJvdW5kYXJpZXMuCisgICAgICog
QHJldHVybiBUaGUgbmV3IGl0ZXJhdG9yIHBvc2l0aW9uLCBvcgorICAgICAqIERPTkUgaWYgdGhl
cmUgYXJlIGZld2VyIHRoYW4gfG58IGJvdW5kYXJpZXMgaW4gdGhlIHNwZWNmaWVkIGRpcmVjdGlv
bi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3Qg
bmV4dChpbnQzMl90IG4pID0gMDsKKworICAgLyoqCisgICAgICogRm9yIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3JzLCByZXR1cm4gdGhlIHN0YXR1cyB0YWcgZnJvbSB0aGUgCisgICAgICogYnJlYWsg
cnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBi
cmVhayBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlw
ZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBhIHJ1bGUgc3RhdHVzLAorICAgICAqIGEgZGVmYXVsdCB2
YWx1ZSBvZiAwIGlzIHJldHVybmVkLgorICAgICAqIDxwPgorICAgICAqIEByZXR1cm4gdGhlIHN0
YXR1cyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRs
eQorICAgICAqICAgICAgICAgcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgICogQHNlZSBS
dWxlQmFzZUJyZWFrSXRlcmF0b3I6OmdldFJ1bGVTdGF0dXMoKQorICAgICAqIEBzZWUgVVdvcmRC
cmVhaworICAgICAqIEBzdGFibGUgSUNVIDUyCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90
IGdldFJ1bGVTdGF0dXMoKSBjb25zdDsKKworICAgLyoqCisgICAgKiBGb3IgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvcnMsIGdldCB0aGUgc3RhdHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBy
dWxlKHMpIAorICAgICogdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5IHJldHVybmVk
IGJyZWFrIHBvc2l0aW9uLgorICAgICogPHA+CisgICAgKiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlw
ZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBydWxlIHN0YXR1cywKKyAgICAqIG5vIHZhbHVlcyBhcmUg
cmV0dXJuZWQuCisgICAgKiA8cD4KKyAgICAqIFRoZSByZXR1cm5lZCBzdGF0dXMgdmFsdWUocykg
YXJlIHN0b3JlZCBpbnRvIGFuIGFycmF5IHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgKiBU
aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gc29ydGVkIChhc2NlbmRpbmcpIG9yZGVyLgorICAgICog
SWYgdGhlIGNhcGFjaXR5IG9mIHRoZSBvdXRwdXQgYXJyYXkgaXMgaW5zdWZmaWNpZW50IHRvIGhv
bGQgdGhlIGRhdGEsCisgICAgKiAgdGhlIG91dHB1dCB3aWxsIGJlIHRydW5jYXRlZCB0byB0aGUg
YXZhaWxhYmxlIGxlbmd0aCwgYW5kIGEKKyAgICAqICBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiB3
aWxsIGJlIHNpZ25hbGVkLgorICAgICogPHA+CisgICAgKiBAc2VlIFJ1bGVCYXNlQnJlYWtJdGVy
YXRvcjo6Z2V0UnVsZVN0YXR1c1ZlYworICAgICoKKyAgICAqIEBwYXJhbSBmaWxsSW5WZWMgYW4g
YXJyYXkgdG8gYmUgZmlsbGVkIGluIHdpdGggdGhlIHN0YXR1cyB2YWx1ZXMuCisgICAgKiBAcGFy
YW0gY2FwYWNpdHkgIHRoZSBsZW5ndGggb2YgdGhlIHN1cHBsaWVkIHZlY3Rvci4gIEEgbGVuZ3Ro
IG9mIHplcm8gY2F1c2VzCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBmdW5jdGlvbiB0byBy
ZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzLCBpbiB0aGUKKyAgICAqICAgICAgICAg
ICAgICAgICAgbm9ybWFsIHdheSwgd2l0aG91dCBhdHRlbXRwaW5nIHRvIHN0b3JlIGFueSB2YWx1
ZXMuCisgICAgKiBAcGFyYW0gc3RhdHVzICAgIHJlY2VpdmVzIGVycm9yIGNvZGVzLgorICAgICog
QHJldHVybiAgICAgICAgICBUaGUgbnVtYmVyIG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1
bGVzIHRoYXQgZGV0ZXJtaW5lZAorICAgICogICAgICAgICAgICAgICAgICB0aGUgbW9zdCByZWNl
bnQgYm91bmRhcnkgcmV0dXJuZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICogICAgICAg
ICAgICAgICAgICBJbiB0aGUgZXZlbnQgb2YgYSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdGhl
IHJldHVybiB2YWx1ZQorICAgICogICAgICAgICAgICAgICAgICBpcyB0aGUgdG90YWwgbnVtYmVy
IG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCB3ZXJlIGF2YWlsYWJsZSwKKyAgICAqICAgICAgICAgICAg
ICAgICAgbm90IHRoZSByZWR1Y2VkIG51bWJlciB0aGF0IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQu
CisgICAgKiBAc2VlIGdldFJ1bGVTdGF0dXMKKyAgICAqIEBzdGFibGUgSUNVIDUyCisgICAgKi8K
KyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1c1ZlYyhpbnQzMl90ICpmaWxsSW5WZWMs
IGludDMyX3QgY2FwYWNpdHksIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAg
KiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3Igd29yZC1icmVha3MgdXNpbmcgdGhlIGdpdmVuIGxv
Y2FsZS4KKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBs
ZW1lbnRpbmcgd29yZCBicmVha3MuCisgICAgICogV29yZEJyZWFrIGlzIHVzZWZ1bCBmb3Igd29y
ZCBzZWxlY3Rpb24gKGV4LiBkb3VibGUgY2xpY2spCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBs
b2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyB0aGUgZXJyb3IgY29kZQorICAgICAqIEByZXR1
cm4gQSBCcmVha0l0ZXJhdG9yIGZvciB3b3JkLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0
dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9u
IHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBz
dWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVf
U1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91
CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2gg
c3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcg
aW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICog
ZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhl
cmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGlu
ZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5l
aXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2Fs
ZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJl
dHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VY
UE9SVDIKKyAgICBjcmVhdGVXb3JkSW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9y
Q29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZv
ciBsaW5lLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFJldHVybnMgYW4g
aW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyBsaW5lIGJyZWFrcy4gTGlu
ZQorICAgICAqIGJyZWFrcyBhcmUgbG9naWNhbGx5IHBvc3NpYmxlIGxpbmUgYnJlYWtzLCBhY3R1
YWwgbGluZSBicmVha3MgYXJlCisgICAgICogdXN1YWxseSBkZXRlcm1pbmVkIGJhc2VkIG9uIGRp
c3BsYXkgd2lkdGguCisgICAgICogTGluZUJyZWFrIGlzIHVzZWZ1bCBmb3Igd29yZCB3cmFwcGlu
ZyB0ZXh0LgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBz
dGF0dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9y
IGxpbmUtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBp
cyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICog
VG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBz
aG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ug
d2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9y
IGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNz
LgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwg
YmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyBy
ZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAg
KiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1
bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxv
Y2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZv
dW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyBy
ZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZUxpbmVJ
bnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAg
LyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIGNoYXJhY3Rlci1icmVha3MgdXNp
bmcgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVh
a0l0ZXJhdG9yIGltcGxlbWVudGluZyBjaGFyYWN0ZXIgYnJlYWtzLgorICAgICAqIENoYXJhY3Rl
ciBicmVha3MgYXJlIGJvdW5kYXJpZXMgb2YgY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMu
CisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBU
aGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3IgY2hhcmFj
dGVyLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMg
dXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRv
IGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hv
dWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdp
c2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBp
bmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4K
KyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJh
Y2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVx
dWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICog
dXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0
IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2Nh
bGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3Vu
ZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVz
cG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVDaGFyYWN0
ZXJJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisg
ICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIHNlbnRlbmNlLWJyZWFrcyB1
c2luZyBzcGVjaWZpZWQgbG9jYWxlCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJy
ZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIHNlbnRlbmNlIGJyZWFrcy4KKyAgICAgKiBAcGFyYW0g
d2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBlcnJvciBjb2RlLgor
ICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciBzZW50ZW5jZS1icmVha3MuICBUaGUg
VUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0
YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRo
ZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAq
IHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQg
aW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJv
ciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19G
QUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNl
ZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhp
bmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RF
RkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMK
KyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRz
IGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNh
bGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxl
dGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJl
YWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlU2VudGVuY2VJbnN0YW5jZShjb25zdCBM
b2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3Jl
YXRlIEJyZWFrSXRlcmF0b3IgZm9yIHRpdGxlLWNhc2luZyBicmVha3MgdXNpbmcgdGhlIHNwZWNp
ZmllZCBsb2NhbGUKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRv
ciBpbXBsZW1lbnRpbmcgdGl0bGUgYnJlYWtzLgorICAgICAqIFRoZSBpdGVyYXRvciByZXR1cm5l
ZCBsb2NhdGVzIHRpdGxlIGJvdW5kYXJpZXMgYXMgZGVzY3JpYmVkIGZvcgorICAgICAqIFVuaWNv
ZGUgMy4yIG9ubHkuIEZvciBVbmljb2RlIDQuMCBhbmQgYWJvdmUgdGl0bGUgYm91bmRhcnkgaXRl
cmF0aW9uLAorICAgICAqIHBsZWFzZSB1c2UgV29yZCBCb3VuZGFyeSBpdGVyYXRvci57QGxpbmsg
I2NyZWF0ZVdvcmRJbnN0YW5jZSB9CisgICAgICoKKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxv
Y2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1
cm4gQSBCcmVha0l0ZXJhdG9yIGZvciB0aXRsZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3Rh
dHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlv
biB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24g
c3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBV
X1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlv
dQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNo
IHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5H
IGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAq
IGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRo
ZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBp
bmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBu
ZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2Nh
bGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSBy
ZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9F
WFBPUlQyCisgICAgY3JlYXRlVGl0bGVJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJy
b3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBzZXQgb2YgTG9jYWxl
cyBmb3Igd2hpY2ggVGV4dEJvdW5kYXJpZXMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiA8cD48Yj5O
b3RlOjwvYj4gdGhpcyB3aWxsIG5vdCByZXR1cm4gbG9jYWxlcyBhZGRlZCB0aHJvdWdoIHRoZSBy
ZWdpc3RlcgorICAgICAqIGNhbGwuIFRvIHNlZSB0aGUgcmVnaXN0ZXJlZCBsb2NhbGVzIHRvbywg
dXNlIHRoZSBnZXRBdmFpbGFibGVMb2NhbGVzCisgICAgICogZnVuY3Rpb24gdGhhdCByZXR1cm5z
IGEgU3RyaW5nRW51bWVyYXRpb24gb2JqZWN0IDwvcD4KKyAgICAgKiBAcGFyYW0gY291bnQgdGhl
IG91dHB1dCBwYXJhbWV0ZXIgb2YgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBsb2NhbGUgbGlz
dAorICAgICAqIEByZXR1cm4gYXZhaWxhYmxlIGxvY2FsZXMKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlKiBVX0VYUE9SVDIgZ2V0QXZhaWxh
YmxlTG9jYWxlcyhpbnQzMl90JiBjb3VudCk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgbmFtZSBv
ZiB0aGUgb2JqZWN0IGZvciB0aGUgZGVzaXJlZCBMb2NhbGUsIGluIHRoZSBkZXNpcmVkIGxhbmdh
dWdlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUgbXVzdCBiZSBmcm9tIGdldEF2YWlsYWJs
ZUxvY2FsZXMuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgc3BlY2lmaWVzIHRoZSBkZXNp
cmVkIGxvY2FsZSBmb3Igb3V0cHV0LgorICAgICAqIEBwYXJhbSBuYW1lIHRoZSBmaWxsLWluIHBh
cmFtZXRlciBvZiB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogVXNlcyBiZXN0IG1hdGNoLgorICAg
ICAqIEByZXR1cm4gdXNlci1kaXNwbGF5YWJsZSBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgc3RhdGljIFVuaWNvZGVTdHJpbmcmIFVfRVhQT1JUMiBnZXREaXNwbGF5
TmFtZShjb25zdCBMb2NhbGUmIG9iamVjdExvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxlJiBkaXNwbGF5TG9jYWxlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBuYW1lKTsKKwor
ICAgIC8qKgorICAgICAqIEdldCBuYW1lIG9mIHRoZSBvYmplY3QgZm9yIHRoZSBkZXNpcmVkIExv
Y2FsZSwgaW4gdGhlIGxhbmdhdWdlIG9mIHRoZQorICAgICAqIGRlZmF1bHQgbG9jYWxlLgorICAg
ICAqIEBwYXJhbSBvYmplY3RMb2NhbGUgbXVzdCBiZSBmcm9tIGdldE1hdGNoaW5nTG9jYWxlcwor
ICAgICAqIEBwYXJhbSBuYW1lIHRoZSBmaWxsLWluIHBhcmFtZXRlciBvZiB0aGUgcmV0dXJuIHZh
bHVlCisgICAgICogQHJldHVybiB1c2VyLWRpc3BsYXlhYmxlIG5hbWUKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgVV9FWFBPUlQyIGdl
dERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgb2JqZWN0TG9jYWxlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBuYW1lKTsKKworICAgIC8q
KgorICAgICAqIERlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0eS4gVXNlIGNsb25lKCkgaW5zdGVhZC4K
KyAgICAgKgorICAgICAqIFRocmVhZCBzYWZlIGNsaWVudC1idWZmZXItYmFzZWQgY2xvbmluZyBv
cGVyYXRpb24KKyAgICAgKiAgICBEbyBOT1QgY2FsbCBkZWxldGUgb24gYSBzYWZlY2xvbmUsIHNp
bmNlICduZXcnIGlzIG5vdCB1c2VkIHRvIGNyZWF0ZSBpdC4KKyAgICAgKiBAcGFyYW0gc3RhY2tC
dWZmZXIgdXNlciBhbGxvY2F0ZWQgc3BhY2UgZm9yIHRoZSBuZXcgY2xvbmUuIElmIE5VTEwgbmV3
IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4KKyAgICAgKiBJZiBidWZmZXIgaXMgbm90IGxhcmdl
IGVub3VnaCwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4KKyAgICAgKiBAcGFyYW0gQnVm
ZmVyU2l6ZSByZWZlcmVuY2UgdG8gc2l6ZSBvZiBhbGxvY2F0ZWQgc3BhY2UuCisgICAgICogSWYg
QnVmZmVyU2l6ZSA9PSAwLCBhIHN1ZmZpY2llbnQgc2l6ZSBmb3IgdXNlIGluIGNsb25pbmcgd2ls
bAorICAgICAqIGJlIHJldHVybmVkICgncHJlLWZsaWdodGluZycpCisgICAgICogSWYgQnVmZmVy
U2l6ZSBpcyBub3QgZW5vdWdoIGZvciBhIHN0YWNrLWJhc2VkIHNhZmUgY2xvbmUsCisgICAgICog
bmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRvIGlu
ZGljYXRlIHdoZXRoZXIgdGhlIG9wZXJhdGlvbiB3ZW50IG9uIHNtb290aGx5IG9yIHRoZXJlIHdl
cmUgZXJyb3JzCisgICAgICogIEFuIGluZm9ybWF0aW9uYWwgc3RhdHVzIHZhbHVlLCBVX1NBRkVD
TE9ORV9BTExPQ0FURURfRVJST1IsIGlzIHVzZWQgaWYgYW55IGFsbG9jYXRpb25zIHdlcmUKKyAg
ICAgKiAgbmVjZXNzYXJ5LgorICAgICAqIEByZXR1cm4gcG9pbnRlciB0byB0aGUgbmV3IGNsb25l
CisgICAgICoKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIFVzZSBjbG9uZSgpIGluc3RlYWQu
CisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yICogIGNyZWF0ZUJ1ZmZlckNsb25l
KHZvaWQgKnN0YWNrQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQzMl90ICZCdWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKworI2lmbmRl
ZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworICAgIC8qKgorICAgICAqICAgRGV0ZXJtaW5lIHdo
ZXRoZXIgdGhlIEJyZWFrSXRlcmF0b3Igd2FzIGNyZWF0ZWQgaW4gdXNlciBtZW1vcnkgYnkKKyAg
ICAgKiAgIGNyZWF0ZUJ1ZmZlckNsb25lKCksIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgZGVsZXRl
ZC4gIFN1Y2ggb2JqZWN0cworICAgICAqICAgbXVzdCBiZSBjbG9zZWQgYnkgYW4gZXhwbGljaXQg
Y2FsbCB0byB0aGUgZGVzdHJ1Y3RvciAobm90IGRlbGV0ZSkuCisgICAgICogQGRlcHJlY2F0ZWQg
SUNVIDUyLiBBbHdheXMgZGVsZXRlIHRoZSBCcmVha0l0ZXJhdG9yLgorICAgICAqLworICAgIGlu
bGluZSBVQm9vbCBpc0J1ZmZlckNsb25lKHZvaWQpOworCisjZW5kaWYgLyogVV9ISURFX0RFUFJF
Q0FURURfQVBJICovCisKKyNpZiAhVUNPTkZJR19OT19TRVJWSUNFCisgICAgLyoqCisgICAgICog
UmVnaXN0ZXIgYSBuZXcgYnJlYWsgaXRlcmF0b3Igb2YgdGhlIGluZGljYXRlZCBraW5kLCB0byB1
c2UgaW4gdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBUaGUgYnJlYWsgaXRlcmF0b3Igd2lsbCBi
ZSBhZG9wdGVkLiAgQ2xvbmVzIG9mIHRoZSBpdGVyYXRvciB3aWxsIGJlIHJldHVybmVkCisgICAg
ICogaWYgYSByZXF1ZXN0IGZvciBhIGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBnaXZlbiBraW5kIG1h
dGNoZXMgb3IgZmFsbHMgYmFjayB0bworICAgICAqIHRoaXMgbG9jYWxlLgorICAgICAqIEJlY2F1
c2UgSUNVIG1heSBjaG9vc2UgdG8gY2FjaGUgQnJlYWtJdGVyYXRvcnMgaW50ZXJuYWxseSwgdGhp
cyBtdXN0CisgICAgICogYmUgY2FsbGVkIGF0IGFwcGxpY2F0aW9uIHN0YXJ0dXAsIHByaW9yIHRv
IGFueSBjYWxscyB0bworICAgICAqIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZVhYWEluc3RhbmNlIHRv
IGF2b2lkIHVuZGVmaW5lZCBiZWhhdmlvci4KKyAgICAgKiBAcGFyYW0gdG9BZG9wdCB0aGUgQnJl
YWtJdGVyYXRvciBpbnN0YW5jZSB0byBiZSBhZG9wdGVkCisgICAgICogQHBhcmFtIGxvY2FsZSB0
aGUgTG9jYWxlIGZvciB3aGljaCB0aGlzIGluc3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQKKyAg
ICAgKiBAcGFyYW0ga2luZCB0aGUgdHlwZSBvZiBpdGVyYXRvciBmb3Igd2hpY2ggdGhpcyBpbnN0
YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAgICogQHBhcmFtIHN0YXR1cyB0aGUgaW4vb3V0
IHN0YXR1cyBjb2RlLCBubyBzcGVjaWFsIG1lYW5pbmdzIGFyZSBhc3NpZ25lZAorICAgICAqIEBy
ZXR1cm4gYSByZWdpc3RyeSBrZXkgdGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMg
aW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBzdGF0aWMgVVJl
Z2lzdHJ5S2V5IFVfRVhQT1JUMiByZWdpc3Rlckluc3RhbmNlKEJyZWFrSXRlcmF0b3IqIHRvQWRv
cHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxl
JiBsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUJyZWFr
SXRlcmF0b3JUeXBlIGtpbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFVucmVnaXN0ZXIgYSBw
cmV2aW91c2x5LXJlZ2lzdGVyZWQgQnJlYWtJdGVyYXRvciB1c2luZyB0aGUga2V5IHJldHVybmVk
IGZyb20gdGhlCisgICAgICogcmVnaXN0ZXIgY2FsbC4gIEtleSBiZWNvbWVzIGludmFsaWQgYWZ0
ZXIgYSBzdWNjZXNzZnVsIGNhbGwgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBhZ2Fpbi4KKyAgICAg
KiBUaGUgQnJlYWtJdGVyYXRvciBjb3JyZXNwb25kaW5nIHRvIHRoZSBrZXkgd2lsbCBiZSBkZWxl
dGVkLgorICAgICAqIEJlY2F1c2UgSUNVIG1heSBjaG9vc2UgdG8gY2FjaGUgQnJlYWtJdGVyYXRv
cnMgaW50ZXJuYWxseSwgdGhpcyBzaG91bGQKKyAgICAgKiBiZSBjYWxsZWQgZHVyaW5nIGFwcGxp
Y2F0aW9uIHNodXRkb3duLCBhZnRlciBhbGwgY2FsbHMgdG8KKyAgICAgKiBCcmVha0l0ZXJhdG9y
OjpjcmVhdGVYWFhJbnN0YW5jZSB0byBhdm9pZCB1bmRlZmluZWQgYmVoYXZpb3IuCisgICAgICog
QHBhcmFtIGtleSB0aGUgcmVnaXN0cnkga2V5IHJldHVybmVkIGJ5IGEgcHJldmlvdXMgY2FsbCB0
byByZWdpc3Rlckluc3RhbmNlCisgICAgICogQHBhcmFtIHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1
cyBjb2RlLCBubyBzcGVjaWFsIG1lYW5pbmdzIGFyZSBhc3NpZ25lZAorICAgICAqIEByZXR1cm4g
VFJVRSBpZiB0aGUgaXRlcmF0b3IgZm9yIHRoZSBrZXkgd2FzIHN1Y2Nlc3NmdWxseSB1bnJlZ2lz
dGVyZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBzdGF0aWMgVUJvb2wg
VV9FWFBPUlQyIHVucmVnaXN0ZXIoVVJlZ2lzdHJ5S2V5IGtleSwgVUVycm9yQ29kZSYgc3RhdHVz
KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIFN0cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhl
IGxvY2FsZXMgYXZhaWxhYmxlIGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsLAorICAgICAqIGluY2x1
ZGluZyByZWdpc3RlcmVkIGxvY2FsZXMuCisgICAgICogQHJldHVybiBhIFN0cmluZ0VudW1lcmF0
aW9uIG92ZXIgdGhlIGxvY2FsZXMgYXZhaWxhYmxlIGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsCisg
ICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgc3RhdGljIFN0cmluZ0VudW1lcmF0
aW9uKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxlTG9jYWxlcyh2b2lkKTsKKyNlbmRpZgorCisgICAg
LyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlIGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiBU
d28gZmxhdm9ycyBhcmUgYXZhaWxhYmxlOiB2YWxpZCBhbmQKKyAgICAgKiBhY3R1YWwgbG9jYWxl
LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIExvY2FsZSBnZXRMb2NhbGUo
VUxvY0RhdGFMb2NhbGVUeXBlIHR5cGUsIFVFcnJvckNvZGUmIHN0YXR1cykgY29uc3Q7CisKKyNp
Zm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKiBHZXQgdGhlIGxvY2FsZSBmb3IgdGhp
cyBicmVhayBpdGVyYXRvciBvYmplY3QuIFlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdmFsaWQgYW5k
IGFjdHVhbCBsb2NhbGUuCisgICAgICogIEBwYXJhbSB0eXBlIHR5cGUgb2YgdGhlIGxvY2FsZSB3
ZSdyZSBsb29raW5nIGZvciAodmFsaWQgb3IgYWN0dWFsKQorICAgICAqICBAcGFyYW0gc3RhdHVz
IGVycm9yIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24KKyAgICAgKiAgQHJldHVybiB0aGUgbG9jYWxl
CisgICAgICogIEBpbnRlcm5hbAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKmdldExvY2FsZUlE
KFVMb2NEYXRhTG9jYWxlVHlwZSB0eXBlLCBVRXJyb3JDb2RlJiBzdGF0dXMpIGNvbnN0OworI2Vu
ZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKyAgICAvKioKKyAgICAgKiAgU2V0IHRo
ZSBzdWJqZWN0IHRleHQgc3RyaW5nIHVwb24gd2hpY2ggdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9w
ZXJhdGluZworICAgICAqICB3aXRob3V0IGNoYW5naW5nIGFueSBvdGhlciBhc3BlY3Qgb2YgdGhl
IG1hdGNoaW5nIHN0YXRlLgorICAgICAqICBUaGUgbmV3IGFuZCBwcmV2aW91cyB0ZXh0IHN0cmlu
Z3MgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCisgICAgICoKKyAgICAgKiAgVGhpcyBmdW5j
dGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGluIGVudmlyb25tZW50cyB3aGVyZSBJQ1UgaXMgb3Bl
cmF0aW5nIG9uCisgICAgICogIHN0cmluZ3MgdGhhdCBtYXkgbW92ZSBhcm91bmQgaW4gbWVtb3J5
LiAgSXQgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIG5vdGlmeWluZworICAgICAqICBJQ1UgdGhh
dCB0aGUgc3RyaW5nIGhhcyBiZWVuIHJlbG9jYXRlZCwgYW5kIHByb3ZpZGluZyBhIG5ldyBVVGV4
dCB0byBhY2Nlc3MgdGhlCisgICAgICogIHN0cmluZyBpbiBpdHMgbmV3IHBvc2l0aW9uLgorICAg
ICAqCisgICAgICogIE5vdGUgdGhhdCB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24g
bmV2ZXIgY29waWVzIHRoZSB1bmRlcmx5aW5nIHRleHQKKyAgICAgKiAgb2YgYSBzdHJpbmcgYmVp
bmcgcHJvY2Vzc2VkLCBidXQgYWx3YXlzIG9wZXJhdGVzIGRpcmVjdGx5IG9uIHRoZSBvcmlnaW5h
bCB0ZXh0CisgICAgICogIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiBSZWZyZXNoaW5nIHNpbXBseSBk
cm9wcyB0aGUgcmVmZXJlbmNlcyB0byB0aGUgb2xkIHRleHQKKyAgICAgKiAgYW5kIHJlcGxhY2Vz
IHRoZW0gd2l0aCByZWZlcmVuY2VzIHRvIHRoZSBuZXcuCisgICAgICoKKyAgICAgKiAgQ2F1dGlv
bjogIHRoaXMgZnVuY3Rpb24gaXMgbm9ybWFsbHkgdXNlZCBvbmx5IGJ5IHZlcnkgc3BlY2lhbGl6
ZWQsCisgICAgICogIHN5c3RlbS1sZXZlbCBjb2RlLiAgT25lIGV4YW1wbGUgdXNlIGNhc2UgaXMg
d2l0aCBnYXJiYWdlIGNvbGxlY3Rpb24gdGhhdCBtb3ZlcworICAgICAqICB0aGUgdGV4dCBpbiBt
ZW1vcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5wdXQgICAgICBUaGUgbmV3IChtb3ZlZCkg
dGV4dCBzdHJpbmcuCisgICAgICogQHBhcmFtIHN0YXR1cyAgICAgUmVjZWl2ZXMgZXJyb3JzIGRl
dGVjdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCisgICAgICogQHJldHVybiAgICAgICAgICAgKnRoaXMK
KyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdmlydHVhbCBCcmVh
a0l0ZXJhdG9yICZyZWZyZXNoSW5wdXRUZXh0KFVUZXh0ICppbnB1dCwgVUVycm9yQ29kZSAmc3Rh
dHVzKSA9IDA7CisKKyBwcml2YXRlOgorICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBidWlsZElu
c3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBjb25zdCBjaGFyICp0eXBlLCBpbnQzMl90IGtpbmQs
IFVFcnJvckNvZGUmIHN0YXR1cyk7CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUlu
c3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1
cyk7CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIG1ha2VJbnN0YW5jZShjb25zdCBMb2NhbGUm
IGxvYywgaW50MzJfdCBraW5kLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgZnJpZW5kIGNs
YXNzIElDVUJyZWFrSXRlcmF0b3JGYWN0b3J5OworICAgIGZyaWVuZCBjbGFzcyBJQ1VCcmVha0l0
ZXJhdG9yU2VydmljZTsKKworcHJvdGVjdGVkOgorICAgIC8vIERvIG5vdCBlbmNsb3NlIHByb3Rl
Y3RlZCBkZWZhdWx0L2NvcHkgY29uc3RydWN0b3JzIHdpdGggI2lmbmRlZiBVX0hJREVfSU5URVJO
QUxfQVBJCisgICAgLy8gb3IgZWxzZSB0aGUgY29tcGlsZXIgd2lsbCBjcmVhdGUgYSBwdWJsaWMg
b25lcy4KKyAgICAvKiogQGludGVybmFsICovCisgICAgQnJlYWtJdGVyYXRvcigpOworICAgIC8q
KiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJhdG9yIChjb25zdCBCcmVha0l0ZXJhdG9yICZv
dGhlcikgOiBVT2JqZWN0KG90aGVyKSB7fQorICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBCcmVh
a0l0ZXJhdG9yIChjb25zdCBMb2NhbGUmIHZhbGlkLCBjb25zdCBMb2NhbGUmIGFjdHVhbCk7Citw
cml2YXRlOgorCisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIGNoYXIgYWN0dWFsTG9jYWxlW1VM
T0NfRlVMTE5BTUVfQ0FQQUNJVFldOworICAgIGNoYXIgdmFsaWRMb2NhbGVbVUxPQ19GVUxMTkFN
RV9DQVBBQ0lUWV07CisKKyAgICAvKioKKyAgICAgKiBUaGUgYXNzaWdubWVudCBvcGVyYXRvciBo
YXMgbm8gcmVhbCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiBJdCdzIHByb3ZpZGVkIHRvIG1ha2Ug
dGhlIGNvbXBpbGVyIGhhcHB5LiBEbyBub3QgY2FsbC4KKyAgICAgKi8KKyAgICBCcmVha0l0ZXJh
dG9yJiBvcGVyYXRvcj0oY29uc3QgQnJlYWtJdGVyYXRvciYpOworfTsKKworI2lmbmRlZiBVX0hJ
REVfREVQUkVDQVRFRF9BUEkKKworaW5saW5lIFVCb29sIEJyZWFrSXRlcmF0b3I6OmlzQnVmZmVy
Q2xvbmUoKQoreworICAgIHJldHVybiBGQUxTRTsKK30KKworI2VuZGlmIC8qIFVfSElERV9ERVBS
RUNBVEVEX0FQSSAqLworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmIC8qICNpZiAhVUNPTkZJ
R19OT19CUkVBS19JVEVSQVRJT04gKi8KKworI2VuZGlmIC8vIF9CUktJVEVSCisvL2VvZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9jaGFyaXRlci5oIGIvU291cmNlL1dURi9p
Y3UvdW5pY29kZS9jaGFyaXRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4ZDY1MDkwYTQwYTYwODU5NTFjNzMz
MDdmNzRhY2Y4M2JhMWJiYzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL2NoYXJpdGVyLmgKQEAgLTAsMCArMSw3MjIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAg
IENvcHlyaWdodCAoQykgMTk5Ny0yMDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgorKi8KKworI2lmbmRlZiBDSEFSSVRFUl9ICisjZGVmaW5lIENIQVJJVEVSX0gK
KworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91b2JqZWN0
LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIKKy8qKgorICogXGZpbGUKKyAqIFxicmll
ZiBDKysgQVBJOiBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4K
Ky8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhhdCBkZWZpbmVzIGFuIEFQSSBmb3IgZm9yd2FyZC1v
bmx5IGl0ZXJhdGlvbgorICogb24gdGV4dCBvYmplY3RzLgorICogVGhpcyBpcyBhIG1pbmltYWwg
aW50ZXJmYWNlIGZvciBpdGVyYXRpb24gd2l0aG91dCByYW5kb20gYWNjZXNzCisgKiBvciBiYWNr
d2FyZHMgaXRlcmF0aW9uLiBJdCBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBmb3Igd3JhcHBpbmcKKyAq
IHN0cmVhbXMgd2l0aCBjb252ZXJ0ZXJzIGludG8gYW4gb2JqZWN0IGZvciBjb2xsYXRpb24gb3IK
KyAqIG5vcm1hbGl6YXRpb24uCisgKgorICogPHA+Q2hhcmFjdGVycyBjYW4gYmUgYWNjZXNzZWQg
aW4gdHdvIHdheXM6IGFzIGNvZGUgdW5pdHMgb3IgYXMKKyAqIGNvZGUgcG9pbnRzLgorICogVW5p
Y29kZSBjb2RlIHBvaW50cyBhcmUgMjEtYml0IGludGVnZXJzIGFuZCBhcmUgdGhlIHNjYWxhciB2
YWx1ZXMKKyAqIG9mIFVuaWNvZGUgY2hhcmFjdGVycy4gSUNVIHVzZXMgdGhlIHR5cGUgVUNoYXIz
MiBmb3IgdGhlbS4KKyAqIFVuaWNvZGUgY29kZSB1bml0cyBhcmUgdGhlIHN0b3JhZ2UgdW5pdHMg
b2YgYSBnaXZlbgorICogVW5pY29kZS9VQ1MgVHJhbnNmb3JtYXRpb24gRm9ybWF0IChhIGNoYXJh
Y3RlciBlbmNvZGluZyBzY2hlbWUpLgorICogV2l0aCBVVEYtMTYsIGFsbCBjb2RlIHBvaW50cyBj
YW4gYmUgcmVwcmVzZW50ZWQgd2l0aCBlaXRoZXIgb25lCisgKiBvciB0d28gY29kZSB1bml0cyAo
InN1cnJvZ2F0ZXMiKS4KKyAqIFN0cmluZyBzdG9yYWdlIGlzIHR5cGljYWxseSBiYXNlZCBvbiBj
b2RlIHVuaXRzLCB3aGlsZSBwcm9wZXJ0aWVzCisgKiBvZiBjaGFyYWN0ZXJzIGFyZSB0eXBpY2Fs
bHkgZGV0ZXJtaW5lZCB1c2luZyBjb2RlIHBvaW50IHZhbHVlcy4KKyAqIFNvbWUgcHJvY2Vzc2Vz
IG1heSBiZSBkZXNpZ25lZCB0byB3b3JrIHdpdGggc2VxdWVuY2VzIG9mIGNvZGUgdW5pdHMsCisg
KiBvciBpdCBtYXkgYmUga25vd24gdGhhdCBhbGwgY2hhcmFjdGVycyB0aGF0IGFyZSBpbXBvcnRh
bnQgdG8gYW4KKyAqIGFsZ29yaXRobSBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aCBzaW5nbGUgY29k
ZSB1bml0cy4KKyAqIE90aGVyIHByb2Nlc3NlcyB3aWxsIG5lZWQgdG8gdXNlIHRoZSBjb2RlIHBv
aW50IGFjY2VzcyBmdW5jdGlvbnMuPC9wPgorICoKKyAqIDxwPkZvcndhcmRDaGFyYWN0ZXJJdGVy
YXRvciBwcm92aWRlcyBuZXh0UG9zdEluYygpIHRvIGFjY2VzcworICogYSBjb2RlIHVuaXQgYW5k
IGFkdmFuY2UgYW4gaW50ZXJuYWwgcG9zaXRpb24gaW50byB0aGUgdGV4dCBvYmplY3QsCisgKiBz
aW1pbGFyIHRvIGEgPGNvZGU+cmV0dXJuIHRleHRbcG9zaXRpb24rK108L2NvZGU+Ljxicj4KKyAq
IEl0IHByb3ZpZGVzIG5leHQzMlBvc3RJbmMoKSB0byBhY2Nlc3MgYSBjb2RlIHBvaW50IGFuZCBh
ZHZhbmNlIGFuIGludGVybmFsCisgKiBwb3NpdGlvbi48L3A+CisgKgorICogPHA+bmV4dDMyUG9z
dEluYygpIGFzc3VtZXMgdGhhdCB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyB0aGF0IG9mCisgKiB0
aGUgYmVnaW5uaW5nIG9mIGEgY29kZSBwb2ludCwgaS5lLiwgb2YgaXRzIGZpcnN0IGNvZGUgdW5p
dC4KKyAqIEFmdGVyIG5leHQzMlBvc3RJbmMoKSwgdGhpcyB3aWxsIGJlIHRydWUgYWdhaW4uCisg
KiBJbiBnZW5lcmFsLCBhY2Nlc3MgdG8gY29kZSB1bml0cyBhbmQgY29kZSBwb2ludHMgaW4gdGhl
IHNhbWUKKyAqIGl0ZXJhdGlvbiBsb29wIHNob3VsZCBub3QgYmUgbWl4ZWQuIEluIFVURi0xNiwg
aWYgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAqIGlzIG9uIGEgc2Vjb25kIGNvZGUgdW5pdCAoTG93
IFN1cnJvZ2F0ZSksIHRoZW4gb25seSB0aGF0IGNvZGUgdW5pdAorICogaXMgcmV0dXJuZWQgZXZl
biBieSBuZXh0MzJQb3N0SW5jKCkuPC9wPgorICoKKyAqIDxwPkZvciBpdGVyYXRpb24gd2l0aCBl
aXRoZXIgZnVuY3Rpb24sIHRoZXJlIGFyZSB0d28gd2F5cyB0bworICogY2hlY2sgZm9yIHRoZSBl
bmQgb2YgdGhlIGl0ZXJhdGlvbi4gV2hlbiB0aGVyZSBhcmUgbm8gbW9yZQorICogY2hhcmFjdGVy
cyBpbiB0aGUgdGV4dCBvYmplY3Q6CisgKiA8dWw+CisgKiA8bGk+VGhlIGhhc05leHQoKSBmdW5j
dGlvbiByZXR1cm5zIEZBTFNFLjwvbGk+CisgKiA8bGk+bmV4dFBvc3RJbmMoKSBhbmQgbmV4dDMy
UG9zdEluYygpIHJldHVybiBET05FCisgKiAgICAgd2hlbiBvbmUgYXR0ZW1wdHMgdG8gcmVhZCBi
ZXlvbmQgdGhlIGVuZCBvZiB0aGUgdGV4dCBvYmplY3QuPC9saT4KKyAqIDwvdWw+CisgKgorICog
RXhhbXBsZToKKyAqIFxjb2RlIAorICogdm9pZCBmdW5jdGlvbjEoRm9yd2FyZENoYXJhY3Rlckl0
ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyMzIgYzsKKyAqICAgICB3aGlsZShpdC5oYXNOZXh0
KCkpIHsKKyAqICAgICAgICAgYz1pdC5uZXh0MzJQb3N0SW5jKCk7CisgKiAgICAgICAgIC8vIHVz
ZSBjCisgKiAgICAgfQorICogfQorICoKKyAqIHZvaWQgZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0
ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhciBjOworICogICAgIHdoaWxlKChjPWl0Lm5l
eHRQb3N0SW5jKCkpIT1Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I6OkRPTkUpIHsKKyAqICAgICAg
ICAgLy8gdXNlIGMKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3A+CisgKgor
ICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IgOiBwdWJsaWMgVU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICog
VmFsdWUgcmV0dXJuZWQgYnkgbW9zdCBvZiBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IncyBmdW5j
dGlvbnMKKyAgICAgKiB3aGVuIHRoZSBpdGVyYXRvciBoYXMgcmVhY2hlZCB0aGUgbGltaXRzIG9m
IGl0cyBpdGVyYXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgZW51
bSB7IERPTkUgPSAweGZmZmYgfTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yLiAg
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+Rm9yd2FyZENo
YXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIHdo
ZW4gYm90aCBpdGVyYXRvcnMgcmVmZXIgdG8gdGhlIHNhbWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4g
dGhlIHNhbWUgY2hhcmFjdGVyLXN0b3JhZ2Ugb2JqZWN0LiAgCisgICAgICogQHBhcmFtIHRoYXQg
VGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkK
KyAgICAgKiBAcmV0dXJuIHRydWUgd2hlbiBib3RoIGl0ZXJhdG9ycyByZWZlciB0byB0aGUgc2Ft
ZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSBjaGFyYWN0ZXItc3RvcmFnZSBvYmplY3QK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIG9wZXJh
dG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdCA9IDA7Cisg
ICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIGl0ZXJhdG9ycyByZWZl
ciB0byBkaWZmZXJlbnQKKyAgICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0cywgb3IgdG8gZGlmZmVy
ZW50IGNoYXJhY3RlcnMgaW4gdGhlCisgICAgICogc2FtZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LiAg
CisgICAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBj
b21wYXJlZCBmb3IgaW5lcXVhbGl0eQorICAgICAqIEByZXR1cm4gdHJ1ZSB3aGVuIHRoZSBpdGVy
YXRvcnMgcmVmZXIgdG8gZGlmZmVyZW50CisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdHMsIG9y
IHRvIGRpZmZlcmVudCBjaGFyYWN0ZXJzIGluIHRoZQorICAgICAqIHNhbWUgdGV4dC1zdG9yYWdl
IG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBVQm9v
bCBvcGVyYXRvciE9KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7
CisgICAgCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGlzIGl0
ZXJhdG9yLiAgCisgICAgICogQHJldHVybiB0aGUgaGFzaCBjb2RlLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBoYXNoQ29kZSh2b2lkKSBjb25z
dCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGlz
IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAoInBvb3IgbWFuJ3MKKyAgICAgKiBSVFRJIikuPFA+
IERlc3BpdGUgdGhlIGZhY3QgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIHB1YmxpYywKKyAgICAgKiBE
TyBOT1QgQ09OU0lERVIgSVQgUEFSVCBPRiBDSEFSQUNURVJJVEVSQVRPUidTIEFQSSEgCisgICAg
ICogQHJldHVybiBhIFVDbGFzc0lEIGZvciB0aGlzIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdl
dER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBH
ZXRzIHRoZSBjdXJyZW50IGNvZGUgdW5pdCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0
aGUgbmV4dCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICog
KHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1
bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50
IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IFVDaGFyICAgICAgICAgbmV4dFBvc3RJbmModm9pZCkgPSAwOworICAgIAorICAgIC8qKgorICAg
ICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSBwb2ludCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNl
cyB0byB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQor
ICAgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3Jl
IGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgICAqIEByZXR1cm4gdGhl
IGN1cnJlbnQgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyUG9zdEluYyh2b2lkKSA9IDA7CisgICAgCisg
ICAgLyoqCisgICAgICogUmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVu
aXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRp
b24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBuZXh0
UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMoKSBpbiBmb3J3YXJkCisgICAgICogaXRlcmF0aW9u
LgorICAgICAqIEByZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMg
b3IgY29kZSBwb2ludHMKKyAgICAgKiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBp
biB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc05leHQoKSA9IDA7CisgICAgCitwcm90ZWN0ZWQ6
CisgICAgLyoqIERlZmF1bHQgY29uc3RydWN0b3IgdG8gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgaW1w
bGVtZW50aW5nIGNsYXNzLiBAc3RhYmxlIElDVSAyLjAqLworICAgIEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvcigpOworICAgIAorICAgIC8qKiBDb3B5IGNvbnN0cnVjdG9yIHRvIGJlIG92ZXJyaWRk
ZW4gaW4gdGhlIGltcGxlbWVudGluZyBjbGFzcy4gQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICBGb3J3
YXJkQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZvdGhl
cik7CisgICAgCisgICAgLyoqCisgICAgICogQXNzaWdubWVudCBvcGVyYXRvciB0byBiZSBvdmVy
cmlkZGVuIGluIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZvcGVyYXRvcj0oY29uc3Qg
Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJikgeyByZXR1cm4gKnRoaXM7IH0KK307CisKKy8qKgor
ICogQWJzdHJhY3QgY2xhc3MgdGhhdCBkZWZpbmVzIGFuIEFQSSBmb3IgaXRlcmF0aW9uCisgKiBv
biB0ZXh0IG9iamVjdHMuCisgKiBUaGlzIGlzIGFuIGludGVyZmFjZSBmb3IgZm9yd2FyZCBhbmQg
YmFja3dhcmQgaXRlcmF0aW9uCisgKiBhbmQgcmFuZG9tIGFjY2VzcyBpbnRvIGEgdGV4dCBvYmpl
Y3QuCisgKgorICogPHA+VGhlIEFQSSBwcm92aWRlcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHRv
IHRoZSBKYXZhIGFuZCBvbGRlciBJQ1UKKyAqIENoYXJhY3Rlckl0ZXJhdG9yIGNsYXNzZXMgYnV0
IGV4dGVuZHMgdGhlbSBzaWduaWZpY2FudGx5OgorICogPG9sPgorICogPGxpPkNoYXJhY3Rlckl0
ZXJhdG9yIGlzIG5vdyBhIHN1YmNsYXNzIG9mIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci48L2xp
PgorICogPGxpPldoaWxlIHRoZSBvbGQgQVBJIGZ1bmN0aW9ucyBwcm92aWRlZCBmb3J3YXJkIGl0
ZXJhdGlvbiB3aXRoCisgKiAgICAgInByZS1pbmNyZW1lbnQiIHNlbWFudGljcywgdGhlIG5ldyBv
bmUgYWxzbyBwcm92aWRlcyBmdW5jdGlvbnMKKyAqICAgICB3aXRoICJwb3N0LWluY3JlbWVudCIg
c2VtYW50aWNzLiBUaGV5IGFyZSBtb3JlIGVmZmljaWVudCBhbmQgc2hvdWxkCisgKiAgICAgYmUg
dGhlIHByZWZlcnJlZCBpdGVyYXRvciBmdW5jdGlvbnMgZm9yIG5ldyBpbXBsZW1lbnRhdGlvbnMu
CisgKiAgICAgVGhlIGJhY2t3YXJkIGl0ZXJhdGlvbiBhbHdheXMgaGFkICJwcmUtZGVjcmVtZW50
IiBzZW1hbnRpY3MsIHdoaWNoCisgKiAgICAgYXJlIGVmZmljaWVudC48L2xpPgorICogPGxpPkp1
c3QgbGlrZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IsIGl0IHByb3ZpZGVzIGFjY2VzcyB0bwor
ICogICAgIGJvdGggY29kZSB1bml0cyBhbmQgY29kZSBwb2ludHMuIENvZGUgcG9pbnQgYWNjZXNz
IHZlcnNpb25zIGFyZSBhdmFpbGFibGUKKyAqICAgICBmb3IgdGhlIG9sZCBhbmQgdGhlIG5ldyBp
dGVyYXRpb24gc2VtYW50aWNzLjwvbGk+CisgKiA8bGk+VGhlcmUgYXJlIG5ldyBmdW5jdGlvbnMg
Zm9yIHNldHRpbmcgYW5kIG1vdmluZyB0aGUgY3VycmVudCBwb3NpdGlvbgorICogICAgIHdpdGhv
dXQgcmV0dXJuaW5nIGEgY2hhcmFjdGVyLCBmb3IgZWZmaWNpZW5jeS48L2xpPgorICogPC9vbD4K
KyAqCisgKiBTZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIGZvciBleGFtcGxlcyBmb3IgdXNp
bmcgdGhlIG5ldyBmb3J3YXJkIGl0ZXJhdGlvbgorICogZnVuY3Rpb25zLiBGb3IgYmFja3dhcmQg
aXRlcmF0aW9uLCB0aGVyZSBpcyBhbHNvIGEgaGFzUHJldmlvdXMoKSBmdW5jdGlvbgorICogdGhh
dCBjYW4gYmUgdXNlZCBhbmFsb2dvdXNseSB0byBoYXNOZXh0KCkuCisgKiBUaGUgb2xkIGZ1bmN0
aW9ucyB3b3JrIGFzIGJlZm9yZSBhbmQgYXJlIHNob3duIGJlbG93LjwvcD4KKyAqCisgKiA8cD5F
eGFtcGxlcyBmb3Igc29tZSBvZiB0aGUgbmV3IGZ1bmN0aW9uczo8L3A+CisgKgorICogRm9yd2Fy
ZCBpdGVyYXRpb24gd2l0aCBoYXNOZXh0KCk6CisgKiBcY29kZQorICogdm9pZCBmb3J3YXJkMShD
aGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhcjMyIGM7CisgKiAgICAgZm9yKGl0
LnNldFRvU3RhcnQoKTsgaXQuaGFzTmV4dCgpOykgeworICogICAgICAgICBjPWl0Lm5leHQzMlBv
c3RJbmMoKTsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICB9CisgKiAgfQorICogXGVuZGNv
ZGUKKyAqIEZvcndhcmQgaXRlcmF0aW9uIG1vcmUgc2ltaWxhciB0byBsb29wcyB3aXRoIHRoZSBv
bGQgZm9yd2FyZCBpdGVyYXRpb24sCisgKiBzaG93aW5nIGEgd2F5IHRvIGNvbnZlcnQgc2ltcGxl
IGZvcigpIGxvb3BzOgorICogXGNvZGUKKyAqIHZvaWQgZm9yd2FyZDIoQ2hhcmFjdGVySXRlcmF0
b3IgJml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAgICBmb3IoYz1pdC5maXJzdFBvc3RJbmMo
KTsgYyE9Q2hhcmFjdGVySXRlcmF0b3I6OkRPTkU7IGM9aXQubmV4dFBvc3RJbmMoKSkgeworICog
ICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICogfQorICogXGVuZGNvZGUKKyAqIEJhY2t3
YXJkIGl0ZXJhdGlvbiB3aXRoIHNldFRvRW5kKCkgYW5kIGhhc1ByZXZpb3VzKCk6CisgKiBcY29k
ZQorICogIHZvaWQgYmFja3dhcmQxKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgICBV
Q2hhcjMyIGM7CisgKiAgICAgIGZvcihpdC5zZXRUb0VuZCgpOyBpdC5oYXNQcmV2aW91cygpOykg
eworICogICAgICAgICBjPWl0LnByZXZpb3VzMzIoKTsKKyAqICAgICAgICAgIC8vIHVzZSBjCisg
KiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogQmFja3dhcmQgaXRlcmF0aW9uIHdpdGgg
YSBtb3JlIHRyYWRpdGlvbmFsIGZvcigpIGxvb3A6CisgKiBcY29kZQorICogdm9pZCBiYWNrd2Fy
ZDIoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAgICBmb3Io
Yz1pdC5sYXN0KCk7IGMhPUNoYXJhY3Rlckl0ZXJhdG9yOjpET05FOyBjPWl0LnByZXZpb3VzKCkp
IHsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisg
KgorICogRXhhbXBsZSBmb3IgcmFuZG9tIGFjY2VzczoKKyAqIFxjb2RlCisgKiAgdm9pZCByYW5k
b20oQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgIC8vIHNldCB0byB0aGUgdGhpcmQg
Y29kZSBwb2ludCBmcm9tIHRoZSBiZWdpbm5pbmcKKyAqICAgICAgaXQubW92ZTMyKDMsIENoYXJh
Y3Rlckl0ZXJhdG9yOjprU3RhcnQpOworICogICAgICAvLyBnZXQgYSBjb2RlIHBvaW50IGZyb20g
aGVyZSB3aXRob3V0IG1vdmluZyB0aGUgcG9zaXRpb24KKyAqICAgICAgVUNoYXIzMiBjPWl0LmN1
cnJlbnQzMigpOworICogICAgICAvLyBnZXQgdGhlIHBvc2l0aW9uCisgKiAgICAgIGludDMyX3Qg
cG9zPWl0LmdldEluZGV4KCk7CisgKiAgICAgIC8vIGdldCB0aGUgcHJldmlvdXMgY29kZSB1bml0
CisgKiAgICAgIFVDaGFyIHU9aXQucHJldmlvdXMoKTsKKyAqICAgICAgLy8gbW92ZSBiYWNrIG9u
ZSBtb3JlIGNvZGUgdW5pdAorICogICAgICBpdC5tb3ZlKC0xLCBDaGFyYWN0ZXJJdGVyYXRvcjo6
a0N1cnJlbnQpOworICogICAgICAvLyBzZXQgdGhlIHBvc2l0aW9uIGJhY2sgdG8gd2hlcmUgaXQg
d2FzCisgKiAgICAgIC8vIGFuZCByZWFkIHRoZSBzYW1lIGNvZGUgcG9pbnQgYyBhbmQgbW92ZSBi
ZXlvbmQgaXQKKyAqICAgICAgaXQuc2V0SW5kZXgocG9zKTsKKyAqICAgICAgaWYoYyE9aXQubmV4
dDMyUG9zdEluYygpKSB7CisgKiAgICAgICAgICBleGl0KDEpOyAvLyBDaGFyYWN0ZXJJdGVyYXRv
ciBpbmNvbnNpc3RlbnQKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKgorICogPHA+
RXhhbXBsZXMsIGVzcGVjaWFsbHkgZm9yIHRoZSBvbGQgQVBJOjwvcD4KKyAqCisgKiBGdW5jdGlv
biBwcm9jZXNzaW5nIGNoYXJhY3RlcnMsIGluIHRoaXMgZXhhbXBsZSBzaW1wbGUgb3V0cHV0Cisg
KiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIHByb2Nlc3NDaGFyKCBVQ2hhciBjICkKKyAqICB7
CisgKiAgICAgIGNvdXQgPDwgIiAiIDw8IGM7CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJl
PgorICogVHJhdmVyc2UgdGhlIHRleHQgZnJvbSBzdGFydCB0byBmaW5pc2gKKyAqIDxwcmU+IAor
ICogXGNvZGUKKyAqICB2b2lkIHRyYXZlcnNlRm9yd2FyZChDaGFyYWN0ZXJJdGVyYXRvciYgaXRl
cikKKyAqICB7CisgKiAgICAgIGZvcihVQ2hhciBjID0gaXRlci5maXJzdCgpOyBjICE9IENoYXJh
Y3Rlckl0ZXJhdG9yLkRPTkU7IGMgPSBpdGVyLm5leHQoKSkgeworICogICAgICAgICAgcHJvY2Vz
c0NoYXIoYyk7CisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBU
cmF2ZXJzZSB0aGUgdGV4dCBiYWNrd2FyZHMsIGZyb20gZW5kIHRvIHN0YXJ0CisgKiA8cHJlPgor
ICogXGNvZGUKKyAqICB2b2lkIHRyYXZlcnNlQmFja3dhcmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0
ZXIpCisgKiAgeworICogICAgICBmb3IoVUNoYXIgYyA9IGl0ZXIubGFzdCgpOyBjICE9IENoYXJh
Y3Rlckl0ZXJhdG9yLkRPTkU7IGMgPSBpdGVyLnByZXZpb3VzKCkpIHsKKyAqICAgICAgICAgIHBy
b2Nlc3NDaGFyKGMpOworICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgor
ICogVHJhdmVyc2UgYm90aCBmb3J3YXJkIGFuZCBiYWNrd2FyZCBmcm9tIGEgZ2l2ZW4gcG9zaXRp
b24gaW4gdGhlIHRleHQuIAorICogQ2FsbHMgdG8gbm90Qm91bmRhcnkoKSBpbiB0aGlzIGV4YW1w
bGUgcmVwcmVzZW50cyBzb21lIGFkZGl0aW9uYWwgc3RvcHBpbmcgY3JpdGVyaWEuCisgKiA8cHJl
PgorICogXGNvZGUKKyAqIHZvaWQgdHJhdmVyc2VPdXQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIs
IGludDMyX3QgcG9zKQorICogeworICogICAgICBVQ2hhciBjOworICogICAgICBmb3IgKGMgPSBp
dGVyLnNldEluZGV4KHBvcyk7CisgKiAgICAgIGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAm
JiAoVW5pY29kZTo6aXNMZXR0ZXIoYykgfHwgVW5pY29kZTo6aXNEaWdpdChjKSk7CisgKiAgICAg
ICAgICBjID0gaXRlci5uZXh0KCkpIHt9CisgKiAgICAgIGludDMyX3QgZW5kID0gaXRlci5nZXRJ
bmRleCgpOworICogICAgICBmb3IgKGMgPSBpdGVyLnNldEluZGV4KHBvcyk7CisgKiAgICAgICAg
ICBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYgKFVuaWNvZGU6OmlzTGV0dGVyKGMpIHx8
IFVuaWNvZGU6OmlzRGlnaXQoYykpOworICogICAgICAgICAgYyA9IGl0ZXIucHJldmlvdXMoKSkg
e30KKyAqICAgICAgaW50MzJfdCBzdGFydCA9IGl0ZXIuZ2V0SW5kZXgoKSArIDE7CisgKiAgCisg
KiAgICAgIGNvdXQgPDwgInN0YXJ0OiAiIDw8IHN0YXJ0IDw8ICIgZW5kOiAiIDw8IGVuZCA8PCBl
bmRsOworICogICAgICBmb3IgKGMgPSBpdGVyLnNldEluZGV4KHN0YXJ0KTsgaXRlci5nZXRJbmRl
eCgpIDwgZW5kOyBjID0gaXRlci5uZXh0KCkgKSB7CisgKiAgICAgICAgICBwcm9jZXNzQ2hhcihj
KTsKKyAqICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogQ3JlYXRpbmcg
YSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBhbmQgY2FsbGluZyB0aGUgdGVzdCBmdW5jdGlvbnMK
KyAqIDxwcmU+CisgKiBcY29kZQorICogIHZvaWQgQ2hhcmFjdGVySXRlcmF0b3JfRXhhbXBsZSgg
dm9pZCApCisgKiAgIHsKKyAqICAgICAgIGNvdXQgPDwgZW5kbCA8PCAiPT09PT0gQ2hhcmFjdGVy
SXRlcmF0b3JfRXhhbXBsZTogPT09PT0iIDw8IGVuZGw7CisgKiAgICAgICBVbmljb2RlU3RyaW5n
IHRleHQoIkVpbiBrbGVpbmVyIFNhdHouIik7CisgKiAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVy
YXRvciBpdGVyYXRvcih0ZXh0KTsKKyAqICAgICAgIGNvdXQgPDwgIi0tLS0tIHRyYXZlcnNlRm9y
d2FyZDogLS0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZUZvcndhcmQoIGl0
ZXJhdG9yICk7CisgKiAgICAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVy
c2VCYWNrd2FyZDogLS0tLS0tLS0tLSIgPDwgZW5kbDsKKyAqICAgICAgIHRyYXZlcnNlQmFja3dh
cmQoIGl0ZXJhdG9yICk7CisgKiAgICAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0g
dHJhdmVyc2VPdXQ6IC0tLS0tLS0tLS0tLS0tLSIgPDwgZW5kbDsKKyAqICAgICAgIHRyYXZlcnNl
T3V0KCBpdGVyYXRvciwgNyApOworICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0t
LS0tIiA8PCBlbmRsOworICogICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKgorICogQHN0
YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBDaGFyYWN0ZXJJdGVyYXRvciA6
IHB1YmxpYyBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGljOgorICAgIC8qKgorICAg
ICAqIE9yaWdpbiBlbnVtZXJhdGlvbiBmb3IgdGhlIG1vdmUoKSBhbmQgbW92ZTMyKCkgZnVuY3Rp
b25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGVudW0gRU9yaWdpbiB7
IGtTdGFydCwga0N1cnJlbnQsIGtFbmQgfTsKKworICAgIC8qKgorICAgICAqIERlc3RydWN0b3Iu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+Q2hhcmFjdGVy
SXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBwb2ludGVyIHRvIGEgbmV3
IENoYXJhY3Rlckl0ZXJhdG9yIG9mIHRoZSBzYW1lCisgICAgICogY29uY3JldGUgY2xhc3MgYXMg
dGhpcyBvbmUsIGFuZCByZWZlcnJpbmcgdG8gdGhlIHNhbWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4g
dGhlIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdCBhcyB0aGlzIG9uZS4gIFRoZQorICAgICAqIGNh
bGxlciBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgdGhlIG5ldyBjbG9uZS4gIAorICAgICAq
IEByZXR1cm4gYSBwb2ludGVyIHRvIGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xv
bmUodm9pZCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3Ig
dG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24g
cmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgICAqIFRoaXMgY2FuIGJlIHVz
ZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4dCgpLgorICAgICAqIEByZXR1cm4gdGhl
IGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdCh2b2lkKSA9
IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUg
Zmlyc3QgY29kZSB1bml0IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0
aGF0IGNvZGUgdW5pdCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgICAqIHRvIHRoZSBzZWNv
bmQgY29kZSB1bml0LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAg
ICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHRQb3N0SW5jKCkuCisgICAgICogQHJl
dHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0
UG9zdEluYyh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJl
ZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5n
ZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0
byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzIoKS4KKyAgICAgKiBOb3RlIHRoYXQgYW4g
aXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLCBiZWdpbm5pbmcgd2l0aCwKKyAgICAgKiBl
LmcuLCBzZXRUb1N0YXJ0KCkgb3IgZmlyc3RQb3N0SW5jKCksIGlzIG1vcmUgZWZmaWNpZW50Lgor
ICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5n
ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIg
ICAgICAgZmlyc3QzMih2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVy
YXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVy
YXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LCBhbmQgbW92ZXMgdGhlIHBvc2l0
aW9uCisgICAgICogdG8gdGhlIHNlY29uZCBjb2RlIHBvaW50LiBUaGlzIGlzIGFuIGFsdGVybmF0
aXZlIHRvIHNldFRvU3RhcnQoKQorICAgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5l
eHQzMlBvc3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0
cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzJQb3N0SW5jKHZvaWQpOworCisgICAgLyoqCisg
ICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBv
ciBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZS4gVGhpcyBjYW4gYmUg
dXNlZCB0byBiZWdpbiBhIGZvcndhcmQKKyAgICAgKiBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdElu
YygpIG9yIG5leHQzMlBvc3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGFydCBwb3NpdGlv
biBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgaW5saW5lIGludDMyX3QgICAgc2V0VG9TdGFydCgpOworCisgICAgLyoqCisgICAgICog
U2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSB1bml0IGluIGl0cwor
ICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAg
ICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygp
LgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBsYXN0KHZvaWQpID0gMDsK
KyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8g
dGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCBy
ZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4g
YW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMzMigpLgorICAgICAqIEByZXR1cm4gdGhlIGxhc3Qg
Y29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IFVDaGFyMzIgICAgICAgbGFzdDMyKHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMg
dGhlIGl0ZXJhdG9yIHRvIHRoZSBlbmQgb2YgaXRzIGl0ZXJhdGlvbiByYW5nZSwganVzdCBiZWhp
bmQKKyAgICAgKiB0aGUgbGFzdCBjb2RlIHVuaXQgb3IgY29kZSBwb2ludC4gVGhpcyBjYW4gYmUg
dXNlZCB0byBiZWdpbiBhIGJhY2t3YXJkCisgICAgICogaXRlcmF0aW9uIHdpdGggcHJldmlvdXMo
KSBvciBwcmV2aW91czMyKCkuCisgICAgICogQHJldHVybiB0aGUgZW5kIHBvc2l0aW9uIG9mIHRo
ZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBp
bmxpbmUgaW50MzJfdCAgICBzZXRUb0VuZCgpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUg
aXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAgICog
aW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisg
ICAgICogcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4gIAorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0
aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAg
ICAgKiBAcmV0dXJuIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgc2V0SW5kZXgoaW50
MzJfdCBwb3NpdGlvbikgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3Ig
dG8gcmVmZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgICAqIHRoYXQg
Y29udGFpbnMgdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAgICogaW4gdGhlIHRleHQt
c3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAgICogcmV0dXJu
cyB0aGF0IGNvZGUgcG9pbnQuCisgICAgICogVGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgYWRqdXN0
ZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgICAqIChpdHMgZmlyc3Qg
Y29kZSB1bml0KS4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlICJwb3NpdGlvbiItdGggY29k
ZSB1bml0IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHJldHVybiB0aGUgInBv
c2l0aW9uIi10aCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBzZXRJbmRleDMyKGludDMyX3QgcG9zaXRpb24pID0g
MDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3Ig
Y3VycmVudGx5IHJlZmVycyB0by4gCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVu
aXQuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIg
ICAgICAgICBjdXJyZW50KHZvaWQpIGNvbnN0ID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAg
ICogUmV0dXJucyB0aGUgY29kZSBwb2ludCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0
by4gIAorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSBwb2ludC4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgY3VycmVudDMy
KHZvaWQpIGNvbnN0ID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8g
dGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJk
IGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZQor
ICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAg
KiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dCh2b2lkKSA9IDA7CisgICAgICAg
IAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5kZXgoKSksIGFuZCByZXR1cm5z
IHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSBwb2lu
dHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICogTm90ZSB0aGF0IGl0ZXJhdGlvbiB3
aXRoICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MgaXMgbGVzcworICAgICAqIGVmZmljaWVudCB0
aGFuIGl0ZXJhdGlvbiB3aXRoICJwb3N0LWluY3JlbWVudCIgc2VtYW50aWNzCisgICAgICogdGhh
dCBpcyBwcm92aWRlZCBieSBuZXh0MzJQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgbmV4
dCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgVUNoYXIzMiAgICAgICBuZXh0MzIodm9pZCkgPSAwOworICAgICAgICAKKyAgICAvKioKKyAg
ICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24g
cmFuZ2UKKyAgICAgKiAodG93YXJkIHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29k
ZSB1bml0LiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVy
biwgcmV0dXJucyBET05FLiAgCisgICAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSB1bml0
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAg
ICAgICBwcmV2aW91cyh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0
aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRv
d2FyZCBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVy
ZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05F
LiAKKyAgICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50LiAKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgcHJldmlvdXMz
Mih2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFy
ZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAgKiBiZWZvcmUgdGhlIGN1
cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBUaGlzIGlzIHVz
ZWQgd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIoKSBpbiBiYWNrd2FyZAorICAgICAqIGl0
ZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUg
dW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24g
aW4gdGhlIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJuIFRSVUUgb3RoZXJ3aXNlLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc1ByZXZp
b3VzKCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBp
biB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJh
Y3RlciByZXR1cm5lZCBieSBmaXJzdCgpLiAgU2luY2UgaXQncworICAgICAqIHBvc3NpYmxlIHRv
IGNyZWF0ZSBhbiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVzIGFjcm9zcyBvbmx5CisgICAgICogcGFy
dCBvZiBhIHRleHQtc3RvcmFnZSBvYmplY3QsIHRoaXMgbnVtYmVyIGlzbid0CisgICAgICogbmVj
ZXNzYXJpbHkgMC4gIAorICAgICAqIEByZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1
bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHJl
dHVybmVkIGJ5IGZpcnN0KCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
aW5saW5lIGludDMyX3QgICAgICAgc3RhcnRJbmRleCh2b2lkKSBjb25zdDsKKyAgICAgICAgCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWlu
ZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5
IEJFWU9ORCB0aGUgY2hhcmFjdGVyCisgICAgICogcmV0dXJuZWQgYnkgbGFzdCgpLiAgCisgICAg
ICogQHJldHVybiB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3Jh
Z2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUg
Y2hhcmFjdGVyCisgICAgICogcmV0dXJuZWQgYnkgbGFzdCgpLgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgICAgIGVuZEluZGV4KHZvaWQpIGNv
bnN0OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIGluZGV4
IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hh
cmFjdGVyIHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvCisgICAgICogKGkuZS4sIHRo
ZSBjaGFyYWN0ZXIgcmV0dXJuZWQgYnkgY3VycmVudCgpKS4gIAorICAgICAqIEByZXR1cm4gdGhl
IG51bWJlcmljIGluZGV4IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IG9mIAorICAgICAqIHRo
ZSBjaGFyYWN0ZXIgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBnZXRJbmRleCh2
b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUg
ZW50aXJlIHRleHQgaW4gdGhlIHVuZGVybHlpbmcKKyAgICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0
LgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgZW50aXJlIHRleHQgaW4gdGhlIHRl
eHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBp
bmxpbmUgaW50MzJfdCAgICAgICAgICAgZ2V0TGVuZ3RoKCkgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3Ig
ZW5kIG9mIHRoZQorICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1
cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQg
aW4gbnVtYmVycyBvZiBjb2RlIHVuaXRzIGZvcndhcmQKKyAgICAgKiBvciBiYWNrd2FyZCBieSBz
cGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAgICogQHBhcmFtIGRl
bHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVh
bnMgZm9yd2FyZDsKKyAgICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAg
ICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBr
RW5kfQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUoaW50MzJfdCBkZWx0
YSwgRU9yaWdpbiBvcmlnaW4pID0gMDsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBjdXJy
ZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAgICog
aXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNl
bGYuCisgICAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUg
cG9pbnRzIGZvcndhcmQKKyAgICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRp
dmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiBy
ZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICAg
KiBhIG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAgICAqIEBwYXJhbSBvcmlnaW4g
T3JpZ2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgICAqIEByZXR1
cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUzMihpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdp
bikgPSAwOworCisgICAgLyoqCisgICAgICogQ29waWVzIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlv
biBpbnRvIHRoZSBVbmljb2RlU3RyaW5nCisgICAgICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIu
ICAKKyAgICAgKiBAcGFyYW0gcmVzdWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRl
ciBpdGVyYXRpb24uICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNvZGVTdHJpbmcmICByZXN1bHQpID0gMDsK
KworcHJvdGVjdGVkOgorICAgIC8qKgorICAgICAqIEVtcHR5IGNvbnN0cnVjdG9yLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAg
ICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGggZmllbGQg
aW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3QgbGVuZ3RoKTsKKworICAgIC8qKgorICAgICAqIENv
bnN0cnVjdG9yLCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0aCBhbmQgcG9zaXRpb24gZmllbGRzIGlu
IHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBD
aGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0aCwgaW50MzJfdCBwb3NpdGlvbik7CisKKyAg
ICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGgsIHN0YXJ0
LCBlbmQsIGFuZCBwb3NpdGlvbiBmaWVsZHMgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3QgbGVu
Z3RoLCBpbnQzMl90IHRleHRCZWdpbiwgaW50MzJfdCB0ZXh0RW5kLCBpbnQzMl90IHBvc2l0aW9u
KTsKKyAgCisgICAgLyoqCisgICAgICogQ29weSBjb25zdHJ1Y3Rvci4KKyAgICAgKgorICAgICAq
IEBwYXJhbSB0aGF0IFRoZSBDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBDaGFy
YWN0ZXJJdGVyYXRvciAmdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBBc3NpZ25tZW50IG9wZXJh
dG9yLiAgU2V0cyB0aGlzIENoYXJhY3Rlckl0ZXJhdG9yIHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZp
b3IsCisgICAgICogYXMgdGhlIG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhl
IENoYXJhY3Rlckl0ZXJhdG9yIHBhc3NlZCBpbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBz
ZXQgQ2hhcmFjdGVySXRlcmF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgQ2hhcmFjdGVySXRlcmF0b3IgJm9wZXJhdG9yPShjb25zdCBDaGFyYWN0ZXJJdGVyYXRvciAm
dGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNzIHRleHQgbGVuZ3RoIGZpZWxkLgor
ICAgICAqIE5lY2Vzc2FyeSB0aGlzIGZvciBjb3JyZWN0IGdldFRleHQoKSBhbmQgaGFzaENvZGUo
KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90IHRleHRMZW5n
dGg7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0aGUgY3VycmVudCBw
b3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBw
b3M7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0aGUgc3RhcnQgb2Yg
dGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICBpbnQzMl90ICBiZWdpbjsKKworICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgZmllbGQgZm9y
IHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBpbnQzMl90ICBlbmQ7Cit9OworCitpbmxpbmUgVUJvb2wKK0ZvcndhcmRD
aGFyYWN0ZXJJdGVyYXRvcjo6b3BlcmF0b3IhPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0
b3ImIHRoYXQpIGNvbnN0IHsKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0odGhhdCk7Cit9CisKK2lu
bGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6c2V0VG9TdGFydCgpIHsKKyAgICByZXR1
cm4gbW92ZSgwLCBrU3RhcnQpOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0
b3I6OnNldFRvRW5kKCkgeworICAgIHJldHVybiBtb3ZlKDAsIGtFbmQpOworfQorCitpbmxpbmUg
aW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnN0YXJ0SW5kZXgodm9pZCkgY29uc3QgeworICAg
IHJldHVybiBiZWdpbjsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpl
bmRJbmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIGVuZDsKK30KKworaW5saW5lIGludDMy
X3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpnZXRJbmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJu
IHBvczsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpnZXRMZW5ndGgo
dm9pZCkgY29uc3QgeworICAgIHJldHVybiB0ZXh0TGVuZ3RoOworfQorCitVX05BTUVTUEFDRV9F
TkQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9sb2NpZC5oIGIv
U291cmNlL1dURi9pY3UvdW5pY29kZS9sb2NpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZDVjYjU0NmViZTM5
N2VmNDM2ZGYzNjUwM2ViNDM3MWMzODY2OTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L2ljdS91bmljb2RlL2xvY2lkLmgKQEAgLTAsMCArMSw4MTQgQEAKKy8qCisqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAxNSwgSW50ZXJuYXRpb25hbCBC
dXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRz
IFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgbG9jaWQuaAor
KgorKiBDcmVhdGVkIGJ5OiBIZWxlbmEgU2hpaAorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToK
KyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAyLzExLzk3
ICAgIGFsaXUgICAgICAgIENoYW5nZWQgZ0xvY1BhdGggdG8gZmdMb2NQYXRoIGFuZCBhZGRlZCBt
ZXRob2RzIHRvCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0IGFuZCBzZXQgaXQuCisq
ICAgMDQvMDIvOTcgICAgYWxpdSAgICAgICAgTWFkZSBvcGVyYXRvciE9IGlubGluZTsgZml4ZWQg
cmV0dXJuIHZhbHVlIG9mIGdldE5hbWUoKS4KKyogICAwNC8xNS85NyAgICBhbGl1ICAgICAgICBD
bGVhbnVwIGZvciBBSVgvV2luMzIuCisqICAgMDQvMjQvOTcgICAgYWxpdSAgICAgICAgTnVtZXJv
dXMgY2hhbmdlcyBwZXIgY29kZSByZXZpZXcuCisqICAgMDgvMTgvOTggICAgc3RlcGhlbiAgICAg
QWRkZWQgdG9rZW5pemVTdHJpbmcoKSxjaGFuZ2VkIGdldERpc3BsYXlOYW1lKCkKKyogICAwOS8w
OC85OCAgICBzdGVwaGVuICAgICBNb3ZlZCBkZWZpbml0aW9uIG9mIGtFbXB0eVN0cmluZyBmb3Ig
TWFjIFBvcnQKKyogICAxMS8wOS85OSAgICB3ZWl2ICAgICAgICBBZGRlZCBjb25zdCBjaGFyICog
Z2V0TmFtZSgpIGNvbnN0OworKiAgIDA0LzEyLzAwICAgIHNybCAgICAgICAgIHJlbW92aW5nIHVu
aWNvZGVzdHJpbmcgYXBpJ3MgYW5kIGNhY2hlZCBoYXNoIGNvZGUKKyogICAwOC8xMC8wMSAgICBn
cmhvdGVuICAgICBDaGFuZ2UgdGhlIHN0YXRpYyBMb2NhbGVzIHRvIGFjY2Vzc29yIGZ1bmN0aW9u
cworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIExPQ0lEX0gKKyNkZWZpbmUg
TE9DSURfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VuaXN0ci5oIgorI2luY2x1ZGUgInVuaWNv
ZGUvcHV0aWwuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3Vsb2MuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3N0cmVudW0uaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IExvY2FsZSBJ
RCBvYmplY3QuCisgKi8KKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLy8gRm9yd2FyZCBEZWNsYXJh
dGlvbnMKK3ZvaWQgVV9DQUxMQ09OViBsb2NhbGVfYXZhaWxhYmxlX2luaXQoKTsgLyoqPCBAaW50
ZXJuYWwgKi8KKworLyoqCisgKiBBIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IHJlcHJlc2Vu
dHMgYSBzcGVjaWZpYyBnZW9ncmFwaGljYWwsIHBvbGl0aWNhbCwKKyAqIG9yIGN1bHR1cmFsIHJl
Z2lvbi4gQW4gb3BlcmF0aW9uIHRoYXQgcmVxdWlyZXMgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHRv
IHBlcmZvcm0KKyAqIGl0cyB0YXNrIGlzIGNhbGxlZCA8ZW0+bG9jYWxlLXNlbnNpdGl2ZTwvZW0+
IGFuZCB1c2VzIHRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+CisgKiB0byB0YWlsb3IgaW5mb3JtYXRp
b24gZm9yIHRoZSB1c2VyLiBGb3IgZXhhbXBsZSwgZGlzcGxheWluZyBhIG51bWJlcgorICogaXMg
YSBsb2NhbGUtc2Vuc2l0aXZlIG9wZXJhdGlvbi0tdGhlIG51bWJlciBzaG91bGQgYmUgZm9ybWF0
dGVkCisgKiBhY2NvcmRpbmcgdG8gdGhlIGN1c3RvbXMvY29udmVudGlvbnMgb2YgdGhlIHVzZXIn
cyBuYXRpdmUgY291bnRyeSwKKyAqIHJlZ2lvbiwgb3IgY3VsdHVyZS4KKyAqCisgKiBUaGUgTG9j
YWxlIGNsYXNzIGlzIG5vdCBzdWl0YWJsZSBmb3Igc3ViY2xhc3NpbmcuCisgKgorICogPFA+Cisg
KiBZb3UgY2FuIGNyZWF0ZSBhIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IHVzaW5nIHRoZSBj
b25zdHJ1Y3RvciBpbgorICogdGhpcyBjbGFzczoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxl
bmRodG1sb25seQorICogPHByZT4KKyAqICAgICAgIExvY2FsZSggY29uc3QgICBjaGFyKiAgbGFu
Z3VhZ2UsCisgKiAgICAgICAgICAgICAgIGNvbnN0ICAgY2hhciogIGNvdW50cnksCisgKiAgICAg
ICAgICAgICAgIGNvbnN0ICAgY2hhciogIHZhcmlhbnQpOworICogPC9wcmU+CisgKiBcaHRtbG9u
bHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBUaGUgZmlyc3QgYXJndW1lbnQgdG8gdGhl
IGNvbnN0cnVjdG9ycyBpcyBhIHZhbGlkIDxTVFJPTkc+SVNPCisgKiBMYW5ndWFnZSBDb2RlLjwv
U1RST05HPiBUaGVzZSBjb2RlcyBhcmUgdGhlIGxvd2VyLWNhc2UgdHdvLWxldHRlcgorICogY29k
ZXMgYXMgZGVmaW5lZCBieSBJU08tNjM5LgorICogWW91IGNhbiBmaW5kIGEgZnVsbCBsaXN0IG9m
IHRoZXNlIGNvZGVzIGF0OgorICogPEJSPjxhIGhyZWYgPSJodHRwOi8vd3d3LmxvYy5nb3Yvc3Rh
bmRhcmRzL2lzbzYzOS0yLyI+CisgKiBodHRwOi8vd3d3LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYz
OS0yLzwvYT4KKyAqCisgKiA8UD4KKyAqIFRoZSBzZWNvbmQgYXJndW1lbnQgdG8gdGhlIGNvbnN0
cnVjdG9ycyBpcyBhIHZhbGlkIDxTVFJPTkc+SVNPIENvdW50cnkKKyAqIENvZGUuPC9TVFJPTkc+
IFRoZXNlIGNvZGVzIGFyZSB0aGUgdXBwZXItY2FzZSB0d28tbGV0dGVyIGNvZGVzCisgKiBhcyBk
ZWZpbmVkIGJ5IElTTy0zMTY2LgorICogWW91IGNhbiBmaW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNl
IGNvZGVzIGF0IGEgbnVtYmVyIG9mIHNpdGVzLCBzdWNoIGFzOgorICogPEJSPjxhIGhyZWY9Imh0
dHA6Ly93d3cuaXNvLm9yZy9pc28vZW4vcHJvZHMtc2VydmljZXMvaXNvMzE2Nm1hL2luZGV4Lmh0
bWwiPgorICogaHR0cDovL3d3dy5pc28ub3JnL2lzby9lbi9wcm9kcy1zZXJ2aWNlcy9pc28zMTY2
bWEvaW5kZXguaHRtbDwvYT4KKyAqCisgKiA8UD4KKyAqIFRoZSB0aGlyZCBjb25zdHJ1Y3RvciBy
ZXF1aXJlcyBhIHRoaXJkIGFyZ3VtZW50LS10aGUgPFNUUk9ORz5WYXJpYW50LjwvU1RST05HPgor
ICogVGhlIFZhcmlhbnQgY29kZXMgYXJlIHZlbmRvciBhbmQgYnJvd3Nlci1zcGVjaWZpYy4KKyAq
IEZvciBleGFtcGxlLCB1c2UgUkVWSVNFRCBmb3IgYSBsYW5nYXVnZSdzIHJldmlzZWQgc2NyaXB0
IG9ydGhvZ3JhcGh5LCBhbmQgUE9TSVggZm9yIFBPU0lYLgorICogV2hlcmUgdGhlcmUgYXJlIHR3
byB2YXJpYW50cywgc2VwYXJhdGUgdGhlbSB3aXRoIGFuIHVuZGVyc2NvcmUsIGFuZAorICogcHV0
IHRoZSBtb3N0IGltcG9ydGFudCBvbmUgZmlyc3QuIEZvcgorICogZXhhbXBsZSwgYSBUcmFkaXRp
b25hbCBTcGFuaXNoIGNvbGxhdGlvbiBtaWdodCBiZSByZWZlcmVuY2VkLCB3aXRoCisgKiAiRVMi
LCAiRVMiLCAiVHJhZGl0aW9uYWxfUE9TSVgiLgorICoKKyAqIDxQPgorICogQmVjYXVzZSBhIDxj
b2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IGlzIGp1c3QgYW4gaWRlbnRpZmllciBmb3IgYSByZWdp
b24sCisgKiBubyB2YWxpZGl0eSBjaGVjayBpcyBwZXJmb3JtZWQgd2hlbiB5b3UgY29uc3RydWN0
IGEgPGNvZGU+TG9jYWxlPC9jb2RlPi4KKyAqIElmIHlvdSB3YW50IHRvIHNlZSB3aGV0aGVyIHBh
cnRpY3VsYXIgcmVzb3VyY2VzIGFyZSBhdmFpbGFibGUgZm9yIHRoZQorICogPGNvZGU+TG9jYWxl
PC9jb2RlPiB5b3UgY29uc3RydWN0LCB5b3UgbXVzdCBxdWVyeSB0aG9zZSByZXNvdXJjZXMuIEZv
cgorICogZXhhbXBsZSwgYXNrIHRoZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGZvciB0aGUg
bG9jYWxlcyBpdCBzdXBwb3J0cworICogdXNpbmcgaXRzIDxjb2RlPmdldEF2YWlsYWJsZUxvY2Fs
ZXM8L2NvZGU+IG1ldGhvZC4KKyAqIDxCUj48U1RST05HPk5vdGU6PC9TVFJPTkc+IFdoZW4geW91
IGFzayBmb3IgYSByZXNvdXJjZSBmb3IgYSBwYXJ0aWN1bGFyCisgKiBsb2NhbGUsIHlvdSBnZXQg
YmFjayB0aGUgYmVzdCBhdmFpbGFibGUgbWF0Y2gsIG5vdCBuZWNlc3NhcmlseQorICogcHJlY2lz
ZWx5IHdoYXQgeW91IGFza2VkIGZvci4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIGxvb2sgYXQKKyAq
IDxjb2RlPlJlc291cmNlQnVuZGxlPC9jb2RlPi4KKyAqCisgKiA8UD4KKyAqIFRoZSA8Y29kZT5M
b2NhbGU8L2NvZGU+IGNsYXNzIHByb3ZpZGVzIGEgbnVtYmVyIG9mIGNvbnZlbmllbnQgY29uc3Rh
bnRzCisgKiB0aGF0IHlvdSBjYW4gdXNlIHRvIGNyZWF0ZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9i
amVjdHMgZm9yIGNvbW1vbmx5IHVzZWQKKyAqIGxvY2FsZXMuIEZvciBleGFtcGxlLCB0aGUgZm9s
bG93aW5nIHJlZmVycyB0byBhIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0CisgKiBmb3IgdGhl
IFVuaXRlZCBTdGF0ZXM6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAq
IDxwcmU+CisgKiAgICAgICBMb2NhbGU6OmdldFVTKCkKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5
PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICoKKyAqIDxQPgorICogT25jZSB5b3UndmUgY3Jl
YXRlZCBhIDxjb2RlPkxvY2FsZTwvY29kZT4geW91IGNhbiBxdWVyeSBpdCBmb3IgaW5mb3JtYXRp
b24gYWJvdXQKKyAqIGl0c2VsZi4gVXNlIDxjb2RlPmdldENvdW50cnk8L2NvZGU+IHRvIGdldCB0
aGUgSVNPIENvdW50cnkgQ29kZSBhbmQKKyAqIDxjb2RlPmdldExhbmd1YWdlPC9jb2RlPiB0byBn
ZXQgdGhlIElTTyBMYW5ndWFnZSBDb2RlLiBZb3UgY2FuCisgKiB1c2UgPGNvZGU+Z2V0RGlzcGxh
eUNvdW50cnk8L2NvZGU+IHRvIGdldCB0aGUKKyAqIG5hbWUgb2YgdGhlIGNvdW50cnkgc3VpdGFi
bGUgZm9yIGRpc3BsYXlpbmcgdG8gdGhlIHVzZXIuIFNpbWlsYXJseSwKKyAqIHlvdSBjYW4gdXNl
IDxjb2RlPmdldERpc3BsYXlMYW5ndWFnZTwvY29kZT4gdG8gZ2V0IHRoZSBuYW1lIG9mCisgKiB0
aGUgbGFuZ3VhZ2Ugc3VpdGFibGUgZm9yIGRpc3BsYXlpbmcgdG8gdGhlIHVzZXIuIEludGVyZXN0
aW5nbHksCisgKiB0aGUgPGNvZGU+Z2V0RGlzcGxheVhYWDwvY29kZT4gbWV0aG9kcyBhcmUgdGhl
bXNlbHZlcyBsb2NhbGUtc2Vuc2l0aXZlCisgKiBhbmQgaGF2ZSB0d28gdmVyc2lvbnM6IG9uZSB0
aGF0IHVzZXMgdGhlIGRlZmF1bHQgbG9jYWxlIGFuZCBvbmUKKyAqIHRoYXQgdGFrZXMgYSBsb2Nh
bGUgYXMgYW4gYXJndW1lbnQgYW5kIGRpc3BsYXlzIHRoZSBuYW1lIG9yIGNvdW50cnkgaW4KKyAq
IGEgbGFuZ3VhZ2UgYXBwcm9wcmlhdGUgdG8gdGhhdCBsb2NhbGUuCisgKgorICogPFA+CisgKiBJ
Q1UgcHJvdmlkZXMgYSBudW1iZXIgb2YgY2xhc3NlcyB0aGF0IHBlcmZvcm0gbG9jYWxlLXNlbnNp
dGl2ZQorICogb3BlcmF0aW9ucy4gRm9yIGV4YW1wbGUsIHRoZSA8Y29kZT5OdW1iZXJGb3JtYXQ8
L2NvZGU+IGNsYXNzIGZvcm1hdHMKKyAqIG51bWJlcnMsIGN1cnJlbmN5LCBvciBwZXJjZW50YWdl
cyBpbiBhIGxvY2FsZS1zZW5zaXRpdmUgbWFubmVyLiBDbGFzc2VzCisgKiBzdWNoIGFzIDxjb2Rl
Pk51bWJlckZvcm1hdDwvY29kZT4gaGF2ZSBhIG51bWJlciBvZiBjb252ZW5pZW5jZSBtZXRob2Rz
CisgKiBmb3IgY3JlYXRpbmcgYSBkZWZhdWx0IG9iamVjdCBvZiB0aGF0IHR5cGUuIEZvciBleGFt
cGxlLCB0aGUKKyAqIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gY2xhc3MgcHJvdmlkZXMgdGhl
c2UgdGhyZWUgY29udmVuaWVuY2UgbWV0aG9kcworICogZm9yIGNyZWF0aW5nIGEgZGVmYXVsdCA8
Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IG9iamVjdDoKKyAqIFxodG1sb25seTxibG9ja3F1b3Rl
PlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICBVRXJyb3JDb2RlIHN1Y2Nlc3MgPSBVX1pF
Uk9fRVJST1I7CisgKiAgICAgTG9jYWxlIG15TG9jYWxlOworICogICAgIE51bWJlckZvcm1hdCAq
bmY7CisgKgorICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVJbnN0YW5jZSggc3VjY2Vz
cyApOyAgICAgICAgICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0
ZUN1cnJlbmN5SW5zdGFuY2UoIHN1Y2Nlc3MgKTsgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51
bWJlckZvcm1hdDo6Y3JlYXRlUGVyY2VudEluc3RhbmNlKCBzdWNjZXNzICk7ICAgZGVsZXRlIG5m
OworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBF
YWNoIG9mIHRoZXNlIG1ldGhvZHMgaGFzIHR3byB2YXJpYW50czsgb25lIHdpdGggYW4gZXhwbGlj
aXQgbG9jYWxlCisgKiBhbmQgb25lIHdpdGhvdXQ7IHRoZSBsYXR0ZXIgdXNpbmcgdGhlIGRlZmF1
bHQgbG9jYWxlLgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJl
PgorICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVJbnN0YW5jZSggbXlMb2NhbGUsIHN1
Y2Nlc3MgKTsgICAgICAgICAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0Ojpj
cmVhdGVDdXJyZW5jeUluc3RhbmNlKCBteUxvY2FsZSwgc3VjY2VzcyApOyAgZGVsZXRlIG5mOwor
ICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVQZXJjZW50SW5zdGFuY2UoIG15TG9jYWxl
LCBzdWNjZXNzICk7ICAgZGVsZXRlIG5mOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2Nr
cXVvdGU+XGVuZGh0bWxvbmx5CisgKiBBIDxjb2RlPkxvY2FsZTwvY29kZT4gaXMgdGhlIG1lY2hh
bmlzbSBmb3IgaWRlbnRpZnlpbmcgdGhlIGtpbmQgb2Ygb2JqZWN0CisgKiAoPGNvZGU+TnVtYmVy
Rm9ybWF0PC9jb2RlPikgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBnZXQuIFRoZSBsb2NhbGUgaXMK
KyAqIDxTVFJPTkc+anVzdDwvU1RST05HPiBhIG1lY2hhbmlzbSBmb3IgaWRlbnRpZnlpbmcgb2Jq
ZWN0cywKKyAqIDxTVFJPTkc+bm90PC9TVFJPTkc+IGEgY29udGFpbmVyIGZvciB0aGUgb2JqZWN0
cyB0aGVtc2VsdmVzLgorICoKKyAqIDxQPgorICogRWFjaCBjbGFzcyB0aGF0IHBlcmZvcm1zIGxv
Y2FsZS1zZW5zaXRpdmUgb3BlcmF0aW9ucyBhbGxvd3MgeW91CisgKiB0byBnZXQgYWxsIHRoZSBh
dmFpbGFibGUgb2JqZWN0cyBvZiB0aGF0IHR5cGUuIFlvdSBjYW4gc2lmdAorICogdGhyb3VnaCB0
aGVzZSBvYmplY3RzIGJ5IGxhbmd1YWdlLCBjb3VudHJ5LCBvciB2YXJpYW50LAorICogYW5kIHVz
ZSB0aGUgZGlzcGxheSBuYW1lcyB0byBwcmVzZW50IGEgbWVudSB0byB0aGUgdXNlci4KKyAqIEZv
ciBleGFtcGxlLCB5b3UgY2FuIGNyZWF0ZSBhIG1lbnUgb2YgYWxsIHRoZSBjb2xsYXRpb24gb2Jq
ZWN0cworICogc3VpdGFibGUgZm9yIGEgZ2l2ZW4gbGFuZ3VhZ2UuIFN1Y2ggY2xhc3NlcyBpbXBs
ZW1lbnQgdGhlc2UKKyAqIHRocmVlIGNsYXNzIG1ldGhvZHM6CisgKiBcaHRtbG9ubHk8YmxvY2tx
dW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgICBzdGF0aWMgTG9jYWxlKiBnZXRB
dmFpbGFibGVMb2NhbGVzKGludDMyX3QmIG51bUxvY2FsZXMpCisgKiAgICAgICBzdGF0aWMgVW5p
Y29kZVN0cmluZyYgZ2V0RGlzcGxheU5hbWUoY29uc3QgTG9jYWxlJiAgb2JqZWN0TG9jYWxlLAor
ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExvY2Fs
ZSYgIGRpc3BsYXlMb2NhbGUsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcGxheU5hbWUpCisgKiAgICAgICBzdGF0aWMgVW5p
Y29kZVN0cmluZyYgZ2V0RGlzcGxheU5hbWUoY29uc3QgTG9jYWxlJiAgb2JqZWN0TG9jYWxlLAor
ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJp
bmcmIGRpc3BsYXlOYW1lKQorICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVu
ZGh0bWxvbmx5CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKiBAc2VlIFJlc291cmNlQnVuZGxl
CisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBMb2NhbGUgOiBwdWJsaWMgVU9iamVjdCB7CitwdWJs
aWM6CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhlIFJvb3QgbG9jYWxlLiBAc3RhYmxl
IElDVSA0LjQgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Um9vdCh2
b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxl
IElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RW5nbGlz
aCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3Rh
YmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RnJl
bmNoKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBz
dGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRH
ZXJtYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4g
QHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdl
dEl0YWxpYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFn
ZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQy
IGdldEphcGFuZXNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFu
Z3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQ
T1JUMiBnZXRLb3JlYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBs
YW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9F
WFBPUlQyIGdldENoaW5lc2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhp
cyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAm
VV9FWFBPUlQyIGdldFNpbXBsaWZpZWRDaGluZXNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRUcmFkaXRpb25hbENoaW5lc2Uodm9pZCk7CisKKyAg
ICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElD
VSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RnJhbmNlKHZv
aWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBz
dGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRH
ZXJtYW55KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9y
ZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQ
T1JUMiBnZXRJdGFseSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNv
dW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxl
ICZVX0VYUE9SVDIgZ2V0SmFwYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3Ig
dGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0
IExvY2FsZSAmVV9FWFBPUlQyIGdldEtvcmVhKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3Rh
bnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRp
YyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDaGluYSh2b2lkKTsKKyAgICAvKiogVXNlZnVs
IGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAg
ICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0UFJDKHZvaWQpOworICAgIC8qKiBV
c2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAq
LworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRUYWl3YW4odm9pZCk7Cisg
ICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJ
Q1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFVLKHZvaWQp
OworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFi
bGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRVUyh2
b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0
Q2FuYWRhKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9y
ZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQ
T1JUMiBnZXRDYW5hZGFGcmVuY2godm9pZCk7CisKKworICAgIC8qKgorICAgICAqIENvbnN0cnVj
dCBhIGRlZmF1bHQgbG9jYWxlIG9iamVjdCwgYSBMb2NhbGUgZm9yIHRoZSBkZWZhdWx0IGxvY2Fs
ZSBJRC4KKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RGVmYXVsdAorICAgICAqIEBzZWUgdWxvY19n
ZXREZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxlKCk7
CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBsb2NhbGUgZnJvbSBsYW5ndWFnZSwgY291
bnRyeSwgdmFyaWFudC4KKyAgICAgKiBJZiBhbiBlcnJvciBvY2N1cnMsIHRoZW4gdGhlIGNvbnN0
cnVjdGVkIG9iamVjdCB3aWxsIGJlICJib2d1cyIKKyAgICAgKiAoaXNCb2d1cygpIHdpbGwgcmV0
dXJuIFRSVUUpLgorICAgICAqCisgICAgICogQHBhcmFtIGxhbmd1YWdlIExvd2VyY2FzZSB0d28t
bGV0dGVyIG9yIHRocmVlLWxldHRlciBJU08tNjM5IGNvZGUuCisgICAgICogIFRoaXMgcGFyYW1l
dGVyIGNhbiBpbnN0ZWFkIGJlIGFuIElDVSBzdHlsZSBDIGxvY2FsZSAoZS5nLiAiZW5fVVMiKSwK
KyAgICAgKiAgYnV0IHRoZSBvdGhlciBwYXJhbWV0ZXJzIG11c3Qgbm90IGJlIHVzZWQuCisgICAg
ICogIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSBOVUxMOyBpZiBzbywKKyAgICAgKiAgdGhlIGxvY2Fs
ZSBpcyBpbml0aWFsaXplZCB0byBtYXRjaCB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAg
ICAgKiAgKFRoaXMgaXMgdGhlIHNhbWUgYXMgdXNpbmcgdGhlIGRlZmF1bHQgY29uc3RydWN0b3Iu
KQorICAgICAqICBQbGVhc2Ugbm90ZTogVGhlIEphdmEgTG9jYWxlIGNsYXNzIGRvZXMgTk9UIGFj
Y2VwdCB0aGUgZm9ybQorICAgICAqICAnbmV3IExvY2FsZSgiZW5fVVMiKScgYnV0IG9ubHkgJ25l
dyBMb2NhbGUoImVuIiwiVVMiKScKKyAgICAgKgorICAgICAqIEBwYXJhbSBjb3VudHJ5ICBVcHBl
cmNhc2UgdHdvLWxldHRlciBJU08tMzE2NiBjb2RlLiAob3B0aW9uYWwpCisgICAgICogQHBhcmFt
IHZhcmlhbnQgIFVwcGVyY2FzZSB2ZW5kb3IgYW5kIGJyb3dzZXIgc3BlY2lmaWMgY29kZS4gU2Vl
IGNsYXNzCisgICAgICogICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLiAob3B0aW9uYWwpCisg
ICAgICogQHBhcmFtIGtleXdvcmRzQW5kVmFsdWVzIEEgc3RyaW5nIGNvbnNpc3Rpbmcgb2Yga2V5
d29yZC92YWx1ZXMgcGFpcnMsIHN1Y2ggYXMKKyAgICAgKiAgICAgICAgICAgICAgICAgImNvbGxh
dGlvbj1waG9uZWJvb2s7Y3VycmVuY3k9ZXVybyIKKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RGVm
YXVsdAorICAgICAqIEBzZWUgdWxvY19nZXREZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgTG9jYWxlKCBjb25zdCAgIGNoYXIgKiBsYW5ndWFnZSwKKyAgICAgICAg
ICAgIGNvbnN0ICAgY2hhciAqIGNvdW50cnkgID0gMCwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hh
ciAqIHZhcmlhbnQgID0gMCwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIGtleXdvcmRzQW5k
VmFsdWVzID0gMCk7CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplcyBhIExvY2FsZSBvYmpl
Y3QgZnJvbSBhbm90aGVyIExvY2FsZSBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3Ro
ZXIgVGhlIExvY2FsZSBvYmplY3QgYmVpbmcgY29waWVkIGluLgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIExvY2FsZShjb25zdCAgICBMb2NhbGUmIG90aGVyKTsKKworCisg
ICAgLyoqCisgICAgICogRGVzdHJ1Y3RvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgfkxvY2FsZSgpIDsKKworICAgIC8qKgorICAgICAqIFJlcGxhY2VzIHRo
ZSBlbnRpcmUgY29udGVudHMgb2YgKnRoaXMgd2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAg
ICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBMb2NhbGUgb2JqZWN0IGJlaW5nIGNvcGllZCBp
bi4KKyAgICAgKiBAcmV0dXJuICAgICAgKnRoaXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBMb2NhbGUmIG9wZXJhdG9yPShjb25zdCBMb2NhbGUmIG90aGVyKTsKKworICAg
IC8qKgorICAgICAqIENoZWNrcyBpZiB0d28gbG9jYWxlIGtleXMgYXJlIHRoZSBzYW1lLgorICAg
ICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBsb2NhbGUga2V5IG9iamVjdCB0byBiZSBjb21w
YXJlZCB3aXRoIHRoaXMuCisgICAgICogQHJldHVybiAgICAgIFRydWUgaWYgdGhlIHR3byBsb2Nh
bGUga2V5cyBhcmUgdGhlIHNhbWUsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCAgIG9wZXJhdG9yPT0oY29uc3QgICAgTG9jYWxlJiAg
ICAgb3RoZXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHR3byBsb2NhbGUg
a2V5cyBhcmUgbm90IHRoZSBzYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBs
b2NhbGUga2V5IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAgICogQHJldHVy
biAgICAgIFRydWUgaWYgdGhlIHR3byBsb2NhbGUga2V5cyBhcmUgbm90IHRoZSBzYW1lLCBmYWxz
ZQorICAgICAqICAgICAgICAgICAgICBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgVUJvb2wgICBvcGVyYXRvciE9KGNvbnN0ICAgIExvY2FsZSYgICAgIG90
aGVyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENsb25lIHRoaXMgb2JqZWN0LgorICAgICAq
IENsb25lcyBjYW4gYmUgdXNlZCBjb25jdXJyZW50bHkgaW4gbXVsdGlwbGUgdGhyZWFkcy4KKyAg
ICAgKiBJZiBhbiBlcnJvciBvY2N1cnMsIHRoZW4gTlVMTCBpcyByZXR1cm5lZC4KKyAgICAgKiBU
aGUgY2FsbGVyIG11c3QgZGVsZXRlIHRoZSBjbG9uZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4g
YSBjbG9uZSBvZiB0aGlzIG9iamVjdAorICAgICAqCisgICAgICogQHNlZSBnZXREeW5hbWljQ2xh
c3NJRAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIExvY2FsZSAqY2xvbmUo
KSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfU1lTVEVNX0FQSQorICAgIC8qKgorICAgICAqIENv
bW1vbiBtZXRob2RzIG9mIGdldHRpbmcgdGhlIGN1cnJlbnQgZGVmYXVsdCBMb2NhbGUuIFVzZWQg
Zm9yIHRoZQorICAgICAqIHByZXNlbnRhdGlvbjogbWVudXMsIGRpYWxvZ3MsIGV0Yy4gR2VuZXJh
bGx5IHNldCBvbmNlIHdoZW4geW91ciBhcHBsZXQgb3IKKyAgICAgKiBhcHBsaWNhdGlvbiBpcyBp
bml0aWFsaXplZCwgdGhlbiBuZXZlciByZXNldC4gKElmIHlvdSBkbyByZXNldCB0aGUKKyAgICAg
KiBkZWZhdWx0IGxvY2FsZSwgeW91IHByb2JhYmx5IHdhbnQgdG8gcmVsb2FkIHlvdXIgR1VJLCBz
byB0aGF0IHRoZSBjaGFuZ2UKKyAgICAgKiBpcyByZWZsZWN0ZWQgaW4geW91ciBpbnRlcmZhY2Uu
KQorICAgICAqCisgICAgICogTW9yZSBhZHZhbmNlZCBwcm9ncmFtcyB3aWxsIGFsbG93IHVzZXJz
IHRvIHVzZSBkaWZmZXJlbnQgbG9jYWxlcyBmb3IKKyAgICAgKiBkaWZmZXJlbnQgZmllbGRzLCBl
LmcuIGluIGEgc3ByZWFkc2hlZXQuCisgICAgICoKKyAgICAgKiBOb3RlIHRoYXQgdGhlIGluaXRp
YWwgc2V0dGluZyB3aWxsIG1hdGNoIHRoZSBob3N0IHN5c3RlbS4KKyAgICAgKiBAcmV0dXJuIGEg
cmVmZXJlbmNlIHRvIHRoZSBMb2NhbGUgb2JqZWN0IGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgSUQK
KyAgICAgKiBAc3lzdGVtCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3Rh
dGljIGNvbnN0IExvY2FsZSYgVV9FWFBPUlQyIGdldERlZmF1bHQodm9pZCk7CisKKyAgICAvKioK
KyAgICAgKiBTZXRzIHRoZSBkZWZhdWx0LiBOb3JtYWxseSBzZXQgb25jZSBhdCB0aGUgYmVnaW5u
aW5nIG9mIGEgcHJvY2VzcywKKyAgICAgKiB0aGVuIG5ldmVyIHJlc2V0LgorICAgICAqIHNldERl
ZmF1bHQoKSBvbmx5IGNoYW5nZXMgSUNVJ3MgZGVmYXVsdCBsb2NhbGUgSUQsIDxzdHJvbmc+bm90
PC9zdHJvbmc+CisgICAgICogdGhlIGRlZmF1bHQgbG9jYWxlIElEIG9mIHRoZSBydW50aW1lIGVu
dmlyb25tZW50LgorICAgICAqCisgICAgICogQHBhcmFtIG5ld0xvY2FsZSBMb2NhbGUgdG8gc2V0
IHRvLiAgSWYgTlVMTCwgc2V0IHRvIHRoZSB2YWx1ZSBvYnRhaW5lZAorICAgICAqICAgICAgICAg
ICAgICAgICAgZnJvbSB0aGUgcnVudGltZSBlbnZpcm9uZW1lbnQuCisgICAgICogQHBhcmFtIHN1
Y2Nlc3MgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHN5c3RlbQorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHN0YXRpYyB2b2lkIFVfRVhQT1JUMiBzZXREZWZhdWx0KGNvbnN0
IExvY2FsZSYgbmV3TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVFcnJvckNvZGUmICAgc3VjY2Vzcyk7CisjZW5kaWYgIC8qIFVfSElERV9TWVNURU1fQVBJICov
CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbG9jYWxlIHdoaWNoIGhhcyBoYWQgbWluaW1h
bCBjYW5vbmljYWxpemF0aW9uCisgICAgICogYXMgcGVyIHVsb2NfZ2V0TmFtZSgpLgorICAgICAq
IEBwYXJhbSBuYW1lIFRoZSBuYW1lIHRvIGNyZWF0ZSBmcm9tLiAgSWYgbmFtZSBpcyBudWxsLAor
ICAgICAqICB0aGUgZGVmYXVsdCBMb2NhbGUgaXMgdXNlZC4KKyAgICAgKiBAcmV0dXJuIG5ldyBs
b2NhbGUgb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICogQHNlZSB1bG9jX2dl
dE5hbWUKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9jYWxlIFVfRVhQT1JUMiBjcmVhdGVGcm9tTmFt
ZShjb25zdCBjaGFyICpuYW1lKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBsb2NhbGUg
ZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nIGFmdGVyIGNhbm9uaWNhbGl6aW5nCisgICAgICogdGhlIHN0
cmluZyBieSBjYWxsaW5nIHVsb2NfY2Fub25pY2FsaXplKCkuCisgICAgICogQHBhcmFtIG5hbWUg
dGhlIGxvY2FsZSBJRCB0byBjcmVhdGUgZnJvbS4gIE11c3Qgbm90IGJlIE5VTEwuCisgICAgICog
QHJldHVybiBhIG5ldyBsb2NhbGUgb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIG5h
bWUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKiBAc2VlIHVsb2NfY2Fub25pY2FsaXpl
CisgICAgICovCisgICAgc3RhdGljIExvY2FsZSBVX0VYUE9SVDIgY3JlYXRlQ2Fub25pY2FsKGNv
bnN0IGNoYXIqIG5hbWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3Mg
SVNPLTYzOSBsYW5ndWFnZSBjb2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0
aGUgY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25z
dCBjaGFyICogIGdldExhbmd1YWdlKCApIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJu
cyB0aGUgbG9jYWxlJ3MgSVNPLTE1OTI0IGFiYnJldmlhdGlvbiBzY3JpcHQgY29kZS4KKyAgICAg
KiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc2VlIHVzY3JpcHRf
Z2V0U2hvcnROYW1lCisgICAgICogQHNlZSB1c2NyaXB0X2dldENvZGUKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjgKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRTY3JpcHQoICkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tMzE2NiBj
b3VudHJ5IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAg
Z2V0Q291bnRyeSggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2Fs
ZSdzIHZhcmlhbnQgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNv
ZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hh
ciAqICBnZXRWYXJpYW50KCApIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUg
cHJvZ3JhbW1hdGljIG5hbWUgb2YgdGhlIGVudGlyZSBsb2NhbGUsIHdpdGggdGhlIGxhbmd1YWdl
LAorICAgICAqIGNvdW50cnkgYW5kIHZhcmlhbnQgc2VwYXJhdGVkIGJ5IHVuZGVyYmFycy4gSWYg
YSBmaWVsZCBpcyBtaXNzaW5nLCB1cAorICAgICAqIHRvIHR3byBsZWFkaW5nIHVuZGVyYmFycyB3
aWxsIG9jY3VyLiBFeGFtcGxlOiAiZW4iLCAiZGVfREUiLCAiZW5fVVNfV0lOIiwKKyAgICAgKiAi
ZGVfX1BPU0lYIiwgImZyX19NQUMiLCAiX19NQUMiLCAiX01UIiwgIl9GUl9FVVJPIgorICAgICAq
IEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogZ2V0TmFtZSgpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcHJvZ3JhbW1hdGljIG5hbWUgb2YgdGhlIGVudGly
ZSBsb2NhbGUgYXMgZ2V0TmFtZSgpIHdvdWxkIHJldHVybiwKKyAgICAgKiBidXQgd2l0aG91dCBr
ZXl3b3Jkcy4KKyAgICAgKiBAcmV0dXJuICAgICAgQSBwb2ludGVyIHRvICJuYW1lIi4KKyAgICAg
KiBAc2VlIGdldE5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBjb25z
dCBjaGFyICogZ2V0QmFzZU5hbWUoKSBjb25zdDsKKworCisgICAgLyoqCisgICAgICogR2V0cyB0
aGUgbGlzdCBvZiBrZXl3b3JkcyBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICoKKyAg
ICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBzdGF0dXMgY29kZQorICAgICAqIEByZXR1cm4gcG9pbnRl
ciB0byBTdHJpbmdFbnVtZXJhdGlvbiBjbGFzcywgb3IgTlVMTCBpZiB0aGVyZSBhcmUgbm8ga2V5
d29yZHMuIAorICAgICAqIENsaWVudCBtdXN0IGRpc3Bvc2Ugb2YgaXQgYnkgY2FsbGluZyBkZWxl
dGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgU3RyaW5nRW51bWVyYXRp
b24gKiBjcmVhdGVLZXl3b3JkcyhVRXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoq
CisgICAgICogR2V0cyB0aGUgdmFsdWUgZm9yIGEga2V5d29yZC4KKyAgICAgKgorICAgICAqIEBw
YXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3JkIGZvciB3aGljaCB3ZSB3YW50IHRo
ZSB2YWx1ZS4gQ2FzZSBpbnNlbnNpdGl2ZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIFRoZSBidWZm
ZXIgdG8gcmVjZWl2ZSB0aGUga2V5d29yZCB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyQ2Fw
YWNpdHkgVGhlIGNhcGFjaXR5IG9mIHJlY2VpdmluZyBidWZmZXIKKyAgICAgKiBAcGFyYW0gc3Rh
dHVzIFJldHVybnMgYW55IGVycm9yIGluZm9ybWF0aW9uIHdoaWxlIHBlcmZvcm1pbmcgdGhpcyBv
cGVyYXRpb24uCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBrZXl3b3JkIHZhbHVl
CisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBpbnQzMl90IGdl
dEtleXdvcmRWYWx1ZShjb25zdCBjaGFyKiBrZXl3b3JkTmFtZSwgY2hhciAqYnVmZmVyLCBpbnQz
Ml90IGJ1ZmZlckNhcGFjaXR5LCBVRXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoq
CisgICAgICogU2V0cyBvciByZW1vdmVzIHRoZSB2YWx1ZSBmb3IgYSBrZXl3b3JkLgorICAgICAq
CisgICAgICogRm9yIHJlbW92aW5nIGFsbCBrZXl3b3JkcywgdXNlIGdldEJhc2VOYW1lKCksCisg
ICAgICogYW5kIGNvbnN0cnVjdCBhIG5ldyBMb2NhbGUgaWYgaXQgZGlmZmVycyBmcm9tIGdldE5h
bWUoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3
b3JkIHRvIGJlIHNldC4gQ2FzZSBpbnNlbnNpdGl2ZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZFZh
bHVlIHZhbHVlIG9mIHRoZSBrZXl3b3JkIHRvIGJlIHNldC4gSWYgMC1sZW5ndGggb3IKKyAgICAg
KiAgTlVMTCwgd2lsbCByZXN1bHQgaW4gdGhlIGtleXdvcmQgYmVpbmcgcmVtb3ZlZC4gTm8gZXJy
b3IgaXMgZ2l2ZW4gaWYKKyAgICAgKiAgdGhhdCBrZXl3b3JkIGRvZXMgbm90IGV4aXN0LgorICAg
ICAqIEBwYXJhbSBzdGF0dXMgUmV0dXJucyBhbnkgZXJyb3IgaW5mb3JtYXRpb24gd2hpbGUgcGVy
Zm9ybWluZyB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDQ5Cisg
ICAgICovCisgICAgdm9pZCBzZXRLZXl3b3JkVmFsdWUoY29uc3QgY2hhcioga2V5d29yZE5hbWUs
IGNvbnN0IGNoYXIqIGtleXdvcmRWYWx1ZSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8q
KgorICAgICAqIHJldHVybnMgdGhlIGxvY2FsZSdzIHRocmVlLWxldHRlciBsYW5ndWFnZSBjb2Rl
LCBhcyBzcGVjaWZpZWQKKyAgICAgKiBpbiBJU08gZHJhZnQgc3RhbmRhcmQgSVNPLTYzOS0yLgor
ICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZSwgb3IgYW4gZW1wdHkgc3Ry
aW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgY29uc3QgY2hhciAqIGdl
dElTTzNMYW5ndWFnZSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUi
IHdpdGggdGhlIGxvY2FsZSdzIHRocmVlLWxldHRlciBJU08tMzE2NiBjb3VudHJ5IGNvZGUuCisg
ICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlLCBvciBhbiBlbXB0eSBzdHJp
bmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0
SVNPM0NvdW50cnkoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFdpbmRv
d3MgTENJRCB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoaXMgbG9jYWxlLgorICAgICAqIFRoaXMg
dmFsdWUgaXMgc3RvcmVkIGluIHRoZSByZXNvdXJjZSBkYXRhIGZvciB0aGUgbG9jYWxlIGFzIGEg
b25lLXRvLWZvdXItZGlnaXQKKyAgICAgKiBoZXhhZGVjaW1hbCBudW1iZXIuICBJZiB0aGUgcmVz
b3VyY2UgaXMgbWlzc2luZywgaW4gdGhlIHdyb25nIGZvcm1hdCwgb3IKKyAgICAgKiB0aGVyZSBp
cyBubyBXaW5kb3dzIExDSUQgdmFsdWUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGlzIGxvY2FsZSwg
cmV0dXJucyAwLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHVpbnQzMl90
ICAgICAgICBnZXRMQ0lEKHZvaWQpIGNvbnN0OworCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkK
KyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBsb2NhbGUncyBzY3JpcHQgaXMg
d3JpdHRlbiByaWdodC10by1sZWZ0LgorICAgICAqIElmIHRoZXJlIGlzIG5vIHNjcmlwdCBzdWJ0
YWcsIHRoZW4gdGhlIGxpa2VseSBzY3JpcHQgaXMgdXNlZCwgc2VlIHVsb2NfYWRkTGlrZWx5U3Vi
dGFncygpLgorICAgICAqIElmIG5vIGxpa2VseSBzY3JpcHQgaXMga25vd24sIHRoZW4gRkFMU0Ug
aXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBBIHNjcmlwdCBpcyByaWdodC10by1sZWZ0IGFj
Y29yZGluZyB0byB0aGUgQ0xEUiBzY3JpcHQgbWV0YWRhdGEKKyAgICAgKiB3aGljaCBjb3JyZXNw
b25kcyB0byB3aGV0aGVyIHRoZSBzY3JpcHQncyBsZXR0ZXJzIGhhdmUgQmlkaV9DbGFzcz1SIG9y
IEFMLgorICAgICAqCisgICAgICogUmV0dXJucyBUUlVFIGZvciAiYXIiIGFuZCAiZW4tSGViciIs
IEZBTFNFIGZvciAiemgiIGFuZCAiZmEtQ3lybCIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRS
VUUgaWYgdGhlIGxvY2FsZSdzIHNjcmlwdCBpcyB3cml0dGVuIHJpZ2h0LXRvLWxlZnQKKyAgICAg
KiBAZHJhZnQgSUNVIDU0CisgICAgICovCisgICAgVUJvb2wgaXNSaWdodFRvTGVmdCgpIGNvbnN0
OworI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJICovCisKKyAgICAvKioKKyAgICAgKiBGaWxs
cyBpbiAiZGlzcExhbmciIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBp
biBhIGZvcm1hdCBzdWl0YWJsZSBmb3IKKyAgICAgKiB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1
bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlz
CisgICAgICogImZyIiBhbmQgdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAi
ZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BMYW5nIHRvICJGcmVuY2gi
LgorICAgICAqIEBwYXJhbSBkaXNwTGFuZyAgUmVjZWl2ZXMgdGhlIGxhbmd1YWdlJ3MgZGlzcGxh
eSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BMYW5n
Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAg
Z2V0RGlzcGxheUxhbmd1YWdlKFVuaWNvZGVTdHJpbmcmICAgZGlzcExhbmcpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BMYW5nIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMg
bG9jYWxlJ3MgbGFuZ3VhZ2UgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yCisgICAgICogdXNlciBk
aXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBl
eGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBsYW5ndWFnZSBjb2RlIGlzICJlbiIgYW5k
IGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJmciIsIHRoaXMgZnVuY3Rpb24gd291
bGQgc2V0CisgICAgICogZGlzcExhbmcgdG8gIkFuZ2xhaXMiLgorICAgICAqIEBwYXJhbSBkaXNw
bGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhl
IG5hbWUuICBJbiBvdGhlciB3b3JkcywKKyAgICAgKiAgICAgICAgICAgICAgICAgIGlmIHRoZSBs
b2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHBhc3NpbmcgTG9jYWxlOjpnZXRGcmVuY2go
KSBmb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0
IGluICJBbmdsYWlzIiwgd2hpbGUgcGFzc2luZyBMb2NhbGU6OmdldEdlcm1hbigpCisgICAgICog
ICAgICAgICAgICAgICAgICBmb3IgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIkVuZ2xp
c2NoIi4KKyAgICAgKiBAcGFyYW0gZGlzcExhbmcgIFJlY2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRp
c3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNw
TGFuZyIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmlu
ZyYgIGdldERpc3BsYXlMYW5ndWFnZSggY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxv
Y2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVu
aWNvZGVTdHJpbmcmICBkaXNwTGFuZykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBp
biAiZGlzcFNjcmlwdCIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHNjcmlwdCBpbiBh
IGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQg
bG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncyBzY3JpcHQgY29kZQorICAgICAq
IGlzICJMQVROIiBhbmQgdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4i
LCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BTY3JpcHQgdG8gIkxhdGluIi4K
KyAgICAgKiBAcGFyYW0gZGlzcFNjcmlwdCAgICBSZWNlaXZlcyB0aGUgc2NyaXB0cydzIGRpc3Bs
YXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlz
cFNjcmlwdCIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgVW5pY29kZVN0
cmluZyYgIGdldERpc3BsYXlTY3JpcHQoICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BTY3Jp
cHQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BTY3JpcHQiIHdpdGgg
dGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisg
ICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxh
eUxvY2FsZSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzCisgICAgICogc2NyaXB0IGNv
ZGUgaXMgIkxBVE4iIGFuZCBkaXNwbGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0
aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BTY3JpcHQgdG8gIkxhdGluIi4KKyAg
ICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgICAgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJl
IHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIEluIG90aGVyCisgICAgICogICAgICAgICAgICAg
ICAgICAgICAgd29yZHMsIGlmIHRoZSBsb2NhbGUncyBzY3JpcHQgY29kZSBpcyAiTEFUTiIsIHBh
c3NpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBMb2NhbGU6OmdldEZyZW5jaCgpIGZv
ciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiIiwgd2hpbGUKKyAgICAgKiAgICAgICAg
ICAgICAgICAgICAgICBwYXNzaW5nIExvY2FsZTo6Z2V0R2VybWFuKCkgZm9yIGRpc3BsYXlMb2Nh
bGUgd291bGQgcmVzdWx0IGluCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIiIuCisgICAg
ICogQHBhcmFtIGRpc3BTY3JpcHQgICAgUmVjZWl2ZXMgdGhlIHNjcmlwdHMncyBkaXNwbGF5IG5h
bWUuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BTY3Jp
cHQiLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcm
ICBnZXREaXNwbGF5U2NyaXB0KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2Fs
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29k
ZVN0cmluZyYgIGRpc3BTY3JpcHQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4g
ImRpc3BDb3VudHJ5IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBpbiBh
IGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQg
bG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncyBjb3VudHJ5IGNvZGUKKyAgICAg
KiBpcyAiRlIiIGFuZCB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIs
IHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcENvdW50cnkgdG8gIkZyYW5jZSIu
CisgICAgICogQHBhcmFtIGRpc3BDb3VudHJ5ICAgUmVjZWl2ZXMgdGhlIGNvdW50cnkncyBkaXNw
bGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRp
c3BDb3VudHJ5Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2Rl
U3RyaW5nJiAgZ2V0RGlzcGxheUNvdW50cnkoICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BD
b3VudHJ5KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwQ291bnRyeSIg
d2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGNvdW50cnkgaW4gYSBmb3JtYXQgc3VpdGFi
bGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJk
aXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBjb3Vu
dHJ5IGNvZGUgaXMgIlVTIiBhbmQgZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImZy
IiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwQ291bnRyeSB0byAiJkVhY3V0
ZTt0YXRzLVVuaXMiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICAgICAgU3BlY2lmaWVz
IHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLiAgSW4gb3RoZXIKKyAg
ICAgKiAgICAgICAgICAgICAgICAgICAgICB3b3JkcywgaWYgdGhlIGxvY2FsZSdzIGNvdW50cnkg
Y29kZSBpcyAiVVMiLCBwYXNzaW5nCisgICAgICogICAgICAgICAgICAgICAgICAgICAgTG9jYWxl
OjpnZXRGcmVuY2goKSBmb3IgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIiZFYWN1dGU7
dGF0cy1VbmlzIiwgd2hpbGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBwYXNzaW5nIExv
Y2FsZTo6Z2V0R2VybWFuKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluCisgICAg
ICogICAgICAgICAgICAgICAgICAgICAgIlZlcmVpbmlndGUgU3RhYXRlbiIuCisgICAgICogQHBh
cmFtIGRpc3BDb3VudHJ5ICAgUmVjZWl2ZXMgdGhlIGNvdW50cnkncyBkaXNwbGF5IG5hbWUuCisg
ICAgICogQHJldHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0
RGlzcGxheUNvdW50cnkoICBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0
cmluZyYgIGRpc3BDb3VudHJ5KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJk
aXNwVmFyIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgdmFyaWFudCBjb2RlIGluIGEg
Zm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBs
b2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BWYXIgICBSZWNlaXZlcyB0aGUgdmFyaWFudCdzIG5h
bWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFZhciIuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERp
c3BsYXlWYXJpYW50KCAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BWYXIpIGNvbnN0OworCisgICAg
LyoqCisgICAgICogRmlsbHMgaW4gImRpc3BWYXIiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2Nh
bGUncyB2YXJpYW50IGNvZGUgaW4gYSBmb3JtYXQKKyAgICAgKiBzdWl0YWJsZSBmb3IgdXNlciBk
aXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4KKyAgICAg
KiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0
byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEBwYXJhbSBkaXNwVmFyICAgUmVjZWl2ZXMgdGhl
IHZhcmlhbnQncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVy
ZW5jZSB0byAiZGlzcFZhciIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
VW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlWYXJpYW50KCAgY29uc3QgICBMb2NhbGUmICAgICAg
ICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwVmFyKSBjb25zdDsKKworICAgIC8qKgorICAg
ICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlIGluIGEgZm9y
bWF0IHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBsb2Nh
bGUuICBUaGlzIGZ1bmN0aW9uIHVzZXMgZ2V0RGlzcGxheUxhbmd1YWdlKCksIGdldERpc3BsYXlD
b3VudHJ5KCksCisgICAgICogYW5kIGdldERpc3BsYXlWYXJpYW50KCkgdG8gZG8gaXRzIHdvcmss
IGFuZCBvdXRwdXRzIHRoZSBkaXNwbGF5IG5hbWUgaW4gdGhlIGZvcm1hdAorICAgICAqICJsYW5n
dWFnZSAoY291bnRyeVssdmFyaWFudF0pIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgZGVmYXVsdCBs
b2NhbGUgaXMgZW5fVVMsIHRoZW4KKyAgICAgKiBmcl9GUidzIGRpc3BsYXkgbmFtZSB3b3VsZCBi
ZSAiRnJlbmNoIChGcmFuY2UpIiwgYW5kIGVzX01YX1RyYWRpdGlvbmFsJ3MgZGlzcGxheSBuYW1l
CisgICAgICogd291bGQgYmUgIlNwYW5pc2ggKE1leGljbyxUcmFkaXRpb25hbCkiLgorICAgICAq
IEBwYXJhbSBuYW1lICBSZWNlaXZlcyB0aGUgbG9jYWxlJ3MgZGlzcGxheSBuYW1lLgorICAgICAq
IEByZXR1cm4gICAgICBBIHJlZmVyZW5jZSB0byAibmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlOYW1lKCAgICAgICAg
IFVuaWNvZGVTdHJpbmcmICBuYW1lKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGlu
ICJuYW1lIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlIGluIGEgZm9ybWF0IHN1aXRhYmxl
IGZvciB1c2VyIGRpc3BsYXkKKyAgICAgKiBpbiB0aGUgbG9jYWxlIHNwZWNmaWVkIGJ5ICJkaXNw
bGF5TG9jYWxlIi4gIFRoaXMgZnVuY3Rpb24gdXNlcyBnZXREaXNwbGF5TGFuZ3VhZ2UoKSwKKyAg
ICAgKiBnZXREaXNwbGF5Q291bnRyeSgpLCBhbmQgZ2V0RGlzcGxheVZhcmlhbnQoKSB0byBkbyBp
dHMgd29yaywgYW5kIG91dHB1dHMgdGhlIGRpc3BsYXkKKyAgICAgKiBuYW1lIGluIHRoZSBmb3Jt
YXQgImxhbmd1YWdlIChjb3VudHJ5Wyx2YXJpYW50XSkiLiAgRm9yIGV4YW1wbGUsIGlmIGRpc3Bs
YXlMb2NhbGUgaXMKKyAgICAgKiBmcl9GUiwgdGhlbiBlbl9VUydzIGRpc3BsYXkgbmFtZSB3b3Vs
ZCBiZSAiQW5nbGFpcyAoJkVhY3V0ZTt0YXRzLVVuaXMpIiwgYW5kIG5vX05PX05ZJ3MKKyAgICAg
KiBkaXNwbGF5IG5hbWUgd291bGQgYmUgIm5vcnYmZWFjdXRlO2dpZW4gKE5vcnYmZWdyYXZlO2dl
LE5ZKSIuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxl
IHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcGFyYW0gbmFtZSAgICAg
IFJlY2VpdmVzIHRoZSBsb2NhbGUncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAg
ICAgICBBIHJlZmVyZW5jZSB0byAibmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlOYW1lKCBjb25zdCAgIExvY2FsZSYg
ICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgbmFtZSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAg
KiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoZSBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCAgICAgICAgIGhhc2hDb2RlKHZvaWQpIGNvbnN0
OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbG9jYWxlIHRvIGJvZ3VzCisgICAgICogQSBi
b2d1cyBsb2NhbGUgcmVwcmVzZW50cyBhIG5vbi1leGlzdGluZyBsb2NhbGUgYXNzb2NpYXRlZAor
ICAgICAqIHdpdGggc2VydmljZXMgdGhhdCBjYW4gYmUgaW5zdGFudGlhdGVkIGZyb20gbm9uLWxv
Y2FsZSBkYXRhCisgICAgICogaW4gYWRkaXRpb24gdG8gbG9jYWxlIChmb3IgZXhhbXBsZSwgY29s
bGF0aW9uIGNhbiBiZQorICAgICAqIGluc3RhbnRpYXRlZCBmcm9tIGEgbG9jYWxlIGFuZCBmcm9t
IGEgcnVsZSBzZXQpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHZvaWQg
c2V0VG9Cb2d1cygpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgYm9ndXMgc3RhdGUuIExv
Y2FsZSBvYmplY3QgY2FuIGJlIGJvZ3VzIGlmIGl0IGRvZXNuJ3QgZXhpc3QKKyAgICAgKiBAcmV0
dXJuIEZBTFNFIGlmIGl0IGlzIGEgcmVhbCBsb2NhbGUsIFRSVUUgaWYgaXQgaXMgYSBib2d1cyBs
b2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBVQm9vbCBpc0JvZ3Vz
KHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIGlu
c3RhbGxlZCBsb2NhbGVzLgorICAgICAqIEBwYXJhbSBjb3VudCBSZWNlaXZlcyB0aGUgbnVtYmVy
IG9mIGxvY2FsZXMgaW4gdGhlIGxpc3QuCisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0
byBhbiBhcnJheSBvZiBMb2NhbGUgb2JqZWN0cy4gIFRoaXMgYXJyYXkgaXMgdGhlIGxpc3QKKyAg
ICAgKiAgICAgICAgICAgICAgb2YgYWxsIGxvY2FsZXMgd2l0aCBpbnN0YWxsZWQgcmVzb3VyY2Ug
ZmlsZXMuICBUaGUgY2FsbGVkIGRvZXMgTk9UCisgICAgICogICAgICAgICAgICAgIGdldCBvd25l
cnNoaXAgb2YgdGhpcyBsaXN0LCBhbmQgbXVzdCBOT1QgZGVsZXRlIGl0LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUqIFVfRVhQT1JUMiBn
ZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIGNvdW50KTsKKworICAgIC8qKgorICAgICAqIEdl
dHMgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgMi1sZXR0ZXIgY291bnRyeSBjb2RlcyBkZWZpbmVk
IGluIElTTyAzMTY2LiAgVGhpcyBpcyBhCisgICAgICogcG9pbnRlciB0byBhbiBhcnJheSBvZiBw
b2ludGVycyB0byBhcnJheXMgb2YgY2hhci4gIEFsbCBvZiB0aGVzZSBwb2ludGVycyBhcmUKKyAg
ICAgKiBvd25lZCBieSBJQ1UtLSBkbyBub3QgZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUg
dGhyb3VnaCB0aGVtLiAgVGhlIGFycmF5IGlzCisgICAgICogdGVybWluYXRlZCB3aXRoIGEgbnVs
bCBwb2ludGVyLgorICAgICAqIEByZXR1cm4gYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgY291bnRy
eSBjb2RlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCogVV9FWFBPUlQyIGdldElTT0NvdW50cmllcygpOworCisgICAgLyoqCisg
ICAgICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBsYW5ndWFnZSBjb2RlcyBkZWZpbmVk
IGluIElTTyA2MzkuICBUaGlzIGlzIGEgcG9pbnRlcgorICAgICAqIHRvIGFuIGFycmF5IG9mIHBv
aW50ZXJzIHRvIGFycmF5cyBvZiBjaGFyLiAgQWxsIG9mIHRoZXNlIHBvaW50ZXJzIGFyZSBvd25l
ZAorICAgICAqIGJ5IElDVS0tIGRvIG5vdCBkZWxldGUgdGhlbSwgYW5kIGRvIG5vdCB3cml0ZSB0
aHJvdWdoIHRoZW0uICBUaGUgYXJyYXkgaXMKKyAgICAgKiB0ZXJtaW5hdGVkIHdpdGggYSBudWxs
IHBvaW50ZXIuCisgICAgICogQHJldHVybiBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBsYW5ndWFn
ZSBjb2RlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCogVV9FWFBPUlQyIGdldElTT0xhbmd1YWdlcygpOworCisgICAgLyoqCisg
ICAgICogSUNVICJwb29yIG1hbidzIFJUVEkiLCByZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoaXMg
Y2xhc3MuCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBzdGF0
aWMgVUNsYXNzSUQgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQoKTsKKworICAgIC8qKgorICAg
ICAqIElDVSAicG9vciBtYW4ncyBSVFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGUgYWN0
dWFsIGNsYXNzLgorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAg
dmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJRCgpIGNvbnN0OworCitwcm90ZWN0ZWQ6
IC8qIG9ubHkgcHJvdGVjdGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiBETyBOT1QgVVNFLiAqLwor
I2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICogU2V0IHRoaXMgZnJv
bSBhIHNpbmdsZSBQT1NJWCBzdHlsZSBsb2NhbGUgc3RyaW5nLgorICAgICAqIEBpbnRlcm5hbAor
ICAgICAqLworICAgIHZvaWQgc2V0RnJvbVBPU0lYSUQoY29uc3QgY2hhciAqcG9zaXhJRCk7Cisj
ZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworcHJpdmF0ZToKKyAgICAvKioKKyAg
ICAgKiBJbml0aWFsaXplIHRoZSBsb2NhbGUgb2JqZWN0IHdpdGggYSBuZXcgbmFtZS4KKyAgICAg
KiBXYXMgZGVwcmVjYXRlZCAtIHVzZWQgaW4gaW1wbGVtZW50YXRpb24gLSBtb3ZlZCBpbnRlcm5h
bAorICAgICAqCisgICAgICogQHBhcmFtIGNMb2NhbGVJRCBUaGUgbmV3IGxvY2FsZSBuYW1lLgor
ICAgICAqIEBwYXJhbSBjYW5vbmljYWxpemUgd2hldGhlciB0byBjYWxsIHVsb2NfY2Fub25pY2Fs
aXplIG9uIGNMb2NhbGVJRAorICAgICAqLworICAgIExvY2FsZSYgaW5pdChjb25zdCBjaGFyKiBj
TG9jYWxlSUQsIFVCb29sIGNhbm9uaWNhbGl6ZSk7CisKKyAgICAvKgorICAgICAqIEludGVybmFs
IGNvbnN0cnVjdG9yIHRvIGFsbG93IGNvbnN0cnVjdGlvbiBvZiBhIGxvY2FsZSBvYmplY3Qgd2l0
aAorICAgICAqICAgTk8gc2lkZSBlZmZlY3RzLiAgIChEZWZhdWx0IGNvbnN0cnVjdG9yIHRyaWVz
IHRvIGdldAorICAgICAqICAgdGhlIGRlZmF1bHQgbG9jYWxlLikKKyAgICAgKi8KKyAgICBlbnVt
IEVMb2NhbGVUeXBlIHsKKyAgICAgICAgZUJPR1VTCisgICAgfTsKKyAgICBMb2NhbGUoRUxvY2Fs
ZVR5cGUpOworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSB0aGUgbG9jYWxlIGNhY2hlIGZv
ciBjb21tb25seSB1c2VkIGxvY2FsZXMKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9jYWxlICpnZXRM
b2NhbGVDYWNoZSh2b2lkKTsKKworICAgIGNoYXIgbGFuZ3VhZ2VbVUxPQ19MQU5HX0NBUEFDSVRZ
XTsKKyAgICBjaGFyIHNjcmlwdFtVTE9DX1NDUklQVF9DQVBBQ0lUWV07CisgICAgY2hhciBjb3Vu
dHJ5W1VMT0NfQ09VTlRSWV9DQVBBQ0lUWV07CisgICAgaW50MzJfdCB2YXJpYW50QmVnaW47Cisg
ICAgY2hhciogZnVsbE5hbWU7CisgICAgY2hhciBmdWxsTmFtZUJ1ZmZlcltVTE9DX0ZVTExOQU1F
X0NBUEFDSVRZXTsKKyAgICAvLyBuYW1lIHdpdGhvdXQga2V5d29yZHMKKyAgICBjaGFyKiBiYXNl
TmFtZTsKKyAgICB2b2lkIGluaXRCYXNlTmFtZShVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAg
VUJvb2wgZklzQm9ndXM7CisKKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZnZXRMb2NhbGUoaW50
IGxvY2lkKTsKKworICAgIC8qKgorICAgICAqIEEgZnJpZW5kIHRvIGFsbG93IHRoZSBkZWZhdWx0
IGxvY2FsZSB0byBiZSBzZXQgYnkgZWl0aGVyIHRoZSBDIG9yIEMrKyBBUEkuCisgICAgICogQGlu
dGVybmFsCisgICAgICovCisgICAgZnJpZW5kIExvY2FsZSAqbG9jYWxlX3NldF9kZWZhdWx0X2lu
dGVybmFsKGNvbnN0IGNoYXIgKiwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAg
ICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGZyaWVuZCB2b2lkIFVfQ0FMTENPTlYgbG9jYWxl
X2F2YWlsYWJsZV9pbml0KCk7Cit9OworCitpbmxpbmUgVUJvb2wKK0xvY2FsZTo6b3BlcmF0b3Ih
PShjb25zdCAgICBMb2NhbGUmICAgICBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gIW9wZXJh
dG9yPT0ob3RoZXIpOworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldENvdW50
cnkoKSBjb25zdAoreworICAgIHJldHVybiBjb3VudHJ5OworfQorCitpbmxpbmUgY29uc3QgY2hh
ciAqCitMb2NhbGU6OmdldExhbmd1YWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbGFuZ3VhZ2U7
Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0U2NyaXB0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gc2NyaXB0OworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6Omdl
dFZhcmlhbnQoKSBjb25zdAoreworICAgIHJldHVybiAmYmFzZU5hbWVbdmFyaWFudEJlZ2luXTsK
K30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXROYW1lKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZnVsbE5hbWU7Cit9CisKK2lubGluZSBVQm9vbAorTG9jYWxlOjppc0JvZ3VzKHZv
aWQpIGNvbnN0IHsKKyAgICByZXR1cm4gZklzQm9ndXM7Cit9CisKK1VfTkFNRVNQQUNFX0VORAor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oIGIvU291
cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ3NTk4YTUwZTZmYTNiYWIy
YWQ0OWUwMjJhYWYzOTZjYWMzMjllNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1
L3VuaWNvZGUvcmJiaS5oCkBAIC0wLDAgKzEsNzgyIEBACisvKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNo
aW5lcyBDb3Jwb3JhdGlvbiAgICoKKyogICBhbmQgb3RoZXJzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlw
dGlvbgorKiAgIDEwLzIyLzk5ICAgIGFsYW4gICAgICAgIENyZWF0aW9uLgorKiAgIDExLzExLzk5
ICAgIHJnaWxsYW0gICAgIENvbXBsZXRlIHBvcnQgZnJvbSBKYXZhLgorKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor
Ki8KKworI2lmbmRlZiBSQkJJX0gKKyNkZWZpbmUgUkJCSV9ICisKKyNpbmNsdWRlICJ1bmljb2Rl
L3V0eXBlcy5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTogUnVsZSBCYXNl
ZCBCcmVhayBJdGVyYXRvcgorICovCisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04K
KworI2luY2x1ZGUgInVuaWNvZGUvYnJraXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEu
aCIKKyNpbmNsdWRlICJ1bmljb2RlL3BhcnNlZXJyLmgiCisjaW5jbHVkZSAidW5pY29kZS9zY2hy
aXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWNocml0ZXIuaCIKKworCitzdHJ1Y3QgVVRyaWU7
CisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKiBAaW50ZXJuYWwgKi8KK3N0cnVjdCBSQkJJRGF0
YUhlYWRlcjsKK2NsYXNzICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yVGFibGVzOworY2xhc3MgIEJy
ZWFrSXRlcmF0b3I7CitjbGFzcyAgUkJCSURhdGFXcmFwcGVyOworY2xhc3MgIFVTdGFjazsKK2Ns
YXNzICBMYW5ndWFnZUJyZWFrRW5naW5lOworY2xhc3MgIFVuaGFuZGxlZEVuZ2luZTsKK3N0cnVj
dCBSQkJJU3RhdGVUYWJsZTsKKworCisKKworLyoqCisgKgorICogQSBzdWJjbGFzcyBvZiBCcmVh
a0l0ZXJhdG9yIHdob3NlIGJlaGF2aW9yIGlzIHNwZWNpZmllZCB1c2luZyBhIGxpc3Qgb2YgcnVs
ZXMuCisgKiA8cD5JbnN0YW5jZXMgb2YgdGhpcyBjbGFzcyBhcmUgbW9zdCBjb21tb25seSBjcmVh
dGVkIGJ5IHRoZSBmYWN0b3J5IG1ldGhvZHMgb2YKKyAqICBCcmVha0l0ZXJhdG9yOjpjcmVhdGVX
b3JkSW5zdGFuY2UoKSwgQnJlYWtJdGVyYXRvcjo6Y3JlYXRlTGluZUluc3RhbmNlKCksIGV0Yy4s
CisgKiAgYW5kIHRoZW4gdXNlZCB2aWEgdGhlIGFic3RyYWN0IEFQSSBpbiBjbGFzcyBCcmVha0l0
ZXJhdG9yPC9wPgorICoKKyAqIDxwPlNlZSB0aGUgSUNVIFVzZXIgR3VpZGUgZm9yIGluZm9ybWF0
aW9uIG9uIEJyZWFrIEl0ZXJhdG9yIFJ1bGVzLjwvcD4KKyAqCisgKiA8cD5UaGlzIGNsYXNzIGlz
IG5vdCBpbnRlbmRlZCB0byBiZSBzdWJjbGFzc2VkLiAgKENsYXNzIERpY3Rpb25hcnlCYXNlZEJy
ZWFrSXRlcmF0b3IKKyAqICAgIGlzIGEgc3ViY2xhc3MsIGJ1dCB0aGF0IHJlbGF0aW9uc2hpcCBp
cyBlZmZlY3RpdmVseSBpbnRlcm5hbCB0byB0aGUgSUNVCisgKiAgICBpbXBsZW1lbnRhdGlvbi4g
IFRoZSBzdWJjbGFzc2luZyBpbnRlcmZhY2UgdG8gUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3IgaXMK
KyAqICAgIG5vdCBwYXJ0IG9mIHRoZSBJQ1UgQVBJLCBhbmQgbWF5IG5vdCByZW1haW4gc3RhYmxl
LjwvcD4KKyAqCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
IC8qVV9GSU5BTCovIDogcHVibGljIEJyZWFrSXRlcmF0b3IgeworCitwcm90ZWN0ZWQ6CisgICAg
LyoqCisgICAgICogVGhlIFVUZXh0IHRocm91Z2ggd2hpY2ggdGhpcyBCcmVha0l0ZXJhdG9yIGFj
Y2Vzc2VzIHRoZSB0ZXh0CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVVRleHQgICpm
VGV4dDsKKworICAgIC8qKgorICAgICAqICAgQSBjaGFyYWN0ZXIgaXRlcmF0b3IgdGhhdCByZWZl
cnMgdG8gdGhlIHNhbWUgdGV4dCBhcyB0aGUgVVRleHQsIGFib3ZlLgorICAgICAqICAgT25seSBp
bmNsdWRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBBUEksIHdoaWNoIHdhcyBiYXNlZCBv
biBDaGFyYWN0ZXJJdGVyYXRvcnMuCisgICAgICogICBWYWx1ZSBtYXkgYmUgYWRvcHRlZCBmcm9t
IG91dHNpZGUsIG9yIG9uZSBvZiBmU0NoYXJJdGVyIG9yIGZEQ2hhckl0ZXIsIGJlbG93LgorICAg
ICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yICAqZkNoYXJJdGVyOworCisgICAgLyoqCisgICAg
ICogICBXaGVuIHRoZSBpbnB1dCB0ZXh0IGlzIHByb3ZpZGVkIGJ5IGEgVW5pY29kZVN0cmluZywg
dGhpcyB3aWxsIHBvaW50IHRvCisgICAgICogICAgYSBjaGFyYWN0ZXJJdGVyYXRvciB0aGF0IHdy
YXBzIHRoYXQgZGF0YS4gIE5lZWRlZCBvbmx5IGZvciB0aGUKKyAgICAgKiAgICBpbXBsZW1lbnRh
dGlvbiBvZiBnZXRUZXh0KCksIGEgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaXNzdWUuCisgICAg
ICovCisgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgKmZTQ2hhckl0ZXI7CisKKyAgICAvKioK
KyAgICAgKiAgV2hlbiB0aGUgaW5wdXQgdGV4dCBpcyBwcm92aWRlZCBieSBhIFVUZXh0LCB0aGlz
CisgICAgICogICAgZHVtbXkgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciBhbiBlbXB0eSBzdHJpbmcg
d2lsbAorICAgICAqICAgIGJlIHJldHVybmVkIGZyb20gZ2V0VGV4dCgpCisgICAgICovCisgICAg
VUNoYXJDaGFyYWN0ZXJJdGVyYXRvciAqZkRDaGFySXRlcjsKKworICAgIC8qKgorICAgICAqIFRo
ZSBydWxlIGRhdGEgZm9yIHRoaXMgQnJlYWtJdGVyYXRvciBpbnN0YW5jZQorICAgICAqIEBpbnRl
cm5hbAorICAgICAqLworICAgIFJCQklEYXRhV3JhcHBlciAgICAqZkRhdGE7CisKKyAgICAvKiog
SW5kZXggb2YgdGhlIFJ1bGUge3RhZ30gdmFsdWVzIGZvciB0aGUgbW9zdCByZWNlbnQgbWF0Y2gu
CisgICAgICogIEBpbnRlcm5hbAorICAgICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmTGFz
dFJ1bGVTdGF0dXNJbmRleDsKKworICAgIC8qKgorICAgICAqIFJ1bGUgdGFnIHZhbHVlIHZhbGlk
IGZsYWcuCisgICAgICogU29tZSBpdGVyYXRvciBvcGVyYXRpb25zIGRvbid0IGludHJpbnNpY2Fs
bHkgc2V0IHRoZSBjb3JyZWN0IHRhZyB2YWx1ZS4KKyAgICAgKiBUaGlzIGZsYWcgbGV0cyB1cyBs
YXppbHkgY29tcHV0ZSB0aGUgdmFsdWUgaWYgd2UgYXJlIGV2ZXIgYXNrZWQgZm9yIGl0LgorICAg
ICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVCb29sICAgICAgICAgICAgICAgZkxhc3RTdGF0
dXNJbmRleFZhbGlkOworCisgICAgLyoqCisgICAgICogQ291bnRlciBmb3IgdGhlIG51bWJlciBv
ZiBjaGFyYWN0ZXJzIGVuY291bnRlcmVkIHdpdGggdGhlICJkaWN0aW9uYXJ5IgorICAgICAqICAg
ZmxhZyBzZXQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgdWludDMyX3QgICAgICAg
ICAgICBmRGljdGlvbmFyeUNoYXJDb3VudDsKKworICAgIC8qKgorICAgICAqIFdoZW4gYSByYW5n
ZSBvZiBjaGFyYWN0ZXJzIGlzIGRpdmlkZWQgdXAgdXNpbmcgdGhlIGRpY3Rpb25hcnksIHRoZSBi
cmVhaworICAgICAqIHBvc2l0aW9ucyB0aGF0IGFyZSBkaXNjb3ZlcmVkIGFyZSBzdG9yZWQgaGVy
ZSwgcHJldmVudGluZyB1cyBmcm9tIGhhdmluZworICAgICAqIHRvIHVzZSBlaXRoZXIgdGhlIGRp
Y3Rpb25hcnkgb3IgdGhlIHN0YXRlIHRhYmxlIGFnYWluIHVudGlsIHRoZSBpdGVyYXRvcgorICAg
ICAqIGxlYXZlcyB0aGlzIHJhbmdlIG9mIHRleHQuIEhhcyB0aGUgbW9zdCBpbXBhY3QgZm9yIGxp
bmUgYnJlYWtpbmcuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCogICAg
ICAgICAgICBmQ2FjaGVkQnJlYWtQb3NpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVt
YmVyIG9mIGVsZW1lbnRzIGluIGZDYWNoZWRCcmVha1Bvc2l0aW9ucworICAgICAqIEBpbnRlcm5h
bAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZk51bUNhY2hlZEJyZWFrUG9zaXRp
b25zOworCisgICAgLyoqCisgICAgICogaWYgZkNhY2hlZEJyZWFrUG9zaXRpb25zIGlzIG5vdCBu
dWxsLCB0aGlzIGluZGljYXRlcyB3aGljaCBpdGVtIGluIHRoZQorICAgICAqIGNhY2hlIHRoZSBj
dXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiByZWZlcnMgdG8KKyAgICAgKiBAaW50ZXJuYWwKKyAg
ICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZQb3NpdGlvbkluQ2FjaGU7CisgICAgCisg
ICAgLyoqCisgICAgICoKKyAgICAgKiBJZiBwcmVzZW50LCBVU3RhY2sgb2YgTGFuZ3VhZ2VCcmVh
a0VuZ2luZSBvYmplY3RzIHRoYXQgbWlnaHQgaGFuZGxlCisgICAgICogZGljdGlvbmFyeSBjaGFy
YWN0ZXJzLiBTZWFyY2hlZCBmcm9tIHRvcCB0byBib3R0b20gdG8gZmluZCBhbiBvYmplY3QgdG8K
KyAgICAgKiBoYW5kbGUgYSBnaXZlbiBjaGFyYWN0ZXIuCisgICAgICogQGludGVybmFsCisgICAg
ICovCisgICAgVVN0YWNrICAgICAgICAgICAgICAqZkxhbmd1YWdlQnJlYWtFbmdpbmVzOworICAg
IAorICAgIC8qKgorICAgICAqCisgICAgICogSWYgcHJlc2VudCwgdGhlIHNwZWNpYWwgTGFuZ3Vh
Z2VCcmVha0VuZ2luZSB1c2VkIGZvciBoYW5kbGluZworICAgICAqIGNoYXJhY3RlcnMgdGhhdCBh
cmUgaW4gdGhlIGRpY3Rpb25hcnkgc2V0LCBidXQgbm90IGhhbmRsZWQgYnkgYW55CisgICAgICog
TGFuZ3VnYWdlQnJlYWtFbmdpbmUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVW5o
YW5kbGVkRW5naW5lICAgICAqZlVuaGFuZGxlZEJyZWFrRW5naW5lOworICAgIAorICAgIC8qKgor
ICAgICAqCisgICAgICogVGhlIHR5cGUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLCBvciAtMSBpZiBp
dCBoYXMgbm90IGJlZW4gc2V0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMy
X3QgICAgICAgICAgICAgZkJyZWFrVHlwZTsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICAvLz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisgICAgLy8gY29uc3RydWN0b3JzCisgICAgLy89PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisj
aWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCB0byBi
ZSB1c2VkIGluIHRoZSBjb25zdHJ1Y3RvcgorICAgICAqIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Io
UkJCSURhdGFIZWFkZXIqLCBFRG9udEFkb3B0LCBVRXJyb3JDb2RlICYpOworICAgICAqIHdoaWNo
IGRvZXMgbm90IGFkb3B0IHRoZSBtZW1vcnkgaW5kaWNhdGVkIGJ5IHRoZSBSQkJJRGF0YUhlYWRl
cioKKyAgICAgKiBwYXJhbWV0ZXIuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8K
KyAgICBlbnVtIEVEb250QWRvcHQgeworICAgICAgICBrRG9udEFkb3B0CisgICAgfTsKKworICAg
IC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZyb20gYSBmbGF0dGVuZWQgc2V0IG9mIFJCQkkgZGF0
YSBpbiBtYWxsb2NlZCBtZW1vcnkuCisgICAgICogICAgICAgICAgICAgUnVsZXNCYXNlZEJyZWFr
SXRlcmF0b3JzIGJ1aWx0IGZyb20gYSBjdXN0b20gc2V0IG9mIHJ1bGVzCisgICAgICogICAgICAg
ICAgICAgYXJlIGNyZWF0ZWQgdmlhIHRoaXMgY29uc3RydWN0b3I7IHRoZSBydWxlcyBhcmUgY29t
cGlsZWQKKyAgICAgKiAgICAgICAgICAgICBpbnRvIG1lbW9yeSwgdGhlbiB0aGUgYnJlYWsgaXRl
cmF0b3IgaXMgY29uc3RydWN0ZWQgaGVyZS4KKyAgICAgKgorICAgICAqICAgICAgICAgICAgIFRo
ZSBicmVhayBpdGVyYXRvciBhZG9wdHMgdGhlIG1lbW9yeSwgYW5kIHdpbGwKKyAgICAgKiAgICAg
ICAgICAgICBmcmVlIGl0IHdoZW4gZG9uZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAg
ICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFJCQklEYXRhSGVhZGVyKiBkYXRhLCBVRXJyb3JDb2Rl
ICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgZnJvbSBhIGZsYXR0ZW5l
ZCBzZXQgb2YgUkJCSSBkYXRhIGluIG1lbW9yeSB3aGljaCBuZWVkIG5vdAorICAgICAqICAgICAg
ICAgICAgIGJlIG1hbGxvY2VkIChlLmcuIGl0IG1heSBiZSBhIG1lbW9yeS1tYXBwZWQgZmlsZSwg
ZXRjLikuCisgICAgICoKKyAgICAgKiAgICAgICAgICAgICBUaGlzIHZlcnNpb24gZG9lcyBub3Qg
YWRvcHQgdGhlIG1lbW9yeSwgYW5kIGRvZXMgbm90CisgICAgICogICAgICAgICAgICAgZnJlZSBp
dCB3aGVuIGRvbmUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvcihjb25zdCBSQkJJRGF0YUhlYWRlciogZGF0YSwgZW51bSBFRG9udEFkb3B0IGRv
bnRBZG9wdCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFM
X0FQSSAqLworCisKKyAgICBmcmllbmQgY2xhc3MgUkJCSVJ1bGVCdWlsZGVyOworICAgIC8qKiBA
aW50ZXJuYWwgKi8KKyAgICBmcmllbmQgY2xhc3MgQnJlYWtJdGVyYXRvcjsKKworCisKK3B1Ymxp
YzoKKworICAgIC8qKiBEZWZhdWx0IGNvbnN0cnVjdG9yLiAgQ3JlYXRlcyBhbiBlbXB0eSBzaGVs
bCBvZiBhbiBpdGVyYXRvciwgd2l0aCBubworICAgICAqICBydWxlcyBvciB0ZXh0IHRvIGl0ZXJh
dGUgb3Zlci4gICBPYmplY3QgY2FuIHN1YnNlcXVlbnRseSBiZSBhc3NpZ25lZCB0by4KKyAgICAg
KiAgQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcigp
OworCisgICAgLyoqCisgICAgICogQ29weSBjb25zdHJ1Y3Rvci4gIFdpbGwgcHJvZHVjZSBhIGJy
ZWFrIGl0ZXJhdG9yIHdpdGggdGhlIHNhbWUgYmVoYXZpb3IsCisgICAgICogYW5kIHdoaWNoIGl0
ZXJhdGVzIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhlIG9uZSBwYXNzZWQgaW4uCisgICAgICog
QHBhcmFtIHRoYXQgVGhlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcGFzc2VkIHRvIGJlIGNvcGll
ZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRl
cmF0b3IoY29uc3QgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciYgdGhhdCk7CisKKyAgICAvKioKKyAg
ICAgKiBDb25zdHJ1Y3QgYSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGZyb20gYSBzZXQgb2YgcnVs
ZXMgc3VwcGxpZWQgYXMgYSBzdHJpbmcuCisgICAgICogQHBhcmFtIHJ1bGVzIFRoZSBicmVhayBy
dWxlcyB0byBiZSB1c2VkLgorICAgICAqIEBwYXJhbSBwYXJzZUVycm9yICBJbiB0aGUgZXZlbnQg
b2YgYSBzeW50YXggZXJyb3IgaW4gdGhlIHJ1bGVzLCBwcm92aWRlcyB0aGUgbG9jYXRpb24KKyAg
ICAgKiAgICAgICAgICAgICAgICAgICAgd2l0aGluIHRoZSBydWxlcyBvZiB0aGUgcHJvYmxlbS4K
KyAgICAgKiBAcGFyYW0gc3RhdHVzIEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVy
ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJ
dGVyYXRvciggY29uc3QgVW5pY29kZVN0cmluZyAgICAmcnVsZXMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFVQYXJzZUVycm9yICAgICAgICAgICAmcGFyc2VFcnJvciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAgICAgICAgICAgICZzdGF0dXMpOworCisg
ICAgLyoqCisgICAgICogQ29udHJ1Y3QgYSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGZyb20gYSBz
ZXQgb2YgcHJlY29tcGlsZWQgYmluYXJ5IHJ1bGVzLgorICAgICAqIEJpbmFyeSBydWxlcyBhcmUg
b2J0YWluZWQgZnJvbSBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvcjo6Z2V0QmluYXJ5UnVsZXMoKS4K
KyAgICAgKiBDb25zdHJ1Y3Rpb24gb2YgYSBicmVhayBpdGVyYXRvciBpbiB0aGlzIHdheSBpcyBz
dWJzdGFudGlhbGx5IGZhc3RlciB0aGFuCisgICAgICogY29uc3R1Y3Rpb24gZnJvbSBzb3VyY2Ug
cnVsZXMuCisgICAgICoKKyAgICAgKiBPd25lcnNoaXAgb2YgdGhlIHN0b3JhZ2UgY29udGFpbmlu
ZyB0aGUgY29tcGlsZWQgcnVsZXMgcmVtYWlucyB3aXRoIHRoZQorICAgICAqIGNhbGxlciBvZiB0
aGlzIGZ1bmN0aW9uLiAgVGhlIGNvbXBpbGVkIHJ1bGVzIG11c3Qgbm90IGJlICBtb2RpZmllZCBv
ciAKKyAgICAgKiBkZWxldGVkIGR1cmluZyB0aGUgbGlmZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3Iu
CisgICAgICoKKyAgICAgKiBUaGUgY29tcGlsZWQgcnVsZXMgYXJlIG5vdCBjb21wYXRpYmxlIGFj
cm9zcyBkaWZmZXJlbnQgbWFqb3IgdmVyc2lvbnMgb2YgSUNVLgorICAgICAqIFRoZSBjb21waWxl
ZCBydWxlcyBhcmUgY29tYXB0aWJsZSBvbmx5IGJldHdlZW4gbWFjaGluZXMgd2l0aCB0aGUgc2Ft
ZQorICAgICAqIGJ5dGUgb3JkZXJpbmcgKGxpdHRsZSBvciBiaWcgZW5kaWFuKSBhbmQgdGhlIHNh
bWUgYmFzZSBjaGFyYWN0ZXIgc2V0IGZhbWlseQorICAgICAqIChBU0NJSSBvciBFQkNESUMpLgor
ICAgICAqCisgICAgICogQHNlZSAjZ2V0QmluYXJ5UnVsZXMKKyAgICAgKiBAcGFyYW0gY29tcGls
ZWRSdWxlcyBBIHBvaW50ZXIgdG8gdGhlIGNvbXBpbGVkIGJyZWFrIHJ1bGVzIHRvIGJlIHVzZWQu
CisgICAgICogQHBhcmFtIHJ1bGVMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgY29tcGlsZWQgYnJl
YWsgcnVsZXMsIGluIGJ5dGVzLiAgVGhpcworICAgICAqICAgY29ycmVzcG9uZHMgdG8gdGhlIGxl
bmd0aCB2YWx1ZSBwcm9kdWNlZCBieSBnZXRCaW5hcnlSdWxlcygpLgorICAgICAqIEBwYXJhbSBz
dGF0dXMgSW5mb3JtYXRpb24gb24gYW55IGVycm9ycyBlbmNvdW50ZXJlZCwgaW5jbHVkaW5nIGlu
dmFsaWQKKyAgICAgKiAgIGJpbmFyeSBydWxlcy4KKyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAg
ICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGNvbnN0IHVpbnQ4X3QgKmNvbXBpbGVk
UnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICBydWxlTGVu
Z3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAgICAmc3RhdHVzKTsK
KworICAgIC8qKgorICAgICAqIFRoaXMgY29uc3RydWN0b3IgdXNlcyB0aGUgdWRhdGEgaW50ZXJm
YWNlIHRvIGNyZWF0ZSBhIEJyZWFrSXRlcmF0b3IKKyAgICAgKiB3aG9zZSBpbnRlcm5hbCB0YWJs
ZXMgbGl2ZSBpbiBhIG1lbW9yeS1tYXBwZWQgZmlsZS4gICJpbWFnZSIgaXMgYW4KKyAgICAgKiBJ
Q1UgVURhdGFNZW1vcnkgaGFuZGxlIGZvciB0aGUgcHJlLWNvbXBpbGVkIGJyZWFrIGl0ZXJhdG9y
IHRhYmxlcy4KKyAgICAgKiBAcGFyYW0gaW1hZ2UgaGFuZGxlIHRvIHRoZSBtZW1vcnkgaW1hZ2Ug
Zm9yIHRoZSBicmVhayBpdGVyYXRvciBkYXRhLgorICAgICAqICAgICAgICBPd25lcnNoaXAgb2Yg
dGhlIFVEYXRhTWVtb3J5IGhhbmRsZSBwYXNzZXMgdG8gdGhlIEJyZWFrIEl0ZXJhdG9yLAorICAg
ICAqICAgICAgICB3aGljaCB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBjbG9zaW5nIGl0IHdoZW4g
aXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIEluZm9ybWF0aW9u
IG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQuCisgICAgICogQHNlZSB1ZGF0YV9vcGVuCisgICAg
ICogQHNlZSAjZ2V0QmluYXJ5UnVsZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8K
KyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFVEYXRhTWVtb3J5KiBpbWFnZSwgVUVycm9yQ29k
ZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIERlc3RydWN0b3IKKyAgICAgKiAgQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+UnVsZUJhc2VkQnJlYWtJdGVyYXRvcigp
OworCisgICAgLyoqCisgICAgICogQXNzaWdubWVudCBvcGVyYXRvci4gIFNldHMgdGhpcyBpdGVy
YXRvciB0byBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLAorICAgICAqIGFuZCBpdGVyYXRlIG92ZXIg
dGhlIHNhbWUgdGV4dCwgYXMgdGhlIG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQg
VGhlIFJ1bGVCYXNlZEJyZWFrSXRlcnRvciBwYXNzZWQgaW4KKyAgICAgKiBAcmV0dXJuIHRoZSBu
ZXdseSBjcmVhdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciYgb3BlcmF0b3I9KGNvbnN0
IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIHRoYXQpOworCisgICAgLyoqCisgICAgICogRXF1YWxp
dHkgb3BlcmF0b3IuICBSZXR1cm5zIFRSVUUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2Yg
dGhlCisgICAgICogc2FtZSBjbGFzcywgaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwgYW5kIGl0ZXJh
dGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBCcmVha0l0ZXJh
dG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgICAqIEByZXR1cm4gVFJVRSBpZiBi
b3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBvZiB0aGUKKyAgICAgKiBzYW1lIGNsYXNzLCBoYXZlIHRo
ZSBzYW1lIGJlaGF2aW9yLCBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHRleHQuCisgICAgICog
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShj
b25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIE5vdC1l
cXVhbCBvcGVyYXRvci4gIElmIG9wZXJhdG9yPT0gcmV0dXJucyBUUlVFLCB0aGlzIHJldHVybnMg
RkFMU0UsCisgICAgICogYW5kIHZpY2UgdmVyc2EuCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEJy
ZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGluZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJu
IFRSVUUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBhcmUgbm90IHNhbWUuCisgICAgICogIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgQnJlYWtJdGVy
YXRvciYgdGhhdCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3bHktY29u
c3RydWN0ZWQgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3aXRoIHRoZSBzYW1lCisgICAgICogYmVo
YXZpb3IsIGFuZCBpdGVyYXRpbmcgb3ZlciB0aGUgc2FtZSB0ZXh0LCBhcyB0aGlzIG9uZS4KKyAg
ICAgKiBEaWZmZXJzIGZyb20gdGhlIGNvcHkgY29uc3RydWN0b3IgaW4gdGhhdCBpdCBpcyBwb2x5
bW9ycGhpYywgYW5kCisgICAgICogd2lsbCBjb3JyZWN0bHkgY2xvbmUgKGNvcHkpIGEgZGVyaXZl
ZCBjbGFzcy4KKyAgICAgKiBjbG9uZSgpIGlzIHRocmVhZCBzYWZlLiAgTXVsdGlwbGUgdGhyZWFk
cyBtYXkgc2ltdWx0YWVuZW91c2x5CisgICAgICogY2xvbmUgdGhlIHNhbWUgc291cmNlIGJyZWFr
IGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRC
cmVha0l0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBCcmVha0l0ZXJhdG9yKiBjbG9uZSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogQ29tcHV0
ZSBhIGhhc2ggY29kZSBmb3IgdGhpcyBCcmVha0l0ZXJhdG9yCisgICAgICogQHJldHVybiBBIGhh
c2ggY29kZQorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGlu
dDMyX3QgaGFzaENvZGUodm9pZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRo
ZSBkZXNjcmlwdGlvbiB1c2VkIHRvIGNyZWF0ZSB0aGlzIGl0ZXJhdG9yCisgICAgICogQHJldHVy
biB0aGUgZGVzY3JpcHRpb24gdXNlZCB0byBjcmVhdGUgdGhpcyBpdGVyYXRvcgorICAgICAqICBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGNvbnN0IFVuaWNvZGVTdHJpbmcm
IGdldFJ1bGVzKHZvaWQpIGNvbnN0OworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEJy
ZWFrSXRlcmF0b3Igb3ZlcnJpZGVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisg
ICAgICogPHA+CisgICAgICogUmV0dXJuIGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4
dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBUaGUgcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9y
IGlzIG93bmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvciwgYW5kIG11c3QKKyAgICAgKiBub3QgYmUg
ZGVsZXRlZCBieSB0aGUgY2FsbGVyLiAgUmVwZWF0ZWQgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBt
YXkKKyAgICAgKiByZXR1cm4gdGhlIHNhbWUgQ2hhcmFjdGVySXRlcmF0b3IuCisgICAgICogPC9w
PgorICAgICAqIDxwPgorICAgICAqIFRoZSByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0b3IgbXVz
dCBub3QgYmUgdXNlZCBjb25jdXJyZW50bHkgd2l0aAorICAgICAqIHRoZSBicmVhayBpdGVyYXRv
ci4gIElmIGNvbmN1cnJlbnQgb3BlcmF0aW9uIGlzIG5lZWRlZCwgY2xvbmUgdGhlCisgICAgICog
cmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIGZpcnN0IGFuZCBvcGVyYXRlIG9uIHRoZSBjbG9u
ZS4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogV2hlbiB0aGUgYnJlYWsgaXRlcmF0
b3IgaXMgb3BlcmF0aW5nIG9uIHRleHQgc3VwcGxpZWQgdmlhIGEgVVRleHQsCisgICAgICogdGhp
cyBmdW5jdGlvbiB3aWxsIGZhaWwuICBMYWNraW5nIGFueSB3YXkgdG8gc2lnbmFsIGZhaWx1cmVz
LCBpdAorICAgICAqIHJldHVybnMgYW4gQ2hhcmFjdGVySXRlcmF0b3IgY29udGFpbmluZyBubyB0
ZXh0LgorICAgICAqIFRoZSBmdW5jdGlvbiBnZXRVVGV4dCgpIHByb3ZpZGVzIHNpbWlsYXIgZnVu
Y3Rpb25hbGl0eSwKKyAgICAgKiBpcyByZWxpYWJsZSwgYW5kIGlzIG1vcmUgZWZmaWNpZW50Lgor
ICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIFRPRE86ICBkZXByZWNhdGUgdGhpcyBmdW5jdGlv
bj8KKyAgICAgKgorICAgICAqIEByZXR1cm4gQW4gaXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWlu
ZyBhbmFseXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
ICBDaGFyYWN0ZXJJdGVyYXRvciYgZ2V0VGV4dCh2b2lkKSBjb25zdDsKKworCisgICAgLyoqCisg
ICAgICAqICBHZXQgYSBVVGV4dCBmb3IgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICAq
ICBUaGUgcmV0dXJuZWQgVVRleHQgaXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBVVGV4dCB1c2Vk
IGludGVybmFsbHkKKyAgICAgICogIGJ5IHRoZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlv
bi4gIEl0IGNhbiBzYWZlbHkgYmUgdXNlZCB0bworICAgICAgKiAgYWNjZXNzIHRoZSB0ZXh0IHdp
dGhvdXQgaW1wYWN0aW5nIGFueSBicmVhayBpdGVyYXRvciBvcGVyYXRpb25zLAorICAgICAgKiAg
YnV0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmIG11c3Qgbm90IGJlIGFsdGVyZWQuCisgICAg
ICAqCisgICAgICAqIEBwYXJhbSBmaWxsSW4gQSBVVGV4dCB0byBiZSBmaWxsZWQgaW4uICBJZiBO
VUxMLCBhIG5ldyBVVGV4dCB3aWxsIGJlCisgICAgICAqICAgICAgICAgICBhbGxvY2F0ZWQgdG8g
aG9sZCB0aGUgcmVzdWx0LgorICAgICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFueSBlcnJv
ciBjb2Rlcy4KKyAgICAgICogQHJldHVybiAgIFRoZSBjdXJyZW50IFVUZXh0IGZvciB0aGlzIGJy
ZWFrIGl0ZXJhdG9yLiAgSWYgYW4gaW5wdXQKKyAgICAgICogICAgICAgICAgIFVUZXh0IHdhcyBw
cm92aWRlZCwgaXQgd2lsbCBhbHdheXMgYmUgcmV0dXJuZWQuCisgICAgICAqIEBzdGFibGUgSUNV
IDMuNAorICAgICAgKi8KKyAgICAgdmlydHVhbCBVVGV4dCAqZ2V0VVRleHQoVVRleHQgKmZpbGxJ
biwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUg
aXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhpcyBmdW5jdGlvbiBy
ZXNldHMKKyAgICAgKiB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lu
bmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBBbiBpdGVyYXRvciBvdmVy
IHRoZSB0ZXh0IHRvIGFuYWx5emUuICBUaGUgQnJlYWtJdGVyYXRvcgorICAgICAqIHRha2VzIG93
bmVyc2hpcCBvZiB0aGUgY2hhcmFjdGVyIGl0ZXJhdG9yLiAgVGhlIGNhbGxlciBNVVNUIE5PVCBk
ZWxldGUgaXQhCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
dm9pZCBhZG9wdFRleHQoQ2hhcmFjdGVySXRlcmF0b3IqIG5ld1RleHQpOworCisgICAgLyoqCisg
ICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBU
aGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlv
biB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IFRo
ZSB0ZXh0IHRvIGFuYWx5emUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgdm9pZCBzZXRUZXh0KGNvbnN0IFVuaWNvZGVTdHJpbmcmIG5ld1RleHQpOworCisg
ICAgLyoqCisgICAgICogUmVzZXQgdGhlIGJyZWFrIGl0ZXJhdG9yIHRvIG9wZXJhdGUgb3ZlciB0
aGUgdGV4dCByZXByZXNlbnRlZCBieQorICAgICAqIHRoZSBVVGV4dC4gIFRoZSBpdGVyYXRvciBw
b3NpdGlvbiBpcyByZXNldCB0byB0aGUgc3RhcnQuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0
aW9uIG1ha2VzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgc3VwcGxpZWQgVVRleHQuICBUaGlzIG1l
YW5zCisgICAgICogdGhhdCB0aGUgY2FsbGVyIGlzIGZyZWUgdG8gaW1tZWRpYXRlbHkgY2xvc2Ug
b3Igb3RoZXJ3aXNlIHJldXNlIHRoZQorICAgICAqIFV0ZXh0IHRoYXQgd2FzIHBhc3NlZCBhcyBh
IHBhcmFtZXRlciwgYnV0IHRoYXQgdGhlIHVuZGVybHlpbmcgdGV4dCBpdHNlbGYKKyAgICAgKiBt
dXN0IG5vdCBiZSBhbHRlcmVkIHdoaWxlIGJlaW5nIHJlZmVyZW5jZWQgYnkgdGhlIGJyZWFrIGl0
ZXJhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgICAgVGhlIFVUZXh0IHVzZWQgdG8g
Y2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBzdGF0dXMgIFJlY2VpdmVzIGFueSBlcnJv
ciBjb2Rlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZv
aWQgIHNldFRleHQoVVRleHQgKnRleHQsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioK
KyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5u
aW5nIG9mIHRoZSB0ZXh0LCBwb3NpdGlvbiB6ZXJvLgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNl
dCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCB6ZXJvLgorICAgICAqICBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZmlyc3Qodm9pZCk7CisKKyAgICAv
KioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgZW5k
IG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gVGhlIHRleHQncyBwYXN0LXRoZS1lbmQgb2Zm
c2V0LgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMy
X3QgbGFzdCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBl
aXRoZXIgZm9yd2FyZCBvciBiYWNrd2FyZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBzdGVwcy4K
KyAgICAgKiBOZWdhdGl2ZSB2YWx1ZXMgbW92ZSBiYWNrd2FyZCwgYW5kIHBvc2l0aXZlIHZhbHVl
cyBtb3ZlIGZvcndhcmQuICBUaGlzIGlzCisgICAgICogZXF1aXZhbGVudCB0byByZXBlYXRlZGx5
IGNhbGxpbmcgbmV4dCgpIG9yIHByZXZpb3VzKCkuCisgICAgICogQHBhcmFtIG4gVGhlIG51bWJl
ciBvZiBzdGVwcyB0byBtb3ZlLiAgVGhlIHNpZ24gaW5kaWNhdGVzIHRoZSBkaXJlY3Rpb24KKyAg
ICAgKiAobmVnYXRpdmUgaXMgYmFja3dhcmRzLCBhbmQgcG9zaXRpdmUgaXMgZm9yd2FyZHMpLgor
ICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBvZmZzZXQgb2YgdGhlIGJvdW5kYXJ5IHBvc2l0
aW9uIG4gYm91bmRhcmllcyBhd2F5IGZyb20KKyAgICAgKiB0aGUgY3VycmVudCBvbmUuCisgICAg
ICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KGlu
dDMyX3Qgbik7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgdG8gdGhl
IG5leHQgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2Yg
dGhlIGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRoaXMgb25lLgorICAgICAqICBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dCh2b2lkKTsKKworICAgIC8qKgor
ICAgICAqIE1vdmVzIHRoZSBpdGVyYXRvciBiYWNrd2FyZHMsIHRvIHRoZSBsYXN0IGJvdW5kYXJ5
IHByZWNlZGluZyB0aGlzIG9uZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUg
bGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICogIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmV2aW91cyh2b2lkKTsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJz
dCBib3VuZGFyeSBwb3NpdGlvbiBmb2xsb3dpbmcKKyAgICAgKiB0aGUgc3BlY2lmaWVkIHBvc2l0
aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIGZyb20gd2hpY2ggdG8gYmVn
aW4gc2VhcmNoaW5nIGZvciBhIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIHBv
c2l0aW9uIG9mIHRoZSBmaXJzdCBicmVhayBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAg
ICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGZvbGxv
d2luZyhpbnQzMl90IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRv
ciB0byByZWZlciB0byB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBiZWZvcmUgdGhlCisgICAg
ICogc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9u
IHRvIGJlZ2luIHNlYXJjaGluZyBmb3IgYSBicmVhayBmcm9tLgorICAgICAqIEByZXR1cm4gVGhl
IHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3RhcnRpbmcgcG9zaXRp
b24uCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJf
dCBwcmVjZWRpbmcoaW50MzJfdCBvZmZzZXQpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0
cnVlIGlmIHRoZSBzcGVjZmllZCBwb3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLiAgQXMg
YSBzaWRlCisgICAgICogZWZmZWN0LCBsZWF2ZXMgdGhlIGl0ZXJhdG9yIHBvaW50aW5nIHRvIHRo
ZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBhdAorICAgICAqIG9yIGFmdGVyICJvZmZzZXQiLgor
ICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJu
IFRydWUgaWYgIm9mZnNldCIgaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBpc0JvdW5kYXJ5KGludDMyX3Qg
b2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgaXRlcmF0aW9u
IHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9u
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBj
dXJyZW50KHZvaWQpIGNvbnN0OworCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHN0YXR1
cyB0YWcgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50
bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4gIEZvciBicmVhayBydWxlcyB0aGF0
IGRvIG5vdCBzcGVjaWZ5IGEKKyAgICAgKiBzdGF0dXMsIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlz
IHJldHVybmVkLiAgSWYgbW9yZSB0aGFuIG9uZSBicmVhayBydWxlCisgICAgICogd291bGQgY2F1
c2UgYSBib3VuZGFyeSB0byBiZSBsb2NhdGVkIGF0IHNvbWUgcG9zaXRpb24gaW4gdGhlIHRleHQs
CisgICAgICogdGhlIG51bWVyaWNhbGx5IGxhcmdlc3Qgb2YgdGhlIGFwcGxpY2FibGUgc3RhdHVz
IHZhbHVlcyBpcyByZXR1cm5lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBPZiB0aGUgc3RhbmRhcmQg
dHlwZXMgb2YgSUNVIGJyZWFrIGl0ZXJhdG9ycywgb25seSB3b3JkIGJyZWFrIGFuZAorICAgICAq
IGxpbmUgYnJlYWsgcHJvdmlkZSBzdGF0dXMgdmFsdWVzLiAgVGhlIHZhbHVlcyBhcmUgZGVmaW5l
ZCBpbgorICAgICAqIHRoZSBoZWFkZXIgZmlsZSB1YnJrLmguICBGb3IgV29yZCBicmVha3MsIHRo
ZSBzdGF0dXMgYWxsb3dzIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4gd29yZHMKKyAgICAgKiB0aGF0
IGNvbnRhaW4gYWxwaGFiZXRpYyBsZXR0ZXJzLCAid29yZHMiIHRoYXQgYXBwZWFyIHRvIGJlIG51
bWJlcnMsCisgICAgICogcHVuY3R1YXRpb24gYW5kIHNwYWNlcywgd29yZHMgY29udGFpbmluZyBp
ZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzLCBhbmQKKyAgICAgKiBtb3JlLiAgRm9yIExpbmUgQnJlYWss
IHRoZSBzdGF0dXMgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIGhhcmQgKG1hbmRhdG9yeSkgYnJlYWtz
CisgICAgICogYW5kIHNvZnQgKHBvdGVudGlhbCkgYnJlYWsgcG9zaXRpb25zLgorICAgICAqIDxw
PgorICAgICAqIDxjb2RlPmdldFJ1bGVTdGF0dXMoKTwvY29kZT4gY2FuIGJlIGNhbGxlZCBhZnRl
ciBvYnRhaW5pbmcgYSBib3VuZGFyeQorICAgICAqIHBvc2l0aW9uIGZyb20gPGNvZGU+bmV4dCgp
PC9jb2RlPiwgPGNvZGU+cHJldmlvdXMoKTwvY29kZT4sIG9yCisgICAgICogYW55IG90aGVyIGJy
ZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyB0aGF0IHJldHVybnMgYSBib3VuZGFyeSBwb3NpdGlvbi4K
KyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIGNyZWF0aW5nIGN1c3RvbSBicmVhayBydWxlcywgb25l
IGlzIGZyZWUgdG8gZGVmaW5lIHdoYXRldmVyCisgICAgICogc3RhdHVzIHZhbHVlcyBtYXkgYmUg
Y29udmVuaWVudCBmb3IgdGhlIGFwcGxpY2F0aW9uLgorICAgICAqIDxwPgorICAgICAqIE5vdGU6
IHRoaXMgZnVuY3Rpb24gaXMgbm90IHRocmVhZCBzYWZlLiAgSXQgc2hvdWxkIG5vdCBoYXZlIGJl
ZW4KKyAgICAgKiAgICAgICBkZWNsYXJlZCBjb25zdCwgYW5kIHRoZSBjb25zdCByZW1haW5zIG9u
bHkgZm9yIGNvbXBhdGliaWxpdHkKKyAgICAgKiAgICAgICByZWFzb25zLiAgKFRoZSBmdW5jdGlv
biBpcyBsb2dpY2FsbHkgY29uc3QsIGJ1dCBub3QgYml0LXdpc2UgY29uc3QpLgorICAgICAqIDxw
PgorICAgICAqIEByZXR1cm4gdGhlIHN0YXR1cyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0
ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9u
LgorICAgICAqCisgICAgICogQHNlZSBVV29yZEJyZWFrCisgICAgICogQHN0YWJsZSBJQ1UgMi4y
CisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXMoKSBjb25zdDsKKwor
ICAgLyoqCisgICAgKiBHZXQgdGhlIHN0YXR1cyAodGFnKSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsg
cnVsZShzKSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QKKyAgICAqIHJlY2VudGx5IHJldHVybmVk
IGJyZWFrIHBvc2l0aW9uLgorICAgICogPHA+CisgICAgKiBUaGUgcmV0dXJuZWQgc3RhdHVzIHZh
bHVlKHMpIGFyZSBzdG9yZWQgaW50byBhbiBhcnJheSBwcm92aWRlZCBieSB0aGUgY2FsbGVyLgor
ICAgICogVGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHNvcnRlZCAoYXNjZW5kaW5nKSBvcmRlci4K
KyAgICAqIElmIHRoZSBjYXBhY2l0eSBvZiB0aGUgb3V0cHV0IGFycmF5IGlzIGluc3VmZmljaWVu
dCB0byBob2xkIHRoZSBkYXRhLAorICAgICogIHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQg
dG8gdGhlIGF2YWlsYWJsZSBsZW5ndGgsIGFuZCBhCisgICAgKiAgVV9CVUZGRVJfT1ZFUkZMT1df
RVJST1Igd2lsbCBiZSBzaWduYWxlZC4KKyAgICAqCisgICAgKiBAcGFyYW0gZmlsbEluVmVjIGFu
IGFycmF5IHRvIGJlIGZpbGxlZCBpbiB3aXRoIHRoZSBzdGF0dXMgdmFsdWVzLgorICAgICogQHBh
cmFtIGNhcGFjaXR5ICB0aGUgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0
aCBvZiB6ZXJvIGNhdXNlcworICAgICogICAgICAgICAgICAgICAgICB0aGUgZnVuY3Rpb24gdG8g
cmV0dXJuIHRoZSBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcywgaW4gdGhlCisgICAgKiAgICAgICAg
ICAgICAgICAgIG5vcm1hbCB3YXksIHdpdGhvdXQgYXR0ZW10cGluZyB0byBzdG9yZSBhbnkgdmFs
dWVzLgorICAgICogQHBhcmFtIHN0YXR1cyAgICByZWNlaXZlcyBlcnJvciBjb2Rlcy4KKyAgICAq
IEByZXR1cm4gICAgICAgICAgVGhlIG51bWJlciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBy
dWxlcyB0aGF0IGRldGVybWluZWQKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVj
ZW50IGJvdW5kYXJ5IHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAqICAgICAg
ICAgICAgICAgICAgSW4gdGhlIGV2ZW50IG9mIGEgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRo
ZSByZXR1cm4gdmFsdWUKKyAgICAqICAgICAgICAgICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJl
ciBvZiBzdGF0dXMgdmFsdWVzIHRoYXQgd2VyZSBhdmFpbGFibGUsCisgICAgKiAgICAgICAgICAg
ICAgICAgIG5vdCB0aGUgcmVkdWNlZCBudW1iZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVk
LgorICAgICogQHNlZSBnZXRSdWxlU3RhdHVzCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAq
LworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3RhdHVzVmVjKGludDMyX3QgKmZpbGxJblZl
YywgaW50MzJfdCBjYXBhY2l0eSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAg
ICAqIFJldHVybnMgYSB1bmlxdWUgY2xhc3MgSUQgUE9MWU1PUlBISUNBTExZLiAgUHVyZSB2aXJ0
dWFsIG92ZXJyaWRlLgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRvIGltcGxlbWVudCBhIHNpbXBs
ZSB2ZXJzaW9uIG9mIFJUVEksIHNpbmNlIG5vdCBhbGwKKyAgICAgKiBDKysgY29tcGlsZXJzIHN1
cHBvcnQgZ2VudWluZSBSVFRJLiAgUG9seW1vcnBoaWMgb3BlcmF0b3I9PSgpIGFuZAorICAgICAq
IGNsb25lKCkgbWV0aG9kcyBjYWxsIHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICogQHJldHVy
biAgICAgICAgICBUaGUgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0LiBBbGwgb2JqZWN0cyBvZiBh
CisgICAgICogICAgICAgICAgICAgICAgICBnaXZlbiBjbGFzcyBoYXZlIHRoZSBzYW1lIGNsYXNz
IElELiAgT2JqZWN0cyBvZgorICAgICAqICAgICAgICAgICAgICAgICAgb3RoZXIgY2xhc3NlcyBo
YXZlIGRpZmZlcmVudCBjbGFzcyBJRHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKwor
ICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzLiAgVGhp
cyBpcyB1c2VmdWwgb25seSBmb3IKKyAgICAgKiBjb21wYXJpbmcgdG8gYSByZXR1cm4gdmFsdWUg
ZnJvbSBnZXREeW5hbWljQ2xhc3NJRCgpLiAgRm9yIGV4YW1wbGU6CisgICAgICoKKyAgICAgKiAg
ICAgIEJhc2UqIHBvbHltb3JwaGljX3BvaW50ZXIgPSBjcmVhdGVQb2x5bW9ycGhpY09iamVjdCgp
OworICAgICAqICAgICAgaWYgKHBvbHltb3JwaGljX3BvaW50ZXItPmdldER5bmFtaWNDbGFzc0lE
KCkgPT0KKyAgICAgKiAgICAgICAgICBEZXJpdmVkOjpnZXRTdGF0aWNDbGFzc0lEKCkpIC4uLgor
ICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICBUaGUgY2xhc3MgSUQgZm9yIGFsbCBvYmpl
Y3RzIG9mIHRoaXMgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
c3RhdGljIFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKHZvaWQpOworCisgICAg
LyoqCisgICAgICogRGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5LiBVc2UgY2xvbmUoKSBpbnN0ZWFk
LgorICAgICAqCisgICAgICogQ3JlYXRlIGEgY2xvbmUgKGNvcHkpIG9mIHRoaXMgYnJlYWsgaXRl
cmF0b3IgaW4gbWVtb3J5IHByb3ZpZGVkCisgICAgICogIGJ5IHRoZSBjYWxsZXIuICBUaGUgaWRl
YSBpcyB0byBpbmNyZWFzZSBwZXJmb3JtYW5jZSBieSBhdm9pZGluZworICAgICAqICBhIHN0b3Jh
Z2UgYWxsb2NhdGlvbi4gIFVzZSBvZiB0aGlzIGZ1bmN0b2luIGlzIE5PVCBSRUNPTU1FTkRFRC4K
KyAgICAgKiAgUGVyZm9ybWFuY2UgZ2FpbnMgYXJlIG1pbmltYWwsIGFuZCBjb3JyZWN0IGJ1ZmZl
ciBtYW5hZ2VtZW50IGlzCisgICAgICogIHRyaWNreS4gIFVzZSBjbG9uZSgpIGluc3RlYWQuCisg
ICAgICoKKyAgICAgKiBAcGFyYW0gc3RhY2tCdWZmZXIgIFRoZSBwb2ludGVyIHRvIHRoZSBtZW1v
cnkgaW50byB3aGljaCB0aGUgY2xvbmVkIG9iamVjdAorICAgICAqICAgICAgICAgICAgICAgICAg
ICAgc2hvdWxkIGJlIHBsYWNlZC4gIElmIE5VTEwsICBhbGxvY2F0ZSBoZWFwIG1lbW9yeQorICAg
ICAqICAgICAgICAgICAgICAgICAgICAgZm9yIHRoZSBjbG9uZWQgb2JqZWN0LgorICAgICAqIEBw
YXJhbSBCdWZmZXJTaXplICAgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlci4gIElmIHplcm8sIHJldHVy
biB0aGUgcmVxdWlyZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciBzaXplLCBi
dXQgZG8gbm90IGNsb25lIHRoZSBvYmplY3QuICBJZiB0aGUKKyAgICAgKiAgICAgICAgICAgICAg
ICAgICAgIHNpemUgd2FzIHRvbyBzbWFsbCAoYnV0IG5vdCB6ZXJvKSwgYWxsb2NhdGUgaGVhcAor
ICAgICAqICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZSBmb3IgdGhlIGNsb25lZCBvYmplY3Qu
CisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzICAgICAgIEVycm9yIHN0YXR1cy4gIFVfU0FG
RUNMT05FX0FMTE9DQVRFRF9XQVJOSU5HIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybmVkIGlmIHRoZSB0aGUgcHJvdmlkZWQgYnVmZmVyIHdhcyB0b28gc21hbGwsIGFu
ZAorICAgICAqICAgICAgICAgICAgICAgICAgICAgdGhlIGNsb25lIHdhcyB0aGVyZWZvcmUgcHV0
IG9uIHRoZSBoZWFwLgorICAgICAqCisgICAgICogQHJldHVybiAgUG9pbnRlciB0byB0aGUgY2xv
bmUgb2JqZWN0LiAgVGhpcyBtYXkgZGlmZmVyIGZyb20gdGhlIHN0YWNrQnVmZmVyCisgICAgICog
ICAgICAgICAgYWRkcmVzcyBpZiB0aGUgYnl0ZSBhbGlnbm1lbnQgb2YgdGhlIHN0YWNrIGJ1ZmZl
ciB3YXMgbm90IHN1aXRhYmxlCisgICAgICogICAgICAgICAgb3IgaWYgdGhlIHN0YWNrQnVmZmVy
IHdhcyB0b28gc21hbGwgdG8gaG9sZCB0aGUgY2xvbmUuCisgICAgICogQGRlcHJlY2F0ZWQgSUNV
IDUyLiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVy
YXRvciAqICBjcmVhdGVCdWZmZXJDbG9uZSh2b2lkICpzdGFja0J1ZmZlciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCAmQnVmZmVyU2l6ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29k
ZSAmc3RhdHVzKTsKKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBiaW5hcnkgZm9ybSBv
ZiBjb21waWxlZCBicmVhayBydWxlcywKKyAgICAgKiB3aGljaCBjYW4gdGhlbiBiZSB1c2VkIHRv
IGNyZWF0ZSBhIG5ldyBicmVhayBpdGVyYXRvciBhdCBzb21lCisgICAgICogdGltZSBpbiB0aGUg
ZnV0dXJlLiAgQ3JlYXRpbmcgYSBicmVhayBpdGVyYXRvciBmcm9tIHByZS1jb21waWxlZCBydWxl
cworICAgICAqIGlzIG11Y2ggZmFzdGVyIHRoYW4gYnVpbGRpbmcgb25lIGZyb20gdGhlIHNvdXJj
ZSBmb3JtIG9mIHRoZQorICAgICAqIGJyZWFrIHJ1bGVzLgorICAgICAqCisgICAgICogVGhlIGJp
bmFyeSBkYXRhIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCB0aGUgc2FtZSB2ZXJzaW9uIG9mIElDVQor
ICAgICAqICBhbmQgb24gdGhlIHNhbWUgcGxhdGZvcm0gdHlwZSAocHJvY2Vzc29yIGVuZGlhbi1u
ZXNzKQorICAgICAqCisgICAgICogQHBhcmFtIGxlbmd0aCBSZXR1cm5zIHRoZSBsZW5ndGggb2Yg
dGhlIGJpbmFyeSBkYXRhLiAgKE91dCBwYXJhbXRlci4pCisgICAgICoKKyAgICAgKiBAcmV0dXJu
ICAgQSBwb2ludGVyIHRvIHRoZSBiaW5hcnkgKGNvbXBpbGVkKSBydWxlIGRhdGEuICBUaGUgc3Rv
cmFnZQorICAgICAqICAgICAgICAgICBiZWxvbmdzIHRvIHRoZSBSdWxlc0Jhc2VkQnJlYWtJdGVy
YXRvciBvYmplY3QsIG5vdCB0aGUKKyAgICAgKiAgICAgICAgICAgY2FsbGVyLCBhbmQgbXVzdCBu
b3QgYmUgbW9kaWZpZWQgb3IgZGVsZXRlZC4KKyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIGNvbnN0IHVpbnQ4X3QgKmdldEJpbmFyeVJ1bGVzKHVpbnQzMl90ICZs
ZW5ndGgpOworCisgICAgLyoqCisgICAgICogIFNldCB0aGUgc3ViamVjdCB0ZXh0IHN0cmluZyB1
cG9uIHdoaWNoIHRoZSBicmVhayBpdGVyYXRvciBpcyBvcGVyYXRpbmcKKyAgICAgKiAgd2l0aG91
dCBjaGFuZ2luZyBhbnkgb3RoZXIgYXNwZWN0IG9mIHRoZSBtYXRjaGluZyBzdGF0ZS4KKyAgICAg
KiAgVGhlIG5ldyBhbmQgcHJldmlvdXMgdGV4dCBzdHJpbmdzIG11c3QgaGF2ZSB0aGUgc2FtZSBj
b250ZW50LgorICAgICAqCisgICAgICogIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVz
ZSBpbiBlbnZpcm9ubWVudHMgd2hlcmUgSUNVIGlzIG9wZXJhdGluZyBvbgorICAgICAqICBzdHJp
bmdzIHRoYXQgbWF5IG1vdmUgYXJvdW5kIGluIG1lbW9yeS4gIEl0IHByb3ZpZGVzIGEgbWVjaGFu
aXNtIGZvciBub3RpZnlpbmcKKyAgICAgKiAgSUNVIHRoYXQgdGhlIHN0cmluZyBoYXMgYmVlbiBy
ZWxvY2F0ZWQsIGFuZCBwcm92aWRpbmcgYSBuZXcgVVRleHQgdG8gYWNjZXNzIHRoZQorICAgICAq
ICBzdHJpbmcgaW4gaXRzIG5ldyBwb3NpdGlvbi4KKyAgICAgKgorICAgICAqICBOb3RlIHRoYXQg
dGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uIG5ldmVyIGNvcGllcyB0aGUgdW5kZXJs
eWluZyB0ZXh0CisgICAgICogIG9mIGEgc3RyaW5nIGJlaW5nIHByb2Nlc3NlZCwgYnV0IGFsd2F5
cyBvcGVyYXRlcyBkaXJlY3RseSBvbiB0aGUgb3JpZ2luYWwgdGV4dAorICAgICAqICBwcm92aWRl
ZCBieSB0aGUgdXNlci4gUmVmcmVzaGluZyBzaW1wbHkgZHJvcHMgdGhlIHJlZmVyZW5jZXMgdG8g
dGhlIG9sZCB0ZXh0CisgICAgICogIGFuZCByZXBsYWNlcyB0aGVtIHdpdGggcmVmZXJlbmNlcyB0
byB0aGUgbmV3LgorICAgICAqCisgICAgICogIENhdXRpb246ICB0aGlzIGZ1bmN0aW9uIGlzIG5v
cm1hbGx5IHVzZWQgb25seSBieSB2ZXJ5IHNwZWNpYWxpemVkLAorICAgICAqICBzeXN0ZW0tbGV2
ZWwgY29kZS4gIE9uZSBleGFtcGxlIHVzZSBjYXNlIGlzIHdpdGggZ2FyYmFnZSBjb2xsZWN0aW9u
IHRoYXQgbW92ZXMKKyAgICAgKiAgdGhlIHRleHQgaW4gbWVtb3J5LgorICAgICAqCisgICAgICog
QHBhcmFtIGlucHV0ICAgICAgVGhlIG5ldyAobW92ZWQpIHRleHQgc3RyaW5nLgorICAgICAqIEBw
YXJhbSBzdGF0dXMgICAgIFJlY2VpdmVzIGVycm9ycyBkZXRlY3RlZCBieSB0aGlzIGZ1bmN0aW9u
LgorICAgICAqIEByZXR1cm4gICAgICAgICAgICp0aGlzCisgICAgICoKKyAgICAgKiBAc3RhYmxl
IElDVSA0OQorICAgICAqLworICAgIHZpcnR1YWwgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAmcmVm
cmVzaElucHV0VGV4dChVVGV4dCAqaW5wdXQsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKworcHJv
dGVjdGVkOgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBpbXBsZW1lbnRhdGlvbgorICAg
IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKyAgICAvKioKKyAgICAgKiBEdW1wcyBjYWNoZXMgYW5kIHBlcmZv
cm1zIG90aGVyIGFjdGlvbnMgYXNzb2NpYXRlZCB3aXRoIGEgY29tcGxldGUgY2hhbmdlCisgICAg
ICogaW4gdGV4dCBvciBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQGludGVybmFsCisgICAg
ICovCisgICAgdmlydHVhbCB2b2lkIHJlc2V0KHZvaWQpOworCisjaWYgMAorICAgIC8qKgorICAg
ICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2F0ZWdvcnkgbG9va3VwIGZvciB0aGlzIGNoYXIKKyAg
ICAgICogaW5kaWNhdGVzIHRoYXQgaXQgaXMgaW4gdGhlIHNldCBvZiBkaWN0aW9uYXJ5IGxvb2t1
cCBjaGFycy4KKyAgICAgICogVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGRp
Y3Rpb25hcnkgYmFzZWQgYnJlYWsgaXRlcmF0b3JzLgorICAgICAgKiBAcmV0dXJuIHRydWUgaWYg
dGhlIGNhdGVnb3J5IGxvb2t1cCBmb3IgdGhpcyBjaGFyCisgICAgICAqIGluZGljYXRlcyB0aGF0
IGl0IGlzIGluIHRoZSBzZXQgb2YgZGljdGlvbmFyeSBsb29rdXAgY2hhcnMuCisgICAgICAqIEBp
bnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIGlzRGljdGlvbmFyeUNoYXIoVUNo
YXIzMik7CisKKyAgICAvKioKKyAgICAgICogR2V0IHRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVy
YXRvci4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBn
ZXRCcmVha1R5cGUoKSBjb25zdDsKKyNlbmRpZgorCisgICAgLyoqCisgICAgICAqIFNldCB0aGUg
dHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0QnJlYWtUeXBlKGludDMyX3QgdHlwZSk7CisKKyNpZm5kZWYg
VV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAgKiBDb21tb24gaW5pdGlhbGl6YXRp
b24gZnVuY3Rpb24sIHVzZWQgYnkgY29uc3RydWN0b3JzIGFuZCBidWZmZXJDbG9uZS4KKyAgICAg
ICogQGludGVybmFsCisgICAgICAqLworICAgIHZvaWQgaW5pdCgpOworI2VuZGlmICAvKiBVX0hJ
REVfSU5URVJOQUxfQVBJICovCisKK3ByaXZhdGU6CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1l
dGhvZCBiYWNrcyB0aGUgaXRlcmF0b3IgYmFjayB1cCB0byBhICJzYWZlIHBvc2l0aW9uIiBpbiB0
aGUgdGV4dC4KKyAgICAgKiBUaGlzIGlzIGEgcG9zaXRpb24gdGhhdCB3ZSBrbm93LCB3aXRob3V0
IGFueSBjb250ZXh0LCBtdXN0IGJlIGEgYnJlYWsgcG9zaXRpb24uCisgICAgICogVGhlIHZhcmlv
dXMgY2FsbGluZyBtZXRob2RzIHRoZW4gaXRlcmF0ZSBmb3J3YXJkIGZyb20gdGhpcyBzYWZlIHBv
c2l0aW9uIHRvCisgICAgICogdGhlIGFwcHJvcHJpYXRlIHBvc2l0aW9uIHRvIHJldHVybi4gIChG
b3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkZXNjcmlwdGlvbgorICAgICAqIG9mIGJ1aWxk
QmFja3dhcmRzU3RhdGVUYWJsZSgpIGluIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuQnVpbGRlci4p
CisgICAgICogQHBhcmFtIHN0YXRldGFibGUgc3RhdGUgdGFibGUgdXNlZCBvZiBtb3ZpbmcgYmFj
a3dhcmRzCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCBoYW5kbGVQcmV2
aW91cyhjb25zdCBSQkJJU3RhdGVUYWJsZSAqc3RhdGV0YWJsZSk7CisKKyAgICAvKioKKyAgICAg
KiBUaGlzIG1ldGhvZCBpcyB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBuZXh0KCkg
bWV0aG9kLiAgQWxsIGl0ZXJhdGlvbgorICAgICAqIHZlY3RvcnMgdGhyb3VnaCBoZXJlLiAgVGhp
cyBtZXRob2QgaW5pdGlhbGl6ZXMgdGhlIHN0YXRlIG1hY2hpbmUgdG8gc3RhdGUgMQorICAgICAq
IGFuZCBhZHZhbmNlcyB0aHJvdWdoIHRoZSB0ZXh0IGNoYXJhY3RlciBieSBjaGFyYWN0ZXIgdW50
aWwgd2UgcmVhY2ggdGhlIGVuZAorICAgICAqIG9mIHRoZSB0ZXh0IG9yIHRoZSBzdGF0ZSBtYWNo
aW5lIHRyYW5zaXRpb25zIHRvIHN0YXRlIDAuICBXZSB1cGRhdGUgb3VyIHJldHVybgorICAgICAq
IHZhbHVlIGV2ZXJ5IHRpbWUgdGhlIHN0YXRlIG1hY2hpbmUgcGFzc2VzIHRocm91Z2ggYSBwb3Nz
aWJsZSBlbmQgc3RhdGUuCisgICAgICogQHBhcmFtIHN0YXRldGFibGUgc3RhdGUgdGFibGUgdXNl
ZCBvZiBtb3ZpbmcgZm9yd2FyZHMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQz
Ml90IGhhbmRsZU5leHQoY29uc3QgUkJCSVN0YXRlVGFibGUgKnN0YXRldGFibGUpOworCitwcm90
ZWN0ZWQ6CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAqIFRo
aXMgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgaW1wbGVtZW50cyBkaWN0aW9uYXJ5LWJh
c2VkCisgICAgICogYnJlYWtpbmcuICBDb3ZlcmluZyBhdCBsZWFzdCB0aGUgcmFuZ2UgZnJvbSBz
dGFydFBvcyB0byBlbmRQb3MsCisgICAgICogaXQgY2hlY2tzIGZvciBkaWN0aW9uYXJ5IGNoYXJh
Y3RlcnMsIGFuZCBpZiBpdCBmaW5kcyB0aGVtIGRldGVybWluZXMKKyAgICAgKiB0aGUgYXBwcm9w
cmlhdGUgb2JqZWN0IHRvIGRlYWwgd2l0aCB0aGVtLiBJdCBtYXkgY2FjaGUgZm91bmQgYnJlYWtz
IGluCisgICAgICogZkNhY2hlZEJyZWFrUG9zaXRpb25zIGFzIGl0IGdvZXMuIEl0IG1heSB3ZWxs
IGFsc28gbG9vayBhdCB0ZXh0IG91dHNpZGUKKyAgICAgKiB0aGUgcmFuZ2Ugc3RhcnRQb3MgdG8g
ZW5kUG9zLgorICAgICAqIElmIGdvaW5nIGZvcndhcmQsIGVuZFBvcyBpcyB0aGUgbm9ybWFsIFVu
aWNvZGUgYnJlYWsgcmVzdWx0LCBhbmQKKyAgICAgKiBpZiBnb2luZCBpbiByZXZlcnNlLCBzdGFy
dFBvcyBpcyB0aGUgbm9ybWFsIFVuaWNvZGUgYnJlYWsgcmVzdWx0CisgICAgICogQHBhcmFtIHN0
YXJ0UG9zICBUaGUgc3RhcnQgcG9zaXRpb24gb2YgYSByYW5nZSBvZiB0ZXh0CisgICAgICogQHBh
cmFtIGVuZFBvcyAgICBUaGUgZW5kIHBvc2l0aW9uIG9mIGEgcmFuZ2Ugb2YgdGV4dAorICAgICAq
IEBwYXJhbSByZXZlcnNlICAgVGhlIGNhbGwgaXMgZm9yIHRoZSByZXZlcnNlIGRpcmVjdGlvbgor
ICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgY2hlY2tEaWN0aW9uYXJ5KGlu
dDMyX3Qgc3RhcnRQb3MsIGludDMyX3QgZW5kUG9zLCBVQm9vbCByZXZlcnNlKTsKKyNlbmRpZiAg
LyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCitwcml2YXRlOgorCisgICAgLyoqCisgICAgICog
VGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBMYW5ndWFnZUJyZWFrRW5naW5l
IGZvciBhCisgICAgICogZ2l2ZW4gY2hhcmFjdGVyIGMuCisgICAgICogQHBhcmFtIGMgICAgICAg
ICBBIGNoYXJhY3RlciBpbiB0aGUgZGljdGlvbmFyeSBzZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAg
ICAgKi8KKyAgICBjb25zdCBMYW5ndWFnZUJyZWFrRW5naW5lICpnZXRMYW5ndWFnZUJyZWFrRW5n
aW5lKFVDaGFyMzIgYyk7CisKKyAgICAvKioKKyAgICAgKiAgQGludGVybmFsCisgICAgICovCisg
ICAgdm9pZCBtYWtlUnVsZVN0YXR1c1ZhbGlkKCk7CisKK307CisKKy8vLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisvLworLy8gICBJbmxpbmUgRnVuY3Rpb25zIERlZmluaXRpb25zIC4uLgorLy8KKy8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lubGluZSBVQm9vbCBSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yOjpvcGVyYXRvciE9KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHRoYXQpIGNvbnN0IHsKKyAgICBy
ZXR1cm4gIW9wZXJhdG9yPT0odGhhdCk7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYg
LyogI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiAqLworCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvc2Nocml0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGI1ZTIyNTAzY2ZmMjYxZDJjZDI0MGZmMTIw
MDdmOTM3Zjc4M2IyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9z
Y2hyaXRlci5oCkBAIC0wLDAgKzEsMTg3IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
CisqICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxlIHNjaHJpdGVyLmgKKyoKKyogTW9k
aWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3Jp
cHRpb24KKyogIDA1LzA1Lzk5ICAgICBzdGVwaGVuICAgICBDbGVhbmVkIHVwLgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCisqLworCisjaWZuZGVmIFNDSFJJVEVSX0gKKyNkZWZpbmUgU0NIUklURVJf
SAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2NoYXJp
dGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2hyaXRlci5oIgorCisvKioKKyAqIFxmaWxlIAor
ICogXGJyaWVmIEMrKyBBUEk6IFN0cmluZyBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAqLworIAorVV9O
QU1FU1BBQ0VfQkVHSU4KKy8qKgorICogQSBjb25jcmV0ZSBzdWJjbGFzcyBvZiBDaGFyYWN0ZXJJ
dGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgdGhlCisgKiBjaGFyYWN0ZXJzIChjb2RlIHVuaXRz
IG9yIGNvZGUgcG9pbnRzKSBpbiBhIFVuaWNvZGVTdHJpbmcuCisgKiBJdCdzIHBvc3NpYmxlIG5v
dCBvbmx5IHRvIGNyZWF0ZSBhbgorICogaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIGFuIGVu
dGlyZSBVbmljb2RlU3RyaW5nLCBidXQgYWxzbyB0bworICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJh
dGVzIG92ZXIgb25seSBhIHN1YnJhbmdlIG9mIGEgVW5pY29kZVN0cmluZworICogKGl0ZXJhdG9y
cyBvdmVyIGRpZmZlcmVudCBzdWJyYW5nZXMgb2YgdGhlIHNhbWUgVW5pY29kZVN0cmluZyBkb24n
dAorICogY29tcGFyZSBlcXVhbCkuCisgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc2Vl
IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNz
IFVfQ09NTU9OX0FQSSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBVQ2hhckNoYXJh
Y3Rlckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBv
dmVyIHRoZSBVbmljb2RlU3RyaW5nIHJlZmVycmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhl
IFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlzIGNvcGllZC4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5n
ZSBpcyB0aGUgd2hvbGUgc3RyaW5nLCBhbmQgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGlzIDAuCisg
ICAqIEBwYXJhbSB0ZXh0U3RyIFRoZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSBhbiBp
dGVyYXRvcgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0
ZXJhdG9yKGNvbnN0IFVuaWNvZGVTdHJpbmcmIHRleHRTdHIpOworCisgIC8qKgorICAgKiBDcmVh
dGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVW5pY29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4
dFN0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgdGhlIHdob2xlIHN0cmluZywgYW5k
IHRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInRleHRQb3MiLiAg
SWYgInRleHRQb3MiIGlzIG91dHNpZGUgdGhlIHZhbGlkCisgICAqIGl0ZXJhdGlvbiByYW5nZSwg
dGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFtIHRl
eHRTdHIgVGhlIHVuaWNvZGUgc3RyaW5nIHVzZWQgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yCisgICAq
IEBwYXJhbSB0ZXh0UG9zIFRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29u
c3QgVW5pY29kZVN0cmluZyYgICAgdGV4dFN0ciwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAg
ICAgICAgICAgdGV4dFBvcyk7CisKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVy
IHRoZSBVbmljb2RlU3RyaW5nIHJlZmVycmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVu
aWNvZGVTdHJpbmcgb2JqZWN0IGlzIGNvcGllZC4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBi
ZWdpbnMgd2l0aCB0aGUgY29kZSB1bml0IHNwZWNpZmllZCBieQorICAgKiAidGV4dEJlZ2luIiBh
bmQgZW5kcyB3aXRoIHRoZSBjb2RlIHVuaXQgQkVGT1JFIHRoZSBjb2RlIHVuaXQgc3BlY2ZpZWQK
KyAgICogYnkgInRleHRFbmQiLiAgVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBi
eSAidGV4dFBvcyIuICBJZgorICAgKiAidGV4dEJlZ2luIiBhbmQgInRleHRFbmQiIGRvbid0IGZv
cm0gYSB2YWxpZCByYW5nZSBvbiAidGV4dCIgKGkuZS4sCisgICAqIHRleHRCZWdpbiA+PSB0ZXh0
RW5kIG9yIGVpdGhlciBpcyBuZWdhdGl2ZSBvciBncmVhdGVyIHRoYW4gdGV4dC5zaXplKCkpLAor
ICAgKiBvciAidGV4dFBvcyIgaXMgb3V0c2lkZSB0aGUgcmFuZ2UgZGVmaW5lZCBieSAidGV4dEJl
Z2luIiBhbmQgInRleHRFbmQiLAorICAgKiB0aGUgYmVoYXZpb3Igb2YgdGhpcyBpdGVyYXRvciBp
cyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0U3RyICAgIFRoZSB1bmljb2RlIHN0cmluZyB1
c2VkIHRvIGNyZWF0ZSB0aGUgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IKKyAgICogQHBhcmFtIHRl
eHRCZWdpbiAgVGhlIGJlZ2luIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICog
QHBhcmFtIHRleHRFbmQgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdl
CisgICAqIEBwYXJhbSB0ZXh0UG9zICAgIFRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRl
cmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRl
cmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYgICAgdGV4dFN0ciwKKyAgICAgICAgICAgICAgaW50
MzJfdCAgICAgICAgICAgICAgdGV4dEJlZ2luLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAg
ICAgICAgICB0ZXh0RW5kLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0
UG9zKTsKKworICAvKioKKyAgICogQ29weSBjb25zdHJ1Y3Rvci4gIFRoZSBuZXcgaXRlcmF0b3Ig
aXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSByYW5nZQorICAgKiBvZiB0aGUgc2FtZSBzdHJpbmcgYXMg
InRoYXQiLCBhbmQgaXRzIGluaXRpYWwgcG9zaXRpb24gaXMgdGhlCisgICAqIHNhbWUgYXMgInRo
YXQiJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlu
ICJ0aGF0IiBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBTdHJpbmdDaGFyYWN0ZXJJ
dGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJp
bmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciYgIHRoYXQp
OworCisgIC8qKgorICAgKiBEZXN0cnVjdG9yLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIHZpcnR1YWwgflN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgLyoqCisgICAqIEFz
c2lnbm1lbnQgb3BlcmF0b3IuICAqdGhpcyBpcyBhbHRlcmVkIHRvIGl0ZXJhdGUgb3ZlciB0aGUg
c2FtZQorICAgKiByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgcmVmZXJz
IHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciB3aXRoaW4gdGhhdCBzdHJpbmcgYXMgInRoYXQi
IGRvZXMuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBvYmplY3QgdG8gYmUgY29waWVkLgorICAgKiBA
cmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciYKKyAgb3BlcmF0b3I9KGNvbnN0IFN0cmlu
Z0NoYXJhY3Rlckl0ZXJhdG9yJiAgICB0aGF0KTsKKworICAvKioKKyAgICogUmV0dXJucyB0cnVl
IGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQorICAg
KiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAg
ICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJl
ZCBmb3IgZXF1YWxpdHkKKyAgICogQHJldHVybiB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0
ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBv
aW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICB2aXJ0dWFsIFVCb29sICAgICAgICAgIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJh
Y3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKworICAvKioKKyAgICogUmV0dXJucyBhIG5ldyBT
dHJpbmdDaGFyYWN0ZXJJdGVyYXRvciByZWZlcnJpbmcgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFj
dGVyIGluIHRoZSBzYW1lIHJhbmdlIG9mIHRoZSBzYW1lIHN0cmluZyBhcyB0aGlzIG9uZS4gIFRo
ZQorICAgKiBjYWxsZXIgbXVzdCBkZWxldGUgdGhlIG5ldyBpdGVyYXRvci4KKyAgICogQHJldHVy
biB0aGUgbmV3bHkgY2xvbmVkIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdDsKKworICAvKioK
KyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJp
bmcuCisgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSBzdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3Zlcgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVbmljb2Rl
U3RyaW5nJiBuZXdUZXh0KTsKKworICAvKioKKyAgICogQ29waWVzIHRoZSBVbmljb2RlU3RyaW5n
IHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBVbmljb2RlU3RyaW5nCisgICAqIHJlZmVycmVkIHRv
IGJ5ICJyZXN1bHQiLiAgRXZlbiBpZiB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIGFjcm9zcworICAg
KiBvbmx5IGEgcGFydCBvZiB0aGlzIHN0cmluZywgdGhlIHdob2xlIHN0cmluZyBpcyBjb3BpZWQu
CisgICAqIEBwYXJhbSByZXN1bHQgUmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0
ZXJhdGlvbi4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIHZvaWQgICAg
ICAgICAgICBnZXRUZXh0KFVuaWNvZGVTdHJpbmcmIHJlc3VsdCk7CisKKyAgLyoqCisgICAqIFJl
dHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdCAobm90IHJlYWxseSBwdWJsaWMpCisgICAq
IEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCBVQ2xhc3NJRCAgICAgICAgIGdldER5bmFtaWNDbGFzc0lEKHZv
aWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFz
cyAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBj
bGFzcworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHN0YXRpYyBVQ2xhc3NJRCAgIFVf
RVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKHZvaWQpOworCitwcm90ZWN0ZWQ6CisgIC8qKgorICAg
KiBEZWZhdWx0IGNvbnN0cnVjdG9yLCBpdGVyYXRpb24gb3ZlciBlbXB0eSBzdHJpbmcuCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoKTsKKwor
ICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBwcm92aWRl
ZCBzdHJpbmcuCisgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSBzdHJpbmcgdG8gYmUgaXRlcmF0ZWQg
b3ZlcgorICAgKiBAcGFyYW0gbmV3VGV4dExlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBTdHJpbmcK
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVUNoYXIq
IG5ld1RleHQsIGludDMyX3QgbmV3VGV4dExlbmd0aCk7CisKKyAgLyoqCisgICAqIENvcHkgb2Yg
dGhlIGl0ZXJhdGVkIHN0cmluZyBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgVW5pY29kZVN0cmluZyAgICAgICAgICAgIHRleHQ7CisKK307CisKK1VfTkFNRVNQQUNFX0VO
RAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjYXNlbWFwLmgg
Yi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjYXNlbWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM3ZTE2NTg4
Njk3ZjFhOTMwMTkxZWUzZGY4MTZjNjNiN2JkMzhjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvdWNhc2VtYXAuaApAQCAtMCwwICsxLDQyMyBAQAorLyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMiwgSW50ZXJu
YXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBB
bGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUg
bmFtZTogIHVjYXNlbWFwLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXpl
OiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAy
MDA1bWF5MDYKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIENhc2Ug
bWFwcGluZyBzZXJ2aWNlIG9iamVjdCBhbmQgZnVuY3Rpb25zIHVzaW5nIGl0LgorKi8KKworI2lm
bmRlZiBfX1VDQVNFTUFQX0hfXworI2RlZmluZSBfX1VDQVNFTUFQX0hfXworCisjaW5jbHVkZSAi
dW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VzdHJpbmcuaCIKKyNpbmNsdWRl
ICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQyBB
UEk6IFVuaWNvZGUgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucyB1c2luZyBhIFVDYXNlTWFwIHNlcnZp
Y2Ugb2JqZWN0LgorICoKKyAqIFRoZSBzZXJ2aWNlIG9iamVjdCB0YWtlcyBjYXJlIG9mIG1lbW9y
eSBhbGxvY2F0aW9ucywgZGF0YSBsb2FkaW5nLCBhbmQgc2V0dXAKKyAqIGZvciB0aGUgYXR0cmli
dXRlcywgYXMgdXN1YWwuCisgKgorICogQ3VycmVudGx5LCB0aGUgZnVuY3Rpb25hbGl0eSBwcm92
aWRlZCBoZXJlIGRvZXMgbm90IG92ZXJsYXAgd2l0aCB1Y2hhci5oCisgKiBhbmQgdXN0cmluZy5o
LCBleGNlcHQgZm9yIHVjYXNlbWFwX3RvVGl0bGUoKS4KKyAqCisgKiB1Y2FzZW1hcF91dGY4WFla
KCkgZnVuY3Rpb25zIG9wZXJhdGUgZGlyZWN0bHkgb24gVVRGLTggc3RyaW5ncy4KKyAqLworCisv
KioKKyAqIFVDYXNlTWFwIGlzIGFuIG9wYXF1ZSBzZXJ2aWNlIG9iamVjdCBmb3IgbmV3ZXIgSUNV
IGNhc2UgbWFwcGluZyBmdW5jdGlvbnMuCisgKiBPbGRlciBmdW5jdGlvbnMgZGlkIG5vdCB1c2Ug
YSBzZXJ2aWNlIG9iamVjdC4KKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitzdHJ1Y3QgVUNhc2VN
YXA7Cit0eXBlZGVmIHN0cnVjdCBVQ2FzZU1hcCBVQ2FzZU1hcDsgLyoqPCBDIHR5cGVkZWYgZm9y
IHN0cnVjdCBVQ2FzZU1hcC4gQHN0YWJsZSBJQ1UgMy40ICovCisKKy8qKgorICogT3BlbiBhIFVD
YXNlTWFwIHNlcnZpY2Ugb2JqZWN0IGZvciBhIGxvY2FsZSBhbmQgYSBzZXQgb2Ygb3B0aW9ucy4K
KyAqIFRoZSBsb2NhbGUgSUQgYW5kIG9wdGlvbnMgYXJlIHByZXByb2Nlc3NlZCBzbyB0aGF0IGZ1
bmN0aW9ucyB1c2luZyB0aGUKKyAqIHNlcnZpY2Ugb2JqZWN0IG5lZWQgbm90IHByb2Nlc3MgdGhl
bSBpbiBlYWNoIGNhbGwuCisgKgorICogQHBhcmFtIGxvY2FsZSBJQ1UgbG9jYWxlIElELCB1c2Vk
IGZvciBsYW5ndWFnZS1kZXBlbmRlbnQKKyAqICAgICAgICAgICAgICAgdXBwZXItL2xvd2VyLS90
aXRsZS1jYXNpbmcgYWNjb3JkaW5nIHRvIHRoZSBVbmljb2RlIHN0YW5kYXJkLgorICogICAgICAg
ICAgICAgICBVc3VhbCBzZW1hbnRpY3M6ICIiPXJvb3QsIE5VTEw9ZGVmYXVsdCBsb2NhbGUsIGV0
Yy4KKyAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgYml0IHNldCwgdXNlZCBmb3IgY2FzZSBmb2xk
aW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKiAgICAgICAgICAgICAgICBTYW1lIGZsYWdz
IGFzIGZvciB1X2ZvbGRDYXNlKCksIHVfc3RyRm9sZENhc2UoKSwKKyAqICAgICAgICAgICAgICAg
IHVfc3RyQ2FzZUNvbXBhcmUoKSwgZXRjLgorICogICAgICAgICAgICAgICAgVXNlIDAgb3IgVV9G
T0xEX0NBU0VfREVGQVVMVCBmb3IgZGVmYXVsdCBiZWhhdmlvci4KKyAqIEBwYXJhbSBwRXJyb3JD
b2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAg
ICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3Jl
IHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBQb2ludGVyIHRvIGEgVUNhc2VNYXAgc2Vy
dmljZSBvYmplY3QsIGlmIHN1Y2Nlc3NmdWwuCisgKgorICogQHNlZSBVX0ZPTERfQ0FTRV9ERUZB
VUxUCisgKiBAc2VlIFVfRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JCisgKiBAc2VlIFVfVElU
TEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RN
RU5UCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgVUNhc2VNYXAgKiBVX0VYUE9S
VDIKK3VjYXNlbWFwX29wZW4oY29uc3QgY2hhciAqbG9jYWxlLCB1aW50MzJfdCBvcHRpb25zLCBV
RXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBDbG9zZSBhIFVDYXNlTWFwIHNlcnZp
Y2Ugb2JqZWN0LgorICogQHBhcmFtIGNzbSBPYmplY3QgdG8gYmUgY2xvc2VkLgorICogQHN0YWJs
ZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9jbG9zZShV
Q2FzZU1hcCAqY3NtKTsKKworI2lmIFVfU0hPV19DUExVU1BMVVNfQVBJCisKK1VfTkFNRVNQQUNF
X0JFR0lOCisKKy8qKgorICogXGNsYXNzIExvY2FsVUNhc2VNYXBQb2ludGVyCisgKiAiU21hcnQg
cG9pbnRlciIgY2xhc3MsIGNsb3NlcyBhIFVDYXNlTWFwIHZpYSB1Y2FzZW1hcF9jbG9zZSgpLgor
ICogRm9yIG1vc3QgbWV0aG9kcyBzZWUgdGhlIExvY2FsUG9pbnRlckJhc2UgYmFzZSBjbGFzcy4K
KyAqCisgKiBAc2VlIExvY2FsUG9pbnRlckJhc2UKKyAqIEBzZWUgTG9jYWxQb2ludGVyCisgKiBA
c3RhYmxlIElDVSA0LjQKKyAqLworVV9ERUZJTkVfTE9DQUxfT1BFTl9QT0lOVEVSKExvY2FsVUNh
c2VNYXBQb2ludGVyLCBVQ2FzZU1hcCwgdWNhc2VtYXBfY2xvc2UpOworCitVX05BTUVTUEFDRV9F
TkQKKworI2VuZGlmCisKKy8qKgorICogR2V0IHRoZSBsb2NhbGUgSUQgdGhhdCBpcyB1c2VkIGZv
ciBsYW5ndWFnZS1kZXBlbmRlbnQgY2FzZSBtYXBwaW5ncy4KKyAqIEBwYXJhbSBjc20gVUNhc2VN
YXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIGxvY2FsZSBJRAorICogQHN0YWJsZSBJQ1Ug
My40CisgKi8KK1VfU1RBQkxFIGNvbnN0IGNoYXIgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldExv
Y2FsZShjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoqCisgKiBHZXQgdGhlIG9wdGlvbnMgYml0
IHNldCB0aGF0IGlzIHVzZWQgZm9yIGNhc2UgZm9sZGluZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25z
LgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1cm4gb3B0
aW9ucyBiaXQgc2V0CisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgdWludDMyX3Qg
VV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRPcHRpb25zKGNvbnN0IFVDYXNlTWFwICpjc20pOworCisv
KioKKyAqIFNldCB0aGUgbG9jYWxlIElEIHRoYXQgaXMgdXNlZCBmb3IgbGFuZ3VhZ2UtZGVwZW5k
ZW50IGNhc2UgbWFwcGluZ3MuCisgKgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9i
amVjdC4KKyAqIEBwYXJhbSBsb2NhbGUgTG9jYWxlIElELCBzZWUgdWNhc2VtYXBfb3BlbigpLgor
ICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3Ig
Y29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRl
IGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1h
cF9vcGVuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIK
K3VjYXNlbWFwX3NldExvY2FsZShVQ2FzZU1hcCAqY3NtLCBjb25zdCBjaGFyICpsb2NhbGUsIFVF
cnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIFNldCB0aGUgb3B0aW9ucyBiaXQgc2V0
IHRoYXQgaXMgdXNlZCBmb3IgY2FzZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisg
KgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBvcHRp
b25zIE9wdGlvbnMgYml0IHNldCwgc2VlIHVjYXNlbWFwX29wZW4oKS4KKyAqIEBwYXJhbSBwRXJy
b3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisg
KiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVm
b3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfb3BlbgorICogQHN0
YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9zZXRP
cHRpb25zKFVDYXNlTWFwICpjc20sIHVpbnQzMl90IG9wdGlvbnMsIFVFcnJvckNvZGUgKnBFcnJv
ckNvZGUpOworCisvKioKKyAqIERvIG5vdCBsb3dlcmNhc2Ugbm9uLWluaXRpYWwgcGFydHMgb2Yg
d29yZHMgd2hlbiB0aXRsZWNhc2luZy4KKyAqIE9wdGlvbiBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQ
SXMgdGhhdCB0YWtlIGFuIG9wdGlvbnMgYml0IHNldC4KKyAqCisgKiBCeSBkZWZhdWx0LCB0aXRs
ZWNhc2luZyB3aWxsIHRpdGxlY2FzZSB0aGUgZmlyc3QgY2FzZWQgY2hhcmFjdGVyCisgKiBvZiBh
IHdvcmQgYW5kIGxvd2VyY2FzZSBhbGwgb3RoZXIgY2hhcmFjdGVycy4KKyAqIFdpdGggdGhpcyBv
cHRpb24sIHRoZSBvdGhlciBjaGFyYWN0ZXJzIHdpbGwgbm90IGJlIG1vZGlmaWVkLgorICoKKyAq
IEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNlZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBA
c2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc2VlIFVuaWNvZGVTdHJpbmc6OnRvVGl0bGUK
KyAqIEBzdGFibGUgSUNVIDMuOAorICovCisjZGVmaW5lIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FT
RSAweDEwMAorCisvKioKKyAqIERvIG5vdCBhZGp1c3QgdGhlIHRpdGxlY2FzaW5nIGluZGV4ZXMg
ZnJvbSBCcmVha0l0ZXJhdG9yOjpuZXh0KCkgaW5kZXhlczsKKyAqIHRpdGxlY2FzZSBleGFjdGx5
IHRoZSBjaGFyYWN0ZXJzIGF0IGJyZWFrcyBmcm9tIHRoZSBpdGVyYXRvci4KKyAqIE9wdGlvbiBi
aXQgZm9yIHRpdGxlY2FzaW5nIEFQSXMgdGhhdCB0YWtlIGFuIG9wdGlvbnMgYml0IHNldC4KKyAq
CisgKiBCeSBkZWZhdWx0LCB0aXRsZWNhc2luZyB3aWxsIHRha2UgZWFjaCBicmVhayBpdGVyYXRv
ciBpbmRleCwKKyAqIGFkanVzdCBpdCBieSBsb29raW5nIGZvciB0aGUgbmV4dCBjYXNlZCBjaGFy
YWN0ZXIsIGFuZCB0aXRsZWNhc2UgdGhhdCBvbmUuCisgKiBPdGhlciBjaGFyYWN0ZXJzIGFyZSBs
b3dlcmNhc2VkLgorICoKKyAqIFRoaXMgZm9sbG93cyBVbmljb2RlIDQgJiA1IHNlY3Rpb24gMy4x
MyBEZWZhdWx0IENhc2UgT3BlcmF0aW9uczoKKyAqCisgKiBSMyAgdG9UaXRsZWNhc2UoWCk6IEZp
bmQgdGhlIHdvcmQgYm91bmRhcmllcyBiYXNlZCBvbiBVbmljb2RlIFN0YW5kYXJkIEFubmV4Cisg
KiAjMjksICJUZXh0IEJvdW5kYXJpZXMuIiBCZXR3ZWVuIGVhY2ggcGFpciBvZiB3b3JkIGJvdW5k
YXJpZXMsIGZpbmQgdGhlIGZpcnN0CisgKiBjYXNlZCBjaGFyYWN0ZXIgRi4gSWYgRiBleGlzdHMs
IG1hcCBGIHRvIGRlZmF1bHRfdGl0bGUoRik7IHRoZW4gbWFwIGVhY2gKKyAqIHN1YnNlcXVlbnQg
Y2hhcmFjdGVyIEMgdG8gZGVmYXVsdF9sb3dlcihDKS4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX3Nl
dE9wdGlvbnMKKyAqIEBzZWUgdWNhc2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2FzZW1hcF91dGY4
VG9UaXRsZQorICogQHNlZSBVbmljb2RlU3RyaW5nOjp0b1RpdGxlCisgKiBAc2VlIFVfVElUTEVD
QVNFX05PX0xPV0VSQ0FTRQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KKyNkZWZpbmUgVV9USVRM
RUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVCAweDIwMAorCisjaWYgIVVDT05GSUdfTk9fQlJFQUtf
SVRFUkFUSU9OCisKKy8qKgorICogR2V0IHRoZSBicmVhayBpdGVyYXRvciB0aGF0IGlzIHVzZWQg
Zm9yIHRpdGxlY2FzaW5nLgorICogRG8gbm90IG1vZGlmeSB0aGUgcmV0dXJuZWQgYnJlYWsgaXRl
cmF0b3IuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVy
biB0aXRsZWNhc2luZyBicmVhayBpdGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1Vf
U1RBQkxFIGNvbnN0IFVCcmVha0l0ZXJhdG9yICogVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRCcmVh
a0l0ZXJhdG9yKGNvbnN0IFVDYXNlTWFwICpjc20pOworCisvKioKKyAqIFNldCB0aGUgYnJlYWsg
aXRlcmF0b3IgdGhhdCBpcyB1c2VkIGZvciB0aXRsZWNhc2luZy4KKyAqIFRoZSBVQ2FzZU1hcCBz
ZXJ2aWNlIG9iamVjdCByZWxlYXNlcyBhIHByZXZpb3VzbHkgc2V0IGJyZWFrIGl0ZXJhdG9yCisg
KiBhbmQgImFkb3B0cyIgdGhpcyBuZXcgb25lLCB0YWtpbmcgb3duZXJzaGlwIG9mIGl0LgorICog
SXQgd2lsbCBiZSByZWxlYXNlZCBpbiBhIHN1YnNlcXVlbnQgY2FsbCB0byB1Y2FzZW1hcF9zZXRC
cmVha0l0ZXJhdG9yKCkKKyAqIG9yIHVjYXNlbWFwX2Nsb3NlKCkuCisgKgorICogQnJlYWsgaXRl
cmF0b3Igb3BlcmF0aW9ucyBhcmUgbm90IHRocmVhZC1zYWZlLiBUaGVyZWZvcmUsIHRpdGxlY2Fz
aW5nCisgKiBmdW5jdGlvbnMgdXNlIG5vbi1jb25zdCBVQ2FzZU1hcCBvYmplY3RzLiBJdCBpcyBu
b3QgcG9zc2libGUgdG8gdGl0bGVjYXNlCisgKiBzdHJpbmdzIGNvbmN1cnJlbnRseSB1c2luZyB0
aGUgc2FtZSBVQ2FzZU1hcC4KKyAqCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2Jq
ZWN0LgorICogQHBhcmFtIGl0ZXJUb0Fkb3B0IEJyZWFrIGl0ZXJhdG9yIHRvIGJlIGFkb3B0ZWQg
Zm9yIHRpdGxlY2FzaW5nLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBv
aW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNo
IG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisg
KgorICogQHNlZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxl
CisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNl
bWFwX3NldEJyZWFrSXRlcmF0b3IoVUNhc2VNYXAgKmNzbSwgVUJyZWFrSXRlcmF0b3IgKml0ZXJU
b0Fkb3B0LCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBUaXRsZWNhc2UgYSBV
VEYtMTYgc3RyaW5nLiBUaGlzIGZ1bmN0aW9uIGlzIGFsbW9zdCBhIGR1cGxpY2F0ZSBvZiB1X3N0
clRvVGl0bGUoKSwKKyAqIGV4Y2VwdCB0aGF0IGl0IHRha2VzIHVjYXNlbWFwX3NldE9wdGlvbnMo
KSBpbnRvIGFjY291bnQgYW5kIGhhcyBwZXJmb3JtYW5jZQorICogYWR2YW50YWdlcyBmcm9tIGJl
aW5nIGFibGUgdG8gdXNlIGEgVUNhc2VNYXAgb2JqZWN0IGZvciBtdWx0aXBsZSBjYXNlIG1hcHBp
bmcKKyAqIG9wZXJhdGlvbnMsIHNhdmluZyBzZXR1cCB0aW1lLgorICoKKyAqIENhc2luZyBpcyBs
b2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRpdGxlY2FzaW5nIHVz
ZXMgYSBicmVhayBpdGVyYXRvciB0byBmaW5kIHRoZSBmaXJzdCBjaGFyYWN0ZXJzIG9mIHdvcmRz
CisgKiB0aGF0IGFyZSB0byBiZSB0aXRsZWNhc2VkLiBJdCB0aXRsZWNhc2VzIHRob3NlIGNoYXJh
Y3RlcnMgYW5kIGxvd2VyY2FzZXMKKyAqIGFsbCBvdGhlcnMuIChUaGlzIGNhbiBiZSBtb2RpZmll
ZCB3aXRoIHVjYXNlbWFwX3NldE9wdGlvbnMoKS4pCisgKgorICogTm90ZTogVGhpcyBmdW5jdGlv
biB0YWtlcyBhIG5vbi1jb25zdCBVQ2FzZU1hcCBwb2ludGVyIGJlY2F1c2UgaXQgd2lsbAorICog
b3BlbiBhIGRlZmF1bHQgYnJlYWsgaXRlcmF0b3IgaWYgbm8gYnJlYWsgaXRlcmF0b3Igd2FzIHNl
dCB5ZXQsCisgKiBhbmQgZWZmZWN0aXZlbHkgY2FsbCB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9y
KCk7CisgKiBhbHNvIGJlY2F1c2UgdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIHN0YXRlZnVsIGFuZCB3
aWxsIGJlIG1vZGlmaWVkIGR1cmluZworICogdGhlIGl0ZXJhdGlvbi4KKyAqCisgKiBUaGUgdGl0
bGVjYXNlIGJyZWFrIGl0ZXJhdG9yIGNhbiBiZSBwcm92aWRlZCB0byBjdXN0b21pemUgZm9yIGFy
Yml0cmFyeQorICogc3R5bGVzLCB1c2luZyBydWxlcyBhbmQgZGljdGlvbmFyaWVzIGJleW9uZCB0
aGUgc3RhbmRhcmQgaXRlcmF0b3JzLgorICogVGhlIHN0YW5kYXJkIHRpdGxlY2FzZSBpdGVyYXRv
ciBmb3IgdGhlIHJvb3QgbG9jYWxlIGltcGxlbWVudHMgdGhlCisgKiBhbGdvcml0aG0gb2YgVW5p
Y29kZSBUUiAyMS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHVzZXMgb25seSB0aGUgc2V0VVRleHQo
KSwgZmlyc3QoKSwgbmV4dCgpIGFuZCBjbG9zZSgpIG1ldGhvZHMgb2YgdGhlCisgKiBwcm92aWRl
ZCBicmVhayBpdGVyYXRvci4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hv
cnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVz
dGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAg
ICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4gVGhpcyBwb2ludGVyIGlzIG5vbi1jb25zdCEKKyAq
ICAgICAgICAgICAgICAgICAgU2VlIHRoZSBub3RlIGFib3ZlIGZvciBkZXRhaWxzLgorICogQHBh
cmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQg
d2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVy
IGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVu
ZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBz
aXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAq
ICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwg
b25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAg
IHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3Jj
ICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5n
dGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRl
cm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0
byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5v
dCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVy
biBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4g
Y2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3
aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0clRvVGl0
bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgor
dWNhc2VtYXBfdG9UaXRsZShVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICBVQ2hhciAq
ZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFy
ICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKworI2VuZGlmCisKKy8qKgorICogTG93ZXJjYXNlIHRoZSBjaGFyYWN0ZXJz
IGluIGEgVVRGLTggc3RyaW5nLgorICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNv
bnRleHQtc2Vuc2l0aXZlLgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIg
dGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0
aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNh
c2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0
aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisg
KiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAg
ICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4K
KyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9m
IGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBi
ZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRo
ZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUg
cmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4K
KyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJ
ZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JD
b2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAg
ICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUg
dGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBz
dHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAor
ICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBh
Y2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9Mb3dlcgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8K
K1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4VG9Mb3dlcihjb25zdCBV
Q2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBk
ZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGludDMy
X3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29k
ZSk7CisKKy8qKgorICogVXBwZXJjYXNlIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5n
LgorICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgor
ICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwu
CisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5v
dCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmpl
Y3QuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4g
VGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAg
IHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29u
dGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2Fw
YWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMg
MCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVu
Y3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAg
ICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAq
IEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5n
dGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVz
dCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxp
ZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdo
aWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwu
CisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3Nm
dWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGlj
aCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2Vl
IHVfc3RyVG9VcHBlcgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGludDMyX3Qg
VV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4VG9VcHBlcihjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAg
ICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAg
ICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNpZiAhVUNPTkZJ
R19OT19CUkVBS19JVEVSQVRJT04KKworLyoqCisgKiBUaXRsZWNhc2UgYSBVVEYtOCBzdHJpbmcu
CisgKiBDYXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisg
KiBUaXRsZWNhc2luZyB1c2VzIGEgYnJlYWsgaXRlcmF0b3IgdG8gZmluZCB0aGUgZmlyc3QgY2hh
cmFjdGVycyBvZiB3b3JkcworICogdGhhdCBhcmUgdG8gYmUgdGl0bGVjYXNlZC4gSXQgdGl0bGVj
YXNlcyB0aG9zZSBjaGFyYWN0ZXJzIGFuZCBsb3dlcmNhc2VzCisgKiBhbGwgb3RoZXJzLiAoVGhp
cyBjYW4gYmUgbW9kaWZpZWQgd2l0aCB1Y2FzZW1hcF9zZXRPcHRpb25zKCkuKQorICoKKyAqIE5v
dGU6IFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBub24tY29uc3QgVUNhc2VNYXAgcG9pbnRlciBiZWNh
dXNlIGl0IHdpbGwKKyAqIG9wZW4gYSBkZWZhdWx0IGJyZWFrIGl0ZXJhdG9yIGlmIG5vIGJyZWFr
IGl0ZXJhdG9yIHdhcyBzZXQgeWV0LAorICogYW5kIGVmZmVjdGl2ZWx5IGNhbGwgdWNhc2VtYXBf
c2V0QnJlYWtJdGVyYXRvcigpOworICogYWxzbyBiZWNhdXNlIHRoZSBicmVhayBpdGVyYXRvciBp
cyBzdGF0ZWZ1bCBhbmQgd2lsbCBiZSBtb2RpZmllZCBkdXJpbmcKKyAqIHRoZSBpdGVyYXRpb24u
CisgKgorICogVGhlIHRpdGxlY2FzZSBicmVhayBpdGVyYXRvciBjYW4gYmUgcHJvdmlkZWQgdG8g
Y3VzdG9taXplIGZvciBhcmJpdHJhcnkKKyAqIHN0eWxlcywgdXNpbmcgcnVsZXMgYW5kIGRpY3Rp
b25hcmllcyBiZXlvbmQgdGhlIHN0YW5kYXJkIGl0ZXJhdG9ycy4KKyAqIFRoZSBzdGFuZGFyZCB0
aXRsZWNhc2UgaXRlcmF0b3IgZm9yIHRoZSByb290IGxvY2FsZSBpbXBsZW1lbnRzIHRoZQorICog
YWxnb3JpdGhtIG9mIFVuaWNvZGUgVFIgMjEuCisgKgorICogVGhpcyBmdW5jdGlvbiB1c2VzIG9u
bHkgdGhlIHNldFVUZXh0KCksIGZpcnN0KCksIG5leHQoKSBhbmQgY2xvc2UoKSBtZXRob2RzIG9m
IHRoZQorICogcHJvdmlkZWQgYnJlYWsgaXRlcmF0b3IuCisgKgorICogVGhlIHJlc3VsdCBtYXkg
YmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0
cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAq
IEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuIFRoaXMgcG9pbnRlciBp
cyBub24tY29uc3QhCisgKiAgICAgICAgICAgICAgICAgIFNlZSB0aGUgbm90ZSBhYm92ZSBmb3Ig
ZGV0YWlscy4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3Ry
aW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAg
ICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRo
ZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRl
c3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBp
dCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRo
ZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICog
ICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5n
LgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNy
Y0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNy
YyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBh
IHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAg
ICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24g
Y2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3Vj
Y2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGlu
IHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAq
IEBzZWUgdV9zdHJUb1RpdGxlCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICog
QHNlZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5UCisgKiBAc3RhYmxlIElDVSAzLjgK
KyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhUb1RpdGxlKFVD
YXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVz
dENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qg
c3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsK
KworI2VuZGlmCisKKy8qKgorICogQ2FzZS1mb2xkcyB0aGUgY2hhcmFjdGVycyBpbiBhIFVURi04
IHN0cmluZy4KKyAqCisgKiBDYXNlLWZvbGRpbmcgaXMgbG9jYWxlLWluZGVwZW5kZW50IGFuZCBu
b3QgY29udGV4dC1zZW5zaXRpdmUsCisgKiBidXQgdGhlcmUgaXMgYW4gb3B0aW9uIGZvciB3aGV0
aGVyIHRvIGluY2x1ZGUgb3IgZXhjbHVkZSBtYXBwaW5ncyBmb3IgZG90dGVkIEkKKyAqIGFuZCBk
b3RsZXNzIGkgdGhhdCBhcmUgbWFya2VkIHdpdGggJ1QnIGluIENhc2VGb2xkaW5nLnR4dC4KKyAq
CisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5h
bC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qg
bm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9i
amVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5n
LiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAg
ICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBj
b250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RD
YXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBp
cyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBm
dW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAg
ICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgor
ICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xl
bmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBt
dXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZh
bGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAg
d2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2Fs
bC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vz
c2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdo
aWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBz
ZWUgdV9zdHJGb2xkQ2FzZQorICogQHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25zCisgKiBAc2VlIFVf
Rk9MRF9DQVNFX0RFRkFVTFQKKyAqIEBzZWUgVV9GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kK
KyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNh
c2VtYXBfdXRmOEZvbGRDYXNlKGNvbnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAg
ICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAg
ICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3VjaHJpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ1YTk5MGY3YjdlZDNkNWJhY2YyZGE4NDcxZWY4ZmY5
NDIyZjk5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0
ZXIuaApAQCAtMCwwICsxLDM4MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQg
KEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBv
cmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor
Ki8KKworI2lmbmRlZiBVQ0hSSVRFUl9ICisjZGVmaW5lIFVDSFJJVEVSX0gKKworI2luY2x1ZGUg
InVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgorCisvKioK
KyAqIFxmaWxlIAorICogXGJyaWVmIEMrKyBBUEk6IFVDaGFyIENoYXJhY3RlciBJdGVyYXRvcgor
ICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAqIEEgY29uY3JldGUgc3ViY2xhc3Mg
b2YgQ2hhcmFjdGVySXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIHRoZQorICogY2hhcmFjdGVy
cyAoY29kZSB1bml0cyBvciBjb2RlIHBvaW50cykgaW4gYSBVQ2hhciBhcnJheS4KKyAqIEl0J3Mg
cG9zc2libGUgbm90IG9ubHkgdG8gY3JlYXRlIGFuCisgKiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVz
IG92ZXIgYW4gZW50aXJlIFVDaGFyIGFycmF5LCBidXQgYWxzbyB0bworICogY3JlYXRlIG9uZSB0
aGF0IGl0ZXJhdGVzIG92ZXIgb25seSBhIHN1YnJhbmdlIG9mIGEgVUNoYXIgYXJyYXkKKyAqIChp
dGVyYXRvcnMgb3ZlciBkaWZmZXJlbnQgc3VicmFuZ2VzIG9mIHRoZSBzYW1lIFVDaGFyIGFycmF5
IGRvbid0CisgKiBjb21wYXJlIGVxdWFsKS4KKyAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAq
IEBzZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwor
Y2xhc3MgVV9DT01NT05fQVBJIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgQ2hhcmFj
dGVySXRlcmF0b3IgeworcHVibGljOgorICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92
ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0
ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmxlbmd0aC0xPC9jb2RlPi4KKyAgICogdGV4dCBp
cyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxsIG5v
dCBkZWxldGUgaXQpLgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIgYXJyYXkgdG8gYmUg
aXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFVDaGFy
IGFycmF5CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVy
YXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5ndGgpOworCisgIC8qKgorICAg
KiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkg
InRleHRQdHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNvZGU+bGVuZ3Ro
LTE8L2NvZGU+LgorICAgKiB0ZXh0IGlzIG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0ZWQgKHRoZQor
ICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90IGRlbGV0ZSBpdCkuCisgICAqIFRoZSBzdGFydGluZwor
ICAgKiBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInBvc2l0aW9uIi4gSWYgInBvc2l0aW9uIiBp
cyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBv
ZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hh
ciBhcnJheSB0byBiZSBpdGVyYXRkIG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3Ro
IG9mIHRoZSBVQ2hhciBhcnJheQorICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIHN0YXJ0aW5nIHBv
c2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBV
Q2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyKiB0ZXh0UHRyLCBpbnQzMl90IGxlbmd0
aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioK
KyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRv
IGJ5ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmVu
ZC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUK
KyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBUaGUgc3RhcnRpbmcK
KyAgICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJwb3NpdGlvbiIuIElmIGJlZ2luIGFuZCBl
bmQgZG8gbm90CisgICAqIGZvcm0gYSB2YWxpZCBpdGVyYXRpb24gcmFuZ2Ugb3IgInBvc2l0aW9u
IiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlv
ciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBV
Q2hhciBhcnJheSB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxl
bmd0aCBvZiB0aGUgVUNoYXIgYXJyYXkKKyAgICogQHBhcmFtIHRleHRCZWdpbiAgVGhlIGJlZ2lu
IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRFbmQgICAg
VGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSBwb3Np
dGlvbiAgICBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVUNoYXIq
IHRleHRQdHIsIGludDMyX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMy
X3QgdGV4dEJlZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGV4dEVuZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAg
ICogQ29weSBjb25zdHJ1Y3Rvci4gIFRoZSBuZXcgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUg
c2FtZSByYW5nZQorICAgKiBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgaXRzIGlu
aXRpYWwgcG9zaXRpb24gaXMgdGhlCisgICAqIHNhbWUgYXMgInRoYXQiJ3MgY3VycmVudCBwb3Np
dGlvbi4KKyAgICogQHBhcmFtIHRoYXQgVGhlIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUg
Y29waWVkCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVy
YXRvcihjb25zdCBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yJiAgdGhhdCk7CisKKyAgLyoqCisgICAq
IERlc3RydWN0b3IuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB+VUNo
YXJDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8qKgorICAgKiBBc3NpZ25tZW50IG9wZXJhdG9y
LiAgKnRoaXMgaXMgYWx0ZXJlZCB0byBpdGVyYXRlIG92ZXIgdGhlIHNhbmUKKyAgICogcmFuZ2Ug
b2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIHJlZmVycyB0byB0aGUgc2FtZQorICAg
KiBjaGFyYWN0ZXIgd2l0aGluIHRoYXQgc3RyaW5nIGFzICJ0aGF0IiBkb2VzLgorICAgKiBAcGFy
YW0gdGhhdCBUaGUgb2JqZWN0IHRvIGJlIGNvcGllZAorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBj
cmVhdGVkIG9iamVjdAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFj
dGVySXRlcmF0b3ImCisgIG9wZXJhdG9yPShjb25zdCBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yJiAg
ICB0aGF0KTsKKworICAvKioKKyAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRl
cmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJl
IHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICogQHBhcmFtIHRoYXQgVGhlIEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciB1c2VkIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQor
ICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUg
cmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNh
bWUgY2hhcmFjdGVyLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJv
b2wgICAgICAgICAgb3BlcmF0b3I9PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRo
YXQpIGNvbnN0OworCisgIC8qKgorICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoaXMg
aXRlcmF0b3IuCisgICAqIEByZXR1cm4gdGhlIGhhc2ggY29kZS4KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICB2aXJ0dWFsIGludDMyX3QgICAgICAgICBoYXNoQ29kZSh2b2lkKSBjb25z
dDsKKworICAvKioKKyAgICogUmV0dXJucyBhIG5ldyBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHJl
ZmVycmluZyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgcmFuZ2Ugb2Yg
dGhlIHNhbWUgc3RyaW5nIGFzIHRoaXMgb25lLiAgVGhlCisgICAqIGNhbGxlciBtdXN0IGRlbGV0
ZSB0aGUgbmV3IGl0ZXJhdG9yLgorICAgKiBAcmV0dXJuIHRoZSBDaGFyYWN0ZXJJdGVyYXRvciBu
ZXdseSBjcmVhdGVkCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBDaGFy
YWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0
ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2Fu
IGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4dCgpLgorICAgKiBAcmV0dXJu
IHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3Qodm9pZCk7CisK
KyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2Rl
IHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5p
dCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgKiB0byB0aGUgc2Vjb25kIGNvZGUgdW5pdC4g
VGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICogZm9yIGZvcndhcmQg
aXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUgZmlyc3QgY29k
ZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3RQb3N0SW5jKHZvaWQpOworCisgIC8qKgor
ICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSBwb2ludCBp
biBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwK
KyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzIo
KS4KKyAgICogTm90ZSB0aGF0IGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKSwgYmVn
aW5uaW5nIHdpdGgsCisgICAqIGUuZy4sIHNldFRvU3RhcnQoKSBvciBmaXJzdFBvc3RJbmMoKSwg
aXMgbW9yZSBlZmZpY2llbnQuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4g
aXRzIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBp
dGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRl
cmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSBwb2ludCwgYW5kIG1vdmVzIHRoZSBwb3Np
dGlvbgorICAgKiB0byB0aGUgc2Vjb25kIGNvZGUgcG9pbnQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRp
dmUgdG8gc2V0VG9TdGFydCgpCisgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQz
MlBvc3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRl
cmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNo
YXIzMiAgICAgICBmaXJzdDMyUG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUg
aXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSB1bml0IGluIGl0cworICAgKiBpdGVy
YXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBUaGlzIGNhbiBi
ZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkuCisgICAqIEByZXR1
cm4gdGhlIGxhc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGxhc3Qodm9pZCk7CisK
KyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUg
cG9pbnQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2Rl
IHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGgg
cHJldmlvdXMzMigpLgorICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0
ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVD
aGFyMzIgICAgICAgbGFzdDMyKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRv
ciB0byByZWZlciB0byB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIHRl
eHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAqIHJldHVy
bnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gd2l0
aGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAqIEByZXR1cm4gdGhlIGNvZGUgdW5pdAor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBzZXRJ
bmRleChpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3Ig
dG8gcmVmZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgKiB0aGF0IGNv
bnRhaW5zIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgKiBpbiB0aGUgdGV4dC1zdG9y
YWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAgICogcmV0dXJucyB0aGF0
IGNvZGUgcG9pbnQuCisgICAqIFRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIGFkanVzdGVkIHRvIHRo
ZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICogKGl0cyBmaXJzdCBjb2RlIHVuaXQp
LgorICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgdGV4dC1zdG9y
YWdlIG9iamVjdAorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQKKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgc2V0SW5kZXgzMihpbnQzMl90IHBv
c2l0aW9uKTsKKworICAvKioKKyAgICogUmV0dXJucyB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRv
ciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQgdGhlIGl0
ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGN1cnJlbnQodm9pZCkgY29uc3Q7CisKKyAgLyoqCisg
ICAqIFJldHVybnMgdGhlIGNvZGUgcG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMg
dG8uCisgICAqIEByZXR1cm4gdGhlIGNvZGUgcG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSBy
ZWZlcnMgdG8uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMy
ICAgICAgIGN1cnJlbnQzMih2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8g
dGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBl
bmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUgbm8g
bW9yZQorICAgKiBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0
dXJuIHRoZSBuZXh0IGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0KHZvaWQpOwor
CisgIC8qKgorICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgdW5pdCBmb3IgcmV0dXJuaW5nIGFu
ZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIGl0ZXJhdGlvbiBy
YW5nZQorICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAqIG5vIG1v
cmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUg
Y3VycmVudCBjb2RlIHVuaXQuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVh
bCBVQ2hhciAgICAgICAgIG5leHRQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBBZHZhbmNl
cyB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAor
ICAgKiBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUg
YXJlIG5vIG1vcmUKKyAgICogY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisg
ICAqIE5vdGUgdGhhdCBpdGVyYXRpb24gd2l0aCAicHJlLWluY3JlbWVudCIgc2VtYW50aWNzIGlz
IGxlc3MKKyAgICogZWZmaWNpZW50IHRoYW4gaXRlcmF0aW9uIHdpdGggInBvc3QtaW5jcmVtZW50
IiBzZW1hbnRpY3MKKyAgICogdGhhdCBpcyBwcm92aWRlZCBieSBuZXh0MzJQb3N0SW5jKCkuCisg
ICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0
MzIodm9pZCk7CisKKyAgLyoqCisgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSBwb2ludCBmb3Ig
cmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAqIGluIHRo
ZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFy
ZQorICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAg
KiBAcmV0dXJuIHRoZSBjdXJyZW50IHBvaW50LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzJQb3N0SW5jKHZvaWQpOworCisgIC8qKgor
ICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29k
ZSBwb2ludHMKKyAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0
ZXJhdGlvbiByYW5nZS4KKyAgICogVGhpcyBpcyB1c2VkIHdpdGggbmV4dFBvc3RJbmMoKSBvciBu
ZXh0MzJQb3N0SW5jKCkgaW4gZm9yd2FyZAorICAgKiBpdGVyYXRpb24uCisgICAqIEByZXR1cm4g
RkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAg
KiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhh
c05leHQoKTsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgdW5p
dCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAgICogc3RhcnRJbmRleCgpKSwgYW5k
IHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2Rl
IHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91
cyBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgcHJldmlvdXModm9pZCk7CisKKyAgLyoq
CisgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UgKHRvd2FyZAorICAgKiBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNv
ZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHBvaW50cyB0byByZXR1
cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBp
biB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZp
cnR1YWwgVUNoYXIzMiAgICAgICBwcmV2aW91czMyKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1
cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMK
KyAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2Uu
CisgICAqIFRoaXMgaXMgdXNlZCB3aXRoIHByZXZpb3VzKCkgb3IgcHJldmlvdXMzMigpIGluIGJh
Y2t3YXJkCisgICAqIGl0ZXJhdGlvbi4KKyAgICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUg
bm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAqIGJlZm9yZSB0aGUgY3VycmVu
dCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc1ByZXZpb3VzKCk7CisKKyAgLyoqCisg
ICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBl
bmQgb2YgdGhlCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJl
bnQgcG9zaXRpb24gaXRzZWxmLgorICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51
bWJlcnMgb2YgY29kZSB1bml0cyBmb3J3YXJkCisgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlp
bmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAgICogQHBhcmFtIGRlbHRhIHRoZSBw
b3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2Fy
ZDsKKyAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICogQHBhcmFtIG9y
aWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAqIEBy
ZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZp
cnR1YWwgaW50MzJfdCAgICAgIG1vdmUoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pOwor
CisgIC8qKgorICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUg
c3RhcnQgb3IgZW5kIG9mIHRoZQorICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRv
IHRoZSBjdXJyZW50IHBvc2l0aW9uIGl0c2VsZi4KKyAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJl
c3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgcG9pbnRzIGZvcndhcmQKKyAgICogb3IgYmFja3dhcmQg
Ynkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgKiBAcGFyYW0g
ZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBt
ZWFucyBmb3J3YXJkOworICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAg
KiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0Vu
ZH0KKyAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92ZTMyKGludDMyX3QgZGVsdGEsIEVPcmln
aW4gb3JpZ2luKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBv
dmVyIGEgbmV3IHJhbmdlIG9mIHRleHQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2
b2lkIHNldFRleHQoY29uc3QgVUNoYXIqIG5ld1RleHQsIGludDMyX3QgbmV3VGV4dExlbmd0aCk7
CisKKyAgLyoqCisgICAqIENvcGllcyB0aGUgVUNoYXIgYXJyYXkgdW5kZXIgaXRlcmF0aW9uIGlu
dG8gdGhlIFVuaWNvZGVTdHJpbmcKKyAgICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICBFdmVu
IGlmIHRoaXMgaXRlcmF0b3IgaXRlcmF0ZXMgYWNyb3NzCisgICAqIG9ubHkgYSBwYXJ0IG9mIHRo
aXMgc3RyaW5nLCB0aGUgd2hvbGUgc3RyaW5nIGlzIGNvcGllZC4KKyAgICogQHBhcmFtIHJlc3Vs
dCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uLgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRleHQoVW5p
Y29kZVN0cmluZyYgcmVzdWx0KTsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9y
IHRoaXMgY2xhc3MgKG5vdCByZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQg
Zm9yIHRoaXMgY2xhc3MKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBzdGF0aWMgVUNs
YXNzSUQgICAgICAgICBVX0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworICAvKioK
KyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0IChub3QgcmVhbGx5IHB1Ymxp
YykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDbGFzc0lEICAgICAgICBnZXREeW5hbWljQ2xh
c3NJRCh2b2lkKSBjb25zdDsKKworcHJvdGVjdGVkOgorICAvKioKKyAgICogUHJvdGVjdGVkIGNv
bnN0cnVjdG9yCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJ
dGVyYXRvcigpOworICAvKioKKyAgICogUHJvdGVjdGVkIG1lbWJlciB0ZXh0CisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgY29uc3QgVUNoYXIqICAgICAgICAgICAgdGV4dDsKKworfTsK
KworVV9OQU1FU1BBQ0VfRU5ECisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvdWRhdGEuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yOWU0NjYzMGQ1Mzk4ZDgyNzM4ZDFkNjFmZmM0ZDJjOTE0ZThjNjhiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91ZGF0YS5oCkBAIC0wLDAgKzEsNDMwIEBACisv
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3Ro
ZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IGZpbGUgbmFtZTogIHVkYXRhLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBz
aXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9u
OiAxOTk5b2N0MjUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lm
bmRlZiBfX1VEQVRBX0hfXworI2RlZmluZSBfX1VEQVRBX0hfXworCisjaW5jbHVkZSAidW5pY29k
ZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCitVX0NERUNM
X0JFR0lOCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogRGF0YSBsb2FkaW5nIGlu
dGVyZmFjZQorICoKKyAqIDxoMj5JbmZvcm1hdGlvbiBhYm91dCBkYXRhIGxvYWRpbmcgaW50ZXJm
YWNlPC9oMj4KKyAqCisgKiBUaGlzIEFQSSBpcyB1c2VkIHRvIGZpbmQgYW5kIGVmZmljaWVudGx5
IGxvYWQgZGF0YSBmb3IgSUNVIGFuZCBhcHBsaWNhdGlvbnMKKyAqIHVzaW5nIElDVS4gSXQgcHJv
dmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgc3BlY2lmaWVzIGEgZGF0YSB0eXBlIGFu
ZAorICogbmFtZSB0byBmaW5kIGFuZCBsb2FkIHRoZSBkYXRhLiBOb3JtYWxseSB0aGlzIEFQSSBp
cyB1c2VkIGJ5IG90aGVyIElDVSBBUElzCisgKiB0byBsb2FkIHJlcXVpcmVkIGRhdGEgb3V0IG9m
IHRoZSBJQ1UgZGF0YSBsaWJyYXJ5LCBidXQgaXQgY2FuIGJlIHVzZWQgdG8KKyAqIGxvYWQgZGF0
YSBvdXQgb2Ygb3RoZXIgcGxhY2VzLgorICoKKyAqIFNlZSB0aGUgVXNlciBHdWlkZSBEYXRhIE1h
bmFnZW1lbnQgY2hhcHRlci4KKyAqLworIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisv
KioKKyAqIENoYXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVl
IG5hbWVzIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJB
VE9SICctJworCisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMg
ZnJvbSB0cmVlIG5hbWVzIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RS
RUVfU0VQQVJBVE9SX1NUUklORyAiLSIKKworLyoqCisgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBh
cmF0ZSBwYXJ0cyBvZiBlbnRyeSBuYW1lcworICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2Rl
ZmluZSBVX1RSRUVfRU5UUllfU0VQX0NIQVIgJy8nCisKKy8qKgorICogU3RyaW5nIHVzZWQgdG8g
c2VwYXJhdGUgcGFydHMgb2YgZW50cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8K
KyNkZWZpbmUgVV9UUkVFX0VOVFJZX1NFUF9TVFJJTkcgIi8iCisKKy8qKgorICogQWxpYXMgZm9y
IHN0YW5kYXJkIElDVSBkYXRhIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBV
X0lDVURBVEFfQUxJQVMgIklDVURBVEEiCisKKyNlbmRpZiAvKiBVX0hJREVfSU5URVJOQUxfQVBJ
ICovCisKKy8qKgorICogVURhdGFJbmZvIGNvbnRhaW5zIHRoZSBwcm9wZXJ0aWVzIGFib3V0IHRo
ZSByZXF1ZXN0ZWQgZGF0YS4KKyAqIFRoaXMgaXMgbWV0YSBkYXRhLgorICoKKyAqIDxwPlRoaXMg
c3RydWN0dXJlIG1heSBncm93IGluIHRoZSBmdXR1cmUsIGluZGljYXRlZCBieSB0aGUKKyAqIDxj
b2RlPnNpemU8L2NvZGU+IGZpZWxkLjwvcD4KKyAqCisgKiA8cD5JQ1UgZGF0YSBtdXN0IGJlIGF0
IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogVGhlIFVEYXRh
SW5mbyBzdHJ1Y3QgYmVnaW5zIDQgYnl0ZXMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIHRoZSBkYXRhIGl0
ZW0sCisgKiBzbyBpdCBpcyA0LWFsaWduZWQuCisgKgorICogPHA+VGhlIHBsYXRmb3JtIGRhdGEg
cHJvcGVydHkgZmllbGRzIGhlbHAgZGV0ZXJtaW5lIGlmIGEgZGF0YQorICogZmlsZSBjYW4gYmUg
ZWZmaWNpZW50bHkgdXNlZCBvbiBhIGdpdmVuIG1hY2hpbmUuCisgKiBUaGUgcGFydGljdWxhciBm
aWVsZHMgYXJlIG9mIGltcG9ydGFuY2Ugb25seSBpZiB0aGUgZGF0YQorICogaXMgYWZmZWN0ZWQg
YnkgdGhlIHByb3BlcnRpZXMgLSBpZiB0aGVyZSBpcyBpbnRlZ2VyIGRhdGEKKyAqIHdpdGggd29y
ZCBzaXplcyA+IDEgYnl0ZSwgY2hhciogdGV4dCwgb3IgVUNoYXIqIHRleHQuPC9wPgorICoKKyAq
IDxwPlRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIDxjb2RlPnVkYXRhX29wZW5bQ2hvaWNlXSgp
PC9jb2RlPgorICogZnVuY3Rpb25zIG1heSByZWplY3QgZGF0YSBiYXNlZCBvbiB0aGUgdmFsdWUg
aW4gPGNvZGU+aXNCaWdFbmRpYW48L2NvZGU+LgorICogTm8gb3RoZXIgZmllbGQgaXMgdXNlZCBi
eSB0aGUgPGNvZGU+dWRhdGE8L2NvZGU+IEFQSSBpbXBsZW1lbnRhdGlvbi48L3A+CisgKgorICog
PHA+VGhlIDxjb2RlPmRhdGFGb3JtYXQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIGlkZW50aWZ5Cisg
KiB0aGUga2luZCBvZiBkYXRhLCBlLmcuIGEgY29udmVydGVyIHRhYmxlLjwvcD4KKyAqCisgKiA8
cD5UaGUgPGNvZGU+Zm9ybWF0VmVyc2lvbjwvY29kZT4gZmllbGQgc2hvdWxkIGJlIHVzZWQgdG8K
KyAqIG1ha2Ugc3VyZSB0aGF0IHRoZSBmb3JtYXQgY2FuIGJlIGludGVycHJldGVkLgorICogSXQg
bWF5IGJlIGEgZ29vZCBpZGVhIHRvIGNoZWNrIG9ubHkgZm9yIHRoZSBvbmUgb3IgdHdvIGhpZ2hl
c3QKKyAqIG9mIHRoZSB2ZXJzaW9uIGVsZW1lbnRzIHRvIGFsbG93IHRoZSBkYXRhIG1lbW9yeSB0
bworICogZ2V0IG1vcmUgb3Igc29tZXdoYXQgcmVhcnJhbmdlZCBjb250ZW50cywgZm9yIGFzIGxv
bmcKKyAqIGFzIHRoZSB1c2luZyBjb2RlIGNhbiBzdGlsbCBpbnRlcnByZXQgdGhlIG9sZGVyIGNv
bnRlbnRzLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+ZGF0YVZlcnNpb248L2NvZGU+IGZpZWxk
IGlzIGludGVuZGVkIHRvIGJlIGEKKyAqIGNvbW1vbiBwbGFjZSB0byBzdG9yZSB0aGUgc291cmNl
IHZlcnNpb24gb2YgdGhlIGRhdGE7CisgKiBmb3IgZGF0YSBmcm9tIHRoZSBVbmljb2RlIGNoYXJh
Y3RlciBkYXRhYmFzZSwgdGhpcyBjb3VsZAorICogcmVmbGVjdCB0aGUgVW5pY29kZSB2ZXJzaW9u
LjwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAg
IC8qKiBzaXplb2YoVURhdGFJbmZvKQorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1
aW50MTZfdCBzaXplOworCisgICAgLyoqIHVudXNlZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFi
bGUgSUNVIDIuMCovCisgICAgdWludDE2X3QgcmVzZXJ2ZWRXb3JkOworCisgICAgLyogcGxhdGZv
cm0gZGF0YSBwcm9wZXJ0aWVzICovCisgICAgLyoqIDAgZm9yIGxpdHRsZS1lbmRpYW4gbWFjaGlu
ZSwgMSBmb3IgYmlnLWVuZGlhbgorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50
OF90IGlzQmlnRW5kaWFuOworCisgICAgLyoqIHNlZSBVX0NIQVJTRVRfRkFNSUxZIHZhbHVlcyBp
biB1dHlwZXMuaCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGNoYXJz
ZXRGYW1pbHk7CisKKyAgICAvKiogc2l6ZW9mKFVDaGFyKSwgb25lIG9mIHsgMSwgMiwgNCB9IAor
ICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3Qgc2l6ZW9mVUNoYXI7CisKKyAg
ICAvKiogdW51c2VkLCBzZXQgdG8gMCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1
aW50OF90IHJlc2VydmVkQnl0ZTsKKworICAgIC8qKiBkYXRhIGZvcm1hdCBpZGVudGlmaWVyIAor
ICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YUZvcm1hdFs0XTsKKwor
ICAgIC8qKiB2ZXJzaW9uczogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3Jv
IAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZm9ybWF0VmVyc2lvbls0
XTsKKworICAgIC8qKiB2ZXJzaW9uczogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNd
IG1pY3JvIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YVZlcnNp
b25bNF07Cit9IFVEYXRhSW5mbzsKKworLyogQVBJIGZvciByZWFkaW5nIGRhdGEgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKioKKyAq
IEZvcndhcmQgZGVjbGFyYXRpb24gb2YgdGhlIGRhdGEgbWVtb3J5IHR5cGUuCisgKiBAc3RhYmxl
IElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgVURhdGFNZW1vcnkgVURhdGFNZW1vcnk7CisK
Ky8qKgorICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHVkYXRhX29wZW5DaG9pY2UoKS4KKyAqIEBw
YXJhbSBjb250ZXh0IHBhcmFtZXRlciBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNl
KCk8L2NvZGU+LgorICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIGRhdGEgYXMgcGFzc2Vk
IGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPi4KKyAqICAgICAgICAgICAgIEl0
IG1heSBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRo
ZSBkYXRhIGFzIHBhc3NlZCBpbnRvIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisg
KiBAcGFyYW0gcEluZm8gQSBwb2ludGVyIHRvIHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+IHN0
cnVjdHVyZQorICogICAgICAgICAgICAgIG9mIGRhdGEgdGhhdCBoYXMgYmVlbiBsb2FkZWQgYW5k
IHdpbGwgYmUgcmV0dXJuZWQKKyAqICAgICAgICAgICAgICBieSA8Y29kZT51ZGF0YV9vcGVuQ2hv
aWNlKCk8L2NvZGU+IGlmIHRoaXMgZnVuY3Rpb24KKyAqICAgICAgICAgICAgICByZXR1cm5zIDxj
b2RlPlRSVUU8L2NvZGU+LgorICogQHJldHVybiBUUlVFIGlmIHRoZSBjdXJyZW50IGRhdGEgbWVt
b3J5IGlzIGFjY2VwdGFibGUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIFVCb29s
IFVfQ0FMTENPTlYKK1VEYXRhTWVtb3J5SXNBY2NlcHRhYmxlKHZvaWQgKmNvbnRleHQsCisgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAor
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVURhdGFJbmZvICpwSW5mbyk7CisKKworLyoq
CisgKiBDb252ZW5pZW5jZSBmdW5jdGlvbi4KKyAqIFRoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNh
bWUgYXMgPGNvZGU+dWRhdGFfb3BlbkNob2ljZTwvY29kZT4KKyAqIGV4Y2VwdCB0aGF0IGFueSBk
YXRhIHRoYXQgbWF0Y2hlcyB0aGUgdHlwZSBhbmQgbmFtZQorICogaXMgYXNzdW1lZCB0byBiZSBh
Y2NlcHRhYmxlLgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5k
L29yIGEgYmFzZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0
YSBpbiB0aGUgZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBm
b3IgSUNVIGRhdGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUg
dHlwZSBvZiBkYXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCBy
ZXNvdXJjZSBidW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAg
ICAgY29udmVyc2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhp
cyBtYXkgYmUgPGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0
cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBwRXJy
b3JDb2RlIEFuIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+
TlVMTDwvY29kZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAoaGFuZGxlKSB0byBhIGRhdGEgbWVt
b3J5IG9iamVjdCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAqICAgICAgICAgaWYgYW4gZXJyb3Ig
b2NjdXJzLiBDYWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPgorICogICAgICAgICB0
byBnZXQgYSBwb2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4KKyAqCisgKiBAc2VlIHVkYXRhX29w
ZW5DaG9pY2UKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAq
IFVfRVhQT1JUMgordWRhdGFfb3Blbihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBl
LCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsK
KworLyoqCisgKiBEYXRhIGxvYWRpbmcgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVz
ZWQgdG8gZmluZCBhbmQgbG9hZCBlZmZpY2llbnRseSBkYXRhIGZvcgorICogSUNVIGFuZCBhcHBs
aWNhdGlvbnMgdXNpbmcgSUNVLgorICogSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNl
IHRoYXQgYWxsb3dzIHRvIHNwZWNpZnkgYSBkYXRhCisgKiB0eXBlIGFuZCBuYW1lIHRvIGZpbmQg
YW5kIGxvYWQgdGhlIGRhdGEuCisgKgorICogPHA+VGhlIGltcGxlbWVudGF0aW9uIGRlcGVuZHMg
b24gcGxhdGZvcm0gcHJvcGVydGllcyBhbmQgdXNlciBwcmVmZXJlbmNlcworICogYW5kIG1heSBp
bnZvbHZlIGxvYWRpbmcgc2hhcmVkIGxpYnJhcmllcyAoRExMcyksIG1hcHBpbmcKKyAqIGZpbGVz
IGludG8gbWVtb3J5LCBvciBmb3BlbigpL2ZyZWFkKCkgZmlsZXMuCisgKiBJdCBtYXkgYWxzbyBp
bnZvbHZlIHVzaW5nIHN0YXRpYyBtZW1vcnkgb3IgZGF0YWJhc2UgcXVlcmllcyBldGMuCisgKiBT
ZXZlcmFsIG9yIGFsbCBkYXRhIGl0ZW1zIG1heSBiZSBjb21iaW5lZCBpbnRvIG9uZSBlbnRpdHkK
KyAqIChETEwsIG1lbW9yeS1tYXBwYWJsZSBmaWxlKS48L3A+CisgKgorICogPHA+VGhlIGRhdGEg
aXMgYWx3YXlzIHByZWNlZGVkIGJ5IGEgaGVhZGVyIHRoYXQgaW5jbHVkZXMKKyAqIGEgPGNvZGU+
VURhdGFJbmZvPC9jb2RlPiBzdHJ1Y3R1cmUuCisgKiBUaGUgY2FsbGVyJ3MgPGNvZGU+aXNBY2Nl
cHRhYmxlKCk8L2NvZGU+IGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBtYWtlCisgKiBzdXJlIHRoYXQg
dGhlIGRhdGEgaXMgdXNlZnVsLiBJdCBtYXkgYmUgY2FsbGVkIHNldmVyYWwgdGltZXMgaWYgaXQK
KyAqIHJlamVjdHMgdGhlIGRhdGEgYW5kIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgbG9jYXRpb24g
d2l0aCBkYXRhCisgKiBtYXRjaGluZyB0aGUgdHlwZSBhbmQgbmFtZS48L3A+CisgKgorICogPHA+
SWYgPGNvZGU+cGF0aD09TlVMTDwvY29kZT4sIHRoZW4gSUNVIGRhdGEgaXMgbG9hZGVkLgorICog
T3RoZXJ3aXNlLCBpdCBpcyBzZXBhcmF0ZWQgaW50byBhIGJhc2VuYW1lIGFuZCBhIGJhc2VuYW1l
LWxlc3MgZGlyZWN0b3J5IHN0cmluZy4KKyAqIFRoZSBiYXNlbmFtZSBpcyB1c2VkIGFzIHRoZSBk
YXRhIHBhY2thZ2UgbmFtZSwgYW5kIHRoZSBkaXJlY3RvcnkgaXMKKyAqIGxvZ2ljYWxseSBwcmVw
ZW5kZWQgdG8gdGhlIElDVSBkYXRhIGRpcmVjdG9yeSBzdHJpbmcuPC9wPgorICoKKyAqIDxwPkZv
ciBkZXRhaWxzIGFib3V0IElDVSBkYXRhIGxvYWRpbmcgc2VlIHRoZSBVc2VyIEd1aWRlCisgKiBE
YXRhIE1hbmFnZW1lbnQgY2hhcHRlci4gKGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRl
L2ljdWRhdGEuaHRtbCk8L3A+CisgKgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29s
dXRlIHBhdGggYW5kL29yIGEgYmFzZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGlu
ZyBvZiB0aGUgZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5O
VUxMPC9jb2RlPiBmb3IgSUNVIGRhdGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNw
ZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZv
ciBleGFtcGxlLCByZXNvdXJjZSBidW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAor
ICogICAgICAgICAgICAgY29udmVyc2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAg
ICAgICAgICAgVGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFy
YW0gbmFtZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAq
IEBwYXJhbSBpc0FjY2VwdGFibGUgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRo
YXQgbG9hZGVkIGRhdGEKKyAqICAgICAgICAgICAgICAgICAgICAgaXMgdXNlZnVsIGZvciB0aGUg
Y2xpZW50IGNvZGUuIElmIGl0IHJldHVybnMgRkFMU0UKKyAqICAgICAgICAgICAgICAgICAgICAg
Zm9yIGFsbCBkYXRhIGl0ZW1zLCB0aGVuIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4K
KyAqICAgICAgICAgICAgICAgICAgICAgd2lsbCByZXR1cm4gd2l0aCBhbiBlcnJvci4KKyAqIEBw
YXJhbSBjb250ZXh0IEFyYml0cmFyeSBwYXJhbWV0ZXIgdG8gYmUgcGFzc2VkIGludG8gaXNBY2Nl
cHRhYmxlLgorICogQHBhcmFtIHBFcnJvckNvZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVy
LiBJdCBtdXN0IG5vdCBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEByZXR1cm4gQSBwb2ludGVy
IChoYW5kbGUpIHRvIGEgZGF0YSBtZW1vcnkgb2JqZWN0LCBvciA8Y29kZT5OVUxMPC9jb2RlPgor
ICogICAgICAgICBpZiBhbiBlcnJvciBvY2N1cnMuIENhbGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5
KCk8L2NvZGU+CisgKiAgICAgICAgIHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRh
LgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIFVEYXRhTWVtb3J5ICogVV9FWFBP
UlQyCit1ZGF0YV9vcGVuQ2hvaWNlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUs
IGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgIFVEYXRhTWVtb3J5SXNBY2NlcHRh
YmxlICppc0FjY2VwdGFibGUsIHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgIFVFcnJv
ckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENsb3NlIHRoZSBkYXRhIG1lbW9yeS4KKyAq
IFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgdG8gYWxsb3cgdGhlIHN5c3RlbSB0bworICog
cmVsZWFzZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGF0YSBtZW1vcnkuCisgKiBA
cGFyYW0gcERhdGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBtZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxl
IElDVSAyLjAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2Nsb3NlKFVEYXRh
TWVtb3J5ICpwRGF0YSk7CisKKyNpZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFD
RV9CRUdJTgorCisvKioKKyAqIFxjbGFzcyBMb2NhbFVEYXRhTWVtb3J5UG9pbnRlcgorICogIlNt
YXJ0IHBvaW50ZXIiIGNsYXNzLCBjbG9zZXMgYSBVRGF0YU1lbW9yeSB2aWEgdWRhdGFfY2xvc2Uo
KS4KKyAqIEZvciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xh
c3MuCisgKgorICogQHNlZSBMb2NhbFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgor
ICogQHN0YWJsZSBJQ1UgNC40CisgKi8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2Nh
bFVEYXRhTWVtb3J5UG9pbnRlciwgVURhdGFNZW1vcnksIHVkYXRhX2Nsb3NlKTsKKworVV9OQU1F
U1BBQ0VfRU5ECisKKyNlbmRpZgorCisvKioKKyAqIEdldCB0aGUgcG9pbnRlciB0byB0aGUgYWN0
dWFsIGRhdGEgaW5zaWRlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoZSBkYXRhIGlzIHJlYWQtb25s
eS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3Vs
ZCBiZSAxNi1hbGlnbmVkLgorICoKKyAqIEBwYXJhbSBwRGF0YSBUaGUgcG9pbnRlciB0byBkYXRh
IG1lbW9yeSBvYmplY3QKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBjb25zdCB2
b2lkICogVV9FWFBPUlQyCit1ZGF0YV9nZXRNZW1vcnkoVURhdGFNZW1vcnkgKnBEYXRhKTsKKwor
LyoqCisgKiBHZXQgdGhlIGluZm9ybWF0aW9uIGZyb20gdGhlIGRhdGEgbWVtb3J5IGhlYWRlci4K
KyAqIFRoaXMgYWxsb3dzIHRvIGdldCBhY2Nlc3MgdG8gdGhlIGhlYWRlciBjb250YWluaW5nCisg
KiBwbGF0Zm9ybSBkYXRhIHByb3BlcnRpZXMgZXRjLiB3aGljaCBpcyBub3QgcGFydCBvZgorICog
dGhlIGRhdGEgaXRzZWxmIGFuZCBjYW4gdGhlcmVmb3JlIG5vdCBiZSBhY2Nlc3NlZAorICogdmlh
IHRoZSBwb2ludGVyIHRoYXQgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+IHJldHVybnMu
CisgKgorICogQHBhcmFtIHBEYXRhIHBvaW50ZXIgdG8gdGhlIGRhdGEgbWVtb3J5IG9iamVjdAor
ICogQHBhcmFtIHBJbmZvIHBvaW50ZXIgdG8gYSBVRGF0YUluZm8gb2JqZWN0OworICogICAgICAg
ICAgICAgIGl0cyA8Y29kZT5zaXplPC9jb2RlPiBmaWVsZCBtdXN0IGJlIHNldCBjb3JyZWN0bHks
CisgKiAgICAgICAgICAgICAgdHlwaWNhbGx5IHRvIDxjb2RlPnNpemVvZihVRGF0YUluZm8pPC9j
b2RlPi4KKyAqCisgKiA8Y29kZT4qcEluZm88L2NvZGU+IHdpbGwgYmUgZmlsbGVkIHdpdGggdGhl
IFVEYXRhSW5mbyBzdHJ1Y3R1cmUKKyAqIGluIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QuIElmIHRo
aXMgc3RydWN0dXJlIGlzIHNtYWxsZXIgdGhhbgorICogPGNvZGU+cEluZm8tPnNpemU8L2NvZGU+
LCB0aGVuIHRoZSA8Y29kZT5zaXplPC9jb2RlPiB3aWxsIGJlCisgKiBhZGp1c3RlZCBhbmQgb25s
eSBwYXJ0IG9mIHRoZSBzdHJ1Y3R1cmUgd2lsbCBiZSBmaWxsZWQuCisgKiBAc3RhYmxlIElDVSAy
LjAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2dldEluZm8oVURhdGFNZW1v
cnkgKnBEYXRhLCBVRGF0YUluZm8gKnBJbmZvKTsKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5
cGFzc2VzIHRoZSBub3JtYWwgSUNVIGRhdGEgbG9hZGluZyBwcm9jZXNzIGFuZAorICogYWxsb3dz
IHlvdSB0byBmb3JjZSBJQ1UncyBzeXN0ZW0gZGF0YSB0byBjb21lIG91dCBvZiBhIHVzZXItc3Bl
Y2lmaWVkCisgKiBhcmVhIGluIG1lbW9yeS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxl
YXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91
c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRo
aXMgZGF0YSBpcyB0aGF0IG9mIHRoZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgYXMgaXMKKyAqIGdl
bmVyYXRlZCBieSB0aGUgcGtnZGF0YSB0b29sIHdpdGggbW9kZT1jb21tb24gb3IgbW9kZT1kbGwu
CisgKiBZb3UgY2FuIHJlYWQgaW4gYSB3aG9sZSBjb21tb24gbW9kZSBmaWxlIGFuZCBwYXNzIHRo
ZSBhZGRyZXNzIHRvIHRoZSBzdGFydCBvZiB0aGUKKyAqIGRhdGEsIG9yICh3aXRoIHRoZSBhcHBy
b3ByaWF0ZSBsaW5rIG9wdGlvbnMpIHBhc3MgaW4gdGhlIHBvaW50ZXIgdG8KKyAqIHRoZSBkYXRh
IHRoYXQgaGFzIGJlZW4gbG9hZGVkIGZyb20gYSBkbGwgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0s
CisgKiBhcyBzaG93biBpbiB0aGlzIGNvZGU6CisgKgorICogICAgICAgZXh0ZXJuIGNvbnN0IGNo
YXIgVV9JTVBPUlQgVV9JQ1VEQVRBX0VOVFJZX1BPSU5UIFtdOworICogICAgICAgIC8vIFVfSUNV
REFUQV9FTlRSWV9QT0lOVCBpcyBzYW1lIGFzIGVudHJ5IHBvaW50IHNwZWNpZmllZCB0byBwa2dk
YXRhIHRvb2wKKyAqICAgICAgIFVFcnJvckNvZGUgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAq
CisgKiAgICAgICB1ZGF0YV9zZXRDb21tb25EYXRhKCZVX0lDVURBVEFfRU5UUllfUE9JTlQsICZz
dGF0dXMpOworICoKKyAqIEl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBkZWNsYXJhdGlvbiBiZSBh
cyBhYm92ZS4gVGhlIGVudHJ5IHBvaW50CisgKiBtdXN0IG5vdCBiZSBkZWNsYXJlZCBhcyBhbiBl
eHRlcm4gdm9pZCouCisgKgorICogU3RhcnRpbmcgd2l0aCBJQ1UgNC40LCBpdCBpcyBwb3NzaWJs
ZSB0byBzZXQgc2V2ZXJhbCBkYXRhIHBhY2thZ2VzLAorICogb25lIHBlciBjYWxsIHRvIHRoaXMg
ZnVuY3Rpb24uCisgKiB1ZGF0YV9vcGVuKCkgd2lsbCBsb29rIGZvciBkYXRhIGluIHRoZSBtdWx0
aXBsZSBkYXRhIHBhY2thZ2VzIGluIHRoZSBvcmRlcgorICogaW4gd2hpY2ggdGhleSB3ZXJlIHNl
dC4KKyAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGlua2VkLWluIG9yIGRlZmF1bHQtbmFtZSBJQ1Ug
LmRhdGEgcGFja2FnZSBpbiB0aGUKKyAqIHNlYXJjaCBsaXN0IGRlcGVuZHMgb24gd2hlbiB0aGUg
Zmlyc3QgZGF0YSBpdGVtIGlzIGxvYWRlZCB0aGF0IGlzIG5vdCBjb250YWluZWQKKyAqIGluIHRo
ZSBhbHJlYWR5IGV4cGxpY2l0bHkgc2V0IHBhY2thZ2VzLgorICogSWYgZGF0YSB3YXMgbG9hZGVk
IGltcGxpY2l0bHkgYmVmb3JlIHRoZSBmaXJzdCBjYWxsIHRvIHRoaXMgZnVuY3Rpb24KKyAqIChm
b3IgZXhhbXBsZSwgdmlhIG9wZW5pbmcgYSBjb252ZXJ0ZXIsIGNvbnN0cnVjdGluZyBhIFVuaWNv
ZGVTdHJpbmcKKyAqIGZyb20gZGVmYXVsdC1jb2RlcGFnZSBkYXRhLCB1c2luZyBmb3JtYXR0aW5n
IG9yIGNvbGxhdGlvbiBBUElzLCBldGMuKSwKKyAqIHRoZW4gdGhlIGRlZmF1bHQgZGF0YSB3aWxs
IGJlIGZpcnN0IGluIHRoZSBsaXN0LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVj
dCBvbiBhcHBsaWNhdGlvbiAobm9uIElDVSkgZGF0YS4gIFNlZSB1ZGF0YV9zZXRBcHBEYXRhKCkK
KyAqIGZvciBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgZm9yIGFwcGxpY2F0aW9uIGRhdGEuCisgKgor
ICogQHBhcmFtIGRhdGEgcG9pbnRlciB0byBJQ1UgY29tbW9uIGRhdGEKKyAqIEBwYXJhbSBlcnIg
b3V0Z29pbmcgZXJyb3Igc3RhdHVzIDxjb2RlPlVfVVNJTkdfREVGQVVMVF9XQVJOSU5HLCBVX1VO
U1VQUE9SVEVEX0VSUk9SPC9jb2RlPgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxF
IHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRDb21tb25EYXRhKGNvbnN0IHZvaWQgKmRhdGEsIFVF
cnJvckNvZGUgKmVycik7CisKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBu
b3JtYWwgSUNVIGRhdGEgbG9hZGluZyBwcm9jZXNzIGZvciBhcHBsaWNhdGlvbi1zcGVjaWZpYwor
ICogZGF0YSBhbmQgYWxsb3dzIHlvdSB0byBmb3JjZSB0aGUgaXQgdG8gY29tZSBvdXQgb2YgYSB1
c2VyLXNwZWNpZmllZAorICogcG9pbnRlci4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxl
YXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91
c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRo
aXMgZGF0YSBpcyB0aGF0IG9mIHRoZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgbGlrZSAnaWN1ZHQy
NmwuZGF0JworICogb3IgdGhlIGNvcnJlc3BvbmRpbmcgc2hhcmVkIGxpYnJhcnkgKERMTCkgZmls
ZS4KKyAqIFRoZSBhcHBsaWNhdGlvbiBtdXN0IHJlYWQgaW4gb3Igb3RoZXJ3aXNlIGNvbnN0cnVj
dCBhbiBpbWFnZSBvZiB0aGUgZGF0YSBhbmQgdGhlbgorICogcGFzcyB0aGUgYWRkcmVzcyBvZiBp
dCB0byB0aGlzIGZ1bmN0aW9uLgorICoKKyAqCisgKiBXYXJuaW5nOiAgc2V0QXBwRGF0YSB3aWxs
IHNldCBhIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGNvZGUgaWYKKyAqICAgICAgICAgICBkYXRh
IHdpdGggdGhlIHNwZWNpZmVkIHBhdGggdGhhdCBoYXMgYWxyZWFkeSBiZWVuIG9wZW5lZCwgb3IK
KyAqICAgICAgICAgICBpZiBzZXRBcHBEYXRhIHdpdGggdGhlIHNhbWUgcGF0aCBoYXMgYWxyZWFk
eSBiZWVuIGNhbGxlZC4KKyAqICAgICAgICAgICBBbnkgc3VjaCBjYWxscyB0byBzZXRBcHBEYXRh
IHdpbGwgaGF2ZSBubyBlZmZlY3QuCisgKgorICoKKyAqIEBwYXJhbSBwYWNrYWdlTmFtZSB0aGUg
cGFja2FnZSBuYW1lIGJ5IHdoaWNoIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZmVyCisgKiAgICAg
ICAgICAgICB0byAob3BlbikgdGhpcyBkYXRhCisgKiBAcGFyYW0gZGF0YSBwb2ludGVyIHRvIHRo
ZSBkYXRhCisgKiBAcGFyYW0gZXJyIG91dGdvaW5nIGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5H
X0RFRkFVTFRfV0FSTklORywgVV9VTlNVUFBPUlRFRF9FUlJPUjwvY29kZT4KKyAqIEBzZWUgdWRh
dGFfc2V0Q29tbW9uRGF0YQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQg
VV9FWFBPUlQyCit1ZGF0YV9zZXRBcHBEYXRhKGNvbnN0IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25z
dCB2b2lkICpkYXRhLCBVRXJyb3JDb2RlICplcnIpOworCisvKioKKyAqIFBvc3NpYmxlIHNldHRp
bmdzIGZvciB1ZGF0YV9zZXRGaWxlQWNjZXNzKCkKKyAqIEBzZWUgdWRhdGFfc2V0RmlsZUFjY2Vz
cworICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK3R5cGVkZWYgZW51bSBVRGF0YUZpbGVBY2Nlc3Mg
eworICAgIC8qKiBJQ1UgbG9va3MgZm9yIGRhdGEgaW4gc2luZ2xlIGZpbGVzIGZpcnN0LCB0aGVu
IGluIHBhY2thZ2VzLiAoZGVmYXVsdCkgQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklM
RVNfRklSU1QsCisgICAgLyoqIEFuIGFsaWFzIGZvciB0aGUgZGVmYXVsdCBhY2Nlc3MgbW9kZS4g
QHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfREVGQVVMVF9BQ0NFU1MgPSBVREFUQV9GSUxF
U19GSVJTVCwKKyAgICAvKiogSUNVIG9ubHkgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzLCBub3Qg
ZnJvbSBzaW5nbGUgZmlsZXMuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX09OTFlfUEFD
S0FHRVMsCisgICAgLyoqIElDVSBsb2FkcyBkYXRhIGZyb20gcGFja2FnZXMgZmlyc3QsIGFuZCBv
bmx5IGZyb20gc2luZ2xlIGZpbGVzCisgICAgICAgIGlmIHRoZSBkYXRhIGNhbm5vdCBiZSBmb3Vu
ZCBpbiBhIHBhY2thZ2UuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX1BBQ0tBR0VTX0ZJ
UlNULAorICAgIC8qKiBJQ1UgZG9lcyBub3QgYWNjZXNzIHRoZSBmaWxlIHN5c3RlbSBmb3IgZGF0
YSBsb2FkaW5nLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9OT19GSUxFUywKKyAgICAv
KiogTnVtYmVyIG9mIHJlYWwgVURhdGFGaWxlQWNjZXNzIHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40
ICovCisgICAgVURBVEFfRklMRV9BQ0NFU1NfQ09VTlQKK30gVURhdGFGaWxlQWNjZXNzOworCisv
KioKKyAqIFRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCB0byBjb250cm9sIGhvdyBJQ1UgbG9h
ZHMgZGF0YS4gSXQgbXVzdCBiZSBjYWxsZWQKKyAqIGJlZm9yZSBhbnkgSUNVIGRhdGEgaXMgbG9h
ZGVkLCBpbmNsdWRpbmcgYXBwbGljYXRpb24gZGF0YSBsb2FkZWQgd2l0aCAKKyAqIHVyZXMvUmVz
b3VyY2VCdW5kbGUgb3IgdWRhdGEgQVBJcy4gVGhpcyBmdW5jdGlvbiBpcyBub3QgbXVsdGl0aHJl
YWQgc2FmZS4gIAorICogVGhlIHJlc3VsdHMgb2YgY2FsbGluZyBpdCB3aGlsZSBvdGhlciB0aHJl
YWRzIGFyZSBsb2FkaW5nIGRhdGEgYXJlIHVuZGVmaW5lZC4KKyAqIEBwYXJhbSBhY2Nlc3MgVGhl
IHR5cGUgb2YgZmlsZSBhY2Nlc3MgdG8gYmUgdXNlZAorICogQHBhcmFtIHN0YXR1cyBFcnJvciBj
b2RlLgorICogQHNlZSBVRGF0YUZpbGVBY2Nlc3MKKyAqIEBzdGFibGUgSUNVIDMuNCAKKyAqLwor
VV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3NldEZpbGVBY2Nlc3MoVURhdGFGaWxlQWNj
ZXNzIGFjY2VzcywgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworVV9DREVDTF9FTkQKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmggYi9Tb3VyY2UvV1RG
L2ljdS91bmljb2RlL3VtaXNjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg1NDUxZmM3NjdjMDU4MzVmNmMxNWY1
NjZmMzU2MmUyZDRhZjgzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNv
ZGUvdW1pc2MuaApAQCAtMCwwICsxLDYwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHly
aWdodCAoQykgMTk5OS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAg
Q29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqICAgZmlsZSBuYW1lOiAgdW1pc2MuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisq
ICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNy
ZWF0ZWQgb246IDE5OTlvY3QxNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisq
LworCisjaWZuZGVmIFVNSVNDX0gKKyNkZWZpbmUgVU1JU0NfSAorCisjaW5jbHVkZSAidW5pY29k
ZS91dHlwZXMuaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmICBDIEFQSTptaXNjIGRlZmlu
aXRpb25zIAorICoKKyAqICBUaGlzIGZpbGUgY29udGFpbnMgbWlzY2VsbGFuZW91cyBkZWZpbml0
aW9ucyBmb3IgdGhlIEMgQVBJcy4gCisgKi8KKworVV9DREVDTF9CRUdJTgorCisvKiogQSBzdHJ1
Y3QgcmVwcmVzZW50aW5nIGEgcmFuZ2Ugb2YgdGV4dCBjb250YWluaW5nIGEgc3BlY2lmaWMgZmll
bGQgCisgKiAgQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IFVGaWVsZFBvc2l0
aW9uIHsKKyAgLyoqCisgICAqIFRoZSBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICBpbnQzMl90IGZpZWxkOworICAvKioKKyAgICogVGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHJh
bmdlIGNvbnRhaW5pbmcgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50
MzJfdCBiZWdpbkluZGV4OworICAvKiogCisgICAqIFRoZSBsaW1pdCBvZiB0aGUgdGV4dCByYW5n
ZSBjb250YWluaW5nIGZpZWxkIAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMy
X3QgZW5kSW5kZXg7Cit9IFVGaWVsZFBvc2l0aW9uOworCisjaWYgIVVDT05GSUdfTk9fU0VSVklD
RQorLyoqCisgKiBPcGFxdWUgdHlwZSByZXR1cm5lZCBieSByZWdpc3Rlckluc3RhbmNlLCByZWdp
c3RlckZhY3RvcnkgYW5kIHVucmVnaXN0ZXIgZm9yIHNlcnZpY2UgcmVnaXN0cmF0aW9uLgorICog
QHN0YWJsZSBJQ1UgMi42CisgKi8KK3R5cGVkZWYgY29uc3Qgdm9pZCogVVJlZ2lzdHJ5S2V5Owor
I2VuZGlmCisKK1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMWE1ZDEwYzRhZDJhYTAyYzZiYWZhYmM3M2YyZDU3Y2E5OTJhOGI2NQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAg
LTAsMCArMSw0NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisj
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4g
KCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisjIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK0JSRUFLSU5HX1JVTEVTX0ZJTEVTID0gXAorICAg
IEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmJyayBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmJyayBcCisgICAgQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5icmsgXAorICAgIEJyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5icmsgXAorICAgIEJyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5icmsKKworYWxsIDogJChC
UkVBS0lOR19SVUxFU19GSUxFUykKKworQnJlYWtpbmdSdWxlcy8lLmJyayA6ICUucHAKKwkuL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyayAtYyAtciAkPCAtbyAkQAorCitDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMucHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9D
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0CisJLXVuaWZkZWYgLURBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQ9JChBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQpIC1ESEFWRV9FWFRSQV9JQ1Vf
TkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRAICQ8CisKK0xpbmVC
cmVha0l0ZXJhdG9yJS5wcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yUHJvbG9ndWUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yJS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JFcGlsb2d1ZS50eHQKKwktY2F0ICQ/IHwgdW5pZmRlZiAtREFERElUSU9OQUxfRU1P
SklfU1VQUE9SVD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCkgLURIQVZFX0VYVFJBX0lDVV9O
QU1FRF9TRVRTPSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUykgLW8gJEAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWUxNTE2NzIwYmZhZjEzZjFjYjAwMTEz
OWRkZTQzYjk1MGUwNTcwNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0CkBAIC0wLDAgKzEs
MTQyIEBACiskQ1IgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07Cisk
TEYgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExGfV07CiskQ29udHJvbCA9
IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsKKyRWb2ljZU1hcmtzID0g
W1xcdUZGOUVcXHVGRjlGXTsgIyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBt
YXJrcworJEV4dGVuZCAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRW
b2ljZU1hcmtzIC0gW1xcdTBFMzAgXFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVCMl1dOwor
JFNwYWNpbmdNYXJrID0gW1tcXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31dIC0g
JEV4dGVuZF07CiskTCAgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsK
KyRWICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOworJFQgICAgICAg
PSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07CiskTFYgICAgICA9IFtcXHB7R3Jh
cGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07CiskTFZUICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IExWVH1dOworJEhpbjAgICAgPSBbXFx1MDkwNS1cXHUwOTM5XTsgIyBEZXZh
bmFnYXJpIExldHRlciBBLC4uLixIYQorJEhpblYgICAgPSBcXHUwOTREOyAjIERldmFuYWdhcmkg
U2lnbiBWaXJhbWEKKyRIaW4xICAgID0gW1xcdTA5MTUtXFx1MDkzOV07ICMgRGV2YW5hZ2FyaSBM
ZXR0ZXIgS2EsLi4uLEhhCiskQmVuMCAgICA9IFtcXHUwOTg1LVxcdTA5QjldOyAjIEJlbmdhbGkg
TGV0dGVyIEEsLi4uLEhhCiskQmVuViAgICA9IFxcdTA5Q0Q7ICMgQmVuZ2FsaSBTaWduIFZpcmFt
YQorJEJlbjEgICAgPSBbXFx1MDk5NS1cXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBLYSwuLi4s
SGEKKyRQYW4wICAgID0gW1xcdTBBMDUtXFx1MEEzOV07ICMgR3VybXVraGkgTGV0dGVyIEEsLi4u
LEhhCiskUGFuViAgICA9IFxcdTBBNEQ7ICMgR3VybXVraGkgU2lnbiBWaXJhbWEKKyRQYW4xICAg
ID0gW1xcdTBBMTUtXFx1MEEzOV07ICMgR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQorJEd1ajAg
ICAgPSBbXFx1MEE4NS1cXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKKyRHdWpW
ICAgID0gXFx1MEFDRDsgIyBHdWphcmF0aSBTaWduIFZpcmFtYQorJEd1ajEgICAgPSBbXFx1MEE5
NS1cXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCiskT3JpMCAgICA9IFtcXHUw
QjA1LVxcdTBCMzldOyAjIE9yaXlhIExldHRlciBBLC4uLixIYQorJE9yaVYgICAgPSBcXHUwQjRE
OyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3JpMSAgICA9IFtcXHUwQjE1LVxcdTBCMzldOyAjIE9y
aXlhIExldHRlciBLYSwuLi4sSGEKKyRUZWwwICAgID0gW1xcdTBDMDUtXFx1MEMzOV07ICMgVGVs
dWd1IExldHRlciBBLC4uLixIYQorJFRlbFYgICAgPSBcXHUwQzREOyAjIFRlbHVndSBTaWduIFZp
cmFtYQorJFRlbDEgICAgPSBbXFx1MEMxNC1cXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEthLC4u
LixIYQorJEthbjAgICAgPSBbXFx1MEM4NS1cXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4u
LixIYQorJEthblYgICAgPSBcXHUwQ0NEOyAjIEthbm5hZGEgU2lnbiBWaXJhbWEKKyRLYW4xICAg
ID0gW1xcdTBDOTUtXFx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKKyRNYWwwICAg
ID0gW1xcdTBEMDUtXFx1MEQzOV07ICMgTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQorJE1hbFYg
ICAgPSBcXHUwRDREOyAjIE1hbGF5YWxhbSBTaWduIFZpcmFtYQorJE1hbDEgICAgPSBbXFx1MEQx
NS1cXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCiskUkkgICAgICA9IFtcXFUw
MDAxRjFFNi1cXFUwMDAxRjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycworJFpXSiAg
ICAgPSBcXHUyMDBEOyAjIFplcm8gd2lkdGggam9pbmVyCiskRW1vamlWYXIgPSBbXFx1RkUwRl07
ICMgRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCisKKyNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKKworICAgICRFbW9qaUZvclNlcXMgPSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2Rjkg
XFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1c
XFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2
OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAx
RjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUw
MDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBc
XFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZC
NC1cXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2Vz
CisgICAgJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxc
VTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NC
IFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFG
NDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAw
MDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxc
VTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1
LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFG
NkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0
YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9
IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDhCXTsgIyBFbW9qaSB0
aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1xc
dTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0
IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFG
NDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAw
MDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxc
VTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3
IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFG
NkI2IFxcVTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVy
cworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07ICMg
Rml0enBhdHJpY2sgbW9kaWZpZXJzCishIWNoYWluOworCisjaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCisKKyAgICAhIVJJTm9DaGFpbjsKKworI2VuZGlmCisKKyEhZm9yd2FyZDsKKyRDUiAk
TEY7CiskTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8ICRWKSAoJFYgfCAkVCk7Ciso
JExWVCB8ICRUKSAkVDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJ
ICRSSSAkRXh0ZW5kKiAvICRSSTsKKyAgICAkUkkgJFJJICRFeHRlbmQqOworICAgIFteJENvbnRy
b2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFy
azsKKworI2Vsc2UKKworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRD
b250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKyAgICAkUkkgJFJJIC8gJFJJOworICAgICRS
SSAkUkk7CisKKyNlbmRpZgorCiskSGluMCAkSGluViAkSGluMTsgIyBEZXZhbmFnYXJpIFZpcmFt
YSAoZm9yd2FyZCkKKyRCZW4wICRCZW5WICRCZW4xOyAjIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJk
KQorJFBhbjAgJFBhblYgJFBhbjE7ICMgR3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQorJEd1ajAg
JEd1alYgJEd1ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQorJE9yaTAgJE9yaVYgJE9y
aTE7ICMgT3JpeWEgVmlyYW1hIChmb3J3YXJkKQorJFRlbDAgJFRlbFYgJFRlbDE7ICMgVGVsdWd1
IFZpcmFtYSAoZm9yd2FyZCkKKyRLYW4wICRLYW5WICRLYW4xOyAjIEthbm5hZGEgVmlyYW1hIChm
b3J3YXJkKQorJE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkK
KyRaV0ogJEVtb2ppRm9yU2VxczsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMK
KyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2Vl
biByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBG
aXR6cGF0cmljayBtb2RpZmllcgorISFyZXZlcnNlOworJExGICRDUjsKKygkTCB8ICRWIHwgJExW
IHwgJExWVCkgJEw7CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRUICgkTFZUIHwgJFQpOworCisj
aWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4
dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQgICAgICBb
XiRDb250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZd
OworCisjZWxzZQorCisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07CisgICAg
JFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFJJICRSSSAvICRSSSAkUkk7
CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4xICRIaW5WICRIaW4wOyAjIERldmFuYWdh
cmkgVmlyYW1hIChiYWNrd2FyZCkKKyRCZW4xICRCZW5WICRCZW4wOyAjIEJlbmdhbGkgVmlyYW1h
IChiYWNrd2FyZCkKKyRQYW4xICRQYW5WICRQYW4wOyAjIEd1cm11a2hpIFZpcmFtYSAoYmFja3dh
cmQpCiskR3VqMSAkR3VqViAkR3VqMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJE9y
aTEgJE9yaVYgJE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRUZWwxICRUZWxW
ICRUZWwwOyAjIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQorJEthbjEgJEthblYgJEthbjA7ICMg
S2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQorJE1hbDEgJE1hbFYgJE1hbDA7ICMgTWFsYXlhbGFt
IFZpcmFtYSAoYmFja3dhcmQpCiskRW1vamlGb3JTZXFzICRaV0o7ICMgRG9udCBicmVhayBpbiBl
bW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsg
IyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0
aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKworI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAorCisgICAgISFzYWZlX3JldmVyc2U7CisgICAgJFJJICRSSSs7CisgICAg
WyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAhIXNhZmVfZm9yd2Fy
ZDsKKyAgICAkUkkgJFJJKzsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9k
c10rOworCisjZWxzZQorCisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9k
czsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOworICAgICEhc2Fm
ZV9yZXZlcnNlOworICAgICEhc2FmZV9mb3J3YXJkOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3Vl
LnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
ckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzQzOTk4N2Q3MmU5NTcwM2IxZDhlMDY3ZmVhMzdl
MDY2OWY0NjhmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0wLDAgKzEsMzQ3IEBACisk
QUkgPSBbOkxpbmVCcmVhayA9IEFtYmlndW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBo
YWJldGljOl07CiskQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07
CiskQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsg
PSBNYW5kYXRvcnlfQnJlYWs6XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOwor
JENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVh
ayA9IENsb3NlX1B1bmN0dWF0aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19N
YXJrOl07CiskQ1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBb
OkxpbmVCcmVhayA9IENhcnJpYWdlX1JldHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhj
bGFtYXRpb246XSAtICRFWF9TVUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNp
ZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhl
YnJld19MZXR0ZXI6XTsKKworI2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0
ZXI6XV07CisKKyNlbmRpZgorCiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0g
WzpMaW5lQnJlYWsgPSBIMjpdOworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tb
WzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOwor
JElOID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6
TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVh
ayA9IEpMOl07CiskSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9
IEpUOl07CiskTEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJl
YWsgPSBOZXh0X0xpbmU6XTsKKyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0g
JENKXSAkTlNfQUREXSAtICROU19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07
CiskT1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVC
cmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsg
PSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3Rh
dGlvbjpdOworJFJJID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsKKyRTQSA9IFs6TGluZUJy
ZWFrID0gQ29tcGxleF9Db250ZXh0Ol07CiskU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpd
OworJFNQID0gWzpMaW5lQnJlYWsgPSBTcGFjZTpdOworJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVh
a19TeW1ib2xzOl07CiskV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9pbmVyOl07CiskWFggPSBb
OkxpbmVCcmVhayA9IFVua25vd246XTsKKyRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpdOwor
JFpXSiA9IFxcdTIwMEQ7CiskRW1vamlWYXIgPSBcXHVGRTBGOworCisjaWYgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUy
NkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYz
Q0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAw
MUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxV
MDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcg
XFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2
NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAw
MUY2QjQtXFxVMDAwMUY2QjZdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVl
bmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNkY5IFxcdTI3MEEtXFx1Mjcw
RCBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQSBcXFUwMDAx
RjNDQiBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUw
MDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBc
XFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRB
QSBcXFUwMDAxRjU3NSBcXFUwMDAxRjU5MCBcXFUwMDAxRjU5NSBcXFUwMDAxRjU5NiBcXFUwMDAx
RjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUw
MDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMCBcXFUwMDAxRjkxOF0gOyAjIEVtb2ppIHRo
YXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2Vsc2UKKworICAgICRFbW9qaUZvclNl
cXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07CisgICAg
JEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUw
MDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1c
XFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2
OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAx
RjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUw
MDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBc
XFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBG
aXR6cGF0cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFxVMDAwMUYz
RkItXFxVMDAwMUYzRkZdOworJGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29u
dGV4dDpdOworJEFMUGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsKKyRBTGNtID0gJEFMUGx1
cyAkQ00qOworJEJBY20gPSAkQkEgJENNKjsKKyRCQmNtID0gJEJCICRDTSo7CiskQjJjbSA9ICRC
MiAkQ00qOworJENMY20gPSAkQ0wgJENNKjsKKyRDUGNtID0gJENQICRDTSo7CiskRVhjbSA9ICRF
WCAkQ00qOworJEdMY20gPSAkR0wgJENNKjsKKyRITGNtID0gJEhMICRDTSo7CiskSFljbSA9ICRI
WSAkQ00qOworJEgyY20gPSAkSDIgJENNKjsKKyRIM2NtID0gJEgzICRDTSo7CiskSURjbSA9ICRJ
RCAkQ00qOworJElOY20gPSAkSU4gJENNKjsKKyRJU2NtID0gJElTICRDTSo7CiskSkxjbSA9ICRK
TCAkQ00qOworJEpWY20gPSAkSlYgJENNKjsKKyRKVGNtID0gJEpUICRDTSo7CiskTlNjbSA9ICRO
UyAkQ00qOworJE5VY20gPSAkTlUgJENNKjsKKyRPUGNtID0gJE9QICRDTSo7CiskUE9jbSA9ICRQ
TyAkQ00qOworJFBSY20gPSAkUFIgJENNKjsKKyRRVWNtID0gJFFVICRDTSo7CiskUkljbSA9ICRS
SSAkQ00qOworJFNZY20gPSAkU1kgJENNKjsKKyRXSmNtID0gJFdKICRDTSo7CisKKyEhZm9yd2Fy
ZDsKKyRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07CiskQ0FOVF9DTSA9
IFskU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJEFMX0ZPTExPV19OT0NNID0gWyRCSyAk
Q1IgJExGICROTCAkWlcgJFNQXTsKKyRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJ
UyAkU1kgJFdKICRHTCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107CiskQUxf
Rk9MTE9XID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsKKyRMQjRCcmVha3MgPSBb
JEJLICRDUiAkTEYgJE5MXTsKKyRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICROTF07Cisk
TEI4QnJlYWtzID0gWyRMQjRCcmVha3MgJFpXXTsKKyRMQjhOb25CcmVha3MgPSBbWyRMQjROb25C
cmVha3NdIC0gWyRaV11dOworJExCMThOb25CcmVha3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1Bd
XTsKKyRMQjE4QnJlYWtzID0gWyRMQjhCcmVha3MgJFNQXTsKKyRMQjIwTm9uQnJlYWtzID0gWyRM
QjE4Tm9uQnJlYWtzIC0gJENCXTsKKyRBTFBsdXMgJENNKzsKKyRCQSAkQ00rOworJEJCICRDTSs7
CiskQjIgJENNKzsKKyRDTCAkQ00rOworJENQICRDTSs7CiskRVggJENNKzsKKyRHTCAkQ00rOwor
JEhMICRDTSs7CiskSFkgJENNKzsKKyRIMiAkQ00rOworJEgzICRDTSs7CiskSUQgJENNKzsKKyRJ
TiAkQ00rOworJElTICRDTSs7CiskSkwgJENNKzsKKyRKViAkQ00rOworJEpUICRDTSs7CiskTlMg
JENNKzsKKyROVSAkQ00rOworJE9QICRDTSs7CiskUE8gJENNKzsKKyRQUiAkQ00rOworJFFVICRD
TSs7CiskUkkgJENNKzsKKyRTWSAkQ00rOworJFdKICRDTSs7CiskQ1IgJExGIHsxMDB9OworJExC
NE5vbkJyZWFrcz8gJExCNEJyZWFrcyB7MTAwfTsKKyRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsx
MDB9OworJENNKyAkTEI0QnJlYWtzIHsxMDB9OworJExCNE5vbkJyZWFrcyBbJFNQICRaV107Cisk
Q0FOX0NNICRDTSogWyRTUCAkWlddOworJENNKyBbJFNQICRaV107CiskRW1vamlGb3JTZXFzICRF
bW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFzOworJENBTl9DTSAkQ00rOwor
JENNKzsKKyRDQU5fQ00gJENNKiAkV0pjbTsKKyRMQjhOb25CcmVha3MgJFdKY207CiskQ00rICRX
SmNtOworJFdKY20gJENBTlRfQ007CiskV0pjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOX0NN
ICRDTSo7CiskR0xjbSAkQ0FOVF9DTTsKK1tbJExCOE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFld
XSAkQ00qICRHTGNtOworJENNKyBHTGNtOworJExCOE5vbkJyZWFrcyAkQ0w7CiskQ0FOX0NNICRD
TSogJENMOworJENNKyAkQ0w7CiskTEI4Tm9uQnJlYWtzICRDUDsKKyRDQU5fQ00gJENNKiAkQ1A7
CiskQ00rICRDUDsKKyRMQjhOb25CcmVha3MgJEVYOworJENBTl9DTSAkQ00qICRFWDsKKyRDTSsg
JEVYOworJExCOE5vbkJyZWFrcyAkSVM7CiskQ0FOX0NNICRDTSogJElTOworJENNKyAkSVM7Cisk
TEI4Tm9uQnJlYWtzICRTWTsKKyRDQU5fQ00gJENNKiAkU1k7CiskQ00rICRTWTsKKyRPUGNtICRT
UCogJENBTl9DTSAkQ00qOworJE9QY20gJFNQKiAkQ0FOVF9DTTsKKyRPUGNtICRTUCsgJENNKyAk
QUxfRk9MTE9XPzsKKyRRVWNtICRTUCogJE9QY207CisoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNj
bTsKKyRCMmNtICRTUCogJEIyY207CiskTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOworJENNKyAk
UVVjbTsKKyRRVWNtIC4/OworJFFVY20gJExCMThOb25CcmVha3MgJENNKjsKKyRMQjIwTm9uQnJl
YWtzICRDTSogKCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7IAorJEJCY20gW14kQ0JdOworJEJCY20g
JExCMjBOb25CcmVha3MgJENNKjsKKyRITGNtICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OworJFNZ
Y20gJEhMY207CisoJEFMY20gfCAkSExjbSkgJElOY207CiskQ00rICRJTmNtOworJEVYY20gJElO
Y207CiskSURjbSAkSU5jbTsKKyRJTmNtICRJTmNtOworJE5VY20gJElOY207CiskSURjbSAkUE9j
bTsKKyRBTGNtICROVWNtOworJEhMY20gJE5VY207CiskQ00rICROVWNtOworJE5VY20gJEFMY207
CiskTlVjbSAkSExjbTsKKyRQUmNtICRJRGNtOworJFBSY20gKCRBTGNtIHwgJEhMY20pOworJFBP
Y20gKCRBTGNtIHwgJEhMY20pOworKCRQUmNtIHwgJFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICRO
VWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQ
T2NtKT87CiskSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRIMmNtIHwgJEgzY20pOworKCRKVmNtIHwg
JEgyY20pICgkSlZjbSB8ICRKVGNtKTsKKygkSlRjbSB8ICRIM2NtKSAkSlRjbTsKKygkSkxjbSB8
ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsKKygkSkxjbSB8ICRKVmNtIHwg
JEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkUE9jbTsKKyRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpU
Y20gfCAkSDJjbSB8ICRIM2NtKTsKKygkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7Cisk
Q00rICgkQUxjbSB8ICRITGNtKTsKKyRJU2NtICgkQUxjbSB8ICRITGNtKTsKKygkQUxjbSB8ICRI
TGNtIHwgJE5VY20pICRPUGNtOworJENNKyAkT1BjbTsKKyRDUGNtICgkQUxjbSB8ICRITGNtIHwg
JE5VY20pOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUkljbSAkUklj
bTsKKworI2VuZGlmCisKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOworCish
IXJldmVyc2U7CiskQ00rICRBTFBsdXM7CiskQ00rICRCQTsKKyRDTSsgJEJCOworJENNKyAkQjI7
CiskQ00rICRDTDsKKyRDTSsgJENQOworJENNKyAkRVg7CiskQ00rICRHTDsKKyRDTSsgJEhMOwor
JENNKyAkSFk7CiskQ00rICRIMjsKKyRDTSsgJEgzOworJENNKyAkSUQ7CiskQ00rICRJTjsKKyRD
TSsgJElTOworJENNKyAkSkw7CiskQ00rICRKVjsKKyRDTSsgJEpUOworJENNKyAkTlM7CiskQ00r
ICROVTsKKyRDTSsgJE9QOworJENNKyAkUE87CiskQ00rICRQUjsKKyRDTSsgJFFVOworCisjaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkQ00rICRSSTsKKworI2VuZGlmCisKKyRD
TSsgJFNZOworJENNKyAkV0o7CiskQ00rOworJEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRM
RiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAk
U1BdIHwgWyRBTCB7ZW9mfV0pKTsKK1skUFJdIC8gJENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAk
U1Age2VvZn1dOworJExCNEJyZWFrcyBbJExCNE5vbkJyZWFrcy0kQ01dOworJExCNEJyZWFrcyAk
Q00rICRDQU5fQ007CiskTEYgJENSOworWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07Citb
JFNQICRaV10gJENNKyAkQ0FOX0NNOworJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRF
bW9qaVZhcj8gJEVtb2ppRm9yU2VxczsKKyRDTSsgJENBTl9DTTsKKyRDTSogJFdKICRDTSogJENB
Tl9DTTsKKyRDTSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskQ0FOVF9DTSAkQ00qICRXSjsK
KyRDTSogJENBTl9DTSAkQ00qICRXSjsKKyRDTSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRD
TSAkU1AgJEJBICRIWV1dOworJENBTlRfQ00gJENNKiAkR0w7CiskQ00qICRDQU5fQ00gJENNKiAk
R0w7CiskQ0wgJENNKyAkQ0FOX0NNOworJENQICRDTSsgJENBTl9DTTsKKyRFWCAkQ00rICRDQU5f
Q007CiskSVMgJENNKyAkQ0FOX0NNOworJFNZICRDTSsgJENBTl9DTTsKKyRDTCBbJExCOE5vbkJy
ZWFrcy0kQ01dOworJENQIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskRVggWyRMQjhOb25CcmVha3Mt
JENNXTsKKyRJUyBbJExCOE5vbkJyZWFrcy0kQ01dOworJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07
CitbJENMICRDUCAkRVggJElTICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAKKyRDTSogJENBTl9D
TSAkU1AqICRDTSogJE9QOworJENBTlRfQ00gJFNQKiAkQ00qICRPUDsKKyRBTF9GT0xMT1c/ICRD
TSsgJFNQICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9Q
OworJENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRTWSAkQ00gJFNQKyAk
T1A7CiskQ00qICRPUCAkU1AqICRDTSogJFFVOworJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAk
Q1ApOworJENNKiAkQjIgJFNQKiAkQ00qICRCMjsKKyRDTSogJFFVICRDTSogJENBTl9DTTsKKyRD
TSogJFFVICRMQjE4Tm9uQnJlYWtzOworJENNKiAkQ0FOX0NNICRDTSogJFFVOworJENBTlRfQ00g
JENNKiAkUVU7CiskQ00qICgkQkEgfCAkSFkgfCAkTlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRD
TV07CiskQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dICRDTSogJEJCOworW14kQ0JdICRDTSogJEJC
OworW14kQ0JdICRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7CiskQ00qICRITCAkQ00qICRTWTsK
KyRDTSogJElOICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAkSU4gJENNKiAkRVg7CiskQ00q
ICRJTiAkQ00qICRJRDsKKyRDTSogJElOICRDTSogJElOOworJENNKiAkSU4gJENNKiAkTlU7Cisk
Q00qICRQTyAkQ00qICRJRDsKKyRDTSogJE5VICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAo
JEFMUGx1cyB8ICRITCkgJENNKiAkTlU7CiskQ00qICRJRCAkQ00qICRQUjsKKyRDTSogKCRBTFBs
dXMgfCAkSEwpICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87CisoJENN
KiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRT
WSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87Cisk
Q00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOworJENNKiAoJEpUIHwgJEpWKSAk
Q00qICgkSDIgfCAkSlYpOworJENNKiAkSlQgJENNKiAoJEgzIHwgJEpUKTsKKyRDTSogJElOICRD
TSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7CiskQ00qICRQTyAkQ00qICgkSDMgfCAk
SDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpM
KSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOwor
JENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkSVM7CiskQ00qICRPUCAkQ00qICgkQUxQbHVzIHwg
JEhMIHwgJE5VKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOworCisjaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkQ00qICRSSSAkQ00qICRSSTsKKworI2Vu
ZGlmCisKKyRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOworCishIXNhZmVfZm9y
d2FyZDsKK1skQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25h
cnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsK
KyRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OworICAgIAorISFzYWZlX3JldmVyc2U7CiskQ00rIFte
JENNICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsKKyRDTSsgJFNQIC8gLjsKKyRTUCsgJENNKiAk
T1A7CiskU1ArICRDTSogJFFVOworJFNQKyAkQ00qICgkQ0wgfCAkQ1ApOworJFNQKyAkQ00qICRC
MjsKKyRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7CisoJENNKiAoJElTIHwgJFNZKSkrICRDTSog
JE5VOworKCRDTCB8ICRDUCkgJENNKiAoJE5VIHwgJElTIHwgJFNZKTsKKyRkaWN0aW9uYXJ5ICRk
aWN0aW9uYXJ5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkN2M0
NDM1NWZjZTcyOGU2ZjMyZTU1OTViZDgwZWY2YmY5OTg2MGQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1
ZS50eHQKQEAgLTAsMCArMSwyMCBAQAorISFjaGFpbjsKKyEhTEJDTU5vQ2hhaW47CishIWxvb2tB
aGVhZEhhcmRCcmVhazsKKworJENKID0gWworCisjaWYgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VU
UworCisgICAgOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOgorCisjZWxz
ZQorCisgICAgXFx1MzA0MVxcdTMwNDNcXHUzMDQ1XFx1MzA0N1xcdTMwNDlcXHUzMDYzXFx1MzA4
M1xcdTMwODVcXHUzMDg3XFx1MzA4RVxcdTMwOTVcXHUzMDk2XFx1MzBBMVxcdTMwQTNcXHUzMEE1
XFx1MzBBNworICAgIFxcdTMwQTlcXHUzMEMzXFx1MzBFM1xcdTMwRTVcXHUzMEU3XFx1MzBFRVxc
dTMwRjVcXHUzMEY2XFx1MzBGQworICAgIFxcdTMxRjBcXHUzMUYxXFx1MzFGMlxcdTMxRjNcXHUz
MUY0XFx1MzFGNVxcdTMxRjZcXHUzMUY3XFx1MzFGOFxcdTMxRjlcXHUzMUZBXFx1MzFGQlxcdTMx
RkNcXHUzMUZEXFx1MzFGRVxcdTMxRkYKKyAgICBcXHVGRjY3XFx1RkY2OFxcdUZGNjlcXHVGRjZB
XFx1RkY2QlxcdUZGNkNcXHVGRjZEXFx1RkY2RVxcdUZGNkZcXHVGRjcwCisKKyNlbmRpZgorCitd
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3MzgyZDllMTIzZTAx
MmVjMTViN2NiY2VhYmQzNWYyMDdhMTVjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKQEAg
LTAsMCArMSwxMCBAQAorJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107CiskRVhfU1VCID0gJyc7
CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0g
W1xcdTMwMUNcXHUzMEEwXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQg
PSBbJENKICRCQV9TVUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3OGQzODFjOWQ0Y2U0ZDFlMDY4OTJk
ZDQ3YjNmODU0ZGRmNWIzOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApAQCAtMCww
ICsxLDEwIEBACiskQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsKKyRFWF9TVUIgPSBbXFx1MDAy
MVxcdTAwM0ZcXHVGRjAxXFx1RkYxRl07CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1xcdTIw
MjVcXHUyMDI2XTsKKyRJU19TVUIgPSBbXFx1MDAzQVxcdTAwM0JdOworJE5TX1NVQiA9IFtcXHUy
MDNDXFx1MjA0N1xcdTIwNDhcXHUyMDQ5XFx1MzAwNVxcdTMwMUNcXHUzMDNCXFx1MzA5RFxcdTMw
OUVcXHUzMEEwXFx1MzBGQlxcdTMwRkRcXHUzMEZFXFx1RkYxQVxcdUZGMUJcXHVGRjY1XTsKKyRQ
T19TVUIgPSBbXFx1MDAyNVxcdTAwQTJcXHUwMEIwXFx1MjAzMFxcdTIwMzJcXHUyMDMzXFx1MjEw
M1xcdUZGMDVcXHVGRkUwXTsKKyRQUl9TVUIgPSBbXFx1MDAyNFxcdTAwQTNcXHUwMEE1XFx1MjBB
Q1xcdTIxMTZcXHVGRjA0XFx1RkZFMVxcdUZGRTVdOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAk
RVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07CiskTlNfQURE
ID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ0OGNiNWQ5NTcwY2U2OTI1ZjVkNmU2MTc0NTcyZGRjMTlkZGFkZjEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0gJyc7
CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2
XTsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXFx1MzAwNVxcdTMwM0JcXHUzMDlEXFx1MzA5
RVxcdTMwRkRcXHUzMEZFXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQg
PSBbJENKICRJTl9TVUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
Sy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU5ZmNmMGY4YTk5MjIxMjBlYmIxMWRkNWRh
NDQxN2Y5MjY3NjI3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDEw
IEBACiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VC
ID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJf
U1VCID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTczODJkOWUxMjNlMDEyZWMx
NWI3Y2JjZWFiZDM1ZjIwN2ExNWNjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dApA
QCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsKKyRFWF9TVUIgPSAn
JzsKKyRJTl9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIg
PSBbXFx1MzAxQ1xcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FE
RCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjM1NTllYjFlZDY0
ZjI2M2Q4OWUxNjJkMzE3NzE5ODdjZGZjZmI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25D
SksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJ
RF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsK
KyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKXTsKKyROU19BREQg
PSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xNTlmY2YwZjhhOTkyMjEyMGViYjExZGQ1ZGE0NDE3ZjkyNjc2MjcyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3RDSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIgPSAnJzsKKyRFWF9T
VUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyRO
U19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsK
KyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9u
Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xNTlmY2YwZjhhOTkyMjEyMGViYjExZGQ1ZGE0NDE3ZjkyNjc2
MjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CkBAIC0wLDAgKzEsMTAgQEAK
KyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAn
JzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIg
PSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvZ2VuYnJrCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1MGFhNWQ4ZWMwYTRhNWU2MjljYTJk
MGE4NGQ4NjgyM2FkNGRmMTEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMxNDU2CnpjbWVIUGQz
O3BXeSs0eiUjSVFfSVI5dn1ZTFhqb091IWM9Q0Z1Xi1BZmYkSFZCQFVDQk5pdWFaR28xeSZMWXA+
OAp6PHVaPU9EbE5+fllIQWchbWNJQn01JURSYkVEPiFmOzhLKlR5dD8kcHBkIy16dFRPTldKTkx8
Rj1Ben0oZSU/UVEKelp8PilGJmlRVFVjWWYhMCo4N3tBe05kRTZYOXFINyRZcmNLaGNSe2AoJClj
dHdYdGdlRj9KYn1qQVhaMG5ReTRMCnp3VzR8dlE4T1B5Q2k7fmE9fjs7ZT9EaSFVT1A2R2RAY05+
aEckd0deI2ArXnNOc3J3Z2NDUVI7dSFkKnE+JG43Kwp6MGJAZ2ZDUFIzP0s1O150KF4wIVU2cHF3
fFFZNXs3VyM3PkI0SGNiQzs+aWttTExYZWxBNUVYVihkYFltZ1BgZDMKeiR6d0VxRkE5QnhsaXlS
JUlyY1I7b3AkJDFyI2xkfmhhR2kjZVIqUndlRjMzPkBDPHpeI1RzQ0BKNDR+MSRKWmR9CnpkVlM0
OC14ST1WZ3MxeVl1TihVT3pFSXpRPT1HSkJYIWEkQ20rKjliSWBpUEtpMEA5MSZ0Pj1jPml1QnFe
KGAwcgp6SXomYW5eKXt2SnE8TURgelA4JmY8fFhEZDRoLVQkQW0mTU96QT1IKmU4WmFIYkJ9Ny0/
TE16UHc1cUFqQDNqWlEKeiFMUVlxUjdkKSNlKTZJREYoSFlkd0EmbH1lT14xKXo1PilJYCFHSERM
JTNjYXh9SkxNY0NYYGEqO2dqP0hTJGd+CnpNdEhoRD5oSSl+SG5QWCUyc2A9K2RqRUJwSDJhbmRl
VDR0KmFqZ3NXdCtJM2IlTyt8MV43QCswdXVuOVQ7YFolSgp6SHRXSSM2JkM5ZiE3M055aWpxSH5K
VWx9fnNoe2IoTWxzZTVTMT94Ml98Ty1pPjt4SnxOJVcmQVNIZSteN1JDO3YKekJGKGlDTlArb2Bl
R0JELTNtSUZFITVzdiszVyotI1F5UGdoNEdDVFErTllxQkZ+P1ZNaGtfO3s0TXItN2dufWhyCnpQ
aEUqP21EZEhGby0yXjNqZDJlWmBKTGFOQHs/YX5gYFBqKDVBMU9sZj53YVUySWNkRjwocigrTTVY
IUVPIWVOeQp6ekxAP3tKN3F9M3FkcWJOUyNJY1M4fHswWDV2TT1zRTtiaiM1S2tSUmFyPyttZWYz
clglZEY9ZEg/Ryh1PmdkfXMKejxpQ24obFBTTT1SVmVJa0R4UkN4Mz55dXQpR3J4K3Ihe2Ulei1i
KWx4ZUFIKnk5VlBfIzdXc0s+dyZCWHZMNDhLCnpBblNwdzJlS1o+ZExaazh0T3YzbCRhKX5fZnZn
QXFOankqXkQ8M1ZjUWNsYSFES31rLSpaPGg7UzEpNEI2aiR4VAp6NypqaiYkfWNNfmYhZjJWdmEo
bTU0fkZ1LSs1Ozk8SHM0fnQqPDUyQHZSTUI5ayooO29SWEh3NGAoSzZsa3NMK2MKemloVyVia0M4
OHwoU2Zxa3w1TDxPPGsqbW5tb3Y3RkxRKDJ9M18mYkJaZHwoQEZgI3cqNH16Wkd8NEhQPUhpYDsw
CnomJVQlZkZ+LSYpWFBiYnUjKk04bVY3Qk8jITtySEBDbTI5Jm87YH5NIS1NN00/OF5ZRCRCY31M
bVFDQHB7eF5WVAp6aXghUWghZX17TSo4Z0B1YV9wK3s3byN2KjQkODRMa0V2VHhDJVdkYnd1Skcl
QG59SS1la0xhcDM4NilmT31QaWMKekhzIWNZZDhRbjZicUlJUDQhUH0rdjkkIzlycnZFNypeJUwj
MD92QTA5ZzVQYj5eQWs5NGlOYnk4bkRMWj1VWkZPCnpfUjN2ZFA/Q18xbF8lOGk1TUFsd0Y+OU5X
dXFucjY8IXlCcnNKN2B4amNwJTY/WSFPbnJnN0QpSyRULVA5ZGZNbAp6RzAwayFVVWRYVyF0T15R
WUV2RWBMej4mLUhzeTQ5aTByS0YwM2FKKXZ0R0I/cm8yRzUlZHlCfnZlS25+aCVsSHsKeioob1kt
PGRydjxMY2oqP1dWS0VDM3J3antqO2gtczNifmVxKGIlPmdmalokOU9LaGI8UkAleD9YRitWJTlK
UH5jCnorKHE/SypRUmBDUUJEYUJZY3ZoeS1YJX1+d3o/RH54UERVdytVbTZfcEh3UUolaDREcVEl
X0BKJFgjdHEwbUc/bQp6YHpCT1Qma3w3fm14bkokQTIhTGNeJn4qUEFwZ0Qmd3BEcUxjZ0dncE9n
JU47Y05QX2AoRSlPX2A0dCtTKmZVRSYKeiN4TiVLcTM3blByTGRwVWUqblUzbjNuJV9EYV8oTW0h
bUltQTRiPTZaJCNUQENhQ1d0bCFvU295V1dOMz16N3dJCnp3ciRHQ1lSM2huZypeTWR4KVh1V1h3
NzQ3MmFOWH1mIXhlQ2t+Nm1UaGxebmhIRDhzNztaeUh8JHV7TTRISGNDegp6cVZDMEpaeHt+dkJN
el9HcUBGLVg0PWRfNW55RlkoR2J7RVArYkQhK2lwJF5NTmh8SSleRD1YLWBGNjl0Yl9lOTEKejsm
TE9AX28qNSEtNl5CN2JofCZHekRJfHxJQ3VLLWdZcEp6YmEpckkyZTYjNit+PWRZP0okKDdwUFd1
NE9iUFZeCno2aX5OfVNJQzFeZG07R1pMYFpEb1YkKUw8cDNAe0pMZWRzM3dNSXYoJlEja2E3bXt7
I1M2MUZwe3x2SSQjOz4oTAp6Q0QyaGhTX1VnN0wjfTVTK0I9ZFcmRSE/KD16Nn1gSGQwLTxGcmZ5
dXg7d2J3Mj16RTMhJipQRCloYTBPJWdVP2oKejNQQHBgUkVzOVBVUCRsWihsMUEyRztKKT13cSs+
THtIU0RBXj9GZm51dlZ7RClWbntgJUItWClFVGclaGt8ZWVDCno0big/LWU5NjV3SUBKcUpUPlQ0
fUI9aWdrZVhhPV5RYk9pclNHbUlIQStzSHQ2WUFZMHtkLTdiNTIwbkU5em9DPAp6JlF6PHdQO1dz
LTQ5dkV9cCFkQW5qdDhAJUVmS3omaXIoPDA+eGB7PyFveTdRPUlkRUZwTFQwP0RKcz9PczRxNS0K
ell7Z0omVFI3RGlQfUBDSFc3WDQ+JCZYREwzayVnTkElSTs0bj1IMURGVkpNQ3Aobj1fSCpTZzc/
I1IlbTlGPiltCnp2aHg3biY+JnBmZUc8fmZrcnZWM3glezRWZXJALUUxRmNWIUtTMnt7Y1d3N1px
TXVgNVpURUB7YFAlTj84VGpIVgp6U3ZqcCVnUWolSiU2b0ZsJmItQGR5QntUKWM1O2ZXb1JGMnsl
M0hHWGEmNVBYJGghVj5KfnY8LT1qIS0kMVpyKHUKejRMMEJKUXp5WHlQLXVrdWFaWj1qRFVPMkF1
dmJ7MW11JTcyWmVNP0V5QmA4cSEjZlEkSXp+UXI+cDthPnhqdFNDCnptKyRENCRGZ3w9aXhheTs/
R0UwYlgjWnopYDEqOFF5LSFwMHBmKz9nWkJoQF9QZTBQal8/aHNVUmU4Jip7TUQqcAp6T1Nzc35i
ekxZY0hUeDx8QU0pZXhETSRmc25hUGF6SnAjRDB0PUhLNDImUnxadyNWNHxWKnV1TDFMKStBNT4x
SjEKeiFrbzQjWkNnPW4jfVVjWUNSXyV2OWFwd303K3ooSFNFOT87bkJ3TjxJVl5rYD9VRn5xb0A/
QTxEQChNVEVIU1FzCnokKyVeWTtUMFNeb218Z3hic3pZJjNGTzl6UXJZJXR4QnsmWlk7SW5JWWU2
WSh1fV9ndWx2OEVyOUArM3hrSk9iKgp6ZGxAWTY/Z3I0Nk9UUylxPyoqOFdkcjYqNm57RHUtdTNW
aDV7THAkSFFyKjlWNVNoNyU4KStwWTdqUHJFTz4qcG8KemVRMTBlUmtiTispdmMlXlIyc0xtNCoz
SWtFaGtGQ20rZnZITFVKVzJfb0hNejE5IUkoMGpFSF5mP29DOFAoYTw5CnpzUCQoWV9OOyV3Kj1k
VkNsaCkzMF4rdCReTXNaRX5PcjFnUCMtO0BMRzBRY29ocDx+P2lkSEk8Mzs4Rz1wazc1Ywp6KH08
WGomKF5ZKjlzTWR5ODBIc2ZhQUB2Yk9ydWJzSGJHVFBIcEdeVkZqJFB3b3tZXmk3OUdYT2pCYChK
Kl9+SCEKelJ4RXxjeURXd0k/fGZxJCZQbCNjNEx5VSNxTyVJMnhkdyNLKUd5SWAxKGFTeVI1fCgj
SEcmKDBgVnJ7JEVndStoCnpNRSNrSmpiNENGSmJjU21uakZfMUcoTEx9SiZpLXcpTjU3I18jOUVp
blBTNmxnUVV4Kl54fWtoNzswP0ZzaCtGcAp6YSZad0BVQWJmbVAxRVFRQzhiIU5TK2cmNHV9d0xR
Nk88LSsrNmslfVEwcl5mX2tVc2o8RUJFbGp+aSsxRTI2bj0KekAkYiNDTSgxIzlCME9JRzZiNmA7
LTV7eFIoUlhaP2Q3MjQ1ZEdOc3ZkRkphbD99dyt6JlYoQWtyeHpDTmhKQ3cwCnojYD9wKXJMRFo8
Ul48IzkqWV9OX3FgWlVrcmg/OD8rXil7enMlWFZrYVgkSDMqJWg1aGJFSz4tQHg5NWA9byYwTwp6
RUY8KyttXyhUUkd5b1ZoS3JASncmWW1QWUszNyRFRExORE5qRzhJdzdtOGJQKEElUDgpTyNWTDlr
aGs4ZkRISD8KelZecGFldHlFNmhsPmIhd3ApYip5Pmd5MkdgQT0+K1FjJTcmIWVgU1phJiEqYUg1
Mz02Z20jblloN29BQ2ZEUkc8CnpOPHM0Vk81YGxick9UaD95UT0hIVNJSH1wR2tXbmVkPlgzaigh
fFIoe21eQDEra3gqNjZ9STUpYjMtV0FLSHZZQQp6RUgqMmNZLWVhb3h8N2RWKWJnMkkmSzloZXY4
Mkt7MyVCdkRZYj5nb1c0OWt8SWJFPU50U3ZWQ1ImZV54NTMwJUsKelhkNmhKemBFWjdOI3BuYVZz
ODFeU2tjenwtN0MyNipwekVnJjd2SG1zWXFBMz8kO3JrTTBEcGhQOCtMJlhfeUYpCnpsY09WUEkk
cW15RGlJayhILXB7JCNwUHg2JmQ2YDJ5Kk9RSnlNTUApLUNuemNwTGUxQC1VKDIzdGMtfmpFK2hy
ewp6cSttUE5nRl5Majg9R21zM3hLQTxsRzJibURtYWlhVW9taUhSXnw3eTY0fFAoKzQoJX10dTJX
aDwyfVBeOCswREMKeiN3c0xQc2QkQW1PITRRNEZEc1J1LU9tQ3RqJSlfWHRTd3pSI3d7PGtvUnw8
PChyS1gwKSE0Y2k/NncwKyVeUWA8Cno1dTRKcSRAfklJOHQpfU4qNjhGeXk2UDByYUB2NyphNnE7
YEsjQ0godFN2am9SOElmdj5PPFo0THNDMDBFd0tmTAp6TzZOO2xvZ0Elc2cpWSFnNzJwPEYwQilJ
Sy0xNWNydnpUfl54Wkx2YzdgJWI0ey1uRHEkKExpcG57QmJlSD5wfnMKejtmUyR5RG1kb2RtTiFR
ayU8Qyp+VWVnKmt1ZnJTQ1EoIypZVTlFZWZIRSU/SVdRdXBNQ0hifXdqamFQOXphVkRXCnpqNVVS
eD82Jk5waW5kK1g7RyRNUyMjdkBvP3AkLTMpd3k0ZU16K2UpO2NwcVlPbCZ6akEjIVErVD9RNSYj
KGlUagp6d3IrPCR2K3tPTmYyKj0mU0RyTyREPWZmUzhAfCRsOVY1RUJhMEs/eyNEMDNRe3g9QWs7
eE1CcCZsQ3EyNU5WRkMKeipfcWZle3EqV04rJWh5aXV1QHQ1Vz9zKXp5blU+PyVCP3A+MmppZU1R
UjQ7OHRJJjhwdHtwOFc0M1crcmkmZTJmCnpjeGA+Vj8wbjRAb3djXyQ5PVgoUCsla35IWkxvUldC
MTd2UVZfV0gyWX1qJEE+YTsxZF9SNUt1czcyI0Y3bDVxMQp6KXt9R21rYTdefnpBU0NgbTd9JHRK
PkFDLV4/Wn5sSSkmcGpRRk1tcVhMLShXWkFsZDZAVnA8LTJrPDxQPWxNSnoKeiU9NGk8Rld+dXdK
Umk+VU9MI3RsPWE9KlJOfWdaTWJCWDdwY3dXZiEoTDVpK15SWVoxJit9clFtLTJpZiZuTlNJCnpE
JG1QIUs3OzQ4Y3ohKzQlWHZQUj1ONnZOPWVmLUQ4K21UeWA5aHZvQHdeJjJtUVU9ZT1XcWc+N2Js
OC1pTCQrcwp6aH18RktFdW5FVkw0UDdoQ2c9YmBqfXI2PktgIz5ZQjArQnheam1eSEE/UWhoejln
dUZwaTQwP3lNSWhqNWtkRDUKelI4RyhqMiljPSZsPzFzNkApNUxfQVF3Um81cCpqLW9kaWA4XmZF
IzczM2BqNVNwPERiJl9zZkF1dXs5fTRaSENRCnpnMDNkMGwlVX1SUlM9WDxQJkdrfUFPfUljbV56
STxme3FaaGhNKyRhNmVaeyZMSHxPflVWQCQ9WGVVOT42MTB0PQp6VD9CTyFeZzJOczNIbmNoZW9E
fmkxcFNEaEY5fSpwJnxxdystUU9rWDNXQ0F9alVuaDsxV2hBb0lZSUxZeHx5SUYKemZAfW0pb1Rf
XitBazVvO3tpTH4+PD8+LTh2LXZ7K0xKc1QpXmFiV2BmT3RgUTJwTmYqcjZ+RWMybloyNVg5PHY2
CnpfPm4oUDxGTmZybEgtRVJJS2ZDMkg2Y2ZYZHhsZ0xsNVUlQHE4NkR5NWNjNFUhZGh1VVB6cHg4
P2d7bEN1VW5lbgp6bTs4fSVBUUkraUtEKGdXP1Fsc1JwSHZyZ0pNTkc/VlJ6NiRePn4kI01Caik/
NHhkWjlHWUEke21CTml+c218a2IKejFYb0cpV21+PnpYR1o9NzZCO0ZkUD98N0A9TSg3NU8kcE1U
a1E1PT94R282WXRnJTxQZ0NTfiVvPX5JelBSU3U5CnpObG9xJFJlLUVobFhkejd0QWRffSN4UF8o
S0JxVjBhem5oMj5ocCZeUExmfWQocH4yZHh3LUNlQjxQZFM0d1E0Ngp6KV9jZiRHK0JJJE1jcl9E
Znw3Kkg/Rns/VHZ3QyNJPnZ6SHh6NlNKdm1FPzF+VTJidnw5TXQ0P2NedlF0KXN4N3AKenE0RF9f
QFd5bW16MkVFZy0tJjg8dEU3TTwrJkVyeHgkN01mWnkxakNXMmooLU9TOGh8NHUhYzEmX0ZRISVT
UnopCnooUmk1RHI7TnNjNnlgSGBGYkdwSWVvbFc9NkFoSHQ8QVphODRVczBkRkQjOEozWFJIVkgy
bUM5SzlyZ1ZHYHVNaQp6M1FLa1ZhSENZYG1PPXJ5KF5LenB5TmRJZkcld316RzRybUlDWUc5fWpG
K3NgZChBUzNTREc2TXB7LUN6cyZxSVQKejJ8fUc8eiVTK3gqI2Y7Nzx6bVV+Xi05JD1laiV5YTlk
WlgocGIzYztnPVI9amhmbClqcCN6PzwkS216ZDwoOTFUCnpZS2shPiFqNW54QitWdS12MHhwVz1a
fDxAVCt8PE1gIXdVViZRKSpeVkRgRmJ0b1M2PzchanYkZ2BLMmxrV05YSAp6T0pqeG9IUy0hQkww
RitASkUxTT91Nz1tPEl6biNPVHZ7NGR6QjJxbHl8ZzRiIWtXe0lUO25rYy1iajtBRHN0dHMKejJE
aCYrYypoSmxDQnlQYD9+XmcoI1RYXlV3RS0+Q1J2aCgrI3lZSzFLR1FsdjN6RDt3M3Alfil3RHk+
b0BxRnx7CnozQFRYUFR4VmohdkQ2fDtaNnBGbis3dEhzeSk/TjNVVXdLWElUVWReRzNOQ1Z1WGp+
MzMka0slWFB1YVkqbXt5aQp6eGd0JFgrVi1HWFJUTF5JM0tpMihyWEl3XkBGWHxMNmdkU3ZzZTVR
QSNQMWRpOHpDRXlMXnk0bkxXNSFkKCo2Ym0KekdaLTkoVG15YU1PVyYoa2Zsbyl9Xmx1PTtMcFho
fU4jQXkzY2Z+aUNMenpZVUl5UHJFVip+YktWPzhfb0Rza3xaCno0YGpMUkM9MnFLS15nPmo1SGw+
dGAldTlVKjF2Tkk+c0xPTThMbllEaEdCI0hRUUoyYC05UGohOWkjUTdQTHk2egp6dGBLRmpEQSRT
ZEt+WCp8JTF4c0RjVHhVX0QwaG87cEQ1b0U8JWdwRE9xM0A/c1coMzdJP2ItWnFQIz91a3xAV0QK
emE8Vjl8N297eDlZRWRvfFd4WGZecVAkQyN0KWplRmxwOTMoczM/Q1ckfU9VZGl9Rj1iejlHdUBN
NSY3TW0/K1BQCnphcyskbDhfNzkwSCtZQUhxbmg8Zzk8UDk3I2FlJiRlbntldDB5di1DOTNsNmte
WE9ZNDxRX1ZZVHV8ODlhVU1DcAp6a2JDU3Jhdm1Zflp8OU10Pm1OUE9vPTQ4OWlEbVB3MmVLWj5k
TFprOHRPdjNsJGEpfl9mdmc5ejk+e3YmfEJWTlIKempWZkN7WjBfPlFFekpXWjNJPCRRWm54aith
I1hFZ0h3RUt7NCphVTdKJSlCLV8jOTE0TjMlRHFUeHJNT3hgK0hlCnoxajUzcj4/PXhIYX52XmN7
dXRVWExPdU1BeX5CQmotUHc0RHkmPldWeCk+PH4oU0Bpe0FjYzUqZUsxOWl6QFJeUAp6PCRzYFdO
OVkjUHRlSmlANVNzWkl7YXhtd016Q3hjUmFyTypLXyUwcThsVDdNY2V4a3l6bGZoX3MmR14tMnp5
dk4KejN6bVBhbCpMckJmK1haVmlIUUB4SV8zdDIpZTlDYncoSHVkczVZNXVzdTAwKl5OPzd6c2tE
WHpeSSE+U3VJa2V+Cnp0KXxsNWd1dCVMVFkoVilafFMpXy08PWdyIzk5dGsjUDBPRTlsaSpCJEFY
UVYwMmxqJTNtcntkYiUydV4rK2hvMQp6ej9OaiNuMW9reTQjaEpHWWNfQiteYzh8QDF1R28leF91
PHUmSXVIPmJiMWxKQ2VuciEkJVd7Zkdue21AcnZYdmUKek5SWjJQcSt9QDhOd3FlbUQ5STJmUTlD
JmA1THt1ZTU0dzVIdHRtPkExRj5aJU4kb1N4SmdkP0VicFYzMzJxUDJ1CnpBU2NfSyspZH5UJXw5
WEApYCkjYHZma25HNTxeV2dmezM2ZXJIfVJ6MUZNcTY2R1V7YzZ3Yjs0UWxJTWxUOF9IPwp6XmB4
PzBMdWQ+TC1NfkAhcEJ2cWcjNnJafCNJZDleSXlufT1lYCpNR01PIXNJcVNjSGlGPCRjKGohYEk/
Xno3cVUKeiRuRUJ4Sjs8QEorc2tgK219QzQkNWZXN2k/UTcjR008WmRiXmFMUzYlKVMtZWxnK3N0
ckdMI3BIUDtlfmU8YX4tCno7IX58JXBraGpGQVQ7Nj17bllrU2dCYHlTPD1VR1g7V3hLNDVfYVEl
V0hATF43Y2E1VCRCeitNZ0trSFlvbFQ2ZQp6RSVmVWZLRDZlKFNnQVI3NE1vVnc8c3EyJjB8VnlK
LTNGfjZuK3lUPW9Qb0ZYSkEtSSt6YWhqdkdQdjFzezlsdSEKeldlQW1hT2gqPTxqYCU1QF5pdT14
IyV+UzBiNUd8JFgxYytLcDkwdCskaFhoWDtLUDdCWENQOGJLSlBNK0tpPmk9CnpKX0ROWS12bSZK
dmdWbntJdypfSmdlLW11Vjg7dyQ3clBIeTQtKkNScGU9YHd8Mm1MNVhPWk1BKnh+VzlNe184Owp6
e1hgQ3lERWslMzZaMHIjJjlqbFVCZXQ3RUtpMWdVP3tuK3srQXokKWg3ZGNMJVd9MClLa0xxXiRD
Mz4tdmZkb2MKejhPXno5VzQ2SVVmb3lnZkleKi04c1NfVSMzQGxeTTxlSHxrWk1sO3N2aEJIWnYy
Z0JTSjlEY1hGOFRxMj9hOT9QCnpMQUUheU1uSkRhU016K1RQVDY2fitIVzl+dlZBaDRSJUN+Kkcq
fSVJVzxNfmZSNFNGRTA7ISs/S0w9RyZTcz05IQp6MjwkVkltWD1CI2hIe0V5KTV5QjBmX1JFaHJz
RHtLdndEMj5XXjgtPjc4MFJ3VU5OJWR8OC1kcHlmNihYZWp5VGsKeiNVSHtLQjFefXFLRT08OF9Y
SEJ2UHZTKFFgdUVXZm4wTkBNYGJtNTxAWGBJVypnTnMpeTlObTxgUm84TjhsVDMqCnpPPExXM2dk
XlYwQ1RUZDtOeWExcnZpRmQjMX5KKjZxWEpMYigraGxQVDY9a3I5ZzB1QmxLKTRBZWctR0pzemxS
Mgp6M0hhNCR6ZUJWP2pyZUt5U09gekVyeTk1c3NSS1ZzcGtWYV5GVEdtQlJ8PnBiO1AoaFRGNjFg
fmVFQyhISmJmZlgKemBUfk9nSkFwUn57YCYkaTd4KiFPOX5KV1MhOHh9X0BVSWtqeUorN2VAS1Y4
X0ZZdjx4fEU5cDNnKl5URVBXcU0kCnp7MDlPTDI+ZDVXVC01KVN6ellOKDdrRklZMlJVODxQaWcl
PEJLVV9mWTB3TmlEZXo5QWU7fElLcTRyQmhZNWRDdAp6OT19R3o+OEUrbHpnRU5QMllQTz0hMEJn
dCFrTko3PVhBb2AxenM9a1BKIVBnQEc0PFhPeUtQVHwyYzN9TjNLMGoKellkRSNRcFp6LWdReXAl
YFQhZTUre3VVa1g8IztvXnBnbXo3e3ZBeXwjbEsmfVF9I1RmIT1LalNKOVlSVWJva3BrCnp7Nmln
bk9vdWI5XkteZDwoQlZVTV87NE01cjRHTVZobVkwYUNMS09RaG5zYnt0aXU9U0BTQW1idHF5blZA
RnBEfAp6KCY2OUg7Vm44bXM+MmA5QFlIO0dTY2dCUSE/KX0zRSoqWUloa3ZCUXp0R3tkX29kSXIl
WEloezROdUxsUVhQTSQKejR3clRFV3RoZ2VDTkxjUTQ5N1F7Z3xyTio3VV5+KkpKTkNfMlR+bzk2
VWx8LU1ydUghLWBpIypVNV8qa3NUfDNTCnpHI317KEJwSGJnJW9+dndBbFo7QWtycEI/TGFJV2Rf
cG9aRCNZanQjWUxJUzVxNjJYJChsP1FBTVk7e0M5PzY0Kgp6cjx7Sm5ufk85TCQlMGdZXnZ+RUlp
SXZwZ2JCaHJFPU1qQzA1b3N6MzEpVXxARlo7PHRlNVgrQzM8Uz1SbypWSWEKelRfeWFoNUFuQFFO
S2BBWDxFJn5vLWpZSkBPeVopdFp7YnhYR3tOVCY7PVE2fFchWTV3KVg3Tl5LZl9DLSQ7N2AxCnpH
VyVRPmtLNG9TTyU3Yipaa1JWTz9jY0xgLTZtI3RISWxTI24pdCtzQlZ+YzB6ayREb3tYTDU0OGJf
fmNSe0NkWAp6Y0sqZVdvblEzQ3dYSFpIdTVhZ1NHdmtofS1LZ3l1RzxzanJRVFV9YmxhX3U3Jipi
cD9jUDVFbi0hbi04eDwlX3EKemJpS3xiQGkmPXNOJkpTY0MtVz0zcDIpQkZuWnl2PyV5bEZsZT5q
KGpLfE0jMUY2eDs/QHVyYlUpR3B5KUxET3ZpCnppbmt4VXZpSUhXI1IhWWJlRm1vOD1ta2shYHFM
KV9adWFSWT8pZDN3U3E3JXZ7blBvJHd9NW4tY25lNDtDRXBENgp6WmAkVnpzQyo1ZGhmPFFmfElI
dnVRZkZyUEx7SF5gNkEqY3szbmN9JjVTSUZpY293Sz5BJXUqMDdMT2ZkUF96Z2EKekN1Izk1NFcj
SW4ySnpTeTJVQnFkZnIkV3Y3RmtHITZ6dWhVWlB4UVo0enQmNUR+Klp9Rmx+fDVpPGZ3Tkp3QjFk
CnphLXhFYCtEZllEITJvK2Jqez9+MSNVeEV1KEx9fFlLSG03WCNTX3hyP2RjdCNVaDJ+I085MTt+
TjxkJnBXOzYqagp6OSFFbFhQNV9CJE5zV0NXQlJsYCo/UTNGMThkS3tobXJGJjVrfDczckJvIVhn
S29KKUBDd2hxVVEyKDVJWipVeE0KenI1JkstcnBUWjEkWj1tYXBybWBocC1qOHw9NF5tMChaTk8x
VVMtIyFFRU88cjU7YmhOZiZXVzk7KV4zeyFXMkF7CnpyJSM/ZHYyTUMhOypfY05Renc7fkNRWD8+
JWB2XnNHMkp6XzZ3RkRePX5KaCQ4SWomWXtvQWVeZSgmJml6eChzdwp6MjdlbFZjdSRCYyhxJHRL
LUlJNkN5fGNidEhzZyZjRUFsX051eiU/I1FyRnMlbHtYZCNNJTxTQlh5b2xUOUB1PlEKempGVnNa
fDUjcEZ5I0dTOyZ5UExzejRCKiFqeUBSc0B3a3JUUDFvR04/UEtTTSt4RlopWCFWP2xxcmFYMSUz
SkZLCnorYmtQamUoPjwpK2ZPfHw/JD9SXmNpcF5nUl51PGBLRz1TblpEQEd6UDJHUGVgT3lfT2pD
JXQ4cjtnTHhCb24/Xgp6cDV9YFZrVFpOQzxeMUVtKnN3fSFVLSo9SlhrX0kqe2NyNSh0WH14Nz1J
dmRWfDY7PDQxSmdFTUlgOEJVJCVlbzYKeiV5YUt0Xm8jMkVlKHxmd3lOI2R6VDBaP3E7YCRlNjR3
YD5VXlRoSmpVRFhZNSZWVC0/S2FZT0VeNU1VSnU9dmVxCno4YWBWMj9MKnU1a05lWSlaPEBNM0lQ
OUlsbzFUYFFKaDF3ayMpaypRZFhGc1k4dSNRKWxWM2hDd3F4VWgoaVBKbAp6YFEtPXl7cHwyVDU4
bk9UeSVXQXZ1bTgtb1gzTT5Rb1lVeyZMK2I0OUZXPGQhfDN4bnI0V0c2N3R1dVJuR2tmIzMKenFr
ckd7Kk54N25oZDs2QV57SG9HVGxDTiRaQFlXTXN7X3tHelUrJnBwM081eUhPemhkKU5Tc2lPRm4r
JDxhYmAqCnphJk9fWXVVPkY9eil2ckd7anVuJl9YZCUjXlpyJkp2JUlWYXZMNDhLQW5TcHcyZUta
PmRMWms4dE92M2wkYSl+Xwp6ZnZnOXo5Pnt0aT53JkJYdkw0OEtBblNwdzJlS1o+ZExaazh0T3Yz
bCRhKX5fZnZnOXo5Pnt0aT53JkJYezt6eEIKRmUqa0F5Tl5BZkMKCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
Y3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKaW5kZXggMzFh
M2YwMmIzZWNhOGUwNTNkZDUyNTI1MDUxMjUzNWZlMTBiYmIzYi4uYzM1MjkxMmE4OTI5YTg3MTc0
OGVjNzNlMmFhYTBjODc3ZGU3YTY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJ
dGVyYXRvci5jcHAKQEAgLTU5LDYgKzU5LDEyIEBAIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciog
aW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGNvbnN0IGNoYXIqIGJyZWFrUnVsZXMpCiAKICNl
bmRpZgogCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKK1RleHRCcmVha0l0
ZXJhdG9yKiBpdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0IHJ1bGVTZXQpCit7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKIAogLy8gSXRlcmF0b3IgdGV4dCBzZXR0aW5n
CiAKQEAgLTE2NSw2ICsxNzEsMTMgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJ
dGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZykKIFRleHRCcmVha0l0ZXJhdG9yKiBjdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogewogI2lmICFQTEFURk9STShJT1MpCisK
KyAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBpdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxl
U2V0OjpDdXJzb3JNb3ZlbWVudCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yV2l0aFRl
eHQgPSBzZXRUZXh0Rm9ySXRlcmF0b3IoKml0ZXJhdG9yLCBzdHJpbmcpKQorICAgICAgICAgICAg
cmV0dXJuIGl0ZXJhdG9yV2l0aFRleHQ7CisgICAgICAgIHVicmtfY2xvc2UocmVpbnRlcnByZXRf
Y2FzdDxVQnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yKSk7CisgICAgfQorCiAgICAgLy8gVGhpcyBy
dWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNV
IDU3CiAgICAgLy8gPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3Uv
dGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCiAgICAgLy8gVGhlIG1ham9y
IGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBiZWxvdzoKQEAg
LTc4Niw2ICs3OTksMjQgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIG9wZW5MaW5lQnJlYWtJdGVyYXRv
cihjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSwgTGluZUJyZWFrSXQKICAgICBpZiAobW9kZSA9
PSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNCkKICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29w
ZW4oVUJSS19MSU5FLCBsb2NhbGVJc0VtcHR5ID8gY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkg
OiBsb2NhbGUuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOwogICAg
IGVsc2UgeworICAgICAgICBCcmVha2luZ1J1bGVTZXQgcnVsZVNldDsKKyAgICAgICAgc3dpdGNo
IChtb2RlKSB7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTQ6CisgICAg
ICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLIDogQnJl
YWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0TG9vc2U6CisgICAgICAgICAgICBydWxlU2V0
ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VDSksgOiBCcmVha2luZ1J1bGVT
ZXQ6OlVBWDE0TG9vc2VOb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBM
aW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNE5vcm1hbDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBp
c0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSksgOiBCcmVha2luZ1J1bGVTZXQ6
OlVBWDE0Tm9ybWFsTm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGlu
ZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRTdHJpY3Q6CisgICAgICAgICAgICBydWxlU2V0ID0gaXND
SksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpV
QVgxNFN0cmljdE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGlmIChhdXRvKiBpdGVyYXRvciA9IGl0ZXJhdG9yRm9yUnVsZVNldChydWxlU2V0KSkKKyAgICAg
ICAgICAgIHJldHVybiBpdGVyYXRvcjsKKwogICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1
czsKICAgICAgICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUs
IGlzQ0pLKTsKICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW5SdWxlcyhTdHJpbmdWaWV3KHJ1
bGVzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcnVsZXMubGVuZ3RoKCksIDAsIDAsICZwYXJz
ZVN0YXR1cywgJm9wZW5TdGF0dXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRv
ci5oCmluZGV4IGQ5MDMyMTVhZTQxMzdlNGMzYTllYTM1YjNkMDI1YmY1MmU0NTE4ZWMuLjlkYWUy
NjM3OTlhNWI0ZjNiMzBhMzlhMzRjNzUwOWZkYThkYmQwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1RleHRCcmVha0l0ZXJhdG9yLmgKQEAgLTM4LDYgKzM4LDIwIEBAIGVudW0gTGluZUJyZWFrSXRl
cmF0b3JNb2RlIHsKICAgICBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNFN0cmljdCwKIH07CiAK
K2VudW0gY2xhc3MgQnJlYWtpbmdSdWxlU2V0IHsKKyAgICBDdXJzb3JNb3ZlbWVudCwKKyAgICBV
QVgxNENKSywKKyAgICBVQVgxNE5vbkNKSywKKyAgICBVQVgxNExvb3NlQ0pLLAorICAgIFVBWDE0
TG9vc2VOb25DSkssCisgICAgVUFYMTROb3JtYWxDSkssCisgICAgVUFYMTROb3JtYWxOb25DSkss
CisgICAgVUFYMTRTdHJpY3RDSkssCisgICAgVUFYMTRTdHJpY3ROb25DSksKK307CisKK1RleHRC
cmVha0l0ZXJhdG9yKiBpdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0KTsKKwogLy8g
VGhpcyBpcyBzaW1pbGFyIHRvIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBpbiBtb3N0IGNhc2Vz
LCBidXQgaXMgc3ViamVjdCB0bwogLy8gcGxhdGZvcm0gVUkgY29udmVudGlvbnMuIE9uZSBub3Rh
YmxlIGV4YW1wbGUgd2hlcmUgdGhpcyBjYW4gYmUgZGlmZmVyZW50CiAvLyBmcm9tIGNoYXJhY3Rl
ciBicmVhayBpdGVyYXRvciBpcyBUaGFpIHByZXBlbmQgY2hhcmFjdGVycywgc2VlIGJ1ZyAyNDM0
Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9y
SW50ZXJuYWxJQ1VNYWMubW0gYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVy
YXRvckludGVybmFsSUNVTWFjLm1tCmluZGV4IGJlZjVkYWE2NDI4ODgyMWUyMGYyNjI4YzY4NTVl
ZThlODhhMzg5MmMuLjZkZjhjZDYwZDZkMjRmYzFlMDBjMjYzZDk3Y2Q3NGFmNzY0MTJmYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJu
YWxJQ1VNYWMubW0KKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0
b3JJbnRlcm5hbElDVU1hYy5tbQpAQCAtMjEsMTIgKzIxLDc1IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVk
ZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKKworI2lmIGRlZmluZWQoVV9TSE9XX0NQTFVTUExVU19B
UEkpCisjdW5kZWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKyNlbmRpZgorI2RlZmluZSBVX1NIT1df
Q1BMVVNQTFVTX0FQSSAxCisKKyNpbmNsdWRlIDx1bmljb2RlL3JiYmkuaD4KKyNpbmNsdWRlIDx1
bmljb2RlL3VkYXRhLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCitAaW50ZXJmYWNl
IFdURkJ1bmRsZUZpbmRlciA6IE5TT2JqZWN0CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXVEZC
dW5kbGVGaW5kZXIKK0BlbmQKKwogbmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdCBpbnQg
bWF4TG9jYWxlU3RyaW5nTGVuZ3RoID0gMzI7CiAKK1RleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRv
ckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0IHJ1bGVTZXQpCit7CisgICAgTlNTdHJpbmcgKmZp
bGVOYW1lQmFzZTsKKyAgICBzd2l0Y2ggKHJ1bGVTZXQpIHsKKyAgICBjYXNlIEJyZWFraW5nUnVs
ZVNldDo6Q3Vyc29yTW92ZW1lbnQ6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1
bGVTZXQ6OlVBWDE0Q0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6
VUFYMTROb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vbkNKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpV
QVgxNExvb3NlQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0
OjpVQVgxNExvb3NlTm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZU5vbkNKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtp
bmdSdWxlU2V0OjpVQVgxNE5vcm1hbENKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBC
cmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2Ug
PSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksiOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3RDSks6CisgICAgICAgIGZpbGVO
YW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSyI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdE5vbkNKSzoKKyAgICAg
ICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLIjsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgTlNCdW5kbGUgKmJ1bmRsZSA9IFtOU0J1bmRs
ZSBidW5kbGVGb3JDbGFzczpbV1RGQnVuZGxlRmluZGVyIGNsYXNzXV07CisgICAgTlNTdHJpbmcg
KnBhdGggPSBbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpmaWxlTmFtZUJhc2Ugb2ZUeXBlOkAiYnJr
IiBpbkRpcmVjdG9yeTpAIkJyZWFraW5nUnVsZXMiXTsKKyAgICBpZiAoIXBhdGgpCisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIE5TU3RyaW5nICpkaXJlY3RvcnkgPSBbcGF0aCBzdHJpbmdC
eURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOworICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0g
VV9aRVJPX0VSUk9SOworICAgIExvY2FsVURhdGFNZW1vcnlQb2ludGVyIGRhdGEodWRhdGFfb3Bl
bihbZGlyZWN0b3J5IFVURjhTdHJpbmddLCAiYnJrIiwgW2ZpbGVOYW1lQmFzZSBVVEY4U3RyaW5n
XSwgJmVycm9yQ29kZSkpOworICAgIGlmIChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvIGl0ZXJhdG9yID0gc3RkOjptYWtlX3VuaXF1
ZTxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPihkYXRhLm9ycGhhbigpLCBlcnJvckNvZGUpOworICAg
IGlmIChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXh0QnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9y
LnJlbGVhc2UoKSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0
ZXh0QnJlYWtMb2NhbGVQcmVmZXJlbmNlKCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxp
c3RSZWY+IGxvY2FsZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlWYWx1ZShDRlNUUigiQXBw
bGVUZXh0QnJlYWtMb2NhbGUiKSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285485</attachid>
            <date>2016-08-06 01:02:39 -0700</date>
            <delta_ts>2016-08-06 01:12:41 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160806010111.patch</filename>
            <type>text/plain</type>
            <size>269942</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTFhOGVhNzFmOTFiNmU2MWM4MGI2MWVhNDFiZjQ1MWEyNjBjNGM3Li5mZDZkMmJhZTQ3NDQwYTUx
OTljMDljYzVhYWVmZDMxNTVkN2Y2NzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDUgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIExFQkRlY29kZXIgYW5kIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM5MGE4MzM4MWYx
NGNlODlmODdjMzFhNTRjNjczZDY2N2EzMjU4ZjEuLjY0OTkzNWE2NTkzYjM1YWVmYzIzZDdiZTNk
YzQ2NjdjMDJhMTVkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgtMDUgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBi
cmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTog
QWRkZWQuCisgICAgICAgICogd3RmL2dlbmJyazogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisg
ICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuY3BwOgorICAgICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RG
OjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0
ZXJhdG9yKToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAg
ICAqIHd0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAg
ICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorCiAyMDE2LTA4LTA1ICBLZWl0aCBNaWxs
ZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBMRUJEZWNvZGVyIGFu
ZCB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMzBkYzllNGQwMjAzNjIw
YjE0Y2EyMjhiNGViMmJiNGZkZWNlZjBkLi4xYWJlNDdjMjQ2NGRhODk4ZmFkNTMwYWNjMzI2Mzdj
OGJkYTYyYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOSw2ICsxMTA5
LDcgQEAKIAkJMTRGOTc0NDcxMzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhD
ODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBK
U1N0cmluZ1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNG
NzM3NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5j
cHAgKi87IH07CisJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFE
NTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2
MkQ4NUI2MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQx
QzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07
CkBAIC0zMjcyLDYgKzMyNzMsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFz
ZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYg
LyogSmF2YVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2Ny
aXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQx
QkNGRiAvKiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKYXZhU2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4
RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7
IHBhdGggPSAuLi9XVEYvQnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9p
bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0
aCA9IGIzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTQzOCw2ICs1NDQwLDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAw
NzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVs
ZXMgKi8sCiAJCQkJMEY2MTgzMzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAog
CQkJCTBGNjE4MzM0MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywK
IAkJCQkwRjYxODMzNTFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAg
LTg0NTcsNiArODQ2MCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBp
biBSZXNvdXJjZXMgKi8sCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5n
UnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNGM3NzM4MzJhY2RmNDNkZWNhMTUwMjQ0NThlMzAzZGVhNjdmNzg4ZS4uZWZl
Y2EwNjFkZWQzZTk3Mjc1NGI3NjAzMTVjZmFkZGQ5YmUyMzMzZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcsMTcgQEAKIAlvYmplY3RzID0gewog
CiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2
OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVn
YXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMw
MENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4Nzgy
MUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOwor
CQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsK
KwkJCXByb2R1Y3ROYW1lID0gIkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2
MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFn
Z3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBC
OTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtMzExLDYgKzMyMiwxNSBAQAogCQlBOEE0
NzQ4NzE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlRocmVhZERhdGEuaCAqLzsgfTsKIAkJQThBNDc0OEMxNTFBODI2NDAwNDEyM0ZGIC8qIGNv
bmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1
M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJl
RGVmaW5lcy5oICovOyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMuY3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VDMUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTMxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi87IH07CisJ
CUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Ez
N0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAq
LzsgfTsKKwkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksuY3BwICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YwMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U3MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLzsgfTsKKwkJ
QzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwICovOyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkz
NjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgKi87IH07CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKQEAgLTM0Myw2ICszNjMsMTMgQEAKIAkJ
CXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVt
b3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsK
KwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0
IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9
IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3Vy
Y2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRh
aW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAq
LzsKQEAgLTQzNSw2ICs0NjIsMTggQEAKIAkJMUMxODFDOEQxRDMwN0FCODAwRjVGQTE2IC8qIFVU
ZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzE4MUM4RTFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZBMTYgLyogVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHBhdGggPSBtYWMv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NTFENTU5QTY5MDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
QjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25D
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkxRDU1OUFFRjAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0OyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUMx
RDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNv
dXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMubWFrZTsgcGF0aCA9IHd0Zi9EZXJp
dmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1c2VzVGFicyA9IDE7IH07
CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQ7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RFQyAvKiBMaW5lQnJlYWtJ
dGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODgx
NTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJU
b1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50
ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjU2LDYgKzY5NSwxNSBAQAogCQlBOEE0NzM3QjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFk
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZUaHJlYWREYXRhLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAv
KiBjb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBG
ZWF0dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJl
RGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMDFENTVDOTcx
MDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7
IHBhdGggPSBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
MkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBN
ZWRpYVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjMsNiArNzcxLDI0IEBACiAJCQlwYXRo
ID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUNEMTg3OTExRDU1
OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RF
QyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLywKKwkJCQkxQ0I0RkI5NDFENTU5
QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8sCisJCQkJMUNC
NEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0
ICovLAorCQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLywKKwkJ
CQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5
RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQg
Ki8sCisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTc0NCwxMCArODEwLDEyIEBA
CiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3Vy
Y2VzLm1ha2UgKi8sCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAwRTc4Qjc2IC8qIENvbmZpZ3VyYXRp
b25zICovLAogCQkJCTE0MDIyRjNGMThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJ
CQkJNUQyNDdCNjMxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2R1Y3RzICovLAogCQkJCTVEMjQ3Qjc2
MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJCQkJQzJDQTM3REYxRDU1QzhEODAwNDg2
Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYg
LyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZG
IC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtMTA4MCw2ICsxMTQ4LDcgQEAKIAkJ
QThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVh
a2luZ1J1bGVzICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3UgKi8sCiAJ
CQkJQTVCQTE1RjYxODI0MzU5RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCUE1QkExNUYxMTgyNDMz
OUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMTU1LDYgKzEyMjQsMjMgQEAKIAkJCXBhdGggPSBp
Y3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkNBMzdERjFENTVDOEQ4
MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTIxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi8sCisJCQkJ
QzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNjFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAg
Ki8sCisJCQkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSksuY3BwICovLAorCQkJCUMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0g
IkRlcml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvV1RGOworCQkJc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsKIAkJQ0U0NjUxNkMxOURCMUZCNDAw
M0VDQTA1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTE0NjYsNiArMTU1Miw3IEBACiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRl
cGVuZGVuY2llcyA9ICgKKwkJCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gV1RGOwpAQCAtMTQ5NiwxMiArMTU4Mywy
NyBAQAogCQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RG
ICovLAogCQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICov
LAorCQkJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJ
CQkJMTQ0N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFsbG9jICovLAogCQkJKTsKIAkJfTsK
IC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRC
dWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVy
YXRlIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQ
aGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJ
CSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgRGVyaXZl
ZCBTb3VyY2VzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNo
ZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzL1dURlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZc
IlxuXG4vYmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV1RGXG5leHBvcnQgV1RGPVwiV1RGXCJc
blxuaWYgWyAhIC1kIEJyZWFraW5nUnVsZXMgXTsgdGhlblxuICAgIG1rZGlyIEJyZWFraW5nUnVs
ZXNcbmZpXG5cbmV4cG9ydCBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTPTFcbmlmIFsgXCIkU0RL
X1ZFUlNJT05cIiA9PSBcIjEwLjEwXCIgXTsgdGhlblxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQ9MFxuZWxzZVxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9
MVxuZmlcblxuaWYgWyBcIiR7QUNUSU9OfVwiID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJT059XCIg
PSBcImluc3RhbGxcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsaGRyc1wiIC1vIFwiJHtB
Q1RJT059XCIgPSBcImluc3RhbGxhcGlcIiBdOyB0aGVuXG5tYWtlIC0tbm8tYnVpbHRpbi1ydWxl
cyAtZiBcIldURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3Rs
IC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9PVD1cIiR7U0RLUk9PVH1cIlxuZmlcbiI7CisJCX07CiAJ
CTY1QUZBMTcwMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovID0gewogCQkJ
aXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKQEAgLTE1MzIsNiArMTYzNCw4IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQThBNDczODYxNTFBODI1QjAwNDEyM0ZGIC8qIEFz
c2VydGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzUxNTFBODI1QjAwNDEy
M0ZGIC8qIEF0b21pY1N0cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MEVDQTYwRDFCMDI0
MjY4MDA0NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NUJBMTVGQTE4MjQzNUE2MDBBODJFNjkgLyogQXRvbWljU3RyaW5nSW1wbENGLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTU1OSw2ICsxNjYzLDcgQEAKIAkJCQlBOEE0NzNCMDE1MUE4MjVCMDA0MTIz
RkYgLyogZG91YmxlLWNvbnZlcnNpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCQTE1
MUE4MjVCMDA0MTIzRkYgLyogZHRvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCMzE1
MUE4MjVCMDA0MTIzRkYgLyogZmFzdC1kdG9hLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3
RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEY4ODVFMEYxODQ1QUVBOTAwRjFFM0ZBIC8qIEZhc3RCaXRWZWN0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQzMxNTFBODI1QjAwNDEyM0ZGIC8qIEZh
c3RNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRENFRTIyMDExQ0VBNzU1MTAwMEMyMzk2
IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0gaW4gU291cmNlcyAqLywKQEAgLTE1NzQsNiArMTY3
OSw3IEBACiAJCQkJQThBNDczRTkxNTFBODI1QjAwNDEyM0ZGIC8qIE1ENS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDRDU0OTdBQzE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0VDMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9y
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3
M0Y0MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QTQ3M0Y3MTUxQTgyNUIwMDQxMjNGRiAvKiBPU0FsbG9jYXRvclBvc2l4LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0Y5MTUxQTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJj
ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1ODEsNiArMTY4Nyw3IEBACiAJCQkJMUMxODFDOTMx
RDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkZGMTlEQzFCQjMzNEVCMDA4ODZEOTEgLyogUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGODI0QTY4MUI3NDQzQTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQz
MzYyMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNDNGNjExRjE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTYxNSw5ICsxNzIyLDEzIEBACiAJCQkJQThBNDc0NEExNTFBODI1QjAwNDEy
M0ZGIC8qIFRocmVhZGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0RTE1MUE4MjVC
MDA0MTIzRkYgLyogVGhyZWFkaW5nUHRocmVhZHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDc0NjkxNTFBODI1QjAwNDEyM0ZGIC8qIFVURjguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJD
QTM3RUMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNK
Sy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRkE0N0M4QTE1MjUwMkRBMDA1NjhEMUIgLyogV2Vi
Q29yZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkU0NDc5QzFCN0FBQTAzMDA5NDk4
RUIgLyogV29yZExvY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RTkxRDU1Qzk3MTAw
NDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDRUUyMjAzMUNFQTc1NTEwMDBDMjM5NiAv
KiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gaW4gU291cmNlcyAqLywKKwkJ
CQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzOTFBOTYyNDU1MDA1MzZERjYgLyogV29ya1F1
ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0QTBBRDNEMUE5NjI1M0MwMDUzNkRGNiAvKiBX
b3JrUXVldWVDb2NvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0NTE1MUE4MjVCMDA0
MTIzRkYgLyogV1RGU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTYzMyw2ICsxNzQ0LDEx
IEBACiAJCQl0YXJnZXQgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovOwogCQkJ
dGFyZ2V0UHJveHkgPSAxNDQ3QUVDMzE4RkNFNTcwMDBCM0Q3RkYgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovOwogCQl9OworCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJn
ZXQgPSAxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovOworCQkJ
dGFyZ2V0UHJveHkgPSAxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovOworCQl9OwogCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJn
ZXQgPSA2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLzsKQEAg
LTE2NjIsNiArMTc3OCwzMCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9Owor
CQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1
aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNjU0MUNB
RjQxNjMwREIyNjAwNkQwREVDIC8qIENvcHlXVEZIZWFkZXJzLnhjY29uZmlnICovOworCQkJYnVp
bGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJ
fTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVDIC8q
IFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VD
b25maWd1cmF0aW9uUmVmZXJlbmNlID0gNjU0MUNBRjQxNjMwREIyNjAwNkQwREVDIC8qIENvcHlX
VEZIZWFkZXJzLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNU
X05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9
OworCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlz
YSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2Ug
PSA2NTQxQ0FGNDE2MzBEQjI2MDA2RDBERUMgLyogQ29weVdURkhlYWRlcnMueGNjb25maWcgKi87
CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1F
KSI7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjY0MTQ2ODlC
ODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9u
OwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhC
NzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOwpAQCAtMTc0NSw2ICsxODg1LDE2IEBACiAJ
CQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJh
dGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMg
LyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2
ZWQgU291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVp
bGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVi
dWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJ
MUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVm
YXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25O
YW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1
aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV1RGIiAqLyA9IHsKIAkJCWlz
YSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmggYi9Tb3VyY2UvV1RGL2lj
dS91bmljb2RlL2Jya2l0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWE1ZTU1Mjc5NjA5MGVhZWJjZDdjZTdi
N2QyNzVhYThiMzc3NWI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9icmtpdGVyLmgKQEAgLTAsMCArMSw2NTUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1h
Y2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxlIGJya2l0ZXIuaAorKgorKiBNb2Rp
ZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlw
dGlvbgorKiAgIDAyLzE4Lzk3ICAgIGFsaXUgICAgICAgIEFkZGVkIHR5cGVkZWYgZm9yIFRleHRD
b3VudC4gIE1hZGUgRE9ORSBjb25zdC4KKyogICAwNS8wNy85NyAgICBhbGl1ICAgICAgICBGaXhl
ZCBETEwgZGVjbGFyYXRpb24uCisqICAgMDcvMDkvOTcgICAgamZpdHogICAgICAgUmVuYW1lZCBC
cmVha0l0ZXJhdG9yIGFuZCBpbnRlcmZhY2Ugc3luY2VkIHdpdGggSkRLCisqICAgMDgvMTEvOTgg
ICAgaGVsZW5hICAgICAgU3luYy11cCBKREsxLjIuCisqICAgMDEvMTMvMjAwMCAgaGVsZW5hICAg
ICAgQWRkZWQgVUVycm9yQ29kZSBwYXJhbWV0ZXIgdG8gY3JlYXRlWFhYSW5zdGFuY2UgbWV0aG9k
cy4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIEJSS0lURVJfSAorI2Rl
ZmluZSBCUktJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICog
XGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBCcmVhayBJdGVyYXRvci4KKyAqLworCisjaWYgVUNP
TkZJR19OT19CUkVBS19JVEVSQVRJT04KKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoKKyAqIEFs
bG93IHRoZSBkZWNsYXJhdGlvbiBvZiBBUElzIHdpdGggcG9pbnRlcnMgdG8gQnJlYWtJdGVyYXRv
cgorICogZXZlbiB3aGVuIGJyZWFrIGl0ZXJhdGlvbiBpcyByZW1vdmVkIGZyb20gdGhlIGJ1aWxk
LgorICovCitjbGFzcyBCcmVha0l0ZXJhdG9yOworCitVX05BTUVTUEFDRV9FTkQKKworI2Vsc2UK
KworI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3Ry
LmgiCisjaW5jbHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9j
aWQuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VicmsuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVu
dW0uaCIKKyNpbmNsdWRlICJ1bmljb2RlL3V0ZXh0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bWlz
Yy5oIgorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFRoZSBCcmVha0l0ZXJhdG9yIGNs
YXNzIGltcGxlbWVudHMgbWV0aG9kcyBmb3IgZmluZGluZyB0aGUgbG9jYXRpb24KKyAqIG9mIGJv
dW5kYXJpZXMgaW4gdGV4dC4gQnJlYWtJdGVyYXRvciBpcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNz
LgorICogSW5zdGFuY2VzIG9mIEJyZWFrSXRlcmF0b3IgbWFpbnRhaW4gYSBjdXJyZW50IHBvc2l0
aW9uIGFuZCBzY2FuIG92ZXIKKyAqIHRleHQgcmV0dXJuaW5nIHRoZSBpbmRleCBvZiBjaGFyYWN0
ZXJzIHdoZXJlIGJvdW5kYXJpZXMgb2NjdXIuCisgKiA8cD4KKyAqIExpbmUgYm91bmRhcnkgYW5h
bHlzaXMgZGV0ZXJtaW5lcyB3aGVyZSBhIHRleHQgc3RyaW5nIGNhbiBiZSBicm9rZW4KKyAqIHdo
ZW4gbGluZS13cmFwcGluZy4gVGhlIG1lY2hhbmlzbSBjb3JyZWN0bHkgaGFuZGxlcyBwdW5jdHVh
dGlvbiBhbmQKKyAqIGh5cGhlbmF0ZWQgd29yZHMuCisgKiA8cD4KKyAqIFNlbnRlbmNlIGJvdW5k
YXJ5IGFuYWx5c2lzIGFsbG93cyBzZWxlY3Rpb24gd2l0aCBjb3JyZWN0CisgKiBpbnRlcnByZXRh
dGlvbiBvZiBwZXJpb2RzIHdpdGhpbiBudW1iZXJzIGFuZCBhYmJyZXZpYXRpb25zLCBhbmQKKyAq
IHRyYWlsaW5nIHB1bmN0dWF0aW9uIG1hcmtzIHN1Y2ggYXMgcXVvdGF0aW9uIG1hcmtzIGFuZCBw
YXJlbnRoZXNlcy4KKyAqIDxwPgorICogV29yZCBib3VuZGFyeSBhbmFseXNpcyBpcyB1c2VkIGJ5
IHNlYXJjaCBhbmQgcmVwbGFjZSBmdW5jdGlvbnMsIGFzCisgKiB3ZWxsIGFzIHdpdGhpbiB0ZXh0
IGVkaXRpbmcgYXBwbGljYXRpb25zIHRoYXQgYWxsb3cgdGhlIHVzZXIgdG8KKyAqIHNlbGVjdCB3
b3JkcyB3aXRoIGEgZG91YmxlIGNsaWNrLiBXb3JkIHNlbGVjdGlvbiBwcm92aWRlcyBjb3JyZWN0
CisgKiBpbnRlcnByZXRhdGlvbiBvZiBwdW5jdHVhdGlvbiBtYXJrcyB3aXRoaW4gYW5kIGZvbGxv
d2luZworICogd29yZHMuIENoYXJhY3RlcnMgdGhhdCBhcmUgbm90IHBhcnQgb2YgYSB3b3JkLCBz
dWNoIGFzIHN5bWJvbHMgb3IKKyAqIHB1bmN0dWF0aW9uIG1hcmtzLCBoYXZlIHdvcmQtYnJlYWtz
IG9uIGJvdGggc2lkZXMuCisgKiA8cD4KKyAqIENoYXJhY3RlciBib3VuZGFyeSBhbmFseXNpcyBh
bGxvd3MgdXNlcnMgdG8gaW50ZXJhY3Qgd2l0aAorICogY2hhcmFjdGVycyBhcyB0aGV5IGV4cGVj
dCB0bywgZm9yIGV4YW1wbGUsIHdoZW4gbW92aW5nIHRoZSBjdXJzb3IKKyAqIHRocm91Z2ggYSB0
ZXh0IHN0cmluZy4gQ2hhcmFjdGVyIGJvdW5kYXJ5IGFuYWx5c2lzIHByb3ZpZGVzIGNvcnJlY3QK
KyAqIG5hdmlnYXRpb24gb2YgdGhyb3VnaCBjaGFyYWN0ZXIgc3RyaW5ncywgcmVnYXJkbGVzcyBv
ZiBob3cgdGhlCisgKiBjaGFyYWN0ZXIgaXMgc3RvcmVkLiAgRm9yIGV4YW1wbGUsIGFuIGFjY2Vu
dGVkIGNoYXJhY3RlciBtaWdodCBiZQorICogc3RvcmVkIGFzIGEgYmFzZSBjaGFyYWN0ZXIgYW5k
IGEgZGlhY3JpdGljYWwgbWFyay4gV2hhdCB1c2VycworICogY29uc2lkZXIgdG8gYmUgYSBjaGFy
YWN0ZXIgY2FuIGRpZmZlciBiZXR3ZWVuIGxhbmd1YWdlcy4KKyAqIDxwPgorICogVGhlIHRleHQg
Ym91bmRhcnkgcG9zaXRpb25zIGFyZSBmb3VuZCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzCisgKiBk
ZXNjcmliZWQgaW4gVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMjksIFRleHQgQm91bmRhcmllcywg
YW5kCisgKiBVbmljb2RlIFN0YW5kYXJkIEFubmV4ICMxNCwgTGluZSBCcmVha2luZyBQcm9wZXJ0
aWVzLiAgVGhlc2UKKyAqIGFyZSBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy51bmljb2RlLm9yZy9y
ZXBvcnRzL3RyMTQvIGFuZAorICogaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkv
LgorICogPHA+CisgKiBJbiBhZGRpdGlvbiB0byB0aGUgQysrIEFQSSBkZWZpbmVkIGluIHRoaXMg
aGVhZGVyIGZpbGUsIGEKKyAqIHBsYWluIEMgQVBJIHdpdGggZXF1aXZhbGVudCBmdW5jdGlvbmFs
aXR5IGlzIGRlZmluZWQgaW4gdGhlCisgKiBmaWxlIHVicmsuaAorICogPHA+CisgKiBDb2RlIHNu
aXBwZXRzIGlsbHVzdHJhdGluZyB0aGUgdXNlIG9mIHRoZSBCcmVhayBJdGVyYXRvciBBUElzCisg
KiBhcmUgYXZhaWxhYmxlIGluIHRoZSBJQ1UgVXNlciBHdWlkZSwKKyAqIGh0dHA6Ly9pY3UtcHJv
amVjdC5vcmcvdXNlcmd1aWRlL2JvdW5kYXJ5QW5hbHlzaXMuaHRtbAorICogYW5kIGluIHRoZSBz
YW1wbGUgcHJvZ3JhbSBpY3Uvc291cmNlL3NhbXBsZXMvYnJlYWsvYnJlYWsuY3BwCisgKgorICov
CitjbGFzcyBVX0NPTU1PTl9BUEkgQnJlYWtJdGVyYXRvciA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1
YmxpYzoKKyAgICAvKioKKyAgICAgKiAgZGVzdHJ1Y3RvcgorICAgICAqICBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIH5CcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm4gdHJ1ZSBpZiBhbm90aGVyIG9iamVjdCBpcyBzZW1hbnRpY2FsbHkgZXF1YWwg
dG8gdGhpcworICAgICAqIG9uZS4gVGhlIG90aGVyIG9iamVjdCBzaG91bGQgYmUgYW4gaW5zdGFu
Y2Ugb2YgdGhlIHNhbWUgc3ViY2xhc3Mgb2YKKyAgICAgKiBCcmVha0l0ZXJhdG9yLiBPYmplY3Rz
IG9mIGRpZmZlcmVudCBzdWJjbGFzc2VzIGFyZSBjb25zaWRlcmVkCisgICAgICogdW5lcXVhbC4K
KyAgICAgKiA8UD4KKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIEJyZWFrSXRlcmF0b3IgaXMg
YXQgdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlCisgICAgICogc2FtZSB0ZXh0LCBhbmQgaXMgdGhl
IHNhbWUgY2xhc3MgYW5kIHR5cGUgKHdvcmQsIGxpbmUsIGV0Yy4pIG9mCisgICAgICogQnJlYWtJ
dGVyYXRvciwgYXMgdGhlIGFyZ3VtZW50LiAgVGV4dCBpcyBjb25zaWRlcmVkIHRoZSBzYW1lIGlm
CisgICAgICogaXQgY29udGFpbnMgdGhlIHNhbWUgY2hhcmFjdGVycywgaXQgbmVlZCBub3QgYmUg
dGhlIHNhbWUKKyAgICAgKiBvYmplY3QsIGFuZCBzdHlsZXMgYXJlIG5vdCBjb25zaWRlcmVkLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0
b3I9PShjb25zdCBCcmVha0l0ZXJhdG9yJikgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICog
UmV0dXJucyB0aGUgY29tcGxlbWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJhdG9yPT0KKyAgICAg
KiBAcGFyYW0gcmhzIFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFs
aXR5CisgICAgICogQHJldHVybiB0aGUgY29tcGxlbWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJh
dG9yPT0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCBvcGVyYXRv
ciE9KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHJocykgY29uc3QgeyByZXR1cm4gIW9wZXJhdG9yPT0o
cmhzKTsgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcG9seW1vcnBoaWMgY29weSBvZiB0
aGlzIG9iamVjdC4gIFRoaXMgaXMgYW4gYWJzdHJhY3QKKyAgICAgKiBtZXRob2Qgd2hpY2ggc3Vi
Y2xhc3NlcyBpbXBsZW1lbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBCcmVha0l0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm4gYSBwb2x5bW9ycGhpYyBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuIERp
ZmZlcmVudCBzdWJjbGFzc2VzCisgICAgICogd2lsbCByZXR1cm4gZGlzdGluY3QgdW5lcXVhbCB2
YWx1ZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xh
c3NJRCBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm4gYSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVk
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQ2hhcmFjdGVy
SXRlcmF0b3ImIGdldFRleHQodm9pZCkgY29uc3QgPSAwOworCisKKyAgICAvKioKKyAgICAgICog
IEdldCBhIFVUZXh0IGZvciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgICogIFRoZSBy
ZXR1cm5lZCBVVGV4dCBpcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIFVUZXh0IHVzZWQgaW50ZXJu
YWxseQorICAgICAgKiAgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uLiAgSXQg
Y2FuIHNhZmVseSBiZSB1c2VkIHRvCisgICAgICAqICBhY2Nlc3MgdGhlIHRleHQgd2l0aG91dCBp
bXBhY3RpbmcgYW55IGJyZWFrIGl0ZXJhdG9yIG9wZXJhdGlvbnMsCisgICAgICAqICBidXQgdGhl
IHVuZGVybHlpbmcgdGV4dCBpdHNlbGYgbXVzdCBub3QgYmUgYWx0ZXJlZC4KKyAgICAgICoKKyAg
ICAgICogQHBhcmFtIGZpbGxJbiBBIFVUZXh0IHRvIGJlIGZpbGxlZCBpbi4gIElmIE5VTEwsIGEg
bmV3IFVUZXh0IHdpbGwgYmUKKyAgICAgICogICAgICAgICAgIGFsbG9jYXRlZCB0byBob2xkIHRo
ZSByZXN1bHQuCisgICAgICAqIEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVz
LgorICAgICAgKiBAcmV0dXJuICAgVGhlIGN1cnJlbnQgVVRleHQgZm9yIHRoaXMgYnJlYWsgaXRl
cmF0b3IuICBJZiBhbiBpbnB1dAorICAgICAgKiAgICAgICAgICAgVVRleHQgd2FzIHByb3ZpZGVk
LCBpdCB3aWxsIGFsd2F5cyBiZSByZXR1cm5lZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMy40Cisg
ICAgICAqLworICAgICB2aXJ0dWFsIFVUZXh0ICpnZXRVVGV4dChVVGV4dCAqZmlsbEluLCBVRXJy
b3JDb2RlICZzdGF0dXMpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIENoYW5nZSB0aGUg
dGV4dCBvdmVyIHdoaWNoIHRoaXMgb3BlcmF0ZXMuIFRoZSB0ZXh0IGJvdW5kYXJ5IGlzCisgICAg
ICogcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBVbmljb2RlU3Ry
aW5nIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nICZ0ZXh0
KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdG8gb3Bl
cmF0ZSBvdmVyIHRoZSB0ZXh0IHJlcHJlc2VudGVkIGJ5CisgICAgICogdGhlIFVUZXh0LiAgVGhl
IGl0ZXJhdG9yIHBvc2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKgorICAgICAq
IFRoaXMgZnVuY3Rpb24gbWFrZXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBzdXBwbGllZCBVVGV4
dC4gIFRoaXMgbWVhbnMKKyAgICAgKiB0aGF0IHRoZSBjYWxsZXIgaXMgZnJlZSB0byBpbW1lZGlh
dGVseSBjbG9zZSBvciBvdGhlcndpc2UgcmV1c2UgdGhlCisgICAgICogVXRleHQgdGhhdCB3YXMg
cGFzc2VkIGFzIGEgcGFyYW1ldGVyLCBidXQgdGhhdCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2Vs
ZgorICAgICAqIG11c3Qgbm90IGJlIGFsdGVyZWQgd2hpbGUgYmVpbmcgcmVmZXJlbmNlZCBieSB0
aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBBbGwgaW5kZXggcG9zaXRpb25zIHJl
dHVybmVkIGJ5IGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyBhcmUKKyAgICAgKiBuYXRpdmUgaW5k
aWNlcyBmcm9tIHRoZSBVVGV4dC4gRm9yIGV4YW1wbGUsIHdoZW4gYnJlYWtpbmcgVVRGLTgKKyAg
ICAgKiBlbmNvZGVkIHRleHQsIHRoZSBicmVhayBwb3NpdGlvbnMgcmV0dXJuZWQgYnkgbmV4dCgp
LCBwcmV2aW91cygpLCBldGMuCisgICAgICogd2lsbCBiZSBVVEYtOCBzdHJpbmcgaW5kaWNlcywg
bm90IFVURi0xNiBwb3NpdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgVVRl
eHQgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZl
cyBhbnkgZXJyb3IgY29kZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICovCisgICAg
dmlydHVhbCB2b2lkICBzZXRUZXh0KFVUZXh0ICp0ZXh0LCBVRXJyb3JDb2RlICZzdGF0dXMpID0g
MDsKKworICAgIC8qKgorICAgICAqIENoYW5nZSB0aGUgdGV4dCBvdmVyIHdoaWNoIHRoaXMgb3Bl
cmF0ZXMuIFRoZSB0ZXh0IGJvdW5kYXJ5IGlzCisgICAgICogcmVzZXQgdG8gdGhlIHN0YXJ0Lgor
ICAgICAqIE5vdGUgdGhhdCBzZXRUZXh0KFVUZXh0ICopIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rp
b25hbGl0eSB0byB0aGlzIGZ1bmN0aW9uLAorICAgICAqIGFuZCBpcyBtb3JlIGVmZmljaWVudC4K
KyAgICAgKiBAcGFyYW0gaXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHVzZWQgdG8gY2hhbmdlIHRo
ZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9p
ZCAgYWRvcHRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKiBpdCkgPSAwOworCisgICAgZW51bSB7Cisg
ICAgICAgIC8qKgorICAgICAgICAgKiBET05FIGlzIHJldHVybmVkIGJ5IHByZXZpb3VzKCkgYW5k
IG5leHQoKSBhZnRlciBhbGwgdmFsaWQKKyAgICAgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4g
cmV0dXJuZWQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAg
ICAgRE9ORSA9IChpbnQzMl90KS0xCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhl
IGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQs
IHBvc2l0aW9uIHplcm8uCisgICAgICogQHJldHVybiBUaGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5p
bmcgb2YgdGhlIHRleHQsIHplcm8uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBpbnQzMl90IGZpcnN0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNl
dCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGluZGV4IGltbWVkaWF0ZWx5IEJFWU9ORCB0
aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgYmVpbmcgc2Nhbm5lZC4KKyAgICAgKiBAcmV0
dXJuIFRoZSBpbmRleCBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRo
ZSB0ZXh0IGJlaW5nIHNjYW5uZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBpbnQzMl90IGxhc3Qodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0
IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgYm91bmRhcnkgcHJlY2VkaW5nIHRoZSBjdXJy
ZW50IGJvdW5kYXJ5LgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUg
cHJldmlvdXMgdGV4dCBib3VuZGFyeSBvciBET05FIGlmIGFsbAorICAgICAqIGJvdW5kYXJpZXMg
aGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBwcmV2aW91cyh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBB
ZHZhbmNlIHRoZSBpdGVyYXRvciB0byB0aGUgYm91bmRhcnkgZm9sbG93aW5nIHRoZSBjdXJyZW50
IGJvdW5kYXJ5LgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgbmV4
dCB0ZXh0IGJvdW5kYXJ5IG9yIERPTkUgaWYgYWxsCisgICAgICogYm91bmRhcmllcyBoYXZlIGJl
ZW4gcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90IG5leHQodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGNoYXJh
Y3RlciBpbmRleCBvZiB0aGUgY3VycmVudCBpbnRlcmF0b3IgcG9zaXRpb24gd2l0aGluIHRoZSB0
ZXh0LgorICAgICAqIEByZXR1cm4gVGhlIGJvdW5kYXJ5IG1vc3QgcmVjZW50bHkgcmV0dXJuZWQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGN1
cnJlbnQodm9pZCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogQWR2YW5jZSB0aGUgaXRl
cmF0b3IgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIG9mZnNl
dC4KKyAgICAgKiBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgYWx3YXlzIGdyZWF0ZXIgdGhhbiB0aGUg
b2Zmc2V0IG9yCisgICAgICogdGhlIHZhbHVlIEJyZWFrSXRlcmF0b3IuRE9ORQorICAgICAqIEBw
YXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KKyAgICAgKiBAcmV0dXJu
IFRoZSBmaXJzdCBib3VuZGFyeSBhZnRlciB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZm9sbG93aW5nKGlu
dDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBv
c2l0aW9uIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIHNwZWNpZmllZCBvZmZz
ZXQuCisgICAgICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5cyBzbWFsbGVyIHRoYW4gdGhl
IG9mZnNldCBvcgorICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0ZXJhdG9yLkRPTkUKKyAgICAgKiBA
cGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nhbm5pbmcuCisgICAgICogQHJldHVy
biBUaGUgZmlyc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmco
aW50MzJfdCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRo
ZSBzcGVjZmllZCBwb3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEFzIGEg
c2lkZSBlZmZlY3QsIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRvciBpcyBzZXQK
KyAgICAgKiB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gYXQgb3IgZm9sbG93aW5nIHRo
ZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBj
aGVjay4KKyAgICAgKiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMgYSBib3VuZGFyeSBwb3Np
dGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29s
IGlzQm91bmRhcnkoaW50MzJfdCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0
aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIG50aCBib3VuZGFyeSBmcm9tIHRoZSBjdXJyZW50
IGJvdW5kYXJ5CisgICAgICogQHBhcmFtIG4gdGhlIG51bWJlciBvZiBib3VuZGFyaWVzIHRvIG1v
dmUgYnkuICBBIHZhbHVlIG9mIDAKKyAgICAgKiBkb2VzIG5vdGhpbmcuICBOZWdhdGl2ZSB2YWx1
ZXMgbW92ZSB0byBwcmV2aW91cyBib3VuZGFyaWVzCisgICAgICogYW5kIHBvc2l0aXZlIHZhbHVl
cyBtb3ZlIHRvIGxhdGVyIGJvdW5kYXJpZXMuCisgICAgICogQHJldHVybiBUaGUgbmV3IGl0ZXJh
dG9yIHBvc2l0aW9uLCBvcgorICAgICAqIERPTkUgaWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gfG58
IGJvdW5kYXJpZXMgaW4gdGhlIHNwZWNmaWVkIGRpcmVjdGlvbi4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dChpbnQzMl90IG4pID0gMDsK
KworICAgLyoqCisgICAgICogRm9yIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JzLCByZXR1cm4gdGhl
IHN0YXR1cyB0YWcgZnJvbSB0aGUgCisgICAgICogYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQg
dGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAg
KiA8cD4KKyAgICAgKiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9y
dCBhIHJ1bGUgc3RhdHVzLAorICAgICAqIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVk
LgorICAgICAqIDxwPgorICAgICAqIEByZXR1cm4gdGhlIHN0YXR1cyBmcm9tIHRoZSBicmVhayBy
dWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqICAgICAgICAgcmV0
dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgICogQHNlZSBSdWxlQmFzZUJyZWFrSXRlcmF0b3I6
OmdldFJ1bGVTdGF0dXMoKQorICAgICAqIEBzZWUgVVdvcmRCcmVhaworICAgICAqIEBzdGFibGUg
SUNVIDUyCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXMoKSBjb25z
dDsKKworICAgLyoqCisgICAgKiBGb3IgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcnMsIGdldCB0aGUg
c3RhdHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIAorICAgICogdGhhdCBk
ZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAg
ICogPHA+CisgICAgKiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9y
dCBydWxlIHN0YXR1cywKKyAgICAqIG5vIHZhbHVlcyBhcmUgcmV0dXJuZWQuCisgICAgKiA8cD4K
KyAgICAqIFRoZSByZXR1cm5lZCBzdGF0dXMgdmFsdWUocykgYXJlIHN0b3JlZCBpbnRvIGFuIGFy
cmF5IHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9yZWQg
aW4gc29ydGVkIChhc2NlbmRpbmcpIG9yZGVyLgorICAgICogSWYgdGhlIGNhcGFjaXR5IG9mIHRo
ZSBvdXRwdXQgYXJyYXkgaXMgaW5zdWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgICAgKiAg
dGhlIG91dHB1dCB3aWxsIGJlIHRydW5jYXRlZCB0byB0aGUgYXZhaWxhYmxlIGxlbmd0aCwgYW5k
IGEKKyAgICAqICBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiB3aWxsIGJlIHNpZ25hbGVkLgorICAg
ICogPHA+CisgICAgKiBAc2VlIFJ1bGVCYXNlQnJlYWtJdGVyYXRvcjo6Z2V0UnVsZVN0YXR1c1Zl
YworICAgICoKKyAgICAqIEBwYXJhbSBmaWxsSW5WZWMgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGlu
IHdpdGggdGhlIHN0YXR1cyB2YWx1ZXMuCisgICAgKiBAcGFyYW0gY2FwYWNpdHkgIHRoZSBsZW5n
dGggb2YgdGhlIHN1cHBsaWVkIHZlY3Rvci4gIEEgbGVuZ3RoIG9mIHplcm8gY2F1c2VzCisgICAg
KiAgICAgICAgICAgICAgICAgIHRoZSBmdW5jdGlvbiB0byByZXR1cm4gdGhlIG51bWJlciBvZiBz
dGF0dXMgdmFsdWVzLCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgbm9ybWFsIHdheSwg
d2l0aG91dCBhdHRlbXRwaW5nIHRvIHN0b3JlIGFueSB2YWx1ZXMuCisgICAgKiBAcGFyYW0gc3Rh
dHVzICAgIHJlY2VpdmVzIGVycm9yIGNvZGVzLgorICAgICogQHJldHVybiAgICAgICAgICBUaGUg
bnVtYmVyIG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZAor
ICAgICogICAgICAgICAgICAgICAgICB0aGUgbW9zdCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQg
YnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICogICAgICAgICAgICAgICAgICBJbiB0aGUgZXZl
bnQgb2YgYSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdGhlIHJldHVybiB2YWx1ZQorICAgICog
ICAgICAgICAgICAgICAgICBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhh
dCB3ZXJlIGF2YWlsYWJsZSwKKyAgICAqICAgICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2Vk
IG51bWJlciB0aGF0IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQuCisgICAgKiBAc2VlIGdldFJ1bGVT
dGF0dXMKKyAgICAqIEBzdGFibGUgSUNVIDUyCisgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3Qg
Z2V0UnVsZVN0YXR1c1ZlYyhpbnQzMl90ICpmaWxsSW5WZWMsIGludDMyX3QgY2FwYWNpdHksIFVF
cnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRv
ciBmb3Igd29yZC1icmVha3MgdXNpbmcgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBSZXR1cm5z
IGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgd29yZCBicmVha3Mu
CisgICAgICogV29yZEJyZWFrIGlzIHVzZWZ1bCBmb3Igd29yZCBzZWxlY3Rpb24gKGV4LiBkb3Vi
bGUgY2xpY2spCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFt
IHN0YXR1cyB0aGUgZXJyb3IgY29kZQorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZv
ciB3b3JkLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIg
aXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAq
IFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ug
c2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91
IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZv
ciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vz
cy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxs
IGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMg
cmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAg
ICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZh
dWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBs
b2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBm
b3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMg
cmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVXb3Jk
SW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAg
IC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBsaW5lLWJyZWFrcyB1c2luZyBz
cGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0
ZXJhdG9yIGltcGxlbWVudGluZyBsaW5lIGJyZWFrcy4gTGluZQorICAgICAqIGJyZWFrcyBhcmUg
bG9naWNhbGx5IHBvc3NpYmxlIGxpbmUgYnJlYWtzLCBhY3R1YWwgbGluZSBicmVha3MgYXJlCisg
ICAgICogdXN1YWxseSBkZXRlcm1pbmVkIGJhc2VkIG9uIGRpc3BsYXkgd2lkdGguCisgICAgICog
TGluZUJyZWFrIGlzIHVzZWZ1bCBmb3Igd29yZCB3cmFwcGluZyB0ZXh0LgorICAgICAqIEBwYXJh
bSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUu
CisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIGxpbmUtYnJlYWtzLiAgVGhlIFVF
cnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0
dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUg
Y29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0
aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGlu
Zm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3Ig
cmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFM
TEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQu
ICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5n
IHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZB
VUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisg
ICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBm
YWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxs
ZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRp
bmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFr
SXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZUxpbmVJbnN0YW5jZShjb25zdCBMb2NhbGUm
IHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJy
ZWFrSXRlcmF0b3IgZm9yIGNoYXJhY3Rlci1icmVha3MgdXNpbmcgc3BlY2lmaWVkIGxvY2FsZQor
ICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGlu
ZyBjaGFyYWN0ZXIgYnJlYWtzLgorICAgICAqIENoYXJhY3RlciBicmVha3MgYXJlIGJvdW5kYXJp
ZXMgb2YgY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMuCisgICAgICogQHBhcmFtIHdoZXJl
IHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAg
KiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3IgY2hhcmFjdGVyLWJyZWFrcy4gIFRoZSBVRXJy
b3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVz
IGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNv
bnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhl
IHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZv
cm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJl
c3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExC
QUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAg
Rm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3
YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVM
VF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAg
ICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFs
bCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVy
IG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5n
IGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0
ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVDaGFyYWN0ZXJJbnN0YW5jZShjb25zdCBMb2Nh
bGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRl
IEJyZWFrSXRlcmF0b3IgZm9yIHNlbnRlbmNlLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxl
CisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50
aW5nIHNlbnRlbmNlIGJyZWFrcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAg
ICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVh
a0l0ZXJhdG9yIGZvciBzZW50ZW5jZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisg
ICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0
aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2Vl
ZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NF
U1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAg
ICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxs
IGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGlj
YXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1w
bGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBz
byAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0
ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVy
IHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisg
ICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5l
ZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQy
CisgICAgY3JlYXRlU2VudGVuY2VJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JD
b2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9y
IHRpdGxlLWNhc2luZyBicmVha3MgdXNpbmcgdGhlIHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBS
ZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgdGl0bGUg
YnJlYWtzLgorICAgICAqIFRoZSBpdGVyYXRvciByZXR1cm5lZCBsb2NhdGVzIHRpdGxlIGJvdW5k
YXJpZXMgYXMgZGVzY3JpYmVkIGZvcgorICAgICAqIFVuaWNvZGUgMy4yIG9ubHkuIEZvciBVbmlj
b2RlIDQuMCBhbmQgYWJvdmUgdGl0bGUgYm91bmRhcnkgaXRlcmF0aW9uLAorICAgICAqIHBsZWFz
ZSB1c2UgV29yZCBCb3VuZGFyeSBpdGVyYXRvci57QGxpbmsgI2NyZWF0ZVdvcmRJbnN0YW5jZSB9
CisgICAgICoKKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0g
c3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZv
ciB0aXRsZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVy
IGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAg
KiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91
IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlv
dSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBm
b3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nl
c3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFs
bCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2Fz
IHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAg
ICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVm
YXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQg
bG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUg
Zm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlz
IHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAg
ICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlVGl0
bGVJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisg
ICAgLyoqCisgICAgICogR2V0IHRoZSBzZXQgb2YgTG9jYWxlcyBmb3Igd2hpY2ggVGV4dEJvdW5k
YXJpZXMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiA8cD48Yj5Ob3RlOjwvYj4gdGhpcyB3aWxsIG5v
dCByZXR1cm4gbG9jYWxlcyBhZGRlZCB0aHJvdWdoIHRoZSByZWdpc3RlcgorICAgICAqIGNhbGwu
IFRvIHNlZSB0aGUgcmVnaXN0ZXJlZCBsb2NhbGVzIHRvbywgdXNlIHRoZSBnZXRBdmFpbGFibGVM
b2NhbGVzCisgICAgICogZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgU3RyaW5nRW51bWVyYXRpb24g
b2JqZWN0IDwvcD4KKyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG91dHB1dCBwYXJhbWV0ZXIgb2Yg
bnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBsb2NhbGUgbGlzdAorICAgICAqIEByZXR1cm4gYXZh
aWxhYmxlIGxvY2FsZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0
aWMgY29uc3QgTG9jYWxlKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxlTG9jYWxlcyhpbnQzMl90JiBj
b3VudCk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgbmFtZSBvZiB0aGUgb2JqZWN0IGZvciB0aGUg
ZGVzaXJlZCBMb2NhbGUsIGluIHRoZSBkZXNpcmVkIGxhbmdhdWdlLgorICAgICAqIEBwYXJhbSBv
YmplY3RMb2NhbGUgbXVzdCBiZSBmcm9tIGdldEF2YWlsYWJsZUxvY2FsZXMuCisgICAgICogQHBh
cmFtIGRpc3BsYXlMb2NhbGUgc3BlY2lmaWVzIHRoZSBkZXNpcmVkIGxvY2FsZSBmb3Igb3V0cHV0
LgorICAgICAqIEBwYXJhbSBuYW1lIHRoZSBmaWxsLWluIHBhcmFtZXRlciBvZiB0aGUgcmV0dXJu
IHZhbHVlCisgICAgICogVXNlcyBiZXN0IG1hdGNoLgorICAgICAqIEByZXR1cm4gdXNlci1kaXNw
bGF5YWJsZSBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGlj
IFVuaWNvZGVTdHJpbmcmIFVfRVhQT1JUMiBnZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmIG9i
amVjdExvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgTG9jYWxlJiBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIEdldCBu
YW1lIG9mIHRoZSBvYmplY3QgZm9yIHRoZSBkZXNpcmVkIExvY2FsZSwgaW4gdGhlIGxhbmdhdWdl
IG9mIHRoZQorICAgICAqIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2Nh
bGUgbXVzdCBiZSBmcm9tIGdldE1hdGNoaW5nTG9jYWxlcworICAgICAqIEBwYXJhbSBuYW1lIHRo
ZSBmaWxsLWluIHBhcmFtZXRlciBvZiB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogQHJldHVybiB1
c2VyLWRpc3BsYXlhYmxlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICBzdGF0aWMgVW5pY29kZVN0cmluZyYgVV9FWFBPUlQyIGdldERpc3BsYXlOYW1lKGNvbnN0IExv
Y2FsZSYgb2JqZWN0TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVbmljb2RlU3RyaW5nJiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIERlcHJlY2F0ZWQg
ZnVuY3Rpb25hbGl0eS4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIFRocmVh
ZCBzYWZlIGNsaWVudC1idWZmZXItYmFzZWQgY2xvbmluZyBvcGVyYXRpb24KKyAgICAgKiAgICBE
byBOT1QgY2FsbCBkZWxldGUgb24gYSBzYWZlY2xvbmUsIHNpbmNlICduZXcnIGlzIG5vdCB1c2Vk
IHRvIGNyZWF0ZSBpdC4KKyAgICAgKiBAcGFyYW0gc3RhY2tCdWZmZXIgdXNlciBhbGxvY2F0ZWQg
c3BhY2UgZm9yIHRoZSBuZXcgY2xvbmUuIElmIE5VTEwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9j
YXRlZC4KKyAgICAgKiBJZiBidWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaCwgbmV3IG1lbW9yeSB3
aWxsIGJlIGFsbG9jYXRlZC4KKyAgICAgKiBAcGFyYW0gQnVmZmVyU2l6ZSByZWZlcmVuY2UgdG8g
c2l6ZSBvZiBhbGxvY2F0ZWQgc3BhY2UuCisgICAgICogSWYgQnVmZmVyU2l6ZSA9PSAwLCBhIHN1
ZmZpY2llbnQgc2l6ZSBmb3IgdXNlIGluIGNsb25pbmcgd2lsbAorICAgICAqIGJlIHJldHVybmVk
ICgncHJlLWZsaWdodGluZycpCisgICAgICogSWYgQnVmZmVyU2l6ZSBpcyBub3QgZW5vdWdoIGZv
ciBhIHN0YWNrLWJhc2VkIHNhZmUgY2xvbmUsCisgICAgICogbmV3IG1lbW9yeSB3aWxsIGJlIGFs
bG9jYXRlZC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIG9w
ZXJhdGlvbiB3ZW50IG9uIHNtb290aGx5IG9yIHRoZXJlIHdlcmUgZXJyb3JzCisgICAgICogIEFu
IGluZm9ybWF0aW9uYWwgc3RhdHVzIHZhbHVlLCBVX1NBRkVDTE9ORV9BTExPQ0FURURfRVJST1Is
IGlzIHVzZWQgaWYgYW55IGFsbG9jYXRpb25zIHdlcmUKKyAgICAgKiAgbmVjZXNzYXJ5LgorICAg
ICAqIEByZXR1cm4gcG9pbnRlciB0byB0aGUgbmV3IGNsb25lCisgICAgICoKKyAgICAgKiBAZGVw
cmVjYXRlZCBJQ1UgNTIuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICovCisgICAgdmlydHVh
bCBCcmVha0l0ZXJhdG9yICogIGNyZWF0ZUJ1ZmZlckNsb25lKHZvaWQgKnN0YWNrQnVmZmVyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICZC
dWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVRXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9B
UEkKKworICAgIC8qKgorICAgICAqICAgRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIEJyZWFrSXRlcmF0
b3Igd2FzIGNyZWF0ZWQgaW4gdXNlciBtZW1vcnkgYnkKKyAgICAgKiAgIGNyZWF0ZUJ1ZmZlckNs
b25lKCksIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgZGVsZXRlZC4gIFN1Y2ggb2JqZWN0cworICAg
ICAqICAgbXVzdCBiZSBjbG9zZWQgYnkgYW4gZXhwbGljaXQgY2FsbCB0byB0aGUgZGVzdHJ1Y3Rv
ciAobm90IGRlbGV0ZSkuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBBbHdheXMgZGVsZXRl
IHRoZSBCcmVha0l0ZXJhdG9yLgorICAgICAqLworICAgIGlubGluZSBVQm9vbCBpc0J1ZmZlckNs
b25lKHZvaWQpOworCisjZW5kaWYgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisKKyNpZiAh
VUNPTkZJR19OT19TRVJWSUNFCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBuZXcgYnJlYWsg
aXRlcmF0b3Igb2YgdGhlIGluZGljYXRlZCBraW5kLCB0byB1c2UgaW4gdGhlIGdpdmVuIGxvY2Fs
ZS4KKyAgICAgKiBUaGUgYnJlYWsgaXRlcmF0b3Igd2lsbCBiZSBhZG9wdGVkLiAgQ2xvbmVzIG9m
IHRoZSBpdGVyYXRvciB3aWxsIGJlIHJldHVybmVkCisgICAgICogaWYgYSByZXF1ZXN0IGZvciBh
IGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBnaXZlbiBraW5kIG1hdGNoZXMgb3IgZmFsbHMgYmFjayB0
bworICAgICAqIHRoaXMgbG9jYWxlLgorICAgICAqIEJlY2F1c2UgSUNVIG1heSBjaG9vc2UgdG8g
Y2FjaGUgQnJlYWtJdGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBtdXN0CisgICAgICogYmUgY2Fs
bGVkIGF0IGFwcGxpY2F0aW9uIHN0YXJ0dXAsIHByaW9yIHRvIGFueSBjYWxscyB0bworICAgICAq
IEJyZWFrSXRlcmF0b3I6OmNyZWF0ZVhYWEluc3RhbmNlIHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhh
dmlvci4KKyAgICAgKiBAcGFyYW0gdG9BZG9wdCB0aGUgQnJlYWtJdGVyYXRvciBpbnN0YW5jZSB0
byBiZSBhZG9wdGVkCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgTG9jYWxlIGZvciB3aGljaCB0
aGlzIGluc3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQKKyAgICAgKiBAcGFyYW0ga2luZCB0aGUg
dHlwZSBvZiBpdGVyYXRvciBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3Rl
cmVkCisgICAgICogQHBhcmFtIHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVj
aWFsIG1lYW5pbmdzIGFyZSBhc3NpZ25lZAorICAgICAqIEByZXR1cm4gYSByZWdpc3RyeSBrZXkg
dGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBzdGF0aWMgVVJlZ2lzdHJ5S2V5IFVfRVhQT1JUMiBy
ZWdpc3Rlckluc3RhbmNlKEJyZWFrSXRlcmF0b3IqIHRvQWRvcHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxlJiBsb2NhbGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUJyZWFrSXRlcmF0b3JUeXBlIGtpbmQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSYgc3RhdHVz
KTsKKworICAgIC8qKgorICAgICAqIFVucmVnaXN0ZXIgYSBwcmV2aW91c2x5LXJlZ2lzdGVyZWQg
QnJlYWtJdGVyYXRvciB1c2luZyB0aGUga2V5IHJldHVybmVkIGZyb20gdGhlCisgICAgICogcmVn
aXN0ZXIgY2FsbC4gIEtleSBiZWNvbWVzIGludmFsaWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwg
YW5kIHNob3VsZCBub3QgYmUgdXNlZCBhZ2Fpbi4KKyAgICAgKiBUaGUgQnJlYWtJdGVyYXRvciBj
b3JyZXNwb25kaW5nIHRvIHRoZSBrZXkgd2lsbCBiZSBkZWxldGVkLgorICAgICAqIEJlY2F1c2Ug
SUNVIG1heSBjaG9vc2UgdG8gY2FjaGUgQnJlYWtJdGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBz
aG91bGQKKyAgICAgKiBiZSBjYWxsZWQgZHVyaW5nIGFwcGxpY2F0aW9uIHNodXRkb3duLCBhZnRl
ciBhbGwgY2FsbHMgdG8KKyAgICAgKiBCcmVha0l0ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0
byBhdm9pZCB1bmRlZmluZWQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIGtleSB0aGUgcmVnaXN0
cnkga2V5IHJldHVybmVkIGJ5IGEgcHJldmlvdXMgY2FsbCB0byByZWdpc3Rlckluc3RhbmNlCisg
ICAgICogQHBhcmFtIHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVjaWFsIG1l
YW5pbmdzIGFyZSBhc3NpZ25lZAorICAgICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgaXRlcmF0b3Ig
Zm9yIHRoZSBrZXkgd2FzIHN1Y2Nlc3NmdWxseSB1bnJlZ2lzdGVyZWQKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjQKKyAgICAgKi8KKyAgICBzdGF0aWMgVUJvb2wgVV9FWFBPUlQyIHVucmVnaXN0ZXIo
VVJlZ2lzdHJ5S2V5IGtleSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAq
IFJldHVybiBhIFN0cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMgYXZhaWxhYmxlIGF0
IHRoZSB0aW1lIG9mIHRoZSBjYWxsLAorICAgICAqIGluY2x1ZGluZyByZWdpc3RlcmVkIGxvY2Fs
ZXMuCisgICAgICogQHJldHVybiBhIFN0cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMg
YXZhaWxhYmxlIGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40
CisgICAgICovCisgICAgc3RhdGljIFN0cmluZ0VudW1lcmF0aW9uKiBVX0VYUE9SVDIgZ2V0QXZh
aWxhYmxlTG9jYWxlcyh2b2lkKTsKKyNlbmRpZgorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0
aGUgbG9jYWxlIGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiBUd28gZmxhdm9ycyBhcmUgYXZhaWxh
YmxlOiB2YWxpZCBhbmQKKyAgICAgKiBhY3R1YWwgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNV
IDIuOAorICAgICAqLworICAgIExvY2FsZSBnZXRMb2NhbGUoVUxvY0RhdGFMb2NhbGVUeXBlIHR5
cGUsIFVFcnJvckNvZGUmIHN0YXR1cykgY29uc3Q7CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFM
X0FQSQorICAgIC8qKiBHZXQgdGhlIGxvY2FsZSBmb3IgdGhpcyBicmVhayBpdGVyYXRvciBvYmpl
Y3QuIFlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdmFsaWQgYW5kIGFjdHVhbCBsb2NhbGUuCisgICAg
ICogIEBwYXJhbSB0eXBlIHR5cGUgb2YgdGhlIGxvY2FsZSB3ZSdyZSBsb29raW5nIGZvciAodmFs
aWQgb3IgYWN0dWFsKQorICAgICAqICBAcGFyYW0gc3RhdHVzIGVycm9yIGNvZGUgZm9yIHRoZSBv
cGVyYXRpb24KKyAgICAgKiAgQHJldHVybiB0aGUgbG9jYWxlCisgICAgICogIEBpbnRlcm5hbAor
ICAgICAqLworICAgIGNvbnN0IGNoYXIgKmdldExvY2FsZUlEKFVMb2NEYXRhTG9jYWxlVHlwZSB0
eXBlLCBVRXJyb3JDb2RlJiBzdGF0dXMpIGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVfSU5URVJO
QUxfQVBJICovCisKKyAgICAvKioKKyAgICAgKiAgU2V0IHRoZSBzdWJqZWN0IHRleHQgc3RyaW5n
IHVwb24gd2hpY2ggdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9wZXJhdGluZworICAgICAqICB3aXRo
b3V0IGNoYW5naW5nIGFueSBvdGhlciBhc3BlY3Qgb2YgdGhlIG1hdGNoaW5nIHN0YXRlLgorICAg
ICAqICBUaGUgbmV3IGFuZCBwcmV2aW91cyB0ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1l
IGNvbnRlbnQuCisgICAgICoKKyAgICAgKiAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3Ig
dXNlIGluIGVudmlyb25tZW50cyB3aGVyZSBJQ1UgaXMgb3BlcmF0aW5nIG9uCisgICAgICogIHN0
cmluZ3MgdGhhdCBtYXkgbW92ZSBhcm91bmQgaW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNo
YW5pc20gZm9yIG5vdGlmeWluZworICAgICAqICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVu
IHJlbG9jYXRlZCwgYW5kIHByb3ZpZGluZyBhIG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICAg
ICogIHN0cmluZyBpbiBpdHMgbmV3IHBvc2l0aW9uLgorICAgICAqCisgICAgICogIE5vdGUgdGhh
dCB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24gbmV2ZXIgY29waWVzIHRoZSB1bmRl
cmx5aW5nIHRleHQKKyAgICAgKiAgb2YgYSBzdHJpbmcgYmVpbmcgcHJvY2Vzc2VkLCBidXQgYWx3
YXlzIG9wZXJhdGVzIGRpcmVjdGx5IG9uIHRoZSBvcmlnaW5hbCB0ZXh0CisgICAgICogIHByb3Zp
ZGVkIGJ5IHRoZSB1c2VyLiBSZWZyZXNoaW5nIHNpbXBseSBkcm9wcyB0aGUgcmVmZXJlbmNlcyB0
byB0aGUgb2xkIHRleHQKKyAgICAgKiAgYW5kIHJlcGxhY2VzIHRoZW0gd2l0aCByZWZlcmVuY2Vz
IHRvIHRoZSBuZXcuCisgICAgICoKKyAgICAgKiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rpb24gaXMg
bm9ybWFsbHkgdXNlZCBvbmx5IGJ5IHZlcnkgc3BlY2lhbGl6ZWQsCisgICAgICogIHN5c3RlbS1s
ZXZlbCBjb2RlLiAgT25lIGV4YW1wbGUgdXNlIGNhc2UgaXMgd2l0aCBnYXJiYWdlIGNvbGxlY3Rp
b24gdGhhdCBtb3ZlcworICAgICAqICB0aGUgdGV4dCBpbiBtZW1vcnkuCisgICAgICoKKyAgICAg
KiBAcGFyYW0gaW5wdXQgICAgICBUaGUgbmV3IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisgICAgICog
QHBhcmFtIHN0YXR1cyAgICAgUmVjZWl2ZXMgZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rp
b24uCisgICAgICogQHJldHVybiAgICAgICAgICAgKnRoaXMKKyAgICAgKgorICAgICAqIEBzdGFi
bGUgSUNVIDQ5CisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yICZyZWZyZXNoSW5w
dXRUZXh0KFVUZXh0ICppbnB1dCwgVUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyBwcml2YXRl
OgorICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBidWlsZEluc3RhbmNlKGNvbnN0IExvY2FsZSYg
bG9jLCBjb25zdCBjaGFyICp0eXBlLCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7
CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUluc3RhbmNlKGNvbnN0IExvY2FsZSYg
bG9jLCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisgICAgc3RhdGljIEJyZWFr
SXRlcmF0b3IqIG1ha2VJbnN0YW5jZShjb25zdCBMb2NhbGUmIGxvYywgaW50MzJfdCBraW5kLCBV
RXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgZnJpZW5kIGNsYXNzIElDVUJyZWFrSXRlcmF0b3JG
YWN0b3J5OworICAgIGZyaWVuZCBjbGFzcyBJQ1VCcmVha0l0ZXJhdG9yU2VydmljZTsKKworcHJv
dGVjdGVkOgorICAgIC8vIERvIG5vdCBlbmNsb3NlIHByb3RlY3RlZCBkZWZhdWx0L2NvcHkgY29u
c3RydWN0b3JzIHdpdGggI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLy8gb3IgZWxz
ZSB0aGUgY29tcGlsZXIgd2lsbCBjcmVhdGUgYSBwdWJsaWMgb25lcy4KKyAgICAvKiogQGludGVy
bmFsICovCisgICAgQnJlYWtJdGVyYXRvcigpOworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBC
cmVha0l0ZXJhdG9yIChjb25zdCBCcmVha0l0ZXJhdG9yICZvdGhlcikgOiBVT2JqZWN0KG90aGVy
KSB7fQorICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJhdG9yIChjb25zdCBMb2Nh
bGUmIHZhbGlkLCBjb25zdCBMb2NhbGUmIGFjdHVhbCk7Citwcml2YXRlOgorCisgICAgLyoqIEBp
bnRlcm5hbCAqLworICAgIGNoYXIgYWN0dWFsTG9jYWxlW1VMT0NfRlVMTE5BTUVfQ0FQQUNJVFld
OworICAgIGNoYXIgdmFsaWRMb2NhbGVbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07CisKKyAgICAv
KioKKyAgICAgKiBUaGUgYXNzaWdubWVudCBvcGVyYXRvciBoYXMgbm8gcmVhbCBpbXBsZW1lbnRh
dGlvbi4KKyAgICAgKiBJdCdzIHByb3ZpZGVkIHRvIG1ha2UgdGhlIGNvbXBpbGVyIGhhcHB5LiBE
byBub3QgY2FsbC4KKyAgICAgKi8KKyAgICBCcmVha0l0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3Qg
QnJlYWtJdGVyYXRvciYpOworfTsKKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKwor
aW5saW5lIFVCb29sIEJyZWFrSXRlcmF0b3I6OmlzQnVmZmVyQ2xvbmUoKQoreworICAgIHJldHVy
biBGQUxTRTsKK30KKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLworCitVX05B
TUVTUEFDRV9FTkQKKworI2VuZGlmIC8qICNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04g
Ki8KKworI2VuZGlmIC8vIF9CUktJVEVSCisvL2VvZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9p
Y3UvdW5pY29kZS9jaGFyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9jaGFyaXRlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU4ZDY1MDkwYTQwYTYwODU5NTFjNzMzMDdmNzRhY2Y4M2JhMWJiYzgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmgKQEAgLTAs
MCArMSw3MjIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0y
MDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5k
IG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lm
bmRlZiBDSEFSSVRFUl9ICisjZGVmaW5lIENIQVJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUv
dXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29k
ZS91bmlzdHIuaCIKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBDaGFyYWN0ZXIg
SXRlcmF0b3IKKyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgorICogQWJzdHJhY3QgY2xh
c3MgdGhhdCBkZWZpbmVzIGFuIEFQSSBmb3IgZm9yd2FyZC1vbmx5IGl0ZXJhdGlvbgorICogb24g
dGV4dCBvYmplY3RzLgorICogVGhpcyBpcyBhIG1pbmltYWwgaW50ZXJmYWNlIGZvciBpdGVyYXRp
b24gd2l0aG91dCByYW5kb20gYWNjZXNzCisgKiBvciBiYWNrd2FyZHMgaXRlcmF0aW9uLiBJdCBp
cyBlc3BlY2lhbGx5IHVzZWZ1bCBmb3Igd3JhcHBpbmcKKyAqIHN0cmVhbXMgd2l0aCBjb252ZXJ0
ZXJzIGludG8gYW4gb2JqZWN0IGZvciBjb2xsYXRpb24gb3IKKyAqIG5vcm1hbGl6YXRpb24uCisg
KgorICogPHA+Q2hhcmFjdGVycyBjYW4gYmUgYWNjZXNzZWQgaW4gdHdvIHdheXM6IGFzIGNvZGUg
dW5pdHMgb3IgYXMKKyAqIGNvZGUgcG9pbnRzLgorICogVW5pY29kZSBjb2RlIHBvaW50cyBhcmUg
MjEtYml0IGludGVnZXJzIGFuZCBhcmUgdGhlIHNjYWxhciB2YWx1ZXMKKyAqIG9mIFVuaWNvZGUg
Y2hhcmFjdGVycy4gSUNVIHVzZXMgdGhlIHR5cGUgVUNoYXIzMiBmb3IgdGhlbS4KKyAqIFVuaWNv
ZGUgY29kZSB1bml0cyBhcmUgdGhlIHN0b3JhZ2UgdW5pdHMgb2YgYSBnaXZlbgorICogVW5pY29k
ZS9VQ1MgVHJhbnNmb3JtYXRpb24gRm9ybWF0IChhIGNoYXJhY3RlciBlbmNvZGluZyBzY2hlbWUp
LgorICogV2l0aCBVVEYtMTYsIGFsbCBjb2RlIHBvaW50cyBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0
aCBlaXRoZXIgb25lCisgKiBvciB0d28gY29kZSB1bml0cyAoInN1cnJvZ2F0ZXMiKS4KKyAqIFN0
cmluZyBzdG9yYWdlIGlzIHR5cGljYWxseSBiYXNlZCBvbiBjb2RlIHVuaXRzLCB3aGlsZSBwcm9w
ZXJ0aWVzCisgKiBvZiBjaGFyYWN0ZXJzIGFyZSB0eXBpY2FsbHkgZGV0ZXJtaW5lZCB1c2luZyBj
b2RlIHBvaW50IHZhbHVlcy4KKyAqIFNvbWUgcHJvY2Vzc2VzIG1heSBiZSBkZXNpZ25lZCB0byB3
b3JrIHdpdGggc2VxdWVuY2VzIG9mIGNvZGUgdW5pdHMsCisgKiBvciBpdCBtYXkgYmUga25vd24g
dGhhdCBhbGwgY2hhcmFjdGVycyB0aGF0IGFyZSBpbXBvcnRhbnQgdG8gYW4KKyAqIGFsZ29yaXRo
bSBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aCBzaW5nbGUgY29kZSB1bml0cy4KKyAqIE90aGVyIHBy
b2Nlc3NlcyB3aWxsIG5lZWQgdG8gdXNlIHRoZSBjb2RlIHBvaW50IGFjY2VzcyBmdW5jdGlvbnMu
PC9wPgorICoKKyAqIDxwPkZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciBwcm92aWRlcyBuZXh0UG9z
dEluYygpIHRvIGFjY2VzcworICogYSBjb2RlIHVuaXQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwg
cG9zaXRpb24gaW50byB0aGUgdGV4dCBvYmplY3QsCisgKiBzaW1pbGFyIHRvIGEgPGNvZGU+cmV0
dXJuIHRleHRbcG9zaXRpb24rK108L2NvZGU+Ljxicj4KKyAqIEl0IHByb3ZpZGVzIG5leHQzMlBv
c3RJbmMoKSB0byBhY2Nlc3MgYSBjb2RlIHBvaW50IGFuZCBhZHZhbmNlIGFuIGludGVybmFsCisg
KiBwb3NpdGlvbi48L3A+CisgKgorICogPHA+bmV4dDMyUG9zdEluYygpIGFzc3VtZXMgdGhhdCB0
aGUgY3VycmVudCBwb3NpdGlvbiBpcyB0aGF0IG9mCisgKiB0aGUgYmVnaW5uaW5nIG9mIGEgY29k
ZSBwb2ludCwgaS5lLiwgb2YgaXRzIGZpcnN0IGNvZGUgdW5pdC4KKyAqIEFmdGVyIG5leHQzMlBv
c3RJbmMoKSwgdGhpcyB3aWxsIGJlIHRydWUgYWdhaW4uCisgKiBJbiBnZW5lcmFsLCBhY2Nlc3Mg
dG8gY29kZSB1bml0cyBhbmQgY29kZSBwb2ludHMgaW4gdGhlIHNhbWUKKyAqIGl0ZXJhdGlvbiBs
b29wIHNob3VsZCBub3QgYmUgbWl4ZWQuIEluIFVURi0xNiwgaWYgdGhlIGN1cnJlbnQgcG9zaXRp
b24KKyAqIGlzIG9uIGEgc2Vjb25kIGNvZGUgdW5pdCAoTG93IFN1cnJvZ2F0ZSksIHRoZW4gb25s
eSB0aGF0IGNvZGUgdW5pdAorICogaXMgcmV0dXJuZWQgZXZlbiBieSBuZXh0MzJQb3N0SW5jKCku
PC9wPgorICoKKyAqIDxwPkZvciBpdGVyYXRpb24gd2l0aCBlaXRoZXIgZnVuY3Rpb24sIHRoZXJl
IGFyZSB0d28gd2F5cyB0bworICogY2hlY2sgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbi4g
V2hlbiB0aGVyZSBhcmUgbm8gbW9yZQorICogY2hhcmFjdGVycyBpbiB0aGUgdGV4dCBvYmplY3Q6
CisgKiA8dWw+CisgKiA8bGk+VGhlIGhhc05leHQoKSBmdW5jdGlvbiByZXR1cm5zIEZBTFNFLjwv
bGk+CisgKiA8bGk+bmV4dFBvc3RJbmMoKSBhbmQgbmV4dDMyUG9zdEluYygpIHJldHVybiBET05F
CisgKiAgICAgd2hlbiBvbmUgYXR0ZW1wdHMgdG8gcmVhZCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUg
dGV4dCBvYmplY3QuPC9saT4KKyAqIDwvdWw+CisgKgorICogRXhhbXBsZToKKyAqIFxjb2RlIAor
ICogdm9pZCBmdW5jdGlvbjEoRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAg
IFVDaGFyMzIgYzsKKyAqICAgICB3aGlsZShpdC5oYXNOZXh0KCkpIHsKKyAqICAgICAgICAgYz1p
dC5uZXh0MzJQb3N0SW5jKCk7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgfQorICogfQor
ICoKKyAqIHZvaWQgZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAq
ICAgICBVQ2hhciBjOworICogICAgIHdoaWxlKChjPWl0Lm5leHRQb3N0SW5jKCkpIT1Gb3J3YXJk
Q2hhcmFjdGVySXRlcmF0b3I6OkRPTkUpIHsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAg
fQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3A+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisg
Ki8KK2NsYXNzIFVfQ09NTU9OX0FQSSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMg
VU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgbW9z
dCBvZiBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IncyBmdW5jdGlvbnMKKyAgICAgKiB3aGVuIHRo
ZSBpdGVyYXRvciBoYXMgcmVhY2hlZCB0aGUgbGltaXRzIG9mIGl0cyBpdGVyYXRpb24uCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgZW51bSB7IERPTkUgPSAweGZmZmYgfTsK
KyAgICAKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yLiAgCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCB+Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yKCk7Cisg
ICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIHdoZW4gYm90aCBpdGVyYXRvcnMgcmVm
ZXIgdG8gdGhlIHNhbWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgY2hhcmFjdGVyLXN0
b3JhZ2Ugb2JqZWN0LiAgCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRydWUg
d2hlbiBib3RoIGl0ZXJhdG9ycyByZWZlciB0byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBp
biB0aGUgc2FtZSBjaGFyYWN0ZXItc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENo
YXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICog
UmV0dXJucyB0cnVlIHdoZW4gdGhlIGl0ZXJhdG9ycyByZWZlciB0byBkaWZmZXJlbnQKKyAgICAg
KiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0cywgb3IgdG8gZGlmZmVyZW50IGNoYXJhY3RlcnMgaW4gdGhl
CisgICAgICogc2FtZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LiAgCisgICAgICogQHBhcmFtIHRoYXQg
VGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgaW5lcXVhbGl0
eQorICAgICAqIEByZXR1cm4gdHJ1ZSB3aGVuIHRoZSBpdGVyYXRvcnMgcmVmZXIgdG8gZGlmZmVy
ZW50CisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdHMsIG9yIHRvIGRpZmZlcmVudCBjaGFyYWN0
ZXJzIGluIHRoZQorICAgICAqIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisgICAgCisgICAgLyoqCisgICAg
ICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGlzIGl0ZXJhdG9yLiAgCisgICAgICogQHJl
dHVybiB0aGUgaGFzaCBjb2RlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBoYXNoQ29kZSh2b2lkKSBjb25zdCA9IDA7CisgICAgCisgICAgLyoq
CisgICAgICogUmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGlzIEZvcndhcmRDaGFyYWN0ZXJJdGVy
YXRvciAoInBvb3IgbWFuJ3MKKyAgICAgKiBSVFRJIikuPFA+IERlc3BpdGUgdGhlIGZhY3QgdGhh
dCB0aGlzIGZ1bmN0aW9uIGlzIHB1YmxpYywKKyAgICAgKiBETyBOT1QgQ09OU0lERVIgSVQgUEFS
VCBPRiBDSEFSQUNURVJJVEVSQVRPUidTIEFQSSEgCisgICAgICogQHJldHVybiBhIFVDbGFzc0lE
IGZvciB0aGlzIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKHZvaWQp
IGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUg
dW5pdCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQKKyAg
ICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4g
IElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVy
bnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dFBv
c3RJbmModm9pZCkgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQg
Y29kZSBwb2ludCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBv
aW50CisgICAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5k
ZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJldHVy
biwgcmV0dXJucyBET05FLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSBwb2ludC4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAg
ICAgbmV4dDMyUG9zdEluYyh2b2lkKSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJu
cyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisg
ICAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiBy
YW5nZS4KKyAgICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBv
c3RJbmMoKSBpbiBmb3J3YXJkCisgICAgICogaXRlcmF0aW9uLgorICAgICAqIEByZXR1cm5zIEZB
TFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAg
KiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgICAg
ICAgIGhhc05leHQoKSA9IDA7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgLyoqIERlZmF1bHQgY29u
c3RydWN0b3IgdG8gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLiBAc3Rh
YmxlIElDVSAyLjAqLworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgIAorICAg
IC8qKiBDb3B5IGNvbnN0cnVjdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGlu
ZyBjbGFzcy4gQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Io
Y29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZvdGhlcik7CisgICAgCisgICAgLyoqCisg
ICAgICogQXNzaWdubWVudCBvcGVyYXRvciB0byBiZSBvdmVycmlkZGVuIGluIHRoZSBpbXBsZW1l
bnRpbmcgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yICZvcGVyYXRvcj0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yJikgeyByZXR1cm4gKnRoaXM7IH0KK307CisKKy8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhh
dCBkZWZpbmVzIGFuIEFQSSBmb3IgaXRlcmF0aW9uCisgKiBvbiB0ZXh0IG9iamVjdHMuCisgKiBU
aGlzIGlzIGFuIGludGVyZmFjZSBmb3IgZm9yd2FyZCBhbmQgYmFja3dhcmQgaXRlcmF0aW9uCisg
KiBhbmQgcmFuZG9tIGFjY2VzcyBpbnRvIGEgdGV4dCBvYmplY3QuCisgKgorICogPHA+VGhlIEFQ
SSBwcm92aWRlcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHRvIHRoZSBKYXZhIGFuZCBvbGRlciBJ
Q1UKKyAqIENoYXJhY3Rlckl0ZXJhdG9yIGNsYXNzZXMgYnV0IGV4dGVuZHMgdGhlbSBzaWduaWZp
Y2FudGx5OgorICogPG9sPgorICogPGxpPkNoYXJhY3Rlckl0ZXJhdG9yIGlzIG5vdyBhIHN1YmNs
YXNzIG9mIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci48L2xpPgorICogPGxpPldoaWxlIHRoZSBv
bGQgQVBJIGZ1bmN0aW9ucyBwcm92aWRlZCBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoCisgKiAgICAg
InByZS1pbmNyZW1lbnQiIHNlbWFudGljcywgdGhlIG5ldyBvbmUgYWxzbyBwcm92aWRlcyBmdW5j
dGlvbnMKKyAqICAgICB3aXRoICJwb3N0LWluY3JlbWVudCIgc2VtYW50aWNzLiBUaGV5IGFyZSBt
b3JlIGVmZmljaWVudCBhbmQgc2hvdWxkCisgKiAgICAgYmUgdGhlIHByZWZlcnJlZCBpdGVyYXRv
ciBmdW5jdGlvbnMgZm9yIG5ldyBpbXBsZW1lbnRhdGlvbnMuCisgKiAgICAgVGhlIGJhY2t3YXJk
IGl0ZXJhdGlvbiBhbHdheXMgaGFkICJwcmUtZGVjcmVtZW50IiBzZW1hbnRpY3MsIHdoaWNoCisg
KiAgICAgYXJlIGVmZmljaWVudC48L2xpPgorICogPGxpPkp1c3QgbGlrZSBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IsIGl0IHByb3ZpZGVzIGFjY2VzcyB0bworICogICAgIGJvdGggY29kZSB1bml0
cyBhbmQgY29kZSBwb2ludHMuIENvZGUgcG9pbnQgYWNjZXNzIHZlcnNpb25zIGFyZSBhdmFpbGFi
bGUKKyAqICAgICBmb3IgdGhlIG9sZCBhbmQgdGhlIG5ldyBpdGVyYXRpb24gc2VtYW50aWNzLjwv
bGk+CisgKiA8bGk+VGhlcmUgYXJlIG5ldyBmdW5jdGlvbnMgZm9yIHNldHRpbmcgYW5kIG1vdmlu
ZyB0aGUgY3VycmVudCBwb3NpdGlvbgorICogICAgIHdpdGhvdXQgcmV0dXJuaW5nIGEgY2hhcmFj
dGVyLCBmb3IgZWZmaWNpZW5jeS48L2xpPgorICogPC9vbD4KKyAqCisgKiBTZWUgRm9yd2FyZENo
YXJhY3Rlckl0ZXJhdG9yIGZvciBleGFtcGxlcyBmb3IgdXNpbmcgdGhlIG5ldyBmb3J3YXJkIGl0
ZXJhdGlvbgorICogZnVuY3Rpb25zLiBGb3IgYmFja3dhcmQgaXRlcmF0aW9uLCB0aGVyZSBpcyBh
bHNvIGEgaGFzUHJldmlvdXMoKSBmdW5jdGlvbgorICogdGhhdCBjYW4gYmUgdXNlZCBhbmFsb2dv
dXNseSB0byBoYXNOZXh0KCkuCisgKiBUaGUgb2xkIGZ1bmN0aW9ucyB3b3JrIGFzIGJlZm9yZSBh
bmQgYXJlIHNob3duIGJlbG93LjwvcD4KKyAqCisgKiA8cD5FeGFtcGxlcyBmb3Igc29tZSBvZiB0
aGUgbmV3IGZ1bmN0aW9uczo8L3A+CisgKgorICogRm9yd2FyZCBpdGVyYXRpb24gd2l0aCBoYXNO
ZXh0KCk6CisgKiBcY29kZQorICogdm9pZCBmb3J3YXJkMShDaGFyYWN0ZXJJdGVyYXRvciAmaXQp
IHsKKyAqICAgICBVQ2hhcjMyIGM7CisgKiAgICAgZm9yKGl0LnNldFRvU3RhcnQoKTsgaXQuaGFz
TmV4dCgpOykgeworICogICAgICAgICBjPWl0Lm5leHQzMlBvc3RJbmMoKTsKKyAqICAgICAgICAg
Ly8gdXNlIGMKKyAqICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIEZvcndhcmQgaXRlcmF0
aW9uIG1vcmUgc2ltaWxhciB0byBsb29wcyB3aXRoIHRoZSBvbGQgZm9yd2FyZCBpdGVyYXRpb24s
CisgKiBzaG93aW5nIGEgd2F5IHRvIGNvbnZlcnQgc2ltcGxlIGZvcigpIGxvb3BzOgorICogXGNv
ZGUKKyAqIHZvaWQgZm9yd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNo
YXIgYzsKKyAqICAgICBmb3IoYz1pdC5maXJzdFBvc3RJbmMoKTsgYyE9Q2hhcmFjdGVySXRlcmF0
b3I6OkRPTkU7IGM9aXQubmV4dFBvc3RJbmMoKSkgeworICogICAgICAgICAgLy8gdXNlIGMKKyAq
ICAgICAgfQorICogfQorICogXGVuZGNvZGUKKyAqIEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIHNl
dFRvRW5kKCkgYW5kIGhhc1ByZXZpb3VzKCk6CisgKiBcY29kZQorICogIHZvaWQgYmFja3dhcmQx
KENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgICBVQ2hhcjMyIGM7CisgKiAgICAgIGZv
cihpdC5zZXRUb0VuZCgpOyBpdC5oYXNQcmV2aW91cygpOykgeworICogICAgICAgICBjPWl0LnBy
ZXZpb3VzMzIoKTsKKyAqICAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBc
ZW5kY29kZQorICogQmFja3dhcmQgaXRlcmF0aW9uIHdpdGggYSBtb3JlIHRyYWRpdGlvbmFsIGZv
cigpIGxvb3A6CisgKiBcY29kZQorICogdm9pZCBiYWNrd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3Ig
Jml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAgICBmb3IoYz1pdC5sYXN0KCk7IGMhPUNoYXJh
Y3Rlckl0ZXJhdG9yOjpET05FOyBjPWl0LnByZXZpb3VzKCkpIHsKKyAqICAgICAgICAgLy8gdXNl
IGMKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKgorICogRXhhbXBsZSBmb3IgcmFu
ZG9tIGFjY2VzczoKKyAqIFxjb2RlCisgKiAgdm9pZCByYW5kb20oQ2hhcmFjdGVySXRlcmF0b3Ig
Jml0KSB7CisgKiAgICAgIC8vIHNldCB0byB0aGUgdGhpcmQgY29kZSBwb2ludCBmcm9tIHRoZSBi
ZWdpbm5pbmcKKyAqICAgICAgaXQubW92ZTMyKDMsIENoYXJhY3Rlckl0ZXJhdG9yOjprU3RhcnQp
OworICogICAgICAvLyBnZXQgYSBjb2RlIHBvaW50IGZyb20gaGVyZSB3aXRob3V0IG1vdmluZyB0
aGUgcG9zaXRpb24KKyAqICAgICAgVUNoYXIzMiBjPWl0LmN1cnJlbnQzMigpOworICogICAgICAv
LyBnZXQgdGhlIHBvc2l0aW9uCisgKiAgICAgIGludDMyX3QgcG9zPWl0LmdldEluZGV4KCk7Cisg
KiAgICAgIC8vIGdldCB0aGUgcHJldmlvdXMgY29kZSB1bml0CisgKiAgICAgIFVDaGFyIHU9aXQu
cHJldmlvdXMoKTsKKyAqICAgICAgLy8gbW92ZSBiYWNrIG9uZSBtb3JlIGNvZGUgdW5pdAorICog
ICAgICBpdC5tb3ZlKC0xLCBDaGFyYWN0ZXJJdGVyYXRvcjo6a0N1cnJlbnQpOworICogICAgICAv
LyBzZXQgdGhlIHBvc2l0aW9uIGJhY2sgdG8gd2hlcmUgaXQgd2FzCisgKiAgICAgIC8vIGFuZCBy
ZWFkIHRoZSBzYW1lIGNvZGUgcG9pbnQgYyBhbmQgbW92ZSBiZXlvbmQgaXQKKyAqICAgICAgaXQu
c2V0SW5kZXgocG9zKTsKKyAqICAgICAgaWYoYyE9aXQubmV4dDMyUG9zdEluYygpKSB7CisgKiAg
ICAgICAgICBleGl0KDEpOyAvLyBDaGFyYWN0ZXJJdGVyYXRvciBpbmNvbnNpc3RlbnQKKyAqICAg
ICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKgorICogPHA+RXhhbXBsZXMsIGVzcGVjaWFsbHkg
Zm9yIHRoZSBvbGQgQVBJOjwvcD4KKyAqCisgKiBGdW5jdGlvbiBwcm9jZXNzaW5nIGNoYXJhY3Rl
cnMsIGluIHRoaXMgZXhhbXBsZSBzaW1wbGUgb3V0cHV0CisgKiA8cHJlPgorICogXGNvZGUKKyAq
ICB2b2lkIHByb2Nlc3NDaGFyKCBVQ2hhciBjICkKKyAqICB7CisgKiAgICAgIGNvdXQgPDwgIiAi
IDw8IGM7CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgdGhlIHRl
eHQgZnJvbSBzdGFydCB0byBmaW5pc2gKKyAqIDxwcmU+IAorICogXGNvZGUKKyAqICB2b2lkIHRy
YXZlcnNlRm9yd2FyZChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlcikKKyAqICB7CisgKiAgICAgIGZv
cihVQ2hhciBjID0gaXRlci5maXJzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMg
PSBpdGVyLm5leHQoKSkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgIH0K
KyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSB0aGUgdGV4dCBiYWNr
d2FyZHMsIGZyb20gZW5kIHRvIHN0YXJ0CisgKiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIHRy
YXZlcnNlQmFja3dhcmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIpCisgKiAgeworICogICAgICBm
b3IoVUNoYXIgYyA9IGl0ZXIubGFzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMg
PSBpdGVyLnByZXZpb3VzKCkpIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMpOworICogICAg
ICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgYm90aCBmb3J3
YXJkIGFuZCBiYWNrd2FyZCBmcm9tIGEgZ2l2ZW4gcG9zaXRpb24gaW4gdGhlIHRleHQuIAorICog
Q2FsbHMgdG8gbm90Qm91bmRhcnkoKSBpbiB0aGlzIGV4YW1wbGUgcmVwcmVzZW50cyBzb21lIGFk
ZGl0aW9uYWwgc3RvcHBpbmcgY3JpdGVyaWEuCisgKiA8cHJlPgorICogXGNvZGUKKyAqIHZvaWQg
dHJhdmVyc2VPdXQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIsIGludDMyX3QgcG9zKQorICogewor
ICogICAgICBVQ2hhciBjOworICogICAgICBmb3IgKGMgPSBpdGVyLnNldEluZGV4KHBvcyk7Cisg
KiAgICAgIGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJiAoVW5pY29kZTo6aXNMZXR0ZXIo
YykgfHwgVW5pY29kZTo6aXNEaWdpdChjKSk7CisgKiAgICAgICAgICBjID0gaXRlci5uZXh0KCkp
IHt9CisgKiAgICAgIGludDMyX3QgZW5kID0gaXRlci5nZXRJbmRleCgpOworICogICAgICBmb3Ig
KGMgPSBpdGVyLnNldEluZGV4KHBvcyk7CisgKiAgICAgICAgICBjICE9IENoYXJhY3Rlckl0ZXJh
dG9yLkRPTkUgJiYgKFVuaWNvZGU6OmlzTGV0dGVyKGMpIHx8IFVuaWNvZGU6OmlzRGlnaXQoYykp
OworICogICAgICAgICAgYyA9IGl0ZXIucHJldmlvdXMoKSkge30KKyAqICAgICAgaW50MzJfdCBz
dGFydCA9IGl0ZXIuZ2V0SW5kZXgoKSArIDE7CisgKiAgCisgKiAgICAgIGNvdXQgPDwgInN0YXJ0
OiAiIDw8IHN0YXJ0IDw8ICIgZW5kOiAiIDw8IGVuZCA8PCBlbmRsOworICogICAgICBmb3IgKGMg
PSBpdGVyLnNldEluZGV4KHN0YXJ0KTsgaXRlci5nZXRJbmRleCgpIDwgZW5kOyBjID0gaXRlci5u
ZXh0KCkgKSB7CisgKiAgICAgICAgICBwcm9jZXNzQ2hhcihjKTsKKyAqICAgICB9CisgKiAgfQor
ICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogQ3JlYXRpbmcgYSBTdHJpbmdDaGFyYWN0ZXJJdGVy
YXRvciBhbmQgY2FsbGluZyB0aGUgdGVzdCBmdW5jdGlvbnMKKyAqIDxwcmU+CisgKiBcY29kZQor
ICogIHZvaWQgQ2hhcmFjdGVySXRlcmF0b3JfRXhhbXBsZSggdm9pZCApCisgKiAgIHsKKyAqICAg
ICAgIGNvdXQgPDwgZW5kbCA8PCAiPT09PT0gQ2hhcmFjdGVySXRlcmF0b3JfRXhhbXBsZTogPT09
PT0iIDw8IGVuZGw7CisgKiAgICAgICBVbmljb2RlU3RyaW5nIHRleHQoIkVpbiBrbGVpbmVyIFNh
dHouIik7CisgKiAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvcih0ZXh0KTsK
KyAqICAgICAgIGNvdXQgPDwgIi0tLS0tIHRyYXZlcnNlRm9yd2FyZDogLS0tLS0tLS0tLS0iIDw8
IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZUZvcndhcmQoIGl0ZXJhdG9yICk7CisgKiAgICAgICBj
b3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVyc2VCYWNrd2FyZDogLS0tLS0tLS0t
LSIgPDwgZW5kbDsKKyAqICAgICAgIHRyYXZlcnNlQmFja3dhcmQoIGl0ZXJhdG9yICk7CisgKiAg
ICAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVyc2VPdXQ6IC0tLS0tLS0t
LS0tLS0tLSIgPDwgZW5kbDsKKyAqICAgICAgIHRyYXZlcnNlT3V0KCBpdGVyYXRvciwgNyApOwor
ICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIiA8PCBlbmRsOworICogICB9
CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2Ns
YXNzIFVfQ09NTU9OX0FQSSBDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IgeworcHVibGljOgorICAgIC8qKgorICAgICAqIE9yaWdpbiBlbnVtZXJhdGlv
biBmb3IgdGhlIG1vdmUoKSBhbmQgbW92ZTMyKCkgZnVuY3Rpb25zLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIGVudW0gRU9yaWdpbiB7IGtTdGFydCwga0N1cnJlbnQsIGtF
bmQgfTsKKworICAgIC8qKgorICAgICAqIERlc3RydWN0b3IuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCB+Q2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8q
KgorICAgICAqIFJldHVybnMgYSBwb2ludGVyIHRvIGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yIG9m
IHRoZSBzYW1lCisgICAgICogY29uY3JldGUgY2xhc3MgYXMgdGhpcyBvbmUsIGFuZCByZWZlcnJp
bmcgdG8gdGhlIHNhbWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgdGV4dC1zdG9yYWdl
IG9iamVjdCBhcyB0aGlzIG9uZS4gIFRoZQorICAgICAqIGNhbGxlciBpcyByZXNwb25zaWJsZSBm
b3IgZGVsZXRpbmcgdGhlIG5ldyBjbG9uZS4gIAorICAgICAqIEByZXR1cm4gYSBwb2ludGVyIHRv
IGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3QgPSAwOwor
CisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0
IGNvZGUgdW5pdCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRo
YXQgY29kZSB1bml0LgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0
aW9uIHdpdGggbmV4dCgpLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBp
dHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0
cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1v
dmVzIHRoZSBwb3NpdGlvbgorICAgICAqIHRvIHRoZSBzZWNvbmQgY29kZSB1bml0LiBUaGlzIGlz
IGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAgICAqIGZvciBmb3J3YXJkIGl0ZXJh
dGlvbiB3aXRoIG5leHRQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1
bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0UG9zdEluYyh2b2lkKTsKKworICAg
IC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2Rl
IHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBj
b2RlIHVuaXQsCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24g
d2l0aCBuZXh0MzIoKS4KKyAgICAgKiBOb3RlIHRoYXQgYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMy
UG9zdEluYygpLCBiZWdpbm5pbmcgd2l0aCwKKyAgICAgKiBlLmcuLCBzZXRUb1N0YXJ0KCkgb3Ig
Zmlyc3RQb3N0SW5jKCksIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIEByZXR1cm4gdGhlIGZp
cnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmlyc3QzMih2b2lkKSA9
IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUg
Zmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMg
dGhhdCBjb2RlIHBvaW50LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAgICogdG8gdGhlIHNl
Y29uZCBjb2RlIHBvaW50LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQor
ICAgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICAg
KiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAg
IGZpcnN0MzJQb3N0SW5jKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0
b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvciBjb2RlIHBvaW50IGluIGl0cwor
ICAgICAqIGl0ZXJhdGlvbiByYW5nZS4gVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhIGZvcndh
cmQKKyAgICAgKiBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMo
KS4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJh
bmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3Qg
ICAgc2V0VG9TdGFydCgpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8g
cmVmZXIgdG8gdGhlIGxhc3QgY29kZSB1bml0IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5n
ZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0
byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpLgorICAgICAqIEByZXR1cm4gdGhl
IGxhc3QgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUNoYXIgICAgICAgICBsYXN0KHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisg
ICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSBwb2ludCBp
biBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0
LgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJl
dmlvdXMzMigpLgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSBwb2ludC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMy
KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBl
bmQgb2YgaXRzIGl0ZXJhdGlvbiByYW5nZSwganVzdCBiZWhpbmQKKyAgICAgKiB0aGUgbGFzdCBj
b2RlIHVuaXQgb3IgY29kZSBwb2ludC4gVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhIGJhY2t3
YXJkCisgICAgICogaXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkuCisg
ICAgICogQHJldHVybiB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICBzZXRU
b0VuZCgpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8g
dGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBv
YmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAgICogcmV0dXJucyB0aGF0IGNv
ZGUgdW5pdC4gIAorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgInBvc2l0aW9uIi10aCBjb2Rl
IHVuaXQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAcmV0dXJuIHRoZSAicG9z
aXRpb24iLXRoIGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIFVDaGFyICAgICAgICAgc2V0SW5kZXgoaW50MzJfdCBwb3NpdGlvbikgPSAwOwor
CisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lu
bmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgICAqIHRoYXQgY29udGFpbnMgdGhlICJwb3NpdGlv
biItdGggY29kZSB1bml0CisgICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0
ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAgICogcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisg
ICAgICogVGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgYWRqdXN0ZWQgdG8gdGhlIGJlZ2lubmluZyBv
ZiB0aGUgY29kZSBwb2ludAorICAgICAqIChpdHMgZmlyc3QgY29kZSB1bml0KS4KKyAgICAgKiBA
cGFyYW0gcG9zaXRpb24gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0IGluIHRoZSB0ZXh0LXN0
b3JhZ2Ugb2JqZWN0CisgICAgICogQHJldHVybiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHBvaW50
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAg
ICAgICBzZXRJbmRleDMyKGludDMyX3QgcG9zaXRpb24pID0gMDsKKworICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4g
CisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuIAorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBjdXJyZW50KHZvaWQp
IGNvbnN0ID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29kZSBw
b2ludCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4gIAorICAgICAqIEByZXR1cm4g
dGhlIGN1cnJlbnQgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgY3VycmVudDMyKHZvaWQpIGNvbnN0ID0gMDsKKyAg
ICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0
dXJucyB0aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1
bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNv
ZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVD
aGFyICAgICAgICAgbmV4dCh2b2lkKSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFk
dmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAg
ICAqICh0b3dhcmQgZW5kSW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElm
IHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5z
IERPTkUuCisgICAgICogTm90ZSB0aGF0IGl0ZXJhdGlvbiB3aXRoICJwcmUtaW5jcmVtZW50IiBz
ZW1hbnRpY3MgaXMgbGVzcworICAgICAqIGVmZmljaWVudCB0aGFuIGl0ZXJhdGlvbiB3aXRoICJw
b3N0LWluY3JlbWVudCIgc2VtYW50aWNzCisgICAgICogdGhhdCBpcyBwcm92aWRlZCBieSBuZXh0
MzJQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlIHBvaW50LgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0
MzIodm9pZCkgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUg
cHJldmlvdXMgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJk
IHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJl
CisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLiAgCisg
ICAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBwcmV2aW91cyh2b2lkKSA9
IDA7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSBwb2lu
dCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBzdGFydEluZGV4KCkpLCBh
bmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3Jl
IGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLiAKKyAgICAgKiBAcmV0dXJuIHRo
ZSBwcmV2aW91cyBjb2RlIHBvaW50LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgcHJldmlvdXMzMih2b2lkKSA9IDA7CisKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMg
b3IgY29kZSBwb2ludHMKKyAgICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBwcmV2aW91cygpIG9y
IHByZXZpb3VzMzIoKSBpbiBiYWNrd2FyZAorICAgICAqIGl0ZXJhdGlvbi4KKyAgICAgKiBAcmV0
dXJuIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMK
KyAgICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5n
ZSwgcmV0dXJuIFRSVUUgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc1ByZXZpb3VzKCkgPSAwOworCisgICAgLyoq
CisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0
LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBmaXJz
dCgpLiAgU2luY2UgaXQncworICAgICAqIHBvc3NpYmxlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvciB0
aGF0IGl0ZXJhdGVzIGFjcm9zcyBvbmx5CisgICAgICogcGFydCBvZiBhIHRleHQtc3RvcmFnZSBv
YmplY3QsIHRoaXMgbnVtYmVyIGlzbid0CisgICAgICogbmVjZXNzYXJpbHkgMC4gIAorICAgICAq
IEByZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFn
ZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGZpcnN0KCkuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAg
c3RhcnRJbmRleCh2b2lkKSBjb25zdDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJu
cyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAg
KiBvYmplY3Qgb2YgdGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVy
CisgICAgICogcmV0dXJuZWQgYnkgbGFzdCgpLiAgCisgICAgICogQHJldHVybiB0aGUgbnVtZXJp
YyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2Yg
dGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVyCisgICAgICogcmV0
dXJuZWQgYnkgbGFzdCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlu
bGluZSBpbnQzMl90ICAgICAgIGVuZEluZGV4KHZvaWQpIGNvbnN0OworICAgICAgICAKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRl
eHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHRoZSBpdGVyYXRvciBj
dXJyZW50bHkgcmVmZXJzIHRvCisgICAgICogKGkuZS4sIHRoZSBjaGFyYWN0ZXIgcmV0dXJuZWQg
YnkgY3VycmVudCgpKS4gIAorICAgICAqIEByZXR1cm4gdGhlIG51bWJlcmljIGluZGV4IGluIHRo
ZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IG9mIAorICAgICAqIHRoZSBjaGFyYWN0ZXIgdGhlIGl0ZXJh
dG9yIGN1cnJlbnRseSByZWZlcnMgdG8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBnZXRJbmRleCh2b2lkKSBjb25zdDsKKworICAgIC8q
KgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgZW50aXJlIHRleHQgaW4gdGhlIHVu
ZGVybHlpbmcKKyAgICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhl
IGxlbmd0aCBvZiB0aGUgZW50aXJlIHRleHQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICAg
ICAgZ2V0TGVuZ3RoKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVu
dCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgICAqIGl0
ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxm
LgorICAgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHVu
aXRzIGZvcndhcmQKKyAgICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUg
b3IgbmVnYXRpdmUgZGVsdGEuCisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxh
dGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBh
IG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3Jp
Z2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4g
dGhlIG5ldyBwb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgaW50MzJfdCAgICAgIG1vdmUoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pID0g
MDsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZl
IHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBvciBy
ZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAgICogVGhlIG1vdmVt
ZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgcG9pbnRzIGZvcndhcmQKKyAgICAg
KiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEu
CisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEg
cG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1l
YW5zIGJhY2t3YXJkLgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtr
U3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCAgICAg
IG1vdmUzMihpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbikgPSAwOworCisgICAgLyoqCisg
ICAgICogQ29waWVzIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBVbmljb2RlU3Ry
aW5nCisgICAgICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICAKKyAgICAgKiBAcGFyYW0gcmVz
dWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uICAKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBn
ZXRUZXh0KFVuaWNvZGVTdHJpbmcmICByZXN1bHQpID0gMDsKKworcHJvdGVjdGVkOgorICAgIC8q
KgorICAgICAqIEVtcHR5IGNvbnN0cnVjdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1
Y3RvciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGggZmllbGQgaW4gdGhpcyBiYXNlIGNsYXNzLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGlu
dDMyX3QgbGVuZ3RoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLCBqdXN0IHNldHRp
bmcgdGhlIGxlbmd0aCBhbmQgcG9zaXRpb24gZmllbGRzIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQz
Ml90IGxlbmd0aCwgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1
Y3RvciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGgsIHN0YXJ0LCBlbmQsIGFuZCBwb3NpdGlvbiBm
aWVsZHMgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90IHRleHRCZWdp
biwgaW50MzJfdCB0ZXh0RW5kLCBpbnQzMl90IHBvc2l0aW9uKTsKKyAgCisgICAgLyoqCisgICAg
ICogQ29weSBjb25zdHJ1Y3Rvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBDaGFy
YWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7
CisKKyAgICAvKioKKyAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgU2V0cyB0aGlzIENoYXJh
Y3Rlckl0ZXJhdG9yIHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsCisgICAgICogYXMgdGhlIG9u
ZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHBh
c3NlZCBpbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBzZXQgQ2hhcmFjdGVySXRlcmF0b3Iu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3Ig
Jm9wZXJhdG9yPShjb25zdCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7CisKKyAgICAvKioKKyAg
ICAgKiBCYXNlIGNsYXNzIHRleHQgbGVuZ3RoIGZpZWxkLgorICAgICAqIE5lY2Vzc2FyeSB0aGlz
IGZvciBjb3JyZWN0IGdldFRleHQoKSBhbmQgaGFzaENvZGUoKS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90IHRleHRMZW5ndGg7CisKKyAgICAvKioKKyAgICAg
KiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBwb3M7CisKKyAgICAvKioKKyAgICAg
KiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0aGUgc3RhcnQgb2YgdGhlIGl0ZXJhdGlvbiByYW5nZS4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBiZWdpbjsKKwor
ICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgZmllbGQgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJh
dGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90
ICBlbmQ7Cit9OworCitpbmxpbmUgVUJvb2wKK0ZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjo6b3Bl
cmF0b3IhPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0IHsKKyAg
ICByZXR1cm4gIW9wZXJhdG9yPT0odGhhdCk7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0
ZXJJdGVyYXRvcjo6c2V0VG9TdGFydCgpIHsKKyAgICByZXR1cm4gbW92ZSgwLCBrU3RhcnQpOwor
fQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvRW5kKCkgeworICAg
IHJldHVybiBtb3ZlKDAsIGtFbmQpOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRl
cmF0b3I6OnN0YXJ0SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBiZWdpbjsKK30KKwor
aW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjplbmRJbmRleCh2b2lkKSBjb25zdCB7
CisgICAgcmV0dXJuIGVuZDsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9y
OjpnZXRJbmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIHBvczsKK30KKworaW5saW5lIGlu
dDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpnZXRMZW5ndGgodm9pZCkgY29uc3QgeworICAgIHJl
dHVybiB0ZXh0TGVuZ3RoOworfQorCitVX05BTUVTUEFDRV9FTkQKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9sb2NpZC5oIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9sb2NpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZDVjYjU0NmViZTM5N2VmNDM2ZGYzNjUwM2ViNDM3MWMz
ODY2OTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmgK
QEAgLTAsMCArMSw4MTQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5
cmlnaHQgKEMpIDE5OTYtMjAxNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqIEZpbGUgbG9jaWQuaAorKgorKiBDcmVhdGVkIGJ5OiBIZWxl
bmEgU2hpaAorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBO
YW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAyLzExLzk3ICAgIGFsaXUgICAgICAgIENoYW5n
ZWQgZ0xvY1BhdGggdG8gZmdMb2NQYXRoIGFuZCBhZGRlZCBtZXRob2RzIHRvCisqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2V0IGFuZCBzZXQgaXQuCisqICAgMDQvMDIvOTcgICAgYWxpdSAg
ICAgICAgTWFkZSBvcGVyYXRvciE9IGlubGluZTsgZml4ZWQgcmV0dXJuIHZhbHVlIG9mIGdldE5h
bWUoKS4KKyogICAwNC8xNS85NyAgICBhbGl1ICAgICAgICBDbGVhbnVwIGZvciBBSVgvV2luMzIu
CisqICAgMDQvMjQvOTcgICAgYWxpdSAgICAgICAgTnVtZXJvdXMgY2hhbmdlcyBwZXIgY29kZSBy
ZXZpZXcuCisqICAgMDgvMTgvOTggICAgc3RlcGhlbiAgICAgQWRkZWQgdG9rZW5pemVTdHJpbmco
KSxjaGFuZ2VkIGdldERpc3BsYXlOYW1lKCkKKyogICAwOS8wOC85OCAgICBzdGVwaGVuICAgICBN
b3ZlZCBkZWZpbml0aW9uIG9mIGtFbXB0eVN0cmluZyBmb3IgTWFjIFBvcnQKKyogICAxMS8wOS85
OSAgICB3ZWl2ICAgICAgICBBZGRlZCBjb25zdCBjaGFyICogZ2V0TmFtZSgpIGNvbnN0OworKiAg
IDA0LzEyLzAwICAgIHNybCAgICAgICAgIHJlbW92aW5nIHVuaWNvZGVzdHJpbmcgYXBpJ3MgYW5k
IGNhY2hlZCBoYXNoIGNvZGUKKyogICAwOC8xMC8wMSAgICBncmhvdGVuICAgICBDaGFuZ2UgdGhl
IHN0YXRpYyBMb2NhbGVzIHRvIGFjY2Vzc29yIGZ1bmN0aW9ucworKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqLworCisjaWZuZGVmIExPQ0lEX0gKKyNkZWZpbmUgTE9DSURfSAorCisjaW5jbHVkZSAi
dW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRl
ICJ1bmljb2RlL3VuaXN0ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKKyNpbmNsdWRl
ICJ1bmljb2RlL3Vsb2MuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVudW0uaCIKKworLyoqCisg
KiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IExvY2FsZSBJRCBvYmplY3QuCisgKi8KKworVV9O
QU1FU1BBQ0VfQkVHSU4KKworLy8gRm9yd2FyZCBEZWNsYXJhdGlvbnMKK3ZvaWQgVV9DQUxMQ09O
ViBsb2NhbGVfYXZhaWxhYmxlX2luaXQoKTsgLyoqPCBAaW50ZXJuYWwgKi8KKworLyoqCisgKiBB
IDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IHJlcHJlc2VudHMgYSBzcGVjaWZpYyBnZW9ncmFw
aGljYWwsIHBvbGl0aWNhbCwKKyAqIG9yIGN1bHR1cmFsIHJlZ2lvbi4gQW4gb3BlcmF0aW9uIHRo
YXQgcmVxdWlyZXMgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHRvIHBlcmZvcm0KKyAqIGl0cyB0YXNr
IGlzIGNhbGxlZCA8ZW0+bG9jYWxlLXNlbnNpdGl2ZTwvZW0+IGFuZCB1c2VzIHRoZSA8Y29kZT5M
b2NhbGU8L2NvZGU+CisgKiB0byB0YWlsb3IgaW5mb3JtYXRpb24gZm9yIHRoZSB1c2VyLiBGb3Ig
ZXhhbXBsZSwgZGlzcGxheWluZyBhIG51bWJlcgorICogaXMgYSBsb2NhbGUtc2Vuc2l0aXZlIG9w
ZXJhdGlvbi0tdGhlIG51bWJlciBzaG91bGQgYmUgZm9ybWF0dGVkCisgKiBhY2NvcmRpbmcgdG8g
dGhlIGN1c3RvbXMvY29udmVudGlvbnMgb2YgdGhlIHVzZXIncyBuYXRpdmUgY291bnRyeSwKKyAq
IHJlZ2lvbiwgb3IgY3VsdHVyZS4KKyAqCisgKiBUaGUgTG9jYWxlIGNsYXNzIGlzIG5vdCBzdWl0
YWJsZSBmb3Igc3ViY2xhc3NpbmcuCisgKgorICogPFA+CisgKiBZb3UgY2FuIGNyZWF0ZSBhIDxj
b2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IHVzaW5nIHRoZSBjb25zdHJ1Y3RvciBpbgorICogdGhp
cyBjbGFzczoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4K
KyAqICAgICAgIExvY2FsZSggY29uc3QgICBjaGFyKiAgbGFuZ3VhZ2UsCisgKiAgICAgICAgICAg
ICAgIGNvbnN0ICAgY2hhciogIGNvdW50cnksCisgKiAgICAgICAgICAgICAgIGNvbnN0ICAgY2hh
ciogIHZhcmlhbnQpOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0
bWxvbmx5CisgKiBUaGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZh
bGlkIDxTVFJPTkc+SVNPCisgKiBMYW5ndWFnZSBDb2RlLjwvU1RST05HPiBUaGVzZSBjb2RlcyBh
cmUgdGhlIGxvd2VyLWNhc2UgdHdvLWxldHRlcgorICogY29kZXMgYXMgZGVmaW5lZCBieSBJU08t
NjM5LgorICogWW91IGNhbiBmaW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNlIGNvZGVzIGF0OgorICog
PEJSPjxhIGhyZWYgPSJodHRwOi8vd3d3LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLyI+Cisg
KiBodHRwOi8vd3d3LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLzwvYT4KKyAqCisgKiA8UD4K
KyAqIFRoZSBzZWNvbmQgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZhbGlkIDxT
VFJPTkc+SVNPIENvdW50cnkKKyAqIENvZGUuPC9TVFJPTkc+IFRoZXNlIGNvZGVzIGFyZSB0aGUg
dXBwZXItY2FzZSB0d28tbGV0dGVyIGNvZGVzCisgKiBhcyBkZWZpbmVkIGJ5IElTTy0zMTY2Lgor
ICogWW91IGNhbiBmaW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNlIGNvZGVzIGF0IGEgbnVtYmVyIG9m
IHNpdGVzLCBzdWNoIGFzOgorICogPEJSPjxhIGhyZWY9Imh0dHA6Ly93d3cuaXNvLm9yZy9pc28v
ZW4vcHJvZHMtc2VydmljZXMvaXNvMzE2Nm1hL2luZGV4Lmh0bWwiPgorICogaHR0cDovL3d3dy5p
c28ub3JnL2lzby9lbi9wcm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEvaW5kZXguaHRtbDwvYT4KKyAq
CisgKiA8UD4KKyAqIFRoZSB0aGlyZCBjb25zdHJ1Y3RvciByZXF1aXJlcyBhIHRoaXJkIGFyZ3Vt
ZW50LS10aGUgPFNUUk9ORz5WYXJpYW50LjwvU1RST05HPgorICogVGhlIFZhcmlhbnQgY29kZXMg
YXJlIHZlbmRvciBhbmQgYnJvd3Nlci1zcGVjaWZpYy4KKyAqIEZvciBleGFtcGxlLCB1c2UgUkVW
SVNFRCBmb3IgYSBsYW5nYXVnZSdzIHJldmlzZWQgc2NyaXB0IG9ydGhvZ3JhcGh5LCBhbmQgUE9T
SVggZm9yIFBPU0lYLgorICogV2hlcmUgdGhlcmUgYXJlIHR3byB2YXJpYW50cywgc2VwYXJhdGUg
dGhlbSB3aXRoIGFuIHVuZGVyc2NvcmUsIGFuZAorICogcHV0IHRoZSBtb3N0IGltcG9ydGFudCBv
bmUgZmlyc3QuIEZvcgorICogZXhhbXBsZSwgYSBUcmFkaXRpb25hbCBTcGFuaXNoIGNvbGxhdGlv
biBtaWdodCBiZSByZWZlcmVuY2VkLCB3aXRoCisgKiAiRVMiLCAiRVMiLCAiVHJhZGl0aW9uYWxf
UE9TSVgiLgorICoKKyAqIDxQPgorICogQmVjYXVzZSBhIDxjb2RlPkxvY2FsZTwvY29kZT4gb2Jq
ZWN0IGlzIGp1c3QgYW4gaWRlbnRpZmllciBmb3IgYSByZWdpb24sCisgKiBubyB2YWxpZGl0eSBj
aGVjayBpcyBwZXJmb3JtZWQgd2hlbiB5b3UgY29uc3RydWN0IGEgPGNvZGU+TG9jYWxlPC9jb2Rl
Pi4KKyAqIElmIHlvdSB3YW50IHRvIHNlZSB3aGV0aGVyIHBhcnRpY3VsYXIgcmVzb3VyY2VzIGFy
ZSBhdmFpbGFibGUgZm9yIHRoZQorICogPGNvZGU+TG9jYWxlPC9jb2RlPiB5b3UgY29uc3RydWN0
LCB5b3UgbXVzdCBxdWVyeSB0aG9zZSByZXNvdXJjZXMuIEZvcgorICogZXhhbXBsZSwgYXNrIHRo
ZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGZvciB0aGUgbG9jYWxlcyBpdCBzdXBwb3J0cwor
ICogdXNpbmcgaXRzIDxjb2RlPmdldEF2YWlsYWJsZUxvY2FsZXM8L2NvZGU+IG1ldGhvZC4KKyAq
IDxCUj48U1RST05HPk5vdGU6PC9TVFJPTkc+IFdoZW4geW91IGFzayBmb3IgYSByZXNvdXJjZSBm
b3IgYSBwYXJ0aWN1bGFyCisgKiBsb2NhbGUsIHlvdSBnZXQgYmFjayB0aGUgYmVzdCBhdmFpbGFi
bGUgbWF0Y2gsIG5vdCBuZWNlc3NhcmlseQorICogcHJlY2lzZWx5IHdoYXQgeW91IGFza2VkIGZv
ci4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIGxvb2sgYXQKKyAqIDxjb2RlPlJlc291cmNlQnVuZGxl
PC9jb2RlPi4KKyAqCisgKiA8UD4KKyAqIFRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGNsYXNzIHBy
b3ZpZGVzIGEgbnVtYmVyIG9mIGNvbnZlbmllbnQgY29uc3RhbnRzCisgKiB0aGF0IHlvdSBjYW4g
dXNlIHRvIGNyZWF0ZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdHMgZm9yIGNvbW1vbmx5IHVz
ZWQKKyAqIGxvY2FsZXMuIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHJlZmVycyB0byBhIDxj
b2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0CisgKiBmb3IgdGhlIFVuaXRlZCBTdGF0ZXM6CisgKiBc
aHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgICBMb2Nh
bGU6OmdldFVTKCkKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1s
b25seQorICoKKyAqIDxQPgorICogT25jZSB5b3UndmUgY3JlYXRlZCBhIDxjb2RlPkxvY2FsZTwv
Y29kZT4geW91IGNhbiBxdWVyeSBpdCBmb3IgaW5mb3JtYXRpb24gYWJvdXQKKyAqIGl0c2VsZi4g
VXNlIDxjb2RlPmdldENvdW50cnk8L2NvZGU+IHRvIGdldCB0aGUgSVNPIENvdW50cnkgQ29kZSBh
bmQKKyAqIDxjb2RlPmdldExhbmd1YWdlPC9jb2RlPiB0byBnZXQgdGhlIElTTyBMYW5ndWFnZSBD
b2RlLiBZb3UgY2FuCisgKiB1c2UgPGNvZGU+Z2V0RGlzcGxheUNvdW50cnk8L2NvZGU+IHRvIGdl
dCB0aGUKKyAqIG5hbWUgb2YgdGhlIGNvdW50cnkgc3VpdGFibGUgZm9yIGRpc3BsYXlpbmcgdG8g
dGhlIHVzZXIuIFNpbWlsYXJseSwKKyAqIHlvdSBjYW4gdXNlIDxjb2RlPmdldERpc3BsYXlMYW5n
dWFnZTwvY29kZT4gdG8gZ2V0IHRoZSBuYW1lIG9mCisgKiB0aGUgbGFuZ3VhZ2Ugc3VpdGFibGUg
Zm9yIGRpc3BsYXlpbmcgdG8gdGhlIHVzZXIuIEludGVyZXN0aW5nbHksCisgKiB0aGUgPGNvZGU+
Z2V0RGlzcGxheVhYWDwvY29kZT4gbWV0aG9kcyBhcmUgdGhlbXNlbHZlcyBsb2NhbGUtc2Vuc2l0
aXZlCisgKiBhbmQgaGF2ZSB0d28gdmVyc2lvbnM6IG9uZSB0aGF0IHVzZXMgdGhlIGRlZmF1bHQg
bG9jYWxlIGFuZCBvbmUKKyAqIHRoYXQgdGFrZXMgYSBsb2NhbGUgYXMgYW4gYXJndW1lbnQgYW5k
IGRpc3BsYXlzIHRoZSBuYW1lIG9yIGNvdW50cnkgaW4KKyAqIGEgbGFuZ3VhZ2UgYXBwcm9wcmlh
dGUgdG8gdGhhdCBsb2NhbGUuCisgKgorICogPFA+CisgKiBJQ1UgcHJvdmlkZXMgYSBudW1iZXIg
b2YgY2xhc3NlcyB0aGF0IHBlcmZvcm0gbG9jYWxlLXNlbnNpdGl2ZQorICogb3BlcmF0aW9ucy4g
Rm9yIGV4YW1wbGUsIHRoZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGNsYXNzIGZvcm1hdHMK
KyAqIG51bWJlcnMsIGN1cnJlbmN5LCBvciBwZXJjZW50YWdlcyBpbiBhIGxvY2FsZS1zZW5zaXRp
dmUgbWFubmVyLiBDbGFzc2VzCisgKiBzdWNoIGFzIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4g
aGF2ZSBhIG51bWJlciBvZiBjb252ZW5pZW5jZSBtZXRob2RzCisgKiBmb3IgY3JlYXRpbmcgYSBk
ZWZhdWx0IG9iamVjdCBvZiB0aGF0IHR5cGUuIEZvciBleGFtcGxlLCB0aGUKKyAqIDxjb2RlPk51
bWJlckZvcm1hdDwvY29kZT4gY2xhc3MgcHJvdmlkZXMgdGhlc2UgdGhyZWUgY29udmVuaWVuY2Ug
bWV0aG9kcworICogZm9yIGNyZWF0aW5nIGEgZGVmYXVsdCA8Y29kZT5OdW1iZXJGb3JtYXQ8L2Nv
ZGU+IG9iamVjdDoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHBy
ZT4KKyAqICAgICBVRXJyb3JDb2RlIHN1Y2Nlc3MgPSBVX1pFUk9fRVJST1I7CisgKiAgICAgTG9j
YWxlIG15TG9jYWxlOworICogICAgIE51bWJlckZvcm1hdCAqbmY7CisgKgorICogICAgIG5mID0g
TnVtYmVyRm9ybWF0OjpjcmVhdGVJbnN0YW5jZSggc3VjY2VzcyApOyAgICAgICAgICBkZWxldGUg
bmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUN1cnJlbmN5SW5zdGFuY2UoIHN1
Y2Nlc3MgKTsgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlUGVy
Y2VudEluc3RhbmNlKCBzdWNjZXNzICk7ICAgZGVsZXRlIG5mOworICogPC9wcmU+CisgKiBcaHRt
bG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBFYWNoIG9mIHRoZXNlIG1ldGhvZHMg
aGFzIHR3byB2YXJpYW50czsgb25lIHdpdGggYW4gZXhwbGljaXQgbG9jYWxlCisgKiBhbmQgb25l
IHdpdGhvdXQ7IHRoZSBsYXR0ZXIgdXNpbmcgdGhlIGRlZmF1bHQgbG9jYWxlLgorICogXGh0bWxv
bmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgIG5mID0gTnVtYmVy
Rm9ybWF0OjpjcmVhdGVJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgICAgICAgICAgZGVs
ZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVDdXJyZW5jeUluc3RhbmNl
KCBteUxvY2FsZSwgc3VjY2VzcyApOyAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9y
bWF0OjpjcmVhdGVQZXJjZW50SW5zdGFuY2UoIG15TG9jYWxlLCBzdWNjZXNzICk7ICAgZGVsZXRl
IG5mOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5Cisg
KiBBIDxjb2RlPkxvY2FsZTwvY29kZT4gaXMgdGhlIG1lY2hhbmlzbSBmb3IgaWRlbnRpZnlpbmcg
dGhlIGtpbmQgb2Ygb2JqZWN0CisgKiAoPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPikgdGhhdCB5
b3Ugd291bGQgbGlrZSB0byBnZXQuIFRoZSBsb2NhbGUgaXMKKyAqIDxTVFJPTkc+anVzdDwvU1RS
T05HPiBhIG1lY2hhbmlzbSBmb3IgaWRlbnRpZnlpbmcgb2JqZWN0cywKKyAqIDxTVFJPTkc+bm90
PC9TVFJPTkc+IGEgY29udGFpbmVyIGZvciB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgorICoKKyAq
IDxQPgorICogRWFjaCBjbGFzcyB0aGF0IHBlcmZvcm1zIGxvY2FsZS1zZW5zaXRpdmUgb3BlcmF0
aW9ucyBhbGxvd3MgeW91CisgKiB0byBnZXQgYWxsIHRoZSBhdmFpbGFibGUgb2JqZWN0cyBvZiB0
aGF0IHR5cGUuIFlvdSBjYW4gc2lmdAorICogdGhyb3VnaCB0aGVzZSBvYmplY3RzIGJ5IGxhbmd1
YWdlLCBjb3VudHJ5LCBvciB2YXJpYW50LAorICogYW5kIHVzZSB0aGUgZGlzcGxheSBuYW1lcyB0
byBwcmVzZW50IGEgbWVudSB0byB0aGUgdXNlci4KKyAqIEZvciBleGFtcGxlLCB5b3UgY2FuIGNy
ZWF0ZSBhIG1lbnUgb2YgYWxsIHRoZSBjb2xsYXRpb24gb2JqZWN0cworICogc3VpdGFibGUgZm9y
IGEgZ2l2ZW4gbGFuZ3VhZ2UuIFN1Y2ggY2xhc3NlcyBpbXBsZW1lbnQgdGhlc2UKKyAqIHRocmVl
IGNsYXNzIG1ldGhvZHM6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAq
IDxwcmU+CisgKiAgICAgICBzdGF0aWMgTG9jYWxlKiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMy
X3QmIG51bUxvY2FsZXMpCisgKiAgICAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxh
eU5hbWUoY29uc3QgTG9jYWxlJiAgb2JqZWN0TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYgIGRpc3BsYXlMb2NhbGUsCisg
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmlu
ZyYgZGlzcGxheU5hbWUpCisgKiAgICAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxh
eU5hbWUoY29uc3QgTG9jYWxlJiAgb2JqZWN0TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BsYXlOYW1lKQorICog
PC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKgorICogQHN0
YWJsZSBJQ1UgMi4wCisgKiBAc2VlIFJlc291cmNlQnVuZGxlCisgKi8KK2NsYXNzIFVfQ09NTU9O
X0FQSSBMb2NhbGUgOiBwdWJsaWMgVU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqIFVzZWZ1bCBj
b25zdGFudCBmb3IgdGhlIFJvb3QgbG9jYWxlLiBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICBzdGF0
aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Um9vdCh2b2lkKTsKKyAgICAvKiogVXNlZnVs
IGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0
aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RW5nbGlzaCh2b2lkKTsKKyAgICAvKiogVXNl
ZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBz
dGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RnJlbmNoKHZvaWQpOworICAgIC8qKiBV
c2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAg
IHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRHZXJtYW4odm9pZCk7CisgICAgLyoq
IFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisg
ICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEl0YWxpYW4odm9pZCk7CisgICAg
LyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEphcGFuZXNlKHZvaWQpOwor
ICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIu
MCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRLb3JlYW4odm9pZCk7
CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1Ug
Mi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENoaW5lc2Uodm9p
ZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJ
Q1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFNpbXBsaWZp
ZWRDaGluZXNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3Vh
Z2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JU
MiBnZXRUcmFkaXRpb25hbENoaW5lc2Uodm9pZCk7CisKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50
IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMg
Y29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RnJhbmNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwg
Y29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAg
IHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRHZXJtYW55KHZvaWQpOworICAgIC8q
KiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIu
MCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRJdGFseSh2b2lkKTsK
KyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxl
IElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SmFwYW4o
dm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4g
QHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdl
dEtvcmVhKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9y
ZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQ
T1JUMiBnZXRDaGluYSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNv
dW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxl
ICZVX0VYUE9SVDIgZ2V0UFJDKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRo
aXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBM
b2NhbGUgJlVfRVhQT1JUMiBnZXRUYWl3YW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFu
dCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFVLKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRVUyh2b2lkKTsKKyAgICAvKiogVXNlZnVs
IGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAg
ICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2FuYWRhKHZvaWQpOworICAgIC8q
KiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIu
MCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDYW5hZGFGcmVuY2go
dm9pZCk7CisKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIGRlZmF1bHQgbG9jYWxlIG9i
amVjdCwgYSBMb2NhbGUgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBJRC4KKyAgICAgKgorICAgICAq
IEBzZWUgZ2V0RGVmYXVsdAorICAgICAqIEBzZWUgdWxvY19nZXREZWZhdWx0CisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxlKCk7CisKKyAgICAvKioKKyAgICAgKiBD
b25zdHJ1Y3QgYSBsb2NhbGUgZnJvbSBsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudC4KKyAgICAg
KiBJZiBhbiBlcnJvciBvY2N1cnMsIHRoZW4gdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJl
ICJib2d1cyIKKyAgICAgKiAoaXNCb2d1cygpIHdpbGwgcmV0dXJuIFRSVUUpLgorICAgICAqCisg
ICAgICogQHBhcmFtIGxhbmd1YWdlIExvd2VyY2FzZSB0d28tbGV0dGVyIG9yIHRocmVlLWxldHRl
ciBJU08tNjM5IGNvZGUuCisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNhbiBpbnN0ZWFkIGJlIGFu
IElDVSBzdHlsZSBDIGxvY2FsZSAoZS5nLiAiZW5fVVMiKSwKKyAgICAgKiAgYnV0IHRoZSBvdGhl
ciBwYXJhbWV0ZXJzIG11c3Qgbm90IGJlIHVzZWQuCisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNh
biBiZSBOVUxMOyBpZiBzbywKKyAgICAgKiAgdGhlIGxvY2FsZSBpcyBpbml0aWFsaXplZCB0byBt
YXRjaCB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiAgKFRoaXMgaXMgdGhlIHNh
bWUgYXMgdXNpbmcgdGhlIGRlZmF1bHQgY29uc3RydWN0b3IuKQorICAgICAqICBQbGVhc2Ugbm90
ZTogVGhlIEphdmEgTG9jYWxlIGNsYXNzIGRvZXMgTk9UIGFjY2VwdCB0aGUgZm9ybQorICAgICAq
ICAnbmV3IExvY2FsZSgiZW5fVVMiKScgYnV0IG9ubHkgJ25ldyBMb2NhbGUoImVuIiwiVVMiKScK
KyAgICAgKgorICAgICAqIEBwYXJhbSBjb3VudHJ5ICBVcHBlcmNhc2UgdHdvLWxldHRlciBJU08t
MzE2NiBjb2RlLiAob3B0aW9uYWwpCisgICAgICogQHBhcmFtIHZhcmlhbnQgIFVwcGVyY2FzZSB2
ZW5kb3IgYW5kIGJyb3dzZXIgc3BlY2lmaWMgY29kZS4gU2VlIGNsYXNzCisgICAgICogICAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uLiAob3B0aW9uYWwpCisgICAgICogQHBhcmFtIGtleXdvcmRz
QW5kVmFsdWVzIEEgc3RyaW5nIGNvbnNpc3Rpbmcgb2Yga2V5d29yZC92YWx1ZXMgcGFpcnMsIHN1
Y2ggYXMKKyAgICAgKiAgICAgICAgICAgICAgICAgImNvbGxhdGlvbj1waG9uZWJvb2s7Y3VycmVu
Y3k9ZXVybyIKKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RGVmYXVsdAorICAgICAqIEBzZWUgdWxv
Y19nZXREZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxl
KCBjb25zdCAgIGNoYXIgKiBsYW5ndWFnZSwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIGNv
dW50cnkgID0gMCwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIHZhcmlhbnQgID0gMCwKKyAg
ICAgICAgICAgIGNvbnN0ICAgY2hhciAqIGtleXdvcmRzQW5kVmFsdWVzID0gMCk7CisKKyAgICAv
KioKKyAgICAgKiBJbml0aWFsaXplcyBhIExvY2FsZSBvYmplY3QgZnJvbSBhbm90aGVyIExvY2Fs
ZSBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIExvY2FsZSBvYmplY3Qg
YmVpbmcgY29waWVkIGluLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExv
Y2FsZShjb25zdCAgICBMb2NhbGUmIG90aGVyKTsKKworCisgICAgLyoqCisgICAgICogRGVzdHJ1
Y3RvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkxvY2Fs
ZSgpIDsKKworICAgIC8qKgorICAgICAqIFJlcGxhY2VzIHRoZSBlbnRpcmUgY29udGVudHMgb2Yg
KnRoaXMgd2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAqCisgICAgICogQHBhcmFtIG90
aGVyIFRoZSBMb2NhbGUgb2JqZWN0IGJlaW5nIGNvcGllZCBpbi4KKyAgICAgKiBAcmV0dXJuICAg
ICAgKnRoaXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUmIG9w
ZXJhdG9yPShjb25zdCBMb2NhbGUmIG90aGVyKTsKKworICAgIC8qKgorICAgICAqIENoZWNrcyBp
ZiB0d28gbG9jYWxlIGtleXMgYXJlIHRoZSBzYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG90
aGVyIFRoZSBsb2NhbGUga2V5IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAg
ICogQHJldHVybiAgICAgIFRydWUgaWYgdGhlIHR3byBsb2NhbGUga2V5cyBhcmUgdGhlIHNhbWUs
IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBV
Qm9vbCAgIG9wZXJhdG9yPT0oY29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHR3byBsb2NhbGUga2V5cyBhcmUgbm90IHRoZSBzYW1l
LgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBsb2NhbGUga2V5IG9iamVjdCB0byBi
ZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAgICogQHJldHVybiAgICAgIFRydWUgaWYgdGhlIHR3
byBsb2NhbGUga2V5cyBhcmUgbm90IHRoZSBzYW1lLCBmYWxzZQorICAgICAqICAgICAgICAgICAg
ICBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVUJvb2wg
ICBvcGVyYXRvciE9KGNvbnN0ICAgIExvY2FsZSYgICAgIG90aGVyKSBjb25zdDsKKworICAgIC8q
KgorICAgICAqIENsb25lIHRoaXMgb2JqZWN0LgorICAgICAqIENsb25lcyBjYW4gYmUgdXNlZCBj
b25jdXJyZW50bHkgaW4gbXVsdGlwbGUgdGhyZWFkcy4KKyAgICAgKiBJZiBhbiBlcnJvciBvY2N1
cnMsIHRoZW4gTlVMTCBpcyByZXR1cm5lZC4KKyAgICAgKiBUaGUgY2FsbGVyIG11c3QgZGVsZXRl
IHRoZSBjbG9uZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYSBjbG9uZSBvZiB0aGlzIG9iamVj
dAorICAgICAqCisgICAgICogQHNlZSBnZXREeW5hbWljQ2xhc3NJRAorICAgICAqIEBzdGFibGUg
SUNVIDIuOAorICAgICAqLworICAgIExvY2FsZSAqY2xvbmUoKSBjb25zdDsKKworI2lmbmRlZiBV
X0hJREVfU1lTVEVNX0FQSQorICAgIC8qKgorICAgICAqIENvbW1vbiBtZXRob2RzIG9mIGdldHRp
bmcgdGhlIGN1cnJlbnQgZGVmYXVsdCBMb2NhbGUuIFVzZWQgZm9yIHRoZQorICAgICAqIHByZXNl
bnRhdGlvbjogbWVudXMsIGRpYWxvZ3MsIGV0Yy4gR2VuZXJhbGx5IHNldCBvbmNlIHdoZW4geW91
ciBhcHBsZXQgb3IKKyAgICAgKiBhcHBsaWNhdGlvbiBpcyBpbml0aWFsaXplZCwgdGhlbiBuZXZl
ciByZXNldC4gKElmIHlvdSBkbyByZXNldCB0aGUKKyAgICAgKiBkZWZhdWx0IGxvY2FsZSwgeW91
IHByb2JhYmx5IHdhbnQgdG8gcmVsb2FkIHlvdXIgR1VJLCBzbyB0aGF0IHRoZSBjaGFuZ2UKKyAg
ICAgKiBpcyByZWZsZWN0ZWQgaW4geW91ciBpbnRlcmZhY2UuKQorICAgICAqCisgICAgICogTW9y
ZSBhZHZhbmNlZCBwcm9ncmFtcyB3aWxsIGFsbG93IHVzZXJzIHRvIHVzZSBkaWZmZXJlbnQgbG9j
YWxlcyBmb3IKKyAgICAgKiBkaWZmZXJlbnQgZmllbGRzLCBlLmcuIGluIGEgc3ByZWFkc2hlZXQu
CisgICAgICoKKyAgICAgKiBOb3RlIHRoYXQgdGhlIGluaXRpYWwgc2V0dGluZyB3aWxsIG1hdGNo
IHRoZSBob3N0IHN5c3RlbS4KKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSBMb2Nh
bGUgb2JqZWN0IGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgSUQKKyAgICAgKiBAc3lzdGVtCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSYgVV9F
WFBPUlQyIGdldERlZmF1bHQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWZh
dWx0LiBOb3JtYWxseSBzZXQgb25jZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgcHJvY2VzcywKKyAg
ICAgKiB0aGVuIG5ldmVyIHJlc2V0LgorICAgICAqIHNldERlZmF1bHQoKSBvbmx5IGNoYW5nZXMg
SUNVJ3MgZGVmYXVsdCBsb2NhbGUgSUQsIDxzdHJvbmc+bm90PC9zdHJvbmc+CisgICAgICogdGhl
IGRlZmF1bHQgbG9jYWxlIElEIG9mIHRoZSBydW50aW1lIGVudmlyb25tZW50LgorICAgICAqCisg
ICAgICogQHBhcmFtIG5ld0xvY2FsZSBMb2NhbGUgdG8gc2V0IHRvLiAgSWYgTlVMTCwgc2V0IHRv
IHRoZSB2YWx1ZSBvYnRhaW5lZAorICAgICAqICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgcnVu
dGltZSBlbnZpcm9uZW1lbnQuCisgICAgICogQHBhcmFtIHN1Y2Nlc3MgVGhlIGVycm9yIGNvZGUu
CisgICAgICogQHN5c3RlbQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0
YXRpYyB2b2lkIFVfRVhQT1JUMiBzZXREZWZhdWx0KGNvbnN0IExvY2FsZSYgbmV3TG9jYWxlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUmICAgc3VjY2Vz
cyk7CisjZW5kaWYgIC8qIFVfSElERV9TWVNURU1fQVBJICovCisKKyAgICAvKioKKyAgICAgKiBD
cmVhdGVzIGEgbG9jYWxlIHdoaWNoIGhhcyBoYWQgbWluaW1hbCBjYW5vbmljYWxpemF0aW9uCisg
ICAgICogYXMgcGVyIHVsb2NfZ2V0TmFtZSgpLgorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1l
IHRvIGNyZWF0ZSBmcm9tLiAgSWYgbmFtZSBpcyBudWxsLAorICAgICAqICB0aGUgZGVmYXVsdCBM
b2NhbGUgaXMgdXNlZC4KKyAgICAgKiBAcmV0dXJuIG5ldyBsb2NhbGUgb2JqZWN0CisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICogQHNlZSB1bG9jX2dldE5hbWUKKyAgICAgKi8KKyAgICBz
dGF0aWMgTG9jYWxlIFVfRVhQT1JUMiBjcmVhdGVGcm9tTmFtZShjb25zdCBjaGFyICpuYW1lKTsK
KworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBsb2NhbGUgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5n
IGFmdGVyIGNhbm9uaWNhbGl6aW5nCisgICAgICogdGhlIHN0cmluZyBieSBjYWxsaW5nIHVsb2Nf
Y2Fub25pY2FsaXplKCkuCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGxvY2FsZSBJRCB0byBjcmVh
dGUgZnJvbS4gIE11c3Qgbm90IGJlIE5VTEwuCisgICAgICogQHJldHVybiBhIG5ldyBsb2NhbGUg
b2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIG5hbWUKKyAgICAgKiBAc3RhYmxlIElD
VSAzLjAKKyAgICAgKiBAc2VlIHVsb2NfY2Fub25pY2FsaXplCisgICAgICovCisgICAgc3RhdGlj
IExvY2FsZSBVX0VYUE9SVDIgY3JlYXRlQ2Fub25pY2FsKGNvbnN0IGNoYXIqIG5hbWUpOworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTYzOSBsYW5ndWFnZSBjb2Rl
LgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldExhbmd1YWdl
KCApIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTE1
OTI0IGFiYnJldmlhdGlvbiBzY3JpcHQgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxp
YXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc2VlIHVzY3JpcHRfZ2V0U2hvcnROYW1lCisgICAgICog
QHNlZSB1c2NyaXB0X2dldENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAg
ICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRTY3JpcHQoICkgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tMzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICog
QHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0Q291bnRyeSggKSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIHZhcmlhbnQgY29kZS4KKyAg
ICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRWYXJpYW50KCApIGNv
bnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcHJvZ3JhbW1hdGljIG5hbWUgb2Yg
dGhlIGVudGlyZSBsb2NhbGUsIHdpdGggdGhlIGxhbmd1YWdlLAorICAgICAqIGNvdW50cnkgYW5k
IHZhcmlhbnQgc2VwYXJhdGVkIGJ5IHVuZGVyYmFycy4gSWYgYSBmaWVsZCBpcyBtaXNzaW5nLCB1
cAorICAgICAqIHRvIHR3byBsZWFkaW5nIHVuZGVyYmFycyB3aWxsIG9jY3VyLiBFeGFtcGxlOiAi
ZW4iLCAiZGVfREUiLCAiZW5fVVNfV0lOIiwKKyAgICAgKiAiZGVfX1BPU0lYIiwgImZyX19NQUMi
LCAiX19NQUMiLCAiX01UIiwgIl9GUl9FVVJPIgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50
ZXIgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGlu
ZSBjb25zdCBjaGFyICogZ2V0TmFtZSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJu
cyB0aGUgcHJvZ3JhbW1hdGljIG5hbWUgb2YgdGhlIGVudGlyZSBsb2NhbGUgYXMgZ2V0TmFtZSgp
IHdvdWxkIHJldHVybiwKKyAgICAgKiBidXQgd2l0aG91dCBrZXl3b3Jkcy4KKyAgICAgKiBAcmV0
dXJuICAgICAgQSBwb2ludGVyIHRvICJuYW1lIi4KKyAgICAgKiBAc2VlIGdldE5hbWUKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0QmFzZU5hbWUo
KSBjb25zdDsKKworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGlzdCBvZiBrZXl3b3JkcyBm
b3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRo
ZSBzdGF0dXMgY29kZQorICAgICAqIEByZXR1cm4gcG9pbnRlciB0byBTdHJpbmdFbnVtZXJhdGlv
biBjbGFzcywgb3IgTlVMTCBpZiB0aGVyZSBhcmUgbm8ga2V5d29yZHMuIAorICAgICAqIENsaWVu
dCBtdXN0IGRpc3Bvc2Ugb2YgaXQgYnkgY2FsbGluZyBkZWxldGUuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi44CisgICAgICovCisgICAgU3RyaW5nRW51bWVyYXRpb24gKiBjcmVhdGVLZXl3b3JkcyhV
RXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdmFs
dWUgZm9yIGEga2V5d29yZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1l
IG9mIHRoZSBrZXl3b3JkIGZvciB3aGljaCB3ZSB3YW50IHRoZSB2YWx1ZS4gQ2FzZSBpbnNlbnNp
dGl2ZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIFRoZSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUga2V5
d29yZCB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyQ2FwYWNpdHkgVGhlIGNhcGFjaXR5IG9m
IHJlY2VpdmluZyBidWZmZXIKKyAgICAgKiBAcGFyYW0gc3RhdHVzIFJldHVybnMgYW55IGVycm9y
IGluZm9ybWF0aW9uIHdoaWxlIHBlcmZvcm1pbmcgdGhpcyBvcGVyYXRpb24uCisgICAgICogQHJl
dHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBrZXl3b3JkIHZhbHVlCisgICAgICoKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBpbnQzMl90IGdldEtleXdvcmRWYWx1ZShjb25zdCBj
aGFyKiBrZXl3b3JkTmFtZSwgY2hhciAqYnVmZmVyLCBpbnQzMl90IGJ1ZmZlckNhcGFjaXR5LCBV
RXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogU2V0cyBvciByZW1v
dmVzIHRoZSB2YWx1ZSBmb3IgYSBrZXl3b3JkLgorICAgICAqCisgICAgICogRm9yIHJlbW92aW5n
IGFsbCBrZXl3b3JkcywgdXNlIGdldEJhc2VOYW1lKCksCisgICAgICogYW5kIGNvbnN0cnVjdCBh
IG5ldyBMb2NhbGUgaWYgaXQgZGlmZmVycyBmcm9tIGdldE5hbWUoKS4KKyAgICAgKgorICAgICAq
IEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3JkIHRvIGJlIHNldC4gQ2FzZSBp
bnNlbnNpdGl2ZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZFZhbHVlIHZhbHVlIG9mIHRoZSBrZXl3
b3JkIHRvIGJlIHNldC4gSWYgMC1sZW5ndGggb3IKKyAgICAgKiAgTlVMTCwgd2lsbCByZXN1bHQg
aW4gdGhlIGtleXdvcmQgYmVpbmcgcmVtb3ZlZC4gTm8gZXJyb3IgaXMgZ2l2ZW4gaWYKKyAgICAg
KiAgdGhhdCBrZXl3b3JkIGRvZXMgbm90IGV4aXN0LgorICAgICAqIEBwYXJhbSBzdGF0dXMgUmV0
dXJucyBhbnkgZXJyb3IgaW5mb3JtYXRpb24gd2hpbGUgcGVyZm9ybWluZyB0aGlzIG9wZXJhdGlv
bi4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdm9pZCBzZXRL
ZXl3b3JkVmFsdWUoY29uc3QgY2hhcioga2V5d29yZE5hbWUsIGNvbnN0IGNoYXIqIGtleXdvcmRW
YWx1ZSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIHJldHVybnMgdGhl
IGxvY2FsZSdzIHRocmVlLWxldHRlciBsYW5ndWFnZSBjb2RlLCBhcyBzcGVjaWZpZWQKKyAgICAg
KiBpbiBJU08gZHJhZnQgc3RhbmRhcmQgSVNPLTYzOS0yLgorICAgICAqIEByZXR1cm4gICAgICBB
biBhbGlhcyB0byB0aGUgY29kZSwgb3IgYW4gZW1wdHkgc3RyaW5nCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgY29uc3QgY2hhciAqIGdldElTTzNMYW5ndWFnZSgpIGNvbnN0
OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIGxvY2FsZSdzIHRo
cmVlLWxldHRlciBJU08tMzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFu
IGFsaWFzIHRvIHRoZSBjb2RlLCBvciBhbiBlbXB0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0SVNPM0NvdW50cnkoKSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFdpbmRvd3MgTENJRCB2YWx1ZSBjb3JyZXNw
b25kaW5nIHRvIHRoaXMgbG9jYWxlLgorICAgICAqIFRoaXMgdmFsdWUgaXMgc3RvcmVkIGluIHRo
ZSByZXNvdXJjZSBkYXRhIGZvciB0aGUgbG9jYWxlIGFzIGEgb25lLXRvLWZvdXItZGlnaXQKKyAg
ICAgKiBoZXhhZGVjaW1hbCBudW1iZXIuICBJZiB0aGUgcmVzb3VyY2UgaXMgbWlzc2luZywgaW4g
dGhlIHdyb25nIGZvcm1hdCwgb3IKKyAgICAgKiB0aGVyZSBpcyBubyBXaW5kb3dzIExDSUQgdmFs
dWUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGlzIGxvY2FsZSwgcmV0dXJucyAwLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICBnZXRMQ0lEKHZvaWQp
IGNvbnN0OworCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHdoZXRoZXIgdGhpcyBsb2NhbGUncyBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0
LgorICAgICAqIElmIHRoZXJlIGlzIG5vIHNjcmlwdCBzdWJ0YWcsIHRoZW4gdGhlIGxpa2VseSBz
Y3JpcHQgaXMgdXNlZCwgc2VlIHVsb2NfYWRkTGlrZWx5U3VidGFncygpLgorICAgICAqIElmIG5v
IGxpa2VseSBzY3JpcHQgaXMga25vd24sIHRoZW4gRkFMU0UgaXMgcmV0dXJuZWQuCisgICAgICoK
KyAgICAgKiBBIHNjcmlwdCBpcyByaWdodC10by1sZWZ0IGFjY29yZGluZyB0byB0aGUgQ0xEUiBz
Y3JpcHQgbWV0YWRhdGEKKyAgICAgKiB3aGljaCBjb3JyZXNwb25kcyB0byB3aGV0aGVyIHRoZSBz
Y3JpcHQncyBsZXR0ZXJzIGhhdmUgQmlkaV9DbGFzcz1SIG9yIEFMLgorICAgICAqCisgICAgICog
UmV0dXJucyBUUlVFIGZvciAiYXIiIGFuZCAiZW4tSGViciIsIEZBTFNFIGZvciAiemgiIGFuZCAi
ZmEtQ3lybCIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIGxvY2FsZSdzIHNj
cmlwdCBpcyB3cml0dGVuIHJpZ2h0LXRvLWxlZnQKKyAgICAgKiBAZHJhZnQgSUNVIDU0CisgICAg
ICovCisgICAgVUJvb2wgaXNSaWdodFRvTGVmdCgpIGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVf
RFJBRlRfQVBJICovCisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcExhbmciIHdpdGgg
dGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBm
b3IKKyAgICAgKiB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1w
bGUsIGlmIHRoZSBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzCisgICAgICogImZyIiBhbmQgdGhl
IGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdv
dWxkIHNldAorICAgICAqIGRpc3BMYW5nIHRvICJGcmVuY2giLgorICAgICAqIEBwYXJhbSBkaXNw
TGFuZyAgUmVjZWl2ZXMgdGhlIGxhbmd1YWdlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1
cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BMYW5nIi4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUxhbmd1YWdlKFVu
aWNvZGVTdHJpbmcmICAgZGlzcExhbmcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMg
aW4gImRpc3BMYW5nIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgaW4g
YSBmb3JtYXQgc3VpdGFibGUgZm9yCisgICAgICogdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUg
c3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxl
J3MKKyAgICAgKiBsYW5ndWFnZSBjb2RlIGlzICJlbiIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5n
dWFnZSBjb2RlIGlzICJmciIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcExh
bmcgdG8gIkFuZ2xhaXMiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMg
dGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlciB3b3Jk
cywKKyAgICAgKiAgICAgICAgICAgICAgICAgIGlmIHRoZSBsb2NhbGUncyBsYW5ndWFnZSBjb2Rl
IGlzICJlbiIsIHBhc3NpbmcgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IKKyAgICAgKiAgICAgICAg
ICAgICAgICAgIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICJBbmdsYWlzIiwgd2hpbGUg
cGFzc2luZyBMb2NhbGU6OmdldEdlcm1hbigpCisgICAgICogICAgICAgICAgICAgICAgICBmb3Ig
ZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIkVuZ2xpc2NoIi4KKyAgICAgKiBAcGFyYW0g
ZGlzcExhbmcgIFJlY2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBA
cmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwTGFuZyIuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlMYW5ndWFn
ZSggY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwTGFu
ZykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFNjcmlwdCIgd2l0aCB0
aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHNjcmlwdCBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAg
ICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUs
IGlmIHRoZSBsb2NhbGUncyBzY3JpcHQgY29kZQorICAgICAqIGlzICJMQVROIiBhbmQgdGhlIGRl
ZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxk
IHNldAorICAgICAqIGRpc3BTY3JpcHQgdG8gIkxhdGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcFNj
cmlwdCAgICBSZWNlaXZlcyB0aGUgc2NyaXB0cydzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0
dXJuICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFNjcmlwdCIuCisgICAgICogQHN0
YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlTY3Jp
cHQoICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BTY3JpcHQpIGNvbnN0OworCisgICAgLyoq
CisgICAgICogRmlsbHMgaW4gImRpc3BTY3JpcHQiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2Nh
bGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxh
eSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3IgZXhhbXBs
ZSwgaWYgdGhlIGxvY2FsZSdzCisgICAgICogc2NyaXB0IGNvZGUgaXMgIkxBVE4iIGFuZCBkaXNw
bGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNl
dAorICAgICAqIGRpc3BTY3JpcHQgdG8gIkxhdGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxv
Y2FsZSAgICAgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUg
bmFtZS4gIEluIG90aGVyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd29yZHMsIGlmIHRo
ZSBsb2NhbGUncyBzY3JpcHQgY29kZSBpcyAiTEFUTiIsIHBhc3NpbmcKKyAgICAgKiAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbGU6OmdldEZyZW5jaCgpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxk
IHJlc3VsdCBpbiAiIiwgd2hpbGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBwYXNzaW5n
IExvY2FsZTo6Z2V0R2VybWFuKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluCisg
ICAgICogICAgICAgICAgICAgICAgICAgICAgIiIuCisgICAgICogQHBhcmFtIGRpc3BTY3JpcHQg
ICAgUmVjZWl2ZXMgdGhlIHNjcmlwdHMncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAg
ICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BTY3JpcHQiLgorICAgICAqIEBzdGFibGUg
SUNVIDIuOAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5U2NyaXB0KCAg
Y29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BTY3JpcHQp
IGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BDb3VudHJ5IiB3aXRoIHRo
ZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAg
ICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUs
IGlmIHRoZSBsb2NhbGUncyBjb3VudHJ5IGNvZGUKKyAgICAgKiBpcyAiRlIiIGFuZCB0aGUgZGVm
YXVsdCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQg
c2V0CisgICAgICogZGlzcENvdW50cnkgdG8gIkZyYW5jZSIuCisgICAgICogQHBhcmFtIGRpc3BD
b3VudHJ5ICAgUmVjZWl2ZXMgdGhlIGNvdW50cnkncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJl
dHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNv
dW50cnkoICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BDb3VudHJ5KSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwQ291bnRyeSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlz
IGxvY2FsZSdzIGNvdW50cnkgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBk
aXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBl
eGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBjb3VudHJ5IGNvZGUgaXMgIlVTIiBhbmQg
ZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImZyIiwgdGhpcyBmdW5jdGlvbiB3b3Vs
ZCBzZXQKKyAgICAgKiBkaXNwQ291bnRyeSB0byAiJkVhY3V0ZTt0YXRzLVVuaXMiLgorICAgICAq
IEBwYXJhbSBkaXNwbGF5TG9jYWxlICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNl
ZCB0byBkaXNwbGF5IHRoZSBuYW1lLiAgSW4gb3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAg
ICAgICB3b3JkcywgaWYgdGhlIGxvY2FsZSdzIGNvdW50cnkgY29kZSBpcyAiVVMiLCBwYXNzaW5n
CisgICAgICogICAgICAgICAgICAgICAgICAgICAgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IgZGlz
cGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIiZFYWN1dGU7dGF0cy1VbmlzIiwgd2hpbGUKKyAg
ICAgKiAgICAgICAgICAgICAgICAgICAgICBwYXNzaW5nIExvY2FsZTo6Z2V0R2VybWFuKCkgZm9y
IGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluCisgICAgICogICAgICAgICAgICAgICAgICAg
ICAgIlZlcmVpbmlndGUgU3RhYXRlbiIuCisgICAgICogQHBhcmFtIGRpc3BDb3VudHJ5ICAgUmVj
ZWl2ZXMgdGhlIGNvdW50cnkncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAg
ICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNvdW50cnkoICBjb25z
dCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BDb3VudHJ5KSBj
b25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwVmFyIiB3aXRoIHRoZSBuYW1l
IG9mIHRoaXMgbG9jYWxlJ3MgdmFyaWFudCBjb2RlIGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAg
ICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFt
IGRpc3BWYXIgICBSZWNlaXZlcyB0aGUgdmFyaWFudCdzIG5hbWUuCisgICAgICogQHJldHVybiAg
ICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFZhciIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlWYXJpYW50KCAgICAgIFVu
aWNvZGVTdHJpbmcmIGRpc3BWYXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4g
ImRpc3BWYXIiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyB2YXJpYW50IGNvZGUgaW4g
YSBmb3JtYXQKKyAgICAgKiBzdWl0YWJsZSBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUg
c3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2Fs
ZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLgor
ICAgICAqIEBwYXJhbSBkaXNwVmFyICAgUmVjZWl2ZXMgdGhlIHZhcmlhbnQncyBkaXNwbGF5IG5h
bWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFZhciIuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERp
c3BsYXlWYXJpYW50KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJp
bmcmICBkaXNwVmFyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3
aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2Vy
IGRpc3BsYXkKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBUaGlzIGZ1bmN0aW9uIHVz
ZXMgZ2V0RGlzcGxheUxhbmd1YWdlKCksIGdldERpc3BsYXlDb3VudHJ5KCksCisgICAgICogYW5k
IGdldERpc3BsYXlWYXJpYW50KCkgdG8gZG8gaXRzIHdvcmssIGFuZCBvdXRwdXRzIHRoZSBkaXNw
bGF5IG5hbWUgaW4gdGhlIGZvcm1hdAorICAgICAqICJsYW5ndWFnZSAoY291bnRyeVssdmFyaWFu
dF0pIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgZGVmYXVsdCBsb2NhbGUgaXMgZW5fVVMsIHRoZW4K
KyAgICAgKiBmcl9GUidzIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAiRnJlbmNoIChGcmFuY2UpIiwg
YW5kIGVzX01YX1RyYWRpdGlvbmFsJ3MgZGlzcGxheSBuYW1lCisgICAgICogd291bGQgYmUgIlNw
YW5pc2ggKE1leGljbyxUcmFkaXRpb25hbCkiLgorICAgICAqIEBwYXJhbSBuYW1lICBSZWNlaXZl
cyB0aGUgbG9jYWxlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICBBIHJlZmVy
ZW5jZSB0byAibmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5p
Y29kZVN0cmluZyYgIGdldERpc3BsYXlOYW1lKCAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBuYW1l
KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRoZSBuYW1l
IG9mIHRoaXMgbG9jYWxlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkKKyAg
ICAgKiBpbiB0aGUgbG9jYWxlIHNwZWNmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIFRoaXMgZnVu
Y3Rpb24gdXNlcyBnZXREaXNwbGF5TGFuZ3VhZ2UoKSwKKyAgICAgKiBnZXREaXNwbGF5Q291bnRy
eSgpLCBhbmQgZ2V0RGlzcGxheVZhcmlhbnQoKSB0byBkbyBpdHMgd29yaywgYW5kIG91dHB1dHMg
dGhlIGRpc3BsYXkKKyAgICAgKiBuYW1lIGluIHRoZSBmb3JtYXQgImxhbmd1YWdlIChjb3VudHJ5
Wyx2YXJpYW50XSkiLiAgRm9yIGV4YW1wbGUsIGlmIGRpc3BsYXlMb2NhbGUgaXMKKyAgICAgKiBm
cl9GUiwgdGhlbiBlbl9VUydzIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAiQW5nbGFpcyAoJkVhY3V0
ZTt0YXRzLVVuaXMpIiwgYW5kIG5vX05PX05ZJ3MKKyAgICAgKiBkaXNwbGF5IG5hbWUgd291bGQg
YmUgIm5vcnYmZWFjdXRlO2dpZW4gKE5vcnYmZWdyYXZlO2dlLE5ZKSIuCisgICAgICogQHBhcmFt
IGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxh
eSB0aGUgbmFtZS4KKyAgICAgKiBAcGFyYW0gbmFtZSAgICAgIFJlY2VpdmVzIHRoZSBsb2NhbGUn
cyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAi
bmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmlu
ZyYgIGdldERpc3BsYXlOYW1lKCBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3Ry
aW5nJiAgbmFtZSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNv
ZGUgZm9yIHRoZSBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
aW50MzJfdCAgICAgICAgIGhhc2hDb2RlKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICog
U2V0cyB0aGUgbG9jYWxlIHRvIGJvZ3VzCisgICAgICogQSBib2d1cyBsb2NhbGUgcmVwcmVzZW50
cyBhIG5vbi1leGlzdGluZyBsb2NhbGUgYXNzb2NpYXRlZAorICAgICAqIHdpdGggc2VydmljZXMg
dGhhdCBjYW4gYmUgaW5zdGFudGlhdGVkIGZyb20gbm9uLWxvY2FsZSBkYXRhCisgICAgICogaW4g
YWRkaXRpb24gdG8gbG9jYWxlIChmb3IgZXhhbXBsZSwgY29sbGF0aW9uIGNhbiBiZQorICAgICAq
IGluc3RhbnRpYXRlZCBmcm9tIGEgbG9jYWxlIGFuZCBmcm9tIGEgcnVsZSBzZXQpLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHZvaWQgc2V0VG9Cb2d1cygpOworCisgICAg
LyoqCisgICAgICogR2V0cyB0aGUgYm9ndXMgc3RhdGUuIExvY2FsZSBvYmplY3QgY2FuIGJlIGJv
Z3VzIGlmIGl0IGRvZXNuJ3QgZXhpc3QKKyAgICAgKiBAcmV0dXJuIEZBTFNFIGlmIGl0IGlzIGEg
cmVhbCBsb2NhbGUsIFRSVUUgaWYgaXQgaXMgYSBib2d1cyBsb2NhbGUKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjEKKyAgICAgKi8KKyAgICBVQm9vbCBpc0JvZ3VzKHZvaWQpIGNvbnN0OworCisgICAg
LyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIGluc3RhbGxlZCBsb2NhbGVzLgorICAg
ICAqIEBwYXJhbSBjb3VudCBSZWNlaXZlcyB0aGUgbnVtYmVyIG9mIGxvY2FsZXMgaW4gdGhlIGxp
c3QuCisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBMb2NhbGUg
b2JqZWN0cy4gIFRoaXMgYXJyYXkgaXMgdGhlIGxpc3QKKyAgICAgKiAgICAgICAgICAgICAgb2Yg
YWxsIGxvY2FsZXMgd2l0aCBpbnN0YWxsZWQgcmVzb3VyY2UgZmlsZXMuICBUaGUgY2FsbGVkIGRv
ZXMgTk9UCisgICAgICogICAgICAgICAgICAgIGdldCBvd25lcnNoaXAgb2YgdGhpcyBsaXN0LCBh
bmQgbXVzdCBOT1QgZGVsZXRlIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHN0YXRpYyBjb25zdCBMb2NhbGUqIFVfRVhQT1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKGlu
dDMyX3QmIGNvdW50KTsKKworICAgIC8qKgorICAgICAqIEdldHMgYSBsaXN0IG9mIGFsbCBhdmFp
bGFibGUgMi1sZXR0ZXIgY291bnRyeSBjb2RlcyBkZWZpbmVkIGluIElTTyAzMTY2LiAgVGhpcyBp
cyBhCisgICAgICogcG9pbnRlciB0byBhbiBhcnJheSBvZiBwb2ludGVycyB0byBhcnJheXMgb2Yg
Y2hhci4gIEFsbCBvZiB0aGVzZSBwb2ludGVycyBhcmUKKyAgICAgKiBvd25lZCBieSBJQ1UtLSBk
byBub3QgZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0aGVtLiAgVGhlIGFy
cmF5IGlzCisgICAgICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBwb2ludGVyLgorICAgICAqIEBy
ZXR1cm4gYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgY291bnRyeSBjb2RlcworICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBP
UlQyIGdldElTT0NvdW50cmllcygpOworCisgICAgLyoqCisgICAgICogR2V0cyBhIGxpc3Qgb2Yg
YWxsIGF2YWlsYWJsZSBsYW5ndWFnZSBjb2RlcyBkZWZpbmVkIGluIElTTyA2MzkuICBUaGlzIGlz
IGEgcG9pbnRlcgorICAgICAqIHRvIGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBvZiBj
aGFyLiAgQWxsIG9mIHRoZXNlIHBvaW50ZXJzIGFyZSBvd25lZAorICAgICAqIGJ5IElDVS0tIGRv
IG5vdCBkZWxldGUgdGhlbSwgYW5kIGRvIG5vdCB3cml0ZSB0aHJvdWdoIHRoZW0uICBUaGUgYXJy
YXkgaXMKKyAgICAgKiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCisgICAgICogQHJl
dHVybiBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBsYW5ndWFnZSBjb2RlcworICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBP
UlQyIGdldElTT0xhbmd1YWdlcygpOworCisgICAgLyoqCisgICAgICogSUNVICJwb29yIG1hbidz
IFJUVEkiLCByZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoaXMgY2xhc3MuCisgICAgICoKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQy
IGdldFN0YXRpY0NsYXNzSUQoKTsKKworICAgIC8qKgorICAgICAqIElDVSAicG9vciBtYW4ncyBS
VFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGUgYWN0dWFsIGNsYXNzLgorICAgICAqCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXRE
eW5hbWljQ2xhc3NJRCgpIGNvbnN0OworCitwcm90ZWN0ZWQ6IC8qIG9ubHkgcHJvdGVjdGVkIGZv
ciB0ZXN0aW5nIHB1cnBvc2VzLiBETyBOT1QgVVNFLiAqLworI2lmbmRlZiBVX0hJREVfSU5URVJO
QUxfQVBJCisgICAgLyoqCisgICAgICogU2V0IHRoaXMgZnJvbSBhIHNpbmdsZSBQT1NJWCBzdHls
ZSBsb2NhbGUgc3RyaW5nLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHZvaWQgc2V0
RnJvbVBPU0lYSUQoY29uc3QgY2hhciAqcG9zaXhJRCk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRF
Uk5BTF9BUEkgKi8KKworcHJpdmF0ZToKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHRoZSBs
b2NhbGUgb2JqZWN0IHdpdGggYSBuZXcgbmFtZS4KKyAgICAgKiBXYXMgZGVwcmVjYXRlZCAtIHVz
ZWQgaW4gaW1wbGVtZW50YXRpb24gLSBtb3ZlZCBpbnRlcm5hbAorICAgICAqCisgICAgICogQHBh
cmFtIGNMb2NhbGVJRCBUaGUgbmV3IGxvY2FsZSBuYW1lLgorICAgICAqIEBwYXJhbSBjYW5vbmlj
YWxpemUgd2hldGhlciB0byBjYWxsIHVsb2NfY2Fub25pY2FsaXplIG9uIGNMb2NhbGVJRAorICAg
ICAqLworICAgIExvY2FsZSYgaW5pdChjb25zdCBjaGFyKiBjTG9jYWxlSUQsIFVCb29sIGNhbm9u
aWNhbGl6ZSk7CisKKyAgICAvKgorICAgICAqIEludGVybmFsIGNvbnN0cnVjdG9yIHRvIGFsbG93
IGNvbnN0cnVjdGlvbiBvZiBhIGxvY2FsZSBvYmplY3Qgd2l0aAorICAgICAqICAgTk8gc2lkZSBl
ZmZlY3RzLiAgIChEZWZhdWx0IGNvbnN0cnVjdG9yIHRyaWVzIHRvIGdldAorICAgICAqICAgdGhl
IGRlZmF1bHQgbG9jYWxlLikKKyAgICAgKi8KKyAgICBlbnVtIEVMb2NhbGVUeXBlIHsKKyAgICAg
ICAgZUJPR1VTCisgICAgfTsKKyAgICBMb2NhbGUoRUxvY2FsZVR5cGUpOworCisgICAgLyoqCisg
ICAgICogSW5pdGlhbGl6ZSB0aGUgbG9jYWxlIGNhY2hlIGZvciBjb21tb25seSB1c2VkIGxvY2Fs
ZXMKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9jYWxlICpnZXRMb2NhbGVDYWNoZSh2b2lkKTsKKwor
ICAgIGNoYXIgbGFuZ3VhZ2VbVUxPQ19MQU5HX0NBUEFDSVRZXTsKKyAgICBjaGFyIHNjcmlwdFtV
TE9DX1NDUklQVF9DQVBBQ0lUWV07CisgICAgY2hhciBjb3VudHJ5W1VMT0NfQ09VTlRSWV9DQVBB
Q0lUWV07CisgICAgaW50MzJfdCB2YXJpYW50QmVnaW47CisgICAgY2hhciogZnVsbE5hbWU7Cisg
ICAgY2hhciBmdWxsTmFtZUJ1ZmZlcltVTE9DX0ZVTExOQU1FX0NBUEFDSVRZXTsKKyAgICAvLyBu
YW1lIHdpdGhvdXQga2V5d29yZHMKKyAgICBjaGFyKiBiYXNlTmFtZTsKKyAgICB2b2lkIGluaXRC
YXNlTmFtZShVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgVUJvb2wgZklzQm9ndXM7CisKKyAg
ICBzdGF0aWMgY29uc3QgTG9jYWxlICZnZXRMb2NhbGUoaW50IGxvY2lkKTsKKworICAgIC8qKgor
ICAgICAqIEEgZnJpZW5kIHRvIGFsbG93IHRoZSBkZWZhdWx0IGxvY2FsZSB0byBiZSBzZXQgYnkg
ZWl0aGVyIHRoZSBDIG9yIEMrKyBBUEkuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAg
ZnJpZW5kIExvY2FsZSAqbG9jYWxlX3NldF9kZWZhdWx0X2ludGVybmFsKGNvbnN0IGNoYXIgKiwg
VUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAq
LworICAgIGZyaWVuZCB2b2lkIFVfQ0FMTENPTlYgbG9jYWxlX2F2YWlsYWJsZV9pbml0KCk7Cit9
OworCitpbmxpbmUgVUJvb2wKK0xvY2FsZTo6b3BlcmF0b3IhPShjb25zdCAgICBMb2NhbGUmICAg
ICBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0ob3RoZXIpOworfQorCitp
bmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldENvdW50cnkoKSBjb25zdAoreworICAgIHJl
dHVybiBjb3VudHJ5OworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldExhbmd1
YWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbGFuZ3VhZ2U7Cit9CisKK2lubGluZSBjb25zdCBj
aGFyICoKK0xvY2FsZTo6Z2V0U2NyaXB0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2NyaXB0Owor
fQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldFZhcmlhbnQoKSBjb25zdAorewor
ICAgIHJldHVybiAmYmFzZU5hbWVbdmFyaWFudEJlZ2luXTsKK30KKworaW5saW5lIGNvbnN0IGNo
YXIgKgorTG9jYWxlOjpnZXROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnVsbE5hbWU7Cit9
CisKK2lubGluZSBVQm9vbAorTG9jYWxlOjppc0JvZ3VzKHZvaWQpIGNvbnN0IHsKKyAgICByZXR1
cm4gZklzQm9ndXM7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9y
YmJpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDQ3NTk4YTUwZTZmYTNiYWIyYWQ0OWUwMjJhYWYzOTZjYWMzMjll
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oCkBAIC0w
LDAgKzEsNzgyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAx
OTk5LTIwMTQgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiAgICoK
KyogICBhbmQgb3RoZXJzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDEwLzIyLzk5ICAg
IGFsYW4gICAgICAgIENyZWF0aW9uLgorKiAgIDExLzExLzk5ICAgIHJnaWxsYW0gICAgIENvbXBs
ZXRlIHBvcnQgZnJvbSBKYXZhLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBSQkJJX0gK
KyNkZWZpbmUgUkJCSV9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisvKioKKyAq
IFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTogUnVsZSBCYXNlZCBCcmVhayBJdGVyYXRvcgorICov
CisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworI2luY2x1ZGUgInVuaWNvZGUv
YnJraXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3BhcnNlZXJyLmgiCisjaW5jbHVkZSAidW5pY29kZS9zY2hyaXRlci5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdWNocml0ZXIuaCIKKworCitzdHJ1Y3QgVVRyaWU7CisKK1VfTkFNRVNQQUNFX0JFR0lO
CisKKy8qKiBAaW50ZXJuYWwgKi8KK3N0cnVjdCBSQkJJRGF0YUhlYWRlcjsKK2NsYXNzICBSdWxl
QmFzZWRCcmVha0l0ZXJhdG9yVGFibGVzOworY2xhc3MgIEJyZWFrSXRlcmF0b3I7CitjbGFzcyAg
UkJCSURhdGFXcmFwcGVyOworY2xhc3MgIFVTdGFjazsKK2NsYXNzICBMYW5ndWFnZUJyZWFrRW5n
aW5lOworY2xhc3MgIFVuaGFuZGxlZEVuZ2luZTsKK3N0cnVjdCBSQkJJU3RhdGVUYWJsZTsKKwor
CisKKworLyoqCisgKgorICogQSBzdWJjbGFzcyBvZiBCcmVha0l0ZXJhdG9yIHdob3NlIGJlaGF2
aW9yIGlzIHNwZWNpZmllZCB1c2luZyBhIGxpc3Qgb2YgcnVsZXMuCisgKiA8cD5JbnN0YW5jZXMg
b2YgdGhpcyBjbGFzcyBhcmUgbW9zdCBjb21tb25seSBjcmVhdGVkIGJ5IHRoZSBmYWN0b3J5IG1l
dGhvZHMgb2YKKyAqICBCcmVha0l0ZXJhdG9yOjpjcmVhdGVXb3JkSW5zdGFuY2UoKSwgQnJlYWtJ
dGVyYXRvcjo6Y3JlYXRlTGluZUluc3RhbmNlKCksIGV0Yy4sCisgKiAgYW5kIHRoZW4gdXNlZCB2
aWEgdGhlIGFic3RyYWN0IEFQSSBpbiBjbGFzcyBCcmVha0l0ZXJhdG9yPC9wPgorICoKKyAqIDxw
PlNlZSB0aGUgSUNVIFVzZXIgR3VpZGUgZm9yIGluZm9ybWF0aW9uIG9uIEJyZWFrIEl0ZXJhdG9y
IFJ1bGVzLjwvcD4KKyAqCisgKiA8cD5UaGlzIGNsYXNzIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBz
dWJjbGFzc2VkLiAgKENsYXNzIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IKKyAqICAgIGlz
IGEgc3ViY2xhc3MsIGJ1dCB0aGF0IHJlbGF0aW9uc2hpcCBpcyBlZmZlY3RpdmVseSBpbnRlcm5h
bCB0byB0aGUgSUNVCisgKiAgICBpbXBsZW1lbnRhdGlvbi4gIFRoZSBzdWJjbGFzc2luZyBpbnRl
cmZhY2UgdG8gUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3IgaXMKKyAqICAgIG5vdCBwYXJ0IG9mIHRo
ZSBJQ1UgQVBJLCBhbmQgbWF5IG5vdCByZW1haW4gc3RhYmxlLjwvcD4KKyAqCisgKi8KK2NsYXNz
IFVfQ09NTU9OX0FQSSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIC8qVV9GSU5BTCovIDogcHVibGlj
IEJyZWFrSXRlcmF0b3IgeworCitwcm90ZWN0ZWQ6CisgICAgLyoqCisgICAgICogVGhlIFVUZXh0
IHRocm91Z2ggd2hpY2ggdGhpcyBCcmVha0l0ZXJhdG9yIGFjY2Vzc2VzIHRoZSB0ZXh0CisgICAg
ICogQGludGVybmFsCisgICAgICovCisgICAgVVRleHQgICpmVGV4dDsKKworICAgIC8qKgorICAg
ICAqICAgQSBjaGFyYWN0ZXIgaXRlcmF0b3IgdGhhdCByZWZlcnMgdG8gdGhlIHNhbWUgdGV4dCBh
cyB0aGUgVVRleHQsIGFib3ZlLgorICAgICAqICAgT25seSBpbmNsdWRlZCBmb3IgY29tcGF0aWJp
bGl0eSB3aXRoIG9sZCBBUEksIHdoaWNoIHdhcyBiYXNlZCBvbiBDaGFyYWN0ZXJJdGVyYXRvcnMu
CisgICAgICogICBWYWx1ZSBtYXkgYmUgYWRvcHRlZCBmcm9tIG91dHNpZGUsIG9yIG9uZSBvZiBm
U0NoYXJJdGVyIG9yIGZEQ2hhckl0ZXIsIGJlbG93LgorICAgICAqLworICAgIENoYXJhY3Rlckl0
ZXJhdG9yICAqZkNoYXJJdGVyOworCisgICAgLyoqCisgICAgICogICBXaGVuIHRoZSBpbnB1dCB0
ZXh0IGlzIHByb3ZpZGVkIGJ5IGEgVW5pY29kZVN0cmluZywgdGhpcyB3aWxsIHBvaW50IHRvCisg
ICAgICogICAgYSBjaGFyYWN0ZXJJdGVyYXRvciB0aGF0IHdyYXBzIHRoYXQgZGF0YS4gIE5lZWRl
ZCBvbmx5IGZvciB0aGUKKyAgICAgKiAgICBpbXBsZW1lbnRhdGlvbiBvZiBnZXRUZXh0KCksIGEg
YmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaXNzdWUuCisgICAgICovCisgICAgU3RyaW5nQ2hhcmFj
dGVySXRlcmF0b3IgKmZTQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiAgV2hlbiB0aGUgaW5w
dXQgdGV4dCBpcyBwcm92aWRlZCBieSBhIFVUZXh0LCB0aGlzCisgICAgICogICAgZHVtbXkgQ2hh
cmFjdGVySXRlcmF0b3Igb3ZlciBhbiBlbXB0eSBzdHJpbmcgd2lsbAorICAgICAqICAgIGJlIHJl
dHVybmVkIGZyb20gZ2V0VGV4dCgpCisgICAgICovCisgICAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRv
ciAqZkRDaGFySXRlcjsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlIGRhdGEgZm9yIHRoaXMg
QnJlYWtJdGVyYXRvciBpbnN0YW5jZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJC
QklEYXRhV3JhcHBlciAgICAqZkRhdGE7CisKKyAgICAvKiogSW5kZXggb2YgdGhlIFJ1bGUge3Rh
Z30gdmFsdWVzIGZvciB0aGUgbW9zdCByZWNlbnQgbWF0Y2guCisgICAgICogIEBpbnRlcm5hbAor
ICAgICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleDsKKwor
ICAgIC8qKgorICAgICAqIFJ1bGUgdGFnIHZhbHVlIHZhbGlkIGZsYWcuCisgICAgICogU29tZSBp
dGVyYXRvciBvcGVyYXRpb25zIGRvbid0IGludHJpbnNpY2FsbHkgc2V0IHRoZSBjb3JyZWN0IHRh
ZyB2YWx1ZS4KKyAgICAgKiBUaGlzIGZsYWcgbGV0cyB1cyBsYXppbHkgY29tcHV0ZSB0aGUgdmFs
dWUgaWYgd2UgYXJlIGV2ZXIgYXNrZWQgZm9yIGl0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAq
LworICAgIFVCb29sICAgICAgICAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkOworCisgICAg
LyoqCisgICAgICogQ291bnRlciBmb3IgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGVuY291bnRl
cmVkIHdpdGggdGhlICJkaWN0aW9uYXJ5IgorICAgICAqICAgZmxhZyBzZXQuCisgICAgICogQGlu
dGVybmFsCisgICAgICovCisgICAgdWludDMyX3QgICAgICAgICAgICBmRGljdGlvbmFyeUNoYXJD
b3VudDsKKworICAgIC8qKgorICAgICAqIFdoZW4gYSByYW5nZSBvZiBjaGFyYWN0ZXJzIGlzIGRp
dmlkZWQgdXAgdXNpbmcgdGhlIGRpY3Rpb25hcnksIHRoZSBicmVhaworICAgICAqIHBvc2l0aW9u
cyB0aGF0IGFyZSBkaXNjb3ZlcmVkIGFyZSBzdG9yZWQgaGVyZSwgcHJldmVudGluZyB1cyBmcm9t
IGhhdmluZworICAgICAqIHRvIHVzZSBlaXRoZXIgdGhlIGRpY3Rpb25hcnkgb3IgdGhlIHN0YXRl
IHRhYmxlIGFnYWluIHVudGlsIHRoZSBpdGVyYXRvcgorICAgICAqIGxlYXZlcyB0aGlzIHJhbmdl
IG9mIHRleHQuIEhhcyB0aGUgbW9zdCBpbXBhY3QgZm9yIGxpbmUgYnJlYWtpbmcuCisgICAgICog
QGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCogICAgICAgICAgICBmQ2FjaGVkQnJlYWtQ
b3NpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGZD
YWNoZWRCcmVha1Bvc2l0aW9ucworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMy
X3QgICAgICAgICAgICAgZk51bUNhY2hlZEJyZWFrUG9zaXRpb25zOworCisgICAgLyoqCisgICAg
ICogaWYgZkNhY2hlZEJyZWFrUG9zaXRpb25zIGlzIG5vdCBudWxsLCB0aGlzIGluZGljYXRlcyB3
aGljaCBpdGVtIGluIHRoZQorICAgICAqIGNhY2hlIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3Np
dGlvbiByZWZlcnMgdG8KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90ICAg
ICAgICAgICAgIGZQb3NpdGlvbkluQ2FjaGU7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAg
KiBJZiBwcmVzZW50LCBVU3RhY2sgb2YgTGFuZ3VhZ2VCcmVha0VuZ2luZSBvYmplY3RzIHRoYXQg
bWlnaHQgaGFuZGxlCisgICAgICogZGljdGlvbmFyeSBjaGFyYWN0ZXJzLiBTZWFyY2hlZCBmcm9t
IHRvcCB0byBib3R0b20gdG8gZmluZCBhbiBvYmplY3QgdG8KKyAgICAgKiBoYW5kbGUgYSBnaXZl
biBjaGFyYWN0ZXIuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVVN0YWNrICAgICAg
ICAgICAgICAqZkxhbmd1YWdlQnJlYWtFbmdpbmVzOworICAgIAorICAgIC8qKgorICAgICAqCisg
ICAgICogSWYgcHJlc2VudCwgdGhlIHNwZWNpYWwgTGFuZ3VhZ2VCcmVha0VuZ2luZSB1c2VkIGZv
ciBoYW5kbGluZworICAgICAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW4gdGhlIGRpY3Rpb25hcnkg
c2V0LCBidXQgbm90IGhhbmRsZWQgYnkgYW55CisgICAgICogTGFuZ3VnYWdlQnJlYWtFbmdpbmUu
CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVW5oYW5kbGVkRW5naW5lICAgICAqZlVu
aGFuZGxlZEJyZWFrRW5naW5lOworICAgIAorICAgIC8qKgorICAgICAqCisgICAgICogVGhlIHR5
cGUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLCBvciAtMSBpZiBpdCBoYXMgbm90IGJlZW4gc2V0Lgor
ICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZkJyZWFr
VHlwZTsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gY29u
c3RydWN0b3JzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjaWZuZGVmIFVfSElERV9JTlRFUk5B
TF9BUEkKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCB0byBiZSB1c2VkIGluIHRoZSBjb25zdHJ1
Y3RvcgorICAgICAqIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoUkJCSURhdGFIZWFkZXIqLCBFRG9u
dEFkb3B0LCBVRXJyb3JDb2RlICYpOworICAgICAqIHdoaWNoIGRvZXMgbm90IGFkb3B0IHRoZSBt
ZW1vcnkgaW5kaWNhdGVkIGJ5IHRoZSBSQkJJRGF0YUhlYWRlcioKKyAgICAgKiBwYXJhbWV0ZXIu
CisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBlbnVtIEVEb250QWRvcHQg
eworICAgICAgICBrRG9udEFkb3B0CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVj
dG9yIGZyb20gYSBmbGF0dGVuZWQgc2V0IG9mIFJCQkkgZGF0YSBpbiBtYWxsb2NlZCBtZW1vcnku
CisgICAgICogICAgICAgICAgICAgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3JzIGJ1aWx0IGZyb20g
YSBjdXN0b20gc2V0IG9mIHJ1bGVzCisgICAgICogICAgICAgICAgICAgYXJlIGNyZWF0ZWQgdmlh
IHRoaXMgY29uc3RydWN0b3I7IHRoZSBydWxlcyBhcmUgY29tcGlsZWQKKyAgICAgKiAgICAgICAg
ICAgICBpbnRvIG1lbW9yeSwgdGhlbiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgY29uc3RydWN0ZWQg
aGVyZS4KKyAgICAgKgorICAgICAqICAgICAgICAgICAgIFRoZSBicmVhayBpdGVyYXRvciBhZG9w
dHMgdGhlIG1lbW9yeSwgYW5kIHdpbGwKKyAgICAgKiAgICAgICAgICAgICBmcmVlIGl0IHdoZW4g
ZG9uZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yKFJCQklEYXRhSGVhZGVyKiBkYXRhLCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoq
CisgICAgICogQ29uc3RydWN0b3IgZnJvbSBhIGZsYXR0ZW5lZCBzZXQgb2YgUkJCSSBkYXRhIGlu
IG1lbW9yeSB3aGljaCBuZWVkIG5vdAorICAgICAqICAgICAgICAgICAgIGJlIG1hbGxvY2VkIChl
LmcuIGl0IG1heSBiZSBhIG1lbW9yeS1tYXBwZWQgZmlsZSwgZXRjLikuCisgICAgICoKKyAgICAg
KiAgICAgICAgICAgICBUaGlzIHZlcnNpb24gZG9lcyBub3QgYWRvcHQgdGhlIG1lbW9yeSwgYW5k
IGRvZXMgbm90CisgICAgICogICAgICAgICAgICAgZnJlZSBpdCB3aGVuIGRvbmUuCisgICAgICog
QGludGVybmFsCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCBSQkJJ
RGF0YUhlYWRlciogZGF0YSwgZW51bSBFRG9udEFkb3B0IGRvbnRBZG9wdCwgVUVycm9yQ29kZSAm
c3RhdHVzKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisKKyAgICBmcmll
bmQgY2xhc3MgUkJCSVJ1bGVCdWlsZGVyOworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBmcmll
bmQgY2xhc3MgQnJlYWtJdGVyYXRvcjsKKworCisKK3B1YmxpYzoKKworICAgIC8qKiBEZWZhdWx0
IGNvbnN0cnVjdG9yLiAgQ3JlYXRlcyBhbiBlbXB0eSBzaGVsbCBvZiBhbiBpdGVyYXRvciwgd2l0
aCBubworICAgICAqICBydWxlcyBvciB0ZXh0IHRvIGl0ZXJhdGUgb3Zlci4gICBPYmplY3QgY2Fu
IHN1YnNlcXVlbnRseSBiZSBhc3NpZ25lZCB0by4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4yCisg
ICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICog
Q29weSBjb25zdHJ1Y3Rvci4gIFdpbGwgcHJvZHVjZSBhIGJyZWFrIGl0ZXJhdG9yIHdpdGggdGhl
IHNhbWUgYmVoYXZpb3IsCisgICAgICogYW5kIHdoaWNoIGl0ZXJhdGVzIG92ZXIgdGhlIHNhbWUg
dGV4dCwgYXMgdGhlIG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVC
YXNlZEJyZWFrSXRlcmF0b3IgcGFzc2VkIHRvIGJlIGNvcGllZAorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoY29uc3QgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvciYgdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBSdWxl
QmFzZWRCcmVha0l0ZXJhdG9yIGZyb20gYSBzZXQgb2YgcnVsZXMgc3VwcGxpZWQgYXMgYSBzdHJp
bmcuCisgICAgICogQHBhcmFtIHJ1bGVzIFRoZSBicmVhayBydWxlcyB0byBiZSB1c2VkLgorICAg
ICAqIEBwYXJhbSBwYXJzZUVycm9yICBJbiB0aGUgZXZlbnQgb2YgYSBzeW50YXggZXJyb3IgaW4g
dGhlIHJ1bGVzLCBwcm92aWRlcyB0aGUgbG9jYXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAg
ICAgd2l0aGluIHRoZSBydWxlcyBvZiB0aGUgcHJvYmxlbS4KKyAgICAgKiBAcGFyYW0gc3RhdHVz
IEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4yCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciggY29uc3QgVW5pY29k
ZVN0cmluZyAgICAmcnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQYXJzZUVy
cm9yICAgICAgICAgICAmcGFyc2VFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VUVycm9yQ29kZSAgICAgICAgICAgICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ29udHJ1
Y3QgYSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGZyb20gYSBzZXQgb2YgcHJlY29tcGlsZWQgYmlu
YXJ5IHJ1bGVzLgorICAgICAqIEJpbmFyeSBydWxlcyBhcmUgb2J0YWluZWQgZnJvbSBSdWxlc0Jh
c2VkQnJlYWtJdGVyYXRvcjo6Z2V0QmluYXJ5UnVsZXMoKS4KKyAgICAgKiBDb25zdHJ1Y3Rpb24g
b2YgYSBicmVhayBpdGVyYXRvciBpbiB0aGlzIHdheSBpcyBzdWJzdGFudGlhbGx5IGZhc3RlciB0
aGFuCisgICAgICogY29uc3R1Y3Rpb24gZnJvbSBzb3VyY2UgcnVsZXMuCisgICAgICoKKyAgICAg
KiBPd25lcnNoaXAgb2YgdGhlIHN0b3JhZ2UgY29udGFpbmluZyB0aGUgY29tcGlsZWQgcnVsZXMg
cmVtYWlucyB3aXRoIHRoZQorICAgICAqIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uLiAgVGhlIGNv
bXBpbGVkIHJ1bGVzIG11c3Qgbm90IGJlICBtb2RpZmllZCBvciAKKyAgICAgKiBkZWxldGVkIGR1
cmluZyB0aGUgbGlmZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBUaGUg
Y29tcGlsZWQgcnVsZXMgYXJlIG5vdCBjb21wYXRpYmxlIGFjcm9zcyBkaWZmZXJlbnQgbWFqb3Ig
dmVyc2lvbnMgb2YgSUNVLgorICAgICAqIFRoZSBjb21waWxlZCBydWxlcyBhcmUgY29tYXB0aWJs
ZSBvbmx5IGJldHdlZW4gbWFjaGluZXMgd2l0aCB0aGUgc2FtZQorICAgICAqIGJ5dGUgb3JkZXJp
bmcgKGxpdHRsZSBvciBiaWcgZW5kaWFuKSBhbmQgdGhlIHNhbWUgYmFzZSBjaGFyYWN0ZXIgc2V0
IGZhbWlseQorICAgICAqIChBU0NJSSBvciBFQkNESUMpLgorICAgICAqCisgICAgICogQHNlZSAj
Z2V0QmluYXJ5UnVsZXMKKyAgICAgKiBAcGFyYW0gY29tcGlsZWRSdWxlcyBBIHBvaW50ZXIgdG8g
dGhlIGNvbXBpbGVkIGJyZWFrIHJ1bGVzIHRvIGJlIHVzZWQuCisgICAgICogQHBhcmFtIHJ1bGVM
ZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgY29tcGlsZWQgYnJlYWsgcnVsZXMsIGluIGJ5dGVzLiAg
VGhpcworICAgICAqICAgY29ycmVzcG9uZHMgdG8gdGhlIGxlbmd0aCB2YWx1ZSBwcm9kdWNlZCBi
eSBnZXRCaW5hcnlSdWxlcygpLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24g
YW55IGVycm9ycyBlbmNvdW50ZXJlZCwgaW5jbHVkaW5nIGludmFsaWQKKyAgICAgKiAgIGJpbmFy
eSBydWxlcy4KKyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRC
cmVha0l0ZXJhdG9yKGNvbnN0IHVpbnQ4X3QgKmNvbXBpbGVkUnVsZXMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICBydWxlTGVuZ3RoLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVUVycm9yQ29kZSAgICAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRo
aXMgY29uc3RydWN0b3IgdXNlcyB0aGUgdWRhdGEgaW50ZXJmYWNlIHRvIGNyZWF0ZSBhIEJyZWFr
SXRlcmF0b3IKKyAgICAgKiB3aG9zZSBpbnRlcm5hbCB0YWJsZXMgbGl2ZSBpbiBhIG1lbW9yeS1t
YXBwZWQgZmlsZS4gICJpbWFnZSIgaXMgYW4KKyAgICAgKiBJQ1UgVURhdGFNZW1vcnkgaGFuZGxl
IGZvciB0aGUgcHJlLWNvbXBpbGVkIGJyZWFrIGl0ZXJhdG9yIHRhYmxlcy4KKyAgICAgKiBAcGFy
YW0gaW1hZ2UgaGFuZGxlIHRvIHRoZSBtZW1vcnkgaW1hZ2UgZm9yIHRoZSBicmVhayBpdGVyYXRv
ciBkYXRhLgorICAgICAqICAgICAgICBPd25lcnNoaXAgb2YgdGhlIFVEYXRhTWVtb3J5IGhhbmRs
ZSBwYXNzZXMgdG8gdGhlIEJyZWFrIEl0ZXJhdG9yLAorICAgICAqICAgICAgICB3aGljaCB3aWxs
IGJlIHJlc3BvbnNpYmxlIGZvciBjbG9zaW5nIGl0IHdoZW4gaXQgaXMgbm8gbG9uZ2VyIG5lZWRl
ZC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3Vu
dGVyZWQuCisgICAgICogQHNlZSB1ZGF0YV9vcGVuCisgICAgICogQHNlZSAjZ2V0QmluYXJ5UnVs
ZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yKFVEYXRhTWVtb3J5KiBpbWFnZSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8q
KgorICAgICAqIERlc3RydWN0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCB+UnVsZUJhc2VkQnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICog
QXNzaWdubWVudCBvcGVyYXRvci4gIFNldHMgdGhpcyBpdGVyYXRvciB0byBoYXZlIHRoZSBzYW1l
IGJlaGF2aW9yLAorICAgICAqIGFuZCBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhl
IG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVCYXNlZEJyZWFrSXRl
cnRvciBwYXNzZWQgaW4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgUnVs
ZUJhc2VkQnJlYWtJdGVyYXRvciYgb3BlcmF0b3I9KGNvbnN0IFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3ImIHRoYXQpOworCisgICAgLyoqCisgICAgICogRXF1YWxpdHkgb3BlcmF0b3IuICBSZXR1cm5z
IFRSVUUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhlCisgICAgICogc2FtZSBjbGFz
cywgaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0
LgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZv
ciBlcXVhbGl0eQorICAgICAqIEByZXR1cm4gVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFy
ZSBvZiB0aGUKKyAgICAgKiBzYW1lIGNsYXNzLCBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLCBhbmQg
aXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHRleHQuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBCcmVha0l0ZXJhdG9yJiB0
aGF0KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIE5vdC1lcXVhbCBvcGVyYXRvci4gIElmIG9w
ZXJhdG9yPT0gcmV0dXJucyBUUlVFLCB0aGlzIHJldHVybnMgRkFMU0UsCisgICAgICogYW5kIHZp
Y2UgdmVyc2EuCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29t
cGFyZWQgZm9yIGluZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgYm90aCBCcmVha0l0
ZXJhdG9ycyBhcmUgbm90IHNhbWUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgQnJlYWtJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvciB3aXRoIHRoZSBzYW1lCisgICAgICogYmVoYXZpb3IsIGFuZCBpdGVyYXRpbmcg
b3ZlciB0aGUgc2FtZSB0ZXh0LCBhcyB0aGlzIG9uZS4KKyAgICAgKiBEaWZmZXJzIGZyb20gdGhl
IGNvcHkgY29uc3RydWN0b3IgaW4gdGhhdCBpdCBpcyBwb2x5bW9ycGhpYywgYW5kCisgICAgICog
d2lsbCBjb3JyZWN0bHkgY2xvbmUgKGNvcHkpIGEgZGVyaXZlZCBjbGFzcy4KKyAgICAgKiBjbG9u
ZSgpIGlzIHRocmVhZCBzYWZlLiAgTXVsdGlwbGUgdGhyZWFkcyBtYXkgc2ltdWx0YWVuZW91c2x5
CisgICAgICogY2xvbmUgdGhlIHNhbWUgc291cmNlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqIEBy
ZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yKiBjbG9u
ZSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIGhhc2ggY29kZSBmb3IgdGhp
cyBCcmVha0l0ZXJhdG9yCisgICAgICogQHJldHVybiBBIGhhc2ggY29kZQorICAgICAqICBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgaGFzaENvZGUodm9pZCkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZXNjcmlwdGlvbiB1c2VkIHRv
IGNyZWF0ZSB0aGlzIGl0ZXJhdG9yCisgICAgICogQHJldHVybiB0aGUgZGVzY3JpcHRpb24gdXNl
ZCB0byBjcmVhdGUgdGhpcyBpdGVyYXRvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIGNvbnN0IFVuaWNvZGVTdHJpbmcmIGdldFJ1bGVzKHZvaWQpIGNvbnN0
OworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEJyZWFrSXRlcmF0b3Igb3ZlcnJpZGVz
CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogUmV0
dXJuIGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAg
ICAgKiBUaGUgcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIGlzIG93bmVkIGJ5IHRoZSBicmVh
ayBpdGVyYXRvciwgYW5kIG11c3QKKyAgICAgKiBub3QgYmUgZGVsZXRlZCBieSB0aGUgY2FsbGVy
LiAgUmVwZWF0ZWQgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBtYXkKKyAgICAgKiByZXR1cm4gdGhl
IHNhbWUgQ2hhcmFjdGVySXRlcmF0b3IuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAq
IFRoZSByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0b3IgbXVzdCBub3QgYmUgdXNlZCBjb25jdXJy
ZW50bHkgd2l0aAorICAgICAqIHRoZSBicmVhayBpdGVyYXRvci4gIElmIGNvbmN1cnJlbnQgb3Bl
cmF0aW9uIGlzIG5lZWRlZCwgY2xvbmUgdGhlCisgICAgICogcmV0dXJuZWQgY2hhcmFjdGVyIGl0
ZXJhdG9yIGZpcnN0IGFuZCBvcGVyYXRlIG9uIHRoZSBjbG9uZS4KKyAgICAgKiA8L3A+CisgICAg
ICogPHA+CisgICAgICogV2hlbiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nIG9uIHRl
eHQgc3VwcGxpZWQgdmlhIGEgVVRleHQsCisgICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIGZhaWwu
ICBMYWNraW5nIGFueSB3YXkgdG8gc2lnbmFsIGZhaWx1cmVzLCBpdAorICAgICAqIHJldHVybnMg
YW4gQ2hhcmFjdGVySXRlcmF0b3IgY29udGFpbmluZyBubyB0ZXh0LgorICAgICAqIFRoZSBmdW5j
dGlvbiBnZXRVVGV4dCgpIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSwKKyAgICAgKiBp
cyByZWxpYWJsZSwgYW5kIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIDwvcD4KKyAgICAgKgor
ICAgICAqIFRPRE86ICBkZXByZWNhdGUgdGhpcyBmdW5jdGlvbj8KKyAgICAgKgorICAgICAqIEBy
ZXR1cm4gQW4gaXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsICBDaGFyYWN0ZXJJdGVyYXRvciYg
Z2V0VGV4dCh2b2lkKSBjb25zdDsKKworCisgICAgLyoqCisgICAgICAqICBHZXQgYSBVVGV4dCBm
b3IgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICAqICBUaGUgcmV0dXJuZWQgVVRleHQg
aXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBVVGV4dCB1c2VkIGludGVybmFsbHkKKyAgICAgICog
IGJ5IHRoZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbi4gIEl0IGNhbiBzYWZlbHkgYmUg
dXNlZCB0bworICAgICAgKiAgYWNjZXNzIHRoZSB0ZXh0IHdpdGhvdXQgaW1wYWN0aW5nIGFueSBi
cmVhayBpdGVyYXRvciBvcGVyYXRpb25zLAorICAgICAgKiAgYnV0IHRoZSB1bmRlcmx5aW5nIHRl
eHQgaXRzZWxmIG11c3Qgbm90IGJlIGFsdGVyZWQuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBm
aWxsSW4gQSBVVGV4dCB0byBiZSBmaWxsZWQgaW4uICBJZiBOVUxMLCBhIG5ldyBVVGV4dCB3aWxs
IGJlCisgICAgICAqICAgICAgICAgICBhbGxvY2F0ZWQgdG8gaG9sZCB0aGUgcmVzdWx0LgorICAg
ICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgICogQHJl
dHVybiAgIFRoZSBjdXJyZW50IFVUZXh0IGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiAgSWYgYW4g
aW5wdXQKKyAgICAgICogICAgICAgICAgIFVUZXh0IHdhcyBwcm92aWRlZCwgaXQgd2lsbCBhbHdh
eXMgYmUgcmV0dXJuZWQuCisgICAgICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAgKi8KKyAgICAg
dmlydHVhbCBVVGV4dCAqZ2V0VVRleHQoVVRleHQgKmZpbGxJbiwgVUVycm9yQ29kZSAmc3RhdHVz
KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBh
IG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhpcyBmdW5jdGlvbiByZXNldHMKKyAgICAgKiB0aGUgY3Vy
cmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAg
ICAgKiBAcGFyYW0gbmV3VGV4dCBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IHRvIGFuYWx5emUu
ICBUaGUgQnJlYWtJdGVyYXRvcgorICAgICAqIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgY2hhcmFj
dGVyIGl0ZXJhdG9yLiAgVGhlIGNhbGxlciBNVVNUIE5PVCBkZWxldGUgaXQhCisgICAgICogIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBhZG9wdFRleHQoQ2hhcmFj
dGVySXRlcmF0b3IqIG5ld1RleHQpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRv
ciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cwor
ICAgICAqIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9m
IHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSB0ZXh0IHRvIGFuYWx5emUuCisg
ICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0
KGNvbnN0IFVuaWNvZGVTdHJpbmcmIG5ld1RleHQpOworCisgICAgLyoqCisgICAgICogUmVzZXQg
dGhlIGJyZWFrIGl0ZXJhdG9yIHRvIG9wZXJhdGUgb3ZlciB0aGUgdGV4dCByZXByZXNlbnRlZCBi
eQorICAgICAqIHRoZSBVVGV4dC4gIFRoZSBpdGVyYXRvciBwb3NpdGlvbiBpcyByZXNldCB0byB0
aGUgc3RhcnQuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBj
bG9uZSBvZiB0aGUgc3VwcGxpZWQgVVRleHQuICBUaGlzIG1lYW5zCisgICAgICogdGhhdCB0aGUg
Y2FsbGVyIGlzIGZyZWUgdG8gaW1tZWRpYXRlbHkgY2xvc2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRo
ZQorICAgICAqIFV0ZXh0IHRoYXQgd2FzIHBhc3NlZCBhcyBhIHBhcmFtZXRlciwgYnV0IHRoYXQg
dGhlIHVuZGVybHlpbmcgdGV4dCBpdHNlbGYKKyAgICAgKiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdo
aWxlIGJlaW5nIHJlZmVyZW5jZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAg
ICogQHBhcmFtIHRleHQgICAgVGhlIFVUZXh0IHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAg
ICAqIEBwYXJhbSBzdGF0dXMgIFJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgKiBAc3Rh
YmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoVVRleHQgKnRl
eHQsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJy
ZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCBwb3Np
dGlvbiB6ZXJvLgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9m
IHRoZSB0ZXh0LCB6ZXJvLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgZmlyc3Qodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBj
dXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAq
IEByZXR1cm4gVGhlIHRleHQncyBwYXN0LXRoZS1lbmQgb2Zmc2V0LgorICAgICAqICBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbGFzdCh2b2lkKTsKKworICAg
IC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBlaXRoZXIgZm9yd2FyZCBvciBiYWNr
d2FyZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBzdGVwcy4KKyAgICAgKiBOZWdhdGl2ZSB2YWx1
ZXMgbW92ZSBiYWNrd2FyZCwgYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3ZlIGZvcndhcmQuICBUaGlz
IGlzCisgICAgICogZXF1aXZhbGVudCB0byByZXBlYXRlZGx5IGNhbGxpbmcgbmV4dCgpIG9yIHBy
ZXZpb3VzKCkuCisgICAgICogQHBhcmFtIG4gVGhlIG51bWJlciBvZiBzdGVwcyB0byBtb3ZlLiAg
VGhlIHNpZ24gaW5kaWNhdGVzIHRoZSBkaXJlY3Rpb24KKyAgICAgKiAobmVnYXRpdmUgaXMgYmFj
a3dhcmRzLCBhbmQgcG9zaXRpdmUgaXMgZm9yd2FyZHMpLgorICAgICAqIEByZXR1cm4gVGhlIGNo
YXJhY3RlciBvZmZzZXQgb2YgdGhlIGJvdW5kYXJ5IHBvc2l0aW9uIG4gYm91bmRhcmllcyBhd2F5
IGZyb20KKyAgICAgKiB0aGUgY3VycmVudCBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KGludDMyX3Qgbik7CisKKyAgICAvKioK
KyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgdG8gdGhlIG5leHQgYm91bmRhcnkgcG9zaXRp
b24uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IGFm
dGVyIHRoaXMgb25lLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIGludDMyX3QgbmV4dCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBpdGVy
YXRvciBiYWNrd2FyZHMsIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHByZWNlZGluZyB0aGlzIG9uZS4K
KyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlv
biBwcmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgaW50MzJfdCBwcmV2aW91cyh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBm
b2xsb3dpbmcKKyAgICAgKiB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBv
ZmZzZXQgVGhlIHBvc2l0aW9uIGZyb20gd2hpY2ggdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBhIGJy
ZWFrIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBi
cmVhayBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGZvbGxvd2luZyhpbnQzMl90IG9mZnNldCk7
CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFz
dCBib3VuZGFyeSBwb3NpdGlvbiBiZWZvcmUgdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9u
LgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIHRvIGJlZ2luIHNlYXJjaGluZyBm
b3IgYSBicmVhayBmcm9tLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0
IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3RhcnRpbmcgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmcoaW50MzJfdCBv
ZmZzZXQpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjZmllZCBw
b3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLiAgQXMgYSBzaWRlCisgICAgICogZWZmZWN0
LCBsZWF2ZXMgdGhlIGl0ZXJhdG9yIHBvaW50aW5nIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3Np
dGlvbiBhdAorICAgICAqIG9yIGFmdGVyICJvZmZzZXQiLgorICAgICAqIEBwYXJhbSBvZmZzZXQg
dGhlIG9mZnNldCB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMg
YSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBVQm9vbCBpc0JvdW5kYXJ5KGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBy
ZXR1cm4gVGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBjdXJyZW50KHZvaWQpIGNvbnN0Owor
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHN0YXR1cyB0YWcgZnJvbSB0aGUgYnJlYWsg
cnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBi
cmVhayBwb3NpdGlvbi4gIEZvciBicmVhayBydWxlcyB0aGF0IGRvIG5vdCBzcGVjaWZ5IGEKKyAg
ICAgKiBzdGF0dXMsIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVkLiAgSWYgbW9yZSB0
aGFuIG9uZSBicmVhayBydWxlCisgICAgICogd291bGQgY2F1c2UgYSBib3VuZGFyeSB0byBiZSBs
b2NhdGVkIGF0IHNvbWUgcG9zaXRpb24gaW4gdGhlIHRleHQsCisgICAgICogdGhlIG51bWVyaWNh
bGx5IGxhcmdlc3Qgb2YgdGhlIGFwcGxpY2FibGUgc3RhdHVzIHZhbHVlcyBpcyByZXR1cm5lZC4K
KyAgICAgKiA8cD4KKyAgICAgKiBPZiB0aGUgc3RhbmRhcmQgdHlwZXMgb2YgSUNVIGJyZWFrIGl0
ZXJhdG9ycywgb25seSB3b3JkIGJyZWFrIGFuZAorICAgICAqIGxpbmUgYnJlYWsgcHJvdmlkZSBz
dGF0dXMgdmFsdWVzLiAgVGhlIHZhbHVlcyBhcmUgZGVmaW5lZCBpbgorICAgICAqIHRoZSBoZWFk
ZXIgZmlsZSB1YnJrLmguICBGb3IgV29yZCBicmVha3MsIHRoZSBzdGF0dXMgYWxsb3dzIGRpc3Rp
bmd1aXNoaW5nIGJldHdlZW4gd29yZHMKKyAgICAgKiB0aGF0IGNvbnRhaW4gYWxwaGFiZXRpYyBs
ZXR0ZXJzLCAid29yZHMiIHRoYXQgYXBwZWFyIHRvIGJlIG51bWJlcnMsCisgICAgICogcHVuY3R1
YXRpb24gYW5kIHNwYWNlcywgd29yZHMgY29udGFpbmluZyBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJz
LCBhbmQKKyAgICAgKiBtb3JlLiAgRm9yIExpbmUgQnJlYWssIHRoZSBzdGF0dXMgZGlzdGluZ3Vp
c2hlcyBiZXR3ZWVuIGhhcmQgKG1hbmRhdG9yeSkgYnJlYWtzCisgICAgICogYW5kIHNvZnQgKHBv
dGVudGlhbCkgYnJlYWsgcG9zaXRpb25zLgorICAgICAqIDxwPgorICAgICAqIDxjb2RlPmdldFJ1
bGVTdGF0dXMoKTwvY29kZT4gY2FuIGJlIGNhbGxlZCBhZnRlciBvYnRhaW5pbmcgYSBib3VuZGFy
eQorICAgICAqIHBvc2l0aW9uIGZyb20gPGNvZGU+bmV4dCgpPC9jb2RlPiwgPGNvZGU+cHJldmlv
dXMoKTwvY29kZT4sIG9yCisgICAgICogYW55IG90aGVyIGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9u
cyB0aGF0IHJldHVybnMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBX
aGVuIGNyZWF0aW5nIGN1c3RvbSBicmVhayBydWxlcywgb25lIGlzIGZyZWUgdG8gZGVmaW5lIHdo
YXRldmVyCisgICAgICogc3RhdHVzIHZhbHVlcyBtYXkgYmUgY29udmVuaWVudCBmb3IgdGhlIGFw
cGxpY2F0aW9uLgorICAgICAqIDxwPgorICAgICAqIE5vdGU6IHRoaXMgZnVuY3Rpb24gaXMgbm90
IHRocmVhZCBzYWZlLiAgSXQgc2hvdWxkIG5vdCBoYXZlIGJlZW4KKyAgICAgKiAgICAgICBkZWNs
YXJlZCBjb25zdCwgYW5kIHRoZSBjb25zdCByZW1haW5zIG9ubHkgZm9yIGNvbXBhdGliaWxpdHkK
KyAgICAgKiAgICAgICByZWFzb25zLiAgKFRoZSBmdW5jdGlvbiBpcyBsb2dpY2FsbHkgY29uc3Qs
IGJ1dCBub3QgYml0LXdpc2UgY29uc3QpLgorICAgICAqIDxwPgorICAgICAqIEByZXR1cm4gdGhl
IHN0YXR1cyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNl
bnRseQorICAgICAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqCisgICAgICogQHNl
ZSBVV29yZEJyZWFrCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90IGdldFJ1bGVTdGF0dXMoKSBjb25zdDsKKworICAgLyoqCisgICAgKiBHZXQgdGhl
IHN0YXR1cyAodGFnKSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsgcnVsZShzKSB0aGF0IGRldGVybWlu
ZWQgdGhlIG1vc3QKKyAgICAqIHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAg
ICogPHA+CisgICAgKiBUaGUgcmV0dXJuZWQgc3RhdHVzIHZhbHVlKHMpIGFyZSBzdG9yZWQgaW50
byBhbiBhcnJheSBwcm92aWRlZCBieSB0aGUgY2FsbGVyLgorICAgICogVGhlIHZhbHVlcyBhcmUg
c3RvcmVkIGluIHNvcnRlZCAoYXNjZW5kaW5nKSBvcmRlci4KKyAgICAqIElmIHRoZSBjYXBhY2l0
eSBvZiB0aGUgb3V0cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xkIHRoZSBkYXRhLAor
ICAgICogIHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2YWlsYWJsZSBsZW5n
dGgsIGFuZCBhCisgICAgKiAgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1Igd2lsbCBiZSBzaWduYWxl
ZC4KKyAgICAqCisgICAgKiBAcGFyYW0gZmlsbEluVmVjIGFuIGFycmF5IHRvIGJlIGZpbGxlZCBp
biB3aXRoIHRoZSBzdGF0dXMgdmFsdWVzLgorICAgICogQHBhcmFtIGNhcGFjaXR5ICB0aGUgbGVu
Z3RoIG9mIHRoZSBzdXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0aCBvZiB6ZXJvIGNhdXNlcworICAg
ICogICAgICAgICAgICAgICAgICB0aGUgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSBudW1iZXIgb2Yg
c3RhdHVzIHZhbHVlcywgaW4gdGhlCisgICAgKiAgICAgICAgICAgICAgICAgIG5vcm1hbCB3YXks
IHdpdGhvdXQgYXR0ZW10cGluZyB0byBzdG9yZSBhbnkgdmFsdWVzLgorICAgICogQHBhcmFtIHN0
YXR1cyAgICByZWNlaXZlcyBlcnJvciBjb2Rlcy4KKyAgICAqIEByZXR1cm4gICAgICAgICAgVGhl
IG51bWJlciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxlcyB0aGF0IGRldGVybWluZWQK
KyAgICAqICAgICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50IGJvdW5kYXJ5IHJldHVybmVk
IGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAqICAgICAgICAgICAgICAgICAgSW4gdGhlIGV2
ZW50IG9mIGEgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRoZSByZXR1cm4gdmFsdWUKKyAgICAq
ICAgICAgICAgICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzIHRo
YXQgd2VyZSBhdmFpbGFibGUsCisgICAgKiAgICAgICAgICAgICAgICAgIG5vdCB0aGUgcmVkdWNl
ZCBudW1iZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgorICAgICogQHNlZSBnZXRSdWxl
U3RhdHVzCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgIHZpcnR1YWwgaW50MzJf
dCBnZXRSdWxlU3RhdHVzVmVjKGludDMyX3QgKmZpbGxJblZlYywgaW50MzJfdCBjYXBhY2l0eSwg
VUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB1bmlxdWUg
Y2xhc3MgSUQgUE9MWU1PUlBISUNBTExZLiAgUHVyZSB2aXJ0dWFsIG92ZXJyaWRlLgorICAgICAq
IFRoaXMgbWV0aG9kIGlzIHRvIGltcGxlbWVudCBhIHNpbXBsZSB2ZXJzaW9uIG9mIFJUVEksIHNp
bmNlIG5vdCBhbGwKKyAgICAgKiBDKysgY29tcGlsZXJzIHN1cHBvcnQgZ2VudWluZSBSVFRJLiAg
UG9seW1vcnBoaWMgb3BlcmF0b3I9PSgpIGFuZAorICAgICAqIGNsb25lKCkgbWV0aG9kcyBjYWxs
IHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICBUaGUgY2xhc3Mg
SUQgZm9yIHRoaXMgb2JqZWN0LiBBbGwgb2JqZWN0cyBvZiBhCisgICAgICogICAgICAgICAgICAg
ICAgICBnaXZlbiBjbGFzcyBoYXZlIHRoZSBzYW1lIGNsYXNzIElELiAgT2JqZWN0cyBvZgorICAg
ICAqICAgICAgICAgICAgICAgICAgb3RoZXIgY2xhc3NlcyBoYXZlIGRpZmZlcmVudCBjbGFzcyBJ
RHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJ
RCBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVy
bnMgdGhlIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzLiAgVGhpcyBpcyB1c2VmdWwgb25seSBmb3IK
KyAgICAgKiBjb21wYXJpbmcgdG8gYSByZXR1cm4gdmFsdWUgZnJvbSBnZXREeW5hbWljQ2xhc3NJ
RCgpLiAgRm9yIGV4YW1wbGU6CisgICAgICoKKyAgICAgKiAgICAgIEJhc2UqIHBvbHltb3JwaGlj
X3BvaW50ZXIgPSBjcmVhdGVQb2x5bW9ycGhpY09iamVjdCgpOworICAgICAqICAgICAgaWYgKHBv
bHltb3JwaGljX3BvaW50ZXItPmdldER5bmFtaWNDbGFzc0lEKCkgPT0KKyAgICAgKiAgICAgICAg
ICBEZXJpdmVkOjpnZXRTdGF0aWNDbGFzc0lEKCkpIC4uLgorICAgICAqCisgICAgICogQHJldHVy
biAgICAgICAgICBUaGUgY2xhc3MgSUQgZm9yIGFsbCBvYmplY3RzIG9mIHRoaXMgY2xhc3MuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVDbGFzc0lEIFVfRVhQ
T1JUMiBnZXRTdGF0aWNDbGFzc0lEKHZvaWQpOworCisgICAgLyoqCisgICAgICogRGVwcmVjYXRl
ZCBmdW5jdGlvbmFsaXR5LiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisgICAgICogQ3Jl
YXRlIGEgY2xvbmUgKGNvcHkpIG9mIHRoaXMgYnJlYWsgaXRlcmF0b3IgaW4gbWVtb3J5IHByb3Zp
ZGVkCisgICAgICogIGJ5IHRoZSBjYWxsZXIuICBUaGUgaWRlYSBpcyB0byBpbmNyZWFzZSBwZXJm
b3JtYW5jZSBieSBhdm9pZGluZworICAgICAqICBhIHN0b3JhZ2UgYWxsb2NhdGlvbi4gIFVzZSBv
ZiB0aGlzIGZ1bmN0b2luIGlzIE5PVCBSRUNPTU1FTkRFRC4KKyAgICAgKiAgUGVyZm9ybWFuY2Ug
Z2FpbnMgYXJlIG1pbmltYWwsIGFuZCBjb3JyZWN0IGJ1ZmZlciBtYW5hZ2VtZW50IGlzCisgICAg
ICogIHRyaWNreS4gIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0g
c3RhY2tCdWZmZXIgIFRoZSBwb2ludGVyIHRvIHRoZSBtZW1vcnkgaW50byB3aGljaCB0aGUgY2xv
bmVkIG9iamVjdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGJlIHBsYWNlZC4g
IElmIE5VTEwsICBhbGxvY2F0ZSBoZWFwIG1lbW9yeQorICAgICAqICAgICAgICAgICAgICAgICAg
ICAgZm9yIHRoZSBjbG9uZWQgb2JqZWN0LgorICAgICAqIEBwYXJhbSBCdWZmZXJTaXplICAgVGhl
IHNpemUgb2YgdGhlIGJ1ZmZlci4gIElmIHplcm8sIHJldHVybiB0aGUgcmVxdWlyZWQKKyAgICAg
KiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciBzaXplLCBidXQgZG8gbm90IGNsb25lIHRoZSBv
YmplY3QuICBJZiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHNpemUgd2FzIHRvbyBz
bWFsbCAoYnV0IG5vdCB6ZXJvKSwgYWxsb2NhdGUgaGVhcAorICAgICAqICAgICAgICAgICAgICAg
ICAgICAgc3RvcmFnZSBmb3IgdGhlIGNsb25lZCBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFy
YW0gc3RhdHVzICAgICAgIEVycm9yIHN0YXR1cy4gIFVfU0FGRUNMT05FX0FMTE9DQVRFRF9XQVJO
SU5HIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHJldHVybmVkIGlmIHRoZSB0
aGUgcHJvdmlkZWQgYnVmZmVyIHdhcyB0b28gc21hbGwsIGFuZAorICAgICAqICAgICAgICAgICAg
ICAgICAgICAgdGhlIGNsb25lIHdhcyB0aGVyZWZvcmUgcHV0IG9uIHRoZSBoZWFwLgorICAgICAq
CisgICAgICogQHJldHVybiAgUG9pbnRlciB0byB0aGUgY2xvbmUgb2JqZWN0LiAgVGhpcyBtYXkg
ZGlmZmVyIGZyb20gdGhlIHN0YWNrQnVmZmVyCisgICAgICogICAgICAgICAgYWRkcmVzcyBpZiB0
aGUgYnl0ZSBhbGlnbm1lbnQgb2YgdGhlIHN0YWNrIGJ1ZmZlciB3YXMgbm90IHN1aXRhYmxlCisg
ICAgICogICAgICAgICAgb3IgaWYgdGhlIHN0YWNrQnVmZmVyIHdhcyB0b28gc21hbGwgdG8gaG9s
ZCB0aGUgY2xvbmUuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0
ZWFkLgorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciAqICBjcmVhdGVCdWZmZXJD
bG9uZSh2b2lkICpzdGFja0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50MzJfdCAmQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworCisgICAg
LyoqCisgICAgICogUmV0dXJuIHRoZSBiaW5hcnkgZm9ybSBvZiBjb21waWxlZCBicmVhayBydWxl
cywKKyAgICAgKiB3aGljaCBjYW4gdGhlbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5ldyBicmVhayBp
dGVyYXRvciBhdCBzb21lCisgICAgICogdGltZSBpbiB0aGUgZnV0dXJlLiAgQ3JlYXRpbmcgYSBi
cmVhayBpdGVyYXRvciBmcm9tIHByZS1jb21waWxlZCBydWxlcworICAgICAqIGlzIG11Y2ggZmFz
dGVyIHRoYW4gYnVpbGRpbmcgb25lIGZyb20gdGhlIHNvdXJjZSBmb3JtIG9mIHRoZQorICAgICAq
IGJyZWFrIHJ1bGVzLgorICAgICAqCisgICAgICogVGhlIGJpbmFyeSBkYXRhIGNhbiBvbmx5IGJl
IHVzZWQgd2l0aCB0aGUgc2FtZSB2ZXJzaW9uIG9mIElDVQorICAgICAqICBhbmQgb24gdGhlIHNh
bWUgcGxhdGZvcm0gdHlwZSAocHJvY2Vzc29yIGVuZGlhbi1uZXNzKQorICAgICAqCisgICAgICog
QHBhcmFtIGxlbmd0aCBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGJpbmFyeSBkYXRhLiAgKE91
dCBwYXJhbXRlci4pCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgQSBwb2ludGVyIHRvIHRoZSBi
aW5hcnkgKGNvbXBpbGVkKSBydWxlIGRhdGEuICBUaGUgc3RvcmFnZQorICAgICAqICAgICAgICAg
ICBiZWxvbmdzIHRvIHRoZSBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvciBvYmplY3QsIG5vdCB0aGUK
KyAgICAgKiAgICAgICAgICAgY2FsbGVyLCBhbmQgbXVzdCBub3QgYmUgbW9kaWZpZWQgb3IgZGVs
ZXRlZC4KKyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGNvbnN0
IHVpbnQ4X3QgKmdldEJpbmFyeVJ1bGVzKHVpbnQzMl90ICZsZW5ndGgpOworCisgICAgLyoqCisg
ICAgICogIFNldCB0aGUgc3ViamVjdCB0ZXh0IHN0cmluZyB1cG9uIHdoaWNoIHRoZSBicmVhayBp
dGVyYXRvciBpcyBvcGVyYXRpbmcKKyAgICAgKiAgd2l0aG91dCBjaGFuZ2luZyBhbnkgb3RoZXIg
YXNwZWN0IG9mIHRoZSBtYXRjaGluZyBzdGF0ZS4KKyAgICAgKiAgVGhlIG5ldyBhbmQgcHJldmlv
dXMgdGV4dCBzdHJpbmdzIG11c3QgaGF2ZSB0aGUgc2FtZSBjb250ZW50LgorICAgICAqCisgICAg
ICogIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBpbiBlbnZpcm9ubWVudHMgd2hl
cmUgSUNVIGlzIG9wZXJhdGluZyBvbgorICAgICAqICBzdHJpbmdzIHRoYXQgbWF5IG1vdmUgYXJv
dW5kIGluIG1lbW9yeS4gIEl0IHByb3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBub3RpZnlpbmcKKyAg
ICAgKiAgSUNVIHRoYXQgdGhlIHN0cmluZyBoYXMgYmVlbiByZWxvY2F0ZWQsIGFuZCBwcm92aWRp
bmcgYSBuZXcgVVRleHQgdG8gYWNjZXNzIHRoZQorICAgICAqICBzdHJpbmcgaW4gaXRzIG5ldyBw
b3NpdGlvbi4KKyAgICAgKgorICAgICAqICBOb3RlIHRoYXQgdGhlIGJyZWFrIGl0ZXJhdG9yIGlt
cGxlbWVudGF0aW9uIG5ldmVyIGNvcGllcyB0aGUgdW5kZXJseWluZyB0ZXh0CisgICAgICogIG9m
IGEgc3RyaW5nIGJlaW5nIHByb2Nlc3NlZCwgYnV0IGFsd2F5cyBvcGVyYXRlcyBkaXJlY3RseSBv
biB0aGUgb3JpZ2luYWwgdGV4dAorICAgICAqICBwcm92aWRlZCBieSB0aGUgdXNlci4gUmVmcmVz
aGluZyBzaW1wbHkgZHJvcHMgdGhlIHJlZmVyZW5jZXMgdG8gdGhlIG9sZCB0ZXh0CisgICAgICog
IGFuZCByZXBsYWNlcyB0aGVtIHdpdGggcmVmZXJlbmNlcyB0byB0aGUgbmV3LgorICAgICAqCisg
ICAgICogIENhdXRpb246ICB0aGlzIGZ1bmN0aW9uIGlzIG5vcm1hbGx5IHVzZWQgb25seSBieSB2
ZXJ5IHNwZWNpYWxpemVkLAorICAgICAqICBzeXN0ZW0tbGV2ZWwgY29kZS4gIE9uZSBleGFtcGxl
IHVzZSBjYXNlIGlzIHdpdGggZ2FyYmFnZSBjb2xsZWN0aW9uIHRoYXQgbW92ZXMKKyAgICAgKiAg
dGhlIHRleHQgaW4gbWVtb3J5LgorICAgICAqCisgICAgICogQHBhcmFtIGlucHV0ICAgICAgVGhl
IG5ldyAobW92ZWQpIHRleHQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgIFJlY2Vp
dmVzIGVycm9ycyBkZXRlY3RlZCBieSB0aGlzIGZ1bmN0aW9uLgorICAgICAqIEByZXR1cm4gICAg
ICAgICAgICp0aGlzCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAg
IHZpcnR1YWwgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAmcmVmcmVzaElucHV0VGV4dChVVGV4dCAq
aW5wdXQsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKworcHJvdGVjdGVkOgorICAgIC8vPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKyAgICAvLyBpbXBsZW1lbnRhdGlvbgorICAgIC8vPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAg
ICAvKioKKyAgICAgKiBEdW1wcyBjYWNoZXMgYW5kIHBlcmZvcm1zIG90aGVyIGFjdGlvbnMgYXNz
b2NpYXRlZCB3aXRoIGEgY29tcGxldGUgY2hhbmdlCisgICAgICogaW4gdGV4dCBvciBpdGVyYXRp
b24gcG9zaXRpb24uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgdmlydHVhbCB2b2lk
IHJlc2V0KHZvaWQpOworCisjaWYgMAorICAgIC8qKgorICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0
aGUgY2F0ZWdvcnkgbG9va3VwIGZvciB0aGlzIGNoYXIKKyAgICAgICogaW5kaWNhdGVzIHRoYXQg
aXQgaXMgaW4gdGhlIHNldCBvZiBkaWN0aW9uYXJ5IGxvb2t1cCBjaGFycy4KKyAgICAgICogVGhp
cyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGRpY3Rpb25hcnkgYmFzZWQgYnJlYWsg
aXRlcmF0b3JzLgorICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBm
b3IgdGhpcyBjaGFyCisgICAgICAqIGluZGljYXRlcyB0aGF0IGl0IGlzIGluIHRoZSBzZXQgb2Yg
ZGljdGlvbmFyeSBsb29rdXAgY2hhcnMuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAg
ICB2aXJ0dWFsIFVCb29sIGlzRGljdGlvbmFyeUNoYXIoVUNoYXIzMik7CisKKyAgICAvKioKKyAg
ICAgICogR2V0IHRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgICogQGludGVy
bmFsCisgICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRCcmVha1R5cGUoKSBjb25zdDsK
KyNlbmRpZgorCisgICAgLyoqCisgICAgICAqIFNldCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRl
cmF0b3IuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
QnJlYWtUeXBlKGludDMyX3QgdHlwZSk7CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQor
ICAgIC8qKgorICAgICAgKiBDb21tb24gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24sIHVzZWQgYnkg
Y29uc3RydWN0b3JzIGFuZCBidWZmZXJDbG9uZS4KKyAgICAgICogQGludGVybmFsCisgICAgICAq
LworICAgIHZvaWQgaW5pdCgpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisK
K3ByaXZhdGU6CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBiYWNrcyB0aGUgaXRlcmF0
b3IgYmFjayB1cCB0byBhICJzYWZlIHBvc2l0aW9uIiBpbiB0aGUgdGV4dC4KKyAgICAgKiBUaGlz
IGlzIGEgcG9zaXRpb24gdGhhdCB3ZSBrbm93LCB3aXRob3V0IGFueSBjb250ZXh0LCBtdXN0IGJl
IGEgYnJlYWsgcG9zaXRpb24uCisgICAgICogVGhlIHZhcmlvdXMgY2FsbGluZyBtZXRob2RzIHRo
ZW4gaXRlcmF0ZSBmb3J3YXJkIGZyb20gdGhpcyBzYWZlIHBvc2l0aW9uIHRvCisgICAgICogdGhl
IGFwcHJvcHJpYXRlIHBvc2l0aW9uIHRvIHJldHVybi4gIChGb3IgbW9yZSBpbmZvcm1hdGlvbiwg
c2VlIHRoZSBkZXNjcmlwdGlvbgorICAgICAqIG9mIGJ1aWxkQmFja3dhcmRzU3RhdGVUYWJsZSgp
IGluIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuQnVpbGRlci4pCisgICAgICogQHBhcmFtIHN0YXRl
dGFibGUgc3RhdGUgdGFibGUgdXNlZCBvZiBtb3ZpbmcgYmFja3dhcmRzCisgICAgICogQGludGVy
bmFsCisgICAgICovCisgICAgaW50MzJfdCBoYW5kbGVQcmV2aW91cyhjb25zdCBSQkJJU3RhdGVU
YWJsZSAqc3RhdGV0YWJsZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUg
YWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBuZXh0KCkgbWV0aG9kLiAgQWxsIGl0ZXJhdGlv
bgorICAgICAqIHZlY3RvcnMgdGhyb3VnaCBoZXJlLiAgVGhpcyBtZXRob2QgaW5pdGlhbGl6ZXMg
dGhlIHN0YXRlIG1hY2hpbmUgdG8gc3RhdGUgMQorICAgICAqIGFuZCBhZHZhbmNlcyB0aHJvdWdo
IHRoZSB0ZXh0IGNoYXJhY3RlciBieSBjaGFyYWN0ZXIgdW50aWwgd2UgcmVhY2ggdGhlIGVuZAor
ICAgICAqIG9mIHRoZSB0ZXh0IG9yIHRoZSBzdGF0ZSBtYWNoaW5lIHRyYW5zaXRpb25zIHRvIHN0
YXRlIDAuICBXZSB1cGRhdGUgb3VyIHJldHVybgorICAgICAqIHZhbHVlIGV2ZXJ5IHRpbWUgdGhl
IHN0YXRlIG1hY2hpbmUgcGFzc2VzIHRocm91Z2ggYSBwb3NzaWJsZSBlbmQgc3RhdGUuCisgICAg
ICogQHBhcmFtIHN0YXRldGFibGUgc3RhdGUgdGFibGUgdXNlZCBvZiBtb3ZpbmcgZm9yd2FyZHMK
KyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGhhbmRsZU5leHQoY29uc3Qg
UkJCSVN0YXRlVGFibGUgKnN0YXRldGFibGUpOworCitwcm90ZWN0ZWQ6CisKKyNpZm5kZWYgVV9I
SURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIGZ1bmN0aW9uIHRo
YXQgYWN0dWFsbHkgaW1wbGVtZW50cyBkaWN0aW9uYXJ5LWJhc2VkCisgICAgICogYnJlYWtpbmcu
ICBDb3ZlcmluZyBhdCBsZWFzdCB0aGUgcmFuZ2UgZnJvbSBzdGFydFBvcyB0byBlbmRQb3MsCisg
ICAgICogaXQgY2hlY2tzIGZvciBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMsIGFuZCBpZiBpdCBmaW5k
cyB0aGVtIGRldGVybWluZXMKKyAgICAgKiB0aGUgYXBwcm9wcmlhdGUgb2JqZWN0IHRvIGRlYWwg
d2l0aCB0aGVtLiBJdCBtYXkgY2FjaGUgZm91bmQgYnJlYWtzIGluCisgICAgICogZkNhY2hlZEJy
ZWFrUG9zaXRpb25zIGFzIGl0IGdvZXMuIEl0IG1heSB3ZWxsIGFsc28gbG9vayBhdCB0ZXh0IG91
dHNpZGUKKyAgICAgKiB0aGUgcmFuZ2Ugc3RhcnRQb3MgdG8gZW5kUG9zLgorICAgICAqIElmIGdv
aW5nIGZvcndhcmQsIGVuZFBvcyBpcyB0aGUgbm9ybWFsIFVuaWNvZGUgYnJlYWsgcmVzdWx0LCBh
bmQKKyAgICAgKiBpZiBnb2luZCBpbiByZXZlcnNlLCBzdGFydFBvcyBpcyB0aGUgbm9ybWFsIFVu
aWNvZGUgYnJlYWsgcmVzdWx0CisgICAgICogQHBhcmFtIHN0YXJ0UG9zICBUaGUgc3RhcnQgcG9z
aXRpb24gb2YgYSByYW5nZSBvZiB0ZXh0CisgICAgICogQHBhcmFtIGVuZFBvcyAgICBUaGUgZW5k
IHBvc2l0aW9uIG9mIGEgcmFuZ2Ugb2YgdGV4dAorICAgICAqIEBwYXJhbSByZXZlcnNlICAgVGhl
IGNhbGwgaXMgZm9yIHRoZSByZXZlcnNlIGRpcmVjdGlvbgorICAgICAqIEBpbnRlcm5hbAorICAg
ICAqLworICAgIGludDMyX3QgY2hlY2tEaWN0aW9uYXJ5KGludDMyX3Qgc3RhcnRQb3MsIGludDMy
X3QgZW5kUG9zLCBVQm9vbCByZXZlcnNlKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQ
SSAqLworCitwcml2YXRlOgorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5z
IHRoZSBhcHByb3ByaWF0ZSBMYW5ndWFnZUJyZWFrRW5naW5lIGZvciBhCisgICAgICogZ2l2ZW4g
Y2hhcmFjdGVyIGMuCisgICAgICogQHBhcmFtIGMgICAgICAgICBBIGNoYXJhY3RlciBpbiB0aGUg
ZGljdGlvbmFyeSBzZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBjb25zdCBMYW5n
dWFnZUJyZWFrRW5naW5lICpnZXRMYW5ndWFnZUJyZWFrRW5naW5lKFVDaGFyMzIgYyk7CisKKyAg
ICAvKioKKyAgICAgKiAgQGludGVybmFsCisgICAgICovCisgICAgdm9pZCBtYWtlUnVsZVN0YXR1
c1ZhbGlkKCk7CisKK307CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICBJbmxp
bmUgRnVuY3Rpb25zIERlZmluaXRpb25zIC4uLgorLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKK2lubGluZSBVQm9vbCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yOjpvcGVyYXRvciE9KGNvbnN0
IEJyZWFrSXRlcmF0b3ImIHRoYXQpIGNvbnN0IHsKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0odGhh
dCk7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JS
RUFLX0lURVJBVElPTiAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvc2Nocml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0ZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kMGI1ZTIyNTAzY2ZmMjYxZDJjZDI0MGZmMTIwMDdmOTM3Zjc4M2IyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oCkBAIC0wLDAgKzEs
MTg3IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAx
OTk4LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlv
biBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorKgorKiBGaWxlIHNjaHJpdGVyLmgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6Cisq
CisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogIDA1LzA1Lzk5ICAg
ICBzdGVwaGVuICAgICBDbGVhbmVkIHVwLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisj
aWZuZGVmIFNDSFJJVEVSX0gKKyNkZWZpbmUgU0NIUklURVJfSAorCisjaW5jbHVkZSAidW5pY29k
ZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisjaW5jbHVkZSAidW5p
Y29kZS91Y2hyaXRlci5oIgorCisvKioKKyAqIFxmaWxlIAorICogXGJyaWVmIEMrKyBBUEk6IFN0
cmluZyBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgor
ICogQSBjb25jcmV0ZSBzdWJjbGFzcyBvZiBDaGFyYWN0ZXJJdGVyYXRvciB0aGF0IGl0ZXJhdGVz
IG92ZXIgdGhlCisgKiBjaGFyYWN0ZXJzIChjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzKSBpbiBh
IFVuaWNvZGVTdHJpbmcuCisgKiBJdCdzIHBvc3NpYmxlIG5vdCBvbmx5IHRvIGNyZWF0ZSBhbgor
ICogaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIGFuIGVudGlyZSBVbmljb2RlU3RyaW5nLCBi
dXQgYWxzbyB0bworICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25seSBhIHN1YnJh
bmdlIG9mIGEgVW5pY29kZVN0cmluZworICogKGl0ZXJhdG9ycyBvdmVyIGRpZmZlcmVudCBzdWJy
YW5nZXMgb2YgdGhlIHNhbWUgVW5pY29kZVN0cmluZyBkb24ndAorICogY29tcGFyZSBlcXVhbCku
CisgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVy
YXRvcgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBTdHJpbmdD
aGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1Ymxp
YzoKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5n
IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0
IGlzIGNvcGllZC4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyB0aGUgd2hvbGUgc3RyaW5n
LCBhbmQgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGlzIDAuCisgICAqIEBwYXJhbSB0ZXh0U3RyIFRo
ZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSBhbiBpdGVyYXRvcgorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVuaWNvZGVT
dHJpbmcmIHRleHRTdHIpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0
aGUgVW5pY29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBpdGVy
YXRpb24gcmFuZ2UgaXMgdGhlIHdob2xlIHN0cmluZywgYW5kIHRoZSBzdGFydGluZworICAgKiBw
b3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInRleHRQb3MiLiAgSWYgInRleHRQb3MiIGlzIG91dHNp
ZGUgdGhlIHZhbGlkCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMg
b2JqZWN0IGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRTdHIgVGhlIHVuaWNvZGUgc3Ry
aW5nIHVzZWQgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yCisgICAqIEBwYXJhbSB0ZXh0UG9zIFRoZSBz
dGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYgICAg
dGV4dFN0ciwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dFBvcyk7CisK
KyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJl
ZmVycmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlz
IGNvcGllZC4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBiZWdpbnMgd2l0aCB0aGUgY29kZSB1
bml0IHNwZWNpZmllZCBieQorICAgKiAidGV4dEJlZ2luIiBhbmQgZW5kcyB3aXRoIHRoZSBjb2Rl
IHVuaXQgQkVGT1JFIHRoZSBjb2RlIHVuaXQgc3BlY2ZpZWQKKyAgICogYnkgInRleHRFbmQiLiAg
VGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAidGV4dFBvcyIuICBJZgorICAg
KiAidGV4dEJlZ2luIiBhbmQgInRleHRFbmQiIGRvbid0IGZvcm0gYSB2YWxpZCByYW5nZSBvbiAi
dGV4dCIgKGkuZS4sCisgICAqIHRleHRCZWdpbiA+PSB0ZXh0RW5kIG9yIGVpdGhlciBpcyBuZWdh
dGl2ZSBvciBncmVhdGVyIHRoYW4gdGV4dC5zaXplKCkpLAorICAgKiBvciAidGV4dFBvcyIgaXMg
b3V0c2lkZSB0aGUgcmFuZ2UgZGVmaW5lZCBieSAidGV4dEJlZ2luIiBhbmQgInRleHRFbmQiLAor
ICAgKiB0aGUgYmVoYXZpb3Igb2YgdGhpcyBpdGVyYXRvciBpcyB1bmRlZmluZWQuCisgICAqIEBw
YXJhbSB0ZXh0U3RyICAgIFRoZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSB0aGUgU3Ry
aW5nQ2hhcmFjdGVySXRlcmF0b3IKKyAgICogQHBhcmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBv
c2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhl
IGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0UG9z
ICAgIFRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0
cmluZyYgICAgdGV4dFN0ciwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4
dEJlZ2luLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0RW5kLAorICAg
ICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0UG9zKTsKKworICAvKioKKyAgICog
Q29weSBjb25zdHJ1Y3Rvci4gIFRoZSBuZXcgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2Ft
ZSByYW5nZQorICAgKiBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRp
YWwgcG9zaXRpb24gaXMgdGhlCisgICAqIHNhbWUgYXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlv
bi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGluICJ0aGF0IiBpcyBjb3BpZWQuCisg
ICAqIEBwYXJhbSB0aGF0IFRoZSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQK
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihj
b25zdCBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciYgIHRoYXQpOworCisgIC8qKgorICAgKiBEZXN0
cnVjdG9yLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgflN0cmluZ0No
YXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgLyoqCisgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICAq
dGhpcyBpcyBhbHRlcmVkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZQorICAgKiByYW5nZSBvZiB0
aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgcmVmZXJzIHRvIHRoZSBzYW1lCisgICAqIGNo
YXJhY3RlciB3aXRoaW4gdGhhdCBzdHJpbmcgYXMgInRoYXQiIGRvZXMuCisgICAqIEBwYXJhbSB0
aGF0IFRoZSBvYmplY3QgdG8gYmUgY29waWVkLgorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVh
dGVkIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0
ZXJJdGVyYXRvciYKKyAgb3BlcmF0b3I9KGNvbnN0IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJiAg
ICB0aGF0KTsKKworICAvKioKKyAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRl
cmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJl
IHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICogQHBhcmFtIHRoYXQgVGhlIEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICog
QHJldHVybiB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdl
IG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNo
YXJhY3Rlci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAg
ICAgICAgIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBj
b25zdDsKKworICAvKioKKyAgICogUmV0dXJucyBhIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRv
ciByZWZlcnJpbmcgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHJhbmdl
IG9mIHRoZSBzYW1lIHN0cmluZyBhcyB0aGlzIG9uZS4gIFRoZQorICAgKiBjYWxsZXIgbXVzdCBk
ZWxldGUgdGhlIG5ldyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0aGUgbmV3bHkgY2xvbmVkIG9i
amVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIENoYXJhY3Rlckl0
ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0
b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJhbSBuZXdU
ZXh0IFRoZSBzdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKwor
ICAvKioKKyAgICogQ29waWVzIHRoZSBVbmljb2RlU3RyaW5nIHVuZGVyIGl0ZXJhdGlvbiBpbnRv
IHRoZSBVbmljb2RlU3RyaW5nCisgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZlbiBp
ZiB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIGFjcm9zcworICAgKiBvbmx5IGEgcGFydCBvZiB0aGlz
IHN0cmluZywgdGhlIHdob2xlIHN0cmluZyBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSByZXN1bHQg
UmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNv
ZGVTdHJpbmcmIHJlc3VsdCk7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0
aGlzIG9iamVjdCAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBm
b3IgdGhpcyBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBV
Q2xhc3NJRCAgICAgICAgIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCisgIC8qKgor
ICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcyAobm90IHJlYWxseSBwdWJsaWMp
CisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcworICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHN0YXRpYyBVQ2xhc3NJRCAgIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFz
c0lEKHZvaWQpOworCitwcm90ZWN0ZWQ6CisgIC8qKgorICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9y
LCBpdGVyYXRpb24gb3ZlciBlbXB0eSBzdHJpbmcuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogU2V0cyB0aGUg
aXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJh
bSBuZXdUZXh0IFRoZSBzdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbmV3
VGV4dExlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBTdHJpbmcKKyAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVUNoYXIqIG5ld1RleHQsIGludDMyX3QgbmV3
VGV4dExlbmd0aCk7CisKKyAgLyoqCisgICAqIENvcHkgb2YgdGhlIGl0ZXJhdGVkIHN0cmluZyBv
YmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVW5pY29kZVN0cmluZyAgICAg
ICAgICAgIHRleHQ7CisKK307CisKK1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjYXNlbWFwLmggYi9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3VjYXNlbWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM3ZTE2NTg4Njk3ZjFhOTMwMTkxZWUzZGY4MTZj
NjNiN2JkMzhjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNh
c2VtYXAuaApAQCAtMCwwICsxLDQyMyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoK
KyogICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNo
aW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgor
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVjYXNlbWFwLmgKKyog
ICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAg
IGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDA1bWF5MDYKKyogICBjcmVhdGVk
IGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIENhc2UgbWFwcGluZyBzZXJ2aWNlIG9iamVj
dCBhbmQgZnVuY3Rpb25zIHVzaW5nIGl0LgorKi8KKworI2lmbmRlZiBfX1VDQVNFTUFQX0hfXwor
I2RlZmluZSBfX1VDQVNFTUFQX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNp
bmNsdWRlICJ1bmljb2RlL3VzdHJpbmcuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRl
ci5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IFVuaWNvZGUgY2FzZSBtYXBw
aW5nIGZ1bmN0aW9ucyB1c2luZyBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICoKKyAqIFRo
ZSBzZXJ2aWNlIG9iamVjdCB0YWtlcyBjYXJlIG9mIG1lbW9yeSBhbGxvY2F0aW9ucywgZGF0YSBs
b2FkaW5nLCBhbmQgc2V0dXAKKyAqIGZvciB0aGUgYXR0cmlidXRlcywgYXMgdXN1YWwuCisgKgor
ICogQ3VycmVudGx5LCB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBoZXJlIGRvZXMgbm90IG92
ZXJsYXAgd2l0aCB1Y2hhci5oCisgKiBhbmQgdXN0cmluZy5oLCBleGNlcHQgZm9yIHVjYXNlbWFw
X3RvVGl0bGUoKS4KKyAqCisgKiB1Y2FzZW1hcF91dGY4WFlaKCkgZnVuY3Rpb25zIG9wZXJhdGUg
ZGlyZWN0bHkgb24gVVRGLTggc3RyaW5ncy4KKyAqLworCisvKioKKyAqIFVDYXNlTWFwIGlzIGFu
IG9wYXF1ZSBzZXJ2aWNlIG9iamVjdCBmb3IgbmV3ZXIgSUNVIGNhc2UgbWFwcGluZyBmdW5jdGlv
bnMuCisgKiBPbGRlciBmdW5jdGlvbnMgZGlkIG5vdCB1c2UgYSBzZXJ2aWNlIG9iamVjdC4KKyAq
IEBzdGFibGUgSUNVIDMuNAorICovCitzdHJ1Y3QgVUNhc2VNYXA7Cit0eXBlZGVmIHN0cnVjdCBV
Q2FzZU1hcCBVQ2FzZU1hcDsgLyoqPCBDIHR5cGVkZWYgZm9yIHN0cnVjdCBVQ2FzZU1hcC4gQHN0
YWJsZSBJQ1UgMy40ICovCisKKy8qKgorICogT3BlbiBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0
IGZvciBhIGxvY2FsZSBhbmQgYSBzZXQgb2Ygb3B0aW9ucy4KKyAqIFRoZSBsb2NhbGUgSUQgYW5k
IG9wdGlvbnMgYXJlIHByZXByb2Nlc3NlZCBzbyB0aGF0IGZ1bmN0aW9ucyB1c2luZyB0aGUKKyAq
IHNlcnZpY2Ugb2JqZWN0IG5lZWQgbm90IHByb2Nlc3MgdGhlbSBpbiBlYWNoIGNhbGwuCisgKgor
ICogQHBhcmFtIGxvY2FsZSBJQ1UgbG9jYWxlIElELCB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRl
bnQKKyAqICAgICAgICAgICAgICAgdXBwZXItL2xvd2VyLS90aXRsZS1jYXNpbmcgYWNjb3JkaW5n
IHRvIHRoZSBVbmljb2RlIHN0YW5kYXJkLgorICogICAgICAgICAgICAgICBVc3VhbCBzZW1hbnRp
Y3M6ICIiPXJvb3QsIE5VTEw9ZGVmYXVsdCBsb2NhbGUsIGV0Yy4KKyAqIEBwYXJhbSBvcHRpb25z
IE9wdGlvbnMgYml0IHNldCwgdXNlZCBmb3IgY2FzZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFy
aXNvbnMuCisgKiAgICAgICAgICAgICAgICBTYW1lIGZsYWdzIGFzIGZvciB1X2ZvbGRDYXNlKCks
IHVfc3RyRm9sZENhc2UoKSwKKyAqICAgICAgICAgICAgICAgIHVfc3RyQ2FzZUNvbXBhcmUoKSwg
ZXRjLgorICogICAgICAgICAgICAgICAgVXNlIDAgb3IgVV9GT0xEX0NBU0VfREVGQVVMVCBmb3Ig
ZGVmYXVsdCBiZWhhdmlvci4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBw
b2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGlj
aCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgor
ICogQHJldHVybiBQb2ludGVyIHRvIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QsIGlmIHN1Y2Nl
c3NmdWwuCisgKgorICogQHNlZSBVX0ZPTERfQ0FTRV9ERUZBVUxUCisgKiBAc2VlIFVfRk9MRF9D
QVNFX0VYQ0xVREVfU1BFQ0lBTF9JCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQor
ICogQHNlZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5UCisgKiBAc3RhYmxlIElDVSAz
LjQKKyAqLworVV9TVEFCTEUgVUNhc2VNYXAgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX29wZW4oY29u
c3QgY2hhciAqbG9jYWxlLCB1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2Rl
KTsKKworLyoqCisgKiBDbG9zZSBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFt
IGNzbSBPYmplY3QgdG8gYmUgY2xvc2VkLgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RB
QkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9jbG9zZShVQ2FzZU1hcCAqY3NtKTsKKworI2lm
IFVfU0hPV19DUExVU1BMVVNfQVBJCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogXGNs
YXNzIExvY2FsVUNhc2VNYXBQb2ludGVyCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGNsb3Nl
cyBhIFVDYXNlTWFwIHZpYSB1Y2FzZW1hcF9jbG9zZSgpLgorICogRm9yIG1vc3QgbWV0aG9kcyBz
ZWUgdGhlIExvY2FsUG9pbnRlckJhc2UgYmFzZSBjbGFzcy4KKyAqCisgKiBAc2VlIExvY2FsUG9p
bnRlckJhc2UKKyAqIEBzZWUgTG9jYWxQb2ludGVyCisgKiBAc3RhYmxlIElDVSA0LjQKKyAqLwor
VV9ERUZJTkVfTE9DQUxfT1BFTl9QT0lOVEVSKExvY2FsVUNhc2VNYXBQb2ludGVyLCBVQ2FzZU1h
cCwgdWNhc2VtYXBfY2xvc2UpOworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmCisKKy8qKgor
ICogR2V0IHRoZSBsb2NhbGUgSUQgdGhhdCBpcyB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQg
Y2FzZSBtYXBwaW5ncy4KKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisg
KiBAcmV0dXJuIGxvY2FsZSBJRAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGNv
bnN0IGNoYXIgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldExvY2FsZShjb25zdCBVQ2FzZU1hcCAq
Y3NtKTsKKworLyoqCisgKiBHZXQgdGhlIG9wdGlvbnMgYml0IHNldCB0aGF0IGlzIHVzZWQgZm9y
IGNhc2UgZm9sZGluZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICogQHBhcmFtIGNzbSBVQ2Fz
ZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1cm4gb3B0aW9ucyBiaXQgc2V0CisgKiBAc3Rh
YmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgdWludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF9n
ZXRPcHRpb25zKGNvbnN0IFVDYXNlTWFwICpjc20pOworCisvKioKKyAqIFNldCB0aGUgbG9jYWxl
IElEIHRoYXQgaXMgdXNlZCBmb3IgbGFuZ3VhZ2UtZGVwZW5kZW50IGNhc2UgbWFwcGluZ3MuCisg
KgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBsb2Nh
bGUgTG9jYWxlIElELCBzZWUgdWNhc2VtYXBfb3BlbigpLgorICogQHBhcmFtIHBFcnJvckNvZGUg
TXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAg
ICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhl
IGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF9vcGVuCisgKiBAc3RhYmxlIElD
VSAzLjQKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldExvY2FsZShV
Q2FzZU1hcCAqY3NtLCBjb25zdCBjaGFyICpsb2NhbGUsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUp
OworCisvKioKKyAqIFNldCB0aGUgb3B0aW9ucyBiaXQgc2V0IHRoYXQgaXMgdXNlZCBmb3IgY2Fz
ZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKgorICogQHBhcmFtIGNzbSBVQ2Fz
ZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgYml0IHNldCwg
c2VlIHVjYXNlbWFwX29wZW4oKS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxp
ZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3
aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxs
LgorICoKKyAqIEBzZWUgdWNhc2VtYXBfb3BlbgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1Vf
U1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9zZXRPcHRpb25zKFVDYXNlTWFwICpjc20s
IHVpbnQzMl90IG9wdGlvbnMsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIERv
IG5vdCBsb3dlcmNhc2Ugbm9uLWluaXRpYWwgcGFydHMgb2Ygd29yZHMgd2hlbiB0aXRsZWNhc2lu
Zy4KKyAqIE9wdGlvbiBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQSXMgdGhhdCB0YWtlIGFuIG9wdGlv
bnMgYml0IHNldC4KKyAqCisgKiBCeSBkZWZhdWx0LCB0aXRsZWNhc2luZyB3aWxsIHRpdGxlY2Fz
ZSB0aGUgZmlyc3QgY2FzZWQgY2hhcmFjdGVyCisgKiBvZiBhIHdvcmQgYW5kIGxvd2VyY2FzZSBh
bGwgb3RoZXIgY2hhcmFjdGVycy4KKyAqIFdpdGggdGhpcyBvcHRpb24sIHRoZSBvdGhlciBjaGFy
YWN0ZXJzIHdpbGwgbm90IGJlIG1vZGlmaWVkLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0
aW9ucworICogQHNlZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1Rp
dGxlCisgKiBAc2VlIFVuaWNvZGVTdHJpbmc6OnRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAor
ICovCisjZGVmaW5lIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRSAweDEwMAorCisvKioKKyAqIERv
IG5vdCBhZGp1c3QgdGhlIHRpdGxlY2FzaW5nIGluZGV4ZXMgZnJvbSBCcmVha0l0ZXJhdG9yOjpu
ZXh0KCkgaW5kZXhlczsKKyAqIHRpdGxlY2FzZSBleGFjdGx5IHRoZSBjaGFyYWN0ZXJzIGF0IGJy
ZWFrcyBmcm9tIHRoZSBpdGVyYXRvci4KKyAqIE9wdGlvbiBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQ
SXMgdGhhdCB0YWtlIGFuIG9wdGlvbnMgYml0IHNldC4KKyAqCisgKiBCeSBkZWZhdWx0LCB0aXRs
ZWNhc2luZyB3aWxsIHRha2UgZWFjaCBicmVhayBpdGVyYXRvciBpbmRleCwKKyAqIGFkanVzdCBp
dCBieSBsb29raW5nIGZvciB0aGUgbmV4dCBjYXNlZCBjaGFyYWN0ZXIsIGFuZCB0aXRsZWNhc2Ug
dGhhdCBvbmUuCisgKiBPdGhlciBjaGFyYWN0ZXJzIGFyZSBsb3dlcmNhc2VkLgorICoKKyAqIFRo
aXMgZm9sbG93cyBVbmljb2RlIDQgJiA1IHNlY3Rpb24gMy4xMyBEZWZhdWx0IENhc2UgT3BlcmF0
aW9uczoKKyAqCisgKiBSMyAgdG9UaXRsZWNhc2UoWCk6IEZpbmQgdGhlIHdvcmQgYm91bmRhcmll
cyBiYXNlZCBvbiBVbmljb2RlIFN0YW5kYXJkIEFubmV4CisgKiAjMjksICJUZXh0IEJvdW5kYXJp
ZXMuIiBCZXR3ZWVuIGVhY2ggcGFpciBvZiB3b3JkIGJvdW5kYXJpZXMsIGZpbmQgdGhlIGZpcnN0
CisgKiBjYXNlZCBjaGFyYWN0ZXIgRi4gSWYgRiBleGlzdHMsIG1hcCBGIHRvIGRlZmF1bHRfdGl0
bGUoRik7IHRoZW4gbWFwIGVhY2gKKyAqIHN1YnNlcXVlbnQgY2hhcmFjdGVyIEMgdG8gZGVmYXVs
dF9sb3dlcihDKS4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgdWNh
c2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICogQHNlZSBVbmlj
b2RlU3RyaW5nOjp0b1RpdGxlCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICog
QHN0YWJsZSBJQ1UgMy44CisgKi8KKyNkZWZpbmUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNU
TUVOVCAweDIwMAorCisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKKy8qKgorICog
R2V0IHRoZSBicmVhayBpdGVyYXRvciB0aGF0IGlzIHVzZWQgZm9yIHRpdGxlY2FzaW5nLgorICog
RG8gbm90IG1vZGlmeSB0aGUgcmV0dXJuZWQgYnJlYWsgaXRlcmF0b3IuCisgKiBAcGFyYW0gY3Nt
IFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVybiB0aXRsZWNhc2luZyBicmVhayBp
dGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIGNvbnN0IFVCcmVha0l0
ZXJhdG9yICogVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDYXNl
TWFwICpjc20pOworCisvKioKKyAqIFNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2Vk
IGZvciB0aXRsZWNhc2luZy4KKyAqIFRoZSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdCByZWxlYXNl
cyBhIHByZXZpb3VzbHkgc2V0IGJyZWFrIGl0ZXJhdG9yCisgKiBhbmQgImFkb3B0cyIgdGhpcyBu
ZXcgb25lLCB0YWtpbmcgb3duZXJzaGlwIG9mIGl0LgorICogSXQgd2lsbCBiZSByZWxlYXNlZCBp
biBhIHN1YnNlcXVlbnQgY2FsbCB0byB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCkKKyAqIG9y
IHVjYXNlbWFwX2Nsb3NlKCkuCisgKgorICogQnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucyBhcmUg
bm90IHRocmVhZC1zYWZlLiBUaGVyZWZvcmUsIHRpdGxlY2FzaW5nCisgKiBmdW5jdGlvbnMgdXNl
IG5vbi1jb25zdCBVQ2FzZU1hcCBvYmplY3RzLiBJdCBpcyBub3QgcG9zc2libGUgdG8gdGl0bGVj
YXNlCisgKiBzdHJpbmdzIGNvbmN1cnJlbnRseSB1c2luZyB0aGUgc2FtZSBVQ2FzZU1hcC4KKyAq
CisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGl0ZXJU
b0Fkb3B0IEJyZWFrIGl0ZXJhdG9yIHRvIGJlIGFkb3B0ZWQgZm9yIHRpdGxlY2FzaW5nLgorICog
QHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29k
ZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEg
ZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF90
b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc3RhYmxlIElDVSAzLjgK
KyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3Io
VUNhc2VNYXAgKmNzbSwgVUJyZWFrSXRlcmF0b3IgKml0ZXJUb0Fkb3B0LCBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKworLyoqCisgKiBUaXRsZWNhc2UgYSBVVEYtMTYgc3RyaW5nLiBUaGlzIGZ1
bmN0aW9uIGlzIGFsbW9zdCBhIGR1cGxpY2F0ZSBvZiB1X3N0clRvVGl0bGUoKSwKKyAqIGV4Y2Vw
dCB0aGF0IGl0IHRha2VzIHVjYXNlbWFwX3NldE9wdGlvbnMoKSBpbnRvIGFjY291bnQgYW5kIGhh
cyBwZXJmb3JtYW5jZQorICogYWR2YW50YWdlcyBmcm9tIGJlaW5nIGFibGUgdG8gdXNlIGEgVUNh
c2VNYXAgb2JqZWN0IGZvciBtdWx0aXBsZSBjYXNlIG1hcHBpbmcKKyAqIG9wZXJhdGlvbnMsIHNh
dmluZyBzZXR1cCB0aW1lLgorICoKKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBj
b250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRpdGxlY2FzaW5nIHVzZXMgYSBicmVhayBpdGVyYXRvciB0
byBmaW5kIHRoZSBmaXJzdCBjaGFyYWN0ZXJzIG9mIHdvcmRzCisgKiB0aGF0IGFyZSB0byBiZSB0
aXRsZWNhc2VkLiBJdCB0aXRsZWNhc2VzIHRob3NlIGNoYXJhY3RlcnMgYW5kIGxvd2VyY2FzZXMK
KyAqIGFsbCBvdGhlcnMuIChUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHVjYXNlbWFwX3NldE9w
dGlvbnMoKS4pCisgKgorICogTm90ZTogVGhpcyBmdW5jdGlvbiB0YWtlcyBhIG5vbi1jb25zdCBV
Q2FzZU1hcCBwb2ludGVyIGJlY2F1c2UgaXQgd2lsbAorICogb3BlbiBhIGRlZmF1bHQgYnJlYWsg
aXRlcmF0b3IgaWYgbm8gYnJlYWsgaXRlcmF0b3Igd2FzIHNldCB5ZXQsCisgKiBhbmQgZWZmZWN0
aXZlbHkgY2FsbCB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCk7CisgKiBhbHNvIGJlY2F1c2Ug
dGhlIGJyZWFrIGl0ZXJhdG9yIGlzIHN0YXRlZnVsIGFuZCB3aWxsIGJlIG1vZGlmaWVkIGR1cmlu
ZworICogdGhlIGl0ZXJhdGlvbi4KKyAqCisgKiBUaGUgdGl0bGVjYXNlIGJyZWFrIGl0ZXJhdG9y
IGNhbiBiZSBwcm92aWRlZCB0byBjdXN0b21pemUgZm9yIGFyYml0cmFyeQorICogc3R5bGVzLCB1
c2luZyBydWxlcyBhbmQgZGljdGlvbmFyaWVzIGJleW9uZCB0aGUgc3RhbmRhcmQgaXRlcmF0b3Jz
LgorICogVGhlIHN0YW5kYXJkIHRpdGxlY2FzZSBpdGVyYXRvciBmb3IgdGhlIHJvb3QgbG9jYWxl
IGltcGxlbWVudHMgdGhlCisgKiBhbGdvcml0aG0gb2YgVW5pY29kZSBUUiAyMS4KKyAqCisgKiBU
aGlzIGZ1bmN0aW9uIHVzZXMgb25seSB0aGUgc2V0VVRleHQoKSwgZmlyc3QoKSwgbmV4dCgpIGFu
ZCBjbG9zZSgpIG1ldGhvZHMgb2YgdGhlCisgKiBwcm92aWRlZCBicmVhayBpdGVyYXRvci4KKyAq
CisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5h
bC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qg
bm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9i
amVjdC4gVGhpcyBwb2ludGVyIGlzIG5vbi1jb25zdCEKKyAqICAgICAgICAgICAgICAgICAgU2Vl
IHRoZSBub3RlIGFib3ZlIGZvciBkZXRhaWxzLgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZl
ciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRl
ZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAq
ICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZh
aWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51
bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVz
dCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0
aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkg
b2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBz
dHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0
cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0g
cEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVl
LAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUg
YmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSBy
ZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVy
ZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBk
ZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0clRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMu
OAorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdG9UaXRsZShVQ2Fz
ZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICBVQ2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2Fw
YWNpdHksCisgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyICpzcmMsIGludDMyX3Qgc3JjTGVu
Z3RoLAorICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlm
CisKKy8qKgorICogTG93ZXJjYXNlIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgor
ICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICog
VGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisg
KiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBv
dmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3Qu
CisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhl
IHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRo
ZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVu
dHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNp
dHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwg
dGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rp
b24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAg
ICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBw
YXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGgg
VGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBi
ZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBw
b2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNo
IG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisg
KiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwg
LSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBj
YXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVf
c3RyVG9Mb3dlcgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9F
WFBPUlQyCit1Y2FzZW1hcF91dGY4VG9Mb3dlcihjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAg
ICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAg
ICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogVXBwZXJj
YXNlIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICogQ2FzaW5nIGlzIGxvY2Fs
ZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGhlIHJlc3VsdCBtYXkgYmUg
bG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmlu
ZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBw
YXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gZGVzdCAg
ICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5V
TC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2Ug
ZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGlu
IGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhl
IGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAg
ICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVy
biB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3
cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhl
IG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUg
b3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4K
KyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9y
IGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRl
IGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5n
dGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEg
YnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3Jl
YXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9VcHBlcgorICogQHN0
YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91
dGY4VG9VcHBlcihjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICAgY2hh
ciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICBjb25z
dCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVy
cm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04K
KworLyoqCisgKiBUaXRsZWNhc2UgYSBVVEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxl
LWRlcGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaXRsZWNhc2luZyB1c2VzIGEg
YnJlYWsgaXRlcmF0b3IgdG8gZmluZCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiB3b3JkcworICog
dGhhdCBhcmUgdG8gYmUgdGl0bGVjYXNlZC4gSXQgdGl0bGVjYXNlcyB0aG9zZSBjaGFyYWN0ZXJz
IGFuZCBsb3dlcmNhc2VzCisgKiBhbGwgb3RoZXJzLiAoVGhpcyBjYW4gYmUgbW9kaWZpZWQgd2l0
aCB1Y2FzZW1hcF9zZXRPcHRpb25zKCkuKQorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gdGFr
ZXMgYSBub24tY29uc3QgVUNhc2VNYXAgcG9pbnRlciBiZWNhdXNlIGl0IHdpbGwKKyAqIG9wZW4g
YSBkZWZhdWx0IGJyZWFrIGl0ZXJhdG9yIGlmIG5vIGJyZWFrIGl0ZXJhdG9yIHdhcyBzZXQgeWV0
LAorICogYW5kIGVmZmVjdGl2ZWx5IGNhbGwgdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigpOwor
ICogYWxzbyBiZWNhdXNlIHRoZSBicmVhayBpdGVyYXRvciBpcyBzdGF0ZWZ1bCBhbmQgd2lsbCBi
ZSBtb2RpZmllZCBkdXJpbmcKKyAqIHRoZSBpdGVyYXRpb24uCisgKgorICogVGhlIHRpdGxlY2Fz
ZSBicmVhayBpdGVyYXRvciBjYW4gYmUgcHJvdmlkZWQgdG8gY3VzdG9taXplIGZvciBhcmJpdHJh
cnkKKyAqIHN0eWxlcywgdXNpbmcgcnVsZXMgYW5kIGRpY3Rpb25hcmllcyBiZXlvbmQgdGhlIHN0
YW5kYXJkIGl0ZXJhdG9ycy4KKyAqIFRoZSBzdGFuZGFyZCB0aXRsZWNhc2UgaXRlcmF0b3IgZm9y
IHRoZSByb290IGxvY2FsZSBpbXBsZW1lbnRzIHRoZQorICogYWxnb3JpdGhtIG9mIFVuaWNvZGUg
VFIgMjEuCisgKgorICogVGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHNldFVUZXh0KCksIGZp
cnN0KCksIG5leHQoKSBhbmQgY2xvc2UoKSBtZXRob2RzIG9mIHRoZQorICogcHJvdmlkZWQgYnJl
YWsgaXRlcmF0b3IuCisgKgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIg
dGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0
aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNh
c2VNYXAgc2VydmljZSBvYmplY3QuIFRoaXMgcG9pbnRlciBpcyBub24tY29uc3QhCisgKiAgICAg
ICAgICAgICAgICAgIFNlZSB0aGUgbm90ZSBhYm92ZSBmb3IgZGV0YWlscy4KKyAqIEBwYXJhbSBk
ZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwg
YmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBs
YXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmlu
ZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBv
ZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAg
ICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkg
cmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRo
b3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAg
ICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9m
IHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5h
dGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4g
ZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5k
aWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhl
IGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ug
b2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBi
ZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1RpdGxlCisg
KiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19C
UkVBS19BREpVU1RNRU5UCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJf
dCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhUb1RpdGxlKFVDYXNlTWFwICpjc20sCisgICAgICAg
ICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCisKKy8qKgorICog
Q2FzZS1mb2xkcyB0aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmluZy4KKyAqCisgKiBDYXNl
LWZvbGRpbmcgaXMgbG9jYWxlLWluZGVwZW5kZW50IGFuZCBub3QgY29udGV4dC1zZW5zaXRpdmUs
CisgKiBidXQgdGhlcmUgaXMgYW4gb3B0aW9uIGZvciB3aGV0aGVyIHRvIGluY2x1ZGUgb3IgZXhj
bHVkZSBtYXBwaW5ncyBmb3IgZG90dGVkIEkKKyAqIGFuZCBkb3RsZXNzIGkgdGhhdCBhcmUgbWFy
a2VkIHdpdGggJ1QnIGluIENhc2VGb2xkaW5nLnR4dC4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBi
ZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3Ry
aW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICog
QHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0
ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUg
TlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJn
ZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQg
aW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0
aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAg
ICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0
dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0
IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBU
aGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRo
ZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVk
LgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJy
b3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNh
dGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxl
bmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2Yg
YSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBn
cmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJGb2xkQ2FzZQorICog
QHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25zCisgKiBAc2VlIFVfRk9MRF9DQVNFX0RFRkFVTFQKKyAq
IEBzZWUgVV9GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKKyAqIEBzdGFibGUgSUNVIDMuOAor
ICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOEZvbGRDYXNlKGNv
bnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50
MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3Jj
LCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3VjaHJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmQ1YTk5MGY3YjdlZDNkNWJhY2YyZGE4NDcxZWY4ZmY5NDIyZjk5YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0ZXIuaApAQCAtMCwwICsxLDM4MSBA
QAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJu
YXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBB
bGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBVQ0hSSVRF
Ul9ICisjZGVmaW5lIFVDSFJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisj
aW5jbHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgorCisvKioKKyAqIFxmaWxlIAorICogXGJyaWVm
IEMrKyBBUEk6IFVDaGFyIENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVTUEFDRV9C
RUdJTgorCisvKioKKyAqIEEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ2hhcmFjdGVySXRlcmF0b3Ig
dGhhdCBpdGVyYXRlcyBvdmVyIHRoZQorICogY2hhcmFjdGVycyAoY29kZSB1bml0cyBvciBjb2Rl
IHBvaW50cykgaW4gYSBVQ2hhciBhcnJheS4KKyAqIEl0J3MgcG9zc2libGUgbm90IG9ubHkgdG8g
Y3JlYXRlIGFuCisgKiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgYW4gZW50aXJlIFVDaGFy
IGFycmF5LCBidXQgYWxzbyB0bworICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25s
eSBhIHN1YnJhbmdlIG9mIGEgVUNoYXIgYXJyYXkKKyAqIChpdGVyYXRvcnMgb3ZlciBkaWZmZXJl
bnQgc3VicmFuZ2VzIG9mIHRoZSBzYW1lIFVDaGFyIGFycmF5IGRvbid0CisgKiBjb21wYXJlIGVx
dWFsKS4KKyAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzZWUgRm9yd2FyZENoYXJhY3Rl
ckl0ZXJhdG9yCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIFVD
aGFyQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGlj
OgorICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJl
ZmVycmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRv
IDxjb2RlPmxlbmd0aC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBh
ZG9wdGVkICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBA
cGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIgYXJyYXkgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBA
cGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4
dFB0ciwgaW50MzJfdCBsZW5ndGgpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Ig
b3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUg
aXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNvZGU+bGVuZ3RoLTE8L2NvZGU+LgorICAgKiB0ZXh0
IGlzIG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwg
bm90IGRlbGV0ZSBpdCkuCisgICAqIFRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVj
aWZpZWQgYnkgInBvc2l0aW9uIi4gSWYgInBvc2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAor
ICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRl
ZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRk
IG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQor
ICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRp
b24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9y
KGNvbnN0IFVDaGFyKiB0ZXh0UHRyLCBpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJh
dG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICog
VGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmVuZC0xPC9jb2RlPi4KKyAgICogdGV4
dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxs
IG5vdCBkZWxldGUgaXQpLgorICAgKiBUaGUgc3RhcnRpbmcKKyAgICogcG9zaXRpb24gaXMgc3Bl
Y2lmaWVkIGJ5ICJwb3NpdGlvbiIuIElmIGJlZ2luIGFuZCBlbmQgZG8gbm90CisgICAqIGZvcm0g
YSB2YWxpZCBpdGVyYXRpb24gcmFuZ2Ugb3IgInBvc2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxp
ZAorICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1
bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVy
YXRlZCBvdmVyCisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIgYXJy
YXkKKyAgICogQHBhcmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBvc2l0aW9uIG9mIHRoZSBpdGVy
YXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiB0
aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSBwb3NpdGlvbiAgICBUaGUgc3RhcnRpbmcg
cG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVu
Z3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGV4dEJlZ2luLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGV4dEVuZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogQ29weSBjb25zdHJ1Y3Rvci4g
IFRoZSBuZXcgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSByYW5nZQorICAgKiBvZiB0
aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRpYWwgcG9zaXRpb24gaXMgdGhl
CisgICAqIHNhbWUgYXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICogQHBhcmFtIHRo
YXQgVGhlIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhckNoYXJh
Y3Rlckl0ZXJhdG9yJiAgdGhhdCk7CisKKyAgLyoqCisgICAqIERlc3RydWN0b3IuCisgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB+VUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigp
OworCisgIC8qKgorICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgKnRoaXMgaXMgYWx0ZXJlZCB0
byBpdGVyYXRlIG92ZXIgdGhlIHNhbmUKKyAgICogcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFz
ICJ0aGF0IiwgYW5kIHJlZmVycyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgd2l0aGluIHRo
YXQgc3RyaW5nIGFzICJ0aGF0IiBkb2VzLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgb2JqZWN0IHRv
IGJlIGNvcGllZAorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdAorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImCisgIG9wZXJh
dG9yPShjb25zdCBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yJiAgICB0aGF0KTsKKworICAvKioKKyAg
ICogUmV0dXJucyB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJh
bmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1l
IGNoYXJhY3Rlci4KKyAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRv
ciB1c2VkIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgKiBAcmV0dXJuIHRydWUgaWYg
dGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNh
bWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgICAgb3BlcmF0b3I9
PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0OworCisgIC8qKgor
ICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgaXRlcmF0b3IuCisgICAqIEByZXR1
cm4gdGhlIGhhc2ggY29kZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFs
IGludDMyX3QgICAgICAgICBoYXNoQ29kZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogUmV0
dXJucyBhIG5ldyBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgc2FtZQor
ICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzIHRo
aXMgb25lLiAgVGhlCisgICAqIGNhbGxlciBtdXN0IGRlbGV0ZSB0aGUgbmV3IGl0ZXJhdG9yLgor
ICAgKiBAcmV0dXJuIHRoZSBDaGFyYWN0ZXJJdGVyYXRvciBuZXdseSBjcmVhdGVkCisgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUo
dm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRv
IHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJl
dHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4g
aXRlcmF0aW9uIHdpdGggbmV4dCgpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQg
aW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2
aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3Qodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0
ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1vdmVzIHRoZSBwb3Np
dGlvbgorICAgKiB0byB0aGUgc2Vjb25kIGNvZGUgdW5pdC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2
ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dFBv
c3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRp
b24gcmFuZ2UKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAg
ICAgICAgZmlyc3RQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRv
ciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9u
IHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwKKyAgICogVGhpcyBjYW4gYmUgdXNl
ZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzIoKS4KKyAgICogTm90ZSB0aGF0IGFu
IGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKSwgYmVnaW5uaW5nIHdpdGgsCisgICAqIGUu
Zy4sIHNldFRvU3RhcnQoKSBvciBmaXJzdFBvc3RJbmMoKSwgaXMgbW9yZSBlZmZpY2llbnQuCisg
ICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZQor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJz
dDMyKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0
aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5z
IHRoYXQgY29kZSBwb2ludCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgKiB0byB0aGUgc2Vj
b25kIGNvZGUgcG9pbnQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisg
ICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICogQHJl
dHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyUG9z
dEluYyh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8g
dGhlIGxhc3QgY29kZSB1bml0IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1
cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0
ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkuCisgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSB1bml0
IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
dmlydHVhbCBVQ2hhciAgICAgICAgIGxhc3Qodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0
ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2Fu
IGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMzMigpLgorICAgKiBA
cmV0dXJuIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMyKHZv
aWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgInBv
c2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhl
IGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAqIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisg
ICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LXN0b3JhZ2Ug
b2JqZWN0CisgICAqIEByZXR1cm4gdGhlIGNvZGUgdW5pdAorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBzZXRJbmRleChpbnQzMl90IHBvc2l0aW9u
KTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lu
bmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgKiB0aGF0IGNvbnRhaW5zIHRoZSAicG9zaXRpb24i
LXRoIGNvZGUgdW5pdAorICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0
b3IgcmVmZXJzIHRvLCBhbmQKKyAgICogcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisgICAqIFRo
ZSBjdXJyZW50IHBvc2l0aW9uIGlzIGFkanVzdGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNv
ZGUgcG9pbnQKKyAgICogKGl0cyBmaXJzdCBjb2RlIHVuaXQpLgorICAgKiBAcGFyYW0gcG9zaXRp
b24gdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgKiBAcmV0
dXJuIHRoZSBjb2RlIHVuaXQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFs
IFVDaGFyMzIgICAgICAgc2V0SW5kZXgzMihpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAg
ICogUmV0dXJucyB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRv
LgorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZl
cnMgdG8uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAg
ICAgIGN1cnJlbnQodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgdGhlIGNvZGUg
cG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEByZXR1cm4gdGhl
IGNvZGUgcG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGN1cnJlbnQzMih2b2lk
KSBjb25zdDsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5kIHJldHVy
bnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgdW5p
dCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0KHZvaWQpOworCisgIC8qKgorICAgKiBHZXRzIHRo
ZSBjdXJyZW50IGNvZGUgdW5pdCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4
dCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiAodG93YXJkIGVu
ZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1
cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHRQ
b3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBv
aW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5k
IHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29k
ZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIE5vdGUgdGhhdCBpdGVyYXRp
b24gd2l0aCAicHJlLWluY3JlbWVudCIgc2VtYW50aWNzIGlzIGxlc3MKKyAgICogZWZmaWNpZW50
IHRoYW4gaXRlcmF0aW9uIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1hbnRpY3MKKyAgICogdGhh
dCBpcyBwcm92aWRlZCBieSBuZXh0MzJQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIG5leHQg
Y29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzIodm9pZCk7CisKKyAgLyoqCisg
ICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSBwb2ludCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNl
cyB0byB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAg
ICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgKiBubyBtb3JlIGNvZGUg
cG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50
IHBvaW50LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAg
ICAgICBuZXh0MzJQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlm
IHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYXQgb3Ig
YWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICog
VGhpcyBpcyB1c2VkIHdpdGggbmV4dFBvc3RJbmMoKSBvciBuZXh0MzJQb3N0SW5jKCkgaW4gZm9y
d2FyZAorICAgKiBpdGVyYXRpb24uCisgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5v
IG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBhdCBvciBhZnRlciB0aGUgY3Vy
cmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc05leHQoKTsKKworICAvKioKKyAg
ICogQWR2YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJh
bmdlICh0b3dhcmQKKyAgICogc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVu
aXQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0
dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0
ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVD
aGFyICAgICAgICAgcHJldmlvdXModm9pZCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRo
ZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAg
KiBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBh
cmUgbm8gbW9yZQorICAgKiBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAg
ICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBw
cmV2aW91czMyKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFy
ZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYmVmb3JlIHRoZSBjdXJy
ZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIFRoaXMgaXMgdXNlZCB3
aXRoIHByZXZpb3VzKCkgb3IgcHJldmlvdXMzMigpIGluIGJhY2t3YXJkCisgICAqIGl0ZXJhdGlv
bi4KKyAgICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9y
IGNvZGUgcG9pbnRzCisgICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJv
b2wgICAgICAgIGhhc1ByZXZpb3VzKCk7CisKKyAgLyoqCisgICAqIE1vdmVzIHRoZSBjdXJyZW50
IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAqIGl0ZXJh
dGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgor
ICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSB1bml0cyBm
b3J3YXJkCisgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdh
dGl2ZSBkZWx0YS4KKyAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBv
cmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICogYSBuZWdhdGl2ZSBk
ZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRp
b24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlv
bgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1v
dmUoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pOworCisgIC8qKgorICAgKiBNb3ZlcyB0
aGUgY3VycmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQor
ICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9u
IGl0c2VsZi4KKyAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNv
ZGUgcG9pbnRzIGZvcndhcmQKKyAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0
aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJl
bGF0aXZlIHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgKiBh
IG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdp
biBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICogQHJldHVybiB0aGUg
bmV3IHBvc2l0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBpbnQz
Ml90ICAgICAgbW92ZTMyKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKTsKKworICAvKioK
KyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIGEgbmV3IHJhbmdlIG9mIHRl
eHQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVUNo
YXIqIG5ld1RleHQsIGludDMyX3QgbmV3VGV4dExlbmd0aCk7CisKKyAgLyoqCisgICAqIENvcGll
cyB0aGUgVUNoYXIgYXJyYXkgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcK
KyAgICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICBFdmVuIGlmIHRoaXMgaXRlcmF0b3IgaXRl
cmF0ZXMgYWNyb3NzCisgICAqIG9ubHkgYSBwYXJ0IG9mIHRoaXMgc3RyaW5nLCB0aGUgd2hvbGUg
c3RyaW5nIGlzIGNvcGllZC4KKyAgICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2Yg
dGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0cmluZyYgcmVzdWx0KTsK
KworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MgKG5vdCByZWFs
bHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MKKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBzdGF0aWMgVUNsYXNzSUQgICAgICAgICBVX0VYUE9S
VDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3Mg
SUQgZm9yIHRoaXMgb2JqZWN0IChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNs
YXNzIElEIGZvciB0aGlzIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2
aXJ0dWFsIFVDbGFzc0lEICAgICAgICBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKwor
cHJvdGVjdGVkOgorICAvKioKKyAgICogUHJvdGVjdGVkIGNvbnN0cnVjdG9yCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigpOworICAvKioKKyAg
ICogUHJvdGVjdGVkIG1lbWJlciB0ZXh0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
Y29uc3QgVUNoYXIqICAgICAgICAgICAgdGV4dDsKKworfTsKKworVV9OQU1FU1BBQ0VfRU5ECisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaCBiL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWU0NjYzMGQ1Mzk4ZDgyNzM4
ZDFkNjFmZmM0ZDJjOTE0ZThjNjhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3Uv
dW5pY29kZS91ZGF0YS5oCkBAIC0wLDAgKzEsNDMwIEBACisvKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5l
c3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVkYXRhLmgK
KyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQor
KiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0MjUKKyogICBjcmVh
dGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBfX1VEQVRBX0hfXworI2Rl
ZmluZSBfX1VEQVRBX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRl
ICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCitVX0NERUNMX0JFR0lOCisKKy8qKgorICogXGZp
bGUKKyAqIFxicmllZiBDIEFQSTogRGF0YSBsb2FkaW5nIGludGVyZmFjZQorICoKKyAqIDxoMj5J
bmZvcm1hdGlvbiBhYm91dCBkYXRhIGxvYWRpbmcgaW50ZXJmYWNlPC9oMj4KKyAqCisgKiBUaGlz
IEFQSSBpcyB1c2VkIHRvIGZpbmQgYW5kIGVmZmljaWVudGx5IGxvYWQgZGF0YSBmb3IgSUNVIGFu
ZCBhcHBsaWNhdGlvbnMKKyAqIHVzaW5nIElDVS4gSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50
ZXJmYWNlIHRoYXQgc3BlY2lmaWVzIGEgZGF0YSB0eXBlIGFuZAorICogbmFtZSB0byBmaW5kIGFu
ZCBsb2FkIHRoZSBkYXRhLiBOb3JtYWxseSB0aGlzIEFQSSBpcyB1c2VkIGJ5IG90aGVyIElDVSBB
UElzCisgKiB0byBsb2FkIHJlcXVpcmVkIGRhdGEgb3V0IG9mIHRoZSBJQ1UgZGF0YSBsaWJyYXJ5
LCBidXQgaXQgY2FuIGJlIHVzZWQgdG8KKyAqIGxvYWQgZGF0YSBvdXQgb2Ygb3RoZXIgcGxhY2Vz
LgorICoKKyAqIFNlZSB0aGUgVXNlciBHdWlkZSBEYXRhIE1hbmFnZW1lbnQgY2hhcHRlci4KKyAq
LworIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisvKioKKyAqIENoYXJhY3RlciB1c2Vk
IHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAorICogQGludGVybmFs
IElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SICctJworCisvKioKKyAqIFN0
cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAorICog
QGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SX1NUUklORyAi
LSIKKworLyoqCisgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYXJ0cyBvZiBlbnRyeSBu
YW1lcworICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfRU5UUllfU0VQ
X0NIQVIgJy8nCisKKy8qKgorICogU3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgcGFydHMgb2YgZW50
cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX0VOVFJZ
X1NFUF9TVFJJTkcgIi8iCisKKy8qKgorICogQWxpYXMgZm9yIHN0YW5kYXJkIElDVSBkYXRhIAor
ICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX0lDVURBVEFfQUxJQVMgIklDVURB
VEEiCisKKyNlbmRpZiAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKy8qKgorICogVURhdGFJ
bmZvIGNvbnRhaW5zIHRoZSBwcm9wZXJ0aWVzIGFib3V0IHRoZSByZXF1ZXN0ZWQgZGF0YS4KKyAq
IFRoaXMgaXMgbWV0YSBkYXRhLgorICoKKyAqIDxwPlRoaXMgc3RydWN0dXJlIG1heSBncm93IGlu
IHRoZSBmdXR1cmUsIGluZGljYXRlZCBieSB0aGUKKyAqIDxjb2RlPnNpemU8L2NvZGU+IGZpZWxk
LjwvcD4KKyAqCisgKiA8cD5JQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5k
IHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogVGhlIFVEYXRhSW5mbyBzdHJ1Y3QgYmVnaW5zIDQg
Ynl0ZXMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIHRoZSBkYXRhIGl0ZW0sCisgKiBzbyBpdCBpcyA0LWFs
aWduZWQuCisgKgorICogPHA+VGhlIHBsYXRmb3JtIGRhdGEgcHJvcGVydHkgZmllbGRzIGhlbHAg
ZGV0ZXJtaW5lIGlmIGEgZGF0YQorICogZmlsZSBjYW4gYmUgZWZmaWNpZW50bHkgdXNlZCBvbiBh
IGdpdmVuIG1hY2hpbmUuCisgKiBUaGUgcGFydGljdWxhciBmaWVsZHMgYXJlIG9mIGltcG9ydGFu
Y2Ugb25seSBpZiB0aGUgZGF0YQorICogaXMgYWZmZWN0ZWQgYnkgdGhlIHByb3BlcnRpZXMgLSBp
ZiB0aGVyZSBpcyBpbnRlZ2VyIGRhdGEKKyAqIHdpdGggd29yZCBzaXplcyA+IDEgYnl0ZSwgY2hh
ciogdGV4dCwgb3IgVUNoYXIqIHRleHQuPC9wPgorICoKKyAqIDxwPlRoZSBpbXBsZW1lbnRhdGlv
biBmb3IgdGhlIDxjb2RlPnVkYXRhX29wZW5bQ2hvaWNlXSgpPC9jb2RlPgorICogZnVuY3Rpb25z
IG1heSByZWplY3QgZGF0YSBiYXNlZCBvbiB0aGUgdmFsdWUgaW4gPGNvZGU+aXNCaWdFbmRpYW48
L2NvZGU+LgorICogTm8gb3RoZXIgZmllbGQgaXMgdXNlZCBieSB0aGUgPGNvZGU+dWRhdGE8L2Nv
ZGU+IEFQSSBpbXBsZW1lbnRhdGlvbi48L3A+CisgKgorICogPHA+VGhlIDxjb2RlPmRhdGFGb3Jt
YXQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIGlkZW50aWZ5CisgKiB0aGUga2luZCBvZiBkYXRhLCBl
LmcuIGEgY29udmVydGVyIHRhYmxlLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+Zm9ybWF0VmVy
c2lvbjwvY29kZT4gZmllbGQgc2hvdWxkIGJlIHVzZWQgdG8KKyAqIG1ha2Ugc3VyZSB0aGF0IHRo
ZSBmb3JtYXQgY2FuIGJlIGludGVycHJldGVkLgorICogSXQgbWF5IGJlIGEgZ29vZCBpZGVhIHRv
IGNoZWNrIG9ubHkgZm9yIHRoZSBvbmUgb3IgdHdvIGhpZ2hlc3QKKyAqIG9mIHRoZSB2ZXJzaW9u
IGVsZW1lbnRzIHRvIGFsbG93IHRoZSBkYXRhIG1lbW9yeSB0bworICogZ2V0IG1vcmUgb3Igc29t
ZXdoYXQgcmVhcnJhbmdlZCBjb250ZW50cywgZm9yIGFzIGxvbmcKKyAqIGFzIHRoZSB1c2luZyBj
b2RlIGNhbiBzdGlsbCBpbnRlcnByZXQgdGhlIG9sZGVyIGNvbnRlbnRzLjwvcD4KKyAqCisgKiA8
cD5UaGUgPGNvZGU+ZGF0YVZlcnNpb248L2NvZGU+IGZpZWxkIGlzIGludGVuZGVkIHRvIGJlIGEK
KyAqIGNvbW1vbiBwbGFjZSB0byBzdG9yZSB0aGUgc291cmNlIHZlcnNpb24gb2YgdGhlIGRhdGE7
CisgKiBmb3IgZGF0YSBmcm9tIHRoZSBVbmljb2RlIGNoYXJhY3RlciBkYXRhYmFzZSwgdGhpcyBj
b3VsZAorICogcmVmbGVjdCB0aGUgVW5pY29kZSB2ZXJzaW9uLjwvcD4KKyAqCisgKiBAc3RhYmxl
IElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIC8qKiBzaXplb2YoVURhdGFJbmZv
KQorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50MTZfdCBzaXplOworCisgICAg
LyoqIHVudXNlZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWlu
dDE2X3QgcmVzZXJ2ZWRXb3JkOworCisgICAgLyogcGxhdGZvcm0gZGF0YSBwcm9wZXJ0aWVzICov
CisgICAgLyoqIDAgZm9yIGxpdHRsZS1lbmRpYW4gbWFjaGluZSwgMSBmb3IgYmlnLWVuZGlhbgor
ICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50OF90IGlzQmlnRW5kaWFuOworCisg
ICAgLyoqIHNlZSBVX0NIQVJTRVRfRkFNSUxZIHZhbHVlcyBpbiB1dHlwZXMuaCAKKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGNoYXJzZXRGYW1pbHk7CisKKyAgICAvKiog
c2l6ZW9mKFVDaGFyKSwgb25lIG9mIHsgMSwgMiwgNCB9IAorICAgICAqICBAc3RhYmxlIElDVSAy
LjAqLworICAgIHVpbnQ4X3Qgc2l6ZW9mVUNoYXI7CisKKyAgICAvKiogdW51c2VkLCBzZXQgdG8g
MCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHJlc2VydmVkQnl0ZTsK
KworICAgIC8qKiBkYXRhIGZvcm1hdCBpZGVudGlmaWVyIAorICAgICAqICBAc3RhYmxlIElDVSAy
LjAqLworICAgIHVpbnQ4X3QgZGF0YUZvcm1hdFs0XTsKKworICAgIC8qKiB2ZXJzaW9uczogWzBd
IG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAqICBAc3RhYmxlIElD
VSAyLjAqLworICAgIHVpbnQ4X3QgZm9ybWF0VmVyc2lvbls0XTsKKworICAgIC8qKiB2ZXJzaW9u
czogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAqICBAc3Rh
YmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YVZlcnNpb25bNF07Cit9IFVEYXRhSW5mbzsK
KworLyogQVBJIGZvciByZWFkaW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKioKKyAqIEZvcndhcmQgZGVjbGFyYXRpb24g
b2YgdGhlIGRhdGEgbWVtb3J5IHR5cGUuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRl
ZiBzdHJ1Y3QgVURhdGFNZW1vcnkgVURhdGFNZW1vcnk7CisKKy8qKgorICogQ2FsbGJhY2sgZnVu
Y3Rpb24gZm9yIHVkYXRhX29wZW5DaG9pY2UoKS4KKyAqIEBwYXJhbSBjb250ZXh0IHBhcmFtZXRl
ciBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICogQHBhcmFt
IHR5cGUgVGhlIHR5cGUgb2YgdGhlIGRhdGEgYXMgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3Bl
bkNob2ljZSgpPC9jb2RlPi4KKyAqICAgICAgICAgICAgIEl0IG1heSBiZSA8Y29kZT5OVUxMPC9j
b2RlPi4KKyAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBpbnRv
IDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiBAcGFyYW0gcEluZm8gQSBwb2lu
dGVyIHRvIHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+IHN0cnVjdHVyZQorICogICAgICAgICAg
ICAgIG9mIGRhdGEgdGhhdCBoYXMgYmVlbiBsb2FkZWQgYW5kIHdpbGwgYmUgcmV0dXJuZWQKKyAq
ICAgICAgICAgICAgICBieSA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+IGlmIHRoaXMg
ZnVuY3Rpb24KKyAqICAgICAgICAgICAgICByZXR1cm5zIDxjb2RlPlRSVUU8L2NvZGU+LgorICog
QHJldHVybiBUUlVFIGlmIHRoZSBjdXJyZW50IGRhdGEgbWVtb3J5IGlzIGFjY2VwdGFibGUKKyAq
IEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIFVCb29sIFVfQ0FMTENPTlYKK1VEYXRhTWVt
b3J5SXNBY2NlcHRhYmxlKHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgVURhdGFJbmZvICpwSW5mbyk7CisKKworLyoqCisgKiBDb252ZW5pZW5jZSBmdW5j
dGlvbi4KKyAqIFRoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgYXMgPGNvZGU+dWRhdGFfb3Bl
bkNob2ljZTwvY29kZT4KKyAqIGV4Y2VwdCB0aGF0IGFueSBkYXRhIHRoYXQgbWF0Y2hlcyB0aGUg
dHlwZSBhbmQgbmFtZQorICogaXMgYXNzdW1lZCB0byBiZSBhY2NlcHRhYmxlLgorICogQHBhcmFt
IHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFzZW5hbWUgZm9yIHRo
ZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0u
CisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRhdGEuCisgKiBAcGFy
YW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxv
YWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBidW5kbGVzIGFyZSBs
b2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVyc2lvbiB0YWJsZXMg
d2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwv
Y29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0
aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIEFuIElDVSBVRXJyb3JD
b2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcmV0
dXJuIEEgcG9pbnRlciAoaGFuZGxlKSB0byBhIGRhdGEgbWVtb3J5IG9iamVjdCwgb3IgPGNvZGU+
TlVMTDwvY29kZT4KKyAqICAgICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzLiBDYWxsIDxjb2RlPnVk
YXRhX2dldE1lbW9yeSgpPC9jb2RlPgorICogICAgICAgICB0byBnZXQgYSBwb2ludGVyIHRvIHRo
ZSBhY3R1YWwgZGF0YS4KKyAqCisgKiBAc2VlIHVkYXRhX29wZW5DaG9pY2UKKyAqIEBzdGFibGUg
SUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRhdGFfb3Bl
bihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAor
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBEYXRhIGxvYWRp
bmcgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZmluZCBhbmQgbG9hZCBl
ZmZpY2llbnRseSBkYXRhIGZvcgorICogSUNVIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgSUNVLgor
ICogSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgYWxsb3dzIHRvIHNwZWNp
ZnkgYSBkYXRhCisgKiB0eXBlIGFuZCBuYW1lIHRvIGZpbmQgYW5kIGxvYWQgdGhlIGRhdGEuCisg
KgorICogPHA+VGhlIGltcGxlbWVudGF0aW9uIGRlcGVuZHMgb24gcGxhdGZvcm0gcHJvcGVydGll
cyBhbmQgdXNlciBwcmVmZXJlbmNlcworICogYW5kIG1heSBpbnZvbHZlIGxvYWRpbmcgc2hhcmVk
IGxpYnJhcmllcyAoRExMcyksIG1hcHBpbmcKKyAqIGZpbGVzIGludG8gbWVtb3J5LCBvciBmb3Bl
bigpL2ZyZWFkKCkgZmlsZXMuCisgKiBJdCBtYXkgYWxzbyBpbnZvbHZlIHVzaW5nIHN0YXRpYyBt
ZW1vcnkgb3IgZGF0YWJhc2UgcXVlcmllcyBldGMuCisgKiBTZXZlcmFsIG9yIGFsbCBkYXRhIGl0
ZW1zIG1heSBiZSBjb21iaW5lZCBpbnRvIG9uZSBlbnRpdHkKKyAqIChETEwsIG1lbW9yeS1tYXBw
YWJsZSBmaWxlKS48L3A+CisgKgorICogPHA+VGhlIGRhdGEgaXMgYWx3YXlzIHByZWNlZGVkIGJ5
IGEgaGVhZGVyIHRoYXQgaW5jbHVkZXMKKyAqIGEgPGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1
Y3R1cmUuCisgKiBUaGUgY2FsbGVyJ3MgPGNvZGU+aXNBY2NlcHRhYmxlKCk8L2NvZGU+IGZ1bmN0
aW9uIGlzIGNhbGxlZCB0byBtYWtlCisgKiBzdXJlIHRoYXQgdGhlIGRhdGEgaXMgdXNlZnVsLiBJ
dCBtYXkgYmUgY2FsbGVkIHNldmVyYWwgdGltZXMgaWYgaXQKKyAqIHJlamVjdHMgdGhlIGRhdGEg
YW5kIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgbG9jYXRpb24gd2l0aCBkYXRhCisgKiBtYXRjaGlu
ZyB0aGUgdHlwZSBhbmQgbmFtZS48L3A+CisgKgorICogPHA+SWYgPGNvZGU+cGF0aD09TlVMTDwv
Y29kZT4sIHRoZW4gSUNVIGRhdGEgaXMgbG9hZGVkLgorICogT3RoZXJ3aXNlLCBpdCBpcyBzZXBh
cmF0ZWQgaW50byBhIGJhc2VuYW1lIGFuZCBhIGJhc2VuYW1lLWxlc3MgZGlyZWN0b3J5IHN0cmlu
Zy4KKyAqIFRoZSBiYXNlbmFtZSBpcyB1c2VkIGFzIHRoZSBkYXRhIHBhY2thZ2UgbmFtZSwgYW5k
IHRoZSBkaXJlY3RvcnkgaXMKKyAqIGxvZ2ljYWxseSBwcmVwZW5kZWQgdG8gdGhlIElDVSBkYXRh
IGRpcmVjdG9yeSBzdHJpbmcuPC9wPgorICoKKyAqIDxwPkZvciBkZXRhaWxzIGFib3V0IElDVSBk
YXRhIGxvYWRpbmcgc2VlIHRoZSBVc2VyIEd1aWRlCisgKiBEYXRhIE1hbmFnZW1lbnQgY2hhcHRl
ci4gKGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL2ljdWRhdGEuaHRtbCk8L3A+Cisg
KgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFz
ZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUg
ZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRh
dGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBk
YXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBi
dW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVy
c2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUg
PGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0
IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBpc0FjY2VwdGFibGUg
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRoYXQgbG9hZGVkIGRhdGEKKyAqICAg
ICAgICAgICAgICAgICAgICAgaXMgdXNlZnVsIGZvciB0aGUgY2xpZW50IGNvZGUuIElmIGl0IHJl
dHVybnMgRkFMU0UKKyAqICAgICAgICAgICAgICAgICAgICAgZm9yIGFsbCBkYXRhIGl0ZW1zLCB0
aGVuIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4KKyAqICAgICAgICAgICAgICAgICAg
ICAgd2lsbCByZXR1cm4gd2l0aCBhbiBlcnJvci4KKyAqIEBwYXJhbSBjb250ZXh0IEFyYml0cmFy
eSBwYXJhbWV0ZXIgdG8gYmUgcGFzc2VkIGludG8gaXNBY2NlcHRhYmxlLgorICogQHBhcmFtIHBF
cnJvckNvZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJdCBtdXN0IG5vdCBiZSA8Y29k
ZT5OVUxMPC9jb2RlPi4KKyAqIEByZXR1cm4gQSBwb2ludGVyIChoYW5kbGUpIHRvIGEgZGF0YSBt
ZW1vcnkgb2JqZWN0LCBvciA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAgICBpZiBhbiBlcnJv
ciBvY2N1cnMuIENhbGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+CisgKiAgICAgICAg
IHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhLgorICogQHN0YWJsZSBJQ1UgMi4w
CisgKi8KK1VfU1RBQkxFIFVEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1ZGF0YV9vcGVuQ2hvaWNl
KGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisg
ICAgICAgICAgICAgICAgIFVEYXRhTWVtb3J5SXNBY2NlcHRhYmxlICppc0FjY2VwdGFibGUsIHZv
aWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwor
CisvKioKKyAqIENsb3NlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoaXMgZnVuY3Rpb24gbXVzdCBi
ZSBjYWxsZWQgdG8gYWxsb3cgdGhlIHN5c3RlbSB0bworICogcmVsZWFzZSByZXNvdXJjZXMgYXNz
b2NpYXRlZCB3aXRoIHRoaXMgZGF0YSBtZW1vcnkuCisgKiBAcGFyYW0gcERhdGEgVGhlIHBvaW50
ZXIgdG8gZGF0YSBtZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFC
TEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2Nsb3NlKFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKyNp
ZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFxj
bGFzcyBMb2NhbFVEYXRhTWVtb3J5UG9pbnRlcgorICogIlNtYXJ0IHBvaW50ZXIiIGNsYXNzLCBj
bG9zZXMgYSBVRGF0YU1lbW9yeSB2aWEgdWRhdGFfY2xvc2UoKS4KKyAqIEZvciBtb3N0IG1ldGhv
ZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKgorICogQHNlZSBMb2Nh
bFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0YWJsZSBJQ1UgNC40Cisg
Ki8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVEYXRhTWVtb3J5UG9pbnRlciwg
VURhdGFNZW1vcnksIHVkYXRhX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZgor
CisvKioKKyAqIEdldCB0aGUgcG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEgaW5zaWRlIHRoZSBk
YXRhIG1lbW9yeS4KKyAqIFRoZSBkYXRhIGlzIHJlYWQtb25seS4KKyAqCisgKiBJQ1UgZGF0YSBt
dXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICoK
KyAqIEBwYXJhbSBwRGF0YSBUaGUgcG9pbnRlciB0byBkYXRhIG1lbW9yeSBvYmplY3QKKyAqIEBz
dGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBjb25zdCB2b2lkICogVV9FWFBPUlQyCit1ZGF0
YV9nZXRNZW1vcnkoVURhdGFNZW1vcnkgKnBEYXRhKTsKKworLyoqCisgKiBHZXQgdGhlIGluZm9y
bWF0aW9uIGZyb20gdGhlIGRhdGEgbWVtb3J5IGhlYWRlci4KKyAqIFRoaXMgYWxsb3dzIHRvIGdl
dCBhY2Nlc3MgdG8gdGhlIGhlYWRlciBjb250YWluaW5nCisgKiBwbGF0Zm9ybSBkYXRhIHByb3Bl
cnRpZXMgZXRjLiB3aGljaCBpcyBub3QgcGFydCBvZgorICogdGhlIGRhdGEgaXRzZWxmIGFuZCBj
YW4gdGhlcmVmb3JlIG5vdCBiZSBhY2Nlc3NlZAorICogdmlhIHRoZSBwb2ludGVyIHRoYXQgPGNv
ZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+IHJldHVybnMuCisgKgorICogQHBhcmFtIHBEYXRh
IHBvaW50ZXIgdG8gdGhlIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHBhcmFtIHBJbmZvIHBvaW50
ZXIgdG8gYSBVRGF0YUluZm8gb2JqZWN0OworICogICAgICAgICAgICAgIGl0cyA8Y29kZT5zaXpl
PC9jb2RlPiBmaWVsZCBtdXN0IGJlIHNldCBjb3JyZWN0bHksCisgKiAgICAgICAgICAgICAgdHlw
aWNhbGx5IHRvIDxjb2RlPnNpemVvZihVRGF0YUluZm8pPC9jb2RlPi4KKyAqCisgKiA8Y29kZT4q
cEluZm88L2NvZGU+IHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIFVEYXRhSW5mbyBzdHJ1Y3R1cmUK
KyAqIGluIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QuIElmIHRoaXMgc3RydWN0dXJlIGlzIHNtYWxs
ZXIgdGhhbgorICogPGNvZGU+cEluZm8tPnNpemU8L2NvZGU+LCB0aGVuIHRoZSA8Y29kZT5zaXpl
PC9jb2RlPiB3aWxsIGJlCisgKiBhZGp1c3RlZCBhbmQgb25seSBwYXJ0IG9mIHRoZSBzdHJ1Y3R1
cmUgd2lsbCBiZSBmaWxsZWQuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgdm9p
ZCBVX0VYUE9SVDIKK3VkYXRhX2dldEluZm8oVURhdGFNZW1vcnkgKnBEYXRhLCBVRGF0YUluZm8g
KnBJbmZvKTsKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNV
IGRhdGEgbG9hZGluZyBwcm9jZXNzIGFuZAorICogYWxsb3dzIHlvdSB0byBmb3JjZSBJQ1UncyBz
eXN0ZW0gZGF0YSB0byBjb21lIG91dCBvZiBhIHVzZXItc3BlY2lmaWVkCisgKiBhcmVhIGluIG1l
bW9yeS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNo
b3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qu
b3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBpcyB0aGF0IG9mIHRo
ZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgYXMgaXMKKyAqIGdlbmVyYXRlZCBieSB0aGUgcGtnZGF0
YSB0b29sIHdpdGggbW9kZT1jb21tb24gb3IgbW9kZT1kbGwuCisgKiBZb3UgY2FuIHJlYWQgaW4g
YSB3aG9sZSBjb21tb24gbW9kZSBmaWxlIGFuZCBwYXNzIHRoZSBhZGRyZXNzIHRvIHRoZSBzdGFy
dCBvZiB0aGUKKyAqIGRhdGEsIG9yICh3aXRoIHRoZSBhcHByb3ByaWF0ZSBsaW5rIG9wdGlvbnMp
IHBhc3MgaW4gdGhlIHBvaW50ZXIgdG8KKyAqIHRoZSBkYXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVk
IGZyb20gYSBkbGwgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0sCisgKiBhcyBzaG93biBpbiB0aGlz
IGNvZGU6CisgKgorICogICAgICAgZXh0ZXJuIGNvbnN0IGNoYXIgVV9JTVBPUlQgVV9JQ1VEQVRB
X0VOVFJZX1BPSU5UIFtdOworICogICAgICAgIC8vIFVfSUNVREFUQV9FTlRSWV9QT0lOVCBpcyBz
YW1lIGFzIGVudHJ5IHBvaW50IHNwZWNpZmllZCB0byBwa2dkYXRhIHRvb2wKKyAqICAgICAgIFVF
cnJvckNvZGUgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAqCisgKiAgICAgICB1ZGF0YV9zZXRD
b21tb25EYXRhKCZVX0lDVURBVEFfRU5UUllfUE9JTlQsICZzdGF0dXMpOworICoKKyAqIEl0IGlz
IGltcG9ydGFudCB0aGF0IHRoZSBkZWNsYXJhdGlvbiBiZSBhcyBhYm92ZS4gVGhlIGVudHJ5IHBv
aW50CisgKiBtdXN0IG5vdCBiZSBkZWNsYXJlZCBhcyBhbiBleHRlcm4gdm9pZCouCisgKgorICog
U3RhcnRpbmcgd2l0aCBJQ1UgNC40LCBpdCBpcyBwb3NzaWJsZSB0byBzZXQgc2V2ZXJhbCBkYXRh
IHBhY2thZ2VzLAorICogb25lIHBlciBjYWxsIHRvIHRoaXMgZnVuY3Rpb24uCisgKiB1ZGF0YV9v
cGVuKCkgd2lsbCBsb29rIGZvciBkYXRhIGluIHRoZSBtdWx0aXBsZSBkYXRhIHBhY2thZ2VzIGlu
IHRoZSBvcmRlcgorICogaW4gd2hpY2ggdGhleSB3ZXJlIHNldC4KKyAqIFRoZSBwb3NpdGlvbiBv
ZiB0aGUgbGlua2VkLWluIG9yIGRlZmF1bHQtbmFtZSBJQ1UgLmRhdGEgcGFja2FnZSBpbiB0aGUK
KyAqIHNlYXJjaCBsaXN0IGRlcGVuZHMgb24gd2hlbiB0aGUgZmlyc3QgZGF0YSBpdGVtIGlzIGxv
YWRlZCB0aGF0IGlzIG5vdCBjb250YWluZWQKKyAqIGluIHRoZSBhbHJlYWR5IGV4cGxpY2l0bHkg
c2V0IHBhY2thZ2VzLgorICogSWYgZGF0YSB3YXMgbG9hZGVkIGltcGxpY2l0bHkgYmVmb3JlIHRo
ZSBmaXJzdCBjYWxsIHRvIHRoaXMgZnVuY3Rpb24KKyAqIChmb3IgZXhhbXBsZSwgdmlhIG9wZW5p
bmcgYSBjb252ZXJ0ZXIsIGNvbnN0cnVjdGluZyBhIFVuaWNvZGVTdHJpbmcKKyAqIGZyb20gZGVm
YXVsdC1jb2RlcGFnZSBkYXRhLCB1c2luZyBmb3JtYXR0aW5nIG9yIGNvbGxhdGlvbiBBUElzLCBl
dGMuKSwKKyAqIHRoZW4gdGhlIGRlZmF1bHQgZGF0YSB3aWxsIGJlIGZpcnN0IGluIHRoZSBsaXN0
LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVjdCBvbiBhcHBsaWNhdGlvbiAobm9u
IElDVSkgZGF0YS4gIFNlZSB1ZGF0YV9zZXRBcHBEYXRhKCkKKyAqIGZvciBzaW1pbGFyIGZ1bmN0
aW9uYWxpdHkgZm9yIGFwcGxpY2F0aW9uIGRhdGEuCisgKgorICogQHBhcmFtIGRhdGEgcG9pbnRl
ciB0byBJQ1UgY29tbW9uIGRhdGEKKyAqIEBwYXJhbSBlcnIgb3V0Z29pbmcgZXJyb3Igc3RhdHVz
IDxjb2RlPlVfVVNJTkdfREVGQVVMVF9XQVJOSU5HLCBVX1VOU1VQUE9SVEVEX0VSUk9SPC9jb2Rl
PgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0
YV9zZXRDb21tb25EYXRhKGNvbnN0IHZvaWQgKmRhdGEsIFVFcnJvckNvZGUgKmVycik7CisKKwor
LyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNVIGRhdGEgbG9hZGlu
ZyBwcm9jZXNzIGZvciBhcHBsaWNhdGlvbi1zcGVjaWZpYworICogZGF0YSBhbmQgYWxsb3dzIHlv
dSB0byBmb3JjZSB0aGUgaXQgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNpZmllZAorICogcG9p
bnRlci4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNo
b3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qu
b3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBpcyB0aGF0IG9mIHRo
ZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgbGlrZSAnaWN1ZHQyNmwuZGF0JworICogb3IgdGhlIGNv
cnJlc3BvbmRpbmcgc2hhcmVkIGxpYnJhcnkgKERMTCkgZmlsZS4KKyAqIFRoZSBhcHBsaWNhdGlv
biBtdXN0IHJlYWQgaW4gb3Igb3RoZXJ3aXNlIGNvbnN0cnVjdCBhbiBpbWFnZSBvZiB0aGUgZGF0
YSBhbmQgdGhlbgorICogcGFzcyB0aGUgYWRkcmVzcyBvZiBpdCB0byB0aGlzIGZ1bmN0aW9uLgor
ICoKKyAqCisgKiBXYXJuaW5nOiAgc2V0QXBwRGF0YSB3aWxsIHNldCBhIFVfVVNJTkdfREVGQVVM
VF9XQVJOSU5HIGNvZGUgaWYKKyAqICAgICAgICAgICBkYXRhIHdpdGggdGhlIHNwZWNpZmVkIHBh
dGggdGhhdCBoYXMgYWxyZWFkeSBiZWVuIG9wZW5lZCwgb3IKKyAqICAgICAgICAgICBpZiBzZXRB
cHBEYXRhIHdpdGggdGhlIHNhbWUgcGF0aCBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZC4KKyAqICAg
ICAgICAgICBBbnkgc3VjaCBjYWxscyB0byBzZXRBcHBEYXRhIHdpbGwgaGF2ZSBubyBlZmZlY3Qu
CisgKgorICoKKyAqIEBwYXJhbSBwYWNrYWdlTmFtZSB0aGUgcGFja2FnZSBuYW1lIGJ5IHdoaWNo
IHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZmVyCisgKiAgICAgICAgICAgICB0byAob3BlbikgdGhp
cyBkYXRhCisgKiBAcGFyYW0gZGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhCisgKiBAcGFyYW0gZXJy
IG91dGdvaW5nIGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9V
TlNVUFBPUlRFRF9FUlJPUjwvY29kZT4KKyAqIEBzZWUgdWRhdGFfc2V0Q29tbW9uRGF0YQorICog
QHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRB
cHBEYXRhKGNvbnN0IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25zdCB2b2lkICpkYXRhLCBVRXJyb3JD
b2RlICplcnIpOworCisvKioKKyAqIFBvc3NpYmxlIHNldHRpbmdzIGZvciB1ZGF0YV9zZXRGaWxl
QWNjZXNzKCkKKyAqIEBzZWUgdWRhdGFfc2V0RmlsZUFjY2VzcworICogQHN0YWJsZSBJQ1UgMy40
CisgKi8KK3R5cGVkZWYgZW51bSBVRGF0YUZpbGVBY2Nlc3MgeworICAgIC8qKiBJQ1UgbG9va3Mg
Zm9yIGRhdGEgaW4gc2luZ2xlIGZpbGVzIGZpcnN0LCB0aGVuIGluIHBhY2thZ2VzLiAoZGVmYXVs
dCkgQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRVNfRklSU1QsCisgICAgLyoqIEFu
IGFsaWFzIGZvciB0aGUgZGVmYXVsdCBhY2Nlc3MgbW9kZS4gQHN0YWJsZSBJQ1UgMy40ICovCisg
ICAgVURBVEFfREVGQVVMVF9BQ0NFU1MgPSBVREFUQV9GSUxFU19GSVJTVCwKKyAgICAvKiogSUNV
IG9ubHkgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzLCBub3QgZnJvbSBzaW5nbGUgZmlsZXMuIEBz
dGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX09OTFlfUEFDS0FHRVMsCisgICAgLyoqIElDVSBs
b2FkcyBkYXRhIGZyb20gcGFja2FnZXMgZmlyc3QsIGFuZCBvbmx5IGZyb20gc2luZ2xlIGZpbGVz
CisgICAgICAgIGlmIHRoZSBkYXRhIGNhbm5vdCBiZSBmb3VuZCBpbiBhIHBhY2thZ2UuIEBzdGFi
bGUgSUNVIDMuNCAqLworICAgIFVEQVRBX1BBQ0tBR0VTX0ZJUlNULAorICAgIC8qKiBJQ1UgZG9l
cyBub3QgYWNjZXNzIHRoZSBmaWxlIHN5c3RlbSBmb3IgZGF0YSBsb2FkaW5nLiBAc3RhYmxlIElD
VSAzLjQgKi8KKyAgICBVREFUQV9OT19GSUxFUywKKyAgICAvKiogTnVtYmVyIG9mIHJlYWwgVURh
dGFGaWxlQWNjZXNzIHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRV9B
Q0NFU1NfQ09VTlQKK30gVURhdGFGaWxlQWNjZXNzOworCisvKioKKyAqIFRoaXMgZnVuY3Rpb24g
bWF5IGJlIGNhbGxlZCB0byBjb250cm9sIGhvdyBJQ1UgbG9hZHMgZGF0YS4gSXQgbXVzdCBiZSBj
YWxsZWQKKyAqIGJlZm9yZSBhbnkgSUNVIGRhdGEgaXMgbG9hZGVkLCBpbmNsdWRpbmcgYXBwbGlj
YXRpb24gZGF0YSBsb2FkZWQgd2l0aCAKKyAqIHVyZXMvUmVzb3VyY2VCdW5kbGUgb3IgdWRhdGEg
QVBJcy4gVGhpcyBmdW5jdGlvbiBpcyBub3QgbXVsdGl0aHJlYWQgc2FmZS4gIAorICogVGhlIHJl
c3VsdHMgb2YgY2FsbGluZyBpdCB3aGlsZSBvdGhlciB0aHJlYWRzIGFyZSBsb2FkaW5nIGRhdGEg
YXJlIHVuZGVmaW5lZC4KKyAqIEBwYXJhbSBhY2Nlc3MgVGhlIHR5cGUgb2YgZmlsZSBhY2Nlc3Mg
dG8gYmUgdXNlZAorICogQHBhcmFtIHN0YXR1cyBFcnJvciBjb2RlLgorICogQHNlZSBVRGF0YUZp
bGVBY2Nlc3MKKyAqIEBzdGFibGUgSUNVIDMuNCAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9S
VDIKK3VkYXRhX3NldEZpbGVBY2Nlc3MoVURhdGFGaWxlQWNjZXNzIGFjY2VzcywgVUVycm9yQ29k
ZSAqc3RhdHVzKTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL2ljdS91bmljb2RlL3VtaXNjLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDg1NDUxZmM3NjdjMDU4MzVmNmMxNWY1NjZmMzU2MmUyZDRhZjgzNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1pc2MuaApAQCAtMCwwICsx
LDYwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA2LCBJ
bnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVy
cy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAg
dW1pc2MuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90
IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDE5OTlvY3QxNQor
KiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisjaWZuZGVmIFVNSVNDX0gK
KyNkZWZpbmUgVU1JU0NfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworLyoqCisg
KiBcZmlsZQorICogXGJyaWVmICBDIEFQSTptaXNjIGRlZmluaXRpb25zIAorICoKKyAqICBUaGlz
IGZpbGUgY29udGFpbnMgbWlzY2VsbGFuZW91cyBkZWZpbml0aW9ucyBmb3IgdGhlIEMgQVBJcy4g
CisgKi8KKworVV9DREVDTF9CRUdJTgorCisvKiogQSBzdHJ1Y3QgcmVwcmVzZW50aW5nIGEgcmFu
Z2Ugb2YgdGV4dCBjb250YWluaW5nIGEgc3BlY2lmaWMgZmllbGQgCisgKiAgQHN0YWJsZSBJQ1Ug
Mi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IFVGaWVsZFBvc2l0aW9uIHsKKyAgLyoqCisgICAqIFRo
ZSBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90IGZpZWxkOwor
ICAvKioKKyAgICogVGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHJhbmdlIGNvbnRhaW5pbmcgZmllbGQg
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBiZWdpbkluZGV4OworICAv
KiogCisgICAqIFRoZSBsaW1pdCBvZiB0aGUgdGV4dCByYW5nZSBjb250YWluaW5nIGZpZWxkIAor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgZW5kSW5kZXg7Cit9IFVGaWVs
ZFBvc2l0aW9uOworCisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorLyoqCisgKiBPcGFxdWUgdHlw
ZSByZXR1cm5lZCBieSByZWdpc3Rlckluc3RhbmNlLCByZWdpc3RlckZhY3RvcnkgYW5kIHVucmVn
aXN0ZXIgZm9yIHNlcnZpY2UgcmVnaXN0cmF0aW9uLgorICogQHN0YWJsZSBJQ1UgMi42CisgKi8K
K3R5cGVkZWYgY29uc3Qgdm9pZCogVVJlZ2lzdHJ5S2V5OworI2VuZGlmCisKK1VfQ0RFQ0xfRU5E
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc4YzVh
YjQ0MjYwZDIzZWNlMGU4ZjhhN2M1ZWVlODA4NGM0NGQ2YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTAsMCArMSw4MyBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
IDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisjIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKK0JSRUFLSU5HX1JVTEVTX0ZJTEVTID0gXAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Q0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdE5vbkNKSy5icmsKKworQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlMgPSBc
CisgICAgQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIFwKKyAg
ICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIFwKKyAgICBCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgXAorICAgIEJyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcAorCithbGwg
OiAkKEJSRUFLSU5HX1JVTEVTX0ZJTEVTKSAkKEJSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TKQor
CitCcmVha2luZ1J1bGVzLyUuYnJrIDogJS5wcAorCS4vV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvZ2VuYnJrIC1jIC1yICQ8IC1vICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLmNwcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKwllY2hvICIjaW5jbHVkZSBcImNvbmZpZy5oXCIiID4g
JEAKKwllY2hvICIjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+IiA+PiAkQAorCWVjaG8gIiNk
ZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkiID4+
ICRACisJZWNobyAiI2RlZmluZSBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTICgoVV9JQ1VfVkVS
U0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpKSIg
Pj4gJEAKKwllY2hvICJjb25zdCBjaGFyKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMgPSAi
ID4+ICRACisJc2VkICdzL14jIC4qLy8nICQ8ID4gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LnRtcAorCXNlZCAncy9eXCguKlwpOy8iXDE7Ii8nIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxl
cy50bXAgPiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMyLnRtcAorCXNlZCAncy8gIyAvIFwv
XC8gLycgQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzMi50bXAgPiBDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMudG1wCisJc2VkICdzL1xcL1xcXFwvZycgQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLnRtcCA+PiAkQAorCXJtIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50bXAgQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzMi50bXAKKwllY2hvICI7IiA+PiAkQAorCitCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS5jcHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisJZWNobyAiI2luY2x1ZGUgXCJjb25m
aWcuaFwiIiA+ICRACisJZWNobyAiI2luY2x1ZGUgPHVuaWNvZGUvdXZlcm51bS5oPiIgPj4gJEAK
KwllY2hvICIjZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8
fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTEwMCkpIiA+PiAkQAorCWVjaG8gIiNkZWZpbmUgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyAo
KFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05V
TSA+PSA5KSkiID4+ICRACisJZWNobyAiY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3IkKlJ1
bGVzID0gIiA+PiAkQAorCWNhdCAkPyB8IHNlZCAncy9eXCguKlwpOy8iXDE7Ii8nID4gJCoudG1w
CisJc2VkICdzLyAjIC8gXC9cLyAvJyAkKi50bXAgPiAkKjIudG1wCisJc2VkICdzL1xcL1xcXFwv
ZycgJCoyLnRtcCA+PiAkQAorCXJtICQqLnRtcCAkKjIudG1wCisJZWNobyAiOyIgPj4gJEAKKwor
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhU
UkFfSUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQCAkPAor
CitMaW5lQnJlYWtJdGVyYXRvciUucHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvciUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisJLWNhdCAkPyB8IHVuaWZkZWYgLURBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQ9JChBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQpIC1ESEFWRV9FWFRS
QV9JQ1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRACmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxZmFkODQ3MTAwMTQ5M2Q3
YmY0YjZlYTZkNTI5ODA4ODBkMDI1OGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApAQCAt
MCwwICsxLDE1MSBAQAorIyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVh
ayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKKyMgPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qu
b3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4u
CisjIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9tIHRoZSBvcmlnaW5hbCBvbmVzIGFyZSBsaXN0
ZWQgYmVsb3c6CisjICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3Bh
Y2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0g
JEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7CisjICogUmVtb3ZlZCBydWxlcyB0aGF0
IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChC
dWcgMjQzNDIpOworIyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1v
dmluZyBhZnRlciB2aXJhbWEgc2lnbnMgb2YgSW5kaWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAo
QnVnIDE1NzkwKSwgYW5kOworIyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBm
cm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFy
a3MuCisjICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgorCisk
Q1IgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ1J9XTsKKyRMRiAgICAgID0g
W1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1dOworJENvbnRyb2wgPSBbXHB7R3JhcGhl
bWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsKKyRWb2ljZU1hcmtzID0gW1x1RkY5RVx1RkY5
Rl07ICMgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FuYSB2b2ljZWQgbWFya3MKKyRFeHRlbmQg
ID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1x1
MEUzMCBcdTBFMzIgXHUwRTQ1IFx1MEVCMCBcdTBFQjJdXTsKKyRTcGFjaW5nTWFyayA9IFtbXHB7
R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31dIC0gJEV4dGVuZF07CiskTCAgICAgICA9
IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOworJFYgICAgICAgPSBbXHB7R3JhcGhl
bWVfQ2x1c3Rlcl9CcmVhayA9IFZ9XTsKKyRUICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJf
QnJlYWsgPSBUfV07CiskTFYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9
XTsKKyRMVlQgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVlR9XTsKKyRIaW4w
ICAgID0gW1x1MDkwNS1cdTA5MzldOyAjIERldmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCiskSGlu
ViAgICA9IFx1MDk0RDsgIyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCiskSGluMSAgICA9IFtcdTA5
MTUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRlciBLYSwuLi4sSGEKKyRCZW4wICAgID0gW1x1
MDk4NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCiskQmVuViAgICA9IFx1MDlD
RDsgIyBCZW5nYWxpIFNpZ24gVmlyYW1hCiskQmVuMSAgICA9IFtcdTA5OTUtXHUwOUI5XTsgIyBC
ZW5nYWxpIExldHRlciBLYSwuLi4sSGEKKyRQYW4wICAgID0gW1x1MEEwNS1cdTBBMzldOyAjIEd1
cm11a2hpIExldHRlciBBLC4uLixIYQorJFBhblYgICAgPSBcdTBBNEQ7ICMgR3VybXVraGkgU2ln
biBWaXJhbWEKKyRQYW4xICAgID0gW1x1MEExNS1cdTBBMzldOyAjIEd1cm11a2hpIExldHRlciBL
YSwuLi4sSGEKKyRHdWowICAgID0gW1x1MEE4NS1cdTBBQjldOyAjIEd1amFyYXRpIExldHRlciBB
LC4uLixIYQorJEd1alYgICAgPSBcdTBBQ0Q7ICMgR3VqYXJhdGkgU2lnbiBWaXJhbWEKKyRHdWox
ICAgID0gW1x1MEE5NS1cdTBBQjldOyAjIEd1amFyYXRpIExldHRlciBLYSwuLi4sSGEKKyRPcmkw
ICAgID0gW1x1MEIwNS1cdTBCMzldOyAjIE9yaXlhIExldHRlciBBLC4uLixIYQorJE9yaVYgICAg
PSBcdTBCNEQ7ICMgT3JpeWEgU2lnbiBWaXJhbWEKKyRPcmkxICAgID0gW1x1MEIxNS1cdTBCMzld
OyAjIE9yaXlhIExldHRlciBLYSwuLi4sSGEKKyRUZWwwICAgID0gW1x1MEMwNS1cdTBDMzldOyAj
IFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKKyRUZWxWICAgID0gXHUwQzREOyAjIFRlbHVndSBTaWdu
IFZpcmFtYQorJFRlbDEgICAgPSBbXHUwQzE0LVx1MEMzOV07ICMgVGVsdWd1IExldHRlciBLYSwu
Li4sSGEKKyRLYW4wICAgID0gW1x1MEM4NS1cdTBDQjldOyAjIEthbm5hZGEgTGV0dGVyIEEsLi4u
LEhhCiskS2FuViAgICA9IFx1MENDRDsgIyBLYW5uYWRhIFNpZ24gVmlyYW1hCiskS2FuMSAgICA9
IFtcdTBDOTUtXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4uLixIYQorJE1hbDAgICAgPSBb
XHUwRDA1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExldHRlciBBLC4uLixIYSAKKyRNYWxWICAgID0g
XHUwRDREOyAjIE1hbGF5YWxhbSBTaWduIFZpcmFtYQorJE1hbDEgICAgPSBbXHUwRDE1LVx1MEQz
OV07ICMgTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQorJFJJICAgICAgPSBbXFUwMDAxRjFFNi1c
VTAwMDFGMUZGXTsgIyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCiskWldKICAgICA9IFx1MjAw
RDsgIyBaZXJvIHdpZHRoIGpvaW5lcgorJEVtb2ppVmFyID0gW1x1RkUwRl07ICMgRW1vamktc3R5
bGUgdmFyaWF0aW9uIHNlbGVjdG9yCisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKwor
ICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYz
MDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0Yz
IFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBc
VTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUw
MDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAw
MUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFG
NkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBa
V0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1c
dTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFG
M0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2
Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEt
XFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxV
MDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAw
MDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAx
RjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVy
cworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAw
MDFGNDY5IFxVMDAwMUY0OEJdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVl
bmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3MEMgXFUwMDAxRjM4
NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFGM0NBIFxVMDAwMUY0NDIt
XFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxV
MDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAw
MDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAx
RjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2
QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMK
KworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAwMDFGM0ZGXTsgIyBGaXR6
cGF0cmljayBtb2RpZmllcnMKKyEhY2hhaW47CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBP
UlQKKworICAgICEhUklOb0NoYWluOworCisjZW5kaWYKKworISFmb3J3YXJkOworJENSICRMRjsK
KyRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7CisoJExWIHwgJFYpICgkViB8ICRUKTsKKygkTFZU
IHwgJFQpICRUOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUkkgJFJJ
ICRFeHRlbmQqIC8gJFJJOworICAgICRSSSAkUkkgJEV4dGVuZCo7CisgICAgW14kQ29udHJvbCAk
Q1IgJExGXSAkRXh0ZW5kOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOwor
CisjZWxzZQorCisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOworICAgIFteJENvbnRy
b2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOworICAgICRSSSAkUkkgLyAkUkk7CisgICAgJFJJICRS
STsKKworI2VuZGlmCisKKyRIaW4wICRIaW5WICRIaW4xOyAjIERldmFuYWdhcmkgVmlyYW1hIChm
b3J3YXJkKQorJEJlbjAgJEJlblYgJEJlbjE7ICMgQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCisk
UGFuMCAkUGFuViAkUGFuMTsgIyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCiskR3VqMCAkR3Vq
ViAkR3VqMTsgIyBHdWphcmF0aSBWaXJhbWEgKGZvcndhcmQpCiskT3JpMCAkT3JpViAkT3JpMTsg
IyBPcml5YSBWaXJhbWEgKGZvcndhcmQpCiskVGVsMCAkVGVsViAkVGVsMTsgIyBUZWx1Z3UgVmly
YW1hIChmb3J3YXJkKQorJEthbjAgJEthblYgJEthbjE7ICMgS2FubmFkYSBWaXJhbWEgKGZvcndh
cmQpCiskTWFsMCAkTWFsViAkTWFsMTsgIyBNYWxheWFsYW0gVmlyYW1hIChmb3J3YXJkKQorJFpX
SiAkRW1vamlGb3JTZXFzOyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcworJEVt
b2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVuIHJl
bGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpw
YXRyaWNrIG1vZGlmaWVyCishIXJldmVyc2U7CiskTEYgJENSOworKCRMIHwgJFYgfCAkTFYgfCAk
TFZUKSAkTDsKKygkViB8ICRUKSAoJExWIHwgJFYpOworJFQgKCRMVlQgfCAkVCk7CisKKyNpZiBB
RERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5k
KiAkUkkgJFJJOworICAgICRFeHRlbmQqICRSSSAkUkk7CisgICAgJEV4dGVuZCAgICAgIFteJENv
bnRyb2wgJENSICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisK
KyNlbHNlCisKKyAgICAkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkU3Bh
Y2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkUkkgJFJJIC8gJFJJICRSSTsKKyAg
ICAkUkkgJFJJOworCisjZW5kaWYKKworJEhpbjEgJEhpblYgJEhpbjA7ICMgRGV2YW5hZ2FyaSBW
aXJhbWEgKGJhY2t3YXJkKQorJEJlbjEgJEJlblYgJEJlbjA7ICMgQmVuZ2FsaSBWaXJhbWEgKGJh
Y2t3YXJkKQorJFBhbjEgJFBhblYgJFBhbjA7ICMgR3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkK
KyRHdWoxICRHdWpWICRHdWowOyAjIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCiskT3JpMSAk
T3JpViAkT3JpMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJFRlbDEgJFRlbFYgJFRl
bDA7ICMgVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCiskS2FuMSAkS2FuViAkS2FuMDsgIyBLYW5u
YWRhIFZpcmFtYSAoYmFja3dhcmQpCiskTWFsMSAkTWFsViAkTWFsMDsgIyBNYWxheWFsYW0gVmly
YW1hIChiYWNrd2FyZCkKKyRFbW9qaUZvclNlcXMgJFpXSjsgIyBEb250IGJyZWFrIGluIGVtb2pp
IFpXSiBzZXF1ZW5jZXMKKyRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyAjIERv
bnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24g
c2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorCisjaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCisKKyAgICAhIXNhZmVfcmV2ZXJzZTsKKyAgICAkUkkgJFJJKzsKKyAgICBbJEVt
b2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOworICAgICEhc2FmZV9mb3J3YXJkOwor
ICAgICRSSSAkUkkrOworICAgICRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7
CisKKyNlbHNlCisKKyAgICBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOwor
ICAgICRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7CisgICAgISFzYWZlX3Jl
dmVyc2U7CisgICAgISFzYWZlX2ZvcndhcmQ7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBp
bG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllMGM4YTUxYjNjMWNjMGI3MTZmMmEzODcyZmIzYjE4MTAw
ZDBlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKQEAgLTAsMCArMSwzNDcgQEAKKyRBSSA9
IFs6TGluZUJyZWFrID0gQW1iaWd1b3VzOl07CiskQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0
aWM6XTsKKyRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsKKyRC
QiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07CiskQksgPSBbOkxpbmVCcmVhayA9IE1h
bmRhdG9yeV9CcmVhazpdOworJEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19Cb3RoOl07CiskQ0Ig
PSBbOkxpbmVCcmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsKKyRDTCA9IFs6TGluZUJyZWFrID0g
Q2xvc2VfUHVuY3R1YXRpb246XTsKKyRDTSA9IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6
XTsKKyRDUCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsKKyRDUiA9IFs6TGlu
ZUJyZWFrID0gQ2FycmlhZ2VfUmV0dXJuOl07CiskRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1h
dGlvbjpdIC0gJEVYX1NVQl07CiskR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsKKworI2lmIEhB
VkVfRVhUUkFfSUNVX05BTUVEX1NFVFMKKworICAgICRITCA9IFs6TGluZUJyZWFrID0gSGVicmV3
X0xldHRlcjpdOworCisjZWxzZQorCisgICAgJEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpd
XTsKKworI2VuZGlmCisKKyRIWSA9IFs6TGluZUJyZWFrID0gSHlwaGVuOl07CiskSDIgPSBbOkxp
bmVCcmVhayA9IEgyOl07CiskSDMgPSBbOkxpbmVCcmVhayA9IEgzOl07CiskSUQgPSBbW1tbOkxp
bmVCcmVhayA9IElkZW9ncmFwaGljOl0gLSAkQ0pdICRJRF9BRERdIC0gJElEX1NVQl07CiskSU4g
PSBbWzpMaW5lQnJlYWsgPSBJbnNlcGFyYWJsZTpdIC0gJElOX1NVQl07CiskSVMgPSBbWzpMaW5l
QnJlYWsgPSBJbmZpeF9OdW1lcmljOl0gLSAkSVNfU1VCXTsKKyRKTCA9IFs6TGluZUJyZWFrID0g
Skw6XTsKKyRKViA9IFs6TGluZUJyZWFrID0gSlY6XTsKKyRKVCA9IFs6TGluZUJyZWFrID0gSlQ6
XTsKKyRMRiA9IFs6TGluZUJyZWFrID0gTGluZV9GZWVkOl07CiskTkwgPSBbOkxpbmVCcmVhayA9
IE5leHRfTGluZTpdOworJE5TID0gW1tbWzpMaW5lQnJlYWsgPSBOb25zdGFydGVyOl0gLSAkQ0pd
ICROU19BRERdIC0gJE5TX1NVQl07CiskTlUgPSBbOkxpbmVCcmVhayA9IE51bWVyaWM6XTsKKyRP
UCA9IFs6TGluZUJyZWFrID0gT3Blbl9QdW5jdHVhdGlvbjpdOworJFBPID0gW1s6TGluZUJyZWFr
ID0gUG9zdGZpeF9OdW1lcmljOl0gLSAkUE9fU1VCXTsKKyRQUiA9IFtbOkxpbmVCcmVhayA9IFBy
ZWZpeF9OdW1lcmljOl0gLSAkUFJfU1VCXTsKKyRRVSA9IFs6TGluZUJyZWFrID0gUXVvdGF0aW9u
Ol07CiskUkkgPSBbXFUwMDAxRjFFNi1cVTAwMDFGMUZGXTsKKyRTQSA9IFs6TGluZUJyZWFrID0g
Q29tcGxleF9Db250ZXh0Ol07CiskU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOworJFNQ
ID0gWzpMaW5lQnJlYWsgPSBTcGFjZTpdOworJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1i
b2xzOl07CiskV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9pbmVyOl07CiskWFggPSBbOkxpbmVC
cmVhayA9IFVua25vd246XTsKKyRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpdOworJFpXSiA9
IFx1MjAwRDsKKyRFbW9qaVZhciA9IFx1RkUwRjsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVAorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI2NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQg
XFUwMDAxRjMwOCBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQS1cVTAwMDFGM0NDIFxV
MDAwMUYzRjMgXFUwMDAxRjQ0MSBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAw
MDFGNDZGIFxVMDAwMUY0NzEgXFUwMDAxRjQ3MyBcVTAwMDFGNDc3IFxVMDAwMUY0ODEtXFUwMDAx
RjQ4MiBcVTAwMDFGNDg2LVxVMDAwMUY0ODcgXFUwMDAxRjQ4QiBcVTAwMDFGNTc1IFxVMDAwMUY1
RTggXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEIgXFUwMDAxRjY0RC1cVTAwMDFGNjRF
IFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2XTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lw
YXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI2Rjkg
XHUyNzBBLVx1MjcwRCBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NB
IFxVMDAwMUYzQ0IgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBc
VTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUw
MDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAw
MUY1NzUgXFUwMDAxRjU5MCBcVTAwMDFGNTk1IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFG
NjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZC
NiBcVTAwMDFGNkMwIFxVMDAwMUY5MThdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sg
bW9kaWZpZXJzCisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcVTAwMDFG
NDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ4Ql07CisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQg
XHUyNzBBLVx1MjcwQyBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0M3
IFxVMDAwMUYzQ0EgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBc
VTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUw
MDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAw
MUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFG
NkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0YWtl
IEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFG
M0ZCLVxVMDAwMUYzRkZdOworJGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29u
dGV4dDpdOworJEFMUGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsKKyRBTGNtID0gJEFMUGx1
cyAkQ00qOworJEJBY20gPSAkQkEgJENNKjsKKyRCQmNtID0gJEJCICRDTSo7CiskQjJjbSA9ICRC
MiAkQ00qOworJENMY20gPSAkQ0wgJENNKjsKKyRDUGNtID0gJENQICRDTSo7CiskRVhjbSA9ICRF
WCAkQ00qOworJEdMY20gPSAkR0wgJENNKjsKKyRITGNtID0gJEhMICRDTSo7CiskSFljbSA9ICRI
WSAkQ00qOworJEgyY20gPSAkSDIgJENNKjsKKyRIM2NtID0gJEgzICRDTSo7CiskSURjbSA9ICRJ
RCAkQ00qOworJElOY20gPSAkSU4gJENNKjsKKyRJU2NtID0gJElTICRDTSo7CiskSkxjbSA9ICRK
TCAkQ00qOworJEpWY20gPSAkSlYgJENNKjsKKyRKVGNtID0gJEpUICRDTSo7CiskTlNjbSA9ICRO
UyAkQ00qOworJE5VY20gPSAkTlUgJENNKjsKKyRPUGNtID0gJE9QICRDTSo7CiskUE9jbSA9ICRQ
TyAkQ00qOworJFBSY20gPSAkUFIgJENNKjsKKyRRVWNtID0gJFFVICRDTSo7CiskUkljbSA9ICRS
SSAkQ00qOworJFNZY20gPSAkU1kgJENNKjsKKyRXSmNtID0gJFdKICRDTSo7CisKKyEhZm9yd2Fy
ZDsKKyRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07CiskQ0FOVF9DTSA9
IFskU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJEFMX0ZPTExPV19OT0NNID0gWyRCSyAk
Q1IgJExGICROTCAkWlcgJFNQXTsKKyRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJ
UyAkU1kgJFdKICRHTCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107CiskQUxf
Rk9MTE9XID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsKKyRMQjRCcmVha3MgPSBb
JEJLICRDUiAkTEYgJE5MXTsKKyRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICROTF07Cisk
TEI4QnJlYWtzID0gWyRMQjRCcmVha3MgJFpXXTsKKyRMQjhOb25CcmVha3MgPSBbWyRMQjROb25C
cmVha3NdIC0gWyRaV11dOworJExCMThOb25CcmVha3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1Bd
XTsKKyRMQjE4QnJlYWtzID0gWyRMQjhCcmVha3MgJFNQXTsKKyRMQjIwTm9uQnJlYWtzID0gWyRM
QjE4Tm9uQnJlYWtzIC0gJENCXTsKKyRBTFBsdXMgJENNKzsKKyRCQSAkQ00rOworJEJCICRDTSs7
CiskQjIgJENNKzsKKyRDTCAkQ00rOworJENQICRDTSs7CiskRVggJENNKzsKKyRHTCAkQ00rOwor
JEhMICRDTSs7CiskSFkgJENNKzsKKyRIMiAkQ00rOworJEgzICRDTSs7CiskSUQgJENNKzsKKyRJ
TiAkQ00rOworJElTICRDTSs7CiskSkwgJENNKzsKKyRKViAkQ00rOworJEpUICRDTSs7CiskTlMg
JENNKzsKKyROVSAkQ00rOworJE9QICRDTSs7CiskUE8gJENNKzsKKyRQUiAkQ00rOworJFFVICRD
TSs7CiskUkkgJENNKzsKKyRTWSAkQ00rOworJFdKICRDTSs7CiskQ1IgJExGIHsxMDB9OworJExC
NE5vbkJyZWFrcz8gJExCNEJyZWFrcyB7MTAwfTsKKyRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsx
MDB9OworJENNKyAkTEI0QnJlYWtzIHsxMDB9OworJExCNE5vbkJyZWFrcyBbJFNQICRaV107Cisk
Q0FOX0NNICRDTSogWyRTUCAkWlddOworJENNKyBbJFNQICRaV107CiskRW1vamlGb3JTZXFzICRF
bW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFzOworJENBTl9DTSAkQ00rOwor
JENNKzsKKyRDQU5fQ00gJENNKiAkV0pjbTsKKyRMQjhOb25CcmVha3MgJFdKY207CiskQ00rICRX
SmNtOworJFdKY20gJENBTlRfQ007CiskV0pjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOX0NN
ICRDTSo7CiskR0xjbSAkQ0FOVF9DTTsKK1tbJExCOE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFld
XSAkQ00qICRHTGNtOworJENNKyBHTGNtOworJExCOE5vbkJyZWFrcyAkQ0w7CiskQ0FOX0NNICRD
TSogJENMOworJENNKyAkQ0w7CiskTEI4Tm9uQnJlYWtzICRDUDsKKyRDQU5fQ00gJENNKiAkQ1A7
CiskQ00rICRDUDsKKyRMQjhOb25CcmVha3MgJEVYOworJENBTl9DTSAkQ00qICRFWDsKKyRDTSsg
JEVYOworJExCOE5vbkJyZWFrcyAkSVM7CiskQ0FOX0NNICRDTSogJElTOworJENNKyAkSVM7Cisk
TEI4Tm9uQnJlYWtzICRTWTsKKyRDQU5fQ00gJENNKiAkU1k7CiskQ00rICRTWTsKKyRPUGNtICRT
UCogJENBTl9DTSAkQ00qOworJE9QY20gJFNQKiAkQ0FOVF9DTTsKKyRPUGNtICRTUCsgJENNKyAk
QUxfRk9MTE9XPzsKKyRRVWNtICRTUCogJE9QY207CisoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNj
bTsKKyRCMmNtICRTUCogJEIyY207CiskTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOworJENNKyAk
UVVjbTsKKyRRVWNtIC4/OworJFFVY20gJExCMThOb25CcmVha3MgJENNKjsKKyRMQjIwTm9uQnJl
YWtzICRDTSogKCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7IAorJEJCY20gW14kQ0JdOworJEJCY20g
JExCMjBOb25CcmVha3MgJENNKjsKKyRITGNtICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OworJFNZ
Y20gJEhMY207CisoJEFMY20gfCAkSExjbSkgJElOY207CiskQ00rICRJTmNtOworJEVYY20gJElO
Y207CiskSURjbSAkSU5jbTsKKyRJTmNtICRJTmNtOworJE5VY20gJElOY207CiskSURjbSAkUE9j
bTsKKyRBTGNtICROVWNtOworJEhMY20gJE5VY207CiskQ00rICROVWNtOworJE5VY20gJEFMY207
CiskTlVjbSAkSExjbTsKKyRQUmNtICRJRGNtOworJFBSY20gKCRBTGNtIHwgJEhMY20pOworJFBP
Y20gKCRBTGNtIHwgJEhMY20pOworKCRQUmNtIHwgJFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICRO
VWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQ
T2NtKT87CiskSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRIMmNtIHwgJEgzY20pOworKCRKVmNtIHwg
JEgyY20pICgkSlZjbSB8ICRKVGNtKTsKKygkSlRjbSB8ICRIM2NtKSAkSlRjbTsKKygkSkxjbSB8
ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsKKygkSkxjbSB8ICRKVmNtIHwg
JEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkUE9jbTsKKyRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpU
Y20gfCAkSDJjbSB8ICRIM2NtKTsKKygkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7Cisk
Q00rICgkQUxjbSB8ICRITGNtKTsKKyRJU2NtICgkQUxjbSB8ICRITGNtKTsKKygkQUxjbSB8ICRI
TGNtIHwgJE5VY20pICRPUGNtOworJENNKyAkT1BjbTsKKyRDUGNtICgkQUxjbSB8ICRITGNtIHwg
JE5VY20pOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUkljbSAkUklj
bTsKKworI2VuZGlmCisKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOworCish
IXJldmVyc2U7CiskQ00rICRBTFBsdXM7CiskQ00rICRCQTsKKyRDTSsgJEJCOworJENNKyAkQjI7
CiskQ00rICRDTDsKKyRDTSsgJENQOworJENNKyAkRVg7CiskQ00rICRHTDsKKyRDTSsgJEhMOwor
JENNKyAkSFk7CiskQ00rICRIMjsKKyRDTSsgJEgzOworJENNKyAkSUQ7CiskQ00rICRJTjsKKyRD
TSsgJElTOworJENNKyAkSkw7CiskQ00rICRKVjsKKyRDTSsgJEpUOworJENNKyAkTlM7CiskQ00r
ICROVTsKKyRDTSsgJE9QOworJENNKyAkUE87CiskQ00rICRQUjsKKyRDTSsgJFFVOworCisjaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkQ00rICRSSTsKKworI2VuZGlmCisKKyRD
TSsgJFNZOworJENNKyAkV0o7CiskQ00rOworJEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRM
RiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAk
U1BdIHwgWyRBTCB7ZW9mfV0pKTsKK1skUFJdIC8gJENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAk
U1Age2VvZn1dOworJExCNEJyZWFrcyBbJExCNE5vbkJyZWFrcy0kQ01dOworJExCNEJyZWFrcyAk
Q00rICRDQU5fQ007CiskTEYgJENSOworWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07Citb
JFNQICRaV10gJENNKyAkQ0FOX0NNOworJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRF
bW9qaVZhcj8gJEVtb2ppRm9yU2VxczsKKyRDTSsgJENBTl9DTTsKKyRDTSogJFdKICRDTSogJENB
Tl9DTTsKKyRDTSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskQ0FOVF9DTSAkQ00qICRXSjsK
KyRDTSogJENBTl9DTSAkQ00qICRXSjsKKyRDTSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRD
TSAkU1AgJEJBICRIWV1dOworJENBTlRfQ00gJENNKiAkR0w7CiskQ00qICRDQU5fQ00gJENNKiAk
R0w7CiskQ0wgJENNKyAkQ0FOX0NNOworJENQICRDTSsgJENBTl9DTTsKKyRFWCAkQ00rICRDQU5f
Q007CiskSVMgJENNKyAkQ0FOX0NNOworJFNZICRDTSsgJENBTl9DTTsKKyRDTCBbJExCOE5vbkJy
ZWFrcy0kQ01dOworJENQIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskRVggWyRMQjhOb25CcmVha3Mt
JENNXTsKKyRJUyBbJExCOE5vbkJyZWFrcy0kQ01dOworJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07
CitbJENMICRDUCAkRVggJElTICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAKKyRDTSogJENBTl9D
TSAkU1AqICRDTSogJE9QOworJENBTlRfQ00gJFNQKiAkQ00qICRPUDsKKyRBTF9GT0xMT1c/ICRD
TSsgJFNQICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9Q
OworJENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRTWSAkQ00gJFNQKyAk
T1A7CiskQ00qICRPUCAkU1AqICRDTSogJFFVOworJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAk
Q1ApOworJENNKiAkQjIgJFNQKiAkQ00qICRCMjsKKyRDTSogJFFVICRDTSogJENBTl9DTTsKKyRD
TSogJFFVICRMQjE4Tm9uQnJlYWtzOworJENNKiAkQ0FOX0NNICRDTSogJFFVOworJENBTlRfQ00g
JENNKiAkUVU7CiskQ00qICgkQkEgfCAkSFkgfCAkTlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRD
TV07CiskQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dICRDTSogJEJCOworW14kQ0JdICRDTSogJEJC
OworW14kQ0JdICRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7CiskQ00qICRITCAkQ00qICRTWTsK
KyRDTSogJElOICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAkSU4gJENNKiAkRVg7CiskQ00q
ICRJTiAkQ00qICRJRDsKKyRDTSogJElOICRDTSogJElOOworJENNKiAkSU4gJENNKiAkTlU7Cisk
Q00qICRQTyAkQ00qICRJRDsKKyRDTSogJE5VICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAo
JEFMUGx1cyB8ICRITCkgJENNKiAkTlU7CiskQ00qICRJRCAkQ00qICRQUjsKKyRDTSogKCRBTFBs
dXMgfCAkSEwpICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87CisoJENN
KiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRT
WSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87Cisk
Q00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOworJENNKiAoJEpUIHwgJEpWKSAk
Q00qICgkSDIgfCAkSlYpOworJENNKiAkSlQgJENNKiAoJEgzIHwgJEpUKTsKKyRDTSogJElOICRD
TSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7CiskQ00qICRQTyAkQ00qICgkSDMgfCAk
SDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpM
KSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOwor
JENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkSVM7CiskQ00qICRPUCAkQ00qICgkQUxQbHVzIHwg
JEhMIHwgJE5VKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOworCisjaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkQ00qICRSSSAkQ00qICRSSTsKKworI2Vu
ZGlmCisKKyRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOworCishIXNhZmVfZm9y
d2FyZDsKK1skQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25h
cnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsK
KyRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OworICAgIAorISFzYWZlX3JldmVyc2U7CiskQ00rIFte
JENNICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsKKyRDTSsgJFNQIC8gLjsKKyRTUCsgJENNKiAk
T1A7CiskU1ArICRDTSogJFFVOworJFNQKyAkQ00qICgkQ0wgfCAkQ1ApOworJFNQKyAkQ00qICRC
MjsKKyRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7CisoJENNKiAoJElTIHwgJFNZKSkrICRDTSog
JE5VOworKCRDTCB8ICRDUCkgJENNKiAoJE5VIHwgJElTIHwgJFNZKTsKKyRkaWN0aW9uYXJ5ICRk
aWN0aW9uYXJ5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxZjhh
ZDI1MWJmNTUyNWQyOTNmMzcyMTI2NDU2MTYxMTUwYjYwZDQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1
ZS50eHQKQEAgLTAsMCArMSwxNSBAQAorISFjaGFpbjsKKyEhTEJDTU5vQ2hhaW47CishIWxvb2tB
aGVhZEhhcmRCcmVhazsKKworCisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAg
ICAkQ0ogPSBbOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOl07CisKKyNl
bHNlCisKKyAgICAkQ0ogPSBbXHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUz
MDgzXHUzMDg1XHUzMDg3XHUzMDhFXHUzMDk1XHUzMDk2XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3
XHUzMEE5XHUzMEMzXHUzMEUzXHUzMEU1XHUzMEU3XHUzMEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUz
MUYwXHUzMUYxXHUzMUYyXHUzMUYzXHUzMUY0XHUzMUY1XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5
XHUzMUZBXHUzMUZCXHUzMUZDXHUzMUZEXHUzMUZFXHUzMUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVG
RjZBXHVGRjZCXHVGRjZDXHVGRjZEXHVGRjZFXHVGRjZGXHVGRjcwXTsKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRmMzZjOTAyMDY5ZjNhNmM1Y2Q4
MDMzODU0OWZiMTk5YTAxOGFkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApAQCAtMCwwICsx
LDEwIEBACiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7CiskSU5fU1VC
ID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAxQ1x1
MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkQkFf
U1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTM0MTQ2MzU1NjY2YmQxODExZGNjODE3Njc1NzNkYTM0
MGMwMDg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKQEAgLTAsMCArMSwxMCBAQAor
JEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9IFtcdTAwMjFcdTAwM0ZcdUZGMDFc
dUZGMUZdOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NV
QiA9IFtcdTAwM0FcdTAwM0JdOworJE5TX1NVQiA9IFtcdTIwM0NcdTIwNDdcdTIwNDhcdTIwNDlc
dTMwMDVcdTMwMUNcdTMwM0JcdTMwOURcdTMwOUVcdTMwQTBcdTMwRkJcdTMwRkRcdTMwRkVcdUZG
MUFcdUZGMUJcdUZGNjVdOworJFBPX1NVQiA9IFtcdTAwMjVcdTAwQTJcdTAwQjBcdTIwMzBcdTIw
MzJcdTIwMzNcdTIxMDNcdUZGMDVcdUZGRTBdOworJFBSX1NVQiA9IFtcdTAwMjRcdTAwQTNcdTAw
QTVcdTIwQUNcdTIxMTZcdUZGMDRcdUZGRTFcdUZGRTVdOworJElEX0FERCA9IFskQ0ogJEJBX1NV
QiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07CiskTlNf
QUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjE2ODk2OTlkOGQwZTRjMzY4MzRiMmZhZTI1OTMyNzc1N2EyNGQxM2YKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0g
Jyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAy
Nl07CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1
MzBGRFx1MzBGRV07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRD
SiAkSU5fU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1OWZjZjBmOGE5OTIyMTIwZWJiMTFkZDVkYTQ0MTdm
OTI2NzYyNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKQEAgLTAsMCArMSwxMCBAQAor
JEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcn
OworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9
ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0ZjM2YzkwMjA2OWYzYTZjNWNkODAz
Mzg1NDlmYjE5OWEwMThhZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKQEAgLTAs
MCArMSwxMCBAQAorJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElO
X1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMw
MUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0og
JEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
LnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjM1NTllYjFlZDY0ZjI2M2Q4OWUx
NjJkMzE3NzE5ODdjZGZjZmI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0CkBA
IC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAn
JzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIg
PSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKXTsKKyROU19BREQgPSAnJzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTlmY2Yw
ZjhhOTkyMjEyMGViYjExZGQ1ZGE0NDE3ZjkyNjc2MjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3RDSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsK
KyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAn
JzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQg
PSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xNTlmY2YwZjhhOTkyMjEyMGViYjExZGQ1ZGE0NDE3ZjkyNjc2MjcyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIg
PSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19T
VUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJ
RF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvZ2VuYnJrCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1MGFhNWQ4ZWMwYTRhNWU2MjljYTJkMGE4NGQ4Njgy
M2FkNGRmMTEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMxNDU2CnpjbWVIUGQzO3BXeSs0eiUj
SVFfSVI5dn1ZTFhqb091IWM9Q0Z1Xi1BZmYkSFZCQFVDQk5pdWFaR28xeSZMWXA+OAp6PHVaPU9E
bE5+fllIQWchbWNJQn01JURSYkVEPiFmOzhLKlR5dD8kcHBkIy16dFRPTldKTkx8Rj1Ben0oZSU/
UVEKelp8PilGJmlRVFVjWWYhMCo4N3tBe05kRTZYOXFINyRZcmNLaGNSe2AoJCljdHdYdGdlRj9K
Yn1qQVhaMG5ReTRMCnp3VzR8dlE4T1B5Q2k7fmE9fjs7ZT9EaSFVT1A2R2RAY05+aEckd0deI2Ar
XnNOc3J3Z2NDUVI7dSFkKnE+JG43Kwp6MGJAZ2ZDUFIzP0s1O150KF4wIVU2cHF3fFFZNXs3VyM3
PkI0SGNiQzs+aWttTExYZWxBNUVYVihkYFltZ1BgZDMKeiR6d0VxRkE5QnhsaXlSJUlyY1I7b3Ak
JDFyI2xkfmhhR2kjZVIqUndlRjMzPkBDPHpeI1RzQ0BKNDR+MSRKWmR9CnpkVlM0OC14ST1WZ3Mx
eVl1TihVT3pFSXpRPT1HSkJYIWEkQ20rKjliSWBpUEtpMEA5MSZ0Pj1jPml1QnFeKGAwcgp6SXom
YW5eKXt2SnE8TURgelA4JmY8fFhEZDRoLVQkQW0mTU96QT1IKmU4WmFIYkJ9Ny0/TE16UHc1cUFq
QDNqWlEKeiFMUVlxUjdkKSNlKTZJREYoSFlkd0EmbH1lT14xKXo1PilJYCFHSERMJTNjYXh9SkxN
Y0NYYGEqO2dqP0hTJGd+CnpNdEhoRD5oSSl+SG5QWCUyc2A9K2RqRUJwSDJhbmRlVDR0KmFqZ3NX
dCtJM2IlTyt8MV43QCswdXVuOVQ7YFolSgp6SHRXSSM2JkM5ZiE3M055aWpxSH5KVWx9fnNoe2Io
TWxzZTVTMT94Ml98Ty1pPjt4SnxOJVcmQVNIZSteN1JDO3YKekJGKGlDTlArb2BlR0JELTNtSUZF
ITVzdiszVyotI1F5UGdoNEdDVFErTllxQkZ+P1ZNaGtfO3s0TXItN2dufWhyCnpQaEUqP21EZEhG
by0yXjNqZDJlWmBKTGFOQHs/YX5gYFBqKDVBMU9sZj53YVUySWNkRjwocigrTTVYIUVPIWVOeQp6
ekxAP3tKN3F9M3FkcWJOUyNJY1M4fHswWDV2TT1zRTtiaiM1S2tSUmFyPyttZWYzclglZEY9ZEg/
Ryh1PmdkfXMKejxpQ24obFBTTT1SVmVJa0R4UkN4Mz55dXQpR3J4K3Ihe2Ulei1iKWx4ZUFIKnk5
VlBfIzdXc0s+dyZCWHZMNDhLCnpBblNwdzJlS1o+ZExaazh0T3YzbCRhKX5fZnZnQXFOankqXkQ8
M1ZjUWNsYSFES31rLSpaPGg7UzEpNEI2aiR4VAp6NypqaiYkfWNNfmYhZjJWdmEobTU0fkZ1LSs1
Ozk8SHM0fnQqPDUyQHZSTUI5ayooO29SWEh3NGAoSzZsa3NMK2MKemloVyVia0M4OHwoU2Zxa3w1
TDxPPGsqbW5tb3Y3RkxRKDJ9M18mYkJaZHwoQEZgI3cqNH16Wkd8NEhQPUhpYDswCnomJVQlZkZ+
LSYpWFBiYnUjKk04bVY3Qk8jITtySEBDbTI5Jm87YH5NIS1NN00/OF5ZRCRCY31MbVFDQHB7eF5W
VAp6aXghUWghZX17TSo4Z0B1YV9wK3s3byN2KjQkODRMa0V2VHhDJVdkYnd1SkclQG59SS1la0xh
cDM4NilmT31QaWMKekhzIWNZZDhRbjZicUlJUDQhUH0rdjkkIzlycnZFNypeJUwjMD92QTA5ZzVQ
Yj5eQWs5NGlOYnk4bkRMWj1VWkZPCnpfUjN2ZFA/Q18xbF8lOGk1TUFsd0Y+OU5XdXFucjY8IXlC
cnNKN2B4amNwJTY/WSFPbnJnN0QpSyRULVA5ZGZNbAp6RzAwayFVVWRYVyF0T15RWUV2RWBMej4m
LUhzeTQ5aTByS0YwM2FKKXZ0R0I/cm8yRzUlZHlCfnZlS25+aCVsSHsKeioob1ktPGRydjxMY2oq
P1dWS0VDM3J3antqO2gtczNifmVxKGIlPmdmalokOU9LaGI8UkAleD9YRitWJTlKUH5jCnorKHE/
SypRUmBDUUJEYUJZY3ZoeS1YJX1+d3o/RH54UERVdytVbTZfcEh3UUolaDREcVElX0BKJFgjdHEw
bUc/bQp6YHpCT1Qma3w3fm14bkokQTIhTGNeJn4qUEFwZ0Qmd3BEcUxjZ0dncE9nJU47Y05QX2Ao
RSlPX2A0dCtTKmZVRSYKeiN4TiVLcTM3blByTGRwVWUqblUzbjNuJV9EYV8oTW0hbUltQTRiPTZa
JCNUQENhQ1d0bCFvU295V1dOMz16N3dJCnp3ciRHQ1lSM2huZypeTWR4KVh1V1h3NzQ3MmFOWH1m
IXhlQ2t+Nm1UaGxebmhIRDhzNztaeUh8JHV7TTRISGNDegp6cVZDMEpaeHt+dkJNel9HcUBGLVg0
PWRfNW55RlkoR2J7RVArYkQhK2lwJF5NTmh8SSleRD1YLWBGNjl0Yl9lOTEKejsmTE9AX28qNSEt
Nl5CN2JofCZHekRJfHxJQ3VLLWdZcEp6YmEpckkyZTYjNit+PWRZP0okKDdwUFd1NE9iUFZeCno2
aX5OfVNJQzFeZG07R1pMYFpEb1YkKUw8cDNAe0pMZWRzM3dNSXYoJlEja2E3bXt7I1M2MUZwe3x2
SSQjOz4oTAp6Q0QyaGhTX1VnN0wjfTVTK0I9ZFcmRSE/KD16Nn1gSGQwLTxGcmZ5dXg7d2J3Mj16
RTMhJipQRCloYTBPJWdVP2oKejNQQHBgUkVzOVBVUCRsWihsMUEyRztKKT13cSs+THtIU0RBXj9G
Zm51dlZ7RClWbntgJUItWClFVGclaGt8ZWVDCno0big/LWU5NjV3SUBKcUpUPlQ0fUI9aWdrZVhh
PV5RYk9pclNHbUlIQStzSHQ2WUFZMHtkLTdiNTIwbkU5em9DPAp6JlF6PHdQO1dzLTQ5dkV9cCFk
QW5qdDhAJUVmS3omaXIoPDA+eGB7PyFveTdRPUlkRUZwTFQwP0RKcz9PczRxNS0Kell7Z0omVFI3
RGlQfUBDSFc3WDQ+JCZYREwzayVnTkElSTs0bj1IMURGVkpNQ3Aobj1fSCpTZzc/I1IlbTlGPilt
Cnp2aHg3biY+JnBmZUc8fmZrcnZWM3glezRWZXJALUUxRmNWIUtTMnt7Y1d3N1pxTXVgNVpURUB7
YFAlTj84VGpIVgp6U3ZqcCVnUWolSiU2b0ZsJmItQGR5QntUKWM1O2ZXb1JGMnslM0hHWGEmNVBY
JGghVj5KfnY8LT1qIS0kMVpyKHUKejRMMEJKUXp5WHlQLXVrdWFaWj1qRFVPMkF1dmJ7MW11JTcy
WmVNP0V5QmA4cSEjZlEkSXp+UXI+cDthPnhqdFNDCnptKyRENCRGZ3w9aXhheTs/R0UwYlgjWnop
YDEqOFF5LSFwMHBmKz9nWkJoQF9QZTBQal8/aHNVUmU4Jip7TUQqcAp6T1Nzc35iekxZY0hUeDx8
QU0pZXhETSRmc25hUGF6SnAjRDB0PUhLNDImUnxadyNWNHxWKnV1TDFMKStBNT4xSjEKeiFrbzQj
WkNnPW4jfVVjWUNSXyV2OWFwd303K3ooSFNFOT87bkJ3TjxJVl5rYD9VRn5xb0A/QTxEQChNVEVI
U1FzCnokKyVeWTtUMFNeb218Z3hic3pZJjNGTzl6UXJZJXR4QnsmWlk7SW5JWWU2WSh1fV9ndWx2
OEVyOUArM3hrSk9iKgp6ZGxAWTY/Z3I0Nk9UUylxPyoqOFdkcjYqNm57RHUtdTNWaDV7THAkSFFy
KjlWNVNoNyU4KStwWTdqUHJFTz4qcG8KemVRMTBlUmtiTispdmMlXlIyc0xtNCozSWtFaGtGQ20r
ZnZITFVKVzJfb0hNejE5IUkoMGpFSF5mP29DOFAoYTw5CnpzUCQoWV9OOyV3Kj1kVkNsaCkzMF4r
dCReTXNaRX5PcjFnUCMtO0BMRzBRY29ocDx+P2lkSEk8Mzs4Rz1wazc1Ywp6KH08WGomKF5ZKjlz
TWR5ODBIc2ZhQUB2Yk9ydWJzSGJHVFBIcEdeVkZqJFB3b3tZXmk3OUdYT2pCYChKKl9+SCEKelJ4
RXxjeURXd0k/fGZxJCZQbCNjNEx5VSNxTyVJMnhkdyNLKUd5SWAxKGFTeVI1fCgjSEcmKDBgVnJ7
JEVndStoCnpNRSNrSmpiNENGSmJjU21uakZfMUcoTEx9SiZpLXcpTjU3I18jOUVpblBTNmxnUVV4
Kl54fWtoNzswP0ZzaCtGcAp6YSZad0BVQWJmbVAxRVFRQzhiIU5TK2cmNHV9d0xRNk88LSsrNmsl
fVEwcl5mX2tVc2o8RUJFbGp+aSsxRTI2bj0KekAkYiNDTSgxIzlCME9JRzZiNmA7LTV7eFIoUlha
P2Q3MjQ1ZEdOc3ZkRkphbD99dyt6JlYoQWtyeHpDTmhKQ3cwCnojYD9wKXJMRFo8Ul48IzkqWV9O
X3FgWlVrcmg/OD8rXil7enMlWFZrYVgkSDMqJWg1aGJFSz4tQHg5NWA9byYwTwp6RUY8KyttXyhU
Ukd5b1ZoS3JASncmWW1QWUszNyRFRExORE5qRzhJdzdtOGJQKEElUDgpTyNWTDlraGs4ZkRISD8K
elZecGFldHlFNmhsPmIhd3ApYip5Pmd5MkdgQT0+K1FjJTcmIWVgU1phJiEqYUg1Mz02Z20jbllo
N29BQ2ZEUkc8CnpOPHM0Vk81YGxick9UaD95UT0hIVNJSH1wR2tXbmVkPlgzaighfFIoe21eQDEr
a3gqNjZ9STUpYjMtV0FLSHZZQQp6RUgqMmNZLWVhb3h8N2RWKWJnMkkmSzloZXY4Mkt7MyVCdkRZ
Yj5nb1c0OWt8SWJFPU50U3ZWQ1ImZV54NTMwJUsKelhkNmhKemBFWjdOI3BuYVZzODFeU2tjenwt
N0MyNipwekVnJjd2SG1zWXFBMz8kO3JrTTBEcGhQOCtMJlhfeUYpCnpsY09WUEkkcW15RGlJayhI
LXB7JCNwUHg2JmQ2YDJ5Kk9RSnlNTUApLUNuemNwTGUxQC1VKDIzdGMtfmpFK2hyewp6cSttUE5n
Rl5Majg9R21zM3hLQTxsRzJibURtYWlhVW9taUhSXnw3eTY0fFAoKzQoJX10dTJXaDwyfVBeOCsw
REMKeiN3c0xQc2QkQW1PITRRNEZEc1J1LU9tQ3RqJSlfWHRTd3pSI3d7PGtvUnw8PChyS1gwKSE0
Y2k/NncwKyVeUWA8Cno1dTRKcSRAfklJOHQpfU4qNjhGeXk2UDByYUB2NyphNnE7YEsjQ0godFN2
am9SOElmdj5PPFo0THNDMDBFd0tmTAp6TzZOO2xvZ0Elc2cpWSFnNzJwPEYwQilJSy0xNWNydnpU
fl54Wkx2YzdgJWI0ey1uRHEkKExpcG57QmJlSD5wfnMKejtmUyR5RG1kb2RtTiFRayU8Qyp+VWVn
Kmt1ZnJTQ1EoIypZVTlFZWZIRSU/SVdRdXBNQ0hifXdqamFQOXphVkRXCnpqNVVSeD82Jk5waW5k
K1g7RyRNUyMjdkBvP3AkLTMpd3k0ZU16K2UpO2NwcVlPbCZ6akEjIVErVD9RNSYjKGlUagp6d3Ir
PCR2K3tPTmYyKj0mU0RyTyREPWZmUzhAfCRsOVY1RUJhMEs/eyNEMDNRe3g9QWs7eE1CcCZsQ3Ey
NU5WRkMKeipfcWZle3EqV04rJWh5aXV1QHQ1Vz9zKXp5blU+PyVCP3A+MmppZU1RUjQ7OHRJJjhw
dHtwOFc0M1crcmkmZTJmCnpjeGA+Vj8wbjRAb3djXyQ5PVgoUCsla35IWkxvUldCMTd2UVZfV0gy
WX1qJEE+YTsxZF9SNUt1czcyI0Y3bDVxMQp6KXt9R21rYTdefnpBU0NgbTd9JHRKPkFDLV4/Wn5s
SSkmcGpRRk1tcVhMLShXWkFsZDZAVnA8LTJrPDxQPWxNSnoKeiU9NGk8Rld+dXdKUmk+VU9MI3Rs
PWE9KlJOfWdaTWJCWDdwY3dXZiEoTDVpK15SWVoxJit9clFtLTJpZiZuTlNJCnpEJG1QIUs3OzQ4
Y3ohKzQlWHZQUj1ONnZOPWVmLUQ4K21UeWA5aHZvQHdeJjJtUVU9ZT1XcWc+N2JsOC1pTCQrcwp6
aH18RktFdW5FVkw0UDdoQ2c9YmBqfXI2PktgIz5ZQjArQnheam1eSEE/UWhoejlndUZwaTQwP3lN
SWhqNWtkRDUKelI4RyhqMiljPSZsPzFzNkApNUxfQVF3Um81cCpqLW9kaWA4XmZFIzczM2BqNVNw
PERiJl9zZkF1dXs5fTRaSENRCnpnMDNkMGwlVX1SUlM9WDxQJkdrfUFPfUljbV56STxme3FaaGhN
KyRhNmVaeyZMSHxPflVWQCQ9WGVVOT42MTB0PQp6VD9CTyFeZzJOczNIbmNoZW9EfmkxcFNEaEY5
fSpwJnxxdystUU9rWDNXQ0F9alVuaDsxV2hBb0lZSUxZeHx5SUYKemZAfW0pb1RfXitBazVvO3tp
TH4+PD8+LTh2LXZ7K0xKc1QpXmFiV2BmT3RgUTJwTmYqcjZ+RWMybloyNVg5PHY2CnpfPm4oUDxG
TmZybEgtRVJJS2ZDMkg2Y2ZYZHhsZ0xsNVUlQHE4NkR5NWNjNFUhZGh1VVB6cHg4P2d7bEN1VW5l
bgp6bTs4fSVBUUkraUtEKGdXP1Fsc1JwSHZyZ0pNTkc/VlJ6NiRePn4kI01Caik/NHhkWjlHWUEk
e21CTml+c218a2IKejFYb0cpV21+PnpYR1o9NzZCO0ZkUD98N0A9TSg3NU8kcE1Ua1E1PT94R282
WXRnJTxQZ0NTfiVvPX5JelBSU3U5CnpObG9xJFJlLUVobFhkejd0QWRffSN4UF8oS0JxVjBhem5o
Mj5ocCZeUExmfWQocH4yZHh3LUNlQjxQZFM0d1E0Ngp6KV9jZiRHK0JJJE1jcl9EZnw3Kkg/Rns/
VHZ3QyNJPnZ6SHh6NlNKdm1FPzF+VTJidnw5TXQ0P2NedlF0KXN4N3AKenE0RF9fQFd5bW16MkVF
Zy0tJjg8dEU3TTwrJkVyeHgkN01mWnkxakNXMmooLU9TOGh8NHUhYzEmX0ZRISVTUnopCnooUmk1
RHI7TnNjNnlgSGBGYkdwSWVvbFc9NkFoSHQ8QVphODRVczBkRkQjOEozWFJIVkgybUM5SzlyZ1ZH
YHVNaQp6M1FLa1ZhSENZYG1PPXJ5KF5LenB5TmRJZkcld316RzRybUlDWUc5fWpGK3NgZChBUzNT
REc2TXB7LUN6cyZxSVQKejJ8fUc8eiVTK3gqI2Y7Nzx6bVV+Xi05JD1laiV5YTlkWlgocGIzYztn
PVI9amhmbClqcCN6PzwkS216ZDwoOTFUCnpZS2shPiFqNW54QitWdS12MHhwVz1afDxAVCt8PE1g
IXdVViZRKSpeVkRgRmJ0b1M2PzchanYkZ2BLMmxrV05YSAp6T0pqeG9IUy0hQkwwRitASkUxTT91
Nz1tPEl6biNPVHZ7NGR6QjJxbHl8ZzRiIWtXe0lUO25rYy1iajtBRHN0dHMKejJEaCYrYypoSmxD
QnlQYD9+XmcoI1RYXlV3RS0+Q1J2aCgrI3lZSzFLR1FsdjN6RDt3M3Alfil3RHk+b0BxRnx7Cnoz
QFRYUFR4VmohdkQ2fDtaNnBGbis3dEhzeSk/TjNVVXdLWElUVWReRzNOQ1Z1WGp+MzMka0slWFB1
YVkqbXt5aQp6eGd0JFgrVi1HWFJUTF5JM0tpMihyWEl3XkBGWHxMNmdkU3ZzZTVRQSNQMWRpOHpD
RXlMXnk0bkxXNSFkKCo2Ym0KekdaLTkoVG15YU1PVyYoa2Zsbyl9Xmx1PTtMcFhofU4jQXkzY2Z+
aUNMenpZVUl5UHJFVip+YktWPzhfb0Rza3xaCno0YGpMUkM9MnFLS15nPmo1SGw+dGAldTlVKjF2
Tkk+c0xPTThMbllEaEdCI0hRUUoyYC05UGohOWkjUTdQTHk2egp6dGBLRmpEQSRTZEt+WCp8JTF4
c0RjVHhVX0QwaG87cEQ1b0U8JWdwRE9xM0A/c1coMzdJP2ItWnFQIz91a3xAV0QKemE8Vjl8N297
eDlZRWRvfFd4WGZecVAkQyN0KWplRmxwOTMoczM/Q1ckfU9VZGl9Rj1iejlHdUBNNSY3TW0/K1BQ
CnphcyskbDhfNzkwSCtZQUhxbmg8Zzk8UDk3I2FlJiRlbntldDB5di1DOTNsNmteWE9ZNDxRX1ZZ
VHV8ODlhVU1DcAp6a2JDU3Jhdm1Zflp8OU10Pm1OUE9vPTQ4OWlEbVB3MmVLWj5kTFprOHRPdjNs
JGEpfl9mdmc5ejk+e3YmfEJWTlIKempWZkN7WjBfPlFFekpXWjNJPCRRWm54aithI1hFZ0h3RUt7
NCphVTdKJSlCLV8jOTE0TjMlRHFUeHJNT3hgK0hlCnoxajUzcj4/PXhIYX52XmN7dXRVWExPdU1B
eX5CQmotUHc0RHkmPldWeCk+PH4oU0Bpe0FjYzUqZUsxOWl6QFJeUAp6PCRzYFdOOVkjUHRlSmlA
NVNzWkl7YXhtd016Q3hjUmFyTypLXyUwcThsVDdNY2V4a3l6bGZoX3MmR14tMnp5dk4KejN6bVBh
bCpMckJmK1haVmlIUUB4SV8zdDIpZTlDYncoSHVkczVZNXVzdTAwKl5OPzd6c2tEWHpeSSE+U3VJ
a2V+Cnp0KXxsNWd1dCVMVFkoVilafFMpXy08PWdyIzk5dGsjUDBPRTlsaSpCJEFYUVYwMmxqJTNt
cntkYiUydV4rK2hvMQp6ej9OaiNuMW9reTQjaEpHWWNfQiteYzh8QDF1R28leF91PHUmSXVIPmJi
MWxKQ2VuciEkJVd7Zkdue21AcnZYdmUKek5SWjJQcSt9QDhOd3FlbUQ5STJmUTlDJmA1THt1ZTU0
dzVIdHRtPkExRj5aJU4kb1N4SmdkP0VicFYzMzJxUDJ1CnpBU2NfSyspZH5UJXw5WEApYCkjYHZm
a25HNTxeV2dmezM2ZXJIfVJ6MUZNcTY2R1V7YzZ3Yjs0UWxJTWxUOF9IPwp6XmB4PzBMdWQ+TC1N
fkAhcEJ2cWcjNnJafCNJZDleSXlufT1lYCpNR01PIXNJcVNjSGlGPCRjKGohYEk/Xno3cVUKeiRu
RUJ4Sjs8QEorc2tgK219QzQkNWZXN2k/UTcjR008WmRiXmFMUzYlKVMtZWxnK3N0ckdMI3BIUDtl
fmU8YX4tCno7IX58JXBraGpGQVQ7Nj17bllrU2dCYHlTPD1VR1g7V3hLNDVfYVElV0hATF43Y2E1
VCRCeitNZ0trSFlvbFQ2ZQp6RSVmVWZLRDZlKFNnQVI3NE1vVnc8c3EyJjB8VnlKLTNGfjZuK3lU
PW9Qb0ZYSkEtSSt6YWhqdkdQdjFzezlsdSEKeldlQW1hT2gqPTxqYCU1QF5pdT14IyV+UzBiNUd8
JFgxYytLcDkwdCskaFhoWDtLUDdCWENQOGJLSlBNK0tpPmk9CnpKX0ROWS12bSZKdmdWbntJdypf
SmdlLW11Vjg7dyQ3clBIeTQtKkNScGU9YHd8Mm1MNVhPWk1BKnh+VzlNe184Owp6e1hgQ3lERWsl
MzZaMHIjJjlqbFVCZXQ3RUtpMWdVP3tuK3srQXokKWg3ZGNMJVd9MClLa0xxXiRDMz4tdmZkb2MK
ejhPXno5VzQ2SVVmb3lnZkleKi04c1NfVSMzQGxeTTxlSHxrWk1sO3N2aEJIWnYyZ0JTSjlEY1hG
OFRxMj9hOT9QCnpMQUUheU1uSkRhU016K1RQVDY2fitIVzl+dlZBaDRSJUN+KkcqfSVJVzxNfmZS
NFNGRTA7ISs/S0w9RyZTcz05IQp6MjwkVkltWD1CI2hIe0V5KTV5QjBmX1JFaHJzRHtLdndEMj5X
XjgtPjc4MFJ3VU5OJWR8OC1kcHlmNihYZWp5VGsKeiNVSHtLQjFefXFLRT08OF9YSEJ2UHZTKFFg
dUVXZm4wTkBNYGJtNTxAWGBJVypnTnMpeTlObTxgUm84TjhsVDMqCnpPPExXM2dkXlYwQ1RUZDtO
eWExcnZpRmQjMX5KKjZxWEpMYigraGxQVDY9a3I5ZzB1QmxLKTRBZWctR0pzemxSMgp6M0hhNCR6
ZUJWP2pyZUt5U09gekVyeTk1c3NSS1ZzcGtWYV5GVEdtQlJ8PnBiO1AoaFRGNjFgfmVFQyhISmJm
ZlgKemBUfk9nSkFwUn57YCYkaTd4KiFPOX5KV1MhOHh9X0BVSWtqeUorN2VAS1Y4X0ZZdjx4fEU5
cDNnKl5URVBXcU0kCnp7MDlPTDI+ZDVXVC01KVN6ellOKDdrRklZMlJVODxQaWclPEJLVV9mWTB3
TmlEZXo5QWU7fElLcTRyQmhZNWRDdAp6OT19R3o+OEUrbHpnRU5QMllQTz0hMEJndCFrTko3PVhB
b2AxenM9a1BKIVBnQEc0PFhPeUtQVHwyYzN9TjNLMGoKellkRSNRcFp6LWdReXAlYFQhZTUre3VV
a1g8IztvXnBnbXo3e3ZBeXwjbEsmfVF9I1RmIT1LalNKOVlSVWJva3BrCnp7Nmlnbk9vdWI5Xkte
ZDwoQlZVTV87NE01cjRHTVZobVkwYUNMS09RaG5zYnt0aXU9U0BTQW1idHF5blZARnBEfAp6KCY2
OUg7Vm44bXM+MmA5QFlIO0dTY2dCUSE/KX0zRSoqWUloa3ZCUXp0R3tkX29kSXIlWEloezROdUxs
UVhQTSQKejR3clRFV3RoZ2VDTkxjUTQ5N1F7Z3xyTio3VV5+KkpKTkNfMlR+bzk2VWx8LU1ydUgh
LWBpIypVNV8qa3NUfDNTCnpHI317KEJwSGJnJW9+dndBbFo7QWtycEI/TGFJV2RfcG9aRCNZanQj
WUxJUzVxNjJYJChsP1FBTVk7e0M5PzY0Kgp6cjx7Sm5ufk85TCQlMGdZXnZ+RUlpSXZwZ2JCaHJF
PU1qQzA1b3N6MzEpVXxARlo7PHRlNVgrQzM8Uz1SbypWSWEKelRfeWFoNUFuQFFOS2BBWDxFJn5v
LWpZSkBPeVopdFp7YnhYR3tOVCY7PVE2fFchWTV3KVg3Tl5LZl9DLSQ7N2AxCnpHVyVRPmtLNG9T
TyU3Yipaa1JWTz9jY0xgLTZtI3RISWxTI24pdCtzQlZ+YzB6ayREb3tYTDU0OGJffmNSe0NkWAp6
Y0sqZVdvblEzQ3dYSFpIdTVhZ1NHdmtofS1LZ3l1RzxzanJRVFV9YmxhX3U3JipicD9jUDVFbi0h
bi04eDwlX3EKemJpS3xiQGkmPXNOJkpTY0MtVz0zcDIpQkZuWnl2PyV5bEZsZT5qKGpLfE0jMUY2
eDs/QHVyYlUpR3B5KUxET3ZpCnppbmt4VXZpSUhXI1IhWWJlRm1vOD1ta2shYHFMKV9adWFSWT8p
ZDN3U3E3JXZ7blBvJHd9NW4tY25lNDtDRXBENgp6WmAkVnpzQyo1ZGhmPFFmfElIdnVRZkZyUEx7
SF5gNkEqY3szbmN9JjVTSUZpY293Sz5BJXUqMDdMT2ZkUF96Z2EKekN1Izk1NFcjSW4ySnpTeTJV
QnFkZnIkV3Y3RmtHITZ6dWhVWlB4UVo0enQmNUR+Klp9Rmx+fDVpPGZ3Tkp3QjFkCnphLXhFYCtE
ZllEITJvK2Jqez9+MSNVeEV1KEx9fFlLSG03WCNTX3hyP2RjdCNVaDJ+I085MTt+TjxkJnBXOzYq
agp6OSFFbFhQNV9CJE5zV0NXQlJsYCo/UTNGMThkS3tobXJGJjVrfDczckJvIVhnS29KKUBDd2hx
VVEyKDVJWipVeE0KenI1JkstcnBUWjEkWj1tYXBybWBocC1qOHw9NF5tMChaTk8xVVMtIyFFRU88
cjU7YmhOZiZXVzk7KV4zeyFXMkF7CnpyJSM/ZHYyTUMhOypfY05Renc7fkNRWD8+JWB2XnNHMkp6
XzZ3RkRePX5KaCQ4SWomWXtvQWVeZSgmJml6eChzdwp6MjdlbFZjdSRCYyhxJHRLLUlJNkN5fGNi
dEhzZyZjRUFsX051eiU/I1FyRnMlbHtYZCNNJTxTQlh5b2xUOUB1PlEKempGVnNafDUjcEZ5I0dT
OyZ5UExzejRCKiFqeUBSc0B3a3JUUDFvR04/UEtTTSt4RlopWCFWP2xxcmFYMSUzSkZLCnorYmtQ
amUoPjwpK2ZPfHw/JD9SXmNpcF5nUl51PGBLRz1TblpEQEd6UDJHUGVgT3lfT2pDJXQ4cjtnTHhC
b24/Xgp6cDV9YFZrVFpOQzxeMUVtKnN3fSFVLSo9SlhrX0kqe2NyNSh0WH14Nz1JdmRWfDY7PDQx
SmdFTUlgOEJVJCVlbzYKeiV5YUt0Xm8jMkVlKHxmd3lOI2R6VDBaP3E7YCRlNjR3YD5VXlRoSmpV
RFhZNSZWVC0/S2FZT0VeNU1VSnU9dmVxCno4YWBWMj9MKnU1a05lWSlaPEBNM0lQOUlsbzFUYFFK
aDF3ayMpaypRZFhGc1k4dSNRKWxWM2hDd3F4VWgoaVBKbAp6YFEtPXl7cHwyVDU4bk9UeSVXQXZ1
bTgtb1gzTT5Rb1lVeyZMK2I0OUZXPGQhfDN4bnI0V0c2N3R1dVJuR2tmIzMKenFrckd7Kk54N25o
ZDs2QV57SG9HVGxDTiRaQFlXTXN7X3tHelUrJnBwM081eUhPemhkKU5Tc2lPRm4rJDxhYmAqCnph
Jk9fWXVVPkY9eil2ckd7anVuJl9YZCUjXlpyJkp2JUlWYXZMNDhLQW5TcHcyZUtaPmRMWms4dE92
M2wkYSl+Xwp6ZnZnOXo5Pnt0aT53JkJYdkw0OEtBblNwdzJlS1o+ZExaazh0T3YzbCRhKX5fZnZn
OXo5Pnt0aT53JkJYezt6eEIKRmUqa0F5Tl5BZkMKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291
cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKaW5kZXggMzFhM2YwMmIzZWNh
OGUwNTNkZDUyNTI1MDUxMjUzNWZlMTBiYmIzYi4uZjA4NDhlYzQ4YmNiODZjMTdiNzVlNTEwODIx
OGQ2MzJiNTM0MWY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJ
dGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5j
cHAKQEAgLTI5LDkgKzI5LDYgQEAKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIAotLy8gRklYTUU6IFRoaXMgbmVlZHMgYSBiZXR0ZXIg
bmFtZQotI2RlZmluZSBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElPUykgfHwg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEx
MDApKQotCiBuYW1lc3BhY2UgV1RGIHsKIAogLy8gSXRlcmF0b3IgaW5pdGlhbGl6YXRpb24KQEAg
LTU5LDYgKzU2LDEyIEBAIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogaW5pdGlhbGl6ZUl0ZXJh
dG9yV2l0aFJ1bGVzKGNvbnN0IGNoYXIqIGJyZWFrUnVsZXMpCiAKICNlbmRpZgogCisjaWYgIVBM
QVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKK1RleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRv
ckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0IHJ1bGVTZXQpCit7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisjZW5kaWYKIAogLy8gSXRlcmF0b3IgdGV4dCBzZXR0aW5nCiAKQEAgLTE2NSwxMzEg
KzE2OCwxNSBAQCBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKFN0cmlu
Z1ZpZXcgc3RyaW5nKQogVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3Io
U3RyaW5nVmlldyBzdHJpbmcpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAvLyBUaGlzIHJ1
bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1Ug
NTcKLSAgICAvLyA8aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90
YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KLSAgICAvLyBUaGUgbWFqb3Ig
ZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgotICAg
IC8vICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9
XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0n
IGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7Ci0gICAgLy8gKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJl
dmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAy
NDM0Mik7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBt
b3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwg
KEJ1ZyAxNTc5MCksIGFuZDsKLSAgICAvLyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1
cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2lj
ZWQgbWFya3MuCi0gICAgLy8gKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5
bWJvbHMuCi0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGtSdWxlcyA9Ci0gICAgICAgICIkQ1IgICAg
ICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07IgotICAgICAgICAiJExGICAg
ICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1dOyIKLSAgICAgICAgIiRDb250
cm9sID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOyIKLSAgICAgICAg
IiRWb2ljZU1hcmtzID0gW1xcdUZGOUVcXHVGRjlGXTsiIC8vIEphcGFuZXNlIGhhbGYtd2lkdGgg
a2F0YWthbmEgdm9pY2VkIG1hcmtzCi0gICAgICAgICIkRXh0ZW5kICA9IFtcXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXFx1MEUzMCBcXHUwRTMyIFxc
dTBFNDUgXFx1MEVCMCBcXHUwRUIyXV07IgotICAgICAgICAiJFNwYWNpbmdNYXJrID0gW1tcXHB7
R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31dIC0gJEV4dGVuZF07IgotICAgICAgICAi
JEwgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07IgotICAgICAgICAi
JFYgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07IgotICAgICAgICAi
JFQgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07IgotICAgICAgICAi
JExWICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOyIKLSAgICAgICAg
IiRMVlQgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07IgotICAgICAg
ICAiJEhpbjAgICAgPSBbXFx1MDkwNS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkSGluViAgICA9IFxcdTA5NEQ7IiAvLyBEZXZhbmFnYXJpIFNpZ24g
VmlyYW1hCi0gICAgICAgICIkSGluMSAgICA9IFtcXHUwOTE1LVxcdTA5MzldOyIgLy8gRGV2YW5h
Z2FyaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkQmVuMCAgICA9IFtcXHUwOTg1LVxcdTA5
QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRCZW5WICAgID0gXFx1
MDlDRDsiIC8vIEJlbmdhbGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRCZW4xICAgID0gW1xcdTA5
OTUtXFx1MDlCOV07IiAvLyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRQYW4w
ICAgID0gW1xcdTBBMDUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKLSAg
ICAgICAgIiRQYW5WICAgID0gXFx1MEE0RDsiIC8vIEd1cm11a2hpIFNpZ24gVmlyYW1hCi0gICAg
ICAgICIkUGFuMSAgICA9IFtcXHUwQTE1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEth
LC4uLixIYQotICAgICAgICAiJEd1ajAgICAgPSBbXFx1MEE4NS1cXHUwQUI5XTsiIC8vIEd1amFy
YXRpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEd1alYgICAgPSBcXHUwQUNEOyIgLy8gR3Vq
YXJhdGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRHdWoxICAgID0gW1xcdTBBOTUtXFx1MEFCOV07
IiAvLyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkT3JpMCAgICA9IFtcXHUw
QjA1LVxcdTBCMzldOyIgLy8gT3JpeWEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkT3JpViAg
ICA9IFxcdTBCNEQ7IiAvLyBPcml5YSBTaWduIFZpcmFtYQotICAgICAgICAiJE9yaTEgICAgPSBb
XFx1MEIxNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRU
ZWwwICAgID0gW1xcdTBDMDUtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCi0g
ICAgICAgICIkVGVsViAgICA9IFxcdTBDNEQ7IiAvLyBUZWx1Z3UgU2lnbiBWaXJhbWEKLSAgICAg
ICAgIiRUZWwxICAgID0gW1xcdTBDMTQtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEthLC4u
LixIYQotICAgICAgICAiJEthbjAgICAgPSBbXFx1MEM4NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEg
TGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkS2FuViAgICA9IFxcdTBDQ0Q7IiAvLyBLYW5uYWRh
IFNpZ24gVmlyYW1hCi0gICAgICAgICIkS2FuMSAgICA9IFtcXHUwQzk1LVxcdTBDQjldOyIgLy8g
S2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWwwICAgID0gW1xcdTBEMDUtXFx1
MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsViAgICA9
IFxcdTBENEQ7IiAvLyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKLSAgICAgICAgIiRNYWwxICAgID0g
W1xcdTBEMTUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAg
ICIkUkkgICAgICA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IiAvLyBFbW9qaSByZWdpb25h
bCBpbmRpY2F0b3JzCi0gICAgICAgICIkWldKICAgICA9IFxcdTIwMEQ7IiAvLyBaZXJvIHdpZHRo
IGpvaW5lcgotICAgICAgICAiJEVtb2ppVmFyID0gW1xcdUZFMEZdOyIgLy8gRW1vamktc3R5bGUg
dmFyaWF0aW9uIHNlbGVjdG9yCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAg
ICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAw
MUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxV
MDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUt
XFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0
ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAw
MUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxV
MDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjZd
OyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIk
RW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYz
ODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAw
MUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxV
MDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEt
XFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1
NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAw
MUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxV
MDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MThdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBG
aXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNlCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xc
dTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIgLy8gRW1vamkgdGhh
dCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0g
W1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFG
M0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAw
MDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxc
VTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1
LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFG
NjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAw
MDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9k
aWZpZXJzCi0jZW5kaWYKLSAgICAgICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAw
MUYzRkZdOyIgLy8gRml0enBhdHJpY2sgbW9kaWZpZXJzCi0gICAgICAgICIhIWNoYWluOyIKLSNp
ZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEhUklOb0NoYWluOyIKLSNlbmRp
ZgotICAgICAgICAiISFmb3J3YXJkOyIKLSAgICAgICAgIiRDUiAkTEY7IgotICAgICAgICAiJEwg
KCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsiCi0gICAgICAgICIoJExWIHwgJFYpICgkViB8ICRUKTsi
Ci0gICAgICAgICIoJExWVCB8ICRUKSAkVDsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
Ci0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkkgJEV4
dGVuZCo7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAg
IlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSNlbHNlCi0gICAgICAgICJbXiRD
b250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAk
U3BhY2luZ01hcms7IgotICAgICAgICAiJFJJICRSSSAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJ
OyIKLSNlbmRpZgotICAgICAgICAiJEhpbjAgJEhpblYgJEhpbjE7IiAvLyBEZXZhbmFnYXJpIFZp
cmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRCZW4wICRCZW5WICRCZW4xOyIgLy8gQmVuZ2FsaSBW
aXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkUGFuMCAkUGFuViAkUGFuMTsiIC8vIEd1cm11a2hp
IFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRHdWowICRHdWpWICRHdWoxOyIgLy8gR3VqYXJh
dGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE9yaTAgJE9yaVYgJE9yaTE7IiAvLyBPcml5
YSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkVGVsMCAkVGVsViAkVGVsMTsiIC8vIFRlbHVn
dSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkS2FuMCAkS2FuViAkS2FuMTsiIC8vIEthbm5h
ZGEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE1hbDAgJE1hbFYgJE1hbDE7IiAvLyBNYWxh
eWFsYW0gVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFpXSiAkRW1vamlGb3JTZXFzOyIgLy8g
RG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9k
cyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50
IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNr
IG1vZGlmaWVyCi0gICAgICAgICIhIXJldmVyc2U7IgotICAgICAgICAiJExGICRDUjsiCi0gICAg
ICAgICIoJEwgfCAkViB8ICRMViB8ICRMVlQpICRMOyIKLSAgICAgICAgIigkViB8ICRUKSAoJExW
IHwgJFYpOyIKLSAgICAgICAgIiRUICgkTFZUIHwgJFQpOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOyIK
LSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVuZCAgICAgIFteJENv
bnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRM
Rl07IgotI2Vsc2UKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIK
LSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRS
SSAkUkkgLyAkUkkgJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIk
SGluMSAkSGluViAkSGluMDsiIC8vIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAg
ICAgIiRCZW4xICRCZW5WICRCZW4wOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQotICAg
ICAgICAiJFBhbjEgJFBhblYgJFBhbjA7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQot
ICAgICAgICAiJEd1ajEgJEd1alYgJEd1ajA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJk
KQotICAgICAgICAiJE9yaTEgJE9yaVYgJE9yaTA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3
YXJkKQotICAgICAgICAiJFRlbDEgJFRlbFYgJFRlbDA7IiAvLyBUZWx1Z3UgVmlyYW1hIChiYWNr
d2FyZCkKLSAgICAgICAgIiRLYW4xICRLYW5WICRLYW4wOyIgLy8gS2FubmFkYSBWaXJhbWEgKGJh
Y2t3YXJkKQotICAgICAgICAiJE1hbDEgJE1hbFYgJE1hbDA7IiAvLyBNYWxheWFsYW0gVmlyYW1h
IChiYWNrd2FyZCkKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgJFpXSjsiIC8vIERvbid0IGJyZWFr
IGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAk
RW1vamlGb3JNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9z
c2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgot
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiISFzYWZlX3JldmVyc2U7Igot
ICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVt
b2ppRm9yTW9kczsiCi0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsiCi0gICAgICAgICIkUkkgJFJJ
KzsiCi0gICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyI7Ci0j
ZWxzZQotICAgICAgICAiWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0g
ICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyIKLSAgICAgICAg
IiEhc2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiEhc2FmZV9mb3J3YXJkOyI7Ci0jZW5kaWYKLSAg
ICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3Ig
PSBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoa1J1bGVzKTsKKworICAgIGlmIChhdXRvKiBp
dGVyYXRvciA9IGl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVt
ZW50KSkgeworICAgICAgICBpZiAoYXV0byogaXRlcmF0b3JXaXRoVGV4dCA9IHNldFRleHRGb3JJ
dGVyYXRvcigqaXRlcmF0b3IsIHN0cmluZykpCisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JX
aXRoVGV4dDsKKyAgICAgICAgdWJya19jbG9zZShyZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJh
dG9yKj4oaXRlcmF0b3IpKTsKKyAgICB9CisKKyAgICAKKyAgICBzdGF0aWMgVGV4dEJyZWFrSXRl
cmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3JX
aXRoUnVsZXMoY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzKTsKICNlbHNlIC8vIFBMQVRGT1JN
KElPUykKICAgICAvLyBVc2UgdGhlIHNwZWNpYWwgVGhhaSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0
b3IgZm9yIGFsbCBsb2NhbGVzCiAgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWND
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yKFVCUktfQ0hBUkFDVEVS
LCAidGgiKTsKQEAgLTMxNyw0NDIgKzIwNCwxOCBAQCB2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVy
YXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiAgICAgTGluZUJyZWFrSXRlcmF0b3JQ
b29sOjpzaGFyZWRQb29sKCkucHV0KGl0ZXJhdG9yKTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIq
IHVheDE0UHJvbG9ndWUgPQotICAgICIhIWNoYWluOyIKLSAgICAiISFMQkNNTm9DaGFpbjsiCi0g
ICAgIiEhbG9va0FoZWFkSGFyZEJyZWFrOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFz
c2lnbm1lbnRzQmVmb3JlID0KLSAgICAvLyBleHBsaWNpdGx5IGVudW1lcmF0ZSAkQ0ogc2luY2Ug
SUNVIHZlcnNpb25zIHByaW9yIHRvIDQ5IGRvbid0IHN1cHBvcnQgOkxpbmVCcmVhaz1Db25kaXRp
b25hbF9KYXBhbmVzZV9TdGFydGVyOgotICAgICIkQ0ogPSBbIgotI2lmIChVX0lDVV9WRVJTSU9O
X01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAgICAi
OkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOiIKLSNlbHNlCi0gICAgIlxc
dTMwNDFcXHUzMDQzXFx1MzA0NVxcdTMwNDdcXHUzMDQ5XFx1MzA2M1xcdTMwODNcXHUzMDg1XFx1
MzA4N1xcdTMwOEVcXHUzMDk1XFx1MzA5NlxcdTMwQTFcXHUzMEEzXFx1MzBBNVxcdTMwQTciCi0g
ICAgIlxcdTMwQTlcXHUzMEMzXFx1MzBFM1xcdTMwRTVcXHUzMEU3XFx1MzBFRVxcdTMwRjVcXHUz
MEY2XFx1MzBGQyIKLSAgICAiXFx1MzFGMFxcdTMxRjFcXHUzMUYyXFx1MzFGM1xcdTMxRjRcXHUz
MUY1XFx1MzFGNlxcdTMxRjdcXHUzMUY4XFx1MzFGOVxcdTMxRkFcXHUzMUZCXFx1MzFGQ1xcdTMx
RkRcXHUzMUZFXFx1MzFGRiIKLSAgICAiXFx1RkY2N1xcdUZGNjhcXHVGRjY5XFx1RkY2QVxcdUZG
NkJcXHVGRjZDXFx1RkY2RFxcdUZGNkVcXHVGRjZGXFx1RkY3MCIKLSNlbmRpZgotICAgICJdOyI7
Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgPQot
ICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRFWF9TVUIgPSBbXFx1MDAy
MVxcdTAwM0ZcXHVGRjAxXFx1RkYxRl07IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5f
U1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSBbXFx1MDAzQVxcdTAwM0Jd
OyIKLSAgICAiJE5TX1NVQiA9IFtcXHUyMDNDXFx1MjA0N1xcdTIwNDhcXHUyMDQ5XFx1MzAwNVxc
dTMwMUNcXHUzMDNCXFx1MzA5RFxcdTMwOUVcXHUzMEEwXFx1MzBGQlxcdTMwRkRcXHUzMEZFXFx1
RkYxQVxcdUZGMUJcXHVGRjY1XTsiCi0gICAgIiRQT19TVUIgPSBbXFx1MDAyNVxcdTAwQTJcXHUw
MEIwXFx1MjAzMFxcdTIwMzJcXHUyMDMzXFx1MjEwM1xcdUZGMDVcXHVGRkUwXTsiCi0gICAgIiRQ
Ul9TVUIgPSBbXFx1MDAyNFxcdTAwQTNcXHUwMEE1XFx1MjBBQ1xcdTIxMTZcXHVGRjA0XFx1RkZF
MVxcdUZGRTVdOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIg
JElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsK
LQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZU5vbkNKSyA9
Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIg
PSAnJzsiCi0gICAgIiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAgICAiJElTX1NVQiA9
ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDA1XFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBG
RFxcdTMwRkVdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAg
ICAiJElEX0FERCA9IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsi
OwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA9
Ci0gICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIK
LSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9
ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDFDXFx1MzBBMF07IgotICAgICIkUE9fU1VCID0g
Jyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSiAkQkFfU1VCICRO
U19TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgx
NEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAg
ICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcn
OyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NV
QiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0pdOyIKLSAg
ICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tU3RyaWN0Q0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcn
OyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NV
QiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAi
JFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9ICcnOyIKLSAgICAiJE5TX0FERCA9IFskQ0pd
OyI7Ci0KLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyAgICAgIHVh
eDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1
c3RvbURlZmF1bHRDSksgICAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksKLSNk
ZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25DSksgICAgIHVheDE0QXNzaWdu
bWVudHNDdXN0b21TdHJpY3ROb25DSksKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdu
bWVudHNBZnRlciA9Ci0gICAgIiRBSSA9IFs6TGluZUJyZWFrID0gQW1iaWd1b3VzOl07IgotICAg
ICIkQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsiCi0gICAgIiRCQSA9IFtbOkxpbmVC
cmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsiCi0gICAgIiRCQiA9IFs6TGluZUJyZWFr
ID0gQnJlYWtfQmVmb3JlOl07IgotICAgICIkQksgPSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9C
cmVhazpdOyIKLSAgICAiJEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19Cb3RoOl07IgotICAgICIk
Q0IgPSBbOkxpbmVCcmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsiCi0gICAgIiRDTCA9IFs6TGlu
ZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246XTsiCi0gICAgIiRDTSA9IFs6TGluZUJyZWFrID0g
Q29tYmluaW5nX01hcms6XTsiCi0gICAgIiRDUCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUGFyZW50
aGVzaXM6XTsiCi0gICAgIiRDUiA9IFs6TGluZUJyZWFrID0gQ2FycmlhZ2VfUmV0dXJuOl07Igot
ICAgICIkRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0gJEVYX1NVQl07IgotICAg
ICIkR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsiCi0jaWYgKFVfSUNVX1ZFUlNJT05fTUFKT1Jf
TlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KQotICAgICIkSEwgPSBb
OkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsiCi0jZWxzZQotICAgICIkSEwgPSBbWzpIZWJy
ZXc6XSAmIFs6TGV0dGVyOl1dOyIKLSNlbmRpZgotICAgICIkSFkgPSBbOkxpbmVCcmVhayA9IEh5
cGhlbjpdOyIKLSAgICAiJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOyIKLSAgICAiJEgzID0gWzpM
aW5lQnJlYWsgPSBIMzpdOyIKLSAgICAiJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhp
YzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOyIKLSAgICAiJElOID0gW1s6TGluZUJyZWFr
ID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOyIKLSAgICAiJElTID0gW1s6TGluZUJyZWFrID0g
SW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07IgotICAgICIkSkwgPSBbOkxpbmVCcmVhayA9IEpM
Ol07IgotICAgICIkSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07IgotICAgICIkSlQgPSBbOkxpbmVC
cmVhayA9IEpUOl07IgotICAgICIkTEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOyIKLSAg
ICAiJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsiCi0gICAgIiROUyA9IFtbW1s6TGlu
ZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICROU19TVUJdOyIKLSAgICAi
JE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07IgotICAgICIkT1AgPSBbOkxpbmVCcmVhayA9
IE9wZW5fUHVuY3R1YXRpb246XTsiCi0gICAgIiRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhf
TnVtZXJpYzpdIC0gJFBPX1NVQl07IgotICAgICIkUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhf
TnVtZXJpYzpdIC0gJFBSX1NVQl07IgotICAgICIkUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlv
bjpdOyIKLSAgICAiJFJJID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsiCi0gICAgIiRTQSA9
IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIkU0cgPSBbOkxpbmVCcmVh
ayA9IFN1cnJvZ2F0ZTpdOyIKLSAgICAiJFNQID0gWzpMaW5lQnJlYWsgPSBTcGFjZTpdOyIKLSAg
ICAiJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07IgotICAgICIkV0ogPSBbOkxp
bmVCcmVhayA9IFdvcmRfSm9pbmVyOl07IgotICAgICIkWFggPSBbOkxpbmVCcmVhayA9IFVua25v
d246XTsiCi0gICAgIiRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpdOyIKLSAgICAiJFpXSiA9
IFxcdTIwMEQ7IgotICAgICIkRW1vamlWYXIgPSBcXHVGRTBGOyIKLSNpZiBBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQKLSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZG
OSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NB
LVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFG
NDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAw
MDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxc
VTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3
IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFG
NkI0LVxcVTAwMDFGNkI2XTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVl
bmNlcwotICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3
MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAw
MUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxV
MDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0Mg
XFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0
QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAw
MUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxV
MDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MThdIDsiIC8vIEVtb2pp
IHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNlCi0gICAgIiRFbW9qaUZvclNl
cXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IgotICAg
ICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxc
VTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQy
LVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFG
NDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAw
MDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxc
VTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEz
IFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRh
a2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyA9IFtcXFUw
MDAxRjNGQi1cXFUwMDAxRjNGRl07IgotICAgICIkZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0g
Q29tcGxleF9Db250ZXh0Ol07IgotICAgICIkQUxQbHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhd
OyIKLSAgICAiJEFMY20gPSAkQUxQbHVzICRDTSo7IgotICAgICIkQkFjbSA9ICRCQSAkQ00qOyIK
LSAgICAiJEJCY20gPSAkQkIgJENNKjsiCi0gICAgIiRCMmNtID0gJEIyICRDTSo7IgotICAgICIk
Q0xjbSA9ICRDTCAkQ00qOyIKLSAgICAiJENQY20gPSAkQ1AgJENNKjsiCi0gICAgIiRFWGNtID0g
JEVYICRDTSo7IgotICAgICIkR0xjbSA9ICRHTCAkQ00qOyIKLSAgICAiJEhMY20gPSAkSEwgJENN
KjsiCi0gICAgIiRIWWNtID0gJEhZICRDTSo7IgotICAgICIkSDJjbSA9ICRIMiAkQ00qOyIKLSAg
ICAiJEgzY20gPSAkSDMgJENNKjsiCi0gICAgIiRJRGNtID0gJElEICRDTSo7IgotICAgICIkSU5j
bSA9ICRJTiAkQ00qOyIKLSAgICAiJElTY20gPSAkSVMgJENNKjsiCi0gICAgIiRKTGNtID0gJEpM
ICRDTSo7IgotICAgICIkSlZjbSA9ICRKViAkQ00qOyIKLSAgICAiJEpUY20gPSAkSlQgJENNKjsi
Ci0gICAgIiROU2NtID0gJE5TICRDTSo7IgotICAgICIkTlVjbSA9ICROVSAkQ00qOyIKLSAgICAi
JE9QY20gPSAkT1AgJENNKjsiCi0gICAgIiRQT2NtID0gJFBPICRDTSo7IgotICAgICIkUFJjbSA9
ICRQUiAkQ00qOyIKLSAgICAiJFFVY20gPSAkUVUgJENNKjsiCi0gICAgIiRSSWNtID0gJFJJICRD
TSo7IgotICAgICIkU1ljbSA9ICRTWSAkQ00qOyIKLSAgICAiJFdKY20gPSAkV0ogJENNKjsiOwot
Ci1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRGb3J3YXJkID0KLSAgICAiISFmb3J3YXJkOyIKLSAg
ICAiJENBTl9DTSA9IFteJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsiCi0gICAgIiRDQU5U
X0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07IgotICAgICIkQUxfRk9MTE9XX05P
Q00gPSBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOyIKLSAgICAiJEFMX0ZPTExPV19DTSA9IFsk
Q0wgJENQICRFWCAkSEwgJElTICRTWSAkV0ogJEdMICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICRO
VSAkQUxQbHVzXTsiCi0gICAgIiRBTF9GT0xMT1cgPSBbJEFMX0ZPTExPV19OT0NNICRBTF9GT0xM
T1dfQ01dOyIKLSAgICAiJExCNEJyZWFrcyA9IFskQksgJENSICRMRiAkTkxdOyIKLSAgICAiJExC
NE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjhCcmVha3MgPSBbJExC
NEJyZWFrcyAkWlddOyIKLSAgICAiJExCOE5vbkJyZWFrcyA9IFtbJExCNE5vbkJyZWFrc10gLSBb
JFpXXV07IgotICAgICIkTEIxOE5vbkJyZWFrcyA9IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOyIK
LSAgICAiJExCMThCcmVha3MgPSBbJExCOEJyZWFrcyAkU1BdOyIKLSAgICAiJExCMjBOb25CcmVh
a3MgPSBbJExCMThOb25CcmVha3MgLSAkQ0JdOyIKLSAgICAiJEFMUGx1cyAkQ00rOyIKLSAgICAi
JEJBICRDTSs7IgotICAgICIkQkIgJENNKzsiCi0gICAgIiRCMiAkQ00rOyIKLSAgICAiJENMICRD
TSs7IgotICAgICIkQ1AgJENNKzsiCi0gICAgIiRFWCAkQ00rOyIKLSAgICAiJEdMICRDTSs7Igot
ICAgICIkSEwgJENNKzsiCi0gICAgIiRIWSAkQ00rOyIKLSAgICAiJEgyICRDTSs7IgotICAgICIk
SDMgJENNKzsiCi0gICAgIiRJRCAkQ00rOyIKLSAgICAiJElOICRDTSs7IgotICAgICIkSVMgJENN
KzsiCi0gICAgIiRKTCAkQ00rOyIKLSAgICAiJEpWICRDTSs7IgotICAgICIkSlQgJENNKzsiCi0g
ICAgIiROUyAkQ00rOyIKLSAgICAiJE5VICRDTSs7IgotICAgICIkT1AgJENNKzsiCi0gICAgIiRQ
TyAkQ00rOyIKLSAgICAiJFBSICRDTSs7IgotICAgICIkUVUgJENNKzsiCi0gICAgIiRSSSAkQ00r
OyIKLSAgICAiJFNZICRDTSs7IgotICAgICIkV0ogJENNKzsiCi0gICAgIiRDUiAkTEYgezEwMH07
IgotICAgICIkTEI0Tm9uQnJlYWtzPyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJENBTl9DTSAk
Q00qICRMQjRCcmVha3MgezEwMH07IgotICAgICIkQ00rICRMQjRCcmVha3MgezEwMH07IgotICAg
ICIkTEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsiCi0gICAgIiRDQU5fQ00gJENNKiBbJFNQICRaV107
IgotICAgICIkQ00rIFskU1AgJFpXXTsiCi0gICAgIiRFbW9qaUZvclNlcXMgJEVtb2ppVmFyPyAk
RW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7IgotICAgICIkQ0FOX0NNICRDTSs7IgotICAg
ICIkQ00rOyIKLSAgICAiJENBTl9DTSAkQ00qICRXSmNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAk
V0pjbTsiCi0gICAgIiRDTSsgJFdKY207IgotICAgICIkV0pjbSAkQ0FOVF9DTTsiCi0gICAgIiRX
SmNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNt
ICRDQU5UX0NNOyIKLSAgICAiW1skTEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSog
JEdMY207IgotICAgICIkQ00rIEdMY207IgotICAgICIkTEI4Tm9uQnJlYWtzICRDTDsiCi0gICAg
IiRDQU5fQ00gJENNKiAkQ0w7IgotICAgICIkQ00rICRDTDsiCi0gICAgIiRMQjhOb25CcmVha3Mg
JENQOyIKLSAgICAiJENBTl9DTSAkQ00qICRDUDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJExC
OE5vbkJyZWFrcyAkRVg7IgotICAgICIkQ0FOX0NNICRDTSogJEVYOyIKLSAgICAiJENNKyAkRVg7
IgotICAgICIkTEI4Tm9uQnJlYWtzICRJUzsiCi0gICAgIiRDQU5fQ00gJENNKiAkSVM7IgotICAg
ICIkQ00rICRJUzsiCi0gICAgIiRMQjhOb25CcmVha3MgJFNZOyIKLSAgICAiJENBTl9DTSAkQ00q
ICRTWTsiCi0gICAgIiRDTSsgJFNZOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOX0NNICRDTSo7Igot
ICAgICIkT1BjbSAkU1AqICRDQU5UX0NNOyIKLSAgICAiJE9QY20gJFNQKyAkQ00rICRBTF9GT0xM
T1c/OyIKLSAgICAiJFFVY20gJFNQKiAkT1BjbTsiCi0gICAgIigkQ0xjbSB8ICRDUGNtKSAkU1Aq
ICROU2NtOyIKLSAgICAiJEIyY20gJFNQKiAkQjJjbTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzICRD
TSogJFFVY207IgotICAgICIkQ00rICRRVWNtOyIKLSAgICAiJFFVY20gLj87IgotICAgICIkUVVj
bSAkTEIxOE5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJExCMjBOb25CcmVha3MgJENNKiAoJEJBY20g
fCAkSFljbSB8ICROU2NtKTsgIgotICAgICIkQkJjbSBbXiRDQl07IgotICAgICIkQkJjbSAkTEIy
ME5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87Igot
ICAgICIkU1ljbSAkSExjbTsiCi0gICAgIigkQUxjbSB8ICRITGNtKSAkSU5jbTsiCi0gICAgIiRD
TSsgJElOY207IgotICAgICIkRVhjbSAkSU5jbTsiCi0gICAgIiRJRGNtICRJTmNtOyIKLSAgICAi
JElOY20gJElOY207IgotICAgICIkTlVjbSAkSU5jbTsiCi0gICAgIiRJRGNtICRQT2NtOyIKLSAg
ICAiJEFMY20gJE5VY207IgotICAgICIkSExjbSAkTlVjbTsiCi0gICAgIiRDTSsgJE5VY207Igot
ICAgICIkTlVjbSAkQUxjbTsiCi0gICAgIiROVWNtICRITGNtOyIKLSAgICAiJFBSY20gJElEY207
IgotICAgICIkUFJjbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIkUE9jbSAoJEFMY20gfCAkSExj
bSk7IgotICAgICIoJFBSY20gfCAkUE9jbSk/ICgkT1BjbSB8ICRIWWNtKT8gJE5VY20gKCROVWNt
IHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRDUGNtKT8gKCRQUmNtIHwgJFBPY20pPzsiCi0g
ICAgIiRKTGNtICgkSkxjbSB8ICRKVmNtIHwgJEgyY20gfCAkSDNjbSk7IgotICAgICIoJEpWY20g
fCAkSDJjbSkgKCRKVmNtIHwgJEpUY20pOyIKLSAgICAiKCRKVGNtIHwgJEgzY20pICRKVGNtOyIK
LSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOyIKLSAg
ICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRQT2NtOyIKLSAgICAi
JFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pOyIKLSAgICAiKCRB
TGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRDTSsgKCRBTGNtIHwgJEhMY20p
OyIKLSAgICAiJElTY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20gfCAk
TlVjbSkgJE9QY207IgotICAgICIkQ00rICRPUGNtOyIKLSAgICAiJENQY20gKCRBTGNtIHwgJEhM
Y20gfCAkTlVjbSk7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkUkljbSAk
UkljbTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7
IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UmV2ZXJzZSA9Ci0gICAgIiEhcmV2ZXJzZTsi
Ci0gICAgIiRDTSsgJEFMUGx1czsiCi0gICAgIiRDTSsgJEJBOyIKLSAgICAiJENNKyAkQkI7Igot
ICAgICIkQ00rICRCMjsiCi0gICAgIiRDTSsgJENMOyIKLSAgICAiJENNKyAkQ1A7IgotICAgICIk
Q00rICRFWDsiCi0gICAgIiRDTSsgJEdMOyIKLSAgICAiJENNKyAkSEw7IgotICAgICIkQ00rICRI
WTsiCi0gICAgIiRDTSsgJEgyOyIKLSAgICAiJENNKyAkSDM7IgotICAgICIkQ00rICRJRDsiCi0g
ICAgIiRDTSsgJElOOyIKLSAgICAiJENNKyAkSVM7IgotICAgICIkQ00rICRKTDsiCi0gICAgIiRD
TSsgJEpWOyIKLSAgICAiJENNKyAkSlQ7IgotICAgICIkQ00rICROUzsiCi0gICAgIiRDTSsgJE5V
OyIKLSAgICAiJENNKyAkT1A7IgotICAgICIkQ00rICRQTzsiCi0gICAgIiRDTSsgJFBSOyIKLSAg
ICAiJENNKyAkUVU7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00rICRS
STsiCi0jZW5kaWYKLSAgICAiJENNKyAkU1k7IgotICAgICIkQ00rICRXSjsiCi0gICAgIiRDTSs7
IgotICAgICIkQUxfRk9MTE9XICRDTSsgLyAoWyRCSyAkQ1IgJExGICROTCAkWlcge2VvZn1dIHwg
JFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14kT1AgJENNICRTUF0gfCBbJEFMIHtlb2Z9XSkp
OyIKLSAgICAiWyRQUl0gLyAkQ00rIFskQksgJENSICRMRiAkTkwgJFpXICRTUCB7ZW9mfV07Igot
ICAgICIkTEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICIkTEI0QnJlYWtzICRD
TSsgJENBTl9DTTsiCi0gICAgIiRMRiAkQ1I7IgotICAgICJbJFNQICRaV10gWyRMQjROb25CcmVh
a3MtJENNXTsiCi0gICAgIlskU1AgJFpXXSAkQ00rICRDQU5fQ007IgotICAgICIkRW1vamlGb3JT
ZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2ppVmFyPyAkRW1vamlGb3JTZXFzOyIKLSAgICAiJENN
KyAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogJENNKiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0og
WyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRDQU5UX0NNICRDTSogJFdKOyIKLSAgICAiJENN
KiAkQ0FOX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkR0wgJENNKiBbJExCOE5vbkJyZWFrcy1b
JENNICRTUCAkQkEgJEhZXV07IgotICAgICIkQ0FOVF9DTSAkQ00qICRHTDsiCi0gICAgIiRDTSog
JENBTl9DTSAkQ00qICRHTDsiCi0gICAgIiRDTCAkQ00rICRDQU5fQ007IgotICAgICIkQ1AgJENN
KyAkQ0FOX0NNOyIKLSAgICAiJEVYICRDTSsgJENBTl9DTTsiCi0gICAgIiRJUyAkQ00rICRDQU5f
Q007IgotICAgICIkU1kgJENNKyAkQ0FOX0NNOyIKLSAgICAiJENMIFskTEI4Tm9uQnJlYWtzLSRD
TV07IgotICAgICIkQ1AgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRFWCBbJExCOE5vbkJy
ZWFrcy0kQ01dOyIKLSAgICAiJElTIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkU1kgWyRM
QjhOb25CcmVha3MtJENNXTsiCi0gICAgIlskQ0wgJENQICRFWCAkSVMgJFNZXSAkQ00rICRTUCsg
JENNKiAkT1A7ICIKLSAgICAiJENNKiAkQ0FOX0NNICRTUCogJENNKiAkT1A7IgotICAgICIkQ0FO
VF9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAiJEFMX0ZPTExPVz8gJENNKyAkU1AgJFNQKiAkQ00q
ICRPUDsiCi0gICAgIiRBTF9GT0xMT1dfTk9DTSAkQ00rICRTUCsgJENNKiAkT1A7IgotICAgICIk
Q00qICRBTF9GT0xMT1dfQ00gJENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJFNZICRDTSAkU1Ar
ICRPUDsiCi0gICAgIiRDTSogJE9QICRTUCogJENNKiAkUVU7IgotICAgICIkQ00qICROUyAkU1Aq
ICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIkQ00qICRCMiAkU1AqICRDTSogJEIyOyIKLSAgICAi
JENNKiAkUVUgJENNKiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkUVUgJExCMThOb25CcmVha3M7Igot
ICAgICIkQ00qICRDQU5fQ00gJENNKiAkUVU7IgotICAgICIkQ0FOVF9DTSAkQ00qICRRVTsiCi0g
ICAgIiRDTSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBbJExCMjBOb25CcmVha3MtJENNXTsiCi0g
ICAgIiRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENN
KiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsiCi0gICAgIiRD
TSogJEhMICRDTSogJFNZOyIKLSAgICAiJENNKiAkSU4gJENNKiAoJEFMUGx1cyB8ICRITCk7Igot
ICAgICIkQ00qICRJTiAkQ00qICRFWDsiCi0gICAgIiRDTSogJElOICRDTSogJElEOyIKLSAgICAi
JENNKiAkSU4gJENNKiAkSU47IgotICAgICIkQ00qICRJTiAkQ00qICROVTsiCi0gICAgIiRDTSog
JFBPICRDTSogJElEOyIKLSAgICAiJENNKiAkTlUgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAg
ICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICROVTsiCi0gICAgIiRDTSogJElEICRDTSogJFBS
OyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQ
bHVzIHwgJEhMKSAkQ00qICRQTzsiCi0gICAgIigkQ00qICgkUFIgfCAkUE8pKT8gKCRDTSogKCRD
TCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElTIHwgJFNZKSkqICRDTSogJE5VICgkQ00qICgkT1Ag
fCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykpPzsiCi0gICAgIiRDTSogKCRIMyB8ICRIMiB8ICRK
ViB8ICRKTCkgJENNKiAkSkw7IgotICAgICIkQ00qICgkSlQgfCAkSlYpICRDTSogKCRIMiB8ICRK
Vik7IgotICAgICIkQ00qICRKVCAkQ00qICgkSDMgfCAkSlQpOyIKLSAgICAiJENNKiAkSU4gJENN
KiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsiCi0gICAgIiRDTSogJFBPICRDTSogKCRI
MyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlQg
fCAkSlYgfCAkSkwpICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAo
JEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRJUzsiCi0g
ICAgIiRDTSogJE9QICRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpOyIKLSAgICAiJENNKiAoJEFM
UGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAotICAgICIkQ00qICRSSSAkQ00qICRSSTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyAkRW1v
amlWYXI/ICRFbW9qaUZvck1vZHM7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0U2FmZUZv
cndhcmQgPQotICAgICIhIXNhZmVfZm9yd2FyZDsiCi0gICAgIlskQ00gJE9QICRRVSAkQ0wgJENQ
ICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1Ag
JEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9u
YXJ5OyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVSZXZlcnNlID0KLSAgICAiISFz
YWZlX3JldmVyc2U7IgotICAgICIkQ00rIFteJENNICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsi
Ci0gICAgIiRDTSsgJFNQIC8gLjsiCi0gICAgIiRTUCsgJENNKiAkT1A7IgotICAgICIkU1ArICRD
TSogJFFVOyIKLSAgICAiJFNQKyAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJFNQKyAkQ00qICRC
MjsiCi0gICAgIiRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIoJENNKiAoJElTIHwg
JFNZKSkrICRDTSogJE5VOyIKLSAgICAiKCRDTCB8ICRDUCkgJENNKiAoJE5VIHwgJElTIHwgJFNZ
KTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KIHN0YXRpYyBTdHJpbmcgbWFw
TGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMoTGluZUJyZWFrSXRlcmF0b3JNb2RlIG1vZGUsIGJvb2wg
aXNDSkspCiB7Ci0gICAgU3RyaW5nQnVpbGRlciBydWxlc0J1aWxkZXI7Ci0gICAgcnVsZXNCdWls
ZGVyLmFwcGVuZCh1YXgxNFByb2xvZ3VlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0
QXNzaWdubWVudHNCZWZvcmUpOwogICAgIHN3aXRjaCAobW9kZSkgewogICAgIGNhc2UgTGluZUJy
ZWFrSXRlcmF0b3JNb2RlVUFYMTQ6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksg
PyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0
b21EZWZhdWx0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/
IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0TG9vc2U6Ci0g
ICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9t
TG9vc2VDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSkspOwotICAgICAgICBi
cmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSktSdWxlczsKICAgICBj
YXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0Tm9ybWFsOgotICAgICAgICBydWxlc0J1aWxk
ZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA6IHVheDE0
QXNzaWdubWVudHNDdXN0b21Ob3JtYWxOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAg
cmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKS1J1bGVzIDogbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFr
SXRlcmF0b3JNb2RlVUFYMTRTdHJpY3Q6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXND
SksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1
c3RvbVN0cmljdE5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksg
PyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CiAgICAgfQotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQo
dWF4MTRBc3NpZ25tZW50c0FmdGVyKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0Rm9y
d2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFJldmVyc2UpOwotICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQodWF4MTRTYWZlRm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVu
ZCh1YXgxNFNhZmVSZXZlcnNlKTsKLSAgICByZXR1cm4gcnVsZXNCdWlsZGVyLnRvU3RyaW5nKCk7
CiB9CiAKIC8vIFJlY29nbml6ZSBCQ1A0NyBjb21wbGlhbnQgcHJpbWFyeSBsYW5ndWFnZSB2YWx1
ZXMgb2YgJ3poJywgJ2phJywgJ2tvJwpAQCAtNzg2LDYgKzI0OSwyNCBAQCBUZXh0QnJlYWtJdGVy
YXRvciogb3BlbkxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBM
aW5lQnJlYWtJdAogICAgIGlmIChtb2RlID09IExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0KQog
ICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlbihVQlJLX0xJTkUsIGxvY2FsZUlzRW1wdHkgPyBj
dXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKSA6IGxvY2FsZS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCAwLCAwLCAmb3BlblN0YXR1cyk7CiAgICAgZWxzZSB7CisgICAgICAgIEJyZWFraW5nUnVsZVNl
dCBydWxlU2V0OworICAgICAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICAgICAgY2FzZSBMaW5lQnJl
YWtJdGVyYXRvck1vZGVVQVgxNDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFr
aW5nUnVsZVNldDo6VUFYMTRDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRM
b29zZToKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFY
MTRMb29zZUNKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZU5vbkNKSzsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0Tm9ybWFs
OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5v
cm1hbENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNFN0cmljdDoK
KyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJp
Y3RDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gaXRlcmF0b3JG
b3JSdWxlU2V0KHJ1bGVTZXQpKQorICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yOworCiAgICAg
ICAgIFVQYXJzZUVycm9yIHBhcnNlU3RhdHVzOwogICAgICAgICBhdXRvIHJ1bGVzID0gbWFwTGlu
ZUl0ZXJhdG9yTW9kZVRvUnVsZXMobW9kZSwgaXNDSkspOwogICAgICAgICB1YnJrSXRlciA9IHVi
cmtfb3BlblJ1bGVzKFN0cmluZ1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBy
dWxlcy5sZW5ndGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKaW5kZXggZDkwMzIxNWFlNDEzN2U0YzNhOWVh
MzViM2QwMjViZjUyZTQ1MThlYy4uZDJkMDdjMjhmYjhkNDA5OWVlOTY5YzIwZjU4NDg5MjI4ZmIw
MDcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaApAQCAtMzgsNiAr
MzgsMzAgQEAgZW51bSBMaW5lQnJlYWtJdGVyYXRvck1vZGUgewogICAgIExpbmVCcmVha0l0ZXJh
dG9yTW9kZVVBWDE0U3RyaWN0LAogfTsKIAorZW51bSBjbGFzcyBCcmVha2luZ1J1bGVTZXQgewor
ICAgIEN1cnNvck1vdmVtZW50LAorICAgIFVBWDE0Q0pLLAorICAgIFVBWDE0Tm9uQ0pLLAorICAg
IFVBWDE0TG9vc2VDSkssCisgICAgVUFYMTRMb29zZU5vbkNKSywKKyAgICBVQVgxNE5vcm1hbENK
SywKKyAgICBVQVgxNE5vcm1hbE5vbkNKSywKKyAgICBVQVgxNFN0cmljdENKSywKKyAgICBVQVgx
NFN0cmljdE5vbkNKSworfTsKKworZXh0ZXJuIGNvbnN0IGNoYXIqIGN1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pL
UnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKS1J1
bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1
bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNK
S1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Tm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSktSdWxlczsKKworVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yRm9yUnVsZVNl
dChCcmVha2luZ1J1bGVTZXQpOworCiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8gY2hhcmFjdGVyIGJy
ZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRvCiAvLyBwbGF0Zm9y
bSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0aGlzIGNhbiBiZSBk
aWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlzIFRoYWkgcHJlcGVu
ZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KaW5kZXggYmVm
NWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVlOGU4OGEzODkyYy4uNmRmOGNkNjBkNmQyNGZjMWUw
MGMyNjNkOTdjZDc0YWY3NjQxMmZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9t
YWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCkBAIC0yMSwxMiAr
MjEsNzUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRv
ckludGVybmFsSUNVLmgiCiAKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5oIgorCisjaWYg
ZGVmaW5lZChVX1NIT1dfQ1BMVVNQTFVTX0FQSSkKKyN1bmRlZiBVX1NIT1dfQ1BMVVNQTFVTX0FQ
SQorI2VuZGlmCisjZGVmaW5lIFVfU0hPV19DUExVU1BMVVNfQVBJIDEKKworI2luY2x1ZGUgPHVu
aWNvZGUvcmJiaS5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWRhdGEuaD4KICNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+CiAKK0BpbnRlcmZhY2UgV1RGQnVuZGxlRmluZGVyIDogTlNPYmplY3QKK0Bl
bmQKKworQGltcGxlbWVudGF0aW9uIFdURkJ1bmRsZUZpbmRlcgorQGVuZAorCiBuYW1lc3BhY2Ug
V1RGIHsKIAogc3RhdGljIGNvbnN0IGludCBtYXhMb2NhbGVTdHJpbmdMZW5ndGggPSAzMjsKIAor
VGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQgcnVs
ZVNldCkKK3sKKyAgICBOU1N0cmluZyAqZmlsZU5hbWVCYXNlOworICAgIHN3aXRjaCAocnVsZVNl
dCkgeworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpDdXJzb3JNb3ZlbWVudDoKKyAgICAgICAg
ZmlsZU5hbWVCYXNlID0gQCJDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMiOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRDSks6CisgICAgICAgIGZpbGVO
YW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSyI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVC
YXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLIjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VDSks6CisgICAgICAgIGZpbGVOYW1l
QmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLIjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks6CisgICAgICAgIGZp
bGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLIjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLOgorICAg
ICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksiOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxOb25D
Sks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgx
NFN0cmljdENKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Q0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6
OlVBWDE0U3RyaWN0Tm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksiOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBO
U0J1bmRsZSAqYnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXVEZCdW5kbGVGaW5k
ZXIgY2xhc3NdXTsKKyAgICBOU1N0cmluZyAqcGF0aCA9IFtidW5kbGUgcGF0aEZvclJlc291cmNl
OmZpbGVOYW1lQmFzZSBvZlR5cGU6QCJicmsiIGluRGlyZWN0b3J5OkAiQnJlYWtpbmdSdWxlcyJd
OworICAgIGlmICghcGF0aCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgTlNTdHJpbmcg
KmRpcmVjdG9yeSA9IFtwYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF07Cisg
ICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAgTG9jYWxVRGF0YU1l
bW9yeVBvaW50ZXIgZGF0YSh1ZGF0YV9vcGVuKFtkaXJlY3RvcnkgVVRGOFN0cmluZ10sICJicmsi
LCBbZmlsZU5hbWVCYXNlIFVURjhTdHJpbmddLCAmZXJyb3JDb2RlKSk7CisgICAgaWYgKGVycm9y
Q29kZSAhPSBVX1pFUk9fRVJST1IpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGF1dG8g
aXRlcmF0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+KGRhdGEu
b3JwaGFuKCksIGVycm9yQ29kZSk7CisgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJST1Ip
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRl
eHRCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IucmVsZWFzZSgpKTsKK30KKwogc3RhdGljIGlubGlu
ZSBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHRleHRCcmVha0xvY2FsZVByZWZlcmVuY2UoKQogewog
ICAgIFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gbG9jYWxlID0gYWRvcHRDRihDRlByZWZl
cmVuY2VzQ29weVZhbHVlKENGU1RSKCJBcHBsZVRleHRCcmVha0xvY2FsZSIpLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285486</attachid>
            <date>2016-08-06 01:12:44 -0700</date>
            <delta_ts>2016-08-06 01:51:40 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160806011115.patch</filename>
            <type>text/plain</type>
            <size>270038</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTFhOGVhNzFmOTFiNmU2MWM4MGI2MWVhNDFiZjQ1MWEyNjBjNGM3Li5mZDZkMmJhZTQ3NDQwYTUx
OTljMDljYzVhYWVmZDMxNTVkN2Y2NzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDUgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIExFQkRlY29kZXIgYW5kIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM5MGE4MzM4MWYx
NGNlODlmODdjMzFhNTRjNjczZDY2N2EzMjU4ZjEuLjY0OTkzNWE2NTkzYjM1YWVmYzIzZDdiZTNk
YzQ2NjdjMDJhMTVkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgtMDUgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBi
cmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTog
QWRkZWQuCisgICAgICAgICogd3RmL2dlbmJyazogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisg
ICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuY3BwOgorICAgICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RG
OjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0
ZXJhdG9yKToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAg
ICAqIHd0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAg
ICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorCiAyMDE2LTA4LTA1ICBLZWl0aCBNaWxs
ZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBMRUJEZWNvZGVyIGFu
ZCB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMzBkYzllNGQwMjAzNjIw
YjE0Y2EyMjhiNGViMmJiNGZkZWNlZjBkLi4xYWJlNDdjMjQ2NGRhODk4ZmFkNTMwYWNjMzI2Mzdj
OGJkYTYyYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOSw2ICsxMTA5
LDcgQEAKIAkJMTRGOTc0NDcxMzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhD
ODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBK
U1N0cmluZ1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNG
NzM3NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5j
cHAgKi87IH07CisJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFE
NTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2
MkQ4NUI2MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQx
QzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07
CkBAIC0zMjcyLDYgKzMyNzMsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFz
ZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYg
LyogSmF2YVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2Ny
aXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQx
QkNGRiAvKiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKYXZhU2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4
RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7
IHBhdGggPSAuLi9XVEYvQnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9p
bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0
aCA9IGIzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTQzOCw2ICs1NDQwLDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAw
NzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVs
ZXMgKi8sCiAJCQkJMEY2MTgzMzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAog
CQkJCTBGNjE4MzM0MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywK
IAkJCQkwRjYxODMzNTFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAg
LTg0NTcsNiArODQ2MCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBp
biBSZXNvdXJjZXMgKi8sCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5n
UnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNGM3NzM4MzJhY2RmNDNkZWNhMTUwMjQ0NThlMzAzZGVhNjdmNzg4ZS4uZWZl
Y2EwNjFkZWQzZTk3Mjc1NGI3NjAzMTVjZmFkZGQ5YmUyMzMzZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcsMTcgQEAKIAlvYmplY3RzID0gewog
CiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2
OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVn
YXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMw
MENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4Nzgy
MUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOwor
CQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsK
KwkJCXByb2R1Y3ROYW1lID0gIkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2
MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFn
Z3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBC
OTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtMzExLDYgKzMyMiwxNSBAQAogCQlBOEE0
NzQ4NzE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlRocmVhZERhdGEuaCAqLzsgfTsKIAkJQThBNDc0OEMxNTFBODI2NDAwNDEyM0ZGIC8qIGNv
bmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1
M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJl
RGVmaW5lcy5oICovOyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMuY3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VDMUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTMxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi87IH07CisJ
CUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Ez
N0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAq
LzsgfTsKKwkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksuY3BwICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YwMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U3MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLzsgfTsKKwkJ
QzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwICovOyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkz
NjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgKi87IH07CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKQEAgLTM0Myw2ICszNjMsMTMgQEAKIAkJ
CXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVt
b3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsK
KwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0
IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9
IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3Vy
Y2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRh
aW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAq
LzsKQEAgLTQzNSw2ICs0NjIsMTggQEAKIAkJMUMxODFDOEQxRDMwN0FCODAwRjVGQTE2IC8qIFVU
ZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzE4MUM4RTFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZBMTYgLyogVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHBhdGggPSBtYWMv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NTFENTU5QTY5MDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
QjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25D
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkxRDU1OUFFRjAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0OyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUMx
RDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNv
dXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMubWFrZTsgcGF0aCA9IHd0Zi9EZXJp
dmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1c2VzVGFicyA9IDE7IH07
CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQ7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RFQyAvKiBMaW5lQnJlYWtJ
dGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODgx
NTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJU
b1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50
ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjU2LDYgKzY5NSwxNSBAQAogCQlBOEE0NzM3QjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFk
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZUaHJlYWREYXRhLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAv
KiBjb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBG
ZWF0dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJl
RGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMDFENTVDOTcx
MDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7
IHBhdGggPSBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
MkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBN
ZWRpYVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjMsNiArNzcxLDI0IEBACiAJCQlwYXRo
ID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUNEMTg3OTExRDU1
OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RF
QyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLywKKwkJCQkxQ0I0RkI5NDFENTU5
QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8sCisJCQkJMUNC
NEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0
ICovLAorCQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLywKKwkJ
CQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5
RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQg
Ki8sCisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTc0NCwxMCArODEwLDEyIEBA
CiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3Vy
Y2VzLm1ha2UgKi8sCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAwRTc4Qjc2IC8qIENvbmZpZ3VyYXRp
b25zICovLAogCQkJCTE0MDIyRjNGMThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJ
CQkJNUQyNDdCNjMxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2R1Y3RzICovLAogCQkJCTVEMjQ3Qjc2
MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJCQkJQzJDQTM3REYxRDU1QzhEODAwNDg2
Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYg
LyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZG
IC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtMTA4MCw2ICsxMTQ4LDcgQEAKIAkJ
QThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVh
a2luZ1J1bGVzICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3UgKi8sCiAJ
CQkJQTVCQTE1RjYxODI0MzU5RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCUE1QkExNUYxMTgyNDMz
OUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMTU1LDYgKzEyMjQsMjMgQEAKIAkJCXBhdGggPSBp
Y3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkNBMzdERjFENTVDOEQ4
MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTIxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi8sCisJCQkJ
QzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNjFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAg
Ki8sCisJCQkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSksuY3BwICovLAorCQkJCUMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0g
IkRlcml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvV1RGOworCQkJc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsKIAkJQ0U0NjUxNkMxOURCMUZCNDAw
M0VDQTA1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTE0NjYsNiArMTU1Miw3IEBACiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRl
cGVuZGVuY2llcyA9ICgKKwkJCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gV1RGOwpAQCAtMTQ5NiwxMiArMTU4Mywy
NyBAQAogCQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RG
ICovLAogCQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICov
LAorCQkJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJ
CQkJMTQ0N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFsbG9jICovLAogCQkJKTsKIAkJfTsK
IC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRC
dWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVy
YXRlIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQ
aGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJ
CSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgRGVyaXZl
ZCBTb3VyY2VzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNo
ZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzL1dURlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZc
IlxuXG4vYmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV1RGXG5leHBvcnQgV1RGPVwiV1RGXCJc
blxuaWYgWyAhIC1kIEJyZWFraW5nUnVsZXMgXTsgdGhlblxuICAgIG1rZGlyIEJyZWFraW5nUnVs
ZXNcbmZpXG5cbmV4cG9ydCBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTPTFcbmlmIFsgXCIkU0RL
X1ZFUlNJT05cIiA9PSBcIjEwLjEwXCIgXTsgdGhlblxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQ9MFxuZWxzZVxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9
MVxuZmlcblxuaWYgWyBcIiR7QUNUSU9OfVwiID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJT059XCIg
PSBcImluc3RhbGxcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsaGRyc1wiIC1vIFwiJHtB
Q1RJT059XCIgPSBcImluc3RhbGxhcGlcIiBdOyB0aGVuXG5tYWtlIC0tbm8tYnVpbHRpbi1ydWxl
cyAtZiBcIldURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3Rs
IC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9PVD1cIiR7U0RLUk9PVH1cIlxuZmlcbiI7CisJCX07CiAJ
CTY1QUZBMTcwMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovID0gewogCQkJ
aXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKQEAgLTE1MzIsNiArMTYzNCw4IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQThBNDczODYxNTFBODI1QjAwNDEyM0ZGIC8qIEFz
c2VydGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzUxNTFBODI1QjAwNDEy
M0ZGIC8qIEF0b21pY1N0cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MEVDQTYwRDFCMDI0
MjY4MDA0NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NUJBMTVGQTE4MjQzNUE2MDBBODJFNjkgLyogQXRvbWljU3RyaW5nSW1wbENGLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTU1OSw2ICsxNjYzLDcgQEAKIAkJCQlBOEE0NzNCMDE1MUE4MjVCMDA0MTIz
RkYgLyogZG91YmxlLWNvbnZlcnNpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCQTE1
MUE4MjVCMDA0MTIzRkYgLyogZHRvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCMzE1
MUE4MjVCMDA0MTIzRkYgLyogZmFzdC1kdG9hLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3
RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEY4ODVFMEYxODQ1QUVBOTAwRjFFM0ZBIC8qIEZhc3RCaXRWZWN0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQzMxNTFBODI1QjAwNDEyM0ZGIC8qIEZh
c3RNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRENFRTIyMDExQ0VBNzU1MTAwMEMyMzk2
IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0gaW4gU291cmNlcyAqLywKQEAgLTE1NzQsNiArMTY3
OSw3IEBACiAJCQkJQThBNDczRTkxNTFBODI1QjAwNDEyM0ZGIC8qIE1ENS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDRDU0OTdBQzE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0VDMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9y
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3
M0Y0MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QTQ3M0Y3MTUxQTgyNUIwMDQxMjNGRiAvKiBPU0FsbG9jYXRvclBvc2l4LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0Y5MTUxQTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJj
ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1ODEsNiArMTY4Nyw3IEBACiAJCQkJMUMxODFDOTMx
RDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkZGMTlEQzFCQjMzNEVCMDA4ODZEOTEgLyogUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGODI0QTY4MUI3NDQzQTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQz
MzYyMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNDNGNjExRjE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTYxNSw5ICsxNzIyLDEzIEBACiAJCQkJQThBNDc0NEExNTFBODI1QjAwNDEy
M0ZGIC8qIFRocmVhZGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0RTE1MUE4MjVC
MDA0MTIzRkYgLyogVGhyZWFkaW5nUHRocmVhZHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDc0NjkxNTFBODI1QjAwNDEyM0ZGIC8qIFVURjguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJD
QTM3RUMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNK
Sy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRkE0N0M4QTE1MjUwMkRBMDA1NjhEMUIgLyogV2Vi
Q29yZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkU0NDc5QzFCN0FBQTAzMDA5NDk4
RUIgLyogV29yZExvY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RTkxRDU1Qzk3MTAw
NDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDRUUyMjAzMUNFQTc1NTEwMDBDMjM5NiAv
KiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gaW4gU291cmNlcyAqLywKKwkJ
CQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzOTFBOTYyNDU1MDA1MzZERjYgLyogV29ya1F1
ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0QTBBRDNEMUE5NjI1M0MwMDUzNkRGNiAvKiBX
b3JrUXVldWVDb2NvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0NTE1MUE4MjVCMDA0
MTIzRkYgLyogV1RGU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTYzMyw2ICsxNzQ0LDEx
IEBACiAJCQl0YXJnZXQgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovOwogCQkJ
dGFyZ2V0UHJveHkgPSAxNDQ3QUVDMzE4RkNFNTcwMDBCM0Q3RkYgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovOwogCQl9OworCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJn
ZXQgPSAxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovOworCQkJ
dGFyZ2V0UHJveHkgPSAxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovOworCQl9OwogCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJn
ZXQgPSA2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLzsKQEAg
LTE2NjIsNiArMTc3OCwzMCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9Owor
CQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1
aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNjU0MUNB
RjQxNjMwREIyNjAwNkQwREVDIC8qIENvcHlXVEZIZWFkZXJzLnhjY29uZmlnICovOworCQkJYnVp
bGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJ
fTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVDIC8q
IFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VD
b25maWd1cmF0aW9uUmVmZXJlbmNlID0gNjU0MUNBRjQxNjMwREIyNjAwNkQwREVDIC8qIENvcHlX
VEZIZWFkZXJzLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNU
X05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9
OworCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlz
YSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2Ug
PSA2NTQxQ0FGNDE2MzBEQjI2MDA2RDBERUMgLyogQ29weVdURkhlYWRlcnMueGNjb25maWcgKi87
CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1F
KSI7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjY0MTQ2ODlC
ODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9u
OwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhC
NzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOwpAQCAtMTc0NSw2ICsxODg1LDE2IEBACiAJ
CQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJh
dGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMg
LyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2
ZWQgU291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVp
bGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVi
dWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJ
MUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVm
YXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25O
YW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1
aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV1RGIiAqLyA9IHsKIAkJCWlz
YSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmggYi9Tb3VyY2UvV1RGL2lj
dS91bmljb2RlL2Jya2l0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWE1ZTU1Mjc5NjA5MGVhZWJjZDdjZTdi
N2QyNzVhYThiMzc3NWI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9icmtpdGVyLmgKQEAgLTAsMCArMSw2NTUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1h
Y2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxlIGJya2l0ZXIuaAorKgorKiBNb2Rp
ZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlw
dGlvbgorKiAgIDAyLzE4Lzk3ICAgIGFsaXUgICAgICAgIEFkZGVkIHR5cGVkZWYgZm9yIFRleHRD
b3VudC4gIE1hZGUgRE9ORSBjb25zdC4KKyogICAwNS8wNy85NyAgICBhbGl1ICAgICAgICBGaXhl
ZCBETEwgZGVjbGFyYXRpb24uCisqICAgMDcvMDkvOTcgICAgamZpdHogICAgICAgUmVuYW1lZCBC
cmVha0l0ZXJhdG9yIGFuZCBpbnRlcmZhY2Ugc3luY2VkIHdpdGggSkRLCisqICAgMDgvMTEvOTgg
ICAgaGVsZW5hICAgICAgU3luYy11cCBKREsxLjIuCisqICAgMDEvMTMvMjAwMCAgaGVsZW5hICAg
ICAgQWRkZWQgVUVycm9yQ29kZSBwYXJhbWV0ZXIgdG8gY3JlYXRlWFhYSW5zdGFuY2UgbWV0aG9k
cy4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIEJSS0lURVJfSAorI2Rl
ZmluZSBCUktJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICog
XGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBCcmVhayBJdGVyYXRvci4KKyAqLworCisjaWYgVUNP
TkZJR19OT19CUkVBS19JVEVSQVRJT04KKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoKKyAqIEFs
bG93IHRoZSBkZWNsYXJhdGlvbiBvZiBBUElzIHdpdGggcG9pbnRlcnMgdG8gQnJlYWtJdGVyYXRv
cgorICogZXZlbiB3aGVuIGJyZWFrIGl0ZXJhdGlvbiBpcyByZW1vdmVkIGZyb20gdGhlIGJ1aWxk
LgorICovCitjbGFzcyBCcmVha0l0ZXJhdG9yOworCitVX05BTUVTUEFDRV9FTkQKKworI2Vsc2UK
KworI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3Ry
LmgiCisjaW5jbHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9j
aWQuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VicmsuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVu
dW0uaCIKKyNpbmNsdWRlICJ1bmljb2RlL3V0ZXh0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bWlz
Yy5oIgorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFRoZSBCcmVha0l0ZXJhdG9yIGNs
YXNzIGltcGxlbWVudHMgbWV0aG9kcyBmb3IgZmluZGluZyB0aGUgbG9jYXRpb24KKyAqIG9mIGJv
dW5kYXJpZXMgaW4gdGV4dC4gQnJlYWtJdGVyYXRvciBpcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNz
LgorICogSW5zdGFuY2VzIG9mIEJyZWFrSXRlcmF0b3IgbWFpbnRhaW4gYSBjdXJyZW50IHBvc2l0
aW9uIGFuZCBzY2FuIG92ZXIKKyAqIHRleHQgcmV0dXJuaW5nIHRoZSBpbmRleCBvZiBjaGFyYWN0
ZXJzIHdoZXJlIGJvdW5kYXJpZXMgb2NjdXIuCisgKiA8cD4KKyAqIExpbmUgYm91bmRhcnkgYW5h
bHlzaXMgZGV0ZXJtaW5lcyB3aGVyZSBhIHRleHQgc3RyaW5nIGNhbiBiZSBicm9rZW4KKyAqIHdo
ZW4gbGluZS13cmFwcGluZy4gVGhlIG1lY2hhbmlzbSBjb3JyZWN0bHkgaGFuZGxlcyBwdW5jdHVh
dGlvbiBhbmQKKyAqIGh5cGhlbmF0ZWQgd29yZHMuCisgKiA8cD4KKyAqIFNlbnRlbmNlIGJvdW5k
YXJ5IGFuYWx5c2lzIGFsbG93cyBzZWxlY3Rpb24gd2l0aCBjb3JyZWN0CisgKiBpbnRlcnByZXRh
dGlvbiBvZiBwZXJpb2RzIHdpdGhpbiBudW1iZXJzIGFuZCBhYmJyZXZpYXRpb25zLCBhbmQKKyAq
IHRyYWlsaW5nIHB1bmN0dWF0aW9uIG1hcmtzIHN1Y2ggYXMgcXVvdGF0aW9uIG1hcmtzIGFuZCBw
YXJlbnRoZXNlcy4KKyAqIDxwPgorICogV29yZCBib3VuZGFyeSBhbmFseXNpcyBpcyB1c2VkIGJ5
IHNlYXJjaCBhbmQgcmVwbGFjZSBmdW5jdGlvbnMsIGFzCisgKiB3ZWxsIGFzIHdpdGhpbiB0ZXh0
IGVkaXRpbmcgYXBwbGljYXRpb25zIHRoYXQgYWxsb3cgdGhlIHVzZXIgdG8KKyAqIHNlbGVjdCB3
b3JkcyB3aXRoIGEgZG91YmxlIGNsaWNrLiBXb3JkIHNlbGVjdGlvbiBwcm92aWRlcyBjb3JyZWN0
CisgKiBpbnRlcnByZXRhdGlvbiBvZiBwdW5jdHVhdGlvbiBtYXJrcyB3aXRoaW4gYW5kIGZvbGxv
d2luZworICogd29yZHMuIENoYXJhY3RlcnMgdGhhdCBhcmUgbm90IHBhcnQgb2YgYSB3b3JkLCBz
dWNoIGFzIHN5bWJvbHMgb3IKKyAqIHB1bmN0dWF0aW9uIG1hcmtzLCBoYXZlIHdvcmQtYnJlYWtz
IG9uIGJvdGggc2lkZXMuCisgKiA8cD4KKyAqIENoYXJhY3RlciBib3VuZGFyeSBhbmFseXNpcyBh
bGxvd3MgdXNlcnMgdG8gaW50ZXJhY3Qgd2l0aAorICogY2hhcmFjdGVycyBhcyB0aGV5IGV4cGVj
dCB0bywgZm9yIGV4YW1wbGUsIHdoZW4gbW92aW5nIHRoZSBjdXJzb3IKKyAqIHRocm91Z2ggYSB0
ZXh0IHN0cmluZy4gQ2hhcmFjdGVyIGJvdW5kYXJ5IGFuYWx5c2lzIHByb3ZpZGVzIGNvcnJlY3QK
KyAqIG5hdmlnYXRpb24gb2YgdGhyb3VnaCBjaGFyYWN0ZXIgc3RyaW5ncywgcmVnYXJkbGVzcyBv
ZiBob3cgdGhlCisgKiBjaGFyYWN0ZXIgaXMgc3RvcmVkLiAgRm9yIGV4YW1wbGUsIGFuIGFjY2Vu
dGVkIGNoYXJhY3RlciBtaWdodCBiZQorICogc3RvcmVkIGFzIGEgYmFzZSBjaGFyYWN0ZXIgYW5k
IGEgZGlhY3JpdGljYWwgbWFyay4gV2hhdCB1c2VycworICogY29uc2lkZXIgdG8gYmUgYSBjaGFy
YWN0ZXIgY2FuIGRpZmZlciBiZXR3ZWVuIGxhbmd1YWdlcy4KKyAqIDxwPgorICogVGhlIHRleHQg
Ym91bmRhcnkgcG9zaXRpb25zIGFyZSBmb3VuZCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzCisgKiBk
ZXNjcmliZWQgaW4gVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMjksIFRleHQgQm91bmRhcmllcywg
YW5kCisgKiBVbmljb2RlIFN0YW5kYXJkIEFubmV4ICMxNCwgTGluZSBCcmVha2luZyBQcm9wZXJ0
aWVzLiAgVGhlc2UKKyAqIGFyZSBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy51bmljb2RlLm9yZy9y
ZXBvcnRzL3RyMTQvIGFuZAorICogaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkv
LgorICogPHA+CisgKiBJbiBhZGRpdGlvbiB0byB0aGUgQysrIEFQSSBkZWZpbmVkIGluIHRoaXMg
aGVhZGVyIGZpbGUsIGEKKyAqIHBsYWluIEMgQVBJIHdpdGggZXF1aXZhbGVudCBmdW5jdGlvbmFs
aXR5IGlzIGRlZmluZWQgaW4gdGhlCisgKiBmaWxlIHVicmsuaAorICogPHA+CisgKiBDb2RlIHNu
aXBwZXRzIGlsbHVzdHJhdGluZyB0aGUgdXNlIG9mIHRoZSBCcmVhayBJdGVyYXRvciBBUElzCisg
KiBhcmUgYXZhaWxhYmxlIGluIHRoZSBJQ1UgVXNlciBHdWlkZSwKKyAqIGh0dHA6Ly9pY3UtcHJv
amVjdC5vcmcvdXNlcmd1aWRlL2JvdW5kYXJ5QW5hbHlzaXMuaHRtbAorICogYW5kIGluIHRoZSBz
YW1wbGUgcHJvZ3JhbSBpY3Uvc291cmNlL3NhbXBsZXMvYnJlYWsvYnJlYWsuY3BwCisgKgorICov
CitjbGFzcyBVX0NPTU1PTl9BUEkgQnJlYWtJdGVyYXRvciA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1
YmxpYzoKKyAgICAvKioKKyAgICAgKiAgZGVzdHJ1Y3RvcgorICAgICAqICBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIH5CcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm4gdHJ1ZSBpZiBhbm90aGVyIG9iamVjdCBpcyBzZW1hbnRpY2FsbHkgZXF1YWwg
dG8gdGhpcworICAgICAqIG9uZS4gVGhlIG90aGVyIG9iamVjdCBzaG91bGQgYmUgYW4gaW5zdGFu
Y2Ugb2YgdGhlIHNhbWUgc3ViY2xhc3Mgb2YKKyAgICAgKiBCcmVha0l0ZXJhdG9yLiBPYmplY3Rz
IG9mIGRpZmZlcmVudCBzdWJjbGFzc2VzIGFyZSBjb25zaWRlcmVkCisgICAgICogdW5lcXVhbC4K
KyAgICAgKiA8UD4KKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIEJyZWFrSXRlcmF0b3IgaXMg
YXQgdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlCisgICAgICogc2FtZSB0ZXh0LCBhbmQgaXMgdGhl
IHNhbWUgY2xhc3MgYW5kIHR5cGUgKHdvcmQsIGxpbmUsIGV0Yy4pIG9mCisgICAgICogQnJlYWtJ
dGVyYXRvciwgYXMgdGhlIGFyZ3VtZW50LiAgVGV4dCBpcyBjb25zaWRlcmVkIHRoZSBzYW1lIGlm
CisgICAgICogaXQgY29udGFpbnMgdGhlIHNhbWUgY2hhcmFjdGVycywgaXQgbmVlZCBub3QgYmUg
dGhlIHNhbWUKKyAgICAgKiBvYmplY3QsIGFuZCBzdHlsZXMgYXJlIG5vdCBjb25zaWRlcmVkLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0
b3I9PShjb25zdCBCcmVha0l0ZXJhdG9yJikgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICog
UmV0dXJucyB0aGUgY29tcGxlbWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJhdG9yPT0KKyAgICAg
KiBAcGFyYW0gcmhzIFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFs
aXR5CisgICAgICogQHJldHVybiB0aGUgY29tcGxlbWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJh
dG9yPT0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCBvcGVyYXRv
ciE9KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHJocykgY29uc3QgeyByZXR1cm4gIW9wZXJhdG9yPT0o
cmhzKTsgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcG9seW1vcnBoaWMgY29weSBvZiB0
aGlzIG9iamVjdC4gIFRoaXMgaXMgYW4gYWJzdHJhY3QKKyAgICAgKiBtZXRob2Qgd2hpY2ggc3Vi
Y2xhc3NlcyBpbXBsZW1lbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBCcmVha0l0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm4gYSBwb2x5bW9ycGhpYyBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuIERp
ZmZlcmVudCBzdWJjbGFzc2VzCisgICAgICogd2lsbCByZXR1cm4gZGlzdGluY3QgdW5lcXVhbCB2
YWx1ZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xh
c3NJRCBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm4gYSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVk
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQ2hhcmFjdGVy
SXRlcmF0b3ImIGdldFRleHQodm9pZCkgY29uc3QgPSAwOworCisKKyAgICAvKioKKyAgICAgICog
IEdldCBhIFVUZXh0IGZvciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgICogIFRoZSBy
ZXR1cm5lZCBVVGV4dCBpcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIFVUZXh0IHVzZWQgaW50ZXJu
YWxseQorICAgICAgKiAgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uLiAgSXQg
Y2FuIHNhZmVseSBiZSB1c2VkIHRvCisgICAgICAqICBhY2Nlc3MgdGhlIHRleHQgd2l0aG91dCBp
bXBhY3RpbmcgYW55IGJyZWFrIGl0ZXJhdG9yIG9wZXJhdGlvbnMsCisgICAgICAqICBidXQgdGhl
IHVuZGVybHlpbmcgdGV4dCBpdHNlbGYgbXVzdCBub3QgYmUgYWx0ZXJlZC4KKyAgICAgICoKKyAg
ICAgICogQHBhcmFtIGZpbGxJbiBBIFVUZXh0IHRvIGJlIGZpbGxlZCBpbi4gIElmIE5VTEwsIGEg
bmV3IFVUZXh0IHdpbGwgYmUKKyAgICAgICogICAgICAgICAgIGFsbG9jYXRlZCB0byBob2xkIHRo
ZSByZXN1bHQuCisgICAgICAqIEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVz
LgorICAgICAgKiBAcmV0dXJuICAgVGhlIGN1cnJlbnQgVVRleHQgZm9yIHRoaXMgYnJlYWsgaXRl
cmF0b3IuICBJZiBhbiBpbnB1dAorICAgICAgKiAgICAgICAgICAgVVRleHQgd2FzIHByb3ZpZGVk
LCBpdCB3aWxsIGFsd2F5cyBiZSByZXR1cm5lZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMy40Cisg
ICAgICAqLworICAgICB2aXJ0dWFsIFVUZXh0ICpnZXRVVGV4dChVVGV4dCAqZmlsbEluLCBVRXJy
b3JDb2RlICZzdGF0dXMpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIENoYW5nZSB0aGUg
dGV4dCBvdmVyIHdoaWNoIHRoaXMgb3BlcmF0ZXMuIFRoZSB0ZXh0IGJvdW5kYXJ5IGlzCisgICAg
ICogcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBVbmljb2RlU3Ry
aW5nIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nICZ0ZXh0
KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdG8gb3Bl
cmF0ZSBvdmVyIHRoZSB0ZXh0IHJlcHJlc2VudGVkIGJ5CisgICAgICogdGhlIFVUZXh0LiAgVGhl
IGl0ZXJhdG9yIHBvc2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKgorICAgICAq
IFRoaXMgZnVuY3Rpb24gbWFrZXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBzdXBwbGllZCBVVGV4
dC4gIFRoaXMgbWVhbnMKKyAgICAgKiB0aGF0IHRoZSBjYWxsZXIgaXMgZnJlZSB0byBpbW1lZGlh
dGVseSBjbG9zZSBvciBvdGhlcndpc2UgcmV1c2UgdGhlCisgICAgICogVXRleHQgdGhhdCB3YXMg
cGFzc2VkIGFzIGEgcGFyYW1ldGVyLCBidXQgdGhhdCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2Vs
ZgorICAgICAqIG11c3Qgbm90IGJlIGFsdGVyZWQgd2hpbGUgYmVpbmcgcmVmZXJlbmNlZCBieSB0
aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBBbGwgaW5kZXggcG9zaXRpb25zIHJl
dHVybmVkIGJ5IGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyBhcmUKKyAgICAgKiBuYXRpdmUgaW5k
aWNlcyBmcm9tIHRoZSBVVGV4dC4gRm9yIGV4YW1wbGUsIHdoZW4gYnJlYWtpbmcgVVRGLTgKKyAg
ICAgKiBlbmNvZGVkIHRleHQsIHRoZSBicmVhayBwb3NpdGlvbnMgcmV0dXJuZWQgYnkgbmV4dCgp
LCBwcmV2aW91cygpLCBldGMuCisgICAgICogd2lsbCBiZSBVVEYtOCBzdHJpbmcgaW5kaWNlcywg
bm90IFVURi0xNiBwb3NpdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgVVRl
eHQgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZl
cyBhbnkgZXJyb3IgY29kZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICovCisgICAg
dmlydHVhbCB2b2lkICBzZXRUZXh0KFVUZXh0ICp0ZXh0LCBVRXJyb3JDb2RlICZzdGF0dXMpID0g
MDsKKworICAgIC8qKgorICAgICAqIENoYW5nZSB0aGUgdGV4dCBvdmVyIHdoaWNoIHRoaXMgb3Bl
cmF0ZXMuIFRoZSB0ZXh0IGJvdW5kYXJ5IGlzCisgICAgICogcmVzZXQgdG8gdGhlIHN0YXJ0Lgor
ICAgICAqIE5vdGUgdGhhdCBzZXRUZXh0KFVUZXh0ICopIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rp
b25hbGl0eSB0byB0aGlzIGZ1bmN0aW9uLAorICAgICAqIGFuZCBpcyBtb3JlIGVmZmljaWVudC4K
KyAgICAgKiBAcGFyYW0gaXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHVzZWQgdG8gY2hhbmdlIHRo
ZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9p
ZCAgYWRvcHRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKiBpdCkgPSAwOworCisgICAgZW51bSB7Cisg
ICAgICAgIC8qKgorICAgICAgICAgKiBET05FIGlzIHJldHVybmVkIGJ5IHByZXZpb3VzKCkgYW5k
IG5leHQoKSBhZnRlciBhbGwgdmFsaWQKKyAgICAgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4g
cmV0dXJuZWQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAg
ICAgRE9ORSA9IChpbnQzMl90KS0xCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhl
IGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQs
IHBvc2l0aW9uIHplcm8uCisgICAgICogQHJldHVybiBUaGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5p
bmcgb2YgdGhlIHRleHQsIHplcm8uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBpbnQzMl90IGZpcnN0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNl
dCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGluZGV4IGltbWVkaWF0ZWx5IEJFWU9ORCB0
aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgYmVpbmcgc2Nhbm5lZC4KKyAgICAgKiBAcmV0
dXJuIFRoZSBpbmRleCBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRo
ZSB0ZXh0IGJlaW5nIHNjYW5uZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBpbnQzMl90IGxhc3Qodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0
IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgYm91bmRhcnkgcHJlY2VkaW5nIHRoZSBjdXJy
ZW50IGJvdW5kYXJ5LgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUg
cHJldmlvdXMgdGV4dCBib3VuZGFyeSBvciBET05FIGlmIGFsbAorICAgICAqIGJvdW5kYXJpZXMg
aGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBwcmV2aW91cyh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBB
ZHZhbmNlIHRoZSBpdGVyYXRvciB0byB0aGUgYm91bmRhcnkgZm9sbG93aW5nIHRoZSBjdXJyZW50
IGJvdW5kYXJ5LgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgbmV4
dCB0ZXh0IGJvdW5kYXJ5IG9yIERPTkUgaWYgYWxsCisgICAgICogYm91bmRhcmllcyBoYXZlIGJl
ZW4gcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90IG5leHQodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGNoYXJh
Y3RlciBpbmRleCBvZiB0aGUgY3VycmVudCBpbnRlcmF0b3IgcG9zaXRpb24gd2l0aGluIHRoZSB0
ZXh0LgorICAgICAqIEByZXR1cm4gVGhlIGJvdW5kYXJ5IG1vc3QgcmVjZW50bHkgcmV0dXJuZWQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGN1
cnJlbnQodm9pZCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogQWR2YW5jZSB0aGUgaXRl
cmF0b3IgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIG9mZnNl
dC4KKyAgICAgKiBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgYWx3YXlzIGdyZWF0ZXIgdGhhbiB0aGUg
b2Zmc2V0IG9yCisgICAgICogdGhlIHZhbHVlIEJyZWFrSXRlcmF0b3IuRE9ORQorICAgICAqIEBw
YXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KKyAgICAgKiBAcmV0dXJu
IFRoZSBmaXJzdCBib3VuZGFyeSBhZnRlciB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZm9sbG93aW5nKGlu
dDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBv
c2l0aW9uIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIHNwZWNpZmllZCBvZmZz
ZXQuCisgICAgICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5cyBzbWFsbGVyIHRoYW4gdGhl
IG9mZnNldCBvcgorICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0ZXJhdG9yLkRPTkUKKyAgICAgKiBA
cGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nhbm5pbmcuCisgICAgICogQHJldHVy
biBUaGUgZmlyc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmco
aW50MzJfdCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRo
ZSBzcGVjZmllZCBwb3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEFzIGEg
c2lkZSBlZmZlY3QsIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRvciBpcyBzZXQK
KyAgICAgKiB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gYXQgb3IgZm9sbG93aW5nIHRo
ZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBj
aGVjay4KKyAgICAgKiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMgYSBib3VuZGFyeSBwb3Np
dGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29s
IGlzQm91bmRhcnkoaW50MzJfdCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0
aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIG50aCBib3VuZGFyeSBmcm9tIHRoZSBjdXJyZW50
IGJvdW5kYXJ5CisgICAgICogQHBhcmFtIG4gdGhlIG51bWJlciBvZiBib3VuZGFyaWVzIHRvIG1v
dmUgYnkuICBBIHZhbHVlIG9mIDAKKyAgICAgKiBkb2VzIG5vdGhpbmcuICBOZWdhdGl2ZSB2YWx1
ZXMgbW92ZSB0byBwcmV2aW91cyBib3VuZGFyaWVzCisgICAgICogYW5kIHBvc2l0aXZlIHZhbHVl
cyBtb3ZlIHRvIGxhdGVyIGJvdW5kYXJpZXMuCisgICAgICogQHJldHVybiBUaGUgbmV3IGl0ZXJh
dG9yIHBvc2l0aW9uLCBvcgorICAgICAqIERPTkUgaWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gfG58
IGJvdW5kYXJpZXMgaW4gdGhlIHNwZWNmaWVkIGRpcmVjdGlvbi4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dChpbnQzMl90IG4pID0gMDsK
KworICAgLyoqCisgICAgICogRm9yIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JzLCByZXR1cm4gdGhl
IHN0YXR1cyB0YWcgZnJvbSB0aGUgCisgICAgICogYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQg
dGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAg
KiA8cD4KKyAgICAgKiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9y
dCBhIHJ1bGUgc3RhdHVzLAorICAgICAqIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVk
LgorICAgICAqIDxwPgorICAgICAqIEByZXR1cm4gdGhlIHN0YXR1cyBmcm9tIHRoZSBicmVhayBy
dWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqICAgICAgICAgcmV0
dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgICogQHNlZSBSdWxlQmFzZUJyZWFrSXRlcmF0b3I6
OmdldFJ1bGVTdGF0dXMoKQorICAgICAqIEBzZWUgVVdvcmRCcmVhaworICAgICAqIEBzdGFibGUg
SUNVIDUyCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXMoKSBjb25z
dDsKKworICAgLyoqCisgICAgKiBGb3IgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcnMsIGdldCB0aGUg
c3RhdHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIAorICAgICogdGhhdCBk
ZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAg
ICogPHA+CisgICAgKiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9y
dCBydWxlIHN0YXR1cywKKyAgICAqIG5vIHZhbHVlcyBhcmUgcmV0dXJuZWQuCisgICAgKiA8cD4K
KyAgICAqIFRoZSByZXR1cm5lZCBzdGF0dXMgdmFsdWUocykgYXJlIHN0b3JlZCBpbnRvIGFuIGFy
cmF5IHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9yZWQg
aW4gc29ydGVkIChhc2NlbmRpbmcpIG9yZGVyLgorICAgICogSWYgdGhlIGNhcGFjaXR5IG9mIHRo
ZSBvdXRwdXQgYXJyYXkgaXMgaW5zdWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgICAgKiAg
dGhlIG91dHB1dCB3aWxsIGJlIHRydW5jYXRlZCB0byB0aGUgYXZhaWxhYmxlIGxlbmd0aCwgYW5k
IGEKKyAgICAqICBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiB3aWxsIGJlIHNpZ25hbGVkLgorICAg
ICogPHA+CisgICAgKiBAc2VlIFJ1bGVCYXNlQnJlYWtJdGVyYXRvcjo6Z2V0UnVsZVN0YXR1c1Zl
YworICAgICoKKyAgICAqIEBwYXJhbSBmaWxsSW5WZWMgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGlu
IHdpdGggdGhlIHN0YXR1cyB2YWx1ZXMuCisgICAgKiBAcGFyYW0gY2FwYWNpdHkgIHRoZSBsZW5n
dGggb2YgdGhlIHN1cHBsaWVkIHZlY3Rvci4gIEEgbGVuZ3RoIG9mIHplcm8gY2F1c2VzCisgICAg
KiAgICAgICAgICAgICAgICAgIHRoZSBmdW5jdGlvbiB0byByZXR1cm4gdGhlIG51bWJlciBvZiBz
dGF0dXMgdmFsdWVzLCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgbm9ybWFsIHdheSwg
d2l0aG91dCBhdHRlbXRwaW5nIHRvIHN0b3JlIGFueSB2YWx1ZXMuCisgICAgKiBAcGFyYW0gc3Rh
dHVzICAgIHJlY2VpdmVzIGVycm9yIGNvZGVzLgorICAgICogQHJldHVybiAgICAgICAgICBUaGUg
bnVtYmVyIG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZAor
ICAgICogICAgICAgICAgICAgICAgICB0aGUgbW9zdCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQg
YnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICogICAgICAgICAgICAgICAgICBJbiB0aGUgZXZl
bnQgb2YgYSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdGhlIHJldHVybiB2YWx1ZQorICAgICog
ICAgICAgICAgICAgICAgICBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhh
dCB3ZXJlIGF2YWlsYWJsZSwKKyAgICAqICAgICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2Vk
IG51bWJlciB0aGF0IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQuCisgICAgKiBAc2VlIGdldFJ1bGVT
dGF0dXMKKyAgICAqIEBzdGFibGUgSUNVIDUyCisgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3Qg
Z2V0UnVsZVN0YXR1c1ZlYyhpbnQzMl90ICpmaWxsSW5WZWMsIGludDMyX3QgY2FwYWNpdHksIFVF
cnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRv
ciBmb3Igd29yZC1icmVha3MgdXNpbmcgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBSZXR1cm5z
IGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgd29yZCBicmVha3Mu
CisgICAgICogV29yZEJyZWFrIGlzIHVzZWZ1bCBmb3Igd29yZCBzZWxlY3Rpb24gKGV4LiBkb3Vi
bGUgY2xpY2spCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFt
IHN0YXR1cyB0aGUgZXJyb3IgY29kZQorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZv
ciB3b3JkLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIg
aXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAq
IFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ug
c2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91
IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZv
ciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vz
cy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxs
IGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMg
cmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAg
ICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZh
dWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBs
b2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBm
b3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMg
cmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVXb3Jk
SW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAg
IC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBsaW5lLWJyZWFrcyB1c2luZyBz
cGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0
ZXJhdG9yIGltcGxlbWVudGluZyBsaW5lIGJyZWFrcy4gTGluZQorICAgICAqIGJyZWFrcyBhcmUg
bG9naWNhbGx5IHBvc3NpYmxlIGxpbmUgYnJlYWtzLCBhY3R1YWwgbGluZSBicmVha3MgYXJlCisg
ICAgICogdXN1YWxseSBkZXRlcm1pbmVkIGJhc2VkIG9uIGRpc3BsYXkgd2lkdGguCisgICAgICog
TGluZUJyZWFrIGlzIHVzZWZ1bCBmb3Igd29yZCB3cmFwcGluZyB0ZXh0LgorICAgICAqIEBwYXJh
bSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUu
CisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIGxpbmUtYnJlYWtzLiAgVGhlIFVF
cnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0
dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUg
Y29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0
aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGlu
Zm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3Ig
cmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFM
TEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQu
ICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5n
IHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZB
VUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisg
ICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBm
YWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxs
ZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRp
bmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFr
SXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZUxpbmVJbnN0YW5jZShjb25zdCBMb2NhbGUm
IHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJy
ZWFrSXRlcmF0b3IgZm9yIGNoYXJhY3Rlci1icmVha3MgdXNpbmcgc3BlY2lmaWVkIGxvY2FsZQor
ICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGlu
ZyBjaGFyYWN0ZXIgYnJlYWtzLgorICAgICAqIENoYXJhY3RlciBicmVha3MgYXJlIGJvdW5kYXJp
ZXMgb2YgY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMuCisgICAgICogQHBhcmFtIHdoZXJl
IHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAg
KiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3IgY2hhcmFjdGVyLWJyZWFrcy4gIFRoZSBVRXJy
b3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVz
IGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNv
bnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhl
IHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZv
cm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJl
c3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExC
QUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAg
Rm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3
YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVM
VF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAg
ICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFs
bCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVy
IG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5n
IGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0
ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVDaGFyYWN0ZXJJbnN0YW5jZShjb25zdCBMb2Nh
bGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRl
IEJyZWFrSXRlcmF0b3IgZm9yIHNlbnRlbmNlLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxl
CisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50
aW5nIHNlbnRlbmNlIGJyZWFrcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAg
ICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVh
a0l0ZXJhdG9yIGZvciBzZW50ZW5jZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisg
ICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0
aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2Vl
ZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NF
U1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAg
ICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxs
IGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGlj
YXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1w
bGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBz
byAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0
ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVy
IHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisg
ICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5l
ZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQy
CisgICAgY3JlYXRlU2VudGVuY2VJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JD
b2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9y
IHRpdGxlLWNhc2luZyBicmVha3MgdXNpbmcgdGhlIHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBS
ZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgdGl0bGUg
YnJlYWtzLgorICAgICAqIFRoZSBpdGVyYXRvciByZXR1cm5lZCBsb2NhdGVzIHRpdGxlIGJvdW5k
YXJpZXMgYXMgZGVzY3JpYmVkIGZvcgorICAgICAqIFVuaWNvZGUgMy4yIG9ubHkuIEZvciBVbmlj
b2RlIDQuMCBhbmQgYWJvdmUgdGl0bGUgYm91bmRhcnkgaXRlcmF0aW9uLAorICAgICAqIHBsZWFz
ZSB1c2UgV29yZCBCb3VuZGFyeSBpdGVyYXRvci57QGxpbmsgI2NyZWF0ZVdvcmRJbnN0YW5jZSB9
CisgICAgICoKKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0g
c3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZv
ciB0aXRsZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVy
IGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAg
KiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91
IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlv
dSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBm
b3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nl
c3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFs
bCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2Fz
IHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAg
ICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVm
YXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQg
bG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUg
Zm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlz
IHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAg
ICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlVGl0
bGVJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisg
ICAgLyoqCisgICAgICogR2V0IHRoZSBzZXQgb2YgTG9jYWxlcyBmb3Igd2hpY2ggVGV4dEJvdW5k
YXJpZXMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiA8cD48Yj5Ob3RlOjwvYj4gdGhpcyB3aWxsIG5v
dCByZXR1cm4gbG9jYWxlcyBhZGRlZCB0aHJvdWdoIHRoZSByZWdpc3RlcgorICAgICAqIGNhbGwu
IFRvIHNlZSB0aGUgcmVnaXN0ZXJlZCBsb2NhbGVzIHRvbywgdXNlIHRoZSBnZXRBdmFpbGFibGVM
b2NhbGVzCisgICAgICogZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgU3RyaW5nRW51bWVyYXRpb24g
b2JqZWN0IDwvcD4KKyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG91dHB1dCBwYXJhbWV0ZXIgb2Yg
bnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBsb2NhbGUgbGlzdAorICAgICAqIEByZXR1cm4gYXZh
aWxhYmxlIGxvY2FsZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0
aWMgY29uc3QgTG9jYWxlKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxlTG9jYWxlcyhpbnQzMl90JiBj
b3VudCk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgbmFtZSBvZiB0aGUgb2JqZWN0IGZvciB0aGUg
ZGVzaXJlZCBMb2NhbGUsIGluIHRoZSBkZXNpcmVkIGxhbmdhdWdlLgorICAgICAqIEBwYXJhbSBv
YmplY3RMb2NhbGUgbXVzdCBiZSBmcm9tIGdldEF2YWlsYWJsZUxvY2FsZXMuCisgICAgICogQHBh
cmFtIGRpc3BsYXlMb2NhbGUgc3BlY2lmaWVzIHRoZSBkZXNpcmVkIGxvY2FsZSBmb3Igb3V0cHV0
LgorICAgICAqIEBwYXJhbSBuYW1lIHRoZSBmaWxsLWluIHBhcmFtZXRlciBvZiB0aGUgcmV0dXJu
IHZhbHVlCisgICAgICogVXNlcyBiZXN0IG1hdGNoLgorICAgICAqIEByZXR1cm4gdXNlci1kaXNw
bGF5YWJsZSBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGlj
IFVuaWNvZGVTdHJpbmcmIFVfRVhQT1JUMiBnZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmIG9i
amVjdExvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgTG9jYWxlJiBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIEdldCBu
YW1lIG9mIHRoZSBvYmplY3QgZm9yIHRoZSBkZXNpcmVkIExvY2FsZSwgaW4gdGhlIGxhbmdhdWdl
IG9mIHRoZQorICAgICAqIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2Nh
bGUgbXVzdCBiZSBmcm9tIGdldE1hdGNoaW5nTG9jYWxlcworICAgICAqIEBwYXJhbSBuYW1lIHRo
ZSBmaWxsLWluIHBhcmFtZXRlciBvZiB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogQHJldHVybiB1
c2VyLWRpc3BsYXlhYmxlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICBzdGF0aWMgVW5pY29kZVN0cmluZyYgVV9FWFBPUlQyIGdldERpc3BsYXlOYW1lKGNvbnN0IExv
Y2FsZSYgb2JqZWN0TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVbmljb2RlU3RyaW5nJiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIERlcHJlY2F0ZWQg
ZnVuY3Rpb25hbGl0eS4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIFRocmVh
ZCBzYWZlIGNsaWVudC1idWZmZXItYmFzZWQgY2xvbmluZyBvcGVyYXRpb24KKyAgICAgKiAgICBE
byBOT1QgY2FsbCBkZWxldGUgb24gYSBzYWZlY2xvbmUsIHNpbmNlICduZXcnIGlzIG5vdCB1c2Vk
IHRvIGNyZWF0ZSBpdC4KKyAgICAgKiBAcGFyYW0gc3RhY2tCdWZmZXIgdXNlciBhbGxvY2F0ZWQg
c3BhY2UgZm9yIHRoZSBuZXcgY2xvbmUuIElmIE5VTEwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9j
YXRlZC4KKyAgICAgKiBJZiBidWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaCwgbmV3IG1lbW9yeSB3
aWxsIGJlIGFsbG9jYXRlZC4KKyAgICAgKiBAcGFyYW0gQnVmZmVyU2l6ZSByZWZlcmVuY2UgdG8g
c2l6ZSBvZiBhbGxvY2F0ZWQgc3BhY2UuCisgICAgICogSWYgQnVmZmVyU2l6ZSA9PSAwLCBhIHN1
ZmZpY2llbnQgc2l6ZSBmb3IgdXNlIGluIGNsb25pbmcgd2lsbAorICAgICAqIGJlIHJldHVybmVk
ICgncHJlLWZsaWdodGluZycpCisgICAgICogSWYgQnVmZmVyU2l6ZSBpcyBub3QgZW5vdWdoIGZv
ciBhIHN0YWNrLWJhc2VkIHNhZmUgY2xvbmUsCisgICAgICogbmV3IG1lbW9yeSB3aWxsIGJlIGFs
bG9jYXRlZC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIG9w
ZXJhdGlvbiB3ZW50IG9uIHNtb290aGx5IG9yIHRoZXJlIHdlcmUgZXJyb3JzCisgICAgICogIEFu
IGluZm9ybWF0aW9uYWwgc3RhdHVzIHZhbHVlLCBVX1NBRkVDTE9ORV9BTExPQ0FURURfRVJST1Is
IGlzIHVzZWQgaWYgYW55IGFsbG9jYXRpb25zIHdlcmUKKyAgICAgKiAgbmVjZXNzYXJ5LgorICAg
ICAqIEByZXR1cm4gcG9pbnRlciB0byB0aGUgbmV3IGNsb25lCisgICAgICoKKyAgICAgKiBAZGVw
cmVjYXRlZCBJQ1UgNTIuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICovCisgICAgdmlydHVh
bCBCcmVha0l0ZXJhdG9yICogIGNyZWF0ZUJ1ZmZlckNsb25lKHZvaWQgKnN0YWNrQnVmZmVyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICZC
dWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVRXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9B
UEkKKworICAgIC8qKgorICAgICAqICAgRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIEJyZWFrSXRlcmF0
b3Igd2FzIGNyZWF0ZWQgaW4gdXNlciBtZW1vcnkgYnkKKyAgICAgKiAgIGNyZWF0ZUJ1ZmZlckNs
b25lKCksIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgZGVsZXRlZC4gIFN1Y2ggb2JqZWN0cworICAg
ICAqICAgbXVzdCBiZSBjbG9zZWQgYnkgYW4gZXhwbGljaXQgY2FsbCB0byB0aGUgZGVzdHJ1Y3Rv
ciAobm90IGRlbGV0ZSkuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBBbHdheXMgZGVsZXRl
IHRoZSBCcmVha0l0ZXJhdG9yLgorICAgICAqLworICAgIGlubGluZSBVQm9vbCBpc0J1ZmZlckNs
b25lKHZvaWQpOworCisjZW5kaWYgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisKKyNpZiAh
VUNPTkZJR19OT19TRVJWSUNFCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBuZXcgYnJlYWsg
aXRlcmF0b3Igb2YgdGhlIGluZGljYXRlZCBraW5kLCB0byB1c2UgaW4gdGhlIGdpdmVuIGxvY2Fs
ZS4KKyAgICAgKiBUaGUgYnJlYWsgaXRlcmF0b3Igd2lsbCBiZSBhZG9wdGVkLiAgQ2xvbmVzIG9m
IHRoZSBpdGVyYXRvciB3aWxsIGJlIHJldHVybmVkCisgICAgICogaWYgYSByZXF1ZXN0IGZvciBh
IGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBnaXZlbiBraW5kIG1hdGNoZXMgb3IgZmFsbHMgYmFjayB0
bworICAgICAqIHRoaXMgbG9jYWxlLgorICAgICAqIEJlY2F1c2UgSUNVIG1heSBjaG9vc2UgdG8g
Y2FjaGUgQnJlYWtJdGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBtdXN0CisgICAgICogYmUgY2Fs
bGVkIGF0IGFwcGxpY2F0aW9uIHN0YXJ0dXAsIHByaW9yIHRvIGFueSBjYWxscyB0bworICAgICAq
IEJyZWFrSXRlcmF0b3I6OmNyZWF0ZVhYWEluc3RhbmNlIHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhh
dmlvci4KKyAgICAgKiBAcGFyYW0gdG9BZG9wdCB0aGUgQnJlYWtJdGVyYXRvciBpbnN0YW5jZSB0
byBiZSBhZG9wdGVkCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgTG9jYWxlIGZvciB3aGljaCB0
aGlzIGluc3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQKKyAgICAgKiBAcGFyYW0ga2luZCB0aGUg
dHlwZSBvZiBpdGVyYXRvciBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3Rl
cmVkCisgICAgICogQHBhcmFtIHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVj
aWFsIG1lYW5pbmdzIGFyZSBhc3NpZ25lZAorICAgICAqIEByZXR1cm4gYSByZWdpc3RyeSBrZXkg
dGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBzdGF0aWMgVVJlZ2lzdHJ5S2V5IFVfRVhQT1JUMiBy
ZWdpc3Rlckluc3RhbmNlKEJyZWFrSXRlcmF0b3IqIHRvQWRvcHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxlJiBsb2NhbGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUJyZWFrSXRlcmF0b3JUeXBlIGtpbmQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSYgc3RhdHVz
KTsKKworICAgIC8qKgorICAgICAqIFVucmVnaXN0ZXIgYSBwcmV2aW91c2x5LXJlZ2lzdGVyZWQg
QnJlYWtJdGVyYXRvciB1c2luZyB0aGUga2V5IHJldHVybmVkIGZyb20gdGhlCisgICAgICogcmVn
aXN0ZXIgY2FsbC4gIEtleSBiZWNvbWVzIGludmFsaWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwg
YW5kIHNob3VsZCBub3QgYmUgdXNlZCBhZ2Fpbi4KKyAgICAgKiBUaGUgQnJlYWtJdGVyYXRvciBj
b3JyZXNwb25kaW5nIHRvIHRoZSBrZXkgd2lsbCBiZSBkZWxldGVkLgorICAgICAqIEJlY2F1c2Ug
SUNVIG1heSBjaG9vc2UgdG8gY2FjaGUgQnJlYWtJdGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBz
aG91bGQKKyAgICAgKiBiZSBjYWxsZWQgZHVyaW5nIGFwcGxpY2F0aW9uIHNodXRkb3duLCBhZnRl
ciBhbGwgY2FsbHMgdG8KKyAgICAgKiBCcmVha0l0ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0
byBhdm9pZCB1bmRlZmluZWQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIGtleSB0aGUgcmVnaXN0
cnkga2V5IHJldHVybmVkIGJ5IGEgcHJldmlvdXMgY2FsbCB0byByZWdpc3Rlckluc3RhbmNlCisg
ICAgICogQHBhcmFtIHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVjaWFsIG1l
YW5pbmdzIGFyZSBhc3NpZ25lZAorICAgICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgaXRlcmF0b3Ig
Zm9yIHRoZSBrZXkgd2FzIHN1Y2Nlc3NmdWxseSB1bnJlZ2lzdGVyZWQKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjQKKyAgICAgKi8KKyAgICBzdGF0aWMgVUJvb2wgVV9FWFBPUlQyIHVucmVnaXN0ZXIo
VVJlZ2lzdHJ5S2V5IGtleSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAq
IFJldHVybiBhIFN0cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMgYXZhaWxhYmxlIGF0
IHRoZSB0aW1lIG9mIHRoZSBjYWxsLAorICAgICAqIGluY2x1ZGluZyByZWdpc3RlcmVkIGxvY2Fs
ZXMuCisgICAgICogQHJldHVybiBhIFN0cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMg
YXZhaWxhYmxlIGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40
CisgICAgICovCisgICAgc3RhdGljIFN0cmluZ0VudW1lcmF0aW9uKiBVX0VYUE9SVDIgZ2V0QXZh
aWxhYmxlTG9jYWxlcyh2b2lkKTsKKyNlbmRpZgorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0
aGUgbG9jYWxlIGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiBUd28gZmxhdm9ycyBhcmUgYXZhaWxh
YmxlOiB2YWxpZCBhbmQKKyAgICAgKiBhY3R1YWwgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNV
IDIuOAorICAgICAqLworICAgIExvY2FsZSBnZXRMb2NhbGUoVUxvY0RhdGFMb2NhbGVUeXBlIHR5
cGUsIFVFcnJvckNvZGUmIHN0YXR1cykgY29uc3Q7CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFM
X0FQSQorICAgIC8qKiBHZXQgdGhlIGxvY2FsZSBmb3IgdGhpcyBicmVhayBpdGVyYXRvciBvYmpl
Y3QuIFlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdmFsaWQgYW5kIGFjdHVhbCBsb2NhbGUuCisgICAg
ICogIEBwYXJhbSB0eXBlIHR5cGUgb2YgdGhlIGxvY2FsZSB3ZSdyZSBsb29raW5nIGZvciAodmFs
aWQgb3IgYWN0dWFsKQorICAgICAqICBAcGFyYW0gc3RhdHVzIGVycm9yIGNvZGUgZm9yIHRoZSBv
cGVyYXRpb24KKyAgICAgKiAgQHJldHVybiB0aGUgbG9jYWxlCisgICAgICogIEBpbnRlcm5hbAor
ICAgICAqLworICAgIGNvbnN0IGNoYXIgKmdldExvY2FsZUlEKFVMb2NEYXRhTG9jYWxlVHlwZSB0
eXBlLCBVRXJyb3JDb2RlJiBzdGF0dXMpIGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVfSU5URVJO
QUxfQVBJICovCisKKyAgICAvKioKKyAgICAgKiAgU2V0IHRoZSBzdWJqZWN0IHRleHQgc3RyaW5n
IHVwb24gd2hpY2ggdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9wZXJhdGluZworICAgICAqICB3aXRo
b3V0IGNoYW5naW5nIGFueSBvdGhlciBhc3BlY3Qgb2YgdGhlIG1hdGNoaW5nIHN0YXRlLgorICAg
ICAqICBUaGUgbmV3IGFuZCBwcmV2aW91cyB0ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1l
IGNvbnRlbnQuCisgICAgICoKKyAgICAgKiAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3Ig
dXNlIGluIGVudmlyb25tZW50cyB3aGVyZSBJQ1UgaXMgb3BlcmF0aW5nIG9uCisgICAgICogIHN0
cmluZ3MgdGhhdCBtYXkgbW92ZSBhcm91bmQgaW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNo
YW5pc20gZm9yIG5vdGlmeWluZworICAgICAqICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVu
IHJlbG9jYXRlZCwgYW5kIHByb3ZpZGluZyBhIG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICAg
ICogIHN0cmluZyBpbiBpdHMgbmV3IHBvc2l0aW9uLgorICAgICAqCisgICAgICogIE5vdGUgdGhh
dCB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24gbmV2ZXIgY29waWVzIHRoZSB1bmRl
cmx5aW5nIHRleHQKKyAgICAgKiAgb2YgYSBzdHJpbmcgYmVpbmcgcHJvY2Vzc2VkLCBidXQgYWx3
YXlzIG9wZXJhdGVzIGRpcmVjdGx5IG9uIHRoZSBvcmlnaW5hbCB0ZXh0CisgICAgICogIHByb3Zp
ZGVkIGJ5IHRoZSB1c2VyLiBSZWZyZXNoaW5nIHNpbXBseSBkcm9wcyB0aGUgcmVmZXJlbmNlcyB0
byB0aGUgb2xkIHRleHQKKyAgICAgKiAgYW5kIHJlcGxhY2VzIHRoZW0gd2l0aCByZWZlcmVuY2Vz
IHRvIHRoZSBuZXcuCisgICAgICoKKyAgICAgKiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rpb24gaXMg
bm9ybWFsbHkgdXNlZCBvbmx5IGJ5IHZlcnkgc3BlY2lhbGl6ZWQsCisgICAgICogIHN5c3RlbS1s
ZXZlbCBjb2RlLiAgT25lIGV4YW1wbGUgdXNlIGNhc2UgaXMgd2l0aCBnYXJiYWdlIGNvbGxlY3Rp
b24gdGhhdCBtb3ZlcworICAgICAqICB0aGUgdGV4dCBpbiBtZW1vcnkuCisgICAgICoKKyAgICAg
KiBAcGFyYW0gaW5wdXQgICAgICBUaGUgbmV3IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisgICAgICog
QHBhcmFtIHN0YXR1cyAgICAgUmVjZWl2ZXMgZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rp
b24uCisgICAgICogQHJldHVybiAgICAgICAgICAgKnRoaXMKKyAgICAgKgorICAgICAqIEBzdGFi
bGUgSUNVIDQ5CisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yICZyZWZyZXNoSW5w
dXRUZXh0KFVUZXh0ICppbnB1dCwgVUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyBwcml2YXRl
OgorICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBidWlsZEluc3RhbmNlKGNvbnN0IExvY2FsZSYg
bG9jLCBjb25zdCBjaGFyICp0eXBlLCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7
CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUluc3RhbmNlKGNvbnN0IExvY2FsZSYg
bG9jLCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisgICAgc3RhdGljIEJyZWFr
SXRlcmF0b3IqIG1ha2VJbnN0YW5jZShjb25zdCBMb2NhbGUmIGxvYywgaW50MzJfdCBraW5kLCBV
RXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgZnJpZW5kIGNsYXNzIElDVUJyZWFrSXRlcmF0b3JG
YWN0b3J5OworICAgIGZyaWVuZCBjbGFzcyBJQ1VCcmVha0l0ZXJhdG9yU2VydmljZTsKKworcHJv
dGVjdGVkOgorICAgIC8vIERvIG5vdCBlbmNsb3NlIHByb3RlY3RlZCBkZWZhdWx0L2NvcHkgY29u
c3RydWN0b3JzIHdpdGggI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLy8gb3IgZWxz
ZSB0aGUgY29tcGlsZXIgd2lsbCBjcmVhdGUgYSBwdWJsaWMgb25lcy4KKyAgICAvKiogQGludGVy
bmFsICovCisgICAgQnJlYWtJdGVyYXRvcigpOworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBC
cmVha0l0ZXJhdG9yIChjb25zdCBCcmVha0l0ZXJhdG9yICZvdGhlcikgOiBVT2JqZWN0KG90aGVy
KSB7fQorICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJhdG9yIChjb25zdCBMb2Nh
bGUmIHZhbGlkLCBjb25zdCBMb2NhbGUmIGFjdHVhbCk7Citwcml2YXRlOgorCisgICAgLyoqIEBp
bnRlcm5hbCAqLworICAgIGNoYXIgYWN0dWFsTG9jYWxlW1VMT0NfRlVMTE5BTUVfQ0FQQUNJVFld
OworICAgIGNoYXIgdmFsaWRMb2NhbGVbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07CisKKyAgICAv
KioKKyAgICAgKiBUaGUgYXNzaWdubWVudCBvcGVyYXRvciBoYXMgbm8gcmVhbCBpbXBsZW1lbnRh
dGlvbi4KKyAgICAgKiBJdCdzIHByb3ZpZGVkIHRvIG1ha2UgdGhlIGNvbXBpbGVyIGhhcHB5LiBE
byBub3QgY2FsbC4KKyAgICAgKi8KKyAgICBCcmVha0l0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3Qg
QnJlYWtJdGVyYXRvciYpOworfTsKKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKwor
aW5saW5lIFVCb29sIEJyZWFrSXRlcmF0b3I6OmlzQnVmZmVyQ2xvbmUoKQoreworICAgIHJldHVy
biBGQUxTRTsKK30KKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLworCitVX05B
TUVTUEFDRV9FTkQKKworI2VuZGlmIC8qICNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04g
Ki8KKworI2VuZGlmIC8vIF9CUktJVEVSCisvL2VvZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9p
Y3UvdW5pY29kZS9jaGFyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9jaGFyaXRlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU4ZDY1MDkwYTQwYTYwODU5NTFjNzMzMDdmNzRhY2Y4M2JhMWJiYzgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmgKQEAgLTAs
MCArMSw3MjIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0y
MDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5k
IG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lm
bmRlZiBDSEFSSVRFUl9ICisjZGVmaW5lIENIQVJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUv
dXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29k
ZS91bmlzdHIuaCIKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBDaGFyYWN0ZXIg
SXRlcmF0b3IKKyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgorICogQWJzdHJhY3QgY2xh
c3MgdGhhdCBkZWZpbmVzIGFuIEFQSSBmb3IgZm9yd2FyZC1vbmx5IGl0ZXJhdGlvbgorICogb24g
dGV4dCBvYmplY3RzLgorICogVGhpcyBpcyBhIG1pbmltYWwgaW50ZXJmYWNlIGZvciBpdGVyYXRp
b24gd2l0aG91dCByYW5kb20gYWNjZXNzCisgKiBvciBiYWNrd2FyZHMgaXRlcmF0aW9uLiBJdCBp
cyBlc3BlY2lhbGx5IHVzZWZ1bCBmb3Igd3JhcHBpbmcKKyAqIHN0cmVhbXMgd2l0aCBjb252ZXJ0
ZXJzIGludG8gYW4gb2JqZWN0IGZvciBjb2xsYXRpb24gb3IKKyAqIG5vcm1hbGl6YXRpb24uCisg
KgorICogPHA+Q2hhcmFjdGVycyBjYW4gYmUgYWNjZXNzZWQgaW4gdHdvIHdheXM6IGFzIGNvZGUg
dW5pdHMgb3IgYXMKKyAqIGNvZGUgcG9pbnRzLgorICogVW5pY29kZSBjb2RlIHBvaW50cyBhcmUg
MjEtYml0IGludGVnZXJzIGFuZCBhcmUgdGhlIHNjYWxhciB2YWx1ZXMKKyAqIG9mIFVuaWNvZGUg
Y2hhcmFjdGVycy4gSUNVIHVzZXMgdGhlIHR5cGUgVUNoYXIzMiBmb3IgdGhlbS4KKyAqIFVuaWNv
ZGUgY29kZSB1bml0cyBhcmUgdGhlIHN0b3JhZ2UgdW5pdHMgb2YgYSBnaXZlbgorICogVW5pY29k
ZS9VQ1MgVHJhbnNmb3JtYXRpb24gRm9ybWF0IChhIGNoYXJhY3RlciBlbmNvZGluZyBzY2hlbWUp
LgorICogV2l0aCBVVEYtMTYsIGFsbCBjb2RlIHBvaW50cyBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0
aCBlaXRoZXIgb25lCisgKiBvciB0d28gY29kZSB1bml0cyAoInN1cnJvZ2F0ZXMiKS4KKyAqIFN0
cmluZyBzdG9yYWdlIGlzIHR5cGljYWxseSBiYXNlZCBvbiBjb2RlIHVuaXRzLCB3aGlsZSBwcm9w
ZXJ0aWVzCisgKiBvZiBjaGFyYWN0ZXJzIGFyZSB0eXBpY2FsbHkgZGV0ZXJtaW5lZCB1c2luZyBj
b2RlIHBvaW50IHZhbHVlcy4KKyAqIFNvbWUgcHJvY2Vzc2VzIG1heSBiZSBkZXNpZ25lZCB0byB3
b3JrIHdpdGggc2VxdWVuY2VzIG9mIGNvZGUgdW5pdHMsCisgKiBvciBpdCBtYXkgYmUga25vd24g
dGhhdCBhbGwgY2hhcmFjdGVycyB0aGF0IGFyZSBpbXBvcnRhbnQgdG8gYW4KKyAqIGFsZ29yaXRo
bSBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aCBzaW5nbGUgY29kZSB1bml0cy4KKyAqIE90aGVyIHBy
b2Nlc3NlcyB3aWxsIG5lZWQgdG8gdXNlIHRoZSBjb2RlIHBvaW50IGFjY2VzcyBmdW5jdGlvbnMu
PC9wPgorICoKKyAqIDxwPkZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciBwcm92aWRlcyBuZXh0UG9z
dEluYygpIHRvIGFjY2VzcworICogYSBjb2RlIHVuaXQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwg
cG9zaXRpb24gaW50byB0aGUgdGV4dCBvYmplY3QsCisgKiBzaW1pbGFyIHRvIGEgPGNvZGU+cmV0
dXJuIHRleHRbcG9zaXRpb24rK108L2NvZGU+Ljxicj4KKyAqIEl0IHByb3ZpZGVzIG5leHQzMlBv
c3RJbmMoKSB0byBhY2Nlc3MgYSBjb2RlIHBvaW50IGFuZCBhZHZhbmNlIGFuIGludGVybmFsCisg
KiBwb3NpdGlvbi48L3A+CisgKgorICogPHA+bmV4dDMyUG9zdEluYygpIGFzc3VtZXMgdGhhdCB0
aGUgY3VycmVudCBwb3NpdGlvbiBpcyB0aGF0IG9mCisgKiB0aGUgYmVnaW5uaW5nIG9mIGEgY29k
ZSBwb2ludCwgaS5lLiwgb2YgaXRzIGZpcnN0IGNvZGUgdW5pdC4KKyAqIEFmdGVyIG5leHQzMlBv
c3RJbmMoKSwgdGhpcyB3aWxsIGJlIHRydWUgYWdhaW4uCisgKiBJbiBnZW5lcmFsLCBhY2Nlc3Mg
dG8gY29kZSB1bml0cyBhbmQgY29kZSBwb2ludHMgaW4gdGhlIHNhbWUKKyAqIGl0ZXJhdGlvbiBs
b29wIHNob3VsZCBub3QgYmUgbWl4ZWQuIEluIFVURi0xNiwgaWYgdGhlIGN1cnJlbnQgcG9zaXRp
b24KKyAqIGlzIG9uIGEgc2Vjb25kIGNvZGUgdW5pdCAoTG93IFN1cnJvZ2F0ZSksIHRoZW4gb25s
eSB0aGF0IGNvZGUgdW5pdAorICogaXMgcmV0dXJuZWQgZXZlbiBieSBuZXh0MzJQb3N0SW5jKCku
PC9wPgorICoKKyAqIDxwPkZvciBpdGVyYXRpb24gd2l0aCBlaXRoZXIgZnVuY3Rpb24sIHRoZXJl
IGFyZSB0d28gd2F5cyB0bworICogY2hlY2sgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbi4g
V2hlbiB0aGVyZSBhcmUgbm8gbW9yZQorICogY2hhcmFjdGVycyBpbiB0aGUgdGV4dCBvYmplY3Q6
CisgKiA8dWw+CisgKiA8bGk+VGhlIGhhc05leHQoKSBmdW5jdGlvbiByZXR1cm5zIEZBTFNFLjwv
bGk+CisgKiA8bGk+bmV4dFBvc3RJbmMoKSBhbmQgbmV4dDMyUG9zdEluYygpIHJldHVybiBET05F
CisgKiAgICAgd2hlbiBvbmUgYXR0ZW1wdHMgdG8gcmVhZCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUg
dGV4dCBvYmplY3QuPC9saT4KKyAqIDwvdWw+CisgKgorICogRXhhbXBsZToKKyAqIFxjb2RlIAor
ICogdm9pZCBmdW5jdGlvbjEoRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAg
IFVDaGFyMzIgYzsKKyAqICAgICB3aGlsZShpdC5oYXNOZXh0KCkpIHsKKyAqICAgICAgICAgYz1p
dC5uZXh0MzJQb3N0SW5jKCk7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgfQorICogfQor
ICoKKyAqIHZvaWQgZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAq
ICAgICBVQ2hhciBjOworICogICAgIHdoaWxlKChjPWl0Lm5leHRQb3N0SW5jKCkpIT1Gb3J3YXJk
Q2hhcmFjdGVySXRlcmF0b3I6OkRPTkUpIHsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAg
fQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3A+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisg
Ki8KK2NsYXNzIFVfQ09NTU9OX0FQSSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMg
VU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgbW9z
dCBvZiBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IncyBmdW5jdGlvbnMKKyAgICAgKiB3aGVuIHRo
ZSBpdGVyYXRvciBoYXMgcmVhY2hlZCB0aGUgbGltaXRzIG9mIGl0cyBpdGVyYXRpb24uCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgZW51bSB7IERPTkUgPSAweGZmZmYgfTsK
KyAgICAKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yLiAgCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCB+Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yKCk7Cisg
ICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIHdoZW4gYm90aCBpdGVyYXRvcnMgcmVm
ZXIgdG8gdGhlIHNhbWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgY2hhcmFjdGVyLXN0
b3JhZ2Ugb2JqZWN0LiAgCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRydWUg
d2hlbiBib3RoIGl0ZXJhdG9ycyByZWZlciB0byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBp
biB0aGUgc2FtZSBjaGFyYWN0ZXItc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENo
YXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICog
UmV0dXJucyB0cnVlIHdoZW4gdGhlIGl0ZXJhdG9ycyByZWZlciB0byBkaWZmZXJlbnQKKyAgICAg
KiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0cywgb3IgdG8gZGlmZmVyZW50IGNoYXJhY3RlcnMgaW4gdGhl
CisgICAgICogc2FtZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LiAgCisgICAgICogQHBhcmFtIHRoYXQg
VGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgaW5lcXVhbGl0
eQorICAgICAqIEByZXR1cm4gdHJ1ZSB3aGVuIHRoZSBpdGVyYXRvcnMgcmVmZXIgdG8gZGlmZmVy
ZW50CisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdHMsIG9yIHRvIGRpZmZlcmVudCBjaGFyYWN0
ZXJzIGluIHRoZQorICAgICAqIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisgICAgCisgICAgLyoqCisgICAg
ICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGlzIGl0ZXJhdG9yLiAgCisgICAgICogQHJl
dHVybiB0aGUgaGFzaCBjb2RlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBoYXNoQ29kZSh2b2lkKSBjb25zdCA9IDA7CisgICAgCisgICAgLyoq
CisgICAgICogUmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGlzIEZvcndhcmRDaGFyYWN0ZXJJdGVy
YXRvciAoInBvb3IgbWFuJ3MKKyAgICAgKiBSVFRJIikuPFA+IERlc3BpdGUgdGhlIGZhY3QgdGhh
dCB0aGlzIGZ1bmN0aW9uIGlzIHB1YmxpYywKKyAgICAgKiBETyBOT1QgQ09OU0lERVIgSVQgUEFS
VCBPRiBDSEFSQUNURVJJVEVSQVRPUidTIEFQSSEgCisgICAgICogQHJldHVybiBhIFVDbGFzc0lE
IGZvciB0aGlzIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKHZvaWQp
IGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUg
dW5pdCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQKKyAg
ICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4g
IElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVy
bnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dFBv
c3RJbmModm9pZCkgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQg
Y29kZSBwb2ludCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBv
aW50CisgICAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5k
ZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJldHVy
biwgcmV0dXJucyBET05FLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSBwb2ludC4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAg
ICAgbmV4dDMyUG9zdEluYyh2b2lkKSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJu
cyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisg
ICAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiBy
YW5nZS4KKyAgICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBv
c3RJbmMoKSBpbiBmb3J3YXJkCisgICAgICogaXRlcmF0aW9uLgorICAgICAqIEByZXR1cm5zIEZB
TFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAg
KiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgICAg
ICAgIGhhc05leHQoKSA9IDA7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgLyoqIERlZmF1bHQgY29u
c3RydWN0b3IgdG8gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLiBAc3Rh
YmxlIElDVSAyLjAqLworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgIAorICAg
IC8qKiBDb3B5IGNvbnN0cnVjdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGlu
ZyBjbGFzcy4gQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Io
Y29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZvdGhlcik7CisgICAgCisgICAgLyoqCisg
ICAgICogQXNzaWdubWVudCBvcGVyYXRvciB0byBiZSBvdmVycmlkZGVuIGluIHRoZSBpbXBsZW1l
bnRpbmcgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yICZvcGVyYXRvcj0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yJikgeyByZXR1cm4gKnRoaXM7IH0KK307CisKKy8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhh
dCBkZWZpbmVzIGFuIEFQSSBmb3IgaXRlcmF0aW9uCisgKiBvbiB0ZXh0IG9iamVjdHMuCisgKiBU
aGlzIGlzIGFuIGludGVyZmFjZSBmb3IgZm9yd2FyZCBhbmQgYmFja3dhcmQgaXRlcmF0aW9uCisg
KiBhbmQgcmFuZG9tIGFjY2VzcyBpbnRvIGEgdGV4dCBvYmplY3QuCisgKgorICogPHA+VGhlIEFQ
SSBwcm92aWRlcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHRvIHRoZSBKYXZhIGFuZCBvbGRlciBJ
Q1UKKyAqIENoYXJhY3Rlckl0ZXJhdG9yIGNsYXNzZXMgYnV0IGV4dGVuZHMgdGhlbSBzaWduaWZp
Y2FudGx5OgorICogPG9sPgorICogPGxpPkNoYXJhY3Rlckl0ZXJhdG9yIGlzIG5vdyBhIHN1YmNs
YXNzIG9mIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci48L2xpPgorICogPGxpPldoaWxlIHRoZSBv
bGQgQVBJIGZ1bmN0aW9ucyBwcm92aWRlZCBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoCisgKiAgICAg
InByZS1pbmNyZW1lbnQiIHNlbWFudGljcywgdGhlIG5ldyBvbmUgYWxzbyBwcm92aWRlcyBmdW5j
dGlvbnMKKyAqICAgICB3aXRoICJwb3N0LWluY3JlbWVudCIgc2VtYW50aWNzLiBUaGV5IGFyZSBt
b3JlIGVmZmljaWVudCBhbmQgc2hvdWxkCisgKiAgICAgYmUgdGhlIHByZWZlcnJlZCBpdGVyYXRv
ciBmdW5jdGlvbnMgZm9yIG5ldyBpbXBsZW1lbnRhdGlvbnMuCisgKiAgICAgVGhlIGJhY2t3YXJk
IGl0ZXJhdGlvbiBhbHdheXMgaGFkICJwcmUtZGVjcmVtZW50IiBzZW1hbnRpY3MsIHdoaWNoCisg
KiAgICAgYXJlIGVmZmljaWVudC48L2xpPgorICogPGxpPkp1c3QgbGlrZSBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IsIGl0IHByb3ZpZGVzIGFjY2VzcyB0bworICogICAgIGJvdGggY29kZSB1bml0
cyBhbmQgY29kZSBwb2ludHMuIENvZGUgcG9pbnQgYWNjZXNzIHZlcnNpb25zIGFyZSBhdmFpbGFi
bGUKKyAqICAgICBmb3IgdGhlIG9sZCBhbmQgdGhlIG5ldyBpdGVyYXRpb24gc2VtYW50aWNzLjwv
bGk+CisgKiA8bGk+VGhlcmUgYXJlIG5ldyBmdW5jdGlvbnMgZm9yIHNldHRpbmcgYW5kIG1vdmlu
ZyB0aGUgY3VycmVudCBwb3NpdGlvbgorICogICAgIHdpdGhvdXQgcmV0dXJuaW5nIGEgY2hhcmFj
dGVyLCBmb3IgZWZmaWNpZW5jeS48L2xpPgorICogPC9vbD4KKyAqCisgKiBTZWUgRm9yd2FyZENo
YXJhY3Rlckl0ZXJhdG9yIGZvciBleGFtcGxlcyBmb3IgdXNpbmcgdGhlIG5ldyBmb3J3YXJkIGl0
ZXJhdGlvbgorICogZnVuY3Rpb25zLiBGb3IgYmFja3dhcmQgaXRlcmF0aW9uLCB0aGVyZSBpcyBh
bHNvIGEgaGFzUHJldmlvdXMoKSBmdW5jdGlvbgorICogdGhhdCBjYW4gYmUgdXNlZCBhbmFsb2dv
dXNseSB0byBoYXNOZXh0KCkuCisgKiBUaGUgb2xkIGZ1bmN0aW9ucyB3b3JrIGFzIGJlZm9yZSBh
bmQgYXJlIHNob3duIGJlbG93LjwvcD4KKyAqCisgKiA8cD5FeGFtcGxlcyBmb3Igc29tZSBvZiB0
aGUgbmV3IGZ1bmN0aW9uczo8L3A+CisgKgorICogRm9yd2FyZCBpdGVyYXRpb24gd2l0aCBoYXNO
ZXh0KCk6CisgKiBcY29kZQorICogdm9pZCBmb3J3YXJkMShDaGFyYWN0ZXJJdGVyYXRvciAmaXQp
IHsKKyAqICAgICBVQ2hhcjMyIGM7CisgKiAgICAgZm9yKGl0LnNldFRvU3RhcnQoKTsgaXQuaGFz
TmV4dCgpOykgeworICogICAgICAgICBjPWl0Lm5leHQzMlBvc3RJbmMoKTsKKyAqICAgICAgICAg
Ly8gdXNlIGMKKyAqICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIEZvcndhcmQgaXRlcmF0
aW9uIG1vcmUgc2ltaWxhciB0byBsb29wcyB3aXRoIHRoZSBvbGQgZm9yd2FyZCBpdGVyYXRpb24s
CisgKiBzaG93aW5nIGEgd2F5IHRvIGNvbnZlcnQgc2ltcGxlIGZvcigpIGxvb3BzOgorICogXGNv
ZGUKKyAqIHZvaWQgZm9yd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNo
YXIgYzsKKyAqICAgICBmb3IoYz1pdC5maXJzdFBvc3RJbmMoKTsgYyE9Q2hhcmFjdGVySXRlcmF0
b3I6OkRPTkU7IGM9aXQubmV4dFBvc3RJbmMoKSkgeworICogICAgICAgICAgLy8gdXNlIGMKKyAq
ICAgICAgfQorICogfQorICogXGVuZGNvZGUKKyAqIEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIHNl
dFRvRW5kKCkgYW5kIGhhc1ByZXZpb3VzKCk6CisgKiBcY29kZQorICogIHZvaWQgYmFja3dhcmQx
KENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgICBVQ2hhcjMyIGM7CisgKiAgICAgIGZv
cihpdC5zZXRUb0VuZCgpOyBpdC5oYXNQcmV2aW91cygpOykgeworICogICAgICAgICBjPWl0LnBy
ZXZpb3VzMzIoKTsKKyAqICAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBc
ZW5kY29kZQorICogQmFja3dhcmQgaXRlcmF0aW9uIHdpdGggYSBtb3JlIHRyYWRpdGlvbmFsIGZv
cigpIGxvb3A6CisgKiBcY29kZQorICogdm9pZCBiYWNrd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3Ig
Jml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAgICBmb3IoYz1pdC5sYXN0KCk7IGMhPUNoYXJh
Y3Rlckl0ZXJhdG9yOjpET05FOyBjPWl0LnByZXZpb3VzKCkpIHsKKyAqICAgICAgICAgLy8gdXNl
IGMKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKgorICogRXhhbXBsZSBmb3IgcmFu
ZG9tIGFjY2VzczoKKyAqIFxjb2RlCisgKiAgdm9pZCByYW5kb20oQ2hhcmFjdGVySXRlcmF0b3Ig
Jml0KSB7CisgKiAgICAgIC8vIHNldCB0byB0aGUgdGhpcmQgY29kZSBwb2ludCBmcm9tIHRoZSBi
ZWdpbm5pbmcKKyAqICAgICAgaXQubW92ZTMyKDMsIENoYXJhY3Rlckl0ZXJhdG9yOjprU3RhcnQp
OworICogICAgICAvLyBnZXQgYSBjb2RlIHBvaW50IGZyb20gaGVyZSB3aXRob3V0IG1vdmluZyB0
aGUgcG9zaXRpb24KKyAqICAgICAgVUNoYXIzMiBjPWl0LmN1cnJlbnQzMigpOworICogICAgICAv
LyBnZXQgdGhlIHBvc2l0aW9uCisgKiAgICAgIGludDMyX3QgcG9zPWl0LmdldEluZGV4KCk7Cisg
KiAgICAgIC8vIGdldCB0aGUgcHJldmlvdXMgY29kZSB1bml0CisgKiAgICAgIFVDaGFyIHU9aXQu
cHJldmlvdXMoKTsKKyAqICAgICAgLy8gbW92ZSBiYWNrIG9uZSBtb3JlIGNvZGUgdW5pdAorICog
ICAgICBpdC5tb3ZlKC0xLCBDaGFyYWN0ZXJJdGVyYXRvcjo6a0N1cnJlbnQpOworICogICAgICAv
LyBzZXQgdGhlIHBvc2l0aW9uIGJhY2sgdG8gd2hlcmUgaXQgd2FzCisgKiAgICAgIC8vIGFuZCBy
ZWFkIHRoZSBzYW1lIGNvZGUgcG9pbnQgYyBhbmQgbW92ZSBiZXlvbmQgaXQKKyAqICAgICAgaXQu
c2V0SW5kZXgocG9zKTsKKyAqICAgICAgaWYoYyE9aXQubmV4dDMyUG9zdEluYygpKSB7CisgKiAg
ICAgICAgICBleGl0KDEpOyAvLyBDaGFyYWN0ZXJJdGVyYXRvciBpbmNvbnNpc3RlbnQKKyAqICAg
ICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKgorICogPHA+RXhhbXBsZXMsIGVzcGVjaWFsbHkg
Zm9yIHRoZSBvbGQgQVBJOjwvcD4KKyAqCisgKiBGdW5jdGlvbiBwcm9jZXNzaW5nIGNoYXJhY3Rl
cnMsIGluIHRoaXMgZXhhbXBsZSBzaW1wbGUgb3V0cHV0CisgKiA8cHJlPgorICogXGNvZGUKKyAq
ICB2b2lkIHByb2Nlc3NDaGFyKCBVQ2hhciBjICkKKyAqICB7CisgKiAgICAgIGNvdXQgPDwgIiAi
IDw8IGM7CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgdGhlIHRl
eHQgZnJvbSBzdGFydCB0byBmaW5pc2gKKyAqIDxwcmU+IAorICogXGNvZGUKKyAqICB2b2lkIHRy
YXZlcnNlRm9yd2FyZChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlcikKKyAqICB7CisgKiAgICAgIGZv
cihVQ2hhciBjID0gaXRlci5maXJzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMg
PSBpdGVyLm5leHQoKSkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgIH0K
KyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSB0aGUgdGV4dCBiYWNr
d2FyZHMsIGZyb20gZW5kIHRvIHN0YXJ0CisgKiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIHRy
YXZlcnNlQmFja3dhcmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIpCisgKiAgeworICogICAgICBm
b3IoVUNoYXIgYyA9IGl0ZXIubGFzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMg
PSBpdGVyLnByZXZpb3VzKCkpIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMpOworICogICAg
ICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgYm90aCBmb3J3
YXJkIGFuZCBiYWNrd2FyZCBmcm9tIGEgZ2l2ZW4gcG9zaXRpb24gaW4gdGhlIHRleHQuIAorICog
Q2FsbHMgdG8gbm90Qm91bmRhcnkoKSBpbiB0aGlzIGV4YW1wbGUgcmVwcmVzZW50cyBzb21lIGFk
ZGl0aW9uYWwgc3RvcHBpbmcgY3JpdGVyaWEuCisgKiA8cHJlPgorICogXGNvZGUKKyAqIHZvaWQg
dHJhdmVyc2VPdXQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIsIGludDMyX3QgcG9zKQorICogewor
ICogICAgICBVQ2hhciBjOworICogICAgICBmb3IgKGMgPSBpdGVyLnNldEluZGV4KHBvcyk7Cisg
KiAgICAgIGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJiAoVW5pY29kZTo6aXNMZXR0ZXIo
YykgfHwgVW5pY29kZTo6aXNEaWdpdChjKSk7CisgKiAgICAgICAgICBjID0gaXRlci5uZXh0KCkp
IHt9CisgKiAgICAgIGludDMyX3QgZW5kID0gaXRlci5nZXRJbmRleCgpOworICogICAgICBmb3Ig
KGMgPSBpdGVyLnNldEluZGV4KHBvcyk7CisgKiAgICAgICAgICBjICE9IENoYXJhY3Rlckl0ZXJh
dG9yLkRPTkUgJiYgKFVuaWNvZGU6OmlzTGV0dGVyKGMpIHx8IFVuaWNvZGU6OmlzRGlnaXQoYykp
OworICogICAgICAgICAgYyA9IGl0ZXIucHJldmlvdXMoKSkge30KKyAqICAgICAgaW50MzJfdCBz
dGFydCA9IGl0ZXIuZ2V0SW5kZXgoKSArIDE7CisgKiAgCisgKiAgICAgIGNvdXQgPDwgInN0YXJ0
OiAiIDw8IHN0YXJ0IDw8ICIgZW5kOiAiIDw8IGVuZCA8PCBlbmRsOworICogICAgICBmb3IgKGMg
PSBpdGVyLnNldEluZGV4KHN0YXJ0KTsgaXRlci5nZXRJbmRleCgpIDwgZW5kOyBjID0gaXRlci5u
ZXh0KCkgKSB7CisgKiAgICAgICAgICBwcm9jZXNzQ2hhcihjKTsKKyAqICAgICB9CisgKiAgfQor
ICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogQ3JlYXRpbmcgYSBTdHJpbmdDaGFyYWN0ZXJJdGVy
YXRvciBhbmQgY2FsbGluZyB0aGUgdGVzdCBmdW5jdGlvbnMKKyAqIDxwcmU+CisgKiBcY29kZQor
ICogIHZvaWQgQ2hhcmFjdGVySXRlcmF0b3JfRXhhbXBsZSggdm9pZCApCisgKiAgIHsKKyAqICAg
ICAgIGNvdXQgPDwgZW5kbCA8PCAiPT09PT0gQ2hhcmFjdGVySXRlcmF0b3JfRXhhbXBsZTogPT09
PT0iIDw8IGVuZGw7CisgKiAgICAgICBVbmljb2RlU3RyaW5nIHRleHQoIkVpbiBrbGVpbmVyIFNh
dHouIik7CisgKiAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvcih0ZXh0KTsK
KyAqICAgICAgIGNvdXQgPDwgIi0tLS0tIHRyYXZlcnNlRm9yd2FyZDogLS0tLS0tLS0tLS0iIDw8
IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZUZvcndhcmQoIGl0ZXJhdG9yICk7CisgKiAgICAgICBj
b3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVyc2VCYWNrd2FyZDogLS0tLS0tLS0t
LSIgPDwgZW5kbDsKKyAqICAgICAgIHRyYXZlcnNlQmFja3dhcmQoIGl0ZXJhdG9yICk7CisgKiAg
ICAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVyc2VPdXQ6IC0tLS0tLS0t
LS0tLS0tLSIgPDwgZW5kbDsKKyAqICAgICAgIHRyYXZlcnNlT3V0KCBpdGVyYXRvciwgNyApOwor
ICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIiA8PCBlbmRsOworICogICB9
CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2Ns
YXNzIFVfQ09NTU9OX0FQSSBDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IgeworcHVibGljOgorICAgIC8qKgorICAgICAqIE9yaWdpbiBlbnVtZXJhdGlv
biBmb3IgdGhlIG1vdmUoKSBhbmQgbW92ZTMyKCkgZnVuY3Rpb25zLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIGVudW0gRU9yaWdpbiB7IGtTdGFydCwga0N1cnJlbnQsIGtF
bmQgfTsKKworICAgIC8qKgorICAgICAqIERlc3RydWN0b3IuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCB+Q2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8q
KgorICAgICAqIFJldHVybnMgYSBwb2ludGVyIHRvIGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yIG9m
IHRoZSBzYW1lCisgICAgICogY29uY3JldGUgY2xhc3MgYXMgdGhpcyBvbmUsIGFuZCByZWZlcnJp
bmcgdG8gdGhlIHNhbWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgdGV4dC1zdG9yYWdl
IG9iamVjdCBhcyB0aGlzIG9uZS4gIFRoZQorICAgICAqIGNhbGxlciBpcyByZXNwb25zaWJsZSBm
b3IgZGVsZXRpbmcgdGhlIG5ldyBjbG9uZS4gIAorICAgICAqIEByZXR1cm4gYSBwb2ludGVyIHRv
IGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3QgPSAwOwor
CisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0
IGNvZGUgdW5pdCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRo
YXQgY29kZSB1bml0LgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0
aW9uIHdpdGggbmV4dCgpLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBp
dHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0
cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1v
dmVzIHRoZSBwb3NpdGlvbgorICAgICAqIHRvIHRoZSBzZWNvbmQgY29kZSB1bml0LiBUaGlzIGlz
IGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAgICAqIGZvciBmb3J3YXJkIGl0ZXJh
dGlvbiB3aXRoIG5leHRQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1
bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0UG9zdEluYyh2b2lkKTsKKworICAg
IC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2Rl
IHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBj
b2RlIHVuaXQsCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24g
d2l0aCBuZXh0MzIoKS4KKyAgICAgKiBOb3RlIHRoYXQgYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMy
UG9zdEluYygpLCBiZWdpbm5pbmcgd2l0aCwKKyAgICAgKiBlLmcuLCBzZXRUb1N0YXJ0KCkgb3Ig
Zmlyc3RQb3N0SW5jKCksIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIEByZXR1cm4gdGhlIGZp
cnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmlyc3QzMih2b2lkKSA9
IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUg
Zmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMg
dGhhdCBjb2RlIHBvaW50LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAgICogdG8gdGhlIHNl
Y29uZCBjb2RlIHBvaW50LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQor
ICAgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICAg
KiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAg
IGZpcnN0MzJQb3N0SW5jKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0
b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvciBjb2RlIHBvaW50IGluIGl0cwor
ICAgICAqIGl0ZXJhdGlvbiByYW5nZS4gVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhIGZvcndh
cmQKKyAgICAgKiBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMo
KS4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJh
bmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3Qg
ICAgc2V0VG9TdGFydCgpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8g
cmVmZXIgdG8gdGhlIGxhc3QgY29kZSB1bml0IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5n
ZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0
byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpLgorICAgICAqIEByZXR1cm4gdGhl
IGxhc3QgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUNoYXIgICAgICAgICBsYXN0KHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisg
ICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSBwb2ludCBp
biBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0
LgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJl
dmlvdXMzMigpLgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSBwb2ludC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMy
KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBl
bmQgb2YgaXRzIGl0ZXJhdGlvbiByYW5nZSwganVzdCBiZWhpbmQKKyAgICAgKiB0aGUgbGFzdCBj
b2RlIHVuaXQgb3IgY29kZSBwb2ludC4gVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhIGJhY2t3
YXJkCisgICAgICogaXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkuCisg
ICAgICogQHJldHVybiB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICBzZXRU
b0VuZCgpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8g
dGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBv
YmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAgICogcmV0dXJucyB0aGF0IGNv
ZGUgdW5pdC4gIAorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgInBvc2l0aW9uIi10aCBjb2Rl
IHVuaXQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAcmV0dXJuIHRoZSAicG9z
aXRpb24iLXRoIGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIFVDaGFyICAgICAgICAgc2V0SW5kZXgoaW50MzJfdCBwb3NpdGlvbikgPSAwOwor
CisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lu
bmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgICAqIHRoYXQgY29udGFpbnMgdGhlICJwb3NpdGlv
biItdGggY29kZSB1bml0CisgICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0
ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAgICogcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisg
ICAgICogVGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgYWRqdXN0ZWQgdG8gdGhlIGJlZ2lubmluZyBv
ZiB0aGUgY29kZSBwb2ludAorICAgICAqIChpdHMgZmlyc3QgY29kZSB1bml0KS4KKyAgICAgKiBA
cGFyYW0gcG9zaXRpb24gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0IGluIHRoZSB0ZXh0LXN0
b3JhZ2Ugb2JqZWN0CisgICAgICogQHJldHVybiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHBvaW50
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAg
ICAgICBzZXRJbmRleDMyKGludDMyX3QgcG9zaXRpb24pID0gMDsKKworICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4g
CisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuIAorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBjdXJyZW50KHZvaWQp
IGNvbnN0ID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29kZSBw
b2ludCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4gIAorICAgICAqIEByZXR1cm4g
dGhlIGN1cnJlbnQgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgY3VycmVudDMyKHZvaWQpIGNvbnN0ID0gMDsKKyAg
ICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0
dXJucyB0aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1
bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNv
ZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVD
aGFyICAgICAgICAgbmV4dCh2b2lkKSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFk
dmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAg
ICAqICh0b3dhcmQgZW5kSW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElm
IHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5z
IERPTkUuCisgICAgICogTm90ZSB0aGF0IGl0ZXJhdGlvbiB3aXRoICJwcmUtaW5jcmVtZW50IiBz
ZW1hbnRpY3MgaXMgbGVzcworICAgICAqIGVmZmljaWVudCB0aGFuIGl0ZXJhdGlvbiB3aXRoICJw
b3N0LWluY3JlbWVudCIgc2VtYW50aWNzCisgICAgICogdGhhdCBpcyBwcm92aWRlZCBieSBuZXh0
MzJQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlIHBvaW50LgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0
MzIodm9pZCkgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUg
cHJldmlvdXMgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJk
IHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJl
CisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLiAgCisg
ICAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBwcmV2aW91cyh2b2lkKSA9
IDA7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSBwb2lu
dCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBzdGFydEluZGV4KCkpLCBh
bmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3Jl
IGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLiAKKyAgICAgKiBAcmV0dXJuIHRo
ZSBwcmV2aW91cyBjb2RlIHBvaW50LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgcHJldmlvdXMzMih2b2lkKSA9IDA7CisKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMg
b3IgY29kZSBwb2ludHMKKyAgICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBwcmV2aW91cygpIG9y
IHByZXZpb3VzMzIoKSBpbiBiYWNrd2FyZAorICAgICAqIGl0ZXJhdGlvbi4KKyAgICAgKiBAcmV0
dXJuIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMK
KyAgICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5n
ZSwgcmV0dXJuIFRSVUUgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc1ByZXZpb3VzKCkgPSAwOworCisgICAgLyoq
CisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0
LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBmaXJz
dCgpLiAgU2luY2UgaXQncworICAgICAqIHBvc3NpYmxlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvciB0
aGF0IGl0ZXJhdGVzIGFjcm9zcyBvbmx5CisgICAgICogcGFydCBvZiBhIHRleHQtc3RvcmFnZSBv
YmplY3QsIHRoaXMgbnVtYmVyIGlzbid0CisgICAgICogbmVjZXNzYXJpbHkgMC4gIAorICAgICAq
IEByZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFn
ZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGZpcnN0KCkuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAg
c3RhcnRJbmRleCh2b2lkKSBjb25zdDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJu
cyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAg
KiBvYmplY3Qgb2YgdGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVy
CisgICAgICogcmV0dXJuZWQgYnkgbGFzdCgpLiAgCisgICAgICogQHJldHVybiB0aGUgbnVtZXJp
YyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2Yg
dGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVyCisgICAgICogcmV0
dXJuZWQgYnkgbGFzdCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlu
bGluZSBpbnQzMl90ICAgICAgIGVuZEluZGV4KHZvaWQpIGNvbnN0OworICAgICAgICAKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRl
eHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHRoZSBpdGVyYXRvciBj
dXJyZW50bHkgcmVmZXJzIHRvCisgICAgICogKGkuZS4sIHRoZSBjaGFyYWN0ZXIgcmV0dXJuZWQg
YnkgY3VycmVudCgpKS4gIAorICAgICAqIEByZXR1cm4gdGhlIG51bWJlcmljIGluZGV4IGluIHRo
ZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IG9mIAorICAgICAqIHRoZSBjaGFyYWN0ZXIgdGhlIGl0ZXJh
dG9yIGN1cnJlbnRseSByZWZlcnMgdG8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBnZXRJbmRleCh2b2lkKSBjb25zdDsKKworICAgIC8q
KgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgZW50aXJlIHRleHQgaW4gdGhlIHVu
ZGVybHlpbmcKKyAgICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhl
IGxlbmd0aCBvZiB0aGUgZW50aXJlIHRleHQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICAg
ICAgZ2V0TGVuZ3RoKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVu
dCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgICAqIGl0
ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxm
LgorICAgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHVu
aXRzIGZvcndhcmQKKyAgICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUg
b3IgbmVnYXRpdmUgZGVsdGEuCisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxh
dGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBh
IG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3Jp
Z2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4g
dGhlIG5ldyBwb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgaW50MzJfdCAgICAgIG1vdmUoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pID0g
MDsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZl
IHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBvciBy
ZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAgICogVGhlIG1vdmVt
ZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgcG9pbnRzIGZvcndhcmQKKyAgICAg
KiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEu
CisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEg
cG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1l
YW5zIGJhY2t3YXJkLgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtr
U3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCAgICAg
IG1vdmUzMihpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbikgPSAwOworCisgICAgLyoqCisg
ICAgICogQ29waWVzIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBVbmljb2RlU3Ry
aW5nCisgICAgICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICAKKyAgICAgKiBAcGFyYW0gcmVz
dWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uICAKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBn
ZXRUZXh0KFVuaWNvZGVTdHJpbmcmICByZXN1bHQpID0gMDsKKworcHJvdGVjdGVkOgorICAgIC8q
KgorICAgICAqIEVtcHR5IGNvbnN0cnVjdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1
Y3RvciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGggZmllbGQgaW4gdGhpcyBiYXNlIGNsYXNzLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGlu
dDMyX3QgbGVuZ3RoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLCBqdXN0IHNldHRp
bmcgdGhlIGxlbmd0aCBhbmQgcG9zaXRpb24gZmllbGRzIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQz
Ml90IGxlbmd0aCwgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1
Y3RvciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGgsIHN0YXJ0LCBlbmQsIGFuZCBwb3NpdGlvbiBm
aWVsZHMgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90IHRleHRCZWdp
biwgaW50MzJfdCB0ZXh0RW5kLCBpbnQzMl90IHBvc2l0aW9uKTsKKyAgCisgICAgLyoqCisgICAg
ICogQ29weSBjb25zdHJ1Y3Rvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBDaGFy
YWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7
CisKKyAgICAvKioKKyAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgU2V0cyB0aGlzIENoYXJh
Y3Rlckl0ZXJhdG9yIHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsCisgICAgICogYXMgdGhlIG9u
ZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHBh
c3NlZCBpbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBzZXQgQ2hhcmFjdGVySXRlcmF0b3Iu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3Ig
Jm9wZXJhdG9yPShjb25zdCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7CisKKyAgICAvKioKKyAg
ICAgKiBCYXNlIGNsYXNzIHRleHQgbGVuZ3RoIGZpZWxkLgorICAgICAqIE5lY2Vzc2FyeSB0aGlz
IGZvciBjb3JyZWN0IGdldFRleHQoKSBhbmQgaGFzaENvZGUoKS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90IHRleHRMZW5ndGg7CisKKyAgICAvKioKKyAgICAg
KiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBwb3M7CisKKyAgICAvKioKKyAgICAg
KiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0aGUgc3RhcnQgb2YgdGhlIGl0ZXJhdGlvbiByYW5nZS4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBiZWdpbjsKKwor
ICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgZmllbGQgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJh
dGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90
ICBlbmQ7Cit9OworCitpbmxpbmUgVUJvb2wKK0ZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjo6b3Bl
cmF0b3IhPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0IHsKKyAg
ICByZXR1cm4gIW9wZXJhdG9yPT0odGhhdCk7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0
ZXJJdGVyYXRvcjo6c2V0VG9TdGFydCgpIHsKKyAgICByZXR1cm4gbW92ZSgwLCBrU3RhcnQpOwor
fQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvRW5kKCkgeworICAg
IHJldHVybiBtb3ZlKDAsIGtFbmQpOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRl
cmF0b3I6OnN0YXJ0SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBiZWdpbjsKK30KKwor
aW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjplbmRJbmRleCh2b2lkKSBjb25zdCB7
CisgICAgcmV0dXJuIGVuZDsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9y
OjpnZXRJbmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIHBvczsKK30KKworaW5saW5lIGlu
dDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpnZXRMZW5ndGgodm9pZCkgY29uc3QgeworICAgIHJl
dHVybiB0ZXh0TGVuZ3RoOworfQorCitVX05BTUVTUEFDRV9FTkQKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9sb2NpZC5oIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9sb2NpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZDVjYjU0NmViZTM5N2VmNDM2ZGYzNjUwM2ViNDM3MWMz
ODY2OTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmgK
QEAgLTAsMCArMSw4MTQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5
cmlnaHQgKEMpIDE5OTYtMjAxNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqIEZpbGUgbG9jaWQuaAorKgorKiBDcmVhdGVkIGJ5OiBIZWxl
bmEgU2hpaAorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBO
YW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAyLzExLzk3ICAgIGFsaXUgICAgICAgIENoYW5n
ZWQgZ0xvY1BhdGggdG8gZmdMb2NQYXRoIGFuZCBhZGRlZCBtZXRob2RzIHRvCisqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2V0IGFuZCBzZXQgaXQuCisqICAgMDQvMDIvOTcgICAgYWxpdSAg
ICAgICAgTWFkZSBvcGVyYXRvciE9IGlubGluZTsgZml4ZWQgcmV0dXJuIHZhbHVlIG9mIGdldE5h
bWUoKS4KKyogICAwNC8xNS85NyAgICBhbGl1ICAgICAgICBDbGVhbnVwIGZvciBBSVgvV2luMzIu
CisqICAgMDQvMjQvOTcgICAgYWxpdSAgICAgICAgTnVtZXJvdXMgY2hhbmdlcyBwZXIgY29kZSBy
ZXZpZXcuCisqICAgMDgvMTgvOTggICAgc3RlcGhlbiAgICAgQWRkZWQgdG9rZW5pemVTdHJpbmco
KSxjaGFuZ2VkIGdldERpc3BsYXlOYW1lKCkKKyogICAwOS8wOC85OCAgICBzdGVwaGVuICAgICBN
b3ZlZCBkZWZpbml0aW9uIG9mIGtFbXB0eVN0cmluZyBmb3IgTWFjIFBvcnQKKyogICAxMS8wOS85
OSAgICB3ZWl2ICAgICAgICBBZGRlZCBjb25zdCBjaGFyICogZ2V0TmFtZSgpIGNvbnN0OworKiAg
IDA0LzEyLzAwICAgIHNybCAgICAgICAgIHJlbW92aW5nIHVuaWNvZGVzdHJpbmcgYXBpJ3MgYW5k
IGNhY2hlZCBoYXNoIGNvZGUKKyogICAwOC8xMC8wMSAgICBncmhvdGVuICAgICBDaGFuZ2UgdGhl
IHN0YXRpYyBMb2NhbGVzIHRvIGFjY2Vzc29yIGZ1bmN0aW9ucworKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqLworCisjaWZuZGVmIExPQ0lEX0gKKyNkZWZpbmUgTE9DSURfSAorCisjaW5jbHVkZSAi
dW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRl
ICJ1bmljb2RlL3VuaXN0ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKKyNpbmNsdWRl
ICJ1bmljb2RlL3Vsb2MuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVudW0uaCIKKworLyoqCisg
KiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IExvY2FsZSBJRCBvYmplY3QuCisgKi8KKworVV9O
QU1FU1BBQ0VfQkVHSU4KKworLy8gRm9yd2FyZCBEZWNsYXJhdGlvbnMKK3ZvaWQgVV9DQUxMQ09O
ViBsb2NhbGVfYXZhaWxhYmxlX2luaXQoKTsgLyoqPCBAaW50ZXJuYWwgKi8KKworLyoqCisgKiBB
IDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IHJlcHJlc2VudHMgYSBzcGVjaWZpYyBnZW9ncmFw
aGljYWwsIHBvbGl0aWNhbCwKKyAqIG9yIGN1bHR1cmFsIHJlZ2lvbi4gQW4gb3BlcmF0aW9uIHRo
YXQgcmVxdWlyZXMgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHRvIHBlcmZvcm0KKyAqIGl0cyB0YXNr
IGlzIGNhbGxlZCA8ZW0+bG9jYWxlLXNlbnNpdGl2ZTwvZW0+IGFuZCB1c2VzIHRoZSA8Y29kZT5M
b2NhbGU8L2NvZGU+CisgKiB0byB0YWlsb3IgaW5mb3JtYXRpb24gZm9yIHRoZSB1c2VyLiBGb3Ig
ZXhhbXBsZSwgZGlzcGxheWluZyBhIG51bWJlcgorICogaXMgYSBsb2NhbGUtc2Vuc2l0aXZlIG9w
ZXJhdGlvbi0tdGhlIG51bWJlciBzaG91bGQgYmUgZm9ybWF0dGVkCisgKiBhY2NvcmRpbmcgdG8g
dGhlIGN1c3RvbXMvY29udmVudGlvbnMgb2YgdGhlIHVzZXIncyBuYXRpdmUgY291bnRyeSwKKyAq
IHJlZ2lvbiwgb3IgY3VsdHVyZS4KKyAqCisgKiBUaGUgTG9jYWxlIGNsYXNzIGlzIG5vdCBzdWl0
YWJsZSBmb3Igc3ViY2xhc3NpbmcuCisgKgorICogPFA+CisgKiBZb3UgY2FuIGNyZWF0ZSBhIDxj
b2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IHVzaW5nIHRoZSBjb25zdHJ1Y3RvciBpbgorICogdGhp
cyBjbGFzczoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4K
KyAqICAgICAgIExvY2FsZSggY29uc3QgICBjaGFyKiAgbGFuZ3VhZ2UsCisgKiAgICAgICAgICAg
ICAgIGNvbnN0ICAgY2hhciogIGNvdW50cnksCisgKiAgICAgICAgICAgICAgIGNvbnN0ICAgY2hh
ciogIHZhcmlhbnQpOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0
bWxvbmx5CisgKiBUaGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZh
bGlkIDxTVFJPTkc+SVNPCisgKiBMYW5ndWFnZSBDb2RlLjwvU1RST05HPiBUaGVzZSBjb2RlcyBh
cmUgdGhlIGxvd2VyLWNhc2UgdHdvLWxldHRlcgorICogY29kZXMgYXMgZGVmaW5lZCBieSBJU08t
NjM5LgorICogWW91IGNhbiBmaW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNlIGNvZGVzIGF0OgorICog
PEJSPjxhIGhyZWYgPSJodHRwOi8vd3d3LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLyI+Cisg
KiBodHRwOi8vd3d3LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLzwvYT4KKyAqCisgKiA8UD4K
KyAqIFRoZSBzZWNvbmQgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZhbGlkIDxT
VFJPTkc+SVNPIENvdW50cnkKKyAqIENvZGUuPC9TVFJPTkc+IFRoZXNlIGNvZGVzIGFyZSB0aGUg
dXBwZXItY2FzZSB0d28tbGV0dGVyIGNvZGVzCisgKiBhcyBkZWZpbmVkIGJ5IElTTy0zMTY2Lgor
ICogWW91IGNhbiBmaW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNlIGNvZGVzIGF0IGEgbnVtYmVyIG9m
IHNpdGVzLCBzdWNoIGFzOgorICogPEJSPjxhIGhyZWY9Imh0dHA6Ly93d3cuaXNvLm9yZy9pc28v
ZW4vcHJvZHMtc2VydmljZXMvaXNvMzE2Nm1hL2luZGV4Lmh0bWwiPgorICogaHR0cDovL3d3dy5p
c28ub3JnL2lzby9lbi9wcm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEvaW5kZXguaHRtbDwvYT4KKyAq
CisgKiA8UD4KKyAqIFRoZSB0aGlyZCBjb25zdHJ1Y3RvciByZXF1aXJlcyBhIHRoaXJkIGFyZ3Vt
ZW50LS10aGUgPFNUUk9ORz5WYXJpYW50LjwvU1RST05HPgorICogVGhlIFZhcmlhbnQgY29kZXMg
YXJlIHZlbmRvciBhbmQgYnJvd3Nlci1zcGVjaWZpYy4KKyAqIEZvciBleGFtcGxlLCB1c2UgUkVW
SVNFRCBmb3IgYSBsYW5nYXVnZSdzIHJldmlzZWQgc2NyaXB0IG9ydGhvZ3JhcGh5LCBhbmQgUE9T
SVggZm9yIFBPU0lYLgorICogV2hlcmUgdGhlcmUgYXJlIHR3byB2YXJpYW50cywgc2VwYXJhdGUg
dGhlbSB3aXRoIGFuIHVuZGVyc2NvcmUsIGFuZAorICogcHV0IHRoZSBtb3N0IGltcG9ydGFudCBv
bmUgZmlyc3QuIEZvcgorICogZXhhbXBsZSwgYSBUcmFkaXRpb25hbCBTcGFuaXNoIGNvbGxhdGlv
biBtaWdodCBiZSByZWZlcmVuY2VkLCB3aXRoCisgKiAiRVMiLCAiRVMiLCAiVHJhZGl0aW9uYWxf
UE9TSVgiLgorICoKKyAqIDxQPgorICogQmVjYXVzZSBhIDxjb2RlPkxvY2FsZTwvY29kZT4gb2Jq
ZWN0IGlzIGp1c3QgYW4gaWRlbnRpZmllciBmb3IgYSByZWdpb24sCisgKiBubyB2YWxpZGl0eSBj
aGVjayBpcyBwZXJmb3JtZWQgd2hlbiB5b3UgY29uc3RydWN0IGEgPGNvZGU+TG9jYWxlPC9jb2Rl
Pi4KKyAqIElmIHlvdSB3YW50IHRvIHNlZSB3aGV0aGVyIHBhcnRpY3VsYXIgcmVzb3VyY2VzIGFy
ZSBhdmFpbGFibGUgZm9yIHRoZQorICogPGNvZGU+TG9jYWxlPC9jb2RlPiB5b3UgY29uc3RydWN0
LCB5b3UgbXVzdCBxdWVyeSB0aG9zZSByZXNvdXJjZXMuIEZvcgorICogZXhhbXBsZSwgYXNrIHRo
ZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGZvciB0aGUgbG9jYWxlcyBpdCBzdXBwb3J0cwor
ICogdXNpbmcgaXRzIDxjb2RlPmdldEF2YWlsYWJsZUxvY2FsZXM8L2NvZGU+IG1ldGhvZC4KKyAq
IDxCUj48U1RST05HPk5vdGU6PC9TVFJPTkc+IFdoZW4geW91IGFzayBmb3IgYSByZXNvdXJjZSBm
b3IgYSBwYXJ0aWN1bGFyCisgKiBsb2NhbGUsIHlvdSBnZXQgYmFjayB0aGUgYmVzdCBhdmFpbGFi
bGUgbWF0Y2gsIG5vdCBuZWNlc3NhcmlseQorICogcHJlY2lzZWx5IHdoYXQgeW91IGFza2VkIGZv
ci4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIGxvb2sgYXQKKyAqIDxjb2RlPlJlc291cmNlQnVuZGxl
PC9jb2RlPi4KKyAqCisgKiA8UD4KKyAqIFRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGNsYXNzIHBy
b3ZpZGVzIGEgbnVtYmVyIG9mIGNvbnZlbmllbnQgY29uc3RhbnRzCisgKiB0aGF0IHlvdSBjYW4g
dXNlIHRvIGNyZWF0ZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdHMgZm9yIGNvbW1vbmx5IHVz
ZWQKKyAqIGxvY2FsZXMuIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHJlZmVycyB0byBhIDxj
b2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0CisgKiBmb3IgdGhlIFVuaXRlZCBTdGF0ZXM6CisgKiBc
aHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgICBMb2Nh
bGU6OmdldFVTKCkKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1s
b25seQorICoKKyAqIDxQPgorICogT25jZSB5b3UndmUgY3JlYXRlZCBhIDxjb2RlPkxvY2FsZTwv
Y29kZT4geW91IGNhbiBxdWVyeSBpdCBmb3IgaW5mb3JtYXRpb24gYWJvdXQKKyAqIGl0c2VsZi4g
VXNlIDxjb2RlPmdldENvdW50cnk8L2NvZGU+IHRvIGdldCB0aGUgSVNPIENvdW50cnkgQ29kZSBh
bmQKKyAqIDxjb2RlPmdldExhbmd1YWdlPC9jb2RlPiB0byBnZXQgdGhlIElTTyBMYW5ndWFnZSBD
b2RlLiBZb3UgY2FuCisgKiB1c2UgPGNvZGU+Z2V0RGlzcGxheUNvdW50cnk8L2NvZGU+IHRvIGdl
dCB0aGUKKyAqIG5hbWUgb2YgdGhlIGNvdW50cnkgc3VpdGFibGUgZm9yIGRpc3BsYXlpbmcgdG8g
dGhlIHVzZXIuIFNpbWlsYXJseSwKKyAqIHlvdSBjYW4gdXNlIDxjb2RlPmdldERpc3BsYXlMYW5n
dWFnZTwvY29kZT4gdG8gZ2V0IHRoZSBuYW1lIG9mCisgKiB0aGUgbGFuZ3VhZ2Ugc3VpdGFibGUg
Zm9yIGRpc3BsYXlpbmcgdG8gdGhlIHVzZXIuIEludGVyZXN0aW5nbHksCisgKiB0aGUgPGNvZGU+
Z2V0RGlzcGxheVhYWDwvY29kZT4gbWV0aG9kcyBhcmUgdGhlbXNlbHZlcyBsb2NhbGUtc2Vuc2l0
aXZlCisgKiBhbmQgaGF2ZSB0d28gdmVyc2lvbnM6IG9uZSB0aGF0IHVzZXMgdGhlIGRlZmF1bHQg
bG9jYWxlIGFuZCBvbmUKKyAqIHRoYXQgdGFrZXMgYSBsb2NhbGUgYXMgYW4gYXJndW1lbnQgYW5k
IGRpc3BsYXlzIHRoZSBuYW1lIG9yIGNvdW50cnkgaW4KKyAqIGEgbGFuZ3VhZ2UgYXBwcm9wcmlh
dGUgdG8gdGhhdCBsb2NhbGUuCisgKgorICogPFA+CisgKiBJQ1UgcHJvdmlkZXMgYSBudW1iZXIg
b2YgY2xhc3NlcyB0aGF0IHBlcmZvcm0gbG9jYWxlLXNlbnNpdGl2ZQorICogb3BlcmF0aW9ucy4g
Rm9yIGV4YW1wbGUsIHRoZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGNsYXNzIGZvcm1hdHMK
KyAqIG51bWJlcnMsIGN1cnJlbmN5LCBvciBwZXJjZW50YWdlcyBpbiBhIGxvY2FsZS1zZW5zaXRp
dmUgbWFubmVyLiBDbGFzc2VzCisgKiBzdWNoIGFzIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4g
aGF2ZSBhIG51bWJlciBvZiBjb252ZW5pZW5jZSBtZXRob2RzCisgKiBmb3IgY3JlYXRpbmcgYSBk
ZWZhdWx0IG9iamVjdCBvZiB0aGF0IHR5cGUuIEZvciBleGFtcGxlLCB0aGUKKyAqIDxjb2RlPk51
bWJlckZvcm1hdDwvY29kZT4gY2xhc3MgcHJvdmlkZXMgdGhlc2UgdGhyZWUgY29udmVuaWVuY2Ug
bWV0aG9kcworICogZm9yIGNyZWF0aW5nIGEgZGVmYXVsdCA8Y29kZT5OdW1iZXJGb3JtYXQ8L2Nv
ZGU+IG9iamVjdDoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHBy
ZT4KKyAqICAgICBVRXJyb3JDb2RlIHN1Y2Nlc3MgPSBVX1pFUk9fRVJST1I7CisgKiAgICAgTG9j
YWxlIG15TG9jYWxlOworICogICAgIE51bWJlckZvcm1hdCAqbmY7CisgKgorICogICAgIG5mID0g
TnVtYmVyRm9ybWF0OjpjcmVhdGVJbnN0YW5jZSggc3VjY2VzcyApOyAgICAgICAgICBkZWxldGUg
bmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUN1cnJlbmN5SW5zdGFuY2UoIHN1
Y2Nlc3MgKTsgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlUGVy
Y2VudEluc3RhbmNlKCBzdWNjZXNzICk7ICAgZGVsZXRlIG5mOworICogPC9wcmU+CisgKiBcaHRt
bG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBFYWNoIG9mIHRoZXNlIG1ldGhvZHMg
aGFzIHR3byB2YXJpYW50czsgb25lIHdpdGggYW4gZXhwbGljaXQgbG9jYWxlCisgKiBhbmQgb25l
IHdpdGhvdXQ7IHRoZSBsYXR0ZXIgdXNpbmcgdGhlIGRlZmF1bHQgbG9jYWxlLgorICogXGh0bWxv
bmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgIG5mID0gTnVtYmVy
Rm9ybWF0OjpjcmVhdGVJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgICAgICAgICAgZGVs
ZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVDdXJyZW5jeUluc3RhbmNl
KCBteUxvY2FsZSwgc3VjY2VzcyApOyAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9y
bWF0OjpjcmVhdGVQZXJjZW50SW5zdGFuY2UoIG15TG9jYWxlLCBzdWNjZXNzICk7ICAgZGVsZXRl
IG5mOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5Cisg
KiBBIDxjb2RlPkxvY2FsZTwvY29kZT4gaXMgdGhlIG1lY2hhbmlzbSBmb3IgaWRlbnRpZnlpbmcg
dGhlIGtpbmQgb2Ygb2JqZWN0CisgKiAoPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPikgdGhhdCB5
b3Ugd291bGQgbGlrZSB0byBnZXQuIFRoZSBsb2NhbGUgaXMKKyAqIDxTVFJPTkc+anVzdDwvU1RS
T05HPiBhIG1lY2hhbmlzbSBmb3IgaWRlbnRpZnlpbmcgb2JqZWN0cywKKyAqIDxTVFJPTkc+bm90
PC9TVFJPTkc+IGEgY29udGFpbmVyIGZvciB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgorICoKKyAq
IDxQPgorICogRWFjaCBjbGFzcyB0aGF0IHBlcmZvcm1zIGxvY2FsZS1zZW5zaXRpdmUgb3BlcmF0
aW9ucyBhbGxvd3MgeW91CisgKiB0byBnZXQgYWxsIHRoZSBhdmFpbGFibGUgb2JqZWN0cyBvZiB0
aGF0IHR5cGUuIFlvdSBjYW4gc2lmdAorICogdGhyb3VnaCB0aGVzZSBvYmplY3RzIGJ5IGxhbmd1
YWdlLCBjb3VudHJ5LCBvciB2YXJpYW50LAorICogYW5kIHVzZSB0aGUgZGlzcGxheSBuYW1lcyB0
byBwcmVzZW50IGEgbWVudSB0byB0aGUgdXNlci4KKyAqIEZvciBleGFtcGxlLCB5b3UgY2FuIGNy
ZWF0ZSBhIG1lbnUgb2YgYWxsIHRoZSBjb2xsYXRpb24gb2JqZWN0cworICogc3VpdGFibGUgZm9y
IGEgZ2l2ZW4gbGFuZ3VhZ2UuIFN1Y2ggY2xhc3NlcyBpbXBsZW1lbnQgdGhlc2UKKyAqIHRocmVl
IGNsYXNzIG1ldGhvZHM6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAq
IDxwcmU+CisgKiAgICAgICBzdGF0aWMgTG9jYWxlKiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMy
X3QmIG51bUxvY2FsZXMpCisgKiAgICAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxh
eU5hbWUoY29uc3QgTG9jYWxlJiAgb2JqZWN0TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYgIGRpc3BsYXlMb2NhbGUsCisg
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmlu
ZyYgZGlzcGxheU5hbWUpCisgKiAgICAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxh
eU5hbWUoY29uc3QgTG9jYWxlJiAgb2JqZWN0TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BsYXlOYW1lKQorICog
PC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKgorICogQHN0
YWJsZSBJQ1UgMi4wCisgKiBAc2VlIFJlc291cmNlQnVuZGxlCisgKi8KK2NsYXNzIFVfQ09NTU9O
X0FQSSBMb2NhbGUgOiBwdWJsaWMgVU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqIFVzZWZ1bCBj
b25zdGFudCBmb3IgdGhlIFJvb3QgbG9jYWxlLiBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICBzdGF0
aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Um9vdCh2b2lkKTsKKyAgICAvKiogVXNlZnVs
IGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0
aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RW5nbGlzaCh2b2lkKTsKKyAgICAvKiogVXNl
ZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBz
dGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RnJlbmNoKHZvaWQpOworICAgIC8qKiBV
c2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAg
IHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRHZXJtYW4odm9pZCk7CisgICAgLyoq
IFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisg
ICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEl0YWxpYW4odm9pZCk7CisgICAg
LyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEphcGFuZXNlKHZvaWQpOwor
ICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIu
MCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRLb3JlYW4odm9pZCk7
CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1Ug
Mi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENoaW5lc2Uodm9p
ZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJ
Q1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFNpbXBsaWZp
ZWRDaGluZXNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3Vh
Z2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JU
MiBnZXRUcmFkaXRpb25hbENoaW5lc2Uodm9pZCk7CisKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50
IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMg
Y29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RnJhbmNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwg
Y29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAg
IHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRHZXJtYW55KHZvaWQpOworICAgIC8q
KiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIu
MCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRJdGFseSh2b2lkKTsK
KyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxl
IElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SmFwYW4o
dm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4g
QHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdl
dEtvcmVhKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9y
ZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQ
T1JUMiBnZXRDaGluYSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNv
dW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxl
ICZVX0VYUE9SVDIgZ2V0UFJDKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRo
aXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBM
b2NhbGUgJlVfRVhQT1JUMiBnZXRUYWl3YW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFu
dCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFVLKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRVUyh2b2lkKTsKKyAgICAvKiogVXNlZnVs
IGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAg
ICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2FuYWRhKHZvaWQpOworICAgIC8q
KiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIu
MCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDYW5hZGFGcmVuY2go
dm9pZCk7CisKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIGRlZmF1bHQgbG9jYWxlIG9i
amVjdCwgYSBMb2NhbGUgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBJRC4KKyAgICAgKgorICAgICAq
IEBzZWUgZ2V0RGVmYXVsdAorICAgICAqIEBzZWUgdWxvY19nZXREZWZhdWx0CisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxlKCk7CisKKyAgICAvKioKKyAgICAgKiBD
b25zdHJ1Y3QgYSBsb2NhbGUgZnJvbSBsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudC4KKyAgICAg
KiBJZiBhbiBlcnJvciBvY2N1cnMsIHRoZW4gdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJl
ICJib2d1cyIKKyAgICAgKiAoaXNCb2d1cygpIHdpbGwgcmV0dXJuIFRSVUUpLgorICAgICAqCisg
ICAgICogQHBhcmFtIGxhbmd1YWdlIExvd2VyY2FzZSB0d28tbGV0dGVyIG9yIHRocmVlLWxldHRl
ciBJU08tNjM5IGNvZGUuCisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNhbiBpbnN0ZWFkIGJlIGFu
IElDVSBzdHlsZSBDIGxvY2FsZSAoZS5nLiAiZW5fVVMiKSwKKyAgICAgKiAgYnV0IHRoZSBvdGhl
ciBwYXJhbWV0ZXJzIG11c3Qgbm90IGJlIHVzZWQuCisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNh
biBiZSBOVUxMOyBpZiBzbywKKyAgICAgKiAgdGhlIGxvY2FsZSBpcyBpbml0aWFsaXplZCB0byBt
YXRjaCB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiAgKFRoaXMgaXMgdGhlIHNh
bWUgYXMgdXNpbmcgdGhlIGRlZmF1bHQgY29uc3RydWN0b3IuKQorICAgICAqICBQbGVhc2Ugbm90
ZTogVGhlIEphdmEgTG9jYWxlIGNsYXNzIGRvZXMgTk9UIGFjY2VwdCB0aGUgZm9ybQorICAgICAq
ICAnbmV3IExvY2FsZSgiZW5fVVMiKScgYnV0IG9ubHkgJ25ldyBMb2NhbGUoImVuIiwiVVMiKScK
KyAgICAgKgorICAgICAqIEBwYXJhbSBjb3VudHJ5ICBVcHBlcmNhc2UgdHdvLWxldHRlciBJU08t
MzE2NiBjb2RlLiAob3B0aW9uYWwpCisgICAgICogQHBhcmFtIHZhcmlhbnQgIFVwcGVyY2FzZSB2
ZW5kb3IgYW5kIGJyb3dzZXIgc3BlY2lmaWMgY29kZS4gU2VlIGNsYXNzCisgICAgICogICAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uLiAob3B0aW9uYWwpCisgICAgICogQHBhcmFtIGtleXdvcmRz
QW5kVmFsdWVzIEEgc3RyaW5nIGNvbnNpc3Rpbmcgb2Yga2V5d29yZC92YWx1ZXMgcGFpcnMsIHN1
Y2ggYXMKKyAgICAgKiAgICAgICAgICAgICAgICAgImNvbGxhdGlvbj1waG9uZWJvb2s7Y3VycmVu
Y3k9ZXVybyIKKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RGVmYXVsdAorICAgICAqIEBzZWUgdWxv
Y19nZXREZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxl
KCBjb25zdCAgIGNoYXIgKiBsYW5ndWFnZSwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIGNv
dW50cnkgID0gMCwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIHZhcmlhbnQgID0gMCwKKyAg
ICAgICAgICAgIGNvbnN0ICAgY2hhciAqIGtleXdvcmRzQW5kVmFsdWVzID0gMCk7CisKKyAgICAv
KioKKyAgICAgKiBJbml0aWFsaXplcyBhIExvY2FsZSBvYmplY3QgZnJvbSBhbm90aGVyIExvY2Fs
ZSBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIExvY2FsZSBvYmplY3Qg
YmVpbmcgY29waWVkIGluLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExv
Y2FsZShjb25zdCAgICBMb2NhbGUmIG90aGVyKTsKKworCisgICAgLyoqCisgICAgICogRGVzdHJ1
Y3RvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkxvY2Fs
ZSgpIDsKKworICAgIC8qKgorICAgICAqIFJlcGxhY2VzIHRoZSBlbnRpcmUgY29udGVudHMgb2Yg
KnRoaXMgd2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAqCisgICAgICogQHBhcmFtIG90
aGVyIFRoZSBMb2NhbGUgb2JqZWN0IGJlaW5nIGNvcGllZCBpbi4KKyAgICAgKiBAcmV0dXJuICAg
ICAgKnRoaXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUmIG9w
ZXJhdG9yPShjb25zdCBMb2NhbGUmIG90aGVyKTsKKworICAgIC8qKgorICAgICAqIENoZWNrcyBp
ZiB0d28gbG9jYWxlIGtleXMgYXJlIHRoZSBzYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG90
aGVyIFRoZSBsb2NhbGUga2V5IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAg
ICogQHJldHVybiAgICAgIFRydWUgaWYgdGhlIHR3byBsb2NhbGUga2V5cyBhcmUgdGhlIHNhbWUs
IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBV
Qm9vbCAgIG9wZXJhdG9yPT0oY29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHR3byBsb2NhbGUga2V5cyBhcmUgbm90IHRoZSBzYW1l
LgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBsb2NhbGUga2V5IG9iamVjdCB0byBi
ZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAgICogQHJldHVybiAgICAgIFRydWUgaWYgdGhlIHR3
byBsb2NhbGUga2V5cyBhcmUgbm90IHRoZSBzYW1lLCBmYWxzZQorICAgICAqICAgICAgICAgICAg
ICBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVUJvb2wg
ICBvcGVyYXRvciE9KGNvbnN0ICAgIExvY2FsZSYgICAgIG90aGVyKSBjb25zdDsKKworICAgIC8q
KgorICAgICAqIENsb25lIHRoaXMgb2JqZWN0LgorICAgICAqIENsb25lcyBjYW4gYmUgdXNlZCBj
b25jdXJyZW50bHkgaW4gbXVsdGlwbGUgdGhyZWFkcy4KKyAgICAgKiBJZiBhbiBlcnJvciBvY2N1
cnMsIHRoZW4gTlVMTCBpcyByZXR1cm5lZC4KKyAgICAgKiBUaGUgY2FsbGVyIG11c3QgZGVsZXRl
IHRoZSBjbG9uZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYSBjbG9uZSBvZiB0aGlzIG9iamVj
dAorICAgICAqCisgICAgICogQHNlZSBnZXREeW5hbWljQ2xhc3NJRAorICAgICAqIEBzdGFibGUg
SUNVIDIuOAorICAgICAqLworICAgIExvY2FsZSAqY2xvbmUoKSBjb25zdDsKKworI2lmbmRlZiBV
X0hJREVfU1lTVEVNX0FQSQorICAgIC8qKgorICAgICAqIENvbW1vbiBtZXRob2RzIG9mIGdldHRp
bmcgdGhlIGN1cnJlbnQgZGVmYXVsdCBMb2NhbGUuIFVzZWQgZm9yIHRoZQorICAgICAqIHByZXNl
bnRhdGlvbjogbWVudXMsIGRpYWxvZ3MsIGV0Yy4gR2VuZXJhbGx5IHNldCBvbmNlIHdoZW4geW91
ciBhcHBsZXQgb3IKKyAgICAgKiBhcHBsaWNhdGlvbiBpcyBpbml0aWFsaXplZCwgdGhlbiBuZXZl
ciByZXNldC4gKElmIHlvdSBkbyByZXNldCB0aGUKKyAgICAgKiBkZWZhdWx0IGxvY2FsZSwgeW91
IHByb2JhYmx5IHdhbnQgdG8gcmVsb2FkIHlvdXIgR1VJLCBzbyB0aGF0IHRoZSBjaGFuZ2UKKyAg
ICAgKiBpcyByZWZsZWN0ZWQgaW4geW91ciBpbnRlcmZhY2UuKQorICAgICAqCisgICAgICogTW9y
ZSBhZHZhbmNlZCBwcm9ncmFtcyB3aWxsIGFsbG93IHVzZXJzIHRvIHVzZSBkaWZmZXJlbnQgbG9j
YWxlcyBmb3IKKyAgICAgKiBkaWZmZXJlbnQgZmllbGRzLCBlLmcuIGluIGEgc3ByZWFkc2hlZXQu
CisgICAgICoKKyAgICAgKiBOb3RlIHRoYXQgdGhlIGluaXRpYWwgc2V0dGluZyB3aWxsIG1hdGNo
IHRoZSBob3N0IHN5c3RlbS4KKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSBMb2Nh
bGUgb2JqZWN0IGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgSUQKKyAgICAgKiBAc3lzdGVtCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSYgVV9F
WFBPUlQyIGdldERlZmF1bHQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWZh
dWx0LiBOb3JtYWxseSBzZXQgb25jZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgcHJvY2VzcywKKyAg
ICAgKiB0aGVuIG5ldmVyIHJlc2V0LgorICAgICAqIHNldERlZmF1bHQoKSBvbmx5IGNoYW5nZXMg
SUNVJ3MgZGVmYXVsdCBsb2NhbGUgSUQsIDxzdHJvbmc+bm90PC9zdHJvbmc+CisgICAgICogdGhl
IGRlZmF1bHQgbG9jYWxlIElEIG9mIHRoZSBydW50aW1lIGVudmlyb25tZW50LgorICAgICAqCisg
ICAgICogQHBhcmFtIG5ld0xvY2FsZSBMb2NhbGUgdG8gc2V0IHRvLiAgSWYgTlVMTCwgc2V0IHRv
IHRoZSB2YWx1ZSBvYnRhaW5lZAorICAgICAqICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgcnVu
dGltZSBlbnZpcm9uZW1lbnQuCisgICAgICogQHBhcmFtIHN1Y2Nlc3MgVGhlIGVycm9yIGNvZGUu
CisgICAgICogQHN5c3RlbQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0
YXRpYyB2b2lkIFVfRVhQT1JUMiBzZXREZWZhdWx0KGNvbnN0IExvY2FsZSYgbmV3TG9jYWxlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUmICAgc3VjY2Vz
cyk7CisjZW5kaWYgIC8qIFVfSElERV9TWVNURU1fQVBJICovCisKKyAgICAvKioKKyAgICAgKiBD
cmVhdGVzIGEgbG9jYWxlIHdoaWNoIGhhcyBoYWQgbWluaW1hbCBjYW5vbmljYWxpemF0aW9uCisg
ICAgICogYXMgcGVyIHVsb2NfZ2V0TmFtZSgpLgorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1l
IHRvIGNyZWF0ZSBmcm9tLiAgSWYgbmFtZSBpcyBudWxsLAorICAgICAqICB0aGUgZGVmYXVsdCBM
b2NhbGUgaXMgdXNlZC4KKyAgICAgKiBAcmV0dXJuIG5ldyBsb2NhbGUgb2JqZWN0CisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICogQHNlZSB1bG9jX2dldE5hbWUKKyAgICAgKi8KKyAgICBz
dGF0aWMgTG9jYWxlIFVfRVhQT1JUMiBjcmVhdGVGcm9tTmFtZShjb25zdCBjaGFyICpuYW1lKTsK
KworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBsb2NhbGUgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5n
IGFmdGVyIGNhbm9uaWNhbGl6aW5nCisgICAgICogdGhlIHN0cmluZyBieSBjYWxsaW5nIHVsb2Nf
Y2Fub25pY2FsaXplKCkuCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGxvY2FsZSBJRCB0byBjcmVh
dGUgZnJvbS4gIE11c3Qgbm90IGJlIE5VTEwuCisgICAgICogQHJldHVybiBhIG5ldyBsb2NhbGUg
b2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIG5hbWUKKyAgICAgKiBAc3RhYmxlIElD
VSAzLjAKKyAgICAgKiBAc2VlIHVsb2NfY2Fub25pY2FsaXplCisgICAgICovCisgICAgc3RhdGlj
IExvY2FsZSBVX0VYUE9SVDIgY3JlYXRlQ2Fub25pY2FsKGNvbnN0IGNoYXIqIG5hbWUpOworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTYzOSBsYW5ndWFnZSBjb2Rl
LgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldExhbmd1YWdl
KCApIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTE1
OTI0IGFiYnJldmlhdGlvbiBzY3JpcHQgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxp
YXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc2VlIHVzY3JpcHRfZ2V0U2hvcnROYW1lCisgICAgICog
QHNlZSB1c2NyaXB0X2dldENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAg
ICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRTY3JpcHQoICkgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tMzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICog
QHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0Q291bnRyeSggKSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIHZhcmlhbnQgY29kZS4KKyAg
ICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRWYXJpYW50KCApIGNv
bnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcHJvZ3JhbW1hdGljIG5hbWUgb2Yg
dGhlIGVudGlyZSBsb2NhbGUsIHdpdGggdGhlIGxhbmd1YWdlLAorICAgICAqIGNvdW50cnkgYW5k
IHZhcmlhbnQgc2VwYXJhdGVkIGJ5IHVuZGVyYmFycy4gSWYgYSBmaWVsZCBpcyBtaXNzaW5nLCB1
cAorICAgICAqIHRvIHR3byBsZWFkaW5nIHVuZGVyYmFycyB3aWxsIG9jY3VyLiBFeGFtcGxlOiAi
ZW4iLCAiZGVfREUiLCAiZW5fVVNfV0lOIiwKKyAgICAgKiAiZGVfX1BPU0lYIiwgImZyX19NQUMi
LCAiX19NQUMiLCAiX01UIiwgIl9GUl9FVVJPIgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50
ZXIgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGlu
ZSBjb25zdCBjaGFyICogZ2V0TmFtZSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJu
cyB0aGUgcHJvZ3JhbW1hdGljIG5hbWUgb2YgdGhlIGVudGlyZSBsb2NhbGUgYXMgZ2V0TmFtZSgp
IHdvdWxkIHJldHVybiwKKyAgICAgKiBidXQgd2l0aG91dCBrZXl3b3Jkcy4KKyAgICAgKiBAcmV0
dXJuICAgICAgQSBwb2ludGVyIHRvICJuYW1lIi4KKyAgICAgKiBAc2VlIGdldE5hbWUKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0QmFzZU5hbWUo
KSBjb25zdDsKKworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGlzdCBvZiBrZXl3b3JkcyBm
b3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRo
ZSBzdGF0dXMgY29kZQorICAgICAqIEByZXR1cm4gcG9pbnRlciB0byBTdHJpbmdFbnVtZXJhdGlv
biBjbGFzcywgb3IgTlVMTCBpZiB0aGVyZSBhcmUgbm8ga2V5d29yZHMuIAorICAgICAqIENsaWVu
dCBtdXN0IGRpc3Bvc2Ugb2YgaXQgYnkgY2FsbGluZyBkZWxldGUuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi44CisgICAgICovCisgICAgU3RyaW5nRW51bWVyYXRpb24gKiBjcmVhdGVLZXl3b3JkcyhV
RXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdmFs
dWUgZm9yIGEga2V5d29yZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1l
IG9mIHRoZSBrZXl3b3JkIGZvciB3aGljaCB3ZSB3YW50IHRoZSB2YWx1ZS4gQ2FzZSBpbnNlbnNp
dGl2ZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIFRoZSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUga2V5
d29yZCB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyQ2FwYWNpdHkgVGhlIGNhcGFjaXR5IG9m
IHJlY2VpdmluZyBidWZmZXIKKyAgICAgKiBAcGFyYW0gc3RhdHVzIFJldHVybnMgYW55IGVycm9y
IGluZm9ybWF0aW9uIHdoaWxlIHBlcmZvcm1pbmcgdGhpcyBvcGVyYXRpb24uCisgICAgICogQHJl
dHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBrZXl3b3JkIHZhbHVlCisgICAgICoKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBpbnQzMl90IGdldEtleXdvcmRWYWx1ZShjb25zdCBj
aGFyKiBrZXl3b3JkTmFtZSwgY2hhciAqYnVmZmVyLCBpbnQzMl90IGJ1ZmZlckNhcGFjaXR5LCBV
RXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogU2V0cyBvciByZW1v
dmVzIHRoZSB2YWx1ZSBmb3IgYSBrZXl3b3JkLgorICAgICAqCisgICAgICogRm9yIHJlbW92aW5n
IGFsbCBrZXl3b3JkcywgdXNlIGdldEJhc2VOYW1lKCksCisgICAgICogYW5kIGNvbnN0cnVjdCBh
IG5ldyBMb2NhbGUgaWYgaXQgZGlmZmVycyBmcm9tIGdldE5hbWUoKS4KKyAgICAgKgorICAgICAq
IEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3JkIHRvIGJlIHNldC4gQ2FzZSBp
bnNlbnNpdGl2ZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZFZhbHVlIHZhbHVlIG9mIHRoZSBrZXl3
b3JkIHRvIGJlIHNldC4gSWYgMC1sZW5ndGggb3IKKyAgICAgKiAgTlVMTCwgd2lsbCByZXN1bHQg
aW4gdGhlIGtleXdvcmQgYmVpbmcgcmVtb3ZlZC4gTm8gZXJyb3IgaXMgZ2l2ZW4gaWYKKyAgICAg
KiAgdGhhdCBrZXl3b3JkIGRvZXMgbm90IGV4aXN0LgorICAgICAqIEBwYXJhbSBzdGF0dXMgUmV0
dXJucyBhbnkgZXJyb3IgaW5mb3JtYXRpb24gd2hpbGUgcGVyZm9ybWluZyB0aGlzIG9wZXJhdGlv
bi4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdm9pZCBzZXRL
ZXl3b3JkVmFsdWUoY29uc3QgY2hhcioga2V5d29yZE5hbWUsIGNvbnN0IGNoYXIqIGtleXdvcmRW
YWx1ZSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIHJldHVybnMgdGhl
IGxvY2FsZSdzIHRocmVlLWxldHRlciBsYW5ndWFnZSBjb2RlLCBhcyBzcGVjaWZpZWQKKyAgICAg
KiBpbiBJU08gZHJhZnQgc3RhbmRhcmQgSVNPLTYzOS0yLgorICAgICAqIEByZXR1cm4gICAgICBB
biBhbGlhcyB0byB0aGUgY29kZSwgb3IgYW4gZW1wdHkgc3RyaW5nCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgY29uc3QgY2hhciAqIGdldElTTzNMYW5ndWFnZSgpIGNvbnN0
OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIGxvY2FsZSdzIHRo
cmVlLWxldHRlciBJU08tMzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFu
IGFsaWFzIHRvIHRoZSBjb2RlLCBvciBhbiBlbXB0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0SVNPM0NvdW50cnkoKSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFdpbmRvd3MgTENJRCB2YWx1ZSBjb3JyZXNw
b25kaW5nIHRvIHRoaXMgbG9jYWxlLgorICAgICAqIFRoaXMgdmFsdWUgaXMgc3RvcmVkIGluIHRo
ZSByZXNvdXJjZSBkYXRhIGZvciB0aGUgbG9jYWxlIGFzIGEgb25lLXRvLWZvdXItZGlnaXQKKyAg
ICAgKiBoZXhhZGVjaW1hbCBudW1iZXIuICBJZiB0aGUgcmVzb3VyY2UgaXMgbWlzc2luZywgaW4g
dGhlIHdyb25nIGZvcm1hdCwgb3IKKyAgICAgKiB0aGVyZSBpcyBubyBXaW5kb3dzIExDSUQgdmFs
dWUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGlzIGxvY2FsZSwgcmV0dXJucyAwLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICBnZXRMQ0lEKHZvaWQp
IGNvbnN0OworCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHdoZXRoZXIgdGhpcyBsb2NhbGUncyBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0
LgorICAgICAqIElmIHRoZXJlIGlzIG5vIHNjcmlwdCBzdWJ0YWcsIHRoZW4gdGhlIGxpa2VseSBz
Y3JpcHQgaXMgdXNlZCwgc2VlIHVsb2NfYWRkTGlrZWx5U3VidGFncygpLgorICAgICAqIElmIG5v
IGxpa2VseSBzY3JpcHQgaXMga25vd24sIHRoZW4gRkFMU0UgaXMgcmV0dXJuZWQuCisgICAgICoK
KyAgICAgKiBBIHNjcmlwdCBpcyByaWdodC10by1sZWZ0IGFjY29yZGluZyB0byB0aGUgQ0xEUiBz
Y3JpcHQgbWV0YWRhdGEKKyAgICAgKiB3aGljaCBjb3JyZXNwb25kcyB0byB3aGV0aGVyIHRoZSBz
Y3JpcHQncyBsZXR0ZXJzIGhhdmUgQmlkaV9DbGFzcz1SIG9yIEFMLgorICAgICAqCisgICAgICog
UmV0dXJucyBUUlVFIGZvciAiYXIiIGFuZCAiZW4tSGViciIsIEZBTFNFIGZvciAiemgiIGFuZCAi
ZmEtQ3lybCIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIGxvY2FsZSdzIHNj
cmlwdCBpcyB3cml0dGVuIHJpZ2h0LXRvLWxlZnQKKyAgICAgKiBAZHJhZnQgSUNVIDU0CisgICAg
ICovCisgICAgVUJvb2wgaXNSaWdodFRvTGVmdCgpIGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVf
RFJBRlRfQVBJICovCisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcExhbmciIHdpdGgg
dGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBm
b3IKKyAgICAgKiB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1w
bGUsIGlmIHRoZSBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzCisgICAgICogImZyIiBhbmQgdGhl
IGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdv
dWxkIHNldAorICAgICAqIGRpc3BMYW5nIHRvICJGcmVuY2giLgorICAgICAqIEBwYXJhbSBkaXNw
TGFuZyAgUmVjZWl2ZXMgdGhlIGxhbmd1YWdlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1
cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BMYW5nIi4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUxhbmd1YWdlKFVu
aWNvZGVTdHJpbmcmICAgZGlzcExhbmcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMg
aW4gImRpc3BMYW5nIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgaW4g
YSBmb3JtYXQgc3VpdGFibGUgZm9yCisgICAgICogdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUg
c3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxl
J3MKKyAgICAgKiBsYW5ndWFnZSBjb2RlIGlzICJlbiIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5n
dWFnZSBjb2RlIGlzICJmciIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcExh
bmcgdG8gIkFuZ2xhaXMiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMg
dGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlciB3b3Jk
cywKKyAgICAgKiAgICAgICAgICAgICAgICAgIGlmIHRoZSBsb2NhbGUncyBsYW5ndWFnZSBjb2Rl
IGlzICJlbiIsIHBhc3NpbmcgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IKKyAgICAgKiAgICAgICAg
ICAgICAgICAgIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICJBbmdsYWlzIiwgd2hpbGUg
cGFzc2luZyBMb2NhbGU6OmdldEdlcm1hbigpCisgICAgICogICAgICAgICAgICAgICAgICBmb3Ig
ZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIkVuZ2xpc2NoIi4KKyAgICAgKiBAcGFyYW0g
ZGlzcExhbmcgIFJlY2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBA
cmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwTGFuZyIuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlMYW5ndWFn
ZSggY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwTGFu
ZykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFNjcmlwdCIgd2l0aCB0
aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHNjcmlwdCBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAg
ICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUs
IGlmIHRoZSBsb2NhbGUncyBzY3JpcHQgY29kZQorICAgICAqIGlzICJMQVROIiBhbmQgdGhlIGRl
ZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxk
IHNldAorICAgICAqIGRpc3BTY3JpcHQgdG8gIkxhdGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcFNj
cmlwdCAgICBSZWNlaXZlcyB0aGUgc2NyaXB0cydzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0
dXJuICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFNjcmlwdCIuCisgICAgICogQHN0
YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlTY3Jp
cHQoICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BTY3JpcHQpIGNvbnN0OworCisgICAgLyoq
CisgICAgICogRmlsbHMgaW4gImRpc3BTY3JpcHQiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2Nh
bGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxh
eSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3IgZXhhbXBs
ZSwgaWYgdGhlIGxvY2FsZSdzCisgICAgICogc2NyaXB0IGNvZGUgaXMgIkxBVE4iIGFuZCBkaXNw
bGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNl
dAorICAgICAqIGRpc3BTY3JpcHQgdG8gIkxhdGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxv
Y2FsZSAgICAgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUg
bmFtZS4gIEluIG90aGVyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd29yZHMsIGlmIHRo
ZSBsb2NhbGUncyBzY3JpcHQgY29kZSBpcyAiTEFUTiIsIHBhc3NpbmcKKyAgICAgKiAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbGU6OmdldEZyZW5jaCgpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxk
IHJlc3VsdCBpbiAiIiwgd2hpbGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBwYXNzaW5n
IExvY2FsZTo6Z2V0R2VybWFuKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluCisg
ICAgICogICAgICAgICAgICAgICAgICAgICAgIiIuCisgICAgICogQHBhcmFtIGRpc3BTY3JpcHQg
ICAgUmVjZWl2ZXMgdGhlIHNjcmlwdHMncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAg
ICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BTY3JpcHQiLgorICAgICAqIEBzdGFibGUg
SUNVIDIuOAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5U2NyaXB0KCAg
Y29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BTY3JpcHQp
IGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BDb3VudHJ5IiB3aXRoIHRo
ZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAg
ICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUs
IGlmIHRoZSBsb2NhbGUncyBjb3VudHJ5IGNvZGUKKyAgICAgKiBpcyAiRlIiIGFuZCB0aGUgZGVm
YXVsdCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQg
c2V0CisgICAgICogZGlzcENvdW50cnkgdG8gIkZyYW5jZSIuCisgICAgICogQHBhcmFtIGRpc3BD
b3VudHJ5ICAgUmVjZWl2ZXMgdGhlIGNvdW50cnkncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJl
dHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNv
dW50cnkoICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BDb3VudHJ5KSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwQ291bnRyeSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlz
IGxvY2FsZSdzIGNvdW50cnkgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBk
aXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBl
eGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBjb3VudHJ5IGNvZGUgaXMgIlVTIiBhbmQg
ZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImZyIiwgdGhpcyBmdW5jdGlvbiB3b3Vs
ZCBzZXQKKyAgICAgKiBkaXNwQ291bnRyeSB0byAiJkVhY3V0ZTt0YXRzLVVuaXMiLgorICAgICAq
IEBwYXJhbSBkaXNwbGF5TG9jYWxlICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNl
ZCB0byBkaXNwbGF5IHRoZSBuYW1lLiAgSW4gb3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAg
ICAgICB3b3JkcywgaWYgdGhlIGxvY2FsZSdzIGNvdW50cnkgY29kZSBpcyAiVVMiLCBwYXNzaW5n
CisgICAgICogICAgICAgICAgICAgICAgICAgICAgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IgZGlz
cGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIiZFYWN1dGU7dGF0cy1VbmlzIiwgd2hpbGUKKyAg
ICAgKiAgICAgICAgICAgICAgICAgICAgICBwYXNzaW5nIExvY2FsZTo6Z2V0R2VybWFuKCkgZm9y
IGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluCisgICAgICogICAgICAgICAgICAgICAgICAg
ICAgIlZlcmVpbmlndGUgU3RhYXRlbiIuCisgICAgICogQHBhcmFtIGRpc3BDb3VudHJ5ICAgUmVj
ZWl2ZXMgdGhlIGNvdW50cnkncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAg
ICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNvdW50cnkoICBjb25z
dCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BDb3VudHJ5KSBj
b25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwVmFyIiB3aXRoIHRoZSBuYW1l
IG9mIHRoaXMgbG9jYWxlJ3MgdmFyaWFudCBjb2RlIGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAg
ICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFt
IGRpc3BWYXIgICBSZWNlaXZlcyB0aGUgdmFyaWFudCdzIG5hbWUuCisgICAgICogQHJldHVybiAg
ICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFZhciIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlWYXJpYW50KCAgICAgIFVu
aWNvZGVTdHJpbmcmIGRpc3BWYXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4g
ImRpc3BWYXIiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyB2YXJpYW50IGNvZGUgaW4g
YSBmb3JtYXQKKyAgICAgKiBzdWl0YWJsZSBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUg
c3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2Fs
ZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLgor
ICAgICAqIEBwYXJhbSBkaXNwVmFyICAgUmVjZWl2ZXMgdGhlIHZhcmlhbnQncyBkaXNwbGF5IG5h
bWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFZhciIuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERp
c3BsYXlWYXJpYW50KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJp
bmcmICBkaXNwVmFyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3
aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2Vy
IGRpc3BsYXkKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBUaGlzIGZ1bmN0aW9uIHVz
ZXMgZ2V0RGlzcGxheUxhbmd1YWdlKCksIGdldERpc3BsYXlDb3VudHJ5KCksCisgICAgICogYW5k
IGdldERpc3BsYXlWYXJpYW50KCkgdG8gZG8gaXRzIHdvcmssIGFuZCBvdXRwdXRzIHRoZSBkaXNw
bGF5IG5hbWUgaW4gdGhlIGZvcm1hdAorICAgICAqICJsYW5ndWFnZSAoY291bnRyeVssdmFyaWFu
dF0pIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgZGVmYXVsdCBsb2NhbGUgaXMgZW5fVVMsIHRoZW4K
KyAgICAgKiBmcl9GUidzIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAiRnJlbmNoIChGcmFuY2UpIiwg
YW5kIGVzX01YX1RyYWRpdGlvbmFsJ3MgZGlzcGxheSBuYW1lCisgICAgICogd291bGQgYmUgIlNw
YW5pc2ggKE1leGljbyxUcmFkaXRpb25hbCkiLgorICAgICAqIEBwYXJhbSBuYW1lICBSZWNlaXZl
cyB0aGUgbG9jYWxlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICBBIHJlZmVy
ZW5jZSB0byAibmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5p
Y29kZVN0cmluZyYgIGdldERpc3BsYXlOYW1lKCAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBuYW1l
KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRoZSBuYW1l
IG9mIHRoaXMgbG9jYWxlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkKKyAg
ICAgKiBpbiB0aGUgbG9jYWxlIHNwZWNmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIFRoaXMgZnVu
Y3Rpb24gdXNlcyBnZXREaXNwbGF5TGFuZ3VhZ2UoKSwKKyAgICAgKiBnZXREaXNwbGF5Q291bnRy
eSgpLCBhbmQgZ2V0RGlzcGxheVZhcmlhbnQoKSB0byBkbyBpdHMgd29yaywgYW5kIG91dHB1dHMg
dGhlIGRpc3BsYXkKKyAgICAgKiBuYW1lIGluIHRoZSBmb3JtYXQgImxhbmd1YWdlIChjb3VudHJ5
Wyx2YXJpYW50XSkiLiAgRm9yIGV4YW1wbGUsIGlmIGRpc3BsYXlMb2NhbGUgaXMKKyAgICAgKiBm
cl9GUiwgdGhlbiBlbl9VUydzIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAiQW5nbGFpcyAoJkVhY3V0
ZTt0YXRzLVVuaXMpIiwgYW5kIG5vX05PX05ZJ3MKKyAgICAgKiBkaXNwbGF5IG5hbWUgd291bGQg
YmUgIm5vcnYmZWFjdXRlO2dpZW4gKE5vcnYmZWdyYXZlO2dlLE5ZKSIuCisgICAgICogQHBhcmFt
IGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxh
eSB0aGUgbmFtZS4KKyAgICAgKiBAcGFyYW0gbmFtZSAgICAgIFJlY2VpdmVzIHRoZSBsb2NhbGUn
cyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAi
bmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmlu
ZyYgIGdldERpc3BsYXlOYW1lKCBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3Ry
aW5nJiAgbmFtZSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNv
ZGUgZm9yIHRoZSBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
aW50MzJfdCAgICAgICAgIGhhc2hDb2RlKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICog
U2V0cyB0aGUgbG9jYWxlIHRvIGJvZ3VzCisgICAgICogQSBib2d1cyBsb2NhbGUgcmVwcmVzZW50
cyBhIG5vbi1leGlzdGluZyBsb2NhbGUgYXNzb2NpYXRlZAorICAgICAqIHdpdGggc2VydmljZXMg
dGhhdCBjYW4gYmUgaW5zdGFudGlhdGVkIGZyb20gbm9uLWxvY2FsZSBkYXRhCisgICAgICogaW4g
YWRkaXRpb24gdG8gbG9jYWxlIChmb3IgZXhhbXBsZSwgY29sbGF0aW9uIGNhbiBiZQorICAgICAq
IGluc3RhbnRpYXRlZCBmcm9tIGEgbG9jYWxlIGFuZCBmcm9tIGEgcnVsZSBzZXQpLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHZvaWQgc2V0VG9Cb2d1cygpOworCisgICAg
LyoqCisgICAgICogR2V0cyB0aGUgYm9ndXMgc3RhdGUuIExvY2FsZSBvYmplY3QgY2FuIGJlIGJv
Z3VzIGlmIGl0IGRvZXNuJ3QgZXhpc3QKKyAgICAgKiBAcmV0dXJuIEZBTFNFIGlmIGl0IGlzIGEg
cmVhbCBsb2NhbGUsIFRSVUUgaWYgaXQgaXMgYSBib2d1cyBsb2NhbGUKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjEKKyAgICAgKi8KKyAgICBVQm9vbCBpc0JvZ3VzKHZvaWQpIGNvbnN0OworCisgICAg
LyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIGluc3RhbGxlZCBsb2NhbGVzLgorICAg
ICAqIEBwYXJhbSBjb3VudCBSZWNlaXZlcyB0aGUgbnVtYmVyIG9mIGxvY2FsZXMgaW4gdGhlIGxp
c3QuCisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBMb2NhbGUg
b2JqZWN0cy4gIFRoaXMgYXJyYXkgaXMgdGhlIGxpc3QKKyAgICAgKiAgICAgICAgICAgICAgb2Yg
YWxsIGxvY2FsZXMgd2l0aCBpbnN0YWxsZWQgcmVzb3VyY2UgZmlsZXMuICBUaGUgY2FsbGVkIGRv
ZXMgTk9UCisgICAgICogICAgICAgICAgICAgIGdldCBvd25lcnNoaXAgb2YgdGhpcyBsaXN0LCBh
bmQgbXVzdCBOT1QgZGVsZXRlIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHN0YXRpYyBjb25zdCBMb2NhbGUqIFVfRVhQT1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKGlu
dDMyX3QmIGNvdW50KTsKKworICAgIC8qKgorICAgICAqIEdldHMgYSBsaXN0IG9mIGFsbCBhdmFp
bGFibGUgMi1sZXR0ZXIgY291bnRyeSBjb2RlcyBkZWZpbmVkIGluIElTTyAzMTY2LiAgVGhpcyBp
cyBhCisgICAgICogcG9pbnRlciB0byBhbiBhcnJheSBvZiBwb2ludGVycyB0byBhcnJheXMgb2Yg
Y2hhci4gIEFsbCBvZiB0aGVzZSBwb2ludGVycyBhcmUKKyAgICAgKiBvd25lZCBieSBJQ1UtLSBk
byBub3QgZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0aGVtLiAgVGhlIGFy
cmF5IGlzCisgICAgICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBwb2ludGVyLgorICAgICAqIEBy
ZXR1cm4gYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgY291bnRyeSBjb2RlcworICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBP
UlQyIGdldElTT0NvdW50cmllcygpOworCisgICAgLyoqCisgICAgICogR2V0cyBhIGxpc3Qgb2Yg
YWxsIGF2YWlsYWJsZSBsYW5ndWFnZSBjb2RlcyBkZWZpbmVkIGluIElTTyA2MzkuICBUaGlzIGlz
IGEgcG9pbnRlcgorICAgICAqIHRvIGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBvZiBj
aGFyLiAgQWxsIG9mIHRoZXNlIHBvaW50ZXJzIGFyZSBvd25lZAorICAgICAqIGJ5IElDVS0tIGRv
IG5vdCBkZWxldGUgdGhlbSwgYW5kIGRvIG5vdCB3cml0ZSB0aHJvdWdoIHRoZW0uICBUaGUgYXJy
YXkgaXMKKyAgICAgKiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCisgICAgICogQHJl
dHVybiBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBsYW5ndWFnZSBjb2RlcworICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBP
UlQyIGdldElTT0xhbmd1YWdlcygpOworCisgICAgLyoqCisgICAgICogSUNVICJwb29yIG1hbidz
IFJUVEkiLCByZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoaXMgY2xhc3MuCisgICAgICoKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQy
IGdldFN0YXRpY0NsYXNzSUQoKTsKKworICAgIC8qKgorICAgICAqIElDVSAicG9vciBtYW4ncyBS
VFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGUgYWN0dWFsIGNsYXNzLgorICAgICAqCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXRE
eW5hbWljQ2xhc3NJRCgpIGNvbnN0OworCitwcm90ZWN0ZWQ6IC8qIG9ubHkgcHJvdGVjdGVkIGZv
ciB0ZXN0aW5nIHB1cnBvc2VzLiBETyBOT1QgVVNFLiAqLworI2lmbmRlZiBVX0hJREVfSU5URVJO
QUxfQVBJCisgICAgLyoqCisgICAgICogU2V0IHRoaXMgZnJvbSBhIHNpbmdsZSBQT1NJWCBzdHls
ZSBsb2NhbGUgc3RyaW5nLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHZvaWQgc2V0
RnJvbVBPU0lYSUQoY29uc3QgY2hhciAqcG9zaXhJRCk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRF
Uk5BTF9BUEkgKi8KKworcHJpdmF0ZToKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHRoZSBs
b2NhbGUgb2JqZWN0IHdpdGggYSBuZXcgbmFtZS4KKyAgICAgKiBXYXMgZGVwcmVjYXRlZCAtIHVz
ZWQgaW4gaW1wbGVtZW50YXRpb24gLSBtb3ZlZCBpbnRlcm5hbAorICAgICAqCisgICAgICogQHBh
cmFtIGNMb2NhbGVJRCBUaGUgbmV3IGxvY2FsZSBuYW1lLgorICAgICAqIEBwYXJhbSBjYW5vbmlj
YWxpemUgd2hldGhlciB0byBjYWxsIHVsb2NfY2Fub25pY2FsaXplIG9uIGNMb2NhbGVJRAorICAg
ICAqLworICAgIExvY2FsZSYgaW5pdChjb25zdCBjaGFyKiBjTG9jYWxlSUQsIFVCb29sIGNhbm9u
aWNhbGl6ZSk7CisKKyAgICAvKgorICAgICAqIEludGVybmFsIGNvbnN0cnVjdG9yIHRvIGFsbG93
IGNvbnN0cnVjdGlvbiBvZiBhIGxvY2FsZSBvYmplY3Qgd2l0aAorICAgICAqICAgTk8gc2lkZSBl
ZmZlY3RzLiAgIChEZWZhdWx0IGNvbnN0cnVjdG9yIHRyaWVzIHRvIGdldAorICAgICAqICAgdGhl
IGRlZmF1bHQgbG9jYWxlLikKKyAgICAgKi8KKyAgICBlbnVtIEVMb2NhbGVUeXBlIHsKKyAgICAg
ICAgZUJPR1VTCisgICAgfTsKKyAgICBMb2NhbGUoRUxvY2FsZVR5cGUpOworCisgICAgLyoqCisg
ICAgICogSW5pdGlhbGl6ZSB0aGUgbG9jYWxlIGNhY2hlIGZvciBjb21tb25seSB1c2VkIGxvY2Fs
ZXMKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9jYWxlICpnZXRMb2NhbGVDYWNoZSh2b2lkKTsKKwor
ICAgIGNoYXIgbGFuZ3VhZ2VbVUxPQ19MQU5HX0NBUEFDSVRZXTsKKyAgICBjaGFyIHNjcmlwdFtV
TE9DX1NDUklQVF9DQVBBQ0lUWV07CisgICAgY2hhciBjb3VudHJ5W1VMT0NfQ09VTlRSWV9DQVBB
Q0lUWV07CisgICAgaW50MzJfdCB2YXJpYW50QmVnaW47CisgICAgY2hhciogZnVsbE5hbWU7Cisg
ICAgY2hhciBmdWxsTmFtZUJ1ZmZlcltVTE9DX0ZVTExOQU1FX0NBUEFDSVRZXTsKKyAgICAvLyBu
YW1lIHdpdGhvdXQga2V5d29yZHMKKyAgICBjaGFyKiBiYXNlTmFtZTsKKyAgICB2b2lkIGluaXRC
YXNlTmFtZShVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgVUJvb2wgZklzQm9ndXM7CisKKyAg
ICBzdGF0aWMgY29uc3QgTG9jYWxlICZnZXRMb2NhbGUoaW50IGxvY2lkKTsKKworICAgIC8qKgor
ICAgICAqIEEgZnJpZW5kIHRvIGFsbG93IHRoZSBkZWZhdWx0IGxvY2FsZSB0byBiZSBzZXQgYnkg
ZWl0aGVyIHRoZSBDIG9yIEMrKyBBUEkuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAg
ZnJpZW5kIExvY2FsZSAqbG9jYWxlX3NldF9kZWZhdWx0X2ludGVybmFsKGNvbnN0IGNoYXIgKiwg
VUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAq
LworICAgIGZyaWVuZCB2b2lkIFVfQ0FMTENPTlYgbG9jYWxlX2F2YWlsYWJsZV9pbml0KCk7Cit9
OworCitpbmxpbmUgVUJvb2wKK0xvY2FsZTo6b3BlcmF0b3IhPShjb25zdCAgICBMb2NhbGUmICAg
ICBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0ob3RoZXIpOworfQorCitp
bmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldENvdW50cnkoKSBjb25zdAoreworICAgIHJl
dHVybiBjb3VudHJ5OworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldExhbmd1
YWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbGFuZ3VhZ2U7Cit9CisKK2lubGluZSBjb25zdCBj
aGFyICoKK0xvY2FsZTo6Z2V0U2NyaXB0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2NyaXB0Owor
fQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldFZhcmlhbnQoKSBjb25zdAorewor
ICAgIHJldHVybiAmYmFzZU5hbWVbdmFyaWFudEJlZ2luXTsKK30KKworaW5saW5lIGNvbnN0IGNo
YXIgKgorTG9jYWxlOjpnZXROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnVsbE5hbWU7Cit9
CisKK2lubGluZSBVQm9vbAorTG9jYWxlOjppc0JvZ3VzKHZvaWQpIGNvbnN0IHsKKyAgICByZXR1
cm4gZklzQm9ndXM7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9y
YmJpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDQ3NTk4YTUwZTZmYTNiYWIyYWQ0OWUwMjJhYWYzOTZjYWMzMjll
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oCkBAIC0w
LDAgKzEsNzgyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAx
OTk5LTIwMTQgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiAgICoK
KyogICBhbmQgb3RoZXJzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDEwLzIyLzk5ICAg
IGFsYW4gICAgICAgIENyZWF0aW9uLgorKiAgIDExLzExLzk5ICAgIHJnaWxsYW0gICAgIENvbXBs
ZXRlIHBvcnQgZnJvbSBKYXZhLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBSQkJJX0gK
KyNkZWZpbmUgUkJCSV9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisvKioKKyAq
IFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTogUnVsZSBCYXNlZCBCcmVhayBJdGVyYXRvcgorICov
CisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworI2luY2x1ZGUgInVuaWNvZGUv
YnJraXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3BhcnNlZXJyLmgiCisjaW5jbHVkZSAidW5pY29kZS9zY2hyaXRlci5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdWNocml0ZXIuaCIKKworCitzdHJ1Y3QgVVRyaWU7CisKK1VfTkFNRVNQQUNFX0JFR0lO
CisKKy8qKiBAaW50ZXJuYWwgKi8KK3N0cnVjdCBSQkJJRGF0YUhlYWRlcjsKK2NsYXNzICBSdWxl
QmFzZWRCcmVha0l0ZXJhdG9yVGFibGVzOworY2xhc3MgIEJyZWFrSXRlcmF0b3I7CitjbGFzcyAg
UkJCSURhdGFXcmFwcGVyOworY2xhc3MgIFVTdGFjazsKK2NsYXNzICBMYW5ndWFnZUJyZWFrRW5n
aW5lOworY2xhc3MgIFVuaGFuZGxlZEVuZ2luZTsKK3N0cnVjdCBSQkJJU3RhdGVUYWJsZTsKKwor
CisKKworLyoqCisgKgorICogQSBzdWJjbGFzcyBvZiBCcmVha0l0ZXJhdG9yIHdob3NlIGJlaGF2
aW9yIGlzIHNwZWNpZmllZCB1c2luZyBhIGxpc3Qgb2YgcnVsZXMuCisgKiA8cD5JbnN0YW5jZXMg
b2YgdGhpcyBjbGFzcyBhcmUgbW9zdCBjb21tb25seSBjcmVhdGVkIGJ5IHRoZSBmYWN0b3J5IG1l
dGhvZHMgb2YKKyAqICBCcmVha0l0ZXJhdG9yOjpjcmVhdGVXb3JkSW5zdGFuY2UoKSwgQnJlYWtJ
dGVyYXRvcjo6Y3JlYXRlTGluZUluc3RhbmNlKCksIGV0Yy4sCisgKiAgYW5kIHRoZW4gdXNlZCB2
aWEgdGhlIGFic3RyYWN0IEFQSSBpbiBjbGFzcyBCcmVha0l0ZXJhdG9yPC9wPgorICoKKyAqIDxw
PlNlZSB0aGUgSUNVIFVzZXIgR3VpZGUgZm9yIGluZm9ybWF0aW9uIG9uIEJyZWFrIEl0ZXJhdG9y
IFJ1bGVzLjwvcD4KKyAqCisgKiA8cD5UaGlzIGNsYXNzIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBz
dWJjbGFzc2VkLiAgKENsYXNzIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IKKyAqICAgIGlz
IGEgc3ViY2xhc3MsIGJ1dCB0aGF0IHJlbGF0aW9uc2hpcCBpcyBlZmZlY3RpdmVseSBpbnRlcm5h
bCB0byB0aGUgSUNVCisgKiAgICBpbXBsZW1lbnRhdGlvbi4gIFRoZSBzdWJjbGFzc2luZyBpbnRl
cmZhY2UgdG8gUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3IgaXMKKyAqICAgIG5vdCBwYXJ0IG9mIHRo
ZSBJQ1UgQVBJLCBhbmQgbWF5IG5vdCByZW1haW4gc3RhYmxlLjwvcD4KKyAqCisgKi8KK2NsYXNz
IFVfQ09NTU9OX0FQSSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIC8qVV9GSU5BTCovIDogcHVibGlj
IEJyZWFrSXRlcmF0b3IgeworCitwcm90ZWN0ZWQ6CisgICAgLyoqCisgICAgICogVGhlIFVUZXh0
IHRocm91Z2ggd2hpY2ggdGhpcyBCcmVha0l0ZXJhdG9yIGFjY2Vzc2VzIHRoZSB0ZXh0CisgICAg
ICogQGludGVybmFsCisgICAgICovCisgICAgVVRleHQgICpmVGV4dDsKKworICAgIC8qKgorICAg
ICAqICAgQSBjaGFyYWN0ZXIgaXRlcmF0b3IgdGhhdCByZWZlcnMgdG8gdGhlIHNhbWUgdGV4dCBh
cyB0aGUgVVRleHQsIGFib3ZlLgorICAgICAqICAgT25seSBpbmNsdWRlZCBmb3IgY29tcGF0aWJp
bGl0eSB3aXRoIG9sZCBBUEksIHdoaWNoIHdhcyBiYXNlZCBvbiBDaGFyYWN0ZXJJdGVyYXRvcnMu
CisgICAgICogICBWYWx1ZSBtYXkgYmUgYWRvcHRlZCBmcm9tIG91dHNpZGUsIG9yIG9uZSBvZiBm
U0NoYXJJdGVyIG9yIGZEQ2hhckl0ZXIsIGJlbG93LgorICAgICAqLworICAgIENoYXJhY3Rlckl0
ZXJhdG9yICAqZkNoYXJJdGVyOworCisgICAgLyoqCisgICAgICogICBXaGVuIHRoZSBpbnB1dCB0
ZXh0IGlzIHByb3ZpZGVkIGJ5IGEgVW5pY29kZVN0cmluZywgdGhpcyB3aWxsIHBvaW50IHRvCisg
ICAgICogICAgYSBjaGFyYWN0ZXJJdGVyYXRvciB0aGF0IHdyYXBzIHRoYXQgZGF0YS4gIE5lZWRl
ZCBvbmx5IGZvciB0aGUKKyAgICAgKiAgICBpbXBsZW1lbnRhdGlvbiBvZiBnZXRUZXh0KCksIGEg
YmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaXNzdWUuCisgICAgICovCisgICAgU3RyaW5nQ2hhcmFj
dGVySXRlcmF0b3IgKmZTQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiAgV2hlbiB0aGUgaW5w
dXQgdGV4dCBpcyBwcm92aWRlZCBieSBhIFVUZXh0LCB0aGlzCisgICAgICogICAgZHVtbXkgQ2hh
cmFjdGVySXRlcmF0b3Igb3ZlciBhbiBlbXB0eSBzdHJpbmcgd2lsbAorICAgICAqICAgIGJlIHJl
dHVybmVkIGZyb20gZ2V0VGV4dCgpCisgICAgICovCisgICAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRv
ciAqZkRDaGFySXRlcjsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlIGRhdGEgZm9yIHRoaXMg
QnJlYWtJdGVyYXRvciBpbnN0YW5jZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJC
QklEYXRhV3JhcHBlciAgICAqZkRhdGE7CisKKyAgICAvKiogSW5kZXggb2YgdGhlIFJ1bGUge3Rh
Z30gdmFsdWVzIGZvciB0aGUgbW9zdCByZWNlbnQgbWF0Y2guCisgICAgICogIEBpbnRlcm5hbAor
ICAgICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleDsKKwor
ICAgIC8qKgorICAgICAqIFJ1bGUgdGFnIHZhbHVlIHZhbGlkIGZsYWcuCisgICAgICogU29tZSBp
dGVyYXRvciBvcGVyYXRpb25zIGRvbid0IGludHJpbnNpY2FsbHkgc2V0IHRoZSBjb3JyZWN0IHRh
ZyB2YWx1ZS4KKyAgICAgKiBUaGlzIGZsYWcgbGV0cyB1cyBsYXppbHkgY29tcHV0ZSB0aGUgdmFs
dWUgaWYgd2UgYXJlIGV2ZXIgYXNrZWQgZm9yIGl0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAq
LworICAgIFVCb29sICAgICAgICAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkOworCisgICAg
LyoqCisgICAgICogQ291bnRlciBmb3IgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGVuY291bnRl
cmVkIHdpdGggdGhlICJkaWN0aW9uYXJ5IgorICAgICAqICAgZmxhZyBzZXQuCisgICAgICogQGlu
dGVybmFsCisgICAgICovCisgICAgdWludDMyX3QgICAgICAgICAgICBmRGljdGlvbmFyeUNoYXJD
b3VudDsKKworICAgIC8qKgorICAgICAqIFdoZW4gYSByYW5nZSBvZiBjaGFyYWN0ZXJzIGlzIGRp
dmlkZWQgdXAgdXNpbmcgdGhlIGRpY3Rpb25hcnksIHRoZSBicmVhaworICAgICAqIHBvc2l0aW9u
cyB0aGF0IGFyZSBkaXNjb3ZlcmVkIGFyZSBzdG9yZWQgaGVyZSwgcHJldmVudGluZyB1cyBmcm9t
IGhhdmluZworICAgICAqIHRvIHVzZSBlaXRoZXIgdGhlIGRpY3Rpb25hcnkgb3IgdGhlIHN0YXRl
IHRhYmxlIGFnYWluIHVudGlsIHRoZSBpdGVyYXRvcgorICAgICAqIGxlYXZlcyB0aGlzIHJhbmdl
IG9mIHRleHQuIEhhcyB0aGUgbW9zdCBpbXBhY3QgZm9yIGxpbmUgYnJlYWtpbmcuCisgICAgICog
QGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCogICAgICAgICAgICBmQ2FjaGVkQnJlYWtQ
b3NpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGZD
YWNoZWRCcmVha1Bvc2l0aW9ucworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMy
X3QgICAgICAgICAgICAgZk51bUNhY2hlZEJyZWFrUG9zaXRpb25zOworCisgICAgLyoqCisgICAg
ICogaWYgZkNhY2hlZEJyZWFrUG9zaXRpb25zIGlzIG5vdCBudWxsLCB0aGlzIGluZGljYXRlcyB3
aGljaCBpdGVtIGluIHRoZQorICAgICAqIGNhY2hlIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3Np
dGlvbiByZWZlcnMgdG8KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90ICAg
ICAgICAgICAgIGZQb3NpdGlvbkluQ2FjaGU7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAg
KiBJZiBwcmVzZW50LCBVU3RhY2sgb2YgTGFuZ3VhZ2VCcmVha0VuZ2luZSBvYmplY3RzIHRoYXQg
bWlnaHQgaGFuZGxlCisgICAgICogZGljdGlvbmFyeSBjaGFyYWN0ZXJzLiBTZWFyY2hlZCBmcm9t
IHRvcCB0byBib3R0b20gdG8gZmluZCBhbiBvYmplY3QgdG8KKyAgICAgKiBoYW5kbGUgYSBnaXZl
biBjaGFyYWN0ZXIuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVVN0YWNrICAgICAg
ICAgICAgICAqZkxhbmd1YWdlQnJlYWtFbmdpbmVzOworICAgIAorICAgIC8qKgorICAgICAqCisg
ICAgICogSWYgcHJlc2VudCwgdGhlIHNwZWNpYWwgTGFuZ3VhZ2VCcmVha0VuZ2luZSB1c2VkIGZv
ciBoYW5kbGluZworICAgICAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW4gdGhlIGRpY3Rpb25hcnkg
c2V0LCBidXQgbm90IGhhbmRsZWQgYnkgYW55CisgICAgICogTGFuZ3VnYWdlQnJlYWtFbmdpbmUu
CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVW5oYW5kbGVkRW5naW5lICAgICAqZlVu
aGFuZGxlZEJyZWFrRW5naW5lOworICAgIAorICAgIC8qKgorICAgICAqCisgICAgICogVGhlIHR5
cGUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLCBvciAtMSBpZiBpdCBoYXMgbm90IGJlZW4gc2V0Lgor
ICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZkJyZWFr
VHlwZTsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gY29u
c3RydWN0b3JzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjaWZuZGVmIFVfSElERV9JTlRFUk5B
TF9BUEkKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCB0byBiZSB1c2VkIGluIHRoZSBjb25zdHJ1
Y3RvcgorICAgICAqIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoUkJCSURhdGFIZWFkZXIqLCBFRG9u
dEFkb3B0LCBVRXJyb3JDb2RlICYpOworICAgICAqIHdoaWNoIGRvZXMgbm90IGFkb3B0IHRoZSBt
ZW1vcnkgaW5kaWNhdGVkIGJ5IHRoZSBSQkJJRGF0YUhlYWRlcioKKyAgICAgKiBwYXJhbWV0ZXIu
CisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBlbnVtIEVEb250QWRvcHQg
eworICAgICAgICBrRG9udEFkb3B0CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVj
dG9yIGZyb20gYSBmbGF0dGVuZWQgc2V0IG9mIFJCQkkgZGF0YSBpbiBtYWxsb2NlZCBtZW1vcnku
CisgICAgICogICAgICAgICAgICAgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3JzIGJ1aWx0IGZyb20g
YSBjdXN0b20gc2V0IG9mIHJ1bGVzCisgICAgICogICAgICAgICAgICAgYXJlIGNyZWF0ZWQgdmlh
IHRoaXMgY29uc3RydWN0b3I7IHRoZSBydWxlcyBhcmUgY29tcGlsZWQKKyAgICAgKiAgICAgICAg
ICAgICBpbnRvIG1lbW9yeSwgdGhlbiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgY29uc3RydWN0ZWQg
aGVyZS4KKyAgICAgKgorICAgICAqICAgICAgICAgICAgIFRoZSBicmVhayBpdGVyYXRvciBhZG9w
dHMgdGhlIG1lbW9yeSwgYW5kIHdpbGwKKyAgICAgKiAgICAgICAgICAgICBmcmVlIGl0IHdoZW4g
ZG9uZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yKFJCQklEYXRhSGVhZGVyKiBkYXRhLCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoq
CisgICAgICogQ29uc3RydWN0b3IgZnJvbSBhIGZsYXR0ZW5lZCBzZXQgb2YgUkJCSSBkYXRhIGlu
IG1lbW9yeSB3aGljaCBuZWVkIG5vdAorICAgICAqICAgICAgICAgICAgIGJlIG1hbGxvY2VkIChl
LmcuIGl0IG1heSBiZSBhIG1lbW9yeS1tYXBwZWQgZmlsZSwgZXRjLikuCisgICAgICoKKyAgICAg
KiAgICAgICAgICAgICBUaGlzIHZlcnNpb24gZG9lcyBub3QgYWRvcHQgdGhlIG1lbW9yeSwgYW5k
IGRvZXMgbm90CisgICAgICogICAgICAgICAgICAgZnJlZSBpdCB3aGVuIGRvbmUuCisgICAgICog
QGludGVybmFsCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCBSQkJJ
RGF0YUhlYWRlciogZGF0YSwgZW51bSBFRG9udEFkb3B0IGRvbnRBZG9wdCwgVUVycm9yQ29kZSAm
c3RhdHVzKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisKKyAgICBmcmll
bmQgY2xhc3MgUkJCSVJ1bGVCdWlsZGVyOworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBmcmll
bmQgY2xhc3MgQnJlYWtJdGVyYXRvcjsKKworCisKK3B1YmxpYzoKKworICAgIC8qKiBEZWZhdWx0
IGNvbnN0cnVjdG9yLiAgQ3JlYXRlcyBhbiBlbXB0eSBzaGVsbCBvZiBhbiBpdGVyYXRvciwgd2l0
aCBubworICAgICAqICBydWxlcyBvciB0ZXh0IHRvIGl0ZXJhdGUgb3Zlci4gICBPYmplY3QgY2Fu
IHN1YnNlcXVlbnRseSBiZSBhc3NpZ25lZCB0by4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4yCisg
ICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICog
Q29weSBjb25zdHJ1Y3Rvci4gIFdpbGwgcHJvZHVjZSBhIGJyZWFrIGl0ZXJhdG9yIHdpdGggdGhl
IHNhbWUgYmVoYXZpb3IsCisgICAgICogYW5kIHdoaWNoIGl0ZXJhdGVzIG92ZXIgdGhlIHNhbWUg
dGV4dCwgYXMgdGhlIG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVC
YXNlZEJyZWFrSXRlcmF0b3IgcGFzc2VkIHRvIGJlIGNvcGllZAorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoY29uc3QgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvciYgdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBSdWxl
QmFzZWRCcmVha0l0ZXJhdG9yIGZyb20gYSBzZXQgb2YgcnVsZXMgc3VwcGxpZWQgYXMgYSBzdHJp
bmcuCisgICAgICogQHBhcmFtIHJ1bGVzIFRoZSBicmVhayBydWxlcyB0byBiZSB1c2VkLgorICAg
ICAqIEBwYXJhbSBwYXJzZUVycm9yICBJbiB0aGUgZXZlbnQgb2YgYSBzeW50YXggZXJyb3IgaW4g
dGhlIHJ1bGVzLCBwcm92aWRlcyB0aGUgbG9jYXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAg
ICAgd2l0aGluIHRoZSBydWxlcyBvZiB0aGUgcHJvYmxlbS4KKyAgICAgKiBAcGFyYW0gc3RhdHVz
IEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4yCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciggY29uc3QgVW5pY29k
ZVN0cmluZyAgICAmcnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQYXJzZUVy
cm9yICAgICAgICAgICAmcGFyc2VFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VUVycm9yQ29kZSAgICAgICAgICAgICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ29udHJ1
Y3QgYSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGZyb20gYSBzZXQgb2YgcHJlY29tcGlsZWQgYmlu
YXJ5IHJ1bGVzLgorICAgICAqIEJpbmFyeSBydWxlcyBhcmUgb2J0YWluZWQgZnJvbSBSdWxlc0Jh
c2VkQnJlYWtJdGVyYXRvcjo6Z2V0QmluYXJ5UnVsZXMoKS4KKyAgICAgKiBDb25zdHJ1Y3Rpb24g
b2YgYSBicmVhayBpdGVyYXRvciBpbiB0aGlzIHdheSBpcyBzdWJzdGFudGlhbGx5IGZhc3RlciB0
aGFuCisgICAgICogY29uc3R1Y3Rpb24gZnJvbSBzb3VyY2UgcnVsZXMuCisgICAgICoKKyAgICAg
KiBPd25lcnNoaXAgb2YgdGhlIHN0b3JhZ2UgY29udGFpbmluZyB0aGUgY29tcGlsZWQgcnVsZXMg
cmVtYWlucyB3aXRoIHRoZQorICAgICAqIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uLiAgVGhlIGNv
bXBpbGVkIHJ1bGVzIG11c3Qgbm90IGJlICBtb2RpZmllZCBvciAKKyAgICAgKiBkZWxldGVkIGR1
cmluZyB0aGUgbGlmZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBUaGUg
Y29tcGlsZWQgcnVsZXMgYXJlIG5vdCBjb21wYXRpYmxlIGFjcm9zcyBkaWZmZXJlbnQgbWFqb3Ig
dmVyc2lvbnMgb2YgSUNVLgorICAgICAqIFRoZSBjb21waWxlZCBydWxlcyBhcmUgY29tYXB0aWJs
ZSBvbmx5IGJldHdlZW4gbWFjaGluZXMgd2l0aCB0aGUgc2FtZQorICAgICAqIGJ5dGUgb3JkZXJp
bmcgKGxpdHRsZSBvciBiaWcgZW5kaWFuKSBhbmQgdGhlIHNhbWUgYmFzZSBjaGFyYWN0ZXIgc2V0
IGZhbWlseQorICAgICAqIChBU0NJSSBvciBFQkNESUMpLgorICAgICAqCisgICAgICogQHNlZSAj
Z2V0QmluYXJ5UnVsZXMKKyAgICAgKiBAcGFyYW0gY29tcGlsZWRSdWxlcyBBIHBvaW50ZXIgdG8g
dGhlIGNvbXBpbGVkIGJyZWFrIHJ1bGVzIHRvIGJlIHVzZWQuCisgICAgICogQHBhcmFtIHJ1bGVM
ZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgY29tcGlsZWQgYnJlYWsgcnVsZXMsIGluIGJ5dGVzLiAg
VGhpcworICAgICAqICAgY29ycmVzcG9uZHMgdG8gdGhlIGxlbmd0aCB2YWx1ZSBwcm9kdWNlZCBi
eSBnZXRCaW5hcnlSdWxlcygpLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24g
YW55IGVycm9ycyBlbmNvdW50ZXJlZCwgaW5jbHVkaW5nIGludmFsaWQKKyAgICAgKiAgIGJpbmFy
eSBydWxlcy4KKyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRC
cmVha0l0ZXJhdG9yKGNvbnN0IHVpbnQ4X3QgKmNvbXBpbGVkUnVsZXMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICBydWxlTGVuZ3RoLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVUVycm9yQ29kZSAgICAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRo
aXMgY29uc3RydWN0b3IgdXNlcyB0aGUgdWRhdGEgaW50ZXJmYWNlIHRvIGNyZWF0ZSBhIEJyZWFr
SXRlcmF0b3IKKyAgICAgKiB3aG9zZSBpbnRlcm5hbCB0YWJsZXMgbGl2ZSBpbiBhIG1lbW9yeS1t
YXBwZWQgZmlsZS4gICJpbWFnZSIgaXMgYW4KKyAgICAgKiBJQ1UgVURhdGFNZW1vcnkgaGFuZGxl
IGZvciB0aGUgcHJlLWNvbXBpbGVkIGJyZWFrIGl0ZXJhdG9yIHRhYmxlcy4KKyAgICAgKiBAcGFy
YW0gaW1hZ2UgaGFuZGxlIHRvIHRoZSBtZW1vcnkgaW1hZ2UgZm9yIHRoZSBicmVhayBpdGVyYXRv
ciBkYXRhLgorICAgICAqICAgICAgICBPd25lcnNoaXAgb2YgdGhlIFVEYXRhTWVtb3J5IGhhbmRs
ZSBwYXNzZXMgdG8gdGhlIEJyZWFrIEl0ZXJhdG9yLAorICAgICAqICAgICAgICB3aGljaCB3aWxs
IGJlIHJlc3BvbnNpYmxlIGZvciBjbG9zaW5nIGl0IHdoZW4gaXQgaXMgbm8gbG9uZ2VyIG5lZWRl
ZC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3Vu
dGVyZWQuCisgICAgICogQHNlZSB1ZGF0YV9vcGVuCisgICAgICogQHNlZSAjZ2V0QmluYXJ5UnVs
ZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yKFVEYXRhTWVtb3J5KiBpbWFnZSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8q
KgorICAgICAqIERlc3RydWN0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCB+UnVsZUJhc2VkQnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICog
QXNzaWdubWVudCBvcGVyYXRvci4gIFNldHMgdGhpcyBpdGVyYXRvciB0byBoYXZlIHRoZSBzYW1l
IGJlaGF2aW9yLAorICAgICAqIGFuZCBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhl
IG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVCYXNlZEJyZWFrSXRl
cnRvciBwYXNzZWQgaW4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgUnVs
ZUJhc2VkQnJlYWtJdGVyYXRvciYgb3BlcmF0b3I9KGNvbnN0IFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3ImIHRoYXQpOworCisgICAgLyoqCisgICAgICogRXF1YWxpdHkgb3BlcmF0b3IuICBSZXR1cm5z
IFRSVUUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhlCisgICAgICogc2FtZSBjbGFz
cywgaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0
LgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZv
ciBlcXVhbGl0eQorICAgICAqIEByZXR1cm4gVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFy
ZSBvZiB0aGUKKyAgICAgKiBzYW1lIGNsYXNzLCBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLCBhbmQg
aXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHRleHQuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBCcmVha0l0ZXJhdG9yJiB0
aGF0KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIE5vdC1lcXVhbCBvcGVyYXRvci4gIElmIG9w
ZXJhdG9yPT0gcmV0dXJucyBUUlVFLCB0aGlzIHJldHVybnMgRkFMU0UsCisgICAgICogYW5kIHZp
Y2UgdmVyc2EuCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29t
cGFyZWQgZm9yIGluZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgYm90aCBCcmVha0l0
ZXJhdG9ycyBhcmUgbm90IHNhbWUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgQnJlYWtJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvciB3aXRoIHRoZSBzYW1lCisgICAgICogYmVoYXZpb3IsIGFuZCBpdGVyYXRpbmcg
b3ZlciB0aGUgc2FtZSB0ZXh0LCBhcyB0aGlzIG9uZS4KKyAgICAgKiBEaWZmZXJzIGZyb20gdGhl
IGNvcHkgY29uc3RydWN0b3IgaW4gdGhhdCBpdCBpcyBwb2x5bW9ycGhpYywgYW5kCisgICAgICog
d2lsbCBjb3JyZWN0bHkgY2xvbmUgKGNvcHkpIGEgZGVyaXZlZCBjbGFzcy4KKyAgICAgKiBjbG9u
ZSgpIGlzIHRocmVhZCBzYWZlLiAgTXVsdGlwbGUgdGhyZWFkcyBtYXkgc2ltdWx0YWVuZW91c2x5
CisgICAgICogY2xvbmUgdGhlIHNhbWUgc291cmNlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqIEBy
ZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yKiBjbG9u
ZSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIGhhc2ggY29kZSBmb3IgdGhp
cyBCcmVha0l0ZXJhdG9yCisgICAgICogQHJldHVybiBBIGhhc2ggY29kZQorICAgICAqICBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgaGFzaENvZGUodm9pZCkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZXNjcmlwdGlvbiB1c2VkIHRv
IGNyZWF0ZSB0aGlzIGl0ZXJhdG9yCisgICAgICogQHJldHVybiB0aGUgZGVzY3JpcHRpb24gdXNl
ZCB0byBjcmVhdGUgdGhpcyBpdGVyYXRvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIGNvbnN0IFVuaWNvZGVTdHJpbmcmIGdldFJ1bGVzKHZvaWQpIGNvbnN0
OworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEJyZWFrSXRlcmF0b3Igb3ZlcnJpZGVz
CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogUmV0
dXJuIGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAg
ICAgKiBUaGUgcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIGlzIG93bmVkIGJ5IHRoZSBicmVh
ayBpdGVyYXRvciwgYW5kIG11c3QKKyAgICAgKiBub3QgYmUgZGVsZXRlZCBieSB0aGUgY2FsbGVy
LiAgUmVwZWF0ZWQgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBtYXkKKyAgICAgKiByZXR1cm4gdGhl
IHNhbWUgQ2hhcmFjdGVySXRlcmF0b3IuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAq
IFRoZSByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0b3IgbXVzdCBub3QgYmUgdXNlZCBjb25jdXJy
ZW50bHkgd2l0aAorICAgICAqIHRoZSBicmVhayBpdGVyYXRvci4gIElmIGNvbmN1cnJlbnQgb3Bl
cmF0aW9uIGlzIG5lZWRlZCwgY2xvbmUgdGhlCisgICAgICogcmV0dXJuZWQgY2hhcmFjdGVyIGl0
ZXJhdG9yIGZpcnN0IGFuZCBvcGVyYXRlIG9uIHRoZSBjbG9uZS4KKyAgICAgKiA8L3A+CisgICAg
ICogPHA+CisgICAgICogV2hlbiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nIG9uIHRl
eHQgc3VwcGxpZWQgdmlhIGEgVVRleHQsCisgICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIGZhaWwu
ICBMYWNraW5nIGFueSB3YXkgdG8gc2lnbmFsIGZhaWx1cmVzLCBpdAorICAgICAqIHJldHVybnMg
YW4gQ2hhcmFjdGVySXRlcmF0b3IgY29udGFpbmluZyBubyB0ZXh0LgorICAgICAqIFRoZSBmdW5j
dGlvbiBnZXRVVGV4dCgpIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSwKKyAgICAgKiBp
cyByZWxpYWJsZSwgYW5kIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIDwvcD4KKyAgICAgKgor
ICAgICAqIFRPRE86ICBkZXByZWNhdGUgdGhpcyBmdW5jdGlvbj8KKyAgICAgKgorICAgICAqIEBy
ZXR1cm4gQW4gaXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsICBDaGFyYWN0ZXJJdGVyYXRvciYg
Z2V0VGV4dCh2b2lkKSBjb25zdDsKKworCisgICAgLyoqCisgICAgICAqICBHZXQgYSBVVGV4dCBm
b3IgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICAqICBUaGUgcmV0dXJuZWQgVVRleHQg
aXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBVVGV4dCB1c2VkIGludGVybmFsbHkKKyAgICAgICog
IGJ5IHRoZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbi4gIEl0IGNhbiBzYWZlbHkgYmUg
dXNlZCB0bworICAgICAgKiAgYWNjZXNzIHRoZSB0ZXh0IHdpdGhvdXQgaW1wYWN0aW5nIGFueSBi
cmVhayBpdGVyYXRvciBvcGVyYXRpb25zLAorICAgICAgKiAgYnV0IHRoZSB1bmRlcmx5aW5nIHRl
eHQgaXRzZWxmIG11c3Qgbm90IGJlIGFsdGVyZWQuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBm
aWxsSW4gQSBVVGV4dCB0byBiZSBmaWxsZWQgaW4uICBJZiBOVUxMLCBhIG5ldyBVVGV4dCB3aWxs
IGJlCisgICAgICAqICAgICAgICAgICBhbGxvY2F0ZWQgdG8gaG9sZCB0aGUgcmVzdWx0LgorICAg
ICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgICogQHJl
dHVybiAgIFRoZSBjdXJyZW50IFVUZXh0IGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiAgSWYgYW4g
aW5wdXQKKyAgICAgICogICAgICAgICAgIFVUZXh0IHdhcyBwcm92aWRlZCwgaXQgd2lsbCBhbHdh
eXMgYmUgcmV0dXJuZWQuCisgICAgICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAgKi8KKyAgICAg
dmlydHVhbCBVVGV4dCAqZ2V0VVRleHQoVVRleHQgKmZpbGxJbiwgVUVycm9yQ29kZSAmc3RhdHVz
KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBh
IG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhpcyBmdW5jdGlvbiByZXNldHMKKyAgICAgKiB0aGUgY3Vy
cmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAg
ICAgKiBAcGFyYW0gbmV3VGV4dCBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IHRvIGFuYWx5emUu
ICBUaGUgQnJlYWtJdGVyYXRvcgorICAgICAqIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgY2hhcmFj
dGVyIGl0ZXJhdG9yLiAgVGhlIGNhbGxlciBNVVNUIE5PVCBkZWxldGUgaXQhCisgICAgICogIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBhZG9wdFRleHQoQ2hhcmFj
dGVySXRlcmF0b3IqIG5ld1RleHQpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRv
ciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cwor
ICAgICAqIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9m
IHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSB0ZXh0IHRvIGFuYWx5emUuCisg
ICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0
KGNvbnN0IFVuaWNvZGVTdHJpbmcmIG5ld1RleHQpOworCisgICAgLyoqCisgICAgICogUmVzZXQg
dGhlIGJyZWFrIGl0ZXJhdG9yIHRvIG9wZXJhdGUgb3ZlciB0aGUgdGV4dCByZXByZXNlbnRlZCBi
eQorICAgICAqIHRoZSBVVGV4dC4gIFRoZSBpdGVyYXRvciBwb3NpdGlvbiBpcyByZXNldCB0byB0
aGUgc3RhcnQuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBj
bG9uZSBvZiB0aGUgc3VwcGxpZWQgVVRleHQuICBUaGlzIG1lYW5zCisgICAgICogdGhhdCB0aGUg
Y2FsbGVyIGlzIGZyZWUgdG8gaW1tZWRpYXRlbHkgY2xvc2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRo
ZQorICAgICAqIFV0ZXh0IHRoYXQgd2FzIHBhc3NlZCBhcyBhIHBhcmFtZXRlciwgYnV0IHRoYXQg
dGhlIHVuZGVybHlpbmcgdGV4dCBpdHNlbGYKKyAgICAgKiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdo
aWxlIGJlaW5nIHJlZmVyZW5jZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAg
ICogQHBhcmFtIHRleHQgICAgVGhlIFVUZXh0IHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAg
ICAqIEBwYXJhbSBzdGF0dXMgIFJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgKiBAc3Rh
YmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoVVRleHQgKnRl
eHQsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJy
ZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCBwb3Np
dGlvbiB6ZXJvLgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9m
IHRoZSB0ZXh0LCB6ZXJvLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgZmlyc3Qodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBj
dXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAq
IEByZXR1cm4gVGhlIHRleHQncyBwYXN0LXRoZS1lbmQgb2Zmc2V0LgorICAgICAqICBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbGFzdCh2b2lkKTsKKworICAg
IC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBlaXRoZXIgZm9yd2FyZCBvciBiYWNr
d2FyZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBzdGVwcy4KKyAgICAgKiBOZWdhdGl2ZSB2YWx1
ZXMgbW92ZSBiYWNrd2FyZCwgYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3ZlIGZvcndhcmQuICBUaGlz
IGlzCisgICAgICogZXF1aXZhbGVudCB0byByZXBlYXRlZGx5IGNhbGxpbmcgbmV4dCgpIG9yIHBy
ZXZpb3VzKCkuCisgICAgICogQHBhcmFtIG4gVGhlIG51bWJlciBvZiBzdGVwcyB0byBtb3ZlLiAg
VGhlIHNpZ24gaW5kaWNhdGVzIHRoZSBkaXJlY3Rpb24KKyAgICAgKiAobmVnYXRpdmUgaXMgYmFj
a3dhcmRzLCBhbmQgcG9zaXRpdmUgaXMgZm9yd2FyZHMpLgorICAgICAqIEByZXR1cm4gVGhlIGNo
YXJhY3RlciBvZmZzZXQgb2YgdGhlIGJvdW5kYXJ5IHBvc2l0aW9uIG4gYm91bmRhcmllcyBhd2F5
IGZyb20KKyAgICAgKiB0aGUgY3VycmVudCBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KGludDMyX3Qgbik7CisKKyAgICAvKioK
KyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgdG8gdGhlIG5leHQgYm91bmRhcnkgcG9zaXRp
b24uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IGFm
dGVyIHRoaXMgb25lLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIGludDMyX3QgbmV4dCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBpdGVy
YXRvciBiYWNrd2FyZHMsIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHByZWNlZGluZyB0aGlzIG9uZS4K
KyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlv
biBwcmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgaW50MzJfdCBwcmV2aW91cyh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBm
b2xsb3dpbmcKKyAgICAgKiB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBv
ZmZzZXQgVGhlIHBvc2l0aW9uIGZyb20gd2hpY2ggdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBhIGJy
ZWFrIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBi
cmVhayBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGZvbGxvd2luZyhpbnQzMl90IG9mZnNldCk7
CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFz
dCBib3VuZGFyeSBwb3NpdGlvbiBiZWZvcmUgdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9u
LgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIHRvIGJlZ2luIHNlYXJjaGluZyBm
b3IgYSBicmVhayBmcm9tLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0
IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3RhcnRpbmcgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmcoaW50MzJfdCBv
ZmZzZXQpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjZmllZCBw
b3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLiAgQXMgYSBzaWRlCisgICAgICogZWZmZWN0
LCBsZWF2ZXMgdGhlIGl0ZXJhdG9yIHBvaW50aW5nIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3Np
dGlvbiBhdAorICAgICAqIG9yIGFmdGVyICJvZmZzZXQiLgorICAgICAqIEBwYXJhbSBvZmZzZXQg
dGhlIG9mZnNldCB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMg
YSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBVQm9vbCBpc0JvdW5kYXJ5KGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBy
ZXR1cm4gVGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBjdXJyZW50KHZvaWQpIGNvbnN0Owor
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHN0YXR1cyB0YWcgZnJvbSB0aGUgYnJlYWsg
cnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBi
cmVhayBwb3NpdGlvbi4gIEZvciBicmVhayBydWxlcyB0aGF0IGRvIG5vdCBzcGVjaWZ5IGEKKyAg
ICAgKiBzdGF0dXMsIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVkLiAgSWYgbW9yZSB0
aGFuIG9uZSBicmVhayBydWxlCisgICAgICogd291bGQgY2F1c2UgYSBib3VuZGFyeSB0byBiZSBs
b2NhdGVkIGF0IHNvbWUgcG9zaXRpb24gaW4gdGhlIHRleHQsCisgICAgICogdGhlIG51bWVyaWNh
bGx5IGxhcmdlc3Qgb2YgdGhlIGFwcGxpY2FibGUgc3RhdHVzIHZhbHVlcyBpcyByZXR1cm5lZC4K
KyAgICAgKiA8cD4KKyAgICAgKiBPZiB0aGUgc3RhbmRhcmQgdHlwZXMgb2YgSUNVIGJyZWFrIGl0
ZXJhdG9ycywgb25seSB3b3JkIGJyZWFrIGFuZAorICAgICAqIGxpbmUgYnJlYWsgcHJvdmlkZSBz
dGF0dXMgdmFsdWVzLiAgVGhlIHZhbHVlcyBhcmUgZGVmaW5lZCBpbgorICAgICAqIHRoZSBoZWFk
ZXIgZmlsZSB1YnJrLmguICBGb3IgV29yZCBicmVha3MsIHRoZSBzdGF0dXMgYWxsb3dzIGRpc3Rp
bmd1aXNoaW5nIGJldHdlZW4gd29yZHMKKyAgICAgKiB0aGF0IGNvbnRhaW4gYWxwaGFiZXRpYyBs
ZXR0ZXJzLCAid29yZHMiIHRoYXQgYXBwZWFyIHRvIGJlIG51bWJlcnMsCisgICAgICogcHVuY3R1
YXRpb24gYW5kIHNwYWNlcywgd29yZHMgY29udGFpbmluZyBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJz
LCBhbmQKKyAgICAgKiBtb3JlLiAgRm9yIExpbmUgQnJlYWssIHRoZSBzdGF0dXMgZGlzdGluZ3Vp
c2hlcyBiZXR3ZWVuIGhhcmQgKG1hbmRhdG9yeSkgYnJlYWtzCisgICAgICogYW5kIHNvZnQgKHBv
dGVudGlhbCkgYnJlYWsgcG9zaXRpb25zLgorICAgICAqIDxwPgorICAgICAqIDxjb2RlPmdldFJ1
bGVTdGF0dXMoKTwvY29kZT4gY2FuIGJlIGNhbGxlZCBhZnRlciBvYnRhaW5pbmcgYSBib3VuZGFy
eQorICAgICAqIHBvc2l0aW9uIGZyb20gPGNvZGU+bmV4dCgpPC9jb2RlPiwgPGNvZGU+cHJldmlv
dXMoKTwvY29kZT4sIG9yCisgICAgICogYW55IG90aGVyIGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9u
cyB0aGF0IHJldHVybnMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBX
aGVuIGNyZWF0aW5nIGN1c3RvbSBicmVhayBydWxlcywgb25lIGlzIGZyZWUgdG8gZGVmaW5lIHdo
YXRldmVyCisgICAgICogc3RhdHVzIHZhbHVlcyBtYXkgYmUgY29udmVuaWVudCBmb3IgdGhlIGFw
cGxpY2F0aW9uLgorICAgICAqIDxwPgorICAgICAqIE5vdGU6IHRoaXMgZnVuY3Rpb24gaXMgbm90
IHRocmVhZCBzYWZlLiAgSXQgc2hvdWxkIG5vdCBoYXZlIGJlZW4KKyAgICAgKiAgICAgICBkZWNs
YXJlZCBjb25zdCwgYW5kIHRoZSBjb25zdCByZW1haW5zIG9ubHkgZm9yIGNvbXBhdGliaWxpdHkK
KyAgICAgKiAgICAgICByZWFzb25zLiAgKFRoZSBmdW5jdGlvbiBpcyBsb2dpY2FsbHkgY29uc3Qs
IGJ1dCBub3QgYml0LXdpc2UgY29uc3QpLgorICAgICAqIDxwPgorICAgICAqIEByZXR1cm4gdGhl
IHN0YXR1cyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNl
bnRseQorICAgICAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqCisgICAgICogQHNl
ZSBVV29yZEJyZWFrCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90IGdldFJ1bGVTdGF0dXMoKSBjb25zdDsKKworICAgLyoqCisgICAgKiBHZXQgdGhl
IHN0YXR1cyAodGFnKSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsgcnVsZShzKSB0aGF0IGRldGVybWlu
ZWQgdGhlIG1vc3QKKyAgICAqIHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAg
ICogPHA+CisgICAgKiBUaGUgcmV0dXJuZWQgc3RhdHVzIHZhbHVlKHMpIGFyZSBzdG9yZWQgaW50
byBhbiBhcnJheSBwcm92aWRlZCBieSB0aGUgY2FsbGVyLgorICAgICogVGhlIHZhbHVlcyBhcmUg
c3RvcmVkIGluIHNvcnRlZCAoYXNjZW5kaW5nKSBvcmRlci4KKyAgICAqIElmIHRoZSBjYXBhY2l0
eSBvZiB0aGUgb3V0cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xkIHRoZSBkYXRhLAor
ICAgICogIHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2YWlsYWJsZSBsZW5n
dGgsIGFuZCBhCisgICAgKiAgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1Igd2lsbCBiZSBzaWduYWxl
ZC4KKyAgICAqCisgICAgKiBAcGFyYW0gZmlsbEluVmVjIGFuIGFycmF5IHRvIGJlIGZpbGxlZCBp
biB3aXRoIHRoZSBzdGF0dXMgdmFsdWVzLgorICAgICogQHBhcmFtIGNhcGFjaXR5ICB0aGUgbGVu
Z3RoIG9mIHRoZSBzdXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0aCBvZiB6ZXJvIGNhdXNlcworICAg
ICogICAgICAgICAgICAgICAgICB0aGUgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSBudW1iZXIgb2Yg
c3RhdHVzIHZhbHVlcywgaW4gdGhlCisgICAgKiAgICAgICAgICAgICAgICAgIG5vcm1hbCB3YXks
IHdpdGhvdXQgYXR0ZW10cGluZyB0byBzdG9yZSBhbnkgdmFsdWVzLgorICAgICogQHBhcmFtIHN0
YXR1cyAgICByZWNlaXZlcyBlcnJvciBjb2Rlcy4KKyAgICAqIEByZXR1cm4gICAgICAgICAgVGhl
IG51bWJlciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxlcyB0aGF0IGRldGVybWluZWQK
KyAgICAqICAgICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50IGJvdW5kYXJ5IHJldHVybmVk
IGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAqICAgICAgICAgICAgICAgICAgSW4gdGhlIGV2
ZW50IG9mIGEgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRoZSByZXR1cm4gdmFsdWUKKyAgICAq
ICAgICAgICAgICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzIHRo
YXQgd2VyZSBhdmFpbGFibGUsCisgICAgKiAgICAgICAgICAgICAgICAgIG5vdCB0aGUgcmVkdWNl
ZCBudW1iZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgorICAgICogQHNlZSBnZXRSdWxl
U3RhdHVzCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgIHZpcnR1YWwgaW50MzJf
dCBnZXRSdWxlU3RhdHVzVmVjKGludDMyX3QgKmZpbGxJblZlYywgaW50MzJfdCBjYXBhY2l0eSwg
VUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB1bmlxdWUg
Y2xhc3MgSUQgUE9MWU1PUlBISUNBTExZLiAgUHVyZSB2aXJ0dWFsIG92ZXJyaWRlLgorICAgICAq
IFRoaXMgbWV0aG9kIGlzIHRvIGltcGxlbWVudCBhIHNpbXBsZSB2ZXJzaW9uIG9mIFJUVEksIHNp
bmNlIG5vdCBhbGwKKyAgICAgKiBDKysgY29tcGlsZXJzIHN1cHBvcnQgZ2VudWluZSBSVFRJLiAg
UG9seW1vcnBoaWMgb3BlcmF0b3I9PSgpIGFuZAorICAgICAqIGNsb25lKCkgbWV0aG9kcyBjYWxs
IHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICBUaGUgY2xhc3Mg
SUQgZm9yIHRoaXMgb2JqZWN0LiBBbGwgb2JqZWN0cyBvZiBhCisgICAgICogICAgICAgICAgICAg
ICAgICBnaXZlbiBjbGFzcyBoYXZlIHRoZSBzYW1lIGNsYXNzIElELiAgT2JqZWN0cyBvZgorICAg
ICAqICAgICAgICAgICAgICAgICAgb3RoZXIgY2xhc3NlcyBoYXZlIGRpZmZlcmVudCBjbGFzcyBJ
RHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJ
RCBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVy
bnMgdGhlIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzLiAgVGhpcyBpcyB1c2VmdWwgb25seSBmb3IK
KyAgICAgKiBjb21wYXJpbmcgdG8gYSByZXR1cm4gdmFsdWUgZnJvbSBnZXREeW5hbWljQ2xhc3NJ
RCgpLiAgRm9yIGV4YW1wbGU6CisgICAgICoKKyAgICAgKiAgICAgIEJhc2UqIHBvbHltb3JwaGlj
X3BvaW50ZXIgPSBjcmVhdGVQb2x5bW9ycGhpY09iamVjdCgpOworICAgICAqICAgICAgaWYgKHBv
bHltb3JwaGljX3BvaW50ZXItPmdldER5bmFtaWNDbGFzc0lEKCkgPT0KKyAgICAgKiAgICAgICAg
ICBEZXJpdmVkOjpnZXRTdGF0aWNDbGFzc0lEKCkpIC4uLgorICAgICAqCisgICAgICogQHJldHVy
biAgICAgICAgICBUaGUgY2xhc3MgSUQgZm9yIGFsbCBvYmplY3RzIG9mIHRoaXMgY2xhc3MuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVDbGFzc0lEIFVfRVhQ
T1JUMiBnZXRTdGF0aWNDbGFzc0lEKHZvaWQpOworCisgICAgLyoqCisgICAgICogRGVwcmVjYXRl
ZCBmdW5jdGlvbmFsaXR5LiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisgICAgICogQ3Jl
YXRlIGEgY2xvbmUgKGNvcHkpIG9mIHRoaXMgYnJlYWsgaXRlcmF0b3IgaW4gbWVtb3J5IHByb3Zp
ZGVkCisgICAgICogIGJ5IHRoZSBjYWxsZXIuICBUaGUgaWRlYSBpcyB0byBpbmNyZWFzZSBwZXJm
b3JtYW5jZSBieSBhdm9pZGluZworICAgICAqICBhIHN0b3JhZ2UgYWxsb2NhdGlvbi4gIFVzZSBv
ZiB0aGlzIGZ1bmN0b2luIGlzIE5PVCBSRUNPTU1FTkRFRC4KKyAgICAgKiAgUGVyZm9ybWFuY2Ug
Z2FpbnMgYXJlIG1pbmltYWwsIGFuZCBjb3JyZWN0IGJ1ZmZlciBtYW5hZ2VtZW50IGlzCisgICAg
ICogIHRyaWNreS4gIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0g
c3RhY2tCdWZmZXIgIFRoZSBwb2ludGVyIHRvIHRoZSBtZW1vcnkgaW50byB3aGljaCB0aGUgY2xv
bmVkIG9iamVjdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGJlIHBsYWNlZC4g
IElmIE5VTEwsICBhbGxvY2F0ZSBoZWFwIG1lbW9yeQorICAgICAqICAgICAgICAgICAgICAgICAg
ICAgZm9yIHRoZSBjbG9uZWQgb2JqZWN0LgorICAgICAqIEBwYXJhbSBCdWZmZXJTaXplICAgVGhl
IHNpemUgb2YgdGhlIGJ1ZmZlci4gIElmIHplcm8sIHJldHVybiB0aGUgcmVxdWlyZWQKKyAgICAg
KiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciBzaXplLCBidXQgZG8gbm90IGNsb25lIHRoZSBv
YmplY3QuICBJZiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHNpemUgd2FzIHRvbyBz
bWFsbCAoYnV0IG5vdCB6ZXJvKSwgYWxsb2NhdGUgaGVhcAorICAgICAqICAgICAgICAgICAgICAg
ICAgICAgc3RvcmFnZSBmb3IgdGhlIGNsb25lZCBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFy
YW0gc3RhdHVzICAgICAgIEVycm9yIHN0YXR1cy4gIFVfU0FGRUNMT05FX0FMTE9DQVRFRF9XQVJO
SU5HIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHJldHVybmVkIGlmIHRoZSB0
aGUgcHJvdmlkZWQgYnVmZmVyIHdhcyB0b28gc21hbGwsIGFuZAorICAgICAqICAgICAgICAgICAg
ICAgICAgICAgdGhlIGNsb25lIHdhcyB0aGVyZWZvcmUgcHV0IG9uIHRoZSBoZWFwLgorICAgICAq
CisgICAgICogQHJldHVybiAgUG9pbnRlciB0byB0aGUgY2xvbmUgb2JqZWN0LiAgVGhpcyBtYXkg
ZGlmZmVyIGZyb20gdGhlIHN0YWNrQnVmZmVyCisgICAgICogICAgICAgICAgYWRkcmVzcyBpZiB0
aGUgYnl0ZSBhbGlnbm1lbnQgb2YgdGhlIHN0YWNrIGJ1ZmZlciB3YXMgbm90IHN1aXRhYmxlCisg
ICAgICogICAgICAgICAgb3IgaWYgdGhlIHN0YWNrQnVmZmVyIHdhcyB0b28gc21hbGwgdG8gaG9s
ZCB0aGUgY2xvbmUuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0
ZWFkLgorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciAqICBjcmVhdGVCdWZmZXJD
bG9uZSh2b2lkICpzdGFja0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50MzJfdCAmQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworCisgICAg
LyoqCisgICAgICogUmV0dXJuIHRoZSBiaW5hcnkgZm9ybSBvZiBjb21waWxlZCBicmVhayBydWxl
cywKKyAgICAgKiB3aGljaCBjYW4gdGhlbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5ldyBicmVhayBp
dGVyYXRvciBhdCBzb21lCisgICAgICogdGltZSBpbiB0aGUgZnV0dXJlLiAgQ3JlYXRpbmcgYSBi
cmVhayBpdGVyYXRvciBmcm9tIHByZS1jb21waWxlZCBydWxlcworICAgICAqIGlzIG11Y2ggZmFz
dGVyIHRoYW4gYnVpbGRpbmcgb25lIGZyb20gdGhlIHNvdXJjZSBmb3JtIG9mIHRoZQorICAgICAq
IGJyZWFrIHJ1bGVzLgorICAgICAqCisgICAgICogVGhlIGJpbmFyeSBkYXRhIGNhbiBvbmx5IGJl
IHVzZWQgd2l0aCB0aGUgc2FtZSB2ZXJzaW9uIG9mIElDVQorICAgICAqICBhbmQgb24gdGhlIHNh
bWUgcGxhdGZvcm0gdHlwZSAocHJvY2Vzc29yIGVuZGlhbi1uZXNzKQorICAgICAqCisgICAgICog
QHBhcmFtIGxlbmd0aCBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGJpbmFyeSBkYXRhLiAgKE91
dCBwYXJhbXRlci4pCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgQSBwb2ludGVyIHRvIHRoZSBi
aW5hcnkgKGNvbXBpbGVkKSBydWxlIGRhdGEuICBUaGUgc3RvcmFnZQorICAgICAqICAgICAgICAg
ICBiZWxvbmdzIHRvIHRoZSBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvciBvYmplY3QsIG5vdCB0aGUK
KyAgICAgKiAgICAgICAgICAgY2FsbGVyLCBhbmQgbXVzdCBub3QgYmUgbW9kaWZpZWQgb3IgZGVs
ZXRlZC4KKyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGNvbnN0
IHVpbnQ4X3QgKmdldEJpbmFyeVJ1bGVzKHVpbnQzMl90ICZsZW5ndGgpOworCisgICAgLyoqCisg
ICAgICogIFNldCB0aGUgc3ViamVjdCB0ZXh0IHN0cmluZyB1cG9uIHdoaWNoIHRoZSBicmVhayBp
dGVyYXRvciBpcyBvcGVyYXRpbmcKKyAgICAgKiAgd2l0aG91dCBjaGFuZ2luZyBhbnkgb3RoZXIg
YXNwZWN0IG9mIHRoZSBtYXRjaGluZyBzdGF0ZS4KKyAgICAgKiAgVGhlIG5ldyBhbmQgcHJldmlv
dXMgdGV4dCBzdHJpbmdzIG11c3QgaGF2ZSB0aGUgc2FtZSBjb250ZW50LgorICAgICAqCisgICAg
ICogIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBpbiBlbnZpcm9ubWVudHMgd2hl
cmUgSUNVIGlzIG9wZXJhdGluZyBvbgorICAgICAqICBzdHJpbmdzIHRoYXQgbWF5IG1vdmUgYXJv
dW5kIGluIG1lbW9yeS4gIEl0IHByb3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBub3RpZnlpbmcKKyAg
ICAgKiAgSUNVIHRoYXQgdGhlIHN0cmluZyBoYXMgYmVlbiByZWxvY2F0ZWQsIGFuZCBwcm92aWRp
bmcgYSBuZXcgVVRleHQgdG8gYWNjZXNzIHRoZQorICAgICAqICBzdHJpbmcgaW4gaXRzIG5ldyBw
b3NpdGlvbi4KKyAgICAgKgorICAgICAqICBOb3RlIHRoYXQgdGhlIGJyZWFrIGl0ZXJhdG9yIGlt
cGxlbWVudGF0aW9uIG5ldmVyIGNvcGllcyB0aGUgdW5kZXJseWluZyB0ZXh0CisgICAgICogIG9m
IGEgc3RyaW5nIGJlaW5nIHByb2Nlc3NlZCwgYnV0IGFsd2F5cyBvcGVyYXRlcyBkaXJlY3RseSBv
biB0aGUgb3JpZ2luYWwgdGV4dAorICAgICAqICBwcm92aWRlZCBieSB0aGUgdXNlci4gUmVmcmVz
aGluZyBzaW1wbHkgZHJvcHMgdGhlIHJlZmVyZW5jZXMgdG8gdGhlIG9sZCB0ZXh0CisgICAgICog
IGFuZCByZXBsYWNlcyB0aGVtIHdpdGggcmVmZXJlbmNlcyB0byB0aGUgbmV3LgorICAgICAqCisg
ICAgICogIENhdXRpb246ICB0aGlzIGZ1bmN0aW9uIGlzIG5vcm1hbGx5IHVzZWQgb25seSBieSB2
ZXJ5IHNwZWNpYWxpemVkLAorICAgICAqICBzeXN0ZW0tbGV2ZWwgY29kZS4gIE9uZSBleGFtcGxl
IHVzZSBjYXNlIGlzIHdpdGggZ2FyYmFnZSBjb2xsZWN0aW9uIHRoYXQgbW92ZXMKKyAgICAgKiAg
dGhlIHRleHQgaW4gbWVtb3J5LgorICAgICAqCisgICAgICogQHBhcmFtIGlucHV0ICAgICAgVGhl
IG5ldyAobW92ZWQpIHRleHQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgIFJlY2Vp
dmVzIGVycm9ycyBkZXRlY3RlZCBieSB0aGlzIGZ1bmN0aW9uLgorICAgICAqIEByZXR1cm4gICAg
ICAgICAgICp0aGlzCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAg
IHZpcnR1YWwgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAmcmVmcmVzaElucHV0VGV4dChVVGV4dCAq
aW5wdXQsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKworcHJvdGVjdGVkOgorICAgIC8vPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKyAgICAvLyBpbXBsZW1lbnRhdGlvbgorICAgIC8vPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAg
ICAvKioKKyAgICAgKiBEdW1wcyBjYWNoZXMgYW5kIHBlcmZvcm1zIG90aGVyIGFjdGlvbnMgYXNz
b2NpYXRlZCB3aXRoIGEgY29tcGxldGUgY2hhbmdlCisgICAgICogaW4gdGV4dCBvciBpdGVyYXRp
b24gcG9zaXRpb24uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgdmlydHVhbCB2b2lk
IHJlc2V0KHZvaWQpOworCisjaWYgMAorICAgIC8qKgorICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0
aGUgY2F0ZWdvcnkgbG9va3VwIGZvciB0aGlzIGNoYXIKKyAgICAgICogaW5kaWNhdGVzIHRoYXQg
aXQgaXMgaW4gdGhlIHNldCBvZiBkaWN0aW9uYXJ5IGxvb2t1cCBjaGFycy4KKyAgICAgICogVGhp
cyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGRpY3Rpb25hcnkgYmFzZWQgYnJlYWsg
aXRlcmF0b3JzLgorICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBm
b3IgdGhpcyBjaGFyCisgICAgICAqIGluZGljYXRlcyB0aGF0IGl0IGlzIGluIHRoZSBzZXQgb2Yg
ZGljdGlvbmFyeSBsb29rdXAgY2hhcnMuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAg
ICB2aXJ0dWFsIFVCb29sIGlzRGljdGlvbmFyeUNoYXIoVUNoYXIzMik7CisKKyAgICAvKioKKyAg
ICAgICogR2V0IHRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgICogQGludGVy
bmFsCisgICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRCcmVha1R5cGUoKSBjb25zdDsK
KyNlbmRpZgorCisgICAgLyoqCisgICAgICAqIFNldCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRl
cmF0b3IuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
QnJlYWtUeXBlKGludDMyX3QgdHlwZSk7CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQor
ICAgIC8qKgorICAgICAgKiBDb21tb24gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24sIHVzZWQgYnkg
Y29uc3RydWN0b3JzIGFuZCBidWZmZXJDbG9uZS4KKyAgICAgICogQGludGVybmFsCisgICAgICAq
LworICAgIHZvaWQgaW5pdCgpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisK
K3ByaXZhdGU6CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBiYWNrcyB0aGUgaXRlcmF0
b3IgYmFjayB1cCB0byBhICJzYWZlIHBvc2l0aW9uIiBpbiB0aGUgdGV4dC4KKyAgICAgKiBUaGlz
IGlzIGEgcG9zaXRpb24gdGhhdCB3ZSBrbm93LCB3aXRob3V0IGFueSBjb250ZXh0LCBtdXN0IGJl
IGEgYnJlYWsgcG9zaXRpb24uCisgICAgICogVGhlIHZhcmlvdXMgY2FsbGluZyBtZXRob2RzIHRo
ZW4gaXRlcmF0ZSBmb3J3YXJkIGZyb20gdGhpcyBzYWZlIHBvc2l0aW9uIHRvCisgICAgICogdGhl
IGFwcHJvcHJpYXRlIHBvc2l0aW9uIHRvIHJldHVybi4gIChGb3IgbW9yZSBpbmZvcm1hdGlvbiwg
c2VlIHRoZSBkZXNjcmlwdGlvbgorICAgICAqIG9mIGJ1aWxkQmFja3dhcmRzU3RhdGVUYWJsZSgp
IGluIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuQnVpbGRlci4pCisgICAgICogQHBhcmFtIHN0YXRl
dGFibGUgc3RhdGUgdGFibGUgdXNlZCBvZiBtb3ZpbmcgYmFja3dhcmRzCisgICAgICogQGludGVy
bmFsCisgICAgICovCisgICAgaW50MzJfdCBoYW5kbGVQcmV2aW91cyhjb25zdCBSQkJJU3RhdGVU
YWJsZSAqc3RhdGV0YWJsZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUg
YWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBuZXh0KCkgbWV0aG9kLiAgQWxsIGl0ZXJhdGlv
bgorICAgICAqIHZlY3RvcnMgdGhyb3VnaCBoZXJlLiAgVGhpcyBtZXRob2QgaW5pdGlhbGl6ZXMg
dGhlIHN0YXRlIG1hY2hpbmUgdG8gc3RhdGUgMQorICAgICAqIGFuZCBhZHZhbmNlcyB0aHJvdWdo
IHRoZSB0ZXh0IGNoYXJhY3RlciBieSBjaGFyYWN0ZXIgdW50aWwgd2UgcmVhY2ggdGhlIGVuZAor
ICAgICAqIG9mIHRoZSB0ZXh0IG9yIHRoZSBzdGF0ZSBtYWNoaW5lIHRyYW5zaXRpb25zIHRvIHN0
YXRlIDAuICBXZSB1cGRhdGUgb3VyIHJldHVybgorICAgICAqIHZhbHVlIGV2ZXJ5IHRpbWUgdGhl
IHN0YXRlIG1hY2hpbmUgcGFzc2VzIHRocm91Z2ggYSBwb3NzaWJsZSBlbmQgc3RhdGUuCisgICAg
ICogQHBhcmFtIHN0YXRldGFibGUgc3RhdGUgdGFibGUgdXNlZCBvZiBtb3ZpbmcgZm9yd2FyZHMK
KyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGhhbmRsZU5leHQoY29uc3Qg
UkJCSVN0YXRlVGFibGUgKnN0YXRldGFibGUpOworCitwcm90ZWN0ZWQ6CisKKyNpZm5kZWYgVV9I
SURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIGZ1bmN0aW9uIHRo
YXQgYWN0dWFsbHkgaW1wbGVtZW50cyBkaWN0aW9uYXJ5LWJhc2VkCisgICAgICogYnJlYWtpbmcu
ICBDb3ZlcmluZyBhdCBsZWFzdCB0aGUgcmFuZ2UgZnJvbSBzdGFydFBvcyB0byBlbmRQb3MsCisg
ICAgICogaXQgY2hlY2tzIGZvciBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMsIGFuZCBpZiBpdCBmaW5k
cyB0aGVtIGRldGVybWluZXMKKyAgICAgKiB0aGUgYXBwcm9wcmlhdGUgb2JqZWN0IHRvIGRlYWwg
d2l0aCB0aGVtLiBJdCBtYXkgY2FjaGUgZm91bmQgYnJlYWtzIGluCisgICAgICogZkNhY2hlZEJy
ZWFrUG9zaXRpb25zIGFzIGl0IGdvZXMuIEl0IG1heSB3ZWxsIGFsc28gbG9vayBhdCB0ZXh0IG91
dHNpZGUKKyAgICAgKiB0aGUgcmFuZ2Ugc3RhcnRQb3MgdG8gZW5kUG9zLgorICAgICAqIElmIGdv
aW5nIGZvcndhcmQsIGVuZFBvcyBpcyB0aGUgbm9ybWFsIFVuaWNvZGUgYnJlYWsgcmVzdWx0LCBh
bmQKKyAgICAgKiBpZiBnb2luZCBpbiByZXZlcnNlLCBzdGFydFBvcyBpcyB0aGUgbm9ybWFsIFVu
aWNvZGUgYnJlYWsgcmVzdWx0CisgICAgICogQHBhcmFtIHN0YXJ0UG9zICBUaGUgc3RhcnQgcG9z
aXRpb24gb2YgYSByYW5nZSBvZiB0ZXh0CisgICAgICogQHBhcmFtIGVuZFBvcyAgICBUaGUgZW5k
IHBvc2l0aW9uIG9mIGEgcmFuZ2Ugb2YgdGV4dAorICAgICAqIEBwYXJhbSByZXZlcnNlICAgVGhl
IGNhbGwgaXMgZm9yIHRoZSByZXZlcnNlIGRpcmVjdGlvbgorICAgICAqIEBpbnRlcm5hbAorICAg
ICAqLworICAgIGludDMyX3QgY2hlY2tEaWN0aW9uYXJ5KGludDMyX3Qgc3RhcnRQb3MsIGludDMy
X3QgZW5kUG9zLCBVQm9vbCByZXZlcnNlKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQ
SSAqLworCitwcml2YXRlOgorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5z
IHRoZSBhcHByb3ByaWF0ZSBMYW5ndWFnZUJyZWFrRW5naW5lIGZvciBhCisgICAgICogZ2l2ZW4g
Y2hhcmFjdGVyIGMuCisgICAgICogQHBhcmFtIGMgICAgICAgICBBIGNoYXJhY3RlciBpbiB0aGUg
ZGljdGlvbmFyeSBzZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBjb25zdCBMYW5n
dWFnZUJyZWFrRW5naW5lICpnZXRMYW5ndWFnZUJyZWFrRW5naW5lKFVDaGFyMzIgYyk7CisKKyAg
ICAvKioKKyAgICAgKiAgQGludGVybmFsCisgICAgICovCisgICAgdm9pZCBtYWtlUnVsZVN0YXR1
c1ZhbGlkKCk7CisKK307CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICBJbmxp
bmUgRnVuY3Rpb25zIERlZmluaXRpb25zIC4uLgorLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKK2lubGluZSBVQm9vbCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yOjpvcGVyYXRvciE9KGNvbnN0
IEJyZWFrSXRlcmF0b3ImIHRoYXQpIGNvbnN0IHsKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0odGhh
dCk7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JS
RUFLX0lURVJBVElPTiAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvc2Nocml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0ZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kMGI1ZTIyNTAzY2ZmMjYxZDJjZDI0MGZmMTIwMDdmOTM3Zjc4M2IyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oCkBAIC0wLDAgKzEs
MTg3IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAx
OTk4LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlv
biBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorKgorKiBGaWxlIHNjaHJpdGVyLmgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6Cisq
CisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogIDA1LzA1Lzk5ICAg
ICBzdGVwaGVuICAgICBDbGVhbmVkIHVwLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisj
aWZuZGVmIFNDSFJJVEVSX0gKKyNkZWZpbmUgU0NIUklURVJfSAorCisjaW5jbHVkZSAidW5pY29k
ZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisjaW5jbHVkZSAidW5p
Y29kZS91Y2hyaXRlci5oIgorCisvKioKKyAqIFxmaWxlIAorICogXGJyaWVmIEMrKyBBUEk6IFN0
cmluZyBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgor
ICogQSBjb25jcmV0ZSBzdWJjbGFzcyBvZiBDaGFyYWN0ZXJJdGVyYXRvciB0aGF0IGl0ZXJhdGVz
IG92ZXIgdGhlCisgKiBjaGFyYWN0ZXJzIChjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzKSBpbiBh
IFVuaWNvZGVTdHJpbmcuCisgKiBJdCdzIHBvc3NpYmxlIG5vdCBvbmx5IHRvIGNyZWF0ZSBhbgor
ICogaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIGFuIGVudGlyZSBVbmljb2RlU3RyaW5nLCBi
dXQgYWxzbyB0bworICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25seSBhIHN1YnJh
bmdlIG9mIGEgVW5pY29kZVN0cmluZworICogKGl0ZXJhdG9ycyBvdmVyIGRpZmZlcmVudCBzdWJy
YW5nZXMgb2YgdGhlIHNhbWUgVW5pY29kZVN0cmluZyBkb24ndAorICogY29tcGFyZSBlcXVhbCku
CisgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVy
YXRvcgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBTdHJpbmdD
aGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1Ymxp
YzoKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5n
IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0
IGlzIGNvcGllZC4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyB0aGUgd2hvbGUgc3RyaW5n
LCBhbmQgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGlzIDAuCisgICAqIEBwYXJhbSB0ZXh0U3RyIFRo
ZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSBhbiBpdGVyYXRvcgorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVuaWNvZGVT
dHJpbmcmIHRleHRTdHIpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0
aGUgVW5pY29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBpdGVy
YXRpb24gcmFuZ2UgaXMgdGhlIHdob2xlIHN0cmluZywgYW5kIHRoZSBzdGFydGluZworICAgKiBw
b3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInRleHRQb3MiLiAgSWYgInRleHRQb3MiIGlzIG91dHNp
ZGUgdGhlIHZhbGlkCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMg
b2JqZWN0IGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRTdHIgVGhlIHVuaWNvZGUgc3Ry
aW5nIHVzZWQgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yCisgICAqIEBwYXJhbSB0ZXh0UG9zIFRoZSBz
dGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYgICAg
dGV4dFN0ciwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dFBvcyk7CisK
KyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJl
ZmVycmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlz
IGNvcGllZC4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBiZWdpbnMgd2l0aCB0aGUgY29kZSB1
bml0IHNwZWNpZmllZCBieQorICAgKiAidGV4dEJlZ2luIiBhbmQgZW5kcyB3aXRoIHRoZSBjb2Rl
IHVuaXQgQkVGT1JFIHRoZSBjb2RlIHVuaXQgc3BlY2ZpZWQKKyAgICogYnkgInRleHRFbmQiLiAg
VGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAidGV4dFBvcyIuICBJZgorICAg
KiAidGV4dEJlZ2luIiBhbmQgInRleHRFbmQiIGRvbid0IGZvcm0gYSB2YWxpZCByYW5nZSBvbiAi
dGV4dCIgKGkuZS4sCisgICAqIHRleHRCZWdpbiA+PSB0ZXh0RW5kIG9yIGVpdGhlciBpcyBuZWdh
dGl2ZSBvciBncmVhdGVyIHRoYW4gdGV4dC5zaXplKCkpLAorICAgKiBvciAidGV4dFBvcyIgaXMg
b3V0c2lkZSB0aGUgcmFuZ2UgZGVmaW5lZCBieSAidGV4dEJlZ2luIiBhbmQgInRleHRFbmQiLAor
ICAgKiB0aGUgYmVoYXZpb3Igb2YgdGhpcyBpdGVyYXRvciBpcyB1bmRlZmluZWQuCisgICAqIEBw
YXJhbSB0ZXh0U3RyICAgIFRoZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSB0aGUgU3Ry
aW5nQ2hhcmFjdGVySXRlcmF0b3IKKyAgICogQHBhcmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBv
c2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhl
IGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0UG9z
ICAgIFRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0
cmluZyYgICAgdGV4dFN0ciwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4
dEJlZ2luLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0RW5kLAorICAg
ICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0UG9zKTsKKworICAvKioKKyAgICog
Q29weSBjb25zdHJ1Y3Rvci4gIFRoZSBuZXcgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2Ft
ZSByYW5nZQorICAgKiBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRp
YWwgcG9zaXRpb24gaXMgdGhlCisgICAqIHNhbWUgYXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlv
bi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGluICJ0aGF0IiBpcyBjb3BpZWQuCisg
ICAqIEBwYXJhbSB0aGF0IFRoZSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQK
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihj
b25zdCBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciYgIHRoYXQpOworCisgIC8qKgorICAgKiBEZXN0
cnVjdG9yLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgflN0cmluZ0No
YXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgLyoqCisgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICAq
dGhpcyBpcyBhbHRlcmVkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZQorICAgKiByYW5nZSBvZiB0
aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgcmVmZXJzIHRvIHRoZSBzYW1lCisgICAqIGNo
YXJhY3RlciB3aXRoaW4gdGhhdCBzdHJpbmcgYXMgInRoYXQiIGRvZXMuCisgICAqIEBwYXJhbSB0
aGF0IFRoZSBvYmplY3QgdG8gYmUgY29waWVkLgorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVh
dGVkIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0
ZXJJdGVyYXRvciYKKyAgb3BlcmF0b3I9KGNvbnN0IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJiAg
ICB0aGF0KTsKKworICAvKioKKyAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRl
cmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJl
IHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICogQHBhcmFtIHRoYXQgVGhlIEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICog
QHJldHVybiB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdl
IG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNo
YXJhY3Rlci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAg
ICAgICAgIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBj
b25zdDsKKworICAvKioKKyAgICogUmV0dXJucyBhIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRv
ciByZWZlcnJpbmcgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHJhbmdl
IG9mIHRoZSBzYW1lIHN0cmluZyBhcyB0aGlzIG9uZS4gIFRoZQorICAgKiBjYWxsZXIgbXVzdCBk
ZWxldGUgdGhlIG5ldyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0aGUgbmV3bHkgY2xvbmVkIG9i
amVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIENoYXJhY3Rlckl0
ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0
b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJhbSBuZXdU
ZXh0IFRoZSBzdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKwor
ICAvKioKKyAgICogQ29waWVzIHRoZSBVbmljb2RlU3RyaW5nIHVuZGVyIGl0ZXJhdGlvbiBpbnRv
IHRoZSBVbmljb2RlU3RyaW5nCisgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZlbiBp
ZiB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIGFjcm9zcworICAgKiBvbmx5IGEgcGFydCBvZiB0aGlz
IHN0cmluZywgdGhlIHdob2xlIHN0cmluZyBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSByZXN1bHQg
UmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNv
ZGVTdHJpbmcmIHJlc3VsdCk7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0
aGlzIG9iamVjdCAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBm
b3IgdGhpcyBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBV
Q2xhc3NJRCAgICAgICAgIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCisgIC8qKgor
ICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcyAobm90IHJlYWxseSBwdWJsaWMp
CisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcworICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHN0YXRpYyBVQ2xhc3NJRCAgIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFz
c0lEKHZvaWQpOworCitwcm90ZWN0ZWQ6CisgIC8qKgorICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9y
LCBpdGVyYXRpb24gb3ZlciBlbXB0eSBzdHJpbmcuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogU2V0cyB0aGUg
aXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJh
bSBuZXdUZXh0IFRoZSBzdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbmV3
VGV4dExlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBTdHJpbmcKKyAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVUNoYXIqIG5ld1RleHQsIGludDMyX3QgbmV3
VGV4dExlbmd0aCk7CisKKyAgLyoqCisgICAqIENvcHkgb2YgdGhlIGl0ZXJhdGVkIHN0cmluZyBv
YmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVW5pY29kZVN0cmluZyAgICAg
ICAgICAgIHRleHQ7CisKK307CisKK1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjYXNlbWFwLmggYi9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3VjYXNlbWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM3ZTE2NTg4Njk3ZjFhOTMwMTkxZWUzZGY4MTZj
NjNiN2JkMzhjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNh
c2VtYXAuaApAQCAtMCwwICsxLDQyMyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoK
KyogICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNo
aW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgor
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVjYXNlbWFwLmgKKyog
ICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAg
IGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDA1bWF5MDYKKyogICBjcmVhdGVk
IGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIENhc2UgbWFwcGluZyBzZXJ2aWNlIG9iamVj
dCBhbmQgZnVuY3Rpb25zIHVzaW5nIGl0LgorKi8KKworI2lmbmRlZiBfX1VDQVNFTUFQX0hfXwor
I2RlZmluZSBfX1VDQVNFTUFQX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNp
bmNsdWRlICJ1bmljb2RlL3VzdHJpbmcuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRl
ci5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IFVuaWNvZGUgY2FzZSBtYXBw
aW5nIGZ1bmN0aW9ucyB1c2luZyBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICoKKyAqIFRo
ZSBzZXJ2aWNlIG9iamVjdCB0YWtlcyBjYXJlIG9mIG1lbW9yeSBhbGxvY2F0aW9ucywgZGF0YSBs
b2FkaW5nLCBhbmQgc2V0dXAKKyAqIGZvciB0aGUgYXR0cmlidXRlcywgYXMgdXN1YWwuCisgKgor
ICogQ3VycmVudGx5LCB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBoZXJlIGRvZXMgbm90IG92
ZXJsYXAgd2l0aCB1Y2hhci5oCisgKiBhbmQgdXN0cmluZy5oLCBleGNlcHQgZm9yIHVjYXNlbWFw
X3RvVGl0bGUoKS4KKyAqCisgKiB1Y2FzZW1hcF91dGY4WFlaKCkgZnVuY3Rpb25zIG9wZXJhdGUg
ZGlyZWN0bHkgb24gVVRGLTggc3RyaW5ncy4KKyAqLworCisvKioKKyAqIFVDYXNlTWFwIGlzIGFu
IG9wYXF1ZSBzZXJ2aWNlIG9iamVjdCBmb3IgbmV3ZXIgSUNVIGNhc2UgbWFwcGluZyBmdW5jdGlv
bnMuCisgKiBPbGRlciBmdW5jdGlvbnMgZGlkIG5vdCB1c2UgYSBzZXJ2aWNlIG9iamVjdC4KKyAq
IEBzdGFibGUgSUNVIDMuNAorICovCitzdHJ1Y3QgVUNhc2VNYXA7Cit0eXBlZGVmIHN0cnVjdCBV
Q2FzZU1hcCBVQ2FzZU1hcDsgLyoqPCBDIHR5cGVkZWYgZm9yIHN0cnVjdCBVQ2FzZU1hcC4gQHN0
YWJsZSBJQ1UgMy40ICovCisKKy8qKgorICogT3BlbiBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0
IGZvciBhIGxvY2FsZSBhbmQgYSBzZXQgb2Ygb3B0aW9ucy4KKyAqIFRoZSBsb2NhbGUgSUQgYW5k
IG9wdGlvbnMgYXJlIHByZXByb2Nlc3NlZCBzbyB0aGF0IGZ1bmN0aW9ucyB1c2luZyB0aGUKKyAq
IHNlcnZpY2Ugb2JqZWN0IG5lZWQgbm90IHByb2Nlc3MgdGhlbSBpbiBlYWNoIGNhbGwuCisgKgor
ICogQHBhcmFtIGxvY2FsZSBJQ1UgbG9jYWxlIElELCB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRl
bnQKKyAqICAgICAgICAgICAgICAgdXBwZXItL2xvd2VyLS90aXRsZS1jYXNpbmcgYWNjb3JkaW5n
IHRvIHRoZSBVbmljb2RlIHN0YW5kYXJkLgorICogICAgICAgICAgICAgICBVc3VhbCBzZW1hbnRp
Y3M6ICIiPXJvb3QsIE5VTEw9ZGVmYXVsdCBsb2NhbGUsIGV0Yy4KKyAqIEBwYXJhbSBvcHRpb25z
IE9wdGlvbnMgYml0IHNldCwgdXNlZCBmb3IgY2FzZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFy
aXNvbnMuCisgKiAgICAgICAgICAgICAgICBTYW1lIGZsYWdzIGFzIGZvciB1X2ZvbGRDYXNlKCks
IHVfc3RyRm9sZENhc2UoKSwKKyAqICAgICAgICAgICAgICAgIHVfc3RyQ2FzZUNvbXBhcmUoKSwg
ZXRjLgorICogICAgICAgICAgICAgICAgVXNlIDAgb3IgVV9GT0xEX0NBU0VfREVGQVVMVCBmb3Ig
ZGVmYXVsdCBiZWhhdmlvci4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBw
b2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGlj
aCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgor
ICogQHJldHVybiBQb2ludGVyIHRvIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QsIGlmIHN1Y2Nl
c3NmdWwuCisgKgorICogQHNlZSBVX0ZPTERfQ0FTRV9ERUZBVUxUCisgKiBAc2VlIFVfRk9MRF9D
QVNFX0VYQ0xVREVfU1BFQ0lBTF9JCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQor
ICogQHNlZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5UCisgKiBAc3RhYmxlIElDVSAz
LjQKKyAqLworVV9TVEFCTEUgVUNhc2VNYXAgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX29wZW4oY29u
c3QgY2hhciAqbG9jYWxlLCB1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2Rl
KTsKKworLyoqCisgKiBDbG9zZSBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFt
IGNzbSBPYmplY3QgdG8gYmUgY2xvc2VkLgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RB
QkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9jbG9zZShVQ2FzZU1hcCAqY3NtKTsKKworI2lm
IFVfU0hPV19DUExVU1BMVVNfQVBJCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogXGNs
YXNzIExvY2FsVUNhc2VNYXBQb2ludGVyCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGNsb3Nl
cyBhIFVDYXNlTWFwIHZpYSB1Y2FzZW1hcF9jbG9zZSgpLgorICogRm9yIG1vc3QgbWV0aG9kcyBz
ZWUgdGhlIExvY2FsUG9pbnRlckJhc2UgYmFzZSBjbGFzcy4KKyAqCisgKiBAc2VlIExvY2FsUG9p
bnRlckJhc2UKKyAqIEBzZWUgTG9jYWxQb2ludGVyCisgKiBAc3RhYmxlIElDVSA0LjQKKyAqLwor
VV9ERUZJTkVfTE9DQUxfT1BFTl9QT0lOVEVSKExvY2FsVUNhc2VNYXBQb2ludGVyLCBVQ2FzZU1h
cCwgdWNhc2VtYXBfY2xvc2UpOworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmCisKKy8qKgor
ICogR2V0IHRoZSBsb2NhbGUgSUQgdGhhdCBpcyB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQg
Y2FzZSBtYXBwaW5ncy4KKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisg
KiBAcmV0dXJuIGxvY2FsZSBJRAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGNv
bnN0IGNoYXIgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldExvY2FsZShjb25zdCBVQ2FzZU1hcCAq
Y3NtKTsKKworLyoqCisgKiBHZXQgdGhlIG9wdGlvbnMgYml0IHNldCB0aGF0IGlzIHVzZWQgZm9y
IGNhc2UgZm9sZGluZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICogQHBhcmFtIGNzbSBVQ2Fz
ZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1cm4gb3B0aW9ucyBiaXQgc2V0CisgKiBAc3Rh
YmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgdWludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF9n
ZXRPcHRpb25zKGNvbnN0IFVDYXNlTWFwICpjc20pOworCisvKioKKyAqIFNldCB0aGUgbG9jYWxl
IElEIHRoYXQgaXMgdXNlZCBmb3IgbGFuZ3VhZ2UtZGVwZW5kZW50IGNhc2UgbWFwcGluZ3MuCisg
KgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBsb2Nh
bGUgTG9jYWxlIElELCBzZWUgdWNhc2VtYXBfb3BlbigpLgorICogQHBhcmFtIHBFcnJvckNvZGUg
TXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAg
ICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhl
IGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF9vcGVuCisgKiBAc3RhYmxlIElD
VSAzLjQKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldExvY2FsZShV
Q2FzZU1hcCAqY3NtLCBjb25zdCBjaGFyICpsb2NhbGUsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUp
OworCisvKioKKyAqIFNldCB0aGUgb3B0aW9ucyBiaXQgc2V0IHRoYXQgaXMgdXNlZCBmb3IgY2Fz
ZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKgorICogQHBhcmFtIGNzbSBVQ2Fz
ZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgYml0IHNldCwg
c2VlIHVjYXNlbWFwX29wZW4oKS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxp
ZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3
aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxs
LgorICoKKyAqIEBzZWUgdWNhc2VtYXBfb3BlbgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1Vf
U1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9zZXRPcHRpb25zKFVDYXNlTWFwICpjc20s
IHVpbnQzMl90IG9wdGlvbnMsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIERv
IG5vdCBsb3dlcmNhc2Ugbm9uLWluaXRpYWwgcGFydHMgb2Ygd29yZHMgd2hlbiB0aXRsZWNhc2lu
Zy4KKyAqIE9wdGlvbiBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQSXMgdGhhdCB0YWtlIGFuIG9wdGlv
bnMgYml0IHNldC4KKyAqCisgKiBCeSBkZWZhdWx0LCB0aXRsZWNhc2luZyB3aWxsIHRpdGxlY2Fz
ZSB0aGUgZmlyc3QgY2FzZWQgY2hhcmFjdGVyCisgKiBvZiBhIHdvcmQgYW5kIGxvd2VyY2FzZSBh
bGwgb3RoZXIgY2hhcmFjdGVycy4KKyAqIFdpdGggdGhpcyBvcHRpb24sIHRoZSBvdGhlciBjaGFy
YWN0ZXJzIHdpbGwgbm90IGJlIG1vZGlmaWVkLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0
aW9ucworICogQHNlZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1Rp
dGxlCisgKiBAc2VlIFVuaWNvZGVTdHJpbmc6OnRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAor
ICovCisjZGVmaW5lIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRSAweDEwMAorCisvKioKKyAqIERv
IG5vdCBhZGp1c3QgdGhlIHRpdGxlY2FzaW5nIGluZGV4ZXMgZnJvbSBCcmVha0l0ZXJhdG9yOjpu
ZXh0KCkgaW5kZXhlczsKKyAqIHRpdGxlY2FzZSBleGFjdGx5IHRoZSBjaGFyYWN0ZXJzIGF0IGJy
ZWFrcyBmcm9tIHRoZSBpdGVyYXRvci4KKyAqIE9wdGlvbiBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQ
SXMgdGhhdCB0YWtlIGFuIG9wdGlvbnMgYml0IHNldC4KKyAqCisgKiBCeSBkZWZhdWx0LCB0aXRs
ZWNhc2luZyB3aWxsIHRha2UgZWFjaCBicmVhayBpdGVyYXRvciBpbmRleCwKKyAqIGFkanVzdCBp
dCBieSBsb29raW5nIGZvciB0aGUgbmV4dCBjYXNlZCBjaGFyYWN0ZXIsIGFuZCB0aXRsZWNhc2Ug
dGhhdCBvbmUuCisgKiBPdGhlciBjaGFyYWN0ZXJzIGFyZSBsb3dlcmNhc2VkLgorICoKKyAqIFRo
aXMgZm9sbG93cyBVbmljb2RlIDQgJiA1IHNlY3Rpb24gMy4xMyBEZWZhdWx0IENhc2UgT3BlcmF0
aW9uczoKKyAqCisgKiBSMyAgdG9UaXRsZWNhc2UoWCk6IEZpbmQgdGhlIHdvcmQgYm91bmRhcmll
cyBiYXNlZCBvbiBVbmljb2RlIFN0YW5kYXJkIEFubmV4CisgKiAjMjksICJUZXh0IEJvdW5kYXJp
ZXMuIiBCZXR3ZWVuIGVhY2ggcGFpciBvZiB3b3JkIGJvdW5kYXJpZXMsIGZpbmQgdGhlIGZpcnN0
CisgKiBjYXNlZCBjaGFyYWN0ZXIgRi4gSWYgRiBleGlzdHMsIG1hcCBGIHRvIGRlZmF1bHRfdGl0
bGUoRik7IHRoZW4gbWFwIGVhY2gKKyAqIHN1YnNlcXVlbnQgY2hhcmFjdGVyIEMgdG8gZGVmYXVs
dF9sb3dlcihDKS4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgdWNh
c2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICogQHNlZSBVbmlj
b2RlU3RyaW5nOjp0b1RpdGxlCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICog
QHN0YWJsZSBJQ1UgMy44CisgKi8KKyNkZWZpbmUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNU
TUVOVCAweDIwMAorCisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKKy8qKgorICog
R2V0IHRoZSBicmVhayBpdGVyYXRvciB0aGF0IGlzIHVzZWQgZm9yIHRpdGxlY2FzaW5nLgorICog
RG8gbm90IG1vZGlmeSB0aGUgcmV0dXJuZWQgYnJlYWsgaXRlcmF0b3IuCisgKiBAcGFyYW0gY3Nt
IFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVybiB0aXRsZWNhc2luZyBicmVhayBp
dGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIGNvbnN0IFVCcmVha0l0
ZXJhdG9yICogVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDYXNl
TWFwICpjc20pOworCisvKioKKyAqIFNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2Vk
IGZvciB0aXRsZWNhc2luZy4KKyAqIFRoZSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdCByZWxlYXNl
cyBhIHByZXZpb3VzbHkgc2V0IGJyZWFrIGl0ZXJhdG9yCisgKiBhbmQgImFkb3B0cyIgdGhpcyBu
ZXcgb25lLCB0YWtpbmcgb3duZXJzaGlwIG9mIGl0LgorICogSXQgd2lsbCBiZSByZWxlYXNlZCBp
biBhIHN1YnNlcXVlbnQgY2FsbCB0byB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCkKKyAqIG9y
IHVjYXNlbWFwX2Nsb3NlKCkuCisgKgorICogQnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucyBhcmUg
bm90IHRocmVhZC1zYWZlLiBUaGVyZWZvcmUsIHRpdGxlY2FzaW5nCisgKiBmdW5jdGlvbnMgdXNl
IG5vbi1jb25zdCBVQ2FzZU1hcCBvYmplY3RzLiBJdCBpcyBub3QgcG9zc2libGUgdG8gdGl0bGVj
YXNlCisgKiBzdHJpbmdzIGNvbmN1cnJlbnRseSB1c2luZyB0aGUgc2FtZSBVQ2FzZU1hcC4KKyAq
CisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGl0ZXJU
b0Fkb3B0IEJyZWFrIGl0ZXJhdG9yIHRvIGJlIGFkb3B0ZWQgZm9yIHRpdGxlY2FzaW5nLgorICog
QHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29k
ZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEg
ZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF90
b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc3RhYmxlIElDVSAzLjgK
KyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3Io
VUNhc2VNYXAgKmNzbSwgVUJyZWFrSXRlcmF0b3IgKml0ZXJUb0Fkb3B0LCBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKworLyoqCisgKiBUaXRsZWNhc2UgYSBVVEYtMTYgc3RyaW5nLiBUaGlzIGZ1
bmN0aW9uIGlzIGFsbW9zdCBhIGR1cGxpY2F0ZSBvZiB1X3N0clRvVGl0bGUoKSwKKyAqIGV4Y2Vw
dCB0aGF0IGl0IHRha2VzIHVjYXNlbWFwX3NldE9wdGlvbnMoKSBpbnRvIGFjY291bnQgYW5kIGhh
cyBwZXJmb3JtYW5jZQorICogYWR2YW50YWdlcyBmcm9tIGJlaW5nIGFibGUgdG8gdXNlIGEgVUNh
c2VNYXAgb2JqZWN0IGZvciBtdWx0aXBsZSBjYXNlIG1hcHBpbmcKKyAqIG9wZXJhdGlvbnMsIHNh
dmluZyBzZXR1cCB0aW1lLgorICoKKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBj
b250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRpdGxlY2FzaW5nIHVzZXMgYSBicmVhayBpdGVyYXRvciB0
byBmaW5kIHRoZSBmaXJzdCBjaGFyYWN0ZXJzIG9mIHdvcmRzCisgKiB0aGF0IGFyZSB0byBiZSB0
aXRsZWNhc2VkLiBJdCB0aXRsZWNhc2VzIHRob3NlIGNoYXJhY3RlcnMgYW5kIGxvd2VyY2FzZXMK
KyAqIGFsbCBvdGhlcnMuIChUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHVjYXNlbWFwX3NldE9w
dGlvbnMoKS4pCisgKgorICogTm90ZTogVGhpcyBmdW5jdGlvbiB0YWtlcyBhIG5vbi1jb25zdCBV
Q2FzZU1hcCBwb2ludGVyIGJlY2F1c2UgaXQgd2lsbAorICogb3BlbiBhIGRlZmF1bHQgYnJlYWsg
aXRlcmF0b3IgaWYgbm8gYnJlYWsgaXRlcmF0b3Igd2FzIHNldCB5ZXQsCisgKiBhbmQgZWZmZWN0
aXZlbHkgY2FsbCB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCk7CisgKiBhbHNvIGJlY2F1c2Ug
dGhlIGJyZWFrIGl0ZXJhdG9yIGlzIHN0YXRlZnVsIGFuZCB3aWxsIGJlIG1vZGlmaWVkIGR1cmlu
ZworICogdGhlIGl0ZXJhdGlvbi4KKyAqCisgKiBUaGUgdGl0bGVjYXNlIGJyZWFrIGl0ZXJhdG9y
IGNhbiBiZSBwcm92aWRlZCB0byBjdXN0b21pemUgZm9yIGFyYml0cmFyeQorICogc3R5bGVzLCB1
c2luZyBydWxlcyBhbmQgZGljdGlvbmFyaWVzIGJleW9uZCB0aGUgc3RhbmRhcmQgaXRlcmF0b3Jz
LgorICogVGhlIHN0YW5kYXJkIHRpdGxlY2FzZSBpdGVyYXRvciBmb3IgdGhlIHJvb3QgbG9jYWxl
IGltcGxlbWVudHMgdGhlCisgKiBhbGdvcml0aG0gb2YgVW5pY29kZSBUUiAyMS4KKyAqCisgKiBU
aGlzIGZ1bmN0aW9uIHVzZXMgb25seSB0aGUgc2V0VVRleHQoKSwgZmlyc3QoKSwgbmV4dCgpIGFu
ZCBjbG9zZSgpIG1ldGhvZHMgb2YgdGhlCisgKiBwcm92aWRlZCBicmVhayBpdGVyYXRvci4KKyAq
CisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5h
bC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qg
bm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9i
amVjdC4gVGhpcyBwb2ludGVyIGlzIG5vbi1jb25zdCEKKyAqICAgICAgICAgICAgICAgICAgU2Vl
IHRoZSBub3RlIGFib3ZlIGZvciBkZXRhaWxzLgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZl
ciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRl
ZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAq
ICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZh
aWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51
bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVz
dCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0
aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkg
b2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBz
dHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0
cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0g
cEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVl
LAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUg
YmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSBy
ZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVy
ZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBk
ZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0clRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMu
OAorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdG9UaXRsZShVQ2Fz
ZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICBVQ2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2Fw
YWNpdHksCisgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyICpzcmMsIGludDMyX3Qgc3JjTGVu
Z3RoLAorICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlm
CisKKy8qKgorICogTG93ZXJjYXNlIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgor
ICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICog
VGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisg
KiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBv
dmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3Qu
CisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhl
IHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRo
ZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVu
dHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNp
dHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwg
dGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rp
b24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAg
ICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBw
YXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGgg
VGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBi
ZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBw
b2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNo
IG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisg
KiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwg
LSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBj
YXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVf
c3RyVG9Mb3dlcgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9F
WFBPUlQyCit1Y2FzZW1hcF91dGY4VG9Mb3dlcihjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAg
ICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAg
ICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogVXBwZXJj
YXNlIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICogQ2FzaW5nIGlzIGxvY2Fs
ZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGhlIHJlc3VsdCBtYXkgYmUg
bG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmlu
ZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBw
YXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gZGVzdCAg
ICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5V
TC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2Ug
ZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGlu
IGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhl
IGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAg
ICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVy
biB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3
cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhl
IG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUg
b3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4K
KyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9y
IGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRl
IGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5n
dGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEg
YnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3Jl
YXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9VcHBlcgorICogQHN0
YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91
dGY4VG9VcHBlcihjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICAgY2hh
ciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICBjb25z
dCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVy
cm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04K
KworLyoqCisgKiBUaXRsZWNhc2UgYSBVVEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxl
LWRlcGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaXRsZWNhc2luZyB1c2VzIGEg
YnJlYWsgaXRlcmF0b3IgdG8gZmluZCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiB3b3JkcworICog
dGhhdCBhcmUgdG8gYmUgdGl0bGVjYXNlZC4gSXQgdGl0bGVjYXNlcyB0aG9zZSBjaGFyYWN0ZXJz
IGFuZCBsb3dlcmNhc2VzCisgKiBhbGwgb3RoZXJzLiAoVGhpcyBjYW4gYmUgbW9kaWZpZWQgd2l0
aCB1Y2FzZW1hcF9zZXRPcHRpb25zKCkuKQorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gdGFr
ZXMgYSBub24tY29uc3QgVUNhc2VNYXAgcG9pbnRlciBiZWNhdXNlIGl0IHdpbGwKKyAqIG9wZW4g
YSBkZWZhdWx0IGJyZWFrIGl0ZXJhdG9yIGlmIG5vIGJyZWFrIGl0ZXJhdG9yIHdhcyBzZXQgeWV0
LAorICogYW5kIGVmZmVjdGl2ZWx5IGNhbGwgdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigpOwor
ICogYWxzbyBiZWNhdXNlIHRoZSBicmVhayBpdGVyYXRvciBpcyBzdGF0ZWZ1bCBhbmQgd2lsbCBi
ZSBtb2RpZmllZCBkdXJpbmcKKyAqIHRoZSBpdGVyYXRpb24uCisgKgorICogVGhlIHRpdGxlY2Fz
ZSBicmVhayBpdGVyYXRvciBjYW4gYmUgcHJvdmlkZWQgdG8gY3VzdG9taXplIGZvciBhcmJpdHJh
cnkKKyAqIHN0eWxlcywgdXNpbmcgcnVsZXMgYW5kIGRpY3Rpb25hcmllcyBiZXlvbmQgdGhlIHN0
YW5kYXJkIGl0ZXJhdG9ycy4KKyAqIFRoZSBzdGFuZGFyZCB0aXRsZWNhc2UgaXRlcmF0b3IgZm9y
IHRoZSByb290IGxvY2FsZSBpbXBsZW1lbnRzIHRoZQorICogYWxnb3JpdGhtIG9mIFVuaWNvZGUg
VFIgMjEuCisgKgorICogVGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHNldFVUZXh0KCksIGZp
cnN0KCksIG5leHQoKSBhbmQgY2xvc2UoKSBtZXRob2RzIG9mIHRoZQorICogcHJvdmlkZWQgYnJl
YWsgaXRlcmF0b3IuCisgKgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIg
dGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0
aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNh
c2VNYXAgc2VydmljZSBvYmplY3QuIFRoaXMgcG9pbnRlciBpcyBub24tY29uc3QhCisgKiAgICAg
ICAgICAgICAgICAgIFNlZSB0aGUgbm90ZSBhYm92ZSBmb3IgZGV0YWlscy4KKyAqIEBwYXJhbSBk
ZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwg
YmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBs
YXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmlu
ZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBv
ZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAg
ICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkg
cmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRo
b3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAg
ICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9m
IHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5h
dGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4g
ZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5k
aWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhl
IGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ug
b2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBi
ZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1RpdGxlCisg
KiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19C
UkVBS19BREpVU1RNRU5UCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJf
dCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhUb1RpdGxlKFVDYXNlTWFwICpjc20sCisgICAgICAg
ICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCisKKy8qKgorICog
Q2FzZS1mb2xkcyB0aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmluZy4KKyAqCisgKiBDYXNl
LWZvbGRpbmcgaXMgbG9jYWxlLWluZGVwZW5kZW50IGFuZCBub3QgY29udGV4dC1zZW5zaXRpdmUs
CisgKiBidXQgdGhlcmUgaXMgYW4gb3B0aW9uIGZvciB3aGV0aGVyIHRvIGluY2x1ZGUgb3IgZXhj
bHVkZSBtYXBwaW5ncyBmb3IgZG90dGVkIEkKKyAqIGFuZCBkb3RsZXNzIGkgdGhhdCBhcmUgbWFy
a2VkIHdpdGggJ1QnIGluIENhc2VGb2xkaW5nLnR4dC4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBi
ZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3Ry
aW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICog
QHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0
ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUg
TlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJn
ZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQg
aW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0
aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAg
ICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0
dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0
IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBU
aGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRo
ZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVk
LgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJy
b3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNh
dGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxl
bmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2Yg
YSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBn
cmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJGb2xkQ2FzZQorICog
QHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25zCisgKiBAc2VlIFVfRk9MRF9DQVNFX0RFRkFVTFQKKyAq
IEBzZWUgVV9GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKKyAqIEBzdGFibGUgSUNVIDMuOAor
ICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOEZvbGRDYXNlKGNv
bnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50
MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3Jj
LCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3VjaHJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmQ1YTk5MGY3YjdlZDNkNWJhY2YyZGE4NDcxZWY4ZmY5NDIyZjk5YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0ZXIuaApAQCAtMCwwICsxLDM4MSBA
QAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJu
YXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBB
bGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBVQ0hSSVRF
Ul9ICisjZGVmaW5lIFVDSFJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisj
aW5jbHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgorCisvKioKKyAqIFxmaWxlIAorICogXGJyaWVm
IEMrKyBBUEk6IFVDaGFyIENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVTUEFDRV9C
RUdJTgorCisvKioKKyAqIEEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ2hhcmFjdGVySXRlcmF0b3Ig
dGhhdCBpdGVyYXRlcyBvdmVyIHRoZQorICogY2hhcmFjdGVycyAoY29kZSB1bml0cyBvciBjb2Rl
IHBvaW50cykgaW4gYSBVQ2hhciBhcnJheS4KKyAqIEl0J3MgcG9zc2libGUgbm90IG9ubHkgdG8g
Y3JlYXRlIGFuCisgKiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgYW4gZW50aXJlIFVDaGFy
IGFycmF5LCBidXQgYWxzbyB0bworICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25s
eSBhIHN1YnJhbmdlIG9mIGEgVUNoYXIgYXJyYXkKKyAqIChpdGVyYXRvcnMgb3ZlciBkaWZmZXJl
bnQgc3VicmFuZ2VzIG9mIHRoZSBzYW1lIFVDaGFyIGFycmF5IGRvbid0CisgKiBjb21wYXJlIGVx
dWFsKS4KKyAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzZWUgRm9yd2FyZENoYXJhY3Rl
ckl0ZXJhdG9yCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIFVD
aGFyQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGlj
OgorICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJl
ZmVycmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRv
IDxjb2RlPmxlbmd0aC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBh
ZG9wdGVkICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBA
cGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIgYXJyYXkgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBA
cGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4
dFB0ciwgaW50MzJfdCBsZW5ndGgpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Ig
b3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUg
aXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNvZGU+bGVuZ3RoLTE8L2NvZGU+LgorICAgKiB0ZXh0
IGlzIG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwg
bm90IGRlbGV0ZSBpdCkuCisgICAqIFRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVj
aWZpZWQgYnkgInBvc2l0aW9uIi4gSWYgInBvc2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAor
ICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRl
ZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRk
IG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQor
ICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRp
b24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9y
KGNvbnN0IFVDaGFyKiB0ZXh0UHRyLCBpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJh
dG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICog
VGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmVuZC0xPC9jb2RlPi4KKyAgICogdGV4
dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxs
IG5vdCBkZWxldGUgaXQpLgorICAgKiBUaGUgc3RhcnRpbmcKKyAgICogcG9zaXRpb24gaXMgc3Bl
Y2lmaWVkIGJ5ICJwb3NpdGlvbiIuIElmIGJlZ2luIGFuZCBlbmQgZG8gbm90CisgICAqIGZvcm0g
YSB2YWxpZCBpdGVyYXRpb24gcmFuZ2Ugb3IgInBvc2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxp
ZAorICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1
bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVy
YXRlZCBvdmVyCisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIgYXJy
YXkKKyAgICogQHBhcmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBvc2l0aW9uIG9mIHRoZSBpdGVy
YXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiB0
aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSBwb3NpdGlvbiAgICBUaGUgc3RhcnRpbmcg
cG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVu
Z3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGV4dEJlZ2luLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGV4dEVuZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogQ29weSBjb25zdHJ1Y3Rvci4g
IFRoZSBuZXcgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSByYW5nZQorICAgKiBvZiB0
aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRpYWwgcG9zaXRpb24gaXMgdGhl
CisgICAqIHNhbWUgYXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICogQHBhcmFtIHRo
YXQgVGhlIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhckNoYXJh
Y3Rlckl0ZXJhdG9yJiAgdGhhdCk7CisKKyAgLyoqCisgICAqIERlc3RydWN0b3IuCisgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB+VUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigp
OworCisgIC8qKgorICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgKnRoaXMgaXMgYWx0ZXJlZCB0
byBpdGVyYXRlIG92ZXIgdGhlIHNhbmUKKyAgICogcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFz
ICJ0aGF0IiwgYW5kIHJlZmVycyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgd2l0aGluIHRo
YXQgc3RyaW5nIGFzICJ0aGF0IiBkb2VzLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgb2JqZWN0IHRv
IGJlIGNvcGllZAorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdAorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImCisgIG9wZXJh
dG9yPShjb25zdCBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yJiAgICB0aGF0KTsKKworICAvKioKKyAg
ICogUmV0dXJucyB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJh
bmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1l
IGNoYXJhY3Rlci4KKyAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRv
ciB1c2VkIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgKiBAcmV0dXJuIHRydWUgaWYg
dGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNh
bWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgICAgb3BlcmF0b3I9
PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0OworCisgIC8qKgor
ICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgaXRlcmF0b3IuCisgICAqIEByZXR1
cm4gdGhlIGhhc2ggY29kZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFs
IGludDMyX3QgICAgICAgICBoYXNoQ29kZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogUmV0
dXJucyBhIG5ldyBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgc2FtZQor
ICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzIHRo
aXMgb25lLiAgVGhlCisgICAqIGNhbGxlciBtdXN0IGRlbGV0ZSB0aGUgbmV3IGl0ZXJhdG9yLgor
ICAgKiBAcmV0dXJuIHRoZSBDaGFyYWN0ZXJJdGVyYXRvciBuZXdseSBjcmVhdGVkCisgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUo
dm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRv
IHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJl
dHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4g
aXRlcmF0aW9uIHdpdGggbmV4dCgpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQg
aW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2
aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3Qodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0
ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1vdmVzIHRoZSBwb3Np
dGlvbgorICAgKiB0byB0aGUgc2Vjb25kIGNvZGUgdW5pdC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2
ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dFBv
c3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRp
b24gcmFuZ2UKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAg
ICAgICAgZmlyc3RQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRv
ciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9u
IHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwKKyAgICogVGhpcyBjYW4gYmUgdXNl
ZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzIoKS4KKyAgICogTm90ZSB0aGF0IGFu
IGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKSwgYmVnaW5uaW5nIHdpdGgsCisgICAqIGUu
Zy4sIHNldFRvU3RhcnQoKSBvciBmaXJzdFBvc3RJbmMoKSwgaXMgbW9yZSBlZmZpY2llbnQuCisg
ICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZQor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJz
dDMyKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0
aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5z
IHRoYXQgY29kZSBwb2ludCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgKiB0byB0aGUgc2Vj
b25kIGNvZGUgcG9pbnQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisg
ICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICogQHJl
dHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyUG9z
dEluYyh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8g
dGhlIGxhc3QgY29kZSB1bml0IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1
cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0
ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkuCisgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSB1bml0
IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
dmlydHVhbCBVQ2hhciAgICAgICAgIGxhc3Qodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0
ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2Fu
IGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMzMigpLgorICAgKiBA
cmV0dXJuIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMyKHZv
aWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgInBv
c2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhl
IGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAqIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisg
ICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LXN0b3JhZ2Ug
b2JqZWN0CisgICAqIEByZXR1cm4gdGhlIGNvZGUgdW5pdAorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBzZXRJbmRleChpbnQzMl90IHBvc2l0aW9u
KTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lu
bmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgKiB0aGF0IGNvbnRhaW5zIHRoZSAicG9zaXRpb24i
LXRoIGNvZGUgdW5pdAorICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0
b3IgcmVmZXJzIHRvLCBhbmQKKyAgICogcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisgICAqIFRo
ZSBjdXJyZW50IHBvc2l0aW9uIGlzIGFkanVzdGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNv
ZGUgcG9pbnQKKyAgICogKGl0cyBmaXJzdCBjb2RlIHVuaXQpLgorICAgKiBAcGFyYW0gcG9zaXRp
b24gdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgKiBAcmV0
dXJuIHRoZSBjb2RlIHVuaXQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFs
IFVDaGFyMzIgICAgICAgc2V0SW5kZXgzMihpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAg
ICogUmV0dXJucyB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRv
LgorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZl
cnMgdG8uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAg
ICAgIGN1cnJlbnQodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgdGhlIGNvZGUg
cG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEByZXR1cm4gdGhl
IGNvZGUgcG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGN1cnJlbnQzMih2b2lk
KSBjb25zdDsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5kIHJldHVy
bnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgdW5p
dCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0KHZvaWQpOworCisgIC8qKgorICAgKiBHZXRzIHRo
ZSBjdXJyZW50IGNvZGUgdW5pdCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4
dCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiAodG93YXJkIGVu
ZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1
cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHRQ
b3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBv
aW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5k
IHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29k
ZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIE5vdGUgdGhhdCBpdGVyYXRp
b24gd2l0aCAicHJlLWluY3JlbWVudCIgc2VtYW50aWNzIGlzIGxlc3MKKyAgICogZWZmaWNpZW50
IHRoYW4gaXRlcmF0aW9uIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1hbnRpY3MKKyAgICogdGhh
dCBpcyBwcm92aWRlZCBieSBuZXh0MzJQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIG5leHQg
Y29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzIodm9pZCk7CisKKyAgLyoqCisg
ICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSBwb2ludCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNl
cyB0byB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAg
ICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgKiBubyBtb3JlIGNvZGUg
cG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50
IHBvaW50LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAg
ICAgICBuZXh0MzJQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlm
IHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYXQgb3Ig
YWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICog
VGhpcyBpcyB1c2VkIHdpdGggbmV4dFBvc3RJbmMoKSBvciBuZXh0MzJQb3N0SW5jKCkgaW4gZm9y
d2FyZAorICAgKiBpdGVyYXRpb24uCisgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5v
IG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBhdCBvciBhZnRlciB0aGUgY3Vy
cmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc05leHQoKTsKKworICAvKioKKyAg
ICogQWR2YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJh
bmdlICh0b3dhcmQKKyAgICogc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVu
aXQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0
dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0
ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVD
aGFyICAgICAgICAgcHJldmlvdXModm9pZCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRo
ZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAg
KiBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBh
cmUgbm8gbW9yZQorICAgKiBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAg
ICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBw
cmV2aW91czMyKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFy
ZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYmVmb3JlIHRoZSBjdXJy
ZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIFRoaXMgaXMgdXNlZCB3
aXRoIHByZXZpb3VzKCkgb3IgcHJldmlvdXMzMigpIGluIGJhY2t3YXJkCisgICAqIGl0ZXJhdGlv
bi4KKyAgICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9y
IGNvZGUgcG9pbnRzCisgICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJv
b2wgICAgICAgIGhhc1ByZXZpb3VzKCk7CisKKyAgLyoqCisgICAqIE1vdmVzIHRoZSBjdXJyZW50
IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAqIGl0ZXJh
dGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgor
ICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSB1bml0cyBm
b3J3YXJkCisgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdh
dGl2ZSBkZWx0YS4KKyAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBv
cmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICogYSBuZWdhdGl2ZSBk
ZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRp
b24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlv
bgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1v
dmUoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pOworCisgIC8qKgorICAgKiBNb3ZlcyB0
aGUgY3VycmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQor
ICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9u
IGl0c2VsZi4KKyAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNv
ZGUgcG9pbnRzIGZvcndhcmQKKyAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0
aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJl
bGF0aXZlIHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgKiBh
IG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdp
biBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICogQHJldHVybiB0aGUg
bmV3IHBvc2l0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBpbnQz
Ml90ICAgICAgbW92ZTMyKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKTsKKworICAvKioK
KyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIGEgbmV3IHJhbmdlIG9mIHRl
eHQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVUNo
YXIqIG5ld1RleHQsIGludDMyX3QgbmV3VGV4dExlbmd0aCk7CisKKyAgLyoqCisgICAqIENvcGll
cyB0aGUgVUNoYXIgYXJyYXkgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcK
KyAgICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICBFdmVuIGlmIHRoaXMgaXRlcmF0b3IgaXRl
cmF0ZXMgYWNyb3NzCisgICAqIG9ubHkgYSBwYXJ0IG9mIHRoaXMgc3RyaW5nLCB0aGUgd2hvbGUg
c3RyaW5nIGlzIGNvcGllZC4KKyAgICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2Yg
dGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0cmluZyYgcmVzdWx0KTsK
KworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MgKG5vdCByZWFs
bHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MKKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBzdGF0aWMgVUNsYXNzSUQgICAgICAgICBVX0VYUE9S
VDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3Mg
SUQgZm9yIHRoaXMgb2JqZWN0IChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNs
YXNzIElEIGZvciB0aGlzIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2
aXJ0dWFsIFVDbGFzc0lEICAgICAgICBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKwor
cHJvdGVjdGVkOgorICAvKioKKyAgICogUHJvdGVjdGVkIGNvbnN0cnVjdG9yCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigpOworICAvKioKKyAg
ICogUHJvdGVjdGVkIG1lbWJlciB0ZXh0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
Y29uc3QgVUNoYXIqICAgICAgICAgICAgdGV4dDsKKworfTsKKworVV9OQU1FU1BBQ0VfRU5ECisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaCBiL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWU0NjYzMGQ1Mzk4ZDgyNzM4
ZDFkNjFmZmM0ZDJjOTE0ZThjNjhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3Uv
dW5pY29kZS91ZGF0YS5oCkBAIC0wLDAgKzEsNDMwIEBACisvKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5l
c3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVkYXRhLmgK
KyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQor
KiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0MjUKKyogICBjcmVh
dGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBfX1VEQVRBX0hfXworI2Rl
ZmluZSBfX1VEQVRBX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRl
ICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCitVX0NERUNMX0JFR0lOCisKKy8qKgorICogXGZp
bGUKKyAqIFxicmllZiBDIEFQSTogRGF0YSBsb2FkaW5nIGludGVyZmFjZQorICoKKyAqIDxoMj5J
bmZvcm1hdGlvbiBhYm91dCBkYXRhIGxvYWRpbmcgaW50ZXJmYWNlPC9oMj4KKyAqCisgKiBUaGlz
IEFQSSBpcyB1c2VkIHRvIGZpbmQgYW5kIGVmZmljaWVudGx5IGxvYWQgZGF0YSBmb3IgSUNVIGFu
ZCBhcHBsaWNhdGlvbnMKKyAqIHVzaW5nIElDVS4gSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50
ZXJmYWNlIHRoYXQgc3BlY2lmaWVzIGEgZGF0YSB0eXBlIGFuZAorICogbmFtZSB0byBmaW5kIGFu
ZCBsb2FkIHRoZSBkYXRhLiBOb3JtYWxseSB0aGlzIEFQSSBpcyB1c2VkIGJ5IG90aGVyIElDVSBB
UElzCisgKiB0byBsb2FkIHJlcXVpcmVkIGRhdGEgb3V0IG9mIHRoZSBJQ1UgZGF0YSBsaWJyYXJ5
LCBidXQgaXQgY2FuIGJlIHVzZWQgdG8KKyAqIGxvYWQgZGF0YSBvdXQgb2Ygb3RoZXIgcGxhY2Vz
LgorICoKKyAqIFNlZSB0aGUgVXNlciBHdWlkZSBEYXRhIE1hbmFnZW1lbnQgY2hhcHRlci4KKyAq
LworIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisvKioKKyAqIENoYXJhY3RlciB1c2Vk
IHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAorICogQGludGVybmFs
IElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SICctJworCisvKioKKyAqIFN0
cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAorICog
QGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SX1NUUklORyAi
LSIKKworLyoqCisgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYXJ0cyBvZiBlbnRyeSBu
YW1lcworICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfRU5UUllfU0VQ
X0NIQVIgJy8nCisKKy8qKgorICogU3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgcGFydHMgb2YgZW50
cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX0VOVFJZ
X1NFUF9TVFJJTkcgIi8iCisKKy8qKgorICogQWxpYXMgZm9yIHN0YW5kYXJkIElDVSBkYXRhIAor
ICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX0lDVURBVEFfQUxJQVMgIklDVURB
VEEiCisKKyNlbmRpZiAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKy8qKgorICogVURhdGFJ
bmZvIGNvbnRhaW5zIHRoZSBwcm9wZXJ0aWVzIGFib3V0IHRoZSByZXF1ZXN0ZWQgZGF0YS4KKyAq
IFRoaXMgaXMgbWV0YSBkYXRhLgorICoKKyAqIDxwPlRoaXMgc3RydWN0dXJlIG1heSBncm93IGlu
IHRoZSBmdXR1cmUsIGluZGljYXRlZCBieSB0aGUKKyAqIDxjb2RlPnNpemU8L2NvZGU+IGZpZWxk
LjwvcD4KKyAqCisgKiA8cD5JQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5k
IHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogVGhlIFVEYXRhSW5mbyBzdHJ1Y3QgYmVnaW5zIDQg
Ynl0ZXMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIHRoZSBkYXRhIGl0ZW0sCisgKiBzbyBpdCBpcyA0LWFs
aWduZWQuCisgKgorICogPHA+VGhlIHBsYXRmb3JtIGRhdGEgcHJvcGVydHkgZmllbGRzIGhlbHAg
ZGV0ZXJtaW5lIGlmIGEgZGF0YQorICogZmlsZSBjYW4gYmUgZWZmaWNpZW50bHkgdXNlZCBvbiBh
IGdpdmVuIG1hY2hpbmUuCisgKiBUaGUgcGFydGljdWxhciBmaWVsZHMgYXJlIG9mIGltcG9ydGFu
Y2Ugb25seSBpZiB0aGUgZGF0YQorICogaXMgYWZmZWN0ZWQgYnkgdGhlIHByb3BlcnRpZXMgLSBp
ZiB0aGVyZSBpcyBpbnRlZ2VyIGRhdGEKKyAqIHdpdGggd29yZCBzaXplcyA+IDEgYnl0ZSwgY2hh
ciogdGV4dCwgb3IgVUNoYXIqIHRleHQuPC9wPgorICoKKyAqIDxwPlRoZSBpbXBsZW1lbnRhdGlv
biBmb3IgdGhlIDxjb2RlPnVkYXRhX29wZW5bQ2hvaWNlXSgpPC9jb2RlPgorICogZnVuY3Rpb25z
IG1heSByZWplY3QgZGF0YSBiYXNlZCBvbiB0aGUgdmFsdWUgaW4gPGNvZGU+aXNCaWdFbmRpYW48
L2NvZGU+LgorICogTm8gb3RoZXIgZmllbGQgaXMgdXNlZCBieSB0aGUgPGNvZGU+dWRhdGE8L2Nv
ZGU+IEFQSSBpbXBsZW1lbnRhdGlvbi48L3A+CisgKgorICogPHA+VGhlIDxjb2RlPmRhdGFGb3Jt
YXQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIGlkZW50aWZ5CisgKiB0aGUga2luZCBvZiBkYXRhLCBl
LmcuIGEgY29udmVydGVyIHRhYmxlLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+Zm9ybWF0VmVy
c2lvbjwvY29kZT4gZmllbGQgc2hvdWxkIGJlIHVzZWQgdG8KKyAqIG1ha2Ugc3VyZSB0aGF0IHRo
ZSBmb3JtYXQgY2FuIGJlIGludGVycHJldGVkLgorICogSXQgbWF5IGJlIGEgZ29vZCBpZGVhIHRv
IGNoZWNrIG9ubHkgZm9yIHRoZSBvbmUgb3IgdHdvIGhpZ2hlc3QKKyAqIG9mIHRoZSB2ZXJzaW9u
IGVsZW1lbnRzIHRvIGFsbG93IHRoZSBkYXRhIG1lbW9yeSB0bworICogZ2V0IG1vcmUgb3Igc29t
ZXdoYXQgcmVhcnJhbmdlZCBjb250ZW50cywgZm9yIGFzIGxvbmcKKyAqIGFzIHRoZSB1c2luZyBj
b2RlIGNhbiBzdGlsbCBpbnRlcnByZXQgdGhlIG9sZGVyIGNvbnRlbnRzLjwvcD4KKyAqCisgKiA8
cD5UaGUgPGNvZGU+ZGF0YVZlcnNpb248L2NvZGU+IGZpZWxkIGlzIGludGVuZGVkIHRvIGJlIGEK
KyAqIGNvbW1vbiBwbGFjZSB0byBzdG9yZSB0aGUgc291cmNlIHZlcnNpb24gb2YgdGhlIGRhdGE7
CisgKiBmb3IgZGF0YSBmcm9tIHRoZSBVbmljb2RlIGNoYXJhY3RlciBkYXRhYmFzZSwgdGhpcyBj
b3VsZAorICogcmVmbGVjdCB0aGUgVW5pY29kZSB2ZXJzaW9uLjwvcD4KKyAqCisgKiBAc3RhYmxl
IElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIC8qKiBzaXplb2YoVURhdGFJbmZv
KQorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50MTZfdCBzaXplOworCisgICAg
LyoqIHVudXNlZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWlu
dDE2X3QgcmVzZXJ2ZWRXb3JkOworCisgICAgLyogcGxhdGZvcm0gZGF0YSBwcm9wZXJ0aWVzICov
CisgICAgLyoqIDAgZm9yIGxpdHRsZS1lbmRpYW4gbWFjaGluZSwgMSBmb3IgYmlnLWVuZGlhbgor
ICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50OF90IGlzQmlnRW5kaWFuOworCisg
ICAgLyoqIHNlZSBVX0NIQVJTRVRfRkFNSUxZIHZhbHVlcyBpbiB1dHlwZXMuaCAKKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGNoYXJzZXRGYW1pbHk7CisKKyAgICAvKiog
c2l6ZW9mKFVDaGFyKSwgb25lIG9mIHsgMSwgMiwgNCB9IAorICAgICAqICBAc3RhYmxlIElDVSAy
LjAqLworICAgIHVpbnQ4X3Qgc2l6ZW9mVUNoYXI7CisKKyAgICAvKiogdW51c2VkLCBzZXQgdG8g
MCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHJlc2VydmVkQnl0ZTsK
KworICAgIC8qKiBkYXRhIGZvcm1hdCBpZGVudGlmaWVyIAorICAgICAqICBAc3RhYmxlIElDVSAy
LjAqLworICAgIHVpbnQ4X3QgZGF0YUZvcm1hdFs0XTsKKworICAgIC8qKiB2ZXJzaW9uczogWzBd
IG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAqICBAc3RhYmxlIElD
VSAyLjAqLworICAgIHVpbnQ4X3QgZm9ybWF0VmVyc2lvbls0XTsKKworICAgIC8qKiB2ZXJzaW9u
czogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAqICBAc3Rh
YmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YVZlcnNpb25bNF07Cit9IFVEYXRhSW5mbzsK
KworLyogQVBJIGZvciByZWFkaW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKioKKyAqIEZvcndhcmQgZGVjbGFyYXRpb24g
b2YgdGhlIGRhdGEgbWVtb3J5IHR5cGUuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRl
ZiBzdHJ1Y3QgVURhdGFNZW1vcnkgVURhdGFNZW1vcnk7CisKKy8qKgorICogQ2FsbGJhY2sgZnVu
Y3Rpb24gZm9yIHVkYXRhX29wZW5DaG9pY2UoKS4KKyAqIEBwYXJhbSBjb250ZXh0IHBhcmFtZXRl
ciBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICogQHBhcmFt
IHR5cGUgVGhlIHR5cGUgb2YgdGhlIGRhdGEgYXMgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3Bl
bkNob2ljZSgpPC9jb2RlPi4KKyAqICAgICAgICAgICAgIEl0IG1heSBiZSA8Y29kZT5OVUxMPC9j
b2RlPi4KKyAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBpbnRv
IDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiBAcGFyYW0gcEluZm8gQSBwb2lu
dGVyIHRvIHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+IHN0cnVjdHVyZQorICogICAgICAgICAg
ICAgIG9mIGRhdGEgdGhhdCBoYXMgYmVlbiBsb2FkZWQgYW5kIHdpbGwgYmUgcmV0dXJuZWQKKyAq
ICAgICAgICAgICAgICBieSA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+IGlmIHRoaXMg
ZnVuY3Rpb24KKyAqICAgICAgICAgICAgICByZXR1cm5zIDxjb2RlPlRSVUU8L2NvZGU+LgorICog
QHJldHVybiBUUlVFIGlmIHRoZSBjdXJyZW50IGRhdGEgbWVtb3J5IGlzIGFjY2VwdGFibGUKKyAq
IEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIFVCb29sIFVfQ0FMTENPTlYKK1VEYXRhTWVt
b3J5SXNBY2NlcHRhYmxlKHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgVURhdGFJbmZvICpwSW5mbyk7CisKKworLyoqCisgKiBDb252ZW5pZW5jZSBmdW5j
dGlvbi4KKyAqIFRoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgYXMgPGNvZGU+dWRhdGFfb3Bl
bkNob2ljZTwvY29kZT4KKyAqIGV4Y2VwdCB0aGF0IGFueSBkYXRhIHRoYXQgbWF0Y2hlcyB0aGUg
dHlwZSBhbmQgbmFtZQorICogaXMgYXNzdW1lZCB0byBiZSBhY2NlcHRhYmxlLgorICogQHBhcmFt
IHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFzZW5hbWUgZm9yIHRo
ZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0u
CisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRhdGEuCisgKiBAcGFy
YW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxv
YWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBidW5kbGVzIGFyZSBs
b2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVyc2lvbiB0YWJsZXMg
d2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwv
Y29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0
aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIEFuIElDVSBVRXJyb3JD
b2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcmV0
dXJuIEEgcG9pbnRlciAoaGFuZGxlKSB0byBhIGRhdGEgbWVtb3J5IG9iamVjdCwgb3IgPGNvZGU+
TlVMTDwvY29kZT4KKyAqICAgICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzLiBDYWxsIDxjb2RlPnVk
YXRhX2dldE1lbW9yeSgpPC9jb2RlPgorICogICAgICAgICB0byBnZXQgYSBwb2ludGVyIHRvIHRo
ZSBhY3R1YWwgZGF0YS4KKyAqCisgKiBAc2VlIHVkYXRhX29wZW5DaG9pY2UKKyAqIEBzdGFibGUg
SUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRhdGFfb3Bl
bihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAor
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBEYXRhIGxvYWRp
bmcgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZmluZCBhbmQgbG9hZCBl
ZmZpY2llbnRseSBkYXRhIGZvcgorICogSUNVIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgSUNVLgor
ICogSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgYWxsb3dzIHRvIHNwZWNp
ZnkgYSBkYXRhCisgKiB0eXBlIGFuZCBuYW1lIHRvIGZpbmQgYW5kIGxvYWQgdGhlIGRhdGEuCisg
KgorICogPHA+VGhlIGltcGxlbWVudGF0aW9uIGRlcGVuZHMgb24gcGxhdGZvcm0gcHJvcGVydGll
cyBhbmQgdXNlciBwcmVmZXJlbmNlcworICogYW5kIG1heSBpbnZvbHZlIGxvYWRpbmcgc2hhcmVk
IGxpYnJhcmllcyAoRExMcyksIG1hcHBpbmcKKyAqIGZpbGVzIGludG8gbWVtb3J5LCBvciBmb3Bl
bigpL2ZyZWFkKCkgZmlsZXMuCisgKiBJdCBtYXkgYWxzbyBpbnZvbHZlIHVzaW5nIHN0YXRpYyBt
ZW1vcnkgb3IgZGF0YWJhc2UgcXVlcmllcyBldGMuCisgKiBTZXZlcmFsIG9yIGFsbCBkYXRhIGl0
ZW1zIG1heSBiZSBjb21iaW5lZCBpbnRvIG9uZSBlbnRpdHkKKyAqIChETEwsIG1lbW9yeS1tYXBw
YWJsZSBmaWxlKS48L3A+CisgKgorICogPHA+VGhlIGRhdGEgaXMgYWx3YXlzIHByZWNlZGVkIGJ5
IGEgaGVhZGVyIHRoYXQgaW5jbHVkZXMKKyAqIGEgPGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1
Y3R1cmUuCisgKiBUaGUgY2FsbGVyJ3MgPGNvZGU+aXNBY2NlcHRhYmxlKCk8L2NvZGU+IGZ1bmN0
aW9uIGlzIGNhbGxlZCB0byBtYWtlCisgKiBzdXJlIHRoYXQgdGhlIGRhdGEgaXMgdXNlZnVsLiBJ
dCBtYXkgYmUgY2FsbGVkIHNldmVyYWwgdGltZXMgaWYgaXQKKyAqIHJlamVjdHMgdGhlIGRhdGEg
YW5kIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgbG9jYXRpb24gd2l0aCBkYXRhCisgKiBtYXRjaGlu
ZyB0aGUgdHlwZSBhbmQgbmFtZS48L3A+CisgKgorICogPHA+SWYgPGNvZGU+cGF0aD09TlVMTDwv
Y29kZT4sIHRoZW4gSUNVIGRhdGEgaXMgbG9hZGVkLgorICogT3RoZXJ3aXNlLCBpdCBpcyBzZXBh
cmF0ZWQgaW50byBhIGJhc2VuYW1lIGFuZCBhIGJhc2VuYW1lLWxlc3MgZGlyZWN0b3J5IHN0cmlu
Zy4KKyAqIFRoZSBiYXNlbmFtZSBpcyB1c2VkIGFzIHRoZSBkYXRhIHBhY2thZ2UgbmFtZSwgYW5k
IHRoZSBkaXJlY3RvcnkgaXMKKyAqIGxvZ2ljYWxseSBwcmVwZW5kZWQgdG8gdGhlIElDVSBkYXRh
IGRpcmVjdG9yeSBzdHJpbmcuPC9wPgorICoKKyAqIDxwPkZvciBkZXRhaWxzIGFib3V0IElDVSBk
YXRhIGxvYWRpbmcgc2VlIHRoZSBVc2VyIEd1aWRlCisgKiBEYXRhIE1hbmFnZW1lbnQgY2hhcHRl
ci4gKGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL2ljdWRhdGEuaHRtbCk8L3A+Cisg
KgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFz
ZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUg
ZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRh
dGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBk
YXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBi
dW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVy
c2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUg
PGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0
IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBpc0FjY2VwdGFibGUg
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRoYXQgbG9hZGVkIGRhdGEKKyAqICAg
ICAgICAgICAgICAgICAgICAgaXMgdXNlZnVsIGZvciB0aGUgY2xpZW50IGNvZGUuIElmIGl0IHJl
dHVybnMgRkFMU0UKKyAqICAgICAgICAgICAgICAgICAgICAgZm9yIGFsbCBkYXRhIGl0ZW1zLCB0
aGVuIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4KKyAqICAgICAgICAgICAgICAgICAg
ICAgd2lsbCByZXR1cm4gd2l0aCBhbiBlcnJvci4KKyAqIEBwYXJhbSBjb250ZXh0IEFyYml0cmFy
eSBwYXJhbWV0ZXIgdG8gYmUgcGFzc2VkIGludG8gaXNBY2NlcHRhYmxlLgorICogQHBhcmFtIHBF
cnJvckNvZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJdCBtdXN0IG5vdCBiZSA8Y29k
ZT5OVUxMPC9jb2RlPi4KKyAqIEByZXR1cm4gQSBwb2ludGVyIChoYW5kbGUpIHRvIGEgZGF0YSBt
ZW1vcnkgb2JqZWN0LCBvciA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAgICBpZiBhbiBlcnJv
ciBvY2N1cnMuIENhbGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+CisgKiAgICAgICAg
IHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhLgorICogQHN0YWJsZSBJQ1UgMi4w
CisgKi8KK1VfU1RBQkxFIFVEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1ZGF0YV9vcGVuQ2hvaWNl
KGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisg
ICAgICAgICAgICAgICAgIFVEYXRhTWVtb3J5SXNBY2NlcHRhYmxlICppc0FjY2VwdGFibGUsIHZv
aWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwor
CisvKioKKyAqIENsb3NlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoaXMgZnVuY3Rpb24gbXVzdCBi
ZSBjYWxsZWQgdG8gYWxsb3cgdGhlIHN5c3RlbSB0bworICogcmVsZWFzZSByZXNvdXJjZXMgYXNz
b2NpYXRlZCB3aXRoIHRoaXMgZGF0YSBtZW1vcnkuCisgKiBAcGFyYW0gcERhdGEgVGhlIHBvaW50
ZXIgdG8gZGF0YSBtZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFC
TEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2Nsb3NlKFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKyNp
ZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFxj
bGFzcyBMb2NhbFVEYXRhTWVtb3J5UG9pbnRlcgorICogIlNtYXJ0IHBvaW50ZXIiIGNsYXNzLCBj
bG9zZXMgYSBVRGF0YU1lbW9yeSB2aWEgdWRhdGFfY2xvc2UoKS4KKyAqIEZvciBtb3N0IG1ldGhv
ZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKgorICogQHNlZSBMb2Nh
bFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0YWJsZSBJQ1UgNC40Cisg
Ki8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVEYXRhTWVtb3J5UG9pbnRlciwg
VURhdGFNZW1vcnksIHVkYXRhX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZgor
CisvKioKKyAqIEdldCB0aGUgcG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEgaW5zaWRlIHRoZSBk
YXRhIG1lbW9yeS4KKyAqIFRoZSBkYXRhIGlzIHJlYWQtb25seS4KKyAqCisgKiBJQ1UgZGF0YSBt
dXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICoK
KyAqIEBwYXJhbSBwRGF0YSBUaGUgcG9pbnRlciB0byBkYXRhIG1lbW9yeSBvYmplY3QKKyAqIEBz
dGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBjb25zdCB2b2lkICogVV9FWFBPUlQyCit1ZGF0
YV9nZXRNZW1vcnkoVURhdGFNZW1vcnkgKnBEYXRhKTsKKworLyoqCisgKiBHZXQgdGhlIGluZm9y
bWF0aW9uIGZyb20gdGhlIGRhdGEgbWVtb3J5IGhlYWRlci4KKyAqIFRoaXMgYWxsb3dzIHRvIGdl
dCBhY2Nlc3MgdG8gdGhlIGhlYWRlciBjb250YWluaW5nCisgKiBwbGF0Zm9ybSBkYXRhIHByb3Bl
cnRpZXMgZXRjLiB3aGljaCBpcyBub3QgcGFydCBvZgorICogdGhlIGRhdGEgaXRzZWxmIGFuZCBj
YW4gdGhlcmVmb3JlIG5vdCBiZSBhY2Nlc3NlZAorICogdmlhIHRoZSBwb2ludGVyIHRoYXQgPGNv
ZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+IHJldHVybnMuCisgKgorICogQHBhcmFtIHBEYXRh
IHBvaW50ZXIgdG8gdGhlIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHBhcmFtIHBJbmZvIHBvaW50
ZXIgdG8gYSBVRGF0YUluZm8gb2JqZWN0OworICogICAgICAgICAgICAgIGl0cyA8Y29kZT5zaXpl
PC9jb2RlPiBmaWVsZCBtdXN0IGJlIHNldCBjb3JyZWN0bHksCisgKiAgICAgICAgICAgICAgdHlw
aWNhbGx5IHRvIDxjb2RlPnNpemVvZihVRGF0YUluZm8pPC9jb2RlPi4KKyAqCisgKiA8Y29kZT4q
cEluZm88L2NvZGU+IHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIFVEYXRhSW5mbyBzdHJ1Y3R1cmUK
KyAqIGluIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QuIElmIHRoaXMgc3RydWN0dXJlIGlzIHNtYWxs
ZXIgdGhhbgorICogPGNvZGU+cEluZm8tPnNpemU8L2NvZGU+LCB0aGVuIHRoZSA8Y29kZT5zaXpl
PC9jb2RlPiB3aWxsIGJlCisgKiBhZGp1c3RlZCBhbmQgb25seSBwYXJ0IG9mIHRoZSBzdHJ1Y3R1
cmUgd2lsbCBiZSBmaWxsZWQuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgdm9p
ZCBVX0VYUE9SVDIKK3VkYXRhX2dldEluZm8oVURhdGFNZW1vcnkgKnBEYXRhLCBVRGF0YUluZm8g
KnBJbmZvKTsKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNV
IGRhdGEgbG9hZGluZyBwcm9jZXNzIGFuZAorICogYWxsb3dzIHlvdSB0byBmb3JjZSBJQ1UncyBz
eXN0ZW0gZGF0YSB0byBjb21lIG91dCBvZiBhIHVzZXItc3BlY2lmaWVkCisgKiBhcmVhIGluIG1l
bW9yeS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNo
b3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qu
b3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBpcyB0aGF0IG9mIHRo
ZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgYXMgaXMKKyAqIGdlbmVyYXRlZCBieSB0aGUgcGtnZGF0
YSB0b29sIHdpdGggbW9kZT1jb21tb24gb3IgbW9kZT1kbGwuCisgKiBZb3UgY2FuIHJlYWQgaW4g
YSB3aG9sZSBjb21tb24gbW9kZSBmaWxlIGFuZCBwYXNzIHRoZSBhZGRyZXNzIHRvIHRoZSBzdGFy
dCBvZiB0aGUKKyAqIGRhdGEsIG9yICh3aXRoIHRoZSBhcHByb3ByaWF0ZSBsaW5rIG9wdGlvbnMp
IHBhc3MgaW4gdGhlIHBvaW50ZXIgdG8KKyAqIHRoZSBkYXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVk
IGZyb20gYSBkbGwgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0sCisgKiBhcyBzaG93biBpbiB0aGlz
IGNvZGU6CisgKgorICogICAgICAgZXh0ZXJuIGNvbnN0IGNoYXIgVV9JTVBPUlQgVV9JQ1VEQVRB
X0VOVFJZX1BPSU5UIFtdOworICogICAgICAgIC8vIFVfSUNVREFUQV9FTlRSWV9QT0lOVCBpcyBz
YW1lIGFzIGVudHJ5IHBvaW50IHNwZWNpZmllZCB0byBwa2dkYXRhIHRvb2wKKyAqICAgICAgIFVF
cnJvckNvZGUgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAqCisgKiAgICAgICB1ZGF0YV9zZXRD
b21tb25EYXRhKCZVX0lDVURBVEFfRU5UUllfUE9JTlQsICZzdGF0dXMpOworICoKKyAqIEl0IGlz
IGltcG9ydGFudCB0aGF0IHRoZSBkZWNsYXJhdGlvbiBiZSBhcyBhYm92ZS4gVGhlIGVudHJ5IHBv
aW50CisgKiBtdXN0IG5vdCBiZSBkZWNsYXJlZCBhcyBhbiBleHRlcm4gdm9pZCouCisgKgorICog
U3RhcnRpbmcgd2l0aCBJQ1UgNC40LCBpdCBpcyBwb3NzaWJsZSB0byBzZXQgc2V2ZXJhbCBkYXRh
IHBhY2thZ2VzLAorICogb25lIHBlciBjYWxsIHRvIHRoaXMgZnVuY3Rpb24uCisgKiB1ZGF0YV9v
cGVuKCkgd2lsbCBsb29rIGZvciBkYXRhIGluIHRoZSBtdWx0aXBsZSBkYXRhIHBhY2thZ2VzIGlu
IHRoZSBvcmRlcgorICogaW4gd2hpY2ggdGhleSB3ZXJlIHNldC4KKyAqIFRoZSBwb3NpdGlvbiBv
ZiB0aGUgbGlua2VkLWluIG9yIGRlZmF1bHQtbmFtZSBJQ1UgLmRhdGEgcGFja2FnZSBpbiB0aGUK
KyAqIHNlYXJjaCBsaXN0IGRlcGVuZHMgb24gd2hlbiB0aGUgZmlyc3QgZGF0YSBpdGVtIGlzIGxv
YWRlZCB0aGF0IGlzIG5vdCBjb250YWluZWQKKyAqIGluIHRoZSBhbHJlYWR5IGV4cGxpY2l0bHkg
c2V0IHBhY2thZ2VzLgorICogSWYgZGF0YSB3YXMgbG9hZGVkIGltcGxpY2l0bHkgYmVmb3JlIHRo
ZSBmaXJzdCBjYWxsIHRvIHRoaXMgZnVuY3Rpb24KKyAqIChmb3IgZXhhbXBsZSwgdmlhIG9wZW5p
bmcgYSBjb252ZXJ0ZXIsIGNvbnN0cnVjdGluZyBhIFVuaWNvZGVTdHJpbmcKKyAqIGZyb20gZGVm
YXVsdC1jb2RlcGFnZSBkYXRhLCB1c2luZyBmb3JtYXR0aW5nIG9yIGNvbGxhdGlvbiBBUElzLCBl
dGMuKSwKKyAqIHRoZW4gdGhlIGRlZmF1bHQgZGF0YSB3aWxsIGJlIGZpcnN0IGluIHRoZSBsaXN0
LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVjdCBvbiBhcHBsaWNhdGlvbiAobm9u
IElDVSkgZGF0YS4gIFNlZSB1ZGF0YV9zZXRBcHBEYXRhKCkKKyAqIGZvciBzaW1pbGFyIGZ1bmN0
aW9uYWxpdHkgZm9yIGFwcGxpY2F0aW9uIGRhdGEuCisgKgorICogQHBhcmFtIGRhdGEgcG9pbnRl
ciB0byBJQ1UgY29tbW9uIGRhdGEKKyAqIEBwYXJhbSBlcnIgb3V0Z29pbmcgZXJyb3Igc3RhdHVz
IDxjb2RlPlVfVVNJTkdfREVGQVVMVF9XQVJOSU5HLCBVX1VOU1VQUE9SVEVEX0VSUk9SPC9jb2Rl
PgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0
YV9zZXRDb21tb25EYXRhKGNvbnN0IHZvaWQgKmRhdGEsIFVFcnJvckNvZGUgKmVycik7CisKKwor
LyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNVIGRhdGEgbG9hZGlu
ZyBwcm9jZXNzIGZvciBhcHBsaWNhdGlvbi1zcGVjaWZpYworICogZGF0YSBhbmQgYWxsb3dzIHlv
dSB0byBmb3JjZSB0aGUgaXQgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNpZmllZAorICogcG9p
bnRlci4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNo
b3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qu
b3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBpcyB0aGF0IG9mIHRo
ZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgbGlrZSAnaWN1ZHQyNmwuZGF0JworICogb3IgdGhlIGNv
cnJlc3BvbmRpbmcgc2hhcmVkIGxpYnJhcnkgKERMTCkgZmlsZS4KKyAqIFRoZSBhcHBsaWNhdGlv
biBtdXN0IHJlYWQgaW4gb3Igb3RoZXJ3aXNlIGNvbnN0cnVjdCBhbiBpbWFnZSBvZiB0aGUgZGF0
YSBhbmQgdGhlbgorICogcGFzcyB0aGUgYWRkcmVzcyBvZiBpdCB0byB0aGlzIGZ1bmN0aW9uLgor
ICoKKyAqCisgKiBXYXJuaW5nOiAgc2V0QXBwRGF0YSB3aWxsIHNldCBhIFVfVVNJTkdfREVGQVVM
VF9XQVJOSU5HIGNvZGUgaWYKKyAqICAgICAgICAgICBkYXRhIHdpdGggdGhlIHNwZWNpZmVkIHBh
dGggdGhhdCBoYXMgYWxyZWFkeSBiZWVuIG9wZW5lZCwgb3IKKyAqICAgICAgICAgICBpZiBzZXRB
cHBEYXRhIHdpdGggdGhlIHNhbWUgcGF0aCBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZC4KKyAqICAg
ICAgICAgICBBbnkgc3VjaCBjYWxscyB0byBzZXRBcHBEYXRhIHdpbGwgaGF2ZSBubyBlZmZlY3Qu
CisgKgorICoKKyAqIEBwYXJhbSBwYWNrYWdlTmFtZSB0aGUgcGFja2FnZSBuYW1lIGJ5IHdoaWNo
IHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZmVyCisgKiAgICAgICAgICAgICB0byAob3BlbikgdGhp
cyBkYXRhCisgKiBAcGFyYW0gZGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhCisgKiBAcGFyYW0gZXJy
IG91dGdvaW5nIGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9V
TlNVUFBPUlRFRF9FUlJPUjwvY29kZT4KKyAqIEBzZWUgdWRhdGFfc2V0Q29tbW9uRGF0YQorICog
QHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRB
cHBEYXRhKGNvbnN0IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25zdCB2b2lkICpkYXRhLCBVRXJyb3JD
b2RlICplcnIpOworCisvKioKKyAqIFBvc3NpYmxlIHNldHRpbmdzIGZvciB1ZGF0YV9zZXRGaWxl
QWNjZXNzKCkKKyAqIEBzZWUgdWRhdGFfc2V0RmlsZUFjY2VzcworICogQHN0YWJsZSBJQ1UgMy40
CisgKi8KK3R5cGVkZWYgZW51bSBVRGF0YUZpbGVBY2Nlc3MgeworICAgIC8qKiBJQ1UgbG9va3Mg
Zm9yIGRhdGEgaW4gc2luZ2xlIGZpbGVzIGZpcnN0LCB0aGVuIGluIHBhY2thZ2VzLiAoZGVmYXVs
dCkgQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRVNfRklSU1QsCisgICAgLyoqIEFu
IGFsaWFzIGZvciB0aGUgZGVmYXVsdCBhY2Nlc3MgbW9kZS4gQHN0YWJsZSBJQ1UgMy40ICovCisg
ICAgVURBVEFfREVGQVVMVF9BQ0NFU1MgPSBVREFUQV9GSUxFU19GSVJTVCwKKyAgICAvKiogSUNV
IG9ubHkgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzLCBub3QgZnJvbSBzaW5nbGUgZmlsZXMuIEBz
dGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX09OTFlfUEFDS0FHRVMsCisgICAgLyoqIElDVSBs
b2FkcyBkYXRhIGZyb20gcGFja2FnZXMgZmlyc3QsIGFuZCBvbmx5IGZyb20gc2luZ2xlIGZpbGVz
CisgICAgICAgIGlmIHRoZSBkYXRhIGNhbm5vdCBiZSBmb3VuZCBpbiBhIHBhY2thZ2UuIEBzdGFi
bGUgSUNVIDMuNCAqLworICAgIFVEQVRBX1BBQ0tBR0VTX0ZJUlNULAorICAgIC8qKiBJQ1UgZG9l
cyBub3QgYWNjZXNzIHRoZSBmaWxlIHN5c3RlbSBmb3IgZGF0YSBsb2FkaW5nLiBAc3RhYmxlIElD
VSAzLjQgKi8KKyAgICBVREFUQV9OT19GSUxFUywKKyAgICAvKiogTnVtYmVyIG9mIHJlYWwgVURh
dGFGaWxlQWNjZXNzIHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRV9B
Q0NFU1NfQ09VTlQKK30gVURhdGFGaWxlQWNjZXNzOworCisvKioKKyAqIFRoaXMgZnVuY3Rpb24g
bWF5IGJlIGNhbGxlZCB0byBjb250cm9sIGhvdyBJQ1UgbG9hZHMgZGF0YS4gSXQgbXVzdCBiZSBj
YWxsZWQKKyAqIGJlZm9yZSBhbnkgSUNVIGRhdGEgaXMgbG9hZGVkLCBpbmNsdWRpbmcgYXBwbGlj
YXRpb24gZGF0YSBsb2FkZWQgd2l0aCAKKyAqIHVyZXMvUmVzb3VyY2VCdW5kbGUgb3IgdWRhdGEg
QVBJcy4gVGhpcyBmdW5jdGlvbiBpcyBub3QgbXVsdGl0aHJlYWQgc2FmZS4gIAorICogVGhlIHJl
c3VsdHMgb2YgY2FsbGluZyBpdCB3aGlsZSBvdGhlciB0aHJlYWRzIGFyZSBsb2FkaW5nIGRhdGEg
YXJlIHVuZGVmaW5lZC4KKyAqIEBwYXJhbSBhY2Nlc3MgVGhlIHR5cGUgb2YgZmlsZSBhY2Nlc3Mg
dG8gYmUgdXNlZAorICogQHBhcmFtIHN0YXR1cyBFcnJvciBjb2RlLgorICogQHNlZSBVRGF0YUZp
bGVBY2Nlc3MKKyAqIEBzdGFibGUgSUNVIDMuNCAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9S
VDIKK3VkYXRhX3NldEZpbGVBY2Nlc3MoVURhdGFGaWxlQWNjZXNzIGFjY2VzcywgVUVycm9yQ29k
ZSAqc3RhdHVzKTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL2ljdS91bmljb2RlL3VtaXNjLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDg1NDUxZmM3NjdjMDU4MzVmNmMxNWY1NjZmMzU2MmUyZDRhZjgzNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1pc2MuaApAQCAtMCwwICsx
LDYwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA2LCBJ
bnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVy
cy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAg
dW1pc2MuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90
IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDE5OTlvY3QxNQor
KiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisjaWZuZGVmIFVNSVNDX0gK
KyNkZWZpbmUgVU1JU0NfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworLyoqCisg
KiBcZmlsZQorICogXGJyaWVmICBDIEFQSTptaXNjIGRlZmluaXRpb25zIAorICoKKyAqICBUaGlz
IGZpbGUgY29udGFpbnMgbWlzY2VsbGFuZW91cyBkZWZpbml0aW9ucyBmb3IgdGhlIEMgQVBJcy4g
CisgKi8KKworVV9DREVDTF9CRUdJTgorCisvKiogQSBzdHJ1Y3QgcmVwcmVzZW50aW5nIGEgcmFu
Z2Ugb2YgdGV4dCBjb250YWluaW5nIGEgc3BlY2lmaWMgZmllbGQgCisgKiAgQHN0YWJsZSBJQ1Ug
Mi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IFVGaWVsZFBvc2l0aW9uIHsKKyAgLyoqCisgICAqIFRo
ZSBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90IGZpZWxkOwor
ICAvKioKKyAgICogVGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHJhbmdlIGNvbnRhaW5pbmcgZmllbGQg
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBiZWdpbkluZGV4OworICAv
KiogCisgICAqIFRoZSBsaW1pdCBvZiB0aGUgdGV4dCByYW5nZSBjb250YWluaW5nIGZpZWxkIAor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgZW5kSW5kZXg7Cit9IFVGaWVs
ZFBvc2l0aW9uOworCisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorLyoqCisgKiBPcGFxdWUgdHlw
ZSByZXR1cm5lZCBieSByZWdpc3Rlckluc3RhbmNlLCByZWdpc3RlckZhY3RvcnkgYW5kIHVucmVn
aXN0ZXIgZm9yIHNlcnZpY2UgcmVnaXN0cmF0aW9uLgorICogQHN0YWJsZSBJQ1UgMi42CisgKi8K
K3R5cGVkZWYgY29uc3Qgdm9pZCogVVJlZ2lzdHJ5S2V5OworI2VuZGlmCisKK1VfQ0RFQ0xfRU5E
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjAyY2Y0
NDRhYjE2ZDRkYzI1YmI3MzA0Njc3YzY2NDRkNjZiZDNmMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTAsMCArMSw4NyBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
IDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisjIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKK0JSRUFLSU5HX1JVTEVTX0ZJTEVTID0gXAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Q0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdE5vbkNKSy5icmsKKworQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlMgPSBc
CisgICAgQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIFwKKyAg
ICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIFwKKyAgICBCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgXAorICAgIEJyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcAorCithbGwg
OiAkKEJSRUFLSU5HX1JVTEVTX0ZJTEVTKSAkKEJSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TKQor
CitCcmVha2luZ1J1bGVzLyUuYnJrIDogJS5wcAorCS4vV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvZ2VuYnJrIC1jIC1yICQ8IC1vICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLmNwcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKwllY2hvICIjaW5jbHVkZSBcImNvbmZpZy5oXCIiID4g
JEAKKwllY2hvICIjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+IiA+PiAkQAorCWVjaG8gIiNk
ZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkiID4+
ICRACisJZWNobyAiI2RlZmluZSBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTICgoVV9JQ1VfVkVS
U0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpKSIg
Pj4gJEAKKwllY2hvICJuYW1lc3BhY2UgV1RGIHsiID4+ICRACisJZWNobyAiY29uc3QgY2hhciog
Y3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzID0gIiA+PiAkQAorCXNlZCAncy9eIyAuKi8vJyAk
PCA+IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50bXAKKwlzZWQgJ3MvXlwoLipcKTsvIlwx
OyIvJyBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudG1wID4gQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzMi50bXAKKwlzZWQgJ3MvICMgLyBcL1wvIC8nIEN1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlczIudG1wID4gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnRtcAorCXNlZCAncy9c
XC9cXFxcL2cnIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50bXAgPj4gJEAKKwllY2hvICI7
IiA+PiAkQAorCWVjaG8gIn0iID4+ICRACisJcm0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LnRtcCBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMyLnRtcAorCitCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yJS5jcHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvciUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisJZWNobyAiI2luY2x1ZGUgXCJjb25maWcuaFwiIiA+
ICRACisJZWNobyAiI2luY2x1ZGUgPHVuaWNvZGUvdXZlcm51bS5oPiIgPj4gJEAKKwllY2hvICIj
ZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkpIiA+
PiAkQAorCWVjaG8gIiNkZWZpbmUgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyAoKFVfSUNVX1ZF
UlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KSki
ID4+ICRACisJZWNobyAibmFtZXNwYWNlIFdURiB7IiA+PiAkQAorCWVjaG8gImNvbnN0IGNoYXIq
IGxpbmVCcmVha0l0ZXJhdG9yJCpSdWxlcyA9ICIgPj4gJEAKKwljYXQgJD8gfCBzZWQgJ3MvXlwo
LipcKTsvIlwxOyIvJyA+ICQqLnRtcAorCXNlZCAncy8gIyAvIFwvXC8gLycgJCoudG1wID4gJCoy
LnRtcAorCXNlZCAncy9cXC9cXFxcL2cnICQqMi50bXAgPj4gJEAKKwllY2hvICI7IiA+PiAkQAor
CWVjaG8gIn0iID4+ICRACisJcm0gJCoudG1wICQqMi50bXAKKworQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
PSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9
JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQCAkPAorCitMaW5lQnJlYWtJdGVyYXRv
ciUucHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclBy
b2xvZ3VlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
ciUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBp
bG9ndWUudHh0CisJLWNhdCAkPyB8IHVuaWZkZWYgLURBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9
JChBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQpIC1ESEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUz0k
KEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRACmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxZmFkODQ3MTAwMTQ5M2Q3YmY0YjZlYTZkNTI5ODA4ODBk
MDI1OGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApAQCAtMCwwICsxLDE1MSBAQAorIyBU
aGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBv
ZiBJQ1UgNTcKKyMgPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3Uv
dGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCisjIFRoZSBtYWpvciBkaWZm
ZXJlbmNlcyBmcm9tIHRoZSBvcmlnaW5hbCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6CisjICogUmVw
bGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAn
W1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1Ug
My44IG9yIGVhcmxpZXI7CisjICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3Ig
ZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOworIyAqIEFk
ZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciB2aXJhbWEg
c2lnbnMgb2YgSW5kaWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwgYW5kOwor
IyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUg
SmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCisjICogQWRkZWQgcnVs
ZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgorCiskQ1IgICAgICA9IFtccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gQ1J9XTsKKyRMRiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBMRn1dOworJENvbnRyb2wgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IENvbnRyb2x9XTsKKyRWb2ljZU1hcmtzID0gW1x1RkY5RVx1RkY5Rl07ICMgSmFwYW5lc2UgaGFs
Zi13aWR0aCBrYXRha2FuYSB2b2ljZWQgbWFya3MKKyRFeHRlbmQgID0gW1xwe0dyYXBoZW1lX0Ns
dXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1x1MEUzMCBcdTBFMzIgXHUwRTQ1
IFx1MEVCMCBcdTBFQjJdXTsKKyRTcGFjaW5nTWFyayA9IFtbXHB7R2VuZXJhbF9DYXRlZ29yeSA9
IFNwYWNpbmcgTWFya31dIC0gJEV4dGVuZF07CiskTCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gTH1dOworJFYgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IFZ9XTsKKyRUICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07CiskTFYg
ICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsKKyRMVlQgICAgID0gW1xw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVlR9XTsKKyRIaW4wICAgID0gW1x1MDkwNS1cdTA5
MzldOyAjIERldmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCiskSGluViAgICA9IFx1MDk0RDsgIyBE
ZXZhbmFnYXJpIFNpZ24gVmlyYW1hCiskSGluMSAgICA9IFtcdTA5MTUtXHUwOTM5XTsgIyBEZXZh
bmFnYXJpIExldHRlciBLYSwuLi4sSGEKKyRCZW4wICAgID0gW1x1MDk4NS1cdTA5QjldOyAjIEJl
bmdhbGkgTGV0dGVyIEEsLi4uLEhhCiskQmVuViAgICA9IFx1MDlDRDsgIyBCZW5nYWxpIFNpZ24g
VmlyYW1hCiskQmVuMSAgICA9IFtcdTA5OTUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBLYSwu
Li4sSGEKKyRQYW4wICAgID0gW1x1MEEwNS1cdTBBMzldOyAjIEd1cm11a2hpIExldHRlciBBLC4u
LixIYQorJFBhblYgICAgPSBcdTBBNEQ7ICMgR3VybXVraGkgU2lnbiBWaXJhbWEKKyRQYW4xICAg
ID0gW1x1MEExNS1cdTBBMzldOyAjIEd1cm11a2hpIExldHRlciBLYSwuLi4sSGEKKyRHdWowICAg
ID0gW1x1MEE4NS1cdTBBQjldOyAjIEd1amFyYXRpIExldHRlciBBLC4uLixIYQorJEd1alYgICAg
PSBcdTBBQ0Q7ICMgR3VqYXJhdGkgU2lnbiBWaXJhbWEKKyRHdWoxICAgID0gW1x1MEE5NS1cdTBB
QjldOyAjIEd1amFyYXRpIExldHRlciBLYSwuLi4sSGEKKyRPcmkwICAgID0gW1x1MEIwNS1cdTBC
MzldOyAjIE9yaXlhIExldHRlciBBLC4uLixIYQorJE9yaVYgICAgPSBcdTBCNEQ7ICMgT3JpeWEg
U2lnbiBWaXJhbWEKKyRPcmkxICAgID0gW1x1MEIxNS1cdTBCMzldOyAjIE9yaXlhIExldHRlciBL
YSwuLi4sSGEKKyRUZWwwICAgID0gW1x1MEMwNS1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgQSwu
Li4sSGEKKyRUZWxWICAgID0gXHUwQzREOyAjIFRlbHVndSBTaWduIFZpcmFtYQorJFRlbDEgICAg
PSBbXHUwQzE0LVx1MEMzOV07ICMgVGVsdWd1IExldHRlciBLYSwuLi4sSGEKKyRLYW4wICAgID0g
W1x1MEM4NS1cdTBDQjldOyAjIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCiskS2FuViAgICA9IFx1
MENDRDsgIyBLYW5uYWRhIFNpZ24gVmlyYW1hCiskS2FuMSAgICA9IFtcdTBDOTUtXHUwQ0I5XTsg
IyBLYW5uYWRhIExldHRlciBBLC4uLixIYQorJE1hbDAgICAgPSBbXHUwRDA1LVx1MEQzOV07ICMg
TWFsYXlhbGFtIExldHRlciBBLC4uLixIYSAKKyRNYWxWICAgID0gXHUwRDREOyAjIE1hbGF5YWxh
bSBTaWduIFZpcmFtYQorJE1hbDEgICAgPSBbXHUwRDE1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExl
dHRlciBBLC4uLixIYQorJFJJICAgICAgPSBbXFUwMDAxRjFFNi1cVTAwMDFGMUZGXTsgIyBFbW9q
aSByZWdpb25hbCBpbmRpY2F0b3JzCiskWldKICAgICA9IFx1MjAwRDsgIyBaZXJvIHdpZHRoIGpv
aW5lcgorJEVtb2ppVmFyID0gW1x1RkUwRl07ICMgRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVj
dG9yCisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFbW9qaUZvclNlcXMg
PSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1cVTAw
MDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAx
RjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0
NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3
IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBc
VTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUw
MDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAg
JEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBc
VTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUw
MDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAw
MUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFG
NDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5
NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYg
XFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4XSA7
ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZWxzZQorCisgICAg
JEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0OEJd
OyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZv
ck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAw
MUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFGM0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFG
NDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3
OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcg
XFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxV
MDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAj
IEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9q
aU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAwMDFGM0ZGXTsgIyBGaXR6cGF0cmljayBtb2RpZmllcnMK
KyEhY2hhaW47CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICEhUklOb0No
YWluOworCisjZW5kaWYKKworISFmb3J3YXJkOworJENSICRMRjsKKyRMICgkTCB8ICRWIHwgJExW
IHwgJExWVCk7CisoJExWIHwgJFYpICgkViB8ICRUKTsKKygkTFZUIHwgJFQpICRUOworCisjaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUkkgJFJJICRFeHRlbmQqIC8gJFJJOwor
ICAgICRSSSAkUkkgJEV4dGVuZCo7CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOwor
ICAgIFteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOworCisjZWxzZQorCisgICAgW14k
Q29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJFNwYWNp
bmdNYXJrOworICAgICRSSSAkUkkgLyAkUkk7CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRI
aW4wICRIaW5WICRIaW4xOyAjIERldmFuYWdhcmkgVmlyYW1hIChmb3J3YXJkKQorJEJlbjAgJEJl
blYgJEJlbjE7ICMgQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCiskUGFuMCAkUGFuViAkUGFuMTsg
IyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCiskR3VqMCAkR3VqViAkR3VqMTsgIyBHdWphcmF0
aSBWaXJhbWEgKGZvcndhcmQpCiskT3JpMCAkT3JpViAkT3JpMTsgIyBPcml5YSBWaXJhbWEgKGZv
cndhcmQpCiskVGVsMCAkVGVsViAkVGVsMTsgIyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQorJEth
bjAgJEthblYgJEthbjE7ICMgS2FubmFkYSBWaXJhbWEgKGZvcndhcmQpCiskTWFsMCAkTWFsViAk
TWFsMTsgIyBNYWxheWFsYW0gVmlyYW1hIChmb3J3YXJkKQorJFpXSiAkRW1vamlGb3JTZXFzOyAj
IERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2ppRm9yTW9kcyAkRW1vamlW
YXI/ICRFbW9qaU1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3Nz
aWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCish
IXJldmVyc2U7CiskTEYgJENSOworKCRMIHwgJFYgfCAkTFYgfCAkTFZUKSAkTDsKKygkViB8ICRU
KSAoJExWIHwgJFYpOworJFQgKCRMVlQgfCAkVCk7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQKKworICAgICRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRF
eHRlbmQqICRSSSAkUkk7CisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07Cisg
ICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisKKyNlbHNlCisKKyAgICAkRXh0
ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkU3BhY2luZ01hcmsgW14kQ29udHJv
bCAkQ1IgJExGXTsKKyAgICAkUkkgJFJJIC8gJFJJICRSSTsKKyAgICAkUkkgJFJJOworCisjZW5k
aWYKKworJEhpbjEgJEhpblYgJEhpbjA7ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQor
JEJlbjEgJEJlblYgJEJlbjA7ICMgQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQorJFBhbjEgJFBh
blYgJFBhbjA7ICMgR3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkKKyRHdWoxICRHdWpWICRHdWow
OyAjIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCiskT3JpMSAkT3JpViAkT3JpMDsgIyBHdWph
cmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJFRlbDEgJFRlbFYgJFRlbDA7ICMgVGVsdWd1IFZpcmFt
YSAoYmFja3dhcmQpCiskS2FuMSAkS2FuViAkS2FuMDsgIyBLYW5uYWRhIFZpcmFtYSAoYmFja3dh
cmQpCiskTWFsMSAkTWFsViAkTWFsMDsgIyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKKyRF
bW9qaUZvclNlcXMgJFpXSjsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRF
bW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiBy
ZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6
cGF0cmljayBtb2RpZmllcgorCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAh
IXNhZmVfcmV2ZXJzZTsKKyAgICAkUkkgJFJJKzsKKyAgICBbJEVtb2ppVmFyICRFbW9qaU1vZHNd
KyAkRW1vamlGb3JNb2RzOworICAgICEhc2FmZV9mb3J3YXJkOworICAgICRSSSAkUkkrOworICAg
ICRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7CisKKyNlbHNlCisKKyAgICBb
JEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOworICAgICRFbW9qaUZvck1vZHMg
WyRFbW9qaVZhciAkRW1vamlNb2RzXSs7CisgICAgISFzYWZlX3JldmVyc2U7CisgICAgISFzYWZl
X2ZvcndhcmQ7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0IGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjllMGM4YTUxYjNjMWNjMGI3MTZmMmEzODcyZmIzYjE4MTAwZDBlZmIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JFcGlsb2d1ZS50eHQKQEAgLTAsMCArMSwzNDcgQEAKKyRBSSA9IFs6TGluZUJyZWFrID0gQW1i
aWd1b3VzOl07CiskQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsKKyRCQSA9IFtbOkxp
bmVCcmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsKKyRCQiA9IFs6TGluZUJyZWFrID0g
QnJlYWtfQmVmb3JlOl07CiskQksgPSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOwor
JEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19Cb3RoOl07CiskQ0IgPSBbOkxpbmVCcmVhayA9IENv
bnRpbmdlbnRfQnJlYWs6XTsKKyRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246
XTsKKyRDTSA9IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsKKyRDUCA9IFs6TGluZUJy
ZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsKKyRDUiA9IFs6TGluZUJyZWFrID0gQ2FycmlhZ2Vf
UmV0dXJuOl07CiskRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0gJEVYX1NVQl07
CiskR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsKKworI2lmIEhBVkVfRVhUUkFfSUNVX05BTUVE
X1NFVFMKKworICAgICRITCA9IFs6TGluZUJyZWFrID0gSGVicmV3X0xldHRlcjpdOworCisjZWxz
ZQorCisgICAgJEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsKKworI2VuZGlmCisKKyRI
WSA9IFs6TGluZUJyZWFrID0gSHlwaGVuOl07CiskSDIgPSBbOkxpbmVCcmVhayA9IEgyOl07Cisk
SDMgPSBbOkxpbmVCcmVhayA9IEgzOl07CiskSUQgPSBbW1tbOkxpbmVCcmVhayA9IElkZW9ncmFw
aGljOl0gLSAkQ0pdICRJRF9BRERdIC0gJElEX1NVQl07CiskSU4gPSBbWzpMaW5lQnJlYWsgPSBJ
bnNlcGFyYWJsZTpdIC0gJElOX1NVQl07CiskSVMgPSBbWzpMaW5lQnJlYWsgPSBJbmZpeF9OdW1l
cmljOl0gLSAkSVNfU1VCXTsKKyRKTCA9IFs6TGluZUJyZWFrID0gSkw6XTsKKyRKViA9IFs6TGlu
ZUJyZWFrID0gSlY6XTsKKyRKVCA9IFs6TGluZUJyZWFrID0gSlQ6XTsKKyRMRiA9IFs6TGluZUJy
ZWFrID0gTGluZV9GZWVkOl07CiskTkwgPSBbOkxpbmVCcmVhayA9IE5leHRfTGluZTpdOworJE5T
ID0gW1tbWzpMaW5lQnJlYWsgPSBOb25zdGFydGVyOl0gLSAkQ0pdICROU19BRERdIC0gJE5TX1NV
Ql07CiskTlUgPSBbOkxpbmVCcmVhayA9IE51bWVyaWM6XTsKKyRPUCA9IFs6TGluZUJyZWFrID0g
T3Blbl9QdW5jdHVhdGlvbjpdOworJFBPID0gW1s6TGluZUJyZWFrID0gUG9zdGZpeF9OdW1lcmlj
Ol0gLSAkUE9fU1VCXTsKKyRQUiA9IFtbOkxpbmVCcmVhayA9IFByZWZpeF9OdW1lcmljOl0gLSAk
UFJfU1VCXTsKKyRRVSA9IFs6TGluZUJyZWFrID0gUXVvdGF0aW9uOl07CiskUkkgPSBbXFUwMDAx
RjFFNi1cVTAwMDFGMUZGXTsKKyRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07
CiskU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOworJFNQID0gWzpMaW5lQnJlYWsgPSBT
cGFjZTpdOworJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07CiskV0ogPSBbOkxp
bmVCcmVhayA9IFdvcmRfSm9pbmVyOl07CiskWFggPSBbOkxpbmVCcmVhayA9IFVua25vd246XTsK
KyRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpdOworJFpXSiA9IFx1MjAwRDsKKyRFbW9qaVZh
ciA9IFx1RkUwRjsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEVtb2pp
Rm9yU2VxcyA9IFtcdTI2NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUwMDAxRjMwOCBcVTAwMDFG
M0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAwMUYzRjMgXFUwMDAxRjQ0
MSBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDZGIFxVMDAwMUY0NzEg
XFUwMDAxRjQ3MyBcVTAwMDFGNDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MiBcVTAwMDFGNDg2LVxV
MDAwMUY0ODcgXFUwMDAxRjQ4QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTggXFUwMDAxRjY0NS1cVTAw
MDFGNjQ3IFxVMDAwMUY2NEIgXFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxVMDAwMUY2QTMgXFUwMDAx
RjZCNC1cVTAwMDFGNkI2XTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5j
ZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1MjcwRCBcVTAw
MDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxVMDAwMUYzQ0IgXFUwMDAx
RjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0
NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgz
IFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1NzUgXFUwMDAxRjU5MCBc
VTAwMDFGNTk1IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUw
MDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwIFxVMDAw
MUY5MThdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbHNl
CisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUw
MDAxRjQ4Ql07CisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBBLVx1MjcwQyBcVTAw
MDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0M3IFxVMDAwMUYzQ0EgXFUwMDAx
RjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0
NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgz
IFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1c
VTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUw
MDAxRjZCNiBcVTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlm
aWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYzRkZdOwor
JGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOworJEFMUGx1cyA9
IFskQUwgJEFJICRTQSAkU0cgJFhYXTsKKyRBTGNtID0gJEFMUGx1cyAkQ00qOworJEJBY20gPSAk
QkEgJENNKjsKKyRCQmNtID0gJEJCICRDTSo7CiskQjJjbSA9ICRCMiAkQ00qOworJENMY20gPSAk
Q0wgJENNKjsKKyRDUGNtID0gJENQICRDTSo7CiskRVhjbSA9ICRFWCAkQ00qOworJEdMY20gPSAk
R0wgJENNKjsKKyRITGNtID0gJEhMICRDTSo7CiskSFljbSA9ICRIWSAkQ00qOworJEgyY20gPSAk
SDIgJENNKjsKKyRIM2NtID0gJEgzICRDTSo7CiskSURjbSA9ICRJRCAkQ00qOworJElOY20gPSAk
SU4gJENNKjsKKyRJU2NtID0gJElTICRDTSo7CiskSkxjbSA9ICRKTCAkQ00qOworJEpWY20gPSAk
SlYgJENNKjsKKyRKVGNtID0gJEpUICRDTSo7CiskTlNjbSA9ICROUyAkQ00qOworJE5VY20gPSAk
TlUgJENNKjsKKyRPUGNtID0gJE9QICRDTSo7CiskUE9jbSA9ICRQTyAkQ00qOworJFBSY20gPSAk
UFIgJENNKjsKKyRRVWNtID0gJFFVICRDTSo7CiskUkljbSA9ICRSSSAkQ00qOworJFNZY20gPSAk
U1kgJENNKjsKKyRXSmNtID0gJFdKICRDTSo7CisKKyEhZm9yd2FyZDsKKyRDQU5fQ00gPSBbXiRT
UCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07CiskQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYg
JE5MICRaVyAkQ01dOworJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQ
XTsKKyRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRHTCAkT1Ag
JFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107CiskQUxfRk9MTE9XID0gWyRBTF9GT0xM
T1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsKKyRMQjRCcmVha3MgPSBbJEJLICRDUiAkTEYgJE5MXTsK
KyRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICROTF07CiskTEI4QnJlYWtzID0gWyRMQjRC
cmVha3MgJFpXXTsKKyRMQjhOb25CcmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOwor
JExCMThOb25CcmVha3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsKKyRMQjE4QnJlYWtzID0g
WyRMQjhCcmVha3MgJFNQXTsKKyRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENC
XTsKKyRBTFBsdXMgJENNKzsKKyRCQSAkQ00rOworJEJCICRDTSs7CiskQjIgJENNKzsKKyRDTCAk
Q00rOworJENQICRDTSs7CiskRVggJENNKzsKKyRHTCAkQ00rOworJEhMICRDTSs7CiskSFkgJENN
KzsKKyRIMiAkQ00rOworJEgzICRDTSs7CiskSUQgJENNKzsKKyRJTiAkQ00rOworJElTICRDTSs7
CiskSkwgJENNKzsKKyRKViAkQ00rOworJEpUICRDTSs7CiskTlMgJENNKzsKKyROVSAkQ00rOwor
JE9QICRDTSs7CiskUE8gJENNKzsKKyRQUiAkQ00rOworJFFVICRDTSs7CiskUkkgJENNKzsKKyRT
WSAkQ00rOworJFdKICRDTSs7CiskQ1IgJExGIHsxMDB9OworJExCNE5vbkJyZWFrcz8gJExCNEJy
ZWFrcyB7MTAwfTsKKyRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OworJENNKyAkTEI0QnJl
YWtzIHsxMDB9OworJExCNE5vbkJyZWFrcyBbJFNQICRaV107CiskQ0FOX0NNICRDTSogWyRTUCAk
WlddOworJENNKyBbJFNQICRaV107CiskRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9k
cz8gJFpXSiAkRW1vamlGb3JTZXFzOworJENBTl9DTSAkQ00rOworJENNKzsKKyRDQU5fQ00gJENN
KiAkV0pjbTsKKyRMQjhOb25CcmVha3MgJFdKY207CiskQ00rICRXSmNtOworJFdKY20gJENBTlRf
Q007CiskV0pjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FO
VF9DTTsKK1tbJExCOE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOworJENN
KyBHTGNtOworJExCOE5vbkJyZWFrcyAkQ0w7CiskQ0FOX0NNICRDTSogJENMOworJENNKyAkQ0w7
CiskTEI4Tm9uQnJlYWtzICRDUDsKKyRDQU5fQ00gJENNKiAkQ1A7CiskQ00rICRDUDsKKyRMQjhO
b25CcmVha3MgJEVYOworJENBTl9DTSAkQ00qICRFWDsKKyRDTSsgJEVYOworJExCOE5vbkJyZWFr
cyAkSVM7CiskQ0FOX0NNICRDTSogJElTOworJENNKyAkSVM7CiskTEI4Tm9uQnJlYWtzICRTWTsK
KyRDQU5fQ00gJENNKiAkU1k7CiskQ00rICRTWTsKKyRPUGNtICRTUCogJENBTl9DTSAkQ00qOwor
JE9QY20gJFNQKiAkQ0FOVF9DTTsKKyRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsKKyRRVWNt
ICRTUCogJE9QY207CisoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsKKyRCMmNtICRTUCogJEIy
Y207CiskTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOworJENNKyAkUVVjbTsKKyRRVWNtIC4/Owor
JFFVY20gJExCMThOb25CcmVha3MgJENNKjsKKyRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwg
JEhZY20gfCAkTlNjbSk7IAorJEJCY20gW14kQ0JdOworJEJCY20gJExCMjBOb25CcmVha3MgJENN
KjsKKyRITGNtICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OworJFNZY20gJEhMY207CisoJEFMY20g
fCAkSExjbSkgJElOY207CiskQ00rICRJTmNtOworJEVYY20gJElOY207CiskSURjbSAkSU5jbTsK
KyRJTmNtICRJTmNtOworJE5VY20gJElOY207CiskSURjbSAkUE9jbTsKKyRBTGNtICROVWNtOwor
JEhMY20gJE5VY207CiskQ00rICROVWNtOworJE5VY20gJEFMY207CiskTlVjbSAkSExjbTsKKyRQ
UmNtICRJRGNtOworJFBSY20gKCRBTGNtIHwgJEhMY20pOworJFBPY20gKCRBTGNtIHwgJEhMY20p
OworKCRQUmNtIHwgJFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNt
IHwgJElTY20pKiAoJENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87CiskSkxjbSAoJEpM
Y20gfCAkSlZjbSB8ICRIMmNtIHwgJEgzY20pOworKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRK
VGNtKTsKKygkSlRjbSB8ICRIM2NtKSAkSlRjbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAk
SDJjbSB8ICRIM2NtKSAkSU5jbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRI
M2NtKSAkUE9jbTsKKyRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2Nt
KTsKKygkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7CiskQ00rICgkQUxjbSB8ICRITGNt
KTsKKyRJU2NtICgkQUxjbSB8ICRITGNtKTsKKygkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNt
OworJENNKyAkT1BjbTsKKyRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOworCisjaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUkljbSAkUkljbTsKKworI2VuZGlmCisKKyRF
bW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOworCishIXJldmVyc2U7CiskQ00rICRB
TFBsdXM7CiskQ00rICRCQTsKKyRDTSsgJEJCOworJENNKyAkQjI7CiskQ00rICRDTDsKKyRDTSsg
JENQOworJENNKyAkRVg7CiskQ00rICRHTDsKKyRDTSsgJEhMOworJENNKyAkSFk7CiskQ00rICRI
MjsKKyRDTSsgJEgzOworJENNKyAkSUQ7CiskQ00rICRJTjsKKyRDTSsgJElTOworJENNKyAkSkw7
CiskQ00rICRKVjsKKyRDTSsgJEpUOworJENNKyAkTlM7CiskQ00rICROVTsKKyRDTSsgJE9QOwor
JENNKyAkUE87CiskQ00rICRQUjsKKyRDTSsgJFFVOworCisjaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCisKKyAgICAkQ00rICRSSTsKKworI2VuZGlmCisKKyRDTSsgJFNZOworJENNKyAkV0o7
CiskQ00rOworJEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8
ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0p
KTsKK1skUFJdIC8gJENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOworJExCNEJy
ZWFrcyBbJExCNE5vbkJyZWFrcy0kQ01dOworJExCNEJyZWFrcyAkQ00rICRDQU5fQ007CiskTEYg
JENSOworWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07CitbJFNQICRaV10gJENNKyAkQ0FO
X0NNOworJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZhcj8gJEVtb2ppRm9y
U2VxczsKKyRDTSsgJENBTl9DTTsKKyRDTSogJFdKICRDTSogJENBTl9DTTsKKyRDTSogJFdKIFsk
TEI4Tm9uQnJlYWtzLSRDTV07CiskQ0FOVF9DTSAkQ00qICRXSjsKKyRDTSogJENBTl9DTSAkQ00q
ICRXSjsKKyRDTSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOwor
JENBTlRfQ00gJENNKiAkR0w7CiskQ00qICRDQU5fQ00gJENNKiAkR0w7CiskQ0wgJENNKyAkQ0FO
X0NNOworJENQICRDTSsgJENBTl9DTTsKKyRFWCAkQ00rICRDQU5fQ007CiskSVMgJENNKyAkQ0FO
X0NNOworJFNZICRDTSsgJENBTl9DTTsKKyRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOworJENQIFsk
TEI4Tm9uQnJlYWtzLSRDTV07CiskRVggWyRMQjhOb25CcmVha3MtJENNXTsKKyRJUyBbJExCOE5v
bkJyZWFrcy0kQ01dOworJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07CitbJENMICRDUCAkRVggJElT
ICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAKKyRDTSogJENBTl9DTSAkU1AqICRDTSogJE9QOwor
JENBTlRfQ00gJFNQKiAkQ00qICRPUDsKKyRBTF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAk
T1A7CiskQUxfRk9MTE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9QOworJENNKiAkQUxfRk9MTE9X
X0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRTWSAkQ00gJFNQKyAkT1A7CiskQ00qICRPUCAkU1Aq
ICRDTSogJFFVOworJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOworJENNKiAkQjIgJFNQ
KiAkQ00qICRCMjsKKyRDTSogJFFVICRDTSogJENBTl9DTTsKKyRDTSogJFFVICRMQjE4Tm9uQnJl
YWtzOworJENNKiAkQ0FOX0NNICRDTSogJFFVOworJENBTlRfQ00gJENNKiAkUVU7CiskQ00qICgk
QkEgfCAkSFkgfCAkTlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV07CiskQ00qIFskTEIyME5v
bkJyZWFrcy0kQ01dICRDTSogJEJCOworW14kQ0JdICRDTSogJEJCOworW14kQ0JdICRDTSogKCRI
WSB8ICRCQSkgJENNKiAkSEw7CiskQ00qICRITCAkQ00qICRTWTsKKyRDTSogJElOICRDTSogKCRB
TFBsdXMgfCAkSEwpOworJENNKiAkSU4gJENNKiAkRVg7CiskQ00qICRJTiAkQ00qICRJRDsKKyRD
TSogJElOICRDTSogJElOOworJENNKiAkSU4gJENNKiAkTlU7CiskQ00qICRQTyAkQ00qICRJRDsK
KyRDTSogJE5VICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENN
KiAkTlU7CiskQ00qICRJRCAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBS
OworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87CisoJENNKiAoJFBSIHwgJFBPKSk/ICgk
Q00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRTWSkpKiAkQ00qICROVSAoJENN
KiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87CiskQ00qICgkSDMgfCAkSDIgfCAk
SlYgfCAkSkwpICRDTSogJEpMOworJENNKiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOwor
JENNKiAkSlQgJENNKiAoJEgzIHwgJEpUKTsKKyRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRK
VCB8ICRKViB8ICRKTCk7CiskQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAk
SkwpOworJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsKKyRDTSog
KCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRI
TCkgJENNKiAkSVM7CiskQ00qICRPUCAkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKTsKKyRDTSog
KCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOworCisjaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCisKKyAgICAkQ00qICRSSSAkQ00qICRSSTsKKworI2VuZGlmCisKKyRFbW9qaU1vZHMg
JEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOworCishIXNhZmVfZm9yd2FyZDsKK1skQ00gJE9QICRR
VSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnldKyBbXiRDTSAkT1AgJFFV
ICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsKKyRkaWN0aW9uYXJ5ICRkaWN0
aW9uYXJ5OworICAgIAorISFzYWZlX3JldmVyc2U7CiskQ00rIFteJENNICRCSyAkQ1IgJExGICRO
TCAkWlcgJFNQXTsKKyRDTSsgJFNQIC8gLjsKKyRTUCsgJENNKiAkT1A7CiskU1ArICRDTSogJFFV
OworJFNQKyAkQ00qICgkQ0wgfCAkQ1ApOworJFNQKyAkQ00qICRCMjsKKyRDTSogKCRIWSB8ICRC
QSkgJENNKiAkSEw7CisoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOworKCRDTCB8ICRDUCkg
JENNKiAoJE5VIHwgJElTIHwgJFNZKTsKKyRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
UHJvbG9ndWUudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yUHJvbG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxZjhhZDI1MWJmNTUyNWQyOTNmMzcy
MTI2NDU2MTYxMTUwYjYwZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKQEAgLTAsMCArMSwx
NSBAQAorISFjaGFpbjsKKyEhTEJDTU5vQ2hhaW47CishIWxvb2tBaGVhZEhhcmRCcmVhazsKKwor
CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkQ0ogPSBbOkxpbmVCcmVh
az1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOl07CisKKyNlbHNlCisKKyAgICAkQ0ogPSBb
XHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgzXHUzMDg1XHUzMDg3XHUz
MDhFXHUzMDk1XHUzMDk2XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3XHUzMEE5XHUzMEMzXHUzMEUz
XHUzMEU1XHUzMEU3XHUzMEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYwXHUzMUYxXHUzMUYyXHUz
MUYzXHUzMUY0XHUzMUY1XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUzMUZBXHUzMUZCXHUzMUZD
XHUzMUZEXHUzMUZFXHUzMUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZBXHVGRjZCXHVGRjZDXHVG
RjZEXHVGRjZFXHVGRjZGXHVGRjcwXTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
Sy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjRmMzZjOTAyMDY5ZjNhNmM1Y2Q4MDMzODU0OWZiMTk5YTAxOGFk
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0g
W1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0g
Jyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0g
Jyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOworJE5T
X0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wMTM0MTQ2MzU1NjY2YmQxODExZGNjODE3Njc1NzNkYTM0MGMwMDg0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZUNKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NVQiA9IFtcdTIwMTBc
dTIwMTNdOworJEVYX1NVQiA9IFtcdTAwMjFcdTAwM0ZcdUZGMDFcdUZGMUZdOworJElEX1NVQiA9
ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NVQiA9IFtcdTAwM0FcdTAwM0Jd
OworJE5TX1NVQiA9IFtcdTIwM0NcdTIwNDdcdTIwNDhcdTIwNDlcdTMwMDVcdTMwMUNcdTMwM0Jc
dTMwOURcdTMwOUVcdTMwQTBcdTMwRkJcdTMwRkRcdTMwRkVcdUZGMUFcdUZGMUJcdUZGNjVdOwor
JFBPX1NVQiA9IFtcdTAwMjVcdTAwQTJcdTAwQjBcdTIwMzBcdTIwMzJcdTIwMzNcdTIxMDNcdUZG
MDVcdUZGRTBdOworJFBSX1NVQiA9IFtcdTAwMjRcdTAwQTNcdTAwQTVcdTIwQUNcdTIxMTZcdUZG
MDRcdUZGRTFcdUZGRTVdOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIg
JElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2ODk2OTlk
OGQwZTRjMzY4MzRiMmZhZTI1OTMyNzc1N2EyNGQxM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7
CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gJyc7
CiskTlNfU1VCID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBGRFx1MzBGRV07CiskUE9f
U1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJd
OworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0IGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjE1OWZjZjBmOGE5OTIyMTIwZWJiMTFkZDVkYTQ0MTdmOTI2NzYyNzIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vbkNKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NVQiA9ICcnOworJEVY
X1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOwor
JE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcn
OworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0IGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmI0ZjM2YzkwMjA2OWYzYTZjNWNkODAzMzg1NDlmYjE5OWEwMThhZDMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NV
QiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElEX1NV
QiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBdOworJFBPX1NV
QiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsK
KyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNjM1NTllYjFlZDY0ZjI2M2Q4OWUxNjJkMzE3NzE5ODdjZGZjZmI0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRC
QV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsK
KyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAn
JzsKKyRJRF9BREQgPSBbJENKXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTlmY2YwZjhhOTkyMjEyMGViYjExZGQ1
ZGE0NDE3ZjkyNjc2MjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CkBAIC0wLDAg
KzEsMTAgQEAKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJ
Tl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsK
KyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTlmY2Yw
ZjhhOTkyMjEyMGViYjExZGQ1ZGE0NDE3ZjkyNjc2MjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAn
JzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIg
PSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19B
REQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9nZW5icmsgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrCm5ldyBm
aWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI1MGFhNWQ4ZWMwYTRhNWU2MjljYTJkMGE4NGQ4NjgyM2FkNGRmMTEKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDMxNDU2CnpjbWVIUGQzO3BXeSs0eiUjSVFfSVI5dn1ZTFhqb091IWM9
Q0Z1Xi1BZmYkSFZCQFVDQk5pdWFaR28xeSZMWXA+OAp6PHVaPU9EbE5+fllIQWchbWNJQn01JURS
YkVEPiFmOzhLKlR5dD8kcHBkIy16dFRPTldKTkx8Rj1Ben0oZSU/UVEKelp8PilGJmlRVFVjWWYh
MCo4N3tBe05kRTZYOXFINyRZcmNLaGNSe2AoJCljdHdYdGdlRj9KYn1qQVhaMG5ReTRMCnp3VzR8
dlE4T1B5Q2k7fmE9fjs7ZT9EaSFVT1A2R2RAY05+aEckd0deI2ArXnNOc3J3Z2NDUVI7dSFkKnE+
JG43Kwp6MGJAZ2ZDUFIzP0s1O150KF4wIVU2cHF3fFFZNXs3VyM3PkI0SGNiQzs+aWttTExYZWxB
NUVYVihkYFltZ1BgZDMKeiR6d0VxRkE5QnhsaXlSJUlyY1I7b3AkJDFyI2xkfmhhR2kjZVIqUndl
RjMzPkBDPHpeI1RzQ0BKNDR+MSRKWmR9CnpkVlM0OC14ST1WZ3MxeVl1TihVT3pFSXpRPT1HSkJY
IWEkQ20rKjliSWBpUEtpMEA5MSZ0Pj1jPml1QnFeKGAwcgp6SXomYW5eKXt2SnE8TURgelA4JmY8
fFhEZDRoLVQkQW0mTU96QT1IKmU4WmFIYkJ9Ny0/TE16UHc1cUFqQDNqWlEKeiFMUVlxUjdkKSNl
KTZJREYoSFlkd0EmbH1lT14xKXo1PilJYCFHSERMJTNjYXh9SkxNY0NYYGEqO2dqP0hTJGd+CnpN
dEhoRD5oSSl+SG5QWCUyc2A9K2RqRUJwSDJhbmRlVDR0KmFqZ3NXdCtJM2IlTyt8MV43QCswdXVu
OVQ7YFolSgp6SHRXSSM2JkM5ZiE3M055aWpxSH5KVWx9fnNoe2IoTWxzZTVTMT94Ml98Ty1pPjt4
SnxOJVcmQVNIZSteN1JDO3YKekJGKGlDTlArb2BlR0JELTNtSUZFITVzdiszVyotI1F5UGdoNEdD
VFErTllxQkZ+P1ZNaGtfO3s0TXItN2dufWhyCnpQaEUqP21EZEhGby0yXjNqZDJlWmBKTGFOQHs/
YX5gYFBqKDVBMU9sZj53YVUySWNkRjwocigrTTVYIUVPIWVOeQp6ekxAP3tKN3F9M3FkcWJOUyNJ
Y1M4fHswWDV2TT1zRTtiaiM1S2tSUmFyPyttZWYzclglZEY9ZEg/Ryh1PmdkfXMKejxpQ24obFBT
TT1SVmVJa0R4UkN4Mz55dXQpR3J4K3Ihe2Ulei1iKWx4ZUFIKnk5VlBfIzdXc0s+dyZCWHZMNDhL
CnpBblNwdzJlS1o+ZExaazh0T3YzbCRhKX5fZnZnQXFOankqXkQ8M1ZjUWNsYSFES31rLSpaPGg7
UzEpNEI2aiR4VAp6NypqaiYkfWNNfmYhZjJWdmEobTU0fkZ1LSs1Ozk8SHM0fnQqPDUyQHZSTUI5
ayooO29SWEh3NGAoSzZsa3NMK2MKemloVyVia0M4OHwoU2Zxa3w1TDxPPGsqbW5tb3Y3RkxRKDJ9
M18mYkJaZHwoQEZgI3cqNH16Wkd8NEhQPUhpYDswCnomJVQlZkZ+LSYpWFBiYnUjKk04bVY3Qk8j
ITtySEBDbTI5Jm87YH5NIS1NN00/OF5ZRCRCY31MbVFDQHB7eF5WVAp6aXghUWghZX17TSo4Z0B1
YV9wK3s3byN2KjQkODRMa0V2VHhDJVdkYnd1SkclQG59SS1la0xhcDM4NilmT31QaWMKekhzIWNZ
ZDhRbjZicUlJUDQhUH0rdjkkIzlycnZFNypeJUwjMD92QTA5ZzVQYj5eQWs5NGlOYnk4bkRMWj1V
WkZPCnpfUjN2ZFA/Q18xbF8lOGk1TUFsd0Y+OU5XdXFucjY8IXlCcnNKN2B4amNwJTY/WSFPbnJn
N0QpSyRULVA5ZGZNbAp6RzAwayFVVWRYVyF0T15RWUV2RWBMej4mLUhzeTQ5aTByS0YwM2FKKXZ0
R0I/cm8yRzUlZHlCfnZlS25+aCVsSHsKeioob1ktPGRydjxMY2oqP1dWS0VDM3J3antqO2gtczNi
fmVxKGIlPmdmalokOU9LaGI8UkAleD9YRitWJTlKUH5jCnorKHE/SypRUmBDUUJEYUJZY3ZoeS1Y
JX1+d3o/RH54UERVdytVbTZfcEh3UUolaDREcVElX0BKJFgjdHEwbUc/bQp6YHpCT1Qma3w3fm14
bkokQTIhTGNeJn4qUEFwZ0Qmd3BEcUxjZ0dncE9nJU47Y05QX2AoRSlPX2A0dCtTKmZVRSYKeiN4
TiVLcTM3blByTGRwVWUqblUzbjNuJV9EYV8oTW0hbUltQTRiPTZaJCNUQENhQ1d0bCFvU295V1dO
Mz16N3dJCnp3ciRHQ1lSM2huZypeTWR4KVh1V1h3NzQ3MmFOWH1mIXhlQ2t+Nm1UaGxebmhIRDhz
NztaeUh8JHV7TTRISGNDegp6cVZDMEpaeHt+dkJNel9HcUBGLVg0PWRfNW55RlkoR2J7RVArYkQh
K2lwJF5NTmh8SSleRD1YLWBGNjl0Yl9lOTEKejsmTE9AX28qNSEtNl5CN2JofCZHekRJfHxJQ3VL
LWdZcEp6YmEpckkyZTYjNit+PWRZP0okKDdwUFd1NE9iUFZeCno2aX5OfVNJQzFeZG07R1pMYFpE
b1YkKUw8cDNAe0pMZWRzM3dNSXYoJlEja2E3bXt7I1M2MUZwe3x2SSQjOz4oTAp6Q0QyaGhTX1Vn
N0wjfTVTK0I9ZFcmRSE/KD16Nn1gSGQwLTxGcmZ5dXg7d2J3Mj16RTMhJipQRCloYTBPJWdVP2oK
ejNQQHBgUkVzOVBVUCRsWihsMUEyRztKKT13cSs+THtIU0RBXj9GZm51dlZ7RClWbntgJUItWClF
VGclaGt8ZWVDCno0big/LWU5NjV3SUBKcUpUPlQ0fUI9aWdrZVhhPV5RYk9pclNHbUlIQStzSHQ2
WUFZMHtkLTdiNTIwbkU5em9DPAp6JlF6PHdQO1dzLTQ5dkV9cCFkQW5qdDhAJUVmS3omaXIoPDA+
eGB7PyFveTdRPUlkRUZwTFQwP0RKcz9PczRxNS0Kell7Z0omVFI3RGlQfUBDSFc3WDQ+JCZYREwz
ayVnTkElSTs0bj1IMURGVkpNQ3Aobj1fSCpTZzc/I1IlbTlGPiltCnp2aHg3biY+JnBmZUc8fmZr
cnZWM3glezRWZXJALUUxRmNWIUtTMnt7Y1d3N1pxTXVgNVpURUB7YFAlTj84VGpIVgp6U3ZqcCVn
UWolSiU2b0ZsJmItQGR5QntUKWM1O2ZXb1JGMnslM0hHWGEmNVBYJGghVj5KfnY8LT1qIS0kMVpy
KHUKejRMMEJKUXp5WHlQLXVrdWFaWj1qRFVPMkF1dmJ7MW11JTcyWmVNP0V5QmA4cSEjZlEkSXp+
UXI+cDthPnhqdFNDCnptKyRENCRGZ3w9aXhheTs/R0UwYlgjWnopYDEqOFF5LSFwMHBmKz9nWkJo
QF9QZTBQal8/aHNVUmU4Jip7TUQqcAp6T1Nzc35iekxZY0hUeDx8QU0pZXhETSRmc25hUGF6SnAj
RDB0PUhLNDImUnxadyNWNHxWKnV1TDFMKStBNT4xSjEKeiFrbzQjWkNnPW4jfVVjWUNSXyV2OWFw
d303K3ooSFNFOT87bkJ3TjxJVl5rYD9VRn5xb0A/QTxEQChNVEVIU1FzCnokKyVeWTtUMFNeb218
Z3hic3pZJjNGTzl6UXJZJXR4QnsmWlk7SW5JWWU2WSh1fV9ndWx2OEVyOUArM3hrSk9iKgp6ZGxA
WTY/Z3I0Nk9UUylxPyoqOFdkcjYqNm57RHUtdTNWaDV7THAkSFFyKjlWNVNoNyU4KStwWTdqUHJF
Tz4qcG8KemVRMTBlUmtiTispdmMlXlIyc0xtNCozSWtFaGtGQ20rZnZITFVKVzJfb0hNejE5IUko
MGpFSF5mP29DOFAoYTw5CnpzUCQoWV9OOyV3Kj1kVkNsaCkzMF4rdCReTXNaRX5PcjFnUCMtO0BM
RzBRY29ocDx+P2lkSEk8Mzs4Rz1wazc1Ywp6KH08WGomKF5ZKjlzTWR5ODBIc2ZhQUB2Yk9ydWJz
SGJHVFBIcEdeVkZqJFB3b3tZXmk3OUdYT2pCYChKKl9+SCEKelJ4RXxjeURXd0k/fGZxJCZQbCNj
NEx5VSNxTyVJMnhkdyNLKUd5SWAxKGFTeVI1fCgjSEcmKDBgVnJ7JEVndStoCnpNRSNrSmpiNENG
SmJjU21uakZfMUcoTEx9SiZpLXcpTjU3I18jOUVpblBTNmxnUVV4Kl54fWtoNzswP0ZzaCtGcAp6
YSZad0BVQWJmbVAxRVFRQzhiIU5TK2cmNHV9d0xRNk88LSsrNmslfVEwcl5mX2tVc2o8RUJFbGp+
aSsxRTI2bj0KekAkYiNDTSgxIzlCME9JRzZiNmA7LTV7eFIoUlhaP2Q3MjQ1ZEdOc3ZkRkphbD99
dyt6JlYoQWtyeHpDTmhKQ3cwCnojYD9wKXJMRFo8Ul48IzkqWV9OX3FgWlVrcmg/OD8rXil7enMl
WFZrYVgkSDMqJWg1aGJFSz4tQHg5NWA9byYwTwp6RUY8KyttXyhUUkd5b1ZoS3JASncmWW1QWUsz
NyRFRExORE5qRzhJdzdtOGJQKEElUDgpTyNWTDlraGs4ZkRISD8KelZecGFldHlFNmhsPmIhd3Ap
Yip5Pmd5MkdgQT0+K1FjJTcmIWVgU1phJiEqYUg1Mz02Z20jblloN29BQ2ZEUkc8CnpOPHM0Vk81
YGxick9UaD95UT0hIVNJSH1wR2tXbmVkPlgzaighfFIoe21eQDEra3gqNjZ9STUpYjMtV0FLSHZZ
QQp6RUgqMmNZLWVhb3h8N2RWKWJnMkkmSzloZXY4Mkt7MyVCdkRZYj5nb1c0OWt8SWJFPU50U3ZW
Q1ImZV54NTMwJUsKelhkNmhKemBFWjdOI3BuYVZzODFeU2tjenwtN0MyNipwekVnJjd2SG1zWXFB
Mz8kO3JrTTBEcGhQOCtMJlhfeUYpCnpsY09WUEkkcW15RGlJayhILXB7JCNwUHg2JmQ2YDJ5Kk9R
SnlNTUApLUNuemNwTGUxQC1VKDIzdGMtfmpFK2hyewp6cSttUE5nRl5Majg9R21zM3hLQTxsRzJi
bURtYWlhVW9taUhSXnw3eTY0fFAoKzQoJX10dTJXaDwyfVBeOCswREMKeiN3c0xQc2QkQW1PITRR
NEZEc1J1LU9tQ3RqJSlfWHRTd3pSI3d7PGtvUnw8PChyS1gwKSE0Y2k/NncwKyVeUWA8Cno1dTRK
cSRAfklJOHQpfU4qNjhGeXk2UDByYUB2NyphNnE7YEsjQ0godFN2am9SOElmdj5PPFo0THNDMDBF
d0tmTAp6TzZOO2xvZ0Elc2cpWSFnNzJwPEYwQilJSy0xNWNydnpUfl54Wkx2YzdgJWI0ey1uRHEk
KExpcG57QmJlSD5wfnMKejtmUyR5RG1kb2RtTiFRayU8Qyp+VWVnKmt1ZnJTQ1EoIypZVTlFZWZI
RSU/SVdRdXBNQ0hifXdqamFQOXphVkRXCnpqNVVSeD82Jk5waW5kK1g7RyRNUyMjdkBvP3AkLTMp
d3k0ZU16K2UpO2NwcVlPbCZ6akEjIVErVD9RNSYjKGlUagp6d3IrPCR2K3tPTmYyKj0mU0RyTyRE
PWZmUzhAfCRsOVY1RUJhMEs/eyNEMDNRe3g9QWs7eE1CcCZsQ3EyNU5WRkMKeipfcWZle3EqV04r
JWh5aXV1QHQ1Vz9zKXp5blU+PyVCP3A+MmppZU1RUjQ7OHRJJjhwdHtwOFc0M1crcmkmZTJmCnpj
eGA+Vj8wbjRAb3djXyQ5PVgoUCsla35IWkxvUldCMTd2UVZfV0gyWX1qJEE+YTsxZF9SNUt1czcy
I0Y3bDVxMQp6KXt9R21rYTdefnpBU0NgbTd9JHRKPkFDLV4/Wn5sSSkmcGpRRk1tcVhMLShXWkFs
ZDZAVnA8LTJrPDxQPWxNSnoKeiU9NGk8Rld+dXdKUmk+VU9MI3RsPWE9KlJOfWdaTWJCWDdwY3dX
ZiEoTDVpK15SWVoxJit9clFtLTJpZiZuTlNJCnpEJG1QIUs3OzQ4Y3ohKzQlWHZQUj1ONnZOPWVm
LUQ4K21UeWA5aHZvQHdeJjJtUVU9ZT1XcWc+N2JsOC1pTCQrcwp6aH18RktFdW5FVkw0UDdoQ2c9
YmBqfXI2PktgIz5ZQjArQnheam1eSEE/UWhoejlndUZwaTQwP3lNSWhqNWtkRDUKelI4RyhqMilj
PSZsPzFzNkApNUxfQVF3Um81cCpqLW9kaWA4XmZFIzczM2BqNVNwPERiJl9zZkF1dXs5fTRaSENR
CnpnMDNkMGwlVX1SUlM9WDxQJkdrfUFPfUljbV56STxme3FaaGhNKyRhNmVaeyZMSHxPflVWQCQ9
WGVVOT42MTB0PQp6VD9CTyFeZzJOczNIbmNoZW9EfmkxcFNEaEY5fSpwJnxxdystUU9rWDNXQ0F9
alVuaDsxV2hBb0lZSUxZeHx5SUYKemZAfW0pb1RfXitBazVvO3tpTH4+PD8+LTh2LXZ7K0xKc1Qp
XmFiV2BmT3RgUTJwTmYqcjZ+RWMybloyNVg5PHY2CnpfPm4oUDxGTmZybEgtRVJJS2ZDMkg2Y2ZY
ZHhsZ0xsNVUlQHE4NkR5NWNjNFUhZGh1VVB6cHg4P2d7bEN1VW5lbgp6bTs4fSVBUUkraUtEKGdX
P1Fsc1JwSHZyZ0pNTkc/VlJ6NiRePn4kI01Caik/NHhkWjlHWUEke21CTml+c218a2IKejFYb0cp
V21+PnpYR1o9NzZCO0ZkUD98N0A9TSg3NU8kcE1Ua1E1PT94R282WXRnJTxQZ0NTfiVvPX5JelBS
U3U5CnpObG9xJFJlLUVobFhkejd0QWRffSN4UF8oS0JxVjBhem5oMj5ocCZeUExmfWQocH4yZHh3
LUNlQjxQZFM0d1E0Ngp6KV9jZiRHK0JJJE1jcl9EZnw3Kkg/Rns/VHZ3QyNJPnZ6SHh6NlNKdm1F
PzF+VTJidnw5TXQ0P2NedlF0KXN4N3AKenE0RF9fQFd5bW16MkVFZy0tJjg8dEU3TTwrJkVyeHgk
N01mWnkxakNXMmooLU9TOGh8NHUhYzEmX0ZRISVTUnopCnooUmk1RHI7TnNjNnlgSGBGYkdwSWVv
bFc9NkFoSHQ8QVphODRVczBkRkQjOEozWFJIVkgybUM5SzlyZ1ZHYHVNaQp6M1FLa1ZhSENZYG1P
PXJ5KF5LenB5TmRJZkcld316RzRybUlDWUc5fWpGK3NgZChBUzNTREc2TXB7LUN6cyZxSVQKejJ8
fUc8eiVTK3gqI2Y7Nzx6bVV+Xi05JD1laiV5YTlkWlgocGIzYztnPVI9amhmbClqcCN6PzwkS216
ZDwoOTFUCnpZS2shPiFqNW54QitWdS12MHhwVz1afDxAVCt8PE1gIXdVViZRKSpeVkRgRmJ0b1M2
PzchanYkZ2BLMmxrV05YSAp6T0pqeG9IUy0hQkwwRitASkUxTT91Nz1tPEl6biNPVHZ7NGR6QjJx
bHl8ZzRiIWtXe0lUO25rYy1iajtBRHN0dHMKejJEaCYrYypoSmxDQnlQYD9+XmcoI1RYXlV3RS0+
Q1J2aCgrI3lZSzFLR1FsdjN6RDt3M3Alfil3RHk+b0BxRnx7CnozQFRYUFR4VmohdkQ2fDtaNnBG
bis3dEhzeSk/TjNVVXdLWElUVWReRzNOQ1Z1WGp+MzMka0slWFB1YVkqbXt5aQp6eGd0JFgrVi1H
WFJUTF5JM0tpMihyWEl3XkBGWHxMNmdkU3ZzZTVRQSNQMWRpOHpDRXlMXnk0bkxXNSFkKCo2Ym0K
ekdaLTkoVG15YU1PVyYoa2Zsbyl9Xmx1PTtMcFhofU4jQXkzY2Z+aUNMenpZVUl5UHJFVip+YktW
Pzhfb0Rza3xaCno0YGpMUkM9MnFLS15nPmo1SGw+dGAldTlVKjF2Tkk+c0xPTThMbllEaEdCI0hR
UUoyYC05UGohOWkjUTdQTHk2egp6dGBLRmpEQSRTZEt+WCp8JTF4c0RjVHhVX0QwaG87cEQ1b0U8
JWdwRE9xM0A/c1coMzdJP2ItWnFQIz91a3xAV0QKemE8Vjl8N297eDlZRWRvfFd4WGZecVAkQyN0
KWplRmxwOTMoczM/Q1ckfU9VZGl9Rj1iejlHdUBNNSY3TW0/K1BQCnphcyskbDhfNzkwSCtZQUhx
bmg8Zzk8UDk3I2FlJiRlbntldDB5di1DOTNsNmteWE9ZNDxRX1ZZVHV8ODlhVU1DcAp6a2JDU3Jh
dm1Zflp8OU10Pm1OUE9vPTQ4OWlEbVB3MmVLWj5kTFprOHRPdjNsJGEpfl9mdmc5ejk+e3YmfEJW
TlIKempWZkN7WjBfPlFFekpXWjNJPCRRWm54aithI1hFZ0h3RUt7NCphVTdKJSlCLV8jOTE0TjMl
RHFUeHJNT3hgK0hlCnoxajUzcj4/PXhIYX52XmN7dXRVWExPdU1BeX5CQmotUHc0RHkmPldWeCk+
PH4oU0Bpe0FjYzUqZUsxOWl6QFJeUAp6PCRzYFdOOVkjUHRlSmlANVNzWkl7YXhtd016Q3hjUmFy
TypLXyUwcThsVDdNY2V4a3l6bGZoX3MmR14tMnp5dk4KejN6bVBhbCpMckJmK1haVmlIUUB4SV8z
dDIpZTlDYncoSHVkczVZNXVzdTAwKl5OPzd6c2tEWHpeSSE+U3VJa2V+Cnp0KXxsNWd1dCVMVFko
VilafFMpXy08PWdyIzk5dGsjUDBPRTlsaSpCJEFYUVYwMmxqJTNtcntkYiUydV4rK2hvMQp6ej9O
aiNuMW9reTQjaEpHWWNfQiteYzh8QDF1R28leF91PHUmSXVIPmJiMWxKQ2VuciEkJVd7Zkdue21A
cnZYdmUKek5SWjJQcSt9QDhOd3FlbUQ5STJmUTlDJmA1THt1ZTU0dzVIdHRtPkExRj5aJU4kb1N4
SmdkP0VicFYzMzJxUDJ1CnpBU2NfSyspZH5UJXw5WEApYCkjYHZma25HNTxeV2dmezM2ZXJIfVJ6
MUZNcTY2R1V7YzZ3Yjs0UWxJTWxUOF9IPwp6XmB4PzBMdWQ+TC1NfkAhcEJ2cWcjNnJafCNJZDle
SXlufT1lYCpNR01PIXNJcVNjSGlGPCRjKGohYEk/Xno3cVUKeiRuRUJ4Sjs8QEorc2tgK219QzQk
NWZXN2k/UTcjR008WmRiXmFMUzYlKVMtZWxnK3N0ckdMI3BIUDtlfmU8YX4tCno7IX58JXBraGpG
QVQ7Nj17bllrU2dCYHlTPD1VR1g7V3hLNDVfYVElV0hATF43Y2E1VCRCeitNZ0trSFlvbFQ2ZQp6
RSVmVWZLRDZlKFNnQVI3NE1vVnc8c3EyJjB8VnlKLTNGfjZuK3lUPW9Qb0ZYSkEtSSt6YWhqdkdQ
djFzezlsdSEKeldlQW1hT2gqPTxqYCU1QF5pdT14IyV+UzBiNUd8JFgxYytLcDkwdCskaFhoWDtL
UDdCWENQOGJLSlBNK0tpPmk9CnpKX0ROWS12bSZKdmdWbntJdypfSmdlLW11Vjg7dyQ3clBIeTQt
KkNScGU9YHd8Mm1MNVhPWk1BKnh+VzlNe184Owp6e1hgQ3lERWslMzZaMHIjJjlqbFVCZXQ3RUtp
MWdVP3tuK3srQXokKWg3ZGNMJVd9MClLa0xxXiRDMz4tdmZkb2MKejhPXno5VzQ2SVVmb3lnZkle
Ki04c1NfVSMzQGxeTTxlSHxrWk1sO3N2aEJIWnYyZ0JTSjlEY1hGOFRxMj9hOT9QCnpMQUUheU1u
SkRhU016K1RQVDY2fitIVzl+dlZBaDRSJUN+KkcqfSVJVzxNfmZSNFNGRTA7ISs/S0w9RyZTcz05
IQp6MjwkVkltWD1CI2hIe0V5KTV5QjBmX1JFaHJzRHtLdndEMj5XXjgtPjc4MFJ3VU5OJWR8OC1k
cHlmNihYZWp5VGsKeiNVSHtLQjFefXFLRT08OF9YSEJ2UHZTKFFgdUVXZm4wTkBNYGJtNTxAWGBJ
VypnTnMpeTlObTxgUm84TjhsVDMqCnpPPExXM2dkXlYwQ1RUZDtOeWExcnZpRmQjMX5KKjZxWEpM
YigraGxQVDY9a3I5ZzB1QmxLKTRBZWctR0pzemxSMgp6M0hhNCR6ZUJWP2pyZUt5U09gekVyeTk1
c3NSS1ZzcGtWYV5GVEdtQlJ8PnBiO1AoaFRGNjFgfmVFQyhISmJmZlgKemBUfk9nSkFwUn57YCYk
aTd4KiFPOX5KV1MhOHh9X0BVSWtqeUorN2VAS1Y4X0ZZdjx4fEU5cDNnKl5URVBXcU0kCnp7MDlP
TDI+ZDVXVC01KVN6ellOKDdrRklZMlJVODxQaWclPEJLVV9mWTB3TmlEZXo5QWU7fElLcTRyQmhZ
NWRDdAp6OT19R3o+OEUrbHpnRU5QMllQTz0hMEJndCFrTko3PVhBb2AxenM9a1BKIVBnQEc0PFhP
eUtQVHwyYzN9TjNLMGoKellkRSNRcFp6LWdReXAlYFQhZTUre3VVa1g8IztvXnBnbXo3e3ZBeXwj
bEsmfVF9I1RmIT1LalNKOVlSVWJva3BrCnp7Nmlnbk9vdWI5XkteZDwoQlZVTV87NE01cjRHTVZo
bVkwYUNMS09RaG5zYnt0aXU9U0BTQW1idHF5blZARnBEfAp6KCY2OUg7Vm44bXM+MmA5QFlIO0dT
Y2dCUSE/KX0zRSoqWUloa3ZCUXp0R3tkX29kSXIlWEloezROdUxsUVhQTSQKejR3clRFV3RoZ2VD
TkxjUTQ5N1F7Z3xyTio3VV5+KkpKTkNfMlR+bzk2VWx8LU1ydUghLWBpIypVNV8qa3NUfDNTCnpH
I317KEJwSGJnJW9+dndBbFo7QWtycEI/TGFJV2RfcG9aRCNZanQjWUxJUzVxNjJYJChsP1FBTVk7
e0M5PzY0Kgp6cjx7Sm5ufk85TCQlMGdZXnZ+RUlpSXZwZ2JCaHJFPU1qQzA1b3N6MzEpVXxARlo7
PHRlNVgrQzM8Uz1SbypWSWEKelRfeWFoNUFuQFFOS2BBWDxFJn5vLWpZSkBPeVopdFp7YnhYR3tO
VCY7PVE2fFchWTV3KVg3Tl5LZl9DLSQ7N2AxCnpHVyVRPmtLNG9TTyU3Yipaa1JWTz9jY0xgLTZt
I3RISWxTI24pdCtzQlZ+YzB6ayREb3tYTDU0OGJffmNSe0NkWAp6Y0sqZVdvblEzQ3dYSFpIdTVh
Z1NHdmtofS1LZ3l1RzxzanJRVFV9YmxhX3U3JipicD9jUDVFbi0hbi04eDwlX3EKemJpS3xiQGkm
PXNOJkpTY0MtVz0zcDIpQkZuWnl2PyV5bEZsZT5qKGpLfE0jMUY2eDs/QHVyYlUpR3B5KUxET3Zp
Cnppbmt4VXZpSUhXI1IhWWJlRm1vOD1ta2shYHFMKV9adWFSWT8pZDN3U3E3JXZ7blBvJHd9NW4t
Y25lNDtDRXBENgp6WmAkVnpzQyo1ZGhmPFFmfElIdnVRZkZyUEx7SF5gNkEqY3szbmN9JjVTSUZp
Y293Sz5BJXUqMDdMT2ZkUF96Z2EKekN1Izk1NFcjSW4ySnpTeTJVQnFkZnIkV3Y3RmtHITZ6dWhV
WlB4UVo0enQmNUR+Klp9Rmx+fDVpPGZ3Tkp3QjFkCnphLXhFYCtEZllEITJvK2Jqez9+MSNVeEV1
KEx9fFlLSG03WCNTX3hyP2RjdCNVaDJ+I085MTt+TjxkJnBXOzYqagp6OSFFbFhQNV9CJE5zV0NX
QlJsYCo/UTNGMThkS3tobXJGJjVrfDczckJvIVhnS29KKUBDd2hxVVEyKDVJWipVeE0KenI1Jkst
cnBUWjEkWj1tYXBybWBocC1qOHw9NF5tMChaTk8xVVMtIyFFRU88cjU7YmhOZiZXVzk7KV4zeyFX
MkF7CnpyJSM/ZHYyTUMhOypfY05Renc7fkNRWD8+JWB2XnNHMkp6XzZ3RkRePX5KaCQ4SWomWXtv
QWVeZSgmJml6eChzdwp6MjdlbFZjdSRCYyhxJHRLLUlJNkN5fGNidEhzZyZjRUFsX051eiU/I1Fy
RnMlbHtYZCNNJTxTQlh5b2xUOUB1PlEKempGVnNafDUjcEZ5I0dTOyZ5UExzejRCKiFqeUBSc0B3
a3JUUDFvR04/UEtTTSt4RlopWCFWP2xxcmFYMSUzSkZLCnorYmtQamUoPjwpK2ZPfHw/JD9SXmNp
cF5nUl51PGBLRz1TblpEQEd6UDJHUGVgT3lfT2pDJXQ4cjtnTHhCb24/Xgp6cDV9YFZrVFpOQzxe
MUVtKnN3fSFVLSo9SlhrX0kqe2NyNSh0WH14Nz1JdmRWfDY7PDQxSmdFTUlgOEJVJCVlbzYKeiV5
YUt0Xm8jMkVlKHxmd3lOI2R6VDBaP3E7YCRlNjR3YD5VXlRoSmpVRFhZNSZWVC0/S2FZT0VeNU1V
SnU9dmVxCno4YWBWMj9MKnU1a05lWSlaPEBNM0lQOUlsbzFUYFFKaDF3ayMpaypRZFhGc1k4dSNR
KWxWM2hDd3F4VWgoaVBKbAp6YFEtPXl7cHwyVDU4bk9UeSVXQXZ1bTgtb1gzTT5Rb1lVeyZMK2I0
OUZXPGQhfDN4bnI0V0c2N3R1dVJuR2tmIzMKenFrckd7Kk54N25oZDs2QV57SG9HVGxDTiRaQFlX
TXN7X3tHelUrJnBwM081eUhPemhkKU5Tc2lPRm4rJDxhYmAqCnphJk9fWXVVPkY9eil2ckd7anVu
Jl9YZCUjXlpyJkp2JUlWYXZMNDhLQW5TcHcyZUtaPmRMWms4dE92M2wkYSl+Xwp6ZnZnOXo5Pnt0
aT53JkJYdkw0OEtBblNwdzJlS1o+ZExaazh0T3YzbCRhKX5fZnZnOXo5Pnt0aT53JkJYezt6eEIK
RmUqa0F5Tl5BZkMKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5jcHAKaW5kZXggMzFhM2YwMmIzZWNhOGUwNTNkZDUyNTI1MDUxMjUz
NWZlMTBiYmIzYi4uZjA4NDhlYzQ4YmNiODZjMTdiNzVlNTEwODIxOGQ2MzJiNTM0MWY4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKQEAgLTI5LDkgKzI5LDYg
QEAKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1Zp
ZXcuaD4KIAotLy8gRklYTUU6IFRoaXMgbmVlZHMgYSBiZXR0ZXIgbmFtZQotI2RlZmluZSBBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApKQotCiBuYW1lc3BhY2Ug
V1RGIHsKIAogLy8gSXRlcmF0b3IgaW5pdGlhbGl6YXRpb24KQEAgLTU5LDYgKzU2LDEyIEBAIHN0
YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGNvbnN0
IGNoYXIqIGJyZWFrUnVsZXMpCiAKICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBM
QVRGT1JNKElPUykKK1RleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtp
bmdSdWxlU2V0IHJ1bGVTZXQpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKIAog
Ly8gSXRlcmF0b3IgdGV4dCBzZXR0aW5nCiAKQEAgLTE2NSwxMzEgKzE2OCwxNSBAQCBUZXh0QnJl
YWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogVGV4
dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcp
CiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9u
IGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKLSAgICAvLyA8aHR0cDov
L3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9z
b3VyY2UvZGF0YS9icmtpdHIvPi4KLSAgICAvLyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0
aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgotICAgIC8vICogUmVwbGFjZWQgJ1tc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVy
YWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVh
cmxpZXI7Ci0gICAgLy8gKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9t
IG1vdmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAgLy8gKiBB
ZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1h
IHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsK
LSAgICAvLyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBi
ZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0gICAgLy8g
KiBBZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCi0gICAgc3RhdGlj
IGNvbnN0IGNoYXIqIGtSdWxlcyA9Ci0gICAgICAgICIkQ1IgICAgICA9IFtcXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IENSfV07IgotICAgICAgICAiJExGICAgICAgPSBbXFxwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBMRn1dOyIKLSAgICAgICAgIiRDb250cm9sID0gW1xccHtHcmFwaGVt
ZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOyIKLSAgICAgICAgIiRWb2ljZU1hcmtzID0gW1xc
dUZGOUVcXHVGRjlGXTsiIC8vIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1h
cmtzCi0gICAgICAgICIkRXh0ZW5kICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4
dGVuZH0gJFZvaWNlTWFya3MgLSBbXFx1MEUzMCBcXHUwRTMyIFxcdTBFNDUgXFx1MEVCMCBcXHUw
RUIyXV07IgotICAgICAgICAiJFNwYWNpbmdNYXJrID0gW1tcXHB7R2VuZXJhbF9DYXRlZ29yeSA9
IFNwYWNpbmcgTWFya31dIC0gJEV4dGVuZF07IgotICAgICAgICAiJEwgICAgICAgPSBbXFxwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07IgotICAgICAgICAiJFYgICAgICAgPSBbXFxwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07IgotICAgICAgICAiJFQgICAgICAgPSBbXFxwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07IgotICAgICAgICAiJExWICAgICAgPSBbXFxwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOyIKLSAgICAgICAgIiRMVlQgICAgID0gW1xccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07IgotICAgICAgICAiJEhpbjAgICAgPSBbXFx1
MDkwNS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIk
SGluViAgICA9IFxcdTA5NEQ7IiAvLyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCi0gICAgICAgICIk
SGluMSAgICA9IFtcXHUwOTE1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4u
LEhhCi0gICAgICAgICIkQmVuMCAgICA9IFtcXHUwOTg1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBM
ZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRCZW5WICAgID0gXFx1MDlDRDsiIC8vIEJlbmdhbGkg
U2lnbiBWaXJhbWEKLSAgICAgICAgIiRCZW4xICAgID0gW1xcdTA5OTUtXFx1MDlCOV07IiAvLyBC
ZW5nYWxpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRQYW4wICAgID0gW1xcdTBBMDUtXFx1
MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRQYW5WICAgID0g
XFx1MEE0RDsiIC8vIEd1cm11a2hpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkUGFuMSAgICA9IFtc
XHUwQTE1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAi
JEd1ajAgICAgPSBbXFx1MEE4NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBBLC4uLixI
YQotICAgICAgICAiJEd1alYgICAgPSBcXHUwQUNEOyIgLy8gR3VqYXJhdGkgU2lnbiBWaXJhbWEK
LSAgICAgICAgIiRHdWoxICAgID0gW1xcdTBBOTUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0
ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkT3JpMCAgICA9IFtcXHUwQjA1LVxcdTBCMzldOyIgLy8g
T3JpeWEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkT3JpViAgICA9IFxcdTBCNEQ7IiAvLyBP
cml5YSBTaWduIFZpcmFtYQotICAgICAgICAiJE9yaTEgICAgPSBbXFx1MEIxNS1cXHUwQjM5XTsi
IC8vIE9yaXlhIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRUZWwwICAgID0gW1xcdTBDMDUt
XFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkVGVsViAgICA9
IFxcdTBDNEQ7IiAvLyBUZWx1Z3UgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRUZWwxICAgID0gW1xc
dTBDMTQtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEth
bjAgICAgPSBbXFx1MEM4NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0g
ICAgICAgICIkS2FuViAgICA9IFxcdTBDQ0Q7IiAvLyBLYW5uYWRhIFNpZ24gVmlyYW1hCi0gICAg
ICAgICIkS2FuMSAgICA9IFtcXHUwQzk1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwu
Li4sSGEKLSAgICAgICAgIiRNYWwwICAgID0gW1xcdTBEMDUtXFx1MEQzOV07IiAvLyBNYWxheWFs
YW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsViAgICA9IFxcdTBENEQ7IiAvLyBNYWxh
eWFsYW0gU2lnbiBWaXJhbWEKLSAgICAgICAgIiRNYWwxICAgID0gW1xcdTBEMTUtXFx1MEQzOV07
IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUkkgICAgICA9IFtcXFUw
MDAxRjFFNi1cXFUwMDAxRjFGRl07IiAvLyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCi0gICAg
ICAgICIkWldKICAgICA9IFxcdTIwMEQ7IiAvLyBaZXJvIHdpZHRoIGpvaW5lcgotICAgICAgICAi
JEVtb2ppVmFyID0gW1xcdUZFMEZdOyIgLy8gRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9y
Ci0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0g
W1xcdTI2NDAgXFx1MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMt
XFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0
NDEgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAw
MUY0NzEgXFxVMDAwMUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxV
MDAwMUY0ODYtXFxVMDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTgg
XFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2
NEUgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjZdOyIgLy8gRW1vamkgdGhhdCBw
YXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xc
dTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxV
MDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMg
XFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0
NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAw
MUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxV
MDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIt
XFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2
QzAgXFxVMDAwMUY5MThdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmll
cnMKLSNlbHNlCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYt
XFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBa
V0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1c
XHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxc
VTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUw
IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFG
NDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAw
MDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxc
VTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMw
XSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAg
ICAgICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIgLy8gRml0enBh
dHJpY2sgbW9kaWZpZXJzCi0gICAgICAgICIhIWNoYWluOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKLSAgICAgICAgIiEhUklOb0NoYWluOyIKLSNlbmRpZgotICAgICAgICAiISFmb3J3
YXJkOyIKLSAgICAgICAgIiRDUiAkTEY7IgotICAgICAgICAiJEwgKCRMIHwgJFYgfCAkTFYgfCAk
TFZUKTsiCi0gICAgICAgICIoJExWIHwgJFYpICgkViB8ICRUKTsiCi0gICAgICAgICIoJExWVCB8
ICRUKSAkVDsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkUkkgJFJJ
ICRFeHRlbmQqIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCo7IgotICAgICAgICAi
W14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRM
Rl0gJFNwYWNpbmdNYXJrOyIKLSNlbHNlCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRF
eHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotICAg
ICAgICAiJFJJICRSSSAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAg
ICAiJEhpbjAgJEhpblYgJEhpbjE7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKLSAg
ICAgICAgIiRCZW4wICRCZW5WICRCZW4xOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCi0g
ICAgICAgICIkUGFuMCAkUGFuViAkUGFuMTsiIC8vIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkK
LSAgICAgICAgIiRHdWowICRHdWpWICRHdWoxOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJk
KQotICAgICAgICAiJE9yaTAgJE9yaVYgJE9yaTE7IiAvLyBPcml5YSBWaXJhbWEgKGZvcndhcmQp
Ci0gICAgICAgICIkVGVsMCAkVGVsViAkVGVsMTsiIC8vIFRlbHVndSBWaXJhbWEgKGZvcndhcmQp
Ci0gICAgICAgICIkS2FuMCAkS2FuViAkS2FuMTsiIC8vIEthbm5hZGEgVmlyYW1hIChmb3J3YXJk
KQotICAgICAgICAiJE1hbDAgJE1hbFYgJE1hbDE7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChmb3J3
YXJkKQotICAgICAgICAiJFpXSiAkRW1vamlGb3JTZXFzOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1v
amkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9q
aU1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3
aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0gICAgICAg
ICIhIXJldmVyc2U7IgotICAgICAgICAiJExGICRDUjsiCi0gICAgICAgICIoJEwgfCAkViB8ICRM
ViB8ICRMVlQpICRMOyIKLSAgICAgICAgIigkViB8ICRUKSAoJExWIHwgJFYpOyIKLSAgICAgICAg
IiRUICgkTFZUIHwgJFQpOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAg
IiRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQq
ICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07Igot
ICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07IgotI2Vsc2UKLSAgICAg
ICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5n
TWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkkgJFJJOyIK
LSAgICAgICAgIiRSSSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIkSGluMSAkSGluViAkSGluMDsi
IC8vIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRCZW4xICRCZW5WICRC
ZW4wOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFBhbjEgJFBhblYg
JFBhbjA7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEd1ajEgJEd1
alYgJEd1ajA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE9yaTEg
JE9yaVYgJE9yaTA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFRl
bDEgJFRlbFYgJFRlbDA7IiAvLyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRL
YW4xICRLYW5WICRLYW4wOyIgLy8gS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAi
JE1hbDEgJE1hbFYgJE1hbDA7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKLSAgICAg
ICAgIiRFbW9qaUZvclNlcXMgJFpXSjsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1
ZW5jZXMKLSAgICAgICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyIgLy8g
RG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRp
b24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotI2lmIEFERElUSU9OQUxfRU1P
SklfU1VQUE9SVAotICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiJFJJICRSSSs7
IgotICAgICAgICAiWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAg
ICAgICIhIXNhZmVfZm9yd2FyZDsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0gICAgICAgICIkRW1v
amlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyI7Ci0jZWxzZQotICAgICAgICAiWyRF
bW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIkRW1vamlGb3JN
b2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyIKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIK
LSAgICAgICAgIiEhc2FmZV9mb3J3YXJkOyI7Ci0jZW5kaWYKLSAgICBzdGF0aWMgVGV4dEJyZWFr
SXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0
b3JXaXRoUnVsZXMoa1J1bGVzKTsKKworICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGl0ZXJhdG9y
Rm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50KSkgeworICAgICAgICBp
ZiAoYXV0byogaXRlcmF0b3JXaXRoVGV4dCA9IHNldFRleHRGb3JJdGVyYXRvcigqaXRlcmF0b3Is
IHN0cmluZykpCisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JXaXRoVGV4dDsKKyAgICAgICAg
dWJya19jbG9zZShyZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpKTsK
KyAgICB9CisKKyAgICAKKyAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNv
ck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoY3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzKTsKICNlbHNlIC8vIFBMQVRGT1JNKElPUykKICAgICAvLyBVc2Ug
dGhlIHNwZWNpYWwgVGhhaSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgZm9yIGFsbCBsb2NhbGVz
CiAgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yKFVCUktfQ0hBUkFDVEVSLCAidGgiKTsKQEAgLTMxNyw0
NDIgKzIwNCwxOCBAQCB2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVy
YXRvciogaXRlcmF0b3IpCiAgICAgTGluZUJyZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQb29sKCku
cHV0KGl0ZXJhdG9yKTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UHJvbG9ndWUgPQot
ICAgICIhIWNoYWluOyIKLSAgICAiISFMQkNNTm9DaGFpbjsiCi0gICAgIiEhbG9va0FoZWFkSGFy
ZEJyZWFrOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQmVmb3JlID0K
LSAgICAvLyBleHBsaWNpdGx5IGVudW1lcmF0ZSAkQ0ogc2luY2UgSUNVIHZlcnNpb25zIHByaW9y
IHRvIDQ5IGRvbid0IHN1cHBvcnQgOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFy
dGVyOgotICAgICIkQ0ogPSBbIgotI2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAm
JiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAgICAiOkxpbmVCcmVhaz1Db25kaXRp
b25hbF9KYXBhbmVzZV9TdGFydGVyOiIKLSNlbHNlCi0gICAgIlxcdTMwNDFcXHUzMDQzXFx1MzA0
NVxcdTMwNDdcXHUzMDQ5XFx1MzA2M1xcdTMwODNcXHUzMDg1XFx1MzA4N1xcdTMwOEVcXHUzMDk1
XFx1MzA5NlxcdTMwQTFcXHUzMEEzXFx1MzBBNVxcdTMwQTciCi0gICAgIlxcdTMwQTlcXHUzMEMz
XFx1MzBFM1xcdTMwRTVcXHUzMEU3XFx1MzBFRVxcdTMwRjVcXHUzMEY2XFx1MzBGQyIKLSAgICAi
XFx1MzFGMFxcdTMxRjFcXHUzMUYyXFx1MzFGM1xcdTMxRjRcXHUzMUY1XFx1MzFGNlxcdTMxRjdc
XHUzMUY4XFx1MzFGOVxcdTMxRkFcXHUzMUZCXFx1MzFGQ1xcdTMxRkRcXHUzMUZFXFx1MzFGRiIK
LSAgICAiXFx1RkY2N1xcdUZGNjhcXHVGRjY5XFx1RkY2QVxcdUZGNkJcXHVGRjZDXFx1RkY2RFxc
dUZGNkVcXHVGRjZGXFx1RkY3MCIKLSNlbmRpZgotICAgICJdOyI7Ci0KLXN0YXRpYyBjb25zdCBj
aGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgPQotICAgICIkQkFfU1VCID0gW1xc
dTIwMTBcXHUyMDEzXTsiCi0gICAgIiRFWF9TVUIgPSBbXFx1MDAyMVxcdTAwM0ZcXHVGRjAxXFx1
RkYxRl07IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUy
MDI2XTsiCi0gICAgIiRJU19TVUIgPSBbXFx1MDAzQVxcdTAwM0JdOyIKLSAgICAiJE5TX1NVQiA9
IFtcXHUyMDNDXFx1MjA0N1xcdTIwNDhcXHUyMDQ5XFx1MzAwNVxcdTMwMUNcXHUzMDNCXFx1MzA5
RFxcdTMwOUVcXHUzMEEwXFx1MzBGQlxcdTMwRkRcXHUzMEZFXFx1RkYxQVxcdUZGMUJcXHVGRjY1
XTsiCi0gICAgIiRQT19TVUIgPSBbXFx1MDAyNVxcdTAwQTJcXHUwMEIwXFx1MjAzMFxcdTIwMzJc
XHUyMDMzXFx1MjEwM1xcdUZGMDVcXHVGRkUwXTsiCi0gICAgIiRQUl9TVUIgPSBbXFx1MDAyNFxc
dTAwQTNcXHUwMEE1XFx1MjBBQ1xcdTIxMTZcXHVGRjA0XFx1RkZFMVxcdUZGRTVdOyIKLSAgICAi
JElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQ
T19TVUIgJFBSX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNo
YXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZU5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAn
JzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9T
VUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NV
QiA9IFtcXHUzMDA1XFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBGRFxcdTMwRkVdOyIKLSAgICAi
JFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0og
JElOX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3Qg
Y2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA9Ci0gICAgIiRCQV9TVUIgPSBb
XFx1MjAxMFxcdTIwMTNdOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcn
OyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NV
QiA9IFtcXHUzMDFDXFx1MzBBMF07IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VC
ID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOyIKLSAgICAiJE5T
X0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9t
Tm9ybWFsTm9uQ0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIK
LSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9
ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBS
X1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0pdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7
Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLID0K
LSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9
ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5T
X1NVQiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAg
ICAiJElEX0FERCA9ICcnOyIKLSAgICAiJE5TX0FERCA9IFskQ0pdOyI7Ci0KLSNkZWZpbmUgdWF4
MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0
b21TdHJpY3RDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHRDSksgICAg
ICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25t
ZW50c0N1c3RvbURlZmF1bHROb25DSksgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RO
b25DSksKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNBZnRlciA9Ci0gICAg
IiRBSSA9IFs6TGluZUJyZWFrID0gQW1iaWd1b3VzOl07IgotICAgICIkQUwgPSBbOkxpbmVCcmVh
ayA9IEFscGhhYmV0aWM6XTsiCi0gICAgIiRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0FmdGVy
Ol0gLSAkQkFfU1VCXTsiCi0gICAgIiRCQiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07
IgotICAgICIkQksgPSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOyIKLSAgICAiJEIy
ID0gWzpMaW5lQnJlYWsgPSBCcmVha19Cb3RoOl07IgotICAgICIkQ0IgPSBbOkxpbmVCcmVhayA9
IENvbnRpbmdlbnRfQnJlYWs6XTsiCi0gICAgIiRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVu
Y3R1YXRpb246XTsiCi0gICAgIiRDTSA9IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsi
Ci0gICAgIiRDUCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsiCi0gICAgIiRD
UiA9IFs6TGluZUJyZWFrID0gQ2FycmlhZ2VfUmV0dXJuOl07IgotICAgICIkRVggPSBbWzpMaW5l
QnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0gJEVYX1NVQl07IgotICAgICIkR0wgPSBbOkxpbmVCcmVh
ayA9IEdsdWU6XTsiCi0jaWYgKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lD
VV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KQotICAgICIkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJl
d19MZXR0ZXI6XTsiCi0jZWxzZQotICAgICIkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1d
OyIKLSNlbmRpZgotICAgICIkSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOyIKLSAgICAiJEgy
ID0gWzpMaW5lQnJlYWsgPSBIMjpdOyIKLSAgICAiJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOyIK
LSAgICAiJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQURE
XSAtICRJRF9TVUJdOyIKLSAgICAiJElOID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAt
ICRJTl9TVUJdOyIKLSAgICAiJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0g
JElTX1NVQl07IgotICAgICIkSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07IgotICAgICIkSlYgPSBb
OkxpbmVCcmVhayA9IEpWOl07IgotICAgICIkSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07IgotICAg
ICIkTEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOyIKLSAgICAiJE5MID0gWzpMaW5lQnJl
YWsgPSBOZXh0X0xpbmU6XTsiCi0gICAgIiROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRl
cjpdIC0gJENKXSAkTlNfQUREXSAtICROU19TVUJdOyIKLSAgICAiJE5VID0gWzpMaW5lQnJlYWsg
PSBOdW1lcmljOl07IgotICAgICIkT1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246
XTsiCi0gICAgIiRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NV
Ql07IgotICAgICIkUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NV
Ql07IgotICAgICIkUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOyIKLSAgICAiJFJJID0g
W1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsiCi0gICAgIiRTQSA9IFs6TGluZUJyZWFrID0gQ29t
cGxleF9Db250ZXh0Ol07IgotICAgICIkU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOyIK
LSAgICAiJFNQID0gWzpMaW5lQnJlYWsgPSBTcGFjZTpdOyIKLSAgICAiJFNZID0gWzpMaW5lQnJl
YWsgPSBCcmVha19TeW1ib2xzOl07IgotICAgICIkV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9p
bmVyOl07IgotICAgICIkWFggPSBbOkxpbmVCcmVhayA9IFVua25vd246XTsiCi0gICAgIiRaVyA9
IFs6TGluZUJyZWFrID0gWldTcGFjZTpdOyIKLSAgICAiJFpXSiA9IFxcdTIwMEQ7IgotICAgICIk
RW1vamlWYXIgPSBcXHVGRTBGOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAi
JEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFG
MzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAw
MDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxc
VTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgx
LVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFG
NTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAw
MDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2XTsi
IC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICIkRW1vamlG
b3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxV
MDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDIt
XFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0
NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAw
MUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxV
MDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcg
XFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2
QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MThdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0
cmljayBtb2RpZmllcnMKLSNlbHNlCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUw
MDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IgotICAgICIkRW1vamlGb3JNb2RzID0g
W1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFG
M0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAw
MDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxc
VTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1
LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFG
NjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAw
MDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9k
aWZpZXJzCi0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNG
Rl07IgotICAgICIkZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07
IgotICAgICIkQUxQbHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOyIKLSAgICAiJEFMY20gPSAk
QUxQbHVzICRDTSo7IgotICAgICIkQkFjbSA9ICRCQSAkQ00qOyIKLSAgICAiJEJCY20gPSAkQkIg
JENNKjsiCi0gICAgIiRCMmNtID0gJEIyICRDTSo7IgotICAgICIkQ0xjbSA9ICRDTCAkQ00qOyIK
LSAgICAiJENQY20gPSAkQ1AgJENNKjsiCi0gICAgIiRFWGNtID0gJEVYICRDTSo7IgotICAgICIk
R0xjbSA9ICRHTCAkQ00qOyIKLSAgICAiJEhMY20gPSAkSEwgJENNKjsiCi0gICAgIiRIWWNtID0g
JEhZICRDTSo7IgotICAgICIkSDJjbSA9ICRIMiAkQ00qOyIKLSAgICAiJEgzY20gPSAkSDMgJENN
KjsiCi0gICAgIiRJRGNtID0gJElEICRDTSo7IgotICAgICIkSU5jbSA9ICRJTiAkQ00qOyIKLSAg
ICAiJElTY20gPSAkSVMgJENNKjsiCi0gICAgIiRKTGNtID0gJEpMICRDTSo7IgotICAgICIkSlZj
bSA9ICRKViAkQ00qOyIKLSAgICAiJEpUY20gPSAkSlQgJENNKjsiCi0gICAgIiROU2NtID0gJE5T
ICRDTSo7IgotICAgICIkTlVjbSA9ICROVSAkQ00qOyIKLSAgICAiJE9QY20gPSAkT1AgJENNKjsi
Ci0gICAgIiRQT2NtID0gJFBPICRDTSo7IgotICAgICIkUFJjbSA9ICRQUiAkQ00qOyIKLSAgICAi
JFFVY20gPSAkUVUgJENNKjsiCi0gICAgIiRSSWNtID0gJFJJICRDTSo7IgotICAgICIkU1ljbSA9
ICRTWSAkQ00qOyIKLSAgICAiJFdKY20gPSAkV0ogJENNKjsiOwotCi1zdGF0aWMgY29uc3QgY2hh
ciogdWF4MTRGb3J3YXJkID0KLSAgICAiISFmb3J3YXJkOyIKLSAgICAiJENBTl9DTSA9IFteJFNQ
ICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsiCi0gICAgIiRDQU5UX0NNID0gWyRTUCAkQksgJENS
ICRMRiAkTkwgJFpXICRDTV07IgotICAgICIkQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYg
JE5MICRaVyAkU1BdOyIKLSAgICAiJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElT
ICRTWSAkV0ogJEdMICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsiCi0gICAg
IiRBTF9GT0xMT1cgPSBbJEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOyIKLSAgICAiJExC
NEJyZWFrcyA9IFskQksgJENSICRMRiAkTkxdOyIKLSAgICAiJExCNE5vbkJyZWFrcyA9IFteJEJL
ICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOyIKLSAg
ICAiJExCOE5vbkJyZWFrcyA9IFtbJExCNE5vbkJyZWFrc10gLSBbJFpXXV07IgotICAgICIkTEIx
OE5vbkJyZWFrcyA9IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOyIKLSAgICAiJExCMThCcmVha3Mg
PSBbJExCOEJyZWFrcyAkU1BdOyIKLSAgICAiJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVh
a3MgLSAkQ0JdOyIKLSAgICAiJEFMUGx1cyAkQ00rOyIKLSAgICAiJEJBICRDTSs7IgotICAgICIk
QkIgJENNKzsiCi0gICAgIiRCMiAkQ00rOyIKLSAgICAiJENMICRDTSs7IgotICAgICIkQ1AgJENN
KzsiCi0gICAgIiRFWCAkQ00rOyIKLSAgICAiJEdMICRDTSs7IgotICAgICIkSEwgJENNKzsiCi0g
ICAgIiRIWSAkQ00rOyIKLSAgICAiJEgyICRDTSs7IgotICAgICIkSDMgJENNKzsiCi0gICAgIiRJ
RCAkQ00rOyIKLSAgICAiJElOICRDTSs7IgotICAgICIkSVMgJENNKzsiCi0gICAgIiRKTCAkQ00r
OyIKLSAgICAiJEpWICRDTSs7IgotICAgICIkSlQgJENNKzsiCi0gICAgIiROUyAkQ00rOyIKLSAg
ICAiJE5VICRDTSs7IgotICAgICIkT1AgJENNKzsiCi0gICAgIiRQTyAkQ00rOyIKLSAgICAiJFBS
ICRDTSs7IgotICAgICIkUVUgJENNKzsiCi0gICAgIiRSSSAkQ00rOyIKLSAgICAiJFNZICRDTSs7
IgotICAgICIkV0ogJENNKzsiCi0gICAgIiRDUiAkTEYgezEwMH07IgotICAgICIkTEI0Tm9uQnJl
YWtzPyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEw
MH07IgotICAgICIkQ00rICRMQjRCcmVha3MgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzIFsk
U1AgJFpXXTsiCi0gICAgIiRDQU5fQ00gJENNKiBbJFNQICRaV107IgotICAgICIkQ00rIFskU1Ag
JFpXXTsiCi0gICAgIiRFbW9qaUZvclNlcXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRF
bW9qaUZvclNlcXM7IgotICAgICIkQ0FOX0NNICRDTSs7IgotICAgICIkQ00rOyIKLSAgICAiJENB
Tl9DTSAkQ00qICRXSmNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkV0pjbTsiCi0gICAgIiRDTSsg
JFdKY207IgotICAgICIkV0pjbSAkQ0FOVF9DTTsiCi0gICAgIiRXSmNtICRDQU5fQ00gJENNKjsi
Ci0gICAgIiRHTGNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5UX0NNOyIKLSAgICAi
W1skTEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSogJEdMY207IgotICAgICIkQ00r
IEdMY207IgotICAgICIkTEI4Tm9uQnJlYWtzICRDTDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ0w7
IgotICAgICIkQ00rICRDTDsiCi0gICAgIiRMQjhOb25CcmVha3MgJENQOyIKLSAgICAiJENBTl9D
TSAkQ00qICRDUDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkRVg7Igot
ICAgICIkQ0FOX0NNICRDTSogJEVYOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkTEI4Tm9uQnJl
YWtzICRJUzsiCi0gICAgIiRDQU5fQ00gJENNKiAkSVM7IgotICAgICIkQ00rICRJUzsiCi0gICAg
IiRMQjhOb25CcmVha3MgJFNZOyIKLSAgICAiJENBTl9DTSAkQ00qICRTWTsiCi0gICAgIiRDTSsg
JFNZOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOX0NNICRDTSo7IgotICAgICIkT1BjbSAkU1AqICRD
QU5UX0NNOyIKLSAgICAiJE9QY20gJFNQKyAkQ00rICRBTF9GT0xMT1c/OyIKLSAgICAiJFFVY20g
JFNQKiAkT1BjbTsiCi0gICAgIigkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOyIKLSAgICAiJEIy
Y20gJFNQKiAkQjJjbTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207IgotICAgICIk
Q00rICRRVWNtOyIKLSAgICAiJFFVY20gLj87IgotICAgICIkUVVjbSAkTEIxOE5vbkJyZWFrcyAk
Q00qOyIKLSAgICAiJExCMjBOb25CcmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsg
IgotICAgICIkQkJjbSBbXiRDQl07IgotICAgICIkQkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOyIK
LSAgICAiJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87IgotICAgICIkU1ljbSAkSExjbTsi
Ci0gICAgIigkQUxjbSB8ICRITGNtKSAkSU5jbTsiCi0gICAgIiRDTSsgJElOY207IgotICAgICIk
RVhjbSAkSU5jbTsiCi0gICAgIiRJRGNtICRJTmNtOyIKLSAgICAiJElOY20gJElOY207IgotICAg
ICIkTlVjbSAkSU5jbTsiCi0gICAgIiRJRGNtICRQT2NtOyIKLSAgICAiJEFMY20gJE5VY207Igot
ICAgICIkSExjbSAkTlVjbTsiCi0gICAgIiRDTSsgJE5VY207IgotICAgICIkTlVjbSAkQUxjbTsi
Ci0gICAgIiROVWNtICRITGNtOyIKLSAgICAiJFBSY20gJElEY207IgotICAgICIkUFJjbSAoJEFM
Y20gfCAkSExjbSk7IgotICAgICIkUE9jbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJFBSY20g
fCAkUE9jbSk/ICgkT1BjbSB8ICRIWWNtKT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkq
ICgkQ0xjbSB8ICRDUGNtKT8gKCRQUmNtIHwgJFBPY20pPzsiCi0gICAgIiRKTGNtICgkSkxjbSB8
ICRKVmNtIHwgJEgyY20gfCAkSDNjbSk7IgotICAgICIoJEpWY20gfCAkSDJjbSkgKCRKVmNtIHwg
JEpUY20pOyIKLSAgICAiKCRKVGNtIHwgJEgzY20pICRKVGNtOyIKLSAgICAiKCRKTGNtIHwgJEpW
Y20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20g
fCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRQT2NtOyIKLSAgICAiJFBSY20gKCRKTGNtIHwgJEpW
Y20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICgkQUxj
bSB8ICRITGNtKTsiCi0gICAgIiRDTSsgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJElTY20gKCRB
TGNtIHwgJEhMY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207IgotICAg
ICIkQ00rICRPUGNtOyIKLSAgICAiJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7IgotI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkUkljbSAkUkljbTsiCi0jZW5kaWYKLSAg
ICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IjsKLQotc3RhdGljIGNvbnN0
IGNoYXIqIHVheDE0UmV2ZXJzZSA9Ci0gICAgIiEhcmV2ZXJzZTsiCi0gICAgIiRDTSsgJEFMUGx1
czsiCi0gICAgIiRDTSsgJEJBOyIKLSAgICAiJENNKyAkQkI7IgotICAgICIkQ00rICRCMjsiCi0g
ICAgIiRDTSsgJENMOyIKLSAgICAiJENNKyAkQ1A7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRD
TSsgJEdMOyIKLSAgICAiJENNKyAkSEw7IgotICAgICIkQ00rICRIWTsiCi0gICAgIiRDTSsgJEgy
OyIKLSAgICAiJENNKyAkSDM7IgotICAgICIkQ00rICRJRDsiCi0gICAgIiRDTSsgJElOOyIKLSAg
ICAiJENNKyAkSVM7IgotICAgICIkQ00rICRKTDsiCi0gICAgIiRDTSsgJEpWOyIKLSAgICAiJENN
KyAkSlQ7IgotICAgICIkQ00rICROUzsiCi0gICAgIiRDTSsgJE5VOyIKLSAgICAiJENNKyAkT1A7
IgotICAgICIkQ00rICRQTzsiCi0gICAgIiRDTSsgJFBSOyIKLSAgICAiJENNKyAkUVU7IgotI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00rICRSSTsiCi0jZW5kaWYKLSAgICAi
JENNKyAkU1k7IgotICAgICIkQ00rICRXSjsiCi0gICAgIiRDTSs7IgotICAgICIkQUxfRk9MTE9X
ICRDTSsgLyAoWyRCSyAkQ1IgJExGICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRT
UCsgJENNKiAoW14kT1AgJENNICRTUF0gfCBbJEFMIHtlb2Z9XSkpOyIKLSAgICAiWyRQUl0gLyAk
Q00rIFskQksgJENSICRMRiAkTkwgJFpXICRTUCB7ZW9mfV07IgotICAgICIkTEI0QnJlYWtzIFsk
TEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICIkTEI0QnJlYWtzICRDTSsgJENBTl9DTTsiCi0gICAg
IiRMRiAkQ1I7IgotICAgICJbJFNQICRaV10gWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIlsk
U1AgJFpXXSAkQ00rICRDQU5fQ007IgotICAgICIkRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9k
cz8gJEVtb2ppVmFyPyAkRW1vamlGb3JTZXFzOyIKLSAgICAiJENNKyAkQ0FOX0NNOyIKLSAgICAi
JENNKiAkV0ogJENNKiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENN
XTsiCi0gICAgIiRDQU5UX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFdK
OyIKLSAgICAiJENNKiAkR0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZXV07
IgotICAgICIkQ0FOVF9DTSAkQ00qICRHTDsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRHTDsi
Ci0gICAgIiRDTCAkQ00rICRDQU5fQ007IgotICAgICIkQ1AgJENNKyAkQ0FOX0NNOyIKLSAgICAi
JEVYICRDTSsgJENBTl9DTTsiCi0gICAgIiRJUyAkQ00rICRDQU5fQ007IgotICAgICIkU1kgJENN
KyAkQ0FOX0NNOyIKLSAgICAiJENMIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ1AgWyRM
QjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAi
JElTIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkU1kgWyRMQjhOb25CcmVha3MtJENNXTsi
Ci0gICAgIlskQ0wgJENQICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7ICIKLSAgICAi
JENNKiAkQ0FOX0NNICRTUCogJENNKiAkT1A7IgotICAgICIkQ0FOVF9DTSAkU1AqICRDTSogJE9Q
OyIKLSAgICAiJEFMX0ZPTExPVz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9G
T0xMT1dfTk9DTSAkQ00rICRTUCsgJENNKiAkT1A7IgotICAgICIkQ00qICRBTF9GT0xMT1dfQ00g
JENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJFNZICRDTSAkU1ArICRPUDsiCi0gICAgIiRDTSog
JE9QICRTUCogJENNKiAkUVU7IgotICAgICIkQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7
IgotICAgICIkQ00qICRCMiAkU1AqICRDTSogJEIyOyIKLSAgICAiJENNKiAkUVUgJENNKiAkQ0FO
X0NNOyIKLSAgICAiJENNKiAkUVUgJExCMThOb25CcmVha3M7IgotICAgICIkQ00qICRDQU5fQ00g
JENNKiAkUVU7IgotICAgICIkQ0FOVF9DTSAkQ00qICRRVTsiCi0gICAgIiRDTSogKCRCQSB8ICRI
WSB8ICROUykgJENNKiBbJExCMjBOb25CcmVha3MtJENNXTsiCi0gICAgIiRDTSogWyRMQjIwTm9u
QnJlYWtzLSRDTV0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAkQkI7IgotICAgICJbXiRD
Ql0gJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsiCi0gICAgIiRDTSogJEhMICRDTSogJFNZOyIK
LSAgICAiJENNKiAkSU4gJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICRJTiAkQ00q
ICRFWDsiCi0gICAgIiRDTSogJElOICRDTSogJElEOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSU47
IgotICAgICIkQ00qICRJTiAkQ00qICROVTsiCi0gICAgIiRDTSogJFBPICRDTSogJElEOyIKLSAg
ICAiJENNKiAkTlUgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwg
JEhMKSAkQ00qICROVTsiCi0gICAgIiRDTSogJElEICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFM
UGx1cyB8ICRITCkgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQ
TzsiCi0gICAgIigkQ00qICgkUFIgfCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAo
JE5VIHwgJElTIHwgJFNZKSkqICRDTSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQ
UiB8ICRQTykpPzsiCi0gICAgIiRDTSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7
IgotICAgICIkQ00qICgkSlQgfCAkSlYpICRDTSogKCRIMiB8ICRKVik7IgotICAgICIkQ00qICRK
VCAkQ00qICgkSDMgfCAkSlQpOyIKLSAgICAiJENNKiAkSU4gJENNKiAoJEgzIHwgJEgyIHwgJEpU
IHwgJEpWIHwgJEpMKTsiCi0gICAgIiRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRK
ViB8ICRKTCk7IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSog
JFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7Igot
ICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRJUzsiCi0gICAgIiRDTSogJE9QICRDTSog
KCRBTFBsdXMgfCAkSEwgfCAkTlUpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkg
JENNKiAkQ1A7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00qICRSSSAk
Q00qICRSSTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1v
ZHM7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0U2FmZUZvcndhcmQgPQotICAgICIhIXNh
ZmVfZm9yd2FyZDsiCi0gICAgIlskQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAk
U1AgJGRpY3Rpb25hcnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRk
aWN0aW9uYXJ5XTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNFNhZmVSZXZlcnNlID0KLSAgICAiISFzYWZlX3JldmVyc2U7IgotICAg
ICIkQ00rIFteJENNICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRDTSsgJFNQIC8g
LjsiCi0gICAgIiRTUCsgJENNKiAkT1A7IgotICAgICIkU1ArICRDTSogJFFVOyIKLSAgICAiJFNQ
KyAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJFNQKyAkQ00qICRCMjsiCi0gICAgIiRDTSogKCRI
WSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOyIK
LSAgICAiKCRDTCB8ICRDUCkgJENNKiAoJE5VIHwgJElTIHwgJFNZKTsiCi0gICAgIiRkaWN0aW9u
YXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KIHN0YXRpYyBTdHJpbmcgbWFwTGluZUl0ZXJhdG9yTW9kZVRv
UnVsZXMoTGluZUJyZWFrSXRlcmF0b3JNb2RlIG1vZGUsIGJvb2wgaXNDSkspCiB7Ci0gICAgU3Ry
aW5nQnVpbGRlciBydWxlc0J1aWxkZXI7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFBy
b2xvZ3VlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNCZWZvcmUp
OwogICAgIHN3aXRjaCAobW9kZSkgewogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFY
MTQ6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tRGVmYXVsdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLKTsK
LSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxlczsKICAgICBj
YXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0TG9vc2U6Ci0gICAgICAgIHJ1bGVzQnVpbGRl
ci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgOiB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0
dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLUnVsZXMgOiBsaW5lQnJl
YWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJh
dG9yTW9kZVVBWDE0Tm9ybWFsOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8g
dWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21O
b3JtYWxOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRT
dHJpY3Q6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1l
bnRzQ3VzdG9tU3RyaWN0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
UnVsZXM7CiAgICAgfQotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0Fm
dGVyKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0Rm9yd2FyZCk7Ci0gICAgcnVsZXNC
dWlsZGVyLmFwcGVuZCh1YXgxNFJldmVyc2UpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4
MTRTYWZlRm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVSZXZlcnNl
KTsKLSAgICByZXR1cm4gcnVsZXNCdWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAKIC8vIFJlY29nbml6
ZSBCQ1A0NyBjb21wbGlhbnQgcHJpbWFyeSBsYW5ndWFnZSB2YWx1ZXMgb2YgJ3poJywgJ2phJywg
J2tvJwpAQCAtNzg2LDYgKzI0OSwyNCBAQCBUZXh0QnJlYWtJdGVyYXRvciogb3BlbkxpbmVCcmVh
a0l0ZXJhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBMaW5lQnJlYWtJdAogICAgIGlm
IChtb2RlID09IExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0KQogICAgICAgICB1YnJrSXRlciA9
IHVicmtfb3BlbihVQlJLX0xJTkUsIGxvY2FsZUlzRW1wdHkgPyBjdXJyZW50VGV4dEJyZWFrTG9j
YWxlSUQoKSA6IGxvY2FsZS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCAwLCAwLCAmb3BlblN0YXR1
cyk7CiAgICAgZWxzZSB7CisgICAgICAgIEJyZWFraW5nUnVsZVNldCBydWxlU2V0OworICAgICAg
ICBzd2l0Y2ggKG1vZGUpIHsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgx
NDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRD
SksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRMb29zZToKKyAgICAgICAgICAg
IHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZUNKSyA6IEJyZWFr
aW5nUnVsZVNldDo6VUFYMTRMb29zZU5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0Tm9ybWFsOgorICAgICAgICAgICAgcnVs
ZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbENKSyA6IEJyZWFraW5n
UnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNFN0cmljdDoKKyAgICAgICAgICAgIHJ1bGVT
ZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3RDSksgOiBCcmVha2luZ1J1
bGVTZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gaXRlcmF0b3JGb3JSdWxlU2V0KHJ1bGVTZXQp
KQorICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yOworCiAgICAgICAgIFVQYXJzZUVycm9yIHBh
cnNlU3RhdHVzOwogICAgICAgICBhdXRvIHJ1bGVzID0gbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVs
ZXMobW9kZSwgaXNDSkspOwogICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlblJ1bGVzKFN0cmlu
Z1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBydWxlcy5sZW5ndGgoKSwgMCwg
MCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVh
a0l0ZXJhdG9yLmgKaW5kZXggZDkwMzIxNWFlNDEzN2U0YzNhOWVhMzViM2QwMjViZjUyZTQ1MThl
Yy4uZDJkMDdjMjhmYjhkNDA5OWVlOTY5YzIwZjU4NDg5MjI4ZmIwMDcwNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaApAQCAtMzgsNiArMzgsMzAgQEAgZW51bSBMaW5l
QnJlYWtJdGVyYXRvck1vZGUgewogICAgIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0U3RyaWN0
LAogfTsKIAorZW51bSBjbGFzcyBCcmVha2luZ1J1bGVTZXQgeworICAgIEN1cnNvck1vdmVtZW50
LAorICAgIFVBWDE0Q0pLLAorICAgIFVBWDE0Tm9uQ0pLLAorICAgIFVBWDE0TG9vc2VDSkssCisg
ICAgVUFYMTRMb29zZU5vbkNKSywKKyAgICBVQVgxNE5vcm1hbENKSywKKyAgICBVQVgxNE5vcm1h
bE5vbkNKSywKKyAgICBVQVgxNFN0cmljdENKSywKKyAgICBVQVgxNFN0cmljdE5vbkNKSworfTsK
KworZXh0ZXJuIGNvbnN0IGNoYXIqIGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlczsKK2V4dGVy
biBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVsZXM7CitleHRlcm4gY29u
c3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0
IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzOworZXh0ZXJuIGNvbnN0
IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKS1J1bGVzOworZXh0ZXJuIGNv
bnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSktSdWxlczsKK2V4dGVybiBj
b25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVsZXM7CitleHRl
cm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKS1J1bGVzOworZXh0
ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsK
KworVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQp
OworCiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGluIG1v
c3QgY2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRvCiAvLyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4g
T25lIG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0aGlzIGNhbiBiZSBkaWZmZXJlbnQKIC8vIGZyb20g
Y2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlzIFRoYWkgcHJlcGVuZCBjaGFyYWN0ZXJzLCBzZWUg
YnVnIDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSBiL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KaW5kZXggYmVmNWRhYTY0Mjg4ODIxZTIwZjI2
MjhjNjg1NWVlOGU4OGEzODkyYy4uNmRmOGNkNjBkNmQyNGZjMWUwMGMyNjNkOTdjZDc0YWY3NjQx
MmZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0
b3JJbnRlcm5hbElDVU1hYy5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJl
YWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCkBAIC0yMSwxMiArMjEsNzUgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgiCiAK
KyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5oIgorCisjaWYgZGVmaW5lZChVX1NIT1dfQ1BM
VVNQTFVTX0FQSSkKKyN1bmRlZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorI2VuZGlmCisjZGVmaW5l
IFVfU0hPV19DUExVU1BMVVNfQVBJIDEKKworI2luY2x1ZGUgPHVuaWNvZGUvcmJiaS5oPgorI2lu
Y2x1ZGUgPHVuaWNvZGUvdWRhdGEuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKK0Bp
bnRlcmZhY2UgV1RGQnVuZGxlRmluZGVyIDogTlNPYmplY3QKK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIFdURkJ1bmRsZUZpbmRlcgorQGVuZAorCiBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNv
bnN0IGludCBtYXhMb2NhbGVTdHJpbmdMZW5ndGggPSAzMjsKIAorVGV4dEJyZWFrSXRlcmF0b3Iq
IGl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQgcnVsZVNldCkKK3sKKyAgICBOU1N0
cmluZyAqZmlsZU5hbWVCYXNlOworICAgIHN3aXRjaCAocnVsZVNldCkgeworICAgIGNhc2UgQnJl
YWtpbmdSdWxlU2V0OjpDdXJzb3JNb3ZlbWVudDoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJD
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJy
ZWFraW5nUnVsZVNldDo6VUFYMTRDSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNENKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdS
dWxlU2V0OjpVQVgxNE5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9uQ0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1
bGVTZXQ6OlVBWDE0TG9vc2VDSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlQ0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2lu
Z1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2Ug
PSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksiOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks6CisgICAgICAgIGZpbGVO
YW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSyI7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdENKSzoKKyAgICAg
ICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLIjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pL
OgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksiOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBOU0J1bmRsZSAqYnVuZGxlID0g
W05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXVEZCdW5kbGVGaW5kZXIgY2xhc3NdXTsKKyAgICBO
U1N0cmluZyAqcGF0aCA9IFtidW5kbGUgcGF0aEZvclJlc291cmNlOmZpbGVOYW1lQmFzZSBvZlR5
cGU6QCJicmsiIGluRGlyZWN0b3J5OkAiQnJlYWtpbmdSdWxlcyJdOworICAgIGlmICghcGF0aCkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgTlNTdHJpbmcgKmRpcmVjdG9yeSA9IFtwYXRo
IHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF07CisgICAgVUVycm9yQ29kZSBlcnJv
ckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAgTG9jYWxVRGF0YU1lbW9yeVBvaW50ZXIgZGF0YSh1
ZGF0YV9vcGVuKFtkaXJlY3RvcnkgVVRGOFN0cmluZ10sICJicmsiLCBbZmlsZU5hbWVCYXNlIFVU
RjhTdHJpbmddLCAmZXJyb3JDb2RlKSk7CisgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJS
T1IpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6Om1h
a2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+KGRhdGEub3JwaGFuKCksIGVycm9yQ29k
ZSk7CisgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJST1IpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRleHRCcmVha0l0ZXJhdG9yKj4o
aXRlcmF0b3IucmVsZWFzZSgpKTsKK30KKwogc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q0ZTdHJp
bmdSZWY+IHRleHRCcmVha0xvY2FsZVByZWZlcmVuY2UoKQogewogICAgIFJldGFpblB0cjxDRlBy
b3BlcnR5TGlzdFJlZj4gbG9jYWxlID0gYWRvcHRDRihDRlByZWZlcmVuY2VzQ29weVZhbHVlKENG
U1RSKCJBcHBsZVRleHRCcmVha0xvY2FsZSIpLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285487</attachid>
            <date>2016-08-06 01:51:45 -0700</date>
            <delta_ts>2016-08-06 11:11:45 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160806015016.patch</filename>
            <type>text/plain</type>
            <size>270081</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTFhOGVhNzFmOTFiNmU2MWM4MGI2MWVhNDFiZjQ1MWEyNjBjNGM3Li5mZDZkMmJhZTQ3NDQwYTUx
OTljMDljYzVhYWVmZDMxNTVkN2Y2NzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDUgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIExFQkRlY29kZXIgYW5kIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM5MGE4MzM4MWYx
NGNlODlmODdjMzFhNTRjNjczZDY2N2EzMjU4ZjEuLjY0OTkzNWE2NTkzYjM1YWVmYzIzZDdiZTNk
YzQ2NjdjMDJhMTVkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgtMDUgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBi
cmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTog
QWRkZWQuCisgICAgICAgICogd3RmL2dlbmJyazogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisg
ICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuY3BwOgorICAgICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RG
OjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0
ZXJhdG9yKToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAg
ICAqIHd0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAg
ICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorCiAyMDE2LTA4LTA1ICBLZWl0aCBNaWxs
ZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBMRUJEZWNvZGVyIGFu
ZCB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMzBkYzllNGQwMjAzNjIw
YjE0Y2EyMjhiNGViMmJiNGZkZWNlZjBkLi4xYWJlNDdjMjQ2NGRhODk4ZmFkNTMwYWNjMzI2Mzdj
OGJkYTYyYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOSw2ICsxMTA5
LDcgQEAKIAkJMTRGOTc0NDcxMzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhD
ODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBK
U1N0cmluZ1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNG
NzM3NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5j
cHAgKi87IH07CisJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFE
NTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2
MkQ4NUI2MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQx
QzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07
CkBAIC0zMjcyLDYgKzMyNzMsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFz
ZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYg
LyogSmF2YVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2Ny
aXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQx
QkNGRiAvKiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKYXZhU2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4
RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7
IHBhdGggPSAuLi9XVEYvQnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9p
bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0
aCA9IGIzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTQzOCw2ICs1NDQwLDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAw
NzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVs
ZXMgKi8sCiAJCQkJMEY2MTgzMzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAog
CQkJCTBGNjE4MzM0MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywK
IAkJCQkwRjYxODMzNTFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAg
LTg0NTcsNiArODQ2MCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBp
biBSZXNvdXJjZXMgKi8sCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5n
UnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNGM3NzM4MzJhY2RmNDNkZWNhMTUwMjQ0NThlMzAzZGVhNjdmNzg4ZS4uZWZl
Y2EwNjFkZWQzZTk3Mjc1NGI3NjAzMTVjZmFkZGQ5YmUyMzMzZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcsMTcgQEAKIAlvYmplY3RzID0gewog
CiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2
OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVn
YXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMw
MENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4Nzgy
MUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOwor
CQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsK
KwkJCXByb2R1Y3ROYW1lID0gIkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2
MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFn
Z3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBC
OTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtMzExLDYgKzMyMiwxNSBAQAogCQlBOEE0
NzQ4NzE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlRocmVhZERhdGEuaCAqLzsgfTsKIAkJQThBNDc0OEMxNTFBODI2NDAwNDEyM0ZGIC8qIGNv
bmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1
M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJl
RGVmaW5lcy5oICovOyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMuY3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VDMUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTMxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi87IH07CisJ
CUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Ez
N0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAq
LzsgfTsKKwkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksuY3BwICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YwMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U3MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLzsgfTsKKwkJ
QzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwICovOyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkz
NjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgKi87IH07CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKQEAgLTM0Myw2ICszNjMsMTMgQEAKIAkJ
CXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVt
b3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsK
KwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0
IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9
IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3Vy
Y2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRh
aW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAq
LzsKQEAgLTQzNSw2ICs0NjIsMTggQEAKIAkJMUMxODFDOEQxRDMwN0FCODAwRjVGQTE2IC8qIFVU
ZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzE4MUM4RTFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZBMTYgLyogVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHBhdGggPSBtYWMv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NTFENTU5QTY5MDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
QjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25D
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkxRDU1OUFFRjAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0OyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUMx
RDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNv
dXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMubWFrZTsgcGF0aCA9IHd0Zi9EZXJp
dmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1c2VzVGFicyA9IDE7IH07
CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQ7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RFQyAvKiBMaW5lQnJlYWtJ
dGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODgx
NTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJU
b1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50
ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjU2LDYgKzY5NSwxNSBAQAogCQlBOEE0NzM3QjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFk
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZUaHJlYWREYXRhLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAv
KiBjb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBG
ZWF0dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJl
RGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMDFENTVDOTcx
MDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7
IHBhdGggPSBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
MkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBN
ZWRpYVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjMsNiArNzcxLDI0IEBACiAJCQlwYXRo
ID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUNEMTg3OTExRDU1
OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RF
QyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLywKKwkJCQkxQ0I0RkI5NDFENTU5
QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8sCisJCQkJMUNC
NEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0
ICovLAorCQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLywKKwkJ
CQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5
RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQg
Ki8sCisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTc0NCwxMCArODEwLDEyIEBA
CiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3Vy
Y2VzLm1ha2UgKi8sCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAwRTc4Qjc2IC8qIENvbmZpZ3VyYXRp
b25zICovLAogCQkJCTE0MDIyRjNGMThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJ
CQkJNUQyNDdCNjMxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2R1Y3RzICovLAogCQkJCTVEMjQ3Qjc2
MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJCQkJQzJDQTM3REYxRDU1QzhEODAwNDg2
Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYg
LyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZG
IC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtMTA4MCw2ICsxMTQ4LDcgQEAKIAkJ
QThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVh
a2luZ1J1bGVzICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3UgKi8sCiAJ
CQkJQTVCQTE1RjYxODI0MzU5RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCUE1QkExNUYxMTgyNDMz
OUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMTU1LDYgKzEyMjQsMjMgQEAKIAkJCXBhdGggPSBp
Y3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkNBMzdERjFENTVDOEQ4
MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTIxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi8sCisJCQkJ
QzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNjFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAg
Ki8sCisJCQkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSksuY3BwICovLAorCQkJCUMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0g
IkRlcml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvV1RGOworCQkJc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsKIAkJQ0U0NjUxNkMxOURCMUZCNDAw
M0VDQTA1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTE0NjYsNiArMTU1Miw3IEBACiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRl
cGVuZGVuY2llcyA9ICgKKwkJCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gV1RGOwpAQCAtMTQ5NiwxMiArMTU4Mywy
NyBAQAogCQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RG
ICovLAogCQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICov
LAorCQkJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJ
CQkJMTQ0N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFsbG9jICovLAogCQkJKTsKIAkJfTsK
IC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRC
dWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVy
YXRlIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQ
aGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJ
CSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgRGVyaXZl
ZCBTb3VyY2VzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNo
ZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzL1dURlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZc
IlxuXG4vYmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV1RGXG5leHBvcnQgV1RGPVwiV1RGXCJc
blxuaWYgWyAhIC1kIEJyZWFraW5nUnVsZXMgXTsgdGhlblxuICAgIG1rZGlyIEJyZWFraW5nUnVs
ZXNcbmZpXG5cbmV4cG9ydCBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTPTFcbmlmIFsgXCIkU0RL
X1ZFUlNJT05cIiA9PSBcIjEwLjEwXCIgXTsgdGhlblxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQ9MFxuZWxzZVxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9
MVxuZmlcblxuaWYgWyBcIiR7QUNUSU9OfVwiID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJT059XCIg
PSBcImluc3RhbGxcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsaGRyc1wiIC1vIFwiJHtB
Q1RJT059XCIgPSBcImluc3RhbGxhcGlcIiBdOyB0aGVuXG5tYWtlIC0tbm8tYnVpbHRpbi1ydWxl
cyAtZiBcIldURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3Rs
IC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9PVD1cIiR7U0RLUk9PVH1cIlxuZmlcbiI7CisJCX07CiAJ
CTY1QUZBMTcwMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovID0gewogCQkJ
aXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKQEAgLTE1MzIsNiArMTYzNCw4IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQThBNDczODYxNTFBODI1QjAwNDEyM0ZGIC8qIEFz
c2VydGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzUxNTFBODI1QjAwNDEy
M0ZGIC8qIEF0b21pY1N0cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MEVDQTYwRDFCMDI0
MjY4MDA0NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NUJBMTVGQTE4MjQzNUE2MDBBODJFNjkgLyogQXRvbWljU3RyaW5nSW1wbENGLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTU1OSw2ICsxNjYzLDcgQEAKIAkJCQlBOEE0NzNCMDE1MUE4MjVCMDA0MTIz
RkYgLyogZG91YmxlLWNvbnZlcnNpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCQTE1
MUE4MjVCMDA0MTIzRkYgLyogZHRvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCMzE1
MUE4MjVCMDA0MTIzRkYgLyogZmFzdC1kdG9hLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3
RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEY4ODVFMEYxODQ1QUVBOTAwRjFFM0ZBIC8qIEZhc3RCaXRWZWN0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQzMxNTFBODI1QjAwNDEyM0ZGIC8qIEZh
c3RNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRENFRTIyMDExQ0VBNzU1MTAwMEMyMzk2
IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0gaW4gU291cmNlcyAqLywKQEAgLTE1NzQsNiArMTY3
OSw3IEBACiAJCQkJQThBNDczRTkxNTFBODI1QjAwNDEyM0ZGIC8qIE1ENS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDRDU0OTdBQzE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0VDMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9y
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3
M0Y0MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QTQ3M0Y3MTUxQTgyNUIwMDQxMjNGRiAvKiBPU0FsbG9jYXRvclBvc2l4LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0Y5MTUxQTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJj
ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1ODEsNiArMTY4Nyw3IEBACiAJCQkJMUMxODFDOTMx
RDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkZGMTlEQzFCQjMzNEVCMDA4ODZEOTEgLyogUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGODI0QTY4MUI3NDQzQTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQz
MzYyMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNDNGNjExRjE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTYxNSw5ICsxNzIyLDEzIEBACiAJCQkJQThBNDc0NEExNTFBODI1QjAwNDEy
M0ZGIC8qIFRocmVhZGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0RTE1MUE4MjVC
MDA0MTIzRkYgLyogVGhyZWFkaW5nUHRocmVhZHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDc0NjkxNTFBODI1QjAwNDEyM0ZGIC8qIFVURjguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJD
QTM3RUMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNK
Sy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRkE0N0M4QTE1MjUwMkRBMDA1NjhEMUIgLyogV2Vi
Q29yZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkU0NDc5QzFCN0FBQTAzMDA5NDk4
RUIgLyogV29yZExvY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RTkxRDU1Qzk3MTAw
NDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDRUUyMjAzMUNFQTc1NTEwMDBDMjM5NiAv
KiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gaW4gU291cmNlcyAqLywKKwkJ
CQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzOTFBOTYyNDU1MDA1MzZERjYgLyogV29ya1F1
ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0QTBBRDNEMUE5NjI1M0MwMDUzNkRGNiAvKiBX
b3JrUXVldWVDb2NvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0NTE1MUE4MjVCMDA0
MTIzRkYgLyogV1RGU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTYzMyw2ICsxNzQ0LDEx
IEBACiAJCQl0YXJnZXQgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovOwogCQkJ
dGFyZ2V0UHJveHkgPSAxNDQ3QUVDMzE4RkNFNTcwMDBCM0Q3RkYgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovOwogCQl9OworCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJn
ZXQgPSAxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovOworCQkJ
dGFyZ2V0UHJveHkgPSAxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovOworCQl9OwogCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJn
ZXQgPSA2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLzsKQEAg
LTE2NjIsNiArMTc3OCwzMCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9Owor
CQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1
aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNjU0MUNB
RjQxNjMwREIyNjAwNkQwREVDIC8qIENvcHlXVEZIZWFkZXJzLnhjY29uZmlnICovOworCQkJYnVp
bGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJ
fTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVDIC8q
IFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VD
b25maWd1cmF0aW9uUmVmZXJlbmNlID0gNjU0MUNBRjQxNjMwREIyNjAwNkQwREVDIC8qIENvcHlX
VEZIZWFkZXJzLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNU
X05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9
OworCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlz
YSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2Ug
PSA2NTQxQ0FGNDE2MzBEQjI2MDA2RDBERUMgLyogQ29weVdURkhlYWRlcnMueGNjb25maWcgKi87
CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1F
KSI7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjY0MTQ2ODlC
ODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9u
OwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhC
NzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOwpAQCAtMTc0NSw2ICsxODg1LDE2IEBACiAJ
CQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJh
dGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMg
LyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2
ZWQgU291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVp
bGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVi
dWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJ
MUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVm
YXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25O
YW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1
aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV1RGIiAqLyA9IHsKIAkJCWlz
YSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmggYi9Tb3VyY2UvV1RGL2lj
dS91bmljb2RlL2Jya2l0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWE1ZTU1Mjc5NjA5MGVhZWJjZDdjZTdi
N2QyNzVhYThiMzc3NWI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9icmtpdGVyLmgKQEAgLTAsMCArMSw2NTUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1h
Y2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxlIGJya2l0ZXIuaAorKgorKiBNb2Rp
ZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlw
dGlvbgorKiAgIDAyLzE4Lzk3ICAgIGFsaXUgICAgICAgIEFkZGVkIHR5cGVkZWYgZm9yIFRleHRD
b3VudC4gIE1hZGUgRE9ORSBjb25zdC4KKyogICAwNS8wNy85NyAgICBhbGl1ICAgICAgICBGaXhl
ZCBETEwgZGVjbGFyYXRpb24uCisqICAgMDcvMDkvOTcgICAgamZpdHogICAgICAgUmVuYW1lZCBC
cmVha0l0ZXJhdG9yIGFuZCBpbnRlcmZhY2Ugc3luY2VkIHdpdGggSkRLCisqICAgMDgvMTEvOTgg
ICAgaGVsZW5hICAgICAgU3luYy11cCBKREsxLjIuCisqICAgMDEvMTMvMjAwMCAgaGVsZW5hICAg
ICAgQWRkZWQgVUVycm9yQ29kZSBwYXJhbWV0ZXIgdG8gY3JlYXRlWFhYSW5zdGFuY2UgbWV0aG9k
cy4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIEJSS0lURVJfSAorI2Rl
ZmluZSBCUktJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICog
XGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBCcmVhayBJdGVyYXRvci4KKyAqLworCisjaWYgVUNP
TkZJR19OT19CUkVBS19JVEVSQVRJT04KKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoKKyAqIEFs
bG93IHRoZSBkZWNsYXJhdGlvbiBvZiBBUElzIHdpdGggcG9pbnRlcnMgdG8gQnJlYWtJdGVyYXRv
cgorICogZXZlbiB3aGVuIGJyZWFrIGl0ZXJhdGlvbiBpcyByZW1vdmVkIGZyb20gdGhlIGJ1aWxk
LgorICovCitjbGFzcyBCcmVha0l0ZXJhdG9yOworCitVX05BTUVTUEFDRV9FTkQKKworI2Vsc2UK
KworI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3Ry
LmgiCisjaW5jbHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9j
aWQuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VicmsuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVu
dW0uaCIKKyNpbmNsdWRlICJ1bmljb2RlL3V0ZXh0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bWlz
Yy5oIgorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFRoZSBCcmVha0l0ZXJhdG9yIGNs
YXNzIGltcGxlbWVudHMgbWV0aG9kcyBmb3IgZmluZGluZyB0aGUgbG9jYXRpb24KKyAqIG9mIGJv
dW5kYXJpZXMgaW4gdGV4dC4gQnJlYWtJdGVyYXRvciBpcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNz
LgorICogSW5zdGFuY2VzIG9mIEJyZWFrSXRlcmF0b3IgbWFpbnRhaW4gYSBjdXJyZW50IHBvc2l0
aW9uIGFuZCBzY2FuIG92ZXIKKyAqIHRleHQgcmV0dXJuaW5nIHRoZSBpbmRleCBvZiBjaGFyYWN0
ZXJzIHdoZXJlIGJvdW5kYXJpZXMgb2NjdXIuCisgKiA8cD4KKyAqIExpbmUgYm91bmRhcnkgYW5h
bHlzaXMgZGV0ZXJtaW5lcyB3aGVyZSBhIHRleHQgc3RyaW5nIGNhbiBiZSBicm9rZW4KKyAqIHdo
ZW4gbGluZS13cmFwcGluZy4gVGhlIG1lY2hhbmlzbSBjb3JyZWN0bHkgaGFuZGxlcyBwdW5jdHVh
dGlvbiBhbmQKKyAqIGh5cGhlbmF0ZWQgd29yZHMuCisgKiA8cD4KKyAqIFNlbnRlbmNlIGJvdW5k
YXJ5IGFuYWx5c2lzIGFsbG93cyBzZWxlY3Rpb24gd2l0aCBjb3JyZWN0CisgKiBpbnRlcnByZXRh
dGlvbiBvZiBwZXJpb2RzIHdpdGhpbiBudW1iZXJzIGFuZCBhYmJyZXZpYXRpb25zLCBhbmQKKyAq
IHRyYWlsaW5nIHB1bmN0dWF0aW9uIG1hcmtzIHN1Y2ggYXMgcXVvdGF0aW9uIG1hcmtzIGFuZCBw
YXJlbnRoZXNlcy4KKyAqIDxwPgorICogV29yZCBib3VuZGFyeSBhbmFseXNpcyBpcyB1c2VkIGJ5
IHNlYXJjaCBhbmQgcmVwbGFjZSBmdW5jdGlvbnMsIGFzCisgKiB3ZWxsIGFzIHdpdGhpbiB0ZXh0
IGVkaXRpbmcgYXBwbGljYXRpb25zIHRoYXQgYWxsb3cgdGhlIHVzZXIgdG8KKyAqIHNlbGVjdCB3
b3JkcyB3aXRoIGEgZG91YmxlIGNsaWNrLiBXb3JkIHNlbGVjdGlvbiBwcm92aWRlcyBjb3JyZWN0
CisgKiBpbnRlcnByZXRhdGlvbiBvZiBwdW5jdHVhdGlvbiBtYXJrcyB3aXRoaW4gYW5kIGZvbGxv
d2luZworICogd29yZHMuIENoYXJhY3RlcnMgdGhhdCBhcmUgbm90IHBhcnQgb2YgYSB3b3JkLCBz
dWNoIGFzIHN5bWJvbHMgb3IKKyAqIHB1bmN0dWF0aW9uIG1hcmtzLCBoYXZlIHdvcmQtYnJlYWtz
IG9uIGJvdGggc2lkZXMuCisgKiA8cD4KKyAqIENoYXJhY3RlciBib3VuZGFyeSBhbmFseXNpcyBh
bGxvd3MgdXNlcnMgdG8gaW50ZXJhY3Qgd2l0aAorICogY2hhcmFjdGVycyBhcyB0aGV5IGV4cGVj
dCB0bywgZm9yIGV4YW1wbGUsIHdoZW4gbW92aW5nIHRoZSBjdXJzb3IKKyAqIHRocm91Z2ggYSB0
ZXh0IHN0cmluZy4gQ2hhcmFjdGVyIGJvdW5kYXJ5IGFuYWx5c2lzIHByb3ZpZGVzIGNvcnJlY3QK
KyAqIG5hdmlnYXRpb24gb2YgdGhyb3VnaCBjaGFyYWN0ZXIgc3RyaW5ncywgcmVnYXJkbGVzcyBv
ZiBob3cgdGhlCisgKiBjaGFyYWN0ZXIgaXMgc3RvcmVkLiAgRm9yIGV4YW1wbGUsIGFuIGFjY2Vu
dGVkIGNoYXJhY3RlciBtaWdodCBiZQorICogc3RvcmVkIGFzIGEgYmFzZSBjaGFyYWN0ZXIgYW5k
IGEgZGlhY3JpdGljYWwgbWFyay4gV2hhdCB1c2VycworICogY29uc2lkZXIgdG8gYmUgYSBjaGFy
YWN0ZXIgY2FuIGRpZmZlciBiZXR3ZWVuIGxhbmd1YWdlcy4KKyAqIDxwPgorICogVGhlIHRleHQg
Ym91bmRhcnkgcG9zaXRpb25zIGFyZSBmb3VuZCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzCisgKiBk
ZXNjcmliZWQgaW4gVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMjksIFRleHQgQm91bmRhcmllcywg
YW5kCisgKiBVbmljb2RlIFN0YW5kYXJkIEFubmV4ICMxNCwgTGluZSBCcmVha2luZyBQcm9wZXJ0
aWVzLiAgVGhlc2UKKyAqIGFyZSBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy51bmljb2RlLm9yZy9y
ZXBvcnRzL3RyMTQvIGFuZAorICogaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkv
LgorICogPHA+CisgKiBJbiBhZGRpdGlvbiB0byB0aGUgQysrIEFQSSBkZWZpbmVkIGluIHRoaXMg
aGVhZGVyIGZpbGUsIGEKKyAqIHBsYWluIEMgQVBJIHdpdGggZXF1aXZhbGVudCBmdW5jdGlvbmFs
aXR5IGlzIGRlZmluZWQgaW4gdGhlCisgKiBmaWxlIHVicmsuaAorICogPHA+CisgKiBDb2RlIHNu
aXBwZXRzIGlsbHVzdHJhdGluZyB0aGUgdXNlIG9mIHRoZSBCcmVhayBJdGVyYXRvciBBUElzCisg
KiBhcmUgYXZhaWxhYmxlIGluIHRoZSBJQ1UgVXNlciBHdWlkZSwKKyAqIGh0dHA6Ly9pY3UtcHJv
amVjdC5vcmcvdXNlcmd1aWRlL2JvdW5kYXJ5QW5hbHlzaXMuaHRtbAorICogYW5kIGluIHRoZSBz
YW1wbGUgcHJvZ3JhbSBpY3Uvc291cmNlL3NhbXBsZXMvYnJlYWsvYnJlYWsuY3BwCisgKgorICov
CitjbGFzcyBVX0NPTU1PTl9BUEkgQnJlYWtJdGVyYXRvciA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1
YmxpYzoKKyAgICAvKioKKyAgICAgKiAgZGVzdHJ1Y3RvcgorICAgICAqICBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIH5CcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm4gdHJ1ZSBpZiBhbm90aGVyIG9iamVjdCBpcyBzZW1hbnRpY2FsbHkgZXF1YWwg
dG8gdGhpcworICAgICAqIG9uZS4gVGhlIG90aGVyIG9iamVjdCBzaG91bGQgYmUgYW4gaW5zdGFu
Y2Ugb2YgdGhlIHNhbWUgc3ViY2xhc3Mgb2YKKyAgICAgKiBCcmVha0l0ZXJhdG9yLiBPYmplY3Rz
IG9mIGRpZmZlcmVudCBzdWJjbGFzc2VzIGFyZSBjb25zaWRlcmVkCisgICAgICogdW5lcXVhbC4K
KyAgICAgKiA8UD4KKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIEJyZWFrSXRlcmF0b3IgaXMg
YXQgdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlCisgICAgICogc2FtZSB0ZXh0LCBhbmQgaXMgdGhl
IHNhbWUgY2xhc3MgYW5kIHR5cGUgKHdvcmQsIGxpbmUsIGV0Yy4pIG9mCisgICAgICogQnJlYWtJ
dGVyYXRvciwgYXMgdGhlIGFyZ3VtZW50LiAgVGV4dCBpcyBjb25zaWRlcmVkIHRoZSBzYW1lIGlm
CisgICAgICogaXQgY29udGFpbnMgdGhlIHNhbWUgY2hhcmFjdGVycywgaXQgbmVlZCBub3QgYmUg
dGhlIHNhbWUKKyAgICAgKiBvYmplY3QsIGFuZCBzdHlsZXMgYXJlIG5vdCBjb25zaWRlcmVkLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0
b3I9PShjb25zdCBCcmVha0l0ZXJhdG9yJikgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICog
UmV0dXJucyB0aGUgY29tcGxlbWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJhdG9yPT0KKyAgICAg
KiBAcGFyYW0gcmhzIFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFs
aXR5CisgICAgICogQHJldHVybiB0aGUgY29tcGxlbWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJh
dG9yPT0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCBvcGVyYXRv
ciE9KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHJocykgY29uc3QgeyByZXR1cm4gIW9wZXJhdG9yPT0o
cmhzKTsgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcG9seW1vcnBoaWMgY29weSBvZiB0
aGlzIG9iamVjdC4gIFRoaXMgaXMgYW4gYWJzdHJhY3QKKyAgICAgKiBtZXRob2Qgd2hpY2ggc3Vi
Y2xhc3NlcyBpbXBsZW1lbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBCcmVha0l0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm4gYSBwb2x5bW9ycGhpYyBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuIERp
ZmZlcmVudCBzdWJjbGFzc2VzCisgICAgICogd2lsbCByZXR1cm4gZGlzdGluY3QgdW5lcXVhbCB2
YWx1ZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xh
c3NJRCBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm4gYSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVk
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQ2hhcmFjdGVy
SXRlcmF0b3ImIGdldFRleHQodm9pZCkgY29uc3QgPSAwOworCisKKyAgICAvKioKKyAgICAgICog
IEdldCBhIFVUZXh0IGZvciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgICogIFRoZSBy
ZXR1cm5lZCBVVGV4dCBpcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIFVUZXh0IHVzZWQgaW50ZXJu
YWxseQorICAgICAgKiAgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uLiAgSXQg
Y2FuIHNhZmVseSBiZSB1c2VkIHRvCisgICAgICAqICBhY2Nlc3MgdGhlIHRleHQgd2l0aG91dCBp
bXBhY3RpbmcgYW55IGJyZWFrIGl0ZXJhdG9yIG9wZXJhdGlvbnMsCisgICAgICAqICBidXQgdGhl
IHVuZGVybHlpbmcgdGV4dCBpdHNlbGYgbXVzdCBub3QgYmUgYWx0ZXJlZC4KKyAgICAgICoKKyAg
ICAgICogQHBhcmFtIGZpbGxJbiBBIFVUZXh0IHRvIGJlIGZpbGxlZCBpbi4gIElmIE5VTEwsIGEg
bmV3IFVUZXh0IHdpbGwgYmUKKyAgICAgICogICAgICAgICAgIGFsbG9jYXRlZCB0byBob2xkIHRo
ZSByZXN1bHQuCisgICAgICAqIEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVz
LgorICAgICAgKiBAcmV0dXJuICAgVGhlIGN1cnJlbnQgVVRleHQgZm9yIHRoaXMgYnJlYWsgaXRl
cmF0b3IuICBJZiBhbiBpbnB1dAorICAgICAgKiAgICAgICAgICAgVVRleHQgd2FzIHByb3ZpZGVk
LCBpdCB3aWxsIGFsd2F5cyBiZSByZXR1cm5lZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMy40Cisg
ICAgICAqLworICAgICB2aXJ0dWFsIFVUZXh0ICpnZXRVVGV4dChVVGV4dCAqZmlsbEluLCBVRXJy
b3JDb2RlICZzdGF0dXMpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIENoYW5nZSB0aGUg
dGV4dCBvdmVyIHdoaWNoIHRoaXMgb3BlcmF0ZXMuIFRoZSB0ZXh0IGJvdW5kYXJ5IGlzCisgICAg
ICogcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBVbmljb2RlU3Ry
aW5nIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nICZ0ZXh0
KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdG8gb3Bl
cmF0ZSBvdmVyIHRoZSB0ZXh0IHJlcHJlc2VudGVkIGJ5CisgICAgICogdGhlIFVUZXh0LiAgVGhl
IGl0ZXJhdG9yIHBvc2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKgorICAgICAq
IFRoaXMgZnVuY3Rpb24gbWFrZXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBzdXBwbGllZCBVVGV4
dC4gIFRoaXMgbWVhbnMKKyAgICAgKiB0aGF0IHRoZSBjYWxsZXIgaXMgZnJlZSB0byBpbW1lZGlh
dGVseSBjbG9zZSBvciBvdGhlcndpc2UgcmV1c2UgdGhlCisgICAgICogVXRleHQgdGhhdCB3YXMg
cGFzc2VkIGFzIGEgcGFyYW1ldGVyLCBidXQgdGhhdCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2Vs
ZgorICAgICAqIG11c3Qgbm90IGJlIGFsdGVyZWQgd2hpbGUgYmVpbmcgcmVmZXJlbmNlZCBieSB0
aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBBbGwgaW5kZXggcG9zaXRpb25zIHJl
dHVybmVkIGJ5IGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyBhcmUKKyAgICAgKiBuYXRpdmUgaW5k
aWNlcyBmcm9tIHRoZSBVVGV4dC4gRm9yIGV4YW1wbGUsIHdoZW4gYnJlYWtpbmcgVVRGLTgKKyAg
ICAgKiBlbmNvZGVkIHRleHQsIHRoZSBicmVhayBwb3NpdGlvbnMgcmV0dXJuZWQgYnkgbmV4dCgp
LCBwcmV2aW91cygpLCBldGMuCisgICAgICogd2lsbCBiZSBVVEYtOCBzdHJpbmcgaW5kaWNlcywg
bm90IFVURi0xNiBwb3NpdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgVVRl
eHQgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZl
cyBhbnkgZXJyb3IgY29kZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICovCisgICAg
dmlydHVhbCB2b2lkICBzZXRUZXh0KFVUZXh0ICp0ZXh0LCBVRXJyb3JDb2RlICZzdGF0dXMpID0g
MDsKKworICAgIC8qKgorICAgICAqIENoYW5nZSB0aGUgdGV4dCBvdmVyIHdoaWNoIHRoaXMgb3Bl
cmF0ZXMuIFRoZSB0ZXh0IGJvdW5kYXJ5IGlzCisgICAgICogcmVzZXQgdG8gdGhlIHN0YXJ0Lgor
ICAgICAqIE5vdGUgdGhhdCBzZXRUZXh0KFVUZXh0ICopIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rp
b25hbGl0eSB0byB0aGlzIGZ1bmN0aW9uLAorICAgICAqIGFuZCBpcyBtb3JlIGVmZmljaWVudC4K
KyAgICAgKiBAcGFyYW0gaXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHVzZWQgdG8gY2hhbmdlIHRo
ZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9p
ZCAgYWRvcHRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKiBpdCkgPSAwOworCisgICAgZW51bSB7Cisg
ICAgICAgIC8qKgorICAgICAgICAgKiBET05FIGlzIHJldHVybmVkIGJ5IHByZXZpb3VzKCkgYW5k
IG5leHQoKSBhZnRlciBhbGwgdmFsaWQKKyAgICAgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4g
cmV0dXJuZWQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAg
ICAgRE9ORSA9IChpbnQzMl90KS0xCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhl
IGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQs
IHBvc2l0aW9uIHplcm8uCisgICAgICogQHJldHVybiBUaGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5p
bmcgb2YgdGhlIHRleHQsIHplcm8uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBpbnQzMl90IGZpcnN0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNl
dCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGluZGV4IGltbWVkaWF0ZWx5IEJFWU9ORCB0
aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgYmVpbmcgc2Nhbm5lZC4KKyAgICAgKiBAcmV0
dXJuIFRoZSBpbmRleCBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRo
ZSB0ZXh0IGJlaW5nIHNjYW5uZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBpbnQzMl90IGxhc3Qodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0
IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgYm91bmRhcnkgcHJlY2VkaW5nIHRoZSBjdXJy
ZW50IGJvdW5kYXJ5LgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUg
cHJldmlvdXMgdGV4dCBib3VuZGFyeSBvciBET05FIGlmIGFsbAorICAgICAqIGJvdW5kYXJpZXMg
aGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBwcmV2aW91cyh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBB
ZHZhbmNlIHRoZSBpdGVyYXRvciB0byB0aGUgYm91bmRhcnkgZm9sbG93aW5nIHRoZSBjdXJyZW50
IGJvdW5kYXJ5LgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgbmV4
dCB0ZXh0IGJvdW5kYXJ5IG9yIERPTkUgaWYgYWxsCisgICAgICogYm91bmRhcmllcyBoYXZlIGJl
ZW4gcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90IG5leHQodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGNoYXJh
Y3RlciBpbmRleCBvZiB0aGUgY3VycmVudCBpbnRlcmF0b3IgcG9zaXRpb24gd2l0aGluIHRoZSB0
ZXh0LgorICAgICAqIEByZXR1cm4gVGhlIGJvdW5kYXJ5IG1vc3QgcmVjZW50bHkgcmV0dXJuZWQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGN1
cnJlbnQodm9pZCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogQWR2YW5jZSB0aGUgaXRl
cmF0b3IgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIG9mZnNl
dC4KKyAgICAgKiBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgYWx3YXlzIGdyZWF0ZXIgdGhhbiB0aGUg
b2Zmc2V0IG9yCisgICAgICogdGhlIHZhbHVlIEJyZWFrSXRlcmF0b3IuRE9ORQorICAgICAqIEBw
YXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KKyAgICAgKiBAcmV0dXJu
IFRoZSBmaXJzdCBib3VuZGFyeSBhZnRlciB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZm9sbG93aW5nKGlu
dDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBv
c2l0aW9uIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIHNwZWNpZmllZCBvZmZz
ZXQuCisgICAgICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5cyBzbWFsbGVyIHRoYW4gdGhl
IG9mZnNldCBvcgorICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0ZXJhdG9yLkRPTkUKKyAgICAgKiBA
cGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nhbm5pbmcuCisgICAgICogQHJldHVy
biBUaGUgZmlyc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmco
aW50MzJfdCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRo
ZSBzcGVjZmllZCBwb3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEFzIGEg
c2lkZSBlZmZlY3QsIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRvciBpcyBzZXQK
KyAgICAgKiB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gYXQgb3IgZm9sbG93aW5nIHRo
ZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBj
aGVjay4KKyAgICAgKiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMgYSBib3VuZGFyeSBwb3Np
dGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29s
IGlzQm91bmRhcnkoaW50MzJfdCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0
aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIG50aCBib3VuZGFyeSBmcm9tIHRoZSBjdXJyZW50
IGJvdW5kYXJ5CisgICAgICogQHBhcmFtIG4gdGhlIG51bWJlciBvZiBib3VuZGFyaWVzIHRvIG1v
dmUgYnkuICBBIHZhbHVlIG9mIDAKKyAgICAgKiBkb2VzIG5vdGhpbmcuICBOZWdhdGl2ZSB2YWx1
ZXMgbW92ZSB0byBwcmV2aW91cyBib3VuZGFyaWVzCisgICAgICogYW5kIHBvc2l0aXZlIHZhbHVl
cyBtb3ZlIHRvIGxhdGVyIGJvdW5kYXJpZXMuCisgICAgICogQHJldHVybiBUaGUgbmV3IGl0ZXJh
dG9yIHBvc2l0aW9uLCBvcgorICAgICAqIERPTkUgaWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gfG58
IGJvdW5kYXJpZXMgaW4gdGhlIHNwZWNmaWVkIGRpcmVjdGlvbi4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dChpbnQzMl90IG4pID0gMDsK
KworICAgLyoqCisgICAgICogRm9yIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JzLCByZXR1cm4gdGhl
IHN0YXR1cyB0YWcgZnJvbSB0aGUgCisgICAgICogYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQg
dGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAg
KiA8cD4KKyAgICAgKiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9y
dCBhIHJ1bGUgc3RhdHVzLAorICAgICAqIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVk
LgorICAgICAqIDxwPgorICAgICAqIEByZXR1cm4gdGhlIHN0YXR1cyBmcm9tIHRoZSBicmVhayBy
dWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqICAgICAgICAgcmV0
dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgICogQHNlZSBSdWxlQmFzZUJyZWFrSXRlcmF0b3I6
OmdldFJ1bGVTdGF0dXMoKQorICAgICAqIEBzZWUgVVdvcmRCcmVhaworICAgICAqIEBzdGFibGUg
SUNVIDUyCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXMoKSBjb25z
dDsKKworICAgLyoqCisgICAgKiBGb3IgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcnMsIGdldCB0aGUg
c3RhdHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIAorICAgICogdGhhdCBk
ZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAg
ICogPHA+CisgICAgKiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9y
dCBydWxlIHN0YXR1cywKKyAgICAqIG5vIHZhbHVlcyBhcmUgcmV0dXJuZWQuCisgICAgKiA8cD4K
KyAgICAqIFRoZSByZXR1cm5lZCBzdGF0dXMgdmFsdWUocykgYXJlIHN0b3JlZCBpbnRvIGFuIGFy
cmF5IHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9yZWQg
aW4gc29ydGVkIChhc2NlbmRpbmcpIG9yZGVyLgorICAgICogSWYgdGhlIGNhcGFjaXR5IG9mIHRo
ZSBvdXRwdXQgYXJyYXkgaXMgaW5zdWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgICAgKiAg
dGhlIG91dHB1dCB3aWxsIGJlIHRydW5jYXRlZCB0byB0aGUgYXZhaWxhYmxlIGxlbmd0aCwgYW5k
IGEKKyAgICAqICBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiB3aWxsIGJlIHNpZ25hbGVkLgorICAg
ICogPHA+CisgICAgKiBAc2VlIFJ1bGVCYXNlQnJlYWtJdGVyYXRvcjo6Z2V0UnVsZVN0YXR1c1Zl
YworICAgICoKKyAgICAqIEBwYXJhbSBmaWxsSW5WZWMgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGlu
IHdpdGggdGhlIHN0YXR1cyB2YWx1ZXMuCisgICAgKiBAcGFyYW0gY2FwYWNpdHkgIHRoZSBsZW5n
dGggb2YgdGhlIHN1cHBsaWVkIHZlY3Rvci4gIEEgbGVuZ3RoIG9mIHplcm8gY2F1c2VzCisgICAg
KiAgICAgICAgICAgICAgICAgIHRoZSBmdW5jdGlvbiB0byByZXR1cm4gdGhlIG51bWJlciBvZiBz
dGF0dXMgdmFsdWVzLCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgbm9ybWFsIHdheSwg
d2l0aG91dCBhdHRlbXRwaW5nIHRvIHN0b3JlIGFueSB2YWx1ZXMuCisgICAgKiBAcGFyYW0gc3Rh
dHVzICAgIHJlY2VpdmVzIGVycm9yIGNvZGVzLgorICAgICogQHJldHVybiAgICAgICAgICBUaGUg
bnVtYmVyIG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZAor
ICAgICogICAgICAgICAgICAgICAgICB0aGUgbW9zdCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQg
YnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICogICAgICAgICAgICAgICAgICBJbiB0aGUgZXZl
bnQgb2YgYSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdGhlIHJldHVybiB2YWx1ZQorICAgICog
ICAgICAgICAgICAgICAgICBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhh
dCB3ZXJlIGF2YWlsYWJsZSwKKyAgICAqICAgICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2Vk
IG51bWJlciB0aGF0IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQuCisgICAgKiBAc2VlIGdldFJ1bGVT
dGF0dXMKKyAgICAqIEBzdGFibGUgSUNVIDUyCisgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3Qg
Z2V0UnVsZVN0YXR1c1ZlYyhpbnQzMl90ICpmaWxsSW5WZWMsIGludDMyX3QgY2FwYWNpdHksIFVF
cnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRv
ciBmb3Igd29yZC1icmVha3MgdXNpbmcgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBSZXR1cm5z
IGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgd29yZCBicmVha3Mu
CisgICAgICogV29yZEJyZWFrIGlzIHVzZWZ1bCBmb3Igd29yZCBzZWxlY3Rpb24gKGV4LiBkb3Vi
bGUgY2xpY2spCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFt
IHN0YXR1cyB0aGUgZXJyb3IgY29kZQorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZv
ciB3b3JkLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIg
aXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAq
IFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ug
c2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91
IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZv
ciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vz
cy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxs
IGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMg
cmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAg
ICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZh
dWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBs
b2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBm
b3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMg
cmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVXb3Jk
SW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAg
IC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBsaW5lLWJyZWFrcyB1c2luZyBz
cGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0
ZXJhdG9yIGltcGxlbWVudGluZyBsaW5lIGJyZWFrcy4gTGluZQorICAgICAqIGJyZWFrcyBhcmUg
bG9naWNhbGx5IHBvc3NpYmxlIGxpbmUgYnJlYWtzLCBhY3R1YWwgbGluZSBicmVha3MgYXJlCisg
ICAgICogdXN1YWxseSBkZXRlcm1pbmVkIGJhc2VkIG9uIGRpc3BsYXkgd2lkdGguCisgICAgICog
TGluZUJyZWFrIGlzIHVzZWZ1bCBmb3Igd29yZCB3cmFwcGluZyB0ZXh0LgorICAgICAqIEBwYXJh
bSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUu
CisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIGxpbmUtYnJlYWtzLiAgVGhlIFVF
cnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0
dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUg
Y29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0
aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGlu
Zm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3Ig
cmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFM
TEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQu
ICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5n
IHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZB
VUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisg
ICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBm
YWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxs
ZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRp
bmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFr
SXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZUxpbmVJbnN0YW5jZShjb25zdCBMb2NhbGUm
IHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJy
ZWFrSXRlcmF0b3IgZm9yIGNoYXJhY3Rlci1icmVha3MgdXNpbmcgc3BlY2lmaWVkIGxvY2FsZQor
ICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGlu
ZyBjaGFyYWN0ZXIgYnJlYWtzLgorICAgICAqIENoYXJhY3RlciBicmVha3MgYXJlIGJvdW5kYXJp
ZXMgb2YgY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMuCisgICAgICogQHBhcmFtIHdoZXJl
IHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAg
KiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3IgY2hhcmFjdGVyLWJyZWFrcy4gIFRoZSBVRXJy
b3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVz
IGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNv
bnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhl
IHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZv
cm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJl
c3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExC
QUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAg
Rm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3
YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVM
VF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAg
ICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFs
bCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVy
IG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5n
IGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0
ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVDaGFyYWN0ZXJJbnN0YW5jZShjb25zdCBMb2Nh
bGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRl
IEJyZWFrSXRlcmF0b3IgZm9yIHNlbnRlbmNlLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxl
CisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50
aW5nIHNlbnRlbmNlIGJyZWFrcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAg
ICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVh
a0l0ZXJhdG9yIGZvciBzZW50ZW5jZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisg
ICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0
aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2Vl
ZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NF
U1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAg
ICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxs
IGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGlj
YXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1w
bGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBz
byAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0
ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVy
IHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisg
ICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5l
ZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQy
CisgICAgY3JlYXRlU2VudGVuY2VJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JD
b2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9y
IHRpdGxlLWNhc2luZyBicmVha3MgdXNpbmcgdGhlIHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBS
ZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgdGl0bGUg
YnJlYWtzLgorICAgICAqIFRoZSBpdGVyYXRvciByZXR1cm5lZCBsb2NhdGVzIHRpdGxlIGJvdW5k
YXJpZXMgYXMgZGVzY3JpYmVkIGZvcgorICAgICAqIFVuaWNvZGUgMy4yIG9ubHkuIEZvciBVbmlj
b2RlIDQuMCBhbmQgYWJvdmUgdGl0bGUgYm91bmRhcnkgaXRlcmF0aW9uLAorICAgICAqIHBsZWFz
ZSB1c2UgV29yZCBCb3VuZGFyeSBpdGVyYXRvci57QGxpbmsgI2NyZWF0ZVdvcmRJbnN0YW5jZSB9
CisgICAgICoKKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0g
c3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZv
ciB0aXRsZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVy
IGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAg
KiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91
IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlv
dSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBm
b3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nl
c3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFs
bCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2Fz
IHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAg
ICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVm
YXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQg
bG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUg
Zm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlz
IHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAg
ICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlVGl0
bGVJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisg
ICAgLyoqCisgICAgICogR2V0IHRoZSBzZXQgb2YgTG9jYWxlcyBmb3Igd2hpY2ggVGV4dEJvdW5k
YXJpZXMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiA8cD48Yj5Ob3RlOjwvYj4gdGhpcyB3aWxsIG5v
dCByZXR1cm4gbG9jYWxlcyBhZGRlZCB0aHJvdWdoIHRoZSByZWdpc3RlcgorICAgICAqIGNhbGwu
IFRvIHNlZSB0aGUgcmVnaXN0ZXJlZCBsb2NhbGVzIHRvbywgdXNlIHRoZSBnZXRBdmFpbGFibGVM
b2NhbGVzCisgICAgICogZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgU3RyaW5nRW51bWVyYXRpb24g
b2JqZWN0IDwvcD4KKyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG91dHB1dCBwYXJhbWV0ZXIgb2Yg
bnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBsb2NhbGUgbGlzdAorICAgICAqIEByZXR1cm4gYXZh
aWxhYmxlIGxvY2FsZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0
aWMgY29uc3QgTG9jYWxlKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxlTG9jYWxlcyhpbnQzMl90JiBj
b3VudCk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgbmFtZSBvZiB0aGUgb2JqZWN0IGZvciB0aGUg
ZGVzaXJlZCBMb2NhbGUsIGluIHRoZSBkZXNpcmVkIGxhbmdhdWdlLgorICAgICAqIEBwYXJhbSBv
YmplY3RMb2NhbGUgbXVzdCBiZSBmcm9tIGdldEF2YWlsYWJsZUxvY2FsZXMuCisgICAgICogQHBh
cmFtIGRpc3BsYXlMb2NhbGUgc3BlY2lmaWVzIHRoZSBkZXNpcmVkIGxvY2FsZSBmb3Igb3V0cHV0
LgorICAgICAqIEBwYXJhbSBuYW1lIHRoZSBmaWxsLWluIHBhcmFtZXRlciBvZiB0aGUgcmV0dXJu
IHZhbHVlCisgICAgICogVXNlcyBiZXN0IG1hdGNoLgorICAgICAqIEByZXR1cm4gdXNlci1kaXNw
bGF5YWJsZSBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGlj
IFVuaWNvZGVTdHJpbmcmIFVfRVhQT1JUMiBnZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmIG9i
amVjdExvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgTG9jYWxlJiBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIEdldCBu
YW1lIG9mIHRoZSBvYmplY3QgZm9yIHRoZSBkZXNpcmVkIExvY2FsZSwgaW4gdGhlIGxhbmdhdWdl
IG9mIHRoZQorICAgICAqIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2Nh
bGUgbXVzdCBiZSBmcm9tIGdldE1hdGNoaW5nTG9jYWxlcworICAgICAqIEBwYXJhbSBuYW1lIHRo
ZSBmaWxsLWluIHBhcmFtZXRlciBvZiB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogQHJldHVybiB1
c2VyLWRpc3BsYXlhYmxlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICBzdGF0aWMgVW5pY29kZVN0cmluZyYgVV9FWFBPUlQyIGdldERpc3BsYXlOYW1lKGNvbnN0IExv
Y2FsZSYgb2JqZWN0TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVbmljb2RlU3RyaW5nJiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIERlcHJlY2F0ZWQg
ZnVuY3Rpb25hbGl0eS4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIFRocmVh
ZCBzYWZlIGNsaWVudC1idWZmZXItYmFzZWQgY2xvbmluZyBvcGVyYXRpb24KKyAgICAgKiAgICBE
byBOT1QgY2FsbCBkZWxldGUgb24gYSBzYWZlY2xvbmUsIHNpbmNlICduZXcnIGlzIG5vdCB1c2Vk
IHRvIGNyZWF0ZSBpdC4KKyAgICAgKiBAcGFyYW0gc3RhY2tCdWZmZXIgdXNlciBhbGxvY2F0ZWQg
c3BhY2UgZm9yIHRoZSBuZXcgY2xvbmUuIElmIE5VTEwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9j
YXRlZC4KKyAgICAgKiBJZiBidWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaCwgbmV3IG1lbW9yeSB3
aWxsIGJlIGFsbG9jYXRlZC4KKyAgICAgKiBAcGFyYW0gQnVmZmVyU2l6ZSByZWZlcmVuY2UgdG8g
c2l6ZSBvZiBhbGxvY2F0ZWQgc3BhY2UuCisgICAgICogSWYgQnVmZmVyU2l6ZSA9PSAwLCBhIHN1
ZmZpY2llbnQgc2l6ZSBmb3IgdXNlIGluIGNsb25pbmcgd2lsbAorICAgICAqIGJlIHJldHVybmVk
ICgncHJlLWZsaWdodGluZycpCisgICAgICogSWYgQnVmZmVyU2l6ZSBpcyBub3QgZW5vdWdoIGZv
ciBhIHN0YWNrLWJhc2VkIHNhZmUgY2xvbmUsCisgICAgICogbmV3IG1lbW9yeSB3aWxsIGJlIGFs
bG9jYXRlZC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIG9w
ZXJhdGlvbiB3ZW50IG9uIHNtb290aGx5IG9yIHRoZXJlIHdlcmUgZXJyb3JzCisgICAgICogIEFu
IGluZm9ybWF0aW9uYWwgc3RhdHVzIHZhbHVlLCBVX1NBRkVDTE9ORV9BTExPQ0FURURfRVJST1Is
IGlzIHVzZWQgaWYgYW55IGFsbG9jYXRpb25zIHdlcmUKKyAgICAgKiAgbmVjZXNzYXJ5LgorICAg
ICAqIEByZXR1cm4gcG9pbnRlciB0byB0aGUgbmV3IGNsb25lCisgICAgICoKKyAgICAgKiBAZGVw
cmVjYXRlZCBJQ1UgNTIuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICovCisgICAgdmlydHVh
bCBCcmVha0l0ZXJhdG9yICogIGNyZWF0ZUJ1ZmZlckNsb25lKHZvaWQgKnN0YWNrQnVmZmVyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICZC
dWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVRXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9B
UEkKKworICAgIC8qKgorICAgICAqICAgRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIEJyZWFrSXRlcmF0
b3Igd2FzIGNyZWF0ZWQgaW4gdXNlciBtZW1vcnkgYnkKKyAgICAgKiAgIGNyZWF0ZUJ1ZmZlckNs
b25lKCksIGFuZCB0aHVzIHNob3VsZCBub3QgYmUgZGVsZXRlZC4gIFN1Y2ggb2JqZWN0cworICAg
ICAqICAgbXVzdCBiZSBjbG9zZWQgYnkgYW4gZXhwbGljaXQgY2FsbCB0byB0aGUgZGVzdHJ1Y3Rv
ciAobm90IGRlbGV0ZSkuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBBbHdheXMgZGVsZXRl
IHRoZSBCcmVha0l0ZXJhdG9yLgorICAgICAqLworICAgIGlubGluZSBVQm9vbCBpc0J1ZmZlckNs
b25lKHZvaWQpOworCisjZW5kaWYgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisKKyNpZiAh
VUNPTkZJR19OT19TRVJWSUNFCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBuZXcgYnJlYWsg
aXRlcmF0b3Igb2YgdGhlIGluZGljYXRlZCBraW5kLCB0byB1c2UgaW4gdGhlIGdpdmVuIGxvY2Fs
ZS4KKyAgICAgKiBUaGUgYnJlYWsgaXRlcmF0b3Igd2lsbCBiZSBhZG9wdGVkLiAgQ2xvbmVzIG9m
IHRoZSBpdGVyYXRvciB3aWxsIGJlIHJldHVybmVkCisgICAgICogaWYgYSByZXF1ZXN0IGZvciBh
IGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBnaXZlbiBraW5kIG1hdGNoZXMgb3IgZmFsbHMgYmFjayB0
bworICAgICAqIHRoaXMgbG9jYWxlLgorICAgICAqIEJlY2F1c2UgSUNVIG1heSBjaG9vc2UgdG8g
Y2FjaGUgQnJlYWtJdGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBtdXN0CisgICAgICogYmUgY2Fs
bGVkIGF0IGFwcGxpY2F0aW9uIHN0YXJ0dXAsIHByaW9yIHRvIGFueSBjYWxscyB0bworICAgICAq
IEJyZWFrSXRlcmF0b3I6OmNyZWF0ZVhYWEluc3RhbmNlIHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhh
dmlvci4KKyAgICAgKiBAcGFyYW0gdG9BZG9wdCB0aGUgQnJlYWtJdGVyYXRvciBpbnN0YW5jZSB0
byBiZSBhZG9wdGVkCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgTG9jYWxlIGZvciB3aGljaCB0
aGlzIGluc3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQKKyAgICAgKiBAcGFyYW0ga2luZCB0aGUg
dHlwZSBvZiBpdGVyYXRvciBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3Rl
cmVkCisgICAgICogQHBhcmFtIHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVj
aWFsIG1lYW5pbmdzIGFyZSBhc3NpZ25lZAorICAgICAqIEByZXR1cm4gYSByZWdpc3RyeSBrZXkg
dGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBzdGF0aWMgVVJlZ2lzdHJ5S2V5IFVfRVhQT1JUMiBy
ZWdpc3Rlckluc3RhbmNlKEJyZWFrSXRlcmF0b3IqIHRvQWRvcHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxlJiBsb2NhbGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUJyZWFrSXRlcmF0b3JUeXBlIGtpbmQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSYgc3RhdHVz
KTsKKworICAgIC8qKgorICAgICAqIFVucmVnaXN0ZXIgYSBwcmV2aW91c2x5LXJlZ2lzdGVyZWQg
QnJlYWtJdGVyYXRvciB1c2luZyB0aGUga2V5IHJldHVybmVkIGZyb20gdGhlCisgICAgICogcmVn
aXN0ZXIgY2FsbC4gIEtleSBiZWNvbWVzIGludmFsaWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwg
YW5kIHNob3VsZCBub3QgYmUgdXNlZCBhZ2Fpbi4KKyAgICAgKiBUaGUgQnJlYWtJdGVyYXRvciBj
b3JyZXNwb25kaW5nIHRvIHRoZSBrZXkgd2lsbCBiZSBkZWxldGVkLgorICAgICAqIEJlY2F1c2Ug
SUNVIG1heSBjaG9vc2UgdG8gY2FjaGUgQnJlYWtJdGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBz
aG91bGQKKyAgICAgKiBiZSBjYWxsZWQgZHVyaW5nIGFwcGxpY2F0aW9uIHNodXRkb3duLCBhZnRl
ciBhbGwgY2FsbHMgdG8KKyAgICAgKiBCcmVha0l0ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0
byBhdm9pZCB1bmRlZmluZWQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIGtleSB0aGUgcmVnaXN0
cnkga2V5IHJldHVybmVkIGJ5IGEgcHJldmlvdXMgY2FsbCB0byByZWdpc3Rlckluc3RhbmNlCisg
ICAgICogQHBhcmFtIHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVjaWFsIG1l
YW5pbmdzIGFyZSBhc3NpZ25lZAorICAgICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgaXRlcmF0b3Ig
Zm9yIHRoZSBrZXkgd2FzIHN1Y2Nlc3NmdWxseSB1bnJlZ2lzdGVyZWQKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjQKKyAgICAgKi8KKyAgICBzdGF0aWMgVUJvb2wgVV9FWFBPUlQyIHVucmVnaXN0ZXIo
VVJlZ2lzdHJ5S2V5IGtleSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAq
IFJldHVybiBhIFN0cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMgYXZhaWxhYmxlIGF0
IHRoZSB0aW1lIG9mIHRoZSBjYWxsLAorICAgICAqIGluY2x1ZGluZyByZWdpc3RlcmVkIGxvY2Fs
ZXMuCisgICAgICogQHJldHVybiBhIFN0cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMg
YXZhaWxhYmxlIGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40
CisgICAgICovCisgICAgc3RhdGljIFN0cmluZ0VudW1lcmF0aW9uKiBVX0VYUE9SVDIgZ2V0QXZh
aWxhYmxlTG9jYWxlcyh2b2lkKTsKKyNlbmRpZgorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0
aGUgbG9jYWxlIGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiBUd28gZmxhdm9ycyBhcmUgYXZhaWxh
YmxlOiB2YWxpZCBhbmQKKyAgICAgKiBhY3R1YWwgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNV
IDIuOAorICAgICAqLworICAgIExvY2FsZSBnZXRMb2NhbGUoVUxvY0RhdGFMb2NhbGVUeXBlIHR5
cGUsIFVFcnJvckNvZGUmIHN0YXR1cykgY29uc3Q7CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFM
X0FQSQorICAgIC8qKiBHZXQgdGhlIGxvY2FsZSBmb3IgdGhpcyBicmVhayBpdGVyYXRvciBvYmpl
Y3QuIFlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdmFsaWQgYW5kIGFjdHVhbCBsb2NhbGUuCisgICAg
ICogIEBwYXJhbSB0eXBlIHR5cGUgb2YgdGhlIGxvY2FsZSB3ZSdyZSBsb29raW5nIGZvciAodmFs
aWQgb3IgYWN0dWFsKQorICAgICAqICBAcGFyYW0gc3RhdHVzIGVycm9yIGNvZGUgZm9yIHRoZSBv
cGVyYXRpb24KKyAgICAgKiAgQHJldHVybiB0aGUgbG9jYWxlCisgICAgICogIEBpbnRlcm5hbAor
ICAgICAqLworICAgIGNvbnN0IGNoYXIgKmdldExvY2FsZUlEKFVMb2NEYXRhTG9jYWxlVHlwZSB0
eXBlLCBVRXJyb3JDb2RlJiBzdGF0dXMpIGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVfSU5URVJO
QUxfQVBJICovCisKKyAgICAvKioKKyAgICAgKiAgU2V0IHRoZSBzdWJqZWN0IHRleHQgc3RyaW5n
IHVwb24gd2hpY2ggdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9wZXJhdGluZworICAgICAqICB3aXRo
b3V0IGNoYW5naW5nIGFueSBvdGhlciBhc3BlY3Qgb2YgdGhlIG1hdGNoaW5nIHN0YXRlLgorICAg
ICAqICBUaGUgbmV3IGFuZCBwcmV2aW91cyB0ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1l
IGNvbnRlbnQuCisgICAgICoKKyAgICAgKiAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3Ig
dXNlIGluIGVudmlyb25tZW50cyB3aGVyZSBJQ1UgaXMgb3BlcmF0aW5nIG9uCisgICAgICogIHN0
cmluZ3MgdGhhdCBtYXkgbW92ZSBhcm91bmQgaW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNo
YW5pc20gZm9yIG5vdGlmeWluZworICAgICAqICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVu
IHJlbG9jYXRlZCwgYW5kIHByb3ZpZGluZyBhIG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICAg
ICogIHN0cmluZyBpbiBpdHMgbmV3IHBvc2l0aW9uLgorICAgICAqCisgICAgICogIE5vdGUgdGhh
dCB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24gbmV2ZXIgY29waWVzIHRoZSB1bmRl
cmx5aW5nIHRleHQKKyAgICAgKiAgb2YgYSBzdHJpbmcgYmVpbmcgcHJvY2Vzc2VkLCBidXQgYWx3
YXlzIG9wZXJhdGVzIGRpcmVjdGx5IG9uIHRoZSBvcmlnaW5hbCB0ZXh0CisgICAgICogIHByb3Zp
ZGVkIGJ5IHRoZSB1c2VyLiBSZWZyZXNoaW5nIHNpbXBseSBkcm9wcyB0aGUgcmVmZXJlbmNlcyB0
byB0aGUgb2xkIHRleHQKKyAgICAgKiAgYW5kIHJlcGxhY2VzIHRoZW0gd2l0aCByZWZlcmVuY2Vz
IHRvIHRoZSBuZXcuCisgICAgICoKKyAgICAgKiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rpb24gaXMg
bm9ybWFsbHkgdXNlZCBvbmx5IGJ5IHZlcnkgc3BlY2lhbGl6ZWQsCisgICAgICogIHN5c3RlbS1s
ZXZlbCBjb2RlLiAgT25lIGV4YW1wbGUgdXNlIGNhc2UgaXMgd2l0aCBnYXJiYWdlIGNvbGxlY3Rp
b24gdGhhdCBtb3ZlcworICAgICAqICB0aGUgdGV4dCBpbiBtZW1vcnkuCisgICAgICoKKyAgICAg
KiBAcGFyYW0gaW5wdXQgICAgICBUaGUgbmV3IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisgICAgICog
QHBhcmFtIHN0YXR1cyAgICAgUmVjZWl2ZXMgZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rp
b24uCisgICAgICogQHJldHVybiAgICAgICAgICAgKnRoaXMKKyAgICAgKgorICAgICAqIEBzdGFi
bGUgSUNVIDQ5CisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yICZyZWZyZXNoSW5w
dXRUZXh0KFVUZXh0ICppbnB1dCwgVUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyBwcml2YXRl
OgorICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBidWlsZEluc3RhbmNlKGNvbnN0IExvY2FsZSYg
bG9jLCBjb25zdCBjaGFyICp0eXBlLCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7
CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUluc3RhbmNlKGNvbnN0IExvY2FsZSYg
bG9jLCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisgICAgc3RhdGljIEJyZWFr
SXRlcmF0b3IqIG1ha2VJbnN0YW5jZShjb25zdCBMb2NhbGUmIGxvYywgaW50MzJfdCBraW5kLCBV
RXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgZnJpZW5kIGNsYXNzIElDVUJyZWFrSXRlcmF0b3JG
YWN0b3J5OworICAgIGZyaWVuZCBjbGFzcyBJQ1VCcmVha0l0ZXJhdG9yU2VydmljZTsKKworcHJv
dGVjdGVkOgorICAgIC8vIERvIG5vdCBlbmNsb3NlIHByb3RlY3RlZCBkZWZhdWx0L2NvcHkgY29u
c3RydWN0b3JzIHdpdGggI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLy8gb3IgZWxz
ZSB0aGUgY29tcGlsZXIgd2lsbCBjcmVhdGUgYSBwdWJsaWMgb25lcy4KKyAgICAvKiogQGludGVy
bmFsICovCisgICAgQnJlYWtJdGVyYXRvcigpOworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBC
cmVha0l0ZXJhdG9yIChjb25zdCBCcmVha0l0ZXJhdG9yICZvdGhlcikgOiBVT2JqZWN0KG90aGVy
KSB7fQorICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJhdG9yIChjb25zdCBMb2Nh
bGUmIHZhbGlkLCBjb25zdCBMb2NhbGUmIGFjdHVhbCk7Citwcml2YXRlOgorCisgICAgLyoqIEBp
bnRlcm5hbCAqLworICAgIGNoYXIgYWN0dWFsTG9jYWxlW1VMT0NfRlVMTE5BTUVfQ0FQQUNJVFld
OworICAgIGNoYXIgdmFsaWRMb2NhbGVbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07CisKKyAgICAv
KioKKyAgICAgKiBUaGUgYXNzaWdubWVudCBvcGVyYXRvciBoYXMgbm8gcmVhbCBpbXBsZW1lbnRh
dGlvbi4KKyAgICAgKiBJdCdzIHByb3ZpZGVkIHRvIG1ha2UgdGhlIGNvbXBpbGVyIGhhcHB5LiBE
byBub3QgY2FsbC4KKyAgICAgKi8KKyAgICBCcmVha0l0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3Qg
QnJlYWtJdGVyYXRvciYpOworfTsKKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKwor
aW5saW5lIFVCb29sIEJyZWFrSXRlcmF0b3I6OmlzQnVmZmVyQ2xvbmUoKQoreworICAgIHJldHVy
biBGQUxTRTsKK30KKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLworCitVX05B
TUVTUEFDRV9FTkQKKworI2VuZGlmIC8qICNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04g
Ki8KKworI2VuZGlmIC8vIF9CUktJVEVSCisvL2VvZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9p
Y3UvdW5pY29kZS9jaGFyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9jaGFyaXRlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU4ZDY1MDkwYTQwYTYwODU5NTFjNzMzMDdmNzRhY2Y4M2JhMWJiYzgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmgKQEAgLTAs
MCArMSw3MjIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0y
MDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5k
IG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lm
bmRlZiBDSEFSSVRFUl9ICisjZGVmaW5lIENIQVJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUv
dXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29k
ZS91bmlzdHIuaCIKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBDaGFyYWN0ZXIg
SXRlcmF0b3IKKyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgorICogQWJzdHJhY3QgY2xh
c3MgdGhhdCBkZWZpbmVzIGFuIEFQSSBmb3IgZm9yd2FyZC1vbmx5IGl0ZXJhdGlvbgorICogb24g
dGV4dCBvYmplY3RzLgorICogVGhpcyBpcyBhIG1pbmltYWwgaW50ZXJmYWNlIGZvciBpdGVyYXRp
b24gd2l0aG91dCByYW5kb20gYWNjZXNzCisgKiBvciBiYWNrd2FyZHMgaXRlcmF0aW9uLiBJdCBp
cyBlc3BlY2lhbGx5IHVzZWZ1bCBmb3Igd3JhcHBpbmcKKyAqIHN0cmVhbXMgd2l0aCBjb252ZXJ0
ZXJzIGludG8gYW4gb2JqZWN0IGZvciBjb2xsYXRpb24gb3IKKyAqIG5vcm1hbGl6YXRpb24uCisg
KgorICogPHA+Q2hhcmFjdGVycyBjYW4gYmUgYWNjZXNzZWQgaW4gdHdvIHdheXM6IGFzIGNvZGUg
dW5pdHMgb3IgYXMKKyAqIGNvZGUgcG9pbnRzLgorICogVW5pY29kZSBjb2RlIHBvaW50cyBhcmUg
MjEtYml0IGludGVnZXJzIGFuZCBhcmUgdGhlIHNjYWxhciB2YWx1ZXMKKyAqIG9mIFVuaWNvZGUg
Y2hhcmFjdGVycy4gSUNVIHVzZXMgdGhlIHR5cGUgVUNoYXIzMiBmb3IgdGhlbS4KKyAqIFVuaWNv
ZGUgY29kZSB1bml0cyBhcmUgdGhlIHN0b3JhZ2UgdW5pdHMgb2YgYSBnaXZlbgorICogVW5pY29k
ZS9VQ1MgVHJhbnNmb3JtYXRpb24gRm9ybWF0IChhIGNoYXJhY3RlciBlbmNvZGluZyBzY2hlbWUp
LgorICogV2l0aCBVVEYtMTYsIGFsbCBjb2RlIHBvaW50cyBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0
aCBlaXRoZXIgb25lCisgKiBvciB0d28gY29kZSB1bml0cyAoInN1cnJvZ2F0ZXMiKS4KKyAqIFN0
cmluZyBzdG9yYWdlIGlzIHR5cGljYWxseSBiYXNlZCBvbiBjb2RlIHVuaXRzLCB3aGlsZSBwcm9w
ZXJ0aWVzCisgKiBvZiBjaGFyYWN0ZXJzIGFyZSB0eXBpY2FsbHkgZGV0ZXJtaW5lZCB1c2luZyBj
b2RlIHBvaW50IHZhbHVlcy4KKyAqIFNvbWUgcHJvY2Vzc2VzIG1heSBiZSBkZXNpZ25lZCB0byB3
b3JrIHdpdGggc2VxdWVuY2VzIG9mIGNvZGUgdW5pdHMsCisgKiBvciBpdCBtYXkgYmUga25vd24g
dGhhdCBhbGwgY2hhcmFjdGVycyB0aGF0IGFyZSBpbXBvcnRhbnQgdG8gYW4KKyAqIGFsZ29yaXRo
bSBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aCBzaW5nbGUgY29kZSB1bml0cy4KKyAqIE90aGVyIHBy
b2Nlc3NlcyB3aWxsIG5lZWQgdG8gdXNlIHRoZSBjb2RlIHBvaW50IGFjY2VzcyBmdW5jdGlvbnMu
PC9wPgorICoKKyAqIDxwPkZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciBwcm92aWRlcyBuZXh0UG9z
dEluYygpIHRvIGFjY2VzcworICogYSBjb2RlIHVuaXQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwg
cG9zaXRpb24gaW50byB0aGUgdGV4dCBvYmplY3QsCisgKiBzaW1pbGFyIHRvIGEgPGNvZGU+cmV0
dXJuIHRleHRbcG9zaXRpb24rK108L2NvZGU+Ljxicj4KKyAqIEl0IHByb3ZpZGVzIG5leHQzMlBv
c3RJbmMoKSB0byBhY2Nlc3MgYSBjb2RlIHBvaW50IGFuZCBhZHZhbmNlIGFuIGludGVybmFsCisg
KiBwb3NpdGlvbi48L3A+CisgKgorICogPHA+bmV4dDMyUG9zdEluYygpIGFzc3VtZXMgdGhhdCB0
aGUgY3VycmVudCBwb3NpdGlvbiBpcyB0aGF0IG9mCisgKiB0aGUgYmVnaW5uaW5nIG9mIGEgY29k
ZSBwb2ludCwgaS5lLiwgb2YgaXRzIGZpcnN0IGNvZGUgdW5pdC4KKyAqIEFmdGVyIG5leHQzMlBv
c3RJbmMoKSwgdGhpcyB3aWxsIGJlIHRydWUgYWdhaW4uCisgKiBJbiBnZW5lcmFsLCBhY2Nlc3Mg
dG8gY29kZSB1bml0cyBhbmQgY29kZSBwb2ludHMgaW4gdGhlIHNhbWUKKyAqIGl0ZXJhdGlvbiBs
b29wIHNob3VsZCBub3QgYmUgbWl4ZWQuIEluIFVURi0xNiwgaWYgdGhlIGN1cnJlbnQgcG9zaXRp
b24KKyAqIGlzIG9uIGEgc2Vjb25kIGNvZGUgdW5pdCAoTG93IFN1cnJvZ2F0ZSksIHRoZW4gb25s
eSB0aGF0IGNvZGUgdW5pdAorICogaXMgcmV0dXJuZWQgZXZlbiBieSBuZXh0MzJQb3N0SW5jKCku
PC9wPgorICoKKyAqIDxwPkZvciBpdGVyYXRpb24gd2l0aCBlaXRoZXIgZnVuY3Rpb24sIHRoZXJl
IGFyZSB0d28gd2F5cyB0bworICogY2hlY2sgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbi4g
V2hlbiB0aGVyZSBhcmUgbm8gbW9yZQorICogY2hhcmFjdGVycyBpbiB0aGUgdGV4dCBvYmplY3Q6
CisgKiA8dWw+CisgKiA8bGk+VGhlIGhhc05leHQoKSBmdW5jdGlvbiByZXR1cm5zIEZBTFNFLjwv
bGk+CisgKiA8bGk+bmV4dFBvc3RJbmMoKSBhbmQgbmV4dDMyUG9zdEluYygpIHJldHVybiBET05F
CisgKiAgICAgd2hlbiBvbmUgYXR0ZW1wdHMgdG8gcmVhZCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUg
dGV4dCBvYmplY3QuPC9saT4KKyAqIDwvdWw+CisgKgorICogRXhhbXBsZToKKyAqIFxjb2RlIAor
ICogdm9pZCBmdW5jdGlvbjEoRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAg
IFVDaGFyMzIgYzsKKyAqICAgICB3aGlsZShpdC5oYXNOZXh0KCkpIHsKKyAqICAgICAgICAgYz1p
dC5uZXh0MzJQb3N0SW5jKCk7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgfQorICogfQor
ICoKKyAqIHZvaWQgZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAq
ICAgICBVQ2hhciBjOworICogICAgIHdoaWxlKChjPWl0Lm5leHRQb3N0SW5jKCkpIT1Gb3J3YXJk
Q2hhcmFjdGVySXRlcmF0b3I6OkRPTkUpIHsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAg
fQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3A+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisg
Ki8KK2NsYXNzIFVfQ09NTU9OX0FQSSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMg
VU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgbW9z
dCBvZiBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IncyBmdW5jdGlvbnMKKyAgICAgKiB3aGVuIHRo
ZSBpdGVyYXRvciBoYXMgcmVhY2hlZCB0aGUgbGltaXRzIG9mIGl0cyBpdGVyYXRpb24uCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgZW51bSB7IERPTkUgPSAweGZmZmYgfTsK
KyAgICAKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yLiAgCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCB+Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yKCk7Cisg
ICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIHdoZW4gYm90aCBpdGVyYXRvcnMgcmVm
ZXIgdG8gdGhlIHNhbWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgY2hhcmFjdGVyLXN0
b3JhZ2Ugb2JqZWN0LiAgCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRydWUg
d2hlbiBib3RoIGl0ZXJhdG9ycyByZWZlciB0byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBp
biB0aGUgc2FtZSBjaGFyYWN0ZXItc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENo
YXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICog
UmV0dXJucyB0cnVlIHdoZW4gdGhlIGl0ZXJhdG9ycyByZWZlciB0byBkaWZmZXJlbnQKKyAgICAg
KiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0cywgb3IgdG8gZGlmZmVyZW50IGNoYXJhY3RlcnMgaW4gdGhl
CisgICAgICogc2FtZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LiAgCisgICAgICogQHBhcmFtIHRoYXQg
VGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgaW5lcXVhbGl0
eQorICAgICAqIEByZXR1cm4gdHJ1ZSB3aGVuIHRoZSBpdGVyYXRvcnMgcmVmZXIgdG8gZGlmZmVy
ZW50CisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdHMsIG9yIHRvIGRpZmZlcmVudCBjaGFyYWN0
ZXJzIGluIHRoZQorICAgICAqIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisgICAgCisgICAgLyoqCisgICAg
ICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGlzIGl0ZXJhdG9yLiAgCisgICAgICogQHJl
dHVybiB0aGUgaGFzaCBjb2RlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBoYXNoQ29kZSh2b2lkKSBjb25zdCA9IDA7CisgICAgCisgICAgLyoq
CisgICAgICogUmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGlzIEZvcndhcmRDaGFyYWN0ZXJJdGVy
YXRvciAoInBvb3IgbWFuJ3MKKyAgICAgKiBSVFRJIikuPFA+IERlc3BpdGUgdGhlIGZhY3QgdGhh
dCB0aGlzIGZ1bmN0aW9uIGlzIHB1YmxpYywKKyAgICAgKiBETyBOT1QgQ09OU0lERVIgSVQgUEFS
VCBPRiBDSEFSQUNURVJJVEVSQVRPUidTIEFQSSEgCisgICAgICogQHJldHVybiBhIFVDbGFzc0lE
IGZvciB0aGlzIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKHZvaWQp
IGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUg
dW5pdCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQKKyAg
ICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4g
IElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVy
bnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dFBv
c3RJbmModm9pZCkgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQg
Y29kZSBwb2ludCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBv
aW50CisgICAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5k
ZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJldHVy
biwgcmV0dXJucyBET05FLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSBwb2ludC4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAg
ICAgbmV4dDMyUG9zdEluYyh2b2lkKSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJu
cyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisg
ICAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiBy
YW5nZS4KKyAgICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBv
c3RJbmMoKSBpbiBmb3J3YXJkCisgICAgICogaXRlcmF0aW9uLgorICAgICAqIEByZXR1cm5zIEZB
TFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAg
KiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgICAg
ICAgIGhhc05leHQoKSA9IDA7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgLyoqIERlZmF1bHQgY29u
c3RydWN0b3IgdG8gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLiBAc3Rh
YmxlIElDVSAyLjAqLworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgIAorICAg
IC8qKiBDb3B5IGNvbnN0cnVjdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGlu
ZyBjbGFzcy4gQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Io
Y29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZvdGhlcik7CisgICAgCisgICAgLyoqCisg
ICAgICogQXNzaWdubWVudCBvcGVyYXRvciB0byBiZSBvdmVycmlkZGVuIGluIHRoZSBpbXBsZW1l
bnRpbmcgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yICZvcGVyYXRvcj0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yJikgeyByZXR1cm4gKnRoaXM7IH0KK307CisKKy8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhh
dCBkZWZpbmVzIGFuIEFQSSBmb3IgaXRlcmF0aW9uCisgKiBvbiB0ZXh0IG9iamVjdHMuCisgKiBU
aGlzIGlzIGFuIGludGVyZmFjZSBmb3IgZm9yd2FyZCBhbmQgYmFja3dhcmQgaXRlcmF0aW9uCisg
KiBhbmQgcmFuZG9tIGFjY2VzcyBpbnRvIGEgdGV4dCBvYmplY3QuCisgKgorICogPHA+VGhlIEFQ
SSBwcm92aWRlcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHRvIHRoZSBKYXZhIGFuZCBvbGRlciBJ
Q1UKKyAqIENoYXJhY3Rlckl0ZXJhdG9yIGNsYXNzZXMgYnV0IGV4dGVuZHMgdGhlbSBzaWduaWZp
Y2FudGx5OgorICogPG9sPgorICogPGxpPkNoYXJhY3Rlckl0ZXJhdG9yIGlzIG5vdyBhIHN1YmNs
YXNzIG9mIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci48L2xpPgorICogPGxpPldoaWxlIHRoZSBv
bGQgQVBJIGZ1bmN0aW9ucyBwcm92aWRlZCBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoCisgKiAgICAg
InByZS1pbmNyZW1lbnQiIHNlbWFudGljcywgdGhlIG5ldyBvbmUgYWxzbyBwcm92aWRlcyBmdW5j
dGlvbnMKKyAqICAgICB3aXRoICJwb3N0LWluY3JlbWVudCIgc2VtYW50aWNzLiBUaGV5IGFyZSBt
b3JlIGVmZmljaWVudCBhbmQgc2hvdWxkCisgKiAgICAgYmUgdGhlIHByZWZlcnJlZCBpdGVyYXRv
ciBmdW5jdGlvbnMgZm9yIG5ldyBpbXBsZW1lbnRhdGlvbnMuCisgKiAgICAgVGhlIGJhY2t3YXJk
IGl0ZXJhdGlvbiBhbHdheXMgaGFkICJwcmUtZGVjcmVtZW50IiBzZW1hbnRpY3MsIHdoaWNoCisg
KiAgICAgYXJlIGVmZmljaWVudC48L2xpPgorICogPGxpPkp1c3QgbGlrZSBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IsIGl0IHByb3ZpZGVzIGFjY2VzcyB0bworICogICAgIGJvdGggY29kZSB1bml0
cyBhbmQgY29kZSBwb2ludHMuIENvZGUgcG9pbnQgYWNjZXNzIHZlcnNpb25zIGFyZSBhdmFpbGFi
bGUKKyAqICAgICBmb3IgdGhlIG9sZCBhbmQgdGhlIG5ldyBpdGVyYXRpb24gc2VtYW50aWNzLjwv
bGk+CisgKiA8bGk+VGhlcmUgYXJlIG5ldyBmdW5jdGlvbnMgZm9yIHNldHRpbmcgYW5kIG1vdmlu
ZyB0aGUgY3VycmVudCBwb3NpdGlvbgorICogICAgIHdpdGhvdXQgcmV0dXJuaW5nIGEgY2hhcmFj
dGVyLCBmb3IgZWZmaWNpZW5jeS48L2xpPgorICogPC9vbD4KKyAqCisgKiBTZWUgRm9yd2FyZENo
YXJhY3Rlckl0ZXJhdG9yIGZvciBleGFtcGxlcyBmb3IgdXNpbmcgdGhlIG5ldyBmb3J3YXJkIGl0
ZXJhdGlvbgorICogZnVuY3Rpb25zLiBGb3IgYmFja3dhcmQgaXRlcmF0aW9uLCB0aGVyZSBpcyBh
bHNvIGEgaGFzUHJldmlvdXMoKSBmdW5jdGlvbgorICogdGhhdCBjYW4gYmUgdXNlZCBhbmFsb2dv
dXNseSB0byBoYXNOZXh0KCkuCisgKiBUaGUgb2xkIGZ1bmN0aW9ucyB3b3JrIGFzIGJlZm9yZSBh
bmQgYXJlIHNob3duIGJlbG93LjwvcD4KKyAqCisgKiA8cD5FeGFtcGxlcyBmb3Igc29tZSBvZiB0
aGUgbmV3IGZ1bmN0aW9uczo8L3A+CisgKgorICogRm9yd2FyZCBpdGVyYXRpb24gd2l0aCBoYXNO
ZXh0KCk6CisgKiBcY29kZQorICogdm9pZCBmb3J3YXJkMShDaGFyYWN0ZXJJdGVyYXRvciAmaXQp
IHsKKyAqICAgICBVQ2hhcjMyIGM7CisgKiAgICAgZm9yKGl0LnNldFRvU3RhcnQoKTsgaXQuaGFz
TmV4dCgpOykgeworICogICAgICAgICBjPWl0Lm5leHQzMlBvc3RJbmMoKTsKKyAqICAgICAgICAg
Ly8gdXNlIGMKKyAqICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIEZvcndhcmQgaXRlcmF0
aW9uIG1vcmUgc2ltaWxhciB0byBsb29wcyB3aXRoIHRoZSBvbGQgZm9yd2FyZCBpdGVyYXRpb24s
CisgKiBzaG93aW5nIGEgd2F5IHRvIGNvbnZlcnQgc2ltcGxlIGZvcigpIGxvb3BzOgorICogXGNv
ZGUKKyAqIHZvaWQgZm9yd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNo
YXIgYzsKKyAqICAgICBmb3IoYz1pdC5maXJzdFBvc3RJbmMoKTsgYyE9Q2hhcmFjdGVySXRlcmF0
b3I6OkRPTkU7IGM9aXQubmV4dFBvc3RJbmMoKSkgeworICogICAgICAgICAgLy8gdXNlIGMKKyAq
ICAgICAgfQorICogfQorICogXGVuZGNvZGUKKyAqIEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIHNl
dFRvRW5kKCkgYW5kIGhhc1ByZXZpb3VzKCk6CisgKiBcY29kZQorICogIHZvaWQgYmFja3dhcmQx
KENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgICBVQ2hhcjMyIGM7CisgKiAgICAgIGZv
cihpdC5zZXRUb0VuZCgpOyBpdC5oYXNQcmV2aW91cygpOykgeworICogICAgICAgICBjPWl0LnBy
ZXZpb3VzMzIoKTsKKyAqICAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBc
ZW5kY29kZQorICogQmFja3dhcmQgaXRlcmF0aW9uIHdpdGggYSBtb3JlIHRyYWRpdGlvbmFsIGZv
cigpIGxvb3A6CisgKiBcY29kZQorICogdm9pZCBiYWNrd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3Ig
Jml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAgICBmb3IoYz1pdC5sYXN0KCk7IGMhPUNoYXJh
Y3Rlckl0ZXJhdG9yOjpET05FOyBjPWl0LnByZXZpb3VzKCkpIHsKKyAqICAgICAgICAgLy8gdXNl
IGMKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKgorICogRXhhbXBsZSBmb3IgcmFu
ZG9tIGFjY2VzczoKKyAqIFxjb2RlCisgKiAgdm9pZCByYW5kb20oQ2hhcmFjdGVySXRlcmF0b3Ig
Jml0KSB7CisgKiAgICAgIC8vIHNldCB0byB0aGUgdGhpcmQgY29kZSBwb2ludCBmcm9tIHRoZSBi
ZWdpbm5pbmcKKyAqICAgICAgaXQubW92ZTMyKDMsIENoYXJhY3Rlckl0ZXJhdG9yOjprU3RhcnQp
OworICogICAgICAvLyBnZXQgYSBjb2RlIHBvaW50IGZyb20gaGVyZSB3aXRob3V0IG1vdmluZyB0
aGUgcG9zaXRpb24KKyAqICAgICAgVUNoYXIzMiBjPWl0LmN1cnJlbnQzMigpOworICogICAgICAv
LyBnZXQgdGhlIHBvc2l0aW9uCisgKiAgICAgIGludDMyX3QgcG9zPWl0LmdldEluZGV4KCk7Cisg
KiAgICAgIC8vIGdldCB0aGUgcHJldmlvdXMgY29kZSB1bml0CisgKiAgICAgIFVDaGFyIHU9aXQu
cHJldmlvdXMoKTsKKyAqICAgICAgLy8gbW92ZSBiYWNrIG9uZSBtb3JlIGNvZGUgdW5pdAorICog
ICAgICBpdC5tb3ZlKC0xLCBDaGFyYWN0ZXJJdGVyYXRvcjo6a0N1cnJlbnQpOworICogICAgICAv
LyBzZXQgdGhlIHBvc2l0aW9uIGJhY2sgdG8gd2hlcmUgaXQgd2FzCisgKiAgICAgIC8vIGFuZCBy
ZWFkIHRoZSBzYW1lIGNvZGUgcG9pbnQgYyBhbmQgbW92ZSBiZXlvbmQgaXQKKyAqICAgICAgaXQu
c2V0SW5kZXgocG9zKTsKKyAqICAgICAgaWYoYyE9aXQubmV4dDMyUG9zdEluYygpKSB7CisgKiAg
ICAgICAgICBleGl0KDEpOyAvLyBDaGFyYWN0ZXJJdGVyYXRvciBpbmNvbnNpc3RlbnQKKyAqICAg
ICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKgorICogPHA+RXhhbXBsZXMsIGVzcGVjaWFsbHkg
Zm9yIHRoZSBvbGQgQVBJOjwvcD4KKyAqCisgKiBGdW5jdGlvbiBwcm9jZXNzaW5nIGNoYXJhY3Rl
cnMsIGluIHRoaXMgZXhhbXBsZSBzaW1wbGUgb3V0cHV0CisgKiA8cHJlPgorICogXGNvZGUKKyAq
ICB2b2lkIHByb2Nlc3NDaGFyKCBVQ2hhciBjICkKKyAqICB7CisgKiAgICAgIGNvdXQgPDwgIiAi
IDw8IGM7CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgdGhlIHRl
eHQgZnJvbSBzdGFydCB0byBmaW5pc2gKKyAqIDxwcmU+IAorICogXGNvZGUKKyAqICB2b2lkIHRy
YXZlcnNlRm9yd2FyZChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlcikKKyAqICB7CisgKiAgICAgIGZv
cihVQ2hhciBjID0gaXRlci5maXJzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMg
PSBpdGVyLm5leHQoKSkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgIH0K
KyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSB0aGUgdGV4dCBiYWNr
d2FyZHMsIGZyb20gZW5kIHRvIHN0YXJ0CisgKiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIHRy
YXZlcnNlQmFja3dhcmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIpCisgKiAgeworICogICAgICBm
b3IoVUNoYXIgYyA9IGl0ZXIubGFzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMg
PSBpdGVyLnByZXZpb3VzKCkpIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMpOworICogICAg
ICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgYm90aCBmb3J3
YXJkIGFuZCBiYWNrd2FyZCBmcm9tIGEgZ2l2ZW4gcG9zaXRpb24gaW4gdGhlIHRleHQuIAorICog
Q2FsbHMgdG8gbm90Qm91bmRhcnkoKSBpbiB0aGlzIGV4YW1wbGUgcmVwcmVzZW50cyBzb21lIGFk
ZGl0aW9uYWwgc3RvcHBpbmcgY3JpdGVyaWEuCisgKiA8cHJlPgorICogXGNvZGUKKyAqIHZvaWQg
dHJhdmVyc2VPdXQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIsIGludDMyX3QgcG9zKQorICogewor
ICogICAgICBVQ2hhciBjOworICogICAgICBmb3IgKGMgPSBpdGVyLnNldEluZGV4KHBvcyk7Cisg
KiAgICAgIGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJiAoVW5pY29kZTo6aXNMZXR0ZXIo
YykgfHwgVW5pY29kZTo6aXNEaWdpdChjKSk7CisgKiAgICAgICAgICBjID0gaXRlci5uZXh0KCkp
IHt9CisgKiAgICAgIGludDMyX3QgZW5kID0gaXRlci5nZXRJbmRleCgpOworICogICAgICBmb3Ig
KGMgPSBpdGVyLnNldEluZGV4KHBvcyk7CisgKiAgICAgICAgICBjICE9IENoYXJhY3Rlckl0ZXJh
dG9yLkRPTkUgJiYgKFVuaWNvZGU6OmlzTGV0dGVyKGMpIHx8IFVuaWNvZGU6OmlzRGlnaXQoYykp
OworICogICAgICAgICAgYyA9IGl0ZXIucHJldmlvdXMoKSkge30KKyAqICAgICAgaW50MzJfdCBz
dGFydCA9IGl0ZXIuZ2V0SW5kZXgoKSArIDE7CisgKiAgCisgKiAgICAgIGNvdXQgPDwgInN0YXJ0
OiAiIDw8IHN0YXJ0IDw8ICIgZW5kOiAiIDw8IGVuZCA8PCBlbmRsOworICogICAgICBmb3IgKGMg
PSBpdGVyLnNldEluZGV4KHN0YXJ0KTsgaXRlci5nZXRJbmRleCgpIDwgZW5kOyBjID0gaXRlci5u
ZXh0KCkgKSB7CisgKiAgICAgICAgICBwcm9jZXNzQ2hhcihjKTsKKyAqICAgICB9CisgKiAgfQor
ICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogQ3JlYXRpbmcgYSBTdHJpbmdDaGFyYWN0ZXJJdGVy
YXRvciBhbmQgY2FsbGluZyB0aGUgdGVzdCBmdW5jdGlvbnMKKyAqIDxwcmU+CisgKiBcY29kZQor
ICogIHZvaWQgQ2hhcmFjdGVySXRlcmF0b3JfRXhhbXBsZSggdm9pZCApCisgKiAgIHsKKyAqICAg
ICAgIGNvdXQgPDwgZW5kbCA8PCAiPT09PT0gQ2hhcmFjdGVySXRlcmF0b3JfRXhhbXBsZTogPT09
PT0iIDw8IGVuZGw7CisgKiAgICAgICBVbmljb2RlU3RyaW5nIHRleHQoIkVpbiBrbGVpbmVyIFNh
dHouIik7CisgKiAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvcih0ZXh0KTsK
KyAqICAgICAgIGNvdXQgPDwgIi0tLS0tIHRyYXZlcnNlRm9yd2FyZDogLS0tLS0tLS0tLS0iIDw8
IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZUZvcndhcmQoIGl0ZXJhdG9yICk7CisgKiAgICAgICBj
b3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVyc2VCYWNrd2FyZDogLS0tLS0tLS0t
LSIgPDwgZW5kbDsKKyAqICAgICAgIHRyYXZlcnNlQmFja3dhcmQoIGl0ZXJhdG9yICk7CisgKiAg
ICAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVyc2VPdXQ6IC0tLS0tLS0t
LS0tLS0tLSIgPDwgZW5kbDsKKyAqICAgICAgIHRyYXZlcnNlT3V0KCBpdGVyYXRvciwgNyApOwor
ICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIiA8PCBlbmRsOworICogICB9
CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2Ns
YXNzIFVfQ09NTU9OX0FQSSBDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IgeworcHVibGljOgorICAgIC8qKgorICAgICAqIE9yaWdpbiBlbnVtZXJhdGlv
biBmb3IgdGhlIG1vdmUoKSBhbmQgbW92ZTMyKCkgZnVuY3Rpb25zLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIGVudW0gRU9yaWdpbiB7IGtTdGFydCwga0N1cnJlbnQsIGtF
bmQgfTsKKworICAgIC8qKgorICAgICAqIERlc3RydWN0b3IuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCB+Q2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8q
KgorICAgICAqIFJldHVybnMgYSBwb2ludGVyIHRvIGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yIG9m
IHRoZSBzYW1lCisgICAgICogY29uY3JldGUgY2xhc3MgYXMgdGhpcyBvbmUsIGFuZCByZWZlcnJp
bmcgdG8gdGhlIHNhbWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgdGV4dC1zdG9yYWdl
IG9iamVjdCBhcyB0aGlzIG9uZS4gIFRoZQorICAgICAqIGNhbGxlciBpcyByZXNwb25zaWJsZSBm
b3IgZGVsZXRpbmcgdGhlIG5ldyBjbG9uZS4gIAorICAgICAqIEByZXR1cm4gYSBwb2ludGVyIHRv
IGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3QgPSAwOwor
CisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0
IGNvZGUgdW5pdCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRo
YXQgY29kZSB1bml0LgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0
aW9uIHdpdGggbmV4dCgpLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBp
dHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0
cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1v
dmVzIHRoZSBwb3NpdGlvbgorICAgICAqIHRvIHRoZSBzZWNvbmQgY29kZSB1bml0LiBUaGlzIGlz
IGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAgICAqIGZvciBmb3J3YXJkIGl0ZXJh
dGlvbiB3aXRoIG5leHRQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1
bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0UG9zdEluYyh2b2lkKTsKKworICAg
IC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2Rl
IHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBj
b2RlIHVuaXQsCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24g
d2l0aCBuZXh0MzIoKS4KKyAgICAgKiBOb3RlIHRoYXQgYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMy
UG9zdEluYygpLCBiZWdpbm5pbmcgd2l0aCwKKyAgICAgKiBlLmcuLCBzZXRUb1N0YXJ0KCkgb3Ig
Zmlyc3RQb3N0SW5jKCksIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIEByZXR1cm4gdGhlIGZp
cnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmlyc3QzMih2b2lkKSA9
IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUg
Zmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMg
dGhhdCBjb2RlIHBvaW50LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAgICogdG8gdGhlIHNl
Y29uZCBjb2RlIHBvaW50LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQor
ICAgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICAg
KiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAg
IGZpcnN0MzJQb3N0SW5jKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0
b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvciBjb2RlIHBvaW50IGluIGl0cwor
ICAgICAqIGl0ZXJhdGlvbiByYW5nZS4gVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhIGZvcndh
cmQKKyAgICAgKiBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMo
KS4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJh
bmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3Qg
ICAgc2V0VG9TdGFydCgpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8g
cmVmZXIgdG8gdGhlIGxhc3QgY29kZSB1bml0IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5n
ZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0
byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpLgorICAgICAqIEByZXR1cm4gdGhl
IGxhc3QgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUNoYXIgICAgICAgICBsYXN0KHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisg
ICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSBwb2ludCBp
biBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0
LgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJl
dmlvdXMzMigpLgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSBwb2ludC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMy
KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBl
bmQgb2YgaXRzIGl0ZXJhdGlvbiByYW5nZSwganVzdCBiZWhpbmQKKyAgICAgKiB0aGUgbGFzdCBj
b2RlIHVuaXQgb3IgY29kZSBwb2ludC4gVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhIGJhY2t3
YXJkCisgICAgICogaXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkuCisg
ICAgICogQHJldHVybiB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICBzZXRU
b0VuZCgpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8g
dGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBv
YmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAgICogcmV0dXJucyB0aGF0IGNv
ZGUgdW5pdC4gIAorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgInBvc2l0aW9uIi10aCBjb2Rl
IHVuaXQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAcmV0dXJuIHRoZSAicG9z
aXRpb24iLXRoIGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIFVDaGFyICAgICAgICAgc2V0SW5kZXgoaW50MzJfdCBwb3NpdGlvbikgPSAwOwor
CisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lu
bmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgICAqIHRoYXQgY29udGFpbnMgdGhlICJwb3NpdGlv
biItdGggY29kZSB1bml0CisgICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0
ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAgICogcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisg
ICAgICogVGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgYWRqdXN0ZWQgdG8gdGhlIGJlZ2lubmluZyBv
ZiB0aGUgY29kZSBwb2ludAorICAgICAqIChpdHMgZmlyc3QgY29kZSB1bml0KS4KKyAgICAgKiBA
cGFyYW0gcG9zaXRpb24gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0IGluIHRoZSB0ZXh0LXN0
b3JhZ2Ugb2JqZWN0CisgICAgICogQHJldHVybiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHBvaW50
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAg
ICAgICBzZXRJbmRleDMyKGludDMyX3QgcG9zaXRpb24pID0gMDsKKworICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4g
CisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuIAorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBjdXJyZW50KHZvaWQp
IGNvbnN0ID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29kZSBw
b2ludCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4gIAorICAgICAqIEByZXR1cm4g
dGhlIGN1cnJlbnQgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgY3VycmVudDMyKHZvaWQpIGNvbnN0ID0gMDsKKyAg
ICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0
dXJucyB0aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1
bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNv
ZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVD
aGFyICAgICAgICAgbmV4dCh2b2lkKSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFk
dmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAg
ICAqICh0b3dhcmQgZW5kSW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElm
IHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5z
IERPTkUuCisgICAgICogTm90ZSB0aGF0IGl0ZXJhdGlvbiB3aXRoICJwcmUtaW5jcmVtZW50IiBz
ZW1hbnRpY3MgaXMgbGVzcworICAgICAqIGVmZmljaWVudCB0aGFuIGl0ZXJhdGlvbiB3aXRoICJw
b3N0LWluY3JlbWVudCIgc2VtYW50aWNzCisgICAgICogdGhhdCBpcyBwcm92aWRlZCBieSBuZXh0
MzJQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlIHBvaW50LgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0
MzIodm9pZCkgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUg
cHJldmlvdXMgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJk
IHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJl
CisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLiAgCisg
ICAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBwcmV2aW91cyh2b2lkKSA9
IDA7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSBwb2lu
dCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBzdGFydEluZGV4KCkpLCBh
bmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3Jl
IGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLiAKKyAgICAgKiBAcmV0dXJuIHRo
ZSBwcmV2aW91cyBjb2RlIHBvaW50LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgcHJldmlvdXMzMih2b2lkKSA9IDA7CisKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMg
b3IgY29kZSBwb2ludHMKKyAgICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBwcmV2aW91cygpIG9y
IHByZXZpb3VzMzIoKSBpbiBiYWNrd2FyZAorICAgICAqIGl0ZXJhdGlvbi4KKyAgICAgKiBAcmV0
dXJuIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMK
KyAgICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5n
ZSwgcmV0dXJuIFRSVUUgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc1ByZXZpb3VzKCkgPSAwOworCisgICAgLyoq
CisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0
LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBmaXJz
dCgpLiAgU2luY2UgaXQncworICAgICAqIHBvc3NpYmxlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvciB0
aGF0IGl0ZXJhdGVzIGFjcm9zcyBvbmx5CisgICAgICogcGFydCBvZiBhIHRleHQtc3RvcmFnZSBv
YmplY3QsIHRoaXMgbnVtYmVyIGlzbid0CisgICAgICogbmVjZXNzYXJpbHkgMC4gIAorICAgICAq
IEByZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFn
ZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGZpcnN0KCkuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAg
c3RhcnRJbmRleCh2b2lkKSBjb25zdDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJu
cyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAg
KiBvYmplY3Qgb2YgdGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVy
CisgICAgICogcmV0dXJuZWQgYnkgbGFzdCgpLiAgCisgICAgICogQHJldHVybiB0aGUgbnVtZXJp
YyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2Yg
dGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVyCisgICAgICogcmV0
dXJuZWQgYnkgbGFzdCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlu
bGluZSBpbnQzMl90ICAgICAgIGVuZEluZGV4KHZvaWQpIGNvbnN0OworICAgICAgICAKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRl
eHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHRoZSBpdGVyYXRvciBj
dXJyZW50bHkgcmVmZXJzIHRvCisgICAgICogKGkuZS4sIHRoZSBjaGFyYWN0ZXIgcmV0dXJuZWQg
YnkgY3VycmVudCgpKS4gIAorICAgICAqIEByZXR1cm4gdGhlIG51bWJlcmljIGluZGV4IGluIHRo
ZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IG9mIAorICAgICAqIHRoZSBjaGFyYWN0ZXIgdGhlIGl0ZXJh
dG9yIGN1cnJlbnRseSByZWZlcnMgdG8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBnZXRJbmRleCh2b2lkKSBjb25zdDsKKworICAgIC8q
KgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgZW50aXJlIHRleHQgaW4gdGhlIHVu
ZGVybHlpbmcKKyAgICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhl
IGxlbmd0aCBvZiB0aGUgZW50aXJlIHRleHQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICAg
ICAgZ2V0TGVuZ3RoKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVu
dCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgICAqIGl0
ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxm
LgorICAgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHVu
aXRzIGZvcndhcmQKKyAgICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUg
b3IgbmVnYXRpdmUgZGVsdGEuCisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxh
dGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBh
IG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3Jp
Z2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4g
dGhlIG5ldyBwb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgaW50MzJfdCAgICAgIG1vdmUoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pID0g
MDsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZl
IHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBvciBy
ZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAgICogVGhlIG1vdmVt
ZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgcG9pbnRzIGZvcndhcmQKKyAgICAg
KiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEu
CisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEg
cG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1l
YW5zIGJhY2t3YXJkLgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtr
U3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCAgICAg
IG1vdmUzMihpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbikgPSAwOworCisgICAgLyoqCisg
ICAgICogQ29waWVzIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBVbmljb2RlU3Ry
aW5nCisgICAgICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICAKKyAgICAgKiBAcGFyYW0gcmVz
dWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uICAKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBn
ZXRUZXh0KFVuaWNvZGVTdHJpbmcmICByZXN1bHQpID0gMDsKKworcHJvdGVjdGVkOgorICAgIC8q
KgorICAgICAqIEVtcHR5IGNvbnN0cnVjdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1
Y3RvciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGggZmllbGQgaW4gdGhpcyBiYXNlIGNsYXNzLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGlu
dDMyX3QgbGVuZ3RoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLCBqdXN0IHNldHRp
bmcgdGhlIGxlbmd0aCBhbmQgcG9zaXRpb24gZmllbGRzIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQz
Ml90IGxlbmd0aCwgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1
Y3RvciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGgsIHN0YXJ0LCBlbmQsIGFuZCBwb3NpdGlvbiBm
aWVsZHMgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90IHRleHRCZWdp
biwgaW50MzJfdCB0ZXh0RW5kLCBpbnQzMl90IHBvc2l0aW9uKTsKKyAgCisgICAgLyoqCisgICAg
ICogQ29weSBjb25zdHJ1Y3Rvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBDaGFy
YWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7
CisKKyAgICAvKioKKyAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgU2V0cyB0aGlzIENoYXJh
Y3Rlckl0ZXJhdG9yIHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsCisgICAgICogYXMgdGhlIG9u
ZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHBh
c3NlZCBpbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBzZXQgQ2hhcmFjdGVySXRlcmF0b3Iu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3Ig
Jm9wZXJhdG9yPShjb25zdCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7CisKKyAgICAvKioKKyAg
ICAgKiBCYXNlIGNsYXNzIHRleHQgbGVuZ3RoIGZpZWxkLgorICAgICAqIE5lY2Vzc2FyeSB0aGlz
IGZvciBjb3JyZWN0IGdldFRleHQoKSBhbmQgaGFzaENvZGUoKS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90IHRleHRMZW5ndGg7CisKKyAgICAvKioKKyAgICAg
KiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBwb3M7CisKKyAgICAvKioKKyAgICAg
KiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0aGUgc3RhcnQgb2YgdGhlIGl0ZXJhdGlvbiByYW5nZS4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBiZWdpbjsKKwor
ICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgZmllbGQgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJh
dGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90
ICBlbmQ7Cit9OworCitpbmxpbmUgVUJvb2wKK0ZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjo6b3Bl
cmF0b3IhPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0IHsKKyAg
ICByZXR1cm4gIW9wZXJhdG9yPT0odGhhdCk7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0
ZXJJdGVyYXRvcjo6c2V0VG9TdGFydCgpIHsKKyAgICByZXR1cm4gbW92ZSgwLCBrU3RhcnQpOwor
fQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvRW5kKCkgeworICAg
IHJldHVybiBtb3ZlKDAsIGtFbmQpOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRl
cmF0b3I6OnN0YXJ0SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBiZWdpbjsKK30KKwor
aW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjplbmRJbmRleCh2b2lkKSBjb25zdCB7
CisgICAgcmV0dXJuIGVuZDsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9y
OjpnZXRJbmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIHBvczsKK30KKworaW5saW5lIGlu
dDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpnZXRMZW5ndGgodm9pZCkgY29uc3QgeworICAgIHJl
dHVybiB0ZXh0TGVuZ3RoOworfQorCitVX05BTUVTUEFDRV9FTkQKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9sb2NpZC5oIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9sb2NpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZDVjYjU0NmViZTM5N2VmNDM2ZGYzNjUwM2ViNDM3MWMz
ODY2OTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmgK
QEAgLTAsMCArMSw4MTQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5
cmlnaHQgKEMpIDE5OTYtMjAxNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqIEZpbGUgbG9jaWQuaAorKgorKiBDcmVhdGVkIGJ5OiBIZWxl
bmEgU2hpaAorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBO
YW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAyLzExLzk3ICAgIGFsaXUgICAgICAgIENoYW5n
ZWQgZ0xvY1BhdGggdG8gZmdMb2NQYXRoIGFuZCBhZGRlZCBtZXRob2RzIHRvCisqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2V0IGFuZCBzZXQgaXQuCisqICAgMDQvMDIvOTcgICAgYWxpdSAg
ICAgICAgTWFkZSBvcGVyYXRvciE9IGlubGluZTsgZml4ZWQgcmV0dXJuIHZhbHVlIG9mIGdldE5h
bWUoKS4KKyogICAwNC8xNS85NyAgICBhbGl1ICAgICAgICBDbGVhbnVwIGZvciBBSVgvV2luMzIu
CisqICAgMDQvMjQvOTcgICAgYWxpdSAgICAgICAgTnVtZXJvdXMgY2hhbmdlcyBwZXIgY29kZSBy
ZXZpZXcuCisqICAgMDgvMTgvOTggICAgc3RlcGhlbiAgICAgQWRkZWQgdG9rZW5pemVTdHJpbmco
KSxjaGFuZ2VkIGdldERpc3BsYXlOYW1lKCkKKyogICAwOS8wOC85OCAgICBzdGVwaGVuICAgICBN
b3ZlZCBkZWZpbml0aW9uIG9mIGtFbXB0eVN0cmluZyBmb3IgTWFjIFBvcnQKKyogICAxMS8wOS85
OSAgICB3ZWl2ICAgICAgICBBZGRlZCBjb25zdCBjaGFyICogZ2V0TmFtZSgpIGNvbnN0OworKiAg
IDA0LzEyLzAwICAgIHNybCAgICAgICAgIHJlbW92aW5nIHVuaWNvZGVzdHJpbmcgYXBpJ3MgYW5k
IGNhY2hlZCBoYXNoIGNvZGUKKyogICAwOC8xMC8wMSAgICBncmhvdGVuICAgICBDaGFuZ2UgdGhl
IHN0YXRpYyBMb2NhbGVzIHRvIGFjY2Vzc29yIGZ1bmN0aW9ucworKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqLworCisjaWZuZGVmIExPQ0lEX0gKKyNkZWZpbmUgTE9DSURfSAorCisjaW5jbHVkZSAi
dW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRl
ICJ1bmljb2RlL3VuaXN0ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKKyNpbmNsdWRl
ICJ1bmljb2RlL3Vsb2MuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVudW0uaCIKKworLyoqCisg
KiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IExvY2FsZSBJRCBvYmplY3QuCisgKi8KKworVV9O
QU1FU1BBQ0VfQkVHSU4KKworLy8gRm9yd2FyZCBEZWNsYXJhdGlvbnMKK3ZvaWQgVV9DQUxMQ09O
ViBsb2NhbGVfYXZhaWxhYmxlX2luaXQoKTsgLyoqPCBAaW50ZXJuYWwgKi8KKworLyoqCisgKiBB
IDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IHJlcHJlc2VudHMgYSBzcGVjaWZpYyBnZW9ncmFw
aGljYWwsIHBvbGl0aWNhbCwKKyAqIG9yIGN1bHR1cmFsIHJlZ2lvbi4gQW4gb3BlcmF0aW9uIHRo
YXQgcmVxdWlyZXMgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHRvIHBlcmZvcm0KKyAqIGl0cyB0YXNr
IGlzIGNhbGxlZCA8ZW0+bG9jYWxlLXNlbnNpdGl2ZTwvZW0+IGFuZCB1c2VzIHRoZSA8Y29kZT5M
b2NhbGU8L2NvZGU+CisgKiB0byB0YWlsb3IgaW5mb3JtYXRpb24gZm9yIHRoZSB1c2VyLiBGb3Ig
ZXhhbXBsZSwgZGlzcGxheWluZyBhIG51bWJlcgorICogaXMgYSBsb2NhbGUtc2Vuc2l0aXZlIG9w
ZXJhdGlvbi0tdGhlIG51bWJlciBzaG91bGQgYmUgZm9ybWF0dGVkCisgKiBhY2NvcmRpbmcgdG8g
dGhlIGN1c3RvbXMvY29udmVudGlvbnMgb2YgdGhlIHVzZXIncyBuYXRpdmUgY291bnRyeSwKKyAq
IHJlZ2lvbiwgb3IgY3VsdHVyZS4KKyAqCisgKiBUaGUgTG9jYWxlIGNsYXNzIGlzIG5vdCBzdWl0
YWJsZSBmb3Igc3ViY2xhc3NpbmcuCisgKgorICogPFA+CisgKiBZb3UgY2FuIGNyZWF0ZSBhIDxj
b2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IHVzaW5nIHRoZSBjb25zdHJ1Y3RvciBpbgorICogdGhp
cyBjbGFzczoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4K
KyAqICAgICAgIExvY2FsZSggY29uc3QgICBjaGFyKiAgbGFuZ3VhZ2UsCisgKiAgICAgICAgICAg
ICAgIGNvbnN0ICAgY2hhciogIGNvdW50cnksCisgKiAgICAgICAgICAgICAgIGNvbnN0ICAgY2hh
ciogIHZhcmlhbnQpOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0
bWxvbmx5CisgKiBUaGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZh
bGlkIDxTVFJPTkc+SVNPCisgKiBMYW5ndWFnZSBDb2RlLjwvU1RST05HPiBUaGVzZSBjb2RlcyBh
cmUgdGhlIGxvd2VyLWNhc2UgdHdvLWxldHRlcgorICogY29kZXMgYXMgZGVmaW5lZCBieSBJU08t
NjM5LgorICogWW91IGNhbiBmaW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNlIGNvZGVzIGF0OgorICog
PEJSPjxhIGhyZWYgPSJodHRwOi8vd3d3LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLyI+Cisg
KiBodHRwOi8vd3d3LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLzwvYT4KKyAqCisgKiA8UD4K
KyAqIFRoZSBzZWNvbmQgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZhbGlkIDxT
VFJPTkc+SVNPIENvdW50cnkKKyAqIENvZGUuPC9TVFJPTkc+IFRoZXNlIGNvZGVzIGFyZSB0aGUg
dXBwZXItY2FzZSB0d28tbGV0dGVyIGNvZGVzCisgKiBhcyBkZWZpbmVkIGJ5IElTTy0zMTY2Lgor
ICogWW91IGNhbiBmaW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNlIGNvZGVzIGF0IGEgbnVtYmVyIG9m
IHNpdGVzLCBzdWNoIGFzOgorICogPEJSPjxhIGhyZWY9Imh0dHA6Ly93d3cuaXNvLm9yZy9pc28v
ZW4vcHJvZHMtc2VydmljZXMvaXNvMzE2Nm1hL2luZGV4Lmh0bWwiPgorICogaHR0cDovL3d3dy5p
c28ub3JnL2lzby9lbi9wcm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEvaW5kZXguaHRtbDwvYT4KKyAq
CisgKiA8UD4KKyAqIFRoZSB0aGlyZCBjb25zdHJ1Y3RvciByZXF1aXJlcyBhIHRoaXJkIGFyZ3Vt
ZW50LS10aGUgPFNUUk9ORz5WYXJpYW50LjwvU1RST05HPgorICogVGhlIFZhcmlhbnQgY29kZXMg
YXJlIHZlbmRvciBhbmQgYnJvd3Nlci1zcGVjaWZpYy4KKyAqIEZvciBleGFtcGxlLCB1c2UgUkVW
SVNFRCBmb3IgYSBsYW5nYXVnZSdzIHJldmlzZWQgc2NyaXB0IG9ydGhvZ3JhcGh5LCBhbmQgUE9T
SVggZm9yIFBPU0lYLgorICogV2hlcmUgdGhlcmUgYXJlIHR3byB2YXJpYW50cywgc2VwYXJhdGUg
dGhlbSB3aXRoIGFuIHVuZGVyc2NvcmUsIGFuZAorICogcHV0IHRoZSBtb3N0IGltcG9ydGFudCBv
bmUgZmlyc3QuIEZvcgorICogZXhhbXBsZSwgYSBUcmFkaXRpb25hbCBTcGFuaXNoIGNvbGxhdGlv
biBtaWdodCBiZSByZWZlcmVuY2VkLCB3aXRoCisgKiAiRVMiLCAiRVMiLCAiVHJhZGl0aW9uYWxf
UE9TSVgiLgorICoKKyAqIDxQPgorICogQmVjYXVzZSBhIDxjb2RlPkxvY2FsZTwvY29kZT4gb2Jq
ZWN0IGlzIGp1c3QgYW4gaWRlbnRpZmllciBmb3IgYSByZWdpb24sCisgKiBubyB2YWxpZGl0eSBj
aGVjayBpcyBwZXJmb3JtZWQgd2hlbiB5b3UgY29uc3RydWN0IGEgPGNvZGU+TG9jYWxlPC9jb2Rl
Pi4KKyAqIElmIHlvdSB3YW50IHRvIHNlZSB3aGV0aGVyIHBhcnRpY3VsYXIgcmVzb3VyY2VzIGFy
ZSBhdmFpbGFibGUgZm9yIHRoZQorICogPGNvZGU+TG9jYWxlPC9jb2RlPiB5b3UgY29uc3RydWN0
LCB5b3UgbXVzdCBxdWVyeSB0aG9zZSByZXNvdXJjZXMuIEZvcgorICogZXhhbXBsZSwgYXNrIHRo
ZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGZvciB0aGUgbG9jYWxlcyBpdCBzdXBwb3J0cwor
ICogdXNpbmcgaXRzIDxjb2RlPmdldEF2YWlsYWJsZUxvY2FsZXM8L2NvZGU+IG1ldGhvZC4KKyAq
IDxCUj48U1RST05HPk5vdGU6PC9TVFJPTkc+IFdoZW4geW91IGFzayBmb3IgYSByZXNvdXJjZSBm
b3IgYSBwYXJ0aWN1bGFyCisgKiBsb2NhbGUsIHlvdSBnZXQgYmFjayB0aGUgYmVzdCBhdmFpbGFi
bGUgbWF0Y2gsIG5vdCBuZWNlc3NhcmlseQorICogcHJlY2lzZWx5IHdoYXQgeW91IGFza2VkIGZv
ci4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIGxvb2sgYXQKKyAqIDxjb2RlPlJlc291cmNlQnVuZGxl
PC9jb2RlPi4KKyAqCisgKiA8UD4KKyAqIFRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGNsYXNzIHBy
b3ZpZGVzIGEgbnVtYmVyIG9mIGNvbnZlbmllbnQgY29uc3RhbnRzCisgKiB0aGF0IHlvdSBjYW4g
dXNlIHRvIGNyZWF0ZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdHMgZm9yIGNvbW1vbmx5IHVz
ZWQKKyAqIGxvY2FsZXMuIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHJlZmVycyB0byBhIDxj
b2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0CisgKiBmb3IgdGhlIFVuaXRlZCBTdGF0ZXM6CisgKiBc
aHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgICBMb2Nh
bGU6OmdldFVTKCkKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1s
b25seQorICoKKyAqIDxQPgorICogT25jZSB5b3UndmUgY3JlYXRlZCBhIDxjb2RlPkxvY2FsZTwv
Y29kZT4geW91IGNhbiBxdWVyeSBpdCBmb3IgaW5mb3JtYXRpb24gYWJvdXQKKyAqIGl0c2VsZi4g
VXNlIDxjb2RlPmdldENvdW50cnk8L2NvZGU+IHRvIGdldCB0aGUgSVNPIENvdW50cnkgQ29kZSBh
bmQKKyAqIDxjb2RlPmdldExhbmd1YWdlPC9jb2RlPiB0byBnZXQgdGhlIElTTyBMYW5ndWFnZSBD
b2RlLiBZb3UgY2FuCisgKiB1c2UgPGNvZGU+Z2V0RGlzcGxheUNvdW50cnk8L2NvZGU+IHRvIGdl
dCB0aGUKKyAqIG5hbWUgb2YgdGhlIGNvdW50cnkgc3VpdGFibGUgZm9yIGRpc3BsYXlpbmcgdG8g
dGhlIHVzZXIuIFNpbWlsYXJseSwKKyAqIHlvdSBjYW4gdXNlIDxjb2RlPmdldERpc3BsYXlMYW5n
dWFnZTwvY29kZT4gdG8gZ2V0IHRoZSBuYW1lIG9mCisgKiB0aGUgbGFuZ3VhZ2Ugc3VpdGFibGUg
Zm9yIGRpc3BsYXlpbmcgdG8gdGhlIHVzZXIuIEludGVyZXN0aW5nbHksCisgKiB0aGUgPGNvZGU+
Z2V0RGlzcGxheVhYWDwvY29kZT4gbWV0aG9kcyBhcmUgdGhlbXNlbHZlcyBsb2NhbGUtc2Vuc2l0
aXZlCisgKiBhbmQgaGF2ZSB0d28gdmVyc2lvbnM6IG9uZSB0aGF0IHVzZXMgdGhlIGRlZmF1bHQg
bG9jYWxlIGFuZCBvbmUKKyAqIHRoYXQgdGFrZXMgYSBsb2NhbGUgYXMgYW4gYXJndW1lbnQgYW5k
IGRpc3BsYXlzIHRoZSBuYW1lIG9yIGNvdW50cnkgaW4KKyAqIGEgbGFuZ3VhZ2UgYXBwcm9wcmlh
dGUgdG8gdGhhdCBsb2NhbGUuCisgKgorICogPFA+CisgKiBJQ1UgcHJvdmlkZXMgYSBudW1iZXIg
b2YgY2xhc3NlcyB0aGF0IHBlcmZvcm0gbG9jYWxlLXNlbnNpdGl2ZQorICogb3BlcmF0aW9ucy4g
Rm9yIGV4YW1wbGUsIHRoZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGNsYXNzIGZvcm1hdHMK
KyAqIG51bWJlcnMsIGN1cnJlbmN5LCBvciBwZXJjZW50YWdlcyBpbiBhIGxvY2FsZS1zZW5zaXRp
dmUgbWFubmVyLiBDbGFzc2VzCisgKiBzdWNoIGFzIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4g
aGF2ZSBhIG51bWJlciBvZiBjb252ZW5pZW5jZSBtZXRob2RzCisgKiBmb3IgY3JlYXRpbmcgYSBk
ZWZhdWx0IG9iamVjdCBvZiB0aGF0IHR5cGUuIEZvciBleGFtcGxlLCB0aGUKKyAqIDxjb2RlPk51
bWJlckZvcm1hdDwvY29kZT4gY2xhc3MgcHJvdmlkZXMgdGhlc2UgdGhyZWUgY29udmVuaWVuY2Ug
bWV0aG9kcworICogZm9yIGNyZWF0aW5nIGEgZGVmYXVsdCA8Y29kZT5OdW1iZXJGb3JtYXQ8L2Nv
ZGU+IG9iamVjdDoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHBy
ZT4KKyAqICAgICBVRXJyb3JDb2RlIHN1Y2Nlc3MgPSBVX1pFUk9fRVJST1I7CisgKiAgICAgTG9j
YWxlIG15TG9jYWxlOworICogICAgIE51bWJlckZvcm1hdCAqbmY7CisgKgorICogICAgIG5mID0g
TnVtYmVyRm9ybWF0OjpjcmVhdGVJbnN0YW5jZSggc3VjY2VzcyApOyAgICAgICAgICBkZWxldGUg
bmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUN1cnJlbmN5SW5zdGFuY2UoIHN1
Y2Nlc3MgKTsgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlUGVy
Y2VudEluc3RhbmNlKCBzdWNjZXNzICk7ICAgZGVsZXRlIG5mOworICogPC9wcmU+CisgKiBcaHRt
bG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBFYWNoIG9mIHRoZXNlIG1ldGhvZHMg
aGFzIHR3byB2YXJpYW50czsgb25lIHdpdGggYW4gZXhwbGljaXQgbG9jYWxlCisgKiBhbmQgb25l
IHdpdGhvdXQ7IHRoZSBsYXR0ZXIgdXNpbmcgdGhlIGRlZmF1bHQgbG9jYWxlLgorICogXGh0bWxv
bmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgIG5mID0gTnVtYmVy
Rm9ybWF0OjpjcmVhdGVJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgICAgICAgICAgZGVs
ZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVDdXJyZW5jeUluc3RhbmNl
KCBteUxvY2FsZSwgc3VjY2VzcyApOyAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9y
bWF0OjpjcmVhdGVQZXJjZW50SW5zdGFuY2UoIG15TG9jYWxlLCBzdWNjZXNzICk7ICAgZGVsZXRl
IG5mOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5Cisg
KiBBIDxjb2RlPkxvY2FsZTwvY29kZT4gaXMgdGhlIG1lY2hhbmlzbSBmb3IgaWRlbnRpZnlpbmcg
dGhlIGtpbmQgb2Ygb2JqZWN0CisgKiAoPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPikgdGhhdCB5
b3Ugd291bGQgbGlrZSB0byBnZXQuIFRoZSBsb2NhbGUgaXMKKyAqIDxTVFJPTkc+anVzdDwvU1RS
T05HPiBhIG1lY2hhbmlzbSBmb3IgaWRlbnRpZnlpbmcgb2JqZWN0cywKKyAqIDxTVFJPTkc+bm90
PC9TVFJPTkc+IGEgY29udGFpbmVyIGZvciB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgorICoKKyAq
IDxQPgorICogRWFjaCBjbGFzcyB0aGF0IHBlcmZvcm1zIGxvY2FsZS1zZW5zaXRpdmUgb3BlcmF0
aW9ucyBhbGxvd3MgeW91CisgKiB0byBnZXQgYWxsIHRoZSBhdmFpbGFibGUgb2JqZWN0cyBvZiB0
aGF0IHR5cGUuIFlvdSBjYW4gc2lmdAorICogdGhyb3VnaCB0aGVzZSBvYmplY3RzIGJ5IGxhbmd1
YWdlLCBjb3VudHJ5LCBvciB2YXJpYW50LAorICogYW5kIHVzZSB0aGUgZGlzcGxheSBuYW1lcyB0
byBwcmVzZW50IGEgbWVudSB0byB0aGUgdXNlci4KKyAqIEZvciBleGFtcGxlLCB5b3UgY2FuIGNy
ZWF0ZSBhIG1lbnUgb2YgYWxsIHRoZSBjb2xsYXRpb24gb2JqZWN0cworICogc3VpdGFibGUgZm9y
IGEgZ2l2ZW4gbGFuZ3VhZ2UuIFN1Y2ggY2xhc3NlcyBpbXBsZW1lbnQgdGhlc2UKKyAqIHRocmVl
IGNsYXNzIG1ldGhvZHM6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAq
IDxwcmU+CisgKiAgICAgICBzdGF0aWMgTG9jYWxlKiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMy
X3QmIG51bUxvY2FsZXMpCisgKiAgICAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxh
eU5hbWUoY29uc3QgTG9jYWxlJiAgb2JqZWN0TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYgIGRpc3BsYXlMb2NhbGUsCisg
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmlu
ZyYgZGlzcGxheU5hbWUpCisgKiAgICAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxh
eU5hbWUoY29uc3QgTG9jYWxlJiAgb2JqZWN0TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BsYXlOYW1lKQorICog
PC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKgorICogQHN0
YWJsZSBJQ1UgMi4wCisgKiBAc2VlIFJlc291cmNlQnVuZGxlCisgKi8KK2NsYXNzIFVfQ09NTU9O
X0FQSSBMb2NhbGUgOiBwdWJsaWMgVU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqIFVzZWZ1bCBj
b25zdGFudCBmb3IgdGhlIFJvb3QgbG9jYWxlLiBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICBzdGF0
aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Um9vdCh2b2lkKTsKKyAgICAvKiogVXNlZnVs
IGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0
aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RW5nbGlzaCh2b2lkKTsKKyAgICAvKiogVXNl
ZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBz
dGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RnJlbmNoKHZvaWQpOworICAgIC8qKiBV
c2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAg
IHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRHZXJtYW4odm9pZCk7CisgICAgLyoq
IFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisg
ICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEl0YWxpYW4odm9pZCk7CisgICAg
LyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEphcGFuZXNlKHZvaWQpOwor
ICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIu
MCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRLb3JlYW4odm9pZCk7
CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1Ug
Mi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENoaW5lc2Uodm9p
ZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJ
Q1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFNpbXBsaWZp
ZWRDaGluZXNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3Vh
Z2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JU
MiBnZXRUcmFkaXRpb25hbENoaW5lc2Uodm9pZCk7CisKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50
IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMg
Y29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RnJhbmNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwg
Y29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAg
IHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRHZXJtYW55KHZvaWQpOworICAgIC8q
KiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIu
MCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRJdGFseSh2b2lkKTsK
KyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxl
IElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SmFwYW4o
dm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4g
QHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdl
dEtvcmVhKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9y
ZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQ
T1JUMiBnZXRDaGluYSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNv
dW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxl
ICZVX0VYUE9SVDIgZ2V0UFJDKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRo
aXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBM
b2NhbGUgJlVfRVhQT1JUMiBnZXRUYWl3YW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFu
dCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFVLKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRVUyh2b2lkKTsKKyAgICAvKiogVXNlZnVs
IGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAg
ICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2FuYWRhKHZvaWQpOworICAgIC8q
KiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIu
MCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDYW5hZGFGcmVuY2go
dm9pZCk7CisKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIGRlZmF1bHQgbG9jYWxlIG9i
amVjdCwgYSBMb2NhbGUgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBJRC4KKyAgICAgKgorICAgICAq
IEBzZWUgZ2V0RGVmYXVsdAorICAgICAqIEBzZWUgdWxvY19nZXREZWZhdWx0CisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxlKCk7CisKKyAgICAvKioKKyAgICAgKiBD
b25zdHJ1Y3QgYSBsb2NhbGUgZnJvbSBsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudC4KKyAgICAg
KiBJZiBhbiBlcnJvciBvY2N1cnMsIHRoZW4gdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJl
ICJib2d1cyIKKyAgICAgKiAoaXNCb2d1cygpIHdpbGwgcmV0dXJuIFRSVUUpLgorICAgICAqCisg
ICAgICogQHBhcmFtIGxhbmd1YWdlIExvd2VyY2FzZSB0d28tbGV0dGVyIG9yIHRocmVlLWxldHRl
ciBJU08tNjM5IGNvZGUuCisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNhbiBpbnN0ZWFkIGJlIGFu
IElDVSBzdHlsZSBDIGxvY2FsZSAoZS5nLiAiZW5fVVMiKSwKKyAgICAgKiAgYnV0IHRoZSBvdGhl
ciBwYXJhbWV0ZXJzIG11c3Qgbm90IGJlIHVzZWQuCisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNh
biBiZSBOVUxMOyBpZiBzbywKKyAgICAgKiAgdGhlIGxvY2FsZSBpcyBpbml0aWFsaXplZCB0byBt
YXRjaCB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiAgKFRoaXMgaXMgdGhlIHNh
bWUgYXMgdXNpbmcgdGhlIGRlZmF1bHQgY29uc3RydWN0b3IuKQorICAgICAqICBQbGVhc2Ugbm90
ZTogVGhlIEphdmEgTG9jYWxlIGNsYXNzIGRvZXMgTk9UIGFjY2VwdCB0aGUgZm9ybQorICAgICAq
ICAnbmV3IExvY2FsZSgiZW5fVVMiKScgYnV0IG9ubHkgJ25ldyBMb2NhbGUoImVuIiwiVVMiKScK
KyAgICAgKgorICAgICAqIEBwYXJhbSBjb3VudHJ5ICBVcHBlcmNhc2UgdHdvLWxldHRlciBJU08t
MzE2NiBjb2RlLiAob3B0aW9uYWwpCisgICAgICogQHBhcmFtIHZhcmlhbnQgIFVwcGVyY2FzZSB2
ZW5kb3IgYW5kIGJyb3dzZXIgc3BlY2lmaWMgY29kZS4gU2VlIGNsYXNzCisgICAgICogICAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uLiAob3B0aW9uYWwpCisgICAgICogQHBhcmFtIGtleXdvcmRz
QW5kVmFsdWVzIEEgc3RyaW5nIGNvbnNpc3Rpbmcgb2Yga2V5d29yZC92YWx1ZXMgcGFpcnMsIHN1
Y2ggYXMKKyAgICAgKiAgICAgICAgICAgICAgICAgImNvbGxhdGlvbj1waG9uZWJvb2s7Y3VycmVu
Y3k9ZXVybyIKKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RGVmYXVsdAorICAgICAqIEBzZWUgdWxv
Y19nZXREZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxl
KCBjb25zdCAgIGNoYXIgKiBsYW5ndWFnZSwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIGNv
dW50cnkgID0gMCwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIHZhcmlhbnQgID0gMCwKKyAg
ICAgICAgICAgIGNvbnN0ICAgY2hhciAqIGtleXdvcmRzQW5kVmFsdWVzID0gMCk7CisKKyAgICAv
KioKKyAgICAgKiBJbml0aWFsaXplcyBhIExvY2FsZSBvYmplY3QgZnJvbSBhbm90aGVyIExvY2Fs
ZSBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIExvY2FsZSBvYmplY3Qg
YmVpbmcgY29waWVkIGluLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExv
Y2FsZShjb25zdCAgICBMb2NhbGUmIG90aGVyKTsKKworCisgICAgLyoqCisgICAgICogRGVzdHJ1
Y3RvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkxvY2Fs
ZSgpIDsKKworICAgIC8qKgorICAgICAqIFJlcGxhY2VzIHRoZSBlbnRpcmUgY29udGVudHMgb2Yg
KnRoaXMgd2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAqCisgICAgICogQHBhcmFtIG90
aGVyIFRoZSBMb2NhbGUgb2JqZWN0IGJlaW5nIGNvcGllZCBpbi4KKyAgICAgKiBAcmV0dXJuICAg
ICAgKnRoaXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUmIG9w
ZXJhdG9yPShjb25zdCBMb2NhbGUmIG90aGVyKTsKKworICAgIC8qKgorICAgICAqIENoZWNrcyBp
ZiB0d28gbG9jYWxlIGtleXMgYXJlIHRoZSBzYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG90
aGVyIFRoZSBsb2NhbGUga2V5IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAg
ICogQHJldHVybiAgICAgIFRydWUgaWYgdGhlIHR3byBsb2NhbGUga2V5cyBhcmUgdGhlIHNhbWUs
IGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBV
Qm9vbCAgIG9wZXJhdG9yPT0oY29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHR3byBsb2NhbGUga2V5cyBhcmUgbm90IHRoZSBzYW1l
LgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBsb2NhbGUga2V5IG9iamVjdCB0byBi
ZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAgICogQHJldHVybiAgICAgIFRydWUgaWYgdGhlIHR3
byBsb2NhbGUga2V5cyBhcmUgbm90IHRoZSBzYW1lLCBmYWxzZQorICAgICAqICAgICAgICAgICAg
ICBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVUJvb2wg
ICBvcGVyYXRvciE9KGNvbnN0ICAgIExvY2FsZSYgICAgIG90aGVyKSBjb25zdDsKKworICAgIC8q
KgorICAgICAqIENsb25lIHRoaXMgb2JqZWN0LgorICAgICAqIENsb25lcyBjYW4gYmUgdXNlZCBj
b25jdXJyZW50bHkgaW4gbXVsdGlwbGUgdGhyZWFkcy4KKyAgICAgKiBJZiBhbiBlcnJvciBvY2N1
cnMsIHRoZW4gTlVMTCBpcyByZXR1cm5lZC4KKyAgICAgKiBUaGUgY2FsbGVyIG11c3QgZGVsZXRl
IHRoZSBjbG9uZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYSBjbG9uZSBvZiB0aGlzIG9iamVj
dAorICAgICAqCisgICAgICogQHNlZSBnZXREeW5hbWljQ2xhc3NJRAorICAgICAqIEBzdGFibGUg
SUNVIDIuOAorICAgICAqLworICAgIExvY2FsZSAqY2xvbmUoKSBjb25zdDsKKworI2lmbmRlZiBV
X0hJREVfU1lTVEVNX0FQSQorICAgIC8qKgorICAgICAqIENvbW1vbiBtZXRob2RzIG9mIGdldHRp
bmcgdGhlIGN1cnJlbnQgZGVmYXVsdCBMb2NhbGUuIFVzZWQgZm9yIHRoZQorICAgICAqIHByZXNl
bnRhdGlvbjogbWVudXMsIGRpYWxvZ3MsIGV0Yy4gR2VuZXJhbGx5IHNldCBvbmNlIHdoZW4geW91
ciBhcHBsZXQgb3IKKyAgICAgKiBhcHBsaWNhdGlvbiBpcyBpbml0aWFsaXplZCwgdGhlbiBuZXZl
ciByZXNldC4gKElmIHlvdSBkbyByZXNldCB0aGUKKyAgICAgKiBkZWZhdWx0IGxvY2FsZSwgeW91
IHByb2JhYmx5IHdhbnQgdG8gcmVsb2FkIHlvdXIgR1VJLCBzbyB0aGF0IHRoZSBjaGFuZ2UKKyAg
ICAgKiBpcyByZWZsZWN0ZWQgaW4geW91ciBpbnRlcmZhY2UuKQorICAgICAqCisgICAgICogTW9y
ZSBhZHZhbmNlZCBwcm9ncmFtcyB3aWxsIGFsbG93IHVzZXJzIHRvIHVzZSBkaWZmZXJlbnQgbG9j
YWxlcyBmb3IKKyAgICAgKiBkaWZmZXJlbnQgZmllbGRzLCBlLmcuIGluIGEgc3ByZWFkc2hlZXQu
CisgICAgICoKKyAgICAgKiBOb3RlIHRoYXQgdGhlIGluaXRpYWwgc2V0dGluZyB3aWxsIG1hdGNo
IHRoZSBob3N0IHN5c3RlbS4KKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSBMb2Nh
bGUgb2JqZWN0IGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgSUQKKyAgICAgKiBAc3lzdGVtCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSYgVV9F
WFBPUlQyIGdldERlZmF1bHQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWZh
dWx0LiBOb3JtYWxseSBzZXQgb25jZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgcHJvY2VzcywKKyAg
ICAgKiB0aGVuIG5ldmVyIHJlc2V0LgorICAgICAqIHNldERlZmF1bHQoKSBvbmx5IGNoYW5nZXMg
SUNVJ3MgZGVmYXVsdCBsb2NhbGUgSUQsIDxzdHJvbmc+bm90PC9zdHJvbmc+CisgICAgICogdGhl
IGRlZmF1bHQgbG9jYWxlIElEIG9mIHRoZSBydW50aW1lIGVudmlyb25tZW50LgorICAgICAqCisg
ICAgICogQHBhcmFtIG5ld0xvY2FsZSBMb2NhbGUgdG8gc2V0IHRvLiAgSWYgTlVMTCwgc2V0IHRv
IHRoZSB2YWx1ZSBvYnRhaW5lZAorICAgICAqICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgcnVu
dGltZSBlbnZpcm9uZW1lbnQuCisgICAgICogQHBhcmFtIHN1Y2Nlc3MgVGhlIGVycm9yIGNvZGUu
CisgICAgICogQHN5c3RlbQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0
YXRpYyB2b2lkIFVfRVhQT1JUMiBzZXREZWZhdWx0KGNvbnN0IExvY2FsZSYgbmV3TG9jYWxlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUmICAgc3VjY2Vz
cyk7CisjZW5kaWYgIC8qIFVfSElERV9TWVNURU1fQVBJICovCisKKyAgICAvKioKKyAgICAgKiBD
cmVhdGVzIGEgbG9jYWxlIHdoaWNoIGhhcyBoYWQgbWluaW1hbCBjYW5vbmljYWxpemF0aW9uCisg
ICAgICogYXMgcGVyIHVsb2NfZ2V0TmFtZSgpLgorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1l
IHRvIGNyZWF0ZSBmcm9tLiAgSWYgbmFtZSBpcyBudWxsLAorICAgICAqICB0aGUgZGVmYXVsdCBM
b2NhbGUgaXMgdXNlZC4KKyAgICAgKiBAcmV0dXJuIG5ldyBsb2NhbGUgb2JqZWN0CisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICogQHNlZSB1bG9jX2dldE5hbWUKKyAgICAgKi8KKyAgICBz
dGF0aWMgTG9jYWxlIFVfRVhQT1JUMiBjcmVhdGVGcm9tTmFtZShjb25zdCBjaGFyICpuYW1lKTsK
KworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBsb2NhbGUgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5n
IGFmdGVyIGNhbm9uaWNhbGl6aW5nCisgICAgICogdGhlIHN0cmluZyBieSBjYWxsaW5nIHVsb2Nf
Y2Fub25pY2FsaXplKCkuCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGxvY2FsZSBJRCB0byBjcmVh
dGUgZnJvbS4gIE11c3Qgbm90IGJlIE5VTEwuCisgICAgICogQHJldHVybiBhIG5ldyBsb2NhbGUg
b2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIG5hbWUKKyAgICAgKiBAc3RhYmxlIElD
VSAzLjAKKyAgICAgKiBAc2VlIHVsb2NfY2Fub25pY2FsaXplCisgICAgICovCisgICAgc3RhdGlj
IExvY2FsZSBVX0VYUE9SVDIgY3JlYXRlQ2Fub25pY2FsKGNvbnN0IGNoYXIqIG5hbWUpOworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTYzOSBsYW5ndWFnZSBjb2Rl
LgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldExhbmd1YWdl
KCApIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTE1
OTI0IGFiYnJldmlhdGlvbiBzY3JpcHQgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxp
YXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc2VlIHVzY3JpcHRfZ2V0U2hvcnROYW1lCisgICAgICog
QHNlZSB1c2NyaXB0X2dldENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAg
ICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRTY3JpcHQoICkgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tMzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICog
QHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0Q291bnRyeSggKSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIHZhcmlhbnQgY29kZS4KKyAg
ICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRWYXJpYW50KCApIGNv
bnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcHJvZ3JhbW1hdGljIG5hbWUgb2Yg
dGhlIGVudGlyZSBsb2NhbGUsIHdpdGggdGhlIGxhbmd1YWdlLAorICAgICAqIGNvdW50cnkgYW5k
IHZhcmlhbnQgc2VwYXJhdGVkIGJ5IHVuZGVyYmFycy4gSWYgYSBmaWVsZCBpcyBtaXNzaW5nLCB1
cAorICAgICAqIHRvIHR3byBsZWFkaW5nIHVuZGVyYmFycyB3aWxsIG9jY3VyLiBFeGFtcGxlOiAi
ZW4iLCAiZGVfREUiLCAiZW5fVVNfV0lOIiwKKyAgICAgKiAiZGVfX1BPU0lYIiwgImZyX19NQUMi
LCAiX19NQUMiLCAiX01UIiwgIl9GUl9FVVJPIgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50
ZXIgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGlu
ZSBjb25zdCBjaGFyICogZ2V0TmFtZSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJu
cyB0aGUgcHJvZ3JhbW1hdGljIG5hbWUgb2YgdGhlIGVudGlyZSBsb2NhbGUgYXMgZ2V0TmFtZSgp
IHdvdWxkIHJldHVybiwKKyAgICAgKiBidXQgd2l0aG91dCBrZXl3b3Jkcy4KKyAgICAgKiBAcmV0
dXJuICAgICAgQSBwb2ludGVyIHRvICJuYW1lIi4KKyAgICAgKiBAc2VlIGdldE5hbWUKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0QmFzZU5hbWUo
KSBjb25zdDsKKworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGlzdCBvZiBrZXl3b3JkcyBm
b3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRo
ZSBzdGF0dXMgY29kZQorICAgICAqIEByZXR1cm4gcG9pbnRlciB0byBTdHJpbmdFbnVtZXJhdGlv
biBjbGFzcywgb3IgTlVMTCBpZiB0aGVyZSBhcmUgbm8ga2V5d29yZHMuIAorICAgICAqIENsaWVu
dCBtdXN0IGRpc3Bvc2Ugb2YgaXQgYnkgY2FsbGluZyBkZWxldGUuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi44CisgICAgICovCisgICAgU3RyaW5nRW51bWVyYXRpb24gKiBjcmVhdGVLZXl3b3JkcyhV
RXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdmFs
dWUgZm9yIGEga2V5d29yZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1l
IG9mIHRoZSBrZXl3b3JkIGZvciB3aGljaCB3ZSB3YW50IHRoZSB2YWx1ZS4gQ2FzZSBpbnNlbnNp
dGl2ZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIFRoZSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUga2V5
d29yZCB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyQ2FwYWNpdHkgVGhlIGNhcGFjaXR5IG9m
IHJlY2VpdmluZyBidWZmZXIKKyAgICAgKiBAcGFyYW0gc3RhdHVzIFJldHVybnMgYW55IGVycm9y
IGluZm9ybWF0aW9uIHdoaWxlIHBlcmZvcm1pbmcgdGhpcyBvcGVyYXRpb24uCisgICAgICogQHJl
dHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBrZXl3b3JkIHZhbHVlCisgICAgICoKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBpbnQzMl90IGdldEtleXdvcmRWYWx1ZShjb25zdCBj
aGFyKiBrZXl3b3JkTmFtZSwgY2hhciAqYnVmZmVyLCBpbnQzMl90IGJ1ZmZlckNhcGFjaXR5LCBV
RXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogU2V0cyBvciByZW1v
dmVzIHRoZSB2YWx1ZSBmb3IgYSBrZXl3b3JkLgorICAgICAqCisgICAgICogRm9yIHJlbW92aW5n
IGFsbCBrZXl3b3JkcywgdXNlIGdldEJhc2VOYW1lKCksCisgICAgICogYW5kIGNvbnN0cnVjdCBh
IG5ldyBMb2NhbGUgaWYgaXQgZGlmZmVycyBmcm9tIGdldE5hbWUoKS4KKyAgICAgKgorICAgICAq
IEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3JkIHRvIGJlIHNldC4gQ2FzZSBp
bnNlbnNpdGl2ZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZFZhbHVlIHZhbHVlIG9mIHRoZSBrZXl3
b3JkIHRvIGJlIHNldC4gSWYgMC1sZW5ndGggb3IKKyAgICAgKiAgTlVMTCwgd2lsbCByZXN1bHQg
aW4gdGhlIGtleXdvcmQgYmVpbmcgcmVtb3ZlZC4gTm8gZXJyb3IgaXMgZ2l2ZW4gaWYKKyAgICAg
KiAgdGhhdCBrZXl3b3JkIGRvZXMgbm90IGV4aXN0LgorICAgICAqIEBwYXJhbSBzdGF0dXMgUmV0
dXJucyBhbnkgZXJyb3IgaW5mb3JtYXRpb24gd2hpbGUgcGVyZm9ybWluZyB0aGlzIG9wZXJhdGlv
bi4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdm9pZCBzZXRL
ZXl3b3JkVmFsdWUoY29uc3QgY2hhcioga2V5d29yZE5hbWUsIGNvbnN0IGNoYXIqIGtleXdvcmRW
YWx1ZSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIHJldHVybnMgdGhl
IGxvY2FsZSdzIHRocmVlLWxldHRlciBsYW5ndWFnZSBjb2RlLCBhcyBzcGVjaWZpZWQKKyAgICAg
KiBpbiBJU08gZHJhZnQgc3RhbmRhcmQgSVNPLTYzOS0yLgorICAgICAqIEByZXR1cm4gICAgICBB
biBhbGlhcyB0byB0aGUgY29kZSwgb3IgYW4gZW1wdHkgc3RyaW5nCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgY29uc3QgY2hhciAqIGdldElTTzNMYW5ndWFnZSgpIGNvbnN0
OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIGxvY2FsZSdzIHRo
cmVlLWxldHRlciBJU08tMzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFu
IGFsaWFzIHRvIHRoZSBjb2RlLCBvciBhbiBlbXB0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0SVNPM0NvdW50cnkoKSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFdpbmRvd3MgTENJRCB2YWx1ZSBjb3JyZXNw
b25kaW5nIHRvIHRoaXMgbG9jYWxlLgorICAgICAqIFRoaXMgdmFsdWUgaXMgc3RvcmVkIGluIHRo
ZSByZXNvdXJjZSBkYXRhIGZvciB0aGUgbG9jYWxlIGFzIGEgb25lLXRvLWZvdXItZGlnaXQKKyAg
ICAgKiBoZXhhZGVjaW1hbCBudW1iZXIuICBJZiB0aGUgcmVzb3VyY2UgaXMgbWlzc2luZywgaW4g
dGhlIHdyb25nIGZvcm1hdCwgb3IKKyAgICAgKiB0aGVyZSBpcyBubyBXaW5kb3dzIExDSUQgdmFs
dWUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGlzIGxvY2FsZSwgcmV0dXJucyAwLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICBnZXRMQ0lEKHZvaWQp
IGNvbnN0OworCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHdoZXRoZXIgdGhpcyBsb2NhbGUncyBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0
LgorICAgICAqIElmIHRoZXJlIGlzIG5vIHNjcmlwdCBzdWJ0YWcsIHRoZW4gdGhlIGxpa2VseSBz
Y3JpcHQgaXMgdXNlZCwgc2VlIHVsb2NfYWRkTGlrZWx5U3VidGFncygpLgorICAgICAqIElmIG5v
IGxpa2VseSBzY3JpcHQgaXMga25vd24sIHRoZW4gRkFMU0UgaXMgcmV0dXJuZWQuCisgICAgICoK
KyAgICAgKiBBIHNjcmlwdCBpcyByaWdodC10by1sZWZ0IGFjY29yZGluZyB0byB0aGUgQ0xEUiBz
Y3JpcHQgbWV0YWRhdGEKKyAgICAgKiB3aGljaCBjb3JyZXNwb25kcyB0byB3aGV0aGVyIHRoZSBz
Y3JpcHQncyBsZXR0ZXJzIGhhdmUgQmlkaV9DbGFzcz1SIG9yIEFMLgorICAgICAqCisgICAgICog
UmV0dXJucyBUUlVFIGZvciAiYXIiIGFuZCAiZW4tSGViciIsIEZBTFNFIGZvciAiemgiIGFuZCAi
ZmEtQ3lybCIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIGxvY2FsZSdzIHNj
cmlwdCBpcyB3cml0dGVuIHJpZ2h0LXRvLWxlZnQKKyAgICAgKiBAZHJhZnQgSUNVIDU0CisgICAg
ICovCisgICAgVUJvb2wgaXNSaWdodFRvTGVmdCgpIGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVf
RFJBRlRfQVBJICovCisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcExhbmciIHdpdGgg
dGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBm
b3IKKyAgICAgKiB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1w
bGUsIGlmIHRoZSBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzCisgICAgICogImZyIiBhbmQgdGhl
IGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdv
dWxkIHNldAorICAgICAqIGRpc3BMYW5nIHRvICJGcmVuY2giLgorICAgICAqIEBwYXJhbSBkaXNw
TGFuZyAgUmVjZWl2ZXMgdGhlIGxhbmd1YWdlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1
cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BMYW5nIi4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUxhbmd1YWdlKFVu
aWNvZGVTdHJpbmcmICAgZGlzcExhbmcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMg
aW4gImRpc3BMYW5nIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgaW4g
YSBmb3JtYXQgc3VpdGFibGUgZm9yCisgICAgICogdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUg
c3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxl
J3MKKyAgICAgKiBsYW5ndWFnZSBjb2RlIGlzICJlbiIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5n
dWFnZSBjb2RlIGlzICJmciIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcExh
bmcgdG8gIkFuZ2xhaXMiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMg
dGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlciB3b3Jk
cywKKyAgICAgKiAgICAgICAgICAgICAgICAgIGlmIHRoZSBsb2NhbGUncyBsYW5ndWFnZSBjb2Rl
IGlzICJlbiIsIHBhc3NpbmcgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IKKyAgICAgKiAgICAgICAg
ICAgICAgICAgIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICJBbmdsYWlzIiwgd2hpbGUg
cGFzc2luZyBMb2NhbGU6OmdldEdlcm1hbigpCisgICAgICogICAgICAgICAgICAgICAgICBmb3Ig
ZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIkVuZ2xpc2NoIi4KKyAgICAgKiBAcGFyYW0g
ZGlzcExhbmcgIFJlY2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBA
cmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwTGFuZyIuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlMYW5ndWFn
ZSggY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwTGFu
ZykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFNjcmlwdCIgd2l0aCB0
aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHNjcmlwdCBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAg
ICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUs
IGlmIHRoZSBsb2NhbGUncyBzY3JpcHQgY29kZQorICAgICAqIGlzICJMQVROIiBhbmQgdGhlIGRl
ZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxk
IHNldAorICAgICAqIGRpc3BTY3JpcHQgdG8gIkxhdGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcFNj
cmlwdCAgICBSZWNlaXZlcyB0aGUgc2NyaXB0cydzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0
dXJuICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFNjcmlwdCIuCisgICAgICogQHN0
YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlTY3Jp
cHQoICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BTY3JpcHQpIGNvbnN0OworCisgICAgLyoq
CisgICAgICogRmlsbHMgaW4gImRpc3BTY3JpcHQiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2Nh
bGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxh
eSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3IgZXhhbXBs
ZSwgaWYgdGhlIGxvY2FsZSdzCisgICAgICogc2NyaXB0IGNvZGUgaXMgIkxBVE4iIGFuZCBkaXNw
bGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNl
dAorICAgICAqIGRpc3BTY3JpcHQgdG8gIkxhdGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxv
Y2FsZSAgICAgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUg
bmFtZS4gIEluIG90aGVyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd29yZHMsIGlmIHRo
ZSBsb2NhbGUncyBzY3JpcHQgY29kZSBpcyAiTEFUTiIsIHBhc3NpbmcKKyAgICAgKiAgICAgICAg
ICAgICAgICAgICAgICBMb2NhbGU6OmdldEZyZW5jaCgpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxk
IHJlc3VsdCBpbiAiIiwgd2hpbGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBwYXNzaW5n
IExvY2FsZTo6Z2V0R2VybWFuKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluCisg
ICAgICogICAgICAgICAgICAgICAgICAgICAgIiIuCisgICAgICogQHBhcmFtIGRpc3BTY3JpcHQg
ICAgUmVjZWl2ZXMgdGhlIHNjcmlwdHMncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAg
ICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BTY3JpcHQiLgorICAgICAqIEBzdGFibGUg
SUNVIDIuOAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5U2NyaXB0KCAg
Y29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BTY3JpcHQp
IGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BDb3VudHJ5IiB3aXRoIHRo
ZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAg
ICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUs
IGlmIHRoZSBsb2NhbGUncyBjb3VudHJ5IGNvZGUKKyAgICAgKiBpcyAiRlIiIGFuZCB0aGUgZGVm
YXVsdCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQg
c2V0CisgICAgICogZGlzcENvdW50cnkgdG8gIkZyYW5jZSIuCisgICAgICogQHBhcmFtIGRpc3BD
b3VudHJ5ICAgUmVjZWl2ZXMgdGhlIGNvdW50cnkncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJl
dHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNv
dW50cnkoICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BDb3VudHJ5KSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwQ291bnRyeSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlz
IGxvY2FsZSdzIGNvdW50cnkgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBk
aXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBl
eGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBjb3VudHJ5IGNvZGUgaXMgIlVTIiBhbmQg
ZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImZyIiwgdGhpcyBmdW5jdGlvbiB3b3Vs
ZCBzZXQKKyAgICAgKiBkaXNwQ291bnRyeSB0byAiJkVhY3V0ZTt0YXRzLVVuaXMiLgorICAgICAq
IEBwYXJhbSBkaXNwbGF5TG9jYWxlICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNl
ZCB0byBkaXNwbGF5IHRoZSBuYW1lLiAgSW4gb3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAg
ICAgICB3b3JkcywgaWYgdGhlIGxvY2FsZSdzIGNvdW50cnkgY29kZSBpcyAiVVMiLCBwYXNzaW5n
CisgICAgICogICAgICAgICAgICAgICAgICAgICAgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IgZGlz
cGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIiZFYWN1dGU7dGF0cy1VbmlzIiwgd2hpbGUKKyAg
ICAgKiAgICAgICAgICAgICAgICAgICAgICBwYXNzaW5nIExvY2FsZTo6Z2V0R2VybWFuKCkgZm9y
IGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluCisgICAgICogICAgICAgICAgICAgICAgICAg
ICAgIlZlcmVpbmlndGUgU3RhYXRlbiIuCisgICAgICogQHBhcmFtIGRpc3BDb3VudHJ5ICAgUmVj
ZWl2ZXMgdGhlIGNvdW50cnkncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAg
ICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNvdW50cnkoICBjb25z
dCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BDb3VudHJ5KSBj
b25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwVmFyIiB3aXRoIHRoZSBuYW1l
IG9mIHRoaXMgbG9jYWxlJ3MgdmFyaWFudCBjb2RlIGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAg
ICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFt
IGRpc3BWYXIgICBSZWNlaXZlcyB0aGUgdmFyaWFudCdzIG5hbWUuCisgICAgICogQHJldHVybiAg
ICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFZhciIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlWYXJpYW50KCAgICAgIFVu
aWNvZGVTdHJpbmcmIGRpc3BWYXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4g
ImRpc3BWYXIiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyB2YXJpYW50IGNvZGUgaW4g
YSBmb3JtYXQKKyAgICAgKiBzdWl0YWJsZSBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUg
c3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2Fs
ZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLgor
ICAgICAqIEBwYXJhbSBkaXNwVmFyICAgUmVjZWl2ZXMgdGhlIHZhcmlhbnQncyBkaXNwbGF5IG5h
bWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFZhciIuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERp
c3BsYXlWYXJpYW50KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJp
bmcmICBkaXNwVmFyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3
aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2Vy
IGRpc3BsYXkKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBUaGlzIGZ1bmN0aW9uIHVz
ZXMgZ2V0RGlzcGxheUxhbmd1YWdlKCksIGdldERpc3BsYXlDb3VudHJ5KCksCisgICAgICogYW5k
IGdldERpc3BsYXlWYXJpYW50KCkgdG8gZG8gaXRzIHdvcmssIGFuZCBvdXRwdXRzIHRoZSBkaXNw
bGF5IG5hbWUgaW4gdGhlIGZvcm1hdAorICAgICAqICJsYW5ndWFnZSAoY291bnRyeVssdmFyaWFu
dF0pIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgZGVmYXVsdCBsb2NhbGUgaXMgZW5fVVMsIHRoZW4K
KyAgICAgKiBmcl9GUidzIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAiRnJlbmNoIChGcmFuY2UpIiwg
YW5kIGVzX01YX1RyYWRpdGlvbmFsJ3MgZGlzcGxheSBuYW1lCisgICAgICogd291bGQgYmUgIlNw
YW5pc2ggKE1leGljbyxUcmFkaXRpb25hbCkiLgorICAgICAqIEBwYXJhbSBuYW1lICBSZWNlaXZl
cyB0aGUgbG9jYWxlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICBBIHJlZmVy
ZW5jZSB0byAibmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5p
Y29kZVN0cmluZyYgIGdldERpc3BsYXlOYW1lKCAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBuYW1l
KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRoZSBuYW1l
IG9mIHRoaXMgbG9jYWxlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkKKyAg
ICAgKiBpbiB0aGUgbG9jYWxlIHNwZWNmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIFRoaXMgZnVu
Y3Rpb24gdXNlcyBnZXREaXNwbGF5TGFuZ3VhZ2UoKSwKKyAgICAgKiBnZXREaXNwbGF5Q291bnRy
eSgpLCBhbmQgZ2V0RGlzcGxheVZhcmlhbnQoKSB0byBkbyBpdHMgd29yaywgYW5kIG91dHB1dHMg
dGhlIGRpc3BsYXkKKyAgICAgKiBuYW1lIGluIHRoZSBmb3JtYXQgImxhbmd1YWdlIChjb3VudHJ5
Wyx2YXJpYW50XSkiLiAgRm9yIGV4YW1wbGUsIGlmIGRpc3BsYXlMb2NhbGUgaXMKKyAgICAgKiBm
cl9GUiwgdGhlbiBlbl9VUydzIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAiQW5nbGFpcyAoJkVhY3V0
ZTt0YXRzLVVuaXMpIiwgYW5kIG5vX05PX05ZJ3MKKyAgICAgKiBkaXNwbGF5IG5hbWUgd291bGQg
YmUgIm5vcnYmZWFjdXRlO2dpZW4gKE5vcnYmZWdyYXZlO2dlLE5ZKSIuCisgICAgICogQHBhcmFt
IGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxh
eSB0aGUgbmFtZS4KKyAgICAgKiBAcGFyYW0gbmFtZSAgICAgIFJlY2VpdmVzIHRoZSBsb2NhbGUn
cyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAi
bmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmlu
ZyYgIGdldERpc3BsYXlOYW1lKCBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3Ry
aW5nJiAgbmFtZSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNv
ZGUgZm9yIHRoZSBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
aW50MzJfdCAgICAgICAgIGhhc2hDb2RlKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICog
U2V0cyB0aGUgbG9jYWxlIHRvIGJvZ3VzCisgICAgICogQSBib2d1cyBsb2NhbGUgcmVwcmVzZW50
cyBhIG5vbi1leGlzdGluZyBsb2NhbGUgYXNzb2NpYXRlZAorICAgICAqIHdpdGggc2VydmljZXMg
dGhhdCBjYW4gYmUgaW5zdGFudGlhdGVkIGZyb20gbm9uLWxvY2FsZSBkYXRhCisgICAgICogaW4g
YWRkaXRpb24gdG8gbG9jYWxlIChmb3IgZXhhbXBsZSwgY29sbGF0aW9uIGNhbiBiZQorICAgICAq
IGluc3RhbnRpYXRlZCBmcm9tIGEgbG9jYWxlIGFuZCBmcm9tIGEgcnVsZSBzZXQpLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHZvaWQgc2V0VG9Cb2d1cygpOworCisgICAg
LyoqCisgICAgICogR2V0cyB0aGUgYm9ndXMgc3RhdGUuIExvY2FsZSBvYmplY3QgY2FuIGJlIGJv
Z3VzIGlmIGl0IGRvZXNuJ3QgZXhpc3QKKyAgICAgKiBAcmV0dXJuIEZBTFNFIGlmIGl0IGlzIGEg
cmVhbCBsb2NhbGUsIFRSVUUgaWYgaXQgaXMgYSBib2d1cyBsb2NhbGUKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjEKKyAgICAgKi8KKyAgICBVQm9vbCBpc0JvZ3VzKHZvaWQpIGNvbnN0OworCisgICAg
LyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIGluc3RhbGxlZCBsb2NhbGVzLgorICAg
ICAqIEBwYXJhbSBjb3VudCBSZWNlaXZlcyB0aGUgbnVtYmVyIG9mIGxvY2FsZXMgaW4gdGhlIGxp
c3QuCisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBMb2NhbGUg
b2JqZWN0cy4gIFRoaXMgYXJyYXkgaXMgdGhlIGxpc3QKKyAgICAgKiAgICAgICAgICAgICAgb2Yg
YWxsIGxvY2FsZXMgd2l0aCBpbnN0YWxsZWQgcmVzb3VyY2UgZmlsZXMuICBUaGUgY2FsbGVkIGRv
ZXMgTk9UCisgICAgICogICAgICAgICAgICAgIGdldCBvd25lcnNoaXAgb2YgdGhpcyBsaXN0LCBh
bmQgbXVzdCBOT1QgZGVsZXRlIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHN0YXRpYyBjb25zdCBMb2NhbGUqIFVfRVhQT1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKGlu
dDMyX3QmIGNvdW50KTsKKworICAgIC8qKgorICAgICAqIEdldHMgYSBsaXN0IG9mIGFsbCBhdmFp
bGFibGUgMi1sZXR0ZXIgY291bnRyeSBjb2RlcyBkZWZpbmVkIGluIElTTyAzMTY2LiAgVGhpcyBp
cyBhCisgICAgICogcG9pbnRlciB0byBhbiBhcnJheSBvZiBwb2ludGVycyB0byBhcnJheXMgb2Yg
Y2hhci4gIEFsbCBvZiB0aGVzZSBwb2ludGVycyBhcmUKKyAgICAgKiBvd25lZCBieSBJQ1UtLSBk
byBub3QgZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0aGVtLiAgVGhlIGFy
cmF5IGlzCisgICAgICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBwb2ludGVyLgorICAgICAqIEBy
ZXR1cm4gYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgY291bnRyeSBjb2RlcworICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBP
UlQyIGdldElTT0NvdW50cmllcygpOworCisgICAgLyoqCisgICAgICogR2V0cyBhIGxpc3Qgb2Yg
YWxsIGF2YWlsYWJsZSBsYW5ndWFnZSBjb2RlcyBkZWZpbmVkIGluIElTTyA2MzkuICBUaGlzIGlz
IGEgcG9pbnRlcgorICAgICAqIHRvIGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBvZiBj
aGFyLiAgQWxsIG9mIHRoZXNlIHBvaW50ZXJzIGFyZSBvd25lZAorICAgICAqIGJ5IElDVS0tIGRv
IG5vdCBkZWxldGUgdGhlbSwgYW5kIGRvIG5vdCB3cml0ZSB0aHJvdWdoIHRoZW0uICBUaGUgYXJy
YXkgaXMKKyAgICAgKiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCisgICAgICogQHJl
dHVybiBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBsYW5ndWFnZSBjb2RlcworICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBP
UlQyIGdldElTT0xhbmd1YWdlcygpOworCisgICAgLyoqCisgICAgICogSUNVICJwb29yIG1hbidz
IFJUVEkiLCByZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoaXMgY2xhc3MuCisgICAgICoKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQy
IGdldFN0YXRpY0NsYXNzSUQoKTsKKworICAgIC8qKgorICAgICAqIElDVSAicG9vciBtYW4ncyBS
VFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGUgYWN0dWFsIGNsYXNzLgorICAgICAqCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXRE
eW5hbWljQ2xhc3NJRCgpIGNvbnN0OworCitwcm90ZWN0ZWQ6IC8qIG9ubHkgcHJvdGVjdGVkIGZv
ciB0ZXN0aW5nIHB1cnBvc2VzLiBETyBOT1QgVVNFLiAqLworI2lmbmRlZiBVX0hJREVfSU5URVJO
QUxfQVBJCisgICAgLyoqCisgICAgICogU2V0IHRoaXMgZnJvbSBhIHNpbmdsZSBQT1NJWCBzdHls
ZSBsb2NhbGUgc3RyaW5nLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHZvaWQgc2V0
RnJvbVBPU0lYSUQoY29uc3QgY2hhciAqcG9zaXhJRCk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRF
Uk5BTF9BUEkgKi8KKworcHJpdmF0ZToKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHRoZSBs
b2NhbGUgb2JqZWN0IHdpdGggYSBuZXcgbmFtZS4KKyAgICAgKiBXYXMgZGVwcmVjYXRlZCAtIHVz
ZWQgaW4gaW1wbGVtZW50YXRpb24gLSBtb3ZlZCBpbnRlcm5hbAorICAgICAqCisgICAgICogQHBh
cmFtIGNMb2NhbGVJRCBUaGUgbmV3IGxvY2FsZSBuYW1lLgorICAgICAqIEBwYXJhbSBjYW5vbmlj
YWxpemUgd2hldGhlciB0byBjYWxsIHVsb2NfY2Fub25pY2FsaXplIG9uIGNMb2NhbGVJRAorICAg
ICAqLworICAgIExvY2FsZSYgaW5pdChjb25zdCBjaGFyKiBjTG9jYWxlSUQsIFVCb29sIGNhbm9u
aWNhbGl6ZSk7CisKKyAgICAvKgorICAgICAqIEludGVybmFsIGNvbnN0cnVjdG9yIHRvIGFsbG93
IGNvbnN0cnVjdGlvbiBvZiBhIGxvY2FsZSBvYmplY3Qgd2l0aAorICAgICAqICAgTk8gc2lkZSBl
ZmZlY3RzLiAgIChEZWZhdWx0IGNvbnN0cnVjdG9yIHRyaWVzIHRvIGdldAorICAgICAqICAgdGhl
IGRlZmF1bHQgbG9jYWxlLikKKyAgICAgKi8KKyAgICBlbnVtIEVMb2NhbGVUeXBlIHsKKyAgICAg
ICAgZUJPR1VTCisgICAgfTsKKyAgICBMb2NhbGUoRUxvY2FsZVR5cGUpOworCisgICAgLyoqCisg
ICAgICogSW5pdGlhbGl6ZSB0aGUgbG9jYWxlIGNhY2hlIGZvciBjb21tb25seSB1c2VkIGxvY2Fs
ZXMKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9jYWxlICpnZXRMb2NhbGVDYWNoZSh2b2lkKTsKKwor
ICAgIGNoYXIgbGFuZ3VhZ2VbVUxPQ19MQU5HX0NBUEFDSVRZXTsKKyAgICBjaGFyIHNjcmlwdFtV
TE9DX1NDUklQVF9DQVBBQ0lUWV07CisgICAgY2hhciBjb3VudHJ5W1VMT0NfQ09VTlRSWV9DQVBB
Q0lUWV07CisgICAgaW50MzJfdCB2YXJpYW50QmVnaW47CisgICAgY2hhciogZnVsbE5hbWU7Cisg
ICAgY2hhciBmdWxsTmFtZUJ1ZmZlcltVTE9DX0ZVTExOQU1FX0NBUEFDSVRZXTsKKyAgICAvLyBu
YW1lIHdpdGhvdXQga2V5d29yZHMKKyAgICBjaGFyKiBiYXNlTmFtZTsKKyAgICB2b2lkIGluaXRC
YXNlTmFtZShVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgVUJvb2wgZklzQm9ndXM7CisKKyAg
ICBzdGF0aWMgY29uc3QgTG9jYWxlICZnZXRMb2NhbGUoaW50IGxvY2lkKTsKKworICAgIC8qKgor
ICAgICAqIEEgZnJpZW5kIHRvIGFsbG93IHRoZSBkZWZhdWx0IGxvY2FsZSB0byBiZSBzZXQgYnkg
ZWl0aGVyIHRoZSBDIG9yIEMrKyBBUEkuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAg
ZnJpZW5kIExvY2FsZSAqbG9jYWxlX3NldF9kZWZhdWx0X2ludGVybmFsKGNvbnN0IGNoYXIgKiwg
VUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAq
LworICAgIGZyaWVuZCB2b2lkIFVfQ0FMTENPTlYgbG9jYWxlX2F2YWlsYWJsZV9pbml0KCk7Cit9
OworCitpbmxpbmUgVUJvb2wKK0xvY2FsZTo6b3BlcmF0b3IhPShjb25zdCAgICBMb2NhbGUmICAg
ICBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0ob3RoZXIpOworfQorCitp
bmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldENvdW50cnkoKSBjb25zdAoreworICAgIHJl
dHVybiBjb3VudHJ5OworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldExhbmd1
YWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbGFuZ3VhZ2U7Cit9CisKK2lubGluZSBjb25zdCBj
aGFyICoKK0xvY2FsZTo6Z2V0U2NyaXB0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2NyaXB0Owor
fQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldFZhcmlhbnQoKSBjb25zdAorewor
ICAgIHJldHVybiAmYmFzZU5hbWVbdmFyaWFudEJlZ2luXTsKK30KKworaW5saW5lIGNvbnN0IGNo
YXIgKgorTG9jYWxlOjpnZXROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnVsbE5hbWU7Cit9
CisKK2lubGluZSBVQm9vbAorTG9jYWxlOjppc0JvZ3VzKHZvaWQpIGNvbnN0IHsKKyAgICByZXR1
cm4gZklzQm9ndXM7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9y
YmJpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDQ3NTk4YTUwZTZmYTNiYWIyYWQ0OWUwMjJhYWYzOTZjYWMzMjll
NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oCkBAIC0w
LDAgKzEsNzgyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAx
OTk5LTIwMTQgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiAgICoK
KyogICBhbmQgb3RoZXJzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDEwLzIyLzk5ICAg
IGFsYW4gICAgICAgIENyZWF0aW9uLgorKiAgIDExLzExLzk5ICAgIHJnaWxsYW0gICAgIENvbXBs
ZXRlIHBvcnQgZnJvbSBKYXZhLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBSQkJJX0gK
KyNkZWZpbmUgUkJCSV9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisvKioKKyAq
IFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTogUnVsZSBCYXNlZCBCcmVhayBJdGVyYXRvcgorICov
CisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworI2luY2x1ZGUgInVuaWNvZGUv
YnJraXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3BhcnNlZXJyLmgiCisjaW5jbHVkZSAidW5pY29kZS9zY2hyaXRlci5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdWNocml0ZXIuaCIKKworCitzdHJ1Y3QgVVRyaWU7CisKK1VfTkFNRVNQQUNFX0JFR0lO
CisKKy8qKiBAaW50ZXJuYWwgKi8KK3N0cnVjdCBSQkJJRGF0YUhlYWRlcjsKK2NsYXNzICBSdWxl
QmFzZWRCcmVha0l0ZXJhdG9yVGFibGVzOworY2xhc3MgIEJyZWFrSXRlcmF0b3I7CitjbGFzcyAg
UkJCSURhdGFXcmFwcGVyOworY2xhc3MgIFVTdGFjazsKK2NsYXNzICBMYW5ndWFnZUJyZWFrRW5n
aW5lOworY2xhc3MgIFVuaGFuZGxlZEVuZ2luZTsKK3N0cnVjdCBSQkJJU3RhdGVUYWJsZTsKKwor
CisKKworLyoqCisgKgorICogQSBzdWJjbGFzcyBvZiBCcmVha0l0ZXJhdG9yIHdob3NlIGJlaGF2
aW9yIGlzIHNwZWNpZmllZCB1c2luZyBhIGxpc3Qgb2YgcnVsZXMuCisgKiA8cD5JbnN0YW5jZXMg
b2YgdGhpcyBjbGFzcyBhcmUgbW9zdCBjb21tb25seSBjcmVhdGVkIGJ5IHRoZSBmYWN0b3J5IG1l
dGhvZHMgb2YKKyAqICBCcmVha0l0ZXJhdG9yOjpjcmVhdGVXb3JkSW5zdGFuY2UoKSwgQnJlYWtJ
dGVyYXRvcjo6Y3JlYXRlTGluZUluc3RhbmNlKCksIGV0Yy4sCisgKiAgYW5kIHRoZW4gdXNlZCB2
aWEgdGhlIGFic3RyYWN0IEFQSSBpbiBjbGFzcyBCcmVha0l0ZXJhdG9yPC9wPgorICoKKyAqIDxw
PlNlZSB0aGUgSUNVIFVzZXIgR3VpZGUgZm9yIGluZm9ybWF0aW9uIG9uIEJyZWFrIEl0ZXJhdG9y
IFJ1bGVzLjwvcD4KKyAqCisgKiA8cD5UaGlzIGNsYXNzIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBz
dWJjbGFzc2VkLiAgKENsYXNzIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IKKyAqICAgIGlz
IGEgc3ViY2xhc3MsIGJ1dCB0aGF0IHJlbGF0aW9uc2hpcCBpcyBlZmZlY3RpdmVseSBpbnRlcm5h
bCB0byB0aGUgSUNVCisgKiAgICBpbXBsZW1lbnRhdGlvbi4gIFRoZSBzdWJjbGFzc2luZyBpbnRl
cmZhY2UgdG8gUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3IgaXMKKyAqICAgIG5vdCBwYXJ0IG9mIHRo
ZSBJQ1UgQVBJLCBhbmQgbWF5IG5vdCByZW1haW4gc3RhYmxlLjwvcD4KKyAqCisgKi8KK2NsYXNz
IFVfQ09NTU9OX0FQSSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIC8qVV9GSU5BTCovIDogcHVibGlj
IEJyZWFrSXRlcmF0b3IgeworCitwcm90ZWN0ZWQ6CisgICAgLyoqCisgICAgICogVGhlIFVUZXh0
IHRocm91Z2ggd2hpY2ggdGhpcyBCcmVha0l0ZXJhdG9yIGFjY2Vzc2VzIHRoZSB0ZXh0CisgICAg
ICogQGludGVybmFsCisgICAgICovCisgICAgVVRleHQgICpmVGV4dDsKKworICAgIC8qKgorICAg
ICAqICAgQSBjaGFyYWN0ZXIgaXRlcmF0b3IgdGhhdCByZWZlcnMgdG8gdGhlIHNhbWUgdGV4dCBh
cyB0aGUgVVRleHQsIGFib3ZlLgorICAgICAqICAgT25seSBpbmNsdWRlZCBmb3IgY29tcGF0aWJp
bGl0eSB3aXRoIG9sZCBBUEksIHdoaWNoIHdhcyBiYXNlZCBvbiBDaGFyYWN0ZXJJdGVyYXRvcnMu
CisgICAgICogICBWYWx1ZSBtYXkgYmUgYWRvcHRlZCBmcm9tIG91dHNpZGUsIG9yIG9uZSBvZiBm
U0NoYXJJdGVyIG9yIGZEQ2hhckl0ZXIsIGJlbG93LgorICAgICAqLworICAgIENoYXJhY3Rlckl0
ZXJhdG9yICAqZkNoYXJJdGVyOworCisgICAgLyoqCisgICAgICogICBXaGVuIHRoZSBpbnB1dCB0
ZXh0IGlzIHByb3ZpZGVkIGJ5IGEgVW5pY29kZVN0cmluZywgdGhpcyB3aWxsIHBvaW50IHRvCisg
ICAgICogICAgYSBjaGFyYWN0ZXJJdGVyYXRvciB0aGF0IHdyYXBzIHRoYXQgZGF0YS4gIE5lZWRl
ZCBvbmx5IGZvciB0aGUKKyAgICAgKiAgICBpbXBsZW1lbnRhdGlvbiBvZiBnZXRUZXh0KCksIGEg
YmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaXNzdWUuCisgICAgICovCisgICAgU3RyaW5nQ2hhcmFj
dGVySXRlcmF0b3IgKmZTQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiAgV2hlbiB0aGUgaW5w
dXQgdGV4dCBpcyBwcm92aWRlZCBieSBhIFVUZXh0LCB0aGlzCisgICAgICogICAgZHVtbXkgQ2hh
cmFjdGVySXRlcmF0b3Igb3ZlciBhbiBlbXB0eSBzdHJpbmcgd2lsbAorICAgICAqICAgIGJlIHJl
dHVybmVkIGZyb20gZ2V0VGV4dCgpCisgICAgICovCisgICAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRv
ciAqZkRDaGFySXRlcjsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlIGRhdGEgZm9yIHRoaXMg
QnJlYWtJdGVyYXRvciBpbnN0YW5jZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJC
QklEYXRhV3JhcHBlciAgICAqZkRhdGE7CisKKyAgICAvKiogSW5kZXggb2YgdGhlIFJ1bGUge3Rh
Z30gdmFsdWVzIGZvciB0aGUgbW9zdCByZWNlbnQgbWF0Y2guCisgICAgICogIEBpbnRlcm5hbAor
ICAgICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleDsKKwor
ICAgIC8qKgorICAgICAqIFJ1bGUgdGFnIHZhbHVlIHZhbGlkIGZsYWcuCisgICAgICogU29tZSBp
dGVyYXRvciBvcGVyYXRpb25zIGRvbid0IGludHJpbnNpY2FsbHkgc2V0IHRoZSBjb3JyZWN0IHRh
ZyB2YWx1ZS4KKyAgICAgKiBUaGlzIGZsYWcgbGV0cyB1cyBsYXppbHkgY29tcHV0ZSB0aGUgdmFs
dWUgaWYgd2UgYXJlIGV2ZXIgYXNrZWQgZm9yIGl0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAq
LworICAgIFVCb29sICAgICAgICAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkOworCisgICAg
LyoqCisgICAgICogQ291bnRlciBmb3IgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGVuY291bnRl
cmVkIHdpdGggdGhlICJkaWN0aW9uYXJ5IgorICAgICAqICAgZmxhZyBzZXQuCisgICAgICogQGlu
dGVybmFsCisgICAgICovCisgICAgdWludDMyX3QgICAgICAgICAgICBmRGljdGlvbmFyeUNoYXJD
b3VudDsKKworICAgIC8qKgorICAgICAqIFdoZW4gYSByYW5nZSBvZiBjaGFyYWN0ZXJzIGlzIGRp
dmlkZWQgdXAgdXNpbmcgdGhlIGRpY3Rpb25hcnksIHRoZSBicmVhaworICAgICAqIHBvc2l0aW9u
cyB0aGF0IGFyZSBkaXNjb3ZlcmVkIGFyZSBzdG9yZWQgaGVyZSwgcHJldmVudGluZyB1cyBmcm9t
IGhhdmluZworICAgICAqIHRvIHVzZSBlaXRoZXIgdGhlIGRpY3Rpb25hcnkgb3IgdGhlIHN0YXRl
IHRhYmxlIGFnYWluIHVudGlsIHRoZSBpdGVyYXRvcgorICAgICAqIGxlYXZlcyB0aGlzIHJhbmdl
IG9mIHRleHQuIEhhcyB0aGUgbW9zdCBpbXBhY3QgZm9yIGxpbmUgYnJlYWtpbmcuCisgICAgICog
QGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCogICAgICAgICAgICBmQ2FjaGVkQnJlYWtQ
b3NpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGZD
YWNoZWRCcmVha1Bvc2l0aW9ucworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMy
X3QgICAgICAgICAgICAgZk51bUNhY2hlZEJyZWFrUG9zaXRpb25zOworCisgICAgLyoqCisgICAg
ICogaWYgZkNhY2hlZEJyZWFrUG9zaXRpb25zIGlzIG5vdCBudWxsLCB0aGlzIGluZGljYXRlcyB3
aGljaCBpdGVtIGluIHRoZQorICAgICAqIGNhY2hlIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3Np
dGlvbiByZWZlcnMgdG8KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90ICAg
ICAgICAgICAgIGZQb3NpdGlvbkluQ2FjaGU7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAg
KiBJZiBwcmVzZW50LCBVU3RhY2sgb2YgTGFuZ3VhZ2VCcmVha0VuZ2luZSBvYmplY3RzIHRoYXQg
bWlnaHQgaGFuZGxlCisgICAgICogZGljdGlvbmFyeSBjaGFyYWN0ZXJzLiBTZWFyY2hlZCBmcm9t
IHRvcCB0byBib3R0b20gdG8gZmluZCBhbiBvYmplY3QgdG8KKyAgICAgKiBoYW5kbGUgYSBnaXZl
biBjaGFyYWN0ZXIuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVVN0YWNrICAgICAg
ICAgICAgICAqZkxhbmd1YWdlQnJlYWtFbmdpbmVzOworICAgIAorICAgIC8qKgorICAgICAqCisg
ICAgICogSWYgcHJlc2VudCwgdGhlIHNwZWNpYWwgTGFuZ3VhZ2VCcmVha0VuZ2luZSB1c2VkIGZv
ciBoYW5kbGluZworICAgICAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW4gdGhlIGRpY3Rpb25hcnkg
c2V0LCBidXQgbm90IGhhbmRsZWQgYnkgYW55CisgICAgICogTGFuZ3VnYWdlQnJlYWtFbmdpbmUu
CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVW5oYW5kbGVkRW5naW5lICAgICAqZlVu
aGFuZGxlZEJyZWFrRW5naW5lOworICAgIAorICAgIC8qKgorICAgICAqCisgICAgICogVGhlIHR5
cGUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLCBvciAtMSBpZiBpdCBoYXMgbm90IGJlZW4gc2V0Lgor
ICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZkJyZWFr
VHlwZTsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gY29u
c3RydWN0b3JzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjaWZuZGVmIFVfSElERV9JTlRFUk5B
TF9BUEkKKyAgICAvKioKKyAgICAgKiBDb25zdGFudCB0byBiZSB1c2VkIGluIHRoZSBjb25zdHJ1
Y3RvcgorICAgICAqIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoUkJCSURhdGFIZWFkZXIqLCBFRG9u
dEFkb3B0LCBVRXJyb3JDb2RlICYpOworICAgICAqIHdoaWNoIGRvZXMgbm90IGFkb3B0IHRoZSBt
ZW1vcnkgaW5kaWNhdGVkIGJ5IHRoZSBSQkJJRGF0YUhlYWRlcioKKyAgICAgKiBwYXJhbWV0ZXIu
CisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBlbnVtIEVEb250QWRvcHQg
eworICAgICAgICBrRG9udEFkb3B0CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVj
dG9yIGZyb20gYSBmbGF0dGVuZWQgc2V0IG9mIFJCQkkgZGF0YSBpbiBtYWxsb2NlZCBtZW1vcnku
CisgICAgICogICAgICAgICAgICAgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3JzIGJ1aWx0IGZyb20g
YSBjdXN0b20gc2V0IG9mIHJ1bGVzCisgICAgICogICAgICAgICAgICAgYXJlIGNyZWF0ZWQgdmlh
IHRoaXMgY29uc3RydWN0b3I7IHRoZSBydWxlcyBhcmUgY29tcGlsZWQKKyAgICAgKiAgICAgICAg
ICAgICBpbnRvIG1lbW9yeSwgdGhlbiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgY29uc3RydWN0ZWQg
aGVyZS4KKyAgICAgKgorICAgICAqICAgICAgICAgICAgIFRoZSBicmVhayBpdGVyYXRvciBhZG9w
dHMgdGhlIG1lbW9yeSwgYW5kIHdpbGwKKyAgICAgKiAgICAgICAgICAgICBmcmVlIGl0IHdoZW4g
ZG9uZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yKFJCQklEYXRhSGVhZGVyKiBkYXRhLCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoq
CisgICAgICogQ29uc3RydWN0b3IgZnJvbSBhIGZsYXR0ZW5lZCBzZXQgb2YgUkJCSSBkYXRhIGlu
IG1lbW9yeSB3aGljaCBuZWVkIG5vdAorICAgICAqICAgICAgICAgICAgIGJlIG1hbGxvY2VkIChl
LmcuIGl0IG1heSBiZSBhIG1lbW9yeS1tYXBwZWQgZmlsZSwgZXRjLikuCisgICAgICoKKyAgICAg
KiAgICAgICAgICAgICBUaGlzIHZlcnNpb24gZG9lcyBub3QgYWRvcHQgdGhlIG1lbW9yeSwgYW5k
IGRvZXMgbm90CisgICAgICogICAgICAgICAgICAgZnJlZSBpdCB3aGVuIGRvbmUuCisgICAgICog
QGludGVybmFsCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCBSQkJJ
RGF0YUhlYWRlciogZGF0YSwgZW51bSBFRG9udEFkb3B0IGRvbnRBZG9wdCwgVUVycm9yQ29kZSAm
c3RhdHVzKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisKKyAgICBmcmll
bmQgY2xhc3MgUkJCSVJ1bGVCdWlsZGVyOworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBmcmll
bmQgY2xhc3MgQnJlYWtJdGVyYXRvcjsKKworCisKK3B1YmxpYzoKKworICAgIC8qKiBEZWZhdWx0
IGNvbnN0cnVjdG9yLiAgQ3JlYXRlcyBhbiBlbXB0eSBzaGVsbCBvZiBhbiBpdGVyYXRvciwgd2l0
aCBubworICAgICAqICBydWxlcyBvciB0ZXh0IHRvIGl0ZXJhdGUgb3Zlci4gICBPYmplY3QgY2Fu
IHN1YnNlcXVlbnRseSBiZSBhc3NpZ25lZCB0by4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4yCisg
ICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICog
Q29weSBjb25zdHJ1Y3Rvci4gIFdpbGwgcHJvZHVjZSBhIGJyZWFrIGl0ZXJhdG9yIHdpdGggdGhl
IHNhbWUgYmVoYXZpb3IsCisgICAgICogYW5kIHdoaWNoIGl0ZXJhdGVzIG92ZXIgdGhlIHNhbWUg
dGV4dCwgYXMgdGhlIG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVC
YXNlZEJyZWFrSXRlcmF0b3IgcGFzc2VkIHRvIGJlIGNvcGllZAorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoY29uc3QgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvciYgdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBSdWxl
QmFzZWRCcmVha0l0ZXJhdG9yIGZyb20gYSBzZXQgb2YgcnVsZXMgc3VwcGxpZWQgYXMgYSBzdHJp
bmcuCisgICAgICogQHBhcmFtIHJ1bGVzIFRoZSBicmVhayBydWxlcyB0byBiZSB1c2VkLgorICAg
ICAqIEBwYXJhbSBwYXJzZUVycm9yICBJbiB0aGUgZXZlbnQgb2YgYSBzeW50YXggZXJyb3IgaW4g
dGhlIHJ1bGVzLCBwcm92aWRlcyB0aGUgbG9jYXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAg
ICAgd2l0aGluIHRoZSBydWxlcyBvZiB0aGUgcHJvYmxlbS4KKyAgICAgKiBAcGFyYW0gc3RhdHVz
IEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4yCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciggY29uc3QgVW5pY29k
ZVN0cmluZyAgICAmcnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQYXJzZUVy
cm9yICAgICAgICAgICAmcGFyc2VFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VUVycm9yQ29kZSAgICAgICAgICAgICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ29udHJ1
Y3QgYSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGZyb20gYSBzZXQgb2YgcHJlY29tcGlsZWQgYmlu
YXJ5IHJ1bGVzLgorICAgICAqIEJpbmFyeSBydWxlcyBhcmUgb2J0YWluZWQgZnJvbSBSdWxlc0Jh
c2VkQnJlYWtJdGVyYXRvcjo6Z2V0QmluYXJ5UnVsZXMoKS4KKyAgICAgKiBDb25zdHJ1Y3Rpb24g
b2YgYSBicmVhayBpdGVyYXRvciBpbiB0aGlzIHdheSBpcyBzdWJzdGFudGlhbGx5IGZhc3RlciB0
aGFuCisgICAgICogY29uc3R1Y3Rpb24gZnJvbSBzb3VyY2UgcnVsZXMuCisgICAgICoKKyAgICAg
KiBPd25lcnNoaXAgb2YgdGhlIHN0b3JhZ2UgY29udGFpbmluZyB0aGUgY29tcGlsZWQgcnVsZXMg
cmVtYWlucyB3aXRoIHRoZQorICAgICAqIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uLiAgVGhlIGNv
bXBpbGVkIHJ1bGVzIG11c3Qgbm90IGJlICBtb2RpZmllZCBvciAKKyAgICAgKiBkZWxldGVkIGR1
cmluZyB0aGUgbGlmZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBUaGUg
Y29tcGlsZWQgcnVsZXMgYXJlIG5vdCBjb21wYXRpYmxlIGFjcm9zcyBkaWZmZXJlbnQgbWFqb3Ig
dmVyc2lvbnMgb2YgSUNVLgorICAgICAqIFRoZSBjb21waWxlZCBydWxlcyBhcmUgY29tYXB0aWJs
ZSBvbmx5IGJldHdlZW4gbWFjaGluZXMgd2l0aCB0aGUgc2FtZQorICAgICAqIGJ5dGUgb3JkZXJp
bmcgKGxpdHRsZSBvciBiaWcgZW5kaWFuKSBhbmQgdGhlIHNhbWUgYmFzZSBjaGFyYWN0ZXIgc2V0
IGZhbWlseQorICAgICAqIChBU0NJSSBvciBFQkNESUMpLgorICAgICAqCisgICAgICogQHNlZSAj
Z2V0QmluYXJ5UnVsZXMKKyAgICAgKiBAcGFyYW0gY29tcGlsZWRSdWxlcyBBIHBvaW50ZXIgdG8g
dGhlIGNvbXBpbGVkIGJyZWFrIHJ1bGVzIHRvIGJlIHVzZWQuCisgICAgICogQHBhcmFtIHJ1bGVM
ZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgY29tcGlsZWQgYnJlYWsgcnVsZXMsIGluIGJ5dGVzLiAg
VGhpcworICAgICAqICAgY29ycmVzcG9uZHMgdG8gdGhlIGxlbmd0aCB2YWx1ZSBwcm9kdWNlZCBi
eSBnZXRCaW5hcnlSdWxlcygpLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24g
YW55IGVycm9ycyBlbmNvdW50ZXJlZCwgaW5jbHVkaW5nIGludmFsaWQKKyAgICAgKiAgIGJpbmFy
eSBydWxlcy4KKyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRC
cmVha0l0ZXJhdG9yKGNvbnN0IHVpbnQ4X3QgKmNvbXBpbGVkUnVsZXMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICBydWxlTGVuZ3RoLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVUVycm9yQ29kZSAgICAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRo
aXMgY29uc3RydWN0b3IgdXNlcyB0aGUgdWRhdGEgaW50ZXJmYWNlIHRvIGNyZWF0ZSBhIEJyZWFr
SXRlcmF0b3IKKyAgICAgKiB3aG9zZSBpbnRlcm5hbCB0YWJsZXMgbGl2ZSBpbiBhIG1lbW9yeS1t
YXBwZWQgZmlsZS4gICJpbWFnZSIgaXMgYW4KKyAgICAgKiBJQ1UgVURhdGFNZW1vcnkgaGFuZGxl
IGZvciB0aGUgcHJlLWNvbXBpbGVkIGJyZWFrIGl0ZXJhdG9yIHRhYmxlcy4KKyAgICAgKiBAcGFy
YW0gaW1hZ2UgaGFuZGxlIHRvIHRoZSBtZW1vcnkgaW1hZ2UgZm9yIHRoZSBicmVhayBpdGVyYXRv
ciBkYXRhLgorICAgICAqICAgICAgICBPd25lcnNoaXAgb2YgdGhlIFVEYXRhTWVtb3J5IGhhbmRs
ZSBwYXNzZXMgdG8gdGhlIEJyZWFrIEl0ZXJhdG9yLAorICAgICAqICAgICAgICB3aGljaCB3aWxs
IGJlIHJlc3BvbnNpYmxlIGZvciBjbG9zaW5nIGl0IHdoZW4gaXQgaXMgbm8gbG9uZ2VyIG5lZWRl
ZC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3Vu
dGVyZWQuCisgICAgICogQHNlZSB1ZGF0YV9vcGVuCisgICAgICogQHNlZSAjZ2V0QmluYXJ5UnVs
ZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yKFVEYXRhTWVtb3J5KiBpbWFnZSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8q
KgorICAgICAqIERlc3RydWN0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCB+UnVsZUJhc2VkQnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICog
QXNzaWdubWVudCBvcGVyYXRvci4gIFNldHMgdGhpcyBpdGVyYXRvciB0byBoYXZlIHRoZSBzYW1l
IGJlaGF2aW9yLAorICAgICAqIGFuZCBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhl
IG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVCYXNlZEJyZWFrSXRl
cnRvciBwYXNzZWQgaW4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgUnVs
ZUJhc2VkQnJlYWtJdGVyYXRvciYgb3BlcmF0b3I9KGNvbnN0IFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3ImIHRoYXQpOworCisgICAgLyoqCisgICAgICogRXF1YWxpdHkgb3BlcmF0b3IuICBSZXR1cm5z
IFRSVUUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhlCisgICAgICogc2FtZSBjbGFz
cywgaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0
LgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZv
ciBlcXVhbGl0eQorICAgICAqIEByZXR1cm4gVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFy
ZSBvZiB0aGUKKyAgICAgKiBzYW1lIGNsYXNzLCBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLCBhbmQg
aXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHRleHQuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBCcmVha0l0ZXJhdG9yJiB0
aGF0KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIE5vdC1lcXVhbCBvcGVyYXRvci4gIElmIG9w
ZXJhdG9yPT0gcmV0dXJucyBUUlVFLCB0aGlzIHJldHVybnMgRkFMU0UsCisgICAgICogYW5kIHZp
Y2UgdmVyc2EuCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29t
cGFyZWQgZm9yIGluZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgYm90aCBCcmVha0l0
ZXJhdG9ycyBhcmUgbm90IHNhbWUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgQnJlYWtJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvciB3aXRoIHRoZSBzYW1lCisgICAgICogYmVoYXZpb3IsIGFuZCBpdGVyYXRpbmcg
b3ZlciB0aGUgc2FtZSB0ZXh0LCBhcyB0aGlzIG9uZS4KKyAgICAgKiBEaWZmZXJzIGZyb20gdGhl
IGNvcHkgY29uc3RydWN0b3IgaW4gdGhhdCBpdCBpcyBwb2x5bW9ycGhpYywgYW5kCisgICAgICog
d2lsbCBjb3JyZWN0bHkgY2xvbmUgKGNvcHkpIGEgZGVyaXZlZCBjbGFzcy4KKyAgICAgKiBjbG9u
ZSgpIGlzIHRocmVhZCBzYWZlLiAgTXVsdGlwbGUgdGhyZWFkcyBtYXkgc2ltdWx0YWVuZW91c2x5
CisgICAgICogY2xvbmUgdGhlIHNhbWUgc291cmNlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqIEBy
ZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yKiBjbG9u
ZSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIGhhc2ggY29kZSBmb3IgdGhp
cyBCcmVha0l0ZXJhdG9yCisgICAgICogQHJldHVybiBBIGhhc2ggY29kZQorICAgICAqICBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgaGFzaENvZGUodm9pZCkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZXNjcmlwdGlvbiB1c2VkIHRv
IGNyZWF0ZSB0aGlzIGl0ZXJhdG9yCisgICAgICogQHJldHVybiB0aGUgZGVzY3JpcHRpb24gdXNl
ZCB0byBjcmVhdGUgdGhpcyBpdGVyYXRvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIGNvbnN0IFVuaWNvZGVTdHJpbmcmIGdldFJ1bGVzKHZvaWQpIGNvbnN0
OworCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEJyZWFrSXRlcmF0b3Igb3ZlcnJpZGVz
CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogUmV0
dXJuIGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAg
ICAgKiBUaGUgcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIGlzIG93bmVkIGJ5IHRoZSBicmVh
ayBpdGVyYXRvciwgYW5kIG11c3QKKyAgICAgKiBub3QgYmUgZGVsZXRlZCBieSB0aGUgY2FsbGVy
LiAgUmVwZWF0ZWQgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBtYXkKKyAgICAgKiByZXR1cm4gdGhl
IHNhbWUgQ2hhcmFjdGVySXRlcmF0b3IuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAq
IFRoZSByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0b3IgbXVzdCBub3QgYmUgdXNlZCBjb25jdXJy
ZW50bHkgd2l0aAorICAgICAqIHRoZSBicmVhayBpdGVyYXRvci4gIElmIGNvbmN1cnJlbnQgb3Bl
cmF0aW9uIGlzIG5lZWRlZCwgY2xvbmUgdGhlCisgICAgICogcmV0dXJuZWQgY2hhcmFjdGVyIGl0
ZXJhdG9yIGZpcnN0IGFuZCBvcGVyYXRlIG9uIHRoZSBjbG9uZS4KKyAgICAgKiA8L3A+CisgICAg
ICogPHA+CisgICAgICogV2hlbiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nIG9uIHRl
eHQgc3VwcGxpZWQgdmlhIGEgVVRleHQsCisgICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIGZhaWwu
ICBMYWNraW5nIGFueSB3YXkgdG8gc2lnbmFsIGZhaWx1cmVzLCBpdAorICAgICAqIHJldHVybnMg
YW4gQ2hhcmFjdGVySXRlcmF0b3IgY29udGFpbmluZyBubyB0ZXh0LgorICAgICAqIFRoZSBmdW5j
dGlvbiBnZXRVVGV4dCgpIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSwKKyAgICAgKiBp
cyByZWxpYWJsZSwgYW5kIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIDwvcD4KKyAgICAgKgor
ICAgICAqIFRPRE86ICBkZXByZWNhdGUgdGhpcyBmdW5jdGlvbj8KKyAgICAgKgorICAgICAqIEBy
ZXR1cm4gQW4gaXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsICBDaGFyYWN0ZXJJdGVyYXRvciYg
Z2V0VGV4dCh2b2lkKSBjb25zdDsKKworCisgICAgLyoqCisgICAgICAqICBHZXQgYSBVVGV4dCBm
b3IgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICAqICBUaGUgcmV0dXJuZWQgVVRleHQg
aXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBVVGV4dCB1c2VkIGludGVybmFsbHkKKyAgICAgICog
IGJ5IHRoZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbi4gIEl0IGNhbiBzYWZlbHkgYmUg
dXNlZCB0bworICAgICAgKiAgYWNjZXNzIHRoZSB0ZXh0IHdpdGhvdXQgaW1wYWN0aW5nIGFueSBi
cmVhayBpdGVyYXRvciBvcGVyYXRpb25zLAorICAgICAgKiAgYnV0IHRoZSB1bmRlcmx5aW5nIHRl
eHQgaXRzZWxmIG11c3Qgbm90IGJlIGFsdGVyZWQuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBm
aWxsSW4gQSBVVGV4dCB0byBiZSBmaWxsZWQgaW4uICBJZiBOVUxMLCBhIG5ldyBVVGV4dCB3aWxs
IGJlCisgICAgICAqICAgICAgICAgICBhbGxvY2F0ZWQgdG8gaG9sZCB0aGUgcmVzdWx0LgorICAg
ICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgICogQHJl
dHVybiAgIFRoZSBjdXJyZW50IFVUZXh0IGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiAgSWYgYW4g
aW5wdXQKKyAgICAgICogICAgICAgICAgIFVUZXh0IHdhcyBwcm92aWRlZCwgaXQgd2lsbCBhbHdh
eXMgYmUgcmV0dXJuZWQuCisgICAgICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAgKi8KKyAgICAg
dmlydHVhbCBVVGV4dCAqZ2V0VVRleHQoVVRleHQgKmZpbGxJbiwgVUVycm9yQ29kZSAmc3RhdHVz
KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBh
IG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhpcyBmdW5jdGlvbiByZXNldHMKKyAgICAgKiB0aGUgY3Vy
cmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAg
ICAgKiBAcGFyYW0gbmV3VGV4dCBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IHRvIGFuYWx5emUu
ICBUaGUgQnJlYWtJdGVyYXRvcgorICAgICAqIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgY2hhcmFj
dGVyIGl0ZXJhdG9yLiAgVGhlIGNhbGxlciBNVVNUIE5PVCBkZWxldGUgaXQhCisgICAgICogIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBhZG9wdFRleHQoQ2hhcmFj
dGVySXRlcmF0b3IqIG5ld1RleHQpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRv
ciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cwor
ICAgICAqIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9m
IHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSB0ZXh0IHRvIGFuYWx5emUuCisg
ICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0
KGNvbnN0IFVuaWNvZGVTdHJpbmcmIG5ld1RleHQpOworCisgICAgLyoqCisgICAgICogUmVzZXQg
dGhlIGJyZWFrIGl0ZXJhdG9yIHRvIG9wZXJhdGUgb3ZlciB0aGUgdGV4dCByZXByZXNlbnRlZCBi
eQorICAgICAqIHRoZSBVVGV4dC4gIFRoZSBpdGVyYXRvciBwb3NpdGlvbiBpcyByZXNldCB0byB0
aGUgc3RhcnQuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBj
bG9uZSBvZiB0aGUgc3VwcGxpZWQgVVRleHQuICBUaGlzIG1lYW5zCisgICAgICogdGhhdCB0aGUg
Y2FsbGVyIGlzIGZyZWUgdG8gaW1tZWRpYXRlbHkgY2xvc2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRo
ZQorICAgICAqIFV0ZXh0IHRoYXQgd2FzIHBhc3NlZCBhcyBhIHBhcmFtZXRlciwgYnV0IHRoYXQg
dGhlIHVuZGVybHlpbmcgdGV4dCBpdHNlbGYKKyAgICAgKiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdo
aWxlIGJlaW5nIHJlZmVyZW5jZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAg
ICogQHBhcmFtIHRleHQgICAgVGhlIFVUZXh0IHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAg
ICAqIEBwYXJhbSBzdGF0dXMgIFJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgKiBAc3Rh
YmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoVVRleHQgKnRl
eHQsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJy
ZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCBwb3Np
dGlvbiB6ZXJvLgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9m
IHRoZSB0ZXh0LCB6ZXJvLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgZmlyc3Qodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBj
dXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAq
IEByZXR1cm4gVGhlIHRleHQncyBwYXN0LXRoZS1lbmQgb2Zmc2V0LgorICAgICAqICBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbGFzdCh2b2lkKTsKKworICAg
IC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBlaXRoZXIgZm9yd2FyZCBvciBiYWNr
d2FyZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBzdGVwcy4KKyAgICAgKiBOZWdhdGl2ZSB2YWx1
ZXMgbW92ZSBiYWNrd2FyZCwgYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3ZlIGZvcndhcmQuICBUaGlz
IGlzCisgICAgICogZXF1aXZhbGVudCB0byByZXBlYXRlZGx5IGNhbGxpbmcgbmV4dCgpIG9yIHBy
ZXZpb3VzKCkuCisgICAgICogQHBhcmFtIG4gVGhlIG51bWJlciBvZiBzdGVwcyB0byBtb3ZlLiAg
VGhlIHNpZ24gaW5kaWNhdGVzIHRoZSBkaXJlY3Rpb24KKyAgICAgKiAobmVnYXRpdmUgaXMgYmFj
a3dhcmRzLCBhbmQgcG9zaXRpdmUgaXMgZm9yd2FyZHMpLgorICAgICAqIEByZXR1cm4gVGhlIGNo
YXJhY3RlciBvZmZzZXQgb2YgdGhlIGJvdW5kYXJ5IHBvc2l0aW9uIG4gYm91bmRhcmllcyBhd2F5
IGZyb20KKyAgICAgKiB0aGUgY3VycmVudCBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KGludDMyX3Qgbik7CisKKyAgICAvKioK
KyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgdG8gdGhlIG5leHQgYm91bmRhcnkgcG9zaXRp
b24uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IGFm
dGVyIHRoaXMgb25lLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIGludDMyX3QgbmV4dCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBpdGVy
YXRvciBiYWNrd2FyZHMsIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHByZWNlZGluZyB0aGlzIG9uZS4K
KyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlv
biBwcmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgaW50MzJfdCBwcmV2aW91cyh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBm
b2xsb3dpbmcKKyAgICAgKiB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBv
ZmZzZXQgVGhlIHBvc2l0aW9uIGZyb20gd2hpY2ggdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBhIGJy
ZWFrIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBi
cmVhayBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGZvbGxvd2luZyhpbnQzMl90IG9mZnNldCk7
CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFz
dCBib3VuZGFyeSBwb3NpdGlvbiBiZWZvcmUgdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9u
LgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIHRvIGJlZ2luIHNlYXJjaGluZyBm
b3IgYSBicmVhayBmcm9tLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0
IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3RhcnRpbmcgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmcoaW50MzJfdCBv
ZmZzZXQpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjZmllZCBw
b3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLiAgQXMgYSBzaWRlCisgICAgICogZWZmZWN0
LCBsZWF2ZXMgdGhlIGl0ZXJhdG9yIHBvaW50aW5nIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3Np
dGlvbiBhdAorICAgICAqIG9yIGFmdGVyICJvZmZzZXQiLgorICAgICAqIEBwYXJhbSBvZmZzZXQg
dGhlIG9mZnNldCB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMg
YSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBVQm9vbCBpc0JvdW5kYXJ5KGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBy
ZXR1cm4gVGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBjdXJyZW50KHZvaWQpIGNvbnN0Owor
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHN0YXR1cyB0YWcgZnJvbSB0aGUgYnJlYWsg
cnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBi
cmVhayBwb3NpdGlvbi4gIEZvciBicmVhayBydWxlcyB0aGF0IGRvIG5vdCBzcGVjaWZ5IGEKKyAg
ICAgKiBzdGF0dXMsIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVkLiAgSWYgbW9yZSB0
aGFuIG9uZSBicmVhayBydWxlCisgICAgICogd291bGQgY2F1c2UgYSBib3VuZGFyeSB0byBiZSBs
b2NhdGVkIGF0IHNvbWUgcG9zaXRpb24gaW4gdGhlIHRleHQsCisgICAgICogdGhlIG51bWVyaWNh
bGx5IGxhcmdlc3Qgb2YgdGhlIGFwcGxpY2FibGUgc3RhdHVzIHZhbHVlcyBpcyByZXR1cm5lZC4K
KyAgICAgKiA8cD4KKyAgICAgKiBPZiB0aGUgc3RhbmRhcmQgdHlwZXMgb2YgSUNVIGJyZWFrIGl0
ZXJhdG9ycywgb25seSB3b3JkIGJyZWFrIGFuZAorICAgICAqIGxpbmUgYnJlYWsgcHJvdmlkZSBz
dGF0dXMgdmFsdWVzLiAgVGhlIHZhbHVlcyBhcmUgZGVmaW5lZCBpbgorICAgICAqIHRoZSBoZWFk
ZXIgZmlsZSB1YnJrLmguICBGb3IgV29yZCBicmVha3MsIHRoZSBzdGF0dXMgYWxsb3dzIGRpc3Rp
bmd1aXNoaW5nIGJldHdlZW4gd29yZHMKKyAgICAgKiB0aGF0IGNvbnRhaW4gYWxwaGFiZXRpYyBs
ZXR0ZXJzLCAid29yZHMiIHRoYXQgYXBwZWFyIHRvIGJlIG51bWJlcnMsCisgICAgICogcHVuY3R1
YXRpb24gYW5kIHNwYWNlcywgd29yZHMgY29udGFpbmluZyBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJz
LCBhbmQKKyAgICAgKiBtb3JlLiAgRm9yIExpbmUgQnJlYWssIHRoZSBzdGF0dXMgZGlzdGluZ3Vp
c2hlcyBiZXR3ZWVuIGhhcmQgKG1hbmRhdG9yeSkgYnJlYWtzCisgICAgICogYW5kIHNvZnQgKHBv
dGVudGlhbCkgYnJlYWsgcG9zaXRpb25zLgorICAgICAqIDxwPgorICAgICAqIDxjb2RlPmdldFJ1
bGVTdGF0dXMoKTwvY29kZT4gY2FuIGJlIGNhbGxlZCBhZnRlciBvYnRhaW5pbmcgYSBib3VuZGFy
eQorICAgICAqIHBvc2l0aW9uIGZyb20gPGNvZGU+bmV4dCgpPC9jb2RlPiwgPGNvZGU+cHJldmlv
dXMoKTwvY29kZT4sIG9yCisgICAgICogYW55IG90aGVyIGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9u
cyB0aGF0IHJldHVybnMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBX
aGVuIGNyZWF0aW5nIGN1c3RvbSBicmVhayBydWxlcywgb25lIGlzIGZyZWUgdG8gZGVmaW5lIHdo
YXRldmVyCisgICAgICogc3RhdHVzIHZhbHVlcyBtYXkgYmUgY29udmVuaWVudCBmb3IgdGhlIGFw
cGxpY2F0aW9uLgorICAgICAqIDxwPgorICAgICAqIE5vdGU6IHRoaXMgZnVuY3Rpb24gaXMgbm90
IHRocmVhZCBzYWZlLiAgSXQgc2hvdWxkIG5vdCBoYXZlIGJlZW4KKyAgICAgKiAgICAgICBkZWNs
YXJlZCBjb25zdCwgYW5kIHRoZSBjb25zdCByZW1haW5zIG9ubHkgZm9yIGNvbXBhdGliaWxpdHkK
KyAgICAgKiAgICAgICByZWFzb25zLiAgKFRoZSBmdW5jdGlvbiBpcyBsb2dpY2FsbHkgY29uc3Qs
IGJ1dCBub3QgYml0LXdpc2UgY29uc3QpLgorICAgICAqIDxwPgorICAgICAqIEByZXR1cm4gdGhl
IHN0YXR1cyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNl
bnRseQorICAgICAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqCisgICAgICogQHNl
ZSBVV29yZEJyZWFrCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90IGdldFJ1bGVTdGF0dXMoKSBjb25zdDsKKworICAgLyoqCisgICAgKiBHZXQgdGhl
IHN0YXR1cyAodGFnKSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsgcnVsZShzKSB0aGF0IGRldGVybWlu
ZWQgdGhlIG1vc3QKKyAgICAqIHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAg
ICogPHA+CisgICAgKiBUaGUgcmV0dXJuZWQgc3RhdHVzIHZhbHVlKHMpIGFyZSBzdG9yZWQgaW50
byBhbiBhcnJheSBwcm92aWRlZCBieSB0aGUgY2FsbGVyLgorICAgICogVGhlIHZhbHVlcyBhcmUg
c3RvcmVkIGluIHNvcnRlZCAoYXNjZW5kaW5nKSBvcmRlci4KKyAgICAqIElmIHRoZSBjYXBhY2l0
eSBvZiB0aGUgb3V0cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xkIHRoZSBkYXRhLAor
ICAgICogIHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2YWlsYWJsZSBsZW5n
dGgsIGFuZCBhCisgICAgKiAgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1Igd2lsbCBiZSBzaWduYWxl
ZC4KKyAgICAqCisgICAgKiBAcGFyYW0gZmlsbEluVmVjIGFuIGFycmF5IHRvIGJlIGZpbGxlZCBp
biB3aXRoIHRoZSBzdGF0dXMgdmFsdWVzLgorICAgICogQHBhcmFtIGNhcGFjaXR5ICB0aGUgbGVu
Z3RoIG9mIHRoZSBzdXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0aCBvZiB6ZXJvIGNhdXNlcworICAg
ICogICAgICAgICAgICAgICAgICB0aGUgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSBudW1iZXIgb2Yg
c3RhdHVzIHZhbHVlcywgaW4gdGhlCisgICAgKiAgICAgICAgICAgICAgICAgIG5vcm1hbCB3YXks
IHdpdGhvdXQgYXR0ZW10cGluZyB0byBzdG9yZSBhbnkgdmFsdWVzLgorICAgICogQHBhcmFtIHN0
YXR1cyAgICByZWNlaXZlcyBlcnJvciBjb2Rlcy4KKyAgICAqIEByZXR1cm4gICAgICAgICAgVGhl
IG51bWJlciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxlcyB0aGF0IGRldGVybWluZWQK
KyAgICAqICAgICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50IGJvdW5kYXJ5IHJldHVybmVk
IGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAqICAgICAgICAgICAgICAgICAgSW4gdGhlIGV2
ZW50IG9mIGEgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRoZSByZXR1cm4gdmFsdWUKKyAgICAq
ICAgICAgICAgICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzIHRo
YXQgd2VyZSBhdmFpbGFibGUsCisgICAgKiAgICAgICAgICAgICAgICAgIG5vdCB0aGUgcmVkdWNl
ZCBudW1iZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgorICAgICogQHNlZSBnZXRSdWxl
U3RhdHVzCisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgIHZpcnR1YWwgaW50MzJf
dCBnZXRSdWxlU3RhdHVzVmVjKGludDMyX3QgKmZpbGxJblZlYywgaW50MzJfdCBjYXBhY2l0eSwg
VUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB1bmlxdWUg
Y2xhc3MgSUQgUE9MWU1PUlBISUNBTExZLiAgUHVyZSB2aXJ0dWFsIG92ZXJyaWRlLgorICAgICAq
IFRoaXMgbWV0aG9kIGlzIHRvIGltcGxlbWVudCBhIHNpbXBsZSB2ZXJzaW9uIG9mIFJUVEksIHNp
bmNlIG5vdCBhbGwKKyAgICAgKiBDKysgY29tcGlsZXJzIHN1cHBvcnQgZ2VudWluZSBSVFRJLiAg
UG9seW1vcnBoaWMgb3BlcmF0b3I9PSgpIGFuZAorICAgICAqIGNsb25lKCkgbWV0aG9kcyBjYWxs
IHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICBUaGUgY2xhc3Mg
SUQgZm9yIHRoaXMgb2JqZWN0LiBBbGwgb2JqZWN0cyBvZiBhCisgICAgICogICAgICAgICAgICAg
ICAgICBnaXZlbiBjbGFzcyBoYXZlIHRoZSBzYW1lIGNsYXNzIElELiAgT2JqZWN0cyBvZgorICAg
ICAqICAgICAgICAgICAgICAgICAgb3RoZXIgY2xhc3NlcyBoYXZlIGRpZmZlcmVudCBjbGFzcyBJ
RHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJ
RCBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVy
bnMgdGhlIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzLiAgVGhpcyBpcyB1c2VmdWwgb25seSBmb3IK
KyAgICAgKiBjb21wYXJpbmcgdG8gYSByZXR1cm4gdmFsdWUgZnJvbSBnZXREeW5hbWljQ2xhc3NJ
RCgpLiAgRm9yIGV4YW1wbGU6CisgICAgICoKKyAgICAgKiAgICAgIEJhc2UqIHBvbHltb3JwaGlj
X3BvaW50ZXIgPSBjcmVhdGVQb2x5bW9ycGhpY09iamVjdCgpOworICAgICAqICAgICAgaWYgKHBv
bHltb3JwaGljX3BvaW50ZXItPmdldER5bmFtaWNDbGFzc0lEKCkgPT0KKyAgICAgKiAgICAgICAg
ICBEZXJpdmVkOjpnZXRTdGF0aWNDbGFzc0lEKCkpIC4uLgorICAgICAqCisgICAgICogQHJldHVy
biAgICAgICAgICBUaGUgY2xhc3MgSUQgZm9yIGFsbCBvYmplY3RzIG9mIHRoaXMgY2xhc3MuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVDbGFzc0lEIFVfRVhQ
T1JUMiBnZXRTdGF0aWNDbGFzc0lEKHZvaWQpOworCisgICAgLyoqCisgICAgICogRGVwcmVjYXRl
ZCBmdW5jdGlvbmFsaXR5LiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisgICAgICogQ3Jl
YXRlIGEgY2xvbmUgKGNvcHkpIG9mIHRoaXMgYnJlYWsgaXRlcmF0b3IgaW4gbWVtb3J5IHByb3Zp
ZGVkCisgICAgICogIGJ5IHRoZSBjYWxsZXIuICBUaGUgaWRlYSBpcyB0byBpbmNyZWFzZSBwZXJm
b3JtYW5jZSBieSBhdm9pZGluZworICAgICAqICBhIHN0b3JhZ2UgYWxsb2NhdGlvbi4gIFVzZSBv
ZiB0aGlzIGZ1bmN0b2luIGlzIE5PVCBSRUNPTU1FTkRFRC4KKyAgICAgKiAgUGVyZm9ybWFuY2Ug
Z2FpbnMgYXJlIG1pbmltYWwsIGFuZCBjb3JyZWN0IGJ1ZmZlciBtYW5hZ2VtZW50IGlzCisgICAg
ICogIHRyaWNreS4gIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0g
c3RhY2tCdWZmZXIgIFRoZSBwb2ludGVyIHRvIHRoZSBtZW1vcnkgaW50byB3aGljaCB0aGUgY2xv
bmVkIG9iamVjdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGJlIHBsYWNlZC4g
IElmIE5VTEwsICBhbGxvY2F0ZSBoZWFwIG1lbW9yeQorICAgICAqICAgICAgICAgICAgICAgICAg
ICAgZm9yIHRoZSBjbG9uZWQgb2JqZWN0LgorICAgICAqIEBwYXJhbSBCdWZmZXJTaXplICAgVGhl
IHNpemUgb2YgdGhlIGJ1ZmZlci4gIElmIHplcm8sIHJldHVybiB0aGUgcmVxdWlyZWQKKyAgICAg
KiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciBzaXplLCBidXQgZG8gbm90IGNsb25lIHRoZSBv
YmplY3QuICBJZiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHNpemUgd2FzIHRvbyBz
bWFsbCAoYnV0IG5vdCB6ZXJvKSwgYWxsb2NhdGUgaGVhcAorICAgICAqICAgICAgICAgICAgICAg
ICAgICAgc3RvcmFnZSBmb3IgdGhlIGNsb25lZCBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFy
YW0gc3RhdHVzICAgICAgIEVycm9yIHN0YXR1cy4gIFVfU0FGRUNMT05FX0FMTE9DQVRFRF9XQVJO
SU5HIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHJldHVybmVkIGlmIHRoZSB0
aGUgcHJvdmlkZWQgYnVmZmVyIHdhcyB0b28gc21hbGwsIGFuZAorICAgICAqICAgICAgICAgICAg
ICAgICAgICAgdGhlIGNsb25lIHdhcyB0aGVyZWZvcmUgcHV0IG9uIHRoZSBoZWFwLgorICAgICAq
CisgICAgICogQHJldHVybiAgUG9pbnRlciB0byB0aGUgY2xvbmUgb2JqZWN0LiAgVGhpcyBtYXkg
ZGlmZmVyIGZyb20gdGhlIHN0YWNrQnVmZmVyCisgICAgICogICAgICAgICAgYWRkcmVzcyBpZiB0
aGUgYnl0ZSBhbGlnbm1lbnQgb2YgdGhlIHN0YWNrIGJ1ZmZlciB3YXMgbm90IHN1aXRhYmxlCisg
ICAgICogICAgICAgICAgb3IgaWYgdGhlIHN0YWNrQnVmZmVyIHdhcyB0b28gc21hbGwgdG8gaG9s
ZCB0aGUgY2xvbmUuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0
ZWFkLgorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciAqICBjcmVhdGVCdWZmZXJD
bG9uZSh2b2lkICpzdGFja0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50MzJfdCAmQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworCisgICAg
LyoqCisgICAgICogUmV0dXJuIHRoZSBiaW5hcnkgZm9ybSBvZiBjb21waWxlZCBicmVhayBydWxl
cywKKyAgICAgKiB3aGljaCBjYW4gdGhlbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5ldyBicmVhayBp
dGVyYXRvciBhdCBzb21lCisgICAgICogdGltZSBpbiB0aGUgZnV0dXJlLiAgQ3JlYXRpbmcgYSBi
cmVhayBpdGVyYXRvciBmcm9tIHByZS1jb21waWxlZCBydWxlcworICAgICAqIGlzIG11Y2ggZmFz
dGVyIHRoYW4gYnVpbGRpbmcgb25lIGZyb20gdGhlIHNvdXJjZSBmb3JtIG9mIHRoZQorICAgICAq
IGJyZWFrIHJ1bGVzLgorICAgICAqCisgICAgICogVGhlIGJpbmFyeSBkYXRhIGNhbiBvbmx5IGJl
IHVzZWQgd2l0aCB0aGUgc2FtZSB2ZXJzaW9uIG9mIElDVQorICAgICAqICBhbmQgb24gdGhlIHNh
bWUgcGxhdGZvcm0gdHlwZSAocHJvY2Vzc29yIGVuZGlhbi1uZXNzKQorICAgICAqCisgICAgICog
QHBhcmFtIGxlbmd0aCBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGJpbmFyeSBkYXRhLiAgKE91
dCBwYXJhbXRlci4pCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgQSBwb2ludGVyIHRvIHRoZSBi
aW5hcnkgKGNvbXBpbGVkKSBydWxlIGRhdGEuICBUaGUgc3RvcmFnZQorICAgICAqICAgICAgICAg
ICBiZWxvbmdzIHRvIHRoZSBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvciBvYmplY3QsIG5vdCB0aGUK
KyAgICAgKiAgICAgICAgICAgY2FsbGVyLCBhbmQgbXVzdCBub3QgYmUgbW9kaWZpZWQgb3IgZGVs
ZXRlZC4KKyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGNvbnN0
IHVpbnQ4X3QgKmdldEJpbmFyeVJ1bGVzKHVpbnQzMl90ICZsZW5ndGgpOworCisgICAgLyoqCisg
ICAgICogIFNldCB0aGUgc3ViamVjdCB0ZXh0IHN0cmluZyB1cG9uIHdoaWNoIHRoZSBicmVhayBp
dGVyYXRvciBpcyBvcGVyYXRpbmcKKyAgICAgKiAgd2l0aG91dCBjaGFuZ2luZyBhbnkgb3RoZXIg
YXNwZWN0IG9mIHRoZSBtYXRjaGluZyBzdGF0ZS4KKyAgICAgKiAgVGhlIG5ldyBhbmQgcHJldmlv
dXMgdGV4dCBzdHJpbmdzIG11c3QgaGF2ZSB0aGUgc2FtZSBjb250ZW50LgorICAgICAqCisgICAg
ICogIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBpbiBlbnZpcm9ubWVudHMgd2hl
cmUgSUNVIGlzIG9wZXJhdGluZyBvbgorICAgICAqICBzdHJpbmdzIHRoYXQgbWF5IG1vdmUgYXJv
dW5kIGluIG1lbW9yeS4gIEl0IHByb3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBub3RpZnlpbmcKKyAg
ICAgKiAgSUNVIHRoYXQgdGhlIHN0cmluZyBoYXMgYmVlbiByZWxvY2F0ZWQsIGFuZCBwcm92aWRp
bmcgYSBuZXcgVVRleHQgdG8gYWNjZXNzIHRoZQorICAgICAqICBzdHJpbmcgaW4gaXRzIG5ldyBw
b3NpdGlvbi4KKyAgICAgKgorICAgICAqICBOb3RlIHRoYXQgdGhlIGJyZWFrIGl0ZXJhdG9yIGlt
cGxlbWVudGF0aW9uIG5ldmVyIGNvcGllcyB0aGUgdW5kZXJseWluZyB0ZXh0CisgICAgICogIG9m
IGEgc3RyaW5nIGJlaW5nIHByb2Nlc3NlZCwgYnV0IGFsd2F5cyBvcGVyYXRlcyBkaXJlY3RseSBv
biB0aGUgb3JpZ2luYWwgdGV4dAorICAgICAqICBwcm92aWRlZCBieSB0aGUgdXNlci4gUmVmcmVz
aGluZyBzaW1wbHkgZHJvcHMgdGhlIHJlZmVyZW5jZXMgdG8gdGhlIG9sZCB0ZXh0CisgICAgICog
IGFuZCByZXBsYWNlcyB0aGVtIHdpdGggcmVmZXJlbmNlcyB0byB0aGUgbmV3LgorICAgICAqCisg
ICAgICogIENhdXRpb246ICB0aGlzIGZ1bmN0aW9uIGlzIG5vcm1hbGx5IHVzZWQgb25seSBieSB2
ZXJ5IHNwZWNpYWxpemVkLAorICAgICAqICBzeXN0ZW0tbGV2ZWwgY29kZS4gIE9uZSBleGFtcGxl
IHVzZSBjYXNlIGlzIHdpdGggZ2FyYmFnZSBjb2xsZWN0aW9uIHRoYXQgbW92ZXMKKyAgICAgKiAg
dGhlIHRleHQgaW4gbWVtb3J5LgorICAgICAqCisgICAgICogQHBhcmFtIGlucHV0ICAgICAgVGhl
IG5ldyAobW92ZWQpIHRleHQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgIFJlY2Vp
dmVzIGVycm9ycyBkZXRlY3RlZCBieSB0aGlzIGZ1bmN0aW9uLgorICAgICAqIEByZXR1cm4gICAg
ICAgICAgICp0aGlzCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAg
IHZpcnR1YWwgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAmcmVmcmVzaElucHV0VGV4dChVVGV4dCAq
aW5wdXQsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKworcHJvdGVjdGVkOgorICAgIC8vPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKyAgICAvLyBpbXBsZW1lbnRhdGlvbgorICAgIC8vPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAg
ICAvKioKKyAgICAgKiBEdW1wcyBjYWNoZXMgYW5kIHBlcmZvcm1zIG90aGVyIGFjdGlvbnMgYXNz
b2NpYXRlZCB3aXRoIGEgY29tcGxldGUgY2hhbmdlCisgICAgICogaW4gdGV4dCBvciBpdGVyYXRp
b24gcG9zaXRpb24uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgdmlydHVhbCB2b2lk
IHJlc2V0KHZvaWQpOworCisjaWYgMAorICAgIC8qKgorICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0
aGUgY2F0ZWdvcnkgbG9va3VwIGZvciB0aGlzIGNoYXIKKyAgICAgICogaW5kaWNhdGVzIHRoYXQg
aXQgaXMgaW4gdGhlIHNldCBvZiBkaWN0aW9uYXJ5IGxvb2t1cCBjaGFycy4KKyAgICAgICogVGhp
cyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGRpY3Rpb25hcnkgYmFzZWQgYnJlYWsg
aXRlcmF0b3JzLgorICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBm
b3IgdGhpcyBjaGFyCisgICAgICAqIGluZGljYXRlcyB0aGF0IGl0IGlzIGluIHRoZSBzZXQgb2Yg
ZGljdGlvbmFyeSBsb29rdXAgY2hhcnMuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAg
ICB2aXJ0dWFsIFVCb29sIGlzRGljdGlvbmFyeUNoYXIoVUNoYXIzMik7CisKKyAgICAvKioKKyAg
ICAgICogR2V0IHRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgICogQGludGVy
bmFsCisgICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRCcmVha1R5cGUoKSBjb25zdDsK
KyNlbmRpZgorCisgICAgLyoqCisgICAgICAqIFNldCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRl
cmF0b3IuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
QnJlYWtUeXBlKGludDMyX3QgdHlwZSk7CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQor
ICAgIC8qKgorICAgICAgKiBDb21tb24gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24sIHVzZWQgYnkg
Y29uc3RydWN0b3JzIGFuZCBidWZmZXJDbG9uZS4KKyAgICAgICogQGludGVybmFsCisgICAgICAq
LworICAgIHZvaWQgaW5pdCgpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisK
K3ByaXZhdGU6CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBiYWNrcyB0aGUgaXRlcmF0
b3IgYmFjayB1cCB0byBhICJzYWZlIHBvc2l0aW9uIiBpbiB0aGUgdGV4dC4KKyAgICAgKiBUaGlz
IGlzIGEgcG9zaXRpb24gdGhhdCB3ZSBrbm93LCB3aXRob3V0IGFueSBjb250ZXh0LCBtdXN0IGJl
IGEgYnJlYWsgcG9zaXRpb24uCisgICAgICogVGhlIHZhcmlvdXMgY2FsbGluZyBtZXRob2RzIHRo
ZW4gaXRlcmF0ZSBmb3J3YXJkIGZyb20gdGhpcyBzYWZlIHBvc2l0aW9uIHRvCisgICAgICogdGhl
IGFwcHJvcHJpYXRlIHBvc2l0aW9uIHRvIHJldHVybi4gIChGb3IgbW9yZSBpbmZvcm1hdGlvbiwg
c2VlIHRoZSBkZXNjcmlwdGlvbgorICAgICAqIG9mIGJ1aWxkQmFja3dhcmRzU3RhdGVUYWJsZSgp
IGluIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuQnVpbGRlci4pCisgICAgICogQHBhcmFtIHN0YXRl
dGFibGUgc3RhdGUgdGFibGUgdXNlZCBvZiBtb3ZpbmcgYmFja3dhcmRzCisgICAgICogQGludGVy
bmFsCisgICAgICovCisgICAgaW50MzJfdCBoYW5kbGVQcmV2aW91cyhjb25zdCBSQkJJU3RhdGVU
YWJsZSAqc3RhdGV0YWJsZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUg
YWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBuZXh0KCkgbWV0aG9kLiAgQWxsIGl0ZXJhdGlv
bgorICAgICAqIHZlY3RvcnMgdGhyb3VnaCBoZXJlLiAgVGhpcyBtZXRob2QgaW5pdGlhbGl6ZXMg
dGhlIHN0YXRlIG1hY2hpbmUgdG8gc3RhdGUgMQorICAgICAqIGFuZCBhZHZhbmNlcyB0aHJvdWdo
IHRoZSB0ZXh0IGNoYXJhY3RlciBieSBjaGFyYWN0ZXIgdW50aWwgd2UgcmVhY2ggdGhlIGVuZAor
ICAgICAqIG9mIHRoZSB0ZXh0IG9yIHRoZSBzdGF0ZSBtYWNoaW5lIHRyYW5zaXRpb25zIHRvIHN0
YXRlIDAuICBXZSB1cGRhdGUgb3VyIHJldHVybgorICAgICAqIHZhbHVlIGV2ZXJ5IHRpbWUgdGhl
IHN0YXRlIG1hY2hpbmUgcGFzc2VzIHRocm91Z2ggYSBwb3NzaWJsZSBlbmQgc3RhdGUuCisgICAg
ICogQHBhcmFtIHN0YXRldGFibGUgc3RhdGUgdGFibGUgdXNlZCBvZiBtb3ZpbmcgZm9yd2FyZHMK
KyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGhhbmRsZU5leHQoY29uc3Qg
UkJCSVN0YXRlVGFibGUgKnN0YXRldGFibGUpOworCitwcm90ZWN0ZWQ6CisKKyNpZm5kZWYgVV9I
SURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIGZ1bmN0aW9uIHRo
YXQgYWN0dWFsbHkgaW1wbGVtZW50cyBkaWN0aW9uYXJ5LWJhc2VkCisgICAgICogYnJlYWtpbmcu
ICBDb3ZlcmluZyBhdCBsZWFzdCB0aGUgcmFuZ2UgZnJvbSBzdGFydFBvcyB0byBlbmRQb3MsCisg
ICAgICogaXQgY2hlY2tzIGZvciBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMsIGFuZCBpZiBpdCBmaW5k
cyB0aGVtIGRldGVybWluZXMKKyAgICAgKiB0aGUgYXBwcm9wcmlhdGUgb2JqZWN0IHRvIGRlYWwg
d2l0aCB0aGVtLiBJdCBtYXkgY2FjaGUgZm91bmQgYnJlYWtzIGluCisgICAgICogZkNhY2hlZEJy
ZWFrUG9zaXRpb25zIGFzIGl0IGdvZXMuIEl0IG1heSB3ZWxsIGFsc28gbG9vayBhdCB0ZXh0IG91
dHNpZGUKKyAgICAgKiB0aGUgcmFuZ2Ugc3RhcnRQb3MgdG8gZW5kUG9zLgorICAgICAqIElmIGdv
aW5nIGZvcndhcmQsIGVuZFBvcyBpcyB0aGUgbm9ybWFsIFVuaWNvZGUgYnJlYWsgcmVzdWx0LCBh
bmQKKyAgICAgKiBpZiBnb2luZCBpbiByZXZlcnNlLCBzdGFydFBvcyBpcyB0aGUgbm9ybWFsIFVu
aWNvZGUgYnJlYWsgcmVzdWx0CisgICAgICogQHBhcmFtIHN0YXJ0UG9zICBUaGUgc3RhcnQgcG9z
aXRpb24gb2YgYSByYW5nZSBvZiB0ZXh0CisgICAgICogQHBhcmFtIGVuZFBvcyAgICBUaGUgZW5k
IHBvc2l0aW9uIG9mIGEgcmFuZ2Ugb2YgdGV4dAorICAgICAqIEBwYXJhbSByZXZlcnNlICAgVGhl
IGNhbGwgaXMgZm9yIHRoZSByZXZlcnNlIGRpcmVjdGlvbgorICAgICAqIEBpbnRlcm5hbAorICAg
ICAqLworICAgIGludDMyX3QgY2hlY2tEaWN0aW9uYXJ5KGludDMyX3Qgc3RhcnRQb3MsIGludDMy
X3QgZW5kUG9zLCBVQm9vbCByZXZlcnNlKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQ
SSAqLworCitwcml2YXRlOgorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5z
IHRoZSBhcHByb3ByaWF0ZSBMYW5ndWFnZUJyZWFrRW5naW5lIGZvciBhCisgICAgICogZ2l2ZW4g
Y2hhcmFjdGVyIGMuCisgICAgICogQHBhcmFtIGMgICAgICAgICBBIGNoYXJhY3RlciBpbiB0aGUg
ZGljdGlvbmFyeSBzZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBjb25zdCBMYW5n
dWFnZUJyZWFrRW5naW5lICpnZXRMYW5ndWFnZUJyZWFrRW5naW5lKFVDaGFyMzIgYyk7CisKKyAg
ICAvKioKKyAgICAgKiAgQGludGVybmFsCisgICAgICovCisgICAgdm9pZCBtYWtlUnVsZVN0YXR1
c1ZhbGlkKCk7CisKK307CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICBJbmxp
bmUgRnVuY3Rpb25zIERlZmluaXRpb25zIC4uLgorLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKK2lubGluZSBVQm9vbCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yOjpvcGVyYXRvciE9KGNvbnN0
IEJyZWFrSXRlcmF0b3ImIHRoYXQpIGNvbnN0IHsKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0odGhh
dCk7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JS
RUFLX0lURVJBVElPTiAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvc2Nocml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0ZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kMGI1ZTIyNTAzY2ZmMjYxZDJjZDI0MGZmMTIwMDdmOTM3Zjc4M2IyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oCkBAIC0wLDAgKzEs
MTg3IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAx
OTk4LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlv
biBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorKgorKiBGaWxlIHNjaHJpdGVyLmgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6Cisq
CisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogIDA1LzA1Lzk5ICAg
ICBzdGVwaGVuICAgICBDbGVhbmVkIHVwLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisj
aWZuZGVmIFNDSFJJVEVSX0gKKyNkZWZpbmUgU0NIUklURVJfSAorCisjaW5jbHVkZSAidW5pY29k
ZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisjaW5jbHVkZSAidW5p
Y29kZS91Y2hyaXRlci5oIgorCisvKioKKyAqIFxmaWxlIAorICogXGJyaWVmIEMrKyBBUEk6IFN0
cmluZyBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgor
ICogQSBjb25jcmV0ZSBzdWJjbGFzcyBvZiBDaGFyYWN0ZXJJdGVyYXRvciB0aGF0IGl0ZXJhdGVz
IG92ZXIgdGhlCisgKiBjaGFyYWN0ZXJzIChjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzKSBpbiBh
IFVuaWNvZGVTdHJpbmcuCisgKiBJdCdzIHBvc3NpYmxlIG5vdCBvbmx5IHRvIGNyZWF0ZSBhbgor
ICogaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIGFuIGVudGlyZSBVbmljb2RlU3RyaW5nLCBi
dXQgYWxzbyB0bworICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25seSBhIHN1YnJh
bmdlIG9mIGEgVW5pY29kZVN0cmluZworICogKGl0ZXJhdG9ycyBvdmVyIGRpZmZlcmVudCBzdWJy
YW5nZXMgb2YgdGhlIHNhbWUgVW5pY29kZVN0cmluZyBkb24ndAorICogY29tcGFyZSBlcXVhbCku
CisgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVy
YXRvcgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBTdHJpbmdD
aGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1Ymxp
YzoKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5n
IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0
IGlzIGNvcGllZC4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyB0aGUgd2hvbGUgc3RyaW5n
LCBhbmQgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGlzIDAuCisgICAqIEBwYXJhbSB0ZXh0U3RyIFRo
ZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSBhbiBpdGVyYXRvcgorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVuaWNvZGVT
dHJpbmcmIHRleHRTdHIpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0
aGUgVW5pY29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBpdGVy
YXRpb24gcmFuZ2UgaXMgdGhlIHdob2xlIHN0cmluZywgYW5kIHRoZSBzdGFydGluZworICAgKiBw
b3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInRleHRQb3MiLiAgSWYgInRleHRQb3MiIGlzIG91dHNp
ZGUgdGhlIHZhbGlkCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMg
b2JqZWN0IGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRTdHIgVGhlIHVuaWNvZGUgc3Ry
aW5nIHVzZWQgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yCisgICAqIEBwYXJhbSB0ZXh0UG9zIFRoZSBz
dGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYgICAg
dGV4dFN0ciwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dFBvcyk7CisK
KyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJl
ZmVycmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlz
IGNvcGllZC4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBiZWdpbnMgd2l0aCB0aGUgY29kZSB1
bml0IHNwZWNpZmllZCBieQorICAgKiAidGV4dEJlZ2luIiBhbmQgZW5kcyB3aXRoIHRoZSBjb2Rl
IHVuaXQgQkVGT1JFIHRoZSBjb2RlIHVuaXQgc3BlY2ZpZWQKKyAgICogYnkgInRleHRFbmQiLiAg
VGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAidGV4dFBvcyIuICBJZgorICAg
KiAidGV4dEJlZ2luIiBhbmQgInRleHRFbmQiIGRvbid0IGZvcm0gYSB2YWxpZCByYW5nZSBvbiAi
dGV4dCIgKGkuZS4sCisgICAqIHRleHRCZWdpbiA+PSB0ZXh0RW5kIG9yIGVpdGhlciBpcyBuZWdh
dGl2ZSBvciBncmVhdGVyIHRoYW4gdGV4dC5zaXplKCkpLAorICAgKiBvciAidGV4dFBvcyIgaXMg
b3V0c2lkZSB0aGUgcmFuZ2UgZGVmaW5lZCBieSAidGV4dEJlZ2luIiBhbmQgInRleHRFbmQiLAor
ICAgKiB0aGUgYmVoYXZpb3Igb2YgdGhpcyBpdGVyYXRvciBpcyB1bmRlZmluZWQuCisgICAqIEBw
YXJhbSB0ZXh0U3RyICAgIFRoZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSB0aGUgU3Ry
aW5nQ2hhcmFjdGVySXRlcmF0b3IKKyAgICogQHBhcmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBv
c2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhl
IGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0UG9z
ICAgIFRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0
cmluZyYgICAgdGV4dFN0ciwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4
dEJlZ2luLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0RW5kLAorICAg
ICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0UG9zKTsKKworICAvKioKKyAgICog
Q29weSBjb25zdHJ1Y3Rvci4gIFRoZSBuZXcgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2Ft
ZSByYW5nZQorICAgKiBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRp
YWwgcG9zaXRpb24gaXMgdGhlCisgICAqIHNhbWUgYXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlv
bi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGluICJ0aGF0IiBpcyBjb3BpZWQuCisg
ICAqIEBwYXJhbSB0aGF0IFRoZSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQK
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihj
b25zdCBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciYgIHRoYXQpOworCisgIC8qKgorICAgKiBEZXN0
cnVjdG9yLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgflN0cmluZ0No
YXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgLyoqCisgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICAq
dGhpcyBpcyBhbHRlcmVkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZQorICAgKiByYW5nZSBvZiB0
aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgcmVmZXJzIHRvIHRoZSBzYW1lCisgICAqIGNo
YXJhY3RlciB3aXRoaW4gdGhhdCBzdHJpbmcgYXMgInRoYXQiIGRvZXMuCisgICAqIEBwYXJhbSB0
aGF0IFRoZSBvYmplY3QgdG8gYmUgY29waWVkLgorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVh
dGVkIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0
ZXJJdGVyYXRvciYKKyAgb3BlcmF0b3I9KGNvbnN0IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJiAg
ICB0aGF0KTsKKworICAvKioKKyAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRl
cmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJl
IHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICogQHBhcmFtIHRoYXQgVGhlIEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICog
QHJldHVybiB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdl
IG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNo
YXJhY3Rlci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAg
ICAgICAgIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBj
b25zdDsKKworICAvKioKKyAgICogUmV0dXJucyBhIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRv
ciByZWZlcnJpbmcgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHJhbmdl
IG9mIHRoZSBzYW1lIHN0cmluZyBhcyB0aGlzIG9uZS4gIFRoZQorICAgKiBjYWxsZXIgbXVzdCBk
ZWxldGUgdGhlIG5ldyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0aGUgbmV3bHkgY2xvbmVkIG9i
amVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIENoYXJhY3Rlckl0
ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0
b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJhbSBuZXdU
ZXh0IFRoZSBzdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKwor
ICAvKioKKyAgICogQ29waWVzIHRoZSBVbmljb2RlU3RyaW5nIHVuZGVyIGl0ZXJhdGlvbiBpbnRv
IHRoZSBVbmljb2RlU3RyaW5nCisgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZlbiBp
ZiB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIGFjcm9zcworICAgKiBvbmx5IGEgcGFydCBvZiB0aGlz
IHN0cmluZywgdGhlIHdob2xlIHN0cmluZyBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSByZXN1bHQg
UmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNv
ZGVTdHJpbmcmIHJlc3VsdCk7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0
aGlzIG9iamVjdCAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBm
b3IgdGhpcyBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBV
Q2xhc3NJRCAgICAgICAgIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCisgIC8qKgor
ICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcyAobm90IHJlYWxseSBwdWJsaWMp
CisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcworICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHN0YXRpYyBVQ2xhc3NJRCAgIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFz
c0lEKHZvaWQpOworCitwcm90ZWN0ZWQ6CisgIC8qKgorICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9y
LCBpdGVyYXRpb24gb3ZlciBlbXB0eSBzdHJpbmcuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogU2V0cyB0aGUg
aXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJh
bSBuZXdUZXh0IFRoZSBzdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbmV3
VGV4dExlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBTdHJpbmcKKyAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVUNoYXIqIG5ld1RleHQsIGludDMyX3QgbmV3
VGV4dExlbmd0aCk7CisKKyAgLyoqCisgICAqIENvcHkgb2YgdGhlIGl0ZXJhdGVkIHN0cmluZyBv
YmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVW5pY29kZVN0cmluZyAgICAg
ICAgICAgIHRleHQ7CisKK307CisKK1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjYXNlbWFwLmggYi9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3VjYXNlbWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM3ZTE2NTg4Njk3ZjFhOTMwMTkxZWUzZGY4MTZj
NjNiN2JkMzhjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNh
c2VtYXAuaApAQCAtMCwwICsxLDQyMyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoK
KyogICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNo
aW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgor
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVjYXNlbWFwLmgKKyog
ICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAg
IGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDA1bWF5MDYKKyogICBjcmVhdGVk
IGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIENhc2UgbWFwcGluZyBzZXJ2aWNlIG9iamVj
dCBhbmQgZnVuY3Rpb25zIHVzaW5nIGl0LgorKi8KKworI2lmbmRlZiBfX1VDQVNFTUFQX0hfXwor
I2RlZmluZSBfX1VDQVNFTUFQX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNp
bmNsdWRlICJ1bmljb2RlL3VzdHJpbmcuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRl
ci5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IFVuaWNvZGUgY2FzZSBtYXBw
aW5nIGZ1bmN0aW9ucyB1c2luZyBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICoKKyAqIFRo
ZSBzZXJ2aWNlIG9iamVjdCB0YWtlcyBjYXJlIG9mIG1lbW9yeSBhbGxvY2F0aW9ucywgZGF0YSBs
b2FkaW5nLCBhbmQgc2V0dXAKKyAqIGZvciB0aGUgYXR0cmlidXRlcywgYXMgdXN1YWwuCisgKgor
ICogQ3VycmVudGx5LCB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBoZXJlIGRvZXMgbm90IG92
ZXJsYXAgd2l0aCB1Y2hhci5oCisgKiBhbmQgdXN0cmluZy5oLCBleGNlcHQgZm9yIHVjYXNlbWFw
X3RvVGl0bGUoKS4KKyAqCisgKiB1Y2FzZW1hcF91dGY4WFlaKCkgZnVuY3Rpb25zIG9wZXJhdGUg
ZGlyZWN0bHkgb24gVVRGLTggc3RyaW5ncy4KKyAqLworCisvKioKKyAqIFVDYXNlTWFwIGlzIGFu
IG9wYXF1ZSBzZXJ2aWNlIG9iamVjdCBmb3IgbmV3ZXIgSUNVIGNhc2UgbWFwcGluZyBmdW5jdGlv
bnMuCisgKiBPbGRlciBmdW5jdGlvbnMgZGlkIG5vdCB1c2UgYSBzZXJ2aWNlIG9iamVjdC4KKyAq
IEBzdGFibGUgSUNVIDMuNAorICovCitzdHJ1Y3QgVUNhc2VNYXA7Cit0eXBlZGVmIHN0cnVjdCBV
Q2FzZU1hcCBVQ2FzZU1hcDsgLyoqPCBDIHR5cGVkZWYgZm9yIHN0cnVjdCBVQ2FzZU1hcC4gQHN0
YWJsZSBJQ1UgMy40ICovCisKKy8qKgorICogT3BlbiBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0
IGZvciBhIGxvY2FsZSBhbmQgYSBzZXQgb2Ygb3B0aW9ucy4KKyAqIFRoZSBsb2NhbGUgSUQgYW5k
IG9wdGlvbnMgYXJlIHByZXByb2Nlc3NlZCBzbyB0aGF0IGZ1bmN0aW9ucyB1c2luZyB0aGUKKyAq
IHNlcnZpY2Ugb2JqZWN0IG5lZWQgbm90IHByb2Nlc3MgdGhlbSBpbiBlYWNoIGNhbGwuCisgKgor
ICogQHBhcmFtIGxvY2FsZSBJQ1UgbG9jYWxlIElELCB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRl
bnQKKyAqICAgICAgICAgICAgICAgdXBwZXItL2xvd2VyLS90aXRsZS1jYXNpbmcgYWNjb3JkaW5n
IHRvIHRoZSBVbmljb2RlIHN0YW5kYXJkLgorICogICAgICAgICAgICAgICBVc3VhbCBzZW1hbnRp
Y3M6ICIiPXJvb3QsIE5VTEw9ZGVmYXVsdCBsb2NhbGUsIGV0Yy4KKyAqIEBwYXJhbSBvcHRpb25z
IE9wdGlvbnMgYml0IHNldCwgdXNlZCBmb3IgY2FzZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFy
aXNvbnMuCisgKiAgICAgICAgICAgICAgICBTYW1lIGZsYWdzIGFzIGZvciB1X2ZvbGRDYXNlKCks
IHVfc3RyRm9sZENhc2UoKSwKKyAqICAgICAgICAgICAgICAgIHVfc3RyQ2FzZUNvbXBhcmUoKSwg
ZXRjLgorICogICAgICAgICAgICAgICAgVXNlIDAgb3IgVV9GT0xEX0NBU0VfREVGQVVMVCBmb3Ig
ZGVmYXVsdCBiZWhhdmlvci4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBw
b2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGlj
aCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgor
ICogQHJldHVybiBQb2ludGVyIHRvIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QsIGlmIHN1Y2Nl
c3NmdWwuCisgKgorICogQHNlZSBVX0ZPTERfQ0FTRV9ERUZBVUxUCisgKiBAc2VlIFVfRk9MRF9D
QVNFX0VYQ0xVREVfU1BFQ0lBTF9JCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQor
ICogQHNlZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5UCisgKiBAc3RhYmxlIElDVSAz
LjQKKyAqLworVV9TVEFCTEUgVUNhc2VNYXAgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX29wZW4oY29u
c3QgY2hhciAqbG9jYWxlLCB1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2Rl
KTsKKworLyoqCisgKiBDbG9zZSBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFt
IGNzbSBPYmplY3QgdG8gYmUgY2xvc2VkLgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RB
QkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9jbG9zZShVQ2FzZU1hcCAqY3NtKTsKKworI2lm
IFVfU0hPV19DUExVU1BMVVNfQVBJCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogXGNs
YXNzIExvY2FsVUNhc2VNYXBQb2ludGVyCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGNsb3Nl
cyBhIFVDYXNlTWFwIHZpYSB1Y2FzZW1hcF9jbG9zZSgpLgorICogRm9yIG1vc3QgbWV0aG9kcyBz
ZWUgdGhlIExvY2FsUG9pbnRlckJhc2UgYmFzZSBjbGFzcy4KKyAqCisgKiBAc2VlIExvY2FsUG9p
bnRlckJhc2UKKyAqIEBzZWUgTG9jYWxQb2ludGVyCisgKiBAc3RhYmxlIElDVSA0LjQKKyAqLwor
VV9ERUZJTkVfTE9DQUxfT1BFTl9QT0lOVEVSKExvY2FsVUNhc2VNYXBQb2ludGVyLCBVQ2FzZU1h
cCwgdWNhc2VtYXBfY2xvc2UpOworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmCisKKy8qKgor
ICogR2V0IHRoZSBsb2NhbGUgSUQgdGhhdCBpcyB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQg
Y2FzZSBtYXBwaW5ncy4KKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisg
KiBAcmV0dXJuIGxvY2FsZSBJRAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGNv
bnN0IGNoYXIgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldExvY2FsZShjb25zdCBVQ2FzZU1hcCAq
Y3NtKTsKKworLyoqCisgKiBHZXQgdGhlIG9wdGlvbnMgYml0IHNldCB0aGF0IGlzIHVzZWQgZm9y
IGNhc2UgZm9sZGluZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICogQHBhcmFtIGNzbSBVQ2Fz
ZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1cm4gb3B0aW9ucyBiaXQgc2V0CisgKiBAc3Rh
YmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgdWludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF9n
ZXRPcHRpb25zKGNvbnN0IFVDYXNlTWFwICpjc20pOworCisvKioKKyAqIFNldCB0aGUgbG9jYWxl
IElEIHRoYXQgaXMgdXNlZCBmb3IgbGFuZ3VhZ2UtZGVwZW5kZW50IGNhc2UgbWFwcGluZ3MuCisg
KgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBsb2Nh
bGUgTG9jYWxlIElELCBzZWUgdWNhc2VtYXBfb3BlbigpLgorICogQHBhcmFtIHBFcnJvckNvZGUg
TXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAg
ICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhl
IGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF9vcGVuCisgKiBAc3RhYmxlIElD
VSAzLjQKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldExvY2FsZShV
Q2FzZU1hcCAqY3NtLCBjb25zdCBjaGFyICpsb2NhbGUsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUp
OworCisvKioKKyAqIFNldCB0aGUgb3B0aW9ucyBiaXQgc2V0IHRoYXQgaXMgdXNlZCBmb3IgY2Fz
ZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKgorICogQHBhcmFtIGNzbSBVQ2Fz
ZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgYml0IHNldCwg
c2VlIHVjYXNlbWFwX29wZW4oKS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxp
ZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3
aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxs
LgorICoKKyAqIEBzZWUgdWNhc2VtYXBfb3BlbgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1Vf
U1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9zZXRPcHRpb25zKFVDYXNlTWFwICpjc20s
IHVpbnQzMl90IG9wdGlvbnMsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIERv
IG5vdCBsb3dlcmNhc2Ugbm9uLWluaXRpYWwgcGFydHMgb2Ygd29yZHMgd2hlbiB0aXRsZWNhc2lu
Zy4KKyAqIE9wdGlvbiBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQSXMgdGhhdCB0YWtlIGFuIG9wdGlv
bnMgYml0IHNldC4KKyAqCisgKiBCeSBkZWZhdWx0LCB0aXRsZWNhc2luZyB3aWxsIHRpdGxlY2Fz
ZSB0aGUgZmlyc3QgY2FzZWQgY2hhcmFjdGVyCisgKiBvZiBhIHdvcmQgYW5kIGxvd2VyY2FzZSBh
bGwgb3RoZXIgY2hhcmFjdGVycy4KKyAqIFdpdGggdGhpcyBvcHRpb24sIHRoZSBvdGhlciBjaGFy
YWN0ZXJzIHdpbGwgbm90IGJlIG1vZGlmaWVkLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0
aW9ucworICogQHNlZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1Rp
dGxlCisgKiBAc2VlIFVuaWNvZGVTdHJpbmc6OnRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAor
ICovCisjZGVmaW5lIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRSAweDEwMAorCisvKioKKyAqIERv
IG5vdCBhZGp1c3QgdGhlIHRpdGxlY2FzaW5nIGluZGV4ZXMgZnJvbSBCcmVha0l0ZXJhdG9yOjpu
ZXh0KCkgaW5kZXhlczsKKyAqIHRpdGxlY2FzZSBleGFjdGx5IHRoZSBjaGFyYWN0ZXJzIGF0IGJy
ZWFrcyBmcm9tIHRoZSBpdGVyYXRvci4KKyAqIE9wdGlvbiBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQ
SXMgdGhhdCB0YWtlIGFuIG9wdGlvbnMgYml0IHNldC4KKyAqCisgKiBCeSBkZWZhdWx0LCB0aXRs
ZWNhc2luZyB3aWxsIHRha2UgZWFjaCBicmVhayBpdGVyYXRvciBpbmRleCwKKyAqIGFkanVzdCBp
dCBieSBsb29raW5nIGZvciB0aGUgbmV4dCBjYXNlZCBjaGFyYWN0ZXIsIGFuZCB0aXRsZWNhc2Ug
dGhhdCBvbmUuCisgKiBPdGhlciBjaGFyYWN0ZXJzIGFyZSBsb3dlcmNhc2VkLgorICoKKyAqIFRo
aXMgZm9sbG93cyBVbmljb2RlIDQgJiA1IHNlY3Rpb24gMy4xMyBEZWZhdWx0IENhc2UgT3BlcmF0
aW9uczoKKyAqCisgKiBSMyAgdG9UaXRsZWNhc2UoWCk6IEZpbmQgdGhlIHdvcmQgYm91bmRhcmll
cyBiYXNlZCBvbiBVbmljb2RlIFN0YW5kYXJkIEFubmV4CisgKiAjMjksICJUZXh0IEJvdW5kYXJp
ZXMuIiBCZXR3ZWVuIGVhY2ggcGFpciBvZiB3b3JkIGJvdW5kYXJpZXMsIGZpbmQgdGhlIGZpcnN0
CisgKiBjYXNlZCBjaGFyYWN0ZXIgRi4gSWYgRiBleGlzdHMsIG1hcCBGIHRvIGRlZmF1bHRfdGl0
bGUoRik7IHRoZW4gbWFwIGVhY2gKKyAqIHN1YnNlcXVlbnQgY2hhcmFjdGVyIEMgdG8gZGVmYXVs
dF9sb3dlcihDKS4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgdWNh
c2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICogQHNlZSBVbmlj
b2RlU3RyaW5nOjp0b1RpdGxlCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICog
QHN0YWJsZSBJQ1UgMy44CisgKi8KKyNkZWZpbmUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNU
TUVOVCAweDIwMAorCisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKKy8qKgorICog
R2V0IHRoZSBicmVhayBpdGVyYXRvciB0aGF0IGlzIHVzZWQgZm9yIHRpdGxlY2FzaW5nLgorICog
RG8gbm90IG1vZGlmeSB0aGUgcmV0dXJuZWQgYnJlYWsgaXRlcmF0b3IuCisgKiBAcGFyYW0gY3Nt
IFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVybiB0aXRsZWNhc2luZyBicmVhayBp
dGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIGNvbnN0IFVCcmVha0l0
ZXJhdG9yICogVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDYXNl
TWFwICpjc20pOworCisvKioKKyAqIFNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2Vk
IGZvciB0aXRsZWNhc2luZy4KKyAqIFRoZSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdCByZWxlYXNl
cyBhIHByZXZpb3VzbHkgc2V0IGJyZWFrIGl0ZXJhdG9yCisgKiBhbmQgImFkb3B0cyIgdGhpcyBu
ZXcgb25lLCB0YWtpbmcgb3duZXJzaGlwIG9mIGl0LgorICogSXQgd2lsbCBiZSByZWxlYXNlZCBp
biBhIHN1YnNlcXVlbnQgY2FsbCB0byB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCkKKyAqIG9y
IHVjYXNlbWFwX2Nsb3NlKCkuCisgKgorICogQnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucyBhcmUg
bm90IHRocmVhZC1zYWZlLiBUaGVyZWZvcmUsIHRpdGxlY2FzaW5nCisgKiBmdW5jdGlvbnMgdXNl
IG5vbi1jb25zdCBVQ2FzZU1hcCBvYmplY3RzLiBJdCBpcyBub3QgcG9zc2libGUgdG8gdGl0bGVj
YXNlCisgKiBzdHJpbmdzIGNvbmN1cnJlbnRseSB1c2luZyB0aGUgc2FtZSBVQ2FzZU1hcC4KKyAq
CisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGl0ZXJU
b0Fkb3B0IEJyZWFrIGl0ZXJhdG9yIHRvIGJlIGFkb3B0ZWQgZm9yIHRpdGxlY2FzaW5nLgorICog
QHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29k
ZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEg
ZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF90
b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc3RhYmxlIElDVSAzLjgK
KyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3Io
VUNhc2VNYXAgKmNzbSwgVUJyZWFrSXRlcmF0b3IgKml0ZXJUb0Fkb3B0LCBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKworLyoqCisgKiBUaXRsZWNhc2UgYSBVVEYtMTYgc3RyaW5nLiBUaGlzIGZ1
bmN0aW9uIGlzIGFsbW9zdCBhIGR1cGxpY2F0ZSBvZiB1X3N0clRvVGl0bGUoKSwKKyAqIGV4Y2Vw
dCB0aGF0IGl0IHRha2VzIHVjYXNlbWFwX3NldE9wdGlvbnMoKSBpbnRvIGFjY291bnQgYW5kIGhh
cyBwZXJmb3JtYW5jZQorICogYWR2YW50YWdlcyBmcm9tIGJlaW5nIGFibGUgdG8gdXNlIGEgVUNh
c2VNYXAgb2JqZWN0IGZvciBtdWx0aXBsZSBjYXNlIG1hcHBpbmcKKyAqIG9wZXJhdGlvbnMsIHNh
dmluZyBzZXR1cCB0aW1lLgorICoKKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBj
b250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRpdGxlY2FzaW5nIHVzZXMgYSBicmVhayBpdGVyYXRvciB0
byBmaW5kIHRoZSBmaXJzdCBjaGFyYWN0ZXJzIG9mIHdvcmRzCisgKiB0aGF0IGFyZSB0byBiZSB0
aXRsZWNhc2VkLiBJdCB0aXRsZWNhc2VzIHRob3NlIGNoYXJhY3RlcnMgYW5kIGxvd2VyY2FzZXMK
KyAqIGFsbCBvdGhlcnMuIChUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHVjYXNlbWFwX3NldE9w
dGlvbnMoKS4pCisgKgorICogTm90ZTogVGhpcyBmdW5jdGlvbiB0YWtlcyBhIG5vbi1jb25zdCBV
Q2FzZU1hcCBwb2ludGVyIGJlY2F1c2UgaXQgd2lsbAorICogb3BlbiBhIGRlZmF1bHQgYnJlYWsg
aXRlcmF0b3IgaWYgbm8gYnJlYWsgaXRlcmF0b3Igd2FzIHNldCB5ZXQsCisgKiBhbmQgZWZmZWN0
aXZlbHkgY2FsbCB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCk7CisgKiBhbHNvIGJlY2F1c2Ug
dGhlIGJyZWFrIGl0ZXJhdG9yIGlzIHN0YXRlZnVsIGFuZCB3aWxsIGJlIG1vZGlmaWVkIGR1cmlu
ZworICogdGhlIGl0ZXJhdGlvbi4KKyAqCisgKiBUaGUgdGl0bGVjYXNlIGJyZWFrIGl0ZXJhdG9y
IGNhbiBiZSBwcm92aWRlZCB0byBjdXN0b21pemUgZm9yIGFyYml0cmFyeQorICogc3R5bGVzLCB1
c2luZyBydWxlcyBhbmQgZGljdGlvbmFyaWVzIGJleW9uZCB0aGUgc3RhbmRhcmQgaXRlcmF0b3Jz
LgorICogVGhlIHN0YW5kYXJkIHRpdGxlY2FzZSBpdGVyYXRvciBmb3IgdGhlIHJvb3QgbG9jYWxl
IGltcGxlbWVudHMgdGhlCisgKiBhbGdvcml0aG0gb2YgVW5pY29kZSBUUiAyMS4KKyAqCisgKiBU
aGlzIGZ1bmN0aW9uIHVzZXMgb25seSB0aGUgc2V0VVRleHQoKSwgZmlyc3QoKSwgbmV4dCgpIGFu
ZCBjbG9zZSgpIG1ldGhvZHMgb2YgdGhlCisgKiBwcm92aWRlZCBicmVhayBpdGVyYXRvci4KKyAq
CisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5h
bC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qg
bm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9i
amVjdC4gVGhpcyBwb2ludGVyIGlzIG5vbi1jb25zdCEKKyAqICAgICAgICAgICAgICAgICAgU2Vl
IHRoZSBub3RlIGFib3ZlIGZvciBkZXRhaWxzLgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZl
ciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRl
ZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAq
ICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZh
aWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51
bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVz
dCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0
aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkg
b2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBz
dHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0
cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0g
cEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVl
LAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUg
YmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSBy
ZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVy
ZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBk
ZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0clRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMu
OAorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdG9UaXRsZShVQ2Fz
ZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICBVQ2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2Fw
YWNpdHksCisgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyICpzcmMsIGludDMyX3Qgc3JjTGVu
Z3RoLAorICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlm
CisKKy8qKgorICogTG93ZXJjYXNlIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgor
ICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICog
VGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisg
KiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBv
dmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3Qu
CisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhl
IHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRo
ZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVu
dHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNp
dHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwg
dGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rp
b24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAg
ICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBw
YXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGgg
VGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBi
ZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBw
b2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNo
IG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisg
KiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwg
LSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBj
YXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVf
c3RyVG9Mb3dlcgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9F
WFBPUlQyCit1Y2FzZW1hcF91dGY4VG9Mb3dlcihjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAg
ICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAg
ICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogVXBwZXJj
YXNlIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICogQ2FzaW5nIGlzIGxvY2Fs
ZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGhlIHJlc3VsdCBtYXkgYmUg
bG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmlu
ZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBw
YXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gZGVzdCAg
ICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5V
TC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2Ug
ZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGlu
IGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhl
IGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAg
ICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVy
biB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3
cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhl
IG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUg
b3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4K
KyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9y
IGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRl
IGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5n
dGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEg
YnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3Jl
YXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9VcHBlcgorICogQHN0
YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91
dGY4VG9VcHBlcihjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICAgY2hh
ciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICBjb25z
dCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVy
cm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04K
KworLyoqCisgKiBUaXRsZWNhc2UgYSBVVEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxl
LWRlcGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaXRsZWNhc2luZyB1c2VzIGEg
YnJlYWsgaXRlcmF0b3IgdG8gZmluZCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiB3b3JkcworICog
dGhhdCBhcmUgdG8gYmUgdGl0bGVjYXNlZC4gSXQgdGl0bGVjYXNlcyB0aG9zZSBjaGFyYWN0ZXJz
IGFuZCBsb3dlcmNhc2VzCisgKiBhbGwgb3RoZXJzLiAoVGhpcyBjYW4gYmUgbW9kaWZpZWQgd2l0
aCB1Y2FzZW1hcF9zZXRPcHRpb25zKCkuKQorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gdGFr
ZXMgYSBub24tY29uc3QgVUNhc2VNYXAgcG9pbnRlciBiZWNhdXNlIGl0IHdpbGwKKyAqIG9wZW4g
YSBkZWZhdWx0IGJyZWFrIGl0ZXJhdG9yIGlmIG5vIGJyZWFrIGl0ZXJhdG9yIHdhcyBzZXQgeWV0
LAorICogYW5kIGVmZmVjdGl2ZWx5IGNhbGwgdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigpOwor
ICogYWxzbyBiZWNhdXNlIHRoZSBicmVhayBpdGVyYXRvciBpcyBzdGF0ZWZ1bCBhbmQgd2lsbCBi
ZSBtb2RpZmllZCBkdXJpbmcKKyAqIHRoZSBpdGVyYXRpb24uCisgKgorICogVGhlIHRpdGxlY2Fz
ZSBicmVhayBpdGVyYXRvciBjYW4gYmUgcHJvdmlkZWQgdG8gY3VzdG9taXplIGZvciBhcmJpdHJh
cnkKKyAqIHN0eWxlcywgdXNpbmcgcnVsZXMgYW5kIGRpY3Rpb25hcmllcyBiZXlvbmQgdGhlIHN0
YW5kYXJkIGl0ZXJhdG9ycy4KKyAqIFRoZSBzdGFuZGFyZCB0aXRsZWNhc2UgaXRlcmF0b3IgZm9y
IHRoZSByb290IGxvY2FsZSBpbXBsZW1lbnRzIHRoZQorICogYWxnb3JpdGhtIG9mIFVuaWNvZGUg
VFIgMjEuCisgKgorICogVGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHNldFVUZXh0KCksIGZp
cnN0KCksIG5leHQoKSBhbmQgY2xvc2UoKSBtZXRob2RzIG9mIHRoZQorICogcHJvdmlkZWQgYnJl
YWsgaXRlcmF0b3IuCisgKgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIg
dGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0
aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNh
c2VNYXAgc2VydmljZSBvYmplY3QuIFRoaXMgcG9pbnRlciBpcyBub24tY29uc3QhCisgKiAgICAg
ICAgICAgICAgICAgIFNlZSB0aGUgbm90ZSBhYm92ZSBmb3IgZGV0YWlscy4KKyAqIEBwYXJhbSBk
ZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwg
YmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBs
YXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmlu
ZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBv
ZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAg
ICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkg
cmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRo
b3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAg
ICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9m
IHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5h
dGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4g
ZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5k
aWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhl
IGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ug
b2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBi
ZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1RpdGxlCisg
KiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19C
UkVBS19BREpVU1RNRU5UCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJf
dCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhUb1RpdGxlKFVDYXNlTWFwICpjc20sCisgICAgICAg
ICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCisKKy8qKgorICog
Q2FzZS1mb2xkcyB0aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmluZy4KKyAqCisgKiBDYXNl
LWZvbGRpbmcgaXMgbG9jYWxlLWluZGVwZW5kZW50IGFuZCBub3QgY29udGV4dC1zZW5zaXRpdmUs
CisgKiBidXQgdGhlcmUgaXMgYW4gb3B0aW9uIGZvciB3aGV0aGVyIHRvIGluY2x1ZGUgb3IgZXhj
bHVkZSBtYXBwaW5ncyBmb3IgZG90dGVkIEkKKyAqIGFuZCBkb3RsZXNzIGkgdGhhdCBhcmUgbWFy
a2VkIHdpdGggJ1QnIGluIENhc2VGb2xkaW5nLnR4dC4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBi
ZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3Ry
aW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICog
QHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0
ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUg
TlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJn
ZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQg
aW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0
aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAg
ICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0
dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0
IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBU
aGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRo
ZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVk
LgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJy
b3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNh
dGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxl
bmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2Yg
YSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBn
cmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJGb2xkQ2FzZQorICog
QHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25zCisgKiBAc2VlIFVfRk9MRF9DQVNFX0RFRkFVTFQKKyAq
IEBzZWUgVV9GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKKyAqIEBzdGFibGUgSUNVIDMuOAor
ICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOEZvbGRDYXNlKGNv
bnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50
MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3Jj
LCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3VjaHJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmQ1YTk5MGY3YjdlZDNkNWJhY2YyZGE4NDcxZWY4ZmY5NDIyZjk5YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0ZXIuaApAQCAtMCwwICsxLDM4MSBA
QAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJu
YXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBB
bGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBVQ0hSSVRF
Ul9ICisjZGVmaW5lIFVDSFJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisj
aW5jbHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgorCisvKioKKyAqIFxmaWxlIAorICogXGJyaWVm
IEMrKyBBUEk6IFVDaGFyIENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVTUEFDRV9C
RUdJTgorCisvKioKKyAqIEEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ2hhcmFjdGVySXRlcmF0b3Ig
dGhhdCBpdGVyYXRlcyBvdmVyIHRoZQorICogY2hhcmFjdGVycyAoY29kZSB1bml0cyBvciBjb2Rl
IHBvaW50cykgaW4gYSBVQ2hhciBhcnJheS4KKyAqIEl0J3MgcG9zc2libGUgbm90IG9ubHkgdG8g
Y3JlYXRlIGFuCisgKiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgYW4gZW50aXJlIFVDaGFy
IGFycmF5LCBidXQgYWxzbyB0bworICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25s
eSBhIHN1YnJhbmdlIG9mIGEgVUNoYXIgYXJyYXkKKyAqIChpdGVyYXRvcnMgb3ZlciBkaWZmZXJl
bnQgc3VicmFuZ2VzIG9mIHRoZSBzYW1lIFVDaGFyIGFycmF5IGRvbid0CisgKiBjb21wYXJlIGVx
dWFsKS4KKyAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzZWUgRm9yd2FyZENoYXJhY3Rl
ckl0ZXJhdG9yCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIFVD
aGFyQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGlj
OgorICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJl
ZmVycmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRv
IDxjb2RlPmxlbmd0aC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBh
ZG9wdGVkICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBA
cGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIgYXJyYXkgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBA
cGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4
dFB0ciwgaW50MzJfdCBsZW5ndGgpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Ig
b3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUg
aXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNvZGU+bGVuZ3RoLTE8L2NvZGU+LgorICAgKiB0ZXh0
IGlzIG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwg
bm90IGRlbGV0ZSBpdCkuCisgICAqIFRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVj
aWZpZWQgYnkgInBvc2l0aW9uIi4gSWYgInBvc2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAor
ICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRl
ZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRk
IG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQor
ICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRp
b24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9y
KGNvbnN0IFVDaGFyKiB0ZXh0UHRyLCBpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJh
dG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICog
VGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmVuZC0xPC9jb2RlPi4KKyAgICogdGV4
dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxs
IG5vdCBkZWxldGUgaXQpLgorICAgKiBUaGUgc3RhcnRpbmcKKyAgICogcG9zaXRpb24gaXMgc3Bl
Y2lmaWVkIGJ5ICJwb3NpdGlvbiIuIElmIGJlZ2luIGFuZCBlbmQgZG8gbm90CisgICAqIGZvcm0g
YSB2YWxpZCBpdGVyYXRpb24gcmFuZ2Ugb3IgInBvc2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxp
ZAorICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1
bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVy
YXRlZCBvdmVyCisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIgYXJy
YXkKKyAgICogQHBhcmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBvc2l0aW9uIG9mIHRoZSBpdGVy
YXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiB0
aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSBwb3NpdGlvbiAgICBUaGUgc3RhcnRpbmcg
cG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVu
Z3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGV4dEJlZ2luLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGV4dEVuZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogQ29weSBjb25zdHJ1Y3Rvci4g
IFRoZSBuZXcgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSByYW5nZQorICAgKiBvZiB0
aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRpYWwgcG9zaXRpb24gaXMgdGhl
CisgICAqIHNhbWUgYXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICogQHBhcmFtIHRo
YXQgVGhlIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhckNoYXJh
Y3Rlckl0ZXJhdG9yJiAgdGhhdCk7CisKKyAgLyoqCisgICAqIERlc3RydWN0b3IuCisgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB+VUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigp
OworCisgIC8qKgorICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgKnRoaXMgaXMgYWx0ZXJlZCB0
byBpdGVyYXRlIG92ZXIgdGhlIHNhbmUKKyAgICogcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFz
ICJ0aGF0IiwgYW5kIHJlZmVycyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgd2l0aGluIHRo
YXQgc3RyaW5nIGFzICJ0aGF0IiBkb2VzLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgb2JqZWN0IHRv
IGJlIGNvcGllZAorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdAorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImCisgIG9wZXJh
dG9yPShjb25zdCBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yJiAgICB0aGF0KTsKKworICAvKioKKyAg
ICogUmV0dXJucyB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJh
bmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1l
IGNoYXJhY3Rlci4KKyAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRv
ciB1c2VkIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgKiBAcmV0dXJuIHRydWUgaWYg
dGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNh
bWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgICAgb3BlcmF0b3I9
PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0OworCisgIC8qKgor
ICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgaXRlcmF0b3IuCisgICAqIEByZXR1
cm4gdGhlIGhhc2ggY29kZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFs
IGludDMyX3QgICAgICAgICBoYXNoQ29kZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogUmV0
dXJucyBhIG5ldyBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgc2FtZQor
ICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzIHRo
aXMgb25lLiAgVGhlCisgICAqIGNhbGxlciBtdXN0IGRlbGV0ZSB0aGUgbmV3IGl0ZXJhdG9yLgor
ICAgKiBAcmV0dXJuIHRoZSBDaGFyYWN0ZXJJdGVyYXRvciBuZXdseSBjcmVhdGVkCisgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUo
dm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRv
IHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJl
dHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4g
aXRlcmF0aW9uIHdpdGggbmV4dCgpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQg
aW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2
aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3Qodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0
ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1vdmVzIHRoZSBwb3Np
dGlvbgorICAgKiB0byB0aGUgc2Vjb25kIGNvZGUgdW5pdC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2
ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dFBv
c3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRp
b24gcmFuZ2UKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAg
ICAgICAgZmlyc3RQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRv
ciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9u
IHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwKKyAgICogVGhpcyBjYW4gYmUgdXNl
ZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzIoKS4KKyAgICogTm90ZSB0aGF0IGFu
IGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKSwgYmVnaW5uaW5nIHdpdGgsCisgICAqIGUu
Zy4sIHNldFRvU3RhcnQoKSBvciBmaXJzdFBvc3RJbmMoKSwgaXMgbW9yZSBlZmZpY2llbnQuCisg
ICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZQor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJz
dDMyKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0
aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5z
IHRoYXQgY29kZSBwb2ludCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgKiB0byB0aGUgc2Vj
b25kIGNvZGUgcG9pbnQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisg
ICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICogQHJl
dHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyUG9z
dEluYyh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8g
dGhlIGxhc3QgY29kZSB1bml0IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1
cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0
ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkuCisgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSB1bml0
IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
dmlydHVhbCBVQ2hhciAgICAgICAgIGxhc3Qodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0
ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2Fu
IGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMzMigpLgorICAgKiBA
cmV0dXJuIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMyKHZv
aWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgInBv
c2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhl
IGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAqIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisg
ICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LXN0b3JhZ2Ug
b2JqZWN0CisgICAqIEByZXR1cm4gdGhlIGNvZGUgdW5pdAorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBzZXRJbmRleChpbnQzMl90IHBvc2l0aW9u
KTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lu
bmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgKiB0aGF0IGNvbnRhaW5zIHRoZSAicG9zaXRpb24i
LXRoIGNvZGUgdW5pdAorICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0
b3IgcmVmZXJzIHRvLCBhbmQKKyAgICogcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisgICAqIFRo
ZSBjdXJyZW50IHBvc2l0aW9uIGlzIGFkanVzdGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNv
ZGUgcG9pbnQKKyAgICogKGl0cyBmaXJzdCBjb2RlIHVuaXQpLgorICAgKiBAcGFyYW0gcG9zaXRp
b24gdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgKiBAcmV0
dXJuIHRoZSBjb2RlIHVuaXQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFs
IFVDaGFyMzIgICAgICAgc2V0SW5kZXgzMihpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAg
ICogUmV0dXJucyB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRv
LgorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZl
cnMgdG8uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAg
ICAgIGN1cnJlbnQodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgdGhlIGNvZGUg
cG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEByZXR1cm4gdGhl
IGNvZGUgcG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGN1cnJlbnQzMih2b2lk
KSBjb25zdDsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5kIHJldHVy
bnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgdW5p
dCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0KHZvaWQpOworCisgIC8qKgorICAgKiBHZXRzIHRo
ZSBjdXJyZW50IGNvZGUgdW5pdCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4
dCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiAodG93YXJkIGVu
ZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1
cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHRQ
b3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBv
aW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5k
IHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29k
ZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIE5vdGUgdGhhdCBpdGVyYXRp
b24gd2l0aCAicHJlLWluY3JlbWVudCIgc2VtYW50aWNzIGlzIGxlc3MKKyAgICogZWZmaWNpZW50
IHRoYW4gaXRlcmF0aW9uIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1hbnRpY3MKKyAgICogdGhh
dCBpcyBwcm92aWRlZCBieSBuZXh0MzJQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIG5leHQg
Y29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzIodm9pZCk7CisKKyAgLyoqCisg
ICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSBwb2ludCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNl
cyB0byB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAg
ICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgKiBubyBtb3JlIGNvZGUg
cG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50
IHBvaW50LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAg
ICAgICBuZXh0MzJQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlm
IHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYXQgb3Ig
YWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICog
VGhpcyBpcyB1c2VkIHdpdGggbmV4dFBvc3RJbmMoKSBvciBuZXh0MzJQb3N0SW5jKCkgaW4gZm9y
d2FyZAorICAgKiBpdGVyYXRpb24uCisgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5v
IG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBhdCBvciBhZnRlciB0aGUgY3Vy
cmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc05leHQoKTsKKworICAvKioKKyAg
ICogQWR2YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJh
bmdlICh0b3dhcmQKKyAgICogc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVu
aXQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0
dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0
ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVD
aGFyICAgICAgICAgcHJldmlvdXModm9pZCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRo
ZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAg
KiBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBh
cmUgbm8gbW9yZQorICAgKiBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAg
ICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBw
cmV2aW91czMyKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFy
ZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYmVmb3JlIHRoZSBjdXJy
ZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIFRoaXMgaXMgdXNlZCB3
aXRoIHByZXZpb3VzKCkgb3IgcHJldmlvdXMzMigpIGluIGJhY2t3YXJkCisgICAqIGl0ZXJhdGlv
bi4KKyAgICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9y
IGNvZGUgcG9pbnRzCisgICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJv
b2wgICAgICAgIGhhc1ByZXZpb3VzKCk7CisKKyAgLyoqCisgICAqIE1vdmVzIHRoZSBjdXJyZW50
IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAqIGl0ZXJh
dGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgor
ICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSB1bml0cyBm
b3J3YXJkCisgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdh
dGl2ZSBkZWx0YS4KKyAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBv
cmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICogYSBuZWdhdGl2ZSBk
ZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRp
b24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlv
bgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1v
dmUoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pOworCisgIC8qKgorICAgKiBNb3ZlcyB0
aGUgY3VycmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQor
ICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9u
IGl0c2VsZi4KKyAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNv
ZGUgcG9pbnRzIGZvcndhcmQKKyAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0
aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJl
bGF0aXZlIHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgKiBh
IG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdp
biBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICogQHJldHVybiB0aGUg
bmV3IHBvc2l0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBpbnQz
Ml90ICAgICAgbW92ZTMyKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKTsKKworICAvKioK
KyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIGEgbmV3IHJhbmdlIG9mIHRl
eHQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVUNo
YXIqIG5ld1RleHQsIGludDMyX3QgbmV3VGV4dExlbmd0aCk7CisKKyAgLyoqCisgICAqIENvcGll
cyB0aGUgVUNoYXIgYXJyYXkgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcK
KyAgICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICBFdmVuIGlmIHRoaXMgaXRlcmF0b3IgaXRl
cmF0ZXMgYWNyb3NzCisgICAqIG9ubHkgYSBwYXJ0IG9mIHRoaXMgc3RyaW5nLCB0aGUgd2hvbGUg
c3RyaW5nIGlzIGNvcGllZC4KKyAgICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2Yg
dGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0cmluZyYgcmVzdWx0KTsK
KworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MgKG5vdCByZWFs
bHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MKKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBzdGF0aWMgVUNsYXNzSUQgICAgICAgICBVX0VYUE9S
VDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3Mg
SUQgZm9yIHRoaXMgb2JqZWN0IChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNs
YXNzIElEIGZvciB0aGlzIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2
aXJ0dWFsIFVDbGFzc0lEICAgICAgICBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKwor
cHJvdGVjdGVkOgorICAvKioKKyAgICogUHJvdGVjdGVkIGNvbnN0cnVjdG9yCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigpOworICAvKioKKyAg
ICogUHJvdGVjdGVkIG1lbWJlciB0ZXh0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
Y29uc3QgVUNoYXIqICAgICAgICAgICAgdGV4dDsKKworfTsKKworVV9OQU1FU1BBQ0VfRU5ECisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaCBiL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWU0NjYzMGQ1Mzk4ZDgyNzM4
ZDFkNjFmZmM0ZDJjOTE0ZThjNjhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3Uv
dW5pY29kZS91ZGF0YS5oCkBAIC0wLDAgKzEsNDMwIEBACisvKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5l
c3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVkYXRhLmgK
KyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQor
KiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0MjUKKyogICBjcmVh
dGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBfX1VEQVRBX0hfXworI2Rl
ZmluZSBfX1VEQVRBX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRl
ICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCitVX0NERUNMX0JFR0lOCisKKy8qKgorICogXGZp
bGUKKyAqIFxicmllZiBDIEFQSTogRGF0YSBsb2FkaW5nIGludGVyZmFjZQorICoKKyAqIDxoMj5J
bmZvcm1hdGlvbiBhYm91dCBkYXRhIGxvYWRpbmcgaW50ZXJmYWNlPC9oMj4KKyAqCisgKiBUaGlz
IEFQSSBpcyB1c2VkIHRvIGZpbmQgYW5kIGVmZmljaWVudGx5IGxvYWQgZGF0YSBmb3IgSUNVIGFu
ZCBhcHBsaWNhdGlvbnMKKyAqIHVzaW5nIElDVS4gSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50
ZXJmYWNlIHRoYXQgc3BlY2lmaWVzIGEgZGF0YSB0eXBlIGFuZAorICogbmFtZSB0byBmaW5kIGFu
ZCBsb2FkIHRoZSBkYXRhLiBOb3JtYWxseSB0aGlzIEFQSSBpcyB1c2VkIGJ5IG90aGVyIElDVSBB
UElzCisgKiB0byBsb2FkIHJlcXVpcmVkIGRhdGEgb3V0IG9mIHRoZSBJQ1UgZGF0YSBsaWJyYXJ5
LCBidXQgaXQgY2FuIGJlIHVzZWQgdG8KKyAqIGxvYWQgZGF0YSBvdXQgb2Ygb3RoZXIgcGxhY2Vz
LgorICoKKyAqIFNlZSB0aGUgVXNlciBHdWlkZSBEYXRhIE1hbmFnZW1lbnQgY2hhcHRlci4KKyAq
LworIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisvKioKKyAqIENoYXJhY3RlciB1c2Vk
IHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAorICogQGludGVybmFs
IElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SICctJworCisvKioKKyAqIFN0
cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAorICog
QGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SX1NUUklORyAi
LSIKKworLyoqCisgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYXJ0cyBvZiBlbnRyeSBu
YW1lcworICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfRU5UUllfU0VQ
X0NIQVIgJy8nCisKKy8qKgorICogU3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgcGFydHMgb2YgZW50
cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX0VOVFJZ
X1NFUF9TVFJJTkcgIi8iCisKKy8qKgorICogQWxpYXMgZm9yIHN0YW5kYXJkIElDVSBkYXRhIAor
ICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX0lDVURBVEFfQUxJQVMgIklDVURB
VEEiCisKKyNlbmRpZiAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKy8qKgorICogVURhdGFJ
bmZvIGNvbnRhaW5zIHRoZSBwcm9wZXJ0aWVzIGFib3V0IHRoZSByZXF1ZXN0ZWQgZGF0YS4KKyAq
IFRoaXMgaXMgbWV0YSBkYXRhLgorICoKKyAqIDxwPlRoaXMgc3RydWN0dXJlIG1heSBncm93IGlu
IHRoZSBmdXR1cmUsIGluZGljYXRlZCBieSB0aGUKKyAqIDxjb2RlPnNpemU8L2NvZGU+IGZpZWxk
LjwvcD4KKyAqCisgKiA8cD5JQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5k
IHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogVGhlIFVEYXRhSW5mbyBzdHJ1Y3QgYmVnaW5zIDQg
Ynl0ZXMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIHRoZSBkYXRhIGl0ZW0sCisgKiBzbyBpdCBpcyA0LWFs
aWduZWQuCisgKgorICogPHA+VGhlIHBsYXRmb3JtIGRhdGEgcHJvcGVydHkgZmllbGRzIGhlbHAg
ZGV0ZXJtaW5lIGlmIGEgZGF0YQorICogZmlsZSBjYW4gYmUgZWZmaWNpZW50bHkgdXNlZCBvbiBh
IGdpdmVuIG1hY2hpbmUuCisgKiBUaGUgcGFydGljdWxhciBmaWVsZHMgYXJlIG9mIGltcG9ydGFu
Y2Ugb25seSBpZiB0aGUgZGF0YQorICogaXMgYWZmZWN0ZWQgYnkgdGhlIHByb3BlcnRpZXMgLSBp
ZiB0aGVyZSBpcyBpbnRlZ2VyIGRhdGEKKyAqIHdpdGggd29yZCBzaXplcyA+IDEgYnl0ZSwgY2hh
ciogdGV4dCwgb3IgVUNoYXIqIHRleHQuPC9wPgorICoKKyAqIDxwPlRoZSBpbXBsZW1lbnRhdGlv
biBmb3IgdGhlIDxjb2RlPnVkYXRhX29wZW5bQ2hvaWNlXSgpPC9jb2RlPgorICogZnVuY3Rpb25z
IG1heSByZWplY3QgZGF0YSBiYXNlZCBvbiB0aGUgdmFsdWUgaW4gPGNvZGU+aXNCaWdFbmRpYW48
L2NvZGU+LgorICogTm8gb3RoZXIgZmllbGQgaXMgdXNlZCBieSB0aGUgPGNvZGU+dWRhdGE8L2Nv
ZGU+IEFQSSBpbXBsZW1lbnRhdGlvbi48L3A+CisgKgorICogPHA+VGhlIDxjb2RlPmRhdGFGb3Jt
YXQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIGlkZW50aWZ5CisgKiB0aGUga2luZCBvZiBkYXRhLCBl
LmcuIGEgY29udmVydGVyIHRhYmxlLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+Zm9ybWF0VmVy
c2lvbjwvY29kZT4gZmllbGQgc2hvdWxkIGJlIHVzZWQgdG8KKyAqIG1ha2Ugc3VyZSB0aGF0IHRo
ZSBmb3JtYXQgY2FuIGJlIGludGVycHJldGVkLgorICogSXQgbWF5IGJlIGEgZ29vZCBpZGVhIHRv
IGNoZWNrIG9ubHkgZm9yIHRoZSBvbmUgb3IgdHdvIGhpZ2hlc3QKKyAqIG9mIHRoZSB2ZXJzaW9u
IGVsZW1lbnRzIHRvIGFsbG93IHRoZSBkYXRhIG1lbW9yeSB0bworICogZ2V0IG1vcmUgb3Igc29t
ZXdoYXQgcmVhcnJhbmdlZCBjb250ZW50cywgZm9yIGFzIGxvbmcKKyAqIGFzIHRoZSB1c2luZyBj
b2RlIGNhbiBzdGlsbCBpbnRlcnByZXQgdGhlIG9sZGVyIGNvbnRlbnRzLjwvcD4KKyAqCisgKiA8
cD5UaGUgPGNvZGU+ZGF0YVZlcnNpb248L2NvZGU+IGZpZWxkIGlzIGludGVuZGVkIHRvIGJlIGEK
KyAqIGNvbW1vbiBwbGFjZSB0byBzdG9yZSB0aGUgc291cmNlIHZlcnNpb24gb2YgdGhlIGRhdGE7
CisgKiBmb3IgZGF0YSBmcm9tIHRoZSBVbmljb2RlIGNoYXJhY3RlciBkYXRhYmFzZSwgdGhpcyBj
b3VsZAorICogcmVmbGVjdCB0aGUgVW5pY29kZSB2ZXJzaW9uLjwvcD4KKyAqCisgKiBAc3RhYmxl
IElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIC8qKiBzaXplb2YoVURhdGFJbmZv
KQorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50MTZfdCBzaXplOworCisgICAg
LyoqIHVudXNlZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWlu
dDE2X3QgcmVzZXJ2ZWRXb3JkOworCisgICAgLyogcGxhdGZvcm0gZGF0YSBwcm9wZXJ0aWVzICov
CisgICAgLyoqIDAgZm9yIGxpdHRsZS1lbmRpYW4gbWFjaGluZSwgMSBmb3IgYmlnLWVuZGlhbgor
ICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50OF90IGlzQmlnRW5kaWFuOworCisg
ICAgLyoqIHNlZSBVX0NIQVJTRVRfRkFNSUxZIHZhbHVlcyBpbiB1dHlwZXMuaCAKKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGNoYXJzZXRGYW1pbHk7CisKKyAgICAvKiog
c2l6ZW9mKFVDaGFyKSwgb25lIG9mIHsgMSwgMiwgNCB9IAorICAgICAqICBAc3RhYmxlIElDVSAy
LjAqLworICAgIHVpbnQ4X3Qgc2l6ZW9mVUNoYXI7CisKKyAgICAvKiogdW51c2VkLCBzZXQgdG8g
MCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHJlc2VydmVkQnl0ZTsK
KworICAgIC8qKiBkYXRhIGZvcm1hdCBpZGVudGlmaWVyIAorICAgICAqICBAc3RhYmxlIElDVSAy
LjAqLworICAgIHVpbnQ4X3QgZGF0YUZvcm1hdFs0XTsKKworICAgIC8qKiB2ZXJzaW9uczogWzBd
IG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAqICBAc3RhYmxlIElD
VSAyLjAqLworICAgIHVpbnQ4X3QgZm9ybWF0VmVyc2lvbls0XTsKKworICAgIC8qKiB2ZXJzaW9u
czogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAqICBAc3Rh
YmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YVZlcnNpb25bNF07Cit9IFVEYXRhSW5mbzsK
KworLyogQVBJIGZvciByZWFkaW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKioKKyAqIEZvcndhcmQgZGVjbGFyYXRpb24g
b2YgdGhlIGRhdGEgbWVtb3J5IHR5cGUuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRl
ZiBzdHJ1Y3QgVURhdGFNZW1vcnkgVURhdGFNZW1vcnk7CisKKy8qKgorICogQ2FsbGJhY2sgZnVu
Y3Rpb24gZm9yIHVkYXRhX29wZW5DaG9pY2UoKS4KKyAqIEBwYXJhbSBjb250ZXh0IHBhcmFtZXRl
ciBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICogQHBhcmFt
IHR5cGUgVGhlIHR5cGUgb2YgdGhlIGRhdGEgYXMgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3Bl
bkNob2ljZSgpPC9jb2RlPi4KKyAqICAgICAgICAgICAgIEl0IG1heSBiZSA8Y29kZT5OVUxMPC9j
b2RlPi4KKyAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBpbnRv
IDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiBAcGFyYW0gcEluZm8gQSBwb2lu
dGVyIHRvIHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+IHN0cnVjdHVyZQorICogICAgICAgICAg
ICAgIG9mIGRhdGEgdGhhdCBoYXMgYmVlbiBsb2FkZWQgYW5kIHdpbGwgYmUgcmV0dXJuZWQKKyAq
ICAgICAgICAgICAgICBieSA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+IGlmIHRoaXMg
ZnVuY3Rpb24KKyAqICAgICAgICAgICAgICByZXR1cm5zIDxjb2RlPlRSVUU8L2NvZGU+LgorICog
QHJldHVybiBUUlVFIGlmIHRoZSBjdXJyZW50IGRhdGEgbWVtb3J5IGlzIGFjY2VwdGFibGUKKyAq
IEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIFVCb29sIFVfQ0FMTENPTlYKK1VEYXRhTWVt
b3J5SXNBY2NlcHRhYmxlKHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgVURhdGFJbmZvICpwSW5mbyk7CisKKworLyoqCisgKiBDb252ZW5pZW5jZSBmdW5j
dGlvbi4KKyAqIFRoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgYXMgPGNvZGU+dWRhdGFfb3Bl
bkNob2ljZTwvY29kZT4KKyAqIGV4Y2VwdCB0aGF0IGFueSBkYXRhIHRoYXQgbWF0Y2hlcyB0aGUg
dHlwZSBhbmQgbmFtZQorICogaXMgYXNzdW1lZCB0byBiZSBhY2NlcHRhYmxlLgorICogQHBhcmFt
IHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFzZW5hbWUgZm9yIHRo
ZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0u
CisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRhdGEuCisgKiBAcGFy
YW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxv
YWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBidW5kbGVzIGFyZSBs
b2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVyc2lvbiB0YWJsZXMg
d2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwv
Y29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0
aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIEFuIElDVSBVRXJyb3JD
b2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcmV0
dXJuIEEgcG9pbnRlciAoaGFuZGxlKSB0byBhIGRhdGEgbWVtb3J5IG9iamVjdCwgb3IgPGNvZGU+
TlVMTDwvY29kZT4KKyAqICAgICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzLiBDYWxsIDxjb2RlPnVk
YXRhX2dldE1lbW9yeSgpPC9jb2RlPgorICogICAgICAgICB0byBnZXQgYSBwb2ludGVyIHRvIHRo
ZSBhY3R1YWwgZGF0YS4KKyAqCisgKiBAc2VlIHVkYXRhX29wZW5DaG9pY2UKKyAqIEBzdGFibGUg
SUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRhdGFfb3Bl
bihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAor
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBEYXRhIGxvYWRp
bmcgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZmluZCBhbmQgbG9hZCBl
ZmZpY2llbnRseSBkYXRhIGZvcgorICogSUNVIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgSUNVLgor
ICogSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgYWxsb3dzIHRvIHNwZWNp
ZnkgYSBkYXRhCisgKiB0eXBlIGFuZCBuYW1lIHRvIGZpbmQgYW5kIGxvYWQgdGhlIGRhdGEuCisg
KgorICogPHA+VGhlIGltcGxlbWVudGF0aW9uIGRlcGVuZHMgb24gcGxhdGZvcm0gcHJvcGVydGll
cyBhbmQgdXNlciBwcmVmZXJlbmNlcworICogYW5kIG1heSBpbnZvbHZlIGxvYWRpbmcgc2hhcmVk
IGxpYnJhcmllcyAoRExMcyksIG1hcHBpbmcKKyAqIGZpbGVzIGludG8gbWVtb3J5LCBvciBmb3Bl
bigpL2ZyZWFkKCkgZmlsZXMuCisgKiBJdCBtYXkgYWxzbyBpbnZvbHZlIHVzaW5nIHN0YXRpYyBt
ZW1vcnkgb3IgZGF0YWJhc2UgcXVlcmllcyBldGMuCisgKiBTZXZlcmFsIG9yIGFsbCBkYXRhIGl0
ZW1zIG1heSBiZSBjb21iaW5lZCBpbnRvIG9uZSBlbnRpdHkKKyAqIChETEwsIG1lbW9yeS1tYXBw
YWJsZSBmaWxlKS48L3A+CisgKgorICogPHA+VGhlIGRhdGEgaXMgYWx3YXlzIHByZWNlZGVkIGJ5
IGEgaGVhZGVyIHRoYXQgaW5jbHVkZXMKKyAqIGEgPGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1
Y3R1cmUuCisgKiBUaGUgY2FsbGVyJ3MgPGNvZGU+aXNBY2NlcHRhYmxlKCk8L2NvZGU+IGZ1bmN0
aW9uIGlzIGNhbGxlZCB0byBtYWtlCisgKiBzdXJlIHRoYXQgdGhlIGRhdGEgaXMgdXNlZnVsLiBJ
dCBtYXkgYmUgY2FsbGVkIHNldmVyYWwgdGltZXMgaWYgaXQKKyAqIHJlamVjdHMgdGhlIGRhdGEg
YW5kIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgbG9jYXRpb24gd2l0aCBkYXRhCisgKiBtYXRjaGlu
ZyB0aGUgdHlwZSBhbmQgbmFtZS48L3A+CisgKgorICogPHA+SWYgPGNvZGU+cGF0aD09TlVMTDwv
Y29kZT4sIHRoZW4gSUNVIGRhdGEgaXMgbG9hZGVkLgorICogT3RoZXJ3aXNlLCBpdCBpcyBzZXBh
cmF0ZWQgaW50byBhIGJhc2VuYW1lIGFuZCBhIGJhc2VuYW1lLWxlc3MgZGlyZWN0b3J5IHN0cmlu
Zy4KKyAqIFRoZSBiYXNlbmFtZSBpcyB1c2VkIGFzIHRoZSBkYXRhIHBhY2thZ2UgbmFtZSwgYW5k
IHRoZSBkaXJlY3RvcnkgaXMKKyAqIGxvZ2ljYWxseSBwcmVwZW5kZWQgdG8gdGhlIElDVSBkYXRh
IGRpcmVjdG9yeSBzdHJpbmcuPC9wPgorICoKKyAqIDxwPkZvciBkZXRhaWxzIGFib3V0IElDVSBk
YXRhIGxvYWRpbmcgc2VlIHRoZSBVc2VyIEd1aWRlCisgKiBEYXRhIE1hbmFnZW1lbnQgY2hhcHRl
ci4gKGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL2ljdWRhdGEuaHRtbCk8L3A+Cisg
KgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFz
ZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUg
ZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRh
dGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBk
YXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBi
dW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVy
c2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUg
PGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0
IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBpc0FjY2VwdGFibGUg
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRoYXQgbG9hZGVkIGRhdGEKKyAqICAg
ICAgICAgICAgICAgICAgICAgaXMgdXNlZnVsIGZvciB0aGUgY2xpZW50IGNvZGUuIElmIGl0IHJl
dHVybnMgRkFMU0UKKyAqICAgICAgICAgICAgICAgICAgICAgZm9yIGFsbCBkYXRhIGl0ZW1zLCB0
aGVuIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4KKyAqICAgICAgICAgICAgICAgICAg
ICAgd2lsbCByZXR1cm4gd2l0aCBhbiBlcnJvci4KKyAqIEBwYXJhbSBjb250ZXh0IEFyYml0cmFy
eSBwYXJhbWV0ZXIgdG8gYmUgcGFzc2VkIGludG8gaXNBY2NlcHRhYmxlLgorICogQHBhcmFtIHBF
cnJvckNvZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJdCBtdXN0IG5vdCBiZSA8Y29k
ZT5OVUxMPC9jb2RlPi4KKyAqIEByZXR1cm4gQSBwb2ludGVyIChoYW5kbGUpIHRvIGEgZGF0YSBt
ZW1vcnkgb2JqZWN0LCBvciA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAgICBpZiBhbiBlcnJv
ciBvY2N1cnMuIENhbGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+CisgKiAgICAgICAg
IHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhLgorICogQHN0YWJsZSBJQ1UgMi4w
CisgKi8KK1VfU1RBQkxFIFVEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1ZGF0YV9vcGVuQ2hvaWNl
KGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisg
ICAgICAgICAgICAgICAgIFVEYXRhTWVtb3J5SXNBY2NlcHRhYmxlICppc0FjY2VwdGFibGUsIHZv
aWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwor
CisvKioKKyAqIENsb3NlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoaXMgZnVuY3Rpb24gbXVzdCBi
ZSBjYWxsZWQgdG8gYWxsb3cgdGhlIHN5c3RlbSB0bworICogcmVsZWFzZSByZXNvdXJjZXMgYXNz
b2NpYXRlZCB3aXRoIHRoaXMgZGF0YSBtZW1vcnkuCisgKiBAcGFyYW0gcERhdGEgVGhlIHBvaW50
ZXIgdG8gZGF0YSBtZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFC
TEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2Nsb3NlKFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKyNp
ZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFxj
bGFzcyBMb2NhbFVEYXRhTWVtb3J5UG9pbnRlcgorICogIlNtYXJ0IHBvaW50ZXIiIGNsYXNzLCBj
bG9zZXMgYSBVRGF0YU1lbW9yeSB2aWEgdWRhdGFfY2xvc2UoKS4KKyAqIEZvciBtb3N0IG1ldGhv
ZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKgorICogQHNlZSBMb2Nh
bFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0YWJsZSBJQ1UgNC40Cisg
Ki8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVEYXRhTWVtb3J5UG9pbnRlciwg
VURhdGFNZW1vcnksIHVkYXRhX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZgor
CisvKioKKyAqIEdldCB0aGUgcG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEgaW5zaWRlIHRoZSBk
YXRhIG1lbW9yeS4KKyAqIFRoZSBkYXRhIGlzIHJlYWQtb25seS4KKyAqCisgKiBJQ1UgZGF0YSBt
dXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICoK
KyAqIEBwYXJhbSBwRGF0YSBUaGUgcG9pbnRlciB0byBkYXRhIG1lbW9yeSBvYmplY3QKKyAqIEBz
dGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBjb25zdCB2b2lkICogVV9FWFBPUlQyCit1ZGF0
YV9nZXRNZW1vcnkoVURhdGFNZW1vcnkgKnBEYXRhKTsKKworLyoqCisgKiBHZXQgdGhlIGluZm9y
bWF0aW9uIGZyb20gdGhlIGRhdGEgbWVtb3J5IGhlYWRlci4KKyAqIFRoaXMgYWxsb3dzIHRvIGdl
dCBhY2Nlc3MgdG8gdGhlIGhlYWRlciBjb250YWluaW5nCisgKiBwbGF0Zm9ybSBkYXRhIHByb3Bl
cnRpZXMgZXRjLiB3aGljaCBpcyBub3QgcGFydCBvZgorICogdGhlIGRhdGEgaXRzZWxmIGFuZCBj
YW4gdGhlcmVmb3JlIG5vdCBiZSBhY2Nlc3NlZAorICogdmlhIHRoZSBwb2ludGVyIHRoYXQgPGNv
ZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+IHJldHVybnMuCisgKgorICogQHBhcmFtIHBEYXRh
IHBvaW50ZXIgdG8gdGhlIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHBhcmFtIHBJbmZvIHBvaW50
ZXIgdG8gYSBVRGF0YUluZm8gb2JqZWN0OworICogICAgICAgICAgICAgIGl0cyA8Y29kZT5zaXpl
PC9jb2RlPiBmaWVsZCBtdXN0IGJlIHNldCBjb3JyZWN0bHksCisgKiAgICAgICAgICAgICAgdHlw
aWNhbGx5IHRvIDxjb2RlPnNpemVvZihVRGF0YUluZm8pPC9jb2RlPi4KKyAqCisgKiA8Y29kZT4q
cEluZm88L2NvZGU+IHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIFVEYXRhSW5mbyBzdHJ1Y3R1cmUK
KyAqIGluIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QuIElmIHRoaXMgc3RydWN0dXJlIGlzIHNtYWxs
ZXIgdGhhbgorICogPGNvZGU+cEluZm8tPnNpemU8L2NvZGU+LCB0aGVuIHRoZSA8Y29kZT5zaXpl
PC9jb2RlPiB3aWxsIGJlCisgKiBhZGp1c3RlZCBhbmQgb25seSBwYXJ0IG9mIHRoZSBzdHJ1Y3R1
cmUgd2lsbCBiZSBmaWxsZWQuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgdm9p
ZCBVX0VYUE9SVDIKK3VkYXRhX2dldEluZm8oVURhdGFNZW1vcnkgKnBEYXRhLCBVRGF0YUluZm8g
KnBJbmZvKTsKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNV
IGRhdGEgbG9hZGluZyBwcm9jZXNzIGFuZAorICogYWxsb3dzIHlvdSB0byBmb3JjZSBJQ1UncyBz
eXN0ZW0gZGF0YSB0byBjb21lIG91dCBvZiBhIHVzZXItc3BlY2lmaWVkCisgKiBhcmVhIGluIG1l
bW9yeS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNo
b3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qu
b3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBpcyB0aGF0IG9mIHRo
ZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgYXMgaXMKKyAqIGdlbmVyYXRlZCBieSB0aGUgcGtnZGF0
YSB0b29sIHdpdGggbW9kZT1jb21tb24gb3IgbW9kZT1kbGwuCisgKiBZb3UgY2FuIHJlYWQgaW4g
YSB3aG9sZSBjb21tb24gbW9kZSBmaWxlIGFuZCBwYXNzIHRoZSBhZGRyZXNzIHRvIHRoZSBzdGFy
dCBvZiB0aGUKKyAqIGRhdGEsIG9yICh3aXRoIHRoZSBhcHByb3ByaWF0ZSBsaW5rIG9wdGlvbnMp
IHBhc3MgaW4gdGhlIHBvaW50ZXIgdG8KKyAqIHRoZSBkYXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVk
IGZyb20gYSBkbGwgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0sCisgKiBhcyBzaG93biBpbiB0aGlz
IGNvZGU6CisgKgorICogICAgICAgZXh0ZXJuIGNvbnN0IGNoYXIgVV9JTVBPUlQgVV9JQ1VEQVRB
X0VOVFJZX1BPSU5UIFtdOworICogICAgICAgIC8vIFVfSUNVREFUQV9FTlRSWV9QT0lOVCBpcyBz
YW1lIGFzIGVudHJ5IHBvaW50IHNwZWNpZmllZCB0byBwa2dkYXRhIHRvb2wKKyAqICAgICAgIFVF
cnJvckNvZGUgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAqCisgKiAgICAgICB1ZGF0YV9zZXRD
b21tb25EYXRhKCZVX0lDVURBVEFfRU5UUllfUE9JTlQsICZzdGF0dXMpOworICoKKyAqIEl0IGlz
IGltcG9ydGFudCB0aGF0IHRoZSBkZWNsYXJhdGlvbiBiZSBhcyBhYm92ZS4gVGhlIGVudHJ5IHBv
aW50CisgKiBtdXN0IG5vdCBiZSBkZWNsYXJlZCBhcyBhbiBleHRlcm4gdm9pZCouCisgKgorICog
U3RhcnRpbmcgd2l0aCBJQ1UgNC40LCBpdCBpcyBwb3NzaWJsZSB0byBzZXQgc2V2ZXJhbCBkYXRh
IHBhY2thZ2VzLAorICogb25lIHBlciBjYWxsIHRvIHRoaXMgZnVuY3Rpb24uCisgKiB1ZGF0YV9v
cGVuKCkgd2lsbCBsb29rIGZvciBkYXRhIGluIHRoZSBtdWx0aXBsZSBkYXRhIHBhY2thZ2VzIGlu
IHRoZSBvcmRlcgorICogaW4gd2hpY2ggdGhleSB3ZXJlIHNldC4KKyAqIFRoZSBwb3NpdGlvbiBv
ZiB0aGUgbGlua2VkLWluIG9yIGRlZmF1bHQtbmFtZSBJQ1UgLmRhdGEgcGFja2FnZSBpbiB0aGUK
KyAqIHNlYXJjaCBsaXN0IGRlcGVuZHMgb24gd2hlbiB0aGUgZmlyc3QgZGF0YSBpdGVtIGlzIGxv
YWRlZCB0aGF0IGlzIG5vdCBjb250YWluZWQKKyAqIGluIHRoZSBhbHJlYWR5IGV4cGxpY2l0bHkg
c2V0IHBhY2thZ2VzLgorICogSWYgZGF0YSB3YXMgbG9hZGVkIGltcGxpY2l0bHkgYmVmb3JlIHRo
ZSBmaXJzdCBjYWxsIHRvIHRoaXMgZnVuY3Rpb24KKyAqIChmb3IgZXhhbXBsZSwgdmlhIG9wZW5p
bmcgYSBjb252ZXJ0ZXIsIGNvbnN0cnVjdGluZyBhIFVuaWNvZGVTdHJpbmcKKyAqIGZyb20gZGVm
YXVsdC1jb2RlcGFnZSBkYXRhLCB1c2luZyBmb3JtYXR0aW5nIG9yIGNvbGxhdGlvbiBBUElzLCBl
dGMuKSwKKyAqIHRoZW4gdGhlIGRlZmF1bHQgZGF0YSB3aWxsIGJlIGZpcnN0IGluIHRoZSBsaXN0
LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVjdCBvbiBhcHBsaWNhdGlvbiAobm9u
IElDVSkgZGF0YS4gIFNlZSB1ZGF0YV9zZXRBcHBEYXRhKCkKKyAqIGZvciBzaW1pbGFyIGZ1bmN0
aW9uYWxpdHkgZm9yIGFwcGxpY2F0aW9uIGRhdGEuCisgKgorICogQHBhcmFtIGRhdGEgcG9pbnRl
ciB0byBJQ1UgY29tbW9uIGRhdGEKKyAqIEBwYXJhbSBlcnIgb3V0Z29pbmcgZXJyb3Igc3RhdHVz
IDxjb2RlPlVfVVNJTkdfREVGQVVMVF9XQVJOSU5HLCBVX1VOU1VQUE9SVEVEX0VSUk9SPC9jb2Rl
PgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0
YV9zZXRDb21tb25EYXRhKGNvbnN0IHZvaWQgKmRhdGEsIFVFcnJvckNvZGUgKmVycik7CisKKwor
LyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNVIGRhdGEgbG9hZGlu
ZyBwcm9jZXNzIGZvciBhcHBsaWNhdGlvbi1zcGVjaWZpYworICogZGF0YSBhbmQgYWxsb3dzIHlv
dSB0byBmb3JjZSB0aGUgaXQgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNpZmllZAorICogcG9p
bnRlci4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNo
b3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qu
b3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBpcyB0aGF0IG9mIHRo
ZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgbGlrZSAnaWN1ZHQyNmwuZGF0JworICogb3IgdGhlIGNv
cnJlc3BvbmRpbmcgc2hhcmVkIGxpYnJhcnkgKERMTCkgZmlsZS4KKyAqIFRoZSBhcHBsaWNhdGlv
biBtdXN0IHJlYWQgaW4gb3Igb3RoZXJ3aXNlIGNvbnN0cnVjdCBhbiBpbWFnZSBvZiB0aGUgZGF0
YSBhbmQgdGhlbgorICogcGFzcyB0aGUgYWRkcmVzcyBvZiBpdCB0byB0aGlzIGZ1bmN0aW9uLgor
ICoKKyAqCisgKiBXYXJuaW5nOiAgc2V0QXBwRGF0YSB3aWxsIHNldCBhIFVfVVNJTkdfREVGQVVM
VF9XQVJOSU5HIGNvZGUgaWYKKyAqICAgICAgICAgICBkYXRhIHdpdGggdGhlIHNwZWNpZmVkIHBh
dGggdGhhdCBoYXMgYWxyZWFkeSBiZWVuIG9wZW5lZCwgb3IKKyAqICAgICAgICAgICBpZiBzZXRB
cHBEYXRhIHdpdGggdGhlIHNhbWUgcGF0aCBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZC4KKyAqICAg
ICAgICAgICBBbnkgc3VjaCBjYWxscyB0byBzZXRBcHBEYXRhIHdpbGwgaGF2ZSBubyBlZmZlY3Qu
CisgKgorICoKKyAqIEBwYXJhbSBwYWNrYWdlTmFtZSB0aGUgcGFja2FnZSBuYW1lIGJ5IHdoaWNo
IHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZmVyCisgKiAgICAgICAgICAgICB0byAob3BlbikgdGhp
cyBkYXRhCisgKiBAcGFyYW0gZGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhCisgKiBAcGFyYW0gZXJy
IG91dGdvaW5nIGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9V
TlNVUFBPUlRFRF9FUlJPUjwvY29kZT4KKyAqIEBzZWUgdWRhdGFfc2V0Q29tbW9uRGF0YQorICog
QHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRB
cHBEYXRhKGNvbnN0IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25zdCB2b2lkICpkYXRhLCBVRXJyb3JD
b2RlICplcnIpOworCisvKioKKyAqIFBvc3NpYmxlIHNldHRpbmdzIGZvciB1ZGF0YV9zZXRGaWxl
QWNjZXNzKCkKKyAqIEBzZWUgdWRhdGFfc2V0RmlsZUFjY2VzcworICogQHN0YWJsZSBJQ1UgMy40
CisgKi8KK3R5cGVkZWYgZW51bSBVRGF0YUZpbGVBY2Nlc3MgeworICAgIC8qKiBJQ1UgbG9va3Mg
Zm9yIGRhdGEgaW4gc2luZ2xlIGZpbGVzIGZpcnN0LCB0aGVuIGluIHBhY2thZ2VzLiAoZGVmYXVs
dCkgQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRVNfRklSU1QsCisgICAgLyoqIEFu
IGFsaWFzIGZvciB0aGUgZGVmYXVsdCBhY2Nlc3MgbW9kZS4gQHN0YWJsZSBJQ1UgMy40ICovCisg
ICAgVURBVEFfREVGQVVMVF9BQ0NFU1MgPSBVREFUQV9GSUxFU19GSVJTVCwKKyAgICAvKiogSUNV
IG9ubHkgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzLCBub3QgZnJvbSBzaW5nbGUgZmlsZXMuIEBz
dGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX09OTFlfUEFDS0FHRVMsCisgICAgLyoqIElDVSBs
b2FkcyBkYXRhIGZyb20gcGFja2FnZXMgZmlyc3QsIGFuZCBvbmx5IGZyb20gc2luZ2xlIGZpbGVz
CisgICAgICAgIGlmIHRoZSBkYXRhIGNhbm5vdCBiZSBmb3VuZCBpbiBhIHBhY2thZ2UuIEBzdGFi
bGUgSUNVIDMuNCAqLworICAgIFVEQVRBX1BBQ0tBR0VTX0ZJUlNULAorICAgIC8qKiBJQ1UgZG9l
cyBub3QgYWNjZXNzIHRoZSBmaWxlIHN5c3RlbSBmb3IgZGF0YSBsb2FkaW5nLiBAc3RhYmxlIElD
VSAzLjQgKi8KKyAgICBVREFUQV9OT19GSUxFUywKKyAgICAvKiogTnVtYmVyIG9mIHJlYWwgVURh
dGFGaWxlQWNjZXNzIHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRV9B
Q0NFU1NfQ09VTlQKK30gVURhdGFGaWxlQWNjZXNzOworCisvKioKKyAqIFRoaXMgZnVuY3Rpb24g
bWF5IGJlIGNhbGxlZCB0byBjb250cm9sIGhvdyBJQ1UgbG9hZHMgZGF0YS4gSXQgbXVzdCBiZSBj
YWxsZWQKKyAqIGJlZm9yZSBhbnkgSUNVIGRhdGEgaXMgbG9hZGVkLCBpbmNsdWRpbmcgYXBwbGlj
YXRpb24gZGF0YSBsb2FkZWQgd2l0aCAKKyAqIHVyZXMvUmVzb3VyY2VCdW5kbGUgb3IgdWRhdGEg
QVBJcy4gVGhpcyBmdW5jdGlvbiBpcyBub3QgbXVsdGl0aHJlYWQgc2FmZS4gIAorICogVGhlIHJl
c3VsdHMgb2YgY2FsbGluZyBpdCB3aGlsZSBvdGhlciB0aHJlYWRzIGFyZSBsb2FkaW5nIGRhdGEg
YXJlIHVuZGVmaW5lZC4KKyAqIEBwYXJhbSBhY2Nlc3MgVGhlIHR5cGUgb2YgZmlsZSBhY2Nlc3Mg
dG8gYmUgdXNlZAorICogQHBhcmFtIHN0YXR1cyBFcnJvciBjb2RlLgorICogQHNlZSBVRGF0YUZp
bGVBY2Nlc3MKKyAqIEBzdGFibGUgSUNVIDMuNCAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9S
VDIKK3VkYXRhX3NldEZpbGVBY2Nlc3MoVURhdGFGaWxlQWNjZXNzIGFjY2VzcywgVUVycm9yQ29k
ZSAqc3RhdHVzKTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL2ljdS91bmljb2RlL3VtaXNjLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDg1NDUxZmM3NjdjMDU4MzVmNmMxNWY1NjZmMzU2MmUyZDRhZjgzNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1pc2MuaApAQCAtMCwwICsx
LDYwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA2LCBJ
bnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVy
cy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAg
dW1pc2MuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90
IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDE5OTlvY3QxNQor
KiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisjaWZuZGVmIFVNSVNDX0gK
KyNkZWZpbmUgVU1JU0NfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworLyoqCisg
KiBcZmlsZQorICogXGJyaWVmICBDIEFQSTptaXNjIGRlZmluaXRpb25zIAorICoKKyAqICBUaGlz
IGZpbGUgY29udGFpbnMgbWlzY2VsbGFuZW91cyBkZWZpbml0aW9ucyBmb3IgdGhlIEMgQVBJcy4g
CisgKi8KKworVV9DREVDTF9CRUdJTgorCisvKiogQSBzdHJ1Y3QgcmVwcmVzZW50aW5nIGEgcmFu
Z2Ugb2YgdGV4dCBjb250YWluaW5nIGEgc3BlY2lmaWMgZmllbGQgCisgKiAgQHN0YWJsZSBJQ1Ug
Mi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IFVGaWVsZFBvc2l0aW9uIHsKKyAgLyoqCisgICAqIFRo
ZSBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90IGZpZWxkOwor
ICAvKioKKyAgICogVGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHJhbmdlIGNvbnRhaW5pbmcgZmllbGQg
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBiZWdpbkluZGV4OworICAv
KiogCisgICAqIFRoZSBsaW1pdCBvZiB0aGUgdGV4dCByYW5nZSBjb250YWluaW5nIGZpZWxkIAor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgZW5kSW5kZXg7Cit9IFVGaWVs
ZFBvc2l0aW9uOworCisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorLyoqCisgKiBPcGFxdWUgdHlw
ZSByZXR1cm5lZCBieSByZWdpc3Rlckluc3RhbmNlLCByZWdpc3RlckZhY3RvcnkgYW5kIHVucmVn
aXN0ZXIgZm9yIHNlcnZpY2UgcmVnaXN0cmF0aW9uLgorICogQHN0YWJsZSBJQ1UgMi42CisgKi8K
K3R5cGVkZWYgY29uc3Qgdm9pZCogVVJlZ2lzdHJ5S2V5OworI2VuZGlmCisKK1VfQ0RFQ0xfRU5E
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjAyY2Y0
NDRhYjE2ZDRkYzI1YmI3MzA0Njc3YzY2NDRkNjZiZDNmMQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTAsMCArMSw4NyBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
IDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKKyMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisjIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKK0JSRUFLSU5HX1JVTEVTX0ZJTEVTID0gXAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Q0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdE5vbkNKSy5icmsKKworQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlMgPSBc
CisgICAgQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIFwKKyAg
ICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIFwKKyAgICBCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgXAorICAgIEJyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcAorCithbGwg
OiAkKEJSRUFLSU5HX1JVTEVTX0ZJTEVTKSAkKEJSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TKQor
CitCcmVha2luZ1J1bGVzLyUuYnJrIDogJS5wcAorCS4vV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvZ2VuYnJrIC1jIC1yICQ8IC1vICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLmNwcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKwllY2hvICIjaW5jbHVkZSBcImNvbmZpZy5oXCIiID4g
JEAKKwllY2hvICIjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+IiA+PiAkQAorCWVjaG8gIiNk
ZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkiID4+
ICRACisJZWNobyAiI2RlZmluZSBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTICgoVV9JQ1VfVkVS
U0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpKSIg
Pj4gJEAKKwllY2hvICJuYW1lc3BhY2UgV1RGIHsiID4+ICRACisJZWNobyAiY29uc3QgY2hhciog
Y3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzID0gIiA+PiAkQAorCXNlZCAncy9eIyAuKi8vJyAk
PCA+IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50bXAKKwlzZWQgJ3MvXlwoLipcKTsvIlwx
OyIvJyBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudG1wID4gQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzMi50bXAKKwlzZWQgJ3MvICMgLyBcL1wvIC8nIEN1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlczIudG1wID4gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnRtcAorCXNlZCAncy9c
XC9cXFxcL2cnIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50bXAgPj4gJEAKKwllY2hvICI7
IiA+PiAkQAorCWVjaG8gIn0iID4+ICRACisJcm0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LnRtcCBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMyLnRtcAorCitCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yJS5jcHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvciUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisJZWNobyAiI2luY2x1ZGUgXCJjb25maWcuaFwiIiA+
ICRACisJZWNobyAiI2luY2x1ZGUgPHVuaWNvZGUvdXZlcm51bS5oPiIgPj4gJEAKKwllY2hvICIj
ZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkpIiA+
PiAkQAorCWVjaG8gIiNkZWZpbmUgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyAoKFVfSUNVX1ZF
UlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KSki
ID4+ICRACisJZWNobyAibmFtZXNwYWNlIFdURiB7IiA+PiAkQAorCWVjaG8gImNvbnN0IGNoYXIq
IGxpbmVCcmVha0l0ZXJhdG9yJCpSdWxlcyA9ICIgPj4gJEAKKwljYXQgJD8gfCBzZWQgJ3MvXlwo
LipcKTsvIlwxOyIvJyA+ICQqLnRtcAorCXNlZCAncy8gIyAvIFwvXC8gLycgJCoudG1wID4gJCoy
LnRtcAorCXNlZCAncy9cXC9cXFxcL2cnICQqMi50bXAgPj4gJEAKKwllY2hvICI7IiA+PiAkQAor
CWVjaG8gIn0iID4+ICRACisJcm0gJCoudG1wICQqMi50bXAKKworQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
PSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9
JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQCAkPAorCitMaW5lQnJlYWtJdGVyYXRv
ciUucHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclBy
b2xvZ3VlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
ciUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBp
bG9ndWUudHh0CisJLWNhdCAkPyB8IHVuaWZkZWYgLURBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9
JChBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQpIC1ESEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUz0k
KEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRACmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxZmFkODQ3MTAwMTQ5M2Q3YmY0YjZlYTZkNTI5ODA4ODBk
MDI1OGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApAQCAtMCwwICsxLDE1MSBAQAorIyBU
aGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBv
ZiBJQ1UgNTcKKyMgPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3Uv
dGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCisjIFRoZSBtYWpvciBkaWZm
ZXJlbmNlcyBmcm9tIHRoZSBvcmlnaW5hbCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6CisjICogUmVw
bGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAn
W1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1Ug
My44IG9yIGVhcmxpZXI7CisjICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3Ig
ZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOworIyAqIEFk
ZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciB2aXJhbWEg
c2lnbnMgb2YgSW5kaWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwgYW5kOwor
IyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUg
SmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCisjICogQWRkZWQgcnVs
ZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgorCiskQ1IgICAgICA9IFtccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gQ1J9XTsKKyRMRiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBMRn1dOworJENvbnRyb2wgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IENvbnRyb2x9XTsKKyRWb2ljZU1hcmtzID0gW1x1RkY5RVx1RkY5Rl07ICMgSmFwYW5lc2UgaGFs
Zi13aWR0aCBrYXRha2FuYSB2b2ljZWQgbWFya3MKKyRFeHRlbmQgID0gW1xwe0dyYXBoZW1lX0Ns
dXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1x1MEUzMCBcdTBFMzIgXHUwRTQ1
IFx1MEVCMCBcdTBFQjJdXTsKKyRTcGFjaW5nTWFyayA9IFtbXHB7R2VuZXJhbF9DYXRlZ29yeSA9
IFNwYWNpbmcgTWFya31dIC0gJEV4dGVuZF07CiskTCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gTH1dOworJFYgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IFZ9XTsKKyRUICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07CiskTFYg
ICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsKKyRMVlQgICAgID0gW1xw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVlR9XTsKKyRIaW4wICAgID0gW1x1MDkwNS1cdTA5
MzldOyAjIERldmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCiskSGluViAgICA9IFx1MDk0RDsgIyBE
ZXZhbmFnYXJpIFNpZ24gVmlyYW1hCiskSGluMSAgICA9IFtcdTA5MTUtXHUwOTM5XTsgIyBEZXZh
bmFnYXJpIExldHRlciBLYSwuLi4sSGEKKyRCZW4wICAgID0gW1x1MDk4NS1cdTA5QjldOyAjIEJl
bmdhbGkgTGV0dGVyIEEsLi4uLEhhCiskQmVuViAgICA9IFx1MDlDRDsgIyBCZW5nYWxpIFNpZ24g
VmlyYW1hCiskQmVuMSAgICA9IFtcdTA5OTUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBLYSwu
Li4sSGEKKyRQYW4wICAgID0gW1x1MEEwNS1cdTBBMzldOyAjIEd1cm11a2hpIExldHRlciBBLC4u
LixIYQorJFBhblYgICAgPSBcdTBBNEQ7ICMgR3VybXVraGkgU2lnbiBWaXJhbWEKKyRQYW4xICAg
ID0gW1x1MEExNS1cdTBBMzldOyAjIEd1cm11a2hpIExldHRlciBLYSwuLi4sSGEKKyRHdWowICAg
ID0gW1x1MEE4NS1cdTBBQjldOyAjIEd1amFyYXRpIExldHRlciBBLC4uLixIYQorJEd1alYgICAg
PSBcdTBBQ0Q7ICMgR3VqYXJhdGkgU2lnbiBWaXJhbWEKKyRHdWoxICAgID0gW1x1MEE5NS1cdTBB
QjldOyAjIEd1amFyYXRpIExldHRlciBLYSwuLi4sSGEKKyRPcmkwICAgID0gW1x1MEIwNS1cdTBC
MzldOyAjIE9yaXlhIExldHRlciBBLC4uLixIYQorJE9yaVYgICAgPSBcdTBCNEQ7ICMgT3JpeWEg
U2lnbiBWaXJhbWEKKyRPcmkxICAgID0gW1x1MEIxNS1cdTBCMzldOyAjIE9yaXlhIExldHRlciBL
YSwuLi4sSGEKKyRUZWwwICAgID0gW1x1MEMwNS1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgQSwu
Li4sSGEKKyRUZWxWICAgID0gXHUwQzREOyAjIFRlbHVndSBTaWduIFZpcmFtYQorJFRlbDEgICAg
PSBbXHUwQzE0LVx1MEMzOV07ICMgVGVsdWd1IExldHRlciBLYSwuLi4sSGEKKyRLYW4wICAgID0g
W1x1MEM4NS1cdTBDQjldOyAjIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCiskS2FuViAgICA9IFx1
MENDRDsgIyBLYW5uYWRhIFNpZ24gVmlyYW1hCiskS2FuMSAgICA9IFtcdTBDOTUtXHUwQ0I5XTsg
IyBLYW5uYWRhIExldHRlciBBLC4uLixIYQorJE1hbDAgICAgPSBbXHUwRDA1LVx1MEQzOV07ICMg
TWFsYXlhbGFtIExldHRlciBBLC4uLixIYSAKKyRNYWxWICAgID0gXHUwRDREOyAjIE1hbGF5YWxh
bSBTaWduIFZpcmFtYQorJE1hbDEgICAgPSBbXHUwRDE1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExl
dHRlciBBLC4uLixIYQorJFJJICAgICAgPSBbXFUwMDAxRjFFNi1cVTAwMDFGMUZGXTsgIyBFbW9q
aSByZWdpb25hbCBpbmRpY2F0b3JzCiskWldKICAgICA9IFx1MjAwRDsgIyBaZXJvIHdpZHRoIGpv
aW5lcgorJEVtb2ppVmFyID0gW1x1RkUwRl07ICMgRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVj
dG9yCisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFbW9qaUZvclNlcXMg
PSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1cVTAw
MDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAx
RjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0
NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3
IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBc
VTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUw
MDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAg
JEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBc
VTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUw
MDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAw
MUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFG
NDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5
NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYg
XFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4XSA7
ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZWxzZQorCisgICAg
JEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0OEJd
OyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZv
ck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAw
MUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFGM0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFG
NDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3
OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcg
XFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxV
MDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAj
IEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9q
aU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAwMDFGM0ZGXTsgIyBGaXR6cGF0cmljayBtb2RpZmllcnMK
KyEhY2hhaW47CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICEhUklOb0No
YWluOworCisjZW5kaWYKKworISFmb3J3YXJkOworJENSICRMRjsKKyRMICgkTCB8ICRWIHwgJExW
IHwgJExWVCk7CisoJExWIHwgJFYpICgkViB8ICRUKTsKKygkTFZUIHwgJFQpICRUOworCisjaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUkkgJFJJICRFeHRlbmQqIC8gJFJJOwor
ICAgICRSSSAkUkkgJEV4dGVuZCo7CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOwor
ICAgIFteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOworCisjZWxzZQorCisgICAgW14k
Q29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJFNwYWNp
bmdNYXJrOworICAgICRSSSAkUkkgLyAkUkk7CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRI
aW4wICRIaW5WICRIaW4xOyAjIERldmFuYWdhcmkgVmlyYW1hIChmb3J3YXJkKQorJEJlbjAgJEJl
blYgJEJlbjE7ICMgQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCiskUGFuMCAkUGFuViAkUGFuMTsg
IyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCiskR3VqMCAkR3VqViAkR3VqMTsgIyBHdWphcmF0
aSBWaXJhbWEgKGZvcndhcmQpCiskT3JpMCAkT3JpViAkT3JpMTsgIyBPcml5YSBWaXJhbWEgKGZv
cndhcmQpCiskVGVsMCAkVGVsViAkVGVsMTsgIyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQorJEth
bjAgJEthblYgJEthbjE7ICMgS2FubmFkYSBWaXJhbWEgKGZvcndhcmQpCiskTWFsMCAkTWFsViAk
TWFsMTsgIyBNYWxheWFsYW0gVmlyYW1hIChmb3J3YXJkKQorJFpXSiAkRW1vamlGb3JTZXFzOyAj
IERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2ppRm9yTW9kcyAkRW1vamlW
YXI/ICRFbW9qaU1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3Nz
aWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCish
IXJldmVyc2U7CiskTEYgJENSOworKCRMIHwgJFYgfCAkTFYgfCAkTFZUKSAkTDsKKygkViB8ICRU
KSAoJExWIHwgJFYpOworJFQgKCRMVlQgfCAkVCk7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQKKworICAgICRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRF
eHRlbmQqICRSSSAkUkk7CisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07Cisg
ICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisKKyNlbHNlCisKKyAgICAkRXh0
ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkU3BhY2luZ01hcmsgW14kQ29udHJv
bCAkQ1IgJExGXTsKKyAgICAkUkkgJFJJIC8gJFJJICRSSTsKKyAgICAkUkkgJFJJOworCisjZW5k
aWYKKworJEhpbjEgJEhpblYgJEhpbjA7ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQor
JEJlbjEgJEJlblYgJEJlbjA7ICMgQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQorJFBhbjEgJFBh
blYgJFBhbjA7ICMgR3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkKKyRHdWoxICRHdWpWICRHdWow
OyAjIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCiskT3JpMSAkT3JpViAkT3JpMDsgIyBHdWph
cmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJFRlbDEgJFRlbFYgJFRlbDA7ICMgVGVsdWd1IFZpcmFt
YSAoYmFja3dhcmQpCiskS2FuMSAkS2FuViAkS2FuMDsgIyBLYW5uYWRhIFZpcmFtYSAoYmFja3dh
cmQpCiskTWFsMSAkTWFsViAkTWFsMDsgIyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKKyRF
bW9qaUZvclNlcXMgJFpXSjsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRF
bW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiBy
ZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6
cGF0cmljayBtb2RpZmllcgorCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAh
IXNhZmVfcmV2ZXJzZTsKKyAgICAkUkkgJFJJKzsKKyAgICBbJEVtb2ppVmFyICRFbW9qaU1vZHNd
KyAkRW1vamlGb3JNb2RzOworICAgICEhc2FmZV9mb3J3YXJkOworICAgICRSSSAkUkkrOworICAg
ICRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7CisKKyNlbHNlCisKKyAgICBb
JEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOworICAgICRFbW9qaUZvck1vZHMg
WyRFbW9qaVZhciAkRW1vamlNb2RzXSs7CisgICAgISFzYWZlX3JldmVyc2U7CisgICAgISFzYWZl
X2ZvcndhcmQ7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0IGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjllMGM4YTUxYjNjMWNjMGI3MTZmMmEzODcyZmIzYjE4MTAwZDBlZmIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JFcGlsb2d1ZS50eHQKQEAgLTAsMCArMSwzNDcgQEAKKyRBSSA9IFs6TGluZUJyZWFrID0gQW1i
aWd1b3VzOl07CiskQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsKKyRCQSA9IFtbOkxp
bmVCcmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsKKyRCQiA9IFs6TGluZUJyZWFrID0g
QnJlYWtfQmVmb3JlOl07CiskQksgPSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOwor
JEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19Cb3RoOl07CiskQ0IgPSBbOkxpbmVCcmVhayA9IENv
bnRpbmdlbnRfQnJlYWs6XTsKKyRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246
XTsKKyRDTSA9IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsKKyRDUCA9IFs6TGluZUJy
ZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsKKyRDUiA9IFs6TGluZUJyZWFrID0gQ2FycmlhZ2Vf
UmV0dXJuOl07CiskRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0gJEVYX1NVQl07
CiskR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsKKworI2lmIEhBVkVfRVhUUkFfSUNVX05BTUVE
X1NFVFMKKworICAgICRITCA9IFs6TGluZUJyZWFrID0gSGVicmV3X0xldHRlcjpdOworCisjZWxz
ZQorCisgICAgJEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsKKworI2VuZGlmCisKKyRI
WSA9IFs6TGluZUJyZWFrID0gSHlwaGVuOl07CiskSDIgPSBbOkxpbmVCcmVhayA9IEgyOl07Cisk
SDMgPSBbOkxpbmVCcmVhayA9IEgzOl07CiskSUQgPSBbW1tbOkxpbmVCcmVhayA9IElkZW9ncmFw
aGljOl0gLSAkQ0pdICRJRF9BRERdIC0gJElEX1NVQl07CiskSU4gPSBbWzpMaW5lQnJlYWsgPSBJ
bnNlcGFyYWJsZTpdIC0gJElOX1NVQl07CiskSVMgPSBbWzpMaW5lQnJlYWsgPSBJbmZpeF9OdW1l
cmljOl0gLSAkSVNfU1VCXTsKKyRKTCA9IFs6TGluZUJyZWFrID0gSkw6XTsKKyRKViA9IFs6TGlu
ZUJyZWFrID0gSlY6XTsKKyRKVCA9IFs6TGluZUJyZWFrID0gSlQ6XTsKKyRMRiA9IFs6TGluZUJy
ZWFrID0gTGluZV9GZWVkOl07CiskTkwgPSBbOkxpbmVCcmVhayA9IE5leHRfTGluZTpdOworJE5T
ID0gW1tbWzpMaW5lQnJlYWsgPSBOb25zdGFydGVyOl0gLSAkQ0pdICROU19BRERdIC0gJE5TX1NV
Ql07CiskTlUgPSBbOkxpbmVCcmVhayA9IE51bWVyaWM6XTsKKyRPUCA9IFs6TGluZUJyZWFrID0g
T3Blbl9QdW5jdHVhdGlvbjpdOworJFBPID0gW1s6TGluZUJyZWFrID0gUG9zdGZpeF9OdW1lcmlj
Ol0gLSAkUE9fU1VCXTsKKyRQUiA9IFtbOkxpbmVCcmVhayA9IFByZWZpeF9OdW1lcmljOl0gLSAk
UFJfU1VCXTsKKyRRVSA9IFs6TGluZUJyZWFrID0gUXVvdGF0aW9uOl07CiskUkkgPSBbXFUwMDAx
RjFFNi1cVTAwMDFGMUZGXTsKKyRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07
CiskU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOworJFNQID0gWzpMaW5lQnJlYWsgPSBT
cGFjZTpdOworJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07CiskV0ogPSBbOkxp
bmVCcmVhayA9IFdvcmRfSm9pbmVyOl07CiskWFggPSBbOkxpbmVCcmVhayA9IFVua25vd246XTsK
KyRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpdOworJFpXSiA9IFx1MjAwRDsKKyRFbW9qaVZh
ciA9IFx1RkUwRjsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEVtb2pp
Rm9yU2VxcyA9IFtcdTI2NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUwMDAxRjMwOCBcVTAwMDFG
M0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAwMUYzRjMgXFUwMDAxRjQ0
MSBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDZGIFxVMDAwMUY0NzEg
XFUwMDAxRjQ3MyBcVTAwMDFGNDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MiBcVTAwMDFGNDg2LVxV
MDAwMUY0ODcgXFUwMDAxRjQ4QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTggXFUwMDAxRjY0NS1cVTAw
MDFGNjQ3IFxVMDAwMUY2NEIgXFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxVMDAwMUY2QTMgXFUwMDAx
RjZCNC1cVTAwMDFGNkI2XTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5j
ZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1MjcwRCBcVTAw
MDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxVMDAwMUYzQ0IgXFUwMDAx
RjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0
NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgz
IFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1NzUgXFUwMDAxRjU5MCBc
VTAwMDFGNTk1IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUw
MDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwIFxVMDAw
MUY5MThdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbHNl
CisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUw
MDAxRjQ4Ql07CisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBBLVx1MjcwQyBcVTAw
MDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0M3IFxVMDAwMUYzQ0EgXFUwMDAx
RjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0
NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgz
IFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1c
VTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUw
MDAxRjZCNiBcVTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlm
aWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYzRkZdOwor
JGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOworJEFMUGx1cyA9
IFskQUwgJEFJICRTQSAkU0cgJFhYXTsKKyRBTGNtID0gJEFMUGx1cyAkQ00qOworJEJBY20gPSAk
QkEgJENNKjsKKyRCQmNtID0gJEJCICRDTSo7CiskQjJjbSA9ICRCMiAkQ00qOworJENMY20gPSAk
Q0wgJENNKjsKKyRDUGNtID0gJENQICRDTSo7CiskRVhjbSA9ICRFWCAkQ00qOworJEdMY20gPSAk
R0wgJENNKjsKKyRITGNtID0gJEhMICRDTSo7CiskSFljbSA9ICRIWSAkQ00qOworJEgyY20gPSAk
SDIgJENNKjsKKyRIM2NtID0gJEgzICRDTSo7CiskSURjbSA9ICRJRCAkQ00qOworJElOY20gPSAk
SU4gJENNKjsKKyRJU2NtID0gJElTICRDTSo7CiskSkxjbSA9ICRKTCAkQ00qOworJEpWY20gPSAk
SlYgJENNKjsKKyRKVGNtID0gJEpUICRDTSo7CiskTlNjbSA9ICROUyAkQ00qOworJE5VY20gPSAk
TlUgJENNKjsKKyRPUGNtID0gJE9QICRDTSo7CiskUE9jbSA9ICRQTyAkQ00qOworJFBSY20gPSAk
UFIgJENNKjsKKyRRVWNtID0gJFFVICRDTSo7CiskUkljbSA9ICRSSSAkQ00qOworJFNZY20gPSAk
U1kgJENNKjsKKyRXSmNtID0gJFdKICRDTSo7CisKKyEhZm9yd2FyZDsKKyRDQU5fQ00gPSBbXiRT
UCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07CiskQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYg
JE5MICRaVyAkQ01dOworJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQ
XTsKKyRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRHTCAkT1Ag
JFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107CiskQUxfRk9MTE9XID0gWyRBTF9GT0xM
T1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsKKyRMQjRCcmVha3MgPSBbJEJLICRDUiAkTEYgJE5MXTsK
KyRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICROTF07CiskTEI4QnJlYWtzID0gWyRMQjRC
cmVha3MgJFpXXTsKKyRMQjhOb25CcmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOwor
JExCMThOb25CcmVha3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsKKyRMQjE4QnJlYWtzID0g
WyRMQjhCcmVha3MgJFNQXTsKKyRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENC
XTsKKyRBTFBsdXMgJENNKzsKKyRCQSAkQ00rOworJEJCICRDTSs7CiskQjIgJENNKzsKKyRDTCAk
Q00rOworJENQICRDTSs7CiskRVggJENNKzsKKyRHTCAkQ00rOworJEhMICRDTSs7CiskSFkgJENN
KzsKKyRIMiAkQ00rOworJEgzICRDTSs7CiskSUQgJENNKzsKKyRJTiAkQ00rOworJElTICRDTSs7
CiskSkwgJENNKzsKKyRKViAkQ00rOworJEpUICRDTSs7CiskTlMgJENNKzsKKyROVSAkQ00rOwor
JE9QICRDTSs7CiskUE8gJENNKzsKKyRQUiAkQ00rOworJFFVICRDTSs7CiskUkkgJENNKzsKKyRT
WSAkQ00rOworJFdKICRDTSs7CiskQ1IgJExGIHsxMDB9OworJExCNE5vbkJyZWFrcz8gJExCNEJy
ZWFrcyB7MTAwfTsKKyRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OworJENNKyAkTEI0QnJl
YWtzIHsxMDB9OworJExCNE5vbkJyZWFrcyBbJFNQICRaV107CiskQ0FOX0NNICRDTSogWyRTUCAk
WlddOworJENNKyBbJFNQICRaV107CiskRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9k
cz8gJFpXSiAkRW1vamlGb3JTZXFzOworJENBTl9DTSAkQ00rOworJENNKzsKKyRDQU5fQ00gJENN
KiAkV0pjbTsKKyRMQjhOb25CcmVha3MgJFdKY207CiskQ00rICRXSmNtOworJFdKY20gJENBTlRf
Q007CiskV0pjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FO
VF9DTTsKK1tbJExCOE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOworJENN
KyBHTGNtOworJExCOE5vbkJyZWFrcyAkQ0w7CiskQ0FOX0NNICRDTSogJENMOworJENNKyAkQ0w7
CiskTEI4Tm9uQnJlYWtzICRDUDsKKyRDQU5fQ00gJENNKiAkQ1A7CiskQ00rICRDUDsKKyRMQjhO
b25CcmVha3MgJEVYOworJENBTl9DTSAkQ00qICRFWDsKKyRDTSsgJEVYOworJExCOE5vbkJyZWFr
cyAkSVM7CiskQ0FOX0NNICRDTSogJElTOworJENNKyAkSVM7CiskTEI4Tm9uQnJlYWtzICRTWTsK
KyRDQU5fQ00gJENNKiAkU1k7CiskQ00rICRTWTsKKyRPUGNtICRTUCogJENBTl9DTSAkQ00qOwor
JE9QY20gJFNQKiAkQ0FOVF9DTTsKKyRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsKKyRRVWNt
ICRTUCogJE9QY207CisoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsKKyRCMmNtICRTUCogJEIy
Y207CiskTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOworJENNKyAkUVVjbTsKKyRRVWNtIC4/Owor
JFFVY20gJExCMThOb25CcmVha3MgJENNKjsKKyRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwg
JEhZY20gfCAkTlNjbSk7IAorJEJCY20gW14kQ0JdOworJEJCY20gJExCMjBOb25CcmVha3MgJENN
KjsKKyRITGNtICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OworJFNZY20gJEhMY207CisoJEFMY20g
fCAkSExjbSkgJElOY207CiskQ00rICRJTmNtOworJEVYY20gJElOY207CiskSURjbSAkSU5jbTsK
KyRJTmNtICRJTmNtOworJE5VY20gJElOY207CiskSURjbSAkUE9jbTsKKyRBTGNtICROVWNtOwor
JEhMY20gJE5VY207CiskQ00rICROVWNtOworJE5VY20gJEFMY207CiskTlVjbSAkSExjbTsKKyRQ
UmNtICRJRGNtOworJFBSY20gKCRBTGNtIHwgJEhMY20pOworJFBPY20gKCRBTGNtIHwgJEhMY20p
OworKCRQUmNtIHwgJFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNt
IHwgJElTY20pKiAoJENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87CiskSkxjbSAoJEpM
Y20gfCAkSlZjbSB8ICRIMmNtIHwgJEgzY20pOworKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRK
VGNtKTsKKygkSlRjbSB8ICRIM2NtKSAkSlRjbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAk
SDJjbSB8ICRIM2NtKSAkSU5jbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRI
M2NtKSAkUE9jbTsKKyRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2Nt
KTsKKygkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7CiskQ00rICgkQUxjbSB8ICRITGNt
KTsKKyRJU2NtICgkQUxjbSB8ICRITGNtKTsKKygkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNt
OworJENNKyAkT1BjbTsKKyRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOworCisjaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUkljbSAkUkljbTsKKworI2VuZGlmCisKKyRF
bW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOworCishIXJldmVyc2U7CiskQ00rICRB
TFBsdXM7CiskQ00rICRCQTsKKyRDTSsgJEJCOworJENNKyAkQjI7CiskQ00rICRDTDsKKyRDTSsg
JENQOworJENNKyAkRVg7CiskQ00rICRHTDsKKyRDTSsgJEhMOworJENNKyAkSFk7CiskQ00rICRI
MjsKKyRDTSsgJEgzOworJENNKyAkSUQ7CiskQ00rICRJTjsKKyRDTSsgJElTOworJENNKyAkSkw7
CiskQ00rICRKVjsKKyRDTSsgJEpUOworJENNKyAkTlM7CiskQ00rICROVTsKKyRDTSsgJE9QOwor
JENNKyAkUE87CiskQ00rICRQUjsKKyRDTSsgJFFVOworCisjaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCisKKyAgICAkQ00rICRSSTsKKworI2VuZGlmCisKKyRDTSsgJFNZOworJENNKyAkV0o7
CiskQ00rOworJEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8
ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0p
KTsKK1skUFJdIC8gJENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOworJExCNEJy
ZWFrcyBbJExCNE5vbkJyZWFrcy0kQ01dOworJExCNEJyZWFrcyAkQ00rICRDQU5fQ007CiskTEYg
JENSOworWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07CitbJFNQICRaV10gJENNKyAkQ0FO
X0NNOworJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZhcj8gJEVtb2ppRm9y
U2VxczsKKyRDTSsgJENBTl9DTTsKKyRDTSogJFdKICRDTSogJENBTl9DTTsKKyRDTSogJFdKIFsk
TEI4Tm9uQnJlYWtzLSRDTV07CiskQ0FOVF9DTSAkQ00qICRXSjsKKyRDTSogJENBTl9DTSAkQ00q
ICRXSjsKKyRDTSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOwor
JENBTlRfQ00gJENNKiAkR0w7CiskQ00qICRDQU5fQ00gJENNKiAkR0w7CiskQ0wgJENNKyAkQ0FO
X0NNOworJENQICRDTSsgJENBTl9DTTsKKyRFWCAkQ00rICRDQU5fQ007CiskSVMgJENNKyAkQ0FO
X0NNOworJFNZICRDTSsgJENBTl9DTTsKKyRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOworJENQIFsk
TEI4Tm9uQnJlYWtzLSRDTV07CiskRVggWyRMQjhOb25CcmVha3MtJENNXTsKKyRJUyBbJExCOE5v
bkJyZWFrcy0kQ01dOworJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07CitbJENMICRDUCAkRVggJElT
ICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAKKyRDTSogJENBTl9DTSAkU1AqICRDTSogJE9QOwor
JENBTlRfQ00gJFNQKiAkQ00qICRPUDsKKyRBTF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAk
T1A7CiskQUxfRk9MTE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9QOworJENNKiAkQUxfRk9MTE9X
X0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRTWSAkQ00gJFNQKyAkT1A7CiskQ00qICRPUCAkU1Aq
ICRDTSogJFFVOworJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOworJENNKiAkQjIgJFNQ
KiAkQ00qICRCMjsKKyRDTSogJFFVICRDTSogJENBTl9DTTsKKyRDTSogJFFVICRMQjE4Tm9uQnJl
YWtzOworJENNKiAkQ0FOX0NNICRDTSogJFFVOworJENBTlRfQ00gJENNKiAkUVU7CiskQ00qICgk
QkEgfCAkSFkgfCAkTlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV07CiskQ00qIFskTEIyME5v
bkJyZWFrcy0kQ01dICRDTSogJEJCOworW14kQ0JdICRDTSogJEJCOworW14kQ0JdICRDTSogKCRI
WSB8ICRCQSkgJENNKiAkSEw7CiskQ00qICRITCAkQ00qICRTWTsKKyRDTSogJElOICRDTSogKCRB
TFBsdXMgfCAkSEwpOworJENNKiAkSU4gJENNKiAkRVg7CiskQ00qICRJTiAkQ00qICRJRDsKKyRD
TSogJElOICRDTSogJElOOworJENNKiAkSU4gJENNKiAkTlU7CiskQ00qICRQTyAkQ00qICRJRDsK
KyRDTSogJE5VICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENN
KiAkTlU7CiskQ00qICRJRCAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBS
OworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87CisoJENNKiAoJFBSIHwgJFBPKSk/ICgk
Q00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRTWSkpKiAkQ00qICROVSAoJENN
KiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87CiskQ00qICgkSDMgfCAkSDIgfCAk
SlYgfCAkSkwpICRDTSogJEpMOworJENNKiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOwor
JENNKiAkSlQgJENNKiAoJEgzIHwgJEpUKTsKKyRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRK
VCB8ICRKViB8ICRKTCk7CiskQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAk
SkwpOworJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsKKyRDTSog
KCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRI
TCkgJENNKiAkSVM7CiskQ00qICRPUCAkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKTsKKyRDTSog
KCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOworCisjaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCisKKyAgICAkQ00qICRSSSAkQ00qICRSSTsKKworI2VuZGlmCisKKyRFbW9qaU1vZHMg
JEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOworCishIXNhZmVfZm9yd2FyZDsKK1skQ00gJE9QICRR
VSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnldKyBbXiRDTSAkT1AgJFFV
ICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsKKyRkaWN0aW9uYXJ5ICRkaWN0
aW9uYXJ5OworICAgIAorISFzYWZlX3JldmVyc2U7CiskQ00rIFteJENNICRCSyAkQ1IgJExGICRO
TCAkWlcgJFNQXTsKKyRDTSsgJFNQIC8gLjsKKyRTUCsgJENNKiAkT1A7CiskU1ArICRDTSogJFFV
OworJFNQKyAkQ00qICgkQ0wgfCAkQ1ApOworJFNQKyAkQ00qICRCMjsKKyRDTSogKCRIWSB8ICRC
QSkgJENNKiAkSEw7CisoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOworKCRDTCB8ICRDUCkg
JENNKiAoJE5VIHwgJElTIHwgJFNZKTsKKyRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
UHJvbG9ndWUudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yUHJvbG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxZjhhZDI1MWJmNTUyNWQyOTNmMzcy
MTI2NDU2MTYxMTUwYjYwZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKQEAgLTAsMCArMSwx
NSBAQAorISFjaGFpbjsKKyEhTEJDTU5vQ2hhaW47CishIWxvb2tBaGVhZEhhcmRCcmVhazsKKwor
CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkQ0ogPSBbOkxpbmVCcmVh
az1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOl07CisKKyNlbHNlCisKKyAgICAkQ0ogPSBb
XHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgzXHUzMDg1XHUzMDg3XHUz
MDhFXHUzMDk1XHUzMDk2XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3XHUzMEE5XHUzMEMzXHUzMEUz
XHUzMEU1XHUzMEU3XHUzMEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYwXHUzMUYxXHUzMUYyXHUz
MUYzXHUzMUY0XHUzMUY1XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUzMUZBXHUzMUZCXHUzMUZD
XHUzMUZEXHUzMUZFXHUzMUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZBXHVGRjZCXHVGRjZDXHVG
RjZEXHVGRjZFXHVGRjZGXHVGRjcwXTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
Sy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjRmMzZjOTAyMDY5ZjNhNmM1Y2Q4MDMzODU0OWZiMTk5YTAxOGFk
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0g
W1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0g
Jyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0g
Jyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOworJE5T
X0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wMTM0MTQ2MzU1NjY2YmQxODExZGNjODE3Njc1NzNkYTM0MGMwMDg0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZUNKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NVQiA9IFtcdTIwMTBc
dTIwMTNdOworJEVYX1NVQiA9IFtcdTAwMjFcdTAwM0ZcdUZGMDFcdUZGMUZdOworJElEX1NVQiA9
ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NVQiA9IFtcdTAwM0FcdTAwM0Jd
OworJE5TX1NVQiA9IFtcdTIwM0NcdTIwNDdcdTIwNDhcdTIwNDlcdTMwMDVcdTMwMUNcdTMwM0Jc
dTMwOURcdTMwOUVcdTMwQTBcdTMwRkJcdTMwRkRcdTMwRkVcdUZGMUFcdUZGMUJcdUZGNjVdOwor
JFBPX1NVQiA9IFtcdTAwMjVcdTAwQTJcdTAwQjBcdTIwMzBcdTIwMzJcdTIwMzNcdTIxMDNcdUZG
MDVcdUZGRTBdOworJFBSX1NVQiA9IFtcdTAwMjRcdTAwQTNcdTAwQTVcdTIwQUNcdTIxMTZcdUZG
MDRcdUZGRTFcdUZGRTVdOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIg
JElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2ODk2OTlk
OGQwZTRjMzY4MzRiMmZhZTI1OTMyNzc1N2EyNGQxM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7
CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gJyc7
CiskTlNfU1VCID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBGRFx1MzBGRV07CiskUE9f
U1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJd
OworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0IGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjE1OWZjZjBmOGE5OTIyMTIwZWJiMTFkZDVkYTQ0MTdmOTI2NzYyNzIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vbkNKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NVQiA9ICcnOworJEVY
X1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOwor
JE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcn
OworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0IGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmI0ZjM2YzkwMjA2OWYzYTZjNWNkODAzMzg1NDlmYjE5OWEwMThhZDMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NV
QiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElEX1NV
QiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBdOworJFBPX1NV
QiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsK
KyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNjM1NTllYjFlZDY0ZjI2M2Q4OWUxNjJkMzE3NzE5ODdjZGZjZmI0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRC
QV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsK
KyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAn
JzsKKyRJRF9BREQgPSBbJENKXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTlmY2YwZjhhOTkyMjEyMGViYjExZGQ1
ZGE0NDE3ZjkyNjc2MjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CkBAIC0wLDAg
KzEsMTAgQEAKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJ
Tl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsK
KyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTlmY2Yw
ZjhhOTkyMjEyMGViYjExZGQ1ZGE0NDE3ZjkyNjc2MjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAn
JzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIg
PSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19B
REQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9nZW5icmsgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrCm5ldyBm
aWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI1MGFhNWQ4ZWMwYTRhNWU2MjljYTJkMGE4NGQ4NjgyM2FkNGRmMTEKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDMxNDU2CnpjbWVIUGQzO3BXeSs0eiUjSVFfSVI5dn1ZTFhqb091IWM9
Q0Z1Xi1BZmYkSFZCQFVDQk5pdWFaR28xeSZMWXA+OAp6PHVaPU9EbE5+fllIQWchbWNJQn01JURS
YkVEPiFmOzhLKlR5dD8kcHBkIy16dFRPTldKTkx8Rj1Ben0oZSU/UVEKelp8PilGJmlRVFVjWWYh
MCo4N3tBe05kRTZYOXFINyRZcmNLaGNSe2AoJCljdHdYdGdlRj9KYn1qQVhaMG5ReTRMCnp3VzR8
dlE4T1B5Q2k7fmE9fjs7ZT9EaSFVT1A2R2RAY05+aEckd0deI2ArXnNOc3J3Z2NDUVI7dSFkKnE+
JG43Kwp6MGJAZ2ZDUFIzP0s1O150KF4wIVU2cHF3fFFZNXs3VyM3PkI0SGNiQzs+aWttTExYZWxB
NUVYVihkYFltZ1BgZDMKeiR6d0VxRkE5QnhsaXlSJUlyY1I7b3AkJDFyI2xkfmhhR2kjZVIqUndl
RjMzPkBDPHpeI1RzQ0BKNDR+MSRKWmR9CnpkVlM0OC14ST1WZ3MxeVl1TihVT3pFSXpRPT1HSkJY
IWEkQ20rKjliSWBpUEtpMEA5MSZ0Pj1jPml1QnFeKGAwcgp6SXomYW5eKXt2SnE8TURgelA4JmY8
fFhEZDRoLVQkQW0mTU96QT1IKmU4WmFIYkJ9Ny0/TE16UHc1cUFqQDNqWlEKeiFMUVlxUjdkKSNl
KTZJREYoSFlkd0EmbH1lT14xKXo1PilJYCFHSERMJTNjYXh9SkxNY0NYYGEqO2dqP0hTJGd+CnpN
dEhoRD5oSSl+SG5QWCUyc2A9K2RqRUJwSDJhbmRlVDR0KmFqZ3NXdCtJM2IlTyt8MV43QCswdXVu
OVQ7YFolSgp6SHRXSSM2JkM5ZiE3M055aWpxSH5KVWx9fnNoe2IoTWxzZTVTMT94Ml98Ty1pPjt4
SnxOJVcmQVNIZSteN1JDO3YKekJGKGlDTlArb2BlR0JELTNtSUZFITVzdiszVyotI1F5UGdoNEdD
VFErTllxQkZ+P1ZNaGtfO3s0TXItN2dufWhyCnpQaEUqP21EZEhGby0yXjNqZDJlWmBKTGFOQHs/
YX5gYFBqKDVBMU9sZj53YVUySWNkRjwocigrTTVYIUVPIWVOeQp6ekxAP3tKN3F9M3FkcWJOUyNJ
Y1M4fHswWDV2TT1zRTtiaiM1S2tSUmFyPyttZWYzclglZEY9ZEg/Ryh1PmdkfXMKejxpQ24obFBT
TT1SVmVJa0R4UkN4Mz55dXQpR3J4K3Ihe2Ulei1iKWx4ZUFIKnk5VlBfIzdXc0s+dyZCWHZMNDhL
CnpBblNwdzJlS1o+ZExaazh0T3YzbCRhKX5fZnZnQXFOankqXkQ8M1ZjUWNsYSFES31rLSpaPGg7
UzEpNEI2aiR4VAp6NypqaiYkfWNNfmYhZjJWdmEobTU0fkZ1LSs1Ozk8SHM0fnQqPDUyQHZSTUI5
ayooO29SWEh3NGAoSzZsa3NMK2MKemloVyVia0M4OHwoU2Zxa3w1TDxPPGsqbW5tb3Y3RkxRKDJ9
M18mYkJaZHwoQEZgI3cqNH16Wkd8NEhQPUhpYDswCnomJVQlZkZ+LSYpWFBiYnUjKk04bVY3Qk8j
ITtySEBDbTI5Jm87YH5NIS1NN00/OF5ZRCRCY31MbVFDQHB7eF5WVAp6aXghUWghZX17TSo4Z0B1
YV9wK3s3byN2KjQkODRMa0V2VHhDJVdkYnd1SkclQG59SS1la0xhcDM4NilmT31QaWMKekhzIWNZ
ZDhRbjZicUlJUDQhUH0rdjkkIzlycnZFNypeJUwjMD92QTA5ZzVQYj5eQWs5NGlOYnk4bkRMWj1V
WkZPCnpfUjN2ZFA/Q18xbF8lOGk1TUFsd0Y+OU5XdXFucjY8IXlCcnNKN2B4amNwJTY/WSFPbnJn
N0QpSyRULVA5ZGZNbAp6RzAwayFVVWRYVyF0T15RWUV2RWBMej4mLUhzeTQ5aTByS0YwM2FKKXZ0
R0I/cm8yRzUlZHlCfnZlS25+aCVsSHsKeioob1ktPGRydjxMY2oqP1dWS0VDM3J3antqO2gtczNi
fmVxKGIlPmdmalokOU9LaGI8UkAleD9YRitWJTlKUH5jCnorKHE/SypRUmBDUUJEYUJZY3ZoeS1Y
JX1+d3o/RH54UERVdytVbTZfcEh3UUolaDREcVElX0BKJFgjdHEwbUc/bQp6YHpCT1Qma3w3fm14
bkokQTIhTGNeJn4qUEFwZ0Qmd3BEcUxjZ0dncE9nJU47Y05QX2AoRSlPX2A0dCtTKmZVRSYKeiN4
TiVLcTM3blByTGRwVWUqblUzbjNuJV9EYV8oTW0hbUltQTRiPTZaJCNUQENhQ1d0bCFvU295V1dO
Mz16N3dJCnp3ciRHQ1lSM2huZypeTWR4KVh1V1h3NzQ3MmFOWH1mIXhlQ2t+Nm1UaGxebmhIRDhz
NztaeUh8JHV7TTRISGNDegp6cVZDMEpaeHt+dkJNel9HcUBGLVg0PWRfNW55RlkoR2J7RVArYkQh
K2lwJF5NTmh8SSleRD1YLWBGNjl0Yl9lOTEKejsmTE9AX28qNSEtNl5CN2JofCZHekRJfHxJQ3VL
LWdZcEp6YmEpckkyZTYjNit+PWRZP0okKDdwUFd1NE9iUFZeCno2aX5OfVNJQzFeZG07R1pMYFpE
b1YkKUw8cDNAe0pMZWRzM3dNSXYoJlEja2E3bXt7I1M2MUZwe3x2SSQjOz4oTAp6Q0QyaGhTX1Vn
N0wjfTVTK0I9ZFcmRSE/KD16Nn1gSGQwLTxGcmZ5dXg7d2J3Mj16RTMhJipQRCloYTBPJWdVP2oK
ejNQQHBgUkVzOVBVUCRsWihsMUEyRztKKT13cSs+THtIU0RBXj9GZm51dlZ7RClWbntgJUItWClF
VGclaGt8ZWVDCno0big/LWU5NjV3SUBKcUpUPlQ0fUI9aWdrZVhhPV5RYk9pclNHbUlIQStzSHQ2
WUFZMHtkLTdiNTIwbkU5em9DPAp6JlF6PHdQO1dzLTQ5dkV9cCFkQW5qdDhAJUVmS3omaXIoPDA+
eGB7PyFveTdRPUlkRUZwTFQwP0RKcz9PczRxNS0Kell7Z0omVFI3RGlQfUBDSFc3WDQ+JCZYREwz
ayVnTkElSTs0bj1IMURGVkpNQ3Aobj1fSCpTZzc/I1IlbTlGPiltCnp2aHg3biY+JnBmZUc8fmZr
cnZWM3glezRWZXJALUUxRmNWIUtTMnt7Y1d3N1pxTXVgNVpURUB7YFAlTj84VGpIVgp6U3ZqcCVn
UWolSiU2b0ZsJmItQGR5QntUKWM1O2ZXb1JGMnslM0hHWGEmNVBYJGghVj5KfnY8LT1qIS0kMVpy
KHUKejRMMEJKUXp5WHlQLXVrdWFaWj1qRFVPMkF1dmJ7MW11JTcyWmVNP0V5QmA4cSEjZlEkSXp+
UXI+cDthPnhqdFNDCnptKyRENCRGZ3w9aXhheTs/R0UwYlgjWnopYDEqOFF5LSFwMHBmKz9nWkJo
QF9QZTBQal8/aHNVUmU4Jip7TUQqcAp6T1Nzc35iekxZY0hUeDx8QU0pZXhETSRmc25hUGF6SnAj
RDB0PUhLNDImUnxadyNWNHxWKnV1TDFMKStBNT4xSjEKeiFrbzQjWkNnPW4jfVVjWUNSXyV2OWFw
d303K3ooSFNFOT87bkJ3TjxJVl5rYD9VRn5xb0A/QTxEQChNVEVIU1FzCnokKyVeWTtUMFNeb218
Z3hic3pZJjNGTzl6UXJZJXR4QnsmWlk7SW5JWWU2WSh1fV9ndWx2OEVyOUArM3hrSk9iKgp6ZGxA
WTY/Z3I0Nk9UUylxPyoqOFdkcjYqNm57RHUtdTNWaDV7THAkSFFyKjlWNVNoNyU4KStwWTdqUHJF
Tz4qcG8KemVRMTBlUmtiTispdmMlXlIyc0xtNCozSWtFaGtGQ20rZnZITFVKVzJfb0hNejE5IUko
MGpFSF5mP29DOFAoYTw5CnpzUCQoWV9OOyV3Kj1kVkNsaCkzMF4rdCReTXNaRX5PcjFnUCMtO0BM
RzBRY29ocDx+P2lkSEk8Mzs4Rz1wazc1Ywp6KH08WGomKF5ZKjlzTWR5ODBIc2ZhQUB2Yk9ydWJz
SGJHVFBIcEdeVkZqJFB3b3tZXmk3OUdYT2pCYChKKl9+SCEKelJ4RXxjeURXd0k/fGZxJCZQbCNj
NEx5VSNxTyVJMnhkdyNLKUd5SWAxKGFTeVI1fCgjSEcmKDBgVnJ7JEVndStoCnpNRSNrSmpiNENG
SmJjU21uakZfMUcoTEx9SiZpLXcpTjU3I18jOUVpblBTNmxnUVV4Kl54fWtoNzswP0ZzaCtGcAp6
YSZad0BVQWJmbVAxRVFRQzhiIU5TK2cmNHV9d0xRNk88LSsrNmslfVEwcl5mX2tVc2o8RUJFbGp+
aSsxRTI2bj0KekAkYiNDTSgxIzlCME9JRzZiNmA7LTV7eFIoUlhaP2Q3MjQ1ZEdOc3ZkRkphbD99
dyt6JlYoQWtyeHpDTmhKQ3cwCnojYD9wKXJMRFo8Ul48IzkqWV9OX3FgWlVrcmg/OD8rXil7enMl
WFZrYVgkSDMqJWg1aGJFSz4tQHg5NWA9byYwTwp6RUY8KyttXyhUUkd5b1ZoS3JASncmWW1QWUsz
NyRFRExORE5qRzhJdzdtOGJQKEElUDgpTyNWTDlraGs4ZkRISD8KelZecGFldHlFNmhsPmIhd3Ap
Yip5Pmd5MkdgQT0+K1FjJTcmIWVgU1phJiEqYUg1Mz02Z20jblloN29BQ2ZEUkc8CnpOPHM0Vk81
YGxick9UaD95UT0hIVNJSH1wR2tXbmVkPlgzaighfFIoe21eQDEra3gqNjZ9STUpYjMtV0FLSHZZ
QQp6RUgqMmNZLWVhb3h8N2RWKWJnMkkmSzloZXY4Mkt7MyVCdkRZYj5nb1c0OWt8SWJFPU50U3ZW
Q1ImZV54NTMwJUsKelhkNmhKemBFWjdOI3BuYVZzODFeU2tjenwtN0MyNipwekVnJjd2SG1zWXFB
Mz8kO3JrTTBEcGhQOCtMJlhfeUYpCnpsY09WUEkkcW15RGlJayhILXB7JCNwUHg2JmQ2YDJ5Kk9R
SnlNTUApLUNuemNwTGUxQC1VKDIzdGMtfmpFK2hyewp6cSttUE5nRl5Majg9R21zM3hLQTxsRzJi
bURtYWlhVW9taUhSXnw3eTY0fFAoKzQoJX10dTJXaDwyfVBeOCswREMKeiN3c0xQc2QkQW1PITRR
NEZEc1J1LU9tQ3RqJSlfWHRTd3pSI3d7PGtvUnw8PChyS1gwKSE0Y2k/NncwKyVeUWA8Cno1dTRK
cSRAfklJOHQpfU4qNjhGeXk2UDByYUB2NyphNnE7YEsjQ0godFN2am9SOElmdj5PPFo0THNDMDBF
d0tmTAp6TzZOO2xvZ0Elc2cpWSFnNzJwPEYwQilJSy0xNWNydnpUfl54Wkx2YzdgJWI0ey1uRHEk
KExpcG57QmJlSD5wfnMKejtmUyR5RG1kb2RtTiFRayU8Qyp+VWVnKmt1ZnJTQ1EoIypZVTlFZWZI
RSU/SVdRdXBNQ0hifXdqamFQOXphVkRXCnpqNVVSeD82Jk5waW5kK1g7RyRNUyMjdkBvP3AkLTMp
d3k0ZU16K2UpO2NwcVlPbCZ6akEjIVErVD9RNSYjKGlUagp6d3IrPCR2K3tPTmYyKj0mU0RyTyRE
PWZmUzhAfCRsOVY1RUJhMEs/eyNEMDNRe3g9QWs7eE1CcCZsQ3EyNU5WRkMKeipfcWZle3EqV04r
JWh5aXV1QHQ1Vz9zKXp5blU+PyVCP3A+MmppZU1RUjQ7OHRJJjhwdHtwOFc0M1crcmkmZTJmCnpj
eGA+Vj8wbjRAb3djXyQ5PVgoUCsla35IWkxvUldCMTd2UVZfV0gyWX1qJEE+YTsxZF9SNUt1czcy
I0Y3bDVxMQp6KXt9R21rYTdefnpBU0NgbTd9JHRKPkFDLV4/Wn5sSSkmcGpRRk1tcVhMLShXWkFs
ZDZAVnA8LTJrPDxQPWxNSnoKeiU9NGk8Rld+dXdKUmk+VU9MI3RsPWE9KlJOfWdaTWJCWDdwY3dX
ZiEoTDVpK15SWVoxJit9clFtLTJpZiZuTlNJCnpEJG1QIUs3OzQ4Y3ohKzQlWHZQUj1ONnZOPWVm
LUQ4K21UeWA5aHZvQHdeJjJtUVU9ZT1XcWc+N2JsOC1pTCQrcwp6aH18RktFdW5FVkw0UDdoQ2c9
YmBqfXI2PktgIz5ZQjArQnheam1eSEE/UWhoejlndUZwaTQwP3lNSWhqNWtkRDUKelI4RyhqMilj
PSZsPzFzNkApNUxfQVF3Um81cCpqLW9kaWA4XmZFIzczM2BqNVNwPERiJl9zZkF1dXs5fTRaSENR
CnpnMDNkMGwlVX1SUlM9WDxQJkdrfUFPfUljbV56STxme3FaaGhNKyRhNmVaeyZMSHxPflVWQCQ9
WGVVOT42MTB0PQp6VD9CTyFeZzJOczNIbmNoZW9EfmkxcFNEaEY5fSpwJnxxdystUU9rWDNXQ0F9
alVuaDsxV2hBb0lZSUxZeHx5SUYKemZAfW0pb1RfXitBazVvO3tpTH4+PD8+LTh2LXZ7K0xKc1Qp
XmFiV2BmT3RgUTJwTmYqcjZ+RWMybloyNVg5PHY2CnpfPm4oUDxGTmZybEgtRVJJS2ZDMkg2Y2ZY
ZHhsZ0xsNVUlQHE4NkR5NWNjNFUhZGh1VVB6cHg4P2d7bEN1VW5lbgp6bTs4fSVBUUkraUtEKGdX
P1Fsc1JwSHZyZ0pNTkc/VlJ6NiRePn4kI01Caik/NHhkWjlHWUEke21CTml+c218a2IKejFYb0cp
V21+PnpYR1o9NzZCO0ZkUD98N0A9TSg3NU8kcE1Ua1E1PT94R282WXRnJTxQZ0NTfiVvPX5JelBS
U3U5CnpObG9xJFJlLUVobFhkejd0QWRffSN4UF8oS0JxVjBhem5oMj5ocCZeUExmfWQocH4yZHh3
LUNlQjxQZFM0d1E0Ngp6KV9jZiRHK0JJJE1jcl9EZnw3Kkg/Rns/VHZ3QyNJPnZ6SHh6NlNKdm1F
PzF+VTJidnw5TXQ0P2NedlF0KXN4N3AKenE0RF9fQFd5bW16MkVFZy0tJjg8dEU3TTwrJkVyeHgk
N01mWnkxakNXMmooLU9TOGh8NHUhYzEmX0ZRISVTUnopCnooUmk1RHI7TnNjNnlgSGBGYkdwSWVv
bFc9NkFoSHQ8QVphODRVczBkRkQjOEozWFJIVkgybUM5SzlyZ1ZHYHVNaQp6M1FLa1ZhSENZYG1P
PXJ5KF5LenB5TmRJZkcld316RzRybUlDWUc5fWpGK3NgZChBUzNTREc2TXB7LUN6cyZxSVQKejJ8
fUc8eiVTK3gqI2Y7Nzx6bVV+Xi05JD1laiV5YTlkWlgocGIzYztnPVI9amhmbClqcCN6PzwkS216
ZDwoOTFUCnpZS2shPiFqNW54QitWdS12MHhwVz1afDxAVCt8PE1gIXdVViZRKSpeVkRgRmJ0b1M2
PzchanYkZ2BLMmxrV05YSAp6T0pqeG9IUy0hQkwwRitASkUxTT91Nz1tPEl6biNPVHZ7NGR6QjJx
bHl8ZzRiIWtXe0lUO25rYy1iajtBRHN0dHMKejJEaCYrYypoSmxDQnlQYD9+XmcoI1RYXlV3RS0+
Q1J2aCgrI3lZSzFLR1FsdjN6RDt3M3Alfil3RHk+b0BxRnx7CnozQFRYUFR4VmohdkQ2fDtaNnBG
bis3dEhzeSk/TjNVVXdLWElUVWReRzNOQ1Z1WGp+MzMka0slWFB1YVkqbXt5aQp6eGd0JFgrVi1H
WFJUTF5JM0tpMihyWEl3XkBGWHxMNmdkU3ZzZTVRQSNQMWRpOHpDRXlMXnk0bkxXNSFkKCo2Ym0K
ekdaLTkoVG15YU1PVyYoa2Zsbyl9Xmx1PTtMcFhofU4jQXkzY2Z+aUNMenpZVUl5UHJFVip+YktW
Pzhfb0Rza3xaCno0YGpMUkM9MnFLS15nPmo1SGw+dGAldTlVKjF2Tkk+c0xPTThMbllEaEdCI0hR
UUoyYC05UGohOWkjUTdQTHk2egp6dGBLRmpEQSRTZEt+WCp8JTF4c0RjVHhVX0QwaG87cEQ1b0U8
JWdwRE9xM0A/c1coMzdJP2ItWnFQIz91a3xAV0QKemE8Vjl8N297eDlZRWRvfFd4WGZecVAkQyN0
KWplRmxwOTMoczM/Q1ckfU9VZGl9Rj1iejlHdUBNNSY3TW0/K1BQCnphcyskbDhfNzkwSCtZQUhx
bmg8Zzk8UDk3I2FlJiRlbntldDB5di1DOTNsNmteWE9ZNDxRX1ZZVHV8ODlhVU1DcAp6a2JDU3Jh
dm1Zflp8OU10Pm1OUE9vPTQ4OWlEbVB3MmVLWj5kTFprOHRPdjNsJGEpfl9mdmc5ejk+e3YmfEJW
TlIKempWZkN7WjBfPlFFekpXWjNJPCRRWm54aithI1hFZ0h3RUt7NCphVTdKJSlCLV8jOTE0TjMl
RHFUeHJNT3hgK0hlCnoxajUzcj4/PXhIYX52XmN7dXRVWExPdU1BeX5CQmotUHc0RHkmPldWeCk+
PH4oU0Bpe0FjYzUqZUsxOWl6QFJeUAp6PCRzYFdOOVkjUHRlSmlANVNzWkl7YXhtd016Q3hjUmFy
TypLXyUwcThsVDdNY2V4a3l6bGZoX3MmR14tMnp5dk4KejN6bVBhbCpMckJmK1haVmlIUUB4SV8z
dDIpZTlDYncoSHVkczVZNXVzdTAwKl5OPzd6c2tEWHpeSSE+U3VJa2V+Cnp0KXxsNWd1dCVMVFko
VilafFMpXy08PWdyIzk5dGsjUDBPRTlsaSpCJEFYUVYwMmxqJTNtcntkYiUydV4rK2hvMQp6ej9O
aiNuMW9reTQjaEpHWWNfQiteYzh8QDF1R28leF91PHUmSXVIPmJiMWxKQ2VuciEkJVd7Zkdue21A
cnZYdmUKek5SWjJQcSt9QDhOd3FlbUQ5STJmUTlDJmA1THt1ZTU0dzVIdHRtPkExRj5aJU4kb1N4
SmdkP0VicFYzMzJxUDJ1CnpBU2NfSyspZH5UJXw5WEApYCkjYHZma25HNTxeV2dmezM2ZXJIfVJ6
MUZNcTY2R1V7YzZ3Yjs0UWxJTWxUOF9IPwp6XmB4PzBMdWQ+TC1NfkAhcEJ2cWcjNnJafCNJZDle
SXlufT1lYCpNR01PIXNJcVNjSGlGPCRjKGohYEk/Xno3cVUKeiRuRUJ4Sjs8QEorc2tgK219QzQk
NWZXN2k/UTcjR008WmRiXmFMUzYlKVMtZWxnK3N0ckdMI3BIUDtlfmU8YX4tCno7IX58JXBraGpG
QVQ7Nj17bllrU2dCYHlTPD1VR1g7V3hLNDVfYVElV0hATF43Y2E1VCRCeitNZ0trSFlvbFQ2ZQp6
RSVmVWZLRDZlKFNnQVI3NE1vVnc8c3EyJjB8VnlKLTNGfjZuK3lUPW9Qb0ZYSkEtSSt6YWhqdkdQ
djFzezlsdSEKeldlQW1hT2gqPTxqYCU1QF5pdT14IyV+UzBiNUd8JFgxYytLcDkwdCskaFhoWDtL
UDdCWENQOGJLSlBNK0tpPmk9CnpKX0ROWS12bSZKdmdWbntJdypfSmdlLW11Vjg7dyQ3clBIeTQt
KkNScGU9YHd8Mm1MNVhPWk1BKnh+VzlNe184Owp6e1hgQ3lERWslMzZaMHIjJjlqbFVCZXQ3RUtp
MWdVP3tuK3srQXokKWg3ZGNMJVd9MClLa0xxXiRDMz4tdmZkb2MKejhPXno5VzQ2SVVmb3lnZkle
Ki04c1NfVSMzQGxeTTxlSHxrWk1sO3N2aEJIWnYyZ0JTSjlEY1hGOFRxMj9hOT9QCnpMQUUheU1u
SkRhU016K1RQVDY2fitIVzl+dlZBaDRSJUN+KkcqfSVJVzxNfmZSNFNGRTA7ISs/S0w9RyZTcz05
IQp6MjwkVkltWD1CI2hIe0V5KTV5QjBmX1JFaHJzRHtLdndEMj5XXjgtPjc4MFJ3VU5OJWR8OC1k
cHlmNihYZWp5VGsKeiNVSHtLQjFefXFLRT08OF9YSEJ2UHZTKFFgdUVXZm4wTkBNYGJtNTxAWGBJ
VypnTnMpeTlObTxgUm84TjhsVDMqCnpPPExXM2dkXlYwQ1RUZDtOeWExcnZpRmQjMX5KKjZxWEpM
YigraGxQVDY9a3I5ZzB1QmxLKTRBZWctR0pzemxSMgp6M0hhNCR6ZUJWP2pyZUt5U09gekVyeTk1
c3NSS1ZzcGtWYV5GVEdtQlJ8PnBiO1AoaFRGNjFgfmVFQyhISmJmZlgKemBUfk9nSkFwUn57YCYk
aTd4KiFPOX5KV1MhOHh9X0BVSWtqeUorN2VAS1Y4X0ZZdjx4fEU5cDNnKl5URVBXcU0kCnp7MDlP
TDI+ZDVXVC01KVN6ellOKDdrRklZMlJVODxQaWclPEJLVV9mWTB3TmlEZXo5QWU7fElLcTRyQmhZ
NWRDdAp6OT19R3o+OEUrbHpnRU5QMllQTz0hMEJndCFrTko3PVhBb2AxenM9a1BKIVBnQEc0PFhP
eUtQVHwyYzN9TjNLMGoKellkRSNRcFp6LWdReXAlYFQhZTUre3VVa1g8IztvXnBnbXo3e3ZBeXwj
bEsmfVF9I1RmIT1LalNKOVlSVWJva3BrCnp7Nmlnbk9vdWI5XkteZDwoQlZVTV87NE01cjRHTVZo
bVkwYUNMS09RaG5zYnt0aXU9U0BTQW1idHF5blZARnBEfAp6KCY2OUg7Vm44bXM+MmA5QFlIO0dT
Y2dCUSE/KX0zRSoqWUloa3ZCUXp0R3tkX29kSXIlWEloezROdUxsUVhQTSQKejR3clRFV3RoZ2VD
TkxjUTQ5N1F7Z3xyTio3VV5+KkpKTkNfMlR+bzk2VWx8LU1ydUghLWBpIypVNV8qa3NUfDNTCnpH
I317KEJwSGJnJW9+dndBbFo7QWtycEI/TGFJV2RfcG9aRCNZanQjWUxJUzVxNjJYJChsP1FBTVk7
e0M5PzY0Kgp6cjx7Sm5ufk85TCQlMGdZXnZ+RUlpSXZwZ2JCaHJFPU1qQzA1b3N6MzEpVXxARlo7
PHRlNVgrQzM8Uz1SbypWSWEKelRfeWFoNUFuQFFOS2BBWDxFJn5vLWpZSkBPeVopdFp7YnhYR3tO
VCY7PVE2fFchWTV3KVg3Tl5LZl9DLSQ7N2AxCnpHVyVRPmtLNG9TTyU3Yipaa1JWTz9jY0xgLTZt
I3RISWxTI24pdCtzQlZ+YzB6ayREb3tYTDU0OGJffmNSe0NkWAp6Y0sqZVdvblEzQ3dYSFpIdTVh
Z1NHdmtofS1LZ3l1RzxzanJRVFV9YmxhX3U3JipicD9jUDVFbi0hbi04eDwlX3EKemJpS3xiQGkm
PXNOJkpTY0MtVz0zcDIpQkZuWnl2PyV5bEZsZT5qKGpLfE0jMUY2eDs/QHVyYlUpR3B5KUxET3Zp
Cnppbmt4VXZpSUhXI1IhWWJlRm1vOD1ta2shYHFMKV9adWFSWT8pZDN3U3E3JXZ7blBvJHd9NW4t
Y25lNDtDRXBENgp6WmAkVnpzQyo1ZGhmPFFmfElIdnVRZkZyUEx7SF5gNkEqY3szbmN9JjVTSUZp
Y293Sz5BJXUqMDdMT2ZkUF96Z2EKekN1Izk1NFcjSW4ySnpTeTJVQnFkZnIkV3Y3RmtHITZ6dWhV
WlB4UVo0enQmNUR+Klp9Rmx+fDVpPGZ3Tkp3QjFkCnphLXhFYCtEZllEITJvK2Jqez9+MSNVeEV1
KEx9fFlLSG03WCNTX3hyP2RjdCNVaDJ+I085MTt+TjxkJnBXOzYqagp6OSFFbFhQNV9CJE5zV0NX
QlJsYCo/UTNGMThkS3tobXJGJjVrfDczckJvIVhnS29KKUBDd2hxVVEyKDVJWipVeE0KenI1Jkst
cnBUWjEkWj1tYXBybWBocC1qOHw9NF5tMChaTk8xVVMtIyFFRU88cjU7YmhOZiZXVzk7KV4zeyFX
MkF7CnpyJSM/ZHYyTUMhOypfY05Renc7fkNRWD8+JWB2XnNHMkp6XzZ3RkRePX5KaCQ4SWomWXtv
QWVeZSgmJml6eChzdwp6MjdlbFZjdSRCYyhxJHRLLUlJNkN5fGNidEhzZyZjRUFsX051eiU/I1Fy
RnMlbHtYZCNNJTxTQlh5b2xUOUB1PlEKempGVnNafDUjcEZ5I0dTOyZ5UExzejRCKiFqeUBSc0B3
a3JUUDFvR04/UEtTTSt4RlopWCFWP2xxcmFYMSUzSkZLCnorYmtQamUoPjwpK2ZPfHw/JD9SXmNp
cF5nUl51PGBLRz1TblpEQEd6UDJHUGVgT3lfT2pDJXQ4cjtnTHhCb24/Xgp6cDV9YFZrVFpOQzxe
MUVtKnN3fSFVLSo9SlhrX0kqe2NyNSh0WH14Nz1JdmRWfDY7PDQxSmdFTUlgOEJVJCVlbzYKeiV5
YUt0Xm8jMkVlKHxmd3lOI2R6VDBaP3E7YCRlNjR3YD5VXlRoSmpVRFhZNSZWVC0/S2FZT0VeNU1V
SnU9dmVxCno4YWBWMj9MKnU1a05lWSlaPEBNM0lQOUlsbzFUYFFKaDF3ayMpaypRZFhGc1k4dSNR
KWxWM2hDd3F4VWgoaVBKbAp6YFEtPXl7cHwyVDU4bk9UeSVXQXZ1bTgtb1gzTT5Rb1lVeyZMK2I0
OUZXPGQhfDN4bnI0V0c2N3R1dVJuR2tmIzMKenFrckd7Kk54N25oZDs2QV57SG9HVGxDTiRaQFlX
TXN7X3tHelUrJnBwM081eUhPemhkKU5Tc2lPRm4rJDxhYmAqCnphJk9fWXVVPkY9eil2ckd7anVu
Jl9YZCUjXlpyJkp2JUlWYXZMNDhLQW5TcHcyZUtaPmRMWms4dE92M2wkYSl+Xwp6ZnZnOXo5Pnt0
aT53JkJYdkw0OEtBblNwdzJlS1o+ZExaazh0T3YzbCRhKX5fZnZnOXo5Pnt0aT53JkJYezt6eEIK
RmUqa0F5Tl5BZkMKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5jcHAKaW5kZXggMzFhM2YwMmIzZWNhOGUwNTNkZDUyNTI1MDUxMjUz
NWZlMTBiYmIzYi4uYzZmMDE5ZDMwM2Q1YzQ3MjcwYzEyNmViYjU0ODJjNTMzOTgyMzNhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKQEAgLTI5LDkgKzI5LDYg
QEAKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1Zp
ZXcuaD4KIAotLy8gRklYTUU6IFRoaXMgbmVlZHMgYSBiZXR0ZXIgbmFtZQotI2RlZmluZSBBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApKQotCiBuYW1lc3BhY2Ug
V1RGIHsKIAogLy8gSXRlcmF0b3IgaW5pdGlhbGl6YXRpb24KQEAgLTU5LDYgKzU2LDEyIEBAIHN0
YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGNvbnN0
IGNoYXIqIGJyZWFrUnVsZXMpCiAKICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBM
QVRGT1JNKElPUykKK1RleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtp
bmdSdWxlU2V0IHJ1bGVTZXQpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKIAog
Ly8gSXRlcmF0b3IgdGV4dCBzZXR0aW5nCiAKQEAgLTE2NSwxMzEgKzE2OCwxNSBAQCBUZXh0QnJl
YWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogVGV4
dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcp
CiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9u
IGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKLSAgICAvLyA8aHR0cDov
L3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9z
b3VyY2UvZGF0YS9icmtpdHIvPi4KLSAgICAvLyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0
aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgotICAgIC8vICogUmVwbGFjZWQgJ1tc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVy
YWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVh
cmxpZXI7Ci0gICAgLy8gKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9t
IG1vdmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAgLy8gKiBB
ZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1h
IHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsK
LSAgICAvLyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBi
ZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0gICAgLy8g
KiBBZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCi0gICAgc3RhdGlj
IGNvbnN0IGNoYXIqIGtSdWxlcyA9Ci0gICAgICAgICIkQ1IgICAgICA9IFtcXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IENSfV07IgotICAgICAgICAiJExGICAgICAgPSBbXFxwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBMRn1dOyIKLSAgICAgICAgIiRDb250cm9sID0gW1xccHtHcmFwaGVt
ZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOyIKLSAgICAgICAgIiRWb2ljZU1hcmtzID0gW1xc
dUZGOUVcXHVGRjlGXTsiIC8vIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1h
cmtzCi0gICAgICAgICIkRXh0ZW5kICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4
dGVuZH0gJFZvaWNlTWFya3MgLSBbXFx1MEUzMCBcXHUwRTMyIFxcdTBFNDUgXFx1MEVCMCBcXHUw
RUIyXV07IgotICAgICAgICAiJFNwYWNpbmdNYXJrID0gW1tcXHB7R2VuZXJhbF9DYXRlZ29yeSA9
IFNwYWNpbmcgTWFya31dIC0gJEV4dGVuZF07IgotICAgICAgICAiJEwgICAgICAgPSBbXFxwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07IgotICAgICAgICAiJFYgICAgICAgPSBbXFxwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07IgotICAgICAgICAiJFQgICAgICAgPSBbXFxwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07IgotICAgICAgICAiJExWICAgICAgPSBbXFxwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOyIKLSAgICAgICAgIiRMVlQgICAgID0gW1xccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07IgotICAgICAgICAiJEhpbjAgICAgPSBbXFx1
MDkwNS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIk
SGluViAgICA9IFxcdTA5NEQ7IiAvLyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCi0gICAgICAgICIk
SGluMSAgICA9IFtcXHUwOTE1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4u
LEhhCi0gICAgICAgICIkQmVuMCAgICA9IFtcXHUwOTg1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBM
ZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRCZW5WICAgID0gXFx1MDlDRDsiIC8vIEJlbmdhbGkg
U2lnbiBWaXJhbWEKLSAgICAgICAgIiRCZW4xICAgID0gW1xcdTA5OTUtXFx1MDlCOV07IiAvLyBC
ZW5nYWxpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRQYW4wICAgID0gW1xcdTBBMDUtXFx1
MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRQYW5WICAgID0g
XFx1MEE0RDsiIC8vIEd1cm11a2hpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkUGFuMSAgICA9IFtc
XHUwQTE1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAi
JEd1ajAgICAgPSBbXFx1MEE4NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBBLC4uLixI
YQotICAgICAgICAiJEd1alYgICAgPSBcXHUwQUNEOyIgLy8gR3VqYXJhdGkgU2lnbiBWaXJhbWEK
LSAgICAgICAgIiRHdWoxICAgID0gW1xcdTBBOTUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0
ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkT3JpMCAgICA9IFtcXHUwQjA1LVxcdTBCMzldOyIgLy8g
T3JpeWEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkT3JpViAgICA9IFxcdTBCNEQ7IiAvLyBP
cml5YSBTaWduIFZpcmFtYQotICAgICAgICAiJE9yaTEgICAgPSBbXFx1MEIxNS1cXHUwQjM5XTsi
IC8vIE9yaXlhIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRUZWwwICAgID0gW1xcdTBDMDUt
XFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkVGVsViAgICA9
IFxcdTBDNEQ7IiAvLyBUZWx1Z3UgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRUZWwxICAgID0gW1xc
dTBDMTQtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEth
bjAgICAgPSBbXFx1MEM4NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0g
ICAgICAgICIkS2FuViAgICA9IFxcdTBDQ0Q7IiAvLyBLYW5uYWRhIFNpZ24gVmlyYW1hCi0gICAg
ICAgICIkS2FuMSAgICA9IFtcXHUwQzk1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwu
Li4sSGEKLSAgICAgICAgIiRNYWwwICAgID0gW1xcdTBEMDUtXFx1MEQzOV07IiAvLyBNYWxheWFs
YW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsViAgICA9IFxcdTBENEQ7IiAvLyBNYWxh
eWFsYW0gU2lnbiBWaXJhbWEKLSAgICAgICAgIiRNYWwxICAgID0gW1xcdTBEMTUtXFx1MEQzOV07
IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUkkgICAgICA9IFtcXFUw
MDAxRjFFNi1cXFUwMDAxRjFGRl07IiAvLyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCi0gICAg
ICAgICIkWldKICAgICA9IFxcdTIwMEQ7IiAvLyBaZXJvIHdpZHRoIGpvaW5lcgotICAgICAgICAi
JEVtb2ppVmFyID0gW1xcdUZFMEZdOyIgLy8gRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9y
Ci0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0g
W1xcdTI2NDAgXFx1MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMt
XFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0
NDEgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAw
MUY0NzEgXFxVMDAwMUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxV
MDAwMUY0ODYtXFxVMDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTgg
XFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2
NEUgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjZdOyIgLy8gRW1vamkgdGhhdCBw
YXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xc
dTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxV
MDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMg
XFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0
NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAw
MUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxV
MDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIt
XFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2
QzAgXFxVMDAwMUY5MThdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmll
cnMKLSNlbHNlCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYt
XFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBa
V0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1c
XHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxc
VTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUw
IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFG
NDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAw
MDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxc
VTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMw
XSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAg
ICAgICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIgLy8gRml0enBh
dHJpY2sgbW9kaWZpZXJzCi0gICAgICAgICIhIWNoYWluOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKLSAgICAgICAgIiEhUklOb0NoYWluOyIKLSNlbmRpZgotICAgICAgICAiISFmb3J3
YXJkOyIKLSAgICAgICAgIiRDUiAkTEY7IgotICAgICAgICAiJEwgKCRMIHwgJFYgfCAkTFYgfCAk
TFZUKTsiCi0gICAgICAgICIoJExWIHwgJFYpICgkViB8ICRUKTsiCi0gICAgICAgICIoJExWVCB8
ICRUKSAkVDsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkUkkgJFJJ
ICRFeHRlbmQqIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCo7IgotICAgICAgICAi
W14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRM
Rl0gJFNwYWNpbmdNYXJrOyIKLSNlbHNlCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRF
eHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotICAg
ICAgICAiJFJJICRSSSAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAg
ICAiJEhpbjAgJEhpblYgJEhpbjE7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKLSAg
ICAgICAgIiRCZW4wICRCZW5WICRCZW4xOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCi0g
ICAgICAgICIkUGFuMCAkUGFuViAkUGFuMTsiIC8vIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkK
LSAgICAgICAgIiRHdWowICRHdWpWICRHdWoxOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJk
KQotICAgICAgICAiJE9yaTAgJE9yaVYgJE9yaTE7IiAvLyBPcml5YSBWaXJhbWEgKGZvcndhcmQp
Ci0gICAgICAgICIkVGVsMCAkVGVsViAkVGVsMTsiIC8vIFRlbHVndSBWaXJhbWEgKGZvcndhcmQp
Ci0gICAgICAgICIkS2FuMCAkS2FuViAkS2FuMTsiIC8vIEthbm5hZGEgVmlyYW1hIChmb3J3YXJk
KQotICAgICAgICAiJE1hbDAgJE1hbFYgJE1hbDE7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChmb3J3
YXJkKQotICAgICAgICAiJFpXSiAkRW1vamlGb3JTZXFzOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1v
amkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9q
aU1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3
aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0gICAgICAg
ICIhIXJldmVyc2U7IgotICAgICAgICAiJExGICRDUjsiCi0gICAgICAgICIoJEwgfCAkViB8ICRM
ViB8ICRMVlQpICRMOyIKLSAgICAgICAgIigkViB8ICRUKSAoJExWIHwgJFYpOyIKLSAgICAgICAg
IiRUICgkTFZUIHwgJFQpOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAg
IiRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQq
ICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07Igot
ICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07IgotI2Vsc2UKLSAgICAg
ICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5n
TWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkkgJFJJOyIK
LSAgICAgICAgIiRSSSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIkSGluMSAkSGluViAkSGluMDsi
IC8vIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRCZW4xICRCZW5WICRC
ZW4wOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFBhbjEgJFBhblYg
JFBhbjA7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEd1ajEgJEd1
alYgJEd1ajA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE9yaTEg
JE9yaVYgJE9yaTA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFRl
bDEgJFRlbFYgJFRlbDA7IiAvLyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRL
YW4xICRLYW5WICRLYW4wOyIgLy8gS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAi
JE1hbDEgJE1hbFYgJE1hbDA7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKLSAgICAg
ICAgIiRFbW9qaUZvclNlcXMgJFpXSjsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1
ZW5jZXMKLSAgICAgICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyIgLy8g
RG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRp
b24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotI2lmIEFERElUSU9OQUxfRU1P
SklfU1VQUE9SVAotICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiJFJJICRSSSs7
IgotICAgICAgICAiWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAg
ICAgICIhIXNhZmVfZm9yd2FyZDsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0gICAgICAgICIkRW1v
amlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyI7Ci0jZWxzZQotICAgICAgICAiWyRF
bW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIkRW1vamlGb3JN
b2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyIKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIK
LSAgICAgICAgIiEhc2FmZV9mb3J3YXJkOyI7Ci0jZW5kaWYKLSAgICBzdGF0aWMgVGV4dEJyZWFr
SXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0
b3JXaXRoUnVsZXMoa1J1bGVzKTsKKworICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGl0ZXJhdG9y
Rm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50KSkgeworICAgICAgICBp
ZiAoYXV0byogaXRlcmF0b3JXaXRoVGV4dCA9IHNldFRleHRGb3JJdGVyYXRvcigqaXRlcmF0b3Is
IHN0cmluZykpCisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JXaXRoVGV4dDsKKyAgICAgICAg
dWJya19jbG9zZShyZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpKTsK
KyAgICB9CisKKyAgICAKKyAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNv
ck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoY3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzKTsKICNlbHNlIC8vIFBMQVRGT1JNKElPUykKICAgICAvLyBVc2Ug
dGhlIHNwZWNpYWwgVGhhaSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgZm9yIGFsbCBsb2NhbGVz
CiAgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yKFVCUktfQ0hBUkFDVEVSLCAidGgiKTsKQEAgLTMxNyw0
NDIgKzIwNCwyMCBAQCB2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVy
YXRvciogaXRlcmF0b3IpCiAgICAgTGluZUJyZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQb29sKCku
cHV0KGl0ZXJhdG9yKTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UHJvbG9ndWUgPQot
ICAgICIhIWNoYWluOyIKLSAgICAiISFMQkNNTm9DaGFpbjsiCi0gICAgIiEhbG9va0FoZWFkSGFy
ZEJyZWFrOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQmVmb3JlID0K
LSAgICAvLyBleHBsaWNpdGx5IGVudW1lcmF0ZSAkQ0ogc2luY2UgSUNVIHZlcnNpb25zIHByaW9y
IHRvIDQ5IGRvbid0IHN1cHBvcnQgOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFy
dGVyOgotICAgICIkQ0ogPSBbIgotI2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAm
JiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAgICAiOkxpbmVCcmVhaz1Db25kaXRp
b25hbF9KYXBhbmVzZV9TdGFydGVyOiIKLSNlbHNlCi0gICAgIlxcdTMwNDFcXHUzMDQzXFx1MzA0
NVxcdTMwNDdcXHUzMDQ5XFx1MzA2M1xcdTMwODNcXHUzMDg1XFx1MzA4N1xcdTMwOEVcXHUzMDk1
XFx1MzA5NlxcdTMwQTFcXHUzMEEzXFx1MzBBNVxcdTMwQTciCi0gICAgIlxcdTMwQTlcXHUzMEMz
XFx1MzBFM1xcdTMwRTVcXHUzMEU3XFx1MzBFRVxcdTMwRjVcXHUzMEY2XFx1MzBGQyIKLSAgICAi
XFx1MzFGMFxcdTMxRjFcXHUzMUYyXFx1MzFGM1xcdTMxRjRcXHUzMUY1XFx1MzFGNlxcdTMxRjdc
XHUzMUY4XFx1MzFGOVxcdTMxRkFcXHUzMUZCXFx1MzFGQ1xcdTMxRkRcXHUzMUZFXFx1MzFGRiIK
LSAgICAiXFx1RkY2N1xcdUZGNjhcXHVGRjY5XFx1RkY2QVxcdUZGNkJcXHVGRjZDXFx1RkY2RFxc
dUZGNkVcXHVGRjZGXFx1RkY3MCIKLSNlbmRpZgotICAgICJdOyI7Ci0KLXN0YXRpYyBjb25zdCBj
aGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgPQotICAgICIkQkFfU1VCID0gW1xc
dTIwMTBcXHUyMDEzXTsiCi0gICAgIiRFWF9TVUIgPSBbXFx1MDAyMVxcdTAwM0ZcXHVGRjAxXFx1
RkYxRl07IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUy
MDI2XTsiCi0gICAgIiRJU19TVUIgPSBbXFx1MDAzQVxcdTAwM0JdOyIKLSAgICAiJE5TX1NVQiA9
IFtcXHUyMDNDXFx1MjA0N1xcdTIwNDhcXHUyMDQ5XFx1MzAwNVxcdTMwMUNcXHUzMDNCXFx1MzA5
RFxcdTMwOUVcXHUzMEEwXFx1MzBGQlxcdTMwRkRcXHUzMEZFXFx1RkYxQVxcdUZGMUJcXHVGRjY1
XTsiCi0gICAgIiRQT19TVUIgPSBbXFx1MDAyNVxcdTAwQTJcXHUwMEIwXFx1MjAzMFxcdTIwMzJc
XHUyMDMzXFx1MjEwM1xcdUZGMDVcXHVGRkUwXTsiCi0gICAgIiRQUl9TVUIgPSBbXFx1MDAyNFxc
dTAwQTNcXHUwMEE1XFx1MjBBQ1xcdTIxMTZcXHVGRjA0XFx1RkZFMVxcdUZGRTVdOyIKLSAgICAi
JElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQ
T19TVUIgJFBSX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNo
YXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZU5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAn
JzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9T
VUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NV
QiA9IFtcXHUzMDA1XFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBGRFxcdTMwRkVdOyIKLSAgICAi
JFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0og
JElOX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3Qg
Y2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA9Ci0gICAgIiRCQV9TVUIgPSBb
XFx1MjAxMFxcdTIwMTNdOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcn
OyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NV
QiA9IFtcXHUzMDFDXFx1MzBBMF07IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VC
ID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOyIKLSAgICAiJE5T
X0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9t
Tm9ybWFsTm9uQ0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIK
LSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9
ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBS
X1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0pdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7
Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLID0K
LSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9
ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5T
X1NVQiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAg
ICAiJElEX0FERCA9ICcnOyIKLSAgICAiJE5TX0FERCA9IFskQ0pdOyI7Ci0KLSNkZWZpbmUgdWF4
MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0
b21TdHJpY3RDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHRDSksgICAg
ICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25t
ZW50c0N1c3RvbURlZmF1bHROb25DSksgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RO
b25DSksKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNBZnRlciA9Ci0gICAg
IiRBSSA9IFs6TGluZUJyZWFrID0gQW1iaWd1b3VzOl07IgotICAgICIkQUwgPSBbOkxpbmVCcmVh
ayA9IEFscGhhYmV0aWM6XTsiCi0gICAgIiRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0FmdGVy
Ol0gLSAkQkFfU1VCXTsiCi0gICAgIiRCQiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07
IgotICAgICIkQksgPSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOyIKLSAgICAiJEIy
ID0gWzpMaW5lQnJlYWsgPSBCcmVha19Cb3RoOl07IgotICAgICIkQ0IgPSBbOkxpbmVCcmVhayA9
IENvbnRpbmdlbnRfQnJlYWs6XTsiCi0gICAgIiRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVu
Y3R1YXRpb246XTsiCi0gICAgIiRDTSA9IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsi
Ci0gICAgIiRDUCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsiCi0gICAgIiRD
UiA9IFs6TGluZUJyZWFrID0gQ2FycmlhZ2VfUmV0dXJuOl07IgotICAgICIkRVggPSBbWzpMaW5l
QnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0gJEVYX1NVQl07IgotICAgICIkR0wgPSBbOkxpbmVCcmVh
ayA9IEdsdWU6XTsiCi0jaWYgKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lD
VV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KQotICAgICIkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJl
d19MZXR0ZXI6XTsiCi0jZWxzZQotICAgICIkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1d
OyIKLSNlbmRpZgotICAgICIkSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOyIKLSAgICAiJEgy
ID0gWzpMaW5lQnJlYWsgPSBIMjpdOyIKLSAgICAiJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOyIK
LSAgICAiJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQURE
XSAtICRJRF9TVUJdOyIKLSAgICAiJElOID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAt
ICRJTl9TVUJdOyIKLSAgICAiJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0g
JElTX1NVQl07IgotICAgICIkSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07IgotICAgICIkSlYgPSBb
OkxpbmVCcmVhayA9IEpWOl07IgotICAgICIkSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07IgotICAg
ICIkTEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOyIKLSAgICAiJE5MID0gWzpMaW5lQnJl
YWsgPSBOZXh0X0xpbmU6XTsiCi0gICAgIiROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRl
cjpdIC0gJENKXSAkTlNfQUREXSAtICROU19TVUJdOyIKLSAgICAiJE5VID0gWzpMaW5lQnJlYWsg
PSBOdW1lcmljOl07IgotICAgICIkT1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246
XTsiCi0gICAgIiRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NV
Ql07IgotICAgICIkUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NV
Ql07IgotICAgICIkUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOyIKLSAgICAiJFJJID0g
W1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsiCi0gICAgIiRTQSA9IFs6TGluZUJyZWFrID0gQ29t
cGxleF9Db250ZXh0Ol07IgotICAgICIkU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOyIK
LSAgICAiJFNQID0gWzpMaW5lQnJlYWsgPSBTcGFjZTpdOyIKLSAgICAiJFNZID0gWzpMaW5lQnJl
YWsgPSBCcmVha19TeW1ib2xzOl07IgotICAgICIkV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9p
bmVyOl07IgotICAgICIkWFggPSBbOkxpbmVCcmVhayA9IFVua25vd246XTsiCi0gICAgIiRaVyA9
IFs6TGluZUJyZWFrID0gWldTcGFjZTpdOyIKLSAgICAiJFpXSiA9IFxcdTIwMEQ7IgotICAgICIk
RW1vamlWYXIgPSBcXHVGRTBGOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAi
JEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFG
MzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAw
MDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxc
VTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgx
LVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFG
NTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAw
MDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2XTsi
IC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICIkRW1vamlG
b3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxV
MDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDIt
XFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0
NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAw
MUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxV
MDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcg
XFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2
QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MThdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0
cmljayBtb2RpZmllcnMKLSNlbHNlCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUw
MDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IgotICAgICIkRW1vamlGb3JNb2RzID0g
W1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFG
M0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAw
MDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxc
VTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1
LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFG
NjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAw
MDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9k
aWZpZXJzCi0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNG
Rl07IgotICAgICIkZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07
IgotICAgICIkQUxQbHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOyIKLSAgICAiJEFMY20gPSAk
QUxQbHVzICRDTSo7IgotICAgICIkQkFjbSA9ICRCQSAkQ00qOyIKLSAgICAiJEJCY20gPSAkQkIg
JENNKjsiCi0gICAgIiRCMmNtID0gJEIyICRDTSo7IgotICAgICIkQ0xjbSA9ICRDTCAkQ00qOyIK
LSAgICAiJENQY20gPSAkQ1AgJENNKjsiCi0gICAgIiRFWGNtID0gJEVYICRDTSo7IgotICAgICIk
R0xjbSA9ICRHTCAkQ00qOyIKLSAgICAiJEhMY20gPSAkSEwgJENNKjsiCi0gICAgIiRIWWNtID0g
JEhZICRDTSo7IgotICAgICIkSDJjbSA9ICRIMiAkQ00qOyIKLSAgICAiJEgzY20gPSAkSDMgJENN
KjsiCi0gICAgIiRJRGNtID0gJElEICRDTSo7IgotICAgICIkSU5jbSA9ICRJTiAkQ00qOyIKLSAg
ICAiJElTY20gPSAkSVMgJENNKjsiCi0gICAgIiRKTGNtID0gJEpMICRDTSo7IgotICAgICIkSlZj
bSA9ICRKViAkQ00qOyIKLSAgICAiJEpUY20gPSAkSlQgJENNKjsiCi0gICAgIiROU2NtID0gJE5T
ICRDTSo7IgotICAgICIkTlVjbSA9ICROVSAkQ00qOyIKLSAgICAiJE9QY20gPSAkT1AgJENNKjsi
Ci0gICAgIiRQT2NtID0gJFBPICRDTSo7IgotICAgICIkUFJjbSA9ICRQUiAkQ00qOyIKLSAgICAi
JFFVY20gPSAkUVUgJENNKjsiCi0gICAgIiRSSWNtID0gJFJJICRDTSo7IgotICAgICIkU1ljbSA9
ICRTWSAkQ00qOyIKLSAgICAiJFdKY20gPSAkV0ogJENNKjsiOwotCi1zdGF0aWMgY29uc3QgY2hh
ciogdWF4MTRGb3J3YXJkID0KLSAgICAiISFmb3J3YXJkOyIKLSAgICAiJENBTl9DTSA9IFteJFNQ
ICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsiCi0gICAgIiRDQU5UX0NNID0gWyRTUCAkQksgJENS
ICRMRiAkTkwgJFpXICRDTV07IgotICAgICIkQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYg
JE5MICRaVyAkU1BdOyIKLSAgICAiJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElT
ICRTWSAkV0ogJEdMICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsiCi0gICAg
IiRBTF9GT0xMT1cgPSBbJEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOyIKLSAgICAiJExC
NEJyZWFrcyA9IFskQksgJENSICRMRiAkTkxdOyIKLSAgICAiJExCNE5vbkJyZWFrcyA9IFteJEJL
ICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOyIKLSAg
ICAiJExCOE5vbkJyZWFrcyA9IFtbJExCNE5vbkJyZWFrc10gLSBbJFpXXV07IgotICAgICIkTEIx
OE5vbkJyZWFrcyA9IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOyIKLSAgICAiJExCMThCcmVha3Mg
PSBbJExCOEJyZWFrcyAkU1BdOyIKLSAgICAiJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVh
a3MgLSAkQ0JdOyIKLSAgICAiJEFMUGx1cyAkQ00rOyIKLSAgICAiJEJBICRDTSs7IgotICAgICIk
QkIgJENNKzsiCi0gICAgIiRCMiAkQ00rOyIKLSAgICAiJENMICRDTSs7IgotICAgICIkQ1AgJENN
KzsiCi0gICAgIiRFWCAkQ00rOyIKLSAgICAiJEdMICRDTSs7IgotICAgICIkSEwgJENNKzsiCi0g
ICAgIiRIWSAkQ00rOyIKLSAgICAiJEgyICRDTSs7IgotICAgICIkSDMgJENNKzsiCi0gICAgIiRJ
RCAkQ00rOyIKLSAgICAiJElOICRDTSs7IgotICAgICIkSVMgJENNKzsiCi0gICAgIiRKTCAkQ00r
OyIKLSAgICAiJEpWICRDTSs7IgotICAgICIkSlQgJENNKzsiCi0gICAgIiROUyAkQ00rOyIKLSAg
ICAiJE5VICRDTSs7IgotICAgICIkT1AgJENNKzsiCi0gICAgIiRQTyAkQ00rOyIKLSAgICAiJFBS
ICRDTSs7IgotICAgICIkUVUgJENNKzsiCi0gICAgIiRSSSAkQ00rOyIKLSAgICAiJFNZICRDTSs7
IgotICAgICIkV0ogJENNKzsiCi0gICAgIiRDUiAkTEYgezEwMH07IgotICAgICIkTEI0Tm9uQnJl
YWtzPyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEw
MH07IgotICAgICIkQ00rICRMQjRCcmVha3MgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzIFsk
U1AgJFpXXTsiCi0gICAgIiRDQU5fQ00gJENNKiBbJFNQICRaV107IgotICAgICIkQ00rIFskU1Ag
JFpXXTsiCi0gICAgIiRFbW9qaUZvclNlcXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRF
bW9qaUZvclNlcXM7IgotICAgICIkQ0FOX0NNICRDTSs7IgotICAgICIkQ00rOyIKLSAgICAiJENB
Tl9DTSAkQ00qICRXSmNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkV0pjbTsiCi0gICAgIiRDTSsg
JFdKY207IgotICAgICIkV0pjbSAkQ0FOVF9DTTsiCi0gICAgIiRXSmNtICRDQU5fQ00gJENNKjsi
Ci0gICAgIiRHTGNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5UX0NNOyIKLSAgICAi
W1skTEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSogJEdMY207IgotICAgICIkQ00r
IEdMY207IgotICAgICIkTEI4Tm9uQnJlYWtzICRDTDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ0w7
IgotICAgICIkQ00rICRDTDsiCi0gICAgIiRMQjhOb25CcmVha3MgJENQOyIKLSAgICAiJENBTl9D
TSAkQ00qICRDUDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkRVg7Igot
ICAgICIkQ0FOX0NNICRDTSogJEVYOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkTEI4Tm9uQnJl
YWtzICRJUzsiCi0gICAgIiRDQU5fQ00gJENNKiAkSVM7IgotICAgICIkQ00rICRJUzsiCi0gICAg
IiRMQjhOb25CcmVha3MgJFNZOyIKLSAgICAiJENBTl9DTSAkQ00qICRTWTsiCi0gICAgIiRDTSsg
JFNZOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOX0NNICRDTSo7IgotICAgICIkT1BjbSAkU1AqICRD
QU5UX0NNOyIKLSAgICAiJE9QY20gJFNQKyAkQ00rICRBTF9GT0xMT1c/OyIKLSAgICAiJFFVY20g
JFNQKiAkT1BjbTsiCi0gICAgIigkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOyIKLSAgICAiJEIy
Y20gJFNQKiAkQjJjbTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207IgotICAgICIk
Q00rICRRVWNtOyIKLSAgICAiJFFVY20gLj87IgotICAgICIkUVVjbSAkTEIxOE5vbkJyZWFrcyAk
Q00qOyIKLSAgICAiJExCMjBOb25CcmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsg
IgotICAgICIkQkJjbSBbXiRDQl07IgotICAgICIkQkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOyIK
LSAgICAiJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87IgotICAgICIkU1ljbSAkSExjbTsi
Ci0gICAgIigkQUxjbSB8ICRITGNtKSAkSU5jbTsiCi0gICAgIiRDTSsgJElOY207IgotICAgICIk
RVhjbSAkSU5jbTsiCi0gICAgIiRJRGNtICRJTmNtOyIKLSAgICAiJElOY20gJElOY207IgotICAg
ICIkTlVjbSAkSU5jbTsiCi0gICAgIiRJRGNtICRQT2NtOyIKLSAgICAiJEFMY20gJE5VY207Igot
ICAgICIkSExjbSAkTlVjbTsiCi0gICAgIiRDTSsgJE5VY207IgotICAgICIkTlVjbSAkQUxjbTsi
Ci0gICAgIiROVWNtICRITGNtOyIKLSAgICAiJFBSY20gJElEY207IgotICAgICIkUFJjbSAoJEFM
Y20gfCAkSExjbSk7IgotICAgICIkUE9jbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJFBSY20g
fCAkUE9jbSk/ICgkT1BjbSB8ICRIWWNtKT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkq
ICgkQ0xjbSB8ICRDUGNtKT8gKCRQUmNtIHwgJFBPY20pPzsiCi0gICAgIiRKTGNtICgkSkxjbSB8
ICRKVmNtIHwgJEgyY20gfCAkSDNjbSk7IgotICAgICIoJEpWY20gfCAkSDJjbSkgKCRKVmNtIHwg
JEpUY20pOyIKLSAgICAiKCRKVGNtIHwgJEgzY20pICRKVGNtOyIKLSAgICAiKCRKTGNtIHwgJEpW
Y20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20g
fCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRQT2NtOyIKLSAgICAiJFBSY20gKCRKTGNtIHwgJEpW
Y20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICgkQUxj
bSB8ICRITGNtKTsiCi0gICAgIiRDTSsgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJElTY20gKCRB
TGNtIHwgJEhMY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207IgotICAg
ICIkQ00rICRPUGNtOyIKLSAgICAiJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7IgotI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkUkljbSAkUkljbTsiCi0jZW5kaWYKLSAg
ICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IjsKLQotc3RhdGljIGNvbnN0
IGNoYXIqIHVheDE0UmV2ZXJzZSA9Ci0gICAgIiEhcmV2ZXJzZTsiCi0gICAgIiRDTSsgJEFMUGx1
czsiCi0gICAgIiRDTSsgJEJBOyIKLSAgICAiJENNKyAkQkI7IgotICAgICIkQ00rICRCMjsiCi0g
ICAgIiRDTSsgJENMOyIKLSAgICAiJENNKyAkQ1A7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRD
TSsgJEdMOyIKLSAgICAiJENNKyAkSEw7IgotICAgICIkQ00rICRIWTsiCi0gICAgIiRDTSsgJEgy
OyIKLSAgICAiJENNKyAkSDM7IgotICAgICIkQ00rICRJRDsiCi0gICAgIiRDTSsgJElOOyIKLSAg
ICAiJENNKyAkSVM7IgotICAgICIkQ00rICRKTDsiCi0gICAgIiRDTSsgJEpWOyIKLSAgICAiJENN
KyAkSlQ7IgotICAgICIkQ00rICROUzsiCi0gICAgIiRDTSsgJE5VOyIKLSAgICAiJENNKyAkT1A7
IgotICAgICIkQ00rICRQTzsiCi0gICAgIiRDTSsgJFBSOyIKLSAgICAiJENNKyAkUVU7IgotI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00rICRSSTsiCi0jZW5kaWYKLSAgICAi
JENNKyAkU1k7IgotICAgICIkQ00rICRXSjsiCi0gICAgIiRDTSs7IgotICAgICIkQUxfRk9MTE9X
ICRDTSsgLyAoWyRCSyAkQ1IgJExGICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRT
UCsgJENNKiAoW14kT1AgJENNICRTUF0gfCBbJEFMIHtlb2Z9XSkpOyIKLSAgICAiWyRQUl0gLyAk
Q00rIFskQksgJENSICRMRiAkTkwgJFpXICRTUCB7ZW9mfV07IgotICAgICIkTEI0QnJlYWtzIFsk
TEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICIkTEI0QnJlYWtzICRDTSsgJENBTl9DTTsiCi0gICAg
IiRMRiAkQ1I7IgotICAgICJbJFNQICRaV10gWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIlsk
U1AgJFpXXSAkQ00rICRDQU5fQ007IgotICAgICIkRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9k
cz8gJEVtb2ppVmFyPyAkRW1vamlGb3JTZXFzOyIKLSAgICAiJENNKyAkQ0FOX0NNOyIKLSAgICAi
JENNKiAkV0ogJENNKiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENN
XTsiCi0gICAgIiRDQU5UX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFdK
OyIKLSAgICAiJENNKiAkR0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZXV07
IgotICAgICIkQ0FOVF9DTSAkQ00qICRHTDsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRHTDsi
Ci0gICAgIiRDTCAkQ00rICRDQU5fQ007IgotICAgICIkQ1AgJENNKyAkQ0FOX0NNOyIKLSAgICAi
JEVYICRDTSsgJENBTl9DTTsiCi0gICAgIiRJUyAkQ00rICRDQU5fQ007IgotICAgICIkU1kgJENN
KyAkQ0FOX0NNOyIKLSAgICAiJENMIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ1AgWyRM
QjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAi
JElTIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkU1kgWyRMQjhOb25CcmVha3MtJENNXTsi
Ci0gICAgIlskQ0wgJENQICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7ICIKLSAgICAi
JENNKiAkQ0FOX0NNICRTUCogJENNKiAkT1A7IgotICAgICIkQ0FOVF9DTSAkU1AqICRDTSogJE9Q
OyIKLSAgICAiJEFMX0ZPTExPVz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9G
T0xMT1dfTk9DTSAkQ00rICRTUCsgJENNKiAkT1A7IgotICAgICIkQ00qICRBTF9GT0xMT1dfQ00g
JENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJFNZICRDTSAkU1ArICRPUDsiCi0gICAgIiRDTSog
JE9QICRTUCogJENNKiAkUVU7IgotICAgICIkQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7
IgotICAgICIkQ00qICRCMiAkU1AqICRDTSogJEIyOyIKLSAgICAiJENNKiAkUVUgJENNKiAkQ0FO
X0NNOyIKLSAgICAiJENNKiAkUVUgJExCMThOb25CcmVha3M7IgotICAgICIkQ00qICRDQU5fQ00g
JENNKiAkUVU7IgotICAgICIkQ0FOVF9DTSAkQ00qICRRVTsiCi0gICAgIiRDTSogKCRCQSB8ICRI
WSB8ICROUykgJENNKiBbJExCMjBOb25CcmVha3MtJENNXTsiCi0gICAgIiRDTSogWyRMQjIwTm9u
QnJlYWtzLSRDTV0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAkQkI7IgotICAgICJbXiRD
Ql0gJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsiCi0gICAgIiRDTSogJEhMICRDTSogJFNZOyIK
LSAgICAiJENNKiAkSU4gJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICRJTiAkQ00q
ICRFWDsiCi0gICAgIiRDTSogJElOICRDTSogJElEOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSU47
IgotICAgICIkQ00qICRJTiAkQ00qICROVTsiCi0gICAgIiRDTSogJFBPICRDTSogJElEOyIKLSAg
ICAiJENNKiAkTlUgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwg
JEhMKSAkQ00qICROVTsiCi0gICAgIiRDTSogJElEICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFM
UGx1cyB8ICRITCkgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQ
TzsiCi0gICAgIigkQ00qICgkUFIgfCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAo
JE5VIHwgJElTIHwgJFNZKSkqICRDTSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQ
UiB8ICRQTykpPzsiCi0gICAgIiRDTSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7
IgotICAgICIkQ00qICgkSlQgfCAkSlYpICRDTSogKCRIMiB8ICRKVik7IgotICAgICIkQ00qICRK
VCAkQ00qICgkSDMgfCAkSlQpOyIKLSAgICAiJENNKiAkSU4gJENNKiAoJEgzIHwgJEgyIHwgJEpU
IHwgJEpWIHwgJEpMKTsiCi0gICAgIiRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRK
ViB8ICRKTCk7IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSog
JFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7Igot
ICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRJUzsiCi0gICAgIiRDTSogJE9QICRDTSog
KCRBTFBsdXMgfCAkSEwgfCAkTlUpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkg
JENNKiAkQ1A7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00qICRSSSAk
Q00qICRSSTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1v
ZHM7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0U2FmZUZvcndhcmQgPQotICAgICIhIXNh
ZmVfZm9yd2FyZDsiCi0gICAgIlskQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAk
U1AgJGRpY3Rpb25hcnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRk
aWN0aW9uYXJ5XTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNFNhZmVSZXZlcnNlID0KLSAgICAiISFzYWZlX3JldmVyc2U7IgotICAg
ICIkQ00rIFteJENNICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRDTSsgJFNQIC8g
LjsiCi0gICAgIiRTUCsgJENNKiAkT1A7IgotICAgICIkU1ArICRDTSogJFFVOyIKLSAgICAiJFNQ
KyAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJFNQKyAkQ00qICRCMjsiCi0gICAgIiRDTSogKCRI
WSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOyIK
LSAgICAiKCRDTCB8ICRDUCkgJENNKiAoJE5VIHwgJElTIHwgJFNZKTsiCi0gICAgIiRkaWN0aW9u
YXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KIHN0YXRpYyBTdHJpbmcgbWFwTGluZUl0ZXJhdG9yTW9kZVRv
UnVsZXMoTGluZUJyZWFrSXRlcmF0b3JNb2RlIG1vZGUsIGJvb2wgaXNDSkspCiB7Ci0gICAgU3Ry
aW5nQnVpbGRlciBydWxlc0J1aWxkZXI7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFBy
b2xvZ3VlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNCZWZvcmUp
OwogICAgIHN3aXRjaCAobW9kZSkgewogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFY
MTQ6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tRGVmYXVsdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLKTsK
LSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxlczsKICAgICBj
YXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0TG9vc2U6Ci0gICAgICAgIHJ1bGVzQnVpbGRl
ci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgOiB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0
dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLUnVsZXMgOiBsaW5lQnJl
YWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJh
dG9yTW9kZVVBWDE0Tm9ybWFsOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8g
dWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21O
b3JtYWxOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRT
dHJpY3Q6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1l
bnRzQ3VzdG9tU3RyaWN0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
UnVsZXM7CiAgICAgfQotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0Fm
dGVyKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0Rm9yd2FyZCk7Ci0gICAgcnVsZXNC
dWlsZGVyLmFwcGVuZCh1YXgxNFJldmVyc2UpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4
MTRTYWZlRm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVSZXZlcnNl
KTsKLSAgICByZXR1cm4gcnVsZXNCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuICIiOwogfQogCiAvLyBSZWNvZ25pemUgQkNQNDcgY29tcGxp
YW50IHByaW1hcnkgbGFuZ3VhZ2UgdmFsdWVzIG9mICd6aCcsICdqYScsICdrbycKQEAgLTc4Niw2
ICsyNTEsMjQgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIG9wZW5MaW5lQnJlYWtJdGVyYXRvcihjb25z
dCBBdG9taWNTdHJpbmcmIGxvY2FsZSwgTGluZUJyZWFrSXQKICAgICBpZiAobW9kZSA9PSBMaW5l
QnJlYWtJdGVyYXRvck1vZGVVQVgxNCkKICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW4oVUJS
S19MSU5FLCBsb2NhbGVJc0VtcHR5ID8gY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkgOiBsb2Nh
bGUuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOwogICAgIGVsc2Ug
eworICAgICAgICBCcmVha2luZ1J1bGVTZXQgcnVsZVNldDsKKyAgICAgICAgc3dpdGNoIChtb2Rl
KSB7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTQ6CisgICAgICAgICAg
ICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLIDogQnJlYWtpbmdS
dWxlU2V0OjpVQVgxNE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExp
bmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0TG9vc2U6CisgICAgICAgICAgICBydWxlU2V0ID0gaXND
SksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVB
WDE0TG9vc2VOb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJl
YWtJdGVyYXRvck1vZGVVQVgxNE5vcm1hbDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/
IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0
Tm9ybWFsTm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFr
SXRlcmF0b3JNb2RlVUFYMTRTdHJpY3Q6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBC
cmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0
cmljdE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChh
dXRvKiBpdGVyYXRvciA9IGl0ZXJhdG9yRm9yUnVsZVNldChydWxlU2V0KSkKKyAgICAgICAgICAg
IHJldHVybiBpdGVyYXRvcjsKKwogICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKICAg
ICAgICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pL
KTsKICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51
cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcnVsZXMubGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1
cywgJm9wZW5TdGF0dXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJl
YWtJdGVyYXRvci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCmlu
ZGV4IGQ5MDMyMTVhZTQxMzdlNGMzYTllYTM1YjNkMDI1YmY1MmU0NTE4ZWMuLmQyZDA3YzI4ZmI4
ZDQwOTllZTk2OWMyMGY1ODQ4OTIyOGZiMDA3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRC
cmVha0l0ZXJhdG9yLmgKQEAgLTM4LDYgKzM4LDMwIEBAIGVudW0gTGluZUJyZWFrSXRlcmF0b3JN
b2RlIHsKICAgICBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNFN0cmljdCwKIH07CiAKK2VudW0g
Y2xhc3MgQnJlYWtpbmdSdWxlU2V0IHsKKyAgICBDdXJzb3JNb3ZlbWVudCwKKyAgICBVQVgxNENK
SywKKyAgICBVQVgxNE5vbkNKSywKKyAgICBVQVgxNExvb3NlQ0pLLAorICAgIFVBWDE0TG9vc2VO
b25DSkssCisgICAgVUFYMTROb3JtYWxDSkssCisgICAgVUFYMTROb3JtYWxOb25DSkssCisgICAg
VUFYMTRTdHJpY3RDSkssCisgICAgVUFYMTRTdHJpY3ROb25DSksKK307CisKK2V4dGVybiBjb25z
dCBjaGFyKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciog
bGluZUJyZWFrSXRlcmF0b3JVQVgxNENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJl
YWtJdGVyYXRvclVBWDE0TG9vc2VDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJl
YWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIq
IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFy
KiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CisKK1RleHRCcmVha0l0
ZXJhdG9yKiBpdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0KTsKKwogLy8gVGhpcyBp
cyBzaW1pbGFyIHRvIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBpbiBtb3N0IGNhc2VzLCBidXQg
aXMgc3ViamVjdCB0bwogLy8gcGxhdGZvcm0gVUkgY29udmVudGlvbnMuIE9uZSBub3RhYmxlIGV4
YW1wbGUgd2hlcmUgdGhpcyBjYW4gYmUgZGlmZmVyZW50CiAvLyBmcm9tIGNoYXJhY3RlciBicmVh
ayBpdGVyYXRvciBpcyBUaGFpIHByZXBlbmQgY2hhcmFjdGVycywgc2VlIGJ1ZyAyNDM0Mi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJu
YWxJQ1VNYWMubW0gYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvcklu
dGVybmFsSUNVTWFjLm1tCmluZGV4IGJlZjVkYWE2NDI4ODgyMWUyMGYyNjI4YzY4NTVlZThlODhh
Mzg5MmMuLjZkZjhjZDYwZDZkMjRmYzFlMDBjMjYzZDk3Y2Q3NGFmNzY0MTJmYjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VN
YWMubW0KKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVU1hYy5tbQpAQCAtMjEsMTIgKzIxLDc1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAiVGV4
dEJyZWFrSXRlcmF0b3IuaCIKKworI2lmIGRlZmluZWQoVV9TSE9XX0NQTFVTUExVU19BUEkpCisj
dW5kZWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKyNlbmRpZgorI2RlZmluZSBVX1NIT1dfQ1BMVVNQ
TFVTX0FQSSAxCisKKyNpbmNsdWRlIDx1bmljb2RlL3JiYmkuaD4KKyNpbmNsdWRlIDx1bmljb2Rl
L3VkYXRhLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCitAaW50ZXJmYWNlIFdURkJ1
bmRsZUZpbmRlciA6IE5TT2JqZWN0CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXVEZCdW5kbGVG
aW5kZXIKK0BlbmQKKwogbmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdCBpbnQgbWF4TG9j
YWxlU3RyaW5nTGVuZ3RoID0gMzI7CiAKK1RleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvckZvclJ1
bGVTZXQoQnJlYWtpbmdSdWxlU2V0IHJ1bGVTZXQpCit7CisgICAgTlNTdHJpbmcgKmZpbGVOYW1l
QmFzZTsKKyAgICBzd2l0Y2ggKHJ1bGVTZXQpIHsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6
Q3Vyc29yTW92ZW1lbnQ6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6
OlVBWDE0Q0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSksiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRO
b25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
bkNKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExv
b3NlQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZUNKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgx
NExvb3NlTm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZU5vbkNKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxl
U2V0OjpVQVgxNE5vcm1hbENKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsQ0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2lu
Z1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksiOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3RDSks6CisgICAgICAgIGZpbGVOYW1lQmFz
ZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSyI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdE5vbkNKSzoKKyAgICAgICAgZmls
ZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLIjsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCisgICAgTlNCdW5kbGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5k
bGVGb3JDbGFzczpbV1RGQnVuZGxlRmluZGVyIGNsYXNzXV07CisgICAgTlNTdHJpbmcgKnBhdGgg
PSBbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpmaWxlTmFtZUJhc2Ugb2ZUeXBlOkAiYnJrIiBpbkRp
cmVjdG9yeTpAIkJyZWFraW5nUnVsZXMiXTsKKyAgICBpZiAoIXBhdGgpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIE5TU3RyaW5nICpkaXJlY3RvcnkgPSBbcGF0aCBzdHJpbmdCeURlbGV0
aW5nTGFzdFBhdGhDb21wb25lbnRdOworICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJP
X0VSUk9SOworICAgIExvY2FsVURhdGFNZW1vcnlQb2ludGVyIGRhdGEodWRhdGFfb3BlbihbZGly
ZWN0b3J5IFVURjhTdHJpbmddLCAiYnJrIiwgW2ZpbGVOYW1lQmFzZSBVVEY4U3RyaW5nXSwgJmVy
cm9yQ29kZSkpOworICAgIGlmIChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvIGl0ZXJhdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxSdWxl
QmFzZWRCcmVha0l0ZXJhdG9yPihkYXRhLm9ycGhhbigpLCBlcnJvckNvZGUpOworICAgIGlmIChl
cnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXh0QnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yLnJlbGVh
c2UoKSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0ZXh0QnJl
YWtMb2NhbGVQcmVmZXJlbmNlKCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+
IGxvY2FsZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlWYWx1ZShDRlNUUigiQXBwbGVUZXh0
QnJlYWtMb2NhbGUiKSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285490</attachid>
            <date>2016-08-06 11:11:51 -0700</date>
            <delta_ts>2016-08-06 12:17:53 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160806111022.patch</filename>
            <type>text/plain</type>
            <size>289608</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTFhOGVhNzFmOTFiNmU2MWM4MGI2MWVhNDFiZjQ1MWEyNjBjNGM3Li5iNTcyMTlmMjI4ODQ0NDM0
MzNkODM3NWUyZWE2YjVlMTRiNmQxYTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wNiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDUgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIExFQkRlY29kZXIgYW5kIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyNmIyZWJmZmUy
Y2FkYTM3Y2NkYWUzY2VkZjZlZmM4NTNiNjE2YjEuLjJkNWM0Yzk0ZjZmZmE4ODk4YjIyMWI1ODQ5
NTZiOTU4ZTM0MjgxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgtMDYgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBi
cmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTog
QWRkZWQuCisgICAgICAgICogd3RmL2dlbmJyazogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisg
ICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuY3BwOgorICAgICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RG
OjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0
ZXJhdG9yKToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAg
ICAqIHd0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAg
ICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorCiAyMDE2LTA4LTA2ICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV1RGIG5lZWRzIGEgdmFyaWFudCBpbXBsZW1l
bnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMzBkYzllNGQwMjAzNjIw
YjE0Y2EyMjhiNGViMmJiNGZkZWNlZjBkLi4xYWJlNDdjMjQ2NGRhODk4ZmFkNTMwYWNjMzI2Mzdj
OGJkYTYyYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOSw2ICsxMTA5
LDcgQEAKIAkJMTRGOTc0NDcxMzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhD
ODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBK
U1N0cmluZ1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNG
NzM3NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5j
cHAgKi87IH07CisJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFE
NTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2
MkQ4NUI2MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQx
QzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07
CkBAIC0zMjcyLDYgKzMyNzMsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFz
ZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYg
LyogSmF2YVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2Ny
aXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQx
QkNGRiAvKiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKYXZhU2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4
RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7
IHBhdGggPSAuLi9XVEYvQnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9p
bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0
aCA9IGIzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTQzOCw2ICs1NDQwLDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAw
NzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVs
ZXMgKi8sCiAJCQkJMEY2MTgzMzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAog
CQkJCTBGNjE4MzM0MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywK
IAkJCQkwRjYxODMzNTFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAg
LTg0NTcsNiArODQ2MCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBp
biBSZXNvdXJjZXMgKi8sCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5n
UnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggM2JhODA0MDZiNjg3ODcyY2RjMmUzZTgxNmJlYjAwNDNhOTM5YzI3MC4uYTg5
NmRkYzMwMmFmODZjNTg2MzQ1NjU4NmNkMjdhMzNiMWJiZTE1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcsMTcgQEAKIAlvYmplY3RzID0gewog
CiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2
OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVn
YXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMw
MENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4Nzgy
MUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOwor
CQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsK
KwkJCXByb2R1Y3ROYW1lID0gIkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2
MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFn
Z3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBC
OTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtMzEyLDYgKzMyMywxNSBAQAogCQlBOEE0
NzQ4NzE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlRocmVhZERhdGEuaCAqLzsgfTsKIAkJQThBNDc0OEMxNTFBODI2NDAwNDEyM0ZGIC8qIGNv
bmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1
M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJl
RGVmaW5lcy5oICovOyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMuY3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VDMUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTMxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi87IH07CisJ
CUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Ez
N0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAq
LzsgfTsKKwkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksuY3BwICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YwMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U3MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLzsgfTsKKwkJ
QzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwICovOyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkz
NjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgKi87IH07CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKQEAgLTM0NCw2ICszNjQsMTMgQEAKIAkJ
CXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVt
b3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsK
KwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0
IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9
IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3Vy
Y2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRh
aW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAq
LzsKQEAgLTQzNiw2ICs0NjMsMTggQEAKIAkJMUMxODFDOEQxRDMwN0FCODAwRjVGQTE2IC8qIFVU
ZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzE4MUM4RTFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZBMTYgLyogVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHBhdGggPSBtYWMv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NTFENTU5QTY5MDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
QjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25D
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkxRDU1OUFFRjAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0OyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUMx
RDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNv
dXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMubWFrZTsgcGF0aCA9IHd0Zi9EZXJp
dmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1c2VzVGFicyA9IDE7IH07
CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQ7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RFQyAvKiBMaW5lQnJlYWtJ
dGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODgx
NTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJU
b1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50
ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjU4LDYgKzY5NywxNSBAQAogCQlBOEE0NzM3QjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFk
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZUaHJlYWREYXRhLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAv
KiBjb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBG
ZWF0dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJl
RGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMDFENTVDOTcx
MDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7
IHBhdGggPSBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
MkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBN
ZWRpYVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjUsNiArNzczLDI0IEBACiAJCQlwYXRo
ID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUNEMTg3OTExRDU1
OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RF
QyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLywKKwkJCQkxQ0I0RkI5NDFENTU5
QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8sCisJCQkJMUNC
NEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0
ICovLAorCQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLywKKwkJ
CQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5
RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQg
Ki8sCisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTc0NiwxMCArODEyLDEyIEBA
CiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3Vy
Y2VzLm1ha2UgKi8sCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAwRTc4Qjc2IC8qIENvbmZpZ3VyYXRp
b25zICovLAogCQkJCTE0MDIyRjNGMThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJ
CQkJNUQyNDdCNjMxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2R1Y3RzICovLAogCQkJCTVEMjQ3Qjc2
MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJCQkJQzJDQTM3REYxRDU1QzhEODAwNDg2
Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYg
LyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZG
IC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtMTA4Myw2ICsxMTUxLDcgQEAKIAkJ
QThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVh
a2luZ1J1bGVzICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3UgKi8sCiAJ
CQkJQTVCQTE1RjYxODI0MzU5RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCUE1QkExNUYxMTgyNDMz
OUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMTU4LDYgKzEyMjcsMjMgQEAKIAkJCXBhdGggPSBp
Y3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkNBMzdERjFENTVDOEQ4
MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTIxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi8sCisJCQkJ
QzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNjFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAg
Ki8sCisJCQkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSksuY3BwICovLAorCQkJCUMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0g
IkRlcml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvV1RGOworCQkJc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsKIAkJQ0U0NjUxNkMxOURCMUZCNDAw
M0VDQTA1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTE0NzAsNiArMTU1Niw3IEBACiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRl
cGVuZGVuY2llcyA9ICgKKwkJCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gV1RGOwpAQCAtMTUwMCwxMiArMTU4Nywy
NyBAQAogCQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RG
ICovLAogCQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICov
LAorCQkJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJ
CQkJMTQ0N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFsbG9jICovLAogCQkJKTsKIAkJfTsK
IC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRC
dWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVy
YXRlIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQ
aGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJ
CSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgRGVyaXZl
ZCBTb3VyY2VzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNo
ZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzL1dURlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZc
IlxuXG4vYmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV1RGXG5leHBvcnQgV1RGPVwiV1RGXCJc
blxuaWYgWyAhIC1kIEJyZWFraW5nUnVsZXMgXTsgdGhlblxuICAgIG1rZGlyIEJyZWFraW5nUnVs
ZXNcbmZpXG5cbmV4cG9ydCBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTPTFcbmlmIFsgXCIkU0RL
X1ZFUlNJT05cIiA9PSBcIjEwLjEwXCIgXTsgdGhlblxuICAgIGV4cG9ydCBHRU5CUks9Z2VuYnJr
LTUzLTFcbiAgICBleHBvcnQgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPTBcbmVsaWYgWyBcIiRT
REtfVkVSU0lPTlwiID09IFwiMTAuMTFcIiBdOyB0aGVuXG4gICAgZXhwb3J0IEdFTkJSSz1nZW5i
cmstNTUtMVxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9MVxuZWxzZVxuICAg
IGV4cG9ydCBHRU5CUks9Z2VuYnJrLTU3LTFcbiAgICBleHBvcnQgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUPTFcbmZpXG5cbmlmIFsgXCIke0FDVElPTn1cIiA9IFwiYnVpbGRcIiAtbyBcIiR7QUNU
SU9OfVwiID0gXCJpbnN0YWxsXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGhkcnNcIiAt
byBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsYXBpXCIgXTsgdGhlblxubWFrZSAtLW5vLWJ1aWx0
aW4tcnVsZXMgLWYgXCJXVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2VcIiAtaiBgL3Vzci9zYmlu
L3N5c2N0bCAtbiBody5hY3RpdmVjcHVgIFNES1JPT1Q9XCIke1NES1JPT1R9XCJcbmZpXG4iOwor
CQl9OwogCQk2NUFGQTE3MDE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9
IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFz
ayA9IDIxNDc0ODM2NDc7CkBAIC0xNTM2LDYgKzE2MzgsOCBAQAogCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUE4QTQ3Mzg2MTUxQTgyNUIwMDQxMjNG
RiAvKiBBc3NlcnRpb25zLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0YxMUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDM1MTUxQTgy
NUIwMDQxMjNGRiAvKiBBdG9taWNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzBFQ0E2
MEQxQjAyNDI2ODAwNDQ5NzM5IC8qIEF0b21pY1N0cmluZ0ltcGwuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTVCQTE1RkExODI0MzVBNjAwQTgyRTY5IC8qIEF0b21pY1N0cmluZ0ltcGxDRi5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTE1NjMsNiArMTY2Nyw3IEBACiAJCQkJQThBNDczQjAxNTFBODI1
QjAwNDEyM0ZGIC8qIGRvdWJsZS1jb252ZXJzaW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDczQkExNTFBODI1QjAwNDEyM0ZGIC8qIGR0b2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDczQjMxNTFBODI1QjAwNDEyM0ZGIC8qIGZhc3QtZHRvYS5jYyBpbiBTb3VyY2VzICovLAorCQkJ
CUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGODg1RTBGMTg0NUFFQTkwMEYxRTNGQSAvKiBGYXN0
Qml0VmVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0MzMTUxQTgyNUIwMDQxMjNG
RiAvKiBGYXN0TWFsbG9jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDRUUyMjAxMUNFQTc1NTEw
MDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRpb25zLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0xNTc4
LDYgKzE2ODMsNyBAQAogCQkJCUE4QTQ3M0U5MTUxQTgyNUIwMDQxMjNGRiAvKiBNRDUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0Q1NDk3QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNFQzE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFs
bG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdGMDFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOEE0NzNGNDE1MUE4MjVCMDA0MTIzRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBOEE0NzNGNzE1MUE4MjVCMDA0MTIzRkYgLyogT1NBbGxvY2F0b3JQb3NpeC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGOTE1MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5k
b21Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNTg1LDYgKzE2OTEsNyBAQAogCQkJCTFD
MTgxQzkzMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZGRjE5REMxQkIzMzRFQjAwODg2RDkxIC8qIFBhcmFsbGVsSGVscGVyUG9v
bC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjgyNEE2ODFCNzQ0M0EwMDAyRTM0NUQgLyogUGFy
a2luZ0xvdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRjlEMzM2MjE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQThBNDc0MTQxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlci5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTE2MTksOSArMTcyNiwxMyBAQAogCQkJCUE4QTQ3NDRBMTUxQTgy
NUIwMDQxMjNGRiAvKiBUaHJlYWRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0NEUx
NTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZGluZ1B0aHJlYWRzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QTQ3NDY5MTUxQTgyNUIwMDQxMjNGRiAvKiBVVEY4LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUZBNDdDOEExNTI1MDJEQTAwNTY4RDFC
IC8qIFdlYkNvcmVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFNDQ3OUMxQjdBQUEw
MzAwOTQ5OEVCIC8qIFdvcmRMb2NrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0U5MUQ1
NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEQ0VFMjIwMzFDRUE3NTUxMDAw
QzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBMEFEMzkxQTk2MjQ1NTAwNTM2REY2IC8q
IFdvcmtRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzRDFBOTYyNTNDMDA1MzZE
RjYgLyogV29ya1F1ZXVlQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0NDUxNTFB
ODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE2MzcsNiAr
MTc0OCwxMSBAQAogCQkJdGFyZ2V0ID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAq
LzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FFQzMxOEZDRTU3MDAwQjNEN0ZGIC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJMUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBC
WFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5Owor
CQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAq
LzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJNjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBC
WFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5Owog
CQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMg
Ki87CkBAIC0xNjY2LDYgKzE3ODIsMzAgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsK
IAkJfTsKKwkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICovID0geworCQkJaXNh
ID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9
IDY1NDFDQUY0MTYzMERCMjYwMDZEMERFQyAvKiBDb3B5V1RGSGVhZGVycy54Y2NvbmZpZyAqLzsK
KwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUp
IjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTFDRDE4Nzg1MUQ1NTY5NUMwMEND
N0RFQyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJ
CQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDY1NDFDQUY0MTYzMERCMjYwMDZEMERFQyAv
KiBDb3B5V1RGSGVhZGVycy54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJ
UFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gUmVsZWFz
ZTsKKwkJfTsKKwkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rpb24gKi8gPSB7
CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVm
ZXJlbmNlID0gNjU0MUNBRjQxNjMwREIyNjAwNkQwREVDIC8qIENvcHlXVEZIZWFkZXJzLnhjY29u
ZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJH
RVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDI0N0I2
NDE0Njg5Qjg2MDBFNzhCNzYgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmln
dXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0
NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKQEAgLTE3NDksNiArMTg4OSwx
NiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENv
bmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODMxRDU1Njk1QzAw
Q0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0
ICJEZXJpdmVkIFNvdXJjZXMiICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsK
KwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVD
IC8qIERlYnVnICovLAorCQkJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICov
LAorCQkJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICovLAorCQkJKTsK
KwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1
cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjVDMTQ2ODlCODYwMEU3OEI3
NiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldURiIgKi8gPSB7
CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9
ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvYnJraXRlci5oIGIvU291cmNl
L1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFhNWU1NTI3OTYwOTBlYWVi
Y2Q3Y2U3YjdkMjc1YWE4YjM3NzViNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1
L3VuaWNvZGUvYnJraXRlci5oCkBAIC0wLDAgKzEsNjU1IEBACisvKgorKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxNCwgSW50ZXJuYXRpb25hbCBCdXNp
bmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJl
c2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBicmtpdGVyLmgKKyoK
KyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAg
RGVzY3JpcHRpb24KKyogICAwMi8xOC85NyAgICBhbGl1ICAgICAgICBBZGRlZCB0eXBlZGVmIGZv
ciBUZXh0Q291bnQuICBNYWRlIERPTkUgY29uc3QuCisqICAgMDUvMDcvOTcgICAgYWxpdSAgICAg
ICAgRml4ZWQgRExMIGRlY2xhcmF0aW9uLgorKiAgIDA3LzA5Lzk3ICAgIGpmaXR6ICAgICAgIFJl
bmFtZWQgQnJlYWtJdGVyYXRvciBhbmQgaW50ZXJmYWNlIHN5bmNlZCB3aXRoIEpESworKiAgIDA4
LzExLzk4ICAgIGhlbGVuYSAgICAgIFN5bmMtdXAgSkRLMS4yLgorKiAgIDAxLzEzLzIwMDAgIGhl
bGVuYSAgICAgIEFkZGVkIFVFcnJvckNvZGUgcGFyYW1ldGVyIHRvIGNyZWF0ZVhYWEluc3RhbmNl
IG1ldGhvZHMuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBCUktJVEVS
X0gKKyNkZWZpbmUgQlJLSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisv
KioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTogQnJlYWsgSXRlcmF0b3IuCisgKi8KKwor
I2lmIFVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8q
CisgKiBBbGxvdyB0aGUgZGVjbGFyYXRpb24gb2YgQVBJcyB3aXRoIHBvaW50ZXJzIHRvIEJyZWFr
SXRlcmF0b3IKKyAqIGV2ZW4gd2hlbiBicmVhayBpdGVyYXRpb24gaXMgcmVtb3ZlZCBmcm9tIHRo
ZSBidWlsZC4KKyAqLworY2xhc3MgQnJlYWtJdGVyYXRvcjsKKworVV9OQU1FU1BBQ0VfRU5ECisK
KyNlbHNlCisKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3VuaXN0ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKyNpbmNsdWRlICJ1bmlj
b2RlL2xvY2lkLmgiCisjaW5jbHVkZSAidW5pY29kZS91YnJrLmgiCisjaW5jbHVkZSAidW5pY29k
ZS9zdHJlbnVtLmgiCisjaW5jbHVkZSAidW5pY29kZS91dGV4dC5oIgorI2luY2x1ZGUgInVuaWNv
ZGUvdW1pc2MuaCIKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBUaGUgQnJlYWtJdGVy
YXRvciBjbGFzcyBpbXBsZW1lbnRzIG1ldGhvZHMgZm9yIGZpbmRpbmcgdGhlIGxvY2F0aW9uCisg
KiBvZiBib3VuZGFyaWVzIGluIHRleHQuIEJyZWFrSXRlcmF0b3IgaXMgYW4gYWJzdHJhY3QgYmFz
ZSBjbGFzcy4KKyAqIEluc3RhbmNlcyBvZiBCcmVha0l0ZXJhdG9yIG1haW50YWluIGEgY3VycmVu
dCBwb3NpdGlvbiBhbmQgc2NhbiBvdmVyCisgKiB0ZXh0IHJldHVybmluZyB0aGUgaW5kZXggb2Yg
Y2hhcmFjdGVycyB3aGVyZSBib3VuZGFyaWVzIG9jY3VyLgorICogPHA+CisgKiBMaW5lIGJvdW5k
YXJ5IGFuYWx5c2lzIGRldGVybWluZXMgd2hlcmUgYSB0ZXh0IHN0cmluZyBjYW4gYmUgYnJva2Vu
CisgKiB3aGVuIGxpbmUtd3JhcHBpbmcuIFRoZSBtZWNoYW5pc20gY29ycmVjdGx5IGhhbmRsZXMg
cHVuY3R1YXRpb24gYW5kCisgKiBoeXBoZW5hdGVkIHdvcmRzLgorICogPHA+CisgKiBTZW50ZW5j
ZSBib3VuZGFyeSBhbmFseXNpcyBhbGxvd3Mgc2VsZWN0aW9uIHdpdGggY29ycmVjdAorICogaW50
ZXJwcmV0YXRpb24gb2YgcGVyaW9kcyB3aXRoaW4gbnVtYmVycyBhbmQgYWJicmV2aWF0aW9ucywg
YW5kCisgKiB0cmFpbGluZyBwdW5jdHVhdGlvbiBtYXJrcyBzdWNoIGFzIHF1b3RhdGlvbiBtYXJr
cyBhbmQgcGFyZW50aGVzZXMuCisgKiA8cD4KKyAqIFdvcmQgYm91bmRhcnkgYW5hbHlzaXMgaXMg
dXNlZCBieSBzZWFyY2ggYW5kIHJlcGxhY2UgZnVuY3Rpb25zLCBhcworICogd2VsbCBhcyB3aXRo
aW4gdGV4dCBlZGl0aW5nIGFwcGxpY2F0aW9ucyB0aGF0IGFsbG93IHRoZSB1c2VyIHRvCisgKiBz
ZWxlY3Qgd29yZHMgd2l0aCBhIGRvdWJsZSBjbGljay4gV29yZCBzZWxlY3Rpb24gcHJvdmlkZXMg
Y29ycmVjdAorICogaW50ZXJwcmV0YXRpb24gb2YgcHVuY3R1YXRpb24gbWFya3Mgd2l0aGluIGFu
ZCBmb2xsb3dpbmcKKyAqIHdvcmRzLiBDaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIGEg
d29yZCwgc3VjaCBhcyBzeW1ib2xzIG9yCisgKiBwdW5jdHVhdGlvbiBtYXJrcywgaGF2ZSB3b3Jk
LWJyZWFrcyBvbiBib3RoIHNpZGVzLgorICogPHA+CisgKiBDaGFyYWN0ZXIgYm91bmRhcnkgYW5h
bHlzaXMgYWxsb3dzIHVzZXJzIHRvIGludGVyYWN0IHdpdGgKKyAqIGNoYXJhY3RlcnMgYXMgdGhl
eSBleHBlY3QgdG8sIGZvciBleGFtcGxlLCB3aGVuIG1vdmluZyB0aGUgY3Vyc29yCisgKiB0aHJv
dWdoIGEgdGV4dCBzdHJpbmcuIENoYXJhY3RlciBib3VuZGFyeSBhbmFseXNpcyBwcm92aWRlcyBj
b3JyZWN0CisgKiBuYXZpZ2F0aW9uIG9mIHRocm91Z2ggY2hhcmFjdGVyIHN0cmluZ3MsIHJlZ2Fy
ZGxlc3Mgb2YgaG93IHRoZQorICogY2hhcmFjdGVyIGlzIHN0b3JlZC4gIEZvciBleGFtcGxlLCBh
biBhY2NlbnRlZCBjaGFyYWN0ZXIgbWlnaHQgYmUKKyAqIHN0b3JlZCBhcyBhIGJhc2UgY2hhcmFj
dGVyIGFuZCBhIGRpYWNyaXRpY2FsIG1hcmsuIFdoYXQgdXNlcnMKKyAqIGNvbnNpZGVyIHRvIGJl
IGEgY2hhcmFjdGVyIGNhbiBkaWZmZXIgYmV0d2VlbiBsYW5ndWFnZXMuCisgKiA8cD4KKyAqIFRo
ZSB0ZXh0IGJvdW5kYXJ5IHBvc2l0aW9ucyBhcmUgZm91bmQgYWNjb3JkaW5nIHRvIHRoZSBydWxl
cworICogZGVzY3JpYmVkIGluIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXggIzI5LCBUZXh0IEJvdW5k
YXJpZXMsIGFuZAorICogVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMTQsIExpbmUgQnJlYWtpbmcg
UHJvcGVydGllcy4gIFRoZXNlCisgKiBhcmUgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cudW5pY29k
ZS5vcmcvcmVwb3J0cy90cjE0LyBhbmQKKyAqIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0
cy90cjI5Ly4KKyAqIDxwPgorICogSW4gYWRkaXRpb24gdG8gdGhlIEMrKyBBUEkgZGVmaW5lZCBp
biB0aGlzIGhlYWRlciBmaWxlLCBhCisgKiBwbGFpbiBDIEFQSSB3aXRoIGVxdWl2YWxlbnQgZnVu
Y3Rpb25hbGl0eSBpcyBkZWZpbmVkIGluIHRoZQorICogZmlsZSB1YnJrLmgKKyAqIDxwPgorICog
Q29kZSBzbmlwcGV0cyBpbGx1c3RyYXRpbmcgdGhlIHVzZSBvZiB0aGUgQnJlYWsgSXRlcmF0b3Ig
QVBJcworICogYXJlIGF2YWlsYWJsZSBpbiB0aGUgSUNVIFVzZXIgR3VpZGUsCisgKiBodHRwOi8v
aWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9ib3VuZGFyeUFuYWx5c2lzLmh0bWwKKyAqIGFuZCBp
biB0aGUgc2FtcGxlIHByb2dyYW0gaWN1L3NvdXJjZS9zYW1wbGVzL2JyZWFrL2JyZWFrLmNwcAor
ICoKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIEJyZWFrSXRlcmF0b3IgOiBwdWJsaWMgVU9iamVj
dCB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogIGRlc3RydWN0b3IKKyAgICAgKiAgQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+QnJlYWtJdGVyYXRvcigpOworCisgICAg
LyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgYW5vdGhlciBvYmplY3QgaXMgc2VtYW50aWNhbGx5
IGVxdWFsIHRvIHRoaXMKKyAgICAgKiBvbmUuIFRoZSBvdGhlciBvYmplY3Qgc2hvdWxkIGJlIGFu
IGluc3RhbmNlIG9mIHRoZSBzYW1lIHN1YmNsYXNzIG9mCisgICAgICogQnJlYWtJdGVyYXRvci4g
T2JqZWN0cyBvZiBkaWZmZXJlbnQgc3ViY2xhc3NlcyBhcmUgY29uc2lkZXJlZAorICAgICAqIHVu
ZXF1YWwuCisgICAgICogPFA+CisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBCcmVha0l0ZXJh
dG9yIGlzIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZQorICAgICAqIHNhbWUgdGV4dCwgYW5k
IGlzIHRoZSBzYW1lIGNsYXNzIGFuZCB0eXBlICh3b3JkLCBsaW5lLCBldGMuKSBvZgorICAgICAq
IEJyZWFrSXRlcmF0b3IsIGFzIHRoZSBhcmd1bWVudC4gIFRleHQgaXMgY29uc2lkZXJlZCB0aGUg
c2FtZSBpZgorICAgICAqIGl0IGNvbnRhaW5zIHRoZSBzYW1lIGNoYXJhY3RlcnMsIGl0IG5lZWQg
bm90IGJlIHRoZSBzYW1lCisgICAgICogb2JqZWN0LCBhbmQgc3R5bGVzIGFyZSBub3QgY29uc2lk
ZXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29s
IG9wZXJhdG9yPT0oY29uc3QgQnJlYWtJdGVyYXRvciYpIGNvbnN0ID0gMDsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIGNvbXBsZW1lbnQgb2YgdGhlIHJlc3VsdCBvZiBvcGVyYXRvcj09
CisgICAgICogQHBhcmFtIHJocyBUaGUgQnJlYWtJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3Ig
aW5lcXVhbGl0eQorICAgICAqIEByZXR1cm4gdGhlIGNvbXBsZW1lbnQgb2YgdGhlIHJlc3VsdCBv
ZiBvcGVyYXRvcj09CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVUJvb2wg
b3BlcmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiByaHMpIGNvbnN0IHsgcmV0dXJuICFvcGVy
YXRvcj09KHJocyk7IH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHBvbHltb3JwaGljIGNv
cHkgb2YgdGhpcyBvYmplY3QuICBUaGlzIGlzIGFuIGFic3RyYWN0CisgICAgICogbWV0aG9kIHdo
aWNoIHN1YmNsYXNzZXMgaW1wbGVtZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3QgPSAwOworCisg
ICAgLyoqCisgICAgICogUmV0dXJuIGEgcG9seW1vcnBoaWMgY2xhc3MgSUQgZm9yIHRoaXMgb2Jq
ZWN0LiBEaWZmZXJlbnQgc3ViY2xhc3NlcworICAgICAqIHdpbGwgcmV0dXJuIGRpc3RpbmN0IHVu
ZXF1YWwgdmFsdWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3QgPSAwOworCisgICAgLyoq
CisgICAgICogUmV0dXJuIGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBh
bmFseXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIENo
YXJhY3Rlckl0ZXJhdG9yJiBnZXRUZXh0KHZvaWQpIGNvbnN0ID0gMDsKKworCisgICAgLyoqCisg
ICAgICAqICBHZXQgYSBVVGV4dCBmb3IgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICAq
ICBUaGUgcmV0dXJuZWQgVVRleHQgaXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBVVGV4dCB1c2Vk
IGludGVybmFsbHkKKyAgICAgICogIGJ5IHRoZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlv
bi4gIEl0IGNhbiBzYWZlbHkgYmUgdXNlZCB0bworICAgICAgKiAgYWNjZXNzIHRoZSB0ZXh0IHdp
dGhvdXQgaW1wYWN0aW5nIGFueSBicmVhayBpdGVyYXRvciBvcGVyYXRpb25zLAorICAgICAgKiAg
YnV0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmIG11c3Qgbm90IGJlIGFsdGVyZWQuCisgICAg
ICAqCisgICAgICAqIEBwYXJhbSBmaWxsSW4gQSBVVGV4dCB0byBiZSBmaWxsZWQgaW4uICBJZiBO
VUxMLCBhIG5ldyBVVGV4dCB3aWxsIGJlCisgICAgICAqICAgICAgICAgICBhbGxvY2F0ZWQgdG8g
aG9sZCB0aGUgcmVzdWx0LgorICAgICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFueSBlcnJv
ciBjb2Rlcy4KKyAgICAgICogQHJldHVybiAgIFRoZSBjdXJyZW50IFVUZXh0IGZvciB0aGlzIGJy
ZWFrIGl0ZXJhdG9yLiAgSWYgYW4gaW5wdXQKKyAgICAgICogICAgICAgICAgIFVUZXh0IHdhcyBw
cm92aWRlZCwgaXQgd2lsbCBhbHdheXMgYmUgcmV0dXJuZWQuCisgICAgICAqIEBzdGFibGUgSUNV
IDMuNAorICAgICAgKi8KKyAgICAgdmlydHVhbCBVVGV4dCAqZ2V0VVRleHQoVVRleHQgKmZpbGxJ
biwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDaGFu
Z2UgdGhlIHRleHQgb3ZlciB3aGljaCB0aGlzIG9wZXJhdGVzLiBUaGUgdGV4dCBib3VuZGFyeSBp
cworICAgICAqIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgVW5p
Y29kZVN0cmluZyB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoY29uc3QgVW5pY29kZVN0cmlu
ZyAmdGV4dCkgPSAwOworCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGJyZWFrIGl0ZXJhdG9y
IHRvIG9wZXJhdGUgb3ZlciB0aGUgdGV4dCByZXByZXNlbnRlZCBieQorICAgICAqIHRoZSBVVGV4
dC4gIFRoZSBpdGVyYXRvciBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgc3RhcnQuCisgICAgICoK
KyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgc3VwcGxp
ZWQgVVRleHQuICBUaGlzIG1lYW5zCisgICAgICogdGhhdCB0aGUgY2FsbGVyIGlzIGZyZWUgdG8g
aW1tZWRpYXRlbHkgY2xvc2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRoZQorICAgICAqIFV0ZXh0IHRo
YXQgd2FzIHBhc3NlZCBhcyBhIHBhcmFtZXRlciwgYnV0IHRoYXQgdGhlIHVuZGVybHlpbmcgdGV4
dCBpdHNlbGYKKyAgICAgKiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdoaWxlIGJlaW5nIHJlZmVyZW5j
ZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQWxsIGluZGV4IHBvc2l0
aW9ucyByZXR1cm5lZCBieSBicmVhayBpdGVyYXRvciBmdW5jdGlvbnMgYXJlCisgICAgICogbmF0
aXZlIGluZGljZXMgZnJvbSB0aGUgVVRleHQuIEZvciBleGFtcGxlLCB3aGVuIGJyZWFraW5nIFVU
Ri04CisgICAgICogZW5jb2RlZCB0ZXh0LCB0aGUgYnJlYWsgcG9zaXRpb25zIHJldHVybmVkIGJ5
IG5leHQoKSwgcHJldmlvdXMoKSwgZXRjLgorICAgICAqIHdpbGwgYmUgVVRGLTggc3RyaW5nIGlu
ZGljZXMsIG5vdCBVVEYtMTYgcG9zaXRpb25zLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQg
VGhlIFVUZXh0IHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBzdGF0dXMg
cmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAq
LworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChVVGV4dCAqdGV4dCwgVUVycm9yQ29kZSAmc3Rh
dHVzKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDaGFuZ2UgdGhlIHRleHQgb3ZlciB3aGljaCB0
aGlzIG9wZXJhdGVzLiBUaGUgdGV4dCBib3VuZGFyeSBpcworICAgICAqIHJlc2V0IHRvIHRoZSBz
dGFydC4KKyAgICAgKiBOb3RlIHRoYXQgc2V0VGV4dChVVGV4dCAqKSBwcm92aWRlcyBzaW1pbGFy
IGZ1bmN0aW9uYWxpdHkgdG8gdGhpcyBmdW5jdGlvbiwKKyAgICAgKiBhbmQgaXMgbW9yZSBlZmZp
Y2llbnQuCisgICAgICogQHBhcmFtIGl0IFRoZSBDaGFyYWN0ZXJJdGVyYXRvciB1c2VkIHRvIGNo
YW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIHZvaWQgIGFkb3B0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciogaXQpID0gMDsKKworICAgIGVu
dW0geworICAgICAgICAvKioKKyAgICAgICAgICogRE9ORSBpcyByZXR1cm5lZCBieSBwcmV2aW91
cygpIGFuZCBuZXh0KCkgYWZ0ZXIgYWxsIHZhbGlkCisgICAgICAgICAqIGJvdW5kYXJpZXMgaGF2
ZSBiZWVuIHJldHVybmVkLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICAgICov
CisgICAgICAgIERPTkUgPSAoaW50MzJfdCktMQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBT
ZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRo
ZSB0ZXh0LCBwb3NpdGlvbiB6ZXJvLgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBvZiB0aGUg
YmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCB6ZXJvLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmaXJzdCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAg
ICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBpbmRleCBpbW1lZGlhdGVseSBC
RVlPTkQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJlaW5nIHNjYW5uZWQuCisgICAg
ICogQHJldHVybiBUaGUgaW5kZXggaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBsYXN0IGNoYXJhY3Rl
ciBpbiB0aGUgdGV4dCBiZWluZyBzY2FubmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBsYXN0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAg
ICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGJvdW5kYXJ5IHByZWNlZGluZyB0
aGUgY3VycmVudCBib3VuZGFyeS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgaW5kZXgg
b2YgdGhlIHByZXZpb3VzIHRleHQgYm91bmRhcnkgb3IgRE9ORSBpZiBhbGwKKyAgICAgKiBib3Vu
ZGFyaWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJldmlvdXModm9pZCkgPSAwOworCisgICAgLyoqCisg
ICAgICogQWR2YW5jZSB0aGUgaXRlcmF0b3IgdG8gdGhlIGJvdW5kYXJ5IGZvbGxvd2luZyB0aGUg
Y3VycmVudCBib3VuZGFyeS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgaW5kZXggb2Yg
dGhlIG5leHQgdGV4dCBib3VuZGFyeSBvciBET05FIGlmIGFsbAorICAgICAqIGJvdW5kYXJpZXMg
aGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBuZXh0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVy
biBjaGFyYWN0ZXIgaW5kZXggb2YgdGhlIGN1cnJlbnQgaW50ZXJhdG9yIHBvc2l0aW9uIHdpdGhp
biB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSBib3VuZGFyeSBtb3N0IHJlY2VudGx5IHJl
dHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50
MzJfdCBjdXJyZW50KHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIEFkdmFuY2Ug
dGhlIGl0ZXJhdG9yIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBmb2xsb3dpbmcgdGhlIHNwZWNpZmll
ZCBvZmZzZXQuCisgICAgICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5cyBncmVhdGVyIHRo
YW4gdGhlIG9mZnNldCBvcgorICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0ZXJhdG9yLkRPTkUKKyAg
ICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nhbm5pbmcuCisgICAgICog
QHJldHVybiBUaGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGZvbGxv
d2luZyhpbnQzMl90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVy
YXRvciBwb3NpdGlvbiB0byB0aGUgZmlyc3QgYm91bmRhcnkgcHJlY2VkaW5nIHRoZSBzcGVjaWZp
ZWQgb2Zmc2V0LgorICAgICAqIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhbHdheXMgc21hbGxlciB0
aGFuIHRoZSBvZmZzZXQgb3IKKyAgICAgKiB0aGUgdmFsdWUgQnJlYWtJdGVyYXRvci5ET05FCisg
ICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGJlZ2luIHNjYW5uaW5nLgorICAgICAq
IEByZXR1cm4gVGhlIGZpcnN0IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3BlY2lmaWVkIG9mZnNldC4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJl
Y2VkaW5nKGludDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1
ZSBpZiB0aGUgc3BlY2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAg
KiBBcyBhIHNpZGUgZWZmZWN0LCB0aGUgY3VycmVudCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0b3Ig
aXMgc2V0CisgICAgICogdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGF0IG9yIGZvbGxv
d2luZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZz
ZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBUcnVlIGlmICJvZmZzZXQiIGlzIGEgYm91bmRh
cnkgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBVQm9vbCBpc0JvdW5kYXJ5KGludDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBudGggYm91bmRhcnkgZnJvbSB0aGUg
Y3VycmVudCBib3VuZGFyeQorICAgICAqIEBwYXJhbSBuIHRoZSBudW1iZXIgb2YgYm91bmRhcmll
cyB0byBtb3ZlIGJ5LiAgQSB2YWx1ZSBvZiAwCisgICAgICogZG9lcyBub3RoaW5nLiAgTmVnYXRp
dmUgdmFsdWVzIG1vdmUgdG8gcHJldmlvdXMgYm91bmRhcmllcworICAgICAqIGFuZCBwb3NpdGl2
ZSB2YWx1ZXMgbW92ZSB0byBsYXRlciBib3VuZGFyaWVzLgorICAgICAqIEByZXR1cm4gVGhlIG5l
dyBpdGVyYXRvciBwb3NpdGlvbiwgb3IKKyAgICAgKiBET05FIGlmIHRoZXJlIGFyZSBmZXdlciB0
aGFuIHxufCBib3VuZGFyaWVzIGluIHRoZSBzcGVjZmllZCBkaXJlY3Rpb24uCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQoaW50MzJfdCBu
KSA9IDA7CisKKyAgIC8qKgorICAgICAqIEZvciBSdWxlQmFzZWRCcmVha0l0ZXJhdG9ycywgcmV0
dXJuIHRoZSBzdGF0dXMgdGFnIGZyb20gdGhlIAorICAgICAqIGJyZWFrIHJ1bGUgdGhhdCBkZXRl
cm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24u
CisgICAgICogPHA+CisgICAgICogRm9yIGJyZWFrIGl0ZXJhdG9yIHR5cGVzIHRoYXQgZG8gbm90
IHN1cHBvcnQgYSBydWxlIHN0YXR1cywKKyAgICAgKiBhIGRlZmF1bHQgdmFsdWUgb2YgMCBpcyBy
ZXR1cm5lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGF0dXMgZnJvbSB0aGUg
YnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiAgICAg
ICAgIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIEBzZWUgUnVsZUJhc2VCcmVha0l0
ZXJhdG9yOjpnZXRSdWxlU3RhdHVzKCkKKyAgICAgKiBAc2VlIFVXb3JkQnJlYWsKKyAgICAgKiBA
c3RhYmxlIElDVSA1MgorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3RhdHVz
KCkgY29uc3Q7CisKKyAgIC8qKgorICAgICogRm9yIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JzLCBn
ZXQgdGhlIHN0YXR1cyAodGFnKSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsgcnVsZShzKSAKKyAgICAq
IHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseSByZXR1cm5lZCBicmVhayBwb3NpdGlv
bi4KKyAgICAqIDxwPgorICAgICogRm9yIGJyZWFrIGl0ZXJhdG9yIHR5cGVzIHRoYXQgZG8gbm90
IHN1cHBvcnQgcnVsZSBzdGF0dXMsCisgICAgKiBubyB2YWx1ZXMgYXJlIHJldHVybmVkLgorICAg
ICogPHA+CisgICAgKiBUaGUgcmV0dXJuZWQgc3RhdHVzIHZhbHVlKHMpIGFyZSBzdG9yZWQgaW50
byBhbiBhcnJheSBwcm92aWRlZCBieSB0aGUgY2FsbGVyLgorICAgICogVGhlIHZhbHVlcyBhcmUg
c3RvcmVkIGluIHNvcnRlZCAoYXNjZW5kaW5nKSBvcmRlci4KKyAgICAqIElmIHRoZSBjYXBhY2l0
eSBvZiB0aGUgb3V0cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xkIHRoZSBkYXRhLAor
ICAgICogIHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2YWlsYWJsZSBsZW5n
dGgsIGFuZCBhCisgICAgKiAgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1Igd2lsbCBiZSBzaWduYWxl
ZC4KKyAgICAqIDxwPgorICAgICogQHNlZSBSdWxlQmFzZUJyZWFrSXRlcmF0b3I6OmdldFJ1bGVT
dGF0dXNWZWMKKyAgICAqCisgICAgKiBAcGFyYW0gZmlsbEluVmVjIGFuIGFycmF5IHRvIGJlIGZp
bGxlZCBpbiB3aXRoIHRoZSBzdGF0dXMgdmFsdWVzLgorICAgICogQHBhcmFtIGNhcGFjaXR5ICB0
aGUgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0aCBvZiB6ZXJvIGNhdXNl
cworICAgICogICAgICAgICAgICAgICAgICB0aGUgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSBudW1i
ZXIgb2Ygc3RhdHVzIHZhbHVlcywgaW4gdGhlCisgICAgKiAgICAgICAgICAgICAgICAgIG5vcm1h
bCB3YXksIHdpdGhvdXQgYXR0ZW10cGluZyB0byBzdG9yZSBhbnkgdmFsdWVzLgorICAgICogQHBh
cmFtIHN0YXR1cyAgICByZWNlaXZlcyBlcnJvciBjb2Rlcy4KKyAgICAqIEByZXR1cm4gICAgICAg
ICAgVGhlIG51bWJlciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxlcyB0aGF0IGRldGVy
bWluZWQKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50IGJvdW5kYXJ5IHJl
dHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAqICAgICAgICAgICAgICAgICAgSW4g
dGhlIGV2ZW50IG9mIGEgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRoZSByZXR1cm4gdmFsdWUK
KyAgICAqICAgICAgICAgICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0dXMgdmFs
dWVzIHRoYXQgd2VyZSBhdmFpbGFibGUsCisgICAgKiAgICAgICAgICAgICAgICAgIG5vdCB0aGUg
cmVkdWNlZCBudW1iZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgorICAgICogQHNlZSBn
ZXRSdWxlU3RhdHVzCisgICAgKiBAc3RhYmxlIElDVSA1MgorICAgICovCisgICAgdmlydHVhbCBp
bnQzMl90IGdldFJ1bGVTdGF0dXNWZWMoaW50MzJfdCAqZmlsbEluVmVjLCBpbnQzMl90IGNhcGFj
aXR5LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFr
SXRlcmF0b3IgZm9yIHdvcmQtYnJlYWtzIHVzaW5nIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICog
UmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIHdvcmQg
YnJlYWtzLgorICAgICAqIFdvcmRCcmVhayBpcyB1c2VmdWwgZm9yIHdvcmQgc2VsZWN0aW9uIChl
eC4gZG91YmxlIGNsaWNrKQorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAq
IEBwYXJhbSBzdGF0dXMgdGhlIGVycm9yIGNvZGUKKyAgICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVy
YXRvciBmb3Igd29yZC1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFy
YW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4K
KyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5v
dCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4g
IElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBj
aGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRl
IHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0
IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9D
SCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdh
cworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0
aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1
ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291
bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3Qg
YW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3Jl
YXRlV29yZEluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7
CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3IgbGluZS1icmVha3Mg
dXNpbmcgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEg
QnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgbGluZSBicmVha3MuIExpbmUKKyAgICAgKiBicmVh
a3MgYXJlIGxvZ2ljYWxseSBwb3NzaWJsZSBsaW5lIGJyZWFrcywgYWN0dWFsIGxpbmUgYnJlYWtz
IGFyZQorICAgICAqIHVzdWFsbHkgZGV0ZXJtaW5lZCBiYXNlZCBvbiBkaXNwbGF5IHdpZHRoLgor
ICAgICAqIExpbmVCcmVhayBpcyB1c2VmdWwgZm9yIHdvcmQgd3JhcHBpbmcgdGV4dC4KKyAgICAg
KiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBlcnJv
ciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciBsaW5lLWJyZWFrcy4g
IFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1
cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRo
ZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisg
ICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRh
aWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFs
IGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VT
SU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdh
cyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQg
bm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJ
TkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRh
IHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBv
ZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBU
aGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9y
IGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRp
YyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVMaW5lSW5zdGFuY2UoY29uc3Qg
TG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENy
ZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBjaGFyYWN0ZXItYnJlYWtzIHVzaW5nIHNwZWNpZmllZCBs
b2NhbGUKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBs
ZW1lbnRpbmcgY2hhcmFjdGVyIGJyZWFrcy4KKyAgICAgKiBDaGFyYWN0ZXIgYnJlYWtzIGFyZSBi
b3VuZGFyaWVzIG9mIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVuY2VzLgorICAgICAqIEBwYXJh
bSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUu
CisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIGNoYXJhY3Rlci1icmVha3MuICBU
aGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJu
IHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVy
IHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAg
ICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWls
ZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBl
cnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lO
R19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMg
dXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5v
dGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5H
X0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3
YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2Yg
aXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhl
IGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBk
ZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMg
QnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlQ2hhcmFjdGVySW5zdGFuY2UoY29u
c3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAq
IENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBzZW50ZW5jZS1icmVha3MgdXNpbmcgc3BlY2lmaWVk
IGxvY2FsZQorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGlt
cGxlbWVudGluZyBzZW50ZW5jZSBicmVha3MuCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2Nh
bGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJu
IEEgQnJlYWtJdGVyYXRvciBmb3Igc2VudGVuY2UtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0
YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRp
b24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9u
IHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2Yg
VV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5
b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGlj
aCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklO
RyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAg
KiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0
aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcg
aW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsg
bmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9j
YWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUg
cmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVf
RVhQT1JUMgorICAgIGNyZWF0ZVNlbnRlbmNlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwg
VUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJh
dG9yIGZvciB0aXRsZS1jYXNpbmcgYnJlYWtzIHVzaW5nIHRoZSBzcGVjaWZpZWQgbG9jYWxlCisg
ICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5n
IHRpdGxlIGJyZWFrcy4KKyAgICAgKiBUaGUgaXRlcmF0b3IgcmV0dXJuZWQgbG9jYXRlcyB0aXRs
ZSBib3VuZGFyaWVzIGFzIGRlc2NyaWJlZCBmb3IKKyAgICAgKiBVbmljb2RlIDMuMiBvbmx5LiBG
b3IgVW5pY29kZSA0LjAgYW5kIGFib3ZlIHRpdGxlIGJvdW5kYXJ5IGl0ZXJhdGlvbiwKKyAgICAg
KiBwbGVhc2UgdXNlIFdvcmQgQm91bmRhcnkgaXRlcmF0b3Iue0BsaW5rICNjcmVhdGVXb3JkSW5z
dGFuY2UgfQorICAgICAqCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICog
QHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVy
YXRvciBmb3IgdGl0bGUtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cworICAgICAqIHBh
cmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIu
CisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBu
b3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVyciku
ICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4g
Y2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0
ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhh
dCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVf
Q0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3
YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQg
dGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVx
dWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNv
dWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0
IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4xCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNy
ZWF0ZVRpdGxlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVz
KTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc2V0IG9mIExvY2FsZXMgZm9yIHdoaWNoIFRl
eHRCb3VuZGFyaWVzIGFyZSBpbnN0YWxsZWQuCisgICAgICogPHA+PGI+Tm90ZTo8L2I+IHRoaXMg
d2lsbCBub3QgcmV0dXJuIGxvY2FsZXMgYWRkZWQgdGhyb3VnaCB0aGUgcmVnaXN0ZXIKKyAgICAg
KiBjYWxsLiBUbyBzZWUgdGhlIHJlZ2lzdGVyZWQgbG9jYWxlcyB0b28sIHVzZSB0aGUgZ2V0QXZh
aWxhYmxlTG9jYWxlcworICAgICAqIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIFN0cmluZ0VudW1l
cmF0aW9uIG9iamVjdCA8L3A+CisgICAgICogQHBhcmFtIGNvdW50IHRoZSBvdXRwdXQgcGFyYW1l
dGVyIG9mIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgbG9jYWxlIGxpc3QKKyAgICAgKiBAcmV0
dXJuIGF2YWlsYWJsZSBsb2NhbGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgc3RhdGljIGNvbnN0IExvY2FsZSogVV9FWFBPUlQyIGdldEF2YWlsYWJsZUxvY2FsZXMoaW50
MzJfdCYgY291bnQpOworCisgICAgLyoqCisgICAgICogR2V0IG5hbWUgb2YgdGhlIG9iamVjdCBm
b3IgdGhlIGRlc2lyZWQgTG9jYWxlLCBpbiB0aGUgZGVzaXJlZCBsYW5nYXVnZS4KKyAgICAgKiBA
cGFyYW0gb2JqZWN0TG9jYWxlIG11c3QgYmUgZnJvbSBnZXRBdmFpbGFibGVMb2NhbGVzLgorICAg
ICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHNwZWNpZmllcyB0aGUgZGVzaXJlZCBsb2NhbGUgZm9y
IG91dHB1dC4KKyAgICAgKiBAcGFyYW0gbmFtZSB0aGUgZmlsbC1pbiBwYXJhbWV0ZXIgb2YgdGhl
IHJldHVybiB2YWx1ZQorICAgICAqIFVzZXMgYmVzdCBtYXRjaC4KKyAgICAgKiBAcmV0dXJuIHVz
ZXItZGlzcGxheWFibGUgbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHN0YXRpYyBVbmljb2RlU3RyaW5nJiBVX0VYUE9SVDIgZ2V0RGlzcGxheU5hbWUoY29uc3QgTG9j
YWxlJiBvYmplY3RMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IExvY2FsZSYgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgbmFtZSk7CisKKyAgICAvKioKKyAgICAg
KiBHZXQgbmFtZSBvZiB0aGUgb2JqZWN0IGZvciB0aGUgZGVzaXJlZCBMb2NhbGUsIGluIHRoZSBs
YW5nYXVnZSBvZiB0aGUKKyAgICAgKiBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gb2Jq
ZWN0TG9jYWxlIG11c3QgYmUgZnJvbSBnZXRNYXRjaGluZ0xvY2FsZXMKKyAgICAgKiBAcGFyYW0g
bmFtZSB0aGUgZmlsbC1pbiBwYXJhbWV0ZXIgb2YgdGhlIHJldHVybiB2YWx1ZQorICAgICAqIEBy
ZXR1cm4gdXNlci1kaXNwbGF5YWJsZSBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgc3RhdGljIFVuaWNvZGVTdHJpbmcmIFVfRVhQT1JUMiBnZXREaXNwbGF5TmFtZShj
b25zdCBMb2NhbGUmIG9iamVjdExvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgbmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBEZXBy
ZWNhdGVkIGZ1bmN0aW9uYWxpdHkuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoKKyAgICAg
KiBUaHJlYWQgc2FmZSBjbGllbnQtYnVmZmVyLWJhc2VkIGNsb25pbmcgb3BlcmF0aW9uCisgICAg
ICogICAgRG8gTk9UIGNhbGwgZGVsZXRlIG9uIGEgc2FmZWNsb25lLCBzaW5jZSAnbmV3JyBpcyBu
b3QgdXNlZCB0byBjcmVhdGUgaXQuCisgICAgICogQHBhcmFtIHN0YWNrQnVmZmVyIHVzZXIgYWxs
b2NhdGVkIHNwYWNlIGZvciB0aGUgbmV3IGNsb25lLiBJZiBOVUxMIG5ldyBtZW1vcnkgd2lsbCBi
ZSBhbGxvY2F0ZWQuCisgICAgICogSWYgYnVmZmVyIGlzIG5vdCBsYXJnZSBlbm91Z2gsIG5ldyBt
ZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogQHBhcmFtIEJ1ZmZlclNpemUgcmVmZXJl
bmNlIHRvIHNpemUgb2YgYWxsb2NhdGVkIHNwYWNlLgorICAgICAqIElmIEJ1ZmZlclNpemUgPT0g
MCwgYSBzdWZmaWNpZW50IHNpemUgZm9yIHVzZSBpbiBjbG9uaW5nIHdpbGwKKyAgICAgKiBiZSBy
ZXR1cm5lZCAoJ3ByZS1mbGlnaHRpbmcnKQorICAgICAqIElmIEJ1ZmZlclNpemUgaXMgbm90IGVu
b3VnaCBmb3IgYSBzdGFjay1iYXNlZCBzYWZlIGNsb25lLAorICAgICAqIG5ldyBtZW1vcnkgd2ls
bCBiZSBhbGxvY2F0ZWQuCisgICAgICogQHBhcmFtIHN0YXR1cyB0byBpbmRpY2F0ZSB3aGV0aGVy
IHRoZSBvcGVyYXRpb24gd2VudCBvbiBzbW9vdGhseSBvciB0aGVyZSB3ZXJlIGVycm9ycworICAg
ICAqICBBbiBpbmZvcm1hdGlvbmFsIHN0YXR1cyB2YWx1ZSwgVV9TQUZFQ0xPTkVfQUxMT0NBVEVE
X0VSUk9SLCBpcyB1c2VkIGlmIGFueSBhbGxvY2F0aW9ucyB3ZXJlCisgICAgICogIG5lY2Vzc2Fy
eS4KKyAgICAgKiBAcmV0dXJuIHBvaW50ZXIgdG8gdGhlIG5ldyBjbG9uZQorICAgICAqCisgICAg
ICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqLworICAg
IHZpcnR1YWwgQnJlYWtJdGVyYXRvciAqICBjcmVhdGVCdWZmZXJDbG9uZSh2b2lkICpzdGFja0J1
ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
MzJfdCAmQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyNpZm5kZWYgVV9ISURFX0RFUFJF
Q0FURURfQVBJCisKKyAgICAvKioKKyAgICAgKiAgIERldGVybWluZSB3aGV0aGVyIHRoZSBCcmVh
a0l0ZXJhdG9yIHdhcyBjcmVhdGVkIGluIHVzZXIgbWVtb3J5IGJ5CisgICAgICogICBjcmVhdGVC
dWZmZXJDbG9uZSgpLCBhbmQgdGh1cyBzaG91bGQgbm90IGJlIGRlbGV0ZWQuICBTdWNoIG9iamVj
dHMKKyAgICAgKiAgIG11c3QgYmUgY2xvc2VkIGJ5IGFuIGV4cGxpY2l0IGNhbGwgdG8gdGhlIGRl
c3RydWN0b3IgKG5vdCBkZWxldGUpLgorICAgICAqIEBkZXByZWNhdGVkIElDVSA1Mi4gQWx3YXlz
IGRlbGV0ZSB0aGUgQnJlYWtJdGVyYXRvci4KKyAgICAgKi8KKyAgICBpbmxpbmUgVUJvb2wgaXNC
dWZmZXJDbG9uZSh2b2lkKTsKKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLwor
CisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGEgbmV3
IGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBpbmRpY2F0ZWQga2luZCwgdG8gdXNlIGluIHRoZSBnaXZl
biBsb2NhbGUuCisgICAgICogVGhlIGJyZWFrIGl0ZXJhdG9yIHdpbGwgYmUgYWRvcHRlZC4gIENs
b25lcyBvZiB0aGUgaXRlcmF0b3Igd2lsbCBiZSByZXR1cm5lZAorICAgICAqIGlmIGEgcmVxdWVz
dCBmb3IgYSBicmVhayBpdGVyYXRvciBvZiB0aGUgZ2l2ZW4ga2luZCBtYXRjaGVzIG9yIGZhbGxz
IGJhY2sgdG8KKyAgICAgKiB0aGlzIGxvY2FsZS4KKyAgICAgKiBCZWNhdXNlIElDVSBtYXkgY2hv
b3NlIHRvIGNhY2hlIEJyZWFrSXRlcmF0b3JzIGludGVybmFsbHksIHRoaXMgbXVzdAorICAgICAq
IGJlIGNhbGxlZCBhdCBhcHBsaWNhdGlvbiBzdGFydHVwLCBwcmlvciB0byBhbnkgY2FsbHMgdG8K
KyAgICAgKiBCcmVha0l0ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0byBhdm9pZCB1bmRlZmlu
ZWQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIHRvQWRvcHQgdGhlIEJyZWFrSXRlcmF0b3IgaW5z
dGFuY2UgdG8gYmUgYWRvcHRlZAorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIExvY2FsZSBmb3Ig
d2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAgICogQHBhcmFtIGtp
bmQgdGhlIHR5cGUgb2YgaXRlcmF0b3IgZm9yIHdoaWNoIHRoaXMgaW5zdGFuY2UgaXMgdG8gYmUg
cmVnaXN0ZXJlZAorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGluL291dCBzdGF0dXMgY29kZSwg
bm8gc3BlY2lhbCBtZWFuaW5ncyBhcmUgYXNzaWduZWQKKyAgICAgKiBAcmV0dXJuIGEgcmVnaXN0
cnkga2V5IHRoYXQgY2FuIGJlIHVzZWQgdG8gdW5yZWdpc3RlciB0aGlzIGluc3RhbmNlCisgICAg
ICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgc3RhdGljIFVSZWdpc3RyeUtleSBVX0VY
UE9SVDIgcmVnaXN0ZXJJbnN0YW5jZShCcmVha0l0ZXJhdG9yKiB0b0Fkb3B0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYgbG9jYWxlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVCcmVha0l0ZXJhdG9yVHlwZSBr
aW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUm
IHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGEgcHJldmlvdXNseS1yZWdp
c3RlcmVkIEJyZWFrSXRlcmF0b3IgdXNpbmcgdGhlIGtleSByZXR1cm5lZCBmcm9tIHRoZQorICAg
ICAqIHJlZ2lzdGVyIGNhbGwuICBLZXkgYmVjb21lcyBpbnZhbGlkIGFmdGVyIGEgc3VjY2Vzc2Z1
bCBjYWxsIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYWdhaW4uCisgICAgICogVGhlIEJyZWFrSXRl
cmF0b3IgY29ycmVzcG9uZGluZyB0byB0aGUga2V5IHdpbGwgYmUgZGVsZXRlZC4KKyAgICAgKiBC
ZWNhdXNlIElDVSBtYXkgY2hvb3NlIHRvIGNhY2hlIEJyZWFrSXRlcmF0b3JzIGludGVybmFsbHks
IHRoaXMgc2hvdWxkCisgICAgICogYmUgY2FsbGVkIGR1cmluZyBhcHBsaWNhdGlvbiBzaHV0ZG93
biwgYWZ0ZXIgYWxsIGNhbGxzIHRvCisgICAgICogQnJlYWtJdGVyYXRvcjo6Y3JlYXRlWFhYSW5z
dGFuY2UgdG8gYXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9yLgorICAgICAqIEBwYXJhbSBrZXkgdGhl
IHJlZ2lzdHJ5IGtleSByZXR1cm5lZCBieSBhIHByZXZpb3VzIGNhbGwgdG8gcmVnaXN0ZXJJbnN0
YW5jZQorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGluL291dCBzdGF0dXMgY29kZSwgbm8gc3Bl
Y2lhbCBtZWFuaW5ncyBhcmUgYXNzaWduZWQKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIGl0
ZXJhdG9yIGZvciB0aGUga2V5IHdhcyBzdWNjZXNzZnVsbHkgdW5yZWdpc3RlcmVkCisgICAgICog
QHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgc3RhdGljIFVCb29sIFVfRVhQT1JUMiB1bnJl
Z2lzdGVyKFVSZWdpc3RyeUtleSBrZXksIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm4gYSBTdHJpbmdFbnVtZXJhdGlvbiBvdmVyIHRoZSBsb2NhbGVzIGF2YWls
YWJsZSBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbCwKKyAgICAgKiBpbmNsdWRpbmcgcmVnaXN0ZXJl
ZCBsb2NhbGVzLgorICAgICAqIEByZXR1cm4gYSBTdHJpbmdFbnVtZXJhdGlvbiBvdmVyIHRoZSBs
b2NhbGVzIGF2YWlsYWJsZSBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbAorICAgICAqIEBzdGFibGUg
SUNVIDIuNAorICAgICAqLworICAgIHN0YXRpYyBTdHJpbmdFbnVtZXJhdGlvbiogVV9FWFBPUlQy
IGdldEF2YWlsYWJsZUxvY2FsZXModm9pZCk7CisjZW5kaWYKKworICAgIC8qKgorICAgICAqIFJl
dHVybnMgdGhlIGxvY2FsZSBmb3IgdGhpcyBicmVhayBpdGVyYXRvci4gVHdvIGZsYXZvcnMgYXJl
IGF2YWlsYWJsZTogdmFsaWQgYW5kCisgICAgICogYWN0dWFsIGxvY2FsZS4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBMb2NhbGUgZ2V0TG9jYWxlKFVMb2NEYXRhTG9jYWxl
VHlwZSB0eXBlLCBVRXJyb3JDb2RlJiBzdGF0dXMpIGNvbnN0OworCisjaWZuZGVmIFVfSElERV9J
TlRFUk5BTF9BUEkKKyAgICAvKiogR2V0IHRoZSBsb2NhbGUgZm9yIHRoaXMgYnJlYWsgaXRlcmF0
b3Igb2JqZWN0LiBZb3UgY2FuIGNob29zZSBiZXR3ZWVuIHZhbGlkIGFuZCBhY3R1YWwgbG9jYWxl
LgorICAgICAqICBAcGFyYW0gdHlwZSB0eXBlIG9mIHRoZSBsb2NhbGUgd2UncmUgbG9va2luZyBm
b3IgKHZhbGlkIG9yIGFjdHVhbCkKKyAgICAgKiAgQHBhcmFtIHN0YXR1cyBlcnJvciBjb2RlIGZv
ciB0aGUgb3BlcmF0aW9uCisgICAgICogIEByZXR1cm4gdGhlIGxvY2FsZQorICAgICAqICBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICpnZXRMb2NhbGVJRChVTG9jRGF0YUxvY2Fs
ZVR5cGUgdHlwZSwgVUVycm9yQ29kZSYgc3RhdHVzKSBjb25zdDsKKyNlbmRpZiAgLyogVV9ISURF
X0lOVEVSTkFMX0FQSSAqLworCisgICAgLyoqCisgICAgICogIFNldCB0aGUgc3ViamVjdCB0ZXh0
IHN0cmluZyB1cG9uIHdoaWNoIHRoZSBicmVhayBpdGVyYXRvciBpcyBvcGVyYXRpbmcKKyAgICAg
KiAgd2l0aG91dCBjaGFuZ2luZyBhbnkgb3RoZXIgYXNwZWN0IG9mIHRoZSBtYXRjaGluZyBzdGF0
ZS4KKyAgICAgKiAgVGhlIG5ldyBhbmQgcHJldmlvdXMgdGV4dCBzdHJpbmdzIG11c3QgaGF2ZSB0
aGUgc2FtZSBjb250ZW50LgorICAgICAqCisgICAgICogIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5k
ZWQgZm9yIHVzZSBpbiBlbnZpcm9ubWVudHMgd2hlcmUgSUNVIGlzIG9wZXJhdGluZyBvbgorICAg
ICAqICBzdHJpbmdzIHRoYXQgbWF5IG1vdmUgYXJvdW5kIGluIG1lbW9yeS4gIEl0IHByb3ZpZGVz
IGEgbWVjaGFuaXNtIGZvciBub3RpZnlpbmcKKyAgICAgKiAgSUNVIHRoYXQgdGhlIHN0cmluZyBo
YXMgYmVlbiByZWxvY2F0ZWQsIGFuZCBwcm92aWRpbmcgYSBuZXcgVVRleHQgdG8gYWNjZXNzIHRo
ZQorICAgICAqICBzdHJpbmcgaW4gaXRzIG5ldyBwb3NpdGlvbi4KKyAgICAgKgorICAgICAqICBO
b3RlIHRoYXQgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uIG5ldmVyIGNvcGllcyB0
aGUgdW5kZXJseWluZyB0ZXh0CisgICAgICogIG9mIGEgc3RyaW5nIGJlaW5nIHByb2Nlc3NlZCwg
YnV0IGFsd2F5cyBvcGVyYXRlcyBkaXJlY3RseSBvbiB0aGUgb3JpZ2luYWwgdGV4dAorICAgICAq
ICBwcm92aWRlZCBieSB0aGUgdXNlci4gUmVmcmVzaGluZyBzaW1wbHkgZHJvcHMgdGhlIHJlZmVy
ZW5jZXMgdG8gdGhlIG9sZCB0ZXh0CisgICAgICogIGFuZCByZXBsYWNlcyB0aGVtIHdpdGggcmVm
ZXJlbmNlcyB0byB0aGUgbmV3LgorICAgICAqCisgICAgICogIENhdXRpb246ICB0aGlzIGZ1bmN0
aW9uIGlzIG5vcm1hbGx5IHVzZWQgb25seSBieSB2ZXJ5IHNwZWNpYWxpemVkLAorICAgICAqICBz
eXN0ZW0tbGV2ZWwgY29kZS4gIE9uZSBleGFtcGxlIHVzZSBjYXNlIGlzIHdpdGggZ2FyYmFnZSBj
b2xsZWN0aW9uIHRoYXQgbW92ZXMKKyAgICAgKiAgdGhlIHRleHQgaW4gbWVtb3J5LgorICAgICAq
CisgICAgICogQHBhcmFtIGlucHV0ICAgICAgVGhlIG5ldyAobW92ZWQpIHRleHQgc3RyaW5nLgor
ICAgICAqIEBwYXJhbSBzdGF0dXMgICAgIFJlY2VpdmVzIGVycm9ycyBkZXRlY3RlZCBieSB0aGlz
IGZ1bmN0aW9uLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICp0aGlzCisgICAgICoKKyAgICAg
KiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciAmcmVm
cmVzaElucHV0VGV4dChVVGV4dCAqaW5wdXQsIFVFcnJvckNvZGUgJnN0YXR1cykgPSAwOworCisg
cHJpdmF0ZToKKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogYnVpbGRJbnN0YW5jZShjb25zdCBM
b2NhbGUmIGxvYywgY29uc3QgY2hhciAqdHlwZSwgaW50MzJfdCBraW5kLCBVRXJyb3JDb2RlJiBz
dGF0dXMpOworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBjcmVhdGVJbnN0YW5jZShjb25zdCBM
b2NhbGUmIGxvYywgaW50MzJfdCBraW5kLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworICAgIHN0YXRp
YyBCcmVha0l0ZXJhdG9yKiBtYWtlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2MsIGludDMyX3Qg
a2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIGZyaWVuZCBjbGFzcyBJQ1VCcmVha0l0
ZXJhdG9yRmFjdG9yeTsKKyAgICBmcmllbmQgY2xhc3MgSUNVQnJlYWtJdGVyYXRvclNlcnZpY2U7
CisKK3Byb3RlY3RlZDoKKyAgICAvLyBEbyBub3QgZW5jbG9zZSBwcm90ZWN0ZWQgZGVmYXVsdC9j
b3B5IGNvbnN0cnVjdG9ycyB3aXRoICNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8v
IG9yIGVsc2UgdGhlIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGEgcHVibGljIG9uZXMuCisgICAgLyoq
IEBpbnRlcm5hbCAqLworICAgIEJyZWFrSXRlcmF0b3IoKTsKKyAgICAvKiogQGludGVybmFsICov
CisgICAgQnJlYWtJdGVyYXRvciAoY29uc3QgQnJlYWtJdGVyYXRvciAmb3RoZXIpIDogVU9iamVj
dChvdGhlcikge30KKyAgICAvKiogQGludGVybmFsICovCisgICAgQnJlYWtJdGVyYXRvciAoY29u
c3QgTG9jYWxlJiB2YWxpZCwgY29uc3QgTG9jYWxlJiBhY3R1YWwpOworcHJpdmF0ZToKKworICAg
IC8qKiBAaW50ZXJuYWwgKi8KKyAgICBjaGFyIGFjdHVhbExvY2FsZVtVTE9DX0ZVTExOQU1FX0NB
UEFDSVRZXTsKKyAgICBjaGFyIHZhbGlkTG9jYWxlW1VMT0NfRlVMTE5BTUVfQ0FQQUNJVFldOwor
CisgICAgLyoqCisgICAgICogVGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IgaGFzIG5vIHJlYWwgaW1w
bGVtZW50YXRpb24uCisgICAgICogSXQncyBwcm92aWRlZCB0byBtYWtlIHRoZSBjb21waWxlciBo
YXBweS4gRG8gbm90IGNhbGwuCisgICAgICovCisgICAgQnJlYWtJdGVyYXRvciYgb3BlcmF0b3I9
KGNvbnN0IEJyZWFrSXRlcmF0b3ImKTsKK307CisKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURf
QVBJCisKK2lubGluZSBVQm9vbCBCcmVha0l0ZXJhdG9yOjppc0J1ZmZlckNsb25lKCkKK3sKKyAg
ICByZXR1cm4gRkFMU0U7Cit9CisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8K
KworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZiAvKiAjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRF
UkFUSU9OICovCisKKyNlbmRpZiAvLyBfQlJLSVRFUgorLy9lb2YKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvY2hh
cml0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lOGQ2NTA5MGE0MGE2MDg1OTUxYzczMzA3Zjc0YWNmODNiYTFi
YmM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9jaGFyaXRlci5o
CkBAIC0wLDAgKzEsNzIyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMp
IDE5OTctMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0
aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyov
CisKKyNpZm5kZWYgQ0hBUklURVJfSAorI2RlZmluZSBDSEFSSVRFUl9ICisKKyNpbmNsdWRlICJ1
bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUg
InVuaWNvZGUvdW5pc3RyLmgiCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTogQ2hh
cmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lOCisvKioKKyAqIEFic3Ry
YWN0IGNsYXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGZvcndhcmQtb25seSBpdGVyYXRpb24K
KyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMgaXMgYSBtaW5pbWFsIGludGVyZmFjZSBmb3Ig
aXRlcmF0aW9uIHdpdGhvdXQgcmFuZG9tIGFjY2VzcworICogb3IgYmFja3dhcmRzIGl0ZXJhdGlv
bi4gSXQgaXMgZXNwZWNpYWxseSB1c2VmdWwgZm9yIHdyYXBwaW5nCisgKiBzdHJlYW1zIHdpdGgg
Y29udmVydGVycyBpbnRvIGFuIG9iamVjdCBmb3IgY29sbGF0aW9uIG9yCisgKiBub3JtYWxpemF0
aW9uLgorICoKKyAqIDxwPkNoYXJhY3RlcnMgY2FuIGJlIGFjY2Vzc2VkIGluIHR3byB3YXlzOiBh
cyBjb2RlIHVuaXRzIG9yIGFzCisgKiBjb2RlIHBvaW50cy4KKyAqIFVuaWNvZGUgY29kZSBwb2lu
dHMgYXJlIDIxLWJpdCBpbnRlZ2VycyBhbmQgYXJlIHRoZSBzY2FsYXIgdmFsdWVzCisgKiBvZiBV
bmljb2RlIGNoYXJhY3RlcnMuIElDVSB1c2VzIHRoZSB0eXBlIFVDaGFyMzIgZm9yIHRoZW0uCisg
KiBVbmljb2RlIGNvZGUgdW5pdHMgYXJlIHRoZSBzdG9yYWdlIHVuaXRzIG9mIGEgZ2l2ZW4KKyAq
IFVuaWNvZGUvVUNTIFRyYW5zZm9ybWF0aW9uIEZvcm1hdCAoYSBjaGFyYWN0ZXIgZW5jb2Rpbmcg
c2NoZW1lKS4KKyAqIFdpdGggVVRGLTE2LCBhbGwgY29kZSBwb2ludHMgY2FuIGJlIHJlcHJlc2Vu
dGVkIHdpdGggZWl0aGVyIG9uZQorICogb3IgdHdvIGNvZGUgdW5pdHMgKCJzdXJyb2dhdGVzIiku
CisgKiBTdHJpbmcgc3RvcmFnZSBpcyB0eXBpY2FsbHkgYmFzZWQgb24gY29kZSB1bml0cywgd2hp
bGUgcHJvcGVydGllcworICogb2YgY2hhcmFjdGVycyBhcmUgdHlwaWNhbGx5IGRldGVybWluZWQg
dXNpbmcgY29kZSBwb2ludCB2YWx1ZXMuCisgKiBTb21lIHByb2Nlc3NlcyBtYXkgYmUgZGVzaWdu
ZWQgdG8gd29yayB3aXRoIHNlcXVlbmNlcyBvZiBjb2RlIHVuaXRzLAorICogb3IgaXQgbWF5IGJl
IGtub3duIHRoYXQgYWxsIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW1wb3J0YW50IHRvIGFuCisgKiBh
bGdvcml0aG0gY2FuIGJlIHJlcHJlc2VudGVkIHdpdGggc2luZ2xlIGNvZGUgdW5pdHMuCisgKiBP
dGhlciBwcm9jZXNzZXMgd2lsbCBuZWVkIHRvIHVzZSB0aGUgY29kZSBwb2ludCBhY2Nlc3MgZnVu
Y3Rpb25zLjwvcD4KKyAqCisgKiA8cD5Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgcHJvdmlkZXMg
bmV4dFBvc3RJbmMoKSB0byBhY2Nlc3MKKyAqIGEgY29kZSB1bml0IGFuZCBhZHZhbmNlIGFuIGlu
dGVybmFsIHBvc2l0aW9uIGludG8gdGhlIHRleHQgb2JqZWN0LAorICogc2ltaWxhciB0byBhIDxj
b2RlPnJldHVybiB0ZXh0W3Bvc2l0aW9uKytdPC9jb2RlPi48YnI+CisgKiBJdCBwcm92aWRlcyBu
ZXh0MzJQb3N0SW5jKCkgdG8gYWNjZXNzIGEgY29kZSBwb2ludCBhbmQgYWR2YW5jZSBhbiBpbnRl
cm5hbAorICogcG9zaXRpb24uPC9wPgorICoKKyAqIDxwPm5leHQzMlBvc3RJbmMoKSBhc3N1bWVz
IHRoYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgdGhhdCBvZgorICogdGhlIGJlZ2lubmluZyBv
ZiBhIGNvZGUgcG9pbnQsIGkuZS4sIG9mIGl0cyBmaXJzdCBjb2RlIHVuaXQuCisgKiBBZnRlciBu
ZXh0MzJQb3N0SW5jKCksIHRoaXMgd2lsbCBiZSB0cnVlIGFnYWluLgorICogSW4gZ2VuZXJhbCwg
YWNjZXNzIHRvIGNvZGUgdW5pdHMgYW5kIGNvZGUgcG9pbnRzIGluIHRoZSBzYW1lCisgKiBpdGVy
YXRpb24gbG9vcCBzaG91bGQgbm90IGJlIG1peGVkLiBJbiBVVEYtMTYsIGlmIHRoZSBjdXJyZW50
IHBvc2l0aW9uCisgKiBpcyBvbiBhIHNlY29uZCBjb2RlIHVuaXQgKExvdyBTdXJyb2dhdGUpLCB0
aGVuIG9ubHkgdGhhdCBjb2RlIHVuaXQKKyAqIGlzIHJldHVybmVkIGV2ZW4gYnkgbmV4dDMyUG9z
dEluYygpLjwvcD4KKyAqCisgKiA8cD5Gb3IgaXRlcmF0aW9uIHdpdGggZWl0aGVyIGZ1bmN0aW9u
LCB0aGVyZSBhcmUgdHdvIHdheXMgdG8KKyAqIGNoZWNrIGZvciB0aGUgZW5kIG9mIHRoZSBpdGVy
YXRpb24uIFdoZW4gdGhlcmUgYXJlIG5vIG1vcmUKKyAqIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQg
b2JqZWN0OgorICogPHVsPgorICogPGxpPlRoZSBoYXNOZXh0KCkgZnVuY3Rpb24gcmV0dXJucyBG
QUxTRS48L2xpPgorICogPGxpPm5leHRQb3N0SW5jKCkgYW5kIG5leHQzMlBvc3RJbmMoKSByZXR1
cm4gRE9ORQorICogICAgIHdoZW4gb25lIGF0dGVtcHRzIHRvIHJlYWQgYmV5b25kIHRoZSBlbmQg
b2YgdGhlIHRleHQgb2JqZWN0LjwvbGk+CisgKiA8L3VsPgorICoKKyAqIEV4YW1wbGU6CisgKiBc
Y29kZSAKKyAqIHZvaWQgZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsK
KyAqICAgICBVQ2hhcjMyIGM7CisgKiAgICAgd2hpbGUoaXQuaGFzTmV4dCgpKSB7CisgKiAgICAg
ICAgIGM9aXQubmV4dDMyUG9zdEluYygpOworICogICAgICAgICAvLyB1c2UgYworICogICAgIH0K
KyAqIH0KKyAqCisgKiB2b2lkIGZ1bmN0aW9uMShGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgJml0
KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAgICB3aGlsZSgoYz1pdC5uZXh0UG9zdEluYygpKSE9
Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yOjpET05FKSB7CisgKiAgICAgICAgIC8vIHVzZSBjCisg
KiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wPgorICoKKyAqIEBzdGFibGUgSUNV
IDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIDog
cHVibGljIFVPYmplY3QgeworcHVibGljOgorICAgIC8qKgorICAgICAqIFZhbHVlIHJldHVybmVk
IGJ5IG1vc3Qgb2YgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJ3MgZnVuY3Rpb25zCisgICAgICog
d2hlbiB0aGUgaXRlcmF0b3IgaGFzIHJlYWNoZWQgdGhlIGxpbWl0cyBvZiBpdHMgaXRlcmF0aW9u
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGVudW0geyBET05FID0gMHhm
ZmZmIH07CisgICAgCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3Rvci4gIAorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkZvcndhcmRDaGFyYWN0ZXJJdGVyYXRv
cigpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSB3aGVuIGJvdGggaXRlcmF0
b3JzIHJlZmVyIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIGNoYXJh
Y3Rlci1zdG9yYWdlIG9iamVjdC4gIAorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hh
cmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5CisgICAgICogQHJldHVy
biB0cnVlIHdoZW4gYm90aCBpdGVyYXRvcnMgcmVmZXIgdG8gdGhlIHNhbWUKKyAgICAgKiBjaGFy
YWN0ZXIgaW4gdGhlIHNhbWUgY2hhcmFjdGVyLXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09KGNvbnN0IEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3QgPSAwOworICAgIAorICAgIC8qKgor
ICAgICAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBpdGVyYXRvcnMgcmVmZXIgdG8gZGlmZmVyZW50
CisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdHMsIG9yIHRvIGRpZmZlcmVudCBjaGFyYWN0ZXJz
IGluIHRoZQorICAgICAqIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdC4gIAorICAgICAqIEBwYXJh
bSB0aGF0IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGlu
ZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRydWUgd2hlbiB0aGUgaXRlcmF0b3JzIHJlZmVyIHRv
IGRpZmZlcmVudAorICAgICAqIHRleHQtc3RvcmFnZSBvYmplY3RzLCBvciB0byBkaWZmZXJlbnQg
Y2hhcmFjdGVycyBpbiB0aGUKKyAgICAgKiBzYW1lIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgVUJvb2wgb3BlcmF0b3IhPShj
b25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0OworICAgIAorICAgIC8q
KgorICAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhpcyBpdGVyYXRvci4gIAorICAg
ICAqIEByZXR1cm4gdGhlIGhhc2ggY29kZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIGludDMyX3QgaGFzaENvZGUodm9pZCkgY29uc3QgPSAwOworICAgIAor
ICAgIC8qKgorICAgICAqIFJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhpcyBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IgKCJwb29yIG1hbidzCisgICAgICogUlRUSSIpLjxQPiBEZXNwaXRlIHRoZSBm
YWN0IHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBwdWJsaWMsCisgICAgICogRE8gTk9UIENPTlNJREVS
IElUIFBBUlQgT0YgQ0hBUkFDVEVSSVRFUkFUT1InUyBBUEkhIAorICAgICAqIEByZXR1cm4gYSBV
Q2xhc3NJRCBmb3IgdGhpcyBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJ
RCh2b2lkKSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVu
dCBjb2RlIHVuaXQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1
bml0CisgICAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5k
ZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgdW5pdHMgdG8gcmV0dXJu
LCByZXR1cm5zIERPTkUuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAg
IG5leHRQb3N0SW5jKHZvaWQpID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBj
dXJyZW50IGNvZGUgcG9pbnQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhlIG5leHQg
Y29kZSBwb2ludAorICAgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJk
IGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0
byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUg
cG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hh
cjMyICAgICAgIG5leHQzMlBvc3RJbmModm9pZCkgPSAwOworICAgIAorICAgIC8qKgorICAgICAq
IFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBv
aW50cworICAgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVy
YXRpb24gcmFuZ2UuCisgICAgICogVGhpcyBpcyB1c2VkIHdpdGggbmV4dFBvc3RJbmMoKSBvciBu
ZXh0MzJQb3N0SW5jKCkgaW4gZm9yd2FyZAorICAgICAqIGl0ZXJhdGlvbi4KKyAgICAgKiBAcmV0
dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRz
CisgICAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlv
biByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVC
b29sICAgICAgICBoYXNOZXh0KCkgPSAwOworICAgIAorcHJvdGVjdGVkOgorICAgIC8qKiBEZWZh
dWx0IGNvbnN0cnVjdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGluZyBjbGFz
cy4gQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAg
ICAKKyAgICAvKiogQ29weSBjb25zdHJ1Y3RvciB0byBiZSBvdmVycmlkZGVuIGluIHRoZSBpbXBs
ZW1lbnRpbmcgY2xhc3MuIEBzdGFibGUgSUNVIDIuMCovCisgICAgRm9yd2FyZENoYXJhY3Rlckl0
ZXJhdG9yKGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmb3RoZXIpOworICAgIAorICAg
IC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IgdG8gYmUgb3ZlcnJpZGRlbiBpbiB0aGUg
aW1wbGVtZW50aW5nIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmb3BlcmF0b3I9KGNvbnN0IEZvcndhcmRDaGFyYWN0
ZXJJdGVyYXRvciYpIHsgcmV0dXJuICp0aGlzOyB9Cit9OworCisvKioKKyAqIEFic3RyYWN0IGNs
YXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGl0ZXJhdGlvbgorICogb24gdGV4dCBvYmplY3Rz
LgorICogVGhpcyBpcyBhbiBpbnRlcmZhY2UgZm9yIGZvcndhcmQgYW5kIGJhY2t3YXJkIGl0ZXJh
dGlvbgorICogYW5kIHJhbmRvbSBhY2Nlc3MgaW50byBhIHRleHQgb2JqZWN0LgorICoKKyAqIDxw
PlRoZSBBUEkgcHJvdmlkZXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB0byB0aGUgSmF2YSBhbmQg
b2xkZXIgSUNVCisgKiBDaGFyYWN0ZXJJdGVyYXRvciBjbGFzc2VzIGJ1dCBleHRlbmRzIHRoZW0g
c2lnbmlmaWNhbnRseToKKyAqIDxvbD4KKyAqIDxsaT5DaGFyYWN0ZXJJdGVyYXRvciBpcyBub3cg
YSBzdWJjbGFzcyBvZiBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuPC9saT4KKyAqIDxsaT5XaGls
ZSB0aGUgb2xkIEFQSSBmdW5jdGlvbnMgcHJvdmlkZWQgZm9yd2FyZCBpdGVyYXRpb24gd2l0aAor
ICogICAgICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MsIHRoZSBuZXcgb25lIGFsc28gcHJvdmlk
ZXMgZnVuY3Rpb25zCisgKiAgICAgd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNlbWFudGljcy4gVGhl
eSBhcmUgbW9yZSBlZmZpY2llbnQgYW5kIHNob3VsZAorICogICAgIGJlIHRoZSBwcmVmZXJyZWQg
aXRlcmF0b3IgZnVuY3Rpb25zIGZvciBuZXcgaW1wbGVtZW50YXRpb25zLgorICogICAgIFRoZSBi
YWNrd2FyZCBpdGVyYXRpb24gYWx3YXlzIGhhZCAicHJlLWRlY3JlbWVudCIgc2VtYW50aWNzLCB3
aGljaAorICogICAgIGFyZSBlZmZpY2llbnQuPC9saT4KKyAqIDxsaT5KdXN0IGxpa2UgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yLCBpdCBwcm92aWRlcyBhY2Nlc3MgdG8KKyAqICAgICBib3RoIGNv
ZGUgdW5pdHMgYW5kIGNvZGUgcG9pbnRzLiBDb2RlIHBvaW50IGFjY2VzcyB2ZXJzaW9ucyBhcmUg
YXZhaWxhYmxlCisgKiAgICAgZm9yIHRoZSBvbGQgYW5kIHRoZSBuZXcgaXRlcmF0aW9uIHNlbWFu
dGljcy48L2xpPgorICogPGxpPlRoZXJlIGFyZSBuZXcgZnVuY3Rpb25zIGZvciBzZXR0aW5nIGFu
ZCBtb3ZpbmcgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICB3aXRob3V0IHJldHVybmluZyBh
IGNoYXJhY3RlciwgZm9yIGVmZmljaWVuY3kuPC9saT4KKyAqIDwvb2w+CisgKgorICogU2VlIEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciBmb3IgZXhhbXBsZXMgZm9yIHVzaW5nIHRoZSBuZXcgZm9y
d2FyZCBpdGVyYXRpb24KKyAqIGZ1bmN0aW9ucy4gRm9yIGJhY2t3YXJkIGl0ZXJhdGlvbiwgdGhl
cmUgaXMgYWxzbyBhIGhhc1ByZXZpb3VzKCkgZnVuY3Rpb24KKyAqIHRoYXQgY2FuIGJlIHVzZWQg
YW5hbG9nb3VzbHkgdG8gaGFzTmV4dCgpLgorICogVGhlIG9sZCBmdW5jdGlvbnMgd29yayBhcyBi
ZWZvcmUgYW5kIGFyZSBzaG93biBiZWxvdy48L3A+CisgKgorICogPHA+RXhhbXBsZXMgZm9yIHNv
bWUgb2YgdGhlIG5ldyBmdW5jdGlvbnM6PC9wPgorICoKKyAqIEZvcndhcmQgaXRlcmF0aW9uIHdp
dGggaGFzTmV4dCgpOgorICogXGNvZGUKKyAqIHZvaWQgZm9yd2FyZDEoQ2hhcmFjdGVySXRlcmF0
b3IgJml0KSB7CisgKiAgICAgVUNoYXIzMiBjOworICogICAgIGZvcihpdC5zZXRUb1N0YXJ0KCk7
IGl0Lmhhc05leHQoKTspIHsKKyAqICAgICAgICAgYz1pdC5uZXh0MzJQb3N0SW5jKCk7CisgKiAg
ICAgICAgIC8vIHVzZSBjCisgKiAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiBGb3J3YXJk
IGl0ZXJhdGlvbiBtb3JlIHNpbWlsYXIgdG8gbG9vcHMgd2l0aCB0aGUgb2xkIGZvcndhcmQgaXRl
cmF0aW9uLAorICogc2hvd2luZyBhIHdheSB0byBjb252ZXJ0IHNpbXBsZSBmb3IoKSBsb29wczoK
KyAqIFxjb2RlCisgKiB2b2lkIGZvcndhcmQyKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICog
ICAgIFVDaGFyIGM7CisgKiAgICAgZm9yKGM9aXQuZmlyc3RQb3N0SW5jKCk7IGMhPUNoYXJhY3Rl
ckl0ZXJhdG9yOjpET05FOyBjPWl0Lm5leHRQb3N0SW5jKCkpIHsKKyAqICAgICAgICAgIC8vIHVz
ZSBjCisgKiAgICAgIH0KKyAqIH0KKyAqIFxlbmRjb2RlCisgKiBCYWNrd2FyZCBpdGVyYXRpb24g
d2l0aCBzZXRUb0VuZCgpIGFuZCBoYXNQcmV2aW91cygpOgorICogXGNvZGUKKyAqICB2b2lkIGJh
Y2t3YXJkMShDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICAgVUNoYXIzMiBjOworICog
ICAgICBmb3IoaXQuc2V0VG9FbmQoKTsgaXQuaGFzUHJldmlvdXMoKTspIHsKKyAqICAgICAgICAg
Yz1pdC5wcmV2aW91czMyKCk7CisgKiAgICAgICAgICAvLyB1c2UgYworICogICAgICB9CisgKiAg
fQorICogXGVuZGNvZGUKKyAqIEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIGEgbW9yZSB0cmFkaXRp
b25hbCBmb3IoKSBsb29wOgorICogXGNvZGUKKyAqIHZvaWQgYmFja3dhcmQyKENoYXJhY3Rlckl0
ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyIGM7CisgKiAgICAgZm9yKGM9aXQubGFzdCgpOyBj
IT1DaGFyYWN0ZXJJdGVyYXRvcjo6RE9ORTsgYz1pdC5wcmV2aW91cygpKSB7CisgKiAgICAgICAg
IC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICoKKyAqIEV4YW1wbGUg
Zm9yIHJhbmRvbSBhY2Nlc3M6CisgKiBcY29kZQorICogIHZvaWQgcmFuZG9tKENoYXJhY3Rlckl0
ZXJhdG9yICZpdCkgeworICogICAgICAvLyBzZXQgdG8gdGhlIHRoaXJkIGNvZGUgcG9pbnQgZnJv
bSB0aGUgYmVnaW5uaW5nCisgKiAgICAgIGl0Lm1vdmUzMigzLCBDaGFyYWN0ZXJJdGVyYXRvcjo6
a1N0YXJ0KTsKKyAqICAgICAgLy8gZ2V0IGEgY29kZSBwb2ludCBmcm9tIGhlcmUgd2l0aG91dCBt
b3ZpbmcgdGhlIHBvc2l0aW9uCisgKiAgICAgIFVDaGFyMzIgYz1pdC5jdXJyZW50MzIoKTsKKyAq
ICAgICAgLy8gZ2V0IHRoZSBwb3NpdGlvbgorICogICAgICBpbnQzMl90IHBvcz1pdC5nZXRJbmRl
eCgpOworICogICAgICAvLyBnZXQgdGhlIHByZXZpb3VzIGNvZGUgdW5pdAorICogICAgICBVQ2hh
ciB1PWl0LnByZXZpb3VzKCk7CisgKiAgICAgIC8vIG1vdmUgYmFjayBvbmUgbW9yZSBjb2RlIHVu
aXQKKyAqICAgICAgaXQubW92ZSgtMSwgQ2hhcmFjdGVySXRlcmF0b3I6OmtDdXJyZW50KTsKKyAq
ICAgICAgLy8gc2V0IHRoZSBwb3NpdGlvbiBiYWNrIHRvIHdoZXJlIGl0IHdhcworICogICAgICAv
LyBhbmQgcmVhZCB0aGUgc2FtZSBjb2RlIHBvaW50IGMgYW5kIG1vdmUgYmV5b25kIGl0CisgKiAg
ICAgIGl0LnNldEluZGV4KHBvcyk7CisgKiAgICAgIGlmKGMhPWl0Lm5leHQzMlBvc3RJbmMoKSkg
eworICogICAgICAgICAgZXhpdCgxKTsgLy8gQ2hhcmFjdGVySXRlcmF0b3IgaW5jb25zaXN0ZW50
CisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICoKKyAqIDxwPkV4YW1wbGVzLCBlc3Bl
Y2lhbGx5IGZvciB0aGUgb2xkIEFQSTo8L3A+CisgKgorICogRnVuY3Rpb24gcHJvY2Vzc2luZyBj
aGFyYWN0ZXJzLCBpbiB0aGlzIGV4YW1wbGUgc2ltcGxlIG91dHB1dAorICogPHByZT4KKyAqIFxj
b2RlCisgKiAgdm9pZCBwcm9jZXNzQ2hhciggVUNoYXIgYyApCisgKiAgeworICogICAgICBjb3V0
IDw8ICIgIiA8PCBjOworICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIFRyYXZlcnNl
IHRoZSB0ZXh0IGZyb20gc3RhcnQgdG8gZmluaXNoCisgKiA8cHJlPiAKKyAqIFxjb2RlCisgKiAg
dm9pZCB0cmF2ZXJzZUZvcndhcmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIpCisgKiAgeworICog
ICAgICBmb3IoVUNoYXIgYyA9IGl0ZXIuZmlyc3QoKTsgYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5E
T05FOyBjID0gaXRlci5uZXh0KCkpIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMpOworICog
ICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgdGhlIHRl
eHQgYmFja3dhcmRzLCBmcm9tIGVuZCB0byBzdGFydAorICogPHByZT4KKyAqIFxjb2RlCisgKiAg
dm9pZCB0cmF2ZXJzZUJhY2t3YXJkKENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyKQorICogIHsKKyAq
ICAgICAgZm9yKFVDaGFyIGMgPSBpdGVyLmxhc3QoKTsgYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5E
T05FOyBjID0gaXRlci5wcmV2aW91cygpKSB7CisgKiAgICAgICAgICBwcm9jZXNzQ2hhcihjKTsK
KyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIFRyYXZlcnNlIGJv
dGggZm9yd2FyZCBhbmQgYmFja3dhcmQgZnJvbSBhIGdpdmVuIHBvc2l0aW9uIGluIHRoZSB0ZXh0
LiAKKyAqIENhbGxzIHRvIG5vdEJvdW5kYXJ5KCkgaW4gdGhpcyBleGFtcGxlIHJlcHJlc2VudHMg
c29tZSBhZGRpdGlvbmFsIHN0b3BwaW5nIGNyaXRlcmlhLgorICogPHByZT4KKyAqIFxjb2RlCisg
KiB2b2lkIHRyYXZlcnNlT3V0KENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyLCBpbnQzMl90IHBvcykK
KyAqIHsKKyAqICAgICAgVUNoYXIgYzsKKyAqICAgICAgZm9yIChjID0gaXRlci5zZXRJbmRleChw
b3MpOworICogICAgICBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYgKFVuaWNvZGU6Omlz
TGV0dGVyKGMpIHx8IFVuaWNvZGU6OmlzRGlnaXQoYykpOworICogICAgICAgICAgYyA9IGl0ZXIu
bmV4dCgpKSB7fQorICogICAgICBpbnQzMl90IGVuZCA9IGl0ZXIuZ2V0SW5kZXgoKTsKKyAqICAg
ICAgZm9yIChjID0gaXRlci5zZXRJbmRleChwb3MpOworICogICAgICAgICAgYyAhPSBDaGFyYWN0
ZXJJdGVyYXRvci5ET05FICYmIChVbmljb2RlOjppc0xldHRlcihjKSB8fCBVbmljb2RlOjppc0Rp
Z2l0KGMpKTsKKyAqICAgICAgICAgIGMgPSBpdGVyLnByZXZpb3VzKCkpIHt9CisgKiAgICAgIGlu
dDMyX3Qgc3RhcnQgPSBpdGVyLmdldEluZGV4KCkgKyAxOworICogIAorICogICAgICBjb3V0IDw8
ICJzdGFydDogIiA8PCBzdGFydCA8PCAiIGVuZDogIiA8PCBlbmQgPDwgZW5kbDsKKyAqICAgICAg
Zm9yIChjID0gaXRlci5zZXRJbmRleChzdGFydCk7IGl0ZXIuZ2V0SW5kZXgoKSA8IGVuZDsgYyA9
IGl0ZXIubmV4dCgpICkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgfQor
ICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIENyZWF0aW5nIGEgU3RyaW5nQ2hhcmFj
dGVySXRlcmF0b3IgYW5kIGNhbGxpbmcgdGhlIHRlc3QgZnVuY3Rpb25zCisgKiA8cHJlPgorICog
XGNvZGUKKyAqICB2b2lkIENoYXJhY3Rlckl0ZXJhdG9yX0V4YW1wbGUoIHZvaWQgKQorICogICB7
CisgKiAgICAgICBjb3V0IDw8IGVuZGwgPDwgIj09PT09IENoYXJhY3Rlckl0ZXJhdG9yX0V4YW1w
bGU6ID09PT09IiA8PCBlbmRsOworICogICAgICAgVW5pY29kZVN0cmluZyB0ZXh0KCJFaW4ga2xl
aW5lciBTYXR6LiIpOworICogICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3Io
dGV4dCk7CisgKiAgICAgICBjb3V0IDw8ICItLS0tLSB0cmF2ZXJzZUZvcndhcmQ6IC0tLS0tLS0t
LS0tIiA8PCBlbmRsOworICogICAgICAgdHJhdmVyc2VGb3J3YXJkKCBpdGVyYXRvciApOworICog
ICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIHRyYXZlcnNlQmFja3dhcmQ6IC0t
LS0tLS0tLS0iIDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZUJhY2t3YXJkKCBpdGVyYXRvciAp
OworICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIHRyYXZlcnNlT3V0OiAt
LS0tLS0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZU91dCggaXRlcmF0b3Is
IDcgKTsKKyAqICAgICAgIGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICItLS0tLSIgPDwgZW5kbDsK
KyAqICAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICoKKyAqIEBzdGFibGUgSUNVIDIuMAor
ICovCitjbGFzcyBVX0NPTU1PTl9BUEkgQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiBPcmlnaW4gZW51
bWVyYXRpb24gZm9yIHRoZSBtb3ZlKCkgYW5kIG1vdmUzMigpIGZ1bmN0aW9ucy4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBlbnVtIEVPcmlnaW4geyBrU3RhcnQsIGtDdXJy
ZW50LCBrRW5kIH07CisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkNoYXJhY3Rlckl0ZXJhdG9yKCk7CisK
KyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcG9pbnRlciB0byBhIG5ldyBDaGFyYWN0ZXJJdGVy
YXRvciBvZiB0aGUgc2FtZQorICAgICAqIGNvbmNyZXRlIGNsYXNzIGFzIHRoaXMgb25lLCBhbmQg
cmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHRleHQt
c3RvcmFnZSBvYmplY3QgYXMgdGhpcyBvbmUuICBUaGUKKyAgICAgKiBjYWxsZXIgaXMgcmVzcG9u
c2libGUgZm9yIGRlbGV0aW5nIHRoZSBuZXcgY2xvbmUuICAKKyAgICAgKiBAcmV0dXJuIGEgcG9p
bnRlciB0byBhIG5ldyBDaGFyYWN0ZXJJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0
ID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRo
ZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0
dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFu
IGl0ZXJhdGlvbiB3aXRoIG5leHQoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVu
aXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3Qodm9pZCkgPSAwOworCisgICAgLyoq
CisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5p
dCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHVuaXQs
IGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICAgKiB0byB0aGUgc2Vjb25kIGNvZGUgdW5pdC4g
VGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICAgKiBmb3IgZm9yd2Fy
ZCBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0
IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdFBvc3RJbmModm9pZCk7
CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmly
c3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5z
IHRoYXQgY29kZSB1bml0LAorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRl
cmF0aW9uIHdpdGggbmV4dDMyKCkuCisgICAgICogTm90ZSB0aGF0IGFuIGl0ZXJhdGlvbiB3aXRo
IG5leHQzMlBvc3RJbmMoKSwgYmVnaW5uaW5nIHdpdGgsCisgICAgICogZS5nLiwgc2V0VG9TdGFy
dCgpIG9yIGZpcnN0UG9zdEluYygpLCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICAgKiBAcmV0dXJu
IHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzIo
dm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIg
dG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBy
ZXR1cm5zIHRoYXQgY29kZSBwb2ludCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgICAqIHRv
IHRoZSBzZWNvbmQgY29kZSBwb2ludC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0
YXJ0KCkKKyAgICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0SW5jKCku
CisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJh
bmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIz
MiAgICAgICBmaXJzdDMyUG9zdEluYyh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgb3IgY29kZSBwb2ludCBp
biBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UuIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4g
YSBmb3J3YXJkCisgICAgICogaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMoKSBvciBuZXh0MzJQ
b3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIGl0ZXJh
dGlvbiByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBp
bnQzMl90ICAgIHNldFRvU3RhcnQoKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJh
dG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICAgKiBpdGVyYXRp
b24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgICAqIFRoaXMgY2FuIGJl
IHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKS4KKyAgICAgKiBAcmV0
dXJuIHRoZSBsYXN0IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbGFzdCh2b2lkKSA9IDA7CisgICAgICAgIAorICAg
IC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUg
cG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNv
ZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3
aXRoIHByZXZpb3VzMzIoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNvZGUgcG9pbnQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAg
IGxhc3QzMih2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0
byB0aGUgZW5kIG9mIGl0cyBpdGVyYXRpb24gcmFuZ2UsIGp1c3QgYmVoaW5kCisgICAgICogdGhl
IGxhc3QgY29kZSB1bml0IG9yIGNvZGUgcG9pbnQuIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4g
YSBiYWNrd2FyZAorICAgICAqIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkgb3IgcHJldmlvdXMz
MigpLgorICAgICAqIEByZXR1cm4gdGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJh
bmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3Qg
ICAgc2V0VG9FbmQoKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJl
ZmVyIHRvIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgICAqIGluIHRoZSB0ZXh0LXN0
b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgICAqIHJldHVybnMg
dGhhdCBjb2RlIHVuaXQuICAKKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlICJwb3NpdGlvbiIt
dGggY29kZSB1bml0IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHJldHVybiB0
aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIHNldEluZGV4KGludDMyX3QgcG9zaXRpb24p
ID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRo
ZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiB0aGF0IGNvbnRhaW5zIHRoZSAi
cG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgICAqIGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0
IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgICAqIHJldHVybnMgdGhhdCBjb2RlIHBv
aW50LgorICAgICAqIFRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIGFkanVzdGVkIHRvIHRoZSBiZWdp
bm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiAoaXRzIGZpcnN0IGNvZGUgdW5pdCkuCisg
ICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdCBpbiB0aGUg
dGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlICJwb3NpdGlvbiItdGggY29k
ZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVD
aGFyMzIgICAgICAgc2V0SW5kZXgzMihpbnQzMl90IHBvc2l0aW9uKSA9IDA7CisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZl
cnMgdG8uIAorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSB1bml0LiAKKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgY3VycmVu
dCh2b2lkKSBjb25zdCA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhl
IGNvZGUgcG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uICAKKyAgICAgKiBA
cmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGN1cnJlbnQzMih2b2lkKSBjb25zdCA9
IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUg
dW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgpKSwg
YW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3Jl
IGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICogQHJldHVybiB0aGUg
bmV4dCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBVQ2hhciAgICAgICAgIG5leHQodm9pZCkgPSAwOworICAgICAgICAKKyAgICAvKioKKyAg
ICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFu
Z2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgcG9p
bnQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJldHVybiwg
cmV0dXJucyBET05FLgorICAgICAqIE5vdGUgdGhhdCBpdGVyYXRpb24gd2l0aCAicHJlLWluY3Jl
bWVudCIgc2VtYW50aWNzIGlzIGxlc3MKKyAgICAgKiBlZmZpY2llbnQgdGhhbiBpdGVyYXRpb24g
d2l0aCAicG9zdC1pbmNyZW1lbnQiIHNlbWFudGljcworICAgICAqIHRoYXQgaXMgcHJvdmlkZWQg
YnkgbmV4dDMyUG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSBwb2ludC4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAg
ICAgbmV4dDMyKHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMg
dG8gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICog
KHRvd2FyZCBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4gIElmIHRo
ZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9O
RS4gIAorICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgdW5pdC4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgcHJldmlvdXMo
dm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNv
ZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgc3RhcnRJbmRl
eCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlCisgICAgICog
bm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4gCisgICAgICogQHJl
dHVybiB0aGUgcHJldmlvdXMgY29kZSBwb2ludC4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHByZXZpb3VzMzIodm9pZCkgPSAwOwor
CisgICAgLyoqCisgICAgICogUmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2Rl
IHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9u
IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogVGhpcyBpcyB1c2VkIHdpdGggcHJldmlv
dXMoKSBvciBwcmV2aW91czMyKCkgaW4gYmFja3dhcmQKKyAgICAgKiBpdGVyYXRpb24uCisgICAg
ICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUg
cG9pbnRzCisgICAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UsIHJldHVybiBUUlVFIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNQcmV2aW91cygpID0gMDsKKwor
ICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlp
bmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0ZXIgcmV0dXJuZWQg
YnkgZmlyc3QoKS4gIFNpbmNlIGl0J3MKKyAgICAgKiBwb3NzaWJsZSB0byBjcmVhdGUgYW4gaXRl
cmF0b3IgdGhhdCBpdGVyYXRlcyBhY3Jvc3Mgb25seQorICAgICAqIHBhcnQgb2YgYSB0ZXh0LXN0
b3JhZ2Ugb2JqZWN0LCB0aGlzIG51bWJlciBpc24ndAorICAgICAqIG5lY2Vzc2FyaWx5IDAuICAK
KyAgICAgKiBAcmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0
LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBmaXJz
dCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90
ICAgICAgIHN0YXJ0SW5kZXgodm9pZCkgY29uc3Q7CisgICAgICAgIAorICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdl
CisgICAgICogb2JqZWN0IG9mIHRoZSBwb3NpdGlvbiBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGNo
YXJhY3RlcgorICAgICAqIHJldHVybmVkIGJ5IGxhc3QoKS4gIAorICAgICAqIEByZXR1cm4gdGhl
IG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAgICogb2Jq
ZWN0IG9mIHRoZSBwb3NpdGlvbiBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGNoYXJhY3RlcgorICAg
ICAqIHJldHVybmVkIGJ5IGxhc3QoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBlbmRJbmRleCh2b2lkKSBjb25zdDsKKyAgICAgICAg
CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJs
eWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciB0aGUgaXRl
cmF0b3IgY3VycmVudGx5IHJlZmVycyB0bworICAgICAqIChpLmUuLCB0aGUgY2hhcmFjdGVyIHJl
dHVybmVkIGJ5IGN1cnJlbnQoKSkuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXJpYyBpbmRl
eCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCBvZiAKKyAgICAgKiB0aGUgY2hhcmFjdGVyIHRo
ZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAgZ2V0SW5kZXgodm9pZCkgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGVudGlyZSB0ZXh0IGlu
IHRoZSB1bmRlcmx5aW5nCisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdC4KKyAgICAgKiBAcmV0
dXJuIHRoZSBsZW5ndGggb2YgdGhlIGVudGlyZSB0ZXh0IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2Jq
ZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3Qg
ICAgICAgICAgIGdldExlbmd0aCgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogTW92ZXMgdGhl
IGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUKKyAg
ICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9u
IGl0c2VsZi4KKyAgICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2Yg
Y29kZSB1bml0cyBmb3J3YXJkCisgICAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBv
c2l0aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRp
b24gcmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7Cisg
ICAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICAgKiBAcGFyYW0gb3Jp
Z2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICAgKiBA
cmV0dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3Jp
Z2luKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiBy
ZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgICAqIGl0ZXJhdGlvbiByYW5n
ZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgICAqIFRo
ZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHBvaW50cyBmb3J3YXJk
CisgICAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZl
IGRlbHRhLgorICAgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVsYXRpdmUgdG8gb3Jp
Z2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAgICogYSBuZWdhdGl2ZSBk
ZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJh
dGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcgcG9z
aXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMy
X3QgICAgICBtb3ZlMzIoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pID0gMDsKKworICAg
IC8qKgorICAgICAqIENvcGllcyB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24gaW50byB0aGUgVW5p
Y29kZVN0cmluZworICAgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgCisgICAgICogQHBh
cmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uLiAg
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkICAgICAg
ICAgICAgZ2V0VGV4dChVbmljb2RlU3RyaW5nJiAgcmVzdWx0KSA9IDA7CisKK3Byb3RlY3RlZDoK
KyAgICAvKioKKyAgICAgKiBFbXB0eSBjb25zdHJ1Y3Rvci4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICog
Q29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoIGZpZWxkIGluIHRoaXMgYmFzZSBj
bGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVy
YXRvcihpbnQzMl90IGxlbmd0aCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciwganVz
dCBzZXR0aW5nIHRoZSBsZW5ndGggYW5kIHBvc2l0aW9uIGZpZWxkcyBpbiB0aGlzIGJhc2UgY2xh
c3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0
b3IoaW50MzJfdCBsZW5ndGgsIGludDMyX3QgcG9zaXRpb24pOworCisgICAgLyoqCisgICAgICog
Q29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoLCBzdGFydCwgZW5kLCBhbmQgcG9z
aXRpb24gZmllbGRzIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0aCwgaW50MzJfdCB0
ZXh0QmVnaW4sIGludDMyX3QgdGV4dEVuZCwgaW50MzJfdCBwb3NpdGlvbik7CisgIAorICAgIC8q
KgorICAgICAqIENvcHkgY29uc3RydWN0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGhhdCBU
aGUgQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgQ2hhcmFjdGVySXRlcmF0b3Ig
JnRoYXQpOworCisgICAgLyoqCisgICAgICogQXNzaWdubWVudCBvcGVyYXRvci4gIFNldHMgdGhp
cyBDaGFyYWN0ZXJJdGVyYXRvciB0byBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLAorICAgICAqIGFz
IHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBDaGFyYWN0ZXJJdGVy
YXRvciBwYXNzZWQgaW4uCisgICAgICogQHJldHVybiB0aGUgbmV3bHkgc2V0IENoYXJhY3Rlckl0
ZXJhdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0
ZXJhdG9yICZvcGVyYXRvcj0oY29uc3QgQ2hhcmFjdGVySXRlcmF0b3IgJnRoYXQpOworCisgICAg
LyoqCisgICAgICogQmFzZSBjbGFzcyB0ZXh0IGxlbmd0aCBmaWVsZC4KKyAgICAgKiBOZWNlc3Nh
cnkgdGhpcyBmb3IgY29ycmVjdCBnZXRUZXh0KCkgYW5kIGhhc2hDb2RlKCkuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCB0ZXh0TGVuZ3RoOworCisgICAgLyoq
CisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCAgcG9zOworCisgICAgLyoq
CisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIHN0YXJ0IG9mIHRoZSBpdGVyYXRpb24g
cmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCAgYmVn
aW47CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0aGUgZW5kIG9mIHRo
ZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
aW50MzJfdCAgZW5kOworfTsKKworaW5saW5lIFVCb29sCitGb3J3YXJkQ2hhcmFjdGVySXRlcmF0
b3I6Om9wZXJhdG9yIT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25z
dCB7CisgICAgcmV0dXJuICFvcGVyYXRvcj09KHRoYXQpOworfQorCitpbmxpbmUgaW50MzJfdAor
Q2hhcmFjdGVySXRlcmF0b3I6OnNldFRvU3RhcnQoKSB7CisgICAgcmV0dXJuIG1vdmUoMCwga1N0
YXJ0KTsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpzZXRUb0VuZCgp
IHsKKyAgICByZXR1cm4gbW92ZSgwLCBrRW5kKTsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJh
Y3Rlckl0ZXJhdG9yOjpzdGFydEluZGV4KHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gYmVnaW47
Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6ZW5kSW5kZXgodm9pZCkg
Y29uc3QgeworICAgIHJldHVybiBlbmQ7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJ
dGVyYXRvcjo6Z2V0SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBwb3M7Cit9CisKK2lu
bGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6Z2V0TGVuZ3RoKHZvaWQpIGNvbnN0IHsK
KyAgICByZXR1cm4gdGV4dExlbmd0aDsKK30KKworVV9OQU1FU1BBQ0VfRU5ECisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaCBiL1NvdXJjZS9XVEYvaWN1
L3VuaWNvZGUvbG9jaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWQ1Y2I1NDZlYmUzOTdlZjQzNmRmMzY1MDNl
YjQzNzFjMzg2Njk2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9s
b2NpZC5oCkBAIC0wLDAgKzEsODE0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisq
ICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMTUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoK
KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxlIGxvY2lkLmgKKyoKKyogQ3JlYXRlZCBi
eTogSGVsZW5hIFNoaWgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAg
ICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwMi8xMS85NyAgICBhbGl1ICAgICAg
ICBDaGFuZ2VkIGdMb2NQYXRoIHRvIGZnTG9jUGF0aCBhbmQgYWRkZWQgbWV0aG9kcyB0bworKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdldCBhbmQgc2V0IGl0LgorKiAgIDA0LzAyLzk3ICAg
IGFsaXUgICAgICAgIE1hZGUgb3BlcmF0b3IhPSBpbmxpbmU7IGZpeGVkIHJldHVybiB2YWx1ZSBv
ZiBnZXROYW1lKCkuCisqICAgMDQvMTUvOTcgICAgYWxpdSAgICAgICAgQ2xlYW51cCBmb3IgQUlY
L1dpbjMyLgorKiAgIDA0LzI0Lzk3ICAgIGFsaXUgICAgICAgIE51bWVyb3VzIGNoYW5nZXMgcGVy
IGNvZGUgcmV2aWV3LgorKiAgIDA4LzE4Lzk4ICAgIHN0ZXBoZW4gICAgIEFkZGVkIHRva2VuaXpl
U3RyaW5nKCksY2hhbmdlZCBnZXREaXNwbGF5TmFtZSgpCisqICAgMDkvMDgvOTggICAgc3RlcGhl
biAgICAgTW92ZWQgZGVmaW5pdGlvbiBvZiBrRW1wdHlTdHJpbmcgZm9yIE1hYyBQb3J0CisqICAg
MTEvMDkvOTkgICAgd2VpdiAgICAgICAgQWRkZWQgY29uc3QgY2hhciAqIGdldE5hbWUoKSBjb25z
dDsKKyogICAwNC8xMi8wMCAgICBzcmwgICAgICAgICByZW1vdmluZyB1bmljb2Rlc3RyaW5nIGFw
aSdzIGFuZCBjYWNoZWQgaGFzaCBjb2RlCisqICAgMDgvMTAvMDEgICAgZ3Job3RlbiAgICAgQ2hh
bmdlIHRoZSBzdGF0aWMgTG9jYWxlcyB0byBhY2Nlc3NvciBmdW5jdGlvbnMKKyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgorKi8KKworI2lmbmRlZiBMT0NJRF9ICisjZGVmaW5lIExPQ0lEX0gKKworI2lu
Y2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisj
aW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3B1dGlsLmgiCisj
aW5jbHVkZSAidW5pY29kZS91bG9jLmgiCisjaW5jbHVkZSAidW5pY29kZS9zdHJlbnVtLmgiCisK
Ky8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBMb2NhbGUgSUQgb2JqZWN0LgorICov
CisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8vIEZvcndhcmQgRGVjbGFyYXRpb25zCit2b2lkIFVf
Q0FMTENPTlYgbG9jYWxlX2F2YWlsYWJsZV9pbml0KCk7IC8qKjwgQGludGVybmFsICovCisKKy8q
KgorICogQSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCByZXByZXNlbnRzIGEgc3BlY2lmaWMg
Z2VvZ3JhcGhpY2FsLCBwb2xpdGljYWwsCisgKiBvciBjdWx0dXJhbCByZWdpb24uIEFuIG9wZXJh
dGlvbiB0aGF0IHJlcXVpcmVzIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiB0byBwZXJmb3JtCisgKiBp
dHMgdGFzayBpcyBjYWxsZWQgPGVtPmxvY2FsZS1zZW5zaXRpdmU8L2VtPiBhbmQgdXNlcyB0aGUg
PGNvZGU+TG9jYWxlPC9jb2RlPgorICogdG8gdGFpbG9yIGluZm9ybWF0aW9uIGZvciB0aGUgdXNl
ci4gRm9yIGV4YW1wbGUsIGRpc3BsYXlpbmcgYSBudW1iZXIKKyAqIGlzIGEgbG9jYWxlLXNlbnNp
dGl2ZSBvcGVyYXRpb24tLXRoZSBudW1iZXIgc2hvdWxkIGJlIGZvcm1hdHRlZAorICogYWNjb3Jk
aW5nIHRvIHRoZSBjdXN0b21zL2NvbnZlbnRpb25zIG9mIHRoZSB1c2VyJ3MgbmF0aXZlIGNvdW50
cnksCisgKiByZWdpb24sIG9yIGN1bHR1cmUuCisgKgorICogVGhlIExvY2FsZSBjbGFzcyBpcyBu
b3Qgc3VpdGFibGUgZm9yIHN1YmNsYXNzaW5nLgorICoKKyAqIDxQPgorICogWW91IGNhbiBjcmVh
dGUgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCB1c2luZyB0aGUgY29uc3RydWN0b3IgaW4K
KyAqIHRoaXMgY2xhc3M6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAq
IDxwcmU+CisgKiAgICAgICBMb2NhbGUoIGNvbnN0ICAgY2hhciogIGxhbmd1YWdlLAorICogICAg
ICAgICAgICAgICBjb25zdCAgIGNoYXIqICBjb3VudHJ5LAorICogICAgICAgICAgICAgICBjb25z
dCAgIGNoYXIqICB2YXJpYW50KTsKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3Rl
PlxlbmRodG1sb25seQorICogVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1Y3RvcnMg
aXMgYSB2YWxpZCA8U1RST05HPklTTworICogTGFuZ3VhZ2UgQ29kZS48L1NUUk9ORz4gVGhlc2Ug
Y29kZXMgYXJlIHRoZSBsb3dlci1jYXNlIHR3by1sZXR0ZXIKKyAqIGNvZGVzIGFzIGRlZmluZWQg
YnkgSVNPLTYzOS4KKyAqIFlvdSBjYW4gZmluZCBhIGZ1bGwgbGlzdCBvZiB0aGVzZSBjb2RlcyBh
dDoKKyAqIDxCUj48YSBocmVmID0iaHR0cDovL3d3dy5sb2MuZ292L3N0YW5kYXJkcy9pc282Mzkt
Mi8iPgorICogaHR0cDovL3d3dy5sb2MuZ292L3N0YW5kYXJkcy9pc282MzktMi88L2E+CisgKgor
ICogPFA+CisgKiBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1Y3RvcnMgaXMgYSB2
YWxpZCA8U1RST05HPklTTyBDb3VudHJ5CisgKiBDb2RlLjwvU1RST05HPiBUaGVzZSBjb2RlcyBh
cmUgdGhlIHVwcGVyLWNhc2UgdHdvLWxldHRlciBjb2RlcworICogYXMgZGVmaW5lZCBieSBJU08t
MzE2Ni4KKyAqIFlvdSBjYW4gZmluZCBhIGZ1bGwgbGlzdCBvZiB0aGVzZSBjb2RlcyBhdCBhIG51
bWJlciBvZiBzaXRlcywgc3VjaCBhczoKKyAqIDxCUj48YSBocmVmPSJodHRwOi8vd3d3Lmlzby5v
cmcvaXNvL2VuL3Byb2RzLXNlcnZpY2VzL2lzbzMxNjZtYS9pbmRleC5odG1sIj4KKyAqIGh0dHA6
Ly93d3cuaXNvLm9yZy9pc28vZW4vcHJvZHMtc2VydmljZXMvaXNvMzE2Nm1hL2luZGV4Lmh0bWw8
L2E+CisgKgorICogPFA+CisgKiBUaGUgdGhpcmQgY29uc3RydWN0b3IgcmVxdWlyZXMgYSB0aGly
ZCBhcmd1bWVudC0tdGhlIDxTVFJPTkc+VmFyaWFudC48L1NUUk9ORz4KKyAqIFRoZSBWYXJpYW50
IGNvZGVzIGFyZSB2ZW5kb3IgYW5kIGJyb3dzZXItc3BlY2lmaWMuCisgKiBGb3IgZXhhbXBsZSwg
dXNlIFJFVklTRUQgZm9yIGEgbGFuZ2F1Z2UncyByZXZpc2VkIHNjcmlwdCBvcnRob2dyYXBoeSwg
YW5kIFBPU0lYIGZvciBQT1NJWC4KKyAqIFdoZXJlIHRoZXJlIGFyZSB0d28gdmFyaWFudHMsIHNl
cGFyYXRlIHRoZW0gd2l0aCBhbiB1bmRlcnNjb3JlLCBhbmQKKyAqIHB1dCB0aGUgbW9zdCBpbXBv
cnRhbnQgb25lIGZpcnN0LiBGb3IKKyAqIGV4YW1wbGUsIGEgVHJhZGl0aW9uYWwgU3BhbmlzaCBj
b2xsYXRpb24gbWlnaHQgYmUgcmVmZXJlbmNlZCwgd2l0aAorICogIkVTIiwgIkVTIiwgIlRyYWRp
dGlvbmFsX1BPU0lYIi4KKyAqCisgKiA8UD4KKyAqIEJlY2F1c2UgYSA8Y29kZT5Mb2NhbGU8L2Nv
ZGU+IG9iamVjdCBpcyBqdXN0IGFuIGlkZW50aWZpZXIgZm9yIGEgcmVnaW9uLAorICogbm8gdmFs
aWRpdHkgY2hlY2sgaXMgcGVyZm9ybWVkIHdoZW4geW91IGNvbnN0cnVjdCBhIDxjb2RlPkxvY2Fs
ZTwvY29kZT4uCisgKiBJZiB5b3Ugd2FudCB0byBzZWUgd2hldGhlciBwYXJ0aWN1bGFyIHJlc291
cmNlcyBhcmUgYXZhaWxhYmxlIGZvciB0aGUKKyAqIDxjb2RlPkxvY2FsZTwvY29kZT4geW91IGNv
bnN0cnVjdCwgeW91IG11c3QgcXVlcnkgdGhvc2UgcmVzb3VyY2VzLiBGb3IKKyAqIGV4YW1wbGUs
IGFzayB0aGUgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBmb3IgdGhlIGxvY2FsZXMgaXQgc3Vw
cG9ydHMKKyAqIHVzaW5nIGl0cyA8Y29kZT5nZXRBdmFpbGFibGVMb2NhbGVzPC9jb2RlPiBtZXRo
b2QuCisgKiA8QlI+PFNUUk9ORz5Ob3RlOjwvU1RST05HPiBXaGVuIHlvdSBhc2sgZm9yIGEgcmVz
b3VyY2UgZm9yIGEgcGFydGljdWxhcgorICogbG9jYWxlLCB5b3UgZ2V0IGJhY2sgdGhlIGJlc3Qg
YXZhaWxhYmxlIG1hdGNoLCBub3QgbmVjZXNzYXJpbHkKKyAqIHByZWNpc2VseSB3aGF0IHlvdSBh
c2tlZCBmb3IuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBsb29rIGF0CisgKiA8Y29kZT5SZXNvdXJj
ZUJ1bmRsZTwvY29kZT4uCisgKgorICogPFA+CisgKiBUaGUgPGNvZGU+TG9jYWxlPC9jb2RlPiBj
bGFzcyBwcm92aWRlcyBhIG51bWJlciBvZiBjb252ZW5pZW50IGNvbnN0YW50cworICogdGhhdCB5
b3UgY2FuIHVzZSB0byBjcmVhdGUgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3RzIGZvciBjb21t
b25seSB1c2VkCisgKiBsb2NhbGVzLiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyByZWZlcnMg
dG8gYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdAorICogZm9yIHRoZSBVbml0ZWQgU3RhdGVz
OgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAg
ICAgTG9jYWxlOjpnZXRVUygpCisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5c
ZW5kaHRtbG9ubHkKKyAqCisgKiA8UD4KKyAqIE9uY2UgeW91J3ZlIGNyZWF0ZWQgYSA8Y29kZT5M
b2NhbGU8L2NvZGU+IHlvdSBjYW4gcXVlcnkgaXQgZm9yIGluZm9ybWF0aW9uIGFib3V0CisgKiBp
dHNlbGYuIFVzZSA8Y29kZT5nZXRDb3VudHJ5PC9jb2RlPiB0byBnZXQgdGhlIElTTyBDb3VudHJ5
IENvZGUgYW5kCisgKiA8Y29kZT5nZXRMYW5ndWFnZTwvY29kZT4gdG8gZ2V0IHRoZSBJU08gTGFu
Z3VhZ2UgQ29kZS4gWW91IGNhbgorICogdXNlIDxjb2RlPmdldERpc3BsYXlDb3VudHJ5PC9jb2Rl
PiB0byBnZXQgdGhlCisgKiBuYW1lIG9mIHRoZSBjb3VudHJ5IHN1aXRhYmxlIGZvciBkaXNwbGF5
aW5nIHRvIHRoZSB1c2VyLiBTaW1pbGFybHksCisgKiB5b3UgY2FuIHVzZSA8Y29kZT5nZXREaXNw
bGF5TGFuZ3VhZ2U8L2NvZGU+IHRvIGdldCB0aGUgbmFtZSBvZgorICogdGhlIGxhbmd1YWdlIHN1
aXRhYmxlIGZvciBkaXNwbGF5aW5nIHRvIHRoZSB1c2VyLiBJbnRlcmVzdGluZ2x5LAorICogdGhl
IDxjb2RlPmdldERpc3BsYXlYWFg8L2NvZGU+IG1ldGhvZHMgYXJlIHRoZW1zZWx2ZXMgbG9jYWxl
LXNlbnNpdGl2ZQorICogYW5kIGhhdmUgdHdvIHZlcnNpb25zOiBvbmUgdGhhdCB1c2VzIHRoZSBk
ZWZhdWx0IGxvY2FsZSBhbmQgb25lCisgKiB0aGF0IHRha2VzIGEgbG9jYWxlIGFzIGFuIGFyZ3Vt
ZW50IGFuZCBkaXNwbGF5cyB0aGUgbmFtZSBvciBjb3VudHJ5IGluCisgKiBhIGxhbmd1YWdlIGFw
cHJvcHJpYXRlIHRvIHRoYXQgbG9jYWxlLgorICoKKyAqIDxQPgorICogSUNVIHByb3ZpZGVzIGEg
bnVtYmVyIG9mIGNsYXNzZXMgdGhhdCBwZXJmb3JtIGxvY2FsZS1zZW5zaXRpdmUKKyAqIG9wZXJh
dGlvbnMuIEZvciBleGFtcGxlLCB0aGUgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBjbGFzcyBm
b3JtYXRzCisgKiBudW1iZXJzLCBjdXJyZW5jeSwgb3IgcGVyY2VudGFnZXMgaW4gYSBsb2NhbGUt
c2Vuc2l0aXZlIG1hbm5lci4gQ2xhc3NlcworICogc3VjaCBhcyA8Y29kZT5OdW1iZXJGb3JtYXQ8
L2NvZGU+IGhhdmUgYSBudW1iZXIgb2YgY29udmVuaWVuY2UgbWV0aG9kcworICogZm9yIGNyZWF0
aW5nIGEgZGVmYXVsdCBvYmplY3Qgb2YgdGhhdCB0eXBlLiBGb3IgZXhhbXBsZSwgdGhlCisgKiA8
Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGNsYXNzIHByb3ZpZGVzIHRoZXNlIHRocmVlIGNvbnZl
bmllbmNlIG1ldGhvZHMKKyAqIGZvciBjcmVhdGluZyBhIGRlZmF1bHQgPGNvZGU+TnVtYmVyRm9y
bWF0PC9jb2RlPiBvYmplY3Q6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkK
KyAqIDxwcmU+CisgKiAgICAgVUVycm9yQ29kZSBzdWNjZXNzID0gVV9aRVJPX0VSUk9SOworICog
ICAgIExvY2FsZSBteUxvY2FsZTsKKyAqICAgICBOdW1iZXJGb3JtYXQgKm5mOworICoKKyAqICAg
ICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlSW5zdGFuY2UoIHN1Y2Nlc3MgKTsgICAgICAgICAg
ZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVDdXJyZW5jeUluc3Rh
bmNlKCBzdWNjZXNzICk7ICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNy
ZWF0ZVBlcmNlbnRJbnN0YW5jZSggc3VjY2VzcyApOyAgIGRlbGV0ZSBuZjsKKyAqIDwvcHJlPgor
ICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogRWFjaCBvZiB0aGVzZSBt
ZXRob2RzIGhhcyB0d28gdmFyaWFudHM7IG9uZSB3aXRoIGFuIGV4cGxpY2l0IGxvY2FsZQorICog
YW5kIG9uZSB3aXRob3V0OyB0aGUgbGF0dGVyIHVzaW5nIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAq
IFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICBuZiA9
IE51bWJlckZvcm1hdDo6Y3JlYXRlSW5zdGFuY2UoIG15TG9jYWxlLCBzdWNjZXNzICk7ICAgICAg
ICAgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlQ3VycmVuY3lJ
bnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51
bWJlckZvcm1hdDo6Y3JlYXRlUGVyY2VudEluc3RhbmNlKCBteUxvY2FsZSwgc3VjY2VzcyApOyAg
IGRlbGV0ZSBuZjsKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1s
b25seQorICogQSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGlzIHRoZSBtZWNoYW5pc20gZm9yIGlkZW50
aWZ5aW5nIHRoZSBraW5kIG9mIG9iamVjdAorICogKDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4p
IHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gZ2V0LiBUaGUgbG9jYWxlIGlzCisgKiA8U1RST05HPmp1
c3Q8L1NUUk9ORz4gYSBtZWNoYW5pc20gZm9yIGlkZW50aWZ5aW5nIG9iamVjdHMsCisgKiA8U1RS
T05HPm5vdDwvU1RST05HPiBhIGNvbnRhaW5lciBmb3IgdGhlIG9iamVjdHMgdGhlbXNlbHZlcy4K
KyAqCisgKiA8UD4KKyAqIEVhY2ggY2xhc3MgdGhhdCBwZXJmb3JtcyBsb2NhbGUtc2Vuc2l0aXZl
IG9wZXJhdGlvbnMgYWxsb3dzIHlvdQorICogdG8gZ2V0IGFsbCB0aGUgYXZhaWxhYmxlIG9iamVj
dHMgb2YgdGhhdCB0eXBlLiBZb3UgY2FuIHNpZnQKKyAqIHRocm91Z2ggdGhlc2Ugb2JqZWN0cyBi
eSBsYW5ndWFnZSwgY291bnRyeSwgb3IgdmFyaWFudCwKKyAqIGFuZCB1c2UgdGhlIGRpc3BsYXkg
bmFtZXMgdG8gcHJlc2VudCBhIG1lbnUgdG8gdGhlIHVzZXIuCisgKiBGb3IgZXhhbXBsZSwgeW91
IGNhbiBjcmVhdGUgYSBtZW51IG9mIGFsbCB0aGUgY29sbGF0aW9uIG9iamVjdHMKKyAqIHN1aXRh
YmxlIGZvciBhIGdpdmVuIGxhbmd1YWdlLiBTdWNoIGNsYXNzZXMgaW1wbGVtZW50IHRoZXNlCisg
KiB0aHJlZSBjbGFzcyBtZXRob2RzOgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxv
bmx5CisgKiA8cHJlPgorICogICAgICAgc3RhdGljIExvY2FsZSogZ2V0QXZhaWxhYmxlTG9jYWxl
cyhpbnQzMl90JiBudW1Mb2NhbGVzKQorICogICAgICAgc3RhdGljIFVuaWNvZGVTdHJpbmcmIGdl
dERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgIG9iamVjdExvY2FsZSwKKyAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMb2NhbGUmICBkaXNwbGF5TG9j
YWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNv
ZGVTdHJpbmcmIGRpc3BsYXlOYW1lKQorICogICAgICAgc3RhdGljIFVuaWNvZGVTdHJpbmcmIGdl
dERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgIG9iamVjdExvY2FsZSwKKyAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwbGF5TmFt
ZSkKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICoK
KyAqIEBzdGFibGUgSUNVIDIuMAorICogQHNlZSBSZXNvdXJjZUJ1bmRsZQorICovCitjbGFzcyBV
X0NPTU1PTl9BUEkgTG9jYWxlIDogcHVibGljIFVPYmplY3QgeworcHVibGljOgorICAgIC8qKiBV
c2VmdWwgY29uc3RhbnQgZm9yIHRoZSBSb290IGxvY2FsZS4gQHN0YWJsZSBJQ1UgNC40ICovCisg
ICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFJvb3Qodm9pZCk7CisgICAgLyoq
IFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisg
ICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEVuZ2xpc2godm9pZCk7CisgICAg
LyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEZyZW5jaCh2b2lkKTsKKyAg
ICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAg
Ki8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0R2VybWFuKHZvaWQpOwor
ICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIu
MCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRJdGFsaWFuKHZvaWQp
OworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNV
IDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRKYXBhbmVzZSh2
b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxl
IElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0S29yZWFu
KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFi
bGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDaGlu
ZXNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBz
dGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRT
aW1wbGlmaWVkQ2hpbmVzZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlz
IGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZV
X0VYUE9SVDIgZ2V0VHJhZGl0aW9uYWxDaGluZXNlKHZvaWQpOworCisgICAgLyoqIFVzZWZ1bCBj
b25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAg
c3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEZyYW5jZSh2b2lkKTsKKyAgICAvKiog
VXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAg
Ki8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0R2VybWFueSh2b2lkKTsK
KyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxl
IElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SXRhbHko
dm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4g
QHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdl
dEphcGFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9y
ZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQ
T1JUMiBnZXRLb3JlYSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNv
dW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxl
ICZVX0VYUE9SVDIgZ2V0Q2hpbmEodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3Ig
dGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0
IExvY2FsZSAmVV9FWFBPUlQyIGdldFBSQyh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50
IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMg
Y29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VGFpd2FuKHZvaWQpOworICAgIC8qKiBVc2VmdWwg
Y29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAg
IHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRVSyh2b2lkKTsKKyAgICAvKiogVXNl
ZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8K
KyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VVModm9pZCk7CisgICAgLyoq
IFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4w
ICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENhbmFkYSh2b2lkKTsK
KyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxl
IElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2FuYWRh
RnJlbmNoKHZvaWQpOworCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBkZWZhdWx0IGxv
Y2FsZSBvYmplY3QsIGEgTG9jYWxlIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgSUQuCisgICAgICoK
KyAgICAgKiBAc2VlIGdldERlZmF1bHQKKyAgICAgKiBAc2VlIHVsb2NfZ2V0RGVmYXVsdAorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZSgpOworCisgICAgLyoqCisg
ICAgICogQ29uc3RydWN0IGEgbG9jYWxlIGZyb20gbGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQu
CisgICAgICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVuIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qg
d2lsbCBiZSAiYm9ndXMiCisgICAgICogKGlzQm9ndXMoKSB3aWxsIHJldHVybiBUUlVFKS4KKyAg
ICAgKgorICAgICAqIEBwYXJhbSBsYW5ndWFnZSBMb3dlcmNhc2UgdHdvLWxldHRlciBvciB0aHJl
ZS1sZXR0ZXIgSVNPLTYzOSBjb2RlLgorICAgICAqICBUaGlzIHBhcmFtZXRlciBjYW4gaW5zdGVh
ZCBiZSBhbiBJQ1Ugc3R5bGUgQyBsb2NhbGUgKGUuZy4gImVuX1VTIiksCisgICAgICogIGJ1dCB0
aGUgb3RoZXIgcGFyYW1ldGVycyBtdXN0IG5vdCBiZSB1c2VkLgorICAgICAqICBUaGlzIHBhcmFt
ZXRlciBjYW4gYmUgTlVMTDsgaWYgc28sCisgICAgICogIHRoZSBsb2NhbGUgaXMgaW5pdGlhbGl6
ZWQgdG8gbWF0Y2ggdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogIChUaGlzIGlz
IHRoZSBzYW1lIGFzIHVzaW5nIHRoZSBkZWZhdWx0IGNvbnN0cnVjdG9yLikKKyAgICAgKiAgUGxl
YXNlIG5vdGU6IFRoZSBKYXZhIExvY2FsZSBjbGFzcyBkb2VzIE5PVCBhY2NlcHQgdGhlIGZvcm0K
KyAgICAgKiAgJ25ldyBMb2NhbGUoImVuX1VTIiknIGJ1dCBvbmx5ICduZXcgTG9jYWxlKCJlbiIs
IlVTIiknCisgICAgICoKKyAgICAgKiBAcGFyYW0gY291bnRyeSAgVXBwZXJjYXNlIHR3by1sZXR0
ZXIgSVNPLTMxNjYgY29kZS4gKG9wdGlvbmFsKQorICAgICAqIEBwYXJhbSB2YXJpYW50ICBVcHBl
cmNhc2UgdmVuZG9yIGFuZCBicm93c2VyIHNwZWNpZmljIGNvZGUuIFNlZSBjbGFzcworICAgICAq
ICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbi4gKG9wdGlvbmFsKQorICAgICAqIEBwYXJhbSBr
ZXl3b3Jkc0FuZFZhbHVlcyBBIHN0cmluZyBjb25zaXN0aW5nIG9mIGtleXdvcmQvdmFsdWVzIHBh
aXJzLCBzdWNoIGFzCisgICAgICogICAgICAgICAgICAgICAgICJjb2xsYXRpb249cGhvbmVib29r
O2N1cnJlbmN5PWV1cm8iCisgICAgICoKKyAgICAgKiBAc2VlIGdldERlZmF1bHQKKyAgICAgKiBA
c2VlIHVsb2NfZ2V0RGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IExvY2FsZSggY29uc3QgICBjaGFyICogbGFuZ3VhZ2UsCisgICAgICAgICAgICBjb25zdCAgIGNo
YXIgKiBjb3VudHJ5ICA9IDAsCisgICAgICAgICAgICBjb25zdCAgIGNoYXIgKiB2YXJpYW50ICA9
IDAsCisgICAgICAgICAgICBjb25zdCAgIGNoYXIgKiBrZXl3b3Jkc0FuZFZhbHVlcyA9IDApOwor
CisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgYSBMb2NhbGUgb2JqZWN0IGZyb20gYW5vdGhl
ciBMb2NhbGUgb2JqZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBMb2NhbGUg
b2JqZWN0IGJlaW5nIGNvcGllZCBpbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBMb2NhbGUoY29uc3QgICAgTG9jYWxlJiBvdGhlcik7CisKKworICAgIC8qKgorICAgICAq
IERlc3RydWN0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IH5Mb2NhbGUoKSA7CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlcyB0aGUgZW50aXJlIGNvbnRl
bnRzIG9mICp0aGlzIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgKgorICAgICAqIEBw
YXJhbSBvdGhlciBUaGUgTG9jYWxlIG9iamVjdCBiZWluZyBjb3BpZWQgaW4uCisgICAgICogQHJl
dHVybiAgICAgICp0aGlzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9j
YWxlJiBvcGVyYXRvcj0oY29uc3QgTG9jYWxlJiBvdGhlcik7CisKKyAgICAvKioKKyAgICAgKiBD
aGVja3MgaWYgdHdvIGxvY2FsZSBrZXlzIGFyZSB0aGUgc2FtZS4KKyAgICAgKgorICAgICAqIEBw
YXJhbSBvdGhlciBUaGUgbG9jYWxlIGtleSBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlz
LgorICAgICAqIEByZXR1cm4gICAgICBUcnVlIGlmIHRoZSB0d28gbG9jYWxlIGtleXMgYXJlIHRo
ZSBzYW1lLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgVUJvb2wgICBvcGVyYXRvcj09KGNvbnN0ICAgIExvY2FsZSYgICAgIG90aGVyKSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0d28gbG9jYWxlIGtleXMgYXJlIG5vdCB0
aGUgc2FtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgbG9jYWxlIGtleSBvYmpl
Y3QgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1cm4gICAgICBUcnVlIGlm
IHRoZSB0d28gbG9jYWxlIGtleXMgYXJlIG5vdCB0aGUgc2FtZSwgZmFsc2UKKyAgICAgKiAgICAg
ICAgICAgICAgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IFVCb29sICAgb3BlcmF0b3IhPShjb25zdCAgICBMb2NhbGUmICAgICBvdGhlcikgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBDbG9uZSB0aGlzIG9iamVjdC4KKyAgICAgKiBDbG9uZXMgY2FuIGJl
IHVzZWQgY29uY3VycmVudGx5IGluIG11bHRpcGxlIHRocmVhZHMuCisgICAgICogSWYgYW4gZXJy
b3Igb2NjdXJzLCB0aGVuIE5VTEwgaXMgcmV0dXJuZWQuCisgICAgICogVGhlIGNhbGxlciBtdXN0
IGRlbGV0ZSB0aGUgY2xvbmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgY2xvbmUgb2YgdGhp
cyBvYmplY3QKKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RHluYW1pY0NsYXNzSUQKKyAgICAgKiBA
c3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBMb2NhbGUgKmNsb25lKCkgY29uc3Q7CisKKyNp
Zm5kZWYgVV9ISURFX1NZU1RFTV9BUEkKKyAgICAvKioKKyAgICAgKiBDb21tb24gbWV0aG9kcyBv
ZiBnZXR0aW5nIHRoZSBjdXJyZW50IGRlZmF1bHQgTG9jYWxlLiBVc2VkIGZvciB0aGUKKyAgICAg
KiBwcmVzZW50YXRpb246IG1lbnVzLCBkaWFsb2dzLCBldGMuIEdlbmVyYWxseSBzZXQgb25jZSB3
aGVuIHlvdXIgYXBwbGV0IG9yCisgICAgICogYXBwbGljYXRpb24gaXMgaW5pdGlhbGl6ZWQsIHRo
ZW4gbmV2ZXIgcmVzZXQuIChJZiB5b3UgZG8gcmVzZXQgdGhlCisgICAgICogZGVmYXVsdCBsb2Nh
bGUsIHlvdSBwcm9iYWJseSB3YW50IHRvIHJlbG9hZCB5b3VyIEdVSSwgc28gdGhhdCB0aGUgY2hh
bmdlCisgICAgICogaXMgcmVmbGVjdGVkIGluIHlvdXIgaW50ZXJmYWNlLikKKyAgICAgKgorICAg
ICAqIE1vcmUgYWR2YW5jZWQgcHJvZ3JhbXMgd2lsbCBhbGxvdyB1c2VycyB0byB1c2UgZGlmZmVy
ZW50IGxvY2FsZXMgZm9yCisgICAgICogZGlmZmVyZW50IGZpZWxkcywgZS5nLiBpbiBhIHNwcmVh
ZHNoZWV0LgorICAgICAqCisgICAgICogTm90ZSB0aGF0IHRoZSBpbml0aWFsIHNldHRpbmcgd2ls
bCBtYXRjaCB0aGUgaG9zdCBzeXN0ZW0uCisgICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0
aGUgTG9jYWxlIG9iamVjdCBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIElECisgICAgICogQHN5c3Rl
bQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBMb2Nh
bGUmIFVfRVhQT1JUMiBnZXREZWZhdWx0KHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0
aGUgZGVmYXVsdC4gTm9ybWFsbHkgc2V0IG9uY2UgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHByb2Nl
c3MsCisgICAgICogdGhlbiBuZXZlciByZXNldC4KKyAgICAgKiBzZXREZWZhdWx0KCkgb25seSBj
aGFuZ2VzIElDVSdzIGRlZmF1bHQgbG9jYWxlIElELCA8c3Ryb25nPm5vdDwvc3Ryb25nPgorICAg
ICAqIHRoZSBkZWZhdWx0IGxvY2FsZSBJRCBvZiB0aGUgcnVudGltZSBlbnZpcm9ubWVudC4KKyAg
ICAgKgorICAgICAqIEBwYXJhbSBuZXdMb2NhbGUgTG9jYWxlIHRvIHNldCB0by4gIElmIE5VTEws
IHNldCB0byB0aGUgdmFsdWUgb2J0YWluZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgIGZyb20g
dGhlIHJ1bnRpbWUgZW52aXJvbmVtZW50LgorICAgICAqIEBwYXJhbSBzdWNjZXNzIFRoZSBlcnJv
ciBjb2RlLgorICAgICAqIEBzeXN0ZW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBzdGF0aWMgdm9pZCBVX0VYUE9SVDIgc2V0RGVmYXVsdChjb25zdCBMb2NhbGUmIG5ld0xv
Y2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlJiAg
IHN1Y2Nlc3MpOworI2VuZGlmICAvKiBVX0hJREVfU1lTVEVNX0FQSSAqLworCisgICAgLyoqCisg
ICAgICogQ3JlYXRlcyBhIGxvY2FsZSB3aGljaCBoYXMgaGFkIG1pbmltYWwgY2Fub25pY2FsaXph
dGlvbgorICAgICAqIGFzIHBlciB1bG9jX2dldE5hbWUoKS4KKyAgICAgKiBAcGFyYW0gbmFtZSBU
aGUgbmFtZSB0byBjcmVhdGUgZnJvbS4gIElmIG5hbWUgaXMgbnVsbCwKKyAgICAgKiAgdGhlIGRl
ZmF1bHQgTG9jYWxlIGlzIHVzZWQuCisgICAgICogQHJldHVybiBuZXcgbG9jYWxlIG9iamVjdAor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqIEBzZWUgdWxvY19nZXROYW1lCisgICAgICov
CisgICAgc3RhdGljIExvY2FsZSBVX0VYUE9SVDIgY3JlYXRlRnJvbU5hbWUoY29uc3QgY2hhciAq
bmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbG9jYWxlIGZyb20gdGhlIGdpdmVu
IHN0cmluZyBhZnRlciBjYW5vbmljYWxpemluZworICAgICAqIHRoZSBzdHJpbmcgYnkgY2FsbGlu
ZyB1bG9jX2Nhbm9uaWNhbGl6ZSgpLgorICAgICAqIEBwYXJhbSBuYW1lIHRoZSBsb2NhbGUgSUQg
dG8gY3JlYXRlIGZyb20uICBNdXN0IG5vdCBiZSBOVUxMLgorICAgICAqIEByZXR1cm4gYSBuZXcg
bG9jYWxlIG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBuYW1lCisgICAgICogQHN0
YWJsZSBJQ1UgMy4wCisgICAgICogQHNlZSB1bG9jX2Nhbm9uaWNhbGl6ZQorICAgICAqLworICAg
IHN0YXRpYyBMb2NhbGUgVV9FWFBPUlQyIGNyZWF0ZUNhbm9uaWNhbChjb25zdCBjaGFyKiBuYW1l
KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIElTTy02MzkgbGFuZ3Vh
Z2UgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRM
YW5ndWFnZSggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdz
IElTTy0xNTkyNCBhYmJyZXZpYXRpb24gc2NyaXB0IGNvZGUuCisgICAgICogQHJldHVybiAgICAg
IEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHNlZSB1c2NyaXB0X2dldFNob3J0TmFtZQor
ICAgICAqIEBzZWUgdXNjcmlwdF9nZXRDb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAg
ICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0U2NyaXB0KCApIGNvbnN0OworCisgICAg
LyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTMxNjYgY291bnRyeSBjb2RlLgor
ICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldENvdW50cnkoICkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyB2YXJpYW50IGNv
ZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0VmFyaWFu
dCggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHByb2dyYW1tYXRpYyBu
YW1lIG9mIHRoZSBlbnRpcmUgbG9jYWxlLCB3aXRoIHRoZSBsYW5ndWFnZSwKKyAgICAgKiBjb3Vu
dHJ5IGFuZCB2YXJpYW50IHNlcGFyYXRlZCBieSB1bmRlcmJhcnMuIElmIGEgZmllbGQgaXMgbWlz
c2luZywgdXAKKyAgICAgKiB0byB0d28gbGVhZGluZyB1bmRlcmJhcnMgd2lsbCBvY2N1ci4gRXhh
bXBsZTogImVuIiwgImRlX0RFIiwgImVuX1VTX1dJTiIsCisgICAgICogImRlX19QT1NJWCIsICJm
cl9fTUFDIiwgIl9fTUFDIiwgIl9NVCIsICJfRlJfRVVSTyIKKyAgICAgKiBAcmV0dXJuICAgICAg
QSBwb2ludGVyIHRvICJuYW1lIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICBpbmxpbmUgY29uc3QgY2hhciAqIGdldE5hbWUoKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIHByb2dyYW1tYXRpYyBuYW1lIG9mIHRoZSBlbnRpcmUgbG9jYWxlIGFzIGdl
dE5hbWUoKSB3b3VsZCByZXR1cm4sCisgICAgICogYnV0IHdpdGhvdXQga2V5d29yZHMuCisgICAg
ICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0byAibmFtZSIuCisgICAgICogQHNlZSBnZXROYW1l
CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgY29uc3QgY2hhciAqIGdldEJh
c2VOYW1lKCkgY29uc3Q7CisKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxpc3Qgb2Yga2V5
d29yZHMgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0
YXR1cyB0aGUgc3RhdHVzIGNvZGUKKyAgICAgKiBAcmV0dXJuIHBvaW50ZXIgdG8gU3RyaW5nRW51
bWVyYXRpb24gY2xhc3MsIG9yIE5VTEwgaWYgdGhlcmUgYXJlIG5vIGtleXdvcmRzLiAKKyAgICAg
KiBDbGllbnQgbXVzdCBkaXNwb3NlIG9mIGl0IGJ5IGNhbGxpbmcgZGVsZXRlLgorICAgICAqIEBz
dGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFN0cmluZ0VudW1lcmF0aW9uICogY3JlYXRlS2V5
d29yZHMoVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEdldHMg
dGhlIHZhbHVlIGZvciBhIGtleXdvcmQuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5d29yZE5h
bWUgbmFtZSBvZiB0aGUga2V5d29yZCBmb3Igd2hpY2ggd2Ugd2FudCB0aGUgdmFsdWUuIENhc2Ug
aW5zZW5zaXRpdmUuCisgICAgICogQHBhcmFtIGJ1ZmZlciBUaGUgYnVmZmVyIHRvIHJlY2VpdmUg
dGhlIGtleXdvcmQgdmFsdWUuCisgICAgICogQHBhcmFtIGJ1ZmZlckNhcGFjaXR5IFRoZSBjYXBh
Y2l0eSBvZiByZWNlaXZpbmcgYnVmZmVyCisgICAgICogQHBhcmFtIHN0YXR1cyBSZXR1cm5zIGFu
eSBlcnJvciBpbmZvcm1hdGlvbiB3aGlsZSBwZXJmb3JtaW5nIHRoaXMgb3BlcmF0aW9uLgorICAg
ICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUga2V5d29yZCB2YWx1ZQorICAgICAqCisgICAg
ICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgaW50MzJfdCBnZXRLZXl3b3JkVmFsdWUo
Y29uc3QgY2hhcioga2V5d29yZE5hbWUsIGNoYXIgKmJ1ZmZlciwgaW50MzJfdCBidWZmZXJDYXBh
Y2l0eSwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFNldHMg
b3IgcmVtb3ZlcyB0aGUgdmFsdWUgZm9yIGEga2V5d29yZC4KKyAgICAgKgorICAgICAqIEZvciBy
ZW1vdmluZyBhbGwga2V5d29yZHMsIHVzZSBnZXRCYXNlTmFtZSgpLAorICAgICAqIGFuZCBjb25z
dHJ1Y3QgYSBuZXcgTG9jYWxlIGlmIGl0IGRpZmZlcnMgZnJvbSBnZXROYW1lKCkuCisgICAgICoK
KyAgICAgKiBAcGFyYW0ga2V5d29yZE5hbWUgbmFtZSBvZiB0aGUga2V5d29yZCB0byBiZSBzZXQu
IENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHBhcmFtIGtleXdvcmRWYWx1ZSB2YWx1ZSBvZiB0
aGUga2V5d29yZCB0byBiZSBzZXQuIElmIDAtbGVuZ3RoIG9yCisgICAgICogIE5VTEwsIHdpbGwg
cmVzdWx0IGluIHRoZSBrZXl3b3JkIGJlaW5nIHJlbW92ZWQuIE5vIGVycm9yIGlzIGdpdmVuIGlm
CisgICAgICogIHRoYXQga2V5d29yZCBkb2VzIG5vdCBleGlzdC4KKyAgICAgKiBAcGFyYW0gc3Rh
dHVzIFJldHVybnMgYW55IGVycm9yIGluZm9ybWF0aW9uIHdoaWxlIHBlcmZvcm1pbmcgdGhpcyBv
cGVyYXRpb24uCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAgIHZv
aWQgc2V0S2V5d29yZFZhbHVlKGNvbnN0IGNoYXIqIGtleXdvcmROYW1lLCBjb25zdCBjaGFyKiBr
ZXl3b3JkVmFsdWUsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiByZXR1
cm5zIHRoZSBsb2NhbGUncyB0aHJlZS1sZXR0ZXIgbGFuZ3VhZ2UgY29kZSwgYXMgc3BlY2lmaWVk
CisgICAgICogaW4gSVNPIGRyYWZ0IHN0YW5kYXJkIElTTy02MzktMi4KKyAgICAgKiBAcmV0dXJu
ICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUsIG9yIGFuIGVtcHR5IHN0cmluZworICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRJU08zTGFuZ3VhZ2Uo
KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRoZSBsb2Nh
bGUncyB0aHJlZS1sZXR0ZXIgSVNPLTMxNjYgY291bnRyeSBjb2RlLgorICAgICAqIEByZXR1cm4g
ICAgICBBbiBhbGlhcyB0byB0aGUgY29kZSwgb3IgYW4gZW1wdHkgc3RyaW5nCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgY29uc3QgY2hhciAqIGdldElTTzNDb3VudHJ5KCkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBXaW5kb3dzIExDSUQgdmFsdWUg
Y29ycmVzcG9uZGluZyB0byB0aGlzIGxvY2FsZS4KKyAgICAgKiBUaGlzIHZhbHVlIGlzIHN0b3Jl
ZCBpbiB0aGUgcmVzb3VyY2UgZGF0YSBmb3IgdGhlIGxvY2FsZSBhcyBhIG9uZS10by1mb3VyLWRp
Z2l0CisgICAgICogaGV4YWRlY2ltYWwgbnVtYmVyLiAgSWYgdGhlIHJlc291cmNlIGlzIG1pc3Np
bmcsIGluIHRoZSB3cm9uZyBmb3JtYXQsIG9yCisgICAgICogdGhlcmUgaXMgbm8gV2luZG93cyBM
Q0lEIHZhbHVlIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhpcyBsb2NhbGUsIHJldHVybnMgMC4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgZ2V0TENJ
RCh2b2lkKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisgICAgLyoqCisgICAg
ICogUmV0dXJucyB3aGV0aGVyIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGlzIHdyaXR0ZW4gcmlnaHQt
dG8tbGVmdC4KKyAgICAgKiBJZiB0aGVyZSBpcyBubyBzY3JpcHQgc3VidGFnLCB0aGVuIHRoZSBs
aWtlbHkgc2NyaXB0IGlzIHVzZWQsIHNlZSB1bG9jX2FkZExpa2VseVN1YnRhZ3MoKS4KKyAgICAg
KiBJZiBubyBsaWtlbHkgc2NyaXB0IGlzIGtub3duLCB0aGVuIEZBTFNFIGlzIHJldHVybmVkLgor
ICAgICAqCisgICAgICogQSBzY3JpcHQgaXMgcmlnaHQtdG8tbGVmdCBhY2NvcmRpbmcgdG8gdGhl
IENMRFIgc2NyaXB0IG1ldGFkYXRhCisgICAgICogd2hpY2ggY29ycmVzcG9uZHMgdG8gd2hldGhl
ciB0aGUgc2NyaXB0J3MgbGV0dGVycyBoYXZlIEJpZGlfQ2xhc3M9UiBvciBBTC4KKyAgICAgKgor
ICAgICAqIFJldHVybnMgVFJVRSBmb3IgImFyIiBhbmQgImVuLUhlYnIiLCBGQUxTRSBmb3IgInpo
IiBhbmQgImZhLUN5cmwiLgorICAgICAqCisgICAgICogQHJldHVybiBUUlVFIGlmIHRoZSBsb2Nh
bGUncyBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0CisgICAgICogQGRyYWZ0IElDVSA1
NAorICAgICAqLworICAgIFVCb29sIGlzUmlnaHRUb0xlZnQoKSBjb25zdDsKKyNlbmRpZiAgLyog
VV9ISURFX0RSQUZUX0FQSSAqLworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BMYW5n
IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgaW4gYSBmb3JtYXQgc3Vp
dGFibGUgZm9yCisgICAgICogdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4gIEZv
ciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcworICAgICAqICJmciIg
YW5kIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhpcyBmdW5j
dGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwTGFuZyB0byAiRnJlbmNoIi4KKyAgICAgKiBAcGFy
YW0gZGlzcExhbmcgIFJlY2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAg
KiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwTGFuZyIuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlMYW5n
dWFnZShVbmljb2RlU3RyaW5nJiAgIGRpc3BMYW5nKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IEZpbGxzIGluICJkaXNwTGFuZyIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGxhbmd1
YWdlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvcgorICAgICAqIHVzZXIgZGlzcGxheSBpbiB0aGUg
bG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3IgZXhhbXBsZSwgaWYgdGhl
IGxvY2FsZSdzCisgICAgICogbGFuZ3VhZ2UgY29kZSBpcyAiZW4iIGFuZCBkaXNwbGF5TG9jYWxl
J3MgbGFuZ3VhZ2UgY29kZSBpcyAiZnIiLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAq
IGRpc3BMYW5nIHRvICJBbmdsYWlzIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgU3Bl
Y2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLiAgSW4gb3Ro
ZXIgd29yZHMsCisgICAgICogICAgICAgICAgICAgICAgICBpZiB0aGUgbG9jYWxlJ3MgbGFuZ3Vh
Z2UgY29kZSBpcyAiZW4iLCBwYXNzaW5nIExvY2FsZTo6Z2V0RnJlbmNoKCkgZm9yCisgICAgICog
ICAgICAgICAgICAgICAgICBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiQW5nbGFpcyIs
IHdoaWxlIHBhc3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKQorICAgICAqICAgICAgICAgICAgICAg
ICAgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICJFbmdsaXNjaCIuCisgICAgICog
QHBhcmFtIGRpc3BMYW5nICBSZWNlaXZlcyB0aGUgbGFuZ3VhZ2UncyBkaXNwbGF5IG5hbWUuCisg
ICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcExhbmciLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5
TGFuZ3VhZ2UoIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAg
ZGlzcExhbmcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BTY3JpcHQi
IHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBzY3JpcHQgaW4gYSBmb3JtYXQgc3VpdGFi
bGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4gIEZvciBl
eGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGNvZGUKKyAgICAgKiBpcyAiTEFUTiIgYW5k
IHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhpcyBmdW5jdGlv
biB3b3VsZCBzZXQKKyAgICAgKiBkaXNwU2NyaXB0IHRvICJMYXRpbiIuCisgICAgICogQHBhcmFt
IGRpc3BTY3JpcHQgICAgUmVjZWl2ZXMgdGhlIHNjcmlwdHMncyBkaXNwbGF5IG5hbWUuCisgICAg
ICogQHJldHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BTY3JpcHQiLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNw
bGF5U2NyaXB0KCAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwU2NyaXB0KSBjb25zdDsKKwor
ICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwU2NyaXB0IiB3aXRoIHRoZSBuYW1lIG9mIHRo
aXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2Vy
IGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgRm9y
IGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncworICAgICAqIHNjcmlwdCBjb2RlIGlzICJMQVROIiBh
bmQgZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhpcyBmdW5jdGlvbiB3
b3VsZCBzZXQKKyAgICAgKiBkaXNwU2NyaXB0IHRvICJMYXRpbiIuCisgICAgICogQHBhcmFtIGRp
c3BsYXlMb2NhbGUgICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3Bs
YXkgdGhlIG5hbWUuICBJbiBvdGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHdvcmRz
LCBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGNvZGUgaXMgIkxBVE4iLCBwYXNzaW5nCisgICAgICog
ICAgICAgICAgICAgICAgICAgICAgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IgZGlzcGxheUxvY2Fs
ZSB3b3VsZCByZXN1bHQgaW4gIiIsIHdoaWxlCisgICAgICogICAgICAgICAgICAgICAgICAgICAg
cGFzc2luZyBMb2NhbGU6OmdldEdlcm1hbigpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3Vs
dCBpbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICIiLgorICAgICAqIEBwYXJhbSBkaXNw
U2NyaXB0ICAgIFJlY2VpdmVzIHRoZSBzY3JpcHRzJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEBy
ZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwU2NyaXB0Ii4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheVNj
cmlwdCggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNw
U2NyaXB0KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwQ291bnRyeSIg
d2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGNvdW50cnkgaW4gYSBmb3JtYXQgc3VpdGFi
bGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4gIEZvciBl
eGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MgY291bnRyeSBjb2RlCisgICAgICogaXMgIkZSIiBhbmQg
dGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9u
IHdvdWxkIHNldAorICAgICAqIGRpc3BDb3VudHJ5IHRvICJGcmFuY2UiLgorICAgICAqIEBwYXJh
bSBkaXNwQ291bnRyeSAgIFJlY2VpdmVzIHRoZSBjb3VudHJ5J3MgZGlzcGxheSBuYW1lLgorICAg
ICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwQ291bnRyeSIuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERp
c3BsYXlDb3VudHJ5KCAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwQ291bnRyeSkgY29uc3Q7
CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcENvdW50cnkiIHdpdGggdGhlIG5hbWUg
b2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9y
IHVzZXIgZGlzcGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIu
ICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzCisgICAgICogY291bnRyeSBjb2RlIGlzICJV
UyIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJmciIsIHRoaXMgZnVuY3Rp
b24gd291bGQgc2V0CisgICAgICogZGlzcENvdW50cnkgdG8gIiZFYWN1dGU7dGF0cy1VbmlzIi4K
KyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgICAgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRv
IGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIEluIG90aGVyCisgICAgICogICAgICAgICAg
ICAgICAgICAgICAgd29yZHMsIGlmIHRoZSBsb2NhbGUncyBjb3VudHJ5IGNvZGUgaXMgIlVTIiwg
cGFzc2luZworICAgICAqICAgICAgICAgICAgICAgICAgICAgIExvY2FsZTo6Z2V0RnJlbmNoKCkg
Zm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICImRWFjdXRlO3RhdHMtVW5pcyIsIHdo
aWxlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgcGFzc2luZyBMb2NhbGU6OmdldEdlcm1h
bigpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbgorICAgICAqICAgICAgICAgICAg
ICAgICAgICAgICJWZXJlaW5pZ3RlIFN0YWF0ZW4iLgorICAgICAqIEBwYXJhbSBkaXNwQ291bnRy
eSAgIFJlY2VpdmVzIHRoZSBjb3VudHJ5J3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4g
ICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwQ291bnRyeSIuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlDb3VudHJ5
KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwQ291
bnRyeSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFZhciIgd2l0aCB0
aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgY29kZSBpbiBhIGZvcm1hdCBzdWl0YWJs
ZQorICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAq
IEBwYXJhbSBkaXNwVmFyICAgUmVjZWl2ZXMgdGhlIHZhcmlhbnQncyBuYW1lLgorICAgICAqIEBy
ZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BWYXIiLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5VmFyaWFudCgg
ICAgICBVbmljb2RlU3RyaW5nJiBkaXNwVmFyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZp
bGxzIGluICJkaXNwVmFyIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgdmFyaWFudCBj
b2RlIGluIGEgZm9ybWF0CisgICAgICogc3VpdGFibGUgZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUg
bG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuCisgICAgICogQHBhcmFtIGRpc3Bs
YXlMb2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUg
bmFtZS4KKyAgICAgKiBAcGFyYW0gZGlzcFZhciAgIFJlY2VpdmVzIHRoZSB2YXJpYW50J3MgZGlz
cGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BW
YXIiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcm
ICBnZXREaXNwbGF5VmFyaWFudCggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2Nh
bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmlj
b2RlU3RyaW5nJiAgZGlzcFZhcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAi
bmFtZSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBm
b3IgdXNlciBkaXNwbGF5CisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgVGhpcyBmdW5j
dGlvbiB1c2VzIGdldERpc3BsYXlMYW5ndWFnZSgpLCBnZXREaXNwbGF5Q291bnRyeSgpLAorICAg
ICAqIGFuZCBnZXREaXNwbGF5VmFyaWFudCgpIHRvIGRvIGl0cyB3b3JrLCBhbmQgb3V0cHV0cyB0
aGUgZGlzcGxheSBuYW1lIGluIHRoZSBmb3JtYXQKKyAgICAgKiAibGFuZ3VhZ2UgKGNvdW50cnlb
LHZhcmlhbnRdKSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGRlZmF1bHQgbG9jYWxlIGlzIGVuX1VT
LCB0aGVuCisgICAgICogZnJfRlIncyBkaXNwbGF5IG5hbWUgd291bGQgYmUgIkZyZW5jaCAoRnJh
bmNlKSIsIGFuZCBlc19NWF9UcmFkaXRpb25hbCdzIGRpc3BsYXkgbmFtZQorICAgICAqIHdvdWxk
IGJlICJTcGFuaXNoIChNZXhpY28sVHJhZGl0aW9uYWwpIi4KKyAgICAgKiBAcGFyYW0gbmFtZSAg
UmVjZWl2ZXMgdGhlIGxvY2FsZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAg
QSByZWZlcmVuY2UgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TmFtZSggICAgICAgICBVbmljb2RlU3RyaW5n
JiAgbmFtZSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAibmFtZSIgd2l0aCB0
aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgdXNlciBkaXNw
bGF5CisgICAgICogaW4gdGhlIGxvY2FsZSBzcGVjZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBU
aGlzIGZ1bmN0aW9uIHVzZXMgZ2V0RGlzcGxheUxhbmd1YWdlKCksCisgICAgICogZ2V0RGlzcGxh
eUNvdW50cnkoKSwgYW5kIGdldERpc3BsYXlWYXJpYW50KCkgdG8gZG8gaXRzIHdvcmssIGFuZCBv
dXRwdXRzIHRoZSBkaXNwbGF5CisgICAgICogbmFtZSBpbiB0aGUgZm9ybWF0ICJsYW5ndWFnZSAo
Y291bnRyeVssdmFyaWFudF0pIi4gIEZvciBleGFtcGxlLCBpZiBkaXNwbGF5TG9jYWxlIGlzCisg
ICAgICogZnJfRlIsIHRoZW4gZW5fVVMncyBkaXNwbGF5IG5hbWUgd291bGQgYmUgIkFuZ2xhaXMg
KCZFYWN1dGU7dGF0cy1VbmlzKSIsIGFuZCBub19OT19OWSdzCisgICAgICogZGlzcGxheSBuYW1l
IHdvdWxkIGJlICJub3J2JmVhY3V0ZTtnaWVuIChOb3J2JmVncmF2ZTtnZSxOWSkiLgorICAgICAq
IEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRv
IGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHBhcmFtIG5hbWUgICAgICBSZWNlaXZlcyB0aGUg
bG9jYWxlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVu
Y2UgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNv
ZGVTdHJpbmcmICBnZXREaXNwbGF5TmFtZSggY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxh
eUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5p
Y29kZVN0cmluZyYgIG5hbWUpIGNvbnN0OworCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIGEg
aGFzaCBjb2RlIGZvciB0aGUgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIGludDMyX3QgICAgICAgICBoYXNoQ29kZSh2b2lkKSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIFNldHMgdGhlIGxvY2FsZSB0byBib2d1cworICAgICAqIEEgYm9ndXMgbG9jYWxlIHJl
cHJlc2VudHMgYSBub24tZXhpc3RpbmcgbG9jYWxlIGFzc29jaWF0ZWQKKyAgICAgKiB3aXRoIHNl
cnZpY2VzIHRoYXQgY2FuIGJlIGluc3RhbnRpYXRlZCBmcm9tIG5vbi1sb2NhbGUgZGF0YQorICAg
ICAqIGluIGFkZGl0aW9uIHRvIGxvY2FsZSAoZm9yIGV4YW1wbGUsIGNvbGxhdGlvbiBjYW4gYmUK
KyAgICAgKiBpbnN0YW50aWF0ZWQgZnJvbSBhIGxvY2FsZSBhbmQgZnJvbSBhIHJ1bGUgc2V0KS4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICB2b2lkIHNldFRvQm9ndXMoKTsK
KworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGJvZ3VzIHN0YXRlLiBMb2NhbGUgb2JqZWN0IGNh
biBiZSBib2d1cyBpZiBpdCBkb2Vzbid0IGV4aXN0CisgICAgICogQHJldHVybiBGQUxTRSBpZiBp
dCBpcyBhIHJlYWwgbG9jYWxlLCBUUlVFIGlmIGl0IGlzIGEgYm9ndXMgbG9jYWxlCisgICAgICog
QHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgVUJvb2wgaXNCb2d1cyh2b2lkKSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBpbnN0YWxsZWQgbG9jYWxl
cy4KKyAgICAgKiBAcGFyYW0gY291bnQgUmVjZWl2ZXMgdGhlIG51bWJlciBvZiBsb2NhbGVzIGlu
IHRoZSBsaXN0LgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2Yg
TG9jYWxlIG9iamVjdHMuICBUaGlzIGFycmF5IGlzIHRoZSBsaXN0CisgICAgICogICAgICAgICAg
ICAgIG9mIGFsbCBsb2NhbGVzIHdpdGggaW5zdGFsbGVkIHJlc291cmNlIGZpbGVzLiAgVGhlIGNh
bGxlZCBkb2VzIE5PVAorICAgICAqICAgICAgICAgICAgICBnZXQgb3duZXJzaGlwIG9mIHRoaXMg
bGlzdCwgYW5kIG11c3QgTk9UIGRlbGV0ZSBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxlTG9j
YWxlcyhpbnQzMl90JiBjb3VudCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgbGlzdCBvZiBh
bGwgYXZhaWxhYmxlIDItbGV0dGVyIGNvdW50cnkgY29kZXMgZGVmaW5lZCBpbiBJU08gMzE2Ni4g
IFRoaXMgaXMgYQorICAgICAqIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgcG9pbnRlcnMgdG8gYXJy
YXlzIG9mIGNoYXIuICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlCisgICAgICogb3duZWQgYnkg
SUNVLS0gZG8gbm90IGRlbGV0ZSB0aGVtLCBhbmQgZG8gbm90IHdyaXRlIHRocm91Z2ggdGhlbS4g
IFRoZSBhcnJheSBpcworICAgICAqIHRlcm1pbmF0ZWQgd2l0aCBhIG51bGwgcG9pbnRlci4KKyAg
ICAgKiBAcmV0dXJuIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGNvdW50cnkgY29kZXMKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qq
IFVfRVhQT1JUMiBnZXRJU09Db3VudHJpZXMoKTsKKworICAgIC8qKgorICAgICAqIEdldHMgYSBs
aXN0IG9mIGFsbCBhdmFpbGFibGUgbGFuZ3VhZ2UgY29kZXMgZGVmaW5lZCBpbiBJU08gNjM5LiAg
VGhpcyBpcyBhIHBvaW50ZXIKKyAgICAgKiB0byBhbiBhcnJheSBvZiBwb2ludGVycyB0byBhcnJh
eXMgb2YgY2hhci4gIEFsbCBvZiB0aGVzZSBwb2ludGVycyBhcmUgb3duZWQKKyAgICAgKiBieSBJ
Q1UtLSBkbyBub3QgZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0aGVtLiAg
VGhlIGFycmF5IGlzCisgICAgICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBwb2ludGVyLgorICAg
ICAqIEByZXR1cm4gYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgbGFuZ3VhZ2UgY29kZXMKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qq
IFVfRVhQT1JUMiBnZXRJU09MYW5ndWFnZXMoKTsKKworICAgIC8qKgorICAgICAqIElDVSAicG9v
ciBtYW4ncyBSVFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGlzIGNsYXNzLgorICAgICAq
CisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgc3RhdGljIFVDbGFzc0lEIFVf
RVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKCk7CisKKyAgICAvKioKKyAgICAgKiBJQ1UgInBvb3Ig
bWFuJ3MgUlRUSSIsIHJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhlIGFjdHVhbCBjbGFzcy4KKyAg
ICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHZpcnR1YWwgVUNsYXNz
SUQgZ2V0RHluYW1pY0NsYXNzSUQoKSBjb25zdDsKKworcHJvdGVjdGVkOiAvKiBvbmx5IHByb3Rl
Y3RlZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gRE8gTk9UIFVTRS4gKi8KKyNpZm5kZWYgVV9ISURF
X0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAqIFNldCB0aGlzIGZyb20gYSBzaW5nbGUgUE9T
SVggc3R5bGUgbG9jYWxlIHN0cmluZy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB2
b2lkIHNldEZyb21QT1NJWElEKGNvbnN0IGNoYXIgKnBvc2l4SUQpOworI2VuZGlmICAvKiBVX0hJ
REVfSU5URVJOQUxfQVBJICovCisKK3ByaXZhdGU6CisgICAgLyoqCisgICAgICogSW5pdGlhbGl6
ZSB0aGUgbG9jYWxlIG9iamVjdCB3aXRoIGEgbmV3IG5hbWUuCisgICAgICogV2FzIGRlcHJlY2F0
ZWQgLSB1c2VkIGluIGltcGxlbWVudGF0aW9uIC0gbW92ZWQgaW50ZXJuYWwKKyAgICAgKgorICAg
ICAqIEBwYXJhbSBjTG9jYWxlSUQgVGhlIG5ldyBsb2NhbGUgbmFtZS4KKyAgICAgKiBAcGFyYW0g
Y2Fub25pY2FsaXplIHdoZXRoZXIgdG8gY2FsbCB1bG9jX2Nhbm9uaWNhbGl6ZSBvbiBjTG9jYWxl
SUQKKyAgICAgKi8KKyAgICBMb2NhbGUmIGluaXQoY29uc3QgY2hhciogY0xvY2FsZUlELCBVQm9v
bCBjYW5vbmljYWxpemUpOworCisgICAgLyoKKyAgICAgKiBJbnRlcm5hbCBjb25zdHJ1Y3RvciB0
byBhbGxvdyBjb25zdHJ1Y3Rpb24gb2YgYSBsb2NhbGUgb2JqZWN0IHdpdGgKKyAgICAgKiAgIE5P
IHNpZGUgZWZmZWN0cy4gICAoRGVmYXVsdCBjb25zdHJ1Y3RvciB0cmllcyB0byBnZXQKKyAgICAg
KiAgIHRoZSBkZWZhdWx0IGxvY2FsZS4pCisgICAgICovCisgICAgZW51bSBFTG9jYWxlVHlwZSB7
CisgICAgICAgIGVCT0dVUworICAgIH07CisgICAgTG9jYWxlKEVMb2NhbGVUeXBlKTsKKworICAg
IC8qKgorICAgICAqIEluaXRpYWxpemUgdGhlIGxvY2FsZSBjYWNoZSBmb3IgY29tbW9ubHkgdXNl
ZCBsb2NhbGVzCisgICAgICovCisgICAgc3RhdGljIExvY2FsZSAqZ2V0TG9jYWxlQ2FjaGUodm9p
ZCk7CisKKyAgICBjaGFyIGxhbmd1YWdlW1VMT0NfTEFOR19DQVBBQ0lUWV07CisgICAgY2hhciBz
Y3JpcHRbVUxPQ19TQ1JJUFRfQ0FQQUNJVFldOworICAgIGNoYXIgY291bnRyeVtVTE9DX0NPVU5U
UllfQ0FQQUNJVFldOworICAgIGludDMyX3QgdmFyaWFudEJlZ2luOworICAgIGNoYXIqIGZ1bGxO
YW1lOworICAgIGNoYXIgZnVsbE5hbWVCdWZmZXJbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07Cisg
ICAgLy8gbmFtZSB3aXRob3V0IGtleXdvcmRzCisgICAgY2hhciogYmFzZU5hbWU7CisgICAgdm9p
ZCBpbml0QmFzZU5hbWUoVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIFVCb29sIGZJc0JvZ3Vz
OworCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmZ2V0TG9jYWxlKGludCBsb2NpZCk7CisKKyAg
ICAvKioKKyAgICAgKiBBIGZyaWVuZCB0byBhbGxvdyB0aGUgZGVmYXVsdCBsb2NhbGUgdG8gYmUg
c2V0IGJ5IGVpdGhlciB0aGUgQyBvciBDKysgQVBJLgorICAgICAqIEBpbnRlcm5hbAorICAgICAq
LworICAgIGZyaWVuZCBMb2NhbGUgKmxvY2FsZV9zZXRfZGVmYXVsdF9pbnRlcm5hbChjb25zdCBj
aGFyICosIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwK
KyAgICAgKi8KKyAgICBmcmllbmQgdm9pZCBVX0NBTExDT05WIGxvY2FsZV9hdmFpbGFibGVfaW5p
dCgpOworfTsKKworaW5saW5lIFVCb29sCitMb2NhbGU6Om9wZXJhdG9yIT0oY29uc3QgICAgTG9j
YWxlJiAgICAgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuICFvcGVyYXRvcj09KG90aGVyKTsK
K30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRDb3VudHJ5KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gY291bnRyeTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpn
ZXRMYW5ndWFnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGxhbmd1YWdlOworfQorCitpbmxpbmUg
Y29uc3QgY2hhciAqCitMb2NhbGU6OmdldFNjcmlwdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNj
cmlwdDsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRWYXJpYW50KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gJmJhc2VOYW1lW3ZhcmlhbnRCZWdpbl07Cit9CisKK2lubGluZSBj
b25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZ1bGxO
YW1lOworfQorCitpbmxpbmUgVUJvb2wKK0xvY2FsZTo6aXNCb2d1cyh2b2lkKSBjb25zdCB7Cisg
ICAgcmV0dXJuIGZJc0JvZ3VzOworfQorCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JiYmkuaCBiL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvcmJiaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NzU5OGE1MGU2ZmEzYmFiMmFkNDllMDIyYWFmMzk2
Y2FjMzI5ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JiYmku
aApAQCAtMCwwICsxLDc4MiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdo
dCAoQykgMTk5OS0yMDE0IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRp
b24gICAqCisqICAgYW5kIG90aGVycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAxMC8y
Mi85OSAgICBhbGFuICAgICAgICBDcmVhdGlvbi4KKyogICAxMS8xMS85OSAgICByZ2lsbGFtICAg
ICBDb21wbGV0ZSBwb3J0IGZyb20gSmF2YS4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYg
UkJCSV9ICisjZGVmaW5lIFJCQklfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKwor
LyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IFJ1bGUgQmFzZWQgQnJlYWsgSXRlcmF0
b3IKKyAqLworCisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKKyNpbmNsdWRlICJ1
bmljb2RlL2Jya2l0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisjaW5jbHVkZSAi
dW5pY29kZS9wYXJzZWVyci5oIgorI2luY2x1ZGUgInVuaWNvZGUvc2Nocml0ZXIuaCIKKyNpbmNs
dWRlICJ1bmljb2RlL3VjaHJpdGVyLmgiCisKKworc3RydWN0IFVUcmllOworCitVX05BTUVTUEFD
RV9CRUdJTgorCisvKiogQGludGVybmFsICovCitzdHJ1Y3QgUkJCSURhdGFIZWFkZXI7CitjbGFz
cyAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvclRhYmxlczsKK2NsYXNzICBCcmVha0l0ZXJhdG9yOwor
Y2xhc3MgIFJCQklEYXRhV3JhcHBlcjsKK2NsYXNzICBVU3RhY2s7CitjbGFzcyAgTGFuZ3VhZ2VC
cmVha0VuZ2luZTsKK2NsYXNzICBVbmhhbmRsZWRFbmdpbmU7CitzdHJ1Y3QgUkJCSVN0YXRlVGFi
bGU7CisKKworCisKKy8qKgorICoKKyAqIEEgc3ViY2xhc3Mgb2YgQnJlYWtJdGVyYXRvciB3aG9z
ZSBiZWhhdmlvciBpcyBzcGVjaWZpZWQgdXNpbmcgYSBsaXN0IG9mIHJ1bGVzLgorICogPHA+SW5z
dGFuY2VzIG9mIHRoaXMgY2xhc3MgYXJlIG1vc3QgY29tbW9ubHkgY3JlYXRlZCBieSB0aGUgZmFj
dG9yeSBtZXRob2RzIG9mCisgKiAgQnJlYWtJdGVyYXRvcjo6Y3JlYXRlV29yZEluc3RhbmNlKCks
IEJyZWFrSXRlcmF0b3I6OmNyZWF0ZUxpbmVJbnN0YW5jZSgpLCBldGMuLAorICogIGFuZCB0aGVu
IHVzZWQgdmlhIHRoZSBhYnN0cmFjdCBBUEkgaW4gY2xhc3MgQnJlYWtJdGVyYXRvcjwvcD4KKyAq
CisgKiA8cD5TZWUgdGhlIElDVSBVc2VyIEd1aWRlIGZvciBpbmZvcm1hdGlvbiBvbiBCcmVhayBJ
dGVyYXRvciBSdWxlcy48L3A+CisgKgorICogPHA+VGhpcyBjbGFzcyBpcyBub3QgaW50ZW5kZWQg
dG8gYmUgc3ViY2xhc3NlZC4gIChDbGFzcyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yCisg
KiAgICBpcyBhIHN1YmNsYXNzLCBidXQgdGhhdCByZWxhdGlvbnNoaXAgaXMgZWZmZWN0aXZlbHkg
aW50ZXJuYWwgdG8gdGhlIElDVQorICogICAgaW1wbGVtZW50YXRpb24uICBUaGUgc3ViY2xhc3Np
bmcgaW50ZXJmYWNlIHRvIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yIGlzCisgKiAgICBub3QgcGFy
dCBvZiB0aGUgSUNVIEFQSSwgYW5kIG1heSBub3QgcmVtYWluIHN0YWJsZS48L3A+CisgKgorICov
CitjbGFzcyBVX0NPTU1PTl9BUEkgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAvKlVfRklOQUwqLyA6
IHB1YmxpYyBCcmVha0l0ZXJhdG9yIHsKKworcHJvdGVjdGVkOgorICAgIC8qKgorICAgICAqIFRo
ZSBVVGV4dCB0aHJvdWdoIHdoaWNoIHRoaXMgQnJlYWtJdGVyYXRvciBhY2Nlc3NlcyB0aGUgdGV4
dAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVUZXh0ICAqZlRleHQ7CisKKyAgICAv
KioKKyAgICAgKiAgIEEgY2hhcmFjdGVyIGl0ZXJhdG9yIHRoYXQgcmVmZXJzIHRvIHRoZSBzYW1l
IHRleHQgYXMgdGhlIFVUZXh0LCBhYm92ZS4KKyAgICAgKiAgIE9ubHkgaW5jbHVkZWQgZm9yIGNv
bXBhdGliaWxpdHkgd2l0aCBvbGQgQVBJLCB3aGljaCB3YXMgYmFzZWQgb24gQ2hhcmFjdGVySXRl
cmF0b3JzLgorICAgICAqICAgVmFsdWUgbWF5IGJlIGFkb3B0ZWQgZnJvbSBvdXRzaWRlLCBvciBv
bmUgb2YgZlNDaGFySXRlciBvciBmRENoYXJJdGVyLCBiZWxvdy4KKyAgICAgKi8KKyAgICBDaGFy
YWN0ZXJJdGVyYXRvciAgKmZDaGFySXRlcjsKKworICAgIC8qKgorICAgICAqICAgV2hlbiB0aGUg
aW5wdXQgdGV4dCBpcyBwcm92aWRlZCBieSBhIFVuaWNvZGVTdHJpbmcsIHRoaXMgd2lsbCBwb2lu
dCB0bworICAgICAqICAgIGEgY2hhcmFjdGVySXRlcmF0b3IgdGhhdCB3cmFwcyB0aGF0IGRhdGEu
ICBOZWVkZWQgb25seSBmb3IgdGhlCisgICAgICogICAgaW1wbGVtZW50YXRpb24gb2YgZ2V0VGV4
dCgpLCBhIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGlzc3VlLgorICAgICAqLworICAgIFN0cmlu
Z0NoYXJhY3Rlckl0ZXJhdG9yICpmU0NoYXJJdGVyOworCisgICAgLyoqCisgICAgICogIFdoZW4g
dGhlIGlucHV0IHRleHQgaXMgcHJvdmlkZWQgYnkgYSBVVGV4dCwgdGhpcworICAgICAqICAgIGR1
bW15IENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgYW4gZW1wdHkgc3RyaW5nIHdpbGwKKyAgICAgKiAg
ICBiZSByZXR1cm5lZCBmcm9tIGdldFRleHQoKQorICAgICAqLworICAgIFVDaGFyQ2hhcmFjdGVy
SXRlcmF0b3IgKmZEQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSBkYXRhIGZv
ciB0aGlzIEJyZWFrSXRlcmF0b3IgaW5zdGFuY2UKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8K
KyAgICBSQkJJRGF0YVdyYXBwZXIgICAgKmZEYXRhOworCisgICAgLyoqIEluZGV4IG9mIHRoZSBS
dWxlIHt0YWd9IHZhbHVlcyBmb3IgdGhlIG1vc3QgcmVjZW50IG1hdGNoLgorICAgICAqICBAaW50
ZXJuYWwKKyAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZkxhc3RSdWxlU3RhdHVzSW5k
ZXg7CisKKyAgICAvKioKKyAgICAgKiBSdWxlIHRhZyB2YWx1ZSB2YWxpZCBmbGFnLgorICAgICAq
IFNvbWUgaXRlcmF0b3Igb3BlcmF0aW9ucyBkb24ndCBpbnRyaW5zaWNhbGx5IHNldCB0aGUgY29y
cmVjdCB0YWcgdmFsdWUuCisgICAgICogVGhpcyBmbGFnIGxldHMgdXMgbGF6aWx5IGNvbXB1dGUg
dGhlIHZhbHVlIGlmIHdlIGFyZSBldmVyIGFza2VkIGZvciBpdC4KKyAgICAgKiBAaW50ZXJuYWwK
KyAgICAgKi8KKyAgICBVQm9vbCAgICAgICAgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhWYWxpZDsK
KworICAgIC8qKgorICAgICAqIENvdW50ZXIgZm9yIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBl
bmNvdW50ZXJlZCB3aXRoIHRoZSAiZGljdGlvbmFyeSIKKyAgICAgKiAgIGZsYWcgc2V0LgorICAg
ICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICAgICAgZkRpY3Rpb25h
cnlDaGFyQ291bnQ7CisKKyAgICAvKioKKyAgICAgKiBXaGVuIGEgcmFuZ2Ugb2YgY2hhcmFjdGVy
cyBpcyBkaXZpZGVkIHVwIHVzaW5nIHRoZSBkaWN0aW9uYXJ5LCB0aGUgYnJlYWsKKyAgICAgKiBw
b3NpdGlvbnMgdGhhdCBhcmUgZGlzY292ZXJlZCBhcmUgc3RvcmVkIGhlcmUsIHByZXZlbnRpbmcg
dXMgZnJvbSBoYXZpbmcKKyAgICAgKiB0byB1c2UgZWl0aGVyIHRoZSBkaWN0aW9uYXJ5IG9yIHRo
ZSBzdGF0ZSB0YWJsZSBhZ2FpbiB1bnRpbCB0aGUgaXRlcmF0b3IKKyAgICAgKiBsZWF2ZXMgdGhp
cyByYW5nZSBvZiB0ZXh0LiBIYXMgdGhlIG1vc3QgaW1wYWN0IGZvciBsaW5lIGJyZWFraW5nLgor
ICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QqICAgICAgICAgICAgZkNhY2hl
ZEJyZWFrUG9zaXRpb25zOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBlbGVtZW50
cyBpbiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAg
ICBpbnQzMl90ICAgICAgICAgICAgIGZOdW1DYWNoZWRCcmVha1Bvc2l0aW9uczsKKworICAgIC8q
KgorICAgICAqIGlmIGZDYWNoZWRCcmVha1Bvc2l0aW9ucyBpcyBub3QgbnVsbCwgdGhpcyBpbmRp
Y2F0ZXMgd2hpY2ggaXRlbSBpbiB0aGUKKyAgICAgKiBjYWNoZSB0aGUgY3VycmVudCBpdGVyYXRp
b24gcG9zaXRpb24gcmVmZXJzIHRvCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50
MzJfdCAgICAgICAgICAgICBmUG9zaXRpb25JbkNhY2hlOworICAgIAorICAgIC8qKgorICAgICAq
CisgICAgICogSWYgcHJlc2VudCwgVVN0YWNrIG9mIExhbmd1YWdlQnJlYWtFbmdpbmUgb2JqZWN0
cyB0aGF0IG1pZ2h0IGhhbmRsZQorICAgICAqIGRpY3Rpb25hcnkgY2hhcmFjdGVycy4gU2VhcmNo
ZWQgZnJvbSB0b3AgdG8gYm90dG9tIHRvIGZpbmQgYW4gb2JqZWN0IHRvCisgICAgICogaGFuZGxl
IGEgZ2l2ZW4gY2hhcmFjdGVyLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVTdGFj
ayAgICAgICAgICAgICAgKmZMYW5ndWFnZUJyZWFrRW5naW5lczsKKyAgICAKKyAgICAvKioKKyAg
ICAgKgorICAgICAqIElmIHByZXNlbnQsIHRoZSBzcGVjaWFsIExhbmd1YWdlQnJlYWtFbmdpbmUg
dXNlZCBmb3IgaGFuZGxpbmcKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgYXJlIGluIHRoZSBkaWN0
aW9uYXJ5IHNldCwgYnV0IG5vdCBoYW5kbGVkIGJ5IGFueQorICAgICAqIExhbmd1Z2FnZUJyZWFr
RW5naW5lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVuaGFuZGxlZEVuZ2luZSAg
ICAgKmZVbmhhbmRsZWRCcmVha0VuZ2luZTsKKyAgICAKKyAgICAvKioKKyAgICAgKgorICAgICAq
IFRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvciwgb3IgLTEgaWYgaXQgaGFzIG5vdCBiZWVu
IHNldC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAgICAg
IGZCcmVha1R5cGU7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgLy89PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAg
IC8vIGNvbnN0cnVjdG9ycworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworI2lmbmRlZiBVX0hJREVf
SU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgdG8gYmUgdXNlZCBpbiB0aGUg
Y29uc3RydWN0b3IKKyAgICAgKiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFJCQklEYXRhSGVhZGVy
KiwgRURvbnRBZG9wdCwgVUVycm9yQ29kZSAmKTsKKyAgICAgKiB3aGljaCBkb2VzIG5vdCBhZG9w
dCB0aGUgbWVtb3J5IGluZGljYXRlZCBieSB0aGUgUkJCSURhdGFIZWFkZXIqCisgICAgICogcGFy
YW1ldGVyLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgZW51bSBFRG9u
dEFkb3B0IHsKKyAgICAgICAga0RvbnRBZG9wdAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBD
b25zdHJ1Y3RvciBmcm9tIGEgZmxhdHRlbmVkIHNldCBvZiBSQkJJIGRhdGEgaW4gbWFsbG9jZWQg
bWVtb3J5LgorICAgICAqICAgICAgICAgICAgIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9ycyBidWls
dCBmcm9tIGEgY3VzdG9tIHNldCBvZiBydWxlcworICAgICAqICAgICAgICAgICAgIGFyZSBjcmVh
dGVkIHZpYSB0aGlzIGNvbnN0cnVjdG9yOyB0aGUgcnVsZXMgYXJlIGNvbXBpbGVkCisgICAgICog
ICAgICAgICAgICAgaW50byBtZW1vcnksIHRoZW4gdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIGNvbnN0
cnVjdGVkIGhlcmUuCisgICAgICoKKyAgICAgKiAgICAgICAgICAgICBUaGUgYnJlYWsgaXRlcmF0
b3IgYWRvcHRzIHRoZSBtZW1vcnksIGFuZCB3aWxsCisgICAgICogICAgICAgICAgICAgZnJlZSBp
dCB3aGVuIGRvbmUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvcihSQkJJRGF0YUhlYWRlciogZGF0YSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKwor
ICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZyb20gYSBmbGF0dGVuZWQgc2V0IG9mIFJCQkkg
ZGF0YSBpbiBtZW1vcnkgd2hpY2ggbmVlZCBub3QKKyAgICAgKiAgICAgICAgICAgICBiZSBtYWxs
b2NlZCAoZS5nLiBpdCBtYXkgYmUgYSBtZW1vcnktbWFwcGVkIGZpbGUsIGV0Yy4pLgorICAgICAq
CisgICAgICogICAgICAgICAgICAgVGhpcyB2ZXJzaW9uIGRvZXMgbm90IGFkb3B0IHRoZSBtZW1v
cnksIGFuZCBkb2VzIG5vdAorICAgICAqICAgICAgICAgICAgIGZyZWUgaXQgd2hlbiBkb25lLgor
ICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoY29u
c3QgUkJCSURhdGFIZWFkZXIqIGRhdGEsIGVudW0gRURvbnRBZG9wdCBkb250QWRvcHQsIFVFcnJv
ckNvZGUgJnN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworCisg
ICAgZnJpZW5kIGNsYXNzIFJCQklSdWxlQnVpbGRlcjsKKyAgICAvKiogQGludGVybmFsICovCisg
ICAgZnJpZW5kIGNsYXNzIEJyZWFrSXRlcmF0b3I7CisKKworCitwdWJsaWM6CisKKyAgICAvKiog
RGVmYXVsdCBjb25zdHJ1Y3Rvci4gIENyZWF0ZXMgYW4gZW1wdHkgc2hlbGwgb2YgYW4gaXRlcmF0
b3IsIHdpdGggbm8KKyAgICAgKiAgcnVsZXMgb3IgdGV4dCB0byBpdGVyYXRlIG92ZXIuICAgT2Jq
ZWN0IGNhbiBzdWJzZXF1ZW50bHkgYmUgYXNzaWduZWQgdG8uCisgICAgICogIEBzdGFibGUgSUNV
IDIuMgorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKTsKKworICAgIC8qKgor
ICAgICAqIENvcHkgY29uc3RydWN0b3IuICBXaWxsIHByb2R1Y2UgYSBicmVhayBpdGVyYXRvciB3
aXRoIHRoZSBzYW1lIGJlaGF2aW9yLAorICAgICAqIGFuZCB3aGljaCBpdGVyYXRlcyBvdmVyIHRo
ZSBzYW1lIHRleHQsIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRo
ZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHBhc3NlZCB0byBiZSBjb3BpZWQKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGNvbnN0IFJ1
bGVCYXNlZEJyZWFrSXRlcmF0b3ImIHRoYXQpOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0
IGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEgc2V0IG9mIHJ1bGVzIHN1cHBsaWVkIGFz
IGEgc3RyaW5nLgorICAgICAqIEBwYXJhbSBydWxlcyBUaGUgYnJlYWsgcnVsZXMgdG8gYmUgdXNl
ZC4KKyAgICAgKiBAcGFyYW0gcGFyc2VFcnJvciAgSW4gdGhlIGV2ZW50IG9mIGEgc3ludGF4IGVy
cm9yIGluIHRoZSBydWxlcywgcHJvdmlkZXMgdGhlIGxvY2F0aW9uCisgICAgICogICAgICAgICAg
ICAgICAgICAgIHdpdGhpbiB0aGUgcnVsZXMgb2YgdGhlIHByb2JsZW0uCisgICAgICogQHBhcmFt
IHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkgZXJyb3JzIGVuY291bnRlcmVkLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMgorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoIGNvbnN0
IFVuaWNvZGVTdHJpbmcgICAgJnJ1bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBV
UGFyc2VFcnJvciAgICAgICAgICAgJnBhcnNlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVFcnJvckNvZGUgICAgICAgICAgICAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAq
IENvbnRydWN0IGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEgc2V0IG9mIHByZWNvbXBp
bGVkIGJpbmFyeSBydWxlcy4KKyAgICAgKiBCaW5hcnkgcnVsZXMgYXJlIG9idGFpbmVkIGZyb20g
UnVsZXNCYXNlZEJyZWFrSXRlcmF0b3I6OmdldEJpbmFyeVJ1bGVzKCkuCisgICAgICogQ29uc3Ry
dWN0aW9uIG9mIGEgYnJlYWsgaXRlcmF0b3IgaW4gdGhpcyB3YXkgaXMgc3Vic3RhbnRpYWxseSBm
YXN0ZXIgdGhhbgorICAgICAqIGNvbnN0dWN0aW9uIGZyb20gc291cmNlIHJ1bGVzLgorICAgICAq
CisgICAgICogT3duZXJzaGlwIG9mIHRoZSBzdG9yYWdlIGNvbnRhaW5pbmcgdGhlIGNvbXBpbGVk
IHJ1bGVzIHJlbWFpbnMgd2l0aCB0aGUKKyAgICAgKiBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbi4g
IFRoZSBjb21waWxlZCBydWxlcyBtdXN0IG5vdCBiZSAgbW9kaWZpZWQgb3IgCisgICAgICogZGVs
ZXRlZCBkdXJpbmcgdGhlIGxpZmUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAg
ICogVGhlIGNvbXBpbGVkIHJ1bGVzIGFyZSBub3QgY29tcGF0aWJsZSBhY3Jvc3MgZGlmZmVyZW50
IG1ham9yIHZlcnNpb25zIG9mIElDVS4KKyAgICAgKiBUaGUgY29tcGlsZWQgcnVsZXMgYXJlIGNv
bWFwdGlibGUgb25seSBiZXR3ZWVuIG1hY2hpbmVzIHdpdGggdGhlIHNhbWUKKyAgICAgKiBieXRl
IG9yZGVyaW5nIChsaXR0bGUgb3IgYmlnIGVuZGlhbikgYW5kIHRoZSBzYW1lIGJhc2UgY2hhcmFj
dGVyIHNldCBmYW1pbHkKKyAgICAgKiAoQVNDSUkgb3IgRUJDRElDKS4KKyAgICAgKgorICAgICAq
IEBzZWUgI2dldEJpbmFyeVJ1bGVzCisgICAgICogQHBhcmFtIGNvbXBpbGVkUnVsZXMgQSBwb2lu
dGVyIHRvIHRoZSBjb21waWxlZCBicmVhayBydWxlcyB0byBiZSB1c2VkLgorICAgICAqIEBwYXJh
bSBydWxlTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIGNvbXBpbGVkIGJyZWFrIHJ1bGVzLCBpbiBi
eXRlcy4gIFRoaXMKKyAgICAgKiAgIGNvcnJlc3BvbmRzIHRvIHRoZSBsZW5ndGggdmFsdWUgcHJv
ZHVjZWQgYnkgZ2V0QmluYXJ5UnVsZXMoKS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIEluZm9ybWF0
aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQsIGluY2x1ZGluZyBpbnZhbGlkCisgICAgICog
ICBiaW5hcnkgcnVsZXMuCisgICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgICovCisgICAgUnVs
ZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCB1aW50OF90ICpjb21waWxlZFJ1bGVzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgcnVsZUxlbmd0aCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgJnN0YXR1cyk7CisKKyAgICAvKioKKyAg
ICAgKiBUaGlzIGNvbnN0cnVjdG9yIHVzZXMgdGhlIHVkYXRhIGludGVyZmFjZSB0byBjcmVhdGUg
YSBCcmVha0l0ZXJhdG9yCisgICAgICogd2hvc2UgaW50ZXJuYWwgdGFibGVzIGxpdmUgaW4gYSBt
ZW1vcnktbWFwcGVkIGZpbGUuICAiaW1hZ2UiIGlzIGFuCisgICAgICogSUNVIFVEYXRhTWVtb3J5
IGhhbmRsZSBmb3IgdGhlIHByZS1jb21waWxlZCBicmVhayBpdGVyYXRvciB0YWJsZXMuCisgICAg
ICogQHBhcmFtIGltYWdlIGhhbmRsZSB0byB0aGUgbWVtb3J5IGltYWdlIGZvciB0aGUgYnJlYWsg
aXRlcmF0b3IgZGF0YS4KKyAgICAgKiAgICAgICAgT3duZXJzaGlwIG9mIHRoZSBVRGF0YU1lbW9y
eSBoYW5kbGUgcGFzc2VzIHRvIHRoZSBCcmVhayBJdGVyYXRvciwKKyAgICAgKiAgICAgICAgd2hp
Y2ggd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgY2xvc2luZyBpdCB3aGVuIGl0IGlzIG5vIGxvbmdl
ciBuZWVkZWQuCisgICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkgZXJyb3Jz
IGVuY291bnRlcmVkLgorICAgICAqIEBzZWUgdWRhdGFfb3BlbgorICAgICAqIEBzZWUgI2dldEJp
bmFyeVJ1bGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvcihVRGF0YU1lbW9yeSogaW1hZ2UsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisK
KyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgflJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKTsKKworICAgIC8qKgor
ICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICBTZXRzIHRoaXMgaXRlcmF0b3IgdG8gaGF2ZSB0
aGUgc2FtZSBiZWhhdmlvciwKKyAgICAgKiBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHRleHQs
IGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBSdWxlQmFzZWRC
cmVha0l0ZXJ0b3IgcGFzc2VkIGluCisgICAgICogQHJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBS
dWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIG9wZXJhdG9yPShjb25zdCBSdWxlQmFzZWRCcmVh
a0l0ZXJhdG9yJiB0aGF0KTsKKworICAgIC8qKgorICAgICAqIEVxdWFsaXR5IG9wZXJhdG9yLiAg
UmV0dXJucyBUUlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG9mIHRoZQorICAgICAqIHNh
bWUgY2xhc3MsIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsIGFuZCBpdGVyYXRlIG92ZXIgdGhlIHNh
bWUgdGV4dC4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQnJlYWtJdGVyYXRvciB0byBiZSBjb21w
YXJlZCBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgYm90aCBCcmVha0l0ZXJh
dG9ycyBhcmUgb2YgdGhlCisgICAgICogc2FtZSBjbGFzcywgaGF2ZSB0aGUgc2FtZSBiZWhhdmlv
ciwgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAqICBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29uc3QgQnJlYWtJdGVy
YXRvciYgdGhhdCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBOb3QtZXF1YWwgb3BlcmF0b3Iu
ICBJZiBvcGVyYXRvcj09IHJldHVybnMgVFJVRSwgdGhpcyByZXR1cm5zIEZBTFNFLAorICAgICAq
IGFuZCB2aWNlIHZlcnNhLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBCcmVha0l0ZXJhdG9yIHRv
IGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5CisgICAgICogQHJldHVybiBUUlVFIGlmIGJvdGgg
QnJlYWtJdGVyYXRvcnMgYXJlIG5vdCBzYW1lLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHRoYXQpIGNv
bnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIFJ1bGVC
YXNlZEJyZWFrSXRlcmF0b3Igd2l0aCB0aGUgc2FtZQorICAgICAqIGJlaGF2aW9yLCBhbmQgaXRl
cmF0aW5nIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhpcyBvbmUuCisgICAgICogRGlmZmVycyBm
cm9tIHRoZSBjb3B5IGNvbnN0cnVjdG9yIGluIHRoYXQgaXQgaXMgcG9seW1vcnBoaWMsIGFuZAor
ICAgICAqIHdpbGwgY29ycmVjdGx5IGNsb25lIChjb3B5KSBhIGRlcml2ZWQgY2xhc3MuCisgICAg
ICogY2xvbmUoKSBpcyB0aHJlYWQgc2FmZS4gIE11bHRpcGxlIHRocmVhZHMgbWF5IHNpbXVsdGFl
bmVvdXNseQorICAgICAqIGNsb25lIHRoZSBzYW1lIHNvdXJjZSBicmVhayBpdGVyYXRvci4KKyAg
ICAgKiBAcmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRv
ciogY2xvbmUoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENvbXB1dGUgYSBoYXNoIGNvZGUg
Zm9yIHRoaXMgQnJlYWtJdGVyYXRvcgorICAgICAqIEByZXR1cm4gQSBoYXNoIGNvZGUKKyAgICAg
KiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGhhc2hDb2Rl
KHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZGVzY3JpcHRpb24g
dXNlZCB0byBjcmVhdGUgdGhpcyBpdGVyYXRvcgorICAgICAqIEByZXR1cm4gdGhlIGRlc2NyaXB0
aW9uIHVzZWQgdG8gY3JlYXRlIHRoaXMgaXRlcmF0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBjb25zdCBVbmljb2RlU3RyaW5nJiBnZXRSdWxlcyh2b2lk
KSBjb25zdDsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBCcmVha0l0ZXJhdG9yIG92
ZXJyaWRlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIDxwPgorICAg
ICAqIFJldHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6
ZWQuCisgICAgICogVGhlIHJldHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBpcyBvd25lZCBieSB0
aGUgYnJlYWsgaXRlcmF0b3IsIGFuZCBtdXN0CisgICAgICogbm90IGJlIGRlbGV0ZWQgYnkgdGhl
IGNhbGxlci4gIFJlcGVhdGVkIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gbWF5CisgICAgICogcmV0
dXJuIHRoZSBzYW1lIENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4K
KyAgICAgKiBUaGUgcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIG11c3Qgbm90IGJlIHVzZWQg
Y29uY3VycmVudGx5IHdpdGgKKyAgICAgKiB0aGUgYnJlYWsgaXRlcmF0b3IuICBJZiBjb25jdXJy
ZW50IG9wZXJhdGlvbiBpcyBuZWVkZWQsIGNsb25lIHRoZQorICAgICAqIHJldHVybmVkIGNoYXJh
Y3RlciBpdGVyYXRvciBmaXJzdCBhbmQgb3BlcmF0ZSBvbiB0aGUgY2xvbmUuCisgICAgICogPC9w
PgorICAgICAqIDxwPgorICAgICAqIFdoZW4gdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9wZXJhdGlu
ZyBvbiB0ZXh0IHN1cHBsaWVkIHZpYSBhIFVUZXh0LAorICAgICAqIHRoaXMgZnVuY3Rpb24gd2ls
bCBmYWlsLiAgTGFja2luZyBhbnkgd2F5IHRvIHNpZ25hbCBmYWlsdXJlcywgaXQKKyAgICAgKiBy
ZXR1cm5zIGFuIENoYXJhY3Rlckl0ZXJhdG9yIGNvbnRhaW5pbmcgbm8gdGV4dC4KKyAgICAgKiBU
aGUgZnVuY3Rpb24gZ2V0VVRleHQoKSBwcm92aWRlcyBzaW1pbGFyIGZ1bmN0aW9uYWxpdHksCisg
ICAgICogaXMgcmVsaWFibGUsIGFuZCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICAgKiA8L3A+Cisg
ICAgICoKKyAgICAgKiBUT0RPOiAgZGVwcmVjYXRlIHRoaXMgZnVuY3Rpb24/CisgICAgICoKKyAg
ICAgKiBAcmV0dXJuIEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCAgQ2hhcmFjdGVySXRl
cmF0b3ImIGdldFRleHQodm9pZCkgY29uc3Q7CisKKworICAgIC8qKgorICAgICAgKiAgR2V0IGEg
VVRleHQgZm9yIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAgKiAgVGhlIHJldHVybmVk
IFVUZXh0IGlzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgVVRleHQgdXNlZCBpbnRlcm5hbGx5Cisg
ICAgICAqICBieSB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24uICBJdCBjYW4gc2Fm
ZWx5IGJlIHVzZWQgdG8KKyAgICAgICogIGFjY2VzcyB0aGUgdGV4dCB3aXRob3V0IGltcGFjdGlu
ZyBhbnkgYnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucywKKyAgICAgICogIGJ1dCB0aGUgdW5kZXJs
eWluZyB0ZXh0IGl0c2VsZiBtdXN0IG5vdCBiZSBhbHRlcmVkLgorICAgICAgKgorICAgICAgKiBA
cGFyYW0gZmlsbEluIEEgVVRleHQgdG8gYmUgZmlsbGVkIGluLiAgSWYgTlVMTCwgYSBuZXcgVVRl
eHQgd2lsbCBiZQorICAgICAgKiAgICAgICAgICAgYWxsb2NhdGVkIHRvIGhvbGQgdGhlIHJlc3Vs
dC4KKyAgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMuCisgICAg
ICAqIEByZXR1cm4gICBUaGUgY3VycmVudCBVVGV4dCBmb3IgdGhpcyBicmVhayBpdGVyYXRvci4g
IElmIGFuIGlucHV0CisgICAgICAqICAgICAgICAgICBVVGV4dCB3YXMgcHJvdmlkZWQsIGl0IHdp
bGwgYWx3YXlzIGJlIHJldHVybmVkLgorICAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAgICov
CisgICAgIHZpcnR1YWwgVVRleHQgKmdldFVUZXh0KFVUZXh0ICpmaWxsSW4sIFVFcnJvckNvZGUg
JnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHRvIGFu
YWx5emUgYSBuZXcgcGllY2Ugb2YgdGV4dC4gIFRoaXMgZnVuY3Rpb24gcmVzZXRzCisgICAgICog
dGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRl
eHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgQW4gaXRlcmF0b3Igb3ZlciB0aGUgdGV4dCB0byBh
bmFseXplLiAgVGhlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiB0YWtlcyBvd25lcnNoaXAgb2YgdGhl
IGNoYXJhY3RlciBpdGVyYXRvci4gIFRoZSBjYWxsZXIgTVVTVCBOT1QgZGVsZXRlIGl0IQorICAg
ICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgYWRvcHRUZXh0
KENoYXJhY3Rlckl0ZXJhdG9yKiBuZXdUZXh0KTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUg
aXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhpcyBmdW5jdGlvbiBy
ZXNldHMKKyAgICAgKiB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lu
bmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUgdGV4dCB0byBhbmFs
eXplLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQg
c2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKworICAgIC8qKgorICAgICAq
IFJlc2V0IHRoZSBicmVhayBpdGVyYXRvciB0byBvcGVyYXRlIG92ZXIgdGhlIHRleHQgcmVwcmVz
ZW50ZWQgYnkKKyAgICAgKiB0aGUgVVRleHQuICBUaGUgaXRlcmF0b3IgcG9zaXRpb24gaXMgcmVz
ZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtYWtlcyBhIHNo
YWxsb3cgY2xvbmUgb2YgdGhlIHN1cHBsaWVkIFVUZXh0LiAgVGhpcyBtZWFucworICAgICAqIHRo
YXQgdGhlIGNhbGxlciBpcyBmcmVlIHRvIGltbWVkaWF0ZWx5IGNsb3NlIG9yIG90aGVyd2lzZSBy
ZXVzZSB0aGUKKyAgICAgKiBVdGV4dCB0aGF0IHdhcyBwYXNzZWQgYXMgYSBwYXJhbWV0ZXIsIGJ1
dCB0aGF0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmCisgICAgICogbXVzdCBub3QgYmUgYWx0
ZXJlZCB3aGlsZSBiZWluZyByZWZlcmVuY2VkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAg
KgorICAgICAqIEBwYXJhbSB0ZXh0ICAgIFRoZSBVVGV4dCB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4
dC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzICBSZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMuCisgICAg
ICogQHN0YWJsZSBJQ1UgMy40CisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBzZXRUZXh0KFVU
ZXh0ICp0ZXh0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogU2V0cyB0
aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4
dCwgcG9zaXRpb24gemVyby4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZzZXQgb2YgdGhlIGJlZ2lu
bmluZyBvZiB0aGUgdGV4dCwgemVyby4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBpbnQzMl90IGZpcnN0KHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0
cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGVuZCBvZiB0aGUgdGV4dC4K
KyAgICAgKiBAcmV0dXJuIFRoZSB0ZXh0J3MgcGFzdC10aGUtZW5kIG9mZnNldC4KKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGxhc3Qodm9pZCk7
CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgZWl0aGVyIGZvcndhcmQg
b3IgYmFja3dhcmQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc3RlcHMuCisgICAgICogTmVnYXRp
dmUgdmFsdWVzIG1vdmUgYmFja3dhcmQsIGFuZCBwb3NpdGl2ZSB2YWx1ZXMgbW92ZSBmb3J3YXJk
LiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gcmVwZWF0ZWRseSBjYWxsaW5nIG5leHQo
KSBvciBwcmV2aW91cygpLgorICAgICAqIEBwYXJhbSBuIFRoZSBudW1iZXIgb2Ygc3RlcHMgdG8g
bW92ZS4gIFRoZSBzaWduIGluZGljYXRlcyB0aGUgZGlyZWN0aW9uCisgICAgICogKG5lZ2F0aXZl
IGlzIGJhY2t3YXJkcywgYW5kIHBvc2l0aXZlIGlzIGZvcndhcmRzKS4KKyAgICAgKiBAcmV0dXJu
IFRoZSBjaGFyYWN0ZXIgb2Zmc2V0IG9mIHRoZSBib3VuZGFyeSBwb3NpdGlvbiBuIGJvdW5kYXJp
ZXMgYXdheSBmcm9tCisgICAgICogdGhlIGN1cnJlbnQgb25lLgorICAgICAqICBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dChpbnQzMl90IG4pOworCisg
ICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBuZXh0IGJvdW5kYXJ5
IHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBib3Vu
ZGFyeSBhZnRlciB0aGlzIG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBpbnQzMl90IG5leHQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0
aGUgaXRlcmF0b3IgYmFja3dhcmRzLCB0byB0aGUgbGFzdCBib3VuZGFyeSBwcmVjZWRpbmcgdGhp
cyBvbmUuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkg
cG9zaXRpb24gcHJlY2VkaW5nIHRoaXMgb25lLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJldmlvdXModm9pZCk7CisKKyAgICAvKioKKyAg
ICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9z
aXRpb24gZm9sbG93aW5nCisgICAgICogdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgKiBA
cGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiBmcm9tIHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyBm
b3IgYSBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUg
Zmlyc3QgYnJlYWsgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmb2xsb3dpbmcoaW50MzJfdCBv
ZmZzZXQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8g
dGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlIHRoZQorICAgICAqIHNwZWNpZmllZCBw
b3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiB0byBiZWdpbiBzZWFy
Y2hpbmcgZm9yIGEgYnJlYWsgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0
aGUgbGFzdCBib3VuZGFyeSBiZWZvcmUgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uLgorICAgICAqICBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJlY2VkaW5nKGlu
dDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3Bl
Y2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4gIEFzIGEgc2lkZQorICAgICAq
IGVmZmVjdCwgbGVhdmVzIHRoZSBpdGVyYXRvciBwb2ludGluZyB0byB0aGUgZmlyc3QgYm91bmRh
cnkgcG9zaXRpb24gYXQKKyAgICAgKiBvciBhZnRlciAib2Zmc2V0Ii4KKyAgICAgKiBAcGFyYW0g
b2Zmc2V0IHRoZSBvZmZzZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBUcnVlIGlmICJvZmZz
ZXQiIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNCb3VuZGFyeShpbnQzMl90IG9mZnNldCk7CisKKyAg
ICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAg
ICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgY3VycmVudCh2b2lkKSBj
b25zdDsKKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGF0dXMgdGFnIGZyb20gdGhl
IGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogcmV0
dXJuZWQgYnJlYWsgcG9zaXRpb24uICBGb3IgYnJlYWsgcnVsZXMgdGhhdCBkbyBub3Qgc3BlY2lm
eSBhCisgICAgICogc3RhdHVzLCBhIGRlZmF1bHQgdmFsdWUgb2YgMCBpcyByZXR1cm5lZC4gIElm
IG1vcmUgdGhhbiBvbmUgYnJlYWsgcnVsZQorICAgICAqIHdvdWxkIGNhdXNlIGEgYm91bmRhcnkg
dG8gYmUgbG9jYXRlZCBhdCBzb21lIHBvc2l0aW9uIGluIHRoZSB0ZXh0LAorICAgICAqIHRoZSBu
dW1lcmljYWxseSBsYXJnZXN0IG9mIHRoZSBhcHBsaWNhYmxlIHN0YXR1cyB2YWx1ZXMgaXMgcmV0
dXJuZWQuCisgICAgICogPHA+CisgICAgICogT2YgdGhlIHN0YW5kYXJkIHR5cGVzIG9mIElDVSBi
cmVhayBpdGVyYXRvcnMsIG9ubHkgd29yZCBicmVhayBhbmQKKyAgICAgKiBsaW5lIGJyZWFrIHBy
b3ZpZGUgc3RhdHVzIHZhbHVlcy4gIFRoZSB2YWx1ZXMgYXJlIGRlZmluZWQgaW4KKyAgICAgKiB0
aGUgaGVhZGVyIGZpbGUgdWJyay5oLiAgRm9yIFdvcmQgYnJlYWtzLCB0aGUgc3RhdHVzIGFsbG93
cyBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuIHdvcmRzCisgICAgICogdGhhdCBjb250YWluIGFscGhh
YmV0aWMgbGV0dGVycywgIndvcmRzIiB0aGF0IGFwcGVhciB0byBiZSBudW1iZXJzLAorICAgICAq
IHB1bmN0dWF0aW9uIGFuZCBzcGFjZXMsIHdvcmRzIGNvbnRhaW5pbmcgaWRlb2dyYXBoaWMgY2hh
cmFjdGVycywgYW5kCisgICAgICogbW9yZS4gIEZvciBMaW5lIEJyZWFrLCB0aGUgc3RhdHVzIGRp
c3Rpbmd1aXNoZXMgYmV0d2VlbiBoYXJkIChtYW5kYXRvcnkpIGJyZWFrcworICAgICAqIGFuZCBz
b2Z0IChwb3RlbnRpYWwpIGJyZWFrIHBvc2l0aW9ucy4KKyAgICAgKiA8cD4KKyAgICAgKiA8Y29k
ZT5nZXRSdWxlU3RhdHVzKCk8L2NvZGU+IGNhbiBiZSBjYWxsZWQgYWZ0ZXIgb2J0YWluaW5nIGEg
Ym91bmRhcnkKKyAgICAgKiBwb3NpdGlvbiBmcm9tIDxjb2RlPm5leHQoKTwvY29kZT4sIDxjb2Rl
PnByZXZpb3VzKCk8L2NvZGU+LCBvcgorICAgICAqIGFueSBvdGhlciBicmVhayBpdGVyYXRvciBm
dW5jdGlvbnMgdGhhdCByZXR1cm5zIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogPHA+Cisg
ICAgICogV2hlbiBjcmVhdGluZyBjdXN0b20gYnJlYWsgcnVsZXMsIG9uZSBpcyBmcmVlIHRvIGRl
ZmluZSB3aGF0ZXZlcgorICAgICAqIHN0YXR1cyB2YWx1ZXMgbWF5IGJlIGNvbnZlbmllbnQgZm9y
IHRoZSBhcHBsaWNhdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlOiB0aGlzIGZ1bmN0aW9u
IGlzIG5vdCB0aHJlYWQgc2FmZS4gIEl0IHNob3VsZCBub3QgaGF2ZSBiZWVuCisgICAgICogICAg
ICAgZGVjbGFyZWQgY29uc3QsIGFuZCB0aGUgY29uc3QgcmVtYWlucyBvbmx5IGZvciBjb21wYXRp
YmlsaXR5CisgICAgICogICAgICAgcmVhc29ucy4gIChUaGUgZnVuY3Rpb24gaXMgbG9naWNhbGx5
IGNvbnN0LCBidXQgbm90IGJpdC13aXNlIGNvbnN0KS4KKyAgICAgKiA8cD4KKyAgICAgKiBAcmV0
dXJuIHRoZSBzdGF0dXMgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1v
c3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAgKgorICAg
ICAqIEBzZWUgVVdvcmRCcmVhaworICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3RhdHVzKCkgY29uc3Q7CisKKyAgIC8qKgorICAgICog
R2V0IHRoZSBzdGF0dXMgKHRhZykgdmFsdWVzIGZyb20gdGhlIGJyZWFrIHJ1bGUocykgdGhhdCBk
ZXRlcm1pbmVkIHRoZSBtb3N0CisgICAgKiByZWNlbnRseSByZXR1cm5lZCBicmVhayBwb3NpdGlv
bi4KKyAgICAqIDxwPgorICAgICogVGhlIHJldHVybmVkIHN0YXR1cyB2YWx1ZShzKSBhcmUgc3Rv
cmVkIGludG8gYW4gYXJyYXkgcHJvdmlkZWQgYnkgdGhlIGNhbGxlci4KKyAgICAqIFRoZSB2YWx1
ZXMgYXJlIHN0b3JlZCBpbiBzb3J0ZWQgKGFzY2VuZGluZykgb3JkZXIuCisgICAgKiBJZiB0aGUg
Y2FwYWNpdHkgb2YgdGhlIG91dHB1dCBhcnJheSBpcyBpbnN1ZmZpY2llbnQgdG8gaG9sZCB0aGUg
ZGF0YSwKKyAgICAqICB0aGUgb3V0cHV0IHdpbGwgYmUgdHJ1bmNhdGVkIHRvIHRoZSBhdmFpbGFi
bGUgbGVuZ3RoLCBhbmQgYQorICAgICogIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SIHdpbGwgYmUg
c2lnbmFsZWQuCisgICAgKgorICAgICogQHBhcmFtIGZpbGxJblZlYyBhbiBhcnJheSB0byBiZSBm
aWxsZWQgaW4gd2l0aCB0aGUgc3RhdHVzIHZhbHVlcy4KKyAgICAqIEBwYXJhbSBjYXBhY2l0eSAg
dGhlIGxlbmd0aCBvZiB0aGUgc3VwcGxpZWQgdmVjdG9yLiAgQSBsZW5ndGggb2YgemVybyBjYXVz
ZXMKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgbnVt
YmVyIG9mIHN0YXR1cyB2YWx1ZXMsIGluIHRoZQorICAgICogICAgICAgICAgICAgICAgICBub3Jt
YWwgd2F5LCB3aXRob3V0IGF0dGVtdHBpbmcgdG8gc3RvcmUgYW55IHZhbHVlcy4KKyAgICAqIEBw
YXJhbSBzdGF0dXMgICAgcmVjZWl2ZXMgZXJyb3IgY29kZXMuCisgICAgKiBAcmV0dXJuICAgICAg
ICAgIFRoZSBudW1iZXIgb2YgcnVsZSBzdGF0dXMgdmFsdWVzIGZyb20gcnVsZXMgdGhhdCBkZXRl
cm1pbmVkCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJlY2VudCBib3VuZGFyeSBy
ZXR1cm5lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgKiAgICAgICAgICAgICAgICAgIElu
IHRoZSBldmVudCBvZiBhIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SLCB0aGUgcmV0dXJuIHZhbHVl
CisgICAgKiAgICAgICAgICAgICAgICAgIGlzIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3RhdHVzIHZh
bHVlcyB0aGF0IHdlcmUgYXZhaWxhYmxlLAorICAgICogICAgICAgICAgICAgICAgICBub3QgdGhl
IHJlZHVjZWQgbnVtYmVyIHRoYXQgd2VyZSBhY3R1YWxseSByZXR1cm5lZC4KKyAgICAqIEBzZWUg
Z2V0UnVsZVN0YXR1cworICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgICB2aXJ0dWFs
IGludDMyX3QgZ2V0UnVsZVN0YXR1c1ZlYyhpbnQzMl90ICpmaWxsSW5WZWMsIGludDMyX3QgY2Fw
YWNpdHksIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEg
dW5pcXVlIGNsYXNzIElEIFBPTFlNT1JQSElDQUxMWS4gIFB1cmUgdmlydHVhbCBvdmVycmlkZS4K
KyAgICAgKiBUaGlzIG1ldGhvZCBpcyB0byBpbXBsZW1lbnQgYSBzaW1wbGUgdmVyc2lvbiBvZiBS
VFRJLCBzaW5jZSBub3QgYWxsCisgICAgICogQysrIGNvbXBpbGVycyBzdXBwb3J0IGdlbnVpbmUg
UlRUSS4gIFBvbHltb3JwaGljIG9wZXJhdG9yPT0oKSBhbmQKKyAgICAgKiBjbG9uZSgpIG1ldGhv
ZHMgY2FsbCB0aGlzIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICAgICAgVGhl
IGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4gQWxsIG9iamVjdHMgb2YgYQorICAgICAqICAgICAg
ICAgICAgICAgICAgZ2l2ZW4gY2xhc3MgaGF2ZSB0aGUgc2FtZSBjbGFzcyBJRC4gIE9iamVjdHMg
b2YKKyAgICAgKiAgICAgICAgICAgICAgICAgIG90aGVyIGNsYXNzZXMgaGF2ZSBkaWZmZXJlbnQg
Y2xhc3MgSURzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
VUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm5zIHRoZSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcy4gIFRoaXMgaXMgdXNlZnVsIG9u
bHkgZm9yCisgICAgICogY29tcGFyaW5nIHRvIGEgcmV0dXJuIHZhbHVlIGZyb20gZ2V0RHluYW1p
Y0NsYXNzSUQoKS4gIEZvciBleGFtcGxlOgorICAgICAqCisgICAgICogICAgICBCYXNlKiBwb2x5
bW9ycGhpY19wb2ludGVyID0gY3JlYXRlUG9seW1vcnBoaWNPYmplY3QoKTsKKyAgICAgKiAgICAg
IGlmIChwb2x5bW9ycGhpY19wb2ludGVyLT5nZXREeW5hbWljQ2xhc3NJRCgpID09CisgICAgICog
ICAgICAgICAgRGVyaXZlZDo6Z2V0U3RhdGljQ2xhc3NJRCgpKSAuLi4KKyAgICAgKgorICAgICAq
IEByZXR1cm4gICAgICAgICAgVGhlIGNsYXNzIElEIGZvciBhbGwgb2JqZWN0cyBvZiB0aGlzIGNs
YXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBVQ2xhc3NJ
RCBVX0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIERl
cHJlY2F0ZWQgZnVuY3Rpb25hbGl0eS4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKgorICAg
ICAqIENyZWF0ZSBhIGNsb25lIChjb3B5KSBvZiB0aGlzIGJyZWFrIGl0ZXJhdG9yIGluIG1lbW9y
eSBwcm92aWRlZAorICAgICAqICBieSB0aGUgY2FsbGVyLiAgVGhlIGlkZWEgaXMgdG8gaW5jcmVh
c2UgcGVyZm9ybWFuY2UgYnkgYXZvaWRpbmcKKyAgICAgKiAgYSBzdG9yYWdlIGFsbG9jYXRpb24u
ICBVc2Ugb2YgdGhpcyBmdW5jdG9pbiBpcyBOT1QgUkVDT01NRU5ERUQuCisgICAgICogIFBlcmZv
cm1hbmNlIGdhaW5zIGFyZSBtaW5pbWFsLCBhbmQgY29ycmVjdCBidWZmZXIgbWFuYWdlbWVudCBp
cworICAgICAqICB0cmlja3kuICBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisgICAgICog
QHBhcmFtIHN0YWNrQnVmZmVyICBUaGUgcG9pbnRlciB0byB0aGUgbWVtb3J5IGludG8gd2hpY2gg
dGhlIGNsb25lZCBvYmplY3QKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHNob3VsZCBiZSBw
bGFjZWQuICBJZiBOVUxMLCAgYWxsb2NhdGUgaGVhcCBtZW1vcnkKKyAgICAgKiAgICAgICAgICAg
ICAgICAgICAgIGZvciB0aGUgY2xvbmVkIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gQnVmZmVyU2l6
ZSAgIFRoZSBzaXplIG9mIHRoZSBidWZmZXIuICBJZiB6ZXJvLCByZXR1cm4gdGhlIHJlcXVpcmVk
CisgICAgICogICAgICAgICAgICAgICAgICAgICBidWZmZXIgc2l6ZSwgYnV0IGRvIG5vdCBjbG9u
ZSB0aGUgb2JqZWN0LiAgSWYgdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICBzaXplIHdh
cyB0b28gc21hbGwgKGJ1dCBub3QgemVybyksIGFsbG9jYXRlIGhlYXAKKyAgICAgKiAgICAgICAg
ICAgICAgICAgICAgIHN0b3JhZ2UgZm9yIHRoZSBjbG9uZWQgb2JqZWN0LgorICAgICAqCisgICAg
ICogQHBhcmFtIHN0YXR1cyAgICAgICBFcnJvciBzdGF0dXMuICBVX1NBRkVDTE9ORV9BTExPQ0FU
RURfV0FSTklORyB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgICAgICAgICByZXR1cm5lZCBp
ZiB0aGUgdGhlIHByb3ZpZGVkIGJ1ZmZlciB3YXMgdG9vIHNtYWxsLCBhbmQKKyAgICAgKiAgICAg
ICAgICAgICAgICAgICAgIHRoZSBjbG9uZSB3YXMgdGhlcmVmb3JlIHB1dCBvbiB0aGUgaGVhcC4K
KyAgICAgKgorICAgICAqIEByZXR1cm4gIFBvaW50ZXIgdG8gdGhlIGNsb25lIG9iamVjdC4gIFRo
aXMgbWF5IGRpZmZlciBmcm9tIHRoZSBzdGFja0J1ZmZlcgorICAgICAqICAgICAgICAgIGFkZHJl
c3MgaWYgdGhlIGJ5dGUgYWxpZ25tZW50IG9mIHRoZSBzdGFjayBidWZmZXIgd2FzIG5vdCBzdWl0
YWJsZQorICAgICAqICAgICAgICAgIG9yIGlmIHRoZSBzdGFja0J1ZmZlciB3YXMgdG9vIHNtYWxs
IHRvIGhvbGQgdGhlIGNsb25lLgorICAgICAqIEBkZXByZWNhdGVkIElDVSA1Mi4gVXNlIGNsb25l
KCkgaW5zdGVhZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IgKiAgY3JlYXRl
QnVmZmVyQ2xvbmUodm9pZCAqc3RhY2tCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgJkJ1ZmZlclNpemUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgJnN0YXR1cyk7CisK
KworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmluYXJ5IGZvcm0gb2YgY29tcGlsZWQgYnJl
YWsgcnVsZXMsCisgICAgICogd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCB0byBjcmVhdGUgYSBuZXcg
YnJlYWsgaXRlcmF0b3IgYXQgc29tZQorICAgICAqIHRpbWUgaW4gdGhlIGZ1dHVyZS4gIENyZWF0
aW5nIGEgYnJlYWsgaXRlcmF0b3IgZnJvbSBwcmUtY29tcGlsZWQgcnVsZXMKKyAgICAgKiBpcyBt
dWNoIGZhc3RlciB0aGFuIGJ1aWxkaW5nIG9uZSBmcm9tIHRoZSBzb3VyY2UgZm9ybSBvZiB0aGUK
KyAgICAgKiBicmVhayBydWxlcy4KKyAgICAgKgorICAgICAqIFRoZSBiaW5hcnkgZGF0YSBjYW4g
b25seSBiZSB1c2VkIHdpdGggdGhlIHNhbWUgdmVyc2lvbiBvZiBJQ1UKKyAgICAgKiAgYW5kIG9u
IHRoZSBzYW1lIHBsYXRmb3JtIHR5cGUgKHByb2Nlc3NvciBlbmRpYW4tbmVzcykKKyAgICAgKgor
ICAgICAqIEBwYXJhbSBsZW5ndGggUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBiaW5hcnkgZGF0
YS4gIChPdXQgcGFyYW10ZXIuKQorICAgICAqCisgICAgICogQHJldHVybiAgIEEgcG9pbnRlciB0
byB0aGUgYmluYXJ5IChjb21waWxlZCkgcnVsZSBkYXRhLiAgVGhlIHN0b3JhZ2UKKyAgICAgKiAg
ICAgICAgICAgYmVsb25ncyB0byB0aGUgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3Igb2JqZWN0LCBu
b3QgdGhlCisgICAgICogICAgICAgICAgIGNhbGxlciwgYW5kIG11c3Qgbm90IGJlIG1vZGlmaWVk
IG9yIGRlbGV0ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgICovCisgICAgdmlydHVh
bCBjb25zdCB1aW50OF90ICpnZXRCaW5hcnlSdWxlcyh1aW50MzJfdCAmbGVuZ3RoKTsKKworICAg
IC8qKgorICAgICAqICBTZXQgdGhlIHN1YmplY3QgdGV4dCBzdHJpbmcgdXBvbiB3aGljaCB0aGUg
YnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nCisgICAgICogIHdpdGhvdXQgY2hhbmdpbmcgYW55
IG90aGVyIGFzcGVjdCBvZiB0aGUgbWF0Y2hpbmcgc3RhdGUuCisgICAgICogIFRoZSBuZXcgYW5k
IHByZXZpb3VzIHRleHQgc3RyaW5ncyBtdXN0IGhhdmUgdGhlIHNhbWUgY29udGVudC4KKyAgICAg
KgorICAgICAqICBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2UgaW4gZW52aXJvbm1l
bnRzIHdoZXJlIElDVSBpcyBvcGVyYXRpbmcgb24KKyAgICAgKiAgc3RyaW5ncyB0aGF0IG1heSBt
b3ZlIGFyb3VuZCBpbiBtZW1vcnkuICBJdCBwcm92aWRlcyBhIG1lY2hhbmlzbSBmb3Igbm90aWZ5
aW5nCisgICAgICogIElDVSB0aGF0IHRoZSBzdHJpbmcgaGFzIGJlZW4gcmVsb2NhdGVkLCBhbmQg
cHJvdmlkaW5nIGEgbmV3IFVUZXh0IHRvIGFjY2VzcyB0aGUKKyAgICAgKiAgc3RyaW5nIGluIGl0
cyBuZXcgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiAgTm90ZSB0aGF0IHRoZSBicmVhayBpdGVy
YXRvciBpbXBsZW1lbnRhdGlvbiBuZXZlciBjb3BpZXMgdGhlIHVuZGVybHlpbmcgdGV4dAorICAg
ICAqICBvZiBhIHN0cmluZyBiZWluZyBwcm9jZXNzZWQsIGJ1dCBhbHdheXMgb3BlcmF0ZXMgZGly
ZWN0bHkgb24gdGhlIG9yaWdpbmFsIHRleHQKKyAgICAgKiAgcHJvdmlkZWQgYnkgdGhlIHVzZXIu
IFJlZnJlc2hpbmcgc2ltcGx5IGRyb3BzIHRoZSByZWZlcmVuY2VzIHRvIHRoZSBvbGQgdGV4dAor
ICAgICAqICBhbmQgcmVwbGFjZXMgdGhlbSB3aXRoIHJlZmVyZW5jZXMgdG8gdGhlIG5ldy4KKyAg
ICAgKgorICAgICAqICBDYXV0aW9uOiAgdGhpcyBmdW5jdGlvbiBpcyBub3JtYWxseSB1c2VkIG9u
bHkgYnkgdmVyeSBzcGVjaWFsaXplZCwKKyAgICAgKiAgc3lzdGVtLWxldmVsIGNvZGUuICBPbmUg
ZXhhbXBsZSB1c2UgY2FzZSBpcyB3aXRoIGdhcmJhZ2UgY29sbGVjdGlvbiB0aGF0IG1vdmVzCisg
ICAgICogIHRoZSB0ZXh0IGluIG1lbW9yeS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnB1dCAg
ICAgIFRoZSBuZXcgKG1vdmVkKSB0ZXh0IHN0cmluZy4KKyAgICAgKiBAcGFyYW0gc3RhdHVzICAg
ICBSZWNlaXZlcyBlcnJvcnMgZGV0ZWN0ZWQgYnkgdGhpcyBmdW5jdGlvbi4KKyAgICAgKiBAcmV0
dXJuICAgICAgICAgICAqdGhpcworICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgNDkKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgJnJlZnJlc2hJbnB1dFRleHQo
VVRleHQgKmlucHV0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisKK3Byb3RlY3RlZDoKKyAgICAv
Lz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisgICAgLy8gaW1wbGVtZW50YXRpb24KKyAgICAvLz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisgICAgLyoqCisgICAgICogRHVtcHMgY2FjaGVzIGFuZCBwZXJmb3JtcyBvdGhlciBhY3Rp
b25zIGFzc29jaWF0ZWQgd2l0aCBhIGNvbXBsZXRlIGNoYW5nZQorICAgICAqIGluIHRleHQgb3Ig
aXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHZpcnR1
YWwgdm9pZCByZXNldCh2b2lkKTsKKworI2lmIDAKKyAgICAvKioKKyAgICAgICogUmV0dXJuIHRy
dWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBmb3IgdGhpcyBjaGFyCisgICAgICAqIGluZGljYXRl
cyB0aGF0IGl0IGlzIGluIHRoZSBzZXQgb2YgZGljdGlvbmFyeSBsb29rdXAgY2hhcnMuCisgICAg
ICAqIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBkaWN0aW9uYXJ5IGJhc2Vk
IGJyZWFrIGl0ZXJhdG9ycy4KKyAgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjYXRlZ29yeSBs
b29rdXAgZm9yIHRoaXMgY2hhcgorICAgICAgKiBpbmRpY2F0ZXMgdGhhdCBpdCBpcyBpbiB0aGUg
c2V0IG9mIGRpY3Rpb25hcnkgbG9va3VwIGNoYXJzLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAg
ICovCisgICAgdmlydHVhbCBVQm9vbCBpc0RpY3Rpb25hcnlDaGFyKFVDaGFyMzIpOworCisgICAg
LyoqCisgICAgICAqIEdldCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICAq
IEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0QnJlYWtUeXBlKCkg
Y29uc3Q7CisjZW5kaWYKKworICAgIC8qKgorICAgICAgKiBTZXQgdGhlIHR5cGUgb2YgdGhlIGJy
ZWFrIGl0ZXJhdG9yLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisgICAgdmlydHVhbCB2
b2lkIHNldEJyZWFrVHlwZShpbnQzMl90IHR5cGUpOworCisjaWZuZGVmIFVfSElERV9JTlRFUk5B
TF9BUEkKKyAgICAvKioKKyAgICAgICogQ29tbW9uIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLCB1
c2VkIGJ5IGNvbnN0cnVjdG9ycyBhbmQgYnVmZmVyQ2xvbmUuCisgICAgICAqIEBpbnRlcm5hbAor
ICAgICAgKi8KKyAgICB2b2lkIGluaXQoKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQ
SSAqLworCitwcml2YXRlOgorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgYmFja3MgdGhl
IGl0ZXJhdG9yIGJhY2sgdXAgdG8gYSAic2FmZSBwb3NpdGlvbiIgaW4gdGhlIHRleHQuCisgICAg
ICogVGhpcyBpcyBhIHBvc2l0aW9uIHRoYXQgd2Uga25vdywgd2l0aG91dCBhbnkgY29udGV4dCwg
bXVzdCBiZSBhIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIFRoZSB2YXJpb3VzIGNhbGxpbmcgbWV0
aG9kcyB0aGVuIGl0ZXJhdGUgZm9yd2FyZCBmcm9tIHRoaXMgc2FmZSBwb3NpdGlvbiB0bworICAg
ICAqIHRoZSBhcHByb3ByaWF0ZSBwb3NpdGlvbiB0byByZXR1cm4uICAoRm9yIG1vcmUgaW5mb3Jt
YXRpb24sIHNlZSB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBvZiBidWlsZEJhY2t3YXJkc1N0YXRl
VGFibGUoKSBpbiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkJ1aWxkZXIuKQorICAgICAqIEBwYXJh
bSBzdGF0ZXRhYmxlIHN0YXRlIHRhYmxlIHVzZWQgb2YgbW92aW5nIGJhY2t3YXJkcworICAgICAq
IEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgaGFuZGxlUHJldmlvdXMoY29uc3QgUkJC
SVN0YXRlVGFibGUgKnN0YXRldGFibGUpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2Qg
aXMgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV4dCgpIG1ldGhvZC4gIEFsbCBp
dGVyYXRpb24KKyAgICAgKiB2ZWN0b3JzIHRocm91Z2ggaGVyZS4gIFRoaXMgbWV0aG9kIGluaXRp
YWxpemVzIHRoZSBzdGF0ZSBtYWNoaW5lIHRvIHN0YXRlIDEKKyAgICAgKiBhbmQgYWR2YW5jZXMg
dGhyb3VnaCB0aGUgdGV4dCBjaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIHVudGlsIHdlIHJlYWNoIHRo
ZSBlbmQKKyAgICAgKiBvZiB0aGUgdGV4dCBvciB0aGUgc3RhdGUgbWFjaGluZSB0cmFuc2l0aW9u
cyB0byBzdGF0ZSAwLiAgV2UgdXBkYXRlIG91ciByZXR1cm4KKyAgICAgKiB2YWx1ZSBldmVyeSB0
aW1lIHRoZSBzdGF0ZSBtYWNoaW5lIHBhc3NlcyB0aHJvdWdoIGEgcG9zc2libGUgZW5kIHN0YXRl
LgorICAgICAqIEBwYXJhbSBzdGF0ZXRhYmxlIHN0YXRlIHRhYmxlIHVzZWQgb2YgbW92aW5nIGZv
cndhcmRzCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCBoYW5kbGVOZXh0
KGNvbnN0IFJCQklTdGF0ZVRhYmxlICpzdGF0ZXRhYmxlKTsKKworcHJvdGVjdGVkOgorCisjaWZu
ZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHRoZSBmdW5j
dGlvbiB0aGF0IGFjdHVhbGx5IGltcGxlbWVudHMgZGljdGlvbmFyeS1iYXNlZAorICAgICAqIGJy
ZWFraW5nLiAgQ292ZXJpbmcgYXQgbGVhc3QgdGhlIHJhbmdlIGZyb20gc3RhcnRQb3MgdG8gZW5k
UG9zLAorICAgICAqIGl0IGNoZWNrcyBmb3IgZGljdGlvbmFyeSBjaGFyYWN0ZXJzLCBhbmQgaWYg
aXQgZmluZHMgdGhlbSBkZXRlcm1pbmVzCisgICAgICogdGhlIGFwcHJvcHJpYXRlIG9iamVjdCB0
byBkZWFsIHdpdGggdGhlbS4gSXQgbWF5IGNhY2hlIGZvdW5kIGJyZWFrcyBpbgorICAgICAqIGZD
YWNoZWRCcmVha1Bvc2l0aW9ucyBhcyBpdCBnb2VzLiBJdCBtYXkgd2VsbCBhbHNvIGxvb2sgYXQg
dGV4dCBvdXRzaWRlCisgICAgICogdGhlIHJhbmdlIHN0YXJ0UG9zIHRvIGVuZFBvcy4KKyAgICAg
KiBJZiBnb2luZyBmb3J3YXJkLCBlbmRQb3MgaXMgdGhlIG5vcm1hbCBVbmljb2RlIGJyZWFrIHJl
c3VsdCwgYW5kCisgICAgICogaWYgZ29pbmQgaW4gcmV2ZXJzZSwgc3RhcnRQb3MgaXMgdGhlIG5v
cm1hbCBVbmljb2RlIGJyZWFrIHJlc3VsdAorICAgICAqIEBwYXJhbSBzdGFydFBvcyAgVGhlIHN0
YXJ0IHBvc2l0aW9uIG9mIGEgcmFuZ2Ugb2YgdGV4dAorICAgICAqIEBwYXJhbSBlbmRQb3MgICAg
VGhlIGVuZCBwb3NpdGlvbiBvZiBhIHJhbmdlIG9mIHRleHQKKyAgICAgKiBAcGFyYW0gcmV2ZXJz
ZSAgIFRoZSBjYWxsIGlzIGZvciB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24KKyAgICAgKiBAaW50ZXJu
YWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGNoZWNrRGljdGlvbmFyeShpbnQzMl90IHN0YXJ0UG9z
LCBpbnQzMl90IGVuZFBvcywgVUJvb2wgcmV2ZXJzZSk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRF
Uk5BTF9BUEkgKi8KKworcHJpdmF0ZToKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24g
cmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgTGFuZ3VhZ2VCcmVha0VuZ2luZSBmb3IgYQorICAgICAq
IGdpdmVuIGNoYXJhY3RlciBjLgorICAgICAqIEBwYXJhbSBjICAgICAgICAgQSBjaGFyYWN0ZXIg
aW4gdGhlIGRpY3Rpb25hcnkgc2V0CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgY29u
c3QgTGFuZ3VhZ2VCcmVha0VuZ2luZSAqZ2V0TGFuZ3VhZ2VCcmVha0VuZ2luZShVQ2hhcjMyIGMp
OworCisgICAgLyoqCisgICAgICogIEBpbnRlcm5hbAorICAgICAqLworICAgIHZvaWQgbWFrZVJ1
bGVTdGF0dXNWYWxpZCgpOworCit9OworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8v
ICAgSW5saW5lIEZ1bmN0aW9ucyBEZWZpbml0aW9ucyAuLi4KKy8vCisvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCitpbmxpbmUgVUJvb2wgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcjo6b3BlcmF0b3Ih
PShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdCB7CisgICAgcmV0dXJuICFvcGVyYXRv
cj09KHRoYXQpOworfQorCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmIC8qICNpZiAhVUNPTkZJ
R19OT19CUkVBS19JVEVSQVRJT04gKi8KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L2ljdS91bmljb2RlL3NjaHJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3NjaHJpdGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDBiNWUyMjUwM2NmZjI2MWQyY2QyNDBmZjEyMDA3ZjkzN2Y3ODNiMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0ZXIuaApAQCAt
MCwwICsxLDE4NyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdo
dCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29y
cG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyoKKyogRmlsZSBzY2hyaXRlci5oCisqCisqIE1vZGlmaWNhdGlvbiBIaXN0
b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAwNS8w
NS85OSAgICAgc3RlcGhlbiAgICAgQ2xlYW5lZCB1cC4KKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor
Ki8KKworI2lmbmRlZiBTQ0hSSVRFUl9ICisjZGVmaW5lIFNDSFJJVEVSX0gKKworI2luY2x1ZGUg
InVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgorI2luY2x1
ZGUgInVuaWNvZGUvdWNocml0ZXIuaCIKKworLyoqCisgKiBcZmlsZSAKKyAqIFxicmllZiBDKysg
QVBJOiBTdHJpbmcgQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lO
CisvKioKKyAqIEEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ2hhcmFjdGVySXRlcmF0b3IgdGhhdCBp
dGVyYXRlcyBvdmVyIHRoZQorICogY2hhcmFjdGVycyAoY29kZSB1bml0cyBvciBjb2RlIHBvaW50
cykgaW4gYSBVbmljb2RlU3RyaW5nLgorICogSXQncyBwb3NzaWJsZSBub3Qgb25seSB0byBjcmVh
dGUgYW4KKyAqIGl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciBhbiBlbnRpcmUgVW5pY29kZVN0
cmluZywgYnV0IGFsc28gdG8KKyAqIGNyZWF0ZSBvbmUgdGhhdCBpdGVyYXRlcyBvdmVyIG9ubHkg
YSBzdWJyYW5nZSBvZiBhIFVuaWNvZGVTdHJpbmcKKyAqIChpdGVyYXRvcnMgb3ZlciBkaWZmZXJl
bnQgc3VicmFuZ2VzIG9mIHRoZSBzYW1lIFVuaWNvZGVTdHJpbmcgZG9uJ3QKKyAqIGNvbXBhcmUg
ZXF1YWwpLgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQHNlZSBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkg
U3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciB7
CitwdWJsaWM6CisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVW5pY29k
ZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBVbmljb2RlU3RyaW5n
IG9iamVjdCBpcyBjb3BpZWQuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgdGhlIHdob2xl
IHN0cmluZywgYW5kIHRoZSBzdGFydGluZyBwb3NpdGlvbiBpcyAwLgorICAgKiBAcGFyYW0gdGV4
dFN0ciBUaGUgdW5pY29kZSBzdHJpbmcgdXNlZCB0byBjcmVhdGUgYW4gaXRlcmF0b3IKKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBV
bmljb2RlU3RyaW5nJiB0ZXh0U3RyKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9y
IG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJyZWQgdG8gYnkgInRleHRTdHIiLgorICAgKiBU
aGUgaXRlcmF0aW9uIHJhbmdlIGlzIHRoZSB3aG9sZSBzdHJpbmcsIGFuZCB0aGUgc3RhcnRpbmcK
KyAgICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJ0ZXh0UG9zIi4gIElmICJ0ZXh0UG9zIiBp
cyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBv
ZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0U3RyIFRoZSB1bmlj
b2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSBhbiBpdGVyYXRvcgorICAgKiBAcGFyYW0gdGV4dFBv
cyBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVuaWNvZGVTdHJp
bmcmICAgIHRleHRTdHIsCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAgICAgIHRleHRQ
b3MpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVW5pY29kZVN0
cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBVbmljb2RlU3RyaW5nIG9i
amVjdCBpcyBjb3BpZWQuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgYmVnaW5zIHdpdGggdGhl
IGNvZGUgdW5pdCBzcGVjaWZpZWQgYnkKKyAgICogInRleHRCZWdpbiIgYW5kIGVuZHMgd2l0aCB0
aGUgY29kZSB1bml0IEJFRk9SRSB0aGUgY29kZSB1bml0IHNwZWNmaWVkCisgICAqIGJ5ICJ0ZXh0
RW5kIi4gIFRoZSBzdGFydGluZyBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInRleHRQb3MiLiAg
SWYKKyAgICogInRleHRCZWdpbiIgYW5kICJ0ZXh0RW5kIiBkb24ndCBmb3JtIGEgdmFsaWQgcmFu
Z2Ugb24gInRleHQiIChpLmUuLAorICAgKiB0ZXh0QmVnaW4gPj0gdGV4dEVuZCBvciBlaXRoZXIg
aXMgbmVnYXRpdmUgb3IgZ3JlYXRlciB0aGFuIHRleHQuc2l6ZSgpKSwKKyAgICogb3IgInRleHRQ
b3MiIGlzIG91dHNpZGUgdGhlIHJhbmdlIGRlZmluZWQgYnkgInRleHRCZWdpbiIgYW5kICJ0ZXh0
RW5kIiwKKyAgICogdGhlIGJlaGF2aW9yIG9mIHRoaXMgaXRlcmF0b3IgaXMgdW5kZWZpbmVkLgor
ICAgKiBAcGFyYW0gdGV4dFN0ciAgICBUaGUgdW5pY29kZSBzdHJpbmcgdXNlZCB0byBjcmVhdGUg
dGhlIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yCisgICAqIEBwYXJhbSB0ZXh0QmVnaW4gIFRoZSBi
ZWdpbiBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0RW5k
ICAgIFRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0g
dGV4dFBvcyAgICBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVu
aWNvZGVTdHJpbmcmICAgIHRleHRTdHIsCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAg
ICAgIHRleHRCZWdpbiwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dEVu
ZCwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dFBvcyk7CisKKyAgLyoq
CisgICAqIENvcHkgY29uc3RydWN0b3IuICBUaGUgbmV3IGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIg
dGhlIHNhbWUgcmFuZ2UKKyAgICogb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIGl0
cyBpbml0aWFsIHBvc2l0aW9uIGlzIHRoZQorICAgKiBzYW1lIGFzICJ0aGF0IidzIGN1cnJlbnQg
cG9zaXRpb24uCisgICAqIFRoZSBVbmljb2RlU3RyaW5nIG9iamVjdCBpbiAidGhhdCIgaXMgY29w
aWVkLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUg
Y29waWVkCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRl
cmF0b3IoY29uc3QgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImICB0aGF0KTsKKworICAvKioKKyAg
ICogRGVzdHJ1Y3Rvci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIH5T
dHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8qKgorICAgKiBBc3NpZ25tZW50IG9wZXJh
dG9yLiAgKnRoaXMgaXMgYWx0ZXJlZCB0byBpdGVyYXRlIG92ZXIgdGhlIHNhbWUKKyAgICogcmFu
Z2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIHJlZmVycyB0byB0aGUgc2FtZQor
ICAgKiBjaGFyYWN0ZXIgd2l0aGluIHRoYXQgc3RyaW5nIGFzICJ0aGF0IiBkb2VzLgorICAgKiBA
cGFyYW0gdGhhdCBUaGUgb2JqZWN0IHRvIGJlIGNvcGllZC4KKyAgICogQHJldHVybiB0aGUgbmV3
bHkgY3JlYXRlZCBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5n
Q2hhcmFjdGVySXRlcmF0b3ImCisgIG9wZXJhdG9yPShjb25zdCBTdHJpbmdDaGFyYWN0ZXJJdGVy
YXRvciYgICAgdGhhdCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgaXRlcmF0
b3JzIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcg
YW5kIGFyZSBwb2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBwYXJhbSB0aGF0
IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5
CisgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0aGUgc2Ft
ZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGluZyBhdCB0aGUg
c2FtZSBjaGFyYWN0ZXIuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBV
Qm9vbCAgICAgICAgICBvcGVyYXRvcj09KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYg
dGhhdCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgYSBuZXcgU3RyaW5nQ2hhcmFjdGVy
SXRlcmF0b3IgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciBpbiB0aGUgc2Ft
ZSByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgdGhpcyBvbmUuICBUaGUKKyAgICogY2FsbGVy
IG11c3QgZGVsZXRlIHRoZSBuZXcgaXRlcmF0b3IuCisgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNs
b25lZCBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBDaGFy
YWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgcHJvdmlkZWQgc3RyaW5nLgorICAgKiBAcGFy
YW0gbmV3VGV4dCBUaGUgc3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVW5pY29kZVN0cmluZyYgbmV3VGV4
dCk7CisKKyAgLyoqCisgICAqIENvcGllcyB0aGUgVW5pY29kZVN0cmluZyB1bmRlciBpdGVyYXRp
b24gaW50byB0aGUgVW5pY29kZVN0cmluZworICAgKiByZWZlcnJlZCB0byBieSAicmVzdWx0Ii4g
IEV2ZW4gaWYgdGhpcyBpdGVyYXRvciBpdGVyYXRlcyBhY3Jvc3MKKyAgICogb25seSBhIHBhcnQg
b2YgdGhpcyBzdHJpbmcsIHRoZSB3aG9sZSBzdHJpbmcgaXMgY29waWVkLgorICAgKiBAcGFyYW0g
cmVzdWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB2b2lkICAgICAgICAgICAgZ2V0VGV4
dChVbmljb2RlU3RyaW5nJiByZXN1bHQpOworCisgIC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJ
RCBmb3IgdGhpcyBvYmplY3QgKG5vdCByZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xh
c3MgSUQgZm9yIHRoaXMgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZp
cnR1YWwgVUNsYXNzSUQgICAgICAgICBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKwor
ICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MgKG5vdCByZWFsbHkg
cHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MKKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICBzdGF0aWMgVUNsYXNzSUQgICBVX0VYUE9SVDIgZ2V0U3Rh
dGljQ2xhc3NJRCh2b2lkKTsKKworcHJvdGVjdGVkOgorICAvKioKKyAgICogRGVmYXVsdCBjb25z
dHJ1Y3RvciwgaXRlcmF0aW9uIG92ZXIgZW1wdHkgc3RyaW5nLgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgLyoqCisgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgcHJvdmlkZWQgc3RyaW5nLgorICAg
KiBAcGFyYW0gbmV3VGV4dCBUaGUgc3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICogQHBh
cmFtIG5ld1RleHRMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgU3RyaW5nCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgdm9pZCBzZXRUZXh0KGNvbnN0IFVDaGFyKiBuZXdUZXh0LCBpbnQz
Ml90IG5ld1RleHRMZW5ndGgpOworCisgIC8qKgorICAgKiBDb3B5IG9mIHRoZSBpdGVyYXRlZCBz
dHJpbmcgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVuaWNvZGVTdHJp
bmcgICAgICAgICAgICB0ZXh0OworCit9OworCitVX05BTUVTUEFDRV9FTkQKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1hcC5oIGIvU291cmNlL1dURi9p
Y3UvdW5pY29kZS91Y2FzZW1hcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzN2UxNjU4ODY5N2YxYTkzMDE5MWVl
M2RmODE2YzYzYjdiZDM4YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3VjYXNlbWFwLmgKQEAgLTAsMCArMSw0MjMgQEAKKy8qCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqCisqICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5l
c3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1Y2FzZW1h
cC5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNl
ZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwNW1heTA2CisqICAg
Y3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyoKKyogICBDYXNlIG1hcHBpbmcgc2Vydmlj
ZSBvYmplY3QgYW5kIGZ1bmN0aW9ucyB1c2luZyBpdC4KKyovCisKKyNpZm5kZWYgX19VQ0FTRU1B
UF9IX18KKyNkZWZpbmUgX19VQ0FTRU1BUF9IX18KKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVz
LmgiCisjaW5jbHVkZSAidW5pY29kZS91c3RyaW5nLmgiCisjaW5jbHVkZSAidW5pY29kZS9sb2Nh
bHBvaW50ZXIuaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMgQVBJOiBVbmljb2RlIGNh
c2UgbWFwcGluZyBmdW5jdGlvbnMgdXNpbmcgYSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAq
CisgKiBUaGUgc2VydmljZSBvYmplY3QgdGFrZXMgY2FyZSBvZiBtZW1vcnkgYWxsb2NhdGlvbnMs
IGRhdGEgbG9hZGluZywgYW5kIHNldHVwCisgKiBmb3IgdGhlIGF0dHJpYnV0ZXMsIGFzIHVzdWFs
LgorICoKKyAqIEN1cnJlbnRseSwgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgaGVyZSBkb2Vz
IG5vdCBvdmVybGFwIHdpdGggdWNoYXIuaAorICogYW5kIHVzdHJpbmcuaCwgZXhjZXB0IGZvciB1
Y2FzZW1hcF90b1RpdGxlKCkuCisgKgorICogdWNhc2VtYXBfdXRmOFhZWigpIGZ1bmN0aW9ucyBv
cGVyYXRlIGRpcmVjdGx5IG9uIFVURi04IHN0cmluZ3MuCisgKi8KKworLyoqCisgKiBVQ2FzZU1h
cCBpcyBhbiBvcGFxdWUgc2VydmljZSBvYmplY3QgZm9yIG5ld2VyIElDVSBjYXNlIG1hcHBpbmcg
ZnVuY3Rpb25zLgorICogT2xkZXIgZnVuY3Rpb25zIGRpZCBub3QgdXNlIGEgc2VydmljZSBvYmpl
Y3QuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworc3RydWN0IFVDYXNlTWFwOwordHlwZWRlZiBz
dHJ1Y3QgVUNhc2VNYXAgVUNhc2VNYXA7IC8qKjwgQyB0eXBlZGVmIGZvciBzdHJ1Y3QgVUNhc2VN
YXAuIEBzdGFibGUgSUNVIDMuNCAqLworCisvKioKKyAqIE9wZW4gYSBVQ2FzZU1hcCBzZXJ2aWNl
IG9iamVjdCBmb3IgYSBsb2NhbGUgYW5kIGEgc2V0IG9mIG9wdGlvbnMuCisgKiBUaGUgbG9jYWxl
IElEIGFuZCBvcHRpb25zIGFyZSBwcmVwcm9jZXNzZWQgc28gdGhhdCBmdW5jdGlvbnMgdXNpbmcg
dGhlCisgKiBzZXJ2aWNlIG9iamVjdCBuZWVkIG5vdCBwcm9jZXNzIHRoZW0gaW4gZWFjaCBjYWxs
LgorICoKKyAqIEBwYXJhbSBsb2NhbGUgSUNVIGxvY2FsZSBJRCwgdXNlZCBmb3IgbGFuZ3VhZ2Ut
ZGVwZW5kZW50CisgKiAgICAgICAgICAgICAgIHVwcGVyLS9sb3dlci0vdGl0bGUtY2FzaW5nIGFj
Y29yZGluZyB0byB0aGUgVW5pY29kZSBzdGFuZGFyZC4KKyAqICAgICAgICAgICAgICAgVXN1YWwg
c2VtYW50aWNzOiAiIj1yb290LCBOVUxMPWRlZmF1bHQgbG9jYWxlLCBldGMuCisgKiBAcGFyYW0g
b3B0aW9ucyBPcHRpb25zIGJpdCBzZXQsIHVzZWQgZm9yIGNhc2UgZm9sZGluZyBhbmQgc3RyaW5n
IGNvbXBhcmlzb25zLgorICogICAgICAgICAgICAgICAgU2FtZSBmbGFncyBhcyBmb3IgdV9mb2xk
Q2FzZSgpLCB1X3N0ckZvbGRDYXNlKCksCisgKiAgICAgICAgICAgICAgICB1X3N0ckNhc2VDb21w
YXJlKCksIGV0Yy4KKyAqICAgICAgICAgICAgICAgIFVzZSAwIG9yIFVfRk9MRF9DQVNFX0RFRkFV
TFQgZm9yIGRlZmF1bHQgYmVoYXZpb3IuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEg
dmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAg
ICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24g
Y2FsbC4KKyAqIEByZXR1cm4gUG9pbnRlciB0byBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LCBp
ZiBzdWNjZXNzZnVsLgorICoKKyAqIEBzZWUgVV9GT0xEX0NBU0VfREVGQVVMVAorICogQHNlZSBV
X0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19MT1dF
UkNBU0UKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVAorICogQHN0YWJs
ZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIFVDYXNlTWFwICogVV9FWFBPUlQyCit1Y2FzZW1hcF9v
cGVuKGNvbnN0IGNoYXIgKmxvY2FsZSwgdWludDMyX3Qgb3B0aW9ucywgVUVycm9yQ29kZSAqcEVy
cm9yQ29kZSk7CisKKy8qKgorICogQ2xvc2UgYSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAq
IEBwYXJhbSBjc20gT2JqZWN0IHRvIGJlIGNsb3NlZC4KKyAqIEBzdGFibGUgSUNVIDMuNAorICov
CitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfY2xvc2UoVUNhc2VNYXAgKmNzbSk7
CisKKyNpZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioK
KyAqIFxjbGFzcyBMb2NhbFVDYXNlTWFwUG9pbnRlcgorICogIlNtYXJ0IHBvaW50ZXIiIGNsYXNz
LCBjbG9zZXMgYSBVQ2FzZU1hcCB2aWEgdWNhc2VtYXBfY2xvc2UoKS4KKyAqIEZvciBtb3N0IG1l
dGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKgorICogQHNlZSBM
b2NhbFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0YWJsZSBJQ1UgNC40
CisgKi8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVDYXNlTWFwUG9pbnRlciwg
VUNhc2VNYXAsIHVjYXNlbWFwX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZgor
CisvKioKKyAqIEdldCB0aGUgbG9jYWxlIElEIHRoYXQgaXMgdXNlZCBmb3IgbGFuZ3VhZ2UtZGVw
ZW5kZW50IGNhc2UgbWFwcGluZ3MuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2Jq
ZWN0LgorICogQHJldHVybiBsb2NhbGUgSUQKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NU
QUJMRSBjb25zdCBjaGFyICogVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRMb2NhbGUoY29uc3QgVUNh
c2VNYXAgKmNzbSk7CisKKy8qKgorICogR2V0IHRoZSBvcHRpb25zIGJpdCBzZXQgdGhhdCBpcyB1
c2VkIGZvciBjYXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29ucy4KKyAqIEBwYXJhbSBj
c20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIG9wdGlvbnMgYml0IHNldAor
ICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHVpbnQzMl90IFVfRVhQT1JUMgordWNh
c2VtYXBfZ2V0T3B0aW9ucyhjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoqCisgKiBTZXQgdGhl
IGxvY2FsZSBJRCB0aGF0IGlzIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudCBjYXNlIG1hcHBp
bmdzLgorICoKKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFy
YW0gbG9jYWxlIExvY2FsZSBJRCwgc2VlIHVjYXNlbWFwX29wZW4oKS4KKyAqIEBwYXJhbSBwRXJy
b3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisg
KiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVm
b3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfb3BlbgorICogQHN0
YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9zZXRM
b2NhbGUoVUNhc2VNYXAgKmNzbSwgY29uc3QgY2hhciAqbG9jYWxlLCBVRXJyb3JDb2RlICpwRXJy
b3JDb2RlKTsKKworLyoqCisgKiBTZXQgdGhlIG9wdGlvbnMgYml0IHNldCB0aGF0IGlzIHVzZWQg
Zm9yIGNhc2UgZm9sZGluZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICoKKyAqIEBwYXJhbSBj
c20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGJp
dCBzZXQsIHNlZSB1Y2FzZW1hcF9vcGVuKCkuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJl
IGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAg
ICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rp
b24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX29wZW4KKyAqIEBzdGFibGUgSUNVIDMuNAor
ICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0T3B0aW9ucyhVQ2FzZU1h
cCAqY3NtLCB1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoq
CisgKiBEbyBub3QgbG93ZXJjYXNlIG5vbi1pbml0aWFsIHBhcnRzIG9mIHdvcmRzIHdoZW4gdGl0
bGVjYXNpbmcuCisgKiBPcHRpb24gYml0IGZvciB0aXRsZWNhc2luZyBBUElzIHRoYXQgdGFrZSBh
biBvcHRpb25zIGJpdCBzZXQuCisgKgorICogQnkgZGVmYXVsdCwgdGl0bGVjYXNpbmcgd2lsbCB0
aXRsZWNhc2UgdGhlIGZpcnN0IGNhc2VkIGNoYXJhY3RlcgorICogb2YgYSB3b3JkIGFuZCBsb3dl
cmNhc2UgYWxsIG90aGVyIGNoYXJhY3RlcnMuCisgKiBXaXRoIHRoaXMgb3B0aW9uLCB0aGUgb3Ro
ZXIgY2hhcmFjdGVycyB3aWxsIG5vdCBiZSBtb2RpZmllZC4KKyAqCisgKiBAc2VlIHVjYXNlbWFw
X3NldE9wdGlvbnMKKyAqIEBzZWUgdWNhc2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2FzZW1hcF91
dGY4VG9UaXRsZQorICogQHNlZSBVbmljb2RlU3RyaW5nOjp0b1RpdGxlCisgKiBAc3RhYmxlIElD
VSAzLjgKKyAqLworI2RlZmluZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNBU0UgMHgxMDAKKworLyoq
CisgKiBEbyBub3QgYWRqdXN0IHRoZSB0aXRsZWNhc2luZyBpbmRleGVzIGZyb20gQnJlYWtJdGVy
YXRvcjo6bmV4dCgpIGluZGV4ZXM7CisgKiB0aXRsZWNhc2UgZXhhY3RseSB0aGUgY2hhcmFjdGVy
cyBhdCBicmVha3MgZnJvbSB0aGUgaXRlcmF0b3IuCisgKiBPcHRpb24gYml0IGZvciB0aXRsZWNh
c2luZyBBUElzIHRoYXQgdGFrZSBhbiBvcHRpb25zIGJpdCBzZXQuCisgKgorICogQnkgZGVmYXVs
dCwgdGl0bGVjYXNpbmcgd2lsbCB0YWtlIGVhY2ggYnJlYWsgaXRlcmF0b3IgaW5kZXgsCisgKiBh
ZGp1c3QgaXQgYnkgbG9va2luZyBmb3IgdGhlIG5leHQgY2FzZWQgY2hhcmFjdGVyLCBhbmQgdGl0
bGVjYXNlIHRoYXQgb25lLgorICogT3RoZXIgY2hhcmFjdGVycyBhcmUgbG93ZXJjYXNlZC4KKyAq
CisgKiBUaGlzIGZvbGxvd3MgVW5pY29kZSA0ICYgNSBzZWN0aW9uIDMuMTMgRGVmYXVsdCBDYXNl
IE9wZXJhdGlvbnM6CisgKgorICogUjMgIHRvVGl0bGVjYXNlKFgpOiBGaW5kIHRoZSB3b3JkIGJv
dW5kYXJpZXMgYmFzZWQgb24gVW5pY29kZSBTdGFuZGFyZCBBbm5leAorICogIzI5LCAiVGV4dCBC
b3VuZGFyaWVzLiIgQmV0d2VlbiBlYWNoIHBhaXIgb2Ygd29yZCBib3VuZGFyaWVzLCBmaW5kIHRo
ZSBmaXJzdAorICogY2FzZWQgY2hhcmFjdGVyIEYuIElmIEYgZXhpc3RzLCBtYXAgRiB0byBkZWZh
dWx0X3RpdGxlKEYpOyB0aGVuIG1hcCBlYWNoCisgKiBzdWJzZXF1ZW50IGNoYXJhY3RlciBDIHRv
IGRlZmF1bHRfbG93ZXIoQykuCisgKgorICogQHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25zCisgKiBA
c2VlIHVjYXNlbWFwX3RvVGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUKKyAqIEBz
ZWUgVW5pY29kZVN0cmluZzo6dG9UaXRsZQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNB
U0UKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCisjZGVmaW5lIFVfVElUTEVDQVNFX05PX0JSRUFL
X0FESlVTVE1FTlQgMHgyMDAKKworI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCisv
KioKKyAqIEdldCB0aGUgYnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2VkIGZvciB0aXRsZWNhc2lu
Zy4KKyAqIERvIG5vdCBtb2RpZnkgdGhlIHJldHVybmVkIGJyZWFrIGl0ZXJhdG9yLgorICogQHBh
cmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1cm4gdGl0bGVjYXNpbmcg
YnJlYWsgaXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSBjb25zdCBV
QnJlYWtJdGVyYXRvciAqIFVfRVhQT1JUMgordWNhc2VtYXBfZ2V0QnJlYWtJdGVyYXRvcihjb25z
dCBVQ2FzZU1hcCAqY3NtKTsKKworLyoqCisgKiBTZXQgdGhlIGJyZWFrIGl0ZXJhdG9yIHRoYXQg
aXMgdXNlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBUaGUgVUNhc2VNYXAgc2VydmljZSBvYmplY3Qg
cmVsZWFzZXMgYSBwcmV2aW91c2x5IHNldCBicmVhayBpdGVyYXRvcgorICogYW5kICJhZG9wdHMi
IHRoaXMgbmV3IG9uZSwgdGFraW5nIG93bmVyc2hpcCBvZiBpdC4KKyAqIEl0IHdpbGwgYmUgcmVs
ZWFzZWQgaW4gYSBzdWJzZXF1ZW50IGNhbGwgdG8gdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigp
CisgKiBvciB1Y2FzZW1hcF9jbG9zZSgpLgorICoKKyAqIEJyZWFrIGl0ZXJhdG9yIG9wZXJhdGlv
bnMgYXJlIG5vdCB0aHJlYWQtc2FmZS4gVGhlcmVmb3JlLCB0aXRsZWNhc2luZworICogZnVuY3Rp
b25zIHVzZSBub24tY29uc3QgVUNhc2VNYXAgb2JqZWN0cy4gSXQgaXMgbm90IHBvc3NpYmxlIHRv
IHRpdGxlY2FzZQorICogc3RyaW5ncyBjb25jdXJyZW50bHkgdXNpbmcgdGhlIHNhbWUgVUNhc2VN
YXAuCisgKgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJh
bSBpdGVyVG9BZG9wdCBCcmVhayBpdGVyYXRvciB0byBiZSBhZG9wdGVkIGZvciB0aXRsZWNhc2lu
Zy4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVy
cm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRp
Y2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAqIEBzZWUgdWNh
c2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICogQHN0YWJsZSBJ
Q1UgMy44CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9zZXRCcmVha0l0
ZXJhdG9yKFVDYXNlTWFwICpjc20sIFVCcmVha0l0ZXJhdG9yICppdGVyVG9BZG9wdCwgVUVycm9y
Q29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogVGl0bGVjYXNlIGEgVVRGLTE2IHN0cmluZy4g
VGhpcyBmdW5jdGlvbiBpcyBhbG1vc3QgYSBkdXBsaWNhdGUgb2YgdV9zdHJUb1RpdGxlKCksCisg
KiBleGNlcHQgdGhhdCBpdCB0YWtlcyB1Y2FzZW1hcF9zZXRPcHRpb25zKCkgaW50byBhY2NvdW50
IGFuZCBoYXMgcGVyZm9ybWFuY2UKKyAqIGFkdmFudGFnZXMgZnJvbSBiZWluZyBhYmxlIHRvIHVz
ZSBhIFVDYXNlTWFwIG9iamVjdCBmb3IgbXVsdGlwbGUgY2FzZSBtYXBwaW5nCisgKiBvcGVyYXRp
b25zLCBzYXZpbmcgc2V0dXAgdGltZS4KKyAqCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVu
dCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaXRsZWNhc2luZyB1c2VzIGEgYnJlYWsgaXRl
cmF0b3IgdG8gZmluZCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiB3b3JkcworICogdGhhdCBhcmUg
dG8gYmUgdGl0bGVjYXNlZC4gSXQgdGl0bGVjYXNlcyB0aG9zZSBjaGFyYWN0ZXJzIGFuZCBsb3dl
cmNhc2VzCisgKiBhbGwgb3RoZXJzLiAoVGhpcyBjYW4gYmUgbW9kaWZpZWQgd2l0aCB1Y2FzZW1h
cF9zZXRPcHRpb25zKCkuKQorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBub24t
Y29uc3QgVUNhc2VNYXAgcG9pbnRlciBiZWNhdXNlIGl0IHdpbGwKKyAqIG9wZW4gYSBkZWZhdWx0
IGJyZWFrIGl0ZXJhdG9yIGlmIG5vIGJyZWFrIGl0ZXJhdG9yIHdhcyBzZXQgeWV0LAorICogYW5k
IGVmZmVjdGl2ZWx5IGNhbGwgdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigpOworICogYWxzbyBi
ZWNhdXNlIHRoZSBicmVhayBpdGVyYXRvciBpcyBzdGF0ZWZ1bCBhbmQgd2lsbCBiZSBtb2RpZmll
ZCBkdXJpbmcKKyAqIHRoZSBpdGVyYXRpb24uCisgKgorICogVGhlIHRpdGxlY2FzZSBicmVhayBp
dGVyYXRvciBjYW4gYmUgcHJvdmlkZWQgdG8gY3VzdG9taXplIGZvciBhcmJpdHJhcnkKKyAqIHN0
eWxlcywgdXNpbmcgcnVsZXMgYW5kIGRpY3Rpb25hcmllcyBiZXlvbmQgdGhlIHN0YW5kYXJkIGl0
ZXJhdG9ycy4KKyAqIFRoZSBzdGFuZGFyZCB0aXRsZWNhc2UgaXRlcmF0b3IgZm9yIHRoZSByb290
IGxvY2FsZSBpbXBsZW1lbnRzIHRoZQorICogYWxnb3JpdGhtIG9mIFVuaWNvZGUgVFIgMjEuCisg
KgorICogVGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHNldFVUZXh0KCksIGZpcnN0KCksIG5l
eHQoKSBhbmQgY2xvc2UoKSBtZXRob2RzIG9mIHRoZQorICogcHJvdmlkZWQgYnJlYWsgaXRlcmF0
b3IuCisgKgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUg
b3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZl
ciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2Vy
dmljZSBvYmplY3QuIFRoaXMgcG9pbnRlciBpcyBub24tY29uc3QhCisgKiAgICAgICAgICAgICAg
ICAgIFNlZSB0aGUgbm90ZSBhYm92ZSBmb3IgZGV0YWlscy4KKyAqIEBwYXJhbSBkZXN0ICAgICAg
QSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRl
cm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91
Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2Fz
ZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVm
ZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAg
ICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRo
ZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRp
bmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3Jp
Z2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmln
aW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICog
QHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29k
ZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBm
YWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBv
ZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZm
ZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVy
IHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1RpdGxlCisgKiBAc3RhYmxl
IElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3RvVGl0
bGUoVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgVUNoYXIgKmRlc3QsIGludDMyX3Qg
ZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqc3JjLCBpbnQzMl90
IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisK
KyNlbmRpZgorCisvKioKKyAqIExvd2VyY2FzZSB0aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0
cmluZy4KKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2
ZS4KKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdp
bmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVz
dCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ug
b2JqZWN0LgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJp
bmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAg
ICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhl
IGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVz
dENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0
IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhl
IGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAg
ICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcu
CisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3Jj
TGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3Jj
IG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEg
dmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAg
ICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBj
YWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNj
ZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4g
d2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICog
QHNlZSB1X3N0clRvTG93ZXIKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSBpbnQz
Ml90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOFRvTG93ZXIoY29uc3QgVUNhc2VNYXAgKmNzbSwK
KyAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAor
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwK
KyAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAq
IFVwcGVyY2FzZSB0aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmluZy4KKyAqIENhc2luZyBp
cyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRoZSByZXN1bHQg
bWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJj
ZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAq
CisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFt
IGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2ls
bCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlz
IGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVm
aW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXpl
IG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAg
ICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25s
eSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdp
dGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAg
ICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGgg
b2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1p
bmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBh
biBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBp
bmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBU
aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2Fz
ZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxs
IGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0clRvVXBwZXIK
KyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNh
c2VtYXBfdXRmOFRvVXBwZXIoY29uc3QgVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAg
ICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAg
ICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRF
UkFUSU9OCisKKy8qKgorICogVGl0bGVjYXNlIGEgVVRGLTggc3RyaW5nLgorICogQ2FzaW5nIGlz
IGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGl0bGVjYXNpbmcg
dXNlcyBhIGJyZWFrIGl0ZXJhdG9yIHRvIGZpbmQgdGhlIGZpcnN0IGNoYXJhY3RlcnMgb2Ygd29y
ZHMKKyAqIHRoYXQgYXJlIHRvIGJlIHRpdGxlY2FzZWQuIEl0IHRpdGxlY2FzZXMgdGhvc2UgY2hh
cmFjdGVycyBhbmQgbG93ZXJjYXNlcworICogYWxsIG90aGVycy4gKFRoaXMgY2FuIGJlIG1vZGlm
aWVkIHdpdGggdWNhc2VtYXBfc2V0T3B0aW9ucygpLikKKyAqCisgKiBOb3RlOiBUaGlzIGZ1bmN0
aW9uIHRha2VzIGEgbm9uLWNvbnN0IFVDYXNlTWFwIHBvaW50ZXIgYmVjYXVzZSBpdCB3aWxsCisg
KiBvcGVuIGEgZGVmYXVsdCBicmVhayBpdGVyYXRvciBpZiBubyBicmVhayBpdGVyYXRvciB3YXMg
c2V0IHlldCwKKyAqIGFuZCBlZmZlY3RpdmVseSBjYWxsIHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0
b3IoKTsKKyAqIGFsc28gYmVjYXVzZSB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgc3RhdGVmdWwgYW5k
IHdpbGwgYmUgbW9kaWZpZWQgZHVyaW5nCisgKiB0aGUgaXRlcmF0aW9uLgorICoKKyAqIFRoZSB0
aXRsZWNhc2UgYnJlYWsgaXRlcmF0b3IgY2FuIGJlIHByb3ZpZGVkIHRvIGN1c3RvbWl6ZSBmb3Ig
YXJiaXRyYXJ5CisgKiBzdHlsZXMsIHVzaW5nIHJ1bGVzIGFuZCBkaWN0aW9uYXJpZXMgYmV5b25k
IHRoZSBzdGFuZGFyZCBpdGVyYXRvcnMuCisgKiBUaGUgc3RhbmRhcmQgdGl0bGVjYXNlIGl0ZXJh
dG9yIGZvciB0aGUgcm9vdCBsb2NhbGUgaW1wbGVtZW50cyB0aGUKKyAqIGFsZ29yaXRobSBvZiBV
bmljb2RlIFRSIDIxLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gdXNlcyBvbmx5IHRoZSBzZXRVVGV4
dCgpLCBmaXJzdCgpLCBuZXh0KCkgYW5kIGNsb3NlKCkgbWV0aG9kcyBvZiB0aGUKKyAqIHByb3Zp
ZGVkIGJyZWFrIGl0ZXJhdG9yLgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBz
aG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBk
ZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAg
ICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LiBUaGlzIHBvaW50ZXIgaXMgbm9uLWNvbnN0IQor
ICogICAgICAgICAgICAgICAgICBTZWUgdGhlIG5vdGUgYWJvdmUgZm9yIGRldGFpbHMuCisgKiBA
cGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3Vs
dCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZm
ZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMg
dW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhl
IHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgor
ICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2ls
bCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAg
ICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBz
cmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxl
bmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwt
dGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVy
IHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qg
bm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0
dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBp
biBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0
IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9U
aXRsZQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNBU0UKKyAqIEBzZWUgVV9USVRMRUNB
U0VfTk9fQlJFQUtfQURKVVNUTUVOVAorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxF
IGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4VG9UaXRsZShVQ2FzZU1hcCAqY3NtLAor
ICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNlbmRpZgorCisv
KioKKyAqIENhc2UtZm9sZHMgdGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcuCisgKgor
ICogQ2FzZS1mb2xkaW5nIGlzIGxvY2FsZS1pbmRlcGVuZGVudCBhbmQgbm90IGNvbnRleHQtc2Vu
c2l0aXZlLAorICogYnV0IHRoZXJlIGlzIGFuIG9wdGlvbiBmb3Igd2hldGhlciB0byBpbmNsdWRl
IG9yIGV4Y2x1ZGUgbWFwcGluZ3MgZm9yIGRvdHRlZCBJCisgKiBhbmQgZG90bGVzcyBpIHRoYXQg
YXJlIG1hcmtlZCB3aXRoICdUJyBpbiBDYXNlRm9sZGluZy50eHQuCisgKgorICogVGhlIHJlc3Vs
dCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291
cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgor
ICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFy
YW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3
aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIg
aXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5k
ZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNp
emUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICog
ICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBv
bmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAg
d2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMg
ICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0
aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVy
bWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRv
IGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90
IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJu
IFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBj
YXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdp
bGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyRm9sZENh
c2UKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNlZSBVX0ZPTERfQ0FTRV9ERUZB
VUxUCisgKiBAc2VlIFVfRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JCisgKiBAc3RhYmxlIElD
VSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhGb2xk
Q2FzZShjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRl
c3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgVUVycm9y
Q29kZSAqcEVycm9yQ29kZSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3Uv
dW5pY29kZS91Y2hyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2hyaXRlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZkNWE5OTBmN2I3ZWQzZDViYWNmMmRhODQ3MWVmOGZmOTQyMmY5OWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmgKQEAgLTAsMCAr
MSwzODEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDUs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3Ro
ZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYg
VUNIUklURVJfSAorI2RlZmluZSBVQ0hSSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBl
cy5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKworLyoqCisgKiBcZmlsZSAKKyAq
IFxicmllZiBDKysgQVBJOiBVQ2hhciBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAqLworIAorVV9OQU1F
U1BBQ0VfQkVHSU4KKworLyoqCisgKiBBIGNvbmNyZXRlIHN1YmNsYXNzIG9mIENoYXJhY3Rlckl0
ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciB0aGUKKyAqIGNoYXJhY3RlcnMgKGNvZGUgdW5pdHMg
b3IgY29kZSBwb2ludHMpIGluIGEgVUNoYXIgYXJyYXkuCisgKiBJdCdzIHBvc3NpYmxlIG5vdCBv
bmx5IHRvIGNyZWF0ZSBhbgorICogaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIGFuIGVudGly
ZSBVQ2hhciBhcnJheSwgYnV0IGFsc28gdG8KKyAqIGNyZWF0ZSBvbmUgdGhhdCBpdGVyYXRlcyBv
dmVyIG9ubHkgYSBzdWJyYW5nZSBvZiBhIFVDaGFyIGFycmF5CisgKiAoaXRlcmF0b3JzIG92ZXIg
ZGlmZmVyZW50IHN1YnJhbmdlcyBvZiB0aGUgc2FtZSBVQ2hhciBhcnJheSBkb24ndAorICogY29t
cGFyZSBlcXVhbCkuCisgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc2VlIEZvcndhcmRD
aGFyYWN0ZXJJdGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9O
X0FQSSBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIDogcHVibGljIENoYXJhY3Rlckl0ZXJhdG9yIHsK
K3B1YmxpYzoKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVQ2hhciBh
cnJheSByZWZlcnJlZCB0byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2Ug
aXMgMCB0byA8Y29kZT5sZW5ndGgtMTwvY29kZT4uCisgICAqIHRleHQgaXMgb25seSBhbGlhc2Vk
LCBub3QgYWRvcHRlZCAodGhlCisgICAqIGRlc3RydWN0b3Igd2lsbCBub3QgZGVsZXRlIGl0KS4K
KyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGVkIG92ZXIK
KyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVUNo
YXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0
ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAg
ICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmxlbmd0aC0xPC9jb2RlPi4KKyAg
ICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAgICogZGVzdHJ1Y3Rv
ciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBUaGUgc3RhcnRpbmcKKyAgICogcG9zaXRpb24g
aXMgc3BlY2lmaWVkIGJ5ICJwb3NpdGlvbiIuIElmICJwb3NpdGlvbiIgaXMgb3V0c2lkZSB0aGUg
dmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2YgdGhpcyBvYmplY3Qg
aXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIgYXJyYXkgdG8gYmUg
aXRlcmF0ZCBvdmVyCisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIg
YXJyYXkKKyAgICogQHBhcmFtIHBvc2l0aW9uIFRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUg
aXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJ
dGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5ndGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAqIENyZWF0ZSBh
biBpdGVyYXRvciBvdmVyIHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0byBieSAidGV4dFB0ciIu
CisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5lbmQtMTwvY29kZT4uCisg
ICAqIHRleHQgaXMgb25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisgICAqIGRlc3RydWN0
b3Igd2lsbCBub3QgZGVsZXRlIGl0KS4KKyAgICogVGhlIHN0YXJ0aW5nCisgICAqIHBvc2l0aW9u
IGlzIHNwZWNpZmllZCBieSAicG9zaXRpb24iLiBJZiBiZWdpbiBhbmQgZW5kIGRvIG5vdAorICAg
KiBmb3JtIGEgdmFsaWQgaXRlcmF0aW9uIHJhbmdlIG9yICJwb3NpdGlvbiIgaXMgb3V0c2lkZSB0
aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2YgdGhpcyBvYmpl
Y3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIgYXJyYXkgdG8g
YmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFVD
aGFyIGFycmF5CisgICAqIEBwYXJhbSB0ZXh0QmVnaW4gIFRoZSBiZWdpbiBwb3NpdGlvbiBvZiB0
aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0RW5kICAgIFRoZSBlbmQgcG9zaXRp
b24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0gcG9zaXRpb24gICAgVGhlIHN0
YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyKiB0ZXh0UHRyLCBpbnQz
Ml90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRleHRCZWdpbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRleHRFbmQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAqIENvcHkgY29uc3Ry
dWN0b3IuICBUaGUgbmV3IGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgdGhlIHNhbWUgcmFuZ2UKKyAg
ICogb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIGl0cyBpbml0aWFsIHBvc2l0aW9u
IGlzIHRoZQorICAgKiBzYW1lIGFzICJ0aGF0IidzIGN1cnJlbnQgcG9zaXRpb24uCisgICAqIEBw
YXJhbSB0aGF0IFRoZSBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvcGllZAorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVUNo
YXJDaGFyYWN0ZXJJdGVyYXRvciYgIHRoYXQpOworCisgIC8qKgorICAgKiBEZXN0cnVjdG9yLgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgflVDaGFyQ2hhcmFjdGVySXRl
cmF0b3IoKTsKKworICAvKioKKyAgICogQXNzaWdubWVudCBvcGVyYXRvci4gICp0aGlzIGlzIGFs
dGVyZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBzYW5lCisgICAqIHJhbmdlIG9mIHRoZSBzYW1lIHN0
cmluZyBhcyAidGhhdCIsIGFuZCByZWZlcnMgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIHdp
dGhpbiB0aGF0IHN0cmluZyBhcyAidGhhdCIgZG9lcy4KKyAgICogQHBhcmFtIHRoYXQgVGhlIG9i
amVjdCB0byBiZSBjb3BpZWQKKyAgICogQHJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QK
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yJgor
ICBvcGVyYXRvcj0oY29uc3QgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYgICAgdGhhdCk7CisKKyAg
LyoqCisgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0aGUg
c2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGluZyBhdCB0
aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hhcmFjdGVy
SXRlcmF0b3IgdXNlZCB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICogQHJldHVybiB0
cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQor
ICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4K
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICAgIG9w
ZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKwor
ICAvKioKKyAgICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGlzIGl0ZXJhdG9yLgorICAg
KiBAcmV0dXJuIHRoZSBoYXNoIGNvZGUuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
dmlydHVhbCBpbnQzMl90ICAgICAgICAgaGFzaENvZGUodm9pZCkgY29uc3Q7CisKKyAgLyoqCisg
ICAqIFJldHVybnMgYSBuZXcgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciByZWZlcnJpbmcgdG8gdGhl
IHNhbWUKKyAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHJhbmdlIG9mIHRoZSBzYW1lIHN0cmlu
ZyBhcyB0aGlzIG9uZS4gIFRoZQorICAgKiBjYWxsZXIgbXVzdCBkZWxldGUgdGhlIG5ldyBpdGVy
YXRvci4KKyAgICogQHJldHVybiB0aGUgQ2hhcmFjdGVySXRlcmF0b3IgbmV3bHkgY3JlYXRlZAor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3Iq
IGNsb25lKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBy
ZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2Us
IGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJl
Z2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQoKS4KKyAgICogQHJldHVybiB0aGUgZmlyc3QgY29k
ZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0KHZvaWQpOworCisgIC8qKgorICAgKiBT
ZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cwor
ICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsIGFuZCBtb3ZlcyB0
aGUgcG9zaXRpb24KKyAgICogdG8gdGhlIHNlY29uZCBjb2RlIHVuaXQuIFRoaXMgaXMgYW4gYWx0
ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRo
IG5leHRQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMg
aXRlcmF0aW9uIHJhbmdlCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBV
Q2hhciAgICAgICAgIGZpcnN0UG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUg
aXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0
ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsCisgICAqIFRoaXMgY2Fu
IGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyKCkuCisgICAqIE5vdGUg
dGhhdCBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0SW5jKCksIGJlZ2lubmluZyB3aXRoLAor
ICAgKiBlLmcuLCBzZXRUb1N0YXJ0KCkgb3IgZmlyc3RQb3N0SW5jKCksIGlzIG1vcmUgZWZmaWNp
ZW50LgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24g
cmFuZ2UKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAg
ICAgZmlyc3QzMih2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVm
ZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwg
cmV0dXJucyB0aGF0IGNvZGUgcG9pbnQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICogdG8g
dGhlIHNlY29uZCBjb2RlIHBvaW50LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3Rh
cnQoKQorICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0SW5jKCkuCisg
ICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4K
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmly
c3QzMlBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJl
ZmVyIHRvIHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBh
bmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdp
biBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpLgorICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNv
ZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBsYXN0KHZvaWQpOworCisgIC8qKgorICAgKiBT
ZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0cwor
ICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBU
aGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzMzIoKS4K
KyAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2Uu
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGxh
c3QzMih2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8g
dGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAqIGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2Jq
ZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgKiByZXR1cm5zIHRoYXQgY29kZSB1
bml0LgorICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgdGV4dC1z
dG9yYWdlIG9iamVjdAorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQKKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgc2V0SW5kZXgoaW50MzJfdCBw
b3NpdGlvbik7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRo
ZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICogdGhhdCBjb250YWlucyB0aGUgInBv
c2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhl
IGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAqIHJldHVybnMgdGhhdCBjb2RlIHBvaW50Lgor
ICAgKiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyBhZGp1c3RlZCB0byB0aGUgYmVnaW5uaW5nIG9m
IHRoZSBjb2RlIHBvaW50CisgICAqIChpdHMgZmlyc3QgY29kZSB1bml0KS4KKyAgICogQHBhcmFt
IHBvc2l0aW9uIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAg
ICogQHJldHVybiB0aGUgY29kZSB1bml0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
dmlydHVhbCBVQ2hhcjMyICAgICAgIHNldEluZGV4MzIoaW50MzJfdCBwb3NpdGlvbik7CisKKyAg
LyoqCisgICAqIFJldHVybnMgdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJl
ZmVycyB0by4KKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBjdXJyZW50
bHkgcmVmZXJzIHRvLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNo
YXIgICAgICAgICBjdXJyZW50KHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1cm5zIHRo
ZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAgKiBAcmV0
dXJuIHRoZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBjdXJyZW50
MzIodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUg
dW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAgICogZW5kSW5kZXgoKSksIGFu
ZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29k
ZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgbmV4dCBj
b2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dCh2b2lkKTsKKworICAvKioKKyAgICog
R2V0cyB0aGUgY3VycmVudCBjb2RlIHVuaXQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8g
dGhlIG5leHQgY29kZSB1bml0CisgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogKHRv
d2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgKiBubyBtb3JlIGNvZGUgdW5pdHMg
dG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSB1
bml0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAg
ICBuZXh0UG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQg
Y29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAgICogZW5kSW5kZXgo
KSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZSBubyBtb3JlCisg
ICAqIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBOb3RlIHRoYXQg
aXRlcmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIHNlbWFudGljcyBpcyBsZXNzCisgICAqIGVm
ZmljaWVudCB0aGFuIGl0ZXJhdGlvbiB3aXRoICJwb3N0LWluY3JlbWVudCIgc2VtYW50aWNzCisg
ICAqIHRoYXQgaXMgcHJvdmlkZWQgYnkgbmV4dDMyUG9zdEluYygpLgorICAgKiBAcmV0dXJuIHRo
ZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyKHZvaWQpOworCisg
IC8qKgorICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgZm9yIHJldHVybmluZyBhbmQg
YWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludAorICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJh
bmdlCisgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICogbm8gbW9y
ZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUg
Y3VycmVudCBwb2ludC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVD
aGFyMzIgICAgICAgbmV4dDMyUG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJucyBG
QUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAq
IGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2Uu
CisgICAqIFRoaXMgaXMgdXNlZCB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9zdEluYygp
IGluIGZvcndhcmQKKyAgICogaXRlcmF0aW9uLgorICAgKiBAcmV0dXJuIEZBTFNFIGlmIHRoZXJl
IGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYXQgb3IgYWZ0ZXIg
dGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNOZXh0KCk7CisKKyAg
LyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJh
dGlvbiByYW5nZSAodG93YXJkCisgICAqIHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQg
Y29kZSB1bml0LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSB1bml0cyB0byByZXR1
cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSB1bml0IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCBVQ2hhciAgICAgICAgIHByZXZpb3VzKHZvaWQpOworCisgIC8qKgorICAgKiBBZHZhbmNl
cyB0byB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dh
cmQKKyAgICogc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYg
dGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERP
TkUuCisgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlv
biByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIg
ICAgICAgcHJldmlvdXMzMih2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJucyBGQUxTRSBpZiB0
aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAqIGJlZm9yZSB0
aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBUaGlzIGlz
IHVzZWQgd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIoKSBpbiBiYWNrd2FyZAorICAgKiBp
dGVyYXRpb24uCisgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1
bml0cyBvciBjb2RlIHBvaW50cworICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4g
dGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIFVCb29sICAgICAgICBoYXNQcmV2aW91cygpOworCisgIC8qKgorICAgKiBNb3ZlcyB0aGUg
Y3VycmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAg
KiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGl0
c2VsZi4KKyAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUg
dW5pdHMgZm9yd2FyZAorICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUg
b3IgbmVnYXRpdmUgZGVsdGEuCisgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVsYXRp
dmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAqIGEgbmVn
YXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVu
dW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgKiBAcmV0dXJuIHRoZSBuZXcg
cG9zaXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIGludDMyX3Qg
ICAgICBtb3ZlKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKTsKKworICAvKioKKyAgICog
TW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBv
ZiB0aGUKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBw
b3NpdGlvbiBpdHNlbGYuCisgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVy
cyBvZiBjb2RlIHBvaW50cyBmb3J3YXJkCisgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcg
YSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3Np
dGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsK
KyAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICogQHBhcmFtIG9yaWdp
biBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAqIEByZXR1
cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgaW50MzJfdCAgICAgIG1vdmUzMihpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbik7CisK
KyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciBhIG5ldyByYW5n
ZSBvZiB0ZXh0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdm9pZCBzZXRUZXh0KGNv
bnN0IFVDaGFyKiBuZXdUZXh0LCBpbnQzMl90IG5ld1RleHRMZW5ndGgpOworCisgIC8qKgorICAg
KiBDb3BpZXMgdGhlIFVDaGFyIGFycmF5IHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBVbmljb2Rl
U3RyaW5nCisgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZlbiBpZiB0aGlzIGl0ZXJh
dG9yIGl0ZXJhdGVzIGFjcm9zcworICAgKiBvbmx5IGEgcGFydCBvZiB0aGlzIHN0cmluZywgdGhl
IHdob2xlIHN0cmluZyBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSByZXN1bHQgUmVjZWl2ZXMgYSBj
b3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAqLworICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNvZGVTdHJpbmcmIHJl
c3VsdCk7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzIChu
b3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNsYXNz
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgc3RhdGljIFVDbGFzc0lEICAgICAgICAg
VV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQodm9pZCk7CisKKyAgLyoqCisgICAqIFJldHVybiBh
IGNsYXNzIElEIGZvciB0aGlzIG9iamVjdCAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1
cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2xhc3NJRCAgICAgICAgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29u
c3Q7CisKK3Byb3RlY3RlZDoKKyAgLyoqCisgICAqIFByb3RlY3RlZCBjb25zdHJ1Y3RvcgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAg
LyoqCisgICAqIFByb3RlY3RlZCBtZW1iZXIgdGV4dAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIGNvbnN0IFVDaGFyKiAgICAgICAgICAgIHRleHQ7CisKK307CisKK1VfTkFNRVNQQUNF
X0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VkYXRhLmgg
Yi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjllNDY2MzBkNTM5
OGQ4MjczOGQxZDYxZmZjNGQyYzkxNGU4YzY4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvdWRhdGEuaApAQCAtMCwwICsxLDQzMCBAQAorLyoKKyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0LCBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1
ZGF0YS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3Qg
dXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMTk5OW9jdDI1Cisq
ICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisKKyNpZm5kZWYgX19VREFUQV9I
X18KKyNkZWZpbmUgX19VREFUQV9IX18KKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisj
aW5jbHVkZSAidW5pY29kZS9sb2NhbHBvaW50ZXIuaCIKKworVV9DREVDTF9CRUdJTgorCisvKioK
KyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IERhdGEgbG9hZGluZyBpbnRlcmZhY2UKKyAqCisg
KiA8aDI+SW5mb3JtYXRpb24gYWJvdXQgZGF0YSBsb2FkaW5nIGludGVyZmFjZTwvaDI+CisgKgor
ICogVGhpcyBBUEkgaXMgdXNlZCB0byBmaW5kIGFuZCBlZmZpY2llbnRseSBsb2FkIGRhdGEgZm9y
IElDVSBhbmQgYXBwbGljYXRpb25zCisgKiB1c2luZyBJQ1UuIEl0IHByb3ZpZGVzIGFuIGFic3Ry
YWN0IGludGVyZmFjZSB0aGF0IHNwZWNpZmllcyBhIGRhdGEgdHlwZSBhbmQKKyAqIG5hbWUgdG8g
ZmluZCBhbmQgbG9hZCB0aGUgZGF0YS4gTm9ybWFsbHkgdGhpcyBBUEkgaXMgdXNlZCBieSBvdGhl
ciBJQ1UgQVBJcworICogdG8gbG9hZCByZXF1aXJlZCBkYXRhIG91dCBvZiB0aGUgSUNVIGRhdGEg
bGlicmFyeSwgYnV0IGl0IGNhbiBiZSB1c2VkIHRvCisgKiBsb2FkIGRhdGEgb3V0IG9mIG90aGVy
IHBsYWNlcy4KKyAqCisgKiBTZWUgdGhlIFVzZXIgR3VpZGUgRGF0YSBNYW5hZ2VtZW50IGNoYXB0
ZXIuCisgKi8KKyAKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorLyoqCisgKiBDaGFyYWN0
ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZyb20gdHJlZSBuYW1lcyAKKyAqIEBp
bnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX1NFUEFSQVRPUiAnLScKKworLyoq
CisgKiBTdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZyb20gdHJlZSBuYW1l
cyAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX1NFUEFSQVRPUl9T
VFJJTkcgIi0iCisKKy8qKgorICogQ2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgcGFydHMgb2Yg
ZW50cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX0VO
VFJZX1NFUF9DSEFSICcvJworCisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhcnRz
IG9mIGVudHJ5IG5hbWVzCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisjZGVmaW5lIFVfVFJF
RV9FTlRSWV9TRVBfU1RSSU5HICIvIgorCisvKioKKyAqIEFsaWFzIGZvciBzdGFuZGFyZCBJQ1Ug
ZGF0YSAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9JQ1VEQVRBX0FMSUFT
ICJJQ1VEQVRBIgorCisjZW5kaWYgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisvKioKKyAq
IFVEYXRhSW5mbyBjb250YWlucyB0aGUgcHJvcGVydGllcyBhYm91dCB0aGUgcmVxdWVzdGVkIGRh
dGEuCisgKiBUaGlzIGlzIG1ldGEgZGF0YS4KKyAqCisgKiA8cD5UaGlzIHN0cnVjdHVyZSBtYXkg
Z3JvdyBpbiB0aGUgZnV0dXJlLCBpbmRpY2F0ZWQgYnkgdGhlCisgKiA8Y29kZT5zaXplPC9jb2Rl
PiBmaWVsZC48L3A+CisgKgorICogPHA+SUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWdu
ZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFRoZSBVRGF0YUluZm8gc3RydWN0IGJl
Z2lucyA0IGJ5dGVzIGFmdGVyIHRoZSBzdGFydCBvZiB0aGUgZGF0YSBpdGVtLAorICogc28gaXQg
aXMgNC1hbGlnbmVkLgorICoKKyAqIDxwPlRoZSBwbGF0Zm9ybSBkYXRhIHByb3BlcnR5IGZpZWxk
cyBoZWxwIGRldGVybWluZSBpZiBhIGRhdGEKKyAqIGZpbGUgY2FuIGJlIGVmZmljaWVudGx5IHVz
ZWQgb24gYSBnaXZlbiBtYWNoaW5lLgorICogVGhlIHBhcnRpY3VsYXIgZmllbGRzIGFyZSBvZiBp
bXBvcnRhbmNlIG9ubHkgaWYgdGhlIGRhdGEKKyAqIGlzIGFmZmVjdGVkIGJ5IHRoZSBwcm9wZXJ0
aWVzIC0gaWYgdGhlcmUgaXMgaW50ZWdlciBkYXRhCisgKiB3aXRoIHdvcmQgc2l6ZXMgPiAxIGJ5
dGUsIGNoYXIqIHRleHQsIG9yIFVDaGFyKiB0ZXh0LjwvcD4KKyAqCisgKiA8cD5UaGUgaW1wbGVt
ZW50YXRpb24gZm9yIHRoZSA8Y29kZT51ZGF0YV9vcGVuW0Nob2ljZV0oKTwvY29kZT4KKyAqIGZ1
bmN0aW9ucyBtYXkgcmVqZWN0IGRhdGEgYmFzZWQgb24gdGhlIHZhbHVlIGluIDxjb2RlPmlzQmln
RW5kaWFuPC9jb2RlPi4KKyAqIE5vIG90aGVyIGZpZWxkIGlzIHVzZWQgYnkgdGhlIDxjb2RlPnVk
YXRhPC9jb2RlPiBBUEkgaW1wbGVtZW50YXRpb24uPC9wPgorICoKKyAqIDxwPlRoZSA8Y29kZT5k
YXRhRm9ybWF0PC9jb2RlPiBtYXkgYmUgdXNlZCB0byBpZGVudGlmeQorICogdGhlIGtpbmQgb2Yg
ZGF0YSwgZS5nLiBhIGNvbnZlcnRlciB0YWJsZS48L3A+CisgKgorICogPHA+VGhlIDxjb2RlPmZv
cm1hdFZlcnNpb248L2NvZGU+IGZpZWxkIHNob3VsZCBiZSB1c2VkIHRvCisgKiBtYWtlIHN1cmUg
dGhhdCB0aGUgZm9ybWF0IGNhbiBiZSBpbnRlcnByZXRlZC4KKyAqIEl0IG1heSBiZSBhIGdvb2Qg
aWRlYSB0byBjaGVjayBvbmx5IGZvciB0aGUgb25lIG9yIHR3byBoaWdoZXN0CisgKiBvZiB0aGUg
dmVyc2lvbiBlbGVtZW50cyB0byBhbGxvdyB0aGUgZGF0YSBtZW1vcnkgdG8KKyAqIGdldCBtb3Jl
IG9yIHNvbWV3aGF0IHJlYXJyYW5nZWQgY29udGVudHMsIGZvciBhcyBsb25nCisgKiBhcyB0aGUg
dXNpbmcgY29kZSBjYW4gc3RpbGwgaW50ZXJwcmV0IHRoZSBvbGRlciBjb250ZW50cy48L3A+Cisg
KgorICogPHA+VGhlIDxjb2RlPmRhdGFWZXJzaW9uPC9jb2RlPiBmaWVsZCBpcyBpbnRlbmRlZCB0
byBiZSBhCisgKiBjb21tb24gcGxhY2UgdG8gc3RvcmUgdGhlIHNvdXJjZSB2ZXJzaW9uIG9mIHRo
ZSBkYXRhOworICogZm9yIGRhdGEgZnJvbSB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgZGF0YWJhc2Us
IHRoaXMgY291bGQKKyAqIHJlZmxlY3QgdGhlIFVuaWNvZGUgdmVyc2lvbi48L3A+CisgKgorICog
QHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICAvKiogc2l6ZW9mKFVE
YXRhSW5mbykKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWludDE2X3Qgc2l6ZTsK
KworICAgIC8qKiB1bnVzZWQsIHNldCB0byAwIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLwor
ICAgIHVpbnQxNl90IHJlc2VydmVkV29yZDsKKworICAgIC8qIHBsYXRmb3JtIGRhdGEgcHJvcGVy
dGllcyAqLworICAgIC8qKiAwIGZvciBsaXR0bGUtZW5kaWFuIG1hY2hpbmUsIDEgZm9yIGJpZy1l
bmRpYW4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWludDhfdCBpc0JpZ0VuZGlh
bjsKKworICAgIC8qKiBzZWUgVV9DSEFSU0VUX0ZBTUlMWSB2YWx1ZXMgaW4gdXR5cGVzLmggCisg
ICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBjaGFyc2V0RmFtaWx5OworCisg
ICAgLyoqIHNpemVvZihVQ2hhciksIG9uZSBvZiB7IDEsIDIsIDQgfSAKKyAgICAgKiAgQHN0YWJs
ZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHNpemVvZlVDaGFyOworCisgICAgLyoqIHVudXNlZCwg
c2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCByZXNlcnZl
ZEJ5dGU7CisKKyAgICAvKiogZGF0YSBmb3JtYXQgaWRlbnRpZmllciAKKyAgICAgKiAgQHN0YWJs
ZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGRhdGFGb3JtYXRbNF07CisKKyAgICAvKiogdmVyc2lv
bnM6IFswXSBtYWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBtaWNybyAKKyAgICAgKiAgQHN0
YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGZvcm1hdFZlcnNpb25bNF07CisKKyAgICAvKiog
dmVyc2lvbnM6IFswXSBtYWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBtaWNybyAKKyAgICAg
KiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGRhdGFWZXJzaW9uWzRdOworfSBVRGF0
YUluZm87CisKKy8qIEFQSSBmb3IgcmVhZGluZyBkYXRhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBGb3J3YXJkIGRlY2xh
cmF0aW9uIG9mIHRoZSBkYXRhIG1lbW9yeSB0eXBlLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8K
K3R5cGVkZWYgc3RydWN0IFVEYXRhTWVtb3J5IFVEYXRhTWVtb3J5OworCisvKioKKyAqIENhbGxi
YWNrIGZ1bmN0aW9uIGZvciB1ZGF0YV9vcGVuQ2hvaWNlKCkuCisgKiBAcGFyYW0gY29udGV4dCBw
YXJhbWV0ZXIgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPi4KKyAq
IEBwYXJhbSB0eXBlIFRoZSB0eXBlIG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBpbnRvIDxjb2RlPnVk
YXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiAgICAgICAgICAgICBJdCBtYXkgYmUgPGNvZGU+
TlVMTDwvY29kZT4uCisgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgZGF0YSBhcyBwYXNz
ZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICogQHBhcmFtIHBJbmZv
IEEgcG9pbnRlciB0byB0aGUgPGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1Y3R1cmUKKyAqICAg
ICAgICAgICAgICBvZiBkYXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVkIGFuZCB3aWxsIGJlIHJldHVy
bmVkCisgKiAgICAgICAgICAgICAgYnkgPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPiBp
ZiB0aGlzIGZ1bmN0aW9uCisgKiAgICAgICAgICAgICAgcmV0dXJucyA8Y29kZT5UUlVFPC9jb2Rl
Pi4KKyAqIEByZXR1cm4gVFJVRSBpZiB0aGUgY3VycmVudCBkYXRhIG1lbW9yeSBpcyBhY2NlcHRh
YmxlCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBVQm9vbCBVX0NBTExDT05WCitV
RGF0YU1lbW9yeUlzQWNjZXB0YWJsZSh2b2lkICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFVEYXRhSW5mbyAqcEluZm8pOworCisKKy8qKgorICogQ29udmVuaWVu
Y2UgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIHdvcmtzIHRoZSBzYW1lIGFzIDxjb2RlPnVk
YXRhX29wZW5DaG9pY2U8L2NvZGU+CisgKiBleGNlcHQgdGhhdCBhbnkgZGF0YSB0aGF0IG1hdGNo
ZXMgdGhlIHR5cGUgYW5kIG5hbWUKKyAqIGlzIGFzc3VtZWQgdG8gYmUgYWNjZXB0YWJsZS4KKyAq
IEBwYXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0ZSBwYXRoIGFuZC9vciBhIGJhc2VuYW1l
IGZvciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcgb2YgdGhlIGRhdGEgaW4gdGhlIGZpbGUg
c3lzdGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVMTDwvY29kZT4gZm9yIElDVSBkYXRhLgor
ICogQHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgZGF0YSB0
byBiZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVzb3VyY2UgYnVuZGxl
cyBhcmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAqICAgICAgICAgICAgIGNvbnZlcnNpb24g
dGFibGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAgICAgICAgIFRoaXMgbWF5IGJlIDxjb2Rl
Pk5VTEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFtIG5hbWUgQSBzdHJpbmcgdGhhdCBzcGVj
aWZpZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBBbiBJQ1Ug
VUVycm9yQ29kZSBwYXJhbWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2NvZGU+Lgor
ICogQHJldHVybiBBIHBvaW50ZXIgKGhhbmRsZSkgdG8gYSBkYXRhIG1lbW9yeSBvYmplY3QsIG9y
IDxjb2RlPk5VTEw8L2NvZGU+CisgKiAgICAgICAgIGlmIGFuIGVycm9yIG9jY3Vycy4gQ2FsbCA8
Y29kZT51ZGF0YV9nZXRNZW1vcnkoKTwvY29kZT4KKyAqICAgICAgICAgdG8gZ2V0IGEgcG9pbnRl
ciB0byB0aGUgYWN0dWFsIGRhdGEuCisgKgorICogQHNlZSB1ZGF0YV9vcGVuQ2hvaWNlCisgKiBA
c3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgVURhdGFNZW1vcnkgKiBVX0VYUE9SVDIKK3Vk
YXRhX29wZW4oY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAq
bmFtZSwKKyAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogRGF0
YSBsb2FkaW5nIGZ1bmN0aW9uLgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGZpbmQgYW5k
IGxvYWQgZWZmaWNpZW50bHkgZGF0YSBmb3IKKyAqIElDVSBhbmQgYXBwbGljYXRpb25zIHVzaW5n
IElDVS4KKyAqIEl0IHByb3ZpZGVzIGFuIGFic3RyYWN0IGludGVyZmFjZSB0aGF0IGFsbG93cyB0
byBzcGVjaWZ5IGEgZGF0YQorICogdHlwZSBhbmQgbmFtZSB0byBmaW5kIGFuZCBsb2FkIHRoZSBk
YXRhLgorICoKKyAqIDxwPlRoZSBpbXBsZW1lbnRhdGlvbiBkZXBlbmRzIG9uIHBsYXRmb3JtIHBy
b3BlcnRpZXMgYW5kIHVzZXIgcHJlZmVyZW5jZXMKKyAqIGFuZCBtYXkgaW52b2x2ZSBsb2FkaW5n
IHNoYXJlZCBsaWJyYXJpZXMgKERMTHMpLCBtYXBwaW5nCisgKiBmaWxlcyBpbnRvIG1lbW9yeSwg
b3IgZm9wZW4oKS9mcmVhZCgpIGZpbGVzLgorICogSXQgbWF5IGFsc28gaW52b2x2ZSB1c2luZyBz
dGF0aWMgbWVtb3J5IG9yIGRhdGFiYXNlIHF1ZXJpZXMgZXRjLgorICogU2V2ZXJhbCBvciBhbGwg
ZGF0YSBpdGVtcyBtYXkgYmUgY29tYmluZWQgaW50byBvbmUgZW50aXR5CisgKiAoRExMLCBtZW1v
cnktbWFwcGFibGUgZmlsZSkuPC9wPgorICoKKyAqIDxwPlRoZSBkYXRhIGlzIGFsd2F5cyBwcmVj
ZWRlZCBieSBhIGhlYWRlciB0aGF0IGluY2x1ZGVzCisgKiBhIDxjb2RlPlVEYXRhSW5mbzwvY29k
ZT4gc3RydWN0dXJlLgorICogVGhlIGNhbGxlcidzIDxjb2RlPmlzQWNjZXB0YWJsZSgpPC9jb2Rl
PiBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gbWFrZQorICogc3VyZSB0aGF0IHRoZSBkYXRhIGlzIHVz
ZWZ1bC4gSXQgbWF5IGJlIGNhbGxlZCBzZXZlcmFsIHRpbWVzIGlmIGl0CisgKiByZWplY3RzIHRo
ZSBkYXRhIGFuZCB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGxvY2F0aW9uIHdpdGggZGF0YQorICog
bWF0Y2hpbmcgdGhlIHR5cGUgYW5kIG5hbWUuPC9wPgorICoKKyAqIDxwPklmIDxjb2RlPnBhdGg9
PU5VTEw8L2NvZGU+LCB0aGVuIElDVSBkYXRhIGlzIGxvYWRlZC4KKyAqIE90aGVyd2lzZSwgaXQg
aXMgc2VwYXJhdGVkIGludG8gYSBiYXNlbmFtZSBhbmQgYSBiYXNlbmFtZS1sZXNzIGRpcmVjdG9y
eSBzdHJpbmcuCisgKiBUaGUgYmFzZW5hbWUgaXMgdXNlZCBhcyB0aGUgZGF0YSBwYWNrYWdlIG5h
bWUsIGFuZCB0aGUgZGlyZWN0b3J5IGlzCisgKiBsb2dpY2FsbHkgcHJlcGVuZGVkIHRvIHRoZSBJ
Q1UgZGF0YSBkaXJlY3Rvcnkgc3RyaW5nLjwvcD4KKyAqCisgKiA8cD5Gb3IgZGV0YWlscyBhYm91
dCBJQ1UgZGF0YSBsb2FkaW5nIHNlZSB0aGUgVXNlciBHdWlkZQorICogRGF0YSBNYW5hZ2VtZW50
IGNoYXB0ZXIuIChodHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9pY3VkYXRhLmh0bWwp
PC9wPgorICoKKyAqIEBwYXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0ZSBwYXRoIGFuZC9v
ciBhIGJhc2VuYW1lIGZvciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcgb2YgdGhlIGRhdGEg
aW4gdGhlIGZpbGUgc3lzdGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVMTDwvY29kZT4gZm9y
IElDVSBkYXRhLgorICogQHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHR5
cGUgb2YgZGF0YSB0byBiZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVz
b3VyY2UgYnVuZGxlcyBhcmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAqICAgICAgICAgICAg
IGNvbnZlcnNpb24gdGFibGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAgICAgICAgIFRoaXMg
bWF5IGJlIDxjb2RlPk5VTEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFtIG5hbWUgQSBzdHJp
bmcgdGhhdCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBAcGFyYW0gaXNBY2Nl
cHRhYmxlIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIHZlcmlmeSB0aGF0IGxvYWRlZCBkYXRh
CisgKiAgICAgICAgICAgICAgICAgICAgIGlzIHVzZWZ1bCBmb3IgdGhlIGNsaWVudCBjb2RlLiBJ
ZiBpdCByZXR1cm5zIEZBTFNFCisgKiAgICAgICAgICAgICAgICAgICAgIGZvciBhbGwgZGF0YSBp
dGVtcywgdGhlbiA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+CisgKiAgICAgICAgICAg
ICAgICAgICAgIHdpbGwgcmV0dXJuIHdpdGggYW4gZXJyb3IuCisgKiBAcGFyYW0gY29udGV4dCBB
cmJpdHJhcnkgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCBpbnRvIGlzQWNjZXB0YWJsZS4KKyAqIEBw
YXJhbSBwRXJyb3JDb2RlIEFuIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3Qg
YmUgPGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAoaGFuZGxlKSB0byBh
IGRhdGEgbWVtb3J5IG9iamVjdCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAqICAgICAgICAgaWYg
YW4gZXJyb3Igb2NjdXJzLiBDYWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPgorICog
ICAgICAgICB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4KKyAqIEBzdGFibGUg
SUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRhdGFfb3Bl
bkNob2ljZShjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpu
YW1lLAorICAgICAgICAgICAgICAgICBVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSAqaXNBY2NlcHRh
YmxlLCB2b2lkICpjb250ZXh0LAorICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKTsKKworLyoqCisgKiBDbG9zZSB0aGUgZGF0YSBtZW1vcnkuCisgKiBUaGlzIGZ1bmN0aW9u
IG11c3QgYmUgY2FsbGVkIHRvIGFsbG93IHRoZSBzeXN0ZW0gdG8KKyAqIHJlbGVhc2UgcmVzb3Vy
Y2VzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRhdGEgbWVtb3J5LgorICogQHBhcmFtIHBEYXRhIFRo
ZSBwb2ludGVyIHRvIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8K
K1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9jbG9zZShVRGF0YU1lbW9yeSAqcERhdGEp
OworCisjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoq
CisgKiBcY2xhc3MgTG9jYWxVRGF0YU1lbW9yeVBvaW50ZXIKKyAqICJTbWFydCBwb2ludGVyIiBj
bGFzcywgY2xvc2VzIGEgVURhdGFNZW1vcnkgdmlhIHVkYXRhX2Nsb3NlKCkuCisgKiBGb3IgbW9z
dCBtZXRob2RzIHNlZSB0aGUgTG9jYWxQb2ludGVyQmFzZSBiYXNlIGNsYXNzLgorICoKKyAqIEBz
ZWUgTG9jYWxQb2ludGVyQmFzZQorICogQHNlZSBMb2NhbFBvaW50ZXIKKyAqIEBzdGFibGUgSUNV
IDQuNAorICovCitVX0RFRklORV9MT0NBTF9PUEVOX1BPSU5URVIoTG9jYWxVRGF0YU1lbW9yeVBv
aW50ZXIsIFVEYXRhTWVtb3J5LCB1ZGF0YV9jbG9zZSk7CisKK1VfTkFNRVNQQUNFX0VORAorCisj
ZW5kaWYKKworLyoqCisgKiBHZXQgdGhlIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhIGluc2lk
ZSB0aGUgZGF0YSBtZW1vcnkuCisgKiBUaGUgZGF0YSBpcyByZWFkLW9ubHkuCisgKgorICogSUNV
IGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25l
ZC4KKyAqCisgKiBAcGFyYW0gcERhdGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBtZW1vcnkgb2JqZWN0
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgY29uc3Qgdm9pZCAqIFVfRVhQT1JU
MgordWRhdGFfZ2V0TWVtb3J5KFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKy8qKgorICogR2V0IHRo
ZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkYXRhIG1lbW9yeSBoZWFkZXIuCisgKiBUaGlzIGFsbG93
cyB0byBnZXQgYWNjZXNzIHRvIHRoZSBoZWFkZXIgY29udGFpbmluZworICogcGxhdGZvcm0gZGF0
YSBwcm9wZXJ0aWVzIGV0Yy4gd2hpY2ggaXMgbm90IHBhcnQgb2YKKyAqIHRoZSBkYXRhIGl0c2Vs
ZiBhbmQgY2FuIHRoZXJlZm9yZSBub3QgYmUgYWNjZXNzZWQKKyAqIHZpYSB0aGUgcG9pbnRlciB0
aGF0IDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPiByZXR1cm5zLgorICoKKyAqIEBwYXJh
bSBwRGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QKKyAqIEBwYXJhbSBwSW5m
byBwb2ludGVyIHRvIGEgVURhdGFJbmZvIG9iamVjdDsKKyAqICAgICAgICAgICAgICBpdHMgPGNv
ZGU+c2l6ZTwvY29kZT4gZmllbGQgbXVzdCBiZSBzZXQgY29ycmVjdGx5LAorICogICAgICAgICAg
ICAgIHR5cGljYWxseSB0byA8Y29kZT5zaXplb2YoVURhdGFJbmZvKTwvY29kZT4uCisgKgorICog
PGNvZGU+KnBJbmZvPC9jb2RlPiB3aWxsIGJlIGZpbGxlZCB3aXRoIHRoZSBVRGF0YUluZm8gc3Ry
dWN0dXJlCisgKiBpbiB0aGUgZGF0YSBtZW1vcnkgb2JqZWN0LiBJZiB0aGlzIHN0cnVjdHVyZSBp
cyBzbWFsbGVyIHRoYW4KKyAqIDxjb2RlPnBJbmZvLT5zaXplPC9jb2RlPiwgdGhlbiB0aGUgPGNv
ZGU+c2l6ZTwvY29kZT4gd2lsbCBiZQorICogYWRqdXN0ZWQgYW5kIG9ubHkgcGFydCBvZiB0aGUg
c3RydWN0dXJlIHdpbGwgYmUgZmlsbGVkLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RB
QkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9nZXRJbmZvKFVEYXRhTWVtb3J5ICpwRGF0YSwgVURh
dGFJbmZvICpwSW5mbyk7CisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgbm9y
bWFsIElDVSBkYXRhIGxvYWRpbmcgcHJvY2VzcyBhbmQKKyAqIGFsbG93cyB5b3UgdG8gZm9yY2Ug
SUNVJ3Mgc3lzdGVtIGRhdGEgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNpZmllZAorICogYXJl
YSBpbiBtZW1vcnkuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQs
IGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNlcmd1aWRlLmljdS1w
cm9qZWN0Lm9yZy9pY3VkYXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlzIGRhdGEgaXMgdGhh
dCBvZiB0aGUgaWN1IGNvbW1vbiBkYXRhIGZpbGUsIGFzIGlzCisgKiBnZW5lcmF0ZWQgYnkgdGhl
IHBrZ2RhdGEgdG9vbCB3aXRoIG1vZGU9Y29tbW9uIG9yIG1vZGU9ZGxsLgorICogWW91IGNhbiBy
ZWFkIGluIGEgd2hvbGUgY29tbW9uIG1vZGUgZmlsZSBhbmQgcGFzcyB0aGUgYWRkcmVzcyB0byB0
aGUgc3RhcnQgb2YgdGhlCisgKiBkYXRhLCBvciAod2l0aCB0aGUgYXBwcm9wcmlhdGUgbGluayBv
cHRpb25zKSBwYXNzIGluIHRoZSBwb2ludGVyIHRvCisgKiB0aGUgZGF0YSB0aGF0IGhhcyBiZWVu
IGxvYWRlZCBmcm9tIGEgZGxsIGJ5IHRoZSBvcGVyYXRpbmcgc3lzdGVtLAorICogYXMgc2hvd24g
aW4gdGhpcyBjb2RlOgorICoKKyAqICAgICAgIGV4dGVybiBjb25zdCBjaGFyIFVfSU1QT1JUIFVf
SUNVREFUQV9FTlRSWV9QT0lOVCBbXTsKKyAqICAgICAgICAvLyBVX0lDVURBVEFfRU5UUllfUE9J
TlQgaXMgc2FtZSBhcyBlbnRyeSBwb2ludCBzcGVjaWZpZWQgdG8gcGtnZGF0YSB0b29sCisgKiAg
ICAgICBVRXJyb3JDb2RlICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgKgorICogICAgICAgdWRh
dGFfc2V0Q29tbW9uRGF0YSgmVV9JQ1VEQVRBX0VOVFJZX1BPSU5ULCAmc3RhdHVzKTsKKyAqCisg
KiBJdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgZGVjbGFyYXRpb24gYmUgYXMgYWJvdmUuIFRoZSBl
bnRyeSBwb2ludAorICogbXVzdCBub3QgYmUgZGVjbGFyZWQgYXMgYW4gZXh0ZXJuIHZvaWQqLgor
ICoKKyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQuNCwgaXQgaXMgcG9zc2libGUgdG8gc2V0IHNldmVy
YWwgZGF0YSBwYWNrYWdlcywKKyAqIG9uZSBwZXIgY2FsbCB0byB0aGlzIGZ1bmN0aW9uLgorICog
dWRhdGFfb3BlbigpIHdpbGwgbG9vayBmb3IgZGF0YSBpbiB0aGUgbXVsdGlwbGUgZGF0YSBwYWNr
YWdlcyBpbiB0aGUgb3JkZXIKKyAqIGluIHdoaWNoIHRoZXkgd2VyZSBzZXQuCisgKiBUaGUgcG9z
aXRpb24gb2YgdGhlIGxpbmtlZC1pbiBvciBkZWZhdWx0LW5hbWUgSUNVIC5kYXRhIHBhY2thZ2Ug
aW4gdGhlCisgKiBzZWFyY2ggbGlzdCBkZXBlbmRzIG9uIHdoZW4gdGhlIGZpcnN0IGRhdGEgaXRl
bSBpcyBsb2FkZWQgdGhhdCBpcyBub3QgY29udGFpbmVkCisgKiBpbiB0aGUgYWxyZWFkeSBleHBs
aWNpdGx5IHNldCBwYWNrYWdlcy4KKyAqIElmIGRhdGEgd2FzIGxvYWRlZCBpbXBsaWNpdGx5IGJl
Zm9yZSB0aGUgZmlyc3QgY2FsbCB0byB0aGlzIGZ1bmN0aW9uCisgKiAoZm9yIGV4YW1wbGUsIHZp
YSBvcGVuaW5nIGEgY29udmVydGVyLCBjb25zdHJ1Y3RpbmcgYSBVbmljb2RlU3RyaW5nCisgKiBm
cm9tIGRlZmF1bHQtY29kZXBhZ2UgZGF0YSwgdXNpbmcgZm9ybWF0dGluZyBvciBjb2xsYXRpb24g
QVBJcywgZXRjLiksCisgKiB0aGVuIHRoZSBkZWZhdWx0IGRhdGEgd2lsbCBiZSBmaXJzdCBpbiB0
aGUgbGlzdC4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGhhcyBubyBlZmZlY3Qgb24gYXBwbGljYXRp
b24gKG5vbiBJQ1UpIGRhdGEuICBTZWUgdWRhdGFfc2V0QXBwRGF0YSgpCisgKiBmb3Igc2ltaWxh
ciBmdW5jdGlvbmFsaXR5IGZvciBhcHBsaWNhdGlvbiBkYXRhLgorICoKKyAqIEBwYXJhbSBkYXRh
IHBvaW50ZXIgdG8gSUNVIGNvbW1vbiBkYXRhCisgKiBAcGFyYW0gZXJyIG91dGdvaW5nIGVycm9y
IHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9VTlNVUFBPUlRFRF9FUlJP
UjwvY29kZT4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JU
MgordWRhdGFfc2V0Q29tbW9uRGF0YShjb25zdCB2b2lkICpkYXRhLCBVRXJyb3JDb2RlICplcnIp
OworCisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgbm9ybWFsIElDVSBkYXRh
IGxvYWRpbmcgcHJvY2VzcyBmb3IgYXBwbGljYXRpb24tc3BlY2lmaWMKKyAqIGRhdGEgYW5kIGFs
bG93cyB5b3UgdG8gZm9yY2UgdGhlIGl0IHRvIGNvbWUgb3V0IG9mIGEgdXNlci1zcGVjaWZpZWQK
KyAqIHBvaW50ZXIuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQs
IGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNlcmd1aWRlLmljdS1w
cm9qZWN0Lm9yZy9pY3VkYXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlzIGRhdGEgaXMgdGhh
dCBvZiB0aGUgaWN1IGNvbW1vbiBkYXRhIGZpbGUsIGxpa2UgJ2ljdWR0MjZsLmRhdCcKKyAqIG9y
IHRoZSBjb3JyZXNwb25kaW5nIHNoYXJlZCBsaWJyYXJ5IChETEwpIGZpbGUuCisgKiBUaGUgYXBw
bGljYXRpb24gbXVzdCByZWFkIGluIG9yIG90aGVyd2lzZSBjb25zdHJ1Y3QgYW4gaW1hZ2Ugb2Yg
dGhlIGRhdGEgYW5kIHRoZW4KKyAqIHBhc3MgdGhlIGFkZHJlc3Mgb2YgaXQgdG8gdGhpcyBmdW5j
dGlvbi4KKyAqCisgKgorICogV2FybmluZzogIHNldEFwcERhdGEgd2lsbCBzZXQgYSBVX1VTSU5H
X0RFRkFVTFRfV0FSTklORyBjb2RlIGlmCisgKiAgICAgICAgICAgZGF0YSB3aXRoIHRoZSBzcGVj
aWZlZCBwYXRoIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBvcGVuZWQsIG9yCisgKiAgICAgICAgICAg
aWYgc2V0QXBwRGF0YSB3aXRoIHRoZSBzYW1lIHBhdGggaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQu
CisgKiAgICAgICAgICAgQW55IHN1Y2ggY2FsbHMgdG8gc2V0QXBwRGF0YSB3aWxsIGhhdmUgbm8g
ZWZmZWN0LgorICoKKyAqCisgKiBAcGFyYW0gcGFja2FnZU5hbWUgdGhlIHBhY2thZ2UgbmFtZSBi
eSB3aGljaCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWZlcgorICogICAgICAgICAgICAgdG8gKG9w
ZW4pIHRoaXMgZGF0YQorICogQHBhcmFtIGRhdGEgcG9pbnRlciB0byB0aGUgZGF0YQorICogQHBh
cmFtIGVyciBvdXRnb2luZyBlcnJvciBzdGF0dXMgPGNvZGU+VV9VU0lOR19ERUZBVUxUX1dBUk5J
TkcsIFVfVU5TVVBQT1JURURfRVJST1I8L2NvZGU+CisgKiBAc2VlIHVkYXRhX3NldENvbW1vbkRh
dGEKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWRh
dGFfc2V0QXBwRGF0YShjb25zdCBjaGFyICpwYWNrYWdlTmFtZSwgY29uc3Qgdm9pZCAqZGF0YSwg
VUVycm9yQ29kZSAqZXJyKTsKKworLyoqCisgKiBQb3NzaWJsZSBzZXR0aW5ncyBmb3IgdWRhdGFf
c2V0RmlsZUFjY2VzcygpCisgKiBAc2VlIHVkYXRhX3NldEZpbGVBY2Nlc3MKKyAqIEBzdGFibGUg
SUNVIDMuNAorICovCit0eXBlZGVmIGVudW0gVURhdGFGaWxlQWNjZXNzIHsKKyAgICAvKiogSUNV
IGxvb2tzIGZvciBkYXRhIGluIHNpbmdsZSBmaWxlcyBmaXJzdCwgdGhlbiBpbiBwYWNrYWdlcy4g
KGRlZmF1bHQpIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX0ZJTEVTX0ZJUlNULAorICAg
IC8qKiBBbiBhbGlhcyBmb3IgdGhlIGRlZmF1bHQgYWNjZXNzIG1vZGUuIEBzdGFibGUgSUNVIDMu
NCAqLworICAgIFVEQVRBX0RFRkFVTFRfQUNDRVNTID0gVURBVEFfRklMRVNfRklSU1QsCisgICAg
LyoqIElDVSBvbmx5IGxvYWRzIGRhdGEgZnJvbSBwYWNrYWdlcywgbm90IGZyb20gc2luZ2xlIGZp
bGVzLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9PTkxZX1BBQ0tBR0VTLAorICAgIC8q
KiBJQ1UgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzIGZpcnN0LCBhbmQgb25seSBmcm9tIHNpbmds
ZSBmaWxlcworICAgICAgICBpZiB0aGUgZGF0YSBjYW5ub3QgYmUgZm91bmQgaW4gYSBwYWNrYWdl
LiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9QQUNLQUdFU19GSVJTVCwKKyAgICAvKiog
SUNVIGRvZXMgbm90IGFjY2VzcyB0aGUgZmlsZSBzeXN0ZW0gZm9yIGRhdGEgbG9hZGluZy4gQHN0
YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfTk9fRklMRVMsCisgICAgLyoqIE51bWJlciBvZiBy
ZWFsIFVEYXRhRmlsZUFjY2VzcyB2YWx1ZXMuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRB
X0ZJTEVfQUNDRVNTX0NPVU5UCit9IFVEYXRhRmlsZUFjY2VzczsKKworLyoqCisgKiBUaGlzIGZ1
bmN0aW9uIG1heSBiZSBjYWxsZWQgdG8gY29udHJvbCBob3cgSUNVIGxvYWRzIGRhdGEuIEl0IG11
c3QgYmUgY2FsbGVkCisgKiBiZWZvcmUgYW55IElDVSBkYXRhIGlzIGxvYWRlZCwgaW5jbHVkaW5n
IGFwcGxpY2F0aW9uIGRhdGEgbG9hZGVkIHdpdGggCisgKiB1cmVzL1Jlc291cmNlQnVuZGxlIG9y
IHVkYXRhIEFQSXMuIFRoaXMgZnVuY3Rpb24gaXMgbm90IG11bHRpdGhyZWFkIHNhZmUuICAKKyAq
IFRoZSByZXN1bHRzIG9mIGNhbGxpbmcgaXQgd2hpbGUgb3RoZXIgdGhyZWFkcyBhcmUgbG9hZGlu
ZyBkYXRhIGFyZSB1bmRlZmluZWQuCisgKiBAcGFyYW0gYWNjZXNzIFRoZSB0eXBlIG9mIGZpbGUg
YWNjZXNzIHRvIGJlIHVzZWQKKyAqIEBwYXJhbSBzdGF0dXMgRXJyb3IgY29kZS4KKyAqIEBzZWUg
VURhdGFGaWxlQWNjZXNzCisgKiBAc3RhYmxlIElDVSAzLjQgCisgKi8KK1VfU1RBQkxFIHZvaWQg
VV9FWFBPUlQyCit1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEYXRhRmlsZUFjY2VzcyBhY2Nlc3MsIFVF
cnJvckNvZGUgKnN0YXR1cyk7CisKK1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9pY3UvdW5pY29kZS91bWlzYy5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91
bWlzYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ4NTQ1MWZjNzY3YzA1ODM1ZjZjMTVmNTY2ZjM1NjJlMmQ0YWY4
MzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmgKQEAg
LTAsMCArMSw2MCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTkt
MjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFu
ZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUg
bmFtZTogIHVtaXNjLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAg
IDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5
b2N0MTUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBV
TUlTQ19ICisjZGVmaW5lIFVNSVNDX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisK
Ky8qKgorICogXGZpbGUKKyAqIFxicmllZiAgQyBBUEk6bWlzYyBkZWZpbml0aW9ucyAKKyAqCisg
KiAgVGhpcyBmaWxlIGNvbnRhaW5zIG1pc2NlbGxhbmVvdXMgZGVmaW5pdGlvbnMgZm9yIHRoZSBD
IEFQSXMuIAorICovCisKK1VfQ0RFQ0xfQkVHSU4KKworLyoqIEEgc3RydWN0IHJlcHJlc2VudGlu
ZyBhIHJhbmdlIG9mIHRleHQgY29udGFpbmluZyBhIHNwZWNpZmljIGZpZWxkIAorICogIEBzdGFi
bGUgSUNVIDIuMAorICovCit0eXBlZGVmIHN0cnVjdCBVRmllbGRQb3NpdGlvbiB7CisgIC8qKgor
ICAgKiBUaGUgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBm
aWVsZDsKKyAgLyoqCisgICAqIFRoZSBzdGFydCBvZiB0aGUgdGV4dCByYW5nZSBjb250YWluaW5n
IGZpZWxkIAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgYmVnaW5JbmRl
eDsKKyAgLyoqIAorICAgKiBUaGUgbGltaXQgb2YgdGhlIHRleHQgcmFuZ2UgY29udGFpbmluZyBm
aWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90IGVuZEluZGV4Owor
fSBVRmllbGRQb3NpdGlvbjsKKworI2lmICFVQ09ORklHX05PX1NFUlZJQ0UKKy8qKgorICogT3Bh
cXVlIHR5cGUgcmV0dXJuZWQgYnkgcmVnaXN0ZXJJbnN0YW5jZSwgcmVnaXN0ZXJGYWN0b3J5IGFu
ZCB1bnJlZ2lzdGVyIGZvciBzZXJ2aWNlIHJlZ2lzdHJhdGlvbi4KKyAqIEBzdGFibGUgSUNVIDIu
NgorICovCit0eXBlZGVmIGNvbnN0IHZvaWQqIFVSZWdpc3RyeUtleTsKKyNlbmRpZgorCitVX0NE
RUNMX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk0YTMwMjdjNDgwZGJkNjE4NGYxNzliNmM3NWYyN2Q3M2U4MjA2ODUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0wLDAgKzEsODcgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIworIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIyAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisjICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisjICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
IyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCitCUkVBS0lOR19SVUxFU19GSUxFUyA9IFwKKyAgICBCcmVha2luZ1J1bGVz
L0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuYnJrCisKK0JSRUFLSU5HX1JVTEVTX0RFRklOSVRJ
T05TID0gXAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNw
cCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCBcCisg
ICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBcCisgICAg
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgXAorICAg
IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgXAorICAg
IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgXAor
ICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgXAor
ICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAK
KworYWxsIDogJChCUkVBS0lOR19SVUxFU19GSUxFUykgJChCUkVBS0lOR19SVUxFU19ERUZJTklU
SU9OUykKKworQnJlYWtpbmdSdWxlcy8lLmJyayA6ICUucHAKKwkuL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzLyQoR0VOQlJLKSAtYyAtciAkPCAtbyAkQAorCitCcmVha2luZ1J1bGVzL0N1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0CisJZWNobyAiI2luY2x1ZGUgXCJjb25m
aWcuaFwiIiA+ICRACisJZWNobyAiI2luY2x1ZGUgPHVuaWNvZGUvdXZlcm51bS5oPiIgPj4gJEAK
KwllY2hvICIjZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8
fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTEwMCkpIiA+PiAkQAorCWVjaG8gIiNkZWZpbmUgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyAo
KFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05V
TSA+PSA5KSkiID4+ICRACisJZWNobyAibmFtZXNwYWNlIFdURiB7IiA+PiAkQAorCWVjaG8gImNv
bnN0IGNoYXIqIGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyA9ICIgPj4gJEAKKwlzZWQgJ3Mv
XiMgLiovLycgJDwgPiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudG1wCisJc2VkICdzL15c
KC4qXCk7LyJcMTsiLycgQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnRtcCA+IEN1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlczIudG1wCisJc2VkICdzLyAjIC8gXC9cLyAvJyBDdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMyLnRtcCA+IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50bXAK
KwlzZWQgJ3MvXFwvXFxcXC9nJyBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudG1wID4+ICRA
CisJZWNobyAiOyIgPj4gJEAKKwllY2hvICJ9IiA+PiAkQAorCXJtIEN1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy50bXAgQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzMi50bXAKKworQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUuY3BwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCWVjaG8gIiNpbmNsdWRlIFwiY29u
ZmlnLmhcIiIgPiAkQAorCWVjaG8gIiNpbmNsdWRlIDx1bmljb2RlL3V2ZXJudW0uaD4iID4+ICRA
CisJZWNobyAiI2RlZmluZSBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElPUykg
fHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDExMDApKSIgPj4gJEAKKwllY2hvICIjZGVmaW5lIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMg
KChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9O
VU0gPj0gOSkpIiA+PiAkQAorCWVjaG8gIm5hbWVzcGFjZSBXVEYgeyIgPj4gJEAKKwllY2hvICJj
b25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvciQqUnVsZXMgPSAiID4+ICRACisJY2F0ICQ/IHwg
c2VkICdzL15cKC4qXCk7LyJcMTsiLycgPiAkKi50bXAKKwlzZWQgJ3MvICMgLyBcL1wvIC8nICQq
LnRtcCA+ICQqMi50bXAKKwlzZWQgJ3MvXFwvXFxcXC9nJyAkKjIudG1wID4+ICRACisJZWNobyAi
OyIgPj4gJEAKKwllY2hvICJ9IiA+PiAkQAorCXJtICQqLnRtcCAkKjIudG1wCisKK0N1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy5wcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKwktdW5pZmRlZiAtREFERElUSU9OQUxfRU1P
SklfU1VQUE9SVD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCkgLURIQVZFX0VYVFJBX0lDVV9O
QU1FRF9TRVRTPSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUykgLW8gJEAgJDwKKworTGluZUJy
ZWFrSXRlcmF0b3IlLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvckVwaWxvZ3VlLnR4dAorCS1jYXQgJD8gfCB1bmlmZGVmIC1EQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhUUkFfSUNVX05B
TUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMWZhZDg0NzEwMDE0OTNkN2JmNGI2ZWE2
ZDUyOTgwODgwZDAyNThmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKQEAgLTAsMCArMSwx
NTEgQEAKKyMgVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0
b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBv
cy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3NvdXJjZS9kYXRhL2Jya2l0ci8+LgorIyBUaGUg
bWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93
OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJr
fV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRd
JyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOworIyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50
IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQy
KTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0
ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5
MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3Zp
bmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgorIyAq
IEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4KKworJENSICAgICAg
PSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07CiskTEYgICAgICA9IFtccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsKKyRDb250cm9sID0gW1xwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9pY2VNYXJrcyA9IFtcdUZGOUVcdUZGOUZdOyAjIEph
cGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCiskRXh0ZW5kICA9IFtccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSAkVm9pY2VNYXJrcyAtIFtcdTBFMzAgXHUw
RTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07CiskU3BhY2luZ01hcmsgPSBbW1xwe0dlbmVyYWxf
Q2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOworJEwgICAgICAgPSBbXHB7R3Jh
cGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsKKyRWICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
VH1dOworJExWICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07CiskTFZU
ICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07CiskSGluMCAgICA9IFtc
dTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQorJEhpblYgICAgPSBc
dTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQorJEhpbjEgICAgPSBbXHUwOTE1LVx1MDkz
OV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCiskQmVuMCAgICA9IFtcdTA5ODUtXHUw
OUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4uLixIYQorJEJlblYgICAgPSBcdTA5Q0Q7ICMgQmVu
Z2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAgPSBbXHUwOTk1LVx1MDlCOV07ICMgQmVuZ2FsaSBM
ZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9IFtcdTBBMDUtXHUwQTM5XTsgIyBHdXJtdWtoaSBM
ZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0gXHUwQTREOyAjIEd1cm11a2hpIFNpZ24gVmlyYW1h
CiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhh
CiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEK
KyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFyYXRpIFNpZ24gVmlyYW1hCiskR3VqMSAgICA9IFtc
dTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCiskT3JpMCAgICA9IFtc
dTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgQSwuLi4sSGEKKyRPcmlWICAgID0gXHUwQjRE
OyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3JpMSAgICA9IFtcdTBCMTUtXHUwQjM5XTsgIyBPcml5
YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAgICA9IFtcdTBDMDUtXHUwQzM5XTsgIyBUZWx1Z3Ug
TGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9IFx1MEM0RDsgIyBUZWx1Z3UgU2lnbiBWaXJhbWEK
KyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCisk
S2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4uLixIYQorJEth
blYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBTaWduIFZpcmFtYQorJEthbjEgICAgPSBbXHUwQzk1
LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKKyRNYWwwICAgID0gW1x1MEQwNS1c
dTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEgCiskTWFsViAgICA9IFx1MEQ0RDsg
IyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRNYWwxICAgID0gW1x1MEQxNS1cdTBEMzldOyAjIE1h
bGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRSSSAgICAgID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFG
Rl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycworJFpXSiAgICAgPSBcdTIwMEQ7ICMgWmVy
byB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9IFtcdUZFMEZdOyAjIEVtb2ppLXN0eWxlIHZhcmlh
dGlvbiBzZWxlY3RvcgorCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRW1v
amlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBcVTAwMDFGMzA4IFxVMDAw
MUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAwMUYzQ0MgXFUwMDAxRjNGMyBcVTAwMDFG
NDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NkYgXFUwMDAxRjQ3
MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4MS1cVTAwMDFGNDgyIFxVMDAwMUY0ODYt
XFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUgXFUwMDAxRjVFOCBcVTAwMDFGNjQ1LVxV
MDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxVMDAwMUY2NEUgXFUwMDAxRjZBMyBcVTAw
MDFGNkI0LVxVMDAwMUY2QjZdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVl
bmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUyNzBEIFxV
MDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EgXFUwMDAxRjNDQiBcVTAw
MDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAx
RjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0
ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU3NSBcVTAwMDFGNTkw
IFxVMDAwMUY1OTUgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1c
VTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzAgXFUw
MDAxRjkxOF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2Vs
c2UKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNzY0IFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBc
VTAwMDFGNDhCXTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAg
ICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI3MEEtXHUyNzBDIFxVMDAwMUYzODUgXFUwMDAx
RjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcgXFUwMDAxRjNDQSBcVTAwMDFGNDQyLVxVMDAwMUY0
NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZF
LVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1c
VTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUw
MDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAw
MUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbmRp
ZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUwMDAxRjNGRl07ICMgRml0enBhdHJpY2sg
bW9kaWZpZXJzCishIWNoYWluOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAg
ICAhIVJJTm9DaGFpbjsKKworI2VuZGlmCisKKyEhZm9yd2FyZDsKKyRDUiAkTEY7CiskTCAoJEwg
fCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8ICRWKSAoJFYgfCAkVCk7CisoJExWVCB8ICRUKSAk
VDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJICRSSSAkRXh0ZW5k
KiAvICRSSTsKKyAgICAkUkkgJFJJICRFeHRlbmQqOworICAgIFteJENvbnRyb2wgJENSICRMRl0g
JEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKworI2Vsc2UK
KworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAk
TEZdICRTcGFjaW5nTWFyazsKKyAgICAkUkkgJFJJIC8gJFJJOworICAgICRSSSAkUkk7CisKKyNl
bmRpZgorCiskSGluMCAkSGluViAkSGluMTsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkK
KyRCZW4wICRCZW5WICRCZW4xOyAjIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQorJFBhbjAgJFBh
blYgJFBhbjE7ICMgR3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQorJEd1ajAgJEd1alYgJEd1ajE7
ICMgR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQorJE9yaTAgJE9yaVYgJE9yaTE7ICMgT3JpeWEg
VmlyYW1hIChmb3J3YXJkKQorJFRlbDAgJFRlbFYgJFRlbDE7ICMgVGVsdWd1IFZpcmFtYSAoZm9y
d2FyZCkKKyRLYW4wICRLYW5WICRLYW4xOyAjIEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQorJE1h
bDAgJE1hbFYgJE1hbDE7ICMgTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKKyRaV0ogJEVtb2pp
Rm9yU2VxczsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaUZvck1v
ZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBl
bW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBt
b2RpZmllcgorISFyZXZlcnNlOworJExGICRDUjsKKygkTCB8ICRWIHwgJExWIHwgJExWVCkgJEw7
CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRUICgkTFZUIHwgJFQpOworCisjaWYgQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRS
STsKKyAgICAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQgICAgICBbXiRDb250cm9sICRD
UiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOworCisjZWxzZQor
CisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFNwYWNpbmdNYXJr
IFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFJJICRSSSAvICRSSSAkUkk7CisgICAgJFJJICRS
STsKKworI2VuZGlmCisKKyRIaW4xICRIaW5WICRIaW4wOyAjIERldmFuYWdhcmkgVmlyYW1hIChi
YWNrd2FyZCkKKyRCZW4xICRCZW5WICRCZW4wOyAjIEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkK
KyRQYW4xICRQYW5WICRQYW4wOyAjIEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCiskR3VqMSAk
R3VqViAkR3VqMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJE9yaTEgJE9yaVYgJE9y
aTA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRUZWwxICRUZWxWICRUZWwwOyAjIFRl
bHVndSBWaXJhbWEgKGJhY2t3YXJkKQorJEthbjEgJEthblYgJEthbjA7ICMgS2FubmFkYSBWaXJh
bWEgKGJhY2t3YXJkKQorJE1hbDEgJE1hbFYgJE1hbDA7ICMgTWFsYXlhbGFtIFZpcmFtYSAoYmFj
a3dhcmQpCiskRW1vamlGb3JTZXFzICRaV0o7ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2Vx
dWVuY2VzCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsgIyBEb250IGJyZWFr
IGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9y
KSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAorCisgICAgISFzYWZlX3JldmVyc2U7CisgICAgJFJJICRSSSs7CisgICAgWyRFbW9qaVZhciAk
RW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKyAgICAkUkkg
JFJJKzsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOworCisjZWxz
ZQorCisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAkRW1v
amlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOworICAgICEhc2FmZV9yZXZlcnNlOwor
ICAgICEhc2FmZV9mb3J3YXJkOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45ZTBjOGE1MWIzYzFjYzBiNzE2ZjJhMzg3MmZiM2IxODEwMGQwZWZiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0wLDAgKzEsMzQ3IEBACiskQUkgPSBbOkxpbmVC
cmVhayA9IEFtYmlndW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07Cisk
QkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxp
bmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlf
QnJlYWs6XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENCID0gWzpMaW5l
QnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1
bmN0dWF0aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1Ag
PSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9
IENhcnJpYWdlX1JldHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAt
ICRFWF9TVUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJB
X0lDVV9OQU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6
XTsKKworI2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNl
bmRpZgorCiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsg
PSBIMjpdOworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsg
PSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElOID0gW1s6TGlu
ZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGluZUJyZWFrID0g
SW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07Cisk
SlYgPSBbOkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYg
PSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xp
bmU6XTsKKyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQURE
XSAtICROU19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxp
bmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3Rm
aXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVt
ZXJpYzpdIC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJ
ID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhf
Q29udGV4dDpdOworJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGlu
ZUJyZWFrID0gU3BhY2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOwor
JFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBV
bmtub3duOl07CiskWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7
CiskRW1vamlWYXIgPSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKwor
ICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYz
MDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0Yz
IFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBc
VTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUw
MDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAw
MUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFG
NkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBa
V0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1c
dTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFG
M0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2
Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEt
XFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxV
MDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAw
MDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAx
RjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVy
cworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAw
MDFGNDY5IFxVMDAwMUY0OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1c
dTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFG
M0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2
Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEt
XFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxV
MDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAw
MDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0
cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAw
MDFGM0ZGXTsKKyRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsK
KyRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07CiskQUxjbSA9ICRBTFBsdXMgJENNKjsK
KyRCQWNtID0gJEJBICRDTSo7CiskQkJjbSA9ICRCQiAkQ00qOworJEIyY20gPSAkQjIgJENNKjsK
KyRDTGNtID0gJENMICRDTSo7CiskQ1BjbSA9ICRDUCAkQ00qOworJEVYY20gPSAkRVggJENNKjsK
KyRHTGNtID0gJEdMICRDTSo7CiskSExjbSA9ICRITCAkQ00qOworJEhZY20gPSAkSFkgJENNKjsK
KyRIMmNtID0gJEgyICRDTSo7CiskSDNjbSA9ICRIMyAkQ00qOworJElEY20gPSAkSUQgJENNKjsK
KyRJTmNtID0gJElOICRDTSo7CiskSVNjbSA9ICRJUyAkQ00qOworJEpMY20gPSAkSkwgJENNKjsK
KyRKVmNtID0gJEpWICRDTSo7CiskSlRjbSA9ICRKVCAkQ00qOworJE5TY20gPSAkTlMgJENNKjsK
KyROVWNtID0gJE5VICRDTSo7CiskT1BjbSA9ICRPUCAkQ00qOworJFBPY20gPSAkUE8gJENNKjsK
KyRQUmNtID0gJFBSICRDTSo7CiskUVVjbSA9ICRRVSAkQ00qOworJFJJY20gPSAkUkkgJENNKjsK
KyRTWWNtID0gJFNZICRDTSo7CiskV0pjbSA9ICRXSiAkQ00qOworCishIWZvcndhcmQ7CiskQ0FO
X0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJENBTlRfQ00gPSBbJFNQICRC
SyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAk
TkwgJFpXICRTUF07CiskQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRX
SiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOworJEFMX0ZPTExPVyA9
IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07CiskTEI0QnJlYWtzID0gWyRCSyAkQ1Ig
JExGICROTF07CiskTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOworJExCOEJyZWFr
cyA9IFskTEI0QnJlYWtzICRaV107CiskTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAt
IFskWlddXTsKKyRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07CiskTEIx
OEJyZWFrcyA9IFskTEI4QnJlYWtzICRTUF07CiskTEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJy
ZWFrcyAtICRDQl07CiskQUxQbHVzICRDTSs7CiskQkEgJENNKzsKKyRCQiAkQ00rOworJEIyICRD
TSs7CiskQ0wgJENNKzsKKyRDUCAkQ00rOworJEVYICRDTSs7CiskR0wgJENNKzsKKyRITCAkQ00r
OworJEhZICRDTSs7CiskSDIgJENNKzsKKyRIMyAkQ00rOworJElEICRDTSs7CiskSU4gJENNKzsK
KyRJUyAkQ00rOworJEpMICRDTSs7CiskSlYgJENNKzsKKyRKVCAkQ00rOworJE5TICRDTSs7Cisk
TlUgJENNKzsKKyRPUCAkQ00rOworJFBPICRDTSs7CiskUFIgJENNKzsKKyRRVSAkQ00rOworJFJJ
ICRDTSs7CiskU1kgJENNKzsKKyRXSiAkQ00rOworJENSICRMRiB7MTAwfTsKKyRMQjROb25CcmVh
a3M/ICRMQjRCcmVha3MgezEwMH07CiskQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsKKyRD
TSsgJExCNEJyZWFrcyB7MTAwfTsKKyRMQjROb25CcmVha3MgWyRTUCAkWlddOworJENBTl9DTSAk
Q00qIFskU1AgJFpXXTsKKyRDTSsgWyRTUCAkWlddOworJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/
ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsKKyRDQU5fQ00gJENNKzsKKyRDTSs7Cisk
Q0FOX0NNICRDTSogJFdKY207CiskTEI4Tm9uQnJlYWtzICRXSmNtOworJENNKyAkV0pjbTsKKyRX
SmNtICRDQU5UX0NNOworJFdKY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTl9DTSAkQ00qOwor
JEdMY20gJENBTlRfQ007CitbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENNKiAk
R0xjbTsKKyRDTSsgR0xjbTsKKyRMQjhOb25CcmVha3MgJENMOworJENBTl9DTSAkQ00qICRDTDsK
KyRDTSsgJENMOworJExCOE5vbkJyZWFrcyAkQ1A7CiskQ0FOX0NNICRDTSogJENQOworJENNKyAk
Q1A7CiskTEI4Tm9uQnJlYWtzICRFWDsKKyRDQU5fQ00gJENNKiAkRVg7CiskQ00rICRFWDsKKyRM
QjhOb25CcmVha3MgJElTOworJENBTl9DTSAkQ00qICRJUzsKKyRDTSsgJElTOworJExCOE5vbkJy
ZWFrcyAkU1k7CiskQ0FOX0NNICRDTSogJFNZOworJENNKyAkU1k7CiskT1BjbSAkU1AqICRDQU5f
Q00gJENNKjsKKyRPUGNtICRTUCogJENBTlRfQ007CiskT1BjbSAkU1ArICRDTSsgJEFMX0ZPTExP
Vz87CiskUVVjbSAkU1AqICRPUGNtOworKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207CiskQjJj
bSAkU1AqICRCMmNtOworJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsKKyRDTSsgJFFVY207Cisk
UVVjbSAuPzsKKyRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7CiskTEIyME5vbkJyZWFrcyAkQ00q
ICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAKKyRCQmNtIFteJENCXTsKKyRCQmNtICRMQjIwTm9u
QnJlYWtzICRDTSo7CiskSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsKKyRTWWNtICRITGNt
OworKCRBTGNtIHwgJEhMY20pICRJTmNtOworJENNKyAkSU5jbTsKKyRFWGNtICRJTmNtOworJElE
Y20gJElOY207CiskSU5jbSAkSU5jbTsKKyROVWNtICRJTmNtOworJElEY20gJFBPY207CiskQUxj
bSAkTlVjbTsKKyRITGNtICROVWNtOworJENNKyAkTlVjbTsKKyROVWNtICRBTGNtOworJE5VY20g
JEhMY207CiskUFJjbSAkSURjbTsKKyRQUmNtICgkQUxjbSB8ICRITGNtKTsKKyRQT2NtICgkQUxj
bSB8ICRITGNtKTsKKygkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5V
Y20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/Owor
JEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkSlZjbSB8ICRIMmNtKSAo
JEpWY20gfCAkSlRjbSk7CisoJEpUY20gfCAkSDNjbSkgJEpUY207CisoJEpMY20gfCAkSlZjbSB8
ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwg
JEgyY20gfCAkSDNjbSkgJFBPY207CiskUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgy
Y20gfCAkSDNjbSk7CisoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOworJENNKyAoJEFM
Y20gfCAkSExjbSk7CiskSVNjbSAoJEFMY20gfCAkSExjbSk7CisoJEFMY20gfCAkSExjbSB8ICRO
VWNtKSAkT1BjbTsKKyRDTSsgJE9QY207CiskQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsK
KworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJY20gJFJJY207CisKKyNl
bmRpZgorCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsKKworISFyZXZlcnNl
OworJENNKyAkQUxQbHVzOworJENNKyAkQkE7CiskQ00rICRCQjsKKyRDTSsgJEIyOworJENNKyAk
Q0w7CiskQ00rICRDUDsKKyRDTSsgJEVYOworJENNKyAkR0w7CiskQ00rICRITDsKKyRDTSsgJEhZ
OworJENNKyAkSDI7CiskQ00rICRIMzsKKyRDTSsgJElEOworJENNKyAkSU47CiskQ00rICRJUzsK
KyRDTSsgJEpMOworJENNKyAkSlY7CiskQ00rICRKVDsKKyRDTSsgJE5TOworJENNKyAkTlU7Cisk
Q00rICRPUDsKKyRDTSsgJFBPOworJENNKyAkUFI7CiskQ00rICRRVTsKKworI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKyAkUkk7CisKKyNlbmRpZgorCiskQ00rICRTWTsK
KyRDTSsgJFdKOworJENNKzsKKyRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRa
VyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFsk
QUwge2VvZn1dKSk7CitbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9
XTsKKyRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENNXTsKKyRMQjRCcmVha3MgJENNKyAkQ0FO
X0NNOworJExGICRDUjsKK1skU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOworWyRTUCAkWldd
ICRDTSsgJENBTl9DTTsKKyRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/
ICRFbW9qaUZvclNlcXM7CiskQ00rICRDQU5fQ007CiskQ00qICRXSiAkQ00qICRDQU5fQ007Cisk
Q00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOworJENBTlRfQ00gJENNKiAkV0o7CiskQ00qICRD
QU5fQ00gJENNKiAkV0o7CiskQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRC
QSAkSFldXTsKKyRDQU5UX0NNICRDTSogJEdMOworJENNKiAkQ0FOX0NNICRDTSogJEdMOworJENM
ICRDTSsgJENBTl9DTTsKKyRDUCAkQ00rICRDQU5fQ007CiskRVggJENNKyAkQ0FOX0NNOworJElT
ICRDTSsgJENBTl9DTTsKKyRTWSAkQ00rICRDQU5fQ007CiskQ0wgWyRMQjhOb25CcmVha3MtJENN
XTsKKyRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOworJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07Cisk
SVMgWyRMQjhOb25CcmVha3MtJENNXTsKKyRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOworWyRDTCAk
Q1AgJEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgCiskQ00qICRDQU5fQ00gJFNQKiAk
Q00qICRPUDsKKyRDQU5UX0NNICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XPyAkQ00rICRTUCAk
U1AqICRDTSogJE9QOworJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRDTSog
JEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskU1kgJENNICRTUCsgJE9QOworJENN
KiAkT1AgJFNQKiAkQ00qICRRVTsKKyRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsKKyRD
TSogJEIyICRTUCogJENNKiAkQjI7CiskQ00qICRRVSAkQ00qICRDQU5fQ007CiskQ00qICRRVSAk
TEIxOE5vbkJyZWFrczsKKyRDTSogJENBTl9DTSAkQ00qICRRVTsKKyRDQU5UX0NNICRDTSogJFFV
OworJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOworJENN
KiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICRCQjsKK1teJENC
XSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworJENNKiAkSEwgJENNKiAkU1k7CiskQ00qICRJ
TiAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogJElOICRDTSogJEVYOworJENNKiAkSU4gJENN
KiAkSUQ7CiskQ00qICRJTiAkQ00qICRJTjsKKyRDTSogJElOICRDTSogJE5VOworJENNKiAkUE8g
JENNKiAkSUQ7CiskQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMg
fCAkSEwpICRDTSogJE5VOworJENNKiAkSUQgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhM
KSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOworKCRDTSogKCRQUiB8
ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENN
KiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OworJENNKiAoJEgz
IHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsKKyRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgy
IHwgJEpWKTsKKyRDTSogJEpUICRDTSogKCRIMyB8ICRKVCk7CiskQ00qICRJTiAkQ00qICgkSDMg
fCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpU
IHwgJEpWIHwgJEpMKTsKKyRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAk
UFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRB
TFBsdXMgfCAkSEwpICRDTSogJElTOworJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8ICRO
VSk7CiskQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsKKworI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKiAkUkkgJENNKiAkUkk7CisKKyNlbmRpZgorCisk
RW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsKKworISFzYWZlX2ZvcndhcmQ7Citb
JENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14k
Q00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07CiskZGljdGlv
bmFyeSAkZGljdGlvbmFyeTsKKyAgICAKKyEhc2FmZV9yZXZlcnNlOworJENNKyBbXiRDTSAkQksg
JENSICRMRiAkTkwgJFpXICRTUF07CiskQ00rICRTUCAvIC47CiskU1ArICRDTSogJE9QOworJFNQ
KyAkQ00qICRRVTsKKyRTUCsgJENNKiAoJENMIHwgJENQKTsKKyRTUCsgJENNKiAkQjI7CiskQ00q
ICgkSFkgfCAkQkEpICRDTSogJEhMOworKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsKKygk
Q0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7CiskZGljdGlvbmFyeSAkZGljdGlvbmFy
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclByb2xvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MWY4YWQyNTFiZjU1
MjVkMjkzZjM3MjEyNjQ1NjE2MTE1MGI2MGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0CkBA
IC0wLDAgKzEsMTUgQEAKKyEhY2hhaW47CishIUxCQ01Ob0NoYWluOworISFsb29rQWhlYWRIYXJk
QnJlYWs7CisKKworCisjaWYgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUworCisgICAgJENKID0g
WzpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjpdOworCisjZWxzZQorCisg
ICAgJENKID0gW1x1MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2M1x1MzA4M1x1MzA4
NVx1MzA4N1x1MzA4RVx1MzA5NVx1MzA5Nlx1MzBBMVx1MzBBM1x1MzBBNVx1MzBBN1x1MzBBOVx1
MzBDM1x1MzBFM1x1MzBFNVx1MzBFN1x1MzBFRVx1MzBGNVx1MzBGNlx1MzBGQ1x1MzFGMFx1MzFG
MVx1MzFGMlx1MzFGM1x1MzFGNFx1MzFGNVx1MzFGNlx1MzFGN1x1MzFGOFx1MzFGOVx1MzFGQVx1
MzFGQlx1MzFGQ1x1MzFGRFx1MzFGRVx1MzFGRlx1RkY2N1x1RkY2OFx1RkY2OVx1RkY2QVx1RkY2
Qlx1RkY2Q1x1RkY2RFx1RkY2RVx1RkY2Rlx1RkY3MF07CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0ZjM2YzkwMjA2OWYzYTZjNWNkODAzMzg1NDlm
YjE5OWEwMThhZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKQEAgLTAsMCArMSwxMCBAQAor
JEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOwor
JElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBdOwor
JFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNf
U1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0IGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDEzNDE0NjM1NTY2NmJkMTgxMWRjYzgxNzY3NTczZGEzNDBjMDA4NAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIg
PSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSBbXHUwMDIxXHUwMDNGXHVGRjAxXHVGRjFGXTsK
KyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSBbXHUyMDI1XHUyMDI2XTsKKyRJU19TVUIgPSBbXHUw
MDNBXHUwMDNCXTsKKyROU19TVUIgPSBbXHUyMDNDXHUyMDQ3XHUyMDQ4XHUyMDQ5XHUzMDA1XHUz
MDFDXHUzMDNCXHUzMDlEXHUzMDlFXHUzMEEwXHUzMEZCXHUzMEZEXHUzMEZFXHVGRjFBXHVGRjFC
XHVGRjY1XTsKKyRQT19TVUIgPSBbXHUwMDI1XHUwMEEyXHUwMEIwXHUyMDMwXHUyMDMyXHUyMDMz
XHUyMTAzXHVGRjA1XHVGRkUwXTsKKyRQUl9TVUIgPSBbXHUwMDI0XHUwMEEzXHUwMEE1XHUyMEFD
XHUyMTE2XHVGRjA0XHVGRkUxXHVGRkU1XTsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVYX1NV
QiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOworJE5TX0FERCA9ICcn
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xNjg5Njk5ZDhkMGU0YzM2ODM0YjJmYWUyNTkzMjc3NTdhMjRkMTNmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZU5vbkNKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NVQiA9ICcnOworJEVY
X1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElT
X1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMDVcdTMwM0JcdTMwOURcdTMwOUVcdTMwRkRcdTMw
RkVdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJElOX1NV
QiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNTlmY2YwZjhhOTkyMjEyMGViYjExZGQ1ZGE0NDE3ZjkyNjc2Mjcy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIg
PSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19T
VUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJ
RF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGYzNmM5MDIwNjlmM2E2YzVjZDgwMzM4NTQ5ZmIx
OTlhMDE4YWQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0CkBAIC0wLDAgKzEsMTAg
QEAKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAn
JzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUzMDFDXHUzMEEw
XTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIg
JE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDYzNTU5ZWIxZWQ2NGYyNjNkODllMTYyZDMxNzcx
OTg3Y2RmY2ZiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApAQCAtMCwwICsx
LDEwIEBACiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5f
U1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7Cisk
UFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU5ZmNmMGY4YTk5MjIx
MjBlYmIxMWRkNWRhNDQxN2Y5MjY3NjI3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4
dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VC
ID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9f
U1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTU5ZmNmMGY4YTk5MjIxMjBlYmIxMWRkNWRhNDQxN2Y5MjY3NjI3MgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0gJyc7Cisk
RVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7
CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0g
Jyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvZ2VuYnJrLTUzLTEgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvZ2VuYnJrLTUzLTEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzljY2I2NDliZjhkNWE4YmIxOWM2ODE0NDZiZDBj
M2Q3NDljMWM5OQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjE4MDQKemNtZUhQZVJOeUpsXkB5
cEZlWnUyTTxJfXN5ZyZAMEIoQGIyOyhUfSRDNmFqcEloWjYpUy0+Yz1ea2o/M2w4Xk0xCnpJMj1N
dlpJP1YwZ08+dj5PRFhrMk9TM0tRYWt+Jm14YDZVUW9YfEVrQXEoTjchS0hqV1ZXMk1UPF9uMVNj
anR7ewp6PV9QNWxkLWs2X14qZCl+PyhmYz5KOXFCUG58YmYqKn1wJmokJShPeVNxZDN6RGAxU0Jp
Jk8rZ0N6fWUydjVTeW8KekIjKT1vZXkjSW49a2duZm59MXBJO1ZCWDYqQEYlfG98VnA8Ul8yVEZf
NyhYJkNOTkI0cW1oYjR3YTIzPnQ/SUM+CnpTenBCazchMGFnTig+cG9xbFUhXndCPHNOQyNKPzVW
cCoxMVUoZS0rejZvTkc4SnVaUUI9bjZEM2AzdSVOZVEobQp6UVNpK0FkYXAzXz9IQnE4bGkjen5O
JWw0UmQ+KkNNcj9qWFopIVNnISpLd3M3dVRWZlpQaFZFQ0wzbGpBbT5MYSsKejh3S0Mya0ExXz9f
bWhtJWZITmRERzMkb0ROSHtoO0EhZEVPV3JuYFleYiplMUMoT3RlOSMxXkhFKlNRRWc1Znt9CnpU
KGlDYnB8M31AQVopZk50QmtpLW5tbUUxd149Y2BXX0BrdGhKOV9LNW48ZDVyQGQkJEFIPnt3SlAh
THhkeVdfZQp6JGZzMVN5VWhBITBARkdzeXxrOTtAXzUxX1BpJWQyTG5QI0JRS1A1VG1yK09oYV95
cV5IamBeSUdMTlMqR0NUXz4KeitnRjEyV1ohaHJoT2sqNWhNdjdWb3s7eWkqO2dzX0hTc3wrTW1T
ZD1qZHlsZDhgPE9jc0BgRlMqPyZEWSFAa3UqCnpBS3x+Z1A4d3B2Y2tSakpXbWc7ZUdXIVBnb05K
JXhDVHF+fUtJZThWeVdaKD10clMmQCNrQCt4bjVZP0ZHY2IpYQp6U0okUEN3WlJwUEVvT1lgT0hl
KXh4RWJYe2x1NEFXRnI/REsqWj47Uis5aUhkSERrQTwrX2EzYjkhJjFwcGxneG4KenFJeWJHa21l
I2BYczVsM1k4ZG1McUlMcCE2NEUlTkBefnktOXR0KjtgYDNzM3o7c1BRcUNWRDctQDVnbXNee0gq
CnpfdEM+QUpmRlVRZD5WS3FOVVhTK0N1fDNxQn40c2ZQaUBxJDhUKU1STWczR0ZRNX10dVM+e2tT
KyZCNlVgcl5Kdwp6UjRLRVUhSHs0Qk5wYnRnZjd5MWQ2KTMtKkAyYWNIWUAqRmN7amxlO1oxVXct
dGRGVG1iSj4hZFpySjZ9TzU+VWMKenp0Y1R8WklrMjB6O3M9T01EPkktX1lDbnp0YFFINmN3b2M+
Qk9WeT56PSNKJUpUVCZjNWY2LWJWOGpDPjl2SmIhCnotLThHMFdiT1NHd2J+YlFWJFN4akJRKUdx
d2UzOHtZKU82WUlnSUo4Y3g5SGc/Y2x6fXh3NXVUcE50Q2E5ZXBSTgp6c0ltUTxfRXEqZWBecHZh
LTUrbTskNlZUZl9CanViPnMqT1ooYDBTKj9PZzVuJU1nKitSc149TGpZbHstWTJBMU8KeiFZMjJR
dF4+YiNeY0JkaG9zSG5NUlhzcWwzdX1qJFNOe1RfQldka2UwcHcyMXRPcy1fc19zSjNSPClHYClw
MnM3Cno+YnMheSpSNzArdTVIUC1zLTBCcFBSd342clE3TmxZTzh2S0lDOXF8UzBMNlNUTzl9R3Rf
PXREQDFzPj4hLTNBVQp6XzVPPntocGhjVFBOJm11P1VgQj5MWT4/LXJ3d2h+K01vM3lofEFoZXgk
YFkrJDBkLXI5b3xPYTVFJmwlb0w5WjAKent7Xks+K2lnMisrZlZHYjMzZ1ElJWs0KWAkYkVnI253
RzZNOU14fipWIUt8VFhwPnZ9KDUtellZajViQSFGQTZZCnp2VWFgLXdNJSE4biQxPDszYTtFJCpE
clV+OUR1QXRKRklfITIjflA1OD1gViYoeWplVDlXVlE4YGEjSCstPyo7YQp6PWhsOClMRVV4NTU2
RGBkejdJYFkrQWgpUmR1Wmo+bz9pP0JIYEoyM1B6QFdMK0t+UlFoVzdUZikhTTFTTGc1SFUKelNG
MShWSXhFclVgbVRrR15oZGJIbSM5NC0hbHdASHhYe296WUBaQVRzTWVRJjEpcHpycU9aZWw/SVN0
U01WZlJTCnozcXRQZVRuIXEmVUB2Wmx5Z289dz9yMyp7OD53RTVhY3F7bTl3SXElMVVZdnJxK0hx
fEZ7SURYKDNLYj9DKSlQVgp6b09DXk5EQDVKZWsjcytYWkJJQytqbllPWjVRJm56IzwhdntoQWso
YXI+UztwJEs4b2VudFN+cUIyTVU5RDE5R0YKejZBeklsYm0tUFQoNnpIajFHKTRhe3BXfW1DaDg3
IT95dTI0dyUtMjxMPkZ7JihabW5QXlZaSFpTVCZ1OCl3NXQxCnpTeUVkPnAxNzN7P2ozejROX3tN
V3VCciNsMmk/YyU0VigyaDVlVHktPC0yIyRKI354eVIocmt1SG9LPk9yPEBvKQp6NTF+MFpGO1Z7
eWkxMz9wJlRRUEFzUjBedFYqRGd0Sk1ZTHJgQyhWJHs5UmJPMUdyJnZMb2JCdDdodyg0aUByPiEK
elpFNCt0MF9yfVp5Q0cybzMqTHN7MyRxfXhqZjw2TThAJkRubXJUKzxrZj9BYXpDS09BRGNrdSV7
S1JDIzt5V1UxCnpafGJqdVpGS1NrMl8hfnU7QFRAPWg4PVEpPVlYfDclYVRSWWtNdGk+SjIpKEB1
UUElSzxVJGttQXB9bXZBaHxHewp6RV45Q0E1bENUdl5lUkw4YXZ7QmdPWWNaQChIZTBpSXtoZm5f
MF5mQ2BkcmEmRyltbH5HPStEZk97JFlTWn1jSXwKejBsRF4kWV9DPEJyZFN7UEZ8ZXVFSzVDK1cj
aHZtcS1YdD9YYDF5YmtkWXB0bEhINXlDNns7M1BLQ1ZCN2BXSW5lCnpUNWwhRSpDOXozO3JgSjdm
WT5ZP3NAcVl+b3F5NG1pKj9iTlJ3clZVVGcyM0pXVVFgbnAjT29YcXhCb25xSkMhfQp6UC1kT2Rm
Z3VATkcpYSVDUGhCWUwwPVYrKXlYTVM/U15EYDl6Jj9UPDZgTXMwSHVQRXMzdjVhMm1TcHxUSmJs
YGIKenRSMGhtYH15N2w7cmk1SEFaP3hFNWRFRTh8RUp2Z2BxYW1PZmdKZ3h3MGReZXJ5ZTh6TiVx
eUohZz0hYnNUY0NfCnppZHRGd0xjYjA/dHh3aHQkP2R5fVptQ1pfTE5lWHRGSWhWKFllJSUjV05r
LSU+UGxqcCM/Un15MGhqU3dRI35EVgp6TWpzY1RuczRwZFA1JVVLMjNTUjNxSTc5fUV9eiktS0xC
PD5GV0YrO3h4P2VGUGQkTHpWY2N0Pjg3a0psNEs1REcKemhZWEpvKlc7ZTQhVGlWeE9mNFR6Vnpr
cVFPTE1WKWtEPSY2THM4eFdHOVRITXsxb18mT01BX3d7ZytGX2hFVmtpCnp3Z0VYWVJAUipUUFRQ
Q0BxPGFFVnB4WU5QPi19X1lVYE1sZEpjaXxFJEZqM19KUDFuZSstdlBmNVRTSyMjIyhsMwp6b3pK
MG9rJUkxZTAwJSN8O0ZgfCYpYitNeDRNc2NGbWJCQ0l5fndTbF4lU2E/U2h1KDwpOXVIfnRxKk90
WnJOK3UKemdMOV5yPnA3ekRNTGxmLWc8WnN7PkhJYD5xOEZtPVo1IXxpUChkZzJrNFB4Tnh3M0Rz
WX1yMDJeJWNAYTJFJFlECnpnNkoheEE5cXFPZ1VyZnBtI2dVS2pPY2xOZyphbVFEZktqQFFhXj9l
bk9WYil5cTFofmEzaT0pYUBYX3k9ekpTQgp6YiEjV3xVIXFBeVdtaEx2UytfVlc+R3FATD5Vbntf
amA3NFBYTTx5Ul5Fenp5eHk9dmpBdkM4ISVgISVGNj9Vd3IKemE4JGF4cDJfTHVpMCpgIz08PGtM
YCY2R3B5PmB1TT1jZyp5czJ7PmNqckNjaCY3UWBtczJeako2UCt8NDQocWVpCno/ZD5tKGFAc0oq
JihxWksoPjFNTHo7X1d7ZnduSCRRciM3clpoYERFZHphSCVJKW5xKyl1bTE9M2ZNSVY8JGFFNgp6
I2N5Nyo0RkBGT3BlRW81YVV+WXdHNEdKfCokZWJFeF84MkI9VyQtKjhSYFgzMXAwXkkya2g8ZFRY
ODxjPXV0LWQKenl9SUpwdkAjcjU0cUJnbTYoZGJUKU9IdlBhNFdIQ15TZj5nYGk1PyokTWVuOygx
Qj9mb0o4a20zRmBVXiRxSEpiCnppU2QmU3JMPH1uSVEhI1liODc9UUklI2ReOUcmX0p7OCpiPXw4
emZwal8mWCpmKSVkMXUoWkdCcGMhQX1OLVd+Ywp6dl5xbVNmbGxxKFpteyRmNyVLTTBCQlJeRUJE
P2szWW00a3heMUFPRz1lRnRWKFNaWS0tfCRWKF9uKyh8R1dzO2AKenY/REk8T1h8XiFDejBiZ2lr
eChTO3R9dSFvJnNIWDNTMzJnKW19O3pifCR8eWtDdyk0UzdITmhHMkEhJD9YWmNFCnp6OHdUQzhl
Pj8qU3JmUCtjdUl3OWN3PyghT1V+b05fflNVJS1IOXUpI1hrcnM8N3swNTgqcio8RlQxcnI7JEV1
Sgp6aEhBODlkTkdFUkQxX2thNVZUSGRnUyl4XjxvMXRDN0heRUYkKHtAMyMzQ3Z1O0U1PTBKVTFM
V2hQQm5jdEFxfVgKenRiOU89cERAZHg7SmN7NF9mK3kpezdiWD1td2VnamtLfjlpSHVSKGFiQT10
bm8lYD4/U3I+Ozt3dHcjYmxgSEhUCnoqNExNYDJRfjhiaUJgQVMrZlM2LVM/VFZvZEp0IXlMO0hP
Mkpid0hQcEFSSXQlfitCcl5lTkVWekhfTWtpO0BpPQp6K1NAO3tJeSg+RkhIcXUkbnpNb3tfPjkm
WUoqY0hWS2JsVHd6fExXUGVFcUZqO25KfHwoJnwtbVZoU3o0JWk1MnAKejw3ZDtWS2c4Y2JjMz4x
JTk0bEQoSTZkbDlQalkzcSkkY1VjbGhHYjhaRHslcDg0RjNCTWhjMmEhUnVKYDhud3J4CnopJmRK
Mj0/eEEzdGNKWWZBYikqZ1Z5QztiLSlnVlFUNn5ZVDtlaD5sK0NTVVYxPWRYJEwjK1hBJCpzaGR3
VkxOcgp6Xlo8fjVVYzFgKzNhbmVVdzshRHVVK0xEQVdVcXlHUDsxQX0oRkZIdT1VZVZYSlpaZ2U0
O3UzRy08N3pBOSQtcG4KemhrWUE7O1FaXmo3cVlKUS1QNyZxVUd7bHotfSFkeDVpWj5aSHA2P0Bl
Y3U2ZWJ+IUNCVSgkdkw/KzspPl9JYnVgCnotTGg3KVphRnNaaDxaTmhOYml7VT1BOXA8UiVINikr
b0JXNXpQdEtUaX5aaEpRIzx6Q0A1TmhBNTB0eW9lSTB3Xwp6S1RHV2Y/TV42M1BWZzJKaGcoIW4/
TVNMcylXMmhhXjhrciR4WDkoKEJQWiZSIz1VSWFhISZqNG5lbyFMXiVrYTEKeiFMdzhRUUghPFgz
dXRzfEkme1VZZ0VtbXFaZzctS1RVTypzRUd4bWBzWk1nQEBnWl43TTlmKEY2PyM4QDVwOFRxCnpy
fW93MDB4RGhfb1pZY2s5YUUjLVJXJGZDYi1lLWlVSmQjamg0WnFne1RUSnhZVl41LV9xbUM7bWxO
P2xjeEpWeQp6VSRXMnA+ZHVuRWZKPl9gTzJ6UXBZNTNwd0o5bEU/eksmJTRMYnpAJCZEJUtweSpG
NG9fRjZrRFBHQzw/cUxiJmAKeitRTk51ZGJePi14ezBCfXVLZjwxO0VfS0o3OXcrS0lffilDSWgo
Q0ooZnIoP1phP3g0KipgI1haJkNKSXh8RSlNCnooeG5nYntKVDdWbkNGbDF7ODY0aSNgN01ZS2hF
PFhAJSV9aVp8Mzw9ZEh4ajdmNUchIXA4dHlIUHhFe1cmITZNQAp6SGxGYEcmdEtxcWxJSl5rektp
RihkQV42fEZaMkFqSm0xSWpleEMyPWAybjg0I2BBK2JmME81TF5aWEZjMllDSzIKeiYpPyVZSnIk
LSliKUo4TzlMdWNoa3tqYDBWUEJDaHdXSThBQjQrOVhPaSREME03PlJ2T3dAaiY5dyV4S1E3O2hu
CnowI1I9ZV4peWkqNSVwN3x6OU9vSnMwKj1qUXtOQDNsJkRRYUVoZyZRTUJQWUtEXlklOyFiRUso
aXIkPT49KU96Ywp6T2pJdlhecVNuWGdRI2t2Jjs/NV4ldT0oNmRXfndRNkdpWEJzbVZrWTtJPllr
UHQrdSRpaXhUcWlWQGBgPk0jfm0Keih7aUZkQ2R5MEh5RmBWRkkhTSQ4cVZeRyRBWml5O3w0aF8y
cUpCYkRGSHo0RF4oMFgqNSVubGg2aVoxeEstMz9KCnorRE8hJmlNb3JadVpVOEs4aSZte2J2c2Qk
aCswazViZlEpZkhKMnppUVBvNShBKnpuM059fktrbTRVKHhmQiZQbAp6SGRlP1Q2b0dQbjVwZn0/
N2pUeGMje2o2aDdBR3RsZ08tYT5eMi1UOE9rUSZ4S3NFZnh1V21IX2IqQVFlJGp+UUYKekN0WTxo
Wj0qNl9EdmUzRSV2QFdLRVloTHxAa0wqfkcmM3FpO35gfmNBUSkxbG5HcT14UzZrdkxoc0VyeTwl
LXVZCnoxO2JLOVJQbkJuZn5wZXJRYWoheENlYiZWa35pI14pPHNjOE8obkhTa3M1K3daKjt2eFV4
RjJqZSYhZFNITTI+SQp6TTVVUkZjc2BUOW9SbENQajdmMl9qcThIWUR4LVI+NXsqJG1iajZ3Pz5t
O3Z+VktwbDtZNS1aRUE/dTVAdGQ5bTgKem5eZWRLIUBmfTV1UndnNTg7KzwhQUlZIUg+VFphezZz
fXYxTjVjfk9mcFgzPk1pMUdiQSZZTzlYYyshclJGYVM+CnpKfmVgbzF1JjNNIzBPVnw4IWBVJVFk
bSpeM09OYzZZRjdMfkZUNnFSQj1UeChNKTZzXkdnQjZiZ2hHKlpYeDZZXgp6WVZvUX5HYkZ6ZkBX
dytiOTI+ekAhM3dgJmc8cHhPK3lyUEs4dmY8OGtoTiRBT2QzezNiM2g3PG5HJWh7UkxxfCoKeigl
ZWlGNiQqeW9vTT5hYlNxWkRzcktQYjtpeTJLbkg8VkFNO1E8M1QkNzhEMDVLKV8/MjFTYXNEODY3
SXNRQWxACnpuWTErUF5YV15rbHg5YGZYM3ZtWkc8dzRfWiVBNGFrRDskdk9zZXR2bnV0UTFYaUck
X0FGPjV7RzBTQz1KcnQ2Ygp6KUJNR3g8d3tKNnUwPENURH4tKlVlQlE4eCp+MCpXWVMwQEItbDBn
WXJGQ1VrNX5eMj8kRH1JcTV7b3ZscklDMloKeiZxWDZHTzR1O283QFUpUDBJU3plYkh4fEFRNCNs
cipMcH5MS0l4UFV4dHVDQlFuJDNwOC0qMy1ZOUYreiU1ciNaCnppOHJTQm0oWj1AOyYoPFFZTD1F
SHVXQzVHKUlTNVc1UTthNHJCWih9WWdFRHcoS1lrb2xzd0NHeS0mdT41T2I2Zgp6SHp1Xnl4WmBM
PEd9ayRlaWtVR0d4Kj5VVz03IUU0SV5CQ3J0YXZ7QUYkTldFYyYjKEI7OF54MUdIKW11ZCg9b0kK
ek0ybzg+cV5NWlF2QUVCTklTPDRgcTRpfWYlRjVXZjJDKWRTXjw8M2wkRDVtdD9aTDNCRyooXzNF
MkY4KlVJPmlnCnolNTBLWmM5IV81Pjd2fmJLUFdLVE1RMCFwdTBScVJFVSgtJitHMWZBaWBQPFVw
PkphOGQrfVAtKC1IYkZiZlYlUwp6T3k0KXN4N0ZCVEByfmpIPH1raHtFdlVrTis+NmFNSWZmTXM7
NE09YyVMLWZZWUNKVFNTJSEqUDtwKCVRcjI9bkQKejFMTjR9bWhtdVMwPCVuSTEodEtwOXp9aU1Y
cDlHVC1MYWZtVDF6WT88SGk8cyEkYDgzRjNUT1laZUJDP2B3QyE1Cnpydjd5OHsjSEtrPGJSUFJ1
UH1XMXZNM0xUQHtsTlhRR089TUZHVj9LeTN3dmdsb3lMfm5rZFVlU3QtZ1RxSThSTAp6bF8qej5A
Xig/R3FQJEMjOCU2bm1DPzZIJmxjTVl1PHUrMDc2NkhRbzl1KCFmcVdvQnRoZWImcmpNNz52N1Vs
VigKem9HaS1lcU1Sa2xnYCV0JFd2d1cwN051WDVWTnRlPGF3Mj40aXAtaXs1P3YkVmFlPEFaaj5S
PjslJjtTYSYxS1g3CnpQJWlVOGFxYiFQdHJodyVLNyg5VCplSVByRStYV25vazE9cjxqVCg9TX58
Zysle195aCZrITVRTT81ZyVmZXthawp6Y3dvYz5CT1Z5Pno9I0olSlRUJmM1ZkEqYGM7SzglRF83
NVN3MmhUK0c9X1pjVnZweCR6cWZXUnlEXiV5YlEyMUQKem47OCtGI0AxRjN7O0U5fDJfeGpEdUpe
MzFVfk5mNnU9IT1fSzk2SiZmYipeS18/cCZ1OHNweG0tKU0qK0NFYDtwCnpTcjd+bCgtZm1aMV5w
PjF8NUpQcWcyYSQhWlM8PiEmPHhXflYtfH42bzxtajN1MTFpYGM2RDdpPSFeSzM3NXAjVQp6bSll
fSgrVXdPST50QGwjcjxIUXBvTkd4ITkrc0ZqPihudGtDfHJMMXZLMWF2S2hFVmdUVXsrOGYoajNA
RXdAJEYKemFiaFZmQTxlYkpuJjtObEQ5czJJYCRKQjY3PEQoRFRvKyNGZ3VodklITEJ0c1VyNnpX
PE0wclJIZ05fVjhIcH5WCnp6aD8pbGd8aXdKKXEkOUBCTksrRW5wUiN6QGxpcjs3N2s7bDVab3hM
KU0hV3ZsV2FGPFAhUUE/TE51SU00YCozXgp6TUR1KVYjPzhTLU0wTWopRjRMMmhxMVkrNCtNTU5O
TFoteSs8PW1GJlRLcllNIWRwSTw8dXJRe3RNLXZwemxCeSkKem8kOz4jNWQxfTBuJUQ8OSt0YUt4
VjxAIUJoJmY7fGhnVip9OHdeb31vfmVpO0JBPH5TOGZMYnYmb0dZP1Epdn4+CnpEZ1gjJTJmdlgr
QkAhVCYtM0ZqSkFvd3RjQElOPVlDeGM+Q3gwJDFpR2tRNXshR0ImKnh1V0xgOTUtNGZHbDtqYAp6
IXg0cTFObCFtVkYtNzVuSjs7JSZnIWwqdElPMEZEa2Y9XkB4UWAoWTwwQEJybHQyYCNaIVB5XlRP
byhedU5KN34Kek11UGFxNVdaJTwpVmMpfU9YNlhJQHZzPUR1fkFxJl99IV97KTclOFZEWmFSPjtE
MjZ0PkJjUXY+OFp3IzhATEEqCnpaP2xLWmluQV5CaXlsSHsrIXc4ZVY+ZUw1b20/SitkRWQ1UjRj
JWlnIzxBSmIhblJzP1UlJDE4UEc3T2EqIXZjUgp6OWxgJTg4SkxVRVlqLThHLWIlens7aU58YGQ+
QnQjX34zcTcwR1VkUTgkVF91dzs8bSgmITdpRF9zbTEmbXdldTUKekElRElHUl97RCQ+WmZkZ3ZM
Vlg0PU9nUSM0X1ctT3omXjk2ZXMoeyFfN2V4fHB0RkZffEdpLUtFRmo0UnVwPH58Cnpqfjd0MXsz
aXZ0TWNHcCVQbjgzZDROPXklNVk2ZXc5fW9Mb2Z2MUh3NDEyVU8jdHMmO0xnU3xjbU1SRn5tVz8m
Qgp6IXYlJmorNnZMZkxXX2R9PExuRlNhMHhWWkZKKXxPQzN+ak9iYDlIQmM9YXN5ViZNfHBJQlZG
aCFka0ROZSRaZmgKejN5bj5YP0pLTWspVF9gbkt5bUFDQyRjMUVMekh6X0JrUT5xKiNLcHxHRUcr
UmpIPUl6RTJJaVpEdj9TYEBiZ2tGCnpsX2dUIW4zakdeTU1aX3daQ09sbEAjQlphKGEoPzVrU0h7
c3hrTUIkNksyUTJRUkMwbHFOTER6RjE3JiZAY0dAUgp6KTFMZSRpSUlYYldTUmZ4QClxIzQ5OEM0
cERkTyteQkRAUylFfmZTcngyTCpLa2Y/bkk2T1k+YSQkRElic2VKfjIKejR0KTcyQmohKGFxbWZB
e0d1SyhibW17djlneUI/dzBielY4I2paOW1AaU1WVVlEMFpiTSNfeG04aTZ6UkVDaW1BCnooO3dM
fjBsejA/eyhubG4hMktld2lMWFcyV2MxJTdgcmtuSElyaUwzSUxEcmNmdnJkLV8rYkdCZHJJSipP
QUpoMwp6PTFfZ0YhMVZ1VjJ2LVJDanxKYCpuNyZofGBoaUpDYCpTaERnb2l8WnNsZEdnKTM8ZTB6
Z3BueTF1aFomSDMtWm0Kejh+V0E+KyN9PlMzMHkxV2U8PCpmeil1VUBGRUlWREEjUl8qZjU+Mj0/
PXlraDFnME89Tnhua0pQdipGVXJqR2stCnpSO0NfezI0WlpIej49YEhNJlJ6TE0qWnFjeX07cDJ7
aVIwejI3IXxUWnhWUjV6PmYkI0I9QSFMbXQxREZQWVQ+NAp6QFQmcTMyPmM7MT5fbCF7TSt7Nyte
WG8jYUhHbkw+K0p4Xmg7VUFkcnVRK1ppJG1wWVE/SlVOPmttOVdFaEozZEUKemJwdlBaZEViUE9t
QHNgeW19fiNuT244YjNmNVVfO099Tl5HLTZwKSFnbHsoQzFgYGdOYUVsNEFHdlBLOXpRPV5gCnpH
dlM5IV8pIXluIWkwWmohdkFLJVRUT1ZvM0dYJUdTNHtXfjE4M0xFZG5XdUI2Q1JEZER8ZGEzSHtx
ISFlM2MyJAp6SFF8KmU+QG5mNmZ3U3Z0dCpRUVE2VFooUms0RmlIaFhhTnFwNVp1VzN6MlJgc3o8
c0YkJUN7UyQmMXYwPFV7ZiEKekRNKmItXmdDTT4obXg+NHxMOXFhV0pqdC14KXpCSlJUdDhBTlle
OHxrIXB+WkE+RHZQWERQamNFa3t+YHY9WFRmCnpYJSFNM2gmTGhxQmh0LUN3OyU8T2Y9SVgpKHtG
YzZrZGA3amtlbz5XQUlCckhAO1pGeDVpNiVwWGhQKTxDQUxQNQp6dzNIajQ2bDRuVmZrY19GcjZw
aDc5YytsPT5tb0U7dEF5flY4Nztxdy1VV2Y5TDN9d3ZaJTlKTk9tQyMyRGMqIzQKenNDWWNzeFlp
ZkNCTiVDMzd4Y0I+ek9LbiV6OWIkRGBPRW4/RTg+ZnRtfXBubHpeaiVrY3FmWX5gT0Yme1pwVnZK
CnpZLVR0VCNhbTJ5WXZuYmJZaTRJZUFgR3ZuSFhIdyokc1lEUWY9WkJpbiFSe3J5bXNsKm9QWHtY
UWYkb1FaejVeOwp6VD05VnYyYkM/K05GI3NnYCYkJnpMbjk1X01nTDA4IUBwUFpAVylFPWtYWTZ0
OXYwOGtYV2tSTkAlLSt8PEkmcloKemlOaGF9XkxlP0N7UHtLZlgrTkxFVWwjSU5FJWVOOFYkczhW
Szh3Rk1veV85ejE3PGRWVks2aUslUzFqaU0oK1Y4Cno3TFJHMSUqM1JnQnVLOVhgQXFSJWxnfjZC
YEFAKyFZKEtAajc2SnNyPy02MiMjajhYZkdUdDhxT1QxI19FKHA5dwp6PFUraHI8aWc1NFdWfnRR
KUBSOzFhKFV2TkJiU3dWND43O2pwREJFRW50QzMlJDwrTntoSE5yQV5NZl5KRSlVYXkKeiR6eD9H
RE4xKGc3I1gtWjBnSnBDOElNJXRhZzMtTFhXP1pVRipBZHRoP3puMGNvYD9OUTRON2FJS3pseldD
OXFUCnowS1ljX0paIWB+MHBtYGlBX2lwS1dDME59QEM1TElDdkdQeXNNZmZYMHpDQkszR2tTTUNt
PEdTcmltZGM7dEdmXwp6NyZsTU1oJEspJWZrRnM1YVYoSS01aTleMGt7YFBRazRMUmdvKW9Ta1VQ
anxeZlhjKGEqZ0gqUiVCVkVQJD5wLUsKVnM3eWVeNlZDPnQze3BnKVBLcnBme3wyaWBqWioqcwoK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL2dlbmJyay01NS0xIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL2dlbmJyay01NS0xCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkMjA2ZGNmZmZkZDRlN2NlZjMyYWI1NTUzYTE5
OTkwY2MxODVmMjcKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMxNDU2CnpjbWVIdmR3NWpVeCVa
bGNLbiN9JmlpJWdabXs4PUJXVm5VXmtfaSpvQk5LPiRDe15QeW5WQlMwQ299MD41Rz5UUgp6Tm1A
NEpYc3B1MT4xajFwaWQxVil7N3l4ck07WVozKFV0O1VpZ0h2PU1aMDRfayk5SzclQURXM19MfEFl
TSQyPX4Kel5aaiRhWn0jKTd3Y2d1JCpTcD96LVM2ej1QaUsjeEFIdFgrbzNZamAjQE1BdStYZ2Ul
IUVPTT0qaX1kfWxIRmN5CnpVUlpmWVd6Nzx6cmF5KnNebExIRnZrREVeP2FMfmNGSDBCVV4tSSFl
T3lJRE08c2VaPmtLRzx9dUxeMGZoTnRXNgp6eCZvYTZWYElLMUwtP1FwYVk5O0NRTSl9RDNmQmpk
Qil4czUtX3JEcjVTPmltaTMrKHdBNiYqQ09gcEJWP1FMLWYKeksrKUB5JDd9anQ3V3hQJHpiQnN5
Pn16eTc/ZTB9aGNUMzB+YUA2YmY8eGJHX3dGbWAtcnxDOzcpJlJUUjg0THdICnp6RDdhVT51Vk1J
bylTKFlKa0BgQy1PJVV2MXFUTDF1ZGskN3ZvQTVjZ3MxQSRuRm9KYGVmTjVORjF5RnE7MElIJAp6
Wi12bTtCYE9sR3c8JVI4JkFVVkp3Y1R6cEZFZ2liVT1TWXlGOzVjbmpSfkNROGBjRCRkc05HQV9q
JkVYKXk/Jk8KenVlfkp7XyhwdlJiKT04I0NteHl+bE1ASV55Uz5wcjtJI3x3JVNVfig1N1VEYGd6
TlI4PiZlRyVfZDVRYmVXZ05RCno2WW4lKmdzMUFHeyFVQTNCWVJ3cWtZaitMX2d8TXV2dX1tYU5C
R3wjKlpTYlZEIVpgMVledFUmY2M5NU1gJFJLSQp6PyFkbGV2bzJtI1h8WE83dGEzNH5ERVRBR0JW
YCYme1k9JDBtYSRnMmcwWFZPaGR2KT1IXyNZTHFNdHl5M1hXPkIKekZtP25MWHw5YiVZRldWOGNU
aGdNbjZWV1krQFhOMGs/MHtscjc9aHxrPGhob2VEYlJwYjlAYlYxWldie0ZyP3llCnpGaWBDRSlF
QiF9ZHRKY2t4ZHdeYW5FMTBvencteXZ8S1pvJGYzYWZPQllXS2lweWVhNnA/TiVFYDZpfGBRRTVL
NAp6UW9aLUZGUXpgIVBBTC1jc0VeRCptS3o0ek0qQUxUKnkjX3JpX0FxWiM4WGRGKyY9UXRLKXFH
SygoNUBWUEFvRXMKekl7SjFEZDlQI0lxe31afDlTcGdmaXotckBWZEoyY2BYJDVmdj9ndjZJRUAy
NipDRndLKko3THNJVnFFNkpkcDd+Cnojc2U3LVdJVH1aSypqP1o0YGUpJEBqJTd7ODRxTVVrbnpD
KDUpYWhNJUV3RXFtMit9cmBtTlhFXio9aUlefilHRAp6I1o+ITkjPyZzbl4yXkZBcCFSWDl0bjU9
NGZUNFYtX0pLdX0mOXxGeEd1Tjd6RXRQKzhZI1RhbFJaaHV+b2ErIWoKemt8VV5GeHhjNCE2Wnln
Izg2cW49I31RWU5xcioyfSZEZUdkTVhDUWY5SV4xMmFvcX5VZlkjPzYwekVKMVkyP05aCnppVkMm
UHlfXkN1I2BYWWJufUQ+KGpPe0w5dyNmNyZraDRXNTgkZk5ISkJJe0Ehe29AXnN7cEFkamZ7endP
fGpDUAp6Z2BuOVloMnk5JlQ4QDxGK3ptKk1VTmBBLTZoX00tSWw2WH14KCMoQVlkM1lvalNvI2kz
JHBTSElVYkotRXBsfUYKejB9IT87cik8amU8KUV2PnhwUXtQOWZ5dFcjZ0k0a1o+UHdQNENteD8p
YCNpe2x2WlZyc28hKnYkWTs9aUhNJF9yCnorSUdIUT8mKlAmeE5OTEN0JHZUX04pTH0mK215SVhJ
Vm1nZXM9R244JXtwUTFfIXcmRT8tP3xjdDZtTU45SWZxPQp6cWc5KEFZZjx7dShJNSVDcE1hPU1g
UEYjUishMz1XPVIoNn1YSF4jZiszPCQtcmhQVyRDOSsrUGhCd0pkazlyaGcKekZzcmdsUk5sLWhL
VSlGOzg/PSt2SHMhQXtyQlhTZT90bSFkK1R1b0kjfDh4SWdqKzFwUlImcTxDYEZ3YChLKytmCnpa
bXd9Uilral5NQHxpX0JEPlNVdEc/MDZqSz5edDZhKipLcUV0UDFpLT09KDhyRjw/JnFOR2VjaGx3
SGdiU3d1OQp6cj9NU2VQKD9qWU0xQD0peCpDMWhCMWJvbjBRckxhYHpGe3s8cGJVd1RqV3tsc3F2
eG5zQSFFMG1Mc2pOKGRhfjwKelVqe09VRn1AIT9IJUJaNWdPckBYMihNdlV7X1JTYiNkfEpDVWdB
RUNZfmJGQWJrSXl0S1NVQEUlP28kRTU1PHVVCnpxeiFHYGx1eSpJT0dwY09fQ3N8UzAtPSVHTyZ0
ZX40O19RdD48KkdNY0kzZHRGb3Y0MSZjKlBsX3JZWUZeMF52Nwp6c1ROWkFxSHtObjB7ayhEKktT
Y3lCY3o4Rl4jO3ZVdGY8K1FgOzhxR0xOdndYQU1CelBjYz1MLWJEakJhdiVQTDcKejxldVNqcXR5
P284WkYpRjxGSXNsS2NjPXpoRFNNZil+UTRDTXIma0w1NFo9aG9VejsmcHQmNnxsJlBQZGleb2xJ
CnpeJj1FZWNOZWRhMyM7fSlAWn45eCp2YGRmQmBkdEJObHQ7SkVtQzVRajhVRCp3dT4oJT9kWXpv
eXI9I0pXVVk8Zwp6WUpHfk1xaklEYVIhb0NqLSQ9QX5FSj5RcHRJQ2xMZTZlayZ4XlE3ITRRTz9E
YT4zRStETVdefmUlYDI2UChHQkUKeipWVURmIVpAaUdPP3Jjbi1waSQ1allNaE1TUngmRnArTkl2
NklJb2xNWklCS3kqZzN2O2JiZHc1fjhxLT03dmc9CnopWTV3cD17QCFwX3U5QipGRW54V3VWOWtV
XkNhfVNDUyp0b25HOz4qM1Yjb285bmMoQ2VAeFBVZ2YjWExTfDtpLQp6MWZBaGJ3SGdmZGM0V2xC
WSYheWEtfXt8LUZlXklacTNmeVc0XyYkNSp1RlAzKGlDZ0duVDdJYndebzs8UXIqc20KekJJQjVM
NDVoWShRO29yT3k8Oz8xMTNsXmQ9PTJHJlBgd3JjKmoyRX1WKGEoPE8/RGdsdlA/MUspPnolbkc9
MGhtCnpTdmV5KzVBcUVTIWdhbDhBWjs5RDUkIz5iP0BRJl5fNUtJWWg3fGVKRz1jV2lePT5CbTFA
X2hUdTF1NCE+KW4ldgp6RlJobDliN35EfU57XzYzQWgrJHh5fGI/TzM2a2p+cl53MV9TdmpTPUJQ
Kn1nXl9xeVI+cCRtbjExNTU9aiEjRlIKeioyZVc8XlpoPH41KTF9fk1yYVZ7XmpNd1pERUpJfWcj
filhN0gjYmdedFowfVhXKGpod31EMi0kajVGeXM1bVAoCnojT21Qa29kZmIlSFpOZ3VWdDEoOSRA
PiRAZDB2TmFOWDZCTUcpMGVVTHIycGxgQjQ0VEJmWFRMMzIjYEhjZFd7UAp6U2B9O3dteiVrK09K
JHtZZjJIWHRLbU1NOTZ5VWJtJT1wbWJmVTckQ2pxUShQZGRWR29qcU5gTFV8djYlUFZOWk4Kemw7
e0BCWGA5bHE0YUUpfGt4WHNJV2RQZjhSbWFpTFlFIUhWVUIxQi1HcT11VHB7cjxASk9PcnZhalVI
fi1nYyhnCnp4WnhHISoxZCs7YU9gdypKKlUrRDtMfDNNOVZKUnQkTUh9bFN8UWxueCkjQGg2NTMq
KUEpeUdUJUZleUE7Z3ZxQQp6QyE2KiVTbC0oVXBlTEp0ejNTWnVGZSYkbkplTX14ei0yd3pJQSFe
dl4/T001e3UpQUw8YFFuQ201Zn0oam8+IVAKeihVPG40QCRGUkFya3EhfHBeOHZ4K31ifDtQdkV0
a0UpSEZfcitxbGQ2ezk/V2xKeVBRKD9KQkIwO3ZsNikkYys5CnpiISY+JnBOWkpCe3Q7KVZFJjY7
KUpFem9KQVNOMmNIUlV0NGpNfE0oWntmISoqUWclR1pqQzhnckEjWn1xalpwWgp6Nj92OU0jQjYr
X2o8eExeUkI2STZ6ZUl5V2JNSkIqZz96T2NzLW0oWGRlPi0hI3JWUlI9ekxAMDM3cEowX3ZFJWMK
enhlYUU7UWg+YjJRanF1RngzPVMpPG9uYyFGVlI/SlA2MEk2ZzdCSTg2PFYpXigjd2J7TjFtcmZh
Nj9jKDJFQyF9CnpCT3tLZXptVHohT1IkTkRacj9fZTxFQkgjN1k/RFBHMDIrd3Q7KE5ZQiZzLTVa
MWA9RWJsSEBDb0dfMDtqWkhiKgp6Y1JnSiRFKDVENG5AcGk7OFgyeDY3MGFgMF9sR2FIRE14VUUo
Z2FVQUt+KTI0ZVolX3g4fEZXNURzPW19Z35xLXoKemxIQyF6ZjFXaW1rNWw4Sk4kUFBKVXs+fmtx
KmtFcyplcjgzNlomJURnTjM9fm4+Zz1CWFVXZEUrSmE5bkVaN1lQCnpjN2UzQGhrWisxZDhlJCht
c25pKUo4KCZQNTlkdUtvdkZCOG95UyR0aW1UIVJeMFRyI0dNblp8WC1FQTJZMVlWRQp6RUl1cUZe
JHdVc25FRCg1NyZLVGpoP0NCckF2LT0tUmRee2Y4fSpFdURYQUJWSjg7bjNCSURIdUEpXzYlMSth
aCYKel8jOShZckpTZnomZSlXSFJ8bGFsaz1nMi01WXpjalphYkQ9ekFuc1goLW1ATDlAI1lsN3Ax
cyVsand5SlhmfmU/Cno1JmxYK0Aob0ooSmp0Y1hwWGEtKGByX0JnRTgjRW87JFFNPHNJRV5ERlcy
LSNAMS0zRnpkdTZRZzBzJkpwPUE0Zgp6fDY4YHl0WUVUek5uNnNyZTcyJk4mKWp4Q2V+cFlLNn5i
QSNvb2AoZVB9TG0wYCRYSGh7NTJENyhZYmVrR2pNKVQKek8pZns8Sz5SZTt7WjI/NEBCZ2QwP0dz
flZOQntTKTtrdSpLWiR2ZVZhKzBQWlVGQ1k7Z2xxIVFvITI7UnRPfS1LCnpKVHleYGpHXmd4Vzgy
d3ljcXJXcl9WNT4lU0o2OG96bUBqbWJnQXE4NW0kRDEtQTticWlUWmRhSy1DRXtDUlY2YAp6Nnkl
WUQ5YXMrdil5SGpZd2dFMnluZyZaIUwtTUhMSy16cjh6P0U4K0tndnBZbzNlSi0/YGR5c2kpUkBo
Nyk5SGwKel5RMUxlRGFsSVpZbikrPHktMGpuc3B7XjEwZyFQX0ReTy1fPiZZXjFlV21VNjxuWGQ/
MTh1SXhfTjhFVjk4X3hHCnpzIzE+R2w7JG53bXFebjFBbkNEMnJXTWR0QyFkem5QUEJzcXZpJVdL
NnlJJWErY215dylfPC0hLTF7Jmp3ZSEqdgp6VTFYP296UVdiWGs9b2JqMHU1Q3kreVY+MHQhMmlv
VSg3bT5pNUhLX1pMZn5VOGB6cHBkI2UrQ0lYYkc8N0E8KDIKenMjT198OFFXKW9XOFB6VmQjdTV7
LXR6Vmg/SkBJdXlkZ2FVd2wmXzx6QmZ8KVJgQDVUU25vUUw/Pks1fjl9TXxMCnpRT21QZlF8UVNh
JVdrU0Ara0ZFcllRPCFuV3A+ckJ3TzNpNDJqb2IybjthU1NqJmJYaHcpMnoyU0dMfH5WNDshUgp6
SHdJKC00KEt5MEBBbDxibTFWbmd0cjEmNktGLT9Fd0hFOWNrdT9SUXVga0NEKDJNbXlMKG1rMThH
WDU/N2BUOCkKemI3YndWX3w5NDkqMzlGVXE0NlBBJTleKXhgPH4oTFc3U257eUNwSVYyZCMtMyZ1
PzlnI2BBRlBYZ2g1UGNsVE1XCnppVmVjKzhhaWQ/OEA5LXRlZUpSRW0xZzdDQXZBOG8lPEdwSitW
PmhlTzNxYCRqekx3b09fe1Mjaj13QEo4WHZkPgp6V2FXKiV0VyRAVExzPDh2RFo4JjZzcTYwUkok
MVA2PDlPaiY5SDtUWkZMezJSPU0yfURjd3JYTDJsMEZgJnZTWDYKeiRNYSE0QUhubHtvP3B1SVE5
UXFiPWM5UmtIUDVmKmBTbT1QY3NgY3IxdzA/ZV5ZSntOITFHQndGWERMIyYhX053Cno4cWE2Jnlw
LW88SmZGayFufFdUJl45cjZAYylvej1HUzY/fXhzQihHZDB4JSk4c3UwJChkJUJzMzJhXihGWj95
aQp6JkwkJUVldUI0enJmfiVROCRtS2IyTUt6RHB3fGRgblZePm1kWTdRejUlZWlSUFpSVk5MMHRy
MGlGdylrUS1UVCEKemRWcnZFZl9fTlF0cHUkaSRWSEhrcG1oWWYyPkthOGNNI01+UCZHbFg2MTBH
emNMPHQ4Jn5idk01UmA/TCtEbVdQCnpQMWdgfkp3WVZ8alV1UiRwZ2UrVjJ4MF58MjxwZXdZNFE8
dGpHKG15e2VfP2lMNUIkWE19cWJkXmJ8cTYyenI1Xwp6P0Y4KjZzR0ZjUzNFRTgxelozTHhmPDdu
Y0NqQDsoJl5tJktWTUZjeEswKChJNmU0SW1MRWo7MENQNkMqVDBxY2sKejFsMUJgQlolVHV5JW01
a1p+eTdqKT5mOXlobUZrVTQqPmB7dXBpUEZuRXdMQWlfJH5MN31QOTUkKTY9YWh7IXExCnpmWWla
e3tDTihDP1l8XkFGMzN6MmpBVCg4YlRxb2xxezUoZD1qNEBqJG93cks1NTZkQGxPX2tHSy1sWV4r
fkQhTAp6ck9BSEQ5fWN5SUxtYlV4bSg7aSZGM0lEUT5IfWBhSig0SG40bWhZRHVNKDgjOCZTI09i
NG05R3pAbjtCc0wzdFcKemR3aDwtWUtndlYlTTxPQzx5fHRsTiU5QXokQDYkVm5aRGVWQW5nZkNW
WH0/dWczeFVtZCE7KU5xO317REh1PitCCno5OCFZUj48JkB8JFR+R3lyQHYpJnp8K19pZn4/MnFe
b0N0LWghMFNHeypjRT5AKypfTj4tfEFEKkJ1SDZkPWxEJAp6YSElOEY0X1N7VWkqSz4wOCFrXmts
OTBLYkF3UFE3ZlIxP21QUG9GP2kya3BaZH5VYlBPXiQrdG4leXBzMUt5eHwKejVfdlReRGVuXkFt
QGFHWmQlZ2E5UUxUUXApWnojPU9fRSZoMjFuUSVmQEEje0RwPXZ0dFo9ITVBI01VUjVEZnFGCnpR
QWs9ZTJfXzlGcWNJP2JkQ1ZPTXoqTE4lKThFYG8xTGdKajtHOTVYeFlfTHNObjtDeFdBaGpkS1Ix
KlFyUkQoKgp6Wnc/MVRRb1RSYUItT2o2VjJqKTdZNEVzUk1SYG5gcFktfG9gOFA+Wk49KHh5Tm1s
QjtXfF9rKVJmTDBSRDtTaWoKejlMXj8hUCQkc2g3eFJafmZuSlBxayExRklyNVlOKXBqNmB5eCZ0
ZkdndjFKaVdzPWszbFE0U2RmRzZafWNzPSpJCnpDRn1nIUIyMDtwQk5QcndiSUQ2QVB8eFEzIShK
QmBefCFjdm4oPG9hRCFCKFJkdEVlRWUzRU83dSt6OEZQU1J6aAp6UV98IzhTUnNHeXszYl5MUl9O
SklYYlpWKDtJI0B6KEN3PEFyRDVlTyF5bkt+T09oamBJbGEmfDM4VVoqSH5YWVEKelJ+fkQwYHwx
UHRsKSkpIW1aeTUzakZ9fEhDP1QjNVhyWj5eczdFeGBEVjZlPSkpODhlb1NqKEVzYT5iRiRIYXsx
CnpxYVMyWSEzTzMhNkJDWGw3ZzJIfTVrU0o4a2wqajYkPF5YQGhjSl9hVlckJmctVnBZQlJ+TkFX
RGBOTjdpJUUjQgp6Q3Q7SzsrfXh+ZjUxTGhsIVEjU1Q1ZTtTWEt9LXghVnVNVlFsZmN1dWhqdjJ6
Wm8jay12UG5wVSk1YStANyFFQVkKekYmTFBeOzRvd3g9bz9AOVVjRE44SXgxJjwzbUcyNT4zZEUz
d2l+LUV6UFRMMUVaV3p4UyN1ZDF5ZE45dWstPD1qCnpnU1VKTCVrRCYocFVWdT1QezJjKFZGbGlZ
QGB0bVc/JWB9dWAzUHBYZm5eeSs0am57by13SmpBcWk2WWV0dU9WVwp6Xm9udyZDfGdDalVYK2lE
QC1iMHY1I3wzODwtZHdAazB8JHhAO3ktPTczRjg1SlN8R1NAbVYpJWJgMkJkNnszX3gKeklZRUB1
TTB2OSlXbGAzTUAtOSZ9aF9YZUxfbGRHeWxuO3Q+cWJRI2M8IT9sfVJnXkpOekFublFNRVFYelJa
KlQ0Cno8KEh4eSZFRVN+ViRNfHI/dlpkKnZxNmRENj56amo+I3lEcTNBey1GN243U088YkhBeWVK
aDNCJm5fWXQ1SEB5UQp6TTl3ZWRIZUUhe0Jqbz0xQjY0KjdxdndULSRUPkIhT3JHJlQjc2U3LVdJ
VH1aSypqP1o0YGUpJEBqJTd7ODR2dF8KejxBSVQ1T0lNN25TYUckYmIlO2Q0ZkpAOG1fQiZqVD5Y
cSEpSytNcEVVKThrNyZgQXVScW5ZVndfUXFBSz9EJCp2CnpweD1pO1NaSzk8V2VJRElBKlJlOUwr
NTN2aHJoOVJJUGJBTG85P2tVaDgrUEhCVnsxRTVIKUheQXxCcldPcHpsbgp6PW5yMWBBTCFjPXhg
aX1yclFaeU1XPEV5JEVwdCZMUCYkJlRFU2AjPmw0KXdLJipTdkYrKU1kaSNMcVdYSTt0MGkKekpn
ayFpJUQrKntWeWF3ODY3cW49bHFwe3liQSFUfk1UP2koYj9zRXZtYHRfUmh+VCstTlVYK0dRcDx0
KXUhSjtNCno0YGBsUVRqZyM+VkF0aVgjRTV7bXs2ZTFaLXBYY1R0cEY9KmNZNTZwVWxfaClmaEpD
WGl+V0pjaiVLZDlnXzljSAp6QXEhJV9tUEZXP2dqYUQ2I1dNK09IRT1aZUhHPUJ8RC1gZyRlSShu
LTJeNiQrZEooLVEoIzltb2gzSzB6bHlJfUIKejVtREgxZlhqM3hXaG1CM3dZRFRGaTRaNEl5RShO
YnUrcldUYVB5a21sOVhsI1YjYGpGK0hhdEZSOyZIJTAwZTZoCnpNa2V3aFBQUjlAbzYhfVRlPyZa
QDVlTWRFZ1R2emBoTUhnbTVKNjghcEJOeXZ0V0ZTNTZWYmcmSTRjV0NMJGRTaAp6SU9fSHtramhS
Q3ApbndJQlMrelhaZ2ZgeTNsZVYmI31keHk9MiMyPFEkdlU9K05SLVF0ITZCTkB0VXUzajYldHoK
elhGdGIrWmE0NGpBJiFPSVVmI25hOU9GTlZrZj0pTktwUTdHOFYrJSNyd0l2UV9PMFplWXxaODx7
YzhyUXhzRmkkCnpCTUUwU3BLNkB+NjtvbShwPCRvc3I/IV9HP0QmbCsrdXF5K3pxeV5ea1FASWEh
JEN7Qlhxa05oZXZINXhiVVR7dQp6WSlZN0lyQztDaHAqOG8jRCRUS0xETUMmejU1bH0zOFpkYGBZ
fCMzIyNuOGZESDFNfG1VPVdRU0ZhKzdoMX4pcn0Kenw3JnVoNnJzfHRTOyU2dTVJPT5KZXMxOTFf
Pz59dz96dD87JXJlO1VRdmY+KmBPWSM4Sl81TUE0M1MjJGQ1P2tvCnpgM158MkdIQWtvNkY/PShU
NHk4Y3FBV0hXdmlLIXtvaXYxOD4+KzQ5TEtNdHtqeDBYQD5wfCtDTHl+aH5oc1ZkQgp6JGZEQD5R
KDBKfD5eQ0cmJW9DS2cmUENSVipscmc2U1l1fkAlKEEhOGhHN21nMkhCeChtYVQ+UVMjTVNZbVRh
KHoKel49RTAkWHc2MCZhfTU+PldWM1Y3OEppREgtU31gfE5HVz9oK2NibDEmej9Haz9afmRjIW51
ZC0lQzJefT1tIVk0CnpIKFQyVCp9bSpyMGxmKWJ0cVo2K1drKUZNVHUzTm9gKDs5eyRjfFdQdSh+
R0NlUG4yZlIzYl9GUWhxKnU0eXZYeQp6VStOcyh2Zm9mclFYK0wzJHw7VWJCa1E2SDt3ZU8jaVgj
Tmg4dH5RSVRaTmwlQ2xMemc2KExMZlV6WktRM3NQfDYKejdhK2tgezJfY1h2UShWdlF+YUVHUGEj
cUwxV3Epbnt9QkN2aUhDNWlwVE02NUs1bWN9ZG5YPSEqQn5KIW99Qj4zCno7blNGeU52cGVgYUt6
aSRSMUsjKGlJXmxuXzVzck1BU1V7QUxme0V8YGhreH5YKWhQREJrOypyO3tUfTcmKXxldAp6N2k7
PmIwPjIqWmNadjNBNTxrVHIzKmptRClCcmFrYj5UK3w2cyRxdUNEJntDRHVJXl5gfmlXLWcjMmNL
dWVlVD0KenI7bFZ2VXlJPVhMRXg9fHxEbkxrMSU2V0NDeGtxR2FMKC0he0EmZj9EY1V5KXloUUw5
Mj5naF56YilgcUF4fVRQCnpsZkQlS3xEbktKMXBXXlJULTUpSyExRHpqNkw/SkVoZDc9T1BpZyU8
Q2lxNyVZMHdOaUJrKnBhZStZaHtxNHJEMAp6WVclQU85PWshcT44RStsemZyXksyWVBPPSEwQmd0
IWtOSjc9WEFuNTE+UFg9Wmhfdz9ATT5YQ1JOJFFnfDBRciMKek4zSzIzWCpqak9wOTREbHhER2RD
RTwhamRmNGRJJWE9YUJAKDRMU0V8REduRjxVZyQ4TnFaakc7bV8mdFR7YD92CnpJe2FON2VwSDhf
KVpxOzRKaz1rQWJAJkohSzF6cFF0SFc+OTtTK1NZTnIjdXxhSSs0VmJAJm47ZXd6LWopOFRGJQp6
LW1KcmVJe2JTJnlpSkVrYm9lNzBvfTNTbD5Ge1RDX3pvVDNxcihzREBRLSEpN2RvOHd6U1F9NmxA
MUBUO21QP2AKenFUfG9qO2omSj82dz9eajFjcm0zO3JNMkFrblRkTkwlSkt1ajxmPkZmbUR5PUx+
PGR5a3M2V2NfcU1yNkh6VW5OCnpEbn5MU0VrSWdgQnFQeSpjPzs0YUJwWHJ7KHFnMH5OWXpPNjkj
KF8yNmxvYiFFeilnQmJSYUhBYFptJVhOT3ZNTgp6QWJGN1JsKyRsYDYtZWB1RUomM3x7flAtd3ZF
b3tNWlZ8LSlKZmJmIyFwKzZPZlV7V3BXanw0Zj8tWXVoRWlEJkYKelNBOyFZUzI2JFVMd3hmUjZ4
RTlBSWpoRXZ4MV52dW93JWdfSjl0JElQV0pmJmMme2o0UlhXMnlWX0hKUSYreVZ7CnpHVncyaCVz
IVhKPE11Rm52amRtN2g0Ymc5e0NoVTkrcjtkeUNYJSt6NnJVSnpxX2lkQVp7KTlHe35ia2lqaVht
Sgp6RUIhTXhKT0FSeCZNJGk2K0UmeWV1NVRBPkd3cUo4LUtnenBHPHNqclFUVX1ib3RBbkRQdmBM
YWNSR24qLV91RGcKemJjQCFKPXo1KF87JV9uK2xLMmY+UHYlIzZKJnxBVSh9X1g0bmQ/WUF7JXwx
P2dMOzc9VURWVHc7IVB1K3M5bk9wCnpoTmp2NkhFJXo3V2dvY05peEMhPWAhcjB1KEY+QmVecnVi
Oy0wVnxQLTBAUzwobGt1RmA9e35+WnZtK15AZk1JdQp6TzF2NTktP1QzbFEyN1F2NTJZa3t8Mktt
dTM3elRUNkZycCZQQyg/KkV8ZTc5TFJqaSs7I3Jga2diPm89U3YrPS0Kek0kc1olb1RTQ0tHPzFj
TzhwTEI7OThBVTsxU1NGdVQ0VyYrUW17QWh3YntTfUluM1VtdHUhaXZ6X2RseUFZUzZfCno0ZnNT
NyVaVW8mWUFkT00yTHRSNEpQS2ZNNVIpYGZNSDNab2BncjVsN0VlJW54MkpifWRafHh8RUNDI2RE
Rkp+WQp6PkNxKDZjcE00azFweT9ZQntVOSVqT19mSXd7TTZRWC11dTNUckw/TU5geDVmO2JlRzcx
NFVmdWc2Slg2TDtaOTEKemdKQ2hlbTNEIVNuPDlURUE7KjJ5ZlJnVjBoRW5iSm8zIzxMTDxiajFk
ekQ+PnZQOGhSTnp9NFkyTDNQY2glYigpCnokPHkmbm4+QjZQbD1Aa1lEYnJeKCUkUW5nbm1UPmZP
dmtLeCQxSzszNS1fSmFYVSYrLSVFSkFKYjJAR3NfMjgpWQp6enlIaE0xJTRpVFk7VFkmKHEqRiRL
YWhMRmdMQSZSdEwmfW1FQXV8UkdeZ1lXc2J9NG9zI31VJE0mRnRKTUVLcGUKejkobmZldk5LPSF8
NkU+QmJsXzYrRkhpbztkK2pnd29fSTkrKH1gV0RuczBiYGB6T3ckK3hJPl5iamBkZTxHITJzCnor
Q3AzNG9qKXZEd0FnJDkhcGU3IWYzV0VmJWJxKHZyfEhSeE0/M0dkalI7bFQrV1YqQ3BJb3pXOyMy
NTliKTRRTgp6bmVmR202a2x8S29hUEhEPndvVHhqak5eMyNtfjQkZ2pZUn5iNHlvdSZFb0kwPyYh
SnQkO3FiPSZmSStFezQrbHkKejh+KXhpLUBSK2VsUWtiYWBKMz9qT34tI0xwTDt4aF5HbWFiRjFX
cFFOX3FTNG4jUSpte1FqQjBqQztnI15xKVJqCnpgdTZqVUFGdWxFO1Q7RGl7QFlKKW92fFM+XjFX
ZU9vfEIkRnhhUWwmI3xCNkhrS05UWEAjJE5xeT9TcyQqWEJoZgp6RGAhNmI+eVE1OWc7N0h2e3Fn
VmlQNXclfmA3X3RydHE9WnIta2BAMHQ4O2d9YHMyKzlFXz1DZilTUEVHYmhySEEKejtEWD1ZX0dE
SkAmRypheFc/dVp6JGlrSUhJWEJHPmBRTkJHZFJAXk0mMyhfIzlAfCopdEZ3Mnltb05MfHNXYWJ1
CnpiTCljekZUOCVxYE4yUUc+ZGo0JnZtWHA0VSs0YjRLNHkzczRgZSkkQGolN3s4NHFNVWtudXBx
MH5ycndKZHA3fgp6I3NlNy1XSVR9Wksqaj9aNGBlKSRAaiU3ezg0cU1Va251cHEwfnJyd0pkcDd+
I3NlNy1XSVR9Wksqaj9aNUIkSUcKR2YmVCowUWJsNmAKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmstNTct
MSBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmstNTctMQpuZXcgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jNGFmOGM5N2MwODQ2ZGM5MzdmMDI1NmEwOTU2YjY4MTkwYWU1YWJmCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAzMTE4NAp6Y21lSFBkdzUmTGxeQHgwOXVBMmRBU0p3I09HcyM1Y0MwKnpe
OCg5fSFXR0VETz0zeWBCZ0BqWUVzIU53azMzalgKejQ3UytaQ35DWnZ2fXtYVG0hJU5zKGxzckZr
WnBuPzQ8fEhEUDF3P3U2YlE3R0QtMHkxeVVxaU1fSUt1dldhJFEpCnp1bHd5a3lWZD1ebkt7MlJY
VT8yQ2NrYXlHcWlnXkFeb003TEY9aUBjdGdWMUNjMFNVIXBeVX1ZNmAmWnE3KWVIUQp6eG9XSn0q
PkFCZ3ptZDRQbW5qIzFFK1JjXigxRlhmKHRoKkdUb0s7QkplUzc9aEhiMH1pQXVVJHU4NldHcVNI
RmcKeil6PiFgZ0YoZjBWe3txOUxrN2hPdn1IcT1EOyRZN2dmbEZvZWRFNVk+bC1ad25hMWVgIS1Z
UCRqOTxEd1NGX0A4CnpSWUtxeF4tWTxnPilSPng1aGxOOXVDd2ZHQF8xYXo4anNRJWFZZnQ+TXQj
fjtVRWZCYmZOK2shakFFVHx4amYtVwp6JFFOaTVlNTFhJFh9WjQwaDBfUlVgX0hId2BodFAqOzAt
YkFFMSMrQk9XJDY/KzQ+Q1QhQyVxOVlHMShYQCZ5YCQKenM1SSlVN3k3ekhMJjhSenZVU3FESX1C
Z0RUc0dAVVlnUD5tOzx1bmdAWGBoZk8hRSFUMWZQMig7Y15CMXVKR0VICnpoTT9jbzhWUC0mek8q
YDt6dGxjYChmbFkpMUMlYVRRKmg5MFhXTGhUX0dCTlgyZnFqI148bjZsJWpOUkJ8QylVagp6TFNI
aTxHLUhJYl8wZjNlV1ZEZXpVVSRTaiRUMGVeJWM5Iz9GWjI9cT4tVilHSm91RUlKemgzaipFZjh5
JU4rWWUKekg8e1lPYjs7PmljN3hzS1NTaE0xI2VHR3xGSCFjKipDQ0JGVGh+TyErVGFTdERqNiQ1
UUcmNz9XZS1aP0E0ajxjCnpqJXYwc2JgJVkxdThsKSNVQ1ApVUM/OHpMU1VxbTtOWUZKJWJXdUh9
Mn10dmhGdGpoY05+IyVpZUBeWGFARmItMwp6a1krfjFwX3pWUCElWGo1elphT1VPT2RGTHhCcU9M
emEpQ2kreEpmVyswWDlWZFVNdyNATXMrRHlrZWc0YDBBSz0KenhHPG1Fc05KWTlhaFM9ZHA5Jjxa
cWNKaVFJbXxUSkh+Uk5ecU1sJCNEWUtUcjVNS2pIYXI/K21uUll7RiElTW1DCnpKa3pJX1N3eCQm
YGVDbk8rVF9ad1NSME5nRW9EXyUtTFJ8QjJhUVhILXwzbWFHUkhDOTJmOGp0O15WR210ZEU/Swp6
encjYylkbSEoRHlhKTBnJGFeNX5meEhMdTk+e3dqP301QXJAKmVucT8xNVRZZVJvQlRgaVVIJGRq
O04hPDszRmUKelVkV2lHTT44WGB0Sk5TWER5dUpvYHxxNDlzfFUzS0BZSmBvQDFkWl4pfntNYHZl
c0h4dTh7QmpVPl9YaVAqMkc1CnpxN007b2s+aEE8QDlWWW1TZmU5OE9qZTZfVHQ8RDJUN19gTGJf
KDVTelppd3NhZ1RYQEp6XiNzaW5mNFhUeXooNQp6YkJ2LVdaSHdRZno9Z1JaI0gmcWMtTyokMkBC
JXNHYkd1UkpqRi1OR3FIWGJjc0FHfXk8b016d3U9V1VFP25UZCoKem97Rk4yUTB0Nk85LXRPeCt0
R0BtR0glR19wQ2E1Vm57OXtYI0pZYElHdXApMFpIJVNObmBXUX5TXmEpX0R3UHNpCno8aXk8RDVD
ZF9sQyFGZkRRXjQxREt3TVVMJCswOG1qK3YwUjN+Wi1KaHojZlNAVCN9OG9oVGpaVWR3Png1VjQ7
aQp6bXs/bHVYZ0BPYF94M19iTjtYJVkpVFZRPlVMTkNoc3d0PVh2OD9gMWktUE4lZjd+Mjw3aXlS
NjlXc3hybyhpczwKenM5aTU3c3k5TmByVmVRUCVvKTJNZnY4amNhUzNVVF4qR2Z9QkJOd2FeP0RH
cD42ZWJGMmM3Qjt2UnpJQEhfQj9TCnpfOD9rMSlaSnB4a01ZSiZOZjI7Q0o2WXtpLS05VzNefCUo
KUo4NGd1JjlUaTAqJEI3VDVeR0dkOFhKYztIelhFYQp6dEpRT2pkI0Y5eUlAT1BDPlM+eyZia05M
fFA9SVB9STlQQ2ZyeVlGX0lNdyYlYyFEJShLU2VsOD91fUp+aERYXjgKelRPaEFKTy0lMFokUiF2
K3I8fllLMF58c0M/KXw4Q3NCYyFRJE18clpAdXo1ez0xcGhOKSk1fm4kSj1PbiU4NiRlCnpmc05h
az5jaHliYW9lT0pZU0MqNU1gMnAtTFpPZGJqXz0/O2pCbj1OaHt0RnFYbTI2KDFQZz9fLWh0eHlY
M35jNAp6byQ4O290YFZlI0pvfWNtOC1jQGs/WigoNF5RSTNWdz1oTz49MiNKMjN9ZE1LbiZHJjgr
QjhgMFJGNyNCUUVJPXoKeiErPlk0OEl3fW1PcndRc3ZAT0pwN2t2K3RrRGpRN19DOWxyTFQ7OEdg
UUZfJHErNn1HUz9qRX5UVX5YI0FvbVlrCnpaaylEPm4kZT4+Y2k7bFhsN0ZERiQ0QXhpK1c5OUEl
TVVyPzd4dHB8NWpeTDMreUB+MzB0e3VeYD02dnptWCE3Zgp6NmlfI1ZIeTk0OWVnTUlwdm1talpp
elBEK3A0VE17QW5BO2tKS19feDNvP0REeE9OT3pSJHRkMSRUWWN+MW1aPSUKenJsJjduMFZ7XlUj
e015MntVWEJ9Ml5QaX0tXj9Ham8yVl5abjk/VGRaTkozQCQ3em92TGEyfVBGVDVgfVVzaGslCnp1
N1ZXcWxsR3JmOVdQUlpeamE/Y1FhbkwzI308Iy1QQHd5ZChAbkxIQVZCU1lmaWZCNlBBaSVzOFpZ
OUYkKSY/fAp6K3Q4SWhMQTIqWXZseGxRaXczWS0+SHxCRU9LUlR7XiROPTV2Q3BfYFUmI29LTmVg
N0tufDNFO1VJM0JPPTheUVQKekFkTk1JJnhNQihIaWsxYjNaclZua1dtRkBUUE9KYVp9Y0RUPzFh
WitzbU9STDF8az0yRm44PmFqSXMyelVCZT45Cnp2fDRNIShXcWAkVzBgcUUyTGA3djtuWlNpVUdt
cFpmK35MSCkrZ3FraEomO041V3VRfU1IV2xQant2JCZ7Uk5nRAp6XlZYaWFUey0mSDxGYX42Xzhq
NjE4aWViVFBlOXJ7ITZ5MVV5WihGR14+eFdkMFVOWEFQdHBZMVRiSTB2Xztsc2kKelNDX21oTjRf
cShEaElFcWs9ME1NMGBTeWNTJCRKKC0jekAreTV3P189X0lHZj5QY0JXcH1yPW9GViFYQU1qWUly
CnpVJDVyfDlPMVF3ZGZFY0BKYFNScXVsSmRxVUBKSXVobzBkenkkK0FxM1ZyfT1MJShFO3tfR0Jw
dz1RYC1ZSVdSZwp6cVB0X31faWgyVyplZl5wKVdQTXUySVZvfjYxWUVEOXFNLVJAeCtUXzJDUVVi
P09JKllnWmkhTyUpWTM3X0xnNDMKel9rPj9NKVlseTllPnFldjMxaTFfVUZYWWNaSip1cE41MXwy
MVg3XmU3YyVwdkFBK3VxNFZYS0FOS2EyfXpxI1l2CnpBZ21qUCgjezx4b3xAUSNJcWcocStmY2xL
e2Z1ZHNXOWhfbFRwanlrV1VaeUE4YmlMcShxbkRBbVBJYjZSZ3paTAp6RClVeG5NWExTT08hTVgh
JjBGYElfRj4hVT02WChPWk01PVl1YDVndnIja2p3I0V4RXd3empScXY3bnJtKmpxXmAKeiZiaEtA
emlmSzNVK09LU3dHNVVnbE9URXY+RFFqKkw2OH1fN3Y7c1kqb0gzWEV5UH5NSD8yRXlhN2pKXkF1
e3R1CnpabHJeWmB+LVlxbGJxUG1odDlXQ1E+U2BIWW87b19ZeENCUVFOS29BYF5sTStpfSFZbkJE
dDk7VXFRK0dod1k2Swp6MTFvPkZmJnVMY0Q0PTFAKCNKQyRZbWc4MkkxfHJpXj5hY3lqUkE7R2Fa
TEcwZG1rOTBtMyo3IThucSk+dHVhTmIKeilqNTsrVHs9WGdpYSRrbiNBPCU3ajx4Ul5Wej1ObkAx
VURRYjhqciZnJWEmQFNkZnJTaVFDNFJaMDZAcUM2PF5jCnpBSUlqNWVOUyVSSkd7fVYrOW8wSXdN
e0Mxe21hfDJQeDV0WV5yekA3ekd4Q08qTWprcF84RUcmTCtKJj9tRStHKwp6Q3BhTiE/fUZkaHtz
JUwqc0dwSXNAZXg/V0JWWE17bFZqPiheSyp3VyhqTGZLMXt+XmRwQ18pXlEkRUZTWHs1YGsKejRx
JTcqMG58OXYpQldTPWFJcChqeUBnfjdQMUU/T3VWb2E9M3YydExXMVo/ej80VUhrdnZ5R0pYfCgh
Kz1sZF8xCnp8MlV+JiN6KEhGZHZBe3kjKE02IykpQnYhYjVvSFMrSmBXfXNfcTMjdEhSaV5TUHNg
cz1wUE9yVHNQYzBtRGs7Vwp6bihSeno1PDBWQ0g1Xjw4YS1LaHxUbCRsQyFsOGJPaHdDMFU0az1H
IVhSfSorYDA0NWxqKjFRKDZfPThxKWpqY3IKekcpRjM4c2U5JSk7X0xBNjtXNSV+Zmt9azRyJE5B
PXB9SWt3Yj48WT1hWkd5JXBHP0ZUcU1jYmNDSHB8WlBibCN6CnorQkp+VEgoSl9MJCQoP0hNXjUk
YVlWfi12ZFA7a1M+KEpVITgybCU8ZV42NG5LRlZqKW0qbmBoV1k9Z01sdjNnKAp6MFZCfEQzMmg/
JG00ZjZPKSN3P0wlYSVYR1M1QHUjJnkhYzlwQmx3Szw8bjV4a1JAS0o+eGJVK1Z+NCZtVEcpY1UK
elBrflVUZjQ9XiRUd3pyKSoqPkt1WCpIaiVYY2Uld3BERFJwI3ZeNWU1NFE4QVlae3RiNlNwNjR8
REAjWlkwa3ZyCnpYe1pfOHBRdDY1cWglbTw2M19pRU5TZzA/JilXVmN2cHFLT2paMy1pI041QU5K
Rj0tQyheUkNSVD1HQE9yaCNGPAp6IyV8K0tGJTQ2Wj4yaURtT34pKFNQcDZfST4xNDE5XkJ3eWJN
clgjaGdRbyghT0lgQVF1SSU9QFUzfFkyP2VSezQKenJxZzZodGpIdSVQKXJKZmMkNEFuYVQ7NF8h
Vjc/fCFJc2dHeTwycVpgWkJNOD9IXlApKUwrU0p2fkw/TnRuSH0rCnpeVHRFODI3MkQ5UFNfPlJ2
PmJWIT5TVlFnbzl4LT1qNHdMYWFseztKZnxTKn4pIWNybilFdjdSemBvJXxsZjQ3Rwp6I3w7NEx4
Jnd+KC1VMH5oaGR9Zz5wUE9qZUhGd1peMVA8ZyopIXN2JCN0eH5xYD5OSENvTjd6QWJxNnxPPTVI
PVQKel5RYCZraCtqPTdxWWBAaFkjMXVgKH5nVXcjZ1c/TVh4fUBmZGo3azJ8Mn15TStMJE1fa3Bm
JHkjI0hWM0kwaUBUCnpkWSV+T1p+Z30yKm5CJChHNHN+aHU8RiRPNk9wbFU+UDVNSSpBKGFjeDk/
NlN5Q0d6clA+SSN8R0Y0OEBkNHB0fgp6cmpOYFcte0JfUHlVQXUpPnF5dyVtfXVSTCV3KmwqZUIl
bjcqQjA9eCNtRmsjIXJCQXQjPj9eQXpVJClgZXIoPmwKenBnamZtbXtIU3Fta0h4OXFGJUArQ1Vi
e1ZTRz5nJGNmTGBBZUsjYEo1eEBKNWFXP2hVKUdKbz9iJFpGMzM9I1ZWCnp2amd3NjlzQT84YTZi
R053fEFSa20qS2MrSWJ1fmBsSDx8N3t6NEcoYnFBNiF6LVljbmo2bE8xNjFKelhRP3p0RAp6NV9q
KCpsbE8zd19tSWdtWkhXfm9adFRTbCZtcXp3JDFpLSV5bWVPbG5iUFAqV05UemgrUnA3ejNWWnND
OU99d0YKeiEocl9uWmZ6Q0xYbTw2dHV6QWxvT3VFITdXTjxyVkVrfEd9c2YweWp1cFI2QilOMXdh
SC09a3xrbnltIWU7OU5UCnomWHB3cFRUP0d0PWJ5SHplZGRrZCNReERnZmZga0JiRT1DRDsobiFp
PUFTZmd7NW1Tc2VmPXt8OVBYYjJqb2JQcwp6Qkh5d1hRdyE/QnlrS3Uzdnp+WWgkRj1fOWR4djRk
OW1lfXBgfGdVWVpLRT9hYDRTdjJRajsmXmBGTmc3SmZGeigKek5qJCViPVRtcS1qcHM5WFVkSG9z
cDNtYT45Rytqel45cjZYO1ExbitVJkhmQ28+JWVRI2BDMi1td0EzWSZ6KEc5CnojYDdBVUZYI0Q2
cDVNZ3RufFhjPCZ1YD1UP0w0cE5jPn5ZQUphNlFBR3Rja2Z4dTUzJnAxMU5tZ2RCNHthcnk2WAp6
X15fQD5QMlB7UHZ6ZUk1S1ZoMFJVcSNnS2lJUnlyTUFSY2g/SVVVQFE5RnRIOVp9Ql5eKiZLZzY3
P0JUVHxgfWsKekRWaDg+UThjVFE4O1BuVT5PUHtyTGV2X2Z5aEhfdlQyR1hoc1A3Vlczc0xsI0NU
b2EjaUt3TVN5KytnYHFDTztRCno3RXVMUTV0OCZHK0klVGQ8QjJMSz5PIUxJTD1fWFlvRzM8PW8y
WT5ecGFNakZLLTQ7LS1YU1ZaKU0yOWpuVyUkQQp6Sng8aGFxTWpwYUo1aFV4PkwlKHtxOD1tYVpL
NTZ+PktJV0U1Y0xeUj54bnVLaSgydjxMfHNaJGdzM1MqLTlna20KenFVd29TTzRMbjYpZV98LWlz
RVg/RG9+aW8tOzNTYioyVzYmZzl7a0QzK25rciM2X1UpISFGTiQ0dUNUaXFwJTQzCno0fWNwYGBs
eDBDNnFUZG8qTnAoZzxUV2IrPmJPcERvPF9xbWwkKXNmQlk7KERGKXVpITBCMnBiVlJ3X1ZLJDt3
dQp6WlleQ15oYi02e0AhXlpZSTtrYHlnYCQzP3c5KTVScXwlQGlqN0QwYzVlfCNsaH48amdFQk9M
YUxyOEpvRGZ1RXcKeiRXODVkbGR3ZUpoKVY4JlM2VXJINipaTTImNUczRTMlRW1UQ0hrX2hTb0Vg
P2N0bU5sNmJ3bkYqWWRvU3pUQWBgCno/RiZtJHZXQEc0JmBvO3ZEa1QpQWUmYEF9MlVrbU9EYX5x
OCFxZm49OSRuVEdZK1cxakg4bj5kPmtEfU5RTGg1PQp6TDJlKXpAcCh2b1JZckcxRnN5TGhrIVVD
JnAmdXljSmJtPCNfMzUoczdLP2BBXkBTdH1uY3w1QUZ8dE1zIzJAcykKejZAZXk8ZjJ8Wnk2dDY7
I2ZgZUtWdWc/dXtQJjxqZDhsRikrZl9HLWY4aVJnK2E1YjdXdGQmfmJrPihrYVM3fiVkCnp7U2kx
ZWgrNzNLeXQpLSRCXj09PEttKmI2RlRWPkppKU8mMkwxbENnTk1TS2tMTHIhbmB7eE9edzl0KzZg
dlAhSQp6czQzY18xUn5QSiQ+RThgakJZPFNsOzI5LTEzR1NyaDlnbyNGdyFoRkN7bm1wQCVTMmpp
bnB3b05sUCs1cFIjMUMKekdeXlpsXiRme0RxdGA4U2A9elJBNz00QXFRbmxPRE9jZElMVDd6USNr
UyktUXlJZHcme2VFZFYtTV9IM1RuUV9vCnpScD4ldWxmdyVuazJAZ1k/cUxBRmh8bGYhLUs5djVD
QURSazUpcFNLOGtRRTVtc3FIUUVlU15iVU0/REpSUlgmNAp6YHJ6IWAxREwmRHg+dE9YPmxJTj9W
M211YzdtIVgjbSY+WSgxWiRUeHlGOytUU25Zd2ZoX1cxQnQ4I31HWnh1Wm4KejQqcH5XTHE9Jnlh
en1LaFB4ajhoVUdQVSswQDdxfUY+NnUrNFdUPDF6JHJQRlhNM05GbklZfmBUM28tT2xsM1EjCnpN
bnZ+SXQ1R3IyMlNOYGR1VERTRSorWnZpa0JKJTI/fHpzOzFzan59T2lWYklkNURZKU80Xj1DRnpC
YnIpI19Jdwp6bjkxUiYkQWYjYDgxPyh0bWEhMDRzbnJjKTVAUDh8OHw5Nip3Q0t4JlpxPy1RJSpv
KzB4fE52PUYrTj1CPHVrKzEKejVLa0h8U3ttdD4zfGRsV0FRN2dPUkE/fjBhJndXJSM3cmkpc25B
NTxffG9fNEhLP2JwbClnMm1pIWduIU4jQXkzCnp4a2EjV0dfJmJuI30rSlJZLWtAQSpQfXpCNSp1
Xm5Gam0tIXZTY19qTmgzanpXVHR3JiFJWD8qTWN0Iz1ramx9Xwp6Yk9rRmdqVHQkRmB1Kztre2cx
QVNEZihFZE1DbGFlT2BAejk8c0c3b2kxSGh2VHJiSzhNRVM1Tjl9e0pfRDdUQXAKenc8ciZhQH58
azQjPWolQEFCYmB3RWVHRmA/fjZyd3Aod3xUYSo4TnRpRUAhQm14ezdSbCgmZXxFNlJXPCpORX55
CnpRRW45Rnc/KXx7JHxwdG5qM3tAQ2EtUyM8aVNxWk45TEhZJmEoZDJIaDM9SEZtOXJ0fntUNmZy
YCl3OTl4YFE8Zgp6JmJqMlM2PjwtcExtJXp2YmJhPzZhdkA8PCpFIV5aTGhqTFgkb1lpYXpudyNs
aikhelRjTWRzXkV8JDtwOT57d2oKej99NUFyQCpjPjBBbiQ+XjJsNWBzZG0hKER6Wih5WG5PSVJq
cm1GckRUaVk7K2YmdTRPeD9Iei0tOEhNJlMzKjZlCnpGOG9UVVUjM29+MilKOUFmIysma3YmTXpM
YnFAeXYyIXV0fXg+bDk1d2pSV3NgRE48NzBQWE5NX0hOSWVFPkg4Rgp6dUJOQ3Y8WWxBYE9mUkJG
dHJfNDg0QUstaUxJd1Q3RUJeejE3ZWNwP1deTUdGZzMhJEcoY2ZlKVQ3KVhiUD9LZXwKejVtZDZ3
dF99RCtMOWVvY3wzJi1+aWBgdndMJlYyQVMqWT8wckVDYGFEdzI9fkMxJWF+e0ZvYVFGMjc7ZjNZ
VmNECnpgKk1xPXdnd1NBZ0A/cUpUZ3EhV3U+X1dvPTkpcHheSj1TPTc2ZipeZW1tfDY+VFcpfUYw
azYoTFJJeXNpbj1fMAp6I1R8JmtjUCFNKjhFfG5odzlNVllSa3cwaGxNPUJaMjVkYCpqWSlWN3Vj
M0cqcCo5blQ7bTs5VkZSQ0lUelktd1gKelBSXmo5ck5AdXhITClKYnUpSylBY19Me3lgPGY3aWpm
U3tQUzRNX25veiFZZWhMYTkpNjFTVWtUU0tje2pVazElCnorP0xfQXhEaXxTa1dgPEU9MkAtJnVM
QlVRTUhyZGJoZEpCVHFPQFFySDI7V3NSQSZ5KCR3cyUmUFplNmFCN19LZgp6VEtmMVB2dnFCbmQ2
Sm1ROHNWJTBmWDIrPSpLPz1AOCViclM0KEp7YmUyN0UlcEJ2cWtNcSNTayFjcDI4LTVqO3oKektR
JTxTcUhRe2s+TWVXSGhffkZ3NXJ2WFRQYWo4Tk1kNT16JXV6KH5eQVI1OWkybz07cThoPSRLOHx4
M2pjfXpXCnozNH0yRlImaF9aNj4+PWJudEB1YkN5MEx9O2M0TWh0eTRmVEJfMUxlNFR5Mi1ZcEti
RkFCX3JLRXpSKG87KXpCUwp6e0VyTWJKPD8/PlR9JHl9MWZEXn4tUXJAaXFISFZ1SSlfamxfcik2
QnZGaio4UEEoNl95ISVYO0w7cTtmJEZhcksKeiVBUG16ejdDaX5yPn5nOD58Sys+UFQ+RVZiaj9H
a3cyIWptXyskSitJTyQ7JUFJMzgjS0RlZ35BWDh5LTstPigxCnoxb0F6Q0pfYEQxMXRQV05eSWpB
QV5FSSVKUzNwemVkfUxqZWJ5SjNhRWBTUkIhRiZPSjMxQTxhQjNgeCRUMDBragp6Z0x4MXU7UC16
NlNWdEYtQj4wOEMwREdpPnFUNyFiOzFPbTJPN2FVKSorcDQ1V2p6YmdvUE1sdnYwb0xxVDR9K3MK
emhNTDBjYTNMJHlMO1dtUygxPUdpK3tefEZiWjR7YHFLfTBwOHdJbDJDKHdEXjNRYjM9QERFZmYq
dDNPfXRKKEkjCnoqfFhSU2c7aldQP3FzX1FZdXNNPzBmT3g+KUU3Wl51JmBFOHVSPlFoI2hIJiUp
QGRoYENfNzQ3K2pSc2Y+eSt0Ywp6Xi1XKj10JiF6WXhnP2NIQl87U2RzRHtjQ3NkSCMrcFEqZ09U
PFM3YVFYRzIoViUxKTFBZylwYXRealZ0U0EwOUoKemVDKD92TGdCbkpXYTxDd0AmblhRJUVEQVgy
Pz1wPGVpMkBWRUVgak1pbDArbXdgaVpuI0gwNUExVV9BYXNlS3g2CnoxXis0cD88d3w5Yl5DeE5s
PERnTCkjRnAyOSpiVzhKSG0qIXYpTVlQSHRDb293UnNRcTxIMWFpPWFqJXtkczR1bwp6di0lckBG
VW0kRXJUPnFMQnlpMTRVSD5CQkAjdyF4Xmp9SCFTQHUqRCZhI0p8RWMpSzA0fVVwOXchdGtOKkkl
dzwKemd2JldANj9sPXIkQSRiJjAoYXNeNFFsVGJ4SiVVRUVwV0d9LXowRld6PmYkbDNIKz9VZUY3
ZzR4SlVIPXchcm5HCnplbjgrN1FCUG04KDBJQjlDZl5lNzZuS2B2VD5AWDEjek5uMTAjXiMkRCk0
Y0U9XzNRUHNSWF8xPDklNHZtdGZMPgp6V2MxeEFePjxZMGVAQGB+RUE7eDgxd0puNm5Fbj9IJD02
VFJAcH1TeTNPcGNpeHhobVRib21+RXphO1FjZnV7LUYKemNCUVV3dkF7aDdlKzN2Uz4xUUs7eHBm
U2RlJSkpcC0jNmV0OH1La19MZ1AmUCVRJFg+bHp2U3o7T1YtMnJyeFMhCno8b1pQKTZYZSl1eiEz
dyEkQUREPmUkYXApRzJtX2stZkYtKjRTMlQhQTI4cm80ZnU1ZmUlcFpHSHtkQFRASlJ6cwp6OFNx
Zjc0Y1khMFd4ISglXztMZmoodHhLTUBONUhLWHV3TiFvVm93WTRFUjw5NGpTLWsxQ0FUO1cmezNf
MHEtPjYKentSVnRrJE1Ca2Q5V35WVjh9TGJrSlRgb1dqaHRiTlg0cnEoQkJhfXA+WDI/bmF2e3x0
eHNlKT5KVjsoNzEqciolCnplczVjaGJQVz1ZOD58d15pbko4ekl3YWFHOVoxKEIoZFJXenEtdnlQ
TkgtJFU5IWMrRSVhSytmdHdnRnRxSUgpeAp6I0c4QDZoSTkra3R3QGJYdjxCbTxxfkd3V2tkYDNY
a25Ca1I3c24kcFNJKEpHS0xPX1E9ek1NOUBJektFRlo8QSMKelRmQChieGgjSSUld0BJR3NuNVdv
PDZ0Z31wUztnekBlYCR5JjV4VyRDTz9rbUdRKUl8R19kJmxeNFV6QkIrbkEwCnpnSm12TG9RIWpz
YGwwYzJjKUlQTWI2VXFNPUhOLXgjbEp5dmlOazBQKG9kaipCQFU/cUBsSjZQJjR4SVdYMlhnYwp6
cUBQdUA+KGkmIVlAUnJeWDB5XktTPnYxR3hkSCVSUHxzaWUoez14d0ZhMnFxeHYlPzFFYFFNbmxT
Z016UVpOUSMKemwrVEkzZlNkS29uLWhRR0A0N2kwSnREKGRkT1N1YURIQHx3SlFsO3Ilekxwdzsp
UGckNkhkUFp5Qmhoayp+a01BCnolKzt0clg7ZyVQXm9PaWJ5bVkhNkBrdCpaQ25+NWBmMDcjYyVk
NHhBenFQcz0jVXhFUChNODNaRGMoQF5oYk9HUgp6aV8kd095QFh+KExPPjQyS21jRyFadUEyQDlg
YF9iUj18VUpYXm4jKzRqMkRNPmtERVZkWmoqMkV8LWFCcStmfCQKeihNJmkpQ3EqM050WjNLRlQ2
fWREb3syQnkqNUxhI3pqdE9oPGU4fnw7Z2x9S19nWkQxKT5kfHdjdmFNZ00qUTxQCnpAJHB8K3ZA
MmBpUm0mQkdpXjU3U15UdmlkNVZIeEYyNykwTkhnaXFJKXZsfU9xKHk/NTZ0YEZge0xASGx6LSNq
PAp6S0lVcTFWLTMxKSRyNE5pa043ezhlI09GRS1lIV9eJkoqOFNhIX1ENDNPNGIwKVplMHItZT44
cUlxMUphVzxUTyQKekJgOWtaQDNINlQ2Rlh3PWJeNldvZFRecTgyO0I2VVZHP01aUzR8IUlEYzk1
cThOJjdXWT5GQyNXP2V8LWcybyRHCnpFdDNsUHpycTZ4PUslZipVRmxxMGJMUCpQcWdXYShiTFB5
UktXRnk1eHc5MztRZWx9anpoUEZ4dGNxQztTSUAwKgp6bSRRZX5OfWJEb3FLdUJOKjtzVWFTTkhO
fGNlSzZHZCYkMylvOyk8fnY1U19SeH1QaWtFNz1FXmNLLUNUdkcwdksKemNKdCUhejRxd2kjZjlI
bGBxbEY1c0BpdCs5e2NwPTNyRF91YEtHWmVycmUlLT5EfHg5SDt1bzNfTnpQWXxNOVc9CnpVcGd+
bC03KE0wPVlQMjJrS052aVgtOXtBPi1eQUYmO0dKIVYqQ0QlbUNyWFhBRz5ZU2lyKmU2OGdYVFQ8
O241Zwp6cnhLbEk8PTFUYVBVKyU1eWpsRWspVjIxJT9qM2t9c0hidCZtO05NS29AblUzOylkVE9m
MylTaiZKKnVfe2pUakIKekgxOVI8eXRWZGNyK0BtM1FMbW89Oyp4c35FWkRpX3FTYT44UlI3NWJz
LU5IWD1rTT5JZWZeXj1SeX0lVmBYeTY3Cnp7UDx6YG1tRXVQc3FGTmRCWihlUGJwRmJGQW4kPl4y
bDVgc2RtIShEeWEpMGckYV41fmZ4SEx1OT57d2o/fTVBcgp4QCpjPjBBbiQ+XjJsNWBzZG0hKER5
YSkwZyRhXjV+ZnhITHU5Pnt3aj99NUFyQCpjPjA7UDFAP3t8JiVNS1M9LXAKCmxpdGVyYWwgMApI
Y21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRl
cmF0b3IuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKaW5k
ZXggMzFhM2YwMmIzZWNhOGUwNTNkZDUyNTI1MDUxMjUzNWZlMTBiYmIzYi4uYzZmMDE5ZDMwM2Q1
YzQ3MjcwYzEyNmViYjU0ODJjNTMzOTgyMzNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
dGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0
QnJlYWtJdGVyYXRvci5jcHAKQEAgLTI5LDkgKzI5LDYgQEAKICNpbmNsdWRlIDx3dGYvQXRvbWlj
cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIAotLy8gRklYTUU6IFRoaXMg
bmVlZHMgYSBiZXR0ZXIgbmFtZQotI2RlZmluZSBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQgKFBM
QVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDExMDApKQotCiBuYW1lc3BhY2UgV1RGIHsKIAogLy8gSXRlcmF0b3IgaW5p
dGlhbGl6YXRpb24KQEAgLTU5LDYgKzU2LDEyIEBAIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciog
aW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGNvbnN0IGNoYXIqIGJyZWFrUnVsZXMpCiAKICNl
bmRpZgogCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKK1RleHRCcmVha0l0
ZXJhdG9yKiBpdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0IHJ1bGVTZXQpCit7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKIAogLy8gSXRlcmF0b3IgdGV4dCBzZXR0aW5n
CiAKQEAgLTE2NSwxMzEgKzE2OCwxNSBAQCBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVh
a0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1v
dmVtZW50SXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykK
LSAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRv
ciBydWxlcyBvZiBJQ1UgNTcKLSAgICAvLyA8aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcv
cmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KLSAg
ICAvLyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlz
dGVkIGJlbG93OgotICAgIC8vICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1h
cmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7Ci0gICAgLy8gKiBSZW1vdmVk
IHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNo
YXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQg
YSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdl
cyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKLSAgICAvLyAqIEFkZGVkIHJ1bGVzIHRo
YXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0
aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0gICAgLy8gKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9u
YWwgaW5kaWNhdG9yIHN5bWJvbHMuCi0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGtSdWxlcyA9Ci0g
ICAgICAgICIkQ1IgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07Igot
ICAgICAgICAiJExGICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1dOyIK
LSAgICAgICAgIiRDb250cm9sID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJv
bH1dOyIKLSAgICAgICAgIiRWb2ljZU1hcmtzID0gW1xcdUZGOUVcXHVGRjlGXTsiIC8vIEphcGFu
ZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCi0gICAgICAgICIkRXh0ZW5kICA9
IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXFx1
MEUzMCBcXHUwRTMyIFxcdTBFNDUgXFx1MEVCMCBcXHUwRUIyXV07IgotICAgICAgICAiJFNwYWNp
bmdNYXJrID0gW1tcXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31dIC0gJEV4dGVu
ZF07IgotICAgICAgICAiJEwgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBM
fV07IgotICAgICAgICAiJFYgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBW
fV07IgotICAgICAgICAiJFQgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBU
fV07IgotICAgICAgICAiJExWICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBM
Vn1dOyIKLSAgICAgICAgIiRMVlQgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
TFZUfV07IgotICAgICAgICAiJEhpbjAgICAgPSBbXFx1MDkwNS1cXHUwOTM5XTsiIC8vIERldmFu
YWdhcmkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkSGluViAgICA9IFxcdTA5NEQ7IiAvLyBE
ZXZhbmFnYXJpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkSGluMSAgICA9IFtcXHUwOTE1LVxcdTA5
MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkQmVuMCAgICA9
IFtcXHUwOTg1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAg
IiRCZW5WICAgID0gXFx1MDlDRDsiIC8vIEJlbmdhbGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRC
ZW4xICAgID0gW1xcdTA5OTUtXFx1MDlCOV07IiAvLyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEK
LSAgICAgICAgIiRQYW4wICAgID0gW1xcdTBBMDUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0
ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRQYW5WICAgID0gXFx1MEE0RDsiIC8vIEd1cm11a2hpIFNp
Z24gVmlyYW1hCi0gICAgICAgICIkUGFuMSAgICA9IFtcXHUwQTE1LVxcdTBBMzldOyIgLy8gR3Vy
bXVraGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEd1ajAgICAgPSBbXFx1MEE4NS1cXHUw
QUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEd1alYgICAgPSBc
XHUwQUNEOyIgLy8gR3VqYXJhdGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRHdWoxICAgID0gW1xc
dTBBOTUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIk
T3JpMCAgICA9IFtcXHUwQjA1LVxcdTBCMzldOyIgLy8gT3JpeWEgTGV0dGVyIEEsLi4uLEhhCi0g
ICAgICAgICIkT3JpViAgICA9IFxcdTBCNEQ7IiAvLyBPcml5YSBTaWduIFZpcmFtYQotICAgICAg
ICAiJE9yaTEgICAgPSBbXFx1MEIxNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBLYSwuLi4s
SGEKLSAgICAgICAgIiRUZWwwICAgID0gW1xcdTBDMDUtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0
dGVyIEEsLi4uLEhhCi0gICAgICAgICIkVGVsViAgICA9IFxcdTBDNEQ7IiAvLyBUZWx1Z3UgU2ln
biBWaXJhbWEKLSAgICAgICAgIiRUZWwxICAgID0gW1xcdTBDMTQtXFx1MEMzOV07IiAvLyBUZWx1
Z3UgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEthbjAgICAgPSBbXFx1MEM4NS1cXHUwQ0I5
XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkS2FuViAgICA9IFxcdTBD
Q0Q7IiAvLyBLYW5uYWRhIFNpZ24gVmlyYW1hCi0gICAgICAgICIkS2FuMSAgICA9IFtcXHUwQzk1
LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWwwICAg
ID0gW1xcdTBEMDUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAg
ICAgICIkTWFsViAgICA9IFxcdTBENEQ7IiAvLyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKLSAgICAg
ICAgIiRNYWwxICAgID0gW1xcdTBEMTUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkUkkgICAgICA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IiAv
LyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCi0gICAgICAgICIkWldKICAgICA9IFxcdTIwMEQ7
IiAvLyBaZXJvIHdpZHRoIGpvaW5lcgotICAgICAgICAiJEVtb2ppVmFyID0gW1xcdUZFMEZdOyIg
Ly8gRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCi0jaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUyNkY5
IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0Et
XFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAwMUY0
NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxVMDAw
MUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcgXFxV
MDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcg
XFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAwMUY2
QjQtXFxVMDAwMUY2QjZdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVu
Y2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxc
dTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxV
MDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAg
XFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0
N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAw
MUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxV
MDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMg
XFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MThdIDsiIC8vIEVt
b2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNlCi0gICAgICAgICIkRW1v
amlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJd
OyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIk
RW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAw
MDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxc
VTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5
IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFG
NDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAw
MDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxc
VTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2Ug
Rml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAgICAgICAgIiRFbW9qaU1vZHMgPSBbXFxV
MDAwMUYzRkItXFxVMDAwMUYzRkZdOyIgLy8gRml0enBhdHJpY2sgbW9kaWZpZXJzCi0gICAgICAg
ICIhIWNoYWluOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEhUklO
b0NoYWluOyIKLSNlbmRpZgotICAgICAgICAiISFmb3J3YXJkOyIKLSAgICAgICAgIiRDUiAkTEY7
IgotICAgICAgICAiJEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsiCi0gICAgICAgICIoJExWIHwg
JFYpICgkViB8ICRUKTsiCi0gICAgICAgICIoJExWVCB8ICRUKSAkVDsiCi0jaWYgQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqIC8gJFJJOyIKLSAgICAg
ICAgIiRSSSAkUkkgJEV4dGVuZCo7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0
ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSNlbHNl
Ci0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14kQ29u
dHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotICAgICAgICAiJFJJICRSSSAvICRSSTsiCi0g
ICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAiJEhpbjAgJEhpblYgJEhpbjE7IiAv
LyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRCZW4wICRCZW5WICRCZW4x
OyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkUGFuMCAkUGFuViAkUGFu
MTsiIC8vIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRHdWowICRHdWpWICRH
dWoxOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE9yaTAgJE9yaVYg
JE9yaTE7IiAvLyBPcml5YSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkVGVsMCAkVGVsViAk
VGVsMTsiIC8vIFRlbHVndSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkS2FuMCAkS2FuViAk
S2FuMTsiIC8vIEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE1hbDAgJE1hbFYg
JE1hbDE7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFpXSiAkRW1v
amlGb3JTZXFzOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwotICAgICAg
ICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IiAvLyBEb24ndCBicmVhayBi
ZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3Rvcikg
YW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0gICAgICAgICIhIXJldmVyc2U7IgotICAgICAgICAi
JExGICRDUjsiCi0gICAgICAgICIoJEwgfCAkViB8ICRMViB8ICRMVlQpICRMOyIKLSAgICAgICAg
IigkViB8ICRUKSAoJExWIHwgJFYpOyIKLSAgICAgICAgIiRUICgkTFZUIHwgJFQpOyIKLSNpZiBB
RERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkkgLyAkRXh0
ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4
dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJrIFte
JENvbnRyb2wgJENSICRMRl07IgotI2Vsc2UKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRDb250
cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZd
OyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkkgJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7IgotI2Vu
ZGlmCi0gICAgICAgICIkSGluMSAkSGluViAkSGluMDsiIC8vIERldmFuYWdhcmkgVmlyYW1hIChi
YWNrd2FyZCkKLSAgICAgICAgIiRCZW4xICRCZW5WICRCZW4wOyIgLy8gQmVuZ2FsaSBWaXJhbWEg
KGJhY2t3YXJkKQotICAgICAgICAiJFBhbjEgJFBhblYgJFBhbjA7IiAvLyBHdXJtdWtoaSBWaXJh
bWEgKGJhY2t3YXJkKQotICAgICAgICAiJEd1ajEgJEd1alYgJEd1ajA7IiAvLyBHdWphcmF0aSBW
aXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE9yaTEgJE9yaVYgJE9yaTA7IiAvLyBHdWphcmF0
aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFRlbDEgJFRlbFYgJFRlbDA7IiAvLyBUZWx1
Z3UgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRLYW4xICRLYW5WICRLYW4wOyIgLy8gS2Fu
bmFkYSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE1hbDEgJE1hbFYgJE1hbDA7IiAvLyBN
YWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgJFpXSjsi
IC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaU1v
ZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxl
dmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0
cmljayBtb2RpZmllcgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiISFz
YWZlX3JldmVyc2U7IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiWyRFbW9qaVZhciAk
RW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsiCi0g
ICAgICAgICIkUkkgJFJJKzsiCi0gICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVt
b2ppTW9kc10rOyI7Ci0jZWxzZQotICAgICAgICAiWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVt
b2ppRm9yTW9kczsiCi0gICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9k
c10rOyIKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiEhc2FmZV9mb3J3YXJk
OyI7Ci0jZW5kaWYKLSAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1v
dmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoa1J1bGVzKTsKKwor
ICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVT
ZXQ6OkN1cnNvck1vdmVtZW50KSkgeworICAgICAgICBpZiAoYXV0byogaXRlcmF0b3JXaXRoVGV4
dCA9IHNldFRleHRGb3JJdGVyYXRvcigqaXRlcmF0b3IsIHN0cmluZykpCisgICAgICAgICAgICBy
ZXR1cm4gaXRlcmF0b3JXaXRoVGV4dDsKKyAgICAgICAgdWJya19jbG9zZShyZWludGVycHJldF9j
YXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpKTsKKyAgICB9CisKKyAgICAKKyAgICBzdGF0
aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0
aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzKTsKICNl
bHNlIC8vIFBMQVRGT1JNKElPUykKICAgICAvLyBVc2UgdGhlIHNwZWNpYWwgVGhhaSBjaGFyYWN0
ZXIgYnJlYWsgaXRlcmF0b3IgZm9yIGFsbCBsb2NhbGVzCiAgICAgc3RhdGljIFRleHRCcmVha0l0
ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9y
KFVCUktfQ0hBUkFDVEVSLCAidGgiKTsKQEAgLTMxNyw0NDIgKzIwNCwyMCBAQCB2b2lkIHJlbGVh
c2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiAgICAgTGlu
ZUJyZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQb29sKCkucHV0KGl0ZXJhdG9yKTsKIH0KIAotc3Rh
dGljIGNvbnN0IGNoYXIqIHVheDE0UHJvbG9ndWUgPQotICAgICIhIWNoYWluOyIKLSAgICAiISFM
QkNNTm9DaGFpbjsiCi0gICAgIiEhbG9va0FoZWFkSGFyZEJyZWFrOyI7Ci0KLXN0YXRpYyBjb25z
dCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQmVmb3JlID0KLSAgICAvLyBleHBsaWNpdGx5IGVudW1l
cmF0ZSAkQ0ogc2luY2UgSUNVIHZlcnNpb25zIHByaW9yIHRvIDQ5IGRvbid0IHN1cHBvcnQgOkxp
bmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOgotICAgICIkQ0ogPSBbIgotI2lm
IChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9O
VU0gPj0gOSkKLSAgICAiOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOiIK
LSNlbHNlCi0gICAgIlxcdTMwNDFcXHUzMDQzXFx1MzA0NVxcdTMwNDdcXHUzMDQ5XFx1MzA2M1xc
dTMwODNcXHUzMDg1XFx1MzA4N1xcdTMwOEVcXHUzMDk1XFx1MzA5NlxcdTMwQTFcXHUzMEEzXFx1
MzBBNVxcdTMwQTciCi0gICAgIlxcdTMwQTlcXHUzMEMzXFx1MzBFM1xcdTMwRTVcXHUzMEU3XFx1
MzBFRVxcdTMwRjVcXHUzMEY2XFx1MzBGQyIKLSAgICAiXFx1MzFGMFxcdTMxRjFcXHUzMUYyXFx1
MzFGM1xcdTMxRjRcXHUzMUY1XFx1MzFGNlxcdTMxRjdcXHUzMUY4XFx1MzFGOVxcdTMxRkFcXHUz
MUZCXFx1MzFGQ1xcdTMxRkRcXHUzMUZFXFx1MzFGRiIKLSAgICAiXFx1RkY2N1xcdUZGNjhcXHVG
RjY5XFx1RkY2QVxcdUZGNkJcXHVGRjZDXFx1RkY2RFxcdUZGNkVcXHVGRjZGXFx1RkY3MCIKLSNl
bmRpZgotICAgICJdOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3Vz
dG9tTG9vc2VDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRF
WF9TVUIgPSBbXFx1MDAyMVxcdTAwM0ZcXHVGRjAxXFx1RkYxRl07IgotICAgICIkSURfU1VCID0g
Jyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSBb
XFx1MDAzQVxcdTAwM0JdOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUyMDNDXFx1MjA0N1xcdTIwNDhc
XHUyMDQ5XFx1MzAwNVxcdTMwMUNcXHUzMDNCXFx1MzA5RFxcdTMwOUVcXHUzMEEwXFx1MzBGQlxc
dTMwRkRcXHUzMEZFXFx1RkYxQVxcdUZGMUJcXHVGRjY1XTsiCi0gICAgIiRQT19TVUIgPSBbXFx1
MDAyNVxcdTAwQTJcXHUwMEIwXFx1MjAzMFxcdTIwMzJcXHUyMDMzXFx1MjEwM1xcdUZGMDVcXHVG
RkUwXTsiCi0gICAgIiRQUl9TVUIgPSBbXFx1MDAyNFxcdTAwQTNcXHUwMEE1XFx1MjBBQ1xcdTIx
MTZcXHVGRjA0XFx1RkZFMVxcdUZGRTVdOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAk
RVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07IgotICAgICIk
TlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0
b21Mb29zZU5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsi
Ci0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIK
LSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDA1XFx1MzAzQlxcdTMw
OURcXHUzMDlFXFx1MzBGRFxcdTMwRkVdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBS
X1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsiCi0gICAg
IiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1
c3RvbU5vcm1hbENKSyA9Ci0gICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAgICAi
JEVYX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIK
LSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDFDXFx1MzBBMF07Igot
ICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0g
WyRDSiAkQkFfU1VCICROU19TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pLID0KLSAgICAiJEJB
X1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAg
ICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcn
OyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FE
RCA9IFskQ0pdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1
YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAg
ICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcn
OyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NV
QiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9ICcnOyIKLSAgICAi
JE5TX0FERCA9IFskQ0pdOyI7Ci0KLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmlj
dE5vbkNKSyAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksKLSNkZWZpbmUgdWF4
MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHRDSksgICAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0
b21Ob3JtYWxDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25DSksg
ICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSksKLQotc3RhdGljIGNvbnN0IGNo
YXIqIHVheDE0QXNzaWdubWVudHNBZnRlciA9Ci0gICAgIiRBSSA9IFs6TGluZUJyZWFrID0gQW1i
aWd1b3VzOl07IgotICAgICIkQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsiCi0gICAg
IiRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsiCi0gICAgIiRC
QiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07IgotICAgICIkQksgPSBbOkxpbmVCcmVh
ayA9IE1hbmRhdG9yeV9CcmVhazpdOyIKLSAgICAiJEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19C
b3RoOl07IgotICAgICIkQ0IgPSBbOkxpbmVCcmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsiCi0g
ICAgIiRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246XTsiCi0gICAgIiRDTSA9
IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsiCi0gICAgIiRDUCA9IFs6TGluZUJyZWFr
ID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsiCi0gICAgIiRDUiA9IFs6TGluZUJyZWFrID0gQ2Fycmlh
Z2VfUmV0dXJuOl07IgotICAgICIkRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0g
JEVYX1NVQl07IgotICAgICIkR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsiCi0jaWYgKFVfSUNV
X1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5
KQotICAgICIkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsiCi0jZWxzZQotICAg
ICIkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1dOyIKLSNlbmRpZgotICAgICIkSFkgPSBb
OkxpbmVCcmVhayA9IEh5cGhlbjpdOyIKLSAgICAiJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOyIK
LSAgICAiJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOyIKLSAgICAiJElEID0gW1tbWzpMaW5lQnJl
YWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOyIKLSAgICAiJElO
ID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOyIKLSAgICAiJElTID0g
W1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07IgotICAgICIkSkwgPSBb
OkxpbmVCcmVhayA9IEpMOl07IgotICAgICIkSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07IgotICAg
ICIkSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07IgotICAgICIkTEYgPSBbOkxpbmVCcmVhayA9IExp
bmVfRmVlZDpdOyIKLSAgICAiJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsiCi0gICAg
IiROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICRO
U19TVUJdOyIKLSAgICAiJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07IgotICAgICIkT1Ag
PSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsiCi0gICAgIiRQTyA9IFtbOkxpbmVC
cmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07IgotICAgICIkUFIgPSBbWzpMaW5l
QnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07IgotICAgICIkUVUgPSBbOkxpbmVC
cmVhayA9IFF1b3RhdGlvbjpdOyIKLSAgICAiJFJJID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZG
XTsiCi0gICAgIiRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIk
U0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOyIKLSAgICAiJFNQID0gWzpMaW5lQnJlYWsg
PSBTcGFjZTpdOyIKLSAgICAiJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07Igot
ICAgICIkV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9pbmVyOl07IgotICAgICIkWFggPSBbOkxp
bmVCcmVhayA9IFVua25vd246XTsiCi0gICAgIiRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpd
OyIKLSAgICAiJFpXSiA9IFxcdTIwMEQ7IgotICAgICIkRW1vamlWYXIgPSBcXHVGRTBGOyIKLSNp
ZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQw
IFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFG
M0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAw
MDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxc
VTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2
LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFG
NjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAw
MDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2XTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBh
dGUgaW4gWldKIHNlcXVlbmNlcwotICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZG
OSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxV
MDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYt
XFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0
NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAw
MUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxV
MDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYg
XFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5
MThdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNlCi0g
ICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUw
MDAxRjQ4Ql07IgotICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBD
IFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFG
M0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAw
MDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxc
VTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFB
IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFG
NjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAv
LyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAgICAiJEVt
b2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07IgotICAgICIkZGljdGlvbmFyeSA9
IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIkQUxQbHVzID0gWyRBTCAk
QUkgJFNBICRTRyAkWFhdOyIKLSAgICAiJEFMY20gPSAkQUxQbHVzICRDTSo7IgotICAgICIkQkFj
bSA9ICRCQSAkQ00qOyIKLSAgICAiJEJCY20gPSAkQkIgJENNKjsiCi0gICAgIiRCMmNtID0gJEIy
ICRDTSo7IgotICAgICIkQ0xjbSA9ICRDTCAkQ00qOyIKLSAgICAiJENQY20gPSAkQ1AgJENNKjsi
Ci0gICAgIiRFWGNtID0gJEVYICRDTSo7IgotICAgICIkR0xjbSA9ICRHTCAkQ00qOyIKLSAgICAi
JEhMY20gPSAkSEwgJENNKjsiCi0gICAgIiRIWWNtID0gJEhZICRDTSo7IgotICAgICIkSDJjbSA9
ICRIMiAkQ00qOyIKLSAgICAiJEgzY20gPSAkSDMgJENNKjsiCi0gICAgIiRJRGNtID0gJElEICRD
TSo7IgotICAgICIkSU5jbSA9ICRJTiAkQ00qOyIKLSAgICAiJElTY20gPSAkSVMgJENNKjsiCi0g
ICAgIiRKTGNtID0gJEpMICRDTSo7IgotICAgICIkSlZjbSA9ICRKViAkQ00qOyIKLSAgICAiJEpU
Y20gPSAkSlQgJENNKjsiCi0gICAgIiROU2NtID0gJE5TICRDTSo7IgotICAgICIkTlVjbSA9ICRO
VSAkQ00qOyIKLSAgICAiJE9QY20gPSAkT1AgJENNKjsiCi0gICAgIiRQT2NtID0gJFBPICRDTSo7
IgotICAgICIkUFJjbSA9ICRQUiAkQ00qOyIKLSAgICAiJFFVY20gPSAkUVUgJENNKjsiCi0gICAg
IiRSSWNtID0gJFJJICRDTSo7IgotICAgICIkU1ljbSA9ICRTWSAkQ00qOyIKLSAgICAiJFdKY20g
PSAkV0ogJENNKjsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRGb3J3YXJkID0KLSAgICAi
ISFmb3J3YXJkOyIKLSAgICAiJENBTl9DTSA9IFteJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENN
XTsiCi0gICAgIiRDQU5UX0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07IgotICAg
ICIkQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOyIKLSAgICAiJEFM
X0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRTWSAkV0ogJEdMICRPUCAkUVUgJEJB
ICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsiCi0gICAgIiRBTF9GT0xMT1cgPSBbJEFMX0ZPTExP
V19OT0NNICRBTF9GT0xMT1dfQ01dOyIKLSAgICAiJExCNEJyZWFrcyA9IFskQksgJENSICRMRiAk
TkxdOyIKLSAgICAiJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5MXTsiCi0gICAgIiRM
QjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOyIKLSAgICAiJExCOE5vbkJyZWFrcyA9IFtbJExC
NE5vbkJyZWFrc10gLSBbJFpXXV07IgotICAgICIkTEIxOE5vbkJyZWFrcyA9IFskTEI4Tm9uQnJl
YWtzIC0gWyRTUF1dOyIKLSAgICAiJExCMThCcmVha3MgPSBbJExCOEJyZWFrcyAkU1BdOyIKLSAg
ICAiJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVha3MgLSAkQ0JdOyIKLSAgICAiJEFMUGx1
cyAkQ00rOyIKLSAgICAiJEJBICRDTSs7IgotICAgICIkQkIgJENNKzsiCi0gICAgIiRCMiAkQ00r
OyIKLSAgICAiJENMICRDTSs7IgotICAgICIkQ1AgJENNKzsiCi0gICAgIiRFWCAkQ00rOyIKLSAg
ICAiJEdMICRDTSs7IgotICAgICIkSEwgJENNKzsiCi0gICAgIiRIWSAkQ00rOyIKLSAgICAiJEgy
ICRDTSs7IgotICAgICIkSDMgJENNKzsiCi0gICAgIiRJRCAkQ00rOyIKLSAgICAiJElOICRDTSs7
IgotICAgICIkSVMgJENNKzsiCi0gICAgIiRKTCAkQ00rOyIKLSAgICAiJEpWICRDTSs7IgotICAg
ICIkSlQgJENNKzsiCi0gICAgIiROUyAkQ00rOyIKLSAgICAiJE5VICRDTSs7IgotICAgICIkT1Ag
JENNKzsiCi0gICAgIiRQTyAkQ00rOyIKLSAgICAiJFBSICRDTSs7IgotICAgICIkUVUgJENNKzsi
Ci0gICAgIiRSSSAkQ00rOyIKLSAgICAiJFNZICRDTSs7IgotICAgICIkV0ogJENNKzsiCi0gICAg
IiRDUiAkTEYgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzPyAkTEI0QnJlYWtzIHsxMDB9OyIK
LSAgICAiJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEwMH07IgotICAgICIkQ00rICRMQjRCcmVh
a3MgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsiCi0gICAgIiRDQU5fQ00g
JENNKiBbJFNQICRaV107IgotICAgICIkQ00rIFskU1AgJFpXXTsiCi0gICAgIiRFbW9qaUZvclNl
cXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7IgotICAgICIkQ0FO
X0NNICRDTSs7IgotICAgICIkQ00rOyIKLSAgICAiJENBTl9DTSAkQ00qICRXSmNtOyIKLSAgICAi
JExCOE5vbkJyZWFrcyAkV0pjbTsiCi0gICAgIiRDTSsgJFdKY207IgotICAgICIkV0pjbSAkQ0FO
VF9DTTsiCi0gICAgIiRXSmNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5fQ00gJENN
KjsiCi0gICAgIiRHTGNtICRDQU5UX0NNOyIKLSAgICAiW1skTEI4Tm9uQnJlYWtzXSAtIFskU1Ag
JEJBICRIWV1dICRDTSogJEdMY207IgotICAgICIkQ00rIEdMY207IgotICAgICIkTEI4Tm9uQnJl
YWtzICRDTDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ0w7IgotICAgICIkQ00rICRDTDsiCi0gICAg
IiRMQjhOb25CcmVha3MgJENQOyIKLSAgICAiJENBTl9DTSAkQ00qICRDUDsiCi0gICAgIiRDTSsg
JENQOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkRVg7IgotICAgICIkQ0FOX0NNICRDTSogJEVYOyIK
LSAgICAiJENNKyAkRVg7IgotICAgICIkTEI4Tm9uQnJlYWtzICRJUzsiCi0gICAgIiRDQU5fQ00g
JENNKiAkSVM7IgotICAgICIkQ00rICRJUzsiCi0gICAgIiRMQjhOb25CcmVha3MgJFNZOyIKLSAg
ICAiJENBTl9DTSAkQ00qICRTWTsiCi0gICAgIiRDTSsgJFNZOyIKLSAgICAiJE9QY20gJFNQKiAk
Q0FOX0NNICRDTSo7IgotICAgICIkT1BjbSAkU1AqICRDQU5UX0NNOyIKLSAgICAiJE9QY20gJFNQ
KyAkQ00rICRBTF9GT0xMT1c/OyIKLSAgICAiJFFVY20gJFNQKiAkT1BjbTsiCi0gICAgIigkQ0xj
bSB8ICRDUGNtKSAkU1AqICROU2NtOyIKLSAgICAiJEIyY20gJFNQKiAkQjJjbTsiCi0gICAgIiRM
QjE4Tm9uQnJlYWtzICRDTSogJFFVY207IgotICAgICIkQ00rICRRVWNtOyIKLSAgICAiJFFVY20g
Lj87IgotICAgICIkUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJExCMjBOb25CcmVh
a3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsgIgotICAgICIkQkJjbSBbXiRDQl07Igot
ICAgICIkQkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJEhMY20gKCRIWWNtIHwgJEJB
Y20pIFteJENCXT87IgotICAgICIkU1ljbSAkSExjbTsiCi0gICAgIigkQUxjbSB8ICRITGNtKSAk
SU5jbTsiCi0gICAgIiRDTSsgJElOY207IgotICAgICIkRVhjbSAkSU5jbTsiCi0gICAgIiRJRGNt
ICRJTmNtOyIKLSAgICAiJElOY20gJElOY207IgotICAgICIkTlVjbSAkSU5jbTsiCi0gICAgIiRJ
RGNtICRQT2NtOyIKLSAgICAiJEFMY20gJE5VY207IgotICAgICIkSExjbSAkTlVjbTsiCi0gICAg
IiRDTSsgJE5VY207IgotICAgICIkTlVjbSAkQUxjbTsiCi0gICAgIiROVWNtICRITGNtOyIKLSAg
ICAiJFBSY20gJElEY207IgotICAgICIkUFJjbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIkUE9j
bSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJFBSY20gfCAkUE9jbSk/ICgkT1BjbSB8ICRIWWNt
KT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRDUGNtKT8gKCRQUmNt
IHwgJFBPY20pPzsiCi0gICAgIiRKTGNtICgkSkxjbSB8ICRKVmNtIHwgJEgyY20gfCAkSDNjbSk7
IgotICAgICIoJEpWY20gfCAkSDJjbSkgKCRKVmNtIHwgJEpUY20pOyIKLSAgICAiKCRKVGNtIHwg
JEgzY20pICRKVGNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgz
Y20pICRJTmNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20p
ICRQT2NtOyIKLSAgICAiJFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgz
Y20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRDTSsg
KCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJElTY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiKCRB
TGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207IgotICAgICIkQ00rICRPUGNtOyIKLSAgICAiJENQ
Y20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAotICAgICIkUkljbSAkUkljbTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlW
YXI/ICRFbW9qaU1vZHM7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UmV2ZXJzZSA9Ci0g
ICAgIiEhcmV2ZXJzZTsiCi0gICAgIiRDTSsgJEFMUGx1czsiCi0gICAgIiRDTSsgJEJBOyIKLSAg
ICAiJENNKyAkQkI7IgotICAgICIkQ00rICRCMjsiCi0gICAgIiRDTSsgJENMOyIKLSAgICAiJENN
KyAkQ1A7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRDTSsgJEdMOyIKLSAgICAiJENNKyAkSEw7
IgotICAgICIkQ00rICRIWTsiCi0gICAgIiRDTSsgJEgyOyIKLSAgICAiJENNKyAkSDM7IgotICAg
ICIkQ00rICRJRDsiCi0gICAgIiRDTSsgJElOOyIKLSAgICAiJENNKyAkSVM7IgotICAgICIkQ00r
ICRKTDsiCi0gICAgIiRDTSsgJEpWOyIKLSAgICAiJENNKyAkSlQ7IgotICAgICIkQ00rICROUzsi
Ci0gICAgIiRDTSsgJE5VOyIKLSAgICAiJENNKyAkT1A7IgotICAgICIkQ00rICRQTzsiCi0gICAg
IiRDTSsgJFBSOyIKLSAgICAiJENNKyAkUVU7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAotICAgICIkQ00rICRSSTsiCi0jZW5kaWYKLSAgICAiJENNKyAkU1k7IgotICAgICIkQ00rICRX
SjsiCi0gICAgIiRDTSs7IgotICAgICIkQUxfRk9MTE9XICRDTSsgLyAoWyRCSyAkQ1IgJExGICRO
TCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14kT1AgJENNICRTUF0g
fCBbJEFMIHtlb2Z9XSkpOyIKLSAgICAiWyRQUl0gLyAkQ00rIFskQksgJENSICRMRiAkTkwgJFpX
ICRTUCB7ZW9mfV07IgotICAgICIkTEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtzLSRDTV07IgotICAg
ICIkTEI0QnJlYWtzICRDTSsgJENBTl9DTTsiCi0gICAgIiRMRiAkQ1I7IgotICAgICJbJFNQICRa
V10gWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIlskU1AgJFpXXSAkQ00rICRDQU5fQ007Igot
ICAgICIkRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2ppVmFyPyAkRW1vamlGb3JT
ZXFzOyIKLSAgICAiJENNKyAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogJENNKiAkQ0FOX0NNOyIK
LSAgICAiJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRDQU5UX0NNICRDTSog
JFdKOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkR0wgJENNKiBb
JExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZXV07IgotICAgICIkQ0FOVF9DTSAkQ00qICRH
TDsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRHTDsiCi0gICAgIiRDTCAkQ00rICRDQU5fQ007
IgotICAgICIkQ1AgJENNKyAkQ0FOX0NNOyIKLSAgICAiJEVYICRDTSsgJENBTl9DTTsiCi0gICAg
IiRJUyAkQ00rICRDQU5fQ007IgotICAgICIkU1kgJENNKyAkQ0FOX0NNOyIKLSAgICAiJENMIFsk
TEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ1AgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAg
IiRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJElTIFskTEI4Tm9uQnJlYWtzLSRDTV07
IgotICAgICIkU1kgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIlskQ0wgJENQICRFWCAkSVMg
JFNZXSAkQ00rICRTUCsgJENNKiAkT1A7ICIKLSAgICAiJENNKiAkQ0FOX0NNICRTUCogJENNKiAk
T1A7IgotICAgICIkQ0FOVF9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAiJEFMX0ZPTExPVz8gJENN
KyAkU1AgJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xMT1dfTk9DTSAkQ00rICRTUCsgJENN
KiAkT1A7IgotICAgICIkQ00qICRBTF9GT0xMT1dfQ00gJENNKyAkU1ArICRDTSogJE9QOyIKLSAg
ICAiJFNZICRDTSAkU1ArICRPUDsiCi0gICAgIiRDTSogJE9QICRTUCogJENNKiAkUVU7IgotICAg
ICIkQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIkQ00qICRCMiAkU1AqICRD
TSogJEIyOyIKLSAgICAiJENNKiAkUVUgJENNKiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkUVUgJExC
MThOb25CcmVha3M7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkUVU7IgotICAgICIkQ0FOVF9D
TSAkQ00qICRRVTsiCi0gICAgIiRDTSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBbJExCMjBOb25C
cmVha3MtJENNXTsiCi0gICAgIiRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV0gJENNKiAkQkI7Igot
ICAgICJbXiRDQl0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAoJEhZIHwgJEJBKSAkQ00q
ICRITDsiCi0gICAgIiRDTSogJEhMICRDTSogJFNZOyIKLSAgICAiJENNKiAkSU4gJENNKiAoJEFM
UGx1cyB8ICRITCk7IgotICAgICIkQ00qICRJTiAkQ00qICRFWDsiCi0gICAgIiRDTSogJElOICRD
TSogJElEOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSU47IgotICAgICIkQ00qICRJTiAkQ00qICRO
VTsiCi0gICAgIiRDTSogJFBPICRDTSogJElEOyIKLSAgICAiJENNKiAkTlUgJENNKiAoJEFMUGx1
cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICROVTsiCi0gICAgIiRD
TSogJElEICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUFI7Igot
ICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQTzsiCi0gICAgIigkQ00qICgkUFIgfCAk
UE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElTIHwgJFNZKSkqICRDTSog
JE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykpPzsiCi0gICAgIiRDTSog
KCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7IgotICAgICIkQ00qICgkSlQgfCAkSlYp
ICRDTSogKCRIMiB8ICRKVik7IgotICAgICIkQ00qICRKVCAkQ00qICgkSDMgfCAkSlQpOyIKLSAg
ICAiJENNKiAkSU4gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsiCi0gICAgIiRD
TSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7IgotICAgICIkQ00qICgk
SDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1
cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhM
KSAkQ00qICRJUzsiCi0gICAgIiRDTSogJE9QICRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpOyIK
LSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7IgotI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00qICRSSSAkQ00qICRSSTsiCi0jZW5kaWYKLSAgICAi
JEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7IjsKLQotc3RhdGljIGNvbnN0IGNo
YXIqIHVheDE0U2FmZUZvcndhcmQgPQotICAgICIhIXNhZmVfZm9yd2FyZDsiCi0gICAgIlskQ00g
JE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnldKyBbXiRDTSAk
T1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsiCi0gICAgIiRkaWN0
aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVSZXZl
cnNlID0KLSAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICIkQ00rIFteJENNICRCSyAkQ1IgJExG
ICROTCAkWlcgJFNQXTsiCi0gICAgIiRDTSsgJFNQIC8gLjsiCi0gICAgIiRTUCsgJENNKiAkT1A7
IgotICAgICIkU1ArICRDTSogJFFVOyIKLSAgICAiJFNQKyAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAg
ICAiJFNQKyAkQ00qICRCMjsiCi0gICAgIiRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7IgotICAg
ICIoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOyIKLSAgICAiKCRDTCB8ICRDUCkgJENNKiAo
JE5VIHwgJElTIHwgJFNZKTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KIHN0
YXRpYyBTdHJpbmcgbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMoTGluZUJyZWFrSXRlcmF0b3JN
b2RlIG1vZGUsIGJvb2wgaXNDSkspCiB7Ci0gICAgU3RyaW5nQnVpbGRlciBydWxlc0J1aWxkZXI7
Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFByb2xvZ3VlKTsKLSAgICBydWxlc0J1aWxk
ZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNCZWZvcmUpOwogICAgIHN3aXRjaCAobW9kZSkgewog
ICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTQ6Ci0gICAgICAgIHJ1bGVzQnVpbGRl
ci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdENKSyA6IHVheDE0
QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAg
IHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSktSdWxlcyA6IGxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9k
ZVVBWDE0TG9vc2U6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25D
SkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlQ0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25D
SktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0Tm9ybWFsOgotICAg
ICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5v
cm1hbENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxOb25DSkspOwotICAgICAgICBi
cmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOwogICAg
IGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRTdHJpY3Q6Ci0gICAgICAgIHJ1bGVzQnVp
bGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLIDogdWF4
MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAg
ICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLUnVsZXMgOiBs
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CiAgICAgfQotICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0FmdGVyKTsKLSAgICBydWxlc0J1aWxkZXIu
YXBwZW5kKHVheDE0Rm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFJldmVy
c2UpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZlRm9yd2FyZCk7Ci0gICAgcnVs
ZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVSZXZlcnNlKTsKLSAgICByZXR1cm4gcnVsZXNCdWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICIi
OwogfQogCiAvLyBSZWNvZ25pemUgQkNQNDcgY29tcGxpYW50IHByaW1hcnkgbGFuZ3VhZ2UgdmFs
dWVzIG9mICd6aCcsICdqYScsICdrbycKQEAgLTc4Niw2ICsyNTEsMjQgQEAgVGV4dEJyZWFrSXRl
cmF0b3IqIG9wZW5MaW5lQnJlYWtJdGVyYXRvcihjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSwg
TGluZUJyZWFrSXQKICAgICBpZiAobW9kZSA9PSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNCkK
ICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBsb2NhbGVJc0VtcHR5ID8g
Y3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkgOiBsb2NhbGUuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwgMCwgMCwgJm9wZW5TdGF0dXMpOwogICAgIGVsc2UgeworICAgICAgICBCcmVha2luZ1J1bGVT
ZXQgcnVsZVNldDsKKyAgICAgICAgc3dpdGNoIChtb2RlKSB7CisgICAgICAgIGNhc2UgTGluZUJy
ZWFrSXRlcmF0b3JNb2RlVUFYMTQ6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVh
a2luZ1J1bGVTZXQ6OlVBWDE0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0
TG9vc2U6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVB
WDE0TG9vc2VDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNE5vcm1h
bDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRO
b3JtYWxDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pLOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRTdHJpY3Q6
CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3Ry
aWN0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdE5vbkNKSzsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGl0ZXJhdG9y
Rm9yUnVsZVNldChydWxlU2V0KSkKKyAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcjsKKwogICAg
ICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKICAgICAgICAgYXV0byBydWxlcyA9IG1hcExp
bmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsKICAgICAgICAgdWJya0l0ZXIgPSB1
YnJrX29wZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwg
cnVsZXMubGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0dXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCmluZGV4IGQ5MDMyMTVhZTQxMzdlNGMzYTll
YTM1YjNkMDI1YmY1MmU0NTE4ZWMuLmQyZDA3YzI4ZmI4ZDQwOTllZTk2OWMyMGY1ODQ4OTIyOGZi
MDA3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKQEAgLTM4LDYg
KzM4LDMwIEBAIGVudW0gTGluZUJyZWFrSXRlcmF0b3JNb2RlIHsKICAgICBMaW5lQnJlYWtJdGVy
YXRvck1vZGVVQVgxNFN0cmljdCwKIH07CiAKK2VudW0gY2xhc3MgQnJlYWtpbmdSdWxlU2V0IHsK
KyAgICBDdXJzb3JNb3ZlbWVudCwKKyAgICBVQVgxNENKSywKKyAgICBVQVgxNE5vbkNKSywKKyAg
ICBVQVgxNExvb3NlQ0pLLAorICAgIFVBWDE0TG9vc2VOb25DSkssCisgICAgVUFYMTROb3JtYWxD
SkssCisgICAgVUFYMTROb3JtYWxOb25DSkssCisgICAgVUFYMTRTdHJpY3RDSkssCisgICAgVUFY
MTRTdHJpY3ROb25DSksKK307CisKK2V4dGVybiBjb25zdCBjaGFyKiBjdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
S1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSktS
dWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSktS
dWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25D
SktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLUnVsZXM7CisKK1RleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvckZvclJ1bGVT
ZXQoQnJlYWtpbmdSdWxlU2V0KTsKKwogLy8gVGhpcyBpcyBzaW1pbGFyIHRvIGNoYXJhY3RlciBi
cmVhayBpdGVyYXRvciBpbiBtb3N0IGNhc2VzLCBidXQgaXMgc3ViamVjdCB0bwogLy8gcGxhdGZv
cm0gVUkgY29udmVudGlvbnMuIE9uZSBub3RhYmxlIGV4YW1wbGUgd2hlcmUgdGhpcyBjYW4gYmUg
ZGlmZmVyZW50CiAvLyBmcm9tIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBpcyBUaGFpIHByZXBl
bmQgY2hhcmFjdGVycywgc2VlIGJ1ZyAyNDM0Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0gYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCmluZGV4IGJl
ZjVkYWE2NDI4ODgyMWUyMGYyNjI4YzY4NTVlZThlODhhMzg5MmMuLjZkZjhjZDYwZDZkMjRmYzFl
MDBjMjYzZDk3Y2Q3NGFmNzY0MTJmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
bWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQpAQCAtMjEsMTIg
KzIxLDc1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0
b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKKworI2lm
IGRlZmluZWQoVV9TSE9XX0NQTFVTUExVU19BUEkpCisjdW5kZWYgVV9TSE9XX0NQTFVTUExVU19B
UEkKKyNlbmRpZgorI2RlZmluZSBVX1NIT1dfQ1BMVVNQTFVTX0FQSSAxCisKKyNpbmNsdWRlIDx1
bmljb2RlL3JiYmkuaD4KKyNpbmNsdWRlIDx1bmljb2RlL3VkYXRhLmg+CiAjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgogCitAaW50ZXJmYWNlIFdURkJ1bmRsZUZpbmRlciA6IE5TT2JqZWN0CitA
ZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXVEZCdW5kbGVGaW5kZXIKK0BlbmQKKwogbmFtZXNwYWNl
IFdURiB7CiAKIHN0YXRpYyBjb25zdCBpbnQgbWF4TG9jYWxlU3RyaW5nTGVuZ3RoID0gMzI7CiAK
K1RleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0IHJ1
bGVTZXQpCit7CisgICAgTlNTdHJpbmcgKmZpbGVOYW1lQmFzZTsKKyAgICBzd2l0Y2ggKHJ1bGVT
ZXQpIHsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQ6CisgICAgICAg
IGZpbGVOYW1lQmFzZSA9IEAiQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzIjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLOgorICAgICAgICBmaWxl
TmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksiOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks6CisgICAgICAgIGZpbGVOYW1l
QmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSyI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLOgorICAgICAgICBmaWxlTmFt
ZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSyI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOgorICAgICAgICBm
aWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSyI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbENKSzoKKyAg
ICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLIjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9u
Q0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFY
MTRTdHJpY3RDSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0
OjpVQVgxNFN0cmljdE5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg
TlNCdW5kbGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV1RGQnVuZGxlRmlu
ZGVyIGNsYXNzXV07CisgICAgTlNTdHJpbmcgKnBhdGggPSBbYnVuZGxlIHBhdGhGb3JSZXNvdXJj
ZTpmaWxlTmFtZUJhc2Ugb2ZUeXBlOkAiYnJrIiBpbkRpcmVjdG9yeTpAIkJyZWFraW5nUnVsZXMi
XTsKKyAgICBpZiAoIXBhdGgpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIE5TU3RyaW5n
ICpkaXJlY3RvcnkgPSBbcGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOwor
ICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAgIExvY2FsVURhdGFN
ZW1vcnlQb2ludGVyIGRhdGEodWRhdGFfb3BlbihbZGlyZWN0b3J5IFVURjhTdHJpbmddLCAiYnJr
IiwgW2ZpbGVOYW1lQmFzZSBVVEY4U3RyaW5nXSwgJmVycm9yQ29kZSkpOworICAgIGlmIChlcnJv
ckNvZGUgIT0gVV9aRVJPX0VSUk9SKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRv
IGl0ZXJhdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPihkYXRh
Lm9ycGhhbigpLCBlcnJvckNvZGUpOworICAgIGlmIChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9S
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxU
ZXh0QnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yLnJlbGVhc2UoKSk7Cit9CisKIHN0YXRpYyBpbmxp
bmUgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVmZXJlbmNlKCkKIHsK
ICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFkb3B0Q0YoQ0ZQcmVm
ZXJlbmNlc0NvcHlWYWx1ZShDRlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUiKSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285492</attachid>
            <date>2016-08-06 12:18:04 -0700</date>
            <delta_ts>2016-08-06 15:13:59 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160806121632.patch</filename>
            <type>text/plain</type>
            <size>271209</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTFhOGVhNzFmOTFiNmU2MWM4MGI2MWVhNDFiZjQ1MWEyNjBjNGM3Li5iNTcyMTlmMjI4ODQ0NDM0
MzNkODM3NWUyZWE2YjVlMTRiNmQxYTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wNiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDUgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIExFQkRlY29kZXIgYW5kIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyNmIyZWJmZmUy
Y2FkYTM3Y2NkYWUzY2VkZjZlZmM4NTNiNjE2YjEuLjJkNWM0Yzk0ZjZmZmE4ODk4YjIyMWI1ODQ5
NTZiOTU4ZTM0MjgxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgtMDYgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBi
cmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTog
QWRkZWQuCisgICAgICAgICogd3RmL2dlbmJyazogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisg
ICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuY3BwOgorICAgICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RG
OjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0
ZXJhdG9yKToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAg
ICAqIHd0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAg
ICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorCiAyMDE2LTA4LTA2ICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV1RGIG5lZWRzIGEgdmFyaWFudCBpbXBsZW1l
bnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMzBkYzllNGQwMjAzNjIw
YjE0Y2EyMjhiNGViMmJiNGZkZWNlZjBkLi4xYWJlNDdjMjQ2NGRhODk4ZmFkNTMwYWNjMzI2Mzdj
OGJkYTYyYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOSw2ICsxMTA5
LDcgQEAKIAkJMTRGOTc0NDcxMzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhD
ODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBK
U1N0cmluZ1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNG
NzM3NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5j
cHAgKi87IH07CisJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFE
NTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2
MkQ4NUI2MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQx
QzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07
CkBAIC0zMjcyLDYgKzMyNzMsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFz
ZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYg
LyogSmF2YVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2Ny
aXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQx
QkNGRiAvKiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKYXZhU2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4
RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7
IHBhdGggPSAuLi9XVEYvQnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9p
bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0
aCA9IGIzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTQzOCw2ICs1NDQwLDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAw
NzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVs
ZXMgKi8sCiAJCQkJMEY2MTgzMzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAog
CQkJCTBGNjE4MzM0MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywK
IAkJCQkwRjYxODMzNTFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAg
LTg0NTcsNiArODQ2MCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBp
biBSZXNvdXJjZXMgKi8sCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5n
UnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggM2JhODA0MDZiNjg3ODcyY2RjMmUzZTgxNmJlYjAwNDNhOTM5YzI3MC4uMGZj
MzY2OTg0ZGMxYmI5ZGY5NGM3YzFjMGE1YzdhMDQzZTdjNzVhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcsMTcgQEAKIAlvYmplY3RzID0gewog
CiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2
OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVn
YXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMw
MENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4Nzgy
MUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOwor
CQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsK
KwkJCXByb2R1Y3ROYW1lID0gIkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2
MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFn
Z3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBC
OTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtMzEyLDYgKzMyMywxNSBAQAogCQlBOEE0
NzQ4NzE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlRocmVhZERhdGEuaCAqLzsgfTsKIAkJQThBNDc0OEMxNTFBODI2NDAwNDEyM0ZGIC8qIGNv
bmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1
M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJl
RGVmaW5lcy5oICovOyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMuY3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VDMUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTMxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi87IH07CisJ
CUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Ez
N0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAq
LzsgfTsKKwkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksuY3BwICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YwMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U3MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLzsgfTsKKwkJ
QzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwICovOyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkz
NjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgKi87IH07CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKQEAgLTM0NCw2ICszNjQsMTMgQEAKIAkJ
CXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVt
b3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsK
KwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0
IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9
IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3Vy
Y2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRh
aW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAq
LzsKQEAgLTQzNiw2ICs0NjMsMTggQEAKIAkJMUMxODFDOEQxRDMwN0FCODAwRjVGQTE2IC8qIFVU
ZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzE4MUM4RTFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZBMTYgLyogVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHBhdGggPSBtYWMv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NTFENTU5QTY5MDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
QjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25D
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkxRDU1OUFFRjAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0OyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUMx
RDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNv
dXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMubWFrZTsgcGF0aCA9IHd0Zi9EZXJp
dmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1c2VzVGFicyA9IDE7IH07
CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQ7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RFQyAvKiBMaW5lQnJlYWtJ
dGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODgx
NTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJU
b1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50
ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjU4LDYgKzY5NywxNSBAQAogCQlBOEE0NzM3QjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFk
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZUaHJlYWREYXRhLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAv
KiBjb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBG
ZWF0dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJl
RGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMDFENTVDOTcx
MDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7
IHBhdGggPSBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
MkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBN
ZWRpYVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjUsNiArNzczLDI0IEBACiAJCQlwYXRo
ID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUNEMTg3OTExRDU1
OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RF
QyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLywKKwkJCQkxQ0I0RkI5NDFENTU5
QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8sCisJCQkJMUNC
NEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0
ICovLAorCQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLywKKwkJ
CQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5
RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQg
Ki8sCisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTc0NiwxMCArODEyLDEyIEBA
CiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3Vy
Y2VzLm1ha2UgKi8sCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAwRTc4Qjc2IC8qIENvbmZpZ3VyYXRp
b25zICovLAogCQkJCTE0MDIyRjNGMThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJ
CQkJNUQyNDdCNjMxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2R1Y3RzICovLAogCQkJCTVEMjQ3Qjc2
MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJCQkJQzJDQTM3REYxRDU1QzhEODAwNDg2
Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYg
LyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZG
IC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtMTA4Myw2ICsxMTUxLDcgQEAKIAkJ
QThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVh
a2luZ1J1bGVzICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3UgKi8sCiAJ
CQkJQTVCQTE1RjYxODI0MzU5RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCUE1QkExNUYxMTgyNDMz
OUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMTU4LDYgKzEyMjcsMjMgQEAKIAkJCXBhdGggPSBp
Y3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkNBMzdERjFENTVDOEQ4
MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTIxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi8sCisJCQkJ
QzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNjFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAg
Ki8sCisJCQkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSksuY3BwICovLAorCQkJCUMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0g
IkRlcml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvV1RGOworCQkJc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsKIAkJQ0U0NjUxNkMxOURCMUZCNDAw
M0VDQTA1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTE0NzAsNiArMTU1Niw3IEBACiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRl
cGVuZGVuY2llcyA9ICgKKwkJCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gV1RGOwpAQCAtMTUwMCwxMiArMTU4Nywy
NyBAQAogCQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RG
ICovLAogCQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICov
LAorCQkJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJ
CQkJMTQ0N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFsbG9jICovLAogCQkJKTsKIAkJfTsK
IC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRC
dWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVy
YXRlIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQ
aGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJ
CSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgRGVyaXZl
ZCBTb3VyY2VzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNo
ZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzL1dURlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZc
IlxuXG4vYmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV1RGXG5leHBvcnQgV1RGPVwiV1RGXCJc
blxuaWYgWyAhIC1kIEJyZWFraW5nUnVsZXMgXTsgdGhlblxuICAgIG1rZGlyIEJyZWFraW5nUnVs
ZXNcbmZpXG5cbmV4cG9ydCBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTPTFcbmlmIFsgXCIkTUFD
T1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMFwiIF07IHRoZW5cbiAgICBleHBvcnQg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUPTBcbmVsc2VcbiAgICBleHBvcnQgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUPTFcbmZpXG5cbmlmIFsgXCIke0FDVElPTn1cIiA9IFwiYnVpbGRcIiAtbyBc
IiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGhk
cnNcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsYXBpXCIgXTsgdGhlblxubWFrZSAtLW5v
LWJ1aWx0aW4tcnVsZXMgLWYgXCJXVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2VcIiAtaiBgL3Vz
ci9zYmluL3N5c2N0bCAtbiBody5hY3RpdmVjcHVgIFNES1JPT1Q9XCIke1NES1JPT1R9XCJcbmZp
XG4iOworCQl9OwogCQk2NUFGQTE3MDE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVy
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNTM2LDYgKzE2MzgsOCBAQAogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUE4QTQ3Mzg2MTUxQTgyNUIw
MDQxMjNGRiAvKiBBc3NlcnRpb25zLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0YxMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDM1
MTUxQTgyNUIwMDQxMjNGRiAvKiBBdG9taWNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NzBFQ0E2MEQxQjAyNDI2ODAwNDQ5NzM5IC8qIEF0b21pY1N0cmluZ0ltcGwuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTVCQTE1RkExODI0MzVBNjAwQTgyRTY5IC8qIEF0b21pY1N0cmluZ0ltcGxD
Ri5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1NjMsNiArMTY2Nyw3IEBACiAJCQkJQThBNDczQjAx
NTFBODI1QjAwNDEyM0ZGIC8qIGRvdWJsZS1jb252ZXJzaW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDczQkExNTFBODI1QjAwNDEyM0ZGIC8qIGR0b2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDczQjMxNTFBODI1QjAwNDEyM0ZGIC8qIGZhc3QtZHRvYS5jYyBpbiBTb3VyY2VzICov
LAorCQkJCUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGODg1RTBGMTg0NUFFQTkwMEYxRTNGQSAv
KiBGYXN0Qml0VmVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0MzMTUxQTgyNUIw
MDQxMjNGRiAvKiBGYXN0TWFsbG9jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDRUUyMjAxMUNF
QTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRpb25zLm1tIGluIFNvdXJjZXMgKi8sCkBA
IC0xNTc4LDYgKzE2ODMsNyBAQAogCQkJCUE4QTQ3M0U5MTUxQTgyNUIwMDQxMjNGRiAvKiBNRDUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1NDk3QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlh
VGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNFQzE1MUE4MjVCMDA0MTIzRkYgLyog
TWV0YUFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdGMDFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzNGNDE1MUE4MjVCMDA0MTIzRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBOEE0NzNGNzE1MUE4MjVCMDA0MTIzRkYgLyogT1NBbGxvY2F0b3JQ
b3NpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGOTE1MUE4MjVCMDA0MTIzRkYgLyog
T1NSYW5kb21Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNTg1LDYgKzE2OTEsNyBAQAog
CQkJCTFDMTgxQzkzMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZGRjE5REMxQkIzMzRFQjAwODg2RDkxIC8qIFBhcmFsbGVsSGVs
cGVyUG9vbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjgyNEE2ODFCNzQ0M0EwMDAyRTM0NUQg
LyogUGFya2luZ0xvdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRTFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjlEMzM2MjE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MTQxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJl
ci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE2MTksOSArMTcyNiwxMyBAQAogCQkJCUE4QTQ3NDRB
MTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDc0NEUxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZGluZ1B0aHJlYWRzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QTQ3NDY5MTUxQTgyNUIwMDQxMjNGRiAvKiBVVEY4LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUZBNDdDOEExNTI1MDJEQTAw
NTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFNDQ3OUMx
QjdBQUEwMzAwOTQ5OEVCIC8qIFdvcmRMb2NrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0Ez
N0U5MUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEQ0VFMjIwMzFDRUE3
NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBMEFEMzkxQTk2MjQ1NTAwNTM2
REY2IC8qIFdvcmtRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzRDFBOTYyNTND
MDA1MzZERjYgLyogV29ya1F1ZXVlQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0
NDUxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE2
MzcsNiArMTc0OCwxMSBAQAogCQkJdGFyZ2V0ID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8q
IFdURiAqLzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FFQzMxOEZDRTU3MDAwQjNEN0ZGIC8qIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJMUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVD
IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRl
bmN5OworCQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291
cmNlcyAqLzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJNjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjND
IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRl
bmN5OwogCQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhl
YWRlcnMgKi87CkBAIC0xNjY2LDYgKzE3ODIsMzAgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVj
dGlvbjsKIAkJfTsKKwkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICovID0gewor
CQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVy
ZW5jZSA9IDY1NDFDQUY0MTYzMERCMjYwMDZEMERFQyAvKiBDb3B5V1RGSGVhZGVycy54Y2NvbmZp
ZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VU
X05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTFDRDE4Nzg1MUQ1NTY5
NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRp
b247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDY1NDFDQUY0MTYzMERCMjYwMDZE
MERFQyAvKiBDb3B5V1RGSGVhZGVycy54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7
CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0g
UmVsZWFzZTsKKwkJfTsKKwkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rpb24g
Ki8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0
aW9uUmVmZXJlbmNlID0gNjU0MUNBRjQxNjMwREIyNjAwNkQwREVDIC8qIENvcHlXVEZIZWFkZXJz
LnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAi
JChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1
RDI0N0I2NDE0Njg5Qjg2MDBFNzhCNzYgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxk
Q29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAx
NDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKQEAgLTE3NDksNiAr
MTg4OSwxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVm
YXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODMxRDU1
Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRl
VGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9u
TGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJMUNEMTg3ODQxRDU1Njk1QzAw
Q0M3REVDIC8qIERlYnVnICovLAorCQkJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxl
YXNlICovLAorCQkJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICovLAor
CQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRD
b25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjVDMTQ2ODlCODYw
MEU3OEI3NiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldURiIg
Ki8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0
aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvYnJraXRlci5oIGIv
U291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFhNWU1NTI3OTYw
OTBlYWViY2Q3Y2U3YjdkMjc1YWE4YjM3NzViNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvYnJraXRlci5oCkBAIC0wLDAgKzEsNjU1IEBACisvKgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxNCwgSW50ZXJuYXRpb25h
bCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmln
aHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBicmtpdGVy
LmgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAg
ICAgICAgRGVzY3JpcHRpb24KKyogICAwMi8xOC85NyAgICBhbGl1ICAgICAgICBBZGRlZCB0eXBl
ZGVmIGZvciBUZXh0Q291bnQuICBNYWRlIERPTkUgY29uc3QuCisqICAgMDUvMDcvOTcgICAgYWxp
dSAgICAgICAgRml4ZWQgRExMIGRlY2xhcmF0aW9uLgorKiAgIDA3LzA5Lzk3ICAgIGpmaXR6ICAg
ICAgIFJlbmFtZWQgQnJlYWtJdGVyYXRvciBhbmQgaW50ZXJmYWNlIHN5bmNlZCB3aXRoIEpESwor
KiAgIDA4LzExLzk4ICAgIGhlbGVuYSAgICAgIFN5bmMtdXAgSkRLMS4yLgorKiAgIDAxLzEzLzIw
MDAgIGhlbGVuYSAgICAgIEFkZGVkIFVFcnJvckNvZGUgcGFyYW1ldGVyIHRvIGNyZWF0ZVhYWElu
c3RhbmNlIG1ldGhvZHMuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBC
UktJVEVSX0gKKyNkZWZpbmUgQlJLSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5o
IgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTogQnJlYWsgSXRlcmF0b3IuCisg
Ki8KKworI2lmIFVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKK1VfTkFNRVNQQUNFX0JFR0lO
CisKKy8qCisgKiBBbGxvdyB0aGUgZGVjbGFyYXRpb24gb2YgQVBJcyB3aXRoIHBvaW50ZXJzIHRv
IEJyZWFrSXRlcmF0b3IKKyAqIGV2ZW4gd2hlbiBicmVhayBpdGVyYXRpb24gaXMgcmVtb3ZlZCBm
cm9tIHRoZSBidWlsZC4KKyAqLworY2xhc3MgQnJlYWtJdGVyYXRvcjsKKworVV9OQU1FU1BBQ0Vf
RU5ECisKKyNlbHNlCisKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1
bmljb2RlL3VuaXN0ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKyNpbmNsdWRl
ICJ1bmljb2RlL2xvY2lkLmgiCisjaW5jbHVkZSAidW5pY29kZS91YnJrLmgiCisjaW5jbHVkZSAi
dW5pY29kZS9zdHJlbnVtLmgiCisjaW5jbHVkZSAidW5pY29kZS91dGV4dC5oIgorI2luY2x1ZGUg
InVuaWNvZGUvdW1pc2MuaCIKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBUaGUgQnJl
YWtJdGVyYXRvciBjbGFzcyBpbXBsZW1lbnRzIG1ldGhvZHMgZm9yIGZpbmRpbmcgdGhlIGxvY2F0
aW9uCisgKiBvZiBib3VuZGFyaWVzIGluIHRleHQuIEJyZWFrSXRlcmF0b3IgaXMgYW4gYWJzdHJh
Y3QgYmFzZSBjbGFzcy4KKyAqIEluc3RhbmNlcyBvZiBCcmVha0l0ZXJhdG9yIG1haW50YWluIGEg
Y3VycmVudCBwb3NpdGlvbiBhbmQgc2NhbiBvdmVyCisgKiB0ZXh0IHJldHVybmluZyB0aGUgaW5k
ZXggb2YgY2hhcmFjdGVycyB3aGVyZSBib3VuZGFyaWVzIG9jY3VyLgorICogPHA+CisgKiBMaW5l
IGJvdW5kYXJ5IGFuYWx5c2lzIGRldGVybWluZXMgd2hlcmUgYSB0ZXh0IHN0cmluZyBjYW4gYmUg
YnJva2VuCisgKiB3aGVuIGxpbmUtd3JhcHBpbmcuIFRoZSBtZWNoYW5pc20gY29ycmVjdGx5IGhh
bmRsZXMgcHVuY3R1YXRpb24gYW5kCisgKiBoeXBoZW5hdGVkIHdvcmRzLgorICogPHA+CisgKiBT
ZW50ZW5jZSBib3VuZGFyeSBhbmFseXNpcyBhbGxvd3Mgc2VsZWN0aW9uIHdpdGggY29ycmVjdAor
ICogaW50ZXJwcmV0YXRpb24gb2YgcGVyaW9kcyB3aXRoaW4gbnVtYmVycyBhbmQgYWJicmV2aWF0
aW9ucywgYW5kCisgKiB0cmFpbGluZyBwdW5jdHVhdGlvbiBtYXJrcyBzdWNoIGFzIHF1b3RhdGlv
biBtYXJrcyBhbmQgcGFyZW50aGVzZXMuCisgKiA8cD4KKyAqIFdvcmQgYm91bmRhcnkgYW5hbHlz
aXMgaXMgdXNlZCBieSBzZWFyY2ggYW5kIHJlcGxhY2UgZnVuY3Rpb25zLCBhcworICogd2VsbCBh
cyB3aXRoaW4gdGV4dCBlZGl0aW5nIGFwcGxpY2F0aW9ucyB0aGF0IGFsbG93IHRoZSB1c2VyIHRv
CisgKiBzZWxlY3Qgd29yZHMgd2l0aCBhIGRvdWJsZSBjbGljay4gV29yZCBzZWxlY3Rpb24gcHJv
dmlkZXMgY29ycmVjdAorICogaW50ZXJwcmV0YXRpb24gb2YgcHVuY3R1YXRpb24gbWFya3Mgd2l0
aGluIGFuZCBmb2xsb3dpbmcKKyAqIHdvcmRzLiBDaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBwYXJ0
IG9mIGEgd29yZCwgc3VjaCBhcyBzeW1ib2xzIG9yCisgKiBwdW5jdHVhdGlvbiBtYXJrcywgaGF2
ZSB3b3JkLWJyZWFrcyBvbiBib3RoIHNpZGVzLgorICogPHA+CisgKiBDaGFyYWN0ZXIgYm91bmRh
cnkgYW5hbHlzaXMgYWxsb3dzIHVzZXJzIHRvIGludGVyYWN0IHdpdGgKKyAqIGNoYXJhY3RlcnMg
YXMgdGhleSBleHBlY3QgdG8sIGZvciBleGFtcGxlLCB3aGVuIG1vdmluZyB0aGUgY3Vyc29yCisg
KiB0aHJvdWdoIGEgdGV4dCBzdHJpbmcuIENoYXJhY3RlciBib3VuZGFyeSBhbmFseXNpcyBwcm92
aWRlcyBjb3JyZWN0CisgKiBuYXZpZ2F0aW9uIG9mIHRocm91Z2ggY2hhcmFjdGVyIHN0cmluZ3Ms
IHJlZ2FyZGxlc3Mgb2YgaG93IHRoZQorICogY2hhcmFjdGVyIGlzIHN0b3JlZC4gIEZvciBleGFt
cGxlLCBhbiBhY2NlbnRlZCBjaGFyYWN0ZXIgbWlnaHQgYmUKKyAqIHN0b3JlZCBhcyBhIGJhc2Ug
Y2hhcmFjdGVyIGFuZCBhIGRpYWNyaXRpY2FsIG1hcmsuIFdoYXQgdXNlcnMKKyAqIGNvbnNpZGVy
IHRvIGJlIGEgY2hhcmFjdGVyIGNhbiBkaWZmZXIgYmV0d2VlbiBsYW5ndWFnZXMuCisgKiA8cD4K
KyAqIFRoZSB0ZXh0IGJvdW5kYXJ5IHBvc2l0aW9ucyBhcmUgZm91bmQgYWNjb3JkaW5nIHRvIHRo
ZSBydWxlcworICogZGVzY3JpYmVkIGluIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXggIzI5LCBUZXh0
IEJvdW5kYXJpZXMsIGFuZAorICogVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMTQsIExpbmUgQnJl
YWtpbmcgUHJvcGVydGllcy4gIFRoZXNlCisgKiBhcmUgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cu
dW5pY29kZS5vcmcvcmVwb3J0cy90cjE0LyBhbmQKKyAqIGh0dHA6Ly93d3cudW5pY29kZS5vcmcv
cmVwb3J0cy90cjI5Ly4KKyAqIDxwPgorICogSW4gYWRkaXRpb24gdG8gdGhlIEMrKyBBUEkgZGVm
aW5lZCBpbiB0aGlzIGhlYWRlciBmaWxlLCBhCisgKiBwbGFpbiBDIEFQSSB3aXRoIGVxdWl2YWxl
bnQgZnVuY3Rpb25hbGl0eSBpcyBkZWZpbmVkIGluIHRoZQorICogZmlsZSB1YnJrLmgKKyAqIDxw
PgorICogQ29kZSBzbmlwcGV0cyBpbGx1c3RyYXRpbmcgdGhlIHVzZSBvZiB0aGUgQnJlYWsgSXRl
cmF0b3IgQVBJcworICogYXJlIGF2YWlsYWJsZSBpbiB0aGUgSUNVIFVzZXIgR3VpZGUsCisgKiBo
dHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9ib3VuZGFyeUFuYWx5c2lzLmh0bWwKKyAq
IGFuZCBpbiB0aGUgc2FtcGxlIHByb2dyYW0gaWN1L3NvdXJjZS9zYW1wbGVzL2JyZWFrL2JyZWFr
LmNwcAorICoKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIEJyZWFrSXRlcmF0b3IgOiBwdWJsaWMg
VU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogIGRlc3RydWN0b3IKKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+QnJlYWtJdGVyYXRvcigpOwor
CisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgYW5vdGhlciBvYmplY3QgaXMgc2VtYW50
aWNhbGx5IGVxdWFsIHRvIHRoaXMKKyAgICAgKiBvbmUuIFRoZSBvdGhlciBvYmplY3Qgc2hvdWxk
IGJlIGFuIGluc3RhbmNlIG9mIHRoZSBzYW1lIHN1YmNsYXNzIG9mCisgICAgICogQnJlYWtJdGVy
YXRvci4gT2JqZWN0cyBvZiBkaWZmZXJlbnQgc3ViY2xhc3NlcyBhcmUgY29uc2lkZXJlZAorICAg
ICAqIHVuZXF1YWwuCisgICAgICogPFA+CisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBCcmVh
a0l0ZXJhdG9yIGlzIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZQorICAgICAqIHNhbWUgdGV4
dCwgYW5kIGlzIHRoZSBzYW1lIGNsYXNzIGFuZCB0eXBlICh3b3JkLCBsaW5lLCBldGMuKSBvZgor
ICAgICAqIEJyZWFrSXRlcmF0b3IsIGFzIHRoZSBhcmd1bWVudC4gIFRleHQgaXMgY29uc2lkZXJl
ZCB0aGUgc2FtZSBpZgorICAgICAqIGl0IGNvbnRhaW5zIHRoZSBzYW1lIGNoYXJhY3RlcnMsIGl0
IG5lZWQgbm90IGJlIHRoZSBzYW1lCisgICAgICogb2JqZWN0LCBhbmQgc3R5bGVzIGFyZSBub3Qg
Y29uc2lkZXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IFVCb29sIG9wZXJhdG9yPT0oY29uc3QgQnJlYWtJdGVyYXRvciYpIGNvbnN0ID0gMDsKKworICAg
IC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvbXBsZW1lbnQgb2YgdGhlIHJlc3VsdCBvZiBvcGVy
YXRvcj09CisgICAgICogQHBhcmFtIHJocyBUaGUgQnJlYWtJdGVyYXRvciB0byBiZSBjb21wYXJl
ZCBmb3IgaW5lcXVhbGl0eQorICAgICAqIEByZXR1cm4gdGhlIGNvbXBsZW1lbnQgb2YgdGhlIHJl
c3VsdCBvZiBvcGVyYXRvcj09CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
VUJvb2wgb3BlcmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiByaHMpIGNvbnN0IHsgcmV0dXJu
ICFvcGVyYXRvcj09KHJocyk7IH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHBvbHltb3Jw
aGljIGNvcHkgb2YgdGhpcyBvYmplY3QuICBUaGlzIGlzIGFuIGFic3RyYWN0CisgICAgICogbWV0
aG9kIHdoaWNoIHN1YmNsYXNzZXMgaW1wbGVtZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3QgPSAw
OworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcG9seW1vcnBoaWMgY2xhc3MgSUQgZm9yIHRo
aXMgb2JqZWN0LiBEaWZmZXJlbnQgc3ViY2xhc3NlcworICAgICAqIHdpbGwgcmV0dXJuIGRpc3Rp
bmN0IHVuZXF1YWwgdmFsdWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3QgPSAwOworCisg
ICAgLyoqCisgICAgICogUmV0dXJuIGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBi
ZWluZyBhbmFseXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIENoYXJhY3Rlckl0ZXJhdG9yJiBnZXRUZXh0KHZvaWQpIGNvbnN0ID0gMDsKKworCisgICAg
LyoqCisgICAgICAqICBHZXQgYSBVVGV4dCBmb3IgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisg
ICAgICAqICBUaGUgcmV0dXJuZWQgVVRleHQgaXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBVVGV4
dCB1c2VkIGludGVybmFsbHkKKyAgICAgICogIGJ5IHRoZSBicmVhayBpdGVyYXRvciBpbXBsZW1l
bnRhdGlvbi4gIEl0IGNhbiBzYWZlbHkgYmUgdXNlZCB0bworICAgICAgKiAgYWNjZXNzIHRoZSB0
ZXh0IHdpdGhvdXQgaW1wYWN0aW5nIGFueSBicmVhayBpdGVyYXRvciBvcGVyYXRpb25zLAorICAg
ICAgKiAgYnV0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmIG11c3Qgbm90IGJlIGFsdGVyZWQu
CisgICAgICAqCisgICAgICAqIEBwYXJhbSBmaWxsSW4gQSBVVGV4dCB0byBiZSBmaWxsZWQgaW4u
ICBJZiBOVUxMLCBhIG5ldyBVVGV4dCB3aWxsIGJlCisgICAgICAqICAgICAgICAgICBhbGxvY2F0
ZWQgdG8gaG9sZCB0aGUgcmVzdWx0LgorICAgICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFu
eSBlcnJvciBjb2Rlcy4KKyAgICAgICogQHJldHVybiAgIFRoZSBjdXJyZW50IFVUZXh0IGZvciB0
aGlzIGJyZWFrIGl0ZXJhdG9yLiAgSWYgYW4gaW5wdXQKKyAgICAgICogICAgICAgICAgIFVUZXh0
IHdhcyBwcm92aWRlZCwgaXQgd2lsbCBhbHdheXMgYmUgcmV0dXJuZWQuCisgICAgICAqIEBzdGFi
bGUgSUNVIDMuNAorICAgICAgKi8KKyAgICAgdmlydHVhbCBVVGV4dCAqZ2V0VVRleHQoVVRleHQg
KmZpbGxJbiwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBDaGFuZ2UgdGhlIHRleHQgb3ZlciB3aGljaCB0aGlzIG9wZXJhdGVzLiBUaGUgdGV4dCBib3Vu
ZGFyeSBpcworICAgICAqIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKiBAcGFyYW0gdGV4dCBU
aGUgVW5pY29kZVN0cmluZyB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoY29uc3QgVW5pY29k
ZVN0cmluZyAmdGV4dCkgPSAwOworCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGJyZWFrIGl0
ZXJhdG9yIHRvIG9wZXJhdGUgb3ZlciB0aGUgdGV4dCByZXByZXNlbnRlZCBieQorICAgICAqIHRo
ZSBVVGV4dC4gIFRoZSBpdGVyYXRvciBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgc3RhcnQuCisg
ICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUg
c3VwcGxpZWQgVVRleHQuICBUaGlzIG1lYW5zCisgICAgICogdGhhdCB0aGUgY2FsbGVyIGlzIGZy
ZWUgdG8gaW1tZWRpYXRlbHkgY2xvc2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRoZQorICAgICAqIFV0
ZXh0IHRoYXQgd2FzIHBhc3NlZCBhcyBhIHBhcmFtZXRlciwgYnV0IHRoYXQgdGhlIHVuZGVybHlp
bmcgdGV4dCBpdHNlbGYKKyAgICAgKiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdoaWxlIGJlaW5nIHJl
ZmVyZW5jZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQWxsIGluZGV4
IHBvc2l0aW9ucyByZXR1cm5lZCBieSBicmVhayBpdGVyYXRvciBmdW5jdGlvbnMgYXJlCisgICAg
ICogbmF0aXZlIGluZGljZXMgZnJvbSB0aGUgVVRleHQuIEZvciBleGFtcGxlLCB3aGVuIGJyZWFr
aW5nIFVURi04CisgICAgICogZW5jb2RlZCB0ZXh0LCB0aGUgYnJlYWsgcG9zaXRpb25zIHJldHVy
bmVkIGJ5IG5leHQoKSwgcHJldmlvdXMoKSwgZXRjLgorICAgICAqIHdpbGwgYmUgVVRGLTggc3Ry
aW5nIGluZGljZXMsIG5vdCBVVEYtMTYgcG9zaXRpb25zLgorICAgICAqCisgICAgICogQHBhcmFt
IHRleHQgVGhlIFVUZXh0IHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBz
dGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuNAor
ICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChVVGV4dCAqdGV4dCwgVUVycm9yQ29k
ZSAmc3RhdHVzKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDaGFuZ2UgdGhlIHRleHQgb3ZlciB3
aGljaCB0aGlzIG9wZXJhdGVzLiBUaGUgdGV4dCBib3VuZGFyeSBpcworICAgICAqIHJlc2V0IHRv
IHRoZSBzdGFydC4KKyAgICAgKiBOb3RlIHRoYXQgc2V0VGV4dChVVGV4dCAqKSBwcm92aWRlcyBz
aW1pbGFyIGZ1bmN0aW9uYWxpdHkgdG8gdGhpcyBmdW5jdGlvbiwKKyAgICAgKiBhbmQgaXMgbW9y
ZSBlZmZpY2llbnQuCisgICAgICogQHBhcmFtIGl0IFRoZSBDaGFyYWN0ZXJJdGVyYXRvciB1c2Vk
IHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIHZvaWQgIGFkb3B0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciogaXQpID0gMDsKKwor
ICAgIGVudW0geworICAgICAgICAvKioKKyAgICAgICAgICogRE9ORSBpcyByZXR1cm5lZCBieSBw
cmV2aW91cygpIGFuZCBuZXh0KCkgYWZ0ZXIgYWxsIHZhbGlkCisgICAgICAgICAqIGJvdW5kYXJp
ZXMgaGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
ICAgICovCisgICAgICAgIERPTkUgPSAoaW50MzJfdCktMQorICAgIH07CisKKyAgICAvKioKKyAg
ICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5n
IG9mIHRoZSB0ZXh0LCBwb3NpdGlvbiB6ZXJvLgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBv
ZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCB6ZXJvLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmaXJzdCh2b2lkKSA9IDA7CisKKyAgICAv
KioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBpbmRleCBpbW1lZGlh
dGVseSBCRVlPTkQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJlaW5nIHNjYW5uZWQu
CisgICAgICogQHJldHVybiBUaGUgaW5kZXggaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBsYXN0IGNo
YXJhY3RlciBpbiB0aGUgdGV4dCBiZWluZyBzY2FubmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBsYXN0KHZvaWQpID0gMDsKKworICAgIC8q
KgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGJvdW5kYXJ5IHByZWNl
ZGluZyB0aGUgY3VycmVudCBib3VuZGFyeS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIg
aW5kZXggb2YgdGhlIHByZXZpb3VzIHRleHQgYm91bmRhcnkgb3IgRE9ORSBpZiBhbGwKKyAgICAg
KiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJldmlvdXModm9pZCkgPSAwOworCisgICAg
LyoqCisgICAgICogQWR2YW5jZSB0aGUgaXRlcmF0b3IgdG8gdGhlIGJvdW5kYXJ5IGZvbGxvd2lu
ZyB0aGUgY3VycmVudCBib3VuZGFyeS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgaW5k
ZXggb2YgdGhlIG5leHQgdGV4dCBib3VuZGFyeSBvciBET05FIGlmIGFsbAorICAgICAqIGJvdW5k
YXJpZXMgaGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAq
IFJldHVybiBjaGFyYWN0ZXIgaW5kZXggb2YgdGhlIGN1cnJlbnQgaW50ZXJhdG9yIHBvc2l0aW9u
IHdpdGhpbiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSBib3VuZGFyeSBtb3N0IHJlY2Vu
dGx5IHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgaW50MzJfdCBjdXJyZW50KHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIEFk
dmFuY2UgdGhlIGl0ZXJhdG9yIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBmb2xsb3dpbmcgdGhlIHNw
ZWNpZmllZCBvZmZzZXQuCisgICAgICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5cyBncmVh
dGVyIHRoYW4gdGhlIG9mZnNldCBvcgorICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0ZXJhdG9yLkRP
TkUKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nhbm5pbmcuCisg
ICAgICogQHJldHVybiBUaGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhlIHNwZWNpZmllZCBvZmZz
ZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90
IGZvbGxvd2luZyhpbnQzMl90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRo
ZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgZmlyc3QgYm91bmRhcnkgcHJlY2VkaW5nIHRoZSBz
cGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhbHdheXMgc21h
bGxlciB0aGFuIHRoZSBvZmZzZXQgb3IKKyAgICAgKiB0aGUgdmFsdWUgQnJlYWtJdGVyYXRvci5E
T05FCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGJlZ2luIHNjYW5uaW5nLgor
ICAgICAqIEByZXR1cm4gVGhlIGZpcnN0IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3BlY2lmaWVkIG9m
ZnNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMy
X3QgcHJlY2VkaW5nKGludDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm4gdHJ1ZSBpZiB0aGUgc3BlY2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4K
KyAgICAgKiBBcyBhIHNpZGUgZWZmZWN0LCB0aGUgY3VycmVudCBwb3NpdGlvbiBvZiB0aGUgaXRl
cmF0b3IgaXMgc2V0CisgICAgICogdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGF0IG9y
IGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRo
ZSBvZmZzZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBUcnVlIGlmICJvZmZzZXQiIGlzIGEg
Ym91bmRhcnkgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBVQm9vbCBpc0JvdW5kYXJ5KGludDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioK
KyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBudGggYm91bmRhcnkgZnJv
bSB0aGUgY3VycmVudCBib3VuZGFyeQorICAgICAqIEBwYXJhbSBuIHRoZSBudW1iZXIgb2YgYm91
bmRhcmllcyB0byBtb3ZlIGJ5LiAgQSB2YWx1ZSBvZiAwCisgICAgICogZG9lcyBub3RoaW5nLiAg
TmVnYXRpdmUgdmFsdWVzIG1vdmUgdG8gcHJldmlvdXMgYm91bmRhcmllcworICAgICAqIGFuZCBw
b3NpdGl2ZSB2YWx1ZXMgbW92ZSB0byBsYXRlciBib3VuZGFyaWVzLgorICAgICAqIEByZXR1cm4g
VGhlIG5ldyBpdGVyYXRvciBwb3NpdGlvbiwgb3IKKyAgICAgKiBET05FIGlmIHRoZXJlIGFyZSBm
ZXdlciB0aGFuIHxufCBib3VuZGFyaWVzIGluIHRoZSBzcGVjZmllZCBkaXJlY3Rpb24uCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQoaW50
MzJfdCBuKSA9IDA7CisKKyAgIC8qKgorICAgICAqIEZvciBSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
cywgcmV0dXJuIHRoZSBzdGF0dXMgdGFnIGZyb20gdGhlIAorICAgICAqIGJyZWFrIHJ1bGUgdGhh
dCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9z
aXRpb24uCisgICAgICogPHA+CisgICAgICogRm9yIGJyZWFrIGl0ZXJhdG9yIHR5cGVzIHRoYXQg
ZG8gbm90IHN1cHBvcnQgYSBydWxlIHN0YXR1cywKKyAgICAgKiBhIGRlZmF1bHQgdmFsdWUgb2Yg
MCBpcyByZXR1cm5lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGF0dXMgZnJv
bSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAg
KiAgICAgICAgIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIEBzZWUgUnVsZUJhc2VC
cmVha0l0ZXJhdG9yOjpnZXRSdWxlU3RhdHVzKCkKKyAgICAgKiBAc2VlIFVXb3JkQnJlYWsKKyAg
ICAgKiBAc3RhYmxlIElDVSA1MgorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxl
U3RhdHVzKCkgY29uc3Q7CisKKyAgIC8qKgorICAgICogRm9yIFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3JzLCBnZXQgdGhlIHN0YXR1cyAodGFnKSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsgcnVsZShzKSAK
KyAgICAqIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseSByZXR1cm5lZCBicmVhayBw
b3NpdGlvbi4KKyAgICAqIDxwPgorICAgICogRm9yIGJyZWFrIGl0ZXJhdG9yIHR5cGVzIHRoYXQg
ZG8gbm90IHN1cHBvcnQgcnVsZSBzdGF0dXMsCisgICAgKiBubyB2YWx1ZXMgYXJlIHJldHVybmVk
LgorICAgICogPHA+CisgICAgKiBUaGUgcmV0dXJuZWQgc3RhdHVzIHZhbHVlKHMpIGFyZSBzdG9y
ZWQgaW50byBhbiBhcnJheSBwcm92aWRlZCBieSB0aGUgY2FsbGVyLgorICAgICogVGhlIHZhbHVl
cyBhcmUgc3RvcmVkIGluIHNvcnRlZCAoYXNjZW5kaW5nKSBvcmRlci4KKyAgICAqIElmIHRoZSBj
YXBhY2l0eSBvZiB0aGUgb3V0cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xkIHRoZSBk
YXRhLAorICAgICogIHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2YWlsYWJs
ZSBsZW5ndGgsIGFuZCBhCisgICAgKiAgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1Igd2lsbCBiZSBz
aWduYWxlZC4KKyAgICAqIDxwPgorICAgICogQHNlZSBSdWxlQmFzZUJyZWFrSXRlcmF0b3I6Omdl
dFJ1bGVTdGF0dXNWZWMKKyAgICAqCisgICAgKiBAcGFyYW0gZmlsbEluVmVjIGFuIGFycmF5IHRv
IGJlIGZpbGxlZCBpbiB3aXRoIHRoZSBzdGF0dXMgdmFsdWVzLgorICAgICogQHBhcmFtIGNhcGFj
aXR5ICB0aGUgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0aCBvZiB6ZXJv
IGNhdXNlcworICAgICogICAgICAgICAgICAgICAgICB0aGUgZnVuY3Rpb24gdG8gcmV0dXJuIHRo
ZSBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcywgaW4gdGhlCisgICAgKiAgICAgICAgICAgICAgICAg
IG5vcm1hbCB3YXksIHdpdGhvdXQgYXR0ZW10cGluZyB0byBzdG9yZSBhbnkgdmFsdWVzLgorICAg
ICogQHBhcmFtIHN0YXR1cyAgICByZWNlaXZlcyBlcnJvciBjb2Rlcy4KKyAgICAqIEByZXR1cm4g
ICAgICAgICAgVGhlIG51bWJlciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxlcyB0aGF0
IGRldGVybWluZWQKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50IGJvdW5k
YXJ5IHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAqICAgICAgICAgICAgICAg
ICAgSW4gdGhlIGV2ZW50IG9mIGEgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRoZSByZXR1cm4g
dmFsdWUKKyAgICAqICAgICAgICAgICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0
dXMgdmFsdWVzIHRoYXQgd2VyZSBhdmFpbGFibGUsCisgICAgKiAgICAgICAgICAgICAgICAgIG5v
dCB0aGUgcmVkdWNlZCBudW1iZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgorICAgICog
QHNlZSBnZXRSdWxlU3RhdHVzCisgICAgKiBAc3RhYmxlIElDVSA1MgorICAgICovCisgICAgdmly
dHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXNWZWMoaW50MzJfdCAqZmlsbEluVmVjLCBpbnQzMl90
IGNhcGFjaXR5LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRl
IEJyZWFrSXRlcmF0b3IgZm9yIHdvcmQtYnJlYWtzIHVzaW5nIHRoZSBnaXZlbiBsb2NhbGUuCisg
ICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5n
IHdvcmQgYnJlYWtzLgorICAgICAqIFdvcmRCcmVhayBpcyB1c2VmdWwgZm9yIHdvcmQgc2VsZWN0
aW9uIChleC4gZG91YmxlIGNsaWNrKQorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgor
ICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGVycm9yIGNvZGUKKyAgICAgKiBAcmV0dXJuIEEgQnJl
YWtJdGVyYXRvciBmb3Igd29yZC1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAg
ICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUg
dXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVk
IG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1Mo
ZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAq
IGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGlu
ZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRl
cyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUs
ICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAn
ZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMg
dGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRo
ZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAg
ICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBv
YmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisg
ICAgY3JlYXRlV29yZEluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0
YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3IgbGluZS1i
cmVha3MgdXNpbmcgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNl
IG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgbGluZSBicmVha3MuIExpbmUKKyAgICAg
KiBicmVha3MgYXJlIGxvZ2ljYWxseSBwb3NzaWJsZSBsaW5lIGJyZWFrcywgYWN0dWFsIGxpbmUg
YnJlYWtzIGFyZQorICAgICAqIHVzdWFsbHkgZGV0ZXJtaW5lZCBiYXNlZCBvbiBkaXNwbGF5IHdp
ZHRoLgorICAgICAqIExpbmVCcmVhayBpcyB1c2VmdWwgZm9yIHdvcmQgd3JhcHBpbmcgdGV4dC4K
KyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRo
ZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciBsaW5lLWJy
ZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0
byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNr
IHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNo
ZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9y
ZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1h
dGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAg
KiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9j
YWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVk
LCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4g
IFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2Fs
ZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9y
IGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAg
ICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2li
bGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVMaW5lSW5zdGFuY2Uo
Y29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAg
ICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBjaGFyYWN0ZXItYnJlYWtzIHVzaW5nIHNwZWNp
ZmllZCBsb2NhbGUKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRv
ciBpbXBsZW1lbnRpbmcgY2hhcmFjdGVyIGJyZWFrcy4KKyAgICAgKiBDaGFyYWN0ZXIgYnJlYWtz
IGFyZSBib3VuZGFyaWVzIG9mIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVuY2VzLgorICAgICAq
IEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9y
IGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIGNoYXJhY3Rlci1icmVh
a3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8g
cmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3
aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVj
aworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUg
ZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRp
b25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICog
VV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2Fs
ZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwg
YnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBV
X1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUg
ZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBh
bnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAg
ICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxl
IGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBz
dGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlQ2hhcmFjdGVySW5zdGFu
Y2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgor
ICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBzZW50ZW5jZS1icmVha3MgdXNpbmcgc3Bl
Y2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJh
dG9yIGltcGxlbWVudGluZyBzZW50ZW5jZSBicmVha3MuCisgICAgICogQHBhcmFtIHdoZXJlIHRo
ZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBA
cmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3Igc2VudGVuY2UtYnJlYWtzLiAgVGhlIFVFcnJvckNv
ZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5m
b3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3Ry
dWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFs
dWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0
aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0
cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tf
V0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IK
KyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBm
b3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dB
Uk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICog
dXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJh
Y2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3du
cyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0
b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZVNlbnRlbmNlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3
aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBCcmVh
a0l0ZXJhdG9yIGZvciB0aXRsZS1jYXNpbmcgYnJlYWtzIHVzaW5nIHRoZSBzcGVjaWZpZWQgbG9j
YWxlCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVt
ZW50aW5nIHRpdGxlIGJyZWFrcy4KKyAgICAgKiBUaGUgaXRlcmF0b3IgcmV0dXJuZWQgbG9jYXRl
cyB0aXRsZSBib3VuZGFyaWVzIGFzIGRlc2NyaWJlZCBmb3IKKyAgICAgKiBVbmljb2RlIDMuMiBv
bmx5LiBGb3IgVW5pY29kZSA0LjAgYW5kIGFib3ZlIHRpdGxlIGJvdW5kYXJ5IGl0ZXJhdGlvbiwK
KyAgICAgKiBwbGVhc2UgdXNlIFdvcmQgQm91bmRhcnkgaXRlcmF0b3Iue0BsaW5rICNjcmVhdGVX
b3JkSW5zdGFuY2UgfQorICAgICAqCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisg
ICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJuIEEgQnJl
YWtJdGVyYXRvciBmb3IgdGl0bGUtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cworICAg
ICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8gdGhl
IHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRl
ZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNT
KGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAgICAg
KiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGlsbCBp
bmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0
ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFtcGxl
LCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwgc28g
J2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVz
IHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhlciB0
aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcworICAg
ICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJuZWQg
b2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4xCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgor
ICAgIGNyZWF0ZVRpdGxlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYg
c3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc2V0IG9mIExvY2FsZXMgZm9yIHdo
aWNoIFRleHRCb3VuZGFyaWVzIGFyZSBpbnN0YWxsZWQuCisgICAgICogPHA+PGI+Tm90ZTo8L2I+
IHRoaXMgd2lsbCBub3QgcmV0dXJuIGxvY2FsZXMgYWRkZWQgdGhyb3VnaCB0aGUgcmVnaXN0ZXIK
KyAgICAgKiBjYWxsLiBUbyBzZWUgdGhlIHJlZ2lzdGVyZWQgbG9jYWxlcyB0b28sIHVzZSB0aGUg
Z2V0QXZhaWxhYmxlTG9jYWxlcworICAgICAqIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIFN0cmlu
Z0VudW1lcmF0aW9uIG9iamVjdCA8L3A+CisgICAgICogQHBhcmFtIGNvdW50IHRoZSBvdXRwdXQg
cGFyYW1ldGVyIG9mIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgbG9jYWxlIGxpc3QKKyAgICAg
KiBAcmV0dXJuIGF2YWlsYWJsZSBsb2NhbGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSogVV9FWFBPUlQyIGdldEF2YWlsYWJsZUxvY2Fs
ZXMoaW50MzJfdCYgY291bnQpOworCisgICAgLyoqCisgICAgICogR2V0IG5hbWUgb2YgdGhlIG9i
amVjdCBmb3IgdGhlIGRlc2lyZWQgTG9jYWxlLCBpbiB0aGUgZGVzaXJlZCBsYW5nYXVnZS4KKyAg
ICAgKiBAcGFyYW0gb2JqZWN0TG9jYWxlIG11c3QgYmUgZnJvbSBnZXRBdmFpbGFibGVMb2NhbGVz
LgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHNwZWNpZmllcyB0aGUgZGVzaXJlZCBsb2Nh
bGUgZm9yIG91dHB1dC4KKyAgICAgKiBAcGFyYW0gbmFtZSB0aGUgZmlsbC1pbiBwYXJhbWV0ZXIg
b2YgdGhlIHJldHVybiB2YWx1ZQorICAgICAqIFVzZXMgYmVzdCBtYXRjaC4KKyAgICAgKiBAcmV0
dXJuIHVzZXItZGlzcGxheWFibGUgbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBVX0VYUE9SVDIgZ2V0RGlzcGxheU5hbWUoY29u
c3QgTG9jYWxlJiBvYmplY3RMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IExvY2FsZSYgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgbmFtZSk7CisKKyAgICAvKioK
KyAgICAgKiBHZXQgbmFtZSBvZiB0aGUgb2JqZWN0IGZvciB0aGUgZGVzaXJlZCBMb2NhbGUsIGlu
IHRoZSBsYW5nYXVnZSBvZiB0aGUKKyAgICAgKiBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFy
YW0gb2JqZWN0TG9jYWxlIG11c3QgYmUgZnJvbSBnZXRNYXRjaGluZ0xvY2FsZXMKKyAgICAgKiBA
cGFyYW0gbmFtZSB0aGUgZmlsbC1pbiBwYXJhbWV0ZXIgb2YgdGhlIHJldHVybiB2YWx1ZQorICAg
ICAqIEByZXR1cm4gdXNlci1kaXNwbGF5YWJsZSBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgc3RhdGljIFVuaWNvZGVTdHJpbmcmIFVfRVhQT1JUMiBnZXREaXNwbGF5
TmFtZShjb25zdCBMb2NhbGUmIG9iamVjdExvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgbmFtZSk7CisKKyAgICAvKioKKyAgICAg
KiBEZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoK
KyAgICAgKiBUaHJlYWQgc2FmZSBjbGllbnQtYnVmZmVyLWJhc2VkIGNsb25pbmcgb3BlcmF0aW9u
CisgICAgICogICAgRG8gTk9UIGNhbGwgZGVsZXRlIG9uIGEgc2FmZWNsb25lLCBzaW5jZSAnbmV3
JyBpcyBub3QgdXNlZCB0byBjcmVhdGUgaXQuCisgICAgICogQHBhcmFtIHN0YWNrQnVmZmVyIHVz
ZXIgYWxsb2NhdGVkIHNwYWNlIGZvciB0aGUgbmV3IGNsb25lLiBJZiBOVUxMIG5ldyBtZW1vcnkg
d2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogSWYgYnVmZmVyIGlzIG5vdCBsYXJnZSBlbm91Z2gs
IG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogQHBhcmFtIEJ1ZmZlclNpemUg
cmVmZXJlbmNlIHRvIHNpemUgb2YgYWxsb2NhdGVkIHNwYWNlLgorICAgICAqIElmIEJ1ZmZlclNp
emUgPT0gMCwgYSBzdWZmaWNpZW50IHNpemUgZm9yIHVzZSBpbiBjbG9uaW5nIHdpbGwKKyAgICAg
KiBiZSByZXR1cm5lZCAoJ3ByZS1mbGlnaHRpbmcnKQorICAgICAqIElmIEJ1ZmZlclNpemUgaXMg
bm90IGVub3VnaCBmb3IgYSBzdGFjay1iYXNlZCBzYWZlIGNsb25lLAorICAgICAqIG5ldyBtZW1v
cnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogQHBhcmFtIHN0YXR1cyB0byBpbmRpY2F0ZSB3
aGV0aGVyIHRoZSBvcGVyYXRpb24gd2VudCBvbiBzbW9vdGhseSBvciB0aGVyZSB3ZXJlIGVycm9y
cworICAgICAqICBBbiBpbmZvcm1hdGlvbmFsIHN0YXR1cyB2YWx1ZSwgVV9TQUZFQ0xPTkVfQUxM
T0NBVEVEX0VSUk9SLCBpcyB1c2VkIGlmIGFueSBhbGxvY2F0aW9ucyB3ZXJlCisgICAgICogIG5l
Y2Vzc2FyeS4KKyAgICAgKiBAcmV0dXJuIHBvaW50ZXIgdG8gdGhlIG5ldyBjbG9uZQorICAgICAq
CisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAq
LworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciAqICBjcmVhdGVCdWZmZXJDbG9uZSh2b2lkICpz
dGFja0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50MzJfdCAmQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyNpZm5kZWYgVV9ISURF
X0RFUFJFQ0FURURfQVBJCisKKyAgICAvKioKKyAgICAgKiAgIERldGVybWluZSB3aGV0aGVyIHRo
ZSBCcmVha0l0ZXJhdG9yIHdhcyBjcmVhdGVkIGluIHVzZXIgbWVtb3J5IGJ5CisgICAgICogICBj
cmVhdGVCdWZmZXJDbG9uZSgpLCBhbmQgdGh1cyBzaG91bGQgbm90IGJlIGRlbGV0ZWQuICBTdWNo
IG9iamVjdHMKKyAgICAgKiAgIG11c3QgYmUgY2xvc2VkIGJ5IGFuIGV4cGxpY2l0IGNhbGwgdG8g
dGhlIGRlc3RydWN0b3IgKG5vdCBkZWxldGUpLgorICAgICAqIEBkZXByZWNhdGVkIElDVSA1Mi4g
QWx3YXlzIGRlbGV0ZSB0aGUgQnJlYWtJdGVyYXRvci4KKyAgICAgKi8KKyAgICBpbmxpbmUgVUJv
b2wgaXNCdWZmZXJDbG9uZSh2b2lkKTsKKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQ
SSAqLworCisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorICAgIC8qKgorICAgICAqIFJlZ2lzdGVy
IGEgbmV3IGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBpbmRpY2F0ZWQga2luZCwgdG8gdXNlIGluIHRo
ZSBnaXZlbiBsb2NhbGUuCisgICAgICogVGhlIGJyZWFrIGl0ZXJhdG9yIHdpbGwgYmUgYWRvcHRl
ZC4gIENsb25lcyBvZiB0aGUgaXRlcmF0b3Igd2lsbCBiZSByZXR1cm5lZAorICAgICAqIGlmIGEg
cmVxdWVzdCBmb3IgYSBicmVhayBpdGVyYXRvciBvZiB0aGUgZ2l2ZW4ga2luZCBtYXRjaGVzIG9y
IGZhbGxzIGJhY2sgdG8KKyAgICAgKiB0aGlzIGxvY2FsZS4KKyAgICAgKiBCZWNhdXNlIElDVSBt
YXkgY2hvb3NlIHRvIGNhY2hlIEJyZWFrSXRlcmF0b3JzIGludGVybmFsbHksIHRoaXMgbXVzdAor
ICAgICAqIGJlIGNhbGxlZCBhdCBhcHBsaWNhdGlvbiBzdGFydHVwLCBwcmlvciB0byBhbnkgY2Fs
bHMgdG8KKyAgICAgKiBCcmVha0l0ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0byBhdm9pZCB1
bmRlZmluZWQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIHRvQWRvcHQgdGhlIEJyZWFrSXRlcmF0
b3IgaW5zdGFuY2UgdG8gYmUgYWRvcHRlZAorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIExvY2Fs
ZSBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAgICogQHBh
cmFtIGtpbmQgdGhlIHR5cGUgb2YgaXRlcmF0b3IgZm9yIHdoaWNoIHRoaXMgaW5zdGFuY2UgaXMg
dG8gYmUgcmVnaXN0ZXJlZAorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGluL291dCBzdGF0dXMg
Y29kZSwgbm8gc3BlY2lhbCBtZWFuaW5ncyBhcmUgYXNzaWduZWQKKyAgICAgKiBAcmV0dXJuIGEg
cmVnaXN0cnkga2V5IHRoYXQgY2FuIGJlIHVzZWQgdG8gdW5yZWdpc3RlciB0aGlzIGluc3RhbmNl
CisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgc3RhdGljIFVSZWdpc3RyeUtl
eSBVX0VYUE9SVDIgcmVnaXN0ZXJJbnN0YW5jZShCcmVha0l0ZXJhdG9yKiB0b0Fkb3B0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYgbG9jYWxl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVCcmVha0l0ZXJhdG9y
VHlwZSBraW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJv
ckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGEgcHJldmlvdXNs
eS1yZWdpc3RlcmVkIEJyZWFrSXRlcmF0b3IgdXNpbmcgdGhlIGtleSByZXR1cm5lZCBmcm9tIHRo
ZQorICAgICAqIHJlZ2lzdGVyIGNhbGwuICBLZXkgYmVjb21lcyBpbnZhbGlkIGFmdGVyIGEgc3Vj
Y2Vzc2Z1bCBjYWxsIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYWdhaW4uCisgICAgICogVGhlIEJy
ZWFrSXRlcmF0b3IgY29ycmVzcG9uZGluZyB0byB0aGUga2V5IHdpbGwgYmUgZGVsZXRlZC4KKyAg
ICAgKiBCZWNhdXNlIElDVSBtYXkgY2hvb3NlIHRvIGNhY2hlIEJyZWFrSXRlcmF0b3JzIGludGVy
bmFsbHksIHRoaXMgc2hvdWxkCisgICAgICogYmUgY2FsbGVkIGR1cmluZyBhcHBsaWNhdGlvbiBz
aHV0ZG93biwgYWZ0ZXIgYWxsIGNhbGxzIHRvCisgICAgICogQnJlYWtJdGVyYXRvcjo6Y3JlYXRl
WFhYSW5zdGFuY2UgdG8gYXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9yLgorICAgICAqIEBwYXJhbSBr
ZXkgdGhlIHJlZ2lzdHJ5IGtleSByZXR1cm5lZCBieSBhIHByZXZpb3VzIGNhbGwgdG8gcmVnaXN0
ZXJJbnN0YW5jZQorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGluL291dCBzdGF0dXMgY29kZSwg
bm8gc3BlY2lhbCBtZWFuaW5ncyBhcmUgYXNzaWduZWQKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYg
dGhlIGl0ZXJhdG9yIGZvciB0aGUga2V5IHdhcyBzdWNjZXNzZnVsbHkgdW5yZWdpc3RlcmVkCisg
ICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgc3RhdGljIFVCb29sIFVfRVhQT1JU
MiB1bnJlZ2lzdGVyKFVSZWdpc3RyeUtleSBrZXksIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAg
ICAvKioKKyAgICAgKiBSZXR1cm4gYSBTdHJpbmdFbnVtZXJhdGlvbiBvdmVyIHRoZSBsb2NhbGVz
IGF2YWlsYWJsZSBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbCwKKyAgICAgKiBpbmNsdWRpbmcgcmVn
aXN0ZXJlZCBsb2NhbGVzLgorICAgICAqIEByZXR1cm4gYSBTdHJpbmdFbnVtZXJhdGlvbiBvdmVy
IHRoZSBsb2NhbGVzIGF2YWlsYWJsZSBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbAorICAgICAqIEBz
dGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHN0YXRpYyBTdHJpbmdFbnVtZXJhdGlvbiogVV9F
WFBPUlQyIGdldEF2YWlsYWJsZUxvY2FsZXModm9pZCk7CisjZW5kaWYKKworICAgIC8qKgorICAg
ICAqIFJldHVybnMgdGhlIGxvY2FsZSBmb3IgdGhpcyBicmVhayBpdGVyYXRvci4gVHdvIGZsYXZv
cnMgYXJlIGF2YWlsYWJsZTogdmFsaWQgYW5kCisgICAgICogYWN0dWFsIGxvY2FsZS4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBMb2NhbGUgZ2V0TG9jYWxlKFVMb2NEYXRh
TG9jYWxlVHlwZSB0eXBlLCBVRXJyb3JDb2RlJiBzdGF0dXMpIGNvbnN0OworCisjaWZuZGVmIFVf
SElERV9JTlRFUk5BTF9BUEkKKyAgICAvKiogR2V0IHRoZSBsb2NhbGUgZm9yIHRoaXMgYnJlYWsg
aXRlcmF0b3Igb2JqZWN0LiBZb3UgY2FuIGNob29zZSBiZXR3ZWVuIHZhbGlkIGFuZCBhY3R1YWwg
bG9jYWxlLgorICAgICAqICBAcGFyYW0gdHlwZSB0eXBlIG9mIHRoZSBsb2NhbGUgd2UncmUgbG9v
a2luZyBmb3IgKHZhbGlkIG9yIGFjdHVhbCkKKyAgICAgKiAgQHBhcmFtIHN0YXR1cyBlcnJvciBj
b2RlIGZvciB0aGUgb3BlcmF0aW9uCisgICAgICogIEByZXR1cm4gdGhlIGxvY2FsZQorICAgICAq
ICBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICpnZXRMb2NhbGVJRChVTG9jRGF0
YUxvY2FsZVR5cGUgdHlwZSwgVUVycm9yQ29kZSYgc3RhdHVzKSBjb25zdDsKKyNlbmRpZiAgLyog
VV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisgICAgLyoqCisgICAgICogIFNldCB0aGUgc3ViamVj
dCB0ZXh0IHN0cmluZyB1cG9uIHdoaWNoIHRoZSBicmVhayBpdGVyYXRvciBpcyBvcGVyYXRpbmcK
KyAgICAgKiAgd2l0aG91dCBjaGFuZ2luZyBhbnkgb3RoZXIgYXNwZWN0IG9mIHRoZSBtYXRjaGlu
ZyBzdGF0ZS4KKyAgICAgKiAgVGhlIG5ldyBhbmQgcHJldmlvdXMgdGV4dCBzdHJpbmdzIG11c3Qg
aGF2ZSB0aGUgc2FtZSBjb250ZW50LgorICAgICAqCisgICAgICogIFRoaXMgZnVuY3Rpb24gaXMg
aW50ZW5kZWQgZm9yIHVzZSBpbiBlbnZpcm9ubWVudHMgd2hlcmUgSUNVIGlzIG9wZXJhdGluZyBv
bgorICAgICAqICBzdHJpbmdzIHRoYXQgbWF5IG1vdmUgYXJvdW5kIGluIG1lbW9yeS4gIEl0IHBy
b3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBub3RpZnlpbmcKKyAgICAgKiAgSUNVIHRoYXQgdGhlIHN0
cmluZyBoYXMgYmVlbiByZWxvY2F0ZWQsIGFuZCBwcm92aWRpbmcgYSBuZXcgVVRleHQgdG8gYWNj
ZXNzIHRoZQorICAgICAqICBzdHJpbmcgaW4gaXRzIG5ldyBwb3NpdGlvbi4KKyAgICAgKgorICAg
ICAqICBOb3RlIHRoYXQgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uIG5ldmVyIGNv
cGllcyB0aGUgdW5kZXJseWluZyB0ZXh0CisgICAgICogIG9mIGEgc3RyaW5nIGJlaW5nIHByb2Nl
c3NlZCwgYnV0IGFsd2F5cyBvcGVyYXRlcyBkaXJlY3RseSBvbiB0aGUgb3JpZ2luYWwgdGV4dAor
ICAgICAqICBwcm92aWRlZCBieSB0aGUgdXNlci4gUmVmcmVzaGluZyBzaW1wbHkgZHJvcHMgdGhl
IHJlZmVyZW5jZXMgdG8gdGhlIG9sZCB0ZXh0CisgICAgICogIGFuZCByZXBsYWNlcyB0aGVtIHdp
dGggcmVmZXJlbmNlcyB0byB0aGUgbmV3LgorICAgICAqCisgICAgICogIENhdXRpb246ICB0aGlz
IGZ1bmN0aW9uIGlzIG5vcm1hbGx5IHVzZWQgb25seSBieSB2ZXJ5IHNwZWNpYWxpemVkLAorICAg
ICAqICBzeXN0ZW0tbGV2ZWwgY29kZS4gIE9uZSBleGFtcGxlIHVzZSBjYXNlIGlzIHdpdGggZ2Fy
YmFnZSBjb2xsZWN0aW9uIHRoYXQgbW92ZXMKKyAgICAgKiAgdGhlIHRleHQgaW4gbWVtb3J5Lgor
ICAgICAqCisgICAgICogQHBhcmFtIGlucHV0ICAgICAgVGhlIG5ldyAobW92ZWQpIHRleHQgc3Ry
aW5nLgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgIFJlY2VpdmVzIGVycm9ycyBkZXRlY3RlZCBi
eSB0aGlzIGZ1bmN0aW9uLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICp0aGlzCisgICAgICoK
KyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRv
ciAmcmVmcmVzaElucHV0VGV4dChVVGV4dCAqaW5wdXQsIFVFcnJvckNvZGUgJnN0YXR1cykgPSAw
OworCisgcHJpdmF0ZToKKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogYnVpbGRJbnN0YW5jZShj
b25zdCBMb2NhbGUmIGxvYywgY29uc3QgY2hhciAqdHlwZSwgaW50MzJfdCBraW5kLCBVRXJyb3JD
b2RlJiBzdGF0dXMpOworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBjcmVhdGVJbnN0YW5jZShj
b25zdCBMb2NhbGUmIGxvYywgaW50MzJfdCBraW5kLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworICAg
IHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBtYWtlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2MsIGlu
dDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIGZyaWVuZCBjbGFzcyBJQ1VC
cmVha0l0ZXJhdG9yRmFjdG9yeTsKKyAgICBmcmllbmQgY2xhc3MgSUNVQnJlYWtJdGVyYXRvclNl
cnZpY2U7CisKK3Byb3RlY3RlZDoKKyAgICAvLyBEbyBub3QgZW5jbG9zZSBwcm90ZWN0ZWQgZGVm
YXVsdC9jb3B5IGNvbnN0cnVjdG9ycyB3aXRoICNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQor
ICAgIC8vIG9yIGVsc2UgdGhlIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGEgcHVibGljIG9uZXMuCisg
ICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFrSXRlcmF0b3IoKTsKKyAgICAvKiogQGludGVy
bmFsICovCisgICAgQnJlYWtJdGVyYXRvciAoY29uc3QgQnJlYWtJdGVyYXRvciAmb3RoZXIpIDog
VU9iamVjdChvdGhlcikge30KKyAgICAvKiogQGludGVybmFsICovCisgICAgQnJlYWtJdGVyYXRv
ciAoY29uc3QgTG9jYWxlJiB2YWxpZCwgY29uc3QgTG9jYWxlJiBhY3R1YWwpOworcHJpdmF0ZToK
KworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBjaGFyIGFjdHVhbExvY2FsZVtVTE9DX0ZVTExO
QU1FX0NBUEFDSVRZXTsKKyAgICBjaGFyIHZhbGlkTG9jYWxlW1VMT0NfRlVMTE5BTUVfQ0FQQUNJ
VFldOworCisgICAgLyoqCisgICAgICogVGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IgaGFzIG5vIHJl
YWwgaW1wbGVtZW50YXRpb24uCisgICAgICogSXQncyBwcm92aWRlZCB0byBtYWtlIHRoZSBjb21w
aWxlciBoYXBweS4gRG8gbm90IGNhbGwuCisgICAgICovCisgICAgQnJlYWtJdGVyYXRvciYgb3Bl
cmF0b3I9KGNvbnN0IEJyZWFrSXRlcmF0b3ImKTsKK307CisKKyNpZm5kZWYgVV9ISURFX0RFUFJF
Q0FURURfQVBJCisKK2lubGluZSBVQm9vbCBCcmVha0l0ZXJhdG9yOjppc0J1ZmZlckNsb25lKCkK
K3sKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVDQVRFRF9B
UEkgKi8KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZiAvKiAjaWYgIVVDT05GSUdfTk9fQlJF
QUtfSVRFUkFUSU9OICovCisKKyNlbmRpZiAvLyBfQlJLSVRFUgorLy9lb2YKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNv
ZGUvY2hhcml0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGQ2NTA5MGE0MGE2MDg1OTUxYzczMzA3Zjc0YWNm
ODNiYTFiYmM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9jaGFy
aXRlci5oCkBAIC0wLDAgKzEsNzIyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmln
aHQgKEMpIDE5OTctMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENv
cnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyovCisKKyNpZm5kZWYgQ0hBUklURVJfSAorI2RlZmluZSBDSEFSSVRFUl9ICisKKyNpbmNs
dWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2lu
Y2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQ
STogQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lOCisvKioKKyAq
IEFic3RyYWN0IGNsYXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGZvcndhcmQtb25seSBpdGVy
YXRpb24KKyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMgaXMgYSBtaW5pbWFsIGludGVyZmFj
ZSBmb3IgaXRlcmF0aW9uIHdpdGhvdXQgcmFuZG9tIGFjY2VzcworICogb3IgYmFja3dhcmRzIGl0
ZXJhdGlvbi4gSXQgaXMgZXNwZWNpYWxseSB1c2VmdWwgZm9yIHdyYXBwaW5nCisgKiBzdHJlYW1z
IHdpdGggY29udmVydGVycyBpbnRvIGFuIG9iamVjdCBmb3IgY29sbGF0aW9uIG9yCisgKiBub3Jt
YWxpemF0aW9uLgorICoKKyAqIDxwPkNoYXJhY3RlcnMgY2FuIGJlIGFjY2Vzc2VkIGluIHR3byB3
YXlzOiBhcyBjb2RlIHVuaXRzIG9yIGFzCisgKiBjb2RlIHBvaW50cy4KKyAqIFVuaWNvZGUgY29k
ZSBwb2ludHMgYXJlIDIxLWJpdCBpbnRlZ2VycyBhbmQgYXJlIHRoZSBzY2FsYXIgdmFsdWVzCisg
KiBvZiBVbmljb2RlIGNoYXJhY3RlcnMuIElDVSB1c2VzIHRoZSB0eXBlIFVDaGFyMzIgZm9yIHRo
ZW0uCisgKiBVbmljb2RlIGNvZGUgdW5pdHMgYXJlIHRoZSBzdG9yYWdlIHVuaXRzIG9mIGEgZ2l2
ZW4KKyAqIFVuaWNvZGUvVUNTIFRyYW5zZm9ybWF0aW9uIEZvcm1hdCAoYSBjaGFyYWN0ZXIgZW5j
b2Rpbmcgc2NoZW1lKS4KKyAqIFdpdGggVVRGLTE2LCBhbGwgY29kZSBwb2ludHMgY2FuIGJlIHJl
cHJlc2VudGVkIHdpdGggZWl0aGVyIG9uZQorICogb3IgdHdvIGNvZGUgdW5pdHMgKCJzdXJyb2dh
dGVzIikuCisgKiBTdHJpbmcgc3RvcmFnZSBpcyB0eXBpY2FsbHkgYmFzZWQgb24gY29kZSB1bml0
cywgd2hpbGUgcHJvcGVydGllcworICogb2YgY2hhcmFjdGVycyBhcmUgdHlwaWNhbGx5IGRldGVy
bWluZWQgdXNpbmcgY29kZSBwb2ludCB2YWx1ZXMuCisgKiBTb21lIHByb2Nlc3NlcyBtYXkgYmUg
ZGVzaWduZWQgdG8gd29yayB3aXRoIHNlcXVlbmNlcyBvZiBjb2RlIHVuaXRzLAorICogb3IgaXQg
bWF5IGJlIGtub3duIHRoYXQgYWxsIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW1wb3J0YW50IHRvIGFu
CisgKiBhbGdvcml0aG0gY2FuIGJlIHJlcHJlc2VudGVkIHdpdGggc2luZ2xlIGNvZGUgdW5pdHMu
CisgKiBPdGhlciBwcm9jZXNzZXMgd2lsbCBuZWVkIHRvIHVzZSB0aGUgY29kZSBwb2ludCBhY2Nl
c3MgZnVuY3Rpb25zLjwvcD4KKyAqCisgKiA8cD5Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgcHJv
dmlkZXMgbmV4dFBvc3RJbmMoKSB0byBhY2Nlc3MKKyAqIGEgY29kZSB1bml0IGFuZCBhZHZhbmNl
IGFuIGludGVybmFsIHBvc2l0aW9uIGludG8gdGhlIHRleHQgb2JqZWN0LAorICogc2ltaWxhciB0
byBhIDxjb2RlPnJldHVybiB0ZXh0W3Bvc2l0aW9uKytdPC9jb2RlPi48YnI+CisgKiBJdCBwcm92
aWRlcyBuZXh0MzJQb3N0SW5jKCkgdG8gYWNjZXNzIGEgY29kZSBwb2ludCBhbmQgYWR2YW5jZSBh
biBpbnRlcm5hbAorICogcG9zaXRpb24uPC9wPgorICoKKyAqIDxwPm5leHQzMlBvc3RJbmMoKSBh
c3N1bWVzIHRoYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgdGhhdCBvZgorICogdGhlIGJlZ2lu
bmluZyBvZiBhIGNvZGUgcG9pbnQsIGkuZS4sIG9mIGl0cyBmaXJzdCBjb2RlIHVuaXQuCisgKiBB
ZnRlciBuZXh0MzJQb3N0SW5jKCksIHRoaXMgd2lsbCBiZSB0cnVlIGFnYWluLgorICogSW4gZ2Vu
ZXJhbCwgYWNjZXNzIHRvIGNvZGUgdW5pdHMgYW5kIGNvZGUgcG9pbnRzIGluIHRoZSBzYW1lCisg
KiBpdGVyYXRpb24gbG9vcCBzaG91bGQgbm90IGJlIG1peGVkLiBJbiBVVEYtMTYsIGlmIHRoZSBj
dXJyZW50IHBvc2l0aW9uCisgKiBpcyBvbiBhIHNlY29uZCBjb2RlIHVuaXQgKExvdyBTdXJyb2dh
dGUpLCB0aGVuIG9ubHkgdGhhdCBjb2RlIHVuaXQKKyAqIGlzIHJldHVybmVkIGV2ZW4gYnkgbmV4
dDMyUG9zdEluYygpLjwvcD4KKyAqCisgKiA8cD5Gb3IgaXRlcmF0aW9uIHdpdGggZWl0aGVyIGZ1
bmN0aW9uLCB0aGVyZSBhcmUgdHdvIHdheXMgdG8KKyAqIGNoZWNrIGZvciB0aGUgZW5kIG9mIHRo
ZSBpdGVyYXRpb24uIFdoZW4gdGhlcmUgYXJlIG5vIG1vcmUKKyAqIGNoYXJhY3RlcnMgaW4gdGhl
IHRleHQgb2JqZWN0OgorICogPHVsPgorICogPGxpPlRoZSBoYXNOZXh0KCkgZnVuY3Rpb24gcmV0
dXJucyBGQUxTRS48L2xpPgorICogPGxpPm5leHRQb3N0SW5jKCkgYW5kIG5leHQzMlBvc3RJbmMo
KSByZXR1cm4gRE9ORQorICogICAgIHdoZW4gb25lIGF0dGVtcHRzIHRvIHJlYWQgYmV5b25kIHRo
ZSBlbmQgb2YgdGhlIHRleHQgb2JqZWN0LjwvbGk+CisgKiA8L3VsPgorICoKKyAqIEV4YW1wbGU6
CisgKiBcY29kZSAKKyAqIHZvaWQgZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAm
aXQpIHsKKyAqICAgICBVQ2hhcjMyIGM7CisgKiAgICAgd2hpbGUoaXQuaGFzTmV4dCgpKSB7Cisg
KiAgICAgICAgIGM9aXQubmV4dDMyUG9zdEluYygpOworICogICAgICAgICAvLyB1c2UgYworICog
ICAgIH0KKyAqIH0KKyAqCisgKiB2b2lkIGZ1bmN0aW9uMShGb3J3YXJkQ2hhcmFjdGVySXRlcmF0
b3IgJml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAgICB3aGlsZSgoYz1pdC5uZXh0UG9zdElu
YygpKSE9Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yOjpET05FKSB7CisgKiAgICAgICAgIC8vIHVz
ZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wPgorICoKKyAqIEBzdGFi
bGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yIDogcHVibGljIFVPYmplY3QgeworcHVibGljOgorICAgIC8qKgorICAgICAqIFZhbHVlIHJl
dHVybmVkIGJ5IG1vc3Qgb2YgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJ3MgZnVuY3Rpb25zCisg
ICAgICogd2hlbiB0aGUgaXRlcmF0b3IgaGFzIHJlYWNoZWQgdGhlIGxpbWl0cyBvZiBpdHMgaXRl
cmF0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGVudW0geyBET05F
ID0gMHhmZmZmIH07CisgICAgCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3Rvci4gIAorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvcigpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSB3aGVuIGJvdGgg
aXRlcmF0b3JzIHJlZmVyIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1l
IGNoYXJhY3Rlci1zdG9yYWdlIG9iamVjdC4gIAorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3
YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5CisgICAgICog
QHJldHVybiB0cnVlIHdoZW4gYm90aCBpdGVyYXRvcnMgcmVmZXIgdG8gdGhlIHNhbWUKKyAgICAg
KiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgY2hhcmFjdGVyLXN0b3JhZ2Ugb2JqZWN0CisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09KGNv
bnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3QgPSAwOworICAgIAorICAg
IC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBpdGVyYXRvcnMgcmVmZXIgdG8gZGlm
ZmVyZW50CisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdHMsIG9yIHRvIGRpZmZlcmVudCBjaGFy
YWN0ZXJzIGluIHRoZQorICAgICAqIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdC4gIAorICAgICAq
IEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQg
Zm9yIGluZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRydWUgd2hlbiB0aGUgaXRlcmF0b3JzIHJl
ZmVyIHRvIGRpZmZlcmVudAorICAgICAqIHRleHQtc3RvcmFnZSBvYmplY3RzLCBvciB0byBkaWZm
ZXJlbnQgY2hhcmFjdGVycyBpbiB0aGUKKyAgICAgKiBzYW1lIHRleHQtc3RvcmFnZSBvYmplY3QK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgVUJvb2wgb3BlcmF0
b3IhPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0OworICAgIAor
ICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhpcyBpdGVyYXRvci4g
IAorICAgICAqIEByZXR1cm4gdGhlIGhhc2ggY29kZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgaGFzaENvZGUodm9pZCkgY29uc3QgPSAwOwor
ICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhpcyBGb3J3YXJk
Q2hhcmFjdGVySXRlcmF0b3IgKCJwb29yIG1hbidzCisgICAgICogUlRUSSIpLjxQPiBEZXNwaXRl
IHRoZSBmYWN0IHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBwdWJsaWMsCisgICAgICogRE8gTk9UIENP
TlNJREVSIElUIFBBUlQgT0YgQ0hBUkFDVEVSSVRFUkFUT1InUyBBUEkhIAorICAgICAqIEByZXR1
cm4gYSBVQ2xhc3NJRCBmb3IgdGhpcyBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWlj
Q2xhc3NJRCh2b2lkKSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUg
Y3VycmVudCBjb2RlIHVuaXQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhlIG5leHQg
Y29kZSB1bml0CisgICAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQg
ZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgdW5pdHMgdG8g
cmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVu
aXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAg
ICAgICAgIG5leHRQb3N0SW5jKHZvaWQpID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRz
IHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhl
IG5leHQgY29kZSBwb2ludAorICAgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAo
dG93YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHBv
aW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50
IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBVQ2hhcjMyICAgICAgIG5leHQzMlBvc3RJbmModm9pZCkgPSAwOworICAgIAorICAgIC8qKgor
ICAgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBj
b2RlIHBvaW50cworICAgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRo
ZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogVGhpcyBpcyB1c2VkIHdpdGggbmV4dFBvc3RJbmMo
KSBvciBuZXh0MzJQb3N0SW5jKCkgaW4gZm9yd2FyZAorICAgICAqIGl0ZXJhdGlvbi4KKyAgICAg
KiBAcmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUg
cG9pbnRzCisgICAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0
ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIFVCb29sICAgICAgICBoYXNOZXh0KCkgPSAwOworICAgIAorcHJvdGVjdGVkOgorICAgIC8q
KiBEZWZhdWx0IGNvbnN0cnVjdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGlu
ZyBjbGFzcy4gQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Io
KTsKKyAgICAKKyAgICAvKiogQ29weSBjb25zdHJ1Y3RvciB0byBiZSBvdmVycmlkZGVuIGluIHRo
ZSBpbXBsZW1lbnRpbmcgY2xhc3MuIEBzdGFibGUgSUNVIDIuMCovCisgICAgRm9yd2FyZENoYXJh
Y3Rlckl0ZXJhdG9yKGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmb3RoZXIpOworICAg
IAorICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IgdG8gYmUgb3ZlcnJpZGRlbiBp
biB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmb3BlcmF0b3I9KGNvbnN0IEZvcndhcmRD
aGFyYWN0ZXJJdGVyYXRvciYpIHsgcmV0dXJuICp0aGlzOyB9Cit9OworCisvKioKKyAqIEFic3Ry
YWN0IGNsYXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGl0ZXJhdGlvbgorICogb24gdGV4dCBv
YmplY3RzLgorICogVGhpcyBpcyBhbiBpbnRlcmZhY2UgZm9yIGZvcndhcmQgYW5kIGJhY2t3YXJk
IGl0ZXJhdGlvbgorICogYW5kIHJhbmRvbSBhY2Nlc3MgaW50byBhIHRleHQgb2JqZWN0LgorICoK
KyAqIDxwPlRoZSBBUEkgcHJvdmlkZXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB0byB0aGUgSmF2
YSBhbmQgb2xkZXIgSUNVCisgKiBDaGFyYWN0ZXJJdGVyYXRvciBjbGFzc2VzIGJ1dCBleHRlbmRz
IHRoZW0gc2lnbmlmaWNhbnRseToKKyAqIDxvbD4KKyAqIDxsaT5DaGFyYWN0ZXJJdGVyYXRvciBp
cyBub3cgYSBzdWJjbGFzcyBvZiBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuPC9saT4KKyAqIDxs
aT5XaGlsZSB0aGUgb2xkIEFQSSBmdW5jdGlvbnMgcHJvdmlkZWQgZm9yd2FyZCBpdGVyYXRpb24g
d2l0aAorICogICAgICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MsIHRoZSBuZXcgb25lIGFsc28g
cHJvdmlkZXMgZnVuY3Rpb25zCisgKiAgICAgd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNlbWFudGlj
cy4gVGhleSBhcmUgbW9yZSBlZmZpY2llbnQgYW5kIHNob3VsZAorICogICAgIGJlIHRoZSBwcmVm
ZXJyZWQgaXRlcmF0b3IgZnVuY3Rpb25zIGZvciBuZXcgaW1wbGVtZW50YXRpb25zLgorICogICAg
IFRoZSBiYWNrd2FyZCBpdGVyYXRpb24gYWx3YXlzIGhhZCAicHJlLWRlY3JlbWVudCIgc2VtYW50
aWNzLCB3aGljaAorICogICAgIGFyZSBlZmZpY2llbnQuPC9saT4KKyAqIDxsaT5KdXN0IGxpa2Ug
Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLCBpdCBwcm92aWRlcyBhY2Nlc3MgdG8KKyAqICAgICBi
b3RoIGNvZGUgdW5pdHMgYW5kIGNvZGUgcG9pbnRzLiBDb2RlIHBvaW50IGFjY2VzcyB2ZXJzaW9u
cyBhcmUgYXZhaWxhYmxlCisgKiAgICAgZm9yIHRoZSBvbGQgYW5kIHRoZSBuZXcgaXRlcmF0aW9u
IHNlbWFudGljcy48L2xpPgorICogPGxpPlRoZXJlIGFyZSBuZXcgZnVuY3Rpb25zIGZvciBzZXR0
aW5nIGFuZCBtb3ZpbmcgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICB3aXRob3V0IHJldHVy
bmluZyBhIGNoYXJhY3RlciwgZm9yIGVmZmljaWVuY3kuPC9saT4KKyAqIDwvb2w+CisgKgorICog
U2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciBmb3IgZXhhbXBsZXMgZm9yIHVzaW5nIHRoZSBu
ZXcgZm9yd2FyZCBpdGVyYXRpb24KKyAqIGZ1bmN0aW9ucy4gRm9yIGJhY2t3YXJkIGl0ZXJhdGlv
biwgdGhlcmUgaXMgYWxzbyBhIGhhc1ByZXZpb3VzKCkgZnVuY3Rpb24KKyAqIHRoYXQgY2FuIGJl
IHVzZWQgYW5hbG9nb3VzbHkgdG8gaGFzTmV4dCgpLgorICogVGhlIG9sZCBmdW5jdGlvbnMgd29y
ayBhcyBiZWZvcmUgYW5kIGFyZSBzaG93biBiZWxvdy48L3A+CisgKgorICogPHA+RXhhbXBsZXMg
Zm9yIHNvbWUgb2YgdGhlIG5ldyBmdW5jdGlvbnM6PC9wPgorICoKKyAqIEZvcndhcmQgaXRlcmF0
aW9uIHdpdGggaGFzTmV4dCgpOgorICogXGNvZGUKKyAqIHZvaWQgZm9yd2FyZDEoQ2hhcmFjdGVy
SXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIzMiBjOworICogICAgIGZvcihpdC5zZXRUb1N0
YXJ0KCk7IGl0Lmhhc05leHQoKTspIHsKKyAqICAgICAgICAgYz1pdC5uZXh0MzJQb3N0SW5jKCk7
CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiBG
b3J3YXJkIGl0ZXJhdGlvbiBtb3JlIHNpbWlsYXIgdG8gbG9vcHMgd2l0aCB0aGUgb2xkIGZvcndh
cmQgaXRlcmF0aW9uLAorICogc2hvd2luZyBhIHdheSB0byBjb252ZXJ0IHNpbXBsZSBmb3IoKSBs
b29wczoKKyAqIFxjb2RlCisgKiB2b2lkIGZvcndhcmQyKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkg
eworICogICAgIFVDaGFyIGM7CisgKiAgICAgZm9yKGM9aXQuZmlyc3RQb3N0SW5jKCk7IGMhPUNo
YXJhY3Rlckl0ZXJhdG9yOjpET05FOyBjPWl0Lm5leHRQb3N0SW5jKCkpIHsKKyAqICAgICAgICAg
IC8vIHVzZSBjCisgKiAgICAgIH0KKyAqIH0KKyAqIFxlbmRjb2RlCisgKiBCYWNrd2FyZCBpdGVy
YXRpb24gd2l0aCBzZXRUb0VuZCgpIGFuZCBoYXNQcmV2aW91cygpOgorICogXGNvZGUKKyAqICB2
b2lkIGJhY2t3YXJkMShDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICAgVUNoYXIzMiBj
OworICogICAgICBmb3IoaXQuc2V0VG9FbmQoKTsgaXQuaGFzUHJldmlvdXMoKTspIHsKKyAqICAg
ICAgICAgYz1pdC5wcmV2aW91czMyKCk7CisgKiAgICAgICAgICAvLyB1c2UgYworICogICAgICB9
CisgKiAgfQorICogXGVuZGNvZGUKKyAqIEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIGEgbW9yZSB0
cmFkaXRpb25hbCBmb3IoKSBsb29wOgorICogXGNvZGUKKyAqIHZvaWQgYmFja3dhcmQyKENoYXJh
Y3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyIGM7CisgKiAgICAgZm9yKGM9aXQubGFz
dCgpOyBjIT1DaGFyYWN0ZXJJdGVyYXRvcjo6RE9ORTsgYz1pdC5wcmV2aW91cygpKSB7CisgKiAg
ICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICoKKyAqIEV4
YW1wbGUgZm9yIHJhbmRvbSBhY2Nlc3M6CisgKiBcY29kZQorICogIHZvaWQgcmFuZG9tKENoYXJh
Y3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgICAvLyBzZXQgdG8gdGhlIHRoaXJkIGNvZGUgcG9p
bnQgZnJvbSB0aGUgYmVnaW5uaW5nCisgKiAgICAgIGl0Lm1vdmUzMigzLCBDaGFyYWN0ZXJJdGVy
YXRvcjo6a1N0YXJ0KTsKKyAqICAgICAgLy8gZ2V0IGEgY29kZSBwb2ludCBmcm9tIGhlcmUgd2l0
aG91dCBtb3ZpbmcgdGhlIHBvc2l0aW9uCisgKiAgICAgIFVDaGFyMzIgYz1pdC5jdXJyZW50MzIo
KTsKKyAqICAgICAgLy8gZ2V0IHRoZSBwb3NpdGlvbgorICogICAgICBpbnQzMl90IHBvcz1pdC5n
ZXRJbmRleCgpOworICogICAgICAvLyBnZXQgdGhlIHByZXZpb3VzIGNvZGUgdW5pdAorICogICAg
ICBVQ2hhciB1PWl0LnByZXZpb3VzKCk7CisgKiAgICAgIC8vIG1vdmUgYmFjayBvbmUgbW9yZSBj
b2RlIHVuaXQKKyAqICAgICAgaXQubW92ZSgtMSwgQ2hhcmFjdGVySXRlcmF0b3I6OmtDdXJyZW50
KTsKKyAqICAgICAgLy8gc2V0IHRoZSBwb3NpdGlvbiBiYWNrIHRvIHdoZXJlIGl0IHdhcworICog
ICAgICAvLyBhbmQgcmVhZCB0aGUgc2FtZSBjb2RlIHBvaW50IGMgYW5kIG1vdmUgYmV5b25kIGl0
CisgKiAgICAgIGl0LnNldEluZGV4KHBvcyk7CisgKiAgICAgIGlmKGMhPWl0Lm5leHQzMlBvc3RJ
bmMoKSkgeworICogICAgICAgICAgZXhpdCgxKTsgLy8gQ2hhcmFjdGVySXRlcmF0b3IgaW5jb25z
aXN0ZW50CisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICoKKyAqIDxwPkV4YW1wbGVz
LCBlc3BlY2lhbGx5IGZvciB0aGUgb2xkIEFQSTo8L3A+CisgKgorICogRnVuY3Rpb24gcHJvY2Vz
c2luZyBjaGFyYWN0ZXJzLCBpbiB0aGlzIGV4YW1wbGUgc2ltcGxlIG91dHB1dAorICogPHByZT4K
KyAqIFxjb2RlCisgKiAgdm9pZCBwcm9jZXNzQ2hhciggVUNoYXIgYyApCisgKiAgeworICogICAg
ICBjb3V0IDw8ICIgIiA8PCBjOworICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIFRy
YXZlcnNlIHRoZSB0ZXh0IGZyb20gc3RhcnQgdG8gZmluaXNoCisgKiA8cHJlPiAKKyAqIFxjb2Rl
CisgKiAgdm9pZCB0cmF2ZXJzZUZvcndhcmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIpCisgKiAg
eworICogICAgICBmb3IoVUNoYXIgYyA9IGl0ZXIuZmlyc3QoKTsgYyAhPSBDaGFyYWN0ZXJJdGVy
YXRvci5ET05FOyBjID0gaXRlci5uZXh0KCkpIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMp
OworICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2Ug
dGhlIHRleHQgYmFja3dhcmRzLCBmcm9tIGVuZCB0byBzdGFydAorICogPHByZT4KKyAqIFxjb2Rl
CisgKiAgdm9pZCB0cmF2ZXJzZUJhY2t3YXJkKENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyKQorICog
IHsKKyAqICAgICAgZm9yKFVDaGFyIGMgPSBpdGVyLmxhc3QoKTsgYyAhPSBDaGFyYWN0ZXJJdGVy
YXRvci5ET05FOyBjID0gaXRlci5wcmV2aW91cygpKSB7CisgKiAgICAgICAgICBwcm9jZXNzQ2hh
cihjKTsKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIFRyYXZl
cnNlIGJvdGggZm9yd2FyZCBhbmQgYmFja3dhcmQgZnJvbSBhIGdpdmVuIHBvc2l0aW9uIGluIHRo
ZSB0ZXh0LiAKKyAqIENhbGxzIHRvIG5vdEJvdW5kYXJ5KCkgaW4gdGhpcyBleGFtcGxlIHJlcHJl
c2VudHMgc29tZSBhZGRpdGlvbmFsIHN0b3BwaW5nIGNyaXRlcmlhLgorICogPHByZT4KKyAqIFxj
b2RlCisgKiB2b2lkIHRyYXZlcnNlT3V0KENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyLCBpbnQzMl90
IHBvcykKKyAqIHsKKyAqICAgICAgVUNoYXIgYzsKKyAqICAgICAgZm9yIChjID0gaXRlci5zZXRJ
bmRleChwb3MpOworICogICAgICBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYgKFVuaWNv
ZGU6OmlzTGV0dGVyKGMpIHx8IFVuaWNvZGU6OmlzRGlnaXQoYykpOworICogICAgICAgICAgYyA9
IGl0ZXIubmV4dCgpKSB7fQorICogICAgICBpbnQzMl90IGVuZCA9IGl0ZXIuZ2V0SW5kZXgoKTsK
KyAqICAgICAgZm9yIChjID0gaXRlci5zZXRJbmRleChwb3MpOworICogICAgICAgICAgYyAhPSBD
aGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIChVbmljb2RlOjppc0xldHRlcihjKSB8fCBVbmljb2Rl
Ojppc0RpZ2l0KGMpKTsKKyAqICAgICAgICAgIGMgPSBpdGVyLnByZXZpb3VzKCkpIHt9CisgKiAg
ICAgIGludDMyX3Qgc3RhcnQgPSBpdGVyLmdldEluZGV4KCkgKyAxOworICogIAorICogICAgICBj
b3V0IDw8ICJzdGFydDogIiA8PCBzdGFydCA8PCAiIGVuZDogIiA8PCBlbmQgPDwgZW5kbDsKKyAq
ICAgICAgZm9yIChjID0gaXRlci5zZXRJbmRleChzdGFydCk7IGl0ZXIuZ2V0SW5kZXgoKSA8IGVu
ZDsgYyA9IGl0ZXIubmV4dCgpICkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAg
ICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIENyZWF0aW5nIGEgU3RyaW5n
Q2hhcmFjdGVySXRlcmF0b3IgYW5kIGNhbGxpbmcgdGhlIHRlc3QgZnVuY3Rpb25zCisgKiA8cHJl
PgorICogXGNvZGUKKyAqICB2b2lkIENoYXJhY3Rlckl0ZXJhdG9yX0V4YW1wbGUoIHZvaWQgKQor
ICogICB7CisgKiAgICAgICBjb3V0IDw8IGVuZGwgPDwgIj09PT09IENoYXJhY3Rlckl0ZXJhdG9y
X0V4YW1wbGU6ID09PT09IiA8PCBlbmRsOworICogICAgICAgVW5pY29kZVN0cmluZyB0ZXh0KCJF
aW4ga2xlaW5lciBTYXR6LiIpOworICogICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaXRl
cmF0b3IodGV4dCk7CisgKiAgICAgICBjb3V0IDw8ICItLS0tLSB0cmF2ZXJzZUZvcndhcmQ6IC0t
LS0tLS0tLS0tIiA8PCBlbmRsOworICogICAgICAgdHJhdmVyc2VGb3J3YXJkKCBpdGVyYXRvciAp
OworICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIHRyYXZlcnNlQmFja3dh
cmQ6IC0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZUJhY2t3YXJkKCBpdGVy
YXRvciApOworICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIHRyYXZlcnNl
T3V0OiAtLS0tLS0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZU91dCggaXRl
cmF0b3IsIDcgKTsKKyAqICAgICAgIGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICItLS0tLSIgPDwg
ZW5kbDsKKyAqICAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICoKKyAqIEBzdGFibGUgSUNV
IDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMg
Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiBPcmln
aW4gZW51bWVyYXRpb24gZm9yIHRoZSBtb3ZlKCkgYW5kIG1vdmUzMigpIGZ1bmN0aW9ucy4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBlbnVtIEVPcmlnaW4geyBrU3RhcnQs
IGtDdXJyZW50LCBrRW5kIH07CisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkNoYXJhY3Rlckl0ZXJhdG9y
KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcG9pbnRlciB0byBhIG5ldyBDaGFyYWN0
ZXJJdGVyYXRvciBvZiB0aGUgc2FtZQorICAgICAqIGNvbmNyZXRlIGNsYXNzIGFzIHRoaXMgb25l
LCBhbmQgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1l
IHRleHQtc3RvcmFnZSBvYmplY3QgYXMgdGhpcyBvbmUuICBUaGUKKyAgICAgKiBjYWxsZXIgaXMg
cmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSBuZXcgY2xvbmUuICAKKyAgICAgKiBAcmV0dXJu
IGEgcG9pbnRlciB0byBhIG5ldyBDaGFyYWN0ZXJJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3IqIGNsb25lKHZvaWQp
IGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVy
IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBh
bmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJl
Z2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBj
b2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3Qodm9pZCkgPSAwOworCisg
ICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNv
ZGUgdW5pdCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2Rl
IHVuaXQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICAgKiB0byB0aGUgc2Vjb25kIGNvZGUg
dW5pdC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICAgKiBmb3Ig
Zm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhl
IGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdFBvc3RJbmMo
dm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0
aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCBy
ZXR1cm5zIHRoYXQgY29kZSB1bml0LAorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4g
YW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyKCkuCisgICAgICogTm90ZSB0aGF0IGFuIGl0ZXJhdGlv
biB3aXRoIG5leHQzMlBvc3RJbmMoKSwgYmVnaW5uaW5nIHdpdGgsCisgICAgICogZS5nLiwgc2V0
VG9TdGFydCgpIG9yIGZpcnN0UG9zdEluYygpLCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICAgKiBA
cmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZp
cnN0MzIodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8g
cmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJh
bmdlLCByZXR1cm5zIHRoYXQgY29kZSBwb2ludCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAg
ICAqIHRvIHRoZSBzZWNvbmQgY29kZSBwb2ludC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBz
ZXRUb1N0YXJ0KCkKKyAgICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0
SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0
aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
VUNoYXIzMiAgICAgICBmaXJzdDMyUG9zdEluYyh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgb3IgY29kZSBw
b2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UuIFRoaXMgY2FuIGJlIHVzZWQgdG8g
YmVnaW4gYSBmb3J3YXJkCisgICAgICogaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMoKSBvciBu
ZXh0MzJQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgc3RhcnQgcG9zaXRpb24gb2YgdGhl
IGl0ZXJhdGlvbiByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlu
bGluZSBpbnQzMl90ICAgIHNldFRvU3RhcnQoKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICAgKiBp
dGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgICAqIFRoaXMg
Y2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKS4KKyAgICAg
KiBAcmV0dXJuIHRoZSBsYXN0IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbGFzdCh2b2lkKSA9IDA7CisgICAgICAg
IAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0
IGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0
aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJh
dGlvbiB3aXRoIHByZXZpb3VzMzIoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNvZGUgcG9p
bnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMy
ICAgICAgIGxhc3QzMih2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVy
YXRvciB0byB0aGUgZW5kIG9mIGl0cyBpdGVyYXRpb24gcmFuZ2UsIGp1c3QgYmVoaW5kCisgICAg
ICogdGhlIGxhc3QgY29kZSB1bml0IG9yIGNvZGUgcG9pbnQuIFRoaXMgY2FuIGJlIHVzZWQgdG8g
YmVnaW4gYSBiYWNrd2FyZAorICAgICAqIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkgb3IgcHJl
dmlvdXMzMigpLgorICAgICAqIEByZXR1cm4gdGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0
aW9uIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGlu
dDMyX3QgICAgc2V0VG9FbmQoKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9y
IHRvIHJlZmVyIHRvIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgICAqIGluIHRoZSB0
ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgICAqIHJl
dHVybnMgdGhhdCBjb2RlIHVuaXQuICAKKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlICJwb3Np
dGlvbiItdGggY29kZSB1bml0IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHJl
dHVybiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIHNldEluZGV4KGludDMyX3QgcG9z
aXRpb24pID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVy
IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiB0aGF0IGNvbnRhaW5z
IHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgICAqIGluIHRoZSB0ZXh0LXN0b3JhZ2Ug
b2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgICAqIHJldHVybnMgdGhhdCBj
b2RlIHBvaW50LgorICAgICAqIFRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIGFkanVzdGVkIHRvIHRo
ZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiAoaXRzIGZpcnN0IGNvZGUgdW5p
dCkuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdCBp
biB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlICJwb3NpdGlvbiIt
dGggY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIFVDaGFyMzIgICAgICAgc2V0SW5kZXgzMihpbnQzMl90IHBvc2l0aW9uKSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRs
eSByZWZlcnMgdG8uIAorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSB1bml0LiAKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAg
Y3VycmVudCh2b2lkKSBjb25zdCA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVy
bnMgdGhlIGNvZGUgcG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uICAKKyAg
ICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGN1cnJlbnQzMih2b2lkKSBj
b25zdCA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0
IGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRl
eCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBu
byBtb3JlIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICogQHJldHVy
biB0aGUgbmV4dCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHQodm9pZCkgPSAwOworICAgICAgICAKKyAgICAv
KioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNv
ZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJl
dHVybiwgcmV0dXJucyBET05FLgorICAgICAqIE5vdGUgdGhhdCBpdGVyYXRpb24gd2l0aCAicHJl
LWluY3JlbWVudCIgc2VtYW50aWNzIGlzIGxlc3MKKyAgICAgKiBlZmZpY2llbnQgdGhhbiBpdGVy
YXRpb24gd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNlbWFudGljcworICAgICAqIHRoYXQgaXMgcHJv
dmlkZWQgYnkgbmV4dDMyUG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSBw
b2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFy
MzIgICAgICAgbmV4dDMyKHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2
YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisg
ICAgICogKHRvd2FyZCBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4g
IElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVy
bnMgRE9ORS4gIAorICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgdW5pdC4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgcHJl
dmlvdXModm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIHByZXZp
b3VzIGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgc3Rh
cnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlCisg
ICAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4gCisgICAg
ICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSBwb2ludC4gCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHByZXZpb3VzMzIodm9pZCkg
PSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9y
ZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBv
c2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogVGhpcyBpcyB1c2VkIHdpdGgg
cHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkgaW4gYmFja3dhcmQKKyAgICAgKiBpdGVyYXRpb24u
CisgICAgICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9y
IGNvZGUgcG9pbnRzCisgICAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBp
dGVyYXRpb24gcmFuZ2UsIHJldHVybiBUUlVFIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNQcmV2aW91cygpID0g
MDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVu
ZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0ZXIgcmV0
dXJuZWQgYnkgZmlyc3QoKS4gIFNpbmNlIGl0J3MKKyAgICAgKiBwb3NzaWJsZSB0byBjcmVhdGUg
YW4gaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBhY3Jvc3Mgb25seQorICAgICAqIHBhcnQgb2YgYSB0
ZXh0LXN0b3JhZ2Ugb2JqZWN0LCB0aGlzIG51bWJlciBpc24ndAorICAgICAqIG5lY2Vzc2FyaWx5
IDAuICAKKyAgICAgKiBAcmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWlu
ZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBi
eSBmaXJzdCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBp
bnQzMl90ICAgICAgIHN0YXJ0SW5kZXgodm9pZCkgY29uc3Q7CisgICAgICAgIAorICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1z
dG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBwb3NpdGlvbiBpbW1lZGlhdGVseSBCRVlPTkQg
dGhlIGNoYXJhY3RlcgorICAgICAqIHJldHVybmVkIGJ5IGxhc3QoKS4gIAorICAgICAqIEByZXR1
cm4gdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAg
ICogb2JqZWN0IG9mIHRoZSBwb3NpdGlvbiBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGNoYXJhY3Rl
cgorICAgICAqIHJldHVybmVkIGJ5IGxhc3QoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBlbmRJbmRleCh2b2lkKSBjb25zdDsKKyAg
ICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUg
dW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciB0
aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0bworICAgICAqIChpLmUuLCB0aGUgY2hhcmFj
dGVyIHJldHVybmVkIGJ5IGN1cnJlbnQoKSkuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXJp
YyBpbmRleCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCBvZiAKKyAgICAgKiB0aGUgY2hhcmFj
dGVyIHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAgZ2V0SW5kZXgodm9pZCkgY29u
c3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGVudGlyZSB0
ZXh0IGluIHRoZSB1bmRlcmx5aW5nCisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdC4KKyAgICAg
KiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGVudGlyZSB0ZXh0IGluIHRoZSB0ZXh0LXN0b3Jh
Z2Ugb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGlu
dDMyX3QgICAgICAgICAgIGdldExlbmd0aCgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogTW92
ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0
aGUKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBv
c2l0aW9uIGl0c2VsZi4KKyAgICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJl
cnMgb2YgY29kZSB1bml0cyBmb3J3YXJkCisgICAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWlu
ZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgICAqIEBwYXJhbSBkZWx0YSB0aGUg
cG9zaXRpb24gcmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndh
cmQ7CisgICAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICAgKiBAcGFy
YW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAg
ICAgKiBAcmV0dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlKGludDMyX3QgZGVsdGEsIEVPcmln
aW4gb3JpZ2luKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3Np
dGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgICAqIGl0ZXJhdGlv
biByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAg
ICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHBvaW50cyBm
b3J3YXJkCisgICAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5l
Z2F0aXZlIGRlbHRhLgorICAgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVsYXRpdmUg
dG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAgICogYSBuZWdh
dGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBl
bnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICAgKiBAcmV0dXJuIHRoZSBu
ZXcgcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IGludDMyX3QgICAgICBtb3ZlMzIoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pID0gMDsK
KworICAgIC8qKgorICAgICAqIENvcGllcyB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24gaW50byB0
aGUgVW5pY29kZVN0cmluZworICAgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgCisgICAg
ICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5kZXIgaXRlcmF0
aW9uLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lk
ICAgICAgICAgICAgZ2V0VGV4dChVbmljb2RlU3RyaW5nJiAgcmVzdWx0KSA9IDA7CisKK3Byb3Rl
Y3RlZDoKKyAgICAvKioKKyAgICAgKiBFbXB0eSBjb25zdHJ1Y3Rvci4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgICAgLyoqCisg
ICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoIGZpZWxkIGluIHRoaXMg
YmFzZSBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0
ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0aCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rv
ciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGggYW5kIHBvc2l0aW9uIGZpZWxkcyBpbiB0aGlzIGJh
c2UgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVy
SXRlcmF0b3IoaW50MzJfdCBsZW5ndGgsIGludDMyX3QgcG9zaXRpb24pOworCisgICAgLyoqCisg
ICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoLCBzdGFydCwgZW5kLCBh
bmQgcG9zaXRpb24gZmllbGRzIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0aCwgaW50
MzJfdCB0ZXh0QmVnaW4sIGludDMyX3QgdGV4dEVuZCwgaW50MzJfdCBwb3NpdGlvbik7CisgIAor
ICAgIC8qKgorICAgICAqIENvcHkgY29uc3RydWN0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0g
dGhhdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgQ2hhcmFjdGVySXRl
cmF0b3IgJnRoYXQpOworCisgICAgLyoqCisgICAgICogQXNzaWdubWVudCBvcGVyYXRvci4gIFNl
dHMgdGhpcyBDaGFyYWN0ZXJJdGVyYXRvciB0byBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLAorICAg
ICAqIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBDaGFyYWN0
ZXJJdGVyYXRvciBwYXNzZWQgaW4uCisgICAgICogQHJldHVybiB0aGUgbmV3bHkgc2V0IENoYXJh
Y3Rlckl0ZXJhdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJh
Y3Rlckl0ZXJhdG9yICZvcGVyYXRvcj0oY29uc3QgQ2hhcmFjdGVySXRlcmF0b3IgJnRoYXQpOwor
CisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyB0ZXh0IGxlbmd0aCBmaWVsZC4KKyAgICAgKiBO
ZWNlc3NhcnkgdGhpcyBmb3IgY29ycmVjdCBnZXRUZXh0KCkgYW5kIGhhc2hDb2RlKCkuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCB0ZXh0TGVuZ3RoOworCisg
ICAgLyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIGN1cnJlbnQgcG9zaXRpb24u
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCAgcG9zOworCisg
ICAgLyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIHN0YXJ0IG9mIHRoZSBpdGVy
YXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJf
dCAgYmVnaW47CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0aGUgZW5k
IG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgaW50MzJfdCAgZW5kOworfTsKKworaW5saW5lIFVCb29sCitGb3J3YXJkQ2hhcmFjdGVy
SXRlcmF0b3I6Om9wZXJhdG9yIT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0
KSBjb25zdCB7CisgICAgcmV0dXJuICFvcGVyYXRvcj09KHRoYXQpOworfQorCitpbmxpbmUgaW50
MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvU3RhcnQoKSB7CisgICAgcmV0dXJuIG1vdmUo
MCwga1N0YXJ0KTsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpzZXRU
b0VuZCgpIHsKKyAgICByZXR1cm4gbW92ZSgwLCBrRW5kKTsKK30KKworaW5saW5lIGludDMyX3QK
K0NoYXJhY3Rlckl0ZXJhdG9yOjpzdGFydEluZGV4KHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4g
YmVnaW47Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6ZW5kSW5kZXgo
dm9pZCkgY29uc3QgeworICAgIHJldHVybiBlbmQ7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFy
YWN0ZXJJdGVyYXRvcjo6Z2V0SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBwb3M7Cit9
CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6Z2V0TGVuZ3RoKHZvaWQpIGNv
bnN0IHsKKyAgICByZXR1cm4gdGV4dExlbmd0aDsKK30KKworVV9OQU1FU1BBQ0VfRU5ECisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaCBiL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvbG9jaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWQ1Y2I1NDZlYmUzOTdlZjQzNmRm
MzY1MDNlYjQzNzFjMzg2Njk2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5p
Y29kZS9sb2NpZC5oCkBAIC0wLDAgKzEsODE0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMTUsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxlIGxvY2lkLmgKKyoKKyogQ3Jl
YXRlZCBieTogSGVsZW5hIFNoaWgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAg
RGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwMi8xMS85NyAgICBhbGl1
ICAgICAgICBDaGFuZ2VkIGdMb2NQYXRoIHRvIGZnTG9jUGF0aCBhbmQgYWRkZWQgbWV0aG9kcyB0
bworKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldCBhbmQgc2V0IGl0LgorKiAgIDA0LzAy
Lzk3ICAgIGFsaXUgICAgICAgIE1hZGUgb3BlcmF0b3IhPSBpbmxpbmU7IGZpeGVkIHJldHVybiB2
YWx1ZSBvZiBnZXROYW1lKCkuCisqICAgMDQvMTUvOTcgICAgYWxpdSAgICAgICAgQ2xlYW51cCBm
b3IgQUlYL1dpbjMyLgorKiAgIDA0LzI0Lzk3ICAgIGFsaXUgICAgICAgIE51bWVyb3VzIGNoYW5n
ZXMgcGVyIGNvZGUgcmV2aWV3LgorKiAgIDA4LzE4Lzk4ICAgIHN0ZXBoZW4gICAgIEFkZGVkIHRv
a2VuaXplU3RyaW5nKCksY2hhbmdlZCBnZXREaXNwbGF5TmFtZSgpCisqICAgMDkvMDgvOTggICAg
c3RlcGhlbiAgICAgTW92ZWQgZGVmaW5pdGlvbiBvZiBrRW1wdHlTdHJpbmcgZm9yIE1hYyBQb3J0
CisqICAgMTEvMDkvOTkgICAgd2VpdiAgICAgICAgQWRkZWQgY29uc3QgY2hhciAqIGdldE5hbWUo
KSBjb25zdDsKKyogICAwNC8xMi8wMCAgICBzcmwgICAgICAgICByZW1vdmluZyB1bmljb2Rlc3Ry
aW5nIGFwaSdzIGFuZCBjYWNoZWQgaGFzaCBjb2RlCisqICAgMDgvMTAvMDEgICAgZ3Job3RlbiAg
ICAgQ2hhbmdlIHRoZSBzdGF0aWMgTG9jYWxlcyB0byBhY2Nlc3NvciBmdW5jdGlvbnMKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBMT0NJRF9ICisjZGVmaW5lIExPQ0lEX0gK
KworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91b2JqZWN0
LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3B1dGls
LmgiCisjaW5jbHVkZSAidW5pY29kZS91bG9jLmgiCisjaW5jbHVkZSAidW5pY29kZS9zdHJlbnVt
LmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBMb2NhbGUgSUQgb2JqZWN0
LgorICovCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8vIEZvcndhcmQgRGVjbGFyYXRpb25zCit2
b2lkIFVfQ0FMTENPTlYgbG9jYWxlX2F2YWlsYWJsZV9pbml0KCk7IC8qKjwgQGludGVybmFsICov
CisKKy8qKgorICogQSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCByZXByZXNlbnRzIGEgc3Bl
Y2lmaWMgZ2VvZ3JhcGhpY2FsLCBwb2xpdGljYWwsCisgKiBvciBjdWx0dXJhbCByZWdpb24uIEFu
IG9wZXJhdGlvbiB0aGF0IHJlcXVpcmVzIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiB0byBwZXJmb3Jt
CisgKiBpdHMgdGFzayBpcyBjYWxsZWQgPGVtPmxvY2FsZS1zZW5zaXRpdmU8L2VtPiBhbmQgdXNl
cyB0aGUgPGNvZGU+TG9jYWxlPC9jb2RlPgorICogdG8gdGFpbG9yIGluZm9ybWF0aW9uIGZvciB0
aGUgdXNlci4gRm9yIGV4YW1wbGUsIGRpc3BsYXlpbmcgYSBudW1iZXIKKyAqIGlzIGEgbG9jYWxl
LXNlbnNpdGl2ZSBvcGVyYXRpb24tLXRoZSBudW1iZXIgc2hvdWxkIGJlIGZvcm1hdHRlZAorICog
YWNjb3JkaW5nIHRvIHRoZSBjdXN0b21zL2NvbnZlbnRpb25zIG9mIHRoZSB1c2VyJ3MgbmF0aXZl
IGNvdW50cnksCisgKiByZWdpb24sIG9yIGN1bHR1cmUuCisgKgorICogVGhlIExvY2FsZSBjbGFz
cyBpcyBub3Qgc3VpdGFibGUgZm9yIHN1YmNsYXNzaW5nLgorICoKKyAqIDxQPgorICogWW91IGNh
biBjcmVhdGUgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCB1c2luZyB0aGUgY29uc3RydWN0
b3IgaW4KKyAqIHRoaXMgY2xhc3M6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9u
bHkKKyAqIDxwcmU+CisgKiAgICAgICBMb2NhbGUoIGNvbnN0ICAgY2hhciogIGxhbmd1YWdlLAor
ICogICAgICAgICAgICAgICBjb25zdCAgIGNoYXIqICBjb3VudHJ5LAorICogICAgICAgICAgICAg
ICBjb25zdCAgIGNoYXIqICB2YXJpYW50KTsKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9j
a3F1b3RlPlxlbmRodG1sb25seQorICogVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1
Y3RvcnMgaXMgYSB2YWxpZCA8U1RST05HPklTTworICogTGFuZ3VhZ2UgQ29kZS48L1NUUk9ORz4g
VGhlc2UgY29kZXMgYXJlIHRoZSBsb3dlci1jYXNlIHR3by1sZXR0ZXIKKyAqIGNvZGVzIGFzIGRl
ZmluZWQgYnkgSVNPLTYzOS4KKyAqIFlvdSBjYW4gZmluZCBhIGZ1bGwgbGlzdCBvZiB0aGVzZSBj
b2RlcyBhdDoKKyAqIDxCUj48YSBocmVmID0iaHR0cDovL3d3dy5sb2MuZ292L3N0YW5kYXJkcy9p
c282MzktMi8iPgorICogaHR0cDovL3d3dy5sb2MuZ292L3N0YW5kYXJkcy9pc282MzktMi88L2E+
CisgKgorICogPFA+CisgKiBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1Y3RvcnMg
aXMgYSB2YWxpZCA8U1RST05HPklTTyBDb3VudHJ5CisgKiBDb2RlLjwvU1RST05HPiBUaGVzZSBj
b2RlcyBhcmUgdGhlIHVwcGVyLWNhc2UgdHdvLWxldHRlciBjb2RlcworICogYXMgZGVmaW5lZCBi
eSBJU08tMzE2Ni4KKyAqIFlvdSBjYW4gZmluZCBhIGZ1bGwgbGlzdCBvZiB0aGVzZSBjb2RlcyBh
dCBhIG51bWJlciBvZiBzaXRlcywgc3VjaCBhczoKKyAqIDxCUj48YSBocmVmPSJodHRwOi8vd3d3
Lmlzby5vcmcvaXNvL2VuL3Byb2RzLXNlcnZpY2VzL2lzbzMxNjZtYS9pbmRleC5odG1sIj4KKyAq
IGh0dHA6Ly93d3cuaXNvLm9yZy9pc28vZW4vcHJvZHMtc2VydmljZXMvaXNvMzE2Nm1hL2luZGV4
Lmh0bWw8L2E+CisgKgorICogPFA+CisgKiBUaGUgdGhpcmQgY29uc3RydWN0b3IgcmVxdWlyZXMg
YSB0aGlyZCBhcmd1bWVudC0tdGhlIDxTVFJPTkc+VmFyaWFudC48L1NUUk9ORz4KKyAqIFRoZSBW
YXJpYW50IGNvZGVzIGFyZSB2ZW5kb3IgYW5kIGJyb3dzZXItc3BlY2lmaWMuCisgKiBGb3IgZXhh
bXBsZSwgdXNlIFJFVklTRUQgZm9yIGEgbGFuZ2F1Z2UncyByZXZpc2VkIHNjcmlwdCBvcnRob2dy
YXBoeSwgYW5kIFBPU0lYIGZvciBQT1NJWC4KKyAqIFdoZXJlIHRoZXJlIGFyZSB0d28gdmFyaWFu
dHMsIHNlcGFyYXRlIHRoZW0gd2l0aCBhbiB1bmRlcnNjb3JlLCBhbmQKKyAqIHB1dCB0aGUgbW9z
dCBpbXBvcnRhbnQgb25lIGZpcnN0LiBGb3IKKyAqIGV4YW1wbGUsIGEgVHJhZGl0aW9uYWwgU3Bh
bmlzaCBjb2xsYXRpb24gbWlnaHQgYmUgcmVmZXJlbmNlZCwgd2l0aAorICogIkVTIiwgIkVTIiwg
IlRyYWRpdGlvbmFsX1BPU0lYIi4KKyAqCisgKiA8UD4KKyAqIEJlY2F1c2UgYSA8Y29kZT5Mb2Nh
bGU8L2NvZGU+IG9iamVjdCBpcyBqdXN0IGFuIGlkZW50aWZpZXIgZm9yIGEgcmVnaW9uLAorICog
bm8gdmFsaWRpdHkgY2hlY2sgaXMgcGVyZm9ybWVkIHdoZW4geW91IGNvbnN0cnVjdCBhIDxjb2Rl
PkxvY2FsZTwvY29kZT4uCisgKiBJZiB5b3Ugd2FudCB0byBzZWUgd2hldGhlciBwYXJ0aWN1bGFy
IHJlc291cmNlcyBhcmUgYXZhaWxhYmxlIGZvciB0aGUKKyAqIDxjb2RlPkxvY2FsZTwvY29kZT4g
eW91IGNvbnN0cnVjdCwgeW91IG11c3QgcXVlcnkgdGhvc2UgcmVzb3VyY2VzLiBGb3IKKyAqIGV4
YW1wbGUsIGFzayB0aGUgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBmb3IgdGhlIGxvY2FsZXMg
aXQgc3VwcG9ydHMKKyAqIHVzaW5nIGl0cyA8Y29kZT5nZXRBdmFpbGFibGVMb2NhbGVzPC9jb2Rl
PiBtZXRob2QuCisgKiA8QlI+PFNUUk9ORz5Ob3RlOjwvU1RST05HPiBXaGVuIHlvdSBhc2sgZm9y
IGEgcmVzb3VyY2UgZm9yIGEgcGFydGljdWxhcgorICogbG9jYWxlLCB5b3UgZ2V0IGJhY2sgdGhl
IGJlc3QgYXZhaWxhYmxlIG1hdGNoLCBub3QgbmVjZXNzYXJpbHkKKyAqIHByZWNpc2VseSB3aGF0
IHlvdSBhc2tlZCBmb3IuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBsb29rIGF0CisgKiA8Y29kZT5S
ZXNvdXJjZUJ1bmRsZTwvY29kZT4uCisgKgorICogPFA+CisgKiBUaGUgPGNvZGU+TG9jYWxlPC9j
b2RlPiBjbGFzcyBwcm92aWRlcyBhIG51bWJlciBvZiBjb252ZW5pZW50IGNvbnN0YW50cworICog
dGhhdCB5b3UgY2FuIHVzZSB0byBjcmVhdGUgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3RzIGZv
ciBjb21tb25seSB1c2VkCisgKiBsb2NhbGVzLiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBy
ZWZlcnMgdG8gYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdAorICogZm9yIHRoZSBVbml0ZWQg
U3RhdGVzOgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgor
ICogICAgICAgTG9jYWxlOjpnZXRVUygpCisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2tx
dW90ZT5cZW5kaHRtbG9ubHkKKyAqCisgKiA8UD4KKyAqIE9uY2UgeW91J3ZlIGNyZWF0ZWQgYSA8
Y29kZT5Mb2NhbGU8L2NvZGU+IHlvdSBjYW4gcXVlcnkgaXQgZm9yIGluZm9ybWF0aW9uIGFib3V0
CisgKiBpdHNlbGYuIFVzZSA8Y29kZT5nZXRDb3VudHJ5PC9jb2RlPiB0byBnZXQgdGhlIElTTyBD
b3VudHJ5IENvZGUgYW5kCisgKiA8Y29kZT5nZXRMYW5ndWFnZTwvY29kZT4gdG8gZ2V0IHRoZSBJ
U08gTGFuZ3VhZ2UgQ29kZS4gWW91IGNhbgorICogdXNlIDxjb2RlPmdldERpc3BsYXlDb3VudHJ5
PC9jb2RlPiB0byBnZXQgdGhlCisgKiBuYW1lIG9mIHRoZSBjb3VudHJ5IHN1aXRhYmxlIGZvciBk
aXNwbGF5aW5nIHRvIHRoZSB1c2VyLiBTaW1pbGFybHksCisgKiB5b3UgY2FuIHVzZSA8Y29kZT5n
ZXREaXNwbGF5TGFuZ3VhZ2U8L2NvZGU+IHRvIGdldCB0aGUgbmFtZSBvZgorICogdGhlIGxhbmd1
YWdlIHN1aXRhYmxlIGZvciBkaXNwbGF5aW5nIHRvIHRoZSB1c2VyLiBJbnRlcmVzdGluZ2x5LAor
ICogdGhlIDxjb2RlPmdldERpc3BsYXlYWFg8L2NvZGU+IG1ldGhvZHMgYXJlIHRoZW1zZWx2ZXMg
bG9jYWxlLXNlbnNpdGl2ZQorICogYW5kIGhhdmUgdHdvIHZlcnNpb25zOiBvbmUgdGhhdCB1c2Vz
IHRoZSBkZWZhdWx0IGxvY2FsZSBhbmQgb25lCisgKiB0aGF0IHRha2VzIGEgbG9jYWxlIGFzIGFu
IGFyZ3VtZW50IGFuZCBkaXNwbGF5cyB0aGUgbmFtZSBvciBjb3VudHJ5IGluCisgKiBhIGxhbmd1
YWdlIGFwcHJvcHJpYXRlIHRvIHRoYXQgbG9jYWxlLgorICoKKyAqIDxQPgorICogSUNVIHByb3Zp
ZGVzIGEgbnVtYmVyIG9mIGNsYXNzZXMgdGhhdCBwZXJmb3JtIGxvY2FsZS1zZW5zaXRpdmUKKyAq
IG9wZXJhdGlvbnMuIEZvciBleGFtcGxlLCB0aGUgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBj
bGFzcyBmb3JtYXRzCisgKiBudW1iZXJzLCBjdXJyZW5jeSwgb3IgcGVyY2VudGFnZXMgaW4gYSBs
b2NhbGUtc2Vuc2l0aXZlIG1hbm5lci4gQ2xhc3NlcworICogc3VjaCBhcyA8Y29kZT5OdW1iZXJG
b3JtYXQ8L2NvZGU+IGhhdmUgYSBudW1iZXIgb2YgY29udmVuaWVuY2UgbWV0aG9kcworICogZm9y
IGNyZWF0aW5nIGEgZGVmYXVsdCBvYmplY3Qgb2YgdGhhdCB0eXBlLiBGb3IgZXhhbXBsZSwgdGhl
CisgKiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGNsYXNzIHByb3ZpZGVzIHRoZXNlIHRocmVl
IGNvbnZlbmllbmNlIG1ldGhvZHMKKyAqIGZvciBjcmVhdGluZyBhIGRlZmF1bHQgPGNvZGU+TnVt
YmVyRm9ybWF0PC9jb2RlPiBvYmplY3Q6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRt
bG9ubHkKKyAqIDxwcmU+CisgKiAgICAgVUVycm9yQ29kZSBzdWNjZXNzID0gVV9aRVJPX0VSUk9S
OworICogICAgIExvY2FsZSBteUxvY2FsZTsKKyAqICAgICBOdW1iZXJGb3JtYXQgKm5mOworICoK
KyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlSW5zdGFuY2UoIHN1Y2Nlc3MgKTsgICAg
ICAgICAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVDdXJyZW5j
eUluc3RhbmNlKCBzdWNjZXNzICk7ICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3Jt
YXQ6OmNyZWF0ZVBlcmNlbnRJbnN0YW5jZSggc3VjY2VzcyApOyAgIGRlbGV0ZSBuZjsKKyAqIDwv
cHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogRWFjaCBvZiB0
aGVzZSBtZXRob2RzIGhhcyB0d28gdmFyaWFudHM7IG9uZSB3aXRoIGFuIGV4cGxpY2l0IGxvY2Fs
ZQorICogYW5kIG9uZSB3aXRob3V0OyB0aGUgbGF0dGVyIHVzaW5nIHRoZSBkZWZhdWx0IGxvY2Fs
ZS4KKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAg
ICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlSW5zdGFuY2UoIG15TG9jYWxlLCBzdWNjZXNzICk7
ICAgICAgICAgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlQ3Vy
cmVuY3lJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgIGRlbGV0ZSBuZjsKKyAqICAgICBu
ZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlUGVyY2VudEluc3RhbmNlKCBteUxvY2FsZSwgc3VjY2Vz
cyApOyAgIGRlbGV0ZSBuZjsKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxl
bmRodG1sb25seQorICogQSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGlzIHRoZSBtZWNoYW5pc20gZm9y
IGlkZW50aWZ5aW5nIHRoZSBraW5kIG9mIG9iamVjdAorICogKDxjb2RlPk51bWJlckZvcm1hdDwv
Y29kZT4pIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gZ2V0LiBUaGUgbG9jYWxlIGlzCisgKiA8U1RS
T05HPmp1c3Q8L1NUUk9ORz4gYSBtZWNoYW5pc20gZm9yIGlkZW50aWZ5aW5nIG9iamVjdHMsCisg
KiA8U1RST05HPm5vdDwvU1RST05HPiBhIGNvbnRhaW5lciBmb3IgdGhlIG9iamVjdHMgdGhlbXNl
bHZlcy4KKyAqCisgKiA8UD4KKyAqIEVhY2ggY2xhc3MgdGhhdCBwZXJmb3JtcyBsb2NhbGUtc2Vu
c2l0aXZlIG9wZXJhdGlvbnMgYWxsb3dzIHlvdQorICogdG8gZ2V0IGFsbCB0aGUgYXZhaWxhYmxl
IG9iamVjdHMgb2YgdGhhdCB0eXBlLiBZb3UgY2FuIHNpZnQKKyAqIHRocm91Z2ggdGhlc2Ugb2Jq
ZWN0cyBieSBsYW5ndWFnZSwgY291bnRyeSwgb3IgdmFyaWFudCwKKyAqIGFuZCB1c2UgdGhlIGRp
c3BsYXkgbmFtZXMgdG8gcHJlc2VudCBhIG1lbnUgdG8gdGhlIHVzZXIuCisgKiBGb3IgZXhhbXBs
ZSwgeW91IGNhbiBjcmVhdGUgYSBtZW51IG9mIGFsbCB0aGUgY29sbGF0aW9uIG9iamVjdHMKKyAq
IHN1aXRhYmxlIGZvciBhIGdpdmVuIGxhbmd1YWdlLiBTdWNoIGNsYXNzZXMgaW1wbGVtZW50IHRo
ZXNlCisgKiB0aHJlZSBjbGFzcyBtZXRob2RzOgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVu
ZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgICAgc3RhdGljIExvY2FsZSogZ2V0QXZhaWxhYmxl
TG9jYWxlcyhpbnQzMl90JiBudW1Mb2NhbGVzKQorICogICAgICAgc3RhdGljIFVuaWNvZGVTdHJp
bmcmIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgIG9iamVjdExvY2FsZSwKKyAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMb2NhbGUmICBkaXNw
bGF5TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVuaWNvZGVTdHJpbmcmIGRpc3BsYXlOYW1lKQorICogICAgICAgc3RhdGljIFVuaWNvZGVTdHJp
bmcmIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgIG9iamVjdExvY2FsZSwKKyAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNw
bGF5TmFtZSkKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25s
eQorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICogQHNlZSBSZXNvdXJjZUJ1bmRsZQorICovCitj
bGFzcyBVX0NPTU1PTl9BUEkgTG9jYWxlIDogcHVibGljIFVPYmplY3QgeworcHVibGljOgorICAg
IC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoZSBSb290IGxvY2FsZS4gQHN0YWJsZSBJQ1UgNC40
ICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFJvb3Qodm9pZCk7Cisg
ICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4w
ICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEVuZ2xpc2godm9pZCk7
CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1Ug
Mi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEZyZW5jaCh2b2lk
KTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElD
VSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0R2VybWFuKHZv
aWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUg
SUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRJdGFsaWFu
KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFi
bGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRKYXBh
bmVzZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0
S29yZWFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2Uu
IEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBn
ZXRDaGluZXNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3Vh
Z2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JU
MiBnZXRTaW1wbGlmaWVkQ2hpbmVzZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZv
ciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9j
YWxlICZVX0VYUE9SVDIgZ2V0VHJhZGl0aW9uYWxDaGluZXNlKHZvaWQpOworCisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEZyYW5jZSh2b2lkKTsKKyAg
ICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElD
VSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0R2VybWFueSh2
b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0
SXRhbHkodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3Jl
Z2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBP
UlQyIGdldEphcGFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291
bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUg
JlVfRVhQT1JUMiBnZXRLb3JlYSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0
aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3Qg
TG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2hpbmEodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFu
dCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFBSQyh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNv
bnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBz
dGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VGFpd2FuKHZvaWQpOworICAgIC8qKiBV
c2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAq
LworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRVSyh2b2lkKTsKKyAgICAv
KiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAy
LjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VVModm9pZCk7Cisg
ICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJ
Q1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENhbmFkYSh2
b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0
Q2FuYWRhRnJlbmNoKHZvaWQpOworCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBkZWZh
dWx0IGxvY2FsZSBvYmplY3QsIGEgTG9jYWxlIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgSUQuCisg
ICAgICoKKyAgICAgKiBAc2VlIGdldERlZmF1bHQKKyAgICAgKiBAc2VlIHVsb2NfZ2V0RGVmYXVs
dAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZSgpOworCisgICAg
LyoqCisgICAgICogQ29uc3RydWN0IGEgbG9jYWxlIGZyb20gbGFuZ3VhZ2UsIGNvdW50cnksIHZh
cmlhbnQuCisgICAgICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVuIHRoZSBjb25zdHJ1Y3RlZCBv
YmplY3Qgd2lsbCBiZSAiYm9ndXMiCisgICAgICogKGlzQm9ndXMoKSB3aWxsIHJldHVybiBUUlVF
KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYW5ndWFnZSBMb3dlcmNhc2UgdHdvLWxldHRlciBv
ciB0aHJlZS1sZXR0ZXIgSVNPLTYzOSBjb2RlLgorICAgICAqICBUaGlzIHBhcmFtZXRlciBjYW4g
aW5zdGVhZCBiZSBhbiBJQ1Ugc3R5bGUgQyBsb2NhbGUgKGUuZy4gImVuX1VTIiksCisgICAgICog
IGJ1dCB0aGUgb3RoZXIgcGFyYW1ldGVycyBtdXN0IG5vdCBiZSB1c2VkLgorICAgICAqICBUaGlz
IHBhcmFtZXRlciBjYW4gYmUgTlVMTDsgaWYgc28sCisgICAgICogIHRoZSBsb2NhbGUgaXMgaW5p
dGlhbGl6ZWQgdG8gbWF0Y2ggdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogIChU
aGlzIGlzIHRoZSBzYW1lIGFzIHVzaW5nIHRoZSBkZWZhdWx0IGNvbnN0cnVjdG9yLikKKyAgICAg
KiAgUGxlYXNlIG5vdGU6IFRoZSBKYXZhIExvY2FsZSBjbGFzcyBkb2VzIE5PVCBhY2NlcHQgdGhl
IGZvcm0KKyAgICAgKiAgJ25ldyBMb2NhbGUoImVuX1VTIiknIGJ1dCBvbmx5ICduZXcgTG9jYWxl
KCJlbiIsIlVTIiknCisgICAgICoKKyAgICAgKiBAcGFyYW0gY291bnRyeSAgVXBwZXJjYXNlIHR3
by1sZXR0ZXIgSVNPLTMxNjYgY29kZS4gKG9wdGlvbmFsKQorICAgICAqIEBwYXJhbSB2YXJpYW50
ICBVcHBlcmNhc2UgdmVuZG9yIGFuZCBicm93c2VyIHNwZWNpZmljIGNvZGUuIFNlZSBjbGFzcwor
ICAgICAqICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbi4gKG9wdGlvbmFsKQorICAgICAqIEBw
YXJhbSBrZXl3b3Jkc0FuZFZhbHVlcyBBIHN0cmluZyBjb25zaXN0aW5nIG9mIGtleXdvcmQvdmFs
dWVzIHBhaXJzLCBzdWNoIGFzCisgICAgICogICAgICAgICAgICAgICAgICJjb2xsYXRpb249cGhv
bmVib29rO2N1cnJlbmN5PWV1cm8iCisgICAgICoKKyAgICAgKiBAc2VlIGdldERlZmF1bHQKKyAg
ICAgKiBAc2VlIHVsb2NfZ2V0RGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIExvY2FsZSggY29uc3QgICBjaGFyICogbGFuZ3VhZ2UsCisgICAgICAgICAgICBjb25z
dCAgIGNoYXIgKiBjb3VudHJ5ICA9IDAsCisgICAgICAgICAgICBjb25zdCAgIGNoYXIgKiB2YXJp
YW50ICA9IDAsCisgICAgICAgICAgICBjb25zdCAgIGNoYXIgKiBrZXl3b3Jkc0FuZFZhbHVlcyA9
IDApOworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgYSBMb2NhbGUgb2JqZWN0IGZyb20g
YW5vdGhlciBMb2NhbGUgb2JqZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBM
b2NhbGUgb2JqZWN0IGJlaW5nIGNvcGllZCBpbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBMb2NhbGUoY29uc3QgICAgTG9jYWxlJiBvdGhlcik7CisKKworICAgIC8qKgor
ICAgICAqIERlc3RydWN0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIH5Mb2NhbGUoKSA7CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlcyB0aGUgZW50aXJl
IGNvbnRlbnRzIG9mICp0aGlzIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgKgorICAg
ICAqIEBwYXJhbSBvdGhlciBUaGUgTG9jYWxlIG9iamVjdCBiZWluZyBjb3BpZWQgaW4uCisgICAg
ICogQHJldHVybiAgICAgICp0aGlzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgTG9jYWxlJiBvcGVyYXRvcj0oY29uc3QgTG9jYWxlJiBvdGhlcik7CisKKyAgICAvKioKKyAg
ICAgKiBDaGVja3MgaWYgdHdvIGxvY2FsZSBrZXlzIGFyZSB0aGUgc2FtZS4KKyAgICAgKgorICAg
ICAqIEBwYXJhbSBvdGhlciBUaGUgbG9jYWxlIGtleSBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0
aCB0aGlzLgorICAgICAqIEByZXR1cm4gICAgICBUcnVlIGlmIHRoZSB0d28gbG9jYWxlIGtleXMg
YXJlIHRoZSBzYW1lLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgVUJvb2wgICBvcGVyYXRvcj09KGNvbnN0ICAgIExvY2FsZSYgICAgIG90aGVy
KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0d28gbG9jYWxlIGtleXMgYXJl
IG5vdCB0aGUgc2FtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgbG9jYWxlIGtl
eSBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1cm4gICAgICBU
cnVlIGlmIHRoZSB0d28gbG9jYWxlIGtleXMgYXJlIG5vdCB0aGUgc2FtZSwgZmFsc2UKKyAgICAg
KiAgICAgICAgICAgICAgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIFVCb29sICAgb3BlcmF0b3IhPShjb25zdCAgICBMb2NhbGUmICAgICBvdGhlcikgY29u
c3Q7CisKKyAgICAvKioKKyAgICAgKiBDbG9uZSB0aGlzIG9iamVjdC4KKyAgICAgKiBDbG9uZXMg
Y2FuIGJlIHVzZWQgY29uY3VycmVudGx5IGluIG11bHRpcGxlIHRocmVhZHMuCisgICAgICogSWYg
YW4gZXJyb3Igb2NjdXJzLCB0aGVuIE5VTEwgaXMgcmV0dXJuZWQuCisgICAgICogVGhlIGNhbGxl
ciBtdXN0IGRlbGV0ZSB0aGUgY2xvbmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgY2xvbmUg
b2YgdGhpcyBvYmplY3QKKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RHluYW1pY0NsYXNzSUQKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBMb2NhbGUgKmNsb25lKCkgY29uc3Q7
CisKKyNpZm5kZWYgVV9ISURFX1NZU1RFTV9BUEkKKyAgICAvKioKKyAgICAgKiBDb21tb24gbWV0
aG9kcyBvZiBnZXR0aW5nIHRoZSBjdXJyZW50IGRlZmF1bHQgTG9jYWxlLiBVc2VkIGZvciB0aGUK
KyAgICAgKiBwcmVzZW50YXRpb246IG1lbnVzLCBkaWFsb2dzLCBldGMuIEdlbmVyYWxseSBzZXQg
b25jZSB3aGVuIHlvdXIgYXBwbGV0IG9yCisgICAgICogYXBwbGljYXRpb24gaXMgaW5pdGlhbGl6
ZWQsIHRoZW4gbmV2ZXIgcmVzZXQuIChJZiB5b3UgZG8gcmVzZXQgdGhlCisgICAgICogZGVmYXVs
dCBsb2NhbGUsIHlvdSBwcm9iYWJseSB3YW50IHRvIHJlbG9hZCB5b3VyIEdVSSwgc28gdGhhdCB0
aGUgY2hhbmdlCisgICAgICogaXMgcmVmbGVjdGVkIGluIHlvdXIgaW50ZXJmYWNlLikKKyAgICAg
KgorICAgICAqIE1vcmUgYWR2YW5jZWQgcHJvZ3JhbXMgd2lsbCBhbGxvdyB1c2VycyB0byB1c2Ug
ZGlmZmVyZW50IGxvY2FsZXMgZm9yCisgICAgICogZGlmZmVyZW50IGZpZWxkcywgZS5nLiBpbiBh
IHNwcmVhZHNoZWV0LgorICAgICAqCisgICAgICogTm90ZSB0aGF0IHRoZSBpbml0aWFsIHNldHRp
bmcgd2lsbCBtYXRjaCB0aGUgaG9zdCBzeXN0ZW0uCisgICAgICogQHJldHVybiBhIHJlZmVyZW5j
ZSB0byB0aGUgTG9jYWxlIG9iamVjdCBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIElECisgICAgICog
QHN5c3RlbQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25z
dCBMb2NhbGUmIFVfRVhQT1JUMiBnZXREZWZhdWx0KHZvaWQpOworCisgICAgLyoqCisgICAgICog
U2V0cyB0aGUgZGVmYXVsdC4gTm9ybWFsbHkgc2V0IG9uY2UgYXQgdGhlIGJlZ2lubmluZyBvZiBh
IHByb2Nlc3MsCisgICAgICogdGhlbiBuZXZlciByZXNldC4KKyAgICAgKiBzZXREZWZhdWx0KCkg
b25seSBjaGFuZ2VzIElDVSdzIGRlZmF1bHQgbG9jYWxlIElELCA8c3Ryb25nPm5vdDwvc3Ryb25n
PgorICAgICAqIHRoZSBkZWZhdWx0IGxvY2FsZSBJRCBvZiB0aGUgcnVudGltZSBlbnZpcm9ubWVu
dC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuZXdMb2NhbGUgTG9jYWxlIHRvIHNldCB0by4gIElm
IE5VTEwsIHNldCB0byB0aGUgdmFsdWUgb2J0YWluZWQKKyAgICAgKiAgICAgICAgICAgICAgICAg
IGZyb20gdGhlIHJ1bnRpbWUgZW52aXJvbmVtZW50LgorICAgICAqIEBwYXJhbSBzdWNjZXNzIFRo
ZSBlcnJvciBjb2RlLgorICAgICAqIEBzeXN0ZW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBzdGF0aWMgdm9pZCBVX0VYUE9SVDIgc2V0RGVmYXVsdChjb25zdCBMb2NhbGUm
IG5ld0xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlJiAgIHN1Y2Nlc3MpOworI2VuZGlmICAvKiBVX0hJREVfU1lTVEVNX0FQSSAqLworCisgICAg
LyoqCisgICAgICogQ3JlYXRlcyBhIGxvY2FsZSB3aGljaCBoYXMgaGFkIG1pbmltYWwgY2Fub25p
Y2FsaXphdGlvbgorICAgICAqIGFzIHBlciB1bG9jX2dldE5hbWUoKS4KKyAgICAgKiBAcGFyYW0g
bmFtZSBUaGUgbmFtZSB0byBjcmVhdGUgZnJvbS4gIElmIG5hbWUgaXMgbnVsbCwKKyAgICAgKiAg
dGhlIGRlZmF1bHQgTG9jYWxlIGlzIHVzZWQuCisgICAgICogQHJldHVybiBuZXcgbG9jYWxlIG9i
amVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqIEBzZWUgdWxvY19nZXROYW1lCisg
ICAgICovCisgICAgc3RhdGljIExvY2FsZSBVX0VYUE9SVDIgY3JlYXRlRnJvbU5hbWUoY29uc3Qg
Y2hhciAqbmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbG9jYWxlIGZyb20gdGhl
IGdpdmVuIHN0cmluZyBhZnRlciBjYW5vbmljYWxpemluZworICAgICAqIHRoZSBzdHJpbmcgYnkg
Y2FsbGluZyB1bG9jX2Nhbm9uaWNhbGl6ZSgpLgorICAgICAqIEBwYXJhbSBuYW1lIHRoZSBsb2Nh
bGUgSUQgdG8gY3JlYXRlIGZyb20uICBNdXN0IG5vdCBiZSBOVUxMLgorICAgICAqIEByZXR1cm4g
YSBuZXcgbG9jYWxlIG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBuYW1lCisgICAg
ICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICogQHNlZSB1bG9jX2Nhbm9uaWNhbGl6ZQorICAgICAq
LworICAgIHN0YXRpYyBMb2NhbGUgVV9FWFBPUlQyIGNyZWF0ZUNhbm9uaWNhbChjb25zdCBjaGFy
KiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIElTTy02Mzkg
bGFuZ3VhZ2UgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAq
ICBnZXRMYW5ndWFnZSggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxv
Y2FsZSdzIElTTy0xNTkyNCBhYmJyZXZpYXRpb24gc2NyaXB0IGNvZGUuCisgICAgICogQHJldHVy
biAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHNlZSB1c2NyaXB0X2dldFNob3J0
TmFtZQorICAgICAqIEBzZWUgdXNjcmlwdF9nZXRDb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi44
CisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0U2NyaXB0KCApIGNvbnN0Owor
CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTMxNjYgY291bnRyeSBj
b2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldENvdW50
cnkoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyB2YXJp
YW50IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0
VmFyaWFudCggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHByb2dyYW1t
YXRpYyBuYW1lIG9mIHRoZSBlbnRpcmUgbG9jYWxlLCB3aXRoIHRoZSBsYW5ndWFnZSwKKyAgICAg
KiBjb3VudHJ5IGFuZCB2YXJpYW50IHNlcGFyYXRlZCBieSB1bmRlcmJhcnMuIElmIGEgZmllbGQg
aXMgbWlzc2luZywgdXAKKyAgICAgKiB0byB0d28gbGVhZGluZyB1bmRlcmJhcnMgd2lsbCBvY2N1
ci4gRXhhbXBsZTogImVuIiwgImRlX0RFIiwgImVuX1VTX1dJTiIsCisgICAgICogImRlX19QT1NJ
WCIsICJmcl9fTUFDIiwgIl9fTUFDIiwgIl9NVCIsICJfRlJfRVVSTyIKKyAgICAgKiBAcmV0dXJu
ICAgICAgQSBwb2ludGVyIHRvICJuYW1lIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqIGdldE5hbWUoKSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIHByb2dyYW1tYXRpYyBuYW1lIG9mIHRoZSBlbnRpcmUgbG9jYWxl
IGFzIGdldE5hbWUoKSB3b3VsZCByZXR1cm4sCisgICAgICogYnV0IHdpdGhvdXQga2V5d29yZHMu
CisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0byAibmFtZSIuCisgICAgICogQHNlZSBn
ZXROYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgY29uc3QgY2hhciAq
IGdldEJhc2VOYW1lKCkgY29uc3Q7CisKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxpc3Qg
b2Yga2V5d29yZHMgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBh
cmFtIHN0YXR1cyB0aGUgc3RhdHVzIGNvZGUKKyAgICAgKiBAcmV0dXJuIHBvaW50ZXIgdG8gU3Ry
aW5nRW51bWVyYXRpb24gY2xhc3MsIG9yIE5VTEwgaWYgdGhlcmUgYXJlIG5vIGtleXdvcmRzLiAK
KyAgICAgKiBDbGllbnQgbXVzdCBkaXNwb3NlIG9mIGl0IGJ5IGNhbGxpbmcgZGVsZXRlLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFN0cmluZ0VudW1lcmF0aW9uICogY3Jl
YXRlS2V5d29yZHMoVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IEdldHMgdGhlIHZhbHVlIGZvciBhIGtleXdvcmQuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5
d29yZE5hbWUgbmFtZSBvZiB0aGUga2V5d29yZCBmb3Igd2hpY2ggd2Ugd2FudCB0aGUgdmFsdWUu
IENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHBhcmFtIGJ1ZmZlciBUaGUgYnVmZmVyIHRvIHJl
Y2VpdmUgdGhlIGtleXdvcmQgdmFsdWUuCisgICAgICogQHBhcmFtIGJ1ZmZlckNhcGFjaXR5IFRo
ZSBjYXBhY2l0eSBvZiByZWNlaXZpbmcgYnVmZmVyCisgICAgICogQHBhcmFtIHN0YXR1cyBSZXR1
cm5zIGFueSBlcnJvciBpbmZvcm1hdGlvbiB3aGlsZSBwZXJmb3JtaW5nIHRoaXMgb3BlcmF0aW9u
LgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUga2V5d29yZCB2YWx1ZQorICAgICAq
CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgaW50MzJfdCBnZXRLZXl3b3Jk
VmFsdWUoY29uc3QgY2hhcioga2V5d29yZE5hbWUsIGNoYXIgKmJ1ZmZlciwgaW50MzJfdCBidWZm
ZXJDYXBhY2l0eSwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IFNldHMgb3IgcmVtb3ZlcyB0aGUgdmFsdWUgZm9yIGEga2V5d29yZC4KKyAgICAgKgorICAgICAq
IEZvciByZW1vdmluZyBhbGwga2V5d29yZHMsIHVzZSBnZXRCYXNlTmFtZSgpLAorICAgICAqIGFu
ZCBjb25zdHJ1Y3QgYSBuZXcgTG9jYWxlIGlmIGl0IGRpZmZlcnMgZnJvbSBnZXROYW1lKCkuCisg
ICAgICoKKyAgICAgKiBAcGFyYW0ga2V5d29yZE5hbWUgbmFtZSBvZiB0aGUga2V5d29yZCB0byBi
ZSBzZXQuIENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHBhcmFtIGtleXdvcmRWYWx1ZSB2YWx1
ZSBvZiB0aGUga2V5d29yZCB0byBiZSBzZXQuIElmIDAtbGVuZ3RoIG9yCisgICAgICogIE5VTEws
IHdpbGwgcmVzdWx0IGluIHRoZSBrZXl3b3JkIGJlaW5nIHJlbW92ZWQuIE5vIGVycm9yIGlzIGdp
dmVuIGlmCisgICAgICogIHRoYXQga2V5d29yZCBkb2VzIG5vdCBleGlzdC4KKyAgICAgKiBAcGFy
YW0gc3RhdHVzIFJldHVybnMgYW55IGVycm9yIGluZm9ybWF0aW9uIHdoaWxlIHBlcmZvcm1pbmcg
dGhpcyBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLwor
ICAgIHZvaWQgc2V0S2V5d29yZFZhbHVlKGNvbnN0IGNoYXIqIGtleXdvcmROYW1lLCBjb25zdCBj
aGFyKiBrZXl3b3JkVmFsdWUsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAg
KiByZXR1cm5zIHRoZSBsb2NhbGUncyB0aHJlZS1sZXR0ZXIgbGFuZ3VhZ2UgY29kZSwgYXMgc3Bl
Y2lmaWVkCisgICAgICogaW4gSVNPIGRyYWZ0IHN0YW5kYXJkIElTTy02MzktMi4KKyAgICAgKiBA
cmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUsIG9yIGFuIGVtcHR5IHN0cmluZworICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRJU08zTGFu
Z3VhZ2UoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRo
ZSBsb2NhbGUncyB0aHJlZS1sZXR0ZXIgSVNPLTMxNjYgY291bnRyeSBjb2RlLgorICAgICAqIEBy
ZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZSwgb3IgYW4gZW1wdHkgc3RyaW5nCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgY29uc3QgY2hhciAqIGdldElTTzNDb3Vu
dHJ5KCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBXaW5kb3dzIExDSUQg
dmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGlzIGxvY2FsZS4KKyAgICAgKiBUaGlzIHZhbHVlIGlz
IHN0b3JlZCBpbiB0aGUgcmVzb3VyY2UgZGF0YSBmb3IgdGhlIGxvY2FsZSBhcyBhIG9uZS10by1m
b3VyLWRpZ2l0CisgICAgICogaGV4YWRlY2ltYWwgbnVtYmVyLiAgSWYgdGhlIHJlc291cmNlIGlz
IG1pc3NpbmcsIGluIHRoZSB3cm9uZyBmb3JtYXQsIG9yCisgICAgICogdGhlcmUgaXMgbm8gV2lu
ZG93cyBMQ0lEIHZhbHVlIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhpcyBsb2NhbGUsIHJldHVybnMg
MC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAg
Z2V0TENJRCh2b2lkKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisgICAgLyoq
CisgICAgICogUmV0dXJucyB3aGV0aGVyIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGlzIHdyaXR0ZW4g
cmlnaHQtdG8tbGVmdC4KKyAgICAgKiBJZiB0aGVyZSBpcyBubyBzY3JpcHQgc3VidGFnLCB0aGVu
IHRoZSBsaWtlbHkgc2NyaXB0IGlzIHVzZWQsIHNlZSB1bG9jX2FkZExpa2VseVN1YnRhZ3MoKS4K
KyAgICAgKiBJZiBubyBsaWtlbHkgc2NyaXB0IGlzIGtub3duLCB0aGVuIEZBTFNFIGlzIHJldHVy
bmVkLgorICAgICAqCisgICAgICogQSBzY3JpcHQgaXMgcmlnaHQtdG8tbGVmdCBhY2NvcmRpbmcg
dG8gdGhlIENMRFIgc2NyaXB0IG1ldGFkYXRhCisgICAgICogd2hpY2ggY29ycmVzcG9uZHMgdG8g
d2hldGhlciB0aGUgc2NyaXB0J3MgbGV0dGVycyBoYXZlIEJpZGlfQ2xhc3M9UiBvciBBTC4KKyAg
ICAgKgorICAgICAqIFJldHVybnMgVFJVRSBmb3IgImFyIiBhbmQgImVuLUhlYnIiLCBGQUxTRSBm
b3IgInpoIiBhbmQgImZhLUN5cmwiLgorICAgICAqCisgICAgICogQHJldHVybiBUUlVFIGlmIHRo
ZSBsb2NhbGUncyBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0CisgICAgICogQGRyYWZ0
IElDVSA1NAorICAgICAqLworICAgIFVCb29sIGlzUmlnaHRUb0xlZnQoKSBjb25zdDsKKyNlbmRp
ZiAgLyogVV9ISURFX0RSQUZUX0FQSSAqLworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRp
c3BMYW5nIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgaW4gYSBmb3Jt
YXQgc3VpdGFibGUgZm9yCisgICAgICogdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2Fs
ZS4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcworICAgICAq
ICJmciIgYW5kIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhp
cyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwTGFuZyB0byAiRnJlbmNoIi4KKyAgICAg
KiBAcGFyYW0gZGlzcExhbmcgIFJlY2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRpc3BsYXkgbmFtZS4K
KyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwTGFuZyIuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3Bs
YXlMYW5ndWFnZShVbmljb2RlU3RyaW5nJiAgIGRpc3BMYW5nKSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIEZpbGxzIGluICJkaXNwTGFuZyIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdz
IGxhbmd1YWdlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvcgorICAgICAqIHVzZXIgZGlzcGxheSBp
biB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3IgZXhhbXBsZSwg
aWYgdGhlIGxvY2FsZSdzCisgICAgICogbGFuZ3VhZ2UgY29kZSBpcyAiZW4iIGFuZCBkaXNwbGF5
TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZnIiLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAor
ICAgICAqIGRpc3BMYW5nIHRvICJBbmdsYWlzIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2Fs
ZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLiAg
SW4gb3RoZXIgd29yZHMsCisgICAgICogICAgICAgICAgICAgICAgICBpZiB0aGUgbG9jYWxlJ3Mg
bGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCBwYXNzaW5nIExvY2FsZTo6Z2V0RnJlbmNoKCkgZm9yCisg
ICAgICogICAgICAgICAgICAgICAgICBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiQW5n
bGFpcyIsIHdoaWxlIHBhc3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKQorICAgICAqICAgICAgICAg
ICAgICAgICAgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICJFbmdsaXNjaCIuCisg
ICAgICogQHBhcmFtIGRpc3BMYW5nICBSZWNlaXZlcyB0aGUgbGFuZ3VhZ2UncyBkaXNwbGF5IG5h
bWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcExhbmciLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXRE
aXNwbGF5TGFuZ3VhZ2UoIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3Ry
aW5nJiAgZGlzcExhbmcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BT
Y3JpcHQiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBzY3JpcHQgaW4gYSBmb3JtYXQg
c3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4g
IEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGNvZGUKKyAgICAgKiBpcyAiTEFU
TiIgYW5kIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhpcyBm
dW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwU2NyaXB0IHRvICJMYXRpbiIuCisgICAgICog
QHBhcmFtIGRpc3BTY3JpcHQgICAgUmVjZWl2ZXMgdGhlIHNjcmlwdHMncyBkaXNwbGF5IG5hbWUu
CisgICAgICogQHJldHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BTY3JpcHQi
LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBn
ZXREaXNwbGF5U2NyaXB0KCAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwU2NyaXB0KSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwU2NyaXB0IiB3aXRoIHRoZSBuYW1l
IG9mIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZv
ciB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlMb2NhbGUi
LiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncworICAgICAqIHNjcmlwdCBjb2RlIGlzICJM
QVROIiBhbmQgZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhpcyBmdW5j
dGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwU2NyaXB0IHRvICJMYXRpbiIuCisgICAgICogQHBh
cmFtIGRpc3BsYXlMb2NhbGUgICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRv
IGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAg
IHdvcmRzLCBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGNvZGUgaXMgIkxBVE4iLCBwYXNzaW5nCisg
ICAgICogICAgICAgICAgICAgICAgICAgICAgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IgZGlzcGxh
eUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIiIsIHdoaWxlCisgICAgICogICAgICAgICAgICAgICAg
ICAgICAgcGFzc2luZyBMb2NhbGU6OmdldEdlcm1hbigpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxk
IHJlc3VsdCBpbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICIiLgorICAgICAqIEBwYXJh
bSBkaXNwU2NyaXB0ICAgIFJlY2VpdmVzIHRoZSBzY3JpcHRzJ3MgZGlzcGxheSBuYW1lLgorICAg
ICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwU2NyaXB0Ii4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlz
cGxheVNjcmlwdCggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcm
ICBkaXNwU2NyaXB0KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwQ291
bnRyeSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGNvdW50cnkgaW4gYSBmb3JtYXQg
c3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4g
IEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MgY291bnRyeSBjb2RlCisgICAgICogaXMgIkZS
IiBhbmQgdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1
bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BDb3VudHJ5IHRvICJGcmFuY2UiLgorICAgICAq
IEBwYXJhbSBkaXNwQ291bnRyeSAgIFJlY2VpdmVzIHRoZSBjb3VudHJ5J3MgZGlzcGxheSBuYW1l
LgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwQ291bnRy
eSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYg
IGdldERpc3BsYXlDb3VudHJ5KCAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwQ291bnRyeSkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcENvdW50cnkiIHdpdGggdGhl
IG5hbWUgb2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAg
ICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxv
Y2FsZSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzCisgICAgICogY291bnRyeSBjb2Rl
IGlzICJVUyIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJmciIsIHRoaXMg
ZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcENvdW50cnkgdG8gIiZFYWN1dGU7dGF0cy1V
bmlzIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgICAgIFNwZWNpZmllcyB0aGUgbG9j
YWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIEluIG90aGVyCisgICAgICogICAg
ICAgICAgICAgICAgICAgICAgd29yZHMsIGlmIHRoZSBsb2NhbGUncyBjb3VudHJ5IGNvZGUgaXMg
IlVTIiwgcGFzc2luZworICAgICAqICAgICAgICAgICAgICAgICAgICAgIExvY2FsZTo6Z2V0RnJl
bmNoKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICImRWFjdXRlO3RhdHMtVW5p
cyIsIHdoaWxlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgcGFzc2luZyBMb2NhbGU6Omdl
dEdlcm1hbigpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbgorICAgICAqICAgICAg
ICAgICAgICAgICAgICAgICJWZXJlaW5pZ3RlIFN0YWF0ZW4iLgorICAgICAqIEBwYXJhbSBkaXNw
Q291bnRyeSAgIFJlY2VpdmVzIHRoZSBjb3VudHJ5J3MgZGlzcGxheSBuYW1lLgorICAgICAqIEBy
ZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwQ291bnRyeSIuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlD
b3VudHJ5KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBk
aXNwQ291bnRyeSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFZhciIg
d2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgY29kZSBpbiBhIGZvcm1hdCBz
dWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgor
ICAgICAqIEBwYXJhbSBkaXNwVmFyICAgUmVjZWl2ZXMgdGhlIHZhcmlhbnQncyBuYW1lLgorICAg
ICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BWYXIiLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5VmFy
aWFudCggICAgICBVbmljb2RlU3RyaW5nJiBkaXNwVmFyKSBjb25zdDsKKworICAgIC8qKgorICAg
ICAqIEZpbGxzIGluICJkaXNwVmFyIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgdmFy
aWFudCBjb2RlIGluIGEgZm9ybWF0CisgICAgICogc3VpdGFibGUgZm9yIHVzZXIgZGlzcGxheSBp
biB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuCisgICAgICogQHBhcmFt
IGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxh
eSB0aGUgbmFtZS4KKyAgICAgKiBAcGFyYW0gZGlzcFZhciAgIFJlY2VpdmVzIHRoZSB2YXJpYW50
J3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8g
ImRpc3BWYXIiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVT
dHJpbmcmICBnZXREaXNwbGF5VmFyaWFudCggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3Bs
YXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVbmljb2RlU3RyaW5nJiAgZGlzcFZhcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxs
cyBpbiAibmFtZSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSBpbiBhIGZvcm1hdCBzdWl0
YWJsZSBmb3IgdXNlciBkaXNwbGF5CisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgVGhp
cyBmdW5jdGlvbiB1c2VzIGdldERpc3BsYXlMYW5ndWFnZSgpLCBnZXREaXNwbGF5Q291bnRyeSgp
LAorICAgICAqIGFuZCBnZXREaXNwbGF5VmFyaWFudCgpIHRvIGRvIGl0cyB3b3JrLCBhbmQgb3V0
cHV0cyB0aGUgZGlzcGxheSBuYW1lIGluIHRoZSBmb3JtYXQKKyAgICAgKiAibGFuZ3VhZ2UgKGNv
dW50cnlbLHZhcmlhbnRdKSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGRlZmF1bHQgbG9jYWxlIGlz
IGVuX1VTLCB0aGVuCisgICAgICogZnJfRlIncyBkaXNwbGF5IG5hbWUgd291bGQgYmUgIkZyZW5j
aCAoRnJhbmNlKSIsIGFuZCBlc19NWF9UcmFkaXRpb25hbCdzIGRpc3BsYXkgbmFtZQorICAgICAq
IHdvdWxkIGJlICJTcGFuaXNoIChNZXhpY28sVHJhZGl0aW9uYWwpIi4KKyAgICAgKiBAcGFyYW0g
bmFtZSAgUmVjZWl2ZXMgdGhlIGxvY2FsZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJu
ICAgICAgQSByZWZlcmVuY2UgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TmFtZSggICAgICAgICBVbmljb2Rl
U3RyaW5nJiAgbmFtZSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAibmFtZSIg
d2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgdXNl
ciBkaXNwbGF5CisgICAgICogaW4gdGhlIGxvY2FsZSBzcGVjZmllZCBieSAiZGlzcGxheUxvY2Fs
ZSIuICBUaGlzIGZ1bmN0aW9uIHVzZXMgZ2V0RGlzcGxheUxhbmd1YWdlKCksCisgICAgICogZ2V0
RGlzcGxheUNvdW50cnkoKSwgYW5kIGdldERpc3BsYXlWYXJpYW50KCkgdG8gZG8gaXRzIHdvcmss
IGFuZCBvdXRwdXRzIHRoZSBkaXNwbGF5CisgICAgICogbmFtZSBpbiB0aGUgZm9ybWF0ICJsYW5n
dWFnZSAoY291bnRyeVssdmFyaWFudF0pIi4gIEZvciBleGFtcGxlLCBpZiBkaXNwbGF5TG9jYWxl
IGlzCisgICAgICogZnJfRlIsIHRoZW4gZW5fVVMncyBkaXNwbGF5IG5hbWUgd291bGQgYmUgIkFu
Z2xhaXMgKCZFYWN1dGU7dGF0cy1VbmlzKSIsIGFuZCBub19OT19OWSdzCisgICAgICogZGlzcGxh
eSBuYW1lIHdvdWxkIGJlICJub3J2JmVhY3V0ZTtnaWVuIChOb3J2JmVncmF2ZTtnZSxOWSkiLgor
ICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1
c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHBhcmFtIG5hbWUgICAgICBSZWNlaXZl
cyB0aGUgbG9jYWxlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSBy
ZWZlcmVuY2UgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TmFtZSggY29uc3QgICBMb2NhbGUmICAgICAgICAg
ZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVW5pY29kZVN0cmluZyYgIG5hbWUpIGNvbnN0OworCisgICAgLyoqCisgICAgICogR2VuZXJh
dGVzIGEgaGFzaCBjb2RlIGZvciB0aGUgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIGludDMyX3QgICAgICAgICBoYXNoQ29kZSh2b2lkKSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIFNldHMgdGhlIGxvY2FsZSB0byBib2d1cworICAgICAqIEEgYm9ndXMgbG9j
YWxlIHJlcHJlc2VudHMgYSBub24tZXhpc3RpbmcgbG9jYWxlIGFzc29jaWF0ZWQKKyAgICAgKiB3
aXRoIHNlcnZpY2VzIHRoYXQgY2FuIGJlIGluc3RhbnRpYXRlZCBmcm9tIG5vbi1sb2NhbGUgZGF0
YQorICAgICAqIGluIGFkZGl0aW9uIHRvIGxvY2FsZSAoZm9yIGV4YW1wbGUsIGNvbGxhdGlvbiBj
YW4gYmUKKyAgICAgKiBpbnN0YW50aWF0ZWQgZnJvbSBhIGxvY2FsZSBhbmQgZnJvbSBhIHJ1bGUg
c2V0KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICB2b2lkIHNldFRvQm9n
dXMoKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGJvZ3VzIHN0YXRlLiBMb2NhbGUgb2Jq
ZWN0IGNhbiBiZSBib2d1cyBpZiBpdCBkb2Vzbid0IGV4aXN0CisgICAgICogQHJldHVybiBGQUxT
RSBpZiBpdCBpcyBhIHJlYWwgbG9jYWxlLCBUUlVFIGlmIGl0IGlzIGEgYm9ndXMgbG9jYWxlCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgVUJvb2wgaXNCb2d1cyh2b2lkKSBj
b25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBpbnN0YWxsZWQg
bG9jYWxlcy4KKyAgICAgKiBAcGFyYW0gY291bnQgUmVjZWl2ZXMgdGhlIG51bWJlciBvZiBsb2Nh
bGVzIGluIHRoZSBsaXN0LgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8gYW4gYXJy
YXkgb2YgTG9jYWxlIG9iamVjdHMuICBUaGlzIGFycmF5IGlzIHRoZSBsaXN0CisgICAgICogICAg
ICAgICAgICAgIG9mIGFsbCBsb2NhbGVzIHdpdGggaW5zdGFsbGVkIHJlc291cmNlIGZpbGVzLiAg
VGhlIGNhbGxlZCBkb2VzIE5PVAorICAgICAqICAgICAgICAgICAgICBnZXQgb3duZXJzaGlwIG9m
IHRoaXMgbGlzdCwgYW5kIG11c3QgTk9UIGRlbGV0ZSBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlKiBVX0VYUE9SVDIgZ2V0QXZhaWxh
YmxlTG9jYWxlcyhpbnQzMl90JiBjb3VudCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgbGlz
dCBvZiBhbGwgYXZhaWxhYmxlIDItbGV0dGVyIGNvdW50cnkgY29kZXMgZGVmaW5lZCBpbiBJU08g
MzE2Ni4gIFRoaXMgaXMgYQorICAgICAqIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgcG9pbnRlcnMg
dG8gYXJyYXlzIG9mIGNoYXIuICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlCisgICAgICogb3du
ZWQgYnkgSUNVLS0gZG8gbm90IGRlbGV0ZSB0aGVtLCBhbmQgZG8gbm90IHdyaXRlIHRocm91Z2gg
dGhlbS4gIFRoZSBhcnJheSBpcworICAgICAqIHRlcm1pbmF0ZWQgd2l0aCBhIG51bGwgcG9pbnRl
ci4KKyAgICAgKiBAcmV0dXJuIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGNvdW50cnkgY29kZXMK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgY2hhciog
Y29uc3QqIFVfRVhQT1JUMiBnZXRJU09Db3VudHJpZXMoKTsKKworICAgIC8qKgorICAgICAqIEdl
dHMgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgbGFuZ3VhZ2UgY29kZXMgZGVmaW5lZCBpbiBJU08g
NjM5LiAgVGhpcyBpcyBhIHBvaW50ZXIKKyAgICAgKiB0byBhbiBhcnJheSBvZiBwb2ludGVycyB0
byBhcnJheXMgb2YgY2hhci4gIEFsbCBvZiB0aGVzZSBwb2ludGVycyBhcmUgb3duZWQKKyAgICAg
KiBieSBJQ1UtLSBkbyBub3QgZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0
aGVtLiAgVGhlIGFycmF5IGlzCisgICAgICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBwb2ludGVy
LgorICAgICAqIEByZXR1cm4gYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgbGFuZ3VhZ2UgY29kZXMK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgY2hhciog
Y29uc3QqIFVfRVhQT1JUMiBnZXRJU09MYW5ndWFnZXMoKTsKKworICAgIC8qKgorICAgICAqIElD
VSAicG9vciBtYW4ncyBSVFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGlzIGNsYXNzLgor
ICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgc3RhdGljIFVDbGFz
c0lEIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKCk7CisKKyAgICAvKioKKyAgICAgKiBJQ1Ug
InBvb3IgbWFuJ3MgUlRUSSIsIHJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhlIGFjdHVhbCBjbGFz
cy4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHZpcnR1YWwg
VUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQoKSBjb25zdDsKKworcHJvdGVjdGVkOiAvKiBvbmx5
IHByb3RlY3RlZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gRE8gTk9UIFVTRS4gKi8KKyNpZm5kZWYg
VV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAqIFNldCB0aGlzIGZyb20gYSBzaW5n
bGUgUE9TSVggc3R5bGUgbG9jYWxlIHN0cmluZy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8K
KyAgICB2b2lkIHNldEZyb21QT1NJWElEKGNvbnN0IGNoYXIgKnBvc2l4SUQpOworI2VuZGlmICAv
KiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKK3ByaXZhdGU6CisgICAgLyoqCisgICAgICogSW5p
dGlhbGl6ZSB0aGUgbG9jYWxlIG9iamVjdCB3aXRoIGEgbmV3IG5hbWUuCisgICAgICogV2FzIGRl
cHJlY2F0ZWQgLSB1c2VkIGluIGltcGxlbWVudGF0aW9uIC0gbW92ZWQgaW50ZXJuYWwKKyAgICAg
KgorICAgICAqIEBwYXJhbSBjTG9jYWxlSUQgVGhlIG5ldyBsb2NhbGUgbmFtZS4KKyAgICAgKiBA
cGFyYW0gY2Fub25pY2FsaXplIHdoZXRoZXIgdG8gY2FsbCB1bG9jX2Nhbm9uaWNhbGl6ZSBvbiBj
TG9jYWxlSUQKKyAgICAgKi8KKyAgICBMb2NhbGUmIGluaXQoY29uc3QgY2hhciogY0xvY2FsZUlE
LCBVQm9vbCBjYW5vbmljYWxpemUpOworCisgICAgLyoKKyAgICAgKiBJbnRlcm5hbCBjb25zdHJ1
Y3RvciB0byBhbGxvdyBjb25zdHJ1Y3Rpb24gb2YgYSBsb2NhbGUgb2JqZWN0IHdpdGgKKyAgICAg
KiAgIE5PIHNpZGUgZWZmZWN0cy4gICAoRGVmYXVsdCBjb25zdHJ1Y3RvciB0cmllcyB0byBnZXQK
KyAgICAgKiAgIHRoZSBkZWZhdWx0IGxvY2FsZS4pCisgICAgICovCisgICAgZW51bSBFTG9jYWxl
VHlwZSB7CisgICAgICAgIGVCT0dVUworICAgIH07CisgICAgTG9jYWxlKEVMb2NhbGVUeXBlKTsK
KworICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgdGhlIGxvY2FsZSBjYWNoZSBmb3IgY29tbW9u
bHkgdXNlZCBsb2NhbGVzCisgICAgICovCisgICAgc3RhdGljIExvY2FsZSAqZ2V0TG9jYWxlQ2Fj
aGUodm9pZCk7CisKKyAgICBjaGFyIGxhbmd1YWdlW1VMT0NfTEFOR19DQVBBQ0lUWV07CisgICAg
Y2hhciBzY3JpcHRbVUxPQ19TQ1JJUFRfQ0FQQUNJVFldOworICAgIGNoYXIgY291bnRyeVtVTE9D
X0NPVU5UUllfQ0FQQUNJVFldOworICAgIGludDMyX3QgdmFyaWFudEJlZ2luOworICAgIGNoYXIq
IGZ1bGxOYW1lOworICAgIGNoYXIgZnVsbE5hbWVCdWZmZXJbVUxPQ19GVUxMTkFNRV9DQVBBQ0lU
WV07CisgICAgLy8gbmFtZSB3aXRob3V0IGtleXdvcmRzCisgICAgY2hhciogYmFzZU5hbWU7Cisg
ICAgdm9pZCBpbml0QmFzZU5hbWUoVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIFVCb29sIGZJ
c0JvZ3VzOworCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmZ2V0TG9jYWxlKGludCBsb2NpZCk7
CisKKyAgICAvKioKKyAgICAgKiBBIGZyaWVuZCB0byBhbGxvdyB0aGUgZGVmYXVsdCBsb2NhbGUg
dG8gYmUgc2V0IGJ5IGVpdGhlciB0aGUgQyBvciBDKysgQVBJLgorICAgICAqIEBpbnRlcm5hbAor
ICAgICAqLworICAgIGZyaWVuZCBMb2NhbGUgKmxvY2FsZV9zZXRfZGVmYXVsdF9pbnRlcm5hbChj
b25zdCBjaGFyICosIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBmcmllbmQgdm9pZCBVX0NBTExDT05WIGxvY2FsZV9hdmFpbGFi
bGVfaW5pdCgpOworfTsKKworaW5saW5lIFVCb29sCitMb2NhbGU6Om9wZXJhdG9yIT0oY29uc3Qg
ICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuICFvcGVyYXRvcj09KG90
aGVyKTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRDb3VudHJ5KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gY291bnRyeTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9j
YWxlOjpnZXRMYW5ndWFnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGxhbmd1YWdlOworfQorCitp
bmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldFNjcmlwdCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHNjcmlwdDsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRWYXJpYW50
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gJmJhc2VOYW1lW3ZhcmlhbnRCZWdpbl07Cit9CisKK2lu
bGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGZ1bGxOYW1lOworfQorCitpbmxpbmUgVUJvb2wKK0xvY2FsZTo6aXNCb2d1cyh2b2lkKSBjb25z
dCB7CisgICAgcmV0dXJuIGZJc0JvZ3VzOworfQorCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JiYmkuaCBiL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvcmJiaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NzU5OGE1MGU2ZmEzYmFiMmFkNDllMDIy
YWFmMzk2Y2FjMzI5ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3JiYmkuaApAQCAtMCwwICsxLDc4MiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENv
cHlyaWdodCAoQykgMTk5OS0yMDE0IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29y
cG9yYXRpb24gICAqCisqICAgYW5kIG90aGVycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyog
ICAxMC8yMi85OSAgICBhbGFuICAgICAgICBDcmVhdGlvbi4KKyogICAxMS8xMS85OSAgICByZ2ls
bGFtICAgICBDb21wbGV0ZSBwb3J0IGZyb20gSmF2YS4KKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNp
Zm5kZWYgUkJCSV9ICisjZGVmaW5lIFJCQklfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMu
aCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IFJ1bGUgQmFzZWQgQnJlYWsg
SXRlcmF0b3IKKyAqLworCisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKKyNpbmNs
dWRlICJ1bmljb2RlL2Jya2l0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisjaW5j
bHVkZSAidW5pY29kZS9wYXJzZWVyci5oIgorI2luY2x1ZGUgInVuaWNvZGUvc2Nocml0ZXIuaCIK
KyNpbmNsdWRlICJ1bmljb2RlL3VjaHJpdGVyLmgiCisKKworc3RydWN0IFVUcmllOworCitVX05B
TUVTUEFDRV9CRUdJTgorCisvKiogQGludGVybmFsICovCitzdHJ1Y3QgUkJCSURhdGFIZWFkZXI7
CitjbGFzcyAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvclRhYmxlczsKK2NsYXNzICBCcmVha0l0ZXJh
dG9yOworY2xhc3MgIFJCQklEYXRhV3JhcHBlcjsKK2NsYXNzICBVU3RhY2s7CitjbGFzcyAgTGFu
Z3VhZ2VCcmVha0VuZ2luZTsKK2NsYXNzICBVbmhhbmRsZWRFbmdpbmU7CitzdHJ1Y3QgUkJCSVN0
YXRlVGFibGU7CisKKworCisKKy8qKgorICoKKyAqIEEgc3ViY2xhc3Mgb2YgQnJlYWtJdGVyYXRv
ciB3aG9zZSBiZWhhdmlvciBpcyBzcGVjaWZpZWQgdXNpbmcgYSBsaXN0IG9mIHJ1bGVzLgorICog
PHA+SW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgYXJlIG1vc3QgY29tbW9ubHkgY3JlYXRlZCBieSB0
aGUgZmFjdG9yeSBtZXRob2RzIG9mCisgKiAgQnJlYWtJdGVyYXRvcjo6Y3JlYXRlV29yZEluc3Rh
bmNlKCksIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZUxpbmVJbnN0YW5jZSgpLCBldGMuLAorICogIGFu
ZCB0aGVuIHVzZWQgdmlhIHRoZSBhYnN0cmFjdCBBUEkgaW4gY2xhc3MgQnJlYWtJdGVyYXRvcjwv
cD4KKyAqCisgKiA8cD5TZWUgdGhlIElDVSBVc2VyIEd1aWRlIGZvciBpbmZvcm1hdGlvbiBvbiBC
cmVhayBJdGVyYXRvciBSdWxlcy48L3A+CisgKgorICogPHA+VGhpcyBjbGFzcyBpcyBub3QgaW50
ZW5kZWQgdG8gYmUgc3ViY2xhc3NlZC4gIChDbGFzcyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJh
dG9yCisgKiAgICBpcyBhIHN1YmNsYXNzLCBidXQgdGhhdCByZWxhdGlvbnNoaXAgaXMgZWZmZWN0
aXZlbHkgaW50ZXJuYWwgdG8gdGhlIElDVQorICogICAgaW1wbGVtZW50YXRpb24uICBUaGUgc3Vi
Y2xhc3NpbmcgaW50ZXJmYWNlIHRvIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yIGlzCisgKiAgICBu
b3QgcGFydCBvZiB0aGUgSUNVIEFQSSwgYW5kIG1heSBub3QgcmVtYWluIHN0YWJsZS48L3A+Cisg
KgorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAvKlVfRklO
QUwqLyA6IHB1YmxpYyBCcmVha0l0ZXJhdG9yIHsKKworcHJvdGVjdGVkOgorICAgIC8qKgorICAg
ICAqIFRoZSBVVGV4dCB0aHJvdWdoIHdoaWNoIHRoaXMgQnJlYWtJdGVyYXRvciBhY2Nlc3NlcyB0
aGUgdGV4dAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVUZXh0ICAqZlRleHQ7CisK
KyAgICAvKioKKyAgICAgKiAgIEEgY2hhcmFjdGVyIGl0ZXJhdG9yIHRoYXQgcmVmZXJzIHRvIHRo
ZSBzYW1lIHRleHQgYXMgdGhlIFVUZXh0LCBhYm92ZS4KKyAgICAgKiAgIE9ubHkgaW5jbHVkZWQg
Zm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgQVBJLCB3aGljaCB3YXMgYmFzZWQgb24gQ2hhcmFj
dGVySXRlcmF0b3JzLgorICAgICAqICAgVmFsdWUgbWF5IGJlIGFkb3B0ZWQgZnJvbSBvdXRzaWRl
LCBvciBvbmUgb2YgZlNDaGFySXRlciBvciBmRENoYXJJdGVyLCBiZWxvdy4KKyAgICAgKi8KKyAg
ICBDaGFyYWN0ZXJJdGVyYXRvciAgKmZDaGFySXRlcjsKKworICAgIC8qKgorICAgICAqICAgV2hl
biB0aGUgaW5wdXQgdGV4dCBpcyBwcm92aWRlZCBieSBhIFVuaWNvZGVTdHJpbmcsIHRoaXMgd2ls
bCBwb2ludCB0bworICAgICAqICAgIGEgY2hhcmFjdGVySXRlcmF0b3IgdGhhdCB3cmFwcyB0aGF0
IGRhdGEuICBOZWVkZWQgb25seSBmb3IgdGhlCisgICAgICogICAgaW1wbGVtZW50YXRpb24gb2Yg
Z2V0VGV4dCgpLCBhIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGlzc3VlLgorICAgICAqLworICAg
IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yICpmU0NoYXJJdGVyOworCisgICAgLyoqCisgICAgICog
IFdoZW4gdGhlIGlucHV0IHRleHQgaXMgcHJvdmlkZWQgYnkgYSBVVGV4dCwgdGhpcworICAgICAq
ICAgIGR1bW15IENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgYW4gZW1wdHkgc3RyaW5nIHdpbGwKKyAg
ICAgKiAgICBiZSByZXR1cm5lZCBmcm9tIGdldFRleHQoKQorICAgICAqLworICAgIFVDaGFyQ2hh
cmFjdGVySXRlcmF0b3IgKmZEQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSBk
YXRhIGZvciB0aGlzIEJyZWFrSXRlcmF0b3IgaW5zdGFuY2UKKyAgICAgKiBAaW50ZXJuYWwKKyAg
ICAgKi8KKyAgICBSQkJJRGF0YVdyYXBwZXIgICAgKmZEYXRhOworCisgICAgLyoqIEluZGV4IG9m
IHRoZSBSdWxlIHt0YWd9IHZhbHVlcyBmb3IgdGhlIG1vc3QgcmVjZW50IG1hdGNoLgorICAgICAq
ICBAaW50ZXJuYWwKKyAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZkxhc3RSdWxlU3Rh
dHVzSW5kZXg7CisKKyAgICAvKioKKyAgICAgKiBSdWxlIHRhZyB2YWx1ZSB2YWxpZCBmbGFnLgor
ICAgICAqIFNvbWUgaXRlcmF0b3Igb3BlcmF0aW9ucyBkb24ndCBpbnRyaW5zaWNhbGx5IHNldCB0
aGUgY29ycmVjdCB0YWcgdmFsdWUuCisgICAgICogVGhpcyBmbGFnIGxldHMgdXMgbGF6aWx5IGNv
bXB1dGUgdGhlIHZhbHVlIGlmIHdlIGFyZSBldmVyIGFza2VkIGZvciBpdC4KKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBVQm9vbCAgICAgICAgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhW
YWxpZDsKKworICAgIC8qKgorICAgICAqIENvdW50ZXIgZm9yIHRoZSBudW1iZXIgb2YgY2hhcmFj
dGVycyBlbmNvdW50ZXJlZCB3aXRoIHRoZSAiZGljdGlvbmFyeSIKKyAgICAgKiAgIGZsYWcgc2V0
LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICAgICAgZkRp
Y3Rpb25hcnlDaGFyQ291bnQ7CisKKyAgICAvKioKKyAgICAgKiBXaGVuIGEgcmFuZ2Ugb2YgY2hh
cmFjdGVycyBpcyBkaXZpZGVkIHVwIHVzaW5nIHRoZSBkaWN0aW9uYXJ5LCB0aGUgYnJlYWsKKyAg
ICAgKiBwb3NpdGlvbnMgdGhhdCBhcmUgZGlzY292ZXJlZCBhcmUgc3RvcmVkIGhlcmUsIHByZXZl
bnRpbmcgdXMgZnJvbSBoYXZpbmcKKyAgICAgKiB0byB1c2UgZWl0aGVyIHRoZSBkaWN0aW9uYXJ5
IG9yIHRoZSBzdGF0ZSB0YWJsZSBhZ2FpbiB1bnRpbCB0aGUgaXRlcmF0b3IKKyAgICAgKiBsZWF2
ZXMgdGhpcyByYW5nZSBvZiB0ZXh0LiBIYXMgdGhlIG1vc3QgaW1wYWN0IGZvciBsaW5lIGJyZWFr
aW5nLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QqICAgICAgICAgICAg
ZkNhY2hlZEJyZWFrUG9zaXRpb25zOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBl
bGVtZW50cyBpbiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAg
Ki8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZOdW1DYWNoZWRCcmVha1Bvc2l0aW9uczsKKwor
ICAgIC8qKgorICAgICAqIGlmIGZDYWNoZWRCcmVha1Bvc2l0aW9ucyBpcyBub3QgbnVsbCwgdGhp
cyBpbmRpY2F0ZXMgd2hpY2ggaXRlbSBpbiB0aGUKKyAgICAgKiBjYWNoZSB0aGUgY3VycmVudCBp
dGVyYXRpb24gcG9zaXRpb24gcmVmZXJzIHRvCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgaW50MzJfdCAgICAgICAgICAgICBmUG9zaXRpb25JbkNhY2hlOworICAgIAorICAgIC8qKgor
ICAgICAqCisgICAgICogSWYgcHJlc2VudCwgVVN0YWNrIG9mIExhbmd1YWdlQnJlYWtFbmdpbmUg
b2JqZWN0cyB0aGF0IG1pZ2h0IGhhbmRsZQorICAgICAqIGRpY3Rpb25hcnkgY2hhcmFjdGVycy4g
U2VhcmNoZWQgZnJvbSB0b3AgdG8gYm90dG9tIHRvIGZpbmQgYW4gb2JqZWN0IHRvCisgICAgICog
aGFuZGxlIGEgZ2l2ZW4gY2hhcmFjdGVyLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAg
IFVTdGFjayAgICAgICAgICAgICAgKmZMYW5ndWFnZUJyZWFrRW5naW5lczsKKyAgICAKKyAgICAv
KioKKyAgICAgKgorICAgICAqIElmIHByZXNlbnQsIHRoZSBzcGVjaWFsIExhbmd1YWdlQnJlYWtF
bmdpbmUgdXNlZCBmb3IgaGFuZGxpbmcKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgYXJlIGluIHRo
ZSBkaWN0aW9uYXJ5IHNldCwgYnV0IG5vdCBoYW5kbGVkIGJ5IGFueQorICAgICAqIExhbmd1Z2Fn
ZUJyZWFrRW5naW5lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVuaGFuZGxlZEVu
Z2luZSAgICAgKmZVbmhhbmRsZWRCcmVha0VuZ2luZTsKKyAgICAKKyAgICAvKioKKyAgICAgKgor
ICAgICAqIFRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvciwgb3IgLTEgaWYgaXQgaGFzIG5v
dCBiZWVuIHNldC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAg
ICAgICAgIGZCcmVha1R5cGU7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgLy89PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorICAgIC8vIGNvbnN0cnVjdG9ycworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworI2lmbmRlZiBV
X0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgdG8gYmUgdXNlZCBp
biB0aGUgY29uc3RydWN0b3IKKyAgICAgKiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFJCQklEYXRh
SGVhZGVyKiwgRURvbnRBZG9wdCwgVUVycm9yQ29kZSAmKTsKKyAgICAgKiB3aGljaCBkb2VzIG5v
dCBhZG9wdCB0aGUgbWVtb3J5IGluZGljYXRlZCBieSB0aGUgUkJCSURhdGFIZWFkZXIqCisgICAg
ICogcGFyYW1ldGVyLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgZW51
bSBFRG9udEFkb3B0IHsKKyAgICAgICAga0RvbnRBZG9wdAorICAgIH07CisKKyAgICAvKioKKyAg
ICAgKiBDb25zdHJ1Y3RvciBmcm9tIGEgZmxhdHRlbmVkIHNldCBvZiBSQkJJIGRhdGEgaW4gbWFs
bG9jZWQgbWVtb3J5LgorICAgICAqICAgICAgICAgICAgIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9y
cyBidWlsdCBmcm9tIGEgY3VzdG9tIHNldCBvZiBydWxlcworICAgICAqICAgICAgICAgICAgIGFy
ZSBjcmVhdGVkIHZpYSB0aGlzIGNvbnN0cnVjdG9yOyB0aGUgcnVsZXMgYXJlIGNvbXBpbGVkCisg
ICAgICogICAgICAgICAgICAgaW50byBtZW1vcnksIHRoZW4gdGhlIGJyZWFrIGl0ZXJhdG9yIGlz
IGNvbnN0cnVjdGVkIGhlcmUuCisgICAgICoKKyAgICAgKiAgICAgICAgICAgICBUaGUgYnJlYWsg
aXRlcmF0b3IgYWRvcHRzIHRoZSBtZW1vcnksIGFuZCB3aWxsCisgICAgICogICAgICAgICAgICAg
ZnJlZSBpdCB3aGVuIGRvbmUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgUnVsZUJh
c2VkQnJlYWtJdGVyYXRvcihSQkJJRGF0YUhlYWRlciogZGF0YSwgVUVycm9yQ29kZSAmc3RhdHVz
KTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZyb20gYSBmbGF0dGVuZWQgc2V0IG9m
IFJCQkkgZGF0YSBpbiBtZW1vcnkgd2hpY2ggbmVlZCBub3QKKyAgICAgKiAgICAgICAgICAgICBi
ZSBtYWxsb2NlZCAoZS5nLiBpdCBtYXkgYmUgYSBtZW1vcnktbWFwcGVkIGZpbGUsIGV0Yy4pLgor
ICAgICAqCisgICAgICogICAgICAgICAgICAgVGhpcyB2ZXJzaW9uIGRvZXMgbm90IGFkb3B0IHRo
ZSBtZW1vcnksIGFuZCBkb2VzIG5vdAorICAgICAqICAgICAgICAgICAgIGZyZWUgaXQgd2hlbiBk
b25lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3IoY29uc3QgUkJCSURhdGFIZWFkZXIqIGRhdGEsIGVudW0gRURvbnRBZG9wdCBkb250QWRvcHQs
IFVFcnJvckNvZGUgJnN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8K
KworCisgICAgZnJpZW5kIGNsYXNzIFJCQklSdWxlQnVpbGRlcjsKKyAgICAvKiogQGludGVybmFs
ICovCisgICAgZnJpZW5kIGNsYXNzIEJyZWFrSXRlcmF0b3I7CisKKworCitwdWJsaWM6CisKKyAg
ICAvKiogRGVmYXVsdCBjb25zdHJ1Y3Rvci4gIENyZWF0ZXMgYW4gZW1wdHkgc2hlbGwgb2YgYW4g
aXRlcmF0b3IsIHdpdGggbm8KKyAgICAgKiAgcnVsZXMgb3IgdGV4dCB0byBpdGVyYXRlIG92ZXIu
ICAgT2JqZWN0IGNhbiBzdWJzZXF1ZW50bHkgYmUgYXNzaWduZWQgdG8uCisgICAgICogIEBzdGFi
bGUgSUNVIDIuMgorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKTsKKworICAg
IC8qKgorICAgICAqIENvcHkgY29uc3RydWN0b3IuICBXaWxsIHByb2R1Y2UgYSBicmVhayBpdGVy
YXRvciB3aXRoIHRoZSBzYW1lIGJlaGF2aW9yLAorICAgICAqIGFuZCB3aGljaCBpdGVyYXRlcyBv
dmVyIHRoZSBzYW1lIHRleHQsIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0
aGF0IFRoZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHBhc3NlZCB0byBiZSBjb3BpZWQKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGNv
bnN0IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIHRoYXQpOworCisgICAgLyoqCisgICAgICogQ29u
c3RydWN0IGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEgc2V0IG9mIHJ1bGVzIHN1cHBs
aWVkIGFzIGEgc3RyaW5nLgorICAgICAqIEBwYXJhbSBydWxlcyBUaGUgYnJlYWsgcnVsZXMgdG8g
YmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gcGFyc2VFcnJvciAgSW4gdGhlIGV2ZW50IG9mIGEgc3lu
dGF4IGVycm9yIGluIHRoZSBydWxlcywgcHJvdmlkZXMgdGhlIGxvY2F0aW9uCisgICAgICogICAg
ICAgICAgICAgICAgICAgIHdpdGhpbiB0aGUgcnVsZXMgb2YgdGhlIHByb2JsZW0uCisgICAgICog
QHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkgZXJyb3JzIGVuY291bnRlcmVkLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Io
IGNvbnN0IFVuaWNvZGVTdHJpbmcgICAgJnJ1bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVUGFyc2VFcnJvciAgICAgICAgICAgJnBhcnNlRXJyb3IsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgICAgICAgICAmc3RhdHVzKTsKKworICAgIC8qKgor
ICAgICAqIENvbnRydWN0IGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEgc2V0IG9mIHBy
ZWNvbXBpbGVkIGJpbmFyeSBydWxlcy4KKyAgICAgKiBCaW5hcnkgcnVsZXMgYXJlIG9idGFpbmVk
IGZyb20gUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3I6OmdldEJpbmFyeVJ1bGVzKCkuCisgICAgICog
Q29uc3RydWN0aW9uIG9mIGEgYnJlYWsgaXRlcmF0b3IgaW4gdGhpcyB3YXkgaXMgc3Vic3RhbnRp
YWxseSBmYXN0ZXIgdGhhbgorICAgICAqIGNvbnN0dWN0aW9uIGZyb20gc291cmNlIHJ1bGVzLgor
ICAgICAqCisgICAgICogT3duZXJzaGlwIG9mIHRoZSBzdG9yYWdlIGNvbnRhaW5pbmcgdGhlIGNv
bXBpbGVkIHJ1bGVzIHJlbWFpbnMgd2l0aCB0aGUKKyAgICAgKiBjYWxsZXIgb2YgdGhpcyBmdW5j
dGlvbi4gIFRoZSBjb21waWxlZCBydWxlcyBtdXN0IG5vdCBiZSAgbW9kaWZpZWQgb3IgCisgICAg
ICogZGVsZXRlZCBkdXJpbmcgdGhlIGxpZmUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAq
CisgICAgICogVGhlIGNvbXBpbGVkIHJ1bGVzIGFyZSBub3QgY29tcGF0aWJsZSBhY3Jvc3MgZGlm
ZmVyZW50IG1ham9yIHZlcnNpb25zIG9mIElDVS4KKyAgICAgKiBUaGUgY29tcGlsZWQgcnVsZXMg
YXJlIGNvbWFwdGlibGUgb25seSBiZXR3ZWVuIG1hY2hpbmVzIHdpdGggdGhlIHNhbWUKKyAgICAg
KiBieXRlIG9yZGVyaW5nIChsaXR0bGUgb3IgYmlnIGVuZGlhbikgYW5kIHRoZSBzYW1lIGJhc2Ug
Y2hhcmFjdGVyIHNldCBmYW1pbHkKKyAgICAgKiAoQVNDSUkgb3IgRUJDRElDKS4KKyAgICAgKgor
ICAgICAqIEBzZWUgI2dldEJpbmFyeVJ1bGVzCisgICAgICogQHBhcmFtIGNvbXBpbGVkUnVsZXMg
QSBwb2ludGVyIHRvIHRoZSBjb21waWxlZCBicmVhayBydWxlcyB0byBiZSB1c2VkLgorICAgICAq
IEBwYXJhbSBydWxlTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIGNvbXBpbGVkIGJyZWFrIHJ1bGVz
LCBpbiBieXRlcy4gIFRoaXMKKyAgICAgKiAgIGNvcnJlc3BvbmRzIHRvIHRoZSBsZW5ndGggdmFs
dWUgcHJvZHVjZWQgYnkgZ2V0QmluYXJ5UnVsZXMoKS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIElu
Zm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQsIGluY2x1ZGluZyBpbnZhbGlkCisg
ICAgICogICBiaW5hcnkgcnVsZXMuCisgICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgICovCisg
ICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCB1aW50OF90ICpjb21waWxlZFJ1bGVzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgcnVsZUxlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgJnN0YXR1cyk7CisKKyAgICAv
KioKKyAgICAgKiBUaGlzIGNvbnN0cnVjdG9yIHVzZXMgdGhlIHVkYXRhIGludGVyZmFjZSB0byBj
cmVhdGUgYSBCcmVha0l0ZXJhdG9yCisgICAgICogd2hvc2UgaW50ZXJuYWwgdGFibGVzIGxpdmUg
aW4gYSBtZW1vcnktbWFwcGVkIGZpbGUuICAiaW1hZ2UiIGlzIGFuCisgICAgICogSUNVIFVEYXRh
TWVtb3J5IGhhbmRsZSBmb3IgdGhlIHByZS1jb21waWxlZCBicmVhayBpdGVyYXRvciB0YWJsZXMu
CisgICAgICogQHBhcmFtIGltYWdlIGhhbmRsZSB0byB0aGUgbWVtb3J5IGltYWdlIGZvciB0aGUg
YnJlYWsgaXRlcmF0b3IgZGF0YS4KKyAgICAgKiAgICAgICAgT3duZXJzaGlwIG9mIHRoZSBVRGF0
YU1lbW9yeSBoYW5kbGUgcGFzc2VzIHRvIHRoZSBCcmVhayBJdGVyYXRvciwKKyAgICAgKiAgICAg
ICAgd2hpY2ggd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgY2xvc2luZyBpdCB3aGVuIGl0IGlzIG5v
IGxvbmdlciBuZWVkZWQuCisgICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkg
ZXJyb3JzIGVuY291bnRlcmVkLgorICAgICAqIEBzZWUgdWRhdGFfb3BlbgorICAgICAqIEBzZWUg
I2dldEJpbmFyeVJ1bGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgUnVs
ZUJhc2VkQnJlYWtJdGVyYXRvcihVRGF0YU1lbW9yeSogaW1hZ2UsIFVFcnJvckNvZGUgJnN0YXR1
cyk7CisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgflJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKTsKKworICAg
IC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICBTZXRzIHRoaXMgaXRlcmF0b3IgdG8g
aGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwKKyAgICAgKiBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBzYW1l
IHRleHQsIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBSdWxl
QmFzZWRCcmVha0l0ZXJ0b3IgcGFzc2VkIGluCisgICAgICogQHJldHVybiB0aGUgbmV3bHkgY3Jl
YXRlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIG9wZXJhdG9yPShjb25zdCBSdWxlQmFz
ZWRCcmVha0l0ZXJhdG9yJiB0aGF0KTsKKworICAgIC8qKgorICAgICAqIEVxdWFsaXR5IG9wZXJh
dG9yLiAgUmV0dXJucyBUUlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG9mIHRoZQorICAg
ICAqIHNhbWUgY2xhc3MsIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsIGFuZCBpdGVyYXRlIG92ZXIg
dGhlIHNhbWUgdGV4dC4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQnJlYWtJdGVyYXRvciB0byBi
ZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgYm90aCBCcmVh
a0l0ZXJhdG9ycyBhcmUgb2YgdGhlCisgICAgICogc2FtZSBjbGFzcywgaGF2ZSB0aGUgc2FtZSBi
ZWhhdmlvciwgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAqICBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29uc3QgQnJl
YWtJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBOb3QtZXF1YWwgb3Bl
cmF0b3IuICBJZiBvcGVyYXRvcj09IHJldHVybnMgVFJVRSwgdGhpcyByZXR1cm5zIEZBTFNFLAor
ICAgICAqIGFuZCB2aWNlIHZlcnNhLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBCcmVha0l0ZXJh
dG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5CisgICAgICogQHJldHVybiBUUlVFIGlm
IGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG5vdCBzYW1lLgorICAgICAqICBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHRo
YXQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVk
IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd2l0aCB0aGUgc2FtZQorICAgICAqIGJlaGF2aW9yLCBh
bmQgaXRlcmF0aW5nIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhpcyBvbmUuCisgICAgICogRGlm
ZmVycyBmcm9tIHRoZSBjb3B5IGNvbnN0cnVjdG9yIGluIHRoYXQgaXQgaXMgcG9seW1vcnBoaWMs
IGFuZAorICAgICAqIHdpbGwgY29ycmVjdGx5IGNsb25lIChjb3B5KSBhIGRlcml2ZWQgY2xhc3Mu
CisgICAgICogY2xvbmUoKSBpcyB0aHJlYWQgc2FmZS4gIE11bHRpcGxlIHRocmVhZHMgbWF5IHNp
bXVsdGFlbmVvdXNseQorICAgICAqIGNsb25lIHRoZSBzYW1lIHNvdXJjZSBicmVhayBpdGVyYXRv
ci4KKyAgICAgKiBAcmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJlYWtJdGVy
YXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJ
dGVyYXRvciogY2xvbmUoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENvbXB1dGUgYSBoYXNo
IGNvZGUgZm9yIHRoaXMgQnJlYWtJdGVyYXRvcgorICAgICAqIEByZXR1cm4gQSBoYXNoIGNvZGUK
KyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGhh
c2hDb2RlKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZGVzY3Jp
cHRpb24gdXNlZCB0byBjcmVhdGUgdGhpcyBpdGVyYXRvcgorICAgICAqIEByZXR1cm4gdGhlIGRl
c2NyaXB0aW9uIHVzZWQgdG8gY3JlYXRlIHRoaXMgaXRlcmF0b3IKKyAgICAgKiAgQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBjb25zdCBVbmljb2RlU3RyaW5nJiBnZXRSdWxl
cyh2b2lkKSBjb25zdDsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBCcmVha0l0ZXJh
dG9yIG92ZXJyaWRlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIDxw
PgorICAgICAqIFJldHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcg
YW5hbHl6ZWQuCisgICAgICogVGhlIHJldHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBpcyBvd25l
ZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IsIGFuZCBtdXN0CisgICAgICogbm90IGJlIGRlbGV0ZWQg
YnkgdGhlIGNhbGxlci4gIFJlcGVhdGVkIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gbWF5CisgICAg
ICogcmV0dXJuIHRoZSBzYW1lIENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIDwvcD4KKyAgICAg
KiA8cD4KKyAgICAgKiBUaGUgcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIG11c3Qgbm90IGJl
IHVzZWQgY29uY3VycmVudGx5IHdpdGgKKyAgICAgKiB0aGUgYnJlYWsgaXRlcmF0b3IuICBJZiBj
b25jdXJyZW50IG9wZXJhdGlvbiBpcyBuZWVkZWQsIGNsb25lIHRoZQorICAgICAqIHJldHVybmVk
IGNoYXJhY3RlciBpdGVyYXRvciBmaXJzdCBhbmQgb3BlcmF0ZSBvbiB0aGUgY2xvbmUuCisgICAg
ICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFdoZW4gdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9w
ZXJhdGluZyBvbiB0ZXh0IHN1cHBsaWVkIHZpYSBhIFVUZXh0LAorICAgICAqIHRoaXMgZnVuY3Rp
b24gd2lsbCBmYWlsLiAgTGFja2luZyBhbnkgd2F5IHRvIHNpZ25hbCBmYWlsdXJlcywgaXQKKyAg
ICAgKiByZXR1cm5zIGFuIENoYXJhY3Rlckl0ZXJhdG9yIGNvbnRhaW5pbmcgbm8gdGV4dC4KKyAg
ICAgKiBUaGUgZnVuY3Rpb24gZ2V0VVRleHQoKSBwcm92aWRlcyBzaW1pbGFyIGZ1bmN0aW9uYWxp
dHksCisgICAgICogaXMgcmVsaWFibGUsIGFuZCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICAgKiA8
L3A+CisgICAgICoKKyAgICAgKiBUT0RPOiAgZGVwcmVjYXRlIHRoaXMgZnVuY3Rpb24/CisgICAg
ICoKKyAgICAgKiBAcmV0dXJuIEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6
ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCAgQ2hhcmFj
dGVySXRlcmF0b3ImIGdldFRleHQodm9pZCkgY29uc3Q7CisKKworICAgIC8qKgorICAgICAgKiAg
R2V0IGEgVVRleHQgZm9yIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAgKiAgVGhlIHJl
dHVybmVkIFVUZXh0IGlzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgVVRleHQgdXNlZCBpbnRlcm5h
bGx5CisgICAgICAqICBieSB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24uICBJdCBj
YW4gc2FmZWx5IGJlIHVzZWQgdG8KKyAgICAgICogIGFjY2VzcyB0aGUgdGV4dCB3aXRob3V0IGlt
cGFjdGluZyBhbnkgYnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucywKKyAgICAgICogIGJ1dCB0aGUg
dW5kZXJseWluZyB0ZXh0IGl0c2VsZiBtdXN0IG5vdCBiZSBhbHRlcmVkLgorICAgICAgKgorICAg
ICAgKiBAcGFyYW0gZmlsbEluIEEgVVRleHQgdG8gYmUgZmlsbGVkIGluLiAgSWYgTlVMTCwgYSBu
ZXcgVVRleHQgd2lsbCBiZQorICAgICAgKiAgICAgICAgICAgYWxsb2NhdGVkIHRvIGhvbGQgdGhl
IHJlc3VsdC4KKyAgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMu
CisgICAgICAqIEByZXR1cm4gICBUaGUgY3VycmVudCBVVGV4dCBmb3IgdGhpcyBicmVhayBpdGVy
YXRvci4gIElmIGFuIGlucHV0CisgICAgICAqICAgICAgICAgICBVVGV4dCB3YXMgcHJvdmlkZWQs
IGl0IHdpbGwgYWx3YXlzIGJlIHJldHVybmVkLgorICAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAg
ICAgICovCisgICAgIHZpcnR1YWwgVVRleHQgKmdldFVUZXh0KFVUZXh0ICpmaWxsSW4sIFVFcnJv
ckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9y
IHRvIGFuYWx5emUgYSBuZXcgcGllY2Ugb2YgdGV4dC4gIFRoaXMgZnVuY3Rpb24gcmVzZXRzCisg
ICAgICogdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2Yg
dGhlIHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgQW4gaXRlcmF0b3Igb3ZlciB0aGUgdGV4
dCB0byBhbmFseXplLiAgVGhlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiB0YWtlcyBvd25lcnNoaXAg
b2YgdGhlIGNoYXJhY3RlciBpdGVyYXRvci4gIFRoZSBjYWxsZXIgTVVTVCBOT1QgZGVsZXRlIGl0
IQorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgYWRv
cHRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKiBuZXdUZXh0KTsKKworICAgIC8qKgorICAgICAqIFNl
dCB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhpcyBmdW5j
dGlvbiByZXNldHMKKyAgICAgKiB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhl
IGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUgdGV4dCB0
byBhbmFseXplLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IHZvaWQgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKworICAgIC8qKgor
ICAgICAqIFJlc2V0IHRoZSBicmVhayBpdGVyYXRvciB0byBvcGVyYXRlIG92ZXIgdGhlIHRleHQg
cmVwcmVzZW50ZWQgYnkKKyAgICAgKiB0aGUgVVRleHQuICBUaGUgaXRlcmF0b3IgcG9zaXRpb24g
aXMgcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtYWtl
cyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIHN1cHBsaWVkIFVUZXh0LiAgVGhpcyBtZWFucworICAg
ICAqIHRoYXQgdGhlIGNhbGxlciBpcyBmcmVlIHRvIGltbWVkaWF0ZWx5IGNsb3NlIG9yIG90aGVy
d2lzZSByZXVzZSB0aGUKKyAgICAgKiBVdGV4dCB0aGF0IHdhcyBwYXNzZWQgYXMgYSBwYXJhbWV0
ZXIsIGJ1dCB0aGF0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmCisgICAgICogbXVzdCBub3Qg
YmUgYWx0ZXJlZCB3aGlsZSBiZWluZyByZWZlcmVuY2VkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4K
KyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0ICAgIFRoZSBVVGV4dCB1c2VkIHRvIGNoYW5nZSB0
aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzICBSZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMu
CisgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBzZXRU
ZXh0KFVUZXh0ICp0ZXh0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICog
U2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0
aGUgdGV4dCwgcG9zaXRpb24gemVyby4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZzZXQgb2YgdGhl
IGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgemVyby4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGZpcnN0KHZvaWQpOworCisgICAgLyoqCisgICAg
ICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGVuZCBvZiB0aGUg
dGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSB0ZXh0J3MgcGFzdC10aGUtZW5kIG9mZnNldC4KKyAg
ICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGxhc3Qo
dm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgZWl0aGVyIGZv
cndhcmQgb3IgYmFja3dhcmQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc3RlcHMuCisgICAgICog
TmVnYXRpdmUgdmFsdWVzIG1vdmUgYmFja3dhcmQsIGFuZCBwb3NpdGl2ZSB2YWx1ZXMgbW92ZSBm
b3J3YXJkLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gcmVwZWF0ZWRseSBjYWxsaW5n
IG5leHQoKSBvciBwcmV2aW91cygpLgorICAgICAqIEBwYXJhbSBuIFRoZSBudW1iZXIgb2Ygc3Rl
cHMgdG8gbW92ZS4gIFRoZSBzaWduIGluZGljYXRlcyB0aGUgZGlyZWN0aW9uCisgICAgICogKG5l
Z2F0aXZlIGlzIGJhY2t3YXJkcywgYW5kIHBvc2l0aXZlIGlzIGZvcndhcmRzKS4KKyAgICAgKiBA
cmV0dXJuIFRoZSBjaGFyYWN0ZXIgb2Zmc2V0IG9mIHRoZSBib3VuZGFyeSBwb3NpdGlvbiBuIGJv
dW5kYXJpZXMgYXdheSBmcm9tCisgICAgICogdGhlIGN1cnJlbnQgb25lLgorICAgICAqICBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dChpbnQzMl90IG4p
OworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBuZXh0IGJv
dW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJz
dCBib3VuZGFyeSBhZnRlciB0aGlzIG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBN
b3ZlcyB0aGUgaXRlcmF0b3IgYmFja3dhcmRzLCB0byB0aGUgbGFzdCBib3VuZGFyeSBwcmVjZWRp
bmcgdGhpcyBvbmUuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91
bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoaXMgb25lLgorICAgICAqICBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJldmlvdXModm9pZCk7CisKKyAgICAv
KioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgYm91bmRh
cnkgcG9zaXRpb24gZm9sbG93aW5nCisgICAgICogdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAg
ICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiBmcm9tIHdoaWNoIHRvIGJlZ2luIHNlYXJj
aGluZyBmb3IgYSBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBv
ZiB0aGUgZmlyc3QgYnJlYWsgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmb2xsb3dpbmcoaW50
MzJfdCBvZmZzZXQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVm
ZXIgdG8gdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlIHRoZQorICAgICAqIHNwZWNp
ZmllZCBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiB0byBiZWdp
biBzZWFyY2hpbmcgZm9yIGEgYnJlYWsgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlv
biBvZiB0aGUgbGFzdCBib3VuZGFyeSBiZWZvcmUgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uLgorICAg
ICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJlY2Vk
aW5nKGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0
aGUgc3BlY2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4gIEFzIGEgc2lkZQor
ICAgICAqIGVmZmVjdCwgbGVhdmVzIHRoZSBpdGVyYXRvciBwb2ludGluZyB0byB0aGUgZmlyc3Qg
Ym91bmRhcnkgcG9zaXRpb24gYXQKKyAgICAgKiBvciBhZnRlciAib2Zmc2V0Ii4KKyAgICAgKiBA
cGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBUcnVlIGlm
ICJvZmZzZXQiIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNCb3VuZGFyeShpbnQzMl90IG9mZnNldCk7
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlv
bi4KKyAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgY3VycmVudCh2
b2lkKSBjb25zdDsKKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGF0dXMgdGFnIGZy
b20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAg
ICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uICBGb3IgYnJlYWsgcnVsZXMgdGhhdCBkbyBub3Qg
c3BlY2lmeSBhCisgICAgICogc3RhdHVzLCBhIGRlZmF1bHQgdmFsdWUgb2YgMCBpcyByZXR1cm5l
ZC4gIElmIG1vcmUgdGhhbiBvbmUgYnJlYWsgcnVsZQorICAgICAqIHdvdWxkIGNhdXNlIGEgYm91
bmRhcnkgdG8gYmUgbG9jYXRlZCBhdCBzb21lIHBvc2l0aW9uIGluIHRoZSB0ZXh0LAorICAgICAq
IHRoZSBudW1lcmljYWxseSBsYXJnZXN0IG9mIHRoZSBhcHBsaWNhYmxlIHN0YXR1cyB2YWx1ZXMg
aXMgcmV0dXJuZWQuCisgICAgICogPHA+CisgICAgICogT2YgdGhlIHN0YW5kYXJkIHR5cGVzIG9m
IElDVSBicmVhayBpdGVyYXRvcnMsIG9ubHkgd29yZCBicmVhayBhbmQKKyAgICAgKiBsaW5lIGJy
ZWFrIHByb3ZpZGUgc3RhdHVzIHZhbHVlcy4gIFRoZSB2YWx1ZXMgYXJlIGRlZmluZWQgaW4KKyAg
ICAgKiB0aGUgaGVhZGVyIGZpbGUgdWJyay5oLiAgRm9yIFdvcmQgYnJlYWtzLCB0aGUgc3RhdHVz
IGFsbG93cyBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuIHdvcmRzCisgICAgICogdGhhdCBjb250YWlu
IGFscGhhYmV0aWMgbGV0dGVycywgIndvcmRzIiB0aGF0IGFwcGVhciB0byBiZSBudW1iZXJzLAor
ICAgICAqIHB1bmN0dWF0aW9uIGFuZCBzcGFjZXMsIHdvcmRzIGNvbnRhaW5pbmcgaWRlb2dyYXBo
aWMgY2hhcmFjdGVycywgYW5kCisgICAgICogbW9yZS4gIEZvciBMaW5lIEJyZWFrLCB0aGUgc3Rh
dHVzIGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiBoYXJkIChtYW5kYXRvcnkpIGJyZWFrcworICAgICAq
IGFuZCBzb2Z0IChwb3RlbnRpYWwpIGJyZWFrIHBvc2l0aW9ucy4KKyAgICAgKiA8cD4KKyAgICAg
KiA8Y29kZT5nZXRSdWxlU3RhdHVzKCk8L2NvZGU+IGNhbiBiZSBjYWxsZWQgYWZ0ZXIgb2J0YWlu
aW5nIGEgYm91bmRhcnkKKyAgICAgKiBwb3NpdGlvbiBmcm9tIDxjb2RlPm5leHQoKTwvY29kZT4s
IDxjb2RlPnByZXZpb3VzKCk8L2NvZGU+LCBvcgorICAgICAqIGFueSBvdGhlciBicmVhayBpdGVy
YXRvciBmdW5jdGlvbnMgdGhhdCByZXR1cm5zIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICog
PHA+CisgICAgICogV2hlbiBjcmVhdGluZyBjdXN0b20gYnJlYWsgcnVsZXMsIG9uZSBpcyBmcmVl
IHRvIGRlZmluZSB3aGF0ZXZlcgorICAgICAqIHN0YXR1cyB2YWx1ZXMgbWF5IGJlIGNvbnZlbmll
bnQgZm9yIHRoZSBhcHBsaWNhdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlOiB0aGlzIGZ1
bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZS4gIEl0IHNob3VsZCBub3QgaGF2ZSBiZWVuCisgICAg
ICogICAgICAgZGVjbGFyZWQgY29uc3QsIGFuZCB0aGUgY29uc3QgcmVtYWlucyBvbmx5IGZvciBj
b21wYXRpYmlsaXR5CisgICAgICogICAgICAgcmVhc29ucy4gIChUaGUgZnVuY3Rpb24gaXMgbG9n
aWNhbGx5IGNvbnN0LCBidXQgbm90IGJpdC13aXNlIGNvbnN0KS4KKyAgICAgKiA8cD4KKyAgICAg
KiBAcmV0dXJuIHRoZSBzdGF0dXMgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQg
dGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAg
KgorICAgICAqIEBzZWUgVVdvcmRCcmVhaworICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAq
LworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3RhdHVzKCkgY29uc3Q7CisKKyAgIC8qKgor
ICAgICogR2V0IHRoZSBzdGF0dXMgKHRhZykgdmFsdWVzIGZyb20gdGhlIGJyZWFrIHJ1bGUocykg
dGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0CisgICAgKiByZWNlbnRseSByZXR1cm5lZCBicmVhayBw
b3NpdGlvbi4KKyAgICAqIDxwPgorICAgICogVGhlIHJldHVybmVkIHN0YXR1cyB2YWx1ZShzKSBh
cmUgc3RvcmVkIGludG8gYW4gYXJyYXkgcHJvdmlkZWQgYnkgdGhlIGNhbGxlci4KKyAgICAqIFRo
ZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiBzb3J0ZWQgKGFzY2VuZGluZykgb3JkZXIuCisgICAgKiBJ
ZiB0aGUgY2FwYWNpdHkgb2YgdGhlIG91dHB1dCBhcnJheSBpcyBpbnN1ZmZpY2llbnQgdG8gaG9s
ZCB0aGUgZGF0YSwKKyAgICAqICB0aGUgb3V0cHV0IHdpbGwgYmUgdHJ1bmNhdGVkIHRvIHRoZSBh
dmFpbGFibGUgbGVuZ3RoLCBhbmQgYQorICAgICogIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SIHdp
bGwgYmUgc2lnbmFsZWQuCisgICAgKgorICAgICogQHBhcmFtIGZpbGxJblZlYyBhbiBhcnJheSB0
byBiZSBmaWxsZWQgaW4gd2l0aCB0aGUgc3RhdHVzIHZhbHVlcy4KKyAgICAqIEBwYXJhbSBjYXBh
Y2l0eSAgdGhlIGxlbmd0aCBvZiB0aGUgc3VwcGxpZWQgdmVjdG9yLiAgQSBsZW5ndGggb2YgemVy
byBjYXVzZXMKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIGZ1bmN0aW9uIHRvIHJldHVybiB0
aGUgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMsIGluIHRoZQorICAgICogICAgICAgICAgICAgICAg
ICBub3JtYWwgd2F5LCB3aXRob3V0IGF0dGVtdHBpbmcgdG8gc3RvcmUgYW55IHZhbHVlcy4KKyAg
ICAqIEBwYXJhbSBzdGF0dXMgICAgcmVjZWl2ZXMgZXJyb3IgY29kZXMuCisgICAgKiBAcmV0dXJu
ICAgICAgICAgIFRoZSBudW1iZXIgb2YgcnVsZSBzdGF0dXMgdmFsdWVzIGZyb20gcnVsZXMgdGhh
dCBkZXRlcm1pbmVkCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJlY2VudCBib3Vu
ZGFyeSByZXR1cm5lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgKiAgICAgICAgICAgICAg
ICAgIEluIHRoZSBldmVudCBvZiBhIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SLCB0aGUgcmV0dXJu
IHZhbHVlCisgICAgKiAgICAgICAgICAgICAgICAgIGlzIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3Rh
dHVzIHZhbHVlcyB0aGF0IHdlcmUgYXZhaWxhYmxlLAorICAgICogICAgICAgICAgICAgICAgICBu
b3QgdGhlIHJlZHVjZWQgbnVtYmVyIHRoYXQgd2VyZSBhY3R1YWxseSByZXR1cm5lZC4KKyAgICAq
IEBzZWUgZ2V0UnVsZVN0YXR1cworICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1c1ZlYyhpbnQzMl90ICpmaWxsSW5WZWMsIGludDMy
X3QgY2FwYWNpdHksIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIGEgdW5pcXVlIGNsYXNzIElEIFBPTFlNT1JQSElDQUxMWS4gIFB1cmUgdmlydHVhbCBvdmVy
cmlkZS4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB0byBpbXBsZW1lbnQgYSBzaW1wbGUgdmVyc2lv
biBvZiBSVFRJLCBzaW5jZSBub3QgYWxsCisgICAgICogQysrIGNvbXBpbGVycyBzdXBwb3J0IGdl
bnVpbmUgUlRUSS4gIFBvbHltb3JwaGljIG9wZXJhdG9yPT0oKSBhbmQKKyAgICAgKiBjbG9uZSgp
IG1ldGhvZHMgY2FsbCB0aGlzIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICAg
ICAgVGhlIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4gQWxsIG9iamVjdHMgb2YgYQorICAgICAq
ICAgICAgICAgICAgICAgICAgZ2l2ZW4gY2xhc3MgaGF2ZSB0aGUgc2FtZSBjbGFzcyBJRC4gIE9i
amVjdHMgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgIG90aGVyIGNsYXNzZXMgaGF2ZSBkaWZm
ZXJlbnQgY2xhc3MgSURzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3Q7CisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm5zIHRoZSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcy4gIFRoaXMgaXMgdXNl
ZnVsIG9ubHkgZm9yCisgICAgICogY29tcGFyaW5nIHRvIGEgcmV0dXJuIHZhbHVlIGZyb20gZ2V0
RHluYW1pY0NsYXNzSUQoKS4gIEZvciBleGFtcGxlOgorICAgICAqCisgICAgICogICAgICBCYXNl
KiBwb2x5bW9ycGhpY19wb2ludGVyID0gY3JlYXRlUG9seW1vcnBoaWNPYmplY3QoKTsKKyAgICAg
KiAgICAgIGlmIChwb2x5bW9ycGhpY19wb2ludGVyLT5nZXREeW5hbWljQ2xhc3NJRCgpID09Cisg
ICAgICogICAgICAgICAgRGVyaXZlZDo6Z2V0U3RhdGljQ2xhc3NJRCgpKSAuLi4KKyAgICAgKgor
ICAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIGNsYXNzIElEIGZvciBhbGwgb2JqZWN0cyBvZiB0
aGlzIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBV
Q2xhc3NJRCBVX0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworICAgIC8qKgorICAg
ICAqIERlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0eS4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAg
KgorICAgICAqIENyZWF0ZSBhIGNsb25lIChjb3B5KSBvZiB0aGlzIGJyZWFrIGl0ZXJhdG9yIGlu
IG1lbW9yeSBwcm92aWRlZAorICAgICAqICBieSB0aGUgY2FsbGVyLiAgVGhlIGlkZWEgaXMgdG8g
aW5jcmVhc2UgcGVyZm9ybWFuY2UgYnkgYXZvaWRpbmcKKyAgICAgKiAgYSBzdG9yYWdlIGFsbG9j
YXRpb24uICBVc2Ugb2YgdGhpcyBmdW5jdG9pbiBpcyBOT1QgUkVDT01NRU5ERUQuCisgICAgICog
IFBlcmZvcm1hbmNlIGdhaW5zIGFyZSBtaW5pbWFsLCBhbmQgY29ycmVjdCBidWZmZXIgbWFuYWdl
bWVudCBpcworICAgICAqICB0cmlja3kuICBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisg
ICAgICogQHBhcmFtIHN0YWNrQnVmZmVyICBUaGUgcG9pbnRlciB0byB0aGUgbWVtb3J5IGludG8g
d2hpY2ggdGhlIGNsb25lZCBvYmplY3QKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZCBiZSBwbGFjZWQuICBJZiBOVUxMLCAgYWxsb2NhdGUgaGVhcCBtZW1vcnkKKyAgICAgKiAgICAg
ICAgICAgICAgICAgICAgIGZvciB0aGUgY2xvbmVkIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gQnVm
ZmVyU2l6ZSAgIFRoZSBzaXplIG9mIHRoZSBidWZmZXIuICBJZiB6ZXJvLCByZXR1cm4gdGhlIHJl
cXVpcmVkCisgICAgICogICAgICAgICAgICAgICAgICAgICBidWZmZXIgc2l6ZSwgYnV0IGRvIG5v
dCBjbG9uZSB0aGUgb2JqZWN0LiAgSWYgdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICBz
aXplIHdhcyB0b28gc21hbGwgKGJ1dCBub3QgemVybyksIGFsbG9jYXRlIGhlYXAKKyAgICAgKiAg
ICAgICAgICAgICAgICAgICAgIHN0b3JhZ2UgZm9yIHRoZSBjbG9uZWQgb2JqZWN0LgorICAgICAq
CisgICAgICogQHBhcmFtIHN0YXR1cyAgICAgICBFcnJvciBzdGF0dXMuICBVX1NBRkVDTE9ORV9B
TExPQ0FURURfV0FSTklORyB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgICAgICAgICByZXR1
cm5lZCBpZiB0aGUgdGhlIHByb3ZpZGVkIGJ1ZmZlciB3YXMgdG9vIHNtYWxsLCBhbmQKKyAgICAg
KiAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9uZSB3YXMgdGhlcmVmb3JlIHB1dCBvbiB0aGUg
aGVhcC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIFBvaW50ZXIgdG8gdGhlIGNsb25lIG9iamVj
dC4gIFRoaXMgbWF5IGRpZmZlciBmcm9tIHRoZSBzdGFja0J1ZmZlcgorICAgICAqICAgICAgICAg
IGFkZHJlc3MgaWYgdGhlIGJ5dGUgYWxpZ25tZW50IG9mIHRoZSBzdGFjayBidWZmZXIgd2FzIG5v
dCBzdWl0YWJsZQorICAgICAqICAgICAgICAgIG9yIGlmIHRoZSBzdGFja0J1ZmZlciB3YXMgdG9v
IHNtYWxsIHRvIGhvbGQgdGhlIGNsb25lLgorICAgICAqIEBkZXByZWNhdGVkIElDVSA1Mi4gVXNl
IGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IgKiAg
Y3JlYXRlQnVmZmVyQ2xvbmUodm9pZCAqc3RhY2tCdWZmZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgJkJ1ZmZlclNpemUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgJnN0YXR1
cyk7CisKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmluYXJ5IGZvcm0gb2YgY29tcGls
ZWQgYnJlYWsgcnVsZXMsCisgICAgICogd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCB0byBjcmVhdGUg
YSBuZXcgYnJlYWsgaXRlcmF0b3IgYXQgc29tZQorICAgICAqIHRpbWUgaW4gdGhlIGZ1dHVyZS4g
IENyZWF0aW5nIGEgYnJlYWsgaXRlcmF0b3IgZnJvbSBwcmUtY29tcGlsZWQgcnVsZXMKKyAgICAg
KiBpcyBtdWNoIGZhc3RlciB0aGFuIGJ1aWxkaW5nIG9uZSBmcm9tIHRoZSBzb3VyY2UgZm9ybSBv
ZiB0aGUKKyAgICAgKiBicmVhayBydWxlcy4KKyAgICAgKgorICAgICAqIFRoZSBiaW5hcnkgZGF0
YSBjYW4gb25seSBiZSB1c2VkIHdpdGggdGhlIHNhbWUgdmVyc2lvbiBvZiBJQ1UKKyAgICAgKiAg
YW5kIG9uIHRoZSBzYW1lIHBsYXRmb3JtIHR5cGUgKHByb2Nlc3NvciBlbmRpYW4tbmVzcykKKyAg
ICAgKgorICAgICAqIEBwYXJhbSBsZW5ndGggUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBiaW5h
cnkgZGF0YS4gIChPdXQgcGFyYW10ZXIuKQorICAgICAqCisgICAgICogQHJldHVybiAgIEEgcG9p
bnRlciB0byB0aGUgYmluYXJ5IChjb21waWxlZCkgcnVsZSBkYXRhLiAgVGhlIHN0b3JhZ2UKKyAg
ICAgKiAgICAgICAgICAgYmVsb25ncyB0byB0aGUgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3Igb2Jq
ZWN0LCBub3QgdGhlCisgICAgICogICAgICAgICAgIGNhbGxlciwgYW5kIG11c3Qgbm90IGJlIG1v
ZGlmaWVkIG9yIGRlbGV0ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgICovCisgICAg
dmlydHVhbCBjb25zdCB1aW50OF90ICpnZXRCaW5hcnlSdWxlcyh1aW50MzJfdCAmbGVuZ3RoKTsK
KworICAgIC8qKgorICAgICAqICBTZXQgdGhlIHN1YmplY3QgdGV4dCBzdHJpbmcgdXBvbiB3aGlj
aCB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nCisgICAgICogIHdpdGhvdXQgY2hhbmdp
bmcgYW55IG90aGVyIGFzcGVjdCBvZiB0aGUgbWF0Y2hpbmcgc3RhdGUuCisgICAgICogIFRoZSBu
ZXcgYW5kIHByZXZpb3VzIHRleHQgc3RyaW5ncyBtdXN0IGhhdmUgdGhlIHNhbWUgY29udGVudC4K
KyAgICAgKgorICAgICAqICBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2UgaW4gZW52
aXJvbm1lbnRzIHdoZXJlIElDVSBpcyBvcGVyYXRpbmcgb24KKyAgICAgKiAgc3RyaW5ncyB0aGF0
IG1heSBtb3ZlIGFyb3VuZCBpbiBtZW1vcnkuICBJdCBwcm92aWRlcyBhIG1lY2hhbmlzbSBmb3Ig
bm90aWZ5aW5nCisgICAgICogIElDVSB0aGF0IHRoZSBzdHJpbmcgaGFzIGJlZW4gcmVsb2NhdGVk
LCBhbmQgcHJvdmlkaW5nIGEgbmV3IFVUZXh0IHRvIGFjY2VzcyB0aGUKKyAgICAgKiAgc3RyaW5n
IGluIGl0cyBuZXcgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiAgTm90ZSB0aGF0IHRoZSBicmVh
ayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbiBuZXZlciBjb3BpZXMgdGhlIHVuZGVybHlpbmcgdGV4
dAorICAgICAqICBvZiBhIHN0cmluZyBiZWluZyBwcm9jZXNzZWQsIGJ1dCBhbHdheXMgb3BlcmF0
ZXMgZGlyZWN0bHkgb24gdGhlIG9yaWdpbmFsIHRleHQKKyAgICAgKiAgcHJvdmlkZWQgYnkgdGhl
IHVzZXIuIFJlZnJlc2hpbmcgc2ltcGx5IGRyb3BzIHRoZSByZWZlcmVuY2VzIHRvIHRoZSBvbGQg
dGV4dAorICAgICAqICBhbmQgcmVwbGFjZXMgdGhlbSB3aXRoIHJlZmVyZW5jZXMgdG8gdGhlIG5l
dy4KKyAgICAgKgorICAgICAqICBDYXV0aW9uOiAgdGhpcyBmdW5jdGlvbiBpcyBub3JtYWxseSB1
c2VkIG9ubHkgYnkgdmVyeSBzcGVjaWFsaXplZCwKKyAgICAgKiAgc3lzdGVtLWxldmVsIGNvZGUu
ICBPbmUgZXhhbXBsZSB1c2UgY2FzZSBpcyB3aXRoIGdhcmJhZ2UgY29sbGVjdGlvbiB0aGF0IG1v
dmVzCisgICAgICogIHRoZSB0ZXh0IGluIG1lbW9yeS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBp
bnB1dCAgICAgIFRoZSBuZXcgKG1vdmVkKSB0ZXh0IHN0cmluZy4KKyAgICAgKiBAcGFyYW0gc3Rh
dHVzICAgICBSZWNlaXZlcyBlcnJvcnMgZGV0ZWN0ZWQgYnkgdGhpcyBmdW5jdGlvbi4KKyAgICAg
KiBAcmV0dXJuICAgICAgICAgICAqdGhpcworICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgNDkK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgJnJlZnJlc2hJbnB1
dFRleHQoVVRleHQgKmlucHV0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisKK3Byb3RlY3RlZDoK
KyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gaW1wbGVtZW50YXRpb24KKyAgICAvLz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisgICAgLyoqCisgICAgICogRHVtcHMgY2FjaGVzIGFuZCBwZXJmb3JtcyBvdGhl
ciBhY3Rpb25zIGFzc29jaWF0ZWQgd2l0aCBhIGNvbXBsZXRlIGNoYW5nZQorICAgICAqIGluIHRl
eHQgb3IgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAg
IHZpcnR1YWwgdm9pZCByZXNldCh2b2lkKTsKKworI2lmIDAKKyAgICAvKioKKyAgICAgICogUmV0
dXJuIHRydWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBmb3IgdGhpcyBjaGFyCisgICAgICAqIGlu
ZGljYXRlcyB0aGF0IGl0IGlzIGluIHRoZSBzZXQgb2YgZGljdGlvbmFyeSBsb29rdXAgY2hhcnMu
CisgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBkaWN0aW9uYXJ5
IGJhc2VkIGJyZWFrIGl0ZXJhdG9ycy4KKyAgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjYXRl
Z29yeSBsb29rdXAgZm9yIHRoaXMgY2hhcgorICAgICAgKiBpbmRpY2F0ZXMgdGhhdCBpdCBpcyBp
biB0aGUgc2V0IG9mIGRpY3Rpb25hcnkgbG9va3VwIGNoYXJzLgorICAgICAgKiBAaW50ZXJuYWwK
KyAgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBpc0RpY3Rpb25hcnlDaGFyKFVDaGFyMzIpOwor
CisgICAgLyoqCisgICAgICAqIEdldCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisg
ICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0QnJlYWtU
eXBlKCkgY29uc3Q7CisjZW5kaWYKKworICAgIC8qKgorICAgICAgKiBTZXQgdGhlIHR5cGUgb2Yg
dGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisgICAgdmly
dHVhbCB2b2lkIHNldEJyZWFrVHlwZShpbnQzMl90IHR5cGUpOworCisjaWZuZGVmIFVfSElERV9J
TlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgICogQ29tbW9uIGluaXRpYWxpemF0aW9uIGZ1bmN0
aW9uLCB1c2VkIGJ5IGNvbnN0cnVjdG9ycyBhbmQgYnVmZmVyQ2xvbmUuCisgICAgICAqIEBpbnRl
cm5hbAorICAgICAgKi8KKyAgICB2b2lkIGluaXQoKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVS
TkFMX0FQSSAqLworCitwcml2YXRlOgorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgYmFj
a3MgdGhlIGl0ZXJhdG9yIGJhY2sgdXAgdG8gYSAic2FmZSBwb3NpdGlvbiIgaW4gdGhlIHRleHQu
CisgICAgICogVGhpcyBpcyBhIHBvc2l0aW9uIHRoYXQgd2Uga25vdywgd2l0aG91dCBhbnkgY29u
dGV4dCwgbXVzdCBiZSBhIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIFRoZSB2YXJpb3VzIGNhbGxp
bmcgbWV0aG9kcyB0aGVuIGl0ZXJhdGUgZm9yd2FyZCBmcm9tIHRoaXMgc2FmZSBwb3NpdGlvbiB0
bworICAgICAqIHRoZSBhcHByb3ByaWF0ZSBwb3NpdGlvbiB0byByZXR1cm4uICAoRm9yIG1vcmUg
aW5mb3JtYXRpb24sIHNlZSB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBvZiBidWlsZEJhY2t3YXJk
c1N0YXRlVGFibGUoKSBpbiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkJ1aWxkZXIuKQorICAgICAq
IEBwYXJhbSBzdGF0ZXRhYmxlIHN0YXRlIHRhYmxlIHVzZWQgb2YgbW92aW5nIGJhY2t3YXJkcwor
ICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgaGFuZGxlUHJldmlvdXMoY29u
c3QgUkJCSVN0YXRlVGFibGUgKnN0YXRldGFibGUpOworCisgICAgLyoqCisgICAgICogVGhpcyBt
ZXRob2QgaXMgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV4dCgpIG1ldGhvZC4g
IEFsbCBpdGVyYXRpb24KKyAgICAgKiB2ZWN0b3JzIHRocm91Z2ggaGVyZS4gIFRoaXMgbWV0aG9k
IGluaXRpYWxpemVzIHRoZSBzdGF0ZSBtYWNoaW5lIHRvIHN0YXRlIDEKKyAgICAgKiBhbmQgYWR2
YW5jZXMgdGhyb3VnaCB0aGUgdGV4dCBjaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIHVudGlsIHdlIHJl
YWNoIHRoZSBlbmQKKyAgICAgKiBvZiB0aGUgdGV4dCBvciB0aGUgc3RhdGUgbWFjaGluZSB0cmFu
c2l0aW9ucyB0byBzdGF0ZSAwLiAgV2UgdXBkYXRlIG91ciByZXR1cm4KKyAgICAgKiB2YWx1ZSBl
dmVyeSB0aW1lIHRoZSBzdGF0ZSBtYWNoaW5lIHBhc3NlcyB0aHJvdWdoIGEgcG9zc2libGUgZW5k
IHN0YXRlLgorICAgICAqIEBwYXJhbSBzdGF0ZXRhYmxlIHN0YXRlIHRhYmxlIHVzZWQgb2YgbW92
aW5nIGZvcndhcmRzCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCBoYW5k
bGVOZXh0KGNvbnN0IFJCQklTdGF0ZVRhYmxlICpzdGF0ZXRhYmxlKTsKKworcHJvdGVjdGVkOgor
CisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHRo
ZSBmdW5jdGlvbiB0aGF0IGFjdHVhbGx5IGltcGxlbWVudHMgZGljdGlvbmFyeS1iYXNlZAorICAg
ICAqIGJyZWFraW5nLiAgQ292ZXJpbmcgYXQgbGVhc3QgdGhlIHJhbmdlIGZyb20gc3RhcnRQb3Mg
dG8gZW5kUG9zLAorICAgICAqIGl0IGNoZWNrcyBmb3IgZGljdGlvbmFyeSBjaGFyYWN0ZXJzLCBh
bmQgaWYgaXQgZmluZHMgdGhlbSBkZXRlcm1pbmVzCisgICAgICogdGhlIGFwcHJvcHJpYXRlIG9i
amVjdCB0byBkZWFsIHdpdGggdGhlbS4gSXQgbWF5IGNhY2hlIGZvdW5kIGJyZWFrcyBpbgorICAg
ICAqIGZDYWNoZWRCcmVha1Bvc2l0aW9ucyBhcyBpdCBnb2VzLiBJdCBtYXkgd2VsbCBhbHNvIGxv
b2sgYXQgdGV4dCBvdXRzaWRlCisgICAgICogdGhlIHJhbmdlIHN0YXJ0UG9zIHRvIGVuZFBvcy4K
KyAgICAgKiBJZiBnb2luZyBmb3J3YXJkLCBlbmRQb3MgaXMgdGhlIG5vcm1hbCBVbmljb2RlIGJy
ZWFrIHJlc3VsdCwgYW5kCisgICAgICogaWYgZ29pbmQgaW4gcmV2ZXJzZSwgc3RhcnRQb3MgaXMg
dGhlIG5vcm1hbCBVbmljb2RlIGJyZWFrIHJlc3VsdAorICAgICAqIEBwYXJhbSBzdGFydFBvcyAg
VGhlIHN0YXJ0IHBvc2l0aW9uIG9mIGEgcmFuZ2Ugb2YgdGV4dAorICAgICAqIEBwYXJhbSBlbmRQ
b3MgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiBhIHJhbmdlIG9mIHRleHQKKyAgICAgKiBAcGFyYW0g
cmV2ZXJzZSAgIFRoZSBjYWxsIGlzIGZvciB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24KKyAgICAgKiBA
aW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGNoZWNrRGljdGlvbmFyeShpbnQzMl90IHN0
YXJ0UG9zLCBpbnQzMl90IGVuZFBvcywgVUJvb2wgcmV2ZXJzZSk7CisjZW5kaWYgIC8qIFVfSElE
RV9JTlRFUk5BTF9BUEkgKi8KKworcHJpdmF0ZToKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVu
Y3Rpb24gcmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgTGFuZ3VhZ2VCcmVha0VuZ2luZSBmb3IgYQor
ICAgICAqIGdpdmVuIGNoYXJhY3RlciBjLgorICAgICAqIEBwYXJhbSBjICAgICAgICAgQSBjaGFy
YWN0ZXIgaW4gdGhlIGRpY3Rpb25hcnkgc2V0CisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgY29uc3QgTGFuZ3VhZ2VCcmVha0VuZ2luZSAqZ2V0TGFuZ3VhZ2VCcmVha0VuZ2luZShVQ2hh
cjMyIGMpOworCisgICAgLyoqCisgICAgICogIEBpbnRlcm5hbAorICAgICAqLworICAgIHZvaWQg
bWFrZVJ1bGVTdGF0dXNWYWxpZCgpOworCit9OworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
Ly8KKy8vICAgSW5saW5lIEZ1bmN0aW9ucyBEZWZpbml0aW9ucyAuLi4KKy8vCisvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCitpbmxpbmUgVUJvb2wgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcjo6b3Bl
cmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdCB7CisgICAgcmV0dXJuICFv
cGVyYXRvcj09KHRoYXQpOworfQorCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmIC8qICNpZiAh
VUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gKi8KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL3NjaHJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Nj
aHJpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBiNWUyMjUwM2NmZjI2MWQyY2QyNDBmZjEyMDA3ZjkzN2Y3
ODNiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0ZXIu
aApAQCAtMCwwICsxLDE4NyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENv
cHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisq
ICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBzY2hyaXRlci5oCisqCisqIE1vZGlmaWNhdGlv
biBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisq
ICAwNS8wNS85OSAgICAgc3RlcGhlbiAgICAgQ2xlYW5lZCB1cC4KKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorKi8KKworI2lmbmRlZiBTQ0hSSVRFUl9ICisjZGVmaW5lIFNDSFJJVEVSX0gKKworI2lu
Y2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgor
I2luY2x1ZGUgInVuaWNvZGUvdWNocml0ZXIuaCIKKworLyoqCisgKiBcZmlsZSAKKyAqIFxicmll
ZiBDKysgQVBJOiBTdHJpbmcgQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNF
X0JFR0lOCisvKioKKyAqIEEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ2hhcmFjdGVySXRlcmF0b3Ig
dGhhdCBpdGVyYXRlcyBvdmVyIHRoZQorICogY2hhcmFjdGVycyAoY29kZSB1bml0cyBvciBjb2Rl
IHBvaW50cykgaW4gYSBVbmljb2RlU3RyaW5nLgorICogSXQncyBwb3NzaWJsZSBub3Qgb25seSB0
byBjcmVhdGUgYW4KKyAqIGl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciBhbiBlbnRpcmUgVW5p
Y29kZVN0cmluZywgYnV0IGFsc28gdG8KKyAqIGNyZWF0ZSBvbmUgdGhhdCBpdGVyYXRlcyBvdmVy
IG9ubHkgYSBzdWJyYW5nZSBvZiBhIFVuaWNvZGVTdHJpbmcKKyAqIChpdGVyYXRvcnMgb3ZlciBk
aWZmZXJlbnQgc3VicmFuZ2VzIG9mIHRoZSBzYW1lIFVuaWNvZGVTdHJpbmcgZG9uJ3QKKyAqIGNv
bXBhcmUgZXF1YWwpLgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQHNlZSBGb3J3YXJk
Q2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1P
Tl9BUEkgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgVUNoYXJDaGFyYWN0ZXJJdGVy
YXRvciB7CitwdWJsaWM6CisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUg
VW5pY29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBVbmljb2Rl
U3RyaW5nIG9iamVjdCBpcyBjb3BpZWQuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgdGhl
IHdob2xlIHN0cmluZywgYW5kIHRoZSBzdGFydGluZyBwb3NpdGlvbiBpcyAwLgorICAgKiBAcGFy
YW0gdGV4dFN0ciBUaGUgdW5pY29kZSBzdHJpbmcgdXNlZCB0byBjcmVhdGUgYW4gaXRlcmF0b3IK
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihj
b25zdCBVbmljb2RlU3RyaW5nJiB0ZXh0U3RyKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0
ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJyZWQgdG8gYnkgInRleHRTdHIiLgor
ICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIHRoZSB3aG9sZSBzdHJpbmcsIGFuZCB0aGUgc3Rh
cnRpbmcKKyAgICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJ0ZXh0UG9zIi4gIElmICJ0ZXh0
UG9zIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhh
dmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0U3RyIFRo
ZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSBhbiBpdGVyYXRvcgorICAgKiBAcGFyYW0g
dGV4dFBvcyBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVuaWNv
ZGVTdHJpbmcmICAgIHRleHRTdHIsCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAgICAg
IHRleHRQb3MpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVW5p
Y29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBVbmljb2RlU3Ry
aW5nIG9iamVjdCBpcyBjb3BpZWQuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgYmVnaW5zIHdp
dGggdGhlIGNvZGUgdW5pdCBzcGVjaWZpZWQgYnkKKyAgICogInRleHRCZWdpbiIgYW5kIGVuZHMg
d2l0aCB0aGUgY29kZSB1bml0IEJFRk9SRSB0aGUgY29kZSB1bml0IHNwZWNmaWVkCisgICAqIGJ5
ICJ0ZXh0RW5kIi4gIFRoZSBzdGFydGluZyBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInRleHRQ
b3MiLiAgSWYKKyAgICogInRleHRCZWdpbiIgYW5kICJ0ZXh0RW5kIiBkb24ndCBmb3JtIGEgdmFs
aWQgcmFuZ2Ugb24gInRleHQiIChpLmUuLAorICAgKiB0ZXh0QmVnaW4gPj0gdGV4dEVuZCBvciBl
aXRoZXIgaXMgbmVnYXRpdmUgb3IgZ3JlYXRlciB0aGFuIHRleHQuc2l6ZSgpKSwKKyAgICogb3Ig
InRleHRQb3MiIGlzIG91dHNpZGUgdGhlIHJhbmdlIGRlZmluZWQgYnkgInRleHRCZWdpbiIgYW5k
ICJ0ZXh0RW5kIiwKKyAgICogdGhlIGJlaGF2aW9yIG9mIHRoaXMgaXRlcmF0b3IgaXMgdW5kZWZp
bmVkLgorICAgKiBAcGFyYW0gdGV4dFN0ciAgICBUaGUgdW5pY29kZSBzdHJpbmcgdXNlZCB0byBj
cmVhdGUgdGhlIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yCisgICAqIEBwYXJhbSB0ZXh0QmVnaW4g
IFRoZSBiZWdpbiBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0
ZXh0RW5kICAgIFRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBA
cGFyYW0gdGV4dFBvcyAgICBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNv
bnN0IFVuaWNvZGVTdHJpbmcmICAgIHRleHRTdHIsCisgICAgICAgICAgICAgIGludDMyX3QgICAg
ICAgICAgICAgIHRleHRCZWdpbiwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAg
dGV4dEVuZCwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dFBvcyk7CisK
KyAgLyoqCisgICAqIENvcHkgY29uc3RydWN0b3IuICBUaGUgbmV3IGl0ZXJhdG9yIGl0ZXJhdGVz
IG92ZXIgdGhlIHNhbWUgcmFuZ2UKKyAgICogb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0Iiwg
YW5kIGl0cyBpbml0aWFsIHBvc2l0aW9uIGlzIHRoZQorICAgKiBzYW1lIGFzICJ0aGF0IidzIGN1
cnJlbnQgcG9zaXRpb24uCisgICAqIFRoZSBVbmljb2RlU3RyaW5nIG9iamVjdCBpbiAidGhhdCIg
aXMgY29waWVkLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Ig
dG8gYmUgY29waWVkCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFj
dGVySXRlcmF0b3IoY29uc3QgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImICB0aGF0KTsKKworICAv
KioKKyAgICogRGVzdHJ1Y3Rvci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIH5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8qKgorICAgKiBBc3NpZ25tZW50
IG9wZXJhdG9yLiAgKnRoaXMgaXMgYWx0ZXJlZCB0byBpdGVyYXRlIG92ZXIgdGhlIHNhbWUKKyAg
ICogcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIHJlZmVycyB0byB0aGUg
c2FtZQorICAgKiBjaGFyYWN0ZXIgd2l0aGluIHRoYXQgc3RyaW5nIGFzICJ0aGF0IiBkb2VzLgor
ICAgKiBAcGFyYW0gdGhhdCBUaGUgb2JqZWN0IHRvIGJlIGNvcGllZC4KKyAgICogQHJldHVybiB0
aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
U3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImCisgIG9wZXJhdG9yPShjb25zdCBTdHJpbmdDaGFyYWN0
ZXJJdGVyYXRvciYgICAgdGhhdCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUg
aXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBz
dHJpbmcgYW5kIGFyZSBwb2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBwYXJh
bSB0aGF0IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVx
dWFsaXR5CisgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0
aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGluZyBh
dCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCBVQm9vbCAgICAgICAgICBvcGVyYXRvcj09KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVy
YXRvciYgdGhhdCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgYSBuZXcgU3RyaW5nQ2hh
cmFjdGVySXRlcmF0b3IgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciBpbiB0
aGUgc2FtZSByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgdGhpcyBvbmUuICBUaGUKKyAgICog
Y2FsbGVyIG11c3QgZGVsZXRlIHRoZSBuZXcgaXRlcmF0b3IuCisgICAqIEByZXR1cm4gdGhlIG5l
d2x5IGNsb25lZCBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVh
bCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgcHJvdmlkZWQgc3RyaW5nLgorICAg
KiBAcGFyYW0gbmV3VGV4dCBUaGUgc3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVW5pY29kZVN0cmluZyYg
bmV3VGV4dCk7CisKKyAgLyoqCisgICAqIENvcGllcyB0aGUgVW5pY29kZVN0cmluZyB1bmRlciBp
dGVyYXRpb24gaW50byB0aGUgVW5pY29kZVN0cmluZworICAgKiByZWZlcnJlZCB0byBieSAicmVz
dWx0Ii4gIEV2ZW4gaWYgdGhpcyBpdGVyYXRvciBpdGVyYXRlcyBhY3Jvc3MKKyAgICogb25seSBh
IHBhcnQgb2YgdGhpcyBzdHJpbmcsIHRoZSB3aG9sZSBzdHJpbmcgaXMgY29waWVkLgorICAgKiBA
cGFyYW0gcmVzdWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24u
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB2b2lkICAgICAgICAgICAg
Z2V0VGV4dChVbmljb2RlU3RyaW5nJiByZXN1bHQpOworCisgIC8qKgorICAgKiBSZXR1cm4gYSBj
bGFzcyBJRCBmb3IgdGhpcyBvYmplY3QgKG5vdCByZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJu
IGEgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIHZpcnR1YWwgVUNsYXNzSUQgICAgICAgICBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25z
dDsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MgKG5vdCBy
ZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MKKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBzdGF0aWMgVUNsYXNzSUQgICBVX0VYUE9SVDIg
Z2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworcHJvdGVjdGVkOgorICAvKioKKyAgICogRGVmYXVs
dCBjb25zdHJ1Y3RvciwgaXRlcmF0aW9uIG92ZXIgZW1wdHkgc3RyaW5nLgorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgLyoqCisg
ICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgcHJvdmlkZWQgc3RyaW5n
LgorICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUgc3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAg
ICogQHBhcmFtIG5ld1RleHRMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgU3RyaW5nCisgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgKi8KKyAgdm9pZCBzZXRUZXh0KGNvbnN0IFVDaGFyKiBuZXdUZXh0
LCBpbnQzMl90IG5ld1RleHRMZW5ndGgpOworCisgIC8qKgorICAgKiBDb3B5IG9mIHRoZSBpdGVy
YXRlZCBzdHJpbmcgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVuaWNv
ZGVTdHJpbmcgICAgICAgICAgICB0ZXh0OworCit9OworCitVX05BTUVTUEFDRV9FTkQKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1hcC5oIGIvU291cmNl
L1dURi9pY3UvdW5pY29kZS91Y2FzZW1hcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzN2UxNjU4ODY5N2YxYTkz
MDE5MWVlM2RmODE2YzYzYjdiZDM4YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2lj
dS91bmljb2RlL3VjYXNlbWFwLmgKQEAgLTAsMCArMSw0MjMgQEAKKy8qCisqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTIsIEludGVybmF0aW9uYWwg
QnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1
Y2FzZW1hcC5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChu
b3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwNW1heTA2
CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyoKKyogICBDYXNlIG1hcHBpbmcg
c2VydmljZSBvYmplY3QgYW5kIGZ1bmN0aW9ucyB1c2luZyBpdC4KKyovCisKKyNpZm5kZWYgX19V
Q0FTRU1BUF9IX18KKyNkZWZpbmUgX19VQ0FTRU1BUF9IX18KKworI2luY2x1ZGUgInVuaWNvZGUv
dXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91c3RyaW5nLmgiCisjaW5jbHVkZSAidW5pY29k
ZS9sb2NhbHBvaW50ZXIuaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMgQVBJOiBVbmlj
b2RlIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMgdXNpbmcgYSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVj
dC4KKyAqCisgKiBUaGUgc2VydmljZSBvYmplY3QgdGFrZXMgY2FyZSBvZiBtZW1vcnkgYWxsb2Nh
dGlvbnMsIGRhdGEgbG9hZGluZywgYW5kIHNldHVwCisgKiBmb3IgdGhlIGF0dHJpYnV0ZXMsIGFz
IHVzdWFsLgorICoKKyAqIEN1cnJlbnRseSwgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgaGVy
ZSBkb2VzIG5vdCBvdmVybGFwIHdpdGggdWNoYXIuaAorICogYW5kIHVzdHJpbmcuaCwgZXhjZXB0
IGZvciB1Y2FzZW1hcF90b1RpdGxlKCkuCisgKgorICogdWNhc2VtYXBfdXRmOFhZWigpIGZ1bmN0
aW9ucyBvcGVyYXRlIGRpcmVjdGx5IG9uIFVURi04IHN0cmluZ3MuCisgKi8KKworLyoqCisgKiBV
Q2FzZU1hcCBpcyBhbiBvcGFxdWUgc2VydmljZSBvYmplY3QgZm9yIG5ld2VyIElDVSBjYXNlIG1h
cHBpbmcgZnVuY3Rpb25zLgorICogT2xkZXIgZnVuY3Rpb25zIGRpZCBub3QgdXNlIGEgc2Vydmlj
ZSBvYmplY3QuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworc3RydWN0IFVDYXNlTWFwOwordHlw
ZWRlZiBzdHJ1Y3QgVUNhc2VNYXAgVUNhc2VNYXA7IC8qKjwgQyB0eXBlZGVmIGZvciBzdHJ1Y3Qg
VUNhc2VNYXAuIEBzdGFibGUgSUNVIDMuNCAqLworCisvKioKKyAqIE9wZW4gYSBVQ2FzZU1hcCBz
ZXJ2aWNlIG9iamVjdCBmb3IgYSBsb2NhbGUgYW5kIGEgc2V0IG9mIG9wdGlvbnMuCisgKiBUaGUg
bG9jYWxlIElEIGFuZCBvcHRpb25zIGFyZSBwcmVwcm9jZXNzZWQgc28gdGhhdCBmdW5jdGlvbnMg
dXNpbmcgdGhlCisgKiBzZXJ2aWNlIG9iamVjdCBuZWVkIG5vdCBwcm9jZXNzIHRoZW0gaW4gZWFj
aCBjYWxsLgorICoKKyAqIEBwYXJhbSBsb2NhbGUgSUNVIGxvY2FsZSBJRCwgdXNlZCBmb3IgbGFu
Z3VhZ2UtZGVwZW5kZW50CisgKiAgICAgICAgICAgICAgIHVwcGVyLS9sb3dlci0vdGl0bGUtY2Fz
aW5nIGFjY29yZGluZyB0byB0aGUgVW5pY29kZSBzdGFuZGFyZC4KKyAqICAgICAgICAgICAgICAg
VXN1YWwgc2VtYW50aWNzOiAiIj1yb290LCBOVUxMPWRlZmF1bHQgbG9jYWxlLCBldGMuCisgKiBA
cGFyYW0gb3B0aW9ucyBPcHRpb25zIGJpdCBzZXQsIHVzZWQgZm9yIGNhc2UgZm9sZGluZyBhbmQg
c3RyaW5nIGNvbXBhcmlzb25zLgorICogICAgICAgICAgICAgICAgU2FtZSBmbGFncyBhcyBmb3Ig
dV9mb2xkQ2FzZSgpLCB1X3N0ckZvbGRDYXNlKCksCisgKiAgICAgICAgICAgICAgICB1X3N0ckNh
c2VDb21wYXJlKCksIGV0Yy4KKyAqICAgICAgICAgICAgICAgIFVzZSAwIG9yIFVfRk9MRF9DQVNF
X0RFRkFVTFQgZm9yIGRlZmF1bHQgYmVoYXZpb3IuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0
IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAg
ICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVu
Y3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gUG9pbnRlciB0byBhIFVDYXNlTWFwIHNlcnZpY2Ugb2Jq
ZWN0LCBpZiBzdWNjZXNzZnVsLgorICoKKyAqIEBzZWUgVV9GT0xEX0NBU0VfREVGQVVMVAorICog
QHNlZSBVX0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICogQHNlZSBVX1RJVExFQ0FTRV9O
T19MT1dFUkNBU0UKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVAorICog
QHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIFVDYXNlTWFwICogVV9FWFBPUlQyCit1Y2Fz
ZW1hcF9vcGVuKGNvbnN0IGNoYXIgKmxvY2FsZSwgdWludDMyX3Qgb3B0aW9ucywgVUVycm9yQ29k
ZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogQ2xvc2UgYSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVj
dC4KKyAqIEBwYXJhbSBjc20gT2JqZWN0IHRvIGJlIGNsb3NlZC4KKyAqIEBzdGFibGUgSUNVIDMu
NAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfY2xvc2UoVUNhc2VNYXAg
KmNzbSk7CisKKyNpZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgor
CisvKioKKyAqIFxjbGFzcyBMb2NhbFVDYXNlTWFwUG9pbnRlcgorICogIlNtYXJ0IHBvaW50ZXIi
IGNsYXNzLCBjbG9zZXMgYSBVQ2FzZU1hcCB2aWEgdWNhc2VtYXBfY2xvc2UoKS4KKyAqIEZvciBt
b3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKgorICog
QHNlZSBMb2NhbFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0YWJsZSBJ
Q1UgNC40CisgKi8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVDYXNlTWFwUG9p
bnRlciwgVUNhc2VNYXAsIHVjYXNlbWFwX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5ECisKKyNl
bmRpZgorCisvKioKKyAqIEdldCB0aGUgbG9jYWxlIElEIHRoYXQgaXMgdXNlZCBmb3IgbGFuZ3Vh
Z2UtZGVwZW5kZW50IGNhc2UgbWFwcGluZ3MuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZp
Y2Ugb2JqZWN0LgorICogQHJldHVybiBsb2NhbGUgSUQKKyAqIEBzdGFibGUgSUNVIDMuNAorICov
CitVX1NUQUJMRSBjb25zdCBjaGFyICogVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRMb2NhbGUoY29u
c3QgVUNhc2VNYXAgKmNzbSk7CisKKy8qKgorICogR2V0IHRoZSBvcHRpb25zIGJpdCBzZXQgdGhh
dCBpcyB1c2VkIGZvciBjYXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29ucy4KKyAqIEBw
YXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIG9wdGlvbnMgYml0
IHNldAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHVpbnQzMl90IFVfRVhQT1JU
MgordWNhc2VtYXBfZ2V0T3B0aW9ucyhjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoqCisgKiBT
ZXQgdGhlIGxvY2FsZSBJRCB0aGF0IGlzIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudCBjYXNl
IG1hcHBpbmdzLgorICoKKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisg
KiBAcGFyYW0gbG9jYWxlIExvY2FsZSBJRCwgc2VlIHVjYXNlbWFwX29wZW4oKS4KKyAqIEBwYXJh
bSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFs
dWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1
cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfb3Blbgor
ICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1h
cF9zZXRMb2NhbGUoVUNhc2VNYXAgKmNzbSwgY29uc3QgY2hhciAqbG9jYWxlLCBVRXJyb3JDb2Rl
ICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBTZXQgdGhlIG9wdGlvbnMgYml0IHNldCB0aGF0IGlz
IHVzZWQgZm9yIGNhc2UgZm9sZGluZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICoKKyAqIEBw
YXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gb3B0aW9ucyBPcHRp
b25zIGJpdCBzZXQsIHNlZSB1Y2FzZW1hcF9vcGVuKCkuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBN
dXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAg
ICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUg
ZnVuY3Rpb24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX29wZW4KKyAqIEBzdGFibGUgSUNV
IDMuNAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0T3B0aW9ucyhV
Q2FzZU1hcCAqY3NtLCB1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsK
KworLyoqCisgKiBEbyBub3QgbG93ZXJjYXNlIG5vbi1pbml0aWFsIHBhcnRzIG9mIHdvcmRzIHdo
ZW4gdGl0bGVjYXNpbmcuCisgKiBPcHRpb24gYml0IGZvciB0aXRsZWNhc2luZyBBUElzIHRoYXQg
dGFrZSBhbiBvcHRpb25zIGJpdCBzZXQuCisgKgorICogQnkgZGVmYXVsdCwgdGl0bGVjYXNpbmcg
d2lsbCB0aXRsZWNhc2UgdGhlIGZpcnN0IGNhc2VkIGNoYXJhY3RlcgorICogb2YgYSB3b3JkIGFu
ZCBsb3dlcmNhc2UgYWxsIG90aGVyIGNoYXJhY3RlcnMuCisgKiBXaXRoIHRoaXMgb3B0aW9uLCB0
aGUgb3RoZXIgY2hhcmFjdGVycyB3aWxsIG5vdCBiZSBtb2RpZmllZC4KKyAqCisgKiBAc2VlIHVj
YXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgdWNhc2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2Fz
ZW1hcF91dGY4VG9UaXRsZQorICogQHNlZSBVbmljb2RlU3RyaW5nOjp0b1RpdGxlCisgKiBAc3Rh
YmxlIElDVSAzLjgKKyAqLworI2RlZmluZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNBU0UgMHgxMDAK
KworLyoqCisgKiBEbyBub3QgYWRqdXN0IHRoZSB0aXRsZWNhc2luZyBpbmRleGVzIGZyb20gQnJl
YWtJdGVyYXRvcjo6bmV4dCgpIGluZGV4ZXM7CisgKiB0aXRsZWNhc2UgZXhhY3RseSB0aGUgY2hh
cmFjdGVycyBhdCBicmVha3MgZnJvbSB0aGUgaXRlcmF0b3IuCisgKiBPcHRpb24gYml0IGZvciB0
aXRsZWNhc2luZyBBUElzIHRoYXQgdGFrZSBhbiBvcHRpb25zIGJpdCBzZXQuCisgKgorICogQnkg
ZGVmYXVsdCwgdGl0bGVjYXNpbmcgd2lsbCB0YWtlIGVhY2ggYnJlYWsgaXRlcmF0b3IgaW5kZXgs
CisgKiBhZGp1c3QgaXQgYnkgbG9va2luZyBmb3IgdGhlIG5leHQgY2FzZWQgY2hhcmFjdGVyLCBh
bmQgdGl0bGVjYXNlIHRoYXQgb25lLgorICogT3RoZXIgY2hhcmFjdGVycyBhcmUgbG93ZXJjYXNl
ZC4KKyAqCisgKiBUaGlzIGZvbGxvd3MgVW5pY29kZSA0ICYgNSBzZWN0aW9uIDMuMTMgRGVmYXVs
dCBDYXNlIE9wZXJhdGlvbnM6CisgKgorICogUjMgIHRvVGl0bGVjYXNlKFgpOiBGaW5kIHRoZSB3
b3JkIGJvdW5kYXJpZXMgYmFzZWQgb24gVW5pY29kZSBTdGFuZGFyZCBBbm5leAorICogIzI5LCAi
VGV4dCBCb3VuZGFyaWVzLiIgQmV0d2VlbiBlYWNoIHBhaXIgb2Ygd29yZCBib3VuZGFyaWVzLCBm
aW5kIHRoZSBmaXJzdAorICogY2FzZWQgY2hhcmFjdGVyIEYuIElmIEYgZXhpc3RzLCBtYXAgRiB0
byBkZWZhdWx0X3RpdGxlKEYpOyB0aGVuIG1hcCBlYWNoCisgKiBzdWJzZXF1ZW50IGNoYXJhY3Rl
ciBDIHRvIGRlZmF1bHRfbG93ZXIoQykuCisgKgorICogQHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25z
CisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUK
KyAqIEBzZWUgVW5pY29kZVN0cmluZzo6dG9UaXRsZQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19M
T1dFUkNBU0UKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCisjZGVmaW5lIFVfVElUTEVDQVNFX05P
X0JSRUFLX0FESlVTVE1FTlQgMHgyMDAKKworI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElP
TgorCisvKioKKyAqIEdldCB0aGUgYnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2VkIGZvciB0aXRs
ZWNhc2luZy4KKyAqIERvIG5vdCBtb2RpZnkgdGhlIHJldHVybmVkIGJyZWFrIGl0ZXJhdG9yLgor
ICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1cm4gdGl0bGVj
YXNpbmcgYnJlYWsgaXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSBj
b25zdCBVQnJlYWtJdGVyYXRvciAqIFVfRVhQT1JUMgordWNhc2VtYXBfZ2V0QnJlYWtJdGVyYXRv
cihjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoqCisgKiBTZXQgdGhlIGJyZWFrIGl0ZXJhdG9y
IHRoYXQgaXMgdXNlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBUaGUgVUNhc2VNYXAgc2VydmljZSBv
YmplY3QgcmVsZWFzZXMgYSBwcmV2aW91c2x5IHNldCBicmVhayBpdGVyYXRvcgorICogYW5kICJh
ZG9wdHMiIHRoaXMgbmV3IG9uZSwgdGFraW5nIG93bmVyc2hpcCBvZiBpdC4KKyAqIEl0IHdpbGwg
YmUgcmVsZWFzZWQgaW4gYSBzdWJzZXF1ZW50IGNhbGwgdG8gdWNhc2VtYXBfc2V0QnJlYWtJdGVy
YXRvcigpCisgKiBvciB1Y2FzZW1hcF9jbG9zZSgpLgorICoKKyAqIEJyZWFrIGl0ZXJhdG9yIG9w
ZXJhdGlvbnMgYXJlIG5vdCB0aHJlYWQtc2FmZS4gVGhlcmVmb3JlLCB0aXRsZWNhc2luZworICog
ZnVuY3Rpb25zIHVzZSBub24tY29uc3QgVUNhc2VNYXAgb2JqZWN0cy4gSXQgaXMgbm90IHBvc3Np
YmxlIHRvIHRpdGxlY2FzZQorICogc3RyaW5ncyBjb25jdXJyZW50bHkgdXNpbmcgdGhlIHNhbWUg
VUNhc2VNYXAuCisgKgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAq
IEBwYXJhbSBpdGVyVG9BZG9wdCBCcmVhayBpdGVyYXRvciB0byBiZSBhZG9wdGVkIGZvciB0aXRs
ZWNhc2luZy4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRv
IGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5v
dCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAqIEBz
ZWUgdWNhc2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICogQHN0
YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9zZXRC
cmVha0l0ZXJhdG9yKFVDYXNlTWFwICpjc20sIFVCcmVha0l0ZXJhdG9yICppdGVyVG9BZG9wdCwg
VUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogVGl0bGVjYXNlIGEgVVRGLTE2IHN0
cmluZy4gVGhpcyBmdW5jdGlvbiBpcyBhbG1vc3QgYSBkdXBsaWNhdGUgb2YgdV9zdHJUb1RpdGxl
KCksCisgKiBleGNlcHQgdGhhdCBpdCB0YWtlcyB1Y2FzZW1hcF9zZXRPcHRpb25zKCkgaW50byBh
Y2NvdW50IGFuZCBoYXMgcGVyZm9ybWFuY2UKKyAqIGFkdmFudGFnZXMgZnJvbSBiZWluZyBhYmxl
IHRvIHVzZSBhIFVDYXNlTWFwIG9iamVjdCBmb3IgbXVsdGlwbGUgY2FzZSBtYXBwaW5nCisgKiBv
cGVyYXRpb25zLCBzYXZpbmcgc2V0dXAgdGltZS4KKyAqCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRl
cGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaXRsZWNhc2luZyB1c2VzIGEgYnJl
YWsgaXRlcmF0b3IgdG8gZmluZCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiB3b3JkcworICogdGhh
dCBhcmUgdG8gYmUgdGl0bGVjYXNlZC4gSXQgdGl0bGVjYXNlcyB0aG9zZSBjaGFyYWN0ZXJzIGFu
ZCBsb3dlcmNhc2VzCisgKiBhbGwgb3RoZXJzLiAoVGhpcyBjYW4gYmUgbW9kaWZpZWQgd2l0aCB1
Y2FzZW1hcF9zZXRPcHRpb25zKCkuKQorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gdGFrZXMg
YSBub24tY29uc3QgVUNhc2VNYXAgcG9pbnRlciBiZWNhdXNlIGl0IHdpbGwKKyAqIG9wZW4gYSBk
ZWZhdWx0IGJyZWFrIGl0ZXJhdG9yIGlmIG5vIGJyZWFrIGl0ZXJhdG9yIHdhcyBzZXQgeWV0LAor
ICogYW5kIGVmZmVjdGl2ZWx5IGNhbGwgdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigpOworICog
YWxzbyBiZWNhdXNlIHRoZSBicmVhayBpdGVyYXRvciBpcyBzdGF0ZWZ1bCBhbmQgd2lsbCBiZSBt
b2RpZmllZCBkdXJpbmcKKyAqIHRoZSBpdGVyYXRpb24uCisgKgorICogVGhlIHRpdGxlY2FzZSBi
cmVhayBpdGVyYXRvciBjYW4gYmUgcHJvdmlkZWQgdG8gY3VzdG9taXplIGZvciBhcmJpdHJhcnkK
KyAqIHN0eWxlcywgdXNpbmcgcnVsZXMgYW5kIGRpY3Rpb25hcmllcyBiZXlvbmQgdGhlIHN0YW5k
YXJkIGl0ZXJhdG9ycy4KKyAqIFRoZSBzdGFuZGFyZCB0aXRsZWNhc2UgaXRlcmF0b3IgZm9yIHRo
ZSByb290IGxvY2FsZSBpbXBsZW1lbnRzIHRoZQorICogYWxnb3JpdGhtIG9mIFVuaWNvZGUgVFIg
MjEuCisgKgorICogVGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHNldFVUZXh0KCksIGZpcnN0
KCksIG5leHQoKSBhbmQgY2xvc2UoKSBtZXRob2RzIG9mIHRoZQorICogcHJvdmlkZWQgYnJlYWsg
aXRlcmF0b3IuCisgKgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhh
biB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9u
IGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VN
YXAgc2VydmljZSBvYmplY3QuIFRoaXMgcG9pbnRlciBpcyBub24tY29uc3QhCisgKiAgICAgICAg
ICAgICAgICAgIFNlZSB0aGUgbm90ZSBhYm92ZSBmb3IgZGV0YWlscy4KKyAqIEBwYXJhbSBkZXN0
ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUg
TlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJn
ZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQg
aW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0
aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAg
ICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0
dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0
IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBU
aGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRo
ZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVk
LgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJy
b3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNh
dGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxl
bmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2Yg
YSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBn
cmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1RpdGxlCisgKiBA
c3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFw
X3RvVGl0bGUoVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgVUNoYXIgKmRlc3QsIGlu
dDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqc3JjLCBp
bnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29k
ZSk7CisKKyNlbmRpZgorCisvKioKKyAqIExvd2VyY2FzZSB0aGUgY2hhcmFjdGVycyBpbiBhIFVU
Ri04IHN0cmluZy4KKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNl
bnNpdGl2ZS4KKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhl
IG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZm
ZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNl
cnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3Vs
dCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAg
ICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAg
ICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFy
YW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcyku
IElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBh
bmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0
CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBz
dHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFy
YW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRo
ZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0
IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAg
ICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5j
dGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBp
ZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAg
ICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisg
KgorICogQHNlZSB1X3N0clRvTG93ZXIKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJM
RSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOFRvTG93ZXIoY29uc3QgVUNhc2VNYXAg
KmNzbSwKKyAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFj
aXR5LAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xl
bmd0aCwKKyAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisv
KioKKyAqIFVwcGVyY2FzZSB0aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmluZy4KKyAqIENh
c2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRoZSBy
ZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhl
IHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3Zlcmxh
cC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICog
QHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1
bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVm
ZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlz
IHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRo
ZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4K
KyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdp
bGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAg
ICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0g
c3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBs
ZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVM
LXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRl
ciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0
IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJl
dHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3Ig
aW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBp
dCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0clRv
VXBwZXIKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JU
MgordWNhc2VtYXBfdXRmOFRvVXBwZXIoY29uc3QgVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAg
ICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAg
ICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjaWYgIVVDT05GSUdfTk9fQlJF
QUtfSVRFUkFUSU9OCisKKy8qKgorICogVGl0bGVjYXNlIGEgVVRGLTggc3RyaW5nLgorICogQ2Fz
aW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGl0bGVj
YXNpbmcgdXNlcyBhIGJyZWFrIGl0ZXJhdG9yIHRvIGZpbmQgdGhlIGZpcnN0IGNoYXJhY3RlcnMg
b2Ygd29yZHMKKyAqIHRoYXQgYXJlIHRvIGJlIHRpdGxlY2FzZWQuIEl0IHRpdGxlY2FzZXMgdGhv
c2UgY2hhcmFjdGVycyBhbmQgbG93ZXJjYXNlcworICogYWxsIG90aGVycy4gKFRoaXMgY2FuIGJl
IG1vZGlmaWVkIHdpdGggdWNhc2VtYXBfc2V0T3B0aW9ucygpLikKKyAqCisgKiBOb3RlOiBUaGlz
IGZ1bmN0aW9uIHRha2VzIGEgbm9uLWNvbnN0IFVDYXNlTWFwIHBvaW50ZXIgYmVjYXVzZSBpdCB3
aWxsCisgKiBvcGVuIGEgZGVmYXVsdCBicmVhayBpdGVyYXRvciBpZiBubyBicmVhayBpdGVyYXRv
ciB3YXMgc2V0IHlldCwKKyAqIGFuZCBlZmZlY3RpdmVseSBjYWxsIHVjYXNlbWFwX3NldEJyZWFr
SXRlcmF0b3IoKTsKKyAqIGFsc28gYmVjYXVzZSB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgc3RhdGVm
dWwgYW5kIHdpbGwgYmUgbW9kaWZpZWQgZHVyaW5nCisgKiB0aGUgaXRlcmF0aW9uLgorICoKKyAq
IFRoZSB0aXRsZWNhc2UgYnJlYWsgaXRlcmF0b3IgY2FuIGJlIHByb3ZpZGVkIHRvIGN1c3RvbWl6
ZSBmb3IgYXJiaXRyYXJ5CisgKiBzdHlsZXMsIHVzaW5nIHJ1bGVzIGFuZCBkaWN0aW9uYXJpZXMg
YmV5b25kIHRoZSBzdGFuZGFyZCBpdGVyYXRvcnMuCisgKiBUaGUgc3RhbmRhcmQgdGl0bGVjYXNl
IGl0ZXJhdG9yIGZvciB0aGUgcm9vdCBsb2NhbGUgaW1wbGVtZW50cyB0aGUKKyAqIGFsZ29yaXRo
bSBvZiBVbmljb2RlIFRSIDIxLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gdXNlcyBvbmx5IHRoZSBz
ZXRVVGV4dCgpLCBmaXJzdCgpLCBuZXh0KCkgYW5kIGNsb3NlKCkgbWV0aG9kcyBvZiB0aGUKKyAq
IHByb3ZpZGVkIGJyZWFrIGl0ZXJhdG9yLgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdl
ciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5k
IHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0g
Y3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LiBUaGlzIHBvaW50ZXIgaXMgbm9uLWNv
bnN0IQorICogICAgICAgICAgICAgICAgICBTZWUgdGhlIG5vdGUgYWJvdmUgZm9yIGRldGFpbHMu
CisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhl
IHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRo
ZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVu
dHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNp
dHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwg
dGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rp
b24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAg
ICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBw
YXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGgg
VGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBi
ZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBw
b2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNo
IG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisg
KiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwg
LSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBj
YXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVf
c3RyVG9UaXRsZQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNBU0UKKyAqIEBzZWUgVV9U
SVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVAorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1Vf
U1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4VG9UaXRsZShVQ2FzZU1hcCAq
Y3NtLAorICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0
eSwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0
aCwKKyAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNlbmRp
ZgorCisvKioKKyAqIENhc2UtZm9sZHMgdGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcu
CisgKgorICogQ2FzZS1mb2xkaW5nIGlzIGxvY2FsZS1pbmRlcGVuZGVudCBhbmQgbm90IGNvbnRl
eHQtc2Vuc2l0aXZlLAorICogYnV0IHRoZXJlIGlzIGFuIG9wdGlvbiBmb3Igd2hldGhlciB0byBp
bmNsdWRlIG9yIGV4Y2x1ZGUgbWFwcGluZ3MgZm9yIGRvdHRlZCBJCisgKiBhbmQgZG90bGVzcyBp
IHRoYXQgYXJlIG1hcmtlZCB3aXRoICdUJyBpbiBDYXNlRm9sZGluZy50eHQuCisgKgorICogVGhl
IHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBU
aGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVy
bGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisg
KiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJl
c3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBi
dWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMg
aXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkg
VGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhl
bgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24g
d2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAg
ICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJh
bSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhl
IGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBO
VUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2lu
dGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11
c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBA
cmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBv
ciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNl
IGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3Ry
Rm9sZENhc2UKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNlZSBVX0ZPTERfQ0FT
RV9ERUZBVUxUCisgKiBAc2VlIFVfRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JCisgKiBAc3Rh
YmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0
ZjhGb2xkQ2FzZShjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICAgIGNo
YXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAg
VUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9pY3UvdW5pY29kZS91Y2hyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2hyaXRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZkNWE5OTBmN2I3ZWQzZDViYWNmMmRhODQ3MWVmOGZmOTQyMmY5OWMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmgKQEAg
LTAsMCArMSwzODEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAxOTk4
LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBh
bmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNp
Zm5kZWYgVUNIUklURVJfSAorI2RlZmluZSBVQ0hSSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2Rl
L3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKworLyoqCisgKiBcZmls
ZSAKKyAqIFxicmllZiBDKysgQVBJOiBVQ2hhciBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAqLworIAor
VV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBBIGNvbmNyZXRlIHN1YmNsYXNzIG9mIENoYXJh
Y3Rlckl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciB0aGUKKyAqIGNoYXJhY3RlcnMgKGNvZGUg
dW5pdHMgb3IgY29kZSBwb2ludHMpIGluIGEgVUNoYXIgYXJyYXkuCisgKiBJdCdzIHBvc3NpYmxl
IG5vdCBvbmx5IHRvIGNyZWF0ZSBhbgorICogaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIGFu
IGVudGlyZSBVQ2hhciBhcnJheSwgYnV0IGFsc28gdG8KKyAqIGNyZWF0ZSBvbmUgdGhhdCBpdGVy
YXRlcyBvdmVyIG9ubHkgYSBzdWJyYW5nZSBvZiBhIFVDaGFyIGFycmF5CisgKiAoaXRlcmF0b3Jz
IG92ZXIgZGlmZmVyZW50IHN1YnJhbmdlcyBvZiB0aGUgc2FtZSBVQ2hhciBhcnJheSBkb24ndAor
ICogY29tcGFyZSBlcXVhbCkuCisgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc2VlIEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVf
Q09NTU9OX0FQSSBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIDogcHVibGljIENoYXJhY3Rlckl0ZXJh
dG9yIHsKK3B1YmxpYzoKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBV
Q2hhciBhcnJheSByZWZlcnJlZCB0byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVyYXRpb24g
cmFuZ2UgaXMgMCB0byA8Y29kZT5sZW5ndGgtMTwvY29kZT4uCisgICAqIHRleHQgaXMgb25seSBh
bGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisgICAqIGRlc3RydWN0b3Igd2lsbCBub3QgZGVsZXRl
IGl0KS4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGVk
IG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29u
c3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoKTsKKworICAvKioKKyAgICogQ3JlYXRl
IGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0UHRy
Ii4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmxlbmd0aC0xPC9jb2Rl
Pi4KKyAgICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAgICogZGVz
dHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBUaGUgc3RhcnRpbmcKKyAgICogcG9z
aXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJwb3NpdGlvbiIuIElmICJwb3NpdGlvbiIgaXMgb3V0c2lk
ZSB0aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2YgdGhpcyBv
YmplY3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIgYXJyYXkg
dG8gYmUgaXRlcmF0ZCBvdmVyCisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUg
VUNoYXIgYXJyYXkKKyAgICogQHBhcmFtIHBvc2l0aW9uIFRoZSBzdGFydGluZyBwb3NpdGlvbiBv
ZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFy
YWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5ndGgsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAqIENy
ZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0byBieSAidGV4
dFB0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5lbmQtMTwvY29k
ZT4uCisgICAqIHRleHQgaXMgb25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisgICAqIGRl
c3RydWN0b3Igd2lsbCBub3QgZGVsZXRlIGl0KS4KKyAgICogVGhlIHN0YXJ0aW5nCisgICAqIHBv
c2l0aW9uIGlzIHNwZWNpZmllZCBieSAicG9zaXRpb24iLiBJZiBiZWdpbiBhbmQgZW5kIGRvIG5v
dAorICAgKiBmb3JtIGEgdmFsaWQgaXRlcmF0aW9uIHJhbmdlIG9yICJwb3NpdGlvbiIgaXMgb3V0
c2lkZSB0aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2YgdGhp
cyBvYmplY3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIgYXJy
YXkgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2Yg
dGhlIFVDaGFyIGFycmF5CisgICAqIEBwYXJhbSB0ZXh0QmVnaW4gIFRoZSBiZWdpbiBwb3NpdGlv
biBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0RW5kICAgIFRoZSBlbmQg
cG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0gcG9zaXRpb24gICAg
VGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyKiB0ZXh0UHRy
LCBpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRleHRC
ZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRleHRFbmQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAqIENvcHkg
Y29uc3RydWN0b3IuICBUaGUgbmV3IGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgdGhlIHNhbWUgcmFu
Z2UKKyAgICogb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIGl0cyBpbml0aWFsIHBv
c2l0aW9uIGlzIHRoZQorICAgKiBzYW1lIGFzICJ0aGF0IidzIGN1cnJlbnQgcG9zaXRpb24uCisg
ICAqIEBwYXJhbSB0aGF0IFRoZSBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvcGllZAor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29u
c3QgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYgIHRoYXQpOworCisgIC8qKgorICAgKiBEZXN0cnVj
dG9yLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgflVDaGFyQ2hhcmFj
dGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogQXNzaWdubWVudCBvcGVyYXRvci4gICp0aGlz
IGlzIGFsdGVyZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBzYW5lCisgICAqIHJhbmdlIG9mIHRoZSBz
YW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCByZWZlcnMgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFj
dGVyIHdpdGhpbiB0aGF0IHN0cmluZyBhcyAidGhhdCIgZG9lcy4KKyAgICogQHBhcmFtIHRoYXQg
VGhlIG9iamVjdCB0byBiZSBjb3BpZWQKKyAgICogQHJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBv
YmplY3QKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJh
dG9yJgorICBvcGVyYXRvcj0oY29uc3QgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYgICAgdGhhdCk7
CisKKyAgLyoqCisgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3Zl
ciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGlu
ZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hh
cmFjdGVySXRlcmF0b3IgdXNlZCB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICogQHJl
dHVybiB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9m
IHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJh
Y3Rlci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAg
ICAgIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25z
dDsKKworICAvKioKKyAgICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGlzIGl0ZXJhdG9y
LgorICAgKiBAcmV0dXJuIHRoZSBoYXNoIGNvZGUuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgICAgaGFzaENvZGUodm9pZCkgY29uc3Q7CisKKyAg
LyoqCisgICAqIFJldHVybnMgYSBuZXcgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciByZWZlcnJpbmcg
dG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHJhbmdlIG9mIHRoZSBzYW1l
IHN0cmluZyBhcyB0aGlzIG9uZS4gIFRoZQorICAgKiBjYWxsZXIgbXVzdCBkZWxldGUgdGhlIG5l
dyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0aGUgQ2hhcmFjdGVySXRlcmF0b3IgbmV3bHkgY3Jl
YXRlZAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgQ2hhcmFjdGVySXRl
cmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRv
ciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAgKiBpdGVyYXRpb24g
cmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2Vk
IHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQoKS4KKyAgICogQHJldHVybiB0aGUgZmly
c3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0KHZvaWQpOworCisgIC8qKgor
ICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGlu
IGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsIGFuZCBt
b3ZlcyB0aGUgcG9zaXRpb24KKyAgICogdG8gdGhlIHNlY29uZCBjb2RlIHVuaXQuIFRoaXMgaXMg
YW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlv
biB3aXRoIG5leHRQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBp
biBpdHMgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCBVQ2hhciAgICAgICAgIGZpcnN0UG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogU2V0
cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisg
ICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsCisgICAqIFRo
aXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyKCkuCisgICAq
IE5vdGUgdGhhdCBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0SW5jKCksIGJlZ2lubmluZyB3
aXRoLAorICAgKiBlLmcuLCBzZXRUb1N0YXJ0KCkgb3IgZmlyc3RQb3N0SW5jKCksIGlzIG1vcmUg
ZWZmaWNpZW50LgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVy
YXRpb24gcmFuZ2UKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFy
MzIgICAgICAgZmlyc3QzMih2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3Ig
dG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiBy
YW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAg
ICogdG8gdGhlIHNlY29uZCBjb2RlIHBvaW50LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNl
dFRvU3RhcnQoKQorICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0SW5j
KCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiBy
YW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAg
ICAgZmlyc3QzMlBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9y
IHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJh
bmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0
byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpLgorICAgKiBAcmV0dXJuIHRoZSBs
YXN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBsYXN0KHZvaWQpOworCisgIC8qKgor
ICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHBvaW50IGlu
IGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0Lgor
ICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3Vz
MzIoKS4KKyAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24g
cmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAg
ICAgIGxhc3QzMih2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVm
ZXIgdG8gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAqIGluIHRoZSB0ZXh0LXN0b3Jh
Z2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgKiByZXR1cm5zIHRoYXQg
Y29kZSB1bml0LgorICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUg
dGV4dC1zdG9yYWdlIG9iamVjdAorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQKKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgc2V0SW5kZXgoaW50
MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVy
IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICogdGhhdCBjb250YWlucyB0
aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmpl
Y3QgdGhlIGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAqIHJldHVybnMgdGhhdCBjb2RlIHBv
aW50LgorICAgKiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyBhZGp1c3RlZCB0byB0aGUgYmVnaW5u
aW5nIG9mIHRoZSBjb2RlIHBvaW50CisgICAqIChpdHMgZmlyc3QgY29kZSB1bml0KS4KKyAgICog
QHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQtc3RvcmFnZSBvYmpl
Y3QKKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHNldEluZGV4MzIoaW50MzJfdCBwb3NpdGlvbik7
CisKKyAgLyoqCisgICAqIFJldHVybnMgdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVu
dGx5IHJlZmVycyB0by4KKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBj
dXJyZW50bHkgcmVmZXJzIHRvLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUNoYXIgICAgICAgICBjdXJyZW50KHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1
cm5zIHRoZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAg
KiBAcmV0dXJuIHRoZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRv
LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBj
dXJyZW50MzIodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0
IGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAgICogZW5kSW5kZXgo
KSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAg
ICogY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUg
bmV4dCBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dCh2b2lkKTsKKworICAvKioK
KyAgICogR2V0cyB0aGUgY3VycmVudCBjb2RlIHVuaXQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5j
ZXMgdG8gdGhlIG5leHQgY29kZSB1bml0CisgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAg
ICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgKiBubyBtb3JlIGNvZGUg
dW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQg
Y29kZSB1bml0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIg
ICAgICAgICBuZXh0UG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhl
IG5leHQgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAgICogZW5k
SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZSBubyBt
b3JlCisgICAqIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBOb3Rl
IHRoYXQgaXRlcmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIHNlbWFudGljcyBpcyBsZXNzCisg
ICAqIGVmZmljaWVudCB0aGFuIGl0ZXJhdGlvbiB3aXRoICJwb3N0LWluY3JlbWVudCIgc2VtYW50
aWNzCisgICAqIHRoYXQgaXMgcHJvdmlkZWQgYnkgbmV4dDMyUG9zdEluYygpLgorICAgKiBAcmV0
dXJuIHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyKHZvaWQp
OworCisgIC8qKgorICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgZm9yIHJldHVybmlu
ZyBhbmQgYWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludAorICAgKiBpbiB0aGUgaXRlcmF0
aW9uIHJhbmdlCisgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICog
bm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVy
biB0aGUgY3VycmVudCBwb2ludC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyUG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogUmV0
dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRz
CisgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24g
cmFuZ2UuCisgICAqIFRoaXMgaXMgdXNlZCB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9z
dEluYygpIGluIGZvcndhcmQKKyAgICogaXRlcmF0aW9uLgorICAgKiBAcmV0dXJuIEZBTFNFIGlm
IHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYXQgb3Ig
YWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNOZXh0KCk7
CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5z
IHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSB1bml0cyB0
byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSB1
bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgdmlydHVhbCBVQ2hhciAgICAgICAgIHByZXZpb3VzKHZvaWQpOworCisgIC8qKgorICAgKiBB
ZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
ICh0b3dhcmQKKyAgICogc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50
LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1
cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIGl0
ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVD
aGFyMzIgICAgICAgcHJldmlvdXMzMih2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJucyBGQUxT
RSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAqIGJl
Zm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBU
aGlzIGlzIHVzZWQgd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIoKSBpbiBiYWNrd2FyZAor
ICAgKiBpdGVyYXRpb24uCisgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUg
Y29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRp
b24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNQcmV2aW91cygpOworCisgIC8qKgorICAgKiBNb3Zl
cyB0aGUgY3VycmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRo
ZQorICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0
aW9uIGl0c2VsZi4KKyAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9m
IGNvZGUgdW5pdHMgZm9yd2FyZAorICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9z
aXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24g
cmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAq
IGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAqIEBwYXJhbSBvcmlnaW4gT3Jp
Z2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgKiBAcmV0dXJuIHRo
ZSBuZXcgcG9zaXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIGlu
dDMyX3QgICAgICBtb3ZlKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKTsKKworICAvKioK
KyAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9y
IGVuZCBvZiB0aGUKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3Vy
cmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4g
bnVtYmVycyBvZiBjb2RlIHBvaW50cyBmb3J3YXJkCisgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNp
ZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAgICogQHBhcmFtIGRlbHRhIHRo
ZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9y
d2FyZDsKKyAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICogQHBhcmFt
IG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAq
IEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUzMihpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdp
bik7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciBhIG5l
dyByYW5nZSBvZiB0ZXh0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdm9pZCBzZXRU
ZXh0KGNvbnN0IFVDaGFyKiBuZXdUZXh0LCBpbnQzMl90IG5ld1RleHRMZW5ndGgpOworCisgIC8q
KgorICAgKiBDb3BpZXMgdGhlIFVDaGFyIGFycmF5IHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBV
bmljb2RlU3RyaW5nCisgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZlbiBpZiB0aGlz
IGl0ZXJhdG9yIGl0ZXJhdGVzIGFjcm9zcworICAgKiBvbmx5IGEgcGFydCBvZiB0aGlzIHN0cmlu
ZywgdGhlIHdob2xlIHN0cmluZyBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSByZXN1bHQgUmVjZWl2
ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNvZGVTdHJp
bmcmIHJlc3VsdCk7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNs
YXNzIChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0aGlz
IGNsYXNzCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgc3RhdGljIFVDbGFzc0lEICAg
ICAgICAgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQodm9pZCk7CisKKyAgLyoqCisgICAqIFJl
dHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdCAobm90IHJlYWxseSBwdWJsaWMpCisgICAq
IEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCBVQ2xhc3NJRCAgICAgICAgZ2V0RHluYW1pY0NsYXNzSUQodm9p
ZCkgY29uc3Q7CisKK3Byb3RlY3RlZDoKKyAgLyoqCisgICAqIFByb3RlY3RlZCBjb25zdHJ1Y3Rv
cgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3Io
KTsKKyAgLyoqCisgICAqIFByb3RlY3RlZCBtZW1iZXIgdGV4dAorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIGNvbnN0IFVDaGFyKiAgICAgICAgICAgIHRleHQ7CisKK307CisKK1VfTkFN
RVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Vk
YXRhLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjllNDY2
MzBkNTM5OGQ4MjczOGQxZDYxZmZjNGQyYzkxNGU4YzY4YgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaApAQCAtMCwwICsxLDQzMCBAQAorLyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0LCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5h
bWU6ICB1ZGF0YS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4
IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMTk5OW9j
dDI1CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisKKyNpZm5kZWYgX19V
REFUQV9IX18KKyNkZWZpbmUgX19VREFUQV9IX18KKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVz
LmgiCisjaW5jbHVkZSAidW5pY29kZS9sb2NhbHBvaW50ZXIuaCIKKworVV9DREVDTF9CRUdJTgor
CisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IERhdGEgbG9hZGluZyBpbnRlcmZhY2UK
KyAqCisgKiA8aDI+SW5mb3JtYXRpb24gYWJvdXQgZGF0YSBsb2FkaW5nIGludGVyZmFjZTwvaDI+
CisgKgorICogVGhpcyBBUEkgaXMgdXNlZCB0byBmaW5kIGFuZCBlZmZpY2llbnRseSBsb2FkIGRh
dGEgZm9yIElDVSBhbmQgYXBwbGljYXRpb25zCisgKiB1c2luZyBJQ1UuIEl0IHByb3ZpZGVzIGFu
IGFic3RyYWN0IGludGVyZmFjZSB0aGF0IHNwZWNpZmllcyBhIGRhdGEgdHlwZSBhbmQKKyAqIG5h
bWUgdG8gZmluZCBhbmQgbG9hZCB0aGUgZGF0YS4gTm9ybWFsbHkgdGhpcyBBUEkgaXMgdXNlZCBi
eSBvdGhlciBJQ1UgQVBJcworICogdG8gbG9hZCByZXF1aXJlZCBkYXRhIG91dCBvZiB0aGUgSUNV
IGRhdGEgbGlicmFyeSwgYnV0IGl0IGNhbiBiZSB1c2VkIHRvCisgKiBsb2FkIGRhdGEgb3V0IG9m
IG90aGVyIHBsYWNlcy4KKyAqCisgKiBTZWUgdGhlIFVzZXIgR3VpZGUgRGF0YSBNYW5hZ2VtZW50
IGNoYXB0ZXIuCisgKi8KKyAKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorLyoqCisgKiBD
aGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZyb20gdHJlZSBuYW1lcyAK
KyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX1NFUEFSQVRPUiAnLScK
KworLyoqCisgKiBTdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZyb20gdHJl
ZSBuYW1lcyAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX1NFUEFS
QVRPUl9TVFJJTkcgIi0iCisKKy8qKgorICogQ2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgcGFy
dHMgb2YgZW50cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9U
UkVFX0VOVFJZX1NFUF9DSEFSICcvJworCisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNlcGFyYXRl
IHBhcnRzIG9mIGVudHJ5IG5hbWVzCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisjZGVmaW5l
IFVfVFJFRV9FTlRSWV9TRVBfU1RSSU5HICIvIgorCisvKioKKyAqIEFsaWFzIGZvciBzdGFuZGFy
ZCBJQ1UgZGF0YSAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9JQ1VEQVRB
X0FMSUFTICJJQ1VEQVRBIgorCisjZW5kaWYgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisv
KioKKyAqIFVEYXRhSW5mbyBjb250YWlucyB0aGUgcHJvcGVydGllcyBhYm91dCB0aGUgcmVxdWVz
dGVkIGRhdGEuCisgKiBUaGlzIGlzIG1ldGEgZGF0YS4KKyAqCisgKiA8cD5UaGlzIHN0cnVjdHVy
ZSBtYXkgZ3JvdyBpbiB0aGUgZnV0dXJlLCBpbmRpY2F0ZWQgYnkgdGhlCisgKiA8Y29kZT5zaXpl
PC9jb2RlPiBmaWVsZC48L3A+CisgKgorICogPHA+SUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4
LWFsaWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFRoZSBVRGF0YUluZm8gc3Ry
dWN0IGJlZ2lucyA0IGJ5dGVzIGFmdGVyIHRoZSBzdGFydCBvZiB0aGUgZGF0YSBpdGVtLAorICog
c28gaXQgaXMgNC1hbGlnbmVkLgorICoKKyAqIDxwPlRoZSBwbGF0Zm9ybSBkYXRhIHByb3BlcnR5
IGZpZWxkcyBoZWxwIGRldGVybWluZSBpZiBhIGRhdGEKKyAqIGZpbGUgY2FuIGJlIGVmZmljaWVu
dGx5IHVzZWQgb24gYSBnaXZlbiBtYWNoaW5lLgorICogVGhlIHBhcnRpY3VsYXIgZmllbGRzIGFy
ZSBvZiBpbXBvcnRhbmNlIG9ubHkgaWYgdGhlIGRhdGEKKyAqIGlzIGFmZmVjdGVkIGJ5IHRoZSBw
cm9wZXJ0aWVzIC0gaWYgdGhlcmUgaXMgaW50ZWdlciBkYXRhCisgKiB3aXRoIHdvcmQgc2l6ZXMg
PiAxIGJ5dGUsIGNoYXIqIHRleHQsIG9yIFVDaGFyKiB0ZXh0LjwvcD4KKyAqCisgKiA8cD5UaGUg
aW1wbGVtZW50YXRpb24gZm9yIHRoZSA8Y29kZT51ZGF0YV9vcGVuW0Nob2ljZV0oKTwvY29kZT4K
KyAqIGZ1bmN0aW9ucyBtYXkgcmVqZWN0IGRhdGEgYmFzZWQgb24gdGhlIHZhbHVlIGluIDxjb2Rl
PmlzQmlnRW5kaWFuPC9jb2RlPi4KKyAqIE5vIG90aGVyIGZpZWxkIGlzIHVzZWQgYnkgdGhlIDxj
b2RlPnVkYXRhPC9jb2RlPiBBUEkgaW1wbGVtZW50YXRpb24uPC9wPgorICoKKyAqIDxwPlRoZSA8
Y29kZT5kYXRhRm9ybWF0PC9jb2RlPiBtYXkgYmUgdXNlZCB0byBpZGVudGlmeQorICogdGhlIGtp
bmQgb2YgZGF0YSwgZS5nLiBhIGNvbnZlcnRlciB0YWJsZS48L3A+CisgKgorICogPHA+VGhlIDxj
b2RlPmZvcm1hdFZlcnNpb248L2NvZGU+IGZpZWxkIHNob3VsZCBiZSB1c2VkIHRvCisgKiBtYWtl
IHN1cmUgdGhhdCB0aGUgZm9ybWF0IGNhbiBiZSBpbnRlcnByZXRlZC4KKyAqIEl0IG1heSBiZSBh
IGdvb2QgaWRlYSB0byBjaGVjayBvbmx5IGZvciB0aGUgb25lIG9yIHR3byBoaWdoZXN0CisgKiBv
ZiB0aGUgdmVyc2lvbiBlbGVtZW50cyB0byBhbGxvdyB0aGUgZGF0YSBtZW1vcnkgdG8KKyAqIGdl
dCBtb3JlIG9yIHNvbWV3aGF0IHJlYXJyYW5nZWQgY29udGVudHMsIGZvciBhcyBsb25nCisgKiBh
cyB0aGUgdXNpbmcgY29kZSBjYW4gc3RpbGwgaW50ZXJwcmV0IHRoZSBvbGRlciBjb250ZW50cy48
L3A+CisgKgorICogPHA+VGhlIDxjb2RlPmRhdGFWZXJzaW9uPC9jb2RlPiBmaWVsZCBpcyBpbnRl
bmRlZCB0byBiZSBhCisgKiBjb21tb24gcGxhY2UgdG8gc3RvcmUgdGhlIHNvdXJjZSB2ZXJzaW9u
IG9mIHRoZSBkYXRhOworICogZm9yIGRhdGEgZnJvbSB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgZGF0
YWJhc2UsIHRoaXMgY291bGQKKyAqIHJlZmxlY3QgdGhlIFVuaWNvZGUgdmVyc2lvbi48L3A+Cisg
KgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICAvKiogc2l6
ZW9mKFVEYXRhSW5mbykKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWludDE2X3Qg
c2l6ZTsKKworICAgIC8qKiB1bnVzZWQsIHNldCB0byAwIAorICAgICAqICBAc3RhYmxlIElDVSAy
LjAqLworICAgIHVpbnQxNl90IHJlc2VydmVkV29yZDsKKworICAgIC8qIHBsYXRmb3JtIGRhdGEg
cHJvcGVydGllcyAqLworICAgIC8qKiAwIGZvciBsaXR0bGUtZW5kaWFuIG1hY2hpbmUsIDEgZm9y
IGJpZy1lbmRpYW4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWludDhfdCBpc0Jp
Z0VuZGlhbjsKKworICAgIC8qKiBzZWUgVV9DSEFSU0VUX0ZBTUlMWSB2YWx1ZXMgaW4gdXR5cGVz
LmggCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBjaGFyc2V0RmFtaWx5
OworCisgICAgLyoqIHNpemVvZihVQ2hhciksIG9uZSBvZiB7IDEsIDIsIDQgfSAKKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHNpemVvZlVDaGFyOworCisgICAgLyoqIHVu
dXNlZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBy
ZXNlcnZlZEJ5dGU7CisKKyAgICAvKiogZGF0YSBmb3JtYXQgaWRlbnRpZmllciAKKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGRhdGFGb3JtYXRbNF07CisKKyAgICAvKiog
dmVyc2lvbnM6IFswXSBtYWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBtaWNybyAKKyAgICAg
KiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGZvcm1hdFZlcnNpb25bNF07CisKKyAg
ICAvKiogdmVyc2lvbnM6IFswXSBtYWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBtaWNybyAK
KyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGRhdGFWZXJzaW9uWzRdOwor
fSBVRGF0YUluZm87CisKKy8qIEFQSSBmb3IgcmVhZGluZyBkYXRhIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBGb3J3YXJk
IGRlY2xhcmF0aW9uIG9mIHRoZSBkYXRhIG1lbW9yeSB0eXBlLgorICogQHN0YWJsZSBJQ1UgMi4w
CisgKi8KK3R5cGVkZWYgc3RydWN0IFVEYXRhTWVtb3J5IFVEYXRhTWVtb3J5OworCisvKioKKyAq
IENhbGxiYWNrIGZ1bmN0aW9uIGZvciB1ZGF0YV9vcGVuQ2hvaWNlKCkuCisgKiBAcGFyYW0gY29u
dGV4dCBwYXJhbWV0ZXIgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2Rl
Pi4KKyAqIEBwYXJhbSB0eXBlIFRoZSB0eXBlIG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBpbnRvIDxj
b2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiAgICAgICAgICAgICBJdCBtYXkgYmUg
PGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgZGF0YSBh
cyBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICogQHBhcmFt
IHBJbmZvIEEgcG9pbnRlciB0byB0aGUgPGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1Y3R1cmUK
KyAqICAgICAgICAgICAgICBvZiBkYXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVkIGFuZCB3aWxsIGJl
IHJldHVybmVkCisgKiAgICAgICAgICAgICAgYnkgPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9j
b2RlPiBpZiB0aGlzIGZ1bmN0aW9uCisgKiAgICAgICAgICAgICAgcmV0dXJucyA8Y29kZT5UUlVF
PC9jb2RlPi4KKyAqIEByZXR1cm4gVFJVRSBpZiB0aGUgY3VycmVudCBkYXRhIG1lbW9yeSBpcyBh
Y2NlcHRhYmxlCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBVQm9vbCBVX0NBTExD
T05WCitVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSh2b2lkICpjb250ZXh0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFVEYXRhSW5mbyAqcEluZm8pOworCisKKy8qKgorICogQ29u
dmVuaWVuY2UgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIHdvcmtzIHRoZSBzYW1lIGFzIDxj
b2RlPnVkYXRhX29wZW5DaG9pY2U8L2NvZGU+CisgKiBleGNlcHQgdGhhdCBhbnkgZGF0YSB0aGF0
IG1hdGNoZXMgdGhlIHR5cGUgYW5kIG5hbWUKKyAqIGlzIGFzc3VtZWQgdG8gYmUgYWNjZXB0YWJs
ZS4KKyAqIEBwYXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0ZSBwYXRoIGFuZC9vciBhIGJh
c2VuYW1lIGZvciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcgb2YgdGhlIGRhdGEgaW4gdGhl
IGZpbGUgc3lzdGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVMTDwvY29kZT4gZm9yIElDVSBk
YXRhLgorICogQHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHR5cGUgb2Yg
ZGF0YSB0byBiZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVzb3VyY2Ug
YnVuZGxlcyBhcmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAqICAgICAgICAgICAgIGNvbnZl
cnNpb24gdGFibGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAgICAgICAgIFRoaXMgbWF5IGJl
IDxjb2RlPk5VTEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFtIG5hbWUgQSBzdHJpbmcgdGhh
dCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBB
biBJQ1UgVUVycm9yQ29kZSBwYXJhbWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2Nv
ZGU+LgorICogQHJldHVybiBBIHBvaW50ZXIgKGhhbmRsZSkgdG8gYSBkYXRhIG1lbW9yeSBvYmpl
Y3QsIG9yIDxjb2RlPk5VTEw8L2NvZGU+CisgKiAgICAgICAgIGlmIGFuIGVycm9yIG9jY3Vycy4g
Q2FsbCA8Y29kZT51ZGF0YV9nZXRNZW1vcnkoKTwvY29kZT4KKyAqICAgICAgICAgdG8gZ2V0IGEg
cG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEuCisgKgorICogQHNlZSB1ZGF0YV9vcGVuQ2hvaWNl
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgVURhdGFNZW1vcnkgKiBVX0VYUE9S
VDIKK3VkYXRhX29wZW4oY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqdHlwZSwgY29uc3Qg
Y2hhciAqbmFtZSwKKyAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgor
ICogRGF0YSBsb2FkaW5nIGZ1bmN0aW9uLgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGZp
bmQgYW5kIGxvYWQgZWZmaWNpZW50bHkgZGF0YSBmb3IKKyAqIElDVSBhbmQgYXBwbGljYXRpb25z
IHVzaW5nIElDVS4KKyAqIEl0IHByb3ZpZGVzIGFuIGFic3RyYWN0IGludGVyZmFjZSB0aGF0IGFs
bG93cyB0byBzcGVjaWZ5IGEgZGF0YQorICogdHlwZSBhbmQgbmFtZSB0byBmaW5kIGFuZCBsb2Fk
IHRoZSBkYXRhLgorICoKKyAqIDxwPlRoZSBpbXBsZW1lbnRhdGlvbiBkZXBlbmRzIG9uIHBsYXRm
b3JtIHByb3BlcnRpZXMgYW5kIHVzZXIgcHJlZmVyZW5jZXMKKyAqIGFuZCBtYXkgaW52b2x2ZSBs
b2FkaW5nIHNoYXJlZCBsaWJyYXJpZXMgKERMTHMpLCBtYXBwaW5nCisgKiBmaWxlcyBpbnRvIG1l
bW9yeSwgb3IgZm9wZW4oKS9mcmVhZCgpIGZpbGVzLgorICogSXQgbWF5IGFsc28gaW52b2x2ZSB1
c2luZyBzdGF0aWMgbWVtb3J5IG9yIGRhdGFiYXNlIHF1ZXJpZXMgZXRjLgorICogU2V2ZXJhbCBv
ciBhbGwgZGF0YSBpdGVtcyBtYXkgYmUgY29tYmluZWQgaW50byBvbmUgZW50aXR5CisgKiAoRExM
LCBtZW1vcnktbWFwcGFibGUgZmlsZSkuPC9wPgorICoKKyAqIDxwPlRoZSBkYXRhIGlzIGFsd2F5
cyBwcmVjZWRlZCBieSBhIGhlYWRlciB0aGF0IGluY2x1ZGVzCisgKiBhIDxjb2RlPlVEYXRhSW5m
bzwvY29kZT4gc3RydWN0dXJlLgorICogVGhlIGNhbGxlcidzIDxjb2RlPmlzQWNjZXB0YWJsZSgp
PC9jb2RlPiBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gbWFrZQorICogc3VyZSB0aGF0IHRoZSBkYXRh
IGlzIHVzZWZ1bC4gSXQgbWF5IGJlIGNhbGxlZCBzZXZlcmFsIHRpbWVzIGlmIGl0CisgKiByZWpl
Y3RzIHRoZSBkYXRhIGFuZCB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGxvY2F0aW9uIHdpdGggZGF0
YQorICogbWF0Y2hpbmcgdGhlIHR5cGUgYW5kIG5hbWUuPC9wPgorICoKKyAqIDxwPklmIDxjb2Rl
PnBhdGg9PU5VTEw8L2NvZGU+LCB0aGVuIElDVSBkYXRhIGlzIGxvYWRlZC4KKyAqIE90aGVyd2lz
ZSwgaXQgaXMgc2VwYXJhdGVkIGludG8gYSBiYXNlbmFtZSBhbmQgYSBiYXNlbmFtZS1sZXNzIGRp
cmVjdG9yeSBzdHJpbmcuCisgKiBUaGUgYmFzZW5hbWUgaXMgdXNlZCBhcyB0aGUgZGF0YSBwYWNr
YWdlIG5hbWUsIGFuZCB0aGUgZGlyZWN0b3J5IGlzCisgKiBsb2dpY2FsbHkgcHJlcGVuZGVkIHRv
IHRoZSBJQ1UgZGF0YSBkaXJlY3Rvcnkgc3RyaW5nLjwvcD4KKyAqCisgKiA8cD5Gb3IgZGV0YWls
cyBhYm91dCBJQ1UgZGF0YSBsb2FkaW5nIHNlZSB0aGUgVXNlciBHdWlkZQorICogRGF0YSBNYW5h
Z2VtZW50IGNoYXB0ZXIuIChodHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9pY3VkYXRh
Lmh0bWwpPC9wPgorICoKKyAqIEBwYXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0ZSBwYXRo
IGFuZC9vciBhIGJhc2VuYW1lIGZvciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcgb2YgdGhl
IGRhdGEgaW4gdGhlIGZpbGUgc3lzdGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVMTDwvY29k
ZT4gZm9yIElDVSBkYXRhLgorICogQHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMg
dGhlIHR5cGUgb2YgZGF0YSB0byBiZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBs
ZSwgcmVzb3VyY2UgYnVuZGxlcyBhcmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAqICAgICAg
ICAgICAgIGNvbnZlcnNpb24gdGFibGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAgICAgICAg
IFRoaXMgbWF5IGJlIDxjb2RlPk5VTEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFtIG5hbWUg
QSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBAcGFyYW0g
aXNBY2NlcHRhYmxlIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIHZlcmlmeSB0aGF0IGxvYWRl
ZCBkYXRhCisgKiAgICAgICAgICAgICAgICAgICAgIGlzIHVzZWZ1bCBmb3IgdGhlIGNsaWVudCBj
b2RlLiBJZiBpdCByZXR1cm5zIEZBTFNFCisgKiAgICAgICAgICAgICAgICAgICAgIGZvciBhbGwg
ZGF0YSBpdGVtcywgdGhlbiA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+CisgKiAgICAg
ICAgICAgICAgICAgICAgIHdpbGwgcmV0dXJuIHdpdGggYW4gZXJyb3IuCisgKiBAcGFyYW0gY29u
dGV4dCBBcmJpdHJhcnkgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCBpbnRvIGlzQWNjZXB0YWJsZS4K
KyAqIEBwYXJhbSBwRXJyb3JDb2RlIEFuIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVz
dCBub3QgYmUgPGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAoaGFuZGxl
KSB0byBhIGRhdGEgbWVtb3J5IG9iamVjdCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAqICAgICAg
ICAgaWYgYW4gZXJyb3Igb2NjdXJzLiBDYWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2Rl
PgorICogICAgICAgICB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4KKyAqIEBz
dGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRh
dGFfb3BlbkNob2ljZShjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBj
aGFyICpuYW1lLAorICAgICAgICAgICAgICAgICBVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSAqaXNB
Y2NlcHRhYmxlLCB2b2lkICpjb250ZXh0LAorICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKworLyoqCisgKiBDbG9zZSB0aGUgZGF0YSBtZW1vcnkuCisgKiBUaGlzIGZ1
bmN0aW9uIG11c3QgYmUgY2FsbGVkIHRvIGFsbG93IHRoZSBzeXN0ZW0gdG8KKyAqIHJlbGVhc2Ug
cmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRhdGEgbWVtb3J5LgorICogQHBhcmFtIHBE
YXRhIFRoZSBwb2ludGVyIHRvIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHN0YWJsZSBJQ1UgMi4w
CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9jbG9zZShVRGF0YU1lbW9yeSAq
cERhdGEpOworCisjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4K
KworLyoqCisgKiBcY2xhc3MgTG9jYWxVRGF0YU1lbW9yeVBvaW50ZXIKKyAqICJTbWFydCBwb2lu
dGVyIiBjbGFzcywgY2xvc2VzIGEgVURhdGFNZW1vcnkgdmlhIHVkYXRhX2Nsb3NlKCkuCisgKiBG
b3IgbW9zdCBtZXRob2RzIHNlZSB0aGUgTG9jYWxQb2ludGVyQmFzZSBiYXNlIGNsYXNzLgorICoK
KyAqIEBzZWUgTG9jYWxQb2ludGVyQmFzZQorICogQHNlZSBMb2NhbFBvaW50ZXIKKyAqIEBzdGFi
bGUgSUNVIDQuNAorICovCitVX0RFRklORV9MT0NBTF9PUEVOX1BPSU5URVIoTG9jYWxVRGF0YU1l
bW9yeVBvaW50ZXIsIFVEYXRhTWVtb3J5LCB1ZGF0YV9jbG9zZSk7CisKK1VfTkFNRVNQQUNFX0VO
RAorCisjZW5kaWYKKworLyoqCisgKiBHZXQgdGhlIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRh
IGluc2lkZSB0aGUgZGF0YSBtZW1vcnkuCisgKiBUaGUgZGF0YSBpcyByZWFkLW9ubHkuCisgKgor
ICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQsIGFuZCBzaG91bGQgYmUgMTYt
YWxpZ25lZC4KKyAqCisgKiBAcGFyYW0gcERhdGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBtZW1vcnkg
b2JqZWN0CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgY29uc3Qgdm9pZCAqIFVf
RVhQT1JUMgordWRhdGFfZ2V0TWVtb3J5KFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKy8qKgorICog
R2V0IHRoZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkYXRhIG1lbW9yeSBoZWFkZXIuCisgKiBUaGlz
IGFsbG93cyB0byBnZXQgYWNjZXNzIHRvIHRoZSBoZWFkZXIgY29udGFpbmluZworICogcGxhdGZv
cm0gZGF0YSBwcm9wZXJ0aWVzIGV0Yy4gd2hpY2ggaXMgbm90IHBhcnQgb2YKKyAqIHRoZSBkYXRh
IGl0c2VsZiBhbmQgY2FuIHRoZXJlZm9yZSBub3QgYmUgYWNjZXNzZWQKKyAqIHZpYSB0aGUgcG9p
bnRlciB0aGF0IDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPiByZXR1cm5zLgorICoKKyAq
IEBwYXJhbSBwRGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QKKyAqIEBwYXJh
bSBwSW5mbyBwb2ludGVyIHRvIGEgVURhdGFJbmZvIG9iamVjdDsKKyAqICAgICAgICAgICAgICBp
dHMgPGNvZGU+c2l6ZTwvY29kZT4gZmllbGQgbXVzdCBiZSBzZXQgY29ycmVjdGx5LAorICogICAg
ICAgICAgICAgIHR5cGljYWxseSB0byA8Y29kZT5zaXplb2YoVURhdGFJbmZvKTwvY29kZT4uCisg
KgorICogPGNvZGU+KnBJbmZvPC9jb2RlPiB3aWxsIGJlIGZpbGxlZCB3aXRoIHRoZSBVRGF0YUlu
Zm8gc3RydWN0dXJlCisgKiBpbiB0aGUgZGF0YSBtZW1vcnkgb2JqZWN0LiBJZiB0aGlzIHN0cnVj
dHVyZSBpcyBzbWFsbGVyIHRoYW4KKyAqIDxjb2RlPnBJbmZvLT5zaXplPC9jb2RlPiwgdGhlbiB0
aGUgPGNvZGU+c2l6ZTwvY29kZT4gd2lsbCBiZQorICogYWRqdXN0ZWQgYW5kIG9ubHkgcGFydCBv
ZiB0aGUgc3RydWN0dXJlIHdpbGwgYmUgZmlsbGVkLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8K
K1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9nZXRJbmZvKFVEYXRhTWVtb3J5ICpwRGF0
YSwgVURhdGFJbmZvICpwSW5mbyk7CisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0
aGUgbm9ybWFsIElDVSBkYXRhIGxvYWRpbmcgcHJvY2VzcyBhbmQKKyAqIGFsbG93cyB5b3UgdG8g
Zm9yY2UgSUNVJ3Mgc3lzdGVtIGRhdGEgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNpZmllZAor
ICogYXJlYSBpbiBtZW1vcnkuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFs
aWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNlcmd1aWRl
LmljdS1wcm9qZWN0Lm9yZy9pY3VkYXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlzIGRhdGEg
aXMgdGhhdCBvZiB0aGUgaWN1IGNvbW1vbiBkYXRhIGZpbGUsIGFzIGlzCisgKiBnZW5lcmF0ZWQg
YnkgdGhlIHBrZ2RhdGEgdG9vbCB3aXRoIG1vZGU9Y29tbW9uIG9yIG1vZGU9ZGxsLgorICogWW91
IGNhbiByZWFkIGluIGEgd2hvbGUgY29tbW9uIG1vZGUgZmlsZSBhbmQgcGFzcyB0aGUgYWRkcmVz
cyB0byB0aGUgc3RhcnQgb2YgdGhlCisgKiBkYXRhLCBvciAod2l0aCB0aGUgYXBwcm9wcmlhdGUg
bGluayBvcHRpb25zKSBwYXNzIGluIHRoZSBwb2ludGVyIHRvCisgKiB0aGUgZGF0YSB0aGF0IGhh
cyBiZWVuIGxvYWRlZCBmcm9tIGEgZGxsIGJ5IHRoZSBvcGVyYXRpbmcgc3lzdGVtLAorICogYXMg
c2hvd24gaW4gdGhpcyBjb2RlOgorICoKKyAqICAgICAgIGV4dGVybiBjb25zdCBjaGFyIFVfSU1Q
T1JUIFVfSUNVREFUQV9FTlRSWV9QT0lOVCBbXTsKKyAqICAgICAgICAvLyBVX0lDVURBVEFfRU5U
UllfUE9JTlQgaXMgc2FtZSBhcyBlbnRyeSBwb2ludCBzcGVjaWZpZWQgdG8gcGtnZGF0YSB0b29s
CisgKiAgICAgICBVRXJyb3JDb2RlICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgKgorICogICAg
ICAgdWRhdGFfc2V0Q29tbW9uRGF0YSgmVV9JQ1VEQVRBX0VOVFJZX1BPSU5ULCAmc3RhdHVzKTsK
KyAqCisgKiBJdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgZGVjbGFyYXRpb24gYmUgYXMgYWJvdmUu
IFRoZSBlbnRyeSBwb2ludAorICogbXVzdCBub3QgYmUgZGVjbGFyZWQgYXMgYW4gZXh0ZXJuIHZv
aWQqLgorICoKKyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQuNCwgaXQgaXMgcG9zc2libGUgdG8gc2V0
IHNldmVyYWwgZGF0YSBwYWNrYWdlcywKKyAqIG9uZSBwZXIgY2FsbCB0byB0aGlzIGZ1bmN0aW9u
LgorICogdWRhdGFfb3BlbigpIHdpbGwgbG9vayBmb3IgZGF0YSBpbiB0aGUgbXVsdGlwbGUgZGF0
YSBwYWNrYWdlcyBpbiB0aGUgb3JkZXIKKyAqIGluIHdoaWNoIHRoZXkgd2VyZSBzZXQuCisgKiBU
aGUgcG9zaXRpb24gb2YgdGhlIGxpbmtlZC1pbiBvciBkZWZhdWx0LW5hbWUgSUNVIC5kYXRhIHBh
Y2thZ2UgaW4gdGhlCisgKiBzZWFyY2ggbGlzdCBkZXBlbmRzIG9uIHdoZW4gdGhlIGZpcnN0IGRh
dGEgaXRlbSBpcyBsb2FkZWQgdGhhdCBpcyBub3QgY29udGFpbmVkCisgKiBpbiB0aGUgYWxyZWFk
eSBleHBsaWNpdGx5IHNldCBwYWNrYWdlcy4KKyAqIElmIGRhdGEgd2FzIGxvYWRlZCBpbXBsaWNp
dGx5IGJlZm9yZSB0aGUgZmlyc3QgY2FsbCB0byB0aGlzIGZ1bmN0aW9uCisgKiAoZm9yIGV4YW1w
bGUsIHZpYSBvcGVuaW5nIGEgY29udmVydGVyLCBjb25zdHJ1Y3RpbmcgYSBVbmljb2RlU3RyaW5n
CisgKiBmcm9tIGRlZmF1bHQtY29kZXBhZ2UgZGF0YSwgdXNpbmcgZm9ybWF0dGluZyBvciBjb2xs
YXRpb24gQVBJcywgZXRjLiksCisgKiB0aGVuIHRoZSBkZWZhdWx0IGRhdGEgd2lsbCBiZSBmaXJz
dCBpbiB0aGUgbGlzdC4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGhhcyBubyBlZmZlY3Qgb24gYXBw
bGljYXRpb24gKG5vbiBJQ1UpIGRhdGEuICBTZWUgdWRhdGFfc2V0QXBwRGF0YSgpCisgKiBmb3Ig
c2ltaWxhciBmdW5jdGlvbmFsaXR5IGZvciBhcHBsaWNhdGlvbiBkYXRhLgorICoKKyAqIEBwYXJh
bSBkYXRhIHBvaW50ZXIgdG8gSUNVIGNvbW1vbiBkYXRhCisgKiBAcGFyYW0gZXJyIG91dGdvaW5n
IGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9VTlNVUFBPUlRF
RF9FUlJPUjwvY29kZT4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVf
RVhQT1JUMgordWRhdGFfc2V0Q29tbW9uRGF0YShjb25zdCB2b2lkICpkYXRhLCBVRXJyb3JDb2Rl
ICplcnIpOworCisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgbm9ybWFsIElD
VSBkYXRhIGxvYWRpbmcgcHJvY2VzcyBmb3IgYXBwbGljYXRpb24tc3BlY2lmaWMKKyAqIGRhdGEg
YW5kIGFsbG93cyB5b3UgdG8gZm9yY2UgdGhlIGl0IHRvIGNvbWUgb3V0IG9mIGEgdXNlci1zcGVj
aWZpZWQKKyAqIHBvaW50ZXIuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFs
aWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNlcmd1aWRl
LmljdS1wcm9qZWN0Lm9yZy9pY3VkYXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlzIGRhdGEg
aXMgdGhhdCBvZiB0aGUgaWN1IGNvbW1vbiBkYXRhIGZpbGUsIGxpa2UgJ2ljdWR0MjZsLmRhdCcK
KyAqIG9yIHRoZSBjb3JyZXNwb25kaW5nIHNoYXJlZCBsaWJyYXJ5IChETEwpIGZpbGUuCisgKiBU
aGUgYXBwbGljYXRpb24gbXVzdCByZWFkIGluIG9yIG90aGVyd2lzZSBjb25zdHJ1Y3QgYW4gaW1h
Z2Ugb2YgdGhlIGRhdGEgYW5kIHRoZW4KKyAqIHBhc3MgdGhlIGFkZHJlc3Mgb2YgaXQgdG8gdGhp
cyBmdW5jdGlvbi4KKyAqCisgKgorICogV2FybmluZzogIHNldEFwcERhdGEgd2lsbCBzZXQgYSBV
X1VTSU5HX0RFRkFVTFRfV0FSTklORyBjb2RlIGlmCisgKiAgICAgICAgICAgZGF0YSB3aXRoIHRo
ZSBzcGVjaWZlZCBwYXRoIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBvcGVuZWQsIG9yCisgKiAgICAg
ICAgICAgaWYgc2V0QXBwRGF0YSB3aXRoIHRoZSBzYW1lIHBhdGggaGFzIGFscmVhZHkgYmVlbiBj
YWxsZWQuCisgKiAgICAgICAgICAgQW55IHN1Y2ggY2FsbHMgdG8gc2V0QXBwRGF0YSB3aWxsIGhh
dmUgbm8gZWZmZWN0LgorICoKKyAqCisgKiBAcGFyYW0gcGFja2FnZU5hbWUgdGhlIHBhY2thZ2Ug
bmFtZSBieSB3aGljaCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWZlcgorICogICAgICAgICAgICAg
dG8gKG9wZW4pIHRoaXMgZGF0YQorICogQHBhcmFtIGRhdGEgcG9pbnRlciB0byB0aGUgZGF0YQor
ICogQHBhcmFtIGVyciBvdXRnb2luZyBlcnJvciBzdGF0dXMgPGNvZGU+VV9VU0lOR19ERUZBVUxU
X1dBUk5JTkcsIFVfVU5TVVBQT1JURURfRVJST1I8L2NvZGU+CisgKiBAc2VlIHVkYXRhX3NldENv
bW1vbkRhdGEKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JU
MgordWRhdGFfc2V0QXBwRGF0YShjb25zdCBjaGFyICpwYWNrYWdlTmFtZSwgY29uc3Qgdm9pZCAq
ZGF0YSwgVUVycm9yQ29kZSAqZXJyKTsKKworLyoqCisgKiBQb3NzaWJsZSBzZXR0aW5ncyBmb3Ig
dWRhdGFfc2V0RmlsZUFjY2VzcygpCisgKiBAc2VlIHVkYXRhX3NldEZpbGVBY2Nlc3MKKyAqIEBz
dGFibGUgSUNVIDMuNAorICovCit0eXBlZGVmIGVudW0gVURhdGFGaWxlQWNjZXNzIHsKKyAgICAv
KiogSUNVIGxvb2tzIGZvciBkYXRhIGluIHNpbmdsZSBmaWxlcyBmaXJzdCwgdGhlbiBpbiBwYWNr
YWdlcy4gKGRlZmF1bHQpIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX0ZJTEVTX0ZJUlNU
LAorICAgIC8qKiBBbiBhbGlhcyBmb3IgdGhlIGRlZmF1bHQgYWNjZXNzIG1vZGUuIEBzdGFibGUg
SUNVIDMuNCAqLworICAgIFVEQVRBX0RFRkFVTFRfQUNDRVNTID0gVURBVEFfRklMRVNfRklSU1Qs
CisgICAgLyoqIElDVSBvbmx5IGxvYWRzIGRhdGEgZnJvbSBwYWNrYWdlcywgbm90IGZyb20gc2lu
Z2xlIGZpbGVzLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9PTkxZX1BBQ0tBR0VTLAor
ICAgIC8qKiBJQ1UgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzIGZpcnN0LCBhbmQgb25seSBmcm9t
IHNpbmdsZSBmaWxlcworICAgICAgICBpZiB0aGUgZGF0YSBjYW5ub3QgYmUgZm91bmQgaW4gYSBw
YWNrYWdlLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9QQUNLQUdFU19GSVJTVCwKKyAg
ICAvKiogSUNVIGRvZXMgbm90IGFjY2VzcyB0aGUgZmlsZSBzeXN0ZW0gZm9yIGRhdGEgbG9hZGlu
Zy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfTk9fRklMRVMsCisgICAgLyoqIE51bWJl
ciBvZiByZWFsIFVEYXRhRmlsZUFjY2VzcyB2YWx1ZXMuIEBzdGFibGUgSUNVIDMuNCAqLworICAg
IFVEQVRBX0ZJTEVfQUNDRVNTX0NPVU5UCit9IFVEYXRhRmlsZUFjY2VzczsKKworLyoqCisgKiBU
aGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgdG8gY29udHJvbCBob3cgSUNVIGxvYWRzIGRhdGEu
IEl0IG11c3QgYmUgY2FsbGVkCisgKiBiZWZvcmUgYW55IElDVSBkYXRhIGlzIGxvYWRlZCwgaW5j
bHVkaW5nIGFwcGxpY2F0aW9uIGRhdGEgbG9hZGVkIHdpdGggCisgKiB1cmVzL1Jlc291cmNlQnVu
ZGxlIG9yIHVkYXRhIEFQSXMuIFRoaXMgZnVuY3Rpb24gaXMgbm90IG11bHRpdGhyZWFkIHNhZmUu
ICAKKyAqIFRoZSByZXN1bHRzIG9mIGNhbGxpbmcgaXQgd2hpbGUgb3RoZXIgdGhyZWFkcyBhcmUg
bG9hZGluZyBkYXRhIGFyZSB1bmRlZmluZWQuCisgKiBAcGFyYW0gYWNjZXNzIFRoZSB0eXBlIG9m
IGZpbGUgYWNjZXNzIHRvIGJlIHVzZWQKKyAqIEBwYXJhbSBzdGF0dXMgRXJyb3IgY29kZS4KKyAq
IEBzZWUgVURhdGFGaWxlQWNjZXNzCisgKiBAc3RhYmxlIElDVSAzLjQgCisgKi8KK1VfU1RBQkxF
IHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEYXRhRmlsZUFjY2VzcyBhY2Nl
c3MsIFVFcnJvckNvZGUgKnN0YXR1cyk7CisKK1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91bWlzYy5oIGIvU291cmNlL1dURi9pY3UvdW5p
Y29kZS91bWlzYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4NTQ1MWZjNzY3YzA1ODM1ZjZjMTVmNTY2ZjM1NjJl
MmQ0YWY4MzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNj
LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMp
IDE5OTktMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0
aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IGZpbGUgbmFtZTogIHVtaXNjLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBz
aXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9u
OiAxOTk5b2N0MTUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lm
bmRlZiBVTUlTQ19ICisjZGVmaW5lIFVNSVNDX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVz
LmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiAgQyBBUEk6bWlzYyBkZWZpbml0aW9ucyAK
KyAqCisgKiAgVGhpcyBmaWxlIGNvbnRhaW5zIG1pc2NlbGxhbmVvdXMgZGVmaW5pdGlvbnMgZm9y
IHRoZSBDIEFQSXMuIAorICovCisKK1VfQ0RFQ0xfQkVHSU4KKworLyoqIEEgc3RydWN0IHJlcHJl
c2VudGluZyBhIHJhbmdlIG9mIHRleHQgY29udGFpbmluZyBhIHNwZWNpZmljIGZpZWxkIAorICog
IEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIHN0cnVjdCBVRmllbGRQb3NpdGlvbiB7Cisg
IC8qKgorICAgKiBUaGUgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50
MzJfdCBmaWVsZDsKKyAgLyoqCisgICAqIFRoZSBzdGFydCBvZiB0aGUgdGV4dCByYW5nZSBjb250
YWluaW5nIGZpZWxkIAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgYmVn
aW5JbmRleDsKKyAgLyoqIAorICAgKiBUaGUgbGltaXQgb2YgdGhlIHRleHQgcmFuZ2UgY29udGFp
bmluZyBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90IGVuZElu
ZGV4OworfSBVRmllbGRQb3NpdGlvbjsKKworI2lmICFVQ09ORklHX05PX1NFUlZJQ0UKKy8qKgor
ICogT3BhcXVlIHR5cGUgcmV0dXJuZWQgYnkgcmVnaXN0ZXJJbnN0YW5jZSwgcmVnaXN0ZXJGYWN0
b3J5IGFuZCB1bnJlZ2lzdGVyIGZvciBzZXJ2aWNlIHJlZ2lzdHJhdGlvbi4KKyAqIEBzdGFibGUg
SUNVIDIuNgorICovCit0eXBlZGVmIGNvbnN0IHZvaWQqIFVSZWdpc3RyeUtleTsKKyNlbmRpZgor
CitVX0NERUNMX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc2ZjMyNDllZTZhYWQzODBhMTU2MGFhNTg2MmQzNzM2OTllNGMxNTEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0wLDAgKzEs
ODcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIworIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIyAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUi
KSBub3IgdGhlIG5hbWVzIG9mCisjICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisjICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCitCUkVBS0lOR19SVUxFU19GSUxFUyA9IFwKKyAgICBCcmVha2lu
Z1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5icmsgXAorICAgIEJyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuYnJrCisKK0JSRUFLSU5HX1JVTEVTX0RF
RklOSVRJT05TID0gXAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNw
cCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBc
CisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIFwK
KyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAg
XAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAg
XAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5j
cHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5j
cHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNK
Sy5jcHAKKworYWxsIDogJChCUkVBS0lOR19SVUxFU19GSUxFUykgJChCUkVBS0lOR19SVUxFU19E
RUZJTklUSU9OUykKKworQnJlYWtpbmdSdWxlcy8lLmJyayA6ICUucHAKKwkuL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0dFTkJSSyAtYyAtciAkPCAtbyAkQAorCitCcmVha2luZ1J1bGVzL0N1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0CisJZWNobyAiI2luY2x1ZGUgXCJj
b25maWcuaFwiIiA+ICRACisJZWNobyAiI2luY2x1ZGUgPHVuaWNvZGUvdXZlcm51bS5oPiIgPj4g
JEAKKwllY2hvICIjZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9T
KSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTEwMCkpIiA+PiAkQAorCWVjaG8gIiNkZWZpbmUgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VU
UyAoKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9S
X05VTSA+PSA5KSkiID4+ICRACisJZWNobyAibmFtZXNwYWNlIFdURiB7IiA+PiAkQAorCWVjaG8g
ImNvbnN0IGNoYXIqIGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyA9ICIgPj4gJEAKKwlzZWQg
J3MvXiMgLiovLycgJDwgPiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudG1wCisJc2VkICdz
L15cKC4qXCk7LyJcMTsiLycgQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnRtcCA+IEN1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlczIudG1wCisJc2VkICdzLyAjIC8gXC9cLyAvJyBDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMyLnRtcCA+IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50
bXAKKwlzZWQgJ3MvXFwvXFxcXC9nJyBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudG1wID4+
ICRACisJZWNobyAiOyIgPj4gJEAKKwllY2hvICJ9IiA+PiAkQAorCXJtIEN1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy50bXAgQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzMi50bXAKKworQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUuY3BwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCWVjaG8gIiNpbmNsdWRlIFwi
Y29uZmlnLmhcIiIgPiAkQAorCWVjaG8gIiNpbmNsdWRlIDx1bmljb2RlL3V2ZXJudW0uaD4iID4+
ICRACisJZWNobyAiI2RlZmluZSBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElP
UykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDExMDApKSIgPj4gJEAKKwllY2hvICIjZGVmaW5lIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NF
VFMgKChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5P
Ul9OVU0gPj0gOSkpIiA+PiAkQAorCWVjaG8gIm5hbWVzcGFjZSBXVEYgeyIgPj4gJEAKKwllY2hv
ICJjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvciQqUnVsZXMgPSAiID4+ICRACisJY2F0ICQ/
IHwgc2VkICdzL15cKC4qXCk7LyJcMTsiLycgPiAkKi50bXAKKwlzZWQgJ3MvICMgLyBcL1wvIC8n
ICQqLnRtcCA+ICQqMi50bXAKKwlzZWQgJ3MvXFwvXFxcXC9nJyAkKjIudG1wID4+ICRACisJZWNo
byAiOyIgPj4gJEAKKwllY2hvICJ9IiA+PiAkQAorCXJtICQqLnRtcCAkKjIudG1wCisKK0N1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKwktdW5pZmRlZiAtREFERElUSU9OQUxf
RU1PSklfU1VQUE9SVD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCkgLURIQVZFX0VYVFJBX0lD
VV9OQU1FRF9TRVRTPSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUykgLW8gJEAgJDwKKworTGlu
ZUJyZWFrSXRlcmF0b3IlLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCS1jYXQgJD8gfCB1bmlmZGVmIC1EQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhUUkFfSUNV
X05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMWZhZDg0NzEwMDE0OTNkN2JmNGI2
ZWE2ZDUyOTgwODgwZDAyNThmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKQEAgLTAsMCAr
MSwxNTEgQEAKKyMgVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRl
cmF0b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9y
ZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3NvdXJjZS9kYXRhL2Jya2l0ci8+LgorIyBU
aGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJl
bG93OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdN
YXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAtICRFeHRl
bmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOworIyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2
ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0
MzQyKTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3Zpbmcg
YWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAx
NTc5MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBt
b3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgor
IyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4KKworJENSICAg
ICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07CiskTEYgICAgICA9IFtccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsKKyRDb250cm9sID0gW1xwe0dyYXBoZW1lX0Ns
dXN0ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9pY2VNYXJrcyA9IFtcdUZGOUVcdUZGOUZdOyAj
IEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCiskRXh0ZW5kICA9IFtc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSAkVm9pY2VNYXJrcyAtIFtcdTBFMzAg
XHUwRTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07CiskU3BhY2luZ01hcmsgPSBbW1xwe0dlbmVy
YWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOworJEwgICAgICAgPSBbXHB7
R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsKKyRWICAgICAgID0gW1xwe0dyYXBoZW1lX0Ns
dXN0ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gVH1dOworJExWICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07Cisk
TFZUICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07CiskSGluMCAgICA9
IFtcdTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQorJEhpblYgICAg
PSBcdTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQorJEhpbjEgICAgPSBbXHUwOTE1LVx1
MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCiskQmVuMCAgICA9IFtcdTA5ODUt
XHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4uLixIYQorJEJlblYgICAgPSBcdTA5Q0Q7ICMg
QmVuZ2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAgPSBbXHUwOTk1LVx1MDlCOV07ICMgQmVuZ2Fs
aSBMZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9IFtcdTBBMDUtXHUwQTM5XTsgIyBHdXJtdWto
aSBMZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0gXHUwQTREOyAjIEd1cm11a2hpIFNpZ24gVmly
YW1hCiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4u
LEhhCiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4s
SGEKKyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFyYXRpIFNpZ24gVmlyYW1hCiskR3VqMSAgICA9
IFtcdTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCiskT3JpMCAgICA9
IFtcdTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgQSwuLi4sSGEKKyRPcmlWICAgID0gXHUw
QjREOyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3JpMSAgICA9IFtcdTBCMTUtXHUwQjM5XTsgIyBP
cml5YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAgICA9IFtcdTBDMDUtXHUwQzM5XTsgIyBUZWx1
Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9IFx1MEM0RDsgIyBUZWx1Z3UgU2lnbiBWaXJh
bWEKKyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhh
CiskS2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4uLixIYQor
JEthblYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBTaWduIFZpcmFtYQorJEthbjEgICAgPSBbXHUw
Qzk1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKKyRNYWwwICAgID0gW1x1MEQw
NS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEgCiskTWFsViAgICA9IFx1MEQ0
RDsgIyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRNYWwxICAgID0gW1x1MEQxNS1cdTBEMzldOyAj
IE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRSSSAgICAgID0gW1xVMDAwMUYxRTYtXFUwMDAx
RjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycworJFpXSiAgICAgPSBcdTIwMEQ7ICMg
WmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9IFtcdUZFMEZdOyAjIEVtb2ppLXN0eWxlIHZh
cmlhdGlvbiBzZWxlY3RvcgorCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAk
RW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBcVTAwMDFGMzA4IFxV
MDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAwMUYzQ0MgXFUwMDAxRjNGMyBcVTAw
MDFGNDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NkYgXFUwMDAx
RjQ3MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4MS1cVTAwMDFGNDgyIFxVMDAwMUY0
ODYtXFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUgXFUwMDAxRjVFOCBcVTAwMDFGNjQ1
LVxVMDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxVMDAwMUY2NEUgXFUwMDAxRjZBMyBc
VTAwMDFGNkI0LVxVMDAwMUY2QjZdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNl
cXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUyNzBE
IFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EgXFUwMDAxRjNDQiBc
VTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUw
MDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAw
MUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU3NSBcVTAwMDFG
NTkwIFxVMDAwMUY1OTUgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0
Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzAg
XFUwMDAxRjkxOF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKwor
I2Vsc2UKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNzY0IFxVMDAwMUY0NjYtXFUwMDAxRjQ2
OSBcVTAwMDFGNDhCXTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMK
KyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI3MEEtXHUyNzBDIFxVMDAwMUYzODUgXFUw
MDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcgXFUwMDAxRjNDQSBcVTAwMDFGNDQyLVxVMDAw
MUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFG
NDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4
NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcg
XFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxV
MDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNl
bmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUwMDAxRjNGRl07ICMgRml0enBhdHJp
Y2sgbW9kaWZpZXJzCishIWNoYWluOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisK
KyAgICAhIVJJTm9DaGFpbjsKKworI2VuZGlmCisKKyEhZm9yd2FyZDsKKyRDUiAkTEY7CiskTCAo
JEwgfCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8ICRWKSAoJFYgfCAkVCk7CisoJExWVCB8ICRU
KSAkVDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJICRSSSAkRXh0
ZW5kKiAvICRSSTsKKyAgICAkUkkgJFJJICRFeHRlbmQqOworICAgIFteJENvbnRyb2wgJENSICRM
Rl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKworI2Vs
c2UKKworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRD
UiAkTEZdICRTcGFjaW5nTWFyazsKKyAgICAkUkkgJFJJIC8gJFJJOworICAgICRSSSAkUkk7CisK
KyNlbmRpZgorCiskSGluMCAkSGluViAkSGluMTsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2Fy
ZCkKKyRCZW4wICRCZW5WICRCZW4xOyAjIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQorJFBhbjAg
JFBhblYgJFBhbjE7ICMgR3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQorJEd1ajAgJEd1alYgJEd1
ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQorJE9yaTAgJE9yaVYgJE9yaTE7ICMgT3Jp
eWEgVmlyYW1hIChmb3J3YXJkKQorJFRlbDAgJFRlbFYgJFRlbDE7ICMgVGVsdWd1IFZpcmFtYSAo
Zm9yd2FyZCkKKyRLYW4wICRLYW5WICRLYW4xOyAjIEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQor
JE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKKyRaV0ogJEVt
b2ppRm9yU2VxczsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaUZv
ck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFu
dCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmlj
ayBtb2RpZmllcgorISFyZXZlcnNlOworJExGICRDUjsKKygkTCB8ICRWIHwgJExWIHwgJExWVCkg
JEw7CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRUICgkTFZUIHwgJFQpOworCisjaWYgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJ
ICRSSTsKKyAgICAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQgICAgICBbXiRDb250cm9s
ICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOworCisjZWxz
ZQorCisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFNwYWNpbmdN
YXJrIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFJJICRSSSAvICRSSSAkUkk7CisgICAgJFJJ
ICRSSTsKKworI2VuZGlmCisKKyRIaW4xICRIaW5WICRIaW4wOyAjIERldmFuYWdhcmkgVmlyYW1h
IChiYWNrd2FyZCkKKyRCZW4xICRCZW5WICRCZW4wOyAjIEJlbmdhbGkgVmlyYW1hIChiYWNrd2Fy
ZCkKKyRQYW4xICRQYW5WICRQYW4wOyAjIEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCiskR3Vq
MSAkR3VqViAkR3VqMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJE9yaTEgJE9yaVYg
JE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRUZWwxICRUZWxWICRUZWwwOyAj
IFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQorJEthbjEgJEthblYgJEthbjA7ICMgS2FubmFkYSBW
aXJhbWEgKGJhY2t3YXJkKQorJE1hbDEgJE1hbFYgJE1hbDA7ICMgTWFsYXlhbGFtIFZpcmFtYSAo
YmFja3dhcmQpCiskRW1vamlGb3JTZXFzICRaV0o7ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0og
c2VxdWVuY2VzCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsgIyBEb250IGJy
ZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVj
dG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVAorCisgICAgISFzYWZlX3JldmVyc2U7CisgICAgJFJJICRSSSs7CisgICAgWyRFbW9qaVZh
ciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKyAgICAk
UkkgJFJJKzsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOworCisj
ZWxzZQorCisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAk
RW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOworICAgICEhc2FmZV9yZXZlcnNl
OworICAgICEhc2FmZV9mb3J3YXJkOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3Vl
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ZTBjOGE1MWIzYzFjYzBiNzE2ZjJhMzg3MmZiM2IxODEwMGQwZWZi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0wLDAgKzEsMzQ3IEBACiskQUkgPSBbOkxp
bmVCcmVhayA9IEFtYmlndW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07
CiskQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBb
OkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRv
cnlfQnJlYWs6XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENCID0gWzpM
aW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3Nl
X1B1bmN0dWF0aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07Cisk
Q1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVh
ayA9IENhcnJpYWdlX1JldHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246
XSAtICRFWF9TVUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VY
VFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0
ZXI6XTsKKworI2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisK
KyNlbmRpZgorCiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJl
YWsgPSBIMjpdOworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJl
YWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElOID0gW1s6
TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGluZUJyZWFr
ID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07
CiskSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07Cisk
TEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0
X0xpbmU6XTsKKyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNf
QUREXSAtICROU19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBb
OkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBv
c3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhf
TnVtZXJpYzpdIC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOwor
JFJJID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBs
ZXhfQ29udGV4dDpdOworJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6
TGluZUJyZWFrID0gU3BhY2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpd
OworJFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsg
PSBVbmtub3duOl07CiskWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIw
MEQ7CiskRW1vamlWYXIgPSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQK
KworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAw
MUYzMDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFG
M0YzIFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2
RiBcVTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIg
XFUwMDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxV
MDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAw
MDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBp
biBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1Mjcw
QS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAw
MDFGM0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAx
RjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0
ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1
IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBc
VTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUw
MDAxRjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlm
aWVycworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1c
VTAwMDFGNDY5IFxVMDAwMUY0OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1Mjcw
QS1cdTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAw
MDFGM0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAx
RjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0
ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2
IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBc
VTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6
cGF0cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1c
VTAwMDFGM0ZGXTsKKyRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6
XTsKKyRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07CiskQUxjbSA9ICRBTFBsdXMgJENN
KjsKKyRCQWNtID0gJEJBICRDTSo7CiskQkJjbSA9ICRCQiAkQ00qOworJEIyY20gPSAkQjIgJENN
KjsKKyRDTGNtID0gJENMICRDTSo7CiskQ1BjbSA9ICRDUCAkQ00qOworJEVYY20gPSAkRVggJENN
KjsKKyRHTGNtID0gJEdMICRDTSo7CiskSExjbSA9ICRITCAkQ00qOworJEhZY20gPSAkSFkgJENN
KjsKKyRIMmNtID0gJEgyICRDTSo7CiskSDNjbSA9ICRIMyAkQ00qOworJElEY20gPSAkSUQgJENN
KjsKKyRJTmNtID0gJElOICRDTSo7CiskSVNjbSA9ICRJUyAkQ00qOworJEpMY20gPSAkSkwgJENN
KjsKKyRKVmNtID0gJEpWICRDTSo7CiskSlRjbSA9ICRKVCAkQ00qOworJE5TY20gPSAkTlMgJENN
KjsKKyROVWNtID0gJE5VICRDTSo7CiskT1BjbSA9ICRPUCAkQ00qOworJFBPY20gPSAkUE8gJENN
KjsKKyRQUmNtID0gJFBSICRDTSo7CiskUVVjbSA9ICRRVSAkQ00qOworJFJJY20gPSAkUkkgJENN
KjsKKyRTWWNtID0gJFNZICRDTSo7CiskV0pjbSA9ICRXSiAkQ00qOworCishIWZvcndhcmQ7Cisk
Q0FOX0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJENBTlRfQ00gPSBbJFNQ
ICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRM
RiAkTkwgJFpXICRTUF07CiskQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZ
ICRXSiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOworJEFMX0ZPTExP
VyA9IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07CiskTEI0QnJlYWtzID0gWyRCSyAk
Q1IgJExGICROTF07CiskTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOworJExCOEJy
ZWFrcyA9IFskTEI0QnJlYWtzICRaV107CiskTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtz
XSAtIFskWlddXTsKKyRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07Cisk
TEIxOEJyZWFrcyA9IFskTEI4QnJlYWtzICRTUF07CiskTEIyME5vbkJyZWFrcyA9IFskTEIxOE5v
bkJyZWFrcyAtICRDQl07CiskQUxQbHVzICRDTSs7CiskQkEgJENNKzsKKyRCQiAkQ00rOworJEIy
ICRDTSs7CiskQ0wgJENNKzsKKyRDUCAkQ00rOworJEVYICRDTSs7CiskR0wgJENNKzsKKyRITCAk
Q00rOworJEhZICRDTSs7CiskSDIgJENNKzsKKyRIMyAkQ00rOworJElEICRDTSs7CiskSU4gJENN
KzsKKyRJUyAkQ00rOworJEpMICRDTSs7CiskSlYgJENNKzsKKyRKVCAkQ00rOworJE5TICRDTSs7
CiskTlUgJENNKzsKKyRPUCAkQ00rOworJFBPICRDTSs7CiskUFIgJENNKzsKKyRRVSAkQ00rOwor
JFJJICRDTSs7CiskU1kgJENNKzsKKyRXSiAkQ00rOworJENSICRMRiB7MTAwfTsKKyRMQjROb25C
cmVha3M/ICRMQjRCcmVha3MgezEwMH07CiskQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsK
KyRDTSsgJExCNEJyZWFrcyB7MTAwfTsKKyRMQjROb25CcmVha3MgWyRTUCAkWlddOworJENBTl9D
TSAkQ00qIFskU1AgJFpXXTsKKyRDTSsgWyRTUCAkWlddOworJEVtb2ppRm9yU2VxcyAkRW1vamlW
YXI/ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsKKyRDQU5fQ00gJENNKzsKKyRDTSs7
CiskQ0FOX0NNICRDTSogJFdKY207CiskTEI4Tm9uQnJlYWtzICRXSmNtOworJENNKyAkV0pjbTsK
KyRXSmNtICRDQU5UX0NNOworJFdKY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTl9DTSAkQ00q
OworJEdMY20gJENBTlRfQ007CitbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENN
KiAkR0xjbTsKKyRDTSsgR0xjbTsKKyRMQjhOb25CcmVha3MgJENMOworJENBTl9DTSAkQ00qICRD
TDsKKyRDTSsgJENMOworJExCOE5vbkJyZWFrcyAkQ1A7CiskQ0FOX0NNICRDTSogJENQOworJENN
KyAkQ1A7CiskTEI4Tm9uQnJlYWtzICRFWDsKKyRDQU5fQ00gJENNKiAkRVg7CiskQ00rICRFWDsK
KyRMQjhOb25CcmVha3MgJElTOworJENBTl9DTSAkQ00qICRJUzsKKyRDTSsgJElTOworJExCOE5v
bkJyZWFrcyAkU1k7CiskQ0FOX0NNICRDTSogJFNZOworJENNKyAkU1k7CiskT1BjbSAkU1AqICRD
QU5fQ00gJENNKjsKKyRPUGNtICRTUCogJENBTlRfQ007CiskT1BjbSAkU1ArICRDTSsgJEFMX0ZP
TExPVz87CiskUVVjbSAkU1AqICRPUGNtOworKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207Cisk
QjJjbSAkU1AqICRCMmNtOworJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsKKyRDTSsgJFFVY207
CiskUVVjbSAuPzsKKyRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7CiskTEIyME5vbkJyZWFrcyAk
Q00qICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAKKyRCQmNtIFteJENCXTsKKyRCQmNtICRMQjIw
Tm9uQnJlYWtzICRDTSo7CiskSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsKKyRTWWNtICRI
TGNtOworKCRBTGNtIHwgJEhMY20pICRJTmNtOworJENNKyAkSU5jbTsKKyRFWGNtICRJTmNtOwor
JElEY20gJElOY207CiskSU5jbSAkSU5jbTsKKyROVWNtICRJTmNtOworJElEY20gJFBPY207Cisk
QUxjbSAkTlVjbTsKKyRITGNtICROVWNtOworJENNKyAkTlVjbTsKKyROVWNtICRBTGNtOworJE5V
Y20gJEhMY207CiskUFJjbSAkSURjbTsKKyRQUmNtICgkQUxjbSB8ICRITGNtKTsKKyRQT2NtICgk
QUxjbSB8ICRITGNtKTsKKygkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAo
JE5VY20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/
OworJEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkSlZjbSB8ICRIMmNt
KSAoJEpWY20gfCAkSlRjbSk7CisoJEpUY20gfCAkSDNjbSkgJEpUY207CisoJEpMY20gfCAkSlZj
bSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNt
IHwgJEgyY20gfCAkSDNjbSkgJFBPY207CiskUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwg
JEgyY20gfCAkSDNjbSk7CisoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOworJENNKyAo
JEFMY20gfCAkSExjbSk7CiskSVNjbSAoJEFMY20gfCAkSExjbSk7CisoJEFMY20gfCAkSExjbSB8
ICROVWNtKSAkT1BjbTsKKyRDTSsgJE9QY207CiskQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNt
KTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJY20gJFJJY207CisK
KyNlbmRpZgorCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsKKworISFyZXZl
cnNlOworJENNKyAkQUxQbHVzOworJENNKyAkQkE7CiskQ00rICRCQjsKKyRDTSsgJEIyOworJENN
KyAkQ0w7CiskQ00rICRDUDsKKyRDTSsgJEVYOworJENNKyAkR0w7CiskQ00rICRITDsKKyRDTSsg
JEhZOworJENNKyAkSDI7CiskQ00rICRIMzsKKyRDTSsgJElEOworJENNKyAkSU47CiskQ00rICRJ
UzsKKyRDTSsgJEpMOworJENNKyAkSlY7CiskQ00rICRKVDsKKyRDTSsgJE5TOworJENNKyAkTlU7
CiskQ00rICRPUDsKKyRDTSsgJFBPOworJENNKyAkUFI7CiskQ00rICRRVTsKKworI2lmIEFERElU
SU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKyAkUkk7CisKKyNlbmRpZgorCiskQ00rICRT
WTsKKyRDTSsgJFdKOworJENNKzsKKyRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5M
ICRaVyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8
IFskQUwge2VvZn1dKSk7CitbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtl
b2Z9XTsKKyRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENNXTsKKyRMQjRCcmVha3MgJENNKyAk
Q0FOX0NNOworJExGICRDUjsKK1skU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOworWyRTUCAk
WlddICRDTSsgJENBTl9DTTsKKyRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlW
YXI/ICRFbW9qaUZvclNlcXM7CiskQ00rICRDQU5fQ007CiskQ00qICRXSiAkQ00qICRDQU5fQ007
CiskQ00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOworJENBTlRfQ00gJENNKiAkV0o7CiskQ00q
ICRDQU5fQ00gJENNKiAkV0o7CiskQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQ
ICRCQSAkSFldXTsKKyRDQU5UX0NNICRDTSogJEdMOworJENNKiAkQ0FOX0NNICRDTSogJEdMOwor
JENMICRDTSsgJENBTl9DTTsKKyRDUCAkQ00rICRDQU5fQ007CiskRVggJENNKyAkQ0FOX0NNOwor
JElTICRDTSsgJENBTl9DTTsKKyRTWSAkQ00rICRDQU5fQ007CiskQ0wgWyRMQjhOb25CcmVha3Mt
JENNXTsKKyRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOworJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07
CiskSVMgWyRMQjhOb25CcmVha3MtJENNXTsKKyRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOworWyRD
TCAkQ1AgJEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgCiskQ00qICRDQU5fQ00gJFNQ
KiAkQ00qICRPUDsKKyRDQU5UX0NNICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XPyAkQ00rICRT
UCAkU1AqICRDTSogJE9QOworJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRD
TSogJEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskU1kgJENNICRTUCsgJE9QOwor
JENNKiAkT1AgJFNQKiAkQ00qICRRVTsKKyRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsK
KyRDTSogJEIyICRTUCogJENNKiAkQjI7CiskQ00qICRRVSAkQ00qICRDQU5fQ007CiskQ00qICRR
VSAkTEIxOE5vbkJyZWFrczsKKyRDTSogJENBTl9DTSAkQ00qICRRVTsKKyRDQU5UX0NNICRDTSog
JFFVOworJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOwor
JENNKiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICRCQjsKK1te
JENCXSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworJENNKiAkSEwgJENNKiAkU1k7CiskQ00q
ICRJTiAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogJElOICRDTSogJEVYOworJENNKiAkSU4g
JENNKiAkSUQ7CiskQ00qICRJTiAkQ00qICRJTjsKKyRDTSogJElOICRDTSogJE5VOworJENNKiAk
UE8gJENNKiAkSUQ7CiskQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBs
dXMgfCAkSEwpICRDTSogJE5VOworJENNKiAkSUQgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwg
JEhMKSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOworKCRDTSogKCRQ
UiB8ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kpKSog
JENNKiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OworJENNKiAo
JEgzIHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsKKyRDTSogKCRKVCB8ICRKVikgJENNKiAo
JEgyIHwgJEpWKTsKKyRDTSogJEpUICRDTSogKCRIMyB8ICRKVCk7CiskQ00qICRJTiAkQ00qICgk
SDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwg
JEpUIHwgJEpWIHwgJEpMKTsKKyRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENN
KiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSog
KCRBTFBsdXMgfCAkSEwpICRDTSogJElTOworJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8
ICROVSk7CiskQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsKKworI2lmIEFERElU
SU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKiAkUkkgJENNKiAkUkk7CisKKyNlbmRpZgor
CiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsKKworISFzYWZlX2ZvcndhcmQ7
CitbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsg
W14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07CiskZGlj
dGlvbmFyeSAkZGljdGlvbmFyeTsKKyAgICAKKyEhc2FmZV9yZXZlcnNlOworJENNKyBbXiRDTSAk
QksgJENSICRMRiAkTkwgJFpXICRTUF07CiskQ00rICRTUCAvIC47CiskU1ArICRDTSogJE9QOwor
JFNQKyAkQ00qICRRVTsKKyRTUCsgJENNKiAoJENMIHwgJENQKTsKKyRTUCsgJENNKiAkQjI7Cisk
Q00qICgkSFkgfCAkQkEpICRDTSogJEhMOworKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsK
KygkQ0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7CiskZGljdGlvbmFyeSAkZGljdGlv
bmFyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MWY4YWQyNTFi
ZjU1MjVkMjkzZjM3MjEyNjQ1NjE2MTE1MGI2MGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0
CkBAIC0wLDAgKzEsMTUgQEAKKyEhY2hhaW47CishIUxCQ01Ob0NoYWluOworISFsb29rQWhlYWRI
YXJkQnJlYWs7CisKKworCisjaWYgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUworCisgICAgJENK
ID0gWzpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjpdOworCisjZWxzZQor
CisgICAgJENKID0gW1x1MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2M1x1MzA4M1x1
MzA4NVx1MzA4N1x1MzA4RVx1MzA5NVx1MzA5Nlx1MzBBMVx1MzBBM1x1MzBBNVx1MzBBN1x1MzBB
OVx1MzBDM1x1MzBFM1x1MzBFNVx1MzBFN1x1MzBFRVx1MzBGNVx1MzBGNlx1MzBGQ1x1MzFGMFx1
MzFGMVx1MzFGMlx1MzFGM1x1MzFGNFx1MzFGNVx1MzFGNlx1MzFGN1x1MzFGOFx1MzFGOVx1MzFG
QVx1MzFGQlx1MzFGQ1x1MzFGRFx1MzFGRVx1MzFGRlx1RkY2N1x1RkY2OFx1RkY2OVx1RkY2QVx1
RkY2Qlx1RkY2Q1x1RkY2RFx1RkY2RVx1RkY2Rlx1RkY3MF07CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0ZjM2YzkwMjA2OWYzYTZjNWNkODAzMzg1
NDlmYjE5OWEwMThhZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKQEAgLTAsMCArMSwxMCBA
QAorJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9ICcn
OworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBd
OworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAk
TlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0IGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDEzNDE0NjM1NTY2NmJkMTgxMWRjYzgxNzY3NTczZGEzNDBjMDA4
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9T
VUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSBbXHUwMDIxXHUwMDNGXHVGRjAxXHVGRjFG
XTsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSBbXHUyMDI1XHUyMDI2XTsKKyRJU19TVUIgPSBb
XHUwMDNBXHUwMDNCXTsKKyROU19TVUIgPSBbXHUyMDNDXHUyMDQ3XHUyMDQ4XHUyMDQ5XHUzMDA1
XHUzMDFDXHUzMDNCXHUzMDlEXHUzMDlFXHUzMEEwXHUzMEZCXHUzMEZEXHUzMEZFXHVGRjFBXHVG
RjFCXHVGRjY1XTsKKyRQT19TVUIgPSBbXHUwMDI1XHUwMEEyXHUwMEIwXHUyMDMwXHUyMDMyXHUy
MDMzXHUyMTAzXHVGRjA1XHVGRkUwXTsKKyRQUl9TVUIgPSBbXHUwMDI0XHUwMEEzXHUwMEE1XHUy
MEFDXHUyMTE2XHVGRjA0XHVGRkUxXHVGRkU1XTsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVY
X1NVQiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOworJE5TX0FERCA9
ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNjg5Njk5ZDhkMGU0YzM2ODM0YjJmYWUyNTkzMjc3NTdhMjRkMTNmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZU5vbkNKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NVQiA9ICcnOwor
JEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOwor
JElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMDVcdTMwM0JcdTMwOURcdTMwOUVcdTMwRkRc
dTMwRkVdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJElO
X1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9u
Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xNTlmY2YwZjhhOTkyMjEyMGViYjExZGQ1ZGE0NDE3ZjkyNjc2
MjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9T
VUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJ
U19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsK
KyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4
dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGYzNmM5MDIwNjlmM2E2YzVjZDgwMzM4NTQ5
ZmIxOTlhMDE4YWQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0CkBAIC0wLDAgKzEs
MTAgQEAKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSAnJzsKKyRJTl9TVUIg
PSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUzMDFDXHUz
MEEwXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKICRCQV9T
VUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDYzNTU5ZWIxZWQ2NGYyNjNkODllMTYyZDMx
NzcxOTg3Y2RmY2ZiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApAQCAtMCww
ICsxLDEwIEBACiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7Cisk
SU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7
CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU5ZmNmMGY4YTk5
MjIxMjBlYmIxMWRkNWRhNDQxN2Y5MjY3NjI3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LnR4dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURf
U1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7Cisk
UE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRD
Sl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTU5ZmNmMGY4YTk5MjIxMjBlYmIxMWRkNWRhNDQxN2Y5MjY3NjI3MgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0gJyc7
CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0g
Jyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQURE
ID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvZ2VuYnJrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L2dlbmJyawpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mZDIwNmRjZmZmZGQ0ZTdjZWYzMmFiNTU1M2ExOTk5MGNjMTg1
ZjI3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzMTQ1Ngp6Y21lSHZkdzVqVXglWmxjS24jfSZp
aSVnWm17OD1CV1ZuVV5rX2kqb0JOSz4kQ3teUHluVkJTMENvfTA+NUc+VFIKek5tQDRKWHNwdTE+
MWoxcGlkMVYpezd5eHJNO1laMyhVdDtVaWdIdj1NWjA0X2spOUs3JUFEVzNfTHxBZU0kMj1+Cnpe
WmokYVp9Iyk3d2NndSQqU3A/ei1TNno9UGlLI3hBSHRYK28zWWpgI0BNQXUrWGdlJSFFT009Kml9
ZH1sSEZjeQp6VVJaZllXejc8enJheSpzXmxMSEZ2a0RFXj9hTH5jRkgwQlVeLUkhZU95SURNPHNl
Wj5rS0c8fXVMXjBmaE50VzYKengmb2E2VmBJSzFMLT9RcGFZOTtDUU0pfUQzZkJqZEIpeHM1LV9y
RHI1Uz5pbWkzKyh3QTYmKkNPYHBCVj9RTC1mCnpLKylAeSQ3fWp0N1d4UCR6YkJzeT59enk3P2Uw
fWhjVDMwfmFANmJmPHhiR193Rm1gLXJ8Qzs3KSZSVFI4NEx3SAp6ekQ3YVU+dVZNSW8pUyhZSmtA
YEMtTyVVdjFxVEwxdWRrJDd2b0E1Y2dzMUEkbkZvSmBlZk41TkYxeUZxOzBJSCQKelotdm07QmBP
bEd3PCVSOCZBVVZKd2NUenBGRWdpYlU9U1l5Rjs1Y25qUn5DUThgY0QkZHNOR0FfaiZFWCl5PyZP
Cnp1ZX5Ke18ocHZSYik9OCNDbXh5fmxNQEleeVM+cHI7SSN8dyVTVX4oNTdVRGBnek5SOD4mZUcl
X2Q1UWJlV2dOUQp6NlluJSpnczFBR3shVUEzQllSd3FrWWorTF9nfE11dnV9bWFOQkd8IypaU2JW
RCFaYDFZXnRVJmNjOTVNYCRSS0kKej8hZGxldm8ybSNYfFhPN3RhMzR+REVUQUdCVmAmJntZPSQw
bWEkZzJnMFhWT2hkdik9SF8jWUxxTXR5eTNYVz5CCnpGbT9uTFh8OWIlWUZXVjhjVGhnTW42VldZ
K0BYTjBrPzB7bHI3PWh8azxoaG9lRGJScGI5QGJWMVpXYntGcj95ZQp6RmlgQ0UpRUIhfWR0SmNr
eGR3XmFuRTEwb3p3LXl2fEtabyRmM2FmT0JZV0tpcHllYTZwP04lRWA2aXxgUUU1SzQKelFvWi1G
RlF6YCFQQUwtY3NFXkQqbUt6NHpNKkFMVCp5I19yaV9BcVojOFhkRismPVF0SylxR0soKDVAVlBB
b0VzCnpJe0oxRGQ5UCNJcXt9Wnw5U3BnZml6LXJAVmRKMmNgWCQ1ZnY/Z3Y2SUVAMjYqQ0Z3SypK
N0xzSVZxRTZKZHA3fgp6I3NlNy1XSVR9Wksqaj9aNGBlKSRAaiU3ezg0cU1Va256Qyg1KWFoTSVF
d0VxbTIrfXJgbU5YRV4qPWlJXn4pR0QKeiNaPiE5Iz8mc25eMl5GQXAhUlg5dG41PTRmVDRWLV9K
S3V9Jjl8RnhHdU43ekV0UCs4WSNUYWxSWmh1fm9hKyFqCnprfFVeRnh4YzQhNlp5ZyM4NnFuPSN9
UVlOcXIqMn0mRGVHZE1YQ1FmOUleMTJhb3F+VWZZIz82MHpFSjFZMj9OWgp6aVZDJlB5X15DdSNg
WFlibn1EPihqT3tMOXcjZjcma2g0VzU4JGZOSEpCSXtBIXtvQF5ze3BBZGpme3p3T3xqQ1AKemdg
bjlZaDJ5OSZUOEA8Rit6bSpNVU5gQS02aF9NLUlsNlh9eCgjKEFZZDNZb2pTbyNpMyRwU0hJVWJK
LUVwbH1GCnowfSE/O3IpPGplPClFdj54cFF7UDlmeXRXI2dJNGtaPlB3UDRDbXg/KWAjaXtsdlpW
cnNvISp2JFk7PWlITSRfcgp6K0lHSFE/JipQJnhOTkxDdCR2VF9OKUx9JitteUlYSVZtZ2VzPUdu
OCV7cFExXyF3JkU/LT98Y3Q2bU1OOUlmcT0KenFnOShBWWY8e3UoSTUlQ3BNYT1NYFBGI1IrITM9
Vz1SKDZ9WEheI2YrMzwkLXJoUFckQzkrK1BoQndKZGs5cmhnCnpGc3JnbFJObC1oS1UpRjs4Pz0r
dkhzIUF7ckJYU2U/dG0hZCtUdW9JI3w4eElnaisxcFJSJnE8Q2BGd2AoSysrZgp6Wm13fVIpa2pe
TUB8aV9CRD5TVXRHPzA2aks+XnQ2YSoqS3FFdFAxaS09PSg4ckY8PyZxTkdlY2hsd0hnYlN3dTkK
enI/TVNlUCg/allNMUA9KXgqQzFoQjFib24wUXJMYWB6Rnt7PHBiVXdUald7bHNxdnhuc0EhRTBt
THNqTihkYX48CnpVantPVUZ9QCE/SCVCWjVnT3JAWDIoTXZVe19SU2IjZHxKQ1VnQUVDWX5iRkFi
a0l5dEtTVUBFJT9vJEU1NTx1VQp6cXohR2BsdXkqSU9HcGNPX0NzfFMwLT0lR08mdGV+NDtfUXQ+
PCpHTWNJM2R0Rm92NDEmYypQbF9yWVlGXjBedjcKenNUTlpBcUh7Tm4we2soRCpLU2N5QmN6OEZe
Izt2VXRmPCtRYDs4cUdMTnZ3WEFNQnpQY2M9TC1iRGpCYXYlUEw3Cno8ZXVTanF0eT9vOFpGKUY8
RklzbEtjYz16aERTTWYpflE0Q01yJmtMNTRaPWhvVXo7JnB0JjZ8bCZQUGRpXm9sSQp6XiY9RWVj
TmVkYTMjO30pQFp+OXgqdmBkZkJgZHRCTmx0O0pFbUM1UWo4VUQqd3U+KCU/ZFl6b3lyPSNKV1VZ
PGcKellKR35NcWpJRGFSIW9Dai0kPUF+RUo+UXB0SUNsTGU2ZWsmeF5RNyE0UU8/RGE+M0UrRE1X
Xn5lJWAyNlAoR0JFCnoqVlVEZiFaQGlHTz9yY24tcGkkNWpZTWhNU1J4JkZwK05JdjZJSW9sTVpJ
Qkt5KmczdjtiYmR3NX44cS09N3ZnPQp6KVk1d3A9e0AhcF91OUIqRkVueFd1VjlrVV5DYX1TQ1Mq
dG9uRzs+KjNWI29vOW5jKENlQHhQVWdmI1hMU3w7aS0KejFmQWhid0hnZmRjNFdsQlkmIXlhLX17
fC1GZV5JWnEzZnlXNF8mJDUqdUZQMyhpQ2dHblQ3SWJ3Xm87PFFyKnNtCnpCSUI1TDQ1aFkoUTtv
ck95PDs/MTEzbF5kPT0yRyZQYHdyYypqMkV9VihhKDxPP0RnbHZQPzFLKT56JW5HPTBobQp6U3Zl
eSs1QXFFUyFnYWw4QVo7OUQ1JCM+Yj9AUSZeXzVLSVloN3xlSkc9Y1dpXj0+Qm0xQF9oVHUxdTQh
PiluJXYKekZSaGw5Yjd+RH1Oe182M0FoKyR4eXxiP08zNmtqfnJedzFfU3ZqUz1CUCp9Z15fcXlS
PnAkbW4xMTU1PWohI0ZSCnoqMmVXPF5aaDx+NSkxfX5NcmFWe15qTXdaREVKSX1nI34pYTdII2Jn
XnRaMH1YVyhqaHd9RDItJGo1RnlzNW1QKAp6I09tUGtvZGZiJUhaTmd1VnQxKDkkQD4kQGQwdk5h
Tlg2Qk1HKTBlVUxyMnBsYEI0NFRCZlhUTDMyI2BIY2RXe1AKelNgfTt3bXolaytPSiR7WWYySFh0
S21NTTk2eVVibSU9cG1iZlU3JENqcVEoUGRkVkdvanFOYExVfHY2JVBWTlpOCnpsO3tAQlhgOWxx
NGFFKXxreFhzSVdkUGY4Um1haUxZRSFIVlVCMUItR3E9dVRwe3I8QEpPT3J2YWpVSH4tZ2MoZwp6
eFp4RyEqMWQrO2FPYHcqSipVK0Q7THwzTTlWSlJ0JE1IfWxTfFFsbngpI0BoNjUzKilBKXlHVCVG
ZXlBO2d2cUEKekMhNiolU2wtKFVwZUxKdHozU1p1RmUmJG5KZU19eHotMnd6SUEhXnZeP09NNXt1
KUFMPGBRbkNtNWZ9KGpvPiFQCnooVTxuNEAkRlJBcmtxIXxwXjh2eCt9Ynw7UHZFdGtFKUhGX3Ir
cWxkNns5P1dsSnlQUSg/SkJCMDt2bDYpJGMrOQp6YiEmPiZwTlpKQnt0OylWRSY2OylKRXpvSkFT
TjJjSFJVdDRqTXxNKFp7ZiEqKlFnJUdaakM4Z3JBI1p9cWpacFoKejY/djlNI0I2K19qPHhMXlJC
Nkk2emVJeVdiTUpCKmc/ek9jcy1tKFhkZT4tISNyVlJSPXpMQDAzN3BKMF92RSVjCnp4ZWFFO1Fo
PmIyUWpxdUZ4Mz1TKTxvbmMhRlZSP0pQNjBJNmc3Qkk4NjxWKV4oI3die04xbXJmYTY/YygyRUMh
fQp6Qk97S2V6bVR6IU9SJE5EWnI/X2U8RUJIIzdZP0RQRzAyK3d0OyhOWUImcy01WjFgPUVibEhA
Q29HXzA7alpIYioKemNSZ0okRSg1RDRuQHBpOzhYMng2NzBhYDBfbEdhSERNeFVFKGdhVUFLfiky
NGVaJV94OHxGVzVEcz1tfWd+cS16CnpsSEMhemYxV2ltazVsOEpOJFBQSlV7Pn5rcSprRXMqZXI4
MzZaJiVEZ04zPX5uPmc9QlhVV2RFK0phOW5FWjdZUAp6YzdlM0Boa1orMWQ4ZSQobXNuaSlKOCgm
UDU5ZHVLb3ZGQjhveVMkdGltVCFSXjBUciNHTW5afFgtRUEyWTFZVkUKekVJdXFGXiR3VXNuRUQo
NTcmS1RqaD9DQnJBdi09LVJkXntmOH0qRXVEWEFCVko4O24zQklESHVBKV82JTErYWgmCnpfIzko
WXJKU2Z6JmUpV0hSfGxhbGs9ZzItNVl6Y2paYWJEPXpBbnNYKC1tQEw5QCNZbDdwMXMlbGp3eUpY
Zn5lPwp6NSZsWCtAKG9KKEpqdGNYcFhhLShgcl9CZ0U4I0VvOyRRTTxzSUVeREZXMi0jQDEtM0Z6
ZHU2UWcwcyZKcD1BNGYKenw2OGB5dFlFVHpObjZzcmU3MiZOJilqeENlfnBZSzZ+YkEjb29gKGVQ
fUxtMGAkWEhoezUyRDcoWWJla0dqTSlUCnpPKWZ7PEs+UmU7e1oyPzRAQmdkMD9Hc35WTkJ7Uyk7
a3UqS1okdmVWYSswUFpVRkNZO2dscSFRbyEyO1J0T30tSwp6SlR5XmBqR15neFc4Mnd5Y3FyV3Jf
VjU+JVNKNjhvem1Aam1iZ0FxODVtJEQxLUE7YnFpVFpkYUstQ0V7Q1JWNmAKejZ5JVlEOWFzK3Yp
eUhqWXdnRTJ5bmcmWiFMLU1ITEstenI4ej9FOCtLZ3ZwWW8zZUotP2BkeXNpKVJAaDcpOUhsCnpe
UTFMZURhbElaWW4pKzx5LTBqbnNwe14xMGchUF9EXk8tXz4mWV4xZVdtVTY8blhkPzE4dUl4X044
RVY5OF94Rwp6cyMxPkdsOyRud21xXm4xQW5DRDJyV01kdEMhZHpuUFBCc3F2aSVXSzZ5SSVhK2Nt
eXcpXzwtIS0xeyZqd2UhKnYKelUxWD9velFXYlhrPW9iajB1NUN5K3lWPjB0ITJpb1UoN20+aTVI
S19aTGZ+VThgenBwZCNlK0NJWGJHPDdBPCgyCnpzI09ffDhRVylvVzhQelZkI3U1ey10elZoP0pA
SXV5ZGdhVXdsJl88ekJmfClSYEA1VFNub1FMPz5LNX45fU18TAp6UU9tUGZRfFFTYSVXa1NAK2tG
RXJZUTwhbldwPnJCd08zaTQyam9iMm47YVNTaiZiWGh3KTJ6MlNHTHx+VjQ7IVIKekh3SSgtNChL
eTBAQWw8Ym0xVm5ndHIxJjZLRi0/RXdIRTlja3U/UlF1YGtDRCgyTW15TChtazE4R1g1PzdgVDgp
CnpiN2J3Vl98OTQ5KjM5RlVxNDZQQSU5Xil4YDx+KExXN1Nue3lDcElWMmQjLTMmdT85ZyNgQUZQ
WGdoNVBjbFRNVwp6aVZlYys4YWlkPzhAOS10ZWVKUkVtMWc3Q0F2QThvJTxHcEorVj5oZU8zcWAk
anpMd29PX3tTI2o9d0BKOFh2ZD4KeldhVyoldFckQFRMczw4dkRaOCY2c3E2MFJKJDFQNjw5T2om
OUg7VFpGTHsyUj1NMn1EY3dyWEwybDBGYCZ2U1g2CnokTWEhNEFIbmx7bz9wdUlROVFxYj1jOVJr
SFA1ZipgU209UGNzYGNyMXcwP2VeWUp7TiExR0J3RlhETCMmIV9Odwp6OHFhNiZ5cC1vPEpmRmsh
bnxXVCZeOXI2QGMpb3o9R1M2P314c0IoR2QweCUpOHN1MCQoZCVCczMyYV4oRlo/eWkKeiZMJCVF
ZXVCNHpyZn4lUTgkbUtiMk1LekRwd3xkYG5WXj5tZFk3UXo1JWVpUlBaUlZOTDB0cjBpRncpa1Et
VFQhCnpkVnJ2RWZfX05RdHB1JGkkVkhIa3BtaFlmMj5LYThjTSNNflAmR2xYNjEwR3pjTDx0OCZ+
YnZNNVJgP0wrRG1XUAp6UDFnYH5Kd1lWfGpVdVIkcGdlK1YyeDBefDI8cGV3WTRRPHRqRyhteXtl
Xz9pTDVCJFhNfXFiZF5ifHE2MnpyNV8Kej9GOCo2c0dGY1MzRUU4MXpaM0x4Zjw3bmNDakA7KCZe
bSZLVk1GY3hLMCgoSTZlNEltTEVqOzBDUDZDKlQwcWNrCnoxbDFCYEJaJVR1eSVtNWtafnk3aik+
Zjl5aG1Ga1U0Kj5ge3VwaVBGbkV3TEFpXyR+TDd9UDk1JCk2PWFoeyFxMQp6ZllpWnt7Q04oQz9Z
fF5BRjMzejJqQVQoOGJUcW9scXs1KGQ9ajRAaiRvd3JLNTU2ZEBsT19rR0stbFleK35EIUwKenJP
QUhEOX1jeUlMbWJVeG0oO2kmRjNJRFE+SH1gYUooNEhuNG1oWUR1TSg4IzgmUyNPYjRtOUd6QG47
QnNMM3RXCnpkd2g8LVlLZ3ZWJU08T0M8eXx0bE4lOUF6JEA2JFZuWkRlVkFuZ2ZDVlh9P3VnM3hV
bWQhOylOcTt9e0RIdT4rQgp6OTghWVI+PCZAfCRUfkd5ckB2KSZ6fCtfaWZ+PzJxXm9DdC1oITBT
R3sqY0U+QCsqX04+LXxBRCpCdUg2ZD1sRCQKemEhJThGNF9Te1VpKks+MDgha15rbDkwS2JBd1BR
N2ZSMT9tUFBvRj9pMmtwWmR+VWJQT14kK3RuJXlwczFLeXh8Cno1X3ZUXkRlbl5BbUBhR1pkJWdh
OVFMVFFwKVp6Iz1PX0UmaDIxblElZkBBI3tEcD12dHRaPSE1QSNNVVI1RGZxRgp6UUFrPWUyX185
RnFjST9iZENWT016KkxOJSk4RWBvMUxnSmo7Rzk1WHhZX0xzTm47Q3hXQWhqZEtSMSpRclJEKCoK
elp3PzFUUW9UUmFCLU9qNlYyaik3WTRFc1JNUmBuYHBZLXxvYDhQPlpOPSh4eU5tbEI7V3xfaylS
ZkwwUkQ7U2lqCno5TF4/IVAkJHNoN3hSWn5mbkpQcWshMUZJcjVZTilwajZgeXgmdGZHZ3YxSmlX
cz1rM2xRNFNkZkc2Wn1jcz0qSQp6Q0Z9ZyFCMjA7cEJOUHJ3YklENkFQfHhRMyEoSkJgXnwhY3Zu
KDxvYUQhQihSZHRFZUVlM0VPN3UrejhGUFNSemgKelFffCM4U1JzR3l7M2JeTFJfTkpJWGJaVig7
SSNAeihDdzxBckQ1ZU8heW5Lfk9PaGpgSWxhJnwzOFVaKkh+WFlRCnpSfn5EMGB8MVB0bCkpKSFt
Wnk1M2pGfXxIQz9UIzVYclo+XnM3RXhgRFY2ZT0pKTg4ZW9TaihFc2E+YkYkSGF7MQp6cWFTMlkh
M08zITZCQ1hsN2cySH01a1NKOGtsKmo2JDxeWEBoY0pfYVZXJCZnLVZwWUJSfk5BV0RgTk43aSVF
I0IKekN0O0s7K314fmY1MUxobCFRI1NUNWU7U1hLfS14IVZ1TVZRbGZjdXVoanYyelpvI2stdlBu
cFUpNWErQDchRUFZCnpGJkxQXjs0b3d4PW8/QDlVY0ROOEl4MSY8M21HMjU+M2RFM3dpfi1FelBU
TDFFWld6eFMjdWQxeWROOXVrLTw9agp6Z1NVSkwla0QmKHBVVnU9UHsyYyhWRmxpWUBgdG1XPyVg
fXVgM1BwWGZuXnkrNGpue28td0pqQXFpNllldHVPVlcKel5vbncmQ3xnQ2pVWCtpREAtYjB2NSN8
Mzg8LWR3QGswfCR4QDt5LT03M0Y4NUpTfEdTQG1WKSViYDJCZDZ7M194CnpJWUVAdU0wdjkpV2xg
M01ALTkmfWhfWGVMX2xkR3lsbjt0PnFiUSNjPCE/bH1SZ15KTnpBbm5RTUVRWHpSWipUNAp6PChI
eHkmRUVTflYkTXxyP3ZaZCp2cTZkRDY+empqPiN5RHEzQXstRjduN1NPPGJIQXllSmgzQiZuX1l0
NUhAeVEKek05d2VkSGVFIXtCam89MUI2NCo3cXZ3VC0kVD5CIU9yRyZUI3NlNy1XSVR9Wksqaj9a
NGBlKSRAaiU3ezg0dnRfCno8QUlUNU9JTTduU2FHJGJiJTtkNGZKQDhtX0ImalQ+WHEhKUsrTXBF
VSk4azcmYEF1UnFuWVZ3X1FxQUs/RCQqdgp6cHg9aTtTWks5PFdlSURJQSpSZTlMKzUzdmhyaDlS
SVBiQUxvOT9rVWg4K1BIQlZ7MUU1SClIXkF8QnJXT3B6bG4Kej1ucjFgQUwhYz14YGl9cnJRWnlN
VzxFeSRFcHQmTFAmJCZURVNgIz5sNCl3SyYqU3ZGKylNZGkjTHFXWEk7dDBpCnpKZ2shaSVEKyp7
Vnlhdzg2N3FuPWxxcHt5YkEhVH5NVD9pKGI/c0V2bWB0X1JoflQrLU5VWCtHUXA8dCl1IUo7TQp6
NGBgbFFUamcjPlZBdGlYI0U1e217NmUxWi1wWGNUdHBGPSpjWTU2cFVsX2gpZmhKQ1hpfldKY2ol
S2Q5Z185Y0gKekFxISVfbVBGVz9namFENiNXTStPSEU9WmVIRz1CfEQtYGckZUkobi0yXjYkK2RK
KC1RKCM5bW9oM0swemx5SX1CCno1bURIMWZYajN4V2htQjN3WURURmk0WjRJeUUoTmJ1K3JXVGFQ
eWttbDlYbCNWI2BqRitIYXRGUjsmSCUwMGU2aAp6TWtld2hQUFI5QG82IX1UZT8mWkA1ZU1kRWdU
dnpgaE1IZ201SjY4IXBCTnl2dFdGUzU2VmJnJkk0Y1dDTCRkU2gKeklPX0h7a2poUkNwKW53SUJT
K3pYWmdmYHkzbGVWJiN9ZHh5PTIjMjxRJHZVPStOUi1RdCE2Qk5AdFV1M2o2JXR6CnpYRnRiK1ph
NDRqQSYhT0lVZiNuYTlPRk5Wa2Y9KU5LcFE3RzhWKyUjcndJdlFfTzBaZVl8Wjg8e2M4clF4c0Zp
JAp6Qk1FMFNwSzZAfjY7b20ocDwkb3NyPyFfRz9EJmwrK3VxeSt6cXleXmtRQElhISRDe0JYcWtO
aGV2SDV4YlVUe3UKelkpWTdJckM7Q2hwKjhvI0QkVEtMRE1DJno1NWx9MzhaZGBgWXwjMyMjbjhm
REgxTXxtVT1XUVNGYSs3aDF+KXJ9Cnp8NyZ1aDZyc3x0UzslNnU1ST0+SmVzMTkxXz8+fXc/enQ/
OyVyZTtVUXZmPipgT1kjOEpfNU1BNDNTIyRkNT9rbwp6YDNefDJHSEFrbzZGPz0oVDR5OGNxQVdI
V3ZpSyF7b2l2MTg+Pis0OUxLTXR7angwWEA+cHwrQ0x5fmh+aHNWZEIKeiRmREA+USgwSnw+XkNH
JiVvQ0tnJlBDUlYqbHJnNlNZdX5AJShBIThoRzdtZzJIQngobWFUPlFTI01TWW1UYSh6CnpePUUw
JFh3NjAmYX01Pj5XVjNWNzhKaURILVN9YHxOR1c/aCtjYmwxJno/R2s/Wn5kYyFudWQtJUMyXn09
bSFZNAp6SChUMlQqfW0qcjBsZilidHFaNitXaylGTVR1M05vYCg7OXskY3xXUHUofkdDZVBuMmZS
M2JfRlFocSp1NHl2WHkKelUrTnModmZvZnJRWCtMMyR8O1ViQmtRNkg7d2VPI2lYI05oOHR+UUlU
Wk5sJUNsTHpnNihMTGZVelpLUTNzUHw2Cno3YStrYHsyX2NYdlEoVnZRfmFFR1BhI3FMMVdxKW57
fUJDdmlIQzVpcFRNNjVLNW1jfWRuWD0hKkJ+SiFvfUI+Mwp6O25TRnlOdnBlYGFLemkkUjFLIyhp
SV5sbl81c3JNQVNVe0FMZntFfGBoa3h+WCloUERCazsqcjt7VH03Jil8ZXQKejdpOz5iMD4yKlpj
WnYzQTU8a1RyMypqbUQpQnJha2I+VCt8NnMkcXVDRCZ7Q0R1SV5eYH5pVy1nIzJjS3VlZVQ9Cnpy
O2xWdlV5ST1YTEV4PXx8RG5MazElNldDQ3hrcUdhTCgtIXtBJmY/RGNVeSl5aFFMOTI+Z2heemIp
YHFBeH1UUAp6bGZEJUt8RG5LSjFwV15SVC01KUshMUR6ajZMP0pFaGQ3PU9QaWclPENpcTclWTB3
TmlCaypwYWUrWWh7cTRyRDAKellXJUFPOT1rIXE+OEUrbHpmcl5LMllQTz0hMEJndCFrTko3PVhB
bjUxPlBYPVpoX3c/QE0+WENSTiRRZ3wwUXIjCnpOM0syM1gqampPcDk0RGx4REdkQ0U8IWpkZjRk
SSVhPWFCQCg0TFNFfERHbkY8VWckOE5xWmpHO21fJnRUe2A/dgp6SXthTjdlcEg4XylacTs0Sms9
a0FiQCZKIUsxenBRdEhXPjk7UytTWU5yI3V8YUkrNFZiQCZuO2V3ei1qKThURiUKei1tSnJlSXti
UyZ5aUpFa2JvZTcwb30zU2w+RntUQ196b1QzcXIoc0RAUS0hKTdkbzh3elNRfTZsQDFAVDttUD9g
CnpxVHxvajtqJko/Nnc/XmoxY3JtMztyTTJBa25UZE5MJUpLdWo8Zj5GZm1EeT1MfjxkeWtzNldj
X3FNcjZIelVuTgp6RG5+TFNFa0lnYEJxUHkqYz87NGFCcFhyeyhxZzB+Tll6TzY5IyhfMjZsb2Ih
RXopZ0JiUmFIQWBabSVYTk92TU4KekFiRjdSbCskbGA2LWVgdUVKJjN8e35QLXd2RW97TVpWfC0p
SmZiZiMhcCs2T2ZVe1dwV2p8NGY/LVl1aEVpRCZGCnpTQTshWVMyNiRVTHd4ZlI2eEU5QUlqaEV2
eDFednVvdyVnX0o5dCRJUFdKZiZjJntqNFJYVzJ5Vl9ISlEmK3lWewp6R1Z3MmglcyFYSjxNdUZu
dmpkbTdoNGJnOXtDaFU5K3I7ZHlDWCUrejZyVUp6cV9pZEFaeyk5R3t+YmtpamlYbUoKekVCIU14
Sk9BUngmTSRpNitFJnlldTVUQT5Hd3FKOC1LZ3pwRzxzanJRVFV9Ym90QW5EUHZgTGFjUkduKi1f
dURnCnpiY0AhSj16NShfOyVfbitsSzJmPlB2JSM2SiZ8QVUofV9YNG5kP1lBeyV8MT9nTDs3PVVE
VlR3OyFQdStzOW5PcAp6aE5qdjZIRSV6N1dnb2NOaXhDIT1gIXIwdShGPkJlXnJ1YjstMFZ8UC0w
QFM8KGxrdUZgPXt+flp2bSteQGZNSXUKek8xdjU5LT9UM2xRMjdRdjUyWWt7fDJLbXUzN3pUVDZG
cnAmUEMoPypFfGU3OUxSamkrOyNyYGtnYj5vPVN2Kz0tCnpNJHNaJW9UU0NLRz8xY084cExCOzk4
QVU7MVNTRnVUNFcmK1Fte0Fod2J7U31JbjNVbXR1IWl2el9kbHlBWVM2Xwp6NGZzUzclWlVvJllB
ZE9NMkx0UjRKUEtmTTVSKWBmTUgzWm9gZ3I1bDdFZSVueDJKYn1kWnx4fEVDQyNkREZKflkKej5D
cSg2Y3BNNGsxcHk/WUJ7VTklak9fZkl3e002UVgtdXUzVHJMP01OYHg1ZjtiZUc3MTRVZnVnNkpY
Nkw7WjkxCnpnSkNoZW0zRCFTbjw5VEVBOyoyeWZSZ1YwaEVuYkpvMyM8TEw8YmoxZHpEPj52UDho
Uk56fTRZMkwzUGNoJWIoKQp6JDx5Jm5uPkI2UGw9QGtZRGJyXiglJFFuZ25tVD5mT3ZrS3gkMUs7
MzUtX0phWFUmKy0lRUpBSmIyQEdzXzI4KVkKenp5SGhNMSU0aVRZO1RZJihxKkYkS2FoTEZnTEEm
UnRMJn1tRUF1fFJHXmdZV3NifTRvcyN9VSRNJkZ0Sk1FS3BlCno5KG5mZXZOSz0hfDZFPkJibF82
K0ZIaW87ZCtqZ3dvX0k5Kyh9YFdEbnMwYmBgek93JCt4ST5eYmpgZGU8RyEycwp6K0NwMzRvail2
RHdBZyQ5IXBlNyFmM1dFZiVicSh2cnxIUnhNPzNHZGpSO2xUK1dWKkNwSW96VzsjMjU5Yik0UU4K
em5lZkdtNmtsfEtvYVBIRD53b1R4ampOXjMjbX40JGdqWVJ+YjR5b3UmRW9JMD8mIUp0JDtxYj0m
ZkkrRXs0K2x5Cno4fil4aS1AUitlbFFrYmFgSjM/ak9+LSNMcEw7eGheR21hYkYxV3BRTl9xUzRu
I1EqbXtRakIwakM7ZyNecSlSagp6YHU2alVBRnVsRTtUO0Rpe0BZSilvdnxTPl4xV2VPb3xCJEZ4
YVFsJiN8QjZIa0tOVFhAIyROcXk/U3MkKlhCaGYKekRgITZiPnlRNTlnOzdIdntxZ1ZpUDV3JX5g
N190cnRxPVpyLWtgQDB0ODtnfWBzMis5RV89Q2YpU1BFR2JockhBCno7RFg9WV9HREpAJkcqYXhX
P3VaeiRpa0lISVhCRz5gUU5CR2RSQF5NJjMoXyM5QHwqKXRGdzJ5bW9OTHxzV2FidQp6YkwpY3pG
VDglcWBOMlFHPmRqNCZ2bVhwNFUrNGI0SzR5M3M0YGUpJEBqJTd7ODRxTVVrbnVwcTB+cnJ3SmRw
N34KeiNzZTctV0lUfVpLKmo/WjRgZSkkQGolN3s4NHFNVWtudXBxMH5ycndKZHA3fiNzZTctV0lU
fVpLKmo/WjVCJElHCkdmJlQqMFFibDZgCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrLnJlYWRtZSBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsucmVhZG1lCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZiMTZlM2Y2NjEwMDlhOTU2ODg2NWZiZWIwZGFlMTVkNDgzMjM3NjgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrLnJlYWRtZQpAQCAt
MCwwICsxLDE1IEBACitJbiBvcmRlciB0byBnZW5lcmF0ZSB0aGUgZ2VuYnJrIGJyZWFraW5nIHJ1
bGVzIGNvbXBpbGVyOgorCisxKSAgQ2hlY2sgb3V0IElDVQorMikgIGNkIGljdS9zb3VyY2UKKzMp
ICBta2RpciBpbnN0YWxsCis0KSAgLi9ydW5Db25maWd1cmVJQ1UgTWFjT1NYIC0tcHJlZml4PSQo
cHdkKS9pbnN0YWxsIC0tZW5hYmxlLXN0YXRpYyAtLWVuYWJsZS1yZW5hbWluZz1ubworNSkgIG1h
a2UgLWo4Cis2KSAgbWFrZSBpbnN0YWxsIC1qOAorNykgIENyZWF0ZSBhIGdlbmJyayBDKysgWGNv
ZGUgcHJvamVjdAorOCkgIERlbGV0ZSB0aGUgYXV0byBnZW5lcmF0ZWQgbWFpbi5jcHAgYW5kIGRy
YWcvY29weSBpbiBzb3VyY2UvdG9vbHMvZ2VuYnJrL2dlbmJyay5jcHAKKzkpIEFkZCBzb3VyY2Uv
Y29tbW9uIGFuZCBzb3VyY2UvdG9vbHMvdG9vbHV0aWwgdG8gdGhlIFVzZXIgSGVhZGVyIFNlYXJj
aCBQYXRocyBsaXN0IGluIHRoZSBwcm9qZWN0IGJ1aWxkIHNldHRpbmdzCisxMCkgQWRkIFVfRElT
QUJMRV9SRU5BTUlORz0xIHRvIHRoZSBwcmVwcm9jZXNzb3IgbWFjcm8gbGlzdCBpbiB0aGUgcHJv
amVjdCBidWlsZCBzZXR0aW5ncworMTEpIFVuZGVyIOKAnEJ1aWxkIFBoYXNlcyzigJ0gYWRkIGEg
bGlicmFyeSB0byBsaW5rIHdpdGgsIHNlYXJjaCBmb3Ig4oCcaWN14oCdIGFuZCBzZWxlY3QgdGhl
IHN5c3RlbSBsaWJpY3Vjb3JlCisxMikgRHJhZy9jb3B5IHNvdXJjZS9pbnN0YWxsL2xpYi9saWJp
Y3V0dS5hIGludG8gdGhlIHByb2plY3QKKzEzKSBDaGFuZ2UgYnVpbGQgY29uZmlndXJhdGlvbiB0
byBSZWxlYXNlIGFuZCBidWlsZCBpdCEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVy
YXRvci5jcHAKaW5kZXggMzFhM2YwMmIzZWNhOGUwNTNkZDUyNTI1MDUxMjUzNWZlMTBiYmIzYi4u
YzZmMDE5ZDMwM2Q1YzQ3MjcwYzEyNmViYjU0ODJjNTMzOTgyMzNhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKQEAgLTI5LDkgKzI5LDYgQEAKICNpbmNsdWRl
IDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIAotLy8g
RklYTUU6IFRoaXMgbmVlZHMgYSBiZXR0ZXIgbmFtZQotI2RlZmluZSBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApKQotCiBuYW1lc3BhY2UgV1RGIHsKIAogLy8g
SXRlcmF0b3IgaW5pdGlhbGl6YXRpb24KQEAgLTU5LDYgKzU2LDEyIEBAIHN0YXRpYyBUZXh0QnJl
YWtJdGVyYXRvciogaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGNvbnN0IGNoYXIqIGJyZWFr
UnVsZXMpCiAKICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykK
K1RleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0IHJ1
bGVTZXQpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKIAogLy8gSXRlcmF0b3Ig
dGV4dCBzZXR0aW5nCiAKQEAgLTE2NSwxMzEgKzE2OCwxNSBAQCBUZXh0QnJlYWtJdGVyYXRvciog
c2VudGVuY2VCcmVha0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogVGV4dEJyZWFrSXRlcmF0
b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiB7CiAjaWYgIVBM
QVRGT1JNKElPUykKLSAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1i
cmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKLSAgICAvLyA8aHR0cDovL3NvdXJjZS5pY3Ut
cHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9i
cmtpdHIvPi4KLSAgICAvLyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwg
b25lcyBhcmUgbGlzdGVkIGJlbG93OgotICAgIC8vICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9D
bHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkg
PSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7Ci0gICAg
Ly8gKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRl
ciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0
aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIElu
ZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKLSAgICAvLyAqIEFk
ZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5l
c2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0gICAgLy8gKiBBZGRlZCBydWxl
cyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCi0gICAgc3RhdGljIGNvbnN0IGNoYXIq
IGtSdWxlcyA9Ci0gICAgICAgICIkQ1IgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVh
ayA9IENSfV07IgotICAgICAgICAiJExGICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJl
YWsgPSBMRn1dOyIKLSAgICAgICAgIiRDb250cm9sID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gQ29udHJvbH1dOyIKLSAgICAgICAgIiRWb2ljZU1hcmtzID0gW1xcdUZGOUVcXHVGRjlG
XTsiIC8vIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCi0gICAgICAg
ICIkRXh0ZW5kICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNl
TWFya3MgLSBbXFx1MEUzMCBcXHUwRTMyIFxcdTBFNDUgXFx1MEVCMCBcXHUwRUIyXV07IgotICAg
ICAgICAiJFNwYWNpbmdNYXJrID0gW1tcXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFy
a31dIC0gJEV4dGVuZF07IgotICAgICAgICAiJEwgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBMfV07IgotICAgICAgICAiJFYgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBWfV07IgotICAgICAgICAiJFQgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBUfV07IgotICAgICAgICAiJExWICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBMVn1dOyIKLSAgICAgICAgIiRMVlQgICAgID0gW1xccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gTFZUfV07IgotICAgICAgICAiJEhpbjAgICAgPSBbXFx1MDkwNS1cXHUwOTM5
XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkSGluViAgICA9IFxc
dTA5NEQ7IiAvLyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkSGluMSAgICA9IFtc
XHUwOTE1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAg
ICIkQmVuMCAgICA9IFtcXHUwOTg1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgQSwuLi4s
SGEKLSAgICAgICAgIiRCZW5WICAgID0gXFx1MDlDRDsiIC8vIEJlbmdhbGkgU2lnbiBWaXJhbWEK
LSAgICAgICAgIiRCZW4xICAgID0gW1xcdTA5OTUtXFx1MDlCOV07IiAvLyBCZW5nYWxpIExldHRl
ciBLYSwuLi4sSGEKLSAgICAgICAgIiRQYW4wICAgID0gW1xcdTBBMDUtXFx1MEEzOV07IiAvLyBH
dXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRQYW5WICAgID0gXFx1MEE0RDsiIC8v
IEd1cm11a2hpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkUGFuMSAgICA9IFtcXHUwQTE1LVxcdTBB
MzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEd1ajAgICAgPSBb
XFx1MEE4NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBBLC4uLixIYQotICAgICAgICAi
JEd1alYgICAgPSBcXHUwQUNEOyIgLy8gR3VqYXJhdGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRH
dWoxICAgID0gW1xcdTBBOTUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhh
Ci0gICAgICAgICIkT3JpMCAgICA9IFtcXHUwQjA1LVxcdTBCMzldOyIgLy8gT3JpeWEgTGV0dGVy
IEEsLi4uLEhhCi0gICAgICAgICIkT3JpViAgICA9IFxcdTBCNEQ7IiAvLyBPcml5YSBTaWduIFZp
cmFtYQotICAgICAgICAiJE9yaTEgICAgPSBbXFx1MEIxNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExl
dHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRUZWwwICAgID0gW1xcdTBDMDUtXFx1MEMzOV07IiAv
LyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkVGVsViAgICA9IFxcdTBDNEQ7IiAv
LyBUZWx1Z3UgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRUZWwxICAgID0gW1xcdTBDMTQtXFx1MEMz
OV07IiAvLyBUZWx1Z3UgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEthbjAgICAgPSBbXFx1
MEM4NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkS2Fu
ViAgICA9IFxcdTBDQ0Q7IiAvLyBLYW5uYWRhIFNpZ24gVmlyYW1hCi0gICAgICAgICIkS2FuMSAg
ICA9IFtcXHUwQzk1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAg
ICAgIiRNYWwwICAgID0gW1xcdTBEMDUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkTWFsViAgICA9IFxcdTBENEQ7IiAvLyBNYWxheWFsYW0gU2lnbiBW
aXJhbWEKLSAgICAgICAgIiRNYWwxICAgID0gW1xcdTBEMTUtXFx1MEQzOV07IiAvLyBNYWxheWFs
YW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUkkgICAgICA9IFtcXFUwMDAxRjFFNi1cXFUw
MDAxRjFGRl07IiAvLyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCi0gICAgICAgICIkWldKICAg
ICA9IFxcdTIwMEQ7IiAvLyBaZXJvIHdpZHRoIGpvaW5lcgotICAgICAgICAiJEVtb2ppVmFyID0g
W1xcdUZFMEZdOyIgLy8gRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCi0jaWYgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1
MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQg
XFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0
NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAw
MUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxV
MDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUt
XFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2
QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjZdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBp
biBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZG
OSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxV
MDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYt
XFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0
NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAw
MUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxV
MDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYg
XFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5
MThdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNlCi0g
ICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0Njkg
XFxVMDAwMUY0OEJdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2Vz
Ci0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAw
MDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxc
VTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2
LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFG
NDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAw
MDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxc
VTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9q
aSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAgICAgICAgIiRFbW9q
aU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIgLy8gRml0enBhdHJpY2sgbW9kaWZp
ZXJzCi0gICAgICAgICIhIWNoYWluOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAg
ICAgICAgIiEhUklOb0NoYWluOyIKLSNlbmRpZgotICAgICAgICAiISFmb3J3YXJkOyIKLSAgICAg
ICAgIiRDUiAkTEY7IgotICAgICAgICAiJEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsiCi0gICAg
ICAgICIoJExWIHwgJFYpICgkViB8ICRUKTsiCi0gICAgICAgICIoJExWVCB8ICRUKSAkVDsiCi0j
aWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqIC8g
JFJJOyIKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCo7IgotICAgICAgICAiW14kQ29udHJvbCAk
Q1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdN
YXJrOyIKLSNlbHNlCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAg
ICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotICAgICAgICAiJFJJICRS
SSAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAiJEhpbjAgJEhp
blYgJEhpbjE7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRCZW4w
ICRCZW5WICRCZW4xOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkUGFu
MCAkUGFuViAkUGFuMTsiIC8vIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRH
dWowICRHdWpWICRHdWoxOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAi
JE9yaTAgJE9yaVYgJE9yaTE7IiAvLyBPcml5YSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIk
VGVsMCAkVGVsViAkVGVsMTsiIC8vIFRlbHVndSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIk
S2FuMCAkS2FuViAkS2FuMTsiIC8vIEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAi
JE1hbDAgJE1hbFYgJE1hbDE7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChmb3J3YXJkKQotICAgICAg
ICAiJFpXSiAkRW1vamlGb3JTZXFzOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVl
bmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IiAvLyBE
b24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlv
biBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0gICAgICAgICIhIXJldmVyc2U7
IgotICAgICAgICAiJExGICRDUjsiCi0gICAgICAgICIoJEwgfCAkViB8ICRMViB8ICRMVlQpICRM
OyIKLSAgICAgICAgIigkViB8ICRUKSAoJExWIHwgJFYpOyIKLSAgICAgICAgIiRUICgkTFZUIHwg
JFQpOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFeHRlbmQqICRS
SSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkk7Igot
ICAgICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNw
YWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07IgotI2Vsc2UKLSAgICAgICAgIiRFeHRlbmQg
ICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250
cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkkgJFJJOyIKLSAgICAgICAgIiRS
SSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIkSGluMSAkSGluViAkSGluMDsiIC8vIERldmFuYWdh
cmkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRCZW4xICRCZW5WICRCZW4wOyIgLy8gQmVu
Z2FsaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFBhbjEgJFBhblYgJFBhbjA7IiAvLyBH
dXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEd1ajEgJEd1alYgJEd1ajA7IiAv
LyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE9yaTEgJE9yaVYgJE9yaTA7
IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFRlbDEgJFRlbFYgJFRl
bDA7IiAvLyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRLYW4xICRLYW5WICRL
YW4wOyIgLy8gS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE1hbDEgJE1hbFYg
JE1hbDA7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRFbW9qaUZv
clNlcXMgJFpXSjsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAg
ICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyIgLy8gRG9uJ3QgYnJlYWsg
YmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3Ip
IGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAot
ICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAi
WyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIhIXNhZmVf
Zm9yd2FyZDsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0gICAgICAgICIkRW1vamlGb3JNb2RzIFsk
RW1vamlWYXIgJEVtb2ppTW9kc10rOyI7Ci0jZWxzZQotICAgICAgICAiWyRFbW9qaVZhciAkRW1v
amlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlW
YXIgJEVtb2ppTW9kc10rOyIKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiEh
c2FmZV9mb3J3YXJkOyI7Ci0jZW5kaWYKLSAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0
YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMo
a1J1bGVzKTsKKworICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGl0ZXJhdG9yRm9yUnVsZVNldChC
cmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50KSkgeworICAgICAgICBpZiAoYXV0byogaXRl
cmF0b3JXaXRoVGV4dCA9IHNldFRleHRGb3JJdGVyYXRvcigqaXRlcmF0b3IsIHN0cmluZykpCisg
ICAgICAgICAgICByZXR1cm4gaXRlcmF0b3JXaXRoVGV4dDsKKyAgICAgICAgdWJya19jbG9zZShy
ZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpKTsKKyAgICB9CisKKyAg
ICAKKyAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRl
cmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoY3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzKTsKICNlbHNlIC8vIFBMQVRGT1JNKElPUykKICAgICAvLyBVc2UgdGhlIHNwZWNpYWwg
VGhhaSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgZm9yIGFsbCBsb2NhbGVzCiAgICAgc3RhdGlj
IFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlh
bGl6ZUl0ZXJhdG9yKFVCUktfQ0hBUkFDVEVSLCAidGgiKTsKQEAgLTMxNyw0NDIgKzIwNCwyMCBA
QCB2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0
b3IpCiAgICAgTGluZUJyZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQb29sKCkucHV0KGl0ZXJhdG9y
KTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UHJvbG9ndWUgPQotICAgICIhIWNoYWlu
OyIKLSAgICAiISFMQkNNTm9DaGFpbjsiCi0gICAgIiEhbG9va0FoZWFkSGFyZEJyZWFrOyI7Ci0K
LXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQmVmb3JlID0KLSAgICAvLyBleHBs
aWNpdGx5IGVudW1lcmF0ZSAkQ0ogc2luY2UgSUNVIHZlcnNpb25zIHByaW9yIHRvIDQ5IGRvbid0
IHN1cHBvcnQgOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOgotICAgICIk
Q0ogPSBbIgotI2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVS
U0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAgICAiOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVz
ZV9TdGFydGVyOiIKLSNlbHNlCi0gICAgIlxcdTMwNDFcXHUzMDQzXFx1MzA0NVxcdTMwNDdcXHUz
MDQ5XFx1MzA2M1xcdTMwODNcXHUzMDg1XFx1MzA4N1xcdTMwOEVcXHUzMDk1XFx1MzA5NlxcdTMw
QTFcXHUzMEEzXFx1MzBBNVxcdTMwQTciCi0gICAgIlxcdTMwQTlcXHUzMEMzXFx1MzBFM1xcdTMw
RTVcXHUzMEU3XFx1MzBFRVxcdTMwRjVcXHUzMEY2XFx1MzBGQyIKLSAgICAiXFx1MzFGMFxcdTMx
RjFcXHUzMUYyXFx1MzFGM1xcdTMxRjRcXHUzMUY1XFx1MzFGNlxcdTMxRjdcXHUzMUY4XFx1MzFG
OVxcdTMxRkFcXHUzMUZCXFx1MzFGQ1xcdTMxRkRcXHUzMUZFXFx1MzFGRiIKLSAgICAiXFx1RkY2
N1xcdUZGNjhcXHVGRjY5XFx1RkY2QVxcdUZGNkJcXHVGRjZDXFx1RkY2RFxcdUZGNkVcXHVGRjZG
XFx1RkY3MCIKLSNlbmRpZgotICAgICJdOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEz
XTsiCi0gICAgIiRFWF9TVUIgPSBbXFx1MDAyMVxcdTAwM0ZcXHVGRjAxXFx1RkYxRl07IgotICAg
ICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAg
IiRJU19TVUIgPSBbXFx1MDAzQVxcdTAwM0JdOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUyMDNDXFx1
MjA0N1xcdTIwNDhcXHUyMDQ5XFx1MzAwNVxcdTMwMUNcXHUzMDNCXFx1MzA5RFxcdTMwOUVcXHUz
MEEwXFx1MzBGQlxcdTMwRkRcXHUzMEZFXFx1RkYxQVxcdUZGMUJcXHVGRjY1XTsiCi0gICAgIiRQ
T19TVUIgPSBbXFx1MDAyNVxcdTAwQTJcXHUwMEIwXFx1MjAzMFxcdTIwMzJcXHUyMDMzXFx1MjEw
M1xcdUZGMDVcXHVGRkUwXTsiCi0gICAgIiRQUl9TVUIgPSBbXFx1MDAyNFxcdTAwQTNcXHUwMEE1
XFx1MjBBQ1xcdTIxMTZcXHVGRjA0XFx1RkZFMVxcdUZGRTVdOyIKLSAgICAiJElEX0FERCA9IFsk
Q0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NV
Ql07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNz
aWdubWVudHNDdXN0b21Mb29zZU5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRF
WF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSBbXFx1MjAy
NVxcdTIwMjZdOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDA1
XFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBGRFxcdTMwRkVdOyIKLSAgICAiJFBPX1NVQiA9ICcn
OyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJElOX1NVQiAkTlNf
U1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRB
c3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA9Ci0gICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIw
MTNdOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElE
X1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDFD
XFx1MzBBMF07IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAg
ICIkSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7
Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pL
ID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NV
QiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAi
JE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIK
LSAgICAiJElEX0FERCA9IFskQ0pdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLID0KLSAgICAiJEJBX1NV
QiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAi
JElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIK
LSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9
ICcnOyIKLSAgICAiJE5TX0FERCA9IFskQ0pdOyI7Ci0KLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50
c0N1c3RvbVN0cmljdE5vbkNKSyAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksK
LSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHRDSksgICAgICAgIHVheDE0QXNz
aWdubWVudHNDdXN0b21Ob3JtYWxDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURl
ZmF1bHROb25DSksgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSksKLQotc3Rh
dGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNBZnRlciA9Ci0gICAgIiRBSSA9IFs6TGlu
ZUJyZWFrID0gQW1iaWd1b3VzOl07IgotICAgICIkQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0
aWM6XTsiCi0gICAgIiRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VC
XTsiCi0gICAgIiRCQiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07IgotICAgICIkQksg
PSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOyIKLSAgICAiJEIyID0gWzpMaW5lQnJl
YWsgPSBCcmVha19Cb3RoOl07IgotICAgICIkQ0IgPSBbOkxpbmVCcmVhayA9IENvbnRpbmdlbnRf
QnJlYWs6XTsiCi0gICAgIiRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246XTsi
Ci0gICAgIiRDTSA9IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsiCi0gICAgIiRDUCA9
IFs6TGluZUJyZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsiCi0gICAgIiRDUiA9IFs6TGluZUJy
ZWFrID0gQ2FycmlhZ2VfUmV0dXJuOl07IgotICAgICIkRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNs
YW1hdGlvbjpdIC0gJEVYX1NVQl07IgotICAgICIkR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsi
Ci0jaWYgKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01J
Tk9SX05VTSA+PSA5KQotICAgICIkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsi
Ci0jZWxzZQotICAgICIkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1dOyIKLSNlbmRpZgot
ICAgICIkSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOyIKLSAgICAiJEgyID0gWzpMaW5lQnJl
YWsgPSBIMjpdOyIKLSAgICAiJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOyIKLSAgICAiJElEID0g
W1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJd
OyIKLSAgICAiJElOID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOyIK
LSAgICAiJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07Igot
ICAgICIkSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07IgotICAgICIkSlYgPSBbOkxpbmVCcmVhayA9
IEpWOl07IgotICAgICIkSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07IgotICAgICIkTEYgPSBbOkxp
bmVCcmVhayA9IExpbmVfRmVlZDpdOyIKLSAgICAiJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xp
bmU6XTsiCi0gICAgIiROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAk
TlNfQUREXSAtICROU19TVUJdOyIKLSAgICAiJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07
IgotICAgICIkT1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsiCi0gICAgIiRQ
TyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07IgotICAgICIk
UFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07IgotICAgICIk
UVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOyIKLSAgICAiJFJJID0gW1xcVTAwMDFGMUU2
LVxcVTAwMDFGMUZGXTsiCi0gICAgIiRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0
Ol07IgotICAgICIkU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOyIKLSAgICAiJFNQID0g
WzpMaW5lQnJlYWsgPSBTcGFjZTpdOyIKLSAgICAiJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19T
eW1ib2xzOl07IgotICAgICIkV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9pbmVyOl07IgotICAg
ICIkWFggPSBbOkxpbmVCcmVhayA9IFVua25vd246XTsiCi0gICAgIiRaVyA9IFs6TGluZUJyZWFr
ID0gWldTcGFjZTpdOyIKLSAgICAiJFpXSiA9IFxcdTIwMEQ7IgotICAgICIkRW1vamlWYXIgPSBc
XHVGRTBGOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJEVtb2ppRm9yU2Vx
cyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFG
M0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAw
MDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxc
VTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgy
IFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFG
NUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAw
MDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2XTsiIC8vIEVtb2ppIHRo
YXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICIkRW1vamlGb3JNb2RzID0gW1xc
dTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxV
MDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMg
XFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0
NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAw
MUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxV
MDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIt
XFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2
QzAgXFxVMDAwMUY5MThdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmll
cnMKLSNlbHNlCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUw
MDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IgotICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1
MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFG
M0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAw
MDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxc
VTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3
IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFG
NjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAw
MDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5k
aWYKLSAgICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07IgotICAgICIk
ZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIkQUxQ
bHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOyIKLSAgICAiJEFMY20gPSAkQUxQbHVzICRDTSo7
IgotICAgICIkQkFjbSA9ICRCQSAkQ00qOyIKLSAgICAiJEJCY20gPSAkQkIgJENNKjsiCi0gICAg
IiRCMmNtID0gJEIyICRDTSo7IgotICAgICIkQ0xjbSA9ICRDTCAkQ00qOyIKLSAgICAiJENQY20g
PSAkQ1AgJENNKjsiCi0gICAgIiRFWGNtID0gJEVYICRDTSo7IgotICAgICIkR0xjbSA9ICRHTCAk
Q00qOyIKLSAgICAiJEhMY20gPSAkSEwgJENNKjsiCi0gICAgIiRIWWNtID0gJEhZICRDTSo7Igot
ICAgICIkSDJjbSA9ICRIMiAkQ00qOyIKLSAgICAiJEgzY20gPSAkSDMgJENNKjsiCi0gICAgIiRJ
RGNtID0gJElEICRDTSo7IgotICAgICIkSU5jbSA9ICRJTiAkQ00qOyIKLSAgICAiJElTY20gPSAk
SVMgJENNKjsiCi0gICAgIiRKTGNtID0gJEpMICRDTSo7IgotICAgICIkSlZjbSA9ICRKViAkQ00q
OyIKLSAgICAiJEpUY20gPSAkSlQgJENNKjsiCi0gICAgIiROU2NtID0gJE5TICRDTSo7IgotICAg
ICIkTlVjbSA9ICROVSAkQ00qOyIKLSAgICAiJE9QY20gPSAkT1AgJENNKjsiCi0gICAgIiRQT2Nt
ID0gJFBPICRDTSo7IgotICAgICIkUFJjbSA9ICRQUiAkQ00qOyIKLSAgICAiJFFVY20gPSAkUVUg
JENNKjsiCi0gICAgIiRSSWNtID0gJFJJICRDTSo7IgotICAgICIkU1ljbSA9ICRTWSAkQ00qOyIK
LSAgICAiJFdKY20gPSAkV0ogJENNKjsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRGb3J3
YXJkID0KLSAgICAiISFmb3J3YXJkOyIKLSAgICAiJENBTl9DTSA9IFteJFNQICRCSyAkQ1IgJExG
ICROTCAkWlcgJENNXTsiCi0gICAgIiRDQU5UX0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwgJFpX
ICRDTV07IgotICAgICIkQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1Bd
OyIKLSAgICAiJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRTWSAkV0ogJEdM
ICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsiCi0gICAgIiRBTF9GT0xMT1cg
PSBbJEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOyIKLSAgICAiJExCNEJyZWFrcyA9IFsk
QksgJENSICRMRiAkTkxdOyIKLSAgICAiJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5M
XTsiCi0gICAgIiRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOyIKLSAgICAiJExCOE5vbkJy
ZWFrcyA9IFtbJExCNE5vbkJyZWFrc10gLSBbJFpXXV07IgotICAgICIkTEIxOE5vbkJyZWFrcyA9
IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOyIKLSAgICAiJExCMThCcmVha3MgPSBbJExCOEJyZWFr
cyAkU1BdOyIKLSAgICAiJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVha3MgLSAkQ0JdOyIK
LSAgICAiJEFMUGx1cyAkQ00rOyIKLSAgICAiJEJBICRDTSs7IgotICAgICIkQkIgJENNKzsiCi0g
ICAgIiRCMiAkQ00rOyIKLSAgICAiJENMICRDTSs7IgotICAgICIkQ1AgJENNKzsiCi0gICAgIiRF
WCAkQ00rOyIKLSAgICAiJEdMICRDTSs7IgotICAgICIkSEwgJENNKzsiCi0gICAgIiRIWSAkQ00r
OyIKLSAgICAiJEgyICRDTSs7IgotICAgICIkSDMgJENNKzsiCi0gICAgIiRJRCAkQ00rOyIKLSAg
ICAiJElOICRDTSs7IgotICAgICIkSVMgJENNKzsiCi0gICAgIiRKTCAkQ00rOyIKLSAgICAiJEpW
ICRDTSs7IgotICAgICIkSlQgJENNKzsiCi0gICAgIiROUyAkQ00rOyIKLSAgICAiJE5VICRDTSs7
IgotICAgICIkT1AgJENNKzsiCi0gICAgIiRQTyAkQ00rOyIKLSAgICAiJFBSICRDTSs7IgotICAg
ICIkUVUgJENNKzsiCi0gICAgIiRSSSAkQ00rOyIKLSAgICAiJFNZICRDTSs7IgotICAgICIkV0og
JENNKzsiCi0gICAgIiRDUiAkTEYgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzPyAkTEI0QnJl
YWtzIHsxMDB9OyIKLSAgICAiJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEwMH07IgotICAgICIk
Q00rICRMQjRCcmVha3MgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsiCi0g
ICAgIiRDQU5fQ00gJENNKiBbJFNQICRaV107IgotICAgICIkQ00rIFskU1AgJFpXXTsiCi0gICAg
IiRFbW9qaUZvclNlcXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7
IgotICAgICIkQ0FOX0NNICRDTSs7IgotICAgICIkQ00rOyIKLSAgICAiJENBTl9DTSAkQ00qICRX
SmNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkV0pjbTsiCi0gICAgIiRDTSsgJFdKY207IgotICAg
ICIkV0pjbSAkQ0FOVF9DTTsiCi0gICAgIiRXSmNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNt
ICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5UX0NNOyIKLSAgICAiW1skTEI4Tm9uQnJl
YWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSogJEdMY207IgotICAgICIkQ00rIEdMY207IgotICAg
ICIkTEI4Tm9uQnJlYWtzICRDTDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ0w7IgotICAgICIkQ00r
ICRDTDsiCi0gICAgIiRMQjhOb25CcmVha3MgJENQOyIKLSAgICAiJENBTl9DTSAkQ00qICRDUDsi
Ci0gICAgIiRDTSsgJENQOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkRVg7IgotICAgICIkQ0FOX0NN
ICRDTSogJEVYOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkTEI4Tm9uQnJlYWtzICRJUzsiCi0g
ICAgIiRDQU5fQ00gJENNKiAkSVM7IgotICAgICIkQ00rICRJUzsiCi0gICAgIiRMQjhOb25CcmVh
a3MgJFNZOyIKLSAgICAiJENBTl9DTSAkQ00qICRTWTsiCi0gICAgIiRDTSsgJFNZOyIKLSAgICAi
JE9QY20gJFNQKiAkQ0FOX0NNICRDTSo7IgotICAgICIkT1BjbSAkU1AqICRDQU5UX0NNOyIKLSAg
ICAiJE9QY20gJFNQKyAkQ00rICRBTF9GT0xMT1c/OyIKLSAgICAiJFFVY20gJFNQKiAkT1BjbTsi
Ci0gICAgIigkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOyIKLSAgICAiJEIyY20gJFNQKiAkQjJj
bTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207IgotICAgICIkQ00rICRRVWNtOyIK
LSAgICAiJFFVY20gLj87IgotICAgICIkUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00qOyIKLSAgICAi
JExCMjBOb25CcmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsgIgotICAgICIkQkJj
bSBbXiRDQl07IgotICAgICIkQkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJEhMY20g
KCRIWWNtIHwgJEJBY20pIFteJENCXT87IgotICAgICIkU1ljbSAkSExjbTsiCi0gICAgIigkQUxj
bSB8ICRITGNtKSAkSU5jbTsiCi0gICAgIiRDTSsgJElOY207IgotICAgICIkRVhjbSAkSU5jbTsi
Ci0gICAgIiRJRGNtICRJTmNtOyIKLSAgICAiJElOY20gJElOY207IgotICAgICIkTlVjbSAkSU5j
bTsiCi0gICAgIiRJRGNtICRQT2NtOyIKLSAgICAiJEFMY20gJE5VY207IgotICAgICIkSExjbSAk
TlVjbTsiCi0gICAgIiRDTSsgJE5VY207IgotICAgICIkTlVjbSAkQUxjbTsiCi0gICAgIiROVWNt
ICRITGNtOyIKLSAgICAiJFBSY20gJElEY207IgotICAgICIkUFJjbSAoJEFMY20gfCAkSExjbSk7
IgotICAgICIkUE9jbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJFBSY20gfCAkUE9jbSk/ICgk
T1BjbSB8ICRIWWNtKT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRD
UGNtKT8gKCRQUmNtIHwgJFBPY20pPzsiCi0gICAgIiRKTGNtICgkSkxjbSB8ICRKVmNtIHwgJEgy
Y20gfCAkSDNjbSk7IgotICAgICIoJEpWY20gfCAkSDJjbSkgKCRKVmNtIHwgJEpUY20pOyIKLSAg
ICAiKCRKVGNtIHwgJEgzY20pICRKVGNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8
ICRIMmNtIHwgJEgzY20pICRJTmNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRI
MmNtIHwgJEgzY20pICRQT2NtOyIKLSAgICAiJFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8
ICRIMmNtIHwgJEgzY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNtKTsi
Ci0gICAgIiRDTSsgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJElTY20gKCRBTGNtIHwgJEhMY20p
OyIKLSAgICAiKCRBTGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207IgotICAgICIkQ00rICRPUGNt
OyIKLSAgICAiJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7IgotI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAotICAgICIkUkljbSAkUkljbTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppRm9y
TW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0
UmV2ZXJzZSA9Ci0gICAgIiEhcmV2ZXJzZTsiCi0gICAgIiRDTSsgJEFMUGx1czsiCi0gICAgIiRD
TSsgJEJBOyIKLSAgICAiJENNKyAkQkI7IgotICAgICIkQ00rICRCMjsiCi0gICAgIiRDTSsgJENM
OyIKLSAgICAiJENNKyAkQ1A7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRDTSsgJEdMOyIKLSAg
ICAiJENNKyAkSEw7IgotICAgICIkQ00rICRIWTsiCi0gICAgIiRDTSsgJEgyOyIKLSAgICAiJENN
KyAkSDM7IgotICAgICIkQ00rICRJRDsiCi0gICAgIiRDTSsgJElOOyIKLSAgICAiJENNKyAkSVM7
IgotICAgICIkQ00rICRKTDsiCi0gICAgIiRDTSsgJEpWOyIKLSAgICAiJENNKyAkSlQ7IgotICAg
ICIkQ00rICROUzsiCi0gICAgIiRDTSsgJE5VOyIKLSAgICAiJENNKyAkT1A7IgotICAgICIkQ00r
ICRQTzsiCi0gICAgIiRDTSsgJFBSOyIKLSAgICAiJENNKyAkUVU7IgotI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAotICAgICIkQ00rICRSSTsiCi0jZW5kaWYKLSAgICAiJENNKyAkU1k7Igot
ICAgICIkQ00rICRXSjsiCi0gICAgIiRDTSs7IgotICAgICIkQUxfRk9MTE9XICRDTSsgLyAoWyRC
SyAkQ1IgJExGICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14k
T1AgJENNICRTUF0gfCBbJEFMIHtlb2Z9XSkpOyIKLSAgICAiWyRQUl0gLyAkQ00rIFskQksgJENS
ICRMRiAkTkwgJFpXICRTUCB7ZW9mfV07IgotICAgICIkTEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtz
LSRDTV07IgotICAgICIkTEI0QnJlYWtzICRDTSsgJENBTl9DTTsiCi0gICAgIiRMRiAkQ1I7Igot
ICAgICJbJFNQICRaV10gWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIlskU1AgJFpXXSAkQ00r
ICRDQU5fQ007IgotICAgICIkRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2ppVmFy
PyAkRW1vamlGb3JTZXFzOyIKLSAgICAiJENNKyAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogJENN
KiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRD
QU5UX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFdKOyIKLSAgICAiJENN
KiAkR0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZXV07IgotICAgICIkQ0FO
VF9DTSAkQ00qICRHTDsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRHTDsiCi0gICAgIiRDTCAk
Q00rICRDQU5fQ007IgotICAgICIkQ1AgJENNKyAkQ0FOX0NNOyIKLSAgICAiJEVYICRDTSsgJENB
Tl9DTTsiCi0gICAgIiRJUyAkQ00rICRDQU5fQ007IgotICAgICIkU1kgJENNKyAkQ0FOX0NNOyIK
LSAgICAiJENMIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ1AgWyRMQjhOb25CcmVha3Mt
JENNXTsiCi0gICAgIiRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJElTIFskTEI4Tm9u
QnJlYWtzLSRDTV07IgotICAgICIkU1kgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIlskQ0wg
JENQICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7ICIKLSAgICAiJENNKiAkQ0FOX0NN
ICRTUCogJENNKiAkT1A7IgotICAgICIkQ0FOVF9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAiJEFM
X0ZPTExPVz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xMT1dfTk9DTSAk
Q00rICRTUCsgJENNKiAkT1A7IgotICAgICIkQ00qICRBTF9GT0xMT1dfQ00gJENNKyAkU1ArICRD
TSogJE9QOyIKLSAgICAiJFNZICRDTSAkU1ArICRPUDsiCi0gICAgIiRDTSogJE9QICRTUCogJENN
KiAkUVU7IgotICAgICIkQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIkQ00q
ICRCMiAkU1AqICRDTSogJEIyOyIKLSAgICAiJENNKiAkUVUgJENNKiAkQ0FOX0NNOyIKLSAgICAi
JENNKiAkUVUgJExCMThOb25CcmVha3M7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkUVU7Igot
ICAgICIkQ0FOVF9DTSAkQ00qICRRVTsiCi0gICAgIiRDTSogKCRCQSB8ICRIWSB8ICROUykgJENN
KiBbJExCMjBOb25CcmVha3MtJENNXTsiCi0gICAgIiRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV0g
JENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAoJEhZ
IHwgJEJBKSAkQ00qICRITDsiCi0gICAgIiRDTSogJEhMICRDTSogJFNZOyIKLSAgICAiJENNKiAk
SU4gJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICRJTiAkQ00qICRFWDsiCi0gICAg
IiRDTSogJElOICRDTSogJElEOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSU47IgotICAgICIkQ00q
ICRJTiAkQ00qICROVTsiCi0gICAgIiRDTSogJFBPICRDTSogJElEOyIKLSAgICAiJENNKiAkTlUg
JENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRO
VTsiCi0gICAgIiRDTSogJElEICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkg
JENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQTzsiCi0gICAgIigk
Q00qICgkUFIgfCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElTIHwg
JFNZKSkqICRDTSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykpPzsi
Ci0gICAgIiRDTSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7IgotICAgICIkQ00q
ICgkSlQgfCAkSlYpICRDTSogKCRIMiB8ICRKVik7IgotICAgICIkQ00qICRKVCAkQ00qICgkSDMg
fCAkSlQpOyIKLSAgICAiJENNKiAkSU4gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpM
KTsiCi0gICAgIiRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7Igot
ICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSogJFBSOyIKLSAgICAi
JENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgk
QUxQbHVzIHwgJEhMKSAkQ00qICRJUzsiCi0gICAgIiRDTSogJE9QICRDTSogKCRBTFBsdXMgfCAk
SEwgfCAkTlUpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7Igot
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00qICRSSSAkQ00qICRSSTsiCi0j
ZW5kaWYKLSAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7IjsKLQotc3Rh
dGljIGNvbnN0IGNoYXIqIHVheDE0U2FmZUZvcndhcmQgPQotICAgICIhIXNhZmVfZm9yd2FyZDsi
Ci0gICAgIlskQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25h
cnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsi
Ci0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1
YXgxNFNhZmVSZXZlcnNlID0KLSAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICIkQ00rIFteJENN
ICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRDTSsgJFNQIC8gLjsiCi0gICAgIiRT
UCsgJENNKiAkT1A7IgotICAgICIkU1ArICRDTSogJFFVOyIKLSAgICAiJFNQKyAkQ00qICgkQ0wg
fCAkQ1ApOyIKLSAgICAiJFNQKyAkQ00qICRCMjsiCi0gICAgIiRDTSogKCRIWSB8ICRCQSkgJENN
KiAkSEw7IgotICAgICIoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOyIKLSAgICAiKCRDTCB8
ICRDUCkgJENNKiAoJE5VIHwgJElTIHwgJFNZKTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9u
YXJ5OyI7Ci0KIHN0YXRpYyBTdHJpbmcgbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMoTGluZUJy
ZWFrSXRlcmF0b3JNb2RlIG1vZGUsIGJvb2wgaXNDSkspCiB7Ci0gICAgU3RyaW5nQnVpbGRlciBy
dWxlc0J1aWxkZXI7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFByb2xvZ3VlKTsKLSAg
ICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNCZWZvcmUpOwogICAgIHN3aXRj
aCAobW9kZSkgewogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTQ6Ci0gICAgICAg
IHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVs
dENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLKTsKLSAgICAgICAgYnJl
YWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSktSdWxl
cyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVh
a0l0ZXJhdG9yTW9kZVVBWDE0TG9vc2U6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXND
SksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3Vz
dG9tTG9vc2VOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8g
bGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0
Tm9ybWFsOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25t
ZW50c0N1c3RvbU5vcm1hbENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxOb25DSksp
OwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNK
S1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRTdHJpY3Q6Ci0gICAg
ICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3Ry
aWN0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyk7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CiAgICAg
fQotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0FmdGVyKTsKLSAgICBy
dWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0Rm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVu
ZCh1YXgxNFJldmVyc2UpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZlRm9yd2Fy
ZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVSZXZlcnNlKTsKLSAgICByZXR1
cm4gcnVsZXNCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuICIiOwogfQogCiAvLyBSZWNvZ25pemUgQkNQNDcgY29tcGxpYW50IHByaW1hcnkg
bGFuZ3VhZ2UgdmFsdWVzIG9mICd6aCcsICdqYScsICdrbycKQEAgLTc4Niw2ICsyNTEsMjQgQEAg
VGV4dEJyZWFrSXRlcmF0b3IqIG9wZW5MaW5lQnJlYWtJdGVyYXRvcihjb25zdCBBdG9taWNTdHJp
bmcmIGxvY2FsZSwgTGluZUJyZWFrSXQKICAgICBpZiAobW9kZSA9PSBMaW5lQnJlYWtJdGVyYXRv
ck1vZGVVQVgxNCkKICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBsb2Nh
bGVJc0VtcHR5ID8gY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkgOiBsb2NhbGUuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOwogICAgIGVsc2UgeworICAgICAgICBC
cmVha2luZ1J1bGVTZXQgcnVsZVNldDsKKyAgICAgICAgc3dpdGNoIChtb2RlKSB7CisgICAgICAg
IGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTQ6CisgICAgICAgICAgICBydWxlU2V0ID0g
aXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgx
NE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJh
dG9yTW9kZVVBWDE0TG9vc2U6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2lu
Z1J1bGVTZXQ6OlVBWDE0TG9vc2VDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25D
Sks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1v
ZGVVQVgxNE5vcm1hbDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVs
ZVNldDo6VUFYMTROb3JtYWxDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pL
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2Rl
VUFYMTRTdHJpY3Q6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVT
ZXQ6OlVBWDE0U3RyaWN0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdE5vbkNKSzsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChhdXRvKiBpdGVyYXRv
ciA9IGl0ZXJhdG9yRm9yUnVsZVNldChydWxlU2V0KSkKKyAgICAgICAgICAgIHJldHVybiBpdGVy
YXRvcjsKKwogICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKICAgICAgICAgYXV0byBy
dWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsKICAgICAgICAg
dWJya0l0ZXIgPSB1YnJrX29wZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRlZENo
YXJhY3RlcnMoKSwgcnVsZXMubGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0
dXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5o
IGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCmluZGV4IGQ5MDMyMTVh
ZTQxMzdlNGMzYTllYTM1YjNkMDI1YmY1MmU0NTE4ZWMuLmQyZDA3YzI4ZmI4ZDQwOTllZTk2OWMy
MGY1ODQ4OTIyOGZiMDA3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJy
ZWFrSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9y
LmgKQEAgLTM4LDYgKzM4LDMwIEBAIGVudW0gTGluZUJyZWFrSXRlcmF0b3JNb2RlIHsKICAgICBM
aW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNFN0cmljdCwKIH07CiAKK2VudW0gY2xhc3MgQnJlYWtp
bmdSdWxlU2V0IHsKKyAgICBDdXJzb3JNb3ZlbWVudCwKKyAgICBVQVgxNENKSywKKyAgICBVQVgx
NE5vbkNKSywKKyAgICBVQVgxNExvb3NlQ0pLLAorICAgIFVBWDE0TG9vc2VOb25DSkssCisgICAg
VUFYMTROb3JtYWxDSkssCisgICAgVUFYMTROb3JtYWxOb25DSkssCisgICAgVUFYMTRTdHJpY3RD
SkssCisgICAgVUFYMTRTdHJpY3ROb25DSksKK307CisKK2V4dGVybiBjb25zdCBjaGFyKiBjdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRl
cmF0b3JVQVgxNENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3RDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CisKK1RleHRCcmVha0l0ZXJhdG9yKiBpdGVy
YXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0KTsKKwogLy8gVGhpcyBpcyBzaW1pbGFyIHRv
IGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBpbiBtb3N0IGNhc2VzLCBidXQgaXMgc3ViamVjdCB0
bwogLy8gcGxhdGZvcm0gVUkgY29udmVudGlvbnMuIE9uZSBub3RhYmxlIGV4YW1wbGUgd2hlcmUg
dGhpcyBjYW4gYmUgZGlmZmVyZW50CiAvLyBmcm9tIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBp
cyBUaGFpIHByZXBlbmQgY2hhcmFjdGVycywgc2VlIGJ1ZyAyNDM0Mi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0g
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFj
Lm1tCmluZGV4IGJlZjVkYWE2NDI4ODgyMWUyMGYyNjI4YzY4NTVlZThlODhhMzg5MmMuLjZkZjhj
ZDYwZDZkMjRmYzFlMDBjMjYzZDk3Y2Q3NGFmNzY0MTJmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5t
bQpAQCAtMjEsMTIgKzIxLDc1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0
b3IuaCIKKworI2lmIGRlZmluZWQoVV9TSE9XX0NQTFVTUExVU19BUEkpCisjdW5kZWYgVV9TSE9X
X0NQTFVTUExVU19BUEkKKyNlbmRpZgorI2RlZmluZSBVX1NIT1dfQ1BMVVNQTFVTX0FQSSAxCisK
KyNpbmNsdWRlIDx1bmljb2RlL3JiYmkuaD4KKyNpbmNsdWRlIDx1bmljb2RlL3VkYXRhLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCitAaW50ZXJmYWNlIFdURkJ1bmRsZUZpbmRlciA6
IE5TT2JqZWN0CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXVEZCdW5kbGVGaW5kZXIKK0BlbmQK
KwogbmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdCBpbnQgbWF4TG9jYWxlU3RyaW5nTGVu
Z3RoID0gMzI7CiAKK1RleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtp
bmdSdWxlU2V0IHJ1bGVTZXQpCit7CisgICAgTlNTdHJpbmcgKmZpbGVOYW1lQmFzZTsKKyAgICBz
d2l0Y2ggKHJ1bGVTZXQpIHsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1l
bnQ6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLOgor
ICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksiOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks6CisgICAg
ICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSyI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLOgorICAg
ICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSyI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pL
OgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5v
cm1hbENKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVB
WDE0Tm9ybWFsTm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxOb25DSksiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5n
UnVsZVNldDo6VUFYMTRTdHJpY3RDSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJl
YWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdE5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0g
QCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLIjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorCisgICAgTlNCdW5kbGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpb
V1RGQnVuZGxlRmluZGVyIGNsYXNzXV07CisgICAgTlNTdHJpbmcgKnBhdGggPSBbYnVuZGxlIHBh
dGhGb3JSZXNvdXJjZTpmaWxlTmFtZUJhc2Ugb2ZUeXBlOkAiYnJrIiBpbkRpcmVjdG9yeTpAIkJy
ZWFraW5nUnVsZXMiXTsKKyAgICBpZiAoIXBhdGgpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIE5TU3RyaW5nICpkaXJlY3RvcnkgPSBbcGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhD
b21wb25lbnRdOworICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAg
IExvY2FsVURhdGFNZW1vcnlQb2ludGVyIGRhdGEodWRhdGFfb3BlbihbZGlyZWN0b3J5IFVURjhT
dHJpbmddLCAiYnJrIiwgW2ZpbGVOYW1lQmFzZSBVVEY4U3RyaW5nXSwgJmVycm9yQ29kZSkpOwor
ICAgIGlmIChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICBhdXRvIGl0ZXJhdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yPihkYXRhLm9ycGhhbigpLCBlcnJvckNvZGUpOworICAgIGlmIChlcnJvckNvZGUgIT0g
VV9aRVJPX0VSUk9SKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxUZXh0QnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yLnJlbGVhc2UoKSk7Cit9CisK
IHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVm
ZXJlbmNlKCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFk
b3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlWYWx1ZShDRlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUi
KSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285499</attachid>
            <date>2016-08-06 15:14:06 -0700</date>
            <delta_ts>2016-08-06 15:39:16 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160806151237.patch</filename>
            <type>text/plain</type>
            <size>275182</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTFhOGVhNzFmOTFiNmU2MWM4MGI2MWVhNDFiZjQ1MWEyNjBjNGM3Li5iNTcyMTlmMjI4ODQ0NDM0
MzNkODM3NWUyZWE2YjVlMTRiNmQxYTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wNiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDUgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIExFQkRlY29kZXIgYW5kIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyNmIyZWJmZmUy
Y2FkYTM3Y2NkYWUzY2VkZjZlZmM4NTNiNjE2YjEuLjJkNWM0Yzk0ZjZmZmE4ODk4YjIyMWI1ODQ5
NTZiOTU4ZTM0MjgxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgtMDYgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBi
cmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTog
QWRkZWQuCisgICAgICAgICogd3RmL2dlbmJyazogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisg
ICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuY3BwOgorICAgICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RG
OjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0
ZXJhdG9yKToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAg
ICAqIHd0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAg
ICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorCiAyMDE2LTA4LTA2ICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV1RGIG5lZWRzIGEgdmFyaWFudCBpbXBsZW1l
bnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMzBkYzllNGQwMjAzNjIw
YjE0Y2EyMjhiNGViMmJiNGZkZWNlZjBkLi4xYWJlNDdjMjQ2NGRhODk4ZmFkNTMwYWNjMzI2Mzdj
OGJkYTYyYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOSw2ICsxMTA5
LDcgQEAKIAkJMTRGOTc0NDcxMzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhD
ODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBK
U1N0cmluZ1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNG
NzM3NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5j
cHAgKi87IH07CisJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFE
NTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2
MkQ4NUI2MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQx
QzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07
CkBAIC0zMjcyLDYgKzMyNzMsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFz
ZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYg
LyogSmF2YVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2Ny
aXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQx
QkNGRiAvKiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKYXZhU2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4
RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7
IHBhdGggPSAuLi9XVEYvQnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9p
bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0
aCA9IGIzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTQzOCw2ICs1NDQwLDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAw
NzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVs
ZXMgKi8sCiAJCQkJMEY2MTgzMzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAog
CQkJCTBGNjE4MzM0MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywK
IAkJCQkwRjYxODMzNTFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAg
LTg0NTcsNiArODQ2MCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBp
biBSZXNvdXJjZXMgKi8sCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5n
UnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggM2JhODA0MDZiNjg3ODcyY2RjMmUzZTgxNmJlYjAwNDNhOTM5YzI3MC4uMGZj
MzY2OTg0ZGMxYmI5ZGY5NGM3YzFjMGE1YzdhMDQzZTdjNzVhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcsMTcgQEAKIAlvYmplY3RzID0gewog
CiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2
OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVn
YXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMw
MENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4Nzgy
MUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOwor
CQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsK
KwkJCXByb2R1Y3ROYW1lID0gIkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2
MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFn
Z3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBC
OTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtMzEyLDYgKzMyMywxNSBAQAogCQlBOEE0
NzQ4NzE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlRocmVhZERhdGEuaCAqLzsgfTsKIAkJQThBNDc0OEMxNTFBODI2NDAwNDEyM0ZGIC8qIGNv
bmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1
M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJl
RGVmaW5lcy5oICovOyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMuY3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VDMUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTMxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi87IH07CisJ
CUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Ez
N0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAq
LzsgfTsKKwkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksuY3BwICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YwMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U3MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLzsgfTsKKwkJ
QzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwICovOyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkz
NjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgKi87IH07CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKQEAgLTM0NCw2ICszNjQsMTMgQEAKIAkJ
CXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVt
b3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsK
KwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0
IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9
IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3Vy
Y2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRh
aW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAq
LzsKQEAgLTQzNiw2ICs0NjMsMTggQEAKIAkJMUMxODFDOEQxRDMwN0FCODAwRjVGQTE2IC8qIFVU
ZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzE4MUM4RTFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZBMTYgLyogVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHBhdGggPSBtYWMv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NTFENTU5QTY5MDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
QjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25D
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkxRDU1OUFFRjAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0OyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUMx
RDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNv
dXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMubWFrZTsgcGF0aCA9IHd0Zi9EZXJp
dmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1c2VzVGFicyA9IDE7IH07
CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQ7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RFQyAvKiBMaW5lQnJlYWtJ
dGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODgx
NTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJU
b1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50
ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjU4LDYgKzY5NywxNSBAQAogCQlBOEE0NzM3QjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFk
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZUaHJlYWREYXRhLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAv
KiBjb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBG
ZWF0dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJl
RGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMDFENTVDOTcx
MDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7
IHBhdGggPSBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
MkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBN
ZWRpYVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjUsNiArNzczLDI0IEBACiAJCQlwYXRo
ID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUNEMTg3OTExRDU1
OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RF
QyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLywKKwkJCQkxQ0I0RkI5NDFENTU5
QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8sCisJCQkJMUNC
NEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0
ICovLAorCQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLywKKwkJ
CQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5
RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQg
Ki8sCisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTc0NiwxMCArODEyLDEyIEBA
CiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3Vy
Y2VzLm1ha2UgKi8sCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAwRTc4Qjc2IC8qIENvbmZpZ3VyYXRp
b25zICovLAogCQkJCTE0MDIyRjNGMThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJ
CQkJNUQyNDdCNjMxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2R1Y3RzICovLAogCQkJCTVEMjQ3Qjc2
MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJCQkJQzJDQTM3REYxRDU1QzhEODAwNDg2
Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYg
LyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZG
IC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtMTA4Myw2ICsxMTUxLDcgQEAKIAkJ
QThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVh
a2luZ1J1bGVzICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3UgKi8sCiAJ
CQkJQTVCQTE1RjYxODI0MzU5RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCUE1QkExNUYxMTgyNDMz
OUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMTU4LDYgKzEyMjcsMjMgQEAKIAkJCXBhdGggPSBp
Y3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkNBMzdERjFENTVDOEQ4
MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTIxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi8sCisJCQkJ
QzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNjFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAg
Ki8sCisJCQkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSksuY3BwICovLAorCQkJCUMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0g
IkRlcml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvV1RGOworCQkJc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsKIAkJQ0U0NjUxNkMxOURCMUZCNDAw
M0VDQTA1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTE0NzAsNiArMTU1Niw3IEBACiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRl
cGVuZGVuY2llcyA9ICgKKwkJCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gV1RGOwpAQCAtMTUwMCwxMiArMTU4Nywy
NyBAQAogCQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RG
ICovLAogCQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICov
LAorCQkJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJ
CQkJMTQ0N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFsbG9jICovLAogCQkJKTsKIAkJfTsK
IC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRC
dWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVy
YXRlIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQ
aGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJ
CSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgRGVyaXZl
ZCBTb3VyY2VzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNo
ZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzL1dURlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZc
IlxuXG4vYmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV1RGXG5leHBvcnQgV1RGPVwiV1RGXCJc
blxuaWYgWyAhIC1kIEJyZWFraW5nUnVsZXMgXTsgdGhlblxuICAgIG1rZGlyIEJyZWFraW5nUnVs
ZXNcbmZpXG5cbmV4cG9ydCBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTPTFcbmlmIFsgXCIkTUFD
T1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMFwiIF07IHRoZW5cbiAgICBleHBvcnQg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUPTBcbmVsc2VcbiAgICBleHBvcnQgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUPTFcbmZpXG5cbmlmIFsgXCIke0FDVElPTn1cIiA9IFwiYnVpbGRcIiAtbyBc
IiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGhk
cnNcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsYXBpXCIgXTsgdGhlblxubWFrZSAtLW5v
LWJ1aWx0aW4tcnVsZXMgLWYgXCJXVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2VcIiAtaiBgL3Vz
ci9zYmluL3N5c2N0bCAtbiBody5hY3RpdmVjcHVgIFNES1JPT1Q9XCIke1NES1JPT1R9XCJcbmZp
XG4iOworCQl9OwogCQk2NUFGQTE3MDE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVy
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNTM2LDYgKzE2MzgsOCBAQAogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUE4QTQ3Mzg2MTUxQTgyNUIw
MDQxMjNGRiAvKiBBc3NlcnRpb25zLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0YxMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDM1
MTUxQTgyNUIwMDQxMjNGRiAvKiBBdG9taWNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NzBFQ0E2MEQxQjAyNDI2ODAwNDQ5NzM5IC8qIEF0b21pY1N0cmluZ0ltcGwuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTVCQTE1RkExODI0MzVBNjAwQTgyRTY5IC8qIEF0b21pY1N0cmluZ0ltcGxD
Ri5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1NjMsNiArMTY2Nyw3IEBACiAJCQkJQThBNDczQjAx
NTFBODI1QjAwNDEyM0ZGIC8qIGRvdWJsZS1jb252ZXJzaW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDczQkExNTFBODI1QjAwNDEyM0ZGIC8qIGR0b2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDczQjMxNTFBODI1QjAwNDEyM0ZGIC8qIGZhc3QtZHRvYS5jYyBpbiBTb3VyY2VzICov
LAorCQkJCUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGODg1RTBGMTg0NUFFQTkwMEYxRTNGQSAv
KiBGYXN0Qml0VmVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0MzMTUxQTgyNUIw
MDQxMjNGRiAvKiBGYXN0TWFsbG9jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDRUUyMjAxMUNF
QTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRpb25zLm1tIGluIFNvdXJjZXMgKi8sCkBA
IC0xNTc4LDYgKzE2ODMsNyBAQAogCQkJCUE4QTQ3M0U5MTUxQTgyNUIwMDQxMjNGRiAvKiBNRDUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1NDk3QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlh
VGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNFQzE1MUE4MjVCMDA0MTIzRkYgLyog
TWV0YUFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdGMDFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzNGNDE1MUE4MjVCMDA0MTIzRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBOEE0NzNGNzE1MUE4MjVCMDA0MTIzRkYgLyogT1NBbGxvY2F0b3JQ
b3NpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGOTE1MUE4MjVCMDA0MTIzRkYgLyog
T1NSYW5kb21Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNTg1LDYgKzE2OTEsNyBAQAog
CQkJCTFDMTgxQzkzMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZGRjE5REMxQkIzMzRFQjAwODg2RDkxIC8qIFBhcmFsbGVsSGVs
cGVyUG9vbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjgyNEE2ODFCNzQ0M0EwMDAyRTM0NUQg
LyogUGFya2luZ0xvdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRTFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjlEMzM2MjE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MTQxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJl
ci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE2MTksOSArMTcyNiwxMyBAQAogCQkJCUE4QTQ3NDRB
MTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDc0NEUxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZGluZ1B0aHJlYWRzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QTQ3NDY5MTUxQTgyNUIwMDQxMjNGRiAvKiBVVEY4LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUZBNDdDOEExNTI1MDJEQTAw
NTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFNDQ3OUMx
QjdBQUEwMzAwOTQ5OEVCIC8qIFdvcmRMb2NrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0Ez
N0U5MUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEQ0VFMjIwMzFDRUE3
NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBMEFEMzkxQTk2MjQ1NTAwNTM2
REY2IC8qIFdvcmtRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzRDFBOTYyNTND
MDA1MzZERjYgLyogV29ya1F1ZXVlQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0
NDUxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE2
MzcsNiArMTc0OCwxMSBAQAogCQkJdGFyZ2V0ID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8q
IFdURiAqLzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FFQzMxOEZDRTU3MDAwQjNEN0ZGIC8qIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJMUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVD
IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRl
bmN5OworCQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291
cmNlcyAqLzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJNjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjND
IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRl
bmN5OwogCQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhl
YWRlcnMgKi87CkBAIC0xNjY2LDYgKzE3ODIsMzAgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVj
dGlvbjsKIAkJfTsKKwkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICovID0gewor
CQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVy
ZW5jZSA9IDY1NDFDQUY0MTYzMERCMjYwMDZEMERFQyAvKiBDb3B5V1RGSGVhZGVycy54Y2NvbmZp
ZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VU
X05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTFDRDE4Nzg1MUQ1NTY5
NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRp
b247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDY1NDFDQUY0MTYzMERCMjYwMDZE
MERFQyAvKiBDb3B5V1RGSGVhZGVycy54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7
CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0g
UmVsZWFzZTsKKwkJfTsKKwkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rpb24g
Ki8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0
aW9uUmVmZXJlbmNlID0gNjU0MUNBRjQxNjMwREIyNjAwNkQwREVDIC8qIENvcHlXVEZIZWFkZXJz
LnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAi
JChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1
RDI0N0I2NDE0Njg5Qjg2MDBFNzhCNzYgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxk
Q29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAx
NDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKQEAgLTE3NDksNiAr
MTg4OSwxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVm
YXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODMxRDU1
Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRl
VGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9u
TGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJMUNEMTg3ODQxRDU1Njk1QzAw
Q0M3REVDIC8qIERlYnVnICovLAorCQkJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxl
YXNlICovLAorCQkJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICovLAor
CQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRD
b25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjVDMTQ2ODlCODYw
MEU3OEI3NiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldURiIg
Ki8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0
aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvYnJraXRlci5oIGIv
U291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFhNWU1NTI3OTYw
OTBlYWViY2Q3Y2U3YjdkMjc1YWE4YjM3NzViNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvYnJraXRlci5oCkBAIC0wLDAgKzEsNjU1IEBACisvKgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxNCwgSW50ZXJuYXRpb25h
bCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmln
aHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBicmtpdGVy
LmgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAg
ICAgICAgRGVzY3JpcHRpb24KKyogICAwMi8xOC85NyAgICBhbGl1ICAgICAgICBBZGRlZCB0eXBl
ZGVmIGZvciBUZXh0Q291bnQuICBNYWRlIERPTkUgY29uc3QuCisqICAgMDUvMDcvOTcgICAgYWxp
dSAgICAgICAgRml4ZWQgRExMIGRlY2xhcmF0aW9uLgorKiAgIDA3LzA5Lzk3ICAgIGpmaXR6ICAg
ICAgIFJlbmFtZWQgQnJlYWtJdGVyYXRvciBhbmQgaW50ZXJmYWNlIHN5bmNlZCB3aXRoIEpESwor
KiAgIDA4LzExLzk4ICAgIGhlbGVuYSAgICAgIFN5bmMtdXAgSkRLMS4yLgorKiAgIDAxLzEzLzIw
MDAgIGhlbGVuYSAgICAgIEFkZGVkIFVFcnJvckNvZGUgcGFyYW1ldGVyIHRvIGNyZWF0ZVhYWElu
c3RhbmNlIG1ldGhvZHMuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBC
UktJVEVSX0gKKyNkZWZpbmUgQlJLSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5o
IgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTogQnJlYWsgSXRlcmF0b3IuCisg
Ki8KKworI2lmIFVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKK1VfTkFNRVNQQUNFX0JFR0lO
CisKKy8qCisgKiBBbGxvdyB0aGUgZGVjbGFyYXRpb24gb2YgQVBJcyB3aXRoIHBvaW50ZXJzIHRv
IEJyZWFrSXRlcmF0b3IKKyAqIGV2ZW4gd2hlbiBicmVhayBpdGVyYXRpb24gaXMgcmVtb3ZlZCBm
cm9tIHRoZSBidWlsZC4KKyAqLworY2xhc3MgQnJlYWtJdGVyYXRvcjsKKworVV9OQU1FU1BBQ0Vf
RU5ECisKKyNlbHNlCisKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1
bmljb2RlL3VuaXN0ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKyNpbmNsdWRl
ICJ1bmljb2RlL2xvY2lkLmgiCisjaW5jbHVkZSAidW5pY29kZS91YnJrLmgiCisjaW5jbHVkZSAi
dW5pY29kZS9zdHJlbnVtLmgiCisjaW5jbHVkZSAidW5pY29kZS91dGV4dC5oIgorI2luY2x1ZGUg
InVuaWNvZGUvdW1pc2MuaCIKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBUaGUgQnJl
YWtJdGVyYXRvciBjbGFzcyBpbXBsZW1lbnRzIG1ldGhvZHMgZm9yIGZpbmRpbmcgdGhlIGxvY2F0
aW9uCisgKiBvZiBib3VuZGFyaWVzIGluIHRleHQuIEJyZWFrSXRlcmF0b3IgaXMgYW4gYWJzdHJh
Y3QgYmFzZSBjbGFzcy4KKyAqIEluc3RhbmNlcyBvZiBCcmVha0l0ZXJhdG9yIG1haW50YWluIGEg
Y3VycmVudCBwb3NpdGlvbiBhbmQgc2NhbiBvdmVyCisgKiB0ZXh0IHJldHVybmluZyB0aGUgaW5k
ZXggb2YgY2hhcmFjdGVycyB3aGVyZSBib3VuZGFyaWVzIG9jY3VyLgorICogPHA+CisgKiBMaW5l
IGJvdW5kYXJ5IGFuYWx5c2lzIGRldGVybWluZXMgd2hlcmUgYSB0ZXh0IHN0cmluZyBjYW4gYmUg
YnJva2VuCisgKiB3aGVuIGxpbmUtd3JhcHBpbmcuIFRoZSBtZWNoYW5pc20gY29ycmVjdGx5IGhh
bmRsZXMgcHVuY3R1YXRpb24gYW5kCisgKiBoeXBoZW5hdGVkIHdvcmRzLgorICogPHA+CisgKiBT
ZW50ZW5jZSBib3VuZGFyeSBhbmFseXNpcyBhbGxvd3Mgc2VsZWN0aW9uIHdpdGggY29ycmVjdAor
ICogaW50ZXJwcmV0YXRpb24gb2YgcGVyaW9kcyB3aXRoaW4gbnVtYmVycyBhbmQgYWJicmV2aWF0
aW9ucywgYW5kCisgKiB0cmFpbGluZyBwdW5jdHVhdGlvbiBtYXJrcyBzdWNoIGFzIHF1b3RhdGlv
biBtYXJrcyBhbmQgcGFyZW50aGVzZXMuCisgKiA8cD4KKyAqIFdvcmQgYm91bmRhcnkgYW5hbHlz
aXMgaXMgdXNlZCBieSBzZWFyY2ggYW5kIHJlcGxhY2UgZnVuY3Rpb25zLCBhcworICogd2VsbCBh
cyB3aXRoaW4gdGV4dCBlZGl0aW5nIGFwcGxpY2F0aW9ucyB0aGF0IGFsbG93IHRoZSB1c2VyIHRv
CisgKiBzZWxlY3Qgd29yZHMgd2l0aCBhIGRvdWJsZSBjbGljay4gV29yZCBzZWxlY3Rpb24gcHJv
dmlkZXMgY29ycmVjdAorICogaW50ZXJwcmV0YXRpb24gb2YgcHVuY3R1YXRpb24gbWFya3Mgd2l0
aGluIGFuZCBmb2xsb3dpbmcKKyAqIHdvcmRzLiBDaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBwYXJ0
IG9mIGEgd29yZCwgc3VjaCBhcyBzeW1ib2xzIG9yCisgKiBwdW5jdHVhdGlvbiBtYXJrcywgaGF2
ZSB3b3JkLWJyZWFrcyBvbiBib3RoIHNpZGVzLgorICogPHA+CisgKiBDaGFyYWN0ZXIgYm91bmRh
cnkgYW5hbHlzaXMgYWxsb3dzIHVzZXJzIHRvIGludGVyYWN0IHdpdGgKKyAqIGNoYXJhY3RlcnMg
YXMgdGhleSBleHBlY3QgdG8sIGZvciBleGFtcGxlLCB3aGVuIG1vdmluZyB0aGUgY3Vyc29yCisg
KiB0aHJvdWdoIGEgdGV4dCBzdHJpbmcuIENoYXJhY3RlciBib3VuZGFyeSBhbmFseXNpcyBwcm92
aWRlcyBjb3JyZWN0CisgKiBuYXZpZ2F0aW9uIG9mIHRocm91Z2ggY2hhcmFjdGVyIHN0cmluZ3Ms
IHJlZ2FyZGxlc3Mgb2YgaG93IHRoZQorICogY2hhcmFjdGVyIGlzIHN0b3JlZC4gIEZvciBleGFt
cGxlLCBhbiBhY2NlbnRlZCBjaGFyYWN0ZXIgbWlnaHQgYmUKKyAqIHN0b3JlZCBhcyBhIGJhc2Ug
Y2hhcmFjdGVyIGFuZCBhIGRpYWNyaXRpY2FsIG1hcmsuIFdoYXQgdXNlcnMKKyAqIGNvbnNpZGVy
IHRvIGJlIGEgY2hhcmFjdGVyIGNhbiBkaWZmZXIgYmV0d2VlbiBsYW5ndWFnZXMuCisgKiA8cD4K
KyAqIFRoZSB0ZXh0IGJvdW5kYXJ5IHBvc2l0aW9ucyBhcmUgZm91bmQgYWNjb3JkaW5nIHRvIHRo
ZSBydWxlcworICogZGVzY3JpYmVkIGluIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXggIzI5LCBUZXh0
IEJvdW5kYXJpZXMsIGFuZAorICogVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMTQsIExpbmUgQnJl
YWtpbmcgUHJvcGVydGllcy4gIFRoZXNlCisgKiBhcmUgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cu
dW5pY29kZS5vcmcvcmVwb3J0cy90cjE0LyBhbmQKKyAqIGh0dHA6Ly93d3cudW5pY29kZS5vcmcv
cmVwb3J0cy90cjI5Ly4KKyAqIDxwPgorICogSW4gYWRkaXRpb24gdG8gdGhlIEMrKyBBUEkgZGVm
aW5lZCBpbiB0aGlzIGhlYWRlciBmaWxlLCBhCisgKiBwbGFpbiBDIEFQSSB3aXRoIGVxdWl2YWxl
bnQgZnVuY3Rpb25hbGl0eSBpcyBkZWZpbmVkIGluIHRoZQorICogZmlsZSB1YnJrLmgKKyAqIDxw
PgorICogQ29kZSBzbmlwcGV0cyBpbGx1c3RyYXRpbmcgdGhlIHVzZSBvZiB0aGUgQnJlYWsgSXRl
cmF0b3IgQVBJcworICogYXJlIGF2YWlsYWJsZSBpbiB0aGUgSUNVIFVzZXIgR3VpZGUsCisgKiBo
dHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9ib3VuZGFyeUFuYWx5c2lzLmh0bWwKKyAq
IGFuZCBpbiB0aGUgc2FtcGxlIHByb2dyYW0gaWN1L3NvdXJjZS9zYW1wbGVzL2JyZWFrL2JyZWFr
LmNwcAorICoKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIEJyZWFrSXRlcmF0b3IgOiBwdWJsaWMg
VU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogIGRlc3RydWN0b3IKKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+QnJlYWtJdGVyYXRvcigpOwor
CisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgYW5vdGhlciBvYmplY3QgaXMgc2VtYW50
aWNhbGx5IGVxdWFsIHRvIHRoaXMKKyAgICAgKiBvbmUuIFRoZSBvdGhlciBvYmplY3Qgc2hvdWxk
IGJlIGFuIGluc3RhbmNlIG9mIHRoZSBzYW1lIHN1YmNsYXNzIG9mCisgICAgICogQnJlYWtJdGVy
YXRvci4gT2JqZWN0cyBvZiBkaWZmZXJlbnQgc3ViY2xhc3NlcyBhcmUgY29uc2lkZXJlZAorICAg
ICAqIHVuZXF1YWwuCisgICAgICogPFA+CisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBCcmVh
a0l0ZXJhdG9yIGlzIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZQorICAgICAqIHNhbWUgdGV4
dCwgYW5kIGlzIHRoZSBzYW1lIGNsYXNzIGFuZCB0eXBlICh3b3JkLCBsaW5lLCBldGMuKSBvZgor
ICAgICAqIEJyZWFrSXRlcmF0b3IsIGFzIHRoZSBhcmd1bWVudC4gIFRleHQgaXMgY29uc2lkZXJl
ZCB0aGUgc2FtZSBpZgorICAgICAqIGl0IGNvbnRhaW5zIHRoZSBzYW1lIGNoYXJhY3RlcnMsIGl0
IG5lZWQgbm90IGJlIHRoZSBzYW1lCisgICAgICogb2JqZWN0LCBhbmQgc3R5bGVzIGFyZSBub3Qg
Y29uc2lkZXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IFVCb29sIG9wZXJhdG9yPT0oY29uc3QgQnJlYWtJdGVyYXRvciYpIGNvbnN0ID0gMDsKKworICAg
IC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvbXBsZW1lbnQgb2YgdGhlIHJlc3VsdCBvZiBvcGVy
YXRvcj09CisgICAgICogQHBhcmFtIHJocyBUaGUgQnJlYWtJdGVyYXRvciB0byBiZSBjb21wYXJl
ZCBmb3IgaW5lcXVhbGl0eQorICAgICAqIEByZXR1cm4gdGhlIGNvbXBsZW1lbnQgb2YgdGhlIHJl
c3VsdCBvZiBvcGVyYXRvcj09CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
VUJvb2wgb3BlcmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiByaHMpIGNvbnN0IHsgcmV0dXJu
ICFvcGVyYXRvcj09KHJocyk7IH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHBvbHltb3Jw
aGljIGNvcHkgb2YgdGhpcyBvYmplY3QuICBUaGlzIGlzIGFuIGFic3RyYWN0CisgICAgICogbWV0
aG9kIHdoaWNoIHN1YmNsYXNzZXMgaW1wbGVtZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3QgPSAw
OworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcG9seW1vcnBoaWMgY2xhc3MgSUQgZm9yIHRo
aXMgb2JqZWN0LiBEaWZmZXJlbnQgc3ViY2xhc3NlcworICAgICAqIHdpbGwgcmV0dXJuIGRpc3Rp
bmN0IHVuZXF1YWwgdmFsdWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3QgPSAwOworCisg
ICAgLyoqCisgICAgICogUmV0dXJuIGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBi
ZWluZyBhbmFseXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIENoYXJhY3Rlckl0ZXJhdG9yJiBnZXRUZXh0KHZvaWQpIGNvbnN0ID0gMDsKKworCisgICAg
LyoqCisgICAgICAqICBHZXQgYSBVVGV4dCBmb3IgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisg
ICAgICAqICBUaGUgcmV0dXJuZWQgVVRleHQgaXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBVVGV4
dCB1c2VkIGludGVybmFsbHkKKyAgICAgICogIGJ5IHRoZSBicmVhayBpdGVyYXRvciBpbXBsZW1l
bnRhdGlvbi4gIEl0IGNhbiBzYWZlbHkgYmUgdXNlZCB0bworICAgICAgKiAgYWNjZXNzIHRoZSB0
ZXh0IHdpdGhvdXQgaW1wYWN0aW5nIGFueSBicmVhayBpdGVyYXRvciBvcGVyYXRpb25zLAorICAg
ICAgKiAgYnV0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmIG11c3Qgbm90IGJlIGFsdGVyZWQu
CisgICAgICAqCisgICAgICAqIEBwYXJhbSBmaWxsSW4gQSBVVGV4dCB0byBiZSBmaWxsZWQgaW4u
ICBJZiBOVUxMLCBhIG5ldyBVVGV4dCB3aWxsIGJlCisgICAgICAqICAgICAgICAgICBhbGxvY2F0
ZWQgdG8gaG9sZCB0aGUgcmVzdWx0LgorICAgICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFu
eSBlcnJvciBjb2Rlcy4KKyAgICAgICogQHJldHVybiAgIFRoZSBjdXJyZW50IFVUZXh0IGZvciB0
aGlzIGJyZWFrIGl0ZXJhdG9yLiAgSWYgYW4gaW5wdXQKKyAgICAgICogICAgICAgICAgIFVUZXh0
IHdhcyBwcm92aWRlZCwgaXQgd2lsbCBhbHdheXMgYmUgcmV0dXJuZWQuCisgICAgICAqIEBzdGFi
bGUgSUNVIDMuNAorICAgICAgKi8KKyAgICAgdmlydHVhbCBVVGV4dCAqZ2V0VVRleHQoVVRleHQg
KmZpbGxJbiwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBDaGFuZ2UgdGhlIHRleHQgb3ZlciB3aGljaCB0aGlzIG9wZXJhdGVzLiBUaGUgdGV4dCBib3Vu
ZGFyeSBpcworICAgICAqIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKiBAcGFyYW0gdGV4dCBU
aGUgVW5pY29kZVN0cmluZyB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoY29uc3QgVW5pY29k
ZVN0cmluZyAmdGV4dCkgPSAwOworCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGJyZWFrIGl0
ZXJhdG9yIHRvIG9wZXJhdGUgb3ZlciB0aGUgdGV4dCByZXByZXNlbnRlZCBieQorICAgICAqIHRo
ZSBVVGV4dC4gIFRoZSBpdGVyYXRvciBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgc3RhcnQuCisg
ICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUg
c3VwcGxpZWQgVVRleHQuICBUaGlzIG1lYW5zCisgICAgICogdGhhdCB0aGUgY2FsbGVyIGlzIGZy
ZWUgdG8gaW1tZWRpYXRlbHkgY2xvc2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRoZQorICAgICAqIFV0
ZXh0IHRoYXQgd2FzIHBhc3NlZCBhcyBhIHBhcmFtZXRlciwgYnV0IHRoYXQgdGhlIHVuZGVybHlp
bmcgdGV4dCBpdHNlbGYKKyAgICAgKiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdoaWxlIGJlaW5nIHJl
ZmVyZW5jZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQWxsIGluZGV4
IHBvc2l0aW9ucyByZXR1cm5lZCBieSBicmVhayBpdGVyYXRvciBmdW5jdGlvbnMgYXJlCisgICAg
ICogbmF0aXZlIGluZGljZXMgZnJvbSB0aGUgVVRleHQuIEZvciBleGFtcGxlLCB3aGVuIGJyZWFr
aW5nIFVURi04CisgICAgICogZW5jb2RlZCB0ZXh0LCB0aGUgYnJlYWsgcG9zaXRpb25zIHJldHVy
bmVkIGJ5IG5leHQoKSwgcHJldmlvdXMoKSwgZXRjLgorICAgICAqIHdpbGwgYmUgVVRGLTggc3Ry
aW5nIGluZGljZXMsIG5vdCBVVEYtMTYgcG9zaXRpb25zLgorICAgICAqCisgICAgICogQHBhcmFt
IHRleHQgVGhlIFVUZXh0IHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBz
dGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuNAor
ICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChVVGV4dCAqdGV4dCwgVUVycm9yQ29k
ZSAmc3RhdHVzKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDaGFuZ2UgdGhlIHRleHQgb3ZlciB3
aGljaCB0aGlzIG9wZXJhdGVzLiBUaGUgdGV4dCBib3VuZGFyeSBpcworICAgICAqIHJlc2V0IHRv
IHRoZSBzdGFydC4KKyAgICAgKiBOb3RlIHRoYXQgc2V0VGV4dChVVGV4dCAqKSBwcm92aWRlcyBz
aW1pbGFyIGZ1bmN0aW9uYWxpdHkgdG8gdGhpcyBmdW5jdGlvbiwKKyAgICAgKiBhbmQgaXMgbW9y
ZSBlZmZpY2llbnQuCisgICAgICogQHBhcmFtIGl0IFRoZSBDaGFyYWN0ZXJJdGVyYXRvciB1c2Vk
IHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIHZvaWQgIGFkb3B0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciogaXQpID0gMDsKKwor
ICAgIGVudW0geworICAgICAgICAvKioKKyAgICAgICAgICogRE9ORSBpcyByZXR1cm5lZCBieSBw
cmV2aW91cygpIGFuZCBuZXh0KCkgYWZ0ZXIgYWxsIHZhbGlkCisgICAgICAgICAqIGJvdW5kYXJp
ZXMgaGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
ICAgICovCisgICAgICAgIERPTkUgPSAoaW50MzJfdCktMQorICAgIH07CisKKyAgICAvKioKKyAg
ICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5n
IG9mIHRoZSB0ZXh0LCBwb3NpdGlvbiB6ZXJvLgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBv
ZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCB6ZXJvLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmaXJzdCh2b2lkKSA9IDA7CisKKyAgICAv
KioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBpbmRleCBpbW1lZGlh
dGVseSBCRVlPTkQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJlaW5nIHNjYW5uZWQu
CisgICAgICogQHJldHVybiBUaGUgaW5kZXggaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBsYXN0IGNo
YXJhY3RlciBpbiB0aGUgdGV4dCBiZWluZyBzY2FubmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBsYXN0KHZvaWQpID0gMDsKKworICAgIC8q
KgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGJvdW5kYXJ5IHByZWNl
ZGluZyB0aGUgY3VycmVudCBib3VuZGFyeS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIg
aW5kZXggb2YgdGhlIHByZXZpb3VzIHRleHQgYm91bmRhcnkgb3IgRE9ORSBpZiBhbGwKKyAgICAg
KiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJldmlvdXModm9pZCkgPSAwOworCisgICAg
LyoqCisgICAgICogQWR2YW5jZSB0aGUgaXRlcmF0b3IgdG8gdGhlIGJvdW5kYXJ5IGZvbGxvd2lu
ZyB0aGUgY3VycmVudCBib3VuZGFyeS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgaW5k
ZXggb2YgdGhlIG5leHQgdGV4dCBib3VuZGFyeSBvciBET05FIGlmIGFsbAorICAgICAqIGJvdW5k
YXJpZXMgaGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAq
IFJldHVybiBjaGFyYWN0ZXIgaW5kZXggb2YgdGhlIGN1cnJlbnQgaW50ZXJhdG9yIHBvc2l0aW9u
IHdpdGhpbiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSBib3VuZGFyeSBtb3N0IHJlY2Vu
dGx5IHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgaW50MzJfdCBjdXJyZW50KHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIEFk
dmFuY2UgdGhlIGl0ZXJhdG9yIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBmb2xsb3dpbmcgdGhlIHNw
ZWNpZmllZCBvZmZzZXQuCisgICAgICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5cyBncmVh
dGVyIHRoYW4gdGhlIG9mZnNldCBvcgorICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0ZXJhdG9yLkRP
TkUKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nhbm5pbmcuCisg
ICAgICogQHJldHVybiBUaGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhlIHNwZWNpZmllZCBvZmZz
ZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90
IGZvbGxvd2luZyhpbnQzMl90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRo
ZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgZmlyc3QgYm91bmRhcnkgcHJlY2VkaW5nIHRoZSBz
cGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhbHdheXMgc21h
bGxlciB0aGFuIHRoZSBvZmZzZXQgb3IKKyAgICAgKiB0aGUgdmFsdWUgQnJlYWtJdGVyYXRvci5E
T05FCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGJlZ2luIHNjYW5uaW5nLgor
ICAgICAqIEByZXR1cm4gVGhlIGZpcnN0IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3BlY2lmaWVkIG9m
ZnNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMy
X3QgcHJlY2VkaW5nKGludDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm4gdHJ1ZSBpZiB0aGUgc3BlY2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4K
KyAgICAgKiBBcyBhIHNpZGUgZWZmZWN0LCB0aGUgY3VycmVudCBwb3NpdGlvbiBvZiB0aGUgaXRl
cmF0b3IgaXMgc2V0CisgICAgICogdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGF0IG9y
IGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRo
ZSBvZmZzZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBUcnVlIGlmICJvZmZzZXQiIGlzIGEg
Ym91bmRhcnkgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBVQm9vbCBpc0JvdW5kYXJ5KGludDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioK
KyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBudGggYm91bmRhcnkgZnJv
bSB0aGUgY3VycmVudCBib3VuZGFyeQorICAgICAqIEBwYXJhbSBuIHRoZSBudW1iZXIgb2YgYm91
bmRhcmllcyB0byBtb3ZlIGJ5LiAgQSB2YWx1ZSBvZiAwCisgICAgICogZG9lcyBub3RoaW5nLiAg
TmVnYXRpdmUgdmFsdWVzIG1vdmUgdG8gcHJldmlvdXMgYm91bmRhcmllcworICAgICAqIGFuZCBw
b3NpdGl2ZSB2YWx1ZXMgbW92ZSB0byBsYXRlciBib3VuZGFyaWVzLgorICAgICAqIEByZXR1cm4g
VGhlIG5ldyBpdGVyYXRvciBwb3NpdGlvbiwgb3IKKyAgICAgKiBET05FIGlmIHRoZXJlIGFyZSBm
ZXdlciB0aGFuIHxufCBib3VuZGFyaWVzIGluIHRoZSBzcGVjZmllZCBkaXJlY3Rpb24uCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQoaW50
MzJfdCBuKSA9IDA7CisKKyAgIC8qKgorICAgICAqIEZvciBSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
cywgcmV0dXJuIHRoZSBzdGF0dXMgdGFnIGZyb20gdGhlIAorICAgICAqIGJyZWFrIHJ1bGUgdGhh
dCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9z
aXRpb24uCisgICAgICogPHA+CisgICAgICogRm9yIGJyZWFrIGl0ZXJhdG9yIHR5cGVzIHRoYXQg
ZG8gbm90IHN1cHBvcnQgYSBydWxlIHN0YXR1cywKKyAgICAgKiBhIGRlZmF1bHQgdmFsdWUgb2Yg
MCBpcyByZXR1cm5lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGF0dXMgZnJv
bSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAg
KiAgICAgICAgIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIEBzZWUgUnVsZUJhc2VC
cmVha0l0ZXJhdG9yOjpnZXRSdWxlU3RhdHVzKCkKKyAgICAgKiBAc2VlIFVXb3JkQnJlYWsKKyAg
ICAgKiBAc3RhYmxlIElDVSA1MgorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxl
U3RhdHVzKCkgY29uc3Q7CisKKyAgIC8qKgorICAgICogRm9yIFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3JzLCBnZXQgdGhlIHN0YXR1cyAodGFnKSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsgcnVsZShzKSAK
KyAgICAqIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseSByZXR1cm5lZCBicmVhayBw
b3NpdGlvbi4KKyAgICAqIDxwPgorICAgICogRm9yIGJyZWFrIGl0ZXJhdG9yIHR5cGVzIHRoYXQg
ZG8gbm90IHN1cHBvcnQgcnVsZSBzdGF0dXMsCisgICAgKiBubyB2YWx1ZXMgYXJlIHJldHVybmVk
LgorICAgICogPHA+CisgICAgKiBUaGUgcmV0dXJuZWQgc3RhdHVzIHZhbHVlKHMpIGFyZSBzdG9y
ZWQgaW50byBhbiBhcnJheSBwcm92aWRlZCBieSB0aGUgY2FsbGVyLgorICAgICogVGhlIHZhbHVl
cyBhcmUgc3RvcmVkIGluIHNvcnRlZCAoYXNjZW5kaW5nKSBvcmRlci4KKyAgICAqIElmIHRoZSBj
YXBhY2l0eSBvZiB0aGUgb3V0cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xkIHRoZSBk
YXRhLAorICAgICogIHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2YWlsYWJs
ZSBsZW5ndGgsIGFuZCBhCisgICAgKiAgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1Igd2lsbCBiZSBz
aWduYWxlZC4KKyAgICAqIDxwPgorICAgICogQHNlZSBSdWxlQmFzZUJyZWFrSXRlcmF0b3I6Omdl
dFJ1bGVTdGF0dXNWZWMKKyAgICAqCisgICAgKiBAcGFyYW0gZmlsbEluVmVjIGFuIGFycmF5IHRv
IGJlIGZpbGxlZCBpbiB3aXRoIHRoZSBzdGF0dXMgdmFsdWVzLgorICAgICogQHBhcmFtIGNhcGFj
aXR5ICB0aGUgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0aCBvZiB6ZXJv
IGNhdXNlcworICAgICogICAgICAgICAgICAgICAgICB0aGUgZnVuY3Rpb24gdG8gcmV0dXJuIHRo
ZSBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcywgaW4gdGhlCisgICAgKiAgICAgICAgICAgICAgICAg
IG5vcm1hbCB3YXksIHdpdGhvdXQgYXR0ZW10cGluZyB0byBzdG9yZSBhbnkgdmFsdWVzLgorICAg
ICogQHBhcmFtIHN0YXR1cyAgICByZWNlaXZlcyBlcnJvciBjb2Rlcy4KKyAgICAqIEByZXR1cm4g
ICAgICAgICAgVGhlIG51bWJlciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxlcyB0aGF0
IGRldGVybWluZWQKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50IGJvdW5k
YXJ5IHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAqICAgICAgICAgICAgICAg
ICAgSW4gdGhlIGV2ZW50IG9mIGEgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRoZSByZXR1cm4g
dmFsdWUKKyAgICAqICAgICAgICAgICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0
dXMgdmFsdWVzIHRoYXQgd2VyZSBhdmFpbGFibGUsCisgICAgKiAgICAgICAgICAgICAgICAgIG5v
dCB0aGUgcmVkdWNlZCBudW1iZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgorICAgICog
QHNlZSBnZXRSdWxlU3RhdHVzCisgICAgKiBAc3RhYmxlIElDVSA1MgorICAgICovCisgICAgdmly
dHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXNWZWMoaW50MzJfdCAqZmlsbEluVmVjLCBpbnQzMl90
IGNhcGFjaXR5LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRl
IEJyZWFrSXRlcmF0b3IgZm9yIHdvcmQtYnJlYWtzIHVzaW5nIHRoZSBnaXZlbiBsb2NhbGUuCisg
ICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5n
IHdvcmQgYnJlYWtzLgorICAgICAqIFdvcmRCcmVhayBpcyB1c2VmdWwgZm9yIHdvcmQgc2VsZWN0
aW9uIChleC4gZG91YmxlIGNsaWNrKQorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgor
ICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGVycm9yIGNvZGUKKyAgICAgKiBAcmV0dXJuIEEgQnJl
YWtJdGVyYXRvciBmb3Igd29yZC1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAg
ICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUg
dXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVk
IG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1Mo
ZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAq
IGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGlu
ZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRl
cyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUs
ICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAn
ZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMg
dGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRo
ZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAg
ICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBv
YmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisg
ICAgY3JlYXRlV29yZEluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0
YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3IgbGluZS1i
cmVha3MgdXNpbmcgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNl
IG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgbGluZSBicmVha3MuIExpbmUKKyAgICAg
KiBicmVha3MgYXJlIGxvZ2ljYWxseSBwb3NzaWJsZSBsaW5lIGJyZWFrcywgYWN0dWFsIGxpbmUg
YnJlYWtzIGFyZQorICAgICAqIHVzdWFsbHkgZGV0ZXJtaW5lZCBiYXNlZCBvbiBkaXNwbGF5IHdp
ZHRoLgorICAgICAqIExpbmVCcmVhayBpcyB1c2VmdWwgZm9yIHdvcmQgd3JhcHBpbmcgdGV4dC4K
KyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRo
ZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciBsaW5lLWJy
ZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0
byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNr
IHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNo
ZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9y
ZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1h
dGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAg
KiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9j
YWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVk
LCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4g
IFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2Fs
ZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9y
IGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAg
ICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2li
bGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVMaW5lSW5zdGFuY2Uo
Y29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAg
ICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBjaGFyYWN0ZXItYnJlYWtzIHVzaW5nIHNwZWNp
ZmllZCBsb2NhbGUKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRv
ciBpbXBsZW1lbnRpbmcgY2hhcmFjdGVyIGJyZWFrcy4KKyAgICAgKiBDaGFyYWN0ZXIgYnJlYWtz
IGFyZSBib3VuZGFyaWVzIG9mIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVuY2VzLgorICAgICAq
IEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9y
IGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIGNoYXJhY3Rlci1icmVh
a3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8g
cmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3
aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVj
aworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUg
ZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRp
b25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICog
VV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2Fs
ZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwg
YnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBV
X1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUg
ZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBh
bnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAg
ICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxl
IGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBz
dGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlQ2hhcmFjdGVySW5zdGFu
Y2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgor
ICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBzZW50ZW5jZS1icmVha3MgdXNpbmcgc3Bl
Y2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJh
dG9yIGltcGxlbWVudGluZyBzZW50ZW5jZSBicmVha3MuCisgICAgICogQHBhcmFtIHdoZXJlIHRo
ZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBA
cmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3Igc2VudGVuY2UtYnJlYWtzLiAgVGhlIFVFcnJvckNv
ZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5m
b3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3Ry
dWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFs
dWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0
aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0
cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tf
V0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IK
KyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBm
b3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dB
Uk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICog
dXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJh
Y2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3du
cyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0
b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZVNlbnRlbmNlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3
aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBCcmVh
a0l0ZXJhdG9yIGZvciB0aXRsZS1jYXNpbmcgYnJlYWtzIHVzaW5nIHRoZSBzcGVjaWZpZWQgbG9j
YWxlCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVt
ZW50aW5nIHRpdGxlIGJyZWFrcy4KKyAgICAgKiBUaGUgaXRlcmF0b3IgcmV0dXJuZWQgbG9jYXRl
cyB0aXRsZSBib3VuZGFyaWVzIGFzIGRlc2NyaWJlZCBmb3IKKyAgICAgKiBVbmljb2RlIDMuMiBv
bmx5LiBGb3IgVW5pY29kZSA0LjAgYW5kIGFib3ZlIHRpdGxlIGJvdW5kYXJ5IGl0ZXJhdGlvbiwK
KyAgICAgKiBwbGVhc2UgdXNlIFdvcmQgQm91bmRhcnkgaXRlcmF0b3Iue0BsaW5rICNjcmVhdGVX
b3JkSW5zdGFuY2UgfQorICAgICAqCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisg
ICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJuIEEgQnJl
YWtJdGVyYXRvciBmb3IgdGl0bGUtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cworICAg
ICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8gdGhl
IHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRl
ZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNT
KGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAgICAg
KiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGlsbCBp
bmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0
ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFtcGxl
LCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwgc28g
J2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVz
IHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhlciB0
aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcworICAg
ICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJuZWQg
b2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4xCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgor
ICAgIGNyZWF0ZVRpdGxlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYg
c3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc2V0IG9mIExvY2FsZXMgZm9yIHdo
aWNoIFRleHRCb3VuZGFyaWVzIGFyZSBpbnN0YWxsZWQuCisgICAgICogPHA+PGI+Tm90ZTo8L2I+
IHRoaXMgd2lsbCBub3QgcmV0dXJuIGxvY2FsZXMgYWRkZWQgdGhyb3VnaCB0aGUgcmVnaXN0ZXIK
KyAgICAgKiBjYWxsLiBUbyBzZWUgdGhlIHJlZ2lzdGVyZWQgbG9jYWxlcyB0b28sIHVzZSB0aGUg
Z2V0QXZhaWxhYmxlTG9jYWxlcworICAgICAqIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIFN0cmlu
Z0VudW1lcmF0aW9uIG9iamVjdCA8L3A+CisgICAgICogQHBhcmFtIGNvdW50IHRoZSBvdXRwdXQg
cGFyYW1ldGVyIG9mIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgbG9jYWxlIGxpc3QKKyAgICAg
KiBAcmV0dXJuIGF2YWlsYWJsZSBsb2NhbGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSogVV9FWFBPUlQyIGdldEF2YWlsYWJsZUxvY2Fs
ZXMoaW50MzJfdCYgY291bnQpOworCisgICAgLyoqCisgICAgICogR2V0IG5hbWUgb2YgdGhlIG9i
amVjdCBmb3IgdGhlIGRlc2lyZWQgTG9jYWxlLCBpbiB0aGUgZGVzaXJlZCBsYW5nYXVnZS4KKyAg
ICAgKiBAcGFyYW0gb2JqZWN0TG9jYWxlIG11c3QgYmUgZnJvbSBnZXRBdmFpbGFibGVMb2NhbGVz
LgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHNwZWNpZmllcyB0aGUgZGVzaXJlZCBsb2Nh
bGUgZm9yIG91dHB1dC4KKyAgICAgKiBAcGFyYW0gbmFtZSB0aGUgZmlsbC1pbiBwYXJhbWV0ZXIg
b2YgdGhlIHJldHVybiB2YWx1ZQorICAgICAqIFVzZXMgYmVzdCBtYXRjaC4KKyAgICAgKiBAcmV0
dXJuIHVzZXItZGlzcGxheWFibGUgbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBVX0VYUE9SVDIgZ2V0RGlzcGxheU5hbWUoY29u
c3QgTG9jYWxlJiBvYmplY3RMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IExvY2FsZSYgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgbmFtZSk7CisKKyAgICAvKioK
KyAgICAgKiBHZXQgbmFtZSBvZiB0aGUgb2JqZWN0IGZvciB0aGUgZGVzaXJlZCBMb2NhbGUsIGlu
IHRoZSBsYW5nYXVnZSBvZiB0aGUKKyAgICAgKiBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFy
YW0gb2JqZWN0TG9jYWxlIG11c3QgYmUgZnJvbSBnZXRNYXRjaGluZ0xvY2FsZXMKKyAgICAgKiBA
cGFyYW0gbmFtZSB0aGUgZmlsbC1pbiBwYXJhbWV0ZXIgb2YgdGhlIHJldHVybiB2YWx1ZQorICAg
ICAqIEByZXR1cm4gdXNlci1kaXNwbGF5YWJsZSBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgc3RhdGljIFVuaWNvZGVTdHJpbmcmIFVfRVhQT1JUMiBnZXREaXNwbGF5
TmFtZShjb25zdCBMb2NhbGUmIG9iamVjdExvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgbmFtZSk7CisKKyAgICAvKioKKyAgICAg
KiBEZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoK
KyAgICAgKiBUaHJlYWQgc2FmZSBjbGllbnQtYnVmZmVyLWJhc2VkIGNsb25pbmcgb3BlcmF0aW9u
CisgICAgICogICAgRG8gTk9UIGNhbGwgZGVsZXRlIG9uIGEgc2FmZWNsb25lLCBzaW5jZSAnbmV3
JyBpcyBub3QgdXNlZCB0byBjcmVhdGUgaXQuCisgICAgICogQHBhcmFtIHN0YWNrQnVmZmVyIHVz
ZXIgYWxsb2NhdGVkIHNwYWNlIGZvciB0aGUgbmV3IGNsb25lLiBJZiBOVUxMIG5ldyBtZW1vcnkg
d2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogSWYgYnVmZmVyIGlzIG5vdCBsYXJnZSBlbm91Z2gs
IG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogQHBhcmFtIEJ1ZmZlclNpemUg
cmVmZXJlbmNlIHRvIHNpemUgb2YgYWxsb2NhdGVkIHNwYWNlLgorICAgICAqIElmIEJ1ZmZlclNp
emUgPT0gMCwgYSBzdWZmaWNpZW50IHNpemUgZm9yIHVzZSBpbiBjbG9uaW5nIHdpbGwKKyAgICAg
KiBiZSByZXR1cm5lZCAoJ3ByZS1mbGlnaHRpbmcnKQorICAgICAqIElmIEJ1ZmZlclNpemUgaXMg
bm90IGVub3VnaCBmb3IgYSBzdGFjay1iYXNlZCBzYWZlIGNsb25lLAorICAgICAqIG5ldyBtZW1v
cnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogQHBhcmFtIHN0YXR1cyB0byBpbmRpY2F0ZSB3
aGV0aGVyIHRoZSBvcGVyYXRpb24gd2VudCBvbiBzbW9vdGhseSBvciB0aGVyZSB3ZXJlIGVycm9y
cworICAgICAqICBBbiBpbmZvcm1hdGlvbmFsIHN0YXR1cyB2YWx1ZSwgVV9TQUZFQ0xPTkVfQUxM
T0NBVEVEX0VSUk9SLCBpcyB1c2VkIGlmIGFueSBhbGxvY2F0aW9ucyB3ZXJlCisgICAgICogIG5l
Y2Vzc2FyeS4KKyAgICAgKiBAcmV0dXJuIHBvaW50ZXIgdG8gdGhlIG5ldyBjbG9uZQorICAgICAq
CisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAq
LworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciAqICBjcmVhdGVCdWZmZXJDbG9uZSh2b2lkICpz
dGFja0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50MzJfdCAmQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyNpZm5kZWYgVV9ISURF
X0RFUFJFQ0FURURfQVBJCisKKyAgICAvKioKKyAgICAgKiAgIERldGVybWluZSB3aGV0aGVyIHRo
ZSBCcmVha0l0ZXJhdG9yIHdhcyBjcmVhdGVkIGluIHVzZXIgbWVtb3J5IGJ5CisgICAgICogICBj
cmVhdGVCdWZmZXJDbG9uZSgpLCBhbmQgdGh1cyBzaG91bGQgbm90IGJlIGRlbGV0ZWQuICBTdWNo
IG9iamVjdHMKKyAgICAgKiAgIG11c3QgYmUgY2xvc2VkIGJ5IGFuIGV4cGxpY2l0IGNhbGwgdG8g
dGhlIGRlc3RydWN0b3IgKG5vdCBkZWxldGUpLgorICAgICAqIEBkZXByZWNhdGVkIElDVSA1Mi4g
QWx3YXlzIGRlbGV0ZSB0aGUgQnJlYWtJdGVyYXRvci4KKyAgICAgKi8KKyAgICBpbmxpbmUgVUJv
b2wgaXNCdWZmZXJDbG9uZSh2b2lkKTsKKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQ
SSAqLworCisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorICAgIC8qKgorICAgICAqIFJlZ2lzdGVy
IGEgbmV3IGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBpbmRpY2F0ZWQga2luZCwgdG8gdXNlIGluIHRo
ZSBnaXZlbiBsb2NhbGUuCisgICAgICogVGhlIGJyZWFrIGl0ZXJhdG9yIHdpbGwgYmUgYWRvcHRl
ZC4gIENsb25lcyBvZiB0aGUgaXRlcmF0b3Igd2lsbCBiZSByZXR1cm5lZAorICAgICAqIGlmIGEg
cmVxdWVzdCBmb3IgYSBicmVhayBpdGVyYXRvciBvZiB0aGUgZ2l2ZW4ga2luZCBtYXRjaGVzIG9y
IGZhbGxzIGJhY2sgdG8KKyAgICAgKiB0aGlzIGxvY2FsZS4KKyAgICAgKiBCZWNhdXNlIElDVSBt
YXkgY2hvb3NlIHRvIGNhY2hlIEJyZWFrSXRlcmF0b3JzIGludGVybmFsbHksIHRoaXMgbXVzdAor
ICAgICAqIGJlIGNhbGxlZCBhdCBhcHBsaWNhdGlvbiBzdGFydHVwLCBwcmlvciB0byBhbnkgY2Fs
bHMgdG8KKyAgICAgKiBCcmVha0l0ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0byBhdm9pZCB1
bmRlZmluZWQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIHRvQWRvcHQgdGhlIEJyZWFrSXRlcmF0
b3IgaW5zdGFuY2UgdG8gYmUgYWRvcHRlZAorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIExvY2Fs
ZSBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAgICogQHBh
cmFtIGtpbmQgdGhlIHR5cGUgb2YgaXRlcmF0b3IgZm9yIHdoaWNoIHRoaXMgaW5zdGFuY2UgaXMg
dG8gYmUgcmVnaXN0ZXJlZAorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGluL291dCBzdGF0dXMg
Y29kZSwgbm8gc3BlY2lhbCBtZWFuaW5ncyBhcmUgYXNzaWduZWQKKyAgICAgKiBAcmV0dXJuIGEg
cmVnaXN0cnkga2V5IHRoYXQgY2FuIGJlIHVzZWQgdG8gdW5yZWdpc3RlciB0aGlzIGluc3RhbmNl
CisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgc3RhdGljIFVSZWdpc3RyeUtl
eSBVX0VYUE9SVDIgcmVnaXN0ZXJJbnN0YW5jZShCcmVha0l0ZXJhdG9yKiB0b0Fkb3B0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYgbG9jYWxl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVCcmVha0l0ZXJhdG9y
VHlwZSBraW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJv
ckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGEgcHJldmlvdXNs
eS1yZWdpc3RlcmVkIEJyZWFrSXRlcmF0b3IgdXNpbmcgdGhlIGtleSByZXR1cm5lZCBmcm9tIHRo
ZQorICAgICAqIHJlZ2lzdGVyIGNhbGwuICBLZXkgYmVjb21lcyBpbnZhbGlkIGFmdGVyIGEgc3Vj
Y2Vzc2Z1bCBjYWxsIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYWdhaW4uCisgICAgICogVGhlIEJy
ZWFrSXRlcmF0b3IgY29ycmVzcG9uZGluZyB0byB0aGUga2V5IHdpbGwgYmUgZGVsZXRlZC4KKyAg
ICAgKiBCZWNhdXNlIElDVSBtYXkgY2hvb3NlIHRvIGNhY2hlIEJyZWFrSXRlcmF0b3JzIGludGVy
bmFsbHksIHRoaXMgc2hvdWxkCisgICAgICogYmUgY2FsbGVkIGR1cmluZyBhcHBsaWNhdGlvbiBz
aHV0ZG93biwgYWZ0ZXIgYWxsIGNhbGxzIHRvCisgICAgICogQnJlYWtJdGVyYXRvcjo6Y3JlYXRl
WFhYSW5zdGFuY2UgdG8gYXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9yLgorICAgICAqIEBwYXJhbSBr
ZXkgdGhlIHJlZ2lzdHJ5IGtleSByZXR1cm5lZCBieSBhIHByZXZpb3VzIGNhbGwgdG8gcmVnaXN0
ZXJJbnN0YW5jZQorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGluL291dCBzdGF0dXMgY29kZSwg
bm8gc3BlY2lhbCBtZWFuaW5ncyBhcmUgYXNzaWduZWQKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYg
dGhlIGl0ZXJhdG9yIGZvciB0aGUga2V5IHdhcyBzdWNjZXNzZnVsbHkgdW5yZWdpc3RlcmVkCisg
ICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgc3RhdGljIFVCb29sIFVfRVhQT1JU
MiB1bnJlZ2lzdGVyKFVSZWdpc3RyeUtleSBrZXksIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAg
ICAvKioKKyAgICAgKiBSZXR1cm4gYSBTdHJpbmdFbnVtZXJhdGlvbiBvdmVyIHRoZSBsb2NhbGVz
IGF2YWlsYWJsZSBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbCwKKyAgICAgKiBpbmNsdWRpbmcgcmVn
aXN0ZXJlZCBsb2NhbGVzLgorICAgICAqIEByZXR1cm4gYSBTdHJpbmdFbnVtZXJhdGlvbiBvdmVy
IHRoZSBsb2NhbGVzIGF2YWlsYWJsZSBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbAorICAgICAqIEBz
dGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHN0YXRpYyBTdHJpbmdFbnVtZXJhdGlvbiogVV9F
WFBPUlQyIGdldEF2YWlsYWJsZUxvY2FsZXModm9pZCk7CisjZW5kaWYKKworICAgIC8qKgorICAg
ICAqIFJldHVybnMgdGhlIGxvY2FsZSBmb3IgdGhpcyBicmVhayBpdGVyYXRvci4gVHdvIGZsYXZv
cnMgYXJlIGF2YWlsYWJsZTogdmFsaWQgYW5kCisgICAgICogYWN0dWFsIGxvY2FsZS4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBMb2NhbGUgZ2V0TG9jYWxlKFVMb2NEYXRh
TG9jYWxlVHlwZSB0eXBlLCBVRXJyb3JDb2RlJiBzdGF0dXMpIGNvbnN0OworCisjaWZuZGVmIFVf
SElERV9JTlRFUk5BTF9BUEkKKyAgICAvKiogR2V0IHRoZSBsb2NhbGUgZm9yIHRoaXMgYnJlYWsg
aXRlcmF0b3Igb2JqZWN0LiBZb3UgY2FuIGNob29zZSBiZXR3ZWVuIHZhbGlkIGFuZCBhY3R1YWwg
bG9jYWxlLgorICAgICAqICBAcGFyYW0gdHlwZSB0eXBlIG9mIHRoZSBsb2NhbGUgd2UncmUgbG9v
a2luZyBmb3IgKHZhbGlkIG9yIGFjdHVhbCkKKyAgICAgKiAgQHBhcmFtIHN0YXR1cyBlcnJvciBj
b2RlIGZvciB0aGUgb3BlcmF0aW9uCisgICAgICogIEByZXR1cm4gdGhlIGxvY2FsZQorICAgICAq
ICBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICpnZXRMb2NhbGVJRChVTG9jRGF0
YUxvY2FsZVR5cGUgdHlwZSwgVUVycm9yQ29kZSYgc3RhdHVzKSBjb25zdDsKKyNlbmRpZiAgLyog
VV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisgICAgLyoqCisgICAgICogIFNldCB0aGUgc3ViamVj
dCB0ZXh0IHN0cmluZyB1cG9uIHdoaWNoIHRoZSBicmVhayBpdGVyYXRvciBpcyBvcGVyYXRpbmcK
KyAgICAgKiAgd2l0aG91dCBjaGFuZ2luZyBhbnkgb3RoZXIgYXNwZWN0IG9mIHRoZSBtYXRjaGlu
ZyBzdGF0ZS4KKyAgICAgKiAgVGhlIG5ldyBhbmQgcHJldmlvdXMgdGV4dCBzdHJpbmdzIG11c3Qg
aGF2ZSB0aGUgc2FtZSBjb250ZW50LgorICAgICAqCisgICAgICogIFRoaXMgZnVuY3Rpb24gaXMg
aW50ZW5kZWQgZm9yIHVzZSBpbiBlbnZpcm9ubWVudHMgd2hlcmUgSUNVIGlzIG9wZXJhdGluZyBv
bgorICAgICAqICBzdHJpbmdzIHRoYXQgbWF5IG1vdmUgYXJvdW5kIGluIG1lbW9yeS4gIEl0IHBy
b3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBub3RpZnlpbmcKKyAgICAgKiAgSUNVIHRoYXQgdGhlIHN0
cmluZyBoYXMgYmVlbiByZWxvY2F0ZWQsIGFuZCBwcm92aWRpbmcgYSBuZXcgVVRleHQgdG8gYWNj
ZXNzIHRoZQorICAgICAqICBzdHJpbmcgaW4gaXRzIG5ldyBwb3NpdGlvbi4KKyAgICAgKgorICAg
ICAqICBOb3RlIHRoYXQgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uIG5ldmVyIGNv
cGllcyB0aGUgdW5kZXJseWluZyB0ZXh0CisgICAgICogIG9mIGEgc3RyaW5nIGJlaW5nIHByb2Nl
c3NlZCwgYnV0IGFsd2F5cyBvcGVyYXRlcyBkaXJlY3RseSBvbiB0aGUgb3JpZ2luYWwgdGV4dAor
ICAgICAqICBwcm92aWRlZCBieSB0aGUgdXNlci4gUmVmcmVzaGluZyBzaW1wbHkgZHJvcHMgdGhl
IHJlZmVyZW5jZXMgdG8gdGhlIG9sZCB0ZXh0CisgICAgICogIGFuZCByZXBsYWNlcyB0aGVtIHdp
dGggcmVmZXJlbmNlcyB0byB0aGUgbmV3LgorICAgICAqCisgICAgICogIENhdXRpb246ICB0aGlz
IGZ1bmN0aW9uIGlzIG5vcm1hbGx5IHVzZWQgb25seSBieSB2ZXJ5IHNwZWNpYWxpemVkLAorICAg
ICAqICBzeXN0ZW0tbGV2ZWwgY29kZS4gIE9uZSBleGFtcGxlIHVzZSBjYXNlIGlzIHdpdGggZ2Fy
YmFnZSBjb2xsZWN0aW9uIHRoYXQgbW92ZXMKKyAgICAgKiAgdGhlIHRleHQgaW4gbWVtb3J5Lgor
ICAgICAqCisgICAgICogQHBhcmFtIGlucHV0ICAgICAgVGhlIG5ldyAobW92ZWQpIHRleHQgc3Ry
aW5nLgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgIFJlY2VpdmVzIGVycm9ycyBkZXRlY3RlZCBi
eSB0aGlzIGZ1bmN0aW9uLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICp0aGlzCisgICAgICoK
KyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRv
ciAmcmVmcmVzaElucHV0VGV4dChVVGV4dCAqaW5wdXQsIFVFcnJvckNvZGUgJnN0YXR1cykgPSAw
OworCisgcHJpdmF0ZToKKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogYnVpbGRJbnN0YW5jZShj
b25zdCBMb2NhbGUmIGxvYywgY29uc3QgY2hhciAqdHlwZSwgaW50MzJfdCBraW5kLCBVRXJyb3JD
b2RlJiBzdGF0dXMpOworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBjcmVhdGVJbnN0YW5jZShj
b25zdCBMb2NhbGUmIGxvYywgaW50MzJfdCBraW5kLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworICAg
IHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBtYWtlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2MsIGlu
dDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIGZyaWVuZCBjbGFzcyBJQ1VC
cmVha0l0ZXJhdG9yRmFjdG9yeTsKKyAgICBmcmllbmQgY2xhc3MgSUNVQnJlYWtJdGVyYXRvclNl
cnZpY2U7CisKK3Byb3RlY3RlZDoKKyAgICAvLyBEbyBub3QgZW5jbG9zZSBwcm90ZWN0ZWQgZGVm
YXVsdC9jb3B5IGNvbnN0cnVjdG9ycyB3aXRoICNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQor
ICAgIC8vIG9yIGVsc2UgdGhlIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGEgcHVibGljIG9uZXMuCisg
ICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFrSXRlcmF0b3IoKTsKKyAgICAvKiogQGludGVy
bmFsICovCisgICAgQnJlYWtJdGVyYXRvciAoY29uc3QgQnJlYWtJdGVyYXRvciAmb3RoZXIpIDog
VU9iamVjdChvdGhlcikge30KKyAgICAvKiogQGludGVybmFsICovCisgICAgQnJlYWtJdGVyYXRv
ciAoY29uc3QgTG9jYWxlJiB2YWxpZCwgY29uc3QgTG9jYWxlJiBhY3R1YWwpOworcHJpdmF0ZToK
KworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBjaGFyIGFjdHVhbExvY2FsZVtVTE9DX0ZVTExO
QU1FX0NBUEFDSVRZXTsKKyAgICBjaGFyIHZhbGlkTG9jYWxlW1VMT0NfRlVMTE5BTUVfQ0FQQUNJ
VFldOworCisgICAgLyoqCisgICAgICogVGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IgaGFzIG5vIHJl
YWwgaW1wbGVtZW50YXRpb24uCisgICAgICogSXQncyBwcm92aWRlZCB0byBtYWtlIHRoZSBjb21w
aWxlciBoYXBweS4gRG8gbm90IGNhbGwuCisgICAgICovCisgICAgQnJlYWtJdGVyYXRvciYgb3Bl
cmF0b3I9KGNvbnN0IEJyZWFrSXRlcmF0b3ImKTsKK307CisKKyNpZm5kZWYgVV9ISURFX0RFUFJF
Q0FURURfQVBJCisKK2lubGluZSBVQm9vbCBCcmVha0l0ZXJhdG9yOjppc0J1ZmZlckNsb25lKCkK
K3sKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVDQVRFRF9B
UEkgKi8KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZiAvKiAjaWYgIVVDT05GSUdfTk9fQlJF
QUtfSVRFUkFUSU9OICovCisKKyNlbmRpZiAvLyBfQlJLSVRFUgorLy9lb2YKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNv
ZGUvY2hhcml0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGQ2NTA5MGE0MGE2MDg1OTUxYzczMzA3Zjc0YWNm
ODNiYTFiYmM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9jaGFy
aXRlci5oCkBAIC0wLDAgKzEsNzIyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmln
aHQgKEMpIDE5OTctMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENv
cnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyovCisKKyNpZm5kZWYgQ0hBUklURVJfSAorI2RlZmluZSBDSEFSSVRFUl9ICisKKyNpbmNs
dWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2lu
Y2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQ
STogQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lOCisvKioKKyAq
IEFic3RyYWN0IGNsYXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGZvcndhcmQtb25seSBpdGVy
YXRpb24KKyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMgaXMgYSBtaW5pbWFsIGludGVyZmFj
ZSBmb3IgaXRlcmF0aW9uIHdpdGhvdXQgcmFuZG9tIGFjY2VzcworICogb3IgYmFja3dhcmRzIGl0
ZXJhdGlvbi4gSXQgaXMgZXNwZWNpYWxseSB1c2VmdWwgZm9yIHdyYXBwaW5nCisgKiBzdHJlYW1z
IHdpdGggY29udmVydGVycyBpbnRvIGFuIG9iamVjdCBmb3IgY29sbGF0aW9uIG9yCisgKiBub3Jt
YWxpemF0aW9uLgorICoKKyAqIDxwPkNoYXJhY3RlcnMgY2FuIGJlIGFjY2Vzc2VkIGluIHR3byB3
YXlzOiBhcyBjb2RlIHVuaXRzIG9yIGFzCisgKiBjb2RlIHBvaW50cy4KKyAqIFVuaWNvZGUgY29k
ZSBwb2ludHMgYXJlIDIxLWJpdCBpbnRlZ2VycyBhbmQgYXJlIHRoZSBzY2FsYXIgdmFsdWVzCisg
KiBvZiBVbmljb2RlIGNoYXJhY3RlcnMuIElDVSB1c2VzIHRoZSB0eXBlIFVDaGFyMzIgZm9yIHRo
ZW0uCisgKiBVbmljb2RlIGNvZGUgdW5pdHMgYXJlIHRoZSBzdG9yYWdlIHVuaXRzIG9mIGEgZ2l2
ZW4KKyAqIFVuaWNvZGUvVUNTIFRyYW5zZm9ybWF0aW9uIEZvcm1hdCAoYSBjaGFyYWN0ZXIgZW5j
b2Rpbmcgc2NoZW1lKS4KKyAqIFdpdGggVVRGLTE2LCBhbGwgY29kZSBwb2ludHMgY2FuIGJlIHJl
cHJlc2VudGVkIHdpdGggZWl0aGVyIG9uZQorICogb3IgdHdvIGNvZGUgdW5pdHMgKCJzdXJyb2dh
dGVzIikuCisgKiBTdHJpbmcgc3RvcmFnZSBpcyB0eXBpY2FsbHkgYmFzZWQgb24gY29kZSB1bml0
cywgd2hpbGUgcHJvcGVydGllcworICogb2YgY2hhcmFjdGVycyBhcmUgdHlwaWNhbGx5IGRldGVy
bWluZWQgdXNpbmcgY29kZSBwb2ludCB2YWx1ZXMuCisgKiBTb21lIHByb2Nlc3NlcyBtYXkgYmUg
ZGVzaWduZWQgdG8gd29yayB3aXRoIHNlcXVlbmNlcyBvZiBjb2RlIHVuaXRzLAorICogb3IgaXQg
bWF5IGJlIGtub3duIHRoYXQgYWxsIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW1wb3J0YW50IHRvIGFu
CisgKiBhbGdvcml0aG0gY2FuIGJlIHJlcHJlc2VudGVkIHdpdGggc2luZ2xlIGNvZGUgdW5pdHMu
CisgKiBPdGhlciBwcm9jZXNzZXMgd2lsbCBuZWVkIHRvIHVzZSB0aGUgY29kZSBwb2ludCBhY2Nl
c3MgZnVuY3Rpb25zLjwvcD4KKyAqCisgKiA8cD5Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgcHJv
dmlkZXMgbmV4dFBvc3RJbmMoKSB0byBhY2Nlc3MKKyAqIGEgY29kZSB1bml0IGFuZCBhZHZhbmNl
IGFuIGludGVybmFsIHBvc2l0aW9uIGludG8gdGhlIHRleHQgb2JqZWN0LAorICogc2ltaWxhciB0
byBhIDxjb2RlPnJldHVybiB0ZXh0W3Bvc2l0aW9uKytdPC9jb2RlPi48YnI+CisgKiBJdCBwcm92
aWRlcyBuZXh0MzJQb3N0SW5jKCkgdG8gYWNjZXNzIGEgY29kZSBwb2ludCBhbmQgYWR2YW5jZSBh
biBpbnRlcm5hbAorICogcG9zaXRpb24uPC9wPgorICoKKyAqIDxwPm5leHQzMlBvc3RJbmMoKSBh
c3N1bWVzIHRoYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgdGhhdCBvZgorICogdGhlIGJlZ2lu
bmluZyBvZiBhIGNvZGUgcG9pbnQsIGkuZS4sIG9mIGl0cyBmaXJzdCBjb2RlIHVuaXQuCisgKiBB
ZnRlciBuZXh0MzJQb3N0SW5jKCksIHRoaXMgd2lsbCBiZSB0cnVlIGFnYWluLgorICogSW4gZ2Vu
ZXJhbCwgYWNjZXNzIHRvIGNvZGUgdW5pdHMgYW5kIGNvZGUgcG9pbnRzIGluIHRoZSBzYW1lCisg
KiBpdGVyYXRpb24gbG9vcCBzaG91bGQgbm90IGJlIG1peGVkLiBJbiBVVEYtMTYsIGlmIHRoZSBj
dXJyZW50IHBvc2l0aW9uCisgKiBpcyBvbiBhIHNlY29uZCBjb2RlIHVuaXQgKExvdyBTdXJyb2dh
dGUpLCB0aGVuIG9ubHkgdGhhdCBjb2RlIHVuaXQKKyAqIGlzIHJldHVybmVkIGV2ZW4gYnkgbmV4
dDMyUG9zdEluYygpLjwvcD4KKyAqCisgKiA8cD5Gb3IgaXRlcmF0aW9uIHdpdGggZWl0aGVyIGZ1
bmN0aW9uLCB0aGVyZSBhcmUgdHdvIHdheXMgdG8KKyAqIGNoZWNrIGZvciB0aGUgZW5kIG9mIHRo
ZSBpdGVyYXRpb24uIFdoZW4gdGhlcmUgYXJlIG5vIG1vcmUKKyAqIGNoYXJhY3RlcnMgaW4gdGhl
IHRleHQgb2JqZWN0OgorICogPHVsPgorICogPGxpPlRoZSBoYXNOZXh0KCkgZnVuY3Rpb24gcmV0
dXJucyBGQUxTRS48L2xpPgorICogPGxpPm5leHRQb3N0SW5jKCkgYW5kIG5leHQzMlBvc3RJbmMo
KSByZXR1cm4gRE9ORQorICogICAgIHdoZW4gb25lIGF0dGVtcHRzIHRvIHJlYWQgYmV5b25kIHRo
ZSBlbmQgb2YgdGhlIHRleHQgb2JqZWN0LjwvbGk+CisgKiA8L3VsPgorICoKKyAqIEV4YW1wbGU6
CisgKiBcY29kZSAKKyAqIHZvaWQgZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAm
aXQpIHsKKyAqICAgICBVQ2hhcjMyIGM7CisgKiAgICAgd2hpbGUoaXQuaGFzTmV4dCgpKSB7Cisg
KiAgICAgICAgIGM9aXQubmV4dDMyUG9zdEluYygpOworICogICAgICAgICAvLyB1c2UgYworICog
ICAgIH0KKyAqIH0KKyAqCisgKiB2b2lkIGZ1bmN0aW9uMShGb3J3YXJkQ2hhcmFjdGVySXRlcmF0
b3IgJml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAgICB3aGlsZSgoYz1pdC5uZXh0UG9zdElu
YygpKSE9Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yOjpET05FKSB7CisgKiAgICAgICAgIC8vIHVz
ZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wPgorICoKKyAqIEBzdGFi
bGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yIDogcHVibGljIFVPYmplY3QgeworcHVibGljOgorICAgIC8qKgorICAgICAqIFZhbHVlIHJl
dHVybmVkIGJ5IG1vc3Qgb2YgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJ3MgZnVuY3Rpb25zCisg
ICAgICogd2hlbiB0aGUgaXRlcmF0b3IgaGFzIHJlYWNoZWQgdGhlIGxpbWl0cyBvZiBpdHMgaXRl
cmF0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGVudW0geyBET05F
ID0gMHhmZmZmIH07CisgICAgCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3Rvci4gIAorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvcigpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSB3aGVuIGJvdGgg
aXRlcmF0b3JzIHJlZmVyIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1l
IGNoYXJhY3Rlci1zdG9yYWdlIG9iamVjdC4gIAorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3
YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5CisgICAgICog
QHJldHVybiB0cnVlIHdoZW4gYm90aCBpdGVyYXRvcnMgcmVmZXIgdG8gdGhlIHNhbWUKKyAgICAg
KiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgY2hhcmFjdGVyLXN0b3JhZ2Ugb2JqZWN0CisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09KGNv
bnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3QgPSAwOworICAgIAorICAg
IC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBpdGVyYXRvcnMgcmVmZXIgdG8gZGlm
ZmVyZW50CisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdHMsIG9yIHRvIGRpZmZlcmVudCBjaGFy
YWN0ZXJzIGluIHRoZQorICAgICAqIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdC4gIAorICAgICAq
IEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQg
Zm9yIGluZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRydWUgd2hlbiB0aGUgaXRlcmF0b3JzIHJl
ZmVyIHRvIGRpZmZlcmVudAorICAgICAqIHRleHQtc3RvcmFnZSBvYmplY3RzLCBvciB0byBkaWZm
ZXJlbnQgY2hhcmFjdGVycyBpbiB0aGUKKyAgICAgKiBzYW1lIHRleHQtc3RvcmFnZSBvYmplY3QK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgVUJvb2wgb3BlcmF0
b3IhPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0OworICAgIAor
ICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhpcyBpdGVyYXRvci4g
IAorICAgICAqIEByZXR1cm4gdGhlIGhhc2ggY29kZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgaGFzaENvZGUodm9pZCkgY29uc3QgPSAwOwor
ICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhpcyBGb3J3YXJk
Q2hhcmFjdGVySXRlcmF0b3IgKCJwb29yIG1hbidzCisgICAgICogUlRUSSIpLjxQPiBEZXNwaXRl
IHRoZSBmYWN0IHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBwdWJsaWMsCisgICAgICogRE8gTk9UIENP
TlNJREVSIElUIFBBUlQgT0YgQ0hBUkFDVEVSSVRFUkFUT1InUyBBUEkhIAorICAgICAqIEByZXR1
cm4gYSBVQ2xhc3NJRCBmb3IgdGhpcyBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWlj
Q2xhc3NJRCh2b2lkKSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUg
Y3VycmVudCBjb2RlIHVuaXQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhlIG5leHQg
Y29kZSB1bml0CisgICAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQg
ZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgdW5pdHMgdG8g
cmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVu
aXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAg
ICAgICAgIG5leHRQb3N0SW5jKHZvaWQpID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRz
IHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhl
IG5leHQgY29kZSBwb2ludAorICAgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAo
dG93YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHBv
aW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50
IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBVQ2hhcjMyICAgICAgIG5leHQzMlBvc3RJbmModm9pZCkgPSAwOworICAgIAorICAgIC8qKgor
ICAgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBj
b2RlIHBvaW50cworICAgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRo
ZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogVGhpcyBpcyB1c2VkIHdpdGggbmV4dFBvc3RJbmMo
KSBvciBuZXh0MzJQb3N0SW5jKCkgaW4gZm9yd2FyZAorICAgICAqIGl0ZXJhdGlvbi4KKyAgICAg
KiBAcmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUg
cG9pbnRzCisgICAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0
ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIFVCb29sICAgICAgICBoYXNOZXh0KCkgPSAwOworICAgIAorcHJvdGVjdGVkOgorICAgIC8q
KiBEZWZhdWx0IGNvbnN0cnVjdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGlu
ZyBjbGFzcy4gQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Io
KTsKKyAgICAKKyAgICAvKiogQ29weSBjb25zdHJ1Y3RvciB0byBiZSBvdmVycmlkZGVuIGluIHRo
ZSBpbXBsZW1lbnRpbmcgY2xhc3MuIEBzdGFibGUgSUNVIDIuMCovCisgICAgRm9yd2FyZENoYXJh
Y3Rlckl0ZXJhdG9yKGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmb3RoZXIpOworICAg
IAorICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IgdG8gYmUgb3ZlcnJpZGRlbiBp
biB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmb3BlcmF0b3I9KGNvbnN0IEZvcndhcmRD
aGFyYWN0ZXJJdGVyYXRvciYpIHsgcmV0dXJuICp0aGlzOyB9Cit9OworCisvKioKKyAqIEFic3Ry
YWN0IGNsYXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGl0ZXJhdGlvbgorICogb24gdGV4dCBv
YmplY3RzLgorICogVGhpcyBpcyBhbiBpbnRlcmZhY2UgZm9yIGZvcndhcmQgYW5kIGJhY2t3YXJk
IGl0ZXJhdGlvbgorICogYW5kIHJhbmRvbSBhY2Nlc3MgaW50byBhIHRleHQgb2JqZWN0LgorICoK
KyAqIDxwPlRoZSBBUEkgcHJvdmlkZXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB0byB0aGUgSmF2
YSBhbmQgb2xkZXIgSUNVCisgKiBDaGFyYWN0ZXJJdGVyYXRvciBjbGFzc2VzIGJ1dCBleHRlbmRz
IHRoZW0gc2lnbmlmaWNhbnRseToKKyAqIDxvbD4KKyAqIDxsaT5DaGFyYWN0ZXJJdGVyYXRvciBp
cyBub3cgYSBzdWJjbGFzcyBvZiBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuPC9saT4KKyAqIDxs
aT5XaGlsZSB0aGUgb2xkIEFQSSBmdW5jdGlvbnMgcHJvdmlkZWQgZm9yd2FyZCBpdGVyYXRpb24g
d2l0aAorICogICAgICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MsIHRoZSBuZXcgb25lIGFsc28g
cHJvdmlkZXMgZnVuY3Rpb25zCisgKiAgICAgd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNlbWFudGlj
cy4gVGhleSBhcmUgbW9yZSBlZmZpY2llbnQgYW5kIHNob3VsZAorICogICAgIGJlIHRoZSBwcmVm
ZXJyZWQgaXRlcmF0b3IgZnVuY3Rpb25zIGZvciBuZXcgaW1wbGVtZW50YXRpb25zLgorICogICAg
IFRoZSBiYWNrd2FyZCBpdGVyYXRpb24gYWx3YXlzIGhhZCAicHJlLWRlY3JlbWVudCIgc2VtYW50
aWNzLCB3aGljaAorICogICAgIGFyZSBlZmZpY2llbnQuPC9saT4KKyAqIDxsaT5KdXN0IGxpa2Ug
Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLCBpdCBwcm92aWRlcyBhY2Nlc3MgdG8KKyAqICAgICBi
b3RoIGNvZGUgdW5pdHMgYW5kIGNvZGUgcG9pbnRzLiBDb2RlIHBvaW50IGFjY2VzcyB2ZXJzaW9u
cyBhcmUgYXZhaWxhYmxlCisgKiAgICAgZm9yIHRoZSBvbGQgYW5kIHRoZSBuZXcgaXRlcmF0aW9u
IHNlbWFudGljcy48L2xpPgorICogPGxpPlRoZXJlIGFyZSBuZXcgZnVuY3Rpb25zIGZvciBzZXR0
aW5nIGFuZCBtb3ZpbmcgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICB3aXRob3V0IHJldHVy
bmluZyBhIGNoYXJhY3RlciwgZm9yIGVmZmljaWVuY3kuPC9saT4KKyAqIDwvb2w+CisgKgorICog
U2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciBmb3IgZXhhbXBsZXMgZm9yIHVzaW5nIHRoZSBu
ZXcgZm9yd2FyZCBpdGVyYXRpb24KKyAqIGZ1bmN0aW9ucy4gRm9yIGJhY2t3YXJkIGl0ZXJhdGlv
biwgdGhlcmUgaXMgYWxzbyBhIGhhc1ByZXZpb3VzKCkgZnVuY3Rpb24KKyAqIHRoYXQgY2FuIGJl
IHVzZWQgYW5hbG9nb3VzbHkgdG8gaGFzTmV4dCgpLgorICogVGhlIG9sZCBmdW5jdGlvbnMgd29y
ayBhcyBiZWZvcmUgYW5kIGFyZSBzaG93biBiZWxvdy48L3A+CisgKgorICogPHA+RXhhbXBsZXMg
Zm9yIHNvbWUgb2YgdGhlIG5ldyBmdW5jdGlvbnM6PC9wPgorICoKKyAqIEZvcndhcmQgaXRlcmF0
aW9uIHdpdGggaGFzTmV4dCgpOgorICogXGNvZGUKKyAqIHZvaWQgZm9yd2FyZDEoQ2hhcmFjdGVy
SXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIzMiBjOworICogICAgIGZvcihpdC5zZXRUb1N0
YXJ0KCk7IGl0Lmhhc05leHQoKTspIHsKKyAqICAgICAgICAgYz1pdC5uZXh0MzJQb3N0SW5jKCk7
CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiBG
b3J3YXJkIGl0ZXJhdGlvbiBtb3JlIHNpbWlsYXIgdG8gbG9vcHMgd2l0aCB0aGUgb2xkIGZvcndh
cmQgaXRlcmF0aW9uLAorICogc2hvd2luZyBhIHdheSB0byBjb252ZXJ0IHNpbXBsZSBmb3IoKSBs
b29wczoKKyAqIFxjb2RlCisgKiB2b2lkIGZvcndhcmQyKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkg
eworICogICAgIFVDaGFyIGM7CisgKiAgICAgZm9yKGM9aXQuZmlyc3RQb3N0SW5jKCk7IGMhPUNo
YXJhY3Rlckl0ZXJhdG9yOjpET05FOyBjPWl0Lm5leHRQb3N0SW5jKCkpIHsKKyAqICAgICAgICAg
IC8vIHVzZSBjCisgKiAgICAgIH0KKyAqIH0KKyAqIFxlbmRjb2RlCisgKiBCYWNrd2FyZCBpdGVy
YXRpb24gd2l0aCBzZXRUb0VuZCgpIGFuZCBoYXNQcmV2aW91cygpOgorICogXGNvZGUKKyAqICB2
b2lkIGJhY2t3YXJkMShDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICAgVUNoYXIzMiBj
OworICogICAgICBmb3IoaXQuc2V0VG9FbmQoKTsgaXQuaGFzUHJldmlvdXMoKTspIHsKKyAqICAg
ICAgICAgYz1pdC5wcmV2aW91czMyKCk7CisgKiAgICAgICAgICAvLyB1c2UgYworICogICAgICB9
CisgKiAgfQorICogXGVuZGNvZGUKKyAqIEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIGEgbW9yZSB0
cmFkaXRpb25hbCBmb3IoKSBsb29wOgorICogXGNvZGUKKyAqIHZvaWQgYmFja3dhcmQyKENoYXJh
Y3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyIGM7CisgKiAgICAgZm9yKGM9aXQubGFz
dCgpOyBjIT1DaGFyYWN0ZXJJdGVyYXRvcjo6RE9ORTsgYz1pdC5wcmV2aW91cygpKSB7CisgKiAg
ICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICoKKyAqIEV4
YW1wbGUgZm9yIHJhbmRvbSBhY2Nlc3M6CisgKiBcY29kZQorICogIHZvaWQgcmFuZG9tKENoYXJh
Y3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgICAvLyBzZXQgdG8gdGhlIHRoaXJkIGNvZGUgcG9p
bnQgZnJvbSB0aGUgYmVnaW5uaW5nCisgKiAgICAgIGl0Lm1vdmUzMigzLCBDaGFyYWN0ZXJJdGVy
YXRvcjo6a1N0YXJ0KTsKKyAqICAgICAgLy8gZ2V0IGEgY29kZSBwb2ludCBmcm9tIGhlcmUgd2l0
aG91dCBtb3ZpbmcgdGhlIHBvc2l0aW9uCisgKiAgICAgIFVDaGFyMzIgYz1pdC5jdXJyZW50MzIo
KTsKKyAqICAgICAgLy8gZ2V0IHRoZSBwb3NpdGlvbgorICogICAgICBpbnQzMl90IHBvcz1pdC5n
ZXRJbmRleCgpOworICogICAgICAvLyBnZXQgdGhlIHByZXZpb3VzIGNvZGUgdW5pdAorICogICAg
ICBVQ2hhciB1PWl0LnByZXZpb3VzKCk7CisgKiAgICAgIC8vIG1vdmUgYmFjayBvbmUgbW9yZSBj
b2RlIHVuaXQKKyAqICAgICAgaXQubW92ZSgtMSwgQ2hhcmFjdGVySXRlcmF0b3I6OmtDdXJyZW50
KTsKKyAqICAgICAgLy8gc2V0IHRoZSBwb3NpdGlvbiBiYWNrIHRvIHdoZXJlIGl0IHdhcworICog
ICAgICAvLyBhbmQgcmVhZCB0aGUgc2FtZSBjb2RlIHBvaW50IGMgYW5kIG1vdmUgYmV5b25kIGl0
CisgKiAgICAgIGl0LnNldEluZGV4KHBvcyk7CisgKiAgICAgIGlmKGMhPWl0Lm5leHQzMlBvc3RJ
bmMoKSkgeworICogICAgICAgICAgZXhpdCgxKTsgLy8gQ2hhcmFjdGVySXRlcmF0b3IgaW5jb25z
aXN0ZW50CisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICoKKyAqIDxwPkV4YW1wbGVz
LCBlc3BlY2lhbGx5IGZvciB0aGUgb2xkIEFQSTo8L3A+CisgKgorICogRnVuY3Rpb24gcHJvY2Vz
c2luZyBjaGFyYWN0ZXJzLCBpbiB0aGlzIGV4YW1wbGUgc2ltcGxlIG91dHB1dAorICogPHByZT4K
KyAqIFxjb2RlCisgKiAgdm9pZCBwcm9jZXNzQ2hhciggVUNoYXIgYyApCisgKiAgeworICogICAg
ICBjb3V0IDw8ICIgIiA8PCBjOworICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIFRy
YXZlcnNlIHRoZSB0ZXh0IGZyb20gc3RhcnQgdG8gZmluaXNoCisgKiA8cHJlPiAKKyAqIFxjb2Rl
CisgKiAgdm9pZCB0cmF2ZXJzZUZvcndhcmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIpCisgKiAg
eworICogICAgICBmb3IoVUNoYXIgYyA9IGl0ZXIuZmlyc3QoKTsgYyAhPSBDaGFyYWN0ZXJJdGVy
YXRvci5ET05FOyBjID0gaXRlci5uZXh0KCkpIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMp
OworICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2Ug
dGhlIHRleHQgYmFja3dhcmRzLCBmcm9tIGVuZCB0byBzdGFydAorICogPHByZT4KKyAqIFxjb2Rl
CisgKiAgdm9pZCB0cmF2ZXJzZUJhY2t3YXJkKENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyKQorICog
IHsKKyAqICAgICAgZm9yKFVDaGFyIGMgPSBpdGVyLmxhc3QoKTsgYyAhPSBDaGFyYWN0ZXJJdGVy
YXRvci5ET05FOyBjID0gaXRlci5wcmV2aW91cygpKSB7CisgKiAgICAgICAgICBwcm9jZXNzQ2hh
cihjKTsKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIFRyYXZl
cnNlIGJvdGggZm9yd2FyZCBhbmQgYmFja3dhcmQgZnJvbSBhIGdpdmVuIHBvc2l0aW9uIGluIHRo
ZSB0ZXh0LiAKKyAqIENhbGxzIHRvIG5vdEJvdW5kYXJ5KCkgaW4gdGhpcyBleGFtcGxlIHJlcHJl
c2VudHMgc29tZSBhZGRpdGlvbmFsIHN0b3BwaW5nIGNyaXRlcmlhLgorICogPHByZT4KKyAqIFxj
b2RlCisgKiB2b2lkIHRyYXZlcnNlT3V0KENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyLCBpbnQzMl90
IHBvcykKKyAqIHsKKyAqICAgICAgVUNoYXIgYzsKKyAqICAgICAgZm9yIChjID0gaXRlci5zZXRJ
bmRleChwb3MpOworICogICAgICBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYgKFVuaWNv
ZGU6OmlzTGV0dGVyKGMpIHx8IFVuaWNvZGU6OmlzRGlnaXQoYykpOworICogICAgICAgICAgYyA9
IGl0ZXIubmV4dCgpKSB7fQorICogICAgICBpbnQzMl90IGVuZCA9IGl0ZXIuZ2V0SW5kZXgoKTsK
KyAqICAgICAgZm9yIChjID0gaXRlci5zZXRJbmRleChwb3MpOworICogICAgICAgICAgYyAhPSBD
aGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIChVbmljb2RlOjppc0xldHRlcihjKSB8fCBVbmljb2Rl
Ojppc0RpZ2l0KGMpKTsKKyAqICAgICAgICAgIGMgPSBpdGVyLnByZXZpb3VzKCkpIHt9CisgKiAg
ICAgIGludDMyX3Qgc3RhcnQgPSBpdGVyLmdldEluZGV4KCkgKyAxOworICogIAorICogICAgICBj
b3V0IDw8ICJzdGFydDogIiA8PCBzdGFydCA8PCAiIGVuZDogIiA8PCBlbmQgPDwgZW5kbDsKKyAq
ICAgICAgZm9yIChjID0gaXRlci5zZXRJbmRleChzdGFydCk7IGl0ZXIuZ2V0SW5kZXgoKSA8IGVu
ZDsgYyA9IGl0ZXIubmV4dCgpICkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAg
ICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIENyZWF0aW5nIGEgU3RyaW5n
Q2hhcmFjdGVySXRlcmF0b3IgYW5kIGNhbGxpbmcgdGhlIHRlc3QgZnVuY3Rpb25zCisgKiA8cHJl
PgorICogXGNvZGUKKyAqICB2b2lkIENoYXJhY3Rlckl0ZXJhdG9yX0V4YW1wbGUoIHZvaWQgKQor
ICogICB7CisgKiAgICAgICBjb3V0IDw8IGVuZGwgPDwgIj09PT09IENoYXJhY3Rlckl0ZXJhdG9y
X0V4YW1wbGU6ID09PT09IiA8PCBlbmRsOworICogICAgICAgVW5pY29kZVN0cmluZyB0ZXh0KCJF
aW4ga2xlaW5lciBTYXR6LiIpOworICogICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaXRl
cmF0b3IodGV4dCk7CisgKiAgICAgICBjb3V0IDw8ICItLS0tLSB0cmF2ZXJzZUZvcndhcmQ6IC0t
LS0tLS0tLS0tIiA8PCBlbmRsOworICogICAgICAgdHJhdmVyc2VGb3J3YXJkKCBpdGVyYXRvciAp
OworICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIHRyYXZlcnNlQmFja3dh
cmQ6IC0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZUJhY2t3YXJkKCBpdGVy
YXRvciApOworICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIHRyYXZlcnNl
T3V0OiAtLS0tLS0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZU91dCggaXRl
cmF0b3IsIDcgKTsKKyAqICAgICAgIGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICItLS0tLSIgPDwg
ZW5kbDsKKyAqICAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICoKKyAqIEBzdGFibGUgSUNV
IDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMg
Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiBPcmln
aW4gZW51bWVyYXRpb24gZm9yIHRoZSBtb3ZlKCkgYW5kIG1vdmUzMigpIGZ1bmN0aW9ucy4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBlbnVtIEVPcmlnaW4geyBrU3RhcnQs
IGtDdXJyZW50LCBrRW5kIH07CisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkNoYXJhY3Rlckl0ZXJhdG9y
KCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcG9pbnRlciB0byBhIG5ldyBDaGFyYWN0
ZXJJdGVyYXRvciBvZiB0aGUgc2FtZQorICAgICAqIGNvbmNyZXRlIGNsYXNzIGFzIHRoaXMgb25l
LCBhbmQgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1l
IHRleHQtc3RvcmFnZSBvYmplY3QgYXMgdGhpcyBvbmUuICBUaGUKKyAgICAgKiBjYWxsZXIgaXMg
cmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSBuZXcgY2xvbmUuICAKKyAgICAgKiBAcmV0dXJu
IGEgcG9pbnRlciB0byBhIG5ldyBDaGFyYWN0ZXJJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3IqIGNsb25lKHZvaWQp
IGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVy
IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBh
bmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJl
Z2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBj
b2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3Qodm9pZCkgPSAwOworCisg
ICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNv
ZGUgdW5pdCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2Rl
IHVuaXQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICAgKiB0byB0aGUgc2Vjb25kIGNvZGUg
dW5pdC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICAgKiBmb3Ig
Zm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhl
IGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdFBvc3RJbmMo
dm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0
aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCBy
ZXR1cm5zIHRoYXQgY29kZSB1bml0LAorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4g
YW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyKCkuCisgICAgICogTm90ZSB0aGF0IGFuIGl0ZXJhdGlv
biB3aXRoIG5leHQzMlBvc3RJbmMoKSwgYmVnaW5uaW5nIHdpdGgsCisgICAgICogZS5nLiwgc2V0
VG9TdGFydCgpIG9yIGZpcnN0UG9zdEluYygpLCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICAgKiBA
cmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZp
cnN0MzIodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8g
cmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJh
bmdlLCByZXR1cm5zIHRoYXQgY29kZSBwb2ludCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAg
ICAqIHRvIHRoZSBzZWNvbmQgY29kZSBwb2ludC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBz
ZXRUb1N0YXJ0KCkKKyAgICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0
SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0
aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
VUNoYXIzMiAgICAgICBmaXJzdDMyUG9zdEluYyh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgb3IgY29kZSBw
b2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UuIFRoaXMgY2FuIGJlIHVzZWQgdG8g
YmVnaW4gYSBmb3J3YXJkCisgICAgICogaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMoKSBvciBu
ZXh0MzJQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgc3RhcnQgcG9zaXRpb24gb2YgdGhl
IGl0ZXJhdGlvbiByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlu
bGluZSBpbnQzMl90ICAgIHNldFRvU3RhcnQoKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICAgKiBp
dGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgICAqIFRoaXMg
Y2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKS4KKyAgICAg
KiBAcmV0dXJuIHRoZSBsYXN0IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbGFzdCh2b2lkKSA9IDA7CisgICAgICAg
IAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0
IGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0
aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJh
dGlvbiB3aXRoIHByZXZpb3VzMzIoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNvZGUgcG9p
bnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMy
ICAgICAgIGxhc3QzMih2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVy
YXRvciB0byB0aGUgZW5kIG9mIGl0cyBpdGVyYXRpb24gcmFuZ2UsIGp1c3QgYmVoaW5kCisgICAg
ICogdGhlIGxhc3QgY29kZSB1bml0IG9yIGNvZGUgcG9pbnQuIFRoaXMgY2FuIGJlIHVzZWQgdG8g
YmVnaW4gYSBiYWNrd2FyZAorICAgICAqIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkgb3IgcHJl
dmlvdXMzMigpLgorICAgICAqIEByZXR1cm4gdGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0
aW9uIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGlu
dDMyX3QgICAgc2V0VG9FbmQoKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9y
IHRvIHJlZmVyIHRvIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgICAqIGluIHRoZSB0
ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgICAqIHJl
dHVybnMgdGhhdCBjb2RlIHVuaXQuICAKKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlICJwb3Np
dGlvbiItdGggY29kZSB1bml0IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHJl
dHVybiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIHNldEluZGV4KGludDMyX3QgcG9z
aXRpb24pID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVy
IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiB0aGF0IGNvbnRhaW5z
IHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgICAqIGluIHRoZSB0ZXh0LXN0b3JhZ2Ug
b2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgICAqIHJldHVybnMgdGhhdCBj
b2RlIHBvaW50LgorICAgICAqIFRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIGFkanVzdGVkIHRvIHRo
ZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiAoaXRzIGZpcnN0IGNvZGUgdW5p
dCkuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdCBp
biB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlICJwb3NpdGlvbiIt
dGggY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIFVDaGFyMzIgICAgICAgc2V0SW5kZXgzMihpbnQzMl90IHBvc2l0aW9uKSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRs
eSByZWZlcnMgdG8uIAorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSB1bml0LiAKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAg
Y3VycmVudCh2b2lkKSBjb25zdCA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVy
bnMgdGhlIGNvZGUgcG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uICAKKyAg
ICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGN1cnJlbnQzMih2b2lkKSBj
b25zdCA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0
IGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRl
eCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBu
byBtb3JlIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICogQHJldHVy
biB0aGUgbmV4dCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHQodm9pZCkgPSAwOworICAgICAgICAKKyAgICAv
KioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNv
ZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJl
dHVybiwgcmV0dXJucyBET05FLgorICAgICAqIE5vdGUgdGhhdCBpdGVyYXRpb24gd2l0aCAicHJl
LWluY3JlbWVudCIgc2VtYW50aWNzIGlzIGxlc3MKKyAgICAgKiBlZmZpY2llbnQgdGhhbiBpdGVy
YXRpb24gd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNlbWFudGljcworICAgICAqIHRoYXQgaXMgcHJv
dmlkZWQgYnkgbmV4dDMyUG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSBw
b2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFy
MzIgICAgICAgbmV4dDMyKHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2
YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisg
ICAgICogKHRvd2FyZCBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4g
IElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVy
bnMgRE9ORS4gIAorICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgdW5pdC4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgcHJl
dmlvdXModm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIHByZXZp
b3VzIGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgc3Rh
cnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlCisg
ICAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4gCisgICAg
ICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSBwb2ludC4gCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHByZXZpb3VzMzIodm9pZCkg
PSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9y
ZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBv
c2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogVGhpcyBpcyB1c2VkIHdpdGgg
cHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkgaW4gYmFja3dhcmQKKyAgICAgKiBpdGVyYXRpb24u
CisgICAgICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9y
IGNvZGUgcG9pbnRzCisgICAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBp
dGVyYXRpb24gcmFuZ2UsIHJldHVybiBUUlVFIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNQcmV2aW91cygpID0g
MDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVu
ZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0ZXIgcmV0
dXJuZWQgYnkgZmlyc3QoKS4gIFNpbmNlIGl0J3MKKyAgICAgKiBwb3NzaWJsZSB0byBjcmVhdGUg
YW4gaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBhY3Jvc3Mgb25seQorICAgICAqIHBhcnQgb2YgYSB0
ZXh0LXN0b3JhZ2Ugb2JqZWN0LCB0aGlzIG51bWJlciBpc24ndAorICAgICAqIG5lY2Vzc2FyaWx5
IDAuICAKKyAgICAgKiBAcmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWlu
ZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBi
eSBmaXJzdCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBp
bnQzMl90ICAgICAgIHN0YXJ0SW5kZXgodm9pZCkgY29uc3Q7CisgICAgICAgIAorICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1z
dG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBwb3NpdGlvbiBpbW1lZGlhdGVseSBCRVlPTkQg
dGhlIGNoYXJhY3RlcgorICAgICAqIHJldHVybmVkIGJ5IGxhc3QoKS4gIAorICAgICAqIEByZXR1
cm4gdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAg
ICogb2JqZWN0IG9mIHRoZSBwb3NpdGlvbiBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGNoYXJhY3Rl
cgorICAgICAqIHJldHVybmVkIGJ5IGxhc3QoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBlbmRJbmRleCh2b2lkKSBjb25zdDsKKyAg
ICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUg
dW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciB0
aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0bworICAgICAqIChpLmUuLCB0aGUgY2hhcmFj
dGVyIHJldHVybmVkIGJ5IGN1cnJlbnQoKSkuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXJp
YyBpbmRleCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCBvZiAKKyAgICAgKiB0aGUgY2hhcmFj
dGVyIHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAgZ2V0SW5kZXgodm9pZCkgY29u
c3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGVudGlyZSB0
ZXh0IGluIHRoZSB1bmRlcmx5aW5nCisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdC4KKyAgICAg
KiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGVudGlyZSB0ZXh0IGluIHRoZSB0ZXh0LXN0b3Jh
Z2Ugb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGlu
dDMyX3QgICAgICAgICAgIGdldExlbmd0aCgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogTW92
ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0
aGUKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBv
c2l0aW9uIGl0c2VsZi4KKyAgICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJl
cnMgb2YgY29kZSB1bml0cyBmb3J3YXJkCisgICAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWlu
ZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgICAqIEBwYXJhbSBkZWx0YSB0aGUg
cG9zaXRpb24gcmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndh
cmQ7CisgICAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICAgKiBAcGFy
YW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAg
ICAgKiBAcmV0dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlKGludDMyX3QgZGVsdGEsIEVPcmln
aW4gb3JpZ2luKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3Np
dGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgICAqIGl0ZXJhdGlv
biByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAg
ICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHBvaW50cyBm
b3J3YXJkCisgICAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5l
Z2F0aXZlIGRlbHRhLgorICAgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVsYXRpdmUg
dG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAgICogYSBuZWdh
dGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBl
bnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICAgKiBAcmV0dXJuIHRoZSBu
ZXcgcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IGludDMyX3QgICAgICBtb3ZlMzIoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pID0gMDsK
KworICAgIC8qKgorICAgICAqIENvcGllcyB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24gaW50byB0
aGUgVW5pY29kZVN0cmluZworICAgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgCisgICAg
ICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5kZXIgaXRlcmF0
aW9uLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lk
ICAgICAgICAgICAgZ2V0VGV4dChVbmljb2RlU3RyaW5nJiAgcmVzdWx0KSA9IDA7CisKK3Byb3Rl
Y3RlZDoKKyAgICAvKioKKyAgICAgKiBFbXB0eSBjb25zdHJ1Y3Rvci4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgICAgLyoqCisg
ICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoIGZpZWxkIGluIHRoaXMg
YmFzZSBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0
ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0aCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rv
ciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGggYW5kIHBvc2l0aW9uIGZpZWxkcyBpbiB0aGlzIGJh
c2UgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVy
SXRlcmF0b3IoaW50MzJfdCBsZW5ndGgsIGludDMyX3QgcG9zaXRpb24pOworCisgICAgLyoqCisg
ICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoLCBzdGFydCwgZW5kLCBh
bmQgcG9zaXRpb24gZmllbGRzIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0aCwgaW50
MzJfdCB0ZXh0QmVnaW4sIGludDMyX3QgdGV4dEVuZCwgaW50MzJfdCBwb3NpdGlvbik7CisgIAor
ICAgIC8qKgorICAgICAqIENvcHkgY29uc3RydWN0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0g
dGhhdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgQ2hhcmFjdGVySXRl
cmF0b3IgJnRoYXQpOworCisgICAgLyoqCisgICAgICogQXNzaWdubWVudCBvcGVyYXRvci4gIFNl
dHMgdGhpcyBDaGFyYWN0ZXJJdGVyYXRvciB0byBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLAorICAg
ICAqIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBDaGFyYWN0
ZXJJdGVyYXRvciBwYXNzZWQgaW4uCisgICAgICogQHJldHVybiB0aGUgbmV3bHkgc2V0IENoYXJh
Y3Rlckl0ZXJhdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJh
Y3Rlckl0ZXJhdG9yICZvcGVyYXRvcj0oY29uc3QgQ2hhcmFjdGVySXRlcmF0b3IgJnRoYXQpOwor
CisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyB0ZXh0IGxlbmd0aCBmaWVsZC4KKyAgICAgKiBO
ZWNlc3NhcnkgdGhpcyBmb3IgY29ycmVjdCBnZXRUZXh0KCkgYW5kIGhhc2hDb2RlKCkuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCB0ZXh0TGVuZ3RoOworCisg
ICAgLyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIGN1cnJlbnQgcG9zaXRpb24u
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCAgcG9zOworCisg
ICAgLyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIHN0YXJ0IG9mIHRoZSBpdGVy
YXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJf
dCAgYmVnaW47CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0aGUgZW5k
IG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgaW50MzJfdCAgZW5kOworfTsKKworaW5saW5lIFVCb29sCitGb3J3YXJkQ2hhcmFjdGVy
SXRlcmF0b3I6Om9wZXJhdG9yIT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0
KSBjb25zdCB7CisgICAgcmV0dXJuICFvcGVyYXRvcj09KHRoYXQpOworfQorCitpbmxpbmUgaW50
MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvU3RhcnQoKSB7CisgICAgcmV0dXJuIG1vdmUo
MCwga1N0YXJ0KTsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpzZXRU
b0VuZCgpIHsKKyAgICByZXR1cm4gbW92ZSgwLCBrRW5kKTsKK30KKworaW5saW5lIGludDMyX3QK
K0NoYXJhY3Rlckl0ZXJhdG9yOjpzdGFydEluZGV4KHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4g
YmVnaW47Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6ZW5kSW5kZXgo
dm9pZCkgY29uc3QgeworICAgIHJldHVybiBlbmQ7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFy
YWN0ZXJJdGVyYXRvcjo6Z2V0SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBwb3M7Cit9
CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6Z2V0TGVuZ3RoKHZvaWQpIGNv
bnN0IHsKKyAgICByZXR1cm4gdGV4dExlbmd0aDsKK30KKworVV9OQU1FU1BBQ0VfRU5ECisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaCBiL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvbG9jaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWQ1Y2I1NDZlYmUzOTdlZjQzNmRm
MzY1MDNlYjQzNzFjMzg2Njk2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5p
Y29kZS9sb2NpZC5oCkBAIC0wLDAgKzEsODE0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMTUsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxlIGxvY2lkLmgKKyoKKyogQ3Jl
YXRlZCBieTogSGVsZW5hIFNoaWgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAg
RGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwMi8xMS85NyAgICBhbGl1
ICAgICAgICBDaGFuZ2VkIGdMb2NQYXRoIHRvIGZnTG9jUGF0aCBhbmQgYWRkZWQgbWV0aG9kcyB0
bworKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldCBhbmQgc2V0IGl0LgorKiAgIDA0LzAy
Lzk3ICAgIGFsaXUgICAgICAgIE1hZGUgb3BlcmF0b3IhPSBpbmxpbmU7IGZpeGVkIHJldHVybiB2
YWx1ZSBvZiBnZXROYW1lKCkuCisqICAgMDQvMTUvOTcgICAgYWxpdSAgICAgICAgQ2xlYW51cCBm
b3IgQUlYL1dpbjMyLgorKiAgIDA0LzI0Lzk3ICAgIGFsaXUgICAgICAgIE51bWVyb3VzIGNoYW5n
ZXMgcGVyIGNvZGUgcmV2aWV3LgorKiAgIDA4LzE4Lzk4ICAgIHN0ZXBoZW4gICAgIEFkZGVkIHRv
a2VuaXplU3RyaW5nKCksY2hhbmdlZCBnZXREaXNwbGF5TmFtZSgpCisqICAgMDkvMDgvOTggICAg
c3RlcGhlbiAgICAgTW92ZWQgZGVmaW5pdGlvbiBvZiBrRW1wdHlTdHJpbmcgZm9yIE1hYyBQb3J0
CisqICAgMTEvMDkvOTkgICAgd2VpdiAgICAgICAgQWRkZWQgY29uc3QgY2hhciAqIGdldE5hbWUo
KSBjb25zdDsKKyogICAwNC8xMi8wMCAgICBzcmwgICAgICAgICByZW1vdmluZyB1bmljb2Rlc3Ry
aW5nIGFwaSdzIGFuZCBjYWNoZWQgaGFzaCBjb2RlCisqICAgMDgvMTAvMDEgICAgZ3Job3RlbiAg
ICAgQ2hhbmdlIHRoZSBzdGF0aWMgTG9jYWxlcyB0byBhY2Nlc3NvciBmdW5jdGlvbnMKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBMT0NJRF9ICisjZGVmaW5lIExPQ0lEX0gK
KworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91b2JqZWN0
LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3B1dGls
LmgiCisjaW5jbHVkZSAidW5pY29kZS91bG9jLmgiCisjaW5jbHVkZSAidW5pY29kZS9zdHJlbnVt
LmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBMb2NhbGUgSUQgb2JqZWN0
LgorICovCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8vIEZvcndhcmQgRGVjbGFyYXRpb25zCit2
b2lkIFVfQ0FMTENPTlYgbG9jYWxlX2F2YWlsYWJsZV9pbml0KCk7IC8qKjwgQGludGVybmFsICov
CisKKy8qKgorICogQSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCByZXByZXNlbnRzIGEgc3Bl
Y2lmaWMgZ2VvZ3JhcGhpY2FsLCBwb2xpdGljYWwsCisgKiBvciBjdWx0dXJhbCByZWdpb24uIEFu
IG9wZXJhdGlvbiB0aGF0IHJlcXVpcmVzIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiB0byBwZXJmb3Jt
CisgKiBpdHMgdGFzayBpcyBjYWxsZWQgPGVtPmxvY2FsZS1zZW5zaXRpdmU8L2VtPiBhbmQgdXNl
cyB0aGUgPGNvZGU+TG9jYWxlPC9jb2RlPgorICogdG8gdGFpbG9yIGluZm9ybWF0aW9uIGZvciB0
aGUgdXNlci4gRm9yIGV4YW1wbGUsIGRpc3BsYXlpbmcgYSBudW1iZXIKKyAqIGlzIGEgbG9jYWxl
LXNlbnNpdGl2ZSBvcGVyYXRpb24tLXRoZSBudW1iZXIgc2hvdWxkIGJlIGZvcm1hdHRlZAorICog
YWNjb3JkaW5nIHRvIHRoZSBjdXN0b21zL2NvbnZlbnRpb25zIG9mIHRoZSB1c2VyJ3MgbmF0aXZl
IGNvdW50cnksCisgKiByZWdpb24sIG9yIGN1bHR1cmUuCisgKgorICogVGhlIExvY2FsZSBjbGFz
cyBpcyBub3Qgc3VpdGFibGUgZm9yIHN1YmNsYXNzaW5nLgorICoKKyAqIDxQPgorICogWW91IGNh
biBjcmVhdGUgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCB1c2luZyB0aGUgY29uc3RydWN0
b3IgaW4KKyAqIHRoaXMgY2xhc3M6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9u
bHkKKyAqIDxwcmU+CisgKiAgICAgICBMb2NhbGUoIGNvbnN0ICAgY2hhciogIGxhbmd1YWdlLAor
ICogICAgICAgICAgICAgICBjb25zdCAgIGNoYXIqICBjb3VudHJ5LAorICogICAgICAgICAgICAg
ICBjb25zdCAgIGNoYXIqICB2YXJpYW50KTsKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9j
a3F1b3RlPlxlbmRodG1sb25seQorICogVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1
Y3RvcnMgaXMgYSB2YWxpZCA8U1RST05HPklTTworICogTGFuZ3VhZ2UgQ29kZS48L1NUUk9ORz4g
VGhlc2UgY29kZXMgYXJlIHRoZSBsb3dlci1jYXNlIHR3by1sZXR0ZXIKKyAqIGNvZGVzIGFzIGRl
ZmluZWQgYnkgSVNPLTYzOS4KKyAqIFlvdSBjYW4gZmluZCBhIGZ1bGwgbGlzdCBvZiB0aGVzZSBj
b2RlcyBhdDoKKyAqIDxCUj48YSBocmVmID0iaHR0cDovL3d3dy5sb2MuZ292L3N0YW5kYXJkcy9p
c282MzktMi8iPgorICogaHR0cDovL3d3dy5sb2MuZ292L3N0YW5kYXJkcy9pc282MzktMi88L2E+
CisgKgorICogPFA+CisgKiBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1Y3RvcnMg
aXMgYSB2YWxpZCA8U1RST05HPklTTyBDb3VudHJ5CisgKiBDb2RlLjwvU1RST05HPiBUaGVzZSBj
b2RlcyBhcmUgdGhlIHVwcGVyLWNhc2UgdHdvLWxldHRlciBjb2RlcworICogYXMgZGVmaW5lZCBi
eSBJU08tMzE2Ni4KKyAqIFlvdSBjYW4gZmluZCBhIGZ1bGwgbGlzdCBvZiB0aGVzZSBjb2RlcyBh
dCBhIG51bWJlciBvZiBzaXRlcywgc3VjaCBhczoKKyAqIDxCUj48YSBocmVmPSJodHRwOi8vd3d3
Lmlzby5vcmcvaXNvL2VuL3Byb2RzLXNlcnZpY2VzL2lzbzMxNjZtYS9pbmRleC5odG1sIj4KKyAq
IGh0dHA6Ly93d3cuaXNvLm9yZy9pc28vZW4vcHJvZHMtc2VydmljZXMvaXNvMzE2Nm1hL2luZGV4
Lmh0bWw8L2E+CisgKgorICogPFA+CisgKiBUaGUgdGhpcmQgY29uc3RydWN0b3IgcmVxdWlyZXMg
YSB0aGlyZCBhcmd1bWVudC0tdGhlIDxTVFJPTkc+VmFyaWFudC48L1NUUk9ORz4KKyAqIFRoZSBW
YXJpYW50IGNvZGVzIGFyZSB2ZW5kb3IgYW5kIGJyb3dzZXItc3BlY2lmaWMuCisgKiBGb3IgZXhh
bXBsZSwgdXNlIFJFVklTRUQgZm9yIGEgbGFuZ2F1Z2UncyByZXZpc2VkIHNjcmlwdCBvcnRob2dy
YXBoeSwgYW5kIFBPU0lYIGZvciBQT1NJWC4KKyAqIFdoZXJlIHRoZXJlIGFyZSB0d28gdmFyaWFu
dHMsIHNlcGFyYXRlIHRoZW0gd2l0aCBhbiB1bmRlcnNjb3JlLCBhbmQKKyAqIHB1dCB0aGUgbW9z
dCBpbXBvcnRhbnQgb25lIGZpcnN0LiBGb3IKKyAqIGV4YW1wbGUsIGEgVHJhZGl0aW9uYWwgU3Bh
bmlzaCBjb2xsYXRpb24gbWlnaHQgYmUgcmVmZXJlbmNlZCwgd2l0aAorICogIkVTIiwgIkVTIiwg
IlRyYWRpdGlvbmFsX1BPU0lYIi4KKyAqCisgKiA8UD4KKyAqIEJlY2F1c2UgYSA8Y29kZT5Mb2Nh
bGU8L2NvZGU+IG9iamVjdCBpcyBqdXN0IGFuIGlkZW50aWZpZXIgZm9yIGEgcmVnaW9uLAorICog
bm8gdmFsaWRpdHkgY2hlY2sgaXMgcGVyZm9ybWVkIHdoZW4geW91IGNvbnN0cnVjdCBhIDxjb2Rl
PkxvY2FsZTwvY29kZT4uCisgKiBJZiB5b3Ugd2FudCB0byBzZWUgd2hldGhlciBwYXJ0aWN1bGFy
IHJlc291cmNlcyBhcmUgYXZhaWxhYmxlIGZvciB0aGUKKyAqIDxjb2RlPkxvY2FsZTwvY29kZT4g
eW91IGNvbnN0cnVjdCwgeW91IG11c3QgcXVlcnkgdGhvc2UgcmVzb3VyY2VzLiBGb3IKKyAqIGV4
YW1wbGUsIGFzayB0aGUgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBmb3IgdGhlIGxvY2FsZXMg
aXQgc3VwcG9ydHMKKyAqIHVzaW5nIGl0cyA8Y29kZT5nZXRBdmFpbGFibGVMb2NhbGVzPC9jb2Rl
PiBtZXRob2QuCisgKiA8QlI+PFNUUk9ORz5Ob3RlOjwvU1RST05HPiBXaGVuIHlvdSBhc2sgZm9y
IGEgcmVzb3VyY2UgZm9yIGEgcGFydGljdWxhcgorICogbG9jYWxlLCB5b3UgZ2V0IGJhY2sgdGhl
IGJlc3QgYXZhaWxhYmxlIG1hdGNoLCBub3QgbmVjZXNzYXJpbHkKKyAqIHByZWNpc2VseSB3aGF0
IHlvdSBhc2tlZCBmb3IuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBsb29rIGF0CisgKiA8Y29kZT5S
ZXNvdXJjZUJ1bmRsZTwvY29kZT4uCisgKgorICogPFA+CisgKiBUaGUgPGNvZGU+TG9jYWxlPC9j
b2RlPiBjbGFzcyBwcm92aWRlcyBhIG51bWJlciBvZiBjb252ZW5pZW50IGNvbnN0YW50cworICog
dGhhdCB5b3UgY2FuIHVzZSB0byBjcmVhdGUgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3RzIGZv
ciBjb21tb25seSB1c2VkCisgKiBsb2NhbGVzLiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBy
ZWZlcnMgdG8gYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdAorICogZm9yIHRoZSBVbml0ZWQg
U3RhdGVzOgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgor
ICogICAgICAgTG9jYWxlOjpnZXRVUygpCisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2tx
dW90ZT5cZW5kaHRtbG9ubHkKKyAqCisgKiA8UD4KKyAqIE9uY2UgeW91J3ZlIGNyZWF0ZWQgYSA8
Y29kZT5Mb2NhbGU8L2NvZGU+IHlvdSBjYW4gcXVlcnkgaXQgZm9yIGluZm9ybWF0aW9uIGFib3V0
CisgKiBpdHNlbGYuIFVzZSA8Y29kZT5nZXRDb3VudHJ5PC9jb2RlPiB0byBnZXQgdGhlIElTTyBD
b3VudHJ5IENvZGUgYW5kCisgKiA8Y29kZT5nZXRMYW5ndWFnZTwvY29kZT4gdG8gZ2V0IHRoZSBJ
U08gTGFuZ3VhZ2UgQ29kZS4gWW91IGNhbgorICogdXNlIDxjb2RlPmdldERpc3BsYXlDb3VudHJ5
PC9jb2RlPiB0byBnZXQgdGhlCisgKiBuYW1lIG9mIHRoZSBjb3VudHJ5IHN1aXRhYmxlIGZvciBk
aXNwbGF5aW5nIHRvIHRoZSB1c2VyLiBTaW1pbGFybHksCisgKiB5b3UgY2FuIHVzZSA8Y29kZT5n
ZXREaXNwbGF5TGFuZ3VhZ2U8L2NvZGU+IHRvIGdldCB0aGUgbmFtZSBvZgorICogdGhlIGxhbmd1
YWdlIHN1aXRhYmxlIGZvciBkaXNwbGF5aW5nIHRvIHRoZSB1c2VyLiBJbnRlcmVzdGluZ2x5LAor
ICogdGhlIDxjb2RlPmdldERpc3BsYXlYWFg8L2NvZGU+IG1ldGhvZHMgYXJlIHRoZW1zZWx2ZXMg
bG9jYWxlLXNlbnNpdGl2ZQorICogYW5kIGhhdmUgdHdvIHZlcnNpb25zOiBvbmUgdGhhdCB1c2Vz
IHRoZSBkZWZhdWx0IGxvY2FsZSBhbmQgb25lCisgKiB0aGF0IHRha2VzIGEgbG9jYWxlIGFzIGFu
IGFyZ3VtZW50IGFuZCBkaXNwbGF5cyB0aGUgbmFtZSBvciBjb3VudHJ5IGluCisgKiBhIGxhbmd1
YWdlIGFwcHJvcHJpYXRlIHRvIHRoYXQgbG9jYWxlLgorICoKKyAqIDxQPgorICogSUNVIHByb3Zp
ZGVzIGEgbnVtYmVyIG9mIGNsYXNzZXMgdGhhdCBwZXJmb3JtIGxvY2FsZS1zZW5zaXRpdmUKKyAq
IG9wZXJhdGlvbnMuIEZvciBleGFtcGxlLCB0aGUgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBj
bGFzcyBmb3JtYXRzCisgKiBudW1iZXJzLCBjdXJyZW5jeSwgb3IgcGVyY2VudGFnZXMgaW4gYSBs
b2NhbGUtc2Vuc2l0aXZlIG1hbm5lci4gQ2xhc3NlcworICogc3VjaCBhcyA8Y29kZT5OdW1iZXJG
b3JtYXQ8L2NvZGU+IGhhdmUgYSBudW1iZXIgb2YgY29udmVuaWVuY2UgbWV0aG9kcworICogZm9y
IGNyZWF0aW5nIGEgZGVmYXVsdCBvYmplY3Qgb2YgdGhhdCB0eXBlLiBGb3IgZXhhbXBsZSwgdGhl
CisgKiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGNsYXNzIHByb3ZpZGVzIHRoZXNlIHRocmVl
IGNvbnZlbmllbmNlIG1ldGhvZHMKKyAqIGZvciBjcmVhdGluZyBhIGRlZmF1bHQgPGNvZGU+TnVt
YmVyRm9ybWF0PC9jb2RlPiBvYmplY3Q6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRt
bG9ubHkKKyAqIDxwcmU+CisgKiAgICAgVUVycm9yQ29kZSBzdWNjZXNzID0gVV9aRVJPX0VSUk9S
OworICogICAgIExvY2FsZSBteUxvY2FsZTsKKyAqICAgICBOdW1iZXJGb3JtYXQgKm5mOworICoK
KyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlSW5zdGFuY2UoIHN1Y2Nlc3MgKTsgICAg
ICAgICAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVDdXJyZW5j
eUluc3RhbmNlKCBzdWNjZXNzICk7ICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3Jt
YXQ6OmNyZWF0ZVBlcmNlbnRJbnN0YW5jZSggc3VjY2VzcyApOyAgIGRlbGV0ZSBuZjsKKyAqIDwv
cHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogRWFjaCBvZiB0
aGVzZSBtZXRob2RzIGhhcyB0d28gdmFyaWFudHM7IG9uZSB3aXRoIGFuIGV4cGxpY2l0IGxvY2Fs
ZQorICogYW5kIG9uZSB3aXRob3V0OyB0aGUgbGF0dGVyIHVzaW5nIHRoZSBkZWZhdWx0IGxvY2Fs
ZS4KKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAg
ICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlSW5zdGFuY2UoIG15TG9jYWxlLCBzdWNjZXNzICk7
ICAgICAgICAgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlQ3Vy
cmVuY3lJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgIGRlbGV0ZSBuZjsKKyAqICAgICBu
ZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlUGVyY2VudEluc3RhbmNlKCBteUxvY2FsZSwgc3VjY2Vz
cyApOyAgIGRlbGV0ZSBuZjsKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxl
bmRodG1sb25seQorICogQSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGlzIHRoZSBtZWNoYW5pc20gZm9y
IGlkZW50aWZ5aW5nIHRoZSBraW5kIG9mIG9iamVjdAorICogKDxjb2RlPk51bWJlckZvcm1hdDwv
Y29kZT4pIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gZ2V0LiBUaGUgbG9jYWxlIGlzCisgKiA8U1RS
T05HPmp1c3Q8L1NUUk9ORz4gYSBtZWNoYW5pc20gZm9yIGlkZW50aWZ5aW5nIG9iamVjdHMsCisg
KiA8U1RST05HPm5vdDwvU1RST05HPiBhIGNvbnRhaW5lciBmb3IgdGhlIG9iamVjdHMgdGhlbXNl
bHZlcy4KKyAqCisgKiA8UD4KKyAqIEVhY2ggY2xhc3MgdGhhdCBwZXJmb3JtcyBsb2NhbGUtc2Vu
c2l0aXZlIG9wZXJhdGlvbnMgYWxsb3dzIHlvdQorICogdG8gZ2V0IGFsbCB0aGUgYXZhaWxhYmxl
IG9iamVjdHMgb2YgdGhhdCB0eXBlLiBZb3UgY2FuIHNpZnQKKyAqIHRocm91Z2ggdGhlc2Ugb2Jq
ZWN0cyBieSBsYW5ndWFnZSwgY291bnRyeSwgb3IgdmFyaWFudCwKKyAqIGFuZCB1c2UgdGhlIGRp
c3BsYXkgbmFtZXMgdG8gcHJlc2VudCBhIG1lbnUgdG8gdGhlIHVzZXIuCisgKiBGb3IgZXhhbXBs
ZSwgeW91IGNhbiBjcmVhdGUgYSBtZW51IG9mIGFsbCB0aGUgY29sbGF0aW9uIG9iamVjdHMKKyAq
IHN1aXRhYmxlIGZvciBhIGdpdmVuIGxhbmd1YWdlLiBTdWNoIGNsYXNzZXMgaW1wbGVtZW50IHRo
ZXNlCisgKiB0aHJlZSBjbGFzcyBtZXRob2RzOgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVu
ZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgICAgc3RhdGljIExvY2FsZSogZ2V0QXZhaWxhYmxl
TG9jYWxlcyhpbnQzMl90JiBudW1Mb2NhbGVzKQorICogICAgICAgc3RhdGljIFVuaWNvZGVTdHJp
bmcmIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgIG9iamVjdExvY2FsZSwKKyAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMb2NhbGUmICBkaXNw
bGF5TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVuaWNvZGVTdHJpbmcmIGRpc3BsYXlOYW1lKQorICogICAgICAgc3RhdGljIFVuaWNvZGVTdHJp
bmcmIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgIG9iamVjdExvY2FsZSwKKyAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNw
bGF5TmFtZSkKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25s
eQorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICogQHNlZSBSZXNvdXJjZUJ1bmRsZQorICovCitj
bGFzcyBVX0NPTU1PTl9BUEkgTG9jYWxlIDogcHVibGljIFVPYmplY3QgeworcHVibGljOgorICAg
IC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoZSBSb290IGxvY2FsZS4gQHN0YWJsZSBJQ1UgNC40
ICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFJvb3Qodm9pZCk7Cisg
ICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4w
ICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEVuZ2xpc2godm9pZCk7
CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1Ug
Mi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEZyZW5jaCh2b2lk
KTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElD
VSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0R2VybWFuKHZv
aWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUg
SUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRJdGFsaWFu
KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFi
bGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRKYXBh
bmVzZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0
S29yZWFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2Uu
IEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBn
ZXRDaGluZXNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3Vh
Z2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JU
MiBnZXRTaW1wbGlmaWVkQ2hpbmVzZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZv
ciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9j
YWxlICZVX0VYUE9SVDIgZ2V0VHJhZGl0aW9uYWxDaGluZXNlKHZvaWQpOworCisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEZyYW5jZSh2b2lkKTsKKyAg
ICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElD
VSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0R2VybWFueSh2
b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0
SXRhbHkodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3Jl
Z2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBP
UlQyIGdldEphcGFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291
bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUg
JlVfRVhQT1JUMiBnZXRLb3JlYSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0
aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3Qg
TG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2hpbmEodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFu
dCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFBSQyh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNv
bnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBz
dGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VGFpd2FuKHZvaWQpOworICAgIC8qKiBV
c2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAq
LworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRVSyh2b2lkKTsKKyAgICAv
KiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAy
LjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VVModm9pZCk7Cisg
ICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJ
Q1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENhbmFkYSh2
b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0
Q2FuYWRhRnJlbmNoKHZvaWQpOworCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBkZWZh
dWx0IGxvY2FsZSBvYmplY3QsIGEgTG9jYWxlIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgSUQuCisg
ICAgICoKKyAgICAgKiBAc2VlIGdldERlZmF1bHQKKyAgICAgKiBAc2VlIHVsb2NfZ2V0RGVmYXVs
dAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZSgpOworCisgICAg
LyoqCisgICAgICogQ29uc3RydWN0IGEgbG9jYWxlIGZyb20gbGFuZ3VhZ2UsIGNvdW50cnksIHZh
cmlhbnQuCisgICAgICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVuIHRoZSBjb25zdHJ1Y3RlZCBv
YmplY3Qgd2lsbCBiZSAiYm9ndXMiCisgICAgICogKGlzQm9ndXMoKSB3aWxsIHJldHVybiBUUlVF
KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYW5ndWFnZSBMb3dlcmNhc2UgdHdvLWxldHRlciBv
ciB0aHJlZS1sZXR0ZXIgSVNPLTYzOSBjb2RlLgorICAgICAqICBUaGlzIHBhcmFtZXRlciBjYW4g
aW5zdGVhZCBiZSBhbiBJQ1Ugc3R5bGUgQyBsb2NhbGUgKGUuZy4gImVuX1VTIiksCisgICAgICog
IGJ1dCB0aGUgb3RoZXIgcGFyYW1ldGVycyBtdXN0IG5vdCBiZSB1c2VkLgorICAgICAqICBUaGlz
IHBhcmFtZXRlciBjYW4gYmUgTlVMTDsgaWYgc28sCisgICAgICogIHRoZSBsb2NhbGUgaXMgaW5p
dGlhbGl6ZWQgdG8gbWF0Y2ggdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogIChU
aGlzIGlzIHRoZSBzYW1lIGFzIHVzaW5nIHRoZSBkZWZhdWx0IGNvbnN0cnVjdG9yLikKKyAgICAg
KiAgUGxlYXNlIG5vdGU6IFRoZSBKYXZhIExvY2FsZSBjbGFzcyBkb2VzIE5PVCBhY2NlcHQgdGhl
IGZvcm0KKyAgICAgKiAgJ25ldyBMb2NhbGUoImVuX1VTIiknIGJ1dCBvbmx5ICduZXcgTG9jYWxl
KCJlbiIsIlVTIiknCisgICAgICoKKyAgICAgKiBAcGFyYW0gY291bnRyeSAgVXBwZXJjYXNlIHR3
by1sZXR0ZXIgSVNPLTMxNjYgY29kZS4gKG9wdGlvbmFsKQorICAgICAqIEBwYXJhbSB2YXJpYW50
ICBVcHBlcmNhc2UgdmVuZG9yIGFuZCBicm93c2VyIHNwZWNpZmljIGNvZGUuIFNlZSBjbGFzcwor
ICAgICAqICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbi4gKG9wdGlvbmFsKQorICAgICAqIEBw
YXJhbSBrZXl3b3Jkc0FuZFZhbHVlcyBBIHN0cmluZyBjb25zaXN0aW5nIG9mIGtleXdvcmQvdmFs
dWVzIHBhaXJzLCBzdWNoIGFzCisgICAgICogICAgICAgICAgICAgICAgICJjb2xsYXRpb249cGhv
bmVib29rO2N1cnJlbmN5PWV1cm8iCisgICAgICoKKyAgICAgKiBAc2VlIGdldERlZmF1bHQKKyAg
ICAgKiBAc2VlIHVsb2NfZ2V0RGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIExvY2FsZSggY29uc3QgICBjaGFyICogbGFuZ3VhZ2UsCisgICAgICAgICAgICBjb25z
dCAgIGNoYXIgKiBjb3VudHJ5ICA9IDAsCisgICAgICAgICAgICBjb25zdCAgIGNoYXIgKiB2YXJp
YW50ICA9IDAsCisgICAgICAgICAgICBjb25zdCAgIGNoYXIgKiBrZXl3b3Jkc0FuZFZhbHVlcyA9
IDApOworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgYSBMb2NhbGUgb2JqZWN0IGZyb20g
YW5vdGhlciBMb2NhbGUgb2JqZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBM
b2NhbGUgb2JqZWN0IGJlaW5nIGNvcGllZCBpbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBMb2NhbGUoY29uc3QgICAgTG9jYWxlJiBvdGhlcik7CisKKworICAgIC8qKgor
ICAgICAqIERlc3RydWN0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIH5Mb2NhbGUoKSA7CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlcyB0aGUgZW50aXJl
IGNvbnRlbnRzIG9mICp0aGlzIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgKgorICAg
ICAqIEBwYXJhbSBvdGhlciBUaGUgTG9jYWxlIG9iamVjdCBiZWluZyBjb3BpZWQgaW4uCisgICAg
ICogQHJldHVybiAgICAgICp0aGlzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgTG9jYWxlJiBvcGVyYXRvcj0oY29uc3QgTG9jYWxlJiBvdGhlcik7CisKKyAgICAvKioKKyAg
ICAgKiBDaGVja3MgaWYgdHdvIGxvY2FsZSBrZXlzIGFyZSB0aGUgc2FtZS4KKyAgICAgKgorICAg
ICAqIEBwYXJhbSBvdGhlciBUaGUgbG9jYWxlIGtleSBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0
aCB0aGlzLgorICAgICAqIEByZXR1cm4gICAgICBUcnVlIGlmIHRoZSB0d28gbG9jYWxlIGtleXMg
YXJlIHRoZSBzYW1lLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgVUJvb2wgICBvcGVyYXRvcj09KGNvbnN0ICAgIExvY2FsZSYgICAgIG90aGVy
KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0d28gbG9jYWxlIGtleXMgYXJl
IG5vdCB0aGUgc2FtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgbG9jYWxlIGtl
eSBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1cm4gICAgICBU
cnVlIGlmIHRoZSB0d28gbG9jYWxlIGtleXMgYXJlIG5vdCB0aGUgc2FtZSwgZmFsc2UKKyAgICAg
KiAgICAgICAgICAgICAgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIFVCb29sICAgb3BlcmF0b3IhPShjb25zdCAgICBMb2NhbGUmICAgICBvdGhlcikgY29u
c3Q7CisKKyAgICAvKioKKyAgICAgKiBDbG9uZSB0aGlzIG9iamVjdC4KKyAgICAgKiBDbG9uZXMg
Y2FuIGJlIHVzZWQgY29uY3VycmVudGx5IGluIG11bHRpcGxlIHRocmVhZHMuCisgICAgICogSWYg
YW4gZXJyb3Igb2NjdXJzLCB0aGVuIE5VTEwgaXMgcmV0dXJuZWQuCisgICAgICogVGhlIGNhbGxl
ciBtdXN0IGRlbGV0ZSB0aGUgY2xvbmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgY2xvbmUg
b2YgdGhpcyBvYmplY3QKKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RHluYW1pY0NsYXNzSUQKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBMb2NhbGUgKmNsb25lKCkgY29uc3Q7
CisKKyNpZm5kZWYgVV9ISURFX1NZU1RFTV9BUEkKKyAgICAvKioKKyAgICAgKiBDb21tb24gbWV0
aG9kcyBvZiBnZXR0aW5nIHRoZSBjdXJyZW50IGRlZmF1bHQgTG9jYWxlLiBVc2VkIGZvciB0aGUK
KyAgICAgKiBwcmVzZW50YXRpb246IG1lbnVzLCBkaWFsb2dzLCBldGMuIEdlbmVyYWxseSBzZXQg
b25jZSB3aGVuIHlvdXIgYXBwbGV0IG9yCisgICAgICogYXBwbGljYXRpb24gaXMgaW5pdGlhbGl6
ZWQsIHRoZW4gbmV2ZXIgcmVzZXQuIChJZiB5b3UgZG8gcmVzZXQgdGhlCisgICAgICogZGVmYXVs
dCBsb2NhbGUsIHlvdSBwcm9iYWJseSB3YW50IHRvIHJlbG9hZCB5b3VyIEdVSSwgc28gdGhhdCB0
aGUgY2hhbmdlCisgICAgICogaXMgcmVmbGVjdGVkIGluIHlvdXIgaW50ZXJmYWNlLikKKyAgICAg
KgorICAgICAqIE1vcmUgYWR2YW5jZWQgcHJvZ3JhbXMgd2lsbCBhbGxvdyB1c2VycyB0byB1c2Ug
ZGlmZmVyZW50IGxvY2FsZXMgZm9yCisgICAgICogZGlmZmVyZW50IGZpZWxkcywgZS5nLiBpbiBh
IHNwcmVhZHNoZWV0LgorICAgICAqCisgICAgICogTm90ZSB0aGF0IHRoZSBpbml0aWFsIHNldHRp
bmcgd2lsbCBtYXRjaCB0aGUgaG9zdCBzeXN0ZW0uCisgICAgICogQHJldHVybiBhIHJlZmVyZW5j
ZSB0byB0aGUgTG9jYWxlIG9iamVjdCBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIElECisgICAgICog
QHN5c3RlbQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25z
dCBMb2NhbGUmIFVfRVhQT1JUMiBnZXREZWZhdWx0KHZvaWQpOworCisgICAgLyoqCisgICAgICog
U2V0cyB0aGUgZGVmYXVsdC4gTm9ybWFsbHkgc2V0IG9uY2UgYXQgdGhlIGJlZ2lubmluZyBvZiBh
IHByb2Nlc3MsCisgICAgICogdGhlbiBuZXZlciByZXNldC4KKyAgICAgKiBzZXREZWZhdWx0KCkg
b25seSBjaGFuZ2VzIElDVSdzIGRlZmF1bHQgbG9jYWxlIElELCA8c3Ryb25nPm5vdDwvc3Ryb25n
PgorICAgICAqIHRoZSBkZWZhdWx0IGxvY2FsZSBJRCBvZiB0aGUgcnVudGltZSBlbnZpcm9ubWVu
dC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuZXdMb2NhbGUgTG9jYWxlIHRvIHNldCB0by4gIElm
IE5VTEwsIHNldCB0byB0aGUgdmFsdWUgb2J0YWluZWQKKyAgICAgKiAgICAgICAgICAgICAgICAg
IGZyb20gdGhlIHJ1bnRpbWUgZW52aXJvbmVtZW50LgorICAgICAqIEBwYXJhbSBzdWNjZXNzIFRo
ZSBlcnJvciBjb2RlLgorICAgICAqIEBzeXN0ZW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBzdGF0aWMgdm9pZCBVX0VYUE9SVDIgc2V0RGVmYXVsdChjb25zdCBMb2NhbGUm
IG5ld0xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlJiAgIHN1Y2Nlc3MpOworI2VuZGlmICAvKiBVX0hJREVfU1lTVEVNX0FQSSAqLworCisgICAg
LyoqCisgICAgICogQ3JlYXRlcyBhIGxvY2FsZSB3aGljaCBoYXMgaGFkIG1pbmltYWwgY2Fub25p
Y2FsaXphdGlvbgorICAgICAqIGFzIHBlciB1bG9jX2dldE5hbWUoKS4KKyAgICAgKiBAcGFyYW0g
bmFtZSBUaGUgbmFtZSB0byBjcmVhdGUgZnJvbS4gIElmIG5hbWUgaXMgbnVsbCwKKyAgICAgKiAg
dGhlIGRlZmF1bHQgTG9jYWxlIGlzIHVzZWQuCisgICAgICogQHJldHVybiBuZXcgbG9jYWxlIG9i
amVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqIEBzZWUgdWxvY19nZXROYW1lCisg
ICAgICovCisgICAgc3RhdGljIExvY2FsZSBVX0VYUE9SVDIgY3JlYXRlRnJvbU5hbWUoY29uc3Qg
Y2hhciAqbmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbG9jYWxlIGZyb20gdGhl
IGdpdmVuIHN0cmluZyBhZnRlciBjYW5vbmljYWxpemluZworICAgICAqIHRoZSBzdHJpbmcgYnkg
Y2FsbGluZyB1bG9jX2Nhbm9uaWNhbGl6ZSgpLgorICAgICAqIEBwYXJhbSBuYW1lIHRoZSBsb2Nh
bGUgSUQgdG8gY3JlYXRlIGZyb20uICBNdXN0IG5vdCBiZSBOVUxMLgorICAgICAqIEByZXR1cm4g
YSBuZXcgbG9jYWxlIG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBuYW1lCisgICAg
ICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICogQHNlZSB1bG9jX2Nhbm9uaWNhbGl6ZQorICAgICAq
LworICAgIHN0YXRpYyBMb2NhbGUgVV9FWFBPUlQyIGNyZWF0ZUNhbm9uaWNhbChjb25zdCBjaGFy
KiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIElTTy02Mzkg
bGFuZ3VhZ2UgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAq
ICBnZXRMYW5ndWFnZSggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxv
Y2FsZSdzIElTTy0xNTkyNCBhYmJyZXZpYXRpb24gc2NyaXB0IGNvZGUuCisgICAgICogQHJldHVy
biAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHNlZSB1c2NyaXB0X2dldFNob3J0
TmFtZQorICAgICAqIEBzZWUgdXNjcmlwdF9nZXRDb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi44
CisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0U2NyaXB0KCApIGNvbnN0Owor
CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTMxNjYgY291bnRyeSBj
b2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldENvdW50
cnkoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyB2YXJp
YW50IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0
VmFyaWFudCggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHByb2dyYW1t
YXRpYyBuYW1lIG9mIHRoZSBlbnRpcmUgbG9jYWxlLCB3aXRoIHRoZSBsYW5ndWFnZSwKKyAgICAg
KiBjb3VudHJ5IGFuZCB2YXJpYW50IHNlcGFyYXRlZCBieSB1bmRlcmJhcnMuIElmIGEgZmllbGQg
aXMgbWlzc2luZywgdXAKKyAgICAgKiB0byB0d28gbGVhZGluZyB1bmRlcmJhcnMgd2lsbCBvY2N1
ci4gRXhhbXBsZTogImVuIiwgImRlX0RFIiwgImVuX1VTX1dJTiIsCisgICAgICogImRlX19QT1NJ
WCIsICJmcl9fTUFDIiwgIl9fTUFDIiwgIl9NVCIsICJfRlJfRVVSTyIKKyAgICAgKiBAcmV0dXJu
ICAgICAgQSBwb2ludGVyIHRvICJuYW1lIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqIGdldE5hbWUoKSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIHByb2dyYW1tYXRpYyBuYW1lIG9mIHRoZSBlbnRpcmUgbG9jYWxl
IGFzIGdldE5hbWUoKSB3b3VsZCByZXR1cm4sCisgICAgICogYnV0IHdpdGhvdXQga2V5d29yZHMu
CisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0byAibmFtZSIuCisgICAgICogQHNlZSBn
ZXROYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgY29uc3QgY2hhciAq
IGdldEJhc2VOYW1lKCkgY29uc3Q7CisKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxpc3Qg
b2Yga2V5d29yZHMgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBh
cmFtIHN0YXR1cyB0aGUgc3RhdHVzIGNvZGUKKyAgICAgKiBAcmV0dXJuIHBvaW50ZXIgdG8gU3Ry
aW5nRW51bWVyYXRpb24gY2xhc3MsIG9yIE5VTEwgaWYgdGhlcmUgYXJlIG5vIGtleXdvcmRzLiAK
KyAgICAgKiBDbGllbnQgbXVzdCBkaXNwb3NlIG9mIGl0IGJ5IGNhbGxpbmcgZGVsZXRlLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFN0cmluZ0VudW1lcmF0aW9uICogY3Jl
YXRlS2V5d29yZHMoVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IEdldHMgdGhlIHZhbHVlIGZvciBhIGtleXdvcmQuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5
d29yZE5hbWUgbmFtZSBvZiB0aGUga2V5d29yZCBmb3Igd2hpY2ggd2Ugd2FudCB0aGUgdmFsdWUu
IENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHBhcmFtIGJ1ZmZlciBUaGUgYnVmZmVyIHRvIHJl
Y2VpdmUgdGhlIGtleXdvcmQgdmFsdWUuCisgICAgICogQHBhcmFtIGJ1ZmZlckNhcGFjaXR5IFRo
ZSBjYXBhY2l0eSBvZiByZWNlaXZpbmcgYnVmZmVyCisgICAgICogQHBhcmFtIHN0YXR1cyBSZXR1
cm5zIGFueSBlcnJvciBpbmZvcm1hdGlvbiB3aGlsZSBwZXJmb3JtaW5nIHRoaXMgb3BlcmF0aW9u
LgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUga2V5d29yZCB2YWx1ZQorICAgICAq
CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgaW50MzJfdCBnZXRLZXl3b3Jk
VmFsdWUoY29uc3QgY2hhcioga2V5d29yZE5hbWUsIGNoYXIgKmJ1ZmZlciwgaW50MzJfdCBidWZm
ZXJDYXBhY2l0eSwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IFNldHMgb3IgcmVtb3ZlcyB0aGUgdmFsdWUgZm9yIGEga2V5d29yZC4KKyAgICAgKgorICAgICAq
IEZvciByZW1vdmluZyBhbGwga2V5d29yZHMsIHVzZSBnZXRCYXNlTmFtZSgpLAorICAgICAqIGFu
ZCBjb25zdHJ1Y3QgYSBuZXcgTG9jYWxlIGlmIGl0IGRpZmZlcnMgZnJvbSBnZXROYW1lKCkuCisg
ICAgICoKKyAgICAgKiBAcGFyYW0ga2V5d29yZE5hbWUgbmFtZSBvZiB0aGUga2V5d29yZCB0byBi
ZSBzZXQuIENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHBhcmFtIGtleXdvcmRWYWx1ZSB2YWx1
ZSBvZiB0aGUga2V5d29yZCB0byBiZSBzZXQuIElmIDAtbGVuZ3RoIG9yCisgICAgICogIE5VTEws
IHdpbGwgcmVzdWx0IGluIHRoZSBrZXl3b3JkIGJlaW5nIHJlbW92ZWQuIE5vIGVycm9yIGlzIGdp
dmVuIGlmCisgICAgICogIHRoYXQga2V5d29yZCBkb2VzIG5vdCBleGlzdC4KKyAgICAgKiBAcGFy
YW0gc3RhdHVzIFJldHVybnMgYW55IGVycm9yIGluZm9ybWF0aW9uIHdoaWxlIHBlcmZvcm1pbmcg
dGhpcyBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLwor
ICAgIHZvaWQgc2V0S2V5d29yZFZhbHVlKGNvbnN0IGNoYXIqIGtleXdvcmROYW1lLCBjb25zdCBj
aGFyKiBrZXl3b3JkVmFsdWUsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAg
KiByZXR1cm5zIHRoZSBsb2NhbGUncyB0aHJlZS1sZXR0ZXIgbGFuZ3VhZ2UgY29kZSwgYXMgc3Bl
Y2lmaWVkCisgICAgICogaW4gSVNPIGRyYWZ0IHN0YW5kYXJkIElTTy02MzktMi4KKyAgICAgKiBA
cmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUsIG9yIGFuIGVtcHR5IHN0cmluZworICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRJU08zTGFu
Z3VhZ2UoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRo
ZSBsb2NhbGUncyB0aHJlZS1sZXR0ZXIgSVNPLTMxNjYgY291bnRyeSBjb2RlLgorICAgICAqIEBy
ZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZSwgb3IgYW4gZW1wdHkgc3RyaW5nCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgY29uc3QgY2hhciAqIGdldElTTzNDb3Vu
dHJ5KCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBXaW5kb3dzIExDSUQg
dmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGlzIGxvY2FsZS4KKyAgICAgKiBUaGlzIHZhbHVlIGlz
IHN0b3JlZCBpbiB0aGUgcmVzb3VyY2UgZGF0YSBmb3IgdGhlIGxvY2FsZSBhcyBhIG9uZS10by1m
b3VyLWRpZ2l0CisgICAgICogaGV4YWRlY2ltYWwgbnVtYmVyLiAgSWYgdGhlIHJlc291cmNlIGlz
IG1pc3NpbmcsIGluIHRoZSB3cm9uZyBmb3JtYXQsIG9yCisgICAgICogdGhlcmUgaXMgbm8gV2lu
ZG93cyBMQ0lEIHZhbHVlIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhpcyBsb2NhbGUsIHJldHVybnMg
MC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAg
Z2V0TENJRCh2b2lkKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisgICAgLyoq
CisgICAgICogUmV0dXJucyB3aGV0aGVyIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGlzIHdyaXR0ZW4g
cmlnaHQtdG8tbGVmdC4KKyAgICAgKiBJZiB0aGVyZSBpcyBubyBzY3JpcHQgc3VidGFnLCB0aGVu
IHRoZSBsaWtlbHkgc2NyaXB0IGlzIHVzZWQsIHNlZSB1bG9jX2FkZExpa2VseVN1YnRhZ3MoKS4K
KyAgICAgKiBJZiBubyBsaWtlbHkgc2NyaXB0IGlzIGtub3duLCB0aGVuIEZBTFNFIGlzIHJldHVy
bmVkLgorICAgICAqCisgICAgICogQSBzY3JpcHQgaXMgcmlnaHQtdG8tbGVmdCBhY2NvcmRpbmcg
dG8gdGhlIENMRFIgc2NyaXB0IG1ldGFkYXRhCisgICAgICogd2hpY2ggY29ycmVzcG9uZHMgdG8g
d2hldGhlciB0aGUgc2NyaXB0J3MgbGV0dGVycyBoYXZlIEJpZGlfQ2xhc3M9UiBvciBBTC4KKyAg
ICAgKgorICAgICAqIFJldHVybnMgVFJVRSBmb3IgImFyIiBhbmQgImVuLUhlYnIiLCBGQUxTRSBm
b3IgInpoIiBhbmQgImZhLUN5cmwiLgorICAgICAqCisgICAgICogQHJldHVybiBUUlVFIGlmIHRo
ZSBsb2NhbGUncyBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0CisgICAgICogQGRyYWZ0
IElDVSA1NAorICAgICAqLworICAgIFVCb29sIGlzUmlnaHRUb0xlZnQoKSBjb25zdDsKKyNlbmRp
ZiAgLyogVV9ISURFX0RSQUZUX0FQSSAqLworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRp
c3BMYW5nIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgaW4gYSBmb3Jt
YXQgc3VpdGFibGUgZm9yCisgICAgICogdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2Fs
ZS4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcworICAgICAq
ICJmciIgYW5kIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhp
cyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwTGFuZyB0byAiRnJlbmNoIi4KKyAgICAg
KiBAcGFyYW0gZGlzcExhbmcgIFJlY2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRpc3BsYXkgbmFtZS4K
KyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwTGFuZyIuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3Bs
YXlMYW5ndWFnZShVbmljb2RlU3RyaW5nJiAgIGRpc3BMYW5nKSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIEZpbGxzIGluICJkaXNwTGFuZyIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdz
IGxhbmd1YWdlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvcgorICAgICAqIHVzZXIgZGlzcGxheSBp
biB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3IgZXhhbXBsZSwg
aWYgdGhlIGxvY2FsZSdzCisgICAgICogbGFuZ3VhZ2UgY29kZSBpcyAiZW4iIGFuZCBkaXNwbGF5
TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZnIiLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAor
ICAgICAqIGRpc3BMYW5nIHRvICJBbmdsYWlzIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2Fs
ZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLiAg
SW4gb3RoZXIgd29yZHMsCisgICAgICogICAgICAgICAgICAgICAgICBpZiB0aGUgbG9jYWxlJ3Mg
bGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCBwYXNzaW5nIExvY2FsZTo6Z2V0RnJlbmNoKCkgZm9yCisg
ICAgICogICAgICAgICAgICAgICAgICBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiQW5n
bGFpcyIsIHdoaWxlIHBhc3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKQorICAgICAqICAgICAgICAg
ICAgICAgICAgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICJFbmdsaXNjaCIuCisg
ICAgICogQHBhcmFtIGRpc3BMYW5nICBSZWNlaXZlcyB0aGUgbGFuZ3VhZ2UncyBkaXNwbGF5IG5h
bWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcExhbmciLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXRE
aXNwbGF5TGFuZ3VhZ2UoIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3Ry
aW5nJiAgZGlzcExhbmcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BT
Y3JpcHQiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBzY3JpcHQgaW4gYSBmb3JtYXQg
c3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4g
IEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGNvZGUKKyAgICAgKiBpcyAiTEFU
TiIgYW5kIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhpcyBm
dW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwU2NyaXB0IHRvICJMYXRpbiIuCisgICAgICog
QHBhcmFtIGRpc3BTY3JpcHQgICAgUmVjZWl2ZXMgdGhlIHNjcmlwdHMncyBkaXNwbGF5IG5hbWUu
CisgICAgICogQHJldHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BTY3JpcHQi
LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBn
ZXREaXNwbGF5U2NyaXB0KCAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwU2NyaXB0KSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwU2NyaXB0IiB3aXRoIHRoZSBuYW1l
IG9mIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZv
ciB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlMb2NhbGUi
LiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncworICAgICAqIHNjcmlwdCBjb2RlIGlzICJM
QVROIiBhbmQgZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhpcyBmdW5j
dGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwU2NyaXB0IHRvICJMYXRpbiIuCisgICAgICogQHBh
cmFtIGRpc3BsYXlMb2NhbGUgICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRv
IGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAg
IHdvcmRzLCBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGNvZGUgaXMgIkxBVE4iLCBwYXNzaW5nCisg
ICAgICogICAgICAgICAgICAgICAgICAgICAgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IgZGlzcGxh
eUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIiIsIHdoaWxlCisgICAgICogICAgICAgICAgICAgICAg
ICAgICAgcGFzc2luZyBMb2NhbGU6OmdldEdlcm1hbigpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxk
IHJlc3VsdCBpbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICIiLgorICAgICAqIEBwYXJh
bSBkaXNwU2NyaXB0ICAgIFJlY2VpdmVzIHRoZSBzY3JpcHRzJ3MgZGlzcGxheSBuYW1lLgorICAg
ICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwU2NyaXB0Ii4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlz
cGxheVNjcmlwdCggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcm
ICBkaXNwU2NyaXB0KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwQ291
bnRyeSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGNvdW50cnkgaW4gYSBmb3JtYXQg
c3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4g
IEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MgY291bnRyeSBjb2RlCisgICAgICogaXMgIkZS
IiBhbmQgdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1
bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BDb3VudHJ5IHRvICJGcmFuY2UiLgorICAgICAq
IEBwYXJhbSBkaXNwQ291bnRyeSAgIFJlY2VpdmVzIHRoZSBjb3VudHJ5J3MgZGlzcGxheSBuYW1l
LgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwQ291bnRy
eSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYg
IGdldERpc3BsYXlDb3VudHJ5KCAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwQ291bnRyeSkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcENvdW50cnkiIHdpdGggdGhl
IG5hbWUgb2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAg
ICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxv
Y2FsZSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzCisgICAgICogY291bnRyeSBjb2Rl
IGlzICJVUyIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJmciIsIHRoaXMg
ZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcENvdW50cnkgdG8gIiZFYWN1dGU7dGF0cy1V
bmlzIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgICAgIFNwZWNpZmllcyB0aGUgbG9j
YWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIEluIG90aGVyCisgICAgICogICAg
ICAgICAgICAgICAgICAgICAgd29yZHMsIGlmIHRoZSBsb2NhbGUncyBjb3VudHJ5IGNvZGUgaXMg
IlVTIiwgcGFzc2luZworICAgICAqICAgICAgICAgICAgICAgICAgICAgIExvY2FsZTo6Z2V0RnJl
bmNoKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICImRWFjdXRlO3RhdHMtVW5p
cyIsIHdoaWxlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgcGFzc2luZyBMb2NhbGU6Omdl
dEdlcm1hbigpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbgorICAgICAqICAgICAg
ICAgICAgICAgICAgICAgICJWZXJlaW5pZ3RlIFN0YWF0ZW4iLgorICAgICAqIEBwYXJhbSBkaXNw
Q291bnRyeSAgIFJlY2VpdmVzIHRoZSBjb3VudHJ5J3MgZGlzcGxheSBuYW1lLgorICAgICAqIEBy
ZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwQ291bnRyeSIuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlD
b3VudHJ5KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBk
aXNwQ291bnRyeSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFZhciIg
d2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgY29kZSBpbiBhIGZvcm1hdCBz
dWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgor
ICAgICAqIEBwYXJhbSBkaXNwVmFyICAgUmVjZWl2ZXMgdGhlIHZhcmlhbnQncyBuYW1lLgorICAg
ICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BWYXIiLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5VmFy
aWFudCggICAgICBVbmljb2RlU3RyaW5nJiBkaXNwVmFyKSBjb25zdDsKKworICAgIC8qKgorICAg
ICAqIEZpbGxzIGluICJkaXNwVmFyIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgdmFy
aWFudCBjb2RlIGluIGEgZm9ybWF0CisgICAgICogc3VpdGFibGUgZm9yIHVzZXIgZGlzcGxheSBp
biB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuCisgICAgICogQHBhcmFt
IGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxh
eSB0aGUgbmFtZS4KKyAgICAgKiBAcGFyYW0gZGlzcFZhciAgIFJlY2VpdmVzIHRoZSB2YXJpYW50
J3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8g
ImRpc3BWYXIiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVT
dHJpbmcmICBnZXREaXNwbGF5VmFyaWFudCggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3Bs
YXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVbmljb2RlU3RyaW5nJiAgZGlzcFZhcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxs
cyBpbiAibmFtZSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSBpbiBhIGZvcm1hdCBzdWl0
YWJsZSBmb3IgdXNlciBkaXNwbGF5CisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgVGhp
cyBmdW5jdGlvbiB1c2VzIGdldERpc3BsYXlMYW5ndWFnZSgpLCBnZXREaXNwbGF5Q291bnRyeSgp
LAorICAgICAqIGFuZCBnZXREaXNwbGF5VmFyaWFudCgpIHRvIGRvIGl0cyB3b3JrLCBhbmQgb3V0
cHV0cyB0aGUgZGlzcGxheSBuYW1lIGluIHRoZSBmb3JtYXQKKyAgICAgKiAibGFuZ3VhZ2UgKGNv
dW50cnlbLHZhcmlhbnRdKSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGRlZmF1bHQgbG9jYWxlIGlz
IGVuX1VTLCB0aGVuCisgICAgICogZnJfRlIncyBkaXNwbGF5IG5hbWUgd291bGQgYmUgIkZyZW5j
aCAoRnJhbmNlKSIsIGFuZCBlc19NWF9UcmFkaXRpb25hbCdzIGRpc3BsYXkgbmFtZQorICAgICAq
IHdvdWxkIGJlICJTcGFuaXNoIChNZXhpY28sVHJhZGl0aW9uYWwpIi4KKyAgICAgKiBAcGFyYW0g
bmFtZSAgUmVjZWl2ZXMgdGhlIGxvY2FsZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJu
ICAgICAgQSByZWZlcmVuY2UgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TmFtZSggICAgICAgICBVbmljb2Rl
U3RyaW5nJiAgbmFtZSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAibmFtZSIg
d2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgdXNl
ciBkaXNwbGF5CisgICAgICogaW4gdGhlIGxvY2FsZSBzcGVjZmllZCBieSAiZGlzcGxheUxvY2Fs
ZSIuICBUaGlzIGZ1bmN0aW9uIHVzZXMgZ2V0RGlzcGxheUxhbmd1YWdlKCksCisgICAgICogZ2V0
RGlzcGxheUNvdW50cnkoKSwgYW5kIGdldERpc3BsYXlWYXJpYW50KCkgdG8gZG8gaXRzIHdvcmss
IGFuZCBvdXRwdXRzIHRoZSBkaXNwbGF5CisgICAgICogbmFtZSBpbiB0aGUgZm9ybWF0ICJsYW5n
dWFnZSAoY291bnRyeVssdmFyaWFudF0pIi4gIEZvciBleGFtcGxlLCBpZiBkaXNwbGF5TG9jYWxl
IGlzCisgICAgICogZnJfRlIsIHRoZW4gZW5fVVMncyBkaXNwbGF5IG5hbWUgd291bGQgYmUgIkFu
Z2xhaXMgKCZFYWN1dGU7dGF0cy1VbmlzKSIsIGFuZCBub19OT19OWSdzCisgICAgICogZGlzcGxh
eSBuYW1lIHdvdWxkIGJlICJub3J2JmVhY3V0ZTtnaWVuIChOb3J2JmVncmF2ZTtnZSxOWSkiLgor
ICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1
c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHBhcmFtIG5hbWUgICAgICBSZWNlaXZl
cyB0aGUgbG9jYWxlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSBy
ZWZlcmVuY2UgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TmFtZSggY29uc3QgICBMb2NhbGUmICAgICAgICAg
ZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVW5pY29kZVN0cmluZyYgIG5hbWUpIGNvbnN0OworCisgICAgLyoqCisgICAgICogR2VuZXJh
dGVzIGEgaGFzaCBjb2RlIGZvciB0aGUgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIGludDMyX3QgICAgICAgICBoYXNoQ29kZSh2b2lkKSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIFNldHMgdGhlIGxvY2FsZSB0byBib2d1cworICAgICAqIEEgYm9ndXMgbG9j
YWxlIHJlcHJlc2VudHMgYSBub24tZXhpc3RpbmcgbG9jYWxlIGFzc29jaWF0ZWQKKyAgICAgKiB3
aXRoIHNlcnZpY2VzIHRoYXQgY2FuIGJlIGluc3RhbnRpYXRlZCBmcm9tIG5vbi1sb2NhbGUgZGF0
YQorICAgICAqIGluIGFkZGl0aW9uIHRvIGxvY2FsZSAoZm9yIGV4YW1wbGUsIGNvbGxhdGlvbiBj
YW4gYmUKKyAgICAgKiBpbnN0YW50aWF0ZWQgZnJvbSBhIGxvY2FsZSBhbmQgZnJvbSBhIHJ1bGUg
c2V0KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICB2b2lkIHNldFRvQm9n
dXMoKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGJvZ3VzIHN0YXRlLiBMb2NhbGUgb2Jq
ZWN0IGNhbiBiZSBib2d1cyBpZiBpdCBkb2Vzbid0IGV4aXN0CisgICAgICogQHJldHVybiBGQUxT
RSBpZiBpdCBpcyBhIHJlYWwgbG9jYWxlLCBUUlVFIGlmIGl0IGlzIGEgYm9ndXMgbG9jYWxlCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgVUJvb2wgaXNCb2d1cyh2b2lkKSBj
b25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBpbnN0YWxsZWQg
bG9jYWxlcy4KKyAgICAgKiBAcGFyYW0gY291bnQgUmVjZWl2ZXMgdGhlIG51bWJlciBvZiBsb2Nh
bGVzIGluIHRoZSBsaXN0LgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8gYW4gYXJy
YXkgb2YgTG9jYWxlIG9iamVjdHMuICBUaGlzIGFycmF5IGlzIHRoZSBsaXN0CisgICAgICogICAg
ICAgICAgICAgIG9mIGFsbCBsb2NhbGVzIHdpdGggaW5zdGFsbGVkIHJlc291cmNlIGZpbGVzLiAg
VGhlIGNhbGxlZCBkb2VzIE5PVAorICAgICAqICAgICAgICAgICAgICBnZXQgb3duZXJzaGlwIG9m
IHRoaXMgbGlzdCwgYW5kIG11c3QgTk9UIGRlbGV0ZSBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlKiBVX0VYUE9SVDIgZ2V0QXZhaWxh
YmxlTG9jYWxlcyhpbnQzMl90JiBjb3VudCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgbGlz
dCBvZiBhbGwgYXZhaWxhYmxlIDItbGV0dGVyIGNvdW50cnkgY29kZXMgZGVmaW5lZCBpbiBJU08g
MzE2Ni4gIFRoaXMgaXMgYQorICAgICAqIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgcG9pbnRlcnMg
dG8gYXJyYXlzIG9mIGNoYXIuICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlCisgICAgICogb3du
ZWQgYnkgSUNVLS0gZG8gbm90IGRlbGV0ZSB0aGVtLCBhbmQgZG8gbm90IHdyaXRlIHRocm91Z2gg
dGhlbS4gIFRoZSBhcnJheSBpcworICAgICAqIHRlcm1pbmF0ZWQgd2l0aCBhIG51bGwgcG9pbnRl
ci4KKyAgICAgKiBAcmV0dXJuIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGNvdW50cnkgY29kZXMK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgY2hhciog
Y29uc3QqIFVfRVhQT1JUMiBnZXRJU09Db3VudHJpZXMoKTsKKworICAgIC8qKgorICAgICAqIEdl
dHMgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgbGFuZ3VhZ2UgY29kZXMgZGVmaW5lZCBpbiBJU08g
NjM5LiAgVGhpcyBpcyBhIHBvaW50ZXIKKyAgICAgKiB0byBhbiBhcnJheSBvZiBwb2ludGVycyB0
byBhcnJheXMgb2YgY2hhci4gIEFsbCBvZiB0aGVzZSBwb2ludGVycyBhcmUgb3duZWQKKyAgICAg
KiBieSBJQ1UtLSBkbyBub3QgZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0
aGVtLiAgVGhlIGFycmF5IGlzCisgICAgICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBwb2ludGVy
LgorICAgICAqIEByZXR1cm4gYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgbGFuZ3VhZ2UgY29kZXMK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgY2hhciog
Y29uc3QqIFVfRVhQT1JUMiBnZXRJU09MYW5ndWFnZXMoKTsKKworICAgIC8qKgorICAgICAqIElD
VSAicG9vciBtYW4ncyBSVFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGlzIGNsYXNzLgor
ICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgc3RhdGljIFVDbGFz
c0lEIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKCk7CisKKyAgICAvKioKKyAgICAgKiBJQ1Ug
InBvb3IgbWFuJ3MgUlRUSSIsIHJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhlIGFjdHVhbCBjbGFz
cy4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHZpcnR1YWwg
VUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQoKSBjb25zdDsKKworcHJvdGVjdGVkOiAvKiBvbmx5
IHByb3RlY3RlZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gRE8gTk9UIFVTRS4gKi8KKyNpZm5kZWYg
VV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAqIFNldCB0aGlzIGZyb20gYSBzaW5n
bGUgUE9TSVggc3R5bGUgbG9jYWxlIHN0cmluZy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8K
KyAgICB2b2lkIHNldEZyb21QT1NJWElEKGNvbnN0IGNoYXIgKnBvc2l4SUQpOworI2VuZGlmICAv
KiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKK3ByaXZhdGU6CisgICAgLyoqCisgICAgICogSW5p
dGlhbGl6ZSB0aGUgbG9jYWxlIG9iamVjdCB3aXRoIGEgbmV3IG5hbWUuCisgICAgICogV2FzIGRl
cHJlY2F0ZWQgLSB1c2VkIGluIGltcGxlbWVudGF0aW9uIC0gbW92ZWQgaW50ZXJuYWwKKyAgICAg
KgorICAgICAqIEBwYXJhbSBjTG9jYWxlSUQgVGhlIG5ldyBsb2NhbGUgbmFtZS4KKyAgICAgKiBA
cGFyYW0gY2Fub25pY2FsaXplIHdoZXRoZXIgdG8gY2FsbCB1bG9jX2Nhbm9uaWNhbGl6ZSBvbiBj
TG9jYWxlSUQKKyAgICAgKi8KKyAgICBMb2NhbGUmIGluaXQoY29uc3QgY2hhciogY0xvY2FsZUlE
LCBVQm9vbCBjYW5vbmljYWxpemUpOworCisgICAgLyoKKyAgICAgKiBJbnRlcm5hbCBjb25zdHJ1
Y3RvciB0byBhbGxvdyBjb25zdHJ1Y3Rpb24gb2YgYSBsb2NhbGUgb2JqZWN0IHdpdGgKKyAgICAg
KiAgIE5PIHNpZGUgZWZmZWN0cy4gICAoRGVmYXVsdCBjb25zdHJ1Y3RvciB0cmllcyB0byBnZXQK
KyAgICAgKiAgIHRoZSBkZWZhdWx0IGxvY2FsZS4pCisgICAgICovCisgICAgZW51bSBFTG9jYWxl
VHlwZSB7CisgICAgICAgIGVCT0dVUworICAgIH07CisgICAgTG9jYWxlKEVMb2NhbGVUeXBlKTsK
KworICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgdGhlIGxvY2FsZSBjYWNoZSBmb3IgY29tbW9u
bHkgdXNlZCBsb2NhbGVzCisgICAgICovCisgICAgc3RhdGljIExvY2FsZSAqZ2V0TG9jYWxlQ2Fj
aGUodm9pZCk7CisKKyAgICBjaGFyIGxhbmd1YWdlW1VMT0NfTEFOR19DQVBBQ0lUWV07CisgICAg
Y2hhciBzY3JpcHRbVUxPQ19TQ1JJUFRfQ0FQQUNJVFldOworICAgIGNoYXIgY291bnRyeVtVTE9D
X0NPVU5UUllfQ0FQQUNJVFldOworICAgIGludDMyX3QgdmFyaWFudEJlZ2luOworICAgIGNoYXIq
IGZ1bGxOYW1lOworICAgIGNoYXIgZnVsbE5hbWVCdWZmZXJbVUxPQ19GVUxMTkFNRV9DQVBBQ0lU
WV07CisgICAgLy8gbmFtZSB3aXRob3V0IGtleXdvcmRzCisgICAgY2hhciogYmFzZU5hbWU7Cisg
ICAgdm9pZCBpbml0QmFzZU5hbWUoVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIFVCb29sIGZJ
c0JvZ3VzOworCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmZ2V0TG9jYWxlKGludCBsb2NpZCk7
CisKKyAgICAvKioKKyAgICAgKiBBIGZyaWVuZCB0byBhbGxvdyB0aGUgZGVmYXVsdCBsb2NhbGUg
dG8gYmUgc2V0IGJ5IGVpdGhlciB0aGUgQyBvciBDKysgQVBJLgorICAgICAqIEBpbnRlcm5hbAor
ICAgICAqLworICAgIGZyaWVuZCBMb2NhbGUgKmxvY2FsZV9zZXRfZGVmYXVsdF9pbnRlcm5hbChj
b25zdCBjaGFyICosIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBmcmllbmQgdm9pZCBVX0NBTExDT05WIGxvY2FsZV9hdmFpbGFi
bGVfaW5pdCgpOworfTsKKworaW5saW5lIFVCb29sCitMb2NhbGU6Om9wZXJhdG9yIT0oY29uc3Qg
ICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuICFvcGVyYXRvcj09KG90
aGVyKTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRDb3VudHJ5KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gY291bnRyeTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9j
YWxlOjpnZXRMYW5ndWFnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGxhbmd1YWdlOworfQorCitp
bmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldFNjcmlwdCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHNjcmlwdDsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRWYXJpYW50
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gJmJhc2VOYW1lW3ZhcmlhbnRCZWdpbl07Cit9CisKK2lu
bGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGZ1bGxOYW1lOworfQorCitpbmxpbmUgVUJvb2wKK0xvY2FsZTo6aXNCb2d1cyh2b2lkKSBjb25z
dCB7CisgICAgcmV0dXJuIGZJc0JvZ3VzOworfQorCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JiYmkuaCBiL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvcmJiaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NzU5OGE1MGU2ZmEzYmFiMmFkNDllMDIy
YWFmMzk2Y2FjMzI5ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3JiYmkuaApAQCAtMCwwICsxLDc4MiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENv
cHlyaWdodCAoQykgMTk5OS0yMDE0IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29y
cG9yYXRpb24gICAqCisqICAgYW5kIG90aGVycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyog
ICAxMC8yMi85OSAgICBhbGFuICAgICAgICBDcmVhdGlvbi4KKyogICAxMS8xMS85OSAgICByZ2ls
bGFtICAgICBDb21wbGV0ZSBwb3J0IGZyb20gSmF2YS4KKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNp
Zm5kZWYgUkJCSV9ICisjZGVmaW5lIFJCQklfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMu
aCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IFJ1bGUgQmFzZWQgQnJlYWsg
SXRlcmF0b3IKKyAqLworCisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKKyNpbmNs
dWRlICJ1bmljb2RlL2Jya2l0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisjaW5j
bHVkZSAidW5pY29kZS9wYXJzZWVyci5oIgorI2luY2x1ZGUgInVuaWNvZGUvc2Nocml0ZXIuaCIK
KyNpbmNsdWRlICJ1bmljb2RlL3VjaHJpdGVyLmgiCisKKworc3RydWN0IFVUcmllOworCitVX05B
TUVTUEFDRV9CRUdJTgorCisvKiogQGludGVybmFsICovCitzdHJ1Y3QgUkJCSURhdGFIZWFkZXI7
CitjbGFzcyAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvclRhYmxlczsKK2NsYXNzICBCcmVha0l0ZXJh
dG9yOworY2xhc3MgIFJCQklEYXRhV3JhcHBlcjsKK2NsYXNzICBVU3RhY2s7CitjbGFzcyAgTGFu
Z3VhZ2VCcmVha0VuZ2luZTsKK2NsYXNzICBVbmhhbmRsZWRFbmdpbmU7CitzdHJ1Y3QgUkJCSVN0
YXRlVGFibGU7CisKKworCisKKy8qKgorICoKKyAqIEEgc3ViY2xhc3Mgb2YgQnJlYWtJdGVyYXRv
ciB3aG9zZSBiZWhhdmlvciBpcyBzcGVjaWZpZWQgdXNpbmcgYSBsaXN0IG9mIHJ1bGVzLgorICog
PHA+SW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgYXJlIG1vc3QgY29tbW9ubHkgY3JlYXRlZCBieSB0
aGUgZmFjdG9yeSBtZXRob2RzIG9mCisgKiAgQnJlYWtJdGVyYXRvcjo6Y3JlYXRlV29yZEluc3Rh
bmNlKCksIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZUxpbmVJbnN0YW5jZSgpLCBldGMuLAorICogIGFu
ZCB0aGVuIHVzZWQgdmlhIHRoZSBhYnN0cmFjdCBBUEkgaW4gY2xhc3MgQnJlYWtJdGVyYXRvcjwv
cD4KKyAqCisgKiA8cD5TZWUgdGhlIElDVSBVc2VyIEd1aWRlIGZvciBpbmZvcm1hdGlvbiBvbiBC
cmVhayBJdGVyYXRvciBSdWxlcy48L3A+CisgKgorICogPHA+VGhpcyBjbGFzcyBpcyBub3QgaW50
ZW5kZWQgdG8gYmUgc3ViY2xhc3NlZC4gIChDbGFzcyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJh
dG9yCisgKiAgICBpcyBhIHN1YmNsYXNzLCBidXQgdGhhdCByZWxhdGlvbnNoaXAgaXMgZWZmZWN0
aXZlbHkgaW50ZXJuYWwgdG8gdGhlIElDVQorICogICAgaW1wbGVtZW50YXRpb24uICBUaGUgc3Vi
Y2xhc3NpbmcgaW50ZXJmYWNlIHRvIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yIGlzCisgKiAgICBu
b3QgcGFydCBvZiB0aGUgSUNVIEFQSSwgYW5kIG1heSBub3QgcmVtYWluIHN0YWJsZS48L3A+Cisg
KgorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAvKlVfRklO
QUwqLyA6IHB1YmxpYyBCcmVha0l0ZXJhdG9yIHsKKworcHJvdGVjdGVkOgorICAgIC8qKgorICAg
ICAqIFRoZSBVVGV4dCB0aHJvdWdoIHdoaWNoIHRoaXMgQnJlYWtJdGVyYXRvciBhY2Nlc3NlcyB0
aGUgdGV4dAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVUZXh0ICAqZlRleHQ7CisK
KyAgICAvKioKKyAgICAgKiAgIEEgY2hhcmFjdGVyIGl0ZXJhdG9yIHRoYXQgcmVmZXJzIHRvIHRo
ZSBzYW1lIHRleHQgYXMgdGhlIFVUZXh0LCBhYm92ZS4KKyAgICAgKiAgIE9ubHkgaW5jbHVkZWQg
Zm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgQVBJLCB3aGljaCB3YXMgYmFzZWQgb24gQ2hhcmFj
dGVySXRlcmF0b3JzLgorICAgICAqICAgVmFsdWUgbWF5IGJlIGFkb3B0ZWQgZnJvbSBvdXRzaWRl
LCBvciBvbmUgb2YgZlNDaGFySXRlciBvciBmRENoYXJJdGVyLCBiZWxvdy4KKyAgICAgKi8KKyAg
ICBDaGFyYWN0ZXJJdGVyYXRvciAgKmZDaGFySXRlcjsKKworICAgIC8qKgorICAgICAqICAgV2hl
biB0aGUgaW5wdXQgdGV4dCBpcyBwcm92aWRlZCBieSBhIFVuaWNvZGVTdHJpbmcsIHRoaXMgd2ls
bCBwb2ludCB0bworICAgICAqICAgIGEgY2hhcmFjdGVySXRlcmF0b3IgdGhhdCB3cmFwcyB0aGF0
IGRhdGEuICBOZWVkZWQgb25seSBmb3IgdGhlCisgICAgICogICAgaW1wbGVtZW50YXRpb24gb2Yg
Z2V0VGV4dCgpLCBhIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGlzc3VlLgorICAgICAqLworICAg
IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yICpmU0NoYXJJdGVyOworCisgICAgLyoqCisgICAgICog
IFdoZW4gdGhlIGlucHV0IHRleHQgaXMgcHJvdmlkZWQgYnkgYSBVVGV4dCwgdGhpcworICAgICAq
ICAgIGR1bW15IENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgYW4gZW1wdHkgc3RyaW5nIHdpbGwKKyAg
ICAgKiAgICBiZSByZXR1cm5lZCBmcm9tIGdldFRleHQoKQorICAgICAqLworICAgIFVDaGFyQ2hh
cmFjdGVySXRlcmF0b3IgKmZEQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSBk
YXRhIGZvciB0aGlzIEJyZWFrSXRlcmF0b3IgaW5zdGFuY2UKKyAgICAgKiBAaW50ZXJuYWwKKyAg
ICAgKi8KKyAgICBSQkJJRGF0YVdyYXBwZXIgICAgKmZEYXRhOworCisgICAgLyoqIEluZGV4IG9m
IHRoZSBSdWxlIHt0YWd9IHZhbHVlcyBmb3IgdGhlIG1vc3QgcmVjZW50IG1hdGNoLgorICAgICAq
ICBAaW50ZXJuYWwKKyAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZkxhc3RSdWxlU3Rh
dHVzSW5kZXg7CisKKyAgICAvKioKKyAgICAgKiBSdWxlIHRhZyB2YWx1ZSB2YWxpZCBmbGFnLgor
ICAgICAqIFNvbWUgaXRlcmF0b3Igb3BlcmF0aW9ucyBkb24ndCBpbnRyaW5zaWNhbGx5IHNldCB0
aGUgY29ycmVjdCB0YWcgdmFsdWUuCisgICAgICogVGhpcyBmbGFnIGxldHMgdXMgbGF6aWx5IGNv
bXB1dGUgdGhlIHZhbHVlIGlmIHdlIGFyZSBldmVyIGFza2VkIGZvciBpdC4KKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBVQm9vbCAgICAgICAgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhW
YWxpZDsKKworICAgIC8qKgorICAgICAqIENvdW50ZXIgZm9yIHRoZSBudW1iZXIgb2YgY2hhcmFj
dGVycyBlbmNvdW50ZXJlZCB3aXRoIHRoZSAiZGljdGlvbmFyeSIKKyAgICAgKiAgIGZsYWcgc2V0
LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICAgICAgZkRp
Y3Rpb25hcnlDaGFyQ291bnQ7CisKKyAgICAvKioKKyAgICAgKiBXaGVuIGEgcmFuZ2Ugb2YgY2hh
cmFjdGVycyBpcyBkaXZpZGVkIHVwIHVzaW5nIHRoZSBkaWN0aW9uYXJ5LCB0aGUgYnJlYWsKKyAg
ICAgKiBwb3NpdGlvbnMgdGhhdCBhcmUgZGlzY292ZXJlZCBhcmUgc3RvcmVkIGhlcmUsIHByZXZl
bnRpbmcgdXMgZnJvbSBoYXZpbmcKKyAgICAgKiB0byB1c2UgZWl0aGVyIHRoZSBkaWN0aW9uYXJ5
IG9yIHRoZSBzdGF0ZSB0YWJsZSBhZ2FpbiB1bnRpbCB0aGUgaXRlcmF0b3IKKyAgICAgKiBsZWF2
ZXMgdGhpcyByYW5nZSBvZiB0ZXh0LiBIYXMgdGhlIG1vc3QgaW1wYWN0IGZvciBsaW5lIGJyZWFr
aW5nLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QqICAgICAgICAgICAg
ZkNhY2hlZEJyZWFrUG9zaXRpb25zOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBl
bGVtZW50cyBpbiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAg
Ki8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZOdW1DYWNoZWRCcmVha1Bvc2l0aW9uczsKKwor
ICAgIC8qKgorICAgICAqIGlmIGZDYWNoZWRCcmVha1Bvc2l0aW9ucyBpcyBub3QgbnVsbCwgdGhp
cyBpbmRpY2F0ZXMgd2hpY2ggaXRlbSBpbiB0aGUKKyAgICAgKiBjYWNoZSB0aGUgY3VycmVudCBp
dGVyYXRpb24gcG9zaXRpb24gcmVmZXJzIHRvCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgaW50MzJfdCAgICAgICAgICAgICBmUG9zaXRpb25JbkNhY2hlOworICAgIAorICAgIC8qKgor
ICAgICAqCisgICAgICogSWYgcHJlc2VudCwgVVN0YWNrIG9mIExhbmd1YWdlQnJlYWtFbmdpbmUg
b2JqZWN0cyB0aGF0IG1pZ2h0IGhhbmRsZQorICAgICAqIGRpY3Rpb25hcnkgY2hhcmFjdGVycy4g
U2VhcmNoZWQgZnJvbSB0b3AgdG8gYm90dG9tIHRvIGZpbmQgYW4gb2JqZWN0IHRvCisgICAgICog
aGFuZGxlIGEgZ2l2ZW4gY2hhcmFjdGVyLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAg
IFVTdGFjayAgICAgICAgICAgICAgKmZMYW5ndWFnZUJyZWFrRW5naW5lczsKKyAgICAKKyAgICAv
KioKKyAgICAgKgorICAgICAqIElmIHByZXNlbnQsIHRoZSBzcGVjaWFsIExhbmd1YWdlQnJlYWtF
bmdpbmUgdXNlZCBmb3IgaGFuZGxpbmcKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgYXJlIGluIHRo
ZSBkaWN0aW9uYXJ5IHNldCwgYnV0IG5vdCBoYW5kbGVkIGJ5IGFueQorICAgICAqIExhbmd1Z2Fn
ZUJyZWFrRW5naW5lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVuaGFuZGxlZEVu
Z2luZSAgICAgKmZVbmhhbmRsZWRCcmVha0VuZ2luZTsKKyAgICAKKyAgICAvKioKKyAgICAgKgor
ICAgICAqIFRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvciwgb3IgLTEgaWYgaXQgaGFzIG5v
dCBiZWVuIHNldC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAg
ICAgICAgIGZCcmVha1R5cGU7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgLy89PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorICAgIC8vIGNvbnN0cnVjdG9ycworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworI2lmbmRlZiBV
X0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgdG8gYmUgdXNlZCBp
biB0aGUgY29uc3RydWN0b3IKKyAgICAgKiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFJCQklEYXRh
SGVhZGVyKiwgRURvbnRBZG9wdCwgVUVycm9yQ29kZSAmKTsKKyAgICAgKiB3aGljaCBkb2VzIG5v
dCBhZG9wdCB0aGUgbWVtb3J5IGluZGljYXRlZCBieSB0aGUgUkJCSURhdGFIZWFkZXIqCisgICAg
ICogcGFyYW1ldGVyLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgZW51
bSBFRG9udEFkb3B0IHsKKyAgICAgICAga0RvbnRBZG9wdAorICAgIH07CisKKyAgICAvKioKKyAg
ICAgKiBDb25zdHJ1Y3RvciBmcm9tIGEgZmxhdHRlbmVkIHNldCBvZiBSQkJJIGRhdGEgaW4gbWFs
bG9jZWQgbWVtb3J5LgorICAgICAqICAgICAgICAgICAgIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9y
cyBidWlsdCBmcm9tIGEgY3VzdG9tIHNldCBvZiBydWxlcworICAgICAqICAgICAgICAgICAgIGFy
ZSBjcmVhdGVkIHZpYSB0aGlzIGNvbnN0cnVjdG9yOyB0aGUgcnVsZXMgYXJlIGNvbXBpbGVkCisg
ICAgICogICAgICAgICAgICAgaW50byBtZW1vcnksIHRoZW4gdGhlIGJyZWFrIGl0ZXJhdG9yIGlz
IGNvbnN0cnVjdGVkIGhlcmUuCisgICAgICoKKyAgICAgKiAgICAgICAgICAgICBUaGUgYnJlYWsg
aXRlcmF0b3IgYWRvcHRzIHRoZSBtZW1vcnksIGFuZCB3aWxsCisgICAgICogICAgICAgICAgICAg
ZnJlZSBpdCB3aGVuIGRvbmUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgUnVsZUJh
c2VkQnJlYWtJdGVyYXRvcihSQkJJRGF0YUhlYWRlciogZGF0YSwgVUVycm9yQ29kZSAmc3RhdHVz
KTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZyb20gYSBmbGF0dGVuZWQgc2V0IG9m
IFJCQkkgZGF0YSBpbiBtZW1vcnkgd2hpY2ggbmVlZCBub3QKKyAgICAgKiAgICAgICAgICAgICBi
ZSBtYWxsb2NlZCAoZS5nLiBpdCBtYXkgYmUgYSBtZW1vcnktbWFwcGVkIGZpbGUsIGV0Yy4pLgor
ICAgICAqCisgICAgICogICAgICAgICAgICAgVGhpcyB2ZXJzaW9uIGRvZXMgbm90IGFkb3B0IHRo
ZSBtZW1vcnksIGFuZCBkb2VzIG5vdAorICAgICAqICAgICAgICAgICAgIGZyZWUgaXQgd2hlbiBk
b25lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3IoY29uc3QgUkJCSURhdGFIZWFkZXIqIGRhdGEsIGVudW0gRURvbnRBZG9wdCBkb250QWRvcHQs
IFVFcnJvckNvZGUgJnN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8K
KworCisgICAgZnJpZW5kIGNsYXNzIFJCQklSdWxlQnVpbGRlcjsKKyAgICAvKiogQGludGVybmFs
ICovCisgICAgZnJpZW5kIGNsYXNzIEJyZWFrSXRlcmF0b3I7CisKKworCitwdWJsaWM6CisKKyAg
ICAvKiogRGVmYXVsdCBjb25zdHJ1Y3Rvci4gIENyZWF0ZXMgYW4gZW1wdHkgc2hlbGwgb2YgYW4g
aXRlcmF0b3IsIHdpdGggbm8KKyAgICAgKiAgcnVsZXMgb3IgdGV4dCB0byBpdGVyYXRlIG92ZXIu
ICAgT2JqZWN0IGNhbiBzdWJzZXF1ZW50bHkgYmUgYXNzaWduZWQgdG8uCisgICAgICogIEBzdGFi
bGUgSUNVIDIuMgorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKTsKKworICAg
IC8qKgorICAgICAqIENvcHkgY29uc3RydWN0b3IuICBXaWxsIHByb2R1Y2UgYSBicmVhayBpdGVy
YXRvciB3aXRoIHRoZSBzYW1lIGJlaGF2aW9yLAorICAgICAqIGFuZCB3aGljaCBpdGVyYXRlcyBv
dmVyIHRoZSBzYW1lIHRleHQsIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0
aGF0IFRoZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHBhc3NlZCB0byBiZSBjb3BpZWQKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGNv
bnN0IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIHRoYXQpOworCisgICAgLyoqCisgICAgICogQ29u
c3RydWN0IGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEgc2V0IG9mIHJ1bGVzIHN1cHBs
aWVkIGFzIGEgc3RyaW5nLgorICAgICAqIEBwYXJhbSBydWxlcyBUaGUgYnJlYWsgcnVsZXMgdG8g
YmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gcGFyc2VFcnJvciAgSW4gdGhlIGV2ZW50IG9mIGEgc3lu
dGF4IGVycm9yIGluIHRoZSBydWxlcywgcHJvdmlkZXMgdGhlIGxvY2F0aW9uCisgICAgICogICAg
ICAgICAgICAgICAgICAgIHdpdGhpbiB0aGUgcnVsZXMgb2YgdGhlIHByb2JsZW0uCisgICAgICog
QHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkgZXJyb3JzIGVuY291bnRlcmVkLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Io
IGNvbnN0IFVuaWNvZGVTdHJpbmcgICAgJnJ1bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVUGFyc2VFcnJvciAgICAgICAgICAgJnBhcnNlRXJyb3IsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgICAgICAgICAmc3RhdHVzKTsKKworICAgIC8qKgor
ICAgICAqIENvbnRydWN0IGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEgc2V0IG9mIHBy
ZWNvbXBpbGVkIGJpbmFyeSBydWxlcy4KKyAgICAgKiBCaW5hcnkgcnVsZXMgYXJlIG9idGFpbmVk
IGZyb20gUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3I6OmdldEJpbmFyeVJ1bGVzKCkuCisgICAgICog
Q29uc3RydWN0aW9uIG9mIGEgYnJlYWsgaXRlcmF0b3IgaW4gdGhpcyB3YXkgaXMgc3Vic3RhbnRp
YWxseSBmYXN0ZXIgdGhhbgorICAgICAqIGNvbnN0dWN0aW9uIGZyb20gc291cmNlIHJ1bGVzLgor
ICAgICAqCisgICAgICogT3duZXJzaGlwIG9mIHRoZSBzdG9yYWdlIGNvbnRhaW5pbmcgdGhlIGNv
bXBpbGVkIHJ1bGVzIHJlbWFpbnMgd2l0aCB0aGUKKyAgICAgKiBjYWxsZXIgb2YgdGhpcyBmdW5j
dGlvbi4gIFRoZSBjb21waWxlZCBydWxlcyBtdXN0IG5vdCBiZSAgbW9kaWZpZWQgb3IgCisgICAg
ICogZGVsZXRlZCBkdXJpbmcgdGhlIGxpZmUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAq
CisgICAgICogVGhlIGNvbXBpbGVkIHJ1bGVzIGFyZSBub3QgY29tcGF0aWJsZSBhY3Jvc3MgZGlm
ZmVyZW50IG1ham9yIHZlcnNpb25zIG9mIElDVS4KKyAgICAgKiBUaGUgY29tcGlsZWQgcnVsZXMg
YXJlIGNvbWFwdGlibGUgb25seSBiZXR3ZWVuIG1hY2hpbmVzIHdpdGggdGhlIHNhbWUKKyAgICAg
KiBieXRlIG9yZGVyaW5nIChsaXR0bGUgb3IgYmlnIGVuZGlhbikgYW5kIHRoZSBzYW1lIGJhc2Ug
Y2hhcmFjdGVyIHNldCBmYW1pbHkKKyAgICAgKiAoQVNDSUkgb3IgRUJDRElDKS4KKyAgICAgKgor
ICAgICAqIEBzZWUgI2dldEJpbmFyeVJ1bGVzCisgICAgICogQHBhcmFtIGNvbXBpbGVkUnVsZXMg
QSBwb2ludGVyIHRvIHRoZSBjb21waWxlZCBicmVhayBydWxlcyB0byBiZSB1c2VkLgorICAgICAq
IEBwYXJhbSBydWxlTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIGNvbXBpbGVkIGJyZWFrIHJ1bGVz
LCBpbiBieXRlcy4gIFRoaXMKKyAgICAgKiAgIGNvcnJlc3BvbmRzIHRvIHRoZSBsZW5ndGggdmFs
dWUgcHJvZHVjZWQgYnkgZ2V0QmluYXJ5UnVsZXMoKS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIElu
Zm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQsIGluY2x1ZGluZyBpbnZhbGlkCisg
ICAgICogICBiaW5hcnkgcnVsZXMuCisgICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgICovCisg
ICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCB1aW50OF90ICpjb21waWxlZFJ1bGVzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgcnVsZUxlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgJnN0YXR1cyk7CisKKyAgICAv
KioKKyAgICAgKiBUaGlzIGNvbnN0cnVjdG9yIHVzZXMgdGhlIHVkYXRhIGludGVyZmFjZSB0byBj
cmVhdGUgYSBCcmVha0l0ZXJhdG9yCisgICAgICogd2hvc2UgaW50ZXJuYWwgdGFibGVzIGxpdmUg
aW4gYSBtZW1vcnktbWFwcGVkIGZpbGUuICAiaW1hZ2UiIGlzIGFuCisgICAgICogSUNVIFVEYXRh
TWVtb3J5IGhhbmRsZSBmb3IgdGhlIHByZS1jb21waWxlZCBicmVhayBpdGVyYXRvciB0YWJsZXMu
CisgICAgICogQHBhcmFtIGltYWdlIGhhbmRsZSB0byB0aGUgbWVtb3J5IGltYWdlIGZvciB0aGUg
YnJlYWsgaXRlcmF0b3IgZGF0YS4KKyAgICAgKiAgICAgICAgT3duZXJzaGlwIG9mIHRoZSBVRGF0
YU1lbW9yeSBoYW5kbGUgcGFzc2VzIHRvIHRoZSBCcmVhayBJdGVyYXRvciwKKyAgICAgKiAgICAg
ICAgd2hpY2ggd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgY2xvc2luZyBpdCB3aGVuIGl0IGlzIG5v
IGxvbmdlciBuZWVkZWQuCisgICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkg
ZXJyb3JzIGVuY291bnRlcmVkLgorICAgICAqIEBzZWUgdWRhdGFfb3BlbgorICAgICAqIEBzZWUg
I2dldEJpbmFyeVJ1bGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgUnVs
ZUJhc2VkQnJlYWtJdGVyYXRvcihVRGF0YU1lbW9yeSogaW1hZ2UsIFVFcnJvckNvZGUgJnN0YXR1
cyk7CisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgflJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKTsKKworICAg
IC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICBTZXRzIHRoaXMgaXRlcmF0b3IgdG8g
aGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwKKyAgICAgKiBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBzYW1l
IHRleHQsIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBSdWxl
QmFzZWRCcmVha0l0ZXJ0b3IgcGFzc2VkIGluCisgICAgICogQHJldHVybiB0aGUgbmV3bHkgY3Jl
YXRlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIG9wZXJhdG9yPShjb25zdCBSdWxlQmFz
ZWRCcmVha0l0ZXJhdG9yJiB0aGF0KTsKKworICAgIC8qKgorICAgICAqIEVxdWFsaXR5IG9wZXJh
dG9yLiAgUmV0dXJucyBUUlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG9mIHRoZQorICAg
ICAqIHNhbWUgY2xhc3MsIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsIGFuZCBpdGVyYXRlIG92ZXIg
dGhlIHNhbWUgdGV4dC4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQnJlYWtJdGVyYXRvciB0byBi
ZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgYm90aCBCcmVh
a0l0ZXJhdG9ycyBhcmUgb2YgdGhlCisgICAgICogc2FtZSBjbGFzcywgaGF2ZSB0aGUgc2FtZSBi
ZWhhdmlvciwgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAqICBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29uc3QgQnJl
YWtJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBOb3QtZXF1YWwgb3Bl
cmF0b3IuICBJZiBvcGVyYXRvcj09IHJldHVybnMgVFJVRSwgdGhpcyByZXR1cm5zIEZBTFNFLAor
ICAgICAqIGFuZCB2aWNlIHZlcnNhLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBCcmVha0l0ZXJh
dG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5CisgICAgICogQHJldHVybiBUUlVFIGlm
IGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG5vdCBzYW1lLgorICAgICAqICBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHRo
YXQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVk
IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd2l0aCB0aGUgc2FtZQorICAgICAqIGJlaGF2aW9yLCBh
bmQgaXRlcmF0aW5nIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhpcyBvbmUuCisgICAgICogRGlm
ZmVycyBmcm9tIHRoZSBjb3B5IGNvbnN0cnVjdG9yIGluIHRoYXQgaXQgaXMgcG9seW1vcnBoaWMs
IGFuZAorICAgICAqIHdpbGwgY29ycmVjdGx5IGNsb25lIChjb3B5KSBhIGRlcml2ZWQgY2xhc3Mu
CisgICAgICogY2xvbmUoKSBpcyB0aHJlYWQgc2FmZS4gIE11bHRpcGxlIHRocmVhZHMgbWF5IHNp
bXVsdGFlbmVvdXNseQorICAgICAqIGNsb25lIHRoZSBzYW1lIHNvdXJjZSBicmVhayBpdGVyYXRv
ci4KKyAgICAgKiBAcmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJlYWtJdGVy
YXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJ
dGVyYXRvciogY2xvbmUoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENvbXB1dGUgYSBoYXNo
IGNvZGUgZm9yIHRoaXMgQnJlYWtJdGVyYXRvcgorICAgICAqIEByZXR1cm4gQSBoYXNoIGNvZGUK
KyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGhh
c2hDb2RlKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZGVzY3Jp
cHRpb24gdXNlZCB0byBjcmVhdGUgdGhpcyBpdGVyYXRvcgorICAgICAqIEByZXR1cm4gdGhlIGRl
c2NyaXB0aW9uIHVzZWQgdG8gY3JlYXRlIHRoaXMgaXRlcmF0b3IKKyAgICAgKiAgQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBjb25zdCBVbmljb2RlU3RyaW5nJiBnZXRSdWxl
cyh2b2lkKSBjb25zdDsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBCcmVha0l0ZXJh
dG9yIG92ZXJyaWRlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIDxw
PgorICAgICAqIFJldHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcg
YW5hbHl6ZWQuCisgICAgICogVGhlIHJldHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBpcyBvd25l
ZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IsIGFuZCBtdXN0CisgICAgICogbm90IGJlIGRlbGV0ZWQg
YnkgdGhlIGNhbGxlci4gIFJlcGVhdGVkIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gbWF5CisgICAg
ICogcmV0dXJuIHRoZSBzYW1lIENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIDwvcD4KKyAgICAg
KiA8cD4KKyAgICAgKiBUaGUgcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIG11c3Qgbm90IGJl
IHVzZWQgY29uY3VycmVudGx5IHdpdGgKKyAgICAgKiB0aGUgYnJlYWsgaXRlcmF0b3IuICBJZiBj
b25jdXJyZW50IG9wZXJhdGlvbiBpcyBuZWVkZWQsIGNsb25lIHRoZQorICAgICAqIHJldHVybmVk
IGNoYXJhY3RlciBpdGVyYXRvciBmaXJzdCBhbmQgb3BlcmF0ZSBvbiB0aGUgY2xvbmUuCisgICAg
ICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFdoZW4gdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9w
ZXJhdGluZyBvbiB0ZXh0IHN1cHBsaWVkIHZpYSBhIFVUZXh0LAorICAgICAqIHRoaXMgZnVuY3Rp
b24gd2lsbCBmYWlsLiAgTGFja2luZyBhbnkgd2F5IHRvIHNpZ25hbCBmYWlsdXJlcywgaXQKKyAg
ICAgKiByZXR1cm5zIGFuIENoYXJhY3Rlckl0ZXJhdG9yIGNvbnRhaW5pbmcgbm8gdGV4dC4KKyAg
ICAgKiBUaGUgZnVuY3Rpb24gZ2V0VVRleHQoKSBwcm92aWRlcyBzaW1pbGFyIGZ1bmN0aW9uYWxp
dHksCisgICAgICogaXMgcmVsaWFibGUsIGFuZCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICAgKiA8
L3A+CisgICAgICoKKyAgICAgKiBUT0RPOiAgZGVwcmVjYXRlIHRoaXMgZnVuY3Rpb24/CisgICAg
ICoKKyAgICAgKiBAcmV0dXJuIEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6
ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCAgQ2hhcmFj
dGVySXRlcmF0b3ImIGdldFRleHQodm9pZCkgY29uc3Q7CisKKworICAgIC8qKgorICAgICAgKiAg
R2V0IGEgVVRleHQgZm9yIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAgKiAgVGhlIHJl
dHVybmVkIFVUZXh0IGlzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgVVRleHQgdXNlZCBpbnRlcm5h
bGx5CisgICAgICAqICBieSB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24uICBJdCBj
YW4gc2FmZWx5IGJlIHVzZWQgdG8KKyAgICAgICogIGFjY2VzcyB0aGUgdGV4dCB3aXRob3V0IGlt
cGFjdGluZyBhbnkgYnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucywKKyAgICAgICogIGJ1dCB0aGUg
dW5kZXJseWluZyB0ZXh0IGl0c2VsZiBtdXN0IG5vdCBiZSBhbHRlcmVkLgorICAgICAgKgorICAg
ICAgKiBAcGFyYW0gZmlsbEluIEEgVVRleHQgdG8gYmUgZmlsbGVkIGluLiAgSWYgTlVMTCwgYSBu
ZXcgVVRleHQgd2lsbCBiZQorICAgICAgKiAgICAgICAgICAgYWxsb2NhdGVkIHRvIGhvbGQgdGhl
IHJlc3VsdC4KKyAgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMu
CisgICAgICAqIEByZXR1cm4gICBUaGUgY3VycmVudCBVVGV4dCBmb3IgdGhpcyBicmVhayBpdGVy
YXRvci4gIElmIGFuIGlucHV0CisgICAgICAqICAgICAgICAgICBVVGV4dCB3YXMgcHJvdmlkZWQs
IGl0IHdpbGwgYWx3YXlzIGJlIHJldHVybmVkLgorICAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAg
ICAgICovCisgICAgIHZpcnR1YWwgVVRleHQgKmdldFVUZXh0KFVUZXh0ICpmaWxsSW4sIFVFcnJv
ckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9y
IHRvIGFuYWx5emUgYSBuZXcgcGllY2Ugb2YgdGV4dC4gIFRoaXMgZnVuY3Rpb24gcmVzZXRzCisg
ICAgICogdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2Yg
dGhlIHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgQW4gaXRlcmF0b3Igb3ZlciB0aGUgdGV4
dCB0byBhbmFseXplLiAgVGhlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiB0YWtlcyBvd25lcnNoaXAg
b2YgdGhlIGNoYXJhY3RlciBpdGVyYXRvci4gIFRoZSBjYWxsZXIgTVVTVCBOT1QgZGVsZXRlIGl0
IQorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgYWRv
cHRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKiBuZXdUZXh0KTsKKworICAgIC8qKgorICAgICAqIFNl
dCB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhpcyBmdW5j
dGlvbiByZXNldHMKKyAgICAgKiB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhl
IGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUgdGV4dCB0
byBhbmFseXplLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IHZvaWQgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKworICAgIC8qKgor
ICAgICAqIFJlc2V0IHRoZSBicmVhayBpdGVyYXRvciB0byBvcGVyYXRlIG92ZXIgdGhlIHRleHQg
cmVwcmVzZW50ZWQgYnkKKyAgICAgKiB0aGUgVVRleHQuICBUaGUgaXRlcmF0b3IgcG9zaXRpb24g
aXMgcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtYWtl
cyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIHN1cHBsaWVkIFVUZXh0LiAgVGhpcyBtZWFucworICAg
ICAqIHRoYXQgdGhlIGNhbGxlciBpcyBmcmVlIHRvIGltbWVkaWF0ZWx5IGNsb3NlIG9yIG90aGVy
d2lzZSByZXVzZSB0aGUKKyAgICAgKiBVdGV4dCB0aGF0IHdhcyBwYXNzZWQgYXMgYSBwYXJhbWV0
ZXIsIGJ1dCB0aGF0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmCisgICAgICogbXVzdCBub3Qg
YmUgYWx0ZXJlZCB3aGlsZSBiZWluZyByZWZlcmVuY2VkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4K
KyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0ICAgIFRoZSBVVGV4dCB1c2VkIHRvIGNoYW5nZSB0
aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzICBSZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMu
CisgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBzZXRU
ZXh0KFVUZXh0ICp0ZXh0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICog
U2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0
aGUgdGV4dCwgcG9zaXRpb24gemVyby4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZzZXQgb2YgdGhl
IGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgemVyby4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGZpcnN0KHZvaWQpOworCisgICAgLyoqCisgICAg
ICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGVuZCBvZiB0aGUg
dGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSB0ZXh0J3MgcGFzdC10aGUtZW5kIG9mZnNldC4KKyAg
ICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGxhc3Qo
dm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgZWl0aGVyIGZv
cndhcmQgb3IgYmFja3dhcmQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc3RlcHMuCisgICAgICog
TmVnYXRpdmUgdmFsdWVzIG1vdmUgYmFja3dhcmQsIGFuZCBwb3NpdGl2ZSB2YWx1ZXMgbW92ZSBm
b3J3YXJkLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gcmVwZWF0ZWRseSBjYWxsaW5n
IG5leHQoKSBvciBwcmV2aW91cygpLgorICAgICAqIEBwYXJhbSBuIFRoZSBudW1iZXIgb2Ygc3Rl
cHMgdG8gbW92ZS4gIFRoZSBzaWduIGluZGljYXRlcyB0aGUgZGlyZWN0aW9uCisgICAgICogKG5l
Z2F0aXZlIGlzIGJhY2t3YXJkcywgYW5kIHBvc2l0aXZlIGlzIGZvcndhcmRzKS4KKyAgICAgKiBA
cmV0dXJuIFRoZSBjaGFyYWN0ZXIgb2Zmc2V0IG9mIHRoZSBib3VuZGFyeSBwb3NpdGlvbiBuIGJv
dW5kYXJpZXMgYXdheSBmcm9tCisgICAgICogdGhlIGN1cnJlbnQgb25lLgorICAgICAqICBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dChpbnQzMl90IG4p
OworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBuZXh0IGJv
dW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJz
dCBib3VuZGFyeSBhZnRlciB0aGlzIG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBN
b3ZlcyB0aGUgaXRlcmF0b3IgYmFja3dhcmRzLCB0byB0aGUgbGFzdCBib3VuZGFyeSBwcmVjZWRp
bmcgdGhpcyBvbmUuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91
bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoaXMgb25lLgorICAgICAqICBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJldmlvdXModm9pZCk7CisKKyAgICAv
KioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgYm91bmRh
cnkgcG9zaXRpb24gZm9sbG93aW5nCisgICAgICogdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAg
ICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiBmcm9tIHdoaWNoIHRvIGJlZ2luIHNlYXJj
aGluZyBmb3IgYSBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBv
ZiB0aGUgZmlyc3QgYnJlYWsgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmb2xsb3dpbmcoaW50
MzJfdCBvZmZzZXQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVm
ZXIgdG8gdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlIHRoZQorICAgICAqIHNwZWNp
ZmllZCBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiB0byBiZWdp
biBzZWFyY2hpbmcgZm9yIGEgYnJlYWsgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlv
biBvZiB0aGUgbGFzdCBib3VuZGFyeSBiZWZvcmUgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uLgorICAg
ICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJlY2Vk
aW5nKGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0
aGUgc3BlY2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4gIEFzIGEgc2lkZQor
ICAgICAqIGVmZmVjdCwgbGVhdmVzIHRoZSBpdGVyYXRvciBwb2ludGluZyB0byB0aGUgZmlyc3Qg
Ym91bmRhcnkgcG9zaXRpb24gYXQKKyAgICAgKiBvciBhZnRlciAib2Zmc2V0Ii4KKyAgICAgKiBA
cGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBUcnVlIGlm
ICJvZmZzZXQiIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNCb3VuZGFyeShpbnQzMl90IG9mZnNldCk7
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlv
bi4KKyAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgY3VycmVudCh2
b2lkKSBjb25zdDsKKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGF0dXMgdGFnIGZy
b20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAg
ICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uICBGb3IgYnJlYWsgcnVsZXMgdGhhdCBkbyBub3Qg
c3BlY2lmeSBhCisgICAgICogc3RhdHVzLCBhIGRlZmF1bHQgdmFsdWUgb2YgMCBpcyByZXR1cm5l
ZC4gIElmIG1vcmUgdGhhbiBvbmUgYnJlYWsgcnVsZQorICAgICAqIHdvdWxkIGNhdXNlIGEgYm91
bmRhcnkgdG8gYmUgbG9jYXRlZCBhdCBzb21lIHBvc2l0aW9uIGluIHRoZSB0ZXh0LAorICAgICAq
IHRoZSBudW1lcmljYWxseSBsYXJnZXN0IG9mIHRoZSBhcHBsaWNhYmxlIHN0YXR1cyB2YWx1ZXMg
aXMgcmV0dXJuZWQuCisgICAgICogPHA+CisgICAgICogT2YgdGhlIHN0YW5kYXJkIHR5cGVzIG9m
IElDVSBicmVhayBpdGVyYXRvcnMsIG9ubHkgd29yZCBicmVhayBhbmQKKyAgICAgKiBsaW5lIGJy
ZWFrIHByb3ZpZGUgc3RhdHVzIHZhbHVlcy4gIFRoZSB2YWx1ZXMgYXJlIGRlZmluZWQgaW4KKyAg
ICAgKiB0aGUgaGVhZGVyIGZpbGUgdWJyay5oLiAgRm9yIFdvcmQgYnJlYWtzLCB0aGUgc3RhdHVz
IGFsbG93cyBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuIHdvcmRzCisgICAgICogdGhhdCBjb250YWlu
IGFscGhhYmV0aWMgbGV0dGVycywgIndvcmRzIiB0aGF0IGFwcGVhciB0byBiZSBudW1iZXJzLAor
ICAgICAqIHB1bmN0dWF0aW9uIGFuZCBzcGFjZXMsIHdvcmRzIGNvbnRhaW5pbmcgaWRlb2dyYXBo
aWMgY2hhcmFjdGVycywgYW5kCisgICAgICogbW9yZS4gIEZvciBMaW5lIEJyZWFrLCB0aGUgc3Rh
dHVzIGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiBoYXJkIChtYW5kYXRvcnkpIGJyZWFrcworICAgICAq
IGFuZCBzb2Z0IChwb3RlbnRpYWwpIGJyZWFrIHBvc2l0aW9ucy4KKyAgICAgKiA8cD4KKyAgICAg
KiA8Y29kZT5nZXRSdWxlU3RhdHVzKCk8L2NvZGU+IGNhbiBiZSBjYWxsZWQgYWZ0ZXIgb2J0YWlu
aW5nIGEgYm91bmRhcnkKKyAgICAgKiBwb3NpdGlvbiBmcm9tIDxjb2RlPm5leHQoKTwvY29kZT4s
IDxjb2RlPnByZXZpb3VzKCk8L2NvZGU+LCBvcgorICAgICAqIGFueSBvdGhlciBicmVhayBpdGVy
YXRvciBmdW5jdGlvbnMgdGhhdCByZXR1cm5zIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICog
PHA+CisgICAgICogV2hlbiBjcmVhdGluZyBjdXN0b20gYnJlYWsgcnVsZXMsIG9uZSBpcyBmcmVl
IHRvIGRlZmluZSB3aGF0ZXZlcgorICAgICAqIHN0YXR1cyB2YWx1ZXMgbWF5IGJlIGNvbnZlbmll
bnQgZm9yIHRoZSBhcHBsaWNhdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlOiB0aGlzIGZ1
bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZS4gIEl0IHNob3VsZCBub3QgaGF2ZSBiZWVuCisgICAg
ICogICAgICAgZGVjbGFyZWQgY29uc3QsIGFuZCB0aGUgY29uc3QgcmVtYWlucyBvbmx5IGZvciBj
b21wYXRpYmlsaXR5CisgICAgICogICAgICAgcmVhc29ucy4gIChUaGUgZnVuY3Rpb24gaXMgbG9n
aWNhbGx5IGNvbnN0LCBidXQgbm90IGJpdC13aXNlIGNvbnN0KS4KKyAgICAgKiA8cD4KKyAgICAg
KiBAcmV0dXJuIHRoZSBzdGF0dXMgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQg
dGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAg
KgorICAgICAqIEBzZWUgVVdvcmRCcmVhaworICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAq
LworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3RhdHVzKCkgY29uc3Q7CisKKyAgIC8qKgor
ICAgICogR2V0IHRoZSBzdGF0dXMgKHRhZykgdmFsdWVzIGZyb20gdGhlIGJyZWFrIHJ1bGUocykg
dGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0CisgICAgKiByZWNlbnRseSByZXR1cm5lZCBicmVhayBw
b3NpdGlvbi4KKyAgICAqIDxwPgorICAgICogVGhlIHJldHVybmVkIHN0YXR1cyB2YWx1ZShzKSBh
cmUgc3RvcmVkIGludG8gYW4gYXJyYXkgcHJvdmlkZWQgYnkgdGhlIGNhbGxlci4KKyAgICAqIFRo
ZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiBzb3J0ZWQgKGFzY2VuZGluZykgb3JkZXIuCisgICAgKiBJ
ZiB0aGUgY2FwYWNpdHkgb2YgdGhlIG91dHB1dCBhcnJheSBpcyBpbnN1ZmZpY2llbnQgdG8gaG9s
ZCB0aGUgZGF0YSwKKyAgICAqICB0aGUgb3V0cHV0IHdpbGwgYmUgdHJ1bmNhdGVkIHRvIHRoZSBh
dmFpbGFibGUgbGVuZ3RoLCBhbmQgYQorICAgICogIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SIHdp
bGwgYmUgc2lnbmFsZWQuCisgICAgKgorICAgICogQHBhcmFtIGZpbGxJblZlYyBhbiBhcnJheSB0
byBiZSBmaWxsZWQgaW4gd2l0aCB0aGUgc3RhdHVzIHZhbHVlcy4KKyAgICAqIEBwYXJhbSBjYXBh
Y2l0eSAgdGhlIGxlbmd0aCBvZiB0aGUgc3VwcGxpZWQgdmVjdG9yLiAgQSBsZW5ndGggb2YgemVy
byBjYXVzZXMKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIGZ1bmN0aW9uIHRvIHJldHVybiB0
aGUgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMsIGluIHRoZQorICAgICogICAgICAgICAgICAgICAg
ICBub3JtYWwgd2F5LCB3aXRob3V0IGF0dGVtdHBpbmcgdG8gc3RvcmUgYW55IHZhbHVlcy4KKyAg
ICAqIEBwYXJhbSBzdGF0dXMgICAgcmVjZWl2ZXMgZXJyb3IgY29kZXMuCisgICAgKiBAcmV0dXJu
ICAgICAgICAgIFRoZSBudW1iZXIgb2YgcnVsZSBzdGF0dXMgdmFsdWVzIGZyb20gcnVsZXMgdGhh
dCBkZXRlcm1pbmVkCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJlY2VudCBib3Vu
ZGFyeSByZXR1cm5lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgKiAgICAgICAgICAgICAg
ICAgIEluIHRoZSBldmVudCBvZiBhIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SLCB0aGUgcmV0dXJu
IHZhbHVlCisgICAgKiAgICAgICAgICAgICAgICAgIGlzIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3Rh
dHVzIHZhbHVlcyB0aGF0IHdlcmUgYXZhaWxhYmxlLAorICAgICogICAgICAgICAgICAgICAgICBu
b3QgdGhlIHJlZHVjZWQgbnVtYmVyIHRoYXQgd2VyZSBhY3R1YWxseSByZXR1cm5lZC4KKyAgICAq
IEBzZWUgZ2V0UnVsZVN0YXR1cworICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1c1ZlYyhpbnQzMl90ICpmaWxsSW5WZWMsIGludDMy
X3QgY2FwYWNpdHksIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIGEgdW5pcXVlIGNsYXNzIElEIFBPTFlNT1JQSElDQUxMWS4gIFB1cmUgdmlydHVhbCBvdmVy
cmlkZS4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB0byBpbXBsZW1lbnQgYSBzaW1wbGUgdmVyc2lv
biBvZiBSVFRJLCBzaW5jZSBub3QgYWxsCisgICAgICogQysrIGNvbXBpbGVycyBzdXBwb3J0IGdl
bnVpbmUgUlRUSS4gIFBvbHltb3JwaGljIG9wZXJhdG9yPT0oKSBhbmQKKyAgICAgKiBjbG9uZSgp
IG1ldGhvZHMgY2FsbCB0aGlzIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICAg
ICAgVGhlIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4gQWxsIG9iamVjdHMgb2YgYQorICAgICAq
ICAgICAgICAgICAgICAgICAgZ2l2ZW4gY2xhc3MgaGF2ZSB0aGUgc2FtZSBjbGFzcyBJRC4gIE9i
amVjdHMgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgIG90aGVyIGNsYXNzZXMgaGF2ZSBkaWZm
ZXJlbnQgY2xhc3MgSURzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3Q7CisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm5zIHRoZSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcy4gIFRoaXMgaXMgdXNl
ZnVsIG9ubHkgZm9yCisgICAgICogY29tcGFyaW5nIHRvIGEgcmV0dXJuIHZhbHVlIGZyb20gZ2V0
RHluYW1pY0NsYXNzSUQoKS4gIEZvciBleGFtcGxlOgorICAgICAqCisgICAgICogICAgICBCYXNl
KiBwb2x5bW9ycGhpY19wb2ludGVyID0gY3JlYXRlUG9seW1vcnBoaWNPYmplY3QoKTsKKyAgICAg
KiAgICAgIGlmIChwb2x5bW9ycGhpY19wb2ludGVyLT5nZXREeW5hbWljQ2xhc3NJRCgpID09Cisg
ICAgICogICAgICAgICAgRGVyaXZlZDo6Z2V0U3RhdGljQ2xhc3NJRCgpKSAuLi4KKyAgICAgKgor
ICAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIGNsYXNzIElEIGZvciBhbGwgb2JqZWN0cyBvZiB0
aGlzIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBV
Q2xhc3NJRCBVX0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworICAgIC8qKgorICAg
ICAqIERlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0eS4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAg
KgorICAgICAqIENyZWF0ZSBhIGNsb25lIChjb3B5KSBvZiB0aGlzIGJyZWFrIGl0ZXJhdG9yIGlu
IG1lbW9yeSBwcm92aWRlZAorICAgICAqICBieSB0aGUgY2FsbGVyLiAgVGhlIGlkZWEgaXMgdG8g
aW5jcmVhc2UgcGVyZm9ybWFuY2UgYnkgYXZvaWRpbmcKKyAgICAgKiAgYSBzdG9yYWdlIGFsbG9j
YXRpb24uICBVc2Ugb2YgdGhpcyBmdW5jdG9pbiBpcyBOT1QgUkVDT01NRU5ERUQuCisgICAgICog
IFBlcmZvcm1hbmNlIGdhaW5zIGFyZSBtaW5pbWFsLCBhbmQgY29ycmVjdCBidWZmZXIgbWFuYWdl
bWVudCBpcworICAgICAqICB0cmlja3kuICBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisg
ICAgICogQHBhcmFtIHN0YWNrQnVmZmVyICBUaGUgcG9pbnRlciB0byB0aGUgbWVtb3J5IGludG8g
d2hpY2ggdGhlIGNsb25lZCBvYmplY3QKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHNob3Vs
ZCBiZSBwbGFjZWQuICBJZiBOVUxMLCAgYWxsb2NhdGUgaGVhcCBtZW1vcnkKKyAgICAgKiAgICAg
ICAgICAgICAgICAgICAgIGZvciB0aGUgY2xvbmVkIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gQnVm
ZmVyU2l6ZSAgIFRoZSBzaXplIG9mIHRoZSBidWZmZXIuICBJZiB6ZXJvLCByZXR1cm4gdGhlIHJl
cXVpcmVkCisgICAgICogICAgICAgICAgICAgICAgICAgICBidWZmZXIgc2l6ZSwgYnV0IGRvIG5v
dCBjbG9uZSB0aGUgb2JqZWN0LiAgSWYgdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICBz
aXplIHdhcyB0b28gc21hbGwgKGJ1dCBub3QgemVybyksIGFsbG9jYXRlIGhlYXAKKyAgICAgKiAg
ICAgICAgICAgICAgICAgICAgIHN0b3JhZ2UgZm9yIHRoZSBjbG9uZWQgb2JqZWN0LgorICAgICAq
CisgICAgICogQHBhcmFtIHN0YXR1cyAgICAgICBFcnJvciBzdGF0dXMuICBVX1NBRkVDTE9ORV9B
TExPQ0FURURfV0FSTklORyB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgICAgICAgICByZXR1
cm5lZCBpZiB0aGUgdGhlIHByb3ZpZGVkIGJ1ZmZlciB3YXMgdG9vIHNtYWxsLCBhbmQKKyAgICAg
KiAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9uZSB3YXMgdGhlcmVmb3JlIHB1dCBvbiB0aGUg
aGVhcC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIFBvaW50ZXIgdG8gdGhlIGNsb25lIG9iamVj
dC4gIFRoaXMgbWF5IGRpZmZlciBmcm9tIHRoZSBzdGFja0J1ZmZlcgorICAgICAqICAgICAgICAg
IGFkZHJlc3MgaWYgdGhlIGJ5dGUgYWxpZ25tZW50IG9mIHRoZSBzdGFjayBidWZmZXIgd2FzIG5v
dCBzdWl0YWJsZQorICAgICAqICAgICAgICAgIG9yIGlmIHRoZSBzdGFja0J1ZmZlciB3YXMgdG9v
IHNtYWxsIHRvIGhvbGQgdGhlIGNsb25lLgorICAgICAqIEBkZXByZWNhdGVkIElDVSA1Mi4gVXNl
IGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IgKiAg
Y3JlYXRlQnVmZmVyQ2xvbmUodm9pZCAqc3RhY2tCdWZmZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgJkJ1ZmZlclNpemUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgJnN0YXR1
cyk7CisKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmluYXJ5IGZvcm0gb2YgY29tcGls
ZWQgYnJlYWsgcnVsZXMsCisgICAgICogd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCB0byBjcmVhdGUg
YSBuZXcgYnJlYWsgaXRlcmF0b3IgYXQgc29tZQorICAgICAqIHRpbWUgaW4gdGhlIGZ1dHVyZS4g
IENyZWF0aW5nIGEgYnJlYWsgaXRlcmF0b3IgZnJvbSBwcmUtY29tcGlsZWQgcnVsZXMKKyAgICAg
KiBpcyBtdWNoIGZhc3RlciB0aGFuIGJ1aWxkaW5nIG9uZSBmcm9tIHRoZSBzb3VyY2UgZm9ybSBv
ZiB0aGUKKyAgICAgKiBicmVhayBydWxlcy4KKyAgICAgKgorICAgICAqIFRoZSBiaW5hcnkgZGF0
YSBjYW4gb25seSBiZSB1c2VkIHdpdGggdGhlIHNhbWUgdmVyc2lvbiBvZiBJQ1UKKyAgICAgKiAg
YW5kIG9uIHRoZSBzYW1lIHBsYXRmb3JtIHR5cGUgKHByb2Nlc3NvciBlbmRpYW4tbmVzcykKKyAg
ICAgKgorICAgICAqIEBwYXJhbSBsZW5ndGggUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBiaW5h
cnkgZGF0YS4gIChPdXQgcGFyYW10ZXIuKQorICAgICAqCisgICAgICogQHJldHVybiAgIEEgcG9p
bnRlciB0byB0aGUgYmluYXJ5IChjb21waWxlZCkgcnVsZSBkYXRhLiAgVGhlIHN0b3JhZ2UKKyAg
ICAgKiAgICAgICAgICAgYmVsb25ncyB0byB0aGUgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3Igb2Jq
ZWN0LCBub3QgdGhlCisgICAgICogICAgICAgICAgIGNhbGxlciwgYW5kIG11c3Qgbm90IGJlIG1v
ZGlmaWVkIG9yIGRlbGV0ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgICovCisgICAg
dmlydHVhbCBjb25zdCB1aW50OF90ICpnZXRCaW5hcnlSdWxlcyh1aW50MzJfdCAmbGVuZ3RoKTsK
KworICAgIC8qKgorICAgICAqICBTZXQgdGhlIHN1YmplY3QgdGV4dCBzdHJpbmcgdXBvbiB3aGlj
aCB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nCisgICAgICogIHdpdGhvdXQgY2hhbmdp
bmcgYW55IG90aGVyIGFzcGVjdCBvZiB0aGUgbWF0Y2hpbmcgc3RhdGUuCisgICAgICogIFRoZSBu
ZXcgYW5kIHByZXZpb3VzIHRleHQgc3RyaW5ncyBtdXN0IGhhdmUgdGhlIHNhbWUgY29udGVudC4K
KyAgICAgKgorICAgICAqICBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2UgaW4gZW52
aXJvbm1lbnRzIHdoZXJlIElDVSBpcyBvcGVyYXRpbmcgb24KKyAgICAgKiAgc3RyaW5ncyB0aGF0
IG1heSBtb3ZlIGFyb3VuZCBpbiBtZW1vcnkuICBJdCBwcm92aWRlcyBhIG1lY2hhbmlzbSBmb3Ig
bm90aWZ5aW5nCisgICAgICogIElDVSB0aGF0IHRoZSBzdHJpbmcgaGFzIGJlZW4gcmVsb2NhdGVk
LCBhbmQgcHJvdmlkaW5nIGEgbmV3IFVUZXh0IHRvIGFjY2VzcyB0aGUKKyAgICAgKiAgc3RyaW5n
IGluIGl0cyBuZXcgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiAgTm90ZSB0aGF0IHRoZSBicmVh
ayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbiBuZXZlciBjb3BpZXMgdGhlIHVuZGVybHlpbmcgdGV4
dAorICAgICAqICBvZiBhIHN0cmluZyBiZWluZyBwcm9jZXNzZWQsIGJ1dCBhbHdheXMgb3BlcmF0
ZXMgZGlyZWN0bHkgb24gdGhlIG9yaWdpbmFsIHRleHQKKyAgICAgKiAgcHJvdmlkZWQgYnkgdGhl
IHVzZXIuIFJlZnJlc2hpbmcgc2ltcGx5IGRyb3BzIHRoZSByZWZlcmVuY2VzIHRvIHRoZSBvbGQg
dGV4dAorICAgICAqICBhbmQgcmVwbGFjZXMgdGhlbSB3aXRoIHJlZmVyZW5jZXMgdG8gdGhlIG5l
dy4KKyAgICAgKgorICAgICAqICBDYXV0aW9uOiAgdGhpcyBmdW5jdGlvbiBpcyBub3JtYWxseSB1
c2VkIG9ubHkgYnkgdmVyeSBzcGVjaWFsaXplZCwKKyAgICAgKiAgc3lzdGVtLWxldmVsIGNvZGUu
ICBPbmUgZXhhbXBsZSB1c2UgY2FzZSBpcyB3aXRoIGdhcmJhZ2UgY29sbGVjdGlvbiB0aGF0IG1v
dmVzCisgICAgICogIHRoZSB0ZXh0IGluIG1lbW9yeS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBp
bnB1dCAgICAgIFRoZSBuZXcgKG1vdmVkKSB0ZXh0IHN0cmluZy4KKyAgICAgKiBAcGFyYW0gc3Rh
dHVzICAgICBSZWNlaXZlcyBlcnJvcnMgZGV0ZWN0ZWQgYnkgdGhpcyBmdW5jdGlvbi4KKyAgICAg
KiBAcmV0dXJuICAgICAgICAgICAqdGhpcworICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgNDkK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgJnJlZnJlc2hJbnB1
dFRleHQoVVRleHQgKmlucHV0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisKK3Byb3RlY3RlZDoK
KyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gaW1wbGVtZW50YXRpb24KKyAgICAvLz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisgICAgLyoqCisgICAgICogRHVtcHMgY2FjaGVzIGFuZCBwZXJmb3JtcyBvdGhl
ciBhY3Rpb25zIGFzc29jaWF0ZWQgd2l0aCBhIGNvbXBsZXRlIGNoYW5nZQorICAgICAqIGluIHRl
eHQgb3IgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAg
IHZpcnR1YWwgdm9pZCByZXNldCh2b2lkKTsKKworI2lmIDAKKyAgICAvKioKKyAgICAgICogUmV0
dXJuIHRydWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBmb3IgdGhpcyBjaGFyCisgICAgICAqIGlu
ZGljYXRlcyB0aGF0IGl0IGlzIGluIHRoZSBzZXQgb2YgZGljdGlvbmFyeSBsb29rdXAgY2hhcnMu
CisgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBkaWN0aW9uYXJ5
IGJhc2VkIGJyZWFrIGl0ZXJhdG9ycy4KKyAgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjYXRl
Z29yeSBsb29rdXAgZm9yIHRoaXMgY2hhcgorICAgICAgKiBpbmRpY2F0ZXMgdGhhdCBpdCBpcyBp
biB0aGUgc2V0IG9mIGRpY3Rpb25hcnkgbG9va3VwIGNoYXJzLgorICAgICAgKiBAaW50ZXJuYWwK
KyAgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBpc0RpY3Rpb25hcnlDaGFyKFVDaGFyMzIpOwor
CisgICAgLyoqCisgICAgICAqIEdldCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisg
ICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0QnJlYWtU
eXBlKCkgY29uc3Q7CisjZW5kaWYKKworICAgIC8qKgorICAgICAgKiBTZXQgdGhlIHR5cGUgb2Yg
dGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisgICAgdmly
dHVhbCB2b2lkIHNldEJyZWFrVHlwZShpbnQzMl90IHR5cGUpOworCisjaWZuZGVmIFVfSElERV9J
TlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgICogQ29tbW9uIGluaXRpYWxpemF0aW9uIGZ1bmN0
aW9uLCB1c2VkIGJ5IGNvbnN0cnVjdG9ycyBhbmQgYnVmZmVyQ2xvbmUuCisgICAgICAqIEBpbnRl
cm5hbAorICAgICAgKi8KKyAgICB2b2lkIGluaXQoKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVS
TkFMX0FQSSAqLworCitwcml2YXRlOgorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgYmFj
a3MgdGhlIGl0ZXJhdG9yIGJhY2sgdXAgdG8gYSAic2FmZSBwb3NpdGlvbiIgaW4gdGhlIHRleHQu
CisgICAgICogVGhpcyBpcyBhIHBvc2l0aW9uIHRoYXQgd2Uga25vdywgd2l0aG91dCBhbnkgY29u
dGV4dCwgbXVzdCBiZSBhIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIFRoZSB2YXJpb3VzIGNhbGxp
bmcgbWV0aG9kcyB0aGVuIGl0ZXJhdGUgZm9yd2FyZCBmcm9tIHRoaXMgc2FmZSBwb3NpdGlvbiB0
bworICAgICAqIHRoZSBhcHByb3ByaWF0ZSBwb3NpdGlvbiB0byByZXR1cm4uICAoRm9yIG1vcmUg
aW5mb3JtYXRpb24sIHNlZSB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBvZiBidWlsZEJhY2t3YXJk
c1N0YXRlVGFibGUoKSBpbiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkJ1aWxkZXIuKQorICAgICAq
IEBwYXJhbSBzdGF0ZXRhYmxlIHN0YXRlIHRhYmxlIHVzZWQgb2YgbW92aW5nIGJhY2t3YXJkcwor
ICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgaGFuZGxlUHJldmlvdXMoY29u
c3QgUkJCSVN0YXRlVGFibGUgKnN0YXRldGFibGUpOworCisgICAgLyoqCisgICAgICogVGhpcyBt
ZXRob2QgaXMgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV4dCgpIG1ldGhvZC4g
IEFsbCBpdGVyYXRpb24KKyAgICAgKiB2ZWN0b3JzIHRocm91Z2ggaGVyZS4gIFRoaXMgbWV0aG9k
IGluaXRpYWxpemVzIHRoZSBzdGF0ZSBtYWNoaW5lIHRvIHN0YXRlIDEKKyAgICAgKiBhbmQgYWR2
YW5jZXMgdGhyb3VnaCB0aGUgdGV4dCBjaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIHVudGlsIHdlIHJl
YWNoIHRoZSBlbmQKKyAgICAgKiBvZiB0aGUgdGV4dCBvciB0aGUgc3RhdGUgbWFjaGluZSB0cmFu
c2l0aW9ucyB0byBzdGF0ZSAwLiAgV2UgdXBkYXRlIG91ciByZXR1cm4KKyAgICAgKiB2YWx1ZSBl
dmVyeSB0aW1lIHRoZSBzdGF0ZSBtYWNoaW5lIHBhc3NlcyB0aHJvdWdoIGEgcG9zc2libGUgZW5k
IHN0YXRlLgorICAgICAqIEBwYXJhbSBzdGF0ZXRhYmxlIHN0YXRlIHRhYmxlIHVzZWQgb2YgbW92
aW5nIGZvcndhcmRzCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCBoYW5k
bGVOZXh0KGNvbnN0IFJCQklTdGF0ZVRhYmxlICpzdGF0ZXRhYmxlKTsKKworcHJvdGVjdGVkOgor
CisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHRo
ZSBmdW5jdGlvbiB0aGF0IGFjdHVhbGx5IGltcGxlbWVudHMgZGljdGlvbmFyeS1iYXNlZAorICAg
ICAqIGJyZWFraW5nLiAgQ292ZXJpbmcgYXQgbGVhc3QgdGhlIHJhbmdlIGZyb20gc3RhcnRQb3Mg
dG8gZW5kUG9zLAorICAgICAqIGl0IGNoZWNrcyBmb3IgZGljdGlvbmFyeSBjaGFyYWN0ZXJzLCBh
bmQgaWYgaXQgZmluZHMgdGhlbSBkZXRlcm1pbmVzCisgICAgICogdGhlIGFwcHJvcHJpYXRlIG9i
amVjdCB0byBkZWFsIHdpdGggdGhlbS4gSXQgbWF5IGNhY2hlIGZvdW5kIGJyZWFrcyBpbgorICAg
ICAqIGZDYWNoZWRCcmVha1Bvc2l0aW9ucyBhcyBpdCBnb2VzLiBJdCBtYXkgd2VsbCBhbHNvIGxv
b2sgYXQgdGV4dCBvdXRzaWRlCisgICAgICogdGhlIHJhbmdlIHN0YXJ0UG9zIHRvIGVuZFBvcy4K
KyAgICAgKiBJZiBnb2luZyBmb3J3YXJkLCBlbmRQb3MgaXMgdGhlIG5vcm1hbCBVbmljb2RlIGJy
ZWFrIHJlc3VsdCwgYW5kCisgICAgICogaWYgZ29pbmQgaW4gcmV2ZXJzZSwgc3RhcnRQb3MgaXMg
dGhlIG5vcm1hbCBVbmljb2RlIGJyZWFrIHJlc3VsdAorICAgICAqIEBwYXJhbSBzdGFydFBvcyAg
VGhlIHN0YXJ0IHBvc2l0aW9uIG9mIGEgcmFuZ2Ugb2YgdGV4dAorICAgICAqIEBwYXJhbSBlbmRQ
b3MgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiBhIHJhbmdlIG9mIHRleHQKKyAgICAgKiBAcGFyYW0g
cmV2ZXJzZSAgIFRoZSBjYWxsIGlzIGZvciB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24KKyAgICAgKiBA
aW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGNoZWNrRGljdGlvbmFyeShpbnQzMl90IHN0
YXJ0UG9zLCBpbnQzMl90IGVuZFBvcywgVUJvb2wgcmV2ZXJzZSk7CisjZW5kaWYgIC8qIFVfSElE
RV9JTlRFUk5BTF9BUEkgKi8KKworcHJpdmF0ZToKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVu
Y3Rpb24gcmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgTGFuZ3VhZ2VCcmVha0VuZ2luZSBmb3IgYQor
ICAgICAqIGdpdmVuIGNoYXJhY3RlciBjLgorICAgICAqIEBwYXJhbSBjICAgICAgICAgQSBjaGFy
YWN0ZXIgaW4gdGhlIGRpY3Rpb25hcnkgc2V0CisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgY29uc3QgTGFuZ3VhZ2VCcmVha0VuZ2luZSAqZ2V0TGFuZ3VhZ2VCcmVha0VuZ2luZShVQ2hh
cjMyIGMpOworCisgICAgLyoqCisgICAgICogIEBpbnRlcm5hbAorICAgICAqLworICAgIHZvaWQg
bWFrZVJ1bGVTdGF0dXNWYWxpZCgpOworCit9OworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
Ly8KKy8vICAgSW5saW5lIEZ1bmN0aW9ucyBEZWZpbml0aW9ucyAuLi4KKy8vCisvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCitpbmxpbmUgVUJvb2wgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcjo6b3Bl
cmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdCB7CisgICAgcmV0dXJuICFv
cGVyYXRvcj09KHRoYXQpOworfQorCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmIC8qICNpZiAh
VUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gKi8KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL3NjaHJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Nj
aHJpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBiNWUyMjUwM2NmZjI2MWQyY2QyNDBmZjEyMDA3ZjkzN2Y3
ODNiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0ZXIu
aApAQCAtMCwwICsxLDE4NyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENv
cHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisq
ICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBzY2hyaXRlci5oCisqCisqIE1vZGlmaWNhdGlv
biBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisq
ICAwNS8wNS85OSAgICAgc3RlcGhlbiAgICAgQ2xlYW5lZCB1cC4KKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorKi8KKworI2lmbmRlZiBTQ0hSSVRFUl9ICisjZGVmaW5lIFNDSFJJVEVSX0gKKworI2lu
Y2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgor
I2luY2x1ZGUgInVuaWNvZGUvdWNocml0ZXIuaCIKKworLyoqCisgKiBcZmlsZSAKKyAqIFxicmll
ZiBDKysgQVBJOiBTdHJpbmcgQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNF
X0JFR0lOCisvKioKKyAqIEEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ2hhcmFjdGVySXRlcmF0b3Ig
dGhhdCBpdGVyYXRlcyBvdmVyIHRoZQorICogY2hhcmFjdGVycyAoY29kZSB1bml0cyBvciBjb2Rl
IHBvaW50cykgaW4gYSBVbmljb2RlU3RyaW5nLgorICogSXQncyBwb3NzaWJsZSBub3Qgb25seSB0
byBjcmVhdGUgYW4KKyAqIGl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciBhbiBlbnRpcmUgVW5p
Y29kZVN0cmluZywgYnV0IGFsc28gdG8KKyAqIGNyZWF0ZSBvbmUgdGhhdCBpdGVyYXRlcyBvdmVy
IG9ubHkgYSBzdWJyYW5nZSBvZiBhIFVuaWNvZGVTdHJpbmcKKyAqIChpdGVyYXRvcnMgb3ZlciBk
aWZmZXJlbnQgc3VicmFuZ2VzIG9mIHRoZSBzYW1lIFVuaWNvZGVTdHJpbmcgZG9uJ3QKKyAqIGNv
bXBhcmUgZXF1YWwpLgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQHNlZSBGb3J3YXJk
Q2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1P
Tl9BUEkgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgVUNoYXJDaGFyYWN0ZXJJdGVy
YXRvciB7CitwdWJsaWM6CisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUg
VW5pY29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBVbmljb2Rl
U3RyaW5nIG9iamVjdCBpcyBjb3BpZWQuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgdGhl
IHdob2xlIHN0cmluZywgYW5kIHRoZSBzdGFydGluZyBwb3NpdGlvbiBpcyAwLgorICAgKiBAcGFy
YW0gdGV4dFN0ciBUaGUgdW5pY29kZSBzdHJpbmcgdXNlZCB0byBjcmVhdGUgYW4gaXRlcmF0b3IK
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihj
b25zdCBVbmljb2RlU3RyaW5nJiB0ZXh0U3RyKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0
ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJyZWQgdG8gYnkgInRleHRTdHIiLgor
ICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIHRoZSB3aG9sZSBzdHJpbmcsIGFuZCB0aGUgc3Rh
cnRpbmcKKyAgICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJ0ZXh0UG9zIi4gIElmICJ0ZXh0
UG9zIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhh
dmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0U3RyIFRo
ZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSBhbiBpdGVyYXRvcgorICAgKiBAcGFyYW0g
dGV4dFBvcyBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVuaWNv
ZGVTdHJpbmcmICAgIHRleHRTdHIsCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAgICAg
IHRleHRQb3MpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVW5p
Y29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBVbmljb2RlU3Ry
aW5nIG9iamVjdCBpcyBjb3BpZWQuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgYmVnaW5zIHdp
dGggdGhlIGNvZGUgdW5pdCBzcGVjaWZpZWQgYnkKKyAgICogInRleHRCZWdpbiIgYW5kIGVuZHMg
d2l0aCB0aGUgY29kZSB1bml0IEJFRk9SRSB0aGUgY29kZSB1bml0IHNwZWNmaWVkCisgICAqIGJ5
ICJ0ZXh0RW5kIi4gIFRoZSBzdGFydGluZyBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInRleHRQ
b3MiLiAgSWYKKyAgICogInRleHRCZWdpbiIgYW5kICJ0ZXh0RW5kIiBkb24ndCBmb3JtIGEgdmFs
aWQgcmFuZ2Ugb24gInRleHQiIChpLmUuLAorICAgKiB0ZXh0QmVnaW4gPj0gdGV4dEVuZCBvciBl
aXRoZXIgaXMgbmVnYXRpdmUgb3IgZ3JlYXRlciB0aGFuIHRleHQuc2l6ZSgpKSwKKyAgICogb3Ig
InRleHRQb3MiIGlzIG91dHNpZGUgdGhlIHJhbmdlIGRlZmluZWQgYnkgInRleHRCZWdpbiIgYW5k
ICJ0ZXh0RW5kIiwKKyAgICogdGhlIGJlaGF2aW9yIG9mIHRoaXMgaXRlcmF0b3IgaXMgdW5kZWZp
bmVkLgorICAgKiBAcGFyYW0gdGV4dFN0ciAgICBUaGUgdW5pY29kZSBzdHJpbmcgdXNlZCB0byBj
cmVhdGUgdGhlIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yCisgICAqIEBwYXJhbSB0ZXh0QmVnaW4g
IFRoZSBiZWdpbiBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0
ZXh0RW5kICAgIFRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBA
cGFyYW0gdGV4dFBvcyAgICBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNv
bnN0IFVuaWNvZGVTdHJpbmcmICAgIHRleHRTdHIsCisgICAgICAgICAgICAgIGludDMyX3QgICAg
ICAgICAgICAgIHRleHRCZWdpbiwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAg
dGV4dEVuZCwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dFBvcyk7CisK
KyAgLyoqCisgICAqIENvcHkgY29uc3RydWN0b3IuICBUaGUgbmV3IGl0ZXJhdG9yIGl0ZXJhdGVz
IG92ZXIgdGhlIHNhbWUgcmFuZ2UKKyAgICogb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0Iiwg
YW5kIGl0cyBpbml0aWFsIHBvc2l0aW9uIGlzIHRoZQorICAgKiBzYW1lIGFzICJ0aGF0IidzIGN1
cnJlbnQgcG9zaXRpb24uCisgICAqIFRoZSBVbmljb2RlU3RyaW5nIG9iamVjdCBpbiAidGhhdCIg
aXMgY29waWVkLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Ig
dG8gYmUgY29waWVkCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFj
dGVySXRlcmF0b3IoY29uc3QgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImICB0aGF0KTsKKworICAv
KioKKyAgICogRGVzdHJ1Y3Rvci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIH5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8qKgorICAgKiBBc3NpZ25tZW50
IG9wZXJhdG9yLiAgKnRoaXMgaXMgYWx0ZXJlZCB0byBpdGVyYXRlIG92ZXIgdGhlIHNhbWUKKyAg
ICogcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIHJlZmVycyB0byB0aGUg
c2FtZQorICAgKiBjaGFyYWN0ZXIgd2l0aGluIHRoYXQgc3RyaW5nIGFzICJ0aGF0IiBkb2VzLgor
ICAgKiBAcGFyYW0gdGhhdCBUaGUgb2JqZWN0IHRvIGJlIGNvcGllZC4KKyAgICogQHJldHVybiB0
aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
U3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImCisgIG9wZXJhdG9yPShjb25zdCBTdHJpbmdDaGFyYWN0
ZXJJdGVyYXRvciYgICAgdGhhdCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUg
aXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBz
dHJpbmcgYW5kIGFyZSBwb2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBwYXJh
bSB0aGF0IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVx
dWFsaXR5CisgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0
aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGluZyBh
dCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCBVQm9vbCAgICAgICAgICBvcGVyYXRvcj09KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVy
YXRvciYgdGhhdCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgYSBuZXcgU3RyaW5nQ2hh
cmFjdGVySXRlcmF0b3IgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciBpbiB0
aGUgc2FtZSByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgdGhpcyBvbmUuICBUaGUKKyAgICog
Y2FsbGVyIG11c3QgZGVsZXRlIHRoZSBuZXcgaXRlcmF0b3IuCisgICAqIEByZXR1cm4gdGhlIG5l
d2x5IGNsb25lZCBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVh
bCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgcHJvdmlkZWQgc3RyaW5nLgorICAg
KiBAcGFyYW0gbmV3VGV4dCBUaGUgc3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVW5pY29kZVN0cmluZyYg
bmV3VGV4dCk7CisKKyAgLyoqCisgICAqIENvcGllcyB0aGUgVW5pY29kZVN0cmluZyB1bmRlciBp
dGVyYXRpb24gaW50byB0aGUgVW5pY29kZVN0cmluZworICAgKiByZWZlcnJlZCB0byBieSAicmVz
dWx0Ii4gIEV2ZW4gaWYgdGhpcyBpdGVyYXRvciBpdGVyYXRlcyBhY3Jvc3MKKyAgICogb25seSBh
IHBhcnQgb2YgdGhpcyBzdHJpbmcsIHRoZSB3aG9sZSBzdHJpbmcgaXMgY29waWVkLgorICAgKiBA
cGFyYW0gcmVzdWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24u
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB2b2lkICAgICAgICAgICAg
Z2V0VGV4dChVbmljb2RlU3RyaW5nJiByZXN1bHQpOworCisgIC8qKgorICAgKiBSZXR1cm4gYSBj
bGFzcyBJRCBmb3IgdGhpcyBvYmplY3QgKG5vdCByZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJu
IGEgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIHZpcnR1YWwgVUNsYXNzSUQgICAgICAgICBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25z
dDsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MgKG5vdCBy
ZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MKKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBzdGF0aWMgVUNsYXNzSUQgICBVX0VYUE9SVDIg
Z2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworcHJvdGVjdGVkOgorICAvKioKKyAgICogRGVmYXVs
dCBjb25zdHJ1Y3RvciwgaXRlcmF0aW9uIG92ZXIgZW1wdHkgc3RyaW5nLgorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgLyoqCisg
ICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgcHJvdmlkZWQgc3RyaW5n
LgorICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUgc3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAg
ICogQHBhcmFtIG5ld1RleHRMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgU3RyaW5nCisgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgKi8KKyAgdm9pZCBzZXRUZXh0KGNvbnN0IFVDaGFyKiBuZXdUZXh0
LCBpbnQzMl90IG5ld1RleHRMZW5ndGgpOworCisgIC8qKgorICAgKiBDb3B5IG9mIHRoZSBpdGVy
YXRlZCBzdHJpbmcgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVuaWNv
ZGVTdHJpbmcgICAgICAgICAgICB0ZXh0OworCit9OworCitVX05BTUVTUEFDRV9FTkQKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1hcC5oIGIvU291cmNl
L1dURi9pY3UvdW5pY29kZS91Y2FzZW1hcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzN2UxNjU4ODY5N2YxYTkz
MDE5MWVlM2RmODE2YzYzYjdiZDM4YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2lj
dS91bmljb2RlL3VjYXNlbWFwLmgKQEAgLTAsMCArMSw0MjMgQEAKKy8qCisqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTIsIEludGVybmF0aW9uYWwg
QnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1
Y2FzZW1hcC5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChu
b3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwNW1heTA2
CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyoKKyogICBDYXNlIG1hcHBpbmcg
c2VydmljZSBvYmplY3QgYW5kIGZ1bmN0aW9ucyB1c2luZyBpdC4KKyovCisKKyNpZm5kZWYgX19V
Q0FTRU1BUF9IX18KKyNkZWZpbmUgX19VQ0FTRU1BUF9IX18KKworI2luY2x1ZGUgInVuaWNvZGUv
dXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91c3RyaW5nLmgiCisjaW5jbHVkZSAidW5pY29k
ZS9sb2NhbHBvaW50ZXIuaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMgQVBJOiBVbmlj
b2RlIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMgdXNpbmcgYSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVj
dC4KKyAqCisgKiBUaGUgc2VydmljZSBvYmplY3QgdGFrZXMgY2FyZSBvZiBtZW1vcnkgYWxsb2Nh
dGlvbnMsIGRhdGEgbG9hZGluZywgYW5kIHNldHVwCisgKiBmb3IgdGhlIGF0dHJpYnV0ZXMsIGFz
IHVzdWFsLgorICoKKyAqIEN1cnJlbnRseSwgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgaGVy
ZSBkb2VzIG5vdCBvdmVybGFwIHdpdGggdWNoYXIuaAorICogYW5kIHVzdHJpbmcuaCwgZXhjZXB0
IGZvciB1Y2FzZW1hcF90b1RpdGxlKCkuCisgKgorICogdWNhc2VtYXBfdXRmOFhZWigpIGZ1bmN0
aW9ucyBvcGVyYXRlIGRpcmVjdGx5IG9uIFVURi04IHN0cmluZ3MuCisgKi8KKworLyoqCisgKiBV
Q2FzZU1hcCBpcyBhbiBvcGFxdWUgc2VydmljZSBvYmplY3QgZm9yIG5ld2VyIElDVSBjYXNlIG1h
cHBpbmcgZnVuY3Rpb25zLgorICogT2xkZXIgZnVuY3Rpb25zIGRpZCBub3QgdXNlIGEgc2Vydmlj
ZSBvYmplY3QuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworc3RydWN0IFVDYXNlTWFwOwordHlw
ZWRlZiBzdHJ1Y3QgVUNhc2VNYXAgVUNhc2VNYXA7IC8qKjwgQyB0eXBlZGVmIGZvciBzdHJ1Y3Qg
VUNhc2VNYXAuIEBzdGFibGUgSUNVIDMuNCAqLworCisvKioKKyAqIE9wZW4gYSBVQ2FzZU1hcCBz
ZXJ2aWNlIG9iamVjdCBmb3IgYSBsb2NhbGUgYW5kIGEgc2V0IG9mIG9wdGlvbnMuCisgKiBUaGUg
bG9jYWxlIElEIGFuZCBvcHRpb25zIGFyZSBwcmVwcm9jZXNzZWQgc28gdGhhdCBmdW5jdGlvbnMg
dXNpbmcgdGhlCisgKiBzZXJ2aWNlIG9iamVjdCBuZWVkIG5vdCBwcm9jZXNzIHRoZW0gaW4gZWFj
aCBjYWxsLgorICoKKyAqIEBwYXJhbSBsb2NhbGUgSUNVIGxvY2FsZSBJRCwgdXNlZCBmb3IgbGFu
Z3VhZ2UtZGVwZW5kZW50CisgKiAgICAgICAgICAgICAgIHVwcGVyLS9sb3dlci0vdGl0bGUtY2Fz
aW5nIGFjY29yZGluZyB0byB0aGUgVW5pY29kZSBzdGFuZGFyZC4KKyAqICAgICAgICAgICAgICAg
VXN1YWwgc2VtYW50aWNzOiAiIj1yb290LCBOVUxMPWRlZmF1bHQgbG9jYWxlLCBldGMuCisgKiBA
cGFyYW0gb3B0aW9ucyBPcHRpb25zIGJpdCBzZXQsIHVzZWQgZm9yIGNhc2UgZm9sZGluZyBhbmQg
c3RyaW5nIGNvbXBhcmlzb25zLgorICogICAgICAgICAgICAgICAgU2FtZSBmbGFncyBhcyBmb3Ig
dV9mb2xkQ2FzZSgpLCB1X3N0ckZvbGRDYXNlKCksCisgKiAgICAgICAgICAgICAgICB1X3N0ckNh
c2VDb21wYXJlKCksIGV0Yy4KKyAqICAgICAgICAgICAgICAgIFVzZSAwIG9yIFVfRk9MRF9DQVNF
X0RFRkFVTFQgZm9yIGRlZmF1bHQgYmVoYXZpb3IuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0
IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAg
ICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVu
Y3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gUG9pbnRlciB0byBhIFVDYXNlTWFwIHNlcnZpY2Ugb2Jq
ZWN0LCBpZiBzdWNjZXNzZnVsLgorICoKKyAqIEBzZWUgVV9GT0xEX0NBU0VfREVGQVVMVAorICog
QHNlZSBVX0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICogQHNlZSBVX1RJVExFQ0FTRV9O
T19MT1dFUkNBU0UKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVAorICog
QHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIFVDYXNlTWFwICogVV9FWFBPUlQyCit1Y2Fz
ZW1hcF9vcGVuKGNvbnN0IGNoYXIgKmxvY2FsZSwgdWludDMyX3Qgb3B0aW9ucywgVUVycm9yQ29k
ZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogQ2xvc2UgYSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVj
dC4KKyAqIEBwYXJhbSBjc20gT2JqZWN0IHRvIGJlIGNsb3NlZC4KKyAqIEBzdGFibGUgSUNVIDMu
NAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfY2xvc2UoVUNhc2VNYXAg
KmNzbSk7CisKKyNpZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgor
CisvKioKKyAqIFxjbGFzcyBMb2NhbFVDYXNlTWFwUG9pbnRlcgorICogIlNtYXJ0IHBvaW50ZXIi
IGNsYXNzLCBjbG9zZXMgYSBVQ2FzZU1hcCB2aWEgdWNhc2VtYXBfY2xvc2UoKS4KKyAqIEZvciBt
b3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKgorICog
QHNlZSBMb2NhbFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0YWJsZSBJ
Q1UgNC40CisgKi8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVDYXNlTWFwUG9p
bnRlciwgVUNhc2VNYXAsIHVjYXNlbWFwX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5ECisKKyNl
bmRpZgorCisvKioKKyAqIEdldCB0aGUgbG9jYWxlIElEIHRoYXQgaXMgdXNlZCBmb3IgbGFuZ3Vh
Z2UtZGVwZW5kZW50IGNhc2UgbWFwcGluZ3MuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZp
Y2Ugb2JqZWN0LgorICogQHJldHVybiBsb2NhbGUgSUQKKyAqIEBzdGFibGUgSUNVIDMuNAorICov
CitVX1NUQUJMRSBjb25zdCBjaGFyICogVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRMb2NhbGUoY29u
c3QgVUNhc2VNYXAgKmNzbSk7CisKKy8qKgorICogR2V0IHRoZSBvcHRpb25zIGJpdCBzZXQgdGhh
dCBpcyB1c2VkIGZvciBjYXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29ucy4KKyAqIEBw
YXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIG9wdGlvbnMgYml0
IHNldAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHVpbnQzMl90IFVfRVhQT1JU
MgordWNhc2VtYXBfZ2V0T3B0aW9ucyhjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoqCisgKiBT
ZXQgdGhlIGxvY2FsZSBJRCB0aGF0IGlzIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudCBjYXNl
IG1hcHBpbmdzLgorICoKKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisg
KiBAcGFyYW0gbG9jYWxlIExvY2FsZSBJRCwgc2VlIHVjYXNlbWFwX29wZW4oKS4KKyAqIEBwYXJh
bSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFs
dWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1
cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfb3Blbgor
ICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1h
cF9zZXRMb2NhbGUoVUNhc2VNYXAgKmNzbSwgY29uc3QgY2hhciAqbG9jYWxlLCBVRXJyb3JDb2Rl
ICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBTZXQgdGhlIG9wdGlvbnMgYml0IHNldCB0aGF0IGlz
IHVzZWQgZm9yIGNhc2UgZm9sZGluZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICoKKyAqIEBw
YXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gb3B0aW9ucyBPcHRp
b25zIGJpdCBzZXQsIHNlZSB1Y2FzZW1hcF9vcGVuKCkuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBN
dXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAg
ICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUg
ZnVuY3Rpb24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX29wZW4KKyAqIEBzdGFibGUgSUNV
IDMuNAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0T3B0aW9ucyhV
Q2FzZU1hcCAqY3NtLCB1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsK
KworLyoqCisgKiBEbyBub3QgbG93ZXJjYXNlIG5vbi1pbml0aWFsIHBhcnRzIG9mIHdvcmRzIHdo
ZW4gdGl0bGVjYXNpbmcuCisgKiBPcHRpb24gYml0IGZvciB0aXRsZWNhc2luZyBBUElzIHRoYXQg
dGFrZSBhbiBvcHRpb25zIGJpdCBzZXQuCisgKgorICogQnkgZGVmYXVsdCwgdGl0bGVjYXNpbmcg
d2lsbCB0aXRsZWNhc2UgdGhlIGZpcnN0IGNhc2VkIGNoYXJhY3RlcgorICogb2YgYSB3b3JkIGFu
ZCBsb3dlcmNhc2UgYWxsIG90aGVyIGNoYXJhY3RlcnMuCisgKiBXaXRoIHRoaXMgb3B0aW9uLCB0
aGUgb3RoZXIgY2hhcmFjdGVycyB3aWxsIG5vdCBiZSBtb2RpZmllZC4KKyAqCisgKiBAc2VlIHVj
YXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgdWNhc2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2Fz
ZW1hcF91dGY4VG9UaXRsZQorICogQHNlZSBVbmljb2RlU3RyaW5nOjp0b1RpdGxlCisgKiBAc3Rh
YmxlIElDVSAzLjgKKyAqLworI2RlZmluZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNBU0UgMHgxMDAK
KworLyoqCisgKiBEbyBub3QgYWRqdXN0IHRoZSB0aXRsZWNhc2luZyBpbmRleGVzIGZyb20gQnJl
YWtJdGVyYXRvcjo6bmV4dCgpIGluZGV4ZXM7CisgKiB0aXRsZWNhc2UgZXhhY3RseSB0aGUgY2hh
cmFjdGVycyBhdCBicmVha3MgZnJvbSB0aGUgaXRlcmF0b3IuCisgKiBPcHRpb24gYml0IGZvciB0
aXRsZWNhc2luZyBBUElzIHRoYXQgdGFrZSBhbiBvcHRpb25zIGJpdCBzZXQuCisgKgorICogQnkg
ZGVmYXVsdCwgdGl0bGVjYXNpbmcgd2lsbCB0YWtlIGVhY2ggYnJlYWsgaXRlcmF0b3IgaW5kZXgs
CisgKiBhZGp1c3QgaXQgYnkgbG9va2luZyBmb3IgdGhlIG5leHQgY2FzZWQgY2hhcmFjdGVyLCBh
bmQgdGl0bGVjYXNlIHRoYXQgb25lLgorICogT3RoZXIgY2hhcmFjdGVycyBhcmUgbG93ZXJjYXNl
ZC4KKyAqCisgKiBUaGlzIGZvbGxvd3MgVW5pY29kZSA0ICYgNSBzZWN0aW9uIDMuMTMgRGVmYXVs
dCBDYXNlIE9wZXJhdGlvbnM6CisgKgorICogUjMgIHRvVGl0bGVjYXNlKFgpOiBGaW5kIHRoZSB3
b3JkIGJvdW5kYXJpZXMgYmFzZWQgb24gVW5pY29kZSBTdGFuZGFyZCBBbm5leAorICogIzI5LCAi
VGV4dCBCb3VuZGFyaWVzLiIgQmV0d2VlbiBlYWNoIHBhaXIgb2Ygd29yZCBib3VuZGFyaWVzLCBm
aW5kIHRoZSBmaXJzdAorICogY2FzZWQgY2hhcmFjdGVyIEYuIElmIEYgZXhpc3RzLCBtYXAgRiB0
byBkZWZhdWx0X3RpdGxlKEYpOyB0aGVuIG1hcCBlYWNoCisgKiBzdWJzZXF1ZW50IGNoYXJhY3Rl
ciBDIHRvIGRlZmF1bHRfbG93ZXIoQykuCisgKgorICogQHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25z
CisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUK
KyAqIEBzZWUgVW5pY29kZVN0cmluZzo6dG9UaXRsZQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19M
T1dFUkNBU0UKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCisjZGVmaW5lIFVfVElUTEVDQVNFX05P
X0JSRUFLX0FESlVTVE1FTlQgMHgyMDAKKworI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElP
TgorCisvKioKKyAqIEdldCB0aGUgYnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2VkIGZvciB0aXRs
ZWNhc2luZy4KKyAqIERvIG5vdCBtb2RpZnkgdGhlIHJldHVybmVkIGJyZWFrIGl0ZXJhdG9yLgor
ICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1cm4gdGl0bGVj
YXNpbmcgYnJlYWsgaXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSBj
b25zdCBVQnJlYWtJdGVyYXRvciAqIFVfRVhQT1JUMgordWNhc2VtYXBfZ2V0QnJlYWtJdGVyYXRv
cihjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoqCisgKiBTZXQgdGhlIGJyZWFrIGl0ZXJhdG9y
IHRoYXQgaXMgdXNlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBUaGUgVUNhc2VNYXAgc2VydmljZSBv
YmplY3QgcmVsZWFzZXMgYSBwcmV2aW91c2x5IHNldCBicmVhayBpdGVyYXRvcgorICogYW5kICJh
ZG9wdHMiIHRoaXMgbmV3IG9uZSwgdGFraW5nIG93bmVyc2hpcCBvZiBpdC4KKyAqIEl0IHdpbGwg
YmUgcmVsZWFzZWQgaW4gYSBzdWJzZXF1ZW50IGNhbGwgdG8gdWNhc2VtYXBfc2V0QnJlYWtJdGVy
YXRvcigpCisgKiBvciB1Y2FzZW1hcF9jbG9zZSgpLgorICoKKyAqIEJyZWFrIGl0ZXJhdG9yIG9w
ZXJhdGlvbnMgYXJlIG5vdCB0aHJlYWQtc2FmZS4gVGhlcmVmb3JlLCB0aXRsZWNhc2luZworICog
ZnVuY3Rpb25zIHVzZSBub24tY29uc3QgVUNhc2VNYXAgb2JqZWN0cy4gSXQgaXMgbm90IHBvc3Np
YmxlIHRvIHRpdGxlY2FzZQorICogc3RyaW5ncyBjb25jdXJyZW50bHkgdXNpbmcgdGhlIHNhbWUg
VUNhc2VNYXAuCisgKgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAq
IEBwYXJhbSBpdGVyVG9BZG9wdCBCcmVhayBpdGVyYXRvciB0byBiZSBhZG9wdGVkIGZvciB0aXRs
ZWNhc2luZy4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRv
IGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5v
dCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAqIEBz
ZWUgdWNhc2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICogQHN0
YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9zZXRC
cmVha0l0ZXJhdG9yKFVDYXNlTWFwICpjc20sIFVCcmVha0l0ZXJhdG9yICppdGVyVG9BZG9wdCwg
VUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogVGl0bGVjYXNlIGEgVVRGLTE2IHN0
cmluZy4gVGhpcyBmdW5jdGlvbiBpcyBhbG1vc3QgYSBkdXBsaWNhdGUgb2YgdV9zdHJUb1RpdGxl
KCksCisgKiBleGNlcHQgdGhhdCBpdCB0YWtlcyB1Y2FzZW1hcF9zZXRPcHRpb25zKCkgaW50byBh
Y2NvdW50IGFuZCBoYXMgcGVyZm9ybWFuY2UKKyAqIGFkdmFudGFnZXMgZnJvbSBiZWluZyBhYmxl
IHRvIHVzZSBhIFVDYXNlTWFwIG9iamVjdCBmb3IgbXVsdGlwbGUgY2FzZSBtYXBwaW5nCisgKiBv
cGVyYXRpb25zLCBzYXZpbmcgc2V0dXAgdGltZS4KKyAqCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRl
cGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaXRsZWNhc2luZyB1c2VzIGEgYnJl
YWsgaXRlcmF0b3IgdG8gZmluZCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiB3b3JkcworICogdGhh
dCBhcmUgdG8gYmUgdGl0bGVjYXNlZC4gSXQgdGl0bGVjYXNlcyB0aG9zZSBjaGFyYWN0ZXJzIGFu
ZCBsb3dlcmNhc2VzCisgKiBhbGwgb3RoZXJzLiAoVGhpcyBjYW4gYmUgbW9kaWZpZWQgd2l0aCB1
Y2FzZW1hcF9zZXRPcHRpb25zKCkuKQorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gdGFrZXMg
YSBub24tY29uc3QgVUNhc2VNYXAgcG9pbnRlciBiZWNhdXNlIGl0IHdpbGwKKyAqIG9wZW4gYSBk
ZWZhdWx0IGJyZWFrIGl0ZXJhdG9yIGlmIG5vIGJyZWFrIGl0ZXJhdG9yIHdhcyBzZXQgeWV0LAor
ICogYW5kIGVmZmVjdGl2ZWx5IGNhbGwgdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigpOworICog
YWxzbyBiZWNhdXNlIHRoZSBicmVhayBpdGVyYXRvciBpcyBzdGF0ZWZ1bCBhbmQgd2lsbCBiZSBt
b2RpZmllZCBkdXJpbmcKKyAqIHRoZSBpdGVyYXRpb24uCisgKgorICogVGhlIHRpdGxlY2FzZSBi
cmVhayBpdGVyYXRvciBjYW4gYmUgcHJvdmlkZWQgdG8gY3VzdG9taXplIGZvciBhcmJpdHJhcnkK
KyAqIHN0eWxlcywgdXNpbmcgcnVsZXMgYW5kIGRpY3Rpb25hcmllcyBiZXlvbmQgdGhlIHN0YW5k
YXJkIGl0ZXJhdG9ycy4KKyAqIFRoZSBzdGFuZGFyZCB0aXRsZWNhc2UgaXRlcmF0b3IgZm9yIHRo
ZSByb290IGxvY2FsZSBpbXBsZW1lbnRzIHRoZQorICogYWxnb3JpdGhtIG9mIFVuaWNvZGUgVFIg
MjEuCisgKgorICogVGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHNldFVUZXh0KCksIGZpcnN0
KCksIG5leHQoKSBhbmQgY2xvc2UoKSBtZXRob2RzIG9mIHRoZQorICogcHJvdmlkZWQgYnJlYWsg
aXRlcmF0b3IuCisgKgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhh
biB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9u
IGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VN
YXAgc2VydmljZSBvYmplY3QuIFRoaXMgcG9pbnRlciBpcyBub24tY29uc3QhCisgKiAgICAgICAg
ICAgICAgICAgIFNlZSB0aGUgbm90ZSBhYm92ZSBmb3IgZGV0YWlscy4KKyAqIEBwYXJhbSBkZXN0
ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUg
TlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJn
ZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQg
aW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0
aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAg
ICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0
dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0
IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBU
aGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRo
ZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVk
LgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJy
b3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNh
dGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxl
bmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2Yg
YSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBn
cmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1RpdGxlCisgKiBA
c3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFw
X3RvVGl0bGUoVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgVUNoYXIgKmRlc3QsIGlu
dDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqc3JjLCBp
bnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29k
ZSk7CisKKyNlbmRpZgorCisvKioKKyAqIExvd2VyY2FzZSB0aGUgY2hhcmFjdGVycyBpbiBhIFVU
Ri04IHN0cmluZy4KKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNl
bnNpdGl2ZS4KKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhl
IG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZm
ZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNl
cnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3Vs
dCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAg
ICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAg
ICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFy
YW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcyku
IElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBh
bmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0
CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBz
dHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFy
YW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRo
ZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0
IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAg
ICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5j
dGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBp
ZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAg
ICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisg
KgorICogQHNlZSB1X3N0clRvTG93ZXIKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJM
RSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOFRvTG93ZXIoY29uc3QgVUNhc2VNYXAg
KmNzbSwKKyAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFj
aXR5LAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xl
bmd0aCwKKyAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisv
KioKKyAqIFVwcGVyY2FzZSB0aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmluZy4KKyAqIENh
c2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRoZSBy
ZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhl
IHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3Zlcmxh
cC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICog
QHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1
bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVm
ZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlz
IHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRo
ZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4K
KyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdp
bGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAg
ICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0g
c3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBs
ZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVM
LXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRl
ciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0
IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJl
dHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3Ig
aW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBp
dCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0clRv
VXBwZXIKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JU
MgordWNhc2VtYXBfdXRmOFRvVXBwZXIoY29uc3QgVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAg
ICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAg
ICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjaWYgIVVDT05GSUdfTk9fQlJF
QUtfSVRFUkFUSU9OCisKKy8qKgorICogVGl0bGVjYXNlIGEgVVRGLTggc3RyaW5nLgorICogQ2Fz
aW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGl0bGVj
YXNpbmcgdXNlcyBhIGJyZWFrIGl0ZXJhdG9yIHRvIGZpbmQgdGhlIGZpcnN0IGNoYXJhY3RlcnMg
b2Ygd29yZHMKKyAqIHRoYXQgYXJlIHRvIGJlIHRpdGxlY2FzZWQuIEl0IHRpdGxlY2FzZXMgdGhv
c2UgY2hhcmFjdGVycyBhbmQgbG93ZXJjYXNlcworICogYWxsIG90aGVycy4gKFRoaXMgY2FuIGJl
IG1vZGlmaWVkIHdpdGggdWNhc2VtYXBfc2V0T3B0aW9ucygpLikKKyAqCisgKiBOb3RlOiBUaGlz
IGZ1bmN0aW9uIHRha2VzIGEgbm9uLWNvbnN0IFVDYXNlTWFwIHBvaW50ZXIgYmVjYXVzZSBpdCB3
aWxsCisgKiBvcGVuIGEgZGVmYXVsdCBicmVhayBpdGVyYXRvciBpZiBubyBicmVhayBpdGVyYXRv
ciB3YXMgc2V0IHlldCwKKyAqIGFuZCBlZmZlY3RpdmVseSBjYWxsIHVjYXNlbWFwX3NldEJyZWFr
SXRlcmF0b3IoKTsKKyAqIGFsc28gYmVjYXVzZSB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgc3RhdGVm
dWwgYW5kIHdpbGwgYmUgbW9kaWZpZWQgZHVyaW5nCisgKiB0aGUgaXRlcmF0aW9uLgorICoKKyAq
IFRoZSB0aXRsZWNhc2UgYnJlYWsgaXRlcmF0b3IgY2FuIGJlIHByb3ZpZGVkIHRvIGN1c3RvbWl6
ZSBmb3IgYXJiaXRyYXJ5CisgKiBzdHlsZXMsIHVzaW5nIHJ1bGVzIGFuZCBkaWN0aW9uYXJpZXMg
YmV5b25kIHRoZSBzdGFuZGFyZCBpdGVyYXRvcnMuCisgKiBUaGUgc3RhbmRhcmQgdGl0bGVjYXNl
IGl0ZXJhdG9yIGZvciB0aGUgcm9vdCBsb2NhbGUgaW1wbGVtZW50cyB0aGUKKyAqIGFsZ29yaXRo
bSBvZiBVbmljb2RlIFRSIDIxLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gdXNlcyBvbmx5IHRoZSBz
ZXRVVGV4dCgpLCBmaXJzdCgpLCBuZXh0KCkgYW5kIGNsb3NlKCkgbWV0aG9kcyBvZiB0aGUKKyAq
IHByb3ZpZGVkIGJyZWFrIGl0ZXJhdG9yLgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdl
ciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5k
IHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0g
Y3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LiBUaGlzIHBvaW50ZXIgaXMgbm9uLWNv
bnN0IQorICogICAgICAgICAgICAgICAgICBTZWUgdGhlIG5vdGUgYWJvdmUgZm9yIGRldGFpbHMu
CisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhl
IHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRo
ZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVu
dHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNp
dHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwg
dGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rp
b24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAg
ICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBw
YXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGgg
VGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBi
ZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBw
b2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNo
IG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisg
KiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwg
LSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBj
YXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVf
c3RyVG9UaXRsZQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNBU0UKKyAqIEBzZWUgVV9U
SVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVAorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1Vf
U1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4VG9UaXRsZShVQ2FzZU1hcCAq
Y3NtLAorICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0
eSwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0
aCwKKyAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNlbmRp
ZgorCisvKioKKyAqIENhc2UtZm9sZHMgdGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcu
CisgKgorICogQ2FzZS1mb2xkaW5nIGlzIGxvY2FsZS1pbmRlcGVuZGVudCBhbmQgbm90IGNvbnRl
eHQtc2Vuc2l0aXZlLAorICogYnV0IHRoZXJlIGlzIGFuIG9wdGlvbiBmb3Igd2hldGhlciB0byBp
bmNsdWRlIG9yIGV4Y2x1ZGUgbWFwcGluZ3MgZm9yIGRvdHRlZCBJCisgKiBhbmQgZG90bGVzcyBp
IHRoYXQgYXJlIG1hcmtlZCB3aXRoICdUJyBpbiBDYXNlRm9sZGluZy50eHQuCisgKgorICogVGhl
IHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBU
aGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVy
bGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisg
KiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJl
c3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBi
dWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMg
aXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkg
VGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhl
bgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24g
d2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAg
ICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJh
bSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhl
IGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBO
VUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2lu
dGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11
c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBA
cmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBv
ciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNl
IGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3Ry
Rm9sZENhc2UKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNlZSBVX0ZPTERfQ0FT
RV9ERUZBVUxUCisgKiBAc2VlIFVfRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JCisgKiBAc3Rh
YmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0
ZjhGb2xkQ2FzZShjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICAgIGNo
YXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAg
VUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9pY3UvdW5pY29kZS91Y2hyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2hyaXRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZkNWE5OTBmN2I3ZWQzZDViYWNmMmRhODQ3MWVmOGZmOTQyMmY5OWMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmgKQEAg
LTAsMCArMSwzODEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAxOTk4
LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBh
bmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNp
Zm5kZWYgVUNIUklURVJfSAorI2RlZmluZSBVQ0hSSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2Rl
L3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKworLyoqCisgKiBcZmls
ZSAKKyAqIFxicmllZiBDKysgQVBJOiBVQ2hhciBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAqLworIAor
VV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBBIGNvbmNyZXRlIHN1YmNsYXNzIG9mIENoYXJh
Y3Rlckl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciB0aGUKKyAqIGNoYXJhY3RlcnMgKGNvZGUg
dW5pdHMgb3IgY29kZSBwb2ludHMpIGluIGEgVUNoYXIgYXJyYXkuCisgKiBJdCdzIHBvc3NpYmxl
IG5vdCBvbmx5IHRvIGNyZWF0ZSBhbgorICogaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIGFu
IGVudGlyZSBVQ2hhciBhcnJheSwgYnV0IGFsc28gdG8KKyAqIGNyZWF0ZSBvbmUgdGhhdCBpdGVy
YXRlcyBvdmVyIG9ubHkgYSBzdWJyYW5nZSBvZiBhIFVDaGFyIGFycmF5CisgKiAoaXRlcmF0b3Jz
IG92ZXIgZGlmZmVyZW50IHN1YnJhbmdlcyBvZiB0aGUgc2FtZSBVQ2hhciBhcnJheSBkb24ndAor
ICogY29tcGFyZSBlcXVhbCkuCisgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc2VlIEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVf
Q09NTU9OX0FQSSBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIDogcHVibGljIENoYXJhY3Rlckl0ZXJh
dG9yIHsKK3B1YmxpYzoKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBV
Q2hhciBhcnJheSByZWZlcnJlZCB0byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVyYXRpb24g
cmFuZ2UgaXMgMCB0byA8Y29kZT5sZW5ndGgtMTwvY29kZT4uCisgICAqIHRleHQgaXMgb25seSBh
bGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisgICAqIGRlc3RydWN0b3Igd2lsbCBub3QgZGVsZXRl
IGl0KS4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGVk
IG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29u
c3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoKTsKKworICAvKioKKyAgICogQ3JlYXRl
IGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0UHRy
Ii4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmxlbmd0aC0xPC9jb2Rl
Pi4KKyAgICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAgICogZGVz
dHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBUaGUgc3RhcnRpbmcKKyAgICogcG9z
aXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJwb3NpdGlvbiIuIElmICJwb3NpdGlvbiIgaXMgb3V0c2lk
ZSB0aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2YgdGhpcyBv
YmplY3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIgYXJyYXkg
dG8gYmUgaXRlcmF0ZCBvdmVyCisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUg
VUNoYXIgYXJyYXkKKyAgICogQHBhcmFtIHBvc2l0aW9uIFRoZSBzdGFydGluZyBwb3NpdGlvbiBv
ZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFy
YWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5ndGgsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAqIENy
ZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0byBieSAidGV4
dFB0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5lbmQtMTwvY29k
ZT4uCisgICAqIHRleHQgaXMgb25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisgICAqIGRl
c3RydWN0b3Igd2lsbCBub3QgZGVsZXRlIGl0KS4KKyAgICogVGhlIHN0YXJ0aW5nCisgICAqIHBv
c2l0aW9uIGlzIHNwZWNpZmllZCBieSAicG9zaXRpb24iLiBJZiBiZWdpbiBhbmQgZW5kIGRvIG5v
dAorICAgKiBmb3JtIGEgdmFsaWQgaXRlcmF0aW9uIHJhbmdlIG9yICJwb3NpdGlvbiIgaXMgb3V0
c2lkZSB0aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2YgdGhp
cyBvYmplY3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIgYXJy
YXkgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2Yg
dGhlIFVDaGFyIGFycmF5CisgICAqIEBwYXJhbSB0ZXh0QmVnaW4gIFRoZSBiZWdpbiBwb3NpdGlv
biBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0RW5kICAgIFRoZSBlbmQg
cG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0gcG9zaXRpb24gICAg
VGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyKiB0ZXh0UHRy
LCBpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRleHRC
ZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRleHRFbmQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAqIENvcHkg
Y29uc3RydWN0b3IuICBUaGUgbmV3IGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgdGhlIHNhbWUgcmFu
Z2UKKyAgICogb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIGl0cyBpbml0aWFsIHBv
c2l0aW9uIGlzIHRoZQorICAgKiBzYW1lIGFzICJ0aGF0IidzIGN1cnJlbnQgcG9zaXRpb24uCisg
ICAqIEBwYXJhbSB0aGF0IFRoZSBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvcGllZAor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29u
c3QgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYgIHRoYXQpOworCisgIC8qKgorICAgKiBEZXN0cnVj
dG9yLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgflVDaGFyQ2hhcmFj
dGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogQXNzaWdubWVudCBvcGVyYXRvci4gICp0aGlz
IGlzIGFsdGVyZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBzYW5lCisgICAqIHJhbmdlIG9mIHRoZSBz
YW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCByZWZlcnMgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFj
dGVyIHdpdGhpbiB0aGF0IHN0cmluZyBhcyAidGhhdCIgZG9lcy4KKyAgICogQHBhcmFtIHRoYXQg
VGhlIG9iamVjdCB0byBiZSBjb3BpZWQKKyAgICogQHJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBv
YmplY3QKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJh
dG9yJgorICBvcGVyYXRvcj0oY29uc3QgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYgICAgdGhhdCk7
CisKKyAgLyoqCisgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3Zl
ciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGlu
ZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hh
cmFjdGVySXRlcmF0b3IgdXNlZCB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICogQHJl
dHVybiB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9m
IHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJh
Y3Rlci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAg
ICAgIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25z
dDsKKworICAvKioKKyAgICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGlzIGl0ZXJhdG9y
LgorICAgKiBAcmV0dXJuIHRoZSBoYXNoIGNvZGUuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgICAgaGFzaENvZGUodm9pZCkgY29uc3Q7CisKKyAg
LyoqCisgICAqIFJldHVybnMgYSBuZXcgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciByZWZlcnJpbmcg
dG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHJhbmdlIG9mIHRoZSBzYW1l
IHN0cmluZyBhcyB0aGlzIG9uZS4gIFRoZQorICAgKiBjYWxsZXIgbXVzdCBkZWxldGUgdGhlIG5l
dyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0aGUgQ2hhcmFjdGVySXRlcmF0b3IgbmV3bHkgY3Jl
YXRlZAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgQ2hhcmFjdGVySXRl
cmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRv
ciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAgKiBpdGVyYXRpb24g
cmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2Vk
IHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQoKS4KKyAgICogQHJldHVybiB0aGUgZmly
c3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0KHZvaWQpOworCisgIC8qKgor
ICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGlu
IGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsIGFuZCBt
b3ZlcyB0aGUgcG9zaXRpb24KKyAgICogdG8gdGhlIHNlY29uZCBjb2RlIHVuaXQuIFRoaXMgaXMg
YW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlv
biB3aXRoIG5leHRQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBp
biBpdHMgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCBVQ2hhciAgICAgICAgIGZpcnN0UG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogU2V0
cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisg
ICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsCisgICAqIFRo
aXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyKCkuCisgICAq
IE5vdGUgdGhhdCBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0SW5jKCksIGJlZ2lubmluZyB3
aXRoLAorICAgKiBlLmcuLCBzZXRUb1N0YXJ0KCkgb3IgZmlyc3RQb3N0SW5jKCksIGlzIG1vcmUg
ZWZmaWNpZW50LgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVy
YXRpb24gcmFuZ2UKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFy
MzIgICAgICAgZmlyc3QzMih2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3Ig
dG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiBy
YW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAg
ICogdG8gdGhlIHNlY29uZCBjb2RlIHBvaW50LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNl
dFRvU3RhcnQoKQorICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0SW5j
KCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiBy
YW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAg
ICAgZmlyc3QzMlBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9y
IHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJh
bmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0
byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpLgorICAgKiBAcmV0dXJuIHRoZSBs
YXN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBsYXN0KHZvaWQpOworCisgIC8qKgor
ICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHBvaW50IGlu
IGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0Lgor
ICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3Vz
MzIoKS4KKyAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24g
cmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAg
ICAgIGxhc3QzMih2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVm
ZXIgdG8gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAqIGluIHRoZSB0ZXh0LXN0b3Jh
Z2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgKiByZXR1cm5zIHRoYXQg
Y29kZSB1bml0LgorICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUg
dGV4dC1zdG9yYWdlIG9iamVjdAorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQKKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgc2V0SW5kZXgoaW50
MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVy
IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICogdGhhdCBjb250YWlucyB0
aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmpl
Y3QgdGhlIGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAqIHJldHVybnMgdGhhdCBjb2RlIHBv
aW50LgorICAgKiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyBhZGp1c3RlZCB0byB0aGUgYmVnaW5u
aW5nIG9mIHRoZSBjb2RlIHBvaW50CisgICAqIChpdHMgZmlyc3QgY29kZSB1bml0KS4KKyAgICog
QHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQtc3RvcmFnZSBvYmpl
Y3QKKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHNldEluZGV4MzIoaW50MzJfdCBwb3NpdGlvbik7
CisKKyAgLyoqCisgICAqIFJldHVybnMgdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVu
dGx5IHJlZmVycyB0by4KKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBj
dXJyZW50bHkgcmVmZXJzIHRvLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUNoYXIgICAgICAgICBjdXJyZW50KHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1
cm5zIHRoZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAg
KiBAcmV0dXJuIHRoZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRv
LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBj
dXJyZW50MzIodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0
IGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAgICogZW5kSW5kZXgo
KSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAg
ICogY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUg
bmV4dCBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dCh2b2lkKTsKKworICAvKioK
KyAgICogR2V0cyB0aGUgY3VycmVudCBjb2RlIHVuaXQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5j
ZXMgdG8gdGhlIG5leHQgY29kZSB1bml0CisgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAg
ICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgKiBubyBtb3JlIGNvZGUg
dW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQg
Y29kZSB1bml0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIg
ICAgICAgICBuZXh0UG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhl
IG5leHQgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAgICogZW5k
SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZSBubyBt
b3JlCisgICAqIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBOb3Rl
IHRoYXQgaXRlcmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIHNlbWFudGljcyBpcyBsZXNzCisg
ICAqIGVmZmljaWVudCB0aGFuIGl0ZXJhdGlvbiB3aXRoICJwb3N0LWluY3JlbWVudCIgc2VtYW50
aWNzCisgICAqIHRoYXQgaXMgcHJvdmlkZWQgYnkgbmV4dDMyUG9zdEluYygpLgorICAgKiBAcmV0
dXJuIHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyKHZvaWQp
OworCisgIC8qKgorICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgZm9yIHJldHVybmlu
ZyBhbmQgYWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludAorICAgKiBpbiB0aGUgaXRlcmF0
aW9uIHJhbmdlCisgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICog
bm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVy
biB0aGUgY3VycmVudCBwb2ludC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyUG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogUmV0
dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRz
CisgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24g
cmFuZ2UuCisgICAqIFRoaXMgaXMgdXNlZCB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9z
dEluYygpIGluIGZvcndhcmQKKyAgICogaXRlcmF0aW9uLgorICAgKiBAcmV0dXJuIEZBTFNFIGlm
IHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYXQgb3Ig
YWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNOZXh0KCk7
CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5z
IHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSB1bml0cyB0
byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSB1
bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgdmlydHVhbCBVQ2hhciAgICAgICAgIHByZXZpb3VzKHZvaWQpOworCisgIC8qKgorICAgKiBB
ZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
ICh0b3dhcmQKKyAgICogc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50
LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1
cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIGl0
ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVD
aGFyMzIgICAgICAgcHJldmlvdXMzMih2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJucyBGQUxT
RSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAqIGJl
Zm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBU
aGlzIGlzIHVzZWQgd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIoKSBpbiBiYWNrd2FyZAor
ICAgKiBpdGVyYXRpb24uCisgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUg
Y29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRp
b24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNQcmV2aW91cygpOworCisgIC8qKgorICAgKiBNb3Zl
cyB0aGUgY3VycmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRo
ZQorICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0
aW9uIGl0c2VsZi4KKyAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9m
IGNvZGUgdW5pdHMgZm9yd2FyZAorICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9z
aXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24g
cmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAq
IGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAqIEBwYXJhbSBvcmlnaW4gT3Jp
Z2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgKiBAcmV0dXJuIHRo
ZSBuZXcgcG9zaXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIGlu
dDMyX3QgICAgICBtb3ZlKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKTsKKworICAvKioK
KyAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9y
IGVuZCBvZiB0aGUKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3Vy
cmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4g
bnVtYmVycyBvZiBjb2RlIHBvaW50cyBmb3J3YXJkCisgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNp
ZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAgICogQHBhcmFtIGRlbHRhIHRo
ZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9y
d2FyZDsKKyAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICogQHBhcmFt
IG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAq
IEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUzMihpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdp
bik7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciBhIG5l
dyByYW5nZSBvZiB0ZXh0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdm9pZCBzZXRU
ZXh0KGNvbnN0IFVDaGFyKiBuZXdUZXh0LCBpbnQzMl90IG5ld1RleHRMZW5ndGgpOworCisgIC8q
KgorICAgKiBDb3BpZXMgdGhlIFVDaGFyIGFycmF5IHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBV
bmljb2RlU3RyaW5nCisgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZlbiBpZiB0aGlz
IGl0ZXJhdG9yIGl0ZXJhdGVzIGFjcm9zcworICAgKiBvbmx5IGEgcGFydCBvZiB0aGlzIHN0cmlu
ZywgdGhlIHdob2xlIHN0cmluZyBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSByZXN1bHQgUmVjZWl2
ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNvZGVTdHJp
bmcmIHJlc3VsdCk7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNs
YXNzIChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0aGlz
IGNsYXNzCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgc3RhdGljIFVDbGFzc0lEICAg
ICAgICAgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQodm9pZCk7CisKKyAgLyoqCisgICAqIFJl
dHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdCAobm90IHJlYWxseSBwdWJsaWMpCisgICAq
IEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCBVQ2xhc3NJRCAgICAgICAgZ2V0RHluYW1pY0NsYXNzSUQodm9p
ZCkgY29uc3Q7CisKK3Byb3RlY3RlZDoKKyAgLyoqCisgICAqIFByb3RlY3RlZCBjb25zdHJ1Y3Rv
cgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3Io
KTsKKyAgLyoqCisgICAqIFByb3RlY3RlZCBtZW1iZXIgdGV4dAorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIGNvbnN0IFVDaGFyKiAgICAgICAgICAgIHRleHQ7CisKK307CisKK1VfTkFN
RVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Vk
YXRhLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjllNDY2
MzBkNTM5OGQ4MjczOGQxZDYxZmZjNGQyYzkxNGU4YzY4YgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaApAQCAtMCwwICsxLDQzMCBAQAorLyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0LCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5h
bWU6ICB1ZGF0YS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4
IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMTk5OW9j
dDI1CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisKKyNpZm5kZWYgX19V
REFUQV9IX18KKyNkZWZpbmUgX19VREFUQV9IX18KKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVz
LmgiCisjaW5jbHVkZSAidW5pY29kZS9sb2NhbHBvaW50ZXIuaCIKKworVV9DREVDTF9CRUdJTgor
CisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IERhdGEgbG9hZGluZyBpbnRlcmZhY2UK
KyAqCisgKiA8aDI+SW5mb3JtYXRpb24gYWJvdXQgZGF0YSBsb2FkaW5nIGludGVyZmFjZTwvaDI+
CisgKgorICogVGhpcyBBUEkgaXMgdXNlZCB0byBmaW5kIGFuZCBlZmZpY2llbnRseSBsb2FkIGRh
dGEgZm9yIElDVSBhbmQgYXBwbGljYXRpb25zCisgKiB1c2luZyBJQ1UuIEl0IHByb3ZpZGVzIGFu
IGFic3RyYWN0IGludGVyZmFjZSB0aGF0IHNwZWNpZmllcyBhIGRhdGEgdHlwZSBhbmQKKyAqIG5h
bWUgdG8gZmluZCBhbmQgbG9hZCB0aGUgZGF0YS4gTm9ybWFsbHkgdGhpcyBBUEkgaXMgdXNlZCBi
eSBvdGhlciBJQ1UgQVBJcworICogdG8gbG9hZCByZXF1aXJlZCBkYXRhIG91dCBvZiB0aGUgSUNV
IGRhdGEgbGlicmFyeSwgYnV0IGl0IGNhbiBiZSB1c2VkIHRvCisgKiBsb2FkIGRhdGEgb3V0IG9m
IG90aGVyIHBsYWNlcy4KKyAqCisgKiBTZWUgdGhlIFVzZXIgR3VpZGUgRGF0YSBNYW5hZ2VtZW50
IGNoYXB0ZXIuCisgKi8KKyAKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorLyoqCisgKiBD
aGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZyb20gdHJlZSBuYW1lcyAK
KyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX1NFUEFSQVRPUiAnLScK
KworLyoqCisgKiBTdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZyb20gdHJl
ZSBuYW1lcyAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX1NFUEFS
QVRPUl9TVFJJTkcgIi0iCisKKy8qKgorICogQ2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgcGFy
dHMgb2YgZW50cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9U
UkVFX0VOVFJZX1NFUF9DSEFSICcvJworCisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNlcGFyYXRl
IHBhcnRzIG9mIGVudHJ5IG5hbWVzCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisjZGVmaW5l
IFVfVFJFRV9FTlRSWV9TRVBfU1RSSU5HICIvIgorCisvKioKKyAqIEFsaWFzIGZvciBzdGFuZGFy
ZCBJQ1UgZGF0YSAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9JQ1VEQVRB
X0FMSUFTICJJQ1VEQVRBIgorCisjZW5kaWYgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisv
KioKKyAqIFVEYXRhSW5mbyBjb250YWlucyB0aGUgcHJvcGVydGllcyBhYm91dCB0aGUgcmVxdWVz
dGVkIGRhdGEuCisgKiBUaGlzIGlzIG1ldGEgZGF0YS4KKyAqCisgKiA8cD5UaGlzIHN0cnVjdHVy
ZSBtYXkgZ3JvdyBpbiB0aGUgZnV0dXJlLCBpbmRpY2F0ZWQgYnkgdGhlCisgKiA8Y29kZT5zaXpl
PC9jb2RlPiBmaWVsZC48L3A+CisgKgorICogPHA+SUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4
LWFsaWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFRoZSBVRGF0YUluZm8gc3Ry
dWN0IGJlZ2lucyA0IGJ5dGVzIGFmdGVyIHRoZSBzdGFydCBvZiB0aGUgZGF0YSBpdGVtLAorICog
c28gaXQgaXMgNC1hbGlnbmVkLgorICoKKyAqIDxwPlRoZSBwbGF0Zm9ybSBkYXRhIHByb3BlcnR5
IGZpZWxkcyBoZWxwIGRldGVybWluZSBpZiBhIGRhdGEKKyAqIGZpbGUgY2FuIGJlIGVmZmljaWVu
dGx5IHVzZWQgb24gYSBnaXZlbiBtYWNoaW5lLgorICogVGhlIHBhcnRpY3VsYXIgZmllbGRzIGFy
ZSBvZiBpbXBvcnRhbmNlIG9ubHkgaWYgdGhlIGRhdGEKKyAqIGlzIGFmZmVjdGVkIGJ5IHRoZSBw
cm9wZXJ0aWVzIC0gaWYgdGhlcmUgaXMgaW50ZWdlciBkYXRhCisgKiB3aXRoIHdvcmQgc2l6ZXMg
PiAxIGJ5dGUsIGNoYXIqIHRleHQsIG9yIFVDaGFyKiB0ZXh0LjwvcD4KKyAqCisgKiA8cD5UaGUg
aW1wbGVtZW50YXRpb24gZm9yIHRoZSA8Y29kZT51ZGF0YV9vcGVuW0Nob2ljZV0oKTwvY29kZT4K
KyAqIGZ1bmN0aW9ucyBtYXkgcmVqZWN0IGRhdGEgYmFzZWQgb24gdGhlIHZhbHVlIGluIDxjb2Rl
PmlzQmlnRW5kaWFuPC9jb2RlPi4KKyAqIE5vIG90aGVyIGZpZWxkIGlzIHVzZWQgYnkgdGhlIDxj
b2RlPnVkYXRhPC9jb2RlPiBBUEkgaW1wbGVtZW50YXRpb24uPC9wPgorICoKKyAqIDxwPlRoZSA8
Y29kZT5kYXRhRm9ybWF0PC9jb2RlPiBtYXkgYmUgdXNlZCB0byBpZGVudGlmeQorICogdGhlIGtp
bmQgb2YgZGF0YSwgZS5nLiBhIGNvbnZlcnRlciB0YWJsZS48L3A+CisgKgorICogPHA+VGhlIDxj
b2RlPmZvcm1hdFZlcnNpb248L2NvZGU+IGZpZWxkIHNob3VsZCBiZSB1c2VkIHRvCisgKiBtYWtl
IHN1cmUgdGhhdCB0aGUgZm9ybWF0IGNhbiBiZSBpbnRlcnByZXRlZC4KKyAqIEl0IG1heSBiZSBh
IGdvb2QgaWRlYSB0byBjaGVjayBvbmx5IGZvciB0aGUgb25lIG9yIHR3byBoaWdoZXN0CisgKiBv
ZiB0aGUgdmVyc2lvbiBlbGVtZW50cyB0byBhbGxvdyB0aGUgZGF0YSBtZW1vcnkgdG8KKyAqIGdl
dCBtb3JlIG9yIHNvbWV3aGF0IHJlYXJyYW5nZWQgY29udGVudHMsIGZvciBhcyBsb25nCisgKiBh
cyB0aGUgdXNpbmcgY29kZSBjYW4gc3RpbGwgaW50ZXJwcmV0IHRoZSBvbGRlciBjb250ZW50cy48
L3A+CisgKgorICogPHA+VGhlIDxjb2RlPmRhdGFWZXJzaW9uPC9jb2RlPiBmaWVsZCBpcyBpbnRl
bmRlZCB0byBiZSBhCisgKiBjb21tb24gcGxhY2UgdG8gc3RvcmUgdGhlIHNvdXJjZSB2ZXJzaW9u
IG9mIHRoZSBkYXRhOworICogZm9yIGRhdGEgZnJvbSB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgZGF0
YWJhc2UsIHRoaXMgY291bGQKKyAqIHJlZmxlY3QgdGhlIFVuaWNvZGUgdmVyc2lvbi48L3A+Cisg
KgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICAvKiogc2l6
ZW9mKFVEYXRhSW5mbykKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWludDE2X3Qg
c2l6ZTsKKworICAgIC8qKiB1bnVzZWQsIHNldCB0byAwIAorICAgICAqICBAc3RhYmxlIElDVSAy
LjAqLworICAgIHVpbnQxNl90IHJlc2VydmVkV29yZDsKKworICAgIC8qIHBsYXRmb3JtIGRhdGEg
cHJvcGVydGllcyAqLworICAgIC8qKiAwIGZvciBsaXR0bGUtZW5kaWFuIG1hY2hpbmUsIDEgZm9y
IGJpZy1lbmRpYW4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWludDhfdCBpc0Jp
Z0VuZGlhbjsKKworICAgIC8qKiBzZWUgVV9DSEFSU0VUX0ZBTUlMWSB2YWx1ZXMgaW4gdXR5cGVz
LmggCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBjaGFyc2V0RmFtaWx5
OworCisgICAgLyoqIHNpemVvZihVQ2hhciksIG9uZSBvZiB7IDEsIDIsIDQgfSAKKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHNpemVvZlVDaGFyOworCisgICAgLyoqIHVu
dXNlZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBy
ZXNlcnZlZEJ5dGU7CisKKyAgICAvKiogZGF0YSBmb3JtYXQgaWRlbnRpZmllciAKKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGRhdGFGb3JtYXRbNF07CisKKyAgICAvKiog
dmVyc2lvbnM6IFswXSBtYWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBtaWNybyAKKyAgICAg
KiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGZvcm1hdFZlcnNpb25bNF07CisKKyAg
ICAvKiogdmVyc2lvbnM6IFswXSBtYWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBtaWNybyAK
KyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGRhdGFWZXJzaW9uWzRdOwor
fSBVRGF0YUluZm87CisKKy8qIEFQSSBmb3IgcmVhZGluZyBkYXRhIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBGb3J3YXJk
IGRlY2xhcmF0aW9uIG9mIHRoZSBkYXRhIG1lbW9yeSB0eXBlLgorICogQHN0YWJsZSBJQ1UgMi4w
CisgKi8KK3R5cGVkZWYgc3RydWN0IFVEYXRhTWVtb3J5IFVEYXRhTWVtb3J5OworCisvKioKKyAq
IENhbGxiYWNrIGZ1bmN0aW9uIGZvciB1ZGF0YV9vcGVuQ2hvaWNlKCkuCisgKiBAcGFyYW0gY29u
dGV4dCBwYXJhbWV0ZXIgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2Rl
Pi4KKyAqIEBwYXJhbSB0eXBlIFRoZSB0eXBlIG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBpbnRvIDxj
b2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiAgICAgICAgICAgICBJdCBtYXkgYmUg
PGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgZGF0YSBh
cyBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICogQHBhcmFt
IHBJbmZvIEEgcG9pbnRlciB0byB0aGUgPGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1Y3R1cmUK
KyAqICAgICAgICAgICAgICBvZiBkYXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVkIGFuZCB3aWxsIGJl
IHJldHVybmVkCisgKiAgICAgICAgICAgICAgYnkgPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9j
b2RlPiBpZiB0aGlzIGZ1bmN0aW9uCisgKiAgICAgICAgICAgICAgcmV0dXJucyA8Y29kZT5UUlVF
PC9jb2RlPi4KKyAqIEByZXR1cm4gVFJVRSBpZiB0aGUgY3VycmVudCBkYXRhIG1lbW9yeSBpcyBh
Y2NlcHRhYmxlCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBVQm9vbCBVX0NBTExD
T05WCitVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSh2b2lkICpjb250ZXh0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFVEYXRhSW5mbyAqcEluZm8pOworCisKKy8qKgorICogQ29u
dmVuaWVuY2UgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIHdvcmtzIHRoZSBzYW1lIGFzIDxj
b2RlPnVkYXRhX29wZW5DaG9pY2U8L2NvZGU+CisgKiBleGNlcHQgdGhhdCBhbnkgZGF0YSB0aGF0
IG1hdGNoZXMgdGhlIHR5cGUgYW5kIG5hbWUKKyAqIGlzIGFzc3VtZWQgdG8gYmUgYWNjZXB0YWJs
ZS4KKyAqIEBwYXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0ZSBwYXRoIGFuZC9vciBhIGJh
c2VuYW1lIGZvciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcgb2YgdGhlIGRhdGEgaW4gdGhl
IGZpbGUgc3lzdGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVMTDwvY29kZT4gZm9yIElDVSBk
YXRhLgorICogQHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHR5cGUgb2Yg
ZGF0YSB0byBiZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVzb3VyY2Ug
YnVuZGxlcyBhcmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAqICAgICAgICAgICAgIGNvbnZl
cnNpb24gdGFibGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAgICAgICAgIFRoaXMgbWF5IGJl
IDxjb2RlPk5VTEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFtIG5hbWUgQSBzdHJpbmcgdGhh
dCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBB
biBJQ1UgVUVycm9yQ29kZSBwYXJhbWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2Nv
ZGU+LgorICogQHJldHVybiBBIHBvaW50ZXIgKGhhbmRsZSkgdG8gYSBkYXRhIG1lbW9yeSBvYmpl
Y3QsIG9yIDxjb2RlPk5VTEw8L2NvZGU+CisgKiAgICAgICAgIGlmIGFuIGVycm9yIG9jY3Vycy4g
Q2FsbCA8Y29kZT51ZGF0YV9nZXRNZW1vcnkoKTwvY29kZT4KKyAqICAgICAgICAgdG8gZ2V0IGEg
cG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEuCisgKgorICogQHNlZSB1ZGF0YV9vcGVuQ2hvaWNl
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgVURhdGFNZW1vcnkgKiBVX0VYUE9S
VDIKK3VkYXRhX29wZW4oY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqdHlwZSwgY29uc3Qg
Y2hhciAqbmFtZSwKKyAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgor
ICogRGF0YSBsb2FkaW5nIGZ1bmN0aW9uLgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGZp
bmQgYW5kIGxvYWQgZWZmaWNpZW50bHkgZGF0YSBmb3IKKyAqIElDVSBhbmQgYXBwbGljYXRpb25z
IHVzaW5nIElDVS4KKyAqIEl0IHByb3ZpZGVzIGFuIGFic3RyYWN0IGludGVyZmFjZSB0aGF0IGFs
bG93cyB0byBzcGVjaWZ5IGEgZGF0YQorICogdHlwZSBhbmQgbmFtZSB0byBmaW5kIGFuZCBsb2Fk
IHRoZSBkYXRhLgorICoKKyAqIDxwPlRoZSBpbXBsZW1lbnRhdGlvbiBkZXBlbmRzIG9uIHBsYXRm
b3JtIHByb3BlcnRpZXMgYW5kIHVzZXIgcHJlZmVyZW5jZXMKKyAqIGFuZCBtYXkgaW52b2x2ZSBs
b2FkaW5nIHNoYXJlZCBsaWJyYXJpZXMgKERMTHMpLCBtYXBwaW5nCisgKiBmaWxlcyBpbnRvIG1l
bW9yeSwgb3IgZm9wZW4oKS9mcmVhZCgpIGZpbGVzLgorICogSXQgbWF5IGFsc28gaW52b2x2ZSB1
c2luZyBzdGF0aWMgbWVtb3J5IG9yIGRhdGFiYXNlIHF1ZXJpZXMgZXRjLgorICogU2V2ZXJhbCBv
ciBhbGwgZGF0YSBpdGVtcyBtYXkgYmUgY29tYmluZWQgaW50byBvbmUgZW50aXR5CisgKiAoRExM
LCBtZW1vcnktbWFwcGFibGUgZmlsZSkuPC9wPgorICoKKyAqIDxwPlRoZSBkYXRhIGlzIGFsd2F5
cyBwcmVjZWRlZCBieSBhIGhlYWRlciB0aGF0IGluY2x1ZGVzCisgKiBhIDxjb2RlPlVEYXRhSW5m
bzwvY29kZT4gc3RydWN0dXJlLgorICogVGhlIGNhbGxlcidzIDxjb2RlPmlzQWNjZXB0YWJsZSgp
PC9jb2RlPiBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gbWFrZQorICogc3VyZSB0aGF0IHRoZSBkYXRh
IGlzIHVzZWZ1bC4gSXQgbWF5IGJlIGNhbGxlZCBzZXZlcmFsIHRpbWVzIGlmIGl0CisgKiByZWpl
Y3RzIHRoZSBkYXRhIGFuZCB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGxvY2F0aW9uIHdpdGggZGF0
YQorICogbWF0Y2hpbmcgdGhlIHR5cGUgYW5kIG5hbWUuPC9wPgorICoKKyAqIDxwPklmIDxjb2Rl
PnBhdGg9PU5VTEw8L2NvZGU+LCB0aGVuIElDVSBkYXRhIGlzIGxvYWRlZC4KKyAqIE90aGVyd2lz
ZSwgaXQgaXMgc2VwYXJhdGVkIGludG8gYSBiYXNlbmFtZSBhbmQgYSBiYXNlbmFtZS1sZXNzIGRp
cmVjdG9yeSBzdHJpbmcuCisgKiBUaGUgYmFzZW5hbWUgaXMgdXNlZCBhcyB0aGUgZGF0YSBwYWNr
YWdlIG5hbWUsIGFuZCB0aGUgZGlyZWN0b3J5IGlzCisgKiBsb2dpY2FsbHkgcHJlcGVuZGVkIHRv
IHRoZSBJQ1UgZGF0YSBkaXJlY3Rvcnkgc3RyaW5nLjwvcD4KKyAqCisgKiA8cD5Gb3IgZGV0YWls
cyBhYm91dCBJQ1UgZGF0YSBsb2FkaW5nIHNlZSB0aGUgVXNlciBHdWlkZQorICogRGF0YSBNYW5h
Z2VtZW50IGNoYXB0ZXIuIChodHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9pY3VkYXRh
Lmh0bWwpPC9wPgorICoKKyAqIEBwYXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0ZSBwYXRo
IGFuZC9vciBhIGJhc2VuYW1lIGZvciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcgb2YgdGhl
IGRhdGEgaW4gdGhlIGZpbGUgc3lzdGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVMTDwvY29k
ZT4gZm9yIElDVSBkYXRhLgorICogQHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMg
dGhlIHR5cGUgb2YgZGF0YSB0byBiZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBs
ZSwgcmVzb3VyY2UgYnVuZGxlcyBhcmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAqICAgICAg
ICAgICAgIGNvbnZlcnNpb24gdGFibGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAgICAgICAg
IFRoaXMgbWF5IGJlIDxjb2RlPk5VTEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFtIG5hbWUg
QSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBAcGFyYW0g
aXNBY2NlcHRhYmxlIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIHZlcmlmeSB0aGF0IGxvYWRl
ZCBkYXRhCisgKiAgICAgICAgICAgICAgICAgICAgIGlzIHVzZWZ1bCBmb3IgdGhlIGNsaWVudCBj
b2RlLiBJZiBpdCByZXR1cm5zIEZBTFNFCisgKiAgICAgICAgICAgICAgICAgICAgIGZvciBhbGwg
ZGF0YSBpdGVtcywgdGhlbiA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+CisgKiAgICAg
ICAgICAgICAgICAgICAgIHdpbGwgcmV0dXJuIHdpdGggYW4gZXJyb3IuCisgKiBAcGFyYW0gY29u
dGV4dCBBcmJpdHJhcnkgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCBpbnRvIGlzQWNjZXB0YWJsZS4K
KyAqIEBwYXJhbSBwRXJyb3JDb2RlIEFuIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVz
dCBub3QgYmUgPGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAoaGFuZGxl
KSB0byBhIGRhdGEgbWVtb3J5IG9iamVjdCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAqICAgICAg
ICAgaWYgYW4gZXJyb3Igb2NjdXJzLiBDYWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2Rl
PgorICogICAgICAgICB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4KKyAqIEBz
dGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRh
dGFfb3BlbkNob2ljZShjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBj
aGFyICpuYW1lLAorICAgICAgICAgICAgICAgICBVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSAqaXNB
Y2NlcHRhYmxlLCB2b2lkICpjb250ZXh0LAorICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKworLyoqCisgKiBDbG9zZSB0aGUgZGF0YSBtZW1vcnkuCisgKiBUaGlzIGZ1
bmN0aW9uIG11c3QgYmUgY2FsbGVkIHRvIGFsbG93IHRoZSBzeXN0ZW0gdG8KKyAqIHJlbGVhc2Ug
cmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRhdGEgbWVtb3J5LgorICogQHBhcmFtIHBE
YXRhIFRoZSBwb2ludGVyIHRvIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHN0YWJsZSBJQ1UgMi4w
CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9jbG9zZShVRGF0YU1lbW9yeSAq
cERhdGEpOworCisjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4K
KworLyoqCisgKiBcY2xhc3MgTG9jYWxVRGF0YU1lbW9yeVBvaW50ZXIKKyAqICJTbWFydCBwb2lu
dGVyIiBjbGFzcywgY2xvc2VzIGEgVURhdGFNZW1vcnkgdmlhIHVkYXRhX2Nsb3NlKCkuCisgKiBG
b3IgbW9zdCBtZXRob2RzIHNlZSB0aGUgTG9jYWxQb2ludGVyQmFzZSBiYXNlIGNsYXNzLgorICoK
KyAqIEBzZWUgTG9jYWxQb2ludGVyQmFzZQorICogQHNlZSBMb2NhbFBvaW50ZXIKKyAqIEBzdGFi
bGUgSUNVIDQuNAorICovCitVX0RFRklORV9MT0NBTF9PUEVOX1BPSU5URVIoTG9jYWxVRGF0YU1l
bW9yeVBvaW50ZXIsIFVEYXRhTWVtb3J5LCB1ZGF0YV9jbG9zZSk7CisKK1VfTkFNRVNQQUNFX0VO
RAorCisjZW5kaWYKKworLyoqCisgKiBHZXQgdGhlIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRh
IGluc2lkZSB0aGUgZGF0YSBtZW1vcnkuCisgKiBUaGUgZGF0YSBpcyByZWFkLW9ubHkuCisgKgor
ICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQsIGFuZCBzaG91bGQgYmUgMTYt
YWxpZ25lZC4KKyAqCisgKiBAcGFyYW0gcERhdGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBtZW1vcnkg
b2JqZWN0CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgY29uc3Qgdm9pZCAqIFVf
RVhQT1JUMgordWRhdGFfZ2V0TWVtb3J5KFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKy8qKgorICog
R2V0IHRoZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkYXRhIG1lbW9yeSBoZWFkZXIuCisgKiBUaGlz
IGFsbG93cyB0byBnZXQgYWNjZXNzIHRvIHRoZSBoZWFkZXIgY29udGFpbmluZworICogcGxhdGZv
cm0gZGF0YSBwcm9wZXJ0aWVzIGV0Yy4gd2hpY2ggaXMgbm90IHBhcnQgb2YKKyAqIHRoZSBkYXRh
IGl0c2VsZiBhbmQgY2FuIHRoZXJlZm9yZSBub3QgYmUgYWNjZXNzZWQKKyAqIHZpYSB0aGUgcG9p
bnRlciB0aGF0IDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPiByZXR1cm5zLgorICoKKyAq
IEBwYXJhbSBwRGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QKKyAqIEBwYXJh
bSBwSW5mbyBwb2ludGVyIHRvIGEgVURhdGFJbmZvIG9iamVjdDsKKyAqICAgICAgICAgICAgICBp
dHMgPGNvZGU+c2l6ZTwvY29kZT4gZmllbGQgbXVzdCBiZSBzZXQgY29ycmVjdGx5LAorICogICAg
ICAgICAgICAgIHR5cGljYWxseSB0byA8Y29kZT5zaXplb2YoVURhdGFJbmZvKTwvY29kZT4uCisg
KgorICogPGNvZGU+KnBJbmZvPC9jb2RlPiB3aWxsIGJlIGZpbGxlZCB3aXRoIHRoZSBVRGF0YUlu
Zm8gc3RydWN0dXJlCisgKiBpbiB0aGUgZGF0YSBtZW1vcnkgb2JqZWN0LiBJZiB0aGlzIHN0cnVj
dHVyZSBpcyBzbWFsbGVyIHRoYW4KKyAqIDxjb2RlPnBJbmZvLT5zaXplPC9jb2RlPiwgdGhlbiB0
aGUgPGNvZGU+c2l6ZTwvY29kZT4gd2lsbCBiZQorICogYWRqdXN0ZWQgYW5kIG9ubHkgcGFydCBv
ZiB0aGUgc3RydWN0dXJlIHdpbGwgYmUgZmlsbGVkLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8K
K1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9nZXRJbmZvKFVEYXRhTWVtb3J5ICpwRGF0
YSwgVURhdGFJbmZvICpwSW5mbyk7CisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0
aGUgbm9ybWFsIElDVSBkYXRhIGxvYWRpbmcgcHJvY2VzcyBhbmQKKyAqIGFsbG93cyB5b3UgdG8g
Zm9yY2UgSUNVJ3Mgc3lzdGVtIGRhdGEgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNpZmllZAor
ICogYXJlYSBpbiBtZW1vcnkuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFs
aWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNlcmd1aWRl
LmljdS1wcm9qZWN0Lm9yZy9pY3VkYXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlzIGRhdGEg
aXMgdGhhdCBvZiB0aGUgaWN1IGNvbW1vbiBkYXRhIGZpbGUsIGFzIGlzCisgKiBnZW5lcmF0ZWQg
YnkgdGhlIHBrZ2RhdGEgdG9vbCB3aXRoIG1vZGU9Y29tbW9uIG9yIG1vZGU9ZGxsLgorICogWW91
IGNhbiByZWFkIGluIGEgd2hvbGUgY29tbW9uIG1vZGUgZmlsZSBhbmQgcGFzcyB0aGUgYWRkcmVz
cyB0byB0aGUgc3RhcnQgb2YgdGhlCisgKiBkYXRhLCBvciAod2l0aCB0aGUgYXBwcm9wcmlhdGUg
bGluayBvcHRpb25zKSBwYXNzIGluIHRoZSBwb2ludGVyIHRvCisgKiB0aGUgZGF0YSB0aGF0IGhh
cyBiZWVuIGxvYWRlZCBmcm9tIGEgZGxsIGJ5IHRoZSBvcGVyYXRpbmcgc3lzdGVtLAorICogYXMg
c2hvd24gaW4gdGhpcyBjb2RlOgorICoKKyAqICAgICAgIGV4dGVybiBjb25zdCBjaGFyIFVfSU1Q
T1JUIFVfSUNVREFUQV9FTlRSWV9QT0lOVCBbXTsKKyAqICAgICAgICAvLyBVX0lDVURBVEFfRU5U
UllfUE9JTlQgaXMgc2FtZSBhcyBlbnRyeSBwb2ludCBzcGVjaWZpZWQgdG8gcGtnZGF0YSB0b29s
CisgKiAgICAgICBVRXJyb3JDb2RlICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgKgorICogICAg
ICAgdWRhdGFfc2V0Q29tbW9uRGF0YSgmVV9JQ1VEQVRBX0VOVFJZX1BPSU5ULCAmc3RhdHVzKTsK
KyAqCisgKiBJdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgZGVjbGFyYXRpb24gYmUgYXMgYWJvdmUu
IFRoZSBlbnRyeSBwb2ludAorICogbXVzdCBub3QgYmUgZGVjbGFyZWQgYXMgYW4gZXh0ZXJuIHZv
aWQqLgorICoKKyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQuNCwgaXQgaXMgcG9zc2libGUgdG8gc2V0
IHNldmVyYWwgZGF0YSBwYWNrYWdlcywKKyAqIG9uZSBwZXIgY2FsbCB0byB0aGlzIGZ1bmN0aW9u
LgorICogdWRhdGFfb3BlbigpIHdpbGwgbG9vayBmb3IgZGF0YSBpbiB0aGUgbXVsdGlwbGUgZGF0
YSBwYWNrYWdlcyBpbiB0aGUgb3JkZXIKKyAqIGluIHdoaWNoIHRoZXkgd2VyZSBzZXQuCisgKiBU
aGUgcG9zaXRpb24gb2YgdGhlIGxpbmtlZC1pbiBvciBkZWZhdWx0LW5hbWUgSUNVIC5kYXRhIHBh
Y2thZ2UgaW4gdGhlCisgKiBzZWFyY2ggbGlzdCBkZXBlbmRzIG9uIHdoZW4gdGhlIGZpcnN0IGRh
dGEgaXRlbSBpcyBsb2FkZWQgdGhhdCBpcyBub3QgY29udGFpbmVkCisgKiBpbiB0aGUgYWxyZWFk
eSBleHBsaWNpdGx5IHNldCBwYWNrYWdlcy4KKyAqIElmIGRhdGEgd2FzIGxvYWRlZCBpbXBsaWNp
dGx5IGJlZm9yZSB0aGUgZmlyc3QgY2FsbCB0byB0aGlzIGZ1bmN0aW9uCisgKiAoZm9yIGV4YW1w
bGUsIHZpYSBvcGVuaW5nIGEgY29udmVydGVyLCBjb25zdHJ1Y3RpbmcgYSBVbmljb2RlU3RyaW5n
CisgKiBmcm9tIGRlZmF1bHQtY29kZXBhZ2UgZGF0YSwgdXNpbmcgZm9ybWF0dGluZyBvciBjb2xs
YXRpb24gQVBJcywgZXRjLiksCisgKiB0aGVuIHRoZSBkZWZhdWx0IGRhdGEgd2lsbCBiZSBmaXJz
dCBpbiB0aGUgbGlzdC4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGhhcyBubyBlZmZlY3Qgb24gYXBw
bGljYXRpb24gKG5vbiBJQ1UpIGRhdGEuICBTZWUgdWRhdGFfc2V0QXBwRGF0YSgpCisgKiBmb3Ig
c2ltaWxhciBmdW5jdGlvbmFsaXR5IGZvciBhcHBsaWNhdGlvbiBkYXRhLgorICoKKyAqIEBwYXJh
bSBkYXRhIHBvaW50ZXIgdG8gSUNVIGNvbW1vbiBkYXRhCisgKiBAcGFyYW0gZXJyIG91dGdvaW5n
IGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9VTlNVUFBPUlRF
RF9FUlJPUjwvY29kZT4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVf
RVhQT1JUMgordWRhdGFfc2V0Q29tbW9uRGF0YShjb25zdCB2b2lkICpkYXRhLCBVRXJyb3JDb2Rl
ICplcnIpOworCisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgbm9ybWFsIElD
VSBkYXRhIGxvYWRpbmcgcHJvY2VzcyBmb3IgYXBwbGljYXRpb24tc3BlY2lmaWMKKyAqIGRhdGEg
YW5kIGFsbG93cyB5b3UgdG8gZm9yY2UgdGhlIGl0IHRvIGNvbWUgb3V0IG9mIGEgdXNlci1zcGVj
aWZpZWQKKyAqIHBvaW50ZXIuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFs
aWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNlcmd1aWRl
LmljdS1wcm9qZWN0Lm9yZy9pY3VkYXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlzIGRhdGEg
aXMgdGhhdCBvZiB0aGUgaWN1IGNvbW1vbiBkYXRhIGZpbGUsIGxpa2UgJ2ljdWR0MjZsLmRhdCcK
KyAqIG9yIHRoZSBjb3JyZXNwb25kaW5nIHNoYXJlZCBsaWJyYXJ5IChETEwpIGZpbGUuCisgKiBU
aGUgYXBwbGljYXRpb24gbXVzdCByZWFkIGluIG9yIG90aGVyd2lzZSBjb25zdHJ1Y3QgYW4gaW1h
Z2Ugb2YgdGhlIGRhdGEgYW5kIHRoZW4KKyAqIHBhc3MgdGhlIGFkZHJlc3Mgb2YgaXQgdG8gdGhp
cyBmdW5jdGlvbi4KKyAqCisgKgorICogV2FybmluZzogIHNldEFwcERhdGEgd2lsbCBzZXQgYSBV
X1VTSU5HX0RFRkFVTFRfV0FSTklORyBjb2RlIGlmCisgKiAgICAgICAgICAgZGF0YSB3aXRoIHRo
ZSBzcGVjaWZlZCBwYXRoIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBvcGVuZWQsIG9yCisgKiAgICAg
ICAgICAgaWYgc2V0QXBwRGF0YSB3aXRoIHRoZSBzYW1lIHBhdGggaGFzIGFscmVhZHkgYmVlbiBj
YWxsZWQuCisgKiAgICAgICAgICAgQW55IHN1Y2ggY2FsbHMgdG8gc2V0QXBwRGF0YSB3aWxsIGhh
dmUgbm8gZWZmZWN0LgorICoKKyAqCisgKiBAcGFyYW0gcGFja2FnZU5hbWUgdGhlIHBhY2thZ2Ug
bmFtZSBieSB3aGljaCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWZlcgorICogICAgICAgICAgICAg
dG8gKG9wZW4pIHRoaXMgZGF0YQorICogQHBhcmFtIGRhdGEgcG9pbnRlciB0byB0aGUgZGF0YQor
ICogQHBhcmFtIGVyciBvdXRnb2luZyBlcnJvciBzdGF0dXMgPGNvZGU+VV9VU0lOR19ERUZBVUxU
X1dBUk5JTkcsIFVfVU5TVVBQT1JURURfRVJST1I8L2NvZGU+CisgKiBAc2VlIHVkYXRhX3NldENv
bW1vbkRhdGEKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JU
MgordWRhdGFfc2V0QXBwRGF0YShjb25zdCBjaGFyICpwYWNrYWdlTmFtZSwgY29uc3Qgdm9pZCAq
ZGF0YSwgVUVycm9yQ29kZSAqZXJyKTsKKworLyoqCisgKiBQb3NzaWJsZSBzZXR0aW5ncyBmb3Ig
dWRhdGFfc2V0RmlsZUFjY2VzcygpCisgKiBAc2VlIHVkYXRhX3NldEZpbGVBY2Nlc3MKKyAqIEBz
dGFibGUgSUNVIDMuNAorICovCit0eXBlZGVmIGVudW0gVURhdGFGaWxlQWNjZXNzIHsKKyAgICAv
KiogSUNVIGxvb2tzIGZvciBkYXRhIGluIHNpbmdsZSBmaWxlcyBmaXJzdCwgdGhlbiBpbiBwYWNr
YWdlcy4gKGRlZmF1bHQpIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX0ZJTEVTX0ZJUlNU
LAorICAgIC8qKiBBbiBhbGlhcyBmb3IgdGhlIGRlZmF1bHQgYWNjZXNzIG1vZGUuIEBzdGFibGUg
SUNVIDMuNCAqLworICAgIFVEQVRBX0RFRkFVTFRfQUNDRVNTID0gVURBVEFfRklMRVNfRklSU1Qs
CisgICAgLyoqIElDVSBvbmx5IGxvYWRzIGRhdGEgZnJvbSBwYWNrYWdlcywgbm90IGZyb20gc2lu
Z2xlIGZpbGVzLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9PTkxZX1BBQ0tBR0VTLAor
ICAgIC8qKiBJQ1UgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzIGZpcnN0LCBhbmQgb25seSBmcm9t
IHNpbmdsZSBmaWxlcworICAgICAgICBpZiB0aGUgZGF0YSBjYW5ub3QgYmUgZm91bmQgaW4gYSBw
YWNrYWdlLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9QQUNLQUdFU19GSVJTVCwKKyAg
ICAvKiogSUNVIGRvZXMgbm90IGFjY2VzcyB0aGUgZmlsZSBzeXN0ZW0gZm9yIGRhdGEgbG9hZGlu
Zy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfTk9fRklMRVMsCisgICAgLyoqIE51bWJl
ciBvZiByZWFsIFVEYXRhRmlsZUFjY2VzcyB2YWx1ZXMuIEBzdGFibGUgSUNVIDMuNCAqLworICAg
IFVEQVRBX0ZJTEVfQUNDRVNTX0NPVU5UCit9IFVEYXRhRmlsZUFjY2VzczsKKworLyoqCisgKiBU
aGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgdG8gY29udHJvbCBob3cgSUNVIGxvYWRzIGRhdGEu
IEl0IG11c3QgYmUgY2FsbGVkCisgKiBiZWZvcmUgYW55IElDVSBkYXRhIGlzIGxvYWRlZCwgaW5j
bHVkaW5nIGFwcGxpY2F0aW9uIGRhdGEgbG9hZGVkIHdpdGggCisgKiB1cmVzL1Jlc291cmNlQnVu
ZGxlIG9yIHVkYXRhIEFQSXMuIFRoaXMgZnVuY3Rpb24gaXMgbm90IG11bHRpdGhyZWFkIHNhZmUu
ICAKKyAqIFRoZSByZXN1bHRzIG9mIGNhbGxpbmcgaXQgd2hpbGUgb3RoZXIgdGhyZWFkcyBhcmUg
bG9hZGluZyBkYXRhIGFyZSB1bmRlZmluZWQuCisgKiBAcGFyYW0gYWNjZXNzIFRoZSB0eXBlIG9m
IGZpbGUgYWNjZXNzIHRvIGJlIHVzZWQKKyAqIEBwYXJhbSBzdGF0dXMgRXJyb3IgY29kZS4KKyAq
IEBzZWUgVURhdGFGaWxlQWNjZXNzCisgKiBAc3RhYmxlIElDVSAzLjQgCisgKi8KK1VfU1RBQkxF
IHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEYXRhRmlsZUFjY2VzcyBhY2Nl
c3MsIFVFcnJvckNvZGUgKnN0YXR1cyk7CisKK1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91bWlzYy5oIGIvU291cmNlL1dURi9pY3UvdW5p
Y29kZS91bWlzYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4NTQ1MWZjNzY3YzA1ODM1ZjZjMTVmNTY2ZjM1NjJl
MmQ0YWY4MzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNj
LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMp
IDE5OTktMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0
aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IGZpbGUgbmFtZTogIHVtaXNjLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBz
aXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9u
OiAxOTk5b2N0MTUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lm
bmRlZiBVTUlTQ19ICisjZGVmaW5lIFVNSVNDX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVz
LmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiAgQyBBUEk6bWlzYyBkZWZpbml0aW9ucyAK
KyAqCisgKiAgVGhpcyBmaWxlIGNvbnRhaW5zIG1pc2NlbGxhbmVvdXMgZGVmaW5pdGlvbnMgZm9y
IHRoZSBDIEFQSXMuIAorICovCisKK1VfQ0RFQ0xfQkVHSU4KKworLyoqIEEgc3RydWN0IHJlcHJl
c2VudGluZyBhIHJhbmdlIG9mIHRleHQgY29udGFpbmluZyBhIHNwZWNpZmljIGZpZWxkIAorICog
IEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIHN0cnVjdCBVRmllbGRQb3NpdGlvbiB7Cisg
IC8qKgorICAgKiBUaGUgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50
MzJfdCBmaWVsZDsKKyAgLyoqCisgICAqIFRoZSBzdGFydCBvZiB0aGUgdGV4dCByYW5nZSBjb250
YWluaW5nIGZpZWxkIAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgYmVn
aW5JbmRleDsKKyAgLyoqIAorICAgKiBUaGUgbGltaXQgb2YgdGhlIHRleHQgcmFuZ2UgY29udGFp
bmluZyBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90IGVuZElu
ZGV4OworfSBVRmllbGRQb3NpdGlvbjsKKworI2lmICFVQ09ORklHX05PX1NFUlZJQ0UKKy8qKgor
ICogT3BhcXVlIHR5cGUgcmV0dXJuZWQgYnkgcmVnaXN0ZXJJbnN0YW5jZSwgcmVnaXN0ZXJGYWN0
b3J5IGFuZCB1bnJlZ2lzdGVyIGZvciBzZXJ2aWNlIHJlZ2lzdHJhdGlvbi4KKyAqIEBzdGFibGUg
SUNVIDIuNgorICovCit0eXBlZGVmIGNvbnN0IHZvaWQqIFVSZWdpc3RyeUtleTsKKyNlbmRpZgor
CitVX0NERUNMX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMDk5N2Q5ZWFj
NDc5NTgxZmYxZmQ0NzY5Y2NjNGI1NDY2MmVmZDcxNC4uNjFiNDE5YjRjNmNhMzdlMTk4YmM2MzE0
ZGQ0Y2FjMDQzOGI4ZDhkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTI1NSw2ICsyNTUsMjAg
QEAgc2V0KFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJ
Un0iCiApCiAKK3NldChXVEZfQlJFQUtJTkdfUlVMRVNfU09VUkNFUworICAgIHd0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorICAgIHd0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKKyAgICB3dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0CisgICAgd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dAorICAgIHd0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dAor
ICAgIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9u
Q0pLLnR4dAorICAgIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbENKSy50eHQKKyAgICB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxOb25DSksudHh0CisgICAgd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dAorICAgIHd0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKKyAgICB3dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CispCisKIHNldChXVEZf
TElCUkFSSUVTCiAgICAgJHtDTUFLRV9ETF9MSUJTfQogKQpAQCAtMjcyLDYgKzI4NiwzMyBAQCBp
ZiAoTk9UIFVTRV9TWVNURU1fTUFMTE9DKQogICAgIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMg
Ym1hbGxvYykKIGVuZGlmICgpCiAKK21hY3JvKEdFTkVSQVRFX0JSRUFLSU5HX1JVTEVTIF9pbnB1
dCBfb3V0cHV0KQorICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVUICR7X291
dHB1dH0KKyAgICAgICAgREVQRU5EUyAke19pbnB1dH0KKyAgICAgICAgQ09NTUFORCBlY2hvICIj
aW5jbHVkZSBcImNvbmZpZy5oXCIiID4gJHtfb3V0cHV0fQorICAgICAgICBDT01NQU5EIGVjaG8g
IiNpbmNsdWRlIDx1bmljb2RlL3V2ZXJudW0uaD4iID4+ICR7X291dHB1dH0KKyAgICAgICAgQ09N
TUFORCBlY2hvICIjZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9T
KSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTEwMCkpIiA+PiAke19vdXRwdXR9CisgICAgICAgIENPTU1BTkQgZWNobyAiI2RlZmluZSBI
QVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTICgoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkg
JiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpKSIgPj4gJHtfb3V0cHV0fQorICAgICAg
ICBDT01NQU5EIGVjaG8gIm5hbWVzcGFjZSBXVEYgeyIgPj4gJHtfb3V0cHV0fQorICAgICAgICBD
T01NQU5EIGVjaG8gImNvbnN0IGNoYXIqIGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyA9ICIg
Pj4gJHtfb3V0cHV0fQorICAgICAgICBDT01NQU5EIHNlZCAncy9eIyAuKi8vJyAkPCA+ICR7X291
dHB1dH0udG1wCisgICAgICAgIENPTU1BTkQgc2VkICdzL15cKC4qXCk7LyJcXDE7Ii8nICR7X291
dHB1dH0udG1wID4gJHtfb3V0cHV0fTIudG1wCisgICAgICAgIENPTU1BTkQgc2VkICdzLyAjIC8g
XFwvXFwvIC8nICR7X291dHB1dH0yLnRtcCA+ICR7X291dHB1dH0udG1wCisgICAgICAgIENPTU1B
TkQgc2VkICdzL1xcXFwvXFxcXFxcXFwvZycgJHtfb3V0cHV0fS50bXAgPj4gJHtfb3V0cHV0fQor
ICAgICAgICBDT01NQU5EIGVjaG8gIjsiID4+ICR7X291dHB1dH0KKyAgICAgICAgQ09NTUFORCBl
Y2hvICJ9IiA+PiAke19vdXRwdXR9CisgICAgICAgIENPTU1BTkQgcm0gJHtfb3V0cHV0fS50bXAg
JHtfb3V0cHV0fTIudG1wCisgICAgICAgIFZFUkJBVElNKQorICAgIGxpc3QoQVBQRU5EIFdURl9T
T1VSQ0VTICR7X291dHB1dH0pCisgICAgQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtfaW5wdXR9
ICR7X291dHB1dH0pCitlbmRtYWNybygpCisKK2ZvcmVhY2ggKF9maWxlICR7V1RGX0JSRUFLSU5H
X1JVTEVTX1NPVVJDRVN9KQorICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtfZmls
ZX0gTkFNRV9XRSkKKyAgICBHRU5FUkFURV9CUkVBS0lOR19SVUxFUygke0NNQUtFX0NVUlJFTlRf
U09VUkNFX0RJUn0vJHtfZmlsZX0gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vJHtfbmFtZX0u
Y3BwKQorZW5kZm9yZWFjaCAoKQorCiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHVuaWNv
ZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDAyMDViOWEzYzg3OTliMzViNmU1MDkwNzE1M2E3YTE5ZWIyMjY4NgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTAsMCAr
MSw5MyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBs
ZSIpIG5vciB0aGUgbmFtZXMgb2YKKyMgICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyMgICAgIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisjIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKK0JSRUFLSU5HX1JVTEVTX0ZJTEVTID0gXAorICAgIEJyZWFr
aW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmJyayBcCisgICAgQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5icmsKKworQlJFQUtJTkdfUlVMRVNf
REVGSU5JVElPTlMgPSBcCisgICAgQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksu
Y3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3Bw
IFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAg
XAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNw
cCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNw
cCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
LmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9u
Q0pLLmNwcAorCitERVBFTkRFTkNJRVMgPSAkKEJSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TKQor
CitpZmVxICgkKE9TKSxNQUNPUykKK0RFUEVOREVOQ0lFUyArPSAkKEJSRUFLSU5HX1JVTEVTX0ZJ
TEVTKQorZW5kaWYKKworYWxsIDogJChERVBFTkRFTkNJRVMpCisKK0JyZWFraW5nUnVsZXMvJS5i
cmsgOiBCcmVha2luZ1J1bGVzLyUucHAKKwkuL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dl
bmJyayAtYyAtciAkPCAtbyAkQAorCitCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy5jcHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMudHh0CisJZWNobyAiI2luY2x1ZGUgXCJjb25maWcuaFwiIiA+ICRACisJ
ZWNobyAiI2luY2x1ZGUgPHVuaWNvZGUvdXZlcm51bS5oPiIgPj4gJEAKKwllY2hvICIjZGVmaW5l
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkpIiA+PiAkQAor
CWVjaG8gIiNkZWZpbmUgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyAoKFVfSUNVX1ZFUlNJT05f
TUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KSkiID4+ICRA
CisJZWNobyAibmFtZXNwYWNlIFdURiB7IiA+PiAkQAorCWVjaG8gImNvbnN0IGNoYXIqIGN1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcyA9ICIgPj4gJEAKKwlzZWQgJ3MvXiMgLiovLycgJDwgPiBD
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudG1wCisJc2VkICdzL15cKC4qXCk7LyJcMTsiLycg
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnRtcCA+IEN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlczIudG1wCisJc2VkICdzLyAjIC8gXC9cLyAvJyBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMyLnRtcCA+IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50bXAKKwlzZWQgJ3MvXFwvXFxc
XC9nJyBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudG1wID4+ICRACisJZWNobyAiOyIgPj4g
JEAKKwllY2hvICJ9IiA+PiAkQAorCXJtIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50bXAg
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzMi50bXAKKworQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvciUuY3BwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvckVwaWxvZ3VlLnR4dAorCWVjaG8gIiNpbmNsdWRlIFwiY29uZmlnLmhcIiIgPiAkQAor
CWVjaG8gIiNpbmNsdWRlIDx1bmljb2RlL3V2ZXJudW0uaD4iID4+ICRACisJZWNobyAiI2RlZmlu
ZSBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApKSIgPj4gJEAK
KwllY2hvICIjZGVmaW5lIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgKChVX0lDVV9WRVJTSU9O
X01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkpIiA+PiAk
QAorCWVjaG8gIm5hbWVzcGFjZSBXVEYgeyIgPj4gJEAKKwllY2hvICJjb25zdCBjaGFyKiBsaW5l
QnJlYWtJdGVyYXRvciQqUnVsZXMgPSAiID4+ICRACisJY2F0ICQ/IHwgc2VkICdzL15cKC4qXCk7
LyJcMTsiLycgPiAkKi50bXAKKwlzZWQgJ3MvICMgLyBcL1wvIC8nICQqLnRtcCA+ICQqMi50bXAK
KwlzZWQgJ3MvXFwvXFxcXC9nJyAkKjIudG1wID4+ICRACisJZWNobyAiOyIgPj4gJEAKKwllY2hv
ICJ9IiA+PiAkQAorCXJtICQqLnRtcCAkKjIudG1wCisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhUUkFfSUNVX05B
TUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQCAkPAorCitCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS5wcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKKwktY2F0ICQ/IHwgdW5pZmRlZiAtREFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCkgLURIQVZF
X0VYVFJBX0lDVV9OQU1FRF9TRVRTPSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUykgLW8gJEAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFmYWQ4NDcxMDAx
NDkzZDdiZjRiNmVhNmQ1Mjk4MDg4MGQwMjU4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0
CkBAIC0wLDAgKzEsMTUxIEBACisjIFRoaXMgcnVsZSBzZXQgaXMgYmFzZWQgb24gY2hhcmFjdGVy
LWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NworIyA8aHR0cDovL3NvdXJjZS5pY3UtcHJv
amVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtp
dHIvPi4KKyMgVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJl
IGxpc3RlZCBiZWxvdzoKKyMgKiBSZXBsYWNlZCAnW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBTcGFjaW5nTWFya31dJyB3aXRoICdbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFy
a30gLSAkRXh0ZW5kXScgZm9yIElDVSAzLjggb3IgZWFybGllcjsKKyMgKiBSZW1vdmVkIHJ1bGVz
IHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3Rl
cnMgKEJ1ZyAyNDM0Mik7CisjICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZy
b20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRh
bWlsIChCdWcgMTU3OTApLCBhbmQ7CisjICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vy
c29yIGZyb20gbW92aW5nIGJlZm9yZSBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNl
ZCBtYXJrcy4KKyMgKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMu
CisKKyRDUiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOworJExGICAg
ICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExGfV07CiskQ29udHJvbCA9IFtccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOworJFZvaWNlTWFya3MgPSBbXHVGRjlF
XHVGRjlGXTsgIyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcworJEV4
dGVuZCAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNlTWFya3Mg
LSBbXHUwRTMwIFx1MEUzMiBcdTBFNDUgXHUwRUIwIFx1MEVCMl1dOworJFNwYWNpbmdNYXJrID0g
W1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfV0gLSAkRXh0ZW5kXTsKKyRMICAg
ICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07CiskViAgICAgICA9IFtccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOworJFQgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IFR9XTsKKyRMViAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBMVn1dOworJExWVCAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1dOwor
JEhpbjAgICAgPSBbXHUwOTA1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEK
KyRIaW5WICAgID0gXHUwOTREOyAjIERldmFuYWdhcmkgU2lnbiBWaXJhbWEKKyRIaW4xICAgID0g
W1x1MDkxNS1cdTA5MzldOyAjIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQorJEJlbjAgICAg
PSBbXHUwOTg1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEKKyRCZW5WICAgID0g
XHUwOUNEOyAjIEJlbmdhbGkgU2lnbiBWaXJhbWEKKyRCZW4xICAgID0gW1x1MDk5NS1cdTA5Qjld
OyAjIEJlbmdhbGkgTGV0dGVyIEthLC4uLixIYQorJFBhbjAgICAgPSBbXHUwQTA1LVx1MEEzOV07
ICMgR3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCiskUGFuViAgICA9IFx1MEE0RDsgIyBHdXJtdWto
aSBTaWduIFZpcmFtYQorJFBhbjEgICAgPSBbXHUwQTE1LVx1MEEzOV07ICMgR3VybXVraGkgTGV0
dGVyIEthLC4uLixIYQorJEd1ajAgICAgPSBbXHUwQTg1LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0
dGVyIEEsLi4uLEhhCiskR3VqViAgICA9IFx1MEFDRDsgIyBHdWphcmF0aSBTaWduIFZpcmFtYQor
JEd1ajEgICAgPSBbXHUwQTk1LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQor
JE9yaTAgICAgPSBbXHUwQjA1LVx1MEIzOV07ICMgT3JpeWEgTGV0dGVyIEEsLi4uLEhhCiskT3Jp
ViAgICA9IFx1MEI0RDsgIyBPcml5YSBTaWduIFZpcmFtYQorJE9yaTEgICAgPSBbXHUwQjE1LVx1
MEIzOV07ICMgT3JpeWEgTGV0dGVyIEthLC4uLixIYQorJFRlbDAgICAgPSBbXHUwQzA1LVx1MEMz
OV07ICMgVGVsdWd1IExldHRlciBBLC4uLixIYQorJFRlbFYgICAgPSBcdTBDNEQ7ICMgVGVsdWd1
IFNpZ24gVmlyYW1hCiskVGVsMSAgICA9IFtcdTBDMTQtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVy
IEthLC4uLixIYQorJEthbjAgICAgPSBbXHUwQzg1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIg
QSwuLi4sSGEKKyRLYW5WICAgID0gXHUwQ0NEOyAjIEthbm5hZGEgU2lnbiBWaXJhbWEKKyRLYW4x
ICAgID0gW1x1MEM5NS1cdTBDQjldOyAjIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCiskTWFsMCAg
ICA9IFtcdTBEMDUtXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhIAorJE1hbFYg
ICAgPSBcdTBENEQ7ICMgTWFsYXlhbGFtIFNpZ24gVmlyYW1hCiskTWFsMSAgICA9IFtcdTBEMTUt
XHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCiskUkkgICAgICA9IFtcVTAwMDFG
MUU2LVxVMDAwMUYxRkZdOyAjIEVtb2ppIHJlZ2lvbmFsIGluZGljYXRvcnMKKyRaV0ogICAgID0g
XHUyMDBEOyAjIFplcm8gd2lkdGggam9pbmVyCiskRW1vamlWYXIgPSBbXHVGRTBGXTsgIyBFbW9q
aS1zdHlsZSB2YXJpYXRpb24gc2VsZWN0b3IKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI2NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUw
MDAxRjMwOCBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAw
MUYzRjMgXFUwMDAxRjQ0MSBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFG
NDZGIFxVMDAwMUY0NzEgXFUwMDAxRjQ3MyBcVTAwMDFGNDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4
MiBcVTAwMDFGNDg2LVxVMDAwMUY0ODcgXFUwMDAxRjQ4QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTgg
XFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEIgXFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxV
MDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2XTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRl
IGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI2RjkgXHUy
NzBBLVx1MjcwRCBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxV
MDAwMUYzQ0IgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAw
MDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAx
RjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1
NzUgXFUwMDAxRjU5MCBcVTAwMDFGNTk1IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3
IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBc
VTAwMDFGNkMwIFxVMDAwMUY5MThdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9k
aWZpZXJzCisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2
LVxVMDAwMUY0NjkgXFUwMDAxRjQ4Ql07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0og
c2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBBLVx1MjcwQyBcVTAw
MDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0M3IFxVMDAwMUYzQ0EgXFUwMDAx
RjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0
NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgz
IFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1c
VTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUw
MDAxRjZCNiBcVTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlm
aWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYzRkZdOyAj
IEZpdHpwYXRyaWNrIG1vZGlmaWVycworISFjaGFpbjsKKworI2lmIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVAorCisgICAgISFSSU5vQ2hhaW47CisKKyNlbmRpZgorCishIWZvcndhcmQ7CiskQ1Ig
JExGOworJEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsKKygkTFYgfCAkVikgKCRWIHwgJFQpOwor
KCRMVlQgfCAkVCkgJFQ7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRS
SSAkUkkgJEV4dGVuZCogLyAkUkk7CisgICAgJFJJICRSSSAkRXh0ZW5kKjsKKyAgICBbXiRDb250
cm9sICRDUiAkTEZdICRFeHRlbmQ7CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01h
cms7CisKKyNlbHNlCisKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7CisgICAgW14k
Q29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7CisgICAgJFJJICRSSSAvICRSSTsKKyAgICAk
UkkgJFJJOworCisjZW5kaWYKKworJEhpbjAgJEhpblYgJEhpbjE7ICMgRGV2YW5hZ2FyaSBWaXJh
bWEgKGZvcndhcmQpCiskQmVuMCAkQmVuViAkQmVuMTsgIyBCZW5nYWxpIFZpcmFtYSAoZm9yd2Fy
ZCkKKyRQYW4wICRQYW5WICRQYW4xOyAjIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkKKyRHdWow
ICRHdWpWICRHdWoxOyAjIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKKyRPcmkwICRPcmlWICRP
cmkxOyAjIE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKKyRUZWwwICRUZWxWICRUZWwxOyAjIFRlbHVn
dSBWaXJhbWEgKGZvcndhcmQpCiskS2FuMCAkS2FuViAkS2FuMTsgIyBLYW5uYWRhIFZpcmFtYSAo
Zm9yd2FyZCkKKyRNYWwwICRNYWxWICRNYWwxOyAjIE1hbGF5YWxhbSBWaXJhbWEgKGZvcndhcmQp
CiskWldKICRFbW9qaUZvclNlcXM7ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2Vz
CiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsgIyBEb250IGJyZWFrIGJldHdl
ZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQg
Rml0enBhdHJpY2sgbW9kaWZpZXIKKyEhcmV2ZXJzZTsKKyRMRiAkQ1I7CisoJEwgfCAkViB8ICRM
ViB8ICRMVlQpICRMOworKCRWIHwgJFQpICgkTFYgfCAkVik7CiskVCAoJExWVCB8ICRUKTsKKwor
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEV4dGVuZCogJFJJICRSSSAvICRF
eHRlbmQqICRSSSAkUkk7CisgICAgJEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kICAgICAg
W14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExG
XTsKKworI2Vsc2UKKworICAgICRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworICAg
ICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRSSSAkUkkgLyAkUkkgJFJJ
OworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMSAkSGluViAkSGluMDsgIyBEZXZhbmFn
YXJpIFZpcmFtYSAoYmFja3dhcmQpCiskQmVuMSAkQmVuViAkQmVuMDsgIyBCZW5nYWxpIFZpcmFt
YSAoYmFja3dhcmQpCiskUGFuMSAkUGFuViAkUGFuMDsgIyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3
YXJkKQorJEd1ajEgJEd1alYgJEd1ajA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRP
cmkxICRPcmlWICRPcmkwOyAjIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCiskVGVsMSAkVGVs
ViAkVGVsMDsgIyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKKyRLYW4xICRLYW5WICRLYW4wOyAj
IEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKKyRNYWwxICRNYWxWICRNYWwwOyAjIE1hbGF5YWxh
bSBWaXJhbWEgKGJhY2t3YXJkKQorJEVtb2ppRm9yU2VxcyAkWldKOyAjIERvbnQgYnJlYWsgaW4g
ZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7
ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlh
dGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCisKKyNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKKworICAgICEhc2FmZV9yZXZlcnNlOworICAgICRSSSAkUkkrOworICAg
IFskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7CisgICAgISFzYWZlX2Zvcndh
cmQ7CisgICAgJFJJICRSSSs7CisgICAgJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1v
ZHNdKzsKKworI2Vsc2UKKworICAgIFskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1v
ZHM7CisgICAgJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsKKyAgICAhIXNh
ZmVfcmV2ZXJzZTsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1
ZS50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JFcGlsb2d1ZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWUwYzhhNTFiM2MxY2MwYjcxNmYyYTM4NzJmYjNi
MTgxMDBkMGVmYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApAQCAtMCwwICsxLDM0NyBAQAor
JEFJID0gWzpMaW5lQnJlYWsgPSBBbWJpZ3VvdXM6XTsKKyRBTCA9IFs6TGluZUJyZWFrID0gQWxw
aGFiZXRpYzpdOworJEJBID0gW1s6TGluZUJyZWFrID0gQnJlYWtfQWZ0ZXI6XSAtICRCQV9TVUJd
OworJEJCID0gWzpMaW5lQnJlYWsgPSBCcmVha19CZWZvcmU6XTsKKyRCSyA9IFs6TGluZUJyZWFr
ID0gTWFuZGF0b3J5X0JyZWFrOl07CiskQjIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JvdGg6XTsK
KyRDQiA9IFs6TGluZUJyZWFrID0gQ29udGluZ2VudF9CcmVhazpdOworJENMID0gWzpMaW5lQnJl
YWsgPSBDbG9zZV9QdW5jdHVhdGlvbjpdOworJENNID0gWzpMaW5lQnJlYWsgPSBDb21iaW5pbmdf
TWFyazpdOworJENQID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QYXJlbnRoZXNpczpdOworJENSID0g
WzpMaW5lQnJlYWsgPSBDYXJyaWFnZV9SZXR1cm46XTsKKyRFWCA9IFtbOkxpbmVCcmVhayA9IEV4
Y2xhbWF0aW9uOl0gLSAkRVhfU1VCXTsKKyRHTCA9IFs6TGluZUJyZWFrID0gR2x1ZTpdOworCisj
aWYgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUworCisgICAgJEhMID0gWzpMaW5lQnJlYWsgPSBI
ZWJyZXdfTGV0dGVyOl07CisKKyNlbHNlCisKKyAgICAkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0
dGVyOl1dOworCisjZW5kaWYKKworJEhZID0gWzpMaW5lQnJlYWsgPSBIeXBoZW46XTsKKyRIMiA9
IFs6TGluZUJyZWFrID0gSDI6XTsKKyRIMyA9IFs6TGluZUJyZWFrID0gSDM6XTsKKyRJRCA9IFtb
W1s6TGluZUJyZWFrID0gSWRlb2dyYXBoaWM6XSAtICRDSl0gJElEX0FERF0gLSAkSURfU1VCXTsK
KyRJTiA9IFtbOkxpbmVCcmVhayA9IEluc2VwYXJhYmxlOl0gLSAkSU5fU1VCXTsKKyRJUyA9IFtb
OkxpbmVCcmVhayA9IEluZml4X051bWVyaWM6XSAtICRJU19TVUJdOworJEpMID0gWzpMaW5lQnJl
YWsgPSBKTDpdOworJEpWID0gWzpMaW5lQnJlYWsgPSBKVjpdOworJEpUID0gWzpMaW5lQnJlYWsg
PSBKVDpdOworJExGID0gWzpMaW5lQnJlYWsgPSBMaW5lX0ZlZWQ6XTsKKyROTCA9IFs6TGluZUJy
ZWFrID0gTmV4dF9MaW5lOl07CiskTlMgPSBbW1tbOkxpbmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAt
ICRDSl0gJE5TX0FERF0gLSAkTlNfU1VCXTsKKyROVSA9IFs6TGluZUJyZWFrID0gTnVtZXJpYzpd
OworJE9QID0gWzpMaW5lQnJlYWsgPSBPcGVuX1B1bmN0dWF0aW9uOl07CiskUE8gPSBbWzpMaW5l
QnJlYWsgPSBQb3N0Zml4X051bWVyaWM6XSAtICRQT19TVUJdOworJFBSID0gW1s6TGluZUJyZWFr
ID0gUHJlZml4X051bWVyaWM6XSAtICRQUl9TVUJdOworJFFVID0gWzpMaW5lQnJlYWsgPSBRdW90
YXRpb246XTsKKyRSSSA9IFtcVTAwMDFGMUU2LVxVMDAwMUYxRkZdOworJFNBID0gWzpMaW5lQnJl
YWsgPSBDb21wbGV4X0NvbnRleHQ6XTsKKyRTRyA9IFs6TGluZUJyZWFrID0gU3Vycm9nYXRlOl07
CiskU1AgPSBbOkxpbmVCcmVhayA9IFNwYWNlOl07CiskU1kgPSBbOkxpbmVCcmVhayA9IEJyZWFr
X1N5bWJvbHM6XTsKKyRXSiA9IFs6TGluZUJyZWFrID0gV29yZF9Kb2luZXI6XTsKKyRYWCA9IFs6
TGluZUJyZWFrID0gVW5rbm93bjpdOworJFpXID0gWzpMaW5lQnJlYWsgPSBaV1NwYWNlOl07Cisk
WldKID0gXHUyMDBEOworJEVtb2ppVmFyID0gXHVGRTBGOworCisjaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1
Mjc2NCBcVTAwMDFGMzA4IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAwMUYz
Q0MgXFUwMDAxRjNGMyBcVTAwMDFGNDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZF
LVxVMDAwMUY0NkYgXFUwMDAxRjQ3MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4MS1c
VTAwMDFGNDgyIFxVMDAwMUY0ODYtXFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUgXFUw
MDAxRjVFOCBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxVMDAw
MUY2NEUgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjZdOyAjIEVtb2ppIHRoYXQgcGFy
dGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1
MjZGOSBcdTI3MEEtXHUyNzBEIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAw
MUYzQ0EgXFUwMDAxRjNDQiBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFG
NDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3
QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEg
XFUwMDAxRjU3NSBcVTAwMDFGNTkwIFxVMDAwMUY1OTUgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxV
MDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAw
MDFGNkI2IFxVMDAwMUY2QzAgXFUwMDAxRjkxOF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0
cmljayBtb2RpZmllcnMKKworI2Vsc2UKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNzY0IFxV
MDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDhCXTsKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1
MjYxRCBcdTI3MEEtXHUyNzBDIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAw
MUYzQzcgXFUwMDAxRjNDQSBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFG
NDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3
QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEg
XFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxV
MDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0
IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xV
MDAwMUYzRkItXFUwMDAxRjNGRl07CiskZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxl
eF9Db250ZXh0Ol07CiskQUxQbHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOworJEFMY20gPSAk
QUxQbHVzICRDTSo7CiskQkFjbSA9ICRCQSAkQ00qOworJEJCY20gPSAkQkIgJENNKjsKKyRCMmNt
ID0gJEIyICRDTSo7CiskQ0xjbSA9ICRDTCAkQ00qOworJENQY20gPSAkQ1AgJENNKjsKKyRFWGNt
ID0gJEVYICRDTSo7CiskR0xjbSA9ICRHTCAkQ00qOworJEhMY20gPSAkSEwgJENNKjsKKyRIWWNt
ID0gJEhZICRDTSo7CiskSDJjbSA9ICRIMiAkQ00qOworJEgzY20gPSAkSDMgJENNKjsKKyRJRGNt
ID0gJElEICRDTSo7CiskSU5jbSA9ICRJTiAkQ00qOworJElTY20gPSAkSVMgJENNKjsKKyRKTGNt
ID0gJEpMICRDTSo7CiskSlZjbSA9ICRKViAkQ00qOworJEpUY20gPSAkSlQgJENNKjsKKyROU2Nt
ID0gJE5TICRDTSo7CiskTlVjbSA9ICROVSAkQ00qOworJE9QY20gPSAkT1AgJENNKjsKKyRQT2Nt
ID0gJFBPICRDTSo7CiskUFJjbSA9ICRQUiAkQ00qOworJFFVY20gPSAkUVUgJENNKjsKKyRSSWNt
ID0gJFJJICRDTSo7CiskU1ljbSA9ICRTWSAkQ00qOworJFdKY20gPSAkV0ogJENNKjsKKworISFm
b3J3YXJkOworJENBTl9DTSA9IFteJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRDQU5U
X0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07CiskQUxfRk9MTE9XX05PQ00gPSBb
JEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOworJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAk
SEwgJElTICRTWSAkV0ogJEdMICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsK
KyRBTF9GT0xMT1cgPSBbJEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOworJExCNEJyZWFr
cyA9IFskQksgJENSICRMRiAkTkxdOworJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5M
XTsKKyRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOworJExCOE5vbkJyZWFrcyA9IFtbJExC
NE5vbkJyZWFrc10gLSBbJFpXXV07CiskTEIxOE5vbkJyZWFrcyA9IFskTEI4Tm9uQnJlYWtzIC0g
WyRTUF1dOworJExCMThCcmVha3MgPSBbJExCOEJyZWFrcyAkU1BdOworJExCMjBOb25CcmVha3Mg
PSBbJExCMThOb25CcmVha3MgLSAkQ0JdOworJEFMUGx1cyAkQ00rOworJEJBICRDTSs7CiskQkIg
JENNKzsKKyRCMiAkQ00rOworJENMICRDTSs7CiskQ1AgJENNKzsKKyRFWCAkQ00rOworJEdMICRD
TSs7CiskSEwgJENNKzsKKyRIWSAkQ00rOworJEgyICRDTSs7CiskSDMgJENNKzsKKyRJRCAkQ00r
OworJElOICRDTSs7CiskSVMgJENNKzsKKyRKTCAkQ00rOworJEpWICRDTSs7CiskSlQgJENNKzsK
KyROUyAkQ00rOworJE5VICRDTSs7CiskT1AgJENNKzsKKyRQTyAkQ00rOworJFBSICRDTSs7Cisk
UVUgJENNKzsKKyRSSSAkQ00rOworJFNZICRDTSs7CiskV0ogJENNKzsKKyRDUiAkTEYgezEwMH07
CiskTEI0Tm9uQnJlYWtzPyAkTEI0QnJlYWtzIHsxMDB9OworJENBTl9DTSAkQ00qICRMQjRCcmVh
a3MgezEwMH07CiskQ00rICRMQjRCcmVha3MgezEwMH07CiskTEI0Tm9uQnJlYWtzIFskU1AgJFpX
XTsKKyRDQU5fQ00gJENNKiBbJFNQICRaV107CiskQ00rIFskU1AgJFpXXTsKKyRFbW9qaUZvclNl
cXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7CiskQ0FOX0NNICRD
TSs7CiskQ00rOworJENBTl9DTSAkQ00qICRXSmNtOworJExCOE5vbkJyZWFrcyAkV0pjbTsKKyRD
TSsgJFdKY207CiskV0pjbSAkQ0FOVF9DTTsKKyRXSmNtICRDQU5fQ00gJENNKjsKKyRHTGNtICRD
QU5fQ00gJENNKjsKKyRHTGNtICRDQU5UX0NNOworW1skTEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJB
ICRIWV1dICRDTSogJEdMY207CiskQ00rIEdMY207CiskTEI4Tm9uQnJlYWtzICRDTDsKKyRDQU5f
Q00gJENNKiAkQ0w7CiskQ00rICRDTDsKKyRMQjhOb25CcmVha3MgJENQOworJENBTl9DTSAkQ00q
ICRDUDsKKyRDTSsgJENQOworJExCOE5vbkJyZWFrcyAkRVg7CiskQ0FOX0NNICRDTSogJEVYOwor
JENNKyAkRVg7CiskTEI4Tm9uQnJlYWtzICRJUzsKKyRDQU5fQ00gJENNKiAkSVM7CiskQ00rICRJ
UzsKKyRMQjhOb25CcmVha3MgJFNZOworJENBTl9DTSAkQ00qICRTWTsKKyRDTSsgJFNZOworJE9Q
Y20gJFNQKiAkQ0FOX0NNICRDTSo7CiskT1BjbSAkU1AqICRDQU5UX0NNOworJE9QY20gJFNQKyAk
Q00rICRBTF9GT0xMT1c/OworJFFVY20gJFNQKiAkT1BjbTsKKygkQ0xjbSB8ICRDUGNtKSAkU1Aq
ICROU2NtOworJEIyY20gJFNQKiAkQjJjbTsKKyRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207Cisk
Q00rICRRVWNtOworJFFVY20gLj87CiskUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00qOworJExCMjBO
b25CcmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsgCiskQkJjbSBbXiRDQl07Cisk
QkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOworJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87
CiskU1ljbSAkSExjbTsKKygkQUxjbSB8ICRITGNtKSAkSU5jbTsKKyRDTSsgJElOY207CiskRVhj
bSAkSU5jbTsKKyRJRGNtICRJTmNtOworJElOY20gJElOY207CiskTlVjbSAkSU5jbTsKKyRJRGNt
ICRQT2NtOworJEFMY20gJE5VY207CiskSExjbSAkTlVjbTsKKyRDTSsgJE5VY207CiskTlVjbSAk
QUxjbTsKKyROVWNtICRITGNtOworJFBSY20gJElEY207CiskUFJjbSAoJEFMY20gfCAkSExjbSk7
CiskUE9jbSAoJEFMY20gfCAkSExjbSk7CisoJFBSY20gfCAkUE9jbSk/ICgkT1BjbSB8ICRIWWNt
KT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRDUGNtKT8gKCRQUmNt
IHwgJFBPY20pPzsKKyRKTGNtICgkSkxjbSB8ICRKVmNtIHwgJEgyY20gfCAkSDNjbSk7CisoJEpW
Y20gfCAkSDJjbSkgKCRKVmNtIHwgJEpUY20pOworKCRKVGNtIHwgJEgzY20pICRKVGNtOworKCRK
TGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOworKCRKTGNtIHwgJEpW
Y20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRQT2NtOworJFBSY20gKCRKTGNtIHwgJEpWY20g
fCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pOworKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNt
KTsKKyRDTSsgKCRBTGNtIHwgJEhMY20pOworJElTY20gKCRBTGNtIHwgJEhMY20pOworKCRBTGNt
IHwgJEhMY20gfCAkTlVjbSkgJE9QY207CiskQ00rICRPUGNtOworJENQY20gKCRBTGNtIHwgJEhM
Y20gfCAkTlVjbSk7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRSSWNt
ICRSSWNtOworCisjZW5kaWYKKworJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7
CisKKyEhcmV2ZXJzZTsKKyRDTSsgJEFMUGx1czsKKyRDTSsgJEJBOworJENNKyAkQkI7CiskQ00r
ICRCMjsKKyRDTSsgJENMOworJENNKyAkQ1A7CiskQ00rICRFWDsKKyRDTSsgJEdMOworJENNKyAk
SEw7CiskQ00rICRIWTsKKyRDTSsgJEgyOworJENNKyAkSDM7CiskQ00rICRJRDsKKyRDTSsgJElO
OworJENNKyAkSVM7CiskQ00rICRKTDsKKyRDTSsgJEpWOworJENNKyAkSlQ7CiskQ00rICROUzsK
KyRDTSsgJE5VOworJENNKyAkT1A7CiskQ00rICRQTzsKKyRDTSsgJFBSOworJENNKyAkUVU7CisK
KyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRDTSsgJFJJOworCisjZW5kaWYK
KworJENNKyAkU1k7CiskQ00rICRXSjsKKyRDTSs7CiskQUxfRk9MTE9XICRDTSsgLyAoWyRCSyAk
Q1IgJExGICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14kT1Ag
JENNICRTUF0gfCBbJEFMIHtlb2Z9XSkpOworWyRQUl0gLyAkQ00rIFskQksgJENSICRMRiAkTkwg
JFpXICRTUCB7ZW9mfV07CiskTEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtzLSRDTV07CiskTEI0QnJl
YWtzICRDTSsgJENBTl9DTTsKKyRMRiAkQ1I7CitbJFNQICRaV10gWyRMQjROb25CcmVha3MtJENN
XTsKK1skU1AgJFpXXSAkQ00rICRDQU5fQ007CiskRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9k
cz8gJEVtb2ppVmFyPyAkRW1vamlGb3JTZXFzOworJENNKyAkQ0FOX0NNOworJENNKiAkV0ogJENN
KiAkQ0FOX0NNOworJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsKKyRDQU5UX0NNICRDTSog
JFdKOworJENNKiAkQ0FOX0NNICRDTSogJFdKOworJENNKiAkR0wgJENNKiBbJExCOE5vbkJyZWFr
cy1bJENNICRTUCAkQkEgJEhZXV07CiskQ0FOVF9DTSAkQ00qICRHTDsKKyRDTSogJENBTl9DTSAk
Q00qICRHTDsKKyRDTCAkQ00rICRDQU5fQ007CiskQ1AgJENNKyAkQ0FOX0NNOworJEVYICRDTSsg
JENBTl9DTTsKKyRJUyAkQ00rICRDQU5fQ007CiskU1kgJENNKyAkQ0FOX0NNOworJENMIFskTEI4
Tm9uQnJlYWtzLSRDTV07CiskQ1AgWyRMQjhOb25CcmVha3MtJENNXTsKKyRFWCBbJExCOE5vbkJy
ZWFrcy0kQ01dOworJElTIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskU1kgWyRMQjhOb25CcmVha3Mt
JENNXTsKK1skQ0wgJENQICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7IAorJENNKiAk
Q0FOX0NNICRTUCogJENNKiAkT1A7CiskQ0FOVF9DTSAkU1AqICRDTSogJE9QOworJEFMX0ZPTExP
Vz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsKKyRBTF9GT0xMT1dfTk9DTSAkQ00rICRTUCsgJENN
KiAkT1A7CiskQ00qICRBTF9GT0xMT1dfQ00gJENNKyAkU1ArICRDTSogJE9QOworJFNZICRDTSAk
U1ArICRPUDsKKyRDTSogJE9QICRTUCogJENNKiAkUVU7CiskQ00qICROUyAkU1AqICRDTSogKCRD
TCB8ICRDUCk7CiskQ00qICRCMiAkU1AqICRDTSogJEIyOworJENNKiAkUVUgJENNKiAkQ0FOX0NN
OworJENNKiAkUVUgJExCMThOb25CcmVha3M7CiskQ00qICRDQU5fQ00gJENNKiAkUVU7CiskQ0FO
VF9DTSAkQ00qICRRVTsKKyRDTSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBbJExCMjBOb25CcmVh
a3MtJENNXTsKKyRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV0gJENNKiAkQkI7CitbXiRDQl0gJENN
KiAkQkI7CitbXiRDQl0gJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsKKyRDTSogJEhMICRDTSog
JFNZOworJENNKiAkSU4gJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICRJTiAkQ00qICRFWDsK
KyRDTSogJElOICRDTSogJElEOworJENNKiAkSU4gJENNKiAkSU47CiskQ00qICRJTiAkQ00qICRO
VTsKKyRDTSogJFBPICRDTSogJElEOworJENNKiAkTlUgJENNKiAoJEFMUGx1cyB8ICRITCk7Cisk
Q00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICROVTsKKyRDTSogJElEICRDTSogJFBSOworJENNKiAo
JEFMUGx1cyB8ICRITCkgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQTzsK
KygkQ00qICgkUFIgfCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElT
IHwgJFNZKSkqICRDTSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykp
PzsKKyRDTSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7CiskQ00qICgkSlQgfCAk
SlYpICRDTSogKCRIMiB8ICRKVik7CiskQ00qICRKVCAkQ00qICgkSDMgfCAkSlQpOworJENNKiAk
SU4gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsKKyRDTSogJFBPICRDTSogKCRI
MyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7CiskQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYg
fCAkSkwpICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRI
TCk7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRJUzsKKyRDTSogJE9QICRDTSogKCRBTFBs
dXMgfCAkSEwgfCAkTlUpOworJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7CisK
KyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRDTSogJFJJICRDTSogJFJJOwor
CisjZW5kaWYKKworJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7CisKKyEhc2Fm
ZV9mb3J3YXJkOworWyRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRTUCAkZGlj
dGlvbmFyeV0rIFteJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJGRpY3Rpb25h
cnldOworJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7CisgICAgCishIXNhZmVfcmV2ZXJzZTsKKyRD
TSsgW14kQ00gJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOworJENNKyAkU1AgLyAuOworJFNQKyAk
Q00qICRPUDsKKyRTUCsgJENNKiAkUVU7CiskU1ArICRDTSogKCRDTCB8ICRDUCk7CiskU1ArICRD
TSogJEIyOworJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsKKygkQ00qICgkSVMgfCAkU1kpKSsg
JENNKiAkTlU7CisoJENMIHwgJENQKSAkQ00qICgkTlUgfCAkSVMgfCAkU1kpOworJGRpY3Rpb25h
cnkgJGRpY3Rpb25hcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODFmOGFkMjUxYmY1NTI1ZDI5M2YzNzIxMjY0NTYxNjExNTBiNjBkNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclBy
b2xvZ3VlLnR4dApAQCAtMCwwICsxLDE1IEBACishIWNoYWluOworISFMQkNNTm9DaGFpbjsKKyEh
bG9va0FoZWFkSGFyZEJyZWFrOworCisKKworI2lmIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMK
KworICAgICRDSiA9IFs6TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6XTsK
KworI2Vsc2UKKworICAgICRDSiA9IFtcdTMwNDFcdTMwNDNcdTMwNDVcdTMwNDdcdTMwNDlcdTMw
NjNcdTMwODNcdTMwODVcdTMwODdcdTMwOEVcdTMwOTVcdTMwOTZcdTMwQTFcdTMwQTNcdTMwQTVc
dTMwQTdcdTMwQTlcdTMwQzNcdTMwRTNcdTMwRTVcdTMwRTdcdTMwRUVcdTMwRjVcdTMwRjZcdTMw
RkNcdTMxRjBcdTMxRjFcdTMxRjJcdTMxRjNcdTMxRjRcdTMxRjVcdTMxRjZcdTMxRjdcdTMxRjhc
dTMxRjlcdTMxRkFcdTMxRkJcdTMxRkNcdTMxRkRcdTMxRkVcdTMxRkZcdUZGNjdcdUZGNjhcdUZG
NjlcdUZGNkFcdUZGNkJcdUZGNkNcdUZGNkRcdUZGNkVcdUZGNkZcdUZGNzBdOworCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGYzNmM5MDIwNjlmM2E2
YzVjZDgwMzM4NTQ5ZmIxOTlhMDE4YWQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0CkBAIC0w
LDAgKzEsMTAgQEAKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSAnJzsKKyRJ
Tl9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUz
MDFDXHUzMEEwXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENK
ICRCQV9TVUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4
dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxMzQxNDYzNTU2NjZiZDE4MTFkY2M4MTc2NzU3
M2RhMzQwYzAwODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApAQCAtMCwwICsxLDEw
IEBACiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gW1x1MDAyMVx1MDAzRlx1
RkYwMVx1RkYxRl07CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07Cisk
SVNfU1VCID0gW1x1MDAzQVx1MDAzQl07CiskTlNfU1VCID0gW1x1MjAzQ1x1MjA0N1x1MjA0OFx1
MjA0OVx1MzAwNVx1MzAxQ1x1MzAzQlx1MzA5RFx1MzA5RVx1MzBBMFx1MzBGQlx1MzBGRFx1MzBG
RVx1RkYxQVx1RkYxQlx1RkY2NV07CiskUE9fU1VCID0gW1x1MDAyNVx1MDBBMlx1MDBCMFx1MjAz
MFx1MjAzMlx1MjAzM1x1MjEwM1x1RkYwNVx1RkZFMF07CiskUFJfU1VCID0gW1x1MDAyNFx1MDBB
M1x1MDBBNVx1MjBBQ1x1MjExNlx1RkYwNFx1RkZFMVx1RkZFNV07CiskSURfQUREID0gWyRDSiAk
QkFfU1VCICRFWF9TVUIgJElOX1NVQiAkSVNfU1VCICROU19TVUIgJFBPX1NVQiAkUFJfU1VCXTsK
KyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0IGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTY4OTY5OWQ4ZDBlNGMzNjgzNGIyZmFlMjU5MzI3NzU3YTI0ZDEzZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9T
VUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSBbXHUyMDI1
XHUyMDI2XTsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUzMDA1XHUzMDNCXHUzMDlEXHUz
MDlFXHUzMEZEXHUzMEZFXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQg
PSBbJENKICRJTl9TVUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
Sy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU5ZmNmMGY4YTk5MjIxMjBlYmIxMWRkNWRh
NDQxN2Y5MjY3NjI3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDEw
IEBACiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VC
ID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJf
U1VCID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRmMzZjOTAyMDY5ZjNhNmM1
Y2Q4MDMzODU0OWZiMTk5YTAxOGFkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dApA
QCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7
CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0g
W1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0g
WyRDSiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxO
b25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2MzU1OWViMWVkNjRmMjYz
ZDg5ZTE2MmQzMTc3MTk4N2NkZmNmYjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50
eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NV
QiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBP
X1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0pdOworJE5TX0FERCA9ICcn
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1
OWZjZjBmOGE5OTIyMTIwZWJiMTFkZDVkYTQ0MTdmOTI2NzYyNzIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdENKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9
ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NV
QiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5T
X0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0IGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE1OWZjZjBmOGE5OTIyMTIwZWJiMTFkZDVkYTQ0MTdmOTI2NzYyNzIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJB
X1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOwor
JElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcn
OworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyayBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9nZW5icmsKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQyMDZkY2ZmZmRkNGU3Y2VmMzJhYjU1NTNh
MTk5OTBjYzE4NWYyNwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzE0NTYKemNtZUh2ZHc1alV4
JVpsY0tuI30maWklZ1ptezg9QldWblVea19pKm9CTks+JEN7XlB5blZCUzBDb30wPjVHPlRSCnpO
bUA0SlhzcHUxPjFqMXBpZDFWKXs3eXhyTTtZWjMoVXQ7VWlnSHY9TVowNF9rKTlLNyVBRFczX0x8
QWVNJDI9fgp6XlpqJGFafSMpN3djZ3UkKlNwP3otUzZ6PVBpSyN4QUh0WCtvM1lqYCNATUF1K1hn
ZSUhRU9NPSppfWR9bEhGY3kKelVSWmZZV3o3PHpyYXkqc15sTEhGdmtERV4/YUx+Y0ZIMEJVXi1J
IWVPeUlETTxzZVo+a0tHPH11TF4wZmhOdFc2Cnp4Jm9hNlZgSUsxTC0/UXBhWTk7Q1FNKX1EM2ZC
amRCKXhzNS1fckRyNVM+aW1pMysod0E2JipDT2BwQlY/UUwtZgp6SyspQHkkN31qdDdXeFAkemJC
c3k+fXp5Nz9lMH1oY1QzMH5hQDZiZjx4Ykdfd0ZtYC1yfEM7NykmUlRSODRMd0gKenpEN2FVPnVW
TUlvKVMoWUprQGBDLU8lVXYxcVRMMXVkayQ3dm9BNWNnczFBJG5Gb0pgZWZONU5GMXlGcTswSUgk
CnpaLXZtO0JgT2xHdzwlUjgmQVVWSndjVHpwRkVnaWJVPVNZeUY7NWNualJ+Q1E4YGNEJGRzTkdB
X2omRVgpeT8mTwp6dWV+SntfKHB2UmIpPTgjQ214eX5sTUBJXnlTPnByO0kjfHclU1V+KDU3VURg
Z3pOUjg+JmVHJV9kNVFiZVdnTlEKejZZbiUqZ3MxQUd7IVVBM0JZUndxa1lqK0xfZ3xNdXZ1fW1h
TkJHfCMqWlNiVkQhWmAxWV50VSZjYzk1TWAkUktJCno/IWRsZXZvMm0jWHxYTzd0YTM0fkRFVEFH
QlZgJiZ7WT0kMG1hJGcyZzBYVk9oZHYpPUhfI1lMcU10eXkzWFc+Qgp6Rm0/bkxYfDliJVlGV1Y4
Y1RoZ01uNlZXWStAWE4waz8we2xyNz1ofGs8aGhvZURiUnBiOUBiVjFaV2J7RnI/eWUKekZpYENF
KUVCIX1kdEpja3hkd15hbkUxMG96dy15dnxLWm8kZjNhZk9CWVdLaXB5ZWE2cD9OJUVgNml8YFFF
NUs0CnpRb1otRkZRemAhUEFMLWNzRV5EKm1LejR6TSpBTFQqeSNfcmlfQXFaIzhYZEYrJj1RdEsp
cUdLKCg1QFZQQW9Fcwp6SXtKMURkOVAjSXF7fVp8OVNwZ2Zpei1yQFZkSjJjYFgkNWZ2P2d2NklF
QDI2KkNGd0sqSjdMc0lWcUU2SmRwN34KeiNzZTctV0lUfVpLKmo/WjRgZSkkQGolN3s4NHFNVWtu
ekMoNSlhaE0lRXdFcW0yK31yYG1OWEVeKj1pSV5+KUdECnojWj4hOSM/JnNuXjJeRkFwIVJYOXRu
NT00ZlQ0Vi1fSkt1fSY5fEZ4R3VON3pFdFArOFkjVGFsUlpodX5vYSshagp6a3xVXkZ4eGM0ITZa
eWcjODZxbj0jfVFZTnFyKjJ9JkRlR2RNWENRZjlJXjEyYW9xflVmWSM/NjB6RUoxWTI/TloKemlW
QyZQeV9eQ3UjYFhZYm59RD4oak97TDl3I2Y3JmtoNFc1OCRmTkhKQkl7QSF7b0Bec3twQWRqZnt6
d098akNQCnpnYG45WWgyeTkmVDhAPEYrem0qTVVOYEEtNmhfTS1JbDZYfXgoIyhBWWQzWW9qU28j
aTMkcFNISVViSi1FcGx9Rgp6MH0hPztyKTxqZTwpRXY+eHBRe1A5Znl0VyNnSTRrWj5Qd1A0Q214
PylgI2l7bHZaVnJzbyEqdiRZOz1pSE0kX3IKeitJR0hRPyYqUCZ4Tk5MQ3QkdlRfTilMfSYrbXlJ
WElWbWdlcz1Hbjgle3BRMV8hdyZFPy0/fGN0Nm1NTjlJZnE9CnpxZzkoQVlmPHt1KEk1JUNwTWE9
TWBQRiNSKyEzPVc9Uig2fVhIXiNmKzM8JC1yaFBXJEM5KytQaEJ3SmRrOXJoZwp6RnNyZ2xSTmwt
aEtVKUY7OD89K3ZIcyFBe3JCWFNlP3RtIWQrVHVvSSN8OHhJZ2orMXBSUiZxPENgRndgKEsrK2YK
elptd31SKWtqXk1AfGlfQkQ+U1V0Rz8wNmpLPl50NmEqKktxRXRQMWktPT0oOHJGPD8mcU5HZWNo
bHdIZ2JTd3U5CnpyP01TZVAoP2pZTTFAPSl4KkMxaEIxYm9uMFFyTGFgekZ7ezxwYlV3VGpXe2xz
cXZ4bnNBIUUwbUxzak4oZGF+PAp6VWp7T1VGfUAhP0glQlo1Z09yQFgyKE12VXtfUlNiI2R8SkNV
Z0FFQ1l+YkZBYmtJeXRLU1VARSU/byRFNTU8dVUKenF6IUdgbHV5KklPR3BjT19Dc3xTMC09JUdP
JnRlfjQ7X1F0PjwqR01jSTNkdEZvdjQxJmMqUGxfcllZRl4wXnY3CnpzVE5aQXFIe05uMHtrKEQq
S1NjeUJjejhGXiM7dlV0ZjwrUWA7OHFHTE52d1hBTUJ6UGNjPUwtYkRqQmF2JVBMNwp6PGV1U2px
dHk/bzhaRilGPEZJc2xLY2M9emhEU01mKX5RNENNciZrTDU0Wj1ob1V6OyZwdCY2fGwmUFBkaV5v
bEkKel4mPUVlY05lZGEzIzt9KUBafjl4KnZgZGZCYGR0Qk5sdDtKRW1DNVFqOFVEKnd1PiglP2RZ
em95cj0jSldVWTxnCnpZSkd+TXFqSURhUiFvQ2otJD1BfkVKPlFwdElDbExlNmVrJnheUTchNFFP
P0RhPjNFK0RNV15+ZSVgMjZQKEdCRQp6KlZVRGYhWkBpR08/cmNuLXBpJDVqWU1oTVNSeCZGcCtO
SXY2SUlvbE1aSUJLeSpnM3Y7YmJkdzV+OHEtPTd2Zz0KeilZNXdwPXtAIXBfdTlCKkZFbnhXdVY5
a1VeQ2F9U0NTKnRvbkc7PiozViNvbzluYyhDZUB4UFVnZiNYTFN8O2ktCnoxZkFoYndIZ2ZkYzRX
bEJZJiF5YS19e3wtRmVeSVpxM2Z5VzRfJiQ1KnVGUDMoaUNnR25UN0lid15vOzxRcipzbQp6QklC
NUw0NWhZKFE7b3JPeTw7PzExM2xeZD09MkcmUGB3cmMqajJFfVYoYSg8Tz9EZ2x2UD8xSyk+eiVu
Rz0waG0KelN2ZXkrNUFxRVMhZ2FsOEFaOzlENSQjPmI/QFEmXl81S0lZaDd8ZUpHPWNXaV49PkJt
MUBfaFR1MXU0IT4pbiV2CnpGUmhsOWI3fkR9TntfNjNBaCskeHl8Yj9PMzZran5yXncxX1N2alM9
QlAqfWdeX3F5Uj5wJG1uMTE1NT1qISNGUgp6KjJlVzxeWmg8fjUpMX1+TXJhVnteak13WkRFSkl9
ZyN+KWE3SCNiZ150WjB9WFcoamh3fUQyLSRqNUZ5czVtUCgKeiNPbVBrb2RmYiVIWk5ndVZ0MSg5
JEA+JEBkMHZOYU5YNkJNRykwZVVMcjJwbGBCNDRUQmZYVEwzMiNgSGNkV3tQCnpTYH07d216JWsr
T0oke1lmMkhYdEttTU05NnlVYm0lPXBtYmZVNyRDanFRKFBkZFZHb2pxTmBMVXx2NiVQVk5aTgp6
bDt7QEJYYDlscTRhRSl8a3hYc0lXZFBmOFJtYWlMWUUhSFZVQjFCLUdxPXVUcHtyPEBKT09ydmFq
VUh+LWdjKGcKenhaeEchKjFkKzthT2B3KkoqVStEO0x8M005VkpSdCRNSH1sU3xRbG54KSNAaDY1
MyopQSl5R1QlRmV5QTtndnFBCnpDITYqJVNsLShVcGVMSnR6M1NadUZlJiRuSmVNfXh6LTJ3eklB
IV52Xj9PTTV7dSlBTDxgUW5DbTVmfShqbz4hUAp6KFU8bjRAJEZSQXJrcSF8cF44dngrfWJ8O1B2
RXRrRSlIRl9yK3FsZDZ7OT9XbEp5UFEoP0pCQjA7dmw2KSRjKzkKemIhJj4mcE5aSkJ7dDspVkUm
NjspSkV6b0pBU04yY0hSVXQ0ak18TShae2YhKipRZyVHWmpDOGdyQSNafXFqWnBaCno2P3Y5TSNC
Nitfajx4TF5SQjZJNnplSXlXYk1KQipnP3pPY3MtbShYZGU+LSEjclZSUj16TEAwMzdwSjBfdkUl
Ywp6eGVhRTtRaD5iMlFqcXVGeDM9Uyk8b25jIUZWUj9KUDYwSTZnN0JJODY8VileKCN3YntOMW1y
ZmE2P2MoMkVDIX0KekJPe0tlem1UeiFPUiRORFpyP19lPEVCSCM3WT9EUEcwMit3dDsoTllCJnMt
NVoxYD1FYmxIQENvR18wO2paSGIqCnpjUmdKJEUoNUQ0bkBwaTs4WDJ4NjcwYWAwX2xHYUhETXhV
RShnYVVBS34pMjRlWiVfeDh8Rlc1RHM9bX1nfnEtegp6bEhDIXpmMVdpbWs1bDhKTiRQUEpVez5+
a3Eqa0VzKmVyODM2WiYlRGdOMz1+bj5nPUJYVVdkRStKYTluRVo3WVAKemM3ZTNAaGtaKzFkOGUk
KG1zbmkpSjgoJlA1OWR1S292RkI4b3lTJHRpbVQhUl4wVHIjR01uWnxYLUVBMlkxWVZFCnpFSXVx
Rl4kd1VzbkVEKDU3JktUamg/Q0JyQXYtPS1SZF57Zjh9KkV1RFhBQlZKODtuM0JJREh1QSlfNiUx
K2FoJgp6XyM5KFlySlNmeiZlKVdIUnxsYWxrPWcyLTVZemNqWmFiRD16QW5zWCgtbUBMOUAjWWw3
cDFzJWxqd3lKWGZ+ZT8KejUmbFgrQChvSihKanRjWHBYYS0oYHJfQmdFOCNFbzskUU08c0lFXkRG
VzItI0AxLTNGemR1NlFnMHMmSnA9QTRmCnp8NjhgeXRZRVR6Tm42c3JlNzImTiYpanhDZX5wWUs2
fmJBI29vYChlUH1MbTBgJFhIaHs1MkQ3KFliZWtHak0pVAp6TylmezxLPlJlO3taMj80QEJnZDA/
R3N+Vk5Ce1MpO2t1KktaJHZlVmErMFBaVUZDWTtnbHEhUW8hMjtSdE99LUsKekpUeV5gakdeZ3hX
ODJ3eWNxcldyX1Y1PiVTSjY4b3ptQGptYmdBcTg1bSREMS1BO2JxaVRaZGFLLUNFe0NSVjZgCno2
eSVZRDlhcyt2KXlIall3Z0UyeW5nJlohTC1NSExLLXpyOHo/RTgrS2d2cFlvM2VKLT9gZHlzaSlS
QGg3KTlIbAp6XlExTGVEYWxJWlluKSs8eS0wam5zcHteMTBnIVBfRF5PLV8+JlleMWVXbVU2PG5Y
ZD8xOHVJeF9OOEVWOThfeEcKenMjMT5HbDskbndtcV5uMUFuQ0QycldNZHRDIWR6blBQQnNxdmkl
V0s2eUklYStjbXl3KV88LSEtMXsmandlISp2CnpVMVg/b3pRV2JYaz1vYmowdTVDeSt5Vj4wdCEy
aW9VKDdtPmk1SEtfWkxmflU4YHpwcGQjZStDSVhiRzw3QTwoMgp6cyNPX3w4UVcpb1c4UHpWZCN1
NXstdHpWaD9KQEl1eWRnYVV3bCZfPHpCZnwpUmBANVRTbm9RTD8+SzV+OX1NfEwKelFPbVBmUXxR
U2ElV2tTQCtrRkVyWVE8IW5XcD5yQndPM2k0MmpvYjJuO2FTU2omYlhodykyejJTR0x8flY0OyFS
CnpId0koLTQoS3kwQEFsPGJtMVZuZ3RyMSY2S0YtP0V3SEU5Y2t1P1JRdWBrQ0QoMk1teUwobWsx
OEdYNT83YFQ4KQp6Yjdid1ZffDk0OSozOUZVcTQ2UEElOV4peGA8fihMVzdTbnt5Q3BJVjJkIy0z
JnU/OWcjYEFGUFhnaDVQY2xUTVcKemlWZWMrOGFpZD84QDktdGVlSlJFbTFnN0NBdkE4byU8R3BK
K1Y+aGVPM3FgJGp6THdvT197UyNqPXdASjhYdmQ+CnpXYVcqJXRXJEBUTHM8OHZEWjgmNnNxNjBS
SiQxUDY8OU9qJjlIO1RaRkx7MlI9TTJ9RGN3clhMMmwwRmAmdlNYNgp6JE1hITRBSG5se28/cHVJ
UTlRcWI9YzlSa0hQNWYqYFNtPVBjc2BjcjF3MD9lXllKe04hMUdCd0ZYREwjJiFfTncKejhxYTYm
eXAtbzxKZkZrIW58V1QmXjlyNkBjKW96PUdTNj99eHNCKEdkMHglKThzdTAkKGQlQnMzMmFeKEZa
P3lpCnomTCQlRWV1QjR6cmZ+JVE4JG1LYjJNS3pEcHd8ZGBuVl4+bWRZN1F6NSVlaVJQWlJWTkww
dHIwaUZ3KWtRLVRUIQp6ZFZydkVmX19OUXRwdSRpJFZISGtwbWhZZjI+S2E4Y00jTX5QJkdsWDYx
MEd6Y0w8dDgmfmJ2TTVSYD9MK0RtV1AKelAxZ2B+SndZVnxqVXVSJHBnZStWMngwXnwyPHBld1k0
UTx0akcobXl7ZV8/aUw1QiRYTX1xYmReYnxxNjJ6cjVfCno/RjgqNnNHRmNTM0VFODF6WjNMeGY8
N25jQ2pAOygmXm0mS1ZNRmN4SzAoKEk2ZTRJbUxFajswQ1A2QypUMHFjawp6MWwxQmBCWiVUdXkl
bTVrWn55N2opPmY5eWhtRmtVNCo+YHt1cGlQRm5Fd0xBaV8kfkw3fVA5NSQpNj1haHshcTEKemZZ
aVp7e0NOKEM/WXxeQUYzM3oyakFUKDhiVHFvbHF7NShkPWo0QGokb3dySzU1NmRAbE9fa0dLLWxZ
Xit+RCFMCnpyT0FIRDl9Y3lJTG1iVXhtKDtpJkYzSURRPkh9YGFKKDRIbjRtaFlEdU0oOCM4JlMj
T2I0bTlHekBuO0JzTDN0Vwp6ZHdoPC1ZS2d2ViVNPE9DPHl8dGxOJTlBeiRANiRWblpEZVZBbmdm
Q1ZYfT91ZzN4VW1kITspTnE7fXtESHU+K0IKejk4IVlSPjwmQHwkVH5HeXJAdikmenwrX2lmfj8y
cV5vQ3QtaCEwU0d7KmNFPkArKl9OPi18QUQqQnVINmQ9bEQkCnphISU4RjRfU3tVaSpLPjA4IWte
a2w5MEtiQXdQUTdmUjE/bVBQb0Y/aTJrcFpkflViUE9eJCt0biV5cHMxS3l4fAp6NV92VF5EZW5e
QW1AYUdaZCVnYTlRTFRRcClaeiM9T19FJmgyMW5RJWZAQSN7RHA9dnR0Wj0hNUEjTVVSNURmcUYK
elFBaz1lMl9fOUZxY0k/YmRDVk9NeipMTiUpOEVgbzFMZ0pqO0c5NVh4WV9Mc05uO0N4V0FoamRL
UjEqUXJSRCgqCnpadz8xVFFvVFJhQi1PajZWMmopN1k0RXNSTVJgbmBwWS18b2A4UD5aTj0oeHlO
bWxCO1d8X2spUmZMMFJEO1Npagp6OUxePyFQJCRzaDd4Ulp+Zm5KUHFrITFGSXI1WU4pcGo2YHl4
JnRmR2d2MUppV3M9azNsUTRTZGZHNlp9Y3M9KkkKekNGfWchQjIwO3BCTlByd2JJRDZBUHx4UTMh
KEpCYF58IWN2big8b2FEIUIoUmR0RWVFZTNFTzd1K3o4RlBTUnpoCnpRX3wjOFNSc0d5ezNiXkxS
X05KSVhiWlYoO0kjQHooQ3c8QXJENWVPIXluS35PT2hqYElsYSZ8MzhVWipIflhZUQp6Un5+RDBg
fDFQdGwpKSkhbVp5NTNqRn18SEM/VCM1WHJaPl5zN0V4YERWNmU9KSk4OGVvU2ooRXNhPmJGJEhh
ezEKenFhUzJZITNPMyE2QkNYbDdnMkh9NWtTSjhrbCpqNiQ8XlhAaGNKX2FWVyQmZy1WcFlCUn5O
QVdEYE5ON2klRSNCCnpDdDtLOyt9eH5mNTFMaGwhUSNTVDVlO1NYS30teCFWdU1WUWxmY3V1aGp2
MnpabyNrLXZQbnBVKTVhK0A3IUVBWQp6RiZMUF47NG93eD1vP0A5VWNETjhJeDEmPDNtRzI1PjNk
RTN3aX4tRXpQVEwxRVpXenhTI3VkMXlkTjl1ay08PWoKemdTVUpMJWtEJihwVVZ1PVB7MmMoVkZs
aVlAYHRtVz8lYH11YDNQcFhmbl55KzRqbntvLXdKakFxaTZZZXR1T1ZXCnpeb253JkN8Z0NqVVgr
aURALWIwdjUjfDM4PC1kd0BrMHwkeEA7eS09NzNGODVKU3xHU0BtViklYmAyQmQ2ezNfeAp6SVlF
QHVNMHY5KVdsYDNNQC05Jn1oX1hlTF9sZEd5bG47dD5xYlEjYzwhP2x9UmdeSk56QW5uUU1FUVh6
UloqVDQKejwoSHh5JkVFU35WJE18cj92WmQqdnE2ZEQ2Pnpqaj4jeURxM0F7LUY3bjdTTzxiSEF5
ZUpoM0Imbl9ZdDVIQHlRCnpNOXdlZEhlRSF7QmpvPTFCNjQqN3F2d1QtJFQ+QiFPckcmVCNzZTct
V0lUfVpLKmo/WjRgZSkkQGolN3s4NHZ0Xwp6PEFJVDVPSU03blNhRyRiYiU7ZDRmSkA4bV9CJmpU
PlhxISlLK01wRVUpOGs3JmBBdVJxbllWd19RcUFLP0QkKnYKenB4PWk7U1pLOTxXZUlESUEqUmU5
TCs1M3Zocmg5UklQYkFMbzk/a1VoOCtQSEJWezFFNUgpSF5BfEJyV09wemxuCno9bnIxYEFMIWM9
eGBpfXJyUVp5TVc8RXkkRXB0JkxQJiQmVEVTYCM+bDQpd0smKlN2RispTWRpI0xxV1hJO3QwaQp6
SmdrIWklRCsqe1Z5YXc4Njdxbj1scXB7eWJBIVR+TVQ/aShiP3NFdm1gdF9SaH5UKy1OVVgrR1Fw
PHQpdSFKO00KejRgYGxRVGpnIz5WQXRpWCNFNXttezZlMVotcFhjVHRwRj0qY1k1NnBVbF9oKWZo
SkNYaX5XSmNqJUtkOWdfOWNICnpBcSElX21QRlc/Z2phRDYjV00rT0hFPVplSEc9QnxELWBnJGVJ
KG4tMl42JCtkSigtUSgjOW1vaDNLMHpseUl9Qgp6NW1ESDFmWGozeFdobUIzd1lEVEZpNFo0SXlF
KE5idStyV1RhUHlrbWw5WGwjViNgakYrSGF0RlI7JkglMDBlNmgKek1rZXdoUFBSOUBvNiF9VGU/
JlpANWVNZEVnVHZ6YGhNSGdtNUo2OCFwQk55dnRXRlM1NlZiZyZJNGNXQ0wkZFNoCnpJT19Ie2tq
aFJDcClud0lCUyt6WFpnZmB5M2xlViYjfWR4eT0yIzI8USR2VT0rTlItUXQhNkJOQHRVdTNqNiV0
egp6WEZ0YitaYTQ0akEmIU9JVWYjbmE5T0ZOVmtmPSlOS3BRN0c4VislI3J3SXZRX08wWmVZfFo4
PHtjOHJReHNGaSQKekJNRTBTcEs2QH42O29tKHA8JG9zcj8hX0c/RCZsKyt1cXkrenF5Xl5rUUBJ
YSEkQ3tCWHFrTmhldkg1eGJVVHt1CnpZKVk3SXJDO0NocCo4byNEJFRLTERNQyZ6NTVsfTM4WmRg
YFl8IzMjI244ZkRIMU18bVU9V1FTRmErN2gxfilyfQp6fDcmdWg2cnN8dFM7JTZ1NUk9PkplczE5
MV8/Pn13P3p0PzslcmU7VVF2Zj4qYE9ZIzhKXzVNQTQzUyMkZDU/a28KemAzXnwyR0hBa282Rj89
KFQ0eThjcUFXSFd2aUshe29pdjE4Pj4rNDlMS010e2p4MFhAPnB8K0NMeX5ofmhzVmRCCnokZkRA
PlEoMEp8Pl5DRyYlb0NLZyZQQ1JWKmxyZzZTWXV+QCUoQSE4aEc3bWcySEJ4KG1hVD5RUyNNU1lt
VGEoegp6Xj1FMCRYdzYwJmF9NT4+V1YzVjc4SmlESC1TfWB8TkdXP2grY2JsMSZ6P0drP1p+ZGMh
bnVkLSVDMl59PW0hWTQKekgoVDJUKn1tKnIwbGYpYnRxWjYrV2spRk1UdTNOb2AoOzl7JGN8V1B1
KH5HQ2VQbjJmUjNiX0ZRaHEqdTR5dlh5CnpVK05zKHZmb2ZyUVgrTDMkfDtVYkJrUTZIO3dlTyNp
WCNOaDh0flFJVFpObCVDbEx6ZzYoTExmVXpaS1Ezc1B8Ngp6N2Era2B7Ml9jWHZRKFZ2UX5hRUdQ
YSNxTDFXcSlue31CQ3ZpSEM1aXBUTTY1SzVtY31kblg9ISpCfkohb31CPjMKejtuU0Z5TnZwZWBh
S3ppJFIxSyMoaUlebG5fNXNyTUFTVXtBTGZ7RXxgaGt4flgpaFBEQms7KnI7e1R9NyYpfGV0Cno3
aTs+YjA+MipaY1p2M0E1PGtUcjMqam1EKUJyYWtiPlQrfDZzJHF1Q0Qme0NEdUleXmB+aVctZyMy
Y0t1ZWVUPQp6cjtsVnZVeUk9WExFeD18fERuTGsxJTZXQ0N4a3FHYUwoLSF7QSZmP0RjVXkpeWhR
TDkyPmdoXnpiKWBxQXh9VFAKemxmRCVLfERuS0oxcFdeUlQtNSlLITFEemo2TD9KRWhkNz1PUGln
JTxDaXE3JVkwd05pQmsqcGFlK1loe3E0ckQwCnpZVyVBTzk9ayFxPjhFK2x6ZnJeSzJZUE89ITBC
Z3Qha05KNz1YQW41MT5QWD1aaF93P0BNPlhDUk4kUWd8MFFyIwp6TjNLMjNYKmpqT3A5NERseERH
ZENFPCFqZGY0ZEklYT1hQkAoNExTRXxER25GPFVnJDhOcVpqRzttXyZ0VHtgP3YKekl7YU43ZXBI
OF8pWnE7NEprPWtBYkAmSiFLMXpwUXRIVz45O1MrU1lOciN1fGFJKzRWYkAmbjtld3otaik4VEYl
CnotbUpyZUl7YlMmeWlKRWtib2U3MG99M1NsPkZ7VENfem9UM3FyKHNEQFEtISk3ZG84d3pTUX02
bEAxQFQ7bVA/YAp6cVR8b2o7aiZKPzZ3P15qMWNybTM7ck0yQWtuVGROTCVKS3VqPGY+RmZtRHk9
TH48ZHlrczZXY19xTXI2SHpVbk4KekRufkxTRWtJZ2BCcVB5KmM/OzRhQnBYcnsocWcwfk5Zek82
OSMoXzI2bG9iIUV6KWdCYlJhSEFgWm0lWE5Pdk1OCnpBYkY3UmwrJGxgNi1lYHVFSiYzfHt+UC13
dkVve01aVnwtKUpmYmYjIXArNk9mVXtXcFdqfDRmPy1ZdWhFaUQmRgp6U0E7IVlTMjYkVUx3eGZS
NnhFOUFJamhFdngxXnZ1b3clZ19KOXQkSVBXSmYmYyZ7ajRSWFcyeVZfSEpRJit5VnsKekdWdzJo
JXMhWEo8TXVGbnZqZG03aDRiZzl7Q2hVOStyO2R5Q1glK3o2clVKenFfaWRBWnspOUd7fmJraWpp
WG1KCnpFQiFNeEpPQVJ4Jk0kaTYrRSZ5ZXU1VEE+R3dxSjgtS2d6cEc8c2pyUVRVfWJvdEFuRFB2
YExhY1JHbiotX3VEZwp6YmNAIUo9ejUoXzslX24rbEsyZj5QdiUjNkomfEFVKH1fWDRuZD9ZQXsl
fDE/Z0w7Nz1VRFZUdzshUHUrczluT3AKemhOanY2SEUlejdXZ29jTml4QyE9YCFyMHUoRj5CZV5y
dWI7LTBWfFAtMEBTPChsa3VGYD17fn5adm0rXkBmTUl1CnpPMXY1OS0/VDNsUTI3UXY1Mllre3wy
S211Mzd6VFQ2RnJwJlBDKD8qRXxlNzlMUmppKzsjcmBrZ2I+bz1Tdis9LQp6TSRzWiVvVFNDS0c/
MWNPOHBMQjs5OEFVOzFTU0Z1VDRXJitRbXtBaHdie1N9SW4zVW10dSFpdnpfZGx5QVlTNl8KejRm
c1M3JVpVbyZZQWRPTTJMdFI0SlBLZk01UilgZk1IM1pvYGdyNWw3RWUlbngySmJ9ZFp8eHxFQ0Mj
ZERGSn5ZCno+Q3EoNmNwTTRrMXB5P1lCe1U5JWpPX2ZJd3tNNlFYLXV1M1RyTD9NTmB4NWY7YmVH
NzE0VWZ1ZzZKWDZMO1o5MQp6Z0pDaGVtM0QhU248OVRFQTsqMnlmUmdWMGhFbmJKbzMjPExMPGJq
MWR6RD4+dlA4aFJOen00WTJMM1BjaCViKCkKeiQ8eSZubj5CNlBsPUBrWURicl4oJSRRbmdubVQ+
Zk92a0t4JDFLOzM1LV9KYVhVJistJUVKQUpiMkBHc18yOClZCnp6eUhoTTElNGlUWTtUWSYocSpG
JEthaExGZ0xBJlJ0TCZ9bUVBdXxSR15nWVdzYn00b3MjfVUkTSZGdEpNRUtwZQp6OShuZmV2Tks9
IXw2RT5CYmxfNitGSGlvO2Qramd3b19JOSsofWBXRG5zMGJgYHpPdyQreEk+XmJqYGRlPEchMnMK
eitDcDM0b2opdkR3QWckOSFwZTchZjNXRWYlYnEodnJ8SFJ4TT8zR2RqUjtsVCtXVipDcElvelc7
IzI1OWIpNFFOCnpuZWZHbTZrbHxLb2FQSEQ+d29UeGpqTl4zI21+NCRnallSfmI0eW91JkVvSTA/
JiFKdCQ7cWI9JmZJK0V7NCtseQp6OH4peGktQFIrZWxRa2JhYEozP2pPfi0jTHBMO3hoXkdtYWJG
MVdwUU5fcVM0biNRKm17UWpCMGpDO2cjXnEpUmoKemB1NmpVQUZ1bEU7VDtEaXtAWUopb3Z8Uz5e
MVdlT298QiRGeGFRbCYjfEI2SGtLTlRYQCMkTnF5P1NzJCpYQmhmCnpEYCE2Yj55UTU5Zzs3SHZ7
cWdWaVA1dyV+YDdfdHJ0cT1aci1rYEAwdDg7Z31gczIrOUVfPUNmKVNQRUdiaHJIQQp6O0RYPVlf
R0RKQCZHKmF4Vz91WnokaWtJSElYQkc+YFFOQkdkUkBeTSYzKF8jOUB8Kil0RncyeW1vTkx8c1dh
YnUKemJMKWN6RlQ4JXFgTjJRRz5kajQmdm1YcDRVKzRiNEs0eTNzNGBlKSRAaiU3ezg0cU1Va251
cHEwfnJyd0pkcDd+Cnojc2U3LVdJVH1aSypqP1o0YGUpJEBqJTd7ODRxTVVrbnVwcTB+cnJ3SmRw
N34jc2U3LVdJVH1aSypqP1o1QiRJRwpHZiZUKjBRYmw2YAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay5y
ZWFkbWUgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrLnJlYWRtZQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42YjE2ZTNmNjYxMDA5YTk1Njg4NjVmYmViMGRhZTE1ZDQ4MzIzNzY4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay5y
ZWFkbWUKQEAgLTAsMCArMSwxNSBAQAorSW4gb3JkZXIgdG8gZ2VuZXJhdGUgdGhlIGdlbmJyayBi
cmVha2luZyBydWxlcyBjb21waWxlcjoKKworMSkgIENoZWNrIG91dCBJQ1UKKzIpICBjZCBpY3Uv
c291cmNlCiszKSAgbWtkaXIgaW5zdGFsbAorNCkgIC4vcnVuQ29uZmlndXJlSUNVIE1hY09TWCAt
LXByZWZpeD0kKHB3ZCkvaW5zdGFsbCAtLWVuYWJsZS1zdGF0aWMgLS1lbmFibGUtcmVuYW1pbmc9
bm8KKzUpICBtYWtlIC1qOAorNikgIG1ha2UgaW5zdGFsbCAtajgKKzcpICBDcmVhdGUgYSBnZW5i
cmsgQysrIFhjb2RlIHByb2plY3QKKzgpICBEZWxldGUgdGhlIGF1dG8gZ2VuZXJhdGVkIG1haW4u
Y3BwIGFuZCBkcmFnL2NvcHkgaW4gc291cmNlL3Rvb2xzL2dlbmJyay9nZW5icmsuY3BwCis5KSBB
ZGQgc291cmNlL2NvbW1vbiBhbmQgc291cmNlL3Rvb2xzL3Rvb2x1dGlsIHRvIHRoZSBVc2VyIEhl
YWRlciBTZWFyY2ggUGF0aHMgbGlzdCBpbiB0aGUgcHJvamVjdCBidWlsZCBzZXR0aW5ncworMTAp
IEFkZCBVX0RJU0FCTEVfUkVOQU1JTkc9MSB0byB0aGUgcHJlcHJvY2Vzc29yIG1hY3JvIGxpc3Qg
aW4gdGhlIHByb2plY3QgYnVpbGQgc2V0dGluZ3MKKzExKSBVbmRlciDigJxCdWlsZCBQaGFzZXMs
4oCdIGFkZCBhIGxpYnJhcnkgdG8gbGluayB3aXRoLCBzZWFyY2ggZm9yIOKAnGljdeKAnSBhbmQg
c2VsZWN0IHRoZSBzeXN0ZW0gbGliaWN1Y29yZQorMTIpIERyYWcvY29weSBzb3VyY2UvaW5zdGFs
bC9saWIvbGliaWN1dHUuYSBpbnRvIHRoZSBwcm9qZWN0CisxMykgQ2hhbmdlIGJ1aWxkIGNvbmZp
Z3VyYXRpb24gdG8gUmVsZWFzZSBhbmQgYnVpbGQgaXQhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4
dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IDMxYTNmMDJiM2VjYThlMDUzZGQ1MjUyNTA1MTI1MzVm
ZTEwYmJiM2IuLjcwNGZhZmNmZDY1NThhZGE1MWI0MzRjZDI2Mjc5N2E3Yzc1MTA2MTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCkBAIC0yOSw5ICsyOSw2IEBA
CiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3
Lmg+CiAKLS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0dGVyIG5hbWUKLSNkZWZpbmUgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkKLQogbmFtZXNwYWNlIFdU
RiB7CiAKIC8vIEl0ZXJhdG9yIGluaXRpYWxpemF0aW9uCkBAIC01OSw2ICs1NiwxMiBAQCBzdGF0
aWMgVGV4dEJyZWFrSXRlcmF0b3IqIGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhjb25zdCBj
aGFyKiBicmVha1J1bGVzKQogCiAjZW5kaWYKIAorI2lmICFQTEFURk9STShNQUMpICYmICFQTEFU
Rk9STShJT1MpCitUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5n
UnVsZVNldCBydWxlU2V0KQoreworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCiAKIC8v
IEl0ZXJhdG9yIHRleHQgc2V0dGluZwogCkBAIC0xNjUsMTMxICsxNjgsMTQgQEAgVGV4dEJyZWFr
SXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZykKIFRleHRC
cmVha0l0ZXJhdG9yKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQog
ewogI2lmICFQTEFURk9STShJT1MpCi0gICAgLy8gVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBj
aGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3Ci0gICAgLy8gPGh0dHA6Ly9z
b3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291
cmNlL2RhdGEvYnJraXRyLz4uCi0gICAgLy8gVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhl
IG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBiZWxvdzoKLSAgICAvLyAqIFJlcGxhY2VkICdbXHB7
R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFs
X0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJs
aWVyOwotICAgIC8vICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBt
b3ZpbmcgYWZ0ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOwotICAgIC8vICogQWRk
ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBz
aWducyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7Ci0g
ICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVm
b3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgotICAgIC8vICog
QWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgotICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBrUnVsZXMgPQotICAgICAgICAiJENSICAgICAgPSBbXFxwe0dyYXBoZW1lX0Ns
dXN0ZXJfQnJlYWsgPSBDUn1dOyIKLSAgICAgICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9D
bHVzdGVyX0JyZWFrID0gTEZ9XTsiCi0gICAgICAgICIkQ29udHJvbCA9IFtcXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsiCi0gICAgICAgICIkVm9pY2VNYXJrcyA9IFtcXHVG
RjlFXFx1RkY5Rl07IiAvLyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJr
cwotICAgICAgICAiJEV4dGVuZCAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRl
bmR9ICRWb2ljZU1hcmtzIC0gW1xcdTBFMzAgXFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVC
Ml1dOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayA9IFtbXFxwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBT
cGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOyIKLSAgICAgICAgIiRMICAgICAgID0gW1xccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOyIKLSAgICAgICAgIiRWICAgICAgID0gW1xccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOyIKLSAgICAgICAgIiRUICAgICAgID0gW1xccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOyIKLSAgICAgICAgIiRMViAgICAgID0gW1xccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsiCi0gICAgICAgICIkTFZUICAgICA9IFtcXHB7R3Jh
cGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1dOyIKLSAgICAgICAgIiRIaW4wICAgID0gW1xcdTA5
MDUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEhp
blYgICAgPSBcXHUwOTREOyIgLy8gRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQotICAgICAgICAiJEhp
bjEgICAgPSBbXFx1MDkxNS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixI
YQotICAgICAgICAiJEJlbjAgICAgPSBbXFx1MDk4NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0
dGVyIEEsLi4uLEhhCi0gICAgICAgICIkQmVuViAgICA9IFxcdTA5Q0Q7IiAvLyBCZW5nYWxpIFNp
Z24gVmlyYW1hCi0gICAgICAgICIkQmVuMSAgICA9IFtcXHUwOTk1LVxcdTA5QjldOyIgLy8gQmVu
Z2FsaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkUGFuMCAgICA9IFtcXHUwQTA1LVxcdTBB
MzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUGFuViAgICA9IFxc
dTBBNEQ7IiAvLyBHdXJtdWtoaSBTaWduIFZpcmFtYQotICAgICAgICAiJFBhbjEgICAgPSBbXFx1
MEExNS1cXHUwQTM5XTsiIC8vIEd1cm11a2hpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRH
dWowICAgID0gW1xcdTBBODUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEK
LSAgICAgICAgIiRHdWpWICAgID0gXFx1MEFDRDsiIC8vIEd1amFyYXRpIFNpZ24gVmlyYW1hCi0g
ICAgICAgICIkR3VqMSAgICA9IFtcXHUwQTk1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVy
IEthLC4uLixIYQotICAgICAgICAiJE9yaTAgICAgPSBbXFx1MEIwNS1cXHUwQjM5XTsiIC8vIE9y
aXlhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJE9yaVYgICAgPSBcXHUwQjREOyIgLy8gT3Jp
eWEgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRPcmkxICAgID0gW1xcdTBCMTUtXFx1MEIzOV07IiAv
LyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkVGVsMCAgICA9IFtcXHUwQzA1LVxc
dTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBBLC4uLixIYQotICAgICAgICAiJFRlbFYgICAgPSBc
XHUwQzREOyIgLy8gVGVsdWd1IFNpZ24gVmlyYW1hCi0gICAgICAgICIkVGVsMSAgICA9IFtcXHUw
QzE0LVxcdTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRLYW4w
ICAgID0gW1xcdTBDODUtXFx1MENCOV07IiAvLyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAg
ICAgICAiJEthblYgICAgPSBcXHUwQ0NEOyIgLy8gS2FubmFkYSBTaWduIFZpcmFtYQotICAgICAg
ICAiJEthbjEgICAgPSBbXFx1MEM5NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4u
LEhhCi0gICAgICAgICIkTWFsMCAgICA9IFtcXHUwRDA1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFt
IExldHRlciBBLC4uLixIYQotICAgICAgICAiJE1hbFYgICAgPSBcXHUwRDREOyIgLy8gTWFsYXlh
bGFtIFNpZ24gVmlyYW1hCi0gICAgICAgICIkTWFsMSAgICA9IFtcXHUwRDE1LVxcdTBEMzldOyIg
Ly8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAiJFJJICAgICAgPSBbXFxVMDAw
MUYxRTYtXFxVMDAwMUYxRkZdOyIgLy8gRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycwotICAgICAg
ICAiJFpXSiAgICAgPSBcXHUyMDBEOyIgLy8gWmVybyB3aWR0aCBqb2luZXIKLSAgICAgICAgIiRF
bW9qaVZhciA9IFtcXHVGRTBGXTsiIC8vIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3Rvcgot
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtc
XHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxc
VTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQx
IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFG
NDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAw
MDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxc
VTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRF
IFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2XTsiIC8vIEVtb2ppIHRoYXQgcGFy
dGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUy
NjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAw
MDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxc
VTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZF
LVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFG
NDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAw
MDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxc
VTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMw
IFxcVTAwMDFGOTE4XSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJz
Ci0jZWxzZQotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxc
VTAwMDFGNDY5IFxcVTAwMDFGNDhCXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldK
IHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1
MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUw
MDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBc
XFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3
QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAx
RjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUw
MDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0g
OyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAg
ICAgICIkRW1vamlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiIC8vIEZpdHpwYXRy
aWNrIG1vZGlmaWVycwotICAgICAgICAiISFjaGFpbjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCi0gICAgICAgICIhIVJJTm9DaGFpbjsiCi0jZW5kaWYKLSAgICAgICAgIiEhZm9yd2Fy
ZDsiCi0gICAgICAgICIkQ1IgJExGOyIKLSAgICAgICAgIiRMICgkTCB8ICRWIHwgJExWIHwgJExW
VCk7IgotICAgICAgICAiKCRMViB8ICRWKSAoJFYgfCAkVCk7IgotICAgICAgICAiKCRMVlQgfCAk
VCkgJFQ7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJFJJICRSSSAk
RXh0ZW5kKiAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqOyIKLSAgICAgICAgIlte
JENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZd
ICRTcGFjaW5nTWFyazsiCi0jZWxzZQotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0
ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSAgICAg
ICAgIiRSSSAkUkkgLyAkUkk7IgotICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAg
IiRIaW4wICRIaW5WICRIaW4xOyIgLy8gRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCi0gICAg
ICAgICIkQmVuMCAkQmVuViAkQmVuMTsiIC8vIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQotICAg
ICAgICAiJFBhbjAgJFBhblYgJFBhbjE7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCi0g
ICAgICAgICIkR3VqMCAkR3VqViAkR3VqMTsiIC8vIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkK
LSAgICAgICAgIiRPcmkwICRPcmlWICRPcmkxOyIgLy8gT3JpeWEgVmlyYW1hIChmb3J3YXJkKQot
ICAgICAgICAiJFRlbDAgJFRlbFYgJFRlbDE7IiAvLyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQot
ICAgICAgICAiJEthbjAgJEthblYgJEthbjE7IiAvLyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkK
LSAgICAgICAgIiRNYWwwICRNYWxWICRNYWwxOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2Fy
ZCkKLSAgICAgICAgIiRaV0ogJEVtb2ppRm9yU2VxczsiIC8vIERvbid0IGJyZWFrIGluIGVtb2pp
IFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlN
b2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0
aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotICAgICAgICAi
ISFyZXZlcnNlOyIKLSAgICAgICAgIiRMRiAkQ1I7IgotICAgICAgICAiKCRMIHwgJFYgfCAkTFYg
fCAkTFZUKSAkTDsiCi0gICAgICAgICIoJFYgfCAkVCkgKCRMViB8ICRWKTsiCi0gICAgICAgICIk
VCAoJExWVCB8ICRUKTsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIk
RXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kKiAk
UkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAg
ICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSNlbHNlCi0gICAgICAg
ICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01h
cmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJICRSSTsiCi0g
ICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAiJEhpbjEgJEhpblYgJEhpbjA7IiAv
LyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkQmVuMSAkQmVuViAkQmVu
MDsiIC8vIEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRQYW4xICRQYW5WICRQ
YW4wOyIgLy8gR3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRHdWoxICRHdWpW
ICRHdWowOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRPcmkxICRP
cmlWICRPcmkwOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRUZWwx
ICRUZWxWICRUZWwwOyIgLy8gVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkS2Fu
MSAkS2FuViAkS2FuMDsiIC8vIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRN
YWwxICRNYWxWICRNYWwwOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAg
ICIkRW1vamlGb3JTZXFzICRaV0o7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVu
Y2VzCi0gICAgICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiIC8vIERv
bid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9u
IHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKLSNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiRSSSAkUkkrOyIK
LSAgICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAg
ICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiJEVtb2pp
Rm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiOwotI2Vsc2UKLSAgICAgICAgIlskRW1v
amlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiJEVtb2ppRm9yTW9k
cyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiCi0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0g
ICAgICAgICIhIXNhZmVfZm9yd2FyZDsiOwotI2VuZGlmCi0gICAgc3RhdGljIFRleHRCcmVha0l0
ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9y
V2l0aFJ1bGVzKGtSdWxlcyk7CisKKyAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBpdGVyYXRvckZv
clJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0OjpDdXJzb3JNb3ZlbWVudCkpIHsKKyAgICAgICAgaWYg
KGF1dG8qIGl0ZXJhdG9yV2l0aFRleHQgPSBzZXRUZXh0Rm9ySXRlcmF0b3IoKml0ZXJhdG9yLCBz
dHJpbmcpKQorICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yV2l0aFRleHQ7CisgICAgICAgIHVi
cmtfY2xvc2UocmVpbnRlcnByZXRfY2FzdDxVQnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yKSk7Cisg
ICAgfQorCisgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGN1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcyk7CiAjZWxzZSAvLyBQTEFURk9STShJT1MpCiAgICAgLy8gVXNlIHRoZSBzcGVj
aWFsIFRoYWkgY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGZvciBhbGwgbG9jYWxlcwogICAgIHN0
YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGlu
aXRpYWxpemVJdGVyYXRvcihVQlJLX0NIQVJBQ1RFUiwgInRoIik7CkBAIC0zMTcsNDQyICsyMDMs
MjAgQEAgdm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0
ZXJhdG9yKQogICAgIExpbmVCcmVha0l0ZXJhdG9yUG9vbDo6c2hhcmVkUG9vbCgpLnB1dChpdGVy
YXRvcik7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFByb2xvZ3VlID0KLSAgICAiISFj
aGFpbjsiCi0gICAgIiEhTEJDTU5vQ2hhaW47IgotICAgICIhIWxvb2tBaGVhZEhhcmRCcmVhazsi
OwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0JlZm9yZSA9Ci0gICAgLy8g
ZXhwbGljaXRseSBlbnVtZXJhdGUgJENKIHNpbmNlIElDVSB2ZXJzaW9ucyBwcmlvciB0byA0OSBk
b24ndCBzdXBwb3J0IDpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoKLSAg
ICAiJENKID0gWyIKLSNpZiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNV
X1ZFUlNJT05fTUlOT1JfTlVNID49IDkpCi0gICAgIjpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFw
YW5lc2VfU3RhcnRlcjoiCi0jZWxzZQotICAgICJcXHUzMDQxXFx1MzA0M1xcdTMwNDVcXHUzMDQ3
XFx1MzA0OVxcdTMwNjNcXHUzMDgzXFx1MzA4NVxcdTMwODdcXHUzMDhFXFx1MzA5NVxcdTMwOTZc
XHUzMEExXFx1MzBBM1xcdTMwQTVcXHUzMEE3IgotICAgICJcXHUzMEE5XFx1MzBDM1xcdTMwRTNc
XHUzMEU1XFx1MzBFN1xcdTMwRUVcXHUzMEY1XFx1MzBGNlxcdTMwRkMiCi0gICAgIlxcdTMxRjBc
XHUzMUYxXFx1MzFGMlxcdTMxRjNcXHUzMUY0XFx1MzFGNVxcdTMxRjZcXHUzMUY3XFx1MzFGOFxc
dTMxRjlcXHUzMUZBXFx1MzFGQlxcdTMxRkNcXHUzMUZEXFx1MzFGRVxcdTMxRkYiCi0gICAgIlxc
dUZGNjdcXHVGRjY4XFx1RkY2OVxcdUZGNkFcXHVGRjZCXFx1RkY2Q1xcdUZGNkRcXHVGRjZFXFx1
RkY2RlxcdUZGNzAiCi0jZW5kaWYKLSAgICAiXTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4
MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1
MjAxM107IgotICAgICIkRVhfU1VCID0gW1xcdTAwMjFcXHUwMDNGXFx1RkYwMVxcdUZGMUZdOyIK
LSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07Igot
ICAgICIkSVNfU1VCID0gW1xcdTAwM0FcXHUwMDNCXTsiCi0gICAgIiROU19TVUIgPSBbXFx1MjAz
Q1xcdTIwNDdcXHUyMDQ4XFx1MjA0OVxcdTMwMDVcXHUzMDFDXFx1MzAzQlxcdTMwOURcXHUzMDlF
XFx1MzBBMFxcdTMwRkJcXHUzMEZEXFx1MzBGRVxcdUZGMUFcXHVGRjFCXFx1RkY2NV07IgotICAg
ICIkUE9fU1VCID0gW1xcdTAwMjVcXHUwMEEyXFx1MDBCMFxcdTIwMzBcXHUyMDMyXFx1MjAzM1xc
dTIxMDNcXHVGRjA1XFx1RkZFMF07IgotICAgICIkUFJfU1VCID0gW1xcdTAwMjRcXHUwMEEzXFx1
MDBBNVxcdTIwQUNcXHUyMTE2XFx1RkYwNFxcdUZGRTFcXHVGRkU1XTsiCi0gICAgIiRJRF9BREQg
PSBbJENKICRCQV9TVUIgJEVYX1NVQiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQ
Ul9TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgx
NEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAg
ICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xc
dTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1
MzAwNVxcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwRkRcXHUzMEZFXTsiCi0gICAgIiRQT19TVUIg
PSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKICRJTl9TVUIg
JE5TX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVh
eDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBc
XHUyMDEzXTsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAg
IiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1
MzAxQ1xcdTMwQTBdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIK
LSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAn
JzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5v
bkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJ
RF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0g
ICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAn
JzsiCi0gICAgIiRJRF9BREQgPSBbJENKXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0
aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSyA9Ci0gICAgIiRC
QV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0g
ICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAn
JzsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9B
REQgPSAnJzsiCi0gICAgIiROU19BREQgPSBbJENKXTsiOwotCi0jZGVmaW5lIHVheDE0QXNzaWdu
bWVudHNDdXN0b21TdHJpY3ROb25DSksgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0
Q0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Q0pLICAgICAgICB1YXgx
NEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0
b21EZWZhdWx0Tm9uQ0pLICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLCi0K
LXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIgPQotICAgICIkQUkgPSBb
OkxpbmVCcmVhayA9IEFtYmlndW91czpdOyIKLSAgICAiJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBo
YWJldGljOl07IgotICAgICIkQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJB
X1NVQl07IgotICAgICIkQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOyIKLSAgICAi
JEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsiCi0gICAgIiRCMiA9IFs6TGlu
ZUJyZWFrID0gQnJlYWtfQm90aDpdOyIKLSAgICAiJENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5n
ZW50X0JyZWFrOl07IgotICAgICIkQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9u
Ol07IgotICAgICIkQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07IgotICAgICIk
Q1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07IgotICAgICIkQ1IgPSBbOkxp
bmVCcmVhayA9IENhcnJpYWdlX1JldHVybjpdOyIKLSAgICAiJEVYID0gW1s6TGluZUJyZWFrID0g
RXhjbGFtYXRpb246XSAtICRFWF9TVUJdOyIKLSAgICAiJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVl
Ol07IgotI2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lP
Tl9NSU5PUl9OVU0gPj0gOSkKLSAgICAiJEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdfTGV0dGVy
Ol07IgotI2Vsc2UKLSAgICAiJEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsiCi0jZW5k
aWYKLSAgICAiJEhZID0gWzpMaW5lQnJlYWsgPSBIeXBoZW46XTsiCi0gICAgIiRIMiA9IFs6TGlu
ZUJyZWFrID0gSDI6XTsiCi0gICAgIiRIMyA9IFs6TGluZUJyZWFrID0gSDM6XTsiCi0gICAgIiRJ
RCA9IFtbW1s6TGluZUJyZWFrID0gSWRlb2dyYXBoaWM6XSAtICRDSl0gJElEX0FERF0gLSAkSURf
U1VCXTsiCi0gICAgIiRJTiA9IFtbOkxpbmVCcmVhayA9IEluc2VwYXJhYmxlOl0gLSAkSU5fU1VC
XTsiCi0gICAgIiRJUyA9IFtbOkxpbmVCcmVhayA9IEluZml4X051bWVyaWM6XSAtICRJU19TVUJd
OyIKLSAgICAiJEpMID0gWzpMaW5lQnJlYWsgPSBKTDpdOyIKLSAgICAiJEpWID0gWzpMaW5lQnJl
YWsgPSBKVjpdOyIKLSAgICAiJEpUID0gWzpMaW5lQnJlYWsgPSBKVDpdOyIKLSAgICAiJExGID0g
WzpMaW5lQnJlYWsgPSBMaW5lX0ZlZWQ6XTsiCi0gICAgIiROTCA9IFs6TGluZUJyZWFrID0gTmV4
dF9MaW5lOl07IgotICAgICIkTlMgPSBbW1tbOkxpbmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRD
Sl0gJE5TX0FERF0gLSAkTlNfU1VCXTsiCi0gICAgIiROVSA9IFs6TGluZUJyZWFrID0gTnVtZXJp
YzpdOyIKLSAgICAiJE9QID0gWzpMaW5lQnJlYWsgPSBPcGVuX1B1bmN0dWF0aW9uOl07IgotICAg
ICIkUE8gPSBbWzpMaW5lQnJlYWsgPSBQb3N0Zml4X051bWVyaWM6XSAtICRQT19TVUJdOyIKLSAg
ICAiJFBSID0gW1s6TGluZUJyZWFrID0gUHJlZml4X051bWVyaWM6XSAtICRQUl9TVUJdOyIKLSAg
ICAiJFFVID0gWzpMaW5lQnJlYWsgPSBRdW90YXRpb246XTsiCi0gICAgIiRSSSA9IFtcXFUwMDAx
RjFFNi1cXFUwMDAxRjFGRl07IgotICAgICIkU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29u
dGV4dDpdOyIKLSAgICAiJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsiCi0gICAgIiRT
UCA9IFs6TGluZUJyZWFrID0gU3BhY2U6XTsiCi0gICAgIiRTWSA9IFs6TGluZUJyZWFrID0gQnJl
YWtfU3ltYm9sczpdOyIKLSAgICAiJFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOyIK
LSAgICAiJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3duOl07IgotICAgICIkWlcgPSBbOkxpbmVC
cmVhayA9IFpXU3BhY2U6XTsiCi0gICAgIiRaV0ogPSBcXHUyMDBEOyIKLSAgICAiJEVtb2ppVmFy
ID0gXFx1RkUwRjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRFbW9qaUZv
clNlcXMgPSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUw
MDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBc
XFUwMDAxRjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2
RiBcXFUwMDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAx
RjQ4MiBcXFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUw
MDAxRjVFOCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1c
XFUwMDAxRjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNl07IiAvLyBFbW9q
aSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAiJEVtb2ppRm9yTW9kcyA9
IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0Mz
LVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFG
NDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAw
MDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxc
VTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkw
IFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFG
NjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAw
MDFGNkMwIFxcVTAwMDFGOTE4XSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9k
aWZpZXJzCi0jZWxzZQotICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYt
XFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFE
IFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUw
MDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1c
XFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3
OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAx
RjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUw
MDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBc
XFUwMDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwot
I2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIKLSAg
ICAiJGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAi
JEFMUGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsiCi0gICAgIiRBTGNtID0gJEFMUGx1cyAk
Q00qOyIKLSAgICAiJEJBY20gPSAkQkEgJENNKjsiCi0gICAgIiRCQmNtID0gJEJCICRDTSo7Igot
ICAgICIkQjJjbSA9ICRCMiAkQ00qOyIKLSAgICAiJENMY20gPSAkQ0wgJENNKjsiCi0gICAgIiRD
UGNtID0gJENQICRDTSo7IgotICAgICIkRVhjbSA9ICRFWCAkQ00qOyIKLSAgICAiJEdMY20gPSAk
R0wgJENNKjsiCi0gICAgIiRITGNtID0gJEhMICRDTSo7IgotICAgICIkSFljbSA9ICRIWSAkQ00q
OyIKLSAgICAiJEgyY20gPSAkSDIgJENNKjsiCi0gICAgIiRIM2NtID0gJEgzICRDTSo7IgotICAg
ICIkSURjbSA9ICRJRCAkQ00qOyIKLSAgICAiJElOY20gPSAkSU4gJENNKjsiCi0gICAgIiRJU2Nt
ID0gJElTICRDTSo7IgotICAgICIkSkxjbSA9ICRKTCAkQ00qOyIKLSAgICAiJEpWY20gPSAkSlYg
JENNKjsiCi0gICAgIiRKVGNtID0gJEpUICRDTSo7IgotICAgICIkTlNjbSA9ICROUyAkQ00qOyIK
LSAgICAiJE5VY20gPSAkTlUgJENNKjsiCi0gICAgIiRPUGNtID0gJE9QICRDTSo7IgotICAgICIk
UE9jbSA9ICRQTyAkQ00qOyIKLSAgICAiJFBSY20gPSAkUFIgJENNKjsiCi0gICAgIiRRVWNtID0g
JFFVICRDTSo7IgotICAgICIkUkljbSA9ICRSSSAkQ00qOyIKLSAgICAiJFNZY20gPSAkU1kgJENN
KjsiCi0gICAgIiRXSmNtID0gJFdKICRDTSo7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0
Rm9yd2FyZCA9Ci0gICAgIiEhZm9yd2FyZDsiCi0gICAgIiRDQU5fQ00gPSBbXiRTUCAkQksgJENS
ICRMRiAkTkwgJFpXICRDTV07IgotICAgICIkQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5M
ICRaVyAkQ01dOyIKLSAgICAiJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcg
JFNQXTsiCi0gICAgIiRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdK
ICRHTCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107IgotICAgICIkQUxfRk9M
TE9XID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsiCi0gICAgIiRMQjRCcmVha3Mg
PSBbJEJLICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExG
ICROTF07IgotICAgICIkTEI4QnJlYWtzID0gWyRMQjRCcmVha3MgJFpXXTsiCi0gICAgIiRMQjhO
b25CcmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOyIKLSAgICAiJExCMThOb25CcmVh
a3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsiCi0gICAgIiRMQjE4QnJlYWtzID0gWyRMQjhC
cmVha3MgJFNQXTsiCi0gICAgIiRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENC
XTsiCi0gICAgIiRBTFBsdXMgJENNKzsiCi0gICAgIiRCQSAkQ00rOyIKLSAgICAiJEJCICRDTSs7
IgotICAgICIkQjIgJENNKzsiCi0gICAgIiRDTCAkQ00rOyIKLSAgICAiJENQICRDTSs7IgotICAg
ICIkRVggJENNKzsiCi0gICAgIiRHTCAkQ00rOyIKLSAgICAiJEhMICRDTSs7IgotICAgICIkSFkg
JENNKzsiCi0gICAgIiRIMiAkQ00rOyIKLSAgICAiJEgzICRDTSs7IgotICAgICIkSUQgJENNKzsi
Ci0gICAgIiRJTiAkQ00rOyIKLSAgICAiJElTICRDTSs7IgotICAgICIkSkwgJENNKzsiCi0gICAg
IiRKViAkQ00rOyIKLSAgICAiJEpUICRDTSs7IgotICAgICIkTlMgJENNKzsiCi0gICAgIiROVSAk
Q00rOyIKLSAgICAiJE9QICRDTSs7IgotICAgICIkUE8gJENNKzsiCi0gICAgIiRQUiAkQ00rOyIK
LSAgICAiJFFVICRDTSs7IgotICAgICIkUkkgJENNKzsiCi0gICAgIiRTWSAkQ00rOyIKLSAgICAi
JFdKICRDTSs7IgotICAgICIkQ1IgJExGIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcz8gJExC
NEJyZWFrcyB7MTAwfTsiCi0gICAgIiRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OyIKLSAg
ICAiJENNKyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcyBbJFNQICRaV107
IgotICAgICIkQ0FOX0NNICRDTSogWyRTUCAkWlddOyIKLSAgICAiJENNKyBbJFNQICRaV107Igot
ICAgICIkRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JT
ZXFzOyIKLSAgICAiJENBTl9DTSAkQ00rOyIKLSAgICAiJENNKzsiCi0gICAgIiRDQU5fQ00gJENN
KiAkV0pjbTsiCi0gICAgIiRMQjhOb25CcmVha3MgJFdKY207IgotICAgICIkQ00rICRXSmNtOyIK
LSAgICAiJFdKY20gJENBTlRfQ007IgotICAgICIkV0pjbSAkQ0FOX0NNICRDTSo7IgotICAgICIk
R0xjbSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FOVF9DTTsiCi0gICAgIltbJExCOE5v
bkJyZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOyIKLSAgICAiJENNKyBHTGNtOyIK
LSAgICAiJExCOE5vbkJyZWFrcyAkQ0w7IgotICAgICIkQ0FOX0NNICRDTSogJENMOyIKLSAgICAi
JENNKyAkQ0w7IgotICAgICIkTEI4Tm9uQnJlYWtzICRDUDsiCi0gICAgIiRDQU5fQ00gJENNKiAk
Q1A7IgotICAgICIkQ00rICRDUDsiCi0gICAgIiRMQjhOb25CcmVha3MgJEVYOyIKLSAgICAiJENB
Tl9DTSAkQ00qICRFWDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkSVM7
IgotICAgICIkQ0FOX0NNICRDTSogJElTOyIKLSAgICAiJENNKyAkSVM7IgotICAgICIkTEI4Tm9u
QnJlYWtzICRTWTsiCi0gICAgIiRDQU5fQ00gJENNKiAkU1k7IgotICAgICIkQ00rICRTWTsiCi0g
ICAgIiRPUGNtICRTUCogJENBTl9DTSAkQ00qOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOVF9DTTsi
Ci0gICAgIiRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsiCi0gICAgIiRRVWNtICRTUCogJE9Q
Y207IgotICAgICIoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsiCi0gICAgIiRCMmNtICRTUCog
JEIyY207IgotICAgICIkTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOyIKLSAgICAiJENNKyAkUVVj
bTsiCi0gICAgIiRRVWNtIC4/OyIKLSAgICAiJFFVY20gJExCMThOb25CcmVha3MgJENNKjsiCi0g
ICAgIiRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7ICIKLSAgICAi
JEJCY20gW14kQ0JdOyIKLSAgICAiJEJCY20gJExCMjBOb25CcmVha3MgJENNKjsiCi0gICAgIiRI
TGNtICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OyIKLSAgICAiJFNZY20gJEhMY207IgotICAgICIo
JEFMY20gfCAkSExjbSkgJElOY207IgotICAgICIkQ00rICRJTmNtOyIKLSAgICAiJEVYY20gJElO
Y207IgotICAgICIkSURjbSAkSU5jbTsiCi0gICAgIiRJTmNtICRJTmNtOyIKLSAgICAiJE5VY20g
JElOY207IgotICAgICIkSURjbSAkUE9jbTsiCi0gICAgIiRBTGNtICROVWNtOyIKLSAgICAiJEhM
Y20gJE5VY207IgotICAgICIkQ00rICROVWNtOyIKLSAgICAiJE5VY20gJEFMY207IgotICAgICIk
TlVjbSAkSExjbTsiCi0gICAgIiRQUmNtICRJRGNtOyIKLSAgICAiJFBSY20gKCRBTGNtIHwgJEhM
Y20pOyIKLSAgICAiJFBPY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiKCRQUmNtIHwgJFBPY20p
PyAoJE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20g
fCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87IgotICAgICIkSkxjbSAoJEpMY20gfCAkSlZjbSB8
ICRIMmNtIHwgJEgzY20pOyIKLSAgICAiKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNtKTsi
Ci0gICAgIigkSlRjbSB8ICRIM2NtKSAkSlRjbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpU
Y20gfCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20g
fCAkSDJjbSB8ICRIM2NtKSAkUE9jbTsiCi0gICAgIiRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpU
Y20gfCAkSDJjbSB8ICRIM2NtKTsiCi0gICAgIigkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExj
bSk7IgotICAgICIkQ00rICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRJU2NtICgkQUxjbSB8ICRI
TGNtKTsiCi0gICAgIigkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNtOyIKLSAgICAiJENNKyAk
T1BjbTsiCi0gICAgIiRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOyIKLSNpZiBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJFJJY20gJFJJY207IgotI2VuZGlmCi0gICAgIiRFbW9q
aUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1
YXgxNFJldmVyc2UgPQotICAgICIhIXJldmVyc2U7IgotICAgICIkQ00rICRBTFBsdXM7IgotICAg
ICIkQ00rICRCQTsiCi0gICAgIiRDTSsgJEJCOyIKLSAgICAiJENNKyAkQjI7IgotICAgICIkQ00r
ICRDTDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkQ00rICRHTDsi
Ci0gICAgIiRDTSsgJEhMOyIKLSAgICAiJENNKyAkSFk7IgotICAgICIkQ00rICRIMjsiCi0gICAg
IiRDTSsgJEgzOyIKLSAgICAiJENNKyAkSUQ7IgotICAgICIkQ00rICRJTjsiCi0gICAgIiRDTSsg
JElTOyIKLSAgICAiJENNKyAkSkw7IgotICAgICIkQ00rICRKVjsiCi0gICAgIiRDTSsgJEpUOyIK
LSAgICAiJENNKyAkTlM7IgotICAgICIkQ00rICROVTsiCi0gICAgIiRDTSsgJE9QOyIKLSAgICAi
JENNKyAkUE87IgotICAgICIkQ00rICRQUjsiCi0gICAgIiRDTSsgJFFVOyIKLSNpZiBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKyAkUkk7IgotI2VuZGlmCi0gICAgIiRDTSsgJFNZ
OyIKLSAgICAiJENNKyAkV0o7IgotICAgICIkQ00rOyIKLSAgICAiJEFMX0ZPTExPVyAkQ00rIC8g
KFskQksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSog
KFteJE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsiCi0gICAgIlskUFJdIC8gJENNKyBbJEJL
ICRDUiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOyIKLSAgICAiJExCNEJyZWFrcyBbJExCNE5vbkJy
ZWFrcy0kQ01dOyIKLSAgICAiJExCNEJyZWFrcyAkQ00rICRDQU5fQ007IgotICAgICIkTEYgJENS
OyIKLSAgICAiWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJFNQICRaV10g
JENNKyAkQ0FOX0NNOyIKLSAgICAiJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9q
aVZhcj8gJEVtb2ppRm9yU2VxczsiCi0gICAgIiRDTSsgJENBTl9DTTsiCi0gICAgIiRDTSogJFdK
ICRDTSogJENBTl9DTTsiCi0gICAgIiRDTSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAg
ICIkQ0FOVF9DTSAkQ00qICRXSjsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRXSjsiCi0gICAg
IiRDTSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOyIKLSAgICAi
JENBTlRfQ00gJENNKiAkR0w7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkR0w7IgotICAgICIk
Q0wgJENNKyAkQ0FOX0NNOyIKLSAgICAiJENQICRDTSsgJENBTl9DTTsiCi0gICAgIiRFWCAkQ00r
ICRDQU5fQ007IgotICAgICIkSVMgJENNKyAkQ0FOX0NNOyIKLSAgICAiJFNZICRDTSsgJENBTl9D
TTsiCi0gICAgIiRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENQIFskTEI4Tm9uQnJl
YWtzLSRDTV07IgotICAgICIkRVggWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRJUyBbJExC
OE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICJb
JENMICRDUCAkRVggJElTICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAiCi0gICAgIiRDTSogJENB
Tl9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAiJENBTlRfQ00gJFNQKiAkQ00qICRPUDsiCi0gICAg
IiRBTF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAkT1A7IgotICAgICIkQUxfRk9MTE9XX05P
Q00gJENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQ
KyAkQ00qICRPUDsiCi0gICAgIiRTWSAkQ00gJFNQKyAkT1A7IgotICAgICIkQ00qICRPUCAkU1Aq
ICRDTSogJFFVOyIKLSAgICAiJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAi
JENNKiAkQjIgJFNQKiAkQ00qICRCMjsiCi0gICAgIiRDTSogJFFVICRDTSogJENBTl9DTTsiCi0g
ICAgIiRDTSogJFFVICRMQjE4Tm9uQnJlYWtzOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFFV
OyIKLSAgICAiJENBTlRfQ00gJENNKiAkUVU7IgotICAgICIkQ00qICgkQkEgfCAkSFkgfCAkTlMp
ICRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV07IgotICAgICIkQ00qIFskTEIyME5vbkJyZWFrcy0k
Q01dICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSog
KCRIWSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIkQ00qICRITCAkQ00qICRTWTsiCi0gICAgIiRD
TSogJElOICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAkSU4gJENNKiAkRVg7Igot
ICAgICIkQ00qICRJTiAkQ00qICRJRDsiCi0gICAgIiRDTSogJElOICRDTSogJElOOyIKLSAgICAi
JENNKiAkSU4gJENNKiAkTlU7IgotICAgICIkQ00qICRQTyAkQ00qICRJRDsiCi0gICAgIiRDTSog
JE5VICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENN
KiAkTlU7IgotICAgICIkQ00qICRJRCAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAk
SEwpICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87IgotICAg
ICIoJENNKiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJ
UyB8ICRTWSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8p
KT87IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOyIKLSAgICAi
JENNKiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOyIKLSAgICAiJENNKiAkSlQgJENNKiAo
JEgzIHwgJEpUKTsiCi0gICAgIiRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8
ICRKTCk7IgotICAgICIkQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwp
OyIKLSAgICAiJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsiCi0g
ICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENN
KiAoJEFMUGx1cyB8ICRITCkgJENNKiAkSVM7IgotICAgICIkQ00qICRPUCAkQ00qICgkQUxQbHVz
IHwgJEhMIHwgJE5VKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQ
OyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKiAkUkkgJENNKiAkUkk7
IgotI2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyI7Ci0K
LXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVGb3J3YXJkID0KLSAgICAiISFzYWZlX2Zvcndh
cmQ7IgotICAgICJbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0
aW9uYXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFy
eV07IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsiOwotCi1zdGF0aWMgY29uc3QgY2hh
ciogdWF4MTRTYWZlUmV2ZXJzZSA9Ci0gICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAiJENNKyBb
XiRDTSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07IgotICAgICIkQ00rICRTUCAvIC47IgotICAg
ICIkU1ArICRDTSogJE9QOyIKLSAgICAiJFNQKyAkQ00qICRRVTsiCi0gICAgIiRTUCsgJENNKiAo
JENMIHwgJENQKTsiCi0gICAgIiRTUCsgJENNKiAkQjI7IgotICAgICIkQ00qICgkSFkgfCAkQkEp
ICRDTSogJEhMOyIKLSAgICAiKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsiCi0gICAgIigk
Q0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7IgotICAgICIkZGljdGlvbmFyeSAkZGlj
dGlvbmFyeTsiOwotCiBzdGF0aWMgU3RyaW5nIG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKExp
bmVCcmVha0l0ZXJhdG9yTW9kZSBtb2RlLCBib29sIGlzQ0pLKQogewotICAgIFN0cmluZ0J1aWxk
ZXIgcnVsZXNCdWlsZGVyOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRQcm9sb2d1ZSk7
Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1lbnRzQmVmb3JlKTsKICAgICBz
d2l0Y2ggKG1vZGUpIHsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0OgotICAg
ICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbURl
ZmF1bHRDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNKSyk7Ci0gICAgICAg
IGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pL
UnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5l
QnJlYWtJdGVyYXRvck1vZGVVQVgxNExvb3NlOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5k
KGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLIDogdWF4MTRBc3NpZ25tZW50
c0N1c3RvbUxvb3NlTm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NK
SyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVV
QVgxNE5vcm1hbDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNz
aWdubWVudHNDdXN0b21Ob3JtYWxDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9u
Q0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxO
b25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0U3RyaWN0Ogot
ICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3Rv
bVN0cmljdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSkspOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKS1J1bGVzOwog
ICAgIH0KLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNBZnRlcik7Ci0g
ICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEZvcndhcmQpOwotICAgIHJ1bGVzQnVpbGRlci5h
cHBlbmQodWF4MTRSZXZlcnNlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2FmZUZv
cndhcmQpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZlUmV2ZXJzZSk7Ci0gICAg
cmV0dXJuIHJ1bGVzQnVpbGRlci50b1N0cmluZygpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiAiIjsKIH0KIAogLy8gUmVjb2duaXplIEJDUDQ3IGNvbXBsaWFudCBwcmlt
YXJ5IGxhbmd1YWdlIHZhbHVlcyBvZiAnemgnLCAnamEnLCAna28nCkBAIC03ODYsNiArMjUwLDI0
IEBAIFRleHRCcmVha0l0ZXJhdG9yKiBvcGVuTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgQXRvbWlj
U3RyaW5nJiBsb2NhbGUsIExpbmVCcmVha0l0CiAgICAgaWYgKG1vZGUgPT0gTGluZUJyZWFrSXRl
cmF0b3JNb2RlVUFYMTQpCiAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuKFVCUktfTElORSwg
bG9jYWxlSXNFbXB0eSA/IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpIDogbG9jYWxlLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCksIDAsIDAsICZvcGVuU3RhdHVzKTsKICAgICBlbHNlIHsKKyAgICAg
ICAgQnJlYWtpbmdSdWxlU2V0IHJ1bGVTZXQ7CisgICAgICAgIHN3aXRjaCAobW9kZSkgeworICAg
ICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0OgorICAgICAgICAgICAgcnVsZVNl
dCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENKSyA6IEJyZWFraW5nUnVsZVNldDo6
VUFYMTROb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJ
dGVyYXRvck1vZGVVQVgxNExvb3NlOgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJl
YWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3Nl
Tm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0
b3JNb2RlVUFYMTROb3JtYWw6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2lu
Z1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5v
bkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9y
TW9kZVVBWDE0U3RyaWN0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdS
dWxlU2V0OjpVQVgxNFN0cmljdENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3ROb25D
Sks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoYXV0byogaXRl
cmF0b3IgPSBpdGVyYXRvckZvclJ1bGVTZXQocnVsZVNldCkpCisgICAgICAgICAgICByZXR1cm4g
aXRlcmF0b3I7CisKICAgICAgICAgVVBhcnNlRXJyb3IgcGFyc2VTdGF0dXM7CiAgICAgICAgIGF1
dG8gcnVsZXMgPSBtYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7CiAgICAg
ICAgIHVicmtJdGVyID0gdWJya19vcGVuUnVsZXMoU3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0
ZWRDaGFyYWN0ZXJzKCksIHJ1bGVzLmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVu
U3RhdHVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAppbmRleCBkOTAz
MjE1YWU0MTM3ZTRjM2E5ZWEzNWIzZDAyNWJmNTJlNDUxOGVjLi5kMmQwN2MyOGZiOGQ0MDk5ZWU5
NjljMjBmNTg0ODkyMjhmYjAwNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1Rl
eHRCcmVha0l0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVy
YXRvci5oCkBAIC0zOCw2ICszOCwzMCBAQCBlbnVtIExpbmVCcmVha0l0ZXJhdG9yTW9kZSB7CiAg
ICAgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRTdHJpY3QsCiB9OwogCitlbnVtIGNsYXNzIEJy
ZWFraW5nUnVsZVNldCB7CisgICAgQ3Vyc29yTW92ZW1lbnQsCisgICAgVUFYMTRDSkssCisgICAg
VUFYMTROb25DSkssCisgICAgVUFYMTRMb29zZUNKSywKKyAgICBVQVgxNExvb3NlTm9uQ0pLLAor
ICAgIFVBWDE0Tm9ybWFsQ0pLLAorICAgIFVBWDE0Tm9ybWFsTm9uQ0pLLAorICAgIFVBWDE0U3Ry
aWN0Q0pLLAorICAgIFVBWDE0U3RyaWN0Tm9uQ0pLCit9OworCitleHRlcm4gY29uc3QgY2hhciog
Y3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKS1J1bGVzOworCitUZXh0QnJlYWtJdGVyYXRvciog
aXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCk7CisKIC8vIFRoaXMgaXMgc2ltaWxh
ciB0byBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgaW4gbW9zdCBjYXNlcywgYnV0IGlzIHN1Ympl
Y3QgdG8KIC8vIHBsYXRmb3JtIFVJIGNvbnZlbnRpb25zLiBPbmUgbm90YWJsZSBleGFtcGxlIHdo
ZXJlIHRoaXMgY2FuIGJlIGRpZmZlcmVudAogLy8gZnJvbSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0
b3IgaXMgVGhhaSBwcmVwZW5kIGNoYXJhY3RlcnMsIHNlZSBidWcgMjQzNDIuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFj
Lm1tIGIvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElD
VU1hYy5tbQppbmRleCBiZWY1ZGFhNjQyODg4MjFlMjBmMjYyOGM2ODU1ZWU4ZTg4YTM4OTJjLi42
ZGY4Y2Q2MGQ2ZDI0ZmMxZTAwYzI2M2Q5N2NkNzRhZjc2NDEyZmIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VN
YWMubW0KQEAgLTIxLDEyICsyMSw3NSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKIAorI2luY2x1ZGUgIlRleHRCcmVha0l0
ZXJhdG9yLmgiCisKKyNpZiBkZWZpbmVkKFVfU0hPV19DUExVU1BMVVNfQVBJKQorI3VuZGVmIFVf
U0hPV19DUExVU1BMVVNfQVBJCisjZW5kaWYKKyNkZWZpbmUgVV9TSE9XX0NQTFVTUExVU19BUEkg
MQorCisjaW5jbHVkZSA8dW5pY29kZS9yYmJpLmg+CisjaW5jbHVkZSA8dW5pY29kZS91ZGF0YS5o
PgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAorQGludGVyZmFjZSBXVEZCdW5kbGVGaW5k
ZXIgOiBOU09iamVjdAorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV1RGQnVuZGxlRmluZGVyCitA
ZW5kCisKIG5hbWVzcGFjZSBXVEYgewogCiBzdGF0aWMgY29uc3QgaW50IG1heExvY2FsZVN0cmlu
Z0xlbmd0aCA9IDMyOwogCitUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3JGb3JSdWxlU2V0KEJy
ZWFraW5nUnVsZVNldCBydWxlU2V0KQoreworICAgIE5TU3RyaW5nICpmaWxlTmFtZUJhc2U7Cisg
ICAgc3dpdGNoIChydWxlU2V0KSB7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1v
dmVtZW50OgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENK
SzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLIjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOgor
ICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksiOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZUNKSzoK
KyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksi
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZU5v
bkNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VOb25DSksiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFY
MTROb3JtYWxDSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbENKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0
OjpVQVgxNE5vcm1hbE5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVh
a2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Q0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksiOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3ROb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFz
ZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSyI7CisgICAgICAgIGJyZWFr
OworICAgIH0KKworICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xh
c3M6W1dURkJ1bmRsZUZpbmRlciBjbGFzc11dOworICAgIE5TU3RyaW5nICpwYXRoID0gW2J1bmRs
ZSBwYXRoRm9yUmVzb3VyY2U6ZmlsZU5hbWVCYXNlIG9mVHlwZTpAImJyayIgaW5EaXJlY3Rvcnk6
QCJCcmVha2luZ1J1bGVzIl07CisgICAgaWYgKCFwYXRoKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICBOU1N0cmluZyAqZGlyZWN0b3J5ID0gW3BhdGggc3RyaW5nQnlEZWxldGluZ0xhc3RQ
YXRoQ29tcG9uZW50XTsKKyAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsK
KyAgICBMb2NhbFVEYXRhTWVtb3J5UG9pbnRlciBkYXRhKHVkYXRhX29wZW4oW2RpcmVjdG9yeSBV
VEY4U3RyaW5nXSwgImJyayIsIFtmaWxlTmFtZUJhc2UgVVRGOFN0cmluZ10sICZlcnJvckNvZGUp
KTsKKyAgICBpZiAoZXJyb3JDb2RlICE9IFVfWkVST19FUlJPUikKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgYXV0byBpdGVyYXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJhc2VkQnJl
YWtJdGVyYXRvcj4oZGF0YS5vcnBoYW4oKSwgZXJyb3JDb2RlKTsKKyAgICBpZiAoZXJyb3JDb2Rl
ICE9IFVfWkVST19FUlJPUikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8VGV4dEJyZWFrSXRlcmF0b3IqPihpdGVyYXRvci5yZWxlYXNlKCkpOwor
fQorCiBzdGF0aWMgaW5saW5lIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gdGV4dEJyZWFrTG9jYWxl
UHJlZmVyZW5jZSgpCiB7CiAgICAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBsb2NhbGUg
PSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5VmFsdWUoQ0ZTVFIoIkFwcGxlVGV4dEJyZWFrTG9j
YWxlIiksCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UgYi9Tb3VyY2Uv
Y21ha2UvV2ViS2l0RlMuY21ha2UKaW5kZXggMjlhMDk2OTAzOGZhYTc0NGUxYThjNThmMzU2YWQw
NzNmMDA1MjViZC4uODFmNTRhNTZhZDY5NTNkN2IxZTIwYzg4ZmE4NWJiZGRkMWYwN2U4YyAxMDA2
NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9X
ZWJLaXRGUy5jbWFrZQpAQCAtMjQsNiArMjQsNyBAQCBpZiAoTk9UIFRPT0xTX0RJUikKIGVuZGlm
ICgpCiAKIHNldChERVJJVkVEX1NPVVJDRVNfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2
ZWRTb3VyY2VzIikKK3NldChERVJJVkVEX1NPVVJDRVNfV1RGX0RJUiAiJHtDTUFLRV9CSU5BUllf
RElSfS9EZXJpdmVkU291cmNlcy9XVEYiKQogc2V0KERFUklWRURfU09VUkNFU19KQVZBU0NSSVBU
Q09SRV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENv
cmUiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElS
fS9EZXJpdmVkU291cmNlcy9XZWJDb3JlIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUTEVH
QUNZX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3ki
KQpAQCAtMzIsNiArMzMsOCBAQCBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSICIke0NN
QUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIiKQogc2V0KERFUklWRURfU09V
UkNFU19XRUJJTlNQRUNUT1JVSV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJj
ZXMvV2ViSW5zcGVjdG9yVUkiKQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VS
Q0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9T
T1VSQ0VTX1dURl9ESVJ9KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19X
VEZfRElSfS9CcmVha2luZ1J1bGVzKQogZmlsZShNQUtFX0RJUkVDVE9SWSAke0NNQUtFX0JJTkFS
WV9ESVJ9L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lKQogCiBmaWxlKE1BS0VfRElSRUNU
T1JZICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285503</attachid>
            <date>2016-08-06 15:39:24 -0700</date>
            <delta_ts>2016-08-07 01:04:58 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160806153755.patch</filename>
            <type>text/plain</type>
            <size>275288</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTFhOGVhNzFmOTFiNmU2MWM4MGI2MWVhNDFiZjQ1MWEyNjBjNGM3Li5iNTcyMTlmMjI4ODQ0NDM0
MzNkODM3NWUyZWE2YjVlMTRiNmQxYTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wNiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDUgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIExFQkRlY29kZXIgYW5kIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyNmIyZWJmZmUy
Y2FkYTM3Y2NkYWUzY2VkZjZlZmM4NTNiNjE2YjEuLjJkNWM0Yzk0ZjZmZmE4ODk4YjIyMWI1ODQ5
NTZiOTU4ZTM0MjgxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgtMDYgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBi
cmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTog
QWRkZWQuCisgICAgICAgICogd3RmL2dlbmJyazogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisg
ICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuY3BwOgorICAgICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RG
OjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0
ZXJhdG9yKToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAg
ICAqIHd0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAg
ICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorCiAyMDE2LTA4LTA2ICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV1RGIG5lZWRzIGEgdmFyaWFudCBpbXBsZW1l
bnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMzBkYzllNGQwMjAzNjIw
YjE0Y2EyMjhiNGViMmJiNGZkZWNlZjBkLi4xYWJlNDdjMjQ2NGRhODk4ZmFkNTMwYWNjMzI2Mzdj
OGJkYTYyYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOSw2ICsxMTA5
LDcgQEAKIAkJMTRGOTc0NDcxMzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhD
ODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBK
U1N0cmluZ1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNG
NzM3NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5j
cHAgKi87IH07CisJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFE
NTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2
MkQ4NUI2MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQx
QzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07
CkBAIC0zMjcyLDYgKzMyNzMsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFz
ZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYg
LyogSmF2YVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2Ny
aXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQx
QkNGRiAvKiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKYXZhU2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4
RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7
IHBhdGggPSAuLi9XVEYvQnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9p
bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0
aCA9IGIzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTQzOCw2ICs1NDQwLDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAw
NzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVs
ZXMgKi8sCiAJCQkJMEY2MTgzMzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAog
CQkJCTBGNjE4MzM0MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywK
IAkJCQkwRjYxODMzNTFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAg
LTg0NTcsNiArODQ2MCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBp
biBSZXNvdXJjZXMgKi8sCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5n
UnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggM2JhODA0MDZiNjg3ODcyY2RjMmUzZTgxNmJlYjAwNDNhOTM5YzI3MC4uOTg0
Mjg5ZWVkMjViYWE4MzI3OWMwMjczZjliNTZjNmExYjQ2ZGJhYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcsMTcgQEAKIAlvYmplY3RzID0gewog
CiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2
OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVn
YXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMw
MENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4Nzgy
MUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOwor
CQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsK
KwkJCXByb2R1Y3ROYW1lID0gIkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2
MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFn
Z3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBC
OTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtMzEyLDYgKzMyMywxNSBAQAogCQlBOEE0
NzQ4NzE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlRocmVhZERhdGEuaCAqLzsgfTsKIAkJQThBNDc0OEMxNTFBODI2NDAwNDEyM0ZGIC8qIGNv
bmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1
M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJl
RGVmaW5lcy5oICovOyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMuY3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VDMUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTMxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi87IH07CisJ
CUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Ez
N0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAq
LzsgfTsKKwkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksuY3BwICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YwMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U3MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLzsgfTsKKwkJ
QzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwICovOyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkz
NjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgKi87IH07CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKQEAgLTM0NCw2ICszNjQsMTMgQEAKIAkJ
CXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVt
b3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsK
KwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0
IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9
IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3Vy
Y2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRh
aW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAq
LzsKQEAgLTQzNiw2ICs0NjMsMTggQEAKIAkJMUMxODFDOEQxRDMwN0FCODAwRjVGQTE2IC8qIFVU
ZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzE4MUM4RTFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZBMTYgLyogVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHBhdGggPSBtYWMv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NTFENTU5QTY5MDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
QjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25D
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkxRDU1OUFFRjAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0OyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUMx
RDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNv
dXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMubWFrZTsgcGF0aCA9IHd0Zi9EZXJp
dmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1c2VzVGFicyA9IDE7IH07
CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQ7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RFQyAvKiBMaW5lQnJlYWtJ
dGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODgx
NTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJU
b1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50
ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjU4LDYgKzY5NywxNSBAQAogCQlBOEE0NzM3QjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFk
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZUaHJlYWREYXRhLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAv
KiBjb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBG
ZWF0dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJl
RGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMDFENTVDOTcx
MDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7
IHBhdGggPSBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
MkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBN
ZWRpYVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjUsNiArNzczLDI0IEBACiAJCQlwYXRo
ID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUNEMTg3OTExRDU1
OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RF
QyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLywKKwkJCQkxQ0I0RkI5NDFENTU5
QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8sCisJCQkJMUNC
NEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0
ICovLAorCQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLywKKwkJ
CQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5
RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQg
Ki8sCisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTc0NiwxMCArODEyLDEyIEBA
CiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3Vy
Y2VzLm1ha2UgKi8sCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAwRTc4Qjc2IC8qIENvbmZpZ3VyYXRp
b25zICovLAogCQkJCTE0MDIyRjNGMThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJ
CQkJNUQyNDdCNjMxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2R1Y3RzICovLAogCQkJCTVEMjQ3Qjc2
MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJCQkJQzJDQTM3REYxRDU1QzhEODAwNDg2
Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYg
LyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZG
IC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtMTA4Myw2ICsxMTUxLDcgQEAKIAkJ
QThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVh
a2luZ1J1bGVzICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3UgKi8sCiAJ
CQkJQTVCQTE1RjYxODI0MzU5RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCUE1QkExNUYxMTgyNDMz
OUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMTU4LDYgKzEyMjcsMjMgQEAKIAkJCXBhdGggPSBp
Y3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkNBMzdERjFENTVDOEQ4
MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTIxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi8sCisJCQkJ
QzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNjFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAg
Ki8sCisJCQkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSksuY3BwICovLAorCQkJCUMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0g
IkRlcml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvV1RGOworCQkJc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsKIAkJQ0U0NjUxNkMxOURCMUZCNDAw
M0VDQTA1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTE0NzAsNiArMTU1Niw3IEBACiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRl
cGVuZGVuY2llcyA9ICgKKwkJCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gV1RGOwpAQCAtMTUwMCwxMiArMTU4Nywy
NyBAQAogCQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RG
ICovLAogCQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICov
LAorCQkJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJ
CQkJMTQ0N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFsbG9jICovLAogCQkJKTsKIAkJfTsK
IC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRC
dWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVy
YXRlIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQ
aGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJ
CSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgRGVyaXZl
ZCBTb3VyY2VzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNo
ZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzL1dURlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZc
IlxuXG4vYmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV1RGXG5leHBvcnQgV1RGPVwiV1RGXCJc
blxuaWYgWyAhIC1kIEJyZWFraW5nUnVsZXMgXTsgdGhlblxuICAgIG1rZGlyIEJyZWFraW5nUnVs
ZXNcbmZpXG5cbmlmIFsgXCIkU0RLX05BTUVcIiA9PSBcImlwaG9uZW9zOS4wXCIgXSB8fCBbIFwi
JFNES19OQU1FXCIgPT0gXCJpcGhvbmVzaW11bGF0b3I5LjBcIiBdOyB0aGVuXG4gICAgZXhwb3J0
IEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9MFxuZWxzZVxuICAgIGV4cG9ydCBIQVZFX0VYVFJB
X0lDVV9OQU1FRF9TRVRTPTFcbmZpXG5cbmlmIFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VU
XCIgPT0gXCIxMC4xMFwiIF07IHRoZW5cbiAgICBleHBvcnQgQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUPTBcbmVsc2VcbiAgICBleHBvcnQgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPTFcbmZpXG5c
bmlmIFsgXCIke0FDVElPTn1cIiA9IFwiYnVpbGRcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0
YWxsXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGhkcnNcIiAtbyBcIiR7QUNUSU9OfVwi
ID0gXCJpbnN0YWxsYXBpXCIgXTsgdGhlblxubWFrZSAtLW5vLWJ1aWx0aW4tcnVsZXMgLWYgXCJX
VEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2VcIiAtaiBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5h
Y3RpdmVjcHVgIFNES1JPT1Q9XCIke1NES1JPT1R9XCJcbmZpXG4iOworCQl9OwogCQk2NUFGQTE3
MDE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBC
WFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7
CkBAIC0xNTM2LDYgKzE2MzgsOCBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
IAkJCWZpbGVzID0gKAogCQkJCUE4QTQ3Mzg2MTUxQTgyNUIwMDQxMjNGRiAvKiBBc3NlcnRpb25z
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0YxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMy
Q0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9u
Q0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDM1MTUxQTgyNUIwMDQxMjNGRiAvKiBB
dG9taWNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzBFQ0E2MEQxQjAyNDI2ODAwNDQ5
NzM5IC8qIEF0b21pY1N0cmluZ0ltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVCQTE1RkEx
ODI0MzVBNjAwQTgyRTY5IC8qIEF0b21pY1N0cmluZ0ltcGxDRi5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTE1NjMsNiArMTY2Nyw3IEBACiAJCQkJQThBNDczQjAxNTFBODI1QjAwNDEyM0ZGIC8qIGRv
dWJsZS1jb252ZXJzaW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQkExNTFBODI1QjAw
NDEyM0ZGIC8qIGR0b2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQjMxNTFBODI1QjAw
NDEyM0ZGIC8qIGZhc3QtZHRvYS5jYyBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VEMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGODg1RTBGMTg0NUFFQTkwMEYxRTNGQSAvKiBGYXN0Qml0VmVjdG9yLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0MzMTUxQTgyNUIwMDQxMjNGRiAvKiBGYXN0TWFsbG9j
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDRUUyMjAxMUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9j
a09iakNFeGNlcHRpb25zLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0xNTc4LDYgKzE2ODMsNyBAQAog
CQkJCUE4QTQ3M0U5MTUxQTgyNUIwMDQxMjNGRiAvKiBNRDUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0Q1NDk3QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzNFQzE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9jYXRvci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlDMkNBMzdGMDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGNDE1MUE4
MjVCMDA0MTIzRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0
NzNGNzE1MUE4MjVCMDA0MTIzRkYgLyogT1NBbGxvY2F0b3JQb3NpeC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzNGOTE1MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5kb21Tb3VyY2UuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0xNTg1LDYgKzE2OTEsNyBAQAogCQkJCTFDMTgxQzkzMUQzMDdBQjgw
MEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZG
RjE5REMxQkIzMzRFQjAwODg2RDkxIC8qIFBhcmFsbGVsSGVscGVyUG9vbC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjgyNEE2ODFCNzQ0M0EwMDAyRTM0NUQgLyogUGFya2luZ0xvdC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlDMkNBMzdFRTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjlEMzM2MjE2NURC
QTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQzRjYx
MUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDc0MTQxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51bWJlci5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTE2MTksOSArMTcyNiwxMyBAQAogCQkJCUE4QTQ3NDRBMTUxQTgyNUIwMDQxMjNGRiAvKiBU
aHJlYWRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0NEUxNTFBODI1QjAwNDEyM0ZG
IC8qIFRocmVhZGluZ1B0aHJlYWRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDY5MTUx
QTgyNUIwMDQxMjNGRiAvKiBVVEY4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VDMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUZBNDdDOEExNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJl
YWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFNDQ3OUMxQjdBQUEwMzAwOTQ5OEVCIC8qIFdv
cmRMb2NrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0U5MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJD
QTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlEQ0VFMjIwMzFDRUE3NTUxMDAwQzIzOTYgLyogUGxhdGZv
cm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3
RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTRBMEFEMzkxQTk2MjQ1NTAwNTM2REY2IC8qIFdvcmtRdWV1ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzRDFBOTYyNTNDMDA1MzZERjYgLyogV29ya1F1ZXVl
Q29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0NDUxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlN0cmluZy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE2MzcsNiArMTc0OCwxMSBAQAogCQkJ
dGFyZ2V0ID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLzsKIAkJCXRhcmdldFBy
b3h5ID0gMTQ0N0FFQzMxOEZDRTU3MDAwQjNEN0ZGIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAq
LzsKIAkJfTsKKwkJMUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVu
Y3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gMUNE
MTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLzsKKwkJCXRhcmdldFBy
b3h5ID0gMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAq
LzsKKwkJfTsKIAkJNjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVu
Y3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gNjVB
RkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi87CkBAIC0xNjY2LDYg
KzE3ODIsMzAgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3
ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZp
Z3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDY1NDFDQUY0MTYzMERC
MjYwMDZEMERFQyAvKiBDb3B5V1RGSGVhZGVycy54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGlu
Z3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQlu
YW1lID0gRGVidWc7CisJCX07CisJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNl
ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJh
dGlvblJlZmVyZW5jZSA9IDY1NDFDQUY0MTYzMERCMjYwMDZEMERFQyAvKiBDb3B5V1RGSGVhZGVy
cy54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0g
IiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJMUNE
MTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rpb24gKi8gPSB7CisJCQlpc2EgPSBYQ0J1
aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNjU0MUNB
RjQxNjMwREIyNjAwNkQwREVDIC8qIENvcHlXVEZIZWFkZXJzLnhjY29uZmlnICovOworCQkJYnVp
bGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJ
fTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDI0N0I2NDE0Njg5Qjg2MDBFNzhC
NzYgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJh
c2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERl
YnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKQEAgLTE3NDksNiArMTg4OSwxNiBAQAogCQkJZGVmYXVs
dENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1l
ID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODMxRDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxk
IGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJj
ZXMiICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmln
dXJhdGlvbnMgPSAoCisJCQkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICovLAor
CQkJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovLAorCQkJCTFDRDE4Nzg2
MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25m
aWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFBy
b2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjVDMTQ2ODlCODYwMEU3OEI3NiAvKiBCdWlsZCBjb25m
aWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldURiIgKi8gPSB7CiAJCQlpc2EgPSBYQ0Nv
bmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvYnJraXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9icmtpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFhNWU1NTI3OTYwOTBlYWViY2Q3Y2U3YjdkMjc1YWE4
YjM3NzViNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvYnJraXRl
ci5oCkBAIC0wLDAgKzEsNjU1IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBD
b3B5cmlnaHQgKEMpIDE5OTctMjAxNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwor
KiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBicmtpdGVyLmgKKyoKKyogTW9kaWZpY2F0aW9u
IEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyog
ICAwMi8xOC85NyAgICBhbGl1ICAgICAgICBBZGRlZCB0eXBlZGVmIGZvciBUZXh0Q291bnQuICBN
YWRlIERPTkUgY29uc3QuCisqICAgMDUvMDcvOTcgICAgYWxpdSAgICAgICAgRml4ZWQgRExMIGRl
Y2xhcmF0aW9uLgorKiAgIDA3LzA5Lzk3ICAgIGpmaXR6ICAgICAgIFJlbmFtZWQgQnJlYWtJdGVy
YXRvciBhbmQgaW50ZXJmYWNlIHN5bmNlZCB3aXRoIEpESworKiAgIDA4LzExLzk4ICAgIGhlbGVu
YSAgICAgIFN5bmMtdXAgSkRLMS4yLgorKiAgIDAxLzEzLzIwMDAgIGhlbGVuYSAgICAgIEFkZGVk
IFVFcnJvckNvZGUgcGFyYW1ldGVyIHRvIGNyZWF0ZVhYWEluc3RhbmNlIG1ldGhvZHMuCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBCUktJVEVSX0gKKyNkZWZpbmUgQlJL
SVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisvKioKKyAqIFxmaWxlCisg
KiBcYnJpZWYgQysrIEFQSTogQnJlYWsgSXRlcmF0b3IuCisgKi8KKworI2lmIFVDT05GSUdfTk9f
QlJFQUtfSVRFUkFUSU9OCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qCisgKiBBbGxvdyB0aGUg
ZGVjbGFyYXRpb24gb2YgQVBJcyB3aXRoIHBvaW50ZXJzIHRvIEJyZWFrSXRlcmF0b3IKKyAqIGV2
ZW4gd2hlbiBicmVhayBpdGVyYXRpb24gaXMgcmVtb3ZlZCBmcm9tIHRoZSBidWlsZC4KKyAqLwor
Y2xhc3MgQnJlYWtJdGVyYXRvcjsKKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbHNlCisKKyNpbmNs
dWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VuaXN0ci5oIgorI2lu
Y2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2lkLmgiCisj
aW5jbHVkZSAidW5pY29kZS91YnJrLmgiCisjaW5jbHVkZSAidW5pY29kZS9zdHJlbnVtLmgiCisj
aW5jbHVkZSAidW5pY29kZS91dGV4dC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW1pc2MuaCIKKwor
VV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBUaGUgQnJlYWtJdGVyYXRvciBjbGFzcyBpbXBs
ZW1lbnRzIG1ldGhvZHMgZm9yIGZpbmRpbmcgdGhlIGxvY2F0aW9uCisgKiBvZiBib3VuZGFyaWVz
IGluIHRleHQuIEJyZWFrSXRlcmF0b3IgaXMgYW4gYWJzdHJhY3QgYmFzZSBjbGFzcy4KKyAqIElu
c3RhbmNlcyBvZiBCcmVha0l0ZXJhdG9yIG1haW50YWluIGEgY3VycmVudCBwb3NpdGlvbiBhbmQg
c2NhbiBvdmVyCisgKiB0ZXh0IHJldHVybmluZyB0aGUgaW5kZXggb2YgY2hhcmFjdGVycyB3aGVy
ZSBib3VuZGFyaWVzIG9jY3VyLgorICogPHA+CisgKiBMaW5lIGJvdW5kYXJ5IGFuYWx5c2lzIGRl
dGVybWluZXMgd2hlcmUgYSB0ZXh0IHN0cmluZyBjYW4gYmUgYnJva2VuCisgKiB3aGVuIGxpbmUt
d3JhcHBpbmcuIFRoZSBtZWNoYW5pc20gY29ycmVjdGx5IGhhbmRsZXMgcHVuY3R1YXRpb24gYW5k
CisgKiBoeXBoZW5hdGVkIHdvcmRzLgorICogPHA+CisgKiBTZW50ZW5jZSBib3VuZGFyeSBhbmFs
eXNpcyBhbGxvd3Mgc2VsZWN0aW9uIHdpdGggY29ycmVjdAorICogaW50ZXJwcmV0YXRpb24gb2Yg
cGVyaW9kcyB3aXRoaW4gbnVtYmVycyBhbmQgYWJicmV2aWF0aW9ucywgYW5kCisgKiB0cmFpbGlu
ZyBwdW5jdHVhdGlvbiBtYXJrcyBzdWNoIGFzIHF1b3RhdGlvbiBtYXJrcyBhbmQgcGFyZW50aGVz
ZXMuCisgKiA8cD4KKyAqIFdvcmQgYm91bmRhcnkgYW5hbHlzaXMgaXMgdXNlZCBieSBzZWFyY2gg
YW5kIHJlcGxhY2UgZnVuY3Rpb25zLCBhcworICogd2VsbCBhcyB3aXRoaW4gdGV4dCBlZGl0aW5n
IGFwcGxpY2F0aW9ucyB0aGF0IGFsbG93IHRoZSB1c2VyIHRvCisgKiBzZWxlY3Qgd29yZHMgd2l0
aCBhIGRvdWJsZSBjbGljay4gV29yZCBzZWxlY3Rpb24gcHJvdmlkZXMgY29ycmVjdAorICogaW50
ZXJwcmV0YXRpb24gb2YgcHVuY3R1YXRpb24gbWFya3Mgd2l0aGluIGFuZCBmb2xsb3dpbmcKKyAq
IHdvcmRzLiBDaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIGEgd29yZCwgc3VjaCBhcyBz
eW1ib2xzIG9yCisgKiBwdW5jdHVhdGlvbiBtYXJrcywgaGF2ZSB3b3JkLWJyZWFrcyBvbiBib3Ro
IHNpZGVzLgorICogPHA+CisgKiBDaGFyYWN0ZXIgYm91bmRhcnkgYW5hbHlzaXMgYWxsb3dzIHVz
ZXJzIHRvIGludGVyYWN0IHdpdGgKKyAqIGNoYXJhY3RlcnMgYXMgdGhleSBleHBlY3QgdG8sIGZv
ciBleGFtcGxlLCB3aGVuIG1vdmluZyB0aGUgY3Vyc29yCisgKiB0aHJvdWdoIGEgdGV4dCBzdHJp
bmcuIENoYXJhY3RlciBib3VuZGFyeSBhbmFseXNpcyBwcm92aWRlcyBjb3JyZWN0CisgKiBuYXZp
Z2F0aW9uIG9mIHRocm91Z2ggY2hhcmFjdGVyIHN0cmluZ3MsIHJlZ2FyZGxlc3Mgb2YgaG93IHRo
ZQorICogY2hhcmFjdGVyIGlzIHN0b3JlZC4gIEZvciBleGFtcGxlLCBhbiBhY2NlbnRlZCBjaGFy
YWN0ZXIgbWlnaHQgYmUKKyAqIHN0b3JlZCBhcyBhIGJhc2UgY2hhcmFjdGVyIGFuZCBhIGRpYWNy
aXRpY2FsIG1hcmsuIFdoYXQgdXNlcnMKKyAqIGNvbnNpZGVyIHRvIGJlIGEgY2hhcmFjdGVyIGNh
biBkaWZmZXIgYmV0d2VlbiBsYW5ndWFnZXMuCisgKiA8cD4KKyAqIFRoZSB0ZXh0IGJvdW5kYXJ5
IHBvc2l0aW9ucyBhcmUgZm91bmQgYWNjb3JkaW5nIHRvIHRoZSBydWxlcworICogZGVzY3JpYmVk
IGluIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXggIzI5LCBUZXh0IEJvdW5kYXJpZXMsIGFuZAorICog
VW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMTQsIExpbmUgQnJlYWtpbmcgUHJvcGVydGllcy4gIFRo
ZXNlCisgKiBhcmUgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90
cjE0LyBhbmQKKyAqIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjI5Ly4KKyAqIDxw
PgorICogSW4gYWRkaXRpb24gdG8gdGhlIEMrKyBBUEkgZGVmaW5lZCBpbiB0aGlzIGhlYWRlciBm
aWxlLCBhCisgKiBwbGFpbiBDIEFQSSB3aXRoIGVxdWl2YWxlbnQgZnVuY3Rpb25hbGl0eSBpcyBk
ZWZpbmVkIGluIHRoZQorICogZmlsZSB1YnJrLmgKKyAqIDxwPgorICogQ29kZSBzbmlwcGV0cyBp
bGx1c3RyYXRpbmcgdGhlIHVzZSBvZiB0aGUgQnJlYWsgSXRlcmF0b3IgQVBJcworICogYXJlIGF2
YWlsYWJsZSBpbiB0aGUgSUNVIFVzZXIgR3VpZGUsCisgKiBodHRwOi8vaWN1LXByb2plY3Qub3Jn
L3VzZXJndWlkZS9ib3VuZGFyeUFuYWx5c2lzLmh0bWwKKyAqIGFuZCBpbiB0aGUgc2FtcGxlIHBy
b2dyYW0gaWN1L3NvdXJjZS9zYW1wbGVzL2JyZWFrL2JyZWFrLmNwcAorICoKKyAqLworY2xhc3Mg
VV9DT01NT05fQVBJIEJyZWFrSXRlcmF0b3IgOiBwdWJsaWMgVU9iamVjdCB7CitwdWJsaWM6Cisg
ICAgLyoqCisgICAgICogIGRlc3RydWN0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCB+QnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICogUmV0
dXJuIHRydWUgaWYgYW5vdGhlciBvYmplY3QgaXMgc2VtYW50aWNhbGx5IGVxdWFsIHRvIHRoaXMK
KyAgICAgKiBvbmUuIFRoZSBvdGhlciBvYmplY3Qgc2hvdWxkIGJlIGFuIGluc3RhbmNlIG9mIHRo
ZSBzYW1lIHN1YmNsYXNzIG9mCisgICAgICogQnJlYWtJdGVyYXRvci4gT2JqZWN0cyBvZiBkaWZm
ZXJlbnQgc3ViY2xhc3NlcyBhcmUgY29uc2lkZXJlZAorICAgICAqIHVuZXF1YWwuCisgICAgICog
PFA+CisgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBCcmVha0l0ZXJhdG9yIGlzIGF0IHRoZSBz
YW1lIHBvc2l0aW9uIGluIHRoZQorICAgICAqIHNhbWUgdGV4dCwgYW5kIGlzIHRoZSBzYW1lIGNs
YXNzIGFuZCB0eXBlICh3b3JkLCBsaW5lLCBldGMuKSBvZgorICAgICAqIEJyZWFrSXRlcmF0b3Is
IGFzIHRoZSBhcmd1bWVudC4gIFRleHQgaXMgY29uc2lkZXJlZCB0aGUgc2FtZSBpZgorICAgICAq
IGl0IGNvbnRhaW5zIHRoZSBzYW1lIGNoYXJhY3RlcnMsIGl0IG5lZWQgbm90IGJlIHRoZSBzYW1l
CisgICAgICogb2JqZWN0LCBhbmQgc3R5bGVzIGFyZSBub3QgY29uc2lkZXJlZC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29u
c3QgQnJlYWtJdGVyYXRvciYpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMg
dGhlIGNvbXBsZW1lbnQgb2YgdGhlIHJlc3VsdCBvZiBvcGVyYXRvcj09CisgICAgICogQHBhcmFt
IHJocyBUaGUgQnJlYWtJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgaW5lcXVhbGl0eQorICAg
ICAqIEByZXR1cm4gdGhlIGNvbXBsZW1lbnQgb2YgdGhlIHJlc3VsdCBvZiBvcGVyYXRvcj09Cisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVUJvb2wgb3BlcmF0b3IhPShjb25z
dCBCcmVha0l0ZXJhdG9yJiByaHMpIGNvbnN0IHsgcmV0dXJuICFvcGVyYXRvcj09KHJocyk7IH0K
KworICAgIC8qKgorICAgICAqIFJldHVybiBhIHBvbHltb3JwaGljIGNvcHkgb2YgdGhpcyBvYmpl
Y3QuICBUaGlzIGlzIGFuIGFic3RyYWN0CisgICAgICogbWV0aG9kIHdoaWNoIHN1YmNsYXNzZXMg
aW1wbGVtZW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
QnJlYWtJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICog
UmV0dXJuIGEgcG9seW1vcnBoaWMgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0LiBEaWZmZXJlbnQg
c3ViY2xhc3NlcworICAgICAqIHdpbGwgcmV0dXJuIGRpc3RpbmN0IHVuZXF1YWwgdmFsdWVzLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0
RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJu
IGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9y
JiBnZXRUZXh0KHZvaWQpIGNvbnN0ID0gMDsKKworCisgICAgLyoqCisgICAgICAqICBHZXQgYSBV
VGV4dCBmb3IgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICAqICBUaGUgcmV0dXJuZWQg
VVRleHQgaXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBVVGV4dCB1c2VkIGludGVybmFsbHkKKyAg
ICAgICogIGJ5IHRoZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbi4gIEl0IGNhbiBzYWZl
bHkgYmUgdXNlZCB0bworICAgICAgKiAgYWNjZXNzIHRoZSB0ZXh0IHdpdGhvdXQgaW1wYWN0aW5n
IGFueSBicmVhayBpdGVyYXRvciBvcGVyYXRpb25zLAorICAgICAgKiAgYnV0IHRoZSB1bmRlcmx5
aW5nIHRleHQgaXRzZWxmIG11c3Qgbm90IGJlIGFsdGVyZWQuCisgICAgICAqCisgICAgICAqIEBw
YXJhbSBmaWxsSW4gQSBVVGV4dCB0byBiZSBmaWxsZWQgaW4uICBJZiBOVUxMLCBhIG5ldyBVVGV4
dCB3aWxsIGJlCisgICAgICAqICAgICAgICAgICBhbGxvY2F0ZWQgdG8gaG9sZCB0aGUgcmVzdWx0
LgorICAgICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAg
ICogQHJldHVybiAgIFRoZSBjdXJyZW50IFVUZXh0IGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiAg
SWYgYW4gaW5wdXQKKyAgICAgICogICAgICAgICAgIFVUZXh0IHdhcyBwcm92aWRlZCwgaXQgd2ls
bCBhbHdheXMgYmUgcmV0dXJuZWQuCisgICAgICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAgKi8K
KyAgICAgdmlydHVhbCBVVGV4dCAqZ2V0VVRleHQoVVRleHQgKmZpbGxJbiwgVUVycm9yQ29kZSAm
c3RhdHVzKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDaGFuZ2UgdGhlIHRleHQgb3Zl
ciB3aGljaCB0aGlzIG9wZXJhdGVzLiBUaGUgdGV4dCBib3VuZGFyeSBpcworICAgICAqIHJlc2V0
IHRvIHRoZSBzdGFydC4KKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgVW5pY29kZVN0cmluZyB1c2Vk
IHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoY29uc3QgVW5pY29kZVN0cmluZyAmdGV4dCkgPSAwOwor
CisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGJyZWFrIGl0ZXJhdG9yIHRvIG9wZXJhdGUgb3Zl
ciB0aGUgdGV4dCByZXByZXNlbnRlZCBieQorICAgICAqIHRoZSBVVGV4dC4gIFRoZSBpdGVyYXRv
ciBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgc3RhcnQuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1
bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgc3VwcGxpZWQgVVRleHQuICBUaGlz
IG1lYW5zCisgICAgICogdGhhdCB0aGUgY2FsbGVyIGlzIGZyZWUgdG8gaW1tZWRpYXRlbHkgY2xv
c2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRoZQorICAgICAqIFV0ZXh0IHRoYXQgd2FzIHBhc3NlZCBh
cyBhIHBhcmFtZXRlciwgYnV0IHRoYXQgdGhlIHVuZGVybHlpbmcgdGV4dCBpdHNlbGYKKyAgICAg
KiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdoaWxlIGJlaW5nIHJlZmVyZW5jZWQgYnkgdGhlIGJyZWFr
IGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQWxsIGluZGV4IHBvc2l0aW9ucyByZXR1cm5lZCBi
eSBicmVhayBpdGVyYXRvciBmdW5jdGlvbnMgYXJlCisgICAgICogbmF0aXZlIGluZGljZXMgZnJv
bSB0aGUgVVRleHQuIEZvciBleGFtcGxlLCB3aGVuIGJyZWFraW5nIFVURi04CisgICAgICogZW5j
b2RlZCB0ZXh0LCB0aGUgYnJlYWsgcG9zaXRpb25zIHJldHVybmVkIGJ5IG5leHQoKSwgcHJldmlv
dXMoKSwgZXRjLgorICAgICAqIHdpbGwgYmUgVVRGLTggc3RyaW5nIGluZGljZXMsIG5vdCBVVEYt
MTYgcG9zaXRpb25zLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgVGhlIFVUZXh0IHVzZWQg
dG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVy
cm9yIGNvZGVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAqLworICAgIHZpcnR1YWwg
dm9pZCAgc2V0VGV4dChVVGV4dCAqdGV4dCwgVUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBDaGFuZ2UgdGhlIHRleHQgb3ZlciB3aGljaCB0aGlzIG9wZXJhdGVzLiBU
aGUgdGV4dCBib3VuZGFyeSBpcworICAgICAqIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKiBO
b3RlIHRoYXQgc2V0VGV4dChVVGV4dCAqKSBwcm92aWRlcyBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkg
dG8gdGhpcyBmdW5jdGlvbiwKKyAgICAgKiBhbmQgaXMgbW9yZSBlZmZpY2llbnQuCisgICAgICog
QHBhcmFtIGl0IFRoZSBDaGFyYWN0ZXJJdGVyYXRvciB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIGFkb3B0
VGV4dChDaGFyYWN0ZXJJdGVyYXRvciogaXQpID0gMDsKKworICAgIGVudW0geworICAgICAgICAv
KioKKyAgICAgICAgICogRE9ORSBpcyByZXR1cm5lZCBieSBwcmV2aW91cygpIGFuZCBuZXh0KCkg
YWZ0ZXIgYWxsIHZhbGlkCisgICAgICAgICAqIGJvdW5kYXJpZXMgaGF2ZSBiZWVuIHJldHVybmVk
LgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgICAgICovCisgICAgICAgIERPTkUg
PSAoaW50MzJfdCktMQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50
IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCBwb3NpdGlv
biB6ZXJvLgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRo
ZSB0ZXh0LCB6ZXJvLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgaW50MzJfdCBmaXJzdCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0
ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBpbmRleCBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGxhc3Qg
Y2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJlaW5nIHNjYW5uZWQuCisgICAgICogQHJldHVybiBUaGUg
aW5kZXggaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCBi
ZWluZyBzY2FubmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgaW50MzJfdCBsYXN0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRl
cmF0b3IgcG9zaXRpb24gdG8gdGhlIGJvdW5kYXJ5IHByZWNlZGluZyB0aGUgY3VycmVudCBib3Vu
ZGFyeS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgaW5kZXggb2YgdGhlIHByZXZpb3Vz
IHRleHQgYm91bmRhcnkgb3IgRE9ORSBpZiBhbGwKKyAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVl
biByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IGludDMyX3QgcHJldmlvdXModm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogQWR2YW5jZSB0
aGUgaXRlcmF0b3IgdG8gdGhlIGJvdW5kYXJ5IGZvbGxvd2luZyB0aGUgY3VycmVudCBib3VuZGFy
eS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgaW5kZXggb2YgdGhlIG5leHQgdGV4dCBi
b3VuZGFyeSBvciBET05FIGlmIGFsbAorICAgICAqIGJvdW5kYXJpZXMgaGF2ZSBiZWVuIHJldHVy
bmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJf
dCBuZXh0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybiBjaGFyYWN0ZXIgaW5k
ZXggb2YgdGhlIGN1cnJlbnQgaW50ZXJhdG9yIHBvc2l0aW9uIHdpdGhpbiB0aGUgdGV4dC4KKyAg
ICAgKiBAcmV0dXJuIFRoZSBib3VuZGFyeSBtb3N0IHJlY2VudGx5IHJldHVybmVkLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBjdXJyZW50KHZv
aWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIEFkdmFuY2UgdGhlIGl0ZXJhdG9yIHRv
IHRoZSBmaXJzdCBib3VuZGFyeSBmb2xsb3dpbmcgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAg
ICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5cyBncmVhdGVyIHRoYW4gdGhlIG9mZnNldCBv
cgorICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0ZXJhdG9yLkRPTkUKKyAgICAgKiBAcGFyYW0gb2Zm
c2V0IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nhbm5pbmcuCisgICAgICogQHJldHVybiBUaGUgZmly
c3QgYm91bmRhcnkgYWZ0ZXIgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGZvbGxvd2luZyhpbnQzMl90IG9m
ZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0
byB0aGUgZmlyc3QgYm91bmRhcnkgcHJlY2VkaW5nIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAg
ICAqIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhbHdheXMgc21hbGxlciB0aGFuIHRoZSBvZmZzZXQg
b3IKKyAgICAgKiB0aGUgdmFsdWUgQnJlYWtJdGVyYXRvci5ET05FCisgICAgICogQHBhcmFtIG9m
ZnNldCB0aGUgb2Zmc2V0IHRvIGJlZ2luIHNjYW5uaW5nLgorICAgICAqIEByZXR1cm4gVGhlIGZp
cnN0IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJlY2VkaW5nKGludDMyX3Qg
b2Zmc2V0KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc3BlY2Zp
ZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiBBcyBhIHNpZGUgZWZm
ZWN0LCB0aGUgY3VycmVudCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0b3IgaXMgc2V0CisgICAgICog
dG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGF0IG9yIGZvbGxvd2luZyB0aGUgc3BlY2lm
aWVkIG9mZnNldC4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gY2hlY2suCisg
ICAgICogQHJldHVybiBUcnVlIGlmICJvZmZzZXQiIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBpc0JvdW5k
YXJ5KGludDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJh
dG9yIHBvc2l0aW9uIHRvIHRoZSBudGggYm91bmRhcnkgZnJvbSB0aGUgY3VycmVudCBib3VuZGFy
eQorICAgICAqIEBwYXJhbSBuIHRoZSBudW1iZXIgb2YgYm91bmRhcmllcyB0byBtb3ZlIGJ5LiAg
QSB2YWx1ZSBvZiAwCisgICAgICogZG9lcyBub3RoaW5nLiAgTmVnYXRpdmUgdmFsdWVzIG1vdmUg
dG8gcHJldmlvdXMgYm91bmRhcmllcworICAgICAqIGFuZCBwb3NpdGl2ZSB2YWx1ZXMgbW92ZSB0
byBsYXRlciBib3VuZGFyaWVzLgorICAgICAqIEByZXR1cm4gVGhlIG5ldyBpdGVyYXRvciBwb3Np
dGlvbiwgb3IKKyAgICAgKiBET05FIGlmIHRoZXJlIGFyZSBmZXdlciB0aGFuIHxufCBib3VuZGFy
aWVzIGluIHRoZSBzcGVjZmllZCBkaXJlY3Rpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQoaW50MzJfdCBuKSA9IDA7CisKKyAgIC8q
KgorICAgICAqIEZvciBSdWxlQmFzZWRCcmVha0l0ZXJhdG9ycywgcmV0dXJuIHRoZSBzdGF0dXMg
dGFnIGZyb20gdGhlIAorICAgICAqIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0
IHJlY2VudGx5CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgICogPHA+Cisg
ICAgICogRm9yIGJyZWFrIGl0ZXJhdG9yIHR5cGVzIHRoYXQgZG8gbm90IHN1cHBvcnQgYSBydWxl
IHN0YXR1cywKKyAgICAgKiBhIGRlZmF1bHQgdmFsdWUgb2YgMCBpcyByZXR1cm5lZC4KKyAgICAg
KiA8cD4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGF0dXMgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0
IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiAgICAgICAgIHJldHVybmVkIGJy
ZWFrIHBvc2l0aW9uLgorICAgICAqIEBzZWUgUnVsZUJhc2VCcmVha0l0ZXJhdG9yOjpnZXRSdWxl
U3RhdHVzKCkKKyAgICAgKiBAc2VlIFVXb3JkQnJlYWsKKyAgICAgKiBAc3RhYmxlIElDVSA1Mgor
ICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3RhdHVzKCkgY29uc3Q7CisKKyAg
IC8qKgorICAgICogRm9yIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JzLCBnZXQgdGhlIHN0YXR1cyAo
dGFnKSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsgcnVsZShzKSAKKyAgICAqIHRoYXQgZGV0ZXJtaW5l
ZCB0aGUgbW9zdCByZWNlbnRseSByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAqIDxwPgor
ICAgICogRm9yIGJyZWFrIGl0ZXJhdG9yIHR5cGVzIHRoYXQgZG8gbm90IHN1cHBvcnQgcnVsZSBz
dGF0dXMsCisgICAgKiBubyB2YWx1ZXMgYXJlIHJldHVybmVkLgorICAgICogPHA+CisgICAgKiBU
aGUgcmV0dXJuZWQgc3RhdHVzIHZhbHVlKHMpIGFyZSBzdG9yZWQgaW50byBhbiBhcnJheSBwcm92
aWRlZCBieSB0aGUgY2FsbGVyLgorICAgICogVGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHNvcnRl
ZCAoYXNjZW5kaW5nKSBvcmRlci4KKyAgICAqIElmIHRoZSBjYXBhY2l0eSBvZiB0aGUgb3V0cHV0
IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xkIHRoZSBkYXRhLAorICAgICogIHRoZSBvdXRw
dXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2YWlsYWJsZSBsZW5ndGgsIGFuZCBhCisgICAg
KiAgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1Igd2lsbCBiZSBzaWduYWxlZC4KKyAgICAqIDxwPgor
ICAgICogQHNlZSBSdWxlQmFzZUJyZWFrSXRlcmF0b3I6OmdldFJ1bGVTdGF0dXNWZWMKKyAgICAq
CisgICAgKiBAcGFyYW0gZmlsbEluVmVjIGFuIGFycmF5IHRvIGJlIGZpbGxlZCBpbiB3aXRoIHRo
ZSBzdGF0dXMgdmFsdWVzLgorICAgICogQHBhcmFtIGNhcGFjaXR5ICB0aGUgbGVuZ3RoIG9mIHRo
ZSBzdXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0aCBvZiB6ZXJvIGNhdXNlcworICAgICogICAgICAg
ICAgICAgICAgICB0aGUgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSBudW1iZXIgb2Ygc3RhdHVzIHZh
bHVlcywgaW4gdGhlCisgICAgKiAgICAgICAgICAgICAgICAgIG5vcm1hbCB3YXksIHdpdGhvdXQg
YXR0ZW10cGluZyB0byBzdG9yZSBhbnkgdmFsdWVzLgorICAgICogQHBhcmFtIHN0YXR1cyAgICBy
ZWNlaXZlcyBlcnJvciBjb2Rlcy4KKyAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIG51bWJlciBv
ZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxlcyB0aGF0IGRldGVybWluZWQKKyAgICAqICAg
ICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50IGJvdW5kYXJ5IHJldHVybmVkIGJ5IHRoZSBi
cmVhayBpdGVyYXRvci4KKyAgICAqICAgICAgICAgICAgICAgICAgSW4gdGhlIGV2ZW50IG9mIGEg
VV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRoZSByZXR1cm4gdmFsdWUKKyAgICAqICAgICAgICAg
ICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzIHRoYXQgd2VyZSBh
dmFpbGFibGUsCisgICAgKiAgICAgICAgICAgICAgICAgIG5vdCB0aGUgcmVkdWNlZCBudW1iZXIg
dGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgorICAgICogQHNlZSBnZXRSdWxlU3RhdHVzCisg
ICAgKiBAc3RhYmxlIElDVSA1MgorICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVT
dGF0dXNWZWMoaW50MzJfdCAqZmlsbEluVmVjLCBpbnQzMl90IGNhcGFjaXR5LCBVRXJyb3JDb2Rl
ICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIHdv
cmQtYnJlYWtzIHVzaW5nIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogUmV0dXJucyBhbiBpbnN0
YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIHdvcmQgYnJlYWtzLgorICAgICAq
IFdvcmRCcmVhayBpcyB1c2VmdWwgZm9yIHdvcmQgc2VsZWN0aW9uIChleC4gZG91YmxlIGNsaWNr
KQorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMg
dGhlIGVycm9yIGNvZGUKKyAgICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3Igd29yZC1i
cmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQg
dG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVj
ayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBj
aGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1v
cmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3Jt
YXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAg
ICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxv
Y2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3Rl
ZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQu
ICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2Nh
bGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5v
ciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisg
ICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNp
YmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlV29yZEluc3RhbmNl
KGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAg
ICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3IgbGluZS1icmVha3MgdXNpbmcgc3BlY2lmaWVk
IGxvY2FsZS4KKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBp
bXBsZW1lbnRpbmcgbGluZSBicmVha3MuIExpbmUKKyAgICAgKiBicmVha3MgYXJlIGxvZ2ljYWxs
eSBwb3NzaWJsZSBsaW5lIGJyZWFrcywgYWN0dWFsIGxpbmUgYnJlYWtzIGFyZQorICAgICAqIHVz
dWFsbHkgZGV0ZXJtaW5lZCBiYXNlZCBvbiBkaXNwbGF5IHdpZHRoLgorICAgICAqIExpbmVCcmVh
ayBpcyB1c2VmdWwgZm9yIHdvcmQgd3JhcHBpbmcgdGV4dC4KKyAgICAgKiBAcGFyYW0gd2hlcmUg
dGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAq
IEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciBsaW5lLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2Rl
JiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9y
bWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVj
dGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVl
IG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlv
biwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMg
d2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dB
Uk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisg
ICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91
bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJO
SU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVz
ZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNr
IGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMg
dGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0Lgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9y
KiBVX0VYUE9SVDIKKyAgICBjcmVhdGVMaW5lSW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwg
VUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJh
dG9yIGZvciBjaGFyYWN0ZXItYnJlYWtzIHVzaW5nIHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBS
ZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgY2hhcmFj
dGVyIGJyZWFrcy4KKyAgICAgKiBDaGFyYWN0ZXIgYnJlYWtzIGFyZSBib3VuZGFyaWVzIG9mIGNv
bWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVuY2VzLgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9j
YWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHJldHVy
biBBIEJyZWFrSXRlcmF0b3IgZm9yIGNoYXJhY3Rlci1icmVha3MuICBUaGUgVUVycm9yQ29kZSYg
c3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1h
dGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rp
b24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBv
ZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24s
IHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdo
aWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJO
SU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAg
ICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5k
IHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklO
RyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2Vk
OyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBs
b2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRo
ZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciog
VV9FWFBPUlQyCisgICAgY3JlYXRlQ2hhcmFjdGVySW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVy
ZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0
ZXJhdG9yIGZvciBzZW50ZW5jZS1icmVha3MgdXNpbmcgc3BlY2lmaWVkIGxvY2FsZQorICAgICAq
IFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyBzZW50
ZW5jZSBicmVha3MuCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBh
cmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRv
ciBmb3Igc2VudGVuY2UtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cworICAgICAqIHBh
cmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIu
CisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBu
b3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVyciku
ICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4g
Y2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0
ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhh
dCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVf
Q0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3
YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQg
dGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVx
dWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNv
dWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0
IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNy
ZWF0ZVNlbnRlbmNlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3Rh
dHVzKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciB0aXRsZS1j
YXNpbmcgYnJlYWtzIHVzaW5nIHRoZSBzcGVjaWZpZWQgbG9jYWxlCisgICAgICogUmV0dXJucyBh
biBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIHRpdGxlIGJyZWFrcy4K
KyAgICAgKiBUaGUgaXRlcmF0b3IgcmV0dXJuZWQgbG9jYXRlcyB0aXRsZSBib3VuZGFyaWVzIGFz
IGRlc2NyaWJlZCBmb3IKKyAgICAgKiBVbmljb2RlIDMuMiBvbmx5LiBGb3IgVW5pY29kZSA0LjAg
YW5kIGFib3ZlIHRpdGxlIGJvdW5kYXJ5IGl0ZXJhdGlvbiwKKyAgICAgKiBwbGVhc2UgdXNlIFdv
cmQgQm91bmRhcnkgaXRlcmF0b3Iue0BsaW5rICNjcmVhdGVXb3JkSW5zdGFuY2UgfQorICAgICAq
CisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBU
aGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3IgdGl0bGUt
YnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2Vk
IHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hl
Y2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQg
Y2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBt
b3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9y
bWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAg
ICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBs
b2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0
ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2Vk
LiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9j
YWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBu
b3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgor
ICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25z
aWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisg
ICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZVRpdGxlSW5zdGFu
Y2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgor
ICAgICAqIEdldCB0aGUgc2V0IG9mIExvY2FsZXMgZm9yIHdoaWNoIFRleHRCb3VuZGFyaWVzIGFy
ZSBpbnN0YWxsZWQuCisgICAgICogPHA+PGI+Tm90ZTo8L2I+IHRoaXMgd2lsbCBub3QgcmV0dXJu
IGxvY2FsZXMgYWRkZWQgdGhyb3VnaCB0aGUgcmVnaXN0ZXIKKyAgICAgKiBjYWxsLiBUbyBzZWUg
dGhlIHJlZ2lzdGVyZWQgbG9jYWxlcyB0b28sIHVzZSB0aGUgZ2V0QXZhaWxhYmxlTG9jYWxlcwor
ICAgICAqIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIFN0cmluZ0VudW1lcmF0aW9uIG9iamVjdCA8
L3A+CisgICAgICogQHBhcmFtIGNvdW50IHRoZSBvdXRwdXQgcGFyYW1ldGVyIG9mIG51bWJlciBv
ZiBlbGVtZW50cyBpbiB0aGUgbG9jYWxlIGxpc3QKKyAgICAgKiBAcmV0dXJuIGF2YWlsYWJsZSBs
b2NhbGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0
IExvY2FsZSogVV9FWFBPUlQyIGdldEF2YWlsYWJsZUxvY2FsZXMoaW50MzJfdCYgY291bnQpOwor
CisgICAgLyoqCisgICAgICogR2V0IG5hbWUgb2YgdGhlIG9iamVjdCBmb3IgdGhlIGRlc2lyZWQg
TG9jYWxlLCBpbiB0aGUgZGVzaXJlZCBsYW5nYXVnZS4KKyAgICAgKiBAcGFyYW0gb2JqZWN0TG9j
YWxlIG11c3QgYmUgZnJvbSBnZXRBdmFpbGFibGVMb2NhbGVzLgorICAgICAqIEBwYXJhbSBkaXNw
bGF5TG9jYWxlIHNwZWNpZmllcyB0aGUgZGVzaXJlZCBsb2NhbGUgZm9yIG91dHB1dC4KKyAgICAg
KiBAcGFyYW0gbmFtZSB0aGUgZmlsbC1pbiBwYXJhbWV0ZXIgb2YgdGhlIHJldHVybiB2YWx1ZQor
ICAgICAqIFVzZXMgYmVzdCBtYXRjaC4KKyAgICAgKiBAcmV0dXJuIHVzZXItZGlzcGxheWFibGUg
bmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBVbmljb2Rl
U3RyaW5nJiBVX0VYUE9SVDIgZ2V0RGlzcGxheU5hbWUoY29uc3QgTG9jYWxlJiBvYmplY3RMb2Nh
bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExvY2Fs
ZSYgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVW5pY29kZVN0cmluZyYgbmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgbmFtZSBvZiB0
aGUgb2JqZWN0IGZvciB0aGUgZGVzaXJlZCBMb2NhbGUsIGluIHRoZSBsYW5nYXVnZSBvZiB0aGUK
KyAgICAgKiBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gb2JqZWN0TG9jYWxlIG11c3Qg
YmUgZnJvbSBnZXRNYXRjaGluZ0xvY2FsZXMKKyAgICAgKiBAcGFyYW0gbmFtZSB0aGUgZmlsbC1p
biBwYXJhbWV0ZXIgb2YgdGhlIHJldHVybiB2YWx1ZQorICAgICAqIEByZXR1cm4gdXNlci1kaXNw
bGF5YWJsZSBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGlj
IFVuaWNvZGVTdHJpbmcmIFVfRVhQT1JUMiBnZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmIG9i
amVjdExvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5p
Y29kZVN0cmluZyYgbmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBEZXByZWNhdGVkIGZ1bmN0aW9u
YWxpdHkuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBUaHJlYWQgc2FmZSBj
bGllbnQtYnVmZmVyLWJhc2VkIGNsb25pbmcgb3BlcmF0aW9uCisgICAgICogICAgRG8gTk9UIGNh
bGwgZGVsZXRlIG9uIGEgc2FmZWNsb25lLCBzaW5jZSAnbmV3JyBpcyBub3QgdXNlZCB0byBjcmVh
dGUgaXQuCisgICAgICogQHBhcmFtIHN0YWNrQnVmZmVyIHVzZXIgYWxsb2NhdGVkIHNwYWNlIGZv
ciB0aGUgbmV3IGNsb25lLiBJZiBOVUxMIG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisg
ICAgICogSWYgYnVmZmVyIGlzIG5vdCBsYXJnZSBlbm91Z2gsIG5ldyBtZW1vcnkgd2lsbCBiZSBh
bGxvY2F0ZWQuCisgICAgICogQHBhcmFtIEJ1ZmZlclNpemUgcmVmZXJlbmNlIHRvIHNpemUgb2Yg
YWxsb2NhdGVkIHNwYWNlLgorICAgICAqIElmIEJ1ZmZlclNpemUgPT0gMCwgYSBzdWZmaWNpZW50
IHNpemUgZm9yIHVzZSBpbiBjbG9uaW5nIHdpbGwKKyAgICAgKiBiZSByZXR1cm5lZCAoJ3ByZS1m
bGlnaHRpbmcnKQorICAgICAqIElmIEJ1ZmZlclNpemUgaXMgbm90IGVub3VnaCBmb3IgYSBzdGFj
ay1iYXNlZCBzYWZlIGNsb25lLAorICAgICAqIG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQu
CisgICAgICogQHBhcmFtIHN0YXR1cyB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBvcGVyYXRpb24g
d2VudCBvbiBzbW9vdGhseSBvciB0aGVyZSB3ZXJlIGVycm9ycworICAgICAqICBBbiBpbmZvcm1h
dGlvbmFsIHN0YXR1cyB2YWx1ZSwgVV9TQUZFQ0xPTkVfQUxMT0NBVEVEX0VSUk9SLCBpcyB1c2Vk
IGlmIGFueSBhbGxvY2F0aW9ucyB3ZXJlCisgICAgICogIG5lY2Vzc2FyeS4KKyAgICAgKiBAcmV0
dXJuIHBvaW50ZXIgdG8gdGhlIG5ldyBjbG9uZQorICAgICAqCisgICAgICogQGRlcHJlY2F0ZWQg
SUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJ
dGVyYXRvciAqICBjcmVhdGVCdWZmZXJDbG9uZSh2b2lkICpzdGFja0J1ZmZlciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCAmQnVmZmVyU2l6
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9y
Q29kZSAmc3RhdHVzKSA9IDA7CisKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisKKyAg
ICAvKioKKyAgICAgKiAgIERldGVybWluZSB3aGV0aGVyIHRoZSBCcmVha0l0ZXJhdG9yIHdhcyBj
cmVhdGVkIGluIHVzZXIgbWVtb3J5IGJ5CisgICAgICogICBjcmVhdGVCdWZmZXJDbG9uZSgpLCBh
bmQgdGh1cyBzaG91bGQgbm90IGJlIGRlbGV0ZWQuICBTdWNoIG9iamVjdHMKKyAgICAgKiAgIG11
c3QgYmUgY2xvc2VkIGJ5IGFuIGV4cGxpY2l0IGNhbGwgdG8gdGhlIGRlc3RydWN0b3IgKG5vdCBk
ZWxldGUpLgorICAgICAqIEBkZXByZWNhdGVkIElDVSA1Mi4gQWx3YXlzIGRlbGV0ZSB0aGUgQnJl
YWtJdGVyYXRvci4KKyAgICAgKi8KKyAgICBpbmxpbmUgVUJvb2wgaXNCdWZmZXJDbG9uZSh2b2lk
KTsKKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLworCisjaWYgIVVDT05GSUdf
Tk9fU0VSVklDRQorICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGEgbmV3IGJyZWFrIGl0ZXJhdG9y
IG9mIHRoZSBpbmRpY2F0ZWQga2luZCwgdG8gdXNlIGluIHRoZSBnaXZlbiBsb2NhbGUuCisgICAg
ICogVGhlIGJyZWFrIGl0ZXJhdG9yIHdpbGwgYmUgYWRvcHRlZC4gIENsb25lcyBvZiB0aGUgaXRl
cmF0b3Igd2lsbCBiZSByZXR1cm5lZAorICAgICAqIGlmIGEgcmVxdWVzdCBmb3IgYSBicmVhayBp
dGVyYXRvciBvZiB0aGUgZ2l2ZW4ga2luZCBtYXRjaGVzIG9yIGZhbGxzIGJhY2sgdG8KKyAgICAg
KiB0aGlzIGxvY2FsZS4KKyAgICAgKiBCZWNhdXNlIElDVSBtYXkgY2hvb3NlIHRvIGNhY2hlIEJy
ZWFrSXRlcmF0b3JzIGludGVybmFsbHksIHRoaXMgbXVzdAorICAgICAqIGJlIGNhbGxlZCBhdCBh
cHBsaWNhdGlvbiBzdGFydHVwLCBwcmlvciB0byBhbnkgY2FsbHMgdG8KKyAgICAgKiBCcmVha0l0
ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0byBhdm9pZCB1bmRlZmluZWQgYmVoYXZpb3IuCisg
ICAgICogQHBhcmFtIHRvQWRvcHQgdGhlIEJyZWFrSXRlcmF0b3IgaW5zdGFuY2UgdG8gYmUgYWRv
cHRlZAorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhlIExvY2FsZSBmb3Igd2hpY2ggdGhpcyBpbnN0
YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAgICogQHBhcmFtIGtpbmQgdGhlIHR5cGUgb2Yg
aXRlcmF0b3IgZm9yIHdoaWNoIHRoaXMgaW5zdGFuY2UgaXMgdG8gYmUgcmVnaXN0ZXJlZAorICAg
ICAqIEBwYXJhbSBzdGF0dXMgdGhlIGluL291dCBzdGF0dXMgY29kZSwgbm8gc3BlY2lhbCBtZWFu
aW5ncyBhcmUgYXNzaWduZWQKKyAgICAgKiBAcmV0dXJuIGEgcmVnaXN0cnkga2V5IHRoYXQgY2Fu
IGJlIHVzZWQgdG8gdW5yZWdpc3RlciB0aGlzIGluc3RhbmNlCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi40CisgICAgICovCisgICAgc3RhdGljIFVSZWdpc3RyeUtleSBVX0VYUE9SVDIgcmVnaXN0ZXJJ
bnN0YW5jZShCcmVha0l0ZXJhdG9yKiB0b0Fkb3B0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYgbG9jYWxlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFVCcmVha0l0ZXJhdG9yVHlwZSBraW5kLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAg
ICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGEgcHJldmlvdXNseS1yZWdpc3RlcmVkIEJyZWFrSXRl
cmF0b3IgdXNpbmcgdGhlIGtleSByZXR1cm5lZCBmcm9tIHRoZQorICAgICAqIHJlZ2lzdGVyIGNh
bGwuICBLZXkgYmVjb21lcyBpbnZhbGlkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBjYWxsIGFuZCBzaG91
bGQgbm90IGJlIHVzZWQgYWdhaW4uCisgICAgICogVGhlIEJyZWFrSXRlcmF0b3IgY29ycmVzcG9u
ZGluZyB0byB0aGUga2V5IHdpbGwgYmUgZGVsZXRlZC4KKyAgICAgKiBCZWNhdXNlIElDVSBtYXkg
Y2hvb3NlIHRvIGNhY2hlIEJyZWFrSXRlcmF0b3JzIGludGVybmFsbHksIHRoaXMgc2hvdWxkCisg
ICAgICogYmUgY2FsbGVkIGR1cmluZyBhcHBsaWNhdGlvbiBzaHV0ZG93biwgYWZ0ZXIgYWxsIGNh
bGxzIHRvCisgICAgICogQnJlYWtJdGVyYXRvcjo6Y3JlYXRlWFhYSW5zdGFuY2UgdG8gYXZvaWQg
dW5kZWZpbmVkIGJlaGF2aW9yLgorICAgICAqIEBwYXJhbSBrZXkgdGhlIHJlZ2lzdHJ5IGtleSBy
ZXR1cm5lZCBieSBhIHByZXZpb3VzIGNhbGwgdG8gcmVnaXN0ZXJJbnN0YW5jZQorICAgICAqIEBw
YXJhbSBzdGF0dXMgdGhlIGluL291dCBzdGF0dXMgY29kZSwgbm8gc3BlY2lhbCBtZWFuaW5ncyBh
cmUgYXNzaWduZWQKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIGl0ZXJhdG9yIGZvciB0aGUg
a2V5IHdhcyBzdWNjZXNzZnVsbHkgdW5yZWdpc3RlcmVkCisgICAgICogQHN0YWJsZSBJQ1UgMi40
CisgICAgICovCisgICAgc3RhdGljIFVCb29sIFVfRVhQT1JUMiB1bnJlZ2lzdGVyKFVSZWdpc3Ry
eUtleSBrZXksIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4g
YSBTdHJpbmdFbnVtZXJhdGlvbiBvdmVyIHRoZSBsb2NhbGVzIGF2YWlsYWJsZSBhdCB0aGUgdGlt
ZSBvZiB0aGUgY2FsbCwKKyAgICAgKiBpbmNsdWRpbmcgcmVnaXN0ZXJlZCBsb2NhbGVzLgorICAg
ICAqIEByZXR1cm4gYSBTdHJpbmdFbnVtZXJhdGlvbiBvdmVyIHRoZSBsb2NhbGVzIGF2YWlsYWJs
ZSBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAq
LworICAgIHN0YXRpYyBTdHJpbmdFbnVtZXJhdGlvbiogVV9FWFBPUlQyIGdldEF2YWlsYWJsZUxv
Y2FsZXModm9pZCk7CisjZW5kaWYKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2Fs
ZSBmb3IgdGhpcyBicmVhayBpdGVyYXRvci4gVHdvIGZsYXZvcnMgYXJlIGF2YWlsYWJsZTogdmFs
aWQgYW5kCisgICAgICogYWN0dWFsIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAg
ICAgKi8KKyAgICBMb2NhbGUgZ2V0TG9jYWxlKFVMb2NEYXRhTG9jYWxlVHlwZSB0eXBlLCBVRXJy
b3JDb2RlJiBzdGF0dXMpIGNvbnN0OworCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAg
ICAvKiogR2V0IHRoZSBsb2NhbGUgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3Igb2JqZWN0LiBZb3Ug
Y2FuIGNob29zZSBiZXR3ZWVuIHZhbGlkIGFuZCBhY3R1YWwgbG9jYWxlLgorICAgICAqICBAcGFy
YW0gdHlwZSB0eXBlIG9mIHRoZSBsb2NhbGUgd2UncmUgbG9va2luZyBmb3IgKHZhbGlkIG9yIGFj
dHVhbCkKKyAgICAgKiAgQHBhcmFtIHN0YXR1cyBlcnJvciBjb2RlIGZvciB0aGUgb3BlcmF0aW9u
CisgICAgICogIEByZXR1cm4gdGhlIGxvY2FsZQorICAgICAqICBAaW50ZXJuYWwKKyAgICAgKi8K
KyAgICBjb25zdCBjaGFyICpnZXRMb2NhbGVJRChVTG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwgVUVy
cm9yQ29kZSYgc3RhdHVzKSBjb25zdDsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAq
LworCisgICAgLyoqCisgICAgICogIFNldCB0aGUgc3ViamVjdCB0ZXh0IHN0cmluZyB1cG9uIHdo
aWNoIHRoZSBicmVhayBpdGVyYXRvciBpcyBvcGVyYXRpbmcKKyAgICAgKiAgd2l0aG91dCBjaGFu
Z2luZyBhbnkgb3RoZXIgYXNwZWN0IG9mIHRoZSBtYXRjaGluZyBzdGF0ZS4KKyAgICAgKiAgVGhl
IG5ldyBhbmQgcHJldmlvdXMgdGV4dCBzdHJpbmdzIG11c3QgaGF2ZSB0aGUgc2FtZSBjb250ZW50
LgorICAgICAqCisgICAgICogIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBpbiBl
bnZpcm9ubWVudHMgd2hlcmUgSUNVIGlzIG9wZXJhdGluZyBvbgorICAgICAqICBzdHJpbmdzIHRo
YXQgbWF5IG1vdmUgYXJvdW5kIGluIG1lbW9yeS4gIEl0IHByb3ZpZGVzIGEgbWVjaGFuaXNtIGZv
ciBub3RpZnlpbmcKKyAgICAgKiAgSUNVIHRoYXQgdGhlIHN0cmluZyBoYXMgYmVlbiByZWxvY2F0
ZWQsIGFuZCBwcm92aWRpbmcgYSBuZXcgVVRleHQgdG8gYWNjZXNzIHRoZQorICAgICAqICBzdHJp
bmcgaW4gaXRzIG5ldyBwb3NpdGlvbi4KKyAgICAgKgorICAgICAqICBOb3RlIHRoYXQgdGhlIGJy
ZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uIG5ldmVyIGNvcGllcyB0aGUgdW5kZXJseWluZyB0
ZXh0CisgICAgICogIG9mIGEgc3RyaW5nIGJlaW5nIHByb2Nlc3NlZCwgYnV0IGFsd2F5cyBvcGVy
YXRlcyBkaXJlY3RseSBvbiB0aGUgb3JpZ2luYWwgdGV4dAorICAgICAqICBwcm92aWRlZCBieSB0
aGUgdXNlci4gUmVmcmVzaGluZyBzaW1wbHkgZHJvcHMgdGhlIHJlZmVyZW5jZXMgdG8gdGhlIG9s
ZCB0ZXh0CisgICAgICogIGFuZCByZXBsYWNlcyB0aGVtIHdpdGggcmVmZXJlbmNlcyB0byB0aGUg
bmV3LgorICAgICAqCisgICAgICogIENhdXRpb246ICB0aGlzIGZ1bmN0aW9uIGlzIG5vcm1hbGx5
IHVzZWQgb25seSBieSB2ZXJ5IHNwZWNpYWxpemVkLAorICAgICAqICBzeXN0ZW0tbGV2ZWwgY29k
ZS4gIE9uZSBleGFtcGxlIHVzZSBjYXNlIGlzIHdpdGggZ2FyYmFnZSBjb2xsZWN0aW9uIHRoYXQg
bW92ZXMKKyAgICAgKiAgdGhlIHRleHQgaW4gbWVtb3J5LgorICAgICAqCisgICAgICogQHBhcmFt
IGlucHV0ICAgICAgVGhlIG5ldyAobW92ZWQpIHRleHQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBz
dGF0dXMgICAgIFJlY2VpdmVzIGVycm9ycyBkZXRlY3RlZCBieSB0aGlzIGZ1bmN0aW9uLgorICAg
ICAqIEByZXR1cm4gICAgICAgICAgICp0aGlzCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0
OQorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciAmcmVmcmVzaElucHV0VGV4dChV
VGV4dCAqaW5wdXQsIFVFcnJvckNvZGUgJnN0YXR1cykgPSAwOworCisgcHJpdmF0ZToKKyAgICBz
dGF0aWMgQnJlYWtJdGVyYXRvciogYnVpbGRJbnN0YW5jZShjb25zdCBMb2NhbGUmIGxvYywgY29u
c3QgY2hhciAqdHlwZSwgaW50MzJfdCBraW5kLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworICAgIHN0
YXRpYyBCcmVha0l0ZXJhdG9yKiBjcmVhdGVJbnN0YW5jZShjb25zdCBMb2NhbGUmIGxvYywgaW50
MzJfdCBraW5kLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9y
KiBtYWtlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2MsIGludDMyX3Qga2luZCwgVUVycm9yQ29k
ZSYgc3RhdHVzKTsKKworICAgIGZyaWVuZCBjbGFzcyBJQ1VCcmVha0l0ZXJhdG9yRmFjdG9yeTsK
KyAgICBmcmllbmQgY2xhc3MgSUNVQnJlYWtJdGVyYXRvclNlcnZpY2U7CisKK3Byb3RlY3RlZDoK
KyAgICAvLyBEbyBub3QgZW5jbG9zZSBwcm90ZWN0ZWQgZGVmYXVsdC9jb3B5IGNvbnN0cnVjdG9y
cyB3aXRoICNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8vIG9yIGVsc2UgdGhlIGNv
bXBpbGVyIHdpbGwgY3JlYXRlIGEgcHVibGljIG9uZXMuCisgICAgLyoqIEBpbnRlcm5hbCAqLwor
ICAgIEJyZWFrSXRlcmF0b3IoKTsKKyAgICAvKiogQGludGVybmFsICovCisgICAgQnJlYWtJdGVy
YXRvciAoY29uc3QgQnJlYWtJdGVyYXRvciAmb3RoZXIpIDogVU9iamVjdChvdGhlcikge30KKyAg
ICAvKiogQGludGVybmFsICovCisgICAgQnJlYWtJdGVyYXRvciAoY29uc3QgTG9jYWxlJiB2YWxp
ZCwgY29uc3QgTG9jYWxlJiBhY3R1YWwpOworcHJpdmF0ZToKKworICAgIC8qKiBAaW50ZXJuYWwg
Ki8KKyAgICBjaGFyIGFjdHVhbExvY2FsZVtVTE9DX0ZVTExOQU1FX0NBUEFDSVRZXTsKKyAgICBj
aGFyIHZhbGlkTG9jYWxlW1VMT0NfRlVMTE5BTUVfQ0FQQUNJVFldOworCisgICAgLyoqCisgICAg
ICogVGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IgaGFzIG5vIHJlYWwgaW1wbGVtZW50YXRpb24uCisg
ICAgICogSXQncyBwcm92aWRlZCB0byBtYWtlIHRoZSBjb21waWxlciBoYXBweS4gRG8gbm90IGNh
bGwuCisgICAgICovCisgICAgQnJlYWtJdGVyYXRvciYgb3BlcmF0b3I9KGNvbnN0IEJyZWFrSXRl
cmF0b3ImKTsKK307CisKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisKK2lubGluZSBV
Qm9vbCBCcmVha0l0ZXJhdG9yOjppc0J1ZmZlckNsb25lKCkKK3sKKyAgICByZXR1cm4gRkFMU0U7
Cit9CisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KKworVV9OQU1FU1BBQ0Vf
RU5ECisKKyNlbmRpZiAvKiAjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OICovCisKKyNl
bmRpZiAvLyBfQlJLSVRFUgorLy9lb2YKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNv
ZGUvY2hhcml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lOGQ2NTA5MGE0MGE2MDg1OTUxYzczMzA3Zjc0YWNmODNiYTFiYmM4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9jaGFyaXRlci5oCkBAIC0wLDAgKzEsNzIy
IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMSwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMu
ICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgQ0hB
UklURVJfSAorI2RlZmluZSBDSEFSSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3Ry
LmgiCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTogQ2hhcmFjdGVyIEl0ZXJhdG9y
CisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lOCisvKioKKyAqIEFic3RyYWN0IGNsYXNzIHRoYXQg
ZGVmaW5lcyBhbiBBUEkgZm9yIGZvcndhcmQtb25seSBpdGVyYXRpb24KKyAqIG9uIHRleHQgb2Jq
ZWN0cy4KKyAqIFRoaXMgaXMgYSBtaW5pbWFsIGludGVyZmFjZSBmb3IgaXRlcmF0aW9uIHdpdGhv
dXQgcmFuZG9tIGFjY2VzcworICogb3IgYmFja3dhcmRzIGl0ZXJhdGlvbi4gSXQgaXMgZXNwZWNp
YWxseSB1c2VmdWwgZm9yIHdyYXBwaW5nCisgKiBzdHJlYW1zIHdpdGggY29udmVydGVycyBpbnRv
IGFuIG9iamVjdCBmb3IgY29sbGF0aW9uIG9yCisgKiBub3JtYWxpemF0aW9uLgorICoKKyAqIDxw
PkNoYXJhY3RlcnMgY2FuIGJlIGFjY2Vzc2VkIGluIHR3byB3YXlzOiBhcyBjb2RlIHVuaXRzIG9y
IGFzCisgKiBjb2RlIHBvaW50cy4KKyAqIFVuaWNvZGUgY29kZSBwb2ludHMgYXJlIDIxLWJpdCBp
bnRlZ2VycyBhbmQgYXJlIHRoZSBzY2FsYXIgdmFsdWVzCisgKiBvZiBVbmljb2RlIGNoYXJhY3Rl
cnMuIElDVSB1c2VzIHRoZSB0eXBlIFVDaGFyMzIgZm9yIHRoZW0uCisgKiBVbmljb2RlIGNvZGUg
dW5pdHMgYXJlIHRoZSBzdG9yYWdlIHVuaXRzIG9mIGEgZ2l2ZW4KKyAqIFVuaWNvZGUvVUNTIFRy
YW5zZm9ybWF0aW9uIEZvcm1hdCAoYSBjaGFyYWN0ZXIgZW5jb2Rpbmcgc2NoZW1lKS4KKyAqIFdp
dGggVVRGLTE2LCBhbGwgY29kZSBwb2ludHMgY2FuIGJlIHJlcHJlc2VudGVkIHdpdGggZWl0aGVy
IG9uZQorICogb3IgdHdvIGNvZGUgdW5pdHMgKCJzdXJyb2dhdGVzIikuCisgKiBTdHJpbmcgc3Rv
cmFnZSBpcyB0eXBpY2FsbHkgYmFzZWQgb24gY29kZSB1bml0cywgd2hpbGUgcHJvcGVydGllcwor
ICogb2YgY2hhcmFjdGVycyBhcmUgdHlwaWNhbGx5IGRldGVybWluZWQgdXNpbmcgY29kZSBwb2lu
dCB2YWx1ZXMuCisgKiBTb21lIHByb2Nlc3NlcyBtYXkgYmUgZGVzaWduZWQgdG8gd29yayB3aXRo
IHNlcXVlbmNlcyBvZiBjb2RlIHVuaXRzLAorICogb3IgaXQgbWF5IGJlIGtub3duIHRoYXQgYWxs
IGNoYXJhY3RlcnMgdGhhdCBhcmUgaW1wb3J0YW50IHRvIGFuCisgKiBhbGdvcml0aG0gY2FuIGJl
IHJlcHJlc2VudGVkIHdpdGggc2luZ2xlIGNvZGUgdW5pdHMuCisgKiBPdGhlciBwcm9jZXNzZXMg
d2lsbCBuZWVkIHRvIHVzZSB0aGUgY29kZSBwb2ludCBhY2Nlc3MgZnVuY3Rpb25zLjwvcD4KKyAq
CisgKiA8cD5Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgcHJvdmlkZXMgbmV4dFBvc3RJbmMoKSB0
byBhY2Nlc3MKKyAqIGEgY29kZSB1bml0IGFuZCBhZHZhbmNlIGFuIGludGVybmFsIHBvc2l0aW9u
IGludG8gdGhlIHRleHQgb2JqZWN0LAorICogc2ltaWxhciB0byBhIDxjb2RlPnJldHVybiB0ZXh0
W3Bvc2l0aW9uKytdPC9jb2RlPi48YnI+CisgKiBJdCBwcm92aWRlcyBuZXh0MzJQb3N0SW5jKCkg
dG8gYWNjZXNzIGEgY29kZSBwb2ludCBhbmQgYWR2YW5jZSBhbiBpbnRlcm5hbAorICogcG9zaXRp
b24uPC9wPgorICoKKyAqIDxwPm5leHQzMlBvc3RJbmMoKSBhc3N1bWVzIHRoYXQgdGhlIGN1cnJl
bnQgcG9zaXRpb24gaXMgdGhhdCBvZgorICogdGhlIGJlZ2lubmluZyBvZiBhIGNvZGUgcG9pbnQs
IGkuZS4sIG9mIGl0cyBmaXJzdCBjb2RlIHVuaXQuCisgKiBBZnRlciBuZXh0MzJQb3N0SW5jKCks
IHRoaXMgd2lsbCBiZSB0cnVlIGFnYWluLgorICogSW4gZ2VuZXJhbCwgYWNjZXNzIHRvIGNvZGUg
dW5pdHMgYW5kIGNvZGUgcG9pbnRzIGluIHRoZSBzYW1lCisgKiBpdGVyYXRpb24gbG9vcCBzaG91
bGQgbm90IGJlIG1peGVkLiBJbiBVVEYtMTYsIGlmIHRoZSBjdXJyZW50IHBvc2l0aW9uCisgKiBp
cyBvbiBhIHNlY29uZCBjb2RlIHVuaXQgKExvdyBTdXJyb2dhdGUpLCB0aGVuIG9ubHkgdGhhdCBj
b2RlIHVuaXQKKyAqIGlzIHJldHVybmVkIGV2ZW4gYnkgbmV4dDMyUG9zdEluYygpLjwvcD4KKyAq
CisgKiA8cD5Gb3IgaXRlcmF0aW9uIHdpdGggZWl0aGVyIGZ1bmN0aW9uLCB0aGVyZSBhcmUgdHdv
IHdheXMgdG8KKyAqIGNoZWNrIGZvciB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24uIFdoZW4gdGhl
cmUgYXJlIG5vIG1vcmUKKyAqIGNoYXJhY3RlcnMgaW4gdGhlIHRleHQgb2JqZWN0OgorICogPHVs
PgorICogPGxpPlRoZSBoYXNOZXh0KCkgZnVuY3Rpb24gcmV0dXJucyBGQUxTRS48L2xpPgorICog
PGxpPm5leHRQb3N0SW5jKCkgYW5kIG5leHQzMlBvc3RJbmMoKSByZXR1cm4gRE9ORQorICogICAg
IHdoZW4gb25lIGF0dGVtcHRzIHRvIHJlYWQgYmV5b25kIHRoZSBlbmQgb2YgdGhlIHRleHQgb2Jq
ZWN0LjwvbGk+CisgKiA8L3VsPgorICoKKyAqIEV4YW1wbGU6CisgKiBcY29kZSAKKyAqIHZvaWQg
ZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhcjMy
IGM7CisgKiAgICAgd2hpbGUoaXQuaGFzTmV4dCgpKSB7CisgKiAgICAgICAgIGM9aXQubmV4dDMy
UG9zdEluYygpOworICogICAgICAgICAvLyB1c2UgYworICogICAgIH0KKyAqIH0KKyAqCisgKiB2
b2lkIGZ1bmN0aW9uMShGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNo
YXIgYzsKKyAqICAgICB3aGlsZSgoYz1pdC5uZXh0UG9zdEluYygpKSE9Rm9yd2FyZENoYXJhY3Rl
ckl0ZXJhdG9yOjpET05FKSB7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9
CisgKiBcZW5kY29kZQorICogPC9wPgorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitjbGFz
cyBVX0NPTU1PTl9BUEkgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIDogcHVibGljIFVPYmplY3Qg
eworcHVibGljOgorICAgIC8qKgorICAgICAqIFZhbHVlIHJldHVybmVkIGJ5IG1vc3Qgb2YgRm9y
d2FyZENoYXJhY3Rlckl0ZXJhdG9yJ3MgZnVuY3Rpb25zCisgICAgICogd2hlbiB0aGUgaXRlcmF0
b3IgaGFzIHJlYWNoZWQgdGhlIGxpbWl0cyBvZiBpdHMgaXRlcmF0aW9uLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIGVudW0geyBET05FID0gMHhmZmZmIH07CisgICAgCisg
ICAgLyoqCisgICAgICogRGVzdHJ1Y3Rvci4gIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgfkZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgIAorICAg
IC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSB3aGVuIGJvdGggaXRlcmF0b3JzIHJlZmVyIHRvIHRo
ZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIGNoYXJhY3Rlci1zdG9yYWdlIG9i
amVjdC4gIAorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Ig
dG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5CisgICAgICogQHJldHVybiB0cnVlIHdoZW4gYm90
aCBpdGVyYXRvcnMgcmVmZXIgdG8gdGhlIHNhbWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNh
bWUgY2hhcmFjdGVyLXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciYgdGhhdCkgY29uc3QgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMg
dHJ1ZSB3aGVuIHRoZSBpdGVyYXRvcnMgcmVmZXIgdG8gZGlmZmVyZW50CisgICAgICogdGV4dC1z
dG9yYWdlIG9iamVjdHMsIG9yIHRvIGRpZmZlcmVudCBjaGFyYWN0ZXJzIGluIHRoZQorICAgICAq
IHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdC4gIAorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3
YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGluZXF1YWxpdHkKKyAgICAg
KiBAcmV0dXJuIHRydWUgd2hlbiB0aGUgaXRlcmF0b3JzIHJlZmVyIHRvIGRpZmZlcmVudAorICAg
ICAqIHRleHQtc3RvcmFnZSBvYmplY3RzLCBvciB0byBkaWZmZXJlbnQgY2hhcmFjdGVycyBpbiB0
aGUKKyAgICAgKiBzYW1lIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBpbmxpbmUgVUJvb2wgb3BlcmF0b3IhPShjb25zdCBGb3J3YXJkQ2hh
cmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0OworICAgIAorICAgIC8qKgorICAgICAqIEdlbmVy
YXRlcyBhIGhhc2ggY29kZSBmb3IgdGhpcyBpdGVyYXRvci4gIAorICAgICAqIEByZXR1cm4gdGhl
IGhhc2ggY29kZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IGludDMyX3QgaGFzaENvZGUodm9pZCkgY29uc3QgPSAwOworICAgIAorICAgIC8qKgorICAgICAq
IFJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhpcyBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgKCJw
b29yIG1hbidzCisgICAgICogUlRUSSIpLjxQPiBEZXNwaXRlIHRoZSBmYWN0IHRoYXQgdGhpcyBm
dW5jdGlvbiBpcyBwdWJsaWMsCisgICAgICogRE8gTk9UIENPTlNJREVSIElUIFBBUlQgT0YgQ0hB
UkFDVEVSSVRFUkFUT1InUyBBUEkhIAorICAgICAqIEByZXR1cm4gYSBVQ2xhc3NJRCBmb3IgdGhp
cyBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdCA9
IDA7CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBjb2RlIHVuaXQgZm9y
IHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0CisgICAgICogaW4g
dGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVy
ZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUu
CisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHRQb3N0SW5jKHZv
aWQpID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgcG9p
bnQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludAorICAg
ICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAg
SWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVy
bnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQz
MlBvc3RJbmModm9pZCkgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgRkFMU0Ug
aWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgICAqIGF0
IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisg
ICAgICogVGhpcyBpcyB1c2VkIHdpdGggbmV4dFBvc3RJbmMoKSBvciBuZXh0MzJQb3N0SW5jKCkg
aW4gZm9yd2FyZAorICAgICAqIGl0ZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJucyBGQUxTRSBpZiB0
aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYXQgb3Ig
YWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNO
ZXh0KCkgPSAwOworICAgIAorcHJvdGVjdGVkOgorICAgIC8qKiBEZWZhdWx0IGNvbnN0cnVjdG9y
IHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGluZyBjbGFzcy4gQHN0YWJsZSBJQ1Ug
Mi4wKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAKKyAgICAvKiogQ29w
eSBjb25zdHJ1Y3RvciB0byBiZSBvdmVycmlkZGVuIGluIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3Mu
IEBzdGFibGUgSUNVIDIuMCovCisgICAgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmb3RoZXIpOworICAgIAorICAgIC8qKgorICAgICAqIEFz
c2lnbm1lbnQgb3BlcmF0b3IgdG8gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNs
YXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIEZvcndhcmRDaGFyYWN0
ZXJJdGVyYXRvciAmb3BlcmF0b3I9KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYpIHsg
cmV0dXJuICp0aGlzOyB9Cit9OworCisvKioKKyAqIEFic3RyYWN0IGNsYXNzIHRoYXQgZGVmaW5l
cyBhbiBBUEkgZm9yIGl0ZXJhdGlvbgorICogb24gdGV4dCBvYmplY3RzLgorICogVGhpcyBpcyBh
biBpbnRlcmZhY2UgZm9yIGZvcndhcmQgYW5kIGJhY2t3YXJkIGl0ZXJhdGlvbgorICogYW5kIHJh
bmRvbSBhY2Nlc3MgaW50byBhIHRleHQgb2JqZWN0LgorICoKKyAqIDxwPlRoZSBBUEkgcHJvdmlk
ZXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB0byB0aGUgSmF2YSBhbmQgb2xkZXIgSUNVCisgKiBD
aGFyYWN0ZXJJdGVyYXRvciBjbGFzc2VzIGJ1dCBleHRlbmRzIHRoZW0gc2lnbmlmaWNhbnRseToK
KyAqIDxvbD4KKyAqIDxsaT5DaGFyYWN0ZXJJdGVyYXRvciBpcyBub3cgYSBzdWJjbGFzcyBvZiBG
b3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuPC9saT4KKyAqIDxsaT5XaGlsZSB0aGUgb2xkIEFQSSBm
dW5jdGlvbnMgcHJvdmlkZWQgZm9yd2FyZCBpdGVyYXRpb24gd2l0aAorICogICAgICJwcmUtaW5j
cmVtZW50IiBzZW1hbnRpY3MsIHRoZSBuZXcgb25lIGFsc28gcHJvdmlkZXMgZnVuY3Rpb25zCisg
KiAgICAgd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNlbWFudGljcy4gVGhleSBhcmUgbW9yZSBlZmZp
Y2llbnQgYW5kIHNob3VsZAorICogICAgIGJlIHRoZSBwcmVmZXJyZWQgaXRlcmF0b3IgZnVuY3Rp
b25zIGZvciBuZXcgaW1wbGVtZW50YXRpb25zLgorICogICAgIFRoZSBiYWNrd2FyZCBpdGVyYXRp
b24gYWx3YXlzIGhhZCAicHJlLWRlY3JlbWVudCIgc2VtYW50aWNzLCB3aGljaAorICogICAgIGFy
ZSBlZmZpY2llbnQuPC9saT4KKyAqIDxsaT5KdXN0IGxpa2UgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yLCBpdCBwcm92aWRlcyBhY2Nlc3MgdG8KKyAqICAgICBib3RoIGNvZGUgdW5pdHMgYW5kIGNv
ZGUgcG9pbnRzLiBDb2RlIHBvaW50IGFjY2VzcyB2ZXJzaW9ucyBhcmUgYXZhaWxhYmxlCisgKiAg
ICAgZm9yIHRoZSBvbGQgYW5kIHRoZSBuZXcgaXRlcmF0aW9uIHNlbWFudGljcy48L2xpPgorICog
PGxpPlRoZXJlIGFyZSBuZXcgZnVuY3Rpb25zIGZvciBzZXR0aW5nIGFuZCBtb3ZpbmcgdGhlIGN1
cnJlbnQgcG9zaXRpb24KKyAqICAgICB3aXRob3V0IHJldHVybmluZyBhIGNoYXJhY3RlciwgZm9y
IGVmZmljaWVuY3kuPC9saT4KKyAqIDwvb2w+CisgKgorICogU2VlIEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciBmb3IgZXhhbXBsZXMgZm9yIHVzaW5nIHRoZSBuZXcgZm9yd2FyZCBpdGVyYXRpb24K
KyAqIGZ1bmN0aW9ucy4gRm9yIGJhY2t3YXJkIGl0ZXJhdGlvbiwgdGhlcmUgaXMgYWxzbyBhIGhh
c1ByZXZpb3VzKCkgZnVuY3Rpb24KKyAqIHRoYXQgY2FuIGJlIHVzZWQgYW5hbG9nb3VzbHkgdG8g
aGFzTmV4dCgpLgorICogVGhlIG9sZCBmdW5jdGlvbnMgd29yayBhcyBiZWZvcmUgYW5kIGFyZSBz
aG93biBiZWxvdy48L3A+CisgKgorICogPHA+RXhhbXBsZXMgZm9yIHNvbWUgb2YgdGhlIG5ldyBm
dW5jdGlvbnM6PC9wPgorICoKKyAqIEZvcndhcmQgaXRlcmF0aW9uIHdpdGggaGFzTmV4dCgpOgor
ICogXGNvZGUKKyAqIHZvaWQgZm9yd2FyZDEoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAg
ICAgVUNoYXIzMiBjOworICogICAgIGZvcihpdC5zZXRUb1N0YXJ0KCk7IGl0Lmhhc05leHQoKTsp
IHsKKyAqICAgICAgICAgYz1pdC5uZXh0MzJQb3N0SW5jKCk7CisgKiAgICAgICAgIC8vIHVzZSBj
CisgKiAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiBGb3J3YXJkIGl0ZXJhdGlvbiBtb3Jl
IHNpbWlsYXIgdG8gbG9vcHMgd2l0aCB0aGUgb2xkIGZvcndhcmQgaXRlcmF0aW9uLAorICogc2hv
d2luZyBhIHdheSB0byBjb252ZXJ0IHNpbXBsZSBmb3IoKSBsb29wczoKKyAqIFxjb2RlCisgKiB2
b2lkIGZvcndhcmQyKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyIGM7Cisg
KiAgICAgZm9yKGM9aXQuZmlyc3RQb3N0SW5jKCk7IGMhPUNoYXJhY3Rlckl0ZXJhdG9yOjpET05F
OyBjPWl0Lm5leHRQb3N0SW5jKCkpIHsKKyAqICAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0K
KyAqIH0KKyAqIFxlbmRjb2RlCisgKiBCYWNrd2FyZCBpdGVyYXRpb24gd2l0aCBzZXRUb0VuZCgp
IGFuZCBoYXNQcmV2aW91cygpOgorICogXGNvZGUKKyAqICB2b2lkIGJhY2t3YXJkMShDaGFyYWN0
ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICAgVUNoYXIzMiBjOworICogICAgICBmb3IoaXQuc2V0
VG9FbmQoKTsgaXQuaGFzUHJldmlvdXMoKTspIHsKKyAqICAgICAgICAgYz1pdC5wcmV2aW91czMy
KCk7CisgKiAgICAgICAgICAvLyB1c2UgYworICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUK
KyAqIEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIGEgbW9yZSB0cmFkaXRpb25hbCBmb3IoKSBsb29w
OgorICogXGNvZGUKKyAqIHZvaWQgYmFja3dhcmQyKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgewor
ICogICAgIFVDaGFyIGM7CisgKiAgICAgZm9yKGM9aXQubGFzdCgpOyBjIT1DaGFyYWN0ZXJJdGVy
YXRvcjo6RE9ORTsgYz1pdC5wcmV2aW91cygpKSB7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAg
ICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICoKKyAqIEV4YW1wbGUgZm9yIHJhbmRvbSBhY2Nl
c3M6CisgKiBcY29kZQorICogIHZvaWQgcmFuZG9tKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgewor
ICogICAgICAvLyBzZXQgdG8gdGhlIHRoaXJkIGNvZGUgcG9pbnQgZnJvbSB0aGUgYmVnaW5uaW5n
CisgKiAgICAgIGl0Lm1vdmUzMigzLCBDaGFyYWN0ZXJJdGVyYXRvcjo6a1N0YXJ0KTsKKyAqICAg
ICAgLy8gZ2V0IGEgY29kZSBwb2ludCBmcm9tIGhlcmUgd2l0aG91dCBtb3ZpbmcgdGhlIHBvc2l0
aW9uCisgKiAgICAgIFVDaGFyMzIgYz1pdC5jdXJyZW50MzIoKTsKKyAqICAgICAgLy8gZ2V0IHRo
ZSBwb3NpdGlvbgorICogICAgICBpbnQzMl90IHBvcz1pdC5nZXRJbmRleCgpOworICogICAgICAv
LyBnZXQgdGhlIHByZXZpb3VzIGNvZGUgdW5pdAorICogICAgICBVQ2hhciB1PWl0LnByZXZpb3Vz
KCk7CisgKiAgICAgIC8vIG1vdmUgYmFjayBvbmUgbW9yZSBjb2RlIHVuaXQKKyAqICAgICAgaXQu
bW92ZSgtMSwgQ2hhcmFjdGVySXRlcmF0b3I6OmtDdXJyZW50KTsKKyAqICAgICAgLy8gc2V0IHRo
ZSBwb3NpdGlvbiBiYWNrIHRvIHdoZXJlIGl0IHdhcworICogICAgICAvLyBhbmQgcmVhZCB0aGUg
c2FtZSBjb2RlIHBvaW50IGMgYW5kIG1vdmUgYmV5b25kIGl0CisgKiAgICAgIGl0LnNldEluZGV4
KHBvcyk7CisgKiAgICAgIGlmKGMhPWl0Lm5leHQzMlBvc3RJbmMoKSkgeworICogICAgICAgICAg
ZXhpdCgxKTsgLy8gQ2hhcmFjdGVySXRlcmF0b3IgaW5jb25zaXN0ZW50CisgKiAgICAgIH0KKyAq
ICB9CisgKiBcZW5kY29kZQorICoKKyAqIDxwPkV4YW1wbGVzLCBlc3BlY2lhbGx5IGZvciB0aGUg
b2xkIEFQSTo8L3A+CisgKgorICogRnVuY3Rpb24gcHJvY2Vzc2luZyBjaGFyYWN0ZXJzLCBpbiB0
aGlzIGV4YW1wbGUgc2ltcGxlIG91dHB1dAorICogPHByZT4KKyAqIFxjb2RlCisgKiAgdm9pZCBw
cm9jZXNzQ2hhciggVUNoYXIgYyApCisgKiAgeworICogICAgICBjb3V0IDw8ICIgIiA8PCBjOwor
ICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIFRyYXZlcnNlIHRoZSB0ZXh0IGZyb20g
c3RhcnQgdG8gZmluaXNoCisgKiA8cHJlPiAKKyAqIFxjb2RlCisgKiAgdm9pZCB0cmF2ZXJzZUZv
cndhcmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIpCisgKiAgeworICogICAgICBmb3IoVUNoYXIg
YyA9IGl0ZXIuZmlyc3QoKTsgYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FOyBjID0gaXRlci5u
ZXh0KCkpIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMpOworICogICAgICB9CisgKiAgfQor
ICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgdGhlIHRleHQgYmFja3dhcmRzLCBm
cm9tIGVuZCB0byBzdGFydAorICogPHByZT4KKyAqIFxjb2RlCisgKiAgdm9pZCB0cmF2ZXJzZUJh
Y2t3YXJkKENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyKQorICogIHsKKyAqICAgICAgZm9yKFVDaGFy
IGMgPSBpdGVyLmxhc3QoKTsgYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FOyBjID0gaXRlci5w
cmV2aW91cygpKSB7CisgKiAgICAgICAgICBwcm9jZXNzQ2hhcihjKTsKKyAqICAgICAgfQorICog
IH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIFRyYXZlcnNlIGJvdGggZm9yd2FyZCBhbmQg
YmFja3dhcmQgZnJvbSBhIGdpdmVuIHBvc2l0aW9uIGluIHRoZSB0ZXh0LiAKKyAqIENhbGxzIHRv
IG5vdEJvdW5kYXJ5KCkgaW4gdGhpcyBleGFtcGxlIHJlcHJlc2VudHMgc29tZSBhZGRpdGlvbmFs
IHN0b3BwaW5nIGNyaXRlcmlhLgorICogPHByZT4KKyAqIFxjb2RlCisgKiB2b2lkIHRyYXZlcnNl
T3V0KENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyLCBpbnQzMl90IHBvcykKKyAqIHsKKyAqICAgICAg
VUNoYXIgYzsKKyAqICAgICAgZm9yIChjID0gaXRlci5zZXRJbmRleChwb3MpOworICogICAgICBj
ICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYgKFVuaWNvZGU6OmlzTGV0dGVyKGMpIHx8IFVu
aWNvZGU6OmlzRGlnaXQoYykpOworICogICAgICAgICAgYyA9IGl0ZXIubmV4dCgpKSB7fQorICog
ICAgICBpbnQzMl90IGVuZCA9IGl0ZXIuZ2V0SW5kZXgoKTsKKyAqICAgICAgZm9yIChjID0gaXRl
ci5zZXRJbmRleChwb3MpOworICogICAgICAgICAgYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05F
ICYmIChVbmljb2RlOjppc0xldHRlcihjKSB8fCBVbmljb2RlOjppc0RpZ2l0KGMpKTsKKyAqICAg
ICAgICAgIGMgPSBpdGVyLnByZXZpb3VzKCkpIHt9CisgKiAgICAgIGludDMyX3Qgc3RhcnQgPSBp
dGVyLmdldEluZGV4KCkgKyAxOworICogIAorICogICAgICBjb3V0IDw8ICJzdGFydDogIiA8PCBz
dGFydCA8PCAiIGVuZDogIiA8PCBlbmQgPDwgZW5kbDsKKyAqICAgICAgZm9yIChjID0gaXRlci5z
ZXRJbmRleChzdGFydCk7IGl0ZXIuZ2V0SW5kZXgoKSA8IGVuZDsgYyA9IGl0ZXIubmV4dCgpICkg
eworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgfQorICogIH0KKyAqIFxlbmRj
b2RlCisgKiA8L3ByZT4KKyAqIENyZWF0aW5nIGEgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgYW5k
IGNhbGxpbmcgdGhlIHRlc3QgZnVuY3Rpb25zCisgKiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lk
IENoYXJhY3Rlckl0ZXJhdG9yX0V4YW1wbGUoIHZvaWQgKQorICogICB7CisgKiAgICAgICBjb3V0
IDw8IGVuZGwgPDwgIj09PT09IENoYXJhY3Rlckl0ZXJhdG9yX0V4YW1wbGU6ID09PT09IiA8PCBl
bmRsOworICogICAgICAgVW5pY29kZVN0cmluZyB0ZXh0KCJFaW4ga2xlaW5lciBTYXR6LiIpOwor
ICogICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgaXRlcmF0b3IodGV4dCk7CisgKiAgICAg
ICBjb3V0IDw8ICItLS0tLSB0cmF2ZXJzZUZvcndhcmQ6IC0tLS0tLS0tLS0tIiA8PCBlbmRsOwor
ICogICAgICAgdHJhdmVyc2VGb3J3YXJkKCBpdGVyYXRvciApOworICogICAgICAgY291dCA8PCBl
bmRsIDw8IGVuZGwgPDwgIi0tLS0tIHRyYXZlcnNlQmFja3dhcmQ6IC0tLS0tLS0tLS0iIDw8IGVu
ZGw7CisgKiAgICAgICB0cmF2ZXJzZUJhY2t3YXJkKCBpdGVyYXRvciApOworICogICAgICAgY291
dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIHRyYXZlcnNlT3V0OiAtLS0tLS0tLS0tLS0tLS0i
IDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZU91dCggaXRlcmF0b3IsIDcgKTsKKyAqICAgICAg
IGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICItLS0tLSIgPDwgZW5kbDsKKyAqICAgfQorICogXGVu
ZGNvZGUKKyAqIDwvcHJlPgorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NP
TU1PTl9BUEkgQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yIHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiBPcmlnaW4gZW51bWVyYXRpb24gZm9yIHRo
ZSBtb3ZlKCkgYW5kIG1vdmUzMigpIGZ1bmN0aW9ucy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBlbnVtIEVPcmlnaW4geyBrU3RhcnQsIGtDdXJyZW50LCBrRW5kIH07CisK
KyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgfkNoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm5zIGEgcG9pbnRlciB0byBhIG5ldyBDaGFyYWN0ZXJJdGVyYXRvciBvZiB0aGUgc2Ft
ZQorICAgICAqIGNvbmNyZXRlIGNsYXNzIGFzIHRoaXMgb25lLCBhbmQgcmVmZXJyaW5nIHRvIHRo
ZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHRleHQtc3RvcmFnZSBvYmplY3Qg
YXMgdGhpcyBvbmUuICBUaGUKKyAgICAgKiBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0
aW5nIHRoZSBuZXcgY2xvbmUuICAKKyAgICAgKiBAcmV0dXJuIGEgcG9pbnRlciB0byBhIG5ldyBD
aGFyYWN0ZXJJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgQ2hhcmFjdGVySXRlcmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8q
KgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVu
aXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUg
dW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRo
IG5leHQoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJh
dGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IFVDaGFyICAgICAgICAgZmlyc3Qodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0
aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICAg
KiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsIGFuZCBtb3ZlcyB0aGUg
cG9zaXRpb24KKyAgICAgKiB0byB0aGUgc2Vjb25kIGNvZGUgdW5pdC4gVGhpcyBpcyBhbiBhbHRl
cm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0
aCBuZXh0UG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBp
dHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdFBvc3RJbmModm9pZCk7CisKKyAgICAvKioKKyAg
ICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSBwb2ludCBp
biBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0
LAorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4
dDMyKCkuCisgICAgICogTm90ZSB0aGF0IGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMo
KSwgYmVnaW5uaW5nIHdpdGgsCisgICAgICogZS5nLiwgc2V0VG9TdGFydCgpIG9yIGZpcnN0UG9z
dEluYygpLCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2Rl
IHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzIodm9pZCkgPSAwOworCisg
ICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNv
ZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29k
ZSBwb2ludCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgICAqIHRvIHRoZSBzZWNvbmQgY29k
ZSBwb2ludC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICAgKiBm
b3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0SW5jKCkuCisgICAgICogQHJldHVy
biB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMy
UG9zdEluYyh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJl
ZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgb3IgY29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBp
dGVyYXRpb24gcmFuZ2UuIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYSBmb3J3YXJkCisgICAg
ICogaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMoKSBvciBuZXh0MzJQb3N0SW5jKCkuCisgICAg
ICogQHJldHVybiB0aGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgIHNldFRv
U3RhcnQoKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRv
IHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCBy
ZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4g
YW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNv
ZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVD
aGFyICAgICAgICAgbGFzdCh2b2lkKSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzCisg
ICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAg
KiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzMzIo
KS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGxhc3QzMih2b2lkKSA9
IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byB0aGUgZW5kIG9mIGl0
cyBpdGVyYXRpb24gcmFuZ2UsIGp1c3QgYmVoaW5kCisgICAgICogdGhlIGxhc3QgY29kZSB1bml0
IG9yIGNvZGUgcG9pbnQuIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYSBiYWNrd2FyZAorICAg
ICAqIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkgb3IgcHJldmlvdXMzMigpLgorICAgICAqIEBy
ZXR1cm4gdGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgc2V0VG9FbmQoKTsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSAicG9z
aXRpb24iLXRoIGNvZGUgdW5pdAorICAgICAqIGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRo
ZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgICAqIHJldHVybnMgdGhhdCBjb2RlIHVuaXQu
ICAKKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0IGlu
IHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHJldHVybiB0aGUgInBvc2l0aW9uIi10
aCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBVQ2hhciAgICAgICAgIHNldEluZGV4KGludDMyX3QgcG9zaXRpb24pID0gMDsKKworICAgIC8q
KgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBiZWdpbm5pbmcgb2Yg
dGhlIGNvZGUgcG9pbnQKKyAgICAgKiB0aGF0IGNvbnRhaW5zIHRoZSAicG9zaXRpb24iLXRoIGNv
ZGUgdW5pdAorICAgICAqIGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciBy
ZWZlcnMgdG8sIGFuZAorICAgICAqIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LgorICAgICAqIFRo
ZSBjdXJyZW50IHBvc2l0aW9uIGlzIGFkanVzdGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNv
ZGUgcG9pbnQKKyAgICAgKiAoaXRzIGZpcnN0IGNvZGUgdW5pdCkuCisgICAgICogQHBhcmFtIHBv
c2l0aW9uIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9i
amVjdAorICAgICAqIEByZXR1cm4gdGhlICJwb3NpdGlvbiItdGggY29kZSBwb2ludC4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgc2V0
SW5kZXgzMihpbnQzMl90IHBvc2l0aW9uKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5z
IHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uIAorICAgICAq
IEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSB1bml0LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgY3VycmVudCh2b2lkKSBjb25zdCA9
IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvZGUgcG9pbnQgdGhl
IGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uICAKKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJy
ZW50IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBVQ2hhcjMyICAgICAgIGN1cnJlbnQzMih2b2lkKSBjb25zdCA9IDA7CisgICAgICAgIAor
ICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgdW5pdCBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhh
dCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgdW5pdHMgdG8g
cmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlIHVuaXQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAg
ICAgIG5leHQodm9pZCkgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0
byB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93
YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBh
cmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgor
ICAgICAqIE5vdGUgdGhhdCBpdGVyYXRpb24gd2l0aCAicHJlLWluY3JlbWVudCIgc2VtYW50aWNz
IGlzIGxlc3MKKyAgICAgKiBlZmZpY2llbnQgdGhhbiBpdGVyYXRpb24gd2l0aCAicG9zdC1pbmNy
ZW1lbnQiIHNlbWFudGljcworICAgICAqIHRoYXQgaXMgcHJvdmlkZWQgYnkgbmV4dDMyUG9zdElu
YygpLgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyKHZvaWQp
ID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIHByZXZpb3Vz
IGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBzdGFydElu
ZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZQorICAgICAq
IG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4gIAorICAgICAqIEBy
ZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgcHJldmlvdXModm9pZCkgPSAwOworCisg
ICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgc3RhcnRJbmRleCgpKSwgYW5kIHJldHVy
bnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHBv
aW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4gCisgICAgICogQHJldHVybiB0aGUgcHJldmlv
dXMgY29kZSBwb2ludC4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBVQ2hhcjMyICAgICAgIHByZXZpb3VzMzIodm9pZCkgPSAwOworCisgICAgLyoqCisgICAg
ICogUmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUg
cG9pbnRzCisgICAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UuCisgICAgICogVGhpcyBpcyB1c2VkIHdpdGggcHJldmlvdXMoKSBvciBwcmV2aW91
czMyKCkgaW4gYmFja3dhcmQKKyAgICAgKiBpdGVyYXRpb24uCisgICAgICogQHJldHVybiBGQUxT
RSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICog
YmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UsIHJldHVy
biBUUlVFIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIFVCb29sICAgICAgICBoYXNQcmV2aW91cygpID0gMDsKKworICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdl
CisgICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0ZXIgcmV0dXJuZWQgYnkgZmlyc3QoKS4gIFNp
bmNlIGl0J3MKKyAgICAgKiBwb3NzaWJsZSB0byBjcmVhdGUgYW4gaXRlcmF0b3IgdGhhdCBpdGVy
YXRlcyBhY3Jvc3Mgb25seQorICAgICAqIHBhcnQgb2YgYSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LCB0
aGlzIG51bWJlciBpc24ndAorICAgICAqIG5lY2Vzc2FyaWx5IDAuICAKKyAgICAgKiBAcmV0dXJu
cyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAg
KiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBmaXJzdCgpLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgICAgIHN0YXJ0SW5k
ZXgodm9pZCkgY29uc3Q7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51
bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0
IG9mIHRoZSBwb3NpdGlvbiBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGNoYXJhY3RlcgorICAgICAq
IHJldHVybmVkIGJ5IGxhc3QoKS4gIAorICAgICAqIEByZXR1cm4gdGhlIG51bWVyaWMgaW5kZXgg
aW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBwb3Np
dGlvbiBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGNoYXJhY3RlcgorICAgICAqIHJldHVybmVkIGJ5
IGxhc3QoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50
MzJfdCAgICAgICBlbmRJbmRleCh2b2lkKSBjb25zdDsKKyAgICAgICAgCisgICAgLyoqCisgICAg
ICogUmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3Jh
Z2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciB0aGUgaXRlcmF0b3IgY3VycmVudGx5
IHJlZmVycyB0bworICAgICAqIChpLmUuLCB0aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGN1cnJl
bnQoKSkuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1iZXJpYyBpbmRleCBpbiB0aGUgdGV4dC1z
dG9yYWdlIG9iamVjdCBvZiAKKyAgICAgKiB0aGUgY2hhcmFjdGVyIHRoZSBpdGVyYXRvciBjdXJy
ZW50bHkgcmVmZXJzIHRvCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5s
aW5lIGludDMyX3QgICAgICAgZ2V0SW5kZXgodm9pZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGVudGlyZSB0ZXh0IGluIHRoZSB1bmRlcmx5aW5n
CisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGgg
b2YgdGhlIGVudGlyZSB0ZXh0IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAgICAgIGdldExl
bmd0aCgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRp
b24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICAgKiBpdGVyYXRpb24g
cmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGl0c2VsZi4KKyAgICAg
KiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSB1bml0cyBmb3J3
YXJkCisgICAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0
aXZlIGRlbHRhLgorICAgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVsYXRpdmUgdG8g
b3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAgICogYSBuZWdhdGl2
ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVt
ZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcg
cG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGlu
dDMyX3QgICAgICBtb3ZlKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUg
c3RhcnQgb3IgZW5kIG9mIHRoZQorICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUg
dG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgICAqIFRoZSBtb3ZlbWVudCBpcyBl
eHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHBvaW50cyBmb3J3YXJkCisgICAgICogb3IgYmFj
a3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgICAq
IEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZl
IGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNr
d2FyZC4KKyAgICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBr
Q3VycmVudCwga0VuZH0KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlMzIo
aW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pID0gMDsKKworICAgIC8qKgorICAgICAqIENv
cGllcyB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24gaW50byB0aGUgVW5pY29kZVN0cmluZworICAg
ICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgCisgICAgICogQHBhcmFtIHJlc3VsdCBSZWNl
aXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uLiAgCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkICAgICAgICAgICAgZ2V0VGV4dChV
bmljb2RlU3RyaW5nJiAgcmVzdWx0KSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICAvKioKKyAgICAg
KiBFbXB0eSBjb25zdHJ1Y3Rvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICBDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IsIGp1
c3Qgc2V0dGluZyB0aGUgbGVuZ3RoIGZpZWxkIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxl
bmd0aCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciwganVzdCBzZXR0aW5nIHRoZSBs
ZW5ndGggYW5kIHBvc2l0aW9uIGZpZWxkcyBpbiB0aGlzIGJhc2UgY2xhc3MuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoaW50MzJfdCBsZW5n
dGgsIGludDMyX3QgcG9zaXRpb24pOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IsIGp1
c3Qgc2V0dGluZyB0aGUgbGVuZ3RoLCBzdGFydCwgZW5kLCBhbmQgcG9zaXRpb24gZmllbGRzIGlu
IHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBD
aGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0aCwgaW50MzJfdCB0ZXh0QmVnaW4sIGludDMy
X3QgdGV4dEVuZCwgaW50MzJfdCBwb3NpdGlvbik7CisgIAorICAgIC8qKgorICAgICAqIENvcHkg
Y29uc3RydWN0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQ2hhcmFjdGVySXRl
cmF0b3IgdG8gYmUgY29waWVkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
Q2hhcmFjdGVySXRlcmF0b3IoY29uc3QgQ2hhcmFjdGVySXRlcmF0b3IgJnRoYXQpOworCisgICAg
LyoqCisgICAgICogQXNzaWdubWVudCBvcGVyYXRvci4gIFNldHMgdGhpcyBDaGFyYWN0ZXJJdGVy
YXRvciB0byBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLAorICAgICAqIGFzIHRoZSBvbmUgcGFzc2Vk
IGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBDaGFyYWN0ZXJJdGVyYXRvciBwYXNzZWQgaW4u
CisgICAgICogQHJldHVybiB0aGUgbmV3bHkgc2V0IENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yICZvcGVyYXRv
cj0oY29uc3QgQ2hhcmFjdGVySXRlcmF0b3IgJnRoYXQpOworCisgICAgLyoqCisgICAgICogQmFz
ZSBjbGFzcyB0ZXh0IGxlbmd0aCBmaWVsZC4KKyAgICAgKiBOZWNlc3NhcnkgdGhpcyBmb3IgY29y
cmVjdCBnZXRUZXh0KCkgYW5kIGhhc2hDb2RlKCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgaW50MzJfdCB0ZXh0TGVuZ3RoOworCisgICAgLyoqCisgICAgICogQmFzZSBj
bGFzcyBmaWVsZCBmb3IgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgaW50MzJfdCAgcG9zOworCisgICAgLyoqCisgICAgICogQmFzZSBj
bGFzcyBmaWVsZCBmb3IgdGhlIHN0YXJ0IG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCAgYmVnaW47CisKKyAgICAvKioK
KyAgICAgKiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24gcmFu
Z2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCAgZW5kOwor
fTsKKworaW5saW5lIFVCb29sCitGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I6Om9wZXJhdG9yIT0o
Y29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdCB7CisgICAgcmV0dXJu
ICFvcGVyYXRvcj09KHRoYXQpOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0
b3I6OnNldFRvU3RhcnQoKSB7CisgICAgcmV0dXJuIG1vdmUoMCwga1N0YXJ0KTsKK30KKworaW5s
aW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpzZXRUb0VuZCgpIHsKKyAgICByZXR1cm4g
bW92ZSgwLCBrRW5kKTsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpz
dGFydEluZGV4KHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gYmVnaW47Cit9CisKK2lubGluZSBp
bnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6ZW5kSW5kZXgodm9pZCkgY29uc3QgeworICAgIHJl
dHVybiBlbmQ7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6Z2V0SW5k
ZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBwb3M7Cit9CisKK2lubGluZSBpbnQzMl90CitD
aGFyYWN0ZXJJdGVyYXRvcjo6Z2V0TGVuZ3RoKHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gdGV4
dExlbmd0aDsKK30KKworVV9OQU1FU1BBQ0VfRU5ECisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xYWQ1Y2I1NDZlYmUzOTdlZjQzNmRmMzY1MDNlYjQzNzFjMzg2Njk2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9sb2NpZC5oCkBAIC0wLDAg
KzEsODE0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChD
KSAxOTk2LTIwMTUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3Jh
dGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorKgorKiBGaWxlIGxvY2lkLmgKKyoKKyogQ3JlYXRlZCBieTogSGVsZW5hIFNoaWgK
KyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAg
ICAgRGVzY3JpcHRpb24KKyogICAwMi8xMS85NyAgICBhbGl1ICAgICAgICBDaGFuZ2VkIGdMb2NQ
YXRoIHRvIGZnTG9jUGF0aCBhbmQgYWRkZWQgbWV0aG9kcyB0bworKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdldCBhbmQgc2V0IGl0LgorKiAgIDA0LzAyLzk3ICAgIGFsaXUgICAgICAgIE1h
ZGUgb3BlcmF0b3IhPSBpbmxpbmU7IGZpeGVkIHJldHVybiB2YWx1ZSBvZiBnZXROYW1lKCkuCisq
ICAgMDQvMTUvOTcgICAgYWxpdSAgICAgICAgQ2xlYW51cCBmb3IgQUlYL1dpbjMyLgorKiAgIDA0
LzI0Lzk3ICAgIGFsaXUgICAgICAgIE51bWVyb3VzIGNoYW5nZXMgcGVyIGNvZGUgcmV2aWV3Lgor
KiAgIDA4LzE4Lzk4ICAgIHN0ZXBoZW4gICAgIEFkZGVkIHRva2VuaXplU3RyaW5nKCksY2hhbmdl
ZCBnZXREaXNwbGF5TmFtZSgpCisqICAgMDkvMDgvOTggICAgc3RlcGhlbiAgICAgTW92ZWQgZGVm
aW5pdGlvbiBvZiBrRW1wdHlTdHJpbmcgZm9yIE1hYyBQb3J0CisqICAgMTEvMDkvOTkgICAgd2Vp
diAgICAgICAgQWRkZWQgY29uc3QgY2hhciAqIGdldE5hbWUoKSBjb25zdDsKKyogICAwNC8xMi8w
MCAgICBzcmwgICAgICAgICByZW1vdmluZyB1bmljb2Rlc3RyaW5nIGFwaSdzIGFuZCBjYWNoZWQg
aGFzaCBjb2RlCisqICAgMDgvMTAvMDEgICAgZ3Job3RlbiAgICAgQ2hhbmdlIHRoZSBzdGF0aWMg
TG9jYWxlcyB0byBhY2Nlc3NvciBmdW5jdGlvbnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8K
KworI2lmbmRlZiBMT0NJRF9ICisjZGVmaW5lIExPQ0lEX0gKKworI2luY2x1ZGUgInVuaWNvZGUv
dXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29k
ZS91bmlzdHIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3B1dGlsLmgiCisjaW5jbHVkZSAidW5pY29k
ZS91bG9jLmgiCisjaW5jbHVkZSAidW5pY29kZS9zdHJlbnVtLmgiCisKKy8qKgorICogXGZpbGUK
KyAqIFxicmllZiBDKysgQVBJOiBMb2NhbGUgSUQgb2JqZWN0LgorICovCisKK1VfTkFNRVNQQUNF
X0JFR0lOCisKKy8vIEZvcndhcmQgRGVjbGFyYXRpb25zCit2b2lkIFVfQ0FMTENPTlYgbG9jYWxl
X2F2YWlsYWJsZV9pbml0KCk7IC8qKjwgQGludGVybmFsICovCisKKy8qKgorICogQSA8Y29kZT5M
b2NhbGU8L2NvZGU+IG9iamVjdCByZXByZXNlbnRzIGEgc3BlY2lmaWMgZ2VvZ3JhcGhpY2FsLCBw
b2xpdGljYWwsCisgKiBvciBjdWx0dXJhbCByZWdpb24uIEFuIG9wZXJhdGlvbiB0aGF0IHJlcXVp
cmVzIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiB0byBwZXJmb3JtCisgKiBpdHMgdGFzayBpcyBjYWxs
ZWQgPGVtPmxvY2FsZS1zZW5zaXRpdmU8L2VtPiBhbmQgdXNlcyB0aGUgPGNvZGU+TG9jYWxlPC9j
b2RlPgorICogdG8gdGFpbG9yIGluZm9ybWF0aW9uIGZvciB0aGUgdXNlci4gRm9yIGV4YW1wbGUs
IGRpc3BsYXlpbmcgYSBudW1iZXIKKyAqIGlzIGEgbG9jYWxlLXNlbnNpdGl2ZSBvcGVyYXRpb24t
LXRoZSBudW1iZXIgc2hvdWxkIGJlIGZvcm1hdHRlZAorICogYWNjb3JkaW5nIHRvIHRoZSBjdXN0
b21zL2NvbnZlbnRpb25zIG9mIHRoZSB1c2VyJ3MgbmF0aXZlIGNvdW50cnksCisgKiByZWdpb24s
IG9yIGN1bHR1cmUuCisgKgorICogVGhlIExvY2FsZSBjbGFzcyBpcyBub3Qgc3VpdGFibGUgZm9y
IHN1YmNsYXNzaW5nLgorICoKKyAqIDxQPgorICogWW91IGNhbiBjcmVhdGUgYSA8Y29kZT5Mb2Nh
bGU8L2NvZGU+IG9iamVjdCB1c2luZyB0aGUgY29uc3RydWN0b3IgaW4KKyAqIHRoaXMgY2xhc3M6
CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAg
ICBMb2NhbGUoIGNvbnN0ICAgY2hhciogIGxhbmd1YWdlLAorICogICAgICAgICAgICAgICBjb25z
dCAgIGNoYXIqICBjb3VudHJ5LAorICogICAgICAgICAgICAgICBjb25zdCAgIGNoYXIqICB2YXJp
YW50KTsKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQor
ICogVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1Y3RvcnMgaXMgYSB2YWxpZCA8U1RS
T05HPklTTworICogTGFuZ3VhZ2UgQ29kZS48L1NUUk9ORz4gVGhlc2UgY29kZXMgYXJlIHRoZSBs
b3dlci1jYXNlIHR3by1sZXR0ZXIKKyAqIGNvZGVzIGFzIGRlZmluZWQgYnkgSVNPLTYzOS4KKyAq
IFlvdSBjYW4gZmluZCBhIGZ1bGwgbGlzdCBvZiB0aGVzZSBjb2RlcyBhdDoKKyAqIDxCUj48YSBo
cmVmID0iaHR0cDovL3d3dy5sb2MuZ292L3N0YW5kYXJkcy9pc282MzktMi8iPgorICogaHR0cDov
L3d3dy5sb2MuZ292L3N0YW5kYXJkcy9pc282MzktMi88L2E+CisgKgorICogPFA+CisgKiBUaGUg
c2Vjb25kIGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1Y3RvcnMgaXMgYSB2YWxpZCA8U1RST05HPklT
TyBDb3VudHJ5CisgKiBDb2RlLjwvU1RST05HPiBUaGVzZSBjb2RlcyBhcmUgdGhlIHVwcGVyLWNh
c2UgdHdvLWxldHRlciBjb2RlcworICogYXMgZGVmaW5lZCBieSBJU08tMzE2Ni4KKyAqIFlvdSBj
YW4gZmluZCBhIGZ1bGwgbGlzdCBvZiB0aGVzZSBjb2RlcyBhdCBhIG51bWJlciBvZiBzaXRlcywg
c3VjaCBhczoKKyAqIDxCUj48YSBocmVmPSJodHRwOi8vd3d3Lmlzby5vcmcvaXNvL2VuL3Byb2Rz
LXNlcnZpY2VzL2lzbzMxNjZtYS9pbmRleC5odG1sIj4KKyAqIGh0dHA6Ly93d3cuaXNvLm9yZy9p
c28vZW4vcHJvZHMtc2VydmljZXMvaXNvMzE2Nm1hL2luZGV4Lmh0bWw8L2E+CisgKgorICogPFA+
CisgKiBUaGUgdGhpcmQgY29uc3RydWN0b3IgcmVxdWlyZXMgYSB0aGlyZCBhcmd1bWVudC0tdGhl
IDxTVFJPTkc+VmFyaWFudC48L1NUUk9ORz4KKyAqIFRoZSBWYXJpYW50IGNvZGVzIGFyZSB2ZW5k
b3IgYW5kIGJyb3dzZXItc3BlY2lmaWMuCisgKiBGb3IgZXhhbXBsZSwgdXNlIFJFVklTRUQgZm9y
IGEgbGFuZ2F1Z2UncyByZXZpc2VkIHNjcmlwdCBvcnRob2dyYXBoeSwgYW5kIFBPU0lYIGZvciBQ
T1NJWC4KKyAqIFdoZXJlIHRoZXJlIGFyZSB0d28gdmFyaWFudHMsIHNlcGFyYXRlIHRoZW0gd2l0
aCBhbiB1bmRlcnNjb3JlLCBhbmQKKyAqIHB1dCB0aGUgbW9zdCBpbXBvcnRhbnQgb25lIGZpcnN0
LiBGb3IKKyAqIGV4YW1wbGUsIGEgVHJhZGl0aW9uYWwgU3BhbmlzaCBjb2xsYXRpb24gbWlnaHQg
YmUgcmVmZXJlbmNlZCwgd2l0aAorICogIkVTIiwgIkVTIiwgIlRyYWRpdGlvbmFsX1BPU0lYIi4K
KyAqCisgKiA8UD4KKyAqIEJlY2F1c2UgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCBpcyBq
dXN0IGFuIGlkZW50aWZpZXIgZm9yIGEgcmVnaW9uLAorICogbm8gdmFsaWRpdHkgY2hlY2sgaXMg
cGVyZm9ybWVkIHdoZW4geW91IGNvbnN0cnVjdCBhIDxjb2RlPkxvY2FsZTwvY29kZT4uCisgKiBJ
ZiB5b3Ugd2FudCB0byBzZWUgd2hldGhlciBwYXJ0aWN1bGFyIHJlc291cmNlcyBhcmUgYXZhaWxh
YmxlIGZvciB0aGUKKyAqIDxjb2RlPkxvY2FsZTwvY29kZT4geW91IGNvbnN0cnVjdCwgeW91IG11
c3QgcXVlcnkgdGhvc2UgcmVzb3VyY2VzLiBGb3IKKyAqIGV4YW1wbGUsIGFzayB0aGUgPGNvZGU+
TnVtYmVyRm9ybWF0PC9jb2RlPiBmb3IgdGhlIGxvY2FsZXMgaXQgc3VwcG9ydHMKKyAqIHVzaW5n
IGl0cyA8Y29kZT5nZXRBdmFpbGFibGVMb2NhbGVzPC9jb2RlPiBtZXRob2QuCisgKiA8QlI+PFNU
Uk9ORz5Ob3RlOjwvU1RST05HPiBXaGVuIHlvdSBhc2sgZm9yIGEgcmVzb3VyY2UgZm9yIGEgcGFy
dGljdWxhcgorICogbG9jYWxlLCB5b3UgZ2V0IGJhY2sgdGhlIGJlc3QgYXZhaWxhYmxlIG1hdGNo
LCBub3QgbmVjZXNzYXJpbHkKKyAqIHByZWNpc2VseSB3aGF0IHlvdSBhc2tlZCBmb3IuIEZvciBt
b3JlIGluZm9ybWF0aW9uLCBsb29rIGF0CisgKiA8Y29kZT5SZXNvdXJjZUJ1bmRsZTwvY29kZT4u
CisgKgorICogPFA+CisgKiBUaGUgPGNvZGU+TG9jYWxlPC9jb2RlPiBjbGFzcyBwcm92aWRlcyBh
IG51bWJlciBvZiBjb252ZW5pZW50IGNvbnN0YW50cworICogdGhhdCB5b3UgY2FuIHVzZSB0byBj
cmVhdGUgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3RzIGZvciBjb21tb25seSB1c2VkCisgKiBs
b2NhbGVzLiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyByZWZlcnMgdG8gYSA8Y29kZT5Mb2Nh
bGU8L2NvZGU+IG9iamVjdAorICogZm9yIHRoZSBVbml0ZWQgU3RhdGVzOgorICogXGh0bWxvbmx5
PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgICAgTG9jYWxlOjpnZXRV
UygpCisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAq
CisgKiA8UD4KKyAqIE9uY2UgeW91J3ZlIGNyZWF0ZWQgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHlv
dSBjYW4gcXVlcnkgaXQgZm9yIGluZm9ybWF0aW9uIGFib3V0CisgKiBpdHNlbGYuIFVzZSA8Y29k
ZT5nZXRDb3VudHJ5PC9jb2RlPiB0byBnZXQgdGhlIElTTyBDb3VudHJ5IENvZGUgYW5kCisgKiA8
Y29kZT5nZXRMYW5ndWFnZTwvY29kZT4gdG8gZ2V0IHRoZSBJU08gTGFuZ3VhZ2UgQ29kZS4gWW91
IGNhbgorICogdXNlIDxjb2RlPmdldERpc3BsYXlDb3VudHJ5PC9jb2RlPiB0byBnZXQgdGhlCisg
KiBuYW1lIG9mIHRoZSBjb3VudHJ5IHN1aXRhYmxlIGZvciBkaXNwbGF5aW5nIHRvIHRoZSB1c2Vy
LiBTaW1pbGFybHksCisgKiB5b3UgY2FuIHVzZSA8Y29kZT5nZXREaXNwbGF5TGFuZ3VhZ2U8L2Nv
ZGU+IHRvIGdldCB0aGUgbmFtZSBvZgorICogdGhlIGxhbmd1YWdlIHN1aXRhYmxlIGZvciBkaXNw
bGF5aW5nIHRvIHRoZSB1c2VyLiBJbnRlcmVzdGluZ2x5LAorICogdGhlIDxjb2RlPmdldERpc3Bs
YXlYWFg8L2NvZGU+IG1ldGhvZHMgYXJlIHRoZW1zZWx2ZXMgbG9jYWxlLXNlbnNpdGl2ZQorICog
YW5kIGhhdmUgdHdvIHZlcnNpb25zOiBvbmUgdGhhdCB1c2VzIHRoZSBkZWZhdWx0IGxvY2FsZSBh
bmQgb25lCisgKiB0aGF0IHRha2VzIGEgbG9jYWxlIGFzIGFuIGFyZ3VtZW50IGFuZCBkaXNwbGF5
cyB0aGUgbmFtZSBvciBjb3VudHJ5IGluCisgKiBhIGxhbmd1YWdlIGFwcHJvcHJpYXRlIHRvIHRo
YXQgbG9jYWxlLgorICoKKyAqIDxQPgorICogSUNVIHByb3ZpZGVzIGEgbnVtYmVyIG9mIGNsYXNz
ZXMgdGhhdCBwZXJmb3JtIGxvY2FsZS1zZW5zaXRpdmUKKyAqIG9wZXJhdGlvbnMuIEZvciBleGFt
cGxlLCB0aGUgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBjbGFzcyBmb3JtYXRzCisgKiBudW1i
ZXJzLCBjdXJyZW5jeSwgb3IgcGVyY2VudGFnZXMgaW4gYSBsb2NhbGUtc2Vuc2l0aXZlIG1hbm5l
ci4gQ2xhc3NlcworICogc3VjaCBhcyA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGhhdmUgYSBu
dW1iZXIgb2YgY29udmVuaWVuY2UgbWV0aG9kcworICogZm9yIGNyZWF0aW5nIGEgZGVmYXVsdCBv
YmplY3Qgb2YgdGhhdCB0eXBlLiBGb3IgZXhhbXBsZSwgdGhlCisgKiA8Y29kZT5OdW1iZXJGb3Jt
YXQ8L2NvZGU+IGNsYXNzIHByb3ZpZGVzIHRoZXNlIHRocmVlIGNvbnZlbmllbmNlIG1ldGhvZHMK
KyAqIGZvciBjcmVhdGluZyBhIGRlZmF1bHQgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBvYmpl
Y3Q6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAg
ICAgVUVycm9yQ29kZSBzdWNjZXNzID0gVV9aRVJPX0VSUk9SOworICogICAgIExvY2FsZSBteUxv
Y2FsZTsKKyAqICAgICBOdW1iZXJGb3JtYXQgKm5mOworICoKKyAqICAgICBuZiA9IE51bWJlckZv
cm1hdDo6Y3JlYXRlSW5zdGFuY2UoIHN1Y2Nlc3MgKTsgICAgICAgICAgZGVsZXRlIG5mOworICog
ICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVDdXJyZW5jeUluc3RhbmNlKCBzdWNjZXNzICk7
ICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZVBlcmNlbnRJbnN0
YW5jZSggc3VjY2VzcyApOyAgIGRlbGV0ZSBuZjsKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9i
bG9ja3F1b3RlPlxlbmRodG1sb25seQorICogRWFjaCBvZiB0aGVzZSBtZXRob2RzIGhhcyB0d28g
dmFyaWFudHM7IG9uZSB3aXRoIGFuIGV4cGxpY2l0IGxvY2FsZQorICogYW5kIG9uZSB3aXRob3V0
OyB0aGUgbGF0dGVyIHVzaW5nIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAqIFxodG1sb25seTxibG9j
a3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6
Y3JlYXRlSW5zdGFuY2UoIG15TG9jYWxlLCBzdWNjZXNzICk7ICAgICAgICAgIGRlbGV0ZSBuZjsK
KyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlQ3VycmVuY3lJbnN0YW5jZSggbXlMb2Nh
bGUsIHN1Y2Nlc3MgKTsgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3Jl
YXRlUGVyY2VudEluc3RhbmNlKCBteUxvY2FsZSwgc3VjY2VzcyApOyAgIGRlbGV0ZSBuZjsKKyAq
IDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogQSA8Y29k
ZT5Mb2NhbGU8L2NvZGU+IGlzIHRoZSBtZWNoYW5pc20gZm9yIGlkZW50aWZ5aW5nIHRoZSBraW5k
IG9mIG9iamVjdAorICogKDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4pIHRoYXQgeW91IHdvdWxk
IGxpa2UgdG8gZ2V0LiBUaGUgbG9jYWxlIGlzCisgKiA8U1RST05HPmp1c3Q8L1NUUk9ORz4gYSBt
ZWNoYW5pc20gZm9yIGlkZW50aWZ5aW5nIG9iamVjdHMsCisgKiA8U1RST05HPm5vdDwvU1RST05H
PiBhIGNvbnRhaW5lciBmb3IgdGhlIG9iamVjdHMgdGhlbXNlbHZlcy4KKyAqCisgKiA8UD4KKyAq
IEVhY2ggY2xhc3MgdGhhdCBwZXJmb3JtcyBsb2NhbGUtc2Vuc2l0aXZlIG9wZXJhdGlvbnMgYWxs
b3dzIHlvdQorICogdG8gZ2V0IGFsbCB0aGUgYXZhaWxhYmxlIG9iamVjdHMgb2YgdGhhdCB0eXBl
LiBZb3UgY2FuIHNpZnQKKyAqIHRocm91Z2ggdGhlc2Ugb2JqZWN0cyBieSBsYW5ndWFnZSwgY291
bnRyeSwgb3IgdmFyaWFudCwKKyAqIGFuZCB1c2UgdGhlIGRpc3BsYXkgbmFtZXMgdG8gcHJlc2Vu
dCBhIG1lbnUgdG8gdGhlIHVzZXIuCisgKiBGb3IgZXhhbXBsZSwgeW91IGNhbiBjcmVhdGUgYSBt
ZW51IG9mIGFsbCB0aGUgY29sbGF0aW9uIG9iamVjdHMKKyAqIHN1aXRhYmxlIGZvciBhIGdpdmVu
IGxhbmd1YWdlLiBTdWNoIGNsYXNzZXMgaW1wbGVtZW50IHRoZXNlCisgKiB0aHJlZSBjbGFzcyBt
ZXRob2RzOgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgor
ICogICAgICAgc3RhdGljIExvY2FsZSogZ2V0QXZhaWxhYmxlTG9jYWxlcyhpbnQzMl90JiBudW1M
b2NhbGVzKQorICogICAgICAgc3RhdGljIFVuaWNvZGVTdHJpbmcmIGdldERpc3BsYXlOYW1lKGNv
bnN0IExvY2FsZSYgIG9iamVjdExvY2FsZSwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBMb2NhbGUmICBkaXNwbGF5TG9jYWxlLAorICogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3Bs
YXlOYW1lKQorICogICAgICAgc3RhdGljIFVuaWNvZGVTdHJpbmcmIGdldERpc3BsYXlOYW1lKGNv
bnN0IExvY2FsZSYgIG9iamVjdExvY2FsZSwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwbGF5TmFtZSkKKyAqIDwvcHJlPgor
ICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICoKKyAqIEBzdGFibGUgSUNV
IDIuMAorICogQHNlZSBSZXNvdXJjZUJ1bmRsZQorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgTG9j
YWxlIDogcHVibGljIFVPYmplY3QgeworcHVibGljOgorICAgIC8qKiBVc2VmdWwgY29uc3RhbnQg
Zm9yIHRoZSBSb290IGxvY2FsZS4gQHN0YWJsZSBJQ1UgNC40ICovCisgICAgc3RhdGljIGNvbnN0
IExvY2FsZSAmVV9FWFBPUlQyIGdldFJvb3Qodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFu
dCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0
IExvY2FsZSAmVV9FWFBPUlQyIGdldEVuZ2xpc2godm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25z
dGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNv
bnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEZyZW5jaCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNv
bnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMg
Y29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0R2VybWFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwg
Y29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRp
YyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRJdGFsaWFuKHZvaWQpOworICAgIC8qKiBVc2Vm
dWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRKYXBhbmVzZSh2b2lkKTsKKyAgICAvKiog
VXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAg
ICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0S29yZWFuKHZvaWQpOworICAgIC8q
KiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLwor
ICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDaGluZXNlKHZvaWQpOworICAg
IC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAq
LworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRTaW1wbGlmaWVkQ2hpbmVz
ZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3Rh
YmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VHJh
ZGl0aW9uYWxDaGluZXNlKHZvaWQpOworCisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhp
cyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExv
Y2FsZSAmVV9FWFBPUlQyIGdldEZyYW5jZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50
IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMg
Y29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0R2VybWFueSh2b2lkKTsKKyAgICAvKiogVXNlZnVs
IGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAg
ICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SXRhbHkodm9pZCk7CisgICAgLyoq
IFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4w
ICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEphcGFuKHZvaWQpOwor
ICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUg
SUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRLb3JlYSh2
b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0
Q2hpbmEodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3Jl
Z2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBP
UlQyIGdldFBSQyh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50
cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZV
X0VYUE9SVDIgZ2V0VGFpd2FuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRo
aXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBM
b2NhbGUgJlVfRVhQT1JUMiBnZXRVSyh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZv
ciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VVModm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFu
dCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENhbmFkYSh2b2lkKTsKKyAgICAvKiogVXNlZnVs
IGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAg
ICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2FuYWRhRnJlbmNoKHZvaWQpOwor
CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBkZWZhdWx0IGxvY2FsZSBvYmplY3QsIGEg
TG9jYWxlIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgSUQuCisgICAgICoKKyAgICAgKiBAc2VlIGdl
dERlZmF1bHQKKyAgICAgKiBAc2VlIHVsb2NfZ2V0RGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIExvY2FsZSgpOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0
IGEgbG9jYWxlIGZyb20gbGFuZ3VhZ2UsIGNvdW50cnksIHZhcmlhbnQuCisgICAgICogSWYgYW4g
ZXJyb3Igb2NjdXJzLCB0aGVuIHRoZSBjb25zdHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSAiYm9ndXMi
CisgICAgICogKGlzQm9ndXMoKSB3aWxsIHJldHVybiBUUlVFKS4KKyAgICAgKgorICAgICAqIEBw
YXJhbSBsYW5ndWFnZSBMb3dlcmNhc2UgdHdvLWxldHRlciBvciB0aHJlZS1sZXR0ZXIgSVNPLTYz
OSBjb2RlLgorICAgICAqICBUaGlzIHBhcmFtZXRlciBjYW4gaW5zdGVhZCBiZSBhbiBJQ1Ugc3R5
bGUgQyBsb2NhbGUgKGUuZy4gImVuX1VTIiksCisgICAgICogIGJ1dCB0aGUgb3RoZXIgcGFyYW1l
dGVycyBtdXN0IG5vdCBiZSB1c2VkLgorICAgICAqICBUaGlzIHBhcmFtZXRlciBjYW4gYmUgTlVM
TDsgaWYgc28sCisgICAgICogIHRoZSBsb2NhbGUgaXMgaW5pdGlhbGl6ZWQgdG8gbWF0Y2ggdGhl
IGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAgICogIChUaGlzIGlzIHRoZSBzYW1lIGFzIHVz
aW5nIHRoZSBkZWZhdWx0IGNvbnN0cnVjdG9yLikKKyAgICAgKiAgUGxlYXNlIG5vdGU6IFRoZSBK
YXZhIExvY2FsZSBjbGFzcyBkb2VzIE5PVCBhY2NlcHQgdGhlIGZvcm0KKyAgICAgKiAgJ25ldyBM
b2NhbGUoImVuX1VTIiknIGJ1dCBvbmx5ICduZXcgTG9jYWxlKCJlbiIsIlVTIiknCisgICAgICoK
KyAgICAgKiBAcGFyYW0gY291bnRyeSAgVXBwZXJjYXNlIHR3by1sZXR0ZXIgSVNPLTMxNjYgY29k
ZS4gKG9wdGlvbmFsKQorICAgICAqIEBwYXJhbSB2YXJpYW50ICBVcHBlcmNhc2UgdmVuZG9yIGFu
ZCBicm93c2VyIHNwZWNpZmljIGNvZGUuIFNlZSBjbGFzcworICAgICAqICAgICAgICAgICAgICAg
ICBkZXNjcmlwdGlvbi4gKG9wdGlvbmFsKQorICAgICAqIEBwYXJhbSBrZXl3b3Jkc0FuZFZhbHVl
cyBBIHN0cmluZyBjb25zaXN0aW5nIG9mIGtleXdvcmQvdmFsdWVzIHBhaXJzLCBzdWNoIGFzCisg
ICAgICogICAgICAgICAgICAgICAgICJjb2xsYXRpb249cGhvbmVib29rO2N1cnJlbmN5PWV1cm8i
CisgICAgICoKKyAgICAgKiBAc2VlIGdldERlZmF1bHQKKyAgICAgKiBAc2VlIHVsb2NfZ2V0RGVm
YXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZSggY29uc3Qg
ICBjaGFyICogbGFuZ3VhZ2UsCisgICAgICAgICAgICBjb25zdCAgIGNoYXIgKiBjb3VudHJ5ICA9
IDAsCisgICAgICAgICAgICBjb25zdCAgIGNoYXIgKiB2YXJpYW50ICA9IDAsCisgICAgICAgICAg
ICBjb25zdCAgIGNoYXIgKiBrZXl3b3Jkc0FuZFZhbHVlcyA9IDApOworCisgICAgLyoqCisgICAg
ICogSW5pdGlhbGl6ZXMgYSBMb2NhbGUgb2JqZWN0IGZyb20gYW5vdGhlciBMb2NhbGUgb2JqZWN0
LgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBMb2NhbGUgb2JqZWN0IGJlaW5nIGNv
cGllZCBpbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUoY29u
c3QgICAgTG9jYWxlJiBvdGhlcik7CisKKworICAgIC8qKgorICAgICAqIERlc3RydWN0b3IKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIH5Mb2NhbGUoKSA7CisK
KyAgICAvKioKKyAgICAgKiBSZXBsYWNlcyB0aGUgZW50aXJlIGNvbnRlbnRzIG9mICp0aGlzIHdp
dGggdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUg
TG9jYWxlIG9iamVjdCBiZWluZyBjb3BpZWQgaW4uCisgICAgICogQHJldHVybiAgICAgICp0aGlz
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxlJiBvcGVyYXRvcj0o
Y29uc3QgTG9jYWxlJiBvdGhlcik7CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdHdvIGxv
Y2FsZSBrZXlzIGFyZSB0aGUgc2FtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUg
bG9jYWxlIGtleSBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1
cm4gICAgICBUcnVlIGlmIHRoZSB0d28gbG9jYWxlIGtleXMgYXJlIHRoZSBzYW1lLCBmYWxzZSBv
dGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVUJvb2wgICBv
cGVyYXRvcj09KGNvbnN0ICAgIExvY2FsZSYgICAgIG90aGVyKSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIENoZWNrcyBpZiB0d28gbG9jYWxlIGtleXMgYXJlIG5vdCB0aGUgc2FtZS4KKyAgICAg
KgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgbG9jYWxlIGtleSBvYmplY3QgdG8gYmUgY29tcGFy
ZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1cm4gICAgICBUcnVlIGlmIHRoZSB0d28gbG9jYWxl
IGtleXMgYXJlIG5vdCB0aGUgc2FtZSwgZmFsc2UKKyAgICAgKiAgICAgICAgICAgICAgb3RoZXJ3
aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29sICAgb3BlcmF0
b3IhPShjb25zdCAgICBMb2NhbGUmICAgICBvdGhlcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAg
KiBDbG9uZSB0aGlzIG9iamVjdC4KKyAgICAgKiBDbG9uZXMgY2FuIGJlIHVzZWQgY29uY3VycmVu
dGx5IGluIG11bHRpcGxlIHRocmVhZHMuCisgICAgICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVu
IE5VTEwgaXMgcmV0dXJuZWQuCisgICAgICogVGhlIGNhbGxlciBtdXN0IGRlbGV0ZSB0aGUgY2xv
bmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgY2xvbmUgb2YgdGhpcyBvYmplY3QKKyAgICAg
KgorICAgICAqIEBzZWUgZ2V0RHluYW1pY0NsYXNzSUQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgK
KyAgICAgKi8KKyAgICBMb2NhbGUgKmNsb25lKCkgY29uc3Q7CisKKyNpZm5kZWYgVV9ISURFX1NZ
U1RFTV9BUEkKKyAgICAvKioKKyAgICAgKiBDb21tb24gbWV0aG9kcyBvZiBnZXR0aW5nIHRoZSBj
dXJyZW50IGRlZmF1bHQgTG9jYWxlLiBVc2VkIGZvciB0aGUKKyAgICAgKiBwcmVzZW50YXRpb246
IG1lbnVzLCBkaWFsb2dzLCBldGMuIEdlbmVyYWxseSBzZXQgb25jZSB3aGVuIHlvdXIgYXBwbGV0
IG9yCisgICAgICogYXBwbGljYXRpb24gaXMgaW5pdGlhbGl6ZWQsIHRoZW4gbmV2ZXIgcmVzZXQu
IChJZiB5b3UgZG8gcmVzZXQgdGhlCisgICAgICogZGVmYXVsdCBsb2NhbGUsIHlvdSBwcm9iYWJs
eSB3YW50IHRvIHJlbG9hZCB5b3VyIEdVSSwgc28gdGhhdCB0aGUgY2hhbmdlCisgICAgICogaXMg
cmVmbGVjdGVkIGluIHlvdXIgaW50ZXJmYWNlLikKKyAgICAgKgorICAgICAqIE1vcmUgYWR2YW5j
ZWQgcHJvZ3JhbXMgd2lsbCBhbGxvdyB1c2VycyB0byB1c2UgZGlmZmVyZW50IGxvY2FsZXMgZm9y
CisgICAgICogZGlmZmVyZW50IGZpZWxkcywgZS5nLiBpbiBhIHNwcmVhZHNoZWV0LgorICAgICAq
CisgICAgICogTm90ZSB0aGF0IHRoZSBpbml0aWFsIHNldHRpbmcgd2lsbCBtYXRjaCB0aGUgaG9z
dCBzeXN0ZW0uCisgICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGUgTG9jYWxlIG9iamVj
dCBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIElECisgICAgICogQHN5c3RlbQorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUmIFVfRVhQT1JUMiBn
ZXREZWZhdWx0KHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZGVmYXVsdC4gTm9y
bWFsbHkgc2V0IG9uY2UgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHByb2Nlc3MsCisgICAgICogdGhl
biBuZXZlciByZXNldC4KKyAgICAgKiBzZXREZWZhdWx0KCkgb25seSBjaGFuZ2VzIElDVSdzIGRl
ZmF1bHQgbG9jYWxlIElELCA8c3Ryb25nPm5vdDwvc3Ryb25nPgorICAgICAqIHRoZSBkZWZhdWx0
IGxvY2FsZSBJRCBvZiB0aGUgcnVudGltZSBlbnZpcm9ubWVudC4KKyAgICAgKgorICAgICAqIEBw
YXJhbSBuZXdMb2NhbGUgTG9jYWxlIHRvIHNldCB0by4gIElmIE5VTEwsIHNldCB0byB0aGUgdmFs
dWUgb2J0YWluZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgIGZyb20gdGhlIHJ1bnRpbWUgZW52
aXJvbmVtZW50LgorICAgICAqIEBwYXJhbSBzdWNjZXNzIFRoZSBlcnJvciBjb2RlLgorICAgICAq
IEBzeXN0ZW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgdm9p
ZCBVX0VYUE9SVDIgc2V0RGVmYXVsdChjb25zdCBMb2NhbGUmIG5ld0xvY2FsZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlJiAgIHN1Y2Nlc3MpOworI2Vu
ZGlmICAvKiBVX0hJREVfU1lTVEVNX0FQSSAqLworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBh
IGxvY2FsZSB3aGljaCBoYXMgaGFkIG1pbmltYWwgY2Fub25pY2FsaXphdGlvbgorICAgICAqIGFz
IHBlciB1bG9jX2dldE5hbWUoKS4KKyAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSB0byBjcmVh
dGUgZnJvbS4gIElmIG5hbWUgaXMgbnVsbCwKKyAgICAgKiAgdGhlIGRlZmF1bHQgTG9jYWxlIGlz
IHVzZWQuCisgICAgICogQHJldHVybiBuZXcgbG9jYWxlIG9iamVjdAorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqIEBzZWUgdWxvY19nZXROYW1lCisgICAgICovCisgICAgc3RhdGljIExv
Y2FsZSBVX0VYUE9SVDIgY3JlYXRlRnJvbU5hbWUoY29uc3QgY2hhciAqbmFtZSk7CisKKyAgICAv
KioKKyAgICAgKiBDcmVhdGVzIGEgbG9jYWxlIGZyb20gdGhlIGdpdmVuIHN0cmluZyBhZnRlciBj
YW5vbmljYWxpemluZworICAgICAqIHRoZSBzdHJpbmcgYnkgY2FsbGluZyB1bG9jX2Nhbm9uaWNh
bGl6ZSgpLgorICAgICAqIEBwYXJhbSBuYW1lIHRoZSBsb2NhbGUgSUQgdG8gY3JlYXRlIGZyb20u
ICBNdXN0IG5vdCBiZSBOVUxMLgorICAgICAqIEByZXR1cm4gYSBuZXcgbG9jYWxlIG9iamVjdCBj
b3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisg
ICAgICogQHNlZSB1bG9jX2Nhbm9uaWNhbGl6ZQorICAgICAqLworICAgIHN0YXRpYyBMb2NhbGUg
VV9FWFBPUlQyIGNyZWF0ZUNhbm9uaWNhbChjb25zdCBjaGFyKiBuYW1lKTsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIElTTy02MzkgbGFuZ3VhZ2UgY29kZS4KKyAgICAg
KiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRMYW5ndWFnZSggKSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIElTTy0xNTkyNCBhYmJy
ZXZpYXRpb24gc2NyaXB0IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRo
ZSBjb2RlCisgICAgICogQHNlZSB1c2NyaXB0X2dldFNob3J0TmFtZQorICAgICAqIEBzZWUgdXNj
cmlwdF9nZXRDb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgaW5saW5l
IGNvbnN0IGNoYXIgKiAgZ2V0U2NyaXB0KCApIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0
dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTMxNjYgY291bnRyeSBjb2RlLgorICAgICAqIEByZXR1cm4g
ICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldENvdW50cnkoICkgY29uc3Q7CisKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyB2YXJpYW50IGNvZGUuCisgICAgICogQHJl
dHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0VmFyaWFudCggKSBjb25zdDsKKwor
ICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHByb2dyYW1tYXRpYyBuYW1lIG9mIHRoZSBlbnRp
cmUgbG9jYWxlLCB3aXRoIHRoZSBsYW5ndWFnZSwKKyAgICAgKiBjb3VudHJ5IGFuZCB2YXJpYW50
IHNlcGFyYXRlZCBieSB1bmRlcmJhcnMuIElmIGEgZmllbGQgaXMgbWlzc2luZywgdXAKKyAgICAg
KiB0byB0d28gbGVhZGluZyB1bmRlcmJhcnMgd2lsbCBvY2N1ci4gRXhhbXBsZTogImVuIiwgImRl
X0RFIiwgImVuX1VTX1dJTiIsCisgICAgICogImRlX19QT1NJWCIsICJmcl9fTUFDIiwgIl9fTUFD
IiwgIl9NVCIsICJfRlJfRVVSTyIKKyAgICAgKiBAcmV0dXJuICAgICAgQSBwb2ludGVyIHRvICJu
YW1lIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3Qg
Y2hhciAqIGdldE5hbWUoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHBy
b2dyYW1tYXRpYyBuYW1lIG9mIHRoZSBlbnRpcmUgbG9jYWxlIGFzIGdldE5hbWUoKSB3b3VsZCBy
ZXR1cm4sCisgICAgICogYnV0IHdpdGhvdXQga2V5d29yZHMuCisgICAgICogQHJldHVybiAgICAg
IEEgcG9pbnRlciB0byAibmFtZSIuCisgICAgICogQHNlZSBnZXROYW1lCisgICAgICogQHN0YWJs
ZSBJQ1UgMi44CisgICAgICovCisgICAgY29uc3QgY2hhciAqIGdldEJhc2VOYW1lKCkgY29uc3Q7
CisKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxpc3Qgb2Yga2V5d29yZHMgZm9yIHRoZSBz
cGVjaWZpZWQgbG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXR1cyB0aGUgc3RhdHVz
IGNvZGUKKyAgICAgKiBAcmV0dXJuIHBvaW50ZXIgdG8gU3RyaW5nRW51bWVyYXRpb24gY2xhc3Ms
IG9yIE5VTEwgaWYgdGhlcmUgYXJlIG5vIGtleXdvcmRzLiAKKyAgICAgKiBDbGllbnQgbXVzdCBk
aXNwb3NlIG9mIGl0IGJ5IGNhbGxpbmcgZGVsZXRlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAor
ICAgICAqLworICAgIFN0cmluZ0VudW1lcmF0aW9uICogY3JlYXRlS2V5d29yZHMoVUVycm9yQ29k
ZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHZhbHVlIGZvciBh
IGtleXdvcmQuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5d29yZE5hbWUgbmFtZSBvZiB0aGUg
a2V5d29yZCBmb3Igd2hpY2ggd2Ugd2FudCB0aGUgdmFsdWUuIENhc2UgaW5zZW5zaXRpdmUuCisg
ICAgICogQHBhcmFtIGJ1ZmZlciBUaGUgYnVmZmVyIHRvIHJlY2VpdmUgdGhlIGtleXdvcmQgdmFs
dWUuCisgICAgICogQHBhcmFtIGJ1ZmZlckNhcGFjaXR5IFRoZSBjYXBhY2l0eSBvZiByZWNlaXZp
bmcgYnVmZmVyCisgICAgICogQHBhcmFtIHN0YXR1cyBSZXR1cm5zIGFueSBlcnJvciBpbmZvcm1h
dGlvbiB3aGlsZSBwZXJmb3JtaW5nIHRoaXMgb3BlcmF0aW9uLgorICAgICAqIEByZXR1cm4gdGhl
IGxlbmd0aCBvZiB0aGUga2V5d29yZCB2YWx1ZQorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi44CisgICAgICovCisgICAgaW50MzJfdCBnZXRLZXl3b3JkVmFsdWUoY29uc3QgY2hhcioga2V5
d29yZE5hbWUsIGNoYXIgKmJ1ZmZlciwgaW50MzJfdCBidWZmZXJDYXBhY2l0eSwgVUVycm9yQ29k
ZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFNldHMgb3IgcmVtb3ZlcyB0aGUg
dmFsdWUgZm9yIGEga2V5d29yZC4KKyAgICAgKgorICAgICAqIEZvciByZW1vdmluZyBhbGwga2V5
d29yZHMsIHVzZSBnZXRCYXNlTmFtZSgpLAorICAgICAqIGFuZCBjb25zdHJ1Y3QgYSBuZXcgTG9j
YWxlIGlmIGl0IGRpZmZlcnMgZnJvbSBnZXROYW1lKCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0g
a2V5d29yZE5hbWUgbmFtZSBvZiB0aGUga2V5d29yZCB0byBiZSBzZXQuIENhc2UgaW5zZW5zaXRp
dmUuCisgICAgICogQHBhcmFtIGtleXdvcmRWYWx1ZSB2YWx1ZSBvZiB0aGUga2V5d29yZCB0byBi
ZSBzZXQuIElmIDAtbGVuZ3RoIG9yCisgICAgICogIE5VTEwsIHdpbGwgcmVzdWx0IGluIHRoZSBr
ZXl3b3JkIGJlaW5nIHJlbW92ZWQuIE5vIGVycm9yIGlzIGdpdmVuIGlmCisgICAgICogIHRoYXQg
a2V5d29yZCBkb2VzIG5vdCBleGlzdC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFJldHVybnMgYW55
IGVycm9yIGluZm9ybWF0aW9uIHdoaWxlIHBlcmZvcm1pbmcgdGhpcyBvcGVyYXRpb24uCisgICAg
ICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAgIHZvaWQgc2V0S2V5d29yZFZh
bHVlKGNvbnN0IGNoYXIqIGtleXdvcmROYW1lLCBjb25zdCBjaGFyKiBrZXl3b3JkVmFsdWUsIFVF
cnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiByZXR1cm5zIHRoZSBsb2NhbGUn
cyB0aHJlZS1sZXR0ZXIgbGFuZ3VhZ2UgY29kZSwgYXMgc3BlY2lmaWVkCisgICAgICogaW4gSVNP
IGRyYWZ0IHN0YW5kYXJkIElTTy02MzktMi4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMg
dG8gdGhlIGNvZGUsIG9yIGFuIGVtcHR5IHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRJU08zTGFuZ3VhZ2UoKSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRoZSBsb2NhbGUncyB0aHJlZS1sZXR0
ZXIgSVNPLTMxNjYgY291bnRyeSBjb2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0
byB0aGUgY29kZSwgb3IgYW4gZW1wdHkgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgY29uc3QgY2hhciAqIGdldElTTzNDb3VudHJ5KCkgY29uc3Q7CisKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIHRoZSBXaW5kb3dzIExDSUQgdmFsdWUgY29ycmVzcG9uZGluZyB0
byB0aGlzIGxvY2FsZS4KKyAgICAgKiBUaGlzIHZhbHVlIGlzIHN0b3JlZCBpbiB0aGUgcmVzb3Vy
Y2UgZGF0YSBmb3IgdGhlIGxvY2FsZSBhcyBhIG9uZS10by1mb3VyLWRpZ2l0CisgICAgICogaGV4
YWRlY2ltYWwgbnVtYmVyLiAgSWYgdGhlIHJlc291cmNlIGlzIG1pc3NpbmcsIGluIHRoZSB3cm9u
ZyBmb3JtYXQsIG9yCisgICAgICogdGhlcmUgaXMgbm8gV2luZG93cyBMQ0lEIHZhbHVlIHRoYXQg
Y29ycmVzcG9uZHMgdG8gdGhpcyBsb2NhbGUsIHJldHVybnMgMC4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgZ2V0TENJRCh2b2lkKSBjb25zdDsK
KworI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0
aGVyIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGlzIHdyaXR0ZW4gcmlnaHQtdG8tbGVmdC4KKyAgICAg
KiBJZiB0aGVyZSBpcyBubyBzY3JpcHQgc3VidGFnLCB0aGVuIHRoZSBsaWtlbHkgc2NyaXB0IGlz
IHVzZWQsIHNlZSB1bG9jX2FkZExpa2VseVN1YnRhZ3MoKS4KKyAgICAgKiBJZiBubyBsaWtlbHkg
c2NyaXB0IGlzIGtub3duLCB0aGVuIEZBTFNFIGlzIHJldHVybmVkLgorICAgICAqCisgICAgICog
QSBzY3JpcHQgaXMgcmlnaHQtdG8tbGVmdCBhY2NvcmRpbmcgdG8gdGhlIENMRFIgc2NyaXB0IG1l
dGFkYXRhCisgICAgICogd2hpY2ggY29ycmVzcG9uZHMgdG8gd2hldGhlciB0aGUgc2NyaXB0J3Mg
bGV0dGVycyBoYXZlIEJpZGlfQ2xhc3M9UiBvciBBTC4KKyAgICAgKgorICAgICAqIFJldHVybnMg
VFJVRSBmb3IgImFyIiBhbmQgImVuLUhlYnIiLCBGQUxTRSBmb3IgInpoIiBhbmQgImZhLUN5cmwi
LgorICAgICAqCisgICAgICogQHJldHVybiBUUlVFIGlmIHRoZSBsb2NhbGUncyBzY3JpcHQgaXMg
d3JpdHRlbiByaWdodC10by1sZWZ0CisgICAgICogQGRyYWZ0IElDVSA1NAorICAgICAqLworICAg
IFVCb29sIGlzUmlnaHRUb0xlZnQoKSBjb25zdDsKKyNlbmRpZiAgLyogVV9ISURFX0RSQUZUX0FQ
SSAqLworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BMYW5nIiB3aXRoIHRoZSBuYW1l
IG9mIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yCisgICAg
ICogdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4gIEZvciBleGFtcGxlLCBpZiB0
aGUgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcworICAgICAqICJmciIgYW5kIHRoZSBkZWZhdWx0
IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQK
KyAgICAgKiBkaXNwTGFuZyB0byAiRnJlbmNoIi4KKyAgICAgKiBAcGFyYW0gZGlzcExhbmcgIFJl
Y2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAg
ICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwTGFuZyIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlMYW5ndWFnZShVbmljb2RlU3Ry
aW5nJiAgIGRpc3BMYW5nKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNw
TGFuZyIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGxhbmd1YWdlIGluIGEgZm9ybWF0
IHN1aXRhYmxlIGZvcgorICAgICAqIHVzZXIgZGlzcGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmll
ZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzCisgICAg
ICogbGFuZ3VhZ2UgY29kZSBpcyAiZW4iIGFuZCBkaXNwbGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29k
ZSBpcyAiZnIiLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BMYW5nIHRvICJB
bmdsYWlzIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgU3BlY2lmaWVzIHRoZSBsb2Nh
bGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLiAgSW4gb3RoZXIgd29yZHMsCisgICAg
ICogICAgICAgICAgICAgICAgICBpZiB0aGUgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4i
LCBwYXNzaW5nIExvY2FsZTo6Z2V0RnJlbmNoKCkgZm9yCisgICAgICogICAgICAgICAgICAgICAg
ICBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiQW5nbGFpcyIsIHdoaWxlIHBhc3Npbmcg
TG9jYWxlOjpnZXRHZXJtYW4oKQorICAgICAqICAgICAgICAgICAgICAgICAgZm9yIGRpc3BsYXlM
b2NhbGUgd291bGQgcmVzdWx0IGluICJFbmdsaXNjaCIuCisgICAgICogQHBhcmFtIGRpc3BMYW5n
ICBSZWNlaXZlcyB0aGUgbGFuZ3VhZ2UncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAg
ICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcExhbmciLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TGFuZ3VhZ2UoIGNvbnN0
ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgZGlzcExhbmcpIGNvbnN0
OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BTY3JpcHQiIHdpdGggdGhlIG5hbWUg
b2YgdGhpcyBsb2NhbGUncyBzY3JpcHQgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3Ig
dXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4gIEZvciBleGFtcGxlLCBpZiB0aGUg
bG9jYWxlJ3Mgc2NyaXB0IGNvZGUKKyAgICAgKiBpcyAiTEFUTiIgYW5kIHRoZSBkZWZhdWx0IGxv
Y2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAg
ICAgKiBkaXNwU2NyaXB0IHRvICJMYXRpbiIuCisgICAgICogQHBhcmFtIGRpc3BTY3JpcHQgICAg
UmVjZWl2ZXMgdGhlIHNjcmlwdHMncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAg
ICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BTY3JpcHQiLgorICAgICAqIEBzdGFibGUgSUNV
IDIuOAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5U2NyaXB0KCAgICAg
ICAgICBVbmljb2RlU3RyaW5nJiBkaXNwU2NyaXB0KSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IEZpbGxzIGluICJkaXNwU2NyaXB0IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgY291
bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhl
IGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgRm9yIGV4YW1wbGUsIGlmIHRo
ZSBsb2NhbGUncworICAgICAqIHNjcmlwdCBjb2RlIGlzICJMQVROIiBhbmQgZGlzcGxheUxvY2Fs
ZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAg
KiBkaXNwU2NyaXB0IHRvICJMYXRpbiIuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgICAg
ICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuICBJ
biBvdGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHdvcmRzLCBpZiB0aGUgbG9jYWxl
J3Mgc2NyaXB0IGNvZGUgaXMgIkxBVE4iLCBwYXNzaW5nCisgICAgICogICAgICAgICAgICAgICAg
ICAgICAgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQg
aW4gIiIsIHdoaWxlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgcGFzc2luZyBMb2NhbGU6
OmdldEdlcm1hbigpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbgorICAgICAqICAg
ICAgICAgICAgICAgICAgICAgICIiLgorICAgICAqIEBwYXJhbSBkaXNwU2NyaXB0ICAgIFJlY2Vp
dmVzIHRoZSBzY3JpcHRzJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAg
ICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwU2NyaXB0Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgK
KyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheVNjcmlwdCggIGNvbnN0ICAg
TG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwU2NyaXB0KSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwQ291bnRyeSIgd2l0aCB0aGUgbmFtZSBv
ZiB0aGlzIGxvY2FsZSdzIGNvdW50cnkgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3Ig
dXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4gIEZvciBleGFtcGxlLCBpZiB0aGUg
bG9jYWxlJ3MgY291bnRyeSBjb2RlCisgICAgICogaXMgIkZSIiBhbmQgdGhlIGRlZmF1bHQgbG9j
YWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAg
ICAqIGRpc3BDb3VudHJ5IHRvICJGcmFuY2UiLgorICAgICAqIEBwYXJhbSBkaXNwQ291bnRyeSAg
IFJlY2VpdmVzIHRoZSBjb3VudHJ5J3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAg
ICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwQ291bnRyeSIuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlDb3VudHJ5KCAg
ICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwQ291bnRyeSkgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBGaWxscyBpbiAiZGlzcENvdW50cnkiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUn
cyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBp
biB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3IgZXhhbXBsZSwg
aWYgdGhlIGxvY2FsZSdzCisgICAgICogY291bnRyeSBjb2RlIGlzICJVUyIgYW5kIGRpc3BsYXlM
b2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJmciIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0Cisg
ICAgICogZGlzcENvdW50cnkgdG8gIiZFYWN1dGU7dGF0cy1VbmlzIi4KKyAgICAgKiBAcGFyYW0g
ZGlzcGxheUxvY2FsZSAgICAgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlz
cGxheSB0aGUgbmFtZS4gIEluIG90aGVyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd29y
ZHMsIGlmIHRoZSBsb2NhbGUncyBjb3VudHJ5IGNvZGUgaXMgIlVTIiwgcGFzc2luZworICAgICAq
ICAgICAgICAgICAgICAgICAgICAgIExvY2FsZTo6Z2V0RnJlbmNoKCkgZm9yIGRpc3BsYXlMb2Nh
bGUgd291bGQgcmVzdWx0IGluICImRWFjdXRlO3RhdHMtVW5pcyIsIHdoaWxlCisgICAgICogICAg
ICAgICAgICAgICAgICAgICAgcGFzc2luZyBMb2NhbGU6OmdldEdlcm1hbigpIGZvciBkaXNwbGF5
TG9jYWxlIHdvdWxkIHJlc3VsdCBpbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICJWZXJl
aW5pZ3RlIFN0YWF0ZW4iLgorICAgICAqIEBwYXJhbSBkaXNwQ291bnRyeSAgIFJlY2VpdmVzIHRo
ZSBjb3VudHJ5J3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIEEg
cmVmZXJlbmNlIHRvICJkaXNwQ291bnRyeSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlDb3VudHJ5KCAgY29uc3QgICBMb2Nh
bGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwQ291bnRyeSkgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFZhciIgd2l0aCB0aGUgbmFtZSBvZiB0aGlz
IGxvY2FsZSdzIHZhcmlhbnQgY29kZSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1
c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBkaXNwVmFy
ICAgUmVjZWl2ZXMgdGhlIHZhcmlhbnQncyBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAg
QSByZWZlcmVuY2UgdG8gImRpc3BWYXIiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5VmFyaWFudCggICAgICBVbmljb2RlU3Ry
aW5nJiBkaXNwVmFyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwVmFy
IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgdmFyaWFudCBjb2RlIGluIGEgZm9ybWF0
CisgICAgICogc3VpdGFibGUgZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmll
ZCBieSAiZGlzcGxheUxvY2FsZSIuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgIFNwZWNp
ZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBA
cGFyYW0gZGlzcFZhciAgIFJlY2VpdmVzIHRoZSB2YXJpYW50J3MgZGlzcGxheSBuYW1lLgorICAg
ICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BWYXIiLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5VmFy
aWFudCggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgZGlz
cFZhcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAibmFtZSIgd2l0aCB0aGUg
bmFtZSBvZiB0aGlzIGxvY2FsZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgdXNlciBkaXNwbGF5
CisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgVGhpcyBmdW5jdGlvbiB1c2VzIGdldERp
c3BsYXlMYW5ndWFnZSgpLCBnZXREaXNwbGF5Q291bnRyeSgpLAorICAgICAqIGFuZCBnZXREaXNw
bGF5VmFyaWFudCgpIHRvIGRvIGl0cyB3b3JrLCBhbmQgb3V0cHV0cyB0aGUgZGlzcGxheSBuYW1l
IGluIHRoZSBmb3JtYXQKKyAgICAgKiAibGFuZ3VhZ2UgKGNvdW50cnlbLHZhcmlhbnRdKSIuICBG
b3IgZXhhbXBsZSwgaWYgdGhlIGRlZmF1bHQgbG9jYWxlIGlzIGVuX1VTLCB0aGVuCisgICAgICog
ZnJfRlIncyBkaXNwbGF5IG5hbWUgd291bGQgYmUgIkZyZW5jaCAoRnJhbmNlKSIsIGFuZCBlc19N
WF9UcmFkaXRpb25hbCdzIGRpc3BsYXkgbmFtZQorICAgICAqIHdvdWxkIGJlICJTcGFuaXNoIChN
ZXhpY28sVHJhZGl0aW9uYWwpIi4KKyAgICAgKiBAcGFyYW0gbmFtZSAgUmVjZWl2ZXMgdGhlIGxv
Y2FsZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQSByZWZlcmVuY2UgdG8g
Im5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJp
bmcmICBnZXREaXNwbGF5TmFtZSggICAgICAgICBVbmljb2RlU3RyaW5nJiAgbmFtZSkgY29uc3Q7
CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAibmFtZSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlz
IGxvY2FsZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgdXNlciBkaXNwbGF5CisgICAgICogaW4g
dGhlIGxvY2FsZSBzcGVjZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBUaGlzIGZ1bmN0aW9uIHVz
ZXMgZ2V0RGlzcGxheUxhbmd1YWdlKCksCisgICAgICogZ2V0RGlzcGxheUNvdW50cnkoKSwgYW5k
IGdldERpc3BsYXlWYXJpYW50KCkgdG8gZG8gaXRzIHdvcmssIGFuZCBvdXRwdXRzIHRoZSBkaXNw
bGF5CisgICAgICogbmFtZSBpbiB0aGUgZm9ybWF0ICJsYW5ndWFnZSAoY291bnRyeVssdmFyaWFu
dF0pIi4gIEZvciBleGFtcGxlLCBpZiBkaXNwbGF5TG9jYWxlIGlzCisgICAgICogZnJfRlIsIHRo
ZW4gZW5fVVMncyBkaXNwbGF5IG5hbWUgd291bGQgYmUgIkFuZ2xhaXMgKCZFYWN1dGU7dGF0cy1V
bmlzKSIsIGFuZCBub19OT19OWSdzCisgICAgICogZGlzcGxheSBuYW1lIHdvdWxkIGJlICJub3J2
JmVhY3V0ZTtnaWVuIChOb3J2JmVncmF2ZTtnZSxOWSkiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5
TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5h
bWUuCisgICAgICogQHBhcmFtIG5hbWUgICAgICBSZWNlaXZlcyB0aGUgbG9jYWxlJ3MgZGlzcGxh
eSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gIm5hbWUiLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXRE
aXNwbGF5TmFtZSggY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIG5h
bWUpIGNvbnN0OworCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0
aGUgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGludDMyX3Qg
ICAgICAgICBoYXNoQ29kZSh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhl
IGxvY2FsZSB0byBib2d1cworICAgICAqIEEgYm9ndXMgbG9jYWxlIHJlcHJlc2VudHMgYSBub24t
ZXhpc3RpbmcgbG9jYWxlIGFzc29jaWF0ZWQKKyAgICAgKiB3aXRoIHNlcnZpY2VzIHRoYXQgY2Fu
IGJlIGluc3RhbnRpYXRlZCBmcm9tIG5vbi1sb2NhbGUgZGF0YQorICAgICAqIGluIGFkZGl0aW9u
IHRvIGxvY2FsZSAoZm9yIGV4YW1wbGUsIGNvbGxhdGlvbiBjYW4gYmUKKyAgICAgKiBpbnN0YW50
aWF0ZWQgZnJvbSBhIGxvY2FsZSBhbmQgZnJvbSBhIHJ1bGUgc2V0KS4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjEKKyAgICAgKi8KKyAgICB2b2lkIHNldFRvQm9ndXMoKTsKKworICAgIC8qKgorICAg
ICAqIEdldHMgdGhlIGJvZ3VzIHN0YXRlLiBMb2NhbGUgb2JqZWN0IGNhbiBiZSBib2d1cyBpZiBp
dCBkb2Vzbid0IGV4aXN0CisgICAgICogQHJldHVybiBGQUxTRSBpZiBpdCBpcyBhIHJlYWwgbG9j
YWxlLCBUUlVFIGlmIGl0IGlzIGEgYm9ndXMgbG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4x
CisgICAgICovCisgICAgVUJvb2wgaXNCb2d1cyh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAg
ICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBpbnN0YWxsZWQgbG9jYWxlcy4KKyAgICAgKiBAcGFy
YW0gY291bnQgUmVjZWl2ZXMgdGhlIG51bWJlciBvZiBsb2NhbGVzIGluIHRoZSBsaXN0LgorICAg
ICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgTG9jYWxlIG9iamVjdHMu
ICBUaGlzIGFycmF5IGlzIHRoZSBsaXN0CisgICAgICogICAgICAgICAgICAgIG9mIGFsbCBsb2Nh
bGVzIHdpdGggaW5zdGFsbGVkIHJlc291cmNlIGZpbGVzLiAgVGhlIGNhbGxlZCBkb2VzIE5PVAor
ICAgICAqICAgICAgICAgICAgICBnZXQgb3duZXJzaGlwIG9mIHRoaXMgbGlzdCwgYW5kIG11c3Qg
Tk9UIGRlbGV0ZSBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0
aWMgY29uc3QgTG9jYWxlKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxlTG9jYWxlcyhpbnQzMl90JiBj
b3VudCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIDIt
bGV0dGVyIGNvdW50cnkgY29kZXMgZGVmaW5lZCBpbiBJU08gMzE2Ni4gIFRoaXMgaXMgYQorICAg
ICAqIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgcG9pbnRlcnMgdG8gYXJyYXlzIG9mIGNoYXIuICBB
bGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlCisgICAgICogb3duZWQgYnkgSUNVLS0gZG8gbm90IGRl
bGV0ZSB0aGVtLCBhbmQgZG8gbm90IHdyaXRlIHRocm91Z2ggdGhlbS4gIFRoZSBhcnJheSBpcwor
ICAgICAqIHRlcm1pbmF0ZWQgd2l0aCBhIG51bGwgcG9pbnRlci4KKyAgICAgKiBAcmV0dXJuIGEg
bGlzdCBvZiBhbGwgYXZhaWxhYmxlIGNvdW50cnkgY29kZXMKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QqIFVfRVhQT1JUMiBnZXRJ
U09Db3VudHJpZXMoKTsKKworICAgIC8qKgorICAgICAqIEdldHMgYSBsaXN0IG9mIGFsbCBhdmFp
bGFibGUgbGFuZ3VhZ2UgY29kZXMgZGVmaW5lZCBpbiBJU08gNjM5LiAgVGhpcyBpcyBhIHBvaW50
ZXIKKyAgICAgKiB0byBhbiBhcnJheSBvZiBwb2ludGVycyB0byBhcnJheXMgb2YgY2hhci4gIEFs
bCBvZiB0aGVzZSBwb2ludGVycyBhcmUgb3duZWQKKyAgICAgKiBieSBJQ1UtLSBkbyBub3QgZGVs
ZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0aGVtLiAgVGhlIGFycmF5IGlzCisg
ICAgICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBwb2ludGVyLgorICAgICAqIEByZXR1cm4gYSBs
aXN0IG9mIGFsbCBhdmFpbGFibGUgbGFuZ3VhZ2UgY29kZXMKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QqIFVfRVhQT1JUMiBnZXRJ
U09MYW5ndWFnZXMoKTsKKworICAgIC8qKgorICAgICAqIElDVSAicG9vciBtYW4ncyBSVFRJIiwg
cmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGlzIGNsYXNzLgorICAgICAqCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4yCisgICAgICovCisgICAgc3RhdGljIFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRTdGF0
aWNDbGFzc0lEKCk7CisKKyAgICAvKioKKyAgICAgKiBJQ1UgInBvb3IgbWFuJ3MgUlRUSSIsIHJl
dHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhlIGFjdHVhbCBjbGFzcy4KKyAgICAgKgorICAgICAqIEBz
dGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0Ns
YXNzSUQoKSBjb25zdDsKKworcHJvdGVjdGVkOiAvKiBvbmx5IHByb3RlY3RlZCBmb3IgdGVzdGlu
ZyBwdXJwb3Nlcy4gRE8gTk9UIFVTRS4gKi8KKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQor
ICAgIC8qKgorICAgICAqIFNldCB0aGlzIGZyb20gYSBzaW5nbGUgUE9TSVggc3R5bGUgbG9jYWxl
IHN0cmluZy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB2b2lkIHNldEZyb21QT1NJ
WElEKGNvbnN0IGNoYXIgKnBvc2l4SUQpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJ
ICovCisKK3ByaXZhdGU6CisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSB0aGUgbG9jYWxlIG9i
amVjdCB3aXRoIGEgbmV3IG5hbWUuCisgICAgICogV2FzIGRlcHJlY2F0ZWQgLSB1c2VkIGluIGlt
cGxlbWVudGF0aW9uIC0gbW92ZWQgaW50ZXJuYWwKKyAgICAgKgorICAgICAqIEBwYXJhbSBjTG9j
YWxlSUQgVGhlIG5ldyBsb2NhbGUgbmFtZS4KKyAgICAgKiBAcGFyYW0gY2Fub25pY2FsaXplIHdo
ZXRoZXIgdG8gY2FsbCB1bG9jX2Nhbm9uaWNhbGl6ZSBvbiBjTG9jYWxlSUQKKyAgICAgKi8KKyAg
ICBMb2NhbGUmIGluaXQoY29uc3QgY2hhciogY0xvY2FsZUlELCBVQm9vbCBjYW5vbmljYWxpemUp
OworCisgICAgLyoKKyAgICAgKiBJbnRlcm5hbCBjb25zdHJ1Y3RvciB0byBhbGxvdyBjb25zdHJ1
Y3Rpb24gb2YgYSBsb2NhbGUgb2JqZWN0IHdpdGgKKyAgICAgKiAgIE5PIHNpZGUgZWZmZWN0cy4g
ICAoRGVmYXVsdCBjb25zdHJ1Y3RvciB0cmllcyB0byBnZXQKKyAgICAgKiAgIHRoZSBkZWZhdWx0
IGxvY2FsZS4pCisgICAgICovCisgICAgZW51bSBFTG9jYWxlVHlwZSB7CisgICAgICAgIGVCT0dV
UworICAgIH07CisgICAgTG9jYWxlKEVMb2NhbGVUeXBlKTsKKworICAgIC8qKgorICAgICAqIElu
aXRpYWxpemUgdGhlIGxvY2FsZSBjYWNoZSBmb3IgY29tbW9ubHkgdXNlZCBsb2NhbGVzCisgICAg
ICovCisgICAgc3RhdGljIExvY2FsZSAqZ2V0TG9jYWxlQ2FjaGUodm9pZCk7CisKKyAgICBjaGFy
IGxhbmd1YWdlW1VMT0NfTEFOR19DQVBBQ0lUWV07CisgICAgY2hhciBzY3JpcHRbVUxPQ19TQ1JJ
UFRfQ0FQQUNJVFldOworICAgIGNoYXIgY291bnRyeVtVTE9DX0NPVU5UUllfQ0FQQUNJVFldOwor
ICAgIGludDMyX3QgdmFyaWFudEJlZ2luOworICAgIGNoYXIqIGZ1bGxOYW1lOworICAgIGNoYXIg
ZnVsbE5hbWVCdWZmZXJbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07CisgICAgLy8gbmFtZSB3aXRo
b3V0IGtleXdvcmRzCisgICAgY2hhciogYmFzZU5hbWU7CisgICAgdm9pZCBpbml0QmFzZU5hbWUo
VUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIFVCb29sIGZJc0JvZ3VzOworCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmZ2V0TG9jYWxlKGludCBsb2NpZCk7CisKKyAgICAvKioKKyAgICAgKiBB
IGZyaWVuZCB0byBhbGxvdyB0aGUgZGVmYXVsdCBsb2NhbGUgdG8gYmUgc2V0IGJ5IGVpdGhlciB0
aGUgQyBvciBDKysgQVBJLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGZyaWVuZCBM
b2NhbGUgKmxvY2FsZV9zZXRfZGVmYXVsdF9pbnRlcm5hbChjb25zdCBjaGFyICosIFVFcnJvckNv
ZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBm
cmllbmQgdm9pZCBVX0NBTExDT05WIGxvY2FsZV9hdmFpbGFibGVfaW5pdCgpOworfTsKKworaW5s
aW5lIFVCb29sCitMb2NhbGU6Om9wZXJhdG9yIT0oY29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIp
IGNvbnN0Cit7CisgICAgcmV0dXJuICFvcGVyYXRvcj09KG90aGVyKTsKK30KKworaW5saW5lIGNv
bnN0IGNoYXIgKgorTG9jYWxlOjpnZXRDb3VudHJ5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gY291
bnRyeTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRMYW5ndWFnZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGxhbmd1YWdlOworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitM
b2NhbGU6OmdldFNjcmlwdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHNjcmlwdDsKK30KKworaW5s
aW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRWYXJpYW50KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gJmJhc2VOYW1lW3ZhcmlhbnRCZWdpbl07Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xv
Y2FsZTo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZ1bGxOYW1lOworfQorCitpbmxp
bmUgVUJvb2wKK0xvY2FsZTo6aXNCb2d1cyh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIGZJc0Jv
Z3VzOworfQorCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL2ljdS91bmljb2RlL3JiYmkuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ0NzU5OGE1MGU2ZmEzYmFiMmFkNDllMDIyYWFmMzk2Y2FjMzI5ZTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JiYmkuaApAQCAtMCwwICsxLDc4
MiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycG9yYXRpb24gICAqCisqICAgYW5k
IG90aGVycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0
ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAxMC8yMi85OSAgICBhbGFuICAg
ICAgICBDcmVhdGlvbi4KKyogICAxMS8xMS85OSAgICByZ2lsbGFtICAgICBDb21wbGV0ZSBwb3J0
IGZyb20gSmF2YS4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgUkJCSV9ICisjZGVmaW5l
IFJCQklfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworLyoqCisgKiBcZmlsZQor
ICogXGJyaWVmIEMrKyBBUEk6IFJ1bGUgQmFzZWQgQnJlYWsgSXRlcmF0b3IKKyAqLworCisjaWYg
IVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKKyNpbmNsdWRlICJ1bmljb2RlL2Jya2l0ZXIu
aCIKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisjaW5jbHVkZSAidW5pY29kZS9wYXJzZWVy
ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvc2Nocml0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3Vj
aHJpdGVyLmgiCisKKworc3RydWN0IFVUcmllOworCitVX05BTUVTUEFDRV9CRUdJTgorCisvKiog
QGludGVybmFsICovCitzdHJ1Y3QgUkJCSURhdGFIZWFkZXI7CitjbGFzcyAgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvclRhYmxlczsKK2NsYXNzICBCcmVha0l0ZXJhdG9yOworY2xhc3MgIFJCQklEYXRh
V3JhcHBlcjsKK2NsYXNzICBVU3RhY2s7CitjbGFzcyAgTGFuZ3VhZ2VCcmVha0VuZ2luZTsKK2Ns
YXNzICBVbmhhbmRsZWRFbmdpbmU7CitzdHJ1Y3QgUkJCSVN0YXRlVGFibGU7CisKKworCisKKy8q
KgorICoKKyAqIEEgc3ViY2xhc3Mgb2YgQnJlYWtJdGVyYXRvciB3aG9zZSBiZWhhdmlvciBpcyBz
cGVjaWZpZWQgdXNpbmcgYSBsaXN0IG9mIHJ1bGVzLgorICogPHA+SW5zdGFuY2VzIG9mIHRoaXMg
Y2xhc3MgYXJlIG1vc3QgY29tbW9ubHkgY3JlYXRlZCBieSB0aGUgZmFjdG9yeSBtZXRob2RzIG9m
CisgKiAgQnJlYWtJdGVyYXRvcjo6Y3JlYXRlV29yZEluc3RhbmNlKCksIEJyZWFrSXRlcmF0b3I6
OmNyZWF0ZUxpbmVJbnN0YW5jZSgpLCBldGMuLAorICogIGFuZCB0aGVuIHVzZWQgdmlhIHRoZSBh
YnN0cmFjdCBBUEkgaW4gY2xhc3MgQnJlYWtJdGVyYXRvcjwvcD4KKyAqCisgKiA8cD5TZWUgdGhl
IElDVSBVc2VyIEd1aWRlIGZvciBpbmZvcm1hdGlvbiBvbiBCcmVhayBJdGVyYXRvciBSdWxlcy48
L3A+CisgKgorICogPHA+VGhpcyBjbGFzcyBpcyBub3QgaW50ZW5kZWQgdG8gYmUgc3ViY2xhc3Nl
ZC4gIChDbGFzcyBEaWN0aW9uYXJ5QmFzZWRCcmVha0l0ZXJhdG9yCisgKiAgICBpcyBhIHN1YmNs
YXNzLCBidXQgdGhhdCByZWxhdGlvbnNoaXAgaXMgZWZmZWN0aXZlbHkgaW50ZXJuYWwgdG8gdGhl
IElDVQorICogICAgaW1wbGVtZW50YXRpb24uICBUaGUgc3ViY2xhc3NpbmcgaW50ZXJmYWNlIHRv
IFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yIGlzCisgKiAgICBub3QgcGFydCBvZiB0aGUgSUNVIEFQ
SSwgYW5kIG1heSBub3QgcmVtYWluIHN0YWJsZS48L3A+CisgKgorICovCitjbGFzcyBVX0NPTU1P
Tl9BUEkgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAvKlVfRklOQUwqLyA6IHB1YmxpYyBCcmVha0l0
ZXJhdG9yIHsKKworcHJvdGVjdGVkOgorICAgIC8qKgorICAgICAqIFRoZSBVVGV4dCB0aHJvdWdo
IHdoaWNoIHRoaXMgQnJlYWtJdGVyYXRvciBhY2Nlc3NlcyB0aGUgdGV4dAorICAgICAqIEBpbnRl
cm5hbAorICAgICAqLworICAgIFVUZXh0ICAqZlRleHQ7CisKKyAgICAvKioKKyAgICAgKiAgIEEg
Y2hhcmFjdGVyIGl0ZXJhdG9yIHRoYXQgcmVmZXJzIHRvIHRoZSBzYW1lIHRleHQgYXMgdGhlIFVU
ZXh0LCBhYm92ZS4KKyAgICAgKiAgIE9ubHkgaW5jbHVkZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0
aCBvbGQgQVBJLCB3aGljaCB3YXMgYmFzZWQgb24gQ2hhcmFjdGVySXRlcmF0b3JzLgorICAgICAq
ICAgVmFsdWUgbWF5IGJlIGFkb3B0ZWQgZnJvbSBvdXRzaWRlLCBvciBvbmUgb2YgZlNDaGFySXRl
ciBvciBmRENoYXJJdGVyLCBiZWxvdy4KKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvciAg
KmZDaGFySXRlcjsKKworICAgIC8qKgorICAgICAqICAgV2hlbiB0aGUgaW5wdXQgdGV4dCBpcyBw
cm92aWRlZCBieSBhIFVuaWNvZGVTdHJpbmcsIHRoaXMgd2lsbCBwb2ludCB0bworICAgICAqICAg
IGEgY2hhcmFjdGVySXRlcmF0b3IgdGhhdCB3cmFwcyB0aGF0IGRhdGEuICBOZWVkZWQgb25seSBm
b3IgdGhlCisgICAgICogICAgaW1wbGVtZW50YXRpb24gb2YgZ2V0VGV4dCgpLCBhIGJhY2t3YXJk
cyBjb21wYXRpYmlsaXR5IGlzc3VlLgorICAgICAqLworICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJh
dG9yICpmU0NoYXJJdGVyOworCisgICAgLyoqCisgICAgICogIFdoZW4gdGhlIGlucHV0IHRleHQg
aXMgcHJvdmlkZWQgYnkgYSBVVGV4dCwgdGhpcworICAgICAqICAgIGR1bW15IENoYXJhY3Rlckl0
ZXJhdG9yIG92ZXIgYW4gZW1wdHkgc3RyaW5nIHdpbGwKKyAgICAgKiAgICBiZSByZXR1cm5lZCBm
cm9tIGdldFRleHQoKQorICAgICAqLworICAgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgKmZEQ2hh
ckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcnVsZSBkYXRhIGZvciB0aGlzIEJyZWFrSXRl
cmF0b3IgaW5zdGFuY2UKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBSQkJJRGF0YVdy
YXBwZXIgICAgKmZEYXRhOworCisgICAgLyoqIEluZGV4IG9mIHRoZSBSdWxlIHt0YWd9IHZhbHVl
cyBmb3IgdGhlIG1vc3QgcmVjZW50IG1hdGNoLgorICAgICAqICBAaW50ZXJuYWwKKyAgICAqLwor
ICAgIGludDMyX3QgICAgICAgICAgICAgZkxhc3RSdWxlU3RhdHVzSW5kZXg7CisKKyAgICAvKioK
KyAgICAgKiBSdWxlIHRhZyB2YWx1ZSB2YWxpZCBmbGFnLgorICAgICAqIFNvbWUgaXRlcmF0b3Ig
b3BlcmF0aW9ucyBkb24ndCBpbnRyaW5zaWNhbGx5IHNldCB0aGUgY29ycmVjdCB0YWcgdmFsdWUu
CisgICAgICogVGhpcyBmbGFnIGxldHMgdXMgbGF6aWx5IGNvbXB1dGUgdGhlIHZhbHVlIGlmIHdl
IGFyZSBldmVyIGFza2VkIGZvciBpdC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBV
Qm9vbCAgICAgICAgICAgICAgIGZMYXN0U3RhdHVzSW5kZXhWYWxpZDsKKworICAgIC8qKgorICAg
ICAqIENvdW50ZXIgZm9yIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBlbmNvdW50ZXJlZCB3aXRo
IHRoZSAiZGljdGlvbmFyeSIKKyAgICAgKiAgIGZsYWcgc2V0LgorICAgICAqIEBpbnRlcm5hbAor
ICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICAgICAgZkRpY3Rpb25hcnlDaGFyQ291bnQ7CisK
KyAgICAvKioKKyAgICAgKiBXaGVuIGEgcmFuZ2Ugb2YgY2hhcmFjdGVycyBpcyBkaXZpZGVkIHVw
IHVzaW5nIHRoZSBkaWN0aW9uYXJ5LCB0aGUgYnJlYWsKKyAgICAgKiBwb3NpdGlvbnMgdGhhdCBh
cmUgZGlzY292ZXJlZCBhcmUgc3RvcmVkIGhlcmUsIHByZXZlbnRpbmcgdXMgZnJvbSBoYXZpbmcK
KyAgICAgKiB0byB1c2UgZWl0aGVyIHRoZSBkaWN0aW9uYXJ5IG9yIHRoZSBzdGF0ZSB0YWJsZSBh
Z2FpbiB1bnRpbCB0aGUgaXRlcmF0b3IKKyAgICAgKiBsZWF2ZXMgdGhpcyByYW5nZSBvZiB0ZXh0
LiBIYXMgdGhlIG1vc3QgaW1wYWN0IGZvciBsaW5lIGJyZWFraW5nLgorICAgICAqIEBpbnRlcm5h
bAorICAgICAqLworICAgIGludDMyX3QqICAgICAgICAgICAgZkNhY2hlZEJyZWFrUG9zaXRpb25z
OworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiBmQ2FjaGVkQnJl
YWtQb3NpdGlvbnMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAg
ICAgICAgIGZOdW1DYWNoZWRCcmVha1Bvc2l0aW9uczsKKworICAgIC8qKgorICAgICAqIGlmIGZD
YWNoZWRCcmVha1Bvc2l0aW9ucyBpcyBub3QgbnVsbCwgdGhpcyBpbmRpY2F0ZXMgd2hpY2ggaXRl
bSBpbiB0aGUKKyAgICAgKiBjYWNoZSB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gcmVm
ZXJzIHRvCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCAgICAgICAgICAg
ICBmUG9zaXRpb25JbkNhY2hlOworICAgIAorICAgIC8qKgorICAgICAqCisgICAgICogSWYgcHJl
c2VudCwgVVN0YWNrIG9mIExhbmd1YWdlQnJlYWtFbmdpbmUgb2JqZWN0cyB0aGF0IG1pZ2h0IGhh
bmRsZQorICAgICAqIGRpY3Rpb25hcnkgY2hhcmFjdGVycy4gU2VhcmNoZWQgZnJvbSB0b3AgdG8g
Ym90dG9tIHRvIGZpbmQgYW4gb2JqZWN0IHRvCisgICAgICogaGFuZGxlIGEgZ2l2ZW4gY2hhcmFj
dGVyLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVTdGFjayAgICAgICAgICAgICAg
KmZMYW5ndWFnZUJyZWFrRW5naW5lczsKKyAgICAKKyAgICAvKioKKyAgICAgKgorICAgICAqIElm
IHByZXNlbnQsIHRoZSBzcGVjaWFsIExhbmd1YWdlQnJlYWtFbmdpbmUgdXNlZCBmb3IgaGFuZGxp
bmcKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgYXJlIGluIHRoZSBkaWN0aW9uYXJ5IHNldCwgYnV0
IG5vdCBoYW5kbGVkIGJ5IGFueQorICAgICAqIExhbmd1Z2FnZUJyZWFrRW5naW5lLgorICAgICAq
IEBpbnRlcm5hbAorICAgICAqLworICAgIFVuaGFuZGxlZEVuZ2luZSAgICAgKmZVbmhhbmRsZWRC
cmVha0VuZ2luZTsKKyAgICAKKyAgICAvKioKKyAgICAgKgorICAgICAqIFRoZSB0eXBlIG9mIHRo
ZSBicmVhayBpdGVyYXRvciwgb3IgLTEgaWYgaXQgaGFzIG5vdCBiZWVuIHNldC4KKyAgICAgKiBA
aW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZCcmVha1R5cGU7Cisg
ICAgCitwcm90ZWN0ZWQ6CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIGNvbnN0cnVjdG9y
cworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisg
ICAgLyoqCisgICAgICogQ29uc3RhbnQgdG8gYmUgdXNlZCBpbiB0aGUgY29uc3RydWN0b3IKKyAg
ICAgKiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFJCQklEYXRhSGVhZGVyKiwgRURvbnRBZG9wdCwg
VUVycm9yQ29kZSAmKTsKKyAgICAgKiB3aGljaCBkb2VzIG5vdCBhZG9wdCB0aGUgbWVtb3J5IGlu
ZGljYXRlZCBieSB0aGUgUkJCSURhdGFIZWFkZXIqCisgICAgICogcGFyYW1ldGVyLgorICAgICAq
CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgZW51bSBFRG9udEFkb3B0IHsKKyAgICAg
ICAga0RvbnRBZG9wdAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmcm9t
IGEgZmxhdHRlbmVkIHNldCBvZiBSQkJJIGRhdGEgaW4gbWFsbG9jZWQgbWVtb3J5LgorICAgICAq
ICAgICAgICAgICAgIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9ycyBidWlsdCBmcm9tIGEgY3VzdG9t
IHNldCBvZiBydWxlcworICAgICAqICAgICAgICAgICAgIGFyZSBjcmVhdGVkIHZpYSB0aGlzIGNv
bnN0cnVjdG9yOyB0aGUgcnVsZXMgYXJlIGNvbXBpbGVkCisgICAgICogICAgICAgICAgICAgaW50
byBtZW1vcnksIHRoZW4gdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIGNvbnN0cnVjdGVkIGhlcmUuCisg
ICAgICoKKyAgICAgKiAgICAgICAgICAgICBUaGUgYnJlYWsgaXRlcmF0b3IgYWRvcHRzIHRoZSBt
ZW1vcnksIGFuZCB3aWxsCisgICAgICogICAgICAgICAgICAgZnJlZSBpdCB3aGVuIGRvbmUuCisg
ICAgICogQGludGVybmFsCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihSQkJJ
RGF0YUhlYWRlciogZGF0YSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAq
IENvbnN0cnVjdG9yIGZyb20gYSBmbGF0dGVuZWQgc2V0IG9mIFJCQkkgZGF0YSBpbiBtZW1vcnkg
d2hpY2ggbmVlZCBub3QKKyAgICAgKiAgICAgICAgICAgICBiZSBtYWxsb2NlZCAoZS5nLiBpdCBt
YXkgYmUgYSBtZW1vcnktbWFwcGVkIGZpbGUsIGV0Yy4pLgorICAgICAqCisgICAgICogICAgICAg
ICAgICAgVGhpcyB2ZXJzaW9uIGRvZXMgbm90IGFkb3B0IHRoZSBtZW1vcnksIGFuZCBkb2VzIG5v
dAorICAgICAqICAgICAgICAgICAgIGZyZWUgaXQgd2hlbiBkb25lLgorICAgICAqIEBpbnRlcm5h
bAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoY29uc3QgUkJCSURhdGFIZWFk
ZXIqIGRhdGEsIGVudW0gRURvbnRBZG9wdCBkb250QWRvcHQsIFVFcnJvckNvZGUgJnN0YXR1cyk7
CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworCisgICAgZnJpZW5kIGNsYXNz
IFJCQklSdWxlQnVpbGRlcjsKKyAgICAvKiogQGludGVybmFsICovCisgICAgZnJpZW5kIGNsYXNz
IEJyZWFrSXRlcmF0b3I7CisKKworCitwdWJsaWM6CisKKyAgICAvKiogRGVmYXVsdCBjb25zdHJ1
Y3Rvci4gIENyZWF0ZXMgYW4gZW1wdHkgc2hlbGwgb2YgYW4gaXRlcmF0b3IsIHdpdGggbm8KKyAg
ICAgKiAgcnVsZXMgb3IgdGV4dCB0byBpdGVyYXRlIG92ZXIuICAgT2JqZWN0IGNhbiBzdWJzZXF1
ZW50bHkgYmUgYXNzaWduZWQgdG8uCisgICAgICogIEBzdGFibGUgSUNVIDIuMgorICAgICAqLwor
ICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAqIENvcHkgY29u
c3RydWN0b3IuICBXaWxsIHByb2R1Y2UgYSBicmVhayBpdGVyYXRvciB3aXRoIHRoZSBzYW1lIGJl
aGF2aW9yLAorICAgICAqIGFuZCB3aGljaCBpdGVyYXRlcyBvdmVyIHRoZSBzYW1lIHRleHQsIGFz
IHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBSdWxlQmFzZWRCcmVh
a0l0ZXJhdG9yIHBhc3NlZCB0byBiZSBjb3BpZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGNvbnN0IFJ1bGVCYXNlZEJyZWFrSXRl
cmF0b3ImIHRoYXQpOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvciBmcm9tIGEgc2V0IG9mIHJ1bGVzIHN1cHBsaWVkIGFzIGEgc3RyaW5nLgorICAg
ICAqIEBwYXJhbSBydWxlcyBUaGUgYnJlYWsgcnVsZXMgdG8gYmUgdXNlZC4KKyAgICAgKiBAcGFy
YW0gcGFyc2VFcnJvciAgSW4gdGhlIGV2ZW50IG9mIGEgc3ludGF4IGVycm9yIGluIHRoZSBydWxl
cywgcHJvdmlkZXMgdGhlIGxvY2F0aW9uCisgICAgICogICAgICAgICAgICAgICAgICAgIHdpdGhp
biB0aGUgcnVsZXMgb2YgdGhlIHByb2JsZW0uCisgICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1h
dGlvbiBvbiBhbnkgZXJyb3JzIGVuY291bnRlcmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMgor
ICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoIGNvbnN0IFVuaWNvZGVTdHJpbmcg
ICAgJnJ1bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUGFyc2VFcnJvciAgICAg
ICAgICAgJnBhcnNlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNv
ZGUgICAgICAgICAgICAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENvbnRydWN0IGEgUnVs
ZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEgc2V0IG9mIHByZWNvbXBpbGVkIGJpbmFyeSBydWxl
cy4KKyAgICAgKiBCaW5hcnkgcnVsZXMgYXJlIG9idGFpbmVkIGZyb20gUnVsZXNCYXNlZEJyZWFr
SXRlcmF0b3I6OmdldEJpbmFyeVJ1bGVzKCkuCisgICAgICogQ29uc3RydWN0aW9uIG9mIGEgYnJl
YWsgaXRlcmF0b3IgaW4gdGhpcyB3YXkgaXMgc3Vic3RhbnRpYWxseSBmYXN0ZXIgdGhhbgorICAg
ICAqIGNvbnN0dWN0aW9uIGZyb20gc291cmNlIHJ1bGVzLgorICAgICAqCisgICAgICogT3duZXJz
aGlwIG9mIHRoZSBzdG9yYWdlIGNvbnRhaW5pbmcgdGhlIGNvbXBpbGVkIHJ1bGVzIHJlbWFpbnMg
d2l0aCB0aGUKKyAgICAgKiBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbi4gIFRoZSBjb21waWxlZCBy
dWxlcyBtdXN0IG5vdCBiZSAgbW9kaWZpZWQgb3IgCisgICAgICogZGVsZXRlZCBkdXJpbmcgdGhl
IGxpZmUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogVGhlIGNvbXBpbGVk
IHJ1bGVzIGFyZSBub3QgY29tcGF0aWJsZSBhY3Jvc3MgZGlmZmVyZW50IG1ham9yIHZlcnNpb25z
IG9mIElDVS4KKyAgICAgKiBUaGUgY29tcGlsZWQgcnVsZXMgYXJlIGNvbWFwdGlibGUgb25seSBi
ZXR3ZWVuIG1hY2hpbmVzIHdpdGggdGhlIHNhbWUKKyAgICAgKiBieXRlIG9yZGVyaW5nIChsaXR0
bGUgb3IgYmlnIGVuZGlhbikgYW5kIHRoZSBzYW1lIGJhc2UgY2hhcmFjdGVyIHNldCBmYW1pbHkK
KyAgICAgKiAoQVNDSUkgb3IgRUJDRElDKS4KKyAgICAgKgorICAgICAqIEBzZWUgI2dldEJpbmFy
eVJ1bGVzCisgICAgICogQHBhcmFtIGNvbXBpbGVkUnVsZXMgQSBwb2ludGVyIHRvIHRoZSBjb21w
aWxlZCBicmVhayBydWxlcyB0byBiZSB1c2VkLgorICAgICAqIEBwYXJhbSBydWxlTGVuZ3RoIFRo
ZSBsZW5ndGggb2YgdGhlIGNvbXBpbGVkIGJyZWFrIHJ1bGVzLCBpbiBieXRlcy4gIFRoaXMKKyAg
ICAgKiAgIGNvcnJlc3BvbmRzIHRvIHRoZSBsZW5ndGggdmFsdWUgcHJvZHVjZWQgYnkgZ2V0Qmlu
YXJ5UnVsZXMoKS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIEluZm9ybWF0aW9uIG9uIGFueSBlcnJv
cnMgZW5jb3VudGVyZWQsIGluY2x1ZGluZyBpbnZhbGlkCisgICAgICogICBiaW5hcnkgcnVsZXMu
CisgICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVy
YXRvcihjb25zdCB1aW50OF90ICpjb21waWxlZFJ1bGVzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludDMyX3QgICAgICAgcnVsZUxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFVFcnJvckNvZGUgICAgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGNvbnN0
cnVjdG9yIHVzZXMgdGhlIHVkYXRhIGludGVyZmFjZSB0byBjcmVhdGUgYSBCcmVha0l0ZXJhdG9y
CisgICAgICogd2hvc2UgaW50ZXJuYWwgdGFibGVzIGxpdmUgaW4gYSBtZW1vcnktbWFwcGVkIGZp
bGUuICAiaW1hZ2UiIGlzIGFuCisgICAgICogSUNVIFVEYXRhTWVtb3J5IGhhbmRsZSBmb3IgdGhl
IHByZS1jb21waWxlZCBicmVhayBpdGVyYXRvciB0YWJsZXMuCisgICAgICogQHBhcmFtIGltYWdl
IGhhbmRsZSB0byB0aGUgbWVtb3J5IGltYWdlIGZvciB0aGUgYnJlYWsgaXRlcmF0b3IgZGF0YS4K
KyAgICAgKiAgICAgICAgT3duZXJzaGlwIG9mIHRoZSBVRGF0YU1lbW9yeSBoYW5kbGUgcGFzc2Vz
IHRvIHRoZSBCcmVhayBJdGVyYXRvciwKKyAgICAgKiAgICAgICAgd2hpY2ggd2lsbCBiZSByZXNw
b25zaWJsZSBmb3IgY2xvc2luZyBpdCB3aGVuIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuCisgICAg
ICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkgZXJyb3JzIGVuY291bnRlcmVkLgor
ICAgICAqIEBzZWUgdWRhdGFfb3BlbgorICAgICAqIEBzZWUgI2dldEJpbmFyeVJ1bGVzCisgICAg
ICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihV
RGF0YU1lbW9yeSogaW1hZ2UsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAg
KiBEZXN0cnVjdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgflJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAqIEFzc2lnbm1l
bnQgb3BlcmF0b3IuICBTZXRzIHRoaXMgaXRlcmF0b3IgdG8gaGF2ZSB0aGUgc2FtZSBiZWhhdmlv
ciwKKyAgICAgKiBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHRleHQsIGFzIHRoZSBvbmUgcGFz
c2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBSdWxlQmFzZWRCcmVha0l0ZXJ0b3IgcGFz
c2VkIGluCisgICAgICogQHJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFJ1bGVCYXNlZEJy
ZWFrSXRlcmF0b3ImIG9wZXJhdG9yPShjb25zdCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yJiB0aGF0
KTsKKworICAgIC8qKgorICAgICAqIEVxdWFsaXR5IG9wZXJhdG9yLiAgUmV0dXJucyBUUlVFIGlm
IGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG9mIHRoZQorICAgICAqIHNhbWUgY2xhc3MsIGhhdmUg
dGhlIHNhbWUgYmVoYXZpb3IsIGFuZCBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgdGV4dC4KKyAgICAg
KiBAcGFyYW0gdGhhdCBUaGUgQnJlYWtJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxp
dHkKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhl
CisgICAgICogc2FtZSBjbGFzcywgaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwgYW5kIGl0ZXJhdGUg
b3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29uc3QgQnJlYWtJdGVyYXRvciYgdGhhdCkgY29u
c3Q7CisKKyAgICAvKioKKyAgICAgKiBOb3QtZXF1YWwgb3BlcmF0b3IuICBJZiBvcGVyYXRvcj09
IHJldHVybnMgVFJVRSwgdGhpcyByZXR1cm5zIEZBTFNFLAorICAgICAqIGFuZCB2aWNlIHZlcnNh
LgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZv
ciBpbmVxdWFsaXR5CisgICAgICogQHJldHVybiBUUlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMg
YXJlIG5vdCBzYW1lLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9v
bCBvcGVyYXRvciE9KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHRoYXQpIGNvbnN0OworCisgICAgLyoq
CisgICAgICogUmV0dXJucyBhIG5ld2x5LWNvbnN0cnVjdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3Igd2l0aCB0aGUgc2FtZQorICAgICAqIGJlaGF2aW9yLCBhbmQgaXRlcmF0aW5nIG92ZXIgdGhl
IHNhbWUgdGV4dCwgYXMgdGhpcyBvbmUuCisgICAgICogRGlmZmVycyBmcm9tIHRoZSBjb3B5IGNv
bnN0cnVjdG9yIGluIHRoYXQgaXQgaXMgcG9seW1vcnBoaWMsIGFuZAorICAgICAqIHdpbGwgY29y
cmVjdGx5IGNsb25lIChjb3B5KSBhIGRlcml2ZWQgY2xhc3MuCisgICAgICogY2xvbmUoKSBpcyB0
aHJlYWQgc2FmZS4gIE11bHRpcGxlIHRocmVhZHMgbWF5IHNpbXVsdGFlbmVvdXNseQorICAgICAq
IGNsb25lIHRoZSBzYW1lIHNvdXJjZSBicmVhayBpdGVyYXRvci4KKyAgICAgKiBAcmV0dXJuIGEg
bmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciogY2xvbmUoKSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIENvbXB1dGUgYSBoYXNoIGNvZGUgZm9yIHRoaXMgQnJlYWtJ
dGVyYXRvcgorICAgICAqIEByZXR1cm4gQSBoYXNoIGNvZGUKKyAgICAgKiAgQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGhhc2hDb2RlKHZvaWQpIGNvbnN0Owor
CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZGVzY3JpcHRpb24gdXNlZCB0byBjcmVhdGUg
dGhpcyBpdGVyYXRvcgorICAgICAqIEByZXR1cm4gdGhlIGRlc2NyaXB0aW9uIHVzZWQgdG8gY3Jl
YXRlIHRoaXMgaXRlcmF0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBjb25zdCBVbmljb2RlU3RyaW5nJiBnZXRSdWxlcyh2b2lkKSBjb25zdDsKKworICAg
IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKyAgICAvLyBCcmVha0l0ZXJhdG9yIG92ZXJyaWRlcworICAgIC8v
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFJldHVybiBhIENo
YXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogVGhl
IHJldHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBpcyBvd25lZCBieSB0aGUgYnJlYWsgaXRlcmF0
b3IsIGFuZCBtdXN0CisgICAgICogbm90IGJlIGRlbGV0ZWQgYnkgdGhlIGNhbGxlci4gIFJlcGVh
dGVkIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gbWF5CisgICAgICogcmV0dXJuIHRoZSBzYW1lIENo
YXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgcmV0
dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIG11c3Qgbm90IGJlIHVzZWQgY29uY3VycmVudGx5IHdp
dGgKKyAgICAgKiB0aGUgYnJlYWsgaXRlcmF0b3IuICBJZiBjb25jdXJyZW50IG9wZXJhdGlvbiBp
cyBuZWVkZWQsIGNsb25lIHRoZQorICAgICAqIHJldHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBm
aXJzdCBhbmQgb3BlcmF0ZSBvbiB0aGUgY2xvbmUuCisgICAgICogPC9wPgorICAgICAqIDxwPgor
ICAgICAqIFdoZW4gdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9wZXJhdGluZyBvbiB0ZXh0IHN1cHBs
aWVkIHZpYSBhIFVUZXh0LAorICAgICAqIHRoaXMgZnVuY3Rpb24gd2lsbCBmYWlsLiAgTGFja2lu
ZyBhbnkgd2F5IHRvIHNpZ25hbCBmYWlsdXJlcywgaXQKKyAgICAgKiByZXR1cm5zIGFuIENoYXJh
Y3Rlckl0ZXJhdG9yIGNvbnRhaW5pbmcgbm8gdGV4dC4KKyAgICAgKiBUaGUgZnVuY3Rpb24gZ2V0
VVRleHQoKSBwcm92aWRlcyBzaW1pbGFyIGZ1bmN0aW9uYWxpdHksCisgICAgICogaXMgcmVsaWFi
bGUsIGFuZCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBU
T0RPOiAgZGVwcmVjYXRlIHRoaXMgZnVuY3Rpb24/CisgICAgICoKKyAgICAgKiBAcmV0dXJuIEFu
IGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCAgQ2hhcmFjdGVySXRlcmF0b3ImIGdldFRleHQo
dm9pZCkgY29uc3Q7CisKKworICAgIC8qKgorICAgICAgKiAgR2V0IGEgVVRleHQgZm9yIHRoZSB0
ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAgKiAgVGhlIHJldHVybmVkIFVUZXh0IGlzIGEgc2hh
bGxvdyBjbG9uZSBvZiB0aGUgVVRleHQgdXNlZCBpbnRlcm5hbGx5CisgICAgICAqICBieSB0aGUg
YnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24uICBJdCBjYW4gc2FmZWx5IGJlIHVzZWQgdG8K
KyAgICAgICogIGFjY2VzcyB0aGUgdGV4dCB3aXRob3V0IGltcGFjdGluZyBhbnkgYnJlYWsgaXRl
cmF0b3Igb3BlcmF0aW9ucywKKyAgICAgICogIGJ1dCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2Vs
ZiBtdXN0IG5vdCBiZSBhbHRlcmVkLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gZmlsbEluIEEg
VVRleHQgdG8gYmUgZmlsbGVkIGluLiAgSWYgTlVMTCwgYSBuZXcgVVRleHQgd2lsbCBiZQorICAg
ICAgKiAgICAgICAgICAgYWxsb2NhdGVkIHRvIGhvbGQgdGhlIHJlc3VsdC4KKyAgICAgICogQHBh
cmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMuCisgICAgICAqIEByZXR1cm4gICBU
aGUgY3VycmVudCBVVGV4dCBmb3IgdGhpcyBicmVhayBpdGVyYXRvci4gIElmIGFuIGlucHV0Cisg
ICAgICAqICAgICAgICAgICBVVGV4dCB3YXMgcHJvdmlkZWQsIGl0IHdpbGwgYWx3YXlzIGJlIHJl
dHVybmVkLgorICAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAgICovCisgICAgIHZpcnR1YWwg
VVRleHQgKmdldFVUZXh0KFVUZXh0ICpmaWxsSW4sIFVFcnJvckNvZGUgJnN0YXR1cykgY29uc3Q7
CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHRvIGFuYWx5emUgYSBuZXcgcGll
Y2Ugb2YgdGV4dC4gIFRoaXMgZnVuY3Rpb24gcmVzZXRzCisgICAgICogdGhlIGN1cnJlbnQgaXRl
cmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogQHBh
cmFtIG5ld1RleHQgQW4gaXRlcmF0b3Igb3ZlciB0aGUgdGV4dCB0byBhbmFseXplLiAgVGhlIEJy
ZWFrSXRlcmF0b3IKKyAgICAgKiB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGNoYXJhY3RlciBpdGVy
YXRvci4gIFRoZSBjYWxsZXIgTVVTVCBOT1QgZGVsZXRlIGl0IQorICAgICAqICBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgYWRvcHRUZXh0KENoYXJhY3Rlckl0ZXJh
dG9yKiBuZXdUZXh0KTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgdG8gYW5h
bHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhpcyBmdW5jdGlvbiByZXNldHMKKyAgICAgKiB0
aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4
dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUgdGV4dCB0byBhbmFseXplLgorICAgICAqICBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dChjb25zdCBV
bmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBicmVh
ayBpdGVyYXRvciB0byBvcGVyYXRlIG92ZXIgdGhlIHRleHQgcmVwcmVzZW50ZWQgYnkKKyAgICAg
KiB0aGUgVVRleHQuICBUaGUgaXRlcmF0b3IgcG9zaXRpb24gaXMgcmVzZXQgdG8gdGhlIHN0YXJ0
LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtYWtlcyBhIHNoYWxsb3cgY2xvbmUgb2Yg
dGhlIHN1cHBsaWVkIFVUZXh0LiAgVGhpcyBtZWFucworICAgICAqIHRoYXQgdGhlIGNhbGxlciBp
cyBmcmVlIHRvIGltbWVkaWF0ZWx5IGNsb3NlIG9yIG90aGVyd2lzZSByZXVzZSB0aGUKKyAgICAg
KiBVdGV4dCB0aGF0IHdhcyBwYXNzZWQgYXMgYSBwYXJhbWV0ZXIsIGJ1dCB0aGF0IHRoZSB1bmRl
cmx5aW5nIHRleHQgaXRzZWxmCisgICAgICogbXVzdCBub3QgYmUgYWx0ZXJlZCB3aGlsZSBiZWlu
ZyByZWZlcmVuY2VkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIEBwYXJh
bSB0ZXh0ICAgIFRoZSBVVGV4dCB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAcGFy
YW0gc3RhdHVzICBSZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMuCisgICAgICogQHN0YWJsZSBJQ1Ug
My40CisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBzZXRUZXh0KFVUZXh0ICp0ZXh0LCBVRXJy
b3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVy
YXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgcG9zaXRpb24gemVy
by4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZzZXQgb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4
dCwgemVyby4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBp
bnQzMl90IGZpcnN0KHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBp
dGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGVuZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJu
IFRoZSB0ZXh0J3MgcGFzdC10aGUtZW5kIG9mZnNldC4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGxhc3Qodm9pZCk7CisKKyAgICAvKioKKyAg
ICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgZWl0aGVyIGZvcndhcmQgb3IgYmFja3dhcmQgdGhl
IHNwZWNpZmllZCBudW1iZXIgb2Ygc3RlcHMuCisgICAgICogTmVnYXRpdmUgdmFsdWVzIG1vdmUg
YmFja3dhcmQsIGFuZCBwb3NpdGl2ZSB2YWx1ZXMgbW92ZSBmb3J3YXJkLiAgVGhpcyBpcworICAg
ICAqIGVxdWl2YWxlbnQgdG8gcmVwZWF0ZWRseSBjYWxsaW5nIG5leHQoKSBvciBwcmV2aW91cygp
LgorICAgICAqIEBwYXJhbSBuIFRoZSBudW1iZXIgb2Ygc3RlcHMgdG8gbW92ZS4gIFRoZSBzaWdu
IGluZGljYXRlcyB0aGUgZGlyZWN0aW9uCisgICAgICogKG5lZ2F0aXZlIGlzIGJhY2t3YXJkcywg
YW5kIHBvc2l0aXZlIGlzIGZvcndhcmRzKS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIg
b2Zmc2V0IG9mIHRoZSBib3VuZGFyeSBwb3NpdGlvbiBuIGJvdW5kYXJpZXMgYXdheSBmcm9tCisg
ICAgICogdGhlIGN1cnJlbnQgb25lLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dChpbnQzMl90IG4pOworCisgICAgLyoqCisgICAgICog
QWR2YW5jZXMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBuZXh0IGJvdW5kYXJ5IHBvc2l0aW9uLgorICAg
ICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBib3VuZGFyeSBhZnRlciB0aGlz
IG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQz
Ml90IG5leHQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgaXRlcmF0b3IgYmFj
a3dhcmRzLCB0byB0aGUgbGFzdCBib3VuZGFyeSBwcmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICog
QHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gcHJlY2Vk
aW5nIHRoaXMgb25lLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIGludDMyX3QgcHJldmlvdXModm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBp
dGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5n
CisgICAgICogdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRo
ZSBwb3NpdGlvbiBmcm9tIHdoaWNoIHRvIGJlZ2luIHNlYXJjaGluZyBmb3IgYSBicmVhayBwb3Np
dGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYnJlYWsgYWZ0
ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgaW50MzJfdCBmb2xsb3dpbmcoaW50MzJfdCBvZmZzZXQpOworCisgICAg
LyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgYm91bmRh
cnkgcG9zaXRpb24gYmVmb3JlIHRoZQorICAgICAqIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAg
KiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiB0byBiZWdpbiBzZWFyY2hpbmcgZm9yIGEgYnJl
YWsgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFy
eSBiZWZvcmUgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJlY2VkaW5nKGludDMyX3Qgb2Zmc2V0KTsK
KworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2ZpZWQgcG9zaXRpb24g
aXMgYSBib3VuZGFyeSBwb3NpdGlvbi4gIEFzIGEgc2lkZQorICAgICAqIGVmZmVjdCwgbGVhdmVz
IHRoZSBpdGVyYXRvciBwb2ludGluZyB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gYXQK
KyAgICAgKiBvciBhZnRlciAib2Zmc2V0Ii4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZz
ZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBUcnVlIGlmICJvZmZzZXQiIGlzIGEgYm91bmRh
cnkgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgVUJvb2wgaXNCb3VuZGFyeShpbnQzMl90IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBS
ZXR1cm5zIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRo
ZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgY3VycmVudCh2b2lkKSBjb25zdDsKKworCisgICAg
LyoqCisgICAgICogUmV0dXJuIHRoZSBzdGF0dXMgdGFnIGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhh
dCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9z
aXRpb24uICBGb3IgYnJlYWsgcnVsZXMgdGhhdCBkbyBub3Qgc3BlY2lmeSBhCisgICAgICogc3Rh
dHVzLCBhIGRlZmF1bHQgdmFsdWUgb2YgMCBpcyByZXR1cm5lZC4gIElmIG1vcmUgdGhhbiBvbmUg
YnJlYWsgcnVsZQorICAgICAqIHdvdWxkIGNhdXNlIGEgYm91bmRhcnkgdG8gYmUgbG9jYXRlZCBh
dCBzb21lIHBvc2l0aW9uIGluIHRoZSB0ZXh0LAorICAgICAqIHRoZSBudW1lcmljYWxseSBsYXJn
ZXN0IG9mIHRoZSBhcHBsaWNhYmxlIHN0YXR1cyB2YWx1ZXMgaXMgcmV0dXJuZWQuCisgICAgICog
PHA+CisgICAgICogT2YgdGhlIHN0YW5kYXJkIHR5cGVzIG9mIElDVSBicmVhayBpdGVyYXRvcnMs
IG9ubHkgd29yZCBicmVhayBhbmQKKyAgICAgKiBsaW5lIGJyZWFrIHByb3ZpZGUgc3RhdHVzIHZh
bHVlcy4gIFRoZSB2YWx1ZXMgYXJlIGRlZmluZWQgaW4KKyAgICAgKiB0aGUgaGVhZGVyIGZpbGUg
dWJyay5oLiAgRm9yIFdvcmQgYnJlYWtzLCB0aGUgc3RhdHVzIGFsbG93cyBkaXN0aW5ndWlzaGlu
ZyBiZXR3ZWVuIHdvcmRzCisgICAgICogdGhhdCBjb250YWluIGFscGhhYmV0aWMgbGV0dGVycywg
IndvcmRzIiB0aGF0IGFwcGVhciB0byBiZSBudW1iZXJzLAorICAgICAqIHB1bmN0dWF0aW9uIGFu
ZCBzcGFjZXMsIHdvcmRzIGNvbnRhaW5pbmcgaWRlb2dyYXBoaWMgY2hhcmFjdGVycywgYW5kCisg
ICAgICogbW9yZS4gIEZvciBMaW5lIEJyZWFrLCB0aGUgc3RhdHVzIGRpc3Rpbmd1aXNoZXMgYmV0
d2VlbiBoYXJkIChtYW5kYXRvcnkpIGJyZWFrcworICAgICAqIGFuZCBzb2Z0IChwb3RlbnRpYWwp
IGJyZWFrIHBvc2l0aW9ucy4KKyAgICAgKiA8cD4KKyAgICAgKiA8Y29kZT5nZXRSdWxlU3RhdHVz
KCk8L2NvZGU+IGNhbiBiZSBjYWxsZWQgYWZ0ZXIgb2J0YWluaW5nIGEgYm91bmRhcnkKKyAgICAg
KiBwb3NpdGlvbiBmcm9tIDxjb2RlPm5leHQoKTwvY29kZT4sIDxjb2RlPnByZXZpb3VzKCk8L2Nv
ZGU+LCBvcgorICAgICAqIGFueSBvdGhlciBicmVhayBpdGVyYXRvciBmdW5jdGlvbnMgdGhhdCBy
ZXR1cm5zIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogPHA+CisgICAgICogV2hlbiBjcmVh
dGluZyBjdXN0b20gYnJlYWsgcnVsZXMsIG9uZSBpcyBmcmVlIHRvIGRlZmluZSB3aGF0ZXZlcgor
ICAgICAqIHN0YXR1cyB2YWx1ZXMgbWF5IGJlIGNvbnZlbmllbnQgZm9yIHRoZSBhcHBsaWNhdGlv
bi4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlOiB0aGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQg
c2FmZS4gIEl0IHNob3VsZCBub3QgaGF2ZSBiZWVuCisgICAgICogICAgICAgZGVjbGFyZWQgY29u
c3QsIGFuZCB0aGUgY29uc3QgcmVtYWlucyBvbmx5IGZvciBjb21wYXRpYmlsaXR5CisgICAgICog
ICAgICAgcmVhc29ucy4gIChUaGUgZnVuY3Rpb24gaXMgbG9naWNhbGx5IGNvbnN0LCBidXQgbm90
IGJpdC13aXNlIGNvbnN0KS4KKyAgICAgKiA8cD4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGF0dXMg
ZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAg
ICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAgKgorICAgICAqIEBzZWUgVVdvcmRC
cmVhaworICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJf
dCBnZXRSdWxlU3RhdHVzKCkgY29uc3Q7CisKKyAgIC8qKgorICAgICogR2V0IHRoZSBzdGF0dXMg
KHRhZykgdmFsdWVzIGZyb20gdGhlIGJyZWFrIHJ1bGUocykgdGhhdCBkZXRlcm1pbmVkIHRoZSBt
b3N0CisgICAgKiByZWNlbnRseSByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAqIDxwPgor
ICAgICogVGhlIHJldHVybmVkIHN0YXR1cyB2YWx1ZShzKSBhcmUgc3RvcmVkIGludG8gYW4gYXJy
YXkgcHJvdmlkZWQgYnkgdGhlIGNhbGxlci4KKyAgICAqIFRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBp
biBzb3J0ZWQgKGFzY2VuZGluZykgb3JkZXIuCisgICAgKiBJZiB0aGUgY2FwYWNpdHkgb2YgdGhl
IG91dHB1dCBhcnJheSBpcyBpbnN1ZmZpY2llbnQgdG8gaG9sZCB0aGUgZGF0YSwKKyAgICAqICB0
aGUgb3V0cHV0IHdpbGwgYmUgdHJ1bmNhdGVkIHRvIHRoZSBhdmFpbGFibGUgbGVuZ3RoLCBhbmQg
YQorICAgICogIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SIHdpbGwgYmUgc2lnbmFsZWQuCisgICAg
KgorICAgICogQHBhcmFtIGZpbGxJblZlYyBhbiBhcnJheSB0byBiZSBmaWxsZWQgaW4gd2l0aCB0
aGUgc3RhdHVzIHZhbHVlcy4KKyAgICAqIEBwYXJhbSBjYXBhY2l0eSAgdGhlIGxlbmd0aCBvZiB0
aGUgc3VwcGxpZWQgdmVjdG9yLiAgQSBsZW5ndGggb2YgemVybyBjYXVzZXMKKyAgICAqICAgICAg
ICAgICAgICAgICAgdGhlIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXR1cyB2
YWx1ZXMsIGluIHRoZQorICAgICogICAgICAgICAgICAgICAgICBub3JtYWwgd2F5LCB3aXRob3V0
IGF0dGVtdHBpbmcgdG8gc3RvcmUgYW55IHZhbHVlcy4KKyAgICAqIEBwYXJhbSBzdGF0dXMgICAg
cmVjZWl2ZXMgZXJyb3IgY29kZXMuCisgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBudW1iZXIg
b2YgcnVsZSBzdGF0dXMgdmFsdWVzIGZyb20gcnVsZXMgdGhhdCBkZXRlcm1pbmVkCisgICAgKiAg
ICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJlY2VudCBib3VuZGFyeSByZXR1cm5lZCBieSB0aGUg
YnJlYWsgaXRlcmF0b3IuCisgICAgKiAgICAgICAgICAgICAgICAgIEluIHRoZSBldmVudCBvZiBh
IFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SLCB0aGUgcmV0dXJuIHZhbHVlCisgICAgKiAgICAgICAg
ICAgICAgICAgIGlzIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcyB0aGF0IHdlcmUg
YXZhaWxhYmxlLAorICAgICogICAgICAgICAgICAgICAgICBub3QgdGhlIHJlZHVjZWQgbnVtYmVy
IHRoYXQgd2VyZSBhY3R1YWxseSByZXR1cm5lZC4KKyAgICAqIEBzZWUgZ2V0UnVsZVN0YXR1cwor
ICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVs
ZVN0YXR1c1ZlYyhpbnQzMl90ICpmaWxsSW5WZWMsIGludDMyX3QgY2FwYWNpdHksIFVFcnJvckNv
ZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdW5pcXVlIGNsYXNzIElE
IFBPTFlNT1JQSElDQUxMWS4gIFB1cmUgdmlydHVhbCBvdmVycmlkZS4KKyAgICAgKiBUaGlzIG1l
dGhvZCBpcyB0byBpbXBsZW1lbnQgYSBzaW1wbGUgdmVyc2lvbiBvZiBSVFRJLCBzaW5jZSBub3Qg
YWxsCisgICAgICogQysrIGNvbXBpbGVycyBzdXBwb3J0IGdlbnVpbmUgUlRUSS4gIFBvbHltb3Jw
aGljIG9wZXJhdG9yPT0oKSBhbmQKKyAgICAgKiBjbG9uZSgpIG1ldGhvZHMgY2FsbCB0aGlzIG1l
dGhvZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIGNsYXNzIElEIGZvciB0
aGlzIG9iamVjdC4gQWxsIG9iamVjdHMgb2YgYQorICAgICAqICAgICAgICAgICAgICAgICAgZ2l2
ZW4gY2xhc3MgaGF2ZSB0aGUgc2FtZSBjbGFzcyBJRC4gIE9iamVjdHMgb2YKKyAgICAgKiAgICAg
ICAgICAgICAgICAgIG90aGVyIGNsYXNzZXMgaGF2ZSBkaWZmZXJlbnQgY2xhc3MgSURzLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHlu
YW1pY0NsYXNzSUQodm9pZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBj
bGFzcyBJRCBmb3IgdGhpcyBjbGFzcy4gIFRoaXMgaXMgdXNlZnVsIG9ubHkgZm9yCisgICAgICog
Y29tcGFyaW5nIHRvIGEgcmV0dXJuIHZhbHVlIGZyb20gZ2V0RHluYW1pY0NsYXNzSUQoKS4gIEZv
ciBleGFtcGxlOgorICAgICAqCisgICAgICogICAgICBCYXNlKiBwb2x5bW9ycGhpY19wb2ludGVy
ID0gY3JlYXRlUG9seW1vcnBoaWNPYmplY3QoKTsKKyAgICAgKiAgICAgIGlmIChwb2x5bW9ycGhp
Y19wb2ludGVyLT5nZXREeW5hbWljQ2xhc3NJRCgpID09CisgICAgICogICAgICAgICAgRGVyaXZl
ZDo6Z2V0U3RhdGljQ2xhc3NJRCgpKSAuLi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICAg
ICAgVGhlIGNsYXNzIElEIGZvciBhbGwgb2JqZWN0cyBvZiB0aGlzIGNsYXNzLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBVQ2xhc3NJRCBVX0VYUE9SVDIgZ2V0
U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIERlcHJlY2F0ZWQgZnVuY3Rp
b25hbGl0eS4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIENyZWF0ZSBhIGNs
b25lIChjb3B5KSBvZiB0aGlzIGJyZWFrIGl0ZXJhdG9yIGluIG1lbW9yeSBwcm92aWRlZAorICAg
ICAqICBieSB0aGUgY2FsbGVyLiAgVGhlIGlkZWEgaXMgdG8gaW5jcmVhc2UgcGVyZm9ybWFuY2Ug
YnkgYXZvaWRpbmcKKyAgICAgKiAgYSBzdG9yYWdlIGFsbG9jYXRpb24uICBVc2Ugb2YgdGhpcyBm
dW5jdG9pbiBpcyBOT1QgUkVDT01NRU5ERUQuCisgICAgICogIFBlcmZvcm1hbmNlIGdhaW5zIGFy
ZSBtaW5pbWFsLCBhbmQgY29ycmVjdCBidWZmZXIgbWFuYWdlbWVudCBpcworICAgICAqICB0cmlj
a3kuICBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YWNrQnVm
ZmVyICBUaGUgcG9pbnRlciB0byB0aGUgbWVtb3J5IGludG8gd2hpY2ggdGhlIGNsb25lZCBvYmpl
Y3QKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHNob3VsZCBiZSBwbGFjZWQuICBJZiBOVUxM
LCAgYWxsb2NhdGUgaGVhcCBtZW1vcnkKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGZvciB0
aGUgY2xvbmVkIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gQnVmZmVyU2l6ZSAgIFRoZSBzaXplIG9m
IHRoZSBidWZmZXIuICBJZiB6ZXJvLCByZXR1cm4gdGhlIHJlcXVpcmVkCisgICAgICogICAgICAg
ICAgICAgICAgICAgICBidWZmZXIgc2l6ZSwgYnV0IGRvIG5vdCBjbG9uZSB0aGUgb2JqZWN0LiAg
SWYgdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICBzaXplIHdhcyB0b28gc21hbGwgKGJ1
dCBub3QgemVybyksIGFsbG9jYXRlIGhlYXAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHN0
b3JhZ2UgZm9yIHRoZSBjbG9uZWQgb2JqZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXR1
cyAgICAgICBFcnJvciBzdGF0dXMuICBVX1NBRkVDTE9ORV9BTExPQ0FURURfV0FSTklORyB3aWxs
IGJlCisgICAgICogICAgICAgICAgICAgICAgICAgICByZXR1cm5lZCBpZiB0aGUgdGhlIHByb3Zp
ZGVkIGJ1ZmZlciB3YXMgdG9vIHNtYWxsLCBhbmQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAg
IHRoZSBjbG9uZSB3YXMgdGhlcmVmb3JlIHB1dCBvbiB0aGUgaGVhcC4KKyAgICAgKgorICAgICAq
IEByZXR1cm4gIFBvaW50ZXIgdG8gdGhlIGNsb25lIG9iamVjdC4gIFRoaXMgbWF5IGRpZmZlciBm
cm9tIHRoZSBzdGFja0J1ZmZlcgorICAgICAqICAgICAgICAgIGFkZHJlc3MgaWYgdGhlIGJ5dGUg
YWxpZ25tZW50IG9mIHRoZSBzdGFjayBidWZmZXIgd2FzIG5vdCBzdWl0YWJsZQorICAgICAqICAg
ICAgICAgIG9yIGlmIHRoZSBzdGFja0J1ZmZlciB3YXMgdG9vIHNtYWxsIHRvIGhvbGQgdGhlIGNs
b25lLgorICAgICAqIEBkZXByZWNhdGVkIElDVSA1Mi4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IgKiAgY3JlYXRlQnVmZmVyQ2xvbmUodm9p
ZCAqc3RhY2tCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludDMyX3QgJkJ1ZmZlclNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKworICAgIC8qKgorICAg
ICAqIFJldHVybiB0aGUgYmluYXJ5IGZvcm0gb2YgY29tcGlsZWQgYnJlYWsgcnVsZXMsCisgICAg
ICogd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCB0byBjcmVhdGUgYSBuZXcgYnJlYWsgaXRlcmF0b3Ig
YXQgc29tZQorICAgICAqIHRpbWUgaW4gdGhlIGZ1dHVyZS4gIENyZWF0aW5nIGEgYnJlYWsgaXRl
cmF0b3IgZnJvbSBwcmUtY29tcGlsZWQgcnVsZXMKKyAgICAgKiBpcyBtdWNoIGZhc3RlciB0aGFu
IGJ1aWxkaW5nIG9uZSBmcm9tIHRoZSBzb3VyY2UgZm9ybSBvZiB0aGUKKyAgICAgKiBicmVhayBy
dWxlcy4KKyAgICAgKgorICAgICAqIFRoZSBiaW5hcnkgZGF0YSBjYW4gb25seSBiZSB1c2VkIHdp
dGggdGhlIHNhbWUgdmVyc2lvbiBvZiBJQ1UKKyAgICAgKiAgYW5kIG9uIHRoZSBzYW1lIHBsYXRm
b3JtIHR5cGUgKHByb2Nlc3NvciBlbmRpYW4tbmVzcykKKyAgICAgKgorICAgICAqIEBwYXJhbSBs
ZW5ndGggUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBiaW5hcnkgZGF0YS4gIChPdXQgcGFyYW10
ZXIuKQorICAgICAqCisgICAgICogQHJldHVybiAgIEEgcG9pbnRlciB0byB0aGUgYmluYXJ5IChj
b21waWxlZCkgcnVsZSBkYXRhLiAgVGhlIHN0b3JhZ2UKKyAgICAgKiAgICAgICAgICAgYmVsb25n
cyB0byB0aGUgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3Igb2JqZWN0LCBub3QgdGhlCisgICAgICog
ICAgICAgICAgIGNhbGxlciwgYW5kIG11c3Qgbm90IGJlIG1vZGlmaWVkIG9yIGRlbGV0ZWQuCisg
ICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgICovCisgICAgdmlydHVhbCBjb25zdCB1aW50OF90
ICpnZXRCaW5hcnlSdWxlcyh1aW50MzJfdCAmbGVuZ3RoKTsKKworICAgIC8qKgorICAgICAqICBT
ZXQgdGhlIHN1YmplY3QgdGV4dCBzdHJpbmcgdXBvbiB3aGljaCB0aGUgYnJlYWsgaXRlcmF0b3Ig
aXMgb3BlcmF0aW5nCisgICAgICogIHdpdGhvdXQgY2hhbmdpbmcgYW55IG90aGVyIGFzcGVjdCBv
ZiB0aGUgbWF0Y2hpbmcgc3RhdGUuCisgICAgICogIFRoZSBuZXcgYW5kIHByZXZpb3VzIHRleHQg
c3RyaW5ncyBtdXN0IGhhdmUgdGhlIHNhbWUgY29udGVudC4KKyAgICAgKgorICAgICAqICBUaGlz
IGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2UgaW4gZW52aXJvbm1lbnRzIHdoZXJlIElDVSBp
cyBvcGVyYXRpbmcgb24KKyAgICAgKiAgc3RyaW5ncyB0aGF0IG1heSBtb3ZlIGFyb3VuZCBpbiBt
ZW1vcnkuICBJdCBwcm92aWRlcyBhIG1lY2hhbmlzbSBmb3Igbm90aWZ5aW5nCisgICAgICogIElD
VSB0aGF0IHRoZSBzdHJpbmcgaGFzIGJlZW4gcmVsb2NhdGVkLCBhbmQgcHJvdmlkaW5nIGEgbmV3
IFVUZXh0IHRvIGFjY2VzcyB0aGUKKyAgICAgKiAgc3RyaW5nIGluIGl0cyBuZXcgcG9zaXRpb24u
CisgICAgICoKKyAgICAgKiAgTm90ZSB0aGF0IHRoZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRh
dGlvbiBuZXZlciBjb3BpZXMgdGhlIHVuZGVybHlpbmcgdGV4dAorICAgICAqICBvZiBhIHN0cmlu
ZyBiZWluZyBwcm9jZXNzZWQsIGJ1dCBhbHdheXMgb3BlcmF0ZXMgZGlyZWN0bHkgb24gdGhlIG9y
aWdpbmFsIHRleHQKKyAgICAgKiAgcHJvdmlkZWQgYnkgdGhlIHVzZXIuIFJlZnJlc2hpbmcgc2lt
cGx5IGRyb3BzIHRoZSByZWZlcmVuY2VzIHRvIHRoZSBvbGQgdGV4dAorICAgICAqICBhbmQgcmVw
bGFjZXMgdGhlbSB3aXRoIHJlZmVyZW5jZXMgdG8gdGhlIG5ldy4KKyAgICAgKgorICAgICAqICBD
YXV0aW9uOiAgdGhpcyBmdW5jdGlvbiBpcyBub3JtYWxseSB1c2VkIG9ubHkgYnkgdmVyeSBzcGVj
aWFsaXplZCwKKyAgICAgKiAgc3lzdGVtLWxldmVsIGNvZGUuICBPbmUgZXhhbXBsZSB1c2UgY2Fz
ZSBpcyB3aXRoIGdhcmJhZ2UgY29sbGVjdGlvbiB0aGF0IG1vdmVzCisgICAgICogIHRoZSB0ZXh0
IGluIG1lbW9yeS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnB1dCAgICAgIFRoZSBuZXcgKG1v
dmVkKSB0ZXh0IHN0cmluZy4KKyAgICAgKiBAcGFyYW0gc3RhdHVzICAgICBSZWNlaXZlcyBlcnJv
cnMgZGV0ZWN0ZWQgYnkgdGhpcyBmdW5jdGlvbi4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAq
dGhpcworICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgNDkKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgJnJlZnJlc2hJbnB1dFRleHQoVVRleHQgKmlucHV0LCBV
RXJyb3JDb2RlICZzdGF0dXMpOworCisKK3Byb3RlY3RlZDoKKyAgICAvLz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisgICAgLy8gaW1wbGVtZW50YXRpb24KKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLyoqCisg
ICAgICogRHVtcHMgY2FjaGVzIGFuZCBwZXJmb3JtcyBvdGhlciBhY3Rpb25zIGFzc29jaWF0ZWQg
d2l0aCBhIGNvbXBsZXRlIGNoYW5nZQorICAgICAqIGluIHRleHQgb3IgaXRlcmF0aW9uIHBvc2l0
aW9uLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCByZXNldCh2
b2lkKTsKKworI2lmIDAKKyAgICAvKioKKyAgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNhdGVn
b3J5IGxvb2t1cCBmb3IgdGhpcyBjaGFyCisgICAgICAqIGluZGljYXRlcyB0aGF0IGl0IGlzIGlu
IHRoZSBzZXQgb2YgZGljdGlvbmFyeSBsb29rdXAgY2hhcnMuCisgICAgICAqIFRoaXMgZnVuY3Rp
b24gaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBkaWN0aW9uYXJ5IGJhc2VkIGJyZWFrIGl0ZXJhdG9y
cy4KKyAgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBjYXRlZ29yeSBsb29rdXAgZm9yIHRoaXMg
Y2hhcgorICAgICAgKiBpbmRpY2F0ZXMgdGhhdCBpdCBpcyBpbiB0aGUgc2V0IG9mIGRpY3Rpb25h
cnkgbG9va3VwIGNoYXJzLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisgICAgdmlydHVh
bCBVQm9vbCBpc0RpY3Rpb25hcnlDaGFyKFVDaGFyMzIpOworCisgICAgLyoqCisgICAgICAqIEdl
dCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICAqIEBpbnRlcm5hbAorICAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0QnJlYWtUeXBlKCkgY29uc3Q7CisjZW5kaWYK
KworICAgIC8qKgorICAgICAgKiBTZXQgdGhlIHR5cGUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLgor
ICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisgICAgdmlydHVhbCB2b2lkIHNldEJyZWFrVHlw
ZShpbnQzMl90IHR5cGUpOworCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioK
KyAgICAgICogQ29tbW9uIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLCB1c2VkIGJ5IGNvbnN0cnVj
dG9ycyBhbmQgYnVmZmVyQ2xvbmUuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2
b2lkIGluaXQoKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCitwcml2YXRl
OgorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgYmFja3MgdGhlIGl0ZXJhdG9yIGJhY2sg
dXAgdG8gYSAic2FmZSBwb3NpdGlvbiIgaW4gdGhlIHRleHQuCisgICAgICogVGhpcyBpcyBhIHBv
c2l0aW9uIHRoYXQgd2Uga25vdywgd2l0aG91dCBhbnkgY29udGV4dCwgbXVzdCBiZSBhIGJyZWFr
IHBvc2l0aW9uLgorICAgICAqIFRoZSB2YXJpb3VzIGNhbGxpbmcgbWV0aG9kcyB0aGVuIGl0ZXJh
dGUgZm9yd2FyZCBmcm9tIHRoaXMgc2FmZSBwb3NpdGlvbiB0bworICAgICAqIHRoZSBhcHByb3By
aWF0ZSBwb3NpdGlvbiB0byByZXR1cm4uICAoRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUg
ZGVzY3JpcHRpb24KKyAgICAgKiBvZiBidWlsZEJhY2t3YXJkc1N0YXRlVGFibGUoKSBpbiBSdWxl
QmFzZWRCcmVha0l0ZXJhdG9yLkJ1aWxkZXIuKQorICAgICAqIEBwYXJhbSBzdGF0ZXRhYmxlIHN0
YXRlIHRhYmxlIHVzZWQgb2YgbW92aW5nIGJhY2t3YXJkcworICAgICAqIEBpbnRlcm5hbAorICAg
ICAqLworICAgIGludDMyX3QgaGFuZGxlUHJldmlvdXMoY29uc3QgUkJCSVN0YXRlVGFibGUgKnN0
YXRldGFibGUpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaXMgdGhlIGFjdHVhbCBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV4dCgpIG1ldGhvZC4gIEFsbCBpdGVyYXRpb24KKyAgICAg
KiB2ZWN0b3JzIHRocm91Z2ggaGVyZS4gIFRoaXMgbWV0aG9kIGluaXRpYWxpemVzIHRoZSBzdGF0
ZSBtYWNoaW5lIHRvIHN0YXRlIDEKKyAgICAgKiBhbmQgYWR2YW5jZXMgdGhyb3VnaCB0aGUgdGV4
dCBjaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIHVudGlsIHdlIHJlYWNoIHRoZSBlbmQKKyAgICAgKiBv
ZiB0aGUgdGV4dCBvciB0aGUgc3RhdGUgbWFjaGluZSB0cmFuc2l0aW9ucyB0byBzdGF0ZSAwLiAg
V2UgdXBkYXRlIG91ciByZXR1cm4KKyAgICAgKiB2YWx1ZSBldmVyeSB0aW1lIHRoZSBzdGF0ZSBt
YWNoaW5lIHBhc3NlcyB0aHJvdWdoIGEgcG9zc2libGUgZW5kIHN0YXRlLgorICAgICAqIEBwYXJh
bSBzdGF0ZXRhYmxlIHN0YXRlIHRhYmxlIHVzZWQgb2YgbW92aW5nIGZvcndhcmRzCisgICAgICog
QGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCBoYW5kbGVOZXh0KGNvbnN0IFJCQklTdGF0
ZVRhYmxlICpzdGF0ZXRhYmxlKTsKKworcHJvdGVjdGVkOgorCisjaWZuZGVmIFVfSElERV9JTlRF
Uk5BTF9BUEkKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHRoZSBmdW5jdGlvbiB0aGF0IGFjdHVh
bGx5IGltcGxlbWVudHMgZGljdGlvbmFyeS1iYXNlZAorICAgICAqIGJyZWFraW5nLiAgQ292ZXJp
bmcgYXQgbGVhc3QgdGhlIHJhbmdlIGZyb20gc3RhcnRQb3MgdG8gZW5kUG9zLAorICAgICAqIGl0
IGNoZWNrcyBmb3IgZGljdGlvbmFyeSBjaGFyYWN0ZXJzLCBhbmQgaWYgaXQgZmluZHMgdGhlbSBk
ZXRlcm1pbmVzCisgICAgICogdGhlIGFwcHJvcHJpYXRlIG9iamVjdCB0byBkZWFsIHdpdGggdGhl
bS4gSXQgbWF5IGNhY2hlIGZvdW5kIGJyZWFrcyBpbgorICAgICAqIGZDYWNoZWRCcmVha1Bvc2l0
aW9ucyBhcyBpdCBnb2VzLiBJdCBtYXkgd2VsbCBhbHNvIGxvb2sgYXQgdGV4dCBvdXRzaWRlCisg
ICAgICogdGhlIHJhbmdlIHN0YXJ0UG9zIHRvIGVuZFBvcy4KKyAgICAgKiBJZiBnb2luZyBmb3J3
YXJkLCBlbmRQb3MgaXMgdGhlIG5vcm1hbCBVbmljb2RlIGJyZWFrIHJlc3VsdCwgYW5kCisgICAg
ICogaWYgZ29pbmQgaW4gcmV2ZXJzZSwgc3RhcnRQb3MgaXMgdGhlIG5vcm1hbCBVbmljb2RlIGJy
ZWFrIHJlc3VsdAorICAgICAqIEBwYXJhbSBzdGFydFBvcyAgVGhlIHN0YXJ0IHBvc2l0aW9uIG9m
IGEgcmFuZ2Ugb2YgdGV4dAorICAgICAqIEBwYXJhbSBlbmRQb3MgICAgVGhlIGVuZCBwb3NpdGlv
biBvZiBhIHJhbmdlIG9mIHRleHQKKyAgICAgKiBAcGFyYW0gcmV2ZXJzZSAgIFRoZSBjYWxsIGlz
IGZvciB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAg
ICBpbnQzMl90IGNoZWNrRGljdGlvbmFyeShpbnQzMl90IHN0YXJ0UG9zLCBpbnQzMl90IGVuZFBv
cywgVUJvb2wgcmV2ZXJzZSk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKwor
cHJpdmF0ZToKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgYXBw
cm9wcmlhdGUgTGFuZ3VhZ2VCcmVha0VuZ2luZSBmb3IgYQorICAgICAqIGdpdmVuIGNoYXJhY3Rl
ciBjLgorICAgICAqIEBwYXJhbSBjICAgICAgICAgQSBjaGFyYWN0ZXIgaW4gdGhlIGRpY3Rpb25h
cnkgc2V0CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgY29uc3QgTGFuZ3VhZ2VCcmVh
a0VuZ2luZSAqZ2V0TGFuZ3VhZ2VCcmVha0VuZ2luZShVQ2hhcjMyIGMpOworCisgICAgLyoqCisg
ICAgICogIEBpbnRlcm5hbAorICAgICAqLworICAgIHZvaWQgbWFrZVJ1bGVTdGF0dXNWYWxpZCgp
OworCit9OworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vICAgSW5saW5lIEZ1bmN0
aW9ucyBEZWZpbml0aW9ucyAuLi4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitpbmxp
bmUgVUJvb2wgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcjo6b3BlcmF0b3IhPShjb25zdCBCcmVha0l0
ZXJhdG9yJiB0aGF0KSBjb25zdCB7CisgICAgcmV0dXJuICFvcGVyYXRvcj09KHRoYXQpOworfQor
CitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmIC8qICNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVS
QVRJT04gKi8KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Nj
aHJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3NjaHJpdGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDBiNWUyMjUwM2NmZjI2MWQyY2QyNDBmZjEyMDA3ZjkzN2Y3ODNiMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0ZXIuaApAQCAtMCwwICsxLDE4NyBAQAor
LyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDA1
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoK
KyogRmlsZSBzY2hyaXRlci5oCisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERh
dGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAwNS8wNS85OSAgICAgc3RlcGhl
biAgICAgQ2xlYW5lZCB1cC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBT
Q0hSSVRFUl9ICisjZGVmaW5lIFNDSFJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVz
LmgiCisjaW5jbHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWNo
cml0ZXIuaCIKKworLyoqCisgKiBcZmlsZSAKKyAqIFxicmllZiBDKysgQVBJOiBTdHJpbmcgQ2hh
cmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lOCisvKioKKyAqIEEgY29u
Y3JldGUgc3ViY2xhc3Mgb2YgQ2hhcmFjdGVySXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIHRo
ZQorICogY2hhcmFjdGVycyAoY29kZSB1bml0cyBvciBjb2RlIHBvaW50cykgaW4gYSBVbmljb2Rl
U3RyaW5nLgorICogSXQncyBwb3NzaWJsZSBub3Qgb25seSB0byBjcmVhdGUgYW4KKyAqIGl0ZXJh
dG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciBhbiBlbnRpcmUgVW5pY29kZVN0cmluZywgYnV0IGFsc28g
dG8KKyAqIGNyZWF0ZSBvbmUgdGhhdCBpdGVyYXRlcyBvdmVyIG9ubHkgYSBzdWJyYW5nZSBvZiBh
IFVuaWNvZGVTdHJpbmcKKyAqIChpdGVyYXRvcnMgb3ZlciBkaWZmZXJlbnQgc3VicmFuZ2VzIG9m
IHRoZSBzYW1lIFVuaWNvZGVTdHJpbmcgZG9uJ3QKKyAqIGNvbXBhcmUgZXF1YWwpLgorICogQHNl
ZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQHNlZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IKKyAq
IEBzdGFibGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgU3RyaW5nQ2hhcmFjdGVy
SXRlcmF0b3IgOiBwdWJsaWMgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciB7CitwdWJsaWM6CisgIC8q
KgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVW5pY29kZVN0cmluZyByZWZlcnJl
ZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBVbmljb2RlU3RyaW5nIG9iamVjdCBpcyBjb3Bp
ZWQuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgdGhlIHdob2xlIHN0cmluZywgYW5kIHRo
ZSBzdGFydGluZyBwb3NpdGlvbiBpcyAwLgorICAgKiBAcGFyYW0gdGV4dFN0ciBUaGUgdW5pY29k
ZSBzdHJpbmcgdXNlZCB0byBjcmVhdGUgYW4gaXRlcmF0b3IKKyAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVbmljb2RlU3RyaW5nJiB0
ZXh0U3RyKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVuaWNv
ZGVTdHJpbmcgcmVmZXJyZWQgdG8gYnkgInRleHRTdHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJh
bmdlIGlzIHRoZSB3aG9sZSBzdHJpbmcsIGFuZCB0aGUgc3RhcnRpbmcKKyAgICogcG9zaXRpb24g
aXMgc3BlY2lmaWVkIGJ5ICJ0ZXh0UG9zIi4gIElmICJ0ZXh0UG9zIiBpcyBvdXRzaWRlIHRoZSB2
YWxpZAorICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBp
cyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0U3RyIFRoZSB1bmljb2RlIHN0cmluZyB1c2Vk
IHRvIGNyZWF0ZSBhbiBpdGVyYXRvcgorICAgKiBAcGFyYW0gdGV4dFBvcyBUaGUgc3RhcnRpbmcg
cG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVuaWNvZGVTdHJpbmcmICAgIHRleHRTdHIs
CisgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAgICAgIHRleHRQb3MpOworCisgIC8qKgor
ICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVW5pY29kZVN0cmluZyByZWZlcnJlZCB0
byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBVbmljb2RlU3RyaW5nIG9iamVjdCBpcyBjb3BpZWQu
CisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgYmVnaW5zIHdpdGggdGhlIGNvZGUgdW5pdCBzcGVj
aWZpZWQgYnkKKyAgICogInRleHRCZWdpbiIgYW5kIGVuZHMgd2l0aCB0aGUgY29kZSB1bml0IEJF
Rk9SRSB0aGUgY29kZSB1bml0IHNwZWNmaWVkCisgICAqIGJ5ICJ0ZXh0RW5kIi4gIFRoZSBzdGFy
dGluZyBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInRleHRQb3MiLiAgSWYKKyAgICogInRleHRC
ZWdpbiIgYW5kICJ0ZXh0RW5kIiBkb24ndCBmb3JtIGEgdmFsaWQgcmFuZ2Ugb24gInRleHQiIChp
LmUuLAorICAgKiB0ZXh0QmVnaW4gPj0gdGV4dEVuZCBvciBlaXRoZXIgaXMgbmVnYXRpdmUgb3Ig
Z3JlYXRlciB0aGFuIHRleHQuc2l6ZSgpKSwKKyAgICogb3IgInRleHRQb3MiIGlzIG91dHNpZGUg
dGhlIHJhbmdlIGRlZmluZWQgYnkgInRleHRCZWdpbiIgYW5kICJ0ZXh0RW5kIiwKKyAgICogdGhl
IGJlaGF2aW9yIG9mIHRoaXMgaXRlcmF0b3IgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4
dFN0ciAgICBUaGUgdW5pY29kZSBzdHJpbmcgdXNlZCB0byBjcmVhdGUgdGhlIFN0cmluZ0NoYXJh
Y3Rlckl0ZXJhdG9yCisgICAqIEBwYXJhbSB0ZXh0QmVnaW4gIFRoZSBiZWdpbiBwb3NpdGlvbiBv
ZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0RW5kICAgIFRoZSBlbmQgcG9z
aXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0gdGV4dFBvcyAgICBUaGUg
c3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVuaWNvZGVTdHJpbmcmICAg
IHRleHRTdHIsCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAgICAgIHRleHRCZWdpbiwK
KyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dEVuZCwKKyAgICAgICAgICAg
ICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dFBvcyk7CisKKyAgLyoqCisgICAqIENvcHkgY29u
c3RydWN0b3IuICBUaGUgbmV3IGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgdGhlIHNhbWUgcmFuZ2UK
KyAgICogb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIGl0cyBpbml0aWFsIHBvc2l0
aW9uIGlzIHRoZQorICAgKiBzYW1lIGFzICJ0aGF0IidzIGN1cnJlbnQgcG9zaXRpb24uCisgICAq
IFRoZSBVbmljb2RlU3RyaW5nIG9iamVjdCBpbiAidGhhdCIgaXMgY29waWVkLgorICAgKiBAcGFy
YW0gdGhhdCBUaGUgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgU3Ry
aW5nQ2hhcmFjdGVySXRlcmF0b3ImICB0aGF0KTsKKworICAvKioKKyAgICogRGVzdHJ1Y3Rvci4K
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIH5TdHJpbmdDaGFyYWN0ZXJJ
dGVyYXRvcigpOworCisgIC8qKgorICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgKnRoaXMgaXMg
YWx0ZXJlZCB0byBpdGVyYXRlIG92ZXIgdGhlIHNhbWUKKyAgICogcmFuZ2Ugb2YgdGhlIHNhbWUg
c3RyaW5nIGFzICJ0aGF0IiwgYW5kIHJlZmVycyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIg
d2l0aGluIHRoYXQgc3RyaW5nIGFzICJ0aGF0IiBkb2VzLgorICAgKiBAcGFyYW0gdGhhdCBUaGUg
b2JqZWN0IHRvIGJlIGNvcGllZC4KKyAgICogQHJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBvYmpl
Y3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0
b3ImCisgIG9wZXJhdG9yPShjb25zdCBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciYgICAgdGhhdCk7
CisKKyAgLyoqCisgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3Zl
ciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGlu
ZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hh
cmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5CisgICAqIEByZXR1cm4g
dHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUK
KyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIu
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9vbCAgICAgICAgICBv
cGVyYXRvcj09KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisK
KyAgLyoqCisgICAqIFJldHVybnMgYSBuZXcgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgcmVmZXJy
aW5nIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSByYW5nZSBvZiB0aGUg
c2FtZSBzdHJpbmcgYXMgdGhpcyBvbmUuICBUaGUKKyAgICogY2FsbGVyIG11c3QgZGVsZXRlIHRo
ZSBuZXcgaXRlcmF0b3IuCisgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNsb25lZCBvYmplY3QuCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciog
Y2xvbmUodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0
ZXJhdGUgb3ZlciB0aGUgcHJvdmlkZWQgc3RyaW5nLgorICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUg
c3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICB2b2lkIHNldFRleHQoY29uc3QgVW5pY29kZVN0cmluZyYgbmV3VGV4dCk7CisKKyAgLyoqCisg
ICAqIENvcGllcyB0aGUgVW5pY29kZVN0cmluZyB1bmRlciBpdGVyYXRpb24gaW50byB0aGUgVW5p
Y29kZVN0cmluZworICAgKiByZWZlcnJlZCB0byBieSAicmVzdWx0Ii4gIEV2ZW4gaWYgdGhpcyBp
dGVyYXRvciBpdGVyYXRlcyBhY3Jvc3MKKyAgICogb25seSBhIHBhcnQgb2YgdGhpcyBzdHJpbmcs
IHRoZSB3aG9sZSBzdHJpbmcgaXMgY29waWVkLgorICAgKiBAcGFyYW0gcmVzdWx0IFJlY2VpdmVz
IGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCB2b2lkICAgICAgICAgICAgZ2V0VGV4dChVbmljb2RlU3RyaW5n
JiByZXN1bHQpOworCisgIC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmpl
Y3QgKG5vdCByZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMg
b2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNsYXNzSUQg
ICAgICAgICBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogUmV0
dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MgKG5vdCByZWFsbHkgcHVibGljKQorICAgKiBA
cmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAqLworICBzdGF0aWMgVUNsYXNzSUQgICBVX0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lk
KTsKKworcHJvdGVjdGVkOgorICAvKioKKyAgICogRGVmYXVsdCBjb25zdHJ1Y3RvciwgaXRlcmF0
aW9uIG92ZXIgZW1wdHkgc3RyaW5nLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0
cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9y
IHRvIGl0ZXJhdGUgb3ZlciB0aGUgcHJvdmlkZWQgc3RyaW5nLgorICAgKiBAcGFyYW0gbmV3VGV4
dCBUaGUgc3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICogQHBhcmFtIG5ld1RleHRMZW5n
dGggVGhlIGxlbmd0aCBvZiB0aGUgU3RyaW5nCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgdm9pZCBzZXRUZXh0KGNvbnN0IFVDaGFyKiBuZXdUZXh0LCBpbnQzMl90IG5ld1RleHRMZW5n
dGgpOworCisgIC8qKgorICAgKiBDb3B5IG9mIHRoZSBpdGVyYXRlZCBzdHJpbmcgb2JqZWN0Lgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVuaWNvZGVTdHJpbmcgICAgICAgICAgICB0
ZXh0OworCit9OworCitVX05BTUVTUEFDRV9FTkQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9pY3UvdW5pY29kZS91Y2FzZW1hcC5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2Fz
ZW1hcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIzN2UxNjU4ODY5N2YxYTkzMDE5MWVlM2RmODE2YzYzYjdiZDM4
YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjYXNlbWFwLmgK
QEAgLTAsMCArMSw0MjMgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29w
eXJpZ2h0IChDKSAyMDA1LTIwMTIsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyog
ICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1Y2FzZW1hcC5oCisqICAgZW5jb2Rp
bmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRh
dGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwNW1heTA2CisqICAgY3JlYXRlZCBieTogTWFy
a3VzIFcuIFNjaGVyZXIKKyoKKyogICBDYXNlIG1hcHBpbmcgc2VydmljZSBvYmplY3QgYW5kIGZ1
bmN0aW9ucyB1c2luZyBpdC4KKyovCisKKyNpZm5kZWYgX19VQ0FTRU1BUF9IX18KKyNkZWZpbmUg
X19VQ0FTRU1BUF9IX18KKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAi
dW5pY29kZS91c3RyaW5nLmgiCisjaW5jbHVkZSAidW5pY29kZS9sb2NhbHBvaW50ZXIuaCIKKwor
LyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMgQVBJOiBVbmljb2RlIGNhc2UgbWFwcGluZyBmdW5j
dGlvbnMgdXNpbmcgYSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqCisgKiBUaGUgc2Vydmlj
ZSBvYmplY3QgdGFrZXMgY2FyZSBvZiBtZW1vcnkgYWxsb2NhdGlvbnMsIGRhdGEgbG9hZGluZywg
YW5kIHNldHVwCisgKiBmb3IgdGhlIGF0dHJpYnV0ZXMsIGFzIHVzdWFsLgorICoKKyAqIEN1cnJl
bnRseSwgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgaGVyZSBkb2VzIG5vdCBvdmVybGFwIHdp
dGggdWNoYXIuaAorICogYW5kIHVzdHJpbmcuaCwgZXhjZXB0IGZvciB1Y2FzZW1hcF90b1RpdGxl
KCkuCisgKgorICogdWNhc2VtYXBfdXRmOFhZWigpIGZ1bmN0aW9ucyBvcGVyYXRlIGRpcmVjdGx5
IG9uIFVURi04IHN0cmluZ3MuCisgKi8KKworLyoqCisgKiBVQ2FzZU1hcCBpcyBhbiBvcGFxdWUg
c2VydmljZSBvYmplY3QgZm9yIG5ld2VyIElDVSBjYXNlIG1hcHBpbmcgZnVuY3Rpb25zLgorICog
T2xkZXIgZnVuY3Rpb25zIGRpZCBub3QgdXNlIGEgc2VydmljZSBvYmplY3QuCisgKiBAc3RhYmxl
IElDVSAzLjQKKyAqLworc3RydWN0IFVDYXNlTWFwOwordHlwZWRlZiBzdHJ1Y3QgVUNhc2VNYXAg
VUNhc2VNYXA7IC8qKjwgQyB0eXBlZGVmIGZvciBzdHJ1Y3QgVUNhc2VNYXAuIEBzdGFibGUgSUNV
IDMuNCAqLworCisvKioKKyAqIE9wZW4gYSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdCBmb3IgYSBs
b2NhbGUgYW5kIGEgc2V0IG9mIG9wdGlvbnMuCisgKiBUaGUgbG9jYWxlIElEIGFuZCBvcHRpb25z
IGFyZSBwcmVwcm9jZXNzZWQgc28gdGhhdCBmdW5jdGlvbnMgdXNpbmcgdGhlCisgKiBzZXJ2aWNl
IG9iamVjdCBuZWVkIG5vdCBwcm9jZXNzIHRoZW0gaW4gZWFjaCBjYWxsLgorICoKKyAqIEBwYXJh
bSBsb2NhbGUgSUNVIGxvY2FsZSBJRCwgdXNlZCBmb3IgbGFuZ3VhZ2UtZGVwZW5kZW50CisgKiAg
ICAgICAgICAgICAgIHVwcGVyLS9sb3dlci0vdGl0bGUtY2FzaW5nIGFjY29yZGluZyB0byB0aGUg
VW5pY29kZSBzdGFuZGFyZC4KKyAqICAgICAgICAgICAgICAgVXN1YWwgc2VtYW50aWNzOiAiIj1y
b290LCBOVUxMPWRlZmF1bHQgbG9jYWxlLCBldGMuCisgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25z
IGJpdCBzZXQsIHVzZWQgZm9yIGNhc2UgZm9sZGluZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgor
ICogICAgICAgICAgICAgICAgU2FtZSBmbGFncyBhcyBmb3IgdV9mb2xkQ2FzZSgpLCB1X3N0ckZv
bGRDYXNlKCksCisgKiAgICAgICAgICAgICAgICB1X3N0ckNhc2VDb21wYXJlKCksIGV0Yy4KKyAq
ICAgICAgICAgICAgICAgIFVzZSAwIG9yIFVfRk9MRF9DQVNFX0RFRkFVTFQgZm9yIGRlZmF1bHQg
YmVoYXZpb3IuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0
byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBu
b3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1
cm4gUG9pbnRlciB0byBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LCBpZiBzdWNjZXNzZnVsLgor
ICoKKyAqIEBzZWUgVV9GT0xEX0NBU0VfREVGQVVMVAorICogQHNlZSBVX0ZPTERfQ0FTRV9FWENM
VURFX1NQRUNJQUxfSQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNBU0UKKyAqIEBzZWUg
VV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8K
K1VfU1RBQkxFIFVDYXNlTWFwICogVV9FWFBPUlQyCit1Y2FzZW1hcF9vcGVuKGNvbnN0IGNoYXIg
KmxvY2FsZSwgdWludDMyX3Qgb3B0aW9ucywgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8q
KgorICogQ2xvc2UgYSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBjc20gT2Jq
ZWN0IHRvIGJlIGNsb3NlZC4KKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSB2b2lk
IFVfRVhQT1JUMgordWNhc2VtYXBfY2xvc2UoVUNhc2VNYXAgKmNzbSk7CisKKyNpZiBVX1NIT1df
Q1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFxjbGFzcyBMb2Nh
bFVDYXNlTWFwUG9pbnRlcgorICogIlNtYXJ0IHBvaW50ZXIiIGNsYXNzLCBjbG9zZXMgYSBVQ2Fz
ZU1hcCB2aWEgdWNhc2VtYXBfY2xvc2UoKS4KKyAqIEZvciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBM
b2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKgorICogQHNlZSBMb2NhbFBvaW50ZXJCYXNl
CisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0YWJsZSBJQ1UgNC40CisgKi8KK1VfREVGSU5F
X0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVDYXNlTWFwUG9pbnRlciwgVUNhc2VNYXAsIHVjYXNl
bWFwX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZgorCisvKioKKyAqIEdldCB0
aGUgbG9jYWxlIElEIHRoYXQgaXMgdXNlZCBmb3IgbGFuZ3VhZ2UtZGVwZW5kZW50IGNhc2UgbWFw
cGluZ3MuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVy
biBsb2NhbGUgSUQKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSBjb25zdCBjaGFy
ICogVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRMb2NhbGUoY29uc3QgVUNhc2VNYXAgKmNzbSk7CisK
Ky8qKgorICogR2V0IHRoZSBvcHRpb25zIGJpdCBzZXQgdGhhdCBpcyB1c2VkIGZvciBjYXNlIGZv
bGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29ucy4KKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2Vy
dmljZSBvYmplY3QuCisgKiBAcmV0dXJuIG9wdGlvbnMgYml0IHNldAorICogQHN0YWJsZSBJQ1Ug
My40CisgKi8KK1VfU1RBQkxFIHVpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfZ2V0T3B0aW9u
cyhjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoqCisgKiBTZXQgdGhlIGxvY2FsZSBJRCB0aGF0
IGlzIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudCBjYXNlIG1hcHBpbmdzLgorICoKKyAqIEBw
YXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gbG9jYWxlIExvY2Fs
ZSBJRCwgc2VlIHVjYXNlbWFwX29wZW4oKS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUg
YSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAg
ICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlv
biBjYWxsLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfb3BlbgorICogQHN0YWJsZSBJQ1UgMy40Cisg
Ki8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9zZXRMb2NhbGUoVUNhc2VNYXAg
KmNzbSwgY29uc3QgY2hhciAqbG9jYWxlLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoq
CisgKiBTZXQgdGhlIG9wdGlvbnMgYml0IHNldCB0aGF0IGlzIHVzZWQgZm9yIGNhc2UgZm9sZGlu
ZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICoKKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2Vy
dmljZSBvYmplY3QuCisgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGJpdCBzZXQsIHNlZSB1Y2Fz
ZW1hcF9vcGVuKCkuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRl
ciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICAgd2hpY2ggbXVz
dCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqCisg
KiBAc2VlIHVjYXNlbWFwX29wZW4KKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSB2
b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0T3B0aW9ucyhVQ2FzZU1hcCAqY3NtLCB1aW50MzJf
dCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBEbyBub3QgbG93
ZXJjYXNlIG5vbi1pbml0aWFsIHBhcnRzIG9mIHdvcmRzIHdoZW4gdGl0bGVjYXNpbmcuCisgKiBP
cHRpb24gYml0IGZvciB0aXRsZWNhc2luZyBBUElzIHRoYXQgdGFrZSBhbiBvcHRpb25zIGJpdCBz
ZXQuCisgKgorICogQnkgZGVmYXVsdCwgdGl0bGVjYXNpbmcgd2lsbCB0aXRsZWNhc2UgdGhlIGZp
cnN0IGNhc2VkIGNoYXJhY3RlcgorICogb2YgYSB3b3JkIGFuZCBsb3dlcmNhc2UgYWxsIG90aGVy
IGNoYXJhY3RlcnMuCisgKiBXaXRoIHRoaXMgb3B0aW9uLCB0aGUgb3RoZXIgY2hhcmFjdGVycyB3
aWxsIG5vdCBiZSBtb2RpZmllZC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX3NldE9wdGlvbnMKKyAq
IEBzZWUgdWNhc2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICog
QHNlZSBVbmljb2RlU3RyaW5nOjp0b1RpdGxlCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworI2Rl
ZmluZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNBU0UgMHgxMDAKKworLyoqCisgKiBEbyBub3QgYWRq
dXN0IHRoZSB0aXRsZWNhc2luZyBpbmRleGVzIGZyb20gQnJlYWtJdGVyYXRvcjo6bmV4dCgpIGlu
ZGV4ZXM7CisgKiB0aXRsZWNhc2UgZXhhY3RseSB0aGUgY2hhcmFjdGVycyBhdCBicmVha3MgZnJv
bSB0aGUgaXRlcmF0b3IuCisgKiBPcHRpb24gYml0IGZvciB0aXRsZWNhc2luZyBBUElzIHRoYXQg
dGFrZSBhbiBvcHRpb25zIGJpdCBzZXQuCisgKgorICogQnkgZGVmYXVsdCwgdGl0bGVjYXNpbmcg
d2lsbCB0YWtlIGVhY2ggYnJlYWsgaXRlcmF0b3IgaW5kZXgsCisgKiBhZGp1c3QgaXQgYnkgbG9v
a2luZyBmb3IgdGhlIG5leHQgY2FzZWQgY2hhcmFjdGVyLCBhbmQgdGl0bGVjYXNlIHRoYXQgb25l
LgorICogT3RoZXIgY2hhcmFjdGVycyBhcmUgbG93ZXJjYXNlZC4KKyAqCisgKiBUaGlzIGZvbGxv
d3MgVW5pY29kZSA0ICYgNSBzZWN0aW9uIDMuMTMgRGVmYXVsdCBDYXNlIE9wZXJhdGlvbnM6Cisg
KgorICogUjMgIHRvVGl0bGVjYXNlKFgpOiBGaW5kIHRoZSB3b3JkIGJvdW5kYXJpZXMgYmFzZWQg
b24gVW5pY29kZSBTdGFuZGFyZCBBbm5leAorICogIzI5LCAiVGV4dCBCb3VuZGFyaWVzLiIgQmV0
d2VlbiBlYWNoIHBhaXIgb2Ygd29yZCBib3VuZGFyaWVzLCBmaW5kIHRoZSBmaXJzdAorICogY2Fz
ZWQgY2hhcmFjdGVyIEYuIElmIEYgZXhpc3RzLCBtYXAgRiB0byBkZWZhdWx0X3RpdGxlKEYpOyB0
aGVuIG1hcCBlYWNoCisgKiBzdWJzZXF1ZW50IGNoYXJhY3RlciBDIHRvIGRlZmF1bHRfbG93ZXIo
QykuCisgKgorICogQHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25zCisgKiBAc2VlIHVjYXNlbWFwX3Rv
VGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUKKyAqIEBzZWUgVW5pY29kZVN0cmlu
Zzo6dG9UaXRsZQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNBU0UKKyAqIEBzdGFibGUg
SUNVIDMuOAorICovCisjZGVmaW5lIFVfVElUTEVDQVNFX05PX0JSRUFLX0FESlVTVE1FTlQgMHgy
MDAKKworI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCisvKioKKyAqIEdldCB0aGUg
YnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2VkIGZvciB0aXRsZWNhc2luZy4KKyAqIERvIG5vdCBt
b2RpZnkgdGhlIHJldHVybmVkIGJyZWFrIGl0ZXJhdG9yLgorICogQHBhcmFtIGNzbSBVQ2FzZU1h
cCBzZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1cm4gdGl0bGVjYXNpbmcgYnJlYWsgaXRlcmF0b3IK
KyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSBjb25zdCBVQnJlYWtJdGVyYXRvciAq
IFVfRVhQT1JUMgordWNhc2VtYXBfZ2V0QnJlYWtJdGVyYXRvcihjb25zdCBVQ2FzZU1hcCAqY3Nt
KTsKKworLyoqCisgKiBTZXQgdGhlIGJyZWFrIGl0ZXJhdG9yIHRoYXQgaXMgdXNlZCBmb3IgdGl0
bGVjYXNpbmcuCisgKiBUaGUgVUNhc2VNYXAgc2VydmljZSBvYmplY3QgcmVsZWFzZXMgYSBwcmV2
aW91c2x5IHNldCBicmVhayBpdGVyYXRvcgorICogYW5kICJhZG9wdHMiIHRoaXMgbmV3IG9uZSwg
dGFraW5nIG93bmVyc2hpcCBvZiBpdC4KKyAqIEl0IHdpbGwgYmUgcmVsZWFzZWQgaW4gYSBzdWJz
ZXF1ZW50IGNhbGwgdG8gdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigpCisgKiBvciB1Y2FzZW1h
cF9jbG9zZSgpLgorICoKKyAqIEJyZWFrIGl0ZXJhdG9yIG9wZXJhdGlvbnMgYXJlIG5vdCB0aHJl
YWQtc2FmZS4gVGhlcmVmb3JlLCB0aXRsZWNhc2luZworICogZnVuY3Rpb25zIHVzZSBub24tY29u
c3QgVUNhc2VNYXAgb2JqZWN0cy4gSXQgaXMgbm90IHBvc3NpYmxlIHRvIHRpdGxlY2FzZQorICog
c3RyaW5ncyBjb25jdXJyZW50bHkgdXNpbmcgdGhlIHNhbWUgVUNhc2VNYXAuCisgKgorICogQHBh
cmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBpdGVyVG9BZG9wdCBC
cmVhayBpdGVyYXRvciB0byBiZSBhZG9wdGVkIGZvciB0aXRsZWNhc2luZy4KKyAqIEBwYXJhbSBw
RXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUs
CisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUg
YmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfdG9UaXRsZQor
ICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1Vf
U1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKFVDYXNlTWFw
ICpjc20sIFVCcmVha0l0ZXJhdG9yICppdGVyVG9BZG9wdCwgVUVycm9yQ29kZSAqcEVycm9yQ29k
ZSk7CisKKy8qKgorICogVGl0bGVjYXNlIGEgVVRGLTE2IHN0cmluZy4gVGhpcyBmdW5jdGlvbiBp
cyBhbG1vc3QgYSBkdXBsaWNhdGUgb2YgdV9zdHJUb1RpdGxlKCksCisgKiBleGNlcHQgdGhhdCBp
dCB0YWtlcyB1Y2FzZW1hcF9zZXRPcHRpb25zKCkgaW50byBhY2NvdW50IGFuZCBoYXMgcGVyZm9y
bWFuY2UKKyAqIGFkdmFudGFnZXMgZnJvbSBiZWluZyBhYmxlIHRvIHVzZSBhIFVDYXNlTWFwIG9i
amVjdCBmb3IgbXVsdGlwbGUgY2FzZSBtYXBwaW5nCisgKiBvcGVyYXRpb25zLCBzYXZpbmcgc2V0
dXAgdGltZS4KKyAqCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgY29udGV4dC1z
ZW5zaXRpdmUuCisgKiBUaXRsZWNhc2luZyB1c2VzIGEgYnJlYWsgaXRlcmF0b3IgdG8gZmluZCB0
aGUgZmlyc3QgY2hhcmFjdGVycyBvZiB3b3JkcworICogdGhhdCBhcmUgdG8gYmUgdGl0bGVjYXNl
ZC4gSXQgdGl0bGVjYXNlcyB0aG9zZSBjaGFyYWN0ZXJzIGFuZCBsb3dlcmNhc2VzCisgKiBhbGwg
b3RoZXJzLiAoVGhpcyBjYW4gYmUgbW9kaWZpZWQgd2l0aCB1Y2FzZW1hcF9zZXRPcHRpb25zKCku
KQorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBub24tY29uc3QgVUNhc2VNYXAg
cG9pbnRlciBiZWNhdXNlIGl0IHdpbGwKKyAqIG9wZW4gYSBkZWZhdWx0IGJyZWFrIGl0ZXJhdG9y
IGlmIG5vIGJyZWFrIGl0ZXJhdG9yIHdhcyBzZXQgeWV0LAorICogYW5kIGVmZmVjdGl2ZWx5IGNh
bGwgdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigpOworICogYWxzbyBiZWNhdXNlIHRoZSBicmVh
ayBpdGVyYXRvciBpcyBzdGF0ZWZ1bCBhbmQgd2lsbCBiZSBtb2RpZmllZCBkdXJpbmcKKyAqIHRo
ZSBpdGVyYXRpb24uCisgKgorICogVGhlIHRpdGxlY2FzZSBicmVhayBpdGVyYXRvciBjYW4gYmUg
cHJvdmlkZWQgdG8gY3VzdG9taXplIGZvciBhcmJpdHJhcnkKKyAqIHN0eWxlcywgdXNpbmcgcnVs
ZXMgYW5kIGRpY3Rpb25hcmllcyBiZXlvbmQgdGhlIHN0YW5kYXJkIGl0ZXJhdG9ycy4KKyAqIFRo
ZSBzdGFuZGFyZCB0aXRsZWNhc2UgaXRlcmF0b3IgZm9yIHRoZSByb290IGxvY2FsZSBpbXBsZW1l
bnRzIHRoZQorICogYWxnb3JpdGhtIG9mIFVuaWNvZGUgVFIgMjEuCisgKgorICogVGhpcyBmdW5j
dGlvbiB1c2VzIG9ubHkgdGhlIHNldFVUZXh0KCksIGZpcnN0KCksIG5leHQoKSBhbmQgY2xvc2Uo
KSBtZXRob2RzIG9mIHRoZQorICogcHJvdmlkZWQgYnJlYWsgaXRlcmF0b3IuCisgKgorICogVGhl
IHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBU
aGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVy
bGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuIFRo
aXMgcG9pbnRlciBpcyBub24tY29uc3QhCisgKiAgICAgICAgICAgICAgICAgIFNlZSB0aGUgbm90
ZSBhYm92ZSBmb3IgZGV0YWlscy4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRo
ZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAq
ICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAg
ICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgor
ICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2Yg
Ynl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJl
IE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhl
IHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSBy
ZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgor
ICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElm
IC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNv
ZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAg
ICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0
aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0
cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisg
KiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFj
aXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1RpdGxlCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLwor
VV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3RvVGl0bGUoVUNhc2VNYXAgKmNz
bSwKKyAgICAgICAgICAgICAgICAgVUNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAor
ICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNlbmRpZgorCisvKioK
KyAqIExvd2VyY2FzZSB0aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmluZy4KKyAqIENhc2lu
ZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRoZSByZXN1
bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNv
dXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4K
KyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBh
cmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQg
d2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVy
IGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVu
ZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBz
aXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAq
ICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwg
b25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAg
IHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3Jj
ICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5n
dGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRl
cm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0
byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5v
dCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVy
biBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4g
Y2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3
aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0clRvTG93
ZXIKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgor
dWNhc2VtYXBfdXRmOFRvTG93ZXIoY29uc3QgVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAg
ICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAg
ICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIFVwcGVyY2FzZSB0aGUg
Y2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmluZy4KKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5k
ZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBv
ciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRo
ZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3Nt
ICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1
ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWlu
YXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4K
KyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9m
IGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIg
KG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAg
ZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxl
bmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBh
bnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5h
bCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFs
IHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFy
YW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZh
bHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1
cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRo
ZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBv
dmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhh
biBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0clRvVXBwZXIKKyAqIEBzdGFibGUgSUNV
IDMuNAorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOFRvVXBw
ZXIoY29uc3QgVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRlc3Qs
IGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq
c3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUg
KnBFcnJvckNvZGUpOworCisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKKy8qKgor
ICogVGl0bGVjYXNlIGEgVVRGLTggc3RyaW5nLgorICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRl
bnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGl0bGVjYXNpbmcgdXNlcyBhIGJyZWFrIGl0
ZXJhdG9yIHRvIGZpbmQgdGhlIGZpcnN0IGNoYXJhY3RlcnMgb2Ygd29yZHMKKyAqIHRoYXQgYXJl
IHRvIGJlIHRpdGxlY2FzZWQuIEl0IHRpdGxlY2FzZXMgdGhvc2UgY2hhcmFjdGVycyBhbmQgbG93
ZXJjYXNlcworICogYWxsIG90aGVycy4gKFRoaXMgY2FuIGJlIG1vZGlmaWVkIHdpdGggdWNhc2Vt
YXBfc2V0T3B0aW9ucygpLikKKyAqCisgKiBOb3RlOiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgbm9u
LWNvbnN0IFVDYXNlTWFwIHBvaW50ZXIgYmVjYXVzZSBpdCB3aWxsCisgKiBvcGVuIGEgZGVmYXVs
dCBicmVhayBpdGVyYXRvciBpZiBubyBicmVhayBpdGVyYXRvciB3YXMgc2V0IHlldCwKKyAqIGFu
ZCBlZmZlY3RpdmVseSBjYWxsIHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoKTsKKyAqIGFsc28g
YmVjYXVzZSB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgc3RhdGVmdWwgYW5kIHdpbGwgYmUgbW9kaWZp
ZWQgZHVyaW5nCisgKiB0aGUgaXRlcmF0aW9uLgorICoKKyAqIFRoZSB0aXRsZWNhc2UgYnJlYWsg
aXRlcmF0b3IgY2FuIGJlIHByb3ZpZGVkIHRvIGN1c3RvbWl6ZSBmb3IgYXJiaXRyYXJ5CisgKiBz
dHlsZXMsIHVzaW5nIHJ1bGVzIGFuZCBkaWN0aW9uYXJpZXMgYmV5b25kIHRoZSBzdGFuZGFyZCBp
dGVyYXRvcnMuCisgKiBUaGUgc3RhbmRhcmQgdGl0bGVjYXNlIGl0ZXJhdG9yIGZvciB0aGUgcm9v
dCBsb2NhbGUgaW1wbGVtZW50cyB0aGUKKyAqIGFsZ29yaXRobSBvZiBVbmljb2RlIFRSIDIxLgor
ICoKKyAqIFRoaXMgZnVuY3Rpb24gdXNlcyBvbmx5IHRoZSBzZXRVVGV4dCgpLCBmaXJzdCgpLCBu
ZXh0KCkgYW5kIGNsb3NlKCkgbWV0aG9kcyBvZiB0aGUKKyAqIHByb3ZpZGVkIGJyZWFrIGl0ZXJh
dG9yLgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhl
IG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZm
ZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNl
cnZpY2Ugb2JqZWN0LiBUaGlzIHBvaW50ZXIgaXMgbm9uLWNvbnN0IQorICogICAgICAgICAgICAg
ICAgICBTZWUgdGhlIG5vdGUgYWJvdmUgZm9yIGRldGFpbHMuCisgKiBAcGFyYW0gZGVzdCAgICAg
IEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10
ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5v
dWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNh
c2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1
ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAgICAg
ICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0
aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3cml0
aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9y
aWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3Jp
Z2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAq
IEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNv
ZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEg
ZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGgg
b2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVm
ZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRl
ciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9UaXRsZQorICogQHNlZSBV
X1RJVExFQ0FTRV9OT19MT1dFUkNBU0UKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURK
VVNUTUVOVAorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBP
UlQyCit1Y2FzZW1hcF91dGY4VG9UaXRsZShVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAg
ICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAg
ICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNlbmRpZgorCisvKioKKyAqIENhc2UtZm9s
ZHMgdGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcuCisgKgorICogQ2FzZS1mb2xkaW5n
IGlzIGxvY2FsZS1pbmRlcGVuZGVudCBhbmQgbm90IGNvbnRleHQtc2Vuc2l0aXZlLAorICogYnV0
IHRoZXJlIGlzIGFuIG9wdGlvbiBmb3Igd2hldGhlciB0byBpbmNsdWRlIG9yIGV4Y2x1ZGUgbWFw
cGluZ3MgZm9yIGRvdHRlZCBJCisgKiBhbmQgZG90bGVzcyBpIHRoYXQgYXJlIG1hcmtlZCB3aXRo
ICdUJyBpbiBDYXNlRm9sZGluZy50eHQuCisgKgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2Vy
IG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQg
dGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBj
c20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEg
YnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJt
aW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdo
LgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ug
b2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZl
ciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAg
ICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUg
bGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5n
IGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdp
bmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2lu
YWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBw
YXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUg
dmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFp
bHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2Yg
dGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVy
IG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0
aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyRm9sZENhc2UKKyAqIEBzZWUgdWNh
c2VtYXBfc2V0T3B0aW9ucworICogQHNlZSBVX0ZPTERfQ0FTRV9ERUZBVUxUCisgKiBAc2VlIFVf
Rk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9T
VEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhGb2xkQ2FzZShjb25zdCBVQ2Fz
ZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVz
dENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJf
dCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29k
ZSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2hyaXRl
ci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2hyaXRlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkNWE5
OTBmN2I3ZWQzZDViYWNmMmRhODQ3MWVmOGZmOTQyMmY5OWMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmgKQEAgLTAsMCArMSwzODEgQEAKKy8qCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDUsIEludGVybmF0aW9uYWwg
QnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgVUNIUklURVJfSAorI2Rl
ZmluZSBVQ0hSSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUg
InVuaWNvZGUvY2hhcml0ZXIuaCIKKworLyoqCisgKiBcZmlsZSAKKyAqIFxicmllZiBDKysgQVBJ
OiBVQ2hhciBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKwor
LyoqCisgKiBBIGNvbmNyZXRlIHN1YmNsYXNzIG9mIENoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgaXRl
cmF0ZXMgb3ZlciB0aGUKKyAqIGNoYXJhY3RlcnMgKGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMp
IGluIGEgVUNoYXIgYXJyYXkuCisgKiBJdCdzIHBvc3NpYmxlIG5vdCBvbmx5IHRvIGNyZWF0ZSBh
bgorICogaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIGFuIGVudGlyZSBVQ2hhciBhcnJheSwg
YnV0IGFsc28gdG8KKyAqIGNyZWF0ZSBvbmUgdGhhdCBpdGVyYXRlcyBvdmVyIG9ubHkgYSBzdWJy
YW5nZSBvZiBhIFVDaGFyIGFycmF5CisgKiAoaXRlcmF0b3JzIG92ZXIgZGlmZmVyZW50IHN1YnJh
bmdlcyBvZiB0aGUgc2FtZSBVQ2hhciBhcnJheSBkb24ndAorICogY29tcGFyZSBlcXVhbCkuCisg
KiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRv
cgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBVQ2hhckNoYXJh
Y3Rlckl0ZXJhdG9yIDogcHVibGljIENoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgLyoq
CisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0
byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5s
ZW5ndGgtMTwvY29kZT4uCisgICAqIHRleHQgaXMgb25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAo
dGhlCisgICAqIGRlc3RydWN0b3Igd2lsbCBub3QgZGVsZXRlIGl0KS4KKyAgICogQHBhcmFtIHRl
eHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICogQHBhcmFtIGxl
bmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVUNoYXIqIHRleHRQdHIsIGlu
dDMyX3QgbGVuZ3RoKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhl
IFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlv
biByYW5nZSBpcyAwIHRvIDxjb2RlPmxlbmd0aC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5
IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxl
dGUgaXQpLgorICAgKiBUaGUgc3RhcnRpbmcKKyAgICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5
ICJwb3NpdGlvbiIuIElmICJwb3NpdGlvbiIgaXMgb3V0c2lkZSB0aGUgdmFsaWQKKyAgICogaXRl
cmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2YgdGhpcyBvYmplY3QgaXMgdW5kZWZpbmVkLgor
ICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIgYXJyYXkgdG8gYmUgaXRlcmF0ZCBvdmVyCisg
ICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIgYXJyYXkKKyAgICogQHBh
cmFtIHBvc2l0aW9uIFRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBV
Q2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAg
aW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVy
IHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVy
YXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5lbmQtMTwvY29kZT4uCisgICAqIHRleHQgaXMgb25s
eSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisgICAqIGRlc3RydWN0b3Igd2lsbCBub3QgZGVs
ZXRlIGl0KS4KKyAgICogVGhlIHN0YXJ0aW5nCisgICAqIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBi
eSAicG9zaXRpb24iLiBJZiBiZWdpbiBhbmQgZW5kIGRvIG5vdAorICAgKiBmb3JtIGEgdmFsaWQg
aXRlcmF0aW9uIHJhbmdlIG9yICJwb3NpdGlvbiIgaXMgb3V0c2lkZSB0aGUgdmFsaWQKKyAgICog
aXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2YgdGhpcyBvYmplY3QgaXMgdW5kZWZpbmVk
LgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIgYXJyYXkgdG8gYmUgaXRlcmF0ZWQgb3Zl
cgorICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAq
IEBwYXJhbSB0ZXh0QmVnaW4gIFRoZSBiZWdpbiBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJh
bmdlCisgICAqIEBwYXJhbSB0ZXh0RW5kICAgIFRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0ZXJh
dGlvbiByYW5nZQorICAgKiBAcGFyYW0gcG9zaXRpb24gICAgVGhlIHN0YXJ0aW5nIHBvc2l0aW9u
IG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNo
YXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyKiB0ZXh0UHRyLCBpbnQzMl90IGxlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRleHRCZWdpbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQzMl90IHRleHRFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50
MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAqIENvcHkgY29uc3RydWN0b3IuICBUaGUgbmV3
IGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgdGhlIHNhbWUgcmFuZ2UKKyAgICogb2YgdGhlIHNhbWUg
c3RyaW5nIGFzICJ0aGF0IiwgYW5kIGl0cyBpbml0aWFsIHBvc2l0aW9uIGlzIHRoZQorICAgKiBz
YW1lIGFzICJ0aGF0IidzIGN1cnJlbnQgcG9zaXRpb24uCisgICAqIEBwYXJhbSB0aGF0IFRoZSBV
Q2hhckNoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvcGllZAorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVUNoYXJDaGFyYWN0ZXJJdGVy
YXRvciYgIHRoYXQpOworCisgIC8qKgorICAgKiBEZXN0cnVjdG9yLgorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHZpcnR1YWwgflVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAv
KioKKyAgICogQXNzaWdubWVudCBvcGVyYXRvci4gICp0aGlzIGlzIGFsdGVyZWQgdG8gaXRlcmF0
ZSBvdmVyIHRoZSBzYW5lCisgICAqIHJhbmdlIG9mIHRoZSBzYW1lIHN0cmluZyBhcyAidGhhdCIs
IGFuZCByZWZlcnMgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIHdpdGhpbiB0aGF0IHN0cmlu
ZyBhcyAidGhhdCIgZG9lcy4KKyAgICogQHBhcmFtIHRoYXQgVGhlIG9iamVjdCB0byBiZSBjb3Bp
ZWQKKyAgICogQHJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QKKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yJgorICBvcGVyYXRvcj0oY29u
c3QgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYgICAgdGhhdCk7CisKKyAgLyoqCisgICAqIFJldHVy
bnMgdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0
aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0
ZXIuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdXNlZCB0
byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICogQHJldHVybiB0cnVlIGlmIHRoZSBpdGVy
YXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmlu
ZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICAgIG9wZXJhdG9yPT0oY29uc3Qg
Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKworICAvKioKKyAgICogR2Vu
ZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGlzIGl0ZXJhdG9yLgorICAgKiBAcmV0dXJuIHRoZSBo
YXNoIGNvZGUuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBpbnQzMl90
ICAgICAgICAgaGFzaENvZGUodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgYSBu
ZXcgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciByZWZlcnJpbmcgdG8gdGhlIHNhbWUKKyAgICogY2hh
cmFjdGVyIGluIHRoZSBzYW1lIHJhbmdlIG9mIHRoZSBzYW1lIHN0cmluZyBhcyB0aGlzIG9uZS4g
IFRoZQorICAgKiBjYWxsZXIgbXVzdCBkZWxldGUgdGhlIG5ldyBpdGVyYXRvci4KKyAgICogQHJl
dHVybiB0aGUgQ2hhcmFjdGVySXRlcmF0b3IgbmV3bHkgY3JlYXRlZAorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3IqIGNsb25lKHZvaWQpIGNv
bnN0OworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmly
c3QgY29kZSB1bml0IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRo
YXQgY29kZSB1bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlv
biB3aXRoIG5leHQoKS4KKyAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBp
dGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBV
Q2hhciAgICAgICAgIGZpcnN0KHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRv
ciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAgKiBpdGVyYXRpb24g
cmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAg
ICogdG8gdGhlIHNlY29uZCBjb2RlIHVuaXQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0
VG9TdGFydCgpCisgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHRQb3N0SW5jKCku
CisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdl
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZp
cnN0UG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVm
ZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwg
YW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVn
aW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyKCkuCisgICAqIE5vdGUgdGhhdCBhbiBpdGVyYXRp
b24gd2l0aCBuZXh0MzJQb3N0SW5jKCksIGJlZ2lubmluZyB3aXRoLAorICAgKiBlLmcuLCBzZXRU
b1N0YXJ0KCkgb3IgZmlyc3RQb3N0SW5jKCksIGlzIG1vcmUgZWZmaWNpZW50LgorICAgKiBAcmV0
dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmlyc3QzMih2b2lk
KTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0
IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNv
ZGUgcG9pbnQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICogdG8gdGhlIHNlY29uZCBjb2Rl
IHBvaW50LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAgKiBmb3Ig
Zm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhl
IGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmlyc3QzMlBvc3RJbmModm9p
ZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0
IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0
IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24g
d2l0aCBwcmV2aW91cygpLgorICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMg
aXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwg
VUNoYXIgICAgICAgICBsYXN0KHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRv
ciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0cworICAgKiBpdGVyYXRpb24g
cmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2Vk
IHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzMzIoKS4KKyAgICogQHJldHVybiB0
aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGxhc3QzMih2b2lkKTsKKwor
ICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlICJwb3NpdGlvbiIt
dGggY29kZSB1bml0CisgICAqIGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRv
ciByZWZlcnMgdG8sIGFuZAorICAgKiByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBAcGFy
YW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAor
ICAgKiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICB2aXJ0dWFsIFVDaGFyICAgICAgICAgc2V0SW5kZXgoaW50MzJfdCBwb3NpdGlvbik7CisKKyAg
LyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBiZWdpbm5pbmcgb2Yg
dGhlIGNvZGUgcG9pbnQKKyAgICogdGhhdCBjb250YWlucyB0aGUgInBvc2l0aW9uIi10aCBjb2Rl
IHVuaXQKKyAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVy
cyB0bywgYW5kCisgICAqIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LgorICAgKiBUaGUgY3VycmVu
dCBwb3NpdGlvbiBpcyBhZGp1c3RlZCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjb2RlIHBvaW50
CisgICAqIChpdHMgZmlyc3QgY29kZSB1bml0KS4KKyAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBw
b3NpdGlvbiB3aXRoaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICogQHJldHVybiB0aGUg
Y29kZSB1bml0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMy
ICAgICAgIHNldEluZGV4MzIoaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAqIFJldHVy
bnMgdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4KKyAgICog
QHJldHVybiB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBjdXJy
ZW50KHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IHRo
ZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHBv
aW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBjdXJyZW50MzIodm9pZCkgY29uc3Q7
CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgdW5pdCBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlICh0b3dhcmQKKyAgICogZW5kSW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQg
Y29kZSB1bml0LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSB1bml0cyB0byByZXR1
cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFs
IFVDaGFyICAgICAgICAgbmV4dCh2b2lkKTsKKworICAvKioKKyAgICogR2V0cyB0aGUgY3VycmVu
dCBjb2RlIHVuaXQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1
bml0CisgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogKHRvd2FyZCBlbmRJbmRleCgp
KS4gIElmIHRoZXJlIGFyZQorICAgKiBubyBtb3JlIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1
cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSB1bml0LgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0UG9zdEluYyh2
b2lkKTsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludCBpbiB0
aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAgICogZW5kSW5kZXgoKSksIGFuZCByZXR1cm5z
IHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZSBubyBtb3JlCisgICAqIGNvZGUgcG9pbnRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBOb3RlIHRoYXQgaXRlcmF0aW9uIHdpdGgg
InByZS1pbmNyZW1lbnQiIHNlbWFudGljcyBpcyBsZXNzCisgICAqIGVmZmljaWVudCB0aGFuIGl0
ZXJhdGlvbiB3aXRoICJwb3N0LWluY3JlbWVudCIgc2VtYW50aWNzCisgICAqIHRoYXQgaXMgcHJv
dmlkZWQgYnkgbmV4dDMyUG9zdEluYygpLgorICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgcG9p
bnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyKHZvaWQpOworCisgIC8qKgorICAgKiBHZXRz
IHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhl
IG5leHQgY29kZSBwb2ludAorICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqICh0b3dh
cmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0
byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgY3VycmVudCBwb2ludC4K
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4
dDMyUG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJucyBGQUxTRSBpZiB0aGVyZSBh
cmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAqIGF0IG9yIGFmdGVyIHRo
ZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIFRoaXMgaXMg
dXNlZCB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9zdEluYygpIGluIGZvcndhcmQKKyAg
ICogaXRlcmF0aW9uLgorICAgKiBAcmV0dXJuIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNv
ZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9z
aXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNOZXh0KCk7CisKKyAgLyoqCisgICAqIEFkdmFu
Y2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93
YXJkCisgICAqIHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYg
dGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9O
RS4KKyAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24g
cmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAg
ICAgIHByZXZpb3VzKHZvaWQpOworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlv
dXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAgICogc3RhcnRJ
bmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlIG5vIG1v
cmUKKyAgICogY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1
cm4gdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgcHJldmlvdXMz
Mih2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9y
ZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3Np
dGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBwcmV2
aW91cygpIG9yIHByZXZpb3VzMzIoKSBpbiBiYWNrd2FyZAorICAgKiBpdGVyYXRpb24uCisgICAq
IEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBv
aW50cworICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiBy
YW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAg
ICBoYXNQcmV2aW91cygpOworCisgIC8qKgorICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlv
biByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgKiBpdGVyYXRpb24gcmFu
Z2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGl0c2VsZi4KKyAgICogVGhl
IG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgdW5pdHMgZm9yd2FyZAor
ICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVs
dGEuCisgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVsYXRpdmUgdG8gb3JpZ2luLiBB
IHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVh
bnMgYmFja3dhcmQuCisgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtrU3Rh
cnQsIGtDdXJyZW50LCBrRW5kfQorICAgKiBAcmV0dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlKGludDMy
X3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKTsKKworICAvKioKKyAgICogTW92ZXMgdGhlIGN1cnJl
bnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICogaXRl
cmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYu
CisgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHBvaW50
cyBmb3J3YXJkCisgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBu
ZWdhdGl2ZSBkZWx0YS4KKyAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0
byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICogYSBuZWdhdGl2
ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVy
YXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAqIEByZXR1cm4gdGhlIG5ldyBwb3Np
dGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgaW50MzJfdCAgICAg
IG1vdmUzMihpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbik7CisKKyAgLyoqCisgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciBhIG5ldyByYW5nZSBvZiB0ZXh0CisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdm9pZCBzZXRUZXh0KGNvbnN0IFVDaGFyKiBuZXdU
ZXh0LCBpbnQzMl90IG5ld1RleHRMZW5ndGgpOworCisgIC8qKgorICAgKiBDb3BpZXMgdGhlIFVD
aGFyIGFycmF5IHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBVbmljb2RlU3RyaW5nCisgICAqIHJl
ZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZlbiBpZiB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIGFj
cm9zcworICAgKiBvbmx5IGEgcGFydCBvZiB0aGlzIHN0cmluZywgdGhlIHdob2xlIHN0cmluZyBp
cyBjb3BpZWQuCisgICAqIEBwYXJhbSByZXN1bHQgUmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0
IHVuZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFs
IHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNvZGVTdHJpbmcmIHJlc3VsdCk7CisKKyAgLyoq
CisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzIChub3QgcmVhbGx5IHB1Ymxp
YykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgc3RhdGljIFVDbGFzc0lEICAgICAgICAgVV9FWFBPUlQyIGdldFN0
YXRpY0NsYXNzSUQodm9pZCk7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0
aGlzIG9iamVjdCAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBm
b3IgdGhpcyBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBV
Q2xhc3NJRCAgICAgICAgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3Q7CisKK3Byb3RlY3Rl
ZDoKKyAgLyoqCisgICAqIFByb3RlY3RlZCBjb25zdHJ1Y3RvcgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgLyoqCisgICAqIFByb3Rl
Y3RlZCBtZW1iZXIgdGV4dAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGNvbnN0IFVD
aGFyKiAgICAgICAgICAgIHRleHQ7CisKK307CisKK1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VkYXRhLmggYi9Tb3VyY2UvV1RGL2lj
dS91bmljb2RlL3VkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjllNDY2MzBkNTM5OGQ4MjczOGQxZDYxZmZj
NGQyYzkxNGU4YzY4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUv
dWRhdGEuaApAQCAtMCwwICsxLDQzMCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgor
KiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisq
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1ZGF0YS5oCisqICAgZW5j
b2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRl
bnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMTk5OW9jdDI1CisqICAgY3JlYXRlZCBieTog
TWFya3VzIFcuIFNjaGVyZXIKKyovCisKKyNpZm5kZWYgX19VREFUQV9IX18KKyNkZWZpbmUgX19V
REFUQV9IX18KKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29k
ZS9sb2NhbHBvaW50ZXIuaCIKKworVV9DREVDTF9CRUdJTgorCisvKioKKyAqIFxmaWxlCisgKiBc
YnJpZWYgQyBBUEk6IERhdGEgbG9hZGluZyBpbnRlcmZhY2UKKyAqCisgKiA8aDI+SW5mb3JtYXRp
b24gYWJvdXQgZGF0YSBsb2FkaW5nIGludGVyZmFjZTwvaDI+CisgKgorICogVGhpcyBBUEkgaXMg
dXNlZCB0byBmaW5kIGFuZCBlZmZpY2llbnRseSBsb2FkIGRhdGEgZm9yIElDVSBhbmQgYXBwbGlj
YXRpb25zCisgKiB1c2luZyBJQ1UuIEl0IHByb3ZpZGVzIGFuIGFic3RyYWN0IGludGVyZmFjZSB0
aGF0IHNwZWNpZmllcyBhIGRhdGEgdHlwZSBhbmQKKyAqIG5hbWUgdG8gZmluZCBhbmQgbG9hZCB0
aGUgZGF0YS4gTm9ybWFsbHkgdGhpcyBBUEkgaXMgdXNlZCBieSBvdGhlciBJQ1UgQVBJcworICog
dG8gbG9hZCByZXF1aXJlZCBkYXRhIG91dCBvZiB0aGUgSUNVIGRhdGEgbGlicmFyeSwgYnV0IGl0
IGNhbiBiZSB1c2VkIHRvCisgKiBsb2FkIGRhdGEgb3V0IG9mIG90aGVyIHBsYWNlcy4KKyAqCisg
KiBTZWUgdGhlIFVzZXIgR3VpZGUgRGF0YSBNYW5hZ2VtZW50IGNoYXB0ZXIuCisgKi8KKyAKKyNp
Zm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorLyoqCisgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBh
cmF0ZSBwYWNrYWdlIG5hbWVzIGZyb20gdHJlZSBuYW1lcyAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4w
CisgKi8KKyNkZWZpbmUgVV9UUkVFX1NFUEFSQVRPUiAnLScKKworLyoqCisgKiBTdHJpbmcgdXNl
ZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZyb20gdHJlZSBuYW1lcyAKKyAqIEBpbnRlcm5h
bCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX1NFUEFSQVRPUl9TVFJJTkcgIi0iCisKKy8q
KgorICogQ2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgcGFydHMgb2YgZW50cnkgbmFtZXMKKyAq
IEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX0VOVFJZX1NFUF9DSEFSICcv
JworCisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhcnRzIG9mIGVudHJ5IG5hbWVz
CisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisjZGVmaW5lIFVfVFJFRV9FTlRSWV9TRVBfU1RS
SU5HICIvIgorCisvKioKKyAqIEFsaWFzIGZvciBzdGFuZGFyZCBJQ1UgZGF0YSAKKyAqIEBpbnRl
cm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9JQ1VEQVRBX0FMSUFTICJJQ1VEQVRBIgorCisj
ZW5kaWYgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisvKioKKyAqIFVEYXRhSW5mbyBjb250
YWlucyB0aGUgcHJvcGVydGllcyBhYm91dCB0aGUgcmVxdWVzdGVkIGRhdGEuCisgKiBUaGlzIGlz
IG1ldGEgZGF0YS4KKyAqCisgKiA8cD5UaGlzIHN0cnVjdHVyZSBtYXkgZ3JvdyBpbiB0aGUgZnV0
dXJlLCBpbmRpY2F0ZWQgYnkgdGhlCisgKiA8Y29kZT5zaXplPC9jb2RlPiBmaWVsZC48L3A+Cisg
KgorICogPHA+SUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQsIGFuZCBzaG91bGQg
YmUgMTYtYWxpZ25lZC4KKyAqIFRoZSBVRGF0YUluZm8gc3RydWN0IGJlZ2lucyA0IGJ5dGVzIGFm
dGVyIHRoZSBzdGFydCBvZiB0aGUgZGF0YSBpdGVtLAorICogc28gaXQgaXMgNC1hbGlnbmVkLgor
ICoKKyAqIDxwPlRoZSBwbGF0Zm9ybSBkYXRhIHByb3BlcnR5IGZpZWxkcyBoZWxwIGRldGVybWlu
ZSBpZiBhIGRhdGEKKyAqIGZpbGUgY2FuIGJlIGVmZmljaWVudGx5IHVzZWQgb24gYSBnaXZlbiBt
YWNoaW5lLgorICogVGhlIHBhcnRpY3VsYXIgZmllbGRzIGFyZSBvZiBpbXBvcnRhbmNlIG9ubHkg
aWYgdGhlIGRhdGEKKyAqIGlzIGFmZmVjdGVkIGJ5IHRoZSBwcm9wZXJ0aWVzIC0gaWYgdGhlcmUg
aXMgaW50ZWdlciBkYXRhCisgKiB3aXRoIHdvcmQgc2l6ZXMgPiAxIGJ5dGUsIGNoYXIqIHRleHQs
IG9yIFVDaGFyKiB0ZXh0LjwvcD4KKyAqCisgKiA8cD5UaGUgaW1wbGVtZW50YXRpb24gZm9yIHRo
ZSA8Y29kZT51ZGF0YV9vcGVuW0Nob2ljZV0oKTwvY29kZT4KKyAqIGZ1bmN0aW9ucyBtYXkgcmVq
ZWN0IGRhdGEgYmFzZWQgb24gdGhlIHZhbHVlIGluIDxjb2RlPmlzQmlnRW5kaWFuPC9jb2RlPi4K
KyAqIE5vIG90aGVyIGZpZWxkIGlzIHVzZWQgYnkgdGhlIDxjb2RlPnVkYXRhPC9jb2RlPiBBUEkg
aW1wbGVtZW50YXRpb24uPC9wPgorICoKKyAqIDxwPlRoZSA8Y29kZT5kYXRhRm9ybWF0PC9jb2Rl
PiBtYXkgYmUgdXNlZCB0byBpZGVudGlmeQorICogdGhlIGtpbmQgb2YgZGF0YSwgZS5nLiBhIGNv
bnZlcnRlciB0YWJsZS48L3A+CisgKgorICogPHA+VGhlIDxjb2RlPmZvcm1hdFZlcnNpb248L2Nv
ZGU+IGZpZWxkIHNob3VsZCBiZSB1c2VkIHRvCisgKiBtYWtlIHN1cmUgdGhhdCB0aGUgZm9ybWF0
IGNhbiBiZSBpbnRlcnByZXRlZC4KKyAqIEl0IG1heSBiZSBhIGdvb2QgaWRlYSB0byBjaGVjayBv
bmx5IGZvciB0aGUgb25lIG9yIHR3byBoaWdoZXN0CisgKiBvZiB0aGUgdmVyc2lvbiBlbGVtZW50
cyB0byBhbGxvdyB0aGUgZGF0YSBtZW1vcnkgdG8KKyAqIGdldCBtb3JlIG9yIHNvbWV3aGF0IHJl
YXJyYW5nZWQgY29udGVudHMsIGZvciBhcyBsb25nCisgKiBhcyB0aGUgdXNpbmcgY29kZSBjYW4g
c3RpbGwgaW50ZXJwcmV0IHRoZSBvbGRlciBjb250ZW50cy48L3A+CisgKgorICogPHA+VGhlIDxj
b2RlPmRhdGFWZXJzaW9uPC9jb2RlPiBmaWVsZCBpcyBpbnRlbmRlZCB0byBiZSBhCisgKiBjb21t
b24gcGxhY2UgdG8gc3RvcmUgdGhlIHNvdXJjZSB2ZXJzaW9uIG9mIHRoZSBkYXRhOworICogZm9y
IGRhdGEgZnJvbSB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgZGF0YWJhc2UsIHRoaXMgY291bGQKKyAq
IHJlZmxlY3QgdGhlIFVuaWNvZGUgdmVyc2lvbi48L3A+CisgKgorICogQHN0YWJsZSBJQ1UgMi4w
CisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICAvKiogc2l6ZW9mKFVEYXRhSW5mbykKKyAgICAg
KiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWludDE2X3Qgc2l6ZTsKKworICAgIC8qKiB1bnVz
ZWQsIHNldCB0byAwIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQxNl90IHJl
c2VydmVkV29yZDsKKworICAgIC8qIHBsYXRmb3JtIGRhdGEgcHJvcGVydGllcyAqLworICAgIC8q
KiAwIGZvciBsaXR0bGUtZW5kaWFuIG1hY2hpbmUsIDEgZm9yIGJpZy1lbmRpYW4KKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWludDhfdCBpc0JpZ0VuZGlhbjsKKworICAgIC8qKiBz
ZWUgVV9DSEFSU0VUX0ZBTUlMWSB2YWx1ZXMgaW4gdXR5cGVzLmggCisgICAgICogIEBzdGFibGUg
SUNVIDIuMCovCisgICAgdWludDhfdCBjaGFyc2V0RmFtaWx5OworCisgICAgLyoqIHNpemVvZihV
Q2hhciksIG9uZSBvZiB7IDEsIDIsIDQgfSAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAg
ICB1aW50OF90IHNpemVvZlVDaGFyOworCisgICAgLyoqIHVudXNlZCwgc2V0IHRvIDAgCisgICAg
ICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCByZXNlcnZlZEJ5dGU7CisKKyAgICAv
KiogZGF0YSBmb3JtYXQgaWRlbnRpZmllciAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAg
ICB1aW50OF90IGRhdGFGb3JtYXRbNF07CisKKyAgICAvKiogdmVyc2lvbnM6IFswXSBtYWpvciBb
MV0gbWlub3IgWzJdIG1pbGxpIFszXSBtaWNybyAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8K
KyAgICB1aW50OF90IGZvcm1hdFZlcnNpb25bNF07CisKKyAgICAvKiogdmVyc2lvbnM6IFswXSBt
YWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBtaWNybyAKKyAgICAgKiAgQHN0YWJsZSBJQ1Ug
Mi4wKi8KKyAgICB1aW50OF90IGRhdGFWZXJzaW9uWzRdOworfSBVRGF0YUluZm87CisKKy8qIEFQ
SSBmb3IgcmVhZGluZyBkYXRhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBGb3J3YXJkIGRlY2xhcmF0aW9uIG9mIHRoZSBk
YXRhIG1lbW9yeSB0eXBlLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0
IFVEYXRhTWVtb3J5IFVEYXRhTWVtb3J5OworCisvKioKKyAqIENhbGxiYWNrIGZ1bmN0aW9uIGZv
ciB1ZGF0YV9vcGVuQ2hvaWNlKCkuCisgKiBAcGFyYW0gY29udGV4dCBwYXJhbWV0ZXIgcGFzc2Vk
IGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPi4KKyAqIEBwYXJhbSB0eXBlIFRo
ZSB0eXBlIG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBpbnRvIDxjb2RlPnVkYXRhX29wZW5DaG9pY2Uo
KTwvY29kZT4uCisgKiAgICAgICAgICAgICBJdCBtYXkgYmUgPGNvZGU+TlVMTDwvY29kZT4uCisg
KiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgZGF0YSBhcyBwYXNzZWQgaW50byA8Y29kZT51
ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICogQHBhcmFtIHBJbmZvIEEgcG9pbnRlciB0byB0
aGUgPGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1Y3R1cmUKKyAqICAgICAgICAgICAgICBvZiBk
YXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVkIGFuZCB3aWxsIGJlIHJldHVybmVkCisgKiAgICAgICAg
ICAgICAgYnkgPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPiBpZiB0aGlzIGZ1bmN0aW9u
CisgKiAgICAgICAgICAgICAgcmV0dXJucyA8Y29kZT5UUlVFPC9jb2RlPi4KKyAqIEByZXR1cm4g
VFJVRSBpZiB0aGUgY3VycmVudCBkYXRhIG1lbW9yeSBpcyBhY2NlcHRhYmxlCisgKiBAc3RhYmxl
IElDVSAyLjAKKyAqLwordHlwZWRlZiBVQm9vbCBVX0NBTExDT05WCitVRGF0YU1lbW9yeUlzQWNj
ZXB0YWJsZSh2b2lkICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFVEYXRhSW5mbyAqcEluZm8pOworCisKKy8qKgorICogQ29udmVuaWVuY2UgZnVuY3Rpb24uCisg
KiBUaGlzIGZ1bmN0aW9uIHdvcmtzIHRoZSBzYW1lIGFzIDxjb2RlPnVkYXRhX29wZW5DaG9pY2U8
L2NvZGU+CisgKiBleGNlcHQgdGhhdCBhbnkgZGF0YSB0aGF0IG1hdGNoZXMgdGhlIHR5cGUgYW5k
IG5hbWUKKyAqIGlzIGFzc3VtZWQgdG8gYmUgYWNjZXB0YWJsZS4KKyAqIEBwYXJhbSBwYXRoIFNw
ZWNpZmllcyBhbiBhYnNvbHV0ZSBwYXRoIGFuZC9vciBhIGJhc2VuYW1lIGZvciB0aGUKKyAqICAg
ICAgICAgICAgIGZpbmRpbmcgb2YgdGhlIGRhdGEgaW4gdGhlIGZpbGUgc3lzdGVtLgorICogICAg
ICAgICAgICAgPGNvZGU+TlVMTDwvY29kZT4gZm9yIElDVSBkYXRhLgorICogQHBhcmFtIHR5cGUg
QSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgZGF0YSB0byBiZSBsb2FkZWQuCisg
KiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVzb3VyY2UgYnVuZGxlcyBhcmUgbG9hZGVkIHdp
dGggdHlwZSAicmVzIiwKKyAqICAgICAgICAgICAgIGNvbnZlcnNpb24gdGFibGVzIHdpdGggdHlw
ZSAiY252Ii4KKyAqICAgICAgICAgICAgIFRoaXMgbWF5IGJlIDxjb2RlPk5VTEw8L2NvZGU+IG9y
IGVtcHR5LgorICogQHBhcmFtIG5hbWUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIG5hbWUg
b2YgdGhlIGRhdGEuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBBbiBJQ1UgVUVycm9yQ29kZSBwYXJh
bWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICogQHJldHVybiBBIHBv
aW50ZXIgKGhhbmRsZSkgdG8gYSBkYXRhIG1lbW9yeSBvYmplY3QsIG9yIDxjb2RlPk5VTEw8L2Nv
ZGU+CisgKiAgICAgICAgIGlmIGFuIGVycm9yIG9jY3Vycy4gQ2FsbCA8Y29kZT51ZGF0YV9nZXRN
ZW1vcnkoKTwvY29kZT4KKyAqICAgICAgICAgdG8gZ2V0IGEgcG9pbnRlciB0byB0aGUgYWN0dWFs
IGRhdGEuCisgKgorICogQHNlZSB1ZGF0YV9vcGVuQ2hvaWNlCisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqLworVV9TVEFCTEUgVURhdGFNZW1vcnkgKiBVX0VYUE9SVDIKK3VkYXRhX29wZW4oY29uc3Qg
Y2hhciAqcGF0aCwgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAg
ICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogRGF0YSBsb2FkaW5nIGZ1bmN0
aW9uLgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGZpbmQgYW5kIGxvYWQgZWZmaWNpZW50
bHkgZGF0YSBmb3IKKyAqIElDVSBhbmQgYXBwbGljYXRpb25zIHVzaW5nIElDVS4KKyAqIEl0IHBy
b3ZpZGVzIGFuIGFic3RyYWN0IGludGVyZmFjZSB0aGF0IGFsbG93cyB0byBzcGVjaWZ5IGEgZGF0
YQorICogdHlwZSBhbmQgbmFtZSB0byBmaW5kIGFuZCBsb2FkIHRoZSBkYXRhLgorICoKKyAqIDxw
PlRoZSBpbXBsZW1lbnRhdGlvbiBkZXBlbmRzIG9uIHBsYXRmb3JtIHByb3BlcnRpZXMgYW5kIHVz
ZXIgcHJlZmVyZW5jZXMKKyAqIGFuZCBtYXkgaW52b2x2ZSBsb2FkaW5nIHNoYXJlZCBsaWJyYXJp
ZXMgKERMTHMpLCBtYXBwaW5nCisgKiBmaWxlcyBpbnRvIG1lbW9yeSwgb3IgZm9wZW4oKS9mcmVh
ZCgpIGZpbGVzLgorICogSXQgbWF5IGFsc28gaW52b2x2ZSB1c2luZyBzdGF0aWMgbWVtb3J5IG9y
IGRhdGFiYXNlIHF1ZXJpZXMgZXRjLgorICogU2V2ZXJhbCBvciBhbGwgZGF0YSBpdGVtcyBtYXkg
YmUgY29tYmluZWQgaW50byBvbmUgZW50aXR5CisgKiAoRExMLCBtZW1vcnktbWFwcGFibGUgZmls
ZSkuPC9wPgorICoKKyAqIDxwPlRoZSBkYXRhIGlzIGFsd2F5cyBwcmVjZWRlZCBieSBhIGhlYWRl
ciB0aGF0IGluY2x1ZGVzCisgKiBhIDxjb2RlPlVEYXRhSW5mbzwvY29kZT4gc3RydWN0dXJlLgor
ICogVGhlIGNhbGxlcidzIDxjb2RlPmlzQWNjZXB0YWJsZSgpPC9jb2RlPiBmdW5jdGlvbiBpcyBj
YWxsZWQgdG8gbWFrZQorICogc3VyZSB0aGF0IHRoZSBkYXRhIGlzIHVzZWZ1bC4gSXQgbWF5IGJl
IGNhbGxlZCBzZXZlcmFsIHRpbWVzIGlmIGl0CisgKiByZWplY3RzIHRoZSBkYXRhIGFuZCB0aGVy
ZSBpcyBtb3JlIHRoYW4gb25lIGxvY2F0aW9uIHdpdGggZGF0YQorICogbWF0Y2hpbmcgdGhlIHR5
cGUgYW5kIG5hbWUuPC9wPgorICoKKyAqIDxwPklmIDxjb2RlPnBhdGg9PU5VTEw8L2NvZGU+LCB0
aGVuIElDVSBkYXRhIGlzIGxvYWRlZC4KKyAqIE90aGVyd2lzZSwgaXQgaXMgc2VwYXJhdGVkIGlu
dG8gYSBiYXNlbmFtZSBhbmQgYSBiYXNlbmFtZS1sZXNzIGRpcmVjdG9yeSBzdHJpbmcuCisgKiBU
aGUgYmFzZW5hbWUgaXMgdXNlZCBhcyB0aGUgZGF0YSBwYWNrYWdlIG5hbWUsIGFuZCB0aGUgZGly
ZWN0b3J5IGlzCisgKiBsb2dpY2FsbHkgcHJlcGVuZGVkIHRvIHRoZSBJQ1UgZGF0YSBkaXJlY3Rv
cnkgc3RyaW5nLjwvcD4KKyAqCisgKiA8cD5Gb3IgZGV0YWlscyBhYm91dCBJQ1UgZGF0YSBsb2Fk
aW5nIHNlZSB0aGUgVXNlciBHdWlkZQorICogRGF0YSBNYW5hZ2VtZW50IGNoYXB0ZXIuIChodHRw
Oi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9pY3VkYXRhLmh0bWwpPC9wPgorICoKKyAqIEBw
YXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0ZSBwYXRoIGFuZC9vciBhIGJhc2VuYW1lIGZv
ciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcgb2YgdGhlIGRhdGEgaW4gdGhlIGZpbGUgc3lz
dGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVMTDwvY29kZT4gZm9yIElDVSBkYXRhLgorICog
QHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgZGF0YSB0byBi
ZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVzb3VyY2UgYnVuZGxlcyBh
cmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAqICAgICAgICAgICAgIGNvbnZlcnNpb24gdGFi
bGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAgICAgICAgIFRoaXMgbWF5IGJlIDxjb2RlPk5V
TEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFtIG5hbWUgQSBzdHJpbmcgdGhhdCBzcGVjaWZp
ZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBAcGFyYW0gaXNBY2NlcHRhYmxlIFRoaXMgZnVu
Y3Rpb24gaXMgY2FsbGVkIHRvIHZlcmlmeSB0aGF0IGxvYWRlZCBkYXRhCisgKiAgICAgICAgICAg
ICAgICAgICAgIGlzIHVzZWZ1bCBmb3IgdGhlIGNsaWVudCBjb2RlLiBJZiBpdCByZXR1cm5zIEZB
TFNFCisgKiAgICAgICAgICAgICAgICAgICAgIGZvciBhbGwgZGF0YSBpdGVtcywgdGhlbiA8Y29k
ZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+CisgKiAgICAgICAgICAgICAgICAgICAgIHdpbGwg
cmV0dXJuIHdpdGggYW4gZXJyb3IuCisgKiBAcGFyYW0gY29udGV4dCBBcmJpdHJhcnkgcGFyYW1l
dGVyIHRvIGJlIHBhc3NlZCBpbnRvIGlzQWNjZXB0YWJsZS4KKyAqIEBwYXJhbSBwRXJyb3JDb2Rl
IEFuIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+TlVMTDwv
Y29kZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAoaGFuZGxlKSB0byBhIGRhdGEgbWVtb3J5IG9i
amVjdCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAqICAgICAgICAgaWYgYW4gZXJyb3Igb2NjdXJz
LiBDYWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPgorICogICAgICAgICB0byBnZXQg
YSBwb2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitV
X1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRhdGFfb3BlbkNob2ljZShjb25zdCBj
aGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAg
ICAgICAgICBVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSAqaXNBY2NlcHRhYmxlLCB2b2lkICpjb250
ZXh0LAorICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisg
KiBDbG9zZSB0aGUgZGF0YSBtZW1vcnkuCisgKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVk
IHRvIGFsbG93IHRoZSBzeXN0ZW0gdG8KKyAqIHJlbGVhc2UgcmVzb3VyY2VzIGFzc29jaWF0ZWQg
d2l0aCB0aGlzIGRhdGEgbWVtb3J5LgorICogQHBhcmFtIHBEYXRhIFRoZSBwb2ludGVyIHRvIGRh
dGEgbWVtb3J5IG9iamVjdAorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQg
VV9FWFBPUlQyCit1ZGF0YV9jbG9zZShVRGF0YU1lbW9yeSAqcERhdGEpOworCisjaWYgVV9TSE9X
X0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBcY2xhc3MgTG9j
YWxVRGF0YU1lbW9yeVBvaW50ZXIKKyAqICJTbWFydCBwb2ludGVyIiBjbGFzcywgY2xvc2VzIGEg
VURhdGFNZW1vcnkgdmlhIHVkYXRhX2Nsb3NlKCkuCisgKiBGb3IgbW9zdCBtZXRob2RzIHNlZSB0
aGUgTG9jYWxQb2ludGVyQmFzZSBiYXNlIGNsYXNzLgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVy
QmFzZQorICogQHNlZSBMb2NhbFBvaW50ZXIKKyAqIEBzdGFibGUgSUNVIDQuNAorICovCitVX0RF
RklORV9MT0NBTF9PUEVOX1BPSU5URVIoTG9jYWxVRGF0YU1lbW9yeVBvaW50ZXIsIFVEYXRhTWVt
b3J5LCB1ZGF0YV9jbG9zZSk7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYKKworLyoqCisg
KiBHZXQgdGhlIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhIGluc2lkZSB0aGUgZGF0YSBtZW1v
cnkuCisgKiBUaGUgZGF0YSBpcyByZWFkLW9ubHkuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBh
dCBsZWFzdCA4LWFsaWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqCisgKiBAcGFy
YW0gcERhdGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBtZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxlIElD
VSAyLjAKKyAqLworVV9TVEFCTEUgY29uc3Qgdm9pZCAqIFVfRVhQT1JUMgordWRhdGFfZ2V0TWVt
b3J5KFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKy8qKgorICogR2V0IHRoZSBpbmZvcm1hdGlvbiBm
cm9tIHRoZSBkYXRhIG1lbW9yeSBoZWFkZXIuCisgKiBUaGlzIGFsbG93cyB0byBnZXQgYWNjZXNz
IHRvIHRoZSBoZWFkZXIgY29udGFpbmluZworICogcGxhdGZvcm0gZGF0YSBwcm9wZXJ0aWVzIGV0
Yy4gd2hpY2ggaXMgbm90IHBhcnQgb2YKKyAqIHRoZSBkYXRhIGl0c2VsZiBhbmQgY2FuIHRoZXJl
Zm9yZSBub3QgYmUgYWNjZXNzZWQKKyAqIHZpYSB0aGUgcG9pbnRlciB0aGF0IDxjb2RlPnVkYXRh
X2dldE1lbW9yeSgpPC9jb2RlPiByZXR1cm5zLgorICoKKyAqIEBwYXJhbSBwRGF0YSBwb2ludGVy
IHRvIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QKKyAqIEBwYXJhbSBwSW5mbyBwb2ludGVyIHRvIGEg
VURhdGFJbmZvIG9iamVjdDsKKyAqICAgICAgICAgICAgICBpdHMgPGNvZGU+c2l6ZTwvY29kZT4g
ZmllbGQgbXVzdCBiZSBzZXQgY29ycmVjdGx5LAorICogICAgICAgICAgICAgIHR5cGljYWxseSB0
byA8Y29kZT5zaXplb2YoVURhdGFJbmZvKTwvY29kZT4uCisgKgorICogPGNvZGU+KnBJbmZvPC9j
b2RlPiB3aWxsIGJlIGZpbGxlZCB3aXRoIHRoZSBVRGF0YUluZm8gc3RydWN0dXJlCisgKiBpbiB0
aGUgZGF0YSBtZW1vcnkgb2JqZWN0LiBJZiB0aGlzIHN0cnVjdHVyZSBpcyBzbWFsbGVyIHRoYW4K
KyAqIDxjb2RlPnBJbmZvLT5zaXplPC9jb2RlPiwgdGhlbiB0aGUgPGNvZGU+c2l6ZTwvY29kZT4g
d2lsbCBiZQorICogYWRqdXN0ZWQgYW5kIG9ubHkgcGFydCBvZiB0aGUgc3RydWN0dXJlIHdpbGwg
YmUgZmlsbGVkLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBP
UlQyCit1ZGF0YV9nZXRJbmZvKFVEYXRhTWVtb3J5ICpwRGF0YSwgVURhdGFJbmZvICpwSW5mbyk7
CisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgbm9ybWFsIElDVSBkYXRhIGxv
YWRpbmcgcHJvY2VzcyBhbmQKKyAqIGFsbG93cyB5b3UgdG8gZm9yY2UgSUNVJ3Mgc3lzdGVtIGRh
dGEgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNpZmllZAorICogYXJlYSBpbiBtZW1vcnkuCisg
KgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQsIGFuZCBzaG91bGQgYmUg
MTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9pY3Vk
YXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlzIGRhdGEgaXMgdGhhdCBvZiB0aGUgaWN1IGNv
bW1vbiBkYXRhIGZpbGUsIGFzIGlzCisgKiBnZW5lcmF0ZWQgYnkgdGhlIHBrZ2RhdGEgdG9vbCB3
aXRoIG1vZGU9Y29tbW9uIG9yIG1vZGU9ZGxsLgorICogWW91IGNhbiByZWFkIGluIGEgd2hvbGUg
Y29tbW9uIG1vZGUgZmlsZSBhbmQgcGFzcyB0aGUgYWRkcmVzcyB0byB0aGUgc3RhcnQgb2YgdGhl
CisgKiBkYXRhLCBvciAod2l0aCB0aGUgYXBwcm9wcmlhdGUgbGluayBvcHRpb25zKSBwYXNzIGlu
IHRoZSBwb2ludGVyIHRvCisgKiB0aGUgZGF0YSB0aGF0IGhhcyBiZWVuIGxvYWRlZCBmcm9tIGEg
ZGxsIGJ5IHRoZSBvcGVyYXRpbmcgc3lzdGVtLAorICogYXMgc2hvd24gaW4gdGhpcyBjb2RlOgor
ICoKKyAqICAgICAgIGV4dGVybiBjb25zdCBjaGFyIFVfSU1QT1JUIFVfSUNVREFUQV9FTlRSWV9Q
T0lOVCBbXTsKKyAqICAgICAgICAvLyBVX0lDVURBVEFfRU5UUllfUE9JTlQgaXMgc2FtZSBhcyBl
bnRyeSBwb2ludCBzcGVjaWZpZWQgdG8gcGtnZGF0YSB0b29sCisgKiAgICAgICBVRXJyb3JDb2Rl
ICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgKgorICogICAgICAgdWRhdGFfc2V0Q29tbW9uRGF0
YSgmVV9JQ1VEQVRBX0VOVFJZX1BPSU5ULCAmc3RhdHVzKTsKKyAqCisgKiBJdCBpcyBpbXBvcnRh
bnQgdGhhdCB0aGUgZGVjbGFyYXRpb24gYmUgYXMgYWJvdmUuIFRoZSBlbnRyeSBwb2ludAorICog
bXVzdCBub3QgYmUgZGVjbGFyZWQgYXMgYW4gZXh0ZXJuIHZvaWQqLgorICoKKyAqIFN0YXJ0aW5n
IHdpdGggSUNVIDQuNCwgaXQgaXMgcG9zc2libGUgdG8gc2V0IHNldmVyYWwgZGF0YSBwYWNrYWdl
cywKKyAqIG9uZSBwZXIgY2FsbCB0byB0aGlzIGZ1bmN0aW9uLgorICogdWRhdGFfb3BlbigpIHdp
bGwgbG9vayBmb3IgZGF0YSBpbiB0aGUgbXVsdGlwbGUgZGF0YSBwYWNrYWdlcyBpbiB0aGUgb3Jk
ZXIKKyAqIGluIHdoaWNoIHRoZXkgd2VyZSBzZXQuCisgKiBUaGUgcG9zaXRpb24gb2YgdGhlIGxp
bmtlZC1pbiBvciBkZWZhdWx0LW5hbWUgSUNVIC5kYXRhIHBhY2thZ2UgaW4gdGhlCisgKiBzZWFy
Y2ggbGlzdCBkZXBlbmRzIG9uIHdoZW4gdGhlIGZpcnN0IGRhdGEgaXRlbSBpcyBsb2FkZWQgdGhh
dCBpcyBub3QgY29udGFpbmVkCisgKiBpbiB0aGUgYWxyZWFkeSBleHBsaWNpdGx5IHNldCBwYWNr
YWdlcy4KKyAqIElmIGRhdGEgd2FzIGxvYWRlZCBpbXBsaWNpdGx5IGJlZm9yZSB0aGUgZmlyc3Qg
Y2FsbCB0byB0aGlzIGZ1bmN0aW9uCisgKiAoZm9yIGV4YW1wbGUsIHZpYSBvcGVuaW5nIGEgY29u
dmVydGVyLCBjb25zdHJ1Y3RpbmcgYSBVbmljb2RlU3RyaW5nCisgKiBmcm9tIGRlZmF1bHQtY29k
ZXBhZ2UgZGF0YSwgdXNpbmcgZm9ybWF0dGluZyBvciBjb2xsYXRpb24gQVBJcywgZXRjLiksCisg
KiB0aGVuIHRoZSBkZWZhdWx0IGRhdGEgd2lsbCBiZSBmaXJzdCBpbiB0aGUgbGlzdC4KKyAqCisg
KiBUaGlzIGZ1bmN0aW9uIGhhcyBubyBlZmZlY3Qgb24gYXBwbGljYXRpb24gKG5vbiBJQ1UpIGRh
dGEuICBTZWUgdWRhdGFfc2V0QXBwRGF0YSgpCisgKiBmb3Igc2ltaWxhciBmdW5jdGlvbmFsaXR5
IGZvciBhcHBsaWNhdGlvbiBkYXRhLgorICoKKyAqIEBwYXJhbSBkYXRhIHBvaW50ZXIgdG8gSUNV
IGNvbW1vbiBkYXRhCisgKiBAcGFyYW0gZXJyIG91dGdvaW5nIGVycm9yIHN0YXR1cyA8Y29kZT5V
X1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9VTlNVUFBPUlRFRF9FUlJPUjwvY29kZT4KKyAqIEBz
dGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWRhdGFfc2V0Q29t
bW9uRGF0YShjb25zdCB2b2lkICpkYXRhLCBVRXJyb3JDb2RlICplcnIpOworCisKKy8qKgorICog
VGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgbm9ybWFsIElDVSBkYXRhIGxvYWRpbmcgcHJvY2Vz
cyBmb3IgYXBwbGljYXRpb24tc3BlY2lmaWMKKyAqIGRhdGEgYW5kIGFsbG93cyB5b3UgdG8gZm9y
Y2UgdGhlIGl0IHRvIGNvbWUgb3V0IG9mIGEgdXNlci1zcGVjaWZpZWQKKyAqIHBvaW50ZXIuCisg
KgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQsIGFuZCBzaG91bGQgYmUg
MTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9pY3Vk
YXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlzIGRhdGEgaXMgdGhhdCBvZiB0aGUgaWN1IGNv
bW1vbiBkYXRhIGZpbGUsIGxpa2UgJ2ljdWR0MjZsLmRhdCcKKyAqIG9yIHRoZSBjb3JyZXNwb25k
aW5nIHNoYXJlZCBsaWJyYXJ5IChETEwpIGZpbGUuCisgKiBUaGUgYXBwbGljYXRpb24gbXVzdCBy
ZWFkIGluIG9yIG90aGVyd2lzZSBjb25zdHJ1Y3QgYW4gaW1hZ2Ugb2YgdGhlIGRhdGEgYW5kIHRo
ZW4KKyAqIHBhc3MgdGhlIGFkZHJlc3Mgb2YgaXQgdG8gdGhpcyBmdW5jdGlvbi4KKyAqCisgKgor
ICogV2FybmluZzogIHNldEFwcERhdGEgd2lsbCBzZXQgYSBVX1VTSU5HX0RFRkFVTFRfV0FSTklO
RyBjb2RlIGlmCisgKiAgICAgICAgICAgZGF0YSB3aXRoIHRoZSBzcGVjaWZlZCBwYXRoIHRoYXQg
aGFzIGFscmVhZHkgYmVlbiBvcGVuZWQsIG9yCisgKiAgICAgICAgICAgaWYgc2V0QXBwRGF0YSB3
aXRoIHRoZSBzYW1lIHBhdGggaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQuCisgKiAgICAgICAgICAg
QW55IHN1Y2ggY2FsbHMgdG8gc2V0QXBwRGF0YSB3aWxsIGhhdmUgbm8gZWZmZWN0LgorICoKKyAq
CisgKiBAcGFyYW0gcGFja2FnZU5hbWUgdGhlIHBhY2thZ2UgbmFtZSBieSB3aGljaCB0aGUgYXBw
bGljYXRpb24gd2lsbCByZWZlcgorICogICAgICAgICAgICAgdG8gKG9wZW4pIHRoaXMgZGF0YQor
ICogQHBhcmFtIGRhdGEgcG9pbnRlciB0byB0aGUgZGF0YQorICogQHBhcmFtIGVyciBvdXRnb2lu
ZyBlcnJvciBzdGF0dXMgPGNvZGU+VV9VU0lOR19ERUZBVUxUX1dBUk5JTkcsIFVfVU5TVVBQT1JU
RURfRVJST1I8L2NvZGU+CisgKiBAc2VlIHVkYXRhX3NldENvbW1vbkRhdGEKKyAqIEBzdGFibGUg
SUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWRhdGFfc2V0QXBwRGF0YShj
b25zdCBjaGFyICpwYWNrYWdlTmFtZSwgY29uc3Qgdm9pZCAqZGF0YSwgVUVycm9yQ29kZSAqZXJy
KTsKKworLyoqCisgKiBQb3NzaWJsZSBzZXR0aW5ncyBmb3IgdWRhdGFfc2V0RmlsZUFjY2Vzcygp
CisgKiBAc2VlIHVkYXRhX3NldEZpbGVBY2Nlc3MKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCit0
eXBlZGVmIGVudW0gVURhdGFGaWxlQWNjZXNzIHsKKyAgICAvKiogSUNVIGxvb2tzIGZvciBkYXRh
IGluIHNpbmdsZSBmaWxlcyBmaXJzdCwgdGhlbiBpbiBwYWNrYWdlcy4gKGRlZmF1bHQpIEBzdGFi
bGUgSUNVIDMuNCAqLworICAgIFVEQVRBX0ZJTEVTX0ZJUlNULAorICAgIC8qKiBBbiBhbGlhcyBm
b3IgdGhlIGRlZmF1bHQgYWNjZXNzIG1vZGUuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRB
X0RFRkFVTFRfQUNDRVNTID0gVURBVEFfRklMRVNfRklSU1QsCisgICAgLyoqIElDVSBvbmx5IGxv
YWRzIGRhdGEgZnJvbSBwYWNrYWdlcywgbm90IGZyb20gc2luZ2xlIGZpbGVzLiBAc3RhYmxlIElD
VSAzLjQgKi8KKyAgICBVREFUQV9PTkxZX1BBQ0tBR0VTLAorICAgIC8qKiBJQ1UgbG9hZHMgZGF0
YSBmcm9tIHBhY2thZ2VzIGZpcnN0LCBhbmQgb25seSBmcm9tIHNpbmdsZSBmaWxlcworICAgICAg
ICBpZiB0aGUgZGF0YSBjYW5ub3QgYmUgZm91bmQgaW4gYSBwYWNrYWdlLiBAc3RhYmxlIElDVSAz
LjQgKi8KKyAgICBVREFUQV9QQUNLQUdFU19GSVJTVCwKKyAgICAvKiogSUNVIGRvZXMgbm90IGFj
Y2VzcyB0aGUgZmlsZSBzeXN0ZW0gZm9yIGRhdGEgbG9hZGluZy4gQHN0YWJsZSBJQ1UgMy40ICov
CisgICAgVURBVEFfTk9fRklMRVMsCisgICAgLyoqIE51bWJlciBvZiByZWFsIFVEYXRhRmlsZUFj
Y2VzcyB2YWx1ZXMuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX0ZJTEVfQUNDRVNTX0NP
VU5UCit9IFVEYXRhRmlsZUFjY2VzczsKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIG1heSBiZSBj
YWxsZWQgdG8gY29udHJvbCBob3cgSUNVIGxvYWRzIGRhdGEuIEl0IG11c3QgYmUgY2FsbGVkCisg
KiBiZWZvcmUgYW55IElDVSBkYXRhIGlzIGxvYWRlZCwgaW5jbHVkaW5nIGFwcGxpY2F0aW9uIGRh
dGEgbG9hZGVkIHdpdGggCisgKiB1cmVzL1Jlc291cmNlQnVuZGxlIG9yIHVkYXRhIEFQSXMuIFRo
aXMgZnVuY3Rpb24gaXMgbm90IG11bHRpdGhyZWFkIHNhZmUuICAKKyAqIFRoZSByZXN1bHRzIG9m
IGNhbGxpbmcgaXQgd2hpbGUgb3RoZXIgdGhyZWFkcyBhcmUgbG9hZGluZyBkYXRhIGFyZSB1bmRl
ZmluZWQuCisgKiBAcGFyYW0gYWNjZXNzIFRoZSB0eXBlIG9mIGZpbGUgYWNjZXNzIHRvIGJlIHVz
ZWQKKyAqIEBwYXJhbSBzdGF0dXMgRXJyb3IgY29kZS4KKyAqIEBzZWUgVURhdGFGaWxlQWNjZXNz
CisgKiBAc3RhYmxlIElDVSAzLjQgCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0
YV9zZXRGaWxlQWNjZXNzKFVEYXRhRmlsZUFjY2VzcyBhY2Nlc3MsIFVFcnJvckNvZGUgKnN0YXR1
cyk7CisKK1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3Uv
dW5pY29kZS91bWlzYy5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91bWlzYy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ4NTQ1MWZjNzY3YzA1ODM1ZjZjMTVmNTY2ZjM1NjJlMmQ0YWY4MzQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmgKQEAgLTAsMCArMSw2MCBAQAor
LyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwNiwgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwg
UmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVtaXNjLmgK
KyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQor
KiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0MTUKKyogICBjcmVh
dGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBVTUlTQ19ICisjZGVmaW5l
IFVNSVNDX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICogXGZpbGUK
KyAqIFxicmllZiAgQyBBUEk6bWlzYyBkZWZpbml0aW9ucyAKKyAqCisgKiAgVGhpcyBmaWxlIGNv
bnRhaW5zIG1pc2NlbGxhbmVvdXMgZGVmaW5pdGlvbnMgZm9yIHRoZSBDIEFQSXMuIAorICovCisK
K1VfQ0RFQ0xfQkVHSU4KKworLyoqIEEgc3RydWN0IHJlcHJlc2VudGluZyBhIHJhbmdlIG9mIHRl
eHQgY29udGFpbmluZyBhIHNwZWNpZmljIGZpZWxkIAorICogIEBzdGFibGUgSUNVIDIuMAorICov
Cit0eXBlZGVmIHN0cnVjdCBVRmllbGRQb3NpdGlvbiB7CisgIC8qKgorICAgKiBUaGUgZmllbGQg
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBmaWVsZDsKKyAgLyoqCisg
ICAqIFRoZSBzdGFydCBvZiB0aGUgdGV4dCByYW5nZSBjb250YWluaW5nIGZpZWxkIAorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgYmVnaW5JbmRleDsKKyAgLyoqIAorICAg
KiBUaGUgbGltaXQgb2YgdGhlIHRleHQgcmFuZ2UgY29udGFpbmluZyBmaWVsZCAKKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90IGVuZEluZGV4OworfSBVRmllbGRQb3NpdGlv
bjsKKworI2lmICFVQ09ORklHX05PX1NFUlZJQ0UKKy8qKgorICogT3BhcXVlIHR5cGUgcmV0dXJu
ZWQgYnkgcmVnaXN0ZXJJbnN0YW5jZSwgcmVnaXN0ZXJGYWN0b3J5IGFuZCB1bnJlZ2lzdGVyIGZv
ciBzZXJ2aWNlIHJlZ2lzdHJhdGlvbi4KKyAqIEBzdGFibGUgSUNVIDIuNgorICovCit0eXBlZGVm
IGNvbnN0IHZvaWQqIFVSZWdpc3RyeUtleTsKKyNlbmRpZgorCitVX0NERUNMX0VORAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dU
Ri93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMDk5N2Q5ZWFjNDc5NTgxZmYxZmQ0NzY5Y2NjNGI1
NDY2MmVmZDcxNC4uOGY5Y2E0M2E1MzBlZWYzMjU2NTExNjg0YWFjZmViNzM1NzljYzVmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQKQEAgLTI1NSw2ICsyNTUsMjAgQEAgc2V0KFdURl9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0iCiApCiAKK3NldChXVEZfQlJF
QUtJTkdfUlVMRVNfU09VUkNFUworICAgIHRleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yUHJvbG9ndWUudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb25DSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorKQorCiBzZXQoV1RGX0xJQlJBUklF
UwogICAgICR7Q01BS0VfRExfTElCU30KICkKQEAgLTI3Miw2ICsyODYsMzMgQEAgaWYgKE5PVCBV
U0VfU1lTVEVNX01BTExPQykKICAgICBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTIGJtYWxsb2Mp
CiBlbmRpZiAoKQogCittYWNybyhHRU5FUkFURV9CUkVBS0lOR19SVUxFUyBfaW5wdXQgX291dHB1
dCkKKyAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgICAgIE9VVFBVVCAke19vdXRwdXR9Cisg
ICAgICAgIERFUEVORFMgJHtfaW5wdXR9CisgICAgICAgIENPTU1BTkQgZWNobyAiI2luY2x1ZGUg
XCJjb25maWcuaFwiIiA+ICR7X291dHB1dH0KKyAgICAgICAgQ09NTUFORCBlY2hvICIjaW5jbHVk
ZSA8dW5pY29kZS91dmVybnVtLmg+IiA+PiAke19vdXRwdXR9CisgICAgICAgIENPTU1BTkQgZWNo
byAiI2RlZmluZSBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAp
KSIgPj4gJHtfb3V0cHV0fQorICAgICAgICBDT01NQU5EIGVjaG8gIiNkZWZpbmUgSEFWRV9FWFRS
QV9JQ1VfTkFNRURfU0VUUyAoKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lD
VV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KSkiID4+ICR7X291dHB1dH0KKyAgICAgICAgQ09NTUFO
RCBlY2hvICJuYW1lc3BhY2UgV1RGIHsiID4+ICR7X291dHB1dH0KKyAgICAgICAgQ09NTUFORCBl
Y2hvICJjb25zdCBjaGFyKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMgPSAiID4+ICR7X291
dHB1dH0KKyAgICAgICAgQ09NTUFORCBzZWQgJ3MvXiMgLiovLycgJDwgPiAke19vdXRwdXR9LnRt
cAorICAgICAgICBDT01NQU5EIHNlZCAncy9eXCguKlwpOy8iXFwxOyIvJyAke19vdXRwdXR9LnRt
cCA+ICR7X291dHB1dH0yLnRtcAorICAgICAgICBDT01NQU5EIHNlZCAncy8gIyAvIFxcL1xcLyAv
JyAke19vdXRwdXR9Mi50bXAgPiAke19vdXRwdXR9LnRtcAorICAgICAgICBDT01NQU5EIHNlZCAn
cy9cXFxcL1xcXFxcXFxcL2cnICR7X291dHB1dH0udG1wID4+ICR7X291dHB1dH0KKyAgICAgICAg
Q09NTUFORCBlY2hvICI7IiA+PiAke19vdXRwdXR9CisgICAgICAgIENPTU1BTkQgZWNobyAifSIg
Pj4gJHtfb3V0cHV0fQorICAgICAgICBDT01NQU5EIHJtICR7X291dHB1dH0udG1wICR7X291dHB1
dH0yLnRtcAorICAgICAgICBWRVJCQVRJTSkKKyAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAk
e19vdXRwdXR9KQorICAgIEFERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7X2lucHV0fSAke19vdXRw
dXR9KQorZW5kbWFjcm8oKQorCitmb3JlYWNoIChfZmlsZSAke1dURl9CUkVBS0lOR19SVUxFU19T
T1VSQ0VTfSkKKyAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVf
V0UpCisgICAgR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9E
SVJ9LyR7X2ZpbGV9ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9LyR7X25hbWV9LmNwcCkKK2Vu
ZGZvcmVhY2ggKCkKKwogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKICAgICB1bmljb2RlL2ljdS9D
b2xsYXRvcklDVS5jcHAKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQwMjA1YjlhM2M4Nzk5YjM1YjZlNTA5MDcxNTNhN2ExOWViMjI2ODYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0wLDAgKzEsOTMgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIworIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIyAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisjICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisjICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
IyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCitCUkVBS0lOR19SVUxFU19GSUxFUyA9IFwKKyAgICBCcmVha2luZ1J1bGVz
L0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuYnJrCisKK0JSRUFLSU5HX1JVTEVTX0RFRklOSVRJ
T05TID0gXAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNw
cCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCBcCisg
ICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBcCisgICAg
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgXAorICAg
IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgXAorICAg
IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgXAor
ICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgXAor
ICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAK
KworREVQRU5ERU5DSUVTID0gJChCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUykKKworaWZlcSAo
JChPUyksTUFDT1MpCitERVBFTkRFTkNJRVMgKz0gJChCUkVBS0lOR19SVUxFU19GSUxFUykKK2Vu
ZGlmCisKK2FsbCA6ICQoREVQRU5ERU5DSUVTKQorCitCcmVha2luZ1J1bGVzLyUuYnJrIDogQnJl
YWtpbmdSdWxlcy8lLnBwCisJLi9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsgLWMg
LXIgJDwgLW8gJEAKKworQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLnR4dAorCWVjaG8gIiNpbmNsdWRlIFwiY29uZmlnLmhcIiIgPiAkQAorCWVjaG8gIiNp
bmNsdWRlIDx1bmljb2RlL3V2ZXJudW0uaD4iID4+ICRACisJZWNobyAiI2RlZmluZSBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApKSIgPj4gJEAKKwllY2hvICIj
ZGVmaW5lIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgKChVX0lDVV9WRVJTSU9OX01BSk9SX05V
TSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkpIiA+PiAkQAorCWVjaG8g
Im5hbWVzcGFjZSBXVEYgeyIgPj4gJEAKKwllY2hvICJjb25zdCBjaGFyKiBjdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMgPSAiID4+ICRACisJc2VkICdzL14jIC4qLy8nICQ8ID4gQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLnRtcAorCXNlZCAncy9eXCguKlwpOy8iXDE7Ii8nIEN1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy50bXAgPiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMyLnRt
cAorCXNlZCAncy8gIyAvIFwvXC8gLycgQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzMi50bXAg
PiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudG1wCisJc2VkICdzL1xcL1xcXFwvZycgQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnRtcCA+PiAkQAorCWVjaG8gIjsiID4+ICRACisJZWNo
byAifSIgPj4gJEAKKwlybSBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudG1wIEN1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlczIudG1wCisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3IlLmNwcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
UHJvbG9ndWUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yJS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JF
cGlsb2d1ZS50eHQKKwllY2hvICIjaW5jbHVkZSBcImNvbmZpZy5oXCIiID4gJEAKKwllY2hvICIj
aW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+IiA+PiAkQAorCWVjaG8gIiNkZWZpbmUgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkiID4+ICRACisJZWNobyAi
I2RlZmluZSBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTICgoVV9JQ1VfVkVSU0lPTl9NQUpPUl9O
VU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpKSIgPj4gJEAKKwllY2hv
ICJuYW1lc3BhY2UgV1RGIHsiID4+ICRACisJZWNobyAiY29uc3QgY2hhciogbGluZUJyZWFrSXRl
cmF0b3IkKlJ1bGVzID0gIiA+PiAkQAorCWNhdCAkPyB8IHNlZCAncy9eXCguKlwpOy8iXDE7Ii8n
ID4gJCoudG1wCisJc2VkICdzLyAjIC8gXC9cLyAvJyAkKi50bXAgPiAkKjIudG1wCisJc2VkICdz
L1xcL1xcXFwvZycgJCoyLnRtcCA+PiAkQAorCWVjaG8gIjsiID4+ICRACisJZWNobyAifSIgPj4g
JEAKKwlybSAkKi50bXAgJCoyLnRtcAorCitCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy5wcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy50eHQKKwktdW5pZmRlZiAtREFERElUSU9OQUxfRU1PSklfU1VQUE9S
VD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCkgLURIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRT
PSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUykgLW8gJEAgJDwKKworQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvciUucHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvciUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisJLWNhdCAkPyB8IHVuaWZkZWYgLURBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQ9JChBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQpIC1ESEFWRV9FWFRSQV9J
Q1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRACmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxZmFkODQ3MTAwMTQ5M2Q3YmY0
YjZlYTZkNTI5ODA4ODBkMDI1OGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApAQCAtMCww
ICsxLDE1MSBAQAorIyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBp
dGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKKyMgPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3Jn
L3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCisj
IFRoZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9tIHRoZSBvcmlnaW5hbCBvbmVzIGFyZSBsaXN0ZWQg
YmVsb3c6CisjICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2lu
Z01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4
dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7CisjICogUmVtb3ZlZCBydWxlcyB0aGF0IHBy
ZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcg
MjQzNDIpOworIyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmlu
ZyBhZnRlciB2aXJhbWEgc2lnbnMgb2YgSW5kaWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVn
IDE1NzkwKSwgYW5kOworIyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9t
IG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3Mu
CisjICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgorCiskQ1Ig
ICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ1J9XTsKKyRMRiAgICAgID0gW1xw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1dOworJENvbnRyb2wgPSBbXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsKKyRWb2ljZU1hcmtzID0gW1x1RkY5RVx1RkY5Rl07
ICMgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FuYSB2b2ljZWQgbWFya3MKKyRFeHRlbmQgID0g
W1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1x1MEUz
MCBcdTBFMzIgXHUwRTQ1IFx1MEVCMCBcdTBFQjJdXTsKKyRTcGFjaW5nTWFyayA9IFtbXHB7R2Vu
ZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31dIC0gJEV4dGVuZF07CiskTCAgICAgICA9IFtc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOworJFYgICAgICAgPSBbXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IFZ9XTsKKyRUICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJl
YWsgPSBUfV07CiskTFYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsK
KyRMVlQgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVlR9XTsKKyRIaW4wICAg
ID0gW1x1MDkwNS1cdTA5MzldOyAjIERldmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCiskSGluViAg
ICA9IFx1MDk0RDsgIyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCiskSGluMSAgICA9IFtcdTA5MTUt
XHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRlciBLYSwuLi4sSGEKKyRCZW4wICAgID0gW1x1MDk4
NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCiskQmVuViAgICA9IFx1MDlDRDsg
IyBCZW5nYWxpIFNpZ24gVmlyYW1hCiskQmVuMSAgICA9IFtcdTA5OTUtXHUwOUI5XTsgIyBCZW5n
YWxpIExldHRlciBLYSwuLi4sSGEKKyRQYW4wICAgID0gW1x1MEEwNS1cdTBBMzldOyAjIEd1cm11
a2hpIExldHRlciBBLC4uLixIYQorJFBhblYgICAgPSBcdTBBNEQ7ICMgR3VybXVraGkgU2lnbiBW
aXJhbWEKKyRQYW4xICAgID0gW1x1MEExNS1cdTBBMzldOyAjIEd1cm11a2hpIExldHRlciBLYSwu
Li4sSGEKKyRHdWowICAgID0gW1x1MEE4NS1cdTBBQjldOyAjIEd1amFyYXRpIExldHRlciBBLC4u
LixIYQorJEd1alYgICAgPSBcdTBBQ0Q7ICMgR3VqYXJhdGkgU2lnbiBWaXJhbWEKKyRHdWoxICAg
ID0gW1x1MEE5NS1cdTBBQjldOyAjIEd1amFyYXRpIExldHRlciBLYSwuLi4sSGEKKyRPcmkwICAg
ID0gW1x1MEIwNS1cdTBCMzldOyAjIE9yaXlhIExldHRlciBBLC4uLixIYQorJE9yaVYgICAgPSBc
dTBCNEQ7ICMgT3JpeWEgU2lnbiBWaXJhbWEKKyRPcmkxICAgID0gW1x1MEIxNS1cdTBCMzldOyAj
IE9yaXlhIExldHRlciBLYSwuLi4sSGEKKyRUZWwwICAgID0gW1x1MEMwNS1cdTBDMzldOyAjIFRl
bHVndSBMZXR0ZXIgQSwuLi4sSGEKKyRUZWxWICAgID0gXHUwQzREOyAjIFRlbHVndSBTaWduIFZp
cmFtYQorJFRlbDEgICAgPSBbXHUwQzE0LVx1MEMzOV07ICMgVGVsdWd1IExldHRlciBLYSwuLi4s
SGEKKyRLYW4wICAgID0gW1x1MEM4NS1cdTBDQjldOyAjIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhh
CiskS2FuViAgICA9IFx1MENDRDsgIyBLYW5uYWRhIFNpZ24gVmlyYW1hCiskS2FuMSAgICA9IFtc
dTBDOTUtXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4uLixIYQorJE1hbDAgICAgPSBbXHUw
RDA1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExldHRlciBBLC4uLixIYSAKKyRNYWxWICAgID0gXHUw
RDREOyAjIE1hbGF5YWxhbSBTaWduIFZpcmFtYQorJE1hbDEgICAgPSBbXHUwRDE1LVx1MEQzOV07
ICMgTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQorJFJJICAgICAgPSBbXFUwMDAxRjFFNi1cVTAw
MDFGMUZGXTsgIyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCiskWldKICAgICA9IFx1MjAwRDsg
IyBaZXJvIHdpZHRoIGpvaW5lcgorJEVtb2ppVmFyID0gW1x1RkUwRl07ICMgRW1vamktc3R5bGUg
dmFyaWF0aW9uIHNlbGVjdG9yCisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAg
ICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYzMDgg
XFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0YzIFxV
MDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBcVTAw
MDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUwMDAx
RjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAwMUY2
NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFGNkEz
IFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0og
c2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3
MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NC
IFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1c
VTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUw
MDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxVMDAw
MUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFG
NjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZD
MCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwor
CisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAwMDFG
NDY5IFxVMDAwMUY0OEJdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNl
cworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3MEMgXFUwMDAxRjM4NSBc
VTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFGM0NBIFxVMDAwMUY0NDItXFUw
MDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAw
MUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFG
NDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0
NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYg
XFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKwor
I2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAwMDFGM0ZGXTsgIyBGaXR6cGF0
cmljayBtb2RpZmllcnMKKyEhY2hhaW47CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQK
KworICAgICEhUklOb0NoYWluOworCisjZW5kaWYKKworISFmb3J3YXJkOworJENSICRMRjsKKyRM
ICgkTCB8ICRWIHwgJExWIHwgJExWVCk7CisoJExWIHwgJFYpICgkViB8ICRUKTsKKygkTFZUIHwg
JFQpICRUOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUkkgJFJJICRF
eHRlbmQqIC8gJFJJOworICAgICRSSSAkUkkgJEV4dGVuZCo7CisgICAgW14kQ29udHJvbCAkQ1Ig
JExGXSAkRXh0ZW5kOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOworCisj
ZWxzZQorCisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOworICAgIFteJENvbnRyb2wg
JENSICRMRl0gJFNwYWNpbmdNYXJrOworICAgICRSSSAkUkkgLyAkUkk7CisgICAgJFJJICRSSTsK
KworI2VuZGlmCisKKyRIaW4wICRIaW5WICRIaW4xOyAjIERldmFuYWdhcmkgVmlyYW1hIChmb3J3
YXJkKQorJEJlbjAgJEJlblYgJEJlbjE7ICMgQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCiskUGFu
MCAkUGFuViAkUGFuMTsgIyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCiskR3VqMCAkR3VqViAk
R3VqMTsgIyBHdWphcmF0aSBWaXJhbWEgKGZvcndhcmQpCiskT3JpMCAkT3JpViAkT3JpMTsgIyBP
cml5YSBWaXJhbWEgKGZvcndhcmQpCiskVGVsMCAkVGVsViAkVGVsMTsgIyBUZWx1Z3UgVmlyYW1h
IChmb3J3YXJkKQorJEthbjAgJEthblYgJEthbjE7ICMgS2FubmFkYSBWaXJhbWEgKGZvcndhcmQp
CiskTWFsMCAkTWFsViAkTWFsMTsgIyBNYWxheWFsYW0gVmlyYW1hIChmb3J3YXJkKQorJFpXSiAk
RW1vamlGb3JTZXFzOyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2pp
Rm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2
YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRy
aWNrIG1vZGlmaWVyCishIXJldmVyc2U7CiskTEYgJENSOworKCRMIHwgJFYgfCAkTFYgfCAkTFZU
KSAkTDsKKygkViB8ICRUKSAoJExWIHwgJFYpOworJFQgKCRMVlQgfCAkVCk7CisKKyNpZiBBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5kKiAk
UkkgJFJJOworICAgICRFeHRlbmQqICRSSSAkUkk7CisgICAgJEV4dGVuZCAgICAgIFteJENvbnRy
b2wgJENSICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisKKyNl
bHNlCisKKyAgICAkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkU3BhY2lu
Z01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkUkkgJFJJIC8gJFJJICRSSTsKKyAgICAk
UkkgJFJJOworCisjZW5kaWYKKworJEhpbjEgJEhpblYgJEhpbjA7ICMgRGV2YW5hZ2FyaSBWaXJh
bWEgKGJhY2t3YXJkKQorJEJlbjEgJEJlblYgJEJlbjA7ICMgQmVuZ2FsaSBWaXJhbWEgKGJhY2t3
YXJkKQorJFBhbjEgJFBhblYgJFBhbjA7ICMgR3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkKKyRH
dWoxICRHdWpWICRHdWowOyAjIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCiskT3JpMSAkT3Jp
ViAkT3JpMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJFRlbDEgJFRlbFYgJFRlbDA7
ICMgVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCiskS2FuMSAkS2FuViAkS2FuMDsgIyBLYW5uYWRh
IFZpcmFtYSAoYmFja3dhcmQpCiskTWFsMSAkTWFsViAkTWFsMDsgIyBNYWxheWFsYW0gVmlyYW1h
IChiYWNrd2FyZCkKKyRFbW9qaUZvclNlcXMgJFpXSjsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpX
SiBzZXF1ZW5jZXMKKyRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyAjIERvbnQg
YnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2Vs
ZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorCisjaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCisKKyAgICAhIXNhZmVfcmV2ZXJzZTsKKyAgICAkUkkgJFJJKzsKKyAgICBbJEVtb2pp
VmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOworICAgICEhc2FmZV9mb3J3YXJkOworICAg
ICRSSSAkUkkrOworICAgICRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7CisK
KyNlbHNlCisKKyAgICBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOworICAg
ICRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7CisgICAgISFzYWZlX3JldmVy
c2U7CisgICAgISFzYWZlX2ZvcndhcmQ7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0IGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9n
dWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjllMGM4YTUxYjNjMWNjMGI3MTZmMmEzODcyZmIzYjE4MTAwZDBl
ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKQEAgLTAsMCArMSwzNDcgQEAKKyRBSSA9IFs6
TGluZUJyZWFrID0gQW1iaWd1b3VzOl07CiskQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6
XTsKKyRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsKKyRCQiA9
IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07CiskQksgPSBbOkxpbmVCcmVhayA9IE1hbmRh
dG9yeV9CcmVhazpdOworJEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19Cb3RoOl07CiskQ0IgPSBb
OkxpbmVCcmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsKKyRDTCA9IFs6TGluZUJyZWFrID0gQ2xv
c2VfUHVuY3R1YXRpb246XTsKKyRDTSA9IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsK
KyRDUCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsKKyRDUiA9IFs6TGluZUJy
ZWFrID0gQ2FycmlhZ2VfUmV0dXJuOl07CiskRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlv
bjpdIC0gJEVYX1NVQl07CiskR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsKKworI2lmIEhBVkVf
RVhUUkFfSUNVX05BTUVEX1NFVFMKKworICAgICRITCA9IFs6TGluZUJyZWFrID0gSGVicmV3X0xl
dHRlcjpdOworCisjZWxzZQorCisgICAgJEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsK
KworI2VuZGlmCisKKyRIWSA9IFs6TGluZUJyZWFrID0gSHlwaGVuOl07CiskSDIgPSBbOkxpbmVC
cmVhayA9IEgyOl07CiskSDMgPSBbOkxpbmVCcmVhayA9IEgzOl07CiskSUQgPSBbW1tbOkxpbmVC
cmVhayA9IElkZW9ncmFwaGljOl0gLSAkQ0pdICRJRF9BRERdIC0gJElEX1NVQl07CiskSU4gPSBb
WzpMaW5lQnJlYWsgPSBJbnNlcGFyYWJsZTpdIC0gJElOX1NVQl07CiskSVMgPSBbWzpMaW5lQnJl
YWsgPSBJbmZpeF9OdW1lcmljOl0gLSAkSVNfU1VCXTsKKyRKTCA9IFs6TGluZUJyZWFrID0gSkw6
XTsKKyRKViA9IFs6TGluZUJyZWFrID0gSlY6XTsKKyRKVCA9IFs6TGluZUJyZWFrID0gSlQ6XTsK
KyRMRiA9IFs6TGluZUJyZWFrID0gTGluZV9GZWVkOl07CiskTkwgPSBbOkxpbmVCcmVhayA9IE5l
eHRfTGluZTpdOworJE5TID0gW1tbWzpMaW5lQnJlYWsgPSBOb25zdGFydGVyOl0gLSAkQ0pdICRO
U19BRERdIC0gJE5TX1NVQl07CiskTlUgPSBbOkxpbmVCcmVhayA9IE51bWVyaWM6XTsKKyRPUCA9
IFs6TGluZUJyZWFrID0gT3Blbl9QdW5jdHVhdGlvbjpdOworJFBPID0gW1s6TGluZUJyZWFrID0g
UG9zdGZpeF9OdW1lcmljOl0gLSAkUE9fU1VCXTsKKyRQUiA9IFtbOkxpbmVCcmVhayA9IFByZWZp
eF9OdW1lcmljOl0gLSAkUFJfU1VCXTsKKyRRVSA9IFs6TGluZUJyZWFrID0gUXVvdGF0aW9uOl07
CiskUkkgPSBbXFUwMDAxRjFFNi1cVTAwMDFGMUZGXTsKKyRTQSA9IFs6TGluZUJyZWFrID0gQ29t
cGxleF9Db250ZXh0Ol07CiskU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOworJFNQID0g
WzpMaW5lQnJlYWsgPSBTcGFjZTpdOworJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xz
Ol07CiskV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9pbmVyOl07CiskWFggPSBbOkxpbmVCcmVh
ayA9IFVua25vd246XTsKKyRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpdOworJFpXSiA9IFx1
MjAwRDsKKyRFbW9qaVZhciA9IFx1RkUwRjsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI2NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUw
MDAxRjMwOCBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAw
MUYzRjMgXFUwMDAxRjQ0MSBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFG
NDZGIFxVMDAwMUY0NzEgXFUwMDAxRjQ3MyBcVTAwMDFGNDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4
MiBcVTAwMDFGNDg2LVxVMDAwMUY0ODcgXFUwMDAxRjQ4QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTgg
XFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEIgXFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxV
MDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2XTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRl
IGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI2RjkgXHUy
NzBBLVx1MjcwRCBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxV
MDAwMUYzQ0IgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAw
MDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAx
RjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1
NzUgXFUwMDAxRjU5MCBcVTAwMDFGNTk1IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3
IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBc
VTAwMDFGNkMwIFxVMDAwMUY5MThdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9k
aWZpZXJzCisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2
LVxVMDAwMUY0NjkgXFUwMDAxRjQ4Ql07CisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUy
NzBBLVx1MjcwQyBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0M3IFxV
MDAwMUYzQ0EgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAw
MDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAx
RjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1
OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEz
IFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0YWtlIEZp
dHpwYXRyaWNrIG1vZGlmaWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFGM0ZC
LVxVMDAwMUYzRkZdOworJGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4
dDpdOworJEFMUGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsKKyRBTGNtID0gJEFMUGx1cyAk
Q00qOworJEJBY20gPSAkQkEgJENNKjsKKyRCQmNtID0gJEJCICRDTSo7CiskQjJjbSA9ICRCMiAk
Q00qOworJENMY20gPSAkQ0wgJENNKjsKKyRDUGNtID0gJENQICRDTSo7CiskRVhjbSA9ICRFWCAk
Q00qOworJEdMY20gPSAkR0wgJENNKjsKKyRITGNtID0gJEhMICRDTSo7CiskSFljbSA9ICRIWSAk
Q00qOworJEgyY20gPSAkSDIgJENNKjsKKyRIM2NtID0gJEgzICRDTSo7CiskSURjbSA9ICRJRCAk
Q00qOworJElOY20gPSAkSU4gJENNKjsKKyRJU2NtID0gJElTICRDTSo7CiskSkxjbSA9ICRKTCAk
Q00qOworJEpWY20gPSAkSlYgJENNKjsKKyRKVGNtID0gJEpUICRDTSo7CiskTlNjbSA9ICROUyAk
Q00qOworJE5VY20gPSAkTlUgJENNKjsKKyRPUGNtID0gJE9QICRDTSo7CiskUE9jbSA9ICRQTyAk
Q00qOworJFBSY20gPSAkUFIgJENNKjsKKyRRVWNtID0gJFFVICRDTSo7CiskUkljbSA9ICRSSSAk
Q00qOworJFNZY20gPSAkU1kgJENNKjsKKyRXSmNtID0gJFdKICRDTSo7CisKKyEhZm9yd2FyZDsK
KyRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07CiskQ0FOVF9DTSA9IFsk
U1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1Ig
JExGICROTCAkWlcgJFNQXTsKKyRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAk
U1kgJFdKICRHTCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107CiskQUxfRk9M
TE9XID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsKKyRMQjRCcmVha3MgPSBbJEJL
ICRDUiAkTEYgJE5MXTsKKyRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICROTF07CiskTEI4
QnJlYWtzID0gWyRMQjRCcmVha3MgJFpXXTsKKyRMQjhOb25CcmVha3MgPSBbWyRMQjROb25CcmVh
a3NdIC0gWyRaV11dOworJExCMThOb25CcmVha3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsK
KyRMQjE4QnJlYWtzID0gWyRMQjhCcmVha3MgJFNQXTsKKyRMQjIwTm9uQnJlYWtzID0gWyRMQjE4
Tm9uQnJlYWtzIC0gJENCXTsKKyRBTFBsdXMgJENNKzsKKyRCQSAkQ00rOworJEJCICRDTSs7Cisk
QjIgJENNKzsKKyRDTCAkQ00rOworJENQICRDTSs7CiskRVggJENNKzsKKyRHTCAkQ00rOworJEhM
ICRDTSs7CiskSFkgJENNKzsKKyRIMiAkQ00rOworJEgzICRDTSs7CiskSUQgJENNKzsKKyRJTiAk
Q00rOworJElTICRDTSs7CiskSkwgJENNKzsKKyRKViAkQ00rOworJEpUICRDTSs7CiskTlMgJENN
KzsKKyROVSAkQ00rOworJE9QICRDTSs7CiskUE8gJENNKzsKKyRQUiAkQ00rOworJFFVICRDTSs7
CiskUkkgJENNKzsKKyRTWSAkQ00rOworJFdKICRDTSs7CiskQ1IgJExGIHsxMDB9OworJExCNE5v
bkJyZWFrcz8gJExCNEJyZWFrcyB7MTAwfTsKKyRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9
OworJENNKyAkTEI0QnJlYWtzIHsxMDB9OworJExCNE5vbkJyZWFrcyBbJFNQICRaV107CiskQ0FO
X0NNICRDTSogWyRTUCAkWlddOworJENNKyBbJFNQICRaV107CiskRW1vamlGb3JTZXFzICRFbW9q
aVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFzOworJENBTl9DTSAkQ00rOworJENN
KzsKKyRDQU5fQ00gJENNKiAkV0pjbTsKKyRMQjhOb25CcmVha3MgJFdKY207CiskQ00rICRXSmNt
OworJFdKY20gJENBTlRfQ007CiskV0pjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOX0NNICRD
TSo7CiskR0xjbSAkQ0FOVF9DTTsKK1tbJExCOE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFldXSAk
Q00qICRHTGNtOworJENNKyBHTGNtOworJExCOE5vbkJyZWFrcyAkQ0w7CiskQ0FOX0NNICRDTSog
JENMOworJENNKyAkQ0w7CiskTEI4Tm9uQnJlYWtzICRDUDsKKyRDQU5fQ00gJENNKiAkQ1A7Cisk
Q00rICRDUDsKKyRMQjhOb25CcmVha3MgJEVYOworJENBTl9DTSAkQ00qICRFWDsKKyRDTSsgJEVY
OworJExCOE5vbkJyZWFrcyAkSVM7CiskQ0FOX0NNICRDTSogJElTOworJENNKyAkSVM7CiskTEI4
Tm9uQnJlYWtzICRTWTsKKyRDQU5fQ00gJENNKiAkU1k7CiskQ00rICRTWTsKKyRPUGNtICRTUCog
JENBTl9DTSAkQ00qOworJE9QY20gJFNQKiAkQ0FOVF9DTTsKKyRPUGNtICRTUCsgJENNKyAkQUxf
Rk9MTE9XPzsKKyRRVWNtICRTUCogJE9QY207CisoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsK
KyRCMmNtICRTUCogJEIyY207CiskTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOworJENNKyAkUVVj
bTsKKyRRVWNtIC4/OworJFFVY20gJExCMThOb25CcmVha3MgJENNKjsKKyRMQjIwTm9uQnJlYWtz
ICRDTSogKCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7IAorJEJCY20gW14kQ0JdOworJEJCY20gJExC
MjBOb25CcmVha3MgJENNKjsKKyRITGNtICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OworJFNZY20g
JEhMY207CisoJEFMY20gfCAkSExjbSkgJElOY207CiskQ00rICRJTmNtOworJEVYY20gJElOY207
CiskSURjbSAkSU5jbTsKKyRJTmNtICRJTmNtOworJE5VY20gJElOY207CiskSURjbSAkUE9jbTsK
KyRBTGNtICROVWNtOworJEhMY20gJE5VY207CiskQ00rICROVWNtOworJE5VY20gJEFMY207Cisk
TlVjbSAkSExjbTsKKyRQUmNtICRJRGNtOworJFBSY20gKCRBTGNtIHwgJEhMY20pOworJFBPY20g
KCRBTGNtIHwgJEhMY20pOworKCRQUmNtIHwgJFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICROVWNt
ICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2Nt
KT87CiskSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRIMmNtIHwgJEgzY20pOworKCRKVmNtIHwgJEgy
Y20pICgkSlZjbSB8ICRKVGNtKTsKKygkSlRjbSB8ICRIM2NtKSAkSlRjbTsKKygkSkxjbSB8ICRK
VmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpU
Y20gfCAkSDJjbSB8ICRIM2NtKSAkUE9jbTsKKyRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20g
fCAkSDJjbSB8ICRIM2NtKTsKKygkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7CiskQ00r
ICgkQUxjbSB8ICRITGNtKTsKKyRJU2NtICgkQUxjbSB8ICRITGNtKTsKKygkQUxjbSB8ICRITGNt
IHwgJE5VY20pICRPUGNtOworJENNKyAkT1BjbTsKKyRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5V
Y20pOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUkljbSAkUkljbTsK
KworI2VuZGlmCisKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOworCishIXJl
dmVyc2U7CiskQ00rICRBTFBsdXM7CiskQ00rICRCQTsKKyRDTSsgJEJCOworJENNKyAkQjI7Cisk
Q00rICRDTDsKKyRDTSsgJENQOworJENNKyAkRVg7CiskQ00rICRHTDsKKyRDTSsgJEhMOworJENN
KyAkSFk7CiskQ00rICRIMjsKKyRDTSsgJEgzOworJENNKyAkSUQ7CiskQ00rICRJTjsKKyRDTSsg
JElTOworJENNKyAkSkw7CiskQ00rICRKVjsKKyRDTSsgJEpUOworJENNKyAkTlM7CiskQ00rICRO
VTsKKyRDTSsgJE9QOworJENNKyAkUE87CiskQ00rICRQUjsKKyRDTSsgJFFVOworCisjaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkQ00rICRSSTsKKworI2VuZGlmCisKKyRDTSsg
JFNZOworJENNKyAkV0o7CiskQ00rOworJEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRMRiAk
TkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAkU1Bd
IHwgWyRBTCB7ZW9mfV0pKTsKK1skUFJdIC8gJENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1Ag
e2VvZn1dOworJExCNEJyZWFrcyBbJExCNE5vbkJyZWFrcy0kQ01dOworJExCNEJyZWFrcyAkQ00r
ICRDQU5fQ007CiskTEYgJENSOworWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07CitbJFNQ
ICRaV10gJENNKyAkQ0FOX0NNOworJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9q
aVZhcj8gJEVtb2ppRm9yU2VxczsKKyRDTSsgJENBTl9DTTsKKyRDTSogJFdKICRDTSogJENBTl9D
TTsKKyRDTSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskQ0FOVF9DTSAkQ00qICRXSjsKKyRD
TSogJENBTl9DTSAkQ00qICRXSjsKKyRDTSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAk
U1AgJEJBICRIWV1dOworJENBTlRfQ00gJENNKiAkR0w7CiskQ00qICRDQU5fQ00gJENNKiAkR0w7
CiskQ0wgJENNKyAkQ0FOX0NNOworJENQICRDTSsgJENBTl9DTTsKKyRFWCAkQ00rICRDQU5fQ007
CiskSVMgJENNKyAkQ0FOX0NNOworJFNZICRDTSsgJENBTl9DTTsKKyRDTCBbJExCOE5vbkJyZWFr
cy0kQ01dOworJENQIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskRVggWyRMQjhOb25CcmVha3MtJENN
XTsKKyRJUyBbJExCOE5vbkJyZWFrcy0kQ01dOworJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07Citb
JENMICRDUCAkRVggJElTICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAKKyRDTSogJENBTl9DTSAk
U1AqICRDTSogJE9QOworJENBTlRfQ00gJFNQKiAkQ00qICRPUDsKKyRBTF9GT0xMT1c/ICRDTSsg
JFNQICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9QOwor
JENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRTWSAkQ00gJFNQKyAkT1A7
CiskQ00qICRPUCAkU1AqICRDTSogJFFVOworJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1Ap
OworJENNKiAkQjIgJFNQKiAkQ00qICRCMjsKKyRDTSogJFFVICRDTSogJENBTl9DTTsKKyRDTSog
JFFVICRMQjE4Tm9uQnJlYWtzOworJENNKiAkQ0FOX0NNICRDTSogJFFVOworJENBTlRfQ00gJENN
KiAkUVU7CiskQ00qICgkQkEgfCAkSFkgfCAkTlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV07
CiskQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dICRDTSogJEJCOworW14kQ0JdICRDTSogJEJCOwor
W14kQ0JdICRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7CiskQ00qICRITCAkQ00qICRTWTsKKyRD
TSogJElOICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAkSU4gJENNKiAkRVg7CiskQ00qICRJ
TiAkQ00qICRJRDsKKyRDTSogJElOICRDTSogJElOOworJENNKiAkSU4gJENNKiAkTlU7CiskQ00q
ICRQTyAkQ00qICRJRDsKKyRDTSogJE5VICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFM
UGx1cyB8ICRITCkgJENNKiAkTlU7CiskQ00qICRJRCAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMg
fCAkSEwpICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87CisoJENNKiAo
JFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRTWSkp
KiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87CiskQ00q
ICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOworJENNKiAoJEpUIHwgJEpWKSAkQ00q
ICgkSDIgfCAkSlYpOworJENNKiAkSlQgJENNKiAoJEgzIHwgJEpUKTsKKyRDTSogJElOICRDTSog
KCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7CiskQ00qICRQTyAkQ00qICgkSDMgfCAkSDIg
fCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAk
Q00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENN
KiAoJEFMUGx1cyB8ICRITCkgJENNKiAkSVM7CiskQ00qICRPUCAkQ00qICgkQUxQbHVzIHwgJEhM
IHwgJE5VKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOworCisjaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkQ00qICRSSSAkQ00qICRSSTsKKworI2VuZGlm
CisKKyRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOworCishIXNhZmVfZm9yd2Fy
ZDsKK1skQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnld
KyBbXiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsKKyRk
aWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OworICAgIAorISFzYWZlX3JldmVyc2U7CiskQ00rIFteJENN
ICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsKKyRDTSsgJFNQIC8gLjsKKyRTUCsgJENNKiAkT1A7
CiskU1ArICRDTSogJFFVOworJFNQKyAkQ00qICgkQ0wgfCAkQ1ApOworJFNQKyAkQ00qICRCMjsK
KyRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7CisoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5V
OworKCRDTCB8ICRDUCkgJENNKiAoJE5VIHwgJElTIHwgJFNZKTsKKyRkaWN0aW9uYXJ5ICRkaWN0
aW9uYXJ5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxZjhhZDI1
MWJmNTUyNWQyOTNmMzcyMTI2NDU2MTYxMTUwYjYwZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50
eHQKQEAgLTAsMCArMSwxNSBAQAorISFjaGFpbjsKKyEhTEJDTU5vQ2hhaW47CishIWxvb2tBaGVh
ZEhhcmRCcmVhazsKKworCisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAk
Q0ogPSBbOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOl07CisKKyNlbHNl
CisKKyAgICAkQ0ogPSBbXHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgz
XHUzMDg1XHUzMDg3XHUzMDhFXHUzMDk1XHUzMDk2XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3XHUz
MEE5XHUzMEMzXHUzMEUzXHUzMEU1XHUzMEU3XHUzMEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYw
XHUzMUYxXHUzMUYyXHUzMUYzXHUzMUY0XHUzMUY1XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUz
MUZBXHUzMUZCXHUzMUZDXHUzMUZEXHUzMUZFXHUzMUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZB
XHVGRjZCXHVGRjZDXHVGRjZEXHVGRjZFXHVGRjZGXHVGRjcwXTsKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRmMzZjOTAyMDY5ZjNhNmM1Y2Q4MDMz
ODU0OWZiMTk5YTAxOGFkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApAQCAtMCwwICsxLDEw
IEBACiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7CiskSU5fU1VCID0g
Jyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAxQ1x1MzBB
MF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkQkFfU1VC
ICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wMTM0MTQ2MzU1NjY2YmQxODExZGNjODE3Njc1NzNkYTM0MGMw
MDg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJB
X1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9IFtcdTAwMjFcdTAwM0ZcdUZGMDFcdUZG
MUZdOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NVQiA9
IFtcdTAwM0FcdTAwM0JdOworJE5TX1NVQiA9IFtcdTIwM0NcdTIwNDdcdTIwNDhcdTIwNDlcdTMw
MDVcdTMwMUNcdTMwM0JcdTMwOURcdTMwOUVcdTMwQTBcdTMwRkJcdTMwRkRcdTMwRkVcdUZGMUFc
dUZGMUJcdUZGNjVdOworJFBPX1NVQiA9IFtcdTAwMjVcdTAwQTJcdTAwQjBcdTIwMzBcdTIwMzJc
dTIwMzNcdTIxMDNcdUZGMDVcdUZGRTBdOworJFBSX1NVQiA9IFtcdTAwMjRcdTAwQTNcdTAwQTVc
dTIwQUNcdTIxMTZcdUZGMDRcdUZGRTFcdUZGRTVdOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAk
RVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07CiskTlNfQURE
ID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjE2ODk2OTlkOGQwZTRjMzY4MzRiMmZhZTI1OTMyNzc1N2EyNGQxM2YKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0gJyc7
CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07
CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBG
RFx1MzBGRV07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAk
SU5fU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0IGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1OWZjZjBmOGE5OTIyMTIwZWJiMTFkZDVkYTQ0MTdmOTI2
NzYyNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJB
X1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOwor
JElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcn
OworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
dHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0ZjM2YzkwMjA2OWYzYTZjNWNkODAzMzg1
NDlmYjE5OWEwMThhZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKQEAgLTAsMCAr
MSwxMCBAQAorJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NV
QiA9ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNc
dTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJB
X1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4
dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjM1NTllYjFlZDY0ZjI2M2Q4OWUxNjJk
MzE3NzE5ODdjZGZjZmI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0CkBAIC0w
LDAgKzEsMTAgQEAKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsK
KyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAn
JzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKXTsKKyROU19BREQgPSAnJzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTlmY2YwZjhh
OTkyMjEyMGViYjExZGQ1ZGE0NDE3ZjkyNjc2MjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RD
SksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJ
RF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsK
KyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBb
JENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xNTlmY2YwZjhhOTkyMjEyMGViYjExZGQ1ZGE0NDE3ZjkyNjc2MjcyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIgPSAn
JzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIg
PSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9B
REQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9nZW5icmsgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvZ2VuYnJrCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkMjA2ZGNmZmZkZDRlN2NlZjMyYWI1NTUzYTE5OTkwY2Mx
ODVmMjcKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMxNDU2CnpjbWVIdmR3NWpVeCVabGNLbiN9
JmlpJWdabXs4PUJXVm5VXmtfaSpvQk5LPiRDe15QeW5WQlMwQ299MD41Rz5UUgp6Tm1ANEpYc3B1
MT4xajFwaWQxVil7N3l4ck07WVozKFV0O1VpZ0h2PU1aMDRfayk5SzclQURXM19MfEFlTSQyPX4K
el5aaiRhWn0jKTd3Y2d1JCpTcD96LVM2ej1QaUsjeEFIdFgrbzNZamAjQE1BdStYZ2UlIUVPTT0q
aX1kfWxIRmN5CnpVUlpmWVd6Nzx6cmF5KnNebExIRnZrREVeP2FMfmNGSDBCVV4tSSFlT3lJRE08
c2VaPmtLRzx9dUxeMGZoTnRXNgp6eCZvYTZWYElLMUwtP1FwYVk5O0NRTSl9RDNmQmpkQil4czUt
X3JEcjVTPmltaTMrKHdBNiYqQ09gcEJWP1FMLWYKeksrKUB5JDd9anQ3V3hQJHpiQnN5Pn16eTc/
ZTB9aGNUMzB+YUA2YmY8eGJHX3dGbWAtcnxDOzcpJlJUUjg0THdICnp6RDdhVT51Vk1JbylTKFlK
a0BgQy1PJVV2MXFUTDF1ZGskN3ZvQTVjZ3MxQSRuRm9KYGVmTjVORjF5RnE7MElIJAp6Wi12bTtC
YE9sR3c8JVI4JkFVVkp3Y1R6cEZFZ2liVT1TWXlGOzVjbmpSfkNROGBjRCRkc05HQV9qJkVYKXk/
Jk8KenVlfkp7XyhwdlJiKT04I0NteHl+bE1ASV55Uz5wcjtJI3x3JVNVfig1N1VEYGd6TlI4PiZl
RyVfZDVRYmVXZ05RCno2WW4lKmdzMUFHeyFVQTNCWVJ3cWtZaitMX2d8TXV2dX1tYU5CR3wjKlpT
YlZEIVpgMVledFUmY2M5NU1gJFJLSQp6PyFkbGV2bzJtI1h8WE83dGEzNH5ERVRBR0JWYCYme1k9
JDBtYSRnMmcwWFZPaGR2KT1IXyNZTHFNdHl5M1hXPkIKekZtP25MWHw5YiVZRldWOGNUaGdNbjZW
V1krQFhOMGs/MHtscjc9aHxrPGhob2VEYlJwYjlAYlYxWldie0ZyP3llCnpGaWBDRSlFQiF9ZHRK
Y2t4ZHdeYW5FMTBvencteXZ8S1pvJGYzYWZPQllXS2lweWVhNnA/TiVFYDZpfGBRRTVLNAp6UW9a
LUZGUXpgIVBBTC1jc0VeRCptS3o0ek0qQUxUKnkjX3JpX0FxWiM4WGRGKyY9UXRLKXFHSygoNUBW
UEFvRXMKekl7SjFEZDlQI0lxe31afDlTcGdmaXotckBWZEoyY2BYJDVmdj9ndjZJRUAyNipDRndL
Kko3THNJVnFFNkpkcDd+Cnojc2U3LVdJVH1aSypqP1o0YGUpJEBqJTd7ODRxTVVrbnpDKDUpYWhN
JUV3RXFtMit9cmBtTlhFXio9aUlefilHRAp6I1o+ITkjPyZzbl4yXkZBcCFSWDl0bjU9NGZUNFYt
X0pLdX0mOXxGeEd1Tjd6RXRQKzhZI1RhbFJaaHV+b2ErIWoKemt8VV5GeHhjNCE2WnlnIzg2cW49
I31RWU5xcioyfSZEZUdkTVhDUWY5SV4xMmFvcX5VZlkjPzYwekVKMVkyP05aCnppVkMmUHlfXkN1
I2BYWWJufUQ+KGpPe0w5dyNmNyZraDRXNTgkZk5ISkJJe0Ehe29AXnN7cEFkamZ7endPfGpDUAp6
Z2BuOVloMnk5JlQ4QDxGK3ptKk1VTmBBLTZoX00tSWw2WH14KCMoQVlkM1lvalNvI2kzJHBTSElV
YkotRXBsfUYKejB9IT87cik8amU8KUV2PnhwUXtQOWZ5dFcjZ0k0a1o+UHdQNENteD8pYCNpe2x2
WlZyc28hKnYkWTs9aUhNJF9yCnorSUdIUT8mKlAmeE5OTEN0JHZUX04pTH0mK215SVhJVm1nZXM9
R244JXtwUTFfIXcmRT8tP3xjdDZtTU45SWZxPQp6cWc5KEFZZjx7dShJNSVDcE1hPU1gUEYjUish
Mz1XPVIoNn1YSF4jZiszPCQtcmhQVyRDOSsrUGhCd0pkazlyaGcKekZzcmdsUk5sLWhLVSlGOzg/
PSt2SHMhQXtyQlhTZT90bSFkK1R1b0kjfDh4SWdqKzFwUlImcTxDYEZ3YChLKytmCnpabXd9Uilr
al5NQHxpX0JEPlNVdEc/MDZqSz5edDZhKipLcUV0UDFpLT09KDhyRjw/JnFOR2VjaGx3SGdiU3d1
OQp6cj9NU2VQKD9qWU0xQD0peCpDMWhCMWJvbjBRckxhYHpGe3s8cGJVd1RqV3tsc3F2eG5zQSFF
MG1Mc2pOKGRhfjwKelVqe09VRn1AIT9IJUJaNWdPckBYMihNdlV7X1JTYiNkfEpDVWdBRUNZfmJG
QWJrSXl0S1NVQEUlP28kRTU1PHVVCnpxeiFHYGx1eSpJT0dwY09fQ3N8UzAtPSVHTyZ0ZX40O19R
dD48KkdNY0kzZHRGb3Y0MSZjKlBsX3JZWUZeMF52Nwp6c1ROWkFxSHtObjB7ayhEKktTY3lCY3o4
Rl4jO3ZVdGY8K1FgOzhxR0xOdndYQU1CelBjYz1MLWJEakJhdiVQTDcKejxldVNqcXR5P284WkYp
RjxGSXNsS2NjPXpoRFNNZil+UTRDTXIma0w1NFo9aG9VejsmcHQmNnxsJlBQZGleb2xJCnpeJj1F
ZWNOZWRhMyM7fSlAWn45eCp2YGRmQmBkdEJObHQ7SkVtQzVRajhVRCp3dT4oJT9kWXpveXI9I0pX
VVk8Zwp6WUpHfk1xaklEYVIhb0NqLSQ9QX5FSj5RcHRJQ2xMZTZlayZ4XlE3ITRRTz9EYT4zRStE
TVdefmUlYDI2UChHQkUKeipWVURmIVpAaUdPP3Jjbi1waSQ1allNaE1TUngmRnArTkl2NklJb2xN
WklCS3kqZzN2O2JiZHc1fjhxLT03dmc9CnopWTV3cD17QCFwX3U5QipGRW54V3VWOWtVXkNhfVND
Uyp0b25HOz4qM1Yjb285bmMoQ2VAeFBVZ2YjWExTfDtpLQp6MWZBaGJ3SGdmZGM0V2xCWSYheWEt
fXt8LUZlXklacTNmeVc0XyYkNSp1RlAzKGlDZ0duVDdJYndebzs8UXIqc20KekJJQjVMNDVoWShR
O29yT3k8Oz8xMTNsXmQ9PTJHJlBgd3JjKmoyRX1WKGEoPE8/RGdsdlA/MUspPnolbkc9MGhtCnpT
dmV5KzVBcUVTIWdhbDhBWjs5RDUkIz5iP0BRJl5fNUtJWWg3fGVKRz1jV2lePT5CbTFAX2hUdTF1
NCE+KW4ldgp6RlJobDliN35EfU57XzYzQWgrJHh5fGI/TzM2a2p+cl53MV9TdmpTPUJQKn1nXl9x
eVI+cCRtbjExNTU9aiEjRlIKeioyZVc8XlpoPH41KTF9fk1yYVZ7XmpNd1pERUpJfWcjfilhN0gj
YmdedFowfVhXKGpod31EMi0kajVGeXM1bVAoCnojT21Qa29kZmIlSFpOZ3VWdDEoOSRAPiRAZDB2
TmFOWDZCTUcpMGVVTHIycGxgQjQ0VEJmWFRMMzIjYEhjZFd7UAp6U2B9O3dteiVrK09KJHtZZjJI
WHRLbU1NOTZ5VWJtJT1wbWJmVTckQ2pxUShQZGRWR29qcU5gTFV8djYlUFZOWk4Kemw7e0BCWGA5
bHE0YUUpfGt4WHNJV2RQZjhSbWFpTFlFIUhWVUIxQi1HcT11VHB7cjxASk9PcnZhalVIfi1nYyhn
Cnp4WnhHISoxZCs7YU9gdypKKlUrRDtMfDNNOVZKUnQkTUh9bFN8UWxueCkjQGg2NTMqKUEpeUdU
JUZleUE7Z3ZxQQp6QyE2KiVTbC0oVXBlTEp0ejNTWnVGZSYkbkplTX14ei0yd3pJQSFedl4/T001
e3UpQUw8YFFuQ201Zn0oam8+IVAKeihVPG40QCRGUkFya3EhfHBeOHZ4K31ifDtQdkV0a0UpSEZf
citxbGQ2ezk/V2xKeVBRKD9KQkIwO3ZsNikkYys5CnpiISY+JnBOWkpCe3Q7KVZFJjY7KUpFem9K
QVNOMmNIUlV0NGpNfE0oWntmISoqUWclR1pqQzhnckEjWn1xalpwWgp6Nj92OU0jQjYrX2o8eExe
UkI2STZ6ZUl5V2JNSkIqZz96T2NzLW0oWGRlPi0hI3JWUlI9ekxAMDM3cEowX3ZFJWMKenhlYUU7
UWg+YjJRanF1RngzPVMpPG9uYyFGVlI/SlA2MEk2ZzdCSTg2PFYpXigjd2J7TjFtcmZhNj9jKDJF
QyF9CnpCT3tLZXptVHohT1IkTkRacj9fZTxFQkgjN1k/RFBHMDIrd3Q7KE5ZQiZzLTVaMWA9RWJs
SEBDb0dfMDtqWkhiKgp6Y1JnSiRFKDVENG5AcGk7OFgyeDY3MGFgMF9sR2FIRE14VUUoZ2FVQUt+
KTI0ZVolX3g4fEZXNURzPW19Z35xLXoKemxIQyF6ZjFXaW1rNWw4Sk4kUFBKVXs+fmtxKmtFcypl
cjgzNlomJURnTjM9fm4+Zz1CWFVXZEUrSmE5bkVaN1lQCnpjN2UzQGhrWisxZDhlJChtc25pKUo4
KCZQNTlkdUtvdkZCOG95UyR0aW1UIVJeMFRyI0dNblp8WC1FQTJZMVlWRQp6RUl1cUZeJHdVc25F
RCg1NyZLVGpoP0NCckF2LT0tUmRee2Y4fSpFdURYQUJWSjg7bjNCSURIdUEpXzYlMSthaCYKel8j
OShZckpTZnomZSlXSFJ8bGFsaz1nMi01WXpjalphYkQ9ekFuc1goLW1ATDlAI1lsN3AxcyVsand5
SlhmfmU/Cno1JmxYK0Aob0ooSmp0Y1hwWGEtKGByX0JnRTgjRW87JFFNPHNJRV5ERlcyLSNAMS0z
RnpkdTZRZzBzJkpwPUE0Zgp6fDY4YHl0WUVUek5uNnNyZTcyJk4mKWp4Q2V+cFlLNn5iQSNvb2Ao
ZVB9TG0wYCRYSGh7NTJENyhZYmVrR2pNKVQKek8pZns8Sz5SZTt7WjI/NEBCZ2QwP0dzflZOQntT
KTtrdSpLWiR2ZVZhKzBQWlVGQ1k7Z2xxIVFvITI7UnRPfS1LCnpKVHleYGpHXmd4Vzgyd3ljcXJX
cl9WNT4lU0o2OG96bUBqbWJnQXE4NW0kRDEtQTticWlUWmRhSy1DRXtDUlY2YAp6NnklWUQ5YXMr
dil5SGpZd2dFMnluZyZaIUwtTUhMSy16cjh6P0U4K0tndnBZbzNlSi0/YGR5c2kpUkBoNyk5SGwK
el5RMUxlRGFsSVpZbikrPHktMGpuc3B7XjEwZyFQX0ReTy1fPiZZXjFlV21VNjxuWGQ/MTh1SXhf
TjhFVjk4X3hHCnpzIzE+R2w7JG53bXFebjFBbkNEMnJXTWR0QyFkem5QUEJzcXZpJVdLNnlJJWEr
Y215dylfPC0hLTF7Jmp3ZSEqdgp6VTFYP296UVdiWGs9b2JqMHU1Q3kreVY+MHQhMmlvVSg3bT5p
NUhLX1pMZn5VOGB6cHBkI2UrQ0lYYkc8N0E8KDIKenMjT198OFFXKW9XOFB6VmQjdTV7LXR6Vmg/
SkBJdXlkZ2FVd2wmXzx6QmZ8KVJgQDVUU25vUUw/Pks1fjl9TXxMCnpRT21QZlF8UVNhJVdrU0Ar
a0ZFcllRPCFuV3A+ckJ3TzNpNDJqb2IybjthU1NqJmJYaHcpMnoyU0dMfH5WNDshUgp6SHdJKC00
KEt5MEBBbDxibTFWbmd0cjEmNktGLT9Fd0hFOWNrdT9SUXVga0NEKDJNbXlMKG1rMThHWDU/N2BU
OCkKemI3YndWX3w5NDkqMzlGVXE0NlBBJTleKXhgPH4oTFc3U257eUNwSVYyZCMtMyZ1PzlnI2BB
RlBYZ2g1UGNsVE1XCnppVmVjKzhhaWQ/OEA5LXRlZUpSRW0xZzdDQXZBOG8lPEdwSitWPmhlTzNx
YCRqekx3b09fe1Mjaj13QEo4WHZkPgp6V2FXKiV0VyRAVExzPDh2RFo4JjZzcTYwUkokMVA2PDlP
aiY5SDtUWkZMezJSPU0yfURjd3JYTDJsMEZgJnZTWDYKeiRNYSE0QUhubHtvP3B1SVE5UXFiPWM5
UmtIUDVmKmBTbT1QY3NgY3IxdzA/ZV5ZSntOITFHQndGWERMIyYhX053Cno4cWE2JnlwLW88SmZG
ayFufFdUJl45cjZAYylvej1HUzY/fXhzQihHZDB4JSk4c3UwJChkJUJzMzJhXihGWj95aQp6Jkwk
JUVldUI0enJmfiVROCRtS2IyTUt6RHB3fGRgblZePm1kWTdRejUlZWlSUFpSVk5MMHRyMGlGdylr
US1UVCEKemRWcnZFZl9fTlF0cHUkaSRWSEhrcG1oWWYyPkthOGNNI01+UCZHbFg2MTBHemNMPHQ4
Jn5idk01UmA/TCtEbVdQCnpQMWdgfkp3WVZ8alV1UiRwZ2UrVjJ4MF58MjxwZXdZNFE8dGpHKG15
e2VfP2lMNUIkWE19cWJkXmJ8cTYyenI1Xwp6P0Y4KjZzR0ZjUzNFRTgxelozTHhmPDduY0NqQDso
Jl5tJktWTUZjeEswKChJNmU0SW1MRWo7MENQNkMqVDBxY2sKejFsMUJgQlolVHV5JW01a1p+eTdq
KT5mOXlobUZrVTQqPmB7dXBpUEZuRXdMQWlfJH5MN31QOTUkKTY9YWh7IXExCnpmWWlae3tDTihD
P1l8XkFGMzN6MmpBVCg4YlRxb2xxezUoZD1qNEBqJG93cks1NTZkQGxPX2tHSy1sWV4rfkQhTAp6
ck9BSEQ5fWN5SUxtYlV4bSg7aSZGM0lEUT5IfWBhSig0SG40bWhZRHVNKDgjOCZTI09iNG05R3pA
bjtCc0wzdFcKemR3aDwtWUtndlYlTTxPQzx5fHRsTiU5QXokQDYkVm5aRGVWQW5nZkNWWH0/dWcz
eFVtZCE7KU5xO317REh1PitCCno5OCFZUj48JkB8JFR+R3lyQHYpJnp8K19pZn4/MnFeb0N0LWgh
MFNHeypjRT5AKypfTj4tfEFEKkJ1SDZkPWxEJAp6YSElOEY0X1N7VWkqSz4wOCFrXmtsOTBLYkF3
UFE3ZlIxP21QUG9GP2kya3BaZH5VYlBPXiQrdG4leXBzMUt5eHwKejVfdlReRGVuXkFtQGFHWmQl
Z2E5UUxUUXApWnojPU9fRSZoMjFuUSVmQEEje0RwPXZ0dFo9ITVBI01VUjVEZnFGCnpRQWs9ZTJf
XzlGcWNJP2JkQ1ZPTXoqTE4lKThFYG8xTGdKajtHOTVYeFlfTHNObjtDeFdBaGpkS1IxKlFyUkQo
Kgp6Wnc/MVRRb1RSYUItT2o2VjJqKTdZNEVzUk1SYG5gcFktfG9gOFA+Wk49KHh5Tm1sQjtXfF9r
KVJmTDBSRDtTaWoKejlMXj8hUCQkc2g3eFJafmZuSlBxayExRklyNVlOKXBqNmB5eCZ0ZkdndjFK
aVdzPWszbFE0U2RmRzZafWNzPSpJCnpDRn1nIUIyMDtwQk5QcndiSUQ2QVB8eFEzIShKQmBefCFj
dm4oPG9hRCFCKFJkdEVlRWUzRU83dSt6OEZQU1J6aAp6UV98IzhTUnNHeXszYl5MUl9OSklYYlpW
KDtJI0B6KEN3PEFyRDVlTyF5bkt+T09oamBJbGEmfDM4VVoqSH5YWVEKelJ+fkQwYHwxUHRsKSkp
IW1aeTUzakZ9fEhDP1QjNVhyWj5eczdFeGBEVjZlPSkpODhlb1NqKEVzYT5iRiRIYXsxCnpxYVMy
WSEzTzMhNkJDWGw3ZzJIfTVrU0o4a2wqajYkPF5YQGhjSl9hVlckJmctVnBZQlJ+TkFXRGBOTjdp
JUUjQgp6Q3Q7SzsrfXh+ZjUxTGhsIVEjU1Q1ZTtTWEt9LXghVnVNVlFsZmN1dWhqdjJ6Wm8jay12
UG5wVSk1YStANyFFQVkKekYmTFBeOzRvd3g9bz9AOVVjRE44SXgxJjwzbUcyNT4zZEUzd2l+LUV6
UFRMMUVaV3p4UyN1ZDF5ZE45dWstPD1qCnpnU1VKTCVrRCYocFVWdT1QezJjKFZGbGlZQGB0bVc/
JWB9dWAzUHBYZm5eeSs0am57by13SmpBcWk2WWV0dU9WVwp6Xm9udyZDfGdDalVYK2lEQC1iMHY1
I3wzODwtZHdAazB8JHhAO3ktPTczRjg1SlN8R1NAbVYpJWJgMkJkNnszX3gKeklZRUB1TTB2OSlX
bGAzTUAtOSZ9aF9YZUxfbGRHeWxuO3Q+cWJRI2M8IT9sfVJnXkpOekFublFNRVFYelJaKlQ0Cno8
KEh4eSZFRVN+ViRNfHI/dlpkKnZxNmRENj56amo+I3lEcTNBey1GN243U088YkhBeWVKaDNCJm5f
WXQ1SEB5UQp6TTl3ZWRIZUUhe0Jqbz0xQjY0KjdxdndULSRUPkIhT3JHJlQjc2U3LVdJVH1aSypq
P1o0YGUpJEBqJTd7ODR2dF8KejxBSVQ1T0lNN25TYUckYmIlO2Q0ZkpAOG1fQiZqVD5YcSEpSytN
cEVVKThrNyZgQXVScW5ZVndfUXFBSz9EJCp2CnpweD1pO1NaSzk8V2VJRElBKlJlOUwrNTN2aHJo
OVJJUGJBTG85P2tVaDgrUEhCVnsxRTVIKUheQXxCcldPcHpsbgp6PW5yMWBBTCFjPXhgaX1yclFa
eU1XPEV5JEVwdCZMUCYkJlRFU2AjPmw0KXdLJipTdkYrKU1kaSNMcVdYSTt0MGkKekpnayFpJUQr
KntWeWF3ODY3cW49bHFwe3liQSFUfk1UP2koYj9zRXZtYHRfUmh+VCstTlVYK0dRcDx0KXUhSjtN
Cno0YGBsUVRqZyM+VkF0aVgjRTV7bXs2ZTFaLXBYY1R0cEY9KmNZNTZwVWxfaClmaEpDWGl+V0pj
aiVLZDlnXzljSAp6QXEhJV9tUEZXP2dqYUQ2I1dNK09IRT1aZUhHPUJ8RC1gZyRlSShuLTJeNiQr
ZEooLVEoIzltb2gzSzB6bHlJfUIKejVtREgxZlhqM3hXaG1CM3dZRFRGaTRaNEl5RShOYnUrcldU
YVB5a21sOVhsI1YjYGpGK0hhdEZSOyZIJTAwZTZoCnpNa2V3aFBQUjlAbzYhfVRlPyZaQDVlTWRF
Z1R2emBoTUhnbTVKNjghcEJOeXZ0V0ZTNTZWYmcmSTRjV0NMJGRTaAp6SU9fSHtramhSQ3ApbndJ
QlMrelhaZ2ZgeTNsZVYmI31keHk9MiMyPFEkdlU9K05SLVF0ITZCTkB0VXUzajYldHoKelhGdGIr
WmE0NGpBJiFPSVVmI25hOU9GTlZrZj0pTktwUTdHOFYrJSNyd0l2UV9PMFplWXxaODx7YzhyUXhz
RmkkCnpCTUUwU3BLNkB+NjtvbShwPCRvc3I/IV9HP0QmbCsrdXF5K3pxeV5ea1FASWEhJEN7Qlhx
a05oZXZINXhiVVR7dQp6WSlZN0lyQztDaHAqOG8jRCRUS0xETUMmejU1bH0zOFpkYGBZfCMzIyNu
OGZESDFNfG1VPVdRU0ZhKzdoMX4pcn0Kenw3JnVoNnJzfHRTOyU2dTVJPT5KZXMxOTFfPz59dz96
dD87JXJlO1VRdmY+KmBPWSM4Sl81TUE0M1MjJGQ1P2tvCnpgM158MkdIQWtvNkY/PShUNHk4Y3FB
V0hXdmlLIXtvaXYxOD4+KzQ5TEtNdHtqeDBYQD5wfCtDTHl+aH5oc1ZkQgp6JGZEQD5RKDBKfD5e
Q0cmJW9DS2cmUENSVipscmc2U1l1fkAlKEEhOGhHN21nMkhCeChtYVQ+UVMjTVNZbVRhKHoKel49
RTAkWHc2MCZhfTU+PldWM1Y3OEppREgtU31gfE5HVz9oK2NibDEmej9Haz9afmRjIW51ZC0lQzJe
fT1tIVk0CnpIKFQyVCp9bSpyMGxmKWJ0cVo2K1drKUZNVHUzTm9gKDs5eyRjfFdQdSh+R0NlUG4y
ZlIzYl9GUWhxKnU0eXZYeQp6VStOcyh2Zm9mclFYK0wzJHw7VWJCa1E2SDt3ZU8jaVgjTmg4dH5R
SVRaTmwlQ2xMemc2KExMZlV6WktRM3NQfDYKejdhK2tgezJfY1h2UShWdlF+YUVHUGEjcUwxV3Ep
bnt9QkN2aUhDNWlwVE02NUs1bWN9ZG5YPSEqQn5KIW99Qj4zCno7blNGeU52cGVgYUt6aSRSMUsj
KGlJXmxuXzVzck1BU1V7QUxme0V8YGhreH5YKWhQREJrOypyO3tUfTcmKXxldAp6N2k7PmIwPjIq
WmNadjNBNTxrVHIzKmptRClCcmFrYj5UK3w2cyRxdUNEJntDRHVJXl5gfmlXLWcjMmNLdWVlVD0K
enI7bFZ2VXlJPVhMRXg9fHxEbkxrMSU2V0NDeGtxR2FMKC0he0EmZj9EY1V5KXloUUw5Mj5naF56
YilgcUF4fVRQCnpsZkQlS3xEbktKMXBXXlJULTUpSyExRHpqNkw/SkVoZDc9T1BpZyU8Q2lxNyVZ
MHdOaUJrKnBhZStZaHtxNHJEMAp6WVclQU85PWshcT44RStsemZyXksyWVBPPSEwQmd0IWtOSjc9
WEFuNTE+UFg9Wmhfdz9ATT5YQ1JOJFFnfDBRciMKek4zSzIzWCpqak9wOTREbHhER2RDRTwhamRm
NGRJJWE9YUJAKDRMU0V8REduRjxVZyQ4TnFaakc7bV8mdFR7YD92CnpJe2FON2VwSDhfKVpxOzRK
az1rQWJAJkohSzF6cFF0SFc+OTtTK1NZTnIjdXxhSSs0VmJAJm47ZXd6LWopOFRGJQp6LW1KcmVJ
e2JTJnlpSkVrYm9lNzBvfTNTbD5Ge1RDX3pvVDNxcihzREBRLSEpN2RvOHd6U1F9NmxAMUBUO21Q
P2AKenFUfG9qO2omSj82dz9eajFjcm0zO3JNMkFrblRkTkwlSkt1ajxmPkZmbUR5PUx+PGR5a3M2
V2NfcU1yNkh6VW5OCnpEbn5MU0VrSWdgQnFQeSpjPzs0YUJwWHJ7KHFnMH5OWXpPNjkjKF8yNmxv
YiFFeilnQmJSYUhBYFptJVhOT3ZNTgp6QWJGN1JsKyRsYDYtZWB1RUomM3x7flAtd3ZFb3tNWlZ8
LSlKZmJmIyFwKzZPZlV7V3BXanw0Zj8tWXVoRWlEJkYKelNBOyFZUzI2JFVMd3hmUjZ4RTlBSWpo
RXZ4MV52dW93JWdfSjl0JElQV0pmJmMme2o0UlhXMnlWX0hKUSYreVZ7CnpHVncyaCVzIVhKPE11
Rm52amRtN2g0Ymc5e0NoVTkrcjtkeUNYJSt6NnJVSnpxX2lkQVp7KTlHe35ia2lqaVhtSgp6RUIh
TXhKT0FSeCZNJGk2K0UmeWV1NVRBPkd3cUo4LUtnenBHPHNqclFUVX1ib3RBbkRQdmBMYWNSR24q
LV91RGcKemJjQCFKPXo1KF87JV9uK2xLMmY+UHYlIzZKJnxBVSh9X1g0bmQ/WUF7JXwxP2dMOzc9
VURWVHc7IVB1K3M5bk9wCnpoTmp2NkhFJXo3V2dvY05peEMhPWAhcjB1KEY+QmVecnViOy0wVnxQ
LTBAUzwobGt1RmA9e35+WnZtK15AZk1JdQp6TzF2NTktP1QzbFEyN1F2NTJZa3t8MkttdTM3elRU
NkZycCZQQyg/KkV8ZTc5TFJqaSs7I3Jga2diPm89U3YrPS0Kek0kc1olb1RTQ0tHPzFjTzhwTEI7
OThBVTsxU1NGdVQ0VyYrUW17QWh3YntTfUluM1VtdHUhaXZ6X2RseUFZUzZfCno0ZnNTNyVaVW8m
WUFkT00yTHRSNEpQS2ZNNVIpYGZNSDNab2BncjVsN0VlJW54MkpifWRafHh8RUNDI2RERkp+WQp6
PkNxKDZjcE00azFweT9ZQntVOSVqT19mSXd7TTZRWC11dTNUckw/TU5geDVmO2JlRzcxNFVmdWc2
Slg2TDtaOTEKemdKQ2hlbTNEIVNuPDlURUE7KjJ5ZlJnVjBoRW5iSm8zIzxMTDxiajFkekQ+PnZQ
OGhSTnp9NFkyTDNQY2glYigpCnokPHkmbm4+QjZQbD1Aa1lEYnJeKCUkUW5nbm1UPmZPdmtLeCQx
SzszNS1fSmFYVSYrLSVFSkFKYjJAR3NfMjgpWQp6enlIaE0xJTRpVFk7VFkmKHEqRiRLYWhMRmdM
QSZSdEwmfW1FQXV8UkdeZ1lXc2J9NG9zI31VJE0mRnRKTUVLcGUKejkobmZldk5LPSF8NkU+QmJs
XzYrRkhpbztkK2pnd29fSTkrKH1gV0RuczBiYGB6T3ckK3hJPl5iamBkZTxHITJzCnorQ3AzNG9q
KXZEd0FnJDkhcGU3IWYzV0VmJWJxKHZyfEhSeE0/M0dkalI7bFQrV1YqQ3BJb3pXOyMyNTliKTRR
Tgp6bmVmR202a2x8S29hUEhEPndvVHhqak5eMyNtfjQkZ2pZUn5iNHlvdSZFb0kwPyYhSnQkO3Fi
PSZmSStFezQrbHkKejh+KXhpLUBSK2VsUWtiYWBKMz9qT34tI0xwTDt4aF5HbWFiRjFXcFFOX3FT
NG4jUSpte1FqQjBqQztnI15xKVJqCnpgdTZqVUFGdWxFO1Q7RGl7QFlKKW92fFM+XjFXZU9vfEIk
RnhhUWwmI3xCNkhrS05UWEAjJE5xeT9TcyQqWEJoZgp6RGAhNmI+eVE1OWc7N0h2e3FnVmlQNXcl
fmA3X3RydHE9WnIta2BAMHQ4O2d9YHMyKzlFXz1DZilTUEVHYmhySEEKejtEWD1ZX0dESkAmRyph
eFc/dVp6JGlrSUhJWEJHPmBRTkJHZFJAXk0mMyhfIzlAfCopdEZ3Mnltb05MfHNXYWJ1CnpiTClj
ekZUOCVxYE4yUUc+ZGo0JnZtWHA0VSs0YjRLNHkzczRgZSkkQGolN3s4NHFNVWtudXBxMH5ycndK
ZHA3fgp6I3NlNy1XSVR9Wksqaj9aNGBlKSRAaiU3ezg0cU1Va251cHEwfnJyd0pkcDd+I3NlNy1X
SVR9Wksqaj9aNUIkSUcKR2YmVCowUWJsNmAKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsucmVhZG1lIGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay5yZWFkbWUKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmIxNmUzZjY2MTAwOWE5NTY4ODY1ZmJlYjBkYWUxNWQ0ODMyMzc2OAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsucmVhZG1lCkBA
IC0wLDAgKzEsMTUgQEAKK0luIG9yZGVyIHRvIGdlbmVyYXRlIHRoZSBnZW5icmsgYnJlYWtpbmcg
cnVsZXMgY29tcGlsZXI6CisKKzEpICBDaGVjayBvdXQgSUNVCisyKSAgY2QgaWN1L3NvdXJjZQor
MykgIG1rZGlyIGluc3RhbGwKKzQpICAuL3J1bkNvbmZpZ3VyZUlDVSBNYWNPU1ggLS1wcmVmaXg9
JChwd2QpL2luc3RhbGwgLS1lbmFibGUtc3RhdGljIC0tZW5hYmxlLXJlbmFtaW5nPW5vCis1KSAg
bWFrZSAtajgKKzYpICBtYWtlIGluc3RhbGwgLWo4Cis3KSAgQ3JlYXRlIGEgZ2VuYnJrIEMrKyBY
Y29kZSBwcm9qZWN0Cis4KSAgRGVsZXRlIHRoZSBhdXRvIGdlbmVyYXRlZCBtYWluLmNwcCBhbmQg
ZHJhZy9jb3B5IGluIHNvdXJjZS90b29scy9nZW5icmsvZ2VuYnJrLmNwcAorOSkgQWRkIHNvdXJj
ZS9jb21tb24gYW5kIHNvdXJjZS90b29scy90b29sdXRpbCB0byB0aGUgVXNlciBIZWFkZXIgU2Vh
cmNoIFBhdGhzIGxpc3QgaW4gdGhlIHByb2plY3QgYnVpbGQgc2V0dGluZ3MKKzEwKSBBZGQgVV9E
SVNBQkxFX1JFTkFNSU5HPTEgdG8gdGhlIHByZXByb2Nlc3NvciBtYWNybyBsaXN0IGluIHRoZSBw
cm9qZWN0IGJ1aWxkIHNldHRpbmdzCisxMSkgVW5kZXIg4oCcQnVpbGQgUGhhc2VzLOKAnSBhZGQg
YSBsaWJyYXJ5IHRvIGxpbmsgd2l0aCwgc2VhcmNoIGZvciDigJxpY3XigJ0gYW5kIHNlbGVjdCB0
aGUgc3lzdGVtIGxpYmljdWNvcmUKKzEyKSBEcmFnL2NvcHkgc291cmNlL2luc3RhbGwvbGliL2xp
YmljdXR1LmEgaW50byB0aGUgcHJvamVjdAorMTMpIENoYW5nZSBidWlsZCBjb25maWd1cmF0aW9u
IHRvIFJlbGVhc2UgYW5kIGJ1aWxkIGl0IQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4
dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0
ZXJhdG9yLmNwcAppbmRleCAzMWEzZjAyYjNlY2E4ZTA1M2RkNTI1MjUwNTEyNTM1ZmUxMGJiYjNi
Li43MDRmYWZjZmQ2NTU4YWRhNTFiNDM0Y2QyNjI3OTdhN2M3NTEwNjE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcApAQCAtMjksOSArMjksNiBAQAogI2luY2x1
ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCi0v
LyBGSVhNRTogVGhpcyBuZWVkcyBhIGJldHRlciBuYW1lCi0jZGVmaW5lIEFERElUSU9OQUxfRU1P
SklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkpCi0KIG5hbWVzcGFjZSBXVEYgewogCiAv
LyBJdGVyYXRvciBpbml0aWFsaXphdGlvbgpAQCAtNTksNiArNTYsMTIgQEAgc3RhdGljIFRleHRC
cmVha0l0ZXJhdG9yKiBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoY29uc3QgY2hhciogYnJl
YWtSdWxlcykKIAogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9T
KQorVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQg
cnVsZVNldCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgogCiAvLyBJdGVyYXRv
ciB0ZXh0IHNldHRpbmcKIApAQCAtMTY1LDEzMSArMTY4LDE0IEBAIFRleHRCcmVha0l0ZXJhdG9y
KiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiBUZXh0QnJlYWtJdGVy
YXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZykKIHsKICNpZiAh
UExBVEZPUk0oSU9TKQotICAgIC8vIFRoaXMgcnVsZSBzZXQgaXMgYmFzZWQgb24gY2hhcmFjdGVy
LWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NwotICAgIC8vIDxodHRwOi8vc291cmNlLmlj
dS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3NvdXJjZS9kYXRh
L2Jya2l0ci8+LgotICAgIC8vIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9tIHRoZSBvcmlnaW5h
bCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6Ci0gICAgLy8gKiBSZXBsYWNlZCAnW1xwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBTcGFjaW5nTWFya31dJyB3aXRoICdbXHB7R2VuZXJhbF9DYXRlZ29y
eSA9IFNwYWNpbmcgTWFya30gLSAkRXh0ZW5kXScgZm9yIElDVSAzLjggb3IgZWFybGllcjsKLSAg
ICAvLyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFm
dGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKLSAgICAvLyAqIEFkZGVkIHJ1bGVz
IHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciB2aXJhbWEgc2lnbnMgb2Yg
SW5kaWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwgYW5kOwotICAgIC8vICog
QWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGJlZm9yZSBKYXBh
bmVzZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJrcy4KLSAgICAvLyAqIEFkZGVkIHJ1
bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4KLSAgICBzdGF0aWMgY29uc3QgY2hh
cioga1J1bGVzID0KLSAgICAgICAgIiRDUiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gQ1J9XTsiCi0gICAgICAgICIkTEYgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9C
cmVhayA9IExGfV07IgotICAgICAgICAiJENvbnRyb2wgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJf
QnJlYWsgPSBDb250cm9sfV07IgotICAgICAgICAiJFZvaWNlTWFya3MgPSBbXFx1RkY5RVxcdUZG
OUZdOyIgLy8gSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FuYSB2b2ljZWQgbWFya3MKLSAgICAg
ICAgIiRFeHRlbmQgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSAkVm9p
Y2VNYXJrcyAtIFtcXHUwRTMwIFxcdTBFMzIgXFx1MEU0NSBcXHUwRUIwIFxcdTBFQjJdXTsiCi0g
ICAgICAgICIkU3BhY2luZ01hcmsgPSBbW1xccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBN
YXJrfV0gLSAkRXh0ZW5kXTsiCi0gICAgICAgICIkTCAgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IEx9XTsiCi0gICAgICAgICIkViAgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IFZ9XTsiCi0gICAgICAgICIkVCAgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IFR9XTsiCi0gICAgICAgICIkTFYgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IExWfV07IgotICAgICAgICAiJExWVCAgICAgPSBbXFxwe0dyYXBoZW1lX0Ns
dXN0ZXJfQnJlYWsgPSBMVlR9XTsiCi0gICAgICAgICIkSGluMCAgICA9IFtcXHUwOTA1LVxcdTA5
MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRIaW5WICAgID0g
XFx1MDk0RDsiIC8vIERldmFuYWdhcmkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRIaW4xICAgID0g
W1xcdTA5MTUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJpIExldHRlciBLYSwuLi4sSGEKLSAgICAg
ICAgIiRCZW4wICAgID0gW1xcdTA5ODUtXFx1MDlCOV07IiAvLyBCZW5nYWxpIExldHRlciBBLC4u
LixIYQotICAgICAgICAiJEJlblYgICAgPSBcXHUwOUNEOyIgLy8gQmVuZ2FsaSBTaWduIFZpcmFt
YQotICAgICAgICAiJEJlbjEgICAgPSBbXFx1MDk5NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0
dGVyIEthLC4uLixIYQotICAgICAgICAiJFBhbjAgICAgPSBbXFx1MEEwNS1cXHUwQTM5XTsiIC8v
IEd1cm11a2hpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJFBhblYgICAgPSBcXHUwQTREOyIg
Ly8gR3VybXVraGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRQYW4xICAgID0gW1xcdTBBMTUtXFx1
MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkR3VqMCAgICA9
IFtcXHUwQTg1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAg
ICIkR3VqViAgICA9IFxcdTBBQ0Q7IiAvLyBHdWphcmF0aSBTaWduIFZpcmFtYQotICAgICAgICAi
JEd1ajEgICAgPSBbXFx1MEE5NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBLYSwuLi4s
SGEKLSAgICAgICAgIiRPcmkwICAgID0gW1xcdTBCMDUtXFx1MEIzOV07IiAvLyBPcml5YSBMZXR0
ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRPcmlWICAgID0gXFx1MEI0RDsiIC8vIE9yaXlhIFNpZ24g
VmlyYW1hCi0gICAgICAgICIkT3JpMSAgICA9IFtcXHUwQjE1LVxcdTBCMzldOyIgLy8gT3JpeWEg
TGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJFRlbDAgICAgPSBbXFx1MEMwNS1cXHUwQzM5XTsi
IC8vIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRUZWxWICAgID0gXFx1MEM0RDsi
IC8vIFRlbHVndSBTaWduIFZpcmFtYQotICAgICAgICAiJFRlbDEgICAgPSBbXFx1MEMxNC1cXHUw
QzM5XTsiIC8vIFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkS2FuMCAgICA9IFtc
XHUwQzg1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRL
YW5WICAgID0gXFx1MENDRDsiIC8vIEthbm5hZGEgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRLYW4x
ICAgID0gW1xcdTBDOTUtXFx1MENCOV07IiAvLyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAg
ICAgICAiJE1hbDAgICAgPSBbXFx1MEQwNS1cXHUwRDM5XTsiIC8vIE1hbGF5YWxhbSBMZXR0ZXIg
QSwuLi4sSGEKLSAgICAgICAgIiRNYWxWICAgID0gXFx1MEQ0RDsiIC8vIE1hbGF5YWxhbSBTaWdu
IFZpcmFtYQotICAgICAgICAiJE1hbDEgICAgPSBbXFx1MEQxNS1cXHUwRDM5XTsiIC8vIE1hbGF5
YWxhbSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRSSSAgICAgID0gW1xcVTAwMDFGMUU2LVxc
VTAwMDFGMUZGXTsiIC8vIEVtb2ppIHJlZ2lvbmFsIGluZGljYXRvcnMKLSAgICAgICAgIiRaV0og
ICAgID0gXFx1MjAwRDsiIC8vIFplcm8gd2lkdGggam9pbmVyCi0gICAgICAgICIkRW1vamlWYXIg
PSBbXFx1RkUwRl07IiAvLyBFbW9qaS1zdHlsZSB2YXJpYXRpb24gc2VsZWN0b3IKLSNpZiBBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1MjY0MCBc
XHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUwMDAxRjND
NCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBcXFUwMDAx
RjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3MSBcXFUw
MDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAxRjQ4Ni1c
XFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUwMDAxRjY0
NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBcXFUwMDAx
RjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNl07IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRl
IGluIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUy
NkY5IFxcdTI3MEEtXFx1MjcwRCBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBc
XFUwMDAxRjNDQSBcXFUwMDAxRjNDQiBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0
Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAx
RjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUw
MDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU3NSBcXFUwMDAxRjU5MCBcXFUwMDAxRjU5NSBc
XFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0
RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMCBcXFUwMDAx
RjkxOF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2Vsc2UK
LSAgICAgICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2
OSBcXFUwMDAxRjQ4Ql07IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5j
ZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNzBBLVxcdTI3MEMgXFxV
MDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0Eg
XFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0
NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAw
MUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxV
MDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYg
XFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzBdIDsiIC8vIEVt
b2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbmRpZgotICAgICAgICAiJEVt
b2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07IiAvLyBGaXR6cGF0cmljayBtb2Rp
ZmllcnMKLSAgICAgICAgIiEhY2hhaW47IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAot
ICAgICAgICAiISFSSU5vQ2hhaW47IgotI2VuZGlmCi0gICAgICAgICIhIWZvcndhcmQ7IgotICAg
ICAgICAiJENSICRMRjsiCi0gICAgICAgICIkTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOyIKLSAg
ICAgICAgIigkTFYgfCAkVikgKCRWIHwgJFQpOyIKLSAgICAgICAgIigkTFZUIHwgJFQpICRUOyIK
LSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCog
LyAkUkk7IgotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKjsiCi0gICAgICAgICJbXiRDb250cm9s
ICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2lu
Z01hcms7IgotI2Vsc2UKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsiCi0g
ICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsiCi0gICAgICAgICIkUkkg
JFJJIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIkSGluMCAk
SGluViAkSGluMTsiIC8vIERldmFuYWdhcmkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEJl
bjAgJEJlblYgJEJlbjE7IiAvLyBCZW5nYWxpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRQ
YW4wICRQYW5WICRQYW4xOyIgLy8gR3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAi
JEd1ajAgJEd1alYgJEd1ajE7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAg
ICIkT3JpMCAkT3JpViAkT3JpMTsiIC8vIE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAg
IiRUZWwwICRUZWxWICRUZWwxOyIgLy8gVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAg
IiRLYW4wICRLYW5WICRLYW4xOyIgLy8gS2FubmFkYSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAg
ICIkTWFsMCAkTWFsViAkTWFsMTsiIC8vIE1hbGF5YWxhbSBWaXJhbWEgKGZvcndhcmQpCi0gICAg
ICAgICIkWldKICRFbW9qaUZvclNlcXM7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2Vx
dWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsiIC8v
IERvbid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0
aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKLSAgICAgICAgIiEhcmV2ZXJz
ZTsiCi0gICAgICAgICIkTEYgJENSOyIKLSAgICAgICAgIigkTCB8ICRWIHwgJExWIHwgJExWVCkg
JEw7IgotICAgICAgICAiKCRWIHwgJFQpICgkTFYgfCAkVik7IgotICAgICAgICAiJFQgKCRMVlQg
fCAkVCk7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJEV4dGVuZCog
JFJJICRSSSAvICRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVuZCogJFJJICRSSTsi
Ci0gICAgICAgICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIk
U3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0jZWxzZQotICAgICAgICAiJEV4dGVu
ZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENv
bnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFJJICRSSSAvICRSSSAkUkk7IgotICAgICAgICAi
JFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4xICRIaW5WICRIaW4wOyIgLy8gRGV2YW5h
Z2FyaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEJlbjEgJEJlblYgJEJlbjA7IiAvLyBC
ZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkUGFuMSAkUGFuViAkUGFuMDsiIC8v
IEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkR3VqMSAkR3VqViAkR3VqMDsi
IC8vIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkT3JpMSAkT3JpViAkT3Jp
MDsiIC8vIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkVGVsMSAkVGVsViAk
VGVsMDsiIC8vIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEthbjEgJEthblYg
JEthbjA7IiAvLyBLYW5uYWRhIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkTWFsMSAkTWFs
ViAkTWFsMDsiIC8vIE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEVtb2pp
Rm9yU2VxcyAkWldKOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwotICAg
ICAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7IiAvLyBEb24ndCBicmVh
ayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3Rv
cikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
Ci0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0gICAgICAg
ICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAgIiEhc2Fm
ZV9mb3J3YXJkOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIiRFbW9qaUZvck1vZHMg
WyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IjsKLSNlbHNlCi0gICAgICAgICJbJEVtb2ppVmFyICRF
bW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9q
aVZhciAkRW1vamlNb2RzXSs7IgotICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAi
ISFzYWZlX2ZvcndhcmQ7IjsKLSNlbmRpZgotICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciog
c3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxl
cyhrUnVsZXMpOworCisgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gaXRlcmF0b3JGb3JSdWxlU2V0
KEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQpKSB7CisgICAgICAgIGlmIChhdXRvKiBp
dGVyYXRvcldpdGhUZXh0ID0gc2V0VGV4dEZvckl0ZXJhdG9yKCppdGVyYXRvciwgc3RyaW5nKSkK
KyAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcldpdGhUZXh0OworICAgICAgICB1YnJrX2Nsb3Nl
KHJlaW50ZXJwcmV0X2Nhc3Q8VUJyZWFrSXRlcmF0b3IqPihpdGVyYXRvcikpOworICAgIH0KKwor
ICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
ciA9IGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMpOwogI2Vsc2UgLy8gUExBVEZPUk0oSU9TKQogICAgIC8vIFVzZSB0aGUgc3BlY2lhbCBUaGFp
IGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBmb3IgYWxsIGxvY2FsZXMKICAgICBzdGF0aWMgVGV4
dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXpl
SXRlcmF0b3IoVUJSS19DSEFSQUNURVIsICJ0aCIpOwpAQCAtMzE3LDQ0MiArMjAzLDIwIEBAIHZv
aWQgcmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikK
ICAgICBMaW5lQnJlYWtJdGVyYXRvclBvb2w6OnNoYXJlZFBvb2woKS5wdXQoaXRlcmF0b3IpOwog
fQogCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRQcm9sb2d1ZSA9Ci0gICAgIiEhY2hhaW47Igot
ICAgICIhIUxCQ01Ob0NoYWluOyIKLSAgICAiISFsb29rQWhlYWRIYXJkQnJlYWs7IjsKLQotc3Rh
dGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNCZWZvcmUgPQotICAgIC8vIGV4cGxpY2l0
bHkgZW51bWVyYXRlICRDSiBzaW5jZSBJQ1UgdmVyc2lvbnMgcHJpb3IgdG8gNDkgZG9uJ3Qgc3Vw
cG9ydCA6TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6Ci0gICAgIiRDSiA9
IFsiCi0jaWYgKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9O
X01JTk9SX05VTSA+PSA5KQotICAgICI6TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0
YXJ0ZXI6IgotI2Vsc2UKLSAgICAiXFx1MzA0MVxcdTMwNDNcXHUzMDQ1XFx1MzA0N1xcdTMwNDlc
XHUzMDYzXFx1MzA4M1xcdTMwODVcXHUzMDg3XFx1MzA4RVxcdTMwOTVcXHUzMDk2XFx1MzBBMVxc
dTMwQTNcXHUzMEE1XFx1MzBBNyIKLSAgICAiXFx1MzBBOVxcdTMwQzNcXHUzMEUzXFx1MzBFNVxc
dTMwRTdcXHUzMEVFXFx1MzBGNVxcdTMwRjZcXHUzMEZDIgotICAgICJcXHUzMUYwXFx1MzFGMVxc
dTMxRjJcXHUzMUYzXFx1MzFGNFxcdTMxRjVcXHUzMUY2XFx1MzFGN1xcdTMxRjhcXHUzMUY5XFx1
MzFGQVxcdTMxRkJcXHUzMUZDXFx1MzFGRFxcdTMxRkVcXHUzMUZGIgotICAgICJcXHVGRjY3XFx1
RkY2OFxcdUZGNjlcXHVGRjZBXFx1RkY2QlxcdUZGNkNcXHVGRjZEXFx1RkY2RVxcdUZGNkZcXHVG
RjcwIgotI2VuZGlmCi0gICAgIl07IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdu
bWVudHNDdXN0b21Mb29zZUNKSyA9Ci0gICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIK
LSAgICAiJEVYX1NVQiA9IFtcXHUwMDIxXFx1MDAzRlxcdUZGMDFcXHVGRjFGXTsiCi0gICAgIiRJ
RF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAgICAiJElT
X1NVQiA9IFtcXHUwMDNBXFx1MDAzQl07IgotICAgICIkTlNfU1VCID0gW1xcdTIwM0NcXHUyMDQ3
XFx1MjA0OFxcdTIwNDlcXHUzMDA1XFx1MzAxQ1xcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwQTBc
XHUzMEZCXFx1MzBGRFxcdTMwRkVcXHVGRjFBXFx1RkYxQlxcdUZGNjVdOyIKLSAgICAiJFBPX1NV
QiA9IFtcXHUwMDI1XFx1MDBBMlxcdTAwQjBcXHUyMDMwXFx1MjAzMlxcdTIwMzNcXHUyMTAzXFx1
RkYwNVxcdUZGRTBdOyIKLSAgICAiJFBSX1NVQiA9IFtcXHUwMDI0XFx1MDBBM1xcdTAwQTVcXHUy
MEFDXFx1MjExNlxcdUZGMDRcXHVGRkUxXFx1RkZFNV07IgotICAgICIkSURfQUREID0gWyRDSiAk
QkFfU1VCICRFWF9TVUIgJElOX1NVQiAkSVNfU1VCICROU19TVUIgJFBPX1NVQiAkUFJfU1VCXTsi
Ci0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25t
ZW50c0N1c3RvbUxvb3NlTm9uQ0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NV
QiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1
MjAyNl07IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gW1xcdTMwMDVcXHUz
MDNCXFx1MzA5RFxcdTMwOUVcXHUzMEZEXFx1MzBGRV07IgotICAgICIkUE9fU1VCID0gJyc7Igot
ICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJd
OyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2ln
bm1lbnRzQ3VzdG9tTm9ybWFsQ0pLID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107
IgotICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gJyc7IgotICAgICIkSURfU1VC
ID0gJyc7IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gW1xcdTMwMUNcXHUz
MEEwXTsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJ
RF9BREQgPSBbJENKICRCQV9TVUIgJE5TX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQot
c3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxOb25DSksgPQot
ICAgICIkQkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0g
Jyc7IgotICAgICIkSU5fU1VCID0gJyc7IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNf
U1VCID0gJyc7IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAg
ICIkSURfQUREID0gWyRDSl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0
IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksgPQotICAgICIkQkFfU1VCID0g
Jyc7IgotICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5f
U1VCID0gJyc7IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gJyc7IgotICAg
ICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gJyc7
IgotICAgICIkTlNfQUREID0gWyRDSl07IjsKLQotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3Vz
dG9tU3RyaWN0Tm9uQ0pLICAgICAgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSwotI2Rl
ZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdENKSyAgICAgICAgdWF4MTRBc3NpZ25t
ZW50c0N1c3RvbU5vcm1hbENKSwotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVs
dE5vbkNKSyAgICAgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSwotCi1zdGF0aWMg
Y29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0FmdGVyID0KLSAgICAiJEFJID0gWzpMaW5lQnJl
YWsgPSBBbWJpZ3VvdXM6XTsiCi0gICAgIiRBTCA9IFs6TGluZUJyZWFrID0gQWxwaGFiZXRpYzpd
OyIKLSAgICAiJEJBID0gW1s6TGluZUJyZWFrID0gQnJlYWtfQWZ0ZXI6XSAtICRCQV9TVUJdOyIK
LSAgICAiJEJCID0gWzpMaW5lQnJlYWsgPSBCcmVha19CZWZvcmU6XTsiCi0gICAgIiRCSyA9IFs6
TGluZUJyZWFrID0gTWFuZGF0b3J5X0JyZWFrOl07IgotICAgICIkQjIgPSBbOkxpbmVCcmVhayA9
IEJyZWFrX0JvdGg6XTsiCi0gICAgIiRDQiA9IFs6TGluZUJyZWFrID0gQ29udGluZ2VudF9CcmVh
azpdOyIKLSAgICAiJENMID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QdW5jdHVhdGlvbjpdOyIKLSAg
ICAiJENNID0gWzpMaW5lQnJlYWsgPSBDb21iaW5pbmdfTWFyazpdOyIKLSAgICAiJENQID0gWzpM
aW5lQnJlYWsgPSBDbG9zZV9QYXJlbnRoZXNpczpdOyIKLSAgICAiJENSID0gWzpMaW5lQnJlYWsg
PSBDYXJyaWFnZV9SZXR1cm46XTsiCi0gICAgIiRFWCA9IFtbOkxpbmVCcmVhayA9IEV4Y2xhbWF0
aW9uOl0gLSAkRVhfU1VCXTsiCi0gICAgIiRHTCA9IFs6TGluZUJyZWFrID0gR2x1ZTpdOyIKLSNp
ZiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1Jf
TlVNID49IDkpCi0gICAgIiRITCA9IFs6TGluZUJyZWFrID0gSGVicmV3X0xldHRlcjpdOyIKLSNl
bHNlCi0gICAgIiRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07IgotI2VuZGlmCi0gICAg
IiRIWSA9IFs6TGluZUJyZWFrID0gSHlwaGVuOl07IgotICAgICIkSDIgPSBbOkxpbmVCcmVhayA9
IEgyOl07IgotICAgICIkSDMgPSBbOkxpbmVCcmVhayA9IEgzOl07IgotICAgICIkSUQgPSBbW1tb
OkxpbmVCcmVhayA9IElkZW9ncmFwaGljOl0gLSAkQ0pdICRJRF9BRERdIC0gJElEX1NVQl07Igot
ICAgICIkSU4gPSBbWzpMaW5lQnJlYWsgPSBJbnNlcGFyYWJsZTpdIC0gJElOX1NVQl07IgotICAg
ICIkSVMgPSBbWzpMaW5lQnJlYWsgPSBJbmZpeF9OdW1lcmljOl0gLSAkSVNfU1VCXTsiCi0gICAg
IiRKTCA9IFs6TGluZUJyZWFrID0gSkw6XTsiCi0gICAgIiRKViA9IFs6TGluZUJyZWFrID0gSlY6
XTsiCi0gICAgIiRKVCA9IFs6TGluZUJyZWFrID0gSlQ6XTsiCi0gICAgIiRMRiA9IFs6TGluZUJy
ZWFrID0gTGluZV9GZWVkOl07IgotICAgICIkTkwgPSBbOkxpbmVCcmVhayA9IE5leHRfTGluZTpd
OyIKLSAgICAiJE5TID0gW1tbWzpMaW5lQnJlYWsgPSBOb25zdGFydGVyOl0gLSAkQ0pdICROU19B
RERdIC0gJE5TX1NVQl07IgotICAgICIkTlUgPSBbOkxpbmVCcmVhayA9IE51bWVyaWM6XTsiCi0g
ICAgIiRPUCA9IFs6TGluZUJyZWFrID0gT3Blbl9QdW5jdHVhdGlvbjpdOyIKLSAgICAiJFBPID0g
W1s6TGluZUJyZWFrID0gUG9zdGZpeF9OdW1lcmljOl0gLSAkUE9fU1VCXTsiCi0gICAgIiRQUiA9
IFtbOkxpbmVCcmVhayA9IFByZWZpeF9OdW1lcmljOl0gLSAkUFJfU1VCXTsiCi0gICAgIiRRVSA9
IFs6TGluZUJyZWFrID0gUXVvdGF0aW9uOl07IgotICAgICIkUkkgPSBbXFxVMDAwMUYxRTYtXFxV
MDAwMUYxRkZdOyIKLSAgICAiJFNBID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsi
Ci0gICAgIiRTRyA9IFs6TGluZUJyZWFrID0gU3Vycm9nYXRlOl07IgotICAgICIkU1AgPSBbOkxp
bmVCcmVhayA9IFNwYWNlOl07IgotICAgICIkU1kgPSBbOkxpbmVCcmVhayA9IEJyZWFrX1N5bWJv
bHM6XTsiCi0gICAgIiRXSiA9IFs6TGluZUJyZWFrID0gV29yZF9Kb2luZXI6XTsiCi0gICAgIiRY
WCA9IFs6TGluZUJyZWFrID0gVW5rbm93bjpdOyIKLSAgICAiJFpXID0gWzpMaW5lQnJlYWsgPSBa
V1NwYWNlOl07IgotICAgICIkWldKID0gXFx1MjAwRDsiCi0gICAgIiRFbW9qaVZhciA9IFxcdUZF
MEY7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkRW1vamlGb3JTZXFzID0g
W1xcdTI2NDAgXFx1MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMt
XFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0
NDEgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAw
MUY0NzEgXFxVMDAwMUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxV
MDAwMUY0ODYtXFxVMDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTgg
XFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2
NEUgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjZdOyIgLy8gRW1vamkgdGhhdCBw
YXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYx
RCBcXHUyNkY5IFxcdTI3MEEtXFx1MjcwRCBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAx
RjNDNCBcXFUwMDAxRjNDQSBcXFUwMDAxRjNDQiBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUw
MDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1c
XFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4
NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU3NSBcXFUwMDAxRjU5MCBcXFUwMDAx
RjU5NSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUw
MDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMCBc
XFUwMDAxRjkxOF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwot
I2Vsc2UKLSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFG
NDY5IFxcVTAwMDFGNDhCXTsiCi0gICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNzBB
LVxcdTI3MEMgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQzcg
XFxVMDAwMUYzQ0EgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0
NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAw
MUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxV
MDAwMUY0QUEgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIt
XFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2
QzBdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbmRpZgot
ICAgICIkRW1vamlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiCi0gICAgIiRkaWN0
aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsiCi0gICAgIiRBTFBsdXMg
PSBbJEFMICRBSSAkU0EgJFNHICRYWF07IgotICAgICIkQUxjbSA9ICRBTFBsdXMgJENNKjsiCi0g
ICAgIiRCQWNtID0gJEJBICRDTSo7IgotICAgICIkQkJjbSA9ICRCQiAkQ00qOyIKLSAgICAiJEIy
Y20gPSAkQjIgJENNKjsiCi0gICAgIiRDTGNtID0gJENMICRDTSo7IgotICAgICIkQ1BjbSA9ICRD
UCAkQ00qOyIKLSAgICAiJEVYY20gPSAkRVggJENNKjsiCi0gICAgIiRHTGNtID0gJEdMICRDTSo7
IgotICAgICIkSExjbSA9ICRITCAkQ00qOyIKLSAgICAiJEhZY20gPSAkSFkgJENNKjsiCi0gICAg
IiRIMmNtID0gJEgyICRDTSo7IgotICAgICIkSDNjbSA9ICRIMyAkQ00qOyIKLSAgICAiJElEY20g
PSAkSUQgJENNKjsiCi0gICAgIiRJTmNtID0gJElOICRDTSo7IgotICAgICIkSVNjbSA9ICRJUyAk
Q00qOyIKLSAgICAiJEpMY20gPSAkSkwgJENNKjsiCi0gICAgIiRKVmNtID0gJEpWICRDTSo7Igot
ICAgICIkSlRjbSA9ICRKVCAkQ00qOyIKLSAgICAiJE5TY20gPSAkTlMgJENNKjsiCi0gICAgIiRO
VWNtID0gJE5VICRDTSo7IgotICAgICIkT1BjbSA9ICRPUCAkQ00qOyIKLSAgICAiJFBPY20gPSAk
UE8gJENNKjsiCi0gICAgIiRQUmNtID0gJFBSICRDTSo7IgotICAgICIkUVVjbSA9ICRRVSAkQ00q
OyIKLSAgICAiJFJJY20gPSAkUkkgJENNKjsiCi0gICAgIiRTWWNtID0gJFNZICRDTSo7IgotICAg
ICIkV0pjbSA9ICRXSiAkQ00qOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEZvcndhcmQg
PQotICAgICIhIWZvcndhcmQ7IgotICAgICIkQ0FOX0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5M
ICRaVyAkQ01dOyIKLSAgICAiJENBTlRfQ00gPSBbJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENN
XTsiCi0gICAgIiRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAkTkwgJFpXICRTUF07Igot
ICAgICIkQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRXSiAkR0wgJE9Q
ICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOyIKLSAgICAiJEFMX0ZPTExPVyA9IFsk
QUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07IgotICAgICIkTEI0QnJlYWtzID0gWyRCSyAk
Q1IgJExGICROTF07IgotICAgICIkTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOyIK
LSAgICAiJExCOEJyZWFrcyA9IFskTEI0QnJlYWtzICRaV107IgotICAgICIkTEI4Tm9uQnJlYWtz
ID0gW1skTEI0Tm9uQnJlYWtzXSAtIFskWlddXTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzID0gWyRM
QjhOb25CcmVha3MgLSBbJFNQXV07IgotICAgICIkTEIxOEJyZWFrcyA9IFskTEI4QnJlYWtzICRT
UF07IgotICAgICIkTEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJyZWFrcyAtICRDQl07IgotICAg
ICIkQUxQbHVzICRDTSs7IgotICAgICIkQkEgJENNKzsiCi0gICAgIiRCQiAkQ00rOyIKLSAgICAi
JEIyICRDTSs7IgotICAgICIkQ0wgJENNKzsiCi0gICAgIiRDUCAkQ00rOyIKLSAgICAiJEVYICRD
TSs7IgotICAgICIkR0wgJENNKzsiCi0gICAgIiRITCAkQ00rOyIKLSAgICAiJEhZICRDTSs7Igot
ICAgICIkSDIgJENNKzsiCi0gICAgIiRIMyAkQ00rOyIKLSAgICAiJElEICRDTSs7IgotICAgICIk
SU4gJENNKzsiCi0gICAgIiRJUyAkQ00rOyIKLSAgICAiJEpMICRDTSs7IgotICAgICIkSlYgJENN
KzsiCi0gICAgIiRKVCAkQ00rOyIKLSAgICAiJE5TICRDTSs7IgotICAgICIkTlUgJENNKzsiCi0g
ICAgIiRPUCAkQ00rOyIKLSAgICAiJFBPICRDTSs7IgotICAgICIkUFIgJENNKzsiCi0gICAgIiRR
VSAkQ00rOyIKLSAgICAiJFJJICRDTSs7IgotICAgICIkU1kgJENNKzsiCi0gICAgIiRXSiAkQ00r
OyIKLSAgICAiJENSICRMRiB7MTAwfTsiCi0gICAgIiRMQjROb25CcmVha3M/ICRMQjRCcmVha3Mg
ezEwMH07IgotICAgICIkQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRDTSsg
JExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRMQjROb25CcmVha3MgWyRTUCAkWlddOyIKLSAgICAi
JENBTl9DTSAkQ00qIFskU1AgJFpXXTsiCi0gICAgIiRDTSsgWyRTUCAkWlddOyIKLSAgICAiJEVt
b2ppRm9yU2VxcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsiCi0g
ICAgIiRDQU5fQ00gJENNKzsiCi0gICAgIiRDTSs7IgotICAgICIkQ0FOX0NNICRDTSogJFdKY207
IgotICAgICIkTEI4Tm9uQnJlYWtzICRXSmNtOyIKLSAgICAiJENNKyAkV0pjbTsiCi0gICAgIiRX
SmNtICRDQU5UX0NNOyIKLSAgICAiJFdKY20gJENBTl9DTSAkQ00qOyIKLSAgICAiJEdMY20gJENB
Tl9DTSAkQ00qOyIKLSAgICAiJEdMY20gJENBTlRfQ007IgotICAgICJbWyRMQjhOb25CcmVha3Nd
IC0gWyRTUCAkQkEgJEhZXV0gJENNKiAkR0xjbTsiCi0gICAgIiRDTSsgR0xjbTsiCi0gICAgIiRM
QjhOb25CcmVha3MgJENMOyIKLSAgICAiJENBTl9DTSAkQ00qICRDTDsiCi0gICAgIiRDTSsgJENM
OyIKLSAgICAiJExCOE5vbkJyZWFrcyAkQ1A7IgotICAgICIkQ0FOX0NNICRDTSogJENQOyIKLSAg
ICAiJENNKyAkQ1A7IgotICAgICIkTEI4Tm9uQnJlYWtzICRFWDsiCi0gICAgIiRDQU5fQ00gJENN
KiAkRVg7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRMQjhOb25CcmVha3MgJElTOyIKLSAgICAi
JENBTl9DTSAkQ00qICRJUzsiCi0gICAgIiRDTSsgJElTOyIKLSAgICAiJExCOE5vbkJyZWFrcyAk
U1k7IgotICAgICIkQ0FOX0NNICRDTSogJFNZOyIKLSAgICAiJENNKyAkU1k7IgotICAgICIkT1Bj
bSAkU1AqICRDQU5fQ00gJENNKjsiCi0gICAgIiRPUGNtICRTUCogJENBTlRfQ007IgotICAgICIk
T1BjbSAkU1ArICRDTSsgJEFMX0ZPTExPVz87IgotICAgICIkUVVjbSAkU1AqICRPUGNtOyIKLSAg
ICAiKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207IgotICAgICIkQjJjbSAkU1AqICRCMmNtOyIK
LSAgICAiJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsiCi0gICAgIiRDTSsgJFFVY207IgotICAg
ICIkUVVjbSAuPzsiCi0gICAgIiRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7IgotICAgICIkTEIy
ME5vbkJyZWFrcyAkQ00qICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAiCi0gICAgIiRCQmNtIFte
JENCXTsiCi0gICAgIiRCQmNtICRMQjIwTm9uQnJlYWtzICRDTSo7IgotICAgICIkSExjbSAoJEhZ
Y20gfCAkQkFjbSkgW14kQ0JdPzsiCi0gICAgIiRTWWNtICRITGNtOyIKLSAgICAiKCRBTGNtIHwg
JEhMY20pICRJTmNtOyIKLSAgICAiJENNKyAkSU5jbTsiCi0gICAgIiRFWGNtICRJTmNtOyIKLSAg
ICAiJElEY20gJElOY207IgotICAgICIkSU5jbSAkSU5jbTsiCi0gICAgIiROVWNtICRJTmNtOyIK
LSAgICAiJElEY20gJFBPY207IgotICAgICIkQUxjbSAkTlVjbTsiCi0gICAgIiRITGNtICROVWNt
OyIKLSAgICAiJENNKyAkTlVjbTsiCi0gICAgIiROVWNtICRBTGNtOyIKLSAgICAiJE5VY20gJEhM
Y207IgotICAgICIkUFJjbSAkSURjbTsiCi0gICAgIiRQUmNtICgkQUxjbSB8ICRITGNtKTsiCi0g
ICAgIiRQT2NtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIigkUFJjbSB8ICRQT2NtKT8gKCRPUGNt
IHwgJEhZY20pPyAkTlVjbSAoJE5VY20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20p
PyAoJFBSY20gfCAkUE9jbSk/OyIKLSAgICAiJEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8
ICRIM2NtKTsiCi0gICAgIigkSlZjbSB8ICRIMmNtKSAoJEpWY20gfCAkSlRjbSk7IgotICAgICIo
JEpUY20gfCAkSDNjbSkgJEpUY207IgotICAgICIoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgy
Y20gfCAkSDNjbSkgJElOY207IgotICAgICIoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20g
fCAkSDNjbSkgJFBPY207IgotICAgICIkUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgy
Y20gfCAkSDNjbSk7IgotICAgICIoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOyIKLSAg
ICAiJENNKyAoJEFMY20gfCAkSExjbSk7IgotICAgICIkSVNjbSAoJEFMY20gfCAkSExjbSk7Igot
ICAgICIoJEFMY20gfCAkSExjbSB8ICROVWNtKSAkT1BjbTsiCi0gICAgIiRDTSsgJE9QY207Igot
ICAgICIkQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsiCi0jaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCi0gICAgIiRSSWNtICRSSWNtOyIKLSNlbmRpZgotICAgICIkRW1vamlGb3JNb2Rz
ICRFbW9qaVZhcj8gJEVtb2ppTW9kczsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRSZXZl
cnNlID0KLSAgICAiISFyZXZlcnNlOyIKLSAgICAiJENNKyAkQUxQbHVzOyIKLSAgICAiJENNKyAk
QkE7IgotICAgICIkQ00rICRCQjsiCi0gICAgIiRDTSsgJEIyOyIKLSAgICAiJENNKyAkQ0w7Igot
ICAgICIkQ00rICRDUDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAiJENNKyAkR0w7IgotICAgICIk
Q00rICRITDsiCi0gICAgIiRDTSsgJEhZOyIKLSAgICAiJENNKyAkSDI7IgotICAgICIkQ00rICRI
MzsiCi0gICAgIiRDTSsgJElEOyIKLSAgICAiJENNKyAkSU47IgotICAgICIkQ00rICRJUzsiCi0g
ICAgIiRDTSsgJEpMOyIKLSAgICAiJENNKyAkSlY7IgotICAgICIkQ00rICRKVDsiCi0gICAgIiRD
TSsgJE5TOyIKLSAgICAiJENNKyAkTlU7IgotICAgICIkQ00rICRPUDsiCi0gICAgIiRDTSsgJFBP
OyIKLSAgICAiJENNKyAkUFI7IgotICAgICIkQ00rICRRVTsiCi0jaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCi0gICAgIiRDTSsgJFJJOyIKLSNlbmRpZgotICAgICIkQ00rICRTWTsiCi0gICAg
IiRDTSsgJFdKOyIKLSAgICAiJENNKzsiCi0gICAgIiRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRD
UiAkTEYgJE5MICRaVyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAk
Q00gJFNQXSB8IFskQUwge2VvZn1dKSk7IgotICAgICJbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExG
ICROTCAkWlcgJFNQIHtlb2Z9XTsiCi0gICAgIiRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENN
XTsiCi0gICAgIiRMQjRCcmVha3MgJENNKyAkQ0FOX0NNOyIKLSAgICAiJExGICRDUjsiCi0gICAg
IlskU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiWyRTUCAkWlddICRDTSsgJENB
Tl9DTTsiCi0gICAgIiRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/ICRF
bW9qaUZvclNlcXM7IgotICAgICIkQ00rICRDQU5fQ007IgotICAgICIkQ00qICRXSiAkQ00qICRD
QU5fQ007IgotICAgICIkQ00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENBTlRf
Q00gJENNKiAkV0o7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkV0o7IgotICAgICIkQ00qICRH
TCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRCQSAkSFldXTsiCi0gICAgIiRDQU5UX0NN
ICRDTSogJEdMOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJEdMOyIKLSAgICAiJENMICRDTSsg
JENBTl9DTTsiCi0gICAgIiRDUCAkQ00rICRDQU5fQ007IgotICAgICIkRVggJENNKyAkQ0FOX0NN
OyIKLSAgICAiJElTICRDTSsgJENBTl9DTTsiCi0gICAgIiRTWSAkQ00rICRDQU5fQ007IgotICAg
ICIkQ0wgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRDUCBbJExCOE5vbkJyZWFrcy0kQ01d
OyIKLSAgICAiJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkSVMgWyRMQjhOb25CcmVh
a3MtJENNXTsiCi0gICAgIiRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiWyRDTCAkQ1Ag
JEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgIgotICAgICIkQ00qICRDQU5fQ00gJFNQ
KiAkQ00qICRPUDsiCi0gICAgIiRDQU5UX0NNICRTUCogJENNKiAkT1A7IgotICAgICIkQUxfRk9M
TE9XPyAkQ00rICRTUCAkU1AqICRDTSogJE9QOyIKLSAgICAiJEFMX0ZPTExPV19OT0NNICRDTSsg
JFNQKyAkQ00qICRPUDsiCi0gICAgIiRDTSogJEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAk
T1A7IgotICAgICIkU1kgJENNICRTUCsgJE9QOyIKLSAgICAiJENNKiAkT1AgJFNQKiAkQ00qICRR
VTsiCi0gICAgIiRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsiCi0gICAgIiRDTSogJEIy
ICRTUCogJENNKiAkQjI7IgotICAgICIkQ00qICRRVSAkQ00qICRDQU5fQ007IgotICAgICIkQ00q
ICRRVSAkTEIxOE5vbkJyZWFrczsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRRVTsiCi0gICAg
IiRDQU5UX0NNICRDTSogJFFVOyIKLSAgICAiJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFsk
TEIyME5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENNKiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00q
ICRCQjsiCi0gICAgIlteJENCXSAkQ00qICRCQjsiCi0gICAgIlteJENCXSAkQ00qICgkSFkgfCAk
QkEpICRDTSogJEhMOyIKLSAgICAiJENNKiAkSEwgJENNKiAkU1k7IgotICAgICIkQ00qICRJTiAk
Q00qICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogJElOICRDTSogJEVYOyIKLSAgICAiJENN
KiAkSU4gJENNKiAkSUQ7IgotICAgICIkQ00qICRJTiAkQ00qICRJTjsiCi0gICAgIiRDTSogJElO
ICRDTSogJE5VOyIKLSAgICAiJENNKiAkUE8gJENNKiAkSUQ7IgotICAgICIkQ00qICROVSAkQ00q
ICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJE5VOyIK
LSAgICAiJENNKiAkSUQgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00q
ICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOyIKLSAgICAiKCRDTSog
KCRQUiB8ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kp
KSogJENNKiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OyIKLSAg
ICAiJENNKiAoJEgzIHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsiCi0gICAgIiRDTSogKCRK
VCB8ICRKVikgJENNKiAoJEgyIHwgJEpWKTsiCi0gICAgIiRDTSogJEpUICRDTSogKCRIMyB8ICRK
VCk7IgotICAgICIkQ00qICRJTiAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIK
LSAgICAiJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsiCi0gICAg
IiRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAkUFI7IgotICAgICIkQ00q
ICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogKCRBTFBs
dXMgfCAkSEwpICRDTSogJElTOyIKLSAgICAiJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8
ICROVSk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsiCi0jaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRDTSogJFJJICRDTSogJFJJOyIKLSNlbmRp
ZgotICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiOwotCi1zdGF0aWMg
Y29uc3QgY2hhciogdWF4MTRTYWZlRm9yd2FyZCA9Ci0gICAgIiEhc2FmZV9mb3J3YXJkOyIKLSAg
ICAiWyRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRTUCAkZGljdGlvbmFyeV0r
IFteJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJGRpY3Rpb25hcnldOyIKLSAg
ICAiJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0
U2FmZVJldmVyc2UgPQotICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgIiRDTSsgW14kQ00gJEJL
ICRDUiAkTEYgJE5MICRaVyAkU1BdOyIKLSAgICAiJENNKyAkU1AgLyAuOyIKLSAgICAiJFNQKyAk
Q00qICRPUDsiCi0gICAgIiRTUCsgJENNKiAkUVU7IgotICAgICIkU1ArICRDTSogKCRDTCB8ICRD
UCk7IgotICAgICIkU1ArICRDTSogJEIyOyIKLSAgICAiJENNKiAoJEhZIHwgJEJBKSAkQ00qICRI
TDsiCi0gICAgIigkQ00qICgkSVMgfCAkU1kpKSsgJENNKiAkTlU7IgotICAgICIoJENMIHwgJENQ
KSAkQ00qICgkTlUgfCAkSVMgfCAkU1kpOyIKLSAgICAiJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7
IjsKLQogc3RhdGljIFN0cmluZyBtYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhMaW5lQnJlYWtJ
dGVyYXRvck1vZGUgbW9kZSwgYm9vbCBpc0NKSykKIHsKLSAgICBTdHJpbmdCdWlsZGVyIHJ1bGVz
QnVpbGRlcjsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0UHJvbG9ndWUpOwotICAgIHJ1
bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0JlZm9yZSk7CiAgICAgc3dpdGNoICht
b2RlKSB7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNDoKLSAgICAgICAgcnVs
ZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Q0pL
IDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25DSkspOwotICAgICAgICBicmVhazsK
KyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNENKS1J1bGVzIDog
bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRl
cmF0b3JNb2RlVUFYMTRMb29zZToKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/
IHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZUNKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21M
b29zZU5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZU5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTROb3Jt
YWw6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tTm9ybWFsQ0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyk7Ci0g
ICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsQ0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVs
ZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNFN0cmljdDoKLSAgICAgICAg
cnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RD
SksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7
CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSktS
dWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsKICAgICB9Ci0g
ICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIpOwotICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQodWF4MTRGb3J3YXJkKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVh
eDE0UmV2ZXJzZSk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVGb3J3YXJkKTsK
LSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2FmZVJldmVyc2UpOwotICAgIHJldHVybiBy
dWxlc0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gIiI7CiB9CiAKIC8vIFJlY29nbml6ZSBCQ1A0NyBjb21wbGlhbnQgcHJpbWFyeSBsYW5n
dWFnZSB2YWx1ZXMgb2YgJ3poJywgJ2phJywgJ2tvJwpAQCAtNzg2LDYgKzI1MCwyNCBAQCBUZXh0
QnJlYWtJdGVyYXRvciogb3BlbkxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYg
bG9jYWxlLCBMaW5lQnJlYWtJdAogICAgIGlmIChtb2RlID09IExpbmVCcmVha0l0ZXJhdG9yTW9k
ZVVBWDE0KQogICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlbihVQlJLX0xJTkUsIGxvY2FsZUlz
RW1wdHkgPyBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKSA6IGxvY2FsZS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpLCAwLCAwLCAmb3BlblN0YXR1cyk7CiAgICAgZWxzZSB7CisgICAgICAgIEJyZWFr
aW5nUnVsZVNldCBydWxlU2V0OworICAgICAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICAgICAgY2Fz
ZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NK
SyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9u
Q0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JN
b2RlVUFYMTRMb29zZToKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVs
ZVNldDo6VUFYMTRMb29zZUNKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZU5vbkNKSzsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVB
WDE0Tm9ybWFsOgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0
OjpVQVgxNE5vcm1hbENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgx
NFN0cmljdDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6
VUFYMTRTdHJpY3RDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0g
aXRlcmF0b3JGb3JSdWxlU2V0KHJ1bGVTZXQpKQorICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9y
OworCiAgICAgICAgIFVQYXJzZUVycm9yIHBhcnNlU3RhdHVzOwogICAgICAgICBhdXRvIHJ1bGVz
ID0gbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMobW9kZSwgaXNDSkspOwogICAgICAgICB1YnJr
SXRlciA9IHVicmtfb3BlblJ1bGVzKFN0cmluZ1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFj
dGVycygpLCBydWxlcy5sZW5ndGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmggYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKaW5kZXggZDkwMzIxNWFlNDEz
N2U0YzNhOWVhMzViM2QwMjViZjUyZTQ1MThlYy4uZDJkMDdjMjhmYjhkNDA5OWVlOTY5YzIwZjU4
NDg5MjI4ZmIwMDcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJ
dGVyYXRvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaApA
QCAtMzgsNiArMzgsMzAgQEAgZW51bSBMaW5lQnJlYWtJdGVyYXRvck1vZGUgewogICAgIExpbmVC
cmVha0l0ZXJhdG9yTW9kZVVBWDE0U3RyaWN0LAogfTsKIAorZW51bSBjbGFzcyBCcmVha2luZ1J1
bGVTZXQgeworICAgIEN1cnNvck1vdmVtZW50LAorICAgIFVBWDE0Q0pLLAorICAgIFVBWDE0Tm9u
Q0pLLAorICAgIFVBWDE0TG9vc2VDSkssCisgICAgVUFYMTRMb29zZU5vbkNKSywKKyAgICBVQVgx
NE5vcm1hbENKSywKKyAgICBVQVgxNE5vcm1hbE5vbkNKSywKKyAgICBVQVgxNFN0cmljdENKSywK
KyAgICBVQVgxNFN0cmljdE5vbkNKSworfTsKKworZXh0ZXJuIGNvbnN0IGNoYXIqIGN1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZUNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZU5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsKKworVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9y
Rm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpOworCiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8gY2hh
cmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRvCiAv
LyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0aGlz
IGNhbiBiZSBkaWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlzIFRo
YWkgcHJlcGVuZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0K
aW5kZXggYmVmNWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVlOGU4OGEzODkyYy4uNmRmOGNkNjBk
NmQyNGZjMWUwMGMyNjNkOTdjZDc0YWY3NjQxMmZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCkBA
IC0yMSwxMiArMjEsNzUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0QnJl
YWtJdGVyYXRvckludGVybmFsSUNVLmgiCiAKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5o
IgorCisjaWYgZGVmaW5lZChVX1NIT1dfQ1BMVVNQTFVTX0FQSSkKKyN1bmRlZiBVX1NIT1dfQ1BM
VVNQTFVTX0FQSQorI2VuZGlmCisjZGVmaW5lIFVfU0hPV19DUExVU1BMVVNfQVBJIDEKKworI2lu
Y2x1ZGUgPHVuaWNvZGUvcmJiaS5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWRhdGEuaD4KICNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKK0BpbnRlcmZhY2UgV1RGQnVuZGxlRmluZGVyIDogTlNP
YmplY3QKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdURkJ1bmRsZUZpbmRlcgorQGVuZAorCiBu
YW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0IGludCBtYXhMb2NhbGVTdHJpbmdMZW5ndGgg
PSAzMjsKIAorVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1
bGVTZXQgcnVsZVNldCkKK3sKKyAgICBOU1N0cmluZyAqZmlsZU5hbWVCYXNlOworICAgIHN3aXRj
aCAocnVsZVNldCkgeworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpDdXJzb3JNb3ZlbWVudDoK
KyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMiOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRDSks6CisgICAg
ICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSyI7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzoKKyAgICAgICAg
ZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLIjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VDSks6CisgICAgICAg
IGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLIjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks6Cisg
ICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pL
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFs
Q0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxDSksiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRO
b3JtYWxOb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxl
U2V0OjpVQVgxNFN0cmljdENKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Q0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2lu
Z1J1bGVTZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksiOworICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICBOU0J1bmRsZSAqYnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXVEZC
dW5kbGVGaW5kZXIgY2xhc3NdXTsKKyAgICBOU1N0cmluZyAqcGF0aCA9IFtidW5kbGUgcGF0aEZv
clJlc291cmNlOmZpbGVOYW1lQmFzZSBvZlR5cGU6QCJicmsiIGluRGlyZWN0b3J5OkAiQnJlYWtp
bmdSdWxlcyJdOworICAgIGlmICghcGF0aCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
TlNTdHJpbmcgKmRpcmVjdG9yeSA9IFtwYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBv
bmVudF07CisgICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAgTG9j
YWxVRGF0YU1lbW9yeVBvaW50ZXIgZGF0YSh1ZGF0YV9vcGVuKFtkaXJlY3RvcnkgVVRGOFN0cmlu
Z10sICJicmsiLCBbZmlsZU5hbWVCYXNlIFVURjhTdHJpbmddLCAmZXJyb3JDb2RlKSk7CisgICAg
aWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJST1IpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIGF1dG8gaXRlcmF0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3I+KGRhdGEub3JwaGFuKCksIGVycm9yQ29kZSk7CisgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pF
Uk9fRVJST1IpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PFRleHRCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IucmVsZWFzZSgpKTsKK30KKwogc3Rh
dGljIGlubGluZSBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHRleHRCcmVha0xvY2FsZVByZWZlcmVu
Y2UoKQogewogICAgIFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gbG9jYWxlID0gYWRvcHRD
RihDRlByZWZlcmVuY2VzQ29weVZhbHVlKENGU1RSKCJBcHBsZVRleHRCcmVha0xvY2FsZSIpLApk
aWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlIGIvU291cmNlL2NtYWtlL1dl
YktpdEZTLmNtYWtlCmluZGV4IDI5YTA5NjkwMzhmYWE3NDRlMWE4YzU4ZjM1NmFkMDczZjAwNTI1
YmQuLjgxZjU0YTU2YWQ2OTUzZDdiMWUyMGM4OGZhODViYmRkZDFmMDdlOGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RlMu
Y21ha2UKQEAgLTI0LDYgKzI0LDcgQEAgaWYgKE5PVCBUT09MU19ESVIpCiBlbmRpZiAoKQogCiBz
ZXQoREVSSVZFRF9TT1VSQ0VTX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNl
cyIpCitzZXQoREVSSVZFRF9TT1VSQ0VTX1dURl9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVy
aXZlZFNvdXJjZXMvV1RGIikKIHNldChERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElS
ICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlIikKIHNl
dChERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZSIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVExFR0FDWV9ESVIg
IiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0TGVnYWN5IikKQEAgLTMy
LDYgKzMzLDggQEAgc2V0KERFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUiAiJHtDTUFLRV9CSU5B
UllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXQyIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VC
SU5TUEVDVE9SVUlfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYklu
c3BlY3RvclVJIikKIAogZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19KQVZB
U0NSSVBUQ09SRV9ESVJ9KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19X
VEZfRElSfSkKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0v
QnJlYWtpbmdSdWxlcykKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtDTUFLRV9CSU5BUllfRElSfS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZSkKIAogZmlsZShNQUtFX0RJUkVDVE9SWSAke0RF
UklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>285507</attachid>
            <date>2016-08-06 16:28:09 -0700</date>
            <delta_ts>2016-08-07 01:07:25 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews103 for mac-yosemite</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>1006823</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
7QFAWm5AFxwPHsFdF9wqtjSg26OQMzdPSMMYyY30P/K7tqENWN7ivNYeHcDOsVZKVNUfoqFvXIVn
tUBdahaKS9TvCAx9Za1hBg12lHldqdDN4cCIWE5P7MvPBoXGOD4rRdvNthmKotmFYENb5XD7dUPr
NzAeBdQrIMWXaXX9j5+/Flc16V+Ps/FPy/y9Cjms+18vyVtod10s00vy+grY46P6q9dflJNEmlbB
Jf76/t3PePHPV/yXXz5+/9/iX//9enqJX7/+/dWH8O7nr8Pbfz9EaXH/97//Vb47+f6V/Itf7NMg
pLQEHfgY2vv7cVFMi7tlqgs1SY+Jn/yB3s0zwwMBkkzEPktC+fiNX0JxMT70/WnLm254kzAU0EEz
lGzcGXCYF8GoKD5J+yIAFDr5YNk9gBncLIoHFfBN8+RmCoF1jbtMpWEefs7E8WubNAINYQRmsmAD
VZydQIxKm05yx2v8bzL99P7jzdsfKvrqb1///O7Hxfsf//63KPr+TTRezpbzt/9M7+ejH/59x27K
8exvk7B6H1f809sP3/773e/faHnFBXtAyytVUQTTQpLhPHky9VLGMGNrIPPsRNcQDHIJ4nM9EoZw
8PcJuv/bPz/F+VPxnfjwy7+/iX/6dPvu9d+/f/z0JGU6z/79Lvzrzf/gt9FPnx4elj///cc3eP4e
ZPhP6dePP9zm2W//vP89Lea3//0/HyeP9/MP7//6y3j+08MdLK1nZv75UtGhI/vVdGCB+3Exl+PS
svkyH6e3cq/jA4oRCbeu5dPc0ZfynL5s7ufLly+/vMT8rjLYr7+MluHkJyl82U9/x/PRTx8e/13+
s7jBs9n75S/h3+V9v3786WHBcj7523e681eRYvbZHMUbcimY7iD+RoqCjL/9DYt/0ejn9xPJ2//I
8snbXz6SN+zt7ejv/3zz078f6LffRR9/eac9CHoRcfz5H8RiMZ6Ef38zpfz33795vM3zT6F4GsN5
LD5N/pnhb+/f8rcflv/4kYTfvTccBKWRN47MYAiZYQYZt4Tsfx5H/g5fCnr56vUw5Meka3BGtfE6
u2NHnMUrevk11R3Et6HIZz/8VP3P/zz9Jvgsv/k0zb95/cPNP9/lZfLp9/8Z/XeZ3Pxefvx2NjIR
n0v/jYH4/n/yrvW5aWTZ/yv+EljqINC8JM1WpW4t2eVxDgt7gGVZvtySLcUWyJKx5JDcv/52j5QH
8cjI0ozksFW7ThwSj6anp9/962VYqJRAIz4TIYGY2KpUH5Twf/HP/3l1Oj/78/e4eB6//0DiZ5l3
yl6ebrLyub/if396Gb8ONye/AGs23nvp31XDxZiD7hHvztIATPzlhdaIZ+xObioC26dpS55rTEys
wmSNECWb9TqfK/DFJKsH7K3jsMi1AygkQ/V1N+MWpi6LsNR2NljYwhAZeGCXF2ukR22/oucdsjPT
xuE0dQxM8juei3gfl/TNWeh9/VpkF8H5xfQlbBj+cPrfMHWflafu049/+b+9fv/lyxz+4XkWNt7L
Ni6d34Yh16kTluU6mW5KfSmnZC1BtP0fKQnUFN5vJQmuKfH6j3cvXr96O3lcR89vpv7i8qT6oWZO
kDORolXnyo9G9Mb4ubs/MfanuStc4zTfv1BXiLt88J1tOd9WEp0JCxRtXRYV4KT5u32kepfDxlXp
kHks8/m8IfPIEI6H320pyrSWEL3TCjmczsDxa1KxraK0bW0bYJ9yHSapakpKcSs6bBKBEJr+EBrG
l2RMUUi9QPwQnNPEPMwdVdITEgR32mx7eZHP3z9brGYXT/D/xYtn52fT5Wz+N5Xl9K/3m+jkiRs+
e+q+eB6tps++zv9e/jn/+Jf4NKVv0o8nT8iMppuPF09O/v7wKn316b/z6Fkwnz3/99nH5+8/fXz7
ZDFNnqTT5auzj8/ef37x/JU7W6rfP4s+vPkafcDfXyxgDVy7mFKRffzwQv0M/m7x4umr9G/2/gI+
5wV8fv7it6fFRyovwg9v8ulbl/z+7sX847MU/uaV+zL55cvLrzsYhbgGpcwKyI8NaNp+RwQ+onRg
ZalrEaR8woPACnfeqE+tU0LYMrAM0+T/FECrPjaPlBGDGPbElwaPG2eOAuHjCIiRhE1JaL/lhBpr
wp4IPqLdS+kkoNwit2V5NotNIsj6Qkza9Yl2uqnYTubgcJgbnSRb44FRMvmHSjRdjTBOkfGY6cul
GtidL5t43TChHQhFvHFvF7HCKm074HCQtDckoxgCJ/EFadkl1v2S4SAJpwzndbs64gRdtnbi1dMO
beUcQWNc04y8m4XbZabHPEId73lkwgIy5glqD7CDSOje/Me3m/+EZEMdpm7/noehQ26KgYt4Hc7h
gVTT6CrOwLzFySjgJnzW5gmki9MgqVWuqL/H7rtlooBGdIjsTCIQs/2jgFtzbfY2Qp56wipJNqv5
GjgTTkn9UdxkVOxJEOO60oLf0VpXCoY9oaZslKsfOvEZ3o8yXDcMWIb/EQ7Nvpb+LuhtgPgKdi3b
JsajrnG6gzRCuBcnnJXJGTyMHv9PdFPn+5LeJM4v6FU+aqaEcMpGu6dCUtAi1rIKBaKnGEgqEDKx
4VcbYiwtKgJ2DLoDGUZs2zBqN/nGHwnRzzS5EcuPEENC7+aAmDI+1w9pU3PxyIChnrFJLKmn8Ox7
KbSbcVPF0hk4a8n6c+EQfbQSe95ZB7vyfJkuynK1jsEXLMobVE2y0yRLQOykeb66tU0cVOVMAtbh
VLdnYakzA5f0GJ/j58eP4SDCdJEX5c+B67q6e35eEQboskWM6sn4sCLQFPx3gHPkucEzDNUgYgc3
tM7T2hJDKXkaJph9zJx6Zup2WBotFDeg0g4TU72oQOQkNzjwo9MqMX/C/I7FV6ZPT6BXAdaalL3i
DXtMJRd6lxtR/fyxJQRtkBDkTml9Y3j1LHB7y5dL3G1Vo653LSlcB36HVL4pZHwcP8wpN0bi6x1X
DQEKXnyrLo9wDzSHK+zIatZgcKDTzmztVAPejilLl45vccDLljgRrn8gWmuviXDw7Pu6P+3OcBmX
izzSp7uRdTw7rMr1rEpAEwXuDyLv9wNu5yIwYwPckr0JbGhdhnOcln1rs3sbDveyvExOL37Ns/iY
3Lv+m+qXjsW9L8dH7KSi1BH7LUxh5Z/elog0+wgz1ieLcH2SR/FP7rkIHsILUy8PHsBfPb76M3iz
gi8vTo+oe5Fv4LWIYyw3WiQFfKmbXOA7IDK8Zjm8/Ds8C6+qk6p1H6g/ibPqC77C7uHLH7+8ffvb
r49wSVzmtkYU2Frqdom2VlMn1KtTHUH1pgaejrMoPy3KdRwu4VDOwjSJ1KR4/cBy7iGa7Y+hmPfB
8sdJ9SQgA9nDnjbKHchuHnobwSf0gs+j3ZJuZlUm15vgnnAPXGc2eHpCev9IXUIk+wdKDrQ6iaUw
iKe/tjgaiLgHrLe9Nnrb+0H0Ngs8dgBhDJ3bwdlgcU5t9y9HuFV3GKXqa5UqjmthNiMNVxDG1TS3
Rg9cYH0PsyMmfH2JlgSjxpYnFegDtC5rCaV5a8ksPEvmqtZacy+c2cUMCEy/nXuEHM5hOZcRdsCi
0G8jCv0fRRR6gWc9k1dtVw2hgpOJz1fxOlnCX4XpMbaG3CsW+SaN/ne9yY4v4uLerFgdX/8JbOPq
8Y7YLyhYgfatn+CIPq0+C674PSX/jtXrVttEMGEiCGx6UlfPsXUJOThygZ07SLZnj4GIUaB1pmXb
+TJ9dL6tUihceSmGUSmB3k/DfLVnpCDhWn9rLT3mg84gPU+yPj81cTTLHdwwApjD/ht7WxA6m7rS
NAs1YZsKtKE9o57vCkRCUiZn+mJPBjckoEZOsHnlHeNdPdDMzGN3TVDCj+5XNp96vW9LcEriBWaY
Hq6yGre2WUUKrAb0IPD9hZOU8VJrsFbTnEwzvnb5LcGNQ39JIA7Ylgna2DLBj2LLSJcx05ywkyE1
CUPQ5V4/+Jqb8mkel7+H5WwRRydv377ZpHFB9beA49ch9+7Mc/w3fbI4aDlVdE9pvU2N5jF0WN3a
yZM1xg6VQ98va77HVZd608fHyUBDiEcnyrPG2gHiucb0Qz2Lva2GCDwJ3Mjt3UitwQKLEnGH7YVp
WMQeX4QguZ8oef0Ue/7DGSiloq8Zseuzt/JbPoh12aVI4Lv3eBcf6Sa7ggnIzXV17J50v8MURaOj
UwCly3NoijbazjjWJj2vlzlLojh3wk1ZIUpksNtjFYlbrvi98mIVH6vfeAxvbzwBd3FBHozLD3Wo
Vgz8FLtUru91O5a+ZjADy8NpOeeilXytg7K1VPk1n21QoGljl8I34W2bEg1cHrAfINv4AfJHKcsg
fhd933qmPZdmIhHTNMy0txlNV2HIYFrBevH6DLh4HZ/G63W81jczC2xkNWSpXjZTY1YMl4VHWDif
4Ihr42Oz1mKYcLhG7aaG+9qp4WU4W1zOq77mdL1JykByuQdknmX5tnVmNnRTaqM3AQGdKj1j5nGS
RfF5HEXTXa3jwsXRraT3Fa2O/BKQX8tSLtiPwjOtIsr86jY58ACgk7cSXWC4Epdwc0s3X16CNWCu
NO9v17oYtMT1uWrP05fdFLHJB6AuOQjbvFN5Vo+eLRLcajtGKAU0p4ezyiu1SKSBwuN9ds67XGxz
XtAt838cshNJAxwELLoAjvWgvehdM3AtSusi10azwOfdeshsON5dtFYfMnfpj98bro4wwobdF6fD
NrbywLdgA9xg3NoE2V6btJwAM5SYsk3pfZsmbd3UTvZIn5vaBYe1clwy9NjBvivBfalbQ/VeIUHI
I3fgi+Madw30ZX/7N5+ZBiPxfDtlaQpBDBxAFV1B5/hfyjGG00jOFEAurX1k+O5f9S6qn7s4pguk
C7y7dp+P2C8qQnJEg+gyPBblyzDJjqiEP9oOihC4D9z3RTCmHGJ8YM3JD8MdoHI8TFQhMTg5sCC0
D1NpKq5SWq2K4dI10E27F+l7pTlN+ODcHTsIIA/j1g8s7XyPGXPH1mEG6kQZtWdAgU3hLOMlpj9m
GGzThlMJwZiqsBk+Pq8sbCdf4QMXl0Cd+mA2mVDfH9XoPgwjuF8VTmt4swqffCfAWZyFUz3AGQ8Y
GifWu14qhnE2WRGexokaU6AvpRLAPKNaSrS/1ginFVZ/E1IoDvmTxjKnSmBcipDb77XyyhOHEqx1
+2chdP6bpu/Qm/gmch4Nq/3PWZhu4uM80yzrBdaXPT3VrEusr3ua57fXDWBdaomzuQ7/l+Dgp8Pg
Zt9YGYbqZHRUz8F8Jww0F+i48/FEiehSeLF/iJRIKS1tUjRwFbEPKg0nrWunrqHPb8Lt6sw+RJQf
SpA3BBWYVX/jm1ugt3yxHM6/kz6H6fBZ0KUqr8qEVfkvhXLiKNNFX7TBfbjzZvq4FD2/e7zcd3tm
1tsM2Op2ITWWtM9AaLjjiWLOxsx0EN+WQes1CGhzWOM9vbwRxy5JouAtDqQu2vVG5P7AHSl9cCs2
spVGiOLsQp8YIGTCZeC5A9nLVbUw90dNiA6AJIwzTLJ4S5JncVIuYgxjglDP1bdbv5KvbyHY6DKB
wG+HUhHRCcCxX4hJp/pc1k37tPF+vn4mTTWznbo/jQkcOmoXCKPD2kXGbpRGmSMyiXcYTjyRdCA/
s5bGwjOjtrL8ZuNBnXHDzgUtgABIDumN77yRLpPSDYZ6D8SCZCPGggUVgwRwmGdrk77eP+DBqLGR
kcdVBgPA/tcFeOqNHjfEPZjwTKeRwKa8NEbUQJEREz4uG1SrMTZmCs/cQJ6+ct23YhLrzWHerQbA
mB6xN3CuKMNyg3M7othRI5JUknujMtvojGsxADwck8RtGXOkQecIalHKzOMsXmNef1as9kZ27UNL
EOKIBTCmsyV9S4uzhuiiOyaw0E5j/l6UFFjOceNXjom2efgxdus+/rY/+LZu8sBz37dqfAgA5j78
ii3xnI0oC4VrqIakqqV0ZiGYWGkjIFxAUdkYG1eyzCNQNlESpvlcQZHoxxEhPog3bOjSMx26rNV5
PfdJV5BERLdqNv21zir431vt2M0dtFTgIBqbeLzzHKsOO4GF91IpgT8RVsaKm61V7lmdvDUjV2Bh
8qiaNOADpxsMy8IIfrLOEWm+WOVZEb9rGJTpqTb34NAQ9vtcGokxbxqMWTnIhuUeIQxl9fLpJyyw
jpfTOFLlzZdTABH8SqtTOekWmNvPkaw1jwYAnWNti7XsDvzIQVAZ2H+S7oBwoETJ6hFtKdZffuDE
9vK8/AbJiuOU5EngBQP5FZfhfv/AHcTWjAH74ZwetGXSei8+B4fvYH2gtttwcCCVvBPtXxbMKiq4
P1g1ebD30CKtXfPtQFpV5+ukCWgNtA/WJRoDdep9uQz1QysQXZ2zA7Vy2nKuJAxTRCMaNp3m+vWI
kItegD1940vft4bureM0vIB/W+OA5CQqVFI3PoOjPp7G8L0KgFdRp+rT4G4n0fH96s19hJZDHJX7
q3QzTzJ8r5BU7oerFXBIRbRzB4ylz0mphsA4WVwWs3AV369R7ELglquPWeZnSYyfUnUe3K9H/lyR
8NbIHy2Bos1yefGo+Hp65Ar8qMfVQooK9dOr7/s9PHVB0Bl9wPq4toN3wpUTJn06Ytmd8GwtLhtC
7P3qjFpJq6o/7UaQRjdcnnqweTqmI0/GxWsgFiZCbIUeHW3xFwuElcH2bTO6ODuZUUEHqniufQdO
hiC4FuJegILu116+S/tkm3SHI84CMNDlmKaBHNY0oHcEGvO+BSuee4FvXb7vFOxEyJ5hp+8dQZIp
/k+WmMvfjvzgkFlvzJY+Nm7pkkfpiA0VCCjt84GDQsYaRyuDdWfHqE8mZM9mytd/vHvx+tXbHRgZ
zZ6s8hkriOvi+OGFk+bpw3NEKMjKhyBKHj6En6l396otHGsNZw1WsaQmQT6G3gANJoE78Cks43KR
R7CJh3/8+e4h0GOvJ+aYsLPb8FlxrzZCxzCZs1/aDDY5Fq3AL/MZHZFWzB3TMxFWXTS0Wi9Banbh
0AivW29epwKwSxOdGQ8KZpFztawTFhfZ7GZrjtY7EhRuiz+qbypsckAxW8RLNCLSUM0s1BhxnFm0
2/WHz3x6SCG9b52qOxvPO3LdNhGz8eJ5+z/gznie6DmfeUD/z0ZtDOmCWrP3aPi2VsE0LJJZbRtg
RuZWb0tdE9G7gbcSY2EGR7Ou1tSLddkz6LVDXOjLCrHPsI0uD9puTtkvhb4nzZswTg+c8yvGD6ez
yALzk6AVBG4wkAb58fNAh50EaqcxfPTMWmVOg9ZSAZ7dqYJU+vkxPtxUv8eKA+oo/M5GmLJduXXQ
wrisRGJc4i7V93++eXlcbJQigvW0WX8Jp05JqxFKwR5hoy3cyDKfz1OQBjviScRVqsmolmietMcQ
XFSKHvtu61lXrpa+dJm09K7sPgPx7GiLayGALNlW/vcSdVun7IGUaYcodBgy5uZ/NuSNL73eNwwb
FovNtGayplIchW5C2UCSRStRCBXY+HBnDl99g8MVF+FZfDlTsViF8EMLvMBkIEzpnltcoexDtHHU
u9s1WmqkWquCesuy1z0A+U+onSO4HL1amern5fHTMNmKbE4k9zrQwAC4azuUQQusB0xv2NrRdntR
rDHyTKtVnZ5TFegM7DjC7oig858c+b/2FWjVp2zNaxBYGd+qdjmwlV3q5UP1XZ14Q8mTP8Ki2JIn
hLRrsG5vXyQ7DAyG2LVGHVaMd39/wq3wUXC7lgVYopVgEmjs9nOabzLWOk5OE3DMviZZhHnLvIpH
OOBHYtW4XrZ5QHd6V6yqp0fipLewUZ+iFTau8EdV4F5gRtwgI1zUbKBv0wnAnKfjhxUbrqiB+GIU
luHx/evP/rkCP7g1nevB/e+E0qjwwLb2XDqSfJCcc+OX8zZk03KTlskKsSPw3xN9KN6TpGVPSRdZ
tVrnIBPKC6fKtejjWyirBDetI7Sb9UAdub51yl9lprR9vWABSDKqBeBy16Yhqrb/naxc6w9TF9xZ
wT6+LZ9kro/TmNiAotWVFonWtM+qTHXChFmbrbooTTYbsxCOU5ek/lEFD3qW5Gllyqg8qF48sACV
mmfbA96e5hLAPaHClGCsVWEFvK9U3pWU0EfGgoC1RPzto6AqNtgO8yNetehgt99Ktm+3wte1dlrg
SCk8OSzbKXyWb704LNSuKsdrC1PHlBQR2PwON3Lv6oXveZ31Q37b8X6JTMTNe7na9ZRu9UFMsYOw
Pf9RyexGG5d5OO2NU5teYNPFQnJsqzEmaDfTx2S3hZSj+oKBNGXpruLMCctynUw3mGzJIz2APZXd
1EhbNdbYxkX5QchyfdYJpZV0x1Ku0mfcukGjmxPXP7PYz/Gg3GeGWbH2NPOs4snvGFUIhs7YCIzZ
0q7gYPR1SbsMalcEfFwRTvq6QqsU87WlSlJjG2ySpvE8TPVDSrH4IrDKtFpORSwmwq3YU5dRmXrU
DaVgTeQZ3ufjKpz2FrRKNn+E3HqyCNcneRT/5J6L4CG8MPXy4MHjx1uCDQs5uC9Gu12NWGqMkW6p
vp1c08gznLKWGOQ6CR+tsaA/LxUCaBzt0mJcbW0seuslGPUmLDCnZW4TXQVIdAEarF+2GqDpYuua
Cx/ERaFyPi3GhPpY1EMMWplVuGIRZlGKA2Cas33S7Rle/X5q9RYhGiLKE8r5QTyGa1DobFYRfClw
TjuojXitr1fB6Xy9r1+J87thn0unWrpZsmJEnTBbbF4uknUEdx5TCEry6Fke050kCIwJHf3+9fAk
xEPwSCoPgt0YPQyul2PGgXaKrCrgU/3AkNmjyvS6iL1PRRU3ut7m5U/Ar9tWKZQKP5j4QhoU7fXh
YhOAq0ffwaHThJi64AiY+iXdPeWaIyBqr7usemYRa7vaXuFEKDKd2TosFvqBGjgMzK7GqHaurwmS
3WS2udWFqaDYNA2zz5rosNNTS+wSCsUqzK6mdl7dbOzJ2aoTIA+O2JPHjzXjOSWfcNYOF7TL3aL6
u4W1z/1ID9vL07TSUuEpyEfnemQpWgpArQUWgM+xPMJJInjFDP1aD/1ECNw+6h3OSW0dE85dpr2u
qkYe6YcBKKxYS/zAtGIImLCT5b5DkeQ654QiwlcgRpQ47UCPrK1ODs9p7keRb5m6dfENMAJygt1I
/RUd6jGhFTWqs6pA8CvEWCwj1MukYMLM+Rg1GDvQKD6Po2i6yxjxURxKMjJ5wHoJN2nZSCDGaMsR
nz0u1C2q6eUXOoT+QTwHdc00r9Tr4dLXa24JVMFEt2rjfitSNjJnXmm0xotLPM/OM5YXabwAe37X
9aU4zIzaEx16bAMG/ouZy3hZ1qqYYe8n8QW64twy+SvYjB3BGeK6fs+yZHNigQh5IM/BBhdPdOAV
+9G6De99RzF6DOWPsRj8eZE6T16+PvnPb7/qYXPdbt7cXltuVdRNCOU9q7obWB1o8OhcU2Ti90w5
bBH6Mo29m+J9TfnmXV7XcGu267dFm7OQpYeLN00i8OMdxRTFIo7hGYtUMwdYDM2LDrYANdVeUIlM
0sc6xOaPKqynMNsfzfROTeC5PaN5uNC7dZgVGDUs4tJRK58madzUbkYCQnqK2Cguw9kiBj8ozKJp
DoK1Nq+a3Tcf+/eFb++YawikHYggRGB9RJ87GOXAOJjvjs+TYqssphre5E08aTLArgmJwKWBnfjM
NjF3WEoe5k5aeZuykZa1wQhHpq8qgRVaZee9FsHeAqHSLt9iXC/Ckttjtg2S6gWIm0j9Vi6StIY2
HUgxGtq056v6Li5bNYbKjnCZDfCYolVGzh7h24VvpBXCCzC32x38fuvXYvoSMVAFrwsErFUB+ApE
murOQ5KWA8jMP89Vnag28ea2NOK6nlP9hMrmqb8//uZpj6hbv78Gvd1SOAE8KRuFelqqYfa/VcWm
NappKMSktEaheLkqL27zVZItYvhdsFmmFzcKoTXMzydC+IM+nO4xKA5TItYeY49bh64Tc0fhnzJf
OdeKve3lsyhKW1w3jCUx+v/sXWt32kia/ivsB9KbbCuuu6rmHJ/ejuNM32YyG6dv+SaDjLURiEbC
sefXb70lgQGVQEglLt17juNgsFVS1Xu/PO8JbJdla3gty6rx1tQBQqdKQGfs/rdR0bhXtOttAUjS
1gXl0tmCpU7BAgbdbrX7ktRMZLZa3bawL2uWnDU974cgjoZbWAFzgJI5iuS4MYrHJhww7u4srD2j
GCHZna4rDOtkEj/ZhTepGWZzcQQrN3OJbeKH8wNvvhKsA4mXt0hAXV6aT0SNxqOqEC+FkgksDk50
nOEGDlXLRfGerqODRZUv0cHXVB3I1a3IRSs4RU9huhvgdCfXLrGJVjCPNBUXmEfhV6XoodbanIo9
aepnByRFOmPgZQS/CB/aZw1Ktbc91/65FapV2KVqRe8HyTC81DbXi0UYv0+/BTAq8m4ZzNfvNAU9
MTNhJkkG8CRDTTo2EBSBWYf8UvdeChAA4tNDnybz6aGI2ErDUL3VRAedLEH5e5pxb69/uv543VYY
YUFQ5+e4JfzOAGlmT4PayZMreRbi6C6IYhu1cOIfgVoQ78LuX5oFXjCdhhPov6xu12ZM7E0w311/
+7a9yyNol4++LGmxJqkgTLyn2e/goZWPycHXRHQ/Q/TXH9+9f//m2w+tJSElrGsLOFpiVTgyd5cu
mjF6jb7U9u6rPn0DNf6buJ9lG5ipHtXEJbr0ptdvtGSF85rJUecnroRiR1nXR50KUTjoolqjGi2G
cVmzTvH5Pm6uv/1w9V1bPoNrH35ZKfZ0eNw8LEJ+l8m9tY7LDae6Cvy3JAQIwYA9iKXrALa9E0T/
E+JIewKBBtiUIri1dUeUahLnrR3jtsfWBWDRUNphaK1cNQp5OSJp1yLJ6sUpWbOJwm0kURF16Kit
T9HhA6YdZKTrxvS0+HEc0tvfuoEIn9w37OQkaiww75KfkodwNouGeZP1tmpsCkMfETtCBFseftM5
xl1u+jaAaR9q/EiXam1Z91s0Ptj1BzZ2HZOHjmljytjB1/SP8ZxUHSNKhzspYKw7V+IuiNOdgyWW
ka49Z0osgcv79N18Fvfp260BNJhCUVxMv7Re3lzUMrSiVEVBIJok2VEOlKOjLEvxwSNnVO5pbblY
FHPFTp1jlrd3ThzDEdmz1MnJccouinefdXsaxneLNEUVKI+i0E5znNgk5scJilKyZ37c1cIEiaPE
a3i3sYnaLlPTyR3WKojCRwIit/lITFCmjrDZlHbrJa0zNalkauEf4eE5Qi7DPHdhBTghoPdQ1kWF
YLFohScifZjWoLpbt7ykAifMRycX8pDd82+dGR4UuWEkWlUTWKsQdfMuNo77eSems8jMa8kPu8xD
ZmqzXydqveeD733c6fp5M0a7PG9fn7dfp/ml3XlXHXKtLKnLQ+bEr4PTt2PJhRhZfztvL4Y+2Ltk
PrF3UPtSPzN2dgMrTeXra5dzAULU63Lae+Xtm1CGVYaSizpTmfa+kXGU5pA2+g42+4+hg7JOyUVH
3N1dTeouaa6Ekp1ydxYsgG3SwX1YDStdK6bX+fZ3JF1f2QSrwqpLfVLlVwNyCGsi5HYdulnXiyMA
JQxmhtXszi1nXEs6cdjj3h4xWeRq105tLdCxvNki0NF0mG0JXJoDXFAHKtZx/MhwxyF2gxPKxPnu
xiuXW4FokxFGG2OE8tEZAOWgn3VT8kqBtb5FWAsjdcabrj/VXy63HpNWbs7quJtJMoAqkYdokEXj
ouGpsvoSU6xNwAbi4Hm0CCRsF5m7RZdhIZ0rAbJ9CsYAPoxWsDeKCGMINHzwcHy7mKRiGsu8ZJ7F
0UOYeqOB2XL9c/70FQPVDTAyxW12wGz+cJZMvWF0B06GPvS8y9qOmqeUtnqIEyJbLm01r3z9D6s2
O3sFO1cxkIJqe4LRpgSbhKn2Bgwy0KZRjnlP1ZkEVbpwOIyC/HtB9/kPBS1GqQfD27x0PoV2y4o2
a+Sreri5NcjBxFeN32GdF00gi64OQwdE4hO3u5A6lN3FiUDN5Q3AUAyS5HNkd2kwzFgmra5uXGWY
UQLgZHasBHDapRMazScqTCLtPW8RWmYsbhOe3Ear21qvJBX1SjhXFszrezasIO18Dj7rB4RZrcN8
a6PJIJ6bAVyT520uQ4kQ7a4oJZzLoWWRTZABLpxVJwJkGWHCYRAsx5pbAJYU4K4FLIj21S1hMQP0
KVGDkMzeaIiO7jqHR/Sb3PIK++nbTCsG4Eho5j36oQjM6Xk70bnZDl9IObbfCUWNWfYhGoaJl93P
kiyLtXwAgxLO4Bsz6Pn165VNMvmo8ZS9WPz2JeHixWR6vwHgoKVYz2eylWf7bNzPwrG2mRYjWbd5
ExwEdhMj8xC8a2XbWjiQm3fb7bwUxtBBmL2Cz+mZHWArIg/NgPV8NFsByhrGQw84zz6fzswCxE0l
PUxn1c7GemQEvA8p9MZzH52aDKG8iZfugD+s3AFztWqBm3XHHYI04c6DmCaTxBvoy8MOal1pZxa/
qeccPmazYJDlp7fQBHEwGc3N+NBREE3SLD9Wi1Ermez5og2jOpniV56Y9KI8OqpPiH16VD8kfYn6
gfS8Pr1+oa35TK98+fj4CCOP6bW+0EVxJf1xDonwNpmEZXAl7RlrXt8zv7+BobqyC9tkmCXvzBQI
ecoPY1FupcolV9WCajhV2/KVY2NSoCbZyZORMQJ3ImPGQQwkrh13C/4mwqzHFT0hkmaYKDfyzoiu
lSR3VQ0vblbMsVzyLtSGA7ihHkwsLax+ux5WvF4nzo7d3thjQJJZ0O4WiEiGoLGecydhIXhoaywE
YClQN9pyEYqxELLvU81AyiEdL5FqBsksPWRARHL/DB/jRR4h2KRM8zt5oNJeOFOOB/Hjx9Ew9sWh
zmCehjMwOf4GoFBfktnwv0/xVCTlJ29n5OVT+sVAO2jaXNXCJJyYOdmLlYwVgrRJ6tLqYJK0ie/l
pjX4nZB0fYgCbzk84gsgeVfE9/1mAf7dUtYmXLX7yBHtyAtZG0ab73ThUeyotLNeVL+pz+mb8mRh
QnGPE+Ljo0sXSonsXLrcJYneulvHYkDJ/cTA+399/P79P2/2uvvlO/q37+JodJ9dZrN5WDzD0bTX
q7Km8slhCjHs1fVSaFuSuTHmdsmgMkIIrE7lMYghVwbHpoZtv5NjhaeXjzD++HNkmcHOOepUAvzZ
tm3BcLwjz5BU1TuTjg9q5SQ21FzlRUZh9jp7LO9OIzNkj1WMC9mje4aRdzN9MyXKBG6VbQlutaUz
GVmKmahy4yGn88p5cQKzepO0rebbXfAQ6d3Sjn71KHMmsSYL3GmkwWqZIiSbNYYcLREmG2Wg18tW
iiN5rb+VM5P6NKjsfAnBXS3hPehTHqdOH+Z4aU4kjpoUbhTNOU6A3mldtsSdhOLrKsl9qaRVed69
ttaT2ZO3COV4i1COvRCXmGrcM9odicg5+f4WeEmOhURnJLVYk5LmNeNgbWyLNhJSbxilwW1cNfFU
NquqdycpCebk8M/so79Myc42/4dW1uwg5NqGXDXwNz4qxn4X0/oWY6btBV9QJd+4oOhOL+jdBdBm
MHmu8E1DU00Dhcf6I7vl7uO9XaAj9mA5bX+sNTHXRex0G1VYpAfMX8NYiMa0MBt7U82sXhY+ZtM4
sNfU+zBgVJH2Je629coxd+rTnmpV3FFb7ya3/6tlmKYaYDjXQXeidZlA7FhCxNqsAJ08HLUhlyyY
jcLsuXsPgNXtKXfUrPXjAGyTz8FGXRVbsKpiC7JnObyViYrgytoAHVvTVkMEmsNK6+XXc+us6z5Z
RBTvlAerik4kzNUVbXxgsKP0muNpMAu9QZACv6WQ2M2iBzuCuK/tlsbhkJyli0cd6luYjPKqYGsc
j2izWTgJFy5txmLtNLHX8mKqN7SDoII188TswBDQOMeO6ixI1T6itiVAS2F0d51zxU0ZZpmY0SQ9
uF92gJvib5jdvWXerK94M8fliKaBJRnPVL1KP1zJpAug83AyWOnlHibjChOOKtVjdSYpbK656vGl
IRhu42neKAyOH7ww7QLLM72CI/1+5UTfPH2Xn2c5peJpgvYb7MNy22FwhYHuKRR+7gWvDA+3b4Wm
8Fqdd7htKmcbpTvZP1ILCXXlQWyg38d9CMJ6uBZUvZUbNhP5q3xR2XMGgACiDmzvGVCAquWXnTIB
aIUD+NQtxMCK9DXOpalFrm45hI5DWsu/3CZ3TKwN5hGGQ5PT9vL+bXgn9bKk0nBiMC9eIGfS30i7
LYLfQCr4x9TnOfCrXZ9DZIHQFkdxYFwfcE6yYJA4TRhh0YYY12Ky+qKPGKGN/H6B5iJrwte4NwH+
kZOATYBhjOihhX+9MOaJCP9te8fwmUj/yocA9U9rpXzO4Tjofsfx2z+uP373/u2JPQgoZCRwG/04
MS9DbxQm4NybG7MFESip2RRkY/9ROAlnQWb0bwEzMEmjYehlkPiyKkO9HqUHdW4zrWiSuXVKEhZQ
SSr4gSTyx+JO7EKY7ycRNzpLa7XalpS/6DFf0aPY4Ytjabpftea9uxW8rW4ZxCyh+JQMrcp6nGdL
q4+kW7BKhhy5GbNEP1r25BWN1INkbErGK/osBYg56sTGW5GoBYziQtYWm2PPxWAY/XfqZnY+ttBl
4tb3uXRz4huPuiAAeNBFVz9/fPr3bRzcA0AAIfp5kgk4gfDDAhLg4mIzR4D1TTIkOiZLe5E3g5kU
bWRCDht4dXOzq/2XwGhtgtqv9UPwENzkNLOr4xhat+rVcBxc5AGYlPmqzoXtQqTKr7CWOnPJOEIJ
1TnjVPEJebnJJj7pMSyFbE0/0TvjKe7sVqe0JhAlbp9p4vZkF1LQ7NixYLBXPwnZculisw3Y7cpe
e1/uoyyEp7fXpSlGAbzO/cJ2HGPEm0XiDmwTbeCGvHPK51yygynIPh0Mo4c+DZcaco3/c+anL/v0
6j88z6IokWoVtc1pAyqV66gs7EPBBlXdLfiNfcWObAGAHtE/2S1UhnxtCjSghFUoMQNV5gFeshmf
YhCTrVwuZb3RgTs2Nl8VIv56g3cZIKYcialTN4E3eX0aZPcu+Z37vjoYv281hm8yqC95Ded2dR/M
rpJh+J/okcuv9Tdqvr182SeiT+gjuctfML+kJGWPY4RktyxT0SIptFkrzpGg+vTdH/Nw9tSnb1Nz
Ci4pjGJ5XAqrT16eJqs/5klWoiqYP6MUPsuzJTSY6IvP3EoNflpQtVhoG1X2fIkVZ90yf0V/AO/E
P+jSdCyGH7ukC0Y4Oh9tAuxeYnVtVvJGobENO2c8Dcsd1b7eItwNecaJfUqIILSZWlrlVjOfJPsS
Day2lAT7jclzko4F7Tu3ppDw22RvFgKvBKLLGOrguoALzwAsmhwttKMZrk84Jf//rd23lyVYLAnd
6V1ZwpME7CQt8LLg1kvjIL33BlrMWguIuWT6/3MVD93axqSJOqgjL5qERmvLi1bpiVVfvQh/7vDV
mbasWiYmdgupJUnn0mo4H4+f+khd7O1EvDB/ml+gVHLlwyDL83ISV3mhC19CENKxkLLXfEKAi7Yz
i6Zx8AQENJpV9E5IDsYX6YTFKSNdsvg5yuvsPkqjNOjTN0CtUJAbpOE4GiTaOHbq5vjSP6Qwwk2C
GSXZo7UCl5y4Et2zwc4Yq/BFy4TKFu42G7StwIKwMyVh/Yn5Fuh/udhFQMuABjKFZny3tcboQFlN
UYFdoHpEHb8mY1GQ4el3N4W4tkA45022KXuKw/Q+DLPXgzQtRQPATBNtZLi+TI56tt4zb65OwG7y
O2U9exhcgMqjZ1FYVjWJwWlMTAtecSLkTYC8/TJ5U+WjbknFHjQ1zcn+OTR7VFKK6wiSYI3y7w+j
lae+nSWfYVJNpWiQmirZidAkNTRpPvAtspdqJ5kpefY00mkYAaOO2NdeM28qE1qakaZe9X4W3nmD
ONQmQj3AOEUBURM7KZzVJDn5bB+E2yMSHS0i2si210RAOP4TsEkn2cp6he5kD/aIJgAGUIW4QWuB
vpJd7KFXyxIY/G0NitUek7lVVwzDOHgyvQLDnyARu64uCqxp7NfiB7JtodEsDCc3f8yDWfhaf1Iq
x2E1Jw+RWugh6/tnCuMrJ0hgpdeuVQlETnkurVOjlXO/DQmPo8dwuGjCWu1QuNWvPtdqUfCxqjk8
iTRA9piEM6+Y9/fHZdvQihKaG7HAru71LtayBXYr0jSshaI9Js5qThknJynwO0rA+j7jToRIqa3G
kPSysdDQsb2bXwsTH3fAO9bkPjjbRLkhPNOZNwinWX70BtwtGOQ9pPHFwlgZJ9pSgx0Bi+W5+6IY
crmYlfE6ByB4mf+VqezRL78ZX8bJKJqU4oQErHyK/gzU3G2+UCnlSspMk1m22BEtCr27eRxX07Xy
cc1y2dM/oQ5sTCrrNaOQjkbT7jzOF+EEmqBX3vbyv7nEL1YRp+n1HtW49Opi+Wf6B73z19/f6VN4
SuYQrA5hHG4R0B6HaRqMwq9BGiT627PkgEC3WfIlfBhMhkXkezgfT0Hi3JmLwKXyG9YvbsM4+fJ1
/v5k+THsjv7vX9/e3Fy/fQ03N7WgcAqtrCHyfgAtUaUfiNjPrNnord7FSGnwEBaHa3qDW1BNGV+K
ODLSDYgh4KFNR+VhTljohfwW60yAb4ahPovhbZ6lSjVh3SaP1RVy8txF26GSn0hx2u5onkdje8++
Gpge2uDJ407W4A+FcSqIOF/bmroEvG9K/gw0ccBsIkOccmfnox0hvfB9iTQso5u1ccJ9N4LJxCm8
6A6WD2czaKhPF+CBllg6kz0hG5hFWwsxqL6y18OKOqc/a2bWrwSrVdL5aeZEZztEwXrCpx2y3CgB
HDbDeIV6LFEx0Ttfr+G0Fd8/a+dylYbpNu7MytfvxID1n2aBPRqmsNL0p9yfu14QQEx2y3miaE1c
shORvU4hSUQHErTY+4L1rJU6qiYW+eEcmDKlvjB/XvrNwr955ivt0hTezvLn4mI3cK2/mMfDiOox
xYV/UMm6r+OxUy4R4fcERqfqOO28f/Cduo/XdnX3GDprMWtlY22TTfYTFzWLZ0/HBncayyatYtnb
DtyacIEie+bc4Kuw9DDjqN1S02Q6n64591oGTe3Nmdqg4Px8CGl5o04ri3yMT0nB11HbfyU9Da4k
6Gl0ynraKqc57fFaxdbH0Mx2XYylL1yLn8q+8FaZ4Q7VvlXRI/CAqXDkC6zYGG+iETdNgvayYcgv
4ZZnsgjZWKkUcM+xf1bWRFeqQNWrZt8dLFvZ8wJgu6ztfQWGu/P1bHaFZDBh7UArEcTYgZYShB1R
c1fz8AvT8xtml/C+VVlf/HbTl/jm5mJdJW+SiN+aJvPpPF4c6SfSfGb3YVjdcVG7D21jvV0zZrgP
S59vPsE1TogQvDsFkyNVwLhUQP7X9qGHxW2UefNJBD/ZoU9Fza6V/UnDDCTaRhsS5g81IP5SK6r2
pSF9G94lsxCmbARmbqw1yovqDjmuet7c/jEY5+EQpnosnLAoXbwsMuGzJLYPEdWmET6LMG+6xhN9
+m5RtezU3eeo2wCsNwwtzACNGnWk+BwhLcD4bmEucY8r3ip3ui9/28fWQUj7WDlBn0i3K1cbCfmS
WBsJDR52EjxEI5MFh51O4thEAL3gDiAUgfS98I959LCM1mkjz8yF9rTQmWTRXVQxl48JVXMu4okx
90LhuUVLk7Tzo7GH9GTNVpZWUt66NECXCnxiZqtdctQzY+vIPl9BX4Z/8l7mV2kc3n3llsaV6E7i
2yMG2mTj8izaNuwypo/UqyXGu8vDID6iJ8Z5OxhNb4FUoyW/LUqzdhkajFPEuhBvX+612i3et8PH
SJhhcJj6HGm9A+4DoKBznguGQ4PnFabebTD4bF7bPSYKqJvd2VemFFVLapu5wwGhmnRrLT9vxHIE
8JISH4LZf90mo7nm67cXfX510advDOX2tbrtE6V/3Eq5vuZRwk+/5Qzcx9wYKl4F06leyPCmFkLP
2T79wLdBGgrWJ1fD8bun77/7IR7QX9Lh1bfq+79/ePid/pJ9+pWjn8bDeHj9S/rpVxzfTj5chT/H
n3+8Gj59+u2f+Pa7/5n8+DFbvJ5/GsdPA/rhbfD3OP10xee35EP8y/hdOvz159G/bt4sf+/33z6g
wTiOhr99iAdPfPLptw/vf9fX/3Qdo0+/ouQH+iEO4do3nPz+6yP+9BGOrdT0C53mktAuGWqYzCG9
ZTARqniqXYw6F2imgFsLNJOduAs+h174UFGPzqH4+fSLrb5Kw9gYLH8NOmRSnYpwI6SBcKPtOq4t
VPwlmgyTL14yDe312jCfBXWqDSegjyqNUcO5bWKa01n0AP7d7Sz5YtS+cfGCub39E3OYVSKZo16M
WVpwqEkhDmah8e41Y15ms3lYmt0EJbLKydLFpER4Slh5AQJx+SW8/RxlLxZYEJczTQrrAEq4J0B6
qfMNMUCN/l9FoonNuWv5AR+Yakw5JO9hqdxQL9yBqaaw5O0EhALq6FXa3kFQdoAICbPFT0WPINRA
j/i41tAFWilTkywZJLFnus0Ab0BzkkEfmKRRFj3Yp8EDxkyrk9upSuDUdtqBtSAmaSWNDqMZZKHe
/PT+6sfrt/kA+kEQ//zhJztqG0yFJ87JtVMMjFfrgtRdpRwmDfZ+bey62fxcOM30s0Vx+LeLi4ts
PL34KXhK5tnHMM3SC3ga0/+T2qQL/JW3PMgsmI3CkgmfA7Rwn7ghVwfmot+AzbnmuVbEXkQNpuag
vSD+EjzZUX8BNaNW5RfdKfw3V031CeXn801+A7Z4ZS0TcT+5shgSXGmaQiuj4J08c5yMbKpPiy/G
WMMp3itVfwXnx8kXbBkXjWGAqLYuzlhquS6rqIfTRG2z08dBFHvacNKM6yWTfCqPdTCchP75hqus
hPz+j71r/W3cSPL/ivaDPbdOOO73I4CxSGYyhwXuLkFmgjvgsB9oibKZyKJGD8e+v/66mpQsiU2K
jyZFZXcwkCxZFpvdVb96Vzmul6WQHV01jW8yQ1XEI0ZMomm4mRW4RGTFJnOtQCJbgQslJG+4v7Hd
QbNj7jEtkAavegUCNuKVyspo96GIHE42zi6/vX28QrhMqMGsVqY4IQ3P0U5OhGNcHHOCEpDHhvFl
Yp7XhBklmfSICNZQL9MdMNgFpAv5/ZzMNgUTcG0aCzqfxkIlaYVFWTbaxrZYCyZxaJAieArX40ew
XMO5WZfZj2C72pIsOc5BDLQWPNmyoAXCwdrcXjZQZETPiFktslV+l/NkHU+NlEvmkbu53qgRhpw6
WBh/1uRwBTKiSSHv3Fwi5RnHFZOBh4ijnhVHpTDpnbOqJXz3oxnsI/CRXrBraWcbiP7bFSHwK/N0
mJxgkxjMkUGfuxdobLSC3ne2+qxYTcCGDjXC6Iy6Zks3Uz1440KPuO7HK4qRk+3BtdYK0t00ZKeD
xu7uCnbUdBMZvg+3aUPFwHaLcV0D5rsQ6V8hmkfP7hxPBtUULS2VYDoL1+Y84bzozFxpZq63WsPL
FEYgBAivtoTmFB42G4R2zUN2IxrnoJ0Q1+amo0mQbQqAZipAk/UjJMM47eJt2+R2xkAjDpZoGMB9
wHQtzLkrIsInI2V/GCeL1xP+SozliCON2OA1B0es0aPthYl/qNmrJrQJeJPkj/nDMnQn+DMlKs54
qonkLwsY5wZN6aYJZACu3HYZTAlQnYNO4ZY4ZTnqGQlYpRy2xlTgPHYoFG5lEJ+B+4zWYbivJBXA
fABYLluS+dG5SPN+JQ6FmIpWVPZInS5yJGogYsLN0dfZR/K/Lug88e5/Pn9+d9z8XRkuIKIlHzSQ
wUz3okVPIrM547DAO2UxWFHvGBzPV/EkClbPD/CSuKsmZcVcyXrwU+ykYEbwVZtv34qp0gW4XHH9
KnqajKr1e+odZ21ePiSFzpN59M5rF2+p+DAwy8UB19uJWgaaJvFz6lyIzdMLKKxx5mxIf5MB2PND
+u5+M5y/BMH1V3IXBPCSiCtCX1B4Re+zoL19gyjzRpNOO7fpJR3uHqMxUeadXTfzVTi1FV1OkGCk
Yl/DNvhE3VFEA4208yji2/070w369V3DyPlBIkaygLxK6Pb0Lp7P4nmUfYvXEjgkiE+bKJ4/h7PY
LXa5bJmiVom2shUMWbVzMeI+TB5pcPgQr4pAEuAx/QNUFeBgsjtTum9XDNO8Y3Bzh0K1wbZBekCy
HduAh/4wdhK9hE+LWfR+nDzBIBD7Ob/tGiX1yP7FflfOjEwTZ3N3YtGL4fEUzmACUTSxjUycfl9Y
DSV9G16tMmiq37+xrXfjG9wVqLRlxm6O4mq537hqGz/tTAzsu4PzCjCZ2v/96L3EEAzqwWis5yfU
fXorYEYZV/79tPMoXO5tQc4/C8NCeDfs4fZLQihID1EmZtHfg1JKCFbvuyv3pKPXgWWyI89YZS8k
VqpvnYySYaDiEYfU8Hfa1IWDl8GuEcrn2/z4YSB/6tX6KXHDybaCp50bjmDsH8tKa0s5qdhp4bwR
jx2wZA3wjuFm/TqLsjeh7cnefMn9j0GxY6a+795bzDYPkPvwuojsJKODUsmXIC37s6kRhubXdrKI
387Z/br3NR5VmwLiQ8uch6txHBdmyGmfAb5dMdMsdo9el1K15K/izT55cQ0TtelAstUPESEXjrpC
yOGeON5NAjEL6d9DAFX4u/10kg4VzRxUJUV0YMx/d2une88ek9X6O8hp6GTv87fnpxF9rm5PIX1B
cWzy6eoDvdKf4tU8WX9Olj/4rl5CjPQFeu5EMgRNC2kXVLv7yiOqLYarhSHxbDTBkYzIaKcjz0fx
da1sQnLEpRgGRp6GITuYHXUhwtwz2WVLAXJaerkHY1Job+8d5oEUTpaXClst1yS51XYvto9Betfp
i4xjoaGxM3NcSDaiQg6DS/MaXFaRzWnPGiPng/LHO5s4+Y7XM00Y88rcMyMcSr08XFQc31zlbE9d
zehuFZv8+E3Qr6cxHs1y8QjwlQAIuvpzggUeOvkf/U+54ehNr8xhNKpuZEKpu0IQMiLMZy3Xid5f
EvERlmr4/pHtgZdObfbalJfX1H06ZuVSusEMVow6Slk5pdYKKILrhFucPAJVSKTdnT6AEzcwyKeJ
ezsxOFPYhVWK54eYd6A2SHOzFbaF+fJN7P/l3rEFq1ezTS+BrfY/XGqqRcpK7MsqMEO1q6adoCrW
NXS+O+vHpUH9ws3BUqMOdqfwqpZ6bJ8sIQYEqk7elwbOtK5UE8dqAVqp+Yuhcxnuk3Q87mUf/j5R
qdiWnd9Gy//gc8Y5rma1Fe3D3qitIFwsxuH4Mdo2i3VaUZpWjMyz1q7FRbh+XAUIu0crUl5RIJ8G
rf1N2NbSJstq+6HMMgj1dAJjg5xFt1u1JI117ys85SbUulLE7W2lP/385e8//dfn0e3L0wxQahl9
3ZiF7HcHHY9BrGzt17RpqfncdBY/PBq71p7T2nBnskkBDxr+2T6muw99gM98yT6yflnn55hyVE9W
//zrl7MumSpDGJV0/OpCwsUfLyl5GurEBT0TmR/dquRCaXF6xSLVenIYkv7dc1QxVDw0uOARTTgp
wRbeHNODk/cVuKS18M37zh3429csWfv2y2O8+sb8D7+B336TCaF8vgooKm1pcBVBxsHTIgAWKOMF
N99SJYauCuybYjdpdarXEnJK5RkQt/5RMaI9ykq3sY4EZNTrnqG85l4QNsLVUo7PuEgYS4Ow6lHA
ELeAEbgb2Kdu2DdyBinPEs1deFs1S6YNstOKyH5Ff8hhC4YD6FIAQpags8EmN0zcCizcWwMFftn+
zBPbNHzl8NvQiqUZVYGKFtswUnVC2cw95o1XbLvoT2E0D3l2FqI1TZ0Avj3qGj/EuSxQozRoIr0r
rYc3u+VwojrmcLbX7TftKB4/Pby1UHNH5KdJkg6kyRcYQxpEgzWbbzzuNYxwS7P1XNqZ76aAxib2
tqFadIjIbjA22opEHgGRuQERo4pt3esDovOCmlXMQGiPRQUwRBBV3ZzmJJrH0aSShYlsJkYHgmg5
fksVLjoEyqCjH/FIXNx9kwQOvE9vCSuaMCE8C54CYW+gV/RhFaaUVkTg1epLBoP/2SgB6L67XYRP
fz1CTXxl1fndPT9aVAy0VeUw4eYwQ964SXCghbnoVC+x9m68uTW7JrLKI29RLEQnIYFDhvp6Kqfz
lKnlCv7CRCqEeDe88BCtgykMxZgn82AV22pMV5UK1F23MsCOGUM6LyNB8ujWnU3pchKkjV0P2kPn
+rrmc3IIB08OAtdY/ZvNt0OfJpv55PBQrXJK2EgicYFo/9YskNN7gH7nQrymk2lCvOtblh6wuI/X
wWYej5NJQVwDprIx0odq4GLEQyzjENih2BrktCFxZuyQ9djJMuCD8bJo3DbQqvDJ9sotDxVkb3ak
3r9taObrCFev87ETfmwphWq3t8sIhv7NbTtps8XjZDaLoezZ2UkZHFuU9BKRgG0AIiuysYIRxpgz
j2dtnr5u4uXv7la2jMNkE3zRGFipYWrWg7Uk2bDKN/7y4+effv3lw4+fS1uwQk4Br+mQbRAsOUVL
5mgxUU2STpowtJOVEWtJXRUGFE4ikByHciQ/qnDXw+BqY/R+Trh54vS2tIjW4KFACuGzO6C5VufP
mmC9euILImuSkPN7RLDm/OxWI/GWY1GqkbkbXNL6IrojgKNYis4Bzli1r6k/smCije1Lgj1J7e3U
me3cDxikFD5kMFvgMiFQB0OHJMZPdka/sYKYS2oeBIcH+EnCT5LASw0/MXjQfsMbnGnpJxVzvExW
K0cupk1a3h6cU+fEpFmo2rGIY3qptQ5oVUv4IDiZ1ww8dqeCU4Z9mVtb5i1JypWkoVunCorZ4qsj
k3brLrBddZyAhiHUL/T5eaTaEPhutEerI9Jx+mxhyjyL7NlCFLzW2WuUPbPs76Ls9zh7zr7HIt3e
328/T1T2PE2fefaa0/1nIgg6/BzRh+vcvl9/vcdUqUZCMMlaO+BOWOTBovD45YjVVL4bQkLWI9rO
MFxtFotkuXY6sQMwqIS4ODG7Z9lWEKM7Acx34nl6KJnp/m9LDGEKUyKalGodTwOP5pPUYRS8PLor
SKVtWuX9ZK7MDZs7Nfdp9sDsALyk6Tu3hfcNk+YZ60E5Z+6SBmKeO0oD/+MxXke27CX7WPAYhZNo
6fQuKVw/s7VYkv4R3a++zkqrWyg4MOtpwWmFXj24KN6EPGRAG0qiNW/qznzaUx5sgsL4MZy7ARML
yUdU6u5PfrUwaBmVHT1mlXsUF5/9fHKfvBhR/Wjwz7AASO14HRulYafxFmRUK9TS7bQ3rH4ZRXPC
0QtH7xfzh1yojFecF3/6SpmchObPy7G7ssKYDOif3MbzKZw4Yop0HREv4ZuiTE9NhuMxfXeVKqOp
Crp7NGroBvFJ+ojto7KP0j6yt89EzL5D7KO276Q/c/tzGFxt1CQyfyxD+DWfoql5B+PwaiMkGZtH
Tu/N+3h6/67UW4uNGSUQVt4l31tKWqqCpMdXksBCoCsukaTPslMnEmpoH6s7TF5+25osfe9ltZxa
t6atzKyzkderdbiO7mx1VS5AZ3aToR4UKmcqHoeCNt6xb8L/Tqbv5Sb3GlVZ8m7Fsjuqa6BNqEsi
xXECzpJ1lO+SgRGmXaPMU7R+TCZlKINYQ69zP1t6cAPl3I0pEkNmL9etpO852IsJcUlHUkLlrEkq
bD0qP/S4OKmctG3hkCHW25Bta06tgmxp0NQjSH1T7hZj0PedXLLP54pQcxjL1yv6cWUbmXjt6IEl
HkafhyJxfn35ei3TSAwW6G1gYcvDJ4Ce4EHrUQe34sB2SuQlnUIJtjcqGC1wSc2TMq8UwXhEmepB
ezf3v1wmD+bODZ7H7oEamsCM7O7E2ngZTSDKYdThwgxHrKk2h8B9yrSdS2ycJL/H7rFdWFTsPHh0
1fQrV3uUu36MlxMQmuvX7ILQQDd8scGdt+LOXBY9hn6tXlZgAeZD+nZeMglIyGCoFYWPHyPQEmxr
JXPaC7d2QNWIYuWpr1P5mZotDssMAiYh7iB97G52wc06npk1WgyyGsR0M7dTW+4mEeBKtv858oZB
HrJ94LDgGPL1AlQJQ9uyiSLS4N4N4X1KkvTe8y5ayeRF64r0U4e6oq7ZD+m0+M9KVjfrx2NMhvdS
H2yaZxdP7qZJ8usq5xMJDOUgjxkwLZfEoGYa6l9q7lUfi9JItcLUtLemC0cZSETkUyLaIVPrZOFU
AyBEy8kQoFLw9vFxhpjd3yNotEVOFho14d2IqLJNNrr+iGg2VOPQpS1eFyaNf1TUGHwfP+Ify3PG
pTIajmb9aJilCiaR7YLO8XyxSVPEgmSznsXP0Sp4GNuNNK/TciVoiurMH+NGLVINfKTz8Dl+sOPd
YIeT2cwaMkE4NccdwPYEZnviZ5j6aCjCWS4llbl2kwTtDngb9ZEF4tT1iSEAJH3i6UOUQMoe3Dfk
T34w3GPI8OdkFa8LCqs4oKwiA1DKhJaDk6VSy24wuf5BKQJVlhfX92a/6UHnbs5GkZZSONsdkjGd
k9Bp0imwY4mf/hvWkPryGO4o4UdQxj6Es9l9OP797yv4KZr8t4GX7Qd+NcsP41l4P4s+Jct/fyOr
/7RxhPxOEdtvuWbFWR+8RghvJwzhgOqLQSQpTBzoThfIMklKXE1I4JbdAUvx5Y9wPX4slQEYIs66
s4ar1bYGOqutN6uc4Ud0TZvjtEEKztDNap08ZSvwuVxMpepeZpw8UwUdJ732oepu09hIN85hj1fx
fBK9WCNnEq5Dt6oriSFy3j2PF7G4gqFLXFy68O7Q78RUu573f7oykj7KR/hI8EbJeL6AvxRIq/W3
qSwSs1Ye7hHuoMLJlhBkrT6DktbfYuekP5obdnpdIP1f82FJtXKhxsRwREmZJAF9rn1Uo/aJYowg
r7+j/jvheL0JZ2ZHnp5C92Rk2awbW1X5lqYA2d9ONzM3SUNky2vy4K7N4zhZriyJ7N7ZrexuvdxE
18dWh21ek1HL3QtUpfwer92fSgtX7m6ui8cZeeoSvO1T7NWB/pRM4umrEdIzN1lSMC2YT2RzU7+g
zapaqui9J+6RQnscrs/f/Vlx4Xuf//bWWB086M5tR/RfPFfOc1LKC2wX7b1PKFYKn51LiGrcku23
8DnMNs0QDlSlL6zPp6C8TTPIafKKttupZhN3ixFC6quRp9W6PyVLYqTpgIKOOQXrKMh4e3Nzi75F
tzff3twGacQRlbelYuCORqIbifhGh2aHowUuKs2v2/+nYWn+SaaH6tp/cUUVriCqF4opmE02wsqn
HpWaaAFDbOeKv08mr44MiGCkKD3TlSX27V6uc3XOO6qZG2dBI6dsZDCOhrKz3rccBDQNrZd8B71C
qrtgsf9G8m8+hMM+DAH0SVuOw5W7i7ahz7bTQdwIuIyekueCJHgF7ddxX7UPhfuRz50FZ6jSnUqG
dF+K1QmYWU0Q76OyosbGsFGjKeNVSbZaKbk5GubF/ea96qRuBTdu16+yFpW5i+GByPAwq4/qF3Ez
wS6IJkoKkSgbUvngoWbjfRZ8Nr5oxClXF91GrErL7Z0+4FWPYKhrUD5ZeY8VpNe2q0lO99n2Rszw
y+bGB9EzFPzEc3DThoUJGFw2C/n3AgB1Cv+JGjIi16v7xx1F6KznKEDYPStJ1o72FiYIJhD/TJnP
Bk3DeGbdHLm0XsCvCyK+MulTaRA1b4EmJzscYAUJipVq13h1NAHnNaxpCW6r2aszNU8B7aDW99/N
QdaqKq+kIPMzociponKOdIuzL+TfnM92xCs1pRzKYZfqjPxSg251dSfPbhgtlPYNeMtoEZkDm9g2
04cjPItGGmEEie0SdYF5ez1D3U1CdcXurKc5zvrrPxfsN4EQoR6SbbOvR1yPZ5u1+Za7bw+MHIJe
7t7ha2O1XH8ld/hdDavHPFB8wvTBCoqAcRtZV7szHnUndpARE7g7OKwyDpFXClfzxhojcZfHiYrt
OGpwXjJPrZcTdoumaFRXVlc6/eV4kpjdTqKVMZ7uXxfharWP4K4QJjhkqehC8JYpzoJ2QPvr11np
dBAqSMUmFbyhyLyfbSLHzFEYlVyp/q/JDZc0gqYCNFvsh7l8Yi8pw95TUAuIfIC25BTaAslVKxk5
weuQVFvgqkj1oOA+MoIX+kD+X8GQCzgS1eBInqJJHKaP2aTE9EWG+MUxF8WUhgS+bshv9RhF67dp
4Rn3ORGXS7DvWO9QgxqoVwVDqqCc4Y4iuUtW2M3R26UsZHP0WmGGuQKE65k4C1RVSzJtII6n4Xz8
WlatTaFZupR9Uqq7Vg/wWl0m1YhKAcR6OLdVaypinKJVhyn5ZXROe6GcEoHLFLT6IBdKOcSD7y1j
dGsA27Oz5db2nRX0SC6q8ObKn3Cw6oO9pMP6hxKSDhDm+SGYmt9Uk4TQN7mZFtAjnXz/w4dP5iPv
za3lSEUi3KFocl85HdOm20oI3xptXqgdKbNXtmyxQj6rxCPOOWnlDIrWH+3wu1+gC6G1Pz8ly/t4
Ygxw88Ovv/zHZ8OP7q6EhDMD26pH3igyy4cue8s4Q3DejfIUz38z92RR9amouTyFlEMpzurN4QLz
HkiobI6gneXdRhdYPYaLKMj6LoIQ25GUU2nVhnkYuVySbSJ2S6b4lixZHc0X3/fXp9t9SHDwnVf0
E5StXtGP79+bj9mHAz//1024jDCyc4muiLDgYj59pCSm2d+KEy8qRtFibYXt3fv3t+b/XqrW/hKv
7QJdOiwm2phfSv0pj8NGi/KlmtRPzO9QtKTJyBexAZz802yAkyG54ENnSN5E37xQfCQYo4GcxzG/
vB2I0MNfIxdq6HQtqOhEUUuXXMkQVlBA18Td2KPqZCcfBunOuvUn0WVIqeTyWdbUiGja40E6vTdG
BaaId26WbwNGtzf/+IcxoG9uczWk5tVfPnz8/sv3/3tzu2tb+/n2rxA0KjO+NTMsKzS7bFLkCHdl
fdrGPsF4lticAjgPl/8T3GtK90GNZfNvBR1hPWwfwhJmhpQcpPDP0utlOP69Gi5LhEe0nSeqyIQO
IIdsXJQDKiAzgvJBH53dx/fP63VeEmDWoSRwXTedd9HS3VGHXJytkagaEYUG5JQtgqtdxsEVQUYa
xOCepR/ubZpX6xKXXNoB+HPJwEVKCTFT0q0sgQYj0dzcVEHbWJu9QkTXhF0iSISdFKQv9AA58g8K
m1W0DNK8ozQqar2yNr81bTF3jE0CG0KiZ/VIE0mlR0nmbgQCfeZxK0o5sN2cBlsjjN3vCLiGHl+T
ZO6uzeakYmn2ma1/LgbvMWJ8gMIwh7dOmYevcHmUko44QaqjFKEsm23L3WMjdZ12BkxUEP5j0M/x
JEoqZrNBlImeJbVsD/wNEbx/WrA89utWyQWO7yUw/9UYd6qD78WaKMYgkjYgtikixaM6gdVyfPcu
61u0W/x3Wxl+hUjJ6syb739bvUu10JLBpxpYTnuNaJZaYRh650reKYtDI3GAJCdzMcSbZUyfqtBZ
LZL5KkoXAn1ziruJI1K7KLB2OV0aq9ktxtl8QzUJkPhcAJO0+3NwVklAkpSQQzgC1ZOkcfKC5s0K
VXxugaByeNB8CCFvtn1q0d/cgDP4Nmfcp5B9RQj8+XffZlrPX29vrYuYkBNorAU0X9CiW54w8JxA
K+yosPWm0sbioLQXjKZujNYj2spHkJUrjcP5Vg0vHj9vtD2jJsjuuKB0/90sQRo2WZ2FSyOGfzO3
u0weluGT4+sxUUpzTkeSU6G81+bnegft92IM5puZs/84B5mIOzyD08sqmapstmlEW0WGM3o0l8oW
AqQJfQtOU6fUxn5m59wZh/ODUaPKeavm6AK5qQ/khpBfYP5Vw29soYu2yw/cEspjZF5DbGMaLZfR
0k5nhsrPldtNzivOImyP2AWJis0qvptgiRs/cMWOmH65pAQztDKYQT1lYGVEsLAaXjBLHqxhn6MC
bS6r+96EAngguAk8+BjnR1t59jvGpSJD//+5u/YmxY0k/1XYjeiZs2c1rXpLvuhw2B57b2/9ih07
7uL+uRAgujUDEpZE97Q//WaWBA1SCYQeBXaMDTQ0Xa+sfOcv67yH0loH5wnnkozBXswdnGU3NfDM
S12CmWwxZ5+i5XwWpOaoCaoJjFik8IbJHb34mLBCx7z41RG1F2dk7p9spsvQ+W2T5KHZbQoMuEuM
eu/Ct48ngO7bqRZuaDJoYn2S8Sv13lLiqoHdrEwjQrMu57HP7UGSrMI8eAme6r6jRmAR0bJVURtS
q45rzj3CyiHRtbK+cMjo3ntNChQhChbFXUvM1uwMUj2hJDLgH+gF1mFvzI1YJmDpxjC4plSn/NyM
XYAwY9L+jT7Gx8HoG6hstBwTdfjaJs0egvi+zR5JDJOwa1RtqrLBrN40RjJOhjFamF7Uw17oZKy4
nV4uLkCHOkuXqjN9dmbZ2imRM9JZURth7hEMYsET1um7SUBxj4yqLsA+RnkUNnQvAOkt3FEYzXq5
aQAlU6IjUk7Bw/cRyYK5o6lCi2fd83ArFV/lz+vwTn94a4xx0i7a+3AzKKOhcPzDGKYayWHrKtpj
csUxNPfMph5oi94Ajm5sUJ6GH4q+McB+Zto8zNbBLDS7CbDZ3JBuxr3m6S8vay0zdId0NSgQ6BkD
+2SYnYZz/r2wv8u+n8Z0fa8v0mrz5U6jR3QGTNPkqYCfa7ztHmKW+uz6ZOUBYzwr3n9SSn6JFVgr
MA++niXrZ3g6Gf1nPgLSVLbpq4OT/q8CHX8USv1yE83vjMNVaWri+e6o8ipOjpi22Iud9HervSze
mYG1gZQQLDMnzGbBuilPFUEUO4FS7FseR00bNKaEsMGY9HGTOnuSFT8hsTS8FkTAljmztnpaX73o
ldjfzCyfwmn229KsCbGaX49aWnSJ2kq5pNY2nRlEcSWgxiwNv10+FcTa8rlh+RU4bG5p+HL5xGXE
mll95B4QOjCkyfGdEAbW515h7suBLDSoKD3s+FNGvJwIxiqsQVg6ki1x+q2w4uUg40vD3awk5UlL
w+/uZqucPGnQNpx9aD3tSjmS7EvtbbIyqRxk9EVuM4+77Oc5txVTV5qT2cmEuYeucmVpq7X+6rbE
SJVtNed5uAg2y9zc4455QFiix3bXpEiWp2F8nz+09GIzNWGEjELZ25Xfgi5PTpr8XgWLWreftzqR
IncJmwePvx/0tO+lcuFH2g96cj+8Sk+r0SYyC/JZwxxUq5RfaVnrOOBjZ1ZCuMNUQpB2fZ66cY8j
rmnsTiT9HiObQxdPSfoxTHE605eMDwxY6AlmTvgYmIORAhgpb+U0bM23tc/61399v8Vqj3HueYTd
JJdY4WmMFAChgq00rvxMw2VQzKMRvlK3W6begGwshZFWUzwb2BVspQBHNYdT3MQFuOwGftXMyEi1
aHiRJJeaitcqadrGnig6+kRazYR6RFzHTMDGvsThfKm7MMRzYx8xByMD3pBcJU6watwM+ixB+2Tj
cfPzYhHtEsIsi1wT69sXvG+wzxZ7tydyaxACfYx9AoxVUDGOdlhQBlKq+d2mEN3hdP761wvNZ6s9
+0yMKv10Jy9MISve1TlK5oocbO3cR0UZKGjsiiH5x7YyBxQTc1aWkC0BcOTxkP0uqy1PHM01tYsy
WGPQK5y/XSWPNRdJu2beQ4+L15J0WXFHj4E+bYP4Iq7Xf/Vtd9pTlsZihLtCYLnGwYDFJtjb5K0t
SvzR5OMRtztzWzYosCwOG3mhyRgtQ+6r4HkavpljqCEFXv5Gf+lNpsGdTpqc2KVcuC4ZkKOZe84g
pAW353A1X2mvkiA8Ms2bSF5OfOrZkafGaL7ChnjU6jlQk/PbtmApMsR5JdJdTM/e8kuuRwlzrR6B
Kf7cRa3rKN2qoZZiSvaWvHU6MmlXyHJfWD1mQ5xdVBSL4tfsTaPceu55veT8rk/VQxoujmYTCWy2
7du9Xoawus/qnEZYnMaW5Cm3uhOGaLLscglOAMx/cXu7qzyqxP73bmqWvUfCqbUD060ZKl6gYvL2
Nqc8H5/YlcWGQLSqeLeLX7M3jZ0l4F7a4pNdjDBrJkGjHZAFi9DZ9YM/pfJ7fCIYJVdh/bXrk9wo
FXaw2UVAJ5g9gNWHrWLzEgzM7ArFgI5lWjOqwG79CKjNiRQOrUm7QlHZEnFSH8XBGdRR/TmGKQSx
ewQmFZiMa4lt8N6vojjAxmYuMbfU9OGZ1CmB2dyPkhKU7WvBW14LbnMi5Wb43LIHUpgS8VR9M4TN
iWw3g/h2N8OUlcilvfSEaLVO0vy9vtdZ4V90gim8lWHlpZNtphkuK87L32zATdZIkwaCljb3b8vn
ubJ7hqakR24gaGVzItvN6JUS2YuYdm6rgyDUEZx24iG0kex/A6cgitJn55Ojcc7n4SKKG1pcIxKA
O6TlSIV8C8PXmrLKCfPk9SndJsk9dEX5lw2IXju8sOkyeKiVy6FHh1M+OPFWDO621vapP1bubxbm
zmOArbk/1Dtz8wFsYH3pyh+c6TMonykGRMwRVaLbAVu7/8YIlII5+L5F9dOMROyTlqV3J7Y/TT6G
sQPvHu150b6RVmvuXwy8G/STgXu2bIne3cw8CjetsHeCcMeiNvgwRmGC0A/HGk+j1cvoiGyjmI/m
G7r+fxV8DJ1PD+kruAF3e7ME1nmAIFRN7KnJagFqcH8GoY9ti3haYrk1Q7gR3YmdDmkB3If52/xT
rbvRhDErtHGsDwzWyxN+7VKYjoTrwrrKYeYTch0X6nWcxOFrw82Rnk0RYwZShmlQNZq03cslh70x
K9dmOBzetjlnvwNsntbuTuqk1fO45GEjXeNMKo1yd2pdrRmeBG2EXVihPK8hkgnzc9sZxB2T0tpY
ckeksM+wj5I3Ps3tz/PENLfEt9XUC4aShcvF6yoRVsH+ao0p/YkUnTMVC6AINE1BpTIDURNOEHXR
u3ZRxQYWVackVGlQGuqJgPuOqvXZNxb9MVnV8Rloqeq2bJzS1pxA5qbv5TxZBWZZRV2EYKGDh2lq
YxtCNS6DjScjrvcwOF8AooDJ1otL9lvtqMVe5sx2DEmKSwuuIyaCz2nLZpXjC66q1mQQXFUDRyEw
uTs2QTmzKJ3V0k00RfstkRfbGpPrNMLGlNqm3apGJSBaHW3RAUkgpPxTSQFxGY+AFJaIiBqoiAMV
+aMZUliJe4wFKMzg9rlFgxdn9KpZNX29iXXmSxQvo7r1i0Ukil5fiv8IoHuvWwDTctYvA/Mo6Sw2
cQF6uXtxjI4Y2t2eRTqqTa87USnZst9vB/0gf0jD0MmjVZi9NDMFa4LIaZSDgRHhj8acfkTNdtVY
p1sGuPdD4Q1Kgse61Xh8yBy8Rnu4NuU7BvWbuQhe5kuL9HOwAQbaKUkG2ZWBhOCdUy5uIiaS07HO
b7VZ5tF6GWo98EjLNR9T9eU1BWPb34hKr98bKvDfxnUl0a1M3KNNfz3EoOSeGM/KOd6Q1JOYD2eT
Je5ooqSHmkHCQdvwL6iwEuWPlJuXp0G01PUbyWoFe2aOi0pgqaLNBtCmvHWNNhLEcwRkL/qXFSjZ
Rett+K/welURvF6tgNx/OQDQfqX/wlf5HSlefZekNUhDUIldJVw5WlbLC8szg1pjP4yhdPLkMUzT
yCzsfAJ/YtjIXBqul8+GyLEEtWk8qxztG2Rt2MvlqLpEurkkzlpuUR3XKRzSZRwp7BwfZcIiU907
0e4apsSqMWVne5g/Nl1xgrU2jFi6rmxghKSmBVFPWLkojNqihEERA80DyYk/YeMlwmz7Yg0QpiOu
hhoh/YtFi5gWyLTZx73I1tk9O4gnfEsc86pQEcy62n5D1ajwfdSaqbJvy47XblA0M3yv8RDeLtJk
9c1DkH4DlsN/uJ+E9zd4YPrhs6M2AiEcizVGoN+ewVtDEFYI70pIdwtAW63q+IO7n6U7JF8GXg/X
osb8CWWc2rGBzIk7qGgrO5onk9SWoBtdACVPcWPWL9aDcGFrqdyOdue6lmST714g3c6UVSeIHTXT
J3ZuXy9UtTz8lCNHATmhZVRzzh3zhAJdxhq5SAs6LRodlngXJ8Nbs4fz2DYw0/ntu86KYebECSog
QfZgVpc92rKlWdfLCboHaCB54cOGLQL9qLiph6rkeGukVGCPYwtSn3tMDoNxWODTZIXIr+RRbuMA
BV7qJs7valEJuKuKULtTKXhHvUUSzkWwK7ZMWMUyoe5R4wQ/dwN45y+Oc7aZcnvrOCdDvnwiiJLD
xxQ+Zcsj1gdXvGUb8BN+4IdN/FFD3Cb3KRJL+Ii1ttsoyvca5M+cpqG8bp7o9gaCxpSBfah5ar2e
hT49Lsx/7rVzM14fb1C1c3s+cA3ibBGa8srBXvY9bsd+4easOjZKwgregL0ctFqSDp2IAYAOZ8sk
w2BiPE+ejKvjCBzR536XBv6+WwHDLw2lex6moHYRB9WWNcWw5ug+duUSoGK7oxxatLo/cnCEeBNJ
xqwHKS5Lkq4QsBAmY+AhHJNjqBqEh6QhXMwwBvVmlTxGocGBVNsF9DWqXpg8PYcnHORHl+Oveq+a
uz4xMgpx7fx0pXCk5vpX2S0m1XJ5W3cbGzNH3rRaQzLum7J0xADdbgZ3e/lCtc7kNn+IMmcdYBLd
Q7JZzp1p6ET3cZIiyu9DGDsr7DSDAiHYTU3r95qXvrmh6iDoBj8b2muIoXDOR1EwuSnP5fbz21v4
fygPNwX9TXUJoTWg9WF6zh1z1autW7axkqg99em16vYPFfZZ1n+RMTNUGwff5oyMVjxQJQdhLORF
DVQKK/zNyN7gFnXir8165p4W5GiYfqPS74ueNf7Xx/NaMi3p/aGvqxwgE6SsmsUE3zBNsQ9rQ/MG
TxDQLf1xr8eRVB4Nezco8HMUL6I4ykNsubyuqFMFzKlSxNa1aFathUR7hVpduPD/CBcD+xYZLwYb
1PV/ers4tXs8zON2yWFQ98fp8YhwvSvWJsUZiRSf7sjnf5B/A+d8YKxPUGKZdDzBRhFRmzhYLArD
aPrsaC+mRoYhDV6sYcHrW1xRV9rdZ88uy/OkXZbnu5ayR5xfqUs9o8YDJiWRnl2Nh9rdZkVcq9eV
NoRdeCsYNzXYumUrjUENuM/E6niiVXL0gOtrxf7UCVMo+RiZ+9gShPrj/Lwxfv7p/QlIM50nVwyr
S1xmyzBIawEo0Idc6Xc4P2sK0R4Pq+WR3oT0xnNvAm8oPxteWNYKz7XHURhAAHgrH4nqLxHM1i9p
mZ8/3KIJBoRdoS5C9Dg4c33V/1YfRE42+QO8/D3QDg+9+9gVdz4396AlrqcmlHsDsrLm6Zgbmnr0
mi/+eXkbt5+jgTGcx12Cli0rxSS4FjsHpHPyKCim7gXJQ3n0ksTJxMgssfwAK0E36bIoYTYmRwoE
+XZH5BYNAMBtA+79bujhPSruD3719jOH3FDh0r2Pj1RqYycxLsnQZ9YIqyDUWMS51u3JK/y8McTB
JDaVE2NNJk5aXZZKFdKwnOrEHLbMqpc06ZGeUKRnVlukWGfWSnVgly3SB7YVwOqyy6PVxs/DzqAo
Z9qaSYYkIG/iVexM61tAXEUuuwWK+ZemAupehc54aBAGQVBohvgL+6/X+69f5Ftv/ZD6mJVSgUK0
fhpS+QPJ28d70IOiVZA3dGYjLZGhztCACkJ3yk7hRtGqTSRFxpKtL8ZimW5vtBYRroy7luZQH7ud
s3gYhvNl8fruf/6psbEPT6gOt6o4u/jR+FJe7Gg8V1zr0UjvCm6N8C92NIKyqzwaGLJdvsW4RyO7
6KqV/PR1kiEw5+HeYJWWOcGWIMaEf0ndoSLjSuXh8f6GurC9cfbFp2UUf9zhPT49Pb19Ym+T9P6W
+L5/qz8tER1LraJABIXvwyYj8r97W35cDANvBDloGtNNHv6Ipfn6T3yBjbLhI13DnsEcvv4QPAZb
TeOrQkEhn8FvTEOsIHEzeBnG8zvYNHy5iJbLu0Uahr+HLyPeBtu6I1gP+/ZVnOTR4vldEod35NV8
s1p/uwzRqfb18/twGc5gP+7KSdbARDGyzoQcVtjXTEgTiWARKh1SpTnuRtC2s68uTJImlXamTzHE
F1sk0v/9Por/qUnn7vU8yIMvsLj3Fr/xt6AE0ntdfGWntBY/6L9Ub7SFWEZCXtZrUW2i2XnzyzTU
ZB3Gu2J/hCUsc9KxfjTIMtilBvxgUnPEX8KBIipl0ReZA/UvSxPt0mbHdKVRdfFTUL5rTXsx6I6K
XpgvuOzCE2CXpwFPqgvSgFLuhY+gTbkIqXpTNXhqkO6PvXvPeQqi3JmGiyQNnWmyiedB+mxYvWSC
4QuXtuvRNSYzlO6lmeGFd8DnA0WU4KUDmjNaLNNnrHpwptG9MKfG+TCyGlz/fakDx+L51dqojEgE
HPaHFIHHuzBzIhgx3T518Sl0ybpaRdnsdhlkubNK5tEiQqCCIM2amp7CSXcKWR47aXh3sYzuH3IH
+0qacHLRmcrP29+ffv7lHz/9+P6MCObeHAzihWMCzJgB1FPDS37JMMIRZvDKFA5/fTPlN2Lx+rNK
k68HoK0wv8MvH1jctQw/gTnUHhuW0nb1PbAH6yTOwl//9b0RIUe6vCX8v2rEzN6/U/rqghEa3v2Q
xDf0GzBPKXG+C6cODOfBTy4W17kMHhiDH//+wy/VgAJQAKFjTog5PwTpOfPppPGcs0Hw8GPyiC/b
T4ozOcKkfgFamgfPvSamfEu75auWUxJdXDlnUThM6ByK4qSDHMd+sdlmBuIxvj8QihwREidC9OGb
uz9+mGFQ/HF/4rcq0e68g3Anz+URakhD8KBycA+PtNLYp3/DU72fTHTTotrJq2WCCWxFFNvE8oXA
5r6DKpJN2/cC56puDZsgPGl1EpSaZiH5GJQEtFCiPXUgp3rb8bIaiXTJPz/ZjqqZgJwC2dDY3hJ7
i7UDLekYLDJ3kkC0BN5V/Y/ij9guzolm2O9K2/tNveMkQ5Y6lAWQYRkJ2HhRgWCodTJd8+5Qs+NZ
ipa9G03r3FO+wZrEOv4P6/sarqfETGbJxuJD2YcoM9cU8JaNM9UAeLpdhGInWqFdwurFSMCgdCLp
kcbnik6YcvsOgBsVzMq8yebWtUKoCZNub+LDQvlNaszfUYjMya/KztvRa4Od5y2O2HnZQ7TI/x/+
wkljT9EuLuzDc9SN17DesKwwfAhBYNTpnzAfOwwNd8FLFFacQuk7cVxiPF501EjRm4JOrLgO5+iT
Ceui2hzub9H6cQ1XxVxFyfrfjQBbSG602mhMq/MmgsixhY+55lD34OnKzFZB9rFsqoZKsdmVCaZb
N9WhsonFODpmAbc5SbdDGvxKWtqRdg19RcXuCh6je00Ytxlo9A5KAST99a5znH67YAqm5Fzh45LB
hlZsxBM1HqaQIGzP1GLaaI1VTlurYANOx11CxuU91OxExY4ocij6Pd4FEDg68y7tr2zemsNkn8dg
Gc1LJNo7ahRzZ2c/ww9rePoHpi09JxvkaiEmHyH6HzytgL/BXmK6UzyHxziBh/8OHoP32+yVYtzP
9FfCuHjCR1gxPP381fv33757i0OuDVgfgk+E6w6VF9S0l8zcXR14WJcYWEFmYY6ohws48we0tYJn
B8cC0fbbJjFnWkvSMSepwjRLqeMUpOHMgTbM65vwAfKr5+Ei2Cxzp8RMcLBNgzMH626aBKkZkI6K
Hso0POhD29cTjCV0fssOZ5VB4O4sQ6DlaZg/pMnsY6Xld+Ev8ybc63pQuy6f2Wa6inJzNhwswKNX
yHXYKa7D/ixch3PFO0jVyl1E34ej9x1LTfdvZL0uXvmg0BM1QDF+2dd170YahmMIRs/dkSU4N2P+
oQbqD8B78gIbuyjRNLtafE9ii/COtzVOnEPfthH1m7dEt2/r8NAUgy5NU4aOB8a1N4Kz3hBWGToX
6sS6iN/KpPTOIQqjeeKzlhaQZySJ2NnkC69keQ52XjNmUiFqdv/1vOxesTKwCBoXJiWoq62SJ0wL
S6Yf0LFdIFdoGft4D0bIMniGMbPo99CJw3tgYYUNrS9brRG8p6uir1By8VOSi/9JJBcoDq0cJCdu
UTL7PsF9+a4R35ejU5TxIQn8YFAHc92NtYHYA8/vcH139PIUTu8RJHUFdAJPwXz7ujQMCyzhsmv8
Sw8P42QoWOCM8iF2fKNBj8rm9JlZsWWSgNWveix+z0c1Ldd6sEiDg4NSTltii3ltIXt2qpFBNxFi
4rutFITje1oAe2wh53VdgDkc40v0Z7IO62uNLfsS3a8kOwL5CDLxCB+doM30iwDMgg5MUFkepM2U
1OXyNhOS1nbh3fRZAz/9381336TR7KGqz4C6S4kab5NLqOUi3/N4yz0MS4OstLvnos/Siyob3fAp
c3RtodMcX/JaN10a/oy5lHyQfX0IMudg2U0d6Cill1ipJJS7Ax+pbuHXdKBnssehDlQSl48gCMxR
ebychNmlH8bUYMeocwFM8TqscxP+iAd488698b+7eUcQlRFef/2tfqT6Uey9/5V+rDY25HDSivEO
PKqA0SkaWhWTK34ou0gWT9PNYgGm2qoB5ksxdBf2uk5dGIfPr/tAZDs05hOkifaxbhqYJ+ZMAT6h
6sp3gitGhtoJXfz908IMDKkwXbs/oy06My6jLMcerc69ORLMdLu64bnCtheiwelIBAzLqDvQCkHj
aSi1oNhzkrn9LeHwE0YJse+jcRhG0PmnBtzD38M0cZZFM83DJMECMpZTOcCi8jRA5whQZI5HZSIP
TwGPksSW0acmhPAhZCEYWrrlzO7kHDCno+ZGRa6LvLj/pcN0KLjfusLJaGRyhFIaxtLarvHIstCk
ZUMaWsdruZYJWDuGYi7foxefg5Ku3TlQQz1lJVFrGsxRHlxiJh6/+G5IbvlEmKnU27/4HKSS/Rke
6FbrMM2j8LRpLpgPjN3y+fP6uqvFLJZug2Em7ZpxjTsHOZBDF11PmyxPVluSeG7Q+0Cu96f9IuiK
2XLOLIhn4VJLv2mDD4G6HMXskNd+bwJ5Us7BbN6pCfP5CBetyWEiYETi2T9UOdChbmK9q/owm4s1
iO7eO+j9OfwAFbdiKsZj5bJly7L2x9rkQBEY7FL978y/ubva5raNJP1X+EVOna8oz/uLU/7gxPYl
db51KnFuP25BJCgxSxI8ErSk/fU3PaAoihiQA2AwgLfKdhTKVk/39PR093Q/DYMKpsnq1vj4u+0h
UHK6b1J79or7pSS8dMgXXFuFHIFB/SrmVfWL8fjDx7/9+vEDID3Nb1fjQ533XYXiCo6CvXlcID9O
8jyZ/NM9CAICLIJDKNX7xeL3fZ3wL9VKRTj1BZb3PbCYcOy2DWBzeUf7CiUkrkocAI3lQU7pS2k6
hYkVFCLTzrUIYuZzWoQZcE27E/WqIsRkmte2Fy5x3xVvaUVjZQVCILGjGDSJIW3g97zEOa9dgfDL
x/cfPPpK/7FM87ts+txaeta27v82/OVX+4Go+EU7C7Zjnmq+oFxY6ku6JXvOJRqkYEh5mljNTFo7
uYiahimWXOgLuVBYKQqZsjkrFuo50i2+WGR5LjalMdWlVWbgnIXbpLPxM+6ss0ABI8/2vsu21rbn
/1YB8y5REHdkPnsGfdrOYX4Icj5jQ9M1o2F125GjZyO/uuq2VCjC3ajIyng+eQIoedPfzsQLEjpW
ZPsS1/lqln1ZGUq3huftx28Vw+qKcBPJrl0AB/dnvQHo/vOSgr4gBVt+e1fpcGptttwrm67rb/k6
ye/O+Xl+/eKXOMzTTWJcvG+AkV4xcAJLyGR44efoNrv8xPAF1xpw21lHIocn8Um2qHStvXC72glh
v4TzQhDEbD/vRghnQBfgAcsLp7qu1pWzEERpjKgYCaVp55pXsHw+MSA9jXsDiW/TZDNxpkUkgXQe
6pr/YgHn+fdt8fXgf1+Y+/enkpzEeeA43C2svbbB1kIhZl4U/4xhwHBFrg233OPjQcarbALUvs2N
ni+dp8lEz7gBtb+2BTbDyzlld8lmBcgGf21LXaWSkNLEsvaUNqlNtZfo2fJlSuoxdiFnuVcYV6G2
uZqkV7zioZfTdDZfpef8K2Kc1RHRIvSBfEn57EEE8DvPVMelc3Gb7fKKOhNz9HB79+I45gBihw9s
DGjf3hzlCScdLLttuumctpWsLM147YT2fPt+B51E+dyY33RaXoU4mWBZ/JCI6zgUaahBrEOdNAn0
syuatD9z+xSIuYArsGCkUsIz0PcwaMXTYVUQASk3gngopiqmqSMqg1jLgheAnFknG7hZK2MjBs5j
x1w1cspqUfCb5+ahBLdp/sf//teHp2a26vo0gbRnMubCxX2WMaw4CaIQ6XJtrsrtt1tHso6pkaoZ
qDTghLfyzKu3qGj7dcPeac/Zj20YI4rxGFvkBxJ8xMmfNRnxxEPy3CE7q6sYP50tTRixj2Cn2bKo
WnCjipkbTLFu2SRMqY4paJ9MOzoR5N0c5u4dK4SF7bLNeU6YN4qQ+Wk1b78PHz9//Pqx5tH1QwP2
UAzYc6MYC3twbXtyYWCr2ys4oZ6thu14JIyEMbR7hixzaTG5zskX88SJbccWRaGyf3u+thsAjp4n
buhURnBtf8z5zHTpticx8w41c9b1GaKY4a5lxmvG4X//709fvvz0/ve6ZDiLQUZSGoOMprwzRXt+
wnxbYGZcEfLp/a+f3wKIxnqdrqY/380XUwul8Z8wqDNdZt/Sw2fkP358gly4vsmmj9eGRrr55ev/
fH5nvmlhPAiyKGPvfphlYG5TmGvy9iZbTH+cZIts83aTTmEo6KcCBncP0jFf3XotYI/gYWj9+OYU
tpwzbMLyelHFHx/f//7zL3WNdk1D0IQI9pv9WqUEsM0lADY8UjrCyrVUwYJwQGDYjCeJG8iTSGK7
4zoO87jGHXvzlOFQF+aqwOfZ46FM7qBs1t3cTIO9le1vaW/a2IZI9W6GD9mved20hsRdawYOlAB4
NstHMMvummqowhW66/CSsk7uoIK7Ak/KeaJhCgftWjOQ0oFizoKMX1CBTdjkWfrqp5NO7WC09suO
pVEqekZihDXpOkknZccUsOCBMkDLudldi9SaPphv5+k42drY0g3+4dug34Y3JUjXCTQtus7RUazD
VA9sjfP4vEtFEeMyf2e8ysW8eEW/Ip/+2marUtmI52TtxkuA2eOG9gSQCMfLZDWfASjkac5hxHjn
mV2GWAxGt9vSkFDjhOqI23y4UMsoaQyReAtJ8mx5RX56cDRHmbVElMhmu3Wvg4w4jqH96WTp3hIG
E2lwhBVUKgWsQLGoKzC0S9NVPSfghVwEKS+CMhl5EdSxCB1lO9zaYEwEiSGD9SIpVTgY/40Fyv+c
J16aBWIsUgztW8y/pVWHkAvc8SOJErTrhx7e8YsZ5TUfgBul8JUMVDMNyM/bu2Sa3Sc3CxserXNb
QeX3EiNJ7VR4I35xE6vnDJokkt0/HHGEOs7dY10zNGvwPEB4oCe+JxTu6qcvwYQnsk8rjjBXEZ4I
sN8w6NYvEZR6kGGoLRmidS0yTdLSSPuEeN8DEcKEqkWk8tRs0tvdAgA5atpkbdwFrhoC5h/nBgEn
HvBeNhCk2IFh5alZAlKCCCvqU0J8yrXTQHtVL5z+pJMdeh5/Zi63bLc4g+GiiDbeFW5N8gjc5Jn4
GSw/pGFWSX2y9ccaXD848WNMPMNJGE3dwnCh7MHQrq6Nsy1QPg1Xl7Y2vV/MV/CccQR9O68AwZMj
L3jsSh6dpean3J5vNAJ0Cs4DqtdFPEoCbYUUk9g0sfIpJ/DSp8fV5G6TrQBPZpZtlu5GTYAf1EE2
d/5cGutDGiAIvMpXL6nybrE4gGmdhltCjASpZ1Mv9IAUM5vc5LAcKaVac5StCniltKrfVZowst2R
rFKTZ9wsYxmOHuyqcLGRMYAE4WAsr/etvkWLlDEJm/nNLk8rYEjh1lQiGPHDhFRz21RhnzI7wZQ3
kH2jfikqdZhd3gNamT/Th33fnXsAgdlPpoLSLHppoRDHeYUL6YclW5fi3oHI3N1LUowY40GpZuv0
9Mxceui2AVtg5h3LqJxczmV40kVbhPPsIOU3/72eJ1Emfr4pH5ItgTTcGJJx+mBsxSoxX6xy822n
n2ishh8cnhfR7WJ8mAn0hGriGgJuMTRoIHEvxjs7L8tBeVsuwWV+rYGnlMtoLQeUFjDYb98UoCEA
xfRWIYRcS91HCy/lUdR1S0U62IKnv/ClGOvimsYOk3RC3dfHtF3EoDleso523bXZWPgVXPsyd3Kg
zqu4uTyUDMxs9QLKzNsZSXRwmi6IGNyaeMgTULK6joOg/BA62uiGSyWgr6JJXPOC1So0Aiw0bmZb
Ky5RIETcrqD2GyB/Sug5c2P7bPL5Mt08KdTYYh87yXFhftOgfFWM7/aD1jzD1stGohcMuifz2aK/
NgeygDK+Mx7OfTLP7fAScHLfXV9XR6oQXsC5eAX/5FO2eYdfwYPl18d1at8p3zw4YDJh0oggCsdZ
7NnIq3LdVWGZWTqVivYiZyi5qlyw6w2cFENdqE9XB8MX4tf9WIvKfAGHIUaiNaGj2XLFJHkAxNhk
i+JUj6fpCuYGOxJbMNvFzyZe4tRuUL0sgfDEIvOiDc/+e7Izo6nVGXFoEfB7jGtE1+64my42PhFB
ATd7vpoBWA0khrK1s2FSeqUMwtFTMi5/SvGo9ETk/RM+Ay8C0uNeVjocPcbjylNzHHf/RGT9ZJH1
U6rI+kni6qcWcenJuPpJdeT9I3Hti1Cio3u+CgMRCxve0o7IwqPQ08vwtqItUftBrobcVh75WMq4
ZpVGdmtY5GsKK6wiE1QosuGJ7Ehp/G99AjmNa2GYirx/IvLFj2hkRwpHtmiR9SXy/gkc6sY/gqJ1
A0b5Vn1dIgbp0WznV11BqCBhkjXwGGzRDcfZt3RT6UVJKvw6zS/Qu1BiHCB8udTKHmCr7PvlOH1I
Jvl4meSTu/nq1rlLULXAQxpKJ+kzZZAUcTvTqf4SylU4T5+YZZWrcKB6X3k+b/pTyrYOwGKCqfnN
ukvSJgtAPYPR30W7UiH0d69LTVKANIVx9IVcEfTa/Da/HCuSQsdfENIu4fCgd4zfUuDfXtH3V+QT
dJc9vcKaT+Ad1rFGr0E94fev7jK5Ht4yCxWEX0i7dVEI1Ycu1tYBTvvV0/v7e3LtpayiBy3wVVEU
/7TXO0LxlXFWTxElVr0pYh1Jsj7Pi48cgyYzai3Q5xSL+OLz2dWh3dZX9JNLeloMbJnEtUxJ6NCW
WbFSjvTQVkpdy8R8aMvkzoV6IcPGPUfmP04zjocm0Z8htHEdehnfNsEqDkv9/OXn959/+fLH1zP2
k/a8Ri8fLX7YPHaekfiyeu1SLNVHXIVKOs4lH2kW/2L74fUPzhQC6yHMIK/Nb9cWifhyeV1hhySJ
fwm9fmEznXkWRHtelY/pIaiXbay7TtmPuv3cYKmqBytqjFedZYJhkz2k2KDXuYFEBe45BkofkuV6
kV6v0tx5hngvknRJisaPGpwSIYOLBl/+eABbfCJgvq79gAPnnMrvi0mnxyf+/TdKBsh37+kW4Bfj
ySYzfO4/u03z6kF0XCG/SVPtWhcKUZ9868WaHQ+v0kKEaNS1cKpkwzgZEU6GKxscoiyyWjbwjnpO
c7Af+P/RAi5gf4RWnQAplUviqdad+q/NcaWDSGjpbAEWwsvowHRdxQZ5sBj0uWnUtWwq9QZzv6lh
PYmGUC84DdJQNBdMDmPmwtS16Mc9VNrrtbCVdKo1R4yI5vXJL9PpPCn+HBdiKf6n+Hr/0c1uNks3
4Cu5O3C19JvG0tfOIOlV++21M/d38zwFUYBrZ1bkrHzjBAr8aGuazwKBvv/8oYR4DJ3dAam4eJyv
x8l0Ch2htsDKWc+IqTmasiFS4FHD97fbCgxHLBlAYQntdXHU38gjl91dymhxBxoc72MsRDsTs2gu
LbCLimLRKu/Tr0HCRS+/m2+v9wNmp1m6vV5l+XX6AOf3dj47HetFYfi2iEaKdrOD8H13jzJHzNPh
8Ns790hv7ImHUZ+z5wOYbveYV7ubYkSWk2EJZ0XqEPzahvBsl1vI9fHtxJKHeuPJJtlWVbBizLW5
kELilU6z+6I53bJvUUSLee55apFfV+/IK/vpO1xO0hGAf0XYD5Gs3fY4t8OWn4pOaNvZhhVYJhIZ
lUS0qRoU8i6GJz6hiNpdH5MqLqnEDakd3UA16VJFPUFi60v3/DHDdk431p2w7HSAzSWLWD8SZg2u
Pgd2zO0mTVeEoweOrter2xcdGMzOhg5wTr4ZKz2fpoASYodt7TFhDceT1Nix6XibJ7mFUgUH924+
y/+aV9wcUJ7exJI2g6MUTY/POt3YEXkAPAnYooAKO57N08XUojW6i/zNdRzAIr7wUK1TDj0vYJvz
J4SWK/IJFnBFf5oYCWzT/Ip++PPrp7F6tf/r764UvRIc/uTKfi1P8RRreyhFfHGi+k45TZM8ORZW
OYTg5uRhrH0mulyQlo3hbhbZzZOkinFwlTEvYQww2HBXhHPbgVzSR0zAnWlsa9bZYj55hGs6vYWT
NjFhkjl2+f184tZFgIPXuMP48STZX5qYw2GQIGptWp9w7wv+sRMZVIgRI6o/XrFFHSeBeXXeHAQD
Pdorr1rofunXDAqC01e8X/paNbYikO/a3SznxnLt8jxbVQHpUS365ZH2LGNF+qPP+UiJvu0ZxQGc
A9C3AoB+Nd1PGB5Ps5XLI5AYolzUr9pJ1feVSWW8BRw/0L998+ZA962jLMeuDhHa+JLb42nmGUDQ
7cBzSlb/dGP0Y8jB8tbXaRVNN0Cb6MohrHJEsZZ0RESPCk8ZTH1H/S0AaU/ksUsqdUC5rQCPZ1Ka
8y175VRR3K+kkQp6pI5lfm4CEDPeBCW9si656nfrBetM9G7YjT7vUdA1rfulL3vccM5MiMR65R8j
QdqaVfsu8H+7LE+3ztFBfMRVz1xiqnq+PVlAm7rN0zVxUKLSnGc6VLfQKDvTYYVAXfqG1UhQGZYQ
cxFCyhOe9Dwh87Pc3i085KEwzuYLP/Mw8qLq/dCvfC5I2p2iltbHDV5FA54289FukbsONhMjwZtr
2gzA9d1Q1wBrrkkAHgoaZ3jA2rPf44LNKEYAHuuZI3QnzDjYFDV35GeGkbvDoEEHO8Rc6Up09vOJ
ZiNJdMufv0zzpLg199Mq3Yl54VnX4yK1H5HF3bbFTsCQNNKuU1tSg9q/Tx8x9XJruC1RHCkkw5tL
Z5SoPcdRn9ubAsTNvgenD+lkl9uhpdlmWmETsMRGv9sbhYJusQjH85Mw1rNB4X/oiR7XyHOmB9JN
miiCD8Yorbd6NAZSTcDQmk0hOYtReGb1VRCGsHyOcaz7gptLFmkd5lRbi3uT7VbTZPPodrkYr10G
0Zw7IUZccB2iDsCYEaigqX7LRoB6KUMWxT4RPXxkIwL7EX5ReoiN5oyEfqnyu226wTHoW+7VSJ6M
lu6K/jSdJcbTKi+AaR5H+MQh/JPcMTBPYtDf844RibMA406d2QAV7KBVlKQp8wXv7YidPknFPmKc
476PmOjtiPGTREDsI3ba3t0V/Urhc80CCD+ZPtoCwcldsrpN7WNw5RwqjqFLtEmq4p5O3nimKRQy
/sCICBWQyiZdA0tlnFwujAUJWhdoHdXs9lupFwCPpBTBN8xpFwnyndt6idg+ITPJNodWUEA7cM5C
1PWfTC+dhyryzmdioWLQHq+TrTMPUnJ42kncfAVjQZPF9hBJ/Pn7Z/djteZGk1FA7vcNaDvbfWDN
zxuzLnz0+YkEDj7ny6MEhyHuQop5MuZmZJ2Lg1wUBz9RyY7EQS6KQwZpmzuo5lFjuLsSkikY6NMg
iKw9NvjMAV4vHp2zg5lXjSBtvjBC3pSnGhJWn6jXDpxtlCUakOC9HhzpSXwdYysU5h2vTL5xDIDj
HW6FM/mLoZzIq6S/l13wqqx7XtmX377++uVvf4zq0SrGSzAvYOTAOy55VztuE7vTbHezcHpihFin
iHZrb+y+n/kHTXRCeBXtt1i0Y5u46HKb3PvDheeMGBr/ohIc97AHuKM9yDfz9bLq5Y0o4ompcIbd
bZqP83S5Hs/miyJ2hi9sov7lCsfnV/gPiK9225LtotSrOc7TeE2yafqOIvmqkc6clfBpeCTtWMnw
Rr7GIgoJKkICaJf/AoyQl8tkNX1XsaOYYjJsncOIhTPEkVWOcTEAldNqUCqnqB64xmHJgls5GkHl
KKgc0f2rnFB6WFYO8YHfrNgPsKSWlYulcnwIVk6iYamcRgPXONWBkSMRNK6YgM6GYOT4sO5ViYet
cZrS0CYulsIxpfpXOD2wW1V5ofX3aeJYvQV++Pj549ePQwkeqGpfd7m1AIrHxZeOgjfb1UqQHoSK
N7g1SwWuzjdCBXCiAg3qBEmphh581zzjPl4CjnCAYK2cNFWmZ7KHZsbK2mVtDirv/+RgRNmwYi6s
5cD9EUVC+yOxVJuRAaicVHhgUb5mQ4/yEe/AI4mmdUIOwdBhPjC1Q4NPLnH13T7bcD6wMFsMPX1N
KfteH0wEHdaVojUd+luFpt/tWwUf2G4rNfSEhibf6yMBHZoZ13zgJ1sq/t0m6Dkd1m5rPvBLW7V9
oOxxr4UcWuIBDb7AgH7HiWkuhxaAsYHXMGlMvtssKh1a+dDQC9YEDl+wFi9lPrAnxqGfbKXFd5zQ
o0O7uhFFg0+ldVQeXtFGJodbnc+8Oi5Z0Op84VXkwi6IP13lmwTAUpLVJF1Ut3tjxEH+MjhJNzGh
R0SHIDZLq0DeEGGePcrM89QXsDNPNJ1zRLngnEYmSbEOoSnLdHmTbsY3ydS2Pd9nm6kb64bhQIry
fDwctN9Msp1hfZbMF7tNAX16sKnW+JUNlsK4h1WVW4HxaYHJLMt6WgqRSA5DJhSjYSxEePmsERaC
vZC3IiyEnFSP9KeuWMjByGQgtkSIgUhEY9WnzXd6qdgsy+sJ8NKysnW6GqcrE5RUTf4E8DoiWEAR
wFS5XT4bK8e9jgGdlGkUmNz9fDXN7rdj8O0dVJUhilkI/6UIPJ4E6h6+SIkwbj9qXbjmX/mJJGtw
qo+LLqfgiY2TWQ4TzIHuNn9cpNu7NHVPj2bIE4KC+UCzTtOb3e34Jps+mmMz+eftBtAWHeDPYsRq
amorEEnO/ADg2eVtPBKnA+mWA9I7UwG20AlqZAe+49aMFDpyDgG2STTpktYLSm6lp0zH0gTDGVd+
g5PObM8qM0qQbdwzTCSAtrPWwjPh6TRbPpNyoM8b2Qkdi5JGtKnQDkZ9DFeY0YY8q0TtMk4N8Uxy
h9AHik1sKiVtLcQnOueG2xiLpyPxJSDMZwQFvyadN4i5JCmm7VlzToPbnnNADEkimuqlYWeRjmEq
bjKBy3I9P7btD5XjQ5sSTMrXEvXKqPtt0WxjTvE6W+/WbudQmYOFGl9MduxHloAOjJPVfJnk6bQY
U++cswqjK7wm9vJLrmEBWr0fQ5IZD3izydzZNKXMEfMqR+UhBldoHoK9p3muq9l8Nc8BcTNbu+c0
URmVnvRyMwLy5/XYFVKetBY9X4vlyoAaHwd5zXMOuH2cxKWHaWR6OjI9Efn4xZWnJnHNCzQ5RiXI
UVx7LXVc+6kZjmxgZGR7HffA85Duix31up3/K3X7z3LkB+XFq15vHSjPhdNHJTPOeRhbUrCSLtf5
4zjZbJLHm92sIk9BqADM7JA79q90k40X6eo2v3MjOXohBHLv3K/rnZ3Z0mkWUJjnwioTckONX3Cu
8oe8NKExlLofEyIOSspz4FstQtRNiODQhJibkCbhCZVVnJuYg7Hwm1SmJAgk2cPvkpsS56Epccc2
SRTKDO4p2awEZM0ggbB159ZhmJAOaHth4JQdifAMu18RCSPPWJ/XGSMA5Mv520DqX3C4XaeTebJ4
zsps3ZNW4MHv/7l71ua2bWX/ir44H+5cxsSTQO94cvNwTjJ10pwm7Wn7oR1aoi02FKmKlO301x8s
KDmyuKQgCmJ8zkxT24qDfWCx2F3sQwzm6kc+BadjduEo8qqF8wJacIxTiGvByyQCUoyUB8e0TGBM
B5gEQbtNIM0tQ+lxnG4IE1pKsRivgjAhifxQOYmrOLhJk9uO5iYCBiDsadD5opTsa5f7AhxK7ZvF
qBQxGDbzjaSICu2HRFDjbWmOyjkpsBvQVVFs3YN28IvR2JGWfshY5pPE+FHJxF5K7ZNYqDn40VDR
NohlED4cNEKIhxuwTBbm3jMeYvdw5lCBXxUORR2j0JfFh7RUNoumvvtu4myJGy6cCccJap2u8K77
XGpPENoGOTEqiKFGeGHcBAYrLYpleT+WGE1OJ0YyvAZ965fGNUzs8VTb91ovVK6+raGtxszfTlPD
63k8tnNx76Wm+Tpt9IvnW8+SfmdNxRolhH49ElwLOThcEoJF6tmScgWspdbfBjCThwcOynQ2hzff
zSKTSZKn5gZLbozOLbvH17AQrA8fx9oJj5bRBJDbvt85P2hCiuzhR+bxTXodV2mRn4LrkZZVOkbV
lubEse6pHQJS82Tsq0VipyQv58acTIzqTCG75UtgNMos2MAJyXZhBMxM9VhwWtfwk4ERui4ggQ+9
ayLpOOBtL3wwLB5erXUElvZ54z+yvPCQDsEOYxzmSdB9pBiT8PWwQ7u8tIlMwTy+TqbpJAmmxsLP
IJOvihdGPQGvKG7CQZGW5J64sYXFBnQwCdZo4oqS7e0o7sJjUljQeM2Ra3RDHngzdAwPMo6jU0Xe
gSjg9qeGkNxxoM8XxfUC8n/a4RvrwOy30H6yVm1iU73X8+yZLVjN4oWdR1unPj29Tq+ezNJZAgl4
Z/bXT+Ej+CeV+fhsezyyVFIQZo6HlMaS2YtLOyyomlMlPGZu88lYUs+sKb0dYmBKyRDmJXOnoI0n
XJqDQkMI5yjOw/0Ozm57Zi9EjEtonHjlQXZnhtvBeLrMP38dkxpUyV3Vavs4dStU+2XkBcnd3Nwg
Ca6ojGcqnPL9d0KtgcH5jCtozItGs5h27J2teh3Lp09P43E6YV9pnufX2ycTPmo9mYxwFhkBoMa0
djH69C62zOLyM/6gyxwnlLeCmK+slPa6ZQ4pqrIvkC1+PwQXEBSgko6pnt0AG5UkgAEx+9yYXK1G
IuzNxeXlLK0CKDQycrusroi8xNO1jRXFInUwWeNpMv4cGPVgLLh5bKwIWzH219nJOT1R/OQ5PTkX
J+rViSKNueN0pJ1yIh3pzNrpFNG3pdMtpuBEJ6OXLaHFiDoOIT8moYL7IzRrJ5Q5pf4fk1Cnt/YO
Qm0cZscRhbif2k9yavvFhVKEKBFFHonKWolyC4j4Iiok3ohqP3xGcVOnVxJPVEnGPVKVtVPlVsHh
a694b6pu1ubaJMniL8ZShGzEIE+uiyq1zi5+t7s2XNG9jDdrKe1rr0VSjSQXoVP6hz4sxIFvO5RZ
K3kQdJcIB2692yi0A+zQ8ZUnAaLL0vx9S4P30CwaeTAojQSCHDy06OrsQ6McQsKFcpA04730ke5O
l4gZx9wpARcFvsHK2WUymRgYBh+MRpc0oh30WXO8WFZZepOUwfU4uE2rqfk5GC/ictrWGIAIDXZz
T+jgv0J/H0PoFH8VgfQIeTD7HsBpSIkeqSjsCwQUySK4Kdc+GuqeRZG5efnBQYANkd8IB2DxDxKa
2zfSzGUK8TZZ25EHyAVcFf3nSXVbLD53VMrBMxajDqQK2vYIvgZSprNlFlcGEFiH8Iy33dqtFbUn
674ZE7NFRZ6b89lQPzR0sYUENndrmY9jc7HGl1myqj83wjVP4hYlEElipDj61jyZx9X07HSryyuD
wKFLveG3wU0x+lhRi1xeAL7RjlKXigVUtC+3YyLmj9Nkjm8kH4I/3k14xGwL6eNlm0s5JCq7HJHd
yOXVCl3tT2y1kPVcLUJWk9Hj3QVC+1KqMUr7yJtdbYzpI9Z3tQmyGov6rpb40pV2tStstd67cI2u
9mgVktPIW5TQKSZuoi/bUmQ1Lvuu9hlbjfW1OjNsNd1XeGeYgPC+q+WouOn/QgOpQCWk75U1x/im
+krIX9hqEe+52gJbTfa9TktU3vqerArbhd7KcqP0ruHZodkFRoCU6gttiV5pj/as6N7CfYsqrL6r
3aHi2He1L16F+2+MUtVXxRDsSmPy0SpTRvvaPBRVCn33lHmVEIFad31Vs0RVc1++hZi8iccbjwhl
X8NCoWeh7y7cYD6derRemHbJhHYO43BGHm08Qvn06AQNffpgvV0T1JkIw8d70XOf1j8PfdrEkXos
Twpt7wkHBK6wIAfnkcewRH+PGAskqN4XPuatR70vhz/RK1r79NY58emtc5/eOiehRx/WqUuPu9fZ
+yygXiclHkPCXEmPQdz+0SGN4tZjNeTBdlmudFj7yCNFYLKB7P0ECu/dm34y2nKZCcf0hx0kLedQ
DZ1MAvMXDzoU4xUjmkZutew4bYtsR34g1BeMmFAHxxtsb4geiZBCjFTvSPMmfVkHfST6lvSJPrK5
h9xABYtNDIPkkNM7pOgJHu17x5S+MrktdZFpBe3s9DdlspAe6Ms66FP8m9LXJxWljxDV2YXlzfXv
v3+4+Onj778jAgW9GJk8PJtpGufXwcoMhfRKrPcSDwntHV64SSdJYfNUzQ1yWHYYdWs442ML4vk8
S8erFMwinrfvBINrm/eO5dwml1U6g3qcB6WE0KgG6prRWhamzAWvDg9Q74B9P+2S9B/X7gkDimOg
9LExwIuHGXQr7WPN9xHFq6I4vYwXHbpAgET0tr5aOLA5aRMZ33406buHizKeQKvCHmet2VBv/YnZ
jGZjHEpFpMx9Sr1CKkqkBw+FrN6QH7x5edExE5YYK/boxvO9xBpT/fTF8x87JZZTxg7XmdBmoFNQ
pYw8CuoDcGhyptlLrg8mC2Bny7ZyB8mgZQAdTPv8YbSP0UB/d+ynhlikFIOhFLigxKJIycFQWqPi
hJmQcrj9O4nOnXaQij5hwr5IUeLEKR1FYkCkuBNSkhA9HFLi3E3aJRlSpl44yRShfEikXjkhxQkf
cPuil05IicGuZyvowgkpGYZqQKSinUgx6E2gyXCm94kM3bYvGlIlUOaGFB/QSTmh0mn7JO3zbNkT
qf9x01La6TpmnuKD6CQKyPFx8myYrwDTPL9GsNDSyRnxgUV+E2fppOEPGRwUHwgHK7eOJ9zN5vaE
lHC7XxUJh0TK7X6NNGEH+0D3vWqwXnbG2VCQChQS4tLLS7BuUGXWMltHDyiFyo23wom3zNGjBdLR
dkgU/IH9AfWKs7ilijMPcRanPBJfG6qdzHZFmDhYgqvb4j4wgTfmlH143Gz3aJ9LlosMGlq1CtVD
bLbEax1ApB6luBPgOjBDVW8+p1kW2E7y68yeRVItF3lpe8nXXTnbg0IiJG7DR3aQe99xsyoCEMjA
bEOL2iLDSTl76WT0hW5GH859O5R5UkBCVYFOjRUCauLpYQBg6nNQTc3/bhcpPrFGCuZY4uWLu+cu
3DWeYzicvfT/TmqNCzGgFNKXbrpWDcinE/bCLcKlnJ5uUMkFQa0nKsNs9PbkGRFKt2Zb3mh/7haz
0uGASAm3SIzRonJA0aVOR1z0kpID3hsdoqBsKH/VStRrtyMeRkPefm4OUejUsnMXUjfwUmobgwSX
X4K76Wr+RGJ7TE/icnpZxAu8HRPjyq0b/w4cHvRJssPWmj2EKGducy52wFrO6zyR3KYd3vfHte1x
g7iqFunlssJz9uxkOSr3c5QOmD9DRlpS7o9i+8USijbkpeHexuxBY8Hd2i/vRdx+uwkj2diAu0mI
YtovxeA9rIjdkUsrGZxVOdz2Ekq5i3ri/altbVInGR8xp3A+90RsyJyyCHlHR76xAVOa5YLLuEzx
CSxcj9x0/gFMhQ77a48UT12moClcmta6kWt7ANbNycq2cQYRgwtgwP0kIvIK7jqptufREfCqqQr9
bqdtodih5aF9I9HDcVJHTg3euGuzSBg2O8+e2e9/+vHi7Ksg4VnikbGTIs39MflhR/2WDnN8WCaT
0C11zolEh3kThMEQnD3V+6EK1qks/4hyxCKuvMnROuRnC/dW+rdYTPDhscQIkzFVeih+x4A54RpG
K3LiBUJHQqLye2ngdwXksYu9APkfqaH3NT9QWVmkG0l7EEpcxHVAMQw5nsOnHB0U7jrouwuFIG0d
QCSlOTAe1O7DwZPBQ3SwSeeQXfKN7xsm9XH3XqDBOGVsJBYOtPeiY+8jKkdcSF9HvX0UGxOu9YH9
eS1x6QZlRgfitew6Z+bEO7XEPoAFEQqYS8fKMKdN7rT+oUQnGkqyoy7JhgmYUh+V2woFDJealAOx
QHWwQMAkEX/OXz1jB991a5d40uU71HYEdRnKl6MCV9W4mCTo/EYPaqNr7zT+kmksaMkHEh/ddYLA
Lgi9ic96jkGXEFEPhHeQS8K2wVCUDcRxEnZyXDvGdbsxgZeBIq+L6vFXbHB6j2p7FdU0WcCwCNz0
kiPGtAclCa8zSW4OcGvNqKIjH8HNr+Q+AHmHJE4ZnXuccGYQl1AhHSjEj1Ha+N2kj1e4sacVjI6s
gssszj9beU0WrfOdJcwR9bODmx1zLj5+WPls59bRfvhTOS2W2SSYxdV4invf5sojHryqLazqB6hF
Ek++fLQtfWpEXqXlHFA5bwsvUamE+UYMhM/7otqJkjkQ0d4mWi2h+AXaIjNBnVSD5G4ys7Cm/nky
mViiL9KyslgU+Vp4cM3ADB+U9wOD3unMSIH2TnE9jQkQsJJQN5u6KhYBN/7+uqL+sph8QaPLBMpb
I4+KcdUppgH8oQRwa1pJzo7DjWliI3bb7EBTXEno+Ez9FY83589fNRDJi+r8Lm2qyRWpknontc5H
gCSEIJnNqy94aJvzflLnfM5bjzhlodtkM2fhsmQ+SMTAwGrj9nEfJ7oedmXzqlZEoiPwjLnG/e/u
IruCU/08y35cjeZ9YwS6Jd4cQiuIA4O1jV1ukF+P+0JPEbgrh5sB4Id9QMxF28qKSnOKvKtPoxou
08nEWOWzxKirSRkkd+Nk3lZ0TQi8x4XeLZ66I4rRITawAiPBbq6xwVxKwiXiM65QT6c3ZwoBx5Vy
TJY/SKzmxXw5x9v9RMbVl8eGn+QtvqhwzDc5aKvx+AYMedb6KPt8hz7CGPc30r5pXU9KNN/cJTCZ
uUzwWdORlzjLA/9sFx6ITWqYIDw8GTaAlyWUJ1ylWbJDu1AOj1E+34MmRVIaWUvANGnMphYjt5Su
/chdZlU6N6SCfYBSaUOSTPkGnBf3pkGW5NfVdKfxDwNDic84dV68rDG4sAhsuejCxv+JOdgqOiLx
1i5CH0HMGXfJfKdbkFdjCLdGpFo9hlaesDAMjb8rj8HYT0BcXKZlo1muCL2rr6/yUwfuVpGHv5NF
sRKxlr5Q5HCnEmZA3tf6tGeYCQpGga8bchMoGiWlEDMUHinryguABGLhUYguU9tTxxrTWDkplyQS
ME+CSHXMsOhONltWC8XY8MTLUETU4/52PQbzvXMEXc4sHNTaUawtejQWY1Shj/dgDHYNdZ2U3zKK
O+yXSNjK5t3vKsxtCnR/gsGoClIjXXmZVukNHvOnChJevHtxxY3hRTpJ7u28zbvQhoNwxxnaibLj
5jvufAPhOpT66AxZdVmw8bDWSbtcaKNy+dGR6fYGNFSpsMPutGWZLAzP8wpVdVSMpJNzJfYh0wa8
be9SNE5kjAK39uqilarNEtV4MimDqbHqi8WXIK2SGdqjkkbQdJnuBXXHSxShotGOtM6NZk41VweR
94wgBLqltey1l+ub8hNM+e722bgtquLHoxzV53IIoA1u12DVsbht9CX+gMZcHUbhaA2tL84/VlG/
+4YGi2Sefdl60V33KhBDIACBoatimU+2kiVrJCKnKKtw9qpwWHV0QDpORXKFtldKLlHQ6l+Tg+G7
FnE2InDGAteaH0vUf3l3sVOvGHddEt8IGPtk9W1tFkHkIG9LVoTEUEWHQMFYJ8uWdBjlmIDkKofz
RWokoAaNiR4TkEYhpXc1Zyu1DK0OBRtUyMgxM3zHxY3hcFMGsf0mLo2dZNOTruI0Wy5wKQDLhYvH
gopbOyZncya2uWlWMSyKrI601M4bKhpGMqI9b6I+CFhbEhhh5CWHGVPzLGnBh8mIHUtSrZOJCqiC
Z8/I541obJG6KBjyBoJJksU2a+CZuS8W1mA5E0/sp2cibPS1MAeGKRn55oOtYRgvjVk0u1cYqFsb
GveaUJ+X5UOgTS8G0if4Uei1LY6ushjPpeOQS0e8Q17mZXzV3Vbb/An7cbmjgRXg8N3paVaM42xq
Dt13KlRh+7bcPxej1plk7PEix7lP07ENlg1dkhGjh0vIRpj93myymgkPcEGSnfKpkDbD/M0UzwDq
VI9CI+7vQQ13n7ZFW+3D6uZAtq0ieTpvPomZLyRUuofts9GK6HYKT523cVq1ZORSY94L2hfIntRo
pyBzhM2HBtQR3csJNIdwSihGl51lVfE5yVOz+8GksLkAddyoQQKHooqQCKcBBizsZtbuRzu3ejR1
8J6IcLdnyb8LQ1dAFANEbINQ3hPOXZnBu9skMLZXS48OBo1yd08l3EnIFigomkQUDrF9P48ErWyc
UE6hy+jB0PKiXI6nkPoQV8aqbiR1GT3gMl6F8QNFm0SaDQFGaIcTZGznFhPAGsAwdagEbllDAJxz
6LNZ/3cVm1vD4lBu/rMkz+Onf86vn0CM/dN9c+cT+vrPeXL9xK72vDojnLGo/ul1sTiTYSOaqm1W
fxgyp5GWRyJkniOEwIdrOoRxArvoIESHxh4AQlToMqeWhJ4JmaTjZDcdRr2LLjqEkuamBDJE5JJQ
wOmhN0DoZGOQQ4+J2/MLPfw00v2FeAuM9TmTSZAV13b3ax/UXC3bz1Zw3ZiDo12yrcm2lWaTpuLF
pv15/1ntBufGD76Js7PwSTq7JmfXiyTJAwPyzvyxkmY+pmfxZS12YHwhSBIKhmSNKN/50if4d6T1
hNvO3Ktek/OslS0BlOKEO7fbgNo2X+L5fByPp8kpFBPM4jy9SsoWx5BYH1wcAAPy5KwhZjPlnq7B
NYLitubJAQ5pgbPBvzqo03SfjGwQsjPGBEC2zsc4zm/icvUlqGIQmcmqS9RkEd/Wqad4ro3RHNHO
N1cUJlBl/3/vvKfGi0GhQB0eIaHeH8x+fVFkD0KajcThx2m8yCF9sAFJ8wimuYak9zZtvKjWhzjI
zFUR2AAAkvnNImMtuUg4Q6HNjUuWzi1NRvSSsbH6qi9PQSreWqGofw3PRda2YZHqDfs2ubzOTleD
/cbGEswh2nlVLMwpG7d0pDAHSDGyP8h92tsoofcH0Ckni8T6Cg1oZucMPVx72b7m8pG5TkeU9tqh
h0qpPsjrWPT6QD+D4vgzc68+gaiU/R07pnth7KJiFsA0E7ijntQ//5FOzsgT+1t/rFY6my8vs3T8
vyc0nMV3gRE4uCnCxqVNtCCeiMAQfGYwi97/9v789euL9/qdoP+IGhZXNOJUP15G5gW0P18kTwwf
/2jlY9RPU+zBxouf3/8z/BS++vhCX7yVz2WTjUyr/3g28mNL48eXP7z9+dX7V6/f/fDh7YeLd002
CiEeNRvtB91s3N1F9VA2hm/+dfFOffh4weSnt/8QFwgbo/94NhISHVscf/lI9Y9vPpIXP1x8//Pr
nynCRy0fLx9nS3sx20zHuNp1uBk/Mje5ZhdvLl6+/fX9p+8/vXrxCeEm5f8l3NQ7s2gP5ea7X//1
k/qN/fLynfz5n+r8+X+YbCIWUFMkd4aqDmXib6+e/8rYhTh/86M539gB3x1iBhy4J5dG6R7QEGca
QgTrnzDnve7GPFJS7Q9uKzTwcF6ejQoQOdIi7MG2OhttkpbGSUnBb46rylA2g7Qgs3mXxd1pXK0D
9WX1JUvKaZJUZWD+CWwxmusPiWMRIb138YGvMS7LZrNu8GXY/uvbd+zNzJc6VtUIUcHbg+b9+XmV
ZlWygIo1m8ezioB01zVJ4+JS5UUWt+QFS60UDqmVKH3F59RCWML5/mtZQIDHps7VWTNlMkuN7srw
lEJFSE85fSAYq1g31PVcL2z2KHIkjJaSTBznSGxIEHo46tZazWdbLaHMqQffO1I0mjK3kWgYly1z
z4gQ1IN4d4OqU6cdaug6JG3jWqk/6YqpEJhIz8WRNCxVus/KM/NnvJw9nC9RT2ybGnnKWjIUFKST
6Og4AlxnQq8CYqt2+t0anTo0p0OQ6TWHkYbEK6TW+NvulmwHKwiM023qQRpGM3agjI2/lilDYVyM
bydUturj0G6MvWSRx9ke5gI3+kgfeydQvFo1NXeYO9rXADBaZm6+4NyQ8JzkUwjupnitnRBqRCLh
8aQhh8zcNuR4xwwi+FB5ahtcFHmnlBHb5p2wY4vZNk4dtgBTqt8+b7zhQaosvPDfN6N6Nmsd7k3M
OeNMHA/mHQZSMHkUiMbwNf5sXUmGAuZ9Lqx92Pt/42m8KJPqzLbDxBAgR+X1TvgqHILzu9AQ+khm
uJ0+m/y1TG923C/RyO1tnj/eyIwW3BMBbZGZ78WvL39Tir3+8MM7rc9/a0ZmIiqPrT03trRNcSoy
En2c/6PtZvO5QQl/9/e/qbuyJrdtbP1X9GK/0cZO8qHL1XbizK3MjHO9THLzppbY3YzZpCJKtnt+
/cUBqJUABYEgW12Vcno/WM6Gs3zHMolOWlWSDswRP1+/o+n1H+9/e/vxt+v//PzBEPAcyrIvirV0
mLv9RgxVN6enSbp4aTdFNfvqEKYRscu4lN5SsNm9VQSgHl+MFkaANjBzGEHEvS3cfP3wYEQOpZ5v
lCMD9vd6uswIenWX37abtnBKwqy/HaWUNoeIYKu/eWiBSFACfVA4GIm/FseBUE5Sv7e4hYIh1Ap3
kLDRPVL2pH4ZFhiNozY7X5oE+rs5HUh9nnzk0qHidMzLTRnNO0hRMrDd/vAn+/Dnp88/fb7+/OX3
P5Jf23ZbUHJR7rD+FY+aLaySlmTgA73+haD/+xf7x7/+TeJr9Mv/mhwhMpRTcJstpVg1QAX1apkv
FlnTowzxvWjzE9Pi+/TRXPbKXMYhXcKNb6qiWnecxHTgO+bJL19+vca/f/jy+cOviP5uuGMcD+34
WW67HVhLYG4fYQF090M1z28fd2p72w+9LIyPaZQ4tEAPdRA7j/iN+gn5I1ea71vRfUDSTZ4zy8fs
Ijx8NPQr86cvnz7859c0oZ///e5/fvnTVA87fB5XDbZRwYeG88w5AUHpJbJUi3cwInzga/tIPr99
++maXX+If/3ye2qohhLDPZRdbeI8u52uC3PvrMqBiQtSZM1iW5pMWp4kvhAB4F5lPWfYnNO5sfSp
marMvpnBPBXsMkUXxFJqqS2G4oB3fykMxZ/+Pqtoc2DR9/usjAAI6G4pf80ChOEw+HHUS7auv5WN
lU7R8L6bqy1FXsE9jdH0uoHJqmd5boYvYxMiUA8Ce8DVe6QM034AUh9dEA+bNVPsMPTX6hKof2Hg
XV7uilxNXXMA8hyzy5SNVqkRILkFfVXmtnh9BNFafCkaF5EeYtE4KZ3jLmHYNfEpczQIX6HQ14ro
a5Un0dIif/jJ5U8XeFmDL0nqL3rlLCui+XqpJrhoZEI7yDODySY+ue6DXvcuGccI8NdIekFCrg/f
GAHAoxT360HN1C/t27B8Xt5ngF0134pWdFxKJJdge8zELvPPAlaPs4QOJN5v2vId48vRnYEEedvV
BPeqxlNnlklcSRw7wB062Kld2aNkV6ORSkUfxaGnwergRlWqOZh6p3oBtvmXmABgAnuacyUoqMQa
J33AKGYshr0/rYBSr0L7Wnq41RJ0rB4M1wxbMg9GgIIL/NTGtoHqtESoKaQ1YzKa98FE6nfq+7ZO
xz+K6u4Ojr7d2ABwFJcVrdpdQsuxlmfSq6vOrEks8+ogD8J7Ko/txDiFevzj3gyyS1XiVPRgrA07
6fHpRkA/Lq/5Yqwd50GlSG/bKETcJ79nYZjNCsAebJw1q/Whanqut3o+GPOT35XVUkqLwRaZPWnI
pQ1XU2lOJRq5DgpBPJJlGj5e3fL+xwrccVccYwTvhjcECeKvOl6+DVBLSD4noc2zOoETY6JhLrYY
3rM9qdJbaEsCBk/0Y4b94Nk+KxjmJlIA4UwvReP5+KGn1ZDZdEGUhKbhpO5AFzUlaMbYKE2kMyHY
sNJna4JnXL5WUSj22sJyGzcPDsteKbUu0FN/COQgmz68oG9fENT8+Av605fP71sFe5TAGJILXbAe
oVRHMBOrvW6WDJQ416iLJ9r6cOIwvfqpDs5UmilPjOMkmAJYdI3+pRw7DJ98qtN5QYgSBfl/gzT4
lGMMsuzotqpupku5egPvD/9a2kiBzZTyVArBEGp2y1kWHYupmFCfajVnyhF+BbfRLtmnPvAO7mSJ
haxXp4A7WWYhy1BQ+72s7YOWCeXCL6XpwtQwmmznwcKAKJgJBE50XkpZW2tM1W59n6ixCkMLneNK
re5tAvmiXkpej0v6lk+j/Rq7g2hcDCm/GNEwPGkgaJwmLx1KmqDBaNqUjXTofNpo9sXge7X8mi3r
A3Fo4IlN+UVJknEehuQxHnKkv2HCppAWOw1msRtq++bM9DzCoFJ7BdPWK8s42Nhh1K7hL99mq9m9
ev6C0OlZWfktPKpKmMdsBV8mCFweFIg/5a5eSx9hvTiSPYagBku6VjEPBDP0mKlZbO3mpZQ7jKJ3
wk9wAXpOUBA8LRP0shWVGycQXk3pWIBNXh37nZtcSFOSLcsNuvRtXhSfwHiYGTSVjJOysXZLBR12
t1KrVF+zjv2ycfcbD3y7q/zBFmxJVdUeHm2rRAy1VWkoVmZhZRDK5mK0PdLh9lhZXs0pIo7OBg+i
jxDrMWlhv2qkQccDLKDDKjrTdHgK6h5LEonHRrtx05TnbMRUdBl5f/JgLReqDUyn8pWmRvojTlUl
Qa6WOpVk+W/2hO7FCcRgYzoeJ4e+W8lg5vAy5pDEdKoSCHSTHmKi5oEtcuhcvlFtBzmUi9zoV6Pp
ySEVmVvVN+8zN8TJQnL/gRPECYrHclZ7SR3DqUXWswPBTqk/XW3yoi3R22X1EM2nq6mtAgQjGjv2
l1vPUuGZPSzYwZ+WNzRJEA2ulY0sQTGFIY9Ow374aYQKw5gf+POchvnzreULGFCJwvzxNooDTydp
OrQ4UuTBQj44lGnS+5LbgBRt3AkiCBtAJnBKEsYAZivoadnxQaVMiBCkXOfmYETjPudWZisIKkFE
a11MV5WucwXqV9ITi0zVdy9n1cPDtJxf1avpcrfmaK9SrD0OmGCPZZqjU1m9H47WiZh1ubo6TjIC
Qgw/ArSQa8tLF9LnxHXUZYBbwXz8iiClOhSlQx8vaR8v99HQYXhPXmSL815KN/f+Sv8aMWAGqRFK
aOhzooZzOipo6M2F1m4enOJJ0k+T9rmVu8xJH2AywV5P5XMMmK47JokY+8Kl0RRYDGpvmr35uHs6
RN7GYtBRAMVtO1iGU+Hgl/BpG0YIJuX6qkLPqrXmRLjP0zkM78PsvqWbNcT0aHZWb4WwnQBqsEx4
IkQc2CexpQLYUQtvf3u7vumIRxEpagkL8eaRdv2d/uKr2V1uGNNKRHKpwsbxSLdLSU/r2SopAISZ
bGnBLJCPTAJhlEs4d9I6d+7zMILeCg27fzudg5IALWJszSGxNObpSBdLfIRojEN2G6XDuxpYugbp
kFT42ikoCSmmj40xWJdSgUQKUL+Ompb0nZkwl0Sk0Dw31g1TH8e3rSbvTqhJznzcuq3yV73DGiii
nH7L7+SjR76Apt/lOa/gixBwNRYMxMwvrBueh2lbUQh0oQujoxkOTsZyQLwycOdoZSK4X0AMNMQW
RRvGfalG0Hto61pVEVQ1LbYTq8xVKimFJeDgNrhU7QfGrkrVDBOH18GNv+4TlzMErMH17nbfYpr2
D2Oa7i+35hYIkswSe3uNs6JSpYPf7/Mii9TXbBUEGBJ2aTpwfgYN7e8QRAZjNM6e4vrdQFzOEVat
/qU1kF/Pp4VZT1DoH0fJ0NdFeyTsftwvI5UXUEASKmMG3yohW5fVM/kjZl4nRGBHdFGL2lCdVhCo
0l+I4F7zMvqrNpdzghsuhmNLGjo6tc8bnbHxBKGRciJejKLnYQJ3AHMcZ5N2XAPhl6o0pSgT5tg5
GiBLhrFPPs7nJg1heMHwOLQNoW3h40OeaRXicXbH2ruLxWAWCfs8uUNsS3Ir9/EVzn8MUopRaFdZ
GQhXdxkwL2Nfr0Vy50nQERxTV0APRyOfVbeWCXGpI9SO5dqkDgOjN5XKE05XWcGqLB4bM2j2K5ma
xTdgRL11yj7JZUx53D/doJaBzeeAA+eR4JYNPXkwxsrDIXjI69lB+c6DmnjbToDSRADyGCPDbyWZ
cDECmdRxkNzpbINv6InFABKAn0RG7EnwTaZM/R415sIFx3SMzAlDIh3vhiyNYFK0aMqejFEaED6a
BDQU6uNmsA3ECiwqnCPHzkw3SdxvCWvLI4Cscp8CKJ+YjvSgPGM6GpkgqhbyuqY31XoV3RTT8qsy
jk134cb7sITuuSN8gGWbW1Cn5gvGmDb09PnEGs8XUckl3vkf9S88oHVvoh3+M4ZwGAllqInNUHvl
KI1bMYaY5b2TMXxnEot4jKsn2KeT43ZdFLV8bmTl3odZkSl/fa/j0oo8K11Z6uc4a264z2EwyeNW
A8vXgYJT3trC7po5+TCREkzoGDeJ3Abh9b3JFIXRuye3Q2k6jn6nOA1oLxeA23HY0mwMnWIuX3Vk
THuZ8pHsJWN46CYRkoa7sWUmvdgScp5NJWwj7F0Q07CGQE0QJ88TJT4xv4CObRNDjoMFkrYnboKE
E/Kp00PDLJb5N3V3TdRdqm9bZzfAvHmZ2b06gk0kzNaHE0PTLQrzdMweFqvHDggKwry9q6agVgMR
3VTzxyYd2BGTokj1TMYjGIM0ifs87WaPy7wo8pm8I/OgDAqdbZiMY6V5oOfh/qYsPAEjL9xGNZ9H
T6VFzJiWyK+azEAwL+WLE4KvzegNEr34Cb1I37/4Cb9IEHz89mf1L1H/8r2vX6t/j6eoSZ0dEzwG
u3KfGk6HI+h9AnzCfZpgO5d2Oy0KsBy9FxdLs0oG5NU3+VXfJQ7C3puw3LmLi367/vTp+OWIJZuP
wuOYiMs+B+5T83NyFkQfLlfd2iyZUB//2MMENH5bH36od/ULaviGHXqLA0xOjAaW3/fybMmLd/L8
4xfvuPr47Yt32CCnXu65/yHHoboDTMcNYfp6lS0Mk7QxRfhpzjwiplPHY7J2P0GaZwBQ8bjFgTam
Q6F4G4nRClhQr/2smoJwOwwB1ODjPoKxC7pBZrduQm+7iBgguxjVA7xPEtE/KltWDTTlKQwZgbH0
99L+FDcxQFtmTmBHNOeQOxN8MIpR2Yy4bdXoToRXiPEgkqprATSj7jVdqZdmHTVD7jVzmUdPJq6D
1U5sfkOqc5gfTh0Hl50g1gwPbmgaPCrpmqc8HnFbFJFxtoURTkn4fWkuNeOcOUIOB9hckqbxoBJh
lgGoTUVhlKkavH6CW4gjVL7TgZoOkkku4ZiPoqvZyAeHQuWO14uFfClNIUB3ZhZZHm+cDnl/UnnF
nA9wrHYpTxJHMMMem0oE9bay2gmLoKXcmkYQKr8fwJBrYraZdkkIc2kjoT1xN1QdYSIBak754FLX
am9E15roal3ViJB39T9gyQawivPpn1N4nTiFpsSIpVc7UDgzBgklJOmz5EWlQjNQFvv14BN9VNb+
OJKm1HGM4o72bx8+SeI/Hgpw/Jpt7ht/VccChZpqOhlMsjGljuR/1Mkej3lPBUSNmloS4z2JM89K
LfmuqG6mRWPutmZvnhWZylzqed3Sx+uM2TCqZtle2okdFBVaDi3BHsx9fsCl3SlOWMKegLXJBLvB
vYe/KEewnRhykJgHUzl5WQIGSofeV14jG4MNjhtS0gQG5j2BiqMp1KvgJ+GDc4BnCA5nexpPytaA
lTi3CA5wF241x4EJc3hUOzULiq5+E9XRIp+c99OFPfhJ+ymdA1ECDIGyWuW30lBVZdYuXlYB7cTH
gm/zFXqixAZZNPuxkOTNs4/lKVLGg3iNHYVKLBnWL3UD5LMrA/t1NDjGAJF/PoWO9lsA6FT4g6X8
0rTI/2utniQIcsLxE0iYfAxhN8wU0b8wlg7l/i2zW7mO+24XkKmpLh433FWaW4PC7qrKhQCkU2F7
aD8qhZLn9KkIo1G9I7fJmoE3KkVWag0UQnRO1VLhlKWjehn9yJ20hS8bgb1Crb26FTMckd6oB1Wd
09S2Vmo2abSSsnmXAfrrjT1YKr0bgEsPcpeny1yJ29wOcbpgoztFaXQGYvm+cgNJsJzx/rTf1mnD
g3aalxb0OQ74wUPZgFW+sky+EdwRCKW3icMxJwNt71te59CdXeTlV3OuBHwk6mHfmtEL9/l8kUf1
cqafiItHIxEGlcQxH0XpxT7PvwNVsKq0Q2mA9QVEF0mhl9OaP9w1B9b0OkeCoB+MmSI50sWj0sXk
cUiCJMIMoR8YIWQgySmKpVpLgu7R1PrKYz3gJB5Fq1lKgGPXUdPOW2URRoT9ENh0n5QlgGSDqAgu
8It1fV+vLIOfuEhgMtJIloqdya/asbLJ4BtskkKOgtIgJhpuIHbiZClQw4tbcGDjZK6YOE5xdHva
b9LylrwrPjM+4nNFzCdwvyGhcWm2UrwoprMs2pYE3PwF/Uiz+7wwBy+grTAexXjL5z8O4RaZ9lsb
N9zxqhEAOBazMewsxT50zrhdI+cmrgggAdQYFjwd7WY7ahLB/009XO+8nC1VuAHwu/T4pWq2rqOb
7BZKCGxYTwyLScL9PcK/FtkddHmqri8bEYHAxUCjeNeM9hDQdoNzrXB75FM0Wy7NLxYBpd4kDW7h
N7xjNfIg/ZwH4dn7TGr4zk0iyPHQMVSNZJTEf1OLaqFOLLrNJUkN3LjIyrme6aKCOOZBklC54VZ9
EkDZIEp72f7yTtr+v9fVForLaBahyJgkfRikQT+Wf20bPkVSIOQLfl6/WrQe0UxA2SYP4kXV8tMH
i0PDHCE6TjL+doer6fLOPLwwhciA4KM4F8THueh8HTWn2DGoPR5FqFGC4l5sUU9viswC6S5vCCdp
YD4nJ/jcDRYuhGPCfVIveVkv5JaqJUy5qqsiaxyTeaWq25tvS/VRVvOsKZw0Y0FiGPjtcXnmss3v
2c3XHN5Id+4VmwlgffV6m21ADb8v8xWU0z8U0SY5Q6xeGEtCdfh/n8otK1CB/SC3oZUBUtkI8bjX
he93EzZfU3lTw0RGKkRreMx5puixnEU6rbmtGcnLBgYma4YyGJU4F45zIBzUnf16u/ABfJh6d8oL
6f4eTUKMFpYnOIRjkE883YWDzQQBwXUUo4VJko6kCFmft+7qPl/O1UtlA74JNbXTH1bEa4AxJUEe
n2ow8mZrbSGM8YSRIHfV7Gu9ygs1f/p+8UZ6vMvH23U5g8fMFTwuVlmzlFanyERa0iBRlI6z7krS
UgiWuuFDBThzgi/izAn2ebCGX0fM0lGWIa/lfVXpZbS6GABLTlzCaXBKRjyN63L+dqP8jvVQLNeS
XMKRsJhcAIMwHF8Ef6CLEFqWXMad8IsRFoH6PKEVplRn5kZhnbGLuPxAdUW9l4HDBC2seF4NpgTt
5a7Da3Se11tsu+ohWi2zTXeVehPrqPku9GuG+Uqgc79PLGODEGRGJKDIL6jr/fwjKMz1bbdle3ER
V8Tu07R08vPV6oeBTfoFSw6HD5VyGxtAjIhE8yxbmLO52BFHwqcNYbP/aHPCuxYEzcyGuVtMDHQI
2H4IFEImfLRDUL1RJuYAcCIpzTrycMgimumlyfIpEz8JhnSMbUSxdN3oQBdxMzVDj6fyCSWSoBJ9
0AF0IHCx/NuMkpHO0qe5yX9bfKxtYTq4/m3wgQQaXUXtTK6pcCi9aG0BjEAp1P3Gz2KdjD2PdaKY
P4d1pj7lWU+wzOchRelgbZqBl0mfwzIT+ixOM+HPRCMR/DzWydBzWGecPgvNmaDnoTnj+Hlc+rPg
Tez1OnoK5uyTG4eSz/yujLpiTZgJ5jgi3uH1cUzQEgVK+SSm8SAkOzcLwQnKB6F79MQ7pq7eeYJM
mKBPSj5OA/BT0xZqgzXFHDDeArNUkzC2dfQIv57M0wRtbcRpPAC1fahDw1RluUk+eOiUEjriOfJA
xT/ObEK9qqp0lfuiPCxyh7FX02JxPzWjKiLHWel9z3KDtk2fgiNxP4W6qXdf2VqkUjKhOIwqOUVL
IO6IAHsmLQs3Mg6ZnsG31rCHU+lk3I13eA4sIXBOB+a2YxwydoKj1UCxhnoxiIMT4dSWEQ+Gw+hW
Nx7bwv+Nr/kaGq2jaR3NLFOVEulSTRgjfWidmTWkPtQaCK3X0sVtTpMi2nykeguNg34lw5x5jbp7
cUNtH+GiXkEfI1BtCv6PQ/8U0Dud6m0se9tRU1SAWGwjptMnKAyxWOOQVOvVYr0yU9RpOjLhuMcG
byT3666CTjknFDui/XbRyZbfJG900kmxY/e6hc50DYXZq7yZdr+R8qYjQOHv1tH3ZSU9gN18s9rz
18zdqxAoo6PvYK88/eh7Ed79uuRg+Pst3gVwMo7SS1o1USvVdfb767/Ny7w+3gFDWPW1kl4sCqAb
iqgyCl8+/lM3nEHLRTZbr/JvUkiKaX1vmTWcCMA7CSH/e0sBrQ1FzQpXR0pQKSXnSrddvIQJ9dKk
zK+W1exrfXQcAia7H6p1AFf40vyNZ3S5ulALu6LnjbYJulHPez+vt2TdBkZC6msPY7urY9pv06rs
8EaUy0fmoTRornkajmz8ZIJ5jyus8/+qIZjaadNAj+prEflhhq6hdEITD5Hcuub5PHtYVAqxd72Y
W3p3sUgpmEgPOq9f37wuJTuqaA9QAXBBY9SHcIWPcz4N67QeA+iitAQYhlqIEGQaYKH7rFiYBoFj
lLBJTGiP29lzc1v31NEqJJLxaDavNi6CGCbogyjnbp4ItPI4zrYQ4dvemKC9IvPz6rvGF/urluKh
7PA8K6a6ojWXulspwyv+Un31CggfmWNAUEYpdqozOqn/gLWJVD3yulWfpWWCUeOHHD8D1H2tPSzv
2QvQ8Y+JSEg/pSfZ6jbPltYYSwJ9pD4PgpODqs1gqUQq8iPlF+xQT9m2WbUEH2Hz+c7INd/YfH7E
B9IdFMlhxODoL13YojX8BQzVFf3u1X0YNus1eELpB+g7rlfTolD7V3uv/15Pl5mU/leL8u6l+ub1
6grpj95Xy6sW4hFJGRgkhJPEw8LuoKcX1XJV77zK2ePMDFCI4Z3rY8wPbcK+41mDHZL8UD1Mwckt
ikfzAxuG/lEafJPyW+3BR24YjPEYVf7U53XbgW/66tV5J6Lf2DQVIazRXjC/djVKx/0lt/myXo1B
Xsf9YKaXx2wqb4cAOu9bb0j4Hw7o/u1bSbn9aWGC22bQ2xNA4CTXAbvf2brECYFicRSYUFuuMVIw
miH42JF1mY8Pd/rGbE8E6WsQnxeQgeL0JgMb1DI3BLQwS4bWSB03qfURO4pXaZCUgS6zgQpnRy1K
Y9DkPqkbOE2F6g9Tgx+mtbkUhcctS95nR5V8YS09FGwq313J8Cmj5jmbpj1dF3O9iZgk6TCibkzW
kHQstbJJ7ffIbBwgEf7xj4/SBBbFP+U3P2ocNHMmHFDQkgCsD9NGFBOas0MQ+e6lzeqi+h7Vs2W+
kHdVvNna8HafCZe6mfd53JbySbQ6RA1S3sTm2swYQjFPpdULkkq8raqjih0d4IOmD0T6hkf3wY3V
iLFD+6MblYj8fxqOErSvRQ1WtCR3gCirCcZ+DrgrQWIg6FZj5UlQmAhiNBzB2EQQDbjDxEiwR/Re
N57P/5+9a/2RG0fu/0p/iJ0vlodvkQcMjLV9vlxwlztkL/kSBIamWz2t3X6dpB57Lsj/HhalfkyL
7JGoR7e8ARb2eLZniiwWq4r1+FWwgMT26Uhu49UfgDKnl4pccSj8fNy6u1aWXdcDy61JcJ+9KEzr
Vt8VVCEp2zH6tT1y2+0UPRKkNlFSrD+CzEJQ8k6eLNkaDNUCqnSfsmCbWP17TVOKmv3xzSkWoxqc
ZInCA6fY6sGS9q0WFBvifEtPzscFqZmIKyi0UjoNhWcPyYF7zvqVO/N5zYNDOt9AfhTAxjWN/QRH
R7oA1xztZiFzkvGKHwzNEmnYvLRXm1kMU0O/6P/xFpK1+/Q3fLJ0xT9tdvq9XQUrgAqVNtVoBZ7N
pfopmByOfaokTkMW2Wa50zcOggdZrj3y4Nsi0Ye8jWylw2aIHvffEwA7B3Ga6temSSEExSa1Kts/
B6xlhKyrUhsgZNz/gu7DZvZ8Vn/KjNRKKTyuB9QNpUn+fDdLo8dg82RKTlYb0Gf7OcDus+SQjCEt
wePNw2qXz6W+p9/zKvotlkhAyp9iTlmLDdaMeQncoagUAgLV+3tuwuxFK+4txjUBz8NaHQP2RgF4
xLGehLKyS5uQKoRYn09jayaYED9zaBEdbai+/Tvg1sfpH4Hx1jpFzKXohNojTHUkHH3nyCKwKuTa
CLd4jhfTtfau1DaZ5ru0dKbsnpRxGdkABT7EpzqgloUvAhms5niI18O7JdP2THSWEmGTU20VgbrQ
ClouzAxi0ybxeRlnizjOCw91k86g4L1Y4QEpJcthlmS9edLMx9Xra+HuyfWlOa4w38TkyBh2oFXo
Kp4lkSWppXWnT+bfJ4BJFR/HgRteFSbIyjGMMB7PPqBCxHruRI5nE8UkYus+pKRj20dgkCn1g6aY
V2DdFebj2dVDGiXLZXzxlBgbKMBPaC8BNuIO8PcT/ibuAL/scYe2mKWXh1GXILMSDPsjyK0s5WMy
5AFxGKawx4Oypn4k7Y+gNfXTpqD8NYLW1A/r8bLZsi71EIIbE8SF/kLW7NbY3DKX/Hvp/is6Zq59
YDQ638yxFanoEDXVGLqs5Lj9QBcHBR6rJ+jYURiG43n36z1YXv5yHA9/o/ktE72DmpiGTZOl9kJB
U6PbactMrm+NJj9NMkfpe0hR28qsYS/ONk2sRcfg1KGxPnDnWhnYNYBPJPtqdnqXRvZtSB8zbTdu
hTSXsv0+ypJKqBfyjWp0lsDOtxHdzHWw0J9axMuZQwTCMSmZDcztBp1p3QsZkXzlruDsqG5J/uSI
lo3NdLmcVyRHbLtc/qu6IYP8GNdKt7EQabV7QzfDDMqsmSikJGyV3c/jNN1todjuApZFCLU16noc
8kmhKkW66eSossjVIwZIpVR12ST2oUo9kI4qGtQ3YWEnjPj15cI3v+vTsuh1eVh4y0x6LasrBbn9
5buSuaESAyqC/YwydvsMu5CSDEU4pBori4ClGgvT6mSp2aAKec9C2jdRZbcCeAQaok4unvK+GYjt
DAzJGMyoM7vKZd98ow73g4zEsrqegaR3PcHsnCN0FEbdmSnpXeK4w9MWozFTHT7Sm7GOWFmHZe9n
Fjq0Kxqna+E4QYX52MytM59/20+jCxXOSOFbXvmFBCcawevEnfWTlI7sMl9I9qlhCsxZiFGbWIfh
gBmVcJiBNYOmHODBbhUH0zTKFtZWIGhYG4O2cqcyFcejUbaOgunbt36v5RI78pLrybELJ1hMGBJj
UJ0Xc5leAbGh9+DKYcp24WYAS86DXD/IClRtWHrjjm3FR2CAHOlTjFEncJPWPgNTXkSo1I6+GOS6
Pugz0tt3gUAQpibkigUV3eSJuxlWc6ld43huSvVBi9hoEYb6oEXt8shH6DI6n++9CISwC0QvhxRa
BQKHfdCSVlq0l30pOy3WLS1Lv8LxwMIbsE11Cy+4nCjG+jgIbj0I3ot2Y3aNcwPJrAaFJAqzVs/D
abTcY1HYZ8+YIRte0N9H4JJttAPWr/coHyUgRRXBhAFOCg65wB25Iafbc70ODKAharfDIzSL1vxW
1BIW+mX5qkMHj/vbpcsPxuzc5+kurmA3KABH7Us6ysSl4AMFQpDgLaCJCrTx6CkqJXAPO79+Dr4v
UvuJceTnf/gI4h5UthOUuX/E6SbQb6PHfGFHrlK8azK2OGsY9gm1iG1QixJ1fsH+GVBz/gk+kkTL
/8Hv3xP0v9NFlGb/9d9vCHIN9SZM9AjJau14JOFQ3ehDw8162eQ2cLM99WrTC93ofFgETULEsKCk
rV6oXgi+TA2L4IslaWOfylmGiyhb7EcZO0fOcB5OWg3D8gMMZsNi9RLUvbtk8ZEIJ917ZeAK3r/5
gt6oL28UfiM/Wwgz3IKhZmLO4YWwh1bNAi1CEFV7ZYwOxlg1zuoXw5ubM5iyTiKXW2jJLMdk6m26
oPsw+AENHyy1dlbrTJtGLf/6Hw1ZyieUEzDDHhs8m7cN07ae4hTG/y2eH9LEDGuH8Tur7B4GBvzu
JwAf4CJ8E346D9ACm9uEmPTrOE+2S4CDSzZpkif/cMoqC2k7tJaT58bh1X0WoCtUjqbVELOvNV/f
mW98NN+wsplILPvEvj1NmjTFwMUwLQJ3oTz1G+wQ5TCzKuL1VC9Qm8Biwp19ABpm4Gm3MbtrTTCe
fX2IZl83D5B7y2xTn6DxmjDPqTMm3AODfGZJFj0s9Z6eouUuLsA4zft3HxgqwkFarRtcVDuMrNJ3
QdAbk1HmFT65fAYfiq8rr0qvEcAvr8OhX+KD79m8ncXzSGswC3pil5if0GBmwf0kPJR+mPsXKG2s
EKOYAlDrYGdLW8N8cxgU+eIGc/OreUOMpT4MJqPyqhf33etr1O6LusYaP5Xf0D4FtqsY7gPu4aF/
7TPBGfPrl+tI8bj1TZtXdeFDwyyBZGUymTmkGuZ6vQtLZB5RzQSqDRC5HhuiZQ4jcPPYonjVbd2t
mnLNCWrh2W5n8wByRkmZRdoP1nDMEIeKPjwCNr1rr8goZp5us5mQVuD/XBhLoVfaOD4xEmbe0m+x
HKxX/0itBC0oourpe/Ww8yut8UKpiv4hYq0qV731xbyy2JrVBhhNlAyvs8QmiA5Nk3d+6qC4Kugn
c6f03zZXiXk+kQq3PJhrc2IysTEAoWnb+/RoD7RxAZOg27oDJalPSTpdVmcGl6HShrlfP95GD9NZ
/AZ9nj8ukl/03xbtwxs2JHnq/I+fPv9eL0Cf75c//Msf/7X40nLUkorBZI5//Lc/veGfC8Er/6Ev
ylr/aP51HX/Tzlyc3WML04iv7+4WyIszTDHBqrG/3kZkSm4UctOENcxr0tnL+zMtLo5mSuXikMkw
SqmQ13LjhcQ2EhDlE9Q5HeeTbh71mrPkKb440odIeVVuvHvlOr3rhJu8lkxJm0zNl0X/QVDPC1bw
JKzVnyQ9bXOxpCS3LslrQguqVRLV73p93DSMaoWPpKMW6WW+cF4+FIP5Jg32WyrGcTk7wrRg0ZrT
ofrlXn2/Ees1XX25TYo5GWlxxMd1NzxsR2Ekh7pI0cmC9l3RoDvXmxx052yzttY2QGy7FhiX9FfT
FkOsQtmTpBw6YJqdykF+ZklWgoRbmoKE8lP12SLalgUYRUOVrcoE1S3bGZItRk3OYAiqFiTtBiZn
dZRaaEFNkXCM68ZEsDGuW/WmZ/tlN+vNeel13bLWK7RTBSmoGOUR1wOFvz3JRAyNUzJHqb/qgRPf
oLkYqXRjH0f3FvjN+OCKl+FR8koqj5eiazyGfuDnuyyAmjDztX0shz4dmJXHx3kluMcxH0Fe4rLf
vlhh0d5UlJE7csEY4oPjvIRItpOs04LQg1wVlUkn37gnlT40TCcCj9NSUDLOdSMx1GG/bAeGdjwW
qoGvZL2Sgi52+7LRmsNu8fC2Te+5m/jFxXyQaVqTQ8nRS9AMmHLPJRmENkX4xQ0CWgLxzmgnK6jY
N/9TW+E0jlbWqT60cQDPf8PkxYaB2YKFnYXJF65QOAtZzX6orjnrE5C1bY0idkkZIURqtl12cYr0
xSnSApg4HFobhWLoV2BV2o5ZA1fIVxFyBbEjLfpT973bmgmxPpBsGq0tXRYkpJC0R5LjgaQuPHM3
tAkU/OoCYNyi15M6pk90nkar2I7eyLWSYsxXV5x0ghsaWls8bGbPlmNT4KJ5nJilv++sxb8K04Fq
Nvt0Lfw4HEQiGTrv1NbWzMcFbSI8LlAU7pfY9xEfSm5G617KtaGGGcLGFgn82N+9f1+AhZzucLM2
ryMtUO9cnylq6qsteuBkI0yGOEiFhhfVEjalraNyGmrapcsgyvM0edjZBwNxJmrCkF3ZU2A+cRK/
ZjSiOqXkbEYjil/nDh7ul/MGmlcoxDpmafQY5Jsg086O/UYqFCLvZ28az07Rw1a7vACO2JpZ4tqQ
7abWJiYmtNhyb5W+ileb9LmMZWzT3Rq6cma7FP5K46domcycHdyS0JqTi+s9yzQLEugKtiMbQFWy
pL4VcAdL7eR0VTIZV6LmeAmnSrh4yzBTUtRE+HmdgrvVE4seNPjhtByuBjz4qOjARGmFuI0yCCcW
YmpxIqkUWEAX2zW1954hdV39/ecLMxgQa+pDAFgZbRnj2rsZgSX3UoRuCzfAXSTIw7pDO/pnbx2n
jiI5OoPS7CeI1QYRXG9wle9lL122l35iEaDjorMY976W0iq3ThQFSgBSVNyUjLqdONF3OOSevcCT
AxKchb0TffHYBRJh72m9e/4i0mh22tBqd3b/3Xe1i+uNQ9X2CPWrM+jCHgi/mvET16/wGgx6pr5E
4HAmeRYv53ZkNOhJwx1pNidlV8U0njCEutZuzpNwajjCAKad9e5SFc9vSq/9KLOYN9RddgZy1F/X
m/zreY66QI1iExF2IuDbKM0cjTYYwGgp5t28aizo9EQAmBPt8nVofQlqbhFBur2ee765QpmY+LHO
QtMlcYHf86/J4bRKa56Hvc+2sEcf5r9NX1i/fVuBvs823woolV8yraoNeIlpVzWuh956auIG9/xt
gW9drSuCSeMI0aa1LucH8C3VxFxDcgxDlpE+otVmlsyTeFaWpAB2ZK4lYrV9C+2H90fIhvPLa2A5
WxXMZ3/faRnHANJUGUCDiWJayTHeAQEibQQkkbRxrPKcyRcnEdVgsgU4QMguzMfh6UUciJ+0sept
0RPtcTGL7tc3IYCG6D+1EFoRQLRoim4NyAnnzh+skBUOMRmUHlNoWHohHpYeGZaffOj9deRs1KbX
Sn940GNiYHlpFa6t6mSjs03w9aCf4EPRNrnT32ie0sHIL3jRgid06DPg7Nq+YYGdQHmo3vUdVPH8
iQK94evHr5++fv76e0veT+KBNVE4rCXhdFjNx8XA/FThwLdc3bS89BsNhTv11kB76KdTMWfmvjI8
Da4V92madjvQDvdZv8G5zwP5+2q5yPNtGc0751Y8XWyAQRbwCsxZT46S/TJJ2WWEwRGNIaJxmnmA
mHspZvQgZqFFzJjsJMxn4gPGrF1AXlATojo+/HO6rgPiNXGY20TLKOI3pmje9SI0BBFGu9yp2WIN
1/XA+nKR6JICJfpN3Uqyvwcw38XeSCDCCaHkGjx4zaiQPU9YlSVY+BT9QjwX8LkSmPYWLZNHGMaS
xQDVVcaBjhBBrjCNChsnp4dISraK7NRSrwKzjhTedyONLv0G8tiN2xg9xNY4JmFQBNOqwKBomIBu
iTxaLs2D1QQYNduL/+b6QXuWP3hIfo2z9w+r7dtVsor/9ryN7424vYFvmd/zEygC89WXTXpf0QQ4
xJRBc5O46etKLCqMIvKD3pnDpVGWbUuJ6C2eFeYXDkuxhl2fN1d00dJhOBwpI1YksqtYy1KZ7Q/w
4DAwywEK7rPES2OuKtClQjvA6reQjnT+yMsDIYcDoQjZFCAT9JbExrpKGaI2jxozNOwALGAtfEEU
+9X/NHPdLsMPIw6TFjoKhb3cs7PGgU+6Kuh0v9qw6r8GAaORuk0hu4H7B7fu4GRzq6JAYgBksRdC
+2qRq+K4v7qHzPQcLxOYkql17yOgcsCHXq93CMVE0W4k3glzUpSQYZgx16+xqzzBiG2kI5ZdBjiL
IY8AzXwMdVY7B7WyxKpbXK3j5bl7itK7+WY5i9PsLlzfZYJMCV5wtuVMLafbNX9CmKym+qqgx/Xd
3+4uicsZC3nVvomWnm2+2U0XHpJcuVJhq5rb/fDY9WMQfYueg28LcF9KHJsclmdm4e1h163tZtAS
hdS4T5WZbgFhsHk60QNNGetqmWreMdX18KE6+oRxJK66yJ6mEu2dXXrhjQQT60TPbii9gCPFfruM
R+0wSK/pQ7aDIzbIGavty3C2VsNaX6gefi9WRDI2YVz+wLJ2CGRRm4ILfaK8C+0CbtLnu0MyniJs
7VMTYkJ9ujiOBI5FqyWpRbzcxtplX36ogoUpqv/ru8H+qocZHmKplrMkPl0cF1itKT7a54kqoV/r
uBvJIS7J6dj5ujUTIC/lkoRQfWfvaI0QkE8LkhnEWvwZzDbT3So2g9vncRrbR4KHDPq9RG9a4hxh
TwGmOvHd2Qnax1Myizcl2lMF8ABRiGj5wFWckyn+bbz9KplQal+pHQzuVd0F6itg58dQSligHyLT
Xw/yBpspv76/IJJvzYb3XsLbHPZjfu3dudOA9k4DwaofVwdL1olepS69itsNirnsSxEZ9naRz0EW
wdxL0o0VCp1WiPDeNnSO3wcbUoz2q/jtTy6o12o3V+yaakSgDoTgl+yoHCBebUCJUJABKtHMGiKi
8FBVvC/a5DJtaESVvv2uL/Gsa8IgYQZDozHr2TOpkZoSo82xIB8YUkiemGnyMLQN+tktBbfcTIuT
IfEYb5+sp2kMwvcif2so7vK5BLJaY1WVBjU0Q6+pb6d+Ytmx/rP56+Nuri1zED1szEjEaPb8MwxM
sMMEMAE1JM2pf6PTM5u2iNI1RCwrPpaEvla/9mgnlTTe6t1ZQKy48ASjK9j5baGfNu8tTgsNDfay
xy8+lY2jRMBhVEWCMC0T+kCQxP0JxGrz5NANErGa+VdnJ7TZYTZNk20ONrrod8bVPGRgBhwRn0bH
c1RhuNPGqbKqO4PTHXYBT/uQPH5d/d3WnQ/eVBum1VOo5bjbk5xiMi1Sv2cqlXwp88FGqTKKkDwq
1vN5sVwKLA3cN69VpKu6zf1JMaFhrfuq/Bqym+TMGGKtwqQdwQAIIVHPJxHs+ZNZziSY1IueqC76
XDiRMKJNXXfDNdHm1bnGzbLoEbTENN1k4IIakK/i23tk6VmSbaN8ah8jQEJZE2W/GWlTjmabrRry
msXPTnon2EA2ytodj5Mnq7dBwfvl4fBKhplBj8xj11qxmj8CCGkE2TqZz+1+FOCzXEF9Qm/7NRgK
HpGi1yFMyDUIM7isV2A1NTj+VyDMYdAWVsMTxkjBtFHleV1PzI5+khsjnMffCww30Mdwk239lqZp
g1LFiSfhv+82+tEdTPUTRfsjtgEX+se4HMyyYv2ilRghz+1oj3E9i9IZgCZo32lfv2b8mxNQ5COD
t0uwA+DGgkeuvxOvM0cghDNt9hrqD9sJm3WcLwE4fzffbCyeOiUTgYdliH37qOY7y3P71W1Txa5h
nQS5jlEU4TX0lnZkuxEukKmsIlSlZql7xdAEi7BLGTvRbK77xSZMoCvYKmi3Y3h4wjBlp17CqeWh
W4+YQqb7CrvGFGvCUvUkXFWhqleU4svioiX+hX9gvVC0Zv9DDzJGZKfWwrLjqv+g+a5C7GWks+kd
QziIlnmcrqNcvwf3xM72pz+l36Q1YVzUDeWxTaa5Xpu2ddnTZRylv8bPxReB/ipYLLMgijOALrQ+
MYm5dD3eg8JN1oYFDEyyNrks93WgIeSsPfffqAoEC9G5q2TdplX3cMyGuAIh8b4CWnDujPBM9U6z
5GGZ6Ms9iyEK/6CdVMNge3Acmr05H+QMla+12G23cTqNsjg4BGKswSVTzYM9j+rjX/4cbJ7iNE1g
vniRvrAR4doWhe2dKtueLGZWiwXDoeeWjtRebI5Us05UakVPeLd0qJ2O8LvLmk60yxf69iRlcv+Q
+sfn/yczNm1z/EQRp9ykyaP9OYY5jL5BYecLO2nS24Hi0R97gcD0Yf+Ps8G9rBjcyz2uTK02vaLd
5NUShtdnUxCfN3ylJea1dbinXGL9uyklHVz6qrSGYiKxklc+gqLb6eyilaD8gMX/Nlqaugb96/TP
VrJ7xbgjHCJ+I6J0YRSPIujqwkSor7H//Jc/fyrs+5+Kye8m+2Mv2EWhdufUeCULau0onSgmRr8H
6SN0N7aH0CfMc2t74D/AOfAf4D74PPhv7RyY/AHutPgB7sP4bVwY/gB7kD/CffgB9kDGL0sS4R/A
PpD/9/lu4j7gGw9wKOod34C0TgJEoCTELCdxvjwVhiLlDl6/qd7MZlXQm+0JVjM7CoNNUD5F0fU7
KQQPPVR2SeGYmZjF23g9g6d0JbLM9Xud064q8iEtYGnSkEhgvR3CQp8X+x7uZbM+r5Hf//NYJU/4
eTkw9DJIIQXyjEn8/J9/+LKBElT4/VogXO1rUm+RYtQ6AGyjF6fvs6fHSr6e1JzzZQ24TpMZCbbJ
93hp77JCik+o8Pj1DLFglqRBttjslrMjXlcVnZLWHMDiXL995UThmrjvbVaOaIuV2zFnJCMSTwSX
rYXI0CgxCC29FlJOOOOdUqkiOMMwdc5Fp1QsU4MYnQjaLRV7mm8iwq7IzPUFf5/n8yrokIR7rXyT
mK/0Ldmr5zEIRCsww0b9SqxWVSpDr3USZSvtGzl7iRhrfVSLSHs6pVMD9WGWxDaAU9Sa1nO+neK4
8jSa/lr8GXyLH57yPDCsLDdrx7ZXEroPkCfNZsgRGPmf1L6zLFk9Blk6taLbQQVrHcDdcxonvjJU
qPy1IFXdBoOWgjq1yBVe2W5ttttCw2QQnSk7MAmEYgAuxB2TerAh4wvYmK8AHItmShqWw8chNze1
OYkj9uFmXbRnfreWGWgvTfnfm5M7uoS08CzZVEo1VnQnK8Vn0Pus2lMduEhqjxCGvSTZwrGH5P/I
u9reRnLk/Ff0ZebT9pjvZC9gGHebbBAgQQ65OyDfBrLUtntHlnStlsfOrw+LbMmymmxRbHbLugC7
dx6NV8WXqmK9PrW+X61vAB/xe6n9glfXaWEYOXLEA7Dev2+KKpiv06f1qUnryxjmPG9FvkLCfCKP
5s9d6FSOIYWyiUC4jy4NwSTeyXUTuXCBc+4k34O6ySBuISm53P3xnAyh2Rro7ZAY6xlCCn2B6Ft9
rKMlxZjCDAF0+RvvGuCCWd4rF5aqG5gcTTu+kMweoweBzLLL36ATSt6WcwBqwwVlVYRg3yY6noDy
GsyOPKUL8ZFsj9eOsghT3VKMOu95S94r4oInPgl6sjpyo625pjjSKqk9ftJM/w78l9OFE0EJCxVr
zXevuIub7BK31eLD6k7WUqoYdzAgkH/3Ml1si1ssGSZKMSWEdMb282EkL/FZWQOVYKpGvdOA60Op
bWZyjly4i4ZJrg8s9Umxs+RV3617hiBScJk9TMXVw4MFFzM9Be5ySc3ZWA7+xn1cSYAOJTz5nQRz
b5tzaXrO7VlWHtJR4FaFMYlGTerI59ytbju8Bjyt7LgYyLiOY5omRIDoyFLlNa8//p6/eDqHdjB+
1GQ+7E17bLoc2gnRSJfqWQPRbwOnIo03vY96dge9CHQD5+pzMo43omL87KPuhBEVRJCJ5IhWCXWV
AspydlHLjjheo/yTcmwrtyAYoBnTT6OauyMfMU+Ix+FxY3kForOfpeF8EcOcC2pmcrNrYhbtEsZk
bHagADe73mQL7QtzEDLbxr3Qd+NEd2MyDKP0lHnX9nmbUh6nH6A1C40xupP4AZ0RL95LWP+wuKLZ
unJNDmC5MvogsQjMqrd1jb7pH1vhlgmV7Hqe96bIE1PBr27ROSfXt2aMro85SIwzeulF6wVf36IR
FVd40hxfoe7Ir5A7rlDhYZxfn8ZT6PoOWlF1hcwh1RUe9PUxR1Bz4WdT0er63kKl0CfLtOQ5v8Jg
I0KoT1psaejsBttn0OcCbWXOEIn+wgnBfQq2DnboI+zZK6Z8wjlKQntH1MDnr6ezg2Xsu5gcUShT
WiwHWsFytTT9Lbalz/7ecasL10eg6FALsOz7/kFrOZ4On0lUVChuTSGnJAnUNH6yFQkm+0upGeaz
KD2TYXKqoNQhpXS+E/SNbYe5r72K0ztogvq0CdlWT4lSEVrooHdxupw9rSoYOVbO3Lh4coJlPty+
tkvPzmRMdKk3VYXl8FRfX19bhEWMKZ6EsOhDuClXmReLwj2IDPM815KRaHOH1DrarhWiYfM2Y2l6
tICZzYyTkG3XL9tSbpzz/tcFAw2mBrW0XG6LebYvaLYpikWR7TboLBAiGOvHDqWxf+xamoUFLSlz
jlQXSlsliTRV1Jo8PAHsz9XAPKEutW1nN6A0eHvicmvyXAVhPGxqbZ+7UGI4+XQX61IcNo88qMnv
vdn4DjOJOGFIIZjq0W495hT3sj0+zn+creaOZJzkMMNO5IkIbbbGj9Tf7MZvhKFdORqDcd0zvGjY
yPIE5H3eJWT/6bAiEvVEtm1W8xJvTmIAMxE4kSZIKN3PITFZ40Q8avZly5eanZ6EOUYGQT6CcXaJ
8MDUuFaeICExAdgOSitXszeBWhc+wLtmLTi3DcFh2DdDAxL1iR3Lw2Y393qZyGAbc5oBHGB8EukS
N1HfO4+0eUqGPk082Maoe0qJnETVqAUT9Z0mzEcm9PNbTVsYU+lU0MiIF07pDxpincqEKU1U5AMS
7fBCMRv4vtBg+3LqEpZrJmRiQKIdhymjcS0+gi14OnoETBkd2EFEqQAmLLAEFHDr07MjT+6CYSPQ
DjaC8KOpIRdsHWkXgbOj3MKluh2oYr214qaxJJtP3R4k4Hmoz12q325SD4LxGpBvaKvkncmBWo5I
z14omqORFuYbBp9PGEn5/h6xdUcsWAtz2GDsY9pP5aZeVW83+83+sXmHzdm3Ut8XD6uq8AIwEr3z
VEm4zp13RaTRZ+DKtprlNB/01aNHvsdFuD7/FIfv0J4CX/xwjkERLnQ4bdwKFtP87NIXWjc8Z5vt
/XNZZyjbFLPVcu5MqZgZgCz/BPzax1+HPsYKmtVmq+2y9nSVKMBNiClpfz/gfbPybof1tHpsRqne
HdtRJjOfJgrR2p+3GkB7zGmeOx/EaJYswuHsNmsitbhfUHMNxSDTuq7K+21d7AK3s9XqR+l8q40h
GsOBp2SPdMseC5tEGb7Tg4GAdbko67JwdJJhfbwTLElKwoBIY8pwwEgx7WWA2H5chwP9jqyfUeJF
nAaM8LR7OgDeskl4+HtXb3YutNeURtJ3OKFes5JLEoZRfjYxX42j0P/QwSU+UVb/5JYacqSfCfi8
gumr3lZWmacLwX0g5hhUDnMFaSqk1ZfHb6/t7Siu32eSNNH76kiCqongqdLJBo/wG27lkchEKpr8
XvxN8iZHl6oM6TQrqGioGicqdxtnn3HNC0IOsp27fQeuUbctw0MpHj3+IWjABENIDH1RzOgfcWZi
2I59fyfwsyr1e1RrWcoeyoU9PfjBREQtS7Y7rjf1tC6+Qtf3rTmVp1VL2YMMxjyip9u9wfS3K3C9
oCpsTFzyLnPC5DgXLnF6JFTcxjUQnIAPkOOBu9RxLob2MmJ0phX2I0D0w6n0MMXCsMTcOfyFnolZ
nlos32m3xFJhMqzS1b9StK9Biotog6guiyYWsDLVHo0/Bt65I+Cg/T0Zw8KtnQExi6ZRr7KXoiof
3o6GRn1vLcg5UTknKoL1wra8C3umPVPN2cty83RbV9uihVUi9ZPaqyXOsGOnKLUP9rvhKEdbGeq1
cRP3boDptF+/X6OLsfTXiJigfzRj+RbnZDJ1ZuimxWRnHIWQWItxPgYP+Fbl4QcZE+nZBRqtf2nA
VTS16UNdVKDTNxA6mE2XM226zrP7t+wPD8Qlp3G+7jGDNG/HvtVR27R322X5j23x7/Nb8vU389dQ
f1mtFrdLULarqvhF/2D+w1/WVfmiz+aX562RoWaCnf7z9DXTTHeLWjEOzUJK0oEXjodYONOuOLns
jccgOHwYKrdelHX2VLxmEGc3Yb21I+WniWkDHnHEr++eFAxDYPk1SgbDiqH4hc+2mpm0TfY+RtIZ
owYRpAk0x26nVm0eEG3rcBY2TSwRxSZ7yhMBYBXLx4W2T27sMJy1Iega7SKJ/hcPR3M6nR3NsCEy
Z/kEqx7M3hg9h1N0WiENDlPnIgLiq7p8aHJ5ekcvpuzARPZhvk813Tw5yVEWB9/XsnyKSvsjdkTQ
Qd50V/hwe7z3w1j510o7MlRyKYSiijLlKkrBPEWooWsZjiJr3BPa4PBOOgvlZWDXCu7ennnztFvo
GOhkMBOasbzZTrTNfN7ida1PRL+Gu5lPT3W9/vXmZr+aXxVCqM9RWjMWiyB1i7v4elE8TmdvN/PV
9n5RwJDLn+7mPhKYscInoylgqU43b8uZI6gC40VJBBmrg0Dz6H8zO/zLjNDbZE/T5gNnxw/BMHgs
yb46sAwZ/yfnREF5X0Y0CnaTQatvaWYrTqs3d28xChvpHELOiecrgEAvfMv9XWnHa7F4r9H99u3G
/nM46nE2XVt1Zqc9vv/ZtFaabvLFwzf9N1+fy+fib1DdCxOVv5Df4TND4U/1LSX2x99X1S1u1TjD
oGVE8qDm+s5jO/yT5g5tTALr66eq3GzgI8N9FqvC3ZmqAmOmOGI2pnsyJtZ2Bht43869KtN9Hy/5
RzK4k2X308oAAaW/lvFIfidxCo4d6k/bpcHapfQy73uXzfW5vVRNBKteKJRnDr5lvWXS92hj0wce
1HaDu6fC2j83vqKjkoYSBKZdxE48g2Eh3rUp/7fYuEs/9JMqcN9j+1ku53BT+vQymMm0KN06S+Wh
74GHv22f/LRcHoymb7uYTE1kjJ7yVH58oLd7v9tks4nkYmyiPLR33Ul1U6/Wa2PSnAgUYOjL5yPp
JRKU2DxBybU1OE9tCLjra1hgEPWEPtzn7UJFAoNyGetkUQSr6KcZ6g8hLHn48ztz1uWzDVyaaLm2
BavSrW0A61zfLo9n133WdfM09UHa6QdcBPZbez2RzT+206rQL41z8GbOUJpLO9iQKS4C69b88Rb2
V0y1H+kYv64dSMYTqLcuGsbrz6PV2bzc/MiO6T1CuGdaG85Za2kxw5juftNPIYRmjDVu0lM3+syb
mOpvTUx1FynFjqefChzz8Ce7C56LIalDGWznCoQ+gQS8eIoOITyOI5zIEI8wnGv2VC7mh/AQzpJm
SKzzCJ3RNaPCF8DAOOaV6ygXJK5TPEYSONmgiEfp/LPdNETEOCAdR0BdqgXlPNZzTdrGq81f8Gkj
2DqoftPdAY4xlxMaY+OfwDlyIBvh4xqNYZnN3wEchgroleEDD2r3mZ1RDc0rWrxv0Vft8OBb8kqy
x6oolvByw0fk1jc/m2EywUL2MhTOiaJH+Y9RNbuYxpA6P8B8jKUxoiIL6rRut8PxGKmzXT6H1r12
qn+zHzoqfzM7mz1SutPoddnq6JZR+saRkDxMCbiyn4KoCY1x4TpqU7unCmohDow0heRv/OFsGHQf
WN+LAyG/Hu9/uDFCtDua4ok8qu91zS3TugLmliFBEming05N9wlKHojxOKpf0fYqGEFEJjJ22zBo
nmvHkPLGQiZ6JtpX4mvyzCdE4Qt7MYKTwfZ9XBViOqOJSqQxTmVyjKZuOMPdLCpVIHBOuu3TXIxL
j6CR6alx6XGeyuTyQAgqOeqGOMrHlceR98cIG3l/I9OTI59nTFFLH4FTIqEhtoEnugN6FXLfI2uw
0QUQjcswgozMoFgMZtCdYJ9cQSRm5Ac3xgVNEKwNQ/YMdiQ8bgQNnFEScZ5eK1lqK/kaXBem2ECa
yqOneBJqXVgOHCey1Q83d76hTgDwJ5nfcBRGfMtWa1MRPfeMzhYKItbpHj13BRJMyenDPvYaMxuc
t8FDlwjD4LG4CqQgjewuSVKAREkScuuHbfr0BrSiROdrD7rPoHSsrKybid3wl4QGYprjgEFZP5rt
fWuDnxIcCPJ9KmJwsDuTr2m5PgxRHjiCI0zmrNSfqK7Moc5TJBMDrxRgQhNV1myrCt6MunwuHDFp
bBpJUQrd8bjyHRoFlHSWgCuMJ+yHwQTek2n5wckDnGmjTabXFqeUBWLDCvAOsIglUr4r/W5Waw9i
OaaRHH4kSZ6BMVrfiVS2gbf6kwtAN0vJCV6EeqjHVIObUyhPoQm08jZC6gNQY1jFlXs6bye0oi4H
DDzex3WuV+usAw0fEwgGJErm7s6wY+wW1u8f50mpeTYG1cC9nPL3k3OnfxQgGCcKa7yfnD+vgSOr
m70m5qYwlejm57//93/cdqu+XGiBEyQtp7iPlsIcO8wvU8AqyBg3unMFIza5XmwBb/pmVhXgbb+o
pqsgW93/od1ad7aXALo/7kHtwDrz0O3sBkNxZq9DGJ1TWPSXQ7JR9RIPM2B5UyybtjhP4zDRzElJ
aoVJOxQmVak8y/YOs6disbb9gi28JwUtFWnF3Xl5ClSbRGOc6K4on4xxoHetzgMGYJEj7jOFQNQr
20znd2G4DASOPi3czCPckY6E/84+7Mr9ChEB4zdo4utiXe87TWtNuI/TiBtOUGXeDYGCJcJU0a8O
pBwpKRrjWBspUGJEYr0Mwu0asFT8yLn6Bdf2M0rjU30g5sDqCgWdDKBk51xDuUxXr5tWjyyRJ3K8
tz2M36YuHBslUe2WUWcahh+a5EwtR0YdaTJRZ1FZpiCB2DX+yktwTB7TX/duucPgUKuirfGcTc0A
XKfMcxUIwJOEPXM8LntSIYblD9rH4LIRR5dHw8x45zTPWBPX9DkAOK6P/rhbe2YzsSYg/W31+NKi
I5WpnWT9SdnQsDsHghHVPk1UYWjnjvxD7VLsyP7ZwCy2dyQhbkDzgdUsADYR7ZV9/VfInBWb279O
61++6AUI/T+akP5fIAX/R4AYx/rHf/vPvzm0Micp+vw6V0sVFoIxHrpa6l+toDHZOduAAOkJA7ky
B/9sh7/gQg+A3kOuruhUOBua46ikNGfsbI47AhE8ggp07IUiToY2Ujimmu9xz73sWtJdm+BKXP0m
OIoZbnnOFAHJ+NAGqVTac0Fc9D8mA37p9GDR9W+CITz4KyAFkYSevYe/VNPH52kXo7Jc5Ne7eKbo
0IvHiHAp2LEu3oMPOM0CNPSytP3Cucw9q3LCKrOgodlk1EUJGlOweVEkOJafRIJDMqgq/OioG4ym
m/nq5xJ++P4Oe+5uC6OB7YBHdHZdJa0+E0eLCUUk1D0jvjuab5+f3z5+t5nShkVgS2gflhQsz2lO
hE98XdIrY1KXkQBlWKGIK9zBeh2ObrQQUfYe1493LdakEgWCHpNQDDF3FgMH5oVID6AdEhStImnm
3Ch0Zkc7GaWF2xZaE0Ei7tSVjT4nloZ4PpFK9b+DJHAdTYCChWVjiA9OwnD3YmoKQZemWTXzQaxp
owApUI848gjOComEzQsjfWNJucL99fzHNl6r6GFKy3k3YyeCONOOm+lLkf3FPSLT9CuxEYW1A9qE
pcqzWuHwDAWlXEzyXCES8YqEgrh1oLdp1Rg4zSpM29+hb5IpqSTTFwkDJhh1PgBhiPPk3Mm9Rgfa
ji0t+qvnDPCc3eYXFpqzSaxcurG0jfuvTZliUcx8sIsA46KPnMXr/MeiNhgp94W+8WJrbM1srvVC
tXrbZPa3nFhYpnItH47PymVZl2DCQfDD3eIFmJOCp3jvmu4aX1uNzON47PiQ96rD0nOnQLSSJIKO
cbDal169FFWl3wIPCJUIhOJwcrV9c9ba4NUOWVVMn/XLvl3+KLTROPOhUfFJlGMauvfXpyqDGTpa
rkCPuVeBGQ1sXSH+IVIHFttsNS/AWvuqWcBgwn+hf9JupP5nT0F/Atjw+iPzbrbsOqxi7Lrj7zLv
r9bRYX30o22OUZlub2EgC+PtTZKEe2PkU+0tpynvDaXx4ULAp3J2ISbZf4f5+f1bvtDf4Xu+0H/R
3/SFCP1d+mfzbYTD93H4Rn74nfC5/VbuZz6U1C8OwNgSn0pthiG8hGpNTP8/MA0fIJjiBxXL8adS
aWHjSoNVmkpnMrox4LRdGuN1tA3gHZkGA90iDRhwrnqqvWV9rPhrPa30qm4t+Dw0CB03jgF9ERM2
aK/HR6SZmUwIGi/ihylLJBIPVaF9y1N6lEGQR9GkJGGDraFwZmQSp0rrybw3p7oZFJq5ehmbvvh5
O3wuRNiELv829C4aR9C4+8v1eu8JG//FF/PAMbHP5PEHjGLYdJ9neltOn8vZ9+kcwvvfm4+dGBPg
Hgk1UBKI5LLXWR4QKRZFXfhCZSQHQD0qBglE2oHJSa8Y3KSebBYYRNSnolUeUUPH1JzSxEP7ZhNw
gJITKWnKmJ0nTAXvFR8n4o05IWMwCYMWakyS4WUZNb+P1uBsU8zaw4YxlLjqL0aKj+grIj6yE0VY
nugKHU1Z1I2SoJUvG9Pux1hF8Om+yvvnU1kXMB82+1ku5rNp5X6poPoUDfE2nwBzU1Anwfps8KDL
ur1VPzIEpWok3anNYsRlkh3a6QRtO1/771KNpDYZ6+FGmQkD1XYNsz87rGGq+ITGGE7vbF+tYIxS
A/4GWXD3iyNoIMpO73eAAryK/oGm4fX2/roauGVSydYWfmZx/H26hIg8JUWoKyhezZDr2k6eORrJ
ZWxiJuJSIkdMsykfl9qTr7wDR6CQJiaZ5t9fuCnOtOGHEnLQ4WZ9DKTi3tnzJz0gziPoaANoW5X1
2w1DOFusHlfb+uBHl0WGcWCZQQJfm1Oc4x6b2t1ctvlZ1rMn4Jt1Vb5A19l9tfq58QxuUwScxDyd
MLhFgapAPKqz7+xuW85vofgE6plaAzi4wuNFtc7NnPdwSWJivPuzPEZwfNDm1559tNscxDcCiqfI
EBrGq19kXFTNse8dhQ9b9xqB9Gxn00fXNxVJW7ZxiZ7jWJMdU7SLNX1/qooH59ML/sI4sQ8KgH5a
/j/K4V5gB9UB1hEDJMt+6fnOCms01sa+2s8/1FSDltOGxkSgPo/9664utanX1+xjp9nDx+5r5UjC
/Nb+ylVv7mWHmNhuL9h3GOxaaDfloljOim8/py+2ZtUEHG7gjzsjV//CY/10u1x9LWdvZvLg7Vux
aU2gw3kMU5wr1FwlUZEnb8inuzgIYHqjPjzKmmsOJTnuGxOEGE/lqZaWADaC6cCeM6EkkX4+kQ3g
gCccU66W9tKwkqOwri2Zdjn3MOwOoWH8py00JNXgYbSLtQmGafCXcEzlhOd9LA1bcmq7SOypzxYl
kOzOeavAMdzJ/VSotVU4jU13uFOzzbtd0cKvN7bx92m1qX+FYgXXf27GLnpB4EUgPvsQia0zZddk
LPqILlR0Ahtpe/wdEsUJdyZZ4ICNAC3hIup51LgKHCuSJnGnrVfce2qsCQRYlIcmHNCObBCT2uKM
08GO1I+OpykD8mYac6ULBjmmHugAI6PB8rSOztwdbVCQTeODPqBOLZGHIlZHXh7pit1ieZFIKpH5
RV4OmxMaQ1DunJKCxr7nHYA8GSfGRCSX46S9TVt3TJh1/4r/z+9wWf9lDcyWwTldaN0L3evOEWOy
d3WES1WcyGYKg23PLiKwVJJkR+238veH3n7maA7tnWkPPTwxkk/Umf108WFaLPPBuNookrmng03E
RSyfSoBgeduXrmZ/bEA5PcPQgeeybjraMp/jSjVXkxhr3ouY0DWZk9FxsrEAmYZyOYDMLNdPzTVm
rw+rdnFOplmV9uGg6f1qW/95MV3+2H9mU8GvtRbQcuqOpggROBc3gHvA7zIV0Ajqj1bLuWf+FYTj
UpMk3SRDAWpjDvd9eF9VLP1HrZ0n7UHlaDAlMS+Wb1mjEe3faPfRhAdMDMYZfYLqWynSHMw7r5eH
w8LgF7J7+I1sd0ieSTMTPF7ioDO+LvHVhrqx5nMJNfdKJQm0dEZK9Ms+SWnM+S0M4G2XdaGgilLi
pFE0c3NVdxRNMcCrGEWhLLShN5s6DVoiITGbo2QtQGmCaFSzRejQyh6qzmKNLHZhz407vA7hzl78
oQ8Ceq4PkCvcfec4zk1MKApK0QEbkz/wBOFncoTpwiaYDcoSbguHTEivCiKYYggOiFYKm622xe0c
QCe3AS2cRvGWy+VqBmr/pZzV5bM7BBXnV0YooZ/674ouVUSx4loVReAnnwPTqfUuvuxrg6Jyjwe8
pK8VfB/93OjdVttFsekexEw4C5xJ66W5gHKmaTV//8kAJHVAUkmmaByeXIqHRR/MX+u3RXEEf9Q8
K/9H3tX2Nm4k6b8iHDBeYLNK+v1lD0LgmUyCYG+TSSbZ+3igLdpWRhYVUrI99+uvq5uSKbObokg2
5dkLkhlLckSyu7rqqbenSBRzt//KjnfVxcY0eMK5h77KePnSWLMuMecuPjehA6Xq/OvmJs92K0xq
aRIWtyuIYDiwkG6S6SYB+pbpVTb3mwqoypdyhKfuVF7wzK22/8nyqnnrsLjCE4GoxgP1wVphecjm
3qYbKrsVnnRSzM9buZ8o1LCnWBtFNlS3sy1eqNWDEkSEce2Z5IMXDxNP8TDhhFA8sA3ye3cwII+J
cc+nEWtAPZWYugsv++kxDd7SZDwEtFwdwUDabE8vfOB8/Y/l6w/Z0vj6ZZ/dPu5l1yOdexsRuDTy
TvX5zuIp+4eV2T+GBl+vg2LO9TQBW/fkMXNWfGJe/jFZbKbb1WaxdG6Rh5ISm+2S/U7zg3nA6ywv
XMBt85hNAV4VfpcBG5XIhjFxlSub7Q9VdgnFuvUa+asvnTQBRbVvPqQrxGS9QIV/U80lvrlKinRq
3gxLNGd80q+1YxiVGfKGFSLdKOk6YVUq6atSRKFVIdCx0ivr09qOeC9vMH03muceUuMFwGbPsEBn
2zOvjYATpeKlVhcrOwLGCy8o6tnI1CQW5fjnbB3Ih2gJD85H2IzdEniz94rpeHHcfQj3zoDRNAdj
srox6tYfXWOqZdCd9lyQ8G3Vl8g8udKtND4dZolAoR0DVpzolrV3gy/V8+15Fksos1i4w30d9gc4
9m1zU4v/9esMxYxCVefZlJCR0cC71arMinbSJgb6WXwS0O1GkWGzJvxVyoRsRTTYaV3AbfOvBzIy
Qlk0GTnFEaLGcWw3fLDv3gTvqr4xEsHGoJgbs/TjIQThRyzH3Jpg+ghc1F6atGER/HZft50rPrIs
tOvDpyd7VRYawxCUskO5WjFShjr8nSxsQpgc/JaqtWLljYUGPSjKWvLUtBCOCh4E0vqb6jr4eeTM
xbvozSq7uHtU96KsR07mc/fT1fbmJs39Sy/4hMkOp+KRVvskYFnvknwFWaja6ipEkZgwhAZ/QmgH
8+wm5RQ0MRlHyMOCzWHgLeYRBTtZpvnGZVq96Em1zDj2X4ayusIrZFIDDewot7EPrTbcj+BADYAj
bovrZmuZLm23xzfJYhkoxnjZzB5rba3+TD6lthn0Op1DmZudmzDd/6Z3uWGOA+Yx+Fi8s8N4u5nc
fdbjMcs/mcduPPqqZQEJPT5WLBSQxRLzCemFNjsFgbXooFPq1MYetjBz5WApg1FminRAU75sq+u0
8F0EOg1YHx+mbdVqUmyKTbquzdqDEStYdLBdncrxEe1wpZNpx/eqr6QdP2BmXC6LaXYDA94Au0JB
VrK4qQ90o4QOIuctMw+yi6hVmgTSDSiJyvzFfdNwecKnL0/4xXV2f5+s5jPzLenzNpoTuV15GAEV
531u8Pi6O74N3WXZ64MYHUFDnYuFwHw6NI66boAEFqlxEn9BhUQYNKgk55Kuxeo6TyG8dChgF+tk
czdrMULTN0CTSNLDIljtMHW0465LHtqE/cEeAaFjGQfSlnjeoBpoTylevobiFJvoSJfpvW3Xs8kY
vzxJDoXEUW5zn7ucpzeJsWhN90EpirZc1X66m3QHz2pmBubxdgng9hu/gvq5PQ4LOTF09TXQpWER
ioUOjZWeBGNldp8O+sxHWIQRIuMo0TYOliIEiHEHAxaAJ2D9/27X/pv16vY/4RAI9rfFv97+/Osj
+scPt9ml+eenj7/fvf/9Fn58D3+8fXf5o/nr3S9z/CGFN757v3z/y79+ZeT+AzO4hKu3l5e/mR8u
b/Qftz+9zy/t/7r8/rdPH7e/3L97VysP7aToTjYSluitX4qhlf7wR0optFp0Mfs7hb5aJ+vFfnrK
LnngvZRtyif8C/TF/yjqQ3M4iy8cmCFJuEEscggfbDdehnjIs6CjtFc656ga9ZdwINpyyGQHEw9t
0Ymb7gPhjAYPXoEH38nf7Dxdhw4fI9uub3Nz+gx2sb8Iu/Dn1uAZkLZicT3dfQ5u/9dBciIGjCF8
eAvjL4f0AiqMWo53DYi8+3v6R2Ik0nHRhJsmKBKsZfnnULtR1QLt9wVzKSZc6IjqE0Y5T22kBtLR
6+W3oM1nb+g7gMJfwZ1NzTMsHt7Q794Q8q7scN193dR9n/nkq/JC7vdeQOuv3hC5ylap+ct8+Ia+
v/hz9uHy48daBRGbQHRPDxEcqaQs8nSd5T7oSiDT3iVSfJYIieiSYTntOszyY5Cz+V9up6bZavm5
ye0RELrQfFjTtVdTm2z3ftCIaaRaclueIqd1CdVMGqxNEWKDgu3WDV51EtWyi0qooYJ1QZJWwkX0
azA1vA9vHKcrC4HmWVrAAOzpfbK5vivzmzZjHJgJDTGq04S6gQTHQiE3ybDOYaI4M0Zf6j4GF1qI
bURnsUyDI67k4If0+WDu8IQrqbrOIWO1WSRLv81nEKhAfOAYc/WqoVCzoGoUsNvgsWuOWvZWR4Gf
DQgHgypnvE+hoSsyhBvMM2PhlouHdBqeY2j2RLds6xsUU6X5LICepr86q/ezsXoGHnzVAJ7o269K
E2m+4CtHT/KC96oEO0YY/SBLyAnDkrGxbBcWo6I5PVB94lNRTL97/9OP77+bluo1tRU/aW70+vXW
BoiDJYuUatRyKsJxZbNcXD3myfoPHycyJ217+VskiC2PZil8zneq92FBGxRD+Cz40Gw+pJLdfRqw
6H6Ao+FUn9ezhVgXx4MskC34csVffp410bMA8VROiRhaLKzRrbl5Vug+Z1W2ZAbvqlhfSoS/2o/Y
4gyGzoHspunT2iDtkNtiIIim8RGRHwARaDdHYybZMeLDnAcLNsvKV+OeuXpYLw0sjJ47MTfkQHQ9
dmpbUm1tRQ0/GxvKMNLjPxtGmHTH7Ju7RT6HK9jKZhjlZTX9GkpIQML9GlR0O0z1AWK28GE3Qqx2
bIUE8y0ino4dQ9Qqc7YjzARLbUcZia/LLG88NNQZlOj2YPYXsGh/uXByMLM3emHTdOXPTsNYd2/2
1j1RDQkJ2DYpX4kqVmxMpcOZGEJYy/PhJlJ8tqETYwjzzzfblXW5Zo7AsRTnWm+AUbWCx8ACztt1
49u9+RWjJRhhQySPjqmLkofP79dpmAE6ltrgbEQgZJ3ZMus5TbZPRkCS3LsXHEbgdDmGw4sj0VrG
A0QWBxlMVCIheN8bhtDA2zNQ4YT1EMHZr2kCqGsjSpARTMnmLl01oS7jL6FuvbCnPjKM/TDqlr8G
YcOKjlrMyTGPvcDILTDD4yyw0XjfZ5lb4PpAV8FEjLN8/Wl6v3gCF7sMVN0t5uZQPyb5KjBvkihI
oOlR95q/Cn3aqRbkdKoqTcbDcDUMWnPwKRA5kQhh5CLNL2/h/btknj1+9/M/v3GSYAsI/FFcKmOk
ACsqfh/mm2dQ1xFo1abdwkvBpoXGAAKFB9e6z+Va5t6UGqP4vOWAkbFCiTaAEw4lAnFwFzB38qnn
Ao9WqY6pGkWRyaHG1thesX1tO4ZpAvX4DMYuVCLlaOWcMaom2tQT2fBR1SXxrQYM5iCCjrHRKmZ8
s5HYmyooRacjKC4hOSdm38krq8roAo0qh+z6LlndQnOJU5d3izRP8uu7z6Ahs1VovgwTckKVOpcD
7lR5iHeAEjIeWgFW7Kvk+tNtnm1X82DdEI8Y4wwMVeEtmfYGXAjzm0WWB2cPU32W2CqY+N6xVY5Q
hJbsIZU9pWOidNjum8VyY05jtgrLISbAuqpRFOl3RSDtI/waxuvG2MX6IlXkcpll8x/yNF19b5fr
6+Khhr8tcziNXvmmJT6Xxi62V00DbG2WlPVqfm1kvMRMK9GtAcYRlTxfx722BXAewliIjSg9yHME
G7wpHpQdoCylqhyd+nMBPRrGEfg+GvXLY3r1abHzkYt0469yA2x2Hhhua76OaGYJZ08NUzlb2alD
SqgXI6xeAngL3u/XzM2ust/yjXlZc80pp3i8HU7vr4zWdhko784KI+5CnScWZjGDLxamea+embE2
E2uimO3DR0OU4pW7VE/EId2ShD6KVdlk6+kyfUj9hO8Ed8PdvsDZ/j27PbbO8yFZzsy3Xizub/Hs
Fgz8FCP0ZP4DAwxvk1lpjeEFrb5gM7+dphLiMwxx3CUc9HKisX1dIRS4vl18u10tzEr+OJ8JpjXV
RFy8s79VltLO7pOnqVG3NQoToiecxjiOPUJ3myRvGD8AkIKgEfXZ0wZ4YJa7rnlvvb+dCyfPYq3c
cNVmc8VdeXbnwfAHw3+Tz2bPlpmd5brjd7q4L25n9AL49msiJmzPOxVRS3Ce2dWMfM3LmooA/7+Q
RrmN6EI3lFbYRhEVk9/sMAvo2iuKtTcD4sgYxvSGy+GPx1sLNMQD+4XSqyLhLXmFsRixywA9FY5E
jn5N3KU79yQrJAUHM8RCVgj97Q1B4NnDx3WTxJSQfPRlaTdZeyil4Ip8bzZHpp4CQ2a3/sT+Iba/
touuXbqamdpgHjFhBlWLOC25bYPp0G4rKB6hxXF4i1KOLnf7E9DakKwyR2bMCNA6z9b7aP1OeQem
WUGhOqKDMuQ1jOkjehwuvn6tSV00hX/rwWZRfBbYWe5+ENpwyiYx2E69hLqebqpubLqdxE7yERNT
i9VysUobnBFG20636rrwq/XdtFRNoJRq3gbwDmiizimWR6UT951D0CFl4NtAT1sezP979fhMKnm+
o025PEv48K+19IOaMEYRHv/42zGn3sQcTDrtopCc/FQSOlC+tsgtxJsSf8mceX5KX1MHKRSwh0NH
0NQo1PhIqdJt2gyXuMHMBA8fd73O7q9AbPZDYqxAL/x3waTopoFO7L2u8DuZbfNXOwCoG9Urqxyv
4i7156YUwP1O1fkvVbSbaj/dLIyVqs//wHYcrKARxGG1AnYcYJpIH8znuykUTSTpLAo7aXAnsqs/
4Bab8kh0EoN3MbQ4jZTEZnEiGMQjixOYHyyjLEuLcIF3qrvBEZ5iOIX6hBaYHUOMGD8nxAyzB2DG
YR4wjR2tlGo04a8SajUcBIwBvSJ5Zo7Qyp1Xq40X92D67Ic7UpmkWNS5QbHEIyq64uF2epOWDQOO
rtoP7DBUE+moW/6YXhWwuc38jjDDTcuRVygLLQswxUQtJ7h8++57uHq9wIsQDclIOdKeNFkg2JOo
44vCXtFJar+W2DGaHJMx61NAmsyHjWcNwb6OU2X7Mjzw8vYOpc4OYlAUsuBRhe7pfgnbV1q/Rm1g
LBGT8pX5gOHOH9F3yuGJ4rbJE/+dYAoKXZAx97HJdNu5GorFrtXsF3Q7UjO81zV+lmgSOZHm9vph
s6l51FGK5E+Ph4Yxq2R80qkdcfc96D8cLDfni0o+3vmyGx8gB6QwZH7M89UWJlPb8YrP6KR1ccYC
XRRcmP90J2qMU0LWxOgPqTg/FrIG0+ALWZujr76U2QVPd5XpHUBOtjPA6/pMQSF6UUnv6k7rDb2o
35ClwBfvKlh7hrUcB0BSFIvb1XN7dzCOyPo2q/g1QbHelawuoOXYjyZt2JmNyVBf+8SR9zsbCaOR
kr1i8NpJKN7AY5GKUjImqShDMVkYPAJRrz5kAtr4BpB+Ox3myMBiBQGZqFMH7EY8P/ihigJ/xZhh
jMUgT1wJ5kCMomSy8s/ThcKTNliT9cUhjm1lN8wNfgEM0mrX4GKnpK2yVfWT8rv9LEOStByIzGLu
GOJYnjOc0Bw2EAp6lQV53ZiDI6k6iGAL46wUivC9O9vcasA7a6OdgDTb520AyVWrvN5pMr4bswfQ
vEzlNdGo2pwWH/wuuoQuCvj4CP8xpS3tMhvcjXS3b6vHfaDCu7rG2lKNh5GkhX9cNRAndzkJHqcV
Iz7I91DNxxDrBu8SBrViGdOAHLKmT0OT1lxguuV0phNXxLpGMB3AeK4F2F2EvdFJ2yzWQZ2dZCaw
EohyQltVU83eEPLRoBdHR2ZeeOyGOep6gINTEqNt7tKbsvWjUnNhNtHfeAulk2xELVP75NqpxHDb
DJN6QiWKKOEtGX1Ba59MOsEnjKtWsYhx9Ph1YLIab1uLFLpN23pUDsqoQndbu2auWrtgywLuaIJ3
kwIF/FEH2ZLjCxxR/GwHenlOjdIH+Svusu1y/j/5djVbZRd/+rNu7a+wLz+9MI7AzIIko6P++oa+
NX89X9m8cBLvPoB/7Q81b8uyVGsWWdEKTs1XIdyoaO+3NjLwkCwX82TjCwVyTcgA6vUIr3P5a14n
D4CLYNEV2Gl8kFQhPoalJv4Mtm4ZEh8JjB9jEIT4AhnMSBcGS2VmcRxBpRHfPyxzJES4DPLzMKhC
MEtgPkaAowo/y7K8/WzYxjmgqmX+ZXg716TSG7JgihkhRComdIZBFAmEL598xf+k5di4rpd/TBab
6Xa1WSwDvdEwFIhSEVuuXwj0KZMII54nJkVkA8YQlYRSenFpzRUKGjJfMAnTHq7u/jGhUqhdLz47
qbwbIrKustvfXC6Y2Wb+bwSagigpSZJGoMSYHETQ8xSq6XfOuD8HjnhLamU20CArSno925ECj6ZO
aWVgOWX0VTgQj1n+yX8QMIIB3ZScxXk9oEzs6rxKhtEYMJH6QQWJErM9EfaU4TcSxD1cD6OqMR4k
ErSP2IGG9h8e1LI4ig2ao2uXlo92YF2K7qjHLyEpptjrBQdMaT3E5t0scqjfOxgTZMusngqDmp58
PKDGtPNBxSZ0D1+be6jRz4pu+xJFG9CgXyvo/wvc8wbJI9AHMUXi6Zg6qmdKTbjS5wm0BMkGqeJq
DAvKvAIJHN+EvqJASzPfm1ItO53GOOL+HBOQ3A6R6PQMabPXhc1sNlBaAixCryanEOQsAZIxIlBk
S8opJkJr4izpKU427hcarg4lunf8BesaGaQSWECj5mki40ab9lOFokta+OQxB411Ji7UY070KBj+
xTz5pmIQjFt2Y5xerYPbdZx0LNfhg8D2Jt3jKtfsLK0AGTyKo6PbA3momD6euAPSesZHP3Za6LPh
v89pEREA0ss9BvTBPUVIzCx9iEMHk7b9+CwaZV6X6ArmQExEeOTjHPLlKO62aieZZoqVklIH+YnR
xYc8ub1PZmH2IU6RGqWkiPsBqW45mih0fQCVv//6X9XguS0S3oNNkKssT11rg1VpxfYqHJwQbYcT
tHerGsTH54bb88bHduwkEwPsQuVQH675c47z2nxaZHkTkS+lakLZmZOdNSPYRFKBDOBhvIN6dsz1
6/nN1MCCB+POJcXUvArwQdjxvXEVmt8hMn4GYQPly/CJ6zQEaOBYnSVs4SU5E+1GPQ8N7/Y9cIBf
oKnS0ZyXAKSxRpADBSSX/0646++eyJs3v6h61W92ME8lt1kouaBVnL04MTrRKE3eYIWlXGFxQmVZ
fl/6VDbgtAs+mVU1azv3V6fAdL4vA6B16VM4EmgoDg8SY/R4qanHQXABCKyQfj0h0EbaQi5Iy3kF
pxbiBtwnaIthaJgomH3Mcg0sjPIxnkqYPD5EXuCwHd8Pe6CsmQyMVS2zlMelIhD7QWQEX2XP7Oh6
+oqgSaTs3Ha82KnednZcAK93HwRpv/qnymhUeIinDdgwSxhiVbDrJPfWtAD/foR2mj7G6+USBo2X
ZsOq4d82H17AGYV6aGHRq9Pw5cZWh57M58u01DvVffb6z7olO8vp97FJ8tt0c/QOCNC+ctLBxfCO
1bbQwl26Ts6tOJswynBsGEG0FpSgEMO0rdRf54uHZJN6ivbtW+WvCm8xpERniDcX04NxOt48gq2v
HDkwYesuG+jOMaUicmXxsKygXaKnWk+YbDe9enhN7Rmz9DzVyCMkMLODdo29uKzW5i7PNpulHcaV
zO3ps/MFX+SN1vObi92vzjT840YMJuu1eTqnO8zv1JSiYhOBBEaxPegacgnXr3Sl0zlwo/GskucH
P9oVRZpPyHMfVM2t5kZp6gjJDJ8reNvMv6koFHCg2IjoLk9v/HjIuCOkT7nDosiMwUjn/53lyznQ
eO3iB44ufRNomlJQOiDF8GB66w5COt3Daj/Js1n2nqlW4//ZgVR7MEcDbcuUTnCvgMnRIE6xvSrx
EQnP2sQSwqh6eE/ZDYndL0Mp7YHGMOMddnHWdxNWQTuWg7bMGzC40AvBkIZQ5xeNipjSvarvmw7m
JgOrETiYeIJ7te61UUheXcRky2F27NXR3lKN1HDe2cFsNLgFm5r/3vy7vxHzzmlmszKF5cXal8xz
RERc+fDVnUVWULN++vVbeEzf3izS5dxiKfuTOX7btOZG0QljWojXFURs4L2FmRViJEUe6pglveDk
oXq6yuafjyAGy4Qi9GigraFIVMMwD02+7PPOyDiIZJN53vUX7Wmo6CKRTM+RtJagBjJEbxk1rjth
UoWqWMUJmMEHGQhVfSz3M6EM7O3Bq2n6ZH7LHpD9otrtfXYxzJrOs3s/HTVUNIvoCqupkYtqNiGc
dQjLNR9afNGCIrZaSVxzG3am6kUTNbazTvngmZtwdJ4SZTQsHahiut1zuvIOSHMPbkscyA1xxeEu
jU799bcbgXQQbALCyXIykocRmDN2xkDfcAE9zs0RVKrDLBYvyCugj20/3A5PzRPXw+MYcyiN4kiO
pXq8XWMUepl7ab8uirnEMZebTb642kLTNSBfP4ENjF0ZPhpCQtEQgugXcfaYRoPbCxLLXtgUHBK9
nKh9Z/Heql8bYf9kZ9pl240/gmgOdq84fWejwTEbzmh8Bqjsqi0f4R3LqQu4sUrfHmiY6BjT8iq2
2hb4aixgpuOQyVaHD7J8YQ5CA++HwBiK0kbSpV6/E6uesdSuqrQR3trIVcy24DYDCQ7rZaquoM0s
7pyNqWVgLSuUDudUloiDoOhK5FvsUSOYj+OS+sf82cj0lxDDs9ysXp+edjmbbbKQX3/taWB7TkQC
vcFqfTfDtWY5oTCPX+OopYFX/OI9jDhOi9nHZAOOMhLmD3Mh8ydcCv4icDFKzY8//PO3k+iazA9D
wyMahEeUfGGwg53F/jOJYygqr+UjRj11gfD9lXLJpgrsTySS5QX7dowIh0BeqBdXT1fLW1ScGL/7
Qki3uGFLWagbK2BO0uqcmarjExUY70nQ5lFZMuzRiXGguBcUalvVOXxsT8ZSmhZmdTGMjRJ7n22L
NHsIYXfI2IykQfxBN6NARK/Wq+6eYq9+9qPIspLiCJBvq5YDXaNlF4syzuc8vWOzKXDLuc8xVf1P
H/3KXhDjKKioR6eu8CHh13OQikedqqA65Tg6aOZYqraQmTdDZl8qCrMIbd1O2diCzFVWpSyeXn2e
Vhl/gIbIu7gwGRMND69VLEuhLJWuPifwxKhVhw154VYuiv/j7mubG7exdP+K7gd7dyfDNvFGgnvL
lUo6ndlsdTap6UzN3E8pWqItTvQWUuq299b97/cckJIlEaAgAJScncp02+pugwQOzutznjPeT2sV
s/xFxZVPat/U9/f0dl4/3dNOWw/+RqRLv0PvLV8uVFhrIow5E4Qezjg5HG93aF6bxu6OqEPOOi+E
aRBtvpwYaCN57JbRsz3pjjLHsyZJMkiPiCaR2pNPJTJzYzwMdrkzT4ISEHDY9zKfKeRSVTwWlYEy
mmQYlgSqZutW3ZYwD66YyuqxkaAOAwsbLHterV+/grVWs3yshnupjPCueaR7s+HeSSxBxik70t+g
A8vF8O+ukP8pH3Ea2lsy96nxFLyzJB3wmHVs7xjt8jeg4Awuq8S5WZRdf8LR/kRoVcO3IYnmI5Y4
wXJtRaijoFGInPYrnM8TCyouLsTYqz9AmLo3Jgw95hM4OJImiszZoZCg0ZdqRMVDgT1v0cNys5jk
1Ys2OyHpSDL2Rw96YinpxcVGCM+i/8sin8N9aIBh0fZbhYl9yMe/RfAg+lMjBKt2LkDYgNGJ9OLK
Pk/1l2dDazIu3ZoD93ysY9aF6LuffvwBSQpQpRrbKTJyfit0Tx/yYrkuH1+aQTPaplTu5t+9ao09
WE6//lDxIzzHfcezx9qZVybageyCeHVU9WE0Vc67c9Yq7tO62KCBaEqucRn6wBESUy4uqv1VMhpn
pmXTicZVXk81qpDEjKWjlMVvaxIbk4z4ASqKqlpWPOaRcXYuRU4mGg9cgmnmoGDe+CFCSLoeR8Fw
5lRghTcGC6BN23DpiLw5c3J4KkC5iduPeb2O5stJ+VgWkx7/gTTxZOM/aPyElPJkSKWB/SsmNSGy
dJApvs7FiNOz+ZwIk17VB6y9arWGruERXM8sCwXf297VQzgpfDCSSBOeiOQa+vlkCT2jsdusPJ2a
Uutqe7g4tpsHbS7dc1CaD4uefJsE/8DFQZ+WKL4vu8x/9M/6mGwoihGCvlxM9L1rTPryVOmVYuOf
P2PPe7neUop88/HjT3/XkuMghZW8ugQa0iQZBp6ZvKARK+erZbX+1MTGu8Pdz+HqU5nY0O9V3TJL
salFFlMi8VDNQA6ihC2757ZTOWrNLM7oZSuJ5uohx2zeMAqE9ioQjgMNsrDZof3OzANAg/7AERXA
xJVBzmfSxKhBlk10fsRYhhCcNH0Dk/tck7JZ5kUTHkaTG6p6oCJBPfBs8HEBpvNVDxH78tSeYXPh
Sv0frccTY08lCeNYPS1xbX0ACHFQGpL3rlzkDSnl42bRNMbDW66Wq80q2nlaSmgNaPrEU1m42Svj
MbB4kFnQGAbvLIdK1KJHgeXnF4wTdSU5Aqacu4DBzrecMvMi+j7XnTLAM+GFHenbwysrvetJkRad
kiSwrsDbcSyhemgm9WaxPSWc+qgExw4NdkmVc3V8QeFAtCfAMjyFtzXajzG/gaYnXC7zYJA9EPo0
X+hnr4G2x0l1LIxl2a5swkdR0CZOF8RY6EE41Pp5faynPcmq+xQFbPCi+NI394OnHLXVReg+2zJs
HyGWzBK3zLmNXmiR2rgragQ8fJAvfuvZHR4zbLUIrCM3cBv1dYMEtVOSvaE8Zf9oy5h6osrOMLf7
iYvaPnNBaJIMMtvtWKLAChfVAj7rYbSGu0ZpuAgGlazKVhhgD3YUiVSws5sUzqRJPbFV3flniadr
0pNsUu58VeSTF7RMFn59ytwSIH06YFLMCkNaOpaZr845cRyaC6W/TztHSqG+jycnHzT47p62bfCF
j7bPA19qnwg+3z2T+rrNhHT487OR5OIaPon2DscY5sc0FHGfqhu0rH34NTzo/XI9LaqVYQAtAQvJ
UiGGycWWB8NwF1uYJUR3R5ukR0KKUTacc41VvubiGAt9BC32sLjDi2fsBEkHN159Es8glCWh2E6s
ESZ8WIutx/MgGV8qL0w/5jcax9UjAA1o+jP9xcIh4SS56kjS3rTxN42t6jQ+YNqYMXHBeQZF34ln
WebGw+ZSemdZ4NhlB2o2cwOlSKyVkssEBb0kRSIBdzsdFKl2tB9mu4RhbRqSvmixXPd12eAcPaeR
h3ti9rjNOEOQOF3iZptbydS4nsurMW0KQQjPvLfTsUefy/G6nOvHdqeDZPqUQavbiBh8iB/gL1Un
EqApIiYF/aM4SHv0PzrXiPNLxgWn2ggkY8joexGAAJfxm5muygRj2QVVDaPiYqqm8ZNeP9CjkJPz
GYxO2tpiATqmMmZKeazsyqDmbe8RzBBsnGoiyNvJWfbOouQ4D4TTy6ninngjIQitSS/iKekzf8pL
khfRV0QETqE9lhUYXSTY06fR8KBFOvhB/9Iw/PWZ3IT65iTOU1knzJRMEV3sF4GAcviSVxPUjo84
TBd9oUdsMOvhGyAKP2fVqiBMdINbCoBVpQG/EJ7h9GgrlOLpFcBX0eBrCEPX4/wFHKWqR3uIDOKs
LPZ4FK32aAMrHROsRa2FJ+AMyPOfyTTUpFfIIqp/CEoGYR4aalSgS1YjkyNOEit8iThDpeI3RdN3
pe9LyDAb6LGoQyrl1GhInPPHrAKa867kI3xqN+ALbE0ysiPLFA4Z0oNjaRR+Tz0fR3ok6Vt5FDvK
ZuFXyDLqqE79Cn7gAv/SRQtYnKUjwYiPUXJl2X39Cd9Mi/m7L8vHR015wcsi635w0/KF8H02lCSa
ygYpG1DeLslIzSS7jErT6tQYgnrioFMDkvS4uBEWDnO37rF1oftjfMJIgtWEASyuvvlF4Bhm8Wa1
hiAB3ABD5s0Kt0IzKjy9kSvOThTMapadz/3uiR2ktC3mecYO+jiQJiMisgtdbzthSjNh2bwhLpfF
6hmGSLD94a0qB07jsGoSe7sb2OR2YOJLpLrXDYgt5EvN2GU8z34fU0uRgJwNSewTspgBPArZpjUo
HKk1B1nztRYZTYvZSp9t5EhYLQeLTMwi0hOiUOTpkEPEjoezNa3CyITZJtK9zepmBRs0zmt9/RRb
fdPzbvB5zOLhR33esO8bsp7v4LrdsO+IJsyRDm/k+jxfvz5Nh7EH06B2Pd9BzZ/2qBHf7mWJDTcR
aaWr0tgoSS0BZXbeRzNqB0z7wkD+EVu2Iwof7pHtKxsLZSyVloQ1YZWNdk+w6yPh/8PuOPdS5efc
qpNIADhru8khF9M4g2ZGzsuI+7SBC3BjmMjEBcyk1ovKYsuRyedpTG0WRs2TigdwT3a9ovttUF1a
edOgBJKlw23/qauVpeizZZfflBqcSZMbGQ9yTs6ZCM1sHJbGgoUzuW3b8QSep1rq4w3KRzSJA9UC
D2bf4us3ZPqk867wqoSn6RDZ01cBMRtWTEI7vXWPGeohtj2vdyXNpCWjyuBJDvX7qZEssWcB4UwT
qrOaiQh2lMaa59GZNkYBvMqe0hoB/4L51da0ZuinL4uf2+j5u6J5pqU2ms8YtmKLkDmMHg4zhDrw
ZMAb3dcVgjc6lde70acMYsxteQRcd+egpmqG96iNosFszKScvJ8VefV39f4/PfzTOIzYes6CaeFZ
CcoJhE8dzn9++kVNLkHujGi5aKLLfDL5gAHmx/Zv6ncA00lZcg0/+5D0fm9YvTW9EhuxLMl4iF3c
i5fxGf5erqffbtbrpUF+Y0vO5gHVPOUk7Is3w2/eKzoUZ4HiSCKTDpW5MPajURrWrrRMcCcTQyTD
+yNkQA1Sr/L1ePrBlBoiPKOWEwJddadNOY6q8QPZkBkq3RkYM1W86XO+nudzCvMFKp+enaPuK4CF
7VTpDKqmKjmVDWqh6umyWo83a4NlyiynhYatOFE5QL5zS84GfwzR52YMgt0XklFJUKIHefc+6tKE
D6ZG9U0oNPaserrYsT6xQ34Yv4rWANz0nCReCv8sVWusBWByhAW0dNuGRFOUwISvK2GMYrrZ8XMZ
NSTmTOhlFEWvGYY9irMrmb3ernESQ4zDXJIhczBz+Z1K1tVF9Rmsao4dDs8GOxGnI+YFDDrWlft1
lCY6iV4TfD1cb0mKEKX0zeSqFGO/ua0MPHWWslAG/h8/fvwP8Eb+2sAo7YJPCiaeyGHMXKvd1tMc
4qiiwopj3T1N7THGAucgDmMJV9VyvVy/rPTJTsY9Vz7Ju/8qwX0gE4YEZF66Xi/J7aE0dQrUI7Ad
T/DRHB4MyWJfUG5saMkSzj0L032R/6EsG/oQPRNYepvcEZNeBRtb8rU6Ok8OV5ohaYSgF8mMgPab
RPvzrrozdVNLVoUzPZYWrVXqYdDI3+LnSXv5LSfr/Anz9HD77GUjP2iJtiSpVqaT8Dj1zOIYcfw4
DPbl3fP8uMUXyfoJc6mW+Jf7RCxlYAuzI6M9DWZKwMClyZBm152MjQ4Ajy+3OegaU0jjeqUvmghL
emfnMEt7RD3gK+6Zmu9z0PpzL1jHHAD3tXdbQHk/LJ9BUagRZRr+dYp90anX5XxaNpMxQW2qTv/I
RFCYCjWcbRBLYXb3VESd0avUXg5mW/TVXgzdvJSNeJZ5lZrP8z765JVJJLEZTG8coxMRWdOwxtfV
mOoVmS1Dto1lQalFGd6KM9Zg9RrMF32gs+yt67GabbCU2h86pVgN8crCnzBseiiTzDx9B4e2TZrJ
oMdbFag+MNOxWcDX4Co9zPTmGytsLkHi9WCwHdRrQtKL2VkzCRAd+dVQzV7QnhPU3ps93mY9jbry
f6+YyDtZv4pj7hluOlV2xYXbsakMlhLbzeYZz5b1pjLBohI3Z3xPl2yzBg0dWfuqCLGHIGxe1rXi
wnplJNGi6zHpxa5jQrUWlCAjCvtja7lYDGQJT2QRcUpO4NyYTp7NBPQCpwtTH906LyE2eN8cwF13
8gX6tEqdmYGjHDEyLDxCoXsI/UUQz1zQYWChOoYMoweRVMYrmX6w51+KhxrLTus7CJvxb4A9236E
u98zgcR6FHAQ+TNQKmEfgtfGH+yG1rR3N0YviBTHy11Ss+6gPGGDky3PmCW3GQXbLUeS8esU003j
onhGOPlD25WU0KHsysYw9iv1LYkdqrF88fJYzorjhCz4e0nMQ7lf20T4OXBYVKJ+9Qv74AQ220y+
LbPYrSmj55Ia6QHBSom3U7U+Mb8JQ+9hIL8oLtrGgYu7xjsFbnSNBQ9VtsAQYX0QHqw6JiymECDw
0DZ9P9vncFlVOwfjl3J4TribWDHn/A9tV0QSrlb6NFs+5LPoc16VmMjSu6yY8xCBIYcL/BrEaq0X
mkT1AGWDX+btoJpTcW6Cw38kGcjm9RZ5OFL8sz9CiK1HKKsQW5CL6aTeCkQCMbeU1yjl/MmjigO2
nydSJg5N/17GhAvKSNh7v1TNVnjzf97G5T89GqhPM08AxKGqK+eYwFfsviAim5kCpURaZnMDE3/i
WXg+WyX1+hdKJdFkSB9Ye1g9zjB1ozx6S4rKKxPV9DH+R5FPQFm1TY1T9V0z2yVf53oEtXQrKuzn
lmF/ajVUHqVc0VMZbbmXAsTw5Ee4ybDM3SuxRbGYgE3fzGY9HN4ylp6VnN4LBNdkshzbDUvNPGmS
zIqtN+VLsyQbuG1hz3nssthjD+ngsNVpvlI1Km1MlHlWz2xV1mvS16itUtXcnPoQ6Rzc971KcVVi
v0RzEboctCTmOBqXZoFN2wm4Y+xbpTu4+cWs/FxUL/CWE0NnPVgD7oVeO6FNi/lqrW0OE3wYGhfX
GUZcigG4ypsz72lOUwfu1XCxf+D7Nnr8uatbGEYpXi1iezrsARznxVN3+gKnnq0QZr1dn3ZICShv
kqbBNxQ/jebNx9GsL5OC7HaZHCYFeET1toc/6OlryiicCI8voNDrM3xQ9nZ4aPonRnE5TJJDqYZt
HJHP1sauLEakG3a16f36XE6KZbSewsGsZ7CUIvAAg/c1Znfu96J1PK318/p2+1fvM/zfLR7mPT7b
3WoGAVi3QMmwg4SFunLl4nM+KydbuhF8mC81OIzjYmVCyhEm5UikgQECbX8TRP5wXhCIm6HWieCe
PrPBU+iBuxJfu+EEIHLhwWk7ECvE08CBPmCnyXQG0Xyxzk3BlkC2YEZYIJna05Mq8qrX5WwbD5lD
oRTJISQLbkr2n2bfquDzGGxKnJ1dZQ7jBVNs6+A09NVaVlYXSwrbUU6XJa50yA6CPAvChcO8Uhst
/u7d3ZEin6/4qyIn8OiL1fSIGDQZySxLFK5GJulg/oGCdxwdNnoK+uJ4NkjLm97YRs25GbrBsfOM
seFCIxMCWxW/QmmddtnNIn98VK+KGcuHvIaQO3/S53+QWSVc1LuP8DrV58ed+9tfBRAsy93Wstxh
R+yvJWjV53dztpHdeb0QL5BgR2zWql9ruk1hUZeOj973RRzIJ+zxAHeXvlt3UkssTUgy4qEJnlCd
65GLyO6QDIob24czmpGDsICwusv0aLfLery3rupCVMr3SSW/m65Edjuvn7qky2i2Y7Dc4tJOGhdD
Ko/X2edms429M16g2ROqU+XRTUxajA55rZjmWsVCgtHmLsM4lYDl9cti3JMKT7NkJOLkTfMLi5iQ
UD1amjJJRDRtjZi9TOPAs2ZAd38G8xU9YNxZLrRGkggsBgUz0k2dvCcSoZjV8rvXLpqEZGRYT0zf
qUs9X9XsgJxoH43TN5WS6h3/xLwKVAFynH4loj7hUAXLv/31o1VyLEkQZBrMx4AlH7ZcEGUvQM1z
gJtO8YB8jpczu8DYcYCbVt+2vbD61JoAo8quoNiF15CB57r+ZjMp4X7dwUWbgs+AhwobGn2BP39t
PKF6ZeDLlugoU34mZe+dX7e8gJffe+8NKJtxvlI+7Pi19bgToCAsNhvy2Knm2JM0G4k03FjCxWb+
AB7j6URqOuSbMj2aBKeJygtIODzNrFwUzXykBv0xnuZmvmGv6vOB3O+AJ9ZtZorxP75iuk8/od2B
Tht7Y9LYq2dKe537j1phK/VtSvEgzOQnDHZ/go1S75vX3LfFMkJPqnjlSToNsUJ/L5gBdX4MHCfE
4nAtjTb4JhxkTGkojbd76fZGdblnyCihbNAc0E7RmDlGCfPcZ+8Iun8mMETQiOP1o8HYA8+2kjdF
TqRpvpjM9I58mjpyjGhlYVLMClBHK4yau4JAMd0q4qGihke0bLi/IBOzyTivJr24G8oGKTRYxXu9
Y29Y6mgEtUfSLxLmdl+/EV+HSumVnqrH+8U4g8TBXY+2ztrfYy1iN3oEPWw//1xEP+uvQAQXPQ1l
dMCkjH/bXbavsep376cNKMUh2DK5jLI25zuldOupPlWWOUwkq2zHeqmSyQYaGbeSlJW6stdUBMls
woFL9g5FA7BXd5Eg9WhAS7TzhzYL9VGfQUKnUAYju1Dw04Yct6EO6gs/lB5I0kE0r2ELeuZlC6yI
0qFcdquJ1CkYSRKMmmu3BUoNHO2D0lCVgU+H4mRsL7zgabV0LCmGRnL4v7hq70wfADdEd4wdwHcI
veg31UHEXhSbTtkUfQ4FuRfSC11breIQ5/v0gcBiFFsmSLgxo3j8p5smONLTuBisC19L9lYQVmyA
/i6bwGdb4ZhhucMMuGa+LZwn0AOKu8M0/yMZ3OL21D4VYIbRNy7JXF4LiRr7oWn6jkfdIdyi126A
lnGgXkXl/En1WyCdipGqVZIh9J45j8eR7NBpbEI927ZjblZPVa6YzQ2AGjVum4XHWDSKwER358QQ
0yXrwW+nebXQElRmXMUaMZdDS1TtJlLpIEORbEgQwiCemQDLnCbZpeFvsRjc/eVpHFg+q0KBKLsd
exQh8DLMDFCV8dj21Sx7Ai7pPcdWc+dN9PgZiQcKdJ92BanFMnrCOcZ5PdVnPJkvJ9vJFrk+hjLK
YzWtiAa0IGBOnywKQUyECqt3TE85BFLLqGlYOF3zRaSBtLFiSVD5ZlYJ7uR8bvfd0BaIE387SfF+
vbLUn3rwnAJiBJFZaYDEh89bbdEpNu8U4gG30wI/B9Pj24RTnT++uuH6pTIwWZnHW7vHRv3z5eA0
LKdbaPZg74KYdqNv1C5W7nwkwTq1stcX97e/ftSHhhmCs3wOqGuYYOeLsbG1NE1TS47ExEoxr5er
kxwQfMQSGkQjHvHV75mj3Vubp0BTPkpE4itzOxFTwrettxzWxpoJycIK/aZd7LGoILhnMdFPNElh
BeKxoWfQF+8ZPz2rDQHPWJ7/LM3uNUDxybKoFS9W8VzW6w7xK8c8gv+x7fa00RKdI8MfLIjDq3Q7
FY/aEik4ZC633OIHuxm1g51ZNCIctTukyVXgUDJCZOqtp1pfJl+tGihhT9Y3IbZEOeduGsmoam8h
ZMAfLmQQfXewbXvazmYHBUY9Mn4bz0F4cC/Ej+g7jb22xhCiLf7Z9JW1VZXW+vcNc0+oZYNXr51g
JjtBBQsiAPN8UT5itK899e2fdnLzlvHYkOvHAwpec95b5EeX+iyNHSW/yZfe4dhb7GSooxwnGsB3
Srai8bJSLoh6Pn0fSSpBafMsnNlkBrPJVAY9CXLKugw9h59m13Tr8fMpDeYQb+qi+gvIIjhPH4wD
OUiGs3AJvV5o1oPXA4+OCHeh3bMaduIbLTdrzCaZ0a6Il0jSS6nrnoIW5Xhs8jIuF5UsC+1y6bGK
OA4lG3571y+zfk+B2fauaHa3Lf1sX3hTG8Z5UljBcv6Qr1nA99VZBcQzZBfxy7S7nKbwDPK66yd8
IIW+j+nJhl8jpsO5Nzq3prFXjKW+Kmj/mmxPTpttUAM0A6VvjPaXyWHex+AYklhaksKE0Hh9zeHY
JBkPL6eMZG8s/qJ2bGiaM9cXaXrHbJGEEcXtPsCJ7zUjbsGfu7axx7WCgqJQYLoLCTi0hJaxgEdM
hrgC+iFfOOfCK/zVn8FYzWHr60yQFHvtL5B810/BSxwVtsU292ga6pU5s4mOZJgdNXZZ9/dWUwgY
OLtOKLObBxUpV8RMOcJh9cQrGWFqO+gEfBBgwRttR4RofVDMzJB4KG10Ou3EmC0rvoXYKPq1KcQy
KqCrluaGbCbgvdM4VFCD+obo8Q9YX3QJaZzGGKZZNvBRbi3K03L5+GLs/2WOJuRzUZWPLxF8GRUL
nMg00fR6gc3gMr3Qex4OotZPNRBuaYovbHx3FmSJCpzfw8NliNrRQacIBGNLukbb9+u+mYxZjMQv
DnrA2Bt1uiWKpNhSILzqYQeo4C0Y+KgpWQ8Cfm50B6gO0h3GglXb1HM77NuHkYo2drlRn5/uVIAI
G672vi7/20DslcS2k+dOux89O9eQRlui3pKzm82OeqsMTb7ImySuEuVo5y+wWLLLaEu9gRdufqdL
DzAToc79vB7g07qGYgmIMjKIf4wtGNHO+UF5+P3+hr3HT25ojJ/d/4uWbhB/+E1Men7+7qfe/csN
+9DF8IB4+b1VEJcbkdNmj5thfkwGD00UzstUcWPeqd1j/9KgbDLboRhu93s/Ux59mZYzNdd8gUmE
hhJF3ziWCLApLoH93hV7db0UmhEksRzrfXlmOYR4UCtO9VY8Yyyw0aN6Xn+3CrtW+R3uvB7nKywn
eZ0VtpkRpNy6Y/os17cu1r+UoDuw6LdZGMGKiRoUEjRcZIZwUVrC5f2vs35aMa5Pru8Rwy+dq+SG
mTxnne1NSrx2YFGsvyyr38Abnm9A5JbVqwuBbkLTPlA0vsP8SQX1t+PlfA7ewz2iELc/KRovN4v1
7SpfT+/v2n950NfX/AwFAPvnqpNvx/R2UA2sDLCRZJ7Roa3Qel2VD5t1vwBjYicWIW8q199Uwiwp
/S7k5sOtStxCuCMa9vcqovuIYzB0YOIUtjf2XeipKorFp983eVW8gz/pgBvQml1MnPqiF45kzTSw
2mEmC57y4YNwcR2sT+8oMCa55Yx13+Bo62KoGMkYE1kFRLpgKKUyvpTY4rBR2EqtLFnzjZ61n6/v
3hv7EO6J9jzlqjU9eFoJx85jF79U3aADxBjCOl8tOM4a2SzK3zfFD5N7wjkRXJLbjznyei8n5WNZ
TO4/5es/Q7wdJ/ALLAe/4oL4G8UlmYAv//LjL5388YhnMmysKAyJKV8YrIV89ilTacu1f1bQ0Mu8
q/wBF80S1qHl+uCQ81D5qsY3K5RiU1//7a8f70/HcbDMiItEhnasuR7Q6dZIcUL8Dks0/Rj3zA2+
uXW+ty73qhxjlTVqRyrq62BIL5cE9UQT/bVGckEXBG/o/Ic2ZouT4OkPfcw2gL8YcowL55kL1LEZ
n6N+jZqHab5pI0Q1bBzcm83jo6HGRcG4gOa9UJMeHI2+OY9bkrL7hyfECU5gjnqflqYRDgyTYGka
ztHBXyH639R6vDD2c7l1cZwbe1F2tRjBPJsFTJXfbnf0aarFwOGYHMrfYqEm9irUcBqoF/BVFwtD
IMtcXHCdqltxfX9jrPobQasIL9xzL3rQYqRCOmT+5wh6AsJST5eb2eTXarO4fynq23G9ulfeDsjO
n27Ytx1STTj0LA2FyXt1uDH4o3oNxbAPe7iw0+YZ0NyFdbuk3u3CnAVhA+D4zLDVBON6rwaZExtc
FSBQL9Gp0iZl6eXfO+NDhw5b0BcOYywe881s3cskhv07NEuGuF7MeL0oC+ncbKmD1dBjrYvD3cBf
bjfa8NrEt+nu+EZn5ogtjq8ZRhTP+Xw1K96Nl/NOfjFJRsKtpGNIEZ8YIkMcGwy7DgMWtZRRfYwO
SENVuFlO7stJ3DmLkbzY4qS7eJrEF1qcdioO4FpcJkXf4EyjYy/84LYY+StTNRB2EOVnVAKUXBrD
w13yKrDeXV7XSA+EtduWkatoKr/1zECVR7EXxqV7oQcpjny8XRgxjuwh4ZtuHpfVvL/rRjRT2IPL
DGi2OVJugVdRftYz8vHMs7fey1tfLJWzvudUoMuu8dcF98N3n5GqwePSK35kRBND5qWX62lRrQxt
0QRnMnPO5GACeiqwSxHP4Ghlp/kCm7EmzWZjcg4v/W4/tAsiEWl6KedWr3pU3OSm6fbawvZ03ixX
b65N5GB9MPFC3dcK9NmobRCsZlo86eRdcSoQ48wbFgHfRRvQNnB/60jlybt5M4b+kkujdxfYozSb
ctQYttl9TbrTQ+TICbB/GkT0dSd3rcZmpWKIF6O6F6NikE1k2rVcUsUWm8i1m+gCkLJYTGgXY4Oc
WKLbRaeO4dNrpfq1hjkxqt1Ekg7xYlz/YnyItYR2LTGMJCb6TWSDLJbqFRVxU/ZbFV88r4tqkc/0
I7uxPV4Qb3PyMn9YzpQ10RVgFC1JqLSSQwHCGRClLTyQkci4i+bbcyd3RLath5FPJnU0LTFcfYnK
dTE3MiSxgMX+BUieyX/iOIHTsYNujTFMPlmu1v+1nBRmLvVMcYWkF9jJjseBe0nSIH4Uvq1G6hUb
cnrtAG2/mgK/tX+9Cdf0E7KwxsKFDA1qMuZiszjM+TeBc7G2vEtqkKeD4vtSPDzCudw9tgRsEX7X
9hG198yArqZuvAQO79qVdnzbOHxpT2Xce8fhNBC6vpqDxGfjAzGpY3ycN9zV+Aw2g5VITBHYNST2
pt0U1Rgx0YB/sDfH5QLq0nSILj2ZqVO4D36ecDajmrQpku0247bDp6vlolbjvr9G4NX9IQTrFuRi
vanvWUxvG87qe3Vqzdeg1Lr9ZzyQ7a2K1SxHyJGd8ZWWk47PS+GUu9k6fVlGMUhl/vD61q73F/s1
3yC6xN3DS0ZcsDi5hJRpHBOUM3Fl7ePFunJOytbIS5r5MlvvOyGo7V+p8EEd/tbLZkUYTQZpWmyh
QHCbegxQAvJHEhFG+uwdIgYxmvDqOe6l8yE8k8gR5gqj2isGNd8/lnoGUOT+4MnQu9e9t7h/Ljng
w3VBJnZrmcEjMvZUuad0hNK+Jfydap0/od5tirz37a2Otv8wav7lDfvmq6Oi61c3NMX4An6D0OOr
tjIL/+ird+/u4L8jBoyWIQichBv2PUrRDfvOxsOzqPiqHbz9/f77b3742LlqCOLN/NC1SD346lia
e/rJ2W2cR9MwTyr2w41sKT4CbmK3GJEG69Df30V9jSV1S0igU4yAhcaD6HCspBCDEkbScCLQ01SM
QNyY+Valdm/Ttd0Jc2vu3N+k6PGLzi2gaJV8f7Su1YGB/ygdZvrNy3p8DKXHWWrLhuCmLaHdzuun
+5+/+fTpdgLa6J50qZVIHFNC08tU70TqRMir3vUBnGHsClNWaVbmtWEGWor8MMNkqPVFhTDVks5q
UreYkw6wL+SfUkMky3AYInEsLYPqnb1EDxUEBHVU1ON8ZcgXCYGOeBYu11uX/21QSlKCZpXUUSj3
g6pj8VRzpZtPIKhfPuRVl+xnJNjQS0spsl+JZmnuIktnLf3Dp5/0qxMx4i6cyWetvlk//tq5RDGo
B5dazLkrQ4CuW5swlwr12ed9g32gmhNnFzjxX7E/+s8qzVXc/zP/8+eiqnH4cawh6yZcygtsR6Tb
DCJodoG1/6Q/iPgCS/+7bmkmL/HWRHfvUnoB6dOuDvqGJReQ/ci0Omf0IqtHOmEnmVsHzVnrI1Zz
oVmbwNqxr8+vAnL4SK34+/3//X9dJ1qEDGL6ekQxxmDh84MPSxMHhnL75ICpd4vGOOqqrx42Dw+z
IppU+VMzy0DfT5xgM6iLF2Y6wdONMBh3OQbUynWFYAteB/ZXn0MVCMsRg8/fIAlz7cxs5o7nm7V+
0jvCE5zw67hDKnk2LlZr8MTh67sdJP/rG5rcUEZSIbsdjhC/S+6qptuGmGYlfXCYYBVa+Gviw6V2
sqbfRuyUd/D52jzo61Tgf9bRMdrjocCxxZFJximmnCW5KvKbEcHDtyY0XU/9E0Ey6jkH74xCjnoe
7RbgPAaXPoXe4z957rGb7mnv0eJzXmMJHZFzYBeWCLIfV8Uc9iGfmd9VoqFgYSjBx8v5Kkdm+Q4N
IpMJSWBfubtPMftcgOoeL1sov7nLhCDDkdM4p97jU7nAuB3moc9KKGqdZLh702/yk8xxANm+Nd7M
1uUKCaQamFD1Ja+UxawMcwkyBnstyRB7TXv3msduYF2XBChPBB0EyC21cPh0EAxypsUgSzJIr0Ss
X2yYnCsh2qSra01hs36UCoukVS5cCk9c8Kky+7rCu2dkYIFYFTO6/lnWV1yl1hIriIwIrsxWs40a
DtmLHeLcLbt7co/XebSGmAbcMDDFE2wIRnBF2xCsp/QmmZtZ1jnUN9+RG8lvvotvvo3Vr5n69Vvl
Yn+f3nwQNx+y+5sP728+fICvjk8+HflhXM/wjZpjMg6rYm9nQ5JLi4leYgnyiwW/Le0dhZUnOTyU
Lvrvg+WkKRkEQ7tYRg1jgp69HG9MeCBSM+kAXx4R7OhL4/moD/VsJYlb18uX4uFpBj8nfkeRiWXy
M5zMrP42n3xTPdVGNGFCh3rhnYfUwhwNaoq6TQ410A+Cn13cszi93fIQ3rBvbuj38N8OCgufHMIW
T2E98llRrSMVIXR4OFN4WuHS/Hp4Wq+RyAIRuYgLsQF78RjZshLP3ofT6lVdYkSs7n3WeqAGvj4/
DrSz5ErvBRBL5pn07YqVVUyUOurlnlwGzlxKfNa2O75W/+tHu2KvnGSh3r/fZ+iRZGKLuAguRo0j
U++jthBY2/o3q664cMoudWTMgG2wzCKcJ7LP0+p0DkGkmWXZ4i0cFL/UQeln4WSWPGDXVo2PeTnT
q0Y75munLcRIVhmWOirmD9ic8UrrNp6Ws4kp8KQggnZdbmeqLPNN6BnNm2bccthn8F1qHq1nl4hV
G6Lvc7WfWB8fspiQ5CoP1r9j6sHkoA+2Ws2wzF7BDn3GwUGTAjNj+tlsttFJoKfRD8G25Sz3fYix
6qnu2w+cihAnF3oUvT637QlzfgIlqtubvt+0dlIfeqb1j5Le229f097YbHvcr4H9TNmwBsK0ISdV
nx0iPTVuyOuXTcdItVmtd0s/Yc1M3+XELNn2fHek/cRaRrLYMpUf/sEslK4Y8sEWy1MDJzjikjN5
gYfocxe5LZ+Ix0MseqeyCWabDUx9WrDaJ8Jch6JWVQ78PX7776iCy6bGd/ccfSkefivXTUpmUawV
POfPs+VT+Yj1iWJyC1+rNoj/pWghcEpfDwkERZgko5mDYugNPbA546moum17HBF6LnoIC5/50+Gc
o4aYoQZrDXYSvivUROPxslJhiNr3Z/Dky6pem6O3DA445WxwGesRc8GYmxU9x1p1i7RgrQgYcPYH
E25s71Oy/brDZvGWONwxHfR0VzmIVuOs9Z0xTnOi6fAPMl9+LvufJIktCUo8n2Sv/ZkaWKsHUa19
D6I/GuxXlpfUSetpWU3MOklivVxe4IhO2F/cGZIN6iKdcEMY0lO5PMEZmbGmFDSSsRVAwOtN+64D
xaZRJi70CMZp82SwC6kS34eep+28AiHEkHGm4cnMT8M9s236p2nKw6/8Ffnjo1IaGMXoW0CpW1B3
0ny3mdzdk8zz9Xiq8D16uLFKigg6oCPR/0xdeggBT2RH0+D7ROjSrF9WxX1TyjmiMWJpCh42GSBL
s+fxNYW13RYp2Wl1apdDnQ4SUiG9QKNccS/qVnZrs/AKWMCJnHdLzKb83HxazHd0bOOnsjtDTipO
tlSQIU9gspmvohwr5c8a2nqEOggHdQFvWqOyXuP69braNEiOSbFuUPnmihROi5TiIlbTDkBhfLMD
+ME570ixyk6zwQW5Z1BmqtiKyYBytYMWtyCmNrpuUJwdnUeQZjORPseBP7m+m748lG0dDFZTzUzR
NF9MZvpJjVmSWeJUU+v5DzpqIUpFKi1BjiEDVgw2tzuPMnHDvt1Fou9uPcJZZTZO/5uO5CM1QeoC
DXBP2gyRkDxz12ms+e8NHAW142IfeG+aBMj1N4NZ4X75UTuO0nN5te7ovrzlOFIVB9DE9/FtOX8i
9/SZRmocKGLn8SN69NGXvFzfsw7pHqYfY5pcNgXZ9GSYbRmRaTKiiby+FOHjXl2GuF3nfqjj0fiN
WYo1qzh+GwdyQ7+/+pkwxtPrnwlPhI8bf850M96dbpa4lP1VB+1xR21Ul6DectgdfNGvN4vy903x
w+QeAmmIXCW5/ZjDecyXk/KxLCb3n/L1n0EW4gR+geXgV1wQf6O4JBPw5V9+/KVTRxyxJKHi+scm
4rfhPXz/JtQbS10QcGfJUZpkmRRSnidHIjXKkYid8FyB5Qg27u2oZPhvNcvLxfXlSbjcrivLE3Fp
Dj3dh6ppRI1BbDh/A/6ETJ2Pqd48bB9DIVOXn4sqWi9RLL4sq9/0OVmcdpw4vLi55xH5cNr+LiN9
ecLezA1V13PvTsFHi2W9ysfF9V1cu4mg6RFF7PGlPSUXXUlMpRylGQuxuDqMxTLCi1JoluIjmck3
4DSy1Cqykv6vm1h1jciTN7yF00XlBHl3QNXqh3hDrA3RrHgr9y0+vGr6y7DDJ13r5oEnk5x/SK9b
0l6tPUu5o2BuTWj/Sd6Ol/N5vpjcY3XxNfUJX4CphWeH1+zaMDss6/DPDA/XeeJbLMHdPzz92vKo
aJhMImTaT9/EGzwVVntOBCivtyEn41mRV3ZyIqnDIweP0WOXjetqwdfaxwKuysIwgpYgFw+zqkEN
/N6CMur63rbpgdv36o/xQarl7H6eP0fwCh3CUfSwuczYG9iUmLk8xXklunlZKzAAPJgyUtpSXWJp
Ki91PklqFZQE2xmcHKeDmiWp5cxs7cZ8zqsWzT4r6jqaLMcbUyMAT4XlEMATR4BMBmqeMS6uYfon
CRslLmcdXPiJSAY/4sUSfzcKfkaZJceBdtef21aF5QrdrDpiMdc2ecTccr6tPFUBbrEGnSJkooiM
mb/4HL2SRoCkQFjD0CvBVqohZ8JDRM5JaItuQtsupx9EPg3qJ42Z5finoe+qHVuZ716cgruqkVDZ
hR6kr/NGMEuQuN+D4GPERCsZSOn5FiSD2yWd5bAh9h8itiYkewNml2b8DYQDlAt5fbHZz4T+YaSI
pm/h/BIXFwBD/qKq96dC5pPlYvaiZ4WjI5qkfwzlciRMV5cSKlwyStvzaX5/HQ7ZcTdVsOIhAG1r
3rI6KQEkkd7vsVtN8yKJ5Sglwwp1MXvsf4eUWnYK978DLqTHTmfij2p/1W1RkEv4arcmfH0Iq+7c
A+MSHTwbwS4D5nG+CqC25Yg2cFcSS5oJwxJ7EdG0OhgU3WloQRyxCLFSK1TqxcDF1QR5NBslTA6z
1m5WyG/LUkZVhz4cm9pcgvLz8flUkJRcKMJk3QhT8gvJDafkMgsJv4Tm3qjNZjcX0e+bsgInRRsF
EZLaTmmWVoxZW6Ksf7+7O5zPrjvy5+ZB4TlJlwsLR7QLm8Z5dvRkoOc6Kb3DnvXOviOMI46pzBwy
7KBGWzqfw91X47HraYFiXeX1VB+PE0u6AocD13aBEkqQPVJe+8Cp4cApHWYzmEH6U8RsD3Gz+1U0
HIIdqspq3d83RfUSIUd6M9YJv71H0ubse0Xm3NA4S/UrVb8K9TntAGxG3EX9hNYFh7NdG8ngPIgt
rTcPJ003Zk55HF9FKljG36BUsIxccvOpTIbRAlyvBQi3HCjfH2Fsq1PwheIx3D6RPv3ILUk9+9cs
5zhy+5N5VBNPU8uxCw77KfT7mVC3ao3R9T18y24Ql0rHFcNqLq43asylUm63F9GkfHwsKhC6n5rx
6p29kWxk1z/muzMhHrhV9SwebL+aPySa7lZJLIfX+CxMNV2nCSzsVygzX9BEf0E5D3VBsSvwuUQA
zfqYu52m2EZ6fUdT502wJBvupF8W6/z5Q1Xp0mVEuKXLbA471R52nGV+6RXdS/60aN5Ph/iIqeUs
HLftLQwbi83yMX87im49rZZf9OqNDHP+Uh/wxQwu+3AaVfOeDXWr5cCRE1LX0CMY4UVSWFLlnLOf
z/PZu+euy0aZZ/Fcp58SfV4AjLbw3rydQGvZ0bglB5itWOxW09hWKtwWC3c5d+w167x6Ktbaixnz
kIK0qsp5aRqImDH0/5MgwmReuWcSRoJmIcAFbX5rlMF/Lde/TMG5M9ih2A2ft6skTMs6eixxBjJy
NNXT5WY2UWREygPRTI/hCIUMZmxBan5swI7vP33662ZW1FQPOYKTTR0iO9A4KNMtAPvuHz9+/A/4
9q/Ntx+ecUIXlhK1RF3IiB8PIE3dd456ZqsQN6/y6MX3pwM8lotyjfNZl6sOvE1d2cwrk7mjg1nq
CG8oYUj0NZz8mMhu7EZYWC3aEvu0VcrvevCz4JbaTtg9LUQPs3yhn/pOwPL44J2e6/qbzaRcL6vj
Iqui8FjnT4owDfsgtP9IgdJeWd5mRf7ba5keH/i2WOQ4aP1xM2shbPfk9vf7G/a+aVS8YR8UddG/
flqrOfM41vf9NK/eLyfFv8bPQv4ZfmHql3/7t/8N/+xu9+86LZQN0U4WZjt0b1YVEGxXBlolpBlM
g6nHcjEpnovJ5KGX7jp2vFIGR+C8cz7YjVuLgNJO2DQCc0MTV5ExSUyj8JKEhdfyrZJ4XFavp2ie
RCSu/QA8uMhqQwtUh3F63Zd1gtaH3W05uLIOqXB79a1Aum4h4lDyo9RG1CID+6cdpCOnHktbzbae
5jhuD57iS17vxu9sapzLXsxX65fdmENDUThxyxGcIWoHm6UfSEeDaRdFLHByRY4jqZOBxOHLb0Q/
ZEhYkuoOvNV2czUvc7Pv/vHp013/3aVwdwmjcpDD0h8UJkgC+WbjE2yjhKmxTzxEh5MNx6VLQbBn
pZ7wKVgkM19O4MAmZY5N4qaRVZlS88EFe7GaRs0RolSjBI+3glrsSzC4++OdCBcdkFEWW6HIjlhp
5mU93g+K56hdENHUBeQxmRAcNkAS6pKBUCshQmEH2IweIGKMCFzefPzbrKzXevuWSTniRAS6K8vl
byW2ZSNm1pDx4DTxtBVWuN2qwEy3LtIwtx81/6ZtzVN95fBSdbQvy8Y6DSFMOB7bXuzdHNn4pSpn
8FQajEU2EtkAFqhzQ/WYQ+afszdu/tGuux5GKsD1TsQltsgwOdyxq3Za4gvuUeyDit71ikwh/o0e
CpzSrjjN9WhsYTmR8bTuQAhvOZkUi6hFPUWPZTGbbCcyGIOuVDjQ6RxdAqsn0cGPGBslLgQTvTsP
YggKtIjilqpVm/ljLHMrmentZdtg0BeVpOQi8Z05SaNV9bcNM3jzZ1uHcV6s8xsaY74mKn7flJ/v
byj9BAf5Xv01+Ab+tNUL+Eevi/wCqzd/STFyNX/zruthspjAESQZGdQ1b6H0upuHqH1Jr7m6i7N2
xr1XY1C+LZ+0qLGECrfs8xwuXL737p/LSbGM8s16quz2At79XhHaz1e8aYRRf+MOvj2oFxEFMmUD
3Xzae/P5+W1aYbUeTUcJp0O7U/tKoWnuuG9HQkfbfxg1//KGffPVkdH+6oamiDaC327Yt1+1lh3+
0Vfv3t3Bf3sw0/xzsee63bDv8fxv2Hch3TdQS6hOOtNIsUuZJoE8YewbiL5MsebZsiZGsH3NRVrl
G30MRFl8dk9bI032E2EOd3hw5zhSk1b+Z3n76SgjF9C3H/72PvrPn/UaF5xcljl1vDzN4OfE7+g+
zqJpJ1R/2KQF4GEWRa2bnsRiaTlpezCFBzGQIAHf/Wn2K770rwhQUMNmwN7OUSDu5uBv3z1uFsrD
wZAkn/xcPhez+tt88k31pEdtS8lGLBHXDJJqxS3TtuKB31XrIyVpOe8p0EZuFuX6CNLZkDJJ2yGn
IR+kK9pZLKVb3vDcm/3Dp58ipEI2XW8IJ+iZLeaBQyk+Ei54kHM34tO0fFz/+p8/fNJvgzi7nyTw
NtCRkHz4bcjHCBHa/oke80VAJPgV94LzUWoFf8389gKbiSFknC61gW9CQLly18dw2Iavf20/+vX+
b798H/1/9q69t3EcyX+V/OMOBjNK+NBzgKDRz53Zeexge+5wwGJxkG3Z0bYteSw5cb79sUjJliVS
oiXK8c7tbk/sOLZJ1ovFYtWv/EZSjH/jaPk3wRkn/802fgrzyJpu02d+EZinyyVglLSEBDjEea+2
Z/2w023Pp0PWrXvktcLsJZnJA15YM+I07hywVkR2oFpAo3AhlDKtYBsX0Tq6BGM5ZUwNcA9xKBHl
2fHQKqtRLNyoR2EjaF32ahGZ41pISPwUrnbyhFuPAtbFK5LXJZqd6E1YGXnhEeSBu97rKzx6faOD
XWJEFrNZtuu8nwN4WuIP3vD4WO0XS8g3sirQpXRX0zDpVUkA/h02K9XSkw6BQgbnFfWXAmjAEP1d
s2PnvIi43ccJfz2yoFYcBBWmwuuW1X1fA6hLQRdQHXWA3HvN0R1ngHADb7OEl78y9s/FcwUoEoaq
UOIYE+ttxDvqMLVK5sw7O4Sn2ZxyxRQ84mpe03aTG4Z/KQaXEpfHg5Ap0a5WELQKecuUXNthJhOb
vhyrhW/hbJAmM2ZNvz6IRBL8TT0UhAJI6UB2QAbQpzKZMhMws1S9fYjNRtQCSewjfJttumErfeEH
1kyOuh/w/A56OeFDjiHipmvreQs1K//195+Vdz0BMjNaLYDdHPztKHm07LhKfGPH1aL/E6/rLZpB
l1dpcm8GYqN6mdlnMSxOkmj7w++/SNlmBxwi4PwxTVSzS8h1l+/zRnEAtgkxvz1KBywuu/SS8YdI
8ilXhDzHa+gFl21nD7fhlHmJ3/Nyo1v2Gjvgghix17Ul/VYu4HiQue0QcKlUU18zR/wsqT5s9XGy
itnxXzm+TWxz4x/ZGSaMn1sOxC2ZFN/5BGcZXyHDI55P6McJIeJzP8fJV5GxAclL4i8TQsVLxcZZ
vB8YPiE+mpAA/kw/fRB//HAfNjkMmd/DHA4Zh4sNrhDCLivGvrqXkF3Sotg2GZVGUsJgXSQHvXGZ
j8FdXY0yDY8MlIruE0ZtOgrvR7NafvxpOO5YfMgf4+3cggbsL22dAsQxxLkKYnjOn4wnz9E0+2PV
Xrlka2ai9l+3mIX80B0MNAVDR9craD+D2FIZx0gTMqff1v+v8CkszK/iVGLzpaLX3/wfFFs/vH5c
xvdnHGT0fAFEXlPIPPqaozvG/CD9Ez7B0D7YNrbLH+CCNIrQPbBpzsgkr81HdaYkmFzFPPQSz7vn
UYx3WlvcBGyEpAx06RF73bjoiZs0Wm5TY97kAVoUlnn2TDzocuC61yFoPr0SgXcvLvD+pQXe8cfy
KeShTc/kncU+W1nvf/7bh58+fZTXSJljYn1cCfobpMjrJToOiXadkHec4C3BA53ayjqi9TSa85R0
gHO2wpxNbrrLFVVtNhzsBx3lGvJxqLloFZRgYJxSLShH0Lu9vNle8EohY2YdpuJa+diH4I5NuBnh
GRQyLu+SiugiJObKu8Cigfv90EqzDkkVRWb8TbyObB49NKi8iHkGd7i6y54X0LIHPEyhZsLPfQhX
z+FLxnQOFFB8mUT/yA3F9qCMBaD679swyRa8r5FoLCSg8VQIHz7GA0PaGsSUKz2+IWSIFzSPcoGe
kIXJfJruSxyFltOFBxi0bg+V74WmMCwl4gDkIlAMa6sRmWvujUvpFWqPSnd4rzbIkLuHN0zoFEqd
Xfu733749V+z9ep5/tF5nP7lv1/mH5b7n35/fpqRX1/C/3mPfls+PHSpD7+WDxzzksx7avMsHDkc
iG7JiprRhQ/PDIc87k0G3nmbZHONGqdM5kWVtyJZBq7deFnlbXejvdvy2q7Yxw5L1cFdm+/W6xdu
e5Fz2yElvsuMrION2zvIEAvzR2sH9FzHSZirwqaOuZwCzjzI7W/w8r7Ck8coXj7y2mcHIfYT6Mwe
eOXOKaltm2qTmhDwbN7MVrucjQoysJGQm0LDRIp80+SuBC4VGxvl/Q38q1AayWxP1YaLfiOKeWhq
L9qGfNMl21Cnjhzze3kCKE1q8zf0AGuOzqcTvZRlmiCkozE6lgn5xlVFboQIPF4Dz65uD+lkkwON
2RxD5+RFuNsXF+ByUDg4ogaveT5qzFAwC/YREUjg1yjCYE2IFydJOmM2q3D42CutQQefl8U7gXFq
EhU19dCwL0BNckJNr6SmN5Ca1HeJcWpSFdTWsIsag9SkB2qCPH74x/Mj88Ceou0/a1Gy84kaMLsc
uNhQViGUCrPzqRK+LNBF+xuNprUJCgGFVyGywV9/kBtY9ndRWfmwFzY0Tja7vDTg2W66jvPTP3BL
v2dPeG3Uw+1vq4gdB4tPsIcXNn328NuPv96BWX7DDsPx4uVjmgD6T/aYPr8T88ENxB44C2qFUhyk
xzOxcov9Y8fbXMU81C/9tSxT22wjjk/KCyWLFyX1HoT6vCCTUB2Q7voKpTVxRFoTF/T/9s02XTL5
g74MSZxBkGbGTrfTcCbPK3ddPYdENdwh3CskUJ477tlBv1GMKpdUkipaxjVE/InJ/vETB78m2ofr
zSq6m6Xre7lafD5+qKEaDjskYFcHTkpN63oUuqQ6XD2t5aQnEBI7a0xRIqUxKPsTgMbVu0DAGI6H
R1nncci3x1zOh3y7q0N7Mrm28ShmiNtQOUJIoJckaJDWHIDe9l6f1jpRMoPrpiBjKHj1ddM+IW1J
9aGyEk3SkRxhgPFFCDu+d1Gie2wEz3PHHrOD6hiDB+xczWZytAf1vaT0tsxvJXCzT2kP8yZKH9PN
C79PWT1FGa87k24dLqHMhlJDNhTuh0DK20GEEaDeUwPuCK/oS9JKaqOq4zvgq2pdRp9hShSjy6w3
dd0hQ6/Tp8iaPcaruZVv4+Uy2maQwZ3JG8zYbEhKyBDfNdvNHuFes4b4VPquJBiwHDbrp2pjOF7/
u02f4ozf8nLPnKN+KwpkaeDrlaGNZxrkYv4mTn6IwnkJnVq+S5gJ/lsZQju9p/uumW2CTs/MZdSs
8pWS9BJKPWzESahxSO77UXeEocoNQtWmwjXl7B06Iwg0aEh1loOHaIa0lIP+2QE6K2h1HficVAuj
4jyl3eXxKs7jSAZ2yPtskQEnlCyG3dvKdlN1/wgH6SHINpylV8P8rDOsiQ5FbTS2wF9uPRjK+DGT
vQHhDx4wgv2W4760iIMLDb592zj1+qFHylOSPb0OND02T7BcFXPa1odmKgKRvMLktk8zuMMw97I6
YoDdwdT1jW8WgG8HKaAtDV495t0S4v9nyzCwZZAAeX8y2+qQP5VtZfaOBI59GWd8Qj6XH2NPjx9k
v3ToqG5z0QnxJYneUN6+d/wJ+QB53oeHAP7B7eLn9s53Hu2x99Sa85bNmEXu5SFPjJnBeCZWHMYr
Cy4dhNci9aB5wR02NpdGacRsG4W5JF3T6elEd46rSw2eydCcl489vc7yo01M4rYCQrlWDu2ZW1dR
q9Od2uXBQStwxhMTaUqv7QT9jneiDwX/aYmBxC/iuTVbpZk8V5AE2NaD5R0vkKDDHrXtiqtBhc78
NlkjZOeG2o7vmqd6miziJSSLJcvIWm9s68maxvk2lCerO9TWA2caMg3JGZH6EBYMPDMDb+x7njH1
ZGHif7UoQXtiI4uixSazMPq62FrrMIkXwhalSUPz4fDgX2oud6eNWATSoeNCVbRreg7EcXvSw8GX
mouEHo7tO7QfT/S0PQFD8RixN0qugDzPu7EDeumQSa/I/IgWsUKj4/VLdx/TImP6x4VIdAEjGfHc
l8c446k0WRYu4YUw4VmRKfvxV2ZCvxSJYkh88zf8I1EiHuAnHH8I+u3dly+fPt7BkLLEbAeAzl0v
MC44lf1hFSdf5Wjzvl5/kQFMFBgS7KQwt8Sdluq0H63W8fzhiCwh2Bd+y+Gmji9/W8BMHZfHTq0n
0FL0kzh4SqEkqEfgrsxGxukNRLYKwCu5swTEvhKNaUxW7TqERxyvc0Hb2jA9mOMKjRd8apwR6RSu
WlQp1z64cg65DjbUpqpmgnjjoJxsYehCZikPX7NOn2KerV2k/fUJr1XytUXTPuB3Md0G0wlnOh2B
6dDguDvedr4G1sJEWryXHu0D2/xBrTDv3Mrysmfhv0vFPqB6RZ6XEPu2eevGX4aX2QNbsBPQMdnC
L/4FsaQSCQAk5u+6BnOlPu1OppwWfJxlQPa8/1h5b63klg/pkg5FI3JL3hCBmayr2bZrc72wriBT
rqLG3YjjEmiT+OrRYmmI+CQ56wKxYd4bwvEMUaM4LR0yUkogLgUkCIcXfM30uo75SgJcp5jDwrAU
b2iW6mAojKX2yLSVF+7YSK+fz+VpS5W07SKox/tkj01QJQCAPSTdq9qWQNQmWU+AKbIWO6LaXGGK
+wWItVoTd3aE95gYeQYGhx7ebNQFo8NjRyt0Dvo65Bg13zJHY75NN9ac5zkDsVsvEIN+yYQyrLZy
aOnKuAAT09QkXdSkPrlCQ6A0A/LSsy7jEJAb6jh9TF5d5h1IDR4mEEcJ5A4rh+eR9mYivl6fFQef
b9Ck4sANmT9gwDNkndjBgIGONOQZALsk/mPXlgjAIwCB4aW1bQo+dTX9F3wh1RpBpZjADGZiKrJr
12nOb8N4flDLhue4th522hlKcXqlaUET30MbLnl+t6sHWqacQ8SDY7xcroTogj6BEB6TG2pddO/K
iLUQUkWG2gafLeNGymBw43taYSTVchcRc+14YyF+phHclrKX1z8T+/XVplMmhCb9+Pnv7375pEJw
mRB3QuieOBP6nvhY1lEESvYJ9QIjlgnoLD3VQhKw54+pNPlzPOMgc4JKkfxQRzXbKKgliY9dpL0y
Jzm0DuBZHCdTYfs9zRxoDRJ3TaCZW+S7AO5y/uiVZJ1pdLdJlvU6F8x0xUVGlpXtlJB5LtxcEHfA
MIWHau2yaAtWxtqEWfacbuWnCl6+g9yrMwFyCZdsqKeA9HA9cT9hfuO7c6Hp23Zf5oJyuzGETCed
8WqL5ZtDZ9tHz6VMAskl7Yo8oAHHYMc3RYu6tvNDuIRA8p5xBEr5rl56qZ70jiK6PgBdDTpnQJCf
eYvrTci25Rlk2kM/xySL8/hJHtf1iF6PVg1bebhmKHBGM3m3Iowp1BT1cFVrhdnsyxShCeYXBuaE
vggfwHHAylP+mFmHU0SHKQiQZqsAc6ZAjkkE6WE9/MdDJU0OPauLC/Jybla0B5RFxbEZU54ZOsRp
jdfFlWQBIA2z6UxuhzJTrc5DqrWKTuXFmQtu9IWlm8ZJuIU156BRijWDA6KXl9i2Zj4eZBwDPgzk
888eo9lX/koGMqgKPdo+6UfxZn2nWO1Hdg66Y+ZjL+mxigZGYU4Ks9mX7jFT6FN3rtBn3TyB1906
tP2eEbYOgItDDhp1p1dYQqXpo4CmiAepQtmMeBmlbX0UXAq72Kj+1pHNcsWDggQfjbzpFPM59O+Q
g/fbmun4xiWhaIso3Qr8gVZRTZ6snID2ngy548NikEeqVCRThOwOMltsIHKcB7ieuj5nuC7krcUK
E/puQjzMjBn8H4uKxPK+vVbCIPJAG4adMIc3GOTwipuCD1++dEXQCOYgZ86INkKOtowHCr5Y4THB
uTNU6PFKgOByBuCogC1bAaS7kSGxHlVnj2p43kedi5imW0n0uugGTQf5M4JT8WfRWakroEspoL+N
bBF1NgybW8Oriyt1GyDtaim4kkG+P9zOxGvow1phrfX8GOfRKs4UqPaBTTUrYYzrYvtmrNWYYXRl
LOZ4EhouYJd826ilThMOTvSX9z+pAdvhBtv3zAuJnAfI0etdUR9tn63gP3Yw5f1sIB5Zj8PN4wzy
EOVXHtCVyyb9xq1mierNoNnkidhYEwTKzASyZvWo3Y/yNT5D1F7H82B7MdZrLNd3wLfSEV1n8IhP
8TxKeS4/tM/rcLBsUYf2+vuITNffFCiOD+zV2qYi3v4w+eD9TWdvaT2HI4AvYS7tGLYLOoI/LZWt
Czx6HXkV8tkWablPS0HBarFfnRFHHLVTWteLBO/FtzVYAKEQis2ygDkeTBSObXpb2q9DSkIv+6bB
iMNkgBMc0l1MrAB3b4eiaxCKuX2BZziPSsxHntukW1sxsoBWpth0Lzkxm1WqgHJTL1MlqNMaAJqj
OWuwXjLlirbbdNvhx2g2jRyP0KqZSqzwenmIkiLMjQD/nLY5lsYUHNe4/uEGmGYAedXmWQt3Z4zK
cyV/qRsMzLIyyd/mdBuM/UAn7+wKaw8NJ8q/eBJGenAZ6jnGo/5izDozKb/RMOQvFRAWHf6STSA0
5HjmJQhAat59+fDjj5wnxJpHi3DHvOXW1D0I0CAyqlCdTiQq9jAuKt8W9yTQhu3bgwkg5H7iQxHr
e4X684sRSVsSYgfG9QPJDAAho7NP7mN47JFeiQmQTfjNWJx10YCL3V1y6LrBnVRouwEBk5lol7qB
g3vZjkPRKsP3xjjkyISLeNjEPS5flCggrXRPATDM8j3yTYad0nEwtnTr2SYb9TvNStjOL4bKhffi
v39DfPyqdvKWqc5tRZc8lQ55dQWCml1kG/fBJ5/IxCeTdx8a2yoU89ljC5GyyyWyr9JCSgzkIJYi
jzjmWfp58p79+yhjqalTXJVE+TaefX2Rb3Z0tAP1+ayszLPu6MLx5fbUydUr9P4ky2BDnkcucoix
DVr5A1jBLF2vQ3lqLEQJ/VfmpmSeh46933G+zo583VePpYT8459v/iAFf7HwVGb1RXL+OcbNz17G
P2zo6i5OVnESWdETZL398PsvP7P9Jxd4Y9LUYjSwZGEwH9vnK9POIxeh/iTwxCNGfvkEF0+wXT5x
xRMbFY9B8YiVsQeqI9xkqNraWhZRY5gaLtkpJTubvDseZLJQ0yvWgCw7D56sqDhC/H9uWPzqFvze
e27jFVq+Uj7xSPlKUL6CyieFuOxp45vdWfnEqX/P4VPELz9efgqVb+7CT7M9D9ptaWVwDxYGqFGR
Xyq6ut7WNUgBRm7NAGC//kJB/yCoG4SSMxiTmolw/P5mhcI40Pep8mtpZdq473o3JNBD8R7O/bZu
59wOaOEP/H+3Awj1MQhadoD47iUkQY0PhM8fva3j2dtNmOWRtO8ZtXsOVenrB2UyAHa1WTYOjy52
AZryP+JsdlvrlmLuQSF/fObaPcZIwqd4KVAdj0+P+VcZBJF2q0jdyw6qrXrt1ZWRN/H+fpUu07tl
vGj4hRjwocYxAeF6E20zJq3K9HetTnlS9Qd6WevdKo8B8n8RruPVi7VgrucinClyFm3NcvgWFkbP
7AyYzNPnSgqdqMiVl5UhKDKgvdcIHRY+rSKI5/wKkAIbtjYsSZDyMTOlg7hYUQMO51g0BxGVzM06
bOxhzWYK+gsjd3tpMZyvCcv0umZVCmZ8z4wYoFV3YxoHDjuVey42SlGqSOUEGCY0SBEkDTKxNMPL
cTVxrXqYl+pBU4GRYA8xMRm0sOXFi2HyIor6IEUJwnm5tVZUTQqU1uGuRpa/rKLsMYpyaxrOrXXM
1BGmIMGOD+wb1+67ynm0ivKo0Pf5DmKPbNXh/IVXbxY9HXjcazmzwgVk9Ykra96oNFzJAZoZDfzh
NNCaWyWtWX+GLoci8/8NnLXSRcJC+icoqNsYZmAmyOE2hl+BtjlLEG7CDhoSfOlqS3XM81695dDW
R0mupWxTH1w3r4/o6jf9OqrRwVIxbhzgpk5b3gqTdUP67GznWiyVTzTsSHw2d7j61Bnj8TyFy06E
58DXJ0IhHc5xxpxIkeInlQ4pFAHSrM66Rn+kYis0/BHqo3H0oDUuZGPdrM+rovAEIe0OFvwKlowV
jk+TyNqsdhk8kROY1zZ2D27XBhc9C6pNvnh+yCEpZNNskQrtxRDCjt/nCNuj7xRXZnXnKVcTY6c2
kX9lohXDceHlK1Do0DwfESbCtFdoS7+7E7Ghm5Hf3ViJanYoNTEVWZ8pH/pq4+Df9Aino82A/kpI
D6fqOZpmUBWQc7Jm948v0/ge3H0m0vPsMfzaEhhyAfjTJeOYkCxcyHO8bF/PdJzHSuXwb/8obs1v
fxetnPgP6GcDb4EHUQ54+02jdIB5Un08SyVLst0UijnydAYOXMWRy+RHIE+zWYfO+GV3Rd7f0IIM
Ly7p7CyUydEtfMqjouMIRxeuBWUeNPUML70SoJISodnuj/hBP09NTwSi9SaXRv1syLQleKxxITGM
sSOOpcXDPtFM9L8iU6uGhNCOn9kI/NWgT9xFTnWB28QDLnI8Mtjk3VH0S+myOd4o5iROmKNYtMhT
bzee4/QLMZ+l1ZK5NBTbc/x+QXU5p7fp1yixdvnCV+O++GMRXrwgpTdhfhu9iJOOA5c76T71g/H5
WyxZ0guZV/sZ27J3vCPB/N063SV5ERc8TGK6y14UOcDMwXGCP7WvalPPMcznw0Uc26rKnUruFwG8
qCnDWW2B2H7ZSF16g+3xrJd8/U0Z9wHCIejhG/Byg/v949aapnP5ZaPDU0jtvt9dxbthIzSvGawb
zzPt0CZpxd7D5cpLMrPkjQ4CAGw7M79C4LZrrg9cZn88EVEttRk84IUIGI1qg9rzZFsUS9lRFBI2
cGfPUJBRSl1viAbsEkjBZm7wYxTOIwVgLJyOiQFlEG5+vs8b2kBNnYNPqN11RUBdR7Nr87BdUtHj
Bi5UBzHvCfzqFsZ53LOmwxlXGwwssxprzAUQDlNHNsZIyC9XkhFzxHHkXYuCN0ROquMT5AiEiE4V
95mLYZu6QjuZaXt1AdaEDtXjIXiKRdeudBPJoyzQjsCYLmoHd+BGTBNH9yLyI6mhANkBT7XWx69X
G2rATXfZJjSh73m6M33f2ZjahqtD6tARRLD16opCSqtBOwICwYtV5GYEmlZcj59wShmFDUH6NoQQ
LzBKSeYxFClMkQWZfG3wwJgdUthBcAQJUpeeEkOrrR+62bp3BcKScgd0bbZc28SxkNkuptr/uw43
Eq8J8+wobJqtxfLAbDKDPYus5UzOVM/pN/woGtPuT+uYxk5DiDEc+R1sUozZZphZx0xYafCKt7M0
n9fDBijiWxCZ5Wn/FpKm/nlBz8Owdt4IZ3rR3ABafwHfZ9nmQcyPh47hrgoaA0zI580qjJM3q3T5
ALhQd2/Eux7gg9+Hmw37bpFYubeYpH+Nc3G7nEQ5bzD2HftgvAAZj+ZveLZM92caaU2MIA7y7JF0
j2320AB0xs+20EtEsWkBZKYe1NS4KiiT4s6u0MO7cEMfaMpWdSFTr8sWz3EHXiYbUpeKXEMfbyt7
ZGt+Dp8ia7EKs8emBnHd4hFv9uwwHHu+hm7r4k9srAn9DMZinkYZO5qtw3z2aLHhG8rEB9VRJ+bp
UdsxVcC4DleASRrNedmUqkOJHrrK/5F3bU1tI9v6r/iFyZnKVui7WlOV2hUSkpBkcoEMmeRlSrZl
W4MtOZLMJb/+9GrZYHAL2lLLBvbDZAgQ9231uvVa31fj9prdS41bE9w/mZglJ0l6Vv68nkBc+4hS
OnR5d1io+92dKf/QnaBIaAvzeY0npCs2Ys0hXdLpQMER4M8Aqz0xExQqm8+26eMYhHnh5eju+t08
6+1eB73AEOXRlyvAD2rreE2TFWa9UXwaGcmmrqqCDQXA2JIJkFrfszKUV6cGLDxmwCIVywFntb/W
uGV6+0pMrmprlwRGHcVZmJXAVYasN6ATYWYV6NDKPS5L4bJo7gnM51ERtAIijFx/uNslTX1Tl0jM
qa/nOT9jT0oAYmWVnqJV97HeRvsdO3tBLWS5YsdXpZlSS7JmurYnrlafZgC8H3vRYAA7r8x0WUUN
1HGrW0CICjStgpFmW/BfvLoJhNH2xyWGca14JRuOSw3jCupUh80S5Up6l79gjvqIZbMXrWJWvrOd
AzzBUu6ML5TEDuKw4XYzw3Zz3kShmA28uQLTt2Sqa7hIblgkQu2PK0zjBu7topIwHQ0ZNHVAgPzQ
uYG4bUSsbANyYxQb+my3WdLrAfLVvyl/yVXMrP4yVf87GCjf/yKdQZVvBLW+RVkCPH9Dh8Ag6as/
k1T9cUV2BN/X4/6u/0mUlP/TqZgcfvr5xdHR/qtnMOR0NUInnEE1oRSb8VCI+V0JMLruszgQG3Eg
j0QclP8U+JsRB2oWB98SKMXanBsDR6afFck9FjtqI3b00WghOyBUB2LHzJ3sag7Sdyl2fe9MbQU8
GEe6mXuOntsbmeskAujXojUcOiNSwdVgatnjqbn+BPJ6RPj3+A4wmzvAHovq9QNW4zDOJ2NgF8ui
nzM10nKzr4Z1Vr7YOE2nNxyxkkXMF9KVxKcTNYM813zMZYVNNb2okErsro8M3E0An2czgbJZ72qd
JQBCOCtGmm4NPuY5TA3688pUpv6N3Zvteuq+QYFXvSzFcKw+Bj0jS/PQ3/0HRv5nEI81yFICkhom
0E6YZtHurIjHhuYdKpQxonVc4htnr2bghdNpvosQNmP0iEB5+9zVoWv0nGqicYwYUMZJp+vSCehn
vWF8sySqgwmTrnKZ/WgwDi/hOEC6vW5ceGmSDgbm13YA2WDC5VKJl8eT6biCoheQC2gz0S2i8wMA
IiCvqh5iJIN2HNLKpsbJaTiOAVUe/lpUlEgSAJQPiKs7unwlDQ3OWXT9emrUMA71knxzWmIwS7QR
zC0OCCu/AdWThKVE089ZmEVqq03s8pJIqtYvHRqmEmnr0lB0wzzu6TeeQRiXPX9zwV+95ZQD+ndA
W5HIWyVRBQsA77SeHHz6/PXg08cj93vBNas7VufPSD2lcxpHZ1G2259Npi/yr9F5oTGglh6LVpHX
qEZ9lI6GW7qU1wc2wNRIS1D9ShFf+AMrDoBdafIdOnu5080oOxrehbWwABwQyXT45GwVN8ssisiE
+oCZUAG0bG3Y1RF1l7ngjqQvOo/zAsKyIosiLyrB5OZdmKuSz6DLW7SidHIAPVOOuhm7C6sPV6sW
LWyz0nSjtJ8blKwHjqIgjnZaL9PcH6fu9brpbht9Uo64CHxXTxOIkuoMazxNHe1qRLYk9dQ8oiSv
KLMNgLaCNAm3r7GoZb07KWcFvP5y2dhLPJp173IUOTSsYUdHOQmL0WRsskCCWQKWteoNOiuZKDlT
SooGDfbnla8nYPe1hoIfQC1XSVAVZadRBk9I0zTRLFVqRsYCZ6ITSltyWe+WFuVKAX9WHWVeiU5k
6i1EBFvi7ttIZX46NImk9JV5cGWWNCqsZgVeHUkA1ghypZbPNfzCuanvzbK1yGqUxTe9ObWp15ti
wk24vhhLOxCANas3boHhOx9lK2iAypnCGMnW1q/BF0yrF5aAAGsNaxIjKVmnVrbdPFQ+vj1qIEJa
to+uZ+XVwMbrKOq5aubFzUxjEKj9qOMf3YB8Ldtt0+HpSlQiGGroJpRZdChj6Y0jJXneIsPqAe67
8gb75r5zWU8KreF1zVSvUCjOG++nPYSuuS8JCEOaVI8tdd1DC6BxEAwS6uJsNfJCFWYPU34S830n
a1kd0UuVG3Kmfq3iJYsB2m2DsSfxedSfK3NvGKWXM9C08l6c6N/UmIhFVY0/BoJQ6YIg9JINsxiF
ajqpiiw0L+bZKAYMjCIejxesoYZqF0wAYxch5tcR8Lv6vEtXMDfWH2Jws/zNjln2ezsRu+VzB3nz
tFQszrwUhSrqA1GnnqTZXgsu6g75K8pSbxwlQ+Xiq0ErcOxr2uw7L5UxfhC2nYu0LqAEkWgDYlLJ
jVEnYW7ij7iDRsUOGL5qnASe0fuRWk+/W8b6gEzSTc/NMV/NOtjl4ZbR2S7VfpQBhb0X6Y4PM+IQ
Wn3RdTG2MakREKfrVC6SOs/RyjINqtxX15yRFgOUYQrFsDqjNK/7XQ1qEetwglqcxPLwq5sgGIBL
1anJvWP/NYlHbtp28GVksNHCCH4D/Gk75Qnz5D6WckMtJNyctmSW9OJ1uyrSZHwBLZuTqAi9eJik
KlA31opSDkC3Nj4NczgV40wAtMEq37n+TOYXQ3s46qjyKOnnV+xP5TxNF8VXoiusXmSYo5aEsrLL
ar5elGi0gr5HVl8bfCHvcREatylC44+kCI1ju9p85sa6OJEgSQPlIftWCCqsuZYUlWXsVrj/bEti
LGzEWDyWemLO19SEtcXBN4qDH1iGOGzdcjAvNGHNdITPWxmtaxzNzgPflqj7NqLuPxZRx0L4mxF1
WQUMR6Rb4TOjJRIJpFFOBzJJN7Ws1bEfpWcYBTDcictRaAV4u3IKaQ3LeAcEC6TUZzk8QOu36XRW
eAaoWXgxX42mmi60qgQYM1ivDO6xZpI2mkk+Fs0kuE8dSd5lZY25kshnllUZjqQs8Gvoods5RYmZ
U1TpCUY2o96DyoY8EbjcWmZuFgAPmjFH8jLIwiGU9KnFzvktquvQiM+Ut8Zxi2EPPCYYWfdWGQo6
LEB1fNdl6ua0xMLKymcLc3M9JihwfrKVl0boS8Na2OIhlEllXvcCMvHw5As84+YnXuxrsscNLVnp
CSoaLbltaxTYWKPgsVgjadfobn3y5mxpIC1ryteVc40/A6if8zyIIQPIlB7zZeBehd7d0weZWV+0
qEEt30bYmr6uY0wW4JVZfxOs64JYKxrU8uUHXiQYaR4ZrfMQQ0ij2LbiqUnFLnHP5mGTAISvLx25
X/CmAJQ4sBmXk1ma3ywbmznWoJbFadzLK42Wr1FLA0fO7YojsijKNzzzIRKoSJW0pTkXyWXAXgQY
L9MUAtHhmG5+7coxqhckz8vuirA3WhS8XRlzcycS7TCC2rpS80dcYy9CYNnr0Z5uFs6i0SXTWB1W
YAyVJgHensbGUP6OnYbFxmx3wCRwuLVwcSqvjFDRoiCksa0tL8/iHI3qF/kd6jaV75fqN8zjfKWL
nTG/bRUITRwVKpArJcw5a0k/mBWDcmz8OgfppM6CIRjQrtutPc3Eib81LeFDRU+tXHRFxiGH8utq
vPxAs1U5TX3LCrALFYpR5E7lq2WVZZp5BdqFLW+p/cJuUxR1XPE7Fe7S4VUrX8aVo+Rz11qioviL
49adQoB1vYZmYpiJxJbQKVutrsGrlbaI1TWT/QSyRko0NDB4mQMwdzVA71aj6oclRIRuZMKhIASI
jrDYbnQf0O15c1AKiOtkhiv1C0ZmRaZs4ro7fatBuIWNTgPZ0E1ccOOd9js8IBv1W9VN4S4esdfr
58fMqQeLUWUCAZwJLthWr6mPRPPAwKT7QCufhuNZ9HyQpit09B2f0tbGNYyGcNurTBPDsIy0Puxg
sDquaPSw31T3crhDdTa8+g4ZIdqE71s2+tjp3iLMAE2osiFRKXuoqSZOF6aVg/p0s+Na66HeTt0v
+3CAx9FL05M4ykskzmkWnwK4QjdLz/RDYZSE3bGx1YNDlwV3amrNzF2YWxJh2I9zx+Zz6XI0c9ER
DbiKhOSm7SpjvG4aQf/plSOWf5k3fSp3Ox3kRRaFkwVinQbtqOh8FYBZ32jdaUlpdfWdBbuVWYAA
QsdZur7UEsV58V8D2UBLyyriSZTOCvNbKlF76jsK4Jdo2JeI681gwNgS2orVZUdfnsEqthYF3BLu
fgK9CFhLwiwLL0oybDMqk7Dkda23etM0Vp9yfUgLrumzbi7cnpsb6BZapUpHEt/zBgpsIIGAGL4l
gVPT6holDZN6ZVdrSpoefxV2F2lAR3E/z6pawoBbiSLO8Xpa/xKKcu4TLV+EqHhZfrMCDE6KGru0
9jhBIO9BAcm6hs5x7Eql2F6JB5AaqTCHttjWOArz0aL40eteXOmkqf5NXeC0uBrqx/NrUP6QGCMz
cLn4VgJh7NpCgy642zzD84ncuGHc3hF7UEfJW7MSK5u+6o9hEgAQ8v2IWot0OKyIWilwOW3c+die
ZAQCUuKC4I3WpPE6Gnp9ayiw3PJbB2pZvQHeWhUuLA7QPbVCxnQRV4ZbbkxF6Y1bVVNEqSk7uvE2
3Qcs2SM1ThWPDb54nBrXqHABcp42WnF1UwM0HEBDg+43gGrZp7pSVqno+HSHvtohZF4ooL56Ol95
+X20Q/eezrKx+ttVWcEOfaF7BnaI7Ke9GdTrPeunkzBOdkig/pGBsZ4GHRr4mG3Y0ptKLAhThga3
knMz5toA0xK1ovErw39kS6jQ1JZixAhts4j7fA46mU41CvJtyDEMkI/pJo3bOBqGPReRlvIuOWnX
yJlTNYG6l4Ru1x3iGG3PsBKinCL8gMyqI5mDfUfNHh6WmPDmLw7TLD2NoZU4LIE7jU85nAHSfGsP
lRpnSkP6lV12xtI32WH0AUVzjs48kFzDFrh61LKnQtxy65gvXOeTyv97I3UE+Sg8iQCEfAwlrGoi
6nvpJIny3MxuLlUk0d4LmN3EDIkY4IAhaIsdFdDHTGhwv823KUTFBEhvt+S33/CPVvz3fpRcmD1y
jDuUI0ket+0zKwQWkFbtz6UvO3dXlYHU2ARx2SBuLDhgQOnoC1cmeRqVRCYxEIZoa7z4QZgVcRUG
LIZqD0wdAb2oOGypNX7+PAe99UbeaMgEB4/aKBttsn4YEnib8miOpmS9Bl0bu5lFVe6hCKgl3VEj
+1hO4JaonUNgFPgbskbmWhnI1YrN7ISBFE65bbJdqZx/DS0ik1gjjJgQ4NVBMD9oTy2agxSoE7rR
SnUrVDFrj0mZYE6aNQRN0+lseg3n3CvSqbHfBK5fC8UCN8S+JOOcq0mzm6yCxFaswZX4zabDTEWI
l6wXVZFisN2Se9EopdUU6OZWE/5bP86h0HfpV55jI6jNLqDI7F7Hrbl55EK5QIxtsRSdA84/cX7X
zPeMW5JaN7tnV46IyU9Z8mbuTB4wKtStdOaeVtFxBNKWJK32xa+65xy58noXfDrXEUiqG+EBi27b
ORJCt/e8yQPSCRrBOSxVsptx6NDaae7NXbeKd2/e6BqYq/xLETTkwQNfubzI9XjGzkAgVXYFRrh+
Ag4jjhqq3qW7nnb/BdzBaNJV5woB1gLPC0gJjV49w61I4lygdJO5g3onjAH9eFPiENz7ugZ3Nxse
Xijf1M7K+/7K4W5jdQUFqQUNfznl+XUex8o1DscV2EPMXxtvqeoEb4y3fH2NSQnft2TdXU93VvZd
BYGAAMRiQL72Wq+hQpgWK4HdlDcYe10BvCWjt46nTH3c8ek2CSvutkq/ZdE4vFj0sMb93Bss6LKf
dyP1tc4KlaFc+Wk7BMX950/KvzwBHFHIYTyZjmfq/ODvOovxJJxO1b6U7v65p+TuJC5KXukkKjQc
4JM5ZGmoXJHLj5mkp3EEn1IWhT+BZ44/dncvt/APiRC6Y4P6s8nk4ll+NthBHD5qtxxI78J89vrr
ZpMnKM96Tic4P67ViJgDrb2PrXAat3gHKt7E7Hq6+VqKahDGY20qLjHLF6/8phwSIKdakUdWbV4Z
yy+te5E9i/PFl1cQrsYpMBXYifX2YbvejZvzh7SVVfaO13Cxk9n4Fv8aeJatKpy5Y5AKoQQOOb+p
rXlbbg4a6AEwwSJo7arPW8PLqsDTKMsrXi4lZR2Cg/uhKtepygE/h60psfdWR6xZgsas6GDqCc4k
PC8x5cwQ/QweVpAbFeXGSbuu1x6sh7aDkI0PtD0Pbf0J3u6hcSrpo9D7a9cSEopY2+6V0a0CGAnG
2/EvzH1TxBJZs6auivNJCJ7GArriFrcWY43riu63pasqlFvzqjw4Q1fRZes/bg1RXdjEWpfTfjQI
Z+PCU0q/CmQaB+35pxNlib2w14umxW2XFlkDINyYxr95ad+ujhv+qrwEcyFvwKClwa6+fp2RqoAd
KOEY6LTvkSP1+BNc9zu7Zec4AfQ7riOm69xLqzwRJLntSg7svQm1i0p64UtjalsjA7aSmdIvfbdU
FXIo66SsbaVc1pl6syQPB1GcjGMzaQYXaiOoaH02idGazStgl0tDjA0sfr1IcR1BtfH7EIXJtPMg
suRC1dk2UwFD0GEtmYWrOwaGwVbRN9JpN62ecsGpRLI9tyJJ73YqfKFJHjZwe9IkWhGFJIqLUZTB
j0MlEvDlyq+k2Q0/0VQKh5oGc+uLtbP1VCBfWyFW3K7bLylFoJJwoF9pQaaNWpRQSxqr2rKotji5
xnBoNKRc2RZG25bHSx5FszQJKJt2u/1z1oZ0GhlTz4TSDuW49XUvkOy07MUV1EhIcMvK6frCUJGX
wIFSik38qJUKJZ3011XzxiJ9xNV1k23vu94OMzmTtsjSSXlEWRJ/2SGwaDZ4XvrpvwEF61ma9Z9n
6ozyGzQ7Al4aUcsaFLahpAx9G5aMIv+FZHUeFc//+vpa/lbu2PN+3D+cJQfa5btkGNW9iKjIZtEO
3fsNdvVIf+rzJ0q4CBfeDnl9uv+VZMcvxLdvRx+/y7+/7413yN7ezxcf0PDrazT4deZH6emXL2/U
d0cfX6hPfHLzGkrZsUOsqi35i5aB23RgzUyhAxx3yUTLMrB6uJ/VvNLhLDJlBuo9xDac0P40rpgQ
UyHnA70lR2/d3hIkXTvmJk+ZIQYY7B1G5EPe9X9W99wz7LhXvd88kC1qJeWv5r04XlBPawXhqe3z
Lj9hHkoYXzbAXcD+Q7UdVDJ1K/bILzo+OTjqvvpUsBfvX3/d/5wdfP7y3vc/vvSVZM6mr46j02nv
068h7+b9yfsRKg6CQpy8+vDu1/7Pt8Yza+RErmaE4IX3bkZa7qtgyMcP+Ti8Fg5D0gfr3XBMvC8j
fPr++CRILtI/5Ydvv94GhyeD/b0vH89PLpROF/GvffSm+4O88g9Pzs5mX798fkmmB6DDD6PX558G
Sfzv8enPKJ0Ovv84Gp2fTj8cvPnWnx6eDWHoCp0j/O3qnKvcq7m7GbC22WM91X+qztRrcKLk3uqF
p2rKT+db9XR39+kOEcOiwtX/1puh0aFS2fzwC5n2Dj+c/8qP0y6ZTA5m39AXtfV754dnGU/E6P2f
pq0ALuk676kuhft2kgsKeLYP5qxe0h3JTSf1nqYp7b/7l8i/mf/1YKRU1V9xMnr17Yi+5K8GvS/H
Lw9/nbF3f/pH3/aNJ8WU0y22/zRYYXsdvBEC5/nzJ1ef/UfZ7nwDFfP3J3c8h6nd7jDsS/bwhSbL
+iP05eWYiZ8/354PkuQEyYs+yE52MjqOybvTV+LVh9lfnyn686BSaB6OptsnO5LtvNhr5wJxZcep
az/UiLsiqGVXU1OtCoTVs9yrehKUALzCgu2d/1485Guc/wu285qZDv8dksnk02Hx48fFv1JMku7J
OHm796l7vJ/k4cnPH73vedj9mR+9m/SqrgEnD38bvrGT9x8Hw9O//ozyt9Hx3zh6k4gB/TCYJcVb
f8q+//sh+hTOXr5Ql6NSH7RYv3NZdQsPP6VsmguGAV1WBg/VYXWWO2L3oWj6f63Kp9JxoEpt0yAI
atiICtrbOdmtUtYXibGgjjBqScV3Py+C3l9zxgc528UV8uByP0tu35XMNMD7k4C1PbppYF8C+siD
PMy+ijIrjpLx9p6B1G4DiFjU16bDbCu4sAR5tfHbplDRVRRZ3J3B22jaN5dRAEUFFw/yJJ3Zpjpv
sc3ovxHxg4edPHez9T5rr5PrLEuToU05FO9Q7j/klKKr0+A02PRFIHawgfe5AuE4KsjhaSjOzvLk
Qp5fdD+oTVb/sPslHKM3xQC9/vHN3/90/PPnUP3gbRJWpt7Fhnc/kAy3VnKwWmiAazX8WgQB00xZ
u6y4mGNeE6LOrORaeV4m1o6UGUyGz6Aq66U6+pdpP/o/dM7lf9QfVP/x+++7u6s1UR2G5MN9baj7
9l9pJnmNJqxmAiokd24f0hPvLC5G11rDvW50kSZ9D/+DjV4SZcpNEv+LklBZm0Ac+qk69NbsA2Mo
pa1EPKQBsiSicyuGmDSPstZhNPSRv/E1Sv9BlwKaZBTXLajrZ9BYnxYa6RlwzwH2uQLWC3WYXFMi
/2oePyDMH/JpGVUKdhV9N8NvZ5ht+jgxYmgza69AbEf2kOW8LchyHBDJWAezh5slLO0sNUo3kxuX
KurXSGysT+ZHCNtqI++tHkSZxS+/4Sgs4B0WCEIespCG3d4OEVW+ndwk9NiqPAVkPWX4av/D/tf9
xiaVcfoojrQqfKNkc2ASK5h6AdB0EZe57Tl5ILRMI3PQxtdvl3YiSgHySWtR6xxm43pdmZrXNE3y
RYeJuXSSAK6hfMgi/uEiHR6/GU17F3vw3+jgzflpd9IbfidB0f12POu/3EPhm9fo4G3//9m71ua2
jWT7V3g/UCnnLiLMG5MqlsuvxN71Ovfam6zjL7dAEiLhkABDkHrk19/pAUhRwoAEgRmQ2qTKD4mi
iFdP9+me06cXwx9vJr/Of558+Tf7OsQfZ19evUQjPFt/uXv56tfPH2Yfvv7vZPxjMBm9/fv1l7e/
fP3y6eV0GL+cDecfrr/8+Mtv795+8Edz/f7r8eePN+PP8P7pVB0Djp0NMUu+fH6nX1O/N333w4fZ
r+SXO/U579Tnp+/e/JB9wfIu/PwxHX7y0T//9W7y5ceZ+p0P/vv4xe/vb/Yk1w660wxK39qe9mt9
RwkM6jBpfdOA9PiRXZt2HDUK5HEA8e2bF69bF6KakJyOhlLqMM5VW9dJPFJAB7qS5+Es/iOsHOqG
ZFBTN9odFmCYni5qSdSTR3IKLdgaJIPIdfw4MnYgEKQljkB+tgiT7bjKLVIHRZkSQxY9U6Hh8tIw
lxL4Xj7DLnWjkjQZRbvqKW3V8IQ6FXoke9eGM6MB7jq+mCKIT3oMHRfp/v2PH3766eWLj62XmPT5
uVqKccYU7ZGgiwiEfGKLel9C6diM0lnNySbugowLxmztIENQL+D4FKtANqKumeOMOgk9HS83OOXN
y/KTDJQ+UJerzpJoqWDISTPyxmXmzHYNyv6IlmkOxddbJQtjROYERmzIU5hNQJ3KUk6iJFpCEjLK
FkfLU7a5pRgJkJY+zvt9evPi46u3rfcXkTg7fdM2txKKeIKe+VI3xVmOFCSRzpzi89EsCpcD9Njy
oKosjkz67VgeQ+xsUH0J0oM+kvDJCW4Ll7Ir6zW3VdEeZtgRDiNGwVtJm+kV7m8IMAtfgd4ZcX+D
1eK/L3xUDssWDkmPFcx9TqFtjjmk+5UOyRAwvX1b3f16a045s2stdhZOoG3VXDpQ+BY7rWrlD/vg
bOiAi6OrWe0ploEknbM6mXA5UGaSeqvUayQe3gqdBaLH/ZPvM5f96EU5wPUxNse4foT7gd8PA8/r
kzcXo9l6pY48uL29BdJq3rNVfJL6cZKu4qu712kSlRADEjAwrl2zSM11ZXMWNGrWAlbhgfIJP3AZ
cbKuLGNL7GbuQUsh/TZrQapcGiG/c8dCMemeeomoRRhUSDns2TSGGSEcneuyMkkmY/jrrDqhXsrV
TEfTeDbeM4wcAajzz7wwUPtqfNqjlHZv7Q64bzZDd+37J6BgTc+1qFH3MmAgYae16WOHsNh2JrDj
2qQbdG+EjhId3vaMVSM+aSm/7DJG17UWiYgC37JrpxEwys93TJBtCwU4hxBiXVPuJcPMeYzNR17s
iE6Z5kSrG8Ca1IZypnbOz9aju71wCA/VHP4END11URrMNvQvyJyaKF/c6oFGzw3yWDrfQIR1ieZs
TQMPWI8dSSO0vi0qxMm2RQPYjDm2SGiBM4+xzx3lG7iqow0fueNuw5n5yLkz2+vFEJM9xpllpDEP
s3z6gorQWX4WWbS8Njf+B4KojAWduXMwZnwCFHwcrs18BlXR9lYqJSOO1d/T8gKDI3mBlnoEMMdP
KRuwN5Yd8RPSMIE+Io6cgmiJyc/YE4LWtoazC9DlsDYSY+Ocs/VwO68MegLC0aqCbopY0FYJ6WCI
ihNPPflQi7zmY+eMu0aUAc/mBP1IKt/ATwl+G/Z4CefsXMLrMXwv7mOFvTun5QZCiv+Q4HLcmGPM
ur/XvBUA3gfziRnmY0fV8a1Dy0bTaA4PeBau4uvIhLlBglGK/4yAdsxMaaq7D4+szFnp5EBHspds
UTTZ2TveiryG0pM0BASS/jl9Lws6QRlbFV2tfG+5yod7hPAj80FbdsMp+xP6U6jNEXwKvir1iaO4
TavoAKgWeYTb8KVGfUpQGDqSv2KJG1xrx4M3tO3tXNKCUmVmSiLKgprIidu9/IDVYpvxmgSbq2hZ
MaAbaM7I5qE2V1cctOLOBoKWhH+Oe8Lde3/TBg/xaymINrx55fsmEUB5aee+LdJsVWz9VWtScdoj
tdwebxNm7n0hPLfodhEtY2D1hrMBSDJcZNN0PRv/33KdDO6i7GKULQb3v6Ke7fb0+uQFPNGL3we1
z6CPfyh2Cr5mF9ojDvS/JdZjAKzHWmMRm96L7XmU1LmpWqqytaXdH2mxjBNov87trOyCQJc4kLXy
NV6FS2txXkt3mau7TGsJy5+VxamXvsnDqf73G1cWKOs1wNVZ/oVwrRfp4RDeKJ3DDajiJnJcc9iO
TRNknNjzrw9f9q7iWaR1Fq/SdTI2E8lgOLxw4OAfHbvco8G5CjD86S6CYZhFnE5DZdsvFcJXFn5f
dW+7NvZ9dgnfCJgyUGs74dhnuN+cyrOlKW8GtY7UoN7w+tnt3R/DWTi9eCRKrb7ZNAWUut4CgDQC
u8CD8zjTvHK4TY/nLVMC8hmOvZqZAUGh180/o3WWpOVlZjewrIyxBR49l5Q5t88qc8TPHlujwCDQ
gKljwzDXzDm4ftQG/rSnGQSnU4bgAsaYYcnEU1kbK7e4SzDiwk1sdlAqdkyYOK0Jcha4fv6Vh2dA
vcABcV7/ynfgvXWShVdRzoI11sJ8BgJ51k8nUxhmmN7mLIliOWRAEdAzAnJhLNNOMZKoV2+rpeXt
SYw1W4A66keFCYPUgBFCgx/F3aGePhmN4+s+ibawxzCRgzzrk1f/5Xll9ENxvTZ03kKlstm9NXQ0
CtITFLuJjuoi1DsqckHqCyeoqc5K2E55MfJllMFhl2iuOEO9H1J8PXhwtsrUiu/vtchKakRBj6Og
i3WbJlHJvpIoXk0jPTo0VHYGX5beki4f7cOYEJIPAwA7XizWLqi8nDAQb3iDx5KE1/EkH7u5ALHZ
jcS/N75Lwnk8gvmec5UQj36DVbW8M8tdErWksDjJkjIuJYp69SSTnS0l07IJmsChnQd0f/i8v90b
p+ZgjwiFHKCDRar5ifobY1sXUNl86cwuovlCuflHLjZO1CKKV/mGbLYe5rsDJgRCe4ywzoL73nJG
HT190CjH5BZf5V9QYbAxlXBy0s4LRMkYSh2zNJ/GC4TTZBJ5YZZFFS1PMAeDk06fsul5YqlQReAW
UVR0ogDnlju7AUdgCFAq99FJHN8qXXj3dlQTSghKzj5Fb5mUl1pAmDLTxyOA84HXR138/WXmAj7b
wTGbGTSD/EMvFmrp3qTL8WCZjn7LSqizJ5skDS1GdNXT7eXOpxURIjpaspVpCA3O4060ynFtuQwT
ZGriHlzcIHRanFAfJHgKHPy+TlflaWs9quBYRyvPOCuLIOJyvdXpSdGRmjrGCBU0dgbuz+ENyFuF
qh0OYqSmmpP1hZ7PKTHBVYqeRIXePgRgGDWhQuzcbHCgu3mgof1P6L5LxJxZ3YH6KcUwIY+3y0eA
50V8tJ22YDxQANVt2ZFt71x1WV4OrJoxW4m+8mPxMhrpRGx7A/T60upnA3VjLlbhchKtBpu36sJR
BtyUfGu/uLIsnyiUfzO4CmdZ9ACZwYkyglo9q/J5NzoZnVQy0eNNsrldrY7VdJmuVjN1EjoojSZx
PlXxu+8ezV3KRywW7x5gxi+SxfTRs1WRQ50RkqhTsCxa1VrvjwTZgdavMm2XqsSZB0+nEAIYp7Ts
kLoGwZkNX4Nr+BoHO2l52IHbkeUDQOL5RMctI5ygEEa6czPYkpvJbdo/JzfDAvI0aALfOKhESCkd
weFZqtaxSaEbKxzayqvd98Kn80W4jLxRmEExOouSLNYdnMY0LlCHteIfyGH/4IvuliaxtDQJIACJ
z2lp0lb7tJtT8F6+/+nVP968BglHKGvPfv743kybAjFO1AaVbw6ZF+KWswEwBr+/vLxczReX78O7
dL36V55FKzxQJNSGaK3pmNvTzx/v4zPOfSlnVuC1OGDSwOBn3XrJR/Td3w91v9RuT9j1ryrEFv41
+qZEKuQ9Ko7N0lqtZNFoJUMEeWAXAhbykaWeGufd5GT0skIwI0GejJupsGEfM4L/+qfdP88M7CjK
As6fBnpyAJ6oaBmfrqIltBluyFOzm/DOKOvDMK05gfhwJvj4qMr7FPu6z/MTeLx8BajAI1f5zjbK
FTpLxh1WFsgeptRGpAsORjpMHbH5kxQq81GmAvrQy2YwUlZPeDZfMW1GPazAIqAjrCMMgBKIpH3y
Qlm5+qMR0VTdnKINpv7i1O7Vg+3FDe9vW4x8UP8vIlKAnNjvLJ2Yahqg2MJd8n/rXn1OSD+69N4K
SAR2gEQAjw2RswISDggDFZ7I7Ih5syyy0umPo6twPVuZD9aQzXG2PqDeuNADPlzTHYz5G2jfUd91
lCyemCFMIiEsZc+LcBJ5q2m40ivFGCEowTXnbfBmUoNmgUGMVCiW514xK8aYDUdjB7CPtQtl9ZzQ
Hl0TGoCwB+00mtKaSiqn9kRXYTwzow+3bRxbcJdnouP1fH7X9+Xl0QSOC/2r+Qc8Nj51JdQPkHBl
fKDmEy6AARpt5v+Z6dXQDIwsBkE9r2lf/oOCZmJCRl8HlekNi7J6JoWAHT+M3aYCZtUSYIbhkyV7
FAUuDSxO9pCtuG6C6dq1uemOdFDDgK8cBDTiY2vJie4XKSrWJYEU6WudQsxtruTD1CcBWzKUWndY
e7A7ZaimDvMBtFso8k9S6MFB3joZhaOpGRdI3FbuqC3+dVzlfRRkUROCZCmmYpCqY36HLocB4YLY
Qu5bNTjlC5K8KmAefSiJyhecF2sL364fkJUdmy0FQntFnZur5/4tzATFfslJlrdxqISRMK5In9oe
96kOUeZccquKJILA7TH5ZELb7h8HYY4EkjPrMSCJrquaEEWvXT92LW+sj2/wxYQwlygOltpm6JY6
g6QiCIIOCe/YtXJ79MsdMHMfeRfl+dhApCEtG+8eDJuEYG/u7GRQBrVvxam3/YGeoztOb5LJUgEq
cwFCpUaMnFwNaiMFpZwHfvxMoHyKkXgyzk9/AR340/A60t9DeFuE6kUHvpBRzpwDxWqjMm0xtqJv
N/ITNthgOTyvomhigpzCDnM7KifNxA7rWz44fG8aJuMZtOKWuDpg5gV5tQqWqbUJTDm3Ck17TrNq
MVacqJROfa7RyQrkBK8/CuLGCpQMVJThHfoHYzJJunYIEj2RcCFe9sXrtmEh/5SSXJgKDn7QCrTZ
DO4YgrsoB3dK8JHdIa1qVhK3rKuYHEDeFW9c+5y17OM/HDvMbYoCt1Ttr7XyjXoAGgU47UTezzJV
C84yyfT4YgVwThUSCtoDk6JgaIbvKjMlncItiXvs6YDxH/rsVWvvqj/F4F0p9pnTHbz0Wj2ReBxt
69OVTUSwj+dj634t1yL01kujRgmj0BQqXLuY+5MwbXFhp7hqu9dt2otAQNvAZxJeiQ6v+gfCkEQT
FWfbaepYnGXSrpJUT9FqezraoGJzZqdwovKfpNNNyqBHqewO7yAZuB/ds2+ZSEhimRv1ZKMvJKCQ
4DJC6avd9gUVOGNLd/m+Ke3ORHYRuBviq2GhMhVVbEaUYnPXXF0WLQsstQJJcQYmsOpKB7N4KT+X
6zid5UpsmvhoZuWRQPlHLmzBRnNdCba0Keo4KSfylP0lujHxEG7cLuIjIePWI/TJD8on9MnrvVQ4
AJnFh8HUCNPH6w81YNLHNS0FwSgKbLnXBj1ZjXbqlW+RktTxLqKmd6nevGO0R2otb2FveQPj0xst
02xTGvDiOfCA9ZSrajoewnrMFWp1X1rsNKrDW79POxl1xd0yA0XCcE1dBHEEbIiTrxUwhcGYh1ot
CU2vPz92bgmGeMtxzTYXYdEnMyrP3SdvT+9J+WQqA3oWPscs8wzEVHycse3JQgBvqO+AQLcwYTtK
MPdtOvuj9rhZgGqKAYimZYIsml1tp8dWUIj0iEvq3LUfs1Nbb4SjbRutGQopgWlAdvx/ae5fAiNB
9eA/BWzaMg8lh6frsw59N1dJdb2hG+6iVb1W4lpP52pWNEEqr7UIV1OzBB1Vh2xwk82JUS5nXFHZ
pAS6FIKTLQ5dfTUXN1DN3rQGvtS8d113K0fUaYYz3X/DDASOYOfaoXXX3z9qWtcxipQUuxMQLkwb
RiTgrRCohb16TIRNVFDnYSv3SbsHvg5CXyUgwJWAwPfb+7NtoyFwGwvVXkPEYDBXxLfjsfXg3FG0
WOULSVehQ+3B1Uq63BQK5uk6i2APC6oFfw+vw1w99vs80I7T0RrygO/G6TyMk2f5b2lVR/Xl8/lA
PbzSzjJWcYcy7FOLHnDP5j0Qd46MsqUFUfMZHaPaZc8gkHTtbioJAvVkqMQxfROHW54JaYYhzLBF
i8cWqx70qq/Ws1m+6o0bIWBNfqeOTqIex+0t6r6VuaphH0ugyMuziNi7jI/AccSmQgpsyYxVYN4x
YKP9+jAOCbHuIhep4sMSn1t0wVsDm8WJce0IGIHd8pBVa+fgwSWnPYqwo1R0O4L+OdjCoJmruYiS
cKg84P3LhaL3AMpmffIq/9U+eXPElCLy6nL7a+qbhfrv3ZVaDXfpGjhQEZDbV9MYqO7zKMtU4vK3
Dd39Ptrr8TFwyGfwQz0n2w/V3/F6vgCUcKU/BD4qP2H1xVCFrJu/5a8n2x/D3VH//c+LT5/evP4O
Tg5OqIQPAExiya2tSd0qYrQKIDL4uAE4aDoXtY2BlGeqMooduutJChqdu5NVy3VSn7bMZdsNdkU+
1p11zHUZFKAdUp6bUkyoK+yhXpmFowig18psryD3EojTh+jsYYymlLiM0dCmjri05Q9gVYHUm8p2
zAUTKaBDnbgO0ZV9KtZQ9aJC9TkIQPXZFuhpN81Hwc7jz2OPxu8BznA1hoClX8RAo/g/4kRarKFt
vcxzhRjn8QpE5neB+uCTflmtCvgJRE3ltdR/V2kuiAZB9q4IxJvfuVhFt6urOJqN0eBDdKPfvZzr
wHsLnwRYQf0HM8nu34oHF8twHKeTZbpeoMFVNFfB/kJFzNFvw/QWD9LkQlmr+vTNG+IwP1C4jEI0
+Ge61B1y+w/Xx6/gSqbxCC4ldykaJuizz1YwI0i/QaOFm/zl1XqpsUN6D1JAiuu7i831vtX6ONHY
pE9HmRZPkW6StWpj0Xbtix7jqJv1ZRzvhBk6K6xbDm0X+tdL7yyg8H3UV+i3AMbb74sP+wSf9ScD
xxTmaiLGybli1oMYxlMIxrdYz3goyWLeKqdBzclHdZajOmoUqxsULpfh3XB9dWUGEQpAgOADc5Bi
Vw4b5fxk0NCdKvzh8o0jttW+2w35QKMqTovpQ0ET6oEDxIYCt9BYAYuCBJMpFGI+DyLVChP0PJBj
uXKbPzAm2AkhAJK80+KA9UiBuUJRvt9xsZ1iZjlQDGfp0Hh9wofFFHRXPbH7fBCM10M+5baKL/cz
VlJvI7uyKE9ZoT4hvqVMDIbe7lF4ATIvtlc2NmHdkjpeXam6+qhh5sEM1j0EEZUqNdrVqjB7HUNG
yzCbmndAdNOdsLSuD10cg2IOE2cAjBwVzb411MuIYNylX6nizaLaooc2iSCUU2u2u2NYWyveg4dg
kjAK8KlYZuYdcgyKwMJ2imUm2fk1ZdWOhIP6KXizOIPetmWmcvkKTi6jrNkOhL3n3+gGfM1004R3
f8TNKyo3eNxGSNVntuspsV7RqVOn+TMVZgg0BbN2DGLnmNsIcRjpMXSue6AVG58Bt4mQbuJknN54
6SJKzNrjrCVecQjTzQgLtmV9ZK/ilUXL62jsDWPz9Aukb1ETRt8eN5iaWsoUNG6W95tu5k6y8zKe
ML0paOZ5atoX6RZD7m+z2ii7PYCCD7qjtidbdEc1lVAxibdK2WQBmuUPNLjQ2gfP9dc/f3w/yNYj
9bNMHc9obhIQrsSBbftOFzALo6Kp268r5OcqBleb64WeXBatBvC6Mexefv7UD9CnT5cPg2uJogUy
yeKsDN3UT6izqU4MnbEjc4sW3BLCuTjNbiXviVZbBweM1FvdxCPdO+BFCawwD3EVSrx1EsN3VWpI
SLQjC07UDck8hpE0OnV1y4GRKNDTtfZvbZp6wNlf/IanxW8gDFlj8WRRMvbCKxWIvNEszSIvTdQC
1bsLxsUT8GYbYFVFhj0buFgC7c0tedcbRwbPBNJddULr2vcxw+xwhA2AQkhY4GLjqqrNbfc3d3yi
l90pH3TrqUiRLh9XHPQ081q2RffubypTgyFW2aWPSK4SMZrEO0eiYMlQ2wh4YKuxut415uLMQLjr
MPCZByXKlnsMp45C+ZAIi7GI+o06d/f4tf1cDaSJiF3VMc1DlTmQCs5Lu4Ui6rSwmSt6M4XCgloo
jD080jzORrsECt12nSnwUFawUOAGwR6X+rQmG8q1DOs6jm6MxgXTjzESnaUREmNyZmmq2RHWS1vr
hFUBY4UQEme3D2PtUZjuqrlUVXcaSG0bB/6CQoNFArmn1xZRTLpoB2lZJ/NlZ3UyIRzb5NYai0w/
t8lcvXWtw81oGs/GlUOpEAua1bb/yvtOmffJgPq2l7i56qn1oRu4Ex2cx0vlrkA9YCMovB1sneOi
So6IUMic+adeOgcUuxGBod8+PbNYeyC0KqweyMk2wkLSCDfhUNZKOCdWTS6aL1Z35t0rIE4L/rR3
W+7H5/nSbnIE+I43XJDRfBiNC4EizW9I16tZfA38+ZEH/lh9n6/K2Nw5pgIG7WEaWAc14XiczdRx
1alAHUh/bS4Mk2b4xqpnyL/eG1SblDP+CqqnbBbDiEmbHi4dfs3JrJnmvHj6LhnbMQlMXENt1vQr
WLMVjSiE9miTKJWH8DTKklQ9ozhbPajbgSQv6wns2y4BV8hdS3fLfnU3i6bA8wrz1WK8iyqDV7cy
eLpR6VvLNToFDXFjk1Wx3xul6W+xuSSKSI9gq0lsrfyVYwHkgk67epDw0Xk0YhO3VaOdEF+Ike+U
e67D5X8P08k665PXl3326rJPXmqA2seBQlESZjbtA6gwJcN3QL576B+0dtJGWaeCeaW8hMCn7Pyl
/Bw2l1bTZXqzZ2+JCge7PZUHzdM1Dl2ZfiufdRWDQo8CLuNwFRoZ0T5vGagO4uNxugaarZ4c9//s
XVl320aW/iucB0nTjmHVvsw5Oj1tO07SWzxeYsdvEAlJbJMETYCK1L9+6hZAikuBBIECCCZ9opDg
YgKouvvy3UITmekK8eaNiLo1WIL5BAD9BtmtDyf90XwAPsTkaRkcgJCM95QgDbPjHv9cUGOGc695
JEtgbpsfQU1aFb/MMFyYPeZhkexFHiIZJkH6OAVcvClUfrrFDkU2AF5PHRtmd1e+aaIgT9t5yydr
ETYHfbNLxj0zfkU0SSBSvziTtYuQ0SU+7SCOmxpNsST0UoOwMLboyq3lmZiWVVRNrQZo2RFLyadQ
cWdSoOK4CkPXWF5JxBHtFlrLt7LgxPnMBOPnW8S3XYYa17QaJnaN9RVMd4N8CW+n0MGNPAmFY7xd
wcGrYKZlqhFsSYbYugiE6Ie5DUx4leqhOiSkxVFdC+bdvlmqtjBNDdM6aRYRXHK2nEeS8ZbtqMus
uiteOSGHe+Ucae0HwWFVwufZROOAlBP2ilfrb69DP94K2Cpxqu5ITElVzlQ9pADQaMdoBLnOCUbh
5HYOMbzwNhxOjKoxGzO8d/ifiqme4v7ylbP7RVm0M1sNTcC1yl72+vxL0MpCh18fFW4Od4Te5H9a
GE4r68YBBae2ZA6voSu2sJxECVFtMKA/BqkVDFvVff0kCXBB3QTUG3bEbMG4EcFvCB8IOBo4waAx
M07WUYPvoiMRCsa96T4o3N4xz4BCYTXlXnMOLvvvIaN/Q/5b1J/DQil2VN/ID+rNjtvMJr5U61No
JArGTiUZ7jHcyzFmzdi0C0/YIdmkpD1B9FHJuyOxK8HajrUHQHf9gsyLHZrDPMLZ5nvgLIHh1WCd
PXqVyKMR427KRkJDHUZHvAnsyZsosb0EcOqUt27e4dhO0wIfpmCOFoAiM9aEKHNJMLOtkh0XER11
JZCGUJVAGkWqRSOLuI0sgZVnM8fdDcmq5QgaEQLomFkx1GhYCfI0e0tJCO+IvXlcz64j5CjQqXSK
+7S6CSHMo+1BixtPaOUanvvhIIqz6rMAyqaDSZwGtnDaOWRIqV4luECrf2+MlWGWNAiT4gZUBm07
LXvm5mE7FaKVd9d4/TwLleFdQuScmVlTztA/5j2Kq9YUrqCg5ft5PxkE4+SFOd5uKkFQ4+rrTIWn
kLzxUxDcVo2SsZqad5tz6tgWXMw2TyJP0e1M6gb9cNKPRkGRG6GIrtk8tykrWQGIN6qJU77HGZ/E
5j53dWQYWsLVrMSG0uOyglWPVZW6hkKMDQe+BrXVE5zVVDRAb4ltEcwUThIMhgnA/Tr3Rmij3KpU
Qe+i/IF5ZxYDoH0yjSdJ9ME4oc6TA1Kjql8uchulL9KHra4nAu3JsutG2PLvCbfHM0gPx5Wav/Y4
J3BNs3hHrltDHMqnfONu+UZQNVSmmlxTKY9/mEzdUSkjYHWFv6gX3L9LP1uDDUiIctGifcoKghql
CkHVbkllAWuX5Gv1li2HTOxAoxQKIi0d9OPxOHSTnBJwQYdfymH3nKHEGFnGa5zpgCpQ5g7wgB1I
D7+CSvBS5TqyVH1oaooPO9HPbz/89PM/3++oNCumK0vzd1E4MEbp1XOYjzF6/mBWwZguAGH//Ll5
z746z2jBPd9q02fUuocrSYBVHxjaZNLUSLnMTO3fDv8MPURXL16sjt4Be2U8ZeeLb18ZY+58Mr27
wmsXJXqYc6ZFTzKkSpUVKJdENgsY3MA8IyP2lzmeJLoFpQrdTeYjZ6BcSONFl0IcVyWLB9veUqJ6
qlQ9ACsSszYuFRrX1Iiy0ehpP7ffP7dHb+LZFc0O/5JeofOxMV0+PE6jK6g6upyOwuFkC9OfImG8
Ntou+4yj9C4emLV+/vbjh+fmrg9aWCZ7Uh5GkOY0x7paGDaGagn9TctJFLTAQrpYHn6eGrkKV9hJ
UN+qlBSFnaR388Hw1GIRkiBMHif9YGX13elhAjCDurJ8nI2tYguARy2LOuNdzDiTUnUD8mjLV6g8
ceby8u4M4V3OOjbswxRXh/GPs63WtdTbGVMqaU8S7pWN3L3cZcVR1v2eCSWwaTegfPMqrFLpMuXD
e2BKVrEgC8WZdIbpJSo5Pk51A50XvPw07Mc+W1wVqiVLC7n3Ph7Ni1qalYZh182ZXXuoOROpgPGm
6anxoBC8jhYwP3sbpU+QfaPhxJ1fskgtqha7T+fJnR0wGsynA/OUBLtmORIJLSWqNlGsoJIzt80v
DNGrLhCfrq9v8mE6kI4c3jwGg9i9nZr1qGCehHcGHbFrL4FUy42aOQJvudmKS6+UZ4MJ0Ftqzpts
RJnNf4x51G2qIOIEY6LbEbJFJF4pDnU8GmCkJodkl2t+LTuXu+pGlWzkcMpwK7bz+xrMLfRcUbZQ
wChezXySdVE4XZZsSlBHLxh/sqPOkPKZMEG61Ei+sjxtnr7Nh7OviZuGAITSQ2C7Bm+TSvfr1l5u
G9FoLN1R62wSB33z84ZchobynMJECunHqvbgSK+a4htu9CDuz4GJXvxmfiL67zNC4CPztI4ZbLGF
DRddmU/MaQwPmINsgGuxV40hgkIl9+YzLsXr9uR4Y20YmqRIezrZniGFEhIPSrQYBytojBJItRqM
c19EFZ9kh5ZxDRPKBK3ZY1ll2b0z+VIMEoROV0jxKgGdPfIGzpcWwFgxW7RCfBKLKkBsg8ROPStr
gUAXTfrBYAhTYKAPYhCPC8Knxp/rUaK9mZDFk9kp9NG0ZNqXYwPKpUdD8+m6zP5mwuDB0Z1Fqm3x
wdF5NyUD7ogQXY8dXkziSXThtTKIMuSR8pbdU/14lrQZSMOYnuJ9nGfeizObWDJjuECEO34MjBDN
29oDgMGAxPb/TMMk+S2eDf63i7sCtbfd8BvW9HiN5NsZEeF4ekZf9uPp456qWYxlj8lyZdWq6vzx
Qj8iA0SF6DBR/Pi8gaRsnDdu4tjQ5LV3Ika+S6W2L3/5jvn2zWh4e5daGJr8Jo4mfJ9tC1regJH9
MIXmX8C/zQCJCmIouCTG3MbZNzqcxtPodms+hCwJg9Z6zA+G8ti/4prpfZN9sl9YK7H2akIJ1HAp
YVkZozFtLTqDMUGtBkxchUOKq3YqY3mBX1q2y7Ocj5hNVXGXDFl07woe8Eqtp60BtOM9ne1IStUs
n/Bprrgl4nn+le2Pr7DTqLn4/P79xZ8271T3GENEt8cr3szAlSUaThKzq0Fyfwsv3b35SpYcZ6vK
A1X8VoBSgYU0ZMo6nzfaGLTzxmf1DatUglIgDcYRgALmUtIZN8Led7ehbgePksFF9uf90Tw1vwMC
YDC8zzIZQ/P0AO7JMM9sZJ/kYuL+Nnt3KS/M8X8Fwfk3chUE8JKIM0IfUHhGr/NGQfsGUeaNMq7S
mmNkX9hTbo8zNy6SYsy/LFqnny3BBCNWjA5vwmLYS7kE4A+ZbFgkOpEDOEx6rtKa0G6gb1NITcP0
zutgSlEl3+sWHGk8DbLJHXNbhJbjKtyFk8HIXVCEFdQmU3+iMplf24BAISAXA3huX3e80tQOaHAZ
qPXymwXDeY1txU+R6s7oG+OdzB7P6OtsOKJPMlSK4y6qFbqlVjbsSrwu34uUCqiT7B+gsgoBQb+f
rFmruSdmFqd30WxagEUCMTMqqWxaPDulM9bVejQqGuZIU3GSTEloODE/PvOqEyjVXWTG1ZD1ttlG
buxfO9Ya0bBMXJ2Uk5NFwt54LY+rX5qzCAA/9t1eh7EPS07nO0wITaJwlvV5u2Osqlpn1m4sSXuX
Ad6WQgzqnKRgzZyQFJwQK3RKUi8nYM82MCeayFY2Oqsxg2onRTqSDtzgggPiarZScO1lkFk4l5/f
v7/803aLaY9TSpQfaWEjmJPYzrMMskkH9hvOgmnGS8KPHLTDRS4GB3kltH95tXOcCIeugDKLy8tU
SUJ+YfESSGkQjcLHK7rdoSwAEE8gUaup75hypEmvhiNF/LQegFsNGYFlx9XdEEj+MRim0djZ82s7
r7xLNefpt+49Q/5Evk++cw0c84QI6ync6lXsyNsQBDhBvMVEWQFwjmb4iBuTNxxz3QZlFrbNEXD7
SEfi2OtyfSt5dYaQI2ywye7EWDGc61MVwg14sdyczJ/wzXF+y4pfJXTJEQOH2QDxNJoEuwLqDALq
/rlrzwo45voQrc0WyBZq6Jvgye11rlwpV8S2ed2CJkfdq1wea9ruVexSlFJUi5DXtVwoYuZERHWE
eQQmJyjNYZ7cMAnP6EuQ6wCeFybReNiPR/HEL7qFFt1Q3/tFsgDUPCz96CJwy2G05W7QBSbKTk89
TP9YBJx9cJ8C+oaRd7mWxstbDixUwXZMS0soRxP+Tl28wpjB4D52oixqPrEPoZ39aOdg5uMwkymA
6nlN7VVaJhftp8Ce9+FoaCTpzDnZjknmIZ3sIr2VE2cdXA5FintcsXbKEN0wblgebnZm8CNNSMZS
wgIzafveiTcSmYWTQTy2G3UfzZJ5EoyjMWhbm553mhzYAqP7yrRmF7BsNtt47Z48jURDJ6cO+4JU
RMcss987o5SCGCYR9Ogwg5Va3ZyYDos++7x/NLCB6NudGPiS8GpIIY4b7c/iJHFMWLcu0uJi3CRP
aqqvp4vYXIODroOIahRxnKGU290F3gtH5YGWYsPyeyc/Ywb6nXNf3LTgnh1o59IIL6xlF7iHNiJB
3RksWnJqxtEBDQuZxHfhIqO1ArirZAcVe99Gu6iO07LptVKFkvPr3fOZESQLGK51e5PBdfxgmP7O
bGJuwQ6h1f9JZRUM81SoZl3sE1XlPDWJLU056z97lbpCncuaxtDZYqzjafhYlJzVwLlInjwnNVqM
KfiBrUzN6iA3Uo/oUY2qYBE6aWc+GUQ3w0k02MOYQLAaNcuYTroFoxH71zg7A1cYGBSfaAi/jeh9
pXqtAvob9s353SXjCDoV+OnLrAayfIxwzeqzY7QY4ZkZAckCihFoA4IuBVwpYdBFKbNAl6KBcZh8
hbkWhQhBGAM8jWbdCH3vi3ojVSqvpMvuzdJy6cfx16F73Co2eqGUpaz3Wi/7zm/uP4QJZ5Oh22i0
wchSfbT6IJmdhDeR03ajmJQcT6q76Uz7L1A2XkKpxhJ9CLc49+LP3/IGj8sPd8PkO/MXfgeffpdf
3nZFpFGvrAqpFgiPaWiYcRAk89ksvrVpRsAcHcWJJdTEXRupoV5AKp9cmuGRx1MnhRLDEgg3whLU
zRLc2IqkGXmw606JdW1ow6RHS5LeGX25xRy45Nzkw67PnHYhICaxnVGebHMmpTWJrpgKCkanGa2p
SLOsZlR2UhAvkkKUjBeV5rLbKAYjGqL/5jh9ZS7FSMm3cTIsKoPmhvdwLXV0XDOymeJ/RhlmDXMp
C57Gw2fjaIfj2yfgXSf40uVNHJvPLl2d4iBdUDMi7XCyUjB0U1QwOswNboIPAbonY17uzFYIfLgL
l9f+PfQivwpHIyg8+imBo2jwaZjeLb7wcRLeh8MRTPp8E89+eFqIf9gRXo7hgVxTQ0Pa162XK9g4
XCS6eztZyQHDlSTSb2Hav9spjLARRrW8g5JEvPdKFAaPivrSDbNREKbpbHg9T90OiqEZQrn/jZ71
l/5Y4a5ThkoCh3VeBTQZAGWi3ESs0qyRF4+4G3dwNSexkPwmcZDOjCCDOhE7Bt1J9dAv5NfuH8cD
GFWTRKMbdxgLLE6mPN5pXg3jjg/DXGbs3f520Pc3N3pieUPZQYRU9qhmTDUjH/fsFIUpFPL3ISWa
CDmicjB/h8lvO2cai+thGuSxYHeIh6qaxt8WNeRJ0HDglE+YQMJdco9sm43UXmKPFyRapFGTuhn6
f7rjIEmjKXb77zD8pp0LKAjmlQz6H7Ts0XiaPgZWc7rXXQB9VQgLbM7L3ILaf3KBtjCgWE9Qeuri
pq3Kd1qup/RQ9p9F4/je7SoQxUpWBFRnhez0xewI+d5y6M26ct7DkCvI3XUpnGn47eTh5ef3Z3OE
CCfcPHF6ubM/T5Ee00pW5attbkqyfEThzAoJrWC0rS1zCjANfTyobUlCJfYtM/dIS6JaMAbcEHZU
lhy74lri22gSzcLU7GsukRZoOymEQNzGB4H/fw+SusUGCI5ErTXL780WK+asl+HqRffZpkEaohD8
QnFZLUXtiqnFs2Ths0BBx43xMi04+1akGdAVDz/lvxI7FCZ4OuPiHVsGtB2AwxB/85ZBSyKo97RL
aru6jGsJ0IXJXfjVPXwVqR7m/v0kZ8OHdMdeZUmUtAOIC0rnAHF8BqGk0WMhnDA6bOE9zQLIJMCx
hwHs+s5dFA6iWXL1AHWlX4fpxtrBhJYK4uAPvGp5rZVCTQix7dYYgVCj27Oy/hsRo8IfuY3SF+mD
Y02qOKhO4bd8M9cq2TxxN3YGgGdUcQcOuD1bPlMzF1TP4LdmPe1nz5JmzyJ/liR/rfPXKH9m+b+L
8s9x/pz/juDr/37xfaLy55vsmeevOV19JoKg9e8RvX6di/cPv97NhLUyMp6SCpv8tNR2vtt4ytZ+
2vgEMMKggd/F2vipDIrOalPmrtFxBSyhSo5/0A31D2rehBGw0iTh9j90j2Ld0G0rt3hmtSLTZf0t
5q5pJCXbMnRXRp9j7kVp2st7X+DkEFwS7eswRWQs8AGYvmE/Hd6by3FTIBT2yOMxHqty8qORgyS8
oaWiW6sDYCr10qgtBwu8IoriKkVF3rSBaGqbWYFMrqJ+/M2sp1x6Vn/xJAux7AmuaAr1FI0ohLKu
waEKgfMTulpdxb85nnRlR1RE5bDWqpycFNlhshnvQNC2g5WsHlPsdkholSobX1QhkD6mYCaUkYZu
XrqpkmN+QhKDV0nReZMY0lfR47+jWRyMosmt8aLS6MHdsGtHPTVmfxK3/amI72DAauxz46Pcdsgi
mcEgTMMimCqMJSqJNNjU5tO23PZsJzgW3cndX5xlMbYssrZ8JMg88kH2iO2jso/SPrKn70TMvkPs
o7bvZMfcHofB2VwNIvOPZQgf8xt0Y97BODybC0n65pHTa/M+vrm+2Fk3gCEeLYk+rWI8n54UlfSI
bCK4qu9YTOLC5G22qsF1FCQhoAD8uwD0RkgjO5sy8ESRKiWt2A47xajDsODUeHyY8LatRFGr7LJs
4NE5X5gjatTFMSMKVZZ7deLwdBQ+ArTGLUwVcdcpQE9gy+aB1scyD9zZfFWtYsqfRahbihstjALm
XbouIjclJasCq1SQIwaQq2RSS50cFfntqHX/uorqakGTSNuET9QxozYnVE23vFCf9h3WrCmhjwsY
gPNGpX7yOOkXFmuxI4oaXqudIScKa7EAr9u6USMCbKOtfScBMKvCqViKHlwyVt2EzfWLlI06naWB
corMvPPT906ZUsxPa4C9e0tIDlHBq/WY+6uvQEeNo7LGlFQB51DWgq/zBKARAKKGs+Rck5Kz+5qy
z2Qt2I4ofW2bNN5Fo/DBXs6beHY9HAwiOPj47u/vjfws6GbgMGIA4SaV1bJCNJ9dnjcqZ63z1487
nBUsteFJRtt1GFDNfKDZjyCNxtPgxiiwzGw1B5NwHF0tl+IVrMRPKwvx8vHHbBm2axSBPo5ZflJJ
pVcynhYFHdhz0beTOHeRpZddw1qLkwqpNmd+68Ms0rcfP3RsNwHWiEjx+6BLKo+YEWSCnTgtUGU8
+nr9sXfh1FzWGGDorX+zC+SSCo2qdeDViFpyhI+ocNRR7ZFxBsXktEcYlKGqdu0RhrxXGyxF/rLm
wHYuKuhcXFCpOVyV8Bm1ri8r/OYZfQPsdEZfv3hhvmYf1jTDt3k4izBCL6aT2zMi7B6Yb29E8RY7
r36P92pV8dbNGrXoJ0q6bP9Z6ZY6hd3GQuOjmNo52JpTOSLpB9i3aAXtFV69eHFp/lb631fX7dyu
mivOjYlmgKuG6B9GJAhxTMecn5ArsouqKVFdp2qhWavVQgyr0zBEC/cVnBLMdFfDz67I23khzMlr
RZl5fI2/341yAl2D5NDKjM7yJT7QFfv8j+8//Pjz647diPGIVAOA29sk5YYc1j3C67pHI3NwH2U4
btmiuVHrdDXArI6Ak3jGvdeVgGmre2qpWYV47i79FQoGmJCW7MkP+ZU4mfpQFG5P0mmxOlUvG2nZ
tkKsdcmg/pimPhm/eChKlic5CWDzZI31jTG+GJHjdeAyEvo/uAmrz83jJYDEVU0ViIb9dB6ODL+O
x6FzPCSSJYcClTHRM0aLUthQe/zx3d+vkrmVGeZsbjRx2aMCY3V6PLhQvz4ZUNbHglgTfbcxYNa7
A9DYH5q4Fzdji1Y33IrLZ88u0XN0+ez5s8sg8zHQbuhE1qMa887XyV0ko+jmwisZId0QtGA/H4Pg
VKcMprPw2ro7DmFAynU+KacIshFiOZUmNLmjC+untZT7OI2u7KvN3m1pzCpaqwK5vWlZbpl1hvSz
DFLL/HkdAIow7pBMWSdX77McMyhPc9uaKtoMJS4gNrP7fkiv3oTDLb4zF0FIQ8jiVh4HyImtKw0r
1MMUPwDHUDkteC59plEPkwIaEdTSrr8Nk2Rr1zWpndBdP+twh7SlPdrQUISKrL1Kl+f90Tw1v3L1
fI3HCXq4usDnhmnPv5ErfHEA05sHivdwPlY9yithnbWsCKCjOLNU86NwOjUnskRgJPq/wvtwcZMv
jU8fCeOtvBqM3zz+9ONfR336SzJ49Rf90w/v7n+lv6RfPnH09/FgNPj+l+TLJzy6nrx7FX0cff3b
q8Hjl8//xNc//t/kbx/SxfH8y3j02KfvXoc/jJIvr/j8mrwb/TJ+kww+fbx9+/7l8nu/fn6H+uPR
cPD53aj/yCdfPr/7+Vfz+1++H6Evn1D8V/puFMFvv+fk108P+MsHo9teb2HfGzoVgpE/Sg7WnYWW
WjaqDZyw3VIBdIVuWBYPncJYG27kWHckHba5KSv5MMyPaycYv+9IG6Rx9+dHXcBkm4s/jJykTHVP
o5NdGn2fAgc9v6bDyT4dbtiCScH/n71r723b2PJfRfuHYyRZxpwXH1kYRZukQHcv2uK6BRZYXCwo
ibLYUKIiSn7sp99zZqj3kBqSQ5nOvW2Q2JLsGc6c9+N3XtKOI8RjHQUAJ9F89FyVaAMiGFDPrs+e
Df8qK3vEdnRP9L1qQXisYyGpjujElVSTIcLXGwxFkKN/EvHJA87piypzwn1+Gd871IPaBgMaihfj
FOL7fVJfp6L2SHNdyfyUQeDaR1zM8HwZpfiIOd66KiGZ44HKJtwZMr1+XgszwVA/3YBFpehy4b6K
EOtWEL47FILWKjK4f76g6MxVLFKcTbPCsi2UvE6SpvG9foKejwOFvcDygqXLcQomwXn8S2NSO154
EelhYyil8C+1w2MVAmRjx968+8c/gNXf3ZykteC7f/v0+cc/fvyfdzfb2rm7m7doy1aJiZCDCPaI
xZtaL8ZyJv0ynsTLpb59kwbUZL5iU9kkS9OcUZpJxYNnqKMZ7OombeTjC0sHyyVbHiWtGQiuI3YQ
s9hRtCBtvFKP4TwonzHD6ld29MP8POzVoaRzrjVX+2Uku3VgMcnGPiVoALBPQxmLbp2GOvFiEZyE
0FfKETZrmLgwmBRdcQyXCQP6zO9WgOIIwngOlmjJlGuGuIBuOwNPzvjAhVTEL8dRi/HSGS1LJodz
LzTJ2BsKjmEazb9qax4pbSec4EyzNFWyKJoAC0uJ5MTf1skDqkbYwxTrEu5ncuSbHEY8SeBjVI/Y
KnAIavBKWdO2pvLOp0xfQHifsItWRpMrUu23sYEAp7yNTVnaROzgjaLbpleLDCe3Uus0pgsGEG0h
H+dY+9ORWVhsY1N2PAIFqXcluAlS1OkeKhHZi8Yi6veegzWBOIsmpuf3iHHLKOIo/Q/ncnutnzQB
q1y5tGJ38CKcxbWy2yqQrELEu/Vci0yvnyqPHTFNlimxUbR2CQu6XsCjPTHOSoP/BkM2W0mxDby7
1lrgrmhml13agKUN9ngC6ws2Vpo6w3iCHuAshnPBwymbmMvYKxPBoBNBHlUkS+ADh5Ui2k0eV4KU
ienAH2AmM7iIFTCOF2CWRCUGCce+Lcb7pzAOmW/noyvP/N07DMbdnDjpSpFcUYo//vHfC2vw7c2N
DNFRekZHhB4C5HjkImKF6cUKtjgym4ZppT1KcN5hPy0mVThF3et5No+vrYbp+fnM9stRPLNB8Riq
duA/M7rHLB33OfMuQvglMEsmwOgvQYfZAoMNOVJiMk+TeVz8FsskGbTyRpejcTZyRtF8Y0aA+C9J
GVKPgApy26+WzBF4fTzMnnDhebYyWNtH8dZjdVPmm5wyGKXHQQU+4CwkvZSlC/mb4AGT4/hR/BTN
Fmn8YZTN4Dv1OZuEzUjIbZDaFJ5ytUt4YRpCpiK0PpiHM2O9jr2DbD1MY+fbOlvF+hgHJkD4RWy8
WZTiWcRjaZtrT8T3TJDJjdyV7R0UVJVm99JbObmEEDtmL3IAc2CLeJaMslQ/xVN4DMNDHRCiVplR
r2WI7exhH581BjeCoIdy9ZhL9LK1NPJzNuxjYNzQAKO9ntupOMDcwiqJS9otQTXQXiYWxvEkWqeH
VdV4Lfuu8p6KsKkZfC9sY4VjNhp9nGGajb6iDEizLI/nIANlj4dTvK+ftYX97MJO7KbofsV5NMc7
Gk2j+b3Jhjwci8r9Tk5jka7vE61Q9AVGK30rxyDn82ymseydiVq9fGIGDVBLsv4JrgN+rhWsPiuy
fsCuoBmYYD+NssUz/HM2dI2alAUe731UbStAVDHoiVhZPYMyUC9iW7OsJYlGqux49zFZDqZs1e1r
BSFhpSm6YocFy0/OYzz8miB6EBgF83iVj6JFbDWrIoJuzUmwYMpNSVlF5XUjHpbJgyzBW2aP0pQq
lxcBRdQfcSGDbh7loyTRHocgJr0JjY4Dh99+01db4vQ63kPX9YByNJKqhW11zrDyBiwQJLiYIq24
HUJN8HHaseg6rUppA1H65BXlPcD9/8Suwp+TfJ6t7rLlT5YrSFyfhpeSFSVWVThgjNqUE/lqKWdg
G9qZzG8pt7sSGQeUXDMV71pJxXMumNfZ1VQYvVjFHnbrC26wnYBbyyb/SASeDuqAbLfZWs+9BIwF
3V17TWMm6IHz4/dQPugIeF9KvEfqYJ/35ENRyGTHrMAJptQP+84cR38Urxy9aDVgIpjojHUqTCvm
tuzhOE9wskIZYTnUq9/W8fJZnx732qbH0QXNp3G8cqbLeFI5+0Vw3qzB6gzYPyjWLQ7JkTW+J1Ty
/A73+mF00HNXwIYw2v9YwIYfSvGQbZc+Ch66/ROmpbSts7uKCNEseh7G78fo9Syzdf5e/tD7XLae
nLWuXFm+HbSSFQ/3RQlJgc4GemAMvDIDP1O9UT7dnF9GUmgTLz4wrBAWi/Lk0gfPDUejaYwkwn9d
fQPHfNiJsceCQPSYIUu5MI8mmyoPA3cm4ODNANcZPCnR1VnKv4vNqW+KjWLppb6LAOicGVEcacxo
azziWTLHysESVEEeoIPNXocTc/qFXbfGqKKGNJa3lWV8Ppac+7zFBsyjLYtoNc1LCIK4DGuZPDuE
aZPnddRsOxX9Q0mx3baUb5hG05PUDhsI6hsVC9jiZX09ewi+aOhbJyHLvLyvtt6pkmyrIzW8gFlk
Yyznl7GBsZwQrY0BuIIaGk1NVx2dgHZQBoYaaUNzWjvpZGWNrYS4UkaAKZ2s7Ptdr+yMkuXoxGuT
h27aFmRjfarZAEdtHfZdNtOOyoRYU+lMgsB7hWLRcjZH+MS7oI7SN0cEwjAF21BUVvdKBFhE2IqD
L04LBYQJ1mZvNmG1KsIsxfei8oRZlifnxEhhC+pSXp5w3S55SB8xDUyQ33tItLtuO8GGSMHajdgk
Z+q1Uo8IkeasltHoqxIqKiGkjVMFiIZvFFm+LO90UO12bVSeK1hgxTIaRapbZzOp5mAK2lTOlM9l
LH6UgZi4dY9tNLiXoMlgjFmSj/Z7dAvaTrNHAvdw0nUH/5DAYNB6r9nSqAm26KutiDua/Ma/f7n7
7c+/f/pyV9lWq7o32WUJSXH5LdFQkud3FKJbTZexGt+X7xBRQNmdndbJcA6IH7zMCf3HaBlLDB6g
PP15NYqhIufdg/WWOlGeg+RzsrmDMJZl2tCsJ4VU8rduPf0EJO5yBOgc+KSN3apa8Q/qDDBGWIIZ
FWBIocl68ilVAQPsW/urA2bY3q8LdTu7E1RPJFFcTjnZZVjx6tpxlmUHDXBI7MyyhyQ+PEXZZHzS
UOMNKAhp1qto2FkUg3dSwAo56FBOU5SjDn38Sg47lJMO5XhDP7TrHAqXtAo+t7wrAuwlfK8hucfL
ZbZEal8csy1OyaAs7FM021zwH0MaU4H/mwIbBxgtCj3SNKVVidOk+Is1IRnD305CGgBRcNdvJQML
wJP1XIp3WDnNsNdyJQWvE81HEhJz61mX2/tCYD0s7cgYWIIuklXSCiZaH95HGEHRXvEVByMX3j8d
bcBEMDTIWq8Jvl8yeXbGJWW+CMIdvD5RvWf1GojirRAXWxE/OZTubP/dCiMZ7iR0u2AMdNGbMIeH
E8uE/eTlFZwLHAgcBxwVHBR+y9QrN6XHQ8Faa2yFNmcTEbh90jJaibKPSFIOkltA7biRpaGNBMS4
HzTJj+7TaxHelepC22DlgkIKwssIaH1sm3lAee4/ucVpV8wRn7Ujm0kaAcXP8e5YGj/EqTMHCsJv
FWdvKmk3h6wVb0IicbfXgrAyWHrFzlCYKDmbrabxsmIgJEVDyBOXrA3RWiAhOqUB77GYY/XgwPF9
N1JAS7Vl3s2N45wNjHJZ8x1cRipxfbyEDSgjr9m4uqJMVs9esc+qftZqxiB0gx5TNNePZ7+5udkM
sGivn+kAp554lyFSoUf7wbLjV+0BXLGfOyRS5pMeE6moYV0+3ZJ3r+R/y4YwDbCyMgxeXYXefu1B
1+LYZyG/jCBy/qQuDfS+BH250LWCQAfrt5vInfr1zH/1RNiluPVor22CPco9cd2vYnoVuFdRYMs4
wMCjoBcyDkphGbzXWL9nu1hLEDegrVOQiyxfydEx+5lInCOj9fkECeHfsMfcUM/lu3mHOt2e7ewh
/nYr39zkUYs3orkcn6JSRtriABEaQiOc11z3yzjGXvgdYGeyoZcjlaUS5MHA88LvPIZv3oUQML9z
ntHNzcEfvXnrkCsqXLr3dkWi0AcJ7zL3NV9dLSx/q+2RoBtt83551Q99rUqw7hVZ5kZqNiiqew12
aLNFUaT0FH5g/+vF/tdN5xaWgPbQkISXjCQzvZ6iA0YshTSwIyCaJ7NoVdLSjm1x9u3HAk54nMU5
mOTDZxx+u89AWrQYbojDQettRYIySm9S3/jAcEZEyKwvvD8icK3rmOKuofXY5IFl8qbsgX3DVMXR
wthWnK9H06OpStLEIWgOuy0eZvvLD31y9cvDQWiUKDj+5Q/3+9ewzL6i1SZxDjRWGlZqB6yb+1CQ
LNshegU56r0KH5MSL5owPxIahVB+uAct9jRL5/nHJ7C8v27L5h8fHz88sg/Z8v6GhGF4I98tCuML
aa3a9uDnl7dEojHcFG+rZRDydAUSfLhexb9Gs/hW/oqPCGEDbz1EwEA57OGnv6KHaCPBf9zNKnCH
MZbgugidGs/Ht3Bo+OUkSUE3g6n+f/FuxZtok5iC5wEXSJXffAbquyVvxuvZ4ksao1r/6fkuTuGu
suVtscmTrnT0OonbgC5LAHTQc7llrv9mg6SzLSvf4umcAFE1kD2wAmLsGCFE2xd5zOMt1j3jpmsz
syQAnRpckq/1wQLUcW3EyxGHVhvFHKSDGTokrczLj7KZnFz/1+L+pMvHAw9fGCFs95D+hUcuQhIV
ipgHwYDS8JWeH+uApYCsJ/COmaIkLmGGg5yPt7G9p6NHU9YGFkvxXt/Kjz99+hk+coQDoC6Gd0DY
51aWBjwY0QMSunYkXGPDRedQjqSuj/GLTdvff/8tmf+XNDBur+XoI2xvvMGfKGYguW+v1Y9sXUb1
jfxNurn3rhe2IhqgvXLTFMQt9y/Hb9pCZJyl2HNpX8UXwhZpPibzcfboZAtwJjAUna1XsltBxX9k
obBqndIKLYpINEaQC5XOzDhOo+dPEkjpb1h5e5wolTCKrs/4BYimQsX5AlQcC9s+rYy338nJsDrJ
w/nArBiyn5TpuW4nt6SgIIx0aUCwgaLfR6iSLrmOCgrNFwQdar6K5VVNLm12go0vUutlhIjEQ1/3
PQpuyU2CL51JkqKvWMQgh8m90Je1IHzRRW6vQlriHDdK+317sEDl3blNAovRQ3Ivp92gsZWlab5C
nPNogjeH+3bib+vkAbOtsJEptiLfy2KPRDZcTxL4mN5FIIIbokLVu1eFg2EkWn30xLn3IqeiPROO
w2hpv2W9PN8PD6vVqbIMugzV69aV8sE3rMG1QUalVcCtXIC2zlWFMH2jy7ZfXw35lZhcvz0CEppG
yzxe3eIPHwRfT8gUO6+FH75WOvVJV0oszRS8fQk+AhUCkcQCt2tyrdBkGBqkXj1y/f23u7P0WnkY
sLNF+qyHofQp771hVE5MQoRdEVP+V6Kf6okH1oH7uAbP2Ckm5clIqfQlZfQe9NXp7Ffu4bwM0ebi
znRYE4kn0oZbWxWGcW535Xm2m96rWxKOU3jWr1UlZswSnBgT8EWvVNmWC0pUWTCpUGX5NJms/hd+
wzl9xkX4MnbXmbJ3X1bVN4mkmyBhtJO6ZzAwfN+eYFwss1Usx3VuC3X0QOBo0lPfvRAT6fGsRbMa
jjOY/IjJ/qAvFZJw+AGxrtKP+VY370OYDcRscc/6pl6c+NEqX/0YD+/TDdL9Mo6OUO+LGy7gWnf4
YSVj13nLGMXu0KNhsfjBqqfal1DK6SBoVaZ0RjtOcFofiDCdshKYNw9eWFOUk8th8chDlCbjAhru
lmoVSe0qRfgGxPqXX7AM5jlbI15ljMUsq2mCFS6zOM+BjrB8Zj6Gv+cZ/PWf0UN0t8lzqXXfyh+J
5+of/BueGP75/ce7uy+fP+CSC01TnuAIfiW81t39bDl2FMLAAXTICcDAKQFSwUAEuPCHta5lgNua
ZOv5+LASViXYEMKuY1WirfYMedjML9kHckjmivYKIV5aCoMNbswLOpdnevGFc41bMbNOfOWraFkq
t3zmtztYcCijJUpHuD8431GWpkkOl6r3MZlA6Nue2neBEJbNsKJdMuyQnooIA/o05zCHGZy+WReA
NfLyiOihamLnVBP7XlST73VtFepBQsF/ZS7ryPqXmlFG97GmYGMgDp+dUb5wCrt9OVKEqS2KwhwS
acMHRX0DqOv5KndGaRwtKya8BMx0Kt5uvd9+/+OX3369G9w8zVJ81GX8bQ23vs+Bh3i7wyhPRnBD
8SRN7qcrNUFKAkVmayUswZ2P51g5vP2QLI74o/jI6uk4ou9g3Kfetn//848X3TKcNAieBm7n0Z61
O1Xy7mi/+kERiGjHW+q5PF45q3i2wDhMXHUc2qsLa+bT7BBc7W1SlwsrCmmULTf9M8o02IOaXi3X
x/VolAy8muGJ9rRd83TA4iasZsHGxTfJGXb591HL83Nann8nWp6HbhPLVY9YWWbPw7nqZ75S4iPk
SZcit0yTB9iv3sRfOh7WEM/Haki78zTV2ww+UHrNmpujyN651NaudUwT5CGGAKHVR3xGEOwd9ug+
Oem5RCxsS8J6GuHQgD0bSktYFNyVJnkYY8LS0xQ2WQrLxuEi09e6StMwIBe52ZJLJV6TrIYKARx4
oGhzj6Y4sbpkZC34/pTZi5JSAcLYPeq0lAEjXzTLnpkQDhgVCTysiRXoCg90OL2EGaZ2VXLDLLRA
YVXL6vI/IVY3hA2zL86+XSfFZnnyjDO381W2cPK8a06tvEjKmXdZ+cu8jhT7PZY14AgVUHtOnswW
qZaHgHIHtGb/aEMW0u3o8BqELDIjwFAuJ9YUhOwd1HIQMZzb1uD4d89YaH1p/egTfFjXZz+R+5gt
v2JxQZoNwc6fxvBWLgM4Up3kcDpRWgKWjmV+5BIkgaeEZFGmPh2cXdakAKhEe2IMt1yBUpwa5nfu
Dp57aBEgJjsJWz01qEy85Em2lHOjFlrjyJfGUXAZDtDSvstbZJ6Op/WePvNp1Fx1DIc1O3U6umXG
mhRw7N2ynKyjvVketqxLaeJLBH7npATq+1lZhCWTHnwU6l5riqrqhFQkVLOivyMScn3WzrlI5ov1
ylk9L2InW6/S5CHOnfvRtqlQ5nFLinwJwSwED9traoyEjWWMKdN38NV3GbvTSEw06Zc3oXPElDg2
kTYzWeUV6W8Bs46e14oK5JSZ2vcPxFe7HKvhvWTFJEQJM7teoLuvteLRYvCMJpWx+vfzOE1WsQTR
Kj62HcKobWcMsbi2/k7UteTAGfETKrMZ9obrb97H0kZWfwk9/0mMm98mJVdtOraHHcXn6t1z+RGf
3rXvYde7Ucd71RHLbCdYhnjUuIvYwZZ8rZKTMF1hw/X2zJXaKxNZgmhUHdSSrvMFsFlcRdiE45R2
l7feSw1SONqV3nvnZtN9TGlBfw/47EYov7XuYRftUlFy9aAV4R9wXF3DSsxaz/vDH9Mkfw9/ovcY
qtE+PmHdXf3uIIo44FO+nMiMmcxP1Tm2N7JX8VbmeU/qpCQIQq3HqK247D+Keu04P8gHxOuSG+0/
BwI6pfEJmhkDee7SpuJ1h8umkDBW2UKaNSVSLOQEhJjXNSPPYrCjxlWM7HJiWDT2Ivd38ADVLAWP
ErawRWqGscA6BiNQ5XhzFeVxoiG8lKPxDkbiMMeTwV5k+Um920pApXPi9lkS6G5AvaaRBJwFr4mS
KiQBb6LM6zHnoTOhZU7KDIOzL3Kk0k3cPMAZfef6wUsx57ab6AAtsaJ1lwSID+B57T2bbC5jZE78
hAFBLLNI5hWj/MCqwrHoos/y4ODSNSKAcfqa6LVCBJiNSmBnI5gbIqi4dw8BMoh1Bjkqq5cHtSml
/3hzsy2i/1ivS3sDYx2vlNN+2E1S9GsT0Z383BX/lSe2SMjaMnE9qaMNHfqmkKdHexhl2ddElYlu
2g+myXKM1W+rZ0e9C4ItjZ5kIVc5ZTHiGw6+PbsDKdo/qZdPofQ9DH3bWah4vPUqSeHYJdXKaU6T
9VzWAN6OY2TZYisn944DLXl72b1YZot4uYIVzlaACyS18DLPDnfwc5apZz/RW0Bwtt3KosJovZoe
8yO+poIlSrAk49tJlv2Zn/iIziBg9URpdbqi5ZYQGBgMq7BV6HK/sM8ZrcHfm20o5lnPiNwQP6eR
NII352jiYJq5CsES23kD3qGiUftRKvl5Aa5C9DXGqks5DWRvl1fUPWjo2p8NgtpIMx3Rr+mmXoKI
COGiDyKvUdLhrMQrK2sUzDcszDW18+5jXbsHH7BWbkMTJmWCX8RwqbZbuvOW9iVFFXxRGBgC8V1A
Ulxj8fS1TiR4rA/c53PeA93vBaFVGVBWuSZY/dj/JWSx74ve7SmgvDNG3hXTAdfooxz6IANC+XFq
Ra5idY6RYMUBZd3bHeUnsZV1snmsni1Sf1TZ1t0+gc3xsMS0OwVTpCgr3GLXM0Xu6TLW0L6/QYUZ
WBMFYNiFaXbI2FCzWueaQhDKLLtiOyNG7cDqdoXrW7TnutsqR6TuFtSL7YSfv/z6y5fPiFGf3M8d
JE0Zm52WgIZ4AhVe0KUgN4lYV/h10mYMPCsi/cwBOdFqFY2+6pF1ZWeO1714K5NuAaWg2kT3emb/
vs5c10bhHIzCvM7jdHJ9rHiOUU1OwLHDgWjiGdgSeJUChDD3ewpgc+73S3xXS2+/y+xB9XkVKT5G
WX8USJX+ABOId6RAgBT1Y666MX9rKpAKdz/kIDj9sDvJrZLd8t3JOtWXN/ocv+hciWGZc5USI+gf
BaQXSuTYa9EokZM8DPZf2LTldjvLlhIh8YftK9v7lRgcb44dZdl6VrDk7ZPzGA+/Jiv9p9Tz3r57
Y9Vn0HW7q8lAAfmutJWweuPN4AN4I8/WVK7OSzKcEgfWI/+i9zP07naWCcdWzsoJWIijTi8i15FI
qmW7EM30XOOwNp7Om3L7/3o9z6MJNkKlyWmMmyCOEQlfnLVZ3TTXeWv4u+QycII6CxNssgC7L6p4
DgOuYVdxErgfZ1fwrAWjxFm/NaswGvZmnddLfkj/RbwGxOt2UJ9QLhhP6Lm5lPQ9w2HG5xWMPODf
S7CwfDlaxqI0Vh6qw12+bXkcZuNnTdsvwtfSF1rZ821Hsmutzl509f/n7vp/2zay/L8iLOAuDgs6
nO8zKYJF2ibbxabXos1egfvlQEu0xUQifZTkOP3rb96QkmVqSA3J4cg9YNd1ZCfvzfs2b2be+zyu
XkQQI3y6l8S6Q+G4l6HllkASR9zXAbtKXuR6/fkiKRe/dDwlCoDJYBPeVDzv/IzgErecJxs7fg0h
jvPLfUXNZ7qyRMw6UELWaQmc+pNzhVaIOQ7kGZWsW5TdmbfDUE8ZrGOu1QROX3Qh55MsRMV7D6ao
NszJSg3Xu9U2M9AAm/uuRl0Vu07LHuiobq2qSCo68sG7w47vk+2y82ZCkJAlVHvV1GppMqR3NI5e
YK9m7+5ZJF5o92z/5lkyKul2CrZ7Iz1z6w3JLfoTGUdX646Mpwp/T9uttTYOGriEnDjonW3rRZKY
NogXqs0eXb1I9awzDuvq/bpjp7qQMdBF82LVugvF4k9kCV1+zSZr8TZ1EdXgge6LNTTsDqBnyK41
2h2yARAGhazRPhLS8NsazhxHA48JkWebq5HEACaiXqhj9Omt7gvCFDZEnmsYZlT+iXTQBRnAJior
KVNAErFWJkIxLyZTxcQDDNv4CkUUw3HQU8vdWVl1FymKkbWSk9QIWmr9BPKO9FSm96k244XB+XuO
c942Mg/F4iVUjPstlxATueomTcr50v4K7oqYTiYDGCcx41PHiuJL3toND/mKmDwEVDroDgFSb/38
As1tth427Oluqubp9z1Yrh1gm0EcniD8PTfT/cSedHFA4Y8WRVohaHaEGokdQdGHKuYuzdNSR0Cz
p+loCB2uh3QgxBoBqpghP06Q5XkxB4yph2yu03J7H6fjrIye2t6sOjYvKqjjQJvBFcnbr6v0WnNh
wxQf1apx5FCL9FafX7oeozCmZGStqDWkPafcGcpwjJFOP+NJVHxUfnpyrYC1iqcxrGx910EZIamz
oykrFbZlkm8MKuq2AGYsdkZNQyOeZPmHVLF2MOtgdgYDWNiUW5iNFUsd8t/qDpZXr5oviy1TfZ/+
wskQXxipZm6ro43OJVaL6CaN9NZelDAgfpnm0TrZzgEPOkoOrJnoa+Lx366weHbzoP98ojaiz0x8
XAfNsAHFznI34+Kq5uvndlenrsxTulDNg2t7vIKSIIyn9LLWdRpFce1fsfISV6uFwlyGavRd65op
QLSE8Wl7Xz0Z9gJjph3Vw3MNYABAkLZAdjOtWfX/Kmq4uv2Qd7aX4/Z8VMP+kdvfpdvf/usfPxTz
3dqgk7ZCh/EY8NPYRQ+sDDE/OAXp+l7nUZuHO1sqI2dITXEiOnaFjicFCiifk9YJWDmx3TnFw25G
grsJ3F7Zd8chiWEVP49rQJNFZMKpWYbpONxPjvvGHOfND1/ZxtURMiS98MdBPcpOqzOeJF4UN59A
vbZ4AU/OE22fuzy5va2SvRvtxnD4MwBGqO1k4gk26kzY0El40OXitrM2Q/6Una7qScswIllvqYn+
0wPcbKwriCBr3z3M8fPFBPz7momVsTczIqCeXdw6oYfhgXMBjjOnQ+iyhWhoG+J+0tF6MWZhepmw
Suua6Iz4uhmsSVbggFmysSe/WOuQ05AXU06A7XQQtaf2lNfV/O0rjN+//eeH1zCQ+/4+zRffL7PV
wozl1hlkXKbr4iE9fIb/49tFHfKuTW24ppGWP3786cMb/UMzEhzHxjHf/PW2ADtN4RXl9U2xWnw7
L1ZF+Vrb01+vyLv3eqvalfuB3/rs6sRAPQ1c0/r21atGUTqjSCdnrL/ofL4kIDV02MkqKe/S6JMZ
6n6n7dJ2xYOlVIyRmVRI0niEkYAZNAeoITRTlI34R489K69GzlfYsB3jHYUijkjA1DWCONNGBGZB
jTeYk7fEei6OCWXgJe24LLHOjJwGAtLhVQpVD8WBGWtdtHQqNhjoNy4MMCX6M9BMDw+5/LbQxHc5
hJVonhiEee2yOpCc5qVOkd03XehfxU6dx2cou65ShaJFEI11UsBiNb1bWavrkY4nhPqJYkfDawzR
zX2iWbJmJQCFxdTlHVlRfllHdith65287GdibbNb+4uT1LuvmDiWp4/3RfcUNqngcghPp4JOhqz6
4J6coS5JdTp4IMThGYYEDq3EtCZSTMIFVjZg22qaLjP3E8S78W6SfHFTPOrTcq2v4/7pKN+tWgoh
MMyMCrxfcDWdz5yXQ9d1rxQzSgZ4dJ48ZHem8gZKr4rVyhRKRsntNi0j4DvSfGcP2qNvNedLeHe6
q66eDRT2bdbWj6JPiISxS4rLcvihBMqoOJpcTvayJelYiefBf+w+gxzrc1wCbaZJmdHP6aP+Mchi
Yy5/rBsOzE8YEuJHWkOHwyg5Ix6U0ZOjFpvEXKnJ7aKuod6X+n3JVot5UtorkyG6chJQOi3MdWow
nhHiJ43bpPniyaIrTJD19k1yf7/KqrrEK/w+2RbrK/zdo+XpFy7u1ZScbNPHrWaheZcjNW0agO48
mS/TaJ3k2e3pYFeGZ3RIPt+fi81JTyyCDqlwJvBpU+QnDxYzQXGA1T8d89A1bqoAzdi0BvhcDuVm
Y/cEPEOMxAGkkc7XtTROH3YGJUIj9GHhgNHAFoFOLYIiHpgJYmEiRgGYWGUPaasuYnz5faw1FxUi
gHjuV0mWn5InIoif2BXDZhyTgJG7zVv1sQ5JESr7svf4wkQPHt5Iu3Iroa0jfP7Xlh4PuittKggG
v5TppwrmzdT+m34TuC21n5ak46uxw2nJNCMuk0XxJblZmSup+60pDnd7IRfYsW3ZVR1H83Gevj2B
0KqG4DB0GcJCcE+3Vm4gnOfNpyizP2oQxQrW3FrarQ+WDZG9ffZ3f6zARCaRoplnZCXX5HKm4vF6
fSJ+NBxtE+m9OLnP8jtraTJh2BFO3cGvqoKmrkoMTrk2JhzChI3w0fnRVigQeeMAZKbQ4EfLqrZm
t0nL5K5Fvogi6jiV0s8K8amAaWN2Gg5EvoJcm0nOg62enK6eN8r2SCDy9eqRkDLY8qll+Y04RgOR
r5ev/xNu+cyy/MajOQtEfq99TsMZPz9dPmtUxvBA5OvlCxUu8Amb8p+HdhGIfNVjpCMP95lCLNLb
ZLey7zKmNRRNkwLvCb9aZCU6m5ayBh41FAaGZcTYnpgpLP0kUWV6t1vBwOCepxLlihI+ThL4rEp4
QxITqQSfVQlvdNxMxsgcWilbeKDI07EJS+bTvU1bxL9//VBZ1xzqQ+Y7U52+WSWbpb1kSVCYee7z
2b3UR4X1TVpGN5od6Nj6UpSLqgzAdKbsynTTchJu3AbcFsWFOCFu9fLTM4LieHpG3DhBgvgJh827
KTuQHNWpj3gZS8dc4QtYw9/nxXqtZWVFNoMRqsjP9XKHaroB9qDUXcY+Q1hewFnYuhlKPsN4mlS4
JguqsH/aYhaYCU8e8TWfL8sCCEIn9tqO7B6fjJz/y18uJIF6K2TEa8k+NKG7iIKA/KXX1HhfUKm3
T3slI9PmN+Qg+mkTQZISPS22/sQyJZIAWAnGJNiJxwwStmTgjcqU6tfCsbHPv52wHOK2ZtsK6S5f
wNyIqlit6hS9vn5V/a+6gqv7DF8dGkjhpevjsybSb8y/8Hb7BlXfvS/Kk5uKSAtPcBKrCSKCcQ6z
nCw/rkZvwzGIAYUVC4/+YY3ICCaXIRXMWluMtTHbb2JbtZkqnwkRVgyWO1o25Bm+Waxb3UfPl+n8
89GtdO82b8QVOlEKDiiT/f4kaFC1WC6P3QYlh1BL3fuOVANmtGI8nGAOx2gWVDf0/LVG9Wvh2NhL
QoSVhO2SW55KggVko5aECCwJ2313o367+rVwbOwlEfBFFViw3H1TcWoTIiAbe+/A6NL5sGg0NFwo
HxYs8MnAkmU0X6OSqXf2xLq1yxkP+CqYtOztAp01TfqaNvd2M4UoKY/JHz6LviTZNrpJ9ck3jW6K
HYwAszVYcsKIQbHBnFrOaiSkMGqFiDiwn1JbnQI9FQYNycjeOgUOKwxmO8WrU2GwkIzUwmCChxUG
t6XhlhDOQzJyKTex7eyNbC+ZemtPrHu7dERmcrguqbCXIv01fawRz+21cVBQ4eHRLct1XI4ezWGs
hiO2lh5LwTyXHmPGr29Ois31p9D27FWY1Uw0QAeydtoDBCn3UOG4Km4Owxtvvm7TqGwFakFmbPb4
yHpTFp/TPNKfRmk+LxYtlZTm/R0z/0Kte10LO2K14I5Acc6+WS33sNRHy7SfGfEA/VJ1sdUwBHXr
bvt0FoQB9If5NdriPm1ekZ4D7TAFrJJMzYYdFDAeVnRzjnQF5WtthoCqe8J8PxyeEu8eWIs91wzf
l5kmWRngvgeiriE/bXmIAKEr5hexd+HpydAEr0dNMU8gim31j68frfCpEKs99aQD+uIe+O0JEdAS
T2AUvKCejGylt1kAkLBQ3pziAlIdswdsSy0grQ4Td46Q8QG7rSkPgAqPZtLJ2llPFex/4WcDymBT
BGEwnYj3p+3N05BwCnDMwdOKh7Qss0XagvikUyAnzTPnOo371VeLULmcUc4mJlSB2JCYB6GDKQ4j
ODfQAw+EiJraFCgCx3aLrV4kR8MsSKIwJudUdOjDEpxG5I4jxGdqhhULZAnEp7NqbVzfn6oHxUQw
/1uWbY+CKY2BjI7gQEbnBvfMBmQ/tqQH6ROM0zuzj5XRMHHIrXneR3yQJNCC4jA2jkJtsQwHCKyw
lVN/gahxZuo+xQjH+wkvQT32HDDaV3oaQPQpgQxhYOJTE6PoxfFERYjdF2M5PmuZL3f5ZzPGtrgr
AR0ifYBTY/p4b6YnfEjzO3tpnyYsHXuOh7mdNQ0wg2Y8yna//GpgXTVv9KS5eiYRmtbxbP4G/RTC
w7F4VRgM2LbBE5RCWjr25qFtVipU+Q1LB1ruEoEQtr/buM7pdCdErLcI1POudqyhqLXbBSk2LP42
7aHI8xp2JS3Lupre+i5lroV8ZoxZfpvl2RbqlIv7hqfVV2CYBaUnvN5pnKfHveZ3DuvDYfXHOApL
Lw5rLzRWYekRHtY+KQlsn2H1x1RY/+OB7ZNzGdY+Zdj4OSjZH7MfscDxUykPG3zxObM/YyMK2Zjo
5+O//Pxb16L0GSja6P9XZE0L1XyVJuUJChK8qMYxnpa2pQOWSBGUJoKzEWXyIkI2xN1g6s5YUVno
JLhGcn+Ou1bNk1jfpIsW+DUUS+E4Q945R25lpwWNovGy3AoC4Z0BcxbBMy75BZcvkLggdeYha+mg
aYXvRGzYKdZt0femvb7hB61HNcK546yuQczkhYsSZKMR3q8HnOGhdgKB8GW9ULBLM0CnZKDq9ttv
+JarKzmTiF1YAoRfVgKqgY4SXAKSkEt7gfIbjyt5R5ttAW2mdviFaVOAp2SohkGxZkMADuf1KbKL
BwsmJZ0sBzix+79X37/5/V/R47JsaKjJGoBL48urZrot8rxqyMtVjXwBXkPwxVTDpXiRqiEALcdf
QEBDfoP5SSpnRVZiwrFad8KUttkkdomUlkl6+bSasQsrwmtB4wAGMBaXVwMjcbBAZdkmpkuu3HRA
p0sh3BgQDRiGi9iA4Je0AcwvrIIh2XWFXGO+RhXt6g/V9/VHN7vb27SM1sWiBftRqRkhF7ZAzi/t
Al5rVYdIQFLv2cjTFAuoSlrf20dKcOK58O4M6jxixDZWwuuD8CAWJI39qkB/ervK7pbbCOrbrJ15
mnDP7pbzI8w7eLCEXqrXrSa87j1HXcTEr9QP46vPwExiHtMZ9ty5Yq+BPFCoaiBd50rVpmsZtUo1
64QwffIPwf5TCad4ZWGCxyIoExhbuRBsAi60Lqoh70PUCTa/fdyePoYLXya/gUfwegDaYUw91KFF
2F5qypm2e5e9lo+vsnar2WgQWmeb+atVstlCxgITuQG1udy0oQYg5dgeyFuRS49pGU0vkm365qNe
5yL5eoW/v8IxRvrLfxYP8G0cS/2fGF2RtzHRXwjRf/zHTx+bRX9Up7RkAsZ+ggmAw5miTjMORjAV
aZaiXlJiUzIUk+h9etOLIacn3zES6skQ5SKQHSnhLCM1JUsk+ikp+4gIcaxGB7UzIdVeBwTdJIpO
SNtKlnHqmDhaw2uWfwbshCjTmUYNgNYGpACoGcTp+cUHJbfKAyulopqOWmeB9rE7eIblaAKw4yX6
eG1UtijWiZ0ag4teSQZSe/KVekiB9ezOZhSPXo9BTIeGis3260qb+jJNrQ1api2Aj17PGbon7RtC
oRllauwqn3Bp7PWXQo5eWaKj02ZnUnhrG4DUVIbawzrZfI6ydXKXRnBIsB/ldQCfETlgITVGkpbT
q40269Vqs9XxuAZZgTAV6TCVPWjTv9XLtXYxCb084lS03h0I68FAUY0Ub6YgR4tks7wpYPK0zdGw
zmlxPFp9lXTNZaGZhrAXtOXUKjniMzmEZqekj0JMW5CUAjlWA/DuksgaWeRIypYKTAI7PaLKg1a3
yXwJ/VoVvr71dKJg6gjz5iGH1jv7xs20ufo8CKXzZRHB+dR2wyxnAjvWL/miNyQ76NaaNeQ4wyy5
rqsiqhOg9nne+hBLFB+/vGL+oQAsnfetrWIUchI6dPNZ66XsY6be5crkawQHWb3Z/e+u2NrXhhBM
XPEpz2er1KF0m9i7/viMDj6wH82vrzbAKC+22e3XaFHkaUvvHzv/6EBfkwa1ZQY1BccthpsVYFGC
31s3dgK4vYh5sZYKB6pK+aDOwF6yikZk5vqL6Wo9TomsVbrKEV2jQUTbwSqFsVPpdlkW88/X882m
eZeG5IxxPn6HOUKx0lEqgnhl2WIY05kl5UO37wrMGWS1u1lnW3vJReyIb9FtAAbSMT3AZwLYof2S
TYEJMDxAgg1fOsjNTNY59qhTOQo1Q5jxoVlsXkTPD+XWBme4PpITHPxPD/TCg8c2YdT0p+VX0/Lx
31fvvy+z+bJJVyfoNOaDRZhHu+2trAHaDPqo9bWZzjimA4nsR8SbphETKR7uIu3UyVe9Y26yP9Io
T++0oVR5pLHPk8FX4A9UXkK8TJ9Q1EUIUyroRQjHXKoJQo/9dt+cTaZc59UP8ZV6f/UDupIxfP/d
O/MVm6/s6PO35mvcjCDaw1RMxAvnUMQvnUM15OzZNCqDT7LSCVWa63B1Z7/gJIBqwfxHixrI1Xbo
RMzMPxWeVljDy9gOLxXyyvhsO32EA6eOuNaLH0wQ7Z0QdMvwj7TUG3YFKfP8hbEej+fh9Jc+6hML
PL7pfWwLqrKZh8FcdwICFT6yRQGtr04NgaJzbXCpqjfMtml7SFHkmGALLxUpq+Iuy9HgicTTMiGc
7kk88mAZhSMbIfkmWUB+dQFO3AYDTcsD5ygsD5Z5PMrpIXlaHtxQYDzyYJtr13i/DmSZ1GaZ8uLS
kHS8VRyNYJ0n+TxdmVB9U7TMxoip3oKEz6UfMbAtah7stbPCEYjWZcG7vBqiCwuN5mWyaUGLi2H6
CPO43Oc/gLG3FSvWJVNNXY3fGAGHYQGzR0oYurtPBq24Z0I5zp8WPtEuEGXMxyrfrla/1i/5P7av
EjPCHNuCXLWKMEMtcIMzwomPtT1fmHVdSLqCaXdTAws5VHa29FZhwlyR656I/fju7Q8OdYD/o3Pg
ZbF4KgXstK76t+GXv4GT+xsYon58Mw2cKaeyHmdOn5M9MWgu4xcpF3wK3UNkQLnQnq4QSi7kmVwI
aBD53OM6xQKDvl+mWMQzsQhj2CykG6nxSshun2pbN5lOLqLY+tQPtbos9qtzy20BnVERhAoaQMVL
vYQcv9tl+W3xc/5Lje377qFl4JPJzjD3Qc/c8y9bd1al6AxTOUqiTzo781qLCNU5gxqnvlXxBR7E
D5X15lRhfUJlkAspDzLURpLodOEBOtET+4M7EnptWCBPgmyu0vqOBhMEPLjc6fpOM1ksFYoJn3Em
xPhrM/AyTUmfT6qrVQDhs9uLgDKGAdb5aVPVBR6hg+s/LpMyh6q6T5uTMgKBsTYY4ZlSmd7DcfOE
HsEA3k6Fz9NIXYN10hYIbS3Uy3WTPqwXu23L/S3UXHGP4b8idvjA7PTmtsByhdQodIEBn5PTrud7
S0Knp51t3u62S2jB1BtVurBMGW+Mj6j+kYB8HDrA1cvgo3GPcxmtoNjD7lNnulHS1jsgJNQ7EumL
Uts9BhHTUsCcq4nXQAgdH3G7F8EUmZoEZmpqEm6lg0ck/t1XFQLjaSlgRsjEa6Cin0v88O7Du4/v
etssm55IrNDkRLDq+dpkPWGfsSoWT00ipmpqEn0vTX7/1/uff/7u7a+9hRWCDFY9vWTwavrF9t/e
vf31+x97EuGYTU1ESRxgIVQRb5mJPqqmZTRP7D2GWMAwYw/H1DObohATb4pIOVmYfAqSxT+3fUk4
eb4cIScp+1HoL6dYOD1IjJETpj1V0SUna88lJfp4TqfVBXEbzjJG22Rqe0JuA1HG2BPBTk9OcpRr
O92AjiLBST9l9094sRSTUlASyWmXoJOrfqoekofGkrIARJwGa4wjgmPRz/kG5KKEkIlJYIqmXwXu
Z1cDU11EQpCJYyVCrCZm/VQ/KBEVMZ+cCCE9PX7QSkhPrdj22qe3oGizLHarjno1iZVjx6x0vOM8
It5R6x6rGSXjs4o8/bLK8jQyQGv7dpTMPrwmdoU6lr5aB7B5e6IoOE23edNnRLtbrQ5Vls03Q85n
MvZwBGg0kLeQQ2KmevqebUVFXlUzpm3v5YJKx+I+N0L74bvV82Sy3ZbZzW7bMsNLShh1o7wRP6AF
aRdsa5igBqNjiLEMexn1ANiizV+7AFQAlxBkInjifj5GucJ708KMkUJDTl/9WxuvH631uGjGkBxd
pmBKf4GDe0CTqJBj4OPNvMysgCCIKYiwevlOebAaDOML3Vr2rnMlwLb6i/74qQzqnZdpHn1Jsq1p
VYNC9jfX170M/hv42++L8g36Zp2t049f79M32/8j71l73DiO/Cv8sg4gYKR+PwIIgXOWcQcY5yBx
vjqYJWd3JyI5DDnch3/9dTe5Ky5ZQxabzZ4RDrAiZWVPPbu6qroe1XP7qes0UKKZ5CoP6u9Pjx9z
1Inv4QgkZ6x8lsScGXSmQvbfq2beie1iWh4+c5OAL27IvD1h4zY7jrstubQjXEBgkRcvOAx1MxwN
uob9HAGNSsycojQI6LybJAx90IlgV/PJtr5mU+bW6UpS6/sXUfd0DNwgcRgu9Y0PJKGwERtuUa/M
6eBZVPlSOnjG5IWH29idkJ9JjQOCPppXP4WWWeExqvIqDCMyL0Bcd186eFLmhUdxgWpChqIeDxPC
43lNjLaZFZRlhkevddV3lc9TpcyIW3YlsGFS+fZfWXU8QlvnaeS9ORTqkdJm3sWekD6RV21lZjuO
S3okvPkzezaCZ+ansZnlJzKbcZLZvmS2Z5nlp3lm+5n5PCiaG57OKz8mEt33O71C8ERsPWIiRdqk
rWdVs8al4BlXDNkTeALsoppvyvuL5rFadvpQmitH5uXwTlTbYMYVUXJBUZLAzM4/AWG7o6l6Lsdt
MSvbMF4YlJIfNIFxxE4A/Kb4IOii7hwzzIkkuLnw+ygcPtW8/sShdfhUw5j0eTxM1+gZkJoV0L/G
KMdNLEFzdS9LG5ZVhaFymx7vDdM/fziYoE5HFDVuODEiN4x8cL/cPwBGRtL8CBELMcdg7pjEqPj/
9ob/eMN+dv+8rdtyP/FbriAcMXFZevmdi6YeIJobFfT/ENuhi8L2oYtnMzfGaqXU06enJ/YRg6js
gZ9oLia96JDInXPSeX787s40Rhg/8kqKeJbNlD2eFwyCxPaFIErK+bFDWUE5rNv6hv8MoInqT8uK
JoPRFENDswNTw4cmd8ZB9aRDQ1OCiKL2F+Q9R+43AFGhBqeifm/iB5CnLDuqHos3VH/59b9+/OW/
f/3Hb0fsp6D94oiw8YrkDyMKSJ42/xX4AVIszXqIq8iBjkste4lE//ThTxBTtO4hzGAf3K+B3E8f
OuyQ7uFW//DOZoJYadMzVgPNYHyIyLSgCmPT4/lfMahK04fxOgfNYNh64KhvQ4ngqCK6X5eoei5n
i2n1cV61EHqmH05CNzjL7+2A9zcbXDT4/vPuB28A3J/PfsDxvO4vnRFHJKgv/P+BoJhO9bi43b+2
Wam+/Zkf+d45ic1vCGTXdO+3CxQCq/f+6h3O0MYb313IEjgAJ5jTxRsh2YgpO1jeUHpdxQnbiI5o
jm/8OE84J9oy07JH8ARlAafY0607fMTOLBrIyh3fspeYOyu/ygNldATHzR3u4WAJv0xUCXll3nTq
DZW46cE9sUYQoa7ImhMmRwhc0VRfh4qjZuRfxp1uzVEjTtWQLY5MVkT19FC3lffcvHflMAKLz5xf
hZvihj5LnfP9LU9frfWOxnpRlJOJ78oMNU5gSSHlI6FTzn+YNE+bjtDQBx760TdThP3wdd8y/pn9
EH76mR4GxkyGtnBq9VWEvuNhw5WHjOOWkUfA9n8Pd8NKglxNEAH1mwpUq21n/vp2s5EdREZrh4ui
V8cFhB3m7+vIcQg7OwUe7zuGLlBPHaHOzxJXoXBZzZrHEjYs2k/sjimY2x32UM/8hIVNa3mQZtO5
ecwHIlLFwmsf6tXHDdCPk8bJa960H6tnP07hvr47mLvPR9qSbKDEdfTz+MmgiltcGTRSgPCMc4pr
xzlF3qMDUU8qP/OgfVlUr/N4nIaOq/rRDwgJe2HumjAx46G+a/9dd1gnX2srdYpaW9RqCpKCweEC
atbt1NG6Ku7H4bD4gvewJ7CjhJpSaUecibR3f7Gzr+Iv7ev8iRv2s8fghv917Diyqtob/tM/f/u5
MD9s//XPN4bfKOn/V5rwZ70/QWZk6eXXZHAPb6fN7SueRdCXTneaCeEdJHYtwG1obTzQDsr8ySDX
9FT3Mnv75tQPzGCS94cADdNJSK8I2DNfBVLDN70LgOl+EaBG9KsBtl8GmDNdmqTwpXT025418Mw0
U2oEtDX9GmHBM2rA7vvOnz99eoP7Z+BV12NntbjWzdh1I7tgOTIzuvGbNtF6CF2q7aPTxk0qWFeU
JjTrUQeEs4KsRwSIHVkSGwfsZGzOZDw3fCREv3RTQk2/jI9JByIYD2aOuc+s90uuID3LW9B+FJ2K
ng94z4KnPboZUjjFi7jHVtV4vazbl90AeFlVcybJsyQfF/P7d73zwg/JUn0ruJQ9I6Bpr3cpY4wM
1Z9yNz3hNtIALSqHj3OeVvX93I/fvmuWs+KurqaTYt7Zwu74EaUQeyYPhD0p23IXgcMXL+muHMpJ
gvx78CHfuY+TZryeda1h9pkv1PqRNEk+ZmJl2kzr8Yt/Varuff5y7NSrmhTtUz2GBWrdL2ouvsK2
l9YWPIVAKaWc5aSJQYEXJKPeSKtoHvoH4fXtrHZRxrptmznIOW7TeD+befC7qgitXRYjqRVJcfI8
dZtR7XN3znb2dAMPzNTnUzArASkFZbbdzN02fubs2gdt5fwrPNufBgqjIb2S1wUTniAaMf4ubr71
0Xky32YwfySnZ1yHcTN+xnXUGKbkY6MPUO4eHO0MqOkF4+ejPO6ayy01KoqnCY43d1cbITzFQXMU
Vct5OS3WS/CdVWjtHAeb9KDtwjwSL2rhTCZqvgM97+4G6bQKN/gtkk540tWZGgOIMLxa/2fd+NHg
0B4NiWwOR1K1aqsFAwBxPdIof+cMOBwiiJqRZokJEhAg4gBhVlefAOS+BV9g1h/hTPaCyZF0kZm9
UNng6XdKpzmhQZPdFTyflMsXmGdCOl8t4Rl1P1pPoYUaQqiRofGH865aLit4dn2IDFLQsIFxhAZq
3dm/gAb35Ye3xUPA95n7PtVX+z6zAtnjm+KIuGhDUYEKpI6RM6tcTBo0ebuoCo6iFG4X1oljs/SF
Gb7spru6gPgRh9wkAPVN8TZA334U0hDhR/RdcRF1gEdmrytvvaqWNAf8QL05qNi6FvxJdVe6Y3iI
gIrxKWKIZ4fMVzLWQ9xsGiokfHn5WHZ/v6NnLMtB25avuEz+cRu6Q+V78yNDnfvBoNxr0ehMRaf+
SKuT2YmOMjy/As1cpiibKaQh4Kqeq/G6DQv6muWk4xKkmjol1b2Zpf1nr9xmyQh+sfZueL7dCXZY
4OXCmb0hMfltH+vR9u0NZc5tn5SRWeB3M9+kuPXLyUuobB0/lPP7KuQAO9dBSep7NWmEZj/x8Sdk
xtsQTpxqx7g0nVCW1cKTdDitVipnG1lK7ynkl5r7x4MybDpS1iYXGGh8mT8hKgWwbRg1bpZvDZl+
5gAE1VpfVMOT2oMu8OB6K0tywC4W5QoMlpziioQcd39ywUxdTldvOeJ//v0XuJzJSmSdPZb6bQ/a
OvQjBfPzyeFFd36+x4GtTZZ7w4n8YciLyGanC27C/IVYsJPs0HuN21diBzvJDhOThuxWzZ32bPi5
TRjfFxCRxDs8gOEOXC+nrw/gb6MiwgP4sQO8mL58fJ/K3247IPy6iDH2CVixQK8kgaPtqsz6eeza
RuRYcojCRiVIz8FMH4pCG3lFUYDhNPUFp4YOVApKnseQX//22//8+r//GJ0Ha7PkAbcbILHErRVX
kniI0CbN+nYKemKMOaeIxxz9s+V+5D+I0QkhzXWRBsQkhb6imGD5SL85hQ3zopJaZ5cBF/xKMmiX
9WLWlS9nxm/MwZgG1k3uqmqLtpotirt6uomd/R9CRcB7DIvjGP7Lx1fr1YHtUhRTYLGD4VHjNW4m
1WdO9A9ROnOUw/vhkQ67Ts/DHWPkz0DidcUPKtnJzg7SujBwXJ7Nyvnkc4dIKUG1z/aodJSiIjuG
sgKZdU4w2b/OadTln1HlGB+8yjGS3M7xDDrHw65FNgCdi7nKrmrm7MDvVoqbeHWWmculcpIPQOWs
GJjKUaYGrnK4R9HzzBzLoHMhPlN8AO4cpUOzc3zoSkclS23nsumcFgPQOYLKo+U0dGTgd6vl54V+
P3355ctvXwYTRAgzCK0bWhQh9eCvV5H8eqUZlI6GVM8ArlfLB6ZzNCaUzqpznNjUt2sulZNmCB4d
YWxgOsf54BN017hes6kdH0COzhIzKK0zig1d6ZT6fp8i+LA8eMvo0JNjRH2vbwC4R92cKQIydGlL
qr7f9LtO0LURRt/vFr8DDY9hRIDhamhZT26GrV2cCPK9JtpxG+DYiS4WsIbWCOEHgA9MmYSIpPcb
Gm8t6p19JHbE7dB9bCbtd5uqV2Rg7o4c+AVoLk1t9Sdrru2wAhk5+PcQwr7j5LQcWlqY0IizMy8f
6/uwaib4Xn420fINl9BbABbt+dpJM/RAmajvNwuNG17bLcz3LvU7sYICVd4bGNZlZcjQnzk4/W5T
ziomrXBVYZvBV8bx7zjXK/iw0qznPkznfzlP4s4BkDu65vQItzCF5W9GiLqLLmxGOPfpH2Z/NW+X
pZ8PVM7H1bS7u50S6fhPZHKQMDBlkT3ap4DdVV2TqAjz03lT2vjNpKVXmODyUsmiMkwXgaTSpMgy
z6rZbbV0Hu8kdHk/NcsJPHNJ0BFP/DgPwP40btaO9Luynq6Xm+l/bxY12L7D+8ko0gNWh53PB+W8
d03TFypW6mHwROhhCIfjdjJl4AhHBf88AyJ7cXyXumZAhaAKHnLwBPW2kgWRgWiJRDXF8mvZfNBJ
pSOLGst6CqtmUc2Lau4ikq5lj344J0dtN+FnLHtct3eFAa71zZ5twxODe6rnk+ZpVVAmKQDVjLjE
zTs9BXQTdrwyFF7bwplyenXeKbtsRqzSgmQC5wQohWG5wHHqS5msuvjBDP/6LHCrT3n3e+TEe7VF
edf6FfQe7qp9mVarh6qCd48LgozDOGYs4qS6Xd8Xt83kxZmg8df7pR/NC6ygUCPBeCYxKh9AcE0v
p3GPnYDGSHe1aGKSH3ZQdP6oo9YZnFIXcPZWmDmbQEbgWojVMSNNGW694HFpbQ7CkVGHIpp3eyrx
DhJ8shmuEACnFHfLZlYsmsV6AV+qfvCB1pfpxbxxmt4s4Rn72rrjqy9m3tJ5II6SN1DAQHXm193a
LJDoSFMey7Q3N6DwTo/ThrbpnGpHmV+/o1N4WNtFH9t1T828e6k5NUYg5wXxBNuFovSv03DU87t6
Xrd+lmWzgAsiOMkKTxuTFZ5NGq8g+KmuY/mhZJu7MqW43BS/egHHdoP4bW9Z+WiIzAoPl7RMqJck
7znQRGTmZ175UUJ43oNO8x4IxTJfDDSvAG3uiyjmAG58FhdWTKti7G7ycuyjxUW9G9w8d6zX4yz3
TRsbCpSHyQou8yKvTLQbHjZ2NqUP/opyXs/KtpoU7jd4PrMidsSVSedShtXnq/qPCo48tXNgI67s
ozOtN8EL18IpmWHpSKlmi/alKJfL8uV2fdcR7jKusKVnWPX4o1o2xbSa37cP4NzKqJTEmc/sIszf
owmZeSwhYQkfMcaTU9U+twc7ykZCJAfEAEhmxLlKDYh3ALKpAQkYUOLXjwDoUMWlC3OFSC+kQ0iK
IZeVnyklEBIXOjUkCYhJkzgb2wkpZNx8DsRf+Ss4HezfY4xIZy78Hs+wAOLbkoGO7ARBTvrn5yxN
8OAPs3HcqHQUrhbVuC6n3/yoFbwxJ+xPYJnSL1ylVJwj69xGWqY8dvPGN1SNa++J+odJAKR03sfl
ZnJV+aUk3iUoun0CRbF70OJS4IFS6BXB+GVHkqahMmw8f6yrpyOtatKvexCyF0qZJKofwDrBKXnP
YlCLuJ+Z348WcUpIGhK9Ge+qcjS+JjBBZUcAtJ5PKhdWuWAn7A7v3AzDkKWOSXKUviZfS5IRHCMK
c/7FCYYu3dXkgrhi0ozXs2reUaRq/N4vfha4C6jjzA84QZ29U+S1odBlcz89ltM17FwI7qwbqmdH
HAtXTz15oNQRA6FrtRRnko44KqF1mnETv+pp2axXb9tUwfpx6qNicjHE/drbV5hQ0YX15Vk6CZXb
P26gFeXUJ1WeHmrH60U5DusG37Tm8OXRiVTYpIcikP4c3LkNSgD9diQlsyQ7XOrXw5+rw6kAM1xE
mhywsLgBlCcUrZ4tfCZ1tw1kUs1rd4dVj87oro4v1OHEewgsFx4dyxJceCLPk8ElO1sE6n34UnKP
7OgQyLaMC1GAjar1zL4O9MWyuV/6YoBu+Fz5NJ1MVPwSUtIhU/1xMf1L6JOalsuw9nGTtP54X9/9
MKtnlS/P+hz+9U/+R/4/8f2jn/dXnSqjJPW17VLg1pVIrFnYcGrlU/b7fHLm4S/hftj3bbkxipiR
FLjkcCJcDvIjSlMtRpZIVNZTnnFIz0LE+TnuZuTnSQXU3ZnjdjF+WM+/fttGWLTVM2ifrKAjgXp4
Uue9pRTV86Iaey2FDqr0C4dlCqgbYP58lq0fngKGUX5DNqo9TXf32rfu91Vbj1ddbOSo9zSNaAB/
60J0seGyCnuc1wsXClfOpax9ndVL4ZRqVuzgBNRduRDVhch2KDi9PvuTzAjdN75eFtRCrZBZqLPw
gbB4H3JsX48YGZy+SGpzsMNFzfOqOH6kOFfIsrojh3Z9G2qWnHG4rx7qSVU8lPPJ1NeUtuXS+TGe
VwwObaV2EVMq5djDYge6N12vaMIOJEe+nuLxmDQbtwJsl3RkoxKkKsqD+fjxUzmuJ/zb9bCY3+87
Mf5HnU4Mp4JrP1OTGNTDlD51g8zK1Vf40ZW7iBHjFJguEIvtaexuLRa+8AP1lGdO8/s9uIKCAI1y
4ai5GOBBg4LHgDo5H+zSdi4eZbFcXN/O6rbwzUDunKzbO6pu4QpEZy24vpyP44dq/LVwnpSzVIvS
nZbQ1PWfzzdf2I0RNz+ymy/yxvx0Y+jBJnTme7hVOkKnnYQK1AzUKxKqUcvRUXRydtuRW9QM6bRd
kVBcmRGS0OkRQk3PhMros7MlNCRiTpxRwpBv4GYv1sNQCqmpYgmJmnYThXrASEUUtcmI6j583nIb
npEqVFoaS9W0myrcUstEVOHmtYNUPb6GtpNqWr64qNqXDBbz6r5p6+DVwZe7xj0qEIN8VKi8u7xa
ub/vWEFACLMi1g877S8G5+xcF1ErM1JCy2jjvYOXk4PH7b1jsymU85lOKhjmmDASJeOjSRRO+UiR
WOA7Ip7dVpOJg+HwAWgUmBTCCfqCV9qs22n96CLB+3HxVLcP7v8X42W5eujqYafSOp+OX5wR25Hm
Tm4MSgaGpxrNOKapfJ/k/TScr8jadgvPq/apWX490kPmHyoEZvX4PtSdCp8tkFU9W09LF2qH698/
1OyP1+pE7YfX4QUTJ75mPneqd7gTnure0VyU7cPnT3vzPTkfUYUJlPvBDdXP0xPbCBks26hQw+Ub
k4PFzWg9WNSkHaxEOaaYBbzs/AOLH3zmEH2A36IJLuPbF+ViyFLRA+bbgK+c4Zp11L7BE47ruyN3
4J9bv5KBDNdXoWbA0rGDxc1gUqx9+VFGD8WD73LfKVWx4VwYSV48rl4fTsA3E+04wWyS6Gm92lLY
PQTWUOr+kADceuELQ10E7v7i3dQjuM7IMo17lLsArq+bCQkPb+Y+PQOlViOBG3+WAolN1sVF9L//
/rdf/vmP338HENJ+CITMhFC5WEzr8faZtykX3XhxP5yC6kx43TXNp9tyeYRNcuT8GUxiEDyF6/m4
HD9U5e202g5Gclfgoio7kkRaUV99mod2yvinv/7496O0Cw8kkvZ/778tul9KxXKygr6mY7/2H+Br
WsQ6ObfQ12Qs38bA1wyLzRxOoK9xE/m1O0gKLJbSe+BrMuZWDl97gHCL1t4axC32Nv4KfY3H6tsU
lEIs32YQbipW3+bQ16Kl0EBfY7GnfgF8jVsaG9qAfIuVwgrkW+zXWuhrUsXeYtDXdOxZeAT5Ji8O
MA/vWujRwHfVaBUr86ekVuE5KSdeIKtAYy39HxBu0TckBXGL/RoDpRArUw7d3tF3moAojX50lKD9
i+WbAvWNRX5Ng/dtrBQMiFvs1yz0NRt7skgqaxoZovzLhSguTPnjiKtuR8JGvSJ0upzKyIQuZ/zx
hBx/q1M6sDbagEMOrF8/k9CDtUIn9GB1tLcDRnOUpvSHLUnoD0tpE/rDwiT1h6M9WNAfjpbpAoxK
eEJ/OD42BP3haJPUJtVe2B82Kf1hrlN6qNHRHOihMpPQQ433d/9IesfTpP4H6KFKk9BDlVYn9FAl
Jwk9VKVMSg81Om6FPFRhWUoPNVrfQA9VkJQeasydFemhFjgPVVyQSPfvWLuxPThRnkvcUD8YxnJ6
oiaeWktwI2JOVXH6oUURxf9SjrS02cT6Kk6MdJ0JETIB56fdnBf08jKEh3J+X2zfW31dNjRZTRD3
u+1VyMJezMqudgFujS9wwgCg16Mv3wPfjf6Csk4CFxzRE0yfHmG6Zn0yHecGQuAf60nVhKaNanlh
kTjDjZ3cRyNW9oyibBc1NvY8PFW3bT3zranvBpD4qW2+lR1s6+TGOyL8YmU4AfttNTOFlzJIlQ0D
Bo/554ReGwW4YZwLNRKo6odUiihQRkhbptMq4u566MOp8txei/9vcEH2U4nr1t6HfTgG9vUnTiSH
o+IYc3E5bjDBGZCaFTCVjlHuu90vFt68ObLI3Nf6jVCzulLprfyCc/4oZh7fCdL9mImj6iqlTKiu
78CB1Th8hCtmPk6Whz1dd3UBKs5xXYCpJKr/inOHJKpKJBVSP2GQ4spy/n/NHV1v20by/X6FXy4P
B7DZ710aMHq5xEEfcoeizQH3dqBF2mZLkwJJOXZ/fXeWkipLS3IkLtkCcSIbiOdjZ3e+ZxZE6iOK
U0RKuqAikSikOK6cKRRSehQpK+aCx3TB41MExSmq2YJIMY4SdImaeR8MKYU5Pq6NWu6d+geKTwbX
A0SnDR3y96cLiRv3PAAdM3PIP5KN4DaMhDgMV9Ls3RUDOyD0Qlpi30nuwUIZvZBg5uVzUuTpie0H
N1YsqC8Z7m0j5JI4z8W24r+QSnw8ECGu5RFS2z6GoykE3SYon63ILe3UsCVNZaQNQ+mCZ8IM7h2N
2ZLSG+PyBUwueHz8I0oJGkUXDBvwW5RhRfWC5sI/cU9PjHoPWSCJQprqHBXzCYQUx3laHBd8DIXU
h5APQiCkJO74JJNksju+HyfoG6tJiDLdjIUYldoNJb4Mdc2VwiwIPkbqmP6m8C9pvITg3uAKQPEO
92VXEuUEsgCBPxOLxc7wPSpORnA5fhYgFonqeBwWlfZbtY+Q+ScEa3qB0JzOnXVZrE1dwMTRXpF6
i82RcG1TGoYElOFBgLsIoWAX8zkvisgt+9l1CtdZu6nLxq376cYD90cnJaHIUoRQiuMzSsINI2Ly
GeznEbdVBMhGVjZ65I9ezP0ytYograBBu1p7WSy1fXPjaQCqdVZG7aP961ud+9f+Kclx88iDHeUn
nLrFNTGOIPUMiSHX8hrdvUYvj9sFNJkbppwmzeNdldT+KId1qe0BTLfY3kyIcxsRT6enMWHvsp5O
72bdpcZL1wi/3yXgVglESdvW+d2m9Xeqd+sf+Xn0TthARa8oxyWBkSS7fxyl3rH7DLkBLgx14so6
2lwHpu6886SwINoseJ5MMRGWYtBPW2JH5jsobs7WhhPPV0kzL7W90V/FBbKKKRSxjKqLdR1onui+
rmCW/9NABaUk6opTPS9PYR3RzuTxT+xgDKZZ8gWZS3D9rGhwD1l7tMtYUBeVNIGvp0sUDLy5kKRY
kpOxkTwchW838fQM4xS4lV3hXh0STmci9lRBv/IVU3rRdzUOZgjtfBs38Wj7DlR16l81bB+5GCyx
KT7lYFyAihi2fBIaBMJAIdB5AjnHeipcF8bIGdb5QfkK+DJ10nk0hAh/NYuB2EtAi30QhSjvXcWi
lHXeAhhDb1eTRm/R8e2rDwJ1iGrp1dyGW+N6KcbLAcZrBjYEmZUFyn/ilgVaLMQCNSR79haEyDQM
wddewMKqCrEUC/SQFHAoelezssB4AWuCnPYWggVmgAUSVoUoNisLYn/cCobdk4VYEA9JATzCelYW
UNK3OIkFCKmhWEDJIAviK86mvwUQOKvKrg/OH0SE7fPTLxyEDrNyVaW9PRwGlnzzgKx9A/LFkzO6
kjOFFaKkga6dyHiMKBNbI0qgCOVjHD0cB/rl5x+3BtytM4bfftc8VpsijZ6SdvXot5DhVUE9rGdh
1UUr6yxJX39280o7RD7lzRpQue3zv5gy1sNEZYFC4POfqh1FyQooTHgNj1KaOphf8qbNygyu4+7s
/BeFa6TvfRYa3TobWFXluNNNl723vpWw9vCuC+uuSl+98QBqIKw+GaeDiHo3/PUE+NtsjXBLNI2U
83ADlpt72OHNQFNw0c7jwA+3Hz6dIFJW7e1LfrpIvCNVoconziO1S+hAFifKntbtqz8eIqweQI05
x56wg/UmneSpnIB8kQn+Kq3q4h5E/UNR/LRdjvxDt8feS7qBUJCejAQ4ej9CXaHnZLn1bnBR57MI
tQJ7l6eptSaeMnuJUuvcv6yydV/TCKUurheHRqPr7bSS7QLfsOPo+cG3acgoC57TgELWbVe1QuYB
J4x1p2IxN7FeRmv3iJNZKH3xtYZqBeV858NrspU1UdvXwyB0nWUlk+RFku9OC6djHeYMj7i6W/1l
P7xksN20yfz7Wi1fVUi+IvA4fbaA3bihdWcyoWmgguQ+L7KRm8wE7PE1ARmRVlljpToD5XSy31Ve
aRP8Jj1tijZfW1LBH/JS6XxhEhxwWe31UpGVD+3jqE0GO/cID8jtsvrYYfDFIXDkSEgXDaJWLRk6
I/FOKXtDYrBoV85B7lcAmTR5c7K1QMjg5/zHqXYu99ZL+i2rq+3B93R508Bq6i53/ZzOEvHWj0pN
lIZ+2JgvCFYoqq3/ryljwW0Cx/DOBuxsE2/IyQoao2QW2B3UXdVQz65QEsTyGwAPCiTKLf/LJm/z
Z/+UGmYg/RHcOqyes7rO02yv0w7vvXN+/BZxN+lFzY7OtivK+V69WxMFLIik8yMzbHfEwiCTqWdh
4SJKbvSJNwYI75A573aMhLAokyejRboSA0FYaOp2T89X2OE0bM4Ix9/ZMPjvT1/8USjOYNllwCd3
V4L6/61Dti9RrrN18XoUptwWo8ZyCQTAY7mvNmV6lH3czkgQJKi698PqjEkFma6A0M5KclPjgqHT
9R22bPbENbRaL47JXKL+v39/Gb1rVunK4AHGJmu3HzvNAoZm2ZfpZArKtZZAwaqYTU+GxSArgLBy
uK5zKwEdaJ/ocavKYsKCBzNdZZwlFVEVxKQ635Px6hQfDs9NlLgPSdNktUt43Sd5san9QmDVm2Dq
L4PKmYbgiKZNVis4CngX6qqI7qzPs+qMUa9kQARW8dkRcAYHMMLKSwlL6Kz73YOPtY75XJLq1sx5
BdSQ2AqpDBrX+NbVYEOeodvC7nSiVRe1G6dwI9+5n95IclLXCg8lQxXQinP44GqCVpumrZ7274XX
MSAw5UdMBn+gK98CPXUKI+T2j/PpdT1L90Xizw8LyA9zERrypmyS++GBTfaLIBWiQHekAQ7X798X
1SopHu2luzbEkP5j2Qfy/cYZM39d5ARKh2Llsw+WC+hTyKNMBnYQ/tlbTe5l8s5clAYb78aSeBh+
Oi1biK6YnodGL3nKddfEk1vvtmsKoUuanu7pdSs8qSaXvCwHrQjfHiEw/i3J254qE2ate4nS43Jg
tI9TnPbXdTrTyzYRI48JBcdVAXVje5oei5lrqwkYnQTxaGyQtZbtSX3vPlsH+eYPhPyjlLWbLyX+
ZBQ4QZlJZ/Ddz26IDvzZtEqFyvCgaH2oYKyp/4mjyBIwFKBBKZZWyZtgoOqsr6yNg+kmdKDzGzkq
DcNCUSO9MMDAVlpV6VEXAnflIbjyJBTvdhPMBjmICs1ffAMq66bXa0/FRHcBIKOtUCViqheDNqmh
5OmuSMpfXVw+q7v+C58TCBu+UYEZdeSD+c+xB3TUdXj7sspSXCmuQhPsTbxYDw+X+VAYkfWQ2ksl
4wS5ZGKUym76nWtQ3ILzxXnAo0S5cGeQegK5G73n9WiFNRX03ODX1Xqz9o+Q10i/ahJ869v5XxGJ
fIcHDhuCBfvRDv02GegWpkIRegjUWypu7VQWi4CUDVkjHFlNpC59i0fpdTTHBuXsYSkeskmw7ZlY
WOP6DkItek4ej+s7plGJkX4MNk1WWwBl6033W1VtUJMdxWRfj+lLNHe3PQy448Ff2N9MqZgmFIfj
VZI0baLHvGmr+jWy/uWTd+g/A1eAkbmhfk89cHGBnwvh+uMBkBSJZwZ6QqsDO+4XiGuphyVzfLZn
HOtL5fKpaKtfszL/zZo3aeVKQLvc/ckdEBKKehiVKGnVk2+bJKgdhzEWEPMBcrcP1SLng/PSFKC8
0yh/WveMAuEwlBfVBTtMyBEoaL71BNqom6pq5oHWnLwigiENoWFoZWV9uEcoEE3apDgtMzdXChOi
IWziPeIS0583GQxD1LiKa676Qt8u8QM7XRrglguAQ04aBsZ1f+6Tpn3vcGgO/1tWlsl3v6wf3kF9
0Nf9IOm/s8+/rLOHd+63fWhvqOBcd999ruobRU7e8Ng5loQIMW4rzkbIuvQQAj/c0SEli4fooDS2
L4wjRCPWqVpCdGBC0nyVjdNh3105RIc0ihpHhv1CuAqUTL0m4uIN1ufdRqMnrzjBUDNuPdqzl4Ng
XK41S6OienCn3+VeKTk+qxjmqdqLI8dn9YlrccxBV1puPfIDwPufdenfss3q56S4Ie/ypwd647oe
IgvyxX45SbM/ZjfJXSd2kHTwIAmTs0iHKI9j9bffAVBLAwQKAAAAAABMfQZJAAAAAAAAAAAAAAAA
DAAcAGNvbXBvc2l0aW5nL1VUCQAD0GemV0ptpld1eAsAAQT1AQAABFAAAABQSwMECgAAAAAASX0G
SQAAAAAAAAAAAAAAABQAHABjb21wb3NpdGluZy9yZWdpb25zL1VUCQADyWemV0ptpld1eAsAAQT1
AQAABFAAAABQSwMEFAACAAgAt34GSYuPmgKsAAAAFAMAAEUAHABjb21wb3NpdGluZy9yZWdpb25z
L3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5nLXN0ZGVyci50eHRVVAkAA3lq
plfJZ6ZXdXgLAAEE9QEAAARQAAAA7Y+9DoIwFEZ3n6IjDlAp1B8SByWaOBhJGIkh13KD1UrJpZrw
9mIc9AEc3c43ne8UoUxklMQyCIU8Mu3wBl3fqDJHl5FtkVzPOl03YAxWDImWfihmc8m861bXa+jw
cLqgchsiS+WueYDRFTisxszT3wsc47m9k8IU1Bl5agn3WGn4kB/KqQhEPOGD2lnXt9jxzECPxAfZ
m8rV61+gmNENMiEW0aj4R/wjfhfxBFBLAwQUAAIACAC6fgZJP9BsbasAAAAUAwAAPAAcAGNvbXBv
c2l0aW5nL3Nob3ctY29tcG9zaXRlZC1pZnJhbWUtb24tYmFjay1idXR0b24tc3RkZXJyLnR4dFVU
CQADgGqmV9Bnpld1eAsAAQT1AQAABFAAAADtj70KwjAURnefIqMObdrU+AcOWhQcxIKjSLkmF43G
Rm6ikLe34qAP4Oh2vul8Z5fLiSwmUqTZsNgzE/AKPjaq3mKoyN2QQmTeHBuwFjVDommSi+FIsu5l
aY5z8Lg5nFGFBZGjetU8wBoNAXWPdc33gsD41t1JYQnqhLx0hGvUBj6U5HIgUtHPeKsOLsQbel5Z
iEi8lb2pnr3+pYpZ0yATYlx0dv+If8TvIp5QSwMECgAAAAAASH0GSQAAAAAAAAAAAAAAABIAHABj
b21wb3NpdGluZy92aWRlby9VVAkAA8hnpldKbaZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAEd9
Bkk4idkWhAABAFggAQAjABwAY29tcG9zaXRpbmcvdmlkZW8vcG9zdGVyLWFjdHVhbC5wbmdVVAkA
A8ZnplfGZ6ZXdXgLAAEE9QEAAARQAAAA7LxVWJzdsz2IBQkenKCNe3B3adwtuAZ3dw2uwd3dCe6u
wd09uHtjQ86cc375vv/t3Mw80zc83XS/XVW79qpVtXa/ofKyQMSPuB/BwMAQJcRFFMHAIInAwCDU
YaHfX0l19rd9/0PlKKruaGhqbGjh4GQFxs7BbGioz8LBbMCib8TGacDO9sVA35BZn/mL4Td2QyOm
1fTS9PcPgTsoAoXAKsfxDsHABMAkRASVXcFPMj640o7Z1atNv3gHD9vhReF/+++Hc/IjHPP7I68X
b1C/oSr/ZcKj1MK5zsWFTHuWIqNDjZt3bW5uzuRbgZLSGq+HVIGoIgoshCARLJQfEQqUv8CfJ5v0
RNU+WCBxrH++/P4EnAQFhpRd6N+fcEH04yByQTxyRP/PW//vf+LFrEL++yqrrFDbvqusxTMK/76O
nYA98j+/0I/IdgElBNJ+IVsW+O/r9IEP86L86wu7tIWJkIa0A7jwP/zrOu+G3wv8v9FwW038mE5Q
WafG88Tb84Sqss/bvY/PJeHbJaHmMYNm/9vr+Rv96zbD63YtosWxa1R0NJbPDdCnrv5VVu35mv/t
ejv67SHaxfm6yAdUFP721Pm2QhU30hrc9eyOh49P532r5uNUo0Vvs+QL5D1SCM96e8zqNOZlz/Pd
sPN5WfDxYpZh0ErrfP+c7vPD+5W2dV/3dM9SrYpe8JstglZ7o6z3bPbOn8fPaV8Ps14Po9R9aO7Z
Ns75n3v520icRc3e3bjnh5J1EtB5mdP1ujSSuzMKX3DLWPja1q/Z1r+9ual36Sh37xjO7vGTXbNt
m6Zjexsc2bVrW6rzRgrr/DHzvNk1tcgttX/jZW3DSnTLWOe3MWbW7des+vpXJhXPQRfPwW2qzG0q
zKxLnCy7lKB6J1oOAoYbIYY61x12750KJpeW7Ty+ozzMqqeWqtaaz69EnaOtbaPbf2zF+hO6DgXy
7y7IfjILO/veZ/uYDBcQDLajpB8ofovq7Io2rMO72MfrXrPq/nSdDCCoe6g8B1VyL41pT70sZb0s
hdu83dk0ktyXT4DK4dNbuFNe36P7JO0DPMtHxBK9H3uueA72eQjub21faaXLvObMcriE8bmAafSi
bLS3eRuweR7YfnfwEfP8RvbcceU0rOd94c+KYA/MdsZvoG0uoKV4X1KNCHYYCQwf521e5mce2X2u
2Rk6D8I7TB89Ou89eBq0juBulBszH9M6H9MKMvmqsLIOnz93Xn6eIG2UOuh8Pe5M3Hhq32iV2m2Y
b++Tauu74l3f4bUuGw/Pt8SfiH49iNbhu3fgv5dJK6aYH+18Hu1sO7wDfJF6QV1ffv2TL17R1Iq1
Kr8BqqvU9Fh20ot1h+7Pfzy3YlSLervqRva+sJpy0iGTA+XLtTz3MDz3XLO1yl+5T7fvurTnpjZI
IWN7tuF3Bi/AcC24JXaSHJ8y7DyOvVYo74517jxYr4U6vieLD7zunbHunWwyRsafPYaMysEKcaVz
fqsTTuHZQ7F6pNN+Z9F5t+2Wue+Gh7NEzUIdAovC+FWux6r9oO8xyWspiY5vC41vS2TJjEIaJrUI
yA+a8uZ6e/+IxfX2SmKn9wsIseWs9byjf319HXFvn4oDMW2+nm+dvlNpUMb1Ez63FAC9k4++UBbV
eIX1+znLWvStenQ9yuEqJTSf1cbra0njixj+PlXb0nHN+pnz5rRz1fHZlcygzP01eXMa3YozLwFo
Mthaudm789d3tjntVmerY5dz2ciKy73Xls/3i3gBmsM2PTsuPvcuWJ5yT/cLzHw7zPTWv+8vzJwr
jk/OD8xOx5U2FvZ4rKxVnGd43Qgy2J8afzy9fpspfMp2Yg1id7Bx0aw8fTn0mDKcYHzHA+6ArhLp
k36dk37nO4Rh724sz26JoMdWm4cgmybX50Gf5/60jsM0elDSxPtyMNCuX+Jv2F36ET74xZ2we/ay
06LzfvVcLvJa3hbVvREtunILOkQnfKohbH1Y6XxZ6V9pX1uh8z4q8h6Z438I4G968EV+AJOD8chj
d8/7cP0m8bwNfH3fozSY569n5x0Pk8gv8kk+Z+9bZxvovQvkYYXgDXzaD22u0L34oLtpJuL+sdO1
YsG9ol+Jd06Jju9lhn+t9vyp4/yY6ps0d1qj6H4vwd0XOTrIsg1QxUZqWcbVex53Nru+7vt4R3ca
J+u+eJ/fe8PzYmjwnF/znYdyHpt0Q+8h+zz0nqYzIp7dvmcJJv+NMH/dwzs0ykVn8BuUC+qPTP3Z
ZB6Si/deG/d0tgQ3s3aCyW9/NiJvwtlS5ulSxBp9WmE35U/4iT/4comOXZhri8+V8yTMtyuMqXvv
pNvomqDmlvBBiUe8fHhypqafhOAypP/PBZ68D9i8nt9R4/V7ZodbGNIxtHjnFU3ntsVVHj8or4Of
7zCOz+zyzz5Y6xuceEyfYPxNeIlKWPPQNvHUhua0mpZ1RZVV6/rU6OOheyz3MivHq/B2/L5Nwxs9
RxtvWLdbfObUvOZCQXzdZqB3tPfc4Jb+qr+8bch/Z8igAyrQde+uC5FtvbFqsWncqh2zBkEEYPlc
YukewB1AME00sR9ap81Hr5zt/4FonbZe7raAqolBr9VBusyH0CzXyz+Q+up93mOr/dZw3K3+Bx68
Lz9WXXyccUlvSOuAWd3x3G9We8Dv8rqMl3uM77hfeErL8tmm8M6t2voDN0+tPbh0hRjt19yd1/5U
Yp7Ah7OYB7729wBcbcdGe+ZPNL505Pw4HuG9+VOdXtdzGkNbP1d5Wc44LfNGpVptTPzJM2by9+id
dz78YHj89KbjWWjiXvgdIGnRXiXbqH3M8HbFcH8+2dsrLBcKykYGEVWNcU6cb1ndj5be96tmDFk+
cQutsT0XpxVp3/N2nj8+dW2QeNv8ON843rii29jeSHiOIvGaYfeagaBtlhNvHQgS7ne58Frf93q+
P9d9u9Vd+7biMp9gQfi+xexlxhxbju+RhNI6sNYe6jw8FurlA1dndKYmZr9461L8VxEmh7qRAmmZ
eX1UZZ/fZgr2FlVMBO3UzBKKZB1jxYsma+TVk0iN9d43i18o5remMdwGO5RQWM888pD8qFGON6YG
9es+9xfMpz+kH+q7czXGz+w4oB4VeD9yV/FnSy07uw8JE9TOMvTy8drNEoYVDF0qypkmgiBr0VG/
MrVLixiU8MtKFQY9n0y8nlz5IXtuXoV3PoSvJR4aaRD+fA7NeoDL8vk16PlL0QKFvD0wbUX2hVFz
vAj3wGxGEcpkmIX8xU7jCKvOiZn3gGfRt/FVr1kOtacEufD0ACCntJ2s2N382kSfUkpqMrqvsbBj
ZmZfndhqmQrNOlq+Q2XQ4ulP4QpxXMhv69E26NFW8v33m+yCbjhtkjuATWZ4htBp5ZrC54oi7tld
DKrrXj4pIG4e8Bj/5PsqEtHqTsX0ZQ0LPcy1JdrnPdF/RoTMOZ42BUUiJ0iTGbX4zVOrY3oQXjMS
znBpf3kCY7ct4L2zfQuHot8LbJUTkZtpPO1YCxxlaxWVTap6TK0y+7W3Sid6l2R/l7jiOBG0eVL5
9DVWeCNr4lZrov757B2FCgB5Upz+o1YN5ce/PRduNz2IhCwR6g+Wxhq9kJMze25K37GuSNsf+b7z
dxLDnq3cGpNzpS4FZwnFGSLnqhQne+V8b+Te25PP23lfXck7TBImd+y3em/ohRMo0+7taibN17gi
aL3JmCXR77qs7bR2ZK0WTTz/mjgh5DSVGrihnbiileK1XDIK6nRp9Xa5bI3e+H7tmLnRu3KW1Mx3
dcwl98Rtj+vt8LJy5uG9ceS3oIhU1d+tYhGUWHUjWcXCmiTcqjzrxVUUdTiUb2VoSH31fD7GzNPL
/PAkmHbtKfdOrsg6IR94Z5WqZZ/afx572C23ey3Xg/18pwM2xg+vn2EK3bs2rz3/i0PKRvoeJC01
f5L7EYJ3oZxFsdl+3K/Ef6vU2pZwmX/Z+L4aWDxWgBoOmaS8MhuO8SzKq3yFvnm5SzfcEYAbptdV
fOjBh8d3wsh/H/85F/+aZYGZActOx3QsyOnL6Ykdwb4dpjRDb2GSz2PS/YwRAI82X5hdIt/4ks3m
mi3Tf4BTIUsm/I3vmpl/5tTNfCW0qJ1Hn1SjC40NRBLWG3d8rdfr6lZbxZ8bJWKGGNQak7eovWY7
rkyGqpL0B4het+d0TufwDpeMZ+CMf8Y58WTtSmT2ybUT3NsRuvhZZ7JczSb28Qo6RkCpSl9OEopn
Ze0FFJmK8LsKiW8fpon7XUujoW+lnhFXz6WiAzVos5EBaBmLc8EHCAqQuYJ43RFjkOI8p2Q/iIJn
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
eKf21ocWHd8ZCEi8k32omr8PxooZ3SATSVEMDn1FX9FX/FW8AFBLAwQKAAAAAAC2fgZJAAAAAAAA
AAAAAAAACgAcAGNzczMvY2FsYy9VVAkAA3dqpldKbaZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAI
ALZ+BkkL2jOgrgAAAN4DAAAwABwAY3NzMy9jYWxjL2JhY2tncm91bmQtcG9zaXRpb24tcGFyc2lu
Zy1zdGRlcnIudHh0VVQJAAN3aqZXd2qmV3V4CwABBPUBAAAEUAAAAO2PvQrCMBRGd58iow5t+hct
BQctCg5iwbFIuaaXGo1NuY1C3t6Kg4Kv0O180/lOGYpMxFkS+6FIT0xZvEPvWlnlpnMFmQ7JOtar
pgWtsWZItPTCaJEKNr1tVbOGHg/nK0q7ITJU7donaFWDxXrGpup3gWX8aB4kMQd5QZ4bwj3WCr7k
hWIe+VES8EFtjXUd9rzQ4JD4IPtQtXof9CXTqkUWBWk6KceKsWKs+Kt4AVBLAwQKAAAAAABLfQZJ
AAAAAAAAAAAAAAAADQAcAGRpc3BsYXlsaXN0cy9VVAkAA81npldKbaZXdXgLAAEE9QEAAARQAAAA
UEsDBBQAAgAIALl+BkmjV/3oUAAAAI4AAAAyABwAZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRl
cy10cmFuc2Zvcm1zLXN0ZGVyci50eHRVVAkAA31qplfNZ6ZXdXgLAAEE9QEAAARQAAAAcy9KLMjI
TC52zs8rSa0osbJKTy1xDvHV0FTILFbIyy9RqEwtUUjOzy1ILMlMyklVKM8syVAoSk3OL0rJzEsH
yoC1FetxuaMbVIxmEDGGAABQSwMEFAACAAgAuX4GSfKWldVHAAAASQAAACkAHABkaXNwbGF5bGlz
dHMvbGF5ZXItZGlzcGF5LWxpc3Qtc3RkZXJyLnR4dFVUCQADfWqmV81npld1eAsAAQT1AQAABFAA
AABzL0osyMhMLnbOzytJrSixskpPLXEO8dXQVMgsVsjLL1GoTC1RSM7PLUgsyUzKSVUozyzJUChK
Tc4vSsnMSwfKgLUV63EBAFBLAwQUAAIACAAOgAZJyguHooYNAABedAAADQAcAGVycm9yX2xvZy50
eHRVVAkAAwxsple/Z6ZXdXgLAAEE9QEAAARQAAAA7V37b9s4Ev79/goiuN1NgErmUyIFFIdemtvm
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
dGgtZGlzcGxheS1mbGV4LXN0ZGVyci50eHRVVAkAA5JqpleSaqZXdXgLAAEE9QEAAARQAAAA7Y+x
CsIwFEV3vyKjDm3a0mgpOGhRcBALjkXKM3nUaGzKaxTy91YcFPyFbudO554qFrlI8zgKUxGdmHZ4
h963si5s50uyHZLzrNdNC8agYki0DOJkkQk2vW11s4YeD+crSrchslTv2icYrcChmrGp/l3gGD/a
B0ksQF6QF5Zwj0rDl4JYzJMwSSM+qJ11vsOelwY8Eh9kH6pX74OhZEa3yJIoyybVWDFWjBV/FS9Q
SwMEFAACAAgAxn4GSVqDeq6GAAAAGgEAACYAHABmYXN0L2NhbnZhcy9jYW52YXMtbGluZURhc2gt
c3RkZXJyLnR4dFVUCQADlGqmV+Vnpld1eAsAAQT1AQAABFAAAADNzj0OgkAUReHeVdwNSATB4MSY
EDA2VmpnLEa50UmGN+Yx+Ld6WYbl+apTDTdggbQwRW7SDHz16Wye+HC1Hs3QPfaUlnpU8lRm+bI8
Y7VRDbo2qLd1kMh3PDDunLCx/d3AydN616IdC1bVfgxshKftI4IQ9OwoEd0wwoWQINMvNSST6p9m
flBLAwQKAAAAAABifQZJAAAAAAAAAAAAAAAADAAcAGZhc3QvaW1hZ2VzL1VUCQAD92emV0ptpld1
eAsAAQT1AQAABFAAAABQSwMECgACAAAAzn4GSVGnghgxAAAAMQAAAC0AHABmYXN0L2ltYWdlcy9s
YXJnZS1zaXplLWltYWdlLWNyYXNoLXN0ZGVyci50eHRVVAkAA6Rqplf1Z6ZXdXgLAAEE9QEAAARQ
AAAAaW5pdEltYWdlQXBwbGVKUEVHOjE0MTY6IGZhbGxpbmcgYmFjayB0byBsaWJKUEVHClBLAwQU
AAIACADPfgZJIY+9ODIAAAAzAAAALAAcAGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS1jcm9wLWJv
eC1zdGRlcnIudHh0VVQJAAOmaqZX92emV3V4CwABBPUBAAAEUAAAAHPLSSxJdUlNzk9JtVJIAdGZ
eekKqUVF+UVWCpl5yflFRanJJQopiSWJCskZqcnZelwAUEsDBAoAAAAAAGJ9BkkAAAAAAAAAAAAA
AAAJABwAZmFzdC94c2wvVVQJAAP3Z6ZXSm2mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACADPfgZJ
cv1l8oUAAADpAAAAJQAcAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50eHRVVAkA
A6Vqplf2Z6ZXdXgLAAEE9QEAAARQAAAArU4xDsJADNv7inygZGC7GSbYQHRO21SclLtUuZzU/p6D
foHFsmzL9qRpjUIeNQObqQVYovAPAiK+VGrighdywuvwwIHHW3S8067Vn1y84ELFcSuCxkWrTS2+
va2fdTo1FSRmhjOwcOLsENOq5l1zwkEhQM00tlFXEKX5T+P9Uc/z90X3AVBLAwQUAAIACADPfgZJ
zgkoAo0AAADwAAAAJwAcAGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3RkZXJyLnR4dFVU
CQADpmqmV/Znpld1eAsAAQT1AQAABFAAAACljjEOwjAMRfeewhcoHtgywwQbiM5O64pITlw5jgS3
J9AjsHz5/2dbf9a8JSFPWoDN1AKsSfgnAREfKi1zxRM54Xm64cTxkhyv9Nbmd65ecaXq+KqCxlWb
zX29Ox8jLWPKm5qPzdKhZyCpMByBhTMXh50OnYR9hACtUOwFXEGUln+LFK1tfn6f9DuR4QNQSwME
FAACAAgAz34GSc+PZg5QAAAAoAAAACQAHABmYXN0L3hzbC94c2x0LWNvbnRlbnRUeXBlLXN0ZGVy
ci50eHRVVAkAA6Zqplf3Z6ZXdXgLAAEE9QEAAARQAAAArcyxDcAgDAXRnin+BlHabIPACEs2RpaJ
Mn7IDmmuu1dMJ0sOtgFyN7/QWAgQHoQTJKQ0ArZirkg87ixcsbsIzRxK0a3uyyyVv7Cnh8rxkS9Q
SwMEFAACAAgAz34GSYFKd61LAAAArAAAADQAHABmYXN0L3hzbC94c2x0LXRyYW5zZm9ybS10by1m
cmFnbWVudC1jcmFzaC1zdGRlcnIudHh0VVQJAAOmaqZX92emV3V4CwABBPUBAAAEUAAAALXMsQ2A
MAxE0T5T3Aq0bOPABVlybGQs5keiYAPqr/e3mKealIaDmZErhhoBUycW0DjphVtSpRtbcudQ11fE
wGHRxb6O4lVt++X6AFBLAwQUAAIACAC2gAZJfQ0ZXjICAABWBgAAEQAcAGZ1bGxfcmVzdWx0cy5q
c29uVVQJAANIbaZXSm2mV3V4CwABBPUBAAAEUAAAALVVUWvbMBD+K0FPG1hL2iaFZU+BZqM0XUuT
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
AAAAANJ+BkkAAAAAAAAAAAAAAAAWABwAaHR0cC90ZXN0cy9mdWxsc2NyZWVuL1VUCQADrGqmV0pt
pld1eAsAAQT1AQAABFAAAABQSwMEFAACAAgA0n4GSU++VouEAAAAwAAAAEMAHABodHRwL3Rlc3Rz
L2Z1bGxzY3JlZW4vZnVsbHNjcmVlbmVsZW1lbnQtZGlmZmVyZW50LW9yaWdpbi1zdGRlcnIudHh0
VVQJAAOsaqZXrGqmV3V4CwABBPUBAAAEUAAAAJ3MsQrCMBCA4b1PcaMu0tqmSBCh1MVBEBwUxCGm
ZzwIF0kuim9vfAXXn59vyA6gh0Zp1elWAb5TU7cLH6zxEMVGfIYoxO6yWnZ9fYX1Fm/ZbTQk5GmP
KRmHJ5LHaARdiB8NM87ez6vhb5mY5Ecei06Bd3wPGs6HEWxgRiulledlPE3VF1BLAwQKAAAAAABl
fQZJAAAAAAAAAAAAAAAAEwAcAGh0dHAvdGVzdHMvaGlzdG9yeS9VVAkAA/1npldKbaZXdXgLAAEE
9QEAAARQAAAAUEsDBBQAAgAIAGV9Bkkw1dc8hAAAAMAAAABCABwAaHR0cC90ZXN0cy9oaXN0b3J5
L2JhY2stZHVyaW5nLW9ubG9hZC10cmlnZ2VyZWQtYnktYmFjay1zdGRlcnIudHh0VVQJAAP9Z6ZX
/WemV3V4CwABBPUBAAAEUAAAAJ3MsQrCMBCA4b1PcaMu0lJjJYhQ6uIgCA4K4hDTawyEO0kuim9v
fAXXn5+vzw5gBY3Sy1bXa8B3aup2EdiaAFFsxCdH8eSuXadUfYPNDu/ZbTUkpPGAKRmHZy+PwQg6
jh8NM8ohzKv+b9mTlx95Krpn2tPEGi7HASwToZXSyvMywY/VF1BLAwQKAAAAAAByfQZJAAAAAAAA
AAAAAAAAEQAcAGh0dHAvdGVzdHMvbWVkaWEvVVQJAAMYaKZXSm2mV3V4CwABBPUBAAAEUAAAAFBL
AwQKAAAAAABnfQZJAAAAAAAAAAAAAAAAGgAcAGh0dHAvdGVzdHMvbWVkaWEvY2xlYXJrZXkvVVQJ
AAMBaKZXSm2mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACADUfgZJNGIdLE8BAAB/AwAAOQAcAGh0
dHAvdGVzdHMvbWVkaWEvY2xlYXJrZXkvY2xlYXIta2V5LWhscy1hZXMxMjgtc3RkZXJyLnR4dFVU
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
AADeAwAALAAcAGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1wcm9ncmVzcy1zdGRlcnIudHh0VVQJ
AAOzaqZXBGimV3V4CwABBPUBAAAEUAAAAM2TQUsDMRCFz/ZXzFEvpa3bukQp1K2oYKVQikLxkGan
aWg6sySzFv+92VZB8FiUHhPefDOZ9zKqLcAAun3Vz1TWA9zFbuey7dloD0FMwIqDOLKLvJfl2Rvc
jHFZ26GCiFROMEZt8cXJutCClsOHgnOqvb9ojU6Q7MhJg5wlumN6pBUreJ0WYJgIjaS7pHnX3pWt
xTe/Pch7iTG7u5/OJ9MhjERwW8kzyo7DZsKJyWGGUlcKiCWNL01zqCuggwa2B9E16LIMqTe4CPtx
/6nLMV7IlxVPbG1S3KaijYJU6PHnkvKr7imOLzpIwbRytg668XefKN5WHpvTg6bSY1BQaLPGEjqA
pJfpZbDUZpNyGI/b3TxiaFI2dkbUL3ZKdOvsL3/KJ1BLAwQUAAIACADWfgZJhDAMxywBAACEAwAA
MAAcAGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy12aWRlby1yZXNpemUtc3RkZXJyLnR4dFVUCQAD
s2qmVwVopld1eAsAAQT1AQAABFAAAADNk01LAzEQhs/2V8zRXko/th9GKaxbUcHKQikKxUOanaah
6WRJZi3+e7OtBUXwYBE8JrzzvJOZN2mlAQbQ6Yt+IpIe4C502r2WdUpa8Kw8ls6zIb0YdZNR8gJX
E1xWeiwgIBVTDEFqfDK8ziSjdv5NwDlV1jYb6a/JhgzXyFmkG0f3tHICnvMMlCNCxfEual6lNUVj
ceS3uoOLyJjd3ObzaT6GlBm3JT8i75zfTF1kOj9DrkoB5Di2z7U5VCXQQQPbg+gSZFH46A0mwL7d
zy7D9p+5pCfsgj9W8eC0jorrWLQREAstfhnScPgf22fpOXO0Mrryst7vPlFuW1qsT3eSCoteQCbV
GgtoA5JcxpfBUqpNzGE4bXbzgL5O2cQoFt/YMdGNs+ZJDj//lHdQSwMEFAACAAgA1n4GSW+gVnZ0
AQAAKgYAADoAHABodHRwL3Rlc3RzL21lZGlhL2hscy92aWRlby1jb250cm9scy1saXZlLXN0cmVh
bS1zdGRlcnIudHh0VVQJAAOzaqZXBWimV3V4CwABBPUBAAAEUAAAAO2UT2sbMRDFz/WnmGNzCbv2
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
rEgHb2C/Tn27D5hCA+R16HwiJnM4OJCtQseaTlFvKTsNTEsyFn/UKC9KOZZKZFccUhgWUcwWgRtM
5+iNI47ZMjxbyj6QPsRiCNKQT198Yw3OeoK8nIg9KfJyJKYjUcJn/GpcySnMu6a9Jm+Ib5jofipV
JWaqkDIXD3Cx8YGt38CQJnFwN7ahNUaCSAnWPWhnh3uwJo3d4B7frbBpHZ10dU08t7F12F9iTwwv
GAGNGdpMARBi7/WWg7dvxL+jTcTuok3+RBNK/i9aubutVTuLpuQuPPQdUEsDBBQAAgAIANp+Bklg
yRW1PAEAAHoDAABQABwAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
Y29uZmlnLWNoYW5nZS1tcDQtdi1iaXRyYXRlLXN0ZGVyci50eHRVVAkAA7xqplcNaKZXdXgLAAEE
9QEAAARQAAAA5ZHNTsMwEITvfYq9tRzSOGkctZU4UEoFEpUQBS4VQlt7k1o4drR2gPD0pBI/D8Ft
NFrtzje7z+RSFksppjO5eIaKsd6iM5W3+uWuC8dVHylAMLVDa0kDMZ8nWSmKEiavG/M7fMXs+eXR
0UdLKpK+cSauMeIZTHakvNMwrmLfjgGjb4Cc8p2LxKTPBgfSne9Y0SWqI6WXnmlL2uCfSjJZ5tO8
EOkd++iHRRTSjecG4zU6bYlDuvVvhtJTpJPYDCANufiTb6rAGkeQlTMx2v9Bl8V/hP43n85FViZi
nogSvvHz6WwuYd017T05TfzARPt5XizEspBSyPIZbmrn2bgaBprI3j6Yhg4YCAJFOPSgrBnuwYEU
doN78bTDprW06qqKeG1Ca7G/xZ4Y3jEAaj20GT0ghN6pI3tnPolHX1BLAwQUAAIACADbfgZJv/eL
3TsBAAB6AwAAUgAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNv
bmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVyYXRlLXN0ZGVyci50eHRVVAkAA75qplcPaKZXdXgLAAEE
9QEAAARQAAAA5ZBNa8JAEIbv/oq5qYeYjybRCj1UrVSoINX2IiLj7iQu3eyG2U3b9Nc3Qj9+hLeX
h2HmfWYfZ9MsnWbJKM3HBygYyzUaVVgtj5vGnWetJwdOlQa1JgnEfBfEeZTmMHhbqr/hB2bLxxdD
nzUJT3JllF+gxyEMtiSskdAvfFv3Ab2tgIywjfHEJIcdgXBrGxY0R3GmcG6Z1iQV/qcgzvJklKRR
uGHrbbeIXLi0XKF/RCM1sQvX9l1ReKl0CctOpCLjf/uNBGhlCOL8Jurt/6XHyTVK59cinURxHkST
IMrhRz8dpbcRLJqqfiYjiXdMtJ8kHZymWZLE0QFWpbGsTAmdjWerd6qiEzoCRx5OLQituntwIoFN
R+9ft1jVmmZNURAvlKs1tk/YEsMHOkApu296CwiuNeLM1qgv4t43UEsDBBQAAgAIAOF+BklD/yp8
iwAAAJsAAAA5ABwAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcGxh
eS1zdGRlcnIudHh0VVQJAAPGaqZXF2imV3V4CwABBPUBAAAEUAAAAA3IsQ6CMBAA0N2vuB/QlEoJ
smlYTJyUuBiHoz2wSbmSK8TUr5ft5WlVVHtV71UFhWmMaZQ+HJWGdp3mO7Ej6YToVevypJrSGGWK
N1xHjuJ5BBt5kRg6P1GPiSDRAn0GGzzxJrK4bnt+PnCaA13WYSBpfZoD5htmEvhiAnSOHCwREFJm
+5HI/key+wNQSwMEFAACAAgA434GSbWuisyoAAAABwMAADsAHABodHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1yZW1vdmUtc3RkZXJyLnR4dFVUCQADyWqmVxpopld1eAsA
AQT1AQAABFAAAADN0L0OgjAYheHdq/huQNNfQDYNi4mTEhfjUMoHNiktaSGmXr1cgM6ynbzTk8MI
zbak2JIMqCylLIncZUxANQ/jBV2LoQ6I94KJPSmFZIySB5x654NxPWjvpuBtbQZsVESIOEGTQFuD
blmo1bzUw+2qhtHice46DJWJo1XprBIGeKkIqm2xhcmDgpicfgbvzBvDhn2lFb9ouaT8rzTOV/sa
z1dLE2wNtA9QSwMEFAACAAgA5X4GSaDCga2hAAAA0QEAAEYAHABodHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1zb3VyY2VidWZmZXItbW9kZS1zdGRlcnIudHh0VVQJAAPN
aqZXHmimV3V4CwABBPUBAAAEUAAAAM3QsQ6CMBSF4d2nuC+AKYViYdOwmDgpcTEOpVywSWnJLcTU
p5cH0NW4nfzTl8NZWiRMJqyAVFRCVKzc5jyDehmnM7oOqSHEm+R5yapccM7kHY6D82TcANq7mbxt
zIitCggBZ2gjaGvQrQu1Wta6v17UOFk8LH2PVJswWRVPKiLBUwVQXYcdzB4UhOj0g7wzL6QN/0iT
f0vLvr62E2n2K9obUEsDBBQAAgAIANZ+BkmbXfTt7QAAAF8BAAAtABwAaHR0cC90ZXN0cy9tZWRp
YS9wZGYtc2VydmVkLWFzLXBkZi1zdGRlcnIudHh0VVQJAAO0aqZXBWimV3V4CwABBPUBAAAEUAAA
AIWPT2/CMAzF73wKn7i1aaGoEKmaEGPaYYepYie0Q2hMGyn/ljiT+PZLtcF19uU9/Z4t+1xv+Kbh
TVM27foTXk+n9x6/EkaCqxpn+5yMf1FW6I/+bW9lj8YR7qUMGCMH8SugXrVllbvOYzkLKWiYiDxn
7IH4tqoqZlAqwb6VRFfQFByRRlloJ2Q5jOrJCoNdXulSGDAyypeUXl6X92i3m2tJN4+d8F6rQZBy
luXM4vzvM3/2EFAQHkNw4eCMQUsc0A4uWcKAEoQFnCGHy40QgrAjgkY70gRGRSNomKCAOLmkJVwe
bAUq3nW72zaLH1BLAwQUAAIACADXfgZJSL6mEMAAAACSAQAALwAcAGh0dHAvdGVzdHMvbWVkaWEv
cmVsb2FkLWFmdGVyLWRpYWxvZy1zdGRlcnIudHh0VVQJAAO1aqZXBWimV3V4CwABBPUBAAAEUAAA
AKWQMW/CMBCFZ/IrbiwLIiFByKoq0WQAqYxVB8RwsQ/HwpyRfVHVf19TdWonYHzSve/TvfVoAZZQ
NqqpVV0DfaZyvpj5oNFDFB3pEqI4tvtVVa+qAzx31I/2RUEi2VFKaOktWJsvXnPppCAXPZlifT9Y
MEob+OjsGFFc4A8nQxvOF0/XtEE2nqKCFvVABuZAjH12Qo/6RGzSI3KS90Rxy8fQOS3qH1vBUzGZ
/jE0NxnY/A738xcK2RC/MpdH76fFN1BLAwQUAAIACADXfgZJR9eykkcBAAB0AgAALwAcAGh0dHAv
dGVzdHMvbWVkaWEvdGV4dC1zZXJ2ZWQtYXMtdGV4dC1zdGRlcnIudHh0VVQJAAO1aqZXBmimV3V4
CwABBPUBAAAEUAAAAM2QQU8CMRCF7/yKORk9sLvAotiIhoBGE00IajQhHMp26DbpTtd2ivLvLVE4
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
fWuxN9ZLLTZllpfZFq4XuBvEDQWHmj+gc0zgs/T7mnkUxn5SGOtBqcmo+idyeQFZaulPyMdAl0bf
6c5QeFnV0BqtsfVhFjxHpiQfbX74cTadbWG5Xq8afBvQeeikWHrff8uF5A22KI/YoOuNdlgzpXas
faVgzwsO++AP6ryHnOQwRmuNhSjNrqblBLrQn0w0SdJsHpNQKS0JIQk36CJtfIQf0vn40KP4K1yQ
i+HQ30rN1FNzX+mQ8GA8VpyHDI4COzfw+yqcBS8MVl2Q4gtQSwMEFAACAAgA4H4GSVGumffFAAAA
JAMAACwAHABodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWxvYWQtdHdpY2Utc3RkZXJyLnR4dFVUCQAD
w2qmVxNopld1eAsAAQT1AQAABFAAAADtkbFuAjEMhmfuKTy2SwX0rjoiVAnuhlaCEXVAHXyJCRHB
QYlPiLcnoG7demLraMn/98n+F70FeINJpapSVTOgc5qMX1980Oghio50ClEc2209LevpN8xb6nr7
riCRrCkltLQK1uaNZQ4dFOSgJ1Ms/g4WjNIE3jnbRxQX+MvJvgnHk6fb9IFsPEUFDeo9GRgDMXbZ
CR3qA7FJQ+Qkm0Txk3ehdVrUL7aCp2L0PMjA5udx97tQyIZ4yVzuvR9G/m/kEY1cAVBLAwQUAAIA
CADgfgZJBWLN8OoAAABsAwAALwAcAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1wcm9ncmVz
cy1zdGRlcnIudHh0VVQJAAPEaqZXFGimV3V4CwABBPUBAAAEUAAAAM2RQUsDQQyFz/ZX5NheZFu7
UgcR2u1BwYIgolB6yM6m06FjpsxkLf57s+LNi7oeekxIvvfyMm8dwCWMS1NOTXkFdMzj4uI8RIsB
kthEh5jEs1vPJtPZZAPXS6pbd2MgEzcryhkdPXvZVSjkYno3MOQ2hNFg/meyZy8d8lHpPvIdb6OB
l4cKbGQmK9rTmTcMvumhcnL+S1MUv/IvX/bvo3M6sdClvQFdDNQLLJikirz1rk3Yuf3MJ74eAnXV
LXITKBmo0O6oAWUz1qoJNdq9ppr7XfWUKXWZLb0V842t/xmcjXop/Pjv/0z+AFBLAwQUAAIACADi
fgZJbYQ+I4QAAADAAAAAPQAcAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1zdGFsbC1iZWZv
cmUtbWV0YS1kYXRhLXN0ZGVyci50eHRVVAkAA8dqplcXaKZXdXgLAAEE9QEAAARQAAAAncy/CsIw
EIDxvU9xoy6SVisliFDq4iAIDgriENNrPAh3kj+Kb298BdePj1+fHcAa6la3rVYK8B1rtVx4scZD
SDbgU0IidteuWXXNDTY7vGe31RCRxwPGaByeKT0Gk9BJ+GiYcfZ+XvV/y8SUfuSp6CS850k0XI4D
WGFGm0orz8t4GqsvUEsDBBQAAgAIAOJ+BkmGRMkGuwAAAJIBAAArABwAaHR0cC90ZXN0cy9tZWRp
YS92aWRlby1xdWVyeS11cmwtc3RkZXJyLnR4dFVUCQADx2qmVxdopld1eAsAAQT1AQAABFAAAACl
kDGLAjEQhWv3V0ypjax6KxJEWNfiDrQ8LA6L2WQ2ho0TSWY5/PfmxM7uLB/M+z7m1YMFWMKsUlWl
ygXQb5qVi6kPGj1E0ZGuIYpj+7Oaf6zmJ1jvqB3sRkEiOVBKaGkfrM0X21zqFeSiJ1PU/wcLRmkC
d84OEcUFPjo5N+Fy9fSXPpGNp6igQX0mAyUQY5ud0KLuiU16R07ynSh+cRd2Tot6YSsYF6PJWwY2
z+Eef6GQDfGWuTx4PynuUEsDBBQAAgAIAOJ+BklBOVWp6wAAAFgFAAAqABwAaHR0cC90ZXN0cy9t
ZWRpYS92aWRlby1yZWRpcmVjdC1zdGRlcnIudHh0VVQJAAPIaqZXGGimV3V4CwABBPUBAAAEUAAA
AO2STUsDQQyGz/ZX5Ggvsv1YKUMp1O1BoQVBREF6yM6m06HTpMxkFf+9s+JNTy4ehB4TkudN3mTZ
OoBrGJWmLE0xBXpLo2JyFcRigKg20kmienYvs/F0Nt7CfEV16xYGEnGzoZTQ0ZPXfYVKTuK7gUtu
QxgOlr8me/baIR8y3Qvf8U4MPN9XYIWZrOZcrnnF4JseKon0a/y1OJcrbnLTwUBuDNQLrBi1Et55
10bspv30R46nQF10i9wEigYqtHtqoABirLMm1GgP2dXUb6vHRLHzbOWtmm/sfJ/BxbCXwl/d/T+S
z796/tWfyB9QSwMEFAACAAgA4n4GSa3cDN7eAAAAUgIAACsAHABodHRwL3Rlc3RzL21lZGlhL3Zp
ZGVvLXVzZXJhZ2VudC1zdGRlcnIudHh0VVQJAAPIaqZXGGimV3V4CwABBPUBAAAEUAAAAKWRT0sD
QQzFz/ZT5Ggvsv2zUgYR6vagoCCIKEgP2dl0OnSalJms4rc3K94ED+4xIe/3kpd1HwAuYVa7unbV
EuijzKrFRRKPCbL6TCfJGjm8rebL1XwLVxtq+3DtoBB3D1QKBnqJum9QKUj+dHDOfUrTyfrf5MhR
B+ST0aPwHe/EwetjA16Yyav1bOYdU+xGuBTSn/XvJQSbuDHRwYEJE40CK2ZthHcx9BmHbb/zkeMp
0VDdIneJsoMG/Z46qIAYW/OEFv3BUi3jrnoulIfMNtGr+8W2/0zOpqMc/v77F1BLAwQKAAAAAACA
fQZJAAAAAAAAAAAAAAAAEAAcAGh0dHAvdGVzdHMvbWlzYy9VVAkAAzBopldKbaZXdXgLAAEE9QEA
AARQAAAAUEsDBBQAAgAIANt+BkmcMS1TwwAAAP4AAAA/ABwAaHR0cC90ZXN0cy9taXNjL2RlbGV0
ZS1mcmFtZS1kdXJpbmctcmVhZHlzdGF0ZWNoYW5nZS1zdGRlcnIudHh0VVQJAAO+aqZXD2imV3V4
CwABBPUBAAAEUAAAAE2OT0vDQBTE7/0Uc1SwshuzaQnFS2NPQYp/TqWUJXmtD5Pd8PJS0U/vFhQ6
zBwGBuaXGVvMzXJuClhXujz5/sFZVFM/vFBoSd6EaLfM8kVR5s4uXLbHVuJAot/oeFRwOPuOWxyj
XNJ7LWGNwc1wPRvR+BCioolBPQc8v9f17Wx3/brHKgmbar091NyzUovHJGz49NcrHj/XvvmgxHDm
hHd4Jf3nKfEkkii+hJXDCXFKd5cxjtzRHVSm0HglaMQPSZz9AlBLAwQUAAIACADbfgZJ6SXUc8QA
AAD+AAAAWwAcAGh0dHAvdGVzdHMvbWlzYy9kZWxldGUtZnJhbWUtZHVyaW5nLXJlYWR5c3RhdGVj
aGFuZ2Utd2l0aC1nYy1hZnRlci12aWRlby1yZW1vdmFsLXN0ZGVyci50eHRVVAkAA71qplcOaKZX
dXgLAAEE9QEAAARQAAAATY5BS8NAFITv/RVzVLCyidlNWYqXxp6CFKunUsqSvNaHyW7YvFT013cL
Ch2Yw8AH8+UqM3O1mCuDTFtdWP30aIxBNfXDG/mW4nsk2i3yojS20Fmp8z02MQwU5QcdjwL2Z9dx
i2OI1/ZOLDKlcDfcYiMa530QNMGLY4/Xj7q+n+1uXss9lilYV6vNoeaehVo8p2DNp79d8fi1cs0n
JYczJ73DluTfx+IlxmTxHVnYnxCmdHeFceSOHiBx8o0TggT8UgyzC1BLAwQUAAIACADvfgZJFTU1
knoAAAC8AAAAKgAcAGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJyLnR4dFVU
CQAD4WqmVzBopld1eAsAAQT1AQAABFAAAACNjkEOwyAMBO95hT9AIO2hFb8hxFUsGYyMkfr8EuUD
1V5WO4fZLKURJyOpgKqiET7ECKdZi95vj9caZrb4DiH4Qj17xS5DM3b/7WxuT4ej0kTNDaV1bsBU
EZ6AjAWrwU2XSeJdIcKoaZ8aE2BJx3+6Kn3k87qXLDEvP1BLAwQKAAAAAADUfgZJAAAAAAAAAAAA
AAAAFgAcAGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9VVAkAA7BqpldKbaZXdXgLAAEE9QEAAARQAAAA
UEsDBBQAAgAIANR+BknlzGi4hAAAAMAAAAAtABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2FuY2hv
ci1iYXNpYy1zdGRlcnIudHh0VVQJAAOwaqZXsGqmV3V4CwABBPUBAAAEUAAAAJ3MsQrCMBCA4b1P
caMu0mpaJIhQ6uIgCA4K4hDTawyEO0kuim9vfAXXn5+vzw6gg6bVrdKqBnynpl4tAlsTIIqN+OQo
ntx1vVRtd4PNDu/ZbTUkpPGAKRmHZy+PwQg6jh8NM8ohzKv+b9mTlx95Krpn2tPEGi7HASwToZXS
yvMywY/VF1BLAwQKAAAAAABnfQZJAAAAAAAAAAAAAAAAGQAcAGh0dHAvdGVzdHMvbm90aWZpY2F0
aW9ucy9VVAkAAwFopldKbaZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAGd9BklR3xnohAAAAMAA
AAA4ABwAaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2V2ZW50LWxpc3RlbmVyLWNyYXNoLXN0ZGVy
ci50eHRVVAkAAwFoplcBaKZXdXgLAAEE9QEAAARQAAAAncw9CgIxEEDhfk8xpTbiko0LQYRlbSwE
wUJBLGJ2jANhRvKjeHvjFWwfj28oHmAFrTadMq0CfKd2qRZBnA0Qs4v4lJiJ/aXvdaevsN7irfiN
gYQ87TEl6/FE+THajF7ix8CMSwjzZvhbJqb8I49VJ+Ed38XA+TCCE2Z0ubb6vGygqfkCUEsDBAoA
AAAAANZ+BkkAAAAAAAAAAAAAAAAUABwAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAkAA7NqpldKbaZX
dXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIANZ+BknapsACygAAAN0BAABVABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtcmVtb3RlLXZpZGVvLWJsb2NrZWQtbm8tY3Jvc3Nv
cmlnaW4tc3RkZXJyLnR4dFVUCQADs2qmVwRopld1eAsAAQT1AQAABFAAAAClkD+LAjEQxevbTzGl
Not/VpEggq6FwlmKxXHFbDLGYJxIMovctzer1111bDkP3u/Ne+vWAsxhPFOzSlVToEcaj6alDxo9
RNGR7iGKY/u1mFSL+Tcs93wOKwU+WJtlSIJRUlmWxfrfqC01rc2sRHKglNDS55u6yaargmz0ZPqA
u+fqwGdn24jiAp+cXOpwu3vqrh2y8RQV1KgvZGAExNjkTGhQX4lN6tfqmCh2e22dFvWHrWBQfAx7
JbD5He7VC4VsiD+Zy633w+IJUEsDBBQAAgAIANZ+BknQ6md/IgEAABUDAABIABwAaHR0cC90ZXN0
cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtcmVtb3RlLXZpZGVvLWxvY2FsaG9zdC1zdGRl
cnIudHh0VVQJAAO0aqZXBGimV3V4CwABBPUBAAAEUAAAAM2STWvDMAyGz+uv0HE7rKRZmnVmFNr0
sMEGpaVsUHpQEsUx9eRiO/v69VPKdtm1DKabjfS80ivNOg2Qw2isxpnKMqC3MEquhtZVaMHHytPB
+WhYbydpNsl3cLugstNTBYG4fqQQUNOTiW2BkbTzHwrOubP2YjD7h2TDJvbItdCN43tunILnZQGV
Y6Yqyp/kvKI19WD7wx8maSoMCShWs/kaphLQ2C60S+lUdFZkCQOtKSrYJu/XDWJa5vVNniU7mEtf
e0igxQDs+PKTvANPjWh2HGF0klHx26cHp7VkHLUUSKGl+hRwRB8Lx43RncfeluMi3MvBUv+6Q64t
eQUFVi3VMh0xlqIJJVZ7MSWcNtUmkO+XszCVWPqbLYcwOPvLA/sCUEsDBBQAAgAIANZ+BklDIXW2
3gAAAFICAABHABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtcmVtb3Rl
LXZpZGVvLXJlZGlyZWN0LXN0ZGVyci50eHRVVAkAA7RqplcFaKZXdXgLAAEE9QEAAARQAAAApZFB
SwNBDIXP9lfkaC/S6raUoRTq9qCgUBBRkB6ys+l06JiUmazFf29WvAke3GNC3veSl3UXAOYwnblZ
5aoK6Fymk5urJB4TZPWZTpI1cnhbXFeL+Q6WG2q6sHJQiNtHKgUDvUQ91KgUJH86uOQupfFo/W9y
5Kg98snoUfie9+LgdVuDF2byaj2b+cAU2wEuhfRn/QcJwSZuTXR0YMJEg8CKWWvhfQxdxn7b73zk
/ZSor+6Q20TZQY3+QC1MgBgb84QG/dFSLcOuei6U+8w20av7xbb/jC7Ggxz+/vsXUEsDBAoAAAAA
AHN9BkkAAAAAAAAAAAAAAAAqABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvVVQJAAMZaKZXSm2mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACADWfgZJZAyL6dgAAAD4
AQAASwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2F1ZGlvLXJl
ZGlyZWN0LWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADs2qmVwNopld1eAsAAQT1AQAABFAAAAClkM1K
A0EQhM/uU/TRXCQ/myCDBJLNQSFCQIKCeOid6UyGjN1hptfg2zsbvHlzjwVVX1G16jzAAiZzM69N
PQO65Ml4dhfFYoSkNtFZkgb27/fTejH9gIcNtZ1fGsikz5QzetqK98WxLqGTgRKM5KrV/8GKSRvh
Q/BdQg3Cr0GPjXyeI/XqEdlFSgYatEdyMAZibEsntGhPxC4PKSfdZ0pPfJBNsGr+sA3cVjejQQ3s
fo+77kIlL+m7cLmLcQg5cNAe+VLo5ad+g4G3XQNWmMn23xXPF8bgqh9QSwMEFAACAAgA1n4GST/o
bUjlAAAAQwIAAEwAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9h
dWRpby1yZWRpcmVjdC1hbGxvd2VkMi1zdGRlcnIudHh0VVQJAAOzaqZXA2imV3V4CwABBPUBAAAE
UAAAAKXQTUsDMRAG4LP7K+aol6Uf2yJBhLo9KCgIIgriYTaZpqFxUpJZxX/vRL15kj0mZJ7J+25G
D7CG+cqsOtMtgT7KfLZsY7IYIYvNdExZAvuX80W3XrzCxQ3v0qWBmLzXayiCWUrbts3m39SWhtGr
VUjuqBT0dPujXunQwYAORnJT4Pq5PvEu+DGjhMRPQfZ9ejtGqqdrZBcpG+jR7snBDIhx0J0woD0Q
uzIt1WOhXPvaBivmj23gtDk5m7SB3W9x37lQyKf8qS6PMU6RAwep5IPq2lPNYOD5vgebmMnW7vTN
O8bgmi9QSwMEFAACAAgA1n4GSZWISCqnAAAAigEAAFgAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9ibG9iLXVybC1kb2VzLW5vdC1tYXRjaC1zb3VyY2Utc2VsZi1z
dGRlcnIudHh0VVQJAAOzaqZXA2imV3V4CwABBPUBAAAEUAAAAN2PvQ6CMBRGd5+iIw5QKdQfEgcl
mjgYSRiNIdf2BquVkks14e3FOOgzuJ1vOuc7xjKTaZYmUSLTEzMe79D1japK9AW5Fsn3rDN1A9ai
Zki0DGMxm0sW3LamXkOHh/MVld8QOap2zROs0eBRj1lgfhd4xkv3IIU5qAvy3BHuURv4UhjLqYhE
OuGD2jvft9jxwkKPxAfZh6rVuy9SzJoGmRCLZHT8hxMvUEsDBAoAAAAAAGl9BkkAAAAAAAAAAAAA
AABEABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXBncmFkZS1p
bnNlY3VyZS1yZXF1ZXN0cy9VVAkAAwVopldKbaZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIANZ+
BklRYdy+6AAAACYDAAB5ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy91cGdyYWRlLWluc2VjdXJlLWF1ZGlvLXZpZGVv
LWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUCQADtGqmVwVopld1eAsAAQT1AQAABFAAAADNUT1P
wzAQ3fkVN8JAYhenRd6qtIiBAUVlqhiMcy1WYzucbQZ+PddSIQYEEgMgL3e+9yW9tWx0o7RSlWjE
PVyvVrcdPhVMGTZu+2FtCU3GJVGkNnqPIWvAYGMJGQl7MAFwf9RQAqGN2+Be+Psx5xEI0xhDQlBC
nKy/dmT8cV24vkOL7hm7I781w/Bg7E6z4uHwiT6cHmLAuZxMp7Mz2PC8B+m6lpNZJfhJfanURc2s
WMhiqjO7VX5U32XjdVH8eOWCGe66m3nggD5mnPc9iyUN5m2AdyemMRYKDT8LIX+9EvmPK5F/Vckr
UEsDBAoAAAAAAGl9BkkAAAAAAAAAAAAAAAA9ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL1VUCQADBWimV0ptpld1eAsAAQT1AQAA
BFAAAABQSwMEFAACAAgA1n4GSRyaIIzmAAAAQwIAAFMAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vYWxsb3ctYXVkaW8tc3RkZXJy
LnR4dFVUCQADs2qmVwRopld1eAsAAQT1AQAABFAAAACl0MFKAzEQBuCz+xRzrJdl2+6KhCLU7UGh
BUFEQXqYTaZpaJyUZFbx7U3UmyfZY0Lmm/z/erQAVzDvVNeqdgn0kebNsvZBo4coOtI5RHFsX68X
bdfsYXXPh3CjwAdr8zUkwSiprutq/W9qQ8Nos5VIdpQSWtr+qLd56KQgD3oyU+DyuT7wwdkxorjA
z06OfXg7eyqnO2TjKSroUR/JQAPEOOSdMKA+EZs0LdVTolj62jgt6o+tYFZdXE7awOa3uO9cKGRD
/Mwuj95PkR07KeRj1nNPJYOCl4cedGAmXbrLb97RO1N9AVBLAwQUAAIACADWfgZJs3ynZf8AAAD7
AQAAUwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2Vu
dFNoYWRvd0RPTS9hbGxvdy12aWRlby1zdGRlcnIudHh0VVQJAAOzaqZXBWimV3V4CwABBPUBAAAE
UAAAAKWQO2vDQBCE6+hXbBkXMXIkOfZhDLZcJJBAsAkphIvTae8kfNkz9yCPX5+NSZq0mm5hZz5m
mlklqlKUxXQ5L46wYkG932wPsGaBtin0z0jdQGaPFmXAA0YBTf5xp9WiUNWybXV+hK116gQ59DIA
Obr5Qu/AowblEkUos00yAHP4wwG+h1leTNkmLfioPJ6dj4xpFrdlxYmrHbbJrAUEjE8YgjT46Izh
jwtLABstdmOCo/SxdqQHk7yMg6PXIfa1eztb/LnuJXUWvYBaqh47bockW2ZCK9WJRwnjWr0E9A+k
3W5QPOn/bAHX2dVkFIG63+EuvWRE4/wn51KydpJ9A1BLAwQUAAIACADWfgZJBW72RoQAAADAAAAA
awAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNo
YWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYWxsb3dlZC1zdGRlcnIudHh0VVQJ
AAO0aqZXBWimV3V4CwABBPUBAAAEUAAAAJ3MMQoCMRBA0X5PMaU2squJSBBhWRsLQbBQEIuYHeNA
mEgyUby98Qq2n8/riwdYQqeNVkYpwHfu2sUsRGcDJHEJnzEJsb+s5kq3V1hv8Vb8xkBGHveYs/V4
InkMVtDH9DEw4RLCtOn/lolJfuSx6hR5x/do4HwYwEVmdFJbfV420Nh8AVBLAwQUAAIACADhfgZJ
V59kcd4AAABSAgAASwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3ZpZGVvLXJlZGlyZWN0LWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADxmqmVxdopld1eAsAAQT1AQAA
BFAAAAClkUFLA0EMhc/2V+TYXmS7dYsMItTtQUFBEFEQD9nZdDp0TMpMVvHfmxVvggf3mJD3veRl
MwSANSwb1zSuqoE+yrJanSbxmCCrz3SUrJHDy3l9tq5f4WJL3RAuHRTi/o5KwUBPUfctKgXJnw7m
PKS0mG3+TY4cdUQ+GD0K3/BOHDzft+CFmbxaz2beMcV+gksh/Vn/VkKwiSsTHRyYMNEksGLWVngX
w5Bx3PY7H3k7Jhqra+Q+UXbQot9TDxUQY2ee0KE/WKpl2lWPhfKY2TZ6db/Y9p/ZyWKSw99//wJQ
SwMEFAACAAgA4X4GSbeuqaK7AAAAkgEAAEwAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS92aWRlby1yZWRpcmVjdC1hbGxvd2VkMi1zdGRlcnIudHh0VVQJAAPGaqZX
F2imV3V4CwABBPUBAAAEUAAAAKWQMYsCMRCFa/dXTHk2sq63IkEEb7dQ0PKwEIvZZIxh40SSWQ7/
vTmxu+4sH8z7PuatBwswh2mt6lqVFdBPmpaziQ8aPUTRkW4himN7XFSf8+oEy5a6wa4UJJI9pYSW
dsHafPGVS72CXPRkivX/wYJRmsBnZ4eI4gIfnFyacL15+k0bZOMpKmhQX8hACcTYZSd0qHtik96R
k3wnils+h9ZpUX/YCj6K0fgtA5vXcM+/UMiGeM9cHrwfFw9QSwMEFAACAAgA4X4GSVefZHHeAAAA
UgIAAGYAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS92aWRlby13
aXRoLWh0dHAtdXJsLWFsbG93ZWQtYnktY3NwLW1lZGlhLXNyYy1zdGFyLXN0ZGVyci50eHRVVAkA
A8ZqplcYaKZXdXgLAAEE9QEAAARQAAAApZFBSwNBDIXP9lfk2F5ku3WLDCLU7UFBQRBREA/Z2XQ6
dEzKTFbx35sVb4IH95iQ973kZTMEgDUsG9c0rqqBPsqyWp0m8Zggq890lKyRw8t5fbauX+FiS90Q
Lh0U4v6OSsFAT1H3LSoFyZ8O5jyktJht/k2OHHVEPhg9Ct/wThw837fghZm8Ws9m3jHFfoJLIf1Z
/1ZCsIkrEx0cmDDRJLBi1lZ4F8OQcdz2Ox95OyYaq2vkPlF20KLfUw8VEGNnntChP1iqZdpVj4Xy
mNk2enW/2Paf2cliksPff/8CUEsDBBQAAgAIAOJ+BklBGnWThwAAAMAAAABZABwAaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvd29ya2VyLWJsb2ItaW5oZXJpdHMtY3Nw
LWJsb2Nrcy1ldmFsLXN0ZGVyci50eHRVVAkAA8dqplcYaKZXdXgLAAEE9QEAAARQAAAAlcy9CsIw
FEDhvU9xR12kTU2RIEKpi4MgOCiIQ0xv44VwI/lRfHvj6Oh6OHx9tgAdNFJJqWoB+IpN3S6cN9pB
SCbgw4dEbC8rsezEFdZbvGW7URCRxz3GqC2eKN0HndD68FYw4+zcvOp/5PYPmZjSlzwWnTzvePIK
zocBjGdGk0orz1M7GqsPUEsDBBQAAgAIAOJ+BkljqqxsggAAAKgAAABAABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQAD
x2qmVxhopld1eAsAAQT1AQAABFAAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7
WobZzXK2wpsXqQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNM
XCpoJTDOIdAP2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIAOJ+Bkljqqxs
ggAAAKgAAABSABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNs
LXVuYWZmZWN0ZWQtYnktc3R5bGUtc3JjLTItc3RkZXJyLnR4dFVUCQADx2qmVxlopld1eAsAAQT1
AQAABFAAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZzXK2wpsXqQRV0UR7
YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP2AH4NGh6
Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBAoAAAAAANZ+BkkAAAAAAAAAAAAAAAAcABwAaHR0
cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL1VUCQADs2qmV0ptpld1eAsAAQT1AQAABFAAAABQSwME
FAACAAgA1n4GSQqrSryEAAAAwAAAADoAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvYXNz
aWduLWRvY3VtZW50LXVybC1zdGRlcnIudHh0VVQJAAOzaqZXs2qmV3V4CwABBPUBAAAEUAAAAJ3M
sQrCMBCA4b1PcaMuYm0qJYhQ6uIgCA4K4hDTazwIF0kuim9vfAXXn5+vzw5gDXWrW6VVA/hO9bJZ
+GCNhyg24jNEIXbXbqU6dYPNDu/ZbTUk5PGAKRmHZ5LHYARdiB8NM87ez6v+b5mY5Eeeik6B9zwF
DZfjADYwo5XSyvMynsbqC1BLAwQUAAIACADWfgZJlbfFgYQAAAAaAQAANQAcAGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29ycy1wb3N0LXJlZGlyZWN0LTMwMS1zdGRlcnIudHh0VVQJAAO0aqZXBWimV3V4
CwABBPUBAAAEUAAAAM3MsQrCMBCA4b1PcaMuYjUtJYhQ6uIgCA4K4hDTawyEO0kuim9vfAvXn5+v
zw6ghbrRjdJKAb5TvVwvAlsTIIqN+OQonty1W6muvcFmh/fsthoS0njAlIzDs5fHYAQdx4+GGeUQ
5lX/h7InLz/yVHTPtKeJNVyOA1gmQiulledlgh+rL1BLAwQUAAIACADbfgZJK0RUurgAAACSAQAA
PQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc291cmNlLWZyb20tcmVtb3RlLXN0
ZGVyci50eHRVVAkAA71qplcTaKZXdXgLAAEE9QEAAARQAAAApZC7CgIxEEVr9yum1EZ8rUgQQddC
QUuxEIvZZIzBOJFkFvHvjWJnp+WFuecwd95YgDH0S1WOVDkEuqd+b9j1QaOHKDrSLURxbA+TwWgy
PsJ0SXVjZwoSyZZSQkubYG2+WOTSRUEuejLF/HewYJQq8MnZJqK4wHsn5ypcb55eaYVsPEUFFeoz
GegBMdbZCTXqC7FJ/8hJdonimk9h6bSoL7aCdtHq/GVg8xnu/RcK2RAfmcuN953iCVBLAwQUAAIA
CADbfgZJhX8kL4QAAADAAAAAOgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc3Jj
LWZyb20tcmVtb3RlLXN0ZGVyci50eHRVVAkAA71qplcTaKZXdXgLAAEE9QEAAARQAAAAncyxCsIw
EIDhvU9xoy5ibVNKEKHUxUEQHBTEIaZnPAgXSS6Kb298Bdefn2/IDqCDWmnVatUAvlO9bBY+WOMh
io34DFGI3aVftX13hfUWb9ltNCTkaY8pGYcnksdoBF2IHw0zzt7Pq+FvmZjkRx6LToF3fA8azocR
bGBGK6WV52U8TdUXUEsDBAoAAAAAAGl9BkkAAAAAAAAAAAAAAAAhABwAaHR0cC90ZXN0cy9zZWN1
cml0eS9taXhlZENvbnRlbnQvVVQJAAMGaKZXSm2mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACABp
fQZJ7jU5TYQAAADAAAAATAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2Fib3V0
LWJsYW5rLWlmcmFtZS1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAkAAwZoplcGaKZXdXgLAAEE
9QEAAARQAAAAncw9CgIxEEDhfk8xpTZiiOtKEGFZGwtBsFAQi5gd40CYkfwo3t54BdvH4+uLB1iC
as1CG9UBvpOa61kQZwPE7CI+JWZif+m6dqWvsN7irfiNgYQ87jEl6/FE+THYjF7ix8CESwjTpv9b
Jqb8I49VJ+Ed38XA+TCAE2Z0ubb6vGygsfkCUEsDBBQAAgAIANd+Bkl/se2b8AAAAIkEAABOABwA
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtYXVkaW8tdmlkZW8taW4t
bWFpbi1mcmFtZS1zdGRlcnIudHh0VVQJAAO2aqZXBmimV3V4CwABBPUBAAAEUAAAAO2RT0sEMQzF
z86nyHH3MuyfmUWKCOvsQUFBEFGQPWTabLdsTZc2o/jtbdWbJ5mT4jEh+SXvvfVgAVYwb1XbqGYF
9Jrms2Xtg0YPUXSkY4ji2D6dLpp2sYWzK96FcwU+WJvbkASjpLquq/WPURvqB5tZieSGUkJL15/U
i7x0UJAXPZkx4PJcF3jn7BBRXOAHJ/suPB89leoS2XiKCjrUezIwA2Ls803oUR+ITRqn6j5RLH5t
nBb1ja1gUp1MR11g82Xchy4UsiG+ZS4P3k//E/lTifw+smMnBXmX6Tnb4ruCx9sOdGAmXfLOMy/o
naneAVBLAwQUAAIACADXfgZJgA5yR4QAAADAAAAAQgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4
ZWRDb250ZW50L2luc2VjdXJlLWNzcy1pbi1pZnJhbWUtc3RkZXJyLnR4dFVUCQADtmqmVwZopld1
eAsAAQT1AQAABFAAAACdzLEKwjAQgOG9T3GjLmJrUiSIUOriIAgOCuIQ02sMhDtJLopvb30F15+f
ryseoIVaG62MagHfuV6uFpGdjZDEJXxykkD+um6Ubm6w2eG9+K2BjDQcMGfr8Rzk0VtBz+ljYEYl
xnnV/S0HCvIjT5MemPY0soHLsQfHROhkatPzsjEM1RdQSwMEFAACAAgA4X4GScgQUwTjAAAAmAQA
ADkAHABodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9yaWdpbi1jYWNoaW5nLXN0ZGVy
ci50eHRVVAkAA8VqplcZaKZXdXgLAAEE9QEAAARQAAAA7ZJBSwNBDIXP9lfkaC+yq24pQynU7UGh
giCiID1kZ9Lp0DEpM1nFf++sePPmnkSPgbzvkfey6j3ADOrGNI2paqC3XFcXZ1EsRkhqEx0laWD/
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
dGhtbC9wcmVzZW50YXRpb24tbWFya3VwL3RhYmxlcy9VVAkAA8lqpldKbaZXdXgLAAEE9QEAAARQ
AAAAUEsDBBQAAgAIAON+BknyhGsAhAAAAMAAAABXABwAaW1wb3J0ZWQvbWF0aG1sLWluLWh0bWw1
L21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL3RhYmxlcy90YWJsZS1heGlzLWhlaWdodC1zdGRl
cnIudHh0VVQJAAPJaqZXyWqmV3V4CwABBPUBAAAEUAAAAJ3MsQrCMBCA4b1PcaMu0tZGShCh1MVB
EBwUxCGmZzwIF0kuim9vfAXXn59vyA5gBY3SSum6A3ynpl4ufLDGQxQb8RmiELtL33Z9e4X1Fm/Z
bTQk5GmPKRmHJ5LHaARdiB8NM87ez6vhb5mY5Ecei06Bd3wPGs6HEWxgRiulledlPE3VF1BLAwQK
AAAAAABzfQZJAAAAAAAAAAAAAAAAEQAcAGltcG9ydGVkL21vemlsbGEvVVQJAAMZaKZXSm2mV3V4
CwABBPUBAAAEUAAAAFBLAwQKAAAAAABzfQZJAAAAAAAAAAAAAAAAFQAcAGltcG9ydGVkL21vemls
bGEvc3ZnL1VUCQADGWimV0ptpld1eAsAAQT1AQAABFAAAABQSwMECgAAAAAAc30GSQAAAAAAAAAA
AAAAABoAHABpbXBvcnRlZC9tb3ppbGxhL3N2Zy9zbWlsL1VUCQADGWimV0ptpld1eAsAAQT1AQAA
BFAAAABQSwMECgAAAAAAc30GSQAAAAAAAAAAAAAAACAAHABpbXBvcnRlZC9tb3ppbGxhL3N2Zy9z
bWlsL3N0eWxlL1VUCQADGWimV0ptpld1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAc30GSQTOYxch
AQAAsgcAAEgAHABpbXBvcnRlZC9tb3ppbGxhL3N2Zy9zbWlsL3N0eWxlL2FuaW0tY3NzLWNvbG9y
LTEtYnktaWRlbnQtaGV4LXN0ZGVyci50eHRVVAkAAxloplcZaKZXdXgLAAEE9QEAAARQAAAA7c/P
S8MwFMDx+/6Kd9wO68+1nUWFWRV2GA52UBhjZOkzi8akvKRK/3szxnCCFw8ehN5eQvi+fGatAMgh
zspJWqY54IeNozRQhjMF5DhhY8hJLdZFkWXFBi5vcdeK6xIs6nqB1jKBj9LtK+ZQGOpKGOpWqdFg
9q1c/KIstXSH5MrXpdFz/WxKeFpWwI3WyJ2/82/emZL1YH3qB1Gab0A6fGO203y7Qrck0yC5DqwU
mimFNSDR1ThOimkGw9d7KW6YxYfdi4/eERnazo9Zb6lHMJTnJ+YgXJmWOFaM7zGsDOECa8m+pnGc
5UmQTKLQr3bGdQ3acKlYhxT6ZcdpOzv8L+CgpEZIkou0R/SIP0JMonNEZZruXyii6bRX9Ipe8YPi
E1BLAwQKAAAAAAB1fQZJAAAAAAAAAAAAAAAADQAcAGltcG9ydGVkL3czYy9VVAkAAx1opldKbaZX
dXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAHh9BkkAAAAAAAAAAAAAAAAgABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9VVAkAAyNopldKbaZXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAA
AHV9BkkAAAAAAAAAAAAAAAAmABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9VVAkAAx1opldKbaZXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAHV9BkkAAAAAAAAAAAAAAAAq
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvVVQJAAMdaKZXSm2m
V3V4CwABBPUBAAAEUAAAAFBLAwQKAAAAAAB1fQZJAAAAAAAAAAAAAAAAMAAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL1VUCQADHmimV0ptpld1eAsAAQT1
AQAABFAAAABQSwMEFAACAAgA5n4GScqlhqI8AQAAkAUAAEsAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLWFjdHVhbC50eHRV
VAkAA89qplceaKZXdXgLAAEE9QEAAARQAAAA1ZJNTsMwEIX3OcVsyora/ZOAShWqSsumUETUAxjH
JZbijGVPBdyeSUGhpYu2ARYolhONMt88v+fJ4j5dzKdwN03T8e10CMsyqpUBRWScJyCEAlUGy8c5
5EQ+DqUsUKsix0jDq8GgL1eGdC6VtzKYiOugTZSEXtArXVe/ksVytOlt9cet3oxXTeBKxeDShsJv
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
Yy9tb2RlLXNhbWUtb3JpZ2luLXdvcmtlci1leHBlY3RlZC50eHRVVAkAA85qplcdaKZXdXgLAAEE
9QEAAARQAAAA1ZLLTsMwEEX3+YrZhBW1+1RLpQqVPtgUioj6AcZxiUWcieypCn+PU1Da0gVpgAWy
ZVsj+8zVvZ4s76PlYgZ3syga386GsMqcWCsQRMrkBISQoohh9biAhCh3Q85TlCJN0NHwqtvt8LUi
mXCRa26Vw42VynHCnNErXRdXSWM2Cns3Ybu/I4Sdcdie+1lyfKUg+dKO5XdP82vJ8+dPooeEvemF
xE1GoxasLRq/CKNgqykpZR6pHAyazQOVT8JpyQ3GquH8wwZa/ayzxhbti7IsIZMymKIROnOXkFsk
lJg6EFkMOVpyYDaOwAjPY0EwOdNAr6zV7rOmH62vyir5V9pXYnylAP1L+4KHcRTBvKADY6cOfOg6
aARFZzh89p3guszzvnp1odXjr8A8CebIRKtibZUklr/tv1JNm2t0+otkasr49TDr2/Hz/IN3UEsD
BBQAAgAIAOZ+Bkke4chujggAAPUgAABYABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi13b3JrZXItcHJldHR5LWRpZmYuaHRt
bFVUCQADz2qmVx1opld1eAsAAQT1AQAABFAAAADtWmlv40YS/e5f0bDhGAhMUqdHh61gxpZ3gUwO
RMnm46JJNsUek2yF3bTkye5/3+qLIilSVuDdCRbIeMai+qiu49WramJuY5Emi7PbmOAQPlIiMApi
nHMi7q4KETmTKxjm4iUhi7NZQrOnazR7ppwKEqLfzxD8EWQnnJAELMeCsmyGMpaRuZryWR6S3PGZ
ECydof5mh0J4JuH87N9nWpwRErCE5TN00RtO1Zz7SBPyQKPIzPs4eFrnrMhCxy6NJvKnepA+gbOE
hugiDEM9F7FMOBFOafIyQynLGN/gwCiY4nxNQeU+SVFPD20YGKfsyEkCFj0TpVDcb2g6HA5b5HOc
cYeTnEaVSU4/E3VG9VAnIZGYoZ47tuMh5ZsEgxCagWeMhlsaihg293qXRj8chjRblzu1biY08qke
HaMuzWJQSpTLY/ZM8oZF4/F43uVsQrQbXBmTj3AWN5ujhGEwI6frWNQjJ1fdg/kYbLFHMXA9FWBi
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
CgAAAAAAe30GSQAAAAAAAAAAAAAAACUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvVVQJAAMqaKZXSm2mV3V4CwABBPUBAAAEUAAAAFBLAwQKAAAAAAB7fQZJAAAAAAAAAAAA
AAAAKQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vVVQJAAMqaKZX
Sm2mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACADrfgZJXnLumcUAAABOAgAARwAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vcmVmbGVjdGlvbi1lbWJlZGRlZC1zdGRl
cnIudHh0VVQJAAPaaqZXKmimV3V4CwABBPUBAAAEUAAAAM2QMQvCMBCFd3/FjTpoGm21zSaKOAhK
0UkcYnO1xbSpServ96SO4uAgcst7vHfcxx15JKJI8GQ0m0QnWO/3uxRvLToPeXlZe9+87LJUKWZY
3jFF15ja4UJqfZbZVYDtAgUF9cl1OYRBCH201lgY8nEyiQeQk36WBGPaZFIXxnkRx0HACl9ppkzF
PB0b3qVucZv3jp/xyC7bqlmVtdSHdDOvibEyHudKEYUTIDsBfDwbBTSc1qgLrdXfcoTTv37TO7yf
vekBUEsDBAoAAAAAAHh9BkkAAAAAAAAAAAAAAAAvABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9VVAkAAyNopldKbaZXdXgLAAEE9QEAAARQAAAAUEsDBAoA
AAAAAOp+BkkAAAAAAAAAAAAAAABAABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L1VUCQAD12qmV0ptpld1eAsAAQT1AQAABFAA
AABQSwMECgAAAAAAgX0GSQAAAAAAAAAAAAAAAE8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvVVQJ
AAMyaKZXSm2mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACADofgZJd9gZyMgAAAAyBAAAZwAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9jYW5wbGF5LXN0ZGVyci50eHRVVAkAA9RqplcjaKZX
dXgLAAEE9QEAAARQAAAA7ZGxagJBEIZrfYopk0buoneEJQQuZ6EQy2AhKeZ2x3W5zazszhHy9m7E
TrDQJhDLgfm/j5m/GSxADWWlqkqVNdB3KovpxAeNHqLoSPsQxbHdPD/N6uITXubUDfZVQSJZUUpo
6T1YmzfecqhXkIOezLi5HiwYpQ28dXaIKC7w2smuDV97T7/TAtl4igpa1DsyUAAxdtkJHeqe2KRb
5CQfieKSt2HutKgztoKH8ejxJgOb0+OOd6GQDfEnc3nw/q+S713/n64vkw9QSwMEFAACAAgA6X4G
SdHex0nrAAAACgUAAHIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfY2FucGxheV9ub2F1
dG9wbGF5LXN0ZGVyci50eHRVVAkAA9VqplcjaKZXdXgLAAEE9QEAAARQAAAA7ZPBSgMxEIbP9inm
aC+yq92tBBHq9mBBQRBRkB5ms9M0NE5KMqv49s6KN0+liCI9Jsx8+ecLM+sdQA1lZarKlDXQWy6L
s5MQLQZIYhNtYxLP7vn8dFIXS7iYU9u7SwOZuLulnNHRo5d1g0IupncDx9yHMB7N/iDZs5cBea90
H3nBq2jg6a4BG5nJit5pzSsG3/2z/NOd8stX/JvonFZcadPGgDYG2gssmKSJvPKuTzik/fQTX7aB
htM1chcoGWjQrqmDAoix1TehRbtRq3m/qR4ypcHZ3Fsx39j6P6Oj8cHbL3jbZV+mP7QvH1BLAwQU
AAIACADpfgZJtUZ48esAAADyBAAAbgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9jYW5w
bGF5dGhyb3VnaC1zdGRlcnIudHh0VVQJAAPVaqZXJGimV3V4CwABBPUBAAAEUAAAAO2RQUsDMRCF
z/ZXzNFeZFfdKkGEuj1UUBBEFEoPs9lpGppOSjKr+O+dFW/eXPYg9Jgw87037807BzCDsjJVZcor
oI9cFhdnIVoMkMQmOsQknt3q+vxyVqzhZkFN524NZOL2kXJGR69etjUKuZg+DZxyF8J0Mv8z2bOX
HvmsdB/5njfRwNtTDTYykxX905l3DL4doJJJfuw/ROd04k6XdgZ0MdAgsGCSOvLGuy5h7/Y7n7g/
BOpfS+Q2UDJQo91SCwUQY6Oa0KDdaap52FUvmVKf2cJbMb/Y2s/kZDpIYazex2tkPMvHrv8b+QtQ
SwMEFAACAAgA6X4GSXo5vT7nAAAAvgUAAHkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRf
Y2FucGxheXRocm91Z2hfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAAPVaqZXJGimV3V4CwABBPUB
AAAEUAAAAO2UwUoDMRCGz/Yp5mgvsqtulSBC3R4UFAQRBfEwm52moXGmJLOKb++sePPYgxU9Jsx8
+ecLyXwIADOoG9c0rj4Beit1dXSQxGOCrD7TRrJGDk+nh8ez6hnOFtQN4dxBIe5vqBQM9BB11aJS
kPzuYJ+HlKaT+Q6SI0cdkXdGj8JXvBQHj7cteGEmr7ZnNa+YYv+n8+tX/GsJwSourGntwBoTbQVW
zNoKL2MYMo5pP/3IyybRuLpE7hNlBy36FfVQATF2diZ06NdmtWw31X2hPDpbRK/uG9vuZ7I3/ff2
A95+30+yG2/8A1BLAwQUAAIACADpfgZJNpoENu4AAAAMBgAAagAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9ldmVudF9sb2FkZWRkYXRhLXN0ZGVyci50eHRVVAkAA9ZqplclaKZXdXgLAAEE9QEAAARQ
AAAA7ZRBSwNBDIXP9lfkaC+yq91SBhHq9mBBQRBRkB6ys+l06JiUmaziv3e29OatS0/2mJB8L/Me
zLxzAFMoK1NVppwBfaeyuLkKYjFAVBtpJ1E9u4/Z9WRarOB2QU3n7gwk4vaJUkJHb143NSo5iT8G
LrkLYTyaH0327LVHvmS6F17yWgy8P9dghZms5l6e+cLg2wEqifRw/qM4lyfu89LWQF4MNAisGLUW
XnvXReyv3fsjn7tAffWA3AaKBmq0G2qhAGJssiY0aLfZ1TTsVa+JYu/Zwls1f9g5n9HFeJDCqXI/
Jfmc9f/J+kw+7i/9BVBLAwQUAAIACADpfgZJbziVv+oAAACkBAAAdQAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy9ldmVudF9sb2FkZWRkYXRhX25vYXV0b3BsYXktc3RkZXJyLnR4dFVUCQAD1mqmVyVo
pld1eAsAAQT1AQAABFAAAADtk0FLA0EMhc/2V+TYXmTXdksZRKjbg4UWBBEF6SE7m06HjkmZySr+
e2fFmzcXoQePCcn3Mu8xy84BzKGsTFWZcgH0nspiehnEYoCoNtJJonp2L4ur2bzYwfWKms7dGEjE
7ZZSQkdPXg81KjmJHwbG3IUwGS1/TfbstUc+ZLoXXvNeDDzf12CFmazmXp55w+DbASqJ9Pv8jTiX
J27z0tFAXgw0CKwYtRbee9dF7K/98kdeT4H66g65DRQN1GgP1EIBxNhkTWjQHrOradirHhPF3rOV
t2p+sHM+o4vJIIW/yv0/kfNL5Bz++CdQSwMEFAACAAgA6n4GSdBTytbrAAAASgQAAG4AHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVkbWV0YWRhdGEtc3RkZXJyLnR4dFVUCQAD12qm
VyZopld1eAsAAQT1AQAABFAAAADtk8FKA0EMQM/2K3K0F9m13VIHEer2UEFBEFEoHrKz6XToNCkz
WcW/d1a8iCdZRA8eE5KXzBuy6BzADMrKVJUp50AvqSwmJ0EsBohqIx0kqme3np9OZ8UTnC+p6dyF
gUTc3lBK6OjB67ZGJSfx1cAxdyGMR4tP5LNvkD177ZF3me6Fr3gjBh5va7DCTFZzLtc8Y/DtgCmJ
9GP9a3EuV1zmpp2B3BhoEFgxai288a6L2G/77kf2h0B9tEJuA0UDNdottVAAMTZ5JjRod9lqGvaq
+0Sxd7b0Vs0Xdv6f0dH439svePupe/kbl/gGUEsDBBQAAgAIAOp+BkkQTtpC5wAAAEoEAAB5ABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRlZG1ldGFkYXRhX25vYXV0b3BsYXktc3Rk
ZXJyLnR4dFVUCQAD12qmVyZopld1eAsAAQT1AQAABFAAAADtk8FKA0EMQM/2K3JsL7Jbu0UHEer2
0IKCIKJQPGRn0+nQaabMZBX/3qx48+YievCYkLxk3pBF5wDmUFamqkx5AfSay+LsNESLAZLYRMeY
xLPbnE9n8+IZLpfUdO7KQCZubylndPToZVejkIvpzcCYuxAmo8W3yZ699Mh7pfvIa95GA093NdjI
TFY0pzUvGHw7YEom+Vz/JjqnFdfatDegjYEGgQWT1JG33nUJ+20//MTDMVAfrZDbQMlAjXZHLRRA
jI3OhAbtXq3mYa96yJR6Z0tvxXxh6/+MTib/3n7B20/dy9+4xHdQSwMEFAACAAgA6n4GSSHBJBTt
AAAApAQAAGkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZHN0YXJ0LXN0ZGVyci50
eHRVVAkAA9hqplcnaKZXdXgLAAEE9QEAAARQAAAA7ZPBSgMxEIbP9inmaC+yW7tFgwh1e6igIIgo
iIfZ7DQNjZOSzCq+vbPSS/G09iCIx4SZb/58YeadA5hBWZmqMuU50Hsui9OTEC0GSGITbWMSz+75
bDKdFS9wsaCmc5cGMnF7Szmjo0cv6xqFXEwfBo65C2E8mv+Y7NlLj7xXuo98zato4OmuBhuZyYre
ac0bBt/uT5kUg/LLLv5NdE4rrrRpY0AbAx0EFkxSR1551yXs0375ia/bQP1pidwGSgZqtGtqQdmM
jc6EBu1GrebDXvWQKfXOFt6K+cbW/xkdjf+9/YK3Afvy58lDdvwTUEsDBBQAAgAIAOp+BknVqYdD
6AAAAKQEAAB0ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRzdGFydF9ub2F1dG9w
bGF5LXN0ZGVyci50eHRVVAkAA9hqplcnaKZXdXgLAAEE9QEAAARQAAAA7ZPBSgNBDEDP9itytBfZ
VrfIIELdHhQUBBEF8ZCdTadDx6TMZBX/3qx486SLiOAxIXnJvCHLPgAsYFa7unbzCuilzKrDgyQe
E2T1mXaSNXJ4OJ4fLapHOFlR24dTB4W4u6JSMNBd1E2DSkHyq4N97lOaTpbfJkeOOiBvjB6FL3gt
Du6vG/DCTF4tZzXPmGI3Ykoh/Vj/UkKwijNr2jqwxkSjwIpZG+F1DH3GYdt3P/K0SzRE58hdouyg
Qb+hDozN2NpMaNFvzWoZ96rbQnlwtope3Se2/c9kb/rv7Re8/dS9/EXyV278DVBLAwQUAAIACADr
fgZJjZEZCe0AAABMBQAAfAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9vcmRlcl9jYW5w
bGF5X2NhbnBsYXl0aHJvdWdoLXN0ZGVyci50eHRVVAkAA9lqplcnaKZXdXgLAAEE9QEAAARQAAAA
7ZFBSwNBDIXP9lfkaC+yW7tFBhHq9mChBUFEQXrIzqbToWOmzGQV/71Z8eZJ1570mJB8L3lv3jmA
GZSVqSozKYBec1mcn4VoMUASm+gQk3h2TxeT6azYwOWCms5dGcjE7ZpyRkcPXnY1CrmY3gycchfC
eDT/Mdmzlx55p3QfecnbaODxtgYbmcmK9nTmBYNvB6hkks/zV9E5nbjWpb0BXQw0CCyYpI689a5L
2F/74U98PgTqqxvkNlAyUKPdUQvKZmxUExq0e3U1D/vqPlPqPVt4K+YLW/MZnYwHKRwr92OS/7P+
O1l/h1z+IvkdUEsDBBQAAgAIAOt+Bkm52lk77QAAAMwGAAB1ABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL2V2ZW50X29yZGVyX2NhbnBsYXlfcGxheWluZy1zdGRlcnIudHh0VVQJAAPZaqZXKGimV3V4
CwABBPUBAAAEUAAAAO2UwUoDMRCGz/Yp5theZLd1iwQR6vagoCCIKEgPs9lpGhpnSjKr+PZmxZs3
VxFhjwkz3/z5QrLqHMASyspUlZmXQK+pLBbHQSwGiGojHSSqZ/d0Oj9ZFhs4W1PTuXMDibi9oZTQ
0YPXXY1KTuKbgSl3Icwmq2+TPXvtkXeZ7oWveCsGHm9rsMJMVvNernnB4NsBU/5/fv2Mfy3O5YqL
3LQ3kBsDDQIrRq2Ft951Efu0H37k+RCoX10it4GigRrtjloogBibPBMatPtsNQ071X2i2Dtbe6vm
Czvfz+RoNnr7A2+/9V5G8kj+ib/0HVBLAwQUAAIACADrfgZJfPnefOkAAAD+BAAAfwAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC9tZWRpYS1lbGVtZW50cy9ldmVudF9vcmRlcl9sb2FkZWRtZXRhZGF0YV9sb2FkZWRkYXRhLXN0
ZGVyci50eHRVVAkAA9lqplcoaKZXdXgLAAEE9QEAAARQAAAA7ZTBSgMxEEDP9ivmaC9lt3aLBBHq
9mChBUGKgniYzU7T0DhTklnFvzcr3rx1ES89Zph5M3lhsugcwBzKylSVmZZAH6ksriZBLAaIaiMd
Japn93I9nc2LV7hZUtO5WwOJuN1QSujoyeu+RiUn8dPAJXchjEeLk8mevfbIx0z3wiveiYHnhxqs
MJPVHMs57xh8O6BLIv0Zfy3O5Yy7XHQwkAsDDQIrRq2Fd951Eftpv/3I2zFQf7pHbgNFAzXaPbVQ
ADE2uSc0aA/Zahp2q22i2DtbeqvmFzu/z+hifPb2D97+al/O5FN/jy9QSwMEFAACAAgA634GSZMP
PYzvAAAADAYAAHgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfb3JkZXJfbG9hZHN0YXJ0
X3Byb2dyZXNzLXN0ZGVyci50eHRVVAkAA9pqplcpaKZXdXgLAAEE9QEAAARQAAAA7ZRBSwNBDIXP
9lfkaC+yXbtFBhHq9tCCgiCiID1kZ9Pp0GlSZrKK/95Z8eZJF0Ghx4Tke5n3YOadA5jBpDJVZcoS
6DVNivOzIBYDRLWRDhLVs3u+KKezYg2XC2o6d2UgEbe3lBI6evS6rVHJSXwzcMpdCOPR/Mdkz157
5H2me+EVb8TA010NVpjJau7lmRcMvh2gkkg/z78R5/LEdV7aGciLgQaBFaPWwhvvuoj9tR/+yP4Q
qK+WyG2gaKBGu6UWCiDGJmtCg3aXXU3DXvWQKPaeLbxV84Wd8xmdjAcp/Fbux0T+XiJH8v8mf+cv
fQdQSwMEFAACAAgA634GSd6fUPvvAAAADAYAAGUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZl
bnRfcGF1c2Utc3RkZXJyLnR4dFVUCQAD2mqmVypopld1eAsAAQT1AQAABFAAAADtlMFKA0EMhs/2
KXK0F9mu3SKDCHV7aEFBEFGQHrKz6XToNCkzWcW3d1a8edJFUOgxQ/L9mT8h884BzGBSmaoyZQn0
mibF+VkQiwGi2kgHierZPV+U01mxhssFNZ27MpCI21tKCR09et3WqOQkvhk45S6E8Wj+Y7Jnrz3y
PtO98Io3YuDprgYrzGQ1v+WcFwy+HaCSSD/bvxHncsZ1LtoZyIWBBoEVo9bCG++6iH23H/7I/hCo
j5bIbaBooEa7pRYKIMYma0KDdpddTcN+9ZAo9p4tvFXzhZ3nMzoZD1L4rbn/T/Jxi45b9HfJ37ml
71BLAwQUAAIACADsfgZJpVqHYukAAACkBAAAcAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVu
dF9wYXVzZV9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAkAA9tqplcqaKZXdXgLAAEE9QEAAARQAAAA
7ZNBSwNBDIXP9lfkaC+ybd0igwh1e1BQEEQUxEN2Np0OHZMyk1X892bFmzcXoQePCcn3Mu8xqz4A
LGFWu7p28wXQe5lVi5MkHhNk9Zn2kjVyeD6bny6rFzhfU9uHCweFuLulUjDQY9Rtg0pB8oeDY+5T
mk5WvyZHjjog740eha95Iw6e7hrwwkxerWczb5hiN0KlkH6ffyMh2MSlLe0c2GKiUWDFrI3wJoY+
43Dtlz/yuk80VFfIXaLsoEG/pQ4qIMbWNKFFvzNXy7hXPRTKg2fr6NX9YFs+k6PpKIW/yv0/kcNL
5BD++CdQSwMEFAACAAgA7H4GSTkorhDuAAAADAYAAGQAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMv
ZXZlbnRfcGxheS1zdGRlcnIudHh0VVQJAAPbaqZXK2imV3V4CwABBPUBAAAEUAAAAO2UQUsDQQyF
z/ZX5NheZNu6RQYptNtDCwqCiIJ4yM6m06HTTJnJKv57s+LNW5ee7DEh+V7mPZhF6wBmMC5NWZrJ
FOgzj4vpdYgWAySxiY4xiWf3dju5mRXvcLeiunVzA5m4eaCc0dGLl12FQi6mLwNDbkMYDRYnkz17
6ZBPSveRN7yNBl4fK7CRmaxoT2c+MPimh0om+T3/PjqnE0td2hvQxUC9wIJJqshb79qE3bU//sTD
MVBXrZGbQMlAhXZHDRRAjLVqQo12r67mfq96zpQ6z1beivnD1nwGV6NeCufK/ZzkS9b/J+sL+bS/
9BtQSwMEFAACAAgA7H4GSe8xpR7uAAAApAQAAG8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZl
bnRfcGxheV9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAkAA9xqplcraKZXdXgLAAEE9QEAAARQAAAA
7ZNPSwNBDMXP9lPkaC+y/bNFBhHq9tBChYKIgnjIzqbTodOkzGQtfntnxYt4kkXowWNC8nuZ95h5
6wBmMCpNWZrxBOiURsXkKojFAFFtpKNE9exersfTWfEKNwuqW3drIBE395QSOnryuqtQyUl8N3DJ
bQjDwfwbefoLsmevHfIh073wirdi4HlTgRVmspp7eeYNg296qCTSr/PX4lyeuMtLewN5MVAvsGLU
SnjrXRuxu/bTHzkcA3XVErkJFA1UaHfUQAHEWGdNqNHus6up36seE8XOs4W3an6wcz6Di2Evhb/K
/T+R80vkHP74B1BLAwQUAAIACADsfgZJtU8SxfAAAAAMBgAAZwAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9ldmVudF9wbGF5aW5nLXN0ZGVyci50eHRVVAkAA9xqplcsaKZXdXgLAAEE9QEAAARQAAAA
7ZTBSgNBDIbP9ilytBfZ1m6RQYS6PbTQgiCiIB6ys+l06JiUmazi2ztbevOki6DQY4bk+zN/Qmat
A5jCqDRlacYToPc0Ki4vglgMENVG2ktUz+75ajyZFi9wPae6dTcGEnGzppTQ0aPXbYVKTuKHgXNu
QxgOZj8me/baIe8z3QsveSMGnu4qsMJMVvNbznnD4JseKon02P5KnMsZt7loZyAXBuoFVoxaCW+8
ayN23R78kdd9oC5aIDeBooEK7ZYaKIAY66wJNdpddjX1+9VDoth5NvdWzRd2ns/gbNhL4bfm/j/J
py06bdHfJX/nln4CUEsDBBQAAgAIAO1+BkldAuNT8gAAAAwGAAByABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL2V2ZW50X3BsYXlpbmdfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAAPdaqZXLGimV3V4
CwABBPUBAAAEUAAAAO2UT0sDMRDFz/ZTzLG9yPbPFgki1O1BQUEQUZAeZrPTNDROSjKr+O2dFU96
Wvci0mPCzO+9vBmyah3AEqalKUszWwC95WkxPw3RYoAkNtEhJvHsns9mi2WxgfM11a27MJCJm1vK
GR09etlVKORiejcw5jaEyWj1a7JnLx3yXuk+8jVvo4GnuwpsZCYreqc1rxh8802l7OVfvuzfROe0
4lKb9ga0MdAgsGCSKvLWuzZh5/Yzn/hyCNSdrpCbQMlAhXZHDRRAjLVqQo12r6nmYa96yJS6zNbe
ivnB1vmMTiaDFPrM/f+Tj1t03KK/S+7zl34AUEsDBBQAAgAIAO1+BknqvXyP6gAAAEwFAABoABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3Byb2dyZXNzLXN0ZGVyci50eHRVVAkAA91qplcs
aKZXdXgLAAEE9QEAAARQAAAA7ZFBSwNBDIXP9lfkaC+yrW6RQYS6PSgoCCIK4iE7m06HjkmZySr+
e7PizZtL8aDHhOR7yXvLPgAsYFa7unbzGuitzKrjoyQeE2T1mXaSNXJ4Op2fLKpnOFtR24dzB4W4
u6FSMNBD1E2DSkHyu4ND7lOaTpY/JkeOOiDvjB6Fr3gtDh5vG/DCTF6tZzOvmGI3QqWQfp1/LSHY
xIUtbR3YYqJRYMWsjfA6hj7jcO2nP/KySzRUl8hdouygQb+hDiogxtY0oUW/NVfLuK/uC+XBs1X0
6r6xLZ/JwXSUwr5y3yf5P+u/k/VvkT8AUEsDBBQAAgAIAO1+Bkl2pB1T7QAAAGQFAABzABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3Byb2dyZXNzX25vYXV0b3BsYXktc3RkZXJyLnR4dFVU
CQAD3mqmVy1opld1eAsAAQT1AQAABFAAAADtk8FKAzEQhs/2KeZoL7Kt3UWCCHV7aKGCIKIgPcxm
p2lonJRkVvHtnRVvnnT1oHhMmPnmzxdm3jmACialKUszLYGe86Q4PQnRYoAkNtEhJvHsHs6ms6rY
wPmCms5dGMjE7RXljI7uvOxqFHIxvRg45i6E8Wj+ZbJnLz3yRuk+8oq30cD9dQ02MpMVvdOaJwy+
HTDl9+eX9/jr6JxWXGrT3oA2BhoEFkxSR9561yXs0775iY+HQP1pidwGSgZqtDtqoQBibHQmNGj3
ajUPe9VtptQ7W3gr5gNb/2d0NP739i3eqh/bl79O/syOvwJQSwMEFAACAAgA7X4GST8lChjuAAAA
DAYAAGoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfdGltZXVwZGF0ZS1zdGRlcnIudHh0
VVQJAAPeaqZXLWimV3V4CwABBPUBAAAEUAAAAO2UQUsDQQyFz/ZX5Ggvsq3dRYZSqNuDQgVBREF6
yM6m06FjUmayiv/eWfHmrUtP9piQfC/zHsyycwAVTEpTlmZaAX2mSXF9FcRigKg20kGienZvN9NZ
VWxgvqKmcwsDibh9oJTQ0YvXXY1KTuKXgUvuQhiPlkeTPXvtkU+Z7oXveSsGXh9rsMJMVnMvz3xg
8O0AlUT6e/5anMsTt3lpbyAvBhoEVoxaC2+96yL21/74I++HQH11h9wGigZqtDtqoQBibLImNGj3
2dU07FXPiWLv2cpbNX/YOZ/RxXiQwqlyPyX5nPX/yfpMPu4v/QZQSwMEFAACAAgA7n4GSQh7smPy
AAAAZgYAAHUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfdGltZXVwZGF0ZV9ub2F1dG9w
bGF5LXN0ZGVyci50eHRVVAkAA99qplcuaKZXdXgLAAEE9QEAAARQAAAA7ZRBSwNBDIXP9lfk2F5k
W91VBhHa7UFBQRBRKB6ys+l06JgpM1nFf29WvHnSpV7sMSH5XuY9mHnnACqYlqYszawCesvT4uQ4
RIsBkthEu5jEs1udz06r4hkultR07tJAJm5vKWd09OhlU6OQi+ndwJi7ECaj+R+Rz35A9uylR94r
3Ue+5nU08HRXg43MZEV7OvOKwbcDVDLJ1/k30TmdWOjS1oAuBhoEFkxSR1571yXsr/30J77sAvXV
FXIbKBmo0W6ohQKIsVFNaNBu1dU87FUPmVLv2dJbMd/Yms/oaDJIYV+575N8yPr/ZH0g/+4v/QBQ
SwMEFAACAAgA7n4GSXDdM1SEAAAAwAAAAGwAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRf
dm9sdW1lY2hhbmdlLXN0ZGVyci50eHRVVAkAA99qplcuaKZXdXgLAAEE9QEAAARQAAAAncy/CsIw
EIDxvU9xoy7SVlMliFDq4iAIDgriENMzHoQ7yR/Ftze+guvHx6/PDqCDRmmldLsEfMemns+8WOMh
JBvwKSERu8uqXXT1FdZbvGW30RCRxz3GaByeKD0Gk9BJ+GiYcPZ+WvV/y8SUfuSx6CS847toOB8G
sMKMNpVWnpfxNFZfUEsDBAoAAAAAAHh9BkkAAAAAAAAAAAAAAABaABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL2ludGVyZmFjZXMvVVQJAAMjaKZXSm2mV3V4CwABBPUBAAAEUAAAAFBLAwQKAAAAAAB4
fQZJAAAAAAAAAAAAAAAAZAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9pbnRlcmZhY2VzL1RleHRU
cmFjay9VVAkAAyNopldKbaZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAOl+BkmJhCyxywAAAN0B
AAB5ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2ludGVyZmFjZXMvVGV4dFRyYWNrL2FjdGl2ZUN1
ZXMtc3RkZXJyLnR4dFVUCQAD1WqmVyNopld1eAsAAQT1AQAABFAAAAClkDFvwjAQhefmV9xYligp
pC0WQqJhAImOFUPV4WIfxsI9I/sixL/HabsxVRnvSe97996qtwDPUDeqaVT9AnRJdTUtfdDoIYqO
dA5RHNvP16fZvPqCxZYPYanAB2uzDEkwSirLslj9G7WmrreZlUjeKSW0tPulvmXTSUE2ejJjwMNz
beCDs31EcYH3To5t+D57Gq4NsvEUFbSoj2SgAmLsciZ0qE/EJo1r9ZEoDnutnRZ1x1bwWDxMRiWw
+RvupxcK2RCvmcu995PiBlBLAwQUAAIACADpfgZJJxwPMYUAAADAAAAAdQAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy9pbnRlcmZhY2VzL1RleHRUcmFjay9hZGRDdWUtc3RkZXJyLnR4dFVUCQAD1Wqm
VyNopld1eAsAAQT1AQAABFAAAACdzD0KAjEQQOF+TzGlNrKrxp8gwrI2FoJgoSAWMTsbA2FGkoni
7Y1XsH08vjY7gAU0SiulmyXgOzX1bBLYmgBRbMQnR/HkrqvpfF3fYLPDe3ZbDQmpP2BKxuHZy6Mz
go7jR8OIcgjjqv1b9uTlR56K7pn2NLCGy7EDy0RopbTyvEzwffUFUEsDBBQAAgAIAO5+BkkwwkW6
3wAAAOQDAAB3ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL25ldHdvcmtTdGF0ZV9kdXJpbmdfbG9h
ZHN0YXJ0LXN0ZGVyci50eHRVVAkAA99qplcuaKZXdXgLAAEE9QEAAARQAAAA7ZExSwNBEIVr71dM
mTRyibkoiwjJpUhAQRBREIu53clmyToTducU/717YmeXlFoOvPc95r1F7wHmMGlM05jpJdBHntQX
51EsRkhqEx0kaWD/cjWdzetXuF5R1/sbA5n0jnJGT7fifVEsi2lvoBgjuWpxPFgxaSu8Db5PqEH4
KeiulbdDpOFaI7tIyUCLdkcOaiDGrmRCh3ZP7PIp4aSPmdKGt7IKVs0vtoFRdTY+LeG/t6MS2P0U
9/0XKnlJn4XLfYx/jRw46IB8KPSy7dC7gef7Fqwwkx32Lpp3jMFVX1BLAwQUAAIACADufgZJKV1v
XoQAAADAAAAAbgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9uZXR3b3JrU3RhdGVfaW5pdGlhbC1z
dGRlcnIudHh0VVQJAAPgaqZXL2imV3V4CwABBPUBAAAEUAAAAJ3MsQrCMBCA4b1PcaMu0lZTShCh
1MVBEBwUxCGmZwyEO0kuim9vfAXXn59vyA6gg0ZppXTbA75TUy8Xga0JEMVGfHIUT+7St6uuvsJ6
i7fsNhoS0rTHlIzDk5fHaAQdx4+GGeUQ5tXwt+zJy488Ft0z7ejOGs6HESwToZXSyvMywU/VF1BL
AwQUAAIACADufgZJShWaTOUAAABMBQAAcgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wYXVzZWRf
ZmFsc2VfZHVyaW5nX3BsYXktc3RkZXJyLnR4dFVUCQAD4GqmVy9opld1eAsAAQT1AQAABFAAAADt
kkFLA0EMhc/ur8hRL7Jt3VIGEer2oKAgiChID9mZdDp0mpSZrOK/d1a8eXMvCj0GXr5H8t6y9wBz
mDSmacx0AfSeJ/XsPIrFCEltooMkDexfF9OLeb2GyxV1vb8ykEnvKWf0dCfeF8V1WdoZKIuRXLX8
PVgxaSu8Cb5PqEH4Oei2lf0h0jDdILtIyUCLdksOaiDGrnhCh3ZH7PIYc9KnTOmWN7IKVs0PtoHT
6uRslAO778d93YVKXtJH4XIf4zjyMZG/lsiR/L/JgYMOyMdCL00fWmjg5aEFK8xkh/YXzRvG4KpP
UEsDBBQAAgAIAO5+BklS/8/j6gAAAKQEAAByABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3BhdXNl
ZF90cnVlX2R1cmluZ19wYXVzZS1zdGRlcnIudHh0VVQJAAPgaqZXL2imV3V4CwABBPUBAAAEUAAA
AO2TwUoDQQxAz/Yrcmwvsm3dUoYi1O1BoQVBREF6yM6m06FjUmayin/vrHjzpIuI0GNC8pJ5Q5at
A5jBuDRlaSZzoNc0LqbnQSwGiGojHSWqZ/c0n1zMii0sVlS37tJAIm42lBI6evC6r1DJSXwzMOQ2
hNFg+WOyZ68d8i7TvfAN78TA420FVpjJas7lmhcMvukxJZF+rr8W53LFVW46GMiNgXqBFaNWwjvv
2ojdth9+5PkYqIuukZtA0UCFdk8NFECMdZ4JNdpDtpr6veo+UeycrbxV84Wd/2dwNjp5+wNvv3Uv
/5H8nRt/B1BLAwQKAAAAAAB5fQZJAAAAAAAAAAAAAAAAagAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50
cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9VVAkAAyVopldKbaZXdXgLAAEE9QEAAARQAAAA
UEsDBBQAAgAIAOl+Bkl+/iYSEAEAAEYCAACRABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3BsYXlp
bmctdGhlLW1lZGlhLXJlc291cmNlL3BhdXNlLW1vdmUtdG8tb3RoZXItZG9jdW1lbnQtc3RkZXJy
LnR4dFVUCQAD1mqmVyRopld1eAsAAQT1AQAABFAAAAClkU9PwzAMxc/0U/jIDlQta7stQpO27gAS
SGjTxKHaIU2ctFpIpiQVfz497oALR+abLfn3np+bvGRlyfJ5WuXlAe6ooN6u1jtYUoEyQ+ie0cre
6i0a5AF3GBk02ftMScSZqhYFZgdYGyeOkEHHA1hnbz7RO/CoQLjBRpgmq0EDVPArB/gW8mya0ho3
4KPweHI+kkwzvy0WBVl5sMotGRinNY0hRO5jSNP0H6gNtoMmVsD4hCFwjY/f1LNtBrRoUF4CHs3V
zqpeD57H3tmXPna1ez0ZHLt7bqVBz6DmokNJQaHlLWlCy8WR8g2XXbUP6Me8Nr2g7/xlM7hOriYX
KVj5E9z5Lh5RO/9BXDsYM0m+AFBLAwQUAAIACADpfgZJ86jPvdsAAACsAgAAjwAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9wYXVzZS1tb3ZlLXdpdGhp
bi1kb2N1bWVudC1zdGRlcnIudHh0VVQJAAPWaqZXJGimV3V4CwABBPUBAAAEUAAAAM2RQUsDQQyF
z+2vyFEv0tWu1EGEuj1UUBBEFMRDdjadDp0mZSar+O/NijePi9BjQt6Xl5dlHwAuoapdXbtqAfRZ
qtnFWRKPCbL6TAfJGjm8Lc7nV/N3uF5R24cbB4W4e6BSMNBL1G2DSkHyl4MT7lM6nS6PkBw56oB8
MnoUvuONOHh9bMALM3m1ns18YIrdKP/6a/9eQrCJWxPtHJgw0SiwYtZGeBNDn3Fw+5OP7A+JhmqN
3CXKDhr0W+pgBsTY2k5o0e8s1TLuqudCechsFb26P2z7z3Tyn3//BlBLAwQUAAIACADqfgZJhRC1
neEAAACsAgAAjwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNv
dXJjZS9wYXVzZS1yZW1vdmUtZnJvbS1kb2N1bWVudC1zdGRlcnIudHh0VVQJAAPXaqZXJWimV3V4
CwABBPUBAAAEUAAAALWRQUsDQQyFz/ZX5NhepFu7YgcR6vagoCCIKIiH7Gw6HTomZSar+O/NijcP
govHhLzvJS/rPgCcQlW7unbVCui9VPOT4yQeE2T1mQ6SNXJ4PlssV8sXON9Q24cLB4W4u6VSMNBj
1F2DSkHyh4Mp9ynNJus/kyNHHZD3Ro/C17wVB093DXhhJq/Ws5k3TLEb4VJIv9e/kRBs4tJEewcm
TDQKrJi1Ed7G0Gcctv3KR14PiYbqCrlLlB006HfUwRyIsTVPaNHvLdUy7qqHQnnIbBO9uh9s+8/k
aDbK4b/+/hv5E1BLAwQUAAIACADqfgZJfN+/iIQAAADAAAAAgQAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9wbGF5YmFja1JhdGUtc3RkZXJyLnR4dFVU
CQAD12qmVyVopld1eAsAAQT1AQAABFAAAACdzL8KwjAQgPG9T3GjLmK1ERuKUOriIAgOCuIQ0zMe
hDvJH8W3N76C68fHr88OYAW10krpugV8x3q+nHmxxkNINuBTQiJ2l/WiaZsrdFu8ZbfREJHHPcZo
HJ4oPQaT0En4aJhw9n5a9X/LxJR+5LHoJLzju2g4Hwawwow2lVael/E0Vl9QSwMEFAACAAgA734G
STAVqgmHAAAAwAAAAHgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcHJlbG9hZF9yZWZsZWN0c19u
b25lX2F1dG9wbGF5LXN0ZGVyci50eHRVVAkAA+FqplcwaKZXdXgLAAEE9QEAAARQAAAAlcyxCsIw
EIDhvU9xoy7SVlNqEKHUxUEQHBTEIaZnDIQ7SS6Kb28dHV1/fr4uO4AGKqWV0nUL+EpVOZ8FtiZA
FBvxwVE8uXNbL5ryAqsNXrNba0hIww5TMg6PXu69EXQc3xomlEOYFt2PvPxD9uTlSx5G3TNt6cYa
TvseLBOhlbGNz9MEPxQfUEsDBBQAAgAIAO9+BkmSbSZ9yAAAAIwEAABzABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL3JlYWR5U3RhdGVfZHVyaW5nX2NhbnBsYXktc3RkZXJyLnR4dFVUCQAD4WqmVzBo
pld1eAsAAQT1AQAABFAAAADtkbFqAkEQhmt9iiljI3eaE11C4HIWEUwZUoQUc7vj3uI6K7tziG/v
Jtili4UBLQfm/z5m/rq3ADMoK1VVarIAOqSymI590Oghio60D1Ec28/55HFWfMHTktrePitIJG+U
ElpaB2vzxksObRXkoCczrP8OFozSBN4420cUF/jDSdeE3d7T9/SKbDxFBQ3qjgwUQIxtdkKLekts
0iVykvdEccWbsHRa1C+2gofhYHSRgc35cT93oZAN8Zi53Hv/X8n3rm+n62uRT1BLAwQUAAIACADv
fgZJE5W1fesAAAAMBgAAegAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeVN0YXRlX2R1cmlu
Z19jYW5wbGF5dGhyb3VnaC1zdGRlcnIudHh0VVQJAAPhaqZXMGimV3V4CwABBPUBAAAEUAAAAO2R
QUsDQQyFz/ZX5NheZFu7RQcp1O2hBQVBREE8ZGfT6dBpUmayiv/eWfHmzUVU9JiQfHl5b9E6gBmM
S1OWZnIG9JzGxclxEIsBotpIB4nq2T2cTqaz4hHOl1S3bm4gETdXlBI6uvO6rVDJSXwxMOQ2hNFg
8WmyZ68d8ibTvfCaN2Lg/roCK8xkNffyzBMG3/S48vv167v8S3EuT1zkpZ2BvBioF1gxaiW88a6N
2Kl980f2h0BdtUJuAkUDFdotNVAAMdb5JtRod9nV1O+r20Sx82zprZoP7JzP4Gj0I3P/SvJ/1n8n
6+8ivwJQSwMEFAACAAgA734GSUHnK5vvAAAADAYAAHYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMv
cmVhZHlTdGF0ZV9kdXJpbmdfbG9hZGVkZGF0YS1zdGRlcnIudHh0VVQJAAPiaqZXMWimV3V4CwAB
BPUBAAAEUAAAAO2RT0sDQQzFz/ZT5Ggvsv2zRQcR6vbQQgVBREE8ZGfT6dAxU2ayit/erHjzpKug
6DEh+eXlvXnrAGYwKk1ZmvEJ0FMeFZOjEC0GSGIT7WMSz+7ueDydFfdwuqC6dWcGMnFzQTmjoxsv
2wqFXEzPBg65DWE4mH+a7NlLh7xSuo+84k00cHtZgY3MZEV7OvOIwTc9rvx+/fImfx2d04lzXdoZ
0MVAvcCCSarIG+/ahJ3aV3/iwz5QVy2Rm0DJQIV2Sw0UQIy13oQa7U5dzf2+us6UOs8W3op5x9Z8
BgfDH5n7d5L/s/47WX+APCm+kPwCUEsDBBQAAgAIAO9+Bknwdc6V6QAAAGQFAAB6ABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVfZHVyaW5nX2xvYWRlZG1ldGFkYXRhLXN0ZGVyci50
eHRVVAkAA+JqplcxaKZXdXgLAAEE9QEAAARQAAAA7ZNBSwNBDIXP9lfk2F5ka7tFhlKo24NCBUFE
QXrIzqbTodNMmckq/nuz4s2be1nBY0Ly5c17zLp1AAuYlqYszawAes/TYnYZosUASWyic0zi2b1e
X80XxQ6WG6pbtzKQiZt7yhkdPXs5VCjkYvowMOY2hMlo/WuyZy8d8lHpPvId76OBl4cKbGQmK9rT
mTcMvulx5e/rl2/52+icTtzo0tGALgbqBRZMUkXee9cm7NR++RNP50BddYvcBEoGKrQHakDZjLXe
hBrtUV3N/V71lCl1nm28FfODrfmMLiaDzP0/keElMoQ//glQSwMEFAACAAgA734GSdp5TmXrAAAA
DAYAAHMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHlTdGF0ZV9kdXJpbmdfcGxheWluZy1z
dGRlcnIudHh0VVQJAAPiaqZXMmimV3V4CwABBPUBAAAEUAAAAO2UwUoDMRBAz/Yr5mgvZWu7RYII
dXuw0IIgRUE8zGanaWiclGRW8e+dFW/eXMXLHjPMvJm8MFm2DmAB09KUpZkVQG95WswmIVoMkMQm
OsUknt3T5cV8UTzD1Yrq1l0byMTNlnJGRw9eDhUKuZjeDZxzG8J4tPwx2bOXDnmvdB95zfto4PGu
AhuZyYrGNOcVg296dMkkX+NvonOacaNFRwNaGKgXWDBJFXnvXZuwm/bTT3w5BepOt8hNoGSgQnug
BpTNWGtPqNEe1Wrud6tdptQ5W3kr5htb32d0Nh68/YO3v9qXgTyQf+Mv/QBQSwMEFAACAAgA8H4G
SXLrPXaEAAAAwAAAAGwAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHlTdGF0ZV9pbml0aWFs
LXN0ZGVyci50eHRVVAkAA+NqplcyaKZXdXgLAAEE9QEAAARQAAAAncy/CsIwEIDxvU9xoy7SWlMk
iFDq4iAIDgriENNrPAh3kj+Kb298BdePj1+fHUAHjdJK6bYGfMembhderPEQkg34lJCI3XW9XHX1
DTY7vGe31RCRxwPGaByeKT0Gk9BJ+GiYcfZ+XvV/y8SUfuSp6CS850k0XI4DWGFGm0orz8t4Gqsv
UEsDBBQAAgAIAPB+Bkk8voCs1gAAAMICAACEABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3NyY19y
ZWZsZWN0c19hdHRyaWJ1dGVfbm90X3NvdXJjZV9lbGVtZW50cy1zdGRlcnIudHh0VVQJAAPjaqZX
MmimV3V4CwABBPUBAAAEUAAAANWQP0/DMBDFdz7FjXRIbacJpN4qqqoDA4rKVDG49qWx8J/Udvj8
HAozGxLolvfTeye9u7NoZdvKjVjzh/oNjqfTS4+3GXOBwV6PpUzfuLemR432A3vMUwwZn5RzF6Xf
JaTFMDBSnmjxoeEN3GNKMUEl6u2mW8FA+iskGXNRKzfGXGTXcc7G4h3L6FUoVmeG/oLGoKl0DAVD
YR6NVRU69ESZDTHenX/uTrif/XSwQbnX/nkX6AAfC+6MoYpZgloEiPpxzWkErVEW5uR+p2Tzjx/c
/NUHfwJQSwMECgAAAAAAeH0GSQAAAAAAAAAAAAAAAFUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMv
dHJhY2svVVQJAAMkaKZXSm2mV3V4CwABBPUBAAAEUAAAAFBLAwQKAAAAAAB4fQZJAAAAAAAAAAAA
AAAAYwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy90cmFjay90cmFjay1lbGVtZW50L1VUCQADJGim
V0ptpld1eAsAAQT1AQAABFAAAABQSwMEFAACAAgA6X4GSTxKEpa1AAAAgwEAAIIAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
bWVkaWEtZWxlbWVudHMvdHJhY2svdHJhY2stZWxlbWVudC90cmFjay1hcGktdGV4dHRyYWNrcy1z
dGRlcnIudHh0VVQJAAPWaqZXJGimV3V4CwABBPUBAAAEUAAAAKXQPQ+CMBAG4Fl+xY26EFBB0hgT
hEETHY2DcSjtURpqS9oS/74ljk6G8S55n/soRwGQQ5qRLCNpAfh2abKJlWFUgfXM4mCsl1o8ivU2
3z1hf9atORBQRojQBuep9S6O46j8m6qxGUWwHPorOkcFXr7qMYR6AiGokM+Bp+Uqo1spRku9NPou
fVeZ16Bwqk5Uc4WWQEVZhxwSQE2bMBMaynrU3M276ubQTv+qJfPkxyawjBar6ANQSwMEFAACAAgA
8H4GSfilJrO+AAAA7AEAAGMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdmlkZW9fMDA4LXN0ZGVy
ci50eHRVVAkAA+NqplcyaKZXdXgLAAEE9QEAAARQAAAAtZAxa8MwEIXn+FfcmC7FTmoTRCk4ztBC
O4YOIcNZuijCyslIZ0r/fdXQrVtMxgf3vo977WQBGqhqVddqXQF9papcP/qg0UMUHWkMURzbw2b1
1JRHeN5RP9kXBYnkg1JCS+/B2nyxzaVBQS56MkV7O1gwShf45OwUUVzgTyfnLlxGT7/pFdl4igo6
1GcyUAIx9tkJPeqB2KQ5cpJ9ovjGp7BzWtQ/toJlsXiYZWDzN9z1LxSyIX5nLk/e35P8A1BLAwQU
AAIACADwfgZJ5WmM5YQAAADAAAAAbAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy92aWRlb192b2x1
bWVfY2hlY2stc3RkZXJyLnR4dFVUCQAD42qmVzJopld1eAsAAQT1AQAABFAAAACdzL8KwjAQgPG9
T3GjLtJaUySIUOriIAgOCuIQ02s8CHeSP4pvb3wF14+PX58dQAeN0krptgF8x6ZuF16s8RCSDfiU
kIjddb1cdfUNNju8Z7fVEJHHA8ZoHJ4pPQaT0En4aJhx9n5e9X/LxJR+5KnoJLznSTRcjgNYYUab
SivPy3gaqy9QSwMECgAAAAAAeX0GSQAAAAAAAAAAAAAAAFIAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWF1ZGlvLWVs
ZW1lbnQvVVQJAAMlaKZXSm2mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACADqfgZJ8sxWFt8AAADQ
AgAAbgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC90aGUtYXVkaW8tZWxlbWVudC9hdWRpb19jb25zdHJ1Y3Rvci1zdGRlcnIu
dHh0VVQJAAPXaqZXJWimV3V4CwABBPUBAAAEUAAAANWQP08DMQzFdz6FRxiuSdqeuMtWUaEODOhU
poohTdxeRP4cicPnJ6djhgkJ5OU9+1n62SfRyraVol9tuv4VDsfj84DvBTPBxV4PRNOX3VszoEb7
gQPmKYaMD8q5s9JvEtIyMDDWfHXLHLZ8C7eYUkzQiHW/6e7gUvUckoy5qJUbYybZdZyzkbxjGb0K
ZHVm6M9oDJpGx0AYiNGIjSrGxgYd+rkTinM3p+/5q90XPz3aoNzL8LQL9QgfCXfGVMwsQS0CxPp+
xWuJulazUJL7NdCe/69H56R/wv8Tf545PwFQSwMECgAAAAAA6n4GSQAAAAAAAAAAAAAAAFMAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50L1VUCQAD12qmV0ptpld1eAsAAQT1AQAABFAAAABQSwME
FAACAAgA6n4GSZuV192EAAAAwAAAAHAAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50LzJkLmNh
bnZhcy5yZWFkb25seS1zdGRlcnIudHh0VVQJAAPXaqZX12qmV3V4CwABBPUBAAAEUAAAAJ3MsQrC
MBCA4b1PcaMuYtVUDSKUujgIgoOCOMT0GgPhTpKL4tsbX8H15+drswNooFZaKV2vAd+pns4nga0J
EMVGfHIUT+66mi2a5Q02O7xnt9WQkPoDpmQcnr08OiPoOH40jCiHMK7av2VPXn7kqeieaU8Da7gc
O7BMhFZKK8/LBN9XX1BLAwQKAAAAAAB4fQZJAAAAAAAAAAAAAAAAUgAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtZW1i
ZWQtZWxlbWVudC9VVAkAAyRopldKbaZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAHh9BklYkbAS
hAAAAMAAAABsABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L3RoZS1lbWJlZC1lbGVtZW50L2VtYmVkLWRpbWVuc2lvbi1zdGRl
cnIudHh0VVQJAAMkaKZXJGimV3V4CwABBPUBAAAEUAAAAJ3MsQrCMBCA4b1PcaMuYklqJYhQ6uIg
CA4K4hDTawyEO0kuim9vfQXXn5+vKx5gBXVjtDJ6DfjO9VItIjsbIYlL+OQkgfy1bRutbrDZ4b34
rYGMNBwwZ+vxHOTRW0HP6WNgRiXGedX9LQcK8iNPkx6Y9jSygcuxB8dE6GRq0/OyMQzVF1BLAwQK
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
YS9hdWRpby1kYXRhLXVybC1zdGRlcnIudHh0VVQJAAPraqZXN2imV3V4CwABBPUBAAAEUAAAAM3R
wUoEMQwG4LPzFDnqZZh1GdEiwjp7UFAQRBTEQ6bNdsvWZGkzim9vq948yVw8tjRfmj+ryQOcwKI3
fW+WZ0DvedEt2ygWIyS1ifaSNLB/Pj3uu+4Fzq95IxcGonhfriErJs1t2zarP1NrGidfrEx6Szmj
p5tv9bIU7QyUwkhuDlw/Nwhvgp8SahB+DLod5HUfqZ6ukF2kZGBAuyUHHRDjWHrCiHZH7PK8qR4y
pZrXOlg1v2wDh83B0awO7H6C+5oLlbykj+LyFOP/lAMHreR90csGajoGnu4GsMJMtm6lvHnDGFzz
CVBLAwQKAAAAAAD0fgZJAAAAAAAAAAAAAAAACgAcAG1lZGlhL21hYy9VVAkAA+xqpldKbaZXdXgL
AAEE9QEAAARQAAAAUEsDBBQAAgAIAPR+Bkko7PtTqwAAABQDAAAzABwAbWVkaWEvbWFjL2NvbnRy
b2xzLXBhbmVsLW5vdC1jbGlwcGVkLW91dC1zdGRlcnIudHh0VVQJAAPsaqZX7GqmV3V4CwABBPUB
AAAEUAAAAO2PsQrCMBRFd78iYx1s2mi0Cg4qCg6i0LFIeSYPjcZEXqLQv7fioB/g6HbudO6pcjmR
cjLI0iLv75mJeIXQOFWXGHfkb0ixYcEcHViLmiHRtJeLUSFZclmZ4xwCbg9nVHFJ5KleuwdYoyGi
7rLEfC+IjJf+TgoXoE7IF55wg9rAh3q5HIpUDDLeqqOPzQ0D31lokHgre1M9e/1LFbPGIRNi3O9U
/4h/xO8inlBLAwQKAAAAAACHfQZJAAAAAAAAAAAAAAAAEwAcAG1lZGlhL21lZGlhLXNvdXJjZS9V
VAkAAz5opldKbaZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAPd+Bkkq30epigAAAJsAAABIABwA
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1zdGFsbGVkLWhvbGRzLXNsZWVwLWFzc2Vy
dGlvbi1zdGRlcnIudHh0VVQJAAPyaqZXPmimV3V4CwABBPUBAAAEUAAAAA2JQQ6CMBAA775iP4Ap
pBDkpuFi4kmJF+NhaRdsUrZkCzH19TZzmcxUqmwK1RaqgbLu6rrTzbHVFfT7st6JLckgRK+20ieV
X5l5w3XmII5nMIE3CX5wC40YCSJtMCYw3hFnI4N7rufnA5fV02WfJpLexdVjumEigS9GQGvJwhYA
ISY2HwnsfiSHP1BLAwQUAAIACAAIfwZJhfAhE8IAAAAkAwAAKAAcAG1lZGlhL3NvdXJjZXMtZmFs
bGJhY2stY29kZWNzLXN0ZGVyci50eHRVVAkAAw9rpldbaKZXdXgLAAEE9QEAAARQAAAA7ZGxigIx
EIZrfYoptZHdO1YkiOCtxQlaHleIxWwyG4NxIsks4ttflOvsXOwsB+b/Pmb+ZWcBplBWqpqqsgK6
pLL4nPig0UMUHekcoji2u9lHVRR7mK+o6exCQSLZUkpoaROszRtfOXRUkIOezHD5PFgwSh24dbaL
KC7wr5NDHU5nT7fpG9l4igpq1AcyUAAxNtkJDeojsUl95CQ/ieKa27ByWtQDW8FoOBj3MrD5f9z9
LhSyIV4zlzvv+5HfjbyikT9QSwMEFAACAAgACH8GSdjg0muKAAAAgAEAADAAHABtZWRpYS9zdmct
YXMtaW1hZ2Utd2l0aC1tZWRpYS1ibG9ja2VkLXN0ZGVyci50eHRVVAkAAw9rpldcaKZXdXgLAAEE
9QEAAARQAAAAzc6xCgIxEATQ3q/YUhvJKTkkiHCcjYUgWCiIRcytcSFsJNko/r3xF7SxHYY30xUP
0EKjjW5NowGfuVHzaYjOBkjiEt5jEmJ/Wsy0UmdYrvFS/MpARh62mLP1eCC59VbQx/QyMOYSwmTU
fS0Tk3zIfdUp8oav0cBx14OLzOikZrXzsIGGH1b+4/8bUEsDBBQAAgAIAAh/BknPTinSkAAAAL0A
AAAhABwAbWVkaWEvdW5zdXBwb3J0ZWQtcnRzcC1zdGRlcnIudHh0VVQJAAMPa6ZXXGimV3V4CwAB
BPUBAAAEUAAAAG2OQQ6CMBQF957iX0BQoi7YVhESSQjCAZr2RZtgP7a/JN5eXblxNbOYxeRXTsFA
aXNHrjighXX6Z+vt/lBkxW6Td4GF5TUj5pW71cPQfakmBy+19naCVSkKP8b+8mkXZxEyQ+ZvoAK0
oEec2UccnZGKwxnS45kQpSTFabLkWciwXxCExqEhYWqb9kTfjZJWb1BLAwQUAAIACAAhfwZJ7Qx+
xL4AAADyBgAAKAAcAG1lZGlhL3ZpZGVvLXBvc3Rlci1iYWNrZ3JvdW5kLXN0ZGVyci50eHRVVAkA
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
DJwY0Em7tNj8oyceKzzsl+MiXVbDZ4f0hX2+yPIY/BTbEtwZaiMWvTlZHlbsRR0LFA1VO3KU8jwb
xYWsvbxjJ5m5PUSjRV4lO8OvZUKSP+2wXzvshuR+huXYMcdCZnyCSw7/G+MTnvlLzWQ+bod+TUms
ZvE1lw96SCmlfo1vY06Jg9s8ncCUdW1oDvVNllmJtkAUORyvE70dUIlfAKx8tRVgoLQZX3GvT7ei
TjtD0dSGLhfMjLuoVTMCLsaSUT9i5OEhP/dDAL4o2WFYdRJmjYc9o/wewIqzPXl0BiM0JwLsDKlG
mIat/WWOwBqkrA24OT6h87SdoTjm4sAaEOAe3NEOMrLM6GPpApQFmFP5lFEtTGJmkZmXyIQ6bv/s
WGQ10gK3nYB18sg3loGPGhSFymGfhjQYQ+8Z8c9nildMlbwzVK/7VNf02f8HUEsDBAoAAAAAALWA
BkkAAAAAAAAAAAAAAAAIABwAcmV0cmllcy9VVAkAA0ZtpldKbaZXdXgLAAEE9QEAAARQAAAAUEsD
BAoAAAAAADV+BkkAAAAAAAAAAAAAAAARABwAcmV0cmllcy9pbXBvcnRlZC9VVAkAA4VppldKbaZX
dXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAADV+BkkAAAAAAAAAAAAAAAAVABwAcmV0cmllcy9pbXBv
cnRlZC93M2MvVVQJAAOFaaZXSm2mV3V4CwABBPUBAAAEUAAAAFBLAwQKAAAAAAA1fgZJAAAAAAAA
AAAAAAAAKAAcAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9VVAkAA4Vp
pldKbaZXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAADV+BkkAAAAAAAAAAAAAAAAuABwAcmV0cmll
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL1VUCQADhWmmV0ptpld1eAsA
AQT1AQAABFAAAABQSwMECgAAAAAANX4GSQAAAAAAAAAAAAAAADIAHAByZXRyaWVzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL1VUCQADhWmmV0ptpld1eAsAAQT1AQAA
BFAAAABQSwMECgAAAAAANX4GSQAAAAAAAAAAAAAAADgAHAByZXRyaWVzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL1VUCQADhWmmV0ptpld1eAsAAQT1AQAA
BFAAAABQSwMEFAACAAgApoAGScqlhqI8AQAAkAUAAFMAHAByZXRyaWVzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4tYWN0dWFs
LnR4dFVUCQADKG2mV4Vppld1eAsAAQT1AQAABFAAAADVkk1OwzAQhfc5xWzKitr9k4BKFapKy6ZQ
RNQDGMclluKMZU8F3J5JQaGli7YBFiiWE40y3zy/58niPl3Mp3A3TdPx7XQIyzKqlQFFZJwnIIQC
VQbLxznkRD4OpSxQqyLHSMOrwaAvV4Z0LpW3MpiI66BNlIRe0CtdV7+SxXK06W31x63ejFdN4ErF
4NKGwm/m8F6T+PuTdaZxXdKoC6uAjjflDLxYymtpO8ouLzudLWVPKlotHWamHbmxjcE+21Lk5AoB
N+iULeM5+ICEGosIqszAY6AIbh0JnGKQSJLJiW6xpG7vQnT46X6XdMCs2qsawJUK8V+8Sh7GaQqz
CgtC7B/3Q9DWBKhGwnbbIaVNmadd4uOFHp/1Ecy9RHZMDCazwWgS/u3r3jS0ucGkv0imoYxfD7O5
HT/PP3kHUEsDBBQAAgAIAKaABkm05CY3kgEAAE4GAABRABwAcmV0cmllcy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLWRpZmYu
dHh0VVQJAAMobaZXKG2mV3V4CwABBPUBAAAEUAAAAN2STW/bMAyG7/kVvHgXV1Y+2rULUCzpku6w
bh1qdD0rMjMLkExDopHu34/OCqPtDvsoMASDBEogpIevXlEpBfoL+S5g0ivDRq/vSn2Hmw+OH5aL
zvlK36BHk1B78406VoyJVcTUeU46Ikcn911oKTJWejezeocb1XrDW4phfzzpLbKttWmd3pjkrA5U
oUomoKLovrpG4X2LVgAF3/Moz/MDkmYsd8bvhS0WoCZHryHvw2IxUu+uP5XXV2v4uC7L5fv1HG6b
ZLYIhhlDy8AEnkwFtzdXUDO3aa61J2t8TYnnb46PZ4/qi3LqohXNTG1f721/lB0159nJRTY93ROy
2TKbXsocOJLpSZLas2QVmsSBJ/sHokCyk9UrS13D5xPYRgoS5LGwc1wPMp+oPDsbj3/pUlFz8AWs
KBjXpCNoIzFZ8glMU0H/AwlClxiCEVAxyv+Vcy/37ADcgj/vNBE1mZ4WYxmT56J+q9EGzwaMZHrQ
/91nf+nbix07iC6T8XlZlnDZk6Eofn7xD02PikBfFUbfAVBLAwQUAAIACACmgAZJbNqz00UBAACo
BQAAVQAcAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
YmFzaWMvbW9kZS1zYW1lLW9yaWdpbi1leHBlY3RlZC50eHRVVAkAAyhtpleFaaZXdXgLAAEE9QEA
AARQAAAA1ZLLTsMwEEX3+YrZhBW1+xSlUoVKH2wKRUT9AOO4xFKcseypgL/HKSi0dEEaYIEcOdHI
c+bmXk9Xd8lqOYfbeZJMbuYjWBdebBQIImUsASHkKFJYPywhI7J+xHmOUuQZehpd9vs9vlEkMy6s
5k553DqpPCe0jF7oqjxKGotxPLiOuxc7QtybxN1FeCpOqJSkUNqxwjvQwl7xwvcHMUDiwexM4rag
cQc2Dk3YhFHwrCmrZB6oHA7b7T2Vj8JryQ2mquVDYwudftIFy8jkDGZohC78OViHhBJzD6JIwaIj
D2brCYwIIBZF0xOdC5I63QvWDqvzVVIt4yrfKkyolKD/5Vt0P0kSWJRYYOz4198F7U2AciTst32n
tCnztMtdX2j93GswjxI5MNGpVDslidnXzzvU0OYGk/4imYYyfj3M5nb8PP/oDVBLAwQUAAIACACm
gAZJ6g5fvo4IAADaIAAAWQAcAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi1wcmV0dHktZGlmZi5odG1sVVQJAAMo
baZXhWmmV3V4CwABBPUBAAAEUAAAAO1aaW/jRhL97l/RsOEYCExSp0eHrWDGljdAJgeiZPNx0SSb
Yo9JtpbdtORJ9r9v9UWRFCk5O5sJAmQ8Y1F9VNfx6lU1MbexSJPF2W1McAgfKREYBTHOORF3V4WI
nMkVDHPxkpDF2Syh2dM1mj1TTgUJ0a9nCP4IshNOSAKWY0FZNkMZy8hcTfksD0nu+EwIls5Qf7ND
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
t3RHuKUiLg2o6T+Z9HonIeHKl94uemApRIdfQxVggkGScgQtEZJw4ygtuABWBEGu8TWAH4JsP7ox
ARR1GhBm0VE0HIk0ewVsPisaPj34f5FYV3j7amGmzdrfzR48hiv7abCcBMrgFRgZdGPks9r8f2bM
4Z/AmADC/uCN24OffhOEv5cwy5QpJcKIlPk3X/5xfDn807HwyaH/my3/Z7YcvQIho9ez5acpM36F
MuPPpczNK5S56Vbmh7erFXqUCEOue4h+jc0K2JBEH/oUDDU+1KUEmnz1Xxr+C1BLAwQUAAIACACm
gAZJajTvMkEBAACeBQAAWgAcAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi13b3JrZXItYWN0dWFsLnR4dFVUCQAD
KG2mV4Vppld1eAsAAQT1AQAABFAAAADVkstOwzAQRff5itmUFbX7kiiVKhSVlk2hiKgfYByXWMQZ
y56q8Pc4BYU+Fk0DLFAsJxplzlzf68niIVnMp3A/TZL4bjqCZeHFSoEgUsYSEEKOIoXl0xwyIutH
nOcoRZ6hp9H1YNDnK0Uy48Jq7pTHtZPKc0LL6I1uyl9JYzHe9rb6cas3C6sihErJCKUtJbwDJ+wV
KXx/sS4krgsad2Hl0IRNGAUbTVklbU/ZcNjp7Ch7Fl5LbjBVbR8a2+j0iy7aG3SvyrGMTM7gFo3Q
hb8E65BQYu5BFClYdOTBrD2BEYHHomhypmlBWbd3xTrh6R4qO+FZZVkFCJUS8c8six7jJIFZSQfG
jk/9qWtnEJSTYbftlOCmzPOudH2h9SOvwTwKZs9Ep1LtlCRm37+vT0ObG0z6i2Qayvj1MJvb8fP8
ow9QSwMEFAACAAgApoAGSQ51kDuXAQAAeAYAAFgAHAByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4td29ya2VyLWRp
ZmYudHh0VVQJAAMobaZXKG2mV3V4CwABBPUBAAAEUAAAAOWSTW/bMAyG7/kVvHgXV1Y+2rULUCzp
ku6wbh1qdD0rMjMLk0xDopHu35fOCqPbLt0KDAEGCZRByA9fvqJSCvQX8l3ApFeGjV7flfoONx8c
Px4XnfOVvkGPJqH25jt1rBgTq4ip85x0RI5O/nehpchY6d3M6h1uVOsNbymG/fWkt8i21qZ1emOS
szpQhSqZgIqi++oataP4DaPC+xatcAq+51Ge54en0FjujN/rWyxATY5eQ96HxWKk3l1/Kq+v1vBx
XZbL9+s53DbJbBEMM4aWgQk8mQpub66gZm7TXGtP1viaEs/fHB/PnsiQBqiLVqQztX29t/1VdtSc
ZycX2fR0T8hmy2x6KXvgSKYnSWrPklNoEgeefD8SBZKdrF5Z6ho+n8A2UpAgPcPOcT3I/Enl2dl4
/FyzipqDL2BFwbgmHUEbicmST2CaCvr3SBC6xBCM8IpR/q8MfLl1h2Ma/PncibbJ9LQYy5r8qu1Z
YzdYN2Ak04P+i6n7S/tebNwhzZysz8uyhMu+ABTF743/kPakFvTFYfQAUEsDBBQAAgAIAKaABknp
cynxSgEAALYFAABcABwAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLXdvcmtlci1leHBlY3RlZC50eHRVVAkAAyht
pleFaaZXdXgLAAEE9QEAAARQAAAA1ZLLTsMwEEX3+YrZhBW1+1RLpQqVPtgUioj6AcZxiUWcieyp
Cn+PU1Da0gVpgAWyZVsj+8zVvZ4s76PlYgZ3syga386GsMqcWCsQRMrkBISQoohh9biAhCh3Q85T
lCJN0NHwqtvt8LUimXCRa26Vw42VynHCnNErXRdXSWM2Cns3Ybu/I4Sdcdie+1lyfKUg+dKO5XdP
82vJ8+dPooeEvemFxE1GoxasLRq/CKNgqykpZR6pHAyazQOVT8JpyQ3GquH8wwZa/ayzxhbti7Is
IZMymKIROnOXkFsklJg6EFkMOVpyYDaOwAjPY0EwOdNAr6zV7rOmH62vyir5V9pXYnylAP1L+4KH
cRTBvKADY6cOfOg6aARFZzh89p3guszzvnp1odXjr8A8CebIRKtibZUklr/tv1JNm2t0+otkasr4
9TDr2/Hz/IN3UEsDBBQAAgAIAKaABkkh7G1KkwgAAP0gAABgABwAcmV0cmllcy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLXdv
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
5JNjPo6XsyMk58P7l8vzhzLM9+f8qyyFavv+ckKp99lfXz5dP/+6fY7TUipX/yt9ujiOB/qWhjI3
7+DTh4dPn/BWVfJVVnpaCFX62m+YsGkE5zsz3YmkrHFRJLFNuTTSCt03fqOGrBWz7RDj6T91mybk
GHUTannAPcduv//t5fntUrj06fL8q8ikOGNS+ebz5afLK6sOpgFbkGBGDDt0U/gufbT/gsQQY2aL
bvaF36I2uunl4qr0IoccMWoUsP8NCn1KVG77fs44IEH852YbZrM9YXPOUGz1jCO9yks6Qn4kLx6+
8FtMDrnOxG6HG15fTkmlGf68u9Qr7tvebfJvv33/tpy43hZX4sPDtysbTvUtBrwkG7iyEr+Xq/IP
H6+frjd3++3laTmPfnt4ZXiWvxQPYdnDl+qHPj68XR/ZD4XujmrJN9GubOa3bfNTbhz2UGA/m8f8
fx9ue/s6XcU0F1z8lPr0JORYh867fpFrj2easy34uhVlvM0hC3/EM8GaPL5u+GLX4xHPNPdb8L7H
u25f6PGGp78mRZf5Z68nTcbn6a8PMwT6+fF9N77LFzQT/hl+/NCNv6S066gm/Pc8/13DL3f9Ok74
xzSHzvhO/ss1rk6T8Znmihnf0V9eL7kJ/wLPP7/hyeRrlAle8/rjTvGfx4eD/s3w/Przbf2RylZi
Jj/Av9jJP598JuMzzUHz+u3Wf3Z1Z/IjHl9fU5X5p3ymm9DP639NxWrjx9n64/XP2xPzJ55/vudf
bg4y0z9+/Xh3Qn81zz/X8c/lOhQz+2H58Tv+OWr7wih/Hm8P63+mP/z8bdjbv5n94Nev69bvMn+a
zV/x68928y9HITPB8/bTduuf8uX+RP8UT7/t9Udx+yevv9ZP5J/dls+3A/GHz5eH93ywvrwvoau3
D+VvHx6XQPjzp3xSZn0G227R7RIKsDUssgQzfnp4veZYxKet9Sj/nc73WJzUtUBHDiB/fL08/COj
2v/88PD9/eXDl4enzx/+8fD88MGwAbz1piZu7ofZffrD08vLzY3ePsZ+qp5hUvYmlyOI8vtPFbJ+
/XZzKN94kkIjafGOtNdzkr693lj3y4X/UvWN8pdSfieWmC+9vL0Ln+r4tOSD6OT2n3p7f70+vi+X
ErfzwdeH13/wX6ubVplit+nxXP/geL7HxnebjxcH0p5fXr8+PH14vJ3vL0tol/h5+k6Ii8OsiJnn
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
AAAAAAAAAAAUABgAAAAAAAAAEADtQSQOAwBjb21wb3NpdGluZy9yZWdpb25zL1VUBQADyWemV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIALd+BkmLj5oCrAAAABQDAABFABgAAAAAAAEAAACkgXIO
AwBjb21wb3NpdGluZy9yZWdpb25zL3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0
aW5nLXN0ZGVyci50eHRVVAUAA3lqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAC6fgZJP9Bs
basAAAAUAwAAPAAYAAAAAAABAAAApIGdDwMAY29tcG9zaXRpbmcvc2hvdy1jb21wb3NpdGVkLWlm
cmFtZS1vbi1iYWNrLWJ1dHRvbi1zdGRlcnIudHh0VVQFAAOAaqZXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgAAAAAASH0GSQAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1BvhADAGNvbXBvc2l0aW5nL3Zp
ZGVvL1VUBQADyGemV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAEd9Bkk4idkWhAABAFggAQAj
ABgAAAAAAAAAAACkgQoRAwBjb21wb3NpdGluZy92aWRlby9wb3N0ZXItYWN0dWFsLnBuZ1VUBQAD
xmemV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAEd9Bkm/XnIhdwAAAIYIAAAhABgAAAAAAAAA
AACkgesRBABjb21wb3NpdGluZy92aWRlby9wb3N0ZXItZGlmZi5wbmdVVAUAA8Znpld1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACABHfQZJZ8QkCIkFAAAOEgAAIwAYAAAAAAABAAAApIG9EgQAY29t
cG9zaXRpbmcvdmlkZW8vcG9zdGVyLWRpZmZzLmh0bWxVVAUAA8Znpld1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACABHfQZJrMJPXAwBAAD9AQAAJgAYAAAAAAABAAAApIGjGAQAY29tcG9zaXRpbmcv
dmlkZW8vcG9zdGVyLWV4cGVjdGVkLmh0bWxVVAUAA8Znpld1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACABHfQZJOmw5uqYAAQCAIAEAJQAYAAAAAAAAAAAApIEPGgQAY29tcG9zaXRpbmcvdmlkZW8v
cG9zdGVyLWV4cGVjdGVkLnBuZ1VUBQADxmemV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIALV+
BkmE9V4ArgAAAN4DAAAwABgAAAAAAAEAAACkgRQbBQBjb21wb3NpdGluZy92aWRlby92aWRlby1i
b3JkZXItcmFkaXVzLXN0ZGVyci50eHRVVAUAA3Zqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CAC2fgZJjTSSc9MAAADQCgAAMgAYAAAAAAABAAAApIEsHAUAY29tcG9zaXRpbmcvdmlkZW8vdmlk
ZW8tY2xpcC1jaGFuZ2Utc3JjLXN0ZGVyci50eHRVVAUAA3hqpld1eAsAAQT1AQAABFAAAABQSwEC
HgMKAAAAAAC2fgZJAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UFrHQUAY3NzMy9VVAUAA3dqpld1
eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABIfQZJAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UGq
HQUAY3NzMy9ibGVuZGluZy9VVAUAA8dnpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABIfQZJ
uRoknq4AAADeAwAASwAYAAAAAAABAAAApIHyHQUAY3NzMy9ibGVuZGluZy9iYWNrZ3JvdW5kLWJs
ZW5kLW1vZGUtYmFja2dyb3VuZC1hdHRhY2hlbWVudC1maXhlZC1zdGRlcnIudHh0VVQFAAPHZ6ZX
dXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAtn4GSQAAAAAAAAAAAAAAAAoAGAAAAAAAAAAQAO1B
JR8FAGNzczMvY2FsYy9VVAUAA3dqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAC2fgZJC9oz
oK4AAADeAwAAMAAYAAAAAAABAAAApIFpHwUAY3NzMy9jYWxjL2JhY2tncm91bmQtcG9zaXRpb24t
cGFyc2luZy1zdGRlcnIudHh0VVQFAAN3aqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAS30G
SQAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BgSAFAGRpc3BsYXlsaXN0cy9VVAUAA81npld1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACAC5fgZJo1f96FAAAACOAAAAMgAYAAAAAAABAAAApIHIIAUA
ZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy10cmFuc2Zvcm1zLXN0ZGVyci50eHRVVAUAA31q
pld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAC5fgZJ8paV1UcAAABJAAAAKQAYAAAAAAABAAAA
pIGEIQUAZGlzcGxheWxpc3RzL2xheWVyLWRpc3BheS1saXN0LXN0ZGVyci50eHRVVAUAA31qpld1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAOgAZJyguHooYNAABedAAADQAYAAAAAAABAAAApIEu
IgUAZXJyb3JfbG9nLnR4dFVUBQADDGymV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAGF9BkkA
AAAAAAAAAAAAAAAFABgAAAAAAAAAEADtQfsvBQBmYXN0L1VUBQAD9memV3V4CwABBPUBAAAEUAAA
AFBLAQIeAwoAAAAAAMV+BkkAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQTowBQBmYXN0L2NhbnZh
cy9VVAUAA5Jqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADFfgZJUsPcCa0AAADeAwAATAAY
AAAAAAABAAAApIGAMAUAZmFzdC9jYW52YXMvY2FudmFzLWNzcy1zaXplLWFmdGVyLWhlaWdodC1j
aGFuZ2Utd2l0aC1kaXNwbGF5LWZsZXgtc3RkZXJyLnR4dFVUBQADkmqmV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIAMZ+Bklag3quhgAAABoBAAAmABgAAAAAAAEAAACkgbMxBQBmYXN0L2NhbnZh
cy9jYW52YXMtbGluZURhc2gtc3RkZXJyLnR4dFVUBQADlGqmV3V4CwABBPUBAAAEUAAAAFBLAQIe
AwoAAAAAAGJ9BkkAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQZkyBQBmYXN0L2ltYWdlcy9VVAUA
A/dnpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAIAAADOfgZJUaeCGDEAAAAxAAAALQAYAAAAAAAB
AAAApIHfMgUAZmFzdC9pbWFnZXMvbGFyZ2Utc2l6ZS1pbWFnZS1jcmFzaC1zdGRlcnIudHh0VVQF
AAOkaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAz34GSSGPvTgyAAAAMwAAACwAGAAAAAAA
AQAAAKSBdzMFAGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS1jcm9wLWJveC1zdGRlcnIudHh0VVQF
AAOmaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAYn0GSQAAAAAAAAAAAAAAAAkAGAAAAAAA
AAAQAO1BDzQFAGZhc3QveHNsL1VUBQAD92emV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAM9+
Bkly/WXyhQAAAOkAAAAlABgAAAAAAAEAAACkgVI0BQBmYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRv
Yy1zdGRlcnIudHh0VVQFAAOlaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAz34GSc4JKAKN
AAAA8AAAACcAGAAAAAAAAQAAAKSBNjUFAGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3Rk
ZXJyLnR4dFVUBQADpmqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAM9+BknPj2YOUAAAAKAA
AAAkABgAAAAAAAEAAACkgSQ2BQBmYXN0L3hzbC94c2x0LWNvbnRlbnRUeXBlLXN0ZGVyci50eHRV
VAUAA6Zqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADPfgZJgUp3rUsAAACsAAAANAAYAAAA
AAABAAAApIHSNgUAZmFzdC94c2wveHNsdC10cmFuc2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3Rk
ZXJyLnR4dFVUBQADpmqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIALaABkl9DRleMgIAAFYG
AAARABgAAAAAAAEAAACkgYs3BQBmdWxsX3Jlc3VsdHMuanNvblVUBQADSG2mV3V4CwABBPUBAAAE
UAAAAFBLAQIeAwoAAAAAAGR9BkkAAAAAAAAAAAAAAAAFABgAAAAAAAAAEADtQQg6BQBodHRwL1VU
BQAD/GemV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAANR+BkkAAAAAAAAAAAAAAAALABgAAAAA
AAAAEADtQUc6BQBodHRwL3Rlc3RzL1VUBQADsGqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAA
AGd9BkkAAAAAAAAAAAAAAAARABgAAAAAAAAAEADtQYw6BQBodHRwL3Rlc3RzL2NhY2hlL1VUBQAD
AWimV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANN+BkkNRUOi7wAAAIkEAAAwABgAAAAAAAEA
AACkgdc6BQBodHRwL3Rlc3RzL2NhY2hlL21lbW9yeS1jYWNoZS1wcnVuaW5nLXN0ZGVyci50eHRV
VAUAA65qpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADUfgZJTjHskIQAAADAAAAAPQAYAAAA
AAABAAAApIEwPAUAaHR0cC90ZXN0cy9jYWNoZS9uZXR3b3JrLWVycm9yLWR1cmluZy1yZXZhbGlk
YXRpb24tc3RkZXJyLnR4dFVUBQADr2qmV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAGR9BkkA
AAAAAAAAAAAAAAASABgAAAAAAAAAEADtQSs9BQBodHRwL3Rlc3RzL2NhbnZhcy9VVAUAA/xnpld1
eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABkfQZJAAAAAAAAAAAAAAAAGAAYAAAAAAAAABAA7UF3
PQUAaHR0cC90ZXN0cy9jYW52YXMvd2ViZ2wvVVQFAAP8Z6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgA0n4GSQHTSmDMAAAANwIAADsAGAAAAAAAAQAAAKSByT0FAGh0dHAvdGVzdHMvY2FudmFz
L3dlYmdsL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1zdGRlcnIudHh0VVQFAAOraqZXdXgLAAEE
9QEAAARQAAAAUEsBAh4DCgAAAAAA0n4GSQAAAAAAAAAAAAAAABYAGAAAAAAAAAAQAO1BCj8FAGh0
dHAvdGVzdHMvZnVsbHNjcmVlbi9VVAUAA6xqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADS
fgZJT75Wi4QAAADAAAAAQwAYAAAAAAABAAAApIFaPwUAaHR0cC90ZXN0cy9mdWxsc2NyZWVuL2Z1
bGxzY3JlZW5lbGVtZW50LWRpZmZlcmVudC1vcmlnaW4tc3RkZXJyLnR4dFVUBQADrGqmV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAwoAAAAAAGV9BkkAAAAAAAAAAAAAAAATABgAAAAAAAAAEADtQVtABQBo
dHRwL3Rlc3RzL2hpc3RvcnkvVVQFAAP9Z6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAZX0G
STDV1zyEAAAAwAAAAEIAGAAAAAAAAQAAAKSBqEAFAGh0dHAvdGVzdHMvaGlzdG9yeS9iYWNrLWR1
cmluZy1vbmxvYWQtdHJpZ2dlcmVkLWJ5LWJhY2stc3RkZXJyLnR4dFVUBQAD/WemV3V4CwABBPUB
AAAEUAAAAFBLAQIeAwoAAAAAAHJ9BkkAAAAAAAAAAAAAAAARABgAAAAAAAAAEADtQahBBQBodHRw
L3Rlc3RzL21lZGlhL1VUBQADGGimV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAGd9BkkAAAAA
AAAAAAAAAAAaABgAAAAAAAAAEADtQfNBBQBodHRwL3Rlc3RzL21lZGlhL2NsZWFya2V5L1VUBQAD
AWimV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANR+Bkk0Yh0sTwEAAH8DAAA5ABgAAAAAAAEA
AACkgUdCBQBodHRwL3Rlc3RzL21lZGlhL2NsZWFya2V5L2NsZWFyLWtleS1obHMtYWVzMTI4LXN0
ZGVyci50eHRVVAUAA7Bqpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABpfQZJAAAAAAAAAAAA
AAAAFQAYAAAAAAAAABAA7UEJRAUAaHR0cC90ZXN0cy9tZWRpYS9obHMvVVQFAAMFaKZXdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgA1H4GSXNGDrm7AQAA0AQAAEAAGAAAAAAAAQAAAKSBWEQFAGh0
dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1hY2Nlc3NpYmxpdHktZGVzY3JpYmVzLXZpZGVvLXN0ZGVy
ci50eHRVVAUAA7Bqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADVfgZJbqXrGMcBAABFBQAA
OgAYAAAAAAABAAAApIGNRgUAaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLWF1ZGlvLXRyYWNrcy1o
YXMtYXVkaW8tc3RkZXJyLnR4dFVUBQADsmqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANV+
BklpoQHNxwEAAJ8FAABBABgAAAAAAAEAAACkgchIBQBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMt
YXVkaW8tdHJhY2tzLWxvY2FsZS1zZWxlY3Rpb24tc3RkZXJyLnR4dFVUBQADsmqmV3V4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIANV+BkmSFGfqyAEAAEUFAAAwABgAAAAAAAEAAACkgQpLBQBodHRw
L3Rlc3RzL21lZGlhL2hscy9obHMtYXVkaW8tdHJhY2tzLXN0ZGVyci50eHRVVAUAA7Jqpld1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACADWfgZJIkGZGCMBAADeAwAALAAYAAAAAAABAAAApIE8TQUA
aHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLXByb2dyZXNzLXN0ZGVyci50eHRVVAUAA7Nqpld1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACADWfgZJhDAMxywBAACEAwAAMAAYAAAAAAABAAAApIHFTgUA
aHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLXZpZGVvLXJlc2l6ZS1zdGRlcnIudHh0VVQFAAOzaqZX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA1n4GSW+gVnZ0AQAAKgYAADoAGAAAAAAAAQAAAKSB
W1AFAGh0dHAvdGVzdHMvbWVkaWEvaGxzL3ZpZGVvLWNvbnRyb2xzLWxpdmUtc3RyZWFtLXN0ZGVy
ci50eHRVVAUAA7Nqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADUfgZJBo/T1RYBAADAAgAA
MgAYAAAAAAABAAAApIFDUgUAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1yZWZlcmVy
LXN0ZGVyci50eHRVVAUAA7Bqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADVfgZJQvOT+zEB
AAA0AwAAKgAYAAAAAAABAAAApIHFUwUAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1z
dGRlcnIudHh0VVQFAAOyaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA1n4GSRhCEiXoAAAA
xgMAADkAGAAAAAAAAQAAAKSBWlUFAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtcGxheS1zdHJlYW0t
Y2h1bmtlZC1pY3ktc3RkZXJyLnR4dFVUBQADtGqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAA
AHV9BkkAAAAAAAAAAAAAAAAeABgAAAAAAAAAEADtQbVWBQBodHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9VVAUAAx5opld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADZfgZJFLrvJUwBAACX
BAAAQgAYAAAAAAABAAAApIENVwUAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFz
b3VyY2UtYXBwZW5kLWJ1ZmZlci1zdGRlcnIudHh0VVQFAAO6aqZXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgA2n4GSWDJFbU8AQAAegMAAFAAGAAAAAAAAQAAAKSB1VgFAGh0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS1z
dGRlcnIudHh0VVQFAAO8aqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA234GSb/3i907AQAA
egMAAFIAGAAAAAAAAQAAAKSBm1oFAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVyYXRlLXN0ZGVyci50eHRVVAUAA75qpld1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADhfgZJQ/8qfIsAAACbAAAAOQAYAAAAAAABAAAApIFi
XAUAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcGxheS1zdGRlcnIu
dHh0VVQFAAPGaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA434GSbWuisyoAAAABwMAADsA
GAAAAAAAAQAAAKSBYF0FAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LXJlbW92ZS1zdGRlcnIudHh0VVQFAAPJaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA5X4G
SaDCga2hAAAA0QEAAEYAGAAAAAAAAQAAAKSBfV4FAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhc291cmNlLXNvdXJjZWJ1ZmZlci1tb2RlLXN0ZGVyci50eHRVVAUAA81qpld1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACADWfgZJm1307e0AAABfAQAALQAYAAAAAAABAAAApIGeXwUA
aHR0cC90ZXN0cy9tZWRpYS9wZGYtc2VydmVkLWFzLXBkZi1zdGRlcnIudHh0VVQFAAO0aqZXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgA134GSUi+phDAAAAAkgEAAC8AGAAAAAAAAQAAAKSB8mAF
AGh0dHAvdGVzdHMvbWVkaWEvcmVsb2FkLWFmdGVyLWRpYWxvZy1zdGRlcnIudHh0VVQFAAO1aqZX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA134GSUfXspJHAQAAdAIAAC8AGAAAAAAAAQAAAKSB
G2IFAGh0dHAvdGVzdHMvbWVkaWEvdGV4dC1zZXJ2ZWQtYXMtdGV4dC1zdGRlcnIudHh0VVQFAAO1
aqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA134GSd799NsJAQAAeAMAADYAGAAAAAAAAQAA
AKSBy2MFAGh0dHAvdGVzdHMvbWVkaWEvdHJhY2staW4tYmFuZC1obHMtbWV0YWRhdGEtc3RkZXJy
LnR4dFVUBQADtmqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANx+BkmLpMk/3QEAAH4IAAAm
ABgAAAAAAAEAAACkgURlBQBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWF1dGgtc3RkZXJyLnR4dFVU
BQADv2qmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAN1+BkkLo4gALgEAANsCAAAtABgAAAAA
AAEAAACkgYFnBQBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWVycm9yLWFib3J0LXN0ZGVyci50eHRV
VAUAA8Fqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADdfgZJm69KshgBAAA9AgAANgAYAAAA
AAABAAAApIEWaQUAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1lcnJvci1kb2VzLW5vdC1leGlzdC1z
dGRlcnIudHh0VVQFAAPCaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA4H4GSVGumffFAAAA
JAMAACwAGAAAAAAAAQAAAKSBnmoFAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tbG9hZC10d2ljZS1z
dGRlcnIudHh0VVQFAAPDaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA4H4GSQVizfDqAAAA
bAMAAC8AGAAAAAAAAQAAAKSByWsFAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1wcm9ncmVz
cy1zdGRlcnIudHh0VVQFAAPEaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA4n4GSW2EPiOE
AAAAwAAAAD0AGAAAAAAAAQAAAKSBHG0FAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1zdGFs
bC1iZWZvcmUtbWV0YS1kYXRhLXN0ZGVyci50eHRVVAUAA8dqpld1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACADifgZJhkTJBrsAAACSAQAAKwAYAAAAAAABAAAApIEXbgUAaHR0cC90ZXN0cy9tZWRp
YS92aWRlby1xdWVyeS11cmwtc3RkZXJyLnR4dFVUBQADx2qmV3V4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIAOJ+BklBOVWp6wAAAFgFAAAqABgAAAAAAAEAAACkgTdvBQBodHRwL3Rlc3RzL21lZGlh
L3ZpZGVvLXJlZGlyZWN0LXN0ZGVyci50eHRVVAUAA8hqpld1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACADifgZJrdwM3t4AAABSAgAAKwAYAAAAAAABAAAApIGGcAUAaHR0cC90ZXN0cy9tZWRpYS92
aWRlby11c2VyYWdlbnQtc3RkZXJyLnR4dFVUBQADyGqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoA
AAAAAIB9BkkAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQclxBQBodHRwL3Rlc3RzL21pc2MvVVQF
AAMwaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA234GSZwxLVPDAAAA/gAAAD8AGAAAAAAA
AQAAAKSBE3IFAGh0dHAvdGVzdHMvbWlzYy9kZWxldGUtZnJhbWUtZHVyaW5nLXJlYWR5c3RhdGVj
aGFuZ2Utc3RkZXJyLnR4dFVUBQADvmqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANt+Bknp
JdRzxAAAAP4AAABbABgAAAAAAAEAAACkgU9zBQBodHRwL3Rlc3RzL21pc2MvZGVsZXRlLWZyYW1l
LWR1cmluZy1yZWFkeXN0YXRlY2hhbmdlLXdpdGgtZ2MtYWZ0ZXItdmlkZW8tcmVtb3ZhbC1zdGRl
cnIudHh0VVQFAAO9aqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA734GSRU1NZJ6AAAAvAAA
ACoAGAAAAAAAAQAAAKSBqHQFAGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJy
LnR4dFVUBQAD4WqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAANR+BkkAAAAAAAAAAAAAAAAW
ABgAAAAAAAAAEADtQYZ1BQBodHRwL3Rlc3RzL25hdmlnYXRpb24vVVQFAAOwaqZXdXgLAAEE9QEA
AARQAAAAUEsBAh4DFAACAAgA1H4GSeXMaLiEAAAAwAAAAC0AGAAAAAAAAQAAAKSB1nUFAGh0dHAv
dGVzdHMvbmF2aWdhdGlvbi9hbmNob3ItYmFzaWMtc3RkZXJyLnR4dFVUBQADsGqmV3V4CwABBPUB
AAAEUAAAAFBLAQIeAwoAAAAAAGd9BkkAAAAAAAAAAAAAAAAZABgAAAAAAAAAEADtQcF2BQBodHRw
L3Rlc3RzL25vdGlmaWNhdGlvbnMvVVQFAAMBaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
Z30GSVHfGeiEAAAAwAAAADgAGAAAAAAAAQAAAKSBFHcFAGh0dHAvdGVzdHMvbm90aWZpY2F0aW9u
cy9ldmVudC1saXN0ZW5lci1jcmFzaC1zdGRlcnIudHh0VVQFAAMBaKZXdXgLAAEE9QEAAARQAAAA
UEsBAh4DCgAAAAAA1n4GSQAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BCngFAGh0dHAvdGVzdHMv
c2VjdXJpdHkvVVQFAAOzaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA1n4GSdqmwALKAAAA
3QEAAFUAGAAAAAAAAQAAAKSBWHgFAGh0dHAvdGVzdHMvc2VjdXJpdHkvY2FudmFzLXJlbW90ZS1y
ZWFkLXJlbW90ZS12aWRlby1ibG9ja2VkLW5vLWNyb3Nzb3JpZ2luLXN0ZGVyci50eHRVVAUAA7Nq
pld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADWfgZJ0OpnfyIBAAAVAwAASAAYAAAAAAABAAAA
pIGxeQUAaHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtcmVtb3RlLXZpZGVv
LWxvY2FsaG9zdC1zdGRlcnIudHh0VVQFAAO0aqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
1n4GSUMhdbbeAAAAUgIAAEcAGAAAAAAAAQAAAKSBVXsFAGh0dHAvdGVzdHMvc2VjdXJpdHkvY2Fu
dmFzLXJlbW90ZS1yZWFkLXJlbW90ZS12aWRlby1yZWRpcmVjdC1zdGRlcnIudHh0VVQFAAO0aqZX
dXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAc30GSQAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1B
tHwFAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L1VUBQADGWimV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANZ+BklkDIvp2AAAAPgBAABLABgAAAAAAAEAAACkgRh9
BQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9hdWRpby1yZWRpcmVj
dC1hbGxvd2VkLXN0ZGVyci50eHRVVAUAA7Nqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADW
fgZJP+htSOUAAABDAgAATAAYAAAAAAABAAAApIF1fgUAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvYXVkaW8tcmVkaXJlY3QtYWxsb3dlZDItc3RkZXJyLnR4dFVUBQAD
s2qmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANZ+BkmViEgqpwAAAIoBAABYABgAAAAAAAEA
AACkgeB/BQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ibG9iLXVy
bC1kb2VzLW5vdC1tYXRjaC1zb3VyY2Utc2VsZi1zdGRlcnIudHh0VVQFAAOzaqZXdXgLAAEE9QEA
AARQAAAAUEsBAh4DCgAAAAAAaX0GSQAAAAAAAAAAAAAAAEQAGAAAAAAAAAAQAO1BGYEFAGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVx
dWVzdHMvVVQFAAMFaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA1n4GSVFh3L7oAAAAJgMA
AHkAGAAAAAAAAQAAAKSBl4EFAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvdXBncmFkZS1pbnNlY3VyZS1hdWRpby12aWRl
by1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAUAA7Rqpld1eAsAAQT1AQAABFAAAABQSwECHgMK
AAAAAABpfQZJAAAAAAAAAAAAAAAAPQAYAAAAAAAAABAA7UEygwUAaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL1VUBQADBWimV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIANZ+BkkcmiCM5gAAAEMCAABTABgAAAAAAAEAAACkgamDBQBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dE
T00vYWxsb3ctYXVkaW8tc3RkZXJyLnR4dFVUBQADs2qmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIANZ+BkmzfKdl/wAAAPsBAABTABgAAAAAAAEAAACkgRyFBQBodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vYWxsb3ctdmlkZW8tc3Rk
ZXJyLnR4dFVUBQADs2qmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANZ+BkkFbvZGhAAAAMAA
AABrABgAAAAAAAEAAACkgaiGBQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS91c2VyQWdlbnRTaGFkb3dET00vZGVmYXVsdC1zcmMtb2JqZWN0LWRhdGEtdXJsLWFsbG93
ZWQtc3RkZXJyLnR4dFVUBQADtGqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOF+BklXn2Rx
3gAAAFICAABLABgAAAAAAAEAAACkgdGHBQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS92aWRlby1yZWRpcmVjdC1hbGxvd2VkLXN0ZGVyci50eHRVVAUAA8Zqpld1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACADhfgZJt66porsAAACSAQAATAAYAAAAAAABAAAApIE0iQUA
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdmlkZW8tcmVkaXJlY3Qt
YWxsb3dlZDItc3RkZXJyLnR4dFVUBQADxmqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOF+
BklXn2Rx3gAAAFICAABmABgAAAAAAAEAAACkgXWKBQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS92aWRlby13aXRoLWh0dHAtdXJsLWFsbG93ZWQtYnktY3NwLW1lZGlh
LXNyYy1zdGFyLXN0ZGVyci50eHRVVAUAA8Zqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADi
fgZJQRp1k4cAAADAAAAAWQAYAAAAAAABAAAApIHziwUAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvd29ya2VyLWJsb2ItaW5oZXJpdHMtY3NwLWJsb2Nrcy1ldmFsLXN0
ZGVyci50eHRVVAUAA8dqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADifgZJY6qsbIIAAACo
AAAAQAAYAAAAAAABAAAApIENjQUAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUBQADx2qmV3V4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIAOJ+BkljqqxsggAAAKgAAABSABgAAAAAAAEAAACkgQmOBQBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHlsZS1zcmMtMi1z
dGRlcnIudHh0VVQFAAPHaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA1n4GSQAAAAAAAAAA
AAAAABwAGAAAAAAAAAAQAO1BF48FAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9VVAUAA7Nq
pld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADWfgZJCqtKvIQAAADAAAAAOgAYAAAAAAABAAAA
pIFtjwUAaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL2Fzc2lnbi1kb2N1bWVudC11cmwtc3Rk
ZXJyLnR4dFVUBQADs2qmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANZ+BkmVt8WBhAAAABoB
AAA1ABgAAAAAAAEAAACkgWWQBQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvcnMtcG9zdC1yZWRpcmVj
dC0zMDEtc3RkZXJyLnR4dFVUBQADtGqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIANt+Bkkr
RFS6uAAAAJIBAAA9ABgAAAAAAAEAAACkgViRBQBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLXZp
ZGVvLXNvdXJjZS1mcm9tLXJlbW90ZS1zdGRlcnIudHh0VVQFAAO9aqZXdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgA234GSYV/JC+EAAAAwAAAADoAGAAAAAAAAQAAAKSBh5IFAGh0dHAvdGVzdHMv
c2VjdXJpdHkvbG9jYWwtdmlkZW8tc3JjLWZyb20tcmVtb3RlLXN0ZGVyci50eHRVVAUAA71qpld1
eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABpfQZJAAAAAAAAAAAAAAAAIQAYAAAAAAAAABAA7UF/
kwUAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvVVQFAAMGaKZXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgAaX0GSe41OU2EAAAAwAAAAEwAGAAAAAAAAQAAAKSB2pMFAGh0dHAvdGVz
dHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2Fib3V0LWJsYW5rLWlmcmFtZS1pbi1tYWluLWZyYW1l
LXN0ZGVyci50eHRVVAUAAwZopld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADXfgZJf7Htm/AA
AACJBAAATgAYAAAAAAABAAAApIHklAUAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQv
aW5zZWN1cmUtYXVkaW8tdmlkZW8taW4tbWFpbi1mcmFtZS1zdGRlcnIudHh0VVQFAAO2aqZXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgA134GSYAOckeEAAAAwAAAAEIAGAAAAAAAAQAAAKSBXJYF
AGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWNzcy1pbi1pZnJhbWUt
c3RkZXJyLnR4dFVUBQADtmqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOF+BknIEFME4wAA
AJgEAAA5ABgAAAAAAAEAAACkgVyXBQBodHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLWNyb3NzLW9y
aWdpbi1jYWNoaW5nLXN0ZGVyci50eHRVVAUAA8Vqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CADhfgZJmR5GVhgBAADnAQAAPwAYAAAAAAABAAAApIGymAUAaHR0cC90ZXN0cy9zZWN1cml0eS92
aWRlby1wb3N0ZXItY3Jvc3Mtb3JpZ2luLWNyYXNoMi1zdGRlcnIudHh0VVQFAAPGaqZXdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgA434GSWBLZhCRAAAA+wEAAEUAGAAAAAAAAQAAAKSBQ5oFAGh0
dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4t
c3RkZXJyLnR4dFVUBQADyWqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIALF+BklbBFgOogUA
AE0QAAAKABgAAAAAAAEAAACkgVObBQBodHRwZC5jb25mVVQFAANuaqZXdXgLAAEE9QEAAARQAAAA
UEsBAh4DCgAAAAAA434GSQAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BOaEFAGltcG9ydGVkL1VU
BQADyWqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAON+BkkAAAAAAAAAAAAAAAAZABgAAAAA
AAAAEADtQXyhBQBpbXBvcnRlZC9tYXRobWwtaW4taHRtbDUvVVQFAAPJaqZXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DCgAAAAAA434GSQAAAAAAAAAAAAAAACAAGAAAAAAAAAAQAO1Bz6EFAGltcG9ydGVk
L21hdGhtbC1pbi1odG1sNS9tYXRobWwvVVQFAAPJaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAA
AAAA434GSQAAAAAAAAAAAAAAADQAGAAAAAAAAAAQAO1BKaIFAGltcG9ydGVkL21hdGhtbC1pbi1o
dG1sNS9tYXRobWwvcHJlc2VudGF0aW9uLW1hcmt1cC9VVAUAA8lqpld1eAsAAQT1AQAABFAAAABQ
SwECHgMKAAAAAADjfgZJAAAAAAAAAAAAAAAAOwAYAAAAAAAAABAA7UGXogUAaW1wb3J0ZWQvbWF0
aG1sLWluLWh0bWw1L21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL3RhYmxlcy9VVAUAA8lqpld1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADjfgZJ8oRrAIQAAADAAAAAVwAYAAAAAAABAAAApIEM
owUAaW1wb3J0ZWQvbWF0aG1sLWluLWh0bWw1L21hdGhtbC9wcmVzZW50YXRpb24tbWFya3VwL3Rh
Ymxlcy90YWJsZS1heGlzLWhlaWdodC1zdGRlcnIudHh0VVQFAAPJaqZXdXgLAAEE9QEAAARQAAAA
UEsBAh4DCgAAAAAAc30GSQAAAAAAAAAAAAAAABEAGAAAAAAAAAAQAO1BIaQFAGltcG9ydGVkL21v
emlsbGEvVVQFAAMZaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAc30GSQAAAAAAAAAAAAAA
ABUAGAAAAAAAAAAQAO1BbKQFAGltcG9ydGVkL21vemlsbGEvc3ZnL1VUBQADGWimV3V4CwABBPUB
AAAEUAAAAFBLAQIeAwoAAAAAAHN9BkkAAAAAAAAAAAAAAAAaABgAAAAAAAAAEADtQbukBQBpbXBv
cnRlZC9tb3ppbGxhL3N2Zy9zbWlsL1VUBQADGWimV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAA
AHN9BkkAAAAAAAAAAAAAAAAgABgAAAAAAAAAEADtQQ+lBQBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9z
bWlsL3N0eWxlL1VUBQADGWimV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAHN9BkkEzmMXIQEA
ALIHAABIABgAAAAAAAEAAACkgWmlBQBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9zbWlsL3N0eWxlL2Fu
aW0tY3NzLWNvbG9yLTEtYnktaWRlbnQtaGV4LXN0ZGVyci50eHRVVAUAAxlopld1eAsAAQT1AQAA
BFAAAABQSwECHgMKAAAAAAB1fQZJAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UEMpwUAaW1wb3J0
ZWQvdzNjL1VUBQADHWimV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAHh9BkkAAAAAAAAAAAAA
AAAgABgAAAAAAAAAEADtQVOnBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1VUBQAD
I2imV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAHV9BkkAAAAAAAAAAAAAAAAmABgAAAAAAAAA
EADtQa2nBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL1VUBQADHWimV3V4
CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAHV9BkkAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQQ2o
BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9VVAUAAx1opld1eAsA
AQT1AQAABFAAAABQSwECHgMKAAAAAAB1fQZJAAAAAAAAAAAAAAAAMAAYAAAAAAAAABAA7UFxqAUA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvVVQFAAMeaKZX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA5n4GScqlhqI8AQAAkAUAAEsAGAAAAAAAAQAAAKSB
26gFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUt
c2FtZS1vcmlnaW4tYWN0dWFsLnR4dFVUBQADz2qmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
AOZ+BkkhaUbSjAEAAD4GAABJABgAAAAAAAEAAACkgZyqBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLWRpZmYudHh0VVQFAAPP
aqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA5n4GSWzas9NFAQAAqAUAAE0AGAAAAAAAAQAA
AKSBq6wFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21v
ZGUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0VVQFAAPPaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgA5n4GSaEQ41GJCAAA0iAAAFEAGAAAAAAAAQAAAKSBd64FAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4tcHJldHR5LWRp
ZmYuaHRtbFVUBQADz2qmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOV+BklqNO8yQQEAAJ4F
AABSABgAAAAAAAEAAACkgYu3BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLXdvcmtlci1hY3R1YWwudHh0VVQFAAPOaqZXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgA5X4GSQ+oLFeSAQAAaAYAAFAAGAAAAAAAAQAAAKSBWLkF
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2Ft
ZS1vcmlnaW4td29ya2VyLWRpZmYudHh0VVQFAAPOaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgA5X4GSelzKfFKAQAAtgUAAFQAGAAAAAAAAQAAAKSBdLsFAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4td29ya2VyLWV4cGVj
dGVkLnR4dFVUBQADzmqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOZ+Bkke4chujggAAPUg
AABYABgAAAAAAAEAAACkgUy9BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLXdvcmtlci1wcmV0dHktZGlmZi5odG1sVVQFAAPP
aqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAe30GSQAAAAAAAAAAAAAAACUAGAAAAAAAAAAQ
AO1BbMYFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9VVAUAAypopld1eAsA
AQT1AQAABFAAAABQSwECHgMKAAAAAAB7fQZJAAAAAAAAAAAAAAAAKQAYAAAAAAAAABAA7UHLxgUA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9VVAUAAypopld1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACADrfgZJXnLumcUAAABOAgAARwAYAAAAAAABAAAApIEuxwUAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9yZWZsZWN0aW9uLWVtYmVkZGVk
LXN0ZGVyci50eHRVVAUAA9pqpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAB4fQZJAAAAAAAA
AAAAAAAALwAYAAAAAAAAABAA7UF0yAUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9VVAUAAyNopld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADqfgZJAAAA
AAAAAAAAAAAAQAAYAAAAAAAAABAA7UHdyAUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L1VUBQAD12qmV3V4CwABBPUBAAAEUAAA
AFBLAQIeAwoAAAAAAIF9BkkAAAAAAAAAAAAAAABPABgAAAAAAAAAEADtQVfJBQBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVk
aWEtZWxlbWVudHMvVVQFAAMyaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA6H4GSXfYGcjI
AAAAMgQAAGcAGAAAAAAAAQAAAKSB4MkFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9jYW5w
bGF5LXN0ZGVyci50eHRVVAUAA9Rqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADpfgZJ0d7H
SesAAAAKBQAAcgAYAAAAAAABAAAApIFJywUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2Nh
bnBsYXlfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQFAAPVaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgA6X4GSbVGePHrAAAA8gQAAG4AGAAAAAAAAQAAAKSB4MwFAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9ldmVudF9jYW5wbGF5dGhyb3VnaC1zdGRlcnIudHh0VVQFAAPVaqZXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgA6X4GSXo5vT7nAAAAvgUAAHkAGAAAAAAAAQAAAKSBc84FAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9ldmVudF9jYW5wbGF5dGhyb3VnaF9ub2F1dG9wbGF5LXN0ZGVyci50eHRV
VAUAA9Vqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADpfgZJNpoENu4AAAAMBgAAagAYAAAA
AAABAAAApIEN0AUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRlZGRhdGEtc3RkZXJy
LnR4dFVUBQAD1mqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOl+BklvOJW/6gAAAKQEAAB1
ABgAAAAAAAEAAACkgZ/RBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVkZGF0YV9u
b2F1dG9wbGF5LXN0ZGVyci50eHRVVAUAA9Zqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADq
fgZJ0FPK1usAAABKBAAAbgAYAAAAAAABAAAApIE40wUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2
ZW50X2xvYWRlZG1ldGFkYXRhLXN0ZGVyci50eHRVVAUAA9dqpld1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACADqfgZJEE7aQucAAABKBAAAeQAYAAAAAAABAAAApIHL1AUAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL2V2ZW50X2xvYWRlZG1ldGFkYXRhX25vYXV0b3BsYXktc3RkZXJyLnR4dFVUBQAD12qm
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOp+BkkhwSQU7QAAAKQEAABpABgAAAAAAAEAAACk
gWXWBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZHN0YXJ0LXN0ZGVyci50eHRVVAUA
A9hqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADqfgZJ1amHQ+gAAACkBAAAdAAYAAAAAAAB
AAAApIH11wUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRzdGFydF9ub2F1dG9wbGF5
LXN0ZGVyci50eHRVVAUAA9hqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADrfgZJjZEZCe0A
AABMBQAAfAAYAAAAAAABAAAApIGL2QUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVy
X2NhbnBsYXlfY2FucGxheXRocm91Z2gtc3RkZXJyLnR4dFVUBQAD2WqmV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIAOt+Bkm52lk77QAAAMwGAAB1ABgAAAAAAAEAAACkgS7bBQBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVk
aWEtZWxlbWVudHMvZXZlbnRfb3JkZXJfY2FucGxheV9wbGF5aW5nLXN0ZGVyci50eHRVVAUAA9lq
pld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADrfgZJfPnefOkAAAD+BAAAfwAYAAAAAAABAAAA
pIHK3AUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVyX2xvYWRlZG1ldGFkYXRhX2xv
YWRlZGRhdGEtc3RkZXJyLnR4dFVUBQAD2WqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOt+
BkmTDz2M7wAAAAwGAAB4ABgAAAAAAAEAAACkgWzeBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZl
bnRfb3JkZXJfbG9hZHN0YXJ0X3Byb2dyZXNzLXN0ZGVyci50eHRVVAUAA9pqpld1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACADrfgZJ3p9Q++8AAAAMBgAAZQAYAAAAAAABAAAApIEN4AUAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BhdXNlLXN0ZGVyci50eHRVVAUAA9pqpld1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACADsfgZJpVqHYukAAACkBAAAcAAYAAAAAAABAAAApIGb4QUAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BhdXNlX25vYXV0b3BsYXktc3RkZXJyLnR4dFVUBQAD22qm
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOx+Bkk5KK4Q7gAAAAwGAABkABgAAAAAAAEAAACk
gS7jBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheS1zdGRlcnIudHh0VVQFAAPbaqZX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA7H4GSe8xpR7uAAAApAQAAG8AGAAAAAAAAQAAAKSB
uuQFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5X25vYXV0b3BsYXktc3RkZXJyLnR4
dFVUBQAD3GqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOx+Bkm1TxLF8AAAAAwGAABnABgA
AAAAAAEAAACkgVHmBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheWluZy1zdGRlcnIu
dHh0VVQFAAPcaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA7X4GSV0C41PyAAAADAYAAHIA
GAAAAAAAAQAAAKSB4ucFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5aW5nX25vYXV0
b3BsYXktc3RkZXJyLnR4dFVUBQAD3WqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAO1+Bknq
vXyP6gAAAEwFAABoABgAAAAAAAEAAACkgYDpBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRf
cHJvZ3Jlc3Mtc3RkZXJyLnR4dFVUBQAD3WqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAO1+
Bkl2pB1T7QAAAGQFAABzABgAAAAAAAEAAACkgQzrBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZl
bnRfcHJvZ3Jlc3Nfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQFAAPeaqZXdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgA7X4GST8lChjuAAAADAYAAGoAGAAAAAAAAQAAAKSBpuwFAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy9ldmVudF90aW1ldXBkYXRlLXN0ZGVyci50eHRVVAUAA95qpld1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACADufgZJCHuyY/IAAABmBgAAdQAYAAAAAAABAAAApIE47gUAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2V2ZW50X3RpbWV1cGRhdGVfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQF
AAPfaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA7n4GSXDdM1SEAAAAwAAAAGwAGAAAAAAA
AQAAAKSB2e8FAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF92b2x1bWVjaGFuZ2Utc3RkZXJy
LnR4dFVUBQAD32qmV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAHh9BkkAAAAAAAAAAAAAAABa
ABgAAAAAAAAAEADtQQPxBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9VVAUAAyNo
pld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAB4fQZJAAAAAAAAAAAAAAAAZAAYAAAAAAAAABAA
7UGX8QUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2ludGVyZmFjZXMvVGV4dFRyYWNrL1VUBQADI2im
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOl+BkmJhCyxywAAAN0BAAB5ABgAAAAAAAEAAACk
gTXyBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9UZXh0VHJhY2svYWN0aXZlQ3Vl
cy1zdGRlcnIudHh0VVQFAAPVaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA6X4GSSccDzGF
AAAAwAAAAHUAGAAAAAAAAQAAAKSBs/MFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9pbnRlcmZhY2Vz
L1RleHRUcmFjay9hZGRDdWUtc3RkZXJyLnR4dFVUBQAD1WqmV3V4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIAO5+BkkwwkW63wAAAOQDAAB3ABgAAAAAAAEAAACkgef0BQBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvbmV0d29ya1N0YXRlX2R1cmluZ19sb2Fkc3RhcnQtc3RkZXJyLnR4dFVUBQAD32qmV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAO5+BkkpXW9ehAAAAMAAAABuABgAAAAAAAEAAACkgXf2
BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvbmV0d29ya1N0YXRlX2luaXRpYWwtc3RkZXJyLnR4dFVU
BQAD4GqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAO5+BklKFZpM5QAAAEwFAAByABgAAAAA
AAEAAACkgaP3BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGF1c2VkX2ZhbHNlX2R1cmluZ19wbGF5
LXN0ZGVyci50eHRVVAUAA+Bqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADufgZJUv/P4+oA
AACkBAAAcgAYAAAAAAABAAAApIE0+QUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3BhdXNlZF90cnVl
X2R1cmluZ19wYXVzZS1zdGRlcnIudHh0VVQFAAPgaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAA
AAAAeX0GSQAAAAAAAAAAAAAAAGoAGAAAAAAAAAAQAO1ByvoFAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50
cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9VVAUAAyVopld1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACADpfgZJfv4mEhABAABGAgAAkQAYAAAAAAABAAAApIFu+wUAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNlL3BhdXNlLW1vdmUtdG8tb3RoZXItZG9j
dW1lbnQtc3RkZXJyLnR4dFVUBQAD1mqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOl+Bknz
qM+92wAAAKwCAACPABgAAAAAAAEAAACkgUn9BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWlu
Zy10aGUtbWVkaWEtcmVzb3VyY2UvcGF1c2UtbW92ZS13aXRoaW4tZG9jdW1lbnQtc3RkZXJyLnR4
dFVUBQAD1mqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAOp+BkmFELWd4QAAAKwCAACPABgA
AAAAAAEAAACkge3+BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVz
b3VyY2UvcGF1c2UtcmVtb3ZlLWZyb20tZG9jdW1lbnQtc3RkZXJyLnR4dFVUBQAD12qmV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIAOp+Bkl837+IhAAAAMAAAACBABgAAAAAAAEAAACkgZcABgBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UvcGxheWJhY2tS
YXRlLXN0ZGVyci50eHRVVAUAA9dqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADvfgZJMBWq
CYcAAADAAAAAeAAYAAAAAAABAAAApIHWAQYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3ByZWxvYWRf
cmVmbGVjdHNfbm9uZV9hdXRvcGxheS1zdGRlcnIudHh0VVQFAAPhaqZXdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgA734GSZJtJn3IAAAAjAQAAHMAGAAAAAAAAQAAAKSBDwMGAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy9yZWFkeVN0YXRlX2R1cmluZ19jYW5wbGF5LXN0ZGVyci50eHRVVAUAA+Fqpld1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADvfgZJE5W1fesAAAAMBgAAegAYAAAAAAABAAAApIGE
BAYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVfZHVyaW5nX2NhbnBsYXl0aHJvdWdo
LXN0ZGVyci50eHRVVAUAA+Fqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADvfgZJQecrm+8A
AAAMBgAAdgAYAAAAAAABAAAApIEjBgYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVf
ZHVyaW5nX2xvYWRlZGRhdGEtc3RkZXJyLnR4dFVUBQAD4mqmV3V4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIAO9+Bknwdc6V6QAAAGQFAAB6ABgAAAAAAAEAAACkgcIHBgBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvcmVhZHlTdGF0ZV9kdXJpbmdfbG9hZGVkbWV0YWRhdGEtc3RkZXJyLnR4dFVUBQAD4mqm
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAO9+BknaeU5l6wAAAAwGAABzABgAAAAAAAEAAACk
gV8JBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHlTdGF0ZV9kdXJpbmdfcGxheWluZy1zdGRl
cnIudHh0VVQFAAPiaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA8H4GSXLrPXaEAAAAwAAA
AGwAGAAAAAAAAQAAAKSB9woGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeVN0YXRlX2luaXRp
YWwtc3RkZXJyLnR4dFVUBQAD42qmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAPB+Bkk8voCs
1gAAAMICAACEABgAAAAAAAEAAACkgSEMBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvc3JjX3JlZmxl
Y3RzX2F0dHJpYnV0ZV9ub3Rfc291cmNlX2VsZW1lbnRzLXN0ZGVyci50eHRVVAUAA+Nqpld1eAsA
AQT1AQAABFAAAABQSwECHgMKAAAAAAB4fQZJAAAAAAAAAAAAAAAAVQAYAAAAAAAAABAA7UG1DQYA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50L21lZGlhLWVsZW1lbnRzL3RyYWNrL1VUBQADJGimV3V4CwABBPUBAAAEUAAAAFBLAQIe
AwoAAAAAAHh9BkkAAAAAAAAAAAAAAABjABgAAAAAAAAAEADtQUQOBgBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvdHJhY2svdHJhY2stZWxlbWVudC9VVAUAAyRopld1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACADpfgZJPEoSlrUAAACDAQAAggAYAAAAAAABAAAApIHhDgYAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL3RyYWNrL3RyYWNrLWVsZW1lbnQvdHJhY2stYXBpLXRleHR0cmFja3Mtc3RkZXJyLnR4dFVU
BQAD1mqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAPB+Bkn4pSazvgAAAOwBAABjABgAAAAA
AAEAAACkgVIQBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdmlkZW9fMDA4LXN0ZGVyci50eHRVVAUA
A+Nqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADwfgZJ5WmM5YQAAADAAAAAbAAYAAAAAAAB
AAAApIGtEQYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3ZpZGVvX3ZvbHVtZV9jaGVjay1zdGRlcnIu
dHh0VVQFAAPjaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAeX0GSQAAAAAAAAAAAAAAAFIA
GAAAAAAAAAAQAO1B1xIGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtYXVkaW8tZWxlbWVudC9VVAUAAyVopld1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACADqfgZJ8sxWFt8AAADQAgAAbgAYAAAAAAABAAAApIFjEwYAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L3RoZS1hdWRpby1lbGVtZW50L2F1ZGlvX2NvbnN0cnVjdG9yLXN0ZGVyci50eHRVVAUAA9dq
pld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADqfgZJAAAAAAAAAAAAAAAAUwAYAAAAAAAAABAA
7UHqFAYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L3RoZS1jYW52YXMtZWxlbWVudC9VVAUAA9dqpld1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACADqfgZJm5XX3YQAAADAAAAAcAAYAAAAAAABAAAApIF3FQYAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1j
YW52YXMtZWxlbWVudC8yZC5jYW52YXMucmVhZG9ubHktc3RkZXJyLnR4dFVUBQAD12qmV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAwoAAAAAAHh9BkkAAAAAAAAAAAAAAABSABgAAAAAAAAAEADtQaUWBgBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvdGhlLWVtYmVkLWVsZW1lbnQvVVQFAAMkaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgAeH0GSViRsBKEAAAAwAAAAGwAGAAAAAAAAQAAAKSBMRcGAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtZW1iZWQtZWxl
bWVudC9lbWJlZC1kaW1lbnNpb24tc3RkZXJyLnR4dFVUBQADJGimV3V4CwABBPUBAAAEUAAAAFBL
AQIeAwoAAAAAAP1+BkkAAAAAAAAAAAAAAAAKABgAAAAAAAAAEADtQVsYBgBpbnNwZWN0b3IvVVQF
AAP+aqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAgX0GSQAAAAAAAAAAAAAAABMAGAAAAAAA
AAAQAO1BnxgGAGluc3BlY3Rvci9kZWJ1Z2dlci9VVAUAAzFopld1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACADwfgZJxxH1vo4LAACV4AAAQQAYAAAAAAABAAAApIHsGAYAaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXN0ZGVyci50eHRVVAUAA+Rq
pld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAD9fgZJAAAAAAAAAAAAAAAAEQAYAAAAAAAAABAA
7UH1JAYAaW5zcGVjdG9yL21lbW9yeS9VVAUAA/5qpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CAD9fgZJpX2HCtkAAACAAQAAJAAYAAAAAAABAAAApIFAJQYAaW5zcGVjdG9yL21lbW9yeS90cmFj
a2luZy1hY3R1YWwudHh0VVQFAAP+aqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA/X4GSTEU
b2iYAQAAPQMAACIAGAAAAAAAAQAAAKSBdyYGAGluc3BlY3Rvci9tZW1vcnkvdHJhY2tpbmctZGlm
Zi50eHRVVAUAA/5qpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAD9fgZJ2T7tuhIBAABHAgAA
JgAYAAAAAAABAAAApIFrKAYAaW5zcGVjdG9yL21lbW9yeS90cmFja2luZy1leHBlY3RlZC50eHRV
VAUAA/5qpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAD9fgZJNzwoJMkIAADvIQAAKgAYAAAA
AAABAAAApIHdKQYAaW5zcGVjdG9yL21lbW9yeS90cmFja2luZy1wcmV0dHktZGlmZi5odG1sVVQF
AAP+aqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA8X4GSQAAAAAAAAAAAAAAAAMAGAAAAAAA
AAAQAO1BCjMGAGpzL1VUBQAD5mqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAPF+BkkAAAAA
AAAAAAAAAAAHABgAAAAAAAAAEADtQUczBgBqcy9kb20vVVQFAAPmaqZXdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgA8X4GSRa5AkqXAAAAswAAACUAGAAAAAAAAQAAAKSBiDMGAGpzL2RvbS9jdXN0
b20tY29uc3RydWN0b3JzLXN0ZGVyci50eHRVVAUAA+Zqpld1eAsAAQT1AQAABFAAAABQSwECHgMK
AAAAAAD0fgZJAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UF+NAYAbWVkaWEvVVQFAAPsaqZXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgA9H4GScAuivfnAAAAnQIAAB8AGAAAAAAAAQAAAKSBvjQG
AG1lZGlhL2F1ZGlvLWRhdGEtdXJsLXN0ZGVyci50eHRVVAUAA+tqpld1eAsAAQT1AQAABFAAAABQ
SwECHgMKAAAAAAD0fgZJAAAAAAAAAAAAAAAACgAYAAAAAAAAABAA7UH+NQYAbWVkaWEvbWFjL1VU
BQAD7GqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAPR+Bkko7PtTqwAAABQDAAAzABgAAAAA
AAEAAACkgUI2BgBtZWRpYS9tYWMvY29udHJvbHMtcGFuZWwtbm90LWNsaXBwZWQtb3V0LXN0ZGVy
ci50eHRVVAUAA+xqpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAACHfQZJAAAAAAAAAAAAAAAA
EwAYAAAAAAAAABAA7UFaNwYAbWVkaWEvbWVkaWEtc291cmNlL1VUBQADPmimV3V4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIAPd+Bkkq30epigAAAJsAAABIABgAAAAAAAEAAACkgac3BgBtZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXN0YWxsZWQtaG9sZHMtc2xlZXAtYXNzZXJ0aW9uLXN0
ZGVyci50eHRVVAUAA/Jqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAIfwZJhfAhE8IAAAAk
AwAAKAAYAAAAAAABAAAApIGzOAYAbWVkaWEvc291cmNlcy1mYWxsYmFjay1jb2RlY3Mtc3RkZXJy
LnR4dFVUBQADD2umV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAAh/BknY4NJrigAAAIABAAAw
ABgAAAAAAAEAAACkgdc5BgBtZWRpYS9zdmctYXMtaW1hZ2Utd2l0aC1tZWRpYS1ibG9ja2VkLXN0
ZGVyci50eHRVVAUAAw9rpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAIfwZJz04p0pAAAAC9
AAAAIQAYAAAAAAABAAAApIHLOgYAbWVkaWEvdW5zdXBwb3J0ZWQtcnRzcC1zdGRlcnIudHh0VVQF
AAMPa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAIX8GSe0MfsS+AAAA8gYAACgAGAAAAAAA
AQAAAKSBtjsGAG1lZGlhL3ZpZGVvLXBvc3Rlci1iYWNrZ3JvdW5kLXN0ZGVyci50eHRVVAUAAz5r
pld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAofwZJw4D/KLsAAACSAQAAHwAYAAAAAAABAAAA
pIHWPAYAbWVkaWEvdmlkZW8tc3JjLWJsb2Itc3RkZXJyLnR4dFVUBQADTGumV3V4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIACh/Bkkk5OYXhAAAAMAAAAAhABgAAAAAAAEAAACkgeo9BgBtZWRpYS92
aWRlby1zcmMtY2hhbmdlLXN0ZGVyci50eHRVVAUAA0xrpld1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACADpfgZJOHjUqmACAAA+FQAAGgAYAAAAAAABAAAApIHJPgYAcHl3ZWJzb2NrZXQud3MubG9n
LWVyci50eHRVVAUAA9Zqpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADpfgZJMom3JggBAACP
AgAAGgAYAAAAAAABAAAApIF9QQYAcHl3ZWJzb2NrZXQud3MubG9nLW91dC50eHRVVAUAA9Zqpld1
eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAACzfgZJAAAAAAAAAAAAAAAAGwAYAAAAAAAAAAAApIHZ
QgYAcHl3ZWJzb2NrZXQud3NzLmxvZy1lcnIudHh0VVQFAANxaqZXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgAAAAAAs34GSQAAAAAAAAAAAAAAABsAGAAAAAAAAAAAAKSBLkMGAHB5d2Vic29ja2V0Lndz
cy5sb2ctb3V0LnR4dFVUBQADcWqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIALaABklFJh05
0ScAAMuqAAAMABgAAAAAAAEAAACkgYNDBgByZXN1bHRzLmh0bWxVVAUAA0htpld1eAsAAQT1AQAA
BFAAAABQSwECHgMKAAAAAAC1gAZJAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UGaawYAcmV0cmll
cy9VVAUAA0Ztpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAA1fgZJAAAAAAAAAAAAAAAAEQAY
AAAAAAAAABAA7UHcawYAcmV0cmllcy9pbXBvcnRlZC9VVAUAA4Vppld1eAsAAQT1AQAABFAAAABQ
SwECHgMKAAAAAAA1fgZJAAAAAAAAAAAAAAAAFQAYAAAAAAAAABAA7UEnbAYAcmV0cmllcy9pbXBv
cnRlZC93M2MvVVQFAAOFaaZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAANX4GSQAAAAAAAAAA
AAAAACgAGAAAAAAAAAAQAO1BdmwGAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9VVAUAA4Vppld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAA1fgZJAAAAAAAAAAAAAAAA
LgAYAAAAAAAAABAA7UHYbAYAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL1VUBQADhWmmV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADV+BkkAAAAAAAAAAAAA
AAAyABgAAAAAAAAAEADtQUBtBgByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL1VUBQADhWmmV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADV+BkkAAAAA
AAAAAAAAAAA4ABgAAAAAAAAAEADtQaxtBgByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL1VUBQADhWmmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIAKaABknKpYaiPAEAAJAFAABTABgAAAAAAAEAAACkgR5uBgByZXRyaWVzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4tYWN0
dWFsLnR4dFVUBQADKG2mV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAKaABkm05CY3kgEAAE4G
AABRABgAAAAAAAEAAACkgedvBgByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4tZGlmZi50eHRVVAUAAyhtpld1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACACmgAZJbNqz00UBAACoBQAAVQAYAAAAAAABAAAApIEEcgYA
cmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9t
b2RlLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dFVUBQADKG2mV3V4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIAKaABknqDl++jggAANogAABZABgAAAAAAAEAAACkgdhzBgByZXRyaWVzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4t
cHJldHR5LWRpZmYuaHRtbFVUBQADKG2mV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAKaABklq
NO8yQQEAAJ4FAABaABgAAAAAAAEAAACkgfl8BgByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4td29ya2VyLWFjdHVh
bC50eHRVVAUAAyhtpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACACmgAZJDnWQO5cBAAB4BgAA
WAAYAAAAAAABAAAApIHOfgYAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLXdvcmtlci1kaWZmLnR4dFVUBQADKG2m
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAKaABknpcynxSgEAALYFAABcABgAAAAAAAEAAACk
gfeABgByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL21vZGUtc2FtZS1vcmlnaW4td29ya2VyLWV4cGVjdGVkLnR4dFVUBQADKG2mV3V4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIAKaABkkh7G1KkwgAAP0gAABgABgAAAAAAAEAAACkgdeCBgByZXRy
aWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUt
c2FtZS1vcmlnaW4td29ya2VyLXByZXR0eS1kaWZmLmh0bWxVVAUAAyhtpld1eAsAAQT1AQAABFAA
AABQSwECHgMKAAAAAAC1gAZJAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UEEjAYAcmV0cmllcy9p
bnNwZWN0b3IvVVQFAANGbaZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAtYAGSQAAAAAAAAAA
AAAAABkAGAAAAAAAAAAQAO1BUIwGAHJldHJpZXMvaW5zcGVjdG9yL21lbW9yeS9VVAUAA0Ztpld1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAC1gAZJpX2HCtkAAACAAQAALAAYAAAAAAABAAAApIGj
jAYAcmV0cmllcy9pbnNwZWN0b3IvbWVtb3J5L3RyYWNraW5nLWFjdHVhbC50eHRVVAUAA0Ztpld1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAC1gAZJFRHI+ZwBAABNAwAAKgAYAAAAAAABAAAApIHi
jQYAcmV0cmllcy9pbnNwZWN0b3IvbWVtb3J5L3RyYWNraW5nLWRpZmYudHh0VVQFAANGbaZXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAtYAGSdk+7boSAQAARwIAAC4AGAAAAAAAAQAAAKSB4o8G
AHJldHJpZXMvaW5zcGVjdG9yL21lbW9yeS90cmFja2luZy1leHBlY3RlZC50eHRVVAUAA0Ztpld1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAC1gAZJjRgSIM4IAAD3IQAAMgAYAAAAAAABAAAApIFc
kQYAcmV0cmllcy9pbnNwZWN0b3IvbWVtb3J5L3RyYWNraW5nLXByZXR0eS1kaWZmLmh0bWxVVAUA
A0Ztpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAC2gAZJVLMFEBwcCAD2Hi4ACgAYAAAAAAAB
AAAApIGWmgYAc3RhdHMuanNvblVUBQADSG2mV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAJ19
BkkAAAAAAAAAAAAAAAAEABgAAAAAAAAAEADtQfa2DgBzdmcvVVQFAANqaKZXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DCgAAAAAAnX0GSQAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BNLcOAHN2Zy9jdXN0
b20vVVQFAANqaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAEX8GSUvIAMt/AAAAjQAAACQA
GAAAAAAAAQAAAKSBebcOAHN2Zy9jdXN0b20vemVyby1kYXNoYXJyYXktc3RkZXJyLnR4dFVUBQAD
IWumV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAJF9BkkAAAAAAAAAAAAAAAALABgAAAAAAAAA
EADtQVa4DgBzdmcvc3Ryb2tlL1VUBQADUWimV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAAR/
BklyhWiffwAAAI0AAAAlABgAAAAAAAEAAACkgZu4DgBzdmcvc3Ryb2tlL3plcm8td2lkdGgtaGFu
Zy1zdGRlcnIudHh0VVQFAAMIa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAB38GSQAAAAAA
AAAAAAAAAAsAGAAAAAAAAAAQAO1BebkOAHdlYmFyY2hpdmUvVVQFAAMNa6ZXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DCgAAAAAAB38GSQAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BvrkOAHdlYmFyY2hp
dmUvbG9hZGluZy9VVAUAAw1rpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAHfwZJD+j9R9YA
AABKAwAAMQAYAAAAAAABAAAApIELug4Ad2ViYXJjaGl2ZS9sb2FkaW5nL3ZpZGVvLWluLXdlYmFy
Y2hpdmUtYWN0dWFsLnR4dFVUBQADDWumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAAd/BklW
FKzZ8wAAAOECAAAvABgAAAAAAAEAAACkgUy7DgB3ZWJhcmNoaXZlL2xvYWRpbmcvdmlkZW8taW4t
d2ViYXJjaGl2ZS1kaWZmLnR4dFVUBQADDWumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAAd/
Bkn4FWKw1QAAAB8DAAAzABgAAAAAAAEAAACkgai8DgB3ZWJhcmNoaXZlL2xvYWRpbmcvdmlkZW8t
aW4td2ViYXJjaGl2ZS1leHBlY3RlZC50eHRVVAUAAw1rpld1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAAHfwZJ/AulQvsHAABlHgAANwAYAAAAAAABAAAApIHqvQ4Ad2ViYXJjaGl2ZS9sb2FkaW5n
L3ZpZGVvLWluLXdlYmFyY2hpdmUtcHJldHR5LWRpZmYuaHRtbFVUBQADDWumV3V4CwABBPUBAAAE
UAAAAFBLAQIeAwoAAAAAAKd9BkkAAAAAAAAAAAAAAAAGABgAAAAAAAAAEADtQVbGDgB3ZWJnbC9V
VAUAA3popld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAACnfQZJAAAAAAAAAAAAAAAADAAYAAAA
AAAAABAA7UGWxg4Ad2ViZ2wvMS4wLjIvVVQFAAN6aKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAA
AAAAp30GSQAAAAAAAAAAAAAAABgAGAAAAAAAAAAQAO1B3MYOAHdlYmdsLzEuMC4yL2NvbmZvcm1h
bmNlL1VUBQADemimV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAKd9BkkAAAAAAAAAAAAAAAAh
ABgAAAAAAAAAEADtQS7HDgB3ZWJnbC8xLjAuMi9jb25mb3JtYW5jZS90ZXh0dXJlcy9VVAUAA3po
pld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACACnfQZJudsusHYAAAB0AQAAOAAYAAAAAAABAAAA
pIGJxw4Ad2ViZ2wvMS4wLjIvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1ucG90LXN0ZGVy
ci50eHRVVAUAA3popld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACACpgAZJR2q3g+4DAAChMgAA
GQAYAAAAAAABAAAApIFxyA4Ad3B0d2tfcHJvY2Vzc19sb2cub3V0LnR4dFVUBQADLm2mV3V4CwAB
BPUBAAAEUAAAAFBLBQYAAAAAIQEhAR+QAACyzA4AAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>285508</attachid>
            <date>2016-08-06 16:36:55 -0700</date>
            <delta_ts>2016-08-07 01:07:33 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews107 for mac-yosemite-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>1179830</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
w/M0tyKSU4KayAQWZJHOk/NyODdBtcmhrGa2FoNRongZDQ0BaZgCbOg2YX2muXaXRlPeAkaylYyv
fCQLF6Q/+NWvKyHOEzpu5wHvyC1UROmdZMei+Vb2WXmYYd1/ry7G5JukfJxlN9GbdPXAbvxbi6kj
+eR+ektz3+Y3s7va7KCzGGGScUhaekZV7Jb6/wFQSwMECgAAAAAAc30GSQAAAAAAAAAAAAAAAA4A
HABhY2Nlc3NpYmlsaXR5L1VUCQADGmimV3Vupld1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAD38G
SSFMHCxpAAAAawAAAC4AHABhY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tlZC1zdGRl
cnIudHh0VVQJAAMea6ZXFmimV3V4CwABBPUBAAAEUAAAADMyMDTTNbDQNTBTMDS1MjWzMjbQMzOz
VEjOz9VLLCjISdULT03yziwBUc75eSWpeSV6LqllqTn5BblAdrSlqbmFqZWZmYmlsXGsgl+wU2lJ
SX6eY15mbmJJZn5esWteYlJOaoqtnz8XAFBLAwQKAAAAAABzfQZJAAAAAAAAAAAAAAAAEgAcAGFj
Y2Vzc2liaWxpdHkvbWFjL1VUCQADGmimV3Vupld1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAEX8G
SYWLnkNpAAAAawAAAGEAHABhY2Nlc3NpYmlsaXR5L21hYy9jaGVja2JveC1wb3N0cy12YWx1ZS1j
aGFuZ2Utbm90aWZpY2F0aW9uLWFmdGVyLWFjdGl2YXRpb24td2l0aC1zcGFjZS1zdGRlcnIudHh0
VVQJAAMia6ZXGmimV3V4CwABBPUBAAAEUAAAADMyMDTTNbDQNTBTMDS1MjWzMjbWs7QwVkjOz9VL
LCjISdULT03yziwBUc75eSWpeSV6LqllqTn5BblAdrSlqbmFpZWZmYmlhWGsgl+wU2lJSX6eY15m
bmJJZn5esWteYlJOaoqtnz8XAFBLAwQKAAAAAAB3fQZJAAAAAAAAAAAAAAAADAAcAGNvbXBvc2l0
aW5nL1VUCQADImimV3Vupld1eAsAAQT1AQAABFAAAABQSwMECgAAAAAAdn0GSQAAAAAAAAAAAAAA
ABUAHABjb21wb3NpdGluZy9vdmVyZmxvdy9VVAkAAx9opld1bqZXdXgLAAEE9QEAAARQAAAAUEsD
BBQAAgAIABR/Bkkm3n2RaQAAAGsAAAA9ABwAY29tcG9zaXRpbmcvb3ZlcmZsb3cvdGhlbWUtYWZm
ZWN0cy12aXN1YWwtb3ZlcmZsb3ctc3RkZXJyLnR4dFVUCQADJ2umVx9opld1eAsAAQT1AQAABFAA
AAAzMjA00zWw0DUwUzA0tTI1szK21DMyNFBIzs/VSywoyEnVC09N8s4sAVHO+XklqXklei6pZak5
+QW5QHa0pamlkYGVmZm5sZFlrIJfsFNpSUl+nmNeZm5iSWZ+XrFrXmJSTmqKrZ8/FwBQSwMECgAA
AAAAdX0GSQAAAAAAAAAAAAAAABQAHABjb21wb3NpdGluZy9yZWdpb25zL1VUCQADHWimV3Vupld1
eAsAAQT1AQAABFAAAABQSwMEFAACAAgAE38GSWjjAt7BAAAA8gYAAEUAHABjb21wb3NpdGluZy9y
ZWdpb25zL3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNvbXBvc2l0aW5nLXN0ZGVyci50eHRV
VAkAAyVrplcdaKZXdXgLAAEE9QEAAARQAAAA7c/BDsFAFAXQva+YJQuddmqqJBY0JBZCYinSPNMX
htFpXodk/h6xYOEDkO7uXd17NpEcymQY94NY9rZMOzxD7UuVr9GtyFZIzrNa70swBguGRKNuJPqp
ZO3TTO8nUONyd0TlpkSW8nl5BaMLcFh0WFu/N3CMr+2FFGagDsgzS7jAQsMrdSOZiED0Qn6fdtb5
Cmu+MuCR+H3smfLx41+gmNElMiEGcWvTIL4QIf8BkbwjMlv5n1CEadooGkWj+KC4AVBLAwQUAAIA
CAAVfwZJHrRYjsUAAADyBgAAPAAcAGNvbXBvc2l0aW5nL3Nob3ctY29tcG9zaXRlZC1pZnJhbWUt
b24tYmFjay1idXR0b24tc3RkZXJyLnR4dFVUCQADKmumVyJopld1eAsAAQT1AQAABFAAAADtz71u
wjAUBeCdp/BIh8SJiUOC1KFEIDEgkBgRim6dK+pi4ujGIPnt+enQvAADkrdzpnO+fSpnMp9lIs6n
8sC0wzP0vlX1Dt2WbIfkPOv1sQVjsGFI9BmlYlpINj4t9XEOPW6+f1G5BZGletVewegGHDYfbKyH
DRzjO3shhRWoH+SVJVxjo+E/RanMRSyyhN+nnXW+w55vDXgkfh/7S/XX41+smNEtMiHKyWgfEAHx
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
8AWfUrIecdj3XbpX6Xk9k8fZIyM9fpiSxF7LikgfGi64NBjvD2q+aHIuOC2fZ2hvhM+cnWovCCEf
8+z4hpDD0erequg6WWtcvXMyLTso61ZIpsE4/iv8+cykuP3oG832Oc1HZH7SUCp8k4y3UULkQukD
uDifZPJ+JC4O+BP/PgU5cyzpe1+WsZnn6JG29Gd3/JnR+YVygXKPFqwrFEK8H3Kvu3J3hKw949f5
Rf2Zv3/ysYYwXgQXDnYRUhembe2mw3wWL8xUXYYzMO8Cue43/Lo+zZ5UK9Jmq/8FssP/6ca7kDWb
vOlpq70Id1r23h5pN3r7nEzDTAXYOmumTzwSsi47e1SGZm66acRzT8OQ+gciiGAg4PpEPU8ZUdB9
WoAYdM5sCuKgfraUuuYc56jk2ETZmbnJuO3gHbMeCGSG7z5xTD1LhEzSvmduWSHOGzNrqNOJKtKO
brbcd/FCrnaKYkVGxmZWimUjc+Y31EAY51M6Rf/AfdkK1zPKIpGuiWdYOHfrYrhw/pkA+1fnyuLc
RoWM88n09+dKj+e6cwqv65nQJ72VcZWh05b5CsOFy7qa8g2GVsfT0rQ3fM6KieZMq3teJT9XDjZd
hm4kb9Izv5/5tzVbB1umF08laOOUyOTj17yHDdc7lefdWtZKr3Ub3K0dWEVrK62VH6zcTGeiOBsu
Ny28faxr2Y3/rB8+lLV3/7JVV8hj7TNE4M1leJauBgcgbfoZC8sClyjuZdaNfoLBwvuw1vhLLEJD
sLG3d1FzJv2KU3pcemIa0Bw0TONVnfkBaJrpCiGCg0rwPa+IesA3U8ZQ4KB88UJZdyb4Of+pQOeo
oM2K/JjGmjzj2wx5xn43GkxoPctmF+HbI9rhvFcqX6ZybWUwhQcP66DEarw7t2k6yitKJQUspYXs
ooD+DCt5bt3rDfZ+qMjaV8U4p9eLzMLog/6vZyszJ+tGC2YboW5pM2f7zSdulpyn7r9ux69NXggu
nsDSH5fibR1Dk6t/S84YYZY3Jv+5YF2dR8ICafvqaPuqcvvxPeJUu8z586Iz4fn0HL5166DN76cl
Lnb8CYeK1hdPLRMcqcZ3V49XyYBrbqBV541r7d3WiRcp9Og+SDpviozb1lOxn8gNCQN2e+eLnjKk
gP3HzF/KmUOZtx62ubGy/4vL7ccaF177wZ1218fcE1UrqdfvkFyJCeHCAlELL/lq+lMg9XtWqlTL
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
ERkqF/UNtKrAYtVjXfXZwDK+MVeSWIA8Ii8M4RIrBe/Uj9KBCEQS8se0NdY12PK1BofEH2OvVE6e
/wLJtKqRCZHHna1HeMRPEHH8iShM4/5CEWaZV3iFV3xR3AFQSwMECgAAAAAAF38GSQAAAAAAAAAA
AAAAACsAHABjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL3N1cHBvcnRlZC1zaGFwZXMvVVQJAAMt
a6ZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQKAAAAAAAXfwZJAAAAAAAAAAAAAAAAMgAcAGNzczMv
c2hhcGVzL3NoYXBlLW91dHNpZGUvc3VwcG9ydGVkLXNoYXBlcy9jaXJjbGUvVVQJAAMta6ZXdW6m
V3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAAXfwZJAJz64MIAAADyBgAAVQAcAGNzczMvc2hhcGVz
L3NoYXBlLW91dHNpZGUvc3VwcG9ydGVkLXNoYXBlcy9jaXJjbGUvc2hhcGUtb3V0c2lkZS1jaXJj
bGUtMDEzLXN0ZGVyci50eHRVVAkAAy1rplcta6ZXdXgLAAEE9QEAAARQAAAA7c8xq8IwFAXg3V+R
UQebNja1Cg5aFBzkFRzlUa7pRaOxKbdRyL+3jzc8B1eHB9nOmc75Domcy2yeyijO0m+mHd6g842q
9uhKsi2S86zTpwaMwZoh0WKciGku2fC60acVdPh1vKByayJL1bZ5gNE1OKxHbKhfGzjG9/ZOCgtQ
Z+SFJdxhreEvjROZiUikMe+nnXW+xY6XBjwS78d+U7X8+RcpZnSDTIjZZHAIiID4DCJ7RRS29f9C
Eed5UARFULxRPAFQSwMECgAAAAAAe30GSQAAAAAAAAAAAAAAAA0AHABkaXNwbGF5bGlzdHMvVVQJ
AAMpaKZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAAYfwZJo1f96FAAAACOAAAAMgAcAGRp
c3BsYXlsaXN0cy9leHRlbnQtaW5jbHVkZXMtdHJhbnNmb3Jtcy1zdGRlcnIudHh0VVQJAAMwa6ZX
KWimV3V4CwABBPUBAAAEUAAAAHMvSizIyEwuds7PK0mtKLGySk8tcQ7x1dBUyCxWyMsvUahMLVFI
zs8tSCzJTMpJVSjPLMlQKEpNzi9KycxLB8qAtRXrcbmjG1SMZhAxhgAAUEsDBBQAAgAIABh/Bkny
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
AwQUAAIACAAqfwZJEIlyeJcAAABMAQAAJgAcAGZhc3QvY2FudmFzL2NhbnZhcy1saW5lRGFzaC1z
dGRlcnIudHh0VVQJAANQa6ZXUmimV3V4CwABBPUBAAAEUAAAANWOzwqCQBjE7z3FvECLBmYtEYhG
h7p16BAdPvXDFtb9ZF3tz9OnvUWnmfkxDJMNDbBGnOgk1asI/OzjKFVWKrKopFXUdZbVlcuTCbPk
4gK7oAoe2UrXTv62TTZRfMfu4L34vUZ+/LVe4cLhbBwX1D80jBvJmhr1lEDe01uDAixTHyCOwZbn
ObTDBEqGE7f8sBe1yP7i5RdQSwMECgAAAAAAkX0GSQAAAAAAAAAAAAAAAAkAHABmYXN0L2Nzcy9V
VAkAA1Jopld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIACt/BknbCNNCOwAAAD8AAAApABwA
ZmFzdC9jc3MvY29tcGFyZS1jb250ZW50LXN0eWxlLXN0ZGVyci50eHRVVAkAA1FrpldSaKZXdXgL
AAEE9QEAAARQAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz
0hUKivKTU4uLU1P0uABQSwMECgAAAAAAKX8GSQAAAAAAAAAAAAAAAAkAHABmYXN0L2RvbS9VVAkA
A05rpld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIACp/BkkRRO/OaQAAAGsAAAA2ABwAZmFz
dC9kb20vY2xvbmUtbm9kZS1mb3JtLWVsZW1lbnRzLXdpdGgtYXR0ci1zdGRlcnIudHh0VVQJAANQ
a6ZXUWimV3V4CwABBPUBAAAEUAAAADMyMDTTNbDQNTBTMDS1MjW3MjLQMzQ3UEjOz9VLLCjISdUL
T03yziwBUc75eSWpeSV6LqllqTn5BblAdrSlqYWRkZWZmamxqVGsgl+wU2lJSX6eY15mbmJJZn5e
sWteYlJOaoqtnz8XAFBLAwQKAAAAAACQfQZJAAAAAAAAAAAAAAAAGQAcAGZhc3QvZG9tL0hUTUxG
b3JtRWxlbWVudC9VVAkAA1Bopld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIACl/Bkmb2l3k
aQAAAGsAAABHABwAZmFzdC9kb20vSFRNTEZvcm1FbGVtZW50L25hbWVkLXByb3BlcnR5LWdldHRl
ci1yYWRpb25vZGVsaXN0LXN0ZGVyci50eHRVVAkAA05rpldQaKZXdXgLAAEE9QEAAARQAAAAMzIw
NNM1sNA1MFMwNLUyNbcytNCzMDBUSM7P1UssKMhJ1QtPTfLOLAFRzvl5Jal5JXouqWWpOfkFuUB2
tKWphbGllZmZqam5ZayCX7BTaUlJfp5jXmZuYklmfl6xa15iUk5qiq2fPxcAUEsDBAoAAAAAACl/
BkkAAAAAAAAAAAAAAAAaABwAZmFzdC9kb20vSFRNTElucHV0RWxlbWVudC9VVAkAA05rpld1bqZX
dXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIACl/BkmcMXAjaQAAAGsAAAA4ABwAZmFzdC9kb20vSFRN
TElucHV0RWxlbWVudC9jbG9uZS1pbnB1dC1jaGVja2VkLXN0ZGVyci50eHRVVAkAA05rpldOa6ZX
dXgLAAEE9QEAAARQAAAAMzIwNNM1sNA1MFMwNLUyNbcytNCzMDdWSM7P1UssKMhJ1QtPTfLOLAFR
zvl5Jal5JXouqWWpOfkFuUB2tKWppbGJlZmZhamleayCX7BTaUlJfp5jXmZuYklmfl6xa15iUk5q
iq2fPxcAUEsDBAoAAAAAAJN9BkkAAAAAAAAAAAAAAAANABwAZmFzdC9keW5hbWljL1VUCQADVWim
V3Vupld1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAK38GSf89OOhpAAAAawAAADAAHABmYXN0L2R5
bmFtaWMvY2hlY2tib3gtc2VsZWN0aW9uLWNyYXNoLXN0ZGVyci50eHRVVAkAA1JrpldVaKZXdXgL
AAEE9QEAAARQAAAAMzIwNNM1sNA1MFMwNLUyNbcyMtIzMjRTSM7P1UssKMhJ1QtPTfLOLAFRzvl5
Jal5JXouqWWpOfkFuUB2tKWphYGplZmZqaG5eayCX7BTaUlJfp5jXmZuYklmfl6xa15iUk5qiq2f
PxcAUEsDBAoAAAAAADB/BkkAAAAAAAAAAAAAAAAMABwAZmFzdC9ldmVudHMvVVQJAANca6ZXdW6m
V3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAAwfwZJWCpndTkAAABDAAAAMgAcAGZhc3QvZXZlbnRz
L2Rpc3BsYXktbm9uZS1vbi1mb2N1cy1jcmFzaC1zdGRlcnIudHh0VVQJAANba6ZXX2imV3V4CwAB
BPUBAAAEUAAAAMvNLy1O9c0vSw3JV0hLzMxJTVEoAbIy81IUEhVKEovSU0sUyjJTyxUSSxQMDQwM
9AzAQMcUzuQCAFBLAwQUAAIACAAwfwZJHIntBWkAAABrAAAASQAcAGZhc3QvZXZlbnRzL2RvbWFj
dGl2YXRlLXNldHMtdW5kZXJseWluZy1jbGljay1ldmVudC1hcy1oYW5kbGVkLXN0ZGVyci50eHRV
VAkAA1xrpldca6ZXdXgLAAEE9QEAAARQAAAAMzIwNNM1sNA1MFMwNLUyNbcyNtIzMDVSSM7P1Uss
KMhJ1QtPTfLOLAFRzvl5Jal5JXouqWWpOfkFuUB2tKWphZGZlZmZqYmhWayCX7BTaUlJfp5jXmZu
Yklmfl6xa15iUk5qiq2fPxcAUEsDBBQAAgAIADV/BkkwtW3jOQAAAEMAAAArABwAZmFzdC9ldmVu
dHMvbW91c2UtZm9jdXMtaW1hZ2VtYXAtc3RkZXJyLnR4dFVUCQADZmumV2popld1eAsAAQT1AQAA
BFAAAADLzS8tTvXNL0sNyVdIS8zMSU1RKAGyMvNSFBIVShKL0lNLFMoyU8sVEksUzA0M9AzAQEfX
EM7mAgBQSwMEFAACAAgANn8GSeeuvV87AAAAQwAAAC8AHABmYXN0L2V2ZW50cy9tb3VzZXVwLW91
dHNpZGUtZG9jdW1lbnQtc3RkZXJyLnR4dFVUCQADZ2umV2topld1eAsAAQT1AQAABFAAAADLzS8t
TvXNL0sNyVdIS8zMSU1RKAGyMvNSFBIVShKL0lNLFMoyU8sVEksUTAwMDPQMwEDH2MIUyuQCAFBL
AwQKAAAAAACYfQZJAAAAAAAAAAAAAAAACwAcAGZhc3QvZm9ybXMvVVQJAANgaKZXdW6mV3V4CwAB
BPUBAAAEUAAAAFBLAwQKAAAAAACTfQZJAAAAAAAAAAAAAAAAEAAcAGZhc3QvZm9ybXMvZmlsZS9V
VAkAA1Zopld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAJN9Bkn2NnKiaQAAAGsAAAAzABwA
ZmFzdC9mb3Jtcy9maWxlL2ZpbGUtaW5wdXQtcHJlc3NlZC1zdGF0ZS1zdGRlcnIudHh0VVQJAANW
aKZXVmimV3V4CwABBPUBAAAEUAAAADMyMDTTNbDQNTBTMDS1MjGxMrbQMzczVUjOz9VLLCjISdUL
T03yziwBUc75eSWpeSV6LqllqTn5BblAdrSlgZmZhZWZkYmxsXGsgl+wU2lJSX6eY15mbmJJZn5e
sWteYlJOaoqtnz8XAFBLAwQUAAIACAAxfwZJz04p0pAAAAC9AAAAMwAcAGZhc3QvZm9ybXMvZm9y
bS1hc3NvY2lhdGVkLWVsZW1lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUCQADXWumV2Bopld1eAsAAQT1
AQAABFAAAABtjkEOgjAUBfee4l9AUKIu2FYREkkIwgGa9kWbYD+2vyTeXl25cTWzmMXkV07BQGlz
R644oIV1+mfr7f5QZMVuk3eBheU1I+aVu9XD0H2pJgcvtfZ2glUpCj/G/vJpF2cRMkPmb6ACtKBH
nNlHHJ2RisMZ0uOZEKUkxWmy5FnIsF8QhMahIWFqm/ZE342SVm9QSwMEFAACAAgALX8GSZdEyZZp
AAAAawAAADQAHABmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwNi1zdGRl
cnIudHh0VVQJAANVa6ZXWGimV3V4CwABBPUBAAAEUAAAADMyMDTTNbDQNTBTMDS1MjW3MjLVszA0
UkjOz9VLLCjISdULT03yziwBUc75eSWpeSV6LqllqTn5BblAdrSlqaWxgZWZmYWJoUGsgl+wU2lJ
SX6eY15mbmJJZn5esWteYlJOaoqtnz8XAFBLAwQKAAAAAACXfQZJAAAAAAAAAAAAAAAADAAcAGZh
c3QvZnJhbWVzL1VUCQADXmimV3Vupld1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAMH8GSdsI00I7
AAAAPwAAAC8AHABmYXN0L2ZyYW1lcy9mcmFtZS1kaXNwbGF5LW5vbmUtZm9jdXMtc3RkZXJyLnR4
dFVUCQADW2umV15opld1eAsAAQT1AQAABFAAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/KVsgE
SiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQKAAAAAACVfQZJAAAAAAAAAAAAAAAA
DQAcAGZhc3QvaGFybmVzcy9VVAkAA1lopld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAJV9
Bkl/kqW4aQAAAGsAAAArABwAZmFzdC9oYXJuZXNzL2ltYWdlLWRpZmYtdGVtcGxhdGUtc3RkZXJy
LnR4dFVUCQADWWimV1lopld1eAsAAQT1AQAABFAAAAAzMjA00zWw0DUwUzA0tTIxsTIx1DMxM1FI
zs/VSywoyEnVC09N8s4sAVHO+XklqXklei6pZak5+QW5QHa0pYGpmbGVmZGBpaF5rIJfsFNpSUl+
nmNeZm5iSWZ+XrFrXmJSTmqKrZ8/FwBQSwMECgAAAAAAln0GSQAAAAAAAAAAAAAAAAoAHABmYXN0
L2h0bWwvVVQJAANbaKZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACACWfQZJrxMnEmkAAABr
AAAAKwAcAGZhc3QvaHRtbC9kZXRhaWxzLWNsaWNrLWNvbnRyb2xzLXN0ZGVyci50eHRVVAkAA1to
pldbaKZXdXgLAAEE9QEAAARQAAAAMzIwNNM1sNA1MFMwNLUyMbEyMdYzNLZUSM7P1UssKMhJ1QtP
TfLOLAFRzvl5Jal5JXouqWWpOfkFuUB2tKWBmaGFlZmRoaWxUayCX7BTaUlJfp5jXmZuYklmfl6x
a15iUk5qiq2fPxcAUEsDBAoAAAAAAKB9BkkAAAAAAAAAAAAAAAAMABwAZmFzdC9pbWFnZXMvVVQJ
AANraKZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQKAAIAAAA2fwZJUaeCGDEAAAAxAAAALQAcAGZh
c3QvaW1hZ2VzL2xhcmdlLXNpemUtaW1hZ2UtY3Jhc2gtc3RkZXJyLnR4dFVUCQADaGumV2popld1
eAsAAQT1AQAABFAAAABpbml0SW1hZ2VBcHBsZUpQRUc6MTQxNjogZmFsbGluZyBiYWNrIHRvIGxp
YkpQRUcKUEsDBBQAAgAIADd/Bkkhj704MgAAADMAAAAsABwAZmFzdC9pbWFnZXMvcGRmLWFzLWlt
YWdlLWNyb3AtYm94LXN0ZGVyci50eHRVVAkAA2lrpldraKZXdXgLAAEE9QEAAARQAAAAc8tJLEl1
SU3OT0m1UkgB0Zl56QqpRUX5RVYKmXnJ+UVFqcklCimJJYkKyRmpydl6XABQSwMECgAAAAAAnH0G
SQAAAAAAAAAAAAAAAAwAHABmYXN0L2xvYWRlci9VVAkAA2hopld1bqZXdXgLAAEE9QEAAARQAAAA
UEsDBBQAAgAIAC9/BknbCNNCOwAAAD8AAABSABwAZmFzdC9sb2FkZXIvZGlzcGxheS1pbWFnZS11
bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVU
CQADWmumV1xopld1eAsAAQT1AQAABFAAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/KVsgESiiU
Z2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQUAAIACAAwfwZJ2wjTQjsAAAA/AAAAUwAc
AGZhc3QvbG9hZGVyL2ltYWdlcy1lbmFibGVkLXVuc2V0LWNhbi1ibG9jay1pbWFnZS1hbmQtY2Fu
LXJlbG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0VVQJAANca6ZXXmimV3V4CwABBPUBAAAEUAAAAHMs
KUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgA
UEsDBBQAAgAIADV/BknbCNNCOwAAAD8AAAAtABwAZmFzdC9sb2FkZXIvcmVsb2FkLXBvbGljeS1k
ZWxlZ2F0ZS1zdGRlcnIudHh0VVQJAANla6ZXaGimV3V4CwABBPUBAAAEUAAAAHMsKUnNLShRKMlX
SM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAA
ADJ/BkkAAAAAAAAAAAAAAAAMABwAZmFzdC9wYXJzZXIvVVQJAANga6ZXdW6mV3V4CwABBPUBAAAE
UAAAAFBLAwQUAAIACAAyfwZJ+c2XUmkAAABrAAAAJAAcAGZhc3QvcGFyc2VyL2JhZC14bWwtc2xh
c2gtc3RkZXJyLnR4dFVUCQADYGumV2Brpld1eAsAAQT1AQAABFAAAAAzMjA00zWw0DUwUzA0tTI1
tzI20zMwMFJIzs/VSywoyEnVC09N8s4sAVHO+XklqXklei6pZak5+QW5QHa0pamFoYmVmZmpkbll
rIJfsFNpSUl+nmNeZm5iSWZ+XrFrXmJSTmqKrZ8/FwBQSwMECgAAAAAAon0GSQAAAAAAAAAAAAAA
AA0AHABmYXN0L3JlZ2lvbnMvVVQJAANvaKZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQKAAAAAACi
fQZJAAAAAAAAAAAAAAAAFwAcAGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcvVVQJAANvaKZXdW6mV3V4
CwABBPUBAAAEUAAAAFBLAwQUAAIACAA4fwZJOQHL3UAAAAB6AAAANQAcAGZhc3QvcmVnaW9ucy9z
Y3JvbGxpbmcvd2hlZWwtc2Nyb2xsLWFic3Bvcy1zdGRlcnIudHh0VVQJAANsa6ZXb2imV3V4CwAB
BPUBAAAEUAAAAHMtS80rCU7NS0ktCijKr6i0skrOzyvJzCvNLy32BeLU4OSi/Jwcp0qFzGKFvPwS
hczcgpzUXKCm1BQuV0o0AwBQSwMEFAACAAgAOH8GSTkBy91AAAAAegAAAC4AHABmYXN0L3JlZ2lv
bnMvc2Nyb2xsaW5nL3doZWVsLXNjcm9sbC1zdGRlcnIudHh0VVQJAANsa6ZXb2imV3V4CwABBPUB
AAAEUAAAAHMtS80rCU7NS0ktCijKr6i0skrOzyvJzCvNLy32BeLU4OSi/Jwcp0qFzGKFvPwShczc
gpzUXKCm1BQuV0o0AwBQSwMEFAACAAgAOH8GSeSKx0M8AAAAPQAAAEAAHABmYXN0L3JlZ2lvbnMv
c2Nyb2xsaW5nL3doZWVsLXNjcm9sbGFibGUtc2luZ2xlLXJlZ2lvbi1zdGRlcnIudHh0VVQJAANs
a6ZXb2imV3V4CwABBPUBAAAEUAAAAHMtS80rCU7NS0ktCijKr6i0skrOzyvJzCvNLy32BeLU4OSi
/Jwcp0qFzGKFvPwShczcgpzUXKCm1BQuAFBLAwQKAAAAAAA4fwZJAAAAAAAAAAAAAAAADwAcAGZh
c3Qvc2Nyb2xsaW5nL1VUCQADa2umV3Vupld1eAsAAQT1AQAABFAAAABQSwMECgACAAAAN38GScUL
tbMlAAAAJQAAADoAHABmYXN0L3Njcm9sbGluZy9hcnJvdy1rZXktc2Nyb2xsLWluLXJ0bC1kb2N1
bWVudC1hY3R1YWwudHh0VVQJAANqa6ZXamumV3V4CwABBPUBAAAEUAAAAEZBSUw6IHNjcm9sbExl
ZnQgaXMgMCwgZXhwZWN0ZWQgLTEyMApQSwMEFAACAAgAN38GSfPbyRmlAAAATgEAADgAHABmYXN0
L3Njcm9sbGluZy9hcnJvdy1rZXktc2Nyb2xsLWluLXJ0bC1kb2N1bWVudC1kaWZmLnR4dFVUCQAD
amumV2trpld1eAsAAQT1AQAABFAAAAC9T8sOgjAQvPMVvdd1waMnMGpi5GAkkXOF1TSu1LTbCH8v
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
AAEE9QEAAARQAAAAUEsDBAoAAAAAAKh9BkkAAAAAAAAAAAAAAAAYABwAaHR0cC90ZXN0cy9jYW52
YXMvd2ViZ2wvVVQJAAN7aKZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACABBfwZJTbCcwsIA
AAAXAQAAOwAcAGh0dHAvdGVzdHMvY2FudmFzL3dlYmdsL29yaWdpbi1jbGVhbi1jb25mb3JtYW5j
ZS1zdGRlcnIudHh0VVQJAAN6a6ZXe2imV3V4CwABBPUBAAAEUAAAAJ2OTWrDMBSE9znFHKAVUh3H
sSiB/Gy6C/GiBZOF4jzLokIK0jMtPX2URS7QWQ7M902val2vtXwTy6o6470E+9N212FTgtHPeTpS
uLpgT+TJZOqINXr524ymVUNTtfVFnrHzcfiGxGQyQgyvf5QiEo0Y4hwYy8V2tsAKTx3oJyvZiDIz
HomHRLeYuGj6tl6rtlz5CGPcaPhobamR2STOQoh/oA50mW1hueD40/HUUc4uhodB4+u4L5cZFNix
p+sL1OIOUEsDBAoAAAAAAK19BkkAAAAAAAAAAAAAAAAdABwAaHR0cC90ZXN0cy9jb250ZW50ZXh0
ZW5zaW9ucy9VVAkAA4Zopld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAEd/Bkl9b5VBewAA
AK4AAAA6ABwAaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy90ZXh0LXRyYWNrLWJsb2NrZWQt
c3RkZXJyLnR4dFVUCQADhWumV4Zopld1eAsAAQT1AQAABFAAAACVzTEKwkAQRuE+p/gPIItLiCaL
CEEbO8FCQSxiHNeBZUZ2J3h94xFsX/G9forACr4JTRt8DfoUv1y7pOOQkG3M9NZsLPHaNW3d3bA5
yFO3AUljnDOKDdmKc67q/6b2dJ/ibLGwndleJyqFVX6HgMtxB1EDibEleizgqy9QSwMECgAAAAAA
qH0GSQAAAAAAAAAAAAAAABwAHABodHRwL3Rlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvVVQJAAN7aKZX
dW6mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACABBfwZJs9RFB2IBAADvCAAAOwAcAGh0dHAvdGVz
dHMvY29udGVudGZpbHRlcmluZy9hbGxvdy1hZnRlci1yZWRpcmVjdC1zdGRlcnIudHh0VVQJAAN6
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
0AuZq28lis9VFiiVmCuNmdB50Ozsfp0amVWY7zLBUgsUPjiUsBVG7pWkqmUtuQROAsRJwRPfZZvo
WzglDLXBuYHWncOvoP5+L5ytYTQYDuMIyMJoOJ1M4wuH/6k7C87xCs9abrgGnnR+AVBLAwQUAAIA
CABGfwZJ+0H29LAAAACVAQAALAAcAGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1wcm9ncmVzcy1z
dGRlcnIudHh0VVQJAAOEa6ZXhmimV3V4CwABBPUBAAAEUAAAAL2P0QqCQBRE3/uK+YCQLDTbQpCK
6KEQJAqkB8ubLemu7N6l38+KoB+o5xnOmcn9QASR8IdeMBodMcuWq3S3SWMkzNS0vCW+a3PbaCVZ
m4zYtQJKMywxS1XBtVDvDpp3aYqiLA1ZC2lR63NR9/K/WBJXASE+LtDd+oOx9wph+Gyo1eaJyydB
NI66HQs6uSoWkB1yL/madTyp1VpdtMAhnb82kGLJNZV9+F9HwsHvjjwAUEsDBBQAAgAIAEd/Bknc
DKkhsQAAAJUBAAAwABwAaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLXZpZGVvLXJlc2l6ZS1zdGRl
cnIudHh0VVQJAAOFa6ZXhmimV3V4CwABBPUBAAAEUAAAALWPwQqCQBRF933F/YAIp7BsikAqokUh
SBRIC8uXDdmMzDzx98sk8Adcv8s57yTCl34gxWQkvOCKZbzdRadDtELITO+Sj8S1sa+D0YqNjYmr
UkIbhiNmpXNUJXS7wbsdLZBmmSXnoBwKc0+LQdKxzHuzhFUOTPF3gWonvNnod4Tlu6XS2AaXzP1g
1tRu6FblKwn1RZ4VP+MvTxm91w8jcYnWvx9Is+KCsiFEN2Ts9RbyAVBLAwQUAAIACABHfwZJegdJ
EL8AAAAqAwAAPQAcAGh0dHAvdGVzdHMvbWVkaWEvaGxzL3ZpZGVvLWNvbnRyb2xsZXItZ2V0U3Rh
cnREYXRlLXN0ZGVyci50eHRVVAkAA4VrpleGaKZXdXgLAAEE9QEAAARQAAAA3ZJBCsIwEEX3nuIf
QMTYVmsUoaiIC6VQRKG4qHaswZqUZIrXtyqCF9CF6/m89z9MKgIZhFJ4Ha/n7zFO5ot4s4oniJjp
WvGa+GbsZWW0YmMT4rqS0IbhiFnpAnUF/crg+gqNkOW5JeegHEpzzMpW+mEJfmHxxE8sva9ZoroA
+ni7QDcnuoPO8wjLR0uVsQ9cOgzCQdj0mNGhLiYSqkFuFZ+ThqeMXuqTkdjF02cH0qy4pLwN8TnE
7/7LkO/98B1QSwMEFAACAAgAr30GST7MEZgtAAAALgAAADoAHABodHRwL3Rlc3RzL21lZGlhL2hs
cy92aWRlby1jb250cm9scy1saXZlLXN0cmVhbS1hY3R1YWwudHh0VVQJAAOKaKZXimimV3V4CwAB
BPUBAAAEUAAAAONyDXP1C9EoLknMyUlN0VQIcQ0O0UhLzClO1VRwc/T04XL1c1HwdwOLc3EBAFBL
AwQUAAIACACvfQZJuN7YxysCAABdBwAAOAAcAGh0dHAvdGVzdHMvbWVkaWEvaGxzL3ZpZGVvLWNv
bnRyb2xzLWxpdmUtc3RyZWFtLWRpZmYudHh0VVQJAAOKaKZXimimV3V4CwABBPUBAAAEUAAAAL1V
wW4aMRC98xW+BUSGbdSeIkWiLRspSpVUDUoqVT14vQNYeO2VPSZEysd3vJCIFihLI/XEMjvvzZvn
8SwAiOzemVhhyEaSZJY/3GUPWFxrWv98itqU2Tc0KANmRj65SEAYCDyGaChkM6I6S5GQVVhqmc1M
yBa6RAfKWfLOBDB6gRDIo6wAlzUqwnJAS+r0+/3/r0AqitI09YdDAWen79+J/tnpBzEcdkQH8vv8
ZtxV0tZcjGbexems9xJOsfTn+9f88zgfiW5TZ1BGL0k7Ky4uxMmVnWir6emkJ26vOwCPWMw1QaON
lS9Zvpdq3oiT2qI/F8rIEDCcix8zXZZof/4JCzP3+NrNZv5W5mvLKnqPlovpCqHUIUnfRCrjLIqg
l/xyqld5+9kaFo8VC9Z2+na+R+35SEOARFMkOwJJiqGFF3/hSO62c2c3FsjVb8IXjshV7ShqadFs
pqZDFrWMAcsDKEgVpzyattw9Ru3xm6hVbZF0HCIgbVs6nQyCIrIvdrvWfthqHHYNGmMsj9pmqIqE
7P1yP92iWTIQDN9Xv9uzdQrTCJbGO4M88IMHbhX9RCqE9fop+fBVuu9H19tj/PE87f3/jaEdZGXn
1pEdcxtqreap3S2SQ5ea3HRqEHib8HiAknXyOfwD0SQaE5RHtLtbGed3425aUoYNTYvbMkA8P4uX
2IBnTxYGy2aP91cfAB5L04Qa+ESagD1x+fHqS0fkNyNxe9m84O/IL1BLAwQUAAIACACvfQZJzuug
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
LqDPVwX9VbXaszBbnzywgG5NuzJagz6LbpYq8ugisoyZjpwlJL/p2m45f4d9SDvuDSJ7XzGKuCxF
qf9E3dH25GtWSEFeg+wHKiVw+vlg8PZ8i8QCShIk0lT7z74BUEsDBAoAAgAAAEZ/Bkn2BqYgYwAA
AGMAAAAqABwAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1zdGRlcnIudHh0VVQJAAOE
a6ZXhGimV3V4CwABBPUBAAAEUAAAAEF1ZyAgNiAxNTo1ODoxMiBld3MxMDcubG9jYWwgcnRjcmVw
b3J0aW5nWzk1OTcyXSA8RGVidWc+OiBpbml0V2l0aFNlc3Npb25JbmZvOiBYUEMgbm90IGVudGl0
bGVkLCAxClBLAwQKAAIAAABHfwZJ9gamIGMAAABjAAAAOQAcAGh0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtcGxheS1zdHJlYW0tY2h1bmtlZC1pY3ktc3RkZXJyLnR4dFVUCQADhmumV4Zopld1eAsAAQT1
AQAABFAAAABBdWcgIDYgMTU6NTg6MTIgZXdzMTA3LmxvY2FsIHJ0Y3JlcG9ydGluZ1s5NTk3Ml0g
PERlYnVnPjogaW5pdFdpdGhTZXNzaW9uSW5mbzogWFBDIG5vdCBlbnRpdGxlZCwgMQpQSwMECgAA
AAAAvX0GSQAAAAAAAAAAAAAAAB4AHABodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9VVAkA
A6Vopld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAEx/BkmiNbZqxgAAAPUAAABCABwAaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYXBwZW5kLWJ1ZmZlci1zdGRl
cnIudHh0VVQJAAOQa6ZXjmimV3V4CwABBPUBAAAEUAAAAEWPQUvDQBCF7/6KubU9NLuJTZSCF6tB
D4FC8SRSht1Ju7iZKbMbsf/e9NB6+3g8Ht/7LOt1/biubPFgmy/oFQ8dcugl+v12TMfnc6YEKRwY
YyQPpPq0LBu7amD+3YZb+VVVdP/B9Hsil8m/c8gvmHEB8x05YQ+zPp9PM8AsAxA7GTmTkl9MCZid
jOpog+5IZiNKHfmA/7Qs66YqqpU1W5Us0xAl04oOmN+QfSRNppOfQOaidIF2OjIQ56tf4SAGJiib
e3v3B1BLAwQUAAIACABMfwZJC4IsDswAAAA4BAAAOwAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNsb3NlZC1zdGRlcnIudHh0VVQJAAOQa6ZXjmimV3V4CwABBPUB
AAAEUAAAANWSu47CMBBF+/2K+QEiO8SOk45Hg6ADLcVqi0kygCXHjmwDCl+/pt8mVXarGY10NUdH
N2dcLphaMAlc1ELVeZGxkkPr+gyHwVB2pmav43tsnI1kY7alBxk39Gn/qoTiVS1LLir5DburdV7b
a4rb6J056Z4aDASBIjQjtEanEDTU4j1dV59H7NOP9f1yIb/VYTA4HnAkD08MgF1HHUQHCGG07c07
q1/kP/JfmYupzFJUKp+XWU72XJSKzcuspnteFvN6VuwfMi//dJ9/AFBLAwQUAAIACABNfwZJ6BHV
bNMAAADfAgAAUAAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNv
bmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS1zdGRlcnIudHh0VVQJAAOSa6ZXkGimV3V4CwABBPUB
AAAEUAAAAOWPzWrDMBCE732KvSU5xLJc2YRAL01r2oMhEHoKJQhpnYjK2rBal+bt6xz68w65DcMw
fN9e1+t6ta5MYYx+h57tsbMp9BT9YTvm0+NFMEMOx2RjRA/I/LDUTWkamH+04Xf8zEx8eEv4dUYn
6F9TkCcrdgHzHTpKHma9XM4zsEIDYHI0JkFGv5gaUDsa2eHGuhOqDTF26IP9S0tdN1VRmVJtmYSm
I8yqJR6svNjkI3JWHX0GVFeka2gnkQGT/PAVDmJICLq5L+/2/6RXNyhdm1uR/gZQSwMEFAACAAgA
Tn8GSQDtLIBKAQAAkwMAAFIAHABodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lcmF0ZS1zdGRlcnIudHh0VVQJAAOUa6ZXkmim
V3V4CwABBPUBAAAEUAAAAOWQzU4rMQyF9zyFd8Ci80cn/ZFYQEsFgkpI5d67QFfITTxtRCYeORlg
eHrSBSCegZWPLB/7fK6KUo2K6ahQUNbzejqvVDZWE9DcZth1jrJ/tL218VAW7CP5mC3phRx3bdKP
s3pazuZqUkzK6j/c7DyL9btk91HYPdiWthgIAkXYDqCdTSbYksY+dS/+brBNNy77piFZ2tA5HO5w
IIFXDIDGkIHIgBAGr/fC3r6THD1+JVVFOtoI7tbobcPOPN33YX85RAoQ7M6jc2kDiZyPSlWMFZw8
r+zX8JUIy9MfT28d6Ujmxtu4xIincLKhRGDguIlDdwwYuQXymvv0ACFzmjqQb7gXTQvUe8oXLLQm
Y/FbjcpaVVk1LvJ74chpEYV8xdJivEZvHEnI1/xiKT9EOohVAjk89TNfpsFZT1Cqs+IH9OwXQpf1
b4H+AFBLAwQUAAIACABQfwZJMv1+0J4AAAC0AAAATQAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWVuZG9mc3RyZWFtLWludmFsaWRlcnJvci1zdGRlcnIudHh0VVQJ
AAOXa6ZXlmimV3V4CwABBPUBAAAEUAAAABWNsQ6CMBRFd7/i/QBNSwJUNpXF6KbRwTi8wgOblJa0
RVO/3jrdk5Oc3JKLuuCy4DWIqq1kW0pWlxJ6NzNcFkPsTuqk438OzkaykXX0JuOWOfNjW0mxbeuG
N6J8wnGyzms75dxG78xVz6QwEASKoBL0RucIFPW4Zru7XXDOH/t1HMl3OiwG0xkTefhgABwGGiA6
QAjJ9i/vrP6S3/wAUEsDBBQAAgAIAFR/BkkK3PjgngAAALQAAAA7ABwAaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcmVtb3ZlLXN0ZGVyci50eHRVVAkAA59rpledaKZX
dXgLAAEE9QEAAARQAAAAFY07DsIwEAV7TrEXSJQPtpJ0QBoEHQgKRLFONsGSP5HtgMzpMdUbjTR6
VVHyrGiygkPJOtZ0Nc/rlsNgdY7Loii/kzjJ8J+DNYFMyHt6k7KLTvxoWVO2Hees3lZPOM7GOmnm
lJvgrLpKTQI9gacAIsKgZIpA0IBrsrvbBXX62K/TRK6XflEYzxjJwQc94DjSCMECgo9meDlr5Jfc
5gdQSwMEFAACAAgAVn8GSUg0cifAAAAAhAMAAEYAHABodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1zb3VyY2VidWZmZXItbW9kZS1zdGRlcnIudHh0VVQJAAOja6ZXoWim
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
HABodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWxvYWQtdHdpY2Utc3RkZXJyLnR4dFVUCQADkmumV5Zo
pld1eAsAAQT1AQAABFAAAABzLE1XUDBTMDS1MrWwMjJTSC0vNjQw18vJT07MUSgqSS5KLcgvKsnM
S4+2NLU0N4pVsHFJTSpNt7NSyMzLLAnPLMkITi0uzszP88xLy7dSiAhwVsjLL1FIzSvJLMlJTdFR
MORypL0VAFBLAwQKAAIAAABNfwZJDSQMemMAAABjAAAALwAcAGh0dHAvdGVzdHMvbWVkaWEvdmlk
ZW8tcGxheS1wcm9ncmVzcy1zdGRlcnIudHh0VVQJAAOSa6ZXlmimV3V4CwABBPUBAAAEUAAAAEF1
ZyAgNiAxNTo1ODoyNiBld3MxMDcubG9jYWwgcnRjcmVwb3J0aW5nWzk1OTcyXSA8RGVidWc+OiBp
bml0V2l0aFNlc3Npb25JbmZvOiBYUEMgbm90IGVudGl0bGVkLCAxClBLAwQUAAIACABPfwZJv3b9
QrIAAAAvAQAAKgAcAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVkaXJlY3Qtc3RkZXJyLnR4dFVU
CQADlmumV5popld1eAsAAQT1AQAABFAAAAC9zktuwjAUheF5V3EWUJCTNAQshETCpDNEBiBFDPK4
Saxa18i+UauuHk/YAv/86DtNkut8qzO1/sqyO/YxVJdjWeMQw2iXMJ+JB8PThSy1gWoSjUb9FSMV
6Sbtkr5Td5TW9T9QmNsAdrz6J+/gaUTvFhZkH8dlAjZ4caDfkKhiHWethZfe08N5iUyzy3dFGq+c
qFumg4ZhI1cjc00hGMffPDqN27mKjoBYjFgaPpG8g3gCUEsDBAoAAgAAAFB/Bklh3bzZYwAAAGMA
AAArABwAaHR0cC90ZXN0cy9tZWRpYS92aWRlby11c2VyYWdlbnQtc3RkZXJyLnR4dFVUCQADl2um
V5popld1eAsAAQT1AQAABFAAAABBdWcgIDYgMTU6NTg6MzAgZXdzMTA3LmxvY2FsIHJ0Y3JlcG9y
dGluZ1s5NTk3Ml0gPERlYnVnPjogaW5pdFdpdGhTZXNzaW9uSW5mbzogWFBDIG5vdCBlbnRpdGxl
ZCwgMQpQSwMECgAAAAAAzX0GSQAAAAAAAAAAAAAAABAAHABodHRwL3Rlc3RzL21pc2MvVVQJAAPC
aKZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACABMfwZJnzfkztUAAAAXAQAAPwAcAGh0dHAv
dGVzdHMvbWlzYy9kZWxldGUtZnJhbWUtZHVyaW5nLXJlYWR5c3RhdGVjaGFuZ2Utc3RkZXJyLnR4
dFVUCQADkGumV5Fopld1eAsAAQT1AQAABFAAAABNjlFLwzAUhd/3K+6jgitJXWMWxJfWvVhkIOLD
GCO2d/NimoT0rqK/3hQUduBw7oUD5yuFVEuhl0KBrEylTbkqtCqhC0NhY3RYvOH7E/EcdfCMnosG
J3QhDvnerau11kbdSalWe9imEDHxNzgaGchP1lEPx5BmD5YNSCHgKl7WRuis94HzpGdLHp5f2/Z6
sbvAud3DfRZsmnp7aGkgxh4esmBDp7+/ofGztt0HZoaJekyHF+R/HgOPKWWKr0RM/gThnOfmMhzJ
4Q1wOvvOMgIH+MEUFr9QSwMEFAACAAgATH8GScc/ndnVAAAAFwEAAFsAHABodHRwL3Rlc3RzL21p
c2MvZGVsZXRlLWZyYW1lLWR1cmluZy1yZWFkeXN0YXRlY2hhbmdlLXdpdGgtZ2MtYWZ0ZXItdmlk
ZW8tcmVtb3ZhbC1zdGRlcnIudHh0VVQJAAOPa6ZXkWimV3V4CwABBPUBAAAEUAAAAE2OQUvDQBSE
7/0Vc1SwYbc2aRrES2IvBimIeCilbJPX+jDZXTavEf31bkChA8O8BwPzLZTO5iqfqww6LdK8WNwn
q3yJxvWJ8b6j5J2OzyxTlM4KWUkqGqlzvo/3bp2u87zIVlpnyz22wXkK8o2OBwHb0XTc4uTC5N5I
Aa0Ubvx1bUBjrHUSJ60Ytnh5q+vb2e4aZ4+HKGyqcnuouWehFo9R2PD57694+CxN80GRYeSWwuGV
5J+nwFMIkeIrsLA9w13i3FTGiTu6g4SLbYwQxOGHgpv9AlBLAwQUAAIACABgfwZJFTU1knoAAAC8
AAAAKgAcAGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJyLnR4dFVUCQADtGum
V8Jopld1eAsAAQT1AQAABFAAAACNjkEOwyAMBO95hT9AIO2hFb8hxFUsGYyMkfr8EuUD1V5WO4fZ
LKURJyOpgKqiET7ECKdZi95vj9caZrb4DiH4Qj17xS5DM3b/7WxuT4ej0kTNDaV1bsBUEZ6AjAWr
wU2XSeJdIcKoaZ8aE2BJx3+6Kn3k87qXLDEvP1BLAwQKAAAAAACwfQZJAAAAAAAAAAAAAAAAFgAc
AGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9VVAkAA4topld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQA
AgAIAEh/BknbCNNCOwAAAD8AAAA3ABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZhbGxiYWNrLWFu
Y2hvci1yZWxvYWQtc3RkZXJyLnR4dFVUCQADiGumV4topld1eAsAAQT1AQAABFAAAABzLClJzS0o
USjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQK
AAAAAADDfQZJAAAAAAAAAAAAAAAAFAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQJAAOuaKZXdW6m
V3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACABHfwZJt2Pmr3sAAACuAAAAVQAcAGh0dHAvdGVzdHMv
c2VjdXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLXJlbW90ZS12aWRlby1ibG9ja2VkLW5vLWNyb3Nz
b3JpZ2luLXN0ZGVyci50eHRVVAkAA4ZrpleGaKZXdXgLAAEE9QEAAARQAAAAlc0xCsJAEEbhPqf4
DyBLFonGRYSgjZ1goSAWMY6bgWVGdid4feMRbF/xvW6KwAq+CU0b/BL0Kb5eu6RDn5BtyPTWbCzx
tmlaX9+xPcpLdwFJY5wzivXZinOu6v6mDvSY4myxsF3YxjOVwiq/Q8D1tIeogcTYEj0X8NUXUEsD
BAoAAgAAAEh/BknW683DYwAAAGMAAABIABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVt
b3RlLXJlYWQtcmVtb3RlLXZpZGVvLWxvY2FsaG9zdC1zdGRlcnIudHh0VVQJAAOHa6ZXh2imV3V4
CwABBPUBAAAEUAAAAEF1ZyAgNiAxNTo1ODoxNCBld3MxMDcubG9jYWwgcnRjcmVwb3J0aW5nWzk1
ODEwXSA8RGVidWc+OiBpbml0V2l0aFNlc3Npb25JbmZvOiBYUEMgbm90IGVudGl0bGVkLCAxClBL
AwQKAAIAAABJfwZJVY5P32MAAABjAAAARwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY2FudmFzLXJl
bW90ZS1yZWFkLXJlbW90ZS12aWRlby1yZWRpcmVjdC1zdGRlcnIudHh0VVQJAAOKa6ZXi2imV3V4
CwABBPUBAAAEUAAAAEF1ZyAgNiAxNTo1ODoxNyBld3MxMDcubG9jYWwgcnRjcmVwb3J0aW5nWzk1
ODEwXSA8RGVidWc+OiBpbml0V2l0aFNlc3Npb25JbmZvOiBYUEMgbm90IGVudGl0bGVkLCAxClBL
AwQKAAAAAADCfQZJAAAAAAAAAAAAAAAAKgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L1VUCQADrGimV3Vupld1eAsAAQT1AQAABFAAAABQSwMECgACAAAAR38GSQKj
66ljAAAAYwAAAEsAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9h
dWRpby1yZWRpcmVjdC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAA4VrpleGaKZXdXgLAAEE9QEAAARQ
AAAAQXVnICA2IDE1OjU4OjEzIGV3czEwNy5sb2NhbCBydGNyZXBvcnRpbmdbOTU5NjFdIDxEZWJ1
Zz46IGluaXRXaXRoU2Vzc2lvbkluZm86IFhQQyBub3QgZW50aXRsZWQsIDEKUEsDBBQAAgAIAEd/
BkmgTU50ewAAAK4AAABMABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvYXVkaW8tcmVkaXJlY3QtYWxsb3dlZDItc3RkZXJyLnR4dFVUCQADhWumV4Zopld1eAsAAQT1
AQAABFAAAACVzTEKwkAQRuE+p/gPIIuLJJpFhKCNnWChIBYxjpuBZUZ2J3h94xFsX/G9bopAA1+H
ehP8CvQpfrl2SYc+IduQ6a3ZWOKtrdvG37E9ykt3AUljnDOK9dmKc67q/qYO9JjibLGwXdjGM5XC
Kr9DwPW0h6iBxNgSPRfw1RdQSwMEFAACAAgAR38GSVQ1q7CnAAAAigEAAFgAHABodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ibG9iLXVybC1kb2VzLW5vdC1tYXRjaC1z
b3VyY2Utc2VsZi1zdGRlcnIudHh0VVQJAAOFa6ZXhmimV3V4CwABBPUBAAAEUAAAAN2PsQ6CMBRF
d7+iIw5QKaBI4qBEEwcjCSMx5FlesFopea0m/L0YB/0Gt3Onc24VJlmSZmEUxGl0YsrhHezQybpE
V5DpkdzArGo70BobhkQrPxSLNGHebafaDVg8nq8o3ZbIUL3vnqBVAw6bKfPU7wLHeGkeJDEHeUGe
G8IDNgq+5IfJXAQinvFR7YwberS80DAg8VH2oXr97gsk06pDJsQymlT/cOIFUEsDBAoAAAAAAK59
BkkAAAAAAAAAAAAAAABEABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy9VVAkAA4hopld1bqZXdXgLAAEE9QEAAARQAAAA
UEsDBBQAAgAIAEl/BklS1DiN6QAAACYDAAB5ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy91cGdyYWRlLWluc2VjdXJl
LWF1ZGlvLXZpZGVvLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUCQADiWumV4hopld1eAsAAQT1
AQAABFAAAADNUT1PwzAQ3fkVN8JAErdpXLxVKYiBAUVlqhiMcy0WsR3ONgO/nmupEAMCqQMgL3e+
9yW9tZip2VwJWVxMm3u4Xq1uO3zOGBNs7PbT2hLqhJdEgdrgHPqkAL0J2Sck7EF7wN1RQfaEJmy9
feXvx5RGIIxj8BGhrqqT9feOjD+sS9t3aNC+YHfgt3oYHrR5Uqy4P3yhD6f7GHAuJk0jz2DD8w6k
ylJMZFHxE2pe19OSWSGTwVgmdivcWP+UjddlduOV9Xq4624WngO6kHDR9ywWFej3AT6cmMZYyDQc
F0L+eiXyH1ci/6qSN1BLAwQKAAAAAACvfQZJAAAAAAAAAAAAAAAAPQAcAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9VVAkAA4lopld1
bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAEd/Bkk+cApAewAAAK4AAABTABwAaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL2FsbG93
LWF1ZGlvLXN0ZGVyci50eHRVVAkAA4VrpleGaKZXdXgLAAEE9QEAAARQAAAAlc0xCsJAEEbhPqf4
DyCLi0bjIkLQxk6wUBCLGCfrwDIjuxO8vvEItq/4XjtGYAVfh7oJfgH6FD9fu6R9l5Ctz/TWbCzx
tqkbv7xje5RBdwFJY5wyinXZinOuav+mDvQY42SxsF3YXmcqhVV+h4DraQ9RA4mxJXrO4KsvUEsD
BBQAAgAIAEh/BknbAXBergAAAMwAAABTABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL2FsbG93LXZpZGVvLXN0ZGVyci50eHRVVAkA
A4hrpleJaKZXdXgLAAEE9QEAAARQAAAANc7BioMwFIXhfZ/iPEBbDNWqYShUZzO7UhctSBdqbzRM
uCnJlRnm6Seb/vvDd3pV6KLS6rivD+UDHym013PT4ZSCcWtcLsRPy/OVHA2ROhKNPvstzZjnVFcH
M2YPNM5P38iwDBHsefdHwSOQweRXFuSb8zoDR7w50E9UWblPs8EhyBTo5YMkpq+LSuXpyieN63zS
sGzlZmXpKEbr+YuN17hf2uQIiMWKo+cWavMPUEsDBAoAAgAAAE9/Bkn3rkuWYwAAAGMAAABLABwA
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdmlkZW8tcmVkaXJlY3Qt
YWxsb3dlZC1zdGRlcnIudHh0VVQJAAOVa6ZXomimV3V4CwABBPUBAAAEUAAAAEF1ZyAgNiAxNTo1
ODoyOSBld3MxMDcubG9jYWwgcnRjcmVwb3J0aW5nWzk1OTYxXSA8RGVidWc+OiBpbml0V2l0aFNl
c3Npb25JbmZvOiBYUEMgbm90IGVudGl0bGVkLCAxClBLAwQKAAIAAABPfwZJ965LlmMAAABjAAAA
TAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3ZpZGVvLXJlZGly
ZWN0LWFsbG93ZWQyLXN0ZGVyci50eHRVVAkAA5VrpleVaKZXdXgLAAEE9QEAAARQAAAAQXVnICA2
IDE1OjU4OjI5IGV3czEwNy5sb2NhbCBydGNyZXBvcnRpbmdbOTU5NjFdIDxEZWJ1Zz46IGluaXRX
aXRoU2Vzc2lvbkluZm86IFhQQyBub3QgZW50aXRsZWQsIDEKUEsDBAoAAgAAAE9/BkkUpHBbYwAA
AGMAAABmABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdmlkZW8t
d2l0aC1odHRwLXVybC1hbGxvd2VkLWJ5LWNzcC1tZWRpYS1zcmMtc3Rhci1zdGRlcnIudHh0VVQJ
AAOWa6ZXomimV3V4CwABBPUBAAAEUAAAAEF1ZyAgNiAxNTo1ODozMCBld3MxMDcubG9jYWwgcnRj
cmVwb3J0aW5nWzk1OTYxXSA8RGVidWc+OiBpbml0V2l0aFNlc3Npb25JbmZvOiBYUEMgbm90IGVu
dGl0bGVkLCAxClBLAwQUAAIACABQfwZJY6qsbIIAAACoAAAAQAAcAGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAA5drpler
aKZXdXgLAAEE9QEAAARQAAAALY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1y
tsKbF6kEVdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUw
ziHQD9gB+DRoekNtXCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQUAAIACABQfwZJY6qsbIIAAACo
AAAAUgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFm
ZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAkAA5drplesaKZXdXgLAAEE9QEAAARQ
AAAALY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5S
CMttnePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeS
yp2WOdKOza8xRJuC7GpN1PGavlBLAwQKAAIAAABMfwZJrqzlhWMAAABjAAAAPQAcAGh0dHAvdGVz
dHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc291cmNlLWZyb20tcmVtb3RlLXN0ZGVyci50eHRVVAkA
A49rpleTaKZXdXgLAAEE9QEAAARQAAAAQXVnICA2IDE1OjU4OjIzIGV3czEwNy5sb2NhbCBydGNy
ZXBvcnRpbmdbOTU4MTBdIDxEZWJ1Zz46IGluaXRXaXRoU2Vzc2lvbkluZm86IFhQQyBub3QgZW50
aXRsZWQsIDEKUEsDBAoAAAAAAK99BkkAAAAAAAAAAAAAAAAhABwAaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvVVQJAAOJaKZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACABKfwZJ
qvzb0mgAAADGAAAATgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJl
LWF1ZGlvLXZpZGVvLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUCQADi2umV4lopld1eAsAAQT1
AQAABFAAAABzLE1XUDBTMDS1MrWwMrRQSC0vNjQw18vJT07MUSgqSS5KLcgvKsnMS4+2NLUwNIlV
sHFJTSpNt7NSyMzLLAnPLMkITi0uzszP88xLy7dSiAhwVsjLL1FIzSvJLMlJTdFRMORypL0VAFBL
AwQUAAIACABWfwZJaaDJdGwAAADGAAAAOQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jv
c3Mtb3JpZ2luLWNhY2hpbmctc3RkZXJyLnR4dFVUCQADo2umV6topld1eAsAAQT1AQAABFAAAABz
LE1XUDBTMDS1MrWwMjFSSC0vNjQw18vJT07MUSgqSS5KLcgvKsnMS4+2NLUwNIhVsHFJTSpNt7NS
yMzLLAnPLMkITi0uzszP88xLy7dSiAhwVsjLL1FIzSvJLMlJTdFRMORyRLHCmBZWAABQSwMEFAAC
AAgAV38GSWBLZhCRAAAA+wEAAEUAHABodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNs
LWRvY3VtZW50LXNlY3VyaXR5T3JpZ2luLXN0ZGVyci50eHRVVAkAA6ZrpleuaKZXdXgLAAEE9QEA
AARQAAAA7Y4xDoMwDEV3TuELhASWVplh6NKeAQVTIpkksp0Kbl869AYdq7++r/dC3kqkSWNOgMyZ
PSyREFbV4q3t+kvrznX+6pyzgqFy1MPuImYY77dxMLuQmXOoGyY1X+DB8RlTu28EFBNCD0j4IUD0
IJQVUZvz6V/Icro95EQHdK2DBSetjAITI0gtJbPi3IR/6I9D31BLAwQUAAIACAANfwZJWwRYDqIF
AABNEAAACgAcAGh0dHBkLmNvbmZVVAkAAxlrplcAbaZXdXgLAAEE9QEAAARQAAAArVdtb9s2EP6u
X0G4MLAVk5y4cecVQQDXcZYsSZ1ZTgMsSQ1aoiTWEqmRVGJ76377jpTlF8lRA2wOEInH57k7HY/H
o0vEExEjzhVqtDIpGpZ1nSkyRwGNyYeWStLWHZleUmXdUP8MZADbCFuRUqnvpNRvWK7HBfnIsXgR
JjViqhFgZUwTwjOF3h0cWJeEpL2YPhE0ZNY1nq/HI/JnRqSS6HAbVVAPO+AsZW6KBXHNdwBQ83ck
HctVWKgdwErvHRczI+scaGmfM0Y8RTmTN0T0Ixr72jD8LOuKY/+a+xl8Gc4Up8wn80mSC2I6JXPi
tXCKvYi0WyCerEGO5NvkjNG5X0c0gBIJex6RcuLxJMWq1uo2sKwkUxGb6CX4jt8r1B768lX05cv0
iEv1fbpGleiUeXHm15peQUrEmIfgDgtoWMfdoEr0iGAfMqSOu4KUiFLGdSSYLhESSOo6hp4vx1TS
Ws/0fInihbSOAdMlAiMhVxTrTVFH3IJpBW+2ly7BIUlwWrt2K0wl781mrM94AykTY4rraRpQIgny
LKiqXYQVpERMo7RTsFa/MhnGGqWJVl6JPuGEoMP2z84B/B1a1vEpFVB8uFig1omldQxT82noQpcR
ItEZj2P+7C6SK8pmEl1nsaKfKXmWaACm+r9eANJsAWnoPY0egiVBfaJHuVIByQrxgbmffMIWGygK
BE/0jHXcWvtyYlk9U1N0TTcuO5HKqwy4rIUS/YMaXx6cH+7Po8f7sXr8+/7Uf7x35eNE//uxcfKy
3VN42ZjVEhdSSAYL4+5xy+gHF24l6WPGGfVwbJyAY+IcigSD9yvOZ1kq0TAIdJUOr8gTidEzFsyy
BkJwAbLdw4hoqd7yjpqrhiGdcZFgOAGbEWrGqJmhpkIPjaZ4aKDmiUTNqR79NSIBEUR8oyDWY3BL
2L2QMKVFDQRld0oZ8V+nsXlqGAlnO/iNFWSfoOZtA/LSCHZRxjbObTeQeSkyy6UhwyoTJkzW8UVQ
VJh13nsnENxCflLGmErj5cvW8/0rzMIMDCAfI8efVcQsRg6LK2LCkENYVaxATCriQCAnEFWTkG9+
FQ0L7JCqyUhn5xrdj7CQYO7CHdrdbucXu4scKnn+WuFS8AuanLL4K3zzV7xPZfug3bZ/u4FpKiu0
GXzOTLxIuxwZV+xZ9YsZhI1Vw8Y4iHlFnEIgUv7iF7dzM2k1VCl8bqr2iO2p0DPwqEzGaomcOKvI
PYiRh6uLJGGRqqGRT8iRT1UlgPZAv1dliAw5omp2GdnjO+TAQz2XI/CRhp2iFCOnGDlTeClD7y4+
nQ7vXPuw3TkE86l5KYP6N93379f6vBRGLwZdmzJh3/hcYC6HF117VKiZcdq1K0ly23dh3QpM5sn2
PsTRNuKoghifQbavESroWgayu8+3z+zVdte/IsA3gnI47BZ6J8PWh20OmmGf+mb/wX6BvQF5DpkJ
WQj5lOcOLJbOE8gJWH9Y69Xa7JSblbfjRQondZrGUNa1E625DY06clS4XGMGzOM+ZSGa27qpFXDu
IOePPbPhkqbICZe79HPM/BjOHehrbOkJqtMe3iHD41034MajbykJ7CepH2UF0lRWO9Xx9QtMFcR8
G0ubStOa1dVY0wxsauyeUJgrkw04cDZKXwecYvUaoC15JjxiFMt9meFTsZ0R627AdCIov9aYYOWv
hX+VRYaJSRDj0HTh5tiViLPdKRlxoSY8JWyiYAjTNWEr+q+Vc6N8OGAhHLv6tNsSwmXOR3CaDn6/
HbjjyfVgfD48/Ya+jEe9/mAbONLKnbfIRvdnjyXjn6lQGY51r4HefugeHb3LDe9t4cyEe7Xx5ri1
xQd1b6w3qAdLQmyZEo8G1DO3bLmQiiQoFVzlt08HkKveqiGk8P6PFmqrvdQNm/P2wXlwdP/kB3AJ
/i8WtnrFfwFQSwMECgAAAAAAxH0GSQAAAAAAAAAAAAAAAAkAHABpbXBvcnRlZC9VVAkAA69opld1
bqZXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAGZ/BkkAAAAAAAAAAAAAAAAPABwAaW1wb3J0ZWQv
YmxpbmsvVVQJAAO/a6ZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQKAAAAAAC2fQZJAAAAAAAAAAAA
AAAAFAAcAGltcG9ydGVkL2JsaW5rL2Zhc3QvVVQJAAOYaKZXdW6mV3V4CwABBPUBAAAEUAAAAFBL
AwQKAAAAAAC3fQZJAAAAAAAAAAAAAAAAGgAcAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvVVQJ
AAOZaKZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQKAAAAAAC2fQZJAAAAAAAAAAAAAAAAIQAcAGlt
cG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvYnV0dG9uL1VUCQADmGimV3Vupld1eAsAAQT1AQAABFAA
AABQSwMEFAACAAgAUX8GScch79s3AAAAQAAAAEcAHABpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1z
L2J1dHRvbi9idXR0b24tcmVzZXQtZm9jdXMtYnktbW91c2Utc3RkZXJyLnR4dFVUCQADmmumV5ho
pld1eAsAAQT1AQAABFAAAADLzS8tTvXNL0sNyVdIS8zMSU1RKAGyMvNSFBIVShKL0lNLFMoyU8sV
EksULAwM9AzAQAfG4AIAUEsDBAoAAAAAALd9BkkAAAAAAAAAAAAAAAAgABwAaW1wb3J0ZWQvYmxp
bmsvZmFzdC9mb3Jtcy9yYW5nZS9VVAkAA5lopld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAI
AFJ/BknHIe/bNwAAAEAAAAA/ABwAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9yYW5nZS9yYW5n
ZS1mb2N1cy1ieS1tb3VzZS1zdGRlcnIudHh0VVQJAAOba6ZXmWimV3V4CwABBPUBAAAEUAAAAMvN
Ly1O9c0vSw3JV0hLzMxJTVEoAbIy81IUEhVKEovSU0sUyjJTyxUSSxQsDAz0DMBAB8bgAgBQSwME
CgAAAAAAt30GSQAAAAAAAAAAAAAAACEAHABpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1zL3N1Ym1p
dC9VVAkAA5lopld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAFJ/BknHIe/bNwAAAEAAAABB
ABwAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9zdWJtaXQvc3VibWl0LWZvY3VzLWJ5LW1vdXNl
LXN0ZGVyci50eHRVVAkAA5trpleZaKZXdXgLAAEE9QEAAARQAAAAy80vLU71zS9LDclXSEvMzElN
USgBsjLzUhQSFUoSi9JTSxTKMlPLFRJLFCwMDPQMwEAHxuACAFBLAwQKAAAAAABmfwZJAAAAAAAA
AAAAAAAAFwAcAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvVVQJAAO/a6ZXdW6mV3V4CwABBPUBAAAE
UAAAAFBLAwQKAAAAAABmfwZJAAAAAAAAAAAAAAAAIQAcAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2Uv
aW5kZXhlZGRiL1VUCQADv2umV3Vupld1eAsAAQT1AQAABFAAAABQSwMECgACAAAAZn8GSf4nOOA1
AAAANQAAAEQAHABpbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9ibG9iLXZhbGlkLWJl
Zm9yZS1jb21taXQtYWN0dWFsLnR4dFVUCQADv2umV79rpld1eAsAAQT1AQAABFAAAABGQUlMOiBU
aW1lZCBvdXQgd2FpdGluZyBmb3Igbm90aWZ5RG9uZSB0byBiZSBjYWxsZWQKClBLAwQUAAIACABm
fwZJMGQr19QBAAD2AwAAQgAcAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL2Jsb2It
dmFsaWQtYmVmb3JlLWNvbW1pdC1kaWZmLnR4dFVUCQADv2umV79rpld1eAsAAQT1AQAABFAAAADF
Uk2L2zAQvftXDLkkSyK72VMpFPJZWLoloQndsz7GWTWylErjJv73HcVZ2j0U9lKKwTZPb97MvCch
BFTfgmsbTNVKkqzWT7vqCdVnS7fPorXOVF/RoUxYOdmFlgRhIhExtY5SZZtTiISmUs76Y5UoRHnA
ynqDFzRGMR6U+CmdNUJhHSIKHZrGksDLCTVXlnShYjwe/89ZpKZWuusksxmI6WT6HsbTyT3MZoVY
Bl/b2AA9S4IskUBLDwohojSgpD5CL8cUtJFhHaJJIBnpG+Q1i/Gn+cPjB9jbBg3w8HCWlqw/AJeC
D2TrbhU8i4SsraVzaAooxMZDarXGlCbAS8PZOgcJESS/o8UEoYbBdr7bDYDtS7wzM+vgXDhzJ9XB
YL/e7WG5+bJ9XO/Xg7IQ+THKywbhIwz+5kv5TI0bFOLm4GpRGrafMAekOIVRL3H3JyOc0P/Gcwa5
hVGlZrcIN+o7p77L8Gh4PR2+0MpTSyOeosUJHLFjOOKPlgPm+p5wQBr1J3lbMEHzffGU8bXD/Lvo
HsxoWEfu/m54V+rgidHVC1EF05XWe4x7vBDYdM1zvuxpb5Kd/hvZ+zfLLl7L3q5G3TrXbWVMnDgT
KbaYM34VfCEAil9QSwMEFAACAAgAZn8GSaCNWbFCAQAAiAIAAEYAHABpbXBvcnRlZC9ibGluay9z
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
SQ/RI13uCO422FlBgX5LBXa3wOFm92F3iI+2gFg3GETgkqvvwhrvLaf68Wr5C7FxYj7LDWyghO5S
euMX6JtByHJAbT4uMak/+8Yfr63YbtQ+/n5qD38gtUffT+2jP6T21U7VHm9LbUe50pLz5Rf9d16I
VkAVJd0N8JMflZEMt9HHG4xzNzC30bUR+n8uG60f8xnkPLJ/iep/UEsDBAoAAAAAANF9BkkAAAAA
AAAAAAAAAAANABwAaW1wb3J0ZWQvdzNjL1VUCQADyWimV3Vupld1eAsAAQT1AQAABFAAAABQSwME
CgAAAAAA0X0GSQAAAAAAAAAAAAAAACgAHABpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvVVQJAAPJaKZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQKAAIAAABrfwZJ/ic44DUA
AAA1AAAAQwAcAGltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0
b3J5X29wZW45LWFjdHVhbC50eHRVVAkAA8prplfJaKZXdXgLAAEE9QEAAARQAAAARkFJTDogVGlt
ZWQgb3V0IHdhaXRpbmcgZm9yIG5vdGlmeURvbmUgdG8gYmUgY2FsbGVkCgpQSwMEFAACAAgAa38G
SZ4ZItVdAQAApAYAAEEAHABpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiZmFjdG9yeV9vcGVuOS1kaWZmLnR4dFVUCQADymumV8prpld1eAsAAQT1AQAABFAAAADF1MFK
AzEQAND7fsXQU2VNs60tWk9Vq1CUIlb0KNnNrI2kmSWZbbt/b6qCFy9iwEvCQPJmApMRQoB8Ittu
MMi5YiWvn1fyGctbw1/bZWuslg9oUQWUVnXUsmAMLDyG1nKQZtOQZ9Ryd1LJhdO4Rz2/FI03W8Uo
Sk+7YNyrNLqsVcXkuxdq0E0F7hus4sUB7znL8/wfS4lBq+xHIbMZiOHxqIA8rjCbZfnNxeLuHB7N
BjXElLBThqMCNXlwxKbu5uQQmKBEqJS1qDPIxP3FagVXMTycPaTpH8HO8Bq26IMhB8q/xtc6jvkg
rKm1GngdS4THrsFr78kPfscUg0kSqEijpKpmcJbEmRbF6XA6HU3Gp+Mi7knQpVomcRauNs5wl6YR
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
cy9VVAkAA8dopld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAAOABkkAAAAAAAAAAAAAAAAk
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vVVQJAAP1a6ZXdW6mV3V4CwAB
BPUBAAAEUAAAAFBLAwQKAAAAAADOfQZJAAAAAAAAAAAAAAAAKgAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL1VUCQADw2imV3Vupld1eAsAAQT1AQAABFAAAABQSwME
FAACAAgAzn0GSb26GPZpAAAAawAAAEQAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ub2Rlcy9FbGVtZW50LW1hdGNoZXMtc3RkZXJyLnR4dFVUCQADw2imV8Nopld1eAsAAQT1
AQAABFAAAAAzMjA00zWw0DUwUzA0tTIxszIy1zM2NldIzs/VSywoyEnVC09N8s4sAVHO+XklqXkl
ei6pZak5+QW5QHa0pYG5gYmVmZGZsZFZrIJfsFNpSUl+nmNeZm5iSWZ+XrFrXmJSTmqKrZ8/FwBQ
SwMECgAAAAAAA4AGSQAAAAAAAAAAAAAAACsAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9yYW5nZXMvVVQJAAP2a6ZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQKAAIAAAADgAZJ
/ic44DUAAAA1AAAARQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdl
cy9SYW5nZS1tdXRhdGlvbnMtYWN0dWFsLnR4dFVUCQAD9WumV/Vrpld1eAsAAQT1AQAABFAAAABG
QUlMOiBUaW1lZCBvdXQgd2FpdGluZyBmb3Igbm90aWZ5RG9uZSB0byBiZSBjYWxsZWQKClBLAwQU
AAIACAADgAZJiPqnqkhpAACi6A4AQwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL3Jhbmdlcy9SYW5nZS1tdXRhdGlvbnMtZGlmZi50eHRVVAkAA/Vrplf1a6ZXdXgLAAEE9QEA
AARQAAAA7b3tchzZkSX4v54Cyz8SzYtVcTK6peq2Hm1rqodrsh3Trk3LRjSTydZAIllECSA4BEpF
zRPg4fBQm0SRYAKIj/vh7tfdb/4qFoC8N+J4+Lkn/SuePXt29O3/vDj76Xx7+e1/HF8df/vf/vyf
3/55+/L/Pr369J//+tPp2cm3/2N7tj2+3H57dvyPi5+unl1tL6+evd9e/nR2dfnt6fm7i/dX25Nv
fx5fffvz9uWzd2fHV68v3p/f/tnltycX59++P377w26L//HxP8/Of7o6vjq9eHv5bPvh3fbV7qPf
XH24+oqIml7M8aurn47Pbi/l3//96Bm+/ufvNr85Iny9Ofr3f/+Knv/+D//9X4/+dHq+PTnabXv0
8/Hp1enbH452ix+9vbg6ff2P/7h4uz26ujh6uT16dXx2tj356uirZ//v7//zP4/eHb8/vvzL8Ndv
Xp++v7z6/s3uLr65fHd2evWn7YerX4+//c3Tr49+Pr16c/TT28vdzX2E5Oj2Ko8u3k59+Oj1+4vz
o+HjZtjt8fHS0vfI3+H48nL7/ur/2/6vHT6X/3r0n8dvT6/+cfTqzfbV3/7103I7BH91+WnF858u
r45Od39zukPhHx/huHqzPbo8Pt/uVrr99y9/9/Pu/09Odhfy+TE4unj54+4fR09+/+To5Q7iHy6u
vvzo5vpJEprDLJavLs7Ojt9d7v7/+Oro1xOrfH00PE2Dc5gBM20LdTwfw5mGJWqwRCKWKMcSjrCc
+u3Z9u0PV29qQF5YNQ399cvivagAz/4SY+IjY451D37C+uoo3ly/fAzky1RO3ohjuekGy1EcyzEc
lqhRXkhTXihXXrCjvP6wRpdgkV1Yll1gkF2wL7vAIruwLLvAILtgX3ZhUd+gVnZhSuFgXXaVXxbv
RQV49pfocup4Q6nsgp3j7ce/leK4Ecdx0wWOoziOYxAcX1+8357+8PbjPf3x4mSbLrMefHBKYiWt
nbdyGna/YPbm+O/bHRjHr652sH2M8v2yw/Hrq+37j1B9jAN+ge8ONdxhNaxilKqfHqywr50SFs9e
2hhKKEUJCSihDCWYQ+nhb7L0zqP7m1ltHc/ly+C5CDfP5xwb3T8p8h/OlXWN4bMRw2cTAp9RDJ/R
ET4fzs/yVcTeh6YUxOqa6SsawiRVNex9el8xrCyataQhVFCCClZQQT4qMIXK/k+zFMG9e5pYZRm3
+W3rNnXxvE2xyH3GznvYFtYzhMeGHY+NazxGdjxGJ3icbK+Od1uc5B/nDz85daanrZ65tjWcUo/4
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
zPXj3fvTmrvnuXfdV0jXmXd3WZMf4PyaadK2JTfuybBJzy469lsE8ttfHtr9FWal+/IfJcvTL/e1
EXNKqbvSfau5STvvfXE0bLdnvim4BBWE9FGE9tHZ4+brdWCeHmmce0kXElHsrNx41ldLGXdiu3Tl
Wsf9+y1+o/tESePSur4rF7MQS82+Z8AVu/KB5XmEyPOIGM9jSjd23uPYR991Pc4bdpxj91JXcMFS
13QxFVjvj656QsH+hDrpeZ5SfJ9qIXIakfZWnP3qtPg3jzttEq5M4bpa9zmV2Ge+uWgNjqcsdqjZ
vx+8W2LtE+e9oM3ncq0vYuCfuShkaQs731b3eoa4v7BOLB3nO2sKbiVfW9dB6+eba82zCaln041q
HSTiKcMhnvJJnbOC+2DNbrH93DHDCu7DRbtF94uiYcX38bLdP78pMziKn+P1WRuB0d79YwfBx3P7
m/fb84u/bxOPvAwNm7iFby1bimPqg1sG4uHZrdS4vM8uYj27M3FoIQrYXz8YA6Qkv4oJoI88GPMz
DOFnGB08wxvJZzh2jpHLDpC0g+VMmhQvbIR5wdZ7O+ZHlM7dNePo2sy0JNsFclyedj7iq/8fUEsD
BBQAAgAIAAOABkkpSVIoRGgAAIDQDgBHABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vcmFuZ2VzL1JhbmdlLW11dGF0aW9ucy1leHBlY3RlZC50eHRVVAkAA/Vrplf1a6ZXdXgL
AAEE9QEAAARQAAAA7b3tblzZkSX6v56Coz+2EOWas/L02O5Bjy9q1FcXBgaeC7RxW4BhXFBiSmKZ
EjUiy1bPE/Dh+FCTYklUJnk+9kdE7IjY+U8imXufs/aJFSvj63z3//74b/928uH04+nVX4a//vD6
/OPV9bO35xdnP1x9uDi//vP20/Wvx9/99un3J/84v3578vP7q+3F9tX19uzk4+n7N9uTy/dTHz55
/fHy3clwcn15gpPvnv/4x/+RvkX+BqdXV9uP1///9n/9fHpx9V9P/u30/fn1f5y8ert99bf/+mW5
88v3v7r6suK7n6+uT853f3N+enHxHycvtyfXb7cnV6fvtruV7v79y9/9Y/f/s7PdhWw/ffjlii5f
/rT7x8mTH5+cvPz5+uTN5fW3H93ePPkuActhFslXlxcXpx+udv8/vT759cQq358MT5PAHGagTNtB
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
bnMtcHJldHR5LWRpZmYuaHRtbFVUCQAD9mumV/Zrpld1eAsAAQT1AQAABFAAAADt/WtzXUlyrgl+
16/gqGxKys5beNyj8qiO1akSu2XTo2lryVppJpMdA4lNElkgQBHIyiz1zHf+OP6oWbhyA9h7Y19W
eLzuEd12VExcFrDcn7j4C7/8t3eX709//zf/7d3i6Hj6n/eLy6MXr98dfbxYXP7D3/18+ebb/HfT
hy8u/3q6+P3f/O705OzP37z43V9OLk4uF8cv/u+/eTH9f5eLXy+/PV68Pv94dHlyfva7F2fnZ4sf
rj/16vzj8eLjt6/OLy/P3//uBX349cXx9O/F8Q9/8//7m5vH3T7k9fnp+cffvfiNceX6c9+9PDld
/OnkzZvbz786ev3ntx/Pfz47/vbuS9/kq/9/+Qfd/ISL89OT4xe/OT4+vvncm/Ozy2/fHL0/Of3r
7168Pz87v/hw9Pr2F3x/9PHtyfQr0+L9C3PzoQ/n08tdv8fHxen0Rn9ZXP9C7+jRb+qcW/H8i6Oz
i28vFh9P3ix98uLkvxbXP2P5h357unhz+bsX5rtw9/Hjk4sPp0fTQ07OJsvc/oa/nBxfvpu+2Zj/
5+3vd3R8fHL29v47b363W9dc/euhd25/3ZOzd9MvdXn/5e/O/7L4+OiNQgg/rDP2YnFjhu+ufPK/
Tz/r4vab35yeH02v8fHk7bvLh567+qo/Tq9/NL3L3Y86n0x/cjm9onn0ypdHr04X375enJ4+eMtv
r5/7wEq/vJve7ttrH16h9svHow9ffrN/Wby+8t1aaK6/+SEyj3G5ZfbO7hNQ5sOvNz/hH3/9MLl3
ev70aotvXnx39T+P33Dtr3dxcrx49der//vi+lf9H6fnr//8fxx9vPxuetXfvTn5eHH57et3J6fH
aw179eP+Zfr+bzY97OPi/eTab575ebc/4878N8B9++rqSx5gF+6om2i5PHl9dPrt0enJ22ltXJ6v
eK2PiyvS/7ejs+PTxZ05bp9zZcKr/363uHHoF55f//zx4so1V7/24xV49Gryzs93Hpt+5j04N4vn
+tfb9Fs84PwpDm8/Lv76wyMwvwvP+evGxC++uzx/1szfvfl4/v6RsW/3x6ufcWX1f/75/avFx4mm
xTJdNx+9+8WfbqO31JbyYAO8Wy6rtsG7ley9X7ndLHv/fo+5elC4WQI3y+B+w7/l4BbPVYjc/LoP
cHK3G9bSi1+/4soN5+aQWGuWDZvUh49Xq/Pq17w14N1uckvN3Ys8WKvTN317s1qvPzXZ8/o/p/f4
uDj687dXH7j5hU7eH71dPPDM717Ye4O/Oj26suLVF76etobpd5h+ldt/vXj83l+8kn1Zu/e+Wbz5
sgFcYTU98f54XFrNK771+M3xw2+dnH2x/svLovyw6Uy/f9LtLrP8e9yuivXH9fHxkwe8OF6crv+O
RXn2t/n+f3nxLz9/+HD+8XI6aT/ekjwZ9f37xdnlxYv/5fvp5x39fPnu/MbeN6fx1WVmov5y4vT1
naeuv+H6a9ac//dfc/XLHE1IXH/x3XYW78C+2m6OTk//ePcbrPxqe3OWvT/69dtHx/v76V5w+yFr
7s+dxz96svvGn3O/su+X9IMfs+r3/O78w+Lm2Pz2l8WrP59cfnv58WrZ3Vji5hd/8Z29+GHpNfzt
S//m4vLo8ueL//Hzq+kMvz8Pv7taPSt/natvuTw/P3119PHh5+9+9JvTxfUK/fKJ9+f/df/R+83J
3azj23vU1T/vbgtX/15/JVy3c2y8yn3B4s3Jr4ub59zux+bhK313dH0HuVlmT0/xX06mveDjI9Tu
n/lf356cHS9+nTapDa/25SBc+hVWvdftZvTgeMu3u9jZ1a95u2BXHk3Tz3t1/uuzv2j88ovSDcR3
h9DNf13/srf/vj/Bbv/z/he+v5k9+NEnbz4evb/5DR+tk4fXiKU18sc1O+1T2/x1umue/3J71i9O
p4vjdGfe4mCK5eUXvG7P5DWfvDbEw8/dXyOPn16PH16Ob59xY76nDK+9Ehzf7bM3P+YPd5vCXahj
lj/7r3dn5KOYJKa7De3pr7lhkSxFOxfvj27u8st77tn5x+nDP6zZZW7f/+oKdrHqh9+8x926Nqu+
5PTo1eL0d0dvphX2zZNvv/n49UOuD+Sz6VX/9sX/98Xf/vA39wfx0vH9+LtPj6Yb+vmbby//+mGx
8lF/u/Y3uv3CRyHuu8Xp9QZ5fxk9urqMrjmjfvN+cXFxd/FYa+dVbllaHf9yvVFvcxROR8x0IfrL
yfnPF3+8/8h0mf2vxdkflw7LVef83ZXj8RGzfLhc7eUTtdck3O3tt/99S+LtJuLuzsCtfptbNKY7
zuLyak08OC5ur31rLn3L5+yrn6dVdba879yd78cnf/ndm/PXtzY8//nyar9YXn6vTn++PkluPzXx
8mb6XaYTjO5eZPmwvH7KdIf513eLm5/0/e1J+3b6/a/e4fL8xeX0uVc3X32L2sWLv5wcXe3Jl//v
WyamX/bVx/NfJodPN4F3R9P33l6KTi6/u7oE3b+HD7e3+PuryO1/3+0OVxfZq/9nHh6id5LO4zv+
+5PjKcq6ebErB13cBd8rTpTpHnZ+cfSXyfaTBRaPzpXlSO/JUfctfedurkxfxI+703+FD37zpz/9
aWlJ/ya//NPL8HLl/jRdLldT/I//+I+rfuvfLd5/mHaoB86/vaY9+srvpn9Ov+mDlf+PJZt8u2+9
Pl0cffyf19eDu1Dg6iPXYdO7qy/5b9/fqm7/7eL1x5MPk08/vv6Hv313efnh4nfff3/009Gv3709
P387fdOHk4srdK8/9v3pyauL73/6z58XH//6PX3nv7O3//HddLX87qeLv/399Nzr5/3+xcMnvz4/
Xnx75cPFL9PX/ffJ01fO/Aefl75l+qVuhcJX58d/nf5nWg/T7310cfEPf3cXCVzphe/o99//X5M/
pz3r+z8dXR59/4//9i/f/9vi1f/r5PL2f/7Hzyenx9//n9O5e3Sx+H4iZTLnt5eLaYedwvefTy8v
vj95f0Xw4vj7X9zr76dt49uJp8vpkv/++ssuvj+e3ng6PN5OP+L/vPqfb9//fHkdHlx8O91sfj46
/e7y18vp96WHv+aSSvR3Tz9zHb2v+/hVVP9iAvDR56/imRcPpaDbL5o2mbO7r7oWAr7cLv7u9789
e3Xx4YfJtNMX/f7Bl06LfvkLaeXXTAf33/3+5R/+6X//3Yt/PXk/XV0mA7745WhaThN0V7HQ2fnl
yZu//mlafle7yKtp95iAXxzfPmzy5PQKd/+z/DpLYP7d728/ffu1Oxvr4t0Ukzxvr2dtRVuYya43
E+s730S2zzPy5es2vrrd4tU3oHT9/v/HH/7lX6at8+PRxb+b//juWmr845XS+N20R59cXt0B/96l
+NU30ylx+e7Fz2f31+Hr9XV1uqz45hfXv6q5gotePLbwLK/uZnj1qxWy/avv/uLTj5qOxP+5+M9p
w7n43Yt/OTq7usG+frd4/eff3T5u2ml++5vpzndx+9T3P19MB/P0dSfTgvzr1cq8OuIvriKdo4vr
f9983S+Lq31k+mUWv364+a3OX/00/ePFb//z5/PLH/5w8z9Xl5UXb88vH33y86ebf1RxjOdh0qwl
cjpQT48+XEz/PZ2ef7/iKd+8MF/VgTLwQGnWILndm7ejchOUFYmMPETSIURSJSITD5G0P5HUIZGZ
h8hVnz1dnL29fHcIqhueWofhwsPw89aa11bdUU+m9Ua86c5GV3c2V4dgorbb8Bbv3Y7Gz59ebQLy
VdXbKjGFUBaPSaYIyg4md/UMUwjl8JhkCqDcYHJXz8wcRNEhUhPxSk00cxBF+2tNBKg1/VOr62Tm
QXI3pYl4lCYqPEzuIjXRkJqs4WGSDmGyltZkiYdJ2p/JHsUma3mYXPXZPdQmWqWgEJ/aZB0Pxc+b
a15j9ce9b70Xb7q21QyjbGi7EW/x3u1o/OnPrXhkCqEsHo9MAZQdPO7iFab4yeHxyBQ8ucHjLhk9
s8VOb84/Lk7enl354J/Pjxfby0uPvpEhi2m2kGmrd97tjbdj8Ia7d0d/WUxAHb2+nNC7Siu8+Qk3
mfA3eblLCN6TR/eUmTr2tfWZ2lYfevSEetqQc/Wh2k4XWvXKGqjy9amifamqpe64UJ8q2o8q0kFV
rE/V48/spM88sfuap1XiL9Xnb7N55jGOBlJzy/1v3a2lZsTgSrvN75n3VcCTZ7j5WyiePMO93/bL
E8Ot32HxxHDld/3yNNt9/9f3p7urEkvfVF+R8LNd85991+3fVANDsS5D26oQS99dT4HwqS5E26kP
j19VA0W5LkW0D0W1FAdf6lJEu1OkQ2kIpi5Fyx/dSWF4YOsVT6lUtUl1OVtvjsOMoYFE22o/W3Xb
qHlDD67NZrbhPTXwU/lmbnH4qXwvt33yU/lW7nD4qXwld33yM9t9/HhxeTS9+vHu8sDj76yvEYTZ
LubbvfWO76yAq2gYuNpWMnj8iHq6QSQGsLYTD1a+tAayLANZtDdZtbSE6BjIoj3J0qEqRM9A1pNP
7aQvPDX9uudVojAwUPiMieYykAZiI+emsP3dbfX9+N8+nk9mWpwdv7jpG7vKTq6OnVLDzXNHK4nk
MDPY19bn0NbmsHDaqT8OE0fU4fbmsM47c4QcrmOmZo83Xu5b3bHmAfX1kjR78PFyv2qPbSyggTnP
x9yuIspLriqQFPig201SeamzKiRFPuroUOqq9ZtNfNTRYdTpUF1S5qNu3VfspcE88cczT6/Ea+Hj
dTvz1TGeAtKzabC17HyPRNNuMrXfkPezmUhGLZ+1LRujtXWd7BpYrV9GGaMjdyijdSzAGBq5wdvs
cdGP+1TRrPjm+spPnj0c+nH3qprn3lwDY5mHsV3Vnh85qm1y4YFsN5XnR33VN8XwUEaHUFZL2SnE
QxntT5kORadYHspWfXYvJeeBDzY8tRKXjofL5801r7E0kOyZt4yd7n1oSk0JbTfY3W0lksnIY2XL
wmRtZaYkZmv1ySRT9OIOYbLOmzOFLq5rvsgYzBGoFeejGEKcfNrnVBQyFmjyI8PAKONg5j2iDCT/
/OnV50+vP386/vxp8fnTm8+f3n7+9O7zp0r2nyPweGaE+srXqbqIAuomTtU28Yi5iVOXm3hqzd/1
77R2ivj0m7AwmdsyuaMRms6rZNzxS+Udn32755qWbbGXG9fobDuW2y5eseqWm2s9dBljufm2E5jH
clvplaBuuUWsy+S1MLOM1wP0XLXllpAuk88aoa1+8HxAXpXYjHUfa0VsQbqPDWI3uMoarCtNI2It
IV1pBrGbXFX17wQnZ1eW/dPR5dFVvuw3t2/15vz85h/b/O3gybjGqn9GsFX/jLClOXY3RkOCn8G3
KrueiV2zPbmr9esHO061P8DOPYR6D3vsZY3+hH0bmcilWcmtpoHYxEQuzUhul3+SspmJ3FWfvknU
nRXp9T+mGuuFifU9LDiv/fpbHc7g7eubro81Ew3JEdqmvoUpmsrbz+jFVcnligOtBHK5okA7yD3c
WVxRoJNALlcI6Aa5hzsr8mtvqMKbS/zC21Dd9vJU5lbdgCU3V7glt6G37eEmzx6XAYttnj0uG0rb
Pm6yMEqbRJnNOxiZbWhsszrWg+3lzYI9H6A28hHprfdU5FbXYJlN3NLaYHZPT2VuXQ2W2cItqg1m
9/NUmDnOo3mz2YhZVAszR3o0ZzYbAepq/9TqUhssE7gHprIRk64WHBO5B6Wy0ZDWKHgmcmlWcqup
ayEwkUszktulwBYiE7mrPj1HKhutkomIUWMLiYn1PSw4r/06XB0Zb1/fdHesGgGGgrapb2GKdsz+
9OdW1EauANAKoDZyhX92UHuYo7iiPyeBWq7Qzw1qD3OU5xfbUJW2GPiVtiGz7e6myC2zAWtsMXFr
bENg28dN7IEYsLoW2QOxIa3t4aZkYKQ1ibpaIhhdbYhqszrWgu3lzaK85KA28hHirfaS55bTYHkN
3Fra4HUPL0VuIQ2W18Stog1e9/DSbLHdm0fjsA/IVXuzajh2VfUszRbV7WmG3YygYT5VNgzk7Z1s
9uiZFUWwTAzo7ZlktsoKKtizDOzRbOxVE7OyY2CPZmKPlLDnGdh7/KnDkr2euGL146tRGhgo3dFi
89hLBc8Ray9dd3WqGuzkhLSRPmMCFdRxxC0WnTqOqMUO6u4NXjhiFgdOXeEIWNyg7ovBLa9GgyjQ
FMcr0PSuzhTPqc6ASjMlcEozQ5ehwhpLgIoyhTWWGIoMldxckZEkx5TSXI4ZWsxK11hjgPbPFsGJ
NQSzeeqPTKyxnCoMJG+OU4LpnjfPqb9A8hY4xZfueZstHvn1/ekcmTFLj6kvulgzWySyx+tv//Iq
SMuVSds7E2bpefWkFmtKZdT2zIB5/PYaWCNTmTWahbVaAoslqswazcAaKWHNVmZt+cOHZbk8MP/T
x1aj0VWmcQcLHWYfFbx6nL1x1ZWnanBBAWVj3PDqKiirHVdYZMpqRxV2UHZj6NoxhUOmrHZA4QZl
14a2hk8jQRNILPEJJD2rI9ZyqSOA0oh1XNJI57qIZbv7A4oilu3u37kiYmMzRUSCHGJTMzlkaCGP
XJFB9kP24MEWiM1QeeTgDJcKgsaXIy4JpGu+LJf+AceX4xI/uuZrtnjheHF5NL378RwpIo+fxSCD
uNlih30NsaMZVNAXOejbO23k8UMrCiQuceC3ZwLJSjuo4C9z8Efz8VdNOnGFgz+aiz8lOoo3HPw9
+dxhOSZPvbHmB9Ri1RMHq7tabS6bqeDagu2ray9TVUMY76A21eeMoII8lnjGwpPHEs3YQd6SyVli
GQdPHksg4wZ5SybPzBoOpIDjC7OA0716EwyreoMq3QRilW6GbjOZnDe+QBVtAm98MRSbyeQeQLGR
JdeEACDXDK1mrXsi0l7aJmgJCWcj7SFiCZlVpcFkrrBKNN0zFw2rPgPJXCRWcWYwN3uc8nK+CUVr
Hskg1cTZ45aXc00s2sYoKsj0jGQenIDzkqtdro2BEc0D03Fe6uyga2NkZJNmZ7Oa3BMTI5s0M5tK
9J+YGdlc9yXz5O88cdHmH1eN6sJI9Z4WrWNPDeshGcy9+rmrXNUwKxHiRr2lSVRQyRl3WSlUckZd
dlD51AGcMZeTQiVnwOUGlU8dENtoVMgCVUptBKqhTt3aP7dQp8ClqVRaSFNDl7p3QG4S64CLUrlJ
rDMUqS8OsHCKlGQ5Kjs4OWpoUVu6zgPuz02DqxzgNueOIqscW6hQ0DymFhLU4PHW+rmF/gTNY2kh
Pg0eb6xfZo+nfpxnQtWKxzGITmX2SOrHOSZWPWcMFSRaJhIPzoT6kaVdc3FMKB6YAfWjwg7OxTOx
SLOyWE1gKoGJRZqRRSXaUolMLK769DxZTg/csv7HVKM3MdG7hwXntZ8K3jPe3rvpClY1OCoFbePd
whQKKHSGKy6y+BQ6wxUV2UHhQ8NzxUROAoVcAZEbFD40vOfXiEAFImcCv0A01KHJ7pFbHcKVhpxJ
3NLQ0IVuDM8em+CKQs6wxyZDEbo2PBkYRUigHOSIYOSgoQU94yoLtt82C37IQW22nUQ+5LlVIFj+
ArcENPibrB659R9Y/hK3+DP4m6w+W7zz+vz9+8XZ5SEZQbePYBB5aLbIZsfX3u6ltyPrt79x5YeL
2yddU3Yyfd3J0emE2KvFNU4XR+8nyC6W0PplcYXb9AvcM3b+6qfpHw/WxD11Kz5XxyHWVORw73yg
22dVFHosVQRxz7yf5bfukERbkUQ6mMRqYo91FUmkA0mkLkn0FUm8+9Bh+T/3Dnr4uGqMhoqMbmmR
/ezRIb0RYx99fMWqGsTYhLCJrnnlDhmsGd1YVAZrxjZ2MLijO1zNyMaBMuhqhjVuMLirOyyPyoMk
8TjHI/EMfWcrb3gOfQdM3HGBQ9wZys627mCJSMBkHccSkQxNZ1t3ZHZNB1nQcYVd0Blqzj6O8gZg
72QNYTw13zhH/HLnC8uh40DR5zhEnEHfVr7wHAoOFH2BQ74Z9G3li9miljc3nY7+eHiizsMnMYg5
frYoZj8j7GQCDXlhPtenbu+0nIePrCjg+FIfuz2TdFbYQAN3wdTnjubirppoE6g+dzQPd0oqroKt
z92jzxyWefPYDysfXo1PV5/P3aw1h61UcOyh9s81F6WqwUsIQJvnZgOoII4hPrHgxDFEJ3YQd29u
htjEgRPHEJi4QdyduaNh1WAABZhIrAJM5+pLtIzqC6b0Eh2j9DJ0l8gZN2CKLpEzbhiKS4yNFRc5
cktMjeWWobWsdEvG2TNbBCGxoGyY+iOQZBhVFkDWEjFKLL2zZhn1FUTWHKO40jtrs8Udv74/nSGz
5ctTGESVNFvEsfvLb/3qKiiLdSnbO5Ply+MqSikp1cVszwyWR++ugrNclzOag7NqAkoqdTmjwzlT
op1kU5ezpY8elqWybPsnD63FYaa6HG5vnUNso4JTC7MfrrjgVA0i5ptwf+BmuP7FVRBWOX6wwIRV
jh7sIOzazJVjBwdMWOXAwQ3Crs2c2TQQMAEkFzYBpGP1oxgm9QNP+ijEJH30rXsUrns+nuhRuO75
fSsexTdSPPDljhIayR1D63jghoixB3IHCSUhbIC6I4SSmVQONLYKk8TRL1veGCZ9A4stb4hJ3OiZ
rdmn+82Q4vHoUfVlDj//XPODkz02GUEFeZ6BvL3TPh49s54A4uefZj5fAsgqK6hgLzKwR7OxR9XY
Swzs0UzskRL2MgN7jz91WI7IE1esfnw1SgsDpTtabB57aeB5/knoB6eRrLw6VQ1V5p9nfmBCySYT
qKCOI26x6NRxRC12UPfF4Bwxi0OnjiNgcYO6LwaPvBoNokBDiVeg6V2docypzoBKM1Q4pZmhy3jL
GkuAijKWNZYYioy3trkiI0mOsa65HDO0mDWu8UD7Z5PgxAaYzbODyMRGThUGkrfEKcF0z1vm1F8g
eSuc4kvvvLnZ45GXs034Wf1EBinGzR6fvJxp4s8WJlFBpeWj8uAEmpdM7Wi9c3xYHphO81Jlh1rv
PB+XNDeX1eQcF/i4pHm5VKLvuMjH5ZqvmCf/5rF/Nv6wajwnPp73s2YNW6pYBxlyf37m4lY1nHIF
cHPeziAaiPSM8ZWVQaRnjK7sIPKJ+RljKyeESMbAyg0in5jfN9GggAUoH5oIUEN9urF+bKA+YUtP
PjWQnobudG/+FnENtujkW8Q1Q3G6M38wYIqTXLkpEJjcNLSmrdxm8fbklkFUcGgbcj8RVPANVCZk
FkMDiWmweGP72EBfQmYxNRCXBos3tp89bvpxlglPT5/GICqF2SOmH2eY+PSMKTRQGA0PhQdnMv3I
0A7ZR+LB8MAMph/VdUj20fJwSHNyWE1Aio6HQ5qPQyXaUfQ8HK747DxZSss+WftDqnEbeLjd3Xpz
2k4F5xFuv91w4aoaBMUEttk+bwgVBDLFP1YAgUzRjx0ELps9McU+Dp/AxBT4uEHgA7Nbdg0IVABK
jl0AGuqPT55Z/cGVflJgln6G7nNtdu44BFf0SdxxyFB8rs2eQRQfeXJPKiByz9B6NrkpG6w9tlWQ
kwlpg+0jwsmWWeVBZc8xSzyDPZ89s76Dyl5gFncGez7PFtd8OPp4dPHv5j++e3Py8eLyj+9OTo9n
+YP23XMrxtR5tohmbyNsb4LtqPvtb1z54eL2adcEnkxfd3J0OuH3anGN2sXR+wnAiyXsfllcoTj9
0Hv+zl/9NP3jwXK5J3LF5yq5J+MxOq3ru4cxqI65oAG67v3b0fmHz59eff70+vOn48+fFp8/vfn8
6e3nT+8+f6rjkTJHrLJpQa17nZoLrZCcw6CavFWslMOAejwMisNj9Pq3/PsVz7v20fS7sXDr0bjd
0SztWOY9OULlk4P/2OCKIay0JckVV9ixJA/yU1a3JAvTknSylmQwhmlJurEkD/ITKVuSwVj0i+u1
vLQM3AMYXbUl6bAvrs+apa3m8byIUJVqj373a0V1wL77Dao3OS+iX59aUZ2wr0+D6k3Oq/p3lKMP
HxZnx9fO2+OPKEtPqv/3lGCq/j3leUvsboeG3D4DbU1iyYARu1qKf7DJ1PordSCCgnY7U3T3B4pA
Vh6z1eQWctKYpS6Z9dJuBqt+zk0udC2Sg6wrwwYDdZKjESjqy9EIlAQtVWqzVLOYpUqwS5V3pRZt
ar8VGLms57DW9dCKC2k22ai/e6O10g4jV4tkJ+vMcW2Plmf26qrM8sY6qBKo5Y1nhv65l5MiEqst
xU+bcHAdyucaH2VhtFaTPW0RRWuXmqczou4B7CqKI0EXhKF2BmcVqp3OSVmkbaRO52Us0qFz3rhL
W+1PcNIiFH6R08kKXYbC+cB5WdQBVEvedEXQOdOvtulnjmloNj2emOVNP3P0QjPp8QSocP5Tq83V
WzBcVx2PxKRwegdF7Ham6O9C4L08ZqvpnD5IY7ZLqdNHadeCVT+nqpDik6z7wgYDNbxI/PTn0/dn
5x8quah2l4aqS7AIWoLUZAkGI2YJEuwSrLoCAwlegUFgsLEesVo3uiAuCtlko/6uesFLO2dqSZYh
yDpOXNNToxmvvKEJqlwZeMOPoVXu7qGMBGpLoTIUHFaHSrnaR9EIo7WaRBlJFK1d6pPRiroEsCsj
0Qm6HXSoTEYvWBeJQcriayNLxihj8XWqScYkee1JCyr4BckoK9oYauSy85IRdbbUkiITCTpC+tQh
02whyJvzj4uTt2f/On3kn8+PF3tq5o+ewiBBptmCjN0tsNv7K5i7GJIH4u3hufbogRWVxBRgkHve
BCqoi3Koq6YIpiSFOlJCXZZytj5+flVhIRUZB+4ao2ggMxsBZBI7mZngySTtZFo5J/VqN9Q6vrOT
cnyvs4sKPr2UnbOWqJODjE3S6eCNL3JBFGcyX8zSuzKTMwpprWSZXDBg60OTKUYIb9UEmUIieFOi
xhQr4iRlDXiLE3C8Ko52i0dnkl+EKQGbSe0KTIlCzmVe+aUkEYe1Zu2lZBG7ZS3hpRQBG6MK1SWa
2WKTX9+fHqjwLT2hvuASzWwxyW5vvv17q+DLgvD18DRZelg9mSUaB4HY5ldXQZnHp4yqURbQKSMl
lEX0s3L5uTVD12gS9uG5whAqCMzABBIvgQWWQFJMIBn8k/ap6WsdvUToR+8qW6jg0KLvhK4Wcw57
49OhixBPRIEmihBPLNGzIkIRgawWcgil9nDp10Iog/NVTQihAs2XEhXEGuiTkS0AtQR8VCqNPq1F
ZY9X/LAOkz3Nyof14Ocqn+xhA/RBq1XzsBF696sleNgEvNnpUDvmm+t+vLg8mt79+EBJ7fFjGKSP
+Sa672GDHS2ggbn5prPPwdzD4+TxEyuKIvMNYT8cuy2MoII8K4m8anKJc3LIU6KdOC/nnH3yE6pG
tC5IOX3X2UUFn1EEn9SAzySAT1LPZ5Z0cq/xRLXzvMg5z9eaRgOl3sjZRWuJNp6k7Jc6FBzPGNNA
yjeeMZrpXrvxHoa2ZsKNDyDAdaLa+CiGuWqSjU9CmFOi1/gs5FTlDYZ9EXHWao6Eg8Ens4FMEwid
TPUaTbBizmlmgSY4Iae3anUmeCE7Zy1pJgQRe6QOXSbMHrW8nKWb8pqnMQg1YfYY5uUM3ZW3sYcK
HjMgj6vPo5dc7XBjKHBIbm8SDVRGI5fKamJPJKlUKlF/opV6dq/7eVVj7+hkHuzPGEsFyV4gydSO
5CCOZOqF5Cj3prDZPdWuEUnqNeI5e6ngOUvdmWvJU7HI3Hx16FWJPxJDFqsSfww2lKpb01s0ElvL
VMlhwdiXRpW8UB6rCVQpiORRiTqVosiTuklAn5LAY7yDaD5laQy3E6VSkcVwL4pUNkLvBW3kqEwi
Lw09aFHZityNawlR2QnccHWoUHn2WOvHg7t8r3gSgwCVZ4+xfjyw6/dzdlDBXwTjb/Up9SNL2+ac
oBDczhQqKMzyKKwmNuUijUIlOlMx0s7iVT+namheSNYhvcFAKoi1goilNsQ6McRSD8R6eSf9epfU
ugKUIO0KsMlGKriN0nbaWmJRSbI2VB06UeGNkFBFosIbGw2F6PfJGCTyGspDyRAOfN1oQ8lYYfxR
Nf6cKP5ICX9e1MnLHWAnEwQdybqj62SiFFapDatJBqvUA6tZ2LnOLgMlU0Qd+Mo1oERG1O5aSQBK
RII2UaeDvNlioNfn798vzi73VBxvv7u+0JNotlhn+zfe7n234+m3v3Hlh4vbJ12zdTJ93cnR6QTW
q8U1RBdH7ye0LpaA+mVxBdn0C9yTdf7qp+kfL5ZXwj1rKz5XyRcegL6H58/tgyqKPRSaA7j+lTtk
MOIyWE3woYTKIHXJYEY9he+eVzV4poJ5JD96+f64tAaQS2Lj0hIclzS4vHKMxT2zHzqn1gFuHeoB
/vj9O6TTo+6atYQbGzA3StcjffXjGSQ5x9aPZIaWs5UjcmvuuIUcW9qiN1ScL75wBpS+ahKOI0j6
utRvnIU8c1mCZOcAD+DuI2Tn0Yjkk21cwCJyaDbXXomgJzSPYOMS5HE91BqXIXfKWlKNK4CbY486
jZ8tYnlz08nojweJhQ8fwiDc+Nnil53ff6e315Dl5S0Oaw8PoofPqyjWeIeC27MGUEGcl0JcNYHG
BxnEKamm8lHGefro6VUjYZ8knLGrLaKCyQzPJLEzWcCZJN1MBiPlZF7pg1qndSAZp/Uao6gg08rY
LWtJM8FJ2Bl11D0FtvgEUHoJbJFJ57pLiCCUNRJdQoIArQvFJWQRrFWTW0IRwJoSrSUaAacnZ1Ab
Cf5E1RvRRotNI7vEEh0yjcr1lehFnMOs4koMAs5mxcpKjAJ2yFqySkzwu6EOTSXOFoH8+v70MO3u
ywMY5JQ4W+Sx03tv/dYa2EoGg62HR8iXZ1UUURIh4LXxxVUQZtEJqyadJIdNmBLVJHns83HpqVXD
0/lm3tc4L59aQQV7EZY9YmUvgbJHitnL6CfrE7tXO2kL9km7whAaCMwGe/erJX1kQt7tdKgemSVu
AJM8MkvE0LHekT0AVQ3Ejhyag6Ve6cgRmq1qMkdOwGwp0ThyBj4NuYLMXGBPR50RZjGY1LFKG4UQ
qVOsaxQLfY6yiRrFAZ+rShWN4oF3vFpyRgmwO5wOLWP+WeSHiWWPnsIgbMw/g/wQ2WzT+6vgLQPx
tnoOXX3JY/7J4zP9YWCVCRRQl+efO16PulpiSJ5/5Hgt6kgJdVbK2fr4+TWj1jz/6PE6B+4ao6gg
0wsgk/jJDPBkknYyo5yTerUbqh3fScrxvc4uKvjMUnZOV4vDImOTVKHPZOKLXADFmUx8MUvnykwm
i0JaI1kmk8OArQ9NhrwQ3qoJMhRE8KZEjaEo4iRlDXgpCTheFUe7lNGZ5BdhqGAzqV2BsUbIucwr
v1gScVhr1l6sFbFb1hJerBOwMepQXezsscnLOfoTr34YgwxjZ49UXh7er3gLa6hgMeKxuPoQesnU
ZDbbhIbj1gZRQWSWSmQ1KccWmUQq0XackXler/lpVeNrRxLP8s2WUsGwFccwNWPYCWOYOmHYS70Z
bPRNrVuDCzJvDc8YSwXJUeZuXEt8cknijqtDjXLs8RawFOXYI62hQ10b3hswChuLUJ6gQOxKgfJW
JIvV5CfvBLKoRHvyXuDp3CJo90Hcya0/YvdRFr3NJCefJNHbid7ks8h7QBOxyReBd4QOlKZgBO7A
tWSmQOJ2WR0aU5g9ovrx0L7ZTx/EIC+F2SOpHw/ro/2MFVSw57HYW300/cjQDDmHgITfVoZQQWCU
RmA1KSkkWQQqUZFClnX+rvgpVcPvUCSdy+uto4HVaMSwSi1YjSSEVeqAVSvtZF/rj1onfnSyTvwN
BlJBrJe1u9aSgmKQtIvqUIEiaxwEKgFF1gho6D85ZiDqGoo/scCA143yk4wo9qrJPokEsadE80lW
0GnLHUQnJ+YU1h1BJy+D0iZSTwoSKO1A50lR1DnOLvKkJOh8V67wpCxoR60l76QiZufUoe3k2SKd
D0cfjy7+3fzHd29OPl5c/vHdyenxgVvk3RMrBtd5tgBnj9ff/uW3I+23v3Hlh4vbp11TdzJ93cnR
6YTcq8U1XhdH7yfoLpZQ+2Vxhd/0Q++ZO3/10/SPF8u/8T2FKz5XyTEWictpFd89hkFqzA4HynVv
3o7IP3z+9Orzp9efPx1//rT4/OnN509vP3969/lTJV/MEedsWkTrXqfq4goSNv1qqtYsc+8rb/rU
5aafkLi8/v3+fsWTrr0z/VYsrGYcVnc0SDt+eU+IUvmEYD8eisFdhtfX4WXUHmDoai3DQqjL8FmD
tL2pPX/1qUoybxSxa6IXQ4BbeGOJ3fK4Oo9xiwejkzfMLQEKzd4j3RIVRrolCTkAqgUQJYs4ALqM
d0sBoxMh5C3GQBE7ot6VTiJlUW8xFnoxtgl8i3HAi3HEvps8VzW6OJ6Md7m49pxL8ZsXdpugYukB
9eOLYqrGF2sNsPvrN6T0GUSr8hmZ+DSb6Fx9H32wj5hqe2tiAtSsx3O79+/ual5MZqKTDqSz3jW8
MNFJB9HZY+BYyDDRuerTN0mXB2K7/sG1eCZi4nkrm81rsQ5XgEXYnzdd7mrmyRZy7TfnLV6+qRjy
jLpQlU6u2Mti0skVedlB5z7u4Yq8HCadXGGXG3Tu457MqVsZPN2KCqduZYZutZt7rOHTrQykbmWJ
T7cyQ7fazTeMcZGB1K0sY2hkhm61m288gG5lZOlWNgDoVmboVjN5MyLsz81iL5vab84j9lrvnsyn
WyHSWfh0q0Hnzu5xhk+3AqTTEZ9uNejc3T2WU7eKjvCUK+c4laslEwztaksHeT7tahOhLdUrF/jU
q/WIDv1qjXcY46MDCa2mYDnGIOkgQrvUsFwG0LAORJdfxXIFQMU6CPahYy370xuMfbpZNOYJYZMe
8dh6B1k+LQuTUMenZg1C93GQ59OzMAkNfIrWIHQfB80cjdGhNYTErGj5mUMxOqyGkAD1rH9qdgXN
THDuXEBITFKWL0x07lhASEPIKsEw0UkH0llNxgrERCcdRGeXIlawTHSu+vR+BYS0So4hRgkrOCae
t7LZvBbrcAV4hP15082uaugVQvvNeYuXb8flT39uRiZX0GUxyeQKuewgc1fXcEVcDpNMrnDLDTJ3
dE00nEKVwROqInEKVWYIVbv4xvIJVQZSqIqOT6gyQ6jazTeMgZCBFKoiYyxkhlC1m28igFBlZAlV
MQEIVWYIVTN5MyPsz82Crljab84j6FrpmmT4hCpAMhPxCVWDzN1cY/mEKkQyHZ9QNcjczTWeU6ja
KuuPW6pKgVOq2iLvb4hVy96JfGLVrlUsXHJVSnxy1W41KUOwmrzDGBAdSGg1ySoxRkUHEdqlaJUN
gGh1ILr8slUmANnqINiHcPXAnxZjn24WhmWHsEmPQGy1czyfeIVJZ+CTrwaduzon8glYmHQmPglr
0Lmrc2aLwN6cf1ycvD371+kj/3x+vNitJPDRNzNIV3m2sGvrF9/ttbej8YbAd0d/WUxoHb2+nCA8
P7uj7ujN5WSRCbyTs7dLMN4zSPe8mTpGLoaBrh1q+h49paLuVIgBr61r+Va9twq+LANfdABf1VSj
4hj4or35IiV8eQa+Hn9q15q6J8Zf/cBqJAYGEp+10TwWUsFsbL0nrrvYVI0ySmq7IT7z0irI4ogV
LB5ZHJGC7ZksMoYjUHBoaE3vzREmuM7ZslwSh4GSOKY3d1wah+lW45is7HlEDoMmckyvHnhUDtOz
yjGZmelKb9BkjunVma71pmedYzJzbih0GBFCx2Sk0lDpMEPpeOIQMq33xTZRA1HbTbGHqIEsj9gB
x5bjUTu6ZsvzqB1wbAUetaNrtiKX2vFMslEDvYMSl96xMc9IveJBmUfx2D7vnVHzoMKjeWybvq5W
9bBMt/sDKKune1imK/7elGlRPqxtqHwcgB6z9mFdQ+1jb0hVqx/Wt98f28QRNrTeHHuIJGzkUUAA
+Uo8GkjnfGUeFQSQr8Kjg/TNl5stfvj1/el+ZS1L38ihf7jZgoat3nj799XBk63M0w6FLEtPqKl1
OFcZqK0rWB6/sA6ifGWiaE+i6ukaLlQmivYiSoua4WJlopY/vGuhygOLP31QPeZSZeY2GuUwk+ig
Mrfc51bdS+re711pt8lteFsVLPnat3qLxZKvfae3HbNU+0bvwFiqfZ13HbPkOdQGA6Q2+MChNphO
1QYf66sNBktt8Km+2mD6VRs8wy3cYKkNnuEibvpVG4JpoDYYcLUhUAO1wQy14YsDbMt9jv9WH1y7
TU77rT74+moDFEuhvtrQLUuxvtoAxVKqrzZ0y1LmUBueyZxh1htC4dAbNubMqFYcoqmvOGyf8Myk
OUSqrzlsm76sUnWIDLfxPamqpztEhiv5XlRpUR6ib6A87IkZo/YQQwPtYS8Q1aoPMbbd7/jv+TG1
3Oy03/Rjrq9AgPFU6msQ/fKUTH0VAounRPV1iI55mu1+f7y4PJpe/ni/UovH382hSMw3nHn7d9/x
zXUw5jkY26H84vFjaioU881Y3vbld391HZRFDsroEMrqKRbzzUne9uV3f3UdlGUOyp58btdajacO
WPPIekQWDiKfN9RcZlJB73zjkPfeI9feeOpGEfONNN5zg3zuvXXwxRJNWES+WGIJ2ztfLJGEQ+SL
JYxwvfMV2dQQg6aG5MSmhpie1ZCcmdQQA6iG5MKkhpjO1ZDCddM3gGpI4brsm87VkGKbqiFGjBpS
XFM1xAw1ZJVTfPM9slE0UULjDbKLaKJEJjUEj6/EpIb0zVdmUkPw+CpMakjPfJExbGrIMylHDfQQ
MsSmh2xMP1KviJCxTIrI9hngjJoIGcekiWyb6a1WFSHDdeM/hDSqRxrXtX9/0kgLabGpMnIIf8za
CJnUVBvZn1XV6giZDLBXtokvyJTmG2UXEQYZJoUEkDEiJo2kd8Ysk0qCyJhj0kl6Z2z2uOLlMxNM
t0pQesk+w5Vo9hBja0vsZwcd/EVG/vYotHnJNt+VKDECuHPZzUul016JMiOBNAOB9VQWKowE0sEE
alFcrGEkcN2X7Fun88Qrm39ANXYtMbK7tRHrmFAH9RZl333uvlU30rEOY9Pd0go62OOMeiwwe5wx
jx3sXducM+JxwOxxhjtusHdt88yt9hhQtccWbrXHDLWHnOFVewyu2uOIV+0xQ+25Njtz1GFw1R7H
HHiYofZcm90DqT1GqNrjApDaY4ba87zDIsq+2zbqcQlj0+0p6nGZV+2BZa/wqj2DPSJveNUeVPY8
8ao9g73J5pZb7dkykayB3uMdt96zVWKZesXHe17FZ/fyAUbNxwdezWfXAgG1qo9njj5moLCe7uOZ
Q5CDKdSi/PgMpPzMgGgj7ccXIO3nYLi7UH+Cwdl/28ZBgVA2354ioWB5FSBg/hyvBjT4u7a651WB
gPkLvDrQ4O/a6rPHPz9umGS8VcbZj6wznCnMHvRsZYHd318Hb5mJtz0qun5kme9MoTABt3Ml148K
pz1TNEzE0YHE1dN1IjERRwcRp0XNiZaJuFWf3rda64En1j+4HqOOidGtjDavyXRQ7RH20U33pLrx
SQztN9Et3l4Ha1xRiQVljSsmsYO1yBWROFDWuMIRN1hLhlNtMYBqSyJOtcV0rrYky6e2GEy1JTk+
tcUMtSUxRgkGU21JjIGCGWpLigBqixGmtqQEoLaYobasd1BG2EfbRSWptN9Ee4lKsuFTWxBZy8Sn
tnTPmuVTWyBZc3xqS/eseU61ZcvMKma9JQdOvWWrnCrVikuOfIrL7on6TJpLTnyay65p9ipVl8wY
LRxIXT3dJTOGDAdRp0V5KQZAeTkQxwbaSyEA7eUggNWrL8Vi7Kft4pTiEDbTXiKV4vkUGFDeAp8G
M3grkU+FAeUt8ekwg7f5prq/Pn//fnF2uVtl0e03cegt801xf/ZNt3vP7fj57W9c+eHi9knXLJ1M
X3dydDqB9GpxDc3F0fsJpYslgH5ZXEE1/QL3JJ2/+mn6x4vf/ufP55c/3Pzfe7ZWfK6OD+x8M95X
+GCHuqLb766otNj5Bro/86pbv2iPvNmKvNEevFE93lxF3mhn3qhP3nxF3u4+tGsd0b1PHj6gHomh
IolrjbCfCXpkNLbaEx/fg6rGEXa+Qe+7bYhr3rJH0mrGFhaItJqRhR2kPe8BqhlXOBzSqGZQ4QZp
W3jA1tZLDIZeYsnV1kvM0Eue84Gvq5cYHL2EQl29xAy9ZAsnVI4NDI5eQpXDAzP0ki2ckBn1EgOq
l1Bh1EvM0Et2dI81rfZE3tjCUpsNccQW9x6wdfUSGNJcXb1kkPasB3xdvQSGtFBXLxmkPeuBWFsv
eSaLiVExsam2YrIxX2loJjdeyHU1k+3T2hlUE1vqqibbJqN3rpu4yjHCHszVU05c5UBhZ+b61E6c
ZdRO9gCQST1xjlE92RnNoZ9Y59vtjbzRhgutNsYRb9z7INbVUIBoS3VVlEHbFj7IdXUUINpKXSVl
0Pa8D+abS/7mZnjSH/cp2Xn4vRy6ynxzyLd9753eWkMdmJ1v7vh6G+9QoPPwITUVlPmGjG/34ru+
tg66fH26aH+66mkl800P3+7Fd31tHXTF+nQ9+syuNTiPTb/ycfUoTPUpfM5Ac5hHB6258V645jZT
N36YbwD4Xhvh5ndWwVVgiA4sHFeBITawfXPFEBk4PK4YwgLXN1eeSc0wWGpGCExqhulXzQiRRc0w
cGpGSCxqhulazQg8N3gDp2YEnku86VrNiKaZmmFEqBmRmqkZZqgZj51hG++FTaKD6JpuhB1EB9Gz
qBloXAUWNaNnriKLmoHGVWJRM3rmKjOpGc+kBPHrGbEw6RkbU4S0KxrJsCga2+d582kaiVg0jW1z
u7WqGonnJr8/YfV0jcRznd+XMC3KRvLNlI39qePVNlJopm3sS6dmdSPF5ntik3ghpcYbYgcRQ8os
CgceW4VF4+iarWxYVA44tjKx6Bx9szVbnPDr+9O9KlC+fB+HvjHfXOht3nfrt9XBkq/L0g4VJ18e
UFPLmG/o8/MvvMvr6qAp1qWJ9qOpnm4x3zTn5194l9fVQVOuS9PSR3etJlk295PH1KOt1KVtk0EO
MYcKGueb6LzH3rbiFlL3Hj/fIOadN7b176qDo8q3d4vFUeW7u+2Xo8o3d4fFUeVru+uXo8igJhgc
NaEkBjXB9KkmlFxdTTBQakIp1dUE06ua4Ez9G7dBUhOcqX/pNr2qCc5YdjXBIKsJzjh2NcEMNeHO
+L7h3sZ9e3cmNNvYdN/enYnV1QQkjlJ1NaFXjnJ1NQGJo1JdTeiUIzIMasIzWS+seoIjYtATNua7
KFYUHNnqisL2mcksmoIjV11T2DbTWKOqQPVv3vsRVU9XoPrX732I0qIsUGRXFvYjjE9boMSuLexD
oFZ1gXLTPY79Pk+l4Qan/EZvTXWFAYolS9U1hn5ZstVVBiyWXHWdoV+WZrvHHy8uj6aXP96rFOLR
N3MoDvPN1N36zXd7bx18RQa+diiPePSUmgrEfGN0t3z1nV9cB2GZgTA6gLB6isR8U3O3fPWdX1wF
YfNNxd1g5sef2rWW4on1Vz+wGovzTdM9xEjzmEgHtbb1vrjuflM3WphvkO5+m+Izb62DLY6owQKy
xREz2M7Z4ogYHCBbHOGC65ytzKV2GDC1wxUutcN0rHZ4w6N2GDy1wxOP2mH6Vjs8063e4Kkdnuli
b/pWO7xvqHYYIWqHDw3VDjPUjqcOia33xTZRg09tN8UeogafedQOOLYKj9rRM1vB8KgdaGwF4lE7
umbLcqkdz6QLNdA7guPSOzamDqlXPILnUTy2T9Vm1DxC4NE8tk3KVqt6BKbb/QGU1dM9AtMVf2/K
tCgfITdUPg5Aj1n7CKWh9rE3pKrVj2ja749t4ohIrTfHHiKJaHkUEEC+HI8G0jlfnkcFAeQr8Ogg
nfM1e/zwcvOMz62Si15yzzh1cfZQYls77GUFHexlPvb2KIR5yTX/1MXCB9/OZTEvdU5Ddcnw0UeH
01dPRUnERx8dSp8WRSVZPvrWfMW+dTSPXbLx8fWodXzUbmvAGubTQbsH2WufuV3VjWhSgNhot7OB
Du4YoxuLyx1jbGMHd1cWZ4xsHC53jGGNG9xNFs+GWc0xmGpOJmY1xww1J1tWNcfAqjnZsao5Zqg5
V0bnjTAMrJqTeYMMM9ScK6NHGDXHiFRzcoJRc8xQc55zVgbZa5tGN7lAbLQdRTfFsKo5oNwVYlVz
BneuWFY1B5U7x6rmDO5c8cxqzpZJYPx6TgnMes5WSWHaFZ0SWRWd3fP8+TSdklg1nV1z+bWqOoU3
0jicwHq6TuENNw4lUImy442BUXYOp7OJtuMNwWg7h1LdgbrjjYXZc1vGO944kA23n4jHG8+q8OCy
F1g1nsHelc0jq8qDy15i1XkGe1c2nz3O+XH9rN+tssV+5Jxx7M3swc0277/z26tgjQwPa3tUXP3I
Mf/YE/HAtnOl1Y/6piF7sjy00WG0UT3aHA9tdAhtWtQa8jy0rfjsvtVUy25Y+9h6dAYeOrcx2Jzm
0kFzBNg7N9yK6sYhlJpvnM+/uw7OmKIPi8kZU+xhu+fMMkUeDpIzyxR2uMGZZVRTDJ6aYh2jmmL6
VlOsZ1NTDKSaYgObmmK6V1MsX0RgINUUyxcUmO7VFJubqylGlJpiS3M1xQw1ZY1znAHYO5tFH46a
b5ydRB/OsqkpiJw5NjWld848m5qCyFlgU1N65ywyqilbZkXx6ikuMeopW+VDaVZUXGZTVHbPqOfR
VFxh01R2zYjXqKp4vsjgMOLq6SqeLzw4hDgtyoq3zZWVw0jk11a8a66tHEKudnXFe4g9tFk84gPA
BtpJROIjm8KCyVpi01gGa5lNZcFkrbDpLN2zNt/E8w9HH48u/t38x3dvTj5eXP7x3cnp8Z7J8ndP
qhnuzjfxfIf33v6tt2Prt79x5YeL26ddc3Yyfd3J0ekE2avFNVAXR+8nzC6W4PplcQXc9EPvKTt/
9dP0jxe//c+fzy9/uPm/99yt+Fwtj1gEEqcFe/ftHDLffIPR98dw3Su3Y/APnz+9+vzp9edPx58/
LT5/evP509vPn959/lTLCXPEEZvWzbr3qbueAvLOXk9WmmU6eaWdnfrc2RMCide/2N+veMK1W6bf
hofO3J7OHS3RjljmY6BUPgb4z4DIdbu3+Csvct347Vh5u7rG6lt5jmnlOQErzzOtPDdW3q6uCfpW
XsS7bV5rOsuQPQDQ1Vt5Ce22+awl2qoOz0fxddnNePe1ZuwWtPvaYHeTv5LBu/G0YjcR2o1nsLvR
X1X/9vBx8eH06PVy/fI3t6/25vz85h/b/D1i6ZEcf5pIVf80sYNNdrdIQ5afAbkuxZ6LYrMTw6vV
8AcbUL0/9M43AP0go+xlkg7/VpAiF8M0N8P1BJSUuBimeRnu8+9dKXMxvOrz91XZs8K9/ifVo75w
Ub+fGec1YofrJBvMvX7TDbNu5mMmxI1+C3s01cuf0Z/rMswWOVopDLPFjXYwPI/H2OJGJ4VhtqDR
DYbn8Vhso+DBync5tZHvhna3n7tyC+0OWbjLpYVwN1S7fXxVmkRyyJJdaRLJDb1uL19ZKL1OpFhX
HJRYN5S6eb3rAff3duFhCXCb+4gNN7grttDocOlNLQS6Qe++7sot1DlceksLaW7Qu5+7gjGsuhwJ
yKwLhlilORqZdQd7zDKqcyQjsy4YxyjQ0cisO9RdnDEcycisC4YzkqORWXeouyKCUkfCM+uCSQhi
HY3MumrrJGPu9c3CxmAK4kY/Isf1HiPDqNqJYJiIUbgbDM/hMcuo3clg2DHKd4PhOTzm2yh4sPId
hTby3dDu9nNXbKHdIQt3lFoId0O128tXTSI5ZMmOmkRyQ6/bx1fWQOl1IsU6S1Bi3VDq5vWuBdzf
24WH1sFt7iM23OAu30Kjw6U3tBDoBr37uiu2UOdw6U0tpLlB777uyqy6nE8SUutsYdXmNhhl6HNb
uswZRn1uF4qbanSOGDW67TEeOt06f3HGcTNTXE+rc5zh3KwU96nXOY+g182MdwPNzgUEzW7WBTF0
u4cejqD7fbv40SXIzX7EkBtclhn1OyEUF0YNb1A8h8u8YdTxZFDsiVHLGxTP4jLbSM+DFfO8ayTm
DSVvP3/5JkoesoznQxMZb2h4ezmrTUyHLOD5NjHdUO/2clbGUu9ESne+YEl3Q7eb1b3BIO7x7QLF
QHgb/IgSN/jLNlHscPl1TeS6we++/vJNtDpcfkMToW7wu6+/Zo4Raf5JscSt04WZg0Sae1IsASp1
/9TuCpy5ED58TCxxCXWhcDF86JhYGlIdhWi4GKa5Ga4n1kXiYpjmZbhPuS5aLoZXfX6mMbG0Sm0i
TsEuOi7q9zPjvEbscZ14zL1+0/WybtAYA+JGv4U92tH705/b8csWMlop/LIFjHbwe7i32OJFJ4Vf
tmDRDX4P9lYybSQ7WL0uURu9boh1e/jKthDrkJW65FoodUOm28tXTUI3ZI0uNQndhkC3l68ilEAn
Up1LCUqdG9LcvN7NgPt7u7gwFbjNfQSFq12VTQtRDpbcTC0UuUHuPq6yLeQ4XHJdCy1ukLuPqzyr
EEcScudyYNXiaOTOHeauyCjHkZDcuZwYFTkauXOHuoszaCMhuXOZM3SjkTt3oLuKQZDmSHruXCEE
dY5G7ly1dWIx9/p28WJxiBv9CBnXeMszynQy+A2MSt3g91BvRUaxTga/iVGvG/we6q3cRrKD1etK
aaPXDbFuZ19FY1qIdcBKXTTUQqkbMt1evmoSugFrdNE0Cd2GQLeXrzyUQCdRnYsmQKlzQ5qb17sR
cH9vFhdGk+A29xEUrnFVbiHK4ZJbWihyg9w9XEWmhRwHSy5RCy1ukLuPqyyrELfXlBNuMS6SYxXj
9phzMgS5B/7yjILcoVME2UQ5Coyi3GEzAYcwd+UvzsBtZorriXPEGb/NSnGfAh1lBIFuZrwbiHRU
EES6WRfEEOoeeNga0P2+XeBoCXKzH8HjGndZRsFOCMGOUbQbBB/sLs8o3AkhODCKd4Pgg90VGwl4
sOqdTY3UuyHd7eGs3ES6Q9btbGmi2w3Rbh9nuTZBHLJi59oEcUOu28tZFkuuE6nVOYel1Q2hbl73
esQ9vl2E6ALeBj/CwzW+ik0kOlx2UxN9brC7j69yE3EOl93SRJkb7O7hKz9bXPjm/OPi5O3Zv04f
+efz48Whs1wfPY5DkPOzBYQH2GI3S2zH7A2n747+spgAPHp9OaF6fnbH5tGby8lIE54nZ2+XkL0n
le6pNLXsbjkYPGQY66Pn1lTVvOOAcP8hrKtMoYNCz0EhzUlhPW3MBw4KaT4KSQuFkYPCx587eBjq
E3+s/gn1eE0cvO5utnmMpoPsjLe/rrtd1Y2PfEHbXJ+xgwr+AkukYwXwF1jiHDv4e2h1lijHSeCP
JcRxg7+HVvf8Sg+kzBMCv8zTvcYTIrfGgyrwhMQt8Ax1Z7I6e/SBKu0E9uhj6DoUo4HQdUSJOpEg
RJ2h6KzzjwXbU9uEM9FBbag9xDLRc2s5mOQFbiFnkBe5VRxM8hK3hDPIy2z6DaFn6sTCJuHQyNT5
YvdkmFQcEpCpk4hJyKGRqfPQ8FxxBwnI1Elc0QeNTJ2HhvctFR2SmqmTQktRh0amzhYuinj7a5sw
JyW0zbWHSCdlJnUHn7/CJPAM/pasng2TxgPPXyYmmWfwt2x1y6/0QMo82fHLPN1rPNlzazyoAk8O
3ALPUHcmq7NHH6jSTmaPPoauM1k9Q+g6okSdXCBEnaHorPFPMWB7aptwphDUhtpDLFMst5aDSZ7j
FnIGeZ5bxcEkL3BLOIO8yKbf7NiqvYGGUxKbhrNTk3b1Ok7JTDrO/jOMGLWcUpi0nH0nEWnVc5Lh
ij1m5LCappMMVwgyG4ekhUPbUteZEU5ebScZ11LbmQ1jzfpOMh5wj20S7yQT4DbYDmKeZCKTziOA
wMSk9QwCH5g9M+k9AggsTJrPIHDZ7GQa6D6Iok8iaiD69K74JLLsig+o3JPIscs9Q+uZzM4fh6AK
PcQfhwyVZzJ7xFB5REk8lDAknqHvrHNQRttX2wQ2VLA21R6iGmvYlR1I9iyxyzqDPcuu6WCy59gF
ncHebLHMr+9P55qKtfQoDh3HzhbE7GmD7S2gg7lYm7lDpmAtPbOmdmNTbej2n3712AQ6qMu1qaO5
qKun19hSmzqahzotSo0ztalb/vjBE64e+ODpk6tx6ag2l7uZ6TAj6SDXYu2Xq25FdeMR55A2yw3v
r4O36pGIReetehxiB29frF09CnHovFUPQdzg7Yu1M6/SAiezuMIrs3StsXjDqbEgCiyeOAWW3tUV
zxotIEornjVa6F1X8b6priJCVPGhqagyFJXH/ohAeyR/uOETzAapPdbwmVNLwSOtcAopXZMWDKeK
AkdaIE4JpW/SLIt+QsiZKsGxSCg0MlVu7e0ZVBQCz1QJgUFIoZGp8sXgHHECgWeqBI5ogUamyheD
5xaKCknLVAmlhahCI1NlvUuiwdov+cOQSEibpfZIJFoGdQWbN8cgsAze7qztGTQWbN4Cg8wyeLuz
duRVWuBklph4ZZauNZaYOTUWRIElFk6BpXd1JbFGC4jSSmKNFnrXVZJtqquIEFWSayqqDEXlsT88
0B7JH26kALNBao81UuTUUvBIS5xCSt+kZU4VBY+0wimhdE1aNiz6yY4dmpk1lEwsGspOvZlV6yjZ
Mugo+w/4YNJSsmPQUvYd16FST8kcscJM3NXTVDJHyDALd1p0lRxb6CozgcioreTUQluZBVW1+krO
YHsmfzySC9SGqT0mKYZBZ8EmrhCD1jKIuze3ZdBbwIlzDJrLIO7e3J5Zd4ETXUpgFl26VlxKZFVc
EOWWkljllt61lsIbNyAKLYU3buhcZcnGtFVZJEgs2VBbiWXoK48dYpH2SfbAIxuHs0kqjzqy8azK
Ch5rgVVW6Zu1yKqp4LGWWAWVvlmbLdY4XlweTS9/PNd4oMfPY1BW8nzDxg+xxo62UMHhfPPGN1r+
kJFBjx9cUXHJ8w0d398cuxtDB4mWhUSalUSqR6JjIZFmJFGLKjPfBPKNpn/yyYPnCz11yZqfUY/a
wELtHqaby3A6CI+Ae+3a+1bdqGe+weWzbbTPWUIHgzwRkBXBIE/8YweDD+1ueaIfJ4FByxP6uMHg
I7vbBkoQpgxkXQMZaGhA1rNrQLACkA3sAtBQf67szh+RwEo/lj8iGbrPld0ziO4jTPSxBUT0GYrP
Wh85g7a/NgpzHGFtrl3EOM6yaz2g9Dl2oWfQ5zy7ygNKX2CXeAZ9LvLpOwSf6eMSn8RDI9Nn2fKZ
S+UhCZk+rnAJPTQyfR6a3rPFIiQh08ezRSQ0Mn0emd62VXxIbqaPd21FHxqZPlu5yQPutY3CHx/g
NtouIiAfudQfAQwmLgFoMPjA7plLAxLAYOGSgQaDy3YPpoEShCkDBWogAw0NKFh2DQhWAAqOXQAa
6s+V3fkjEljpJ/BHJEP3ubJ7BNF9hIk+IYGIPkPxWe+jjLa/NgpzQsHaXLuIcaJh13ow6YvELvQM
+qJlV3lA6XPsEs+gL3o+fWfH1twtNJ4Y+DSendp069d5YuTSefaf2MKp9cTEpfXsO5lFr94T2eKR
OVmsp/lEtrBkPha16D7JtNV95iSUW/tJ1Fb7mY9m3fpPsoj7baM4KDm8zbaLWCh5Lh1IAoWBSwsa
FD40fOTSgyRQmLg0oUHhQ8PnFroQpiiUSgtRaChC2fArQrByUCZ+OWhoQVeGbxCbwApBuUFsMlSg
K8N7FBVImASUA4oENPSf9U6KcHtso4AnJ7ANtotoJ2d+5QeUv8Iv+wz+iuHXfDD5K8Qv+Az+yuwx
zsvzj4uTt2dzD/h69FgO9afMHvIcYJv9LKODUc/J6BzDvx49v6Y6VAInpIePAltlGh2URk5KqQal
9dSjkjgppfkp1aImlcxJ6bqvmW122BM/bf6J9fgunHzvb9Y6RtWwMooxuPv3c7e9qpFZMYS6eW9p
Fx18skZqVhKfrHGaHXyu9gJrlOYk8ckaornB52ovxHZKF7LMVUxqJ3MNjevOCbmVxgUucBVTWglc
Q9364gVqFh2BS1uFmkVHQ9da8oKF1LUki1qFHKSoNRStbf3nQffstuEYBcgNu6dYjGIrLQubzNRK
yBpk3rkgt1KxsMksrSSsQeatC6xh169ISKZWscQuYdHI1FrhB8usYpGcTK1iHbOQRSNTa7UjuOMi
kpOpVSx3dEQjU2u1IyKSokVKMrWKTUiiFo1MrT1cmHH377Zhmi2om3dPkZozzOqWGD4dMQtcg89V
XrDMGpccPh2zzDX4XOUF307pgpa5XGgncw2N684JsZXGhS5wudRK4Brq1pIXmkVH6NKWaxYdDV3r
ixe8gdS1RItaniBFraFobes/C7pntw3HvIPcsHuKxbxvpWVhkxlaCVmDzDsXxFYqFjaZqZWENci8
c0Fm16/2bOjfQMPyhV3D2qvBv3odKxhmHevwcVKMWlYgZi3r0IFRavWswB0bVeC0nqYVuEOk2TnV
omsFj6RrVYC4kbYVApK2NTv+XehbIQLv4W3jtZBgN/CeYraQmXUuQYQWZq1rELrKDdEw611yCI3E
rHkNQle6wTbUvaBFr+gail5D8brzgm+meKHLXTE0k7uG1rXkhnZxErrQFdvFSUPlWnJDxlS5REtc
sWBKXEPf2tKByaDu220Ds0SYm3ZPUVmyzZQtbDZdM1lrsHnnA99M08JmMzQTtAabdz6YPRb78f3p
3FMRlx7JoWOl2YOwPW2yu0V0MJm5mJxjCuLSs2tqV6lwQXn49MPHJlFBZTZcVNLcVNbTqzJxUUnz
UqlFqcqWi8pVn59twuED36z/SfU4dlwc72fGeY2og3yPuR9vuqXVjadyQNyMt7CHDh7ZIikrhUe2
OMoOHp9any2KclJ4ZAuh3ODxifWLaaM0wcpMhdrITENjujK+baExIQtMxbUQmIa6dGv9JtEMsrRU
mkQzQ1e6tX6E0pVEikolQYlKQ1F6zl8ZcA9uFy6VArcB9xErWWNMCy0JlMTJHNRCSBokXpnetlCR
cEl0LSSkQeKV6T2rfkT4mUqTTQKrhEQjU+mR/SOjikQiMpUmoyRGIYlGptJTB3DGMSQiU2kyCmc0
QyNT6YkDyCAoSiQ7U2kyIyGISjQylXZwmcXcj9uFUeQQN+NeIinyjOqSDB4Do8A0eHxs/cioMcng
MTHKTIPHx9bPbZQmWJmJShuZaWhMk/GtaaExIQtMlloITENdurV+k2gGWVqyTaKZoSvdWt9D6Uoi
RSUboESloSg9568IuAe3C5dsgtuAe4mVbG6hJeGSWFoISYPEyfTOtFCRYEl01EJCGiRemd6y6kd7
drBn1pCcY9WQ9updr1pHcp5RRzp8MBOTluQCo5Z06FgllXqS44xlZuaynqbkOEOaWbnUoiu5jKAr
zQxsA23JFQRtaVbE1etL3oDuye3iKU+QG3IvMZW3jDqTECIdo9Y0iHxifs+oNwkhMjBqToPIJ+aP
jXQnWNHJp0ai01CcrqyfmyhOyHKTL03kpqE13Zg/tIlrkIWm0CauGSrTrfktlsokUmIKDktiGvrS
cw7ziPtwu8ApBLxNuJeoKcQmyhIui6mJrDRYvLJ9bqIp4bJYmghKg8XJ9nG2WOn1+fv3i7PLQ6fB
3T6GQzeKswVFe7z7dm++HWO//Y0rP1zcPumat5Pp606OTifYXi2uwbo4ej/hdrEE2S+LK/CmX+Ce
tvNXP03/eLA67vlb8blaXrE1iTxkFtzt82oqR9HVRHL/mW/Lr94jk74mkzQHk/W0oxhqMkmHM0l9
MhlrMnn3sYNnv9176eET69GaatK6vVn2M0qPHGecvfXxLaxu3BMLysa65r07pDFVjYcsMI2pajRk
B437+KRqLOSQaawaCLlB4z4+8XxaEZRQlAKfUDRUou1cErlUIjSJKCUuiWjoQ1v7hC2GQROHElsM
M5ShbX2STRNlCFoWytREFhqa0H7esiD7KW/Qkx3EZjoinnuHeC41CIvDwCUFDQ63c0jk0oGwOExc
ItDgcDuH5OoKEKFmC+VSXQSikS20q1eKqawDEXC2UKHKUhCNbKF93FI7eiHgbKFSO4ahkS20j1s8
pyZEUrKFSuCUhWhkCx3ssIizt/IGQyWhbKwjHrr3Sa6sD+HSWCpLRIPGXX1CxlRWiVBpJEOVhaJB
4+4+sXxaEZJQRMbxCUVDJdrOJZ5LJQKTiMgELolo6ENb+4QthgETh8iwxTBDGdraJ7mJMoQsC5Ep
TWShoQnt5S0yIPspb9BDBLGZjojn3iGWSw3C4tBxSUGDw+0c4rl0ICwOA5cINDjcziGxugK0Y8d0
RhWIUnUVaKfe6EMJunFLrqwE7T/Kh0ENolJZDdp3AE/nipCtHcHMQGU9VcjWDmQOprJPZchaTmVo
BkSZ1CHrONWhg+EdChFZD7S/8kZFNsBsriMyundKrKwUAfOYKqtFg8c9nJIrK0bAPJbKqtHgcXen
OMOoHEHJRo4YZaOhGW3nE8umGaEJRs6xCUZDLdraKXzRDJpU5PiimaETbe2U2EYnghaJXGojEg2F
aD93ZZQ9lTf8cQVjQx2xz51HvGHThqBI9MQmDA0St/OIZVOFsEh0bJLQIHE7j8wW8bw5/7g4eXv2
x3mGlT18Goc+5GcLgPa3xE520DAlj3xk4O+Q0WQPH1tTEfKJAcD9B5WtMIQOAjMDgTQjgfU0IF8Y
CKTZCFQyw56CYSDw0acOnj722Bkrn1+N1EAMpO5ssjkMpoNoC7enrrlL1Y13ggPbUDdbQQd7HBGN
FcAeRzxjB3sPbM4RzTgB7HGEMm6w98DmmV3JQZRxQmGXcXrXcKJh1nBABZxIzALOUG8ockcaoNJN
5I40hm5D0QPoNoJEmxgARJuh2Kz2TcTaR5uELTEhbaIdxCwxM2s1kNQVZqGmd+qSYVZpEKlLxCzR
dE+d5dJnCDzTJjkuiYZGps0Xq3selYbwM21S4BFqaGTaPDA7U4xB+Jk2iSnSoJFp88DsuZ1iQzIz
bVJpJ9rQyLR5zj3ZwO2pTcKZTGAbagcRTbY86g08e45HwBnsLdnc82g48OwFHhlnsLdk88iu5CDK
ODmxyzi9azg5M2s4oAJOLswCzlBvqHBHGqDSTeGONIZuQ8UC6DaCRJviAESbodis9o3H2kebhC0l
IG2iHcQsJTJrNZDUJWahpnvqMrNKA0ldYZZoOqfOGsOlz+zYfJtdo7GGuDSanZpxK9dprLE8Os3+
k13YtBprHI9Ws+80F6V6jTVMccZ8DFI9BpnCjbkYJC0Mxna6zXxcsmo31qR22s1c/CrWb6zJePtq
i7jGmoK2qXYQ25Dh0XHg6SPi0XIGfctGtzx6Dj59jkfTGfQtG93z6zqIog4FflGnd0WHIreiAyrn
UOKWc4aWY4k95gAVcog95hgqzhTpIag4giQcSwgSztBvVjvHgu2lTQIY66A20g6iF+u5lRtI7gK3
bNM9d5Fbs4HkLnELNt1zN1vM8uv705mmSn15EodOY2cLVvazwNbvr4K3+Sbbr7H2IVOkvjyypjYz
34j7fUywiwF0EGcrE0czEVdPj5lviv0+JtjFADqI85WJW/rwwROilh3w5Ln1iAyVidzJRIcYSAex
EWqPXHEHqht3zDesfoYNcv3b62CtdsRhwVmrHW/YwdqdrX3taMNhs+ZrhxpusHZva8uqpKDJKN6x
yig9ayjeM2oogAKKD4wCSufqieeMDAClE88ZGXSum/jcUDcRIJr40lA0GYrJA18Eg7MvsocVgVA2
ReUxRbCMWgkcZY5RKOmaMs+oksBRFhglkq4pixz6CAFnmoTEIZHQyDS5sXaur5IQdqZJKPWFEhqZ
JnfmjgwxAWFnmkSGyIBGpsm9uS2/YkKyMk2i4xdNaGSarHWHh9oj2cONGIA2SOURR4z11RNo1lJ9
AWWwdmvrXF9DgWat1JdRBms3tk6GVUlBk1ESscooPWsoyTJqKIACSnKMAkrn6knijAwApZPEGRl0
rpuk2FA3ESCapNRQNBmKyUNfZJx9kT2sSAVlU1QeU2TDqJWgUZaJUSjpmjLLqJLAUeYYJZKuKfMc
+siO3Y95NZIcODSSnfoea9ZJcqyvk+w/KYNHK8mpvlay7+QLjXpJZogL5mGunmaSGcKDOZjTopsU
w6+bzMMgn3ZSiF87mYNRrfpJsVj7JHvcURzSJqk89ii+vo6CTVuor6UM2u6MHevrKdi0pfqayqDt
ztiZV1dBE1VK4RVVOlZUnDGcigqenOIMccopfWspzrDGCHhCijOsMULfKoozvqWKgi+hOBNaSihD
P3nojAi0N3IHGM4kmI1Rd3ThTOZUTuA4K5yySc+ckeHUTNA4I+IUTLrmbLaY4nhxeTS9/PFM43Ue
PY5BOXHzDeI+wBa7WUIHg56DwUNG7jx6bk1FZb6B3HsbY2dT6KAwclBIc1JYT2mZbzL33sbY2RQ6
KMwcFD7+3MHzeZ74Y/VPqMdr4eB1d7PNYzQVZM83+Xu+/XXd7apudDPfSO+5Ntdn7KCDP5ZIx0rg
jyXOsYO/h1ZniXKcBP5YQhw3+Hto9civ9EDKPDbxyzzdazw2c2s8qAKPLdwCz1B3rHPs0QeqtOPY
o4+h60xWtxC6jihRxzkIUWcoOuv848H21DbhjAtQG2oPsYyL3FoOJnmJW8gZ5GVuFQeTvMIt4XRP
njds+g2hZ+p4YpNwaGTqLNndMqk4JCBTxzsmIYdGps5Dw3PFHSQgU8dzRR80MnUeGj62VHRIaqaO
Ty1FHRqZOlu4KOPtr23CHF/QNtceIp1gmNQdeP4CMQk8g79lq1smjQefP8ck8wz+lq3u+ZUeSJkn
BH6Zp3uNJ0RujQdV4AmJW+AZ6s5kdfboA1XaCezRx9B1rIsGQtcRJepEghB1hqKzzj8WbE9tE85E
B7Wh9hDLRM+t5WCSF7iFnEFe5FZxMMlL3BLOIC+z6Tc7tr1uoOHEwqbh7NQCW72OkwyTjrP/6BNG
LScRk5az75ATtXpO4oo9ZuSwnqaTuEKQ2TjUousk31LXmRFOZm0nhZbazmwYq9Z3UgTcY9vEOynB
bbA9xDwpM+k8AggsTFrPIHDZ7Nkw6T34BGZi0nwGgQ/MbhvoPpCiT3YNRJ/uFZ/s2RUfVLknB3a5
Z2g9k9n54xBUoSfzxyFD5ZnMnjFUHlESTy4YEs/Qd9Y4qBi0fbVNYFMIa1PtIaopll3ZwWTPscs6
gz3PrulgshfYBZ3B3uyxzMvzj4uTt2czD8h6+FQOdafMHtrsb5m97KKDz8zI5xzDsx4+vqb6Uwoj
oIeP0lphGA2EemMYCaUKhFZTh7whRkJpdkJJC6GWkdA1XzLb7K3HTtr48+qR7RjJ3tukNQyqY0V4
2D37mbtd1QjMmwC6YW9nFR1sckZkVhCbnPGYHWyu9AFnNOYEsckZirnB5iofkGmmZAHLWJ6omYw1
NKxbF9hGGha2gOXJNRKwhnr1xQetIiFw6YpaRUJDt/rigwioWwkWrSgBilZDsdrOdxlzn24adlFB
3KQ7irmsaaRVIVNpqZFQNai8dYBtpFJBU+kaSVSDylsHeG59imRkWnkbuCUqGplWT70QeVUqEpNp
5W3iFapoZFqtdANzDERyMq0scyREI9NqlRucwVGsSEemlSMc0YpGptXO7rOwe3bTcMw50A27o4jM
eV71SgybgVfAGmyu8EHk1bDEsJl4ZazB5gof5GZKFrKM5UozGWtoWDcu8KaRhgUuYHlqJGAN9eqL
D1pFQuDSlW8VCQ3d6osPPKBuJVi08gFQtBqK1Xa+i5j7dNOwyyfETbqjmMvnRloVNJWlkVA1qLxx
QDCNVCpkKgM1kqgGlbcOsNz61J7N8vk1quC4Naq9mudr16mC59WpDp/LxKdVhcCrVR06e0mrXhWY
46D5Ga2nWQXmcGhuRrXoViHj6Fbz89tGuwoFR7uam/se9KtocPftpnFZJNRNu6PYLFpeHUsOnY5X
yxp0rnKC59Wz5NAZeDWtQecqJ8R2uhayqBVTO1FrKFq3PsitFC1wOSuWVnLW0LLunZCaxUTgQlZq
FhMNFeuLEyyiiiVYwkoOUcIa+tV2zvOge3XTACwFyI26o+grxVbKFTSXqZVsNbi89UBupVlBc1la
CVaDyxsP5Nljrh/fn848VfDLEzl0qjx7sLWfRXa2hw4eLROPc0wR/PLomtpUdkxAHj498JFBdBDp
mYikmYmsp0flwEQkzUqkFiUqRyYiV3x6tgmBy45Z+3PqEZyYCN7LhHMaUAfxGXIP3nAnqxs35QK4
AT9vDRUsFq6IycpgsXDFS3aw+MT2XNGSE8IiV6jkBotPbO+bKEmoMlIJTWSkoSFNpo8NNCRgAamk
BgLSUI9ubN8icgGWjkqLyGXoRle2D8YA6UbyRKNgCEg0GorRZl9ZvH23VVgUjEPbdPuIiYLxDbQi
WApDA6FoUDgZPjZQiWApTA0kokHhZPjMqQ8RfqZRMIVTIqKRafTA+mT4VCISkWkUiPiEIhqZRk/M
zxizkIhMo0CMkQuNTKMn5vftFSMSnWkUKLQXjWhkGm3trgi5BzcLlygBbsCdREyU+dQjESwWPgFp
sPjQ9tbwaUgSWLTEJyMNFh/Z3jZRklBlJOuayEhDQ5pM7xtoSMACkg0NBKShHt3YvkXkAiwd2RaR
y9CNbmyfgXQjgaKRLUCi0VCMNvrKGbx9t1lY5Aht0+0kJnK2gVYES6FrIBQNCifD+wYqESyFoYFE
NCicDB859aE9u8PzakQucWpEe/WF16wTucynEx0+4YhHK3KFTys6dEKRRr3IM8Yt8zJZTzPyjOHL
nExq0Y28ba8bzcsqv3bkXXvtaE62tetH3mPuw83iJh8QN+FOYicf+XQkGTQmPi1p0PjY+JlPT5JB
Y+HTlAaNj4wfTBtdCVVUCtRGVBqK0mR720JRApaTgmshJw0t6cb4TWIYYCEpNIlhhop0Y/yIpCIJ
lJBCQpKQhn602VkZcO9tFiCFArfxdhIdRdNCOULlMFIL2WhwOFnettCMYDl0LQSjweFk+dliog9H
H48u/t38x3dvTj5eXP7x3cnp8WyDg+6eXTM0j7MFQwdZYns7bMffb3/jyg8Xt0+7ZvFk+rqTo9MJ
xFeLa+gujt5PKF4sAfjL4grK6Yfek3j+6qfpHw8Wzj2bKz5Xy0cRk9Zpmd89kEPSjAkR1XVGaMfp
Hz5/evX50+vPn44/f1p8/vTm86e3nz+9+/ypllvmiHE2ra1171N3zRVZJ0Q9uSwZSScEdXlCJMKk
9fpX/fsVz7x21PT78RBsEQne0TbtqOY9TpKrfJzwnyWJLdqwElcnWwRix+o82FlR3+pMXKvTSVyd
mWt1urE6D3ZWUbc6s5Fws71Wppaxe4Ckq7Y6M+HfbJ+1TVul5HnloS7fVsLdsBnfDv9uOPje6EEv
4XbVjO+Af7safG/0IOffZgj5L4mZ888zNP6SuJePMiatzH9JzAUR1e7/kliMxr8kFpJ1QtTTkoqV
dEL0+ZfE4jBpxVBDi0ckeKihq50V1KmhJTKqRfJWZ2JUi8bqPNBZWd/qLIxal7TVGY1h1LrG6jzQ
WaRtdUZjJdxsGynR0Tj8m+1Qojd60Eu4GzbjO+DfDQffGz0YJdyumvGd8G9Xg++NHuT828z+jVQZ
/pQYDeffZ/bth9r53xIjGVBeef+YGIkgYe39r4mRrMK/JkZywk6JeoISeVGnBPV5SgRQXjFEUYqQ
DA9VdLW3kjpVlDKjaiRwfRZG2WiszwO9ZY269WmJUfWStz6tZZS9xvo81FtO3/r0Iu63rWRpGwTc
b4cuvdGFUcQNsRnhScANcRC+0YVZxB2rGeFFwB1rEL7Jha7q32qOJ9+9+IcHauJuKvEDX9X7s6Kr
+pea9VbYywYdasXOslF6v7lggurYQH1siMHqli7yDKyu+xQmtIEB2mcsMujd0lexOr1fS7gQpOrI
fj1uBIc4KPNxCn4lKHyojjvBfj7yhoNWUZcCTxzYjlvBPM6qGn9dffrql7oaKCPgbuCrxmDPGmMw
u6WbPDez2PcEH7ixHbeFPT0V+ch95iswSU58JG9nn0H2lp7LXGRLEBl84eJ4aA2H+CkYdmqxrxKB
2MEdd4k9XWUZ2ZV4mQiOkeVxm5jVdVUjvLPz48X/dXT680KCJhGqBnfPmGLwuqWTIi+v4JeIxIvs
uEHs6afMRe3Gz2MyXLgY3sY2g+jtvBYND9ESNIhIPAQPBeIgL1lmYrGvDtExQzvuDns6yrNxK+/y
EAMbxeP2MKPbIkjFxFIfp6UncDS2igmiXGILAzSs7XmmsKcuoxmnXqIhpgWlWGKQus5HybSvDdgH
2Ufu+reP52dvXyzOJtO+eXOxuPxianNvV6plQoIrrxi8r3WWbVRYIB1yh1GQMche6yEPVJHR7tKR
Akw5xmB1rZMiYj1GQ2gTXjHGoHettzJWNUZDbgtSKcYgdp2fsoGrxWgHbSawQozB7VpXWbRKA+Fh
XHbgpRtjLax1nW9brSCd/ABV7DE4X+uoiFft0fCyktBKPQa5a32V8Ws9GpJc0As9BtnrfFcMUqVH
O4YL4ZR5DFrXesmC1Xk0BNZBFXkMZtc6yiNVMgiP9UoALgsZa2Ct22LLWgjpzCegQpLB+Fo3ZbRK
koaXk4JVRjKoXeOpZAx2HUkzhpMh5CKSQfRav1k5czeqDelLxkmZu9HljOZkvKi5GxVBDYLmbnTK
agSsJNnLWzdh3MXl0cdL/kAumSRxWkenzGeUahKJoBcxMz76pJuMrBkf9a4fRJJmfHRKqxU646Mi
tk7kjI9O+fXiZnxUJDcIm/HRKbNR4oyPitgmeTM+OiU3w1eWCAzpqMifDNLnerAGrLpEIP2WpM0T
6ZR1K3KeSL1ri3UC54l0yq5XMU+kIstBwTyRTtmOwuaJVKQ4iZon0imvWd48kYrIFmnzRPqk1hno
ShOBcZ8j2VNIOl0HFqraRCL3Ttbskk459wJnl9S7prggbnZJp9xG8bNLKlKchM8u6ZTpLGV2yarn
ny7O3k4Pq2WbImOoyQbLNKyl+vzp1edPrz9/Ov78afH505vPn95+/vTu86dKvvJzxJDPlH+tfJ+q
q9OToKkt/AvUWzHjXMYandzlVK5RL3FezfY8btVCItUybpA3yWYs9clvUeVST2JG9UhZ31nIEJ+x
qCdnFY2LOhhJU4r4L9mB5IwvGqt08pdVuUqdyPlMDZarFzi4aazbyXFB5bqNwiZTNVixSdTIqrFW
J5dllWu1yJvJxb9co5E2rGus2MlrpHHFRgXTyIQoVVH8nLKxDUxe9Cq3gSBtEJuURR9ljWgbS3zy
WVK5xLPAGXQNLudF3HC6sWZtSiqztxIpmL7Hv4aTFT+Wb6zpyY0qs72SFzV3sMHqDYIGEo51OjlM
ZapWStImLjZYqlnWKMaxWiefqczBykb2rEkhclYmyVMox/KfPKgyuSs7WWM2pSx3L2kA51jek8dU
5oDlKG7CKP9lPCdho0fHep2cpjIPLBfhs1X5V28xooeujrU8uVBlhlixAvp7UKNF6+D7exDs6mRe
nLXzthqszCCjt0erxRkl9PYY6/PWW0nf+szC+nrQPtJUq06dpYhq7DHW+bXbsjHa1nk2JKGph6TF
nY3F7+oxVvStr5y+Fe2FdPRoc7XOJojo6DFW6K27or4VmqR182i1VLOsbh5jzd76rahbs2TkdPJo
tFqJpHTyGOv01mNW3zp1orp4tFqqXlAXj7Fab50W9K3WKLqDhyhZipLgFh5jD7h1Yta3BxRB7TtE
rXhrxPTvGOv71mWkbn1bK6t3R6MruXWSeneM9XrrNa9vvQbZfTtard8ouW/HWM+3Xkz61nOW0rOj
1cotMnp2jDV64y+nLwvLkaB+HY2WKdd8+HE7ns9l+rKrnBfbq0OUduWC0GYdY+3fOlBf3pZLYhp1
yFrrWUinjrG2bx2mL7/LG0ldOhpdwT3J6dIx1uqtz/TleHknt0NHq5XrpXboGOv41oP6sr98BOnO
8fr89PTow8X030eXL/5+xcO+2UDgV9XWbIJo0HGgcdqtz02w1+U64/S2AEW7oLS3GHTv6rtgADtD
zOvGLeWQVMvCBNcdYiyTnZ1oURor6FobDqO5wlgQO3sOqS8B5rUo4LQmGHzv7LyIWNUPCnrCK+wf
xO/sxYxVEw/KekEqix+U7+q/aOAqyjFBjwRWVD5Y39mFFr4eW1U0Gx14TfZYQju71IOVM+taMAGq
pHksj50dGPGqgUGvUwmtIHjQvrMPM34tLSj9Bb2cdqyGXX2aDFIlKib3iXCKUQfhO3vPgtVxgkLu
oEo5B+c7OxC7ClJVyJuQKyHH0tnZnRGqiFDXUklAhYRjaezsvoxWgwd6fSpYZXiD9F09mA12BRsm
95mQi9jGKtjZnzNHyzRn/Rc9dJ2pR/XMwTDNV+b11AY9UurZKN3rPsIHamADdY8Lx2D1ykWRgdV1
n8KENjFA+4xFBr1b+ipXp/drCReCUh3Zr8eN4AAHFcPHKfaVoBAfquNOsKePLAetoi4FxXFgO24F
8ziravw1T5URH7lVY7A5iokGs1duitzMgt8TEje247awp6cyH7nPfAUmyYWP5O3sM8jeynPFGC6y
BYgMxRAXx0NrOMhPlp1a6KtEMY4d3HGX2NNVnpFdgZeJYgIjy+M2MavrqkZ4c9Sy8FFcNbg7vGRl
8HrlpMzLK/glovAiO24Q+/mJDBe1Gz8PyTARF8Pb2GYQvaXXLA/REjQIcjwEDwXiIC95ZmKxrw4U
mKEdd4c9HRXZuBV4eUhsFI/bw4xuyyAVE/cTm+jpxCZzNbGJqpFbIMoltjBAOz7/qRmg1uAUS7Rj
1BJKpcTAdLWDbPuqgH14XVluvzg75h/aW6yDK6wYsK/2lG9UTyCd8IBRhzGwXu2eCFSF0fCukWBK
MAaoqz2UEQswGhJb8KovBrorXeUMVu1FO2gdIRVeDFxXO8nClV00JNaB1VwMaFf7yaNVFAiP21wA
L9EYC2G132LbkgTp2Ceoio4B+WovZbx6joZ3lIJWzDGwXekob/BLOdph7Am9jmNgvdpxFqmKoyHA
DqeEY6C62kUerICjIa0BqnpjALvaSxGpPkF4cOcTcLHHWACrfZZbljdIB74A1YYMwFf6KBi0ypB2
d5JAWGUhA9nVbrLYRSENAXbIFSED59VO83ImaFC1YqYQpEzQoC6rlkIUNUGjIqhJ0ASNTlnNgJUh
e3lry1mMtexYJM7d6JP5aFAKRASCHknMtI5O6baypnXUu35EJ2laR6e0eqHTOipiG0RO6+iU3yhu
WkdFcpOwaR2dMpslTuuoiG2RN62jT3KTga8dERjSJZI/46PT9WDBSkgk0u+kTQbplHUvcjJIvWtL
CgIng3TKblQxGaQiy0nBZJBO2c7CJoNUpLiImgzSJ6/ZyJsMUg/ZTNImg3RKrYWuLhEY92Une55I
p+vAQxWZSOQ+yJpC0innUeAUkorXlCRuCkmn3GbxU0gqUlyETyHpk+lipEwhWfX808XZ2+lhtWxD
MsaTbLBMw0Kqn/58+v7s/EMt38wRM7ZbdU7QaJUGC8+LmbnS5doLotdelDgvZnvOtun0UGrZNskb
JNPlCs6iV3ARMwRHwrJ1xhgh03H6W6uTc0juWp1+eytpsg/3VXeyj5Mz8qfL1edFr74gclxRg2UY
Bc4x6nI9JtHrMQubwdRgJRZRw5l6XINkJK9BInmDpfiXIVlpE6e6XIlO9EpUMC1LhsBD4sdodbm6
o+jVnaSNABOylrOs2WBdrtwieeVaI3CuGf8V2ZK4gWc9rkVrRa9Fp2BYW4O16cVPcetyrQbRazWK
mkDXYFUmQaPpulx/WfT6K9LG6vEvQWdkzdvrcRU60Rk/zsqeFShDBXJO8hDBLle16EwiF2QNQBSy
iqOkyYhdrlrR+UYui5vq2OBKXISNe+xxHXrROUeehI+q5F+V3oqeYdnlGhWdjeS9gE4I1GgxBvhO
CAS76iovOtFJQj7JaITQat1lCY0Qul16orN8ghHWB4H20XXadCKcrEuiOiH0uoSD6OSg4CQ0QpC1
bj1+K4RuF6vo7KAQhXRCaHTXDUlEJ4RuF5/o1KBQpDVCaLQKeebHj4vrwX4SnSNUd477vH0QWi1E
J6UPQrdLUHRCTwyi2iC0WoVRUBuEbhei6BydmEV3QRCl7nBOQ5+9KqzX5Z1Ep/4kEtQGQdRibj0g
fCzd510kOiMIcSo34B0Zb1b3WIorvCQ6Tygl2W0QWi3NLLkNQrdLVXReEfcManHnJfdY6nFS7ugf
0TlB2QlqgtBqBXoxTRC6XYSic31yFNsDQZQElJPQLgjdLmvRWUS5iGmCIGoZFyOkDUKvy7aIzjYq
VlIXhEZ34uLkdEHodhmKzjgqQW4ThFaLMkptgtDtEhWdi1QySA+E1+enp0cfLqb/Prp88fcrHvbN
Bri+qrYcC0QbhAON027pteKajMFpMwCJNhlC6TQw6N7Zdxawkn9eN26nT5RaBnZwxfxjlezsRI9S
LK9qaQSMevmxHnb2HFI9OuilCKckffC9s/MyYsk3KOgFr+p7EL+rF8lgVVVjsk6EVFg9KN/Zfxau
cBkUdAdWuzxY39mF+BPSNQWz8GPSxwra2aURrPxW1XpJUBW4Y3Xs7MCMV+EKepkqaEWug/Zdfcg6
177NdaqW5Qi9jnSshp19apHqNEG5dzilmoPwnb3nwUohQSEPUNWQg/OdHYhdbagp4rXIBYdj5ezs
zgxV0KdqpRSgmr6xMnZ1nzNoNXOYlydHWGVzg/SdPWixy9JAuXfIlWljFezsz9li5TfnHxcnb8/+
dfrIP09e2r/q69GDvnlh6tE8Wwi8/dvv/O7bUXlD4rujvywmxI5eX04wnp/d0Xf05nIyywTgyXQz
/ALlPYt0T56pZenIwtmOtwlO1BILajtdE/TSlivTturDeMiVyshtsEKf3HlTlbuvwY9TT1WB+3qc
p19MbXlIwz1QveOBbZyo19b2tXkTcaT6UBu6caY+Nnm1yOHQyhZO7qpFD4cVruilLnNSB3zKFk7w
xll7ZfNgeNjb8Fk4DgPxcPi8TTpl0nIwiR7gBsdB4YhzlyzuWbnDPYhDYEVvnMTXRo9M9Ik6ihMT
ieMsXuOAarHJYdn7nAxWC0sOSc5XS1w0fMThHsGR+KAb5++1xS0Hd2s/h0eg4yDwOXt0yqKvzyJ6
/BtDff5G9Ltk78jIHPDBmxixGyfvtckzC3mCjt7CwuA4e1cZPxmALOXJSo+++2bkibkaeUK1uEvU
PEX5mRfXQZjFyE9uBJlDSE7ugjPfLid3V9hW1pUuzo75J0VSCjCpzF1QGhsk8krGM7VPfO6CywyS
9dzomC4QKc89kJYNUr5zG9wy4SQ7d8Gcxcl0bkScQ0lz7oI3D5Xj3Ai5AJTg3AV1ESWTV3DAkRNo
OnQXBOd2WcCSmS0wydM9UFoMVuZ0m+O9EFLadBfcWdyc6UYMOtSE6S549CjZ0o3oCxip0l2wFoHy
pBvhlmCSpLsgLiNkBAuOSkoBTKnugFxrTKtcYrm0WkMgCdhdEGqRsq+bHOfWOJzU6y6Y85h5143o
C4hJ111wGPH7QtNX1bhL6H2h6SslnGURfaErolYE9IXWQhsZoOzrnW2+3WCfWqEHkZRu0mpotQhZ
2NIwdfA9qNXw6WX0oK53eFOQ0INaDW9RUA/qitAlMT2o1ZCXxfSgrshdEdKDWgt11kjqQV0PPEty
elCrYc/CZmkLC0isk9m5Wg3JHihbWxq7QUq/azW0RlH9rise+klQv2s19GWx/a4rkliE9rvWQqUz
Qvpd12PQkYh+12qIs3L6XVeEzknpd62GOw+ZzS0sanFBXpdsNQRHmKxuadQmGb211ZCaBfXWrnjI
FzG9tbWQ543I3tr1GPQksLe2Ghotem/tx889XZy9nR5Syx4Ou+H2GmvoYNEL6MLNjGOAb82tmsgo
pV/3dl7Yqnj1PvF4dmsmGW28VROd4Xt7i0C5gLf81sxwMBL6gPNeFALhNwdXzaQV0zGcGUwnpI24
ajq9kN7izGwGEQ3HVZMZ5XQhZ4YzSWlNrprPLLNfuYQgKhSJbcw10x6NlN7mEviOJKPluWqiraA+
6LwXjOjENEdXTagX2jGdmdYgso26anKjiN7qzJwmAQ3XVVOZpXRhZwazyGjNrpnNZOT1a5cQaSWS
1sZdNeVWRm93EWQ7CS3fVdPsxfSB571QpCCkObxqOqPAjvHMnCZxbeRVE5uBKw6oAZ4FtuKAtLOY
DXbFQQMcMyFXHOgn0gqoOKBdo6dWVdXZwVcc6CfaI1ccyEE54FYc6Gc4glcctLgoJOiKA/1MZgkV
By3ALPgVB+rpLAa/4qABm4XQKw70k2lFVBy0gNMJqDjQz6cXV3EgJogqQVjFgX7ao4CKAzl8J/iK
A/1EZxkVBy0uGEVCxYF2Qp0x8ioO+Gl1hqRVHOgn16JXHLTg1GFXHOin0guoOGgBZoCvONDPZhRV
cSAl0nImCao40E95hq84kEN2Aa84UE8zGQkVBw0uFET4FQf66bSyKg5acOokVRzoJ9YDVBw8M09i
tf2/qkZoaF50sKdBdBAZMeoOwKBMCKUHXXOZgaoP5nHElsFUrQJuRwWmBKFnsq1BqELQgbSl9qUI
XbNsQaoRsK4P1kEUJHRNpkeqSQDDM+CUJXTNaMSpTAAjNKEUJ3TNZ4aqTwBDtACVKPRMqTOwVQo6
gixHoKUKXVNvgaoVlHDuYEoWuibbY1UtYF07XEAqXOia04hbuwDGbEItX+ia34xSwQBGa8EoYuiZ
TW+A6hiw8PQEU8rQNaEWsppBRyTmHWBJQ9e0e5iqBiWEB5DShq6pjkjVDWDXjIRT4NA1oxmzxgGM
1oJY5tAzt2G2CO7X96eHVzksPeSbF6Yah2G24Gy7t97pnXVwZatzteNJzYWWq47WTsewTrp8Rboe
fwgLr1ARrzVv3iFfsRpfXyMfi6kaXF+Pc/HGxLk+WaAHY6kP1zgZo6nJF/TRGKkmYONsvDNzlZv9
oZnwXIxVud0fluyukzLPRRnmaRkDF2jjzIyxPmtrPoPFXKrP3GY7dMhers0ecsAZS23iRtx5Y+lk
2DjDPFATsaE2TtRkGWiTcKQmx0DdOFMfGb1K7HBYtjQXb1XChkMSonUSFnkIAz1KEw9k4xxNuTZn
Kz+ORVupTdsmG/THXDZ1mUOORzPVZW1Eo7d2tkyMYR6g2TFhNk7Q7KuThn+E5lCdt3GGPjB4bJxV
O1lo6Ttvurabq67tVI2x1DSldsML6yAqt8+nbQBVaZ1Mq52rYvjzSXcBa2U94OLsuMGYo0LNU2/V
02iZE1CloujaJuqq59ADZOnyH7clNE/RVU9WRMjPbYBWap+cq56tjJGZ24CugpCWq5wvbwxMTi47
Yt4QSEKuesps6yxUmUGBNw4sfVc9qb5N9qpUPgNEsq96KiNOpm+DYzqhpPmq5yzj5fg24K2gJfhq
544MQnYvP2lE7VN71bNlQfJ6G+DlIJJ61RPmW2azCo0cKAClAKsnNLbIgZVKZgJIGFZPZEbJFm5w
LBeMVGHtjFmDlSfMT5olpCRh9bxZ3L679FU1xhxq3136SglXHrrvbkW0AnDfXTV0RYBs4Z3svOUA
kVr2SsjdetVQmVtnDUtCssD2+NXCozPYPX7rHcKOkHv8quHLgvf4rQiYg+7xq4YwD9/jtyJjAbzH
rxrKooQevxVBS/g9ftWwluGyigUFDa7I6QyshVhvQLKLBXHqCb2fsBo6rYh+wvUOb+8E9BNWQ5sX
1U+4InVBUD9hNfRF8H7CFXlL0P2E1RCW8fsJV4SsoPcT1sJZMFDZx4Iii0AyuhCrIdVCZCFLItRh
9y5WQ6YX0Lu43mEdAnzvYjWkRTG9iyvyloT0LlZDXUbtXbz8vNPF2dvpm2vZoGA2M15hARXMVZxa
fXhtDx92kWDbHaslzyL3P37e6tsUP9pqxnO4HZHVAuthWySj0xpAmyarRTUid1FmPNYTbltltexl
6D7LjPAV4MbLWulLBrwTMx9/iaBbM6sl0OL3amaE0KE3b1bLoZfTzRk8fklBSn9ntTBH9IbP6Agn
7BbQasHNAnpCM14HCnyTaK0kZiOoazQfkZnEtJFWS6aF7ivNyKIDbjStlj6P3nmaEcCA3YpaLYNR
Rm9q8CAnJwndqtVCnLHbV6PDW5AbWmuFthj4Dtd8x38h8JbXaim0QnpgM7LoRDTFVkukB8xFJ2YE
A1wuOqlmLmLmonNjlxBz0XWTl0Fz0WmXwKVV/WspkMnomokNxiAmo0vANRjCy0bXzaoFzUbnPdiD
cZDZ6LrZ86jZ6NzwBcxsdN30RdxsdG7+Emo2um4CM3Q2OjeEBTgbXTWHZERko4sIYIgEpKPrptkC
p6PLYNjB5qPrJtdj56MzXwgoIOej6yYxyshH5yYySchH101mRs1H52axYOajq6bPGuB8dGYALcHm
o+tm0MLno4uIcqwDT0jXTbGHTUiXQW8AzUjXTW1EzkjnvgAk3Ix03RRm/Ix0bhYLeka6aiKdaZyR
vqED/VOb1+rKHxw1TUrf0Qg6yLPt89JB4HOtU9O75M8DZKcfZvjtAhlbzYKheYZ6l+DG1knqsqlN
bRPVu0Q2A+Sqgxz2pXm6eo8EeoOQsY6BoKf2SetdMmgx8tZBKHQIqetdcuhhstdBUAwgCexd0hjh
cthFxzc+geWxdwl1Bklll41ygUhn7xHgYHAy2jEuCYFQktq75NHi5bWDcOnQUtu75NMjZLeDEBna
J7h3yWAEyXEHwTBBpLl3SWKGynQXHQSFApTt3iPM0UAkvIuGOBJA0nuX8FqUvHeMS0F0GKnvXbLo
sbLfQYgMSAnwXXI5W9x0vLg8ml7++PBE+MdP+uaFqUfgbIHSDu+/+9vrYC3zsLbjccyKW+HBbacT
WC9xydQmbuXH8bhLVJu7TYbolT5bl76v0Q/X5OpS9/U4XZeM7ZloAz5eU2ACbpyvN/aO1ZmTcsCm
6uSNE/ap1etFFIemlrPCVy+qOCynXC952bCSB3zmZmKFb5y8N1a3TPxt+jQgjI4Jxi3M0iuZnoVM
+OA3BxYURwy8bPPIyx7ysZx48Rvn8o3ZMxeBwg7mwoXjOJnX+aDUi1kOS9bmBLHUC1cOydJWTJ1l
pA74QC6OEbxxGt/Y3LOwt/6TgBgGFgyfNUmvREYGIuFj45IYIByR8bLFMyd3yMdw4URvnMNXRo/G
8NAn6CCOhnhAHCfxGvtbhMznyUyPv/2m87q56rxO1eBz7dOen3t1HZR5kJznVqAFiITnPliLLZN8
dyZuZZXm4uyYfy5RNAkoPboPVnOL1GDRjBaAZOou2CSDkknd6NAmwkij7oM2i5VD3Yo5h5RA3Qd5
Hih7uhV2ASZ1ug/mIlbedCvsElLSdB/kZZzUYMlxCBXYFOsuOLamYV6xZHAt4SRk90GqBcvGbnTY
WweVit0Hex45D7sViAE3CbsPKiNMBnYrBBNI+nUfvGWk3OtWyBWcxOsuqHMGI8VYcrDiCDJNuw9+
bbPsZNHIOpSk7j4o9VAZ3Y0OdxeA0rn74C6i5nK3QjBhJnL3QWOW0L+aqlURuILfv5qUVAx4I6R/
dT3cPInoX62GOAuV0b272bcbvVMrIvFOUNdrNcx6iMxucawGAb2y1TAapfTKrniUJxm9stUwl2X1
yq5IXpHUK1sLf8EI6pVdD75AYnplqyHPyuqVXRE+J6lXthr+PHDmt7Q4JQSxHbbV8ByRMsDFAZzk
9OVWQ2wW1pe74hWgiOrLrYXAaCT35a6HYyS5fbnVsGnF9OWuCKIT0pdbDXVeUl/uiuAFOX251bAX
QTPEpQUzMYns5q2G44yTKS4O3SKlB7gWWpMR1QO83pGfSFAPcDX0Wak9wCuC6GT2AFfDpMfvAf7k
yaeLs7fTY2qZJKB3Bl9nEB1ERhH9wrmhTAK6iOvmMgvqLb6lJ7Ypls217FnEdBxXzXU2AvqQC+A5
E3x3ct0cWxk9y5kvDtlJ6GSum0wvqb85N59BTtdz3ZRGMb3QuRFNQjqk6+YzS+qbzo1okdNNXTWl
xYjtsS4gxioktPO6buatnH7sEiB3Urq066bai+rdznzhKEFQR3fdnEa5fd65oU1Su7/rJjgL6QnP
jWsR0SleM5vJGDn943nxTIakdJXXTagV2WsePxBLxgnsQK+bdS+lL70EvIOMbvW6iY6CethzXzCS
mM72uhnNMvvdc+NaJHbBV00uGejqBmpAKRFwdQPpJ9KiVzc0gdJhVzd0wKWXUd1AOwdXjaq7EwUJ
9Q0dkB2x6xsEEZ2QKxw6IDnDVzg0uTwU8AoH/WRaI6TCoQWflkRUOHRAqZVQ4dAEUYdf4dABn15I
hUMTRIOICocOKI0SKxzkRFk2yatx6ID6LKLGQRDmRUCVg36unZFS5dDi0uFIRpVDB5xakVUOTaB1
AqscOiDY41c5NME1oFc5dMBmFFHl0ATPJKDKoQNCs7QqBzmhmCuy6hz00+6NgDoHOYB7gq906IBp
K6PSocUlwzsJlQ4dMOrFVTo0wTUIq3TogNyIUOnw3NSMNS74qhqoqX2xw9420cFlBql3gEOzQJQ8
9E1nMFBVD3M5Y7toq1ZdeSCgwofO+bYQtQ9KuHYA5Q+d8+xRKiDQrhMhYBRBdM5nxKqDgKM0IZVC
dM5qBqqGgAO1wBRE9E1pNFg1EWigRkIqi+icVQtcGaEjBosOtjiic/Y9Un2EEtgDTolE53RHsCoJ
uGtIgiqU6JzWjFwrAYduwS2X6JvjZGAqJtCgTQRSNNE5oRapbgIOUodTOtE5px60ekJHoJYCZAFF
58xHnBoKJZgnlDKKzsnOUJUUcNeOAlRM0Tep2aDWU6BBmwmzpKJzfmeP716ef1ycvD2br7ji0QO/
eWHqMTp7PLe9Nfa2hQ4OPSuHex75nCgGVhT3OuT10hiZaNz0aVw0ExOaW1inc04zC6dfSzm+CwuY
X4/z+4npi+ElEf8AL8QL4zjBH1jfcvEo8ggvjgvOcYY/54rqkc9cxQqcfFaPfuYpUtBLZWxBpYBT
PbUAc5ztD3yQednc4qtweS28vG5vq64ZzsZwMiwkgM+GOGkdcfwKD9gmXMIf/Nm4JmiOk/+BEzwz
nYKP/mwCM7Hj7N/SMdVjq3mS/zlZrR5WzZH0r5fIzE+kgCO/8EM5zvtlD5Dh5PLZr4EllYiT1G3t
1Dm7lo9dKfE9OT5OR3S/wv6+AZP4Bz2FBliOk/6BCyIrmYKP+sTK6jjrt3JKBsqiX5oR8egpN6Mi
zNWoCKrGZ4FJod/SECoItAYrf74thJaQkue74tDi5IbvC+XKkuTF2TH/XLdsHWyqfVdU+4aJ5Row
DjiJ+V1xG8Gy8htfCxJUSn5XJGbkfPzGWBbcZPyeGHUGLxO/LZmO0NLwu+LRQubgN0bSASbgd0Wl
R80oVxAouSAkXb8r4mP7rHQNbCe45P6uKM6Ymf2NrxMFMa2/Jy69kZPT35ZVT1IS+rvi16Jl8zem
1GGl8nfFogfM42+MY4BL4u+KyIiYma4gmvJJQMp/V6Tn1rntGqguYAUCPREcDGJ1QNvrQyC80oCu
mLQy6gIaU+okFAV0xa2X11efqhWthCCtrz4pqUwJUWRf/YooJoF99dXQmIGrA/b2xXYzy2qFTKFI
78avhe5okKoEhOIcSVwPfzX8Wpk9/OtdFqKT2MNfDY9eQQ//inAG8T381ZAaxfbwr8hnEtrDXw2V
WXIP/4pgFrk9/LWwmYyYKgKhgVQiXZ3/1ZBvAasJpDLupM4LUEOzFz0voN4lIwXB8wLU0BnVzQuo
SGxSNi9ADcVZ6LyAiqwWkfMCtBCZjdx5AfWgzCR1XoAaLq2IagOh0VZ2eqYMqCHew1UdSKU7yJxN
oIbkKHg2QcVLRRI7m0ANmVnVbIKKrBZFswm00FuMtNkE637O6eLs7fTQWnYiWYMLnrGSDnatwKkG
jfB14kYedEGwlz4PYTcvbVM8nmvZOsgeltDFeojiJikIWgBJ2JiFLojPEmcwNLrEFHkDGjpguBgj
fnpDE6CLIeGjHbqg2wqd+9CIaSdyKEQXJHu5EyMawRykjpPogueoa9aEmFCymKRpEEUXayVLnVIh
aFUUmSMseuCfjOD5Fm0uP0Rih190QbRVNhmjEeVO1diMLsj3ImdqNOI7CBy40QXFUeo0jkYgJ5mj
OrpgOeuZ4yEn3qSiZchHD2vEGpkTQOSsB0sSx4N0wb4VOzukzWXHOqGDRbqg2SuaOtKI76BmJEkX
xEdBVULUEOskpkqIumE3y6oSaolvkVQl1A3BzgiuEqJ9Y8hGnR6KI7F1Qv2sCCupTkjeEnByKoX6
Yd4LqxRqeJFxQVSlUD8MR8mVQi2BTnIrhfqhO8urFGrJdJFWKdQNyd6IrBRqCLMngZVC/fBs1VQK
iQsmvVNSK9TPavECa4XkrYsgrlqonxUQZVYLtbwAJYnVQv0QnfVUC7WkvGipFuqG/GCkVQs15DuQ
rGqhfii2AquFWoLsxFUL9cOyV1EtJC7iDEFBvVA/qySKqxeStyKSsIqhfujPEiuGWl54iryKoW5o
jkZHxVBDviNpqBjqh3gLVDG05UynzX75qhrZDqZoaCZD6SDYY9UNgUMckEqHBsdLnonA1UN1HLVd
UFmrDUVMsAVEY10suSkj1RCpXAgFp4xokP/FL8mAVRJhX20SQRUTDZKXXGOR64nAsXa4JUWD8SU/
ebyqInCyA1ph0eB5yTsRsrYIHOkEWF40qF5yUBZTYaQx1ExFSJHRWDNfnJYNYJ2RxtWRCa7UaKyD
JfdYzGoj7CtRdogFR4PrJQ95OTVH4KwHKWVHg/8lr0W0yiNwyhNW8dFgeck3GbD+CBznAleCNIj+
4p5iRFQhaYxHCwkoRBprZclhFq4WSeW6cGDlSGMNLDnHI1YkYV+BSsArShpML/knyqhLAqc8SShN
GtwveWz2aPbH96fzVSYtPeybF6Yet7MHqNtZYS8bKODOG2PYuNvz5sCC3mQIYkNvr+uATvosA33r
PoWJoWPA8BmLdMyjr87j1/DH8GSGUB3Cr8c5/NDkkY888IM48cE3TuJ7q2cO/mQdxYUDxHEWrzE/
VY1M5qowYWKRqkYn8xSP6KTQclOIfTqT4wZxnNH3tvd8LD7zFZhsBj42t7NPx6xGLlYlBNSUuMgc
cfUjy2d2DsEP8MKO4jjB74xvDSONEo9wS4x0jjP8GWdUjX3mqRTg4rJq2DNHEYBOAj0vgdhHtw28
EI5z+97ykYvDjZ/HpDJxUbmNbTpmNPMwKiHetoWHyRFtP7S7M8wMYh/YjpgxHCf2vektG4nyjmzn
2LgcZ/ZGR3iQrO+lKSFLT7iZEGKuJoRQNRYDRMr3FgbQQVzEyfduCF1CSfbuhrvcPq95HwBXVuMu
zo7ZRwNOJixwqeG90OtNo4Ro4ch6wkgk74ZTC5RF3u549w4mhbwb8jxi/nhDBANe8ng3LEaszPGG
FCaktPFu+MtwOeMNESxgCeO9UBgMWja08GAmEHh6eTdk27bZ1NI5dlDJ6N1Q6/Ey0dtdC0JAS0Pv
hsOIn4PekMuEnoDeDacZKfu8IZEFJ/W8F/aiAcs7b4dfJKik824ItEhZ1cIjnuiAU9S7Idq3zMmW
TnAASmjvhtiIls3e8BqQsFLZu2EwY+exNySyICex98JnMnL6llO1gopEUvqWk5LKiWRF9S2viJ4T
1LdcDX0eMJt9L/tvN16qVliTgsRu52oojihZ7RLRTWJ6pKvhNcvqkV7x0C+SeqRr4S8boT3S64GY
SWSPdDVEWnE90iuy6IT1SFdDoZfYI70iiEFej3Q1LEb4rHeBwU5O8jurqyE8g2W/S+S5SOvHroXe
YkT2Y693WSgksB+7Ghqtin7sFel0Cvqxq6HVC+vHXpHLIKofuxoCo7x+7BUhTNL6savhMENnxwuM
iEqR3cVdCdlkDFSWvDySyZCs3u9qyLUCe79XuxyQceJ6v6sh0Yvv/V6RyyC897saSqOU3u+rnn+6
OHs7PayWbZKMpvAbLKOD0SyoW3wDTIuYNvLaSSUjsb/89l7Zpvg417ItyWs8r553K6YjvRDInZBW
9erJ9pJ62PNfOijIaW6vntUosut9A2iTwHb46unNwvrkN+C2iGqgr51Ya+R11ueH1pK0lvvqubXy
e/HLCOOsk96kX/1a8NK69wshP8hq66+e8yiw33+Dy0oSNwhAPblZwYSABiQX8aMDtJPtjKiZAvwM
OxI0bEA9rVbaFIIGwDpZ4wnUM+tlzy2QEeu5IHmggfo1EGVNOhDCfJI0AkE941ncbIQGl5MibGiC
dmq9ET5NgZ9hT6LHLKgn2gqoIqFG6Dr4KhLqglEvo4qkFaZBQhVJH6RGYVUktE/81qoy3ydRdSR9
EJ8l1JHIwrzgV5J0wXYwQipJGl08AomoJOmDVSutkqQVtE5WJUkf9Ho5lSStuA1SKkn6IDaKqiRp
BW0SVEnSB7dZdCWJqEAuFMG1JF2shmgE1ZKIYj+SmGqSPki3sqpJGl1YopNUTdIHuV52NUkrkoPk
apI+yI5SqklaMZxkVJP0QWsWVE3SCtgippqkC2aTEVtNIiraSyS0nqSPVWDF1JPIot4JqSjpg3Iv
qaKk0QUlBTkVJX1QG+VWlLRiOEmtKOmD6AxSUbLFLJj1vqg2PycViKKSA42jgtRscOpKMGHNhFJa
MnidvGEBq0vmdcx2AV2tFgHZwRWYDO4nt3iUGhNVsAeMMpNB+OSLCFRpAnoVSTDFJoPYyR0Zsd4E
FN2CV3IyGPZUDFbVCSa9hZAKTwa3k0csXO0JKLoOrPxk0Ds5xcNXoGgK80oAL0IZa2JyUgSrQ1G1
AhJUKcrgfXJJxqtGAb3CFLSClMGvt8bg16RA8mwNoZelDL4nL1mkyhRQkh1OccpgdvKHB6tPAcU2
QJWoDHInl0ToKhVFsaA1CbhQZayFyUEZqlZFFfsFqFxlsO4tGbSKFcwrCxFW0cpgd/KJxa5bASXZ
IZeuDK4nD80WRb4+f/9+cXa5f8XK7QO+eWHq8ThbMPj82279rttx9NvfuPLDxe3Drpk6mb7u5Oh0
AurV4hqei6P3E1IXSyD9sriCa/qZ90Sdv/pp+seD3/eesRWfq+WHWJW6Hc99DvBSVfB2OsB7Zy9X
Ym/5P3HAK5XAW/G2g7r1frCmCnVfgx60lqpg9/U4aXd1hK3LHd5Ra11d9MZZu4MvfC36IA9bG2qh
N07b3Rwxe3xxaHUDB32zxxiHFSv0zmDmYBDw/C0cGI5TeHuPOFOXxBUfhaHRUV0a17/7IHKDV2xN
IlGDYudqsjhi45394VkoxDuiXWABcZzRO7gkVmYR+pBOlXkcp/Rebpk9gjksE56DxNmDl0MS2zvn
z5v6/OEdzp7qIzhO5h38YWtS+ORjOBy6mhyue+9B4gaP+HokosbMPtSjcETMO3sjMhAIeCQnBgjH
mbyDQ3JVDoEP5VKVxHEq7+6SYBpmUJ+f3X3XzcQFczVxgWrRF6hZ+vSaF+2RN9s2d5oZOdcycXpQ
d+8Hz5dHvC1yK6tNF2fH/KPRbAjN0qwHo/dOiIxJxxIhTe2Ssgel917IjTOymQ/w0jQde3B354ho
WuZi80IXqV0i9iDu3gu2fRY2M3eudQr2oO/eFx4i/5oZwACQfD0YvHdHbJV9LDA8iQkkVXvwe++S
zJ+xLJHc0jyxezB754xkMLK6eQ/+RAgp3YPCe39YnHxuZhIdSjL3oPHeJ751Jjczg6FtGvcg794T
ESCHmxm+1DyBe/B374zcIotZYAyTCkC69+D2zh3ZcOc9C2Q2U+Pk8MHrvSssQmY470GfXfu08EHg
vTc8Rk44M4MBISF8UHjvj4jXT5uqlSPkhNZPm7qsQcgZsp92RfAKYD/tPtkrpmFm+Nae2G4UUa1A
pRBaF+5OWbUtM8SlwOrgend3SqvH7N1d71gvAbF3d6f0RcDe3RXRS3C9uzvlLsP27q5IXwHt3d0l
g84Y5N7d1TB0hnB7d3dKooXJIJcRvjjjsDt+d8qxB8gkl0JwQO0T3im7EbpPeMXrQALuE94pixm+
T3hFHgt4n/A+mSQD2ie8HolEkH3CO+XP4vYJr4igQ+0T3imFHiLTXEiMQwG3u3in/MbmGedS2E2Y
Pck75TYD9ySvePwX2J7kfXJoDXRP8nokWgLuSd4pixatJ/ndc04XZ2+nb6r13g6rQfmjt+6RRA/Y
rZwJxgDXunzwaCNaH/PNPtmqvNbXMlbC6mo+8LUZrsU5Mr8FrOH5ANgZxO7nPBcCR3it0AeRzsL1
RWfC0YE1SR8sOg/aMZ2JyADZPn1w6SJuL3UmNBNqY/VBp8vYXdaBIyRXkHuuD7S9QW3ADgy1J8x2
7ANnb4F7s/NcJLyDbdQ++PQevGs7E6MBuoX74NRHyH7uTHQmwObug0mfUTu9M2FZMNu+DzKDwe0B
DxxGBULtCD+QDhazPTwyzg6xWfxAOXjYzvE8F4cQQNvIDzZDBO4pz0Rngm0wP/gMGSjPnxihLDB5
/jRIvPJINFh5/owwRkLK8x883jjFAuX507ahUauK5uhgEv0Hvzce8UiJ/vgAB5xM/0HwjUsiWKY/
55UgQWX6DyJvvJKRMv05cSw4mf6DxWuXJIOX6c9IZCK0TP/B5Y1jLGSmPyeaDjDTf9B54xsPm+kP
HyKlAJrqP9i+8U8ETPXHpzrB5foPnm88kzFz/TmvEgUx13/wee2cbHBz/RkZzYSa6z84vXGQRcv1
56TTYeX6DyZv3OIBc/05sQxwuf6DzBvPRMhcf/g4KifAZP/B9I1vMlyyPz7PBSzbf7B87ZdiELP9
Ga8OhfCy/QebN66xmNn+nHQ6xGz/weeNc3zDbP818xUeeqXajIkSmiX8b/niPfIY2+b8N0YytUz7
H1Su9UtumPm/n1u2DJVqVUaX0iz7f2C8xinemJYFABI59obaFQEMkNd6xTauA2h6TfDGNS0FGFyu
dYxvWQ3QGMrQriBgELnWK7F9TUBjLlPrsoBB51rfZIjKgMaAFoDigMHoOveQgakPEBlBEYHUCAzE
17rIApQJyITbNS8VGFivdY7HqBZoe72ggFAwMChd65+IUzPQmNSEUjYwaF3ro9y6cqAxo6Vt8cAg
c51nrAGoH2gLp6XmJQSDz7XOsRBVBCLDLOsAKgkG2mvd45sXE8jEOjQuKBhIr3VNRKgpaHydSO3L
Cgaha72TMSoLGjNaEIoLBqXr/ONmi8renH9cnLw9++OhZQYPn/PNC1ONTTdbOLb1u+/65tsReUPh
u6O/LCa8jl5fTiCen92Rd/TmcjLKBN/JdJX6AuQ9h3RPnallZ8vB2I6HNSNmjgOznc5ptaT5uqSt
+CgcbaEubetN0CdxsSZxX4MfoKkma1+PE/Te0JmFMtwjtLCANs7QydbeVGZNwCHqqTJv4xR9aO9a
EcKhyfCMyNWKEg7LhldLnGckDvZc9YERunG6Xlk8snC3/pNwCCYWBJ81SJ80ZgYawYNYXxgAHLHs
vb2D4WQO9ugNxIndOHuvTG55yJNz+AbHA+E4fVdav1YMcljKNiN+tcKPQ3K21dIW2WjDPXQTG3Dj
xL2yd2Zgbt2n4OArDPA9Y4wuKYymOoXgMW6k6uiNCPeLtS0fb7BHbXR8yI2z9srgnoM6KYdtDBz4
jdN2heVj+4ziyUgPv/mmp7y56ilP1ZBLrdOJN7+2DroyRC5xG8AKQCJxB4wl0yqFdkfOVlZLLs6O
+Wcv+UQgacc98Gn5024Fk+maJyn3wKTHyFBucjCngJCe3ANlESc3uQ1pCSUxuQfaMkxWchvYCkhK
cgesZYOUj9wEt0w4ycg9EGcxEm/lRhbZQaYu98Cub5azKxjXgJLo3AOhESrLuc2BnoBSnHtgLqPm
N7fBr2AmN3dAYjEgmc1NwCsEkdbcA2cWJ6e5DWoOJaG5B9p8+wReueFHCXDpzz0wGxtl/goGNWEk
S/dAZwbKlG5zgBeYNGn9vAVjEHOkW4AXDOElSPdAoEXvt0xfVUPOYfdbpq+UMOYF9FuuiFmA77es
hrQIkym9q8G3HC1Ty3BJRJdmNZxmgIxpYYQW8N7OWtgkI6G3c73jmgi/t7Ma1qyU3s4VeXMyejur
Yc4L6e1cEbkgorezGuKinN7OFaFLUno7q+Eug2ZUy4o8qAjsCK2FYWtwMqtlYWtJRh9pNaRaQX2k
6x3z1onpI62GPC+zj3RFCIPEPtJqeIwi+khXxC8J6COthrYspY90ReCKjD7SWphzBjDzWlZ44khY
92k17FqUDGxhwDoJPavVUOrF9Kyud6y7IKRntRrqorye1RXxS9J6VqvhMGP3rH701NPF2dvpEbWM
UZD7WK82hQoK605en6UOihVET+D9rjWzaEX0wN7KA1sVk5pqlnQCOmNrJtmDd8uWwHCA7qGtmd6I
31eb91KQ0Htta6Yxy+i/zUtkkdCTWzGVwYjo080KZSABvbs1M2ml9PPmxdLJ6PGtmUwvsO+3gBgp
BHHdwDVTHmV0CJcAdpLQN1wzy1lML3Hey0QR0l9cMZvRSOw5zoppJHl9yDUTawX0JucF1MH3K9fM
o5fRw5wXySChr7lmKqOwXucCAqmYRHVA10x3ltAVXQLSBb9XumKOkxHSP5318pBIRE91zVxaaX3W
eQF1snqvaybVw2b+Ez+XATTzn7RTGJEz/xuAmHAz/9WzmNEz/2nH4KhVBXMq2Jn/2knOBjfzXwrD
mVAz/9XTa6Ez//kvBdkBZ/6rp9HDZ/43IDKAZ/6rpzKiZ/43gDJhZ/6rZzILyPxvgGWBz/zXTmYx
sjL/pcRIhSRl/qun3MJn/osB24Fn/qtn2UvI/Oe/TJSAn/mvns0oLPO/AaZJVOa/emIzduZ/A0AL
cua/ch6jMfCZ/+xIRkPgmf/qqbRyMv+FBFLROCmZ/+rp9uCZ/2KQDtCZ/+o5jviZ/w0uDwk98189
l1lQ5n8DQIuYzH/tpJJpn/m/ebrCSuPXmj4RiVon/+9lDR0sWoj8fygcHUAJQMdEepgqgDmcsGWs
ZKqZM4CUAnRMdASoBlDBcmpeEtAxxRmjKgDqqlAQCgP6ZdIanNoAJC4toZQHdMymhakQgELTgRQJ
dEymR6oTgIIz4JQKdMxnBK0W0BBD2QRZMtAx7RmnakAF4AWldKBfpp2Bqh5AumI4Aiog6JhQi1pD
AAWrwywj6JhbD1JJAIVpgCgm6JjKiFNPAAVmQikp6JjNDFhVoCHQcgWutKBfyr1BqS7QgLYnjBKD
jnm2QFUGSFcK72AKDTqm0yPWGkBhGvDKDTrmdbb47Nf3pwdXG3x5xjcvTD0CZ4u9tnrnXd5YB1O5
NlM7nstMWJXaWO106mokK5h6ZD36CBJZgeqRtfq1+yPL1iLra9yDMLhaXH09TsJrA/vqVEEehSFU
B2uchbEiW8iHYarI1jgNb2xc4wZ/aHY6E141bvGHZaBrJCwaJsIgz8dITJB1f0pGW52z1Z+Aws1V
x22jEfqjzlemDjiojKEybCO2vLFz5GIM8whNXJiNMzTXJ03AIVrqAzdO0WWLpxoxwmHZzDyopRrh
wSEZyyrpsix0QR6eybEA1v3JmXxlxlZ9GAq0UBm0DQboj7ZYlTbgmDOlqpiNiPPGypmHL8wjs/Ag
1v2ZmU1tytAPzUy1URun5pK1bdsM2MlAX77xps25uWpzTtXwci3TX9e/rg6afPPcV36gQuPEV+1M
Re70zx2YWlmftzg7bjD+J6fGabLaOcy86aJCKSxNk2qVM1hM+4xa9gO2UOt0Wu1U2fa5tPxUudaJ
tNqp8hBZtPxgBYAUWu1sRZT8WX68EkbyrHbCctukUZm3/1KgUm11M5qMaZJrKhLNZAghMVc7kRYm
K5f7YE7GgaTkamfMo+Xj8qMWsJJxtRMXATJx+SFLzdNwtXOVMXJw+dEqCAm4yuki0y75VGaIQAST
rqudTdsgY1UolK59cq92Gj1IZi/7QUwBIq1XO18RKaeXH7KEk9CrnbSM2s+WvqqGV8HsZ0s6MsST
NcD9bOthZQm2n60asmzzzN5djLzl8I1axnKwXXDV8OgbZ/gKojGA9s5Vw2JE7p1b8dhNuL1z1bCV
kXvnVmSr4PbO1cKWM+C9c+vh5Qi6d64awix+79yKkDn03rlqOPNgGcByogMXhHTcVcNqxMgEFoRo
wu7Tq4bMLKBPb8XjusD36dVCmjdy+vTWA86TlD69ariz0H16K6LmgPv0qqHLo/fprQhYwO7Tq4ax
CJQpLCeE8ElAd181jGaEjGFBcBbknsBaqAwGvidwveM5EHhPYDWUWRk9gSui5iT0BFbDm8fsCbz0
tNPF2dvpW2sZICD2CH76+jpoi7A9g/mAS6A9hLUyl2F7Cj9r8a2KEe+1udktV0C7DCslNRrQrsPg
nEaC7EOslVKL25eY7RCPDrVPsVbqPG7fYj7qAmofY63URei+xnzgJeA+x1rZy+h9j/nwK9h9kJUS
mIyQvsjg8UkiEZ2StVJssTsno8PrkHspa2XWw/dWZjv8UwDvtayVwSil9zIfiklGL2atRGbg3sx8
EBbYXs1Kuas8p1vOUZwJuZezVvqsgN7O4EFMdvDdnrXS65G7P6NjG3D7QWvlNYL3h+Y77BN0v2it
/GUJ/aP5ICz4/aSVklgMXGY4sbJXCCwznDTTZhEzw5mBc3iZ4aqZ84iZ4bRDYNKq4rQEvMxw1aRG
vMxwEZwmtMxw1ZRmyMxw5kO8AGaGK6YuGwOZGc5KXTYEmBmumjqLmhnODJ7DzAxXzZ4Hzgxnxi/A
ZoarJjDiZ4YLiE+ySeiZ4aopzrCZ4SLgLaCZ4ZqZJYOcGc57+BPhZoarZtAKyAxnRtHBZ4arJtJj
ZoYzQxgQM8NVcxdhM8OZ0UugmeGq6cvYmeESghgqyJnhmum1BjQzXAK2liAzw1XzanEzw3kPe+tQ
M8NV8+fBM8OZIQzQmeGqSYxtM8PXd2V/YvCvquGXWiaH72QBHczl5vnhENiVxini/ZHnTPMs8UOM
vmWcUquGNTtqnCreIbG2cba4aF5d05TxDmn17bPGEY52F1onjnfIXmyfOw7BXmqdPt4hexkigxwC
vwKQRN4fgd6g5JEjQOgJI5W8Qw4tWDa55PjFO6iU8g5p9hhZ5aIhDgip5R2yG2GyyyGuBAkkwbxD
EjNajjkEkAUrzbw/LoMByDRHQDFQ82TzDumzGPnmEAA6hJTzDhn0QFnnkoOcEGBSzzukOCJkn4vG
N7VPQe+Q2wyShQ5xBSgQiej9URgNUi46AoqRcNLRO+RxtrjoeHF5NL388cFp6Y8e9M0LU4+92SKh
7d9+53fXwZln4WzHw5cTtcCC2k4Hrl7aYmXaVn0YD7lUGbkNVuiUu1yVu6/Rj9NSFbivx3l6b+pk
eEjDPVAT8cA2TtRra9vavIk4UpOrDd04Ux+bvFrkcGjKNyd31aKHw5K99VIXOakDPmUTJ3jjrL22
eeZhb8Nn8TgsPBw+b5M+mcyGg0n0ADcTB4Ujzl2yuGXlDvcgzo4VvXESXxvdM9En6SjOgYnEcRav
cUC12OSwdGpOBquFJYckUuslLvMRB3wEFz7oxvl7ZfFiOLhb+zk4AgtxEPicPTpl0dZnET3+La4+
fyP6XbK3Z2QO9+AtgRG7cfJemzyykCfo6E0sDI6zd6XxM0CW8mSlR99907DcXDUsp2rcleYpys+8
uAbCijEY+clNICuGEJKTu+DMtsvJ3RW2lWWTi7Nj/qk9xTiYVOYuKPUNEnkl4xnaJz53wWUEyXpu
dEwniJTnLkjLSPnOjXArOMnOPTBHBifTuQ1xRChpzl3wZqFynBsh54ASnLugzqNk8goOOCiApkN3
QXBslwUsmdkEkzzdBaUZK3O60fFekNKme+DOGtyc6TYMWkJNmO6CR4uSLd2IPoeRKt0Fax4oT7oR
bgEmSboL4iJCRrDgqMQmwJTqLsjNrXKJJdNaQBKweyDUGaTs6zbHuSOc1OsumLOYedeN6HOISddd
cOjx+0LTV9W4C+h9oekrJZxFEX2hK6KWBPSFVkNbBsq+3tnmW86tqWW7IqWbtBZaZ5kyf3AWtjBM
PcH3oFbDp5XRg7re4e2dhB7UanjzgnpQV4QuiOlBrYa8KKYHdUXukpAe1Gqoy5J6UFcEr8jpQa2F
vWBgs7SFBSSBZHauVkOyBcrWlsauk9LvWg2tXlS/63qHfgiC+l2roS+K7XddkcQktN+1GiqzkH7X
FRksIvpdayEuGjn9rutBF0lKv2s13FnIbG5hUUt08rpkqyHYw2R1S6M2yOitrYbUKKi3dsVDPonp
ra2GvCyyt3ZFBovA3tpaaEwGvbf24+eeLs7eTg+pZQ/Cbri9xho6WLQCunAz4+jgW3OrJtJL6de9
nRe2KV7NtWwZZDTxVs1zhO/sLQDkBN7uWzXBWUIPcOZLQsFvDK6ZyWzEdAvnBTOTkBbiqum0QvqK
M7PpRDQbV02ml9OBnBnOIKUtuWo+o8xe5fghVE4SG5irZj1L6WougO4io9W5Zp6LEdT/nPdyUUhM
U3TVhFqhndKZaXUi26erJteL6KnOzGkQ0GhdNZVRSvd1ZjCTjJbsqtnM8vq048dZpUhr3q6X8WCM
kdHRHZ3ryZIkoc27apatmN7vnJeJyTBOSEN41XR6gV3imTkN4lrHqyY2AlcZUAM8E2yVAalnMWNX
GbTAsSBXGagnkoyAKgPaNXZqU0k9WZPg6wz0E22R6wzkoOxwKw30M+zBKw0aXBQoQFca6GcySqg0
aAFmwq800E9nxq80aMFmQa80UE+mNSIqDRrAaUlApYF+Pq24SgMxQZR1wmoN9NPuBdQayOE7wFcb
6Cc6yqg2aHHBSBKqDfQTmuVVG7SgtUirNlBPrjPo1QYNOHWEXW2gn0oroNqgBZgOvtpAP5teVLWB
mEjLBUH1Bvopj/D1BnLITuAVB/ppzhIqDlpcKAp+xYF6Or2RVXHQgFNPkioO9BNrASoOnpkhsdr+
X1Uj1DUvOtjTIDqI9Bh1B2BQBoTSg665jEDVB/M4Yrtgqlb5tk8wBQhdc50RahBUAF3alyH0THIw
IJUIWFeHQBDFCF2TaZHqEcDwdDglCV0z6nGqEsAIDSiFCV3zGaFqE8AQTUDlCV1TmmErFDSEWKGA
Fin0zHw0QHUKGiiPBFOq0DXXFqtaAevKER1SwULXnHrcmgUwZgNq2ULX/EaUygUwWhNG8ULXbGag
+gUwPAtMCUPPhCYDWcWgIQ5LBFjI0DXrFqaWQQXfDqScoWumPVJFA9YVIwWcooauGY2YdQ1gtCbE
0oauuZ09ent5/nFx8vZstiKHh8/75oWpR+fs4drWttjXEioYzIaTwT0PeD4MM3FiuNeZrpZEy0Pi
hs/CUul4qHzeNH0T6jkI/VrGgZ0DB5NfjxP7ieEjK4X4R3ZiBXGc2cu2z0wsSjy0CxOX49Te6IdS
O8KZq4CAD81SO8qZp3JALZG2AZHw53hxDaAcp/myBzwrl89/ESyqgRXVrQ3VN72RkV4hQXpJjKCO
WP2p/XMLJvGP+tICy3HWf3EBGcNLptjDngzxwjpO+628UjuGmic5nxHT2uHTHFn5amn07DSiH/Jk
AjuQ44Rftn9kZPK5L4GFNDFCuqWR+qY2s1H7tZCDvbAhOiL4J9Ynw88j/NFOxI/kONuXHWA5qZR6
uJPjxHSc7lt4xONkvC8NVXj4kJvZCuZqtgJVQzOgpLtvZwYd9EWoXPe2ACagRPeeGMwoqdx78riy
RHhxdsw/74yogKbFd8SzNe3SwOUTbAkmib4nZi1WBn3Ti4B1SOnzPVHocXPn2xIZUBPne6IzwmXN
t4UygaXM98RiRsyXb4tjwUuW74hIZzATwOVHRI5EpNb3xLptnkOuAGuHlojfE8EeMgu/6QXCBcAU
/J6YjFLy79timmQk3/dEbgbLvG8LaIFKu++IQ2/wcu6bougJLeG+JxotXiK5/LDJO/j0/J4Y940z
0RUAHbCS+XuiNwJm8re9MCS4NP6eeMwScvjbAlrwE/g7IjYYaf3qqVptSSBZ/epJSQVJsAL71VfE
0InrV6+GRA+byb+vI7ab91UrNgpBdJd7NVxHoIx+oSQnYb3x1bCbJfbGr3g9KPJ642thMRrpvfHr
cRlJdm98NYxaob3xK6LpRPbGV0Okl9sbvyKUQWpvfDVcRiEZ/zIjppgUddRXw3zGy/wXineR2Ydf
C8nJCO7DX+9akUhsH341ZFpdffgrwuo09eFXw68X2Ye/IqZBYB9+NTRGqX34KwKZZPbhV8NkFlAZ
IDOsSkVJ934trGeDViEgE+xMEnv+q6HYiu35X+8akZ3Qnv9qqPR6ev5XxDRo6fmvhtsoq+f/mp9y
ujh7Oz2ylpGSpHkAm02kg9osblZAG3CLsDkCHbBbjOgZAzt5aKti7lLL0CR4AEEPC8EKG04gCH0n
anJBD7B7eVMNmlxZSpA28aAHeqPsaQhtSE6SJyX0QHUWOUWhDcxF4IQF/QxbY6ROX2iBsTUkczJD
DyRbRVMbxISK1jg1Ix16WCRe5rgHQeshSJwF0QP6UeyciDZXnSR0hkQPLGdN8yXa4F30zJ7ogHgy
AudSNAGbSNzMih74tTLnWbRB2EmcddEDxV7JHAw58SQFFUMyelgcUeIADUErIcmbrtED9lno5I02
V5sicipHBxxbo2ViRxOwLemY5tED6VZMzQ6149kJqdmhXqj1kmp2GoIb5NTsdMNulFqzQ3vGiI16
K1ibZBbtdLMSspyiHXHsFylVO73Q7oyoqp12lxZHgqp2uqHXiq3aaUiyE1q10w3VXlrVTkOYg6yq
nW4YjgKrdhpinMRV7XRDctZRtSMtVnRFQ9lOL6vEG3FlO9IWhCdhdTvdsG8l1u20u+x4J69upxuW
vZK6nYZ4BxV1O90QH2XV7TQEO0mq2+mG3yyubqchwkVY3U4vFAcjv25HWkAZSHrhTjerwwor3BG3
FJyoyp1uuPfyKnfaXW5CkFa50w3HUUHlTkOwk/jKnW5IzziVO9vNOdrolK+qIV1QindmsZIKdqOB
qt9BxjcSUAnPIPjeLRa2iqeGk7aMGWu1e4gOtJJnLIh7F3mgYh6NSyDAFPQM6O+dErFqeqAvMgmp
rGcwfO+XjFvZA81zQS3uGWzf+SgZuPoeZKQTgZX4DJLvXWMRq3ygYXZ4hT6D53vveCG1PgpDyRRE
1PuMxXLvsIhX8qNxXSS0sp+xBO59kyErf6AvQAWw+GcQfeeebKTU/yBDnklGCdDg/t5jFqwKCBpv
B1UINCi+d4zHqwWCBjmglQMNlu99EwVUBCmMN3OCrwoai+TeWRmtMEjjiihYxUED/zvPFANYH4R8
4SkEVyI0aL53jpVQJQSNt8MvFBq833tr9mj1x/ens9UJfXnWNy9MPWJnj0C3ssE+FtDBXORibs97
AhN2iQu7vU5/leTl+uSt+QwkgaU+gZvN0SuJzpjaJH4Nf/A6Q7X5+3qcvA8MbtmoQz56nXFs4I2z
987mnoE9OYevM4GBwXH6rrZ9zQhkrsoPJgxrRiHzVHWoJDAzE4h9HhdmCMepfGt5Mmwcbv4CRCyJ
2LDcyjj9UmqZKBUQNJNjgnLEzg/t7rkZhD6yKXBjOM7sO9NHPhIFHtqJD8xxam/0RM0YZ55cfiYk
a4Y3c+Tpa6TPGlb6oA9rS6wAjpP6zu6WicFNn4YE0jEBuYVh+qXTs9ApIKa2gQXHEVE/tHrk5Q/7
iE68CI4z+s7wmYtCcYd04UJynNLrveAMRob20nCNLw+4GaxhrgZrUC0MHSGkZz//+jposzC52e2A
cyCJ2b0w51unIe/B3sry2MXZMf/gPOcCWBp3L9zGNunLwmlNEEnfvTCacTK+2x3oBSXduxPqvMHL
9W5Gnye0RO9eKLRQWd7tAHRAKd69sOfR8rvb4Rewkrt7ITBiJS/Ljlp8gk4F74Xp3DT3WTjCBSlx
vBNig4HLGm92EQgEljLeC4MWPV+8HZIOO1m8F0I9UKZ4OxgDTJp4L9xFrBzxduglpATxXujLOEnQ
skObUGDTyTthOZqGGdSy4Y2Ek3zeC60WLPO82cEfHVTaeS/8eeSc83YwBtyE817IjFL6gVO1uoeY
ZPQDJyUVDjEL6gdeEbsiph+4FvKSgcs838f4W85mqmVEEtdFXA2/FiQDXSC1TkjvcTWsekm9x+sd
8ynI6T2uhr0osfd4RQaTvN7jaljMwnqPV8SwiOo9roXAbOT1Hq8HYSZpvcfVcGjBM9TlRTXZCe9Y
roZtj5WpLhDlIKvPuRpyo8A+5xWvB0lcn3M1JGb5fc4rglmk9znXwmkxovqc10OykKA+52ros9L6
nFcE0Mnqc66GQQ+cyS4v9ClBcHd0NUxHpIx2gRAnST3V1VCbxfVUr3gdKMJ6qiuh0Bsju6d6NSS9
Ick91dXwaWX0VF/x9NPF2dvpUbUM4yT0Wl9vFh10ejE92PkBDUJ6s2tnNIrr2b61R7YpBr6fXTS7
YZOwZu7aQc9CmrwLwbuI6P6uHGoycrrCs18xiKR0i9dOqZXXRZ6fVietu7x2ar2orvP8wAZB3ei1
sxqldannxzXJ6l6vndgsvKu9jDCNiuh298oXgTWy2uDLYN6SpP742hG34vrms19NrBPWT187s156
n31+hIPs/vvaiY6C+vLzw5vE9OvXzmmW1cefH9Uiqb+/clqdEdz3X0Ys50jsQADt8FtJgwKE0O7k
TBDQjrcXNlmA/SrigqiJA9p5jZInEfDDm+ROKNBOcoav6aA2zBbwmg7qgE5vJNR0tAHUE35NRxeM
Wkk1HbRHfNaoFt57J6eoowvSPX5Rhyi+A3pVRxdURxFVHY0uGUlAVUcXlGZRVR2NaC2Cqjp6oDYY
KVUdbYANJKOqowtWraCqjka4OjFVHV0Q6+VWdUiK00KQWtbRxSqIYso6REGfhNR1dMF4llTX0ehy
UuTUdfTAbDSC6zraIBxJbF1HF0RbGXUdjeB1Euo6uuDUi6nraIRqEFLX0QWtUWZdh6RgLiaJhR1d
0J+FFHaIwr2IqOzoge9k5FR2tLmMJJJS2dEFr1ZoZUcjeJ3Iyo4uSPYYlR3Pz0dZ64hq82RSQCju
OMgyOhiNMPUdkJgmkBKPQWrKcFUeczplu3itWil+KmCVHgP4bECKPRRhngmi4GPAnS1OzQfixSM7
lLKPwWr2eJUfkMwGtOKPwW6OUPUfkNgmoBKQQWzOaFUgkNAWrEKQwW0x4LUgisK4QtD1IGMxFItV
EqKJfYdUFjJQLx6uMgTxwlICWHHIILdE9PoQSJATdonI4LpkoCoRSIQLTKFI97QGY7BqRQCBDYaQ
ykUGs8YCV4zoifWCcbBVI2MRGI9UOKKJ+oBTPDIwNxGsfgTygpKgSkgGtSYjV5FAIlxwC0kGzzTb
XxcvFxeXfzr5y3cnZ1dm+R+LN+cfF3//4ejj0cW/m//45sXNv+g/vtqO3S/faDZeI17fv/K90f7x
dHFdD3Tl+xe/Pb384cpUJ8f/cLOxXf2at8fz2+n/TZ/+8OWTR18+84fPn159/vT686fjz58Wnz+9
+fzp7edP7z5/quWHOSLRq7f5/sOK93p18z8vLr777rt7pJ7YCcMQdlZD1PotXaNls/eiWbM9/fY3
rvxwcfu0663qZPq6k6PTaZ96tbjeky6O3k871cXS/vTL4mrPmn7o/Zo7f/XT9I8H9957zlZ8rpZX
PMpmNu37d1+9NHGKutjJwtjJbgwRRexkCWMn23LFMG5j3LjMEVls2nrXvU/dLbmg3y+pi/ulNWNX
vjEESdiVrcW+X1KX90vr5hJ/Zrhf3j5i6bC0tSQc62HuCKveupsrgp3jav1PP/359P3Z+Ydav2Ns
dI2p9T5JgM3nuzrW+g1Br4G3T3vuFsje6C44g3gB2GCuHs5/R0D60oOTkFaehI0Rtpi3Bmp9a6h8
GjhX+QSuu8Y8yh17zdZnq/2l1AXoPd/2uefPlqZyZ/9VXqF7r0yff3Py8eLyj+9OTo/3+WNpLTvM
phMfYIfx169NHsqIpK7T9WsZoeBh2v2fNrzR+KcNT5JOBqp2Mngr52ToM271DvRkeKrmVjsYvIc8
GFZZoJ9zIejSin3E14p9QteKfRazW1X7i5svQnarjv76Fgz+6g6ka0cNVoDNHfqOGjx+pLL8p6Va
ZgjogUrnf18LUcLJT1VP/pDwT37tf0ELWfJf0GYZl77VKjr7+fQU6E8U0XAtneUXH3+T2OQSgmCR
+Y8Q0QKA2P1fHaLT+FeH6KF393q39xiAd/c+7+sxouzujH9IiAljc+/6Lwcx69K5ZplrXTkqSgZd
50qEux9VEwySRd2POvrbwCzTkmuvX69rz0wCqqFShN8zE2A8wfDHgPnGvs4WTnSu/qcCeXrXlfuz
ATy9tev7mSTr+/ONOL0i5OTt2Z/OXz+E5q7p3X0XvKUvPD5//fPVB2+7O2y5oX95QM0/AMw33HRG
y+xiFxUtBecba1qTz8mMX76LQzeab4ppPTjXG0UHmVEymfXuIEkumVYJmVn2mV4vTptvIGmLM52U
nOnFNObz8q8fFlB3zflGhc5gke7umMUi88h+tywOF0bld8riJZJY7S5ZgjwSldwhS5R5Rte7O5Yk
8YxWc2fkj2meE/aZT2X+0GWzyK/4HI7zjbtc/YeUX9+f/uv0Nf98frwAb9UT55tqeZgpRmb8JidZ
UF55c+XjfKMoZ4W19+z5aLzC7Pk4ywhIzlOC6p0SUdQpQX2eEizZWeY/sI8IllQtM3q67eSUovF8
oMpRxH2KH/Byo8rhwzY2GKvtkU+sytVWuS/d3V9vsZdb5cZ0WxlhrLdHTgkq11vles1lFRt5xVWu
4NzSDGPNPXJLVrnmCs8Zd/fnJuiVZw3PWbeVMcb6e+Qc0rj+5p+k+HHx4fTo9eKapRXawRhwv9oP
bgwgvTGEFzCANNrQaNmMPxpu8kpE2cz6HXAfZ5kIqWInyyJ2soKxk3V/v3Qap8DE+WdCzn2/7GLA
fZxl2qSGXdk5Cbuy89j3yz7TDVyYe/jmAfdLvh5a0UWYO0LPbbSiwx+2Hp2u1oPR4bcejB699WD0
oNdA1AH30VvEC0DfLbiid0D6EvqA++g95q1BefuuWH1sYN01FlHu2NwD7qNP0Hu+7XPPn3/c4gqv
wA+4jxVGLu5uh/HXrw0eCgaRVOYUmkB4mHb/p42gMj07OEknQ71KueDlnAx9xq0hgJ4MfHNpYoiQ
B0PPY2piSLq04lkGY1ZWB0JB14qjEbNbVfuLWyQhu1VHf32L+MPWY7OhjrXexwuweYDfUSN+pFJ/
pk2sMJpw5kCl87+vxSzh5Ke6J3/BP/m1/wUtGcl/QZtvzONSX8UHDAkdgBPnmwU5o2V6a04ek5PA
J3c71Jg8PpzKm6SmIJnMaleSFOWSaZWQmWSf6fWCuvkGlbY400nLmV4a84k2ACfON7l0Bot0d8fM
hMwj+90yW1wYld8ps5NIYrW7ZPbySFRyh8xB5hld7+6Yo8QzWsudMae6ar+gkSQ51xX9x0iSOZxU
QHllTrEuBhLW7rOsi8oGhcUKOyXqXVeKE3VK9JnDMN/A001/vwcfSTLfmNMDjDDOh0dOiSrPh8pR
hISRJKVy+DBGkuzhE40DgJKpnJsvYSRJMpWT88dIkn2cYlWut8o1pjJGkiRTucR0jCTZzy1B5ZqL
PGechJEkySSes26MJNnHOVnl+pu9I/nRhw+Ls+MHscx30xfvU5/05fs6mUySZpn5uVvn6Nu/ln6x
0//j22//cPrh3dGrxeWLi/OfP/z3b7+t13w5ETUB8HD8OtBXE1mM3eFLTdSXL+5s1Eci193W4BG2
hl3Z62JfCEJuDdTHrSF2tzUkEbcG6vPWkNFuDTf79d13vr76rqs/vF98d7o4ezt967cv7NVevv4L
Vm4i06/0pNNzuLd3rGXdgnUqzm1bxhXyv747ua5tb7ZSrJm7/3LzlfJtPXnMkjLyv216e2xPv5V3
TpCYc8I6aauFUM+JdivEY5wPaxonbXTmV9WOgQB793/WJD0yHIG1gg0O22lGEcN2niRS3yfxs8W/
dxVtj921/PFdyV/5vTP9fe1ePbr6x//nw39+vLj8+S+PhKWrf/zbr3/9r6NXr48ffur72ydsGGq6
+ptr+bE09eM8XhRZrpicwVpCk8FWfsPMf4TStX7mG0c9x/rZx4VCF48VeP7QOH+e+NGJO39Iy/nj
kc+fmy1r+QlrxcfNX7S1XPXF4raWxQPuYVHL3kLXxmwpu9Bro+IfMlzqgPVv1VynsvyzgGSdBUX6
+qBOzgJvsM6CtZfUb553WbU/WHgScY/fykQ6qJUSID/jkp3+RFF/2/ZOA+daGJ+/NcqyJ+4mm+D0
dUt+/j4om954tG/b5IvYlj7mwk2fWqLXfWmmV1ma6QvmDl7vohwM4g7eZ9pOoOY7ON/A6hRs4w28
59HUKegapJoC/iDVFNAHqaYQAXcgW20HSnA7kO1oB8oCVmzRtUvOMnq+ss0joe+S0SJFCfUHS6fo
cIKEvkdIp+ixTuiqw6JTDEgntPKx0ClGwWOhU6wxQnLVX0Ju+zDsMnNq6Ylr/3S98Wtq2azGcMkt
bMZgMRV/UYoFhOn105qec1S1S0kyEOweYhkVjCYSzWg9Pq1gPrWw6XDuBI++dEn0CdUQ9CjH+6aX
10FaqBqXLY0uAkr/SLFqeLbipUcGyCZ3pOYMMieBpNwYwO7zQJLKMTDZwO7m9QKqTKC7eZ9Kb+b4
K4OByefLHH9jMCOfb535vcp9vO6t/PavAzBLqO51/NHbjhX0yPpJ5QrKVVfQ3XgcmCVUqi6hx687
1tBD888yeh1uDZW6eb1ftDmUVVTqpvY+feGxjh45wKlcR57lLLob1QazmgLLmfT4tceaeuSGqHJN
za8ZT/+YcLrSeb67+TW2FBz4/35RYa74li8//o6xyS0FhknerT4bAwJk77t9NqRwt8/Gwu/21f6+
kY0D3+27/DtHNh6UyftKA1MPyQCJ5PKb90hkRLp/8JVk5wrD0Pe+fvRcnZ2bDT6v9T4Fvu4wkwGv
O8xE6CdlvcsbWeyTss+7Gznsk9JWw9Ejn5T9dBHIs4zFrn2yRF2n+SyToGvbPMOf5gV276xa1J2t
Ad07ldd3Z0uC67uztei3X1vt9msd9u3Xdnn7nW9U7FJ53d2f428HIa3z0/rv2KUvgWnUeCDPN1C2
hunmMJyGqsY8yyDZx7/b9f8s/4avTxdHH//nm9Pzo+uvvv708td++Z9X58d/nT737vL96e//5v8P
UEsDBAoAAAAAAMR9BkkAAAAAAAAAAAAAAAAmABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9VVAkAA69opld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAMR9BkkAAAAA
AAAAAAAAAAAqABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvVVQJ
AAOvaKZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQKAAAAAADEfQZJAAAAAAAAAAAAAAAAMAAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL1VUCQADsGimV3Vu
pld1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAXX8GSah0UhuOAAAAoAAAAEcAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLW5vLWNvcnMtc3RkZXJy
LnR4dFVUCQADsWumV7Bopld1eAsAAQT1AQAABFAAAABVx8EKwiAYAOB7T+GxoJluaW7XrRE0RmTR
ITrY9hcy9R8i9fqd+25fzrjMmMqYJFxUQlViR5ksyICemnl2QG/wPNpEe0hfjJMNb9rABxzOHkK6
l0JxVUkptrl8kF5fz12NIcCQLIZN3f6dHC6XE3FoRvIy1sFIllPd6hTB+H2MGBv0xgatuzXJSsWL
1eIHUEsDBBQAAgAIAFx/BknZVW1+jgAAAKAAAABOABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1uby1jb3JzLXdvcmtlci1zdGRlcnIudHh0VVQJ
AAOwa6ZXr2imV3V4CwABBPUBAAAEUAAAAFXHQQuCMBQA4Hu/4h0LcjltY3rVJEgk0ugQHZa+Yrjt
yRj19zv33b4s5TJJVZJK4KIUqhSSFbmCkRzTy2KR3fB5MpF1GL8UZuPfrMYPWloc+ngvhOKqlFLs
M/mArr9e2oq8xzEa8ruq+Tsch+EMlvQEL20sTrCeq6aPAbU7hEChJqeN7/t2C0mheL5Z/QBQSwME
FAACAAgAXX8GScqlhqI8AQAAkAUAAEsAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLWFjdHVhbC50eHRVVAkAA7FrplewaKZX
dXgLAAEE9QEAAARQAAAA1ZJNTsMwEIX3OcVsyora/ZOAShWqSsumUETUAxjHJZbijGVPBdyeSUGh
pYu2ARYolhONMt88v+fJ4j5dzKdwN03T8e10CMsyqpUBRWScJyCEAlUGy8c55EQ+DqUsUKsix0jD
q8GgL1eGdC6VtzKYiOugTZSEXtArXVe/ksVytOlt9cet3oxXTeBKxeDShsJv5vBek/j7k3WmcV3S
qAurgI435Qy8WMpraTvKLi87nS1lTypaLR1mph25sY3BPttS5OQKATfolC3jOfiAhBqLCKrMwGOg
CG4dCZxikEiSyYlusaRu70J0+Ol+l3TArNqrGsCVCvFfvEoexmkKswoLQuwf90PQ1gSoRsJ22yGl
TZmnXeLjhR6f9RHMvUR2TAwms8FoEv7t6940tLnBpL9IpqGMXw+zuR0/zz95B1BLAwQUAAIACABd
fwZJIWlG0owBAAA+BgAASQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4tZGlmZi50eHRVVAkAA7Frplexa6ZXdXgLAAEE9QEA
AARQAAAA3ZJNT9wwEIbv+yvmEi7B8X5AoSuh7tJdOBRKRUQ5zzrexpKdieKJFv59JwuKgB6gRapW
yNbYGlnPvPN6lFKgf5Jvg416gYx6eZvrW7v65vjxOG2dL/S19Raj1R7vqWXFNrJqbGw9R+1CTQ3b
Qm8mRm/sStUeeU1N2D6Lem3ZlBprp1cYndGBCqsiBquocb9cpexdbY0AMr7jQZqmOyAJDbfot4Jm
M1Cj/U+QdmE2G6ivV9/zq4slXC7zfH6+nMJNFXFtAZltqBmYwBMWcHN9ASVzHadaezLoS4o8/Xxw
MHlSXxRT2xjplanu6n3pnrKj6iQ5PE3GR1tCMpkn4zPZPUcyHUlSW5acQpPY8+T+SBRIcrjYM9RW
fDKCdUNBgjQLG8dlL/OZyuPj4fBVl7KSg89gQQFdFfehbojJkI+AVQHdD0QIbWQIKKBskP4v597v
2Q64BX8/aSJqND7KhrJGL0W9adB6z3qMZDrQx56zf/Tt3Y7txJTJ+jHPczjryJBlf3b8oOlJEeiq
wuA3UEsDBBQAAgAIAF1/Bkls2rPTRQEAAKgFAABNABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi1leHBlY3RlZC50eHRVVAkA
A7FrplewaKZXdXgLAAEE9QEAAARQAAAA1ZLLTsMwEEX3+YrZhBW1+xSlUoVKH2wKRUT9AOO4xFKc
seypgL/HKSi0dEEaYIEcOdHIc+bmXk9Xd8lqOYfbeZJMbuYjWBdebBQIImUsASHkKFJYPywhI7J+
xHmOUuQZehpd9vs9vlEkMy6s5k553DqpPCe0jF7oqjxKGotxPLiOuxc7QtybxN1FeCpOqJSkUNqx
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
b3JzL1VUCQADsGimV3Vupld1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAXX8GSZkWHUWpAAAAwAMA
AEQAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMt
YmFzaWMtc3RkZXJyLnR4dFVUCQADsWumV69opld1eAsAAQT1AQAABFAAAADN0sEKgjAcgPF7T7Fj
Qa5N3ZxeNQkSiWZ0iA5L/8VQNxmjXr9z0APs+N1+hy8mlEdERIQjygomCpbhhKSotzNWyzIBvsLj
qD1uwX+sG7V54QreMNllBuNvOcszWvCMCMruqJWXc1NaY6D32ppdWf80OnTdCU1WDeip9AQDWo9l
Lb0DNe+ds66ys9JGymaLolzQZLOK//lY4D4eB+1LExK0jxEWto+G898XUEsDBBQAAgAIAF1/Bkkf
hQRZqAAAAMADAABLABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
Y29ycy9jb3JzLWJhc2ljLXdvcmtlci1zdGRlcnIudHh0VVQJAAOxa6ZXr2imV3V4CwABBPUBAAAE
UAAAAM3OwQqCMBgA4HtPsWNBrk3b3LxqEiQSaXSIDkv/YqibjFGvX9foBXb8bl9MKI+IiAhHlGVM
ZIxjyVPU2QmreR4BX+B+0B7X4N/WDdo8cQEvGO08gfFXyWRKM54SQdkN1c35VOXWGOi8tmaTlz9G
+7Y9otGqHj2UHqFHyyEvG+9ATTvnrCvspLRpmmqNIiloslrEf78Uk4SG/duG/aNfBP0TSdg/Gc7v
A1BLAwQUAAIACABgfwZJenjW05kAAABAAQAASwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1uby1wcmVmbGlnaHQtc3RkZXJyLnR4dFVUCQADs2um
V7Bopld1eAsAAQT1AQAABFAAAADNzj0KwjAYANDdU2RUsDGJpE26thbBUsRUHMQhtp8Smp8Sgl7f
WfAAjm97jNA8IyIjOaK85KLkEtNCoCE4rOfZAr7A/WAS7iC9Q5yMf+IaXmDD7MCnq+SyoGVeEEH5
DXXqfGqr4D0MyQS/qZovo33fH5ENekQPbSyMaDlVjUoRtNvFGGIdnDZeqXaNMinodrVgP36Msr/5
fQBQSwMEFAACAAgAYH8GSW+FP1OZAAAAQAEAAFIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtbm8tcHJlZmxpZ2h0LXdvcmtlci1zdGRlcnIudHh0
VVQJAAOza6ZXsGimV3V4CwABBPUBAAAEUAAAAM3OuwrCMBhA4d2nyKhgY9KSNOnaWgRLEVtxEIfY
/kpoLiUEfX1dBR9AOMvZvpRQnhCREI4oK5j4hAXP0OAtVvNsAJ/httcRtxBfPkzaPXAFTzB+tuDi
RTKZ04LnRFB2RW13Ojaldw6GqL3blPXXo13fH5DxakR3pQ2MaDmVdRcDKLsNwYfKW6Vd1zVrlEhB
s9Ui/eWT8m98b1BLAwQKAAAAAADJfQZJAAAAAAAAAAAAAAAAJQAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9VVAkAA7popld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAA
AMl9BkkAAAAAAAAAAAAAAAApABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2RvbS9VVAkAA7popld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAGR/BkkmEnNSwgAAAE4C
AABHABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9yZWZsZWN0aW9u
LWVtYmVkZGVkLXN0ZGVyci50eHRVVAkAA7trple6aKZXdXgLAAEE9QEAAARQAAAAzZAxD4IwEIV3
f8WNOmiLAkI3ozEOJhqik3Go9BBiodgWf79ncHZw0dzyXt673Jc7BZGIUsGjSRhHZ9gcDvsM7x06
D0V13Xjfvu2qUhnmWD0wQ9eaxuFSan2R+U2A7QMFJfXJ9TmEPIQhWmssjINpOktGUJB+lQRj2uRS
l8Z5kSScs9LXmilTM0/Hxg+pO9wVg9NnPLKrrm7XVSP1MdsuGmKsjceFUkThBMheQDCdTzhNQGvU
hc7qrzni/35T/MM3PQFQSwMECgAAAAAAan8GSQAAAAAAAAAAAAAAAC8AHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL1VUCQADx2umV3Vupld1eAsAAQT1AQAA
BFAAAABQSwMECgAAAAAAy30GSQAAAAAAAAAAAAAAAEAAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvVVQJAAO9aKZXdW6mV3V4
CwABBPUBAAAEUAAAAFBLAwQKAAAAAADQfQZJAAAAAAAAAAAAAAAATwAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy9VVAkAA8hopld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAGR/BkmnzySufgAA
ABEBAABnABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2NhbnBsYXktc3RkZXJyLnR4dFVU
CQADvGumV7popld1eAsAAQT1AQAABFAAAAC9zTEKAjEQRuHeU/wHkLBB4pogwqKNnWChIBbrOsaB
kJFkFq/vegQb21d8rxsjsIR1wfnQrEDvapvWJBn6hKJDoZcU5Rwv3rV+ccV6nx+yCUgS45RRtS9a
jTGz7mdqR7cxThZn1hPr80i1suTvIeB82CKLgrKyJrrPYf+x+ABQSwMEFAACAAgAZH8GSVNp7xRo
AAAAxgAAAHIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfY2FucGxheV9ub2F1dG9wbGF5
LXN0ZGVyci50eHRVVAkAA7xrple6aKZXdXgLAAEE9QEAAARQAAAAcyxNV1AwUzA0tTK1tDKwUEgt
LzY0MNfLyU9OzFEoKkkuSi3ILyrJzEuPtjQ1tzSOVbBxSU0qTbezUsjMyywJzyzJCE4tLs7Mz/PM
S8u3UogIcFbIyy9RSM0rySzJSU3RUTDkcqS9FQBQSwMEFAACAAgAZX8GSVNp7xRoAAAAxgAAAG4A
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfY2FucGxheXRocm91Z2gtc3RkZXJyLnR4dFVU
CQADvWumV7topld1eAsAAQT1AQAABFAAAABzLE1XUDBTMDS1MrW0MrBQSC0vNjQw18vJT07MUSgq
SS5KLcgvKsnMS4+2NDW3NI5VsHFJTSpNt7NSyMzLLAnPLMkITi0uzszP88xLy7dSiAhwVsjLL1FI
zSvJLMlJTdFRMORypL0VAFBLAwQUAAIACABlfwZJVzmK6mgAAADGAAAAeQAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy9ldmVudF9jYW5wbGF5dGhyb3VnaF9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAkA
A71rple7aKZXdXgLAAEE9QEAAARQAAAAcyxNV1AwUzA0tTK1tDKwVEgtLzY0MNfLyU9OzFEoKkku
Si3ILyrJzEuPtjQ1tzSOVbBxSU0qTbezUsjMyywJzyzJCE4tLs7Mz/PMS8u3UogIcFbIyy9RSM0r
ySzJSU3RUTDkcqS9FQBQSwMEFAACAAgAZX8GSVc5iupoAAAAxgAAAGoAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEt
ZWxlbWVudHMvZXZlbnRfbG9hZGVkZGF0YS1zdGRlcnIudHh0VVQJAAO9a6ZXu2imV3V4CwABBPUB
AAAEUAAAAHMsTVdQMFMwNLUytbQysFRILS82NDDXy8lPTsxRKCpJLkotyC8qycxLj7Y0Nbc0jlWw
cUlNKk23s1LIzMssCc8syQhOLS7OzM/zzEvLt1KICHBWyMsvUUjNK8ksyUlN0VEw5HKkvRUAUEsD
BBQAAgAIAGV/Bkk+UZKNaAAAAMYAAAB1ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xv
YWRlZGRhdGFfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAAO+a6ZXvGimV3V4CwABBPUBAAAEUAAA
AHMsTVdQMFMwNLUytbQyNFBILS82NDDXy8lPTsxRKCpJLkotyC8qycxLj7Y0Nbc0jlWwcUlNKk23
s1LIzMssCc8syQhOLS7OzM/zzEvLt1KICHBWyMsvUUjNK8ksyUlN0VEw5HKkvRUAUEsDBBQAAgAI
AGV/Bkk+UZKNaAAAAMYAAABuABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRlZG1l
dGFkYXRhLXN0ZGVyci50eHRVVAkAA75rple8aKZXdXgLAAEE9QEAAARQAAAAcyxNV1AwUzA0tTK1
tDI0UEgtLzY0MNfLyU9OzFEoKkkuSi3ILyrJzEuPtjQ1tzSOVbBxSU0qTbezUsjMyywJzyzJCE4t
Ls7Mz/PMS8u3UogIcFbIyy9RSM0rySzJSU3RUTDkcqS9FQBQSwMEFAACAAgAZX8GST5Rko1oAAAA
xgAAAHkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVkbWV0YWRhdGFfbm9hdXRv
cGxheS1zdGRlcnIudHh0VVQJAAO+a6ZXvGimV3V4CwABBPUBAAAEUAAAAHMsTVdQMFMwNLUytbQy
NFBILS82NDDXy8lPTsxRKCpJLkotyC8qycxLj7Y0Nbc0jlWwcUlNKk23s1LIzMssCc8syQhOLS7O
zM/zzEvLt1KICHBWyMsvUUjNK8ksyUlN0VEw5HKkvRUAUEsDBBQAAgAIAGZ/Bkk6AfdzaAAAAMYA
AABpABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRzdGFydC1zdGRlcnIudHh0VVQJ
AAO/a6ZXvWimV3V4CwABBPUBAAAEUAAAAHMsTVdQMFMwNLUytbQyNFRILS82NDDXy8lPTsxRKCpJ
LkotyC8qycxLj7Y0Nbc0jlWwcUlNKk23s1LIzMssCc8syQhOLS7OzM/zzEvLt1KICHBWyMsvUUjN
K8ksyUlN0VEw5HKkvRUAUEsDBBQAAgAIAGZ/Bkk6AfdzaAAAAMYAAAB0ABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL2V2ZW50X2xvYWRzdGFydF9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAkAA79rple9
aKZXdXgLAAEE9QEAAARQAAAAcyxNV1AwUzA0tTK1tDI0VEgtLzY0MNfLyU9OzFEoKkkuSi3ILyrJ
zEuPtjQ1tzSOVbBxSU0qTbezUsjMyywJzyzJCE4tLs7Mz/PMS8u3UogIcFbIyy9RSM0rySzJSU3R
UTDkcqS9FQBQSwMEFAACAAgAZn8GSToB93NoAAAAxgAAAHwAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVu
dHMvZXZlbnRfb3JkZXJfY2FucGxheV9jYW5wbGF5dGhyb3VnaC1zdGRlcnIudHh0VVQJAAPAa6ZX
vmimV3V4CwABBPUBAAAEUAAAAHMsTVdQMFMwNLUytbQyNFRILS82NDDXy8lPTsxRKCpJLkotyC8q
ycxLj7Y0Nbc0jlWwcUlNKk23s1LIzMssCc8syQhOLS7OzM/zzEvLt1KICHBWyMsvUUjNK8ksyUlN
0VEw5HKkvRUAUEsDBBQAAgAIAGZ/Bkl39ymqaAAAAMYAAAB1ABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL2V2ZW50X29yZGVyX2NhbnBsYXlfcGxheWluZy1zdGRlcnIudHh0VVQJAAPAa6ZXvmimV3V4
CwABBPUBAAAEUAAAAHMsTVdQMFMwNLUytbQyNFJILS82NDDXy8lPTsxRKCpJLkotyC8qycxLj7Y0
Nbc0jlWwcUlNKk23s1LIzMssCc8syQhOLS7OzM/zzEvLt1KICHBWyMsvUUjNK8ksyUlN0VEw5HKk
vRUAUEsDBBQAAgAIAGZ/Bkl39ymqaAAAAMYAAAB/ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2
ZW50X29yZGVyX2xvYWRlZG1ldGFkYXRhX2xvYWRlZGRhdGEtc3RkZXJyLnR4dFVUCQADwGumV75o
pld1eAsAAQT1AQAABFAAAABzLE1XUDBTMDS1MrW0MjRSSC0vNjQw18vJT07MUSgqSS5KLcgvKsnM
S4+2NDW3NI5VsHFJTSpNt7NSyMzLLAnPLMkITi0uzszP88xLy7dSiAhwVsjLL1FIzSvJLMlJTdFR
MORypL0VAFBLAwQUAAIACABnfwZJc6dMVGgAAADGAAAAeAAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50
cy9ldmVudF9vcmRlcl9sb2Fkc3RhcnRfcHJvZ3Jlc3Mtc3RkZXJyLnR4dFVUCQADwWumV79opld1
eAsAAQT1AQAABFAAAABzLE1XUDBTMDS1MrW0MjRWSC0vNjQw18vJT07MUSgqSS5KLcgvKsnMS4+2
NDW3NI5VsHFJTSpNt7NSyMzLLAnPLMkITi0uzszP88xLy7dSiAhwVsjLL1FIzSvJLMlJTdFRMORy
pL0VAFBLAwQUAAIACABnfwZJrYOelq8AAAAvAQAAZQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9l
dmVudF9wYXVzZS1zdGRlcnIudHh0VVQJAAPCa6ZXv2imV3V4CwABBPUBAAAEUAAAAL3OQWrDMBSE
4X1OMQdIg0VQVYsQSNJNdyFepGCyUOwnW0Q8FemZlp4+2vQK/ffDN73SVrdWbTfa6Bt2NZwuh2OH
fQ0+LmU+E4+BpwtFcoU6Eou++THevynlnTGuueEY0/BAg9kVcOKXX8oJmTyGtLBArQ7LBLzijwN9
F9WYTZ25iCxDpq+UpTJ9q027rVfe6b5Me4vAQa5B5o5KCYk/2CeLz/OpOgJiCRJpXP8P8QRQSwME
FAACAAgAZ38GSawd5cJoAAAAxgAAAHAAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGF1
c2Vfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAAPCa6ZXwGimV3V4CwABBPUBAAAEUAAAAHMsTVdQ
MFMwNLUytbQyNFFILS82NDDXy8lPTsxRKCpJLkotyC8qycxLj7Y0Nbc0jlWwcUlNKk23s1LIzMss
Cc8syQhOLS7OzM/zzEvLt1KICHBWyMsvUUjNK8ksyUlN0VEw5HKkvRUAUEsDBBQAAgAIAGd/Bkms
HeXCaAAAAMYAAABkABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BsYXktc3RkZXJyLnR4
dFVUCQADwmumV8Bopld1eAsAAQT1AQAABFAAAABzLE1XUDBTMDS1MrW0MjRRSC0vNjQw18vJT07M
USgqSS5KLcgvKsnMS4+2NDW3NI5VsHFJTSpNt7NSyMzLLAnPLMkITi0uzszP88xLy7dSiAhwVsjL
L1FIzSvJLMlJTdFRMORypL0VAFBLAwQUAAIACABofwZJqE2APGgAAADGAAAAbwAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5X25vYXV0b3BsYXktc3RkZXJyLnR4dFVUCQADw2umV8Bo
pld1eAsAAQT1AQAABFAAAABzLE1XUDBTMDS1MrW0MjRVSC0vNjQw18vJT07MUSgqSS5KLcgvKsnM
S4+2NDW3NI5VsHFJTSpNt7NSyMzLLAnPLMkITi0uzszP88xLy7dSiAhwVsjLL1FIzSvJLMlJTdFR
MORypL0VAFBLAwQUAAIACABofwZJqE2APGgAAADGAAAAZwAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50
cy9ldmVudF9wbGF5aW5nLXN0ZGVyci50eHRVVAkAA8NrplfBaKZXdXgLAAEE9QEAAARQAAAAcyxN
V1AwUzA0tTK1tDI0VUgtLzY0MNfLyU9OzFEoKkkuSi3ILyrJzEuPtjQ1tzSOVbBxSU0qTbezUsjM
yywJzyzJCE4tLs7Mz/PMS8u3UogIcFbIyy9RSM0rySzJSU3RUTDkcqS9FQBQSwMEFAACAAgAaH8G
SeW7XuVoAAAAxgAAAHIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheWluZ19ub2F1
dG9wbGF5LXN0ZGVyci50eHRVVAkAA8RrplfBaKZXdXgLAAEE9QEAAARQAAAAcyxNV1AwUzA0tTK1
tDI0U0gtLzY0MNfLyU9OzFEoKkkuSi3ILyrJzEuPtjQ1tzSOVbBxSU0qTbezUsjMyywJzyzJCE4t
Ls7Mz/PMS8u3UogIcFbIyy9RSM0rySzJSU3RUTDkcqS9FQBQSwMEFAACAAgAaH8GSeW7XuVoAAAA
xgAAAGgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcHJvZ3Jlc3Mtc3RkZXJyLnR4dFVU
CQADxGumV8Jopld1eAsAAQT1AQAABFAAAABzLE1XUDBTMDS1MrW0MjRTSC0vNjQw18vJT07MUSgq
SS5KLcgvKsnMS4+2NDW3NI5VsHFJTSpNt7NSyMzLLAnPLMkITi0uzszP88xLy7dSiAhwVsjLL1FI
zSvJLMlJTdFRMORypL0VAFBLAwQUAAIACABofwZJ5bte5WgAAADGAAAAcwAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy9ldmVudF9wcm9ncmVzc19ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAkAA8RrplfC
aKZXdXgLAAEE9QEAAARQAAAAcyxNV1AwUzA0tTK1tDI0U0gtLzY0MNfLyU9OzFEoKkkuSi3ILyrJ
zEuPtjQ1tzSOVbBxSU0qTbezUsjMyywJzyzJCE4tLs7Mz/PMS8u3UogIcFbIyy9RSM0rySzJSU3R
UTDkcqS9FQBQSwMEFAACAAgAaX8GSeHrOxtoAAAAxgAAAGoAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVu
dHMvZXZlbnRfdGltZXVwZGF0ZS1zdGRlcnIudHh0VVQJAAPFa6ZXw2imV3V4CwABBPUBAAAEUAAA
AHMsTVdQMFMwNLUytbQyNFdILS82NDDXy8lPTsxRKCpJLkotyC8qycxLj7Y0Nbc0jlWwcUlNKk23
s1LIzMssCc8syQhOLS7OzM/zzEvLt1KICHBWyMsvUUjNK8ksyUlN0VEw5HKkvRUAUEsDBBQAAgAI
AGl/BkkayHwTaAAAAMYAAAB1ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3RpbWV1cGRh
dGVfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAAPGa6ZXw2imV3V4CwABBPUBAAAEUAAAAHMsTVdQ
MFMwNLUytbQytFBILS82NDDXy8lPTsxRKCpJLkotyC8qycxLj7Y0Nbc0jlWwcUlNKk23s1LIzMss
Cc8syQhOLS7OzM/zzEvLt1KICHBWyMsvUUjNK8ksyUlN0VEw5HKkvRUAUEsDBAoAAAAAAMl9BkkA
AAAAAAAAAAAAAABaABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2ludGVyZmFjZXMvVVQJAAO6aKZX
dW6mV3V4CwABBPUBAAAEUAAAAFBLAwQKAAAAAADJfQZJAAAAAAAAAAAAAAAAZAAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9pbnRlcmZhY2VzL1RleHRUcmFjay9VVAkAA7popld1bqZXdXgLAAEE9QEA
AARQAAAAUEsDBAoAAgAAAGR/Bkk13hkSYwAAAGMAAAB5ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRz
L2ludGVyZmFjZXMvVGV4dFRyYWNrL2FjdGl2ZUN1ZXMtc3RkZXJyLnR4dFVUCQADvGumV7popld1
eAsAAQT1AQAABFAAAABBdWcgIDYgMTU6NTk6MDggZXdzMTA3LmxvY2FsIHJ0Y3JlcG9ydGluZ1s5
NTk4OF0gPERlYnVnPjogaW5pdFdpdGhTZXNzaW9uSW5mbzogWFBDIG5vdCBlbnRpdGxlZCwgMQpQ
SwMEFAACAAgAaX8GSRrIfBNoAAAAxgAAAHcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvbmV0d29y
a1N0YXRlX2R1cmluZ19sb2Fkc3RhcnQtc3RkZXJyLnR4dFVUCQADxmumV8Ropld1eAsAAQT1AQAA
BFAAAABzLE1XUDBTMDS1MrW0MrRQSC0vNjQw18vJT07MUSgqSS5KLcgvKsnMS4+2NDW3NI5VsHFJ
TSpNt7NSyMzLLAnPLMkITi0uzszP88xLy7dSiAhwVsjLL1FIzSvJLMlJTdFRMORypL0VAFBLAwQU
AAIACABqfwZJHpgZ7WgAAADGAAAAcgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wYXVzZWRfZmFs
c2VfZHVyaW5nX3BsYXktc3RkZXJyLnR4dFVUCQADx2umV8Vopld1eAsAAQT1AQAABFAAAABzLE1X
UDBTMDS1MrW0MrRUSC0vNjQw18vJT07MUSgqSS5KLcgvKsnMS4+2NDW3NI5VsHFJTSpNt7NSyMzL
LAnPLMkITi0uzszP88xLy7dSiAhwVsjLL1FIzSvJLMlJTdFRMORypL0VAFBLAwQUAAIACABqfwZJ
5bImhWgAAADGAAAAcgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wYXVzZWRfdHJ1ZV9kdXJpbmdf
cGF1c2Utc3RkZXJyLnR4dFVUCQADyGumV8Vopld1eAsAAQT1AQAABFAAAABzLE1XUDBTMDS1MrW0
MjJQSC0vNjQw18vJT07MUSgqSS5KLcgvKsnMS4+2NDW3NI5VsHFJTSpNt7NSyMzLLAnPLMkITi0u
zszP88xLy7dSiAhwVsjLL1FIzSvJLMlJTdFRMORypL0VAFBLAwQKAAAAAADKfQZJAAAAAAAAAAAA
AAAAagAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9V
VAkAA7xopld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAGd/BkmXMQ8IewAAAK4AAACRABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50L21lZGlhLWVsZW1lbnRzL3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNlL3BhdXNlLW1v
dmUtdG8tb3RoZXItZG9jdW1lbnQtc3RkZXJyLnR4dFVUCQADwWumV7xopld1eAsAAQT1AQAABFAA
AACVzTEKwkAQRuE+p/gPIItriCGLCEEbO8FCQSxiHNeBZUZ2J3h94xFsX/G9forAGr4JTRf8CvQp
ftm6pOOQkG3M9NZsLPHatXXd3bA5yFO3AUljnDOKDdmKc67q/6b2dJ/ibLGwndleJyqFVX6HgMtx
B1EDibEleizgqy9QSwMECgACAAAAZ38GSbC1ew1jAAAAYwAAAI8AHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UvcGF1c2UtbW92ZS13aXRoaW4tZG9jdW1l
bnQtc3RkZXJyLnR4dFVUCQADwWumV7xopld1eAsAAQT1AQAABFAAAABBdWcgIDYgMTU6NTk6MTMg
ZXdzMTA3LmxvY2FsIHJ0Y3JlcG9ydGluZ1s5NzMzOV0gPERlYnVnPjogaW5pdFdpdGhTZXNzaW9u
SW5mbzogWFBDIG5vdCBlbnRpdGxlZCwgMQpQSwMEFAACAAgAZ38GSfPDPEyuAAAAzAAAAI8AHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UvcGF1c2UtcmVt
b3ZlLWZyb20tZG9jdW1lbnQtc3RkZXJyLnR4dFVUCQADwWumV7xopld1eAsAAQT1AQAABFAAAAA1
zrFugzAUheE9T3EeIIkgDgWsKhKkSzcEQyOhDBQuYMW6ruyLGuXp66X/fvSdPs10VupUHVWW3fEe
w7Wt6g6XGGa7hbUhngwvLVkaAnUkGn3yzOeimFRxyieV3FFbNz6QYB0C2PHhRd7B04zRbSw476pt
Ad7wz4F+Q5rkxzgbLLyMnn6cl8j0Za5UGa980Pe2XDQMG/kysnYUgnH8ybPTuDXX6AiIxYilaY90
9wdQSwMEFAACAAgAan8GSeWyJoVoAAAAxgAAAHMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVh
ZHlTdGF0ZV9kdXJpbmdfY2FucGxheS1zdGRlcnIudHh0VVQJAAPIa6ZXxmimV3V4CwABBPUBAAAE
UAAAAHMsTVdQMFMwNLUytbQyMlBILS82NDDXy8lPTsxRKCpJLkotyC8qycxLj7Y0Nbc0jlWwcUlN
Kk23s1LIzMssCc8syQhOLS7OzM/zzEvLt1KICHBWyMsvUUjNK8ksyUlN0VEw5HKkvRUAUEsDBBQA
AgAIAGt/Bknh4kN7aAAAAMYAAAB6ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVf
ZHVyaW5nX2NhbnBsYXl0aHJvdWdoLXN0ZGVyci50eHRVVAkAA8lrplfGaKZXdXgLAAEE9QEAAARQ
AAAAcyxNV1AwUzA0tTK1tDIyVEgtLzY0MNfLyU9OzFEoKkkuSi3ILyrJzEuPtjQ1tzSOVbBxSU0q
TbezUsjMyywJzyzJCE4tLs7Mz/PMS8u3UogIcFbIyy9RSM0rySzJSU3RUTDkcqS9FQBQSwMEFAAC
AAgAa38GSeHiQ3toAAAAxgAAAHYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHlTdGF0ZV9k
dXJpbmdfbG9hZGVkZGF0YS1zdGRlcnIudHh0VVQJAAPJa6ZXx2imV3V4CwABBPUBAAAEUAAAAHMs
TVdQMFMwNLUytbQyMlRILS82NDDXy8lPTsxRKCpJLkotyC8qycxLj7Y0Nbc0jlWwcUlNKk23s1LI
zMssCc8syQhOLS7OzM/zzEvLt1KICHBWyMsvUUjNK8ksyUlN0VEw5HKkvRUAUEsDBBQAAgAIAGt/
Bknh4kN7aAAAAMYAAAB6ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVfZHVyaW5n
X2xvYWRlZG1ldGFkYXRhLXN0ZGVyci50eHRVVAkAA8prplfHaKZXdXgLAAEE9QEAAARQAAAAcyxN
V1AwUzA0tTK1tDIyVEgtLzY0MNfLyU9OzFEoKkkuSi3ILyrJzEuPtjQ1tzSOVbBxSU0qTbezUsjM
yywJzyzJCE4tLs7Mz/PMS8u3UogIcFbIyy9RSM0rySzJSU3RUTDkcqS9FQBQSwMEFAACAAgAa38G
SawUnaJoAAAAxgAAAHMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHlTdGF0ZV9kdXJpbmdf
cGxheWluZy1zdGRlcnIudHh0VVQJAAPKa6ZXx2imV3V4CwABBPUBAAAEUAAAAHMsTVdQMFMwNLUy
tbQyMlJILS82NDDXy8lPTsxRKCpJLkotyC8qycxLj7Y0Nbc0jlWwcUlNKk23s1LIzMssCc8syQhO
LS7OzM/zzEvLt1KICHBWyMsvUUjNK8ksyUlN0VEw5HKkvRUAUEsDBBQAAgAIAGt/BknSw3VG1gAA
AMICAACEABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3NyY19yZWZsZWN0c19hdHRyaWJ1dGVfbm90
X3NvdXJjZV9lbGVtZW50cy1zdGRlcnIudHh0VVQJAAPKa6ZXyGimV3V4CwABBPUBAAAEUAAAANWQ
P0/DMBDFdz7FjXRInYRUSbxVVFUHBhSVqWJw7Utj4T/BvvD5ORRmNiTQLe+n9056d5dqJ3e9rOtt
2zevcDqfnwd8XzATjPZ2Ipq/8WDNgBrtBw6Y5xgyPirnrkq/SUirYWDiPNPqQ1M2cI8pxQRFVfcP
3QZG1l8hKYSLWrkpZpJdV5ZiIu9ERq8CWZ0F+isag6bQMRAGEh6NVQU69ExZjDHeXX7uznhY/Hy0
QbmX4Wkf+AAfCffGcMUsQa0CqrrdljwVr3EWluR+p2T7jx/c/tUHfwJQSwMECgAAAAAAyn0GSQAA
AAAAAAAAAAAAAFUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdHJhY2svVVQJAAO8aKZXdW6mV3V4
CwABBPUBAAAEUAAAAFBLAwQKAAAAAADKfQZJAAAAAAAAAAAAAAAAYwAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy90cmFjay90cmFjay1lbGVtZW50L1VUCQADvGimV3Vupld1eAsAAQT1AQAABFAAAABQ
SwMEFAACAAgAZ38GSavapOt7AAAArgAAAIIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdHJhY2sv
dHJhY2stZWxlbWVudC90cmFjay1hcGktdGV4dHRyYWNrcy1zdGRlcnIudHh0VVQJAAPBa6ZXvGim
V3V4CwABBPUBAAAEUAAAAJXNQQrCMBBG4X1P8R9AQlOIkiBC0Y07wYWCuKh1TANhRpIpXt96BLdv
8b1+jsAa1gXng+1An2rbjckyDhlFx0JvKZo43rzzXXvH9sgv2QVkiXHJqDoUrcaYpv+bOtBjjouV
OOkl6XSmWpPw7xBwPe3BoiDWpJmeK9jmC1BLAwQKAAIAAABrfwZJ9CKDcmMAAABjAAAAYwAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC9tZWRpYS1lbGVtZW50cy92aWRlb18wMDgtc3RkZXJyLnR4dFVUCQADymumV8hopld1eAsA
AQT1AQAABFAAAABBdWcgIDYgMTU6NTk6MjIgZXdzMTA3LmxvY2FsIHJ0Y3JlcG9ydGluZ1s5NTc5
M10gPERlYnVnPjogaW5pdFdpdGhTZXNzaW9uSW5mbzogWFBDIG5vdCBlbnRpdGxlZCwgMQpQSwME
CgAAAAAAy30GSQAAAAAAAAAAAAAAAFIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWF1ZGlvLWVsZW1lbnQvVVQJAAO9
aKZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACABnfwZJ/CslFN4AAADQAgAAbgAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC90aGUtYXVkaW8tZWxlbWVudC9hdWRpb19jb25zdHJ1Y3Rvci1zdGRlcnIudHh0VVQJAAPBa6ZX
vWimV3V4CwABBPUBAAAEUAAAANWQP08DMQzFdz6FRxiuSdorXLNVraoODOhUpoohTdxehJMc+cPn
J+WYYUICeXnPfpZ+9lEs5XIlxWJ23/IX2B8OTz2+FUwZzvayz3n8sltretRo37HHNAafcKOITkq/
SojTwMBQ89VNc2h5C7cYY4jQiPlq0d3BueprSDJGQSsaQsqy6zhnQ3bEEjrls9WJoTuhMWgaHXxG
n1kesFHF2NAgobt2UtQ3x+/xq90WN+6sV/TcP659vcGFjGtjKmWSoCYBYv4w47VEXatZKJF+jVP8
rzf7QvQT/5/48yfoB1BLAwQKAAAAAABqfwZJAAAAAAAAAAAAAAAANQAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvVVQJAAPHa6ZXdW6mV3V4CwAB
BPUBAAAEUAAAAFBLAwQKAAAAAABqfwZJAAAAAAAAAAAAAAAARwAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQvVVQJ
AAPHa6ZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACABqfwZJEl7T1GkAAABrAAAAWAAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlu
cHV0LWVsZW1lbnQvYnV0dG9uLXN0ZGVyci50eHRVVAkAA8drplfHa6ZXdXgLAAEE9QEAAARQAAAA
MzIwNNM1sNA1MFMwNLUytbQytNSzNDFTSM7P1UssKMhJ1QtPTfLOLAFRzvl5Jal5JXouqWWpOfkF
uUB2tKWppYWFlZm5oaGZSayCX7BTaUlJfp5jXmZuYklmfl6xa15iUk5qiq2fPxcAUEsDBAoAAAAA
AGh/BkkAAAAAAAAAAAAAAAAqABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvVVQJAAPEa6ZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACABofwZJdfwGTmsAAAB6
AAAAUwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2Fib3J0LWlu
LWluaXRpYWwtdXBncmFkZW5lZWRlZC1hY3R1YWwudHh0VVQJAAPEa6ZXxGumV3V4CwABBPUBAAAE
UAAAAA3IMQ7CMAwF0N2n+CNIDFyAsVIZaCWUHsBtrBIRHGS7nJ9MT3o0sqm4YzBrhlO6P4Z5SecL
Pn15F9ygR61E05yey4QkHogXB1jBa7NA0R7SKVG44vjuxllUJEuGSzh+Yl6aYuXtjWi4gugPUEsD
BBQAAgAIAGh/BklNrV0e9QAAABECAABRABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWRpZmYudHh0VVQJAAPE
a6ZXxGumV3V4CwABBPUBAAAEUAAAAM2QwWrDMBBE7/6KPbbIqhpCjwUnxNBQmpTYac5ra5uKypKR
Vo379xUml957KAwsDMObYaWUoN68TQNFtUFGVZ8adaLu2fD1rJOxWh3IEkZSFr99YskUWQaKyXJU
Zhh9YNLqsuzVhTo5WuR3H4Y5FtXWaZpIb9YKuxyUxmUZNmhlGs8BNTkiTVrSNFKfQXc8cSGE+EfT
sOeEdh5WVSAX5RLEonyAqiqgkK+rpoE2E4E/kAEdzDgwLhsEVyT8QkIkjvBFIRrvoMP+E9jDPRTi
CYOjGKEOwQe4abcv9f7Y3paQPxHxTPAILlmbi8Vu3x6Ou7+rLn4AUEsDBBQAAgAIAGh/BkniBstU
SQAAAE8AAABVABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYWJv
cnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dFVUCQADxGumV8Rrpld1eAsA
AQT1AQAABFAAAAANyNEJgDAMBcD/TvFGcAU3EOoCqX1oqKTSROe3XweXtjVn7PRAXBIQg5Q+Amoz
ONFQufE+55BKIysrnOH4OFy7ocjREB0LUvoBUEsDBBQAAgAIAGh/Bkmyn0hKFggAAOUbAABZABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYWJvcnQtaW4taW5pdGlh
bC11cGdyYWRlbmVlZGVkLXByZXR0eS1kaWZmLmh0bWxVVAkAA8RrplfEa6ZXdXgLAAEE9QEAAARQ
AAAAzVlrc+O2Ff3uX4GxJ3WaMUnJsja2vFYn68ck02aTiZ3mYwckQRFrkFAA0JY37X/vxYsCKVJ2
Z9qdrneXxPs+zr3ngn5fqootD96XBOfwqIjCKCuxkERdHTeqiM6PoVuqF0aWBwtG68cTtHiikiqS
oz8OEPxRZKOinGRcYEV5vUA1r8mlGUq5yImIUq4UrxZout6gHN5JfnnwrwO7ndsk44yLBTqazC7M
WHxHGbmhReHGU5w9rgRv6jzyU4tz/RMeZE+QnNEcHeV5bscKXquowBVlLwtU8ZrLNc6cgBUWKwoi
T0mFJrZrzUE5o4cgDDR6IkagctqTdDabDewvcS0jSQQtgkFJPxNzRnhoxEihFmgSz31/TuWaYdiE
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
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvY3Vyc29yLW92ZXJsb2Fkcy1hY3R1
YWwudHh0VVQJAAPHaKZXx2imV3V4CwABBPUBAAAEUAAAAFXMywrCMBBG4X2e4l9WEN/AjVowiA1o
6n4046XEjExS0bc3K6Hb88ExW9LEOaNVFUXj7b51vZ/N8ayVbowl0hijMZ3zh77DieIjUGGUO0Pe
rFEoZMgVdrNy54Ev5VhEeSEvTutRs2hTbxVtCvyZZFAKU9nx94/G/ABQSwMEFAACAAgA0H0GSXgj
WhP5AAAAOwIAAEMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9j
dXJzb3Itb3ZlcmxvYWRzLWRpZmYudHh0VVQJAAPHaKZXx2imV3V4CwABBPUBAAAEUAAAAMWQwWqD
QBCG7z7FHFN0s4TQY8FahUpoLNEk59GdtJbVld3Zxrx9rZRAXqA5Dcw///zfjBAC5MFo35GTKTLK
7FjKI9Wblv9K4lut5I40oSOp8WI8CybHwpLzmp1su8FYJiXP60aeqRaDRj4Z281jTua9opFUmsjG
W2esMN9ktUHlBI0DNZN1ySMHYRjeFQYb9qhnlDgGsYrWEK6iR4jjAALx/lyWcEDdKmQC/iS4OsGc
IE+Tov6ajinZWFqagfqXOWDxEP2Kc+5NG7BXt8qGLlcxCF/R9uQcZNYaC4sqf8uKfTVtm97j8IPg
CXqv9cQWbotqt9/+K13wA1BLAwQUAAIACADQfQZJ8fVCclMAAAByAAAARwAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2N1cnNvci1vdmVybG9hZHMtZXhwZWN0ZWQu
dHh0VVQJAAPHaKZXx2imV3V4CwABBPUBAAAEUAAAAOMKcAwOVghLzMlMSSxJVSjJSFXIL0styslP
TClWyE9T8HRx8k/KSk0uCS7JL0rVyy9IzXMuLSrOL9LQ1AFJeualpFagCCsk5qWgyninVsIlubgA
UEsDBBQAAgAIANB9Bkntbsk7LggAAB0cAABLABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvY3Vyc29yLW92ZXJsb2Fkcy1wcmV0dHktZGlmZi5odG1sVVQJAAPHaKZX
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
AAAAAAAAAAAAAAAABgAcAG1lZGlhL1VUCQAD5WumV3Vupld1eAsAAQT1AQAABFAAAABQSwMEFAAC
AAgAeH8GScRQVIF7AAAArgAAAB8AHABtZWRpYS9hdWRpby1kYXRhLXVybC1zdGRlcnIudHh0VVQJ
AAPka6ZX3mimV3V4CwABBPUBAAAEUAAAAJXNQQrCMBBG4X1P8R9AggFjmyBC0Y07wYWCuKh1jANh
IskUr289gtu3+F4/RWAN64LzYdWBPtUuW5PyOCQUHQu9c1GWePWu7fwNm4M88zYg5RjnjKpD0WqM
afq/qT3dpzhbLKxn1teJauUsv0PA5biDZAWJsiZ6LGCbL1BLAwQKAAAAAAB5fwZJAAAAAAAAAAAA
AAAACgAcAG1lZGlhL21hYy9VVAkAA+Vrpld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAHl/
BkmzrxIjwAAAAPIGAAAzABwAbWVkaWEvbWFjL2NvbnRyb2xzLXBhbmVsLW5vdC1jbGlwcGVkLW91
dC1zdGRlcnIudHh0VVQJAAPla6ZX5WumV3V4CwABBPUBAAAEUAAAAO3PMQvCMBQE4N1fkVEHmzYa
bQUHLQoOouAoUp7pQ6OxKa9RyL9XcdDB1UHIdjfdfdtEjmQ26mdRbyB3TDu8QOMrVWzQrcnWSM6z
Rh8qMAZLhkTjbiKGqWTt81wfptDgan9C5WZElopFdQOjS3BYdlhbfzZwjG/slRTmoI7Ic0u4xFLD
O3UTORCR6Mf8Me2s8zU2fG3AI/HH2CsVk+e/SDGjK2RCZL3WNiAC4ieIYfyJyG3t/0IRp2lQBEVQ
fFHcAVBLAwQKAAAAAADifQZJAAAAAAAAAAAAAAAAEwAcAG1lZGlhL21lZGlhLXNvdXJjZS9VVAkA
A+dopld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAHx/Bknn8d0xngAAALQAAAA1ABwAbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1zdHBwLWNyYXNoLXN0ZGVyci50eHRVVAkAA+tr
plfnaKZXdXgLAAEE9QEAAARQAAAAFY29DoIwFEZ3n+K+AA0YWn42lcXoptHBONyWCzYpLWmLBp/e
On0nJzn5tnkhsrzOcgEFb3nTcs6KpgTlJobzbIjdSZ50/M/B2Ug2so7eZNw8JX40ohJVK+qmzPkT
jqN1Xtsx5TZ6Z656IomBIFAEuYIyOkUgSeGS7O52wSl97JdhIN/pMBtcz7iShw8GwL6nHqIDhLBa
9fLO6i/5zQ9QSwMEFAACAAgADYAGSbK0+G1oAAAAxgAAACgAHABtZWRpYS9zb3VyY2VzLWZhbGxi
YWNrLWNvZGVjcy1zdGRlcnIudHh0VVQJAAMKbKZXAWmmV3V4CwABBPUBAAAEUAAAAHMsTVdQMFMw
NLMyMLAyMlNILS82NDDXy8lPTsxRKCpJLkotyC8qycxLj7Y0NbewjFWwcUlNKk23s1LIzMssCc8s
yQhOLS7OzM/zzEvLt1KICHBWyMsvUUjNK8ksyUlN0VEw5HKkvRUAUEsDBAoAAAAAAAB+BkkAAAAA
AAAAAAAAAAAMABwAbWVkaWEvdHJhY2svVVQJAAMgaaZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQK
AAIAAAAagAZJ/ic44DUAAAA1AAAAKgAcAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUt
YWN0dWFsLnR4dFVUCQADJGymVyBppld1eAsAAQT1AQAABFAAAABGQUlMOiBUaW1lZCBvdXQgd2Fp
dGluZyBmb3Igbm90aWZ5RG9uZSB0byBiZSBjYWxsZWQKClBLAwQUAAIACAAagAZJ/WrzNsUBAABu
AwAAKAAcAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUtZGlmZi50eHRVVAkAAyRsplck
bKZXdXgLAAEE9QEAAARQAAAAtVJNb5tAEL3zK+ZmCF4IkXJoJUtuDZGqVE4V06RS1cMCE1h52UXs
0Nj/vgN2LCepequEdqWdN+9jBiEExA9WDy26OJUk4+xxEz9icavoeH0elK7ie9QoHcZa7u1AgtCR
6NENmlzcYqVkTL0st4dTKCMKaSrhaK9R4K7DkrCKaEdeGIb/X1GWNEg96S2XIJJ58gHCZH4Fy6UX
3nz68vUj5IpJgJnhWSpSpoYn24OxpJ72qTUIZKFAKKXWWHngiZwNADWSYNIY61yDckAHyoHsOq2Y
sbR9z2n1PvJE9pCtc7+UpuMQ1PR2qJvAE564uIBVg+UWlGFtqeFoH6YwLCA5rifuv699ZcZCPr4n
sIDfqkIbEe5oenI/L38xY/bjW7bKsxT8t/VIo6mpgcUCZsksgLvbc/Q5eaSlqQdZ44RF82/wVrHb
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
A+prpld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAHt/BkllB/e0yAAAAPIGAAAwABwAcGxh
dGZvcm0vbWFjL2ZvbnRzL2hhbi1kaXN1bmlmaWNhdGlvbi1zdGRlcnIudHh0VVQJAAPqa6ZX6mum
V3V4CwABBPUBAAAEUAAAAO3PsW7CMBQF0J2v8AgDceLGkCB1KFGRGCqQMkYoethP1NTE0YtB8t8X
2qH5gC5I3u6d7j1NJleyXMk8kbk8MOPxAkPoVFuj35PrkXxggzl1YC1qhkSv80wsC8mmXxtzWsOA
u+MZlX8nctRuuxtYo8GjnrGpGTfwjNfuSgorUJ/IK0f4gdrAX5pnciESkaf8Pu2dDz0OfG8hIPH7
2G9q3x7/EsWs6ZAJUb5MmhFiERER8X+IcoyoXB+eQpEWxVgh06iIiqj4UXwDUEsDBAoAAAAAAON9
BkkAAAAAAAAAAAAAAAAIABwAcGx1Z2lucy9VVAkAA+lopld1bqZXdXgLAAEE9QEAAARQAAAAUEsD
BBQAAgAIAACABknuXXJFhgAAAPYAAAA7ABwAcGx1Z2lucy9ucHAtc2V0LXdpbmRvdy1jYWxsZWQt
ZHVyaW5nLWRlc3RydWN0aW9uLXN0ZGVyci50eHRVVAkAA+9rplfpaKZXdXgLAAEE9QEAAARQAAAA
nY7BCsIwEETvfsV8Rz+gIkgpFPEo6WZtI3FXkk3z+6YHL+LJ6zDz3vQuRPYwRWJLgTcGqWSNDJ0f
TIa6tgaiLkuQpcN4vhxPQ4e+DTsM43ib2K5BvFaQizvsqYlhqxOoEGPm+x68YmkEeM6WCllQOfT/
yqdCxDl/+6vLELXPD19SW/0SvwFQSwMEFAACAAgAYH8GScnC98qeAgAA2CQAABoAHABweXdlYnNv
Y2tldC53cy5sb2ctZXJyLnR4dFVUCQADtGumVxprpld1eAsAAQT1AQAABFAAAADt2Ftv2jAYgOF7
foXVm4KWxjkTcrcD3aZN3QRVuUDIMsmXYmHizDZl7NfPpHRN1XYXU6mGZIGEcpLfOMmjiGng+cmZ
l555CfLjLE6zIHBCrz9D0+Fo9G00Q4SsKKsIcScwH4t8CXoM8gZkhoY/c6g1ExViFaqlyEEpVl0j
CT/WoDQqpVhlqHuaZf6pg+Kg7yUO8sy317mUNIc5zZeouxJmVwk5VBrllHPEqdK9rIPQOeOATvB4
qzSs8Fc2l1Ru8bmkK9gIuVT4+1YvROWWd2vwFUhlehQO3D7mbI7rZo/dUjvdrbcnDuKsAhQPBk4r
n+zbiV5IoIWJQEgBL92SVUwt7jZ3978Oyjkz4YQWhTSH916pOgyjpvph1X3t6HbFJ1oVHOR7M6Pq
uWSnOaIVfiX4egUKf6Ca4uFkjM11/8I0vhSCKzzOJau1whuYL5mut1gvmCxqKvUWr0RB6q3Zoppq
rLQZn3JRQSs9SYImnRDTrgn5E+2gvxTuzv+1JjeJ+08X7m+C7muF9P2kdZXvMzalGdzNuVDw8i23
165VEaRhU9GM15oLvj7EVDwa3lh0Owm78e6HJ7sdXQW7G4x3bxhsphvJNBBRlgp01l54M1+XJUii
2C+Y9TogpTB6TYdSVgKFwQy9k2IJxgBWQ6czfSxi5ERJ+pIi+kHf9cxn72I6sCJaEa2IVsRjETEx
74ihEXHydnTx+eLjUyY+fOIy5Dfi/fuH1YlLZU3RGcpFASjyzFUwj6Wi14DOhZyzooDqudjoEC+0
aeDbF1rLt+Xb8n10fEfeEfEd+YfhO7R8W74t35bvo+I79Bw/9Q72f4Q5w8CKaEW0IloRj0fEIO4f
UsTYimhFtCJaEY9FRN9Jo8EBRYwTK6IV0YpoRfwvRfwNUEsDBBQAAgAIAE9/BknKNSjPCQEAAI8C
AAAaABwAcHl3ZWJzb2NrZXQud3MubG9nLW91dC50eHRVVAkAA5Zrplcaa6ZXdXgLAAEE9QEAAARQ
AAAAtZDLbsIwEEX3lvIP2Ve0cV9KI2UBhJCGV8CkQezAcW0LbCeOkxT+p//Z57KVqFDvbjR3dO7c
aLlMruAltKEDbdRygxmX1E60MgqrfWWBtKB6kxPPbsm2UnhHjAX6SkqCDVfSs7/3FkAEdzKyRZ+e
ThdjUhjPTuAwvMk0Yl1Wpzl9Nu463Ym4FJHrW+DVs4AFQPTfKeYbuKzjQ7wqRwNnf9/yB6wW+WDM
XOr/drN6l2G84lWrlaQf4xlhf2YEaTOiuloFImgivI5D5ziJjKRIzP2TYOcWo2cvQwaL8YWZoKRX
HEdZv+mxpxmZ3vonfvsHWhvcSdVoVB9wKIJF/nhdZlMh9mE5+aK9AVBLAwQKAAAAAAAOfwZJAAAA
AAAAAAAAAAAAGwAcAHB5d2Vic29ja2V0Lndzcy5sb2ctZXJyLnR4dFVUCQADG2umVxtrpld1eAsA
AQT1AQAABFAAAABQSwMECgAAAAAADn8GSQAAAAAAAAAAAAAAABsAHABweXdlYnNvY2tldC53c3Mu
bG9nLW91dC50eHRVVAkAAxtrplcba6ZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAFaBBklFJh05
0ScAAMuqAAAMABwAcmVzdWx0cy5odG1sVVQJAANzbqZXKGqmV3V4CwABBPUBAAAEUAAAAM19+Xfb
yJHw7/4r2nISkBEPyTPOTkSJfo7GjrXr60nyJvk0Wj2QBEWMQIILgDoy0f/+VVXfB0BSdt7b2axt
At3V1dXVdXWh+vD5z5+Pz//x5S2bVfNs+OywrB6yZPhslE8e2G/PGPw3j4vrdHHA9gb0c5ovqu40
nqfZwwF7n2S3SZWO4w4r40XZLZMinRrtyvSfyQHb319Wg2ePzzjUIfujBbmbJdPqgP24vB+YT6t8
KR5Cx9m+6GJC/RGhuj32e6+SOfVZ2qOM8qrK5zCN3g+iQVUcLPKq1SuScpVVZbfI79qsmohud7O0
SrrlMh7DWIv8roiXTb0OpmlRVt182q0elkkYRjGPMw5jQjDsPm3RqUruq25VADmn0OOAZfldUozj
MhFdRbNlPJmki2uY8fJe0amaHSTzZfXQQYzoX27rPdFOPO/eJaObtOquYOVg9bJkXCGmi4RTtjvP
/xl6ByB6Y1iKBFYD/47TRVJIegOxZ0l6PavkaD2YrCTJOM/y4oBdF/GDxycl0CdLCt7HoK/oOorH
N9dFvlpMugIK0ddvnk6LeJ50mP1wfi1XJZ0AndhPe3uS5SS6f+KPHHgXk7iKu8n9Ml5MksnRzjTO
ymTnUkCbpOUyix8Myryo8jwbxZIey7xMqzSHHTRN75MJH5F49aUcv+DDq9/EAnGWXkMnesdxmmZ5
XMEqdgGTJHNXVm0gn07F9ShuvXz1qsP0H3u9P7dF+7yYJAVnpDLP0gkrU9jWhfm2W8STdFXqHdnj
9OiOVrCtFutWyCA7CAOH6vtq3j4mmk8UndNFBtzWHWX5+GZgSyj2A3Tck5JKE75IMiDcrUBkvCpK
xG2STGNYY8HNq6IAbra5tMDlMt+GZ80p5PaxmnZxST2GiEcwy5UkEPFEV8gnfMAF477c2yQ9gQni
61rWozbU5DqZhNty8nEUSxhymUy6xWqxQL5K4iJ76M6TsoyvE2t2B0RaviYvJnumLrgTyzjKs8na
pVLc+oO90Twp0gCjiUskK/xYC94RDuYbJSHkCGKasBdQx2VySwLV+EbPl7iO5QbySTYF4i5Wzihq
HgFtJneGottLKe05hPtuOYsn+R1/If//xU8//TSw5DvpE8F1OeijFDRD72XpixvkuUEjmwph1SBu
6qadxSMlttT6ioXFtZqlk0myMEm0zFNQMkU3uYXdV5qaSUxCqRgTtiCWMCx+kIjWcKurgOpmJYUi
jrYESZ51/5nnc49x68X9nrmr9yyh+Oc//d7m3/09b+X1I0U7ubrAB+4bVNzqcT0Z66cZkP0v9zYR
1CZTgixmr6ANKaA9UDr8f73/eNVuIKS2EI0JdqdZcg8jGoaJ99RHa5TFrpZQjJvDPEGlApqc8daz
cxjdXgmyAaRoOgep2cAPthYKjy6V5N7e720l+aM2TWqGGxoCrFHFhPiQAwMdB/QjbpOUxw08h81B
AxVxydXlC6FiQK2V1WZbQNrfPzpGj/otpv5KzhztSPHsR22qbWrcSA6rw3TIZi9dBwf+70c0IPyO
pWdGI1sPQv6RXLD/kFpcLnQXtmU5LvKMfIDDvvC0uMfFUjAsVwuwGcDKhkHp4c5QtYJm4yJdVsNn
6ZS17tIFbK8eYnYKqjsp2kKOy9+9yWq+fFOeg2BvAR2e3YI1en1VVjEywnS1GOPysOssH8XZGT5t
tZ/xGSL456Kp9EjwP/GIHRnPyFICnpidI4kO2MVlx3/3uZrhlnTfAXVvHr7EZVnTdxaX76tqKd6S
ye01OEGmfRen2Qp0eV0jpEFjm3lalrCmp9zg9zEp5IvfHu0X5SxfZZPz/Po6SwgVaFMVKwf8FMYG
8DXTJOb6W1rNzirYeQE6we5L8lVV011zjEVK1ebxmf6zSKpVsdBsADyuOOHNzz9fnb49+/rh/KyV
LparSrKDxSLSKQImoEaCjwVjShZlZTEGJ2mVZVeife/XMl8QMztNhxoD0Ftp9fYePMoSfraQLhIH
ZF5g+OQexsXnoOvL6gQffJ62ol4k3BjkXNHsiHX3TeYVU7/A3h22s3M58OlCL3vlalRWKAFRWxG0
doc5b/ggu2y/fWlTEd8vw3Po99k5+ON5ERcPKBU7DBgxhxHYOTiLZf+M6FH2udRdPvRBi8OyXxF/
9EFsAewcneOyj48EZa/uClBNRW8JDj9ayezPr3pyuHcnf//49oCdgpMzrvICRD+Lb3NQiQBsukKO
h5lPExD54wRfgnye0UwZeC1sWeRjcAPYAmzlsqfoG1qli/3LXpYsrqH7kL1qu0THNgOT0EEYew4p
53E1niXlGUUd8qK1yCdgs5fipyms8E1PNPcGN1+2VG8QiFZvTvSP9pBhWMGm9ZDBStkIrN/OhGkS
ZhmjI/p5ev6wTGqoAvYKKBR6CTuG4PNen+Cf5rZANNcQuu2IQoVyYActVly1aWSLZA7aj2BK5Bx0
erzJMaA84e1sCNO8eBuPZ/TqQ4q7dwbsmSVqsm8KMDx7wK5VjkG0nujQAxspC/Ry8cNddEIeYQvE
lrFbxfZZlQmLV5M0Z1V8XSI67M3Xn08+c8H9Wsknvl1JAJ8IUQXweqmUUh/0eymvsBtuLy29PCDP
XUGGfVCnFfHYHQGMs7Fgz15eXEdt3ntg9V3Clk8ROQnkNXM79nu9Xj9iByyKdF/EE3qJ7rs0shaI
Ht67zJxwPxLyQUz8kSWghJ1ZoUz/GcwFk3qWnO/C4FX1IKmnaWb1I4JZPLsesAlSTNSdnwkCBb/k
frWQwB2feNeWN0BvucDlEFoJKM5DEERjMNkjQ2hIMLB09EpPBaCyXXj6GoPCcXVU3VeRJVajw0l6
y8YwcnnkhjaGxjtylIcRTIPmCkt12Ie3w0N8JMeHp1yNR3yx8QEqcKfNkHeN7F1VoUUEdCObqMV5
Ru6sLZHd4W49eSdoyO2IEQ/R1eFN4gW8BQOIRmMUquVDEvKKfop1aR7QvQH35C0ZVTGFLlogCucg
rUxrhIf2PqSLG1hw8V5vY/22RyiqFfUjgsYC2zA1iP9dJcWDEs9RLwTE4CCjJ7475kF6ZL5o1xvN
nqfqKdgbd6nqAM5WFi/LpL6LScZ1rQUt65BFXAcGtUGEawv9NL9DUWTqQQ2nA/IMY6BR2yOcEdE3
TUYfuqbSagn8hJOgyD+3gv32He5VOCQI9S2wcVrKh2pTgC9XJtWbCsQNrGvSiqwTh8jqwzHn0Inn
z8V2OwdPoWg5WMTLJfj0788/fhCaHY/5PPMpXZRJUb2Z/BqPgajYWtOgpkErGiUgipK3C8SPoAa4
RnSGXY19UIBhSxvFZlY0dl2xbuELU7XyducUND8iEmurYyPeoq6bcJEGtkAtgez7y+rl3v4Pgodr
uZy3b2RFQ0tuyozoghoajUtc01zT1kdyxyc8yccrlGG9cZHgGFyitQyK8qaGPINJmqQYmECPkyxr
gjoxoGLbHoiLM5iWWCeL5G/AjKMewoYYaJ3Lx0e6lrU9ZZQfNsiNyR1o/5hqCiHQLpYx4YK1yO+E
53sD+OvQHE7iwtLdXdc8y7gEN1pfpJe2FcbfOXZMSGKT3gOD0Ym5hJDHVR8E4hb4ytLHNNC1L224
gozaBus82pvZAmqZzgRzBgCkJsL/TNHD17kjerUHig2FCSXYi3cRzgDv05ZRcL0lnVa4TcSwoS3C
W6htsZX0rG9niCVYjf9Oy3SUJW8sU8TYAA1CxD1cRjR3LlnPMmtMffW8ZjyTScZZEhcnGPK/jbOW
HcOxuEG2MRZ9g9boVa7kQYkvY4w44gYjG2hXRiittTVKoEHVlE1IHfZyb29PmeyWdiwfFuMW/uyw
uLgu5bICqHMed2vJti1AlOEPZL/soYUEEJ0G7LGDEXuHeW75IpEL1MqX1ZWycE3u0RHpI2Y1Yv/6
l2Igvfr5Ins4m+V3X1XgT8Y2W20vtKBghUQqbiWeySIhtaOQCt8UVhSe/lul/EorxrzVRMIbqXYe
rMZIrptbA/gaSL79Aq0tEybsLqCkDhEmpHU6DLSM5QsYegf0EfybKyAtcYmdfXuqwy4MIKCOLmvM
9f87kwg5EGunwQPyX8sEQxs2y4mVfh6MZ/fMYOvVJKW99zzLxzQuCJwzHgdo62jLNM2Sg36fu/V7
NhpGOOQvcZl8iauZRcmReKh3dQhx164oEqR5jsQMT0I20HJTDoTG2qyqloCwGyUKNN490mO9Zq2o
D0TPi4p8f/mijbGL/gj0F/gFNUAiGGy1uOlbkSAzAhTCc8P1ATe+b4c/NFEtdx56ID2tWLyKQcQi
hEBHg2S3oQ3Dgx7BRcToB0bIKYoQGb8O+/HwsEQTlkOkxJt8Mc7S8Q2e6+HvVjVLy/bOkIFz8Kc/
7x/2sb0bfxBN8Q+TZTiDvEOolp2K+H2Kb9PrGAQWpfvgk5blI+FT7RZ3DFjtMLHwOIpv7L+Q1AsT
z5itnRSlph2IpQgS1HYmATvcFbSRJBKE1gvp4/1/FedQvFnN4wuZ3LAiqyn9LTIqy1pGNZwZg1U1
KAzWESziUC8YZrcULCwHlWzMHI5MS6GY3wr12pJ6FsyfcbWKM+ucrpTNLJ8EhRxvTIGws/86+RK5
Ak6CpYg+Vxn0u0cHRq2ImXFa7MAByub8V7BxyJszOtd5c/Y4/x1nq0SNQx0tx84IwOlpKIVhwBCR
YPaHP1h98b+aztG7NycfZAQZdJPXj5nwicLnb/9+HsEQzH1x8vHNX9/u1r6mww1wAtveGNbKGiKo
5phZN3fOr/jB4l+1nH8HLhEy5ufRr9DeZCaSrvzMl7/s2eclxgtwiq5KOkJv17kN9kl7b7kqZ+a4
wjW0O5lZCJ52sl6CxUDHxGrNUOFq++CZzUz2rPizgR1LMraRbqmewnDRlzdnZ5GmRlh1rsqkvEoM
eXaFposmkgHcWuENtr0RdZazAg76eHJ2dvLpr9b21udp8/gmARlVJKyaxRX6/Zh8qrIUiZTlMoU/
QfsyELhdsa+r+4oh5riZTbi8yx2sKxMjy4SNXg0j2PkeAT5o8Gr1Cp7nN8mirJc7PARZlskEeY48
0c/g8giinixOk6rQYotDu9i7JBI6u1O83OcvaQNHrljVbVQ3zYrEKOI8EDmnVWMGU3absLKSRQz2
/QTBrZ2GZavaoO00n+2I7TAWzQLxUZvguXzqHmpbLTjBaN6bT1tsZ7EzQGVS1gV9puGqCBtoICOn
YdaPW8z/+PTN2fuontQ6E+ubyHx+8vHt56/nDQOZKUkbD6WEm8MfRnZUAJZ/NCejQ6bNIWOgTX58
MJ6meuPZ4joIqmHU6OlybMJOrmPxpCJOyLt4YWL6ZODIQNBqwRXgfeUFjZUQF1N12NXvA1qfLz/v
4Jg0+KyHR8ACk6bYMdqQUmDjobcbSt4AFQf7b0VGGZEOOoFgICJyqqP2zsE1RXqreWaF9kWbjjkQ
Hsx36KyXfiMez+zoudNTKzjsx3+t7zVJp1PZB/9tHQKH5RzaSDyJ4mqJWT/aCKCJ7dbMjHfhA2JD
HJE/Y1sMfIdtNxzxzhrrzhpFmJf+MSLxg1DqeHBgCJIOM70tYb0w92AxijyDRqtQrkTa4YwchK4S
2jAS7We4GfYrJszVxbbdpFblRDnbPqiZUDfWvNITeX4UmoU4hXZWpCkG8sXj/C4YVpRN1pOupiJB
Bw8Lp0w2MH2z8Mj2CIZEMXbIGuHyrYQ6qiXU9yBWHY14PqZLoEdvZjbb+JnIm+Fs44b7rFTbTp49
OpiESL0JcEsQW/JxsDWsdfxgGDfmNsX52e4UzfEKn18tk2KsTlq2oZhEg6C3cFnpX6B8ft+O2r7K
qRUx2nF6LuIDtnN2JRyXK8LaOCPZilpLyvvFpq5IBThO7iXY7ukCnHXMUhjlcTH5evoBvHV+oqVx
K12fHVMugdA7O/WH6UZvZSrt7qbWaaCEtGuuGRpBIgxgycQUqeZDZV3m5AOaYHc6O5YpLANuIlhu
eKVdqcuMRMmJJEvZV6S6Ug9pI72AnXkH5uPpalEeoST/A7kZR8gmsNHzSfL19OQ4ny/zBaZGSNxc
yxd9ktP8zg6TWOECocIOeZT3G2MCgqMimYSH2LbCgYLXxk6mnFEyu3aiYJDmW5SVj5zUJqIrkVee
CYg2w8OqGEq1Lh8eVhMrpBwMHZv6mkdGsZcRxzFCqUehxH8TwMAf38kcaogK1coLihIEVJRnUZhf
wHiZIgIr1/jV02t7HlwIGRE39LHZWC/cxbemXuBZ16YA3VDOCTiColtDMe1qJAoCkQbodgLcDUqE
hTkh2H6KOSQnStnpWqSvHxKn9aQRBVnssTaMjPV/KXf7hts95jliW1rtKk5mJsQQKCdapr9IMUTH
JmPC7GAzJ2U/cmw3J87WdqUKCggpWmggV2psK48xBuWyGKuXh3JswfjfOnr9AA18zw8oXgcj1ko5
WGiZwA9j41Cr2fi40CNcco0znIHezIsHOokNjtAHXQB/oIIc2mfHvuXDPyKhs1Tx5UiHsnOqIkn4
v/zoAL4TSTz0T1i+MMHJBDCixFKLaLAU3pcTUObTTfKAH4whcNcDXSR3ShkJEK9ZS+e8EzdDfzy3
h79sKSEtaAn8Alpchg7CNNFJjYiWA8+8MnQfpopJ3AZOEiPRtSYu6mceBtdEIdHRwwQzvaA3fYh6
jEFSJ34oFi68WDn2uhrzboONFuTbyGUtT02Ul6ZSE3q15w3qX2dYUWP3dJme9cp8nqhcN644MOFN
ps3woy19pMceg5mSuDgZ7MPjfLWoNJHlR1xN0VWRg0HfaENnTFRQqXf0xGV5M3HOyneg1uSQ3bon
xjjIsexX2rtgs4Q0uWYaCgz/1Dw7Lx/tadAjM+uWZu8EVW2QKpGauKXtunzXCHiWxJOkcBPwK3EM
amU2WrTX/eQC6Fg5sQCBMJaWc6SztFa2i22u1iS8CLBWaktgetK/ek9ovgcHTWDsZVzM9knX8bf0
OVTLTABxuFVmfbQPmFJiL3aMXKBuDAaBSjKRVBaZJZQsBA246sKRB0Gs5Sw5Uh3uFp6or0jkRi4q
YyPHHTYyNnJMUqaHqW1Zgn4nLF5rJNycx7bh34hYN32oRVqfEo89WUJuHMeDDtv4GXyXHkX0sZtO
mXG9RKx5wD8o4/3xgzLzk6361SIzgropNa+PmOPJhIF81MeEU76PMctxNSdVgNSmNpRhgOtYogzY
xj4yPtnj2OPRC52UlnL2XrAbcMYJgJk4G+LIYI3M6IeLKn/R5609O8AJozR+jWDrIGwdOGaqz7Jw
sCdpY4vNp9mUFlwrzFATZ1jLZg1RCGswCgkYLvgWy2jCcfPRTHHuwSMbokuam6c4rAUdTmdr0Bou
XnUAAquqHBf3lMGYgU3v4MiG8xiqg4BuJIci3Uj+K1pHvA0Xw3E3nroi7Klz47Cy/FpOjx4weLB2
hiE0fvv34rHtwsXzZZaohaNfgQMYd2IiUaBxalpuowEG5vQ4W00SWfZEeLN9CqnL6iOwdDTWXSJe
Qz/MGaKUIdkIpaUEwqVkDevYca8QBawgfnCLPN96k+tt9+/xet2xPNeXx/PMJqRO1UfRjWetVU4J
iqq+gmM+uTUZSjB7ErsigxvhLtJ5i39t78DiD0GxLLN4nLT6/3PxS/nLfbx3ufsv9a/f9THBWXyX
AQz1nyusYsJrl2DtVWIGDLazebyIr+kzxB7VRDrHSZ+ByURuxG+PQD3jUe8KOt7BIsCERHy9vL1m
VJLpaIfXpqKqbKLmE/57Z3i4zLOHa0x1xKproNf2OntsH/941dnf25HdQSFmBy/G4zEVxrm9pqWz
BsdSV99j9H0afh/H32Z4tCSTybFMDz7SRrs0QGNEzFkvekbWHZl2uK68uemTtFUDak7rZo3N3Ulu
+B3Lb04tHMDdf2+Z7uQ4QHf+tOnrO93K/K5OP3UDtyZUCmf4zXT685usgLcPp8ktuFqUSam7889n
kf17wqkrW1EhWrrimQ61XHB+Wm4Quqi7UgvbMx9qIYExHQYTPAg2QNgeaPjF4NnGM/HX7MkEeHQ+
PA3P2R7Q5U97dtqbRQlLX5tyX8MNtYjXNV84X/BOlzaJHgPbEmCENwN+YSs5xfHbCYi5La6TSnyS
/ZeHE1pl/lGqUFvGt9IEmo6OhNzXAENTmSmvX+7JY+55HUlQKnasN5P5XTef3WaD8QCIEY13XGDp
AZs5w5jBCisPu7PKWbla4udNLEvu03F+XcTLWTomrEltLGC57K8OznlaXh0/4IB6zk4AarSu86im
s5VKzZUSxzH5X4z232ICf8lGD9ybIyffk2FiFfCkhKNxxPEJfvPAAy0UkWya6Z6zG8Uk1/cd+X3p
TE33PdKAfLEndtTeIFSfSgM5NJB5jWcTqlRowJorgkJWwwSSHYoVfM0QlFldKfClfLCfiYMKuATL
DSArm569FRcRG8L8FB47gHPvSytrBxpBVXzyaTUf2TpUbcktZEWNFLgwxxBRB0+WWTLAwZzH+Y8x
amaintThCy5KXACuWqtr+U4xL1WKB9ELZipvhR81aLRKNrBqrAHspA5tRIT0VL0NIeWutBwVoNes
wcI8YLW278BRlrqkyxFrMBpNxaTwMWcZ1GxBdUa0x3l9wWz9/5fnc22yG48wFe7u8+LnJKOPwnjw
2Hx/hcV73/GSiEfsT6I26g33Af+GRjU8/gkLnBvP35OFje3xBX9D8CZ2PwvMH1nNuAMfgBrAHrAB
hD8pSvw7Nk5FFFeuiqyu5EBdjRbj8ESfP1jVX6gIslOD2EqQSSuyN2BwXoGx1f+l27r4n1+6l39s
/4LpaH2dCWvU0cN6XxvhRU1tnOhRZL42BaQDEwUyFgNqEaZtb7ZmVwLmbs/UJfgGSNt9bOzDdZ2j
0KhcIvAc+ZYJWiTHA9Gth+jz9e4kl/qsC+7Y8j7yu8wUXwa4ta4Tr8KNM3LqcEdBGph05qmNTSth
dzaXxC1UQRLD2iV8WYJbxFIplSgaZZeaErpFf0o9cLLvqlDBKLsoFWH/czqdNlctii8wJPS7ox3c
JjuXXqGp77ODQ8XMXW6Tx0Duc6sIiyha583FmIiRXKznQyE0F5B7gqHSI7yWTR9/DIwD0RAbrZGe
RuqEnbnc/p6Qjczctp9mFzIKbf4Jm4dPQ8uGjEm2VM9JWqiKy7wKTGNnL1oDTYoY019FXSXvlbkD
nY3tft8l87aOw6fhLV4uc+Bvkb9grfjS7w7MQ6+Ao8DAhKmdAiBHlpI4wzr5WNfTgSjEaZ+9ZF17
0iKV/O+gvn1R264Vm1W+DA0jRHD9OP9wx+HiWQ8UovwbyoTTxY22yNTY5g4ETOPwxvaZgdv5H/NV
mXxeVUG5TJ919ugKhWRyTpKYvgW1H/XMAqon707ffHwbsPPlgfHJ1O3P0pLxyk53SXSbsDmiNKGD
hXxKJ8aKMs3C2I05BmWtIQaN2lAaW4phmfurnmwfoalNN6bpZq3AXDYXFa7adtUwWfequY+RVFin
JGumXLMa34WQTmVAU9ErzEwVqGoYmqDYa+3Tiz7gGdXO0gdgZKa6eGBZIedZUIy5EegAd9RwyJpv
1zneH0RlI8NjbhaHYfFGVB1T47+DbLJhk9hsg9hyHpPUrIf6DxPqP3yoICQDQLmMNJjyuaaJQ8oa
X9GNgTWyPy82F6oQ58WpmuzPVuJ+s9TBm07aoZhWMGi1MfCaT7EbVLXaf/Fk8hZvDcKIQ4JwI6IG
Ml5ky3ZHGumquOtgARHrQYE+0JD4mZ2ZAqZO7ay8MNhjiaVG5NLYzcStbvhQVgeXIT0/z+wadITI
f8MRH90xOc7/lTzQFC1ZfGuUjyY9hg9686SKoTkKBf6gnKXTynoyrooMHtTIzPIuBbeatXh1st60
yOfHs7g4Rp9W9Bc/LYGCV0myKI0OLDazJ3PFL6o5z9/hDZWUYuew5QjY7WbgAP11M6CfwPPeGObN
ZjC/YGkyYJiN4Wabwf0QbzH/pBkmLxt1rLluI6DjZqCyUt62YKtmsLzawrZAp1sCfcc3VgPsR3+n
+cwZMmVxo7n9ksqc0J5hjNSM4My/HhXJJiFMZFVgL3XWMBWaMc0Mb4++aPx+iMu9uBkJfYlpf4yy
qRRR6ULN814z+O53pYQpQf6t1HBFyvchxvdhCwOsiOpszc4iDkdNLpqRvlyDwlvzTgQPETFQ8wxa
7Q1vUPAR8cR1CIlA9fpN5tNqh8nvC/PQoMHrFb5hWE8uhwYNlEb8nkMKVVDHcZXmyHUL3lgaU8Lp
8I9a9C0dzpGaMPmitsoqE2mK5/yAXdqf/JODRVSxm0V+x+LFQzXDu7XiEToKBAWNM3ZSiaZYAW8U
j7IHNqaPAjA/MWeaAgVDqGAGE5zes/A8rKwT+E2V0a0PIBzaiaCvauvtClUENWrz4z08HxnYX/0a
4J0P9TlMJ4dG0bDp+w1pV19ILC8Bzf2am4JCQ8lcn8BoE5helWw0qOUq2x34se07o1tQdvrN6njZ
wACJPMrvm87arXsorfCCD8cNnhsttjyoEnc0er17KW7RKHyrZrSmr3X8YN9mvq6reeIcHc5eDqW8
IEof9uHJ4bLg92haFNuRFU7fTlKZ4woNzfz/+uB2CBUzi/47rKQRnXHcTJHSfpM88CK0FufK76qM
RzzxyUwBSJZxIbzkWqTAx+4ukju8PhBwApcxGd/wwg6/LOhjChZ5Q4m5WotiYfJrni5aaniB0kZ0
MSNpIjAuLjV2xxDmMCBKaOKdxlHQvrPMKFdwkh2yjaWuOrFDtifrBPIHwyNmWupeGXtRNVUHPC20
NjSYVExQvzJCuPphQEKKt+p7wbXREDU10eHJCIfxIiXhIiVzJSlzo95aX2OsGMHObYwGEqu6X0Ow
usjvTsVXVap5cxAVTAjZKS3xu2Ee5ATxlBeTkrXSXtJTd0SjTXCbJneYmog1u3P82uFXzGu/ixdk
MeBnblgnFY+N4CeeTYhJiVuG1TXMvcAJniTjkr4A4Wj15L32Nq3qP4w9nsWLBpPN5pbaiL7BADp8
G2LuwPFNvrKHGSVj1C78Rm26biapTNIovuxtdBEFnjCFWVcbirqQ1RPdYCs1FdYhny9XntHi4u9d
OVQnsjba51xqyaRck/hGEKYhjAsqClRqWUYd1hQUNQK5+tOPJvrbjl69CtP3ZovERK3IBs7n8IiP
HkpWASFGVuN9XmLjv/G7dcv4VqXYqPuFHDxrbn4Lz2aTaZDii9pOFn0jq+pjq0gX3fiNCeV5wFA/
DtijvNnTmI/71X7If1orBFo6Q88kn4zPWyS9wsIJePjmVH6my+bBr4zcDrgGdVJG9Gku3iqukcRL
q80kAUwZERjWF3QVA2xU0ZW31Z2sj21xtAv+AqzoS9VKs6o+n6Fs1TNAn/IDkuqkSuYtj4gd9p9n
nz/1+DdS6fShhUMIj9VqTHcW1VEQb+dGIWAOeV03pCmlsaN/Qx0QnPeyZFDNgaRYAZoGWItl0iKg
7npMUF/S5NwSurikDeZtOnFKIonbza28c3ykDN8jvk6wQOZ6hKbm73nz/eYZFS8Es3Th/UoyqVEj
gaMMe5kjmi/GQlz5ZTi4fOOFIL+WySdh16+XbBt6vMGBeMXJ7WSofX9dmJpuG+8+FD58k3PDo0xd
WcvS3mnramjiMa/xMBgL4a9MrtxgwckNpZogL0RNLp5I32a6WsiFU97uss28rEC6MeQ2KarzXNLq
vaiqo5hH1Clya72Kwkd1lYWbyoA+tu2rNf5Ns03n1xdlMd5sulZuYLvunukNkK1LWDTG/pQv3OE1
HbekjVuWvHkYo6zHqMwzsBLtG2QaV1lc1Wj3VBfGhNb3cbvLEmHvndq5LdbF7wIZfuGsui6b6vP/
lUo4BG62D6XXsANx/7x9gdkmjPFONHdQ0l9vILqOglkVmChXjzW9wKRrjhZlTdoaRyfA27mkv4va
wXSeOjqGygiYsHU26e+iduibLnmJe4DOdXcmm0Hh2g836xDu5cBnMjwUXAj3c3uqQ9NuLtO+fh8+
ZZlVljEt4kaJxRtN28YoVC/eq4dM16zV9GqqfPwYuC1BWCMfwbCw9CdZGg1607RIJHz8txXBbblP
8Jo58rxFPxWbM5+G7AjK9Pk5v3PyPZ/XZd29sPHjiaAikS0V5RhEC868fqi3ecZ2pNpDf11G0wSm
grdi25Mz3F9dcMu4/4I+hpJFnuijlA5YvhZBzHo/XngxMj+/WdBHd/nUd9gom9wIkvHawu/tRP/N
ig0ZBzMmGKyrYZYsFp8lmkLxuXxuFPmxpWH9BHZ3PTdiJr8A5PWq7NtyvaJVRmUmUd/ryK9TJWhp
tDCqBltFqfj3Q0bhKlGbis4isE864cU6VPmnwqpzFVn1oNw3BAVlr4xtdDlKO0Pxu74XT8Z2u/F0
eqvzN9cINaiEkxE1SK1qVnVlrgKExrZblEURlcgC9VDsqaW8Kg1dSVRTosVBQuBZ1iIqCqtYdbpk
1RRZOs7eGoFSKwHPBznKEtj4lOf51VaqxCbuVzriG7zam9jxvZTv9MO9joVf3skPvU9laZ0in1Px
Do2Uc8CDc7fO0fgWce1FEJgA4UtsuI3W/K3Sgfxiy9DtcbqdXeLTr2aHFenXcHqKV0gXq6Ulj2SZ
nJ3DpRATEbAZzG+Ct5ct0KVJ4iJ7ABVRlmjIDxFbXKzkPkWGp7e9w/5yuFOHgHF9kyvf7eJeQIa6
nqAa+eEhXa7Gi5ZOVBEom+cHjYjwCqNPQYR6wpD0NxOLgTjUFkiS+0oA91Vi/ZVRHS30jIljCyzu
AKzcp+8F+rxINtXxVgWsnzq+fX9cGINZPAFLUpcglFWpWir5Y5HctREXyyVuWBXr0q0t18Xsa7MI
vqHPW6jceahcVz1Czn2K2+Jkd+945OPl4RC35cqoF/dUprHuoTMW7R2+EJVNW5JxZgmb4lkNg93N
wIgTV+AxusIVL7xDfAJ65KmVvsF+XX+L3JYEDoBQRFZ8WeVEOQaOjpgj3RFildyrnZR5/6XpT+mi
Yssh3qQxYfEYpTYWoTMKpPKHV6JU3c7Q/s01+NIybLhxI4ECM4CRasOkZxqk9VNBtKzHWodgDi5d
V6SOyJQo4dTNlCYXGlwRaNOCGSa5Ni6y4TsbVE8WD93CNTO0w6FOAoNlQVp7rnX+9Kqelsu21Yld
R36/7+d9yOSOBhydey5spOrjw75d7Z26RWsHtq7sciMvtWOHrPPGwTcnrxP23oKyj37kzz8eDJwY
0Em7tNj8oyceKzzsl+MiXVbDZ4f0hX2+yPIY/BTbEtwZaiMWvTlZHlbsRR0LFA1VO3KU8jwbxYWs
vbxjJ5m5PUSjRV4lO8OvZUKSP+2wXzvshuR+huXYMcdCZnyCSw7/G+MTnvlLzWQ+bod+TUmsZvE1
lw96SCmlfo1vY06Jg9s8ncCUdW1oDvVNllmJtkAUORyvE70dUIlfAKx8tRVgoLQZX3GvT7eiTjtD
0dSGLhfMjLuoVTMCLsaSUT9i5OEhP/dDAL4o2WFYdRJmjYc9o/wewIqzPXl0BiM0JwLsDKlGmIat
/WWOwBqkrA24OT6h87SdoTjm4sAaEOAe3NEOMrLM6GPpApQFmFP5lFEtTGJmkZmXyIQ6bv/sWGQ1
0gK3nYB18sg3loGPGhSFymGfhjQYQ+8Z8c9nildMlbwzVK/7VNf02f8HUEsDBAoAAAAAAIp+BkkA
AAAAAAAAAAAAAAAIABwAcmV0cmllcy9VVAkAAyRqpld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBAoA
AAAAAIp+BkkAAAAAAAAAAAAAAAANABwAcmV0cmllcy9odHRwL1VUCQADI2qmV3Vupld1eAsAAQT1
AQAABFAAAABQSwMECgAAAAAAin4GSQAAAAAAAAAAAAAAABMAHAByZXRyaWVzL2h0dHAvdGVzdHMv
VVQJAAMjaqZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQKAAAAAACKfgZJAAAAAAAAAAAAAAAAGQAc
AHJldHJpZXMvaHR0cC90ZXN0cy9tZWRpYS9VVAkAAyNqpld1bqZXdXgLAAEE9QEAAARQAAAAUEsD
BAoAAAAAAIp+BkkAAAAAAAAAAAAAAAAdABwAcmV0cmllcy9odHRwL3Rlc3RzL21lZGlhL2hscy9V
VAkAAyNqpld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAIp+BklkbsgxCgEAANIDAABCABwA
cmV0cmllcy9odHRwL3Rlc3RzL21lZGlhL2hscy92aWRlby1jb250cm9scy1saXZlLXN0cmVhbS1z
dGRlcnIudHh0VVQJAAMjaqZXI2qmV3V4CwABBPUBAAAEUAAAAO2QwUrDQBCG7z7F/wASsluStlEK
xYr0UFmIohA8pMkkXZruht0JfX03LYLiSVFPnmf2+76dQiRZIjMxj6SIX3Cd396px41aYMlMh57v
iY/W7TfWaLYuJx76DMYyPDFr02LoYc47OJyXrlDWtSPvoT06W5XdRfEnluXQAineXKCjF/E0Og3h
uHLUWzfiirkUcho61qaxiyw8b9vR4rl07KMo+gZqRduhDSwd6p407/KQpq0ZDRme1c3pO2RYc0f1
JcSHm6S/dpNDT63sS+fJQZFXzlZh/uBVuc9QVSDnrAvRUOsVRCzhd3boamwJYjJiYjS6I9imCV5M
pulXkeIdMvlMTGZy9l/5g5WvUEsDBAoAAAAAAIp+BkkAAAAAAAAAAAAAAAARABwAcmV0cmllcy9p
bXBvcnRlZC9VVAkAAyRqpld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAIp+BkkAAAAAAAAA
AAAAAAAVABwAcmV0cmllcy9pbXBvcnRlZC93M2MvVVQJAAMkaqZXdW6mV3V4CwABBPUBAAAEUAAA
AFBLAwQKAAAAAACKfgZJAAAAAAAAAAAAAAAAKAAcAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9VVAkAAyRqpld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAIp+BkkA
AAAAAAAAAAAAAAAuABwAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL1VUCQADJGqmV3Vupld1eAsAAQT1AQAABFAAAABQSwMECgAAAAAAin4GSQAAAAAAAAAAAAAA
ADIAHAByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL1VU
CQADJGqmV3Vupld1eAsAAQT1AQAABFAAAABQSwMECgAAAAAAin4GSQAAAAAAAAAAAAAAADgAHABy
ZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL1VU
CQADJGqmV3Vupld1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAToEGScqlhqI8AQAAkAUAAFMAHABy
ZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21v
ZGUtc2FtZS1vcmlnaW4tYWN0dWFsLnR4dFVUCQADY26mVyRqpld1eAsAAQT1AQAABFAAAADVkk1O
wzAQhfc5xWzKitr9k4BKFapKy6ZQRNQDGMclluKMZU8F3J5JQaGli7YBFiiWE40y3zy/58niPl3M
p3A3TdPx7XQIyzKqlQFFZJwnIIQCVQbLxznkRD4OpSxQqyLHSMOrwaAvV4Z0LpW3MpiI66BNlIRe
0CtdV7+SxXK06W31x63ejFdN4ErF4NKGwm/m8F6T+PuTdaZxXdKoC6uAjjflDLxYymtpO8ouLzud
LWVPKlotHWamHbmxjcE+21Lk5AoBN+iULeM5+ICEGosIqszAY6AIbh0JnGKQSJLJiW6xpG7vQnT4
6X6XdMCs2qsawJUK8V+8Sh7GaQqzCgtC7B/3Q9DWBKhGwnbbIaVNmadd4uOFHp/1Ecy9RHZMDCaz
wWgS/u3r3jS0ucGkv0imoYxfD7O5HT/PP3kHUEsDBBQAAgAIAE6BBkm05CY3kgEAAE4GAABRABwA
cmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9t
b2RlLXNhbWUtb3JpZ2luLWRpZmYudHh0VVQJAANjbqZXY26mV3V4CwABBPUBAAAEUAAAAN2STW/b
MAyG7/kVvHgXV1Y+2rULUCzpku6wbh1qdD0rMjMLkExDopHu34/OCqPtDvsoMASDBEogpIevXlEp
BfoL+S5g0ivDRq/vSn2Hmw+OH5aLzvlK36BHk1B78406VoyJVcTUeU46Ikcn911oKTJWejezeocb
1XrDW4phfzzpLbKttWmd3pjkrA5UoUomoKLovrpG4X2LVgAF3/Moz/MDkmYsd8bvhS0WoCZHryHv
w2IxUu+uP5XXV2v4uC7L5fv1HG6bZLYIhhlDy8AEnkwFtzdXUDO3aa61J2t8TYnnb46PZ4/qi3Lq
ohXNTG1f721/lB0159nJRTY93ROy2TKbXsocOJLpSZLas2QVmsSBJ/sHokCyk9UrS13D5xPYRgoS
5LGwc1wPMp+oPDsbj3/pUlFz8AWsKBjXpCNoIzFZ8glMU0H/AwlClxiCEVAxyv+Vcy/37ADcgj/v
NBE1mZ4WYxmT56J+q9EGzwaMZHrQ/91nf+nbix07iC6T8XlZlnDZk6Eofn7xD02PikBfFUbfAVBL
AwQUAAIACABOgQZJbNqz00UBAACoBQAAVQAcAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi1leHBlY3RlZC50eHRV
VAkAA2NuplckaqZXdXgLAAEE9QEAAARQAAAA1ZLLTsMwEEX3+YrZhBW1+xSlUoVKH2wKRUT9AOO4
xFKcseypgL/HKSi0dEEaYIEcOdHIc+bmXk9Xd8lqOYfbeZJMbuYjWBdebBQIImUsASHkKFJYPywh
I7J+xHmOUuQZehpd9vs9vlEkMy6s5k553DqpPCe0jF7oqjxKGotxPLiOuxc7QtybxN1FeCpOqJSk
UNqxwjvQwl7xwvcHMUDiwexM4ragcQc2Dk3YhFHwrCmrZB6oHA7b7T2Vj8JryQ2mquVDYwudftIF
y8jkDGZohC78OViHhBJzD6JIwaIjD2brCYwIIBZF0xOdC5I63QvWDqvzVVIt4yrfKkyolKD/5Vt0
P0kSWJRYYOz4198F7U2AciTst32ntCnztMtdX2j93GswjxI5MNGpVDslidnXzzvU0OYGk/4imYYy
fj3M5nb8PP/oDVBLAwQUAAIACABOgQZJ6g5fvo4IAADaIAAAWQAcAHJldHJpZXMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi1w
cmV0dHktZGlmZi5odG1sVVQJAANjbqZXJGqmV3V4CwABBPUBAAAEUAAAAO1aaW/jRhL97l/RsOEY
CExSp0eHrWDGljdAJgeiZPNx0SSbYo9JtpbdtORJ9r9v9UWRFCk5O5sJAmQ8Y1F9VNfx6lU1Mbex
SJPF2W1McAgfKREYBTHOORF3V4WInMkVDHPxkpDF2Syh2dM1mj1TTgUJ0a9nCP4IshNOSAKWY0FZ
NkMZy8hcTfksD0nu+EwIls5Qf7NDITyTcH72nzMtzggJWMLyGbroDadqzn2kCXmgUWTmfRw8rXNW
ZKFjl0YT+VM9SJ/AWUJDdBGGoZ6LWCacCKc0eZmhlGWMb3BgFExxvqagcp+kqKeHNgyMU3bkJAGL
nolSKO43NB0Ohy3yOc64w0lOo8okpx+JOqN6qJOQSMxQzx3b8ZDyTYJBCM3AM0bDLQ1FDJt7vUuj
Hw5Dmq3LnVo3Exr5VI+OUZdmMSglyuUxeyZ5w6LxeDzvcjYh2g2ujMl7OIubzVHCMJiR03Us6pGT
q+7BfAy22KMYuJ4KMLHXMFlgPyFOQJKkZqWj5Na8tI3BOkfFUEJtm+PNXrMVCWTsOkGjNtch04SL
waz1OwCqt9npE5a7DYQX5INp5Bq58qNpYad6nIbEf5G/kVL1XcKCpx9wLlwwdRbRnAsniGkSdjpW
HreC/dfHhOUkhdBenzjPnGHdrwHn+HJJDXZjizpAi6ABThyc0DXkhmAtZuVEIv1rnIUJse4wcqQL
5feY6IDu8RwUOZehkWo3MxD7EJ3CRgzOLIGjk0epd0yLGs4P4bDOycu8AUx3fCpe2sXIFeykm90o
Z2nD2YYf5RnS698VqU9yQBOpokuPWsUPadSgdjqtEaBNlzYatJk8Go1a6aYa/ZJjpKCxTgGdBiXh
GxwYeLZBRKtbg9PQEFbFcGViK+HoItHpliMktclldko1jQMtmxjUWENquQqbHJ2tagr8qb6CHTnB
T44c0ArRFK9JLTIzNCgd7idYelEuDIAaQAdQxTyhpt37qExG007ujUi0JwAJK5BYlsdKNrdsDaOw
vhWCzbuXT8l0fqyml5IMy1T1MFnRXa7D8EAACknSvYNMT2rjfYlWxWbDcgGVNjdIBqemKckER196
cB4uRMy0v3U1ls0MoF4ATgMbKbVBremo/+UaqQwGSKjFls5uLLAl3eAkubcatK4e6FqW4p3TKO8p
9AVmaNAr607zaPD70XPKzC5TunZMm54u2xBdNp0t8Z+ocEQu0057QiuO3AGfV8wYGaMvuMCi4O8K
H2p4WQ9dmT2t6sgtgrHEx3l93h4dJURl6H4iZR/L0ZKchjqPTR8lH223IJ+7W8Iu5jjayu1hEdEd
0XIMH/fqJrlY9SA6zQ6r+JYCF+QNqJUyPzo0C8kOSOqIaftCWFGhzS5DRrXyNjEslkk1TcK2liY4
z2e7k4re7BXtaxDbIqS/KWXNc1nBzNdS4bIzqx1NoxynWsNGntTbiEqO3Hcw7aFvXqDXZFtT60kC
jSP0zK8oTDfTxz28TE3umFSOqM+VbWR42B7Xm2MjQ7vvEMOdLUFoeVYf89aSgr3q9KqzP9ka2biT
3LyxhHao5pEkqdx2eIp1L1/l3IzlMDzvYBljv2zBeNvh2g6b1722JQn2STLDEWTY9cF2Pa6EqIKc
gann6Dd0Pj8rC3GlfDd3Jxg6dBY54mVDWkWdd2pkFjauuDFJFEGWzSiWzWhHjbpICee28ej0c1tY
KtmxUkT9mlIIJQYaomfKCn5fjkAz+5Fk95Vi2VbnbcvRLDHV4iK5HFCrkGC53Xw3SDQkMrQ18FXa
GGhAj0OEzIlauTBtX0fTV62zfgFZlVV5x9b3kD7PIhYYH7JCSL6opp+fFKqSmCnASwS6QAXrW0Oq
xVJJgR7mp5jokzxTadegv7RBMCRgzterDdQ4eqZYcrL41mAClPVztoWAQycQY9hrmiIqXNkElXaM
xqaLL1sR892yg2xk5b9evYjaVzrNHj+lIdyytGEyQNxevlsqCvRhjONn8D14gDTqSvWmd1DqnL47
1C3T/uWHrf4tMbh4eHiopPTF5PHhcfzYyk/QXLajeLlctmk9I+kGGKoWfNOmNVa68Aia1jJ/OZ30
Joa3goTg/F+qPbBXATmirk2xXHLrmbdutzzI6QZimgd357EQGz7zPPwB79w1Y2vYtKFcQleNeQn1
uffh3wXJX7y+O3IH5osLraX7gZ8vQK6St0B1yQELiSNjSLaw7iuItAzm3WhS2QJKmReFPgtf4APy
AfTGnN9d2ZuAfF8Y9xfePyGewFneAxbYW/6y8n4h/jdUmI93BU1C70eou5gTD5AC7nQEAYaF63uR
CO7lROQU9tNUIpmE3nYYeEAfDuBKQLOfquXci4gIYg+c4PmY08BLpR0c+gaHAZCASaDPKXDiip0A
7ft1pSvvjK4OZ9Rdvmtc3vGRvsY0lsgLDqq/G9qvA+LJ7EL1cmDfcVwt+uBpmF/UVgEHVNd8kfl8
M29dCMX8anH//Xer798v0bfL1ertP5Yz9HPGcUQQFkKCV1IKgC5EP//4Hlk0gT04iYFQZtPRaFhx
KQSDFXkAYYBElC78Si6V7rq7hbvb4nL87nLw5taTz0rY5fDt5eAR/pYiYUQKhSElFj5BMPwuRcOz
Ea5FDt5cjh+0yC9wupkHkJjiro+Ut3RHuKUiLg2o6T+Z9HonIeHKl94uemApRIdfQxVggkGScgQt
EZJw4ygtuABWBEGu8TWAH4JsP7oxARR1GhBm0VE0HIk0ewVsPisaPj34f5FYV3j7amGmzdrfzR48
hiv7abCcBMrgFRgZdGPks9r8f2bM4Z/AmADC/uCN24OffhOEv5cwy5QpJcKIlPk3X/5xfDn807Hw
yaH/my3/Z7YcvQIho9ez5acpM36FMuPPpczNK5S56Vbmh7erFXqUCEOue4h+jc0K2JBEH/oUDDU+
1KUEmnz1Xxr+C1BLAwQUAAIACABOgQZJajTvMkEBAACeBQAAWgAcAHJldHJpZXMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi13
b3JrZXItYWN0dWFsLnR4dFVUCQADY26mVyRqpld1eAsAAQT1AQAABFAAAADVkstOwzAQRff5itmU
FbX7kiiVKhSVlk2hiKgfYByXWMQZy56q8Pc4BYU+Fk0DLFAsJxplzlzf68niIVnMp3A/TZL4bjqC
ZeHFSoEgUsYSEEKOIoXl0xwyIutHnOcoRZ6hp9H1YNDnK0Uy48Jq7pTHtZPKc0LL6I1uyl9JYzHe
9rb6cas3C6sihErJCKUtJbwDJ+wVKXx/sS4krgsad2Hl0IRNGAUbTVklbU/ZcNjp7Ch7Fl5LbjBV
bR8a2+j0iy7aG3SvyrGMTM7gFo3Qhb8E65BQYu5BFClYdOTBrD2BEYHHomhypmlBWbd3xTrh6R4q
O+FZZVkFCJUS8c8six7jJIFZSQfGjk/9qWtnEJSTYbftlOCmzPOudH2h9SOvwTwKZs9Ep1LtlCRm
37+vT0ObG0z6i2Qayvj1MJvb8fP8ow9QSwMEFAACAAgAToEGSQ51kDuXAQAAeAYAAFgAHAByZXRy
aWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUt
c2FtZS1vcmlnaW4td29ya2VyLWRpZmYudHh0VVQJAANjbqZXY26mV3V4CwABBPUBAAAEUAAAAOWS
TW/bMAyG7/kVvHgXV1Y+2rULUCzpku6wbh1qdD0rMjMLk0xDopHu35fOCqPbLt0KDAEGCZRByA9f
vqJSCvQX8l3ApFeGjV7flfoONx8cPx4XnfOVvkGPJqH25jt1rBgTq4ip85x0RI5O/nehpchY6d3M
6h1uVOsNbymG/fWkt8i21qZ1emOSszpQhSqZgIqi++oataP4DaPC+xatcAq+51Ge54en0FjujN/r
WyxATY5eQ96HxWKk3l1/Kq+v1vBxXZbL9+s53DbJbBEMM4aWgQk8mQpub66gZm7TXGtP1viaEs/f
HB/PnsiQBqiLVqQztX29t/1VdtScZycX2fR0T8hmy2x6KXvgSKYnSWrPklNoEgeefD8SBZKdrF5Z
6ho+n8A2UpAgPcPOcT3I/Enl2dl4/FyzipqDL2BFwbgmHUEbicmST2CaCvr3SBC6xBCM8IpR/q8M
fLl1h2Ma/PncibbJ9LQYy5r8qu1ZYzdYN2Ak04P+i6n7S/tebNwhzZysz8uyhMu+ABTF743/kPak
FvTFYfQAUEsDBBQAAgAIAE6BBknpcynxSgEAALYFAABcABwAcmV0cmllcy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLXdvcmtl
ci1leHBlY3RlZC50eHRVVAkAA2NuplckaqZXdXgLAAEE9QEAAARQAAAA1ZLLTsMwEEX3+YrZhBW1
+1RLpQqVPtgUioj6AcZxiUWcieypCn+PU1Da0gVpgAWyZVsj+8zVvZ4s76PlYgZ3syga386GsMqc
WCsQRMrkBISQoohh9biAhCh3Q85TlCJN0NHwqtvt8LUimXCRa26Vw42VynHCnNErXRdXSWM2Cns3
Ybu/I4Sdcdie+1lyfKUg+dKO5XdP82vJ8+dPooeEvemFxE1GoxasLRq/CKNgqykpZR6pHAyazQOV
T8JpyQ3GquH8wwZa/ayzxhbti7IsIZMymKIROnOXkFsklJg6EFkMOVpyYDaOwAjPY0EwOdNAr6zV
7rOmH62vyir5V9pXYnylAP1L+4KHcRTBvKADY6cOfOg6aARFZzh89p3guszzvnp1odXjr8A8CebI
RKtibZUklr/tv1JNm2t0+otkasr49TDr2/Hz/IN3UEsDBBQAAgAIAE6BBkkh7G1KkwgAAP0gAABg
ABwAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNp
Yy9tb2RlLXNhbWUtb3JpZ2luLXdvcmtlci1wcmV0dHktZGlmZi5odG1sVVQJAANjbqZXJGqmV3V4
CwABBPUBAAAEUAAAAO1aaW/jRhL97l/RsOEYCExSp0eHrWDGlneBTA5Eyebjokk2xR6TbIXdtOTJ
7n/f6osiKVJW4N0JFsh4xqL6qK7j1atqYm5jkSaLs9uY4BA+UiIwCmKccyLurgoROZMrGObiJSGL
s1lCs6drNHumnAoSot/PEPwRZCeckAQsx4KybIYylpG5mvJZHpLc8ZkQLJ2h/maHQngm4fzs32da
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
LRVxaUBN/8mk1zsVGa58Be6iB5ZCkPg11AQmGKQsR9AgIQk+jtKCC+BIkOcal0MqQKztRzc0gLBe
x4VZdBQURwLOTkDPFwXF2zHw/xXyCplfLcy0WfuHuYTHcI9/HTOv4mVwAlQG3VD5ojb/l/lz+Cfw
J2CxP3jn9uCn38TiH6XPMnNKiTAiZf7Fnv9z9hz+6ZB4MwL+4s63cufoBKCMTufOtykzPkGZ8ZdS
5uYEZW66lfnx/WqFHiXQkOseJoGGaAVzSIIQvQVDjQ91b4ELgPpfD/8BUEsDBAoAAAAAAOR9BkkA
AAAAAAAAAAAAAAALABwAc2Nyb2xsYmFycy9VVAkAA+xopld1bqZXdXgLAAEE9QEAAARQAAAAUEsD
BBQAAgAIAACABkluvSNhOQAAAEIAAAA7ABwAc2Nyb2xsYmFycy9zY3JvbGxldmVudC1pZnJhbWUt
bm8tc2Nyb2xsaW5nLXdoZWVsLXN0ZGVyci50eHRVVAkAA/BrplfsaKZXdXgLAAEE9QEAAARQAAAA
y80vLU4NTi7Kz8lxqlRIS8zMSU1RKMlXSMvMA9IZqQoliUXpqSUKZZmp5QqJJQoGegZgoANjcAEA
UEsDBBQAAgAIAFaBBkm08+1/q5EIAEncLQAKABwAc3RhdHMuanNvblVUCQADc26mVyhqpld1eAsA
AQT1AQAABFAAAACk/WuTK0mSHQj+FQo/EyluT3ffb2QNOcMRPnqrmjuysjJyBQF4RKASAUQDiPuo
Ef73tZe7qZmbHsdlS0tnZd5MN9hDTR9Hj6r9P//2x/Sy/zqerv/2//Vv/p9/+7m/XKbbbvqXr/35
8/rD/e39Md2m6x/vj49z+C9u0/3r/Li7v///if7f/RtpOvvv/s1oBj3+u3+jOvf/9v/+n//u3/zb
l5Mb4rg7X3/c36fzK/+9tmP+Xrr/V+H7MKWXr9fX6Xa/ft0O0+4yve0fp+/T7vO8//WyP/x52z+m
3eni5vd5Pbu/9792/QS/pMzyS0K7XxLhlz5OP0+XN/DZmD/TboJa5wke3v1+nT+m29sTW6W1XkaS
btc0Werh6hby8+HGcCsBQxixDNEP/+7fDEMe4nN/23/s7l8fH249f/+6HB6n6wVtfB5K9su6rvfD
6ey28+rWs//xuF4f7+jw5TKGkWF+7dNDm5KH8Pujo/wkQcQnarohL0G65UjVr/Zjevzz3h3P498/
/vn0Abc2D6bEcjrueuzCcLvTPYgeFBYj82qk8qPS2/A57f/EstaLYg5qdbzn02Xa3/66//j85+v/
Z3/+mraX1RfHrOIJHSe3lMv1OO0+9j93x+l1777ahT8FYw1dPqtu2aK0usv1cXhHa8sfKy/9Y/g4
Xhr5cb1cd8frj8tu6z4akW9R+APBKIx0Oe9II+QpCXf6nPTupstxOqJxRKFZZLe+2O6bx+20dSd1
VobCDyqUjFK4/z7d3/ef7kpcv7tpufM/Tzv5E21THkq77TacXnUa5/ZAUxLlHvX0zF/2l+Pn/o72
2OpCRRgNFqTRgiQRvn4ZqNjkz9v143SH2qYnG+z+gFywcBuS0OxuX+cJrcpUWivuirsC0+7ttj9d
dtfL7nH62LAsfaksbH1Ezuh9ufsBhpBZafkDl43bHf7h7OaCTnlQ+ZScvTNxX/6+/76/H26nz0fe
oX9MN6cLL59fj2du2CiKyyriuF+f6Zrvwr3f9DFEX6pFBe/XbiXkYeKbgk62UlgvHypt5sF/Ho3A
cf/Y75xV3N3fr3C0nlw/U1+b/fm8dWvyeSj3B5abysv+fjqgaQzF7VWcsvSGdne4fnzepvfpcnd+
FlJ3eXIyq83DbXK+y3+djqf93x7u7z/+lhy3r/MZzbAvNsrISoLvh/fp+HXGN2nQpYDI/2UnEi3b
FnuZ7tqHX/A9LDj83tEJ4umy94Lo54/uBpm038au4bs8aeMrH1o3tNEnNu2jLXWR4Sbzl6/b9+0Z
2ayspfEyzBwIPQd0N4mhFtL/JS7RX4fD7uG2/B4+dGYl/K/UL6fHTus/3//RHrXzVlrEUf16/SUz
cc3xWyndt16rBMsEBunGZRCvOUcnekEsPlX474Uc/nz5vG/OJbmyfhh/DayIw+z3h/Dff3+57Z4e
qs/LcqNap3P/Z2HlkCTp0p4kfXHZn3/dfWD48zB9bvgwsi9VzpCvyXSePqZLNCZZMyOpzJomqOTZ
XD+uH+6GHXafTrfsNsawxCXXi5Ulcc6Gd2c6YsO87EXRe3P3Cs08S6y/C5bTSB/us9NTvmo+mcEu
kR/Y1t0bMgxj3pVgo1W6T5fv1/N3H8xOj/+QfJAN/W1bFp5s7+Hr7o4L7S9x7MZsAU7OYF+88/3z
83pxyzvt0TQGWwiu7ljvcPd4v11/YHuibSF3KdC5vr6G+IsO6v7XKf+vg1sp2m3qW3gxqqUB3aex
CC5EAbC4wPY/3aZ/+Zouh19/ne5up6D7aw0JmN3/j3Ss99Pb+yZaQzyxepsLMGTLMdGqOK+kJaL8
fQUvLriG/i9I+Cq3tV9hGG5ltwkJHwlP3Mn00QZ4i7K1BCMIMKQWn7kRPT6hNJUsBE5y0FD0VW5f
n9hVMcT8etMm0/7msAsFWqJA9LRc9N3mqQ5jgZUZWXsRbjGX6fCILqw3+vfT2wVebGNa+NDx12X/
cTrco8t6v1+3JW4YWqYtyv7r6ey2NWjNTY9aFl6bERSvysApErm+hRGRTSIa77eQHoLEenkcV3fz
/nk+PXBAqU3hSdvudzxpJOBDIeCqtjdPWMCewKfdGslCR08WZRaMmkT9SSqvtyPcHFO6I7KOZmMg
uzMCaY28EX44azY8479tIMJqLKQpXfTFep4uHl6Bm9MXrrrsWyE6XlIWPG8fRCdXatiZTXQjVOEB
9Cs17kL7/eXtDMcwBd6lB9ahOZ78/7j7tYvO/Ybk9qZw/1JklBMcW5E8wajHJQKP+uIZhWO6sdRb
Y705WxprHIt7I81vBcdbSZW+dSXWABQSQKJR9XKvEyS4Pxy+wjyewQGMUOVSZQPsvlwvT+PdosS7
09lNNxfmnw7emO7O0+Xt8X5Hc+rK5a18ri0BsqV7HDXybdq7wOFjWkKz11cnz6d/bOxP3mrvOvUW
jHXYb222KPwfn0Dyo50m7z25GMQpw/Dh4X6PsXCIdQ7Ov/u4xH8R/nb343R8vO/2n844Tffd47rr
Out/tv7VcA+jDfAKQ/iLKZKu4IfS7FByGSomj5K08EMZdiiVh/JeoUxOejHUcr26TrADDXl5Q7jw
HZ6T4JfXkzl5vSXUxvIGdiiTZ+UPQCSkhB9KsUOJPJQPQcWoN4aS7FAdGcqDA+OwsVf8rCzc9pfz
9fDn7vV6+9g/Ht4kzi45OEmdt1/4GyxsMTs/gnOo/WBxdLBnmgpFCLHH9UKdUvJXbv+G5WvMQtEF
J3hDvsACRzKr8BcT7//refr5cv0Zvkl/v3u7Xb8+79xt9GsyKfUZwmMdYJYor/MQn84g7f7+dX+c
Xn9x84oD2TxQcEfsWAzk1NrbxYM+cJQEYIZRluWRUfz/wvVYMg0Tbo5tTCMkJfBE6L54jZdSCaut
VfyOkLVQWSy2NipsvLOajBPwHtGeCljNQIYIaEZrV5xHM3mkBQ6VFFzcGP8nemgMtSxL8gONZE5m
Pad01GBRiszEro/IORnXrwc+IpmHoHatOKItmU2eahQ5E/6kGOR4uk0xQwZXQ6YS3DojWtth+AF6
LG6LmPBHYvORFMZrHsIFaifnrMSh8J7Qs+mCbmmthj8ZSzZ1DH9p6KXta9znTZEe63fqtzUPsCW6
1gMWiTu4N0N9i7uouL1JC1/4v7m/74/XH5yG8362EOmUfEg9LFF18XHPf5wkfv5Yrz824ONu+diL
R+unB/C1Wr4el9xU8fEIPtb5p7v2TyuwZcPm1wJ8bZevPYEswWvF1xJ83effVu11W7BuUWyaWX0s
OvCxqT8OMVDAW+4+1PQX+XKMSTwvzXg9wR5Hgks/pjETLB6G3N32x9PX3V3LX+eJO5AwSGQvhkFE
xpTKUX6cnFP0eL9N0+67B+JYCxenJTanVTilPTdSP5K5jQtkFke6vu5OH87Zu7PzkHr5emAWth1y
hXlE9Czv0dAY6nA+faJt6SPXJQ7SL6ByPvrdbfqc9i7sdPp0ckr1eAy+8fUnO2JUIHHEDBvkEb99
3q7OK364FX57C9yE27fH+/7yDW9cHykTcVz5zM7xix6yLPiwcHMoofj9k8UhzMTCvH8uNNkf3n0e
cOcCCmcb74fb9TyH8M0x7UjGDHSzbkYn+CmCI+62N26+kYa/kUNxf+ZBiErQvMyXd09vrUXza1GF
uCbQJQ31uH7uztPrYx5z0Qr8zESlZ5C24kfpyCUSz4im4UVTF1ulnlofr0dFpSN6sD5epXdkFJV3
KV/pqCS+BSXxLY7+DeqIsRxQ1QO6wPd6+5bUDR6qOsHVBQxDpe0/+u0Pf+z+9nQJsUzK0vM/kK+P
x+HtgrF4iHd6P7mf2FL5sjnF8hC+Przx8P90wua1K2WteaKeBOdU6hFaxE6VI4nGSJfrw+3T+3Q7
eSI/HE0Wo5U3s3XJO/4OjNvGPxk2yWuKoX2zicICzsLAOwv+Ft5Ob++/pWayggi0wdbmBPDKWYnp
yGNFcWVjaWA3XRle24yFtlkbr/vpHxMdK2Bi/E3RpS8hnlJeQNSL2Q0t/+Z0Ofl0bBwNy6copX3T
oALREqVBHdsqJ40NlVc10pZlBPI+yGIo8YSSAZs1lpu1OS/eWx5K/SyHraFGfqihNP6bfgTvO4/Z
onmHfJBtyb9/+vTzzbNG+TM0ha6Qaz3Dm2fZlY6oBuYZnJZummd+iwd+i8twQIzQ0ieVBe3z0JXn
/5xHA1Sz2ozjYmD44/rUcLLp1tLhcl464vDwKMoDTTysy/XihSn6CR52jGyGtkio8jDX4dP1fvJg
4bcQ+n57vX7dvsWF8iJKzI9cuDpAQPh4Z6im1zUvDlJUfel26MSojUtwPsuXU+kRcAh/twFgZOSl
QN/SpxJ9SmAXG9JBCf54u52O4RP/Nzvn+Hywxt0j5VKlBQVMdvADxU0Jn8cMDiuDYQA5kgFMTkmQ
Abgdjd/3+XsV6IhkAvP8DT9/nT/3ILNIVQ3lz4Pp2/x9BKa7xveK/34g0x+Y6fOfK0l2zyPJCX4r
Puc3Twny614M0o0rPucXrzryuSTVKae7p2vswjBw98ju+0BByOYA4PQNGcCvX6Ybddl/TEFPx9t0
P1w/I+j2c80cCCPpvJPSp7dkEoT7r8tj/9PdJsl/Ss6QpqI/b9Pr6We4w9ynKku/jAlQXfyq6Plf
JXvn0TAx2Lke57y/eaDK7zz7w2TjaM5rWS7YKXJjaWpqXq6zsOyv9vVyZ8j29nG6OMfx7RectSEC
50PTOdm3bBf/05osOOZOdTlrfqdVvuPhwklVfTrynxLR8HwUkeqSPCXz9Opi8v/m5RSuWZM7GjdO
ltIFPiXbFdO9pjxkXjA1Uasx810JpuU/VeSQPf2q68tP+e3Stl5rl+pE/s+l6i9WsJg/tPs/Me70
rm/TgUiwEggKdsEL3MfyD/WH3MndyH076urTKOMuMBLdrtsp9rsEF83fpW1LP6ncdIUd2AmLlD+I
jIqFFue+djqkdzMW3KdOcZAfVguikTZKdu6XLfu7M0oz9ImwaejHwuwM/8vO7JNf7vNWpY+1+zi6
Is2vUwVb/lqvfxr89rjx22onR/63U/AQlp1L9PJvuw2X/G8nbRa+1kv6YDlqJ1+slBjyw7nu3J+z
+9YtmBdMKQT5Nkfg80ELt2GKP2hbimeqjHE77NbrZqy5L4ee3AezkpBxNwAJmfGH+VdlcSncat2t
4E9p9lLC13qJouevlbuO/CHJhGDOO52P2MzXAgjnOFT3oqvEa9y97AwvX+TzIJ19dSctmPmgZLlp
Q61JNHtaYwIAw7cZSieKTxhe8/XFdlcn7a8UL19qINs90vs4T3rgtVCnRjDrKCb817Mr3Vb2QnpV
wJ+0tEjIrP9pXmuT3ZZrFWadgPIf2xQSLher/Lh3F4tfc6/zdnuza7tKgWmoPAfN/PRiq0b+t4XW
ha1aH7Xs+KshjCr2TI9rtc//tu268rcN/W1krFLkG75U41Jfm393hGeVhcQTtKyolAk66MSjjStu
7pfhxbPryqMSi3gq98t41kqWOl8NKyvHX2hDb5VZu1BA945Ebwf7aFbiBbR+RxW3WtAk8rXi1d8w
lOIhqJXTf+x3gnUah1EV32YHzvt+7vM3i7ywnhyyWdIAVBVIIF7VfRTUK/jm9os/KCnkWPyykvV+
9UC8pC4NlaiUkNPbvBISfSnYa4eE/3igx9xRnZ+sjQCmSihTOY+1V6LBds/o/HJWa/XXgS0zArhh
wSE67E6nE3KLRFfanL66mM4T5CdgTKl/pVi53YpffKomXmRNylKhDGDjFJEWDwGZbm2nBbDTqhTU
sb5gMMyx5byzRzZ7zgLcETEgd87sLFL+otqxseELnkA0mgpRsx5W1a8j3ZAKW/LHXWV6gG5wVrx0
Y7VaSbqUQBOrIkqSK80iDDC4nWRUy6KXkEfYFR+L8uvg1AFJ0xvutwG++0D0aax5mm2IEzCBtnsY
q3OuHWgAOwhl+ybukO2t4O1tpU4aoQ5wTwZVaHHTra+lBNeyL7WhWF0OcDFs6T/rYWWuWTU4ECXu
b7cphDPYD/6M5WgLyda18UE3UmkFLpWFYZKgpqdb6ZLBqV9gb/sq0NEtRXQCP5+afOVAqzY8w27P
QwHCkqijdOwWQVP8po+jLL6upj+66YOgWMgC5RLDOsgDYIDNR+ajFyMqJEEibdLLpsV0d+MP45wz
7Xad/Xqgxto2g+oeBNVVpNWt/QTecGjTDItluBzsvRpJ0FAiVFmZAHtT+t+ytnQCiLcRPWPpssrn
v5ZmLAOldVwJgp2hL66l7tZBKfia3qp+FWf5S63BpdaM3u//UMgfIihRQAB05XwLFJMOFD7VTQQA
RA1CihJbG6qoAe11Tz9WdaTkJt6jeddopFgpsA0VaG1lLMX6Nkv+NpvChTUEB/D/J93kFTgy8tOy
FvDojSngjRHn21KDlyEfEDRQK08kvHMGCzi/A9H4otAGy5Q1fye7cQRoTXQgAVLUWeDFBXMngGsh
GTyysJUoSjOdbc4+eyeGd05EGdwWWl9Kd0F4rT8K5EYG8FgD8LgyGf0qOgUfdxr5zcJtGvi4cm2q
HbduzcCzGKqEzLhKYgEogYalisbzMaSVwBNUNDK0NJeTb7QGN1oUXom0DX8KZJIshVILyD07VANw
qMrMn+zWQCxIORoLcCOBMU3ZleigKJwLPlKRFmXtvEMDNKCxVYKCfO2iFad5j8g3oZ5YyImvfBMA
PBvqFuUWYcRsHJATaEvcRNZZGcvHdgMIC8MZA6dIENBEjgsHjl5o4HLX3qdawcdgv1Rp5csMa9CA
QLBlV3rcxLfZiIWFUqYMcYb1MQMzWeXhV0lpkCl1MlK6oLJfmzsJzJ1iEq0LuCZBRKt6Ztn5t1kZ
s3neoYvY2maAxDKdtm14ZNBrN8RMq7WhDF4s+G3qeJsVjhowZA0wZFNCF8MqAQdicV0maVcMAoUE
RQ+FIhPreYOgkH7c1667hx+ASzVUOOhiZkdvcWBGXXbUF1QtOHAAWR1KqyGzDgaDJ9UILgmVjqgP
WDvC+lUWT89Z7/uVhQXiOdKstqEqcPYsQEacwMZevLRcoYEgLa16xDERkPkgSp9drHx2y4tmJzYw
JoizKOLwS7sCLHqYTe/JvEkn70KTAJyc2FjPFuzJbTYwO1uhO6IyVGMUMQCyV2izXCMmCjFNxtJt
7tYCyh/XSNOOLSIT0iSmSmxk3yL/NPCn+hJDXUezIwhmNbTSPfK6RS+HZpgSAzPgHAysA7nkUhC2
JRhvO1lJmO2seAta1EobOCWCZKZlfitopiT2PCXRFqyFflwlCkEATZO7plZfIQrtQRTaI+aBhqQx
bQzD50mBJCI02n5kcrvpOvfoJsvKBVMrGBCQCq0Qz+QJQWoWOtwhbQXCb3IpZLeC1ST2pEZdGqvV
3BFwq/TIXKuMrvOyIgcuNzsndkFetyvx5hVum+BAIC8kMxCs9JroNwCQqURqVtkclGfsqT4ZVrS1
kExXIJluShS1wWHg/X3NZPwybgDoXzX9wNb5QoMw0L7EykvMYiOZMve7aSgl/3WPCaE0Hz1Qq5Ej
eAD89gz7YFH+wF6NFjD9AuIN0tG9KbXKmgQLYBoioEG6184NMHiqhIzXxCJ3ewCjvQpICc9E+jw6
4i2obmTsx+JbgFDDdCUcONboAfhhVSaC8g8HZQTDI+rIiRyMkmS25ZkDktFjC22XB4ggjdTrIBAd
mdJorLx9mFPQQqNLseSjAU96LPdMr51fA1Jg3YCopD5WsSC3qkrgd128AJxfLUvYuELKpZ84f7G6
yl6uuS1AjRH2gXeU+nVOBeTgO8qaKMK7WXkjc9tRwzEu70hRoOgFVgP0ZcSg1+sGFs9Wun9o23pA
5DIDk2BeMEkLsjIDEywlvolEh0aI4uEVA7uCmoCjoCovw65PHDCpSGrbQ6OmkVUHEyds7fB8T33F
kTutjWBC26WQAeQOO8lAVdn6AKBLWCYmX8AX4JKqvsqDyRVsHjAB4I2PmsEWMyYwgsROmZqZZx/A
Mp52LXqQG89IBsBCdIey6z087V72KHmIUfuxRpHXqL0BOIZukhl8bttFPRghHDSKNgOJGcS5tX/V
rWjIoIZj7BC46U0v4oUSIxJqT9bUzlGDGg6JuDYhZNMgZKsSj2tQFUFWHTPxJdWLmNMVgiNXVBvA
QO4HwfCu3dWCAuq8O1OCk2LlZoHfraIHadqOEirZqcpLV4kplCA3Awo1owUB/vTYMT+dT3sATpop
j7uVIgcZ8jr/KVYwFIidaC5wyNLS+U99cohVCnXoU2ISGgnKWBq9VU4KOXeqHxlqf3LPOkRGoDUR
qsyazuW4wFirKvM51kQIhTxDWkfcr5wzL+F7FAfQbIeq+bjBMwO2QyhMrx82+PnWSMbByrwClEBQ
IM/jJHREGUwtUPRmcC2HFVxx2PLT4HLoctt0o4yPdTUq0qJs+uLIFadVKLqRNUbxk+kHXPwD6Yej
YQgVC8gKzE9VUZf5rfmS9OCSWCZZk032CEx26V9VnPUe8iZ7aVD0Euw94NYOIyp5shDOt5Uzq9e8
BlDbKwaGMOQ/HjYAP9PEtDMgw+MxtH57XC04EAsAHm6GJsV0ETHRodChSkgWIbpy9u4F6eFxYKq7
cm0YyLzoysmRlNXFxx12g0vcg0Sg7HFUj6opjC6T5K0YEdRi0H4KPUUzMhyBoFXZLBMiIgLAJzrx
kSJXgYehsStKbEYgApt1RA+IQsYydj5n2YEbakoanF0VdQFIuJMdo7ezxQHHZQRTdr4obtDnRHGV
K7nhB+DrqCpHP67yxsA/sB3jGuWCCgAF0OxY83IZsOGiY7gNy2kBAEYiACYIOIgQRwN6MoSbOfAO
mVBmy70AaVjCgF7XeoZafVRmZJm02pw7AFTiCqdb/bCGVYdV8ngVzmteAY9VLtCWLCVhIV+ywrrW
yUD+h0luyvM9TaOKBGB00mI4FqXFxtqhaWQuQPsfw9iNIlMPEr8kJA69JVf5KbDujhbsr0i5wX1F
oFEVD6/VtwSMn14wpjqrwRGYW1V4RS0gWgAgWjLFbKHJgU9y+U1HjQ4UkJfI7AVBg9SoUHXAUJ0p
P9Z6RUkBFUeEKBWeZhYrDF0DDF0yxSAL6RJsOdGjjZIMAy+Jobn2rlW/bUGTBFFplbFSSeqPF5SG
lVXKoxEpAda7tiAvGeB7mKYaRiZ3kHNkqCC6Tdaizj+wPyR37X3Efk0rBvfTKESHDroBgISkzFXm
HvupQozvD6YV45bNIbFAvqwYtnBoEBwS1Mgfue1XFwvFOmOZkluJmAaQKE1X6FYkDxojFIioaATy
sLNhndiSKzWG0v2oe1KMHIBPZzgmCsH4gCbrNyhmBv24rhpCyLWroYE6ov0gx0aqBSl/LTpUt64h
8VNL3QReEncTkLRqCsy6RgC4orpyY+UKRwZ3kqoRRV3R3BACcQTalJK50SCfiLNj06OL/CxoqwYr
Md3USyZQBVUnttmvSR0/EPRR9Tdc85RsD/xAUWTmc2492UjE3FFKgX5TATEHzC6hARoYozNAR1YC
wK+xZgdYuLFCi1QjSw2iaTUCsCmoMGAwdNUDrmYW91sZckuo2D5ZbtY4ArCwqjSVkunfAbRg5f3L
cY2gAATZ9EzF5xzcIsSqQ8GawFlbUzVrXeeqe1AYR/3+vlkkC0pSRkqqlnU1TPAwAFjWW8RsDjV5
wGDSDrdj7UHjtk+CWktddaOLLeEEiJTKLPmqF0ZMz4CpW6MZH3iuVwBiNlal9/2qzwtIiImyG1EL
IwS7ZrhUdVZs4GtVof52Tf8HqqEzKMkfwlPUblEC/CeIKaDQ9wPAdDNfCfUDqZgR675EwCfte9Qi
GFPjlO1wxgJhfZp87C9bFS5ZGAHYAfWbkai4b6yJBfV2bdcl9h1DMUvoKirjVJRI2XQ7BMgad5D5
GlQ5KGSirpau8zVJ1JCcdVu4MLje1DMt6f8EVUAArWD69GTdAkBpU6KspW4JHG2+il8PuNcvIkz1
YiOsR3ihqUlmK43Iw4XjIIC3EStUgFKSXEv7nIoEMdfIlFcvbh7oG246UDIRY0VQAVunLsw6VQ6S
zkN5WDnRREQU1KSrKlmkVk1UANBIL/a4qjjucTmSVIx4Lx+jisyKQbO61iCe6GgGQsRNXLffAgmf
TjU5AjnPz3ds7EtigzVtR8kAR8kwFTZig1BIi+ZaeDTcbwsbyHrvEHSarJwkOdZF7SBbJMoKACvb
IQyonBgtYwFy0TGoU+yrdpPdKv4CKQCKIY2NyrUO4RrGNOPWQDJGsEZF21F2xS8G5tIqVGFjYJRv
6lqPtTuL6ulHu4UVAt1f2buVfKIuw9pU8L2k9xmsuGhqN7S7CwFL2Xeb2wUoAuOw5VuA5JSwCnWJ
nPUQUkMdQ0zLXBYQ5lrLNJDNLMQOsBAl7Cg9wo7Sltm2ufhXguLfnmEJZE0C+i7QdnqyxinBpaSl
HY1ujwb39TC6KqEaVl4RCHdklc9bmdkROM/1sw1rIAQ9kzGi7gcR9APFU10HKt4iAASYP1JvdLEG
bZW6zmJ2MIL+TT8yaczllwGBRsAaCwF97+WFOD7x60QYpEANE172/rdR/lIZVGHR40IHUWL4qwDN
QCYKRxDI2SmwX7SUtWBV5KwF4M7bds7XW3ekC2piWL8mxoLd6riXu8KC+SZ6IwIfNNbWmqgBX+ys
zYoehcpvDCI9BowLMArqtm62eOTMQG95KLdKrkroAabYK9CLLjCnAVAjLVt4Y7ClECNtsdg3CqRh
vlWNZQs9UgXYwTfGhEIPq1n8sFAnmo0dSUnBBrJVOLy2/aTcAII5CaxUMHEgs15zEVYf86XRtA9T
62UhCdtSVF2YbCP/CBLM/dD08qMrAuqFit4QxAOa65v4/rSqRzywIJiAnTO23/oKgtkjorgB/F8J
gZVRa9wJbkDOXq/VFvOYFwyKEQw11y+iYMC1lj1oKSRhPOPCP41QMAX7z8leI8xxhDXnQ11uWBbA
9Sif7hzz8mmftb+mQVa8gy11NcywKltl3NZBK8rXWcNXXqQXoCyoEC1fS1FiddKAn26rkpFG7ztA
/CLho1oxDAMoj+huqoklkb4lPH5WUeVWnHzYX1ajF6BiSAEkdBwZDsNiZgAPdhQbXXV5u0zfOAiI
37gKKABM0PcYZEBpPqMk8zJaYtAqVEorhTRMcWnOGgFYfDAbdNCB3zG50RdXgshT2KoColu5fqCY
qtfMli3ELxBui/JG6/WGgXxw1295MgKEf8V7ci01CIMhRdtPNOPtHpx09Z5muWxYm+Q8IcGyQWeu
BmgNMBjmPc3MvEUxXLvamzYTAl8LASQl9s8DAAdlk6rVu74WPSohu7EEtaVeJX1AA7uhjDHWzdzE
iLhcQzN1n2IM4MpJ/KwNeilAW4PY9LElAEhz1f1w1OolOOCbCMvc6VyeD+rUu7LM3aoV3wBwakYO
o10MBzDxg9yyWECHdvW1bNR9gLxJ1RZmveEG7HfHwDL5LVAA3lnVJI6FglQ+205fmBGrYj+Nn8Yx
pKuYb9Foy9VC2ZRFE/fVM1XRsQCVQdWzZKviHvTyhxUjiHEE7N8gpNb4rRWYgdXKPPEwGUr3D2YL
7ORPu++AdxFhVkAJVQOmWaOiPU178KhV9sKiMhPZVV0hpS4yxygTKVDH/X6bxdqrrXS9RO2ITRvt
iERtix4lo/lM2SwY5N1ugzoBhLgQQGldhx+FgA0MZGVhK0cOvYRsJIOzEDYIesC56qFZp38R6mll
CfQaW5h20HNfM0BYzqKC/BaBLMqS0Iz+gU4sNZ++kaMCgIcq2d3rPuy87pW031w4qroP2ID6wwr6
4tOaUo8KcMVQVlVqsU5jAsezrzrur3NjoIxJKMZjLlsqggOzZes1uX76DlCOqta2al0IBXB5IZjz
Wjqqgy3XTD1/DkgRNbvDb9BZdCtJwZu/H3qNmACUSG8lQoUGAekoAac7FKsAT4wpjJepmS9fISOb
94KgSzxKPQrU3XshG4H8bdV2v0GUBUWsonp6ufGeD0hGiDpMaTBCQM7bCtxbF7K0TNUEf513AlG4
Jko4ZAj16qcB8mAN0xiXYFSoxtuWYLtelTeC1k61Y2TWpaggCqf+87gKzzynG9nq3nKN6pbkBm9y
tUFYpsbdmVTPVddkkhjoIdZVz9SYOrizILgTJV4jVu0vwQtKtExENqngIJfc2er503VfQJAQVoop
zMngGiiFGrkHs3MwDcJLZRmebXD7gXyaDiRGAg4KGpX27d6wc4oRMGT5hijhV3E1e/nkHvUOYsEZ
KnCETwVq3LdYDVVkZmoME9l3ydBEi2gW1JMSjy4897cy0yMPlVctNkTNzQW83oqErddvASG+pxTM
CzWLLwhAyPq1v37V0gRozlExr6HlXsngtdRRg3dPYmIYmAxtmQb4uaEfCOFlh/qhh260wIMdJGoe
3G8ZnLqaxVY/jmS810PzwEIMD59QMqieJGZYAdpCHmDyNs+2gSLknIzw1RSJE6WS9uKy9MAW6LgD
1s4gluyIi3iGYQswB/ha36GeIr5TEuggJiv+QuOdGdD6sW6cptZBNSDZjj3zvsNMnkLvtfZMc9Oc
zulAON+XQOxYbdmwUWberpGY2zYA8pXYKlYGIdo4os6ROSAHRHCaa1WUSJDzBAAQGDqUz5fQoVvl
hNZNe3rQtKd6PLXhDgLFUj8r1ACQQWlfVyGajUQvsCH0VYwGuLhRyjlIJs+bpRw01xaGaWFptnup
j7ZHrbUlZEaPJK8TcAy9YruArHz9LPG48lQAhaJu9yxX+gzQser+8WJlsQE3srdARPG7dLLr0Hv0
I5x1P7S5LjPPj/feazK3Xdk7DezdyDRSXNxYkHHUsJY+tWRBPVnK9kyqb+SIgRrUApxzkG1AQ+gG
QKAN5haYLSlBf5PcYwRE5MSj9aBC360BeJCstSMDeVXP5ICER93CZ/2uEohChupZ+aESdJR77Wsu
2rhK8qCq+LLJk2S6XoAwxsA6KI3bIyqiHkL+oSPJar7IWsotQgIA+qpO6O0nJxGAbzqBCGkaZ3vU
WHVvXicSO4Cv1i9Zr6krIA3ZEYS0bOiYe32AJiWqTcSbHTwez9YIqhuweOueIVIsyWYEyw6g9iIl
qBDNs2NMwQLkoAY+aqPPlQAqqaswpMZLl6CuR4zIJR5gl9i+evB33QIecOvRI8OgDL9ocNW3W+0D
IgZJTXk4267VN8jGKcm02JvRI4CYVeR8Ma5KdtFLXz1TJ5eIEHtIhNCMaxRnDVHCKoMp+1XPZdTs
mYu2cjoNaJA6t7SuJgdkcRJx0OpTyrcBBSMVEbhRBQ+YZKp6/bVGcOCbCsSvCre6X3c3Bbi7EbhR
0LjVbkFXD2XKRnso8OpV/dBLo+wFGDvaL2hoxrcg106JcI1HS5JDjB6Hzt97bTwMK5IocIcHwzZZ
ml+4AU0XqsafYlizMsBDCeTIAhq+grRBqqVuA7N+egpRI2TZ+a2vsw+oD8uAirwH2MCg7yVDpssW
AFRaD4J5LyB7RYC8XZOgRdHLEr15NfbAs4kEaPR0YAnDy8ZzdCDloktcVq2pO/zVkpSb0OySgZ4a
NlX3AmVWiUTgFymBUF0LjaatW0aIpvN+go8AbsJefOBBOME+WLdd6QED7jdslGE3Mi5dDxhD4RkP
YLFl6UlWdKMe8vh6xVUX5FwPSL9KwWRr5Nar0qOSuOgHlgEbSnwc2zXmQBd1FnRewNG4JN+qroZF
BW4UJyXqZBUa1ILXHUTPZHnSOcPcVjduuHXgUaBO9IDHhzvmi6H0COX6JTjYd75mgawhL8D+liUP
cMV5V8jaUZNjW73QRQ+WLWUT/458YB/UHlE+sWxdKRtPi4G63k6DoDaiFwA9GcuWEfl5SKfzEYtZ
VxWAam0pgWzrodmclTDi+F+uXFDd6G8KUizKblbmA2bvqFEjlQGTfdieTllG+CcGLNeHcGkZDbxA
AvTIofnCIoiVRgWqbmK2GehPA4ukBlgt1NvyNc/GM7kgwSJLrpCiUCRIXsoedOcUChk5IfuynblZ
90oGpde1C6fWZEnQ7caajUwF7wUR2fI+v1ErMi8Iq2S7m2lyofiC2KpzVRldhAQDEGhpmVLxJacD
yrGoVZatZxT4h4DHUaEAoYMw3iBh73MLAyo7wpYiI3YHhurhn1YmCkBbfeU19uQq8dUqVSOkRi4C
pr9s9Thr4/UH1KDDaIa4HBrtwOeLdY96EinY5tbFrn1ZBruORxRomDWMIJEeGI4gNOjLvFtuUBbW
DGlc9WO0a+qBAaBS3SpjXL0NBdy2vgdt3nGSU9JfptyB7EmMvCNhQI23r54AbgTtS6QLiGGx5Tw6
bjtc+2tgJeo4InssYOMG56faDcYxTzwbaT3+sLoXElOGpeE6pC/vfYLIU8umMSe6BKhO+r5qtyIZ
4u6Mtpf4rWQNO/mPpWj3K68NpOCrBuuyW0WPAK8UBtRtSPjW51i/HUZOSv+x8TCr6kFcEON8INum
5OnZul0gxOXZXoOZkw4eJtESlfz1GO2sCO3atAkHoOdXjVkOVdYfghQjogxomAAStGLQ1uFUvNTA
4TVVoaRa53CAXyFHhnlcPiGAKk7yCJ42btcN1kE2uXZd5eoRAMTrt01bG/lIEuWhBwKsh7qNdQTb
gaoPElH5NJYeV68moCJgu9XME+Swu5F5xbxIXYENr7oxVx16cUmCHDkfNodHQMypzVXsc6egG42u
SPat+mnQIFgZpoYkJ+0AvKTHZkaDhCx8QDtY3NYAluooi2prJUzjjLpyR1cnNoIkjrYsbTq9oANi
//pZc7mivoE0TmdQTsLAt+5MlZxdlVBr2AGtA+inxGnpscIBZb8KqAFvWQ5M/ckCAQAXqSKUir6o
i+Uls1NNP2MuwOB5KXWRY980t/ARMzsC3R+4qCB/M1Su7ECfCQVt8GGF0MJUA1hcpxCxMSTvQZEk
fSO7KNpe2BqAZk2fGRpXbX80LL3T9dvBct3mDpQ3dQIJp4YtIBVLkcsoAuA7GMH0kF7SGUALaYmT
Gc4bRlXy1cPisgjm4YuytL/xQN/4Ww4a1VhqVJI1U0gRg7SMjfUKiQTvj3XKIj84+GTAHVVVb+bG
o1A8CtpvdOgDlRudKt97W5t38LhfVz0AUKCZoeUbbAvdG/Rs2ezZACbVUFV+6FUXCeCZjJqBnXOt
D6CA1a2i7Kq5CwrrFROmzj1p+PR9bUDWTyuB+onKMzHdKuYACTeteuSOhUp1gJV1Va+6sebzgLYE
dT3AulMTaA1IUCfZN/qUQM5vNzRj64Af81i7hA/Oj7BOZegseEsw+Nv8Dw+K4WQvgCSoGOk08zrP
Qi0EgbzuQGVnTEJbkISuWiWtX+QGSf+Kk6Jk401aSMQZtWDw/sXq9MDqjAxtd44z+ObUqgcxbXCK
gHtQIde68V4O4KXYAbyyFsETwHIzovnafNiwjf5nQ8+EZRl3Ae6YUozSXgQcdbYWKA7WuMRemerV
+G7VABLw1PrSUOq1sbGgHLamtayuhwWoC8RTI+sA3EzKNxatVAP4digx0UYP3Q44JoZDDjJZGdFx
RuBPBc8bEFdpo1DTLMwEDJFeMG2eMmoBYK6afbquqjFgx2tGoar4o+D1rQFU/IXoHzHDe6bMfBYS
kIB7Qh8MQB9oBtjLTd+B6h40LjNHOfGiVrxRTwqblJC6YW84baNsDJSqkRoVv/NlrgHn02UtIWtO
tgERVk3Oa/WHQi9bI8w9sHWBX1THV+Oq/ApVpAqDircMPGpTFdavED34NOdY+Tbr0hyAO5sBRgqe
mA3akGlUHhipbgBZq4y8XBfSAiiy7uLbrW0taoEmtzrKgkKRrnrVs/GEOXokSTT7QwWPn+cEScUc
cm5VB3SggI/WblSRVljkumkxYH920jAeaIa3gIRUDbVL5qmEzxypsmWxXjeABOpzbLN66meOkHuQ
lYnHU/tu5fGDZqOmZ9o8LTkNvt/xWPWyXbfnA1lm1SsA8Ie+DeDNDbvxbBBMA2lb8UZW6RQ+K4+Z
qwt6jOirncYvEwjEubPlS21yjV6DmjVb9piqgTnUZp8+eN41O6SCdhVUJ4wV5L3Ra26omDJ69aAM
MLPDAHqvBQoZKBvoR9wkX6FmhsZaxjdZfhrQgwiY6M2eabyrB/L5uuQZN6hv/CkbporfZ1UA0q2A
75mJFwBRs4JpH5PxOMB+7UZECB8ha2ToJICKYpUbaNhTvQnTaNjTA7qwHMBTbzFCAl0LOsGUBuYy
IoAlyvLQJHNo4Llza/Hbyk7KQbjTKUQUshtN5+yI7HVgPaPIYWSeWMl4OQi1Oo38wTk3A6Rdj7ix
ObIARmw8cYDeaNFSbvngA3gcWimcn3Z6CZyYUMzLNDOhDb0FOzA1CAtWhp5nlkyn65mnPoDWQ6pE
RIe1YgJ8kw49ZpHhXEA/rN8LHNaRIijVFlUTY7HiuvcgXyCZ8l/CHAcJSL0pahq0URs3EjTw4RTR
IWvSw6qGXnUbWrWHxZljqRv6Rrc/gN6rsuO1adS/oVYyHSKAYwqirp+nXlky/s2CcRyZxs/ZhvIZ
3wrNMKsqNL4zSg/ebP+mYZdtanvl0CAYoc0yvUHAaL9RClvXVw65EUFsYo+aS4kOt66A3F5FzebQ
fONBg4QH+3p65hWDxIEpi2caPZpAylZYyHucrS4g9xrF9BfPDWNB9586ybRu9gfCAak0qNmOyhBQ
E2ifb9tKSPK1LOMomXq2rM5QX+GhRCeGlWe99Qhz7ZuPdY0Gan1EsLNQDjyskBWAGI6WMd0zng7L
j2jqw6yoaRqSIrQpa0uqVg4CRulDxWuT69bE4JfpA6yi+QoLCGZE1VlArAAdoFls2Yzert5U5ksf
qwcqWjUDAE8hdKPgV67xFJDhspp5zj1lASRuse7MSEUnFOusDcogd6ApQgwAQf1TNyJqWwjAAE7Q
lWRsvW5rrEGrk/q1hsaZAVNQP3am15VbQCuUPpZavQLYA3++1ChV1DvAcp7ejKgdp8/5DCDnMzDE
jJwHAP2QbccUaYQ1G6dFT7CzWWn2VeNNUcQpqegZa0IfeMWVvvYb5Gz9GipIn4y9QUweXB4ihQaK
ZQHXMbq+lbWSIL0pajqjZTjSqPStYyhBs4KRCN8nXyvdUOkojlJVCCf6VYcckEin9X5jq5UHeKyu
/Xg6CQl45VBhvnr9eA644NYgUEnAigUpFFM0nGmvoInoIJjmOlnOwW9TLlGfbWDesZ7fMIXAKIuf
9qv7QSsmHQIKekzTjoTWJxK1PrHgXpqNt6FNmQ0eV9EbgEXqRLRa1YaDjERvGWpK4W6gqFWCF5oT
vgAKUhVXDDSbTsSpHBma8AIQ8Dd6tChw7HHvVDky7xJmDA6IKMMjorQDAHlq7oGm/Iw44NXQ7JVu
5hY6QAY1Va2bXVOcQbKPyGmJeuZ18zXmikkhLXE+KL4yEr1FYyDXwkquWmNx5sF2W4tekZxJ+GDP
KIFLreoeFG67LUk+nPaxo88HASdr7JjnuPLXACceKz6oWPVEAh1+jGS8lCymAKo1fZOKGm2PRC96
VW/g2FUIgV6J4hgAGXIEc7bVnNevTIPHSbRWzadl5xXz70jWbQzUikkESNLVy9iNxpYaxPbjgChn
PS61o1FT15RNkOkba1qkXMHSIE0o5AYbSYJzFiS891fSiPXXwE8wI9OlN5cEgVRAxZNuNbAB9S1D
+dZzqYIDYw0oQll1vxlWihDgAvThZN2CaUGKsKsC+zXoZuGWlS6G0ivHn+/NVrOR1h1ZQKZOVo2s
Vw+ooaxqXz111CJCATJ+3wGKX4zNwVFXjzGKcWUwgdWwJQdgdqJjCS2vuHGXDgtdYDsKUGOi4DNe
9Im9dXV10CSg3oKgm55uMogV8xV4/XWGa52HRUgb10R0yfcgTmTZG7IBvlgAQFTNT9XYePcdyKYc
0JsgPoEMWi127SqTCPL1qMktfZep2XVsxE/2SNyGGb0FbusH11bOEF+8Sjwhb6zN2mFHrERp2UeD
w02GEJ0pm7iskgaoebTWA2PnMnIBPIthAN3oQ3MKHvnXlcK3K4IEwO6VZTTJUucBysJrNnph5XrY
jFg1TVw2UryNGriXGsqHgcDDGqZnmEuL6gVQ4jAAnzlkQAEfUo+My7xws4GMKME0ZV+qU1BPDbtF
KQcarNOgib3AxUCy5lrJEmRSEGQamTrQnKcHWn+o3tixBBbrNijhQxUpNMr3gT8ipd7QBnyie6we
piuVp4XFZmIs27RVGzbAFvZ9r3CXB1TcZ0y39e6vATm8+j2NVVxmgb8sRvwYBwLGtKneaG6Q0wAf
QlRwxbo9DwASq1dN1z0eeLJQnUXr2+/SofcKDBNkZJcIXExRVUTqldkA3WOtQIUHBpftOucCvTkQ
lALoHDMYREkwuPOjsR1S/hqx/4Uce1R9FWprgK0dB/AMSWhBBWpn9YhICQY2lzM0G9RqlobeeNBi
aD5VT1gcIP018A9eogdfZNFZTjZol8jaGW2bJbeUbcOHdUSd+F+uWmoM0LfobRmarZqIoHpIKwXo
phpfdQMSUr3QuWpRgQ65H9tVt6FGjtdhsmtiJDm04Y2zNZsF2YB7Lkq+iuzWnH/QPkr2gJ0adQBo
w2SrFxLsqhUqgBooFdnW6QhP5QJlEmOHHxwctyzGMCpm6ktQx0d1A+pFryBjkj47LnQz+QS6gdAu
Jo3u7B0u/lSl/2lMjvx9WAZ8TyGYCoOlrztIElr0yIHFT4eMFXlaNsMj4BhoDn3MsAEIwOm7AR3V
f/lmAqaFkPwLxwn5BFqfpv9Vo/ELNLCj7pnObnP9Pnorhry+ZOoAScLGlLQ6odEcaNh4M2XocDYE
uq9ac3VbpVIA1NQR9acIYRJI9kmBXgMdIVWkH9qcd8IhAESyHj0WOWw8pMQ9jjY/gQc6V8mu+Zxo
fMqDV4EEQvQpadutbA7oXkLzN5Y+ipHzN4B5ZiUTXM3veSIlKNkH/2ZDC5SB1EyDnXmfQdsUURIW
son3jwegGikFurOHjBHQIFKjZyKWzrygtIyYWH9Uts3PB+iU7vETSqjUV9ueiY0y2RvlnSp65Irk
N4AWDaoHrNCQegd5BdrfoWvWj3YAPTBlE7y1zdHI5vTbvZRRKGvR+9MGdu8zJKgr22cvewb4QKZq
nFV3BuKr9zsuBo7XEj3ap2RZiSfFmvAM2q5ogV7qEnDBQ5WHXjUBGTZ7RJAkUugRsRYzkIvual7N
uv6ET9nRvkTjiuShMU9c9QI1CNYwZ6fr1pTrjwG2JktnUDcarAG7VZU6KbW6WsCLleg5zpAUQZXR
oxqaTll6C4onfVXPulvTeNYdAR6SEdLEUH/ZYKiXWZVVDwGBOjILjlufjTVoXyBLOmiDNrZHMFGv
QRoq8N3Qa4mmaOjcQntAoas1iFYZEo4g7Vc9sib16q10YDIpb7dIxefqEUR2q55kWT9XC/R/rcVX
wTzfssZuYfUCNJrs6loEvQZggQmwZZM1vTLWsJu0lUw12xym8SWAGu3XRuduWbWcNf2KNzYC3lgF
v4rVi1TAwegNckn9O+Pg40GARqrhl0GSdWhHOvFVEeBfDIp7/3mBigAnseu2GI0WYGTVVjcy6YgW
rkuGnl0R4kHqrfJ/19kYPoofB4nSX0sTEvSmhy3JNXLN0Aac3bF6cLZqWytwNI3rJb3NQs8pS67/
6wKegJvVj81+45mEMPAkBI2a+A0YudAjz+9T+FGqKhezyvshF9j2iK4R8o1Ab3cD8yJfNpPAE1Rl
byJlS7av5dm+iulLvKhOYORE1dJ9/dAOD7mQvgjrx4mCv84zckYBovAATY0AmhoB2SIk+oD+0/0G
wURoUCzBPgq88cykKl+3leuOG7z26kta9AqvRii7kRZkF4MzAXwJU/YJacAGoENY0Su2+ZAReC7G
Wqbh1VLJs5GL6RXHY8+gMdB7oln7O19GkHYbmKefMrgPQoSqDZBeP7oI2rlV5bNrxisgcBZtulog
OWJg6rpSulth+7xwm4pP3WhxguyEbkIG8ZxQerTX4Okm97MwmVs9KrxuLi5A+wPRoVLfSJsCDPKq
Mi+7b/0fCj8UozTwGvsNQF8wHvai6vnszWAQcGkgPmKGqh3LeqtBr+vOlsnJVvQIgMtOMM/ILXAt
4pN0zeJiGnEDpKHmmXXF+6kbHpAaGYQ+OU+AZDaWtVJy1QkFdeg26CbrDTxJD6IZDZE6FpAmGzrs
5PbwXUkOwDPbr76OdmQy0TkfCxI4g2z613MIyDPXFdcXfGlZAxJWhC4g2x3NFegNO7ZxceIy8sBI
fU7DSu2C+hf6Rsz67WiB3qJwMVTVIkHUqTLAiCMgbSDcN1pVg3shFMP0L4NPkLIyI5PmWzjRwLKr
MqHgpkNJRBbXR5Q73siVbTx1a7qyrq4ikveQqNGrYetdCJDftGWp1QqaMZDCLpkO4Uuza9CzxpYk
i1UKB/lSVilQtxTL+YCdrvRJ44UuUEDZV/2/VkZ+BNR7XZbwqHGdIwR2h/60ZioWAAxXd7ojL7Tr
XccT2GGDVI2f59LEwqu+kXIyqFWbrvr0NGp0gWzrdbea/+k/vx9u1/P5ZX+7h8/iP54ub7uXX7vP
/du02x8O16/Lw//R4/q5ez39nI676Tx9TJfHfXe97P6cfr1c97fj7v65P0xupOYkQgSbwv/RxNRV
umDLFHYvX4/H9XLnB0iNB0aTuHqaDPD8pH+cHu+7y/S2f5y+T+E/+M1lDHkWuRn1y/5+OuyWxfCf
p4xr2AW9FGnfHvG/Pp6+796vt9M/rpfH/tw+0D632w0S6WkNQ7y4/vPv0+1xOuCP7fKx39NeLh/v
X+7X89djQh/r5WOZPIn2MZzeLm4l7g/eT8fjdPlXCs+Ydz03vCA/uj/8+cMP1RCCl6sTrI9/5e8T
2csdSrLwHm77+7sf8za9um/fgRTbZSTyiOXVHdvr+fpjR4a8frycLk5M8aXI8hRa5tS36uN0v+8+
rl/36cP9xu54uu9fztORHzDZQT9g75VFn5CQOOT03W3e7vR6239Mu8t1t5wA2DqVF5zfckhCkUaq
NlKC+5O3jzS2y9+fLqfHaX/efV7vJ791YKFdHikzDPNIn9Pt4Bf7uT8evRiFmYHhhmKZSlfDnfc3
J5bLOd+mw2N/eTtPYMR8tIS7Pp/gU8rGLCME29VVc3L3061wv7FPWfRFZoZn0+Glft5tN62DU11u
UCAPZFmddzC31bjftfvpH270f90lthtKJP3y7406EI2emyPnTT7e9s4QvX99vETbEwVhc5tMX8pT
Leh3twmHx/UGdEOfJVxIb6yETFIObx+Qpzyn0LfClLrr8HX3ivbp4Uyen6/sSKpwNcrDy/vuMJ3P
YGaVkumbQ93d+Z7clb5+Pe6n45TWD0aloq8CYYqcws5ZbXeFdi8Pd6a/JiAiRhaCZ7pnNOrux/s0
gSX3ktwjb0pEl1JI6XSJKruFX7n7ebq1gwUT5yajhefT/fFy/fnbtklnox18t75WPz8ufp236XKc
btOmuFhTKGxVK+y0h4fz6fDn7nid7m47H7uX89ftids2lretvsSf+9vDzW/aP5z6iS7k1f+hP7ut
adtiTwvXIUh2mvctWuitO6MK91OrxkSdXnRa6/T4BSZFtIuXcpG4LqvLt//8nPa3/eUwOSm6OpuI
RtVEzoeGzkrHsLlGctBiQRWBh/lwE7yn0/hXWYih8gnGWunOfxe3+TZFfbIlAUS4cnUU56OBcfLZ
hzS9Wbmhb7f98fTMDhNnRSxMf+BO/6ahLW+qn6Yf3y3w5n7j9PmI8ab/59398cvdgb1Tp+Ea3NnQ
w0lXDj2CvounE0cJw+72X8fT1d39w9cHd93jULHAOcZPueTsdHFjPeKU7k77PtBsIhU/zqY4VT8R
r3luXy7ocfbBrestCCMaTBeDJV+PbFCIZIOeuF7Ov9Am5cgwBGzDepOe2etI3InDZISFDvN5/no7
XZ7Z7IiHxnhTLQ1I0jB+l/Z+z92NQvPJMWvpNZIxnB1BI+SNybqJLuj5LZbF3oj13pw+/KV5Zmu6
PCm/42o11HfnqDwl0jElG0U6E/k+gjo87O8TEWu0S3mUMccc6ddntbrbf9+fovF65uhEMaSqRDvM
yMVt3/fn03EPsAeZetHMI8124fTxeX52dT0dYMYuXKQx3e+nl9PZ2czw4WyopuMpep/3MMWLm/Nj
+vnYvU3ub91c77v9TzfvL++5PU6vpwMfS/mDTgigKpLIyb29nr8+Lrv3ae98oYRSHfafvIcV6qTU
MiDBova30955ei/OYZ6OToF7//zmpMhNdvk33JBz13qVXPJ4WO/T+TMsnPts6aY9f6fzTJI3+vV5
jBt2PrupuMj6uOdUYheXk8bzCEd6PfLDncc+eBHOULHfipkMohLSGBfhdtgp4x9cGNH5/EX+bljK
usIiDu/T4U/vA4e/YfCTLmgWsg3JrERwaH+8BsPg4o7Xm/OxLtMPfK29tOgsMTmv+7F3wvHh/rPT
rNEfj9vp5esxgT3JI6lctBuDyHytvZAfp5/sqQgicPlttfq2sKsReQ7j0vbQuyzXhP7uHqeHuwxQ
RAXZFILFxWvkRMvJxi+v8lgPKNwcsrF26a1y//5GLg77sSxPRdB7HC7u6/X68OrN7a27v7v9i3fs
X65Hfsi5vYJKLm+MP2JktAs4SFI9/K6MeVI5ggnC62a2cxcmeHEIZffvZOd5hDceyRW4OMsYBHf/
9Xi/3rgRdL5EpKLeRaDOx3146MP5zR5Xc+v5vJ4uYEFdcYsThyRa1o/9Z9xpJ64nD6U51Tbt8ZkL
lS9ncCEk0SnpBvDXpyeaNrClukVi3m7Xr8/lDoVpBTHm5UcWR5UQ0WRoDi7IYr/UZBoEFJoOX7cp
iMfraTof0y36OvH3WJbiTyMs5wft3s7XlwCingg24a4Wr/iW/mOz0hVZcrzssRJndCFxWjVtWNjV
J+yGGosNSlHt/nK9/PIBVsIadi/n6+FPJzzBlpwuX8FsO3vrvJI7liJb3tNxAUh41WvIzVRBEBU5
8PeT8yRuh3deNxC59YFV3+cdurt9ObxDxWBFU1m5L8KViRbA6cvg17g4+o2XPtuVi6f28esWou8k
OItBYjel1L9UWpqeC3Za8q1QmUT5ebu+ea3DRapBx8jSI7N5GvuDTxBmkcNi0RfjSF3dp4/9n5Pz
5J2PeYaoY7hIQ8u8JRu7OKTJa/TeyFNyOyoihF4U8ko/rsc9u7faFOo8+dw/1GHnVd8lAG778+Hr
DD3fOX8Wfl6GOUTtG/SVd663FDDRWN43TDlLd693zq3cE4x4UX6bQ/Z5aSLfZTLS8XT/PO9/RW3B
a3NqVgIY2y9K4fSYPrAxEGYo7mey/KfL59ccRu7P/Bqotc2dE2ZJm1Ew/li6lh2oZS158MfTd1a6
ZCldVdj4hH/amdJ96chhXK6vp5uHoIEDpckM5CLfjEX72DvV/8P5Dtcf/DVsRjRRS15nR48GOKeL
zynwHl7fuoBxgR4ADClGGgRueLCaHF0GIdxO7w/vNFZnNZYsIixrSUDgjaGL6sF5LT0oS8E7eb/u
4vb5fLr8udtfDs5RvEteescyKElcChoKBM0WI+/Txxu6C0PeEJ3zlNF1vV6mcGqslqsOpye+5vm6
P3rP+Tg5XcA7l0S/Bl6+++tyxCGoypi0M7y7GXNAbqJtOXtlOIos/9gy/Gdn4b+CVtk00SZ7DgTN
p+ae/7Q4ipTvcnHDdfd6cvcRm1ISY8ryZ2cmyf58dxfwevvTi8bu/vXyuE1AVvOAPuNok9vycxeR
m3CR75P3wdgp2cJHtbowgsu5etB3+vl5vQM3maxOePMupF2tD1/8UtUm2Dl7TnN+Ko3l8QbWbyIu
e15W9gkixuDBNRcina9v7A5rXejKlCX93N/2b7f953vKe58u04tzOf/kjcBQmiMpiE4qXNSoeDfN
m2gG6pfr4f10PjoB3hxB9LplID1Vyq/JCV/ScU/5YEvntDnwS1G+D4+SB7O/HPlMdzBLlcc6JE0V
VKMb5C2A17sf7871CIkaXvl2xeknrzlgS6/X23R6u8C0aYiKm2GkN18LYWa3f/WhfpRGHj6ULePI
+M8xEN1Jfo9GVnGS4MIZuF/pFNkLkn2z0It2qDxEoHLygjwwIwS55U7ivkLaz/2vdxD5a6VaYOz1
EjPc705WztMNyG7ehnHJmMRd8Nb5/vX5efVZzIDNsHPoCtAk2fmwjQvkAQcQpkK9V/qc3UTiHRgi
6jMAFBHl7Sx8MM996WXTk0yYO3+WfQuuiaCICxHcJbl4BMprp4/97U/vuTkfbNqYkRhKdyXOyAnV
6fN+umOsT3SFgCcgdf8zomwecfS7G/0o1qblVXnWhyEBoSfzPK789SpQ3ETRz4za2d1ZGBjRJG6A
un1TA/hd8G7OjF7WkQm2lBT6yC5yci/jXu0PKGwlNygAHjrZj5zq2fkozyeDwDUcCsw8ZX1m52HG
zp/3y2YC3ezPJMJZ1LbHyWnbj1Pg1SzYm2cSXeL+h2WjhIMpoJTEK54+Ph+/UjS6jW8KIYpYPanN
AormAehmSmuVj9vHG+IhLDYeyIfn/Td3acid345IJUlBST+WTMlZb2udB3q+e5KEN054M0hgGlJC
di3Ytykq4iX44iW6NLiKXNr79PAUyUDFvNwn9oSNLb36eDif18+vzyIJwztpPbbVDeyYVyW6VGQJ
/Ii6NXlYyB0SshnkJCN3fwR/agZiWBMnWguajdv7/h42h3fqxgKvoxjiNeRvceQ5lDsw1LmkGRvI
t/l2/cFLrTGFzkvW9rC/fHdXxottkNr5PrE+1ECuYRduQ0dwKRfETc95vNo0UQoS7IRFbnryQ4kO
iZS6uXzFYwas8aCCuxaIOWPVAe1d9AFhIszKMmj6PRDCrrxSVNGcLofrLWSoDtezc8ixPEuSv9C5
S1pYXhCC4OG7S+H8H1aF9yxwFd2T8A355xRShYOIJMRjTFPzR+slK1K8xoS3rX4lkE5PPudy4VwZ
LxDLKEFypU0Z5XcXOx584HB9ffXw8Oz7z0RzL8GBFO7+1jnCb9z43TK+keFNxHE1z7DuSEeJ2XCP
FnHj6bzq3A5uvZcutgi45dYmyrz8MZ52CKDcGP6Q3Zo9w5FHE4QUzXyg8yuCseZtG7neauH/hWv9
9RkAr2QK7g9PsAxACW/uVYHiJYcwEIY9JycqYPZq9yX+PUPQbYXFqqtsR/xdH5IU3eewemMfSe48
FDiT3PlMNkl+z/6Fd/RkaQeSJq+yEbukDi4gZJKUrJFL5VKgc3QjAdRuKJ0vOayyhRsUFtvMCfj/
eBf+Mi/EBSmb4klUkV66MUT6ynX3Ol0OnhDkTPR98mARW80QsIZSZNWM5cyMu42pkHCHJByPTtq9
J+8cwp8xNXx9+XtQ1hjHKaPJBDX7/9o4DfovXyc3kycAVgLwivyYZgK4zl77efptLEPiU5imlS5c
vAWfwPQbBLxKo1pRTvY3rhccu5kq9UK+vztD6pYRgdbDO8ouk/wIeaVuTgBtJH9UyeyoOQQsvpNn
Hr3assJqufs+in29Hr7uiN0kCDSn1XKcpQ9R1aGGQfmrPBTykazN8eQG8IbPuyqH89dxeoYYITpR
ZjsJbuzpfTyGWnwm5MqBC5F/CPWjlQ4sSt4/LU+ZyAosTewieETETM0OqceVCx4HvwcEp6Yb6hWq
965S3JE4ZJ7bGYAcfkuzpvRRVZ/ELiDCAWPzWmChnkTOCVQspoS/STCz5B1ZrT0WaK6xRcz9DM+E
sCZ9a5ahzPTDoF2SBIlnSvXp1xdEmmIHbkPiP8GwqHDYFcSDPRo/16DxkWZfKDmKQpJgi7ms7JaV
RiXJU2KUfZx8+Uk0Jy7CP+8PGxQzihOFGjbZVqSs9AxlZqgveJGPDWhB0YRuICKIQgCqrUGHJwmz
IqAwieiZYouCc7W4Rc9Ek2OpEFOoHWPSx6/PKafid6t8Ia8UKsmgrKbrx8vVObK861v6N6wbHckC
PzFQLkqKLtWNj+vbmxuUjgZBGsrryA8ehjKp1+vtIxdI8S6oLYWJOgXJw2HlkOCTORsYs1xuR91h
Tce/un/6W4gt+BtL8vlev+h+eJrejui7ypaeoCyT025v4C3rTSuHl8xQ1PH7uy8jApdNEIfF8x8N
0fSny/t0O6W0zDb4oLrSLVZlkkTwGRHdAlpDTiUgDbP36i9TAtufuKKS2KGyaD0wqQi56rmEqSpj
qrFGx25fyCwRrNPveOod72/A7Nsl1/Q+PSBzfWkHpSJxpl9NZHGX+cl0LajywwP221S1fKX0WCZr
whx4CzWU1EhRwOnRIz8WxStPHQzxTENFlylMBYk5niMHkgCii2QwojK2GBXEsR1CLxQzMsUnvNAW
4balfGzM5NYU+42RSNK00xS4f4FpsLkE2/PE2q1iF9Vk+Uxvk2cSzDwHzzhK7hKfp5WFcZVdneze
8AEVkdHcdrZw7UMJ8f4tFFE7dTtPjxf7svpFZPgApketabn5YSa/4cWQs/V4TKJdOzX2CArkAvIa
YqhKVGhydYa04G6KsVTrtIoiEp9SNtTrMO/6gJFEyfMYqa0JUDdrW8iJ2or+EGH7kBd8+AT6c9aB
uAYEKlhCa0QxFcIWqozmWe7XG5/vqlgEudLnKfqCpAFwzv4vBLxYXwk9hqEK67qE5t3v7iR9SxNf
soEh1kGWhDq14JuzKt9Em4jvHCp7Ukj1ebokrxKfHIm+Q23cuqwnUjVDoEpY84h/JkiKlrx/ORdX
Lr1kUvVH6UNgcsXYwjAD7SXSdGdXOtMwsUoxqhDc5C0F2lWmWswULN7tq+IFVfClfCsQkGRSZV2V
ojg5tbgeT0V6jchSaGhuK1pNRKyfcs+UbSna+3R+9X2wJqfaD0vq8om6OnLDZX69m0YtL9evyxHg
5hUpWW7TyPjJlDnDpDYjzBxbINy26YPEOw/6LjnZlz8v1x8xL/wca5S4cUSeUzS2P7L16l2kiFDE
LQEftOQ5Jqp8MwtI6i30qCYASpS+lxiN+ej78wsY53JHem46H9PH9fbLHdnFCSZyjgkI58NEk2ga
PvwmoJ6z+sf7U1XagiRATEaiE+swdtDZuBeU5JuDIJ/HbHFZK1ITL5F9ATcmqkDk/SRkbTZp8WcA
cjGWdWyJfRZbOvDqmpCD+pzheg9snK2SQ1vuSbrcRfFvLKR0B/+C+FSkkmnVxWt1ySO5++sFAu1S
NNOoJFj1iXvg+ZJbHq5nwqYDNWETeROEsqFpWXSRBnLCx1NQRttK55aXKiGRbjoe0+ZVTcvbmfui
zMKbeC2ni9vulDR/jg0ysGyQlJR8xp8imlnkbK2/RfuTrxMJ6iNmSZ8LZqvU4ECI0D5FyWckLK2Q
CLTSqroybtwpdMjzdKgAEl2+vIDzPvLQZC8vxRPQ2yd8dVn1YZj7TMBEui3zM9bWN8E3tEllStHR
+LFVrkBoeP2CnPjCvUskjEbPY0Ohlo6G0ohztlWobFvJ9f3x7/tDzM+TTFKUnwzouejtdP668RUV
rfqFuHvR2G9X+5KKvmCvadDly5ggfUiXBQ+axvBzf7FpqwBHAtKWcxBdxAAqQWRJdqVF+9795j0l
2XLdFq+U53bRvEW+LnOuYZV+C3jMc8mGvlkjnwMmqKSkKOPOFG8lb+Rl75vmHE//wJ4Iob0Ri593
c0eyn/wGgSj+43okwB8WCtGyMcHEBaQr5s/u09fxmpM6cIONbYEBmZIRz8prc5DVzjvkHYyUgv3Y
H8J/7HX4x5m2SgHPThbvRM/dYENZmEcIjmlOxMo85vz7EbwVUb7XQG5SkB425hQZuOiL7SkrLwKA
GzrguYHmaDlytoB4CtKwp089oE1GYsCxCZL17qO1GQzhOeWsgbtgR+8Xnp2kO9XDIjSCIId9bhc3
G2Dn/6A9EuTtEhUMXkoRRO/pNebhJ8wVFyT52kfUizLAzs5I3aa3YA5o/OBbGf3Y//K07Qu/tvyM
hBf3Qa3KgLgv6YsdcsnmpnZeCX0Cr6OUrwIoQlCK6VLghAhCau6TVh02s0PYExAkw5zeJZOitcee
R/kvX5N34F73X2d+Y8tHE9TIlgp6IUhA5ZYUDOUDEmvqbJSmgELsb7/4uQ3FgylFZ4E5MmFZ3IIE
JPPrkdGOJ7c7dRFmUqeCaNb5lWhJI9hkMxYiEkThBakDnnclWbKYpwygfoGp82zP8LyJKd/i68sL
ERlnBM5iRyIPX5DiuLIAPdS9LF0I3j2hNPViBK9nli950GYrz2ClIicO+jUfLlgiv/3sqsizM6Jk
soU+0sfb9ZO/tKWxUW0qdejh9PXprMS0/8B90kVmEszPLCU1tD8nRI6HLAQpu0uHlKzqciL+kO78
azLlexlkG6MH9FsMG5HTSfPRrnK4/5hebvuNi6kKvahJYmd/djEC+yV5UDujiTO/ZN1spjA07Nk0
H6V7x+lkQbym+d3A1EQ4coz257PbgefaqAhCQC2td1FauZGdEKTrTV/0p3u2g4jIWZa+qOJJHmDQ
eK83UO0nCDw/G6jM7p/J/dcvZ/74OSzBbvmm2evpcozRchRSZ0wCD3v/eXrszygIEJmb3s8lEuPc
lPu7j+neouc+RRd+E98UhPnRp9rkudn1Yjv3Lxsu4NC3ng2KRQ+0DBa6A8SPDB533+pImPuRhBvq
LGAACXn7MqjyfbWu6Z165332UPc/+Ry/IOheX0TD0VP2Qebdd8O4X4EvRV5FzZW+c4HF+/XrfPTz
ed9/n+Z2otxYtnwzL0XJ82a9fN1/zZwOVpyqXR8zu39uVwizGoKUH/fRCpuhmAWfxhK5oWWfKupl
ZRvjeSObQl8rNFUC4c+J9cnKM1jcxRDe3b9e2ISZIG0pSt20f3lxyvJw8wCDz/qx+9WRSCsQ3aNW
+DG9/Hl6pJbiAS3cssWSBKkeJbT51Z8Ul3rffG5OEdJu/FtWrUegY9HixqMgIjcF6ItHjKLKn2ME
3oQ271PRBXdBFn3jS/AKWOtBreWSH+dAOEXpHnx7ez+7/0fTs6L1Ni0NAbyv62Hh3WX/nTcExI2M
/aplqoryCcwQk/C99kRknMz3pF866Czlzz98//UpsoPC1LzrzLfTFLkaui8a6oZBMn+NL5YQCyW7
UoNLpe4OatGlv1faV921A+z98TgdNzyO9tvDSwiReFcxnQC1KQlIg9no23NKWOLWrMYCQUgksti9
25Pg30++RcQdrCr7u6R8JJLJn46KBHnqzVfUpHrK2JAWvMaXf9osEOHCcXF6yTnatIinZAzGFi/B
h91nW813nxG5+1gy00ZW1F7C6p0DZogDVS9KF9yzW3gnh7UMQ+lE64VaE5rOOXP28KvbipLpG/My
d4D0evSQqzcIR+YrNCLdEqqufOU2AQHTz0+nIiviJv8efIH0DQR2oVX/gVGWUjJbHgAFS7uy2KS4
zJtOO3miVWUetEcQZmX79fp64nEuVaoCXYfavncVh9+xWqEEb1RPiwygjhPVu6syV6kHpRRuELi6
ttjVhNrMqj40d5j+5Wt/zqQv/2f81hK/Y1wQ3lREen0lsN3pvhHGm6GwtEYTpfJUlaEgXO5ZlKmC
/O7t/jRXuRSJa15fEvM/Vk5I5IYHD+Ls14pa/AjSD3kOiDvqHsZKPfBgBqm67Yuah5h3vU3TLpOB
gQ4xpnCO53cy5j5NMeTwVHXkXnW2FQAtwd0txPbwtAnwQlXZkmydFfJGNE3fJM9UgqLRSKQ93bei
HlE9aJx8j9Nxdzjv78/oGUEOmLyKQmAsd0i8lik1QrLMq9zQ6SMY60dRjwneEiG9gfpEykwxcIxH
opvoJ+gW6OaII1/ZVThM38gX0c6AiT3MI6G2RP46psEohd52C9rIOrZEK3VLH9/Fn91fwlMbPF1H
kCYZDFa0NA49hg18QjcNfSum9N5a7DNxOQWH/2N6vF+PQIvoUsjW3SH8fACHUZDGquW1STjWZmhO
lL7vySu6seEcw91VZe7AiLZtTzADcsqoANkFrGASmEupwnPZS12+sG7rSknWcxmK1SW2wMIEd7vM
bgzBOQlNq1yOf1opnPdzq1Clv6Ab2WHileGVERsd8E/NtCbxIhgYUl4XBCrjhlWSsitg0RkujLZ6
sU7RGvCSOdoSGu0qN5Q9sXKTaEImkAeDVmQ/tuXT6oaw1uOEKf02pgq/z0023jCMamXL0Ma803Y8
rEqsOYGC6aQzqyLCg8+10ROko3KpgtL7j/kJt7TIk4vRHod38Lp86Z6XtwWqkVGUakyt6Z6Xa+of
D7Fm27dw/XD+4ejDC5JsKY3IzYjnYCXXTtw/p8nDf5/T/k/WNHQtq5rzlfGUZu/qqfiiPHkKX7BU
A/ZullkTSsoOWz03dANamgAGtgoPj6fvkZ6OmquIpdH0zBVQlOm01edTkAZCs2aVVSvy9KYzr1pE
AZbpcX3LTymc58Ws4hOY4g2JRcF/hN5bfEBqy5RcUjhfl6QmaVuY3CBzgzahWor94Pylx+7Fu/Ox
xMJHOwCRJNfIF4AMtmyUF7o1JSleTDFo2CJyH9AZNLJNb4d/T0qQio8UWCqSjXgSlRRCtPRDSiP5
2YSPyD/v2jXRcmkWFuxGaIu6GmunuG/l8i2tPKG/qozRlvt8XD4nrW7p5yP35ZAnrZeUQP3DveE+
F3nRQ8gLrL6X7KfLl/TBc/Ilu1qTvyTdPciXPfelXb70wfKwXq3mvlT5N2lJRv5y4L7sly9tt4Cj
9Et2c3X+TRPBu2AEv15+ZSLwhvEiQKnKXcUKO7rgtAgOWh7F60uCLXln5OsGblnpSCVnJ3sC6V3E
ePFZOyELlDbl14/XL1xoLXK9eco49rTlbSpipRPgqw5FbjiXrEVP7C/FVRenMJCIPFr7eroAqqco
yTeJsbUipyyPR6dXr2mRdnodELynSSoRZ7xa/q/2nBGkIVKfsFSh5hbHu7lILY52j9tQ59FRN2FB
asr7lAaf38ZZt3MMR7nIETo/SeGYoYwk3m6n9PzB/RHDHUy4F/klqjSarJ58Bjczf0hetS28Dr+e
ih231apLkAK0GY5YW9ZQOAzzjwQMGsMrGoJ/oIUPULsy00ZI+b5S9P30QBkt0cZDas9lixpUUXOt
zAT/mfkcsKOYhfIp0o2IglDaPI4wU71JquZJ32N5jKFBFgzBweEcNMhTUUFXkAapJ+9uIZ+JEa0t
5tCaPeDTluhhynrQnF/4qEgChqapp8vrFTNr1eIqmHiaya8CY4WaePZ98WWwYBw7NNgztZVq8fx8
nUaor7fJVK84Gny2Jatl75nQjj4poTl3YN/i01Uc5Li8w/n0+Tnzmp9KHVbwe3KtWy1eMftlHAoZ
TwYivb2w2K5gHXLLyHgOAMHVLX7z0qHDX5q5pH4T2yc2zCOOxtQPWf26HPjQUZa73deUvyWG2Xms
7Pqa4NuNmI3E5YQC7FReetrLjRW6EOTSMF5blfFNsk9JMH3DgVCRlztB8BIqin1SlmYxYhOKgzMI
TkLBwxGCvJs3AxhrmPs8Xd4e/O6Ikj5IlRbKw1BWu1zSMC2z6NN+5/1n9N7gQziCPOeb8l2qa6d3
cgPfL8Qx7gt/PRkXzg/8X3YCS5mf6cShGQRrR/P2eejS0rx2mlhUol57euXJ2/W+THaqVUTk39a5
z602wp/APkaCFJc3vDovFN6zYwWjLwx6YiCfnSvv5eIZBEtQ4m54n1L2a+JXxPRDTmnONU2Z1XvE
XquU5fVLeZ3T/f4Z+mLsVsQ13mPtCy5XioK/Li5iiTAkfq9dkPeJSk5qcYQReY5U5R/v4RkRd73A
AerS4OjKGbp+Ts8RlKu5NfRL6yQgnU5WnLH5Ha/psT+d784EfnyAeh7KKc7PFJLkfrQPrzv+NSeR
HzqeeSW2WU/6DJOCmOQg7z3NHQTI9pL+YYYGEDreldSH1APZR7un5YWbnX9Vht0e0bp+ZCFhhCdu
4VAm6ZWlqc/b9Qri2ObxPtmpXOTXcfviJbyCcLErPYrb9XL6h//jAOCenbFAN5YECuRFnOK1hOWx
PBTWUYZRN2Y1FQpJfu78/8OUY2W65bqbc/LcUprwMm/cdubZFiyzmcmQ9o4+r+GiY7+B724Hr18g
X1i5iHP8GsEeUis2o+i+w8tzBRBEFYd6tPl1tmgLcZpViJKykcJR50R/nB6z05pqF/FZyI7nYBMW
E302hNctZQWtGmhBxn6r3FCQGpPaHZ8f9s6YD+pVJJaXsCs4Pirs3O9m73yDXeb58XukyuijW9W+
+Pvo9odPtBqGxlKxxNMblenNZsIeBPU+tsTizNCAEt0h+GLRIzYOoqxmNKIFlfjCHPxGlMiNwPui
HwJ5DD2Yq/hK2P4B8GLTkoklM72pUgU14zaz2SYnUcknjEFH5rf5UnHwEKsgjfD6dWuKbEnZW0Iw
lm7pZU+rav1AON1kKnrOQMkQj/evj5eZKA0xqLFv1WoWAMHS+ZS2V9rWwyT0DCC7bD+gFq+i78fp
O5vwIk46GAQKgCmf+PQvUcK6A0GqNEj/l98JXMmhBc9cVAE+AX1g2DJ2pYmyc7v+6f5wU9lGGlTp
59AmvNfrGdTyUxicedxwfgNuq0OQIA9Dl9o+dfTwiss5AkdwprID+j5U4CxIBa/6ChqfnfmUp8sm
vkUIZgQbmXM5u9/MKfUldW9uBvU770elVqbXv5/YHyHmtQ+mulm+sjx0wJ9ci+HdlIPn6B+kvYQ/
SIqkLO/QUMYti6H1hf9r+uqKzR0Pti/ZQD3UkF/Wi8ZAFSi2WIiu+dN1gTR701SrXmKV3NveWkIY
DjuiZnbXRHh0T8inUCV7Lml6F0kH3OfZallBMI7Q0qFGOSn+Hb335d0Q1CiEBj6Z2+cUopPj2Nsh
+g1s4GRLApLiSMfxyeGnWJFlz4CFV1DBcQEgi47/53RwB4ra8IxlEt1WPWK2Ci+FLeuL5gbdfKkh
wXXS+/JbbpssOFC+VX1W6mXP6JkJuJBOt98yVVXv5MRuul5v51+7RIHPgQffANJWr0J2svFcZapu
j6WcAS0Nj9lFEtdcZcy3v9Ot96xmhyP6Qcs28w0kOsISnvuH5+oir26nS+xJ7hN/oMMUeZeK9HKJ
HuecJIb9dkl7x/D45Lo7/Xt8veK8/eAMWVHIXIxlu8HY5gCyrrr0ugx520OpRrdKvuEaOSCfide0
fjcdLpg/6QDZhWd5u34kXc2iF36OD7eCRy4FeSgz8Gf7qtYKtx6zY+vJ16LgL+j2pffwcy3jhCk6
x9r8HKNPV+ccAt8ssWy/mFaVGDLN/j3L+7ChrQubPumIjS17exK8YVuR2PLRkBk2dgvc6MxMHw23
lctKi1JCK/lNFaFa2iy1wi6KxzwiH3MvbPNPUbzdqmX7jZmNrsaqerCRuC+hDmV5AcuJNN+7UxQN
B/Xy4MBher+ej3zLUEFf600ZrLkFcnruNSR8j74nt2/G9gVZ1yG0DemYXplwUUX05hL3bAqD+bTx
dL9+3Q7pffHwABNK/MZxxzxulvDL/vsp0u2dLXYx5a9I2owpiJA4cLcxEle+bud7+Lczez2R2UMo
6tHF1NvjtnPzeHC9Ok3oghMuxNClV0wSd5J+O7e2fznvZ1r/63mfLptvK8y+bh1+IHpX4Qc8VSGR
K3847Xz9EZc1F2H8xqipkDJO2y6l/PN3aSPSxB9Mu6g4PVlMb2ysv55rmCgYcVhGDJXoYhA5MCTT
A2fSLyOEVzfEk3N6+kjy+KFNmphfWfs8xXfCnP30DZA8A+HXzv/p4/aFZCgfRnh8Rj8rQ2CKOm/B
sCAmeMhZhsCoWdhDvb8zB9tbuzls6gYZh/UKVMzvcridI9B8kvCX/f10AJuZBdI7CqmKlghPPm4f
mOw/PGULDDfmi5LbpfxrxCf18olXxiwPHZIZJk02h05xis61+xWaeG+K55AvUAhaenC3/TsL4LxF
oSVSnuJ/4YB1qSTFcrz+YqxuC//WXlyfySecH7L6PS2TsmnxgvS5qab7dSdo9+ckLa9K5/z3U3fh
aU2TpS94q87pbInzMiyRFzBoV8pf/xu64emJ5zPyXGmPdf3Pykj/eD+FhiSvvkmHf7rEeQTI6A+L
0Q/NX8T89JmHqV7df/2OX3+Ng/TLIKE/Sk+bIQdPZ7c/Xj8f/83TZ2LHbjCYXgbzRyOWJyPiosCH
NvsvHp4Qc/WCjyITVzp8+Pl1fw9/GDs3nPhNj4mMGCYOKiBXY0QtZocr+IC/NVifBxtVBHpkezA0
yrCM4sL9wGpPyEe5ODSEzUOEHsvuryp6p2/XXXzaPbxHsAvXYvYowf6rZf8Di0nHwQ73u/xDhC8e
nRPdTuwOWojddxcg3d4uu67bvXDkT9VnRil5UMCPY3YHY8S4e7kdneO8c6OyFNK5hXAYZfRkhjSK
7pzHtpvuh/2nM4edBRORmYc6LFL56IyQfj1SzS1pfPwHV5SSd6NJaGF6lU70ne3k7uXoe/hfXs+H
x+7HTsodS7XVqYA2LCpX3z7ckrRb1P3dh+mvV+d+u3/ip5PyDUGx5HU1ZyM6MJsUZoXZkDp9pxXD
QUnj9Nzjx23/CXdnTiqHYeySyMnnbXancOBokLknRRgkvzn+cEclI+jl9JGQYBZqKGaROCt5FkOU
uoefBk+stmRLcsNYL3VuGr3Yvf44em5JgAjcGb2ye5uXQyps2mdkBDijPoseSe+0JEYiiRlaEuP2
Rvu96Xq3puPF30jJL2nmKS5TMWBNyoA10bPOnQwewrrbfDBWRpbp7h7lbsf4LmFd5LhULu1wbvTg
FJbenS+BxOOmdwTDzDhROK0xv/Mg3Kl7TWGU3r28OVXv9I3bMDCSFqXWmt/cau6RRntkx7amcMo4
HJncnYImvgVVwUv0kHUgacDnluW0qFThg1dnqH1Fkr/oLsDdvUxn38XokvSiCOZ7ZY/C9sdoTZmE
Y4rkgHpD5KvJLx5e81C+cx7dSAM3ULp2YSDyMsP+5X49x/6il0wL/XE6Ope26yQ3msmDBYQ4Debr
8nwy0H1q2YnE1HJckY8Y5oj7JWSY4uGdSEPVTvTcWKn1SBornGHRm3EfiRKRL7E/oxVpkTda5qqB
D+ea+re5Pz/PJ98H7Yr2WM3uR3lX4jsexQa/T76poxtrZLepz1tMqB/wvAS76ZZMTCz16vGzZZRl
wzvB7pI0xQpJPjgg+CFxkqVR8+MQIRhCHrijr1KvN4o9OKXM8xu1DMeuMNKqw2gqB4/1tOYNN+ys
dJ9nlbtJLLNaz4iVqkEVZ5fsJXtbFCsEkuyUDnFkynS7cCs9ynL2WdjnZD3C0Mu0UqqqIeuzMmFv
cXrEIA6VrR67Qv7SpAarcSQb37vaWKFQ/Arzdsn4OFK/cYj8BRzGcol6YyTFCuiMJajSpQRDSX4o
1bo6wVg1JJQVdklFNL8X29CdgtUIyqpSdxoyl6ay469w37fkyffnfPVm97kJ6YQTRtsyhKbKyPIq
3uDls5/RiQ2rwJ+Y7YlMLrlmVmvy11fn1ZE3VZ0UfV7vtDdznOacCnd3b8/OTWeNkD1gaLAku/u9
pWMl5UL9C16bGCqMIaS3G6LEDyZ71bLovrZxNiLn5nea6I4AJczVjOXd2nS05GBL7b+hG3m9kbrC
pxMPt3SAxpt3lSS5Gd6JFv22SPP+YC8Kx0uTjQoM7OeFWo7UtVzKXsC0eAOeWqhnJWIpGHWc2+pA
Z4lYo4D/pTKTX5f9h6/bdnFAIoI63cpeq/QCedqf+CQ5uFl+TtubrovrVVujprpld4qoJPoADGuP
+Es/2pbe3vDket4bhya3uciOXaQs1KVGtxlYplGUc+rzMPed0LxjMxJ9EknS3DanSRhesonvTfhK
r+Gdrhg4pSeDgQBJaq77sBS1edl4n6ZU98l0hNpYXwgb1UB4CzLUxSJrq4maC9x7kRKc7WvH3zqi
LUVsuEvPCir/ke5NeAxUP3tjWd2my9AyVVFN11cYzBhLVhGe35AwnhG8v8C7Zzyuoc48rkHuuoqN
sZ+57ZafILkgtWPUNPr8WlV52ecCHAiVsErNlAZcAmcUTImGSF5NipRpSQuMt+43wlxFbfhQPfiW
Pt+f36630+P9wwkGwE2Imh0CtUc2IBjkTnQk5O4WclRyceb7Xzjt/LUlPiilvXJaEth/IVoCzzte
vA+pLFlf+Eu/FXbzYt6TQLIPqtPAk+OtrRZ9YQfUViAp2SMcdSlMXWHWOglUpWadm61A5IUPRGTD
mvDwIq8+iWTKWH2K1SePJeimM8KNw0fJ2rbiERoY8UaWQlJ+HJH2uq2L+NBxfBoXmX0RPliT2awQ
liWAa3gccKBCGDx4g6cFYpJuKAIJ+axQ6ld2SOKOZqFsxKRPQJTWtjzuZYQcxN089wGHKLbICvTq
CVPHeqk2q0zyKAt/8Xg1LmjWIxRKjVvQG7vGwcL4pIlLsBe5x2DzGnzjYaFOt3A8AKDy4jr0CHlZ
K3J2UuRqk71qJUF4z4LEq0+AirzZpPeZqLptH5odkirAJ1MqfIRg+t9Fu3gRpcHUmEsD4rbPnYFi
zwaoAik66KFG2Y9YBfImXdArqNfbX4/U89IpS3hfd08qU3PglWmZz9q8hoK1ZiQi12JhEbTjmpfX
A0zWypHsf2cyxFa555sRiBgrnaU3Y+uOj62brkfb6PNgCnXUfAZCdlspDMkuj8THwauyKxwS4fKC
hkJjeHFqw87wgKEg+2zDX/otrJiHRHpZZEHmli7hIe8lJOaRXlNGsCnq5LNg/KqIUVehsVHyX+iL
hb4mb//h+0Ug90DodrQBQhdehAiiGqqqpOk2HDSezdCV+TRpn4EjJKBZkEtixpw45OM99sJJkkJO
WqDfxLNAxn2oI6RUMG602KUh3QD8dEg0pEIzKNmADn4zD6WEAXALo+74oJasUYkFAWjlDzve9hHp
UsuMqtun+NtnymBYsPjRsjt8tKdEEQ9r0UREgFdOzjy/8Mdm+XgWArWTmfLXhEL5cIPEnAQvfiJC
54MhXZFbtjxW3ucZmtkHztsEOeN8aTORFag5/vAJll2UHHPBPn/J6C7pBYKKmC9A5kUNFfYb930z
C6lEuctyO7HGO5Z1dp4nWoHUTt+Sa/aCgJtqWwOxWl/yGRqqp224JvaJ8IKdmTFPUsk2AWhBeCzE
L2ltOC8AlLQnNpJpNBjj5cCUWaiUHOXtLe84KZoglcGTgvETry57AoqHx8hGtaUHwGBDnXvZ1HKs
dRtMC4wmsB/IrdEEhHe7REpebqQO+IVJ/ZvML35uQ1OsuIMD5CHicvlIRY4b2J/mXUuaGcnZH26b
+Gs3tnl7wN3i98kW+VG5EdVbflKyDAbVM0lxVuf1ZexcytVvWhhVUtHSxJDLzEeIhftFUsAMc4tH
LkjWn5RjMhwe3rcc+uc3vUCyQGD2e3RCya5xHH4bHeXTHLaJjtY6/f745cPOnrelKl9nnW0DIM+y
G9X3JW/jGUoJSHZ2Bea3iTqxKxxLqGDOfZM0Dk8MN7rS5ymMBkkTXpcT0QzlPTKhc2kJ8cTTjY7x
C4J+hSxiML1l8HgjU7OLeSCajyqNbcK9ZJP57K9hnGh8MViVRDM2ocdYqthD+s3w+o1sc0A/Sv8X
WGLeERYlvyTNrxkp8opOD61Ta0ON/LlReNAGkutGFl/zSRYxlszk52grACeitH6RPUTOPeDDoLHJ
L4jBHZ8UIRYptqvQPQ59eJ9J9SAlza2HD8lqz0I9GyGwTi+hYImMCv32zESd1NoG03l5Kpz6hV/C
Ry18ipMQloKmUoZSuvjvKM7VhTrnEeUYeOdm7MursZHg4etKBEEHgktYlPLMVkPueZxjLH0/ubGp
wHEYas9vs+6GvSBDxyJLAGIGjDdd1RPUyTneDwRU7EYSsg6fOsnfWksJgjpkRIDO5s3HSLH90DZN
bNVv8AF9z/mkW+wLnhKkxO9X07G7ZqsaMblhnvi4TgzP0QnmdC2v5ESJqKoNuhqvdSUFnyPpaSMV
wtMJJC3zi5UCopW8ANgz4Qf5tJbqhq1Qh/ecaUWPWvPL13aA3e6x1A1aocBQ84HhUFJAhmcz40DQ
+xayziEq/IW2Q60Y0hNovvn2wc1ifz69hdLv6Y7zV5TKE5+DpBHG53Q7+McGMR1bUTYmLfTlzRWP
gYgyua6e5SPoI7/rqnAL9LZ3z5dmUCRkEE/ZMFbkCYdG9ptYFu/2jGXNodqsqOKVux2epyOMvL2x
TFk8H/uAUh/7WxW2IPfSMRxEACDzDjrFLlToifsEyYj3g834DDiTLQR/hKKrJ9aifEedg5UDvda5
lwOg0/GHSDP4mpbF+ltd7VJShyBrLkjSM2T01ChwZwGwyKoqrX/W7eMRzmZvgBY6wkuXaY7RLpIF
ft9YlwHpFcrCqxXq+IfWusklLhTn0hn/jj1hW3Hfhm47hQ/w6CoL8HQ4y8qBKSEtsxmGgpC2l62x
MKeVx0iJj2WWTvZtSeD5F0U4GTqQyyftKr/MCm/douTwjhaxqUpGtIK9MrywG9WqxX3iIvNQXjPL
u9UtBsSYtK1G+MtmUQfPjBxBjv1/JRGtKBiXMUbGawbdBsbWMWwAV/ypkhhF9Qs9NcIwvEQZSvKK
7z6BMsMXfhxZewwwV8UHNyT3onNrYGBKedvXldklqTc5sQgxJdn5IfzFUv+/1C48RiRWqfm1oeFd
fgol0vI54MHyR993LQ8WIB18rN1X5Tw9ZC+BQFK2yNq8B8tfLtoSxEcPYniW7qX5zhCq+81UOJ9J
Ef3YqstHZpT3GfvSyKe6Na4hAl9zLEXbC+Kda/4oqbdIKcmMQuAXR3hgpLSKR3F4EIbq7WhVLJRT
kAlv14Y0Ss9BcZBlKk7rRlY49KCmstGg6TdFiQbtnkLYb/ixQJaIH9X32SdulHchx4KEQ96/G7Zy
1bwr3A8tT5j3wnheuqLNa4Jg6Wd1CygFyefYV1VUv8OwGbvnAeLCtwOdCBBZ4PeIUqasvk+IbPys
GCk7ibyAlZiQHJ4RfL4atNWoh1cyPKggaeV2lxsuMLRZ1AmgutlbmQigr+z4e6YeFW32v1VPjkR1
ZBpT/S/k/QWtsssr5A0Xj32RDEQqCx4g9swnpWh020c9iGvc+TsoSu66krwu5QchPlHguemt7ebJ
hUMzqGqjn3wgRbgDRTEWr5R5ESf6UwUuktgq2+XTr5QmXjjpmwqel3ZSTUNI8JyPBlA4GjX2MW1t
njU/E29+nofRANpExYL2LMMJSlbMKr82FU/zWpk32cQbCQx3qYreDv+Ybtf5QqYu1vwiac0WJSJj
m8jOzZZBhXkajWHlV48tYjO/VJ4IR3Oonswo9TPQPatbSV9ZmV8DROklgJOSRY6h8+pWjTAPFIjf
Czv5XiRS0gTaEDLPGxxnnllFHZzc2vCJcjdAbNQNX+63mfNi1L/pTvBBEOFek6KOJ1LHIInZtk18
6oq/6rTmmBoCXjT4ldJyA5pA3iDx8kh1Fc8IHrfjvdV2e98NDJJ3oknygjQu3PDJef+gma3dRm6B
/NviovPNsQHV2OoW2QEIP2+Vet3SO7Bo/8wX7dva23zC9vJKkTqvw7L5SO3wWJdtEuNAEM/3LRmf
cfMTM3/gd16XbcPEExacj/n6qmebbvEGQTqmlR0q1RWSadratRf5XTXe8eWdaJrHji9CD5siKYFI
0lrCUF69pT55xjBVLd7+iNE+o1x46sXvN1HhqQRWt4DhMsf+7sK8f3iDljhHmz3qaarAPAF88vA8
oeellrk9xCRA+8RWb2RcLg969+UjCI9DbzlwfNJImJYibad+AdZIpD+8UGggZM3ne22ZiVZl4bJ/
ZQT4HEWg2OfwYkWHRQ10VtCyfsbX4I+qVOApCoi5RdCLgDIww+stT3t3IAfTrIYBRUO8e0H4UkVL
CpqL491zWiTiVycU7KsOrGNXXAMz4EoI0O9T/w7NABxccRFUZqW14QDeVSr6WJN8EpMq5zG5iqf6
NN4+8oBHCWsrxQNqoLU+eYsmdJAudzxd1Ovrq3+GExbRDKUIbLHtUFRAe3D1OS5+uvhND5t8id8h
IFE8vAM1v0s+H3QztEWwkrjhVWsU0ESYxOZjJi7xyPWRvyBdCT64P2AjCcBNlkWfQbPF1+RhhyIJ
+BwvgEc/+80ifR5Joe1nYtMQsQUy87diUL9VC8AXB0ta1OVLReZkNODM8/U0ZYWh7mAOGbyI0MFW
FL/RfYAW8+WI9GC02j1+PnbH6RBCiA4880D914gsb3NlAH2rqxuHC6T3+Ss7mBZJAkA5vLs/yHa9
2Ub8AGDgsnimg0ki0AiZ5gtDj9YtlFvwbyzIrt2yi/FJ+KtHXDfVPRX987miXrU6xra4EiCBSaoM
u9BVTq/ru58o7FZlcad4xrYBfKrsdyk32xewrtLY/x51n4+TKX88trrbUCyWD6ukfZKfjUIR0VpZ
OzTjR6HtHXx6Q5jNmnx2i+pmLU8xZkDFeQF5jltNDBCSo9uUGTYU4FPPtPOEXPpFoPvLp9Zts7iP
USmgf0/fCopjDAm6SdLEXYTRN1rhgyL6qtqN507zIY0xLe+YbycLEsJNAAqRCUHjZPFsLzLeQNK6
mvySQjOfwDuiusxywz4FCT4EbWjpYDoUs9C4r+FNPlMQYyrCs9zq+s6PJcWKUgbe7lXo7d6++Yar
6Pwrss6Pu32edy8vHjjCz9PSR2Xpo8T5geXwtPEP/LSxsc1RhAyjWLU7n+6P3ePXJ34MOzGMl1Wp
Hj0DjJ42Nu2njZsDjZYfyJB3vkXurhnesY4Pl2v/kHV8KJd/S7gfymfL5+kY/5awkX18Zll0uwO7
NWPe4qDWzPoR67tTH2BzTVe8H6zmpZhu3B38S9rHO3w2PRrmlqjMLz2f5qee8dPKSa+GkXy5WV+/
4t5HofN8UX5HUpOq/Kz3sGyqf+rZvzDuN/XHA4vcIMoDHslb8H5fere7H4lVK8Az2Lp6ZJx/mR6+
EV5da1vt8ZD2+CW8yQ0GkqJ4lbtbpMWta3c/XP1NFPzmJmh7/fB6eL99lvr5/XZWZBLtK79ZLRY1
pfxj09o/u+4N2I8tRZUeJV2ukJjPyfpxhMgALH9GvSrfpB8a78D7i8y/A08evPaAkG09av8e1nLg
tUHqy7J+d934h7N3x+vH7t27u/6ID7vTld0SW71QbiqRs7tTkLnDhsxV93pY9EJ4ENyd9eG8v99D
uTt/1MqUr4orU70qbnbhUXG/KHYq9M11akdKPYnuYeo5twjuLCdO4sTOmexdAIDd9TFgDKKfRnKV
WyqhQyphaKqE1VQGNJUssyFVPCKLKJFFtG3NUhuyjh8jsVuywJWCe5BuWYfH6fvufAmisjvxotu1
t6Zpn8GyjCBmMfTsqKROR6k7xzvJ65exb99Jf+ZqN90P+89p47iFfn5NvQZHNQ7lNgMjIHavyAh0
xXWar2RzRtIi4ena97J5XANyp2TTbV2WZndhZY/kQvCKYixUuTZtRYEu+SjKm6WbDhVSNVoXJmmu
omrfzQ5tbzUQ8ladI8EPpFUpgqploA7n29ZtSD1c4+Zk3pO/Dm5zeid1P47upG53n0PzQsjHKcs4
Hvewlg0vBHKgExbAeldO84RxztjS9YzBjJf8FF/gGHn7lB5I3LRPIxI7A0MlG0Ol++McVSgI3ehq
yhAw7ole8HK0tZJ4ij4Y7NXqSp7mOynwneyL3U15jnxGMp6RkyDgL3aFGp4DwEWA7ZMCLIknEfrV
zb6e9cbO6D4/uMJfJzkO7euUI5454BF+Nny8Y0vjYljpRXvTlxZ8NnVO+Lypc9sbhO91/3E6/9oI
s4fmPWjqmw7pG6VKYV47BNGTfcIhkM2tbk5pGJFDoLi9DmfmYuxwZj7QBSemSo08x8rCn/khiKHf
6/s/NsKw9JYXL0FjulznNBCvAWWpN5YZNU2wQhtUOcgDcgqQ1SLmL6dpVg6lP3ownZRmWwVliwMn
XWTnPTh3yTTcoaHUY6ojoWaFibk7D8AaGkEY4qN42Tk4E/p5n76O1910/giZFd5c2HKD9AoROD0D
CVBMbOu8NIIMK2xBIXel74EEdeVOy0rRi6Tob5tWXUu6QVq0vJW5rRmKqBOdYSWKLp50H97f95fj
duSousrHEMidQ1rRlipotj1+Mt59smJ3m86783TZAsrS6xMt9VFHNwpF1UywJf337j88xdewAPho
dVvPzyeukii/bOHERWCtZiXvvMpglpW74W+3aWtbUmOpVSwb0C21+366n15O59PjF1yU7sp7rtB5
D+g+iAorG1endJqPScCFkZCEVGg0XbGN8Mg+EQcs3iHEqnKg5VOEBgW1GgW19jd8Dj2gzId8Hto3
yH71moNnhugk6t33/fkt3NI9hCZHDhhfmTCLTZgqMU6k6i1S9QMDIxeBzoACHfE8lqEQcmC7tjvm
Z2J2+8fty+sehVA01dLtbauF9oQgPOE1OGT+DJJk6j3TJQVv7ri7O91+/3V57H/CyNi2TdasUXUK
CX5ATz61618UKtXspw+fxT16x5KPcKipohFxS1FIbIJFgRgsiTIbdLIPBbzf5DdoIxLoBefA1zYP
Bl0jk9g0EeBxLvzn3btxl+mOvThF/CZJsKbmHgm8RyWMBgEji3TgyBjAGlmWIAjs+ufQaY3GGNtR
W5FRQfC2ylGN9w0sf9ggbUBsFPUqSvdGIPfGcNtZISkCIymywBx039oNlKGlUadd6ltq+O4aw44j
stoaw6wEQcaOhGCymh4HnJWc4ZUcScOH9y112+H7vPtRDtDlG583SEOHghfdzA8RyOL1evi6PwNZ
iKYG1zG1aeXc4nnby1ftCM8LcCT0YefcNvP6wgap0cZzeh+3/eW+OZGuRH2NLPxqL3h+OZfrZdrw
rE2RJ138WH9UBx8sXN53Xxe3sPPpApOKJPb15XfGtG4UQrokm0+fA5clbtkIVXsuhlrBttgG9OZp
ZxEHC8QNCWYJOYsjCl+kaHvmyyV1TuubtwYbE9KStUoZfzk9w0kan8yPi438uOKSBnGrVdrqLS04
lK5EL9hAQWAOw9iGcvzCFg/p6CTp8ie8FeTCDyQlXCauUA6CwAqB7DlUTvmf0y/sd6Y3dJaVGMNF
8hsiIxgAuQhUNHDOZDtvK3SchljqoQFIS4D10hWvUX7FWzohBog7U3bUBtJL0Y38Pg0TKSMSnDXN
KTnD4Kek5e48PbwG9U9RwNSOIvjaZvDeG+S4MiSRMhyEPCvO6jYSkx1ITFa8AZhyRbwKZdu8pIo4
AIZQJD3ke3QsibMGkg7ZGSO2dSnL9Ni0deRyjyRQXu62cXd793r6edxILWrCP/DbZCWTEcTToeva
Er4RpYZkictCOoRCUALNRo8E4G3sNEA2Ut+ZeZ9lX++z+/bt9BFeCIE7pAkAORCIZG2fVLBPvEtL
48qB0PVaPF7EjCAxfPDbbNNEWcStqAge1Z2Yg6GZbArAOd02ENSFFCjG1aUQG8E7bNi97sv8eE+9
YucRT7fTIwihMxPBJWHHkU2UuJ3A65EYCw7VX0WJCpNNGVpEDSWgAxcC4WGymzMMG8kyhXVgZuGi
TLstQW8NMwOIPS5K9jjUOKNGAw1trseiK3qnK15/ft63iBGaKMHwMGzP5Mc3KNxKcWnbGb88EQAT
ZIRMi2rZRsSQY0EweEqPr+HHw/m+iT+2s2VhJKcy1Ew13l8w21hZJi3QoFALjOZ0zxtAgRxCZTjC
8IqNoD2xELARKguI6Bo9mtJoOEpWBpiA223U0+LToTSFaiOzJe9ok9ktCfBBWkZXdk8gy2lU2y9t
sBg6zGKwHKFVuVgkJyh4+aVejmhla90Ov22HV7pjS4xErAB4/0fqcYOMDM3WjctLY4ymQA473RjC
rm3LDBJdysihzlID3NzQyaKdXl/ZTxTTC83HITmygnT1inuX+WVeO0iVOE+xVRqkl1VYrWYqARTm
oHYG1hs5S3V6zlTJ542wQDZGlQpdVhigid5xQMrg9qgmv6jtv6FEpB4QZ/2wv28cuGimICsnHbrG
WUN44dGK5d2gaXQVft0kYgsLEHBTahileQIGTsCPtq3ymo6fQFkG8zQahF1rCpCVERk9JFS0RJAO
0hST8UFR5kSUkZRqTwVJvi7zC0tQ1wRvNLD6laayrbQAsrJyaAOxmaH1+f7rvlC0eBPJ5KobyA0C
gAh1URqCBNT6Hx0zZ2X9ktzdsSojoTgZZYqt0V2p5HRUcqePty1eOQlTyTMspWeHzlgz8eAq6jaY
U8NAl2k9Iq7neLp/nrHw2rGdUy3c+dcTLqESQ9886paqwnTXsWQvLTqvrudCHl7Plm2Te4SCdqXa
lNKYMAybuv/1TMLQllquVZghJOIrFWGk6dgyE4nINANmW85+y4a/0cnni6V6VCzVscVSM3waY2wY
YFPdMhRlmWW8L0Fug+yuj46HLGs+RT0f89ztIaQS+KxcrzhnV/9W2UpXiIy2q1h2DmVx1Yocmz5M
O65AaNoomKylPy3nvhyn+2G6HANsAMAnWkZrC2Bl5TmIjTySKA0/ipgMWtnQtnLthBQKvax9nrqp
EP/JtosGRCAYGG1DG7P4UDd2Pbtm0FS5nqiKkAbJpAawSunuL4f3DdzJGtw/gDAVECFQl1usYU0i
OnT7O4eOaLaWIdw0LB5OjI6yzc/vPJNVa+9lJRgBsgsoAKo2KqoHg9Tz2CyDaN8vJM0DS2cnKQok
hFpw16EqdoMIixwrwGfNl3iOLkHQc0MSJkVOX6Gcvn2e69UhGVal7dNy5UTOPiTwLYbSSbLgYiLn
ggTrWzTmAZVvdaBQPXM3kNenhg2+T8at5AZuVSXRFbu/kKo7GBYoL3J9581cn9q8SHfMRzVlUbhm
2gCAIZQsUBU5sH6J2r2iJLx4qtQY0UlHBjtoqnBU0NSrtswVoQ8sQRpKPASWkVg0lVHhnGUm62xU
uAvD14JnvFQjvLTKLPM1ogp1aZCV+KuO9/j0hsfH4MhNpBMpTi2eD2EkMm3mN4hDGs2oL0mKC9TY
KLoAWtgqjqGYmBKD9yJC502MktBikp7j4AlEvzdVgTpg6yB/T9nn3bQBNVLpLF8yZJ7prqQ048EW
7PXTJdKYcPcJ+zxCjoA1XXkSSiHAEUTAxHh7iTYDA9AhbSxK91Xm9mvB7Dph8d0xPxNxDWCOA1ck
uKq+hf5ISY6FsLBAZCjVPwEiocwVEWFFm/5Vlg6Z7VH/BuSCBIaRvLJHHoBbbNf08tZU6o0KV8LJ
DqSjZqcxX9yyWQkycLUFVFEBzSvN2NYw5QgDf3mkLRsPkh5NK9rBBs/INusja+8MGW3BOL+VsKGs
F6Fj0Eq3trAhPmKn+NrIBfVEgZKy7cxmw5NXG558/7w2GFHiSxiUk0zBn0HB39DsvdaiyCtAkR/b
ntDaN4O9IZnAvGlcEZIrZNNVDLsidz5ku96OW+3FuoLk2bU2tkfC0mxqV6pp5LDICu5AzqVFaeuh
TFtL0b7FqCZY9E8H0xrRfvquLa1zACtiALuFnPS/4a9YNJ+xe65Jn4TUn56BCGxo/nlQ0nMDDvvj
pqtBavZpCq+Kp5HQ6DLKUqhICbWJ0bL0MmAsa5CF7+3zd1qiSNSorTrlU27OAYRnbNe3p5BEy1Ay
9Z4MPV+iMQxPKF6LFG9ZRdvkSVtg5Ukzl9BPD5ALNxJokuliR2klL9uFkYqSMEjz2RZyh2j6dWdf
wSI6MIfWtWHwEkNBzVGHjXavfUoH3jfavap238Om+4KA/VHDrmY0EIHby7aReq4rqRhkk5dSSj6S
E6lw6oX0YoDp4zZK5t8YuYf/Pj43sr9cL78+rl/33fXl79Ph4XGC7o+f7496TEn6XPpycpWxdGag
TvXMQHOxqCgtFDchodkJqWUgSaJPbiBruIFmmFSkxNmIVyYVtzJdTsjiCY3sylQeSJA2AuxWD9yE
8pHFN1/whPqB3SGTV0aoIuzKWCGaVY9YC2ZzIMUOlA/fa3uzMZBhD19kcVT5tRFeHEdWHIdiaXO6
k52RZWdETk1vnr7oe/bUiBjVL7s2Buq4pY1DKddbN5YVozlhJGLfmy0x0qwYiSyP5AlkbiDZsaev
+uLqbwwkRskOJIvTN/j0u1EwAw3lXkt8ZTvNrWzofkvLalas58SaKE09u9Xs4WsyI7s9I8POSHbF
/RAbatayUjQjW88tTYy8FP2eehTs1e/M75xaJzkL0ptirzcm1LHacfitwxeCVUUdGaiLdXobyoib
0qiLLdqy+iO718r+1tXvuIFGU97YDb9oZLVsV8xnS8sOvFj3pY01GyqEW9ggip2WW9dDsDstigmp
jYE6zuiPspDquVcEOw53O8bsOwRWyJZKY6VajeV13dBEhrdn5ZFtCbVg3aIub5HnVmy5Rawru3R+
EOlV3w1vRvH2QxcDbR2aZC2syFJEXzxhxZozRIP6LR0rOEXUl9IoN5x01sIOuvBl5MZOszp/qc9I
7t5WGMP6MsNYKiK9sTDuegyy1NQb116y+kNkzRh4wxtCzbogY+XsDRsnzynGPm+0p5HaLU3NezJj
cWIb1152vC0bfscl6tjYY+iLwFNu6SH2snb5snoaqNm49ewlW57hEfGp2i0hEpyKHcff8odZnT/a
4tarDT+fVfmDKT2rDZm27NFL9VtHr1ih7n/HlnWKVYt5gzwh2W65VeyBiVILbdjWnr9kv+fDDqwa
kkMZwGysTLADdWUk5CGHRkr95Xz4E1b9irGqJu1aODmqPataZ5HCncBKSYC/bwKy9SQa85xJO+2E
KpkHg7tmzIUmt41mDto8w02ViJs6NpOc6xor3DGBJENCoWGzs3w8a7zHYix73dePmoghbc1jA3Sv
alz7VqNe2KKUqXhoJtJQETNJ85BnyJlMP6K/i7H9StUYGyYclrog1MqOSIxXXINusc4EZJ2x9COy
s7CuTzxLFRD4qY92FqFFxhAbZIyyBJMQorzMSR1n9H2/0fty6Jpl+LStKHr8hnuKskzMaJSwsu02
Wa2KKCAj9dtPY+stS4WqCxVSSzO1ETads1yvZBmkXe2WHtmoZk30uC0vSZFu1HZJzWnsVfIZl8eS
/ivKkubWRfIMVV5K0z6dZjoR9UrqOo6AmuuFQf7ZsFRPshCBFlJxCCXLDRYb3GDLVfDNrz2dnnqs
rC9pkYAgjLKSqqKLthrsgLw1IXB7xrIZeEHDWf2K2mKQ3ZGICUIV/sBW3EWGGHrNuG++p1SzkBBV
TbSdlUaJOnwkqi/fyFWKbd+nt9r3qfYb0VSEJ8/72SKTVHzapdVDxZJE/QiGqlwevjGGaAZSP1N8
suEPll2VVM8WKgE7Qkv3Zc7Ft0srEQGualeCXzBBFKRhg4KUl4UJ98UrZfGxsdVTwk+9JFxyXIgx
8T0onngUQ1UPyStCoHaHHRqPHvaX7/utFjs90yQ2N8ZBpkCUDdnVsGpGOPciFOi9Plm+IUc7cjh7
b/Xu63aKj8uAdhyaYyiuSDawLLjqAiCa1U4oMtMSNknOJKgtctdQmDWtWDOrN5pptxVMi7Wz8bao
bNN/5pdCnIY53e6P3fnxuG3wJX+DBzqgdo8d0+6xIOuiimBVhouWUeCIujkM/Ktht+v1wUu+tAPX
c5V47EhDdkxpXbF+xNFXZQPa3vIvaUn8kla7J8iq6FxsFJ3rApCwA9MJGd3hntnVuggJgU8d0/yu
ZPTCWvOheEZJMtU6MDC1225KVAFqQwU8V8yBOtgQOC8sB+IqSGSJXpO0QLGm+KMwk3bs6En1ccu1
BS1E7EaF2LCbIStkvkhDij6+IthCOpELqMbfoMUjF3Bg6lpDuw/tLPo0vwQCL+H4G2/ICFTVqiXz
tlQD2ABbTPxAWkRKqg9ORfkB31m6xG+hZypQ/QFpAUk53M2Wn0CQdcc+G0QqmxAllzSWGjbeahPo
VqqBDR7qBm0bj8KWO6M7xg6oDTtgmyzwtuuPTmrouJbbddAot4JG8Xwbkw7dClUWAOjWo4MCud1K
txubr1A2/AyX+J0KD5QW0Qa/H2PS/dx4H1J07Wp6+hySb/6+vxwm/BqSaBPd12EJxJUEdzfn3ofT
T/I4LR+ZdKxnVFnxDjX/UKPhGhcWQAy0m+S9KRtqq2XL45QII5Zcz9pVNIGKGdpdC9uih7I0euSc
b1p0izxgY9sN2qtt7VEnk7ItJX8fcac2Ybg3fuQzmIApOz8YvcJBT6RTAkhOMmW7rddwsOTT+9wC
3+c+gfiJ+U619W55xMi/MlUDatjgDUlbX5V4q9bt6ZC977hXmNZPmaBW4aJr94HM0PmMnEPgxTzx
qOmsuXEjin4VHYSh/Gt6r9fbR6rrmf9xd7qHV/L2p4uvrXw5Xw9/uhjk5sOz6/nr0Z5yTJvErMEg
50oikRiSl+u3Zfxv76fHt8d0f7jR0VByGYo8X3G43z/2j9vp504enclx4vW6P0yeLsGNEyHcMI4X
tcQqyeOoJ8eJ0H8YZ4wNMsNA8ljt3uvp53ScN3C6NVc4hCf0gpYdRKUdl4FicaDzx8AQahkiv71z
nx67PIovM3xcP/kxopIOY3iHZ36uMw9wOHzd9odfYBYyL4TYvmUEeQTfivytr2MWQzzn99PleNrd
ro/9YwKfx5Rm+FypxVs7XD8+ne455m24777f85ncwYB5R0WOHZYBJR0TjJJ3xJctJW3vR3HX55i6
z19vp7fTBQyS5UOSnBfZ1t3nbQriBva3y4MM4S/1+cZpPCVthkpbcgv+cb1+7D6my5fvQAy+7QsZ
UbWwOzf/awpvMoFtNfm0SY7JbcJ9un2f3EW+XB/P37+IAcXRdND38Zg+nYB8TofH6fv0mwOSNXog
RaSIr9BZfr/AEHmLUzIuXoaH15dR9M7+RizPmF5fX931dhrs1Wnrx69w3V/2hz+RYhVZR9uAS+p6
H/81FkCT0YNfYVa7+q8ZXhEDM4ZsTVR639/CFb/foQ43+WsVJhflUEUl/ja5893Hb/0m+lZGbj+/
n+6nl9PZb+95/4tTH/ExhVD50EfoYLkjUY3ttPNeprfb5DzW89Ut/HRxP7d7TD8f7m93xwcatl+G
DYV9Yj6xKJzqWN0kOEW7jBUAm2F1Pl9OlOAIplikbFybS9wqNIjO08ivvhd2mb0raQTZmEb6+sfJ
ufRBN6kjGkLRIdK2/t5udssIXtXPeEGtXv+RGkujkYZ8xsl/Dft6de7J7mP/6ZtqhS/dzhR/mH4D
zDK+TpE2O/e4rAdCA4x5gFxvv57J9+l23h6MSHPmlqwGcx77eX/Z39BIurgXmhnpOE2faBRDdt4r
CiPa4yg0iCqmkuKp1RASDZEFmtRxrYaYFTUUbdVlcZrp78mW7JLzHb67TG/7cGf/4UyJdx3n/wBI
6pilicTCyVlbBpBohLGU9f7/nuc2L+6OL+6Yd9sLU/w8vKc8TyMvDA2jy5XEe+F1vw8HnB4jnvQz
G5OVAXHpg/d4P9G9QWOIYmvSTSvXFrTb4f10Pt6my5MrNS3xpEr7cD59fk5w04fWGOTOJ/v41DKJ
Dsh93WsZQvItWnu9HN0TUxjGhq2elU7a4/2H8wjQMmQ5C9FcBjkwtKKumI8P06MFOH959R4++rrs
v+9P51A5EP/ct8U+HfYP5z9dX+4uVnN+Cu9AJUJsDGODSMQJT68BrfHMqj/v4POY7Un+Vyj4iFfG
Tev0FiaRZuuJ036WRzCYzp6ox7X6pEem++kf0+715ox3HAwtJ0flPsQwURPcD7fT5yMVVLgN+n79
c0KDmNYgbz6O3t/c/7iT/Lvb9jTq1+0MxpJ5QsHqqqQdj04Mbtdfu6M7IHdRLp+f7t7+AAN1ead9
iJ5M0tfn0buSP05HNy/n797293e0sqFYWfL0w1d+W/bn03HnBtzvnABMTpcc0DZ1pjiu1Ij84ubh
YdjwpP3+cJjuSH40QXUyK9yrkNvp6BWu+8vH9Hi/IrkxOcbw2IONeujv9ygzaafB9ypPwuQSM38k
3gD+cBfq+sNd/bOT3vm8wqBfTlFekTSarjyzPg2cBNHN0L+U6ZTuPEn3A/tXj9emu/x1OV/38Mrk
Aw2VMyqRQrywOsGMioYIa/qd4DZs3SWZYysPPiak4DY9vm6XnTsgd7nDBju53blRp73b6+t0v8w3
bP6x9C+RWOYD8DFiOsDX6+ELyY4goWWw1slcR6GbN9LDs8vuImkmYXDoBJLgs4/T/Z63y/2Psybv
1/ORC2aiROWphee0RB8Hc4owZsSy1n6ZnDcxRQzo/j75W+zP3ElClBJ0QGMpXl2hWdKRPH6c4C0W
ed1+pgkPdZ7Ox+ljivIT9YKLS6fLHQu8ztakV4sGX1RC2kPnuEYt87ju7rcDGi+LoIf2hvZ4n7er
u0Me7YgnP/08TJ8bV1Nn5dUHn0MSVej+a2e66Kl7KYoWyP/dYX94h5oxw97BIYhyOX28TB5cvnvN
tnm4Ii/d9/3s4+EmzXG9hMux+/hyjoVb6KbiN3k0o5ZGBWdvzuY1bg2hygkNCV2+7D/v79fHzuux
/W2PTYYl+QCrMhrk6x2dond6P4SM2ZVxm+5cLjSrsVjY2DUuLfqc2DCxUAovnzfn/Dj5Dx/Fc1uE
bPqXr/2Zc6p0aK2XMk9jNIzJVJdOSLhY918fL9fznR3JzLU1aaSU9DhOZ+eEzJvkR3L/4zT+P6Up
gpmR8Ujfi/ebM3D41sTpkIWJpcwurYgaW79fyxHev174U4zjymVcfyBpWuW+81/PeboxikBSOmhW
YCaqmElaIfAY4wyGYl8S6HNxWm5yXsP14F205D8kde/+3f396+EcCzCZLm+3HFfOkbNw5/O8PacJ
SZEupciQRbkpvu7dfw1mQWQmNL3gZXBjn/Q4lBPpF19luV3JvQg4G5gTWZFaVhQ+ur7yn825/wTO
pRTKbQqKZ1vQ5py//1XvpphSWYQjvsebfflyZ+M8SDBYVxxuMt4v7ibep9sSqnh+EdY1eU6eStvn
WMVDRPH711NgAEyH0/6MEMy4tfkGxG4SUedMly8f+j7QoZDdFVntkdMFuzG0DjSJaNqU16/LAU3c
FmogXd1bSvydXHz1CYxunAUZQi7h0XLA4EOydL1M/3C9xCgBHF/+Rc/qSwp+8oeE9zprTBubW8QN
y+ftftwpijvU510WHh8OJuF5XN2sOcQ23iOicU28CNF5mtyk/xbsnPdt/3sU4sXD3d+Qw9Nl39Hr
GT02fT0nTikgC6iARC5edjbIdZ3DXNa9dYrZidvueReCONAZtZi98DTtYIa8fsDJONlld2YIrIJE
TzifDn/62VTRyOvJjbDzuvht/4AeqS43V2/HcvNsgxfm1Vkw4k9AMGQ/xuxSJYXo/ZSY3A0gNoyi
jCicswQwcKHtBg6ji0giuRjzKd0md29uCCMQXUuY/FyenoIYyyn0C8zgd/3VBYQQKRlb/JffCSiR
DJPVeVwoZdKjkCX7CN24dGB96+j3j4eLlwrkBMIxnSyP3RTHfrk6Bfcrnr7/58f7/hE3z4eTG3CJ
FEV8OiZ+SHzjNYJoIWUe7ttmRNSRiKhbYIswUW/DXaR4eZTuQLpkm2CfzGGJVUtQns7j6EK/Dz90
uJ3usH/sbxAeM2VQbqh/nJzspFyDGEMeljT5dEJym/rq7qRvp5evh9NJTk9vDCQI6OONT77drycn
xht3KeNeVi7AQLIMztmACmpsoU0rUGEJ9Hc/rjcIgmsCRKmQNor3x2tNt6VOt2QU3Nfu3KYNMRW2
CGqTHwJwLWgHu3y5Q+WXSKzMGHRHUZ8xgLOL4f3hnactbFORu65L4Z+V8ylajAiaI2nPkhCyXbZK
IXhT/c+eCuQZ3G8PdCU1UWTDAuWGeUQs101rMclYmQlTwYtyUUR+hbcpQIG7f/maoOGQtrDoQ9Zm
08enC3g25LwvMPaUXYknN313SgDJpRoKMRqGZDI8zcR/VbxljpYw1DtRuA/Qr05XjlhfVbsfS77S
v6geFOSP2wl6M7ZCs/RKnmfRuz7hv9nWYCfq7cz1QWiP+iKHkIhE6XPiImxmRIwtTHHC86PKmLXI
5RruPxxmLC9Coo65r31+93oLX8X0LPnb3Zyb9pbaeYH3K0cjie1h4xUJ0Z5ZGmmmoZwvcjlG3sZv
janLMQc65tIcDQ2g8gAU6gwD3KZXr9oyYw4NNCwDzVuYB4rcsCcH6vOM+npJnujm01zoe7t877Hq
YTnL4/RzOh5f0ldOE90f/9vehV77+/TfvMbjiIUzkheJhUNoFj4QWKcY5P9yOvNvn3sG1x1y9B5Z
pVrGd1N0igndaV/PEUj9mUKIa4AZXYjlbsL+Da5ctnYufXf/i7dWnF8bvxfL9ypWXyWY33/5X9Mw
4Pt0iyKc4VODopjBvz/6PE306dzCXBAZA/cTFnGbBSswllS30Io/vPd5PjlFuP88oSHIwkLiVC/c
0t39+nVzhingjlszIRc4Jxn+ft+d7v/l9Od0/vU357r/+c837vTTKJbscqjhyviHO/snztnmOxta
oIuEda732ftiXNAoiXenROpeJlNKoN5cTyf7hcbp8u33Y+q0OWlKf50+p/3jL54k8T9CDh6KYVed
Vlre33/vsLIa8QP2otjkwNdAX0tySIGIMBTfB8QGfZ/1svJ3UXlaRFQZL19vb1O0KDNy9d8vf9mf
z/8pXPe/xJ3/L27j//0//ef2T/SBbx2PTgcUbQivgiZQdNr/GTlvbrbHU8h4BVduI9MXRk0pHj2m
2DZpgP2CaHhcMQx5YR3COL1uGSi8rDF3nifTC1VFaC5Dnos/zlmowhAeaFkgQ2cV5kD+65MT+DBm
QjbCtDySLGY28N67Q25Z+7uLRh9ghJQc1AGKHsJr3yRj9U8uIuCkO36eF+UtVeIJfN6uL+7q7y/u
srhY+HiccYT9AQh6HNAQOYiP8NZn9ng/eTfIb9bpgNaWCCZhx2V4cGjus3vyPvzhi4dI4wDJ+IYB
/OaYmRSYTz2uKCh/dPZZfEJRsErph7szRYf3FHvDbaHXQ4Y7QoTn6tkih/3X2/vjqWsh86lZT4Cx
qWfrel3HyeM3aKg8MZKlXA/0/JUVy4AmP8kzKxqPJD+mD9bniuc+kFshc/QGNmsX86CRUPBxuqOL
nNz9MEMTesjP9WifeUB0mJqIVXj7O6ljF6X+k7+4//3yH5dhfKIPDGXzUscwbEIWl6U+JQ6WXOLw
+qNu3rn36x1uuyDbHgy5blvfZ+aksx4QQ+DkDOn2ul36D0S8vh7Xvzgv/HT5QmdmsyoIrWtl1/Nb
PosH0gz5QhsVxFQ1Jjc7u88s2OYFD8HKxM2LPsL/+Ot/QQLVk9Xp8Cfjejb/4df/uJ13y3hoKlnA
w/smMwe+lodtBZyNS2hto7uVnkn10jEN8bh+7s7T9wmq0pFMTocZLv6Ud1gfvMMaNakkqjg8KGCy
UYgh0DEuEu54Pi3j/XFjFXPvfkuzEKEPL+UZNdI8dT5MtEByer6wRowNYUCnb8kGy0zrbWxQdMu/
f+xABiVulyLXxQdzuTqTUQ27iwtofYS9f0D7o7MHZDzl3qZa3EpLbPodligvEZ/mrkXV2/jfsGNk
GyOBXzQmtvi0aGrEyQtRjdBr1/j89QHXp7LYjyFZL1YObGKnxSkF0+NOZnvnVJY3P9PEdlz0jAdL
pwCWxAS1UyJu/5zztTVuL9rKI/pM//nyl1T26GUnrAIeL/HfPVlALK8YroU66DaehJJmlw9Fx0yV
2ohXXvbH5OihzczD+to80aUiAl8rePfdE1zoJtHlt8SKBOLuWLAKaGwWdC50OvOmheS0XLzWUoS9
7KG9V0ShhOLukQQpERVEs8hbMoZ4J3lzvqCC7HbMsseAFo1G73l89IQ/t03vVyniyfkUG+9U8Dh7
3KRs1vo8EnV7D38GfuTr+foD6UOi/U1wfo1OmOHx+pG+CbHYh/vw9HmORPu2GIQHzYI30CuTSMKJ
LOsZ/vEm8l+GvY5fepdcL/ykfx+A8FRI+08Li+0/XW//zc3l2/n0ffrr9MZpxTi2JrPqQ/f+KFS+
o9x15250SJMef7nA/nQAqzPLOKEOSaak5vvp7f188jGC3/CUyb06ad2Y1pCH8+WgMvUw4Pns8TOZ
V6MX3HqZw//7i0kZxiXkj0PDTpWaMW5v9P522v/l63bjwqk4N7UMn2rEkz8wfXyeA7sRgOBhhD7L
QXgPYwYsswyloig/0E80la4livf3/fH646/X68MnCsE08tcq9IxN/emWbf5vHBQft5msYggvo6ny
8//EJhXj9/nnQ8Sl5UKB/O9fj+n2f/zzf/0vYOk2C5Z392XSENuHHFJj/9HnC/0//mcgSCbfBdGH
Lq3DEti+nN7M7p3jRITPdU9kvyfoq/t848t8awp80gtI0lYg4RmHGLNoZNhgOZu/haw2k8WLx5MV
SogRtJkTlSG3Eiv2oq50duHzAZZjyXLGhbt0f+qc7UgusxfShBIuK/krl22NnysipDo0w2upRY+i
QK1IpG0IaHpfaUV36T6n3fXrEXzGj/2NS7RGySKrCp23knf97j7+P+YxwedZshL+nPoW+e4Eoary
nhDo6BC6yMHnue8M8yB02UnISRfS0mNoYj5jl4+r82lisabPkvsIJMqfzyk7P8OruyM/cooNu9QQ
Mz3s5mcVbe7H/hN8LPO0ZJjWHACmbEHgHARVebuezww6HIeyeR6xi+Y8k8uf03HHNmmJHwuyPR7Y
m98T8Lvyvr9dvDvq4v/vJ+dP/gI0mTjauIymTKCzp3Kt223/a+dCAae6OBp7PC2yp94KmFRPt7//
uhziUd2/OOJAHCHvRkhazSId+a7PzCGlcsOW+L/Xg/2/i7z6v0JkOrLbfVY+zv+7fnFlNXFZeVKh
FMEk1ujT+9LnexBIbTKVcpd3CUxgJFMPf0nU+K+PF3cHn9lXlUcQXTaMgFkSv9Pku8ARjTf412k6
HwMd8rG//8l/P2QRH3xyZkiYumf4PDHtIZ+Z8uKgxqSUEtvDKRJPZrsRzeR7Gu24PFjIpktFOnCF
l7sFOY3w/X89HXxNObOyOAppFxVaA0pbj/LfH+98/yI3Qm4+FIq/ZG5mEsjI4MvcmGkuqI3X7Hrb
v0UugDPrf4v/uGnWe+Lb9rFt7RLM7IrsYygXjs7CEbAVLFlX+IuN4/m2DvvH0goj/+Pu71x4OuQq
rbjc+Jc+kR/u99RI6PG3r0//ItN0/Mvf/vZPuGZnyOUhYUytCQk2sk58Y6NdeN4AUPWHXEMUxrGh
SXuKnDM9OO3/Lquw/O/A/LKQ6vCGXMo6rsddYsyZt4pWnYU29D1YsiLr2YYHrtBQkkzQoqFe9nfG
DxpybUc6CREaZdcDhchlrsVEc8o3KiYjfaI1+EDT/jNKyv724u7EX7xZP3Ckgi4UTsZbEZC3AOZ1
KRg4gG/U8k1Aw7SV2zc6fqmXLwOLMbF7Ptxdu/2aOx7yYyQaxEh4L50JzJfg5uftrHttfe5vod6B
p2KH6aW4zE9Pha6Fcu6WlDy5ZVxnghfr7PPSt7fIpQZA2JBLXlIzN5Ox4Xxr5tF90VIkc2wXsw0z
QjOrj0A0m2vB1tP92J+9VnKeW6KhbM+bNFT0foKwab8/nK6Mn8RWqIf3/enCM9GiFAzLNrvB4pA2
XQaPTfF5l3hKXT6lUH83d3lxUvSYS6J3r/s/YXl0nEm/DBV4ejLhiTxNM35m8mcBRk903JjQmn66
BcBEfBzEkt+OE6AFvouXfpvOUSG8nz7BaCPZlNC3MlkjWoLsrwH/MklHXjUJD7WpmZWfEN9nKDhx
oNxfOUVamlZILJj9DNOQAkMwKHmNL/RpTP5MrljmLGH8nL5pFv6SRG7vEcI7V7savx0bGxPl5Dh9
nPzdifvrbqpziZwpDeZ+tq4Ia8hQQWxNOy5dE+lImfkLhrIEKhDhobLWUIc7mo4h0fEYQMCkAGeH
ywXC/9GZYp+F+a/T8bQHm5bbfevcws75sY9QVnj98zRF2qrzv/ZMxB8HIs2p+/AXm2/b33w54HT8
L1f/dNsbGCT3MNe5NjwO4XTi0R3T8b/FUgEOlY3jlI/n6DKR9Nd0aZEckufWfNgxw7p+gNN3cDtJ
I+q59i7Kr3/INfRvI0ECya8Hr8L7uDNBrT250C9N5UfJpfCVlFIkMHz66VuohcLGmWTo24Ne+bE0
eS/bhE7riU/C+klxCvRR66DaROrAePm1y8sCi5hfIBGJoCHG1FIocGsXml5eERiKvGUeYMyk6EP+
NulnrvIiDpBf1g7cfikT3fEyPTzQEQ/rfAp1WL5jqUdTuKqeKAZZSduQKA2c/KU7ZMg2kdbbMfvk
7X+M2BY3utOcGlCSYGy996X75PQuDZXI0LxLFYZSRKPIpVrx/uXcHdpJmYzIj6UFwey9m5Ocp1jO
Ewp5ycQiWvIRaD1gfjQlkZ/ly8MszdaWufKDkRAztGjv68GOX7fUaCVyzj2XI/9rvyMb20mw6VCF
KBNQ8Y/pds2jpxTTZRf/ePLFORxoFIYd8s72oYqut/XUswg90S8iSlHOUvQ+ZuzVDJP5h56dU+K1
1nwdwZLzMPSxhubMlsJBMCsqRB7KnJ9uaA34dVma4XaCH7PIa/oxl8qmkHAgQ4fwBEgjAct9FkH2
q8avnwFI8wnED5bPEvfNlPtWn+h9joqAPOfswxjaA4C9v7m/nW5wOJIXEV1sUJ8owtviy5f9RwEm
N6+z8a+rq+yLXsNgn+/7OziFnsxT5bcjWquO1CKw5Cy80ddLCnBRw8H9jWnHp3SgInMjr0lsCa8C
UyTpLj+kmV/b2BpTgjEHMqZtjvmceu4tySPmJ+haU3vuppLbL0Ped9ZJTrx+0xypvHG6C103umdm
h44iGyPj/SCjuetx/XqAftrxShDLljuZ+o7m7gr4758yubJUIj2/wifsI8kFBjzMzPQzX+PnkQQy
J7AySYbxqtfYcWVobw+29CkuLEtoqEU1zxwdknhZSbxYzckPmpKmmaNwAUqtN+UcFT/H7NYB8SKM
ksHv4SBHztsBkyodprTM0IPj9vXpuW/eP3jq/kjidHiiUipF8o3xH1N6y5FHYuJsxkI+lWYEISp+
IA49uSzeWXF/BS4QfrYhbrZsy3p60Gx39VmT4EcBSVddKQFA28emBWCnVpov8WZv1/v9dV/cPXD1
8j6FsNzSNYF1iGIdcuVyVZr3nFqdHSLSkAr2t5zjPk9uxLrKF/GzLLp4nwmZK5SiSqAhcv8X7wNB
qcjmO/jy0naMg7fl3RE/QOdHegoqxVPKVA1lzJIfvnjqc53VgZeqdAE9zpepqmTPWKZAlC7C7Qgd
5ueuYQFRfUo+yWq6+NcBWOXz9AqmQ0hMoTbZIPcjdq0Cg6nywOQzyhwYHEJk6UWo41QNX+G0teVD
V/iT+qlpAQfLrEz8QJh1QAwJL8cDTyqRDyr5ub9fb4/3/XagLKnt7EOp5XNeLYBF+q4iiq692rkV
BmxVFy8O8Wx10O0p1+S/MOfTC3k7xqnAOMbXJRbY3juBulv4BO3cLaBPb3OkHIkfwZOchq3v06M2
4XuxvO2xfC9l6L3Lft+nTFco0cjdS5fvhd2YQJ9Szn4A0rk2DzBuDSDyCrx7YesV6K0V6LwCu7Td
zhMYNiegii1MCHgeoN+YgMhbGDvuJBn2I3gw8+7bKThbFoTvu39IaONMLTnT/DCNH+54PXguh3/o
F03JpnrDkGYK9MrVuXabgpXPVefuXkQw8QzGfCqkEc7yud36PO9pSvHqSiy25j/kU/Vwjc7fhyab
J3c5N+6GTYVj4Ryoc+EH+TG9/Hl6bB1Er/I2qD60fcz7GDRIwCwPntqCp6KJmvBk4C6vx/nhvjfI
1ghDHqFf3qMulrJxTxQrljHn5X9/UzJ7spDwllB9sP2mYJLrOhQLcb7Y+8bP23ykotyF+VpsyGXe
xVC4rk3WFp+pA46nCKQHn+5b0yH3VC1mfVnLlp4gO2GWxxvZqTiL53Fsj2R9Xe7712lz/LzYALBV
myW3hF8QkeuC05pn6AtJ//z1hNDlNYY4ttLuZmODB7IE3eU6WT+A83RCpU63qUu0KjZCrJTZlsiK
QhelAqS8kXbLxNGDCCW/azONR+jICCZUG5uxlv3Ns+gEEf4lSbQM8C30GvNk92+barErr6H4Xcnd
uFZ9cTF05VQJs7lSMoBaHgIt5HZjgVnPWFk4NcT6bEiNKa+3rB2bLdeuk6VfUztW3aZjRHbBNpTl
1t3LhxzLASxn+7Y2whSmiwi/ZyTkyi8sE9SjWCJgqsy2dmMklsubwHIAtemQ5FVEOlRtgLfOU1my
n/kNYj+Cr6r27MbteEOb8ubpehUbZ0rMt/d7pVBrfbo9CVEGLZU+HbeMsCW30xP7iUI9XV6ux227
Yk1fnqZeXY4N20Y97MB16omX/vH3+3OaShN/QgYmvKj3Ysu29GQihVgRodiYRD5UIW1u40Gs7JZs
j0UUSyxD4RpuxcJsLPvbrktfSZhsSenGrhAbFR6b7ftVZLqhMiS5bDkL2DaYW36QILNZ0sQkHNq4
t5KE+eFBMdHygzZ2RJZ6uLq2YitS77KcBfZCtwq0t1SwKJSXGFZYw8alzRMYA0QuG4pjI4yyJV4i
G7H5lvbrC8CiXwVAG9qPnEIoaCCAxe3r5ddWAEYioPAmODEji2+yuQsENYoNkaqz1FvyaAu3niyh
MOlbAYoo7ldtR6TavKCKv1Wp1nljN7P+HsOTFN2AXdmtFY2F3lL1FdtUxHlHQlGsKkVjS2uS7Rgb
+7kJBsqRCNfCA8gDbDresi9UjNxC0jZ8Pl1Op29J+pajIKDfKMyW0iOSHroX1WGT3BpBkhHoq5sU
4tzQe+TOB9ZNT7yMGajeEHS6DNHwEcSmNexMKV1ifdm25HMsoeI1BrZ1mEQ+9TqQF1thXUdCGvJg
x8rp27IAY+mzyVp5bt3yvkTiulVkuHUUFaoyrBTnhkjKcgIaeGobctWRGNPrcNuIi7Z8o7645qpf
5UC2tI5YiUV4YCD8vi/x8K8hsXR8lUAmIVLQ3S/tkO/31IHF/V3gFB6nw3k/k0vdH/l9ej1d9qEl
0enjxD6REporBErxUKJQnoB3/3r5PP2czt7bvnpaR+iq9vqAD9j7EWUesY8vV84lIPd7fLfFt/Pe
305swx4/iiDzIv3ZllnFt8XDhPzMfpyOj/fd+xS6CmzNUOWxPZ4wM7vDzu6+n6Yfu9PHG32KomPS
nqGnwbiMFopkl7FifWEosfxgyyXCCEOeT7KQsanUy1zOFhp9z0Wln3vfXijgHPOf79rTs4EknCrW
0/zStWoNIsEgfR4kvSMfK8D+cTqf91Ear7cp/c35WziO+zdP8At/+U+nn//ESGFYcUppiPm2zb3i
3A58419ZCJ8mWyqSu6XnF9LLSbxuTaDPo4jFySCjuAG+faIREgjCz8OPwDIe4yTGPIRcVPj1Mn27
Mfnz+Mv5s3A4dPP4GqS4eSp/mjHJ1gni3ctrl5lJ8HG6H8CsyY6rxd409svJDhilK3Y9+bYv5+vV
9w144z+cC8z79PJOehYjdCABG6Zt6/fiXsd5g83WhYwllKta8Zag6jxIaOzRkwlE9YdmIPMMusUT
9jNwXvAFnC+5Yzmyap8Vnr0oJ5Ds8vXHxgRMPmaPBSVjcNiDJrnxlMmN0st3L9fbcbqhz/pCHa2v
xbxevNi8217zrnctXC6oVFK3b9Gnh6ySyEzn8/Zhq67UqZoRN7AAVRx7uqKR9y7AZ0N5s3mlAq+2
UsUwSSW/XH9+u5/+wRUbxOMbWl+2JgB+PR/e2NJOs1UBI2RV4Y/RqrJ/XmwX+ZfrmWdUiYqprOb3
B303dvflnSf8CtskEKdPnfzc/+NPd+OO4McJyyy2l65+HHxqS/55opv6950vx79ef2z/NqEWBkvY
V78twW+XVRKpimbZbbBlpGgpsObpU8l+1n+dXr5OZ7hl5bqVpr/tN/1v787T+hMt3JYnPlQL12Dh
1aeS/Pg/exxy+8RNceLK1tPf3gFdDVFLrAHz73mJfW77STkLknkgPIQmT8B1sodPyIAtZCD5QssO
/O+369cnlF9ZkEWLYyQyBEaghPaMLsXb95wgUIZxrXeeur+23EdFFYDbBDR5WQiQNfUZphNAO9i1
xGDRAOEEkAzIcu7Enf7frnyFiyAU0WAtFTNzJDtjUfKUrE45c/S5KNVPU/TQqYmW1s0KcFN7EYr7
uOzAMn106mM589Seybnj30+X+PLTt8fr9fr45p/afbt8czH/Hz+bZdIqERVjmX0+QC/43x7+r1yB
tVKk2QORe/fTx2+nI/t7krS8yK+Nuq/ep/3xW5xvYJtzA9ixmHDKG8f4/1t6OO7b9QxaBKj0Rk0Y
Y1zsxs9v7lvfB+czTePvX3f/9ik3E9OrYimJ4ZlmwhewhhnY3GaBGL8Ymcwth/1Opma6346T7wr+
nWPOhzE70rlDLsuqFnWY2FeAY6/YvKjgEo75VOMAt9A3kj1e0oMix8iP23Iyl/33X99uby/sDBK8
sWxNSut7CUmbykpG87fdh2FX8wQ+2CEMaX7iL0Yv6ZG6LQj+LH8CfUflSoiWaPoNAJKpysXLeQ3h
PuP16yxTJHtP9v7l/DXhvZd5CL8TcYBwM5Mqebk+HoxeDwMIUyiFpRBkmcObf591YxIDv4tOCLbO
oC9n0C/Nnd5u30KOghd+0jrERyGJz1kd4C9nntzlREtIz+HUx5gm4cHO+QUw1Mo9atl8G2T2cNyG
zgeyv0++HT+/nbrU08nCO5G6bcgTuQwhx9BS1Yf3/Y2/kGQAk4Wh3M7Pr9sn0pSqb23l41mJ1KMo
zVSXFVoa4eN0PIJtULJcRV9cySe2QVUmL9VLks/Z8qq4glKi9bKCYKWfW4SoxKgp2ft/+dpjuRbF
1Uw+z0oeWFHsKpdhdZZbwqzHrGFDZ5N+dZrI2SHaldT60PnPNp9XcKWKX7kOTx2HIYomoNBDYaoO
5/39zn47Eo/NLu+k/szmiV29Ll09s5JDeHp6NG1FkpBF4PUZYwvxm0uGF51+cw4zh2lGrW4Zu3h7
5tyJDiClF+nnT0fgpuXTHhZ7WF6a16/D+53v76W0LE26kq1RbtNxw6J0xSh6yF5RqQhZZUw8znGp
JWgqYzwT9axtA0atLzw1rUpPLSDO3z5/8leAnOewaAHiZUQbDWxiU6XOmxF/X/JbYAQjje8JaWZP
gVwElYVhXvkTHrahPQN9XZfNv325/rjt+VtghmLXtMy6K2YUuJ+0qlQcdu1YutMHOnN81hu6gUNT
ZOX+/MzY8m+BWymo5ta6/vp+OrvAC7umxMUuwXIaYkFrrogWVWbxBhbV77GPz/3BQ/as9OvCAFhR
r+Qx7c8b66hirNL+hDzot7AkYIbKONzItae/34j0ZKnUs4N5K4NVTqBJizepqGt3e9IrIt5ESDoV
auAZ10wUQIKwlUXctEwpzVmjGVStI7tmdRnxET30TLib6itz68kiGe5inKcgA90NpVe3Sql/Y1tI
xE1UxfdmyMf41CpIp0iyiqjXtgElYwUTNpMDYEWY7CBtPRM8c6rN2cUP5U1UttQopRzzR1C6xZlP
0cKzeNVE5mKXorC4kbWHzu4mJ9DHJ/0UJQrtpnQRdT53r4m3SPy9elPRwepOFDsqiL8F0E3Tl5Mf
8upxrC1Hxi+4PbvzlnQlJspgBQTzwZlqinJl5Tc0ehkd9S0fc3sYTYahU3l/HvTodNtDW5LSyL20
ZXQmxzrIg95SXyLqfdfCC7BhI/g0qVQjR7EVLpgqXBAr6/yxv135/r3KqKaLG/MC/iYCLSJaQf6y
d2n3D0AndrLAoGWX754bBm1+qlRcH10rxmet6lAGq6a9dxsotqSRo7TrcG3rPlO7ZIg2XrwjjMST
Rs7lTtyQAiM+Nqntr27wj/cTykPo0inqiEl8ErMbqkyGbOrvjVEU8VAj3Y+uxTvan/ujrw/Bwkgi
tho+fSJbRdpgh0i3W/kHW1ZZD2WqSBq6DO+l5ciPxzHKO1mow2c0kiGxIykdCPL8jDCSgJkGC6uj
AMdQJRZWKvEJ6MKooWlXFhjqOX+3F638BFEw2OVLT6XkA9W1eYkq8jadeRBAltd0aEHCKHIggQtJ
K6QAkP9ZkvHMDMEC/8V7Z7phO0O2Ad5oXWUE1vFGCl35iEOiLNszAq1KF8GYYoRnVbxWCBY9bsOi
xFMZy/jvOUeZIjv5Vq0y4Si9YXrZBNWXS5UQMf46GWopxRoPoWqaRSNUcR4zuhNOYwPVHlv5oRWs
yku0KYHZbpsmHK2TLG7CykHbTMaYMhmzdlOwmTalmdbdOur2v84aturVCrlKJmwaNpLIGEtXI1Mg
3p38Tk6VAYy+K4fRCFzcBakGECNxvEmX+2ynZmyOt1Ol67LKdDwFCvSK8TlWRoaNgLsSspVNZAeD
W1W2TqoGSBiQHW4SBJWQ+VVOPgu+eTqq8Ih1I0jG2AKhLIXwvK/yjxARICpm5DzjTYaFlsW110MD
/4doFZFQ0VP+VC7/+fb9ClJxJJss8wvh5NafTx9bblSHzOdzR6E1a/qSaO3PZ2DBRRkh2DVVBYId
omdu2PEp7UdOMfRclMStx+ZmMG3nr6U5WeejImaIRvZKARVViKAcWQLdRh7QbuBF22MYVerutSsN
NZQRFUhh1qEmvNJDlZgSaymAyDNJKXk2JlJwE5BmRd15SbzxOY+ACQEU8+hqk1Nmt4BT3QpqSugX
Xmhjy4hinQ/amIGpZiBr4uEGZiZsK0ItcjlbgZ3QrRz7Kq28gbwNG9dig/BkVKmaljIsj7x5JQFc
yq5QikIXUSEUIttVAPRYF5W68/8JfAVT/LQRLG60QXNo8jzSOMfpdQ/en3OarRUOVaYNgNfjdmwK
U8xaVvpoRZ6FWJGovBO7voMolWhLUoXUTX0M5K6Mw8bKcZ2RV95p1QBc+Q3oVCvZ0so1hxScYw9k
aAH/+XUQo6ApOaV2Lljfu28RBkv0HhzD2KILzZf4Gd+/G5oJzeIqex8B3ObyKJVuwUub6IYorRoF
F56AuPoyN68IDRzT3KghEoQGXiblN6yZUU0eexPd4aGBFlewlMPpduCeNonCODQZkwtC9JxhsxUF
TVWjbMLHQwvRT1Fxva1APStwMZ+5HFqN7AgkrN2IrkVB6lN9c0s3xrBm21Z4AgywFaW67RrXfMPj
6coQamZvBDWFebiCwRcq2A8T0Qhu54/F1uQXmPA2NFOe670bq+ed9zIKzfBEBP2gt0PSo1RFvj+X
KO+fEOPNOhdN61xyN5n5VoXp8zdpaAtPOHuQ3utlK723Sj0gpJU+7CpaueltL89UXl6Z0noyQ63b
Geo1hM8DOsUmykZODMHexNdsBOGEiQecXdXy18t6m00jUwUtFZU8WXr2MEuXU3J09g1rSayUJrEf
vcwYFBFF7KbGlsu1ASgRdSRHisOXC9naT0WkgnTmqsCtjbSKrmLhNgiM0de+BRTW9xRFZGUhn5Ec
zxTnVUxJsbSNZP5m0QYhFZRx6ftTYBtxG0JfjwLhDw2Z7rurX8sDVatmjR/e11VNq4+PxDZJRVTM
8fdDgSBL0WLMgrDGALPjVrCVZ7M9Yy9vT8KO9H3xHNc0fQb+dtmSVreKjbbKKcxT5RSb3GMtS5mU
3TrY3qjhsWQE1eV3uxs8L94ElRIlCWCwUUhApEEprqBrE8rXNZQ/rIzgVhW0rTJNY4ar3CDgQhI9
O1QHsO2F2Ir6zTjgW7WmWg4sT7BtN1gT2JdKijA/sSsqq8y1otrt8zq/+7dRUCMY1m1Q9ph62pUU
JWO40kAQUVU1t0SMtwh7Upe4o2AOACFfVLfbfBca5ZG8ai7j7LZHmnTThkRxpRUxLoOy0IsmcnR8
dhUjwyxy+hX/MMlKkUrdedJYfnrVIhoWwPtWQF5kgaRu1RnjUNhWtMUWaAax166N2a3VKTj4kcmK
HrcKswhgqUQNz6R8ngDBYPcE8PpEdZPWkkmKhl0EYaUoOy+06Wgb/jvBJEgo0oinNtagW/yL2X0H
a9Dl3VvXh8HGDYaUFg+r1Mtz/lVnN4Lzp5iafVnOolZuHqxV78cWZlvVloHAvoxo1YomCi+h6dpW
rFVfxy6f2JM+24JG8QgfUTfDlZZvAZRBRQMyDZ7HxkEOXJnfk8Q00wHQN2mVDlyksZkQJsXa7DGO
LWrHvPat6gvblSwfI2sZ2rpHZObNgq6t8zftVPjjqZ4XosnNmBUBtqSigkEkWz4DbOnIRHk1GMNu
v2EhoadgYVJnLrMzVpbO8OFh3woKWtALj86WRqyqLd+MLCz5vuwi9P7M7pHsv5TknfXf8iGN1Iwh
DmtA5K6h8MV60yqsR5w9Q0ti81NfK0Ixv/2WuzxbaoOEYv7e96IJAm4lHYn+D60BWvwqaITU0HRn
G9Q2fg+4ljPvG244rQbuqO1+tnRJlHuoRbMFFgDbDAmEdLciKNJSDVaCysKjVX5tk0hgLcPKen8u
GNB9u8/B43kpUiVaqAyf8YQEM7NGDEN0//UWe9W7v5HOZAxsM3lNOtJ79zw1PXDfuVH5zxIgED4L
jQqWzwY5agu61yfEd/lSL19ad7fADw75swzshXkqsL6U5o/fZVXn90WOlv85SX4uH5D7TKvB8J9Z
WyxuJou7X9P9uFP8h6nDcTf31F4+NKPzesHydP7OZHTn600MxoBjN/m78CCGXb5Tvdtr8IbB/MBg
kBi93GD36ej+XQ+OPnley1kkvRUm23X83ghVbKpYzkIIJZVBv5haji/nIRcxdUJjgZDa4viz1Agn
iRb8oDKFmMplrnYYBbgVA1mjXdhR/gfHzgpwHKkgIH6ZUX//ZS8UkABNJHygEi7VOPISl8ppWhfK
jsbyezq/S9b1Rd9Ff6VcNAOuVF6fyu/XB0kdemmAnA6FiOeN0VbZAako3RWHYWTWGZ1RYIm21G2i
vP4SXH9RHKJa7pQwo+j4U5wf/e7KBwjj3dBSA0Etf1Evu2O7TiigcMolquU71QtgL6wo5pnthdZG
gp+jF5h0W3Tr6zwmAm5+xymNzg4CnKHU5U1cjsJdUqD5lS2kLWsaT0sC9knY4laofJ16F+oA8e5V
qcHHQtYEmGneGUID9TujFTiKxI1aNkblI5QDMNyWtTSdMeitnDH/npee+TXcxccQQH2XvymXM1Sd
7IG0dYIxF+7HLbrAmtgoT5fPbpRwJ6WRwSAvAslCbtz2jGCqpaHJp9jrHhz+mOcZsAuiL9wSwfqG
cmf6LG2mA0LT94y1SLYb3GAipx7xseQQ7Qi0d2cLw2b6rNncHwLNVnqYkrhSCpxEKnfJ9yJ/p532
RqZb9Yzylv0goSk1jHtidYd86J7xoQfbAyOTov58+F0+fAtMt6Y7OhZC4xwFIDSDYfbFuVAKbWhX
6m6i2pQA1kkT7zt4+8sCdTcCp90qRrVJ3/4d7ItkzqGXXtJ+cj7iUPj6WatZLaAiFaXbncXMdCDk
So0hsknLCt9o5DwrVdp6QWMnjRwvSV42U5mJkw4eqN9aG5IQoYNOqeSuYK+A1k7F1Uu4Zoh3MXYa
uSWWcUukcOZ+BK6lLANukQ/RucjgEDWzQOd4dQYcxVC8VGezoRjEsAOOkKykbVmhc4NGYLNt6bBl
T88YC+IRQ/2LckdHEKgpEsWSXmTB4zYaXAoty7BpJDobQQPz+6qLJ5s3VCnn6qEoVnPBoQeA+CWa
gdkZ7TYU7KguZdRkD3gY0DyVFoUvk2MKZ+wHfec3lcpMV3r5FiEKqis/FDIvUQ8djPHK+2SyqgGW
SY6VO0OCgw6oRD0oztJL0Q9IJ1oS/5IaVD/RQQAEK+XMs7xlt0SNRsKfNF052+Unh8GgmLITTLBm
3J0CusaWu5PvovPlRhQjzO9NNsAIJ+NAR40MuucCC4mc7lJHkWAtHiNAzWwZ51FESQLsqyu1myR3
cQThr6YRUHExxg6cYOqM1gq39Qg2Rms22h41+kFLtL7sCikNERdwokQ1VUM21AJfT2rG15PSR/Fg
qkP5g0NGoAeJEOjS2+sFQT2BjArOXvTgK0nR9eLchewl8BOsqjRb/rleABtD5axEH118h05vZOYp
fVgIXGdVwlZdCeoBVUHgCx+xDT2JDYCu0MSb9fbNqhyGqh7hLLUWzZC+bwwMtdrAbM6gLIrtuVhb
edwSGcOugkqXXTVC6A5MlMNZrO6BjJZpgLw8pYQCATrNAxjql7g7rRGGqMrtzLMc1SDRQZDkWCXd
CtneVHq1HL3JOqYzPZA1ipIaGjCLwVqgto1hsnHCQCuhFZOucuoA+LKJENtCdXzTbbAvpU7T2V3r
XQwOnLWeCbRHa4Cclf6vzb9m3OUEmqKKezNs0XcK6Rg9cBdXOnEZFXTzNONZjl2PAl/OsQzaCXjO
ledErJlH0MCVL5UMiZs6gRK4qSNg/LCnvpNGLpeyVSKWghcdAi84z9AMCuW1NQPNOMcB5Ch1bxkJ
HTol0TmMHCAgejOAuN5UqmIkIAv4OVsCJcZmGwHiHlUpmLS8/fH1ejtM304fb6f7twNDWYlv1o8M
fJHyzSj6tYXgSIKS9h3KxfaaiZxE1ymghYVgMkBG9ADuNMawQZ5T7QDq1lTILU2pS+SzKQJeeTjD
ipyJFwiE6iSDlhkrOwTRlLIqLQlGgAesicEfw+aMxMsXGmYBBJfg9FEcOMSew73cr3dQiVNIMDxI
v+wqTKjbbuA0jjXgbhlb5R1G4mQAhE4rTsOpUYIQwYgypZrN2yBGBWChUTFZgF4IrOK6AkrMYqPF
MAI7LFlwR0mg+lMh46KLNUmm637oAO5hGdzDyYxAaJKmgMJASQrO2gCslMBCUlHALCLl4CrKUikS
n7brNTh8aqdsFf0OGqWcqmgmp1ZkpywiGlT47FBGJcDLrBGsjl4Mic7D0ly1Xn5UO/0G8iRDleYy
OS4ZDJqnLj0bQ3wwBeOLTrbM6hKZIL4Ql7cYRuDaaoLQkV66IcAAClxJxThhthtRKrYfGefGqXWU
pzSMM+UGBOaQRCUmNE5czsEOAikomnoonD4hB4mSMqoyTtkJs3IDjdAMAhnSK8ATq4ATqUphQ0E+
R6Mb3R1F3kJJwMoUw15IlHdUJO9Y6f1hgH5UV+q2kYKQPeT7GS4x7j6ELLrOMj6fHgC9QdVsqKwV
Bw2Ak9SpqJW0GpQG0xxLhaGG0sUEFqpmpgqC6QPXresYPqMcAcSjdGnYso8RLga4FhUQlYPEHnjs
qi+DZxJd+IgOmG1TmG1tykgfbGcVz1BqAyCXKVXCs/na94OwiDQtiolmXD6d+x4cfM8lOmMeCDF9
8yJzrUVI56AQmir9nkK0ydlHGMHIQabGII1hK0KFLbQp0PyCw/SFRmR0UVJZSS7XRZYKLZCnMg9g
S4nqJu/IBc6tOwsgpWUoQ5PV4wiZNBVnhGRXOjlamJfJd9GLHkl3uL1BDDMOLhdDh06wpPxkIzM4
xQ1zh+PIxE8xdwy+1IKBTUO6GlhEqk01vcbKOd/gB6tcF+V7IcdGjlyOzJl8JKbUGhq6QIR/yLHK
WJW3EGyL4JxZT2FHJ6F1CbuRn5QoTaYrGk622wmqQfq01FH5J4OXifJBIxddhlUCY6N7xiEa1ID8
r4HxaXqP8YKLwSVzleogs9hwPoZbIUrJak7ta4WAOiPLwCuzsFx8iMBMyf2c0zTQa69KCsgRBqon
Ik9z4JDnpwGQR1gmw5YyCohxUKW9yGm4hQDftGNO0dN/gMsnGWlzmk1wnEZFlHB48ceUERRwiVSF
8nQVogwiGnqfKspYZ9CXerSMoyE7cKOULDEQQ2hKFjJaTZWhozBm1yGWg2K4m7KziLxnOAK8QJSx
9OpELuojDngnOkQ7UEzZhHQBm1Sc3KRONgvVTJaBEPhBOzI8nHEcJcKhRXkRsyl10oai55G9+AKB
7VZohkUb0a9vp9BqGQi5KG5W5tJqKUBiycjSZ8jEz3GAdSWa4t9Fgs9ZDZRM7sqMYtbidoQTrVni
uXLVaX8EL6iSwSnLjQU7mhWjt1j5Fhv3rxC9ja2BGJ3JBIp4ZLx304PMhxq47I5wBhNkFLXgCnWc
vTAwbjMjx990H/YIr+GoIKj0SY4do4X1oBFK0HPMr94ALEOVSf2iKGiEmIswzLZEtY8ID5rBsVSn
QSGD6So6li3LSMFcCeeoIuLBOumKOZRTkMbzy8GdEMzBuzWAI6xg00wgkaMAZ6hH7uidXUOFwJZy
QXqagwhJL+ALE4BICqp+hX+TGziKhuHCuvAZRTQdB7Un0BRYGqOZwCTSb4GYEk+aNKMJqqZHqT1L
WCSqoNgICdiiqmPZjbGaDCyS1DPoeCAVUoDq1tkeAiPi35NLLDsqrMI/hQ4yyZo7EA/jorqikfNO
Rxya6vJ6WENYIcCtNVzphRIjChOrNgCywAlQUwbJ1Mo63w3tp5Bc8XEI+JAeHhkCoOxBHanSJc5D
uzJ08g6AEI7HFyjGaKJ9VUCeUYlhBIC0EWWZD7HcthMIktCMk9ErxPs1VC0WwItVsHLRFjXLhGjq
tDegAgyCySe4P7IwNUugs9AXhQQYRqCC1zJ5Rb2FQYGUkK1CL6KFe9UhSzoy4FBIeSHqYFkNmvd0
VMqiiMZwSeveGWFIp5UFBZtCwyEzAFQwCxEG1YZqkjjgxVkTRKzsq4YFmhRPSVQ8xeWutemBaqO8
9oJ05Kv0oA2m5fxFyG6HEXTwMYNmsGjZIyagqthDtkyZIeyk46plA+qCkhGGcxZHhejGNcKfv7OI
fqB6RrdJZ9YA5mI1Z2YMCPSVrfoqEE3TCUQWN4zHLgUAMpRkW9sMI2C5aFOW1WdP2B0CqBDRI9e4
KV16BIFY5vwCqRYh36XAEEqdsAomaCTXoaiziEhP1dNA/dlIckItJ0ZWz3gAFMAKqmdo6u5qd9C2
9YohxgaAH5HGy1rE7EIb7+8DG2UY9q8P2NEP9pYpiIBdY1Rf0pwsgSNRcwxiEcNnkub1RlDbKxWD
1ITC138BuGmZ9CSYmRMp5LZVUeJYmAsgM2XmklBrFEqyEiENb5+oqnYZcQgkW5SkNSr2EWyhPOT9
Wg4wHywqtDRjz/CqfNcQ1ICtZwACIVGtVldVwhgCQgIiAE2SF3rGZ/TAuRtO6WvEq1CkdLEEMdTY
o5ZdsnBJTFdRToBzaUq3K1uLUQ4Wka8r20uvroDehZVVjEDKhFBlbt8xqZJY3odQk5EptUxzRf3s
uNSl0Ap10OMICxIKt7ZVV8K+iNSBC0X02lj6CojAWUXbWW4sgBLlWB09ad4C63JlieoYW0kpwrsl
c4L+1RZw8oKrYxOjgUqtQ20lkStb8fCymnHxJgrvTZk8KpnwAL3sOP9ptEMPol8rmDp3A4lR/cD4
QNF7An5XVYpIOwcMoEZADx2bO4aIEFc6E8tRUGnBmpWeGl6f9593/75WbLu8NHz11BcGaBhJeYSY
44bsOziTJRlpGgnfQqzZmeFLBb5Uy5eKLOL6eJ9u4YO56S87QlJFoqQXPKb7w4KP8lJNTi3+2Kdu
w4930jaaH8QugwQYKjqT9/P+/n6+vl3Bh4pMWYWiieRS5hmkRxPAIH0+rZwgv7h1T8d/Dv2Cwbci
73ommX+AL5JpEsng9/2yy+BwbRYL0tEavtA0kno5UfLF4tIk+Lkuf5aTAOTBOfCLfSFEKV/hP42N
29HOZCkgjXY/rt/Dw7Dgu2G1yPn+erHb/Tg93nfn/e1t2n3fn7+m3eHmBIu3dn0VL8Z5vJ8e/pDc
4sNHr6fzOQjY7v5wA9xBzUtW9B6WT30L8/fXrwf79l4cIFsYlU1THmD6+Hz8CocDxhAtryaPcZ6+
T/D7qjeWqr6/Pc7g43WhYDzZf7jv99+mn5/TwQnkt9f96fzlPg6DHK63Kf3N5fV8Ojzas/ObIsLq
+pD1kBkxS02+74L/MBQXpA/zGx9OcL4+Luj3uuUzWhoWHvy6fl2O4NPAo4+fepxPLy/wwWmO+fey
zb8/9pfj/nZEX4Zzi196h2P+ubQzEvykzTuTaZ/zhwp82OcP+0Va/dMT/jKiXxyWD/3+DsmAHa8f
4T/ff35Ol+NfvJj/dXr5Op2PaNl5lwkaQoZA36ri2wQYpG+v5//dv4GBPs8bF/yl6nP0ZRZG4mWf
Lvfp9vhnr+ufWPdQzD2pUDLEf/zpDgGO0BdXyeM64a7ub99Pl/BFNKtOK99ez9cfSyv999PxOF2+
8a/cBUsyJi9NphunVOMlUDcUGiJVgoZyTve3PXnLPE/reLo9fn27TeEfwsspYMSULg3+O33BLo4Z
WGDfzu/NRx/iAEMewHM7q5da4wDvd7csNIbMY4glPwGWhRbU5QXJpaMOnc3+xY0JRlDknFT5ml6e
jfPtjr8u+4/T4dtx2h8ep+/7BxrUkkHpqxrlcwzc2x5xjFQPJmcF2vGPLe68UURrFMWp2eJV2ujy
p4FucLdlXpbH4uwApoRHUmRxQ/mQYzq371GKwAXLYkQUd3Vw4RGj+XZs7FLy6MKAQ/k4IDPg1nWz
qhjRdsVtuX35Fzp8zADuylDs+NwLOu746+nndNy9vKETG4p9Lk+sOPl/+Trd/kT7nSK2MJR/KFqx
Q23ssyTSmHvpVPv8pJY1eVL1W4hrzc2+eJwEqi/2SgtGE2y/LpROfygE1Gr+YRb+0cmkC7Ig6Uz/
2RTNb/fTy5mLYtIkdTFJtX2Lbv4PtsftnjiYx/GJZ4rSeH1hubRFQrNlBbPy0WpBpNi5ca/mpImN
hf0wXXHK1dPl4ITJ7are1UwK8WXCplDlHfJEBT0+pQ+fOEpD5DgbopUOA2vLF95bEL1e2/uWsldD
4QrRXZ7txfV0RJc7z8HzjYxGigKfuM4nrlT54FKay+0dGq6OP+q4nz5KQvvZlXdWoLVsqRY9FLPR
LZfw5foTmKi8s+QVy9LIhQXxI/TF2di+MYXoxvHO0tCaBOPh7MLzfshCmdJN7uvHPdHDkGlCRF/Z
Jd31s6n3+UFsYSl7BQ4aHbEq7p8cGie0dyabPyBbuKJGNQ7oBsMG/YTLX1sZpJJKpauGbXu44UhY
UVxqzTpKSGz6cgzosQfoZVMSlSyuxsyS4Dzu7fHIQcjK72YiXSRYpoi+WI/pOSfHmkKtmaYmCkaQ
vzBjcWHay1vLxRN3yMpS4uxK6Z+h0ldj4T0r21SzXszALeqKWzRI3gN/TrqkLCa1KKlGHMZPishA
bh7Y9HI3/O++3GKpN68P2m9VRs+iAb/c37FD1RWxl9bb8MtWtCJLKzWg27fpEmtdxivb8NCGUhUF
aCHVhnghwVKlRYfe+g3NyRYRtF9j/ShlpMW1kb6QYpkpXN5vq7qIhFJrCT5NhiZ8Wjbi8zU06DeH
/GFZXsL1M47fpZ0L39myHwTXPjnNNH8YnOz8mJqwdifQb+r86Vi8cMX1DExTtfSzTOCLP4i+1PlA
huKVo6Hv0RqTEg6bUzV3GBjybvqQSEDxIEiYK/pSlT9JGk9J5iWRtMS8OaFgh5TMco+6JMHRxVRp
p1GWvB2/FGPxk5kwERaJzkOJQlhJocFo8L4SoSubkLgLgLanL0ROVMI6oI0l+6Mpq8uKTku4QYMq
LnMW9MF0Ai1zIDtrygpxIdEvJpcmfJjTbs6vZ8jY6SD7Yp56KHcH/aAaiqucD1J3XY81Xf5SF63Z
AokF6ldL5lu2NpfD0KONHYfyRDK5y/QdUlm2VK90tv0IZV2aQk+WbQnQh8YWmoD0sgg1B2hvU8C+
3qBIr4Yy2zH6J8oC0iQqS60/oOJD9JNyaN/NwFuHp2mL0yStfhT3HlVaZCnw+Ux6AVeoh/JICBPK
whXK9gp7CVWz6UrbPBBqtkIXxJhCZ1WaGaoeLcutIU1bDNSTttSTmdYNei+k2VY/acmTciPan4Gc
f1HsYo3qoZBrRnBiaR38dCh+k/S69yTfb2idY2kO8nSHUUH3ZcxyEIrWFSlWFhaZPVkaWkmbtEJB
7xn/xe8d1JO2tJa2aLiJNlaPxVTJw8Wh3xu0emNxvWQh7UgPKMP4d6NzftAyx9LDp7339IB+0XbM
/kTSJ3RhLBMauD9CP2nyXANvhNQFCeT8CiLpRdEU34o4TdQwoYgZOeJuuluirSZjcSb80jB7I4RE
SktyxxHfg4e3WZauaBaBzokA+tHRlB43aeDWWQOu5dzRdK1BgqSjCy1HzsaK3iDpGXUh6aqMZNAG
yR643EjQVdf+UPfCwkimL5WdLqcKo6eOBoi5Bbq7PDCQNUVEaqom32iy41jua+VnoY1V5Tq1KSMS
9Okg2WBPQrfA6NLzIc8ucG+kpUPhAA3RS+g2a2LziuqyAL/An5Slie7LoAS6ImVkoejL66OFvmhf
wiGqOE8kRKoMTcs7jfSI0szWRhFCul3Z2mJiXn4kySMipSgodqQvYfjSgi9VQevLejR+acCXsiSL
jjUxP/B3v/EE3sjLyxRQkxkrnpGs+Y/GzFMN5Pw+MaMTcXk6BOh4Rh53h/Ppc4scTYozQl40reaw
v3zfx3P4fD+5cSJV0E0v/qE8/vG5f7z/8TL94zTd/vJ1+z798/WPl/39dOCmP/d2inXJiw/rRjpc
PwLuPf3xdTn42U9h9Md0u/xxDBztfVjYnktYB167yqNnorrMI50+9m/+F47T6+kyHbmB5jcUYvfX
xQm9n/4x/eFGup1evtw2/BGyK9wY/czvF0VUQiZzuF3v97jJ7EQ6MkhuU+EGCSv53/aP/R/Xl7+7
Q//j83b9nG6P04QErtiePJjnfP8tLOZzf7tPfxy+brfp8vjjNnmmPrtNwlbbNHADni6eYOIGup/5
CylGVQqHpsP91S/ycdtf7q/X2wc7hulKEZBrAQuDuHn5Fd6vX7fDBKUqGa4wYu7q60a8Pzwz8r73
wnp/XG/TH57z/3/5fDk31twiOCrNhdzhBntMPx9/HG/7H394Eo07gqgQp/SP3Hgp/giVeB7MMDqP
OO9VuDh/3K5husfTLaoIdshBF1NMPuJ82U+X0+O0P7MXXA3MGeYF+tP842P/M+7U/WN/ZoezhgyX
I4H16rJg3P+cfvAi23f5NL0zY/pidffH7fqnVxD719dQv8Cuk8qqpru0lopqqtxS6e3MDlLrqt+n
B3vHU9i97L9pre/z9nUJt/w7K1lzq/71At9u++PJ353Txamxz+vZr9eJq7tJ3GBSl4pZ9M+o/XQ3
r18PXuHn6+TDjH657aH65rD//MNpan6zNNmskUpXnlbSz9QE+WnyOiyLVyZMEaX/uT8Fxfo57R/u
Z5yvw5ZPLIWDpfJfWaHp8e/nf/pj+snqsd4Q0e8WZspyse//dHVT+8+Xf/L/5E7jfL0D+TeVVhTF
PY/VeYvWZyQ+RROLrI6MruAKkYIC7Io9Wm942uqvi9N717fLCSzKUOVl6ISIPDg/6AnJVPnoQklE
39Dz8S5Cf2lu2Ltsc+Pi3K9+j9OUTqx+6WVpq8fVffb/6zT74equzv19/zmxkimJ2SF1x24wv7L/
HJysf0y3K3ZuhCYCmWmcrK1+1g3ss1jJfglSi2GjHzgfI7jPxhT7n4gC850JwhAPkA1QtCyPUJQW
Z387xM3mR5hzBmsncG1r3s7Xl/35358/3/e8DyKZCS2SkOyM3y+39awUGOLMZLSNPb/D9fMX7y0X
ilyp1SbtL2/OneRjMjKCKEZYb5L7k8OfvB1WpQrvWTu8GUfMFIe1TQ/LCsrtx+kSSrjvXy9us9yo
ivetesa3Ctbu7059u1js+3TmlVK+toQdueGvs1pAEBdB5ur8YqcON6d8nSLZcBvlSC5JBhQa2ik7
euw+zdW58f13Oi+vfHeHLycFH7vX6+WxO1/3RxAdByOVBxu8whr0RgDwl/0nf/U0c4KztYrK5HJ1
SjhYCjYuLN08WYrCh7t6ty3zOxN+ZouQb0xW4pfpzenb71PUlKwgKMUpqPf98fqj8FbCn/zFuYub
EzR6bIWXj19OWTqrfgZxUT+UNsAgX+dyvbx6+eR9YW1LQc8W5TztbyEy3RykghT0U8gHUpmC6vF+
SbUX1+/TeSjBSLEKiqwsv2zYlAEXOfICIAs9pzpOsXiFIng8gciRx3Kcf7/eJQ9zxEjqGZ/OahQP
+duyiVmZcghlK+lOXg41dYL3J7KLSciaQZl4dzDKUtpxdk2y9C6zgsvbne6WG5WreAloiWVcgaB8
Pqb9/ctptR8xUIdABEFJTHysQxY77VGH4BP+YfmQUzFGIAuj2t/41XR5b+VQORE0Fjjs7xMfA5Qg
VF5G008+/HIidOT9R2nJBRP0ZoRdqaCBw7vzcsB5zQ+pLIp204Df3l52vKEkGoT0wmSu7eG8//gE
3kCfFZySFCerN25TVcq+1LdatkCMALHzsrRlaWMgfr35maXdx1Cs7MpLp59xngwPFJQqM2MPSavE
EOU5pdKPranNPkShJl/2x/vX6+vpJ4+QjcUtbMV2P27Xy1uww2xol/0Tlfu+FHHTEyCbNKX7rOuo
wOnuGDxNF34UYnlJE6kGjMJuiR4KhzKBDBiIQdLZG1HcY2oFapcyLJX1J0tEP2u87QgaRb1DV2J/
AwA3nYT9B6dP2XY3IaTqGW+1Vg3Tv3yBIIGCIbmZFSfmF+6dnyDkQ6GW7bCKNx8/rp+n6Q++uQlF
gEeq2ZuG4mW6cx0wgpnQJRLZMJ7YSbElXMvPJgdQPLxDlafJFUBX71P+j7/+l+34pKcYTEfRJmSo
BG+oumK4jDbOLtgi7qyxW7qaiYKZWrjLb9PGNsuxQsX7aiLJNnnkmcd1ieqXgoYTy1n527S/PXVW
Rrdw+qCcP2/XxxWp6X4oYZecPCpDCLgnShou5dPI0YRsARyv78poUrVikuuPGx9mCxKzEy56Q/ru
3994j0YSV9B7NKaWun2A2fhz1k19VVzqDZS9L9HtvBA+XfjY3x48nJzHC2+pG61BYDwd30BMrBk3
oRWpvZ/e3s9sTWQwEby7tnh83mSd+WPXFPfZwKM2bnlXBiKps9r+fPYlYn98uP/29AlS/0IVwKgy
a8h3Or+G/JknbCDo1yAAMYiQd30kL0GyjIm6ttbbdsbmJ4PXCUHijE0XHzDev17Cn/Gz6gyT1gDm
Yc8701KIMt0iQSCzT5GM4iOZCme1ba0Y6g3DGfDnpzi5TsHGbXp1rtQFYGslLm7XyBNyEOm+qAIU
T3bTO+K8AqtvZd84cq95orXigetObZICKjUG/HlLQuoINeRbQUCUgDVoHtbl0mF5SjGJ6WeCEpAk
tR2eBTItykkM5n5e+TyTLUxFDgjaLI7NENoSxUFIjCvQCurBpfHnHKYM3Cax5c5hhzR7Xk71zJ6k
m9eN1z5SjQzEXN/woClCThQAH6ordkebNg6PEQFNnUHT0ohIjBUNspDbdD/sz8+c+FiCglpBwkbM
GrN8jbwyLajnk12w08WL93kK0ni/sUIkpGW8oHaMGtwEEJoKDoovU/QbwxC9HND4EfE0fv5x/Xqg
8M3I8ekMrVeW/+eVz9PbzjChYLq5y3HuUZbX9JXq77eDDD7+MqUnrAxKXkRlh1IXFPsqrFodrKZ9
5y9yX6YgteU01A16n9oQFRVcfV2FvJ+Xtz+iwP+MXKc7H/sORZZ17f2tHCWePNBphICV7nrk4fIO
O5v2z0p4+nm68015JU1AFwn/Fl7MI8W2ghcUw4jgsZdhYPhkrev7a/P6VumrSpH/y9f+6OOYw0xx
ftbLtRV5ZODE/HTZkHLN4HE5CphpBGwc0DOBRDh3nwyfQ2KParrA7eBxcT7+s0TKyWtIKxOK4AdD
M5hDAwN/OXtOobu5vIeiGcYWF0h4VBCI5tgX/ra14L7teaOnqbtSZJEa7sru8sXymaUswWul0ZXj
sw22L5kf4zqOwK5gEUXqjsmsQdTbUFLcsJUCj1bkWc7XWEbc7AS3qf9Uxxl619hYxblmGyTtnliX
UF7QZnL61jWJ33s6nkMAw2YkysStNhx+zVeSjCVsN3cDXize/vb29eGUwJ03Tz3RcKVYLYx9KFWC
hAbl96Uev1yfI8zSPEMBURBS6gYltcwLZNvNMVn+++urzxxtUVkMZ2HSuNMl9FO6vr6CNB+Ro7J+
Y83tDjaBjVtKXLKBPxeZC745U8hclKCb7tsr47VC3zFbw+ZVp598DclQRhtqaPE9nvW+CPuTPNFR
X9s4u4/T5Yv3CVXl1PdbnFSeWmw4HG7hvF8/pwvPAdSb4Vgkkf5l+Wd2e7JaGyifvKXOA9fxWW1O
3DtVpkejTF3jpYuN0r5P/192q6pElhi2gyDeC6u4wKLfKm158e9G8KUtZPt8wG605WAswTOBxjLP
prcz0z/e3clAg9VbQszODwAxJ5uTgfR4+QB3LEmo88MX1ZSdAeSZ7FkPaoZKl5CbTVa8lEy9Bltf
lMB/PrdPcpW+HcEgOJnb5sGYEqTMWep1SRDkeSlZZRxVgy4aIuTIsuaGsRtWjLOOG7ZRMRQ9MjkX
dU/TEWQnTMWEQITPl9Mb8t0JootZ0pkVBSiNY2FClOXcSVwHYv//rP1pk+S6kSaM/qBrISMBrh+l
I/W07qvNJM3yfmgrY0YwM0MVGRGKpSpLZv3fL+EACQcIf8DS3DGbOudUix5YHL7747GwUNXaB8wX
srZ1qDtqHPYic0u2R1QnqBIfJexNvR62AVl5jg5ijct7gV6F4qVGJdf4sWoNql+ewDzy0kUtU3Dj
OMkkEKatgVBJJ4RKKJwL3A+p7U5o+IGNMGHniUpk2Uzu7z5Ob4xFYMViUZ3y1snBx3GjlhV2GjlW
C0lIV2VOqkCM25ZSyIDVz2Zj5XHJgmC02viDZI03Yby9TawE1V43vDFo7a2ExbdYOrBUAk0AZqZE
nEwYH3+PVRlIKTRCfzfsj4Qt+k1QF9ioxKHhvaqoJEIBm/yyf8jlZK1uwj6xJlu3kmWslsVrwxNb
VSzCQo2KszmMtLJ0l1zIwtMTDS99Ei11FL2PeisaVnQ4qQvDBdi8LIs2W6fh8+u5Ynit+o3+Ix1V
popZKb3RPbI9drTiWXmKZaxhpcwa1iC3x7JqUp5/svLxeT7uLwdQm1IK1s26SAZFoFTfhTUyah1R
hNIvLOgTWGDiSlMSD+w+ri/jwkkG+cGylWRNgIRlXTQp8I9MUEq2ksom22TOOcoK1AxL8TBVUFAb
R/Mz3cVRDRcoQ/aPScxbFkJ0alt0FziMfpWEsK3AKi+y/dLwnjmfAoG+8uV8+oFd5TqUZfOAHWsU
PUD+v+2iwy821CyBuFchBCd8bygMCzHjjmLzoRN2GF8H87+Wo0pdqJV1Qq8720pU7G1K8sLreR/l
NoZaCxG3VAYmpxUYbBFNldNpA5bIiGdUFEIKDgQ6ZceSw9KsG9tI9M45QdCb3sg1fSR/Pi6H4+sP
u00g4rTAfLCcD5R7tyl663QJRCdqqzDlyayeWUP9fxYNTLUUhdxe7g/b1MQ11ZZy9kren05Zd3OP
9PQ/HnFZX8uMYJpS0+dhRoAbL3XvRiU1W7tHdOjQ6zr9WOwEEHH+ExGqhfCtF2o2PCRKtbDQROl0
ktpqI9EeKISmO8ElR2fTZgPSKxQO+Zk0EjgS0CCgf69BFQKJ8LZRtq8o71k36aqaHBoXCM4wpakD
XBUfcjKl1XJRRqn7lJpZvT1kfbURyBLO7ttzl4UBS1qyQdc+FrGhPqvmfaFd2sFbPWHkpqvQxdNt
LtD7GxMpyfbzN5kKcvI4zAOQM2m67wS9J4HY4egj78cO6mSTVZPfDMLeHrSoMfg5iimEFdMhUmI+
XFuGe53HtC4p+i0N8G1XCr35UV92LfdVqI3BCNb5OqAimzD6lmrwobixFQcT/8qxYx1a34VUK7mx
jzaMcNbFlhZfYKKFcFIyKoIXE3L2sZS8UuRGymg5YUNrygCZDD/qTZCb/MpOAEci9WwDlxiChOX+
SfYJPXnZl6IjLAyNu/Zfb8BPVM12uCXr3WC/mPkOoe24htj4GzH8f44mEyc/HxUCBdYqfWiToP8h
h9GVUHyewP2Y9iprUwlu0BsNL3N38PEwXqbruL6DiARrjK5LmozXCEhQMq4v7z2tl+qBdIR4kgtH
MxP2H8/zV9lmCwP1Oh1yfgMN5KoRBEuy1h8HbfoISCaVd4BN46rZzt8si/v/yhyuBNyO6Mq0fGUR
Vm6JmgnPz9MJYxjwPHXFw2NRgbGMJtZLrZtxfDLbNhdjCnaC+pWd9DayAnQip0Ak5ErkUkJWoWfq
X2gGsLEqAkNAqDZxuZds6IwpIXNIdf9T9UNyvJDDklVL9QoMJGXKYUItVdWrAD6KlJd1KThW0AkC
+4v6o1twCxuKfSolwBsxLZ6DEmtaob4kEWrBOAYC1nK6JyqHk9SH8HtKp+vIZjqgjkxtzzHlSkJU
GfZ0qCxEMuKuhqG4lV0aAuTnSqmrNgs5Hna/ym0aWv08hjDsalJi9WK6TxKhBDRdZATLjjeAckgH
rcfJ+TxOx3MgR+33sl0Q1j/rlC63Vj08lkZF/NnmQ53SnYWEelRGRQ9ZVjoi/IFUpocCZ6qSG+F5
gb8xDuTimlpAu0t457hOpyp71JifrDOWT6qWWiTTjUJynqKV8EaTDy7TFqUqMSIIiko2NKqG5Zu1
ykVwMjngsu6FVxQTZGoWyGddy4C9LKX8Yl7oWY4aS8gNS+f/JGTOch0pK+kxCr9xywh99Ow8hJYF
96nTuUv3geNeUsafFCSrEku5I7glXn/aJ5tRuXsOA5OFYE7H5QslbD1TXRJtP1lRkfc32jI0jFmc
eymGgCZiqAZWYayZ8fAtdY0AKyQn4PMBdxZZNo+1LQTfTobAaKNQg8bCTX6XjJDpgUj1G9g8TKb3
uw3RXZTahvoPxhB4XjIis5aRDzMGq+L1ud5Pmx8aHrLQlmG3ipZa41FtF48NrEawCDlqGUilqzBa
luXnWk4YSNNvWGW4+VcEVKSbIut+RW7mhldRbkSjCBLeIAcUpUx1pj0I2e9xzjONWiUHwatCMEZW
4Fk/7o9RbgzToanufbl1oRmU1H0rGG2rJojzcAYju1KQTuucg3nyqAC5ZMEu81jaMomJczzvjWUl
S8W+zwI7YQSbqkvOFfDJoX9cx7dfXW/TKd1+ZCELyjAO34GQgusNl8M6YVa6SoWr8qkvXgLSpzOa
PN3hCpTk40ZBuHAqzuV2BigKXbdRQHJbE0DMNUIKn3V1jN9nD0L02JNgt6C9mOwccIe8L1fz2WUw
/5vJ/raCWR2r7611Jk2fLX/IsEVZS5nNhFeJTcBaNynQsAxGrFy9VgTleHUjtG4gFJ8y6hRdubtv
R+vIiz5uJUSNU4U8t8t3UMjThj0+lTRGRfaRlcqyTxhNgPUNZWhKVqseWhzvrBoB/ILjqgEo0tAk
rgppAoszHzLTtbj/K8zRSbVrbpmvFeqFqgMBk63BDl7v4hEJF3DF8/T6QTVDHDxdqd+sKmDpFKOq
dL/mRQwtzlxqaWYCqnwvo+I978cwq3bYP0G2uw4rG3ULonQbyocqPmijTGWYMvkl3UfwIqnW6Lla
zIlUsdOR4+nVBOogFbc7PCa5vL0WxiSsLMdcMEaX/U/6RYQzI5eG9KG2UM26svGGusd1XW9R+XZN
h3E/7Rj0U0fY0d26QSU73aSS7OvA66hk60ADIJ88zmUltaKmEQP+jxxE0RmXVRplA+cb1VUnBOhT
hdYA4KTaUiNvbx1YF6xCtwyGkCSqNoAWbWodAduoCk/MQzqZJYtIHqUNqIx0b1lnZ2hprAbv5XP3
TRtVFWVwwTII7fnOsrX9iw6MNaASPHWdTtShd6O1BAvm5VBmiJRfRJ9E9g8tGfcOxehTGEfFc4Tk
ZpimE/C/F32W7SrsymxR/KoPUDZ5Qu9ar6zN+8RL8qA9XdUIHZv2czlDo0VHU4xTWV1jy6MotS6T
0Ukfcci9zSYEa9TroQt4DwzskXIZiflAw3naj3nSb8dXOYTD8LgoYNv0KYj5nMpjAS6TMtJCotwG
ucCMwBbNhzQtLvkJVexgGu4triY6uoya6EmE1dA17MyFvKJDI1mrRFWJTbFmzPWmE8C4QWk7wHvp
whh5sb74/IzxqkgV4Kymn2aG5nGYkZKfkJhqBwZ8IUirdTMY8LAlXSCNGV0Qov7sgf6l3suf7RB7
Hz9lNMMYFR9OiYMhJC3VTYChfNs4rSyq7NxXqmIC4P/SDKv1hRhcw9vrCbRXlmEIVBWZrmYMB8lV
QdBwklLUcoKoqX8iN5MGmoKokF2Ydu6z6E7HwyQej7IOavpwOpYWgRflYtc+KnatUBUK1amKL7YQ
guRMIaKUccmu0YQi2l4MqgHsemZyRw1M6cm7h/EKqpPLMOeXachxI0HkAHvUBJqcWpEzBquiEdrt
WcTm8vJ43kEWUsKtQU2WcmSO4771nIdWF5dJhqtCGDyQSmeBgR4FSmdJESl5YkQtYeMs4QDcTV5W
vfA0mP2xLARYZ00veG3Wdp+0PGiKb4O6gAqMUSMe+sNx+oesQj01SkLJInciUMm6E6IO+epT3IRQ
S8ndb5fj4TY+nqB7Mh7+ooRql209W10nxC7Xh/xyfHzI9aB13wmiIoHHBB2VpiujxleVKuzMGpqN
6n4SGpWijrK6ZTs01mdVZSsygQTSQms1Vt1wLEAbljLXQtsGwDQuBLj80H+BSlHHpaYNCrJ9yuhr
LKBloiRdKs7//fh4l21IHU0vlsfoGTNLfvMcqqzj7TVJnZqDBVNVLYiQJJxbpspU89qXAIIz2Q2K
azMq6QWn2gdOE1VQpRpWL69aoHMzBbpahh5YCoTP05O4GtUoK8IwOqBqoeFdTjVoCRnz43i/Tx4h
gjHUHEKwX6XbaHqdnaGe3YhOjruJylXgw2x5t2jQ7Rt2MWV6mKLe/S2eqNyL2WmEwmKh1OyIvw3j
buN2iS0wKnIUVHE924hti0FFQi5TVIWtVak833INdJcv4wNYESwrEuf6AISFzOptvQU3xkAL3zOx
zlZFQPCbBpjK8DGF5MpDkFIQuaijVrwuOT7aTBcEYZm6jRBEMMzg+fmBkPMkdIfkzKgcClvJvEqj
BZt10x1Msle1gEaG3EhZ44WBBG/JM0zY5/n4zydQmtGFlRtgCuVaaF5QrzI9gHiQhBaaS5O35iCX
4L21qdnBQSl8PsKqwyksZbr6aRNobS247usq1Gx1dq8lyEOIZoMGbUcNSRuKxvCcgboWpn4BeSrH
WXnCpQ3iZ9IslMvjHURbmy4GBOphAhuNUNcRrEkv5Tye18MAMNabEBq9Ltahcz+oVQzE5cW7D0gD
oADeaVytamdvW7BCqzYN07wYWi+Xt+cdToXmKZcgQOllAm5+KiNkkETsOw/p0eXLrJaKbYgRw51x
niZHoC6yL9VLE12XZG6uWZonfkLwzpSXkgdpDns/NYLg+DgeDoAUK4d1cYtEPXI4uljkwqQ1ELaM
qYON0Yi1fhFAc/gaotPKnVMVt+q2W/tAADJpEeRddWa05cbYbhsZ2U3Sc8xW0LNcbjgpM/TST+P5
DRSIFKUwJzdyADMlk93GnhIyfjIdBmpTxjx/QFzyt3xrcdvW4/Lcv8vITJ0S0sGJB4iHKTXMv6Kh
hLUOxctkY15AtEgqE0nYOtnZI31Y/K2L9a6+mijtZP7ej3fUTdA0VXb8M723DRVZTTS6SkJTAQPR
ewRCl5n1KGfgxT2uzx7GnVSvBJyvubR8ES1gUJgWqhzSVXkgAKkRdhyHs9+b8wJzTCWDIIr546xz
F4pwnSjbWcF9Xz6OD8BRpQrT9KlK3JxC58mqNbpOAtADRx6j6u5UH29+xG6EtSjPjTRxi6zADXNG
qsVsANKEyceXmjmoZOuU916YGqzpzw0wIFmwmKizS1WbR//h0l8xlYnx3359PlhmEX3kIkUX+o4w
EtCEJToQ3Ol6QrPuwtRrnXAfXk+X4ZGpj+IhDs1h38EIDBAw6bYnqDOh/apqM1gkx5+Pm9TbMK+D
64SgdXWVGu+5Mv9uBlpDtv461BjiCqnJT5HfPPdPcjXrGaSqsNyl1qmuK6AVC9wjcPTlf85glwvx
O4lWEoA7Oz6+EbQj6yiCeJ5l2QtRjORjGS+v8kORxktGotV2/YnCNMIoK36qJQ1V1RXh1CUFc4/Z
Mu+iF0Z0o+AASLBLdZiOxdyLIasCoDlrobgurd3ISznf5buQBpDglpbM0L7ip+bkkP0jWgU+0l8v
M7fxcGRZRoQgGFW3Cs+4fJwYnVHCOLkYUhibqqx1hEotElofNjTpNged5pxTJ1sAJlQYzUuO5sA+
U5M2NbzZdj1vRhroQoBsX94HkTPk3RXd5hpZI2F+TTOgxdrDCPBKnreJm/NUeF5R/8nSfwR8+Yq5
33pdP2+LRzKYjDqsq9jeuyu7cWXzk7gnVJAEgqkSCkZYr0PNcUcEsloJsa5Q7uInGwnvlZz0kk22
CxoJ2zGVCMi0PogjTZPxKfmJRBV/vmzCZ+RyejKaMpybiJWzd8r+p12XTUDNTZQTSgWdl8MTo85h
0qsqcFAXFEZ3Sdi0nKyTA42R97weLjjXngPYGZUisRTnDffpjM62R1au32zC2uNMdAmOivHaumoT
6HQ0gBN0NdS11IcQBpSMfsMWdF1Iyd1V5hQhXjUlNgAddCA2HZpsd8u6UVQ2mTk2r0pUiqTKbYHj
I83bCzaIgeraeivC1Lc3hNOohCGuyRIP6sgCxYOqljIdMewAxr1q2l4IvqLxgTJWSNn9DIZuBj1X
ZWdI0MsFMk038rzFRPg8g6LatMJZxbZpLdumWlgQKtQC9mQpWRIrexLVH9V9L7j0oWWTT4PreuOQ
J1av2Mr1im0IXKPzs81lYceKQ02BVFMAbxdAKFdCpVYqlPIjIzt1ZMM16dAcRAkupMmmKy8Az/sr
owHRNTge+f33daooNLRpECe2EfJd1G4mteYAsOJCyHZ4FnKsiIpMylpycL1VmmnxUUKhmVi7CKLD
9UZsBpRyaaLQw4a5AzksvToEMqia3KiO34CJ5U3Rp14aHoAKJ2hzXGBfo4l3jDIHdZ+y39OsigsO
qgiqIFGXPTdEDwdQkV1l5mOu5yzKL5n3Saa7MDgI8sv4fpRDDCrqXFbJcvpJHZ9MM+v58pj4/wVA
4rZhTZILFnhykw0+serkHvxquO+PR5lOLXRN+FToQCEYO/789JC5tWrE4nCfmp1e+HA6jSfZwagE
k0dWeHK4olVCOiQBcyVWMPAaK0178yODzwhEuwtLWXW5yZ1sZQw8LYXOktMxAGZSiUoqeBMEhrHQ
pWDKrbG9M0lX1YlYBniAYQbFSSqwEfvJs/ZdywxOY1u3LfA7AeKNClvnepwygBNFuignkoLugBep
myaDoL8FpqXqO3F8aIywgrpwxdqzsGsoE4xrormhEWYWdw+N+nOK3XZ0YMJtHt/Yo2zizsWiyk6t
WiCXwXQ41TcpWNR0yhYG5HQEbN+vJXgmHVMX2WBIgIwtx0FqLWAAI6yPDQnJOuO+OGQ3G34CM7TL
0HqsEPROrqcynbCRvXSIMsHKwUN0IdBTAHRohM2VKHEfJ7sHjEMrw16cRF04cu9KHsEI/Jewc4qK
r8UIVit06q01FZSUqms2jlalswWdb1quR+B1kTLiQlcIVekJiGz4ZKtY91ZpNFEQpG4ErDI01VUO
MDB0bGbbBpI7K6PD4LA3vfgA0KwGqTZGmE2ECpVolD2qfw6uiuSsqGABatTau8GBF16tVS3iK0wR
i05DuJ8qM9o2U47J2iu0j3ekagy1nEhqBQBBUHsmT3fQyUFYgq/mRDusy2pbKd8JJzIDONoqBAQN
HRvrsWXZu0nZMcIuITO1zM8y4c9KqK663IwUsIYtBGCsWQErjXrbPhoHNH+wBtWC1yf6ANaG0W3R
DEyFnuBn7g1KfRGrhHEeE1pFQLhaNLwyAEMsrRIWwvBmjWzzTgMNmkDkDXKRZdXBCfRhgGmOD4lx
0J8Yw/kuo1S3OlTdWkMTQIYiaCsh9JI0RAHGsMpiqDDU/7cX2RuBh+1HR8mw4m0YodBVpggKzI5q
s+mY2WBDvrHqQhxwXaTHqW0zTOrQpYya7SLPHYdOeglTKR13uz1OctyNoaNSma0qxKmUXhaIEEY6
i6PrzgyF1svQyXK5Wa9bcsndtlPCwIZ8p56sAdoIFaDFXtaGjrRwGkyq52qJV5iZiEA8NcxxtnFG
vQlzQt5tFTpuukelTZsqSaIUUGrGj8265NGoePy6TlUoOaU+yWX5zOoiBHfMm1Vk/skILGWYb9dt
ElzvZO5zuAGXtyhzNQDLHAOEvKaaKLndyPEhWOCo+loovYiQumQQzE7C1fNefG26u8WwS1Rl0ckJ
nvvzZXrbewAiV+kwyRr1uc0dpflBTE04k8vXkEj5OltqLdajhsMutU4OVZAzTlVU7ZUBMYc+RyWl
wuJSDS17CGVYD6fTIa7vt8v5DeWOdTSiTgnI2ygMpOMwUCUiW32HTrRKTgZZxtlgR4cLiCJRTeUM
W1O2DtoFImjRLVILpIWKBoWS6G0HCACy+dZJwySTBazAFSmEWugkYALMbfQh4IouxDzn83zcXw7A
BQ+rIKtM2QrlhuU71GVKf811mRYsCequtgh7Y1NAcak2Q7m6ohcQPhOuUk4sVp0AYufYfDwPL9PN
XV5fUWl1h0bleXdCRofkyemWF+TEKZxMhKlpm9QIKyDmbavo/5EFfRkUUqQQ5bOmdsmCHL0RapvG
2oLMRjjTKWIA0rAZ2KyKDwFoUHeVkUgZMCLFCiFXJt5sTOHAcsXEbYhnlLTHQBtzGOzUjeRtmUwG
rHFgxQDUt1drcXSDSXLiGmbFDWqV9nKsQQ0KPNtaKDIP3f/Jmbnexo+nrGALnV2M9xdeL5MZIseQ
vCwydS+t2jKI/v51/A6QJPqwtbWqN42jlD2QJnQG6z4t4+QBkk2/CVUVGkalzlZirKximc11I6Hz
RxHOrGzqBLMY4DbA+q5ShUF+OApmALmHkhVp1jRp01gX0/+bqH2/3L5ONg599XL5SAe6OgqVujdT
E/C4EQnmH9MuqVRzOpvbtA768rve0z/tQ6Z/TXdkyXYjXaxy7KvbuKlz6+QKcW4C0S+cy0n0k9FE
e2Fm7sRkCwrvjEjNrh6RKmUcUlIHIpUZ/pyoFKn5FTkB6RbjyYRaZFXce70Z8fQ4joCcckKOVgUh
W+fJOw4JAJy8q3vTbhq76re0JDeAYMvOX3HzeUHSxICMlor2yyrbtC+ZAD+EXNY7w36hCZo3jU6W
8TBoiRXbqAqgXNJFUIfjDcCjEsla6fCZNWKxMzDP3b2q4BmUKls8BjSYXV1VBqyiy3SfKURVss+i
bcPFART9aLnydfRlwHepkWPuqUkj4dwbawI6lQKVCUZ6om1GB9b+RA2QpPudvKz8In0jmhVHX9yg
UoqJ3b8c71frO5n1f5kkrSErXHAk9NSqm30SnujslF8W62YPuwfmfcp81vhXsEKkE8qgFWCMIrwF
1W0Ylf0JlNXcI7FcKxqlNd2vXL5iuUR7cmT39D83WNzJyy54UWt95U7reZ6k0OXtfIRrmmdxazco
s24zTZeAWXu+v4rH4YS4+1Hmjb4twnXp9Cy0nF4uVBeceapxWkrQYB3T5jcbJPzFdlV7A3WosbQ0
yLwE/MVlRZWMZNjoOaChmi5YiNa5YW2/FqsQnPKsAynr/b6VIzqdmzSskkiVVWQqNPguxcSfvb/w
sBJDQWzYpwaHVTchc+kguha8QBT2s8KmZsKwTNfrzsjDeeN4xq+YbZZqSx5DA95SRSgK9bri9mX8
JjRM2CXpMpT27RYDVCED1LMWTZXUctoJVeBb5mq7lPLIgnAjedh5y0wF45DRhku04Sq8VIXt2l+G
K3qYbfjSi3SLuwdRAs5P9JZSoCIo9mn5o5JYbB1pBhBvTuwXof/UbOvhFuGELI9wX2VdIBnaAzgr
7x4Vcyz04vukS33MGHkZxsyKEOb3ULFkmUDkyC6rL9k7VekKrbUxC4XtZMaGHpmWOi6khlPLIaVk
+a85ZHLCwHLKPlhOCecfoRdZsRvsOD5aKhi5ySTrGxUwWXrATyaMM8/fpnUFXrVcTwS2WTHRHT5w
lqSFWC/Oc2sF/rTvJyejtWKcWaQlBOaggpm7IWhFVM8O4h4zHPLiPCWSKloqMXCvgSmumsd0Ixue
EobAdi+ChfhbSTZ+7n9MvHMARmhZMitUrYFgIgd9jyqFnF4IpXAeBc/ka4AVUrCQn8ln1SrfdYkM
iDqU57r9ydC4PTUeMo0frFBVnA0n8pfSbenJNBuukengF2kCRlWVBalE8qBWQVTC2Q5Jw/dlONyf
r6/HT2T6huIlQqanJ70p2sSN3j5l0y89SeMZWSK9CtdTSoEEFDsoQ1ttG0gT0jV9FcZbgWsmZs3t
9XVleE4/4RRjN7aNvMdOkkijKdgHb6opUpEXicHE9mbHXqFZ5MsEhAZ5sQXOSUkdaKGIW0mH5NRz
Hen4Il9Rr5DvokK7aJOcRazWSUmRFWSdRlZD6FJVQsV35rDmqeyLlC7lYiYUHWzCQEQCJsHl57ed
eVUFFtZc8WNUxfV2eVyw0mhUHRrZQs1aLl1Xhu+kgpPIydfJUKxZOoFqEHoEooUOqOwC71z3ySJD
dGNlEzpxCWMtG3Nlj1WXaVEXd+jguFHvT9wIqbZDWCKHN+j+heawLpHz8H58ez+JlVXWcyhCo6FI
JTRQbY2zb1shjLgOq+SeLo8xdKsxnzPO99fxO8qtNGHAuw8LIWGLj5P//q11K8yWdeEhDI82YSqw
S3cZK8SRYag3SipYIyXETQXU5kbf5ZVtw71FliIzZ7EAYG3ZyGZvwrim7lEDujlBdP5lZLH75jhr
Ud/G1+kln0GUpC9CycsSzkuQBJpPfRlp2yoFF4/kmg4NOYXLxTS6/SrlYG3vSbW6iCsRzcOKcjkd
EvxFaD17sRZeOLZRFQ84F+nWSiuupZoz6+o3gfivMqn7DUG7mqU+w+R4GFrJiMZ5bnGUO/gJDBL3
IMJCEVVt6CjWSGtHxladjgrn62GUYLQtQhe7YI0UOkjWZm+5N62F8PK/3aplXZ4mNOTwQFib/wQR
5kpIEacXiXpk7er6sNyqFtK7WUI6etQFbihGQCIuWd+EFTDVv40/6QIcWkgGpXMj/9/LEdWYtFEZ
nJKgIoZM+pO5CeEYKNnrKJHXoUOvo902cyGbfKm4VOtRLNHdLJIhjZRZwskXZw6CzRdhSKXIWk7I
lOiiagzUs21rKJEpL8WE2SDn8fN4fwCZOU8mWnwVGN2Ecc1Qt2ipEAAZlk0fPvgWD0D4zdI/Kkf/
i5Qhv3FCHrKoq7DGQ1cJvthaXaZ4lK3nejl+CMdz9h1oYcM5aC9ZifHEVZeKNVv1jIMPugu5tdSb
xi0gjuu0cGqJxyQBKbiXpAJjVKOJQwZ9FRmiTSgsYZYPuURRxE8nIDmwudezpRiNUHe5aiFUV1BH
OqXLxzS21zXxuHWMlRrWl2WLUCpunCoxvx1O4BHb7FyKuw+rZLpNrIsutwtdynX/zzz9oAJSo21S
wcWUI1aiWvQuPHv7iu7j/nkz4Da+In0coKnbhMXoicrsjHdS6DCUVDVbwOaRjOZitQlqqD0SUMZG
qdnxBI1o2UGKWeMnyku3ch8hyoox+ySEFVkXFN+kGdcu5qWDC6wLnLGQh/+6jIVYNxTs7wfaW2h4
Vu221sT/F2Wh6jAwVKQKHTbbc5plG0I4QX76cvePi302glEoBauQCVW2Qi1lJEozi6p42UuAyrVU
a1+uI7JpVBMKzSo7ony7vmDiM5QUIdov/czx24gYom4FNpV9JWR+VbWQQxd0Lt4nT9lpNFKiRBJM
BYZEpbeNL9wai2BVA4neal/dUqEXoIV2kn9jkJoLKNco3Lll1LtdGXsGOihhEBtdXG7gB4oK9YFO
kYtuc304ijWShZYJK4K8mTCLrSsGdZBhyqraOjA4q+U6wSpgCxw/9+N4gJXFOnJBUAP/y/EtY+2H
dtMWGHWUt67DiuBqDQ2WYTJV92HNbiK5v6Wys5baKNPhMoDi4KJlUbo4AWvTm5qznF3HmLTyMzG5
iM0cUBndmNz3sKW/maRWVEOp07GT6VVPG4ThEx1U1enEaEyT6EMCulCVEGLy/EhjYMfpubA4LDCk
w9cyOwbGP8/FgxruCitew5+cSSvilLkqtUboteIlnHnOrni1W5UoDXG25Is0MMRlP/pUAVm4GlzK
WTGPIqzqQc37G7LFrIuJynuqTXgX2HhglmD4fNl2cwmjPhliSReLZx5x3YZnp6ts2ciWDAv3EbpV
QyUvv7NogSAIp8NOnxZmf7ZcainUQ4sWMK4C4RG0Pj0F3fsJ+cpoVYZ5H4hoMmzJwYZhkgr6MTjk
osqw47DMwSibX8j1fvaMV0JwqYQ/+TB1HsCPlDTSul4F77TspMS8j/NBodQXoQFexniSG5ppGu41
Khk9Owy9IMe410I+Pn1/VrhlL1D3gve+eb6I66DohIqaOEieK1wrpbqONUf5JYIMoA5j5PWmfjDk
nXXl9gVekFFRxX1g5YaBW/n2oaYI82ueUbwBtQXRQTUCXAIoIEIc0kRh/HrdepiJf0RZdW+z8Akt
qMpCh50WZZvQ32CqnHP+izDQvGGqmYTv7ErMw9IDVf0b85Gca10JSZfQ0pTnEjr52YThjS0zJZE1
3kSyoV/3BcxNrLAvut/88Kwg/GV+4n/25ZfyYwwLGZwttU5yZPBZ6ig9+m9NX3DRYyXUgaJy8ApF
cIoweF+k0R7eUUpCyVAKAtQD9IeL0J7rhLqW7a0LOsx7VRrBk+8vJ+SJ9oWwWS+xbLgFSBwdtoYK
dVjyeAKX6dWh41HloJBxe4cSagKAZEeRQd7q2CSxAVZtECjg20Y2ZSEEANCSlFQVAr0/fGyqEBSY
XF9ZIdu+Etwsp4E2VRJVUX2HKjdOsstGGaO+pzY5pcfc6xNp3DZans4BYOUiX7wQK8iBJIuSvhmE
rj1sUWJxgrC0NIG6tiVkGCOjxRCy2wBdGl4holeFl7fM5GuXA6gE1CY4BgbWh7DYveb1Dwmspcvt
DGut2kKIY0exUCvSpkeL+oGLQGSsYu3JkVAwB9yEga0N0KRIpBVR0Wq9xXcDSq4LUyipoc+H4yvV
0KPmxrjTpE6McszBPURNn5mxta836BKVrNA7jNun4gl+thaIKnTCG4h6g6V5h84SaAWNmUAsmJaH
OJVdXRf1jHO8mgYdeZiigqNlJoY/Trf5Js5hdPU4VaoZMib5Bltlm9A+rzAOdy4OoHrB2QNOCIQ5
9EaKyeq0lXDwqE+jroQMfpLXKUaKqoDrqLBA6LDY0jOtmL4Ox1dG+gI5WE0hVL/GEMqoWqIP3Xwh
qOHAUMTx4S6+3Qti0z87PA3AGYNtiAnU/lTdBIwFhUE+4SUGsYBs9EYH9S/VuugLRz8L3WbjhKis
EBYmwG6QuQ/QPG9UQ9aGcHxVSutsgBkKU7NsGE6ysyQbu6+15Nqm513DCpiwJEq2er31gOREESJu
VZtytTiTVbWp7sD0K/04npGNX7dSpyFw4vHqONpfEBFLt3t9v6FG2Fo1Qu9wVL8lzgNx5VtKuNSV
v4aaBiOrt9Li8KxcS0pfC8ooVcBByhY9ShWGDpXsMG8KMajojcvAuBnZXUXF93UInHq63O7D+UDo
0Pcvw+Fg/2rirgxyahjiVAp4fSRBIF6JEjwZuQISXQVPqgeqPN26gPKHjRJQG+O4UbZxrIlgALb0
eaF24jbqIskGBginCCNj1xvBtpkTCOUuD/gocR7E8bw3LXKwRymCd9CrdudJgpxBgVtfhM+zqn+m
F+vvMFNZMqgI45I42qE3uSFhVDNkDpOpqeQivOx+p6MPo2Mu2B8u6o7xYppK6KlNWusQ776sQ5B0
VcoDIjMwUzzPUGCwUaOQ8qBLKkBFSPS0QHuxL6VX49TarCRz6qiOyr+6zTN0YVVZH6W0+p9h/L/C
8vyyKlMlQv/u4GUXt6uEAEZaeCPx05RhFWQLt55t1S11+e9URMHbEaOU8W7z9nfZVKmCifnFG72O
StHqOoJaqwQrFBcEcVexQF4Fr0bb1LYeZtNXk2Ht86qR/dmnsNrDul/zrxitRlURV3VZZ3gTRm4v
lNXDcnOYrGyDUPOqmcceGIrhlvXGYqz7j/tjRI03ZS+katalSRnp30Vl+XFl0cvl7XnPYE6VoTuo
G1HPngdUTlFIrRBRAN5IA1yVWhTRAWHzxL7ljEIp4wBgegzA8QADSEXQFlDknBoU/FA6BYqXdpld
EzAKuJZhKUqXsC03yBXVdSlgAjwsARlxvRbArOI2ShQDbCsBYBlZ4siPibKRUQWJLefH41ddPX8Y
cXVBZdDJSnYZvshWmMcDE7DZ9KsSqgfh+DHokjehalPtz01odcVPlVB+/jPT311OJVREuhFq9DHU
SlEVqSv1nvzb0YZAQMQ6We0pzs7AoSsdVWrU0gQIFAEoasFzkeRWJpwWCvo1irRZFUSArIWapnj4
g9PuOWOtZL0iFOQutjXQbXIYwpaEqgeRne0xmaJIxawX9Lrz9AphVVgdwQutxWp2ZIyqOxRmokvM
9d4VUdhLJ2zIYf+EGieaXOM118+N/bNhjT40RlWyygTrmk7o1o4Lj92UJVR6HCafJUiwnCfMDBfK
Nm6D5YA4ruFsMC91fSGaPJDd3VqTwpZNWy+HcT+Jc2hXhcDR4RC6rT1IhQ5tjXWHJB10hUz8Ljjq
KoGQQ+kfiJBTh7Io0/n8f1AMpBGMpxysUwYxv1I69fSlpiF0cRp1ffIMHkoUt1UWWpRZAZfvsMhS
pfDc4q1lpWPdRKyQGLr7ExPv6hjzpMMoR7nKbDHfgOw5rNWbSsgK+g2T+/4xfNrJiBtyoHFvNuzj
RdUWdRSvXuu7Dd1UTYRhU23oWAIpz6hKtV/BL9yna0WTq5SSenqiWCmvMoNY1hIEafiOMo1dRZHo
ffchhezTaTgSapsOBGwR57wEJYACjKEwxwHXsvBMa7vy9kwB/pYXp1L1Q9Ax/v4+bTBbnxFlNjsB
lA0NHGuVMKSKVUDYrGPWKKx6oWoBJN9hlCMJzOQanR8Q7LNRWmjQCIf95ac+9YKnKma2kbJSWk7/
R90nyAMoo+rvLQlQOMmjDP0UiBqe8ezDkmPV/uywZ4ShWURgJ7oTbCyIt10JGC7YMMpGSaIe7zLT
Y5mTGfHAEIg0h7Lb8SSUfwMgJgPvluxWSoTpUDljGzVJ1KgIgoQa8Cy1MDibTVzHflNRhiMLKjla
C7GiVXg0/mEJLcmH8YqnrLTC0Kx0Gs7i8qNgZoTBq1L4pxuso64VQnHMl7+8PJ53mA1S2abwdQMW
HB5bBNK2Xk7/2+V4uI2PJ5wkzLGeagHn2LJAtmBFhVABdYGKNyA0fykkyBPaaFODk2Z9rNTVr1fe
c64JtdARcEGbsCCWxUBjK56q00hh4RqFhWthcs36zRFj/uE4/QO9uUIwtFeCeCKBsohNiNgRY65l
UNmjFJQXkMDeh81apQCGvz6ml+PjA8/9LKV58UaTfIyDCW06TsjhiLC3UtP8Q95bu3DBlhqgohTk
CYx9wVlxlTBuVixMROJJSS3kEPYIz3zeiNIMcUclGRO6ThkNqopeqM9mKuH78fGO7D3FZXDLHZyU
EYTeXh1FdvDw1jz6S8l0SxVAQyaBlPIFMbyCtgMJcEswkwIvwwYMvSkRi59lH1nNahtYJ4pQdpUg
NeZgZxbwn2chipVz7opdz5MMuhq9iBz0QkCzjPAEt9Aqo6x1KAxfZlDzHDJtNIlzQ8Pk+Akbo3th
PlwwrdG6T+DEC7nnPsSH2DRdsQyng26DFUCxvj6MYukNkZZ8hqFXQjkX6FGHGBRlKvqXqia5ZyNu
dVsK/QnoCOGwphIFhCjBk+uH0a3ggMkQjFB4d2EbcwuRrM7PDzxErgTUNqDEFbx2Md/2nR2OVmoJ
05+BFT7Px38+kf6Ip0X0G9C+YJ9PF/J8s05l5vMgrAC1T2dn83ZcH+GYpcaRvY1hNzWo0AgLPepS
rp7bUCbaFUIuFAI6YROui9JrG9r4ck1RHF+x24iehCREU6dmZgsZwE/UDtXWKdSpRDHH83qA+PRl
HQFaJ+b9+nF8IHTUCmn3VCQUtSD3dYQQpFNlYjkO03zYWJAEC83MLcq27Hth0J3cMYzkaN0Jw099
Wm1DzSAf5denu9mXwk+Mu1B0wmhPNN8aqR0+abJEBNkcNKh4wkHxUYHAzVb58amRgC2iFpAm0ZGi
DtY0B4VA0WyIEs1mz/tEuovcjmJrOTdsaw5t/ETTxdLIgwN6ZV3Ic+i8t7ABVqUKZY004/00nt9Q
NLdkUdOeiyye6sT9pIUKG0G1gjyaLQUu4/Rrk0p3bjojqeB9hcN0ee7fIQRTFMUN68QmwwjOXqoa
oQM9qkzYVoihwkhnLwAboNxdAwfTZ0ZWodwia6Mm9u5l0+Y0SVTYF9YHWkdrcVY3ijDyNhOUDt4g
BHQ46kXLMMB7c24o/dcXwkS0KI6aw05uCmEKXxy9w00+VSOk8JPQAZmLq/XWoIFxAvPSgFlD5gaa
Ah87hOIoU2XEqWlGChU89GGqscw342+oNFItrrWUpwBla+WiBssNqKrY3W9Y1Wwvhg5c48cJegWs
kJOamhIRx9fTZXhkSyRYqarhklptsJOQ6xnPn0VJrmyMUPOxU72MeJ/ppSx7nWqtSB/8ltqduqtT
LXRpgllaUfFqmSqqh6JaC6g0QXBwaylZHY3nriAw54a5riEIfJ1AZ8sNDy5EporxjbK9/YrP1AxO
OxJCtuQUiB0VCuselxRiDu3F0UTJhMSG4EYfjQQst/hTEGahEbB2HJO5kliKMMLMZSMkeNNKgOzM
M5KEqhY6utIXQfaifA9liOHYbhhQiJ52J8AoL5WiLt4O+LUOh5i0EiBhzuThNn2TRknEPW+FiiRD
mRkJDPFEGiFOHRcLKJQj1hLiQHIk7a9pqCBIafXZ8NG6tBoZvizUVrYrn3UpIoc+kG47IRzPUrFZ
iKsqjCGWm1uZoDH+s8B6lKJHQZuuFrgilPMfl8Px9Ygrf/vg2XjDIRRXWT9BCwXEK18KqVQtjd9M
xSVzgfmeB36arHMOH6FUHutD/FlV0/NUZx/FoVKlk3mjr2+29GsHdvc2cMqmiIaapwBqllMEHSKl
INbTmQNYZMjz6O2W+bVkhyNNHQ926qWKTvS2W50aJTAntPbDfTqrs+1jQlV4XSgAM0GEDCB7NBpO
pRHQjdbIGZS6a4RaoMSwEnTWVYgVUqXz8lnVLKFTrvGOMs15RahxVJNcT67vsArTh5UYiLh/e8PO
YBu+5HYb5g7Itoahc19Ht5qgnkHiqFUhwxOIU3VQLWZfCxhfyb1mMSvasKJIaiWHsoUDePb5aGUW
ni4uUOu3VCtAFPAuTMYDAy4z/C3uI9UwEpepytCVMIBQroCANfxtqqAr7TrBJq/IjNAydFhG4pRt
WL2Vmu/iJE5mxIsqooJDtDmEDBDBAla5wRSZlsZeQLmDpdYQSzFMdXqK3lbK1Fr3ZTTETmcrYaBs
lRJi8YHhEHYTVSxsqDbMhp4bjjPbp7LLs7RB1fK91CIp1Cz+Bk+YZBFTWhOAXspo2bILa5O3GKg4
nNvw1ii9mh0R8msOmoFh3obwXr7Kb25TGw6wvq+FBf2WY/N1RBwqIi7uECb9IEFRKCGxnyyEeBnf
j/Au67BF1PG/AN13vjymZ/mCAoNNGQ7qqeKxHafL9+n9TAb0r4b7/nhElOrcTpPWk7nhDFAnQ95Q
7QoBjmT1JImG02k8oULBqL47bWyaYgg8MKtOToihTtEzBOZsVCX0iULnqUVJsyLMq3QYuxtiOETY
BrWsrrO5qLKtheR1ZjpPNsdVCI6QOEN90+DXQsAoTMdksyGPKmhMVwWOGWesOxUW1EXDuGyfS8Z+
UlWI9ORVOav6nO7hBku6GPeSoNbpWvMNErZPQVunvCIjH5z6tr0p2SLQLl0EmsLnyPk0XS+09CTA
D/EUlQjGpkQoJpl5JW2LJteQKMzG6HWYjNX1dkGdAZbVEXalWKewoQyj1gLaI2ruztOdRGaYf6xW
rjTFa3+4NB+cTFuEgbU647BmWonrUiiqAaWzsAcwkuiJ0SgG1wDtMFYKTVbeHg8TAx1he4+Ophys
20DzGcNCKwGWIGWm/cjGtIoo9FPCs0cNF3U4+S1iitsWtEHdKGF4U2LcWOa166ZP0ZrMnOfNXNN8
XC4G+Th+GEsbBJObFGzRCrkMBmtbDMuXHFqGIg1RNVqJ5kJltG3XCCZamq021BP0AiQoyxziRGbV
98IQzKRHksV66FPJNW/wX9H1N2UnAN4K0ESZcTZ9VaUa2MIUB46l1XUvcCTGnMBxhig8WpUb6ozQ
0EtWt1Smn42dwoXeTZ3sN8uNNYT4eoWA+0EnNFACeoM9l6xdh/GFjJXTR1N62jTHX25GTFgNlJsk
24dhhkZthumHg6F0IMp8i0+MCYmNzb6IPNwSPfHPvDarwk6OKj+YFsXu2hB4W9WSWZcFp4iHJupU
yfeG6v9Ko4hdoCDN2wLaMSxXgJHXOQwFoq7RqHdk6OPZ6G2UPRSQBifv9nobpwND3kcnVKUn7V0U
VO6jbkZplCCqza21IHKEqhw4KCKM6CTqlXKVJkrqSgmRT7caIloJiMqpJpecom57oeh7NTErDzg7
GREbC9mCAQ/3r+N32KQQN9/K07OwuuUItB1vPaOw2mE8jTiAU4XVjXFUNJ+qbVTUXql8VG+SuieM
jafCmLHOZC439bREDXTdyknKlL+xrGAVQAwjxA+k66pIjjSoLGhbyUVftxvh3rdgnLQhDuPaanBq
fRLEUIp3nQCYCcO0ECmgz6BgEybTyYit4YYnaoUYWqm8IxdWm+Gr2ijpW+VtuNwQU77pevUoPD4M
RGqLUviJtrXadGyCaE8jTC9cp5fuz5fp7PYQykgzB4igkapk09qWmQxVBMlT5TKGFhsQpAy1MHsw
gJVGySqWQqPRBCrVZptJ6KlGZVuxAMY9tLY7oWEwrLfcMBpXKS1UncWdnvMYPoDp3wnjn1d4Lt/J
LgG8FQHklSHYfm5ydDylWahtMHYRLHmXyKCymRZJvwhSel3hF7YiQ9ByaepIspoUGo9SFBKM7kHZ
kahDXYt51Of5uL8c4KCjRhibmA5CUQ4a3WjcrV4H1ZH0nnNKsa6isBFylPKyT0twaWvZ9zwfxtvr
CaECVr1CgXjvmCAoMja7WIdT3KOsVHZEc122qWrUlZw6HG9bQogqmueVaoXY4AEUHP+oT8fJEmPw
kDwuOzQWm3RrFpFGl1LnrjwzukYZ8TpkBSXNcoetAjWaOBLbaxBEUwuAMis9YyAZc4XAZRU2yepW
spdhoSWvli4yBYMDrIhs8vaZNbqPZzuGJI/+VpT5sUSJEVDIuG0aAU/fKcbxPLxMe/5EKQZpLhUw
IyGqdoSw2Xt3M+ftNiqs54/0qVQtiIxaHQ1yLtMHdHl9xXmYcjU7wtD53+PLL7cf18fl13/5PX04
uRKPL2/j46/D+XD5+F/D6TneQWw0hJ1wZu3xcHofbufxjr7ks+ZKej/07eH4Nq3AL8X+N6Dj34vB
yGmmFdDGvo8vu+tkHpjz3RlKd/r895PG+hwPv/0N/dfx8GKfOKkzs+0qOZ6bcFbnuCaB5tEf825f
DpPaMEUWX2zRwZ+J5t8MzW5nqp8+RmM/iaSXtlsavm7cyOnPeiY+Wbn3y+3LcPg2nPfjl6PZQSPS
0rOnTRFTE2Boy5kS3ysFweXNzhg1E5XaVPjW7bIeWsCX/eV5fmh5S7N3aKQ1SQ0XJrW7of6M02U4
yIeia34opk52rn8zz2agSrCdPe/pTL5M9O7T39iuXXlfc1uYub+a4uXLvl4nmpfbjy+X63guC3ln
jV+XBZGf/uxTR2yFhZIXMz/tmtpsqQQ6unTTkjcJ0fPbF0ZYprhYkxPFxliFTVOnVjZZOCVYV1Oy
dTWUZYgPaf9xBcuYDVLDPcXSqP11/GGk4BdmpKV/v/Wf0yiestfhuewm88zWAu6IG2UmajwbUtBW
94XwrjYdsJ5j/1QmbSqtao3eKSDkGZFwhHRV56UJOPK5y4OevYkpukOPbn44HEog4wpPRVF8zd+8
ffaTiPx/xh9gHV3BKJBaSL4Nu7XfwzOqNePDnjrj06LMiCIgyjq2InLd69SeWrAnf1eE91tqJb/3
FuzHny5NGyzrAjFPC7jHSw5Kk1WF9M7BM6/98SoKtKhaYBkg53v/IAjDTTXr062BmmCf9zS1rY+e
ujuSXU5qLBB5hlRHha1KlBpsf0B2+EOuWvojegxGU0yc8wtRR2dUxnK+jO7dwhraawenVXrVQ0nz
SteZx1XvyKR3olfmBaVEkRvxAlhe37HlGZnWt5nlAT1bM4lGPWylK5Jbs4aJlhzPz3E33H+c94BD
+DsuSTaAewDX4DmtMuUQdRUrASsKtiptzx6d6eHtukZS2hoobXaDHf3RRIuajynHZrqr2D3S1BNx
QSVYUMG4noJJ3UrD2XNiGq7anS+PL7fx6QrnBPuC7VUTb+iqE/gVHHzP+aGjLLpNrVDAbXc63h87
qkd24TfBpPSnRb3Oqq1mc2eDqcN2oqxFmXky3Y5IfpnI38HjYXaudUY3HD6y6NhlklthYtGyEmyA
EmwYnxI+Zy3x6SYpzS6xLgjKV4n+Dng+pb+IxnhgTRfbnNOBA13BmaAnBIReNMDAoykq8dGsTxkY
cprRMQZC2fRQGnRAGng5rC0KoE7ZTw2wn9hiesoA9ymnS95OVbdccjd2hFpaGwDxzzZSUbGmjpdh
z/W37oWA98Bsp7Kli2rLbgMfa8DIniSdebXyBp12YuTAoStPjgzPuk7aCtPlgcdaMQnZUyysSoQB
gHnHlRLdfJGzCMDjUN6+KGu7Pvlx5HyLPvZxu6wOB6YPe7fkLlRdK0ohYJKXjAcoaFtWeXcVaHLm
SVPL/fQGUi8PbKxmZ071ycZekUVJxkbvetFLZWEdYFOw1Ri/rsx6l9WOscNu/DaeH18WQDaBzdjb
NnZxOYNU+hV+eXm+vJwmg/N82O2H6+N5QzGnfqttXdZAM3SiZgDyBvBGz5yJtvVWnrFbQBZN85HN
5H8aUeqNgenzG4zBVfyHm6V8Km2EA6+8ZIrfiOO61oKVCvipia9ar10869+hmEfwRuiJSJ4nsCBY
eLm3CFGV2hIOBEKJheEq8lN6QQUAvquYZUMpDbVBJAEJ4A3J2pCrVSLuZeoygGbzl9aat9X6sJAc
OgOMxMKwdUl/tJK7A9zVmr1yk7ljTj43kwAXMa/SuIRVYXmRTmN3PO+eV5OYHM/jeBjB49Q1U7pN
ZYCFzT+6jKBsNwpHxg72jwbFsJBuYqHZjoBpGlmbA0XOjQL6o0lG9EsQ0a+4E0ZiIG1ZGBENWKCI
wjO6z2knFIVXvZgdWBgKWF59HA6wTP39ZoTI7v4Ybt8GrGx7Fv+qqFVBrxIwp+Pr+Dh+IO3Hg570
R8OzAcA1ZtEk239UA0UBwm/MqHIPy17uN5Pc/HIz3XZ3VwkrHASzynoCZNIJKxi4LywnNwl6+2ea
S4GWaZgtXhSUNy36rIcATDvFHyCF66qVHGV3jaID7AGRE24yCcIDAvHxgi2oIlC9NcejU2YHVFnc
BOkRA5eHKU2aQ6qkIOG24F7JnM7GijphUWBnvSfSGW7uSg2eAiDEohydeQqd0zFzau5j+Jxr8YXX
zNS36V6t22KDFQrS1T2PNfb+cUJlXhY2rD1jegh6nSUE2oIaUTTM1oEgCDd4a8oj1vPBvU0aebLK
LkBpsixHaSJpZVWmnc2czuy5P0fjuCSnHhh0LMenCOAstlY90rtgqrZhpEKnvfrJYAJ2Zc1kRksB
lE4yvYHNxLRcS38sYvXL9/Hl++X2FRVeaLYITdX/SoOLAXlhlgYjE5cdCZfvKKIURGztn23+KYDH
zgwICsFNpwVjgCA21bF8o9kqy+ykHhKg1LBFFTTqq8VBOHBiXOu0VjxJwhUZWgVXrOS/FVWDNCE4
86rhmrC1pTTZwBJw4fzaSHhXnhrnK+Dd8DRMYwqNJmdg4c2gaobsfyDEOCEqdrOyh5/0JA4z/gPj
JOpGUI1ORIC+DC+XG/LbezE3uKoMAFFyppxLUw1adtuUz2R5FeP5gCq62Gsm80hVdZlxBlBckBkl
hsVUhVLRKOXFyjOo50bpFD+BuDL3c8mwnf7sshYSMs875n6bOI5qgHGDTK2CiZbW+ytoXUB6eunS
mGU1YoYRXBt7Mso2TWVlARAu3L+sqZa+FoPMiOt1HEnsvT8EvCC2GVNrUdYtVCegfIWHOhoajhCb
IJkMsGaBO6o2q+oWKG6UdWG2TE+9mFhJgk110e00ydJC8BJqbia2ha2PWZmZVDs5N10IopppNBNk
S0SwF89993K67L+Cs67ZbTkjK6OyUSKPh0jcn2JxAeDhoAgzjLZFVDpggvIKkyb1PFPODLIC45CW
t7gWBxaI1rYV68zmqPoXU6x/uzmoL0HGsxCdHyEPM//AoNHr/E/Stffmer7qoWZaqKc/LA+Q1jeh
Tgcysz3kWXJXr6bRRazOL2XEgS2ziGJF91CJgXOgs6syXWp8G//5NJXtP5VC0mKpXlJKAR7tWDDL
qG/d5oKUzcbIMOOUnrAVpScJQkC8iI9cdh/iki2yHVvspsAAz9c0zr+f5Wxml/yN0txng+Er7LMH
+2RFqTQwQ5X5VwpUB2M2WwVuqtQkXwiUwRTMj22ojzcbwgbUdBEVWFVVKicC9AV3PO1gUxjBAXzf
cDNTmT+kED+4tkKJGmPldyBznhV/W0DGDj7nCjxn1iVhpOCcUTfFa182FK8xIWVqGFS6kHhDLKZm
Rf/p2nH680/TywR+E8sWVCYcXBVyDjTnDzBergiQoWwwLUDKL6unFH7hhFtgmE2XdjfjY0xv8g3G
A3nkoqe2YuDOAU3PnGkTV1Q+Y7y8L9Sjw1O7KukM7i1iv2DMMTXuh1IJ+hYkIiqeIup6W0osPE5g
zrE62tibF/0/FCtnkSqjz+oSxQYB7zC31M67K9IZb9TdUTNntDDOqMon4YHXw7QY9UfUXv1wX6UD
YSVeJNO0FhAk69wCZmSilSr1dBMX+M0yEYRzuyi46AuXWaIO5dh6XmdYWOj61ZMCBFiegBzmOl0F
OhkHQG2yBL7lGAWjrT24ZxbEMAHmpsmVF+vd824aSnc3gxe3G74PP4DJV8RlQFqwk4HJx0OmHcFf
aVGnogLen8qxAI3KuhgqcxNVo7C7izx6JqBbUwyp2q5Z8ROI3rIkuKoIiSZptWARVDOPhqasqCLU
EzuC9Zts/BuoT2m4yWrse51PjAIBwtwFsl7ZMUe8Ay6dNwLwUFYimABSUbz+I9+fAxx41jVLbaJ1
2W9pQdpla+Z0w7t6O7Gr1zIm2Kqu44hkMkjVAzZgwomKw6Y/cSAQZH9ZZ53LZ3Z5d6+fe8E2tVYz
G6ewqArr92y2DHbMiwR7Aon3BSAgTwAqjngnIA2/NKByeY0OpBavlmkJOEKlXC1ghfEYQ0/1h90q
aOhiF9MfKFLMIqGqoz82JDKBFGV135XFTK2zkgfIVBXXNTWg8Ax5t1ps54yEDwhk1hxVgEafSm4p
kDusLMCm9FWfunxwxDwqZB9igYx5FIngVTjaQm/muhT7DVGbmpV9xq370XGD6p5akn90TBMrZcNc
rJZL9QRPVuPm9A3SneXUGotisSHqBZ4yi7u4opoNFbKAv1gjto0KtbFeu96OH8PtB+6RYmffUD93
40s+uZS5eEAaWWe3oiJbP2IQiuaNbSbRUXZi8S9gK761iEpsYO2G223INuRWfH+acjh6VXidyk4g
w5bJPUp19Ru4DDAF95Wod1GbFLeh+H/++If/fDyuf7XaYv78ejnfx8+P0+483fHhsn9+TAeyM7g6
af1tU0321ZOFOMkl52Mahb173k47s+jpmd3Hm3TLRMWt1VCxitINWng4hfY+DtOj371c3p73nZwH
tS4KWxG5eSx18bwaUBMbL9+Zfx3P8qoa17poKJnQnXtU9+mb6Yh284kxaqZq9yGvzEUaCE7C49wt
dJzVtBCeYRjTR9b4bRL6il3cdH3v0826Y9uZfmubQNzd97fj9SEg/thmT+UptssMFdrusN+PV3ln
bed35jAcrOAw6D6Gd3f3EXxd+h92haHWstl6sG3BVu7nhkRnYZKpl+djZ4vOdsQQUtLKVmWXflOq
qG0qwLGTXdr0GA8/CHbPVuhYlgJ8XniOakpT+dPMocXlxfxj+DbYu9oZVKzL952S6bnCXqLXmXJR
9G5E9W2fDVvaxFqdTpMaTqdpSWQOZB+ivxUyoZ2SGybx8uPjMi3o43IYd8/z/Xm9XqB8aHrP7MYS
6mrPmnZkzrTFww8vtGjD8rG5Die6WT/rncgtrzEQFdfb5e3m8LLSm2U8TG+7S7HgeXwY7ttR+Hkn
giHYAGkfCNa6YMJnRcYu827w08CuO79rP4rACsbDk1rq7able+j6UOh0gQSTcWOtqvDvyWhPZ0OZ
aonb8TB+TM/TEJgu8TzuLJaluJXaX6CJ6LWMH+g41uJZthrt9bX+tP3UB0GCONFxOX8MEsSjFaj+
SZVlQc0VZeHQB8wGpyew4NIKTOD3WRpNOxfh2ksbXk2riFsVuDS/DK1p8FmJdvf4ftyPSCwyWa8L
svSnf7T8Ce3H47fpBT1eBZvMakO/NxOGc92Bixx0Yvp+/HDjLARO4ELa+GcOoTBga8NS4Hwig6EN
F/J6G94+pMpLK4X9Tkz0pYtsILItZ2GuARnPg6aMx1XxzCoUqE8mzXjB+Ep2E2qtM+mA2PZigqZE
zHUCdLekzCeDAogZJiMsNHobSglLg6zsl+frK3iVbeMvtyyojrRwcvDN7M3Sc5tzwhDLjbILRVCX
EIETyTN6TZ6EDeb4y76N027QfjRT15XxJYN5YpSfnCShGwPgZLkkTNktKULpNP9gi7HCIeYBeW1c
/7eLIW+tv+f09aRm9xYvdH+53VeEjcjd35Dt0zFZVtq2fiSGZr0wuSTXyWGHhmvLrM+iIVSzopUY
5X4d96Z2aTLZDNSoFJ20h+JlnRG/gfS1ekUuhF7caHaqLuO50nl0Y8S7u+m978fddChA5vm7N8kZ
9yTsepzZkjVY2qJlpui0ssazjl0Nco1a7c0dVdCQHSu+6W1P3AxOhEk587sq47cczKPa4r0w68Ic
essOJXdJ4Xk6q2binMnYDZnnPjH/5esROcRlFZiqrmePu9cTYa9khdddhSoplsDj3eUngLVXMIum
9klK7BX9xKtjNph5bj39w10nrdSoiUntPd6NbDCsvssYiJ3fNQ3r0GVkE4zn/eUg1ctYHer50uiu
JtShu/cB3RzTNjX9wX7eaQfMSS2PPRj9Uq2sNfisGnYC5nhd4Hvl5yww0MLVVykVhS8+a/U13Oqj
VOn0D2F9hsPNgwFLZNELPy3DmY82QLs7skk/ggkZUXHzGN3OMv5VE8YMWlEOnS/Tbib33gkh8vFv
SBIxc1AvWn7hwTcYCimwY/OTXg3z+Pyot7RhiqIMzPtWS2hg2RBAALCapg+FGVT73t6XTrfjjGhE
vfkH29mkUt8vYRTNWCuYHVrNHz91SCcVEx37Y7ihS+w00yfVgro9L2g6eWTXeQFmqmyaZsPbzZ5Z
XfEz6+2ZuRzpf0zX+FuyyK9XJ5tOgnCKltYn3uwk6SetLQMX2GfbhlGEYpMdiHgiEE49Caey4G7Y
fTqm63C/Tyd2oPj2fZj00eV2fDuegaGlQvlSe4q0bTEvbVmKhY89ynLy9YElMG+b+vHapKDKxRFC
o6vVQBDUQBD0LIKkqQF/zQPg3rvUvdPHz/sV3C8zw1Vr33w7lwnMz+rv4+djZ6Mq4Hk1fSgRaxTl
/P4+aZ/7dSB022y0MwpnVH5zk193OJonMQCjnkVpqLetUvVKpu3nbAobDicYIsw9tHMKimTc2moV
zMdFFUSGXeGCC2DJlbSW8fy3NExzBpib/RMXuNyFwYG3fx2vICrA0ihFTyNfXa14mqErwND+mAjZ
tVlnr8DHRXDjUjxz5ds9H6+7Drz40DFzJXtBjALeV9OFcaSyLFDeKmNCFGUYKu9+xolAKok5kNP9
afuPNowU/eMO1EjbtEHYrQ0/NqOHJtMk5zC0oYPe6sjgykVXu7IPje2YhXAmgnmtzFRYTCscaWPy
tCVcYlcqMfkZr5PQQnKQSSvXn6dWfirWKW2rA1+nrlexkXyCVQWOt3OX7Me5g2+Z8U+ZNJUW5U5b
bwyDdcwONB6Y29XqUc+52sCtFd4zC7+XS9Z3HZfaLtzLJnByO5VLX+UuomNuR6AWxUw3DA71fdq5
i7OS46sproTCrFNJX1YMSxLP/kTUk9m0JRVDhVsP7USUXetYDpqC8P36ORzvD9OLcgcPgnFfH/r/
JA/yyYCey2vC1OmY0Tor+1x0rwnDEEIumBtLIPLbKVbdYf5VUJSGr4x2y+X+osKHMo5552I0Vfh6
7BnP8b2zmeZ8Ov5rXLgeUFK8QMA3Ca52NhN3mbFDYA7c34+vj38cgZKoo6iQ8Cs2c/GztP3d1D75
FTp1tnwAh1OYkUgjk8uVOvmYyA0ZWdmyjKnJD5Zl5DRNdzvZGS+n4fw16zpxp6cyAfxEGiofJ2/Y
kggUyZQYgmhV7pzqVEhmWZQ19MFqujC2VK2kDLbnGlb6YLuVAjdlSQ9SdgQW7bCsaVmYbFRZdCWU
ExNLvhwPByTtNQtal1FmY0NKgxk1BQFQF3Ut6ou0qqB+7+H2RnUk4Lc6JmfJei2rhBbeZmIzn7RZ
VNxPeURV8IibaotBkClWY9FwUuKbAlET61/O9j+Q7V8HsWTqVZkzB4l83XibJJ05BmQS9am3jgpC
8jZRMkQthS1p57l6kJ7xZ6HdPyqQbfLxDGHbdVhiVXaScWnTVsTdH1LZ6AKWP/OS8fbXgtyYRd/H
04msEZTxbT0p6sR3WAE8omHs3f0TrYeJhNK4eWUrxWzy+ZVOMXerD/NqtsRxN2mWt+fwhnQUu0U7
LaGLrLRNtQ2sjoBItl2Bkylgeo61/OowodGkw0dbgkdshxYWoEiIpMP4eoJvstEpQy1RiJtLz1aB
Uqja6G1TnvieOZ6O5WVVQRhdRdWnT/yMyoValsBmhXmo0k9eFA8hmUx+qlIGxwAaFdQox0HmVTUp
CEVw24uw9lqhjGiro9opdlTaZH9W6VBnEYNgFssyG1tVNcnzzlTtdCyopvzEcv9kn+fx8zqZcZNt
/rj4gd4CB4Rhi6pdvbRM1EeFlqlrRlhLbWfRG8qz0wCIlmFhRREXdJi3kvH7dFhYwrUo1pXsqfsp
wV7RAputCGvsJXs0dycs6GkBoac/9YYiTqSuK+7eVa2t/+5Ag4Nj6kxaKDTh2zBpTVGMjChjiaWq
XvjPnvYicIQkHovN1BQ548H83O+yYAlN91BFdM+Qu1goOSnH0zYaYLp6xXRUgnSx//slDjq38iZP
pWFMSKCE7RLvMPEaO5X4t3/+498vX8fzH8zEMQdKcjkDenqhp/0hB1T2xn2f7AxjRO2Gx8TdL8/H
iNaoFpp956P6AVH7SI6vR8H8blg6hzbbLDZQQGdJdQkUak+hsj6ka0Q1eKWD/ejvt3H838OJakvm
/8N0v3PR0opyx2ZZlbXlbHdwnpT8pYt7OVVm2KOPvnUW3p9M08Hr8fRA1FxY0FAzb9T1GzBa36d/
UCbm+TAlm7th2uQ4guUVwcYc75u1/P7h0Glu48fl23ACi/I0Wl9mzBY1ybhvx8vzbsj+Ybg/fnk/
ng5/zR15vVCl3t1eovq348tp2vJC+G9fj1dAtvEbLhfVn2SKOybUL4TIH+kxocm7uaPddv5i1VLQ
aQ7sP4glLEbQcBakRceGNtGK6iUfyla0JE6ENejwxHX8/eQQ3SbxZ1YFqFR+FWoJFXOOAt/Gj8U0
3JHlabqYrMz7KzU0jZ8PUyT7i1XFQkapZGpNWY/ID5GzdEzD6HAbf3N5ng/D7cdfLscMNbVQU6Wd
U+wMbUsvIzEtEVeNp9oZN8K5IMGSaCm2+klai17ItFRpPf3ZcUKnyV/YcELO6jP/IEiL2lUnrpeD
FlMtRHRRUmxChQd9Og3X+4jW0fv9UEV82zqDzZK4j6dJYojcZ4mQcdTSCCMqcm41P1vSvXejdHNk
ymUt1IfRODyeeTMGsOu5l5jZHUntr1lZfBDFeeV4p0P9/fmvc5e3tBjGdMrae84UmHdlzLzMjrQ/
3Z4YUKvgbNHlkgtmD7WieXDVjJC08MjH5fzr8340vcSG5YbjeYRn489XNXb4JaN3GB/D/h19zljW
F7W4rWSMDbelxm9JLQW57OHkLkVxuaI9No4l8fF8kC2G3l3l36+uaHi9rmewsBS77kxPuHM2JJKF
XxSfTAuvCQuZgl2U6alqmuCiTInlFincMFllDIbpz4D/JtViZPAGUtRVYW/OgOTbkcFWTWRKDBpm
7RsjkeZr1K73wQgoC79g9cxkrltO+hiuu6UV1ET7r9Nj+0Fdq+mfqTyUAqWcCYrLSqH//Psf//DL
8kMpsuaK94iw5TsizMJpEWHbBzs31gqEWr/CankB+RVmNm6lOJE1WSkX8zcfHc4TE/+bp1l6ot1i
HkVrHe6G3uOyO43nt8e77Wd4v12+o9U2/jR7K0houdNKLRtMRH53Ginp8psfv5yG+90gUe7SGNMN
i50RCm21ZNJ+61qA/26CBmRSA0em8o4MJeOKxYaaPr2eJgYnS1ckMMc9yBNSSyzQbWT3GN7+JLFG
w6oPaA6F+X7GX52csd+bkl5DxRU3EO6DuYh5gzJVVQbumUuBzd85UhmfqmGKlQiVS4WNcFO6FG/K
Bd/mU3I6dT6lvTni+T/Oz9Np92lW9KtP+dqawL3Wc2LXXLaJme0vVwORJ19b41nH5Ci68Nru1tH5
qSV1jBkJAMGxY2qTv8wzedOkan/q5PBUnin3VpXcqT3sU/i+96dD8WnnMFF57PV0fJh/k49GeY62
NmbIPMHl/z3H384WKlrX72gv6o9OZ//5ZU7tZVm6YxzUL3Fyz9IZO7Fh3sCyM+3P1dQKOo0I3rqP
m5Db16U3QzdtoihgN0zstDTd2PyjCxjm9Xi7z0eNhdCcZ5mfg0sBRO/9d9/gAWsvM2iOdNGtpemJ
Il8bnqcOGNA1Ym6Icc0YFHNoysUiBIGjGlngqCCe5+LYkooppKc09wgRHZ+/WPPvcRI557MUZmlY
ucTMfc5n+2XuQaUOjLmySzCoOs9/Buuj9Px7uly+Pq9/uY2vx0/5YjoW+dPemheOpdDi8Sr/rLUv
WKCVOEPjiG659LxGhb+lGwRgbe/hPv7Pv/5ePoa+DDdRQqVUyDzCLqRbDEeJ15RshnQBHSea/jLM
EZzdP5/j7cffyKe+3Ha/Pp3AyTBabeexy6RV1fLuynBVkUyYJK7Yi9kwP2IxbFpJ2DH+BcxfsRvv
fDeCxHqduC9dBfty1Zqilt2dL3ssPGsvrCj/lDSWfpkcOmxyhUxQ1TmDApwVfx2VT7JIZ9XKZxXq
BY2fu2xo6yK0kss0LxzPxse9PB/IpOy60Dixkvkvt8vki92nM/q9U+R2Ao7VNyUQaaoIJHSN34u8
x7oIpEqFz0o2dVUbaowqlgagy65hSa3FVi5SemKBNwbawstos7cmtC5SZtzOYVgtIErG2/iTK7gT
LI86UEktPn2ZU9kjpAq4KvUIfz0bEOAZhqfvuEuWDgcDaXncZ/1EJk2Nr+38BScVtlmfTLSTSRL6
QB/DY/+OoiktP6HSg79apUvs5WjJrMVYgjSn2iY7s/Yes7ZMhYZzWEKWtaFTzLJl9AZjO3Ym+Lfx
sZRpZxKxzKBsKMbski3h4uybzFjZhdeIZsNttLpj4K+DkEMZRi00dPi5/Q12WQQ6rNbQ3JWNhnht
8DmXspKuqtDTqt2ZT+fLYyv/+/h4B9zQhgIsfMv2xS4i4U9/A0/Hs30wtSt2kCxlRIkpwrYOkofO
AqfhKaZfFFmwHasOMDtro3doTvgE/UcWT6nbxcOXlJV83zrJi3OkAaRBG1ZvuEi0OnFB4Fa6yAlw
DWhMVV4nPsG6sgnUhvNntor7vFwrgmPuUqo4t80yisV18KpkL4MbmL6Wct6qla6/PvxjYr0zDvDM
DY+0omIBu5kpvQ/3X28oRmm6QBg2VT5KhB5WFQqwJqn/zbbE3FvDcqOLgms2yVZweUxyKOXrYIk7
j/ff/fM5nOCKOpYEMeZuo1Zxq4eT7vS58N/GVfti2nxsWeAXa3+ufpEGFTklb6QnYXX0LuniCb0d
X8Hn9fK5CZK6ntqN0Wc7KclToPBlvVrAVUit2c9LvwC1GBP8cxMled6O+BT0QoXKbVzzwvvtywIX
QKTyu2n8cvTSasmX848r2I2L2ZQuAOqQU4LPlwJdh5olEGoXQlTrVrN72XAnVXAczhmQuEsBQoVf
ho/8cEIOuEz43F8Lg1Pjn5NIlk+B3UaZ/P7l4wo+97xF9nSx+vzxiU5Rec7uk7++F5wl++v+c4bV
m+RscAOFv8rZDP3vVX4AKO2WibTCD8hzIu0XG8YcgR3cMy9i7ciskjlA6Lc/4TyWvWxtsmh6vYQn
JBUrB421d2OUd92tat0NTrfKor7uQh9W8XP9m1GAWFOoMFjTplRgOk6Ss2PYxoyj7exNb47bPmyg
BpsgIeVwLpZLntSy+3dXIQhsD39VJjXUJDzQ2wicJxazNWkgFxzB0SOFokcsluwxwKw7uJtoZE2E
uT29cHK58lV4O5PbhumxrghD0Lrj9jdVg80L+MvlfsR+Zc9CrFSREj3MVT7JlgIYZwWYeWVgAbf5
IBKy8homewpWwizFi+QERNXDdOD//OsfRPTUhqFfFKEekUSPvA6W32TxptBDoIqbtwGa0yy1SI9f
bXRk3HB7Qb4yQV0scP6rsO1j+Dr+ddxfbgewwK5Phm1BksNIJfPy0o5by/ZrHh43rK8DLH5tGF7F
XJlQYd0hBx5ZqjKRTli/GdcllvUc2XHVSx5Tvs8sPc8ftvfIp/S3BB9nJP45Yceqz7fFvnp/3NSy
opN8/mLruDJBPh2aDyUvuTG+dK7iRoWeZyvG8zLx8TbMYXLZa8oSsafZ68CJrhNiP3epXRHGTxoo
DEvZbqlCu0WHUZCJQsjCOV5ryyAH34Tk5maAUOPniTYs2lNQhUE5z4NYSaQt3TCdvwDX7sGuYD+b
NsgQVqkEp6SK5IQPs2KNCZHJqctWLKu1IkOi5RzlIEmAJdEFAsftRjbR8hfGzAlF8+90MvpFgdzM
i1eB0edCV/vhDvbDanUIlavfwITA7GSGB01haMqttlH2oJowSOhca29cU0cgOBx27R49zMeCL/cR
RoK7MEgOI/9KjtjX1U8UQ5RymFJ3QQTOGdQukLvNoma6k3XqLrbdcLhcM2FAZpMzgRgH7fLy2d8s
FWy1+Rhn3hXrAqkzp4eTDsx43w/X8Q7T3yxCSdniGoSFc/nBGRszqr7aZIXma8K6wBidc3ur0Oz7
cP+PydN9In9URdVdRdYrAXtmgkYt0FRJWssDANSq8DVvd+JBUDs0NRoeV6D7/U3Gfe+7gI9L11GS
Tn+BU+/D/GeREaFZwRkZcs0qn3q5ZR56ldQsiRf6mx+/B9atbsNaKWwKyBVlrCyZ6mRw1WEpVx2G
5dK1FksxwdFUqbVIRiFQnSpI5VZYwcjmDStqplRjERrM/ws2HHfMWKcFKds9YLFj6QsqbzWFmFdT
STEZJuNZ0rvUj1D57g5mwBOVPziYvul5TSf+Qpx0urxQIZIUVSCate/IUG2havsPRtmvzzZejYdJ
wx/3X8EyfT8GBe51ipipuRzerPy8Py6T83MAFJugG8WBDDuK4+sw/Y//cqODRVS0Pz5K8th1/fpw
CE7wz1dq8yHg7eM30CJjZZzdpvY5SUPr74S1bnRMQFqmZeUK0SLbTIMNOryG+STBAtuAXZz6+t2M
SzYfP+CNyh97vbwjS8DAxhms6dO4rEQyZys/tN4upvOJ9/gF5HdV+V0xeHNLSCwPtUsIz6NWqwuz
zvzWO6v9Qmqv0YPX+D6cDydQxm7X1QXHrJOPb4FjE06FLaaRjvfl+fJymoyz1+F0R4ztRQLDfo1o
Ue8UvvFyCxl78ObY0fvvg/fvTJSIFMFnT3YZiZO/bOHvyr9gao5IrvDycXyYVzfZtaKFZ6lVQbfY
XO1A1CYRTCUy453HvkDrWV0HPW1NEXG5n6YifN8EjYBVi/hhWg7aVxGI88SzmQlm+LzxB8RiR39x
CIm5j5uAm6rEa5sld/ammjKQRS4K88tzYpyPzDJ0FbyzgBNx+ZEbWu7lPMtNfIsqMhGFJpSjRepi
rdgxg5+oOha9LC+W2fjc9CO10hEQq1lbq0cTlhTs5bxHQkgFYj6hXQOumxY33flZxoCxF6+DV9GW
kULLCWod8mC7xf5S2P5q2Jm1NEh4+ocxmQjf92h6sY97YDQ3LLVNxVqN/fR/jy+//+0f6Itx/zHD
qbkmcfrryWs1ztjEsWiGUsNmZZMYd1OO77vx0yDTLC3R/j/RNJYyHDW1lJbMnM8mhEkkinBASTs7
5b+bF5BHYLAb60PcMCUQEl+0I9OFyHpt1G2e3xFDnCRZXbnqiOWL+4/zY/ikf70Ot/t8gY9JBxgw
Q/oPmz4wUdLHxQD78P/b/B82HEK+S3pHynfiUsvSnF+mBPPBjgO5mx94vdwfNJzGZL3i9eyOdxo/
NYT/s90IvHUTby2VK17UIc4wp/vzNF1GUTOI89V2Hu80LOX1ZiKo4xyDMhxgpj1b9j4fTGv08r+R
z69s/fm5genSDxJCZuLHlh3Pv2oG0hFiq4G/3TmkR+Hne//zPi37ZoTT8CD0p1eq+z6Oh5k8YIay
C5nBQe7sT+NAQz3MRqZF7b/uXswfxHtvk9t0tmWCnzaVuvzP4//pw7Q87yZLcv6fA7as/Er65blm
KBMyZp60WkizNscM6TxV7am6mLDEB7TMBB8c385m2AD9nx8G6Ay9HbXweeUBmizDGBYSi9Tc5+3y
uR3xHj69n2NER7JbSLa+ZPzf4ERHrlzI0UBoe0vuiOglZY+oWiiURUsVHW1AZREAWUraH7YHjp/X
Mn2Wp1AvFEijldF1mTtHnzfL53P3hMRcll2BSHuIuAPKN2pYPjZQNqSe/tuiIH4MBprcGgDWxDD3
Wloh9j7uPP9YOW1VVbzISaBf6T8oiT29sHMsCI3bdP3hu7wu388ACa9iUGGst8SrQfoZWLllyXjs
OgqMNYlDnk71aPKcS35yWaQ9FWotlN8eZffmMQR9qDE4actT82lsp9x5ym7WpDVOzvZTk90KqS7/
J3AsHiVvnogWygp21zMc6gD74CxZD6PIhtgsVAej/CfDZT+x7XB+ADoe6Y7hoxiW8vxj/aI7IOIh
91jsbFmMX8cyMjRNp/eAdyxVmqIDDQtLi0Hwec3uudoddbBTQK0IAP20TlID3/s3Zt5Jp8WdiaLM
0lGrXa0embN6kw9s43bbDnJXzjK2NDxnzc5/Uuju73c7vHF4s7NNfpio1Ps4ujch/p+nt3h/7Aqh
ScA96Xp50qWpxZwRr/NUNaLaeqqmdHaeapanqhDVhlGtHGgCwd2ONHdkcR5jtkMv00N/1tWSBFkR
sCrCv3gxNGyJMib02XeJKNy5pVcFnJJZJLx1S0+vNRFRNNrTuvaBhjXQxF+KdGtWz3pM6ZoUoSI7
WHlLzA1S2YGi/jkDWYbdXY7A+TJ+vIzmRVm5tjvSP9Op1Z4l/8qwYd/tpCzFnegqaN0py+DDQv5Q
+Q+DKVrzl5X8pd95VSj7Z3B8NMYP5JJ7Vl1QzuWgmlOYJzrIfNuzxtxyLulrGQ0jMMezse0OMoG6
CNtDgkVczjTvwKOYC4tow76lNj4K8Klv/CIlVCWZsARM6JtrSJFUwRV2Mtf4g1N2NmvRBFdoEK7H
b6hBaW4AnNub3OHPv93Lv+17asqCyt6Luk9d/h2+v8r3JXWkB9KHp8HhdeHFdcEGapn//Xd1YUTT
9Gd48I38bc/fjgl3FS6WP3/bygfnD7wrFLUjNZHUmeTg57h/+jTp/f35OExiFpwj6/0ryF0o5hF2
nuqrwZ8M6AOCTdiO2Afb0/LRNEwgUD1lGT4IN3vQbszWEYDLZU2RdfyyGYeBx1V5RmVYLLNILuR7
YpxZdHRPrm0tflxZIakZu3iz7XU0aYn7bW+13en6PtC/vUj1mdZ8a0Ml79w5OZPmjBjljRjzdOeq
UgujaQIiO/F3HYXSUzBCY4Z0fh2OJylR5b7Uy5cUQ+r+y7nep+P5qzWdzL8ZJXF3ZzHxxplsDKGt
zxEuvGNozX/tTArS24dxmWSx+PJWoXMzw/6NjXqYOKablgdjskbRNk7w6BBrwZK7jdfpf28dmYep
KZBY1JJyQljTrmyWhhGDfoFbS7sQqD16v9va2UXvTcr8ZCKAiFC/EDKNml2BN6XQpkq/KUXTbjUm
phEx5YnRjBGHVu1O6PhhRuIIaXK3s2ahwOMThimG5+F4CW1P8zeS4eXoab8iPqrJfprN3lga9ULD
XLvLpM4/rsCPV/7HFyC3eTv74fxtuAf7uZsadlbdb3zR8VeHcX/8ENJy5oXXFECYJGGIqRQTI39K
JNJQYNoR6Zbi1pjIbXw1LUy/mtT98SAvyXbhOmp+jpg6/OptEqcumk3Q+cNNCMTSzizEsiVTLovK
pCrpy8YvQMvbsQc8foCz7cOzdb78xZT0mzY606t/vU33c/uxv5wuz5u8G/vUHC0fNiere/w0s1TA
p/4gVFF6kO94Q66AC+ynXgiRCGrSvDI+PJrU+HmVF0aNZvPCjNooNDxpSf/R4npPjEewlsOmqVGi
l2LZ2L+F2hdewf1NXHg0/RH/eJ6/go32qcujyMLEhzcKp73dhsNRUgGWLT0VFi1OH9Z1vO0hsd4z
BaH0qui4/JTOEhyYZwgem1uI5DiqUX5LrKwDnvj39+MDtNZasowXPNbSLDue59u4v7ydj/fJOn6e
j3upDtqeehGKkSra4/mCMmzFYkY4Eh4wA+5ycml/ZDZZ+sOn0G8gER4Sto+VCB17eAT7Pw813T9v
x+mVWZaUCkKsMKjCM47fW3DK8kq85mABrUnWb9lHXZeBgHWeLX3quqfkX2bfMh5Z6yy5lqhYUDP8
3boIWvi096fjFTAY01PV8qxDCtdBQPMiCm0RKMzZ10T8lZMPFpvFHY8vIMM8u38ArWpxUpg23PAK
rqcn0GtlG0rVDUv813i7ALHBWMInLpZHMV2CcVp+ZY2vX70eT6e/kV0E30nbph7/LDO8mP04UtsK
YHZ/fiZbM3d4rhiF1igvp0zdq3+2/7iOb78ybVxmx5PdfjZVYjcg23QowbuInplef6N+xOG+Px4B
oTTDzYd/uA3ff/9hZsce6U985k3qbZNcEMdJWHHk9ZGJVXUbWOp9/AQs6k9bmYS4KrWsil6Gw/35
alCmZR7oQpbvNlhg0GyykFazKqDBrR1cITy/um4Dce7iB54bzPv7fjwAYdZUdUqvhFx+OJrxv9hY
8idlzNauT79lx0yP2+XruOExd0luD12T+/twAxqjZsqX+d9pMw6alXXvV1O1IjdYStsM1aIILHyu
UGkqCbaf6yKUnzolWygKBsRAkTKV03vCCqfu60CxVjUilbW36r5h8peCbVVR5d9fzorrUgYQpJjz
6S2e2cqnj+5hq+Opy5Al0mrbOPTmZUIFW3fhwuYo6RyzmjsjwKtWgYfWaElJOB2NtUQdRC3qCqr7
zTKi9TcaRPr8Kukafg8oVOHCilw4BRVBFAtknzs3P7UmlFuTJ/TPJzh7phupGX8x1d0BTesxMhk9
ISbb2eiI9IvEplrBGMHP9g5DK7KKKbAN5I0yDYzF0GyvoCHlJpnexHFsxRLy89ql0khnbTQ/OxW6
r5JNS33KGVI8XEOpyA2OxsfxDG14z5hl3/rBlpBmJtiimM1FQAd6xanDwQh8wKj+JqiYBuloFOKi
Ydm5yM+kms/318sNRBJbHZKpvF62ePWA2b3aKmvCLusTa7hDs65VW4LE9jiQPVz3Kois6l62NQ2+
YdYc7kPXeVZ0vzldXuwDlJ8vs+QKX6RmP4XSQ1XpL7noMQhzp/Ezr1z78HXqIPyRN7nqWoVRzy64
W/v7QJ1GAd02Ya7fJWwcy11V+PttMlYP49M141AKt3eSiLrcMxq9K2PV20Cd/jh+GJcbq/OVg9Qm
3o86mCnvyHJpgoNymaTF9JGnGtuvy0BxNrWosRRg3E0hnTBLk9HCdSrvM9+78frvJmn3kPrTLQsz
JvTY/6kIQi5Wa3OkK/dMiJCj2FLdMyctQko2HG18alBuZPfVhMHxLdmSD3DW3KwkOY6U0pYoeVGG
6Q7kamE1XvdMDPQLd6dJ5dws/95IW2hkV+Fn02iV8gBD+fY+Ht/egelc6VSOI+X/yGKpSdnzPsiN
xSPzqtkmFslxHu8PFG5odHg1oYrJhcnrmhloNYEkN6sLAcpS16sEz5zDdhULPIft/iqDUdezds8y
DBM5Aq6vGHzdpSDMt9RQ9KwTkpdEmu+DshLXbWqqh75MZ/xjkhVfzpfh+biY/xLbWJq5gZwyfOSv
WdnjKLku9G2kWFOcLV2sZsgwUzD5xYl6Q+w8fsnTa33HILUrKpeat0szJMfDx/gYxFF7RKVm/WZd
66ftWCqEHxHRcv+ZIcv6CWtqE28Z2UnTj8/rRGHcdHKt7yWi2qPOeczuEobnfRudxnfsaeODa4fK
60+MOqnArmrWpGnEj0tKs4WAX/cdsh05b4X9dSqUXxp/6dMPsVTQVqOonpUvNVSl5nh+Otidr+ua
DKu/TCfyd2i0snxoqe1kbUvMOGY//mYMqS+zeSVurmNsRG5e2a/YaFqNuZ/5/YFj9i+FSs4qzY/Z
kTFQIs+3d5lK5VmwKilXXKypgM9ZQy6pGufPZEpWLMOy1lDfTGR/+NvlNBmHtpUIUGDt1AWhSNX/
Fd3J4Wksns0PvSuj4yi79XFsekYV7+6lkshOWFv2kNuOsY3JyCgrw+gpHb4Q5MxMLEPJP01ixsbl
GM7j4/vl9nUjG7cV61o07oUzywMq7OAz8qL1r6K0TRNVUrgSmUWbABFSsDs0uIWqW4n8jFxmXFAT
nkIgwbD49LvRRi/quf30tvfKa7EWJlZ6fLlPDu9+/DIrYcCdFVvXArwfCeZN3Fk3jDsJat65MLfJ
iLBlqebfAkvH/s1wPVLjAf3XHYlfX4hKMINuqOt0Djtq/97tnyP8vg0KWU1ejgSuFQ1G/1OfExAP
HRNOrJN4ViJW+hvQ7L+bvfzydI3hwDBlRYPK+wz0Dv98/t3nEST3eN1R40sJzI39/YgCWSoKNdjH
MVk/+Oe8d6O8CzB9JcLg2c9Y0N3P4KC7Bh+1QVXPbHecD5mNMV/OqPqmcJb2ciVzmysCCiGFXPsu
X0IZsA/+Q3K83Uf98hHDSB4Oh1+e8DNWN64JNctV2O5NzOAXkantx77gve98K+DXo1Ay5L7yvX7a
V5fOjQboQ9ajXC8ph9PwMp7QV75hkSDBHEBzZmd1cJrVrO0Iwh0eaMNK+Es7Edgx6/STwARwXxes
Z1MbQ8j8wzVjExcRiJBlpczkc2vptUFGuOpiHB3waROGRruIn6dzMGBG9O3b+MAvsU8lWU/j+Q2V
VbFUNIm8ZQ7C9NMi6Kn9PVZf13osFzPj63dMCZj/tqfK/jLDvhVjXxbEu+3RN/5xMryrHOdWjHO9
SYlKOt13dfBr7jtZ7DmWL8Nn2UYGHvrBLmg+cT84HYl51Ogni2ChMzaFuZU/Gk+e38pjZjv0bCuG
j+Cx3yYhuDAt+tiLQhL8M7rS8u1mbmdRL1aGkeV2HVQXO211OVupk9FaPMxTLFLucp72nvuS6daO
j0WlPeNnxkoTZk313+tQCTAvmU1jXT/J5ck6kJ33vwhws+q6yMqFnzc18z8NBzhk25T/uc0m9XZ7
SZhtpSX47XgYL84j/LJ/H4WrsXtqWLjHuCYuQix5hBlvcOVJKNFf3+pw1+wCGwovNmJAatuxMfCm
miaX1NjRzC6x5TEBY3KqOulAbVseCyc1xLVuBoDlLwJ1sEHI6UtyhBwY22RTE3YptQEez7jfzCbl
WCqtJS5i9vk85PX1dvnYQssLpNLEJMuO+dx2XY/L7jKt/raFWsESIQRM1y+HYMK2f4V5OBbO9z2O
4UvdFtljnFJRsKZhnV3bHljFHEffsmKfqNAUbp8Sizz0C1r85fX1Pj4MVqKD90hwwsS8Mtaslaks
3al9wD6OooKD8QxPtWONy8K5AIvBcF2kKg5ftv54CE60qhRr6JueZNjPZ/7C5uSOr8cR9uT5TkPW
OUEErsv8APR9EXzv8jl2Ae+DEPl0n/qOyblkc97R8eMt2BAVsuUxIqmo2MrWLrRvJ4KuEEEyn+hb
tXyrCpPHm/60ImrBJDFtw7vn7QSIlAuRsrHPfEmT3RdASAOZRX+TgVnqfSTLIX8YVihVV8ywUN+G
0/GwE61eWpL2+2opYzr9w3l7loftAwEUqoUC+e8Oye95I0TH6/FzPO0OlN/+MXd1C8nI3gdYbdLI
lwKNt9sFJapYazsDxnIbIFgVet07CZHJ7qRedmIyEjOCxG1/d1A/dxoutxvOOyouc0TBsnzTPpsj
s9wxEd50yR7bxBzPMnCV3gMhsQRPwv4VG+v7ZeLKL6iFt/KBM6M859onS3o4nS7fX02d0d7MNEC9
yb6Ll7wT18RB/vQXC/EpBg+qJYvsAnAm8qScN2mU3xe3reP5y+Hy8QV2XNes45qU39ykaAhcbse3
iciW9dSsu9isbS5SdSdDeCoyrIjbUxN2xzeMwpf7cD68XD6/0Bl/sbeFaPn8Enn+9VzJZNeTQS+o
fPrEbqku/NGkjhh16tdFfMQuZmPqj37mjKuKnU/h/gHuHTXH16w53iXhRDoVoqNjOiwjT5ZH8ODs
3zwGg8cs1PX1DKOYhLXxNgpmybji5C9zj2SSQFcyrJnejy8NSdjKV5FGwWiwYTyWhhuo9OVKuLxf
buNpmOuS0tS4/tGEZSlTG17uk8X3ANQYlo5FGFugsYaX52mYDN/JCfB4lISFGSQMZgRaGXKsLjx2
HOumdbb69Cn4Uqe+tFicf718nzTl4/1y2AEosbrwOHtU290KJDQg4dHNOLbrf1wuD/CRx1mrfFe0
jU7+/TcY0o+BJ/qyVltQS+j8kqVsvw5R9pw+d5+57QJ8uJ6hvChzc1o5nn9Mqz6O6J49ahuLsK2P
ugQkitTWOQTrXyG/sMWzGtj/RBiTddEE4HCaWfMPgg4OVD1chHWD+hC42O5BfCL0Tc9AYuk7duX4
x1jeuPKGGC3+9XIJ65gyayhXa1hI3WI6vxcFr6XFYjSmJL+c610NE/41/zmr6DERHv5ofxlPIG/d
16kftgeZ+bJKfbmfvkFnpoPjVw4LxVeKmaHeHwYldlJXh8mQPUzGcViKZX5BPg77JuvgYSmmGx+E
3PwTl6zES55FRIA/a//uC0RX7NkDqhi6ImVhbcos3LL5NTMN63gKsWLc38mIWqpgsHP2jubVTy7T
6RJ6qu6v7u+X73+8HIRqh57NBrfYTiXZnpZvLAUayQm+LkOcr55/e7mOADxNMf1r7d05vv52uzyv
JngW40i9Ht+et1AJL/9b+3+Tf65ksH1OQs/n935Lk3wHONENu3j3TJcqylOa3PT3NH/nNr7mYTtb
rw1K+4cbrydT04CaV+NKk3fo0uynX1nccFe6Yd4AWpTXcqVxmGdeYYsCH3uDpjQ+U1mvPt4ti8kf
UOMthVIpX1aT2hKAW229fHFQnnOa69s4uc4H+C3jgZLeZLna0URn435aduEELlVljwesrenZvmq/
L8A/aKclW1wVIV8dDml+PwBw68YT5OlYQ+6apnYFT5uFPiLB/hTe4hNIxLIXJe1Vkj5XKHraFD6t
oXUev5+O53H3cjwcwfdd7EVFd2lI5ZjMUmqYzzNjNc+bOx3Te5v+PsckPRt1v3IYGSHwcRUokqqK
P924Qe7UKfeKFkYVmOEApFbD4JMj3po0Tspu4Bop67E0zFVyALjLah/CagFUecPckHngwmIkfBPo
Hb8BgkxxzG+Beh0utw9v0FzWp+D+Sq5ooOsq/HWx8SnuW4JCptYUYBYVrO7ft2JwCiYBdT8N93dA
hAFIe5ubE7mZdjVkCBVNSKLjJOTZYvbbLoQy1qufzx0jE4B6cbscARtIRqizhV5tf+aayZB/RDfr
/oqMW1wF0jD4U9uoYiXfTFSGoXXfa1b7RGDHPf+eMg5y7szRqBgNmt7CfbvpbFdZq+UvtwnngsXZ
eHnXQgbDcJdF0DQzT8Qw78uMfiQIommvxVxmMpBFI2V+ep+LXIC5HSwpEZtEyvlxfPyQByv0vszA
7qm2Xco2SXObJOjZNPwdwMfrF7loGMPGwWHbv8l0F3V+JqizPWsfbiUKPDaHaKjQ6mCpvo+RkJHZ
0uhvwL2XAYS3rrmVYMtcAnLLXwIzq65CrH5XSoCqZjo/8tPHfkqupMbTwaR+Qu/wTuDuUJc2fRH6
dpYHTC3Wfxiif1uGYgNeYKaUGz5A7uHy80oGcG565rGxAAMps+ExPf57tCv3lxcwS7D3gaPFFeTG
5/F8fYZUv48jqhHrewbxTP6D3eMtU9fZtQxF2bdnjs5lQb9YBl86T87KRCQI2fAPnl4yGJeXHVkD
Bkhqt4eA1Lrz8pQQL2207vV4gtWzbRWU3KoZce0kpdDtklkVoVfLrmH8C85lutVGINgz1oO5ZPJ+
ssfWtqk13Mfhtn//QoTQVRXhxy6BZlImaFCLbtnwEwd1bHWK6exS6Aejc3b5EWN+/BFXi/cdY4+5
myw8Kyqdebl8ooV3q3FU81uA6+78hsnKdiGoybygLZ8uUqeV+9kyrI+fsyxiBt7+aJ+qiqVdTvrt
E/Alm3hDZe4OIcWdEu32nqmQ7f2ObVzS8fb9/v1yQ9XGnTeqWKx2/BiO8IR0qoPgNv7zebyNh21v
qQvLnDsvPtBXdYojH5Ocu76LMwDtCbGNeqP243IWSmbd7yWfnFgpY3+JvfF6+WbmPnSqKpyRpkK2
RRzfFqkLyfxenzzM9+PhMEIZVgdtEjO4kgSQ635LpyrUP4ZPULXsfq5PVakD1Ep3c2V437V/jljo
NE1adB0y3km/OszF8jaB59vlNJkDr7fBFns9b7ZeT0QF6n0Lm7WZuqi5/vmIbQv7V8CuA8EHs0xO
i//F3bcSwzEdTa9XJtZ8BMYYOBwfI9hsz1wfc+mlA04Ml7IQwiupw3KFElNSgJJ3XsxtdGxPVDLh
J1EAGiziRu3Q7mmH6zEVPmBEc+/TeetpWSGlDzONHGEr9FVY3VV5IqYwFtYU9j755d2VOTI0CQHn
IjjLkxWfGceTpjFfr6fjfljCEcatTT+sguKKdstUq8oHF8a/ZArk/jb/x19le9kS7ReiVLJj/9GG
VrObbzOPM0TNVZZosxBlGHzi5hGlzlOq/Sh1MkFonNZAL3b+eKRBNh+IYO0P0eHmiNlVLrLuzsG7
kTF/eoAUli7DMY7NwlO/pu1/matNvwyHA3ZAtV6FCR2pYY8DoLoKv2xDD3F5ISh1oqMRfDziML6Z
WbVByMH+FZTjbeF9X6M9W3eftvR3OM7ZXLKOvx9PJxeLAiOEapbQM8ZCqZmI86Es+68mRPO4XP5w
EYqeiWLlj26u1EzQM6v7X9nVVX2cnFN4dfvn5Gh//E4slbUX06dGmMY0b+P1cnv8L0cZUPPpNjYL
IqZGBsMGYj5kwmClxe2aOcN/PN5JToNT1KlZkOiG//Z+uQEDoGLpAY/mJRK0jh5ALbdEWea0VQ7r
A5F1HveG/bMSJl9PLe9/8pc2EG1SQ3lFouRs/s9J0d9eT6BeqqqY0PCA5Emy8OXodjVfEy3vZTj8
/gyNPt2tgnmZOz+CRGvll2dyro3acHp//pY9vDIsTmSBVFe3HsxBsn9F5tsOtEpaOdmvCn5I8JKy
M8HHP9vw3i+X06KmDeHfS6aqpRqVa3RZqoBWu4oiL1aDa8MCCbViVTDkPx7uX2nA3Q1Pc6678EXM
STljHPMqo1NUYXT6Mr6+Staq8vXRtv2pY/O5KTJ6j6sB8+R8RZq5ANMV9d9J9R5EpVFU2dYQ2zM0
aStCGu69LTsp/G/TvsPx8mb531/C6D7777QVZktKXK8CDVIraKQayx4do14IcfqypdUutFZZtnBt
03+KOSdHq/Hr4jOX3Zdm+tzxTMmr4Tz5gI+LgHjqqNVsl1RP07CurrCl61d0yvYRS0aZ8s6hwxRb
3rH7/p793llgrl12qV/P95Mp77/5OlRmEb4cwnp6Oq/MzVXCaU+kJAvbfanYl5Wv4jJfTmLidjtK
QVn7uZY/p7Hj6NsysWh/CGGth/nv8/icTNvTzk092V0Pr+B2FAM1qjz8DSc0eSYne8+vF9NyYogq
QNIzTFA+kiZ5vY37Sd5NJAEPlYyHbDWIXkgat3k3+Uk7BJ+gfKbPLawTFzacbbus+Wu0zZZRo1KZ
btPJoafSsW3ava5Ifr9NjqyQtlW+iMoRqTmvibtES2o27fL+nByI55nu8fY8g9V5xeQF8ZqeDTJu
O7WSszAruOMkAZKn8pUTDNvLId7llgX4o9TyZV6H2/A2XeS7U3PG55+cUSAJXcWXI1f4Iee5V4VW
WOYP7j6atYKmZFezgpkWxIyVr9uJRMZ/hyhYshnhLM1CL0fDLblJZdq8/X18GnF7Gu73cfb6bUbr
MomQ10yityp9mLntltkyk+BBGcCq9MFwhkJuBvaCjxSbzFsxd3vy1Unc0b+hH2UYRx6HyQAtfL8d
H6bEEID0uyWEmDFutoGJu0738XGk8cKZlFFVstR46xtEOQ30tU9T1X6gyXTe6Bufx2EVM3N2zJW3
oQxkpTwFY5vNqEoulwiGKfcsNVOTH1qHRRJo2T5FY+xgN3plPGe/q1KZPNvA7Rq50VZ1mE1qtoEQ
VaXnTup4rjx3oq+aYI+mh+2/g074GUxksfTNX4QFXVR5ZGKwc/B0MjzT8o0GL86wm66IsmZOELXd
B4bT9Bdf3m/j65fn+X4d98YuPcikZ/hf59u75+GJoNO3BFq/Nj91whOQR4vZz5vlczashz6Hk37s
x/3yscnVdY3/eHiZZOGXl+mUv4Lv6+V7Fq+k7++3/XSh4EoKv25teWeJN5iBK2G4wfzNFxlJwFJs
goN0FQf2U/j07NeV/7rwXjx9fd9frvDbNvy29N/uCHpAcovs19p/PZkfhf2HpWE++mIXcTx/McEN
491+yrTUQisci0QkQHmm/dpf5xyX85Xk5xBbk/5iwxate68XvTztrbFN2g4ggQjdxpOp8wIU1EKB
RgW0flv393F8ZJrXLY3KWwe2BpKtINOMbwmUCwFNMmX6U/PowSPuJzZ/Y/3jokL1JxVTNmqJCvPP
UXGRjtLzzeprjTDRymQtAftawaWHAG+UH3fyfE6Ovfr04F4u5KNAmOI9QPbPuSzFk7mYRvARhXCV
D+i1hnXavgrQVu7zVxbXY9Y4u4/hPLyxANuskiZT8fHHy4F0QeYuGmbmEcr1bEwvxExqd3gYrM8M
V2gV1F45ONgkHVSYov0NUUXGiszl6xGVVeg6AM1Dy0B8psNqEKcpk0eMqHhTkjrgC3kxNTzb0NJy
omChswkTUXeBSV+De0Yso/zzNYKy7WUyDdxSFVisjRNN0zvcPW7juBv2BnVp9oLmmOzbUvR7/82P
X4xP9CeTZzaToXaTHz++gpUX/jJqD3mzoItZgVj0aO8q5C0dUhgnb/Fw93hl19PzzYSt4XkWXcpy
j1eFWLXk9Ue9Rz+LaaBVMJO8NEJhrvj87UxDLNh3u6hDf9F+nS2YccdaBSzVVMnlN2j5ninZ3JqF
gsA14oQzR7QI3dE+3hNakepC8NL0nqCuYu5waYqKyn51qhVaQRMWB4YIXr+i5nV4LcwrJUy5MrmF
Fi2BnWC14COz9dfo4zao9HZOcbaay32sU3cXbR4+CC//CXikin8dvUjlb66pl5P7bYYdtwmxJgxO
RHxFtd2oEr6Me5rKOnmt6GZYiIN6hkLd+CvqzUNbYBpk+txND4oXAG0NFqJhWeX0ezdnG9hH6/9z
7ugVTU2qQmjGNvOblBaWJ1tZmj5BUJcZufWnuTtiRweTPh61jIV3eIvFhtMxnWbZ6Qg1G1xj3OF2
01plcmyMDbnU/ebjzO/fZ3IoUFDlSB8PeZoMeVKtVf+apok/f4DTZDOdPLDRtjvKLpZN+TG5+g1n
u/B/nrYOkUazCxe1rCXn01E2jJ492CW0DniLDYdJ2FQpBgDE2nAqSLXp5vPnyPCdGw81HovBDqmZ
MpCC5N1HzqdYZG9LfXgxSElNDtXKf/043vfAd20YMoOyHe9lTMIBmgEqHC2iVzaSb8/ZoqpNvu7t
6/PqgKjmMmEDDjODHNtGofvkOwwfobgnCBmj7eVWv1qHCAlNeBk7yj+cziFd95eiKUCzElxBvtJW
2XURey80FKKhg+Le+DkvNIQdOiJqIcLbYg1GjniERdnIFd2Nryy3wNjOvCvKCnzEyuzNR6UbjAMb
QWvW1OAj/lIMvfdjgmwPcreMsV2OzOxaurfeT3vzwABd6nvEUU0Xo/vVbqNg1bU/HbOB+WzKGmyU
I2oU9gEWrvCzKMCHNWsMMEHdsp0X2INf8y2xFNjU7pMOfOJPkmzh+VcAk9R+T8wlLgrAjHXHFkbW
iTuCEvBV43sSmCFaCC5N70cKWr6ikS9RfMlxBuLMfgUWQ+sEzNhUYUd7UjpxNFxpC8oPfrK1SfVS
31lU4BNW/cAnjFi8XYmjlcfVdrPMliqsQjWyvmW4btT2rTiGbIFKvhSbV1ctob9Cyz/WsAIKVjFd
qAqsrwzWV3fh+sBhKDYRwkfgpAdHP8YAz8uq9SN+i6oC11WmfwccOh8S5/Ay3EnI+6kZ2iKZWS0U
V/YTFVg9zuxdOKkHnBT+2DzqeP6yA192oemOBbE1zvyPGeXjlrncsQZ3rFNeYqEKcCZt8pMKcBKr
Vat8K8KyPnAYqku9rqIEPMiGfrDhMZJtYD9hp+DTxIXqwLOqg8frwlWSMaGW2e6svFdDU8JebBe+
9yY8OPCoVBVMu5vFpgZnzUqMaMTe/KRacApVeHDzawccx4oM5+4jWhg4BVae2vhM+PKWgCbQfD7O
mvFqcH51kosUEBa9Co/c8aoGv1JEIjaSL+B+dRUeo7ssDU6+KIIfq+b1AcHCqpJ1xWQROAU2x3Vu
BWNbKsH6Kh0IvmZmWSBlWd0k9eRV0NS26+sDlpi1LlhYzQf/ePFaKCCE+iYVLlpOAVgFVcmGsnqj
WoH1MUhg84k78kIDIc5hc9ul7AupippNlKYZ8F24pQJsqQiPXIdfAsVRqVRoED2Mmk0Bnq1PYFjb
T7x8qdslZFIo8AkDUza/0rpPNJBFrPqy8nV6RQmUDBuTU+l19NyWGUITrgjf7yyfgYnJCmqNdC+L
2eAGz5BVzfIHUgHJx8qJNbsmIMxrNmjYDT5y7FABpVbW0DwHB6Ga8PBnOwe8XVZZzjzB+cfQE9FF
6OW4i6rBJ2UbmrPYubUnyIqIOVDZchzgjlUfSAwdPmKkSnUdPK9IcKAr0P4KjFrpIiMa6BKtUy5g
/HJKOeDZlKHNOvNaDa6/7JKODLj3umXtDRVD+S0qcPOsJyIQceDt8FnR2tt2GlgYrI9D14uiXA4f
nIMug3aipeEuU2XesYpo2xNrokqVdu1DQfPb2+nyMnAkPD944jac7ydTOM3rVwuEHeBDjars7Z/V
XAb9hRpf/rT7AyDgsO1oxgZNmnMWaqqSVirYIEK1h4IgLI4mXMXv/rT7K4i79g1bBhX8VzOwy0CQ
dueJ+W8ZaIbCgXCRY0ggkquj+B08jaL32A6qoGlc0TZs3BZTKUtPxUYNTYwypDO3cxw8MCWkyI/H
aLY2uS7L4JmzLhVfXsuKWNaLcwTh0jwHlh3VT5T85tBhs3h96bOc4ZbMlaG9aPbrpQ9yJ/ay/BXc
jeegsm99IchqVfCAa3bAXeKAg9vKMaWbL7d1j3BlRc/4yDBm2wbP7A1fmJcV5BjoDNuglZTs4ox1
Pssdmsb5PB8N8ihhlaFkDWPkqvMRu9SKqCAZLohdmrFdSyfBkoKwQYKwCrM/jcTWmIeYYDeeoira
NB3EOcovJYD6kHVNiXQNuzIbuCyzQg2eeMtOnBJUrUTPdIpBLcbkY2NHbeGNSsleu1H/4AipO7pB
+MB0rMf0MuF+9/lxon8W6JQrdiq18lbV8vPL2bpX9nH8lApjLUEmoBtr48iM3SLGZjhFnR8A4kRH
RtazvGq5JAntqfz4179+oPWzV84nyyXXr9D6mRw1j7Sso0mbYueYXQfbQrO4AkCmIz7RZZpPjgcq
vkHL8KzOXHG/jPvlJBYn259mb6XW/hiS54meSR1BajVZzQulATsRiwQArrlCy1Lx/iokVuBr5hKq
8JqXOkQJlPhMKFHiwFqrptiBE2hhU6zNUrQKzre9/16W4ugVNEwnGLFZFi2yJqDUZS+zrb1Vmrwy
KPMY4hsBZqhOMLshB/Wx7daLqhdqzTK2aDPnDf2iplyhuwlHBB29ugt0UpOx/+H+Wuxr2TFiiKHZ
Qdc0A7xdOXvQy+KmlllAJ75Q+DpXFlsrs59GZ1tG+4lF2Z+y7mufZhlJO0DVwB5o23moTbYaeCpc
3dPlNFyz7Kh1dTjJ2N/2RdaBb+YcGPkFQLvBHw5vE1rZMxkxqJmQMDpM6dB3ud4uj4s4gcHdkz8c
isknBQQ0y5ks53jQ0kVDv06n+Vc2KRAxlY7jrI85ay8WGf4LlgU5mT1QW/cUvXMoJNrYQRS9Daij
KqZaTAutKlO7gfIydyCxRZ65qqrc7PdYtxUGLLi0IGDeaH9mYFTuyjVT5J1lxzWRHAMKfsskdzKQ
4/ZQqjC2gKxreFl9bLK5CZcEYklLuSPVxnbB+6STOqVGQs8/7r53qSgeCTa4XQTd5pphn+ev58v3
MwYqs0v0r8o89K5dlyLPA59AqLriU94IrLgoVuXIrvsVkOGglSaxOo8B8ESoU0+aItMxQA1bGm2c
NFWXbUxG7nTpGFKFhWZsCXdtmfFsq2znzt5pR2aCDP/Lx/hxNRrNrPFxlfsyWlaSYZv7pz8d2NHN
DD0lEJB7jgrLRhkOnRnUwLedsivwuTZyqasFt4XtippUCUwH0/K5rZ5swhmZfhyzn/ISAeoCdJu4
PCc/+p/P8WkKnQ1+7mN8+0F9BG9L9B5TLoNmjXpGjjjM1OxsZnzAbVDA4Py/t/E83ob8CbNZt9oC
g/RuBt9wexnexkk8M+BITIslikvK4Fpb7Hq8mpm20yt9e8/S4Jnj3s2+Xg7FNJLcTj/otKllPX84
rCCJ4Wu8/HgYCGWD97+6vyxJz0gmqOxiymleyNJqgkqDysGNvo6P/Tt9cL7cz8fXV4vseLl9hYMG
CjYkRdPMBzeQcbhRN4MjhiiwwWZ89ih1/6HvfMMIIaDwxDH6zPcMBmpjuB7dB5NKnJgv+I9JL75P
WgPqNWZzqJqNBJpJXG7HtyPKrXUsKGrhC4qQwoc4dYa+b72NQVNVdNOF31t+QVdq6fCddDTyNEEH
EVChZk7tY8MyvKGgjFehFlHsyJhBNpl0ZettntYYHm3Xp2lsWI43N2gOQVvo1P1uIOTtJ1JUrYt+
++Oh8faIQsMsbpNDdeUHEYUNS/GGDnVMVTO2536GKjD/sns9nh6jGILrfcGhreq3vDuDAk/fA87v
fQWY7Xcw6pp9ejUGyvHtHbKtJcIm5XVUoFp5MjMek1sKmA2hfbuGeUNNJxPJLkmz/iAKBDrEzGhn
07+Mt9t4y2+RN3YZK84NOiJ68+WDdg/fIUIIZ73/+GW4H/dgI2x4nHmKuujTG3H8l92Ip0fgfJVi
GzlfPEmwJD7m0+RKqmZ9Frv99G9mSOMAhsE3dcE6dKgwq0yQyu2pLtllKw/kGJ2RGWX1zLNOVUeD
5GtADZBh41vM/2fXZrFn0Etg039V49WAcOlgESo9yjgkBL7vGLeQbOnRMwKEKtavp6JD5WyXf9ms
XdAIUc1PNq8Iet8D4lZDGdUuepB5EgVrDDTSqmScu0jtPBnNxtlY8ET8lvLs6/fW9lSb180zXCZz
9T4bV/Tvk+9ytIOo788XuUYtsNIrn6ScqZhpIk/UnM2cQtMR09XB56M4fMP+Oqu79gb4sgNh6LX9
VMe4quEvH473x/P2ApBxa+aTUgNoEf66PT9Q1c78UJugjtdvKejMDbD2LWp3rbuAyjLaC5BgBY0U
Om/DrexPZowdXIWKClurgMA7+eUA+IE5jCZP15YpJtrJyI92DWET1tzu7n6cPnH/bnAjJMOJSLH2
NoJAsRczf73hSDkmsRVqTUAC8mYZgmu46PH8qWwV2I+LoGOpCZdODwpcBKskr30/x/z12Uw7Oh3/
hTbOy5WZilxO/vLxcjwjAmpVwkqe6+V03B/HOZrlbLPn+T68jjsztBkIP8sddYRjPU+xnWnNCuJ9
PE9S9XKHFrIl6ZdKJVlFmmBuYf7IyRroUlTA51UY13BK4n7dvUxu1FckwFjts7Gq2yr85Un3Qu1t
f74I2wQ7kUb2IFj1tvEyu9VO8hSYIDPFuHOGIcEvYEdN2PJXbWOT/D2XIWSMm3RIz9mCulI0Y0dA
s3LEt1ThiKjWzQw9WBgUxC8dm+ZMSJA0gEYH+5N/uGDTyY329AGIQMijc7B0OJyH9lPC3Panu37J
0ig1o9H76JSjQdCVWRo1o0Gg+6H6fb3cXmjsKFRfdktsOdpCzfLl0DiB/MGULZuKZPpTna9iYAqv
8/nmqMwzZe1a7JjT/5oL+d9uaGDYPHvVzp8nA7iNbwas3mdWKLqf5sv88hneaUEnUawPAXzub4Iw
f10n1LL5/O+zBFFX+0r44CrBKbDl26LDPmZM8DF7GeSsupwtHeLZ5EfzXDRPXaaMEGEn6z4UYNn3
yab42Zxe+C42SAp/CBaBbbMxaD9v2TGUfkwHJ5Dfhb9HljBa8kT362RTIrxcdgg94Wh0/B5JRucf
dBk+CZVaQ54KmxZmgsmqm+0MR0DSZh2DpKfhaF7Hc44CrNSGb3GOlIkSMn8rbCJdTQM5+9XVgq+9
fJpHd0XnkF+AP0wqlSudk8DcaDsE6jk9dDNey8ahs44/aXje2WxiPLqZHX85qGM/7GNvoeIf5n+Y
TcehMnDnwKV2Aai0oe2vlwGvdL7zN/awHRcvbvIOdCHXfLqQ8v1JC7G8r1w14drakICJuE0XlAkX
VNEGi+QqQAcxG/bGmrblMwEtzzVDrWkIX1+FxDY6vaxP24RAluTSvCfkZ7JReNRB1qdXYLcFyJQB
vl7fZU4FXHNdZDhlRQzdVh/PBYqPmOIaclCiD9Eom+TxgN9XgWPXq8xWAEBDzVpjexJ9RfIBwLCv
XVSEyxHRsdUY2StneDfK2AtqSbs5OrmX6PdjVFrLMfJdjtqNITqPN0Nlh8C8FEuE1EtXNfsWoaiV
fYDL55TK54cZ8HQ7mmiHTWfKFFS/ws4yqHfPh/95+Vsfsla+53nSRsNj/MXM+P58PIfTf9yGNzzN
vWSJF19tzY4AAJspzTIBdq6D+9oAIe6Gwz+GPfxx5dMiDLfGfv5l/vwLgVXKNHxOhEExsw1odAMM
Sq9bOvHZxwBuTfn0AyEftvG3NfphFSDPOQnKrh6gtKkuBIS03vRv//zHv0wPwAwqM//4j9vl42/U
aLHD51ey3Ieyrf70oH5/Poyf4+G3v9ldb8dvpnz55Xb57h/Y4eXy8o9JYpgBmuMXAy33y/N2F95u
S2Xeht1bXWvXlu7qQg4ve/rwy/Nqpgl/McOsPkUq7YzS6FDb3LPzVGwxvqVSy2Tm/DJFfBYwmWhX
w+EgNPjRhqhx0W7IxgHSG2IUK7Cvzu9LLbdK2AU3I6Vv3+TqCOrdIK1hV6PMlpTLq/n1DIdvRkrz
BWl5QSo8aK0EanTSSqYzO6elnekzP/KFjtngtLXzW5ZSzVZU8zsz3jHNSrLy78+0v7+Z/XUW8dZM
R7vLhB3+aOkwFpZC3IAZ3saHBszNTt+DcsK1lYW10cT+Nbu2cNOe3/na5BIeWhzxlmNUKjeeadCJ
m539P+MP+XPKFLHPo4e7+wo+bkt2tn5a3+q9st0ADpgTkSGQjF/JJKo+htsPvCAdPjQkhhrwXnXI
jHXyXujOfw8lWkelZisxQm0jg63lPR1fRzNRWX78lImzNGYpnhFF8s5aHYpGldrZ9QleQ1/410Cz
ZbUkXRWQrrUgXS3TEsuDB0mqPcW09nOjsCamz+ksJlQ3inggUZs2lIRdhmUq11lG/2FHan253KQw
Jq23ZbxERQjzT7wOZmznD9q3zNVd0YV336wkRQWOnN1Yt4ylXjMO0Kl9WcAD31k3xc6uWogaCSTP
Gm39BGV79j3XQisxCliyqcPTXd78t0m9TGvav5tFyLPPaIeMMcnijrS0K0sG8ssrhDLYyXJFLbgi
pglqzh/sUYEDKHtBkcTvGrBY3Qss6p6UaeY5np/BowJyuFIhx0b24G4mB1iDGSiNJMlBj6cV4h0S
N7bYcGKL24/dy/ENHLCX45Qcqlwcw23GzEU38/WALTNn28xuqry5BaytJtSTKiOt+g3WTNdKpkRA
9DQOQMY1VZKBiIGnHeZkZK+8jGS4z9BU27F9bjLamKQvlzeeUukw2W5Vuz8yhiLhGfw2Pu/g+3bO
r83yohakcgvUOTYAQ1cAeBTesCB88iLDUbU96km4X4fHO2AqJSxPvlBgY7ae721UhKjlFtEzyWr+
NcFV7PqBkdBXG4wECXbIuiItlPGB5QNkfVUINhx3GsD3WjLAssq6oygfMAIcvwEh6HUkw/yI1g50
lJY8+9iSATZwuc10pBUho7EI9Juq42OcKOwvNzF4aw+0Eu5SNGOBxm2LULjBwEAPxIHX3BT9a2S9
C66qa7A5sd5aC7ZWCuavIKGQrdhvNAiAMdDhrfFQF4gsVZEib2OfwNL5rZNTwMAvVEgpIVlyDpXu
c1KlBtZrk/rYiWY4INyKaPbbRC9zu8g7bfsNHi6nBeKIbbfNWwavoOqxhk4Z1YhloideSOTo1sCD
0lXAMapHsgLQUUWgFas65dcCv4e5fyRFO0mgV0Cg6w3XhD3k3pOg46hS2wAPoGBR60aST9M2amDL
RapNoxsBAfTSRwoYtL+dZ3U8757Xt9twGM/jeEDGaVGExinQAQdwrJKpwo9VQAuyktbr6soolLnb
LHSMgWCSLFBm830ZXibnBLBXnzLbuM9gxYmZXx/EG4DrUGOpwE0QcNWNEhRI7PWDE671T9vo/c5J
9E0hfC2YzbFqQhbrFjk8va4evK4OG32h4ARmny6CM68EE3iXU3pt4SWwVlxyAs2A1tWHD1YJQhAc
c19iY5SdUWZvmrnZ7aJdpo9AuKevfiIwDOLLVWYXS5wFRFj81VCB2xzsga8C3E3bhgZ1P5tHFsnh
cUFBEWZaEc6tGHfNOPksgkymQykIC6Dlqo3vUIF3WG6JM3nzrNsRq32ZDusODLVk/Hf6Jhdx8h45
w3uQpAKwy3QZvr5CeH3gcPtKiA6k9D9gtjIMcXmLSk42g6CLYnZit4zrStoBQLJ0G9TwblKbl48r
jOb2LAwbEuIGBXKUohhSnbAmUCIlyb38IVMk+PV0+Q6Yrg4vuhV4BXgVfb3hFU1vuQN6P7kVEtFf
Joky8crxGxLWpZBxEbPHgGXrIlAXbmKHhSPdETopvWMks3seGQp8SKBOgZ8VWS0quz1gptVRJqQT
TIZ5ibvh/uO8B5Jch29yZZB+eXm+GBAlQnIarmJjoz24XrjJ9QsHL6OrtkWit7m5qglPLOlV9sBt
KJnCLajXupj7Pgw/fdnATyUUx7He3ZLpbAPHzNdILDaFPWVmU1S78+XxJZdI6MvQvGhTQVVwd5pJ
515KD0/SBJCovFxmQFUJNx6YBiU7cSruBU4Rqtcqg4Ry1QMyqKYpzEvXGsT4gBzpghRmlYtbthur
CfxrM9pEbWAllNkocCFYYHl04NUyPuy5rcD5EMSCuFfszUvXSfJzMk3KU8jmO4hxdaUgv4VL1Lvn
nUDsbgRyMXwfQCy59V4PAUa3CdMIvJmMW5sQu0BRqagOpkiGa0DAlEfi0qESd5sGTA3dH8vZFcu8
Y85JwEbLBrKBoar0BsPKvi3AyF37czHoZuOrj+Kc7ZYSHOAoFGEBI0yMAoHb16Fj2UhRKKA/6nZz
6AFX/+nIcGsFRQTCyYUWArFfvo8vtnELlXmowJbV+bQXkKhtGOBLR8eno0XhkGbjyW7zB7VXaEa3
NbDiANxT2aeKWCgSa6LUpnPrOJw2RqubvhdKR1dFPsPtNuQLF8pGsIll/QHURxcW/nSQt4F41irk
bS29f3DsZcp1SMo3wFNdJIjEGn1Ao262Z+GBbm6iIhqNc6hgQaw+i0a+VoJbDuR+n9zTxG0bUqAq
rBPugLkJTLkqksU6z7iA4Vr/rNrWNnUBzkVRpD54Aj7bKCVlQcKibYVcs4/B7GmWyUCTDm8wuFoJ
wdU09wDmCWvXnRXHd5cPRnI3DIRUcmddRS8iCqPTn38aJJBVa4hntPE6+gH8KB1U/DQKWRnAyGjD
ppdKrJ7cpsfqVqiYiEQYeO11IQQDv+TeOks2l9y6nblu/3EFJ9GHJ1FjngXGbhGmshQ2uoCZoqPW
L5XyG5DorQPFljZzqPgUmJCNpJRknxgcslRQg9gNcFsX9DE1BXoEQCD3DbJzMkFjluzAtXMFsI37
n3asgRHYRSV0vbCiDiyoFd5SvKkGONF1jnNWmwLuUNuFKYYG3TWQUL0W+in5owIB/jJ83T6q43dl
akJQwW0V7kRtap0ri6IYz6gSvmOZ76bxANpr6Qtee7HFxc60IjVbit4n5gG8U9So8u1j+LxL4HpW
5xdBwEQ1qZAZSBqKgS7OJIBHasHV5QeAQ5xd3/1sJxaqaOlD+zWfVgIvsS7D/pE2dThIP1ahpu1k
ZwlcUVcLiYTwHYJnGPYVqXXNNOq2q7aVMIJkSq02MAlpZ1R1W26sg8wE1HXDSjOWEVxi03ve8SqK
n05cAT+nCz30XLgfOchdseXYMwnrpt3gqdPdITGZbeNYWVZAq3T9hnDh9YkK8poN+Sqj80G1ZVn9
fFgMoRaUWyLnqIGv2hhSAZKm7n66lA8E89uuCeRO1cviL9dI3WeqNiaHB1lCnVCLypUk4F9dbjB8
p7NFPTf1z/ZpgP00TfgC3OCa/d3Ngri7GQj7y2lX0l8t//kx3AzmokHW+nx/xNQpXTJjltXzLHF3
cQuNB+Wm9uPptHsfKUNVWDydJLm68uSM0VU6CLSF3Pfj4fG+O49vkz/0bYS0GkarpjHnfYqWnZ8C
F9V7QsaEmhFHF0K357TF15tLOqHjmlGE6wVhtkmQujwfZjLjZNqKhGbocoLVs3PIQkJ2W+ygpEWV
fcdo8eFtC63zeH+MB5rcJvIBOyM7JDraGDU47van4xWupe48HRpTo6JL28BERZHhydfjxI00H08m
Mx1Ly6698ojPC5n7dTjDS6oYBxr7oaxKxIEy2zRFhgMtwKA04NmeLH+pNIGiS7De2+1yIXaRd6Wa
zBt9G66EOy8dbM8eAZ86H67k/n65Pd5NAh7dtea70gnede+AKmce49t4w3euPLm28Zj64Z0PE/vI
G5zuvc3cu2Ni9ybejye8yYI9UA6dHB7Yu8XShFfHFmZnwqck2XW8GcQtfO7soDhMMDv30/PjfIeM
0NQxS8rKAwpondkWPXj5YKZ753KZZov2gggEqjAWXbpYv4vTpFKxNO4ZmYY6fHRKaKCV1Dn+85dT
yZfTZCTx8fw+3o4ZUczYhMbNqE5aSSOvhJ2IJudEJx7l9MSxPVBzlm0SLDsfrPywuXayuOFJgT5f
MrBN2FpoElAVbSmrKJsysm6aQjpZWdw1q4ejkssAFLhmUom7iW0j+UxUlXnFs5JTQMlx+5Hws6uI
xuSTfIWigFt7SY1i1Rt4wGwNpjKtrIrEkTh2BRZekXl/VkvSpONFawOBzbfVJNS/N4qYWrqNZ3j9
fRHbAirNhS4yAom13G7rZTEO1LeXWcr47TPsdnxmw/6rKfaG58Weuh1u36YMC9NE8LSaQdZzLZPH
fBK2IDaAHcjeq7aqV+SJ2/GQEUIVE0J21krq7U7/crlBOuVKPqu0YAWymSkbO356zUen4XrHtzaJ
IxVbSlViS/PRgMdXxWKtSgkBWYr0K2XTAX9I3lCgyulNpIQJvJ16i/dqZiy4MbbwVTBiFN0oVcbt
BI+1yLmMTt5rIO/r2AztBHvdxTKcHfd6vN0fecO75tqtk0T5/WIlG2CnNn5pKu+lyPKkqyIHN8kU
VgwssQQgB5gpYWpnVoYrkTtcni+njGfIxFNljfoUoeH+PuLzUjwioVLmUSZoM8ncOro6yUHxmklW
6W2ZiSik7g8EXHTmSXrbDRiAVcYp3OZAVzoT5fBrqeW1tNkNnR/D8WzFNzjnlfmW0kjXTyyj2I6M
TVmqOikyZTO/zEV+iIIBqMZBOtVFer/tE9Lp9XQZMgHIMuNsk2H0MpyosQvaazxsSAMsInnpxOSG
mAQ7IyogK2sxUgK4r86sZ25wzJlrJXc0deLSqbHv+Bg/8K6qnF+WidVNPMxMGeMKlH3Cf9jgEE2X
1WSMkJUJKr/Qts9YjkusHxxOndET1s7Lm/qTIctVjg0OCNxj7aT78eVkWQBE3bqMEIptAciYfSYK
4wyJDaRK7iORFCjlcDRQGl3m9L2gbmVB3Wcsh/m9QblWllvsD+s4+CgRyIoUGaudnxAwi/pMONEJ
fnkhZZN5/tbsB09WZwy923h47rEVVeo4yLTldAH/sWOhhGgsqWc7uwR2ts48Bx7bBMfTZjx8Z2k+
HjkDUWVSVivRKAc62y7jYqVSmCD4yrMbrR/hlraFgAGrtwT9ISMxZaaUn3KYUtHyfqpmo9x5XCaW
zG0qd2+0qXz8VPUZg9zw4yYvtO8zfgLzpWaLD6iNIhNl2yIOC50w91zO3r17TR8+dOn+e/+83cbz
4xf6j5cUZdqaZhMCbWjSvr9Hpard+/20I0SG++5l18hj3RpGhAeNJyJqd3t7GXZD+atiN4irqNiQ
Q25eewL70/BxNQ+EKMn7qfmswcabj57S6/O8N5PqPo6fxu2XKfERnCyGtT4ZoYiFqLRlfL6FREUD
KmwtVgup1K6u+wc45JoNorQudCUtBVw12w8vV3hU1cxylv9eqNsE3FRVxMvR83JKsye7pcl5RnzD
VsMfV3Qu398nM38SbZOaBZzDZpXy4pD18XTgeDwjq4q6jbRARAEibOCqTT124cm8m5ZdcCqN8Jq0
2l2mUzBTSy+vr/f9bRzPttTnOsmyl8vntDK128vCgj1THp9b764Hu+vjgabSEQkNu/ZFMGZuaUBh
LVGpARV25y21NKd4cBP7VGxB3NfYdOglOnQ2M7OlUnhRDhVgp/y1MZNmoeKGpAGB2BTRYfXtTKI2
JIYNNNo2EmTx5VP420Qoj4dxUtkfzwd6spyVSp9r4g9lw6IqvihmgqxPuAVs7Yko49+pMlKk1qYG
4rmL9E0nrQI8i4YPG6asSZlgaKwnKi1q8+VUNfqeC9LeVwOtVcSw//p2m8zyAzJQepFxHdcFLHMY
vx33ec5puYjsoFoGgrpVkcpoCtFsKaDZUrFd8nmt6/UAadbwg6dp24ve0Dtq+pneginjKREbspPh
EUp/3vNS5MPlI6uZv8OP5eevrC5F5cNYe4NhV6lYPUoPDVhkDXskNrDXpiwPbL7UKpryrtv0hSlE
hEkv642VblLf5Bx8f9tNquux1PXe9xdix3L1N/f34XD5vrufLo/d6+QBmseZ3H7lp5JTL2gQ70lQ
vF0miu/TRd+XAgJAt/F0eQI6Qff9cn/svh8f77uX8dWM4hheH0J7c+XHyTvSrbfvEqSJ6syextu7
y2TnuEMf5Raksz0c79fT8IPCareJPlhw6ylzM046C7NQQE2zG2OBLGGdJkSCCc4ZuT4yeBIEj+dv
RxOvHYk0WGPNzrKHJOmKclfDbpyngsGWbQwXkCwYSVZ4BldohJINF5zGATwqpTc/quF+P76dzYLN
3PUth1Gy67JauYDcZMSXyUcMpxxjsQfAVZcjth/u+2Fao3UHpZCi3b+/fmPHuMGp23a/UQb461OF
jc0hjgCEer9pasigse8kdT8u/zqeTgN9dv9mh6IuMXSDjfSkwZ3f3naFOqQnwVqKTk9pciMLcigd
lPqkPO/P26txSGjitBkIPP9UTMaVeRGZsm2ZQqdY3+Hz8MMMlZU+Vw6xhT7neRkzSNgg5ZyO56/o
98ueE2BVa/z3S/D7BfucyVcDNeMY/5NA2W6QTtkyOkFh43D/Ose7K/lz5S+jtOxjL+P+vF9Hk1Bv
5W87/9OKRgDNJzAdoY3aTf9i+nUnLZ8gQgOUXTSKmLYj9By7/NfjybDTcL2ejpPgSn/uChDt10aV
KJ6+Nm7o/v15/nq3WRUyzsWFlH4hpSlMLvs+JPU5V4sPb5M8ksi4TkVDRhcEHFnFZA6fu5fj4Siv
pE1v6mBmcE3X+XqZLCfT/ryrxHNRbBU0JM41mb2djTSZ85Zkt4g0+DLMM3VK6340YMJmF8N5/z65
O4ZN4IYcjAVRogFkjtVXlD6Oh4OJHUBi/oCVYUPlut4cseWcg/WJ1KqW3Tqxf4GWJtMp/KoKmkVc
ZFa1Za9VF6+uXB4YAW2Jr4p/SJn5ht+/s9XEm+f3ZRiQiUb7nDedSV2zRZB8UV7CWm0kf6sY8xmk
e5ercOdJ79kgmBn0Mfn4muhSij663NvjtFPy90w2WbhEFb1lWQz0fu+m06bsdFIwTWs4HF9fR/KG
3LFCligY+xNE6QxsaW920seP436ybab3/XYWL7hnRBqS3kTkeh+fh4stGZxsuoeRwPLx6ILtsaee
b3u848m0wT5f7Dh2+Xt2vOZVK15yaEXl+8WYmfz1wMNRjGsKahkWTn0GdLuThp3Z2f+MfPz8abT+
5Dhf2iCQk9Yyc9VMRJt5ykUb737LghTncXOVazL2ELNnV8TMrkWVITKFK+TJPDn5TJg6txi81SYp
KhNkjE4t7byLhZ2OfCpsRSX9Eaiu53ky/idLcXIAp0c3ynrGBXmIjsmlqLYQdLoWj9aToFCmrqqf
YG7E0/zUaeJeLxAOBZVMkD1swxCqbyXhh2VdGwkI3W8WoojNCsYVPY1R6RcH5C8DtameH7Jice2y
UHCB4y77tFZZs4L8yvxb1YQgVHbQoEKHofu0PRUfMn98mzmhFOzzSEUgJcMejs1BpG0RZOTV/BET
OIAConYLRcXUQE9I5ppfAIU4J7/9Y3e7PIYHMJGY0K2UT6sunJjxfzombhv6o06er5bPl6lMIy2V
i80cRkvj16eT+ONdbNanXB3EeyWjYPonF31tfFf8CEvXcGk/NplS1YZu0uHycTwPE48ahA4jo8V9
9Ow10QTperUKwKFFGb/n0EhfVKeNecu80KRdkZVcEKWCZvswTp8qki/ZXqxBhRTvpU4/urQvvFO7
46sZWCY/FyYwe8IprberLvngmzT/JR1UKAK321DyFhkXaAJ91NFijKpDzkbJrp+y0FWCgPy5yugk
WVfKbFDEbNCGnJ3npLoNoyqzeKG3hYVb6dAtXGyo8LEhfyRAb1RpHxY5F/LlMoPGWEtzeJUR26A0
SsZmRmtPFqnIr/K+2nSYypnp18v9CC7EtdxziSsYkcB+UWl5l+A0KPvLhGnO5R2FCYpGDgA75Ueh
SwuuYa/45WQevFvODxBArlnklKWVhaA2iMG6mJSlxPLl347j999cPn2fAIgH89XYtFNoFtrj6MBx
+EUoY/Go2jKpadUy3gnlAB63y9dxV2gQEG4ZGUWOGA/IuogyOIyCxcWNoTqHfey1TFz6MZzApbBL
tWKQ/7wFcnodf0O0kq+fEoodS+NacBN7ta/jL5fzt8vp2/jHYbKMPnelSKJnGTGe7H8d/3Yd98/T
cPuDKZCmpLNEpCpY5osXk5t1fNBbHdEuWDKm0R495nX8+9H1O5pEbgF+n6Va+9ZLC0dByR+yjCVP
rryOf359NaXB4Dd5Qo7AGevwU/CrLOXGi99ex/84XS7ownuWErVMV7ov/ziaCmtwz730m3RErkAb
rJln9hvfPf86/o/heb8fh/NvTs8bWnrNcneFD/LOXC4vvWO325U+yDhvGiyaMbdJIM21d6v3AZZd
QuYE/MGuqqN6ruSBDafr+wB4W/d+98pCFKsUnUYm0MRJ08oR+P3HgHmGiRcb3a24jPw63s7j6X+e
j48/uD5zcBqe/QIch+kYn7eX58QB+5HqK8eHTKNjNLR34Ve36XLVYGPsAfIK3fkBgi+ZpLN1Q02o
zofH47a7jR+XSRXuQFrXJQS9Lq15WtX607uilhWp4nlZBsTD87LgcxeyoM95SfrikjsNKKvQolKx
BnQJbt66gAjUfgtBHDvUwUCJF+wQ29qDe5kyEKOxNhgkpfKa2EVNNBu+8BtT3jiRMuaN8dUmf2Ba
2nmi+ALsJHYwvKQiPlsFzpbdrm0xLJDRpgZUicBLCDirmE99DAcdErdBLfhFCw5p3ic4dGZJWlwB
Vxt1mQhZzxhk8+eEoeU87Tty4wOuAYkqbVXP7/h5HxeIsHKQ6fSMBXkLw/cjHQm2hfm9tP5e0qdK
viTgmVIxcqalp3S46OTDgrMoK/5h6z/MPAHwMLmVzwEBZ08hfErghNhL4rWe/JYQo/S+dEMTXrwL
iZp1XM2sqBkZ7+02XN8twRteUZcuh+Gci2SmdzuCAu95Q5wM4N6avUdrjXHh/4lLgpjEc531VbCG
OeE8BwXvUFI1JTtiFo6bqd0/TD+iZSWXPto9r5Bky3wzY7Yp118917XOCEag3qdgNTs85LrU+zSg
1Khn9T69rwjhpUZAVpbsNXWtRx40BW7Ht7NFT4YPmdVMKSNT1NxzOJjhcbv5EcFFMD6znTHVLAvo
0dFFTBT2Moma7cPCplVQBb3AYjhWvmXRbUtfBoY20nBOZ2Xjy0WCc2xrdo6UdggZfQ4TADOtZdEG
wxeqK1lxhz1E8NR4kIA7IKGVp4GZxi6BF6zO93iiblhkjDBR4eIlTfIxARpF38YhpHUNYAU2wXQk
Rztxdp4TCgIKoHvPbWzCtJusNMDfWtDc7pVdbkYGDhbTA700xqBt76HgwitugTjW6a0FOg5Iy46J
K9PSqbrohQAxySVtQwNEmsUyJNyjGx2A7TaYjStzSzvbfi+AC3DgDhM7LVXkXFgSJSJRp/FEIhIK
kWjS6BEJXcvkGNpXLWDAYYpomxwIiOOPRtvUaJsrqKbkYdeIRJ9G54pINGgjRUyiCh1jYmNg0rA6
Y22CTXOhUKg2jx9vO/JWHu/jxwgExlrmdAnnFEh+bhTz2kKnNCwyjk8P4uJlpgZsh2ITmWvI0RfM
eiunbArRtOFdlz5VKK66dOBZ9jmABC1iP1czhwNUVDPHP3AnZ15xIhgZ0g3T7aYlWbIRoe/GRLet
7GPK/TT8mN4wNBS5WuRAGmEuA4lu1iJgykiVC6ouohs4bdwyqbQ3bozxPpz+x2zD5+3VRohEzVEY
wxLQBSiLOk3BSL/x9dWMtNgNt3HY/ety+Zg0/XSuyFbsqjR32MzKnNbdj/K58vACh2e1Vpt9wHOu
CDl7PL7E8brsSiYOMedzEvKYLtHD3ggPA5MzsQRfxkyMSkf7aUNNNts73mFDJi2LuhlvXzl5Et03
Sn2xC+JpJ3e8P07YJFWcX4IOzqAnBYQXeNAlaGph9mgD7NE6ZrAufHYdiISx0+OFyVczLnaOPIO3
EsSdGL6yS/z9pDQvuO3HSgesBAYnyOMQ3K2SnLs9dO7KOKdbJkxg1KTUxe9MJ4W5QsK8i4V5kfR4
kavUpeO2wd2iQ+V8xZCHAn0CrHGujzhbB7mF/ftwlrI2LjjEgmYWcULzsvf9abjfRyzRG0YiqOtn
IRAUiSzS0Wse3ULBb66X2eyGUK8C46DTLPrT+vLsQEANQEBVceijFqN0oFShFoJ9ySgoeB6Spxqe
B7CtuzptZ+RidEiLNOn6iSi24oDCASHeXWcEompSIRLUYchOmY/BOZrsJn1C/0ZmdikWR7JqHxP4
Ug70wn56nf7X4+3b+OtJP+wffzU+sfCQac4XKz6qWDGYpUU6/yRvilYjtFlZCvBMaAGrvpeWfQ6P
gVWAVQSC1OaOQSzkb1k1ZEO3qxmtT7QKXjPFsFjsl4teFOvG2yZd0Bd9L59fqvsllV9CKSomgkwI
TtU8GYMMBJ5qqz1sQOwboZB8xYKW9Id9Uu+38TVQItOXRhjegbvIzZXap8nmQ7TmivM10LaCgidW
0BfmepGTwVQSrzGytrjFZQJmeBeb4awN2m8A9UEXaSMnti8GYF8IkuqWSwg0q2h+lM1AsYcqbpxO
OLnA4O2FJOX9x8fL5YSzxl067zzrvw3Vgk0c/laJoNBiH73crxdyXUBcSKWjKaHvAe6iV+lwLc8I
IJeySJ+Jc27N4wZsrNq05xWlAxAPclOg9XJpPsNcQqZodew51CDuAKxdFsEJqovEAJsCpjtblQNb
UP8lluUA0VlX8UurgwP25RKkDAmdHcVW2G0b636GGfLC3PdeYK+diQDVUaV4Fbu8hgNJO0FrqYl8
FFdAb/nP9XReDm8outKkqy8C63oET6ATJMrH0T7a4Xz8mIF5TRbidk1DAFiEKnfGVRlNL0xQKWUq
TjYT6CNvbCAqnxsIOKVbxcFQIkCv6vZ5+wEpaLYREk2tp/BjXoKSCbjIThWXMoV7aMAKek+AlwqG
K9BgBcpvwRZkzUHziSv83Rq8FtPnQ+1/5e71dvnYPS4GZ+eaLMinw5jb9dsoWrtQtMzryL38IPTA
6f+LBGczuY281BXBaWnHgxFqiNpsOrdRga3fsGma9pvNrW5uO2sXH7ZL0lsWR3/Kp1eyzbI67/Tp
bSQ6e03tYqiraI3rSzbghdP/lxfasIVqP/BNpDnddJamX2dgA4mss+G6C7ZMZkeI55m9b3ZBRpvN
FRsrgpuW13Zsecxajrln217Zy+MBpcxbPl/kC6k8RQ6VlXws29bYela0yL0KPxdErGeXy8s2ZMmQ
eSfVzx/g9RMeYMs4uvbxW+kAs9zXsJdMpeZF/tV9QnGtM2eY3jOi2OUohhJ2081wHVA7netClQbT
f7zZAeqXb+NhMv5GE3hNR8KnK+6ciqJ8M48bznXI42n8wAQqT2BBuVqr8Bqo8I6ZIaxUJ2ENIUOA
6fGVtgipoLV4e6TsNIPEnY1o+5kNZw3nN6lVxwLJqhgx2nJ88LmWP2eAn7zTJ/i8lD/nuOksu+Cj
eUtsCBBhAK+BxzM+mGMBvvfowN4kWHMHspVbZp+tBJFJDEgumzWSmY3Liwful5tFQjP/YqZx3h5/
Gz6m20w7oobK7Ae3EVJoRKEUKXRzYKKNqpY9hV8bNEHB4iYKDVsDc2VjClqm0DEKrA43pqBkCi0T
GTOupw0KXcfBnurxfJy8B/rv9G6symcqgY9iOZ4P46shMW6g0cRWTcs47KcabRzH1EwEND79HXoU
gOVaHRPoEgTAClrvHgYwjAlRBhybumecX0TOx+cGAq6OtYpDeIllAA+v7mIqruhjJGabP5rkSSsG
11lwm/sV9jMxpt5ViZj6+iKANmi5g8yqRD4uS4mhoTXJ0j/S38w4zga4/yAIAlu9xkcZsRh1kppB
yBgEoWCpsRq/2P+Q1vYiU+MjsGd1vGYccOUNf0Gt1zzhuQNd3jICKzfXtPleHn+wM5DQO2bsu4zz
jTPCqN26TCeUQc8BCoaxtg4TjdKqW8e0Uf1InU60JxOzoDpbV+lg7vztlv4zHnEM1NjxX8fzm5P/
hL21YE+7/7aD9MT6UlIvHVOSNtbmcBQcSTuq8kb3jynN9ZltBCMwU5ohGSYlc7JDmjL0tKfHwznh
yk7ja3Zh3JJgrpBwapnzYgqdD9lZ7XJ4uV9Oz0d2l4rtkpl88eI23SU3FRo3jHcVTYbvhiXtjfmk
i2Idud2DyG0TF241q3o4WDJaaA6KzHLjUUpIgXIjpVkShCyVIlXai4L8RRoMONNMgLKbvGCEFVDn
2hNAokYzicnHcIRFHy0orGAZA6OG1KroGKQJVJ1uc/NpIjtTEiWK6nSJGS/SQ50vvPWPjZAM9w8y
8KyMVBl/VjW5/BK4jZbzLcWYesb54+f+9LwLeDQuacKruHs/M9TWA4D8ay2cg03Uofxan870hIU1
oG2HV3HxOlxbuvrjilNfnIN4+5irX5jrgmGtep3Odq7qip9nW1kMq4p53rbwnRa21WUXdeeVkFQd
N7MVvJbB/u9x3WaTNofiAhPUn1Ck+xPC94EKr8p0qtOytCkEFbCTnSRv0/g3li+B8dV0uPjfnSIz
BEHVJ2tSpLlruqmE8mpUrihgIfxrvF02NAkqfhW8SmGW8/kafI4GwVcQNM8AjChWlKCMCaP6IlMg
jtpvGTFbuKUixQFqq3m9O6+BjeoCNxQ3F7wPl3cu8kOhlL4T5uB4uCDRbNocq9kAqigoPWIYMIHZ
dADft2llupTvgNfC6yxthbdemVz2xYCnWsaWQJ0srwYVtbwKiJ+gVV+gR4bbWsEATe6qoXKbKu2q
8f07ZgIHwOuBKXrqq7+yFRNFH68gUcNxvY2LSnp5uXzKFUjFWv7xCqCTccVgJdvKX3Sh+fvOV7yy
0WwTAUqypFdEBsVcfk+9e4WXPqbZzoWm7icz40sBIvO64p5PQ8TaWnkacwF9PCxuP0yO9H13uA3f
LWaRfbOTYpBpKb8eKiNT8zGvjkYjKoVfETfbpBW9IFp+d1FZ7ltkfqDLmkvA6qjOZE1l/HgxwSlE
i108D8Kvzwjd2tyjXkcpJ7MiB/oIGadhn7MoPOO+j3HEhzJLuHoBY3ONWjZCbQt/N6xlbrSKZycu
TPzr8+E/2ZogM7OL4hUC68Ot0IpKeUWTBMLX27AnUHtYaraCSR2Pj/07JqPYRljLErvfBp1DITOs
FQz5o2TXwoefsRWgM9SMzXnpbuJWN8ioXj6NqFeZ0IKxTNDscLh6ZDtr0WIYd3DLk31eo19ne+Hz
5Nnn8NUxcc2BZKKbRSQqlWaO0/H+2LKEmp1fEN+MhAcUQGwNfIyj9Ojhfrgwqz1MIjtRpG40F+4s
n2jcW9fKMnHZ81//+kG9tL+X3r/FTazTw+5CGn9+PiARjvvIKxLExwOPh71EC+WYNhIgDWZo8El4
K2sFsi6TKNwIk18xtDXYO1rgzLiNeDyf8/i6Beu6I6bUUcgr51oXvNaf567CkA/w3pRQ3B50QAI/
ttJpXKrwSIfzfrw/Jo/D+k6uGQVGghg4hLku7Z5oHC8BLjJvzgxAzpYuV2cs2AjtIYfeVuo23Udt
IMT+ZhKDfz7/z/u4HeqsTCP9kKNEoPjfR5Sms5EpjtnEagBmDprd7uvtch1vGf+74f439cQFYa6l
9AXntwqOoGSOyQXxhtPjf5x+XHFzII/McHnhQxHAbefNErzNPN2pgNpvhBRd8Kw2+ZKqAs0jszcM
gDP6DoflXQkPag5m/R98nIR15EE4mWEuBnPy4hATjCyxXs++8/mnmQY138wBFcCYOo14xHsYXp43
FI2vowblpk8hYgKe6Nq4Ta+NOBNF1rs8rOECPolwuViKw7ZrNlKfconyYR3uKtoKU9GU6cZzCQfk
eIZR9hT4hqs5eLx/nEzU3nxd2wpN+jtH6USoVRZFnf4nVLrpcukLqtXuejmeRdOQ7PuK1ctx4J75
gEv0LatcUqUPiExfjnejH/DXvuDIKLx6hsv75/N4G03G6TGe73SzaP11GTelVCIdtJqa9diYdzuD
VBlpA8/Pf2fccgfDMie94f59Bap5Xq4P+Xk+/vM52pre4+uRKuvAqhXrh5nodAINjWiwW+RpWCtl
TFvZ8WWyIPDxVewarLCYaydiZoRUWA0Or02gtt7JEtp/xXfB6oB4Pna9CHQeVRcvQseLgHtgRWAc
CtCyEvpSswq8JTa4DH+edMZcLeO4y6qRNMWW9ROVvqOu3sCdLWtfKMslbjYPI368fxtuRzOOaRGa
0gtpWR2/odQZgdG5O6WB68eTsdXQOjq/jqUiZGFO9KH2H/KYtrABRKnxlDpSpZ0JkdLN2BZJh6Fo
8r7Pqx1scRv2XkCb/4IeKEPgN7LHwVear66D8c0INwcR8Gjvth1+BmSNSChAwsO+q6ZyWRhS98Nk
dNh90L/uhs/j3bmhgJyfDaCMg61Lx8vGKh8mz+juug44Oel1mNKg1lcy0yhCGsc827r74XR3lfaX
R/7MnIXE4fh6V2JHytyoLksPajHFJpVaA2WR4vY7hb7TsR/jDui+vx2vD/vzNJXS5Kn5nir5kDp/
SLZq0KU57s+X+/MqST06XlZFZ2aYav5dDX6R1cyZiWu1U0CJdYNf73xXiTK8PKcAk3QUoOObS5Rh
mJmO2wf4svVVcebgwnNDbNkG+5/HN9rv0E0V4e+18n7Br3ea7bej/Cn//Y1EfAGfppFzxor7byvf
Xoy/Yl/C/nYxuVT3cIdvl+Nhd7g8jUTw/7fd9/fR2qzUCUTdSffdeXqUj3eTyjb7M4VwvxJRNguG
sskTNvvn/XH5cD81mf03E27a34b7O6DloUeNQ9XVITL6suyZ3Pejr5daAiS53+CAqdZuJN9/P4mQ
WcHRh+M3Q3VSE4fpZIzf48Ju++FpsKrwz3TKg8Ua10rPMeTJmzyeaXjQaXgZT4CAh4o1ckq7wsrT
ZTi4DjC3nvuP8+SmTn99TxKzvaVWWXQ0vHbi3nIJmH6xIaYv7hQF70fzcqU4J1sU5e6fcihyAS+P
80Vem/OSYu/rznMbruZWjaK4A/HMIZdsd6n9ke/jy9cj72W63I5vk5smX5+jx0FJp1Oz+lkfrANn
KNqBHst/z0hEk9w8wNh+wSOzJo71X+7tXk/PaWVOL9LLm/T4fWf/elrwaK2Ww2W8m6p0swF6ASZC
Y6dAitq9YXF3cj3+y/+gYaDpsT8m39GyvHw0lhazFIwIqjgtx9vH3HqY8UIVJERj/LiaQOBcafX5
2B2GxwCoeCvK+EGNSwPYClfO2JCrqzi/0XruPHqb8HzZ+b8yYsGkTo776eYnM9LcG0pH+5yYnfTr
YmSuVMjInpOxsqihc/4NRM+/xNr8e+3osQXe34erH1QGuN0S9GkzczVtfAQ+Ojt+ul2b9q3jcEJE
/clSYXec6HVP0wKO5BbIk5KLOKVquMPTeYr36SWcDqS89iaeD9fWsjy0fYThhg0V28hyORkrGtHy
iRsTFHIJjud5kgivx8/5To3wQUR8ls7I1jmlZWQr4KyyY+fC8fwmD3ROz50nsfS4PU+kKR7D5268
3SzQtEy27xOVM+SgPE8nC2xlHaXpPx3Q1aQmH8P+fTRGxv5pLAlRHVVu8hs14BKi2ayOjJofrYyd
uGMSfcPDQmtPwtYZ+O/D4fLdjBi2/0lgYe6BPmiuqWmr2Ln/GbkXRQE8sZoNFFvMF1oN+8TI4lnW
v9gpOs7BerdRdgohzgZUYbHpL6f7zjCobMjVrNnTyLK5iO92+Z79lDWF8NZj+tXD+DpM/2vwdR03
zvT+h/Nft4kGkv+eB17exunWTAuaOw7miXKn1GYWwL2wJG9QpEdf28TsZE3MZotMh03qC7rdqFlg
njFtr+z1+Pa8Aa1VMy261CbMnbGJTVOND/NLgX2m2IOYY1CzTT+95e9v9AQsY002wffbkaaJfVwO
xuBwjHk4Tsb7xQI5Fun6F8vm9nWXbQz4FVKoAIXWU+BKkyjYQaMTAS0T0GwJnAODJRjH6kZzNota
JqX4bljgyPYvLTQ27cs1bpVx+3W4rxLsq40JNJ6ArX6DC3BV+PS9tbHL9ffgal1qs2yjWCh9/zyb
ftqi6OXvW/49G1Ah3UsLjqJkpBigingvSqbVsWXxJCN/B7v3ybT/l8HIoDs6gVvuo5VlNgnuS7GF
2cavPvWUwEsom/gxtqsbLwHHOeujtJjCHpnUCsrJbnu7GcfWjIyZbIlvpxs4lzo65dlmM0th5wH4
r9bsaFn4NyKBNlSzI7UAdR28HXC2ir1GntSMNwQuuC4BrywSARComEjh7ZbBiwas74Cfyzaq9A++
B8dZ6PgMmsQGOrABtgDeNRWIFLCBlp0gR7ri35cF+L4HB7BsACxAd4AnFwJAKFb8XdgRdZ7ApPiP
1lmFrOgKqew11HyChCANAa2OnwhD5RNeSInOpokPt1qfDbqdqgGWgN8NEmCMv4KK74ACkhiKUeB9
dIEIBXsoFVjBNklTF5vkHjqHqktziCDIb0jB8Vtl+JPRpYBHr/ijVdGRcJYHuqBhzyboKgneHSBQ
sXvhU7btm+GrABzeMyK2ELJdiy9gXrZVXnwhzmj5w+fopsJjRcYlO1Be+hEzGTDKaq5NGPLG6l6B
OGxWNmLqXsGRViUzWRoCfVkfKTiHlj+2XrQsIY1Ox1qtZjQ26OWOvRCL3pV0ogCFkr+PPs8ZQILp
Cih5fq3AUGk00PMJuwvsTDWxwlRJRgUCqEaHM18PeHYF+54j8KxlB2CSnt1xMGwpvGPw3hRjVduP
UKeUG7haxa6FD44KNTTSKy14rvwgwDYapOXnFwt4q2WbsGPJVM5/k/2UpmCHygfpBbwBeKvkl9Jy
wPNIfoAddQ04Vc8aQAqWgk8bnCm4k7ZhUpSNqpfeK5DoWgMdlyAFdLYu4gBEleY2cDJNJch3fjLg
ftsWRYQ2Guy9Bs7wzGTgeoo+juSo9EEAOdpw55M1mdGX+8vHi0mYPq8WK4nwvyaJcM5ovr6LTICm
T2g+pDpXz69P+vhAqNUtIDHfMOCyto7lSZlcAjjbugeRrvkUAJMWfAusz211v4BRm3aTfgEvVzHr
kk+1jzUtOIiKh2LrKGTJNoLus+k32h+ArZpCCJ1KHjJiUR6G7SMHaDFRweuttHAowSNBPrqKRapK
6xhEg3E5RxeOLxfwR83UFAdJWItCFBWvQBhtPguwiLKM5XkpizGLI3cbh69U9vE8mblwUJ61seuN
44XgPWolOFjxpSG/gHtYrD1fWg6Ka7D75/CU8f0DKVWnduRaFsbDcbAZuduwt0Vj9HdLIpOKEwxw
+vh9SeruzKS+G8oO+sJEqq90VanfpqVe5pT/cL2Ow83k6EFKrPYpMR50W1DuZty7ifsscbmGoPBx
JkuwtzUnFnvrclumsp0P4+d4OLzYhNrp8uLQ315G0y5oePXjKOe1nbVvy6wKKknSBU2VshnHYc7g
nY626tg11FA5hPnnuH/IZc0FK5BeKpyobOa8vxzm9PTz8borm93lMC36x2MUOaPinEF2mi9dfxvP
rhrF5UdtCvP58THcfsxnMbwySCT5Z1j02LCDg0phd7f6sR0VVU4v31QTgUu15Nku4kKi1+PtbuAa
TceQLRXcT5zzcb5niRYhUfvqrNow4AhEK6BuStUWHrG7yP2Gl4lU7+EQU2gSmqPgOnpkGjyJyuey
uamaFh6WSsZs/wBYDUsiUWG0KyWfBDT979+oLXKZxEoH8P1yO+xMXntiPVkcVGUaf348TY/gfryb
O749TpCRiJDmFQ8MLf15PRiJeh+me50k0/GVLmN6SsNpbxv3gKxiUJjcDP1u5Kop3zFXPl3wAZBg
mKEchTk8MXA+bAk8QPD9/fiwPVn0mQHz+X4brmaIha1VHxya9+7ySjoTVNs0XvAtSCSkAag66XA0
csewCekV8ytguXycAHPNqBt4Wsbzc7e8E0CF4aPqpQuKzAFfqPnP54UK4p63r8f7+27413S50088
3p8TYw9nN+dvHGHxGF2R/zXbrb30GN3O9D4G+93X4Tzsvl2Opo7jThVqpkHkDhqACt6LF/tnpgLP
mDCTonsRXrGlUvIGpN7n/Cdtcz2NnxY27+N4vxtqlq9mmCyZ6pzktv1xnZ9YG1A9jQPVTFuWMld/
FV9zzZxHi9ysfL7IPGG5xsXtU8eNVt1SxUcFPf+4HAmTwNfx2dIrRLNL38D07h6my2SxEswunQ4w
9iYFnTK3W/Lb5anf6ZWQgepqcEt0Xr7DzbhqKjotGu83iXxncaHFsPEX3FV8no97EzwLzMvD0xRp
2nrS6ZoR2SaeVKbWXGLkA02jQE+B9RMW1FlRlI28wkkTn4ZJTx12XtChZbJGQV4WEyxzEh3H08LN
aK2cEZk/Y+Wh6dQ9795Nmd/O9J2dECUOfl8wLC6+rvNzcpFuzmCabGlRWjuaRcR2PPplOW5iPqq0
JFRMIP4dD7I5cg2Tfwyxm15GrA6MgofSr0m/Z8Pd5m2hzs/Sswu55+tTW97HfTQ944Q3gRaj0oLA
aPHJUTKMZkTMYm/Qju0rNvtElPv0y7uNFoLESuQXozCgNGHXykFzY2mi0E36EzdRL7fF6cZ2w3Py
02ZpvulJFexJ8bxkcAl0Sq4g1CJ+2F47RHelzeY+uefL7jqx2MmVx7KfiS5JtlN5UHZhOTvd5PWx
e58uYjzPoEay5CMThBWxBlUl03W8jQ/2DDLWhfaEzCkWKVNmsgCnp0/GClgRc5yNyaJcxIjb2bvz
yx1YZ3WVnh4T2Dq7iTnmivlNJ8V79JY6fmfdzDXZV6tfTVWuawyYDMADsEm9d28s4LmXcvy4/ONo
GW1BAv1+PIPTZ22QHCfi8nxcn49F3UzGMpOVuSutWOuqWnokj5ObfSO8I1vVfz0alDpZLFWuf3rx
Dhis+6yqvvin+gVbX3S93pcKhog/hhdnKd13wx2pP1pTF1PpvOs/ccrN9PDspwfw4WAYXHU9uR8f
x/MGn79OpC0YRgV9dBom93n/fjwdlokDJnchr7tgnlKzRBKsG/5TdJjzoZbWDxsyWIJLhI5FbZHh
UxbJtnz2U+gZ7Z/33f5kRrxM35hRRbccAxbsou1UHDcFyjSu701IbploQRJ6WTadA6Bbx/LBjU4/
n35kv2WsHMQ1yYCgsMB0+sdHZm8tn09FWcuf2JlR3h8TtcmgPIGVMinYVW6wetQ7uYQzTQbaGMym
v2M3ncP0P5n8ajO1zwyour+PoPtGMag/Cpu4CQvXkUJX99t++pndk4giKr47jNp/1NIo5WzGu2nz
XFY8nffgpppQ0wGgHABD2idj+2yWvgQLQ0q7zjX/0dmWTeBLu/i4pfIxyQcDo7MbTo98PKdsQyHb
z+2aVweXdL1dXo+nrLAumdrUi1iwK3qn1uxZLAyoqaWs416c6r/moYsUlLydHGar5cvTw0oGFKSz
hLkKKD0o/dV4oM6pv54mHnTxw8cNBigtTf+GqBdly0oBNfZe2t71kCUadD+O1DjmzZrpmZhQiYEZ
Pux8Yx8w36p02peNMPeB4WXcJaDHE2Q9e+m8ldZKdnMqtjFUPggVWTpzz5vpZZ17lG0+gNqsqFuK
su6yndOyLAZH0bc0x4V/HO4uIKSC7IWL9J6Hb8c3Kw0mgXOdLv39eEBUWp+gaJZH9zoZpgfQQmw/
9S3kFmxtRtl5vo3xedwBGZaF4W7HP4Zvg0XSoKtyMIwwo1O1DVuStUyXgln6YA6//o2AA+TGLlWx
JrHO43daj+xlEo5W/dhSXMOYx/NzEJt0Kw9B7VuueTHvEkjPtFor1rzWLBhX3mY0l+7WNJ5ODszh
cPxGCTaTUpJJa0aaA6NZcuYqDWicbzLf0T0vf29+DhD3+DgmKuLS1pj0dbTwDfKDqjyuqesLXKy3
8KLDEVaAlma0uDhKLJRMpBlqgjidlk4d+o/36X9WFsUu242oWLepzyyxC30ZH99NM+3cR2h/xd/x
sjUNTp9ti499T/yMadgcpj9+fFwmI5WxEqBepxnn/p38Id7dOQ+bo0Dk3bnThOclCPXKQ4Qv4Epl
z56ic+vmBPVwdym9ndE8V0DTM6SqlzThv3Hu4FyYDOHY6j/xWhHck/anoojxy+rf5h30Mypuuy3Z
8U+HbTYRcQw49oIt2vZ5E9aScRM8kZwQ9AxnZ+oEkGhue8M1E6upPGz8IpN18bMiDx4d22xlzXhK
BDpQ17vzem9vQaXr/H+WjRxW7e4mhbQxwIA1mN+P5tLHg9HHw11Qwr03JixJc+PKxSKXkZdkkF2H
23jeg6wxq/py+Kv2gu0mlxTMhi2yhgDL3LXz2MwwlfsyP+TVsDnDoSP8BzlkSDg6jY7xiRwXWlWx
qOLzxY5uAZRaj8jTLBp9ITBZXofp9Znijh1B11728wg2maQH+QmE6RzmpwocD3tkkr/0HxbX7TYO
gDQDIPJvzxJe02GQUICknxxLWOBzyQgNHrFRXTuD5GMc7s/b6LJHj5OIs9NXfAxO5SMdjtDz/DKc
TJ3QpD+GbyOgw5CvefCUAs6kfy6vrw6pAlBh8NIUG3JC9uX5VpWqLTv5U81grvlg+elT3am6Q59y
rNveY3iYSS47Gz46vu7Ok41OALXE/9gvpr0wcGSTK+j4ud4JH3r6c//VBYEBITbuyU5n7jkp4ndL
aTJ/7sf75ITuETmP4keVCVXPWgkouGNKf8BpMaCnZeyvu6Oqnnx38NNFGos+OBS2CfNODsfb4wcg
ybCrrfgKDmd+CLQ52QsnSiEuoQ7uy9ce3U189g2Q8fjLpvazdrHdOWpmcS5oju3L8Q1kDg0tjt0f
YnCY8JghgoAWCw69zAp2XNHbvKLd4zuVtJiA6x2HU8yaGJw8sXUwlI4B3swkd64YykZXQKyMo5Tx
PhtHzkVn7hcjMF/u1wuMC9ZB3K3sAkoUMJ3p2VUiWp0wyijcposUuv8Ka9EA9YZR56O7nOpxwd3b
5WOpSgt+CFDu2RwY3oQxK7Vg3fmF9mwMCbkFZfIYJhPosoFaq+NBSC2nZh9IsDQK6GY33fCpQKwN
GPGk/R20WI5VRWFm3gZLlupymufDPFTa/OscrzAuEmIxtup2MWyii8okftwtsUfEozsz0Bkt7995
BR0bYsPL7AJqw8fl/GaNjsBLocwafmRNPI5pnhzqPFn75Kl4YDyZf9uw5DI9ySxYMvHrXIoxElbb
+Lmc+cb7axi8XLW4NXme23anLTubrnZBVvI/OAj/y7i/fIz3AJj/fdJc7uBy+G6Fl0NkW3epLWyW
ai1DRbNZYQdCbce6sIczg05evD5CBe6WWRhiYGErp2OJuVVIdqtpd7OLPL9nN5ZmPt4sSV3w0Wi1
F23B+uZQwax30ZNmZ8kb+qQnvXnrTEdy8wDIh+0MULfxzKuGL9oFjWbRfqYU72Xm1Z85nCo9ec0J
ieXWbHbTvwd0LlWad1dvwS7SCKfL6y4TTXbPogyQR8s2lHGLpDB+/2OG8oz8W7RyLczsRJaKe4Xm
X5cXGKi03KYapnLIUA039fO7UML4O24aRLX+22yDKp4YGL51L4wXvrmNb8/T5PfLcWz35ut4XmXD
s+qeHHHlFjbUBXtBtnGozmjyzY+mY6R53WCewxFvSxPzklrQ8uDDBGA3aBOOEMuyQ//u/msOAMwK
PJPvZIMJ36Tnwa7tjA08yk+R9XHK7sBmC67n6NGsEYQ8Kn/nllO3Wg0FR5h1qf9QjDhKZt6Pbdux
Y99sKtjVvc4f5EQNA1ulfGOV4zDEVNxFZLGIf/ckvOw1brErZkzrzZ8XL3yOMmuFd1zBHI60jA9G
7SEWaYLr7DbJsPzRNMHRhBz905ZF38XjTXVosQVO40+fdBnPDu1iV8/t2rY8zvQ3s3DtX6FqlwRk
UvJESjmrh1t+eWUpE56f5PPFjMDKE64D79QFUxZLLhBD/zeGRO9/h4ZDbfCiXi+nSSvR0IG8FmEe
Dk/jRHb5Vn+YV3YxuPu10N+gQIq0ZEZCf7uFzGMLpethn+vMTbEP9b3Sm1Z2Up7o6xrWbZp0mH1J
Nt14iHNZr6mvB+kn1qNq4fFdkQ4RMQk18K0vQSK3U7X829wPc+xOqvOsFnBi+LUNz7KJgRzBInoE
5hIPnhdg5YoNsbKcTLNEojcIcVpUlx636mPGaMhOwYa9BoN0wy35rpAcv3SMIK+FmM1YM5rElPbc
UFqor8NZEOUi8W1v5sZonoVrVL6Lu609cLfLc8Ue7+SZ3gY0vKllw9zKpZdDz5ywi6PttmrFjLKe
nt6HTLLmJJc6m3mVoX4fPweqigcr1C0bT8YccteBgEYo2GNj35c9g3hMLug+KcWNRzf3UJcx4rPX
uI/LlQ/itWvdDW5afXBRcul9y+YvlvHsQ9uMRD8hfzzD7pQRlMfi2l7Ou3lUDrhXP59N0eiNuSjD
dfdTcYb8ecvZgrWc56VDy0b12elwrLOCfPSsPdeyCYrl/Bjr1PMx95QPRLVsHqSdFtf7yDKPvdry
otzKWja9T/khGr7+Jve95w6TXp+xR56Ph2nG22bKtGyi4fJ2uwAVICOfOJexioSffw9ZmVCpeGSh
Dppj0pTB+THmcnNsVxvP+/yWybxUIPNINWGshs7BmS1y34RdVZF+86+mxyCWo5uEvSBKQxHvpmGB
LbIpiRyddamG2sj0fjWkhVxRsB0PeDybqUV3IBFrdjocjzTmgQ2GsV0OE+e8pNPdlaEkumCW/2s2
hpL5uv+O4W8J6lhsg/vPvxl+a9q3LgdRFCdPD8dvYFlcErOw/nCPnajZo13MdSqTyvGFZufY+TYf
Wua3tzD8GyiPHOGmDwnXievZlN2y1Jg+I5SEvuAqiUk9W2nnGDuno7ieXxKq7tvDmHsUVS/MULXp
q/nsskZTxe4gjOHyFGYQVsgIs4axH3cV574IFssGEWZ7RnWalGRibjLmuljW6jV3gN0xvcl7gFZv
AqyAz55laP9by1StEPOKkU1Y43ZefiG1l8uKer/Kdm3W5Nbhz4NMxahDIPu5Pwtz2b7Ewrws56Bn
3lEVHkTPGjycSTWjLdmn4frV9xfb4HwHPh2rI+JjMxaxtz0AS34mqwMzPc1OaQxvLDWeDEuBFfKB
swyP+fU0fr5cPoELzj9k+YUg+20bWsCDsuEW7j4za3BreMWup4md+nlWO9Uam5bqO64SbVghGgeC
p6ACBZ9p5NdljnyhCAM7HAuY6bEnwnBUri6y4RMnSVrooA9vltameTN7zqx61I+3E9iHsB5yFHtW
fWcFkf4v+HbQmRVxJV/nysWPB6c9zJLYeFb8WNo+fCydqwt8s42/Tq9lnxwr+S2WM7PdfkuAw7SI
RCEQsC62z2pBJZnErmkzmA7MvZzM5NCCF6guszaXAOXp9lMBSsqju3njIYJXPkBpv2WNg1yp5UKM
9uOCfTzDy5It4yag2nofwlj4F7gqdrB+WHVm9fZK2GGaDGLZB9Untk0wFKzuum3rAHggTXhNju7z
5UeO8fo2eKzOvX6e6SzpeVlGeVwulm/ooknhEmIb4h0WaeS5XOJBQqUjrLwcB/oYrC2zdkfGclAr
qQK2y4Qvt0bNG5v0kHlheSJdxeqkjbqdR9CmRRw3tsHKVKTo3E4jGQC4q2RdA0sCmd/k/EDNPVL0
YDjnfQB3C57BjEHXdbz6+aedKnuKYU2/i705RZPVMUzzWViEOtZ8dhGmJX3a+utteJNByYgiM3qo
ai9M2VoTY75bulKx5oSus0tr+ZVJtiGbSqfVpE08QhV4Xgn0YBPztiruG6ijtnXvIaIdTjzB3xIb
RjOx2d2EPM4MBtWxGZHe0DBsb4QxiFoAohzPzfB3821T8G5DepfupghUtkuBePSIccE/nQtmQRUl
XU4ZCtG5N+B70KkQRTQsR2Wa/EoVNE2rf1v6VX50s2t3nRHe5t60aaMcx3fOaNsAnEcycMUm2cLS
qg3r81yKxFF1B0vEWbe8gwDI59GrLmhKmJGzqFza2G/3478WQCf3k3MVnZzB5IMZec0fm/dqpbGz
O+U11gxpvCr5VI0VWt344aCmCN8DLM63FZqi7qXJcbJaDy/7AW2LT7FYbDgyOijod3pOF34zLbxG
lhyOd7M7AHzBkdz7hV58zBObX+Fht/GcMrujj/ExTAf8xq7RgwiPD9t4DcgK0z/slR3Pr6chE7Ww
ZPrwzFqmixfwmgwNPuuvWxScXUj0DjKU2NgvmmruUgE3g9jnjwnshkGV8EKD+VCIHXNodYyLfAvm
tm/5/IA1x2w7AzajRnkZ606Txte/Hq3W33Kg/jEZJmkcpJdHkf/4p4GCOUuDxQt/v86fmNuNHMjd
17nT1/67wc81iIDD/WP38nx9FR66RZPrPBCIOThlegpdWtKB1/gq5/fj62MO6E2Lf1xkLAJX7eUa
2Ml21UFSDgMtVr6syGGLaJ9gPgyTTXl0iPD305HSaQsuvsu0Hfdfs35wzfvsJm5vGcgTw3iyU983
gTwVDBuxtQgMbNMvw31cCv4cjqv0lCpfJO9U6PIMjBXmpm7PimE3+V6355mQbG64ZqnizTW+FZkE
qF8hhN+ufFuZMxaYaTcRmMSmvRv6151DsjCC0Cpy3Nhd+sbuYilac6Q2QMpZIoUnwpvzZs+L9gjM
fiu2fNd6UBg9EzlfzCkZKIUlfgOIdZ4Yj0m6jc34KJmW/LpnLfksTG+8eYJhc1Hy93H/VdCq9nwU
Ww23Fu7TK9obE+w6JzBH9Mj7AGDCWTA341TZ/z25V7YRe+JQ01IGIhY1q54ip3J+kJPs/jjOoxTM
v24hWXh4BBf+qV0A1ZqgLw5O1SKdmcyAtVCIoj1Bc8mPy9zVQZ+gh8Xq9fj05cmOsJjDsypHNFSi
ldbJvPFx/BgNhN3JGt+m+mfSQqeDFdPwf2FRFJ0YYjAQ1pm+UacUAn5ksJ4mpKkK5U1gAkEgPL33
y8nIYkYfYO0UzNkwbuKc3TUmhr3euYpyThxPfwdYkUH3+E4+Y8tNT3Nn7yDj/7gqai9u5x7303g+
TA7QddIpMwjidNj2P538tQf5dfxxuHwH9XB1EYZN2vAY7UyZ1JneZRwuCyjCvIlFV3rVY3FA7PXf
CD1ty6O0LMlqXDsWC3DUFjr0PAymASrTVrqPe4RKz+AiX///kZ3pFhhgQE0leu6wzPtJLiL1f/Ca
157BtBQEWEl4gXykR+WLNNPkbXDq8eOKXibDTq0XCyFN7/9KBJQM+9WWgzrAwI/pib0nDy35f/m/
lUQMgneB1GB6dAn3zJYMEEAFM2BYB+Ly/gLPeQM9Fu9YwFMJmHP8mjyf1P/h/5azWbB4mQ9s0w7z
J86Yn6zFO9mhlEvIm8p9YCrP3Q8fpmRyxkM1/z63th0uH86PtjEuwFiKo4AvQKuueYBu1QSCcul/
R4bFQcn/7DgE2nm3VFsQXQv+eBhBRrhuQhfBpbqH2z+f4zgH1x6Tq06JHBNJyMUZiyDOqHjc/Z/Z
/bVBmm2BG5iY3gyEQJHYpkzkR+xe7l/n6JX5dxoFZBBTJM/EGlbcb/QAkiYJZP/3JhvEBz0B7FDu
MxWsz8FWSjoMK1s1afCwnjOAoIg5ZdFuWEKIlyd7gK7Jm3vezD8tCFjm7HUTXpyrubHrMpbi1kiz
9m/U7LnqUyD/zgKyU3BsEef8fwcbL3zspHWhF3oJvPphUlLncT/e71SzDB2XwgennAnNUFT8ejjk
WXZxHMSUjYRwceA1KUJJukJe7DVDimXFWktanEXuL6+vk/UDaLGcL+8Meb0NezcEwF35AiZN3XsQ
gbYvE7EbW8ZhcZ/dBDtioyBrAa6lYzRZG5MFlVruJk5RAYIe4DbsqKHAxwziO/leH4Z3TFiEAiJu
TsDBzAI5gTguH8jrC/sOt0linswID+gc2bF7bRjhdHFJ8lQnD+H7cDvQULz743kDbUdsILeJcnfL
sc3lihaDb2EeB4pywGtrwilwLSNqn7JzDQww1g2GT2veUjUPGaBwIT/2++V5249m3oa1C2xLn1iC
aHfOAqPtAg9K9E6E2zXerJqdEemu5iS/TJruJqN3OnwZa/b0S8/Tdbjfp9PLftyHMJczBJj95fGf
z8FYP+B7hnDZLbMA5x83SJfDYw88vs4HsahOrwm+n8y9/ApYnNN3OM07cANgwOdVeHqavbnobU2S
UJrOYBmnS2UR6MlODPi4fPzsiy2CMZe6XPH0cN6/X24bWJo36yknWiJa929vm8mxxkGajLlc29mh
GE//9vs9Stw0dXoCvD2hx80kqcDRsAnYxol1OuJxee7frbto/m2yBm9mHo59nIds8MG7D2QWWLnk
xJkdJWn/nVWLvZ5w+JiFWJaOwmWlO6vRJsn7pLJUWiYgxtwlN9rFun8mXEaizUAU23LhGWV4lks4
P9Iw9uh8k6DJNth4wm76iZuz2eURJZZWpCTKiDNyS6mCvBOb70L/87lJbA7XDm/WuHgK42Jt64KF
UCY7V5HpqHhl8xJyZ2lvqf/A0nM+v4pnnDhLwg+ikYPJbmG1J8RBO+1EHDtGElmzdjXaE/FjagPf
+f5harlcVQZ0pG0Bucv+qXYBYuITa+axtC+33TzCZjDWmeQMlKy7RcXT3jnoVgqP1lXfgP2XbP82
NlrO8zjcaM9p12a92doneydqIWfW7ABNsyN93V2wC1VLfd1SQDmpsjeWhXJTUODmGn9svCgfPARX
o41Bcd1eC8Z/rNL+ZMDo7HOf9AFVo6EKEMsz/tyYHkbrNMa2S/l7Lw6dRefPQrckT6d/tH5qma+e
NxNYroOpLUH02O7tH/26QHPux7EISna61x5RLbyw8ZkdNxTHDhkx+Yw7rpgrWZvJwkx6/QZpjS5O
ebyTwB8eFGnP3lfbsGeztGwG1G32yO4dUfIPsPSj/TapDHcRdVrcsMJjV4QzZ+nmOmuHO0ghNPQD
rf8B3rlusManNZ6N3P9mxtHrX33K+2zYzdruxXZ9ZjKsvDsstpRyya7S7CGCBM+Kpyo4bJdmce9n
qcV75JmrDbRGVacPpIIHotiDDCAzh4MdTuVCkKZWIXMuPXvcNsrRZQXIP59HcQyuvXemqI28UPWC
wLJ7Tnb5xECXww+0qj487dZPjCZAdzzM2HaGstexxO1nibVovGWmuI08oz0xY8aExJRexgaSUrG6
/tvxPjlOmSHedouMIXmN9MxSNkJncfoRP3HhzLDnaJa5mR7h5kpPhioJ51HEpi5ZL7chV5u3Vtfx
0R/P7+PEY/PMRnQD7MnUdjZSUAFrzgvNBrXHnlRvCVXh/mqTqmDvx8bNEkLYNTvI9cIlAzdQ8fjM
UDaZO5hro3d2+jyi2bHX41sflhuwnDZ52i4eTM2xFBZBl8HYLWw9eprZKnPFk0Pqm2FwXTOrBcPN
+RCVjwVRAYuaK7t99ZsxPXJUvCMzQxoQ23w3wOqmpotceZo8RfO+qebLcQKVLSFmYhzJMZw/LtYh
HM281fuO3k5OkPdMvnAoAmZvmODo9IC/OdQDN50MPWZmddrMXLnmpsnCuOyPy6Tu6RAOWWdl7t22
YmLhKbZWW/F1G+U8bsnaK1Vc+LmM7Tm6nPuC/f143JaemwcegOUQGV1QiFrAi6XKZ9zx31jatsnq
AhR5dQQbsZlYnkE/yCyPRSrMH1Xhsj+xf4beIXPxfMH25DN9PT7cpNnT8HHNFIw5m4SxYEFlY364
q+M9OzHZzBZB8pDJBg5gQCLnmxlofn7MkwGhwO8DG0vVKW/fVfdiR7+LdaNLZ06s/7H7uEyC4IeX
9LvbE5o4DXtVC56YSZOY3gZqDzCv0/yXKTlAQ03tw+dPgHXWzfOObgT6ZopNzsh6b/zlmbYO99Jn
a8Kma/JCiDkTnYfxprd8uZleWf8iV3+bHUTZdj5DWRlFWVUNK5ok6ZNdYRkYAWVsToDom2OqJm0n
2X4vW4h4vfMxvBS/QBSV4E+sbBw3rx3RYi6UjTQmfBMXbwDTPEoGBrSKOTitbAZ+GZ/9/j5OnEGD
hl3pQTY64mWOeVgR819e4+hlPubgV0oyNTo+Bxhmwz8GidyWcm0LBDUde/xqQWdeKhkmGZA5x6YK
RKxO3MhPhdAa7ozYsdzuXmg082zbWC1CQ0PPkzK5XJFnXHBLhBUR5ysH7BmVm9jORzMR2/Hj6r1K
d7U4tuo910blrIM+uDqt1ouaC1FmXyRLs2WvdamSWGwCM89svJmif/pv+zYKhU6+ie02NeuW3Xif
rGoTSTZJT9PpkA8WNXWo8xLBIsu6Sz+LSc5d7tBzapmR0C0ZrdAKPJ0WMfXI30zDww4mdD5L8s/7
ydWskVKd/tN1KBlDkLqCcOuc9mlArW37jfViP53X6SaxmbC8/QtpIp5jIebvaYbaZ8cZ7TxdK2Vi
CxZRZvFqCgjM7Ww2LGhrLg03ZSfJ2uodNnDdlIBXPPzvGu1keD5LQodzqGumvU1FFS3sbiqx//Pv
f/zD783f/86KaEBTBXOeZzv/YOSSscHMi7FDzbMbLHh9WtnOXfyH65FXJrEboDA7qqiV5hTQju+3
vTF5zJBrhYjUArR6TKRCRJoEnrprLj+evc1kRm1+DF/Hnft71FrQsv4NPp1iiaR98iGOj5fd6QHa
JjrW8GBh1ee6q8OPzUtqGBGCqursksh42EqkYy0TXACzfTEoXbyrnk1W5BOzzDnHxyPBu9jDZlMQ
Vc8w1wgcwHUvmH/9ATbmZxMG3uaysR8/c2E9a5rh6GgWY8Ys5m6hHRDAmF2Xp8QyYfaI+EnDA+qK
dA/P6qRfHnhfrU7370Ra3WqiAWaa7cL8M/Eei7srUwKRP546bnHqIqZ+nrewNdsXxzZIsfXphg+7
Z0+ED9NIP/2XR+bquvjpN9HT37TB1nMATYRTrkgohwVkJUeXnjK6CMRtS2DnYssyK3TG+H0x8cpj
AoIYwvfFXr6tCc68fEyNnRXHh4pebG6DbRu3pvXii8Wyke2Ol5qmhCxeEXtppGrrHhxTTpD0nFqd
eCQ/fmaTPVMAFhajEcQk3iLTkBaMoMRKGy+qSPPoLN4WrfQJXj/bGAcXXnMTZoIuwU1zE6cbLL0g
XhlT2vRG0N+YoMeNkoc5279go+n1EgewZB36BmEYZed1F21QS1gxQgtW2AxSkEHyCIu1XFEOUfoY
qEfcDhi2nQNgRaw+0w2Xm51EAoNgSB7031Hhl0nJZHAxCw88aYSGA64hYsPhwIui3GQGgiZzVREW
wA6isRcMWrpcevqCxY4fL/CSLZ02AM92TgrRoSXNJQEmhmqSz7aV9DACHM+SIfjyoDwRXXpKyHB6
t1OjXk220fiklysgy8ChbWW4w8TzR7ksO4sZXno8VlbdFRzf5FWZqekPc1+5y2YYn81yGTY1xvhJ
cHzsgjywpfYjFhZ+Wd4x5xzaKVgVAy9Vy1RCf7ULMvqcDsxFgSzVPtirCwJ5qg5m+uc4pmQ455QZ
dNJsTrTTV0tWnyYwe4yUF+Odmq6P8yUrP5gkqpY8mauL80oBEGB1zYRO7VoefH+eseLuBhB9rpVC
OSddNjGYkEou6QcgUUMSZDe7fxfLMiwhlkyzXWauI8aWmP4EIaY4rP3lOp8spbkr63lmI+cd0Njz
xfZ3UH7Lgfe5hgVYdNH75i1XJFv6QeCsycXtxeVfXJ7Z5hrmhwXosww4b8NjJsTCB6CIxtLiyD2z
8UX2+/n44SMUy38tSnxu8cJV141PtZpMszPvTwPFxCknJicBKj+3eCnbrl1XnUuZ2LUdDh6zYk6m
7KaHvjd95efHHQSfGtbey+oqljTPfBkkRaZ3tDfNorYiD/RcusJfIrtMmKYELJNDdu3zD5kL41hr
k2zJoSP1TbrIXqTJfx2Q9RzhYri1d3w5iaxksTqXtTlw3HsiZ06VJNVP03XIOg6GiGIrNvLw7XJ7
272dflzfcxV3dnm+b8owg4s60OKWK9i4IIYQtZRIkUl9+aAPqNSOoq1mp8/zcW82e55evitP+hQz
pH0bhFutqW6itb914X7eUWT7UNDoKx2NW53L5k4G/X3D5zqYNuhstSXzYGsDKaF/kNK+lo4KxhUr
97bNvn4zMYULQrso8MQktlTVHJ4TmDnjKkL6r3wT7e48rfV23GdK6OjsmYzwAINxqJzlvo3OuHuV
6bTHd1f7QtPPZ+MziyakWSzbY8HKvxNRpl+zpRD0v0a/5APenZ+Sx6PdBt+dsJoQFQ/lVxveqINs
w4YVI9pNON26C5e4ZXUexrA2pmg923fmNv84np+/n1bDL3T6l6c3eUcaXA8ml5RtPIPIyf2/T96g
xWOk/BIVzVC6jubzEuQ1QQqB+SFlF9q7rpPtQpAYs0Noc7HmgAE/VwwkY2GppRDIpJWp1otISvlD
Kttg2BglyyuZu/0TVYsZJDGwEIbWoZaajcPxvh9uB/Jtfa7fvvTp79KUCpYkI2Tr3hXcLdWbszdF
Q+2NGfZt3IL9Z8nrYKFuo7/98x//Yiv9Z7iC/x9tf9bkSnKci6K/CLKch0exuSnxHFLSFbn3vueY
yZZlAVlVyYVCgkhgDW22//sNHyLCIxHhmdXifdDS6manIwYPn/3zDTJdF+6XDv4/HZoTDN+wRdU/
7lDf64o5ccYh6Q+3aCzfj+uMys+EdYg9fLxbPwKC9jwuy/p30tVqdfgzza6fob3gHy6msbUfURaX
OYdP+SELQzojbaVH1NuohW+d3ib8uECs5zCcoSD+JyFoJ6zCyk8h90GjetdJOXgrX4W5dSPCl9u1
H/wdKnH81O8IHzTf/TuOr9y/3vqZNvyZ7nM/s0Vd+Ih+GtAW9Qjjpn+hD8KXBTd2nse3kat1AUFr
o0IIxZDPuYsJuWgFTsN5fpOK6wSSU9YsG7kHwYA0SAEpGRFACmCuRMDRC2V7ACT3FOvVu0Pwcu2A
RV+34dqaXL3s5YhQPOmVFmJaIGE/MyQ3ZI2sQIaKMACQGn+MR6hS/cD6aN1oLITRKP0KC+Jv9NP9
Nr08UFcaB0Ev4iaSci6aqCWwy4RVnafL19WBpunJUT6Zjy/QiRp3A/AaDg5nyZgIP7maRRkPVKyn
TTYaTYqX3+kklMFFZRkfDYn2O+oZhGndvfNw7o+dcB2s8ev407ysnbvOBD0LvLexa3xPCkkR7aS5
ELFFctXbrkUWYuRfhtZNFqFoAbp2bVvMFiNswNJBKU5nGIBNIzcdr49K0LkQIWzZseSHuECcxwPS
BjOaFbKxGYxA939PFys3dji8JNb6WAR6h79LK8mD1AR3Ps3XEYJhsJbDq5FfZh3L4fXx668KoSwc
vtYzdtiDR0ND0SKclcedVTBvPJwMIh1x5siXSXGrzTzfZe0UT2AEjwlwF0+HFIY6xdjziD+zana1
AbL5Nr1N6fuse+G/wN3mdq4JrBCX9QYIKdhwIou9oGZ+3pyvlglukZOlYiv9sb1WOatRVkUl9632
qRFNoQRkKdHL460ysqfolc1l4bAxiyX7PlwZyZ6bAoYHwJS9/KTMBIJbHfC/4mJL6qzEAArkECE2
DHPEDtgQDlwHwSgwFbZq9oQnkznXgn7JMJRv2qXVxf4HbokUQEDa0ED81TILwJ9ZzESJe3QhY/MQ
YYWucO9o3mh6PzbyBKEoGhA24EgS94ME/79xfmUReM55bCeOohzqokFOIOE68O3ZDY5uBLptsad4
vnlu1lPfdPfC6++cOR7+BNeWzvPhZXpTVisiEXKsyuogZqa3dahNwJRFs/MSP3l1uYzEYsKe8xGI
9ZCEMZEzU7ghxnbqmVtQxFvm8fIZc673w0B9OwqeUJCtINwfVG4KYYHtJu0zovcxXI1764eBbeik
rhIQZw5BLEpKIVL7FQnEpuOylGiIkbyz/yRAIRy4rwSKIOhBMtOVZlCfS0Ck38rO+l1RI1dqi1ot
odjEVME4NQtQqtCTIz9yMclkRY9BRza2KrIUsopswf45hr1fNxX7H9GCqx7IGMHrix7tG1+uzjYO
d+hC0gceA/+LdGUDFcpUoRNtW2M4zO37fhUSdYCFxip9Bd7CaHRYZqqQktlyUV8MzD1dHj5RerBI
2zBIciPVWWY+PlSIQMHx+iAg9eF2+g4OvfkVats//kzfc+lZuqOaKTcrnSLbdrwSZUuDptfNcUC5
j6ODKuOHzgOxefDCaEcUvIpRDHwoKIUV+oXPT4GpYdErznYEBTqOOPFM0+1ESsBrk9nFWSZcBMkM
O9GbevF5GFVaTFFeWkZ1aOa1GB14GzlXBQjehnoKMZFINUGAi60pSExBntkvjMYFwGgfcJ6mF1yz
G2IGiYX73Q3Y+aGtvQ3GCnBn0gvPW8ZjTrQ10OfiLcoS9PAclYCYCEzL1qj4PWBln7IY0RgE/a2Z
uAUMz4o6APSTN2fKEFkvLBBIqM2ZbYSlhB+KMig3KumQxt8inpS9JaLqQNCCaNsHTUWg2Vpw5/aB
YfmB+n7EuC5p0fLEYCzNPo+vNG8IbWQupMR/Vg1xoi9GMcjZWs/00eVEs4pQjFhe807gv9F+RuSH
c4yaZ7vOyVrM2+ckMooB9u5IL4mJQgXAvMwvf7Njtcy/h//5/j5+JB1o/gWBx18FwB2y1OcgYdKc
VaiRFWlh6ZhvnYy8C/VgusjBpH5gW12E892KWvYbr1BANDLiLB1+AFWYQayYgbHJEP/LHeL384Vq
C2lugC26giGQGsa7B7YG6VZZhPePyZ4fZJQozTloCeu8K9fP0NZp29IlMYzujiaRndSoQ0SUjcDC
D6ZVncYrWIB3QwR+BMP9nHi+HFAZ479n5oa+aaNmbubpLwINP/27tdB6fc7BzSgwB/7efTh+xV5y
PPiRFQxLCS+YAf4Xa23SblcjfHSygXmA5Cd+RqEuHFG3redXKlZMVpOCdk10i3VkofsE3T3HIlLo
boSyRZ1fPIvRWG38lwpTyYRxJ2r5Qc5Zcw7HF+EsBZiWYNzqwNtS/cM6F6D2tZjzKEDJrUHmUcqN
mcfHsjg/FIPcqAlTTgP9noBWd2oKH+D5ARqOFDj+3U7CRM6Bc1KotgJiveTgoMtpMJA3BRh0anSD
IqgVmSvpjWj3bgMng4E8lNWKyAEiY+RWntGOv1B/7Rcsd03k8EiYCaNFghpBr4JobXZF9JfHxws2
ERBwVDJpwtSFbHdIAwxZM/4wL4VDK4xgI+D7+X+FqCXVuqbLG2nSbe5HbZToAXPU6Zk0yHlB3sgZ
qO8+bf5CIYaKg4nhyj8hbEHlbGdC2aDrNedDoNGUUkS1yLWmSjWJLEsTMeqP6ccByVMtJc//Pd+T
I8eBWCsEIHkzxTrgLWiusaeQdzTqgscJtKH/DHUXREv/QiPH9Iimr/BooVCYjkJZax+vCN5cK+cB
rIhKYp3ickX8XNbEhssl7BUL9Gt+U2EGoR7lTNAYM4RVzIe/aRcnw8my2disk8gyMM4VXyLlcDV6
YhQJwXoVkX3zC3D/Qtm2WJ9sPA/p2RnI394wlryDbLXWqmXsNFeMqmw7X/NUijv3LE48Jmq7LJNX
vfz9YRSyM/aUFTbxi14R5VilIpXacjWBq4oy4vuwuBoPN4Fkc5HCmpIjysNjBHsfInk7r1rSLEMO
D69mWyCLW3aj16Kk/EEom+3WT8XFrXDMjB0dCyauQIRGY0+avxuzt/NeqPXe1b9/zL9OhhiFg3mu
DUkiNwMeek0OddxiAJrMCRlaSAgMA/+vD0blUIuc4QVnwnPsKgXegoQrRxhrAovOWnU+20J+mhHH
dAra/qUnXfouZhcXtmsV1A17GSY7aVTbNdU6ggoL3ErUNVISQ0T0a7NUg+bF+Q17iuxK1dnoTFR4
pkFxxdO0KuNPjxDQJB1nNNFdL05g+l04BLewAIZnBwIKeW9z+om8NwbhaunlilzF+PoKtjpiMo0Q
D+ZpLcP5+j6g1YYpDIWwLCnsfGDpibANzXDYalRgcYiwLIYV4kRf8bsyBriWxZwimfREEQSLSkhm
F+z018SeoTJnK0Jaiyiwr8ZnaqfbfLUASjgxSXmHRE1OK7VAEOQGGY4B7v46/vxuXBXFumjatWZ0
A0aP3q/kBOmi7pC52Kchao+d6LK7ADGtfV1EXBoLmUx1OAx3jjUuzl0Ss5O3V5gFjTzYQUP9S/cr
50NtG75xb5b5+HW8i0nmq6nmjzvOGblpU8NLce8lJmjh7fwfVnTWn8Fw27cF0b1iVftESdw5qoms
Fwnj1/EOkYZhOqcJhCNdbDzhY1qO0rUfbrfhJ9dRp/dVVU/ZNx7TToBWPG3m5TxcvipU8mDErYWm
AypMgEMDbrwZmeEKRVGd3rlkDQ/cxcrRkBKw0Jyek0o0s3CV5X/5EeV8+ox8viP1TxTLYNBTZSvs
uJDaD3NDZIHNu6jD9WWJgieuC6F2zMPpcfNBe4WBs6D32k7E/PFxhlcDVVHmzdhYxvzvl/+4zW+G
xvI/vhHyghFkl4XmxkLI+kXpLRQDwUqvBZfxaFZ6/ylqo3gj8205gGhRwjli+KA01Bmf8GY+P0/H
n74015B+0+rdkGompgYG4IfrxZ2mxTAGmC5bFPv1nL/O9nBD64SxVZeFPWZgVQjt3SDUeQakxhFx
EYdESIHod7FSE/0UyK+Ef6fQFeEynHlQ9rvPl1IsYmvKz8iym8qX3eg/87gswytifyqU23XMU3gh
H2QbQwpoWTiFofCaGKsoqxz0RV6nY3JAIK1QFPjIucAsaf7Cr+M/kDgBLlBsFnr8huv1DIDFKd+J
xEcfTK2zBbtRKvgHCHiFXBdrPHomB6FxGoe5SdEbdVXtZHqSokIoRLQpbUUxD0date5vFaDUskGp
DuOWErg/GJyOeKgKcGcfLWpJpuzu8IZss43CRGKOqEf/QI11nw9/G74NtknrdmaVqxDzQhWsG5eN
v2KmUEOrz3wLuZNFhSt7cie/rC6CKs4RVRYzQVmZRlgqPHRUB6qr42aPJ2qPyy56pQek6yokai0K
w3GjReiH9JMwlzfA9ioBwNY4X0BdYaWsUACL+UJObOY3Kn7gsdKcZjD/R/9qSROs65AgZ2FXaNQB
wgUoC41iGVDkkh1qtDaOCmWCxHBY5eg8HJto6lJYJVdYxdMiPFUHVraYF/YzRJAeTn97LAo0X+W3
SD211kcONimObdduBepY6ZpF0b5mGGlaHObCt5jOo6CBGumyBC3sV3PTzgCQa0MWEnWPA0jTw7hc
//sNauXd9i8pwUJs4jkZMrWNtbMJxXJrfwIzzk8yd798nz6wVupxIYyKx0VH8qcF+TPrXXm4v8Lp
A7uxABULmll5oCnZ7LM5UuyfUwbL0PMVr613olkVBoVCrRDir8Cc+tP8E4fgtbH70p8o/LVug9dx
wejWePtAuMnFc7ZyRbVgEoypNDtECyPEbV2VBPv0bfqOlN+1P0ll6x6nr/CTrjy1C825uWj32kre
YQRyRVBpEj4LxABjbws+tELdTmNGcNs9or70AgbDNmLsrI2TIy2nSOAATxAwVW65C2iWO7SbIqRL
AUwLIqzj2rmADY+QHDkvNnXlDQlllV7WwCtnrR5qTRq9TW97Y9O1kNS5Q/hWrlt5w0UnttzAH3s0
MJXub72SPHglFj4cJtLZMLZDjRH/5NutMVxiA/JbIU/vCEAEmYsFmSJma6Ga0jaLbhHrg6pfF+MA
nYUfgHoGrHwspNwqVxVhp6Bej/SewxlHG+8Pt/nj99vQF1TeK9oFZD4vQsmI4i20par0rQxg5fFI
m8cFmgAhRWtXyzy6Ra0NJmizXcfFU9inf51xWCLPJyKXQAFDK/2k5Apy3xUjx/t1vc634whvnVes
jW4hkmLicePEJo9B2NpfLmv42f5CDwzhGaaLOLAtUkW4jELMTNruvSYSHm7MY1BxserC48GgdBwi
ccwTCl/59gScv1CwpKYNSetja1V1MNzaAvpAx/8v1PAvPVeqkmdIJltisb1/rj/1mbjezZ1zA2OM
8J4uPKsIYp5/mi5aMWvm865YiVTauUwnHseIPRQ8F3VzZT6JiaNk6VlZAXLbk0oo8iKgwUGTCnBk
ukwdlZAVYbdGI8t7+cRdx506AZMWUstjZvNxuuC5cNv81l4yUU3mEYMhqPLTwgGhF3M1SuDtNlzf
N+UN0y3DdEsl1/Y+DqftUxZNUh7v1XANaqOT9c22KqqzJlxILxfCJV83h7G4uag8BNZqHfv8tG2i
SPNxsZNet0mKkyqco8fMQEjDxCBYoHvnYRjbF9AGZMtWvEGPDgc4zBqRKihHZy8oWNtnt5uJfHdO
GHGe4wK3++7tHZZC7K3qk1LoVwTzeCQc0LsiJ2Lk78yddRSGUFrSmwB82Bq2j9MEIFmk0LEyYwOW
o+49Zgo2FPH2qZkOrfb5ZoFeYD42cOYZmwg2B1ERfYGp0ZISXSHI1Fmd9QUVJmPp9IJ1AI/BZaE3
DKgsxBjvbDm9WZo1HcnmAd9/+6ZWAIu25jbL8sOg5HPbLt5YYy4Ch5Deb5BLDzsmuCGMGJcevGsK
wzaoAWEUVt+8D36kGH5kuFCrz81DBi85FX4DcCTKNL/D5XKZ7iryaUND0Io7Y0yV/BIahJoujg7q
D205xf9Ztav63xIu2FbANd3eVgpEKESJb35rMJOoeTMfXKq6izneJBqW9CugOVLZUw9smHg3XuO3
YRF/PZxuw3cYywk1FEqRIlYtZ74u2k8qIWhAro6nNlSK3JuFf5ve9PhIn4lILnWXV3b+kbGVsPCc
EvXuH5O5fgE2ht1PBatO/ynNPUx+LxLU8LKKKg/RWaGsY7mOR6N8zZ93MA0SEWAuI8/FcTUehNnR
gb+8zD+2CZWCUBlOiHGEqHhgm1blaUEAyU4L/sv/+pe/2hazP8GUAkWAESFRwu7n57glwUB7I1au
w2V7Sb6dCsvO8n61Pdf7tk2qEItCRNTWKxoSQli5ZKebKptE3c890thPJNskXSNnIB1Vq6wWQE2V
hRnqom36Akw4ZVbT6hpPDckxbJGR5MbrQnPlsoJmOOQavdzRgyAM+96n0cLuUO97eoZvLWDXqtx1
gXSbi1I3WYhNekCvb2+4GlhMOJZh+05rTxDceN8mNl2wphPMOSN7b9OPpMBgSpmnJFHW55cX7kca
b99S9cq1AD8j/rKI0K4KlJlUPZ1WnE7DzTvoddO8EzYL0MzULk2QIbivahXWME8PCi4Oxhk6TUkU
3lrgmxGT4x/l03xDuD/6x4ORW4wK7QDAtJUKnqdClNzpIExM2vGJg/mOMzta6X3XNOu+wSKckwC9
ysrnohukRYhIV00B8stXTWpGjOzNENgtaAJhh8vLAwfO29zrZVbGASNF0Z/gMA1c4RyXgRFi8d8B
u1KBfsZNilJzOaIMbtGeu+2Pe4W81fxNGzfZ5vHuCbJ5uBGD0mj3yVipWAmrrM7bgEWHM3JE1T9P
eaUl5sqaBHRm5sJflo8Wo4CM9XWbXpGllLW0goxA3E+fFEbHlHUJ4GLCH2R+BwXrAG3wL/BvDuMH
Vp0q9RYBWqoYbGp4/XSdUHEfVHSIUsDHlgUlEkgpQu4Av9+oBZSIwD3VZjE8iCs5ZV6A9/P/pE02
UR/qWrFQ/D2MCfrBU5FIYNGoEwvzpIoxtEFyn8wq/VjVULAQCMASWx9Zt3IgW+07It2abm8vAy2M
chnfXe9VniSa12ui9Bjh4AFjglB5QI6ataX3J5LjOcZ0OFz5Ov4e80xHDEH8ebi6N2Qz5Ont9qIg
AB5i7h8iHBi4RDjyFWily3eQlsgIBVXt9IIseopyfSI3jgX8uSwdxorzO7UMp5v9iZBYiDSyOEfr
LEHf3a5sSk4d9chosIDXxxk6D89qFxERaeJT9Y43c2+H8QTzPc/j8DV9TaKgBCKzRcaDNH1fa8ru
oRMRu5AVkI+LQ4i2DmUSlB0JiVSs702nJpCzry/GdGeRXk2+JlL+l+sZZ8AMa7fCmtIHK8sSCH+y
lKOUkQiq5PN4ebunt1XI3LVoGOIHCj0KO55nHp+96as0jflEZ8NuJPazXYzZesER1ymjh7Yqk6K5
9wKBOu3uYPj5MW5doOcEUFDcd/RYRj9tgK2fk7IW8cCcuchT7R+YSzM/Dxi2AQKVvrDCXyV4Mk2V
OrvPnJm4VtmaCts1398hIf+fAFVKWSkIMYPfZP5i/nlcEsNbiHS0xAuW67FPN+WCLIqTet3hkvt4
jFZ+0OeeDiZrirVwUN5iEYnm7NN3ZZqonLBMifGIlCC8szuRVZRnFp/WqTwr0da3wSDF+lEVgfo7
LI9rsp6a2NbzQQVSuspWc07tm6C3kH6XfXzCKcUnds3vIE1RBwU961eE3bjLRgFGX6xqqhgID1p6
CV0Y4SmSyqpZD1m2mSwySqhhUHa5yTFcGyvLw6LUnmM7v/7kWQeHx6LcdyHuW1Y+IOLMcUCgsuV+
m79ixxzP2MEGFYWmeMRuIiWVQ9/vtusE2iAOH5A2OU8fkxpv8rEOnMlUcEM0UmCS2ufeky+49Zdd
bVFc573ubZeZrrSMXOlT8+f0Zl9gjDdo3HYuJouivdlZE/Y2X/9CaR3gruFmBA/kOuYTCZ40SQmc
bwOIbmmH9wcaj8MHdKMnifSFgGOHSHTGEmv8BX78zxRbMt7DP7u+CORUZehm5yHUcdcs2se/Pm4v
jzMy/vUGzGCUzf9E/y+5uGw9vaCJLe7xchvfUsYsLUmm3ETzBx8V959twPX3eQh4Xuw6qFxZVRFO
s+U1jf9ONT/mbRr3GLvtEN48zQh9fDTs6/gHZCPUZIKjtlQZERUjKXC77CDtIJqniQrYcBcRW78C
IrqDmJht4QaSRzoVfC7ExmzsY007/bEKNIJoHYe7LeTMx7S3L7JbPZY7ZSxvscHoAEbGcPb+/hXS
jR/j/X1Od5g2cgCoGNW7WtSQJtBH2pJ9LMvlVCCt/zEt5t/RCJ2fV60nRuBv8jXYXJTx8YCELH06
EEDY/fY4KkEbgSGKnfK2PMs17hA8tTCHMRtx8KB2Hx68RtMZPokQzGoXroWxO/AA0pH1QgT9Wwqt
klMHLZVaHII/L0O9lUmPfSs/kIscjR+oh4mGTWRQ/nmfFwALumwEihnwAjdVTzjUDUOx7n+K7olS
W43IksG59raVywj+iytBwH/ws43sLFb7L/7HZiUbAYj3YdGsxQ7EKUIE/TCfBhiACf8CSkEc/9ha
lTR8YinyojRCiCEQgtHlJ6rPdCOJEBGGuibND6sAiPgrhUhWy9gb4Gby9CouAXmf3t7PUAGXAuzA
RWdxcsE5MOSuQkVkcqW4WZ8m1xRhEkehJrKdBEpoC8WBzuLKh8BYA7wF5bA6TynAwbN1GZa9BNNS
HmcFy0KljSoMeN7JEpaGUXpw3bfhu4Pwk0UKywTlucLoVCAeqjg61/fx5e38KUKisoTAGTp7JHZq
DTWVH9+n49fRqIq3tyQiDSeZEMNAQuNNAhHwM2hHNItZDotpk4OZeRC2U9Q8v9qIhfOJ+B8KfQgc
6GW4KdVgrRjQ4lrLSVtSfcWvW/OPEJ2n8Og8sm+KCpP8mGZaJ2OkG2OUvI30meA5e+QfrpSo1r1A
aFiRi7H6l1gLQ7X+Cm4knYQcLZ9zhzIjDGFxCI4Bp55v5xXRRaTPJRdrF9lkchxtw9rj5qddagfR
CQgkB2Xv0L7o7eI/HYYXrMLFOiU31TxPj1+oOtH0nXsoALdPBtE1htjlpBaOEbkmTo5XZx7bfLiM
1/fxu19dkSZXi755h4rlyRHwlX1pFmRRISeb5SWiWIzcbXw9KyO5kWDjW4HLDOtm+s3tlsr6BC6D
nBlkyYW8Z2XrohAUvfeExNilN6zFJGm3AoyCAlF+PBRIuPn7hVxFbKqDUC/xjjLpl5imDJq7uYYj
ukZvWqVX6VvFSxyfZPdsLwCFhMonjUCbaLBsu5FL4miXcuwCSYFkeRdmMRipDyJm31PI37QSgasR
jMxRGEx57bVoo3fKWooScBhmf9xYmDBqcppW6V99QZO9102g3DezNVGmEhyGeb4yPHg0IJTtic8l
JB/kiozcxVzYzGdPO3UWjzqBktYmIQgkIC5mH2d/paySU9FlIlbFQTFcVgSjjKDPIKz6wYibrJkV
srW4CBFD05SDIn4rwX1ykOXjMkFfNUxROR6NoU9T3FYqQ31hrbgpcgm7FSN68etQaLQn18j5eIDa
kRdpKaICPle12DWBi63XdprHhQu0jUPjX7Uo9VNWWq2laKMJeTrMe8LepwU3CfAdy5HIoltSuJEY
NZjzaTcej3AnNqYYEDcJqShT3dErUnB7ac9Pdkv5JMmwNkTacIz0QCcxnvYwalOvT6WRoy8eaMfx
P6weQJpoKTgMJxu4+UbUQwWu8vrtoxAdlmV6u3zo2lS8hMKjpBlz+G1HKgXNzdaZm7hlDi5huBxB
IjfM9t59DtYlR4ziDoEbSpgKNiJB72MgXksTWKj8BUqL0SIU/xQukPWOzEHCpBsbRBHcq3hlIoMg
2UwwUfoHATsMUjOBL6j8lnDIoCjLysQ9e/vsT4kos5xmxAabK4HmglPW3ebAnEn3ngI8ItdVjucU
iVnALzgj8EC4Uk040YJFeoIKiLL1PTwuLgv5fEyUdBedwmpgi36yX/vH5X/JIIqTH+BgDpfDC+zr
9oHArMow3rp7mrzMWGD3s5Mgysnm61nQrr4CGQBPE+YeXQKIFrdU7h66YoqVBLcX4ugsn4+ndMUg
rSGLZ1MubOglH4ZyKLVIspW+iokZkIdhIt7a+0gWG3WYYlnutAg4ZOVHyrCtjFHpAXtmMQyC88hX
B6YLhzzO5b7O+m24av145XrksY3TxWWl5regnCxFLAbLXgv3SOwEGgRxf3WKwGM+KbEzX1NdQllK
aQdg0LJsjJDhFsw/gn6CAChnMTbih63oQ659ow93ECM/cwxZoyIaZF3RNRvUMOcG2q0eL/fbOAYM
D+UF5ilgZf9yKE/pcE7mwzlUGM4DOS/Hd/CTEHdAROEGwsUNAkg7I0dNvoqosf+6ZgprL7nfT1Os
xeKFsR1380J1mSYqT6TjpA5PTgJQIcor4LB3sA3NY1oY5kQbwI251J4tUcDcwP5SLr35Zuy52dYG
/XUy3JEGNcnx9DJHiDrwc8tdtDCErU1PTEUaFnkScUmB+7NGtM2arRGTw0T22zG9J2v8toQlwrY1
7QjK4gllyWKaAjIMRFWS9GzXIm0NIwNFJ0+JknzKnFmkYufM0vhO2FwmNmdXAdbF/TZx64h24rkN
OLVuZpcHeyQWWMhOTkLsUflH4cigVcQY2Ea4/LwCo3oOW/27w7fisPw04udHSuwWGT6wFtEPEXa/
7aLk6W4HZVS8YanWkRI1R5E16TPnzZoyRwixTmuLr70iZTQdZU2p+Gw8KWvr/NqQXYwfGycK1gti
EWEaN02w8QSpJDG+3WVcFppP+zoCaysUe79rCE3VFpaeeJiaD5hzFCZuPc9Jf/3jQZUMQMqc25Wn
+CFvp9977h9WAe5L0ZTiWX0MYuaLkeI/cer1Yqy+c3qBuX/7GOusqk6QvNIU9wwy9GOaSOGfBFae
NL1c13yDKgklV4fr8FurIdJWs0W7h93xWXZeMIMe6XqxAoAx1Xp7UGh56YAgKFJgGZ2cHNSD9W5C
4FGSpnrymV2i/DIfVAHDEzP9SuSFLOP4NWlI4lpqfxclGF1lU8vvbVEnlGeOJ4WMYDXwBIq6VlkN
5xCCU/aRpinUFZfVyENGhQeFND//cle5LcvEDhFATnKba2AD5n81Brjt+kvzTlGV4pWCrSzogS92
wnPXqjHQFOqEYoCKsN65P0YFMxtcsSkEehfShMpMPCdznW0mNbJVeFhBYw1IqINEMcnBSPJH+H9N
H6XYeN3iH11oQJBiZE/ndTiN6RmjaEl4egg/XzZlqGIZ/+c8Gc0NAy2MCH4Zboqy9a+yAvap8lwc
hd21crOCVxD3nHuE7YJsacH9sVAz0s/fpZ5mJmbDIXxwi5k129Fyg5IUgM75uuBMQI1I5YiUlDMt
XHuOW4f2fee/R8RhVsjcPmJnX+Hki/nVOFTJwDzTa/ymcqgGL2xYDfdjVOfloXzOLjd9jpMfGlll
8+9bv16K3WBOjD3V9/n7L3xNv1OAmjLhqdG9IPaWheZcpqP2Xe6+o5GE3L76+jifjZc9jhYkynbg
a+NsMjGbkLaDfYt52OAJXbbsxsAWwZl/vLzoR1Q4mg2UqTd5Jm0RaEmfzMP/aePy36Ccx/zKeYII
8OOafh995SUfAetJMS+QO5LFRvjKhMaqEL2nXAv2KyFXG166D8abGA4Xw+u34ZxumcbleZEKVqiV
JjfKdM44xv3qgOTJVhjAnMJhG7ZlQxEvwuqAiFXNZkPgG0IQDQSVs0IUI0QcBHRGl6106cCWxUOg
ydBpVxtptV6Wog+VJW09lPmKvhSWTYuzSaQMtbVw8/3d7BMgYLAxflPZVYIohvKljkJVhMbjYfxx
HK+67Vd4T69qHRrEyv7/uI5b9nHeekJNuXJkgzehGOz+1IsOAbpzoRGHhW12Lx/Sq5FWoWwMTZlQ
88tyfNw0oyz32qwqcCZ0/WSlbpacocHqb6+BiEbDpfnMEj/uEChzPjYicmzwQ++XhuVFTeoOKzpB
5RIFuzaQ5ZGHhm4TgUDbwej4/ul/WHTDMS9Dw7p/FnUbXkJRSbP4yQOz0yIJhZVDm4p3KK0TMLJL
NrKd+cXxpA2Xmritl5KcmpGl52Axfe/z25tiEhadiEvJ9MtTOOg2Qp591IMuFnMK+QJKINo6f2ZZ
apBIc2u7fpPSQF9+Ghof5mGP41VZh3DEs9YPeFpZurA/1PPmcRLzqvihZPRKGxVc6KyOm+vG81ur
QYU3hCwD/7opqpUfeHj5Sd79wUW2FXLdSl63kpzQdCKEmWaSWtr5+If0G+iZ7+BZsaga1GUdhAnZ
V8UWyW1ipYjLVR5GQcgNRTAIKwgbg7m27TLeYSAZXBwvBk0AxvFT4jSe6YsGu1vLGLNRnk+zrPJK
rKzFgHsZj/AqJPy5gGUcHDG83YVAEDn5ku7Tw5coggsVzjoqXaDjPtqdQRoD4fmBS5U4hxD0oHar
3HfZWHeWwC8BvOfNLMxoR5uVV7m9KLwQI5ekaJ65fYGaEayUsaWAb1jZpEdnJJtlCE7bbD4kPXxW
yJANGGs2jE8CiAIQrxPENIxGUOhkhZBxOOw7q/LYvo/DlUAK0b8D987wt/q67JhKEZ+TljLZe7f5
Y8KO/GU+f1PWmUuDFPykQMf7tqBdeYKiF9oBeyDzfJUn2Eij5OL8qT4k6gMoOSERQy2xezV66tvP
3WKn4ykX+Ie0USDmrFiuXpi2IADbqoytAsdhwuO0YSmr8pS7F6ZFUa+dRHw2gY+XnN1AwlYIRxD6
BZvpLyMU3x9YPeIESqjgW5SYr1hYmeEQyHwV9TWe4LId+i1EWB3xGOXJASCElj4rhMuQYyIvlxIB
pZnmtZTyOWChNu8i+rQQz4k8q+El1eJPrywX+TPCAVbfKxdfUCZCIes1EoQl2BT73+Uv1FoCW+X2
MGQG+fcvXC20fAEO+aJH7zDw0fqwDvgCHeNsrslh44JGxoeYwAbl6LwlA5WRxl7/+WX8MS0pc53o
+EgXmhhFfDmX+QtimmiUfJSo8ngmT5R0M5EoVeGaEkcEh729Kh8NA+eVoVqit6dR8eFEsNzbxN5e
5rfHsr0kH/rC+g5u4DIPkkK3t6PYo+3dNiu8f6FX/8VGQ7Xf6IJts3Qj0ohb8QWKapGo+YG3t/H2
BQdFAk67FrXz3GIUMUoHvudg1Xu4xUedkXFy2wxlkyUO0Jr+8Qul6r9ojxmjta3vvgQvhvu5nwkZ
7/iqjGhxTjtOfMGAVYIQgXIlWZpotQJephVFaJ4aRzzTNDqPvoKPv9E3dn+/zY+3d2VNEgqr9TXx
qR2qD5coduEKyzW9PWKJ9poHmD62CXi83bj9DP/25fJI5IHRcCp9kr/wcyrpS/Pc8f8bL/08nsw/
8ttV9CrR9MUMCNrUCpp7dkdECr+w3g+upcw0IzbDX7+8Ducl4Hzl7CU6Wu5hMJmScak8oUFBZiny
1qOooP3FfZHsOPq3Kf/FNve24SQhdl4CGru5oy2eRrfR5O/Lf5gz+uvP62j7X+0/fwEM14mGJH+Z
j/fRyNK7YcyPL+CNfYGRosflS56+skLce+laAuUvEP/oJR3YWs8lHb0bgi2puKDAFyP0QY7y0hC8
GTq9vhQK+Tooj2G/+tPHoP1CEfyCmwC//QsKzSw82meaBEOx+awQcIcXh3lVC2eJTutfWL36fyQb
68v0CuecMoeJsi/FwZpJTrh6SruffuFLcIAo+0KCEhgiuCyMCH/hiPDG8rrgBNlVSxMdTiekSdaE
2q1riLdPxP3MN5LF8Nc9SoKEnyhC6p3hSjRC1fXlY7g8Bk3AiwqprPedE35BaXuGXGvxquvVWtjQ
2FxE7WkEMyWICuapV2ezZTHQ0sRbxsq+unoiy8el2kRETLwMbNTjBsvg1JVz9mKL+g2LdnVQm6dU
+Vtn7FxJgUfAb5+1kJ9cXxq78O3VeDEGx9HEb4xo2cUp1AQbIsZem61WtXXZpX9jaHWuj1f5bf/0
IeTDhVGx16T8umc18Aa7NnI1yp0IlYBtZsEaNlmzzgJx0AY/DobK9mWGh2eTyrGHsvdEKs9n1CMu
KPp00Ta71kK8FJgQe76ebSknHi+Nv2mf2MuJls3D8seNUwr6KKdur0kUuxLaaxU9IuVs/K6w1rJE
nHsXY/pHxFtQXPXeyxGq+xPhFqJSBNjDef/paAu5NX2ADspW5OeCLbSe6mku56djLaWo/XeEut8U
aiFS3j8FKfjpSAsRqUM3ofxtgZZSxLDtpOSi+IfGWXAmDbeHYfbVI/D9N8IsRLX0VDMaG1d+NspC
hApPSAz2+m8HWXgAF901ouvX7W8Ns/QyNNJ48fbbAi0Ce6vEEXZ59dlAi8050eYo0/zfDLX0YsQx
FdBV/71QC8+qY0mCU6eb3xpsKbJQBth3sjvYUglAABwABfHo/L8XbKkELgh2yvjhXvuDLZWA9KDJ
VCSW/jvBFhpF1bt3hWhyDubuE7EWeqCZI0TdDxYxUo+2CGZJixLSOF79wUHw6JHPhW66NhwnXv83
QjddF4KeZ/+g0E2pXJaX0Vh08hujInn6F1rPDuDU158ODtE6vbAuaxeulFTMgX8BDLbJqBSwfpQl
cfFwZgcS95vECoVY54mJ+IIgxmdE1ra2rDI4KYab+QdFqOgXsuC2I2vdDrFpzNQECp/tpc+R186n
9jzQRVf/qfgacae/PXDkm+43xNdocZUjBNZ7V/4j4mskFbzGhaA9Ryd+e1SMiAobuYtFxfYLLW+U
gjPGZWb//fhaKZq8MF9VkXj6rfE11HdivhC27xT9b4uwEbFSDCsCc6rcH2EjAmLaZ40+WPO5GBtS
6YQhgC0vtl3zN8fYiGwhdpfhFn9TjI2IeYTmEtR6GTt35aAEPjPFMotPxNhoBeLmId1StPUng2xI
ps/EqXTJO9/mHW94icqC3xBko80JTsSseVXvD7LResSI077y4IEbYTb6dTFzqynXQa4dbgCtQPAb
tQVVe0NttIpefA87yPeG2uhzgYstZ7DsDLYRjWolEIr+vxNtI5qC9bGmoPl8vI04159vDcGeuug+
F2+jWxIPGed2F81vircRMekWdVi6+emIGxGqxapwlGe5P+JGp5OLUcnQ/d1UFkGCq8KonStokRAV
bArugy9XRADwhl347+PL1+l+WKFSnLRmQPC2Zd8F+N9t2YbFZ7bvbKuHORdllBB/LVzVxXMPs1J4
K3pecJhUUAr53LV0uL87HDmlg6mKlx2LAlmlKlbUqmOrUWnfIVa/0mRD7HO0rVBQ8cdw6UrXCyUv
xBTGpvWtCUTQ3Om3+/1wP2Z5Z/Y7vV1othd2GOjA4kid0gUVPqzOpV6INuKKG+OJm04UKpTpRioF
IsVXpaBzfIw8MYZRtdUN26kXsGGcNJ3JNQEY4ssZOnROp+NDW1PmMa87CCF1WfzcygzqgRGp5rZg
C8XloFNGCEM+s4IKxiJ0s+LwkiqmRTKUZaJD87iv/shcMe8BgXumxYHJk6WcagDGQ+w9dDg31zeC
PNwDNRJr6/OsgRKuibNdfng5D5evyHEaOUrL0amVzp9221245BSmC/2Y7trW/JTaAjUCdDlJYsuC
56cCcBApMay2BJuiytsIr2lM1shhsjRLvpN9zfCEEMKLAdZffh4u43eqitceVCmeJVqv5fq4PqZl
0dbW9GLQbYMAXQ3Hm2I8Rg/0+Bi336c8f+SvfEXVoWEK+tuyqOn8eFhs6rJdpESYtcSWuKTiC+Ja
iFIWlRQfNNYVB/Heh4+rQicXIg1LQ6RER6m4cYeNHJ9buwLct/H+y2P85+Vf//rnP/2ycdJNHszx
DXYiBE19eB8HaMOGpphRmehrHmHm+apy88toOtLCNN0g3oPkE/gvDi4to0D5+Pxz1brAMyyVaWj2
BlHwqUjiL9tF6WnAPEKFgC8AwKa0krcpCNC4boWET2JX/uQFga2+KKLi89ZwLNypLc9i/tDa/YlI
LaoTCalKduZvSRKMt9ON11hxHb4HhACDCP4mLgq9CqGz4KXZu4lJlOUyIDI0KgbqghpVue6FcYVW
cV6upDoOHEIEYrI4Ncku9B/iQfdNgphGxL/gqiT4IklERwwiCmI6eOcS1U86tPTjl5W3688eFyOF
I/cDU9syXuqWnMy9dmdwa9lfuSnbvKjmgctldGdFDRPm8LRvXx+avK370Dwog90dXoaLpoexE4W+
7sH0ybNMqrqvk/610LZo/NfVilmgBRa0rnbV3mzFJFQWNwuLDJ8JYnSgva6diTc0bWFy8NY+Hvc0
UlMlRqDhM4D4QFFU69ePbhc0Mu0TAP6asBK8Whs7zkDfVNTC8wAGLFvJ0FDhAOD5RwSunO5n9eyb
XthxQKvP44dfGFfOUJtUS7X2lqodeRWaXuYPsuc0aeYtw7qD/HzdJd5IVpnX8WZ2Slpcs8jFG/Ho
Ak+b7MHAAWFy+P4+3QlsQ9MQnvtBSzUJO7/d71PmgZFRxQkW3eFxcdmZbQHReH5pfNQfqYI5QP7R
YO5FfRFtI6Ro7zoGmOkIqnTjoYthSogpVxZZUgfe7meNR7zIQFz8qmniL/xg5x5rT11oPIynFgHI
Jm0QUOUvEEhCfHXtETTejsZH3xYJCd9610EjlwfOZBH3xYtql21ed6EmzFaWuXUVtBU1AtcXh2sW
61dO/co25GaHFWrOoFD2DdalNWV8n1kJXuCWx1x2QYCgjMu0sjDm0BtM50YMFZV3CcxYiO84yTyD
sB4LEc0iET5S7bLaPsQgHIikxc5bzYJ1BT40XcY4flWNtTYT3iPEjco+sRwLzDzfNnVU6bkWB+hm
6zgD4gYAoOvNvDLNOOjXMiNp254H3SaV0gd7PuQ2bXxxC9qXTswHCLATnDb3vTwylrWRFTCfi7Ke
4K/+GYKhPHXReYl/VeJIrc85dgiVDrWpDEBzOv3Vfq193LqPIR5VceeZ+xS/Spt3rU+00ALAVi3s
mMJR+YhLgfCjxlcW6DZ/65NT9GUp9/vLQ/tBlt/wGcYbOh7g/TKeta/E4SKsCH91eXsMb+rP9eEq
bRJ9VLfW+I8QXVPE7/XdsarD3WEXIQ2xuGyYUq3PlNC3OF6JeAA4EnlAcqTqGbY+D+rPWRgA2s7L
2Dlvmcytz0T7T6t9F5uFr6ayBadp+dD6JHrARsGD+dPEg9dpfq127HWwbk7GzxfDyVun1Qs+QanF
nxKnbH7dhl+3qy0YTvvELqqQeQoRhfvdzz9qcqMvnwTX//k/UbOlOXybJ93I9gquKp2sDSKbgLXE
gGPTxahz4G/NfxKGLMbnizpw7WC4hQVheZ1Um7jwi6MpYjBGbq2BYarFbTM27yMmdQNcUzfBsjjn
taGZmjYTIeZ6nU+y+UY9Gsk6rhQOcI8RRUlpuA9gnSjd8USlEOtB+I4sWM959OD15g5VPyYTQ11B
KhZBUOg8vg3Hn8N14gEHzg1Oqyvyy4VhV+GJdc8BFGWYKVMRNlSW4SCxrEgEMvKG843WI9TNszoL
neo8GofwY5P3xCK8fUw2VdINw8ksaRxQYt1c7B0r3xJ5Pe9ev88PzV2vqnDLdfwcKzrHrci98Hlq
hyDx5AzkvPMjGKU/NYHkbXfgaIYAB++JkHtQJG2FAetehAFFA+DTHnsX9NJYpAwTomtnmCbqXD8d
WO6EnYtvo4kfXpYfHvfXTvMH/CvLeb50yox3fqwaM/Q+aEWlvIEMZyuOxxWNF1XD5J7bMAnWlumE
MsqWK9VFak9C+BpUFMHXG/p2+yIvTSPi+yBaqjwRpCt3RIvboGwhUKfiQhta3wmCfq/TeFOd2Tx4
YGEI2FC5jDDa8Nuu7GHTiYvFeRaCmFmcHisphdwAsVnUZRjg2BPUbhrB9bp0fJ9v06+QslVjVV41
gImZDG/noEw3wtp1EMYMRBm8IVsITOFLPXLQtH6bVHpTxKOiWefE9mVGya0yQxkuMVvz/V6eF8qe
RrImOLUlHpsNs2rLKsLKE3lyGIpABb+8j6MabPGby6kbLwADZBU8Xv7+GB9sq20WBTSiaAfMyS5Q
8FRNt2XDFP4F4ijcqk4EzLODAsdFW6zDcGO5TlNw+9+CtoduuRTiOYJhWrTxZeX1TlOoClNd5boo
w2i0d543So9UEzSiyACBDp/KiBhVflggQ4ip6636DmEy99isIp+6yp+ZLA15zpyIIpPkiD1eg6h8
wJ6/QEiwdeLD9dvJJq+40UEun6n9/TEdv2o1VW0hUumcKAlxTl/I1jZ+0u1xVeFgRREjzjRsMokI
SU8OBB+EdZWpIqJqscbZoNxAfh9eDq/z8bHYMbDB01YIlr6SEZOYdowwtk4sDu7+QE00Ch2BV4nA
q321gk3UERxbgSxIBYUR2F51Lh6W/4iBPSARWm5ZlHmn231RhheUAni5BACmp++1Mjqk0ARY43Yk
t/HrCCLRuGaLsbhf5h/s8Z15hO501WYRyeE54EXa0WUKoiP8OyNatFnSBL8oMF5pvGCjgspb2G/9
RjOB7gpcVrMjzkOz8EbF0Dy+4mU0SsjYvVvmdCnQfqmt11k8AT2Y6mfcm9dhStX1UQtuG/QqcSw2
oAQLoomqyoIEvkDpaqFiC7KjwzDJ52b0QiuossguAEGIbVdWxxN73b/b50NTjJTjzD39qkcjO3v+
BRiRoZ1kLjrTffgtIMGw0ErfXCkgfRH/z1cqh9xyx45mY92dTwvBtXu9p1yTv+2yJnSQLnLjr8Ny
T8JN0xJ9dy96dtUzEfZhcaY1370dJ6UsUBxi7oouArofxujAKYz0j9uXK6EvsD6qfiaq1H3Tuqrg
wVVZkr9pPQov+5MD76Bp95ycsjDfwAhx9GDkiuUVhLV/G64KlSYGD5Lm3R03mfvuwtYDl4Zs9ji9
AbMlSwuJULsCRajyjcNn9UL/6rvxHRPw8nQfddABGhWlp5MUJAotzyVV7uaXh8KUkpeXdLl1KaaW
IZcUrrE7ySXGRDFmSrIEnO7YXwiUrdQRxvswH0zX82iHIE2/YruvldaaQsoC2MyYGtkJWVHknhT+
X+QQT48bLYyqALfeSF6EkjmPydPrVTGtS9GOg4gGVA2Y5ENjICw/L0dj73zAcfIykxDTxDxCThWu
biSgvrK//248zUkBD7K2KfJ2Gb/y8FlvBKNLgVntcI04Z0VUbfUOZdL/+kuWdemm877y8AXYLN7x
sGX4LlNa7XvfC1+QXVi777p0D31fC0AGrJiv/Xet8l0lvsMJCBxwxN+rld+TcDoMqtO6L4sq/WXm
URR6qhLv/cnUysn04hcL+tN/2ShrLUvRrN/68TnwXa2cTeF78zsofeoafzZZpazUgwP0KOLFmZbK
yeS1AHLI/TgQvItCuQsBz4CTDQp/E2Wv7M9/15FT3fgbbJUb7ASvif5zvIdOuQfB24VQd8ijjcKj
lQB0EaF/PJdM+c6vswXzqGWDEL7LNQ4Vv1diHsN/Vyr7y8Wbh5Rll/lzqbV7EOtEg6Lz59Ipv1cL
3AycAGP+9L+YKb+YSWmBTZyF36Fy87ngbMplealWK9KwKMTJ5Hg8/veUl5s34gUChzZ+f61yMpU4
mQznPGeFOFPl7utCnEznQbiQZ5SVZrVAL8LKce5UxEehHGkpHj0GSQSTdsp3dS3FIf6iuMRK2WIh
8NWwF6Xwl9go35XiaHD8ReN3mCnwLr0X+FQ2V/nLr5VLLATcDuXYxToVcVGK54vtLZVXE70iRptM
ALthn4cXM70iZmr5KDC6KFSvwjKVwO3B7s5WPApFLeVSPLWrx6vsLxe/h+ZNJcSoIizqVnIa9mWI
G2yVX6yEggEbsMv9I+wVcVELKDB8kJ2/wVK5+dyvFCvN21a8QWWd5QoxrMz8Okvl5vN8hTTW+99r
lbdbiTePPfRyncpNlO1KVjTiPBWOaeQ6q5BjWuXFV8Vqf40w1ZR7yPx5tpBybHvBL8p5lsKwqLDu
TagXTaLVK/WS+/3Vyr0XpeCXDJnG709BlOr970HDUOffUaHIs6xfmzHi1pXbK8Xt1b0fNYoqSdld
Jkx0SHnlvVdltSKXCq88sVaiFWZvrpmF4ru+DW+hU7ilrp5ciUxIbOXeG8mfvW9iRj5T5EvZr5S8
MChz5btMmjEQksr9DRbKu82zFV+L914qv5fL/ZUeNQI5RjO3+rVmEXJJWWclXDOs9QUNKGaD4Tzl
yDD5XcmDohFTuCjWLUM/FjPksBp+uDWb3qKT+ilxXR7MlOXqyYunqcxlzgUsCTyZUg5a5RLB7+/T
2Q3Nvr8/Pl5oUL06wdInTgiqvfqvSNbRzgDF5mY40D1IMWUhDyDHxglB3I/5db+jjK0Vc+VwkHZW
he1Hl8Us6ENL14kjxIllZd7ER2WfbsPbxrRgCxJHWayipxnnz9N4h/P1fVB2VYnJf/hHH068s+Nz
tw+oFpOVEYCLJ8KIaatuSubWiLSyFvlRHJkJA5fjI2Ejjw5K5rbSgKXYOtbjNm0kBUut4xc8ztN0
Umcj12IGN0Tlq05e78t5hncAVdDEuirn5iJBnGelnzWxBjcCTnETd5fx7v8nW2WkiAex4BrrUYqN
HCsWsm4NzRODQ1vXNKVN8oV7U+7JMzoCRjSsc2my4fQyQTSU83Repr0D79/MNubvF0Wqiex1DrGN
PD7lFMZGainlRg7QxGBzseZ9G2VX+EeMssbgbd+GMz2p7AIkIKY64PuPkRgdEUg0lKui98eI9fBt
me9MqG8PDi7EWHCcGi/v/LrB6qUcu42jKcxN2MYbs4bj+AsgWh6W9/lxPuHbJiQdfQh6IWU/dpeX
WWygOoKaasnZXAxU6xiLtMlstxTxB2FcGGV/G4/p5mEg1AgcLiwhCjR97BqsCNpzD5kcM4qtYHWM
nZF9oPUWmYmqcd6NgNNGtBZNI941WmoSUGG+nH8e1tNn0/XQWOKRB7Pkq2yl9+2c4mB4saLrxXjy
pvVjUVYSMxAbimwUA00x0BmAwm2aS0UjhoUTRktQIGTe6xnbMqbT5mzVWgw3xSBRLp8Xg97hGGoq
hVMMECFKwUFvuM3rQqBUC9a8/IZyL5uPpufRY7GWWCIK+c9dZuZ5owXLtW272GUaqX/R7F9hIwHF
PKtiIuA4LCMijFygulEZu2xn1XXUPgUtU+tpucYawUvdwgoUFj8Oi1gJFFKTihgRqhu+r0oJ5+en
CINhbnaIdTLqBGdb2yHEZR4qbu0tl2JCelXjH5JHqSxyg88LwZ11jpiabdw8loiRioHcrFEioyOl
4YzYR6MCIlcDrTxuoakrzJpFTMet2j1h4GEnjVlwmse3vIFe2PHUGlmvpSkpTcJ5VqSoFDblWtgw
DbzOTUqZ0EUdeo1rm+g0PzT/taykChfQqHyFYjp8skEGU36eOXnochkTA0m4/FwMG6UX5xCznnhz
Axk1F2N5yJXEipEyeGpo9CybIkR4pOgvrVSMr5BTVIv0j2vE4gvlkK3U2zLicmEBo8VuFxOGGpQz
KVbft1Lfkg0Es23Q/kNdpQgSOR4dK3ya9GUpSxI3LtFL7DV9AzxNYh1bmqJclohyYBambELNodQK
Cx+lxIfUxwSZc31QeH2MlwcZZe7fn0aqusV/wG5JHXkInXpp9PW+Vl7AwymXKmQcYl7JLSPkLNue
C5QEf8wuuKMHGjp/lNhS17ZpgFx1PjoaGo14i1Bh3rRqMTCw31bcrRRmeAFN1mUmTeWP6/h22Dbm
cyH9EG2lCaQf8h0R/KSdXK6Cgm0TUzsuqEDSbOFypq3IjZ2vRIYNIob2VfUclzrdBnRajXC5PpS3
XAmzBERw2QX6CEUkGTmaspVufkd5iv+SQNTWRjpsGElSCYAfWNXRcIEPSFnXSLElhElZljjVMNYL
AMrpgDM9FJUrnct1gTgsbrogDi1dIV8oq5st68yOt+CqeZyexd0GyzdDazlMH9DKSa6ljHgprQPF
6pkEJudO1O2i9RaLQF7iwrTH+WyE3jhCf7R5FhfoOdrwkgpRyd80kFswf8pYNzSxXWwp9nh5S6Mc
oZfrzSCciLQHzBskjSJd/AOuwSGp+z7OLwqjCFM7c+2bXrBA3wgAGSyHXHlUIkaL7lVhZ2FaJ4gu
4XE7b5mvrQx9rcqjV9kP1Q8phN+YF+3a6DzP81U5V9EX0iAgRhME6FcLMQ/HXJ8iLDIRCEVohqaI
W68Kb4urxtriSlqKLt7Nse7Di7HUApZHvaC9QKFicIwa078RisUPMCXulkOXjVsshGZBLdCtYwDe
L9Xen8xalYgAlT/rD7NDo5X+Y7gD4JuiPkR/E/VdNjHT//v4ogT/OpHZ8GObVzIfIvGKHSXamRDA
kduLiZWiWa5N2yWvSzFvoPYFWf4db0aERD9cV2Jba7EKaGieVdnK9FGFc1alBBe5zy3eaWUGlIZO
RFxquDVFqmXaeQi7H0ckHdTwQVHLBEyFRWSB7IZumUOyXYYYWZi/PSK2dZHUprqMssxEwyL8vSuf
hQjc0/E8DupbF3eFCcw6EEdObBi5QW7DZoizF4akHNyj8LQF+P94qJavzKQV6GzbOKXxYf5wmz/+
EwLjy/twmr//QsJJkUr5OqJRr1hcA+hCvhLZnbL3aD0CeRLdrWU8b4T/SyFKWjBE266N5wi/T+Y+
jI8EMnxUnN1cBDdqP7RyJZzwSqiT069X4X2RGoVIY9NmqyPTJmagYChFoLRB3K64WbZpjEn/rF77
Z8NyBU5A51vRcrIZGbaTRXyI33D2peieJc+cPR3bRqx4xsJDbJyl/pzWfRluChEhvCEA2wWOlooo
icEf/3mVIRC8/PzbfH58aLkE6Wvg5Fv5KD5mCBRii7YyL0fY/23pa9pi83L2TQYqRLgCkUUaKbK5
TWcrDl22q/5gDs4baXO909CYDXNWUijpCciyE5f+t635WysS0XUqUgzc18u8I84hwvsdCOuurJ99
LV0sFzIQhYgBQeO0rJhQmE4cDbxtW9fAZUTDHf0FJSgiE/Zibt1GktxVhOxIlAuJ02EzrhTRYPXf
9ESK0BYdVq3Xu+Ir38Hze4f+Pk019p10UnL8s1yHhXYG6MULhvxBxd7bx8CTNV0lyXAZzzTl5TyZ
N3Q6pAY6UGilEkXtOc/EVqIkALkH1+K1ghItEekJHE5jNE31lKCYPvCw76MSeCmFXdCAsdfErMVl
V2VX0Uh1hxMHpHkvgqXbgfRKpE0aPM8ynfMolMearwxq9qJA5NxHuz8cqQKx4GnZFz4sAq7BZEiz
MxptFCw0l2rnKFLdNWEsPqc0FDutWfsQWSI7u2m+CE+iKjzaIEtLo5c2JW4hq/1q/IOE9stt/mpe
ul69kjersFEddVuHb2TaKeZhL0xpDzxt+IcDPBdwG7RsSil8vMJBkUkjwRZ8qi5wKTI8NbjAdVAf
+ArTiqE444Ew3xuOVbHKfhfrNLyCn4ScIixCDIDZCBjtx1hdLENRKOtqsRTpJsoGV91eP2i7L5z8
oVZYagCyknXxhNbjkh4AT+pDhDKoJzzIJUGt7uH0cj5+hb8AEvRpUEssCpmipS7SIpHkcfhyOzI8
wlihbsEAPejHHSo1rIbXRweIZv9uDfNn7WR0INje1M+vFJ5RDaq4YcwQ5a7xpW45vNXakchX8mZL
bxQygZrbgZ08FfONPsG/HQCJh1znODFff9tWaGFhX5MtUxt+OFgqcLx/3HGq1tuZ/+lsnClY6zdK
mClY1ZQVbdzPYBdx/l9uxYUA8GPih/kFxq5p9Dq/7NxNLjQK7qdbrvZ14b6uGkLoZE8//6fsnwpr
FIExMFwYzYcweqnx3RwuPeWDMeLMjzGAb/wXwTvJuIuBwHOgMJPAm89+ysxuSrmjRB1sDMZgaBEJ
onCd0UTWCLWOEFY95lzM6QjtWEvtSJBwjRJQsd+ITunoUEF5nM6v481Y/suShHYnYpXfF0K58mSU
+AEdCPpIJdh4ghkiRjIUObCZMaEW5pcrjgXl9Bin3fmfivh7plwB3UPuKvNZx6VpkTikf0JH6vb2
Uiea//EnSv8TCK7W+B+4XB93Kk9M1zVQmVHpaJSdH9lDR0BToI6Pl/HwMSSQrZBKIzZL3UrFJza7
tU8GcsAceuOyS3aN76fD6Topa/M7hM1a3NSNlXGawixtqOtE/zddQu0PsO7pT/d0za8gWeXzzH2O
8dgm2NvlOt8VS5P25xeQo2WVW2ANS8W8jOH4jlEYlH135Sa5PzVvAzwTS8l4G1doFFJW4+8KxBhX
ycB3MKscTCZ78MrTqQU3eZt398NROMmftigCW71xQ3DzmLiREFmydYLfPRu3uD1vp4+tyZDCaoER
hNk9ZeDTlfm1SLjOT8mZLSbvY5LmY7qarR1eXxTuLD0/IGRq/4nXp1AVW8ZUb2mjKJ4yWiHKqXlW
KKtPnhocWFUlgAiI0QrPHwDFWUaoPy4T8NnhZboAwuvh5fGmbLkSD5MK2hsrZd6MBQykHcMofNvF
nufWrofbDTr2CKbr2zR+V26mEMvEXEso0R5Xmv64/S5azzlilssn2Vq/pbILmfMTGlq5qMpffe3H
1Rmi+wyHug6uqHBmznX6MZ6X+3wbFW1XCGnSfPK97TmxSmi7DiGeu5WKgDymIu2y2O7Wp2M8+JPh
Ou091H4lWICfPxkuyiLEvSP662oP7CG9pADMaQGeCELQrZ8S8QoHrHS1VBcJVndGgLKXRhwo/rFP
XXIV7JbpJaybFsfZ1bFtkr7EX0oWLtFOxaPOcGJZKB5Y8W5ovKYQq3KzISK3dyiUpXibFbHKy4CI
0W2azq7CV9buP3LlrD1DdXBOXR1yJUayKXvBssAj/o0Ko7bC6Gl3m1OOPzZMg0o4IYjC2n9W5Og+
jvBPsMTJ/PlJ32JrA/4X4Fqb+pPHs2EINOJ4IGDXM/Ie7Z98TDqKJM932KzHgt1ChrJhTZ+iC52U
efg9z0fAvvXOTwzwObuN32f0PnS9O8j2mj9pDVwKzObBcsdxQLv2xEPXcE2VCzSE9DYolI6CnINu
TBSozjYmFtWGGGPrqs/YIWptQK2O7Y/cza1l5f6wakwCheqJTb7FLHAwVLGhes/6ak8WIQO4YgeD
77y+30q68qQpasjZDqIK3tt4g+EiOpN2Yt8lJtLYsGY6EJahwpENQq1YTpVbYCYCN0ez2YXs+J+N
2rhNP6rXbykMzJKfkMfAJEF4eZwdEcxxaWDMJV8toXN2zmb8xPceiBM8P67M8fs4vMzzWdmDhzPF
Lr/w5wm59Ka8O1qDR8/FMpCQiC3cxqFji0LFQ9Pm2KOVW5gvsRt0HRQinUQyb+lPnr34uAPG6Qvg
eywhPW4CVpYmsGMbmtfk7ejH5etl/n6xJBUqHtMWofE5DX6ePqa7Y7+P6cKBzCWVUi8agaoEFlXl
AkQQj7dC4TR9UF5EI1QJWCenBXgZNnCpfN4E6+CsGX9uH5byuQfRQYjzjAOmxuQ70UXT1FX4Z755
mB/wfb59TYF9I3p96aV4kQk4vCe/UyncQUJFL+SPG4pKZMz27vgutIV4JSnGIqGGxJ9XhVZXenUG
HgYHhfzXG4svhdJAln0+g63tC/Hb0lQZut+F/vtXow8xq8/Mu5wP9l8hB7wa3/yuhMzZQsUkhRz8
FFIyVGYtLVD5tADO8yiaKBUoXdeoVCJhkmH9f4TKcdZSAKXfD7UVucitpDEsqZwVEfE5IARsKvI8
QuQCjs052fuAlGqxJQQ6LmPLAZGxeVGNuKjC47GFlE4TZIiP2pI4YIqE8N8UMUIf8+nwZtySZM8K
bU/cO5Z3N02M1rS9vVqsKsMjrxKUdqxKJt46LLWL8dE4nTUeqAURAVP8fHPbC6p8Ao9Hy8S44Hg2
qn4HtVJQq/GxxZ7J8jHP9/flPl63z17IgBxldR17M4axDj9+agsT3EAQ3bGF3cZXqMnW1iOOniYo
xu5veFHlgOSnxqNoJQ9pB1v14hYRkbRN3uLWkZfNWtRFBKbyfVOI76kILLIWbVIxMaZk8jLF5DvP
pxHPjiq06hSxreNpsl1aaThC3e734XbS9lisdFMZk1HDhloRe0M9nMfY6TSrElzQoM6c6GGrmqkW
bx9tq+i9g/DefPTyWHo/7mq9mjd1OYKNEWQ5KtjADtkhJPuVwI09CWMuzYt6Ub0oAQC4pbxNyDKN
SLWq3Kh47hq7zCf87Aumo75QHek/QcVC2szuPCoqGBfcFUAEvgEoGjSvb5Dwhj5O46V98SKcyNig
IaA9Mcgd0JjG82mDQOuxOnHQqNzHvoOow4Oo5Qr2nkQR0OCSos8dRBUeRCdJ7DiHrgzOAWosMErF
G3Cu5OttvtyNnEp1fZAP5pkDY1TOlYQ6uqOxvE/Kt5mYFuE2AqklqJrZ+riIsRQ+lZfHdIZpYJrr
KBB7CX6UT8GGLCIuCfuzxek8K+vqxIiB3GHXJSgdXqZBWWUnULYBmaLRaF1v898UUp75seyEhcLH
tFB1PpTw2aFHrlX+Nh4niAD802uyFJeaI+kisdSmclk0SRLrwqFo7oQDP4czDBpTp3gTom7rCLet
K+iThLloa+v9MrnKkUMAkfKJ3PRtPJa2uZ/G3G/snWdSE0qSw6eUNMcf1/N0nIAj7wAOtrnM2u8a
g2pFatfojG9uuvTUWheik9Q+vWd+9HiObfIcq8+do9809uwLs5nr815uxjt8V0gUngSGS5qnZT1z
9tZV+J2KGC2RZOBDIzcB/2JJU2kywXeVE/pyYWb/0DcKQQbzr/wE7q1TK8Wp1a6aPrgJw3SfuocV
uzxT/Ptjhig+dWZtUOtKhZVtEPU6HKG1UJY5L9qeC0czR5TTvGzKyIk24kTNxSf7QomouCI/M1AS
hJ0aOlfjlGxsugmZJnKE9xnQOi4/9SAnH6G/YgRDrTe2+gnmqYMnVz1TZqAswiH9pp1f3YQioYqo
AC/8l+N8TTaTktTqHT2ccBiRgRiJpLFjRvYvWJI9TBfEokmH+Zm8vyLMsrYxoViRZMS/idVrgtGz
O4jdqBOJXeeaFPO3gmHbZ+55O88v5hCtwealmfFWlo/hrgpJLjaxEoM9p/NwexsR0ASLKqezdteF
J4E8VEcUwNsZ7BHqX6dc2JaobfotRSrCMMfHbY9h0hRbr/pCyUj0jCAzcFKfoueatofsUNv3z+r0
cSFpgwAl5hQgNwSjRn9+vMznTYHZhbLj+WSX6WMy17VKQV2GD5WrukYsPWpJvcIaN99lI0y9zlsT
+AQPFyPA4fnBCdwgvjh9PD40vSgUdh4VQBcMeB+naae68avDFFkWswCgSxZbZRnDijKkWyZusbVU
y527xFtTBa+wjNgV5i0f8DHTiW7piSbzzElNo1zquLqb8cdxHE/LnttpQtun37BatnVsE+ibutyj
I1yjlybNu9D/eF4pdBqTGblpLtfhA6wimgFlzyHPsk1DWblmKycRFWtLjjVbNvxuX60LGZmLXNYF
Axx+PVByWWMSf/SVj4n4ZwuOH/aNbxx74aU/1jE8vy+Ks0jzZoNk2YXeXhMubfPzlaTrIxbIy3S/
GfPfGNmn8Qe8+C2LS+wyS/DDcT7Pm3tr6i0XETyw4nOW/xZNRm7dxWdN5o8PpFHEMzm9nn5sit1q
a5+f5Yq+24pV0NSZNLgbkekD5irrRMhjX5jDP29s38jjYmKfBdEIl7CI8q2PkBsRa8wUDp4oJFde
XLWhrfa4xEXg1TR13AD/VFRCSLYsGpXAvMKnaNbdlgEZEQJbGiYL5VIWNcU2+K/uEwtLwn3QsdeB
gRRhDpT4OAdnn0hru01JxEXn+x3TtgpcgZgZN28eUL0Vx3jHzsQ74WkM5i8fw/E2a8vKwq3mqmmw
JYdWzvfzuS3vUDN6nG7HByGawACeIQ2RTOpdbLsgqEgkPH68jKeTe+xkrE2EqWHY7WUy/+NF089h
fIQbOTgO+VmroS68QIFsRhd1vz+nvfos5nozSRZIn440lWLTiKtVpq+83L7yNuo7BU/leH6cxi1C
bbFF6Ck4olUXsljyRBH5LSIaZnN0Z93Gb/vQA6vTB1ZsH1gYVAqkldc7y16V42+zzVw2RS5tfyBA
CKiqweSxrBrDg3LhmS3XvPC7hABD96xjpg/OIGA86j5zSGpHKqHNt6Sztfyniw3/sAu2Rbpb3XQe
NfAATmz8cd/Us2VglZUWXMhGow439Nm/ao917f9C0zcVyBrvdDhTSg9NgC/8r7YSxm1YJsutEhjO
Oo4iRWj+TQXXYv5/qZCTw+phgjGRs5eL3/BYr59fjGL6AmTTS8Sa4FJUFvu20YAKFVPoZApRip45
ZQlYuOZZ7aZS+wpsnEXVhlRApH+BP7bI+JJ0cJJY+49/fwzn/URyX5iOKRfunZigUQaplECl3KJS
i8JtZ2UNpxOSqIDE1g1lvkAf7ZCKvdD7F97RzsMt/RWhw8HluOheIJH7vItOFnKM9X8eLwjOvJfv
GDfPXjXb2vZ4icbW4WZ9eDL5E7vsuqNa3FHhnoA9GKRijmYHoayKnUy4py22y7rwCdBirMO1/z3m
QWsIk/FPYB/zCo7JPccA85plbL8hLs/3F5Q9C5cdL7Esw73kK4bb+5DqIrznPJwcslnCU1qMP3k/
xWpLe8+29H0iGA5uno9mB7eUWbiaZi0b9i6nCvmFbX4rp3aRyLKABCfw1jvaPJc8UCTs1Yg3tOOi
8zLG/OGp7OKYSnCMH+VgH8D2bhrRHIXoI/0zt+xaSCmkgm92DE9lU6HloaYvpUjYKVZyz7XoczbP
sn8PmaoMl5JFBOXmJWfBkUjhtFPFN32oP5510B4ZGQoVhiV7w2kAty/39+GyJanrGItIJbZPuDWh
oZFHRe0mn9Wh5ZSvJX61daRdTAgEDLLn3fXBMlaKZ5s5mr6OEQglwC4rsMpi1xvonn02Rh6TJF6t
773motJezl4qeRNSydcWT8UWz6ZtWuvHs0+LVVXMwl3z7qbm2LK+dhm3bfgAiqfnTBy0dU0rK6GK
nsumUq5DqV89M98+fyiLiRj7nHYcSyP6T+vMVbsIttvnUq3uuXh+BLvoFEUg63g/53FZPnFDXWgM
tisDed9rzIKF1NlaTm1qoNDh5erAwD7YdSJlKP1ZL7sT2dpGG3vFQupvmjltqIvzqNTfFAPh2+Ng
XcAeu2RtUUa346VbwdJt0xcrQ51aR7e1+Yq7J+mGYZvrbX6D8Wm2Wh5QrxjqhaLij7vWMdIKqM7M
IXIBnirgxDzF1SGgiHHEdM8v081CCFASOoBizgumpl0O0E3LcbhBrsfB3h4ogKf9gu+4q1tXqGuT
PP/zr3845I32uW+7gb9yfbxd3NbuBJponnm4f3H4GxQa32ODqZJCPfet5fiuKKg0a10DA0dBtz4X
wKaFg4IkXuIgtwJRTiSq4LobScKeiBr6Jyq++TGnP9btAYACMQ4XAMGi+RnG7+ZAvgLi0Qft67w4
xtJCMpuILL6DHB4MY9dPy2F++VuqDxNbzzMPTVL4niVzEh6haKN7Pve993hP7F3QaEg7b1JZQCYQ
QxCDOavtS6E25/l1YwWZgCHoXfc/4oPQ9g8v4/vwbTI8ohBpQkSaIOnhC0cJ6Eoh4y+i8rU0VB58
GwHcRj8NjyWA1cEcX4YhlJ6Rto5DIA6BGMh829MB5vZMr9NRuU6xAq9iHQIBpxohkwSZwVQiiRbi
cRVEBZWb1D4grqgyW5OIeIAbUQTA92q4bET5s+eCBTRNTmjE9HbnN9vL9S9/Ilwn6O71f/uSZTlo
0ixr0nhRucC6hYfUFEwd8RAoo4LadIMYDYb1FgL20jUdQxwPZ/rA/H9PqEpmUthrp8QMSMCq5dTM
df6OH5j/byj0SEjVRk0r1AH+QYyBBPIWCRSVRsBrQx7E3HoCdiudRkDoQ+iWaC0iF3stfzUG4P8A
u5YMjdW/3PoN4n0hRWuEauHU0204TQPDb/Dfty6SgD0EsgiOMLTtZDw7AJyS73LoC/6LzfNA1HS0
qRnDvcDqoPq/1qT93WYapcpRQsx+bOnHTkdj9eEnaJJurAo5t20E54Ku7fiSMM9OvAt/2zo94t5S
tOJh+TwnKocLk7r83HoG9J68/0Ljgy0CjkP3wM/cP22tDocw0V5bHG+JAdCmt690mS60PvOXfdLD
Q/11Jf7BXZYh8ov7p60nh8dX+k5GBFC2oPqeSl7g0owVk6ZSFwI7iMACV1Syosa1lEWaSuU7WFGi
tVmxplLRMVWdQsWvBWEgGwbFEFR6PJdcE4qVP5cOgnedRWPzVGo63UajIhCd4PravFlT6WhHnbYj
0bgKpkObr+9oQzrTTXfipkH51PX6pjO8ozxX7qjOBEYVNpKuT9foTeKXTKHi+5wRF6zr1msxVjSd
i0KlasTpolHbPvELnUutnEvlBQg2tTfdE9eVtJZKW4vfEcJaNiuPHW6a1tJraxHtznBGbf1806p8
pZv2/IJh/cg7aug1ttprrMW5wI5aNlYoNUh9zpQs3HjcJAm7wklCpN0GHRWb6oykaS9odHhIAY0N
G4PWkXsapL9X69ANHaKReRogHVpbEMk0dLZjGrWj0UEBemfb5piGznRMo/Q0CFW2CNehikumUXka
ENnpCluZwwrqY1s/sfEl3GeoyUG+I3zI6Qwhoi9cV/aF1Pv8uH+ZX78QCCA5xjv+Q7+WXDNX/Iwc
VAKsy8cfVxoVA3/xd10o5p6ADYWwRMWONxPYYS96nxGLCJBXKCIJ5Z34Df1185RpZ36MDlbONVnO
7/LvN36V5i+7LIpC+CNgOzUlX73A0yGbwv/zzkX62UGYi2gt5YHH8Zj/v8vLqX32C+F2m5qt7dNo
rHd2yfjvu6zt3McysI2v7nrPpCfHhaddFkvuJW2eI7Bq8V+O1i69kXuJz7OcWklhh6VSeC2YZzmP
unEU8op0eq3soiwEhQYxYuUadlgoRbVaQy4p5DVZBI1yDqWAEMlKjx3Oa9ih9XKxhrL3M4R4DS2d
ZKvpTX+Sde+6pPn7HVZNIe6SIgjBTRQobPJSs9EycQo4tqiWp7DDmikkhc6jHvEaGrLlG+0UxDni
DFPG37Nr2LbA837NDcFd7vBKcsHTLoTqd1HSXVaaX5OvzyGXa9hhXRaSIykeFLyKbWuuqMVJFk/n
sMN/KMQuKBwV3Kb1zLSX2avnsMNvyMUuwIazM095DTt8hkJISYjUreTLDlu0EBKKMhXBGhp6Wa32
suqVjMt7i5/65Q8AzfQHhGbi/JP8V5v2Blmm3rrN4Q3mhdXKbEXt8PKZUuftMVCjnY0YLN+nX391
aErun3YFgqqsFgoZMkXsFQsyG8YikskzRwYRce2kakFGf1pMxgeTWuz8tx30jsyGvGUyvSeDjQj1
06b0Z8pkpLGC1nyzJqPzKJMpxWo6XNJ6U/pjYTLeviP/hFHAxGp0ycFk/LxEdtTzpwvXvRQi4+3o
DqI8Xf104RuOCrGfv6kOYrQd4ycLMhs+JJHxZ9MBD3UsDwWZDReQyLTrs3lazYYXSGSaFfs1T2R0
24mPWDxNcHCfH8OGGchkxKbAUm5th8XL9Av35LGT5f95a58UGPUVJjhvr2FHNaSzHfZtfNkXVg63
GYvg8/xGThn8Zcspo1ComEsCOgmNeKa0tRYi4Cd34PCLLmtcOwo5vcN9JxN4iYiTYxoOJyABK1JV
Al4W1qDva1v4Mtx3xvj928KJbI2tGRvuOx+nEFwZ3o5Ywa5nWazlcOEJ7HqQXspgeVXTM7o5wHPy
KNfhss9f93leBIywoWgmsMNf9+mYHlOjvcsD3H3qyP7DPnYVc7twunbm+lZ25Z2IiJ8ghDYCigke
+8ss+2NfvikTJ1TzmGTMcdqOWPzM/dPWFVJOpxR+OobeOQfrqTAnFYqoaUVRHCWZ8jWVHQKrLVYx
A8ailVR2ZKlyIfYQS8B2wI3LEuYRg3+zM1Hpi0QoCV8wdQAjp2Sf+cvOYEsRRoTcGCIG2Oav8O87
bdDW26AlZj+sDXofrxz5Ha+7Ajitr9vEwZqNDX+9TI/fA/7bf8IMH1ZM4t944oW2dS99CXa+7p7y
vetU785Qc7kOE7dOW1lltfX4mZIP9GJbcM1PgwjsWYqI0MK2u6JyEskKo60UJ3OdqJECeVJ7L+XN
uilvl31SxMtZHLXY2BE+E1agjC4aKf55X5qzFiO7MH/Ha7SqIBDk2gp9pA9HY7oVfswU5zP/f5dG
KHy1S1dg4pUJ2RkLFITkf9j5wnwGAacdNpZxj7OdTb3sOy4/Lg/n7bRWXRFO3C/zx/XP5gNr1Ih/
tS8r3oti54JVF5MvLdFyX+TVlxwhZEFtj9GIJlf/wn/fF772CXHKKDVMEKHB6RThb1uihDYq6ls7
LKQubKAZUU450Ix/3woJ0HbF0C1wlfOSTw5HqNj26fm2k19yUUeAFhJn40anhcY99gjttRH9dghb
WIiK7122vJfq7GxYBeHmKJA4cf+478n6M8MG76bPQ50bqNt9K/UVx/j3ti1dKshmgvbZX6VwGTpw
GUqbCNpnBPqxkix7CydFjjbRwn/fx7Gyny7nkQ1o6loZMuwVIlkfChFjBNscINuW04992t4X0SCG
SG0N+W/j0RYJOXsyV067qMTkU+wGoNPG73UbkL4Xgx+lW0bfb992IWY8Y0m5zX6fWOee5vtO66wW
mUiwAWx5HYYZh7dfAJndxx35X3japUbb+/wlaPgS4iH/h4UqwEbakCZiwKeHSJJ10PnqO/orlYo9
zuck/CIVPItJC2Di2fGCC4AxqD/oP5TzjG+TMQDVD3tfl1/XEid/OU4ID/r6Mm/Vi3c+W11VDvIe
SpEP43mkeupgTJ1Gy5euY4g8ZxxYBMcEHBCzp8OrOmmia4ItNcV6S1vb8aZdXuIf7MTPMF3WSMtD
U9dlA0hUALehUfJVnC1uyK4EzsYejfZ9GdxqY2F7lenR/GERfMhhMLwRnje3+z4ywZGgP236GQaY
jrLJ5Dicz9oEwzLoTHfzlQ7j5fGhDJyjj4uwZa32HyOUjaOhkMiDNqDa/T7XNu/ZglD2GSp7OVue
6rOVr+uwNb8T3xKIbPrTKuw8d9YeCCaaecfFsuLf+KnHG6M2O69paAorQyzJcal42whPNd82yLWi
MQlHjrNJJMnxmQ/3+3B8T4IQEjkx+ZKMv+6JnH7zrTC8c2ppsoW744+7LQem8KvyEnIh0zNX5/8x
3t9n9QUVXghUXsLyrxuZpsqiohBV2K4ryX58MzJkWEY7tfc8D9rQpkIESkAw2ppySw3bHjZkY1Fr
m7HrIbhKZZwlE/N6o8fIKefHLTnXr7YchvP1fSCUe5h2dTlO54O5L2DvQf2JbD1EsWUEJ2phgo4o
eLab+xb6tXdtcdfbaJsqaYFbVLrVaD++gelynG+AZX+wW9/VSMNEG41FgL/43Y4qc+Sig63irGvs
LvyMY+414qGb2svpV6MfM+tx/bjzKFf8kHpmTuZVv3GnmjJbPmuFWetwJ2bsRKRBsYSq6YecK7SE
59+45ju7HOA5pqmQ6MQAc9d9mFjOxoT7rBT+DTbhNcGC4HxI0qOUf9VI+exM4YelaqeEg84Vgr7Q
DWH6PUEQoCfo2gRj+RtCY6evz+LUYgk+/JXRIEEM2YVNZ0DvHi7TMt9v8zXRRdULBENMC7TO/IVV
sZVFsKGHx5RQNb2A4M1ddUUhGQEQ38wXC3bo0RKX8n5UjsqH3/KqYeC39OnTKHiFnI/RlA2yfMOq
8ImgQsQ7g2WFIDaZtSWGk3Vx4O+H6/RjPG/0QXaFaPIqajwyNrclDUC3NBJcwxsmak3QjVfntpzQ
Gzh0jdjRxh3IOCBCEUE0J92HWBH02XY8rohZsEVsw9yk6YOiGLWt4zRFW7O1pR4v6UdGpH3iTKDn
8ec4KFmOO07TaX2cUAx1e1riN/NgXydgIjv+RXNtaIVV2L7ZJzZvnu247CCXi9Jg0bsdklO+b4K7
YLVq334wGxp7GMGUPWIeQ6Hpk3so6YJLwK5svUe47UJutrXgRhE7hEb8C/dB//vj/u+vv0v7Y1TE
643rJnOI3LjBfd97axqrhdpY35ORJX8EVVD8/nfD6Z9vKfBSjJu0opmt82BHxjT4Z2XWDX7a+KIP
bL6VB/x7w+TbP153wY9zYxGf559puouydJ/tR6FQyq9flQ+7PFy4tZSuP/86/vjL44UPT9u6rxMQ
0wmeKGyfQCOOv3WSAo7/f6jhBfrYHx/OSGTxsPw16YzzwWXhj3YcD4QxFv+MduJ/QJBsvG2vvxN3
0LhYjWdAbRX+DEuPrwh65z9Q7WifFuEGMnnz045V18HBsRF0/9zVtW24iEbywA4WEkzou/BJuv0O
39AO7qlj5yC5ZwcNf4N149CLQT7+TvEL6PlWwRa419wLAO1TcXgeoTDCgtotCvbHTNrzLWrX56VX
4RHrLQ9pP+t3jW36/sD+4EMafxqHb+O/zZf/d0whv9MxCBGaO0nkD3+HCPUsICZ/sAzYwcR5KIHr
p3vY8Zr8XSKGQxt5CDv4sAiPonhaibYEcY5+Ho4XQ//61z//acdh1KEuDFjidcdBCK3QuhBlwJA7
F9LFtkOcZWjtU65NFjB40T8r1x1bEjV9nbNXvHmwZbTwUjyH1KWLvtiDRUp/Gi9aE1tXBI+uKp9P
RHskXsYVPBOBYyOIT2LrFv7+mI5ff3kfj1//+T/+ePglXUKfifaYzpm74ee/y5XvRZN44QBsjJv6
L39SrC7qQRDdtR5sPvzpf/nyR+W3fWsOdDDb+kQlDEqfiZnKHmo0/N1/Vj4X45wLFzzXw7Y0UDkE
N8/z2A//rlR+2TfxgMHalpHv//Llfyknnq27qYrYEpSejUz0VUNNaOz733/5F4WAaHuHv8Yu/XdK
80xWB7OjbR5rvP9C0UHl+MVs88x5oOEv/+nLX5Sf7tfdJgh0hu8v/6fsn6hyJq/zrK6/DMuQdhK7
UpSRwP+5QGnwiFcxSYhIiQmrSiJVYFWBbZY3pQtpOdgtitGk5nQzIR9iL+Ghl9y5JqM878P5dV9A
EWnmmcjyggSo806iFOF0noONiS8aIR+yF9NhtKVtBBV5zwKtJnegVsm42/XbLRF441X6u0Cts71K
JfjGK/RZHEI2LG2nOpDlSdA83YRj9xt2LK3Uh91LNCNZzSa3Pugb9+kinKZeeRb8z3/5nbY9f685
PDnb3IblAwcLDXb6bPa4z0X6BdEoUwFoSPCrKe3epzkqhE4r/OZezuPldPiYLh/DD42EP52C/qj3
sa9GU+Q28tZ2w9lqcgt1x1kUc3DnkzGsD9vZP7Q7KtHP0juYOeKNl/l20r0rb3rloDNzNnpiy3o7
aqvwDksOzylnKy5GCDTybDjm+4CgZRpVb+yCkSj3VhxcyY07KR5dqxH0RmLvfFk+Kx6vhFkwrN05
PK6nVPSPyXmbLy9bUQUC8VG33+EIU3QPwyukKsxtalZslYtYBxgyjXzr1+F00k+s9jZsXtS+wZ2+
j4mg7UOrxS3Ag3D9kVfShtfH8v4XzP0zEubHcJ+OeKA8jxD+W7woiHOnfwmzr667x0+2hl+C1NHt
fnj/uZhTHJdpObwO09m8xkWjV4lGF+y3Ia70Kz4Ox3eI48Na8Xc0auJsMaxo7pwT/AOhkH6YI5gu
F5rSZQyY25genkgkc8lAxEHsnw+LOcNPLU++5QoTSjY7ghUZXPaPAfPxdHrhf7pbBMPbCOxxgBGj
Rm4kVg2gtpntC8wx/YVN43Ss5kXiPCumeHyH1gKgOP6YNIK2rwAIlvhHISJVYBe8QMmABbB8+Qnj
5Mw6jUDn36KfSv5E3tvLg2EiNSLqEnN9HX9SUQM9iiumJUdlrUXuCBUV/lEJ+EOSHkrpVeEaA3i/
dFOddoDL/QFPab595cFh5gkYRUYvbmu9vdi4HyYkV4ustmjLLcVyG79cvARUMUmhVLj6MMsvtccX
kIswT2X+Nop/o9Br/RXkDdrSlb3L62COZzy9GW29fTSlpyMcfvEk8CEAwjCXSRmNYOTbabyM4ykl
MpHbbOAvR/gtzPTwifGAaAciqx2b55Iyx6kxFVdsDpdlOIrMoVnhfVi+KsTyyt8hvF42i47jlSBE
tw4r763qxOfZeF0njuvlPB+/quciOaHFP3wmeL6c4f1B29h92nN/uZRDwAZ0PE5cbPB13meCrzHk
av7kCPvjBkWgA06dhFKKzfPpbPwnJ/+XYwBSdhlRZh/463nYQbPPWiFrHJz4fDpZoNcdTN76999h
VZfcoPEcvsGUu9MD5rjtESh51wneBlevsKgpeNx6SRcSEKxoxAH9aWcZGaWMhoJd3tbuak8LI01P
T3i8HOeTJp4MU3o2wu7eKsu4cssY9refB1ARj8v098cIc/J2iajcthnnDpymTa1sBx90ng/q1lfU
uUNyy0RhvOcO5cvJUOsKhXu4bSjT3PN6hbMqgs9P9owUCoWQJh1infRCJfyFVQKaUKddwrIWOyJs
qOxJWGK9CYgZ5eLqOn4yVGdwNM7sXdmWEAJVh/3H/fraj8YDAG/ZLARcdzgw7eY9HxUoAorg/ZKH
suPCe/FoIUxR9E/S+wr/H+sm95gVmTgn4O9G8o/ZXaAp/aYDc20H5+eNUBiwkdBomy44CXiX3RZd
8Hl8G44/3RjlPQK1EoRQeImd/7tgXwQ7h7kH2jPwtArYavEsJnQbZMcRttGNOw33DYI2O6R2I+xI
rE0orfeDI46NhGRPcofibnphwLlb5SWB3zxdDMXTtEeUNV1o3/biOv4Ij1Y7fmFI4uxVTqet7O8N
fyhvK2lHYAh/fYs4BMNokMcepu/9sjAgbgfKmu+X+8G4aZc7GkrDG1VQbR947tUktv5ED1w55NZ/
X3RgUZg/28BlwSDPvpcoDAh0/MoYQ+64eGG9U6dF6dlxOYCVBDJCM4qFbZQXiH7W7RNj6PksDwrs
7JBigkGwtjnm3V7mu7Wgd5Asy9irDsR5zJdcjCG6HOl/0qS7OJi88wiDzuTYbaUb1ZMJN8aNXpJ6
eduFzGvxUkts8wjEGImgHQa1XwsGFFl2mwdw+A5e456D72OP82P+dTqfB4LyoMDaZNjmbl5ElBZs
qrLDpND/xCKxPrDC8D9Xl1Q4RBoigwM0OxYX4FBvmqu4EDsFLUf8M3iWxKEYx9hegG2b4gVwqvrt
PL8YdYWlqFskKjvvyDIJo8g87vN0Od5EeXbiPReupIHX0XT0J49EeFDzFsmG9DJKfxAl3XAhD5OM
wM3NVOI8ChdmplpSpkF5g8t9fDP2ujFnlF3ZjrLcQvMBuLgzg0Sc0TxGs03jzcG/31xk7rcqLCsU
bF4kqSYMnVghVodFLZl4mMsO7m39OnD0ORc6KptTNlV7YnmHqeCudU4zP6h0UoR2lPlXibVGHOCT
PKDcvT8PbBlpsiqMcAjBt306Vek3hNYNz4pDE4C7k7bfVvg8bUMASSkZfdt8HoVnxRwRg8yfTfR4
t1dV9OKgXFVn9JiU4xFvA5sJ+1a+teco5w5h1gaPl0OVwePlYMA2qTL2xJ4Ye7pg5zJEs2kAj8Lf
hbiAFpu/eXDXAObO98nwA+dFtpfXet6CUrRae3cgCPaJFXEjfhgsi+4dvCpOH7vfmmC40F6pUuW9
UK2uBuHpkJTDEfsoamxR7WQk4HORs8KBghJJtKerxHlv7q0MObSSlhCF0MCoErzPodUtSezlRFW6
qi2hxpWteWVSZNhIlhWlvHnlU6m0QYMbpV1G7lyRJJlQ2sBzWSDhrB22QyQJQYmlEmkjZMfrEpzs
Z16nM0OFK0G0TxIh2ToXZo9ynXKukoERYqfMcydjv98mw7I7hay/obrEqhHJcYrl0gf2GF4tO3sw
R4+zNcphZEIWwCKKuuvcDn7alPOWBvWSQPheq9ei7EFwNhYKAkRz/OGy2b5fVmbCcC/jdiKpGuWM
5PJq7N7kYvGEJbfjwPwrQM9yQ6MqaxPXj/A50IP1bHtY9Rc8Mzg/yr6AK/u473i8woPInJsZWfb+
o6DOE6/An9OWNNZ0e21CFrTOQ0tbYDsoel0Cke+6j0SF6f8t235T70VF09HYLEZbiouKHTzUhmZr
I8Nqm1E1MqQb4RFi/04WfXaKnvT810D0suE0scYTyiFJadRxD3bC097hIpbCyXDdQVsiRdmrWF3V
4b/i1EPk0HcsT/hRPkAbetE7uKAMVGDR7vCDdzxK4RL5tp5tq3qHYSUkH0j6J121Q+uH2oZ9Wemv
KepAKP8GZFjRsL8XBIQUApJFc0wYx9XdDlvQXx1CFTTbvoFyrtLFR7SkipuA1qJUEXhCmcDjsWU3
W2avskVx3FiwYf5cmxfKC5FGZ+YjRaoI3nHunrmb2lXAfV5fKgcpQlxwBGVvISbH+7AZrOMUWC/K
W5w+iyU59xbMiJxAULkrw8S/JfFR+ewQxkabIJXiUk1bGZ5cJgqwWO85u7wcZyhTBNKXox7NFqmL
gJwVM6/j/fiefFNcvFTFaXwujduLBKSviLXrMDd6my5QiPiZupys9ERbBPR9KhQaeMgwoFppZQKt
rDRE6IgnWsxhe9aV5zG2XaVh5JXuyAaIGi1QRlUsfzj+OJ4fy/RNY1RZGQXaN68a6ffN18d52Lkm
mREtXb+lTfYNy11LqomKo7pF3JwunRPd8QBF5hBjYGyonucLngvVn+3IIlUyU05VyCEfzB/T3TOV
ll31D6fEJo2iezaUrISg2vXT/KEMbecLFCJC1oKTH/YgAKlP8FaRtf4uRKvn9TaSeLgNR7UCSawH
i6xqW6hwp6LiCQuWNd5uReUYFH9zQ553KsGJcnl/Lf/pmRskVfZshrNuo/pIrQyhLsQbptLKTqKq
7AjzcqmOKIsA5zRvgoziXjpdU4W3xANbxnVVJFQth7Y4KknlBotsu6SJptjv0INNTM5HilbgSm29
lavA0kooxPsGPzLv20RZ6J5SlT6sd+wiJhWlep+WuCcR3cay8DtS5oPNmO+p3RBbKH1wFnkdy1G4
D0QLQDOni9IvBCcquszXrC8gfinVctoofBJsBK8nr8vt6us94ikTRYAe5UuWwavVcjzA3ha3ocO1
KRn2FOJ6LV9XHrEEzx68VzSVP88+vXjoCH5Xe/EO9gwzza6SXPFmMqSVMbVoteKO5y15pXN9+Gsz
5Nt4UcuYung1TNxa3lN1JMzczul+vRZyTzVsGasJ9MXsWhF7Jyr+gWnttMWNUvGuqlYdKuzZO208
XTYwqFgry0cDgZ/QOiOBrBViCTMIMQABQi7UyniostBcq4fxaqGBLTZVhA/n8xkakDT26+P9LNaP
GBSYp8KBXlrW6zym9ZOq01ScbFDAYn5rF+DNbEeX2EkQpW6ZMzT5foyQvAGCqsYqom2j7mjubZpV
9rho/nAxN53t6LXaU4XXx8qypEENku0TLnxQYtz4XPzunDnbAP6FIJCBVAmfLK/taun9Q2WG+bN6
tik0m0EcPoR8ukomgX3ylzl9j+EpCmmFrA6aeqwsxOjo3xYAonvgpSjsXzbxpjy9on5Pi0Ub03tm
w9gl8NtoluK944DRaAHwtq4XzFLC/ZaMpxMKnj3V4cIUaVyo+jz8+vOw9sC1uFixduKD+N15nr8+
rstTHbx2+I1aiOnk0Z6eD6HCutxPln3Sxy/j/fs4crxN06bC5S3AWSx8XdptV32/YYRWOOMuS67F
nzRi4rCgpihvii3hsceebAMrhq80qF+FWxiu140S1jLeWQL26JsRrzgsTVNMIkTa4kL6rRYzTfP7
F8jzVdgltCJtV09gHlZy51EjlhKILgi2x5xtYoG6SH+A5pcLR6zGzHjdFhFRa3woaKXFVgucX+SS
5ntaEGU1sIene+7QdI0cO1z1StgPLrWL2phql7Z6NXhARkQXINrd63Ac1ZhrFQnW2Lo8zdrP1g2i
LUNwgeUz/dDi4V3kJ+MacWvvuVQt0hZNxOE0N62Lh2RdogQicHsUaKY04LAhMe7zfToRJkbUtojT
vbd1UoaJuwoxt+o8uLEdpy1ceOGL8Ro+1ZEoVCfC1Zs/u9Bufnm8waLyrMvaXDOYu3W7eptSA5+M
dnWBYKroz0I1CDVDUHgasM6C1xnf8B5PwV9GkzvIt4/Z3ACN8ppOL5JVmOsskIb6CwiIxZMSsjKo
qjRUKaYCAAo41CzV9YBELNBYaUeEMcQJIV5s1frgOyx7v47C4ZqGybj38fQ4G9ar0ith9GUgE3Sj
M/vm2wupS0cBB3kFxlm7/T1PiMzsVCQfU3Ja3XYZUdhw226kCS1+Z1wS2SaLQe7vI+hplI+bHND5
DVNtvGyO3Xtstby/Hv+ooh1RzkpzwZ30UbZNwBO8MtqiZPrkLATirNxRMb4i1hxa3PLTSzRHuP/1
WETGkgOTQeSnU5jEX2YNHWu1xRaYHzDXKJ27xq97saOWekjEyXBsbwFws+N4PiekX20rNywl7Fwt
+iooLymVh+L3UJSE8lXKlmHioB0vrvPboRoVwYC1wnHiqctEsuVZZeWVWDlFqUtN3tTbjNB69keo
CCdGI8K52CaXdyHnlzFy1Mq1h5qX8QyAFn2b25Sq1vMLzQQMfDsU9+ll1GIZFU4m6SygJNtMux9e
1XvRgMVMWahv0h9WYhFtSX8y2AXntMiqfPHvaHMxlRf5EL1oi+eiOBXZioiI51TXmKZvQ3GyQ/e0
Qqw4UIk4F+YKv7RChUFvMVsxH+PHfLPRE+htteAQGNTam2oiXihiRxYw0jaRqo/aLri8QhEc/rc7
6o9ULmzH7YvT8o3YUgZWO2RgGyiSJio/wJCC4kd6+J+w8aq4pFy9/x2iuvWiWqC5regEXe0KLSG/
a/zjGXXLjwJTWMmLggJ8qaKT1ympbT9CwZZFjTW3decNOH6Im2TqxpPBKqC8C6KhzY6X7AUt5Ie6
mK2nn2/d+XOh0V4c5l0xFUjfT7BSESqm/tlY3KGQqlwIGKyXLhT1W+5Qv14C503tKz8Cs9umcxUy
mWDJFg/x2aBRHrF+7a1y3eKu0Dwxfz7bUooxJi67hM4tix7MwnCH/e6vpAODrOuergRmfc1XiHtd
hm/T26Aa77U4jKLCOVuZN1IhO69p6bIWdikV8nZR7sV6hB0vMpcMIvDlfA0BUdowYaomLrMu43ff
mENu3WMZ1eQvya5KaLDOwwVEoj8WRWN7r8Iwz3ss0Osir1TZpL+5BoL5dt5Y4nUqz0mcFiJhcjF2
ytJSdKyQ8fhKi5rBSgQ77QgyCEWYC8gJs6AXPhhlDbl4YnBZZVZEpMwa02Xj3QlBjzNlas1k22Hq
i4PCdoFcygHlrsTRFFSZVPmjUeZQ09H4TZQY7C6t5IxorB0RCf9YGz/nIK3PdwR1hHSrXFAnEV3a
oW68tQaRyTzLxCErhnXp9UuPBeN2SPWR8nQ+UaF4PiK+1GDiKJOhg10xn6ovQjsuiPGWO87THwCj
u5aK7bbDHYgGzcSWlK2UwrjFxEiVEqEuzbTDghOWAGVWpXOx4yEWvRCi+EeVtkh2iAnh6rTOyaDH
+e1NgSun9ykfd4GQHgG8nzyrPQEbabmLOuTdBmAl7jtHkIcsYu3sWIgnI3DvZVjveX/bd595YdEW
GMxxwJ/jTte0EvcFe+WKRa5VvKmR3qoXrJPjWMQ2IQB3LqZaLaZLeTQ7+DCPObtMplbOo5CmQIF/
9knlqfy+sHN9clayzQ7u66TIaH1pWtyPVeh4IVH6gXjykndIYhHpk4BRexMGO66sjcX347qv2aGc
s1hQ3ry5oHzit2jpumhiWoBjKIpWFTyBGVQ78PT0YiEWXKfTzshS5gVmnXsM2ng4V7HGeqFFKqxu
ku+lUt6LjJVmDaFq7EpaKJsSbF9WWK7CpW/xlMoOezqLHZOVBjukpDDLejeAe2/QrBZeIlY6522v
xMmVaxKWPUi1spJljjvCDyKN0pTOYA3bOTdyOpKJEcXc/Cndth05iDL60GVKaYc4yjblqyIPxasB
Bq4tbNxTgF9ZQCuUH/5RpTPSOx6ycEFxjlTW7o+sKpJKxCcQiKVro+GEbUqVzGKJMukw/6p8n62N
hW5lrCgRWCFkemwhynebzjts+j72KNYxZ2V1RTxHGo0AadkM8TiBQxuOJD07XTuehzCkEaipUDJz
ypoycTZ4OE2lZnB3iGJxWn6ibjoyodgLMkjSeJzzdbZQublKRkpQlKWcDUWYCKM1x+HttWK47PDI
RO4SpydmCjftCLQUYo811mR8LkemPByRlJcI0tulFDsSOEJl0lTC/BM+0w55myonijyPHdSEcKTh
ekSPi9gOp2kZXrQCh1rk1dBvlnVJw0mrjBDpWIZH7vLtCPQOxqnCEyrTD3XbtPe3CetljGr7OWJe
LJuQWvQ4RA0GHJmWOd6hHvO13evCmoHzQvFARGq/PY53JfpaF6L8qXBd+Tvi5DsUleARP793I/Gx
w1GK5kptClAxiitp1fZo1rYB248X4Hrll7uYk67k/ZRjl5FdHFhTKlJ4R55J6obaja5OZJC3xVk0
LJYIlCjhKGkIYSlTb4cnW0mxQwO3Mcf4+TEqZ1PE8/QiBq/W71KwRygm1FJlXXTpXNeOZG0dZihK
nrIwfNUsHBFxR9S4sut1p1zRArUs4IM/gnJrxRCRpQFYoQgtY4EHviNU2ccqVVKG/o7jFA5O7Uqo
AnN/h8cpMi5YtGxrlrVSjB3PSVSh+CHPO2I7igBpRa1dhbMH95StKsKtigefwxNUTs5/34Lr1oLr
Fjm67clXhWiRhTLqvMg/DT+gAfZnoqkQcUObGFQAd7hszEXAhKVrpAI/s+m3hpzs6BYqqti4rmCI
3J7m+T6GbpMEF9rTcdqG/RltfJ7fnpaKKgZSE2vD3yFPuSk/Om2GOXf5Ol2tz6A1sXoaHVxtx2Fj
AVLymeETRS7mpoiuPdEtucVgsp2+yv2886324z0AHFFEpmTPF3ha02WfV8/9WSGqQZGvJ9htjq1r
Y5hkq9lnWj+RODwcQ1r3v2la5vbQn15MSCxzStVb/CZAVNxYqjHnRQN2i03hXZ4lBlDueV+i3xAb
xYp0m+4eGDtPDqpPbD+lmwaidT5m8ZlxAXqQ1p0ocRwIVjjLtcbSPV2TRWwyye5uR43lhXaR5VlJ
WJs9bbVlCJRT/7YJqFo7VBmfKst3hPNuQXc/3jTZKScn1TiVeR/Y4R4gkzocgxWbSKv1rPv7bkr8
o1BnO2rddwJqDJznquj3WifLHuVvDJQyhgUTlIAEGZAdbZWr1tt8DX+osUYTxwpJg6jsGS5U79GK
e+RSqbQ/C7bdg3lVBOhkHK54XKyuX92m1ulZx3uKpXzZ2+IsQMOEnaQWO/DJZDGYBq7FBwUXYDEf
9kFZGTXVB2RrUaEFk7LBdZu/X9gJ/fn7cTnepqvWrW+MyuJ53u4+jI89XefRkX7BTVxOge91HM5n
tWs6Wz+IJkRVAvlGlite8i50AL/KoE4Lo3gfANe4a2awaOgusMq+q55mle6ZwdaFzbFFnHs1rq3i
L8CY0V/4HX3Zb0PnK1iVZg8Yxx6lksdQ7pKCVrO2BE/ICnUcY3jCOzRstmtQc1TRbUCyaZ3TdRwW
1tb3RnAWVXAvgQuLg+KLvm6eMCU1LElh0VNXSf7corQLhkYMke7dfDrBFPfvM1rzC2h2tUeBPfks
jh8TgRDcg43Vx+ZRi1mbe6IAWSD7y+oJJEqTquKmQLwUDMmwnkKpYWOI2AalG7oQjwEyDGRB/NyD
QCRQFBpXA/E0FXMHZoeEL8NkWxaCMewYq9qEsYJyXx0h83AVh8bbjWS6R+b1MSPw037rDljmLPZD
SjBsD/NHIaJ26nT6KR1xt8glprd8rUmY4z3xkHLLVkCt8G84yWQ3HKZhtiIWzXN5NfCAdM+qkbYc
jodpmmYDkVu78kYgo0B9SpOloMK1Sy7iPqPFfNH8kSKOsxqJ1e0x3AUKEJh7dfnkd74Nd8L730KN
7OUI1hr/KATs5R4DuQic9TJs5YZYiYrLJdHzaWhdCgJH81GDYc0ltTeocOt7wqtC4SIgSSJTrJlJ
Qqhh+1lu50g4Dv5+G67XXa9V8J9IqgSY33vsrTyAGIwMK4j6B3s8tz7m467xfrRblNi3WE+dldkG
Z++xeqM4XCIouw0fl2fiInNqhN3hXmohLiHhWqAO81vDGM/LdBluu8bXr2IC/bosX58WIY9d2vKE
H34cHlDaRu670bun8XVITZph305oKllsE/GFNHtA2GKyekyd+qHFKfsVjGyZbUYVtShRFR867THy
tBMSL7lH1Ilcj73s0blVDG3rU9PKNdkjYtI1trOXv9HE2RPCiII4u3cxXV6ni27IF01qAIoSQt4B
opWHSPl5HNZ8T7ZCzLlvfePf2TgXn0l4ClxjEQ0MXUtN+QpTuMX0Juc3MawznD+F2yowRAvM0md1
AvDQsN19WL7u4WrxUiTgoC2FwaHCR5hZoUmSJm63yYVtHVUu7JQixz+K58kS20kzARJXIq5e1Ydx
+ekDZP4ubSmT3bJbZZUnxdfoIvXbPkEbxl+DamtrF+zx5QV8uKjajs8H2RNB70NY4H3hjz3Zh6jZ
IghjVP3+CZjOLItOkwjAXPc4lSJnUOEfVXTsjxYM69daqo3kMrRTr+I4hEGRzA5caxlCpoWwvjyP
b8PxJ5VuDhqksBF2zQYS6HrK1h6tuUoadJ9JbWkcUMUBfffiTO5JktaBliwDiBDQkMu7WvkhS1tw
cKL5s3ne/p6UWZZAot4zNmnHJQnvDkEhJcz6PoVrBK/ANG6hWOu/0qVae6RbFzNRNiInGh8KkyfA
2PFXcZ4NG2J8XZPeIqdXIuBbuQmYu8cia4NIJkuR1wFKrX8ewlPULkFUIdRYoMUz0XBuz/a0KOOT
J+YeMdsjIU2ciZoVqD9Zqd/dULsCBxnx0XrlPPYwZ67MlXAdUzgZQrN7866VZR44wMw3//lJF5rO
qVLo0PDYPsx/PBkxtcMrNTJfCAU4r7ytU9U92xFwGVHsKOy0z7/ZB6ZvHJw2XoO5jtNoJEoRloMA
Tbm7jPM07h4jZaRtNIu3gayu1Qa1cV21yuVp0ZEmHsSLGep7UgHS8FkPKeS2DC14XIpHgCAyGfeP
Pg1k0mpJKzmICTs+826jZlMTXFJF1hjTiPZi+VpLLZ4tSyQ7jHbGQkeag1ytcbA/MU9NC02LIUod
toyEquL4cdXkoJfu8Mi7KjlwaE/JW7dZ7BnA72teqKypaLDDImZs7VEcYlCDbxFKVlJoMSThSYIV
Wzb5k2WuSedcbqkiSIxnCHstp5En08fhoNo9oz5EJZ1vDdk7gnCPvRbNSKkRzj1VLGUs570bt4OZ
vhSjNB3TR4XMjpxFG6umCKL7aH7vq1sr8kLU6TSxljau7dycVym7BgRsHkrkzTSKFJ4VXl8VGxWr
Janka0F3qeGiQB5YP59Oe7O9uag0wE6eMgzhbKYT8k4EEhllsdEOds9FtbHhDykTco+kEvXUGMvh
EKqQ5HteiA9AYPF9up5CW0qQfOnRRXoO4e0Pm+Z1qgQgNbZKE119bH6tH6i8Z0ysYG8oh7LYEs8B
yj2uWh57sVpQUHMnu7ji88Ni9vTQlLGBXuuOsj05HOmdQGQ4DyJi3jvR9J4Ib/aYLOvWgmhPo1Ed
a9MIovdaIKvbDkgLMa29esE5Emc2zP3tCd4Lx9EjUGk1c3sqA7Iw8VpywtrHuHny330+fGq+bJ5F
C1d8HGfvoGcxCFvU7Tg6oBQuGMLZkZ1f+fDtczPMniNrgz6NqlaasTS+KOL5r41hc3sq65/LNbGj
fHxZ/k6fvINRbbuIQMz8eE/o9gxnq1CbcYEt/gVV3tFisX8Qig/A4F80ErUjAXYGl2gTKKxDPjNG
2fhxvf/UpR7SY9SBghuV2bBG8QKd07KhX1tV5agg+G0VWRU08Rz+/phTxUO0nMxvL3c8ETgyfEiH
aZnPWB/xfb6dTwrN0p86ODdswow/xuPD+H3mKkH3abtj4BncHWDh1JHdjT+uUBixtb/ckypKF0zD
EccBdsLtcblgE9wMsu1mJH1q5hgdW+nJNi6vg2RhVRQfCX4Ay8/Nrxh5ZGz491Fj28IfIKJyFk8H
eJu/L//8+mre26jdRO5vF2IVHCTDBn90cixk3+fvmDumC8YR6GIMuPdJ8BwR9yToMIczmKhGeiPK
2z0JJsEsI3iu8ztd7+87NG8bYwCqPV8hPA1DLJMKlXbqV1f6mU9ryhoBwYKtg/RhIeZFr48YQNXV
eXp7v+vD2mnfXhBgh30ZuQfMC8mnrN2Fv1fUEc0eevvZhpGfkXzuMiV3TN087u/zbfpVfRmlZ2gK
TtVrlrZu96cZug423lZexdrpfcv9Bld+T8Ft8o34LSK+bh3BsjQW6X0Gj1Dbah2yTQRY6je/3rIJ
BQz3kxjBgsEZpYuazkowXes+p+fubkI7Iv+kCi/fVy/C/NPpDP7SY1EfQBlwlJ09F9OnWNg3GakJ
4p3pq0q2DNVQkdaNPsiGr1g7eq//kTtW1iVYX+yd30YQTtrWhQyGpo1aqglUs0dYFez7/PMA0Yw9
l5OvDJQmPhD9t3BdGUhSxvNOPV2N/wT7dq54NuQf7dz8y0LA/2xri9qeQkMM9A41m32Au2EUDX7G
fz+8Pi7MimBqg4EGlsI9gSQCsrgoGDoc258bB59FedYfSsoNP2Z8uqrn2KdtrVgwQyFWaJvaoM50
OKc33PR18N6sOiTcn8eSQvjmj70qFKOflvuNTa8dd5cFdgfrp/Hy+IDSl/HAe9LW4JkHZH6VrXrC
wH4zBr1GoQv4ZzUv4nUCIFOl5pFoVMHbZZwTvw90bs7j5Q2GiV9O6SpbotYGTgoX6X43m5q/p5Hp
+UTz4DFBmYZkMAphavyZORajnjiLvTSb5/NZFiOKnef4zqXo8FyPw0U9WxwGzjvCFfn+z20WpY+b
4GN+bvSblrtYQPP5KuFp2k7tKKJJ1X+G4WhNhThiF5HYyfS0Bi8HnhroDlQZYbuM91xQ69eTuxDn
zmdMO/IUek/AHAZlBafLbzrqMvNHXfhe29XlIYDTf/u3it4zCoR82eP4DS+YVu5fEZoxRA3iQ6eD
8SU/VH6v/HXUTsh/TEbIQyugHmcmCl7H5D6duSk/6FvxWmsywMgXxo4FWLt2iEW47U7+sJjNMf6Y
lrtGpwo3QEKdepfxC4I9MrfuiEapQRiqJIS7tscALBbu1b5rSfmsdJ/hddq8y5FCRJdluqdqJej7
yn1PAeia41+IAqUpeXED3kNVIiN0ZF5KQmwAIiP/h3Iwyx2/AIFLh2esmcftfCD0gQMZmFTsdbmP
P+6KzQsKhcU5sCZU2HWZF+cQMIEuYLBN4e/Ir8l8OdDhd4J87vELf7zfDog/qE1DwM979zlO5JSF
k0QBNrqxn9bRAA3K4Wy5H/y7IZReRuFJ9G4XXKmEH9DfD5Lq8vNyDEHG4reLKT/aJ5iklZixeTkb
Qc8VUYdv0+C2rFDqHCUsjioy5krSxxuoqHhe4swbtxaCizxPRwpUvp7n72kKtaMArnD9zEGLkbAv
84/DlO50xXOvgnPn+jMarLVnJ/5zQALgViYw5cfL/Hh735C1uII6XEH+tJXpw8j8CRu/9JdQ+kPx
Ul8c6115CB1rL3xHGVl90CNkmB8i4+kfFbxfuWLC2/ht/jrqzIRfN8HXrGaCl/P6ekp/nvsdF+7h
wZp3JlWRiJdG6E55AWL+w6thAtpH8vs8C44dIr9kLs9fJxaXaPkenL26IP4m/s9JcWyHM6AM7z3Z
KwUBxhu7kT8TQVBgTJrm0/ZsBnBBmXnxX9OfVP6TwlWuQK3sDSrmT4h6ajgpkSfEjGnmSTTOlMNR
T4fldkwZtpUdLsaf+tdITxi+Pc3H5Le12KxHMTFfUPUOBeAvM6msNJXaUalKpw4WuLWX+fTz8Hqb
Pw7vENXfIETja9an8DqZY3RHeAC6FwRZT+R26DY8JUQPjVHSKXSegkdj2NpAF/5sI64RY4Kpd40f
ex7ggQM8cHLr/Js6xn+x8zfOW0oYIqEmZAdb4J6a34nflLFzSg8pw28Kv9PWhR9CtktfjFgkojrk
GSTn8Z1Px/vjRn4yHTr/m0P+Iy40EBmWhAbW5HhfNfz+YrRAKkeENGpHQ0KHTuP3K015WKZfR+Xz
xn3ONfN5ZBFcIK6QqfwqCmoMI8t3uuJ/b02Ew/t0OtkSkxeC07gZu/GxOCviAB8RcuFwS4Y6sUaS
c0YtFnsgtDCuPcv69EcMfI75L4hj8hdV+gvGZqYZXq6/Icvr9Cc884Ta1J2SyrJC+ZXWfVJ4wLUs
b5RfycNfsQtT9tKIveRi+7mysMZ/0rtyFndb4SXC3SkL9ntEBNSMf71Ufr3zn/joKT2Kv0LAF5nk
+PMX/Yfr8KRKPinlhxv/w1iy0fEnyhU2Ynu1v/W8VRbmWRjiOu4+lFtvxK2XPp680OEbX2yk6DR4
CZQvDa9ogoKVcVFfVluJl5X7mGCWK4zSNAFvcdF4ilHmjxcGFF2UdXQh73GFIOzzO8F4HyERhN3j
R25Lvk4/xrPW7IOES/GmsSmB7zdTXnWzetU5f6Lcb1MEsoP1WpZ1yidl8AmH+tLHeJ2XKakhcK/i
zVceASJO8NWcnvFQgWYyAoiXm4VC0T6PTNmYeITwUngdjzs6tXY9Gw+5Ca5APxxMCL3Otw/tdLo8
WFXJ3rGRKTOEM7hq6WKkzASOxVtZHF6PBRx8lCZsjItLctt8WTs38/1+v8JcsekbxV4SbxCI8ECE
3GJysZ/zcYbyqRv4JI/7a0I7YJ1Y57/3nAf1+xgxTdt18DFnxdzHlU3Q3RxcLxSvQiX/sByn6XAa
6bhSFF0QCVNOUIfFuhq6lC85GMT4t/SKMr8iiXpIjWv/869/OHTp+2j8t74g87qMj9N8gBMtk582
4ioz1/B+hQu4oYO+HNos+XVduK8xWlf4Y7T8lfw2898SUApnST+m5XoejuaRwsrNuZ+HW7o0Fo+u
96twvfGGeQ6Glc/T/W7cXGgvQ5s9zdTtih/LNJnLDIR+JOj4yxAQQ+b13obxxxULNG6P9FXm/mtv
7SL3ATDbGYQAlQbCI0mSyQVHkOXoUtD4tDR7txVxKFvi2wZfPy4TrCf9dRtcSC7Z0XiHWHrpY+dp
3hRn4YGw4Uby5vAyvfF1pG/Uf0/T4bwhwRs5KfyQC/4snfEZ8PbhYzimD8H/OohgDtEb7v4Y7jDq
B1afDFwgW3cxhhyN83kFCDljEHwd0xIu74OHzffPXxEIiSLM/AVi+JfW/i+/+7/xP357+ZoM23V9
EHvmRR+Xt5eiTJiW+FkdBL24O+V//M9fDr/8W/ojH26DYv9OVkSZNXKiLxWGRgo+RCkGXPw4aDvs
i+gO342OX8b0L4mvfFTv7eULHMuhy9IfduHPMfLHMh+m26Hu0sv0YcDcT/r6cRgfx8Pxkv4s1+5P
W2cT/J7tBtu49jYImLL2OV7MBaS/qYIYbc2eOESdgKun+zktmJrwSXEoAG0GMLFujzO0wj3uc/pR
toHpk/dPMmX8NtGX63+ZjK22VfFUQWM1Idup5sHDKtPGVBazZyDDNi47jqUJRB2bUoERUCtGgP9t
DNp3ga74Ok/dIa3vspXWLdZiSjfkXJogD0spKBFoPofYXHrfbbDvtZZTzc+sC3Rc+3xkRfrIKvHD
WJJinVzQLlumpksxYm9vj/g4Lhm/XAEIUeeVPOAVG5STlmZiGhgaKHWM01gpB2ZSWi97zYop0uez
S/OaP3VsF+W89/wBd73hcbgsnbWtSpeeeZ+NtY/ttRfoPgKLP736LOa3/DQ/nEpn4SRIv+eycxM9
/zZcB1AbwqKYfqSPvk85LcCutxHN5g/N58r8ayl9mCjg2krhWmlSZBgdXjsaab5piphNKH+5V0SM
N0dB/PO1c+5p29VoslC+NfLK0kvuwodSCFk/oAWnuRO5+M3GtaTaV4blv4eXn3fugoHk7uPjqro5
RRtYdKyaX4bLaZgMgcPfrlCROyYn1uAT8O5e5RPVwTWUCgN0oaSnA3mf3t6NOX4/kKubXn8Vrr9w
Dj9Ij85ha6b8Ks992E/XPS/dcGWahfzj7/AkpHvnnYkN366KvR8bc9CVbFnHlKxlCPOD6YMTx45x
oX797Ko061eBvVLYUI2zTKDk/KcRfVB8RFozWdSNLFBqjuHxmhd1mgMy/7EvAj2Nl/n2YQ4BWgW/
zRN4/k4ubni5XbA5Vv7S7rI1Zsv4AW/kzAC/l/E7xOTShMsYq/4c3ufZ+HxT+qo6/+qxjNGOnCZM
hR/wmRdXP5I/71964W1pZDPeWJrLijCMxAAkmLG2yzALSPOa/x5hlvPEM1EjKWUg+iI2snvqyRPI
AwfUoilL80hzvl1JT05Tg9ssSPduGoZVFVMYJyOh/3n56/iDys/Y5jFvKSExyLb3dROghhq27X98
AMj+hzlJp/pV+6ENTVW+1/fx5TZ+x//euNB9IkRI6/DVoAImmQgoX/nKPaFz6LcOk/JdHRTgWpyy
5Y9/+Xf4uPuj8mkb+8nz/DYdlZrfts7CzwI/OS+1k+mDL9lT5j2OyndVWMWdc6bcieW0UK6FAe/i
51aNQGFB+n1HJRO8Laij2RQPeR28K74XEGn3+TCcvw8/F9LG6QVEA5ShBa67Tq5KjWUU2+HX8XbE
JhsIcGnWXO3fNiQuuT8C/H+04E/T25Q+gKYPZVPMisgVK0J6yo2HFB0fx683/P20ZM0CzVmVMfsl
LZH8D2Nkx44pOH5dztCV6aTI367pcy9iunt4N8rhMN+MaFcCgnnMdfIO530+j7ckMhluoIheutx+
o5x7Htu+UClpjhfM5lPywe92yu/65wanZ4EprR778QAqGnBjK2p6GWOXKx/Cm1eCBbUQ/XXlW0qt
vEAlmlalZfMkMezZMR4vwtzhw8XvMWp0oIKu83hPlvFiq7DoZ4C/Fwze8uLbBNMlhXUfKAmLAwKN
1FQ/Y7Q1Ip6Bf3S7aOso6lD623Li6T4NZ94FDStOw+dhGXIo0zl583wiWhclnkslzsXXY6TqY1qe
ZSJ6aPiT0w3q8pID7/HLxivpKnd5jnd0LKmiOv1tK+6g8aNR8Q6O4/l8eBlfcTQa4TG9T+cTzLBJ
7zyvglp/1m0ciTwPqU52PDS/jxoutGYJBXXT821KFnTgGYgOJCwFd2GtgAU4f341W5iUpdRdGdyf
9ZM5hQVp98nPYFB2lAc3w720fBjguOGB/Eh/L26nqkUBWK4wkrBLqAmS2AFcD94AqI232/y4nNAn
Up5oJzrV6tLLnumyACo41vsu7yM3iTF5/W3Uoq+DUFW4xf7H3TIbs9983npmheiF88XqyRoXfGZh
L0qcTRiRVBNeXR3E7PliSFKch5/z4354nY9QwbIhKaJ2ebLOBC847Lbj0NLwssxngN+wOQPz9pfp
NG6KgCoUw0Wll8zhIVayO66IStvbAB69coDezi99B0iytBFXmodNVLYUdJkMv/xCKuxfsf7yP5TK
SmScoL3PQdVioc4JCxB+aiADuN4+WH8l66D5CIxypkI+ZmxFDJexK+UFmeVMd5yAjlqRC1TO83Df
fGrSKUIY4owhSQkLwdrrSHcXxdZTxP6kTuiLT6uKsKmvqGJsxAeKbUE3mvit3EkTF1eUE6bHeRkB
ae0bhEOud2WnjdDHNarHjWpOfBhNeI9SnRqDz1h69pCMuNTNoyYXtFonJ18eb8aLq1pl4WXwHaca
bJDPHOH5p+WhedtAaJ5UUBO7puVx+ap0YdaiBRDMcJvz8elNoZPepzuaxZvc3QpRjr4oe0V0xJa5
Gf+REWHeh0lZZl0H2oFBVqCa9O7oIeIPbl65uzzoeOUAEi+MXtse+7qu21CXl3E7RFEvXleA2mAe
ZvP8AimMH+681afV+IdPsSy9XhbFdRkLrKCYAWG2uiZqRwYQwY8B2/+2JFEbPrWakxHMO0++jUKp
C3p8nbGuvLGyDzVR7rcW+gmgmsxmF1uMQtyzYZM3gdXIkYJnm3xrY01eh1zIDv/9frOBcYXzvIqv
W9epvjan07jf+OhFXQN4VmVu226wZ1tIZeWRryRqJdRXcNLIP8ZmfHxclk3eEXZ556LcySYJvPE2
5hkm2xeQ/7vg+C0GN97jbf5+AHF35U4R3T5oijw0dIkUSXFlVBJeZGg0sSiySAL3d2bHQEwq1MSb
brCk2IYQz1SInG7WxdsU7fQ+8smt+KfpGzVUvZ7HHxNaFEY6edsEm6/JuLCiXbet8yxAW7BNX2SS
4T0s8vg/RbzuQ3+9roRk3Wl5N+Jq5AQylu/jmWGHvqnoCI2AZkB5EeezbcHTFNEYerKYH3k8C9tC
uaJquL0BmLs0MpWTlM42DVBb82jw0ncZqvWK0xprPR3yrCk75aU3VeifMgbQ1Uhew4F/nefzX6fr
YVjAA1Z4rwgCK3mnN1XhWYYazQW27T1+2r7uwo3061DMAZEfwJfXsB+Ix8TaeuwNb7f9HQ0UEcVw
ETBPlen9XXhGTQDmUQQPZrhMHxvyS+DMYGJRtluxg/CBK38fAIdxuikeoMT0aDEHXYrIG8ZGDtro
FVSRWbAePoLvL7dAMG1q+iK86nwtAvYpmSIMBPR6ExleRx1qxXz1u8Srl3lTUrex9VtJ7JB/tk6z
kdhICMFYC8P7n1+JSc2ftiFWkR9dLC4TsLuwyED3DYxNvGl8SMWBsOK98tCVM+tD/7AWQtMNYmUv
k2IIym5DTVnJe/xtzn0RRjSKOuaaPdn80BgAJXi7DrJuAhiuOiKRLhBVZBt8815CiB4+A+Gign3y
262Ruu9iZv1pvA/TeTEO9AcCg++6+7oJAa7ap9TJ5luvYrkXEoCE89qXbZ0pCqEMALtKW4ZtqyMw
nvt6G97QhAkuhefrpI+r9NDAbV8HKZTvxto9UM4R92mY5pLyY5CMbYjH/m9M4XEb/fInQtbl7QKS
LYDjzQmhgNEkQQwuc7UiZRGlX4QXb/jly20cvh6W+fV+eP95fU/EUJCKBYOQv46mO9F4Ge/fx/Fy
wJO/zCej5I9/+5reTJc7cmiBWVSuk1jX+6CcLStTuyA30+k4U8PWAlCXdyjbwOl2t6TxiZK6FWdE
g7gYVfpj/tsE7jwkbor0952/G0yZVozjJNeDLEOIUNieqy2ncuQgodKVIWwr9D89jDMstni9ASRy
kiKHYmiBvj3U8vLpnn4LTdv6TxHlwVkJaGWc0jxTiVP1Jv1wXx7TYTFOG2DMX5fDFXA/OUSWxFPA
cykEQW8k/O2x3KfXnwfj9cxvt+H67s4lzT2teOC+UQ44DrERxIqo7c1wQJpY6U8oaOgWvIy6AHgQ
vEpoVj1NaFPg8/9IhQXp5fmrExEiBmwEkot1SuYP6NdP36R4wzmCRFu1jTdyu5+pEQW8x8X4f8ek
NUuX4ddVla6ywH0I6tRGbHhy3OE2vmkkm9LzPYR+rUmr3YoSBqK7EXuWdjLI2gPMUeE7SD/uOi9D
XrGwaDhtgYFA8V0vj9ttfkuly/HQhDBGpzurV7U0xlP+CQiM09sF2qWU42/8WZUuGeJF8sIGgnsV
05EGCh5gbhp0cS73+apI6DZ4ayxgBduxRgUZoinBpurF6xAj80DtvAyXrwcSssZOP0/m8B43hFi4
bWrXpvVXC2VCLHAXLORCFAPs4BlAs15TsDUkbsVRtvgHVziiTgRz4Tx9TPR+l/SJ1YJPfJ3S/WaU
O+bPjDRIv/JSmAqyhoCE2zSe/JM8mLc+npQN1U0dCl4XGPl6oAbQxfDI/NXwGV7kDfXbpGpback0
OHcu+TYNHytmTFWtN9r5HDxrxg3zjDGGSfR4a/br+4fh9/MwbxhSgm8wutxYpG3D2FBg+yfOoGM0
0GUA06vpvC7BgDExz/z6uoz3P8y3/7ApcSsrXjXgbKQoJI5o9AutI3rd+HdyBd8TMJh0f01g0Fa5
HyZFOCEDffcynSZ0ioyeilLr7RxxKOuy+BSc2IFvjcX9OKfgSOnjxn/sexH4hy8j7S5VAUAU8oAC
a8T36WJIaOIIP278x1CO0ejVUfiJ7cZug+sAfQlPKv2drZtuuZSeRfSAPQEc9UJeXRQamfhtTGDS
1b2YvV7Gh5EuZx6Qe1I20HkiGDhv/Ba+vwMYHFmC1xslupXleErYCMMl+tSTf8BLvJ6HiZBPJ/IH
jE0ypCn2RXiZnWeH8QGxlwGo3D4Az2a+KSdVCL5qnNO//Lzc3xGmC6CCh7PRgs5qToNiIMFOsJnv
gT9Bz5Pic+GndRGshWuvcFNGsc83dPZsfQEFNJT4OG2vC0hyQgdJWqst/XHlt0JDYITA1E09ejP+
twnzt3bzeOkk8bo/xvsNhn8lewnovoXs6HwTD8tGkGLDkdN7cEqarKSt9Y5e5UdcGCov5qrvA7il
58PfZu2ic8E5LY7W6p7Zmgc52CAzenOUO1J4svfn7hsPA00nKnEVTqz8An3+zzy0y6iIrdZ/JWZV
4Gas5DBeyMjQTjib0hwbeVBGG940Gd4lZTjZxebJO5yJ+fWwwdqCJXyqmNTJhLMm3mH2rLIcIWgz
l28hr2jgCR/0ysxa7EWmbQx6wlWg43Jxen/6/e8OxeFf//rnPyl78hKg9qOHVLWWC3njw/GbAuxw
mh+pTAdxTybUEJaqlLLCS8jrxY0rUWRBKd4vjo6rRfIRgaJ28XRVBufL5TPak5PSEtar7FjIKyz4
DxjUKNzbzCA2hzuiW5+ATf7f//0X5T6r4HK42hPBbMdPaHMhh6mfobDiD6XBwNVmZARtcGgluL73
CIWJEjFiMX/oYtrWXjmHgYvh9LfhmMpekNDz/IbAmxwwMnLl8Mv/9X/rpl3fBC+5rjYXSB6pwgu9
kJ1icikHAHhMj3G7wTmeVcwHkgtSf1U4RFZ0sx2+zd/Hs8IBjTiczMW+cWP//G9s1CtiJe+TovJP
BU7Qu43qHFRiZiERvKeKVUtGvPDJfExGaoKx+sC5EAD7RppCOZtW2ChYetYK9qa+ydvXRUfAI94W
dmYuKm9eIL8Lu6UMJ8SYdopzz/nggVZCnHPFNPREUisb+SCKuskCa8qm9w0po09dpys0taXQXOgu
xWnViAJkcbKM5zk9PsLg0gUnoxlJPajCvhLsWda+Sew6Xw+P6+Hlcb/PHKY3uuTtghkSKMZzpoAi
vepA4NQJNXIb+UR5yAdlOtjk0J5GFTfDYg4Ttjj+SJMSzwRclrzLno0fwzwfCMjoto4PaIORyj5i
0v0mlqy8iSDA1tVXiMIOw0EKpzdxBf2363BxUyoAJdForovmxDTyNRd+crywgX75i6Yy88D+tBj8
8xlKNC5vhv2Us/G8AMo853MOHY6388/r+5a7UYWmIc/3fh+M2/QUoeHSKeeEKFpF6KnKlRSb715f
Hr/+ap4ZDNJjXCflRdVdEIxgdxqdS4viCmbf5RBsXHmhfeAo2Kr2ZT4oLdp02U0Qq7BjqMmNwrZW
5eXm4uXSMOxeOLyXCwChacsu+uCSiv75sarHWHmBTK6SDClhLOuAOQ7lVVeBRuT7DDw1Au3ecNS8
lsG+kloJjyg8K0xjmuOZxWNkivNXFkHwIoiRYchnI4LRFMGV2DpgeDcvw/t9KwDShaqiCmykHRGH
WjByQzVOFFUF2/9x+4pMua2wxEGCIMg5eclszYlDha/r0O/Otzwy5UDEeSLYqbP8qX7DiXhqPn28
AFalcj4yBNr4KPrxb1/N8WLdw7BhYcmgB85RL3h3xqz+cOvh4XQMhPptdP9DsjojzwpZlwnhIoZl
4wgt/QDqN5E20Oj5UlWcbtnassjPUyoEIAa2JDAiMcUbf0Dh0gTjyo2dedJN6DYwUOt8rRqpKgsr
dZw+0aKXwj5tnePzZFshd+xrL6BnLDm49cm3J7bDQ9zzMEU8mqrcmrhsUrzQMnT9LXoylDfgdsEc
nV/+BvDjtph5n0XVFoFWZixizXvcINgJEwh78LlQBQLnx+E2aqq4CRgEXO2nJNyexFu9LiGqRM7e
9ZNx2uPwOlIGNZ3szEU61gcyrKsB07WNzWJOhkFPqDpEoVfL4gcXz33OQ1My1ZaYXR7miSn5qq4O
s8/pSgCKCgHLQN5RHyBPFQGdSEAKDylIbbMDw01/B1d6QzcGs9HV6qSmEj8iO9dECdnlZbkqVR+C
QIaORsbO0A2tEDJMjCMNTKym/kR2GzNnFTeWpQ/TcLdyfIJ/CtKSxEFGmc4sjHEmDj4tpWaq8Tts
fHjahwp8KmCBuXVQP+LCNXp+uKqzoH6Kzz4UcbTSb8NtGrRkcSHS1WSI2PlqF+ob/D7cTkpRQOaX
kndYaJ17aUcOzIZ6oPqtPPYebJZj+oDgnLGsENVJefuiQsGDWlOHIYI9mGP5mB8w1H3+rtTpFK1g
KddJQ+kk/WrqVp6ni51Y8bP2x70Y0YRkVYvsNlbmSylkPAcjaaG5E8HYRN2UInXlcWfe//RVQ4Tg
zZONnHiAQs6HUoJV510gLWVW4dn6OFxBommlZ1UpbrTxE59p2Pz7cErMDcRveyG5aUxH+1wnEgwO
Ug5MrMNPAcDCbyip4HI3/dSbtpcFPWSo/DreZjZOjMGtlGm1jeAsSJbmtmzexXhvg/FiYQjH46qc
il8EZHHb9jnPao0I5VrENVP/tuCf7yPUaircVwqZgY3znUgcOpvBNtBdH/cd5XptLh8esp6QiiwG
DTWjOidNHDZCeXa+TOlOl7xAIcJwQ2DHkRaVXlEmDokCVVVY50pFdcjFng9ZNd800gxs8cwL38cX
YibEbnWccXrggZ65KPsyuxetFLeKKiI/LPX2ePlp/UrIPo/H98fP+eus1DwKUVPLjgwZe5D9PFgp
h4egHG0tBGLjBaL3/Ckpass0NI3fClsGjlJApiD6xQSp4/TXkmMkjExQwIrU3ESZ9GHJwjbw5XJO
XTCTAByikb/KYUckDAlfL3PnK+HJPBbjh6dA1eiVi6I4RNKuQ2OaAgV3o6Ex6Lmn2rqqhXlVuqAp
WftcEUnGrq2VVLR9G1SRcQgHDReKMCpWSx9oaS72C67s2SRWrq1cX1v1ZHJzCcmwPLxwc7WTeotD
U4s3VGR+zp69iFUdsnL64t1ISDGY3n79t8f5/AdjYf01FbyjakC/lsZWpVqBwNBPIChpAIkmseu2
CFjBzn98nx+GmcBIS8c0yQfJY1WgeM6/zsZUR7tPebjSsROhg7Tf8F3hqCqL17ciO34dLoPCjJWo
q0XTtVJrT3X/pRKnKqfTBHpw+3XV8nikiqen+onXUeVhNWsddIqjdGJ4AQklohfI5vlzt05oSSl2
lH8DPsGF14Qdu69GlKkRiyyPqAseWg9kFJ83i/WLRPxy5GEHNUUR0zsUNCuPQaghmbZ/Hb6OHMVV
bMIuaKEq9IXRUrbaaqo2VsNsLPf3YZlE9xL28+rdPVUv25dKjGv4dkRYH36lgQflmezo9G1iGhIX
jWkVPftuzF+hfdM99fkz1uD33xleV4VrJTwEUX7K8G3cgfbdGAE3HDxymbHoRJ2gTvXk7XMngWhQ
slajouAEd2W4zU7xFxX3UDgfUP5iJ4jzAO9tsdQEBjpO92j8GVlcmI2WjTYXLUc+u/kxX2Zhw9Ag
AsUGFy1WPhhLzo/LnGASRcTxFSu0jdsQYW0JtM0rVCrRTFVniL7CJVDYFvpv4/c/qIsQnV5Oror2
Sagi42HUHLM4zFeYFAzdej8Vx1foJEhL5Fkleozml+UIc4Lv6tMQLAhxeWYd7zmD+Fe0WR1KuF40
wGgtL3XMRCFew0ClC1CHrEcye4Z/0HyHPIx6FeseJw4tU7iDcyUKqjhZVV1g2jbFUyppM4be9EJR
YRiHUxiSFSrlurNnL4QCJLwHOEBIWm+EOcVWECopTzWenI39CRP87joXNOLdYx4+D3USCNLzoMVO
iuDJc9J5oJas4QRmME0CH1/Ux17lnq8wmFuw9CAAOSxOZiHECANfJ+iA2HgioqtbFs8ZqwZPnQ+f
ClkZBACKTW+j1gUp/bUChe4TK3xMF5FY2Wq39bqcZqFnK8+dOtwDz8hmVV4QxACNBaru0o4EwyKF
GA1Xdx5o0HjSqDttbwKWsvG/MjdnhGx6sp1xwcRouw79xzbshQtWzdFKKE/KlZUKmpAvsPZ2VjTJ
j3I5GE6AChWt8kkbzJLLdZsGP2mK2CS/681KqWTnH24sF8PyfGg/hUVKP9gHn9iZq9y942NleliQ
fr0J1r4xsp1+XQzBa92vp9CF8JPWj1gUSUe3YPTaklksWmcRXkuQHxdhLZeyyxVeysSR9ziOoFwt
iKTworycXJyChzbLCuXgxPRAxGLPt/bQpWn1YjSjDOduPrFCeWJ+fVw2bzelLETMiMQqxnZrU6Wy
KfHGg8HhufIY2nDqp0MOUsRCG86LdOOQ0syknFomplZiIU1bqVBStIIqtoKUt0XPLo/JMsgiHz6g
vIGigpcRFr0oy/UPqfAgusreFVnZC1lJsd1NaoqQ6IWQkGVvWaHcvpz5WorR1emrVBYgTrhEGCcv
p8geoGlRDrUQzXNNznThXNI+lDJc58k4VTQWajtBSdJHnHxP2HUJCbaXoJxGK8JZ9+ElbMqbjgqV
Io9pwlTggdha2gp+RoZ2RsouQmFUdMlAjdmW2oVA5ARzdbW3YxT2Ut58LzVGKUxFEMvGxBK1Icfh
sYjkq3LgmRDZrpMjyxWB3XbBHdnMmN8LCBIGUcQroLPfh45Li6qDecMOflAxodoiGKzL8asU/Bt9
UoZDhvmTQvlEjFwWs82yMlMuzR+wj4ZmuSIU2zZqc2aKPmqa0KJiYMDZv2Tp7oqObUX0hHYdhyyZ
pOz5Ps5n49MtGikxKBnIFhzcYmFoYfaQslqrQdT8K4B0Z92rWM50onkg412YUbmEpv2kuajwphy6
TZ5HoY56oAXUMbGmLEBhj16yBw7Ws3aZcmhiQHnhUf29fpgZkmSvfhD7oWalTVGoaO1eClasirKq
XjlSOafdVxqmEGLpFrrQOnCzW526hTDLhqEf2l2lPXuFY+TA9dbjNReKnOmyuFOlfNJmMRbjh4jz
hggYSnmLdUxU6eaOZgn3T6cdxI/e59v0K0QPAMP79b6Z1XiqjOgkYjPms87j5Q0aVB9atVq0ljSR
aXkkJ6/Qmqp4zZSjNnybp9MBykAUtLguCJNx6ideQKkEfEWuoAvb+5VqBg3FrlwVGYporsPQo1IU
JWssDijvfSpepjO3q7kpGpk9Z2VWi3E5QP3a2gA4TqwqhGJQR1hTXY0sNMDRzAxNfx0O99ljYinQ
THkMeA55mTpK0h3klJ2VpY6uw+s0mh8eD8ZOt/BAeg8bhY/roD6E2zk96NU2iVpie3lknF11TxKR
qHINZ6J+CiBksbbg/NC4RBbLFfQseT7g7YYlQRefjNkoI8laDR9PggcoMWYJtNRhs086yqw8RbEr
uPK86Taqwsz/cBu2C8OqNRxekTr3F6WOSka9A8TDlxtEupUsXhFL8Qe7CuL6WzjWtClx5oSqUP5X
utdibwmwOKks9wPnYXahKyHEaqzbbfhJDZ+KsBaJw8JH9VfizKkiMXjIQ4gq4q1ei7cAanN3b4gQ
3lgfLlLHgOkKOBDDdFm4mpcBiIczxRsB/NBshUdhKSJMoptJe/o7lNaiJCQW2MC1lbLHlzfRrD4L
JnoacarsBjhqXq97LUS17hYMYR3oFkwGhjXteHxbqc6q8Q8ekGfaSBHoaQIeQ0RjVUc0ooRZGDzi
ZHd0HLSiPQMHcvsp2BQKUqcg4JaqFYJkJyB1N1OJnYQJFA2OApMRsVeU3HQVpLQtSoPLyOhoZ7SD
RNGaLcTELLaHDFSSzmWIoVuvm6SUTqg+Uk5FRZw7cJtrUWRdiDkworL6MjvIivRARnq4TQxJOoQl
5ISDg0LFOQaKlO1irIraaF/1dAJh+2U4+Vn3aXnXhcZYtWIxLmvUgDtrUXsK4pPrLhJQ4Vr/gqz8
lTXroVa2JaTm1DcWJvshOmeb+c2RpzLfjOMCeWKdWBV3WWwqmLLNcqSPomWECVz6aV5PpXNGs0xG
Yp1mTZUItVqionaw29wbZ+2I4fgVO4uG4814DEdlea240NbDcK1Llc0L1FyFRhYzPoFCRzijUkSx
9MsofkLH/+ZbGF42yjKrKvSCyzLoA36dAVAZ1sH2qfXR7GQrjBGetqAD6H4FMHTngKG/K/ZkW0V5
dYdk0XCbRVWfD90ShNBwt8h0YcJkl2lYdVlc4wf18ZNxFB4n0hLGriEwOh6EqBQSCizZzuG0h2WE
5jROOH9MUX5FHoJzP9fbw8luYjdLHQpWdm7r4QPsZqWYpXl24R28kVnG48funs4qbIzgUN7Kc4D5
GPasFH9BGCZynhBKH/U8Oq/HSz8QTqL8uyYWBRi/ald1UgI8wL07H1BVI/TkLbYiKABOJ4cVjsMV
yyx/RWjXZbx922g7rqrQaMrreMUdCwnEH8wVs0eEqAAEcZXbc7UK9+FF8TXz4OItCMdzTg+BZv7q
UBK0ZCFVYAvDHSw9m+41YvXbstFcUcl6ch/54FE8W1GCWpgtCGiRrbDzsYoVMb8BkvM+npXi0bJ5
ribER6ANCiUhUUQEZLK9QzEO8kRvhxNbfxu+DQqwHtU+NyGMtq2LPLMzN3wDB3S5zzcNyl10JkP8
uOTKHg69cBvQBcAkL+Zvy3cjc9QoQBZguvM822d0g62cHJnyXawiGsOO70Z9Q50/Biko6nF54Gwn
zcbIo45eIEfgOu17QCQlRYo8NQ12qzEWivHaxKSzZwAuQLrrYBfSEW/co6IoBkwwhsvbM5kirDzn
kiQLA3LDcNkOjmzlgbRP40ZUQVoLK7L3YNTPQiuCLPGZkKWU1zJOCDGlVwQPI4wBHnZF7QPKjst4
MDXmEq1Kbzd4P+jtEXgWQkURj3hwmw1uqaoQzaAq47rq7w8YLwzIBimwdnqcWdiP0z+bdDRbLz0d
i0wmYVxAnaH1SfAtHB+3BarhGTZKHZEkirGDrG9kSdsTjpoAT0SEM9+n03XiviWnft4gk8/9NGgn
KrJftDGB8Vo1To0cnqEMJ03WiukvZYZjBdj6CFsHXEvBVkytbmMOgKz0p2aUrfavRg6/6F2iVVZ4
14oJnMci3qobongeURgQHiImACMRgVkxQJtQ0PrpwPsGmzUSlUgyuU/10slu2PRCu0I2s/MH+696
WKuRMCJe36wHtmzOsyPRVMQO1c9tEcUySvimXLU7tSGWAQff7ThJ7SHweLtnw1Q4w5gXG39gkwiU
6CuauVwFDwqXkJqO3BdYJ2Gsij4Gd5oqbUU4oKwNAf4ztZSLPmkCnD1bNpgr+IZZCM1Xb4/xKAS2
tLhnJ6To5VCuSQFqy/oA+t4VIzXKJ1nsDDMFjTMrQoS0Sq3Kp90JSH5RdpbXyq9ER0qkOg/okzJE
6ixiZ5huLCe8qBA+2Vbh5QoseFaFsz36Tajzom9jIwpSRWP0K3n81HPlV+pgYZDjUFvT1Rb5chUA
FlPpHufPatOqWXXN52GQQyQWFVHUFbE4Elfg+MRgYrKd4tRXkUZKGZ0CNfQZiIlAzNUiJodtvNwZ
qKcBRY4WRUUXgnn4fmA00D+uB2+7Kg2nEgmo8/AuK2yQPWGjpuvjWIBkOL/Y4RuKvm2esSnIHfLg
ks8+inKLRSwhxHkl3NL5caQRrOez4sRkz8zgUuEwFnZw9ruSCxDYLg2o9KZ+7sQrlNsP+0L5tRjl
asxshse8QP2Uue8BarOVOiqZLJEz5VcAlD/uHi9zCzisElEeobwwD3h7LMs0aDlAER4Eh7FwtZvf
zG5Om5lUGZR2miWcf/i4fL3M3y96vKKSKam29K0yQRRX1D5sTOnNskTki+IdMxtt6AErbke+dqH7
xIRNRfqsYbGqTC1XWx4vW8EH+bZk/giv3OWxhvOGWysGvxZQtVNw/BQhZenZ70lDNzKmgl25dhjW
m6/+gKyMlljLghdW9HtAhTYCT41INgXtst5UxqEYDP+nmMlVDPFoNSVUcdarmCRkfMZfv/8NY46/
fr/8TakckysoPdz+83hbfnTKg5UxiNKPGU2xI8EublQeBnF4UZHhwwYwmvIAM8Vx9NP9NirxiLKO
OXDSOT8bP//4E4Wu4ohGMY4sbL0dRM9BsI2ecwF6kbkZaX53WFypTwehnZWhyVTHjRutvE56pNIB
RDxFBn9FfvyRdpC7KJbOU/BDOdoyOA+bd/n25lNsO6MFXZjdZY8w8taRnFHVI/LSCzza4aakPmQ1
o+Tz+XZ/n99gVs3hO4hJqJcAM5XrFeCfeVzVzXDX/5oAORUB3d3sEiXm3q7xb7nuPoF08W1aHlxc
roPQSDhEGXv1ZcXeStwsna6eDb0orOJwvr4PypoiU99jgRHFKstDSInSCyK/m8t88b7EBme3eWio
rfnyfpve3qBfDRAex29qjYaccewBNAhSkxpDfsAc2AHx9J2BIt5fOqbUhWXaZbI4UbnEJvZs9GnY
W8U3dSnrx9GDL8Lzs0YhiczrACn1DeO0kWjdhF9TCmRhdE/+U+3Q6GK1KWHVw3FZ5g9FAbdBqrnr
A+eNbEqRCtmPCFjG67lfUWUa/+/4HkyU2yirrPMQ44zHz4osCEs9zbevRBV1WTsirPVezsPxK3Rr
agHgXD7L1vf0AXwIiWNCDtGx9OomhhdjPRyadKpYKdJlL70761UugLxu226NKH8QKER6aUol3j4c
Z1U9u2i+jWbDry6rsBggjByg0TYa19Hi8HySA6VdKIb3clp0ni73+0ygP1iMvRyOWsmjNJhKwppq
k4IF8RBhuvQ2bmAtC8wkEs5tfMOxcVAxB9bYbHTjz4/55ax5G2WI1NPsR+9Visykkyba+wPvc3sk
Q5sV8R4wGWgoFY+lf66JCnPTAL4Ou1G0ahXLTD9nBhUTs0+kKSecpIC56Q0dJ0GGa5fxwFtWREYb
87OefRxlrCMJjz5mZbuoEXo0yvl18bo2aRpBQw28WqMOH4qBI2oWcAR1WXQxEweHFi3v6AcOvxoO
Uyj26wEVTbi52xnE8g5fpBWRNaw7bxKnbYf0jT+uZsEqKq2Mk4V1eH+8Q+J+vv3bdP5PNukVb9KT
wTbwTq3qEvFJAqNX5t6Q61w8PzJS/xvzMclIKkUo0Xz+VAXnwCat1aoV8Iva/9aFlVeu+Gcbfp6a
3iIDy5Z3s0tMFWJd/3YbVRmLYaTqlUulXjlRHxsadHtqwsQ+oT6jK4SBziByRiMcHxpEYbRu1Caq
lVh5HVjwzsvzbazDsow3DYR+VZ1VPAtpkvcIa78rQyFNgdqDPolo19dxvII/oES6nnpY2TmxqGFq
T0wj3S8q9usSNXHH87ysDArtmVSx05IDEw6/KspIdCTiBMyytfGb+++hmXrXAAqhFlxAGYoiKHUH
h+zt49t2/1AT9BB2vuiJnQcOvwE/bc5NyVeBrjJx6E6mQ3nR/PExHMzLf4VSwuU+X7Vy+a4Jovwc
wJ7u5804fBEvQ9Sx78iREWXqZldtLlrEgHfOUOVPLW+YWlbMeTHlCI+ah+mChbicIVVxnw8/R/C7
37TSwTZ89ZU3it6n04lFvmITlTGfXchQB6KrPNBEBdlme4EiOPI4I7p6HTdrVEfQlBnIzpl83KGE
9cpbxZm1aGDvXPSG2ocgVQhFsMa2Wa5axrASolV0waNUvo1Gji089mfLb+uDaTx8298JRhOe9wbj
y8JnD3eVZl8taShiKDis2k4/tq4BumIUOcJD1hr1RJCn9Jh86mgtdYIl+aEC1x1YtLOZ7G9vIjmu
BIm6dUKrSPelusTiVppMpjpwPldXpt/9Zv9NJTup/Y264Ji0TzdCsEIgQaCjrZ6nDCzvEKgeFEj8
WnYoli4yRhz2hooogc9HPCWCVy3+0Xp5Bol1dQaI0AdgTVefKGG2lromk2S8QI54RRt20z5rpXXV
1r48VrXSNztWRL2LdZgwWwr1lDf8wrzmyVgSGGzF9MHhPsRdCawzs5iaeVDSjvQOqZa4VuJq5iuw
4hMtIB4gx+Iviw6bczUdWbz435M3hX/D9oKXn7akO02vqMQWWiey3fAzyLBAb4V5ZzampQLd4+5s
gVsewKAsxl+mo4Xpt8RFw51GpZjLy7L8AEj4iTx1KxEA86AMEyyhEYPbfGlJApnF/81Xxsz8dbwc
BJ134zInmjaJTh7SYegp+HQ5ztdRufnGfSkenjmRwzuVXJzPU9JHx0OwA1bDPeAQGzsBHo51OeDM
8+sjfVFF4RdTeAhLYqbT/CFUCWIWfcwnsgTS0pF4qgifRYDsRLk5NLWX6QTZszToUCtxY/Mw+36a
r5QeMZLyyCVph0SFKL2cPKRTy1UdHzdU5ZikYrX+I/1sHJxp7irS2Dz4YU4L4qH4kCHO/yNBQVyj
6DY0/zU69JcDS4L0Ifu3UPqh5reRXuxHwnNpJeZfTqgDuSj5+de//vlP/4Hy0JzoONzHfx0ToUo8
076KPcg7PKfpV/YSRxvDDYWKwuBtwJUsPjDQhgFxQzf9NHM7Lj4Paw82hY8idYTI9dl2lzkk9QG7
u//UXr64MAHAFWwrvYi8jEqud2NEWU5juLQ0iboORH1ugSgZiAdnqrAAoSKG+ZTmP4fQmQf9F3jM
0Nb4oUgdwTQe1nQlhJWHLH5Z3MdKZc0YZMdJ0KloIOmqOpQKtJiLIQXluO4Vp+W5ZzfwlO28XOT7
7+/TeUTX/KqtIRM6QcAcrzYEZuoRxHB6LXkek5RYAIjVjTDiKf21tCx8Ky70WKD7xlgCuujPyyZ2
N45FQbWaT5UteDbHii+H3n3lAUxGNA92cDj5Sgfzp26PNHXM2gqZ3QcscdLly3k8KbzfhAS75EtS
aFTB+7FYWQsEjskpFA4TzGiw0ipdNEXS029WZo9wYbxBtG6SuJj0RvuAlbhaJZB5hCchpLo5RvAY
jAq7KA+mFvJZ1AsNODKG2uw3eKzNYmyOm2Lpofx61Aggi2c4o+6G3PCG8i5KfzwgmGtXTvbqAqOr
h6Ool5U4U23SUpEiQhL50hna2vLzAsgMl/mxcA3fpg3XxuQaW0toJSHsimK29TGFhQ4czYfnEeco
20ZkK70ttJXQv+Hdrw6rUXRHVI2y2ycOG0OjiuNXqibBWmh+TAvlFhTroIlZB4B0BCYhBjsU07aL
sRB8ON5u8+2AxrL59RQ7i1dR+hIdZ8taubjPfsvLKlRnrdppgxuou9CrdQOBwGKjMTUEYgPh9J97
V5I1fiUYKutj3KIsqy0COW/xOO2vk5bnQEEyp0+GchPjW/6UbZUVXVRL6zsolaeRxURbiicVTmxj
d7GyRmzDPr8c7sVUzyDPuqhtsPaY4Pn9WM73tOfkbwWCb03tuJ1ny38bSTEpNqjUQn6TIvzz4+O6
EfuJyrcfB75SVmWuYNpfri53yy68RdupwvU7YAWQy6LTybo6dtgJraI9gS5i5qedZkUfRC1DpuQE
pH1N7IKbBRJr6ZzVd7G7gBi/SL2nqylaOR8kZ8CBOnZgtXJQTaB+uVCEobbJC4EYukJA6O/MdU6u
hEJ4Shsypw3lMMmc3//7n9nBRzdtTFY0kmDuY970s77ciOEUUc8ElL2x36cPNCTVkEVR7/f5EB1d
EUNVjFlO8wNK4YjQ6w2CX2fEmNsIKeZ5NNi5ig4o0tYfMCSGOLGJwmw8nocbd8dNCxqV4+Vkh2Eq
pltonLLWm1/+Bs4Sjd62jpQts1P8W2Ea1A4jJ2IwMUmFB4rYFbJew9AiRA7ezDU+7sqJFdLL9d4c
27lIbdHi3aEiLiyWDdZustSx5lL60ooYC8nnoDt/WddHnL+VrFFM/baKGYtPvw/l8sevP5VldDEj
PwhJFYqd18UfUvAmRf2mIqn6mHhI21kr80MhXIcytXHRdrauzBP7YOzNedK8tLVRW4vmXKqlHpf5
cTtqkiIahkgYVnyD1jpSxJk/O8jl8MDzy/K4bp1O3oYGWbEzT1NQnkYR1kXEZvDJkQPJfUXm+IMC
kLkuKuwR4kK5+S7ywm7o2gPMz2UrieEGw4QX7vtFgCcXNKs/DlDjvaSS9iQxokonkcRQXn5TxKwM
En4y6MgBGk0QenNDzJcVFrBTEroZ3IYvLJDqVLWE7xaKApWaulZOVAv4Zr6GBuuGpdFFoylhrglx
05RlxCNo4/2v08cIES5YkqKfqpgwS2ZotSuqY04Km8ycdpA2uLKlLDyVXN6SE4d+vKQabiiEyeNR
q23WUEQDMdZ7IMND26ZX6KCd3ZhBe1RICkbsYmEdR3sVHZ83VcwTRlr0UFbcpMxroKBhOmjE/qqX
j8qy8ib2VO7DC6AN/3BPNq2C/DkBl3c+s0V9BZh/wqjacMeOyEK5wjYU/eX69XveUN5+qNBYGK0f
7LZl2FWxN7uthxQNFOaMbRuhjc5TapNCIT/uIBecXH/X8p1FEaYmOSAkhSaWVOqn1sXM85WEIlk+
HG/zshwuxKBKYUSWx1w9jSZJkdMG6xdZqAXZu1mXh2AvGNbf4BzH+/f59hWFm5IHWC25rNV4wN5A
QBtV2jHrXjFshUDCSbmdLeuBz+dX+zY46KVyTN5FA9Y4uelsx+vRn3q6tc8+EZXbyj3lWSwTvJZE
mvwoRbDCtweJJNrjdmZRhN3ZSthSOGR+evRn5EcWP5tErEsJ4XRRk+/TQVplr9EwiK3ZAFNSeYnx
BEG4SaVkqfXCGkpPyigDvUItPgYa5lfl6WZS//c+/WYZJ+/rxBBN0qdVzMDirBCWclI4SM90utnQ
oTDeIeQV+d6FzOgbjYf7n0GlQmwaM9jpCr14vVI8VKV2K9FZN7F0aTLTxLtVZFudTNAH8ZzNsFc0
/H2ZX+eZ9DXn6CHIiC0Lyj3WMXNthxs6nO+bJYNFVNStNKOaKhDxQni/TaRuR8nKlNHiISNqFx+n
UZYvch3y+qVCU+66VPyHaMWbEflKzZv0YXsPWgRFw9Nx4roCsyvvJOsudlPG6l4Ug1Yr0moivuOP
TZtf8UpWh9dG5O0CWPJW6KlqLhN+KVBuAnc7HHuhGE3CBRCzR9+Nb7Q1vIMEbxPNk5An+XMaAatu
+lDlkYhclhlwQZmxKuECDJJDZNLgv0J+0yJYdZGsJNt6/sq7z/ckDK53rdQ2z0LjrYwS2S71yYJS
uTKYmbkuI9yqfSnE8bsV4YPmSOuWG+kGLlsdVzwZXGrtQyYSZf66ho/reFsgrDYuxwEgw3E//98/
/+kPVukqNe1lrJr6SInTzxUfZCtf0r4QjCPseSFdaFPUkRK6zfilKMeIxMTONOJlMUYtMsB5eAuE
5i55UmT9JwKKSn63idrOydq48bJVGtdGuEPGFVD46g5yE4uT8wJAfn97wwYwRRlknyjz1ypN+9Rm
bJ2CbgvmuYywd75MHH+YI1lgwx1+Du/GcLqeh59asrAuYz7AU4R0V/In76KJSw+rhm8GnFK30D/+
XlFNeRnP70dCEKCuzN8uGnuXSoZNyVf3RSyulQa/I61ah5VzdBIUrYbHRFkep32Ux7SK8HXSgVzG
+2INrft8CH1lRZgUYTV8y/gwThUCBAAe61bSUdTOQfkLI81g+/VpejMPffyxlTHKq3+Ih6xlFeMV
B8uHkZbc1YY6ShEghUi0CQ1FhcOH0/RNOaI6Zm5Hyh32PbEii9blLWcRH08X5RVB5p078fFBLu/z
w9hq449psaYWCQE4cUWc5bF0L4UsqVBQLwpWirt/UhAQ4YSEnk1LxnUAqadePO7hxE9oqhq7K8ML
/ImFPHHmwQA0SQ1ECxQ4ukAHJ1HNoi0/TaRzRIrcBSbjRLS1tH4tPnLK9UiE+Ec3B2heWNGRkPy2
v9MSq938EtLufqbKcX5c7gqVpg2Oh41HY2UdvwIgnofmShuhSKYKdsbV7zYHCgdkvNv5nJKUSCLz
JHzj2RkQTdCZUdBMEAOgDI7D1i0gv1BYG1CWvg+304La9Tq8TZc06gpeV+5J9tjL2alzChAXyd+K
CIIm2Db9y/44hUmfmtuAZaieQ0Uoj7hhebwANqtt3/0OeFXD404D6FXzDXeQB1fLQMeINgWHisWM
yY97fysosOyghyx9gNH3arfAunIBTMXj4WeSG4o6pKIj++MBii+8k5DKKOEXTfia2+fXfJoWsN82
eLdoPSVIu2fqWAY8pCJYrMtoI39Nl2/TMoHUvVB4UjTGKOxe5uIEmsqDzQjRBvR9Klf8D1iPfRsV
4mVsxb5zgKDoN9eYVSGZSp01gkclbqlz43ohJjFdGPRus/sBxZOgU/kKAOZLC117MC7vkXKGSWQf
5E9/gWIyHLH1/5P+SojIHsZWRUU+WkTpffSBKivqpyaO/QwjjxZhEHsvG2wqzGFO28G8aPPje0g/
rT7caKlPDMFrFozh2+7ZSmfVI0otEKeNpkWnEVDwaVZCnjeoptS5IriWLJDe3Ib7DVCHVVRgvOI+
0IKl1B9YgkpbUrVHK6wV7/DsvZX0pXhFgKaixeYCl8jSvaO1BzlHTLeIV5Ym68UO9k0x2OVlvvz8
gN4kKpd2Y6vTiE7I3WUok2t1jg5K8VbK3rwVm/rn098GeMx/1Rik72P6ihNNDjoKLA4x4dW4RT83
+K4IXgCPtiA+uMwH4ykD5jFcKbcBpG2JImYZXIcHVDIjXjKqqeGeVuN2BhJtEmdKxUXP9DEoDNQI
viydbYSlvdBjDkXf6RW0gfjle8LYyOEdMdKXuy7B7bQfIAGXXskuyOFoLFWqVqDHsLyP4z1doopP
NQ80CzuGIevAvtKs04XKrAjwfwDcKP3bXUydPv82IUVT6DUZJcG1+PMFUcpTJYnfhs1uCYKaid1Q
3bXGx1Dkdh8cYmURuWnu+syvX1fNvZfRkEdhXJjUvC381ZVNW8np9h4tfkMgNnWgc8rQJHhcbvN8
HxX+aWN3uH5SupTIwrdN4u5v/5/HaEyR4TJxHfPGu8hiNjrh5xEDgCg/j8NlQ+142YveSB5Yjwcq
1ROeYNyI3FhsLgwnj01jz9xIRojIAJK0OfsdbkIVGkNV5Bn9D6WVHLmvCU25Vp3DhtzXBa4qB92+
TxdAoV2OtxkaMG5LOvICSy+zmIdDAtErCPZyFS7MxIH67IaYgmHs2DPOdhxOgPuWvpkuNA+kAw7R
uWCKAKlBDnYMQTuWEj9pQ+PIWf9p7V63YVSgX+3uDQKw2Bxk+A8dY7Rd5teD0Sn4P3JRXHrb4hcI
rdt2/l9Iir0MJ2OxLOkLiLqq7ApgEIhTeJhcvo1v5vtFNcv7UCwVKzV7mo/pxTQxIU6XCM/1dBu+
D2ctxFXHzKHbaAfhKtM2cO1V7Pft8ybr8jiez5v+VZOM+ol9pHfRxIJJqZmPaEau7PYuFH5O5hn5
R4JwQ8yFwTA7X/3Tjym9w1W0rY1a3SROznP62RdNEb7JOtw4qdDNa89DInY1x/cZfv6Y3kcjnBKB
K8YMI5RBmlVWkYm1VWqE6airADtXcxWVIIeL7EvzAIbzccuOEUcpAfKMMfAL1VD8foRpjj9/2Yi2
FF0f8m9JkXT0f2FT+I37J62wC8RbxxVHwOMQ76/a/wqoHZbreMTWK1uHn6ZUO0oi+uApHY2GMU5u
KpVDNHK/mtw9NU8D57T/SH9e+iV0DtggFRrETwr/i9jcknP0R6w7BaND3/d+xWLsDCL7IXj9466g
JROJzpGowJGp8kaNCdNHtVi3k4I7sox0UK3/unPG0XA64cvG+Q4oaNLdN7QIQcbXoQvm8R0nyiQg
WlHlzzFzrmxKLNOvN/62ce5JnrmQQPqHCv9DYppPKhhMnxTitEQwLDWzlj4SvAhRm6LL1oxlu/xd
ClUMlFZOKgs2UK4P/XGbsDvR6KSUKUF0/PHZIZlU/DKcGB4TiroRCfA2Xs+ghxwQa5Jq34j3lCX4
EtQctwklV9f71dW5mwlthL9tvLSDQ6azqnFxUZXn095lsB6Uv06WYZP1529R1MvYuUoA2QSdbrNL
EeNCoDcCT1HZnr9EYYUsE+CvDpcR1DQ1PyxaGx1tzpNC934N6YnwrbbaCE5fkYaVkGaFi6M4WifQ
UQ8yr4GuucdHeroJUfTCDXyjxgFc4MFh1Zjy8YqZanlxO2VdXwsx4UdUuxO5DN+mN/KlX6Da6+U8
XL6ml9S0ofiwNf2v5j98t+0rOwj1QtXhM27k3mBu3g3zo/fhZnyV8aTsr4qtiKszAFFoOeLEIohT
6sZAn5ehPO+3WEmRf3UeCnRyVd4nSBr/hMVAvtZWZaXJtF3IAg56CarzIBJLs6XSNad0a51QFa5E
73GBozk9zn5WIJvaG1zdN1lg63BwRsxhVVFzkUQRGl5s6sChEqBwrvx6EZONHJd2DVS///c/s2n5
JxBG2hutAluCDW2SP4frfJ6OP83Thxmed4V5yiKwKVikYS0lFc7Rxk5GoGmFdEgrq2O3zshQuEFj
q9hGKpgbxfyk7FGcGYxR5EEXZod/vPzHbUbPWxHXgn98aIrf2PfpfP7LeDn9J+CvGxcNe333vLaV
CVf5qgjjmPzP//yTsp429qlR04YFDgucj3u0Xr4pV9eEZjeR+xhR9ZNk+7ak+6BpN0INYc2ZT+/T
jfFCXOXyx0BlsBqwDSk4L5UqD32LHRmGOGKlzBeJSQXRHUUWlMHDq4OqPQrRCggWSnukrbHWa8xV
tnckE2fBz67zFf+ddeVnQi+8nkfANoAiL73ekMARiAvRTelcNPf6WN6JtoVkZCGbJNRxKAYIQUKT
BYhb4+sE7Z0UwgWEFizNTlPjMCNQa/zT4u1ep4NLw4/28SrmWu59MmwW82fq92k4EicdKDvkYBeQ
EDAZbMfuppILKr0rMOCdOYBOd27pCaW0rVrfFltUjhxMEzhD3ZhiAOIqS88WtStfCPZ6x/Cn/SWF
VO9J+e5Mv0SkIykrpDK/21y06wEZ0HJYHwvCboGxulPSxMm9p4e0fCTILwujvIszKjb5P/P8D9Zz
Fb9XhlCCrqRFWVsZ7nP1lmLv3eguZBUc7HlJuQn44ltPXMJyxthYDfXgjXj+gxqgJsZ/gXm3IHAK
ANUr2TIi7UUAthzmLFUjb3ZzmZlYZuEa8NyBTouEN1XI+HsRqS+/IL3pkUh04fOPnP4OKrm/QygG
a/vVQh5X42Ojy3hU1DRSyj/Napx52lYuXebfq+icXL8Ja7+/YRGc8ioEQwR98BtakONOe5RhHyrD
Jv6GoRpjxkl8RohOMJZ345ALLxsKjyWx0o2YPKOTuN8GGFKU8j7waPPgFVfrh7dP0GR+w2gGORRq
tzZMcqE5DAWg8K/OUPlgXrMiDNveC9cG8V2q55eCUSAMB42XSZPUWRtwURnRRfv5vRAsWQpfO3x/
80Xz1vDdhHZTkUWiGvNPY504ExUPMZSHlLxVjtHLGyjhbMpdP6LQ83wIsdGy+dR177be2r4ObMGG
w4BY1UTCgwqJ2NnRWpjJ71+FkLhCzSkRJidCnWnbWkRuancE5FEezU5tAQw2+SK2ZLKJjrxKEU4S
mUN7wySUbiPBylKKGI9XeUDoUDSBc2ir25m9adDLA5o93wwPpGav0wK9Wwc8VAf9NoE7tidU1YVB
iqoWftOdSthAhHnF/6Fdhgh5gIZnL0wEUaHcQ4l31GF4IA8qI7CdBYcOUWAV4URw/vXu8EPTx0IG
9Gp9TSRv+XSYL8r7Q5+4i/nEVtgcvPt534o+54KSr+Sx9ePoYB4eFxr5fbEDc/DfIm7dcOFQMA6y
O6f6WSnKIaKTvXsxtnic+Ijdb6u/RPzzNL2+jjc1aiXSNMIkwnGU5kV/w1lG5nVi5Frx6AUvtE6w
Y9zkxkEUeoyr0IpyxmGkWA6RScQIVG7tGhFUbdyb5s6+29HmvsGSx8In1eVAWeafD7yk5ikHAb0j
xnffiBrXIm/gu7klMxoyt/ui9oXTDusgqtIU8j2iQ6V93ouIagC0sY/TFjUwts4klzIeiSMGcdbZ
9fx4m7SolsjAlTh0z7ZxnEcIr9kitdudRxQoSq0NdsttHKSJ/q/h2/AXykNgFTf+W0XGZ/HQHWud
lRB8UG+4FP2flIsyR+szWFuhS6W5lN5bE4a92h27WM1cIeWtLLwJc9R5LJP4Po234XZ8x1z7+GM8
biQ9+zL2fgyzGzeB3BFobFMyCfFsC31FFCwwA/AVCfP79KExl0zg5c5yfLKYBnB7FQFTh7kbAWVw
+OUvf9nDm13fi5VUGMRl+y2t9w6FwiVtYMCxFJ0vYm/eVbPREEVv5EWQxmHf7G2GylMqKJourzC4
UK1KouMqQ1J2liMg0UwLKAwo3phPMAHRuI3zm7KsIotll4Q852F/ShAFE/LCTvAdwO5NobRCQ8mG
1BXRJ1kK6r7D1Kkz13YqnTxU13UY2HdzcJQFVXWY72bviNp/rb4YfxhnOsjnHMxVfiiPcfWac5dD
ozJQo5v3Gd5NmOYvKw9JYqx/aiZSLq4PM19RdDzeI2tIowOtH6g8xzr0Vyo/U1XgowzpcWN09H2Q
72iCWSS+elPODNJT+l0eSBpb6AUW62JbTv9RBm3XhlnkagWx4KII+zwikQT0RtgVEfCgIV554nlQ
ZFFLVxQASnxq0/zTP5n/i+v+Knzh7VNRS0whK1cbJsfD1D9bCITWuSsf6VcH1l2bSZGhQHGylI+l
+9cGOGds0QxnwlsKVyS7g4KLnZbGZ62l6JND8J6DZdmt4oBq9T46wSvTH4hz6bZ32YtFIDnzdksr
aApZVCvW8Pfaz68IHZvLfP+Mc+N3LCCdt3xv8yMXik4phykqFcvWNRG93Ywk4YZxDiCjWwH3tLgQ
jrLgKiwU5dLidwhF2IhxwKVkAyjL7EOCbSCnzLkKJlXkU1Sf4ZzxV6i/wwZRRR12od/EUJQ2dmsV
GYqotDXahPE7O7BPzv4DaiBQ4ALf7/frlr+f9TEeVuqKKmWTRbA+1gio83Em8vF2MObIfXhRtH0V
K72ar4ORuaRH1IKyXChUH5ml+BntxVZxUQIXEWy2QrHIlUVY6FAm7i85U5MuUDj2rUvzrawRR0sp
e+3zmKdKRj8F4WnUh1XAG0PBaHEhh7vsSiCeD4PtT+Lmz1/n+UN1FcvAz2AhsUYhApdfTzogfzUx
Y97t0rot+6IsfdaI2m53pQ/rfWOwZXNNvYipCx+evTDUscEYiEOulFZVYdkvVyGsvU2FSb1AFllk
mthqkcM8s2/ERrtuVT7feFty76vpRPUaNTBnW+JFYXoRYCtKX8+PCwI5jg9HK6br6pisc8qZ7H8j
Eu7gNilGRBVWGOaScWxTwVbkeRW2iodQtv2bPnS7OR6HnpVoqH6F9qTrcNeKw5tY0JBgD8aPF4B/
NEe8kfzFW6pDddutbgnKqKcrjMC96u5FEwua2KK08Ml/ziQS6Qjw66ts1SzH0tIawfo9ip4FMX/2
EzHDXfG2MKLLNlEyQnjd8giaaI2iO1WIjylyUywGpxPDqEQ1fwVeJgw4kNEDCCkpV5THPAu205GV
dtnnZcwb9o/jQK8jbFs48iA2xWYS8XnxVuJBhQ0h26+sXSuy38cbRPG4Ft9wEb3EjY6xrgvfTLOV
yNvDfCI9Ioiuq+EVSRdGPwubxUajjFri6Kionj7VXVdJ8AUBTm4MuZf5h59PIYr/WOWm4acqCVzS
etfYjkmSXYRJGhICzXsGNs9CwwwXQ2G0kMxLmlQf9uE2HkrWVqJMF7jCtIbCCJ5vjhY1dOGKzDEp
CGJV1sV6vp8Om/gdDznZDV71bWxXTu1Sx8hCiWWtU7POVmhD3RZYWFmGX1jvd70NFTgat+B7RCuP
Fcb3+b/xfX35Q/JtwkoE4E3Y6sJOqK5ZsYk+j3VH7+H/Os3/flVlH6LMUWpEv5FKdtFXuQCi91HA
hXeYftfRk1lJU1Br4IPcbaFykpxgfo1zI8fUpo+pj2MwYUGce5iI32VlR3p9RcCSRfccGN94BV0I
icY1C4SmFmR3X42ZnUZAEBBtIpX7A4p3HqcJ8CPJSV4OmJWFotPkmkTjvGh7wcUwkIdWi4ncHUJG
MDaMYCMjQTFA8nVMw3h1Uan1TOSIswcVeImujoE57GfqUuCfiumA8CkpTldvr3qYeN1FjBIOv3v1
YR/mauMrHkQrTpIJqxVWWbH3kaQh/6oVMmoeQi6jAhyu1/MEVvr36ZheXJE/tdGjSU0qayPMCwQE
GmjlWyX37C5tKQiYHXy2WZymLahQijGBmkQHKzyyLXHEeHkjr/hIHd9JJhMAlnCLVithFMjZMJBg
trMguLIvjcwjMPSool/eIaN1Gak8GksSuI8Eclo7NIF2afKQIyAEbSepq6qvEoBBYlDb0+ETzDUU
PF3mdNITb1PKULBJuGaOTC036WyHqdXElBf3z2JtqtHtIn93/pl+6FnMTOL+SeuU8hvQtbKQ7IiE
2HDM7TpfAPuA5i99pPH8ygBiC7jM/Jk4c/D5lgNni9P8nkXxeZECuog4tg5wcTEtif6j+SfbR2jO
E43My/yf9F8BnstwXhR1UodSUxaJScc+bTpKWBB/HeAJPBCvDgdGpc09L8PK3D1NaheCJAuBXY2n
Pxoe+73WkIpM1gWwOvwqj0Hblg44XZYS8I2y4Rw/wzjeO5guTpkkuwmRuQSbgvmXZ00sDJtWPVnM
7EBTBeUUSAVrdx42457IrU1MmVk3d9sgk2hk8H0eyCkqZTtwppXmuzhcffUZCmiuHPjRgmDYh3NE
wJ/HbcGguqG7BXjThjCbdp5Z2MCHZ/UnrX0JBX1obuX9s8G2Ya81gdfLNYpQ+s2DvMbjebgRR0zL
fFaNnFJobNFx/eyn+TJFkPIvMAngstwH7KX9SCPbVsKewzYPC7/LQtqZFFZTnjaeZCVh070rap7R
dfJZVTeNwZzGN2PxHK7Tj/GcVpfCWcVRvDD6SqglDHlRK/npcNoUGnXoJuRhbQlhoqN0JbQM7c3m
IbBR4LxeoUN7+PhAzD8rxtMsLCjhGBZ2Yz/m0/Q6kQSheWwOz1E19SqJP495k1y+/vSj96cDT4Hh
hUFvB4lhzHKgcNSfuoSjbcPn9BlDpxR6EuRsW678Dgk85gcdJ9+op9atjbn5IiUa1okBjKMu0FYe
oyjMCzPyuxSJwG4TvRk2hxkpVmZHe2P6LIoT4UGgpAyyBzYVdtHkm0ACFrC1uFfEeZ/OOIhEt8OK
mNVjjpmhSNCESEcDBTY+Hjcns40oNSLKHAh+Q9yFCH2v5/EHTI/gSMQkzCuszCbwPiz0uowjDGSg
qv7rMF22OiW6vAtTBnUYKfWrOoh8WlIUIElRPoNFTYGEEgTZ10Uk74EGYs9K6VWXh+0sFiH4iS4h
An6fTjDQDrpp6XzM/bgnqyw+TE9xjPW/zb1AuxWQFjlqZ9vx6STJDpQmUfmK4Yyya3/7OfD0Mezj
PgIc+EYJbxZtE9j908iuG8zThhBZ/fYvKMT6GHMbWYslDvYhYR5fYrYvW49GJqCeQiKbx6DQ7cLN
p+huLW9VbJM6Q3bNqNYdPQ3l8Xma2GnclfWOZ831aLB3C/ej/EQZJgdr8fSw8RLGcOArYT9+ES2e
NPEiGM2SxKmkQ8rC6snUIe2Z2UPLr5XLM26ukrkWRfsInZE62gUGwSqPR7aI5C7sz2Nrvr1tQyS1
oh1B1JT+BmXkRrsBXJxWCN7l0Uq1583bQDwvAH/yBEw1WtXBfc7KT2X7foomhyp08thVR5Xmxo2J
/ljr43qDxvYrXqA2Ug/6i7FCRbvmZhfZ3gpKVwLoFy2bLh5oT9u50fENIse97d+I1K0wrtTI249k
6C2cKZD3m+4n5dRV+1YO7mix2LjcnYpq0o5nF47aqFYsBX8hwxLHVNzMU1jY0kw7nuHUC/uYb0dz
CWRk4l8xNqe3RkDNJcdWyzZgehvCY1IWQVGXNEiucuQkihORISLstKdpsFuFSxLTrfySzDrMMV1m
QPl5U9ZSejqFz+rQWl6MY74kk0L0fRN8b3OT9P1pfB3gv2bIABhsZPaWbpuvvDu93hgRTGbs6Exy
/6kMN8ORorNqr8p5c3TY0Mf6NqSaOyvvOsVvjOO7xoD9++P2dXN/rV+kGEG5OvDk1HiiUYeHXpPo
3JMOStc0tE0sOsyii2Ztv2kBL5FRFu0mUgBq2UU59693UhzK43+hyZh/vPzxD3oCsI3Fr+7DVxuY
xGCTnrOtZfYfZEieJ+J2MPaOyG7kxdpwVGOqxsdeEEVCoEpqON41V1oMxBNdEFdq7/9EzEIEFoCt
2naVFEBDPp0U8PEYKHBrs4BpxivbE4etGJoI6wCGShmbhT6J8CNuMJ3pqKPKOKpSuDAN+oLS2sSf
EYR16/bJMz5tFQPIQXu1r7ewWviDutWU8J5Etm+ccbCKlG9nQ7vosI8ZLD/sKDCHzFdmgx5KNKcI
h0vaY5khZD4hgNukFGtUYQS2f2pskNeEFnaYSUsHCWVENsOXvGLqG0zZSzN1tZ5f2EaKo6aN6qjQ
qimKNAu+zDMOxfk2nB/KcYtsKliKbbdZwJbOHohkoojuOpcGqytVs7sSY2PQLCw3EthpAelvC7K8
db81YbMsy1iGWo2O16IOEcFuZB2NrU11GVvUFFtZtlJO9POdObxvW/13npBjUrEafNlZuJ3GDuDx
CMECCjt9IV0wf6cMnHDpT6UZLKpBpZ8ruDa9jjyI8VbVb0p8pfNeTThm6KlHF7Hp011L6OvVu3Ry
xHzK0mxchDTbXSqsTBtEK67YfYwX0r16sU4be/42bh443xv5gD42uu6TvnfZFelaCqBym7kD5X1K
P0cxZFnw/3OlHBJT8lXRR7C7rsMWt8yv25lDMW5O9oXuu+L03XaxJBTZ4ccZYDY3c3ZNWCgShlQu
s/77eTgHrAx0p7FFhyOkmdLSvVo9zgBVKsg/4AtSCykqURQg0LDS9VpurqqSkUEJEtbOlTKrqfZ0
4vG2sUejKfJ0EV9fRSvRdR5KU8tilZnB2VO02c+W25APXcxq/ayKLEUhZlG6xkZtl1oPCL6SMnBc
GAbH9ws97uGDThvB4cQp20Xt7fqbbkR0wYkHjLTZroVCpIyFPyW++B5wRmRLvxQiSrldaJKFUh5z
EDzTkss59ZuvogWOG/owvbY8NuF0T9wxXd0rSwKfulxYP4NTdpo/YJy1rW9LC746VuTLFbDTh6K6
RIwA6zirfnd9r2Ljy5DKPjGT7qroO8U0hLQqRKYFQEr6kMSIVV9FGBKiprj5NkGVGj7kNLkyKJRj
G1wkzqh03Fd2HgELlkxr1iIPf9M2y+Yrzz/G0wSN+jfFpQ7r4sv9V9enjcl8l1SP0EzH90RNYVW6
EtrnvlPqjaDK6LSR38es8GdjSzXYmpgRKpz08YySJ20pJEJgk+8egLbHN9Xbr+oyln7gs95Ryd2E
tf22BXvHXXXp+8/23f8GnhYurwg75xjGG7owb9C9MF58qEfJhONJVft6UUqlCyVqroiOCleZsWWA
hfG0sCFwvoqs9Y+k7BBSt3ImwP02XBabb7NmTjqsEPJwsd+TTMvttop1nQSFrFhXsTG5tO9iDuTa
Dk/HUCs5+RSzFdslrHRuaaPL76xH8O880jdJwvsjlY/BUy9DUVbvcpy2fOI+9o5XTXvDwnGh28YM
zqpsFE63ZbqkfyZAglF9qiILmzULpXMhvcE8dmph1eRmizeadk1MDthyDwCM22wLLqLVpQ79y74/
qY/T3NDG1IBm56RtQlkDLuycVeE9okDBax5PSomxCFPmkK7Nu3UY+jreoG9veFN0XBGUzzIYA72R
IE6zKs277KgpDUYNA4+WXINxXJYSLxK/QkSo5efl/j4uiXi+qOCCtEKJtpiDC5afK0P4RA0c9oT4
NAmu5/t8O2F6DPFO3ckhleB/U4qVSl9fDTlK4ZImqCtkak+mxmE4vUZIGz5YencJM6eNq18K90UW
GpynQqfwywJxm3fN6k6hj2GmNgaksPp3h+XrdE3+Dzaln7zA3F8g8msjUCRXpGD0GEKnQM9xkiCL
PsxWQTQh58L2FMk0odKzFpQJFpmytgs2NEECFirgUEqfEBVCWWjl6dM8j17fuzG1T+Ni+CNZMi1G
BuP+SYrwyM0VRe6RZKiPJOqaKNdDkgU0a5o/SYa/nX9e32252faWuegOCUG8OueemeSWrW6//Dy8
Ddf0prkwDrmodTmhJFlts2wo4rVgIo6j/ek1/i3NQ7mXcXmPhWt5mhi6HYASl16bPz9swlc4+z5A
kZ+9EYVd/PvLKyyEUc7OuNggnfBfPK63pDkpRkAjYbBQ85arTjhrwN+Q97X+teN8TuGdlt5WQuGX
u84Et1uoq0WOnF+t754GXCx9TA6FYI/mxT6KNpmvUM485bzDavY+D5In660nHxDtvA2UUd6ptJQB
2aXPAJLsdwGfzU0P5zRyANHtHd2CGq9YpzytD1ri08WjjYDXLDKUw3F5cZrv2BAG0401cgIpDDuD
zGXEZXr6EpCOrB2GgyviD3FzPaKiFZfDMZa38f4LGYynv8AN4sfrf/mJyxYV49Q86wJfm0R1ce5V
LUJNtvtoLu/z7Q7AGtRAnCo3FNXDpMydj7X/F9KEC6GJ9hNOyyXRQ0EWrcOyjhP1r8z2SqbXKgwF
Ll+IPqb0Y0dm64PhK+z1RIk4yCasLcNHuiiEBa5rgU9L6LjnbXpT8fl/o39l2yJeU4FcHAPMxc9l
zmFU9Uex/E6hVThaGJUpdVqpzqvCp+GRVFZg0ELadak9KwRrT1CUKaoH+A2mT13fh5fxnkAkINKV
I40+emHh4Rzdb9PygNA6Jzld6wh28eqcS7/QuF9AL6XYONgda849RS6iSQnwbfXiG3VEmd6a1P19
On69aAOYGzEjI29xuBwH9bGlgRbDGnRFPU2zkL0e5DRGl6eYSrhHOZIHzDBF45mtGhv07R3GC9tL
Uc9PtvEUWPwWpf24XG/j6/RDOUDRJSKd47iiV1Yk+qIgMZaDXxx6s5PhO7Y+xT8TZw8vy3ymobkM
IhT9qcYP4MrQccN2FMHbTJO8Fxi6Pt0TornxIOJACuWFWbELLGOEjhoQvo7fLX4zkFsWrHFMnkWe
lSv8/e6/QrLcijTPHwqROpxKxwGW0zR8zJeT8l1Rx6ZyuB8/eP6C4SgIlalQW8+Ar11s2ti9ANTm
6OqdZ2ZdVbAfFvWhgHPUtMMtYpCQfh2WorYpz6y9S7RQtdFJ7Gh4fYVB3aL6JNfWVUYBfvFbQFr5
X9Br6IiP2hWK5424rkWUfzgxoLFQFpt95zfogLRfz9P1qi6pinalLe/Daf6+aFtpY/N0/BI0zHnz
q4KXyUe2WBe88DPAdpK60Vgvit3tmyZfwP/HimpxP9gcqu2sCQYfNjxYaVrukI3ceNxFF8OY/Rju
t+lHqlKAfzaTvMtXOoHUgyQRUdB+uA0+z9eP58KjdrVLCR8gB6T2PB91X1UMv9+eiPbwij4240/e
pKtl0UBueHNdKHVruYw9YruMDhO9z9cPmKv0YjTqBzbF3e8z/hueqrbR8m/o9rGudrlLrAKHGyBF
eH2o++xjKMz+8u7YSHvTxWgTDLCsV0uy0Ukn4jewEwzBlcp7vsnjcBvVbbUxMYXvm5rJj/fNpykt
GfTZKmfJQKT5Bts6Hk6T4SQYXkNGwut0twnbj+li/0pviWpQAV4KMssgcC7zhccVn2gOUlyEIpY+
R/Mwr9v45C74Vea5//gH/hSbLfhTMoBPCAH7fyChJnE3jf+JBh0rnmpHHdkbti9QYLMIKbR4xY2k
wJ3X6QX0/nP6PudGKn+1VCW8cVjsbqKJ5WfOrYm4k7EGrkKwdARxoo0dsPLj/z98xaWteBAYHuXo
KOZ5jGuT/LD1FyDAaV4ngFD4NkzUge977dPoF713P2gVGA2NXwZcKw59UzZU+AvxU6Hl+f1DH0sj
OFnmjNcrN0f5+Ljs2oA/C7CVOSRpbn3jDBvxbAE4MO8rh4eGYlwRLp6JccyGHb4MWCDLu9mHeczD
txkS6ud5uKcJtXXi8BlYBDtGbuAypF82B0XoZVf+ZQu+/wdfoZcFBf3RSVFCZwcXeB6uiyaSKkEH
Lbo8EGrc6kddY2kqnn8ROLMXOM/P29y4j7qLcycvyZ5Q+vtSSDfIJmTt0138Q8VR6zkxx1/M7U8S
A+08xFZehfO8PR8+Lrs4UehcRCBtpc79h+67FPqoLTlZ91t0bpF+5F7SF6DiC1t5LkyWf+i7qsRD
Jly8TDKfl0s73lYlGLlBMFhb6HMaeaQrl278gzdRN0IaY1VeHZXv24q99leM47ua5Ab+oZxVCwWP
Oa6+cJraK+p/sLFaitvCWrombt7tkEDCvkI0h1Iqp31KSQoxUUeiq9P2yUSNnts/9sUUQlw33gza
UN9tqDJKKePTBytUNTgUOEDHT2r18Vm7P22cM6y1sGWwFuSCTPrv48vbGZxRpFuclO8b9z3IJw53
XS9vX8zL+GJ80C+Yn/gC4ejkRCqkZHF5Wm7soFP8eXw53sgkPX78/EqBe9Ao/z/W/rXJldxIE4R/
EWVxv3zsllrTek2a1qo007MfxsoiychM6jBJKkieS/36F34B4AgCjsijXbOpValFJAJw+PXxxwE/
r2zLZ4cR7zCKYVIf0xWKZZi7564dgAEAm9fu8vqa6iPCdSu/SdLH7Oobr/u8y3+j7Y/ueaowd4S+
vez+cZ3fdrOJdKczsb3elJPqRBbdt9vBx8G3XS+nH2/gZiBxxqJuqBYbalwuS+k97hCSIU6h8/zs
dgP747I/zdv+fuFX8vVVI3evEjaT3snoCwqILme67LPZCyS03sw6L5eDH0N4EL0KNBAqvXYv9lbj
jDQSbrGCWsujoyr9IkjAYGfzyC2a5/YFsqJqBp32JK6ewVahCFFF5nB5ATlfvkBd+JzgjidZ8g9F
DLZ1V+nv0D2ZdOmMbrQJnrHFCCzTD57lcLW9BxufsiWL6YNEOD1l6reFaZrp35d1qOHotdD4SX7v
acpIUib+kYC65JzDs5BZ5A8kn5Oj0OgaS/FNBAy2evNTZ2PbTmzeoZI7w1FpGLfaSd2WMy+9sU4U
6HrPtoA/943AkG23wxeVgx/Cg2+ibxtcSuV9C3kfXGaZCunGtrkh5OJNrh+TUmGgM/TPnBHVTyLr
X9ZWmW1CtWYHjsKw6Q9eimQ3xdaEyzRimUbwJp9mRG59VlpaL3UQV7hhVPDjz35iOfibwd5sKSm3
x8tt+rieVNVfefGoMXyqbfwU0z6Yj/JWO+UEkgpqA53GL/5Z8C4fqL/ngyJ/bSh/9crSTTflvKtR
fKEbYfsy4c0pJ+sfNRan6GSvh1foi6ED3i9AUZBIldJdC63XUICaOlvlIIfAO+A7hql9pPCcFw2L
/sEm1X+PCHqto5qEO3Qi2Iuhbgtwu/0k8Z35duWK/PsNYqXgwE7T+WDe8lV7Hf6xgWwP7IrgCNOM
pzA2gcDZSeFxb5NUSt7WV5V4/QWODqItvTyQOQoJMCz9oInJzrrLJrboBxnQFum3RIF6n5erNnSB
dtbFd0aH5fYEeZ8Jhz/7gguQFDKjtYpgoHOt184TnSwv4KZowzPEyShncMe+pgrrJHbC4enwH+Oz
uJAXdT4zI4rii7dCDbYIuKxEf6xRhEkMNf1c+JitYyV6sreZp1SKaEdUdedgE7u35agEcl0bCAhX
qmx6g5MA+juoWhFN+Popqywa0XID4o6jYvPKInxLrbyduzFJh1y7MW1liNmAqGUxnqACAyVFKI2d
yGQ5H3AdVWRurOykaQDVamfzOJu0C/zL7a7l0Is30/nE+BUZ9s3KnCS4KbSno6AbHVAgepFmQJWW
LMSSglgJUyGfbUaIGn9zHuXgLk6pQ9OviyDCthz+bt9uijQ2LMfblukTisC1rm1kahT3zs0yp/+g
ctGSIvPXjWnEeh1Ist+EeSimiPdz3LaEmfKzsYmJyVuQaE1hyKYApwyzAGMkRCW2OuRa0nyGUmRe
qN0x0GnyChTxEY5q5YesUIMwT6z6OaejC/MdsWDcMrFtj8llTqjCzFww8Z66WjNBahcmv9rYDQBu
DONVJWDqhyBargVuNcgJKsIQjbeRb/J1goE2yCTETgexcmaU3SADQbQLnYzBISLKBOBD6IUXCf8K
5u74NLUDOiqCVgllKXpSPh3wNWVgx6UHGDE3iqHpg6iKdTcj5eAtb7EuVSMiCCT+bpqhepao80Wb
x0Hi1Ig8KhEru3yTDz8/kZjtwqvkWXLUQMFzIrm5Gr9047Puq9ABkuneeVnMxsiPAqF9PepBTync
bg/Wwm/8fJDcxvIzh4vLzBPXHYzTgQtRmGDJjJRh4jeip0G8dP0sNWDnYZnsYW3yrcSr8RBpEAcy
j4sxFDk9XAa5Icu7ON95whDj/nGQ1hEZHJTLF7avICShHVEofHrlc/pQ4ZUyk3F5LHubOVP0SB9U
Qbgo8Bn3uxmFERHDme34kXVIoMicyFaCQ97L9PwOIf3WEmRsUhXqtHUNxcRv7+YRIOJ/mZVwsQzD
ApvrlAHX/XLZvRyVS27bMJcyPIv+gtEksjQbj/7lNc3D1lkAmXOZsMdjY+4btQiz2dq/Zv73ilKv
Y7HIAmzv1+l2h7IPdG69PF5fNWPVhaU6C29FQhE+RPN6vuXd0arphH0gmgVKeZpTPF0uV4WhiNKb
XjJasArtUAWR3vXH7sO4BsuP3eOmPr3Sq4G6QCaKLrwDng+7m8xp8fQVJRivhVaRQ/1ep69YoMvr
gqIIxIzzfTSekb7O9V2tpjMq2yq8dkB4SsdM1x/TDRJp3zca9TZ8RX3gZOoSWK58OmZ+X6a33SYd
WY6VkD38x+AlBr0T89b2X+bl5TItiporwhR0WRTx3OzmwKoXys78x8pXYwt8rNq1DIEZY2xH1hWh
/8HrMs+qy1qH4WPEVMNvP1OOlL4qcmA2G/XV/P16Ou6P99OPz6mtKoxJSvEWDkewaacfIonOd3Y5
b2x1pDvwmqjrcZ5f6eQK+5GBPA3cCoryzOHrzltRi/XMf+RGNsRiUOIDESAE7LxZ/BVwBWk9UBiz
cGGzooYz5k+vmvQvCk7kV/xi+QD3s/H2oLWPYW0cICqNjSVOo+z8Yj4vRr2Sv6Knoeyd1VoV5FSK
qtc27/+e4PQlr3U6X84/Pi4PxoKpU/1w82y9qzCAs3PycBE8FnSHebwl91mk2Z+IWaXyn4aul6Ru
uhm5v/8e71rZXOcvVjDBccyFQNrdtwU4/NRxgKWw9FWIr+ZRD6tcKn61sla72pZAFe1u5qBgmjuK
kjVIUFjK3YSdaEQyiZ9fCeZqXv398jgddjjUBchCoaFdOb/Bf3TQ0LqfiCDwZb5/m+ezfXTKSuxG
i5Vq8dEQVvA0e+IbJU2szWTDT+ZUMKzqSdD4S7mJDAWlUtbgDFnlu03tS2ZMW7JTnh5vHz7ehqcv
KH+y6PyflA2ApL/gL/NZEIGydeknsiUZ4aqrUp6JVWaDpg/8KSJ0ibvPDvxcydLoPJ4sgUKuRwE3
X96ORiObRwJkmUfgbltsCgdMGqpq7en5IxYBFB0XHxGR1J6zh1O0gUqxg00YKwIkh8fz/vTIDEjj
V9ynbzGQPk346mfLw5HhzqvNTXMkSwFssnaplEdFY8J3d6zvumQ5/qtmG/vAvtAW/3b5ZlQHD1zZ
fYCsAr3I7vz4eAFc0iu86BuYwtusWa+y8KYIqQdHGV27NlAyGnAUkDmAczHO0P2k3E0n7obG5XaS
xR9W0E5x9ALnC2asqu4ntzN1D3aeV+Uda36MteZZjKFtYHta1MPuKyB89tNJ+7H8kw6XwyS1+NWK
WirLKmaWrK4HBpnLGxYtgHscHi4MatspVQNW/WPMCBOSHhOfd9+bJP5bdYJfKXAqZFMEe9rahzGG
DkYKoNts/LE3zWMoxQOiom/NF9BuugDhDRUuw1hUraZ+pZH16he3Tpzp1h4AbsJ/XEZt1s1KP5UJ
K7NZeVb1s2WxcyXPO+lm0BP95+Ooj/Mj8ZCfDzqZZ6BZ9moRlisVEnr24uF6W26vje7eiwJkaf7x
uGnqeQx9A3aua822j2FkYEGcs5B0OB3lI6QV9bjthVUu6UY69bxAVnI7PqFblNon9FH3xPgQW17A
0Ie7b0M+CRekUYOJU+7k73JC2Dqr8+nV/3cwrVc1x0PwhznmL8pa+9LwdGyEcTlB3H4F+7WfD7BL
YzNIDSqC3NRpr96/Wnp5jzfNSRmkya1l59HbMp3ZfVItmJAhrMU0T2+fJAgoNC/7+4+r+u5bcUr4
rkaxJatjz7Sw0SPJ9vRSJLFXDyQrINbmohjopQN2AYQm9/VgH28wGyyHbFStgQLF781X/G3GvAH/
TS0AER8jKPgxHCIZ4m578V9pwXQZBtNtPOLd1VrMW8d8AH5ROXc0kDzWn0VVak9ojCkLRxzE4n/n
kF9zBfvADAZugvAQbKhtMyx4uofjV2VloQPF8Fkq/GB4h8tzXepj+n66vIGSy2QEyrKJLfvsJZ7u
i+YlCrUF3nBZBN2u9nMxm7JB35dhCGYJFI/T+c5Oe6X9ugjEmR3fotDcF5ljqZ28LcELgsos0Gwg
slSnp2dDHloRrt1bV3Q+41TEG3JYwDNGjnPoOtP8DHHQkHAvm56/TnPH5Wtaa5FtobquDmuR5AIv
Q8Q/zzpQSJWm+IRbDGj1smh9TsOzfkB68fh6nPOZpbIWBkAyUBR1p3lC0QcNhgv8mPcHDEvBeFGz
qX0YiVVh8z0l2qnTL5t1E/a59YN6tykYbDHO/IFSeIuiGFjUo6b1ypjTwDwtHKuziH0cb5xuJMwP
vqNUiwV9ctHEpLdITGFkiR/TaY2nPJ3ZYy4MabvnqMHW/pi+G2ZWCqZ3pVOS4/M2ZnVhc66RHrSP
5mP3kUAh+DJwaMJcznSwcpLLwogUHHo75eashotVTpqr+5xZYNrjB3RvQ6YOqqvk4Gjqfuxi5r7U
coVCMYsA91P6MCcw5ficExN/YJXxy67WP4vfc2h5u0/7L7o/ORSRvGqhuUbCA8W8ZS8V4F+O5//O
OBjtKpk3JJJ5WvZuCLNJlaxacLc/aj3jQWkdshxitTHXnXMU8vbTXIGl6J6x77e15OLIkxXWUm5a
ujmqqYpi1O5kFSWyQbn8Bm3kEJcBcVm3W+UMSs2sNMGL4HyRy6+yz8JzHmttIWnroNxk/tmsgxau
yRJrFvsJmepmFxHcT4ZbPxOPyyJH4013/FyqOFybD8arKUzc27BEcz5EAOz9BtY/n0x7ibSotxXS
o9Yc6jIorTADzWYRr0SCQlAJoDcSOCtZk1kOoSfQe5eQIvaf9zJKURolnp1o4gP/hp738O8ZnIbe
Zl41HSt8LigrMt1jQsoa7fX5A6oRc19bch5KbOKZM2sUdiwajXlUE5simBbacoMXoMmDkCe8x+eA
JBfj12XglluwEQ79Dn1f6PYC442Eka6nK1/srYJir+ipSTuRuTfYRqz4WmkxjN54aQRRycXvQq0E
Uc2TH6m5ULIGsU6yB0VAbjyTbpGWiInpHFrVDq2CpN0NUTN79bqjGaqi0NKiXRU+aBvtaWmAsYtF
e/7GqaIP+Eqq6h80i9WH6BqrCLQ9j2H2lVFZ87ScfmyFsvRd8GcriTfhlm6Xzvju4maEGP3bskw/
NFcuTHpWqzBP2qWYAtasY1HHok7gDwL8kEvBib7+HQQG2vOtYiuCcgF2pO+aJYjWH1Fd2rg/562I
CprHM32ufKB5sGMo2WVwDxkzqN5CGXy57W2U+hQf6wzgng15vL5O3cG/ttGybmIL+4wK0IBhTJXP
p3i/ErJkvRxNDsNMMBrVkhPC30Uqr7ZMmiJLWmzem/m/YaoP2pG1tK9tZX4qD7+Z04Mk/x8vy58A
1/j/QJlS8+Hq0I4zxn06IHctWwqc3mLudYFsUc4bsx25K6tRlBpqT2qnxmknq5G2aJFMsmiMJf/x
16/H+XRwhVMtIuuDPTZl1BMk8XIwl4xCKPrnBOm6wu8AGdr4KfKDyzB/wTFjqZY4ipgjR8kIW+dI
D0fgZ1fGAvFIUVe7oDqiGp12p/8QPhtWlAiyIh9pU02+buqI+0Hw4H/R67LtkOjkA6dDOwboN+ev
o2f49QgTTLMJt1os2lkZiQR7G1GFZah7ubBDNp8elVbebIOIjYMYgpxmMaYr7I9X+n8Cwwu4Kg8K
OxyhpwTumoa9qhHaENMdMvVtp7Fc3t7IwOa8ZwkarF1Q/pRNv33A3L1AKrUMehsuyvnqptQy6GEZ
rq5zjufnPHGpqr1LQ/dpn29GPC3c3pXVing0FM2ZZtPrEVBOUfe/+550lIcgm2KHMR3ENFzARGta
PuaiOdCEOnWeI68mhhF5zsoyRvRDvaFKxtl+dFlZFE7sPJpXk6M2tik2nCcTSPziUZhr/1Pz/PtY
uI0eDCJd1OcQflmQDYSzOZ4f1FNjm0K2JQTr+P0t2MvokXIojfR6qJSgfaWMvnA401Ne4gwsfXC9
t/u0QJ0dUMGcX4Vb0kxfLTPGBW66ENcj/kqA6tBQEm14LU0qwtasZOjz80vCzCD4lzx2WPOAx5i6
iwcN2gNoYv7JGY7AyCdOPsbi0rf3+Vl2LSmFFjRJRAlS2llCp6/QX2ZW3Olp0FKkrWABFo5nXIuG
ThVJCSjlV2M+ztUSN6JGh/Q8/efy4pFc+M9lyesYtt1xMbMfJ5pndhx4aCc1hBgQO18V+0kDRa85
89VQRtQEUVyt2l6cs6mGFxKOWnrsvUAmqW0abSwjxn07JkJ5vf9w+1nmN/P7mw7dkpk7Cc8mLwGl
mmNPiGX58ISiyeUxilhbiTWS8F6w9wH/9ZaLlctG4IpLMZiIOit4ThTP0sP+PR0iIjvOKhcFbYNC
0P+K/qssIqKJVR1ko97ubTbRPvT+rlvPNAMmYZu9x0x5j+qTbSFt9RxjFk2xIVFTFpXSnOK+yOX7
1QJIGciMbRcotTpX38ZqoAnIsyauVQzFlS67Z4tmw7NbypHGfdnYQNFIo1+g2ohpR00TiorSAOR/
lmh8tvlI7UjS4bZ0NU7Q57/YUXmfh5BWkfxGAP5nbi0OEu6HrOppImePuyQE2KuLW8DaGft2RRfB
5md1cLqEgjW15xix0LxlzqPJilCXVZ9OZGmJWNECszrOXKS1BZxft02yMLNpfW1poeOrlUsKa4sm
8FxTcFdGUnnkbtEO/518CWMrfFVDc++7WApUWAryTRB5RI10yHyjWd8qprcsLsxKE0Cu2PTKRI6W
3+5D+HNdpNC0Wo6qjdWyrG/4n8fDYVYBmCEihDMSJuwxpwVUMfmUp18A+J6GSjnu3DnHnLhvHpGu
6b8mlg924hjEnJosVilLEDQkzt+PN4qIc5CmLmapPgmuy7UPyuQW9uA0kbruGdrfJpifsSXq7osc
kpjfZL4fQ1wMSHuje2/stznZz/ls0Wx3UWi1ia6LFpUsCmPVHr8kZ5OWgoNq3VEgmhi1/L6Su815
tkRxRam9TEdB+Fc4wrKeMTeNOzqxTHAsAiOcMCU9yHcaOb8xS9JEnlrYQeg9UgvnUHEcYSDp+lcH
zR8uYmm0otIazobQI7Bs2hvzE6WoV0MB2pb5OLA45Fu3qmKIGY2YNdpshsSeOkcbVlT9ph66NoYa
KwoNmNv1sTy1eWpYswfg4AfR5B3UXM8YpRMpNeSHTD95axl0PL4cadBnrvOxjnU+wvP5L/JU/zZn
6VDKEGjR2FhOE9kQv9YJMpf9xRjtm57GK+toy2e2AmFFKV+CCDFGsnzwJ9Rcv88JeD1EeAbOlxe1
n7KLJTAoZWfBodQoZfX6nmmUVjGQFp8VobbehsbV0npNG5TQhipR6cJfX5cZjcrRInoU20hpKz/4
WpDAiNLHB1K352auF37KLxg7hgzneFoC1JG2STHxHOCRxlqJrkT4WJt6wU0DSxn18O+ej0n7M2Le
NHjz5dD4d/OzixZizjM4TEaPyr3/izsWc4zl9MUQzUV/yYbD35bLWeGw5YX9kGzQgE0p9/zTuy3E
dHQMJcZ1GLChrEpLhYPWa56cDPRL+ab6UvbitWKkLnr/NFI8zaHJjkRYo2WgTxSIs6nJsQrNdbAj
Vwbgfye0CeY/trJAVLLjGQrd5ViIJ6qToHJ5vIg5sfvT0ezlPE/L9mxnKXBWABBoe7aKACoVoJrL
d8ihBo2HGxsERArTz66Hj9zSgablYoYxhtr9uD7u85/JdPy3TyOT2fiFTEvWcoggAcfwFFkwjOY3
d5EeTG8bNl9VJbKxqNy7PERnIyCnfd4hkIK5SYasYYB8bl6AKdXaZqoiahHTqKedspWZrlZTYp/s
12pjdFzhw7X5Sy0kCINtru49twVwKUwT4jba1YkBnsQYZLvFQ2YYayMi4GKQ/H/PYMFKwXYB8UVA
UUSqgYPaXNax75Ixo0hoZhq66iLWrm3sohY2eLGpPa+6FkNvKcdIGLrnMrOhpIPD4Y+fq7uoL2EA
jwmOd5iMBiiqknOgb6CRGi2he/jj538+ppNlEIHlzM8AKgg3rH8HrMkJXFxzcHBBnpnEhQfndjog
XlICMUs0+iVbl3+yS2KJB1MsygpiU7UnvQw2xfbCnXdiBhAdXOPX8xmx0/x6twvIjN0nqkd4gv5W
ggFDyXZ/+FHtdyRmgk2Hf0xUVzYPggq2yhKdOGbUF+2Gz9rEKgbLcxaRzmxEkqrYLVDUvUkuGN2B
K/rEQZLAEL+xCAShfP7CT7Bg4GUlDu1wwWl464eqfMwY+5in528iVmM8Xy+Xu/KRQoB630J4uT7d
4nL6rHD24nslNB0i3qbqNQn1H+jNY7INGX5Rie/wDFCKelKuqQpO15JJFc0GjVZ7MQOL2rk+pC2/
FYqncHnIJ224VRH2MekFWX2Wk/ze+lBTO6aSYG8ivZ/bXBNqaau0qg1bqbxswInxEEj9Weo6VJwU
eHklt1c+G06jIi9E5skL3+TzUN6r+Aula8dWlFnOpFTBeq54USvCVcVOXH3nm/VaL0UNHciY6KKf
tU1XlzH1BtthBSTu+l0pU+LehN6X3L4eKfC82qeNsJDmHgFAgdfRGZHtlLcgzIyHv0qPhWrDygpV
7LxsXl+euQpxxU8pYkul33lGUJs65vv440X+1A90hjOALrxLqTXwH33ON8tJWht7FUm5zT3L6OFt
d4l052EUnl6BFPppja6cYRWTts16QLf3MkQoRVozZcJy0tPFTFi8NQdWDXCHyjWFy9ZdSsZvmzfa
5i7+sxpFLDhQhjvn4m1xMLyexhJssyHcyn35EIhTaX2lcoshDz0U9rMiYQjROCvf1QrfD8phAeYW
xBfW2q5m2riaIXa3/69shtSMCPDoKF2dIHVotWqQyG1hD3Zlm/xTFBpbcgxltNRK7XG+VHU+7N4v
y/E36GFBgHymGUCs2oEn2dksSqXx2QzR7B1lgBz7sT13C23O5YProBzfhiMdAny79j1hhoojnI/p
uwNd3Oc3oA5mWJWWXhoiRWlb2taK2SH7SlMmZlNsG0chEqWY3M3yKedSnVWVZlrLn0ot6aEkoP5x
flnm6QslnaGuwkzMWnl4hX/oNBYVNVlahG019XNv58bxkgwjjqH+A2iByq5YDW0MUSDujJn/cxWC
uoiw4Mf4OPLqo26iQLD9dP5KzTSRIq2W6W5iDEGylryZI2g11CZAeYI6u04LteBnsORFFDkQHRnC
FV1YPYdHLGU/v6RmBweHF6DV8iVN0bkFrvNQfo51USWCaNNgEN84Qr1Yh/lOLsbtrnckV0OkB55K
IY692GwcjS/+9zlyhFK2nvm0BdcPcBrpZvVc92mgKBkiMbmVwexZsGSMn3FrSTLDcyCU3SC4hCQp
3xYvoInyWHuiUAEo2IwOIfei0wk4cwRPkpBX0OLVGunnWMRo4jnzYotvbzpws5ZkZ0RrId4VdUc4
Uk2rNWWVajef5g+9k70SuqXyg7eKQuuR6WL9rpHmd552t42ophz6GJOE6GncrdHCNmeRA0WVMV7p
kKFlK+VtGVDetmPEHG80xM2zBlrR8G5kjakE/4NZbFi19ICDmO/eXUlBmNeBY853SUrYoteArqC+
1WpWQ0DVVf8MK4fmLETOfSNdUY4bOOqG/EsNsFtY+UPchn2/lUbtNYSMdU0d6SJEDftTvYR1nFEv
4a94TyXvmUkooihq2d7/v8PO/gpH9u/6ZGaubEftTYzyV2MrHaPMQw7thnV3QdiRg9uLVjMxUft4
dsQtGBdt+LxKEORAFZZDEEhR4BqyZzmPNxtDSDLXceMTDiOAJA13ER3OEqqvbFdiH8LdpTx/hiav
jxAlf+C8WBtjezhQGsFIpz/GXP+i0nyGPgwau1SD5L82YaMKOar7z3f7LCrPmnR84EILW/M/PPdM
5EieiiFG5v7PxwW6nEAvMzzviCRp2q66ONGyJekI8rk0hU3t46hjMOvN7IM5QxKlC1xhmnLOVJmY
FcCCjN85fzf/1M5f+BbWJSOc6XSA+cM3/BWyES5UwJivM9Gw2P9JmhqxgjHEeC09gqobV4cWc373
1IifXIC4zHABwZ6Og9vBn0NY6Bt2CfKOkysRfQVtxXsvjzO8eIIz03oLs9NtW7URH+gFWKzqTwzW
Mo8rvybhS2hND4/in1NLk3JitT8xFN3Rn9h6B1X6sBq3CJh7TgG7OzfyaVycx+HC8Ycirbglv5po
roUd0aTM2/1yTR8HZRHdB1lkV+yD0t8jrqlzHWPimv4VGfdfhw6CpEEyB1Vev2tOK35hGV44o4OO
t/vueJ8/3D7SB9yGW6iepHCz7BX+vVWurrMezM1npEzDxbc7+LUgmKraPvHmNr+2Nnxtg6xk0c6y
Z1UWgUqq5ftwNw845tdjovUKBaoPVuF37wSGILx3I1A34prLiUBdx25w9UbseOz0twltCSiNqm7T
j6VOf1wbvLhmzIlTeqnGP16RbBVLCQ2QVkdNEZ5OHT6xu/K0Vi+jVP5++s+L91k55ziq5Fmgs1JI
sBunkOqoTtw9zkflNZTifZW+t8qeCqu0w/GhLBHqxXKIPYbNyqMug0fRKM9zB0msGweHyznFCIdq
RIiQj3PMs7rN663l7JD/2iG0Q8kL1GzkkDw7tx/Y5VGxHVWobqWx/il3pBJi5aMS39i74Q5XKyiy
nlWSbRlValZAzxcxTmY2RzXdL8pLrgOlVLZbRDUnEEXwsPm4Avu02QY3fWwt97EK8Aq/rgkd5WG9
k8/cYVOpWznMdrEN1rIKLC67JjgKbYs81sOGS1s/ubR0j6HR7dLKPKM66zFz8ZtfcOPFEsxE021z
cRRb16SP7FParqoDr3vIGXFlS0MYhNE3fj3O366X5U5HvcHktWIVRJZwV+XtOs/799uP8/19vh0p
5qT/buf+y52TXmjietyNewV8DGlQTCkwbj5t+rTsdXrcEMr9+FAWqyRIFvkcE8vtYVNqwQr35pFO
HRZU44u5r9w9YHTj18tR++BKQI1QpjlufFoW11H6MSqPaYM1OQf7tIz5L6YvyirNxiPDdWxD131R
EYeVRzpVPkv5tOQLRCrT8mM3f00Xx/AiJJhapLKfVnzbi9vI3G4lIMcYpZR9fNGZCwX3oyp7Egk6
IFqAns0rwI4/Li9HSILulwsMm6A2LXrfzrZykJ78E63owKl8dGzMc3yhm7JSH4B0W94qFjvoYXOu
jP6bXbxvo3GIvh5y+JjGkIzq4RrEmv14ITb1ab9/fDxOUzJJ2rh7x8VbsNut9Z1PR6g6w9wEjN0g
4Wf+UJVeqHQLQQTHLXliGUq8q3sp/BK968u9APoNACl2G7fkAja7MgbzarjeSXxlv/H4c3Bn0gvZ
RMtIYsDOaFi20rAsjWsVoc34eA8quZDowxVsvYzBjtMB5oWLgDnZOdm43hxaH5KLZTv8XydhxH5/
PMHBGYFIM8k27pnSSh697Ke94ouilsqbEbEEn3DjMKO0ks8seoeN9kYLvsAk8qT+wFuog9W41vEb
kdK8HxUqtsa1czhhsFMTCP9FGzmYZ5xJMTeud5HksnLnw9xylzMMCXo3SozWVCYENK4Hay2iFtL2
8sOe9ruJB0/KnTVF+Nw6oRTMrRnfz3Fm782/HY5ncHIp2w8UezBDGfjRd5jLAmnUMbx4H53f+9jj
P4c6K9Xv03L4NkEtZG8cAhAE7W/UhVB2oONZC0BNhQ6Ya0Go99TRm7Bc4R8JkkewBaczxpXcQ9vp
j6Rpg0fCXeG00r//+LPRBDf/6eY8MquJoyzF4GsUqZ/4znqIPWEiIHE3c5s/jkEmTk6EpD8K8ae1
H9bYpV+YlEH4B4NkbQFXfAfLAv3d9KmIx+FLCKGNq9NqzJ8pXJZtYcNNWDpNoRaVpp3GORvO6nJa
Ki459hztLtMf2AQajXOS9Gr9cqCQEAdsd32Edp6bR8KlX6gQgwKfT8F3cjYLmxCHH2ZGddZl+O3D
Jmn6GQkqhZ2FV8XD/mA6YvYJDTGtLOCCDA9boI0DL4wpr9Of7S02kqXUEfEr0wLThIdWRq1x+ufe
XEGXD0dC1vnJKwBvK5vCobVYXI06cqAKFqmXx939d36SdvqwhTGV+Fly6nZ/Mz+flz8LA+juPn3c
Rfja2YSxeT+e3+flqFh34Rv4qsOnvCtdNCuxu2rkYMMfKZbS7+5c0wfn94lNk8xeNF8+5rsJyz6m
q3j4COWlfye3HZ79x6R5XKWQumoVHAB7lITPvr6CgwEgGEQQ+78L0b9ZV1PNpTd/HYA3uiH0znPe
cF0Fr4OTQ/EoI70Jvwi3JDWRJ5qOUao22AQnlKwxfBKcI1n0bws0fZzh7Fgt8/8y/bHCureVR2/5
MSYkRPk3UtWBu8jOEL+R5Xi4nL88TpdHeoG2CR2NmiNmiKPwfz+f9xf0/9K8xubUegYGN2Uw8uJl
uh0BiAPDbW7JH3cMHGs4M8iW+TZPyx7m4wCvlfFEETz5fjklQY3Yws8IbFwLdSWtNX21UHjz0C/X
+/8Efl0lPUFrVf6jOt+6crwhvnJS4EWtZLELK58f8/mByXKjjHQAPJzK6D9HpF8h1iLK7svVeMy7
JPEInC6DifEr/FAm2AIogJfj4ahxlrW+fbWxpUkbN18fd77c3bf55YtxGx43iN/ov0qPAGldPoA+
zNeE2NWZv9/No5u2OwvIx8jNLxiOYatE0QcbvWN4w9vTVhotzWEZ8ECzQIaMkel8EcoAIyubcpVy
gAzZHt861qlJm8OrO1/4v1Dn/rWeXKUJC8Zwdvg/R4wV4+PeUp1MYFcZHVnUznY3fjyjHUXp8M9p
rxjXqtxayCtWNz0pFHel7hosom5B30B703ZIexOgYtw7MhLywTOQL04g9ZdZ+AUrHx2z3EKz1W7C
Fl9cH14JNjpm17Wco82qVv1YbibgzgowgzbWb+IGtga1oPKXe/9F2GRhebvn08GcOOc66V8A7wqw
vDTarRctaQBi5I5yIanIakrLKat063kODFJGzSWW2LKjNgYGdgtkuzt6iQH2c5/dAjqIsK+GaJsH
/1jlVO9XkxfLPvzxWYNr9hJC7gt57sccXp7s9DioLF2QOx5EV1m2Clp76yFc1t6HQofbi7FpFbvn
pNoOs1FuH5hQUnS1sGtygP3t9u2yHKStJ7DobTavKBUf0aMWWgJ5z8uRMZSP+51FFrwacVzpl1gW
oQEYAptp/tdXdEqtdqQm37SqHsqYFYCcFWkV8L6v6o66vg2cCU4NsMqyqygKog1VU9MmHIlKcSRC
9WR1TEwEdxkZhDMWprHunVdhzxjeFClhLHgpHpL/MMThlcLmA+vcRKWom/HIWRLSeHWQzK6MmVU2
MiaiezlN5y87178MJambcu6jcAIrJF2wbWVt+qSrIbjsSvoxxhRlTeYwrhwYKS0IIsE5iTNOHzP+
8Pn0Q7NqfjcCVgSZAhOlwGO4L0cjhFhF0VqaWlez9z5xJ75MPnpum4PKufKVvVhMENbRcojqYgcI
ZTwtQ0J1VN56WlHc4DCKqGPEtJqNfql8QM0KEDWc5g2PtahXj5Vk8H+D/TU68Je7y9X/hWMR9d22
YxCbpV6I0lqC76INRKqu5SqgRo6nk/JRQ9fFbt6GDwtlmV2RwZjF+2NJNcmSWAr/d3SH5B1NLpTo
AllWtRci1+nizCg6gN/eLzdmo7Yobtdd/bpcPnaHy8d9mWflQvsmeEKc3khy66EO8D+Boxd95Hfo
Jb1jY9bxBQaE0yWkJWCo/VrgYzZSn2DIxiHSdDbX8Nuky3rtBaGDw+uCePBj+n6az29AwvFBDVAw
QFORi6EO355oIDHewGV/xMqgPXhudE4rmGEMjVQbf8qJOgE95jA64CXC14cA+P8FaliN37s2tPwM
CKL+F1agJhhcIBe9V/mUW9FXiTsbEK8TvCKChqhW1000cQcUNux8TCcu5X9My5dUDyLKYx1EHOzB
WY13ORur8NjfL8smfVeGzg0nbeb77x8341jZo6dBTnMSzdSK6SgutuM8OyD5DlhjvN12X2bFoZCp
LG988YColYNCdmqnU86nCxJRXeCwIVBy1dyj3dkQboktMJkVuroD+iYzQMz++Uhvi/s7vLtUBe/D
OrSYeM1e3NiLx9ZgiDLKr3ROkg3PuM5yASTZYZnelE+uhbnAwcBscNyaxiMDpWs9hdfpeHosmg4u
pQHq/HhBn0igedRp7i3KHawc8d6/aNKACKXSHnHoAllaJfmE+RXlbFcpbIRIGIBAfMz398vhMzZC
CAYk0ho76ejOYZMRr+kFThodYMXWyDBMzFJe++NZp2oQ2RT0W5r4Ss7ipFdqRQp0FPkezOchygNq
HkdkLkBYIkcKmHVRNZcwN5CC6aVlJRw/RQ7pvYk3hKZQJr8J4Ml5cNrZ/fIGTqQoVB/BaE+n0w+1
2ATZ44bd1Br1CP6jClLtwcfb8h8Wg+iLXmZj0OdbJl+Df6nxfwlHatdF5C9xTD4vJ/gM+wdVFB4u
3rnFca5tXYafwTXMx6LiS3Gl0a2EIKBSrnN7n75Q5eO7shkuXuASQ+knv3izzsuJcdsHc44EdNk0
eRt3Wvlv9oO3eWmntulY+bd8kTdl76W/pULg2HBRcOqtE00lUrFtOOPpiAz2mROu/Z/wbPP8J+xG
ef3MUqM/gsb3tm9/HhprLW6190cML6UO3iL8fP6pI+AMRW21dB8I2b98wqM/YRy44fDD/AfmOzqr
GSn277X1c+4+qxf0ZAKecSueLr64IdgsgO9WT0STX68IMAdZ2xxktLzCJlav+o0yWh5cDh/UFBX8
hE3FjZLFxmhcMa51aBRLUR61EatWIBV+1oAJxD4Vk/zX12xIUsRyQy5ullkYO3E5A87lQDqs6LHf
7D1u4w7eJ82d7LoxFnhZlxlr2kaa71qtqKy6sGDaWVjnHSgIfPxHQA9tUlYr+GGoYcV58d5ltM1Y
GX4a8hybWGaR3Hd0FfisXn4oRQEMLapQmoIUJUXOVka11KQoDGNSohLVGXqDTIyikE1iyO3PCGSr
rWTaHR1jHa1McUmY8uIUuatI4H6Q3Sa9hIj8xHxJrTRe9WEVQnqY+KKn2/nx8QKopfPtcYUeHi0c
qscAL2CZzswJ4HdYxJnRpu9aiFG1fRghlLY4gn48kMDxY1WETb5yn25bKQzLlEmZCEVlVAGEIMgg
4gUr02Nb3xXUhNwPjEa2Vxwr9pOR4eA9A0Oi6MNfQQM6pAmUCP7kwoSjqFCgaWOB2sf9mHgrg+dA
Rxiaz4A7LSAqxq/HBIvI4Aes4BF4K+AdRU96ZsKbk9kQiz3PLUqlZwdPIU+ni07GYPMxliEQklUp
BTV4lAc2L9ZPmbPLma779Zii1Bj8VAc8KF/TYQ2uRg2DH2mAv64cGpuDYVbd2gfU/gM84tPd0sYv
GP1B+hYF6zow2T3cN+I1UlWFwQ9icdvpo3F+mulr8OTutBuM8Ieg7sfPGI1bcpHBy0ZbOuynk4z8
tZT+Q7rVpU44yPbjA9vTk44V7sKLl6j48ocY/wIYR5MD5wfPEF6uRjqxfBJMDOTEdo+kr9h/jyBb
FugPesqZzxGH8oyq+v/mTXfiTYOn1q+8D1emV4rHg59XRQuJyad2t26d80VEfenlKnF++A8r2ncs
4hgDxfQbiluMZ1hrNwoJQsgQALGnzfql99QEj60ZVtdBK2hEwIOfAMBJaTSjUjZUH2/w+VD8fYu9
FmX8oD3w+nJWIFWD56zHL2tILQtQ232+AlWX+f8dLt80RFsXQyCkqix6iNSLaicYjX5lDllhf1um
q+YNl7GQiGvcE1QgON4CkORCHBirAEypDFexGOcpdaiXhYe2jflQ//n3v/z5v/AT/4OO69fT9DKf
ij7tPzXyWzsfv3nXkEEYWixSye2MzjQJF/mANLi3+zLfTSx9fAWUytH83w+KzyzrU6hjmjAc1KGh
ZVWMwUmH9hK8NS1/LVBAmHmga2q6amiKMX2copwJIXojb9c8MePOnglUc3gsOLkUGFCUDGwVA8jy
J/jmRHWYeitYOVegJn+UxkZiDIwdwthwzXMR9SwjnrNAJGGqLjBah8sDif01XcJbLGJ6QIaOHPkt
8AbXuQ54NOBrwP99wzMsyyFauHoGg2aS5G72ehTQkpPRsqijyg+iSTeEVEUz4kuJYoLd6/tEabDv
/SWI1iSMociPyaRuEXAvFLrsnRf+0FUp3DWxJJctiFgrlccGFQJ9VVZEwryODS2AH2JfxUANaXNw
gkQeHzBd+WVR1LaA7TcebCFLOrs//Ndf0kdbRGXNgseyLjcBCLvwgLv1qWCzOEYBXG9VMiyjyFOI
ZxTNzmpEDpTRCrEg3KiVMmpK8qQWbxs8zKqTpT6a23PS03VD34cgApmC8rk6XFF5TqIG17oaXBiy
OVghMCmBy4R1d6PAtLK7sG2VwAwT4JHAG9s8pqGQ2a2C/ilWs6vYvi9loS6Q7TB2AT2EY4U1HGgZ
5EfX9pp61q8ZnLvQxgKNna80tIIcnTQXwSLjpcGniqAq1jJnhgFFv8I8Yn9qGqpNmLIxhimTKXEw
4of5dTK/yyT9TfAgdDQ0WpU8tF2ud5NILmUtAb+rCnS0ugReVoneCDBbBsm4qvVyCNV+uD2zwaNS
mC+LaJ/CRifCxHPI6W+dCc19GGNGwV9pZq5YK/j8STAGP4sS0qkYaNywy/L2fnmcDsiOzZU3tINP
sZEmgyt3tg4KlLkGRranQ+gatLbljEcHHD/e6ISX+c3c/DLletBWl11IOwRpLNaP5nMvZ9K7X+Yf
L5dp0fLcYlGfIwtzyxCS/kXrTqXEch3DWjn/UIekGsVRRjL+tvwve7pt6p2MpAJPlkA00bLybB4t
OErB3TZVLBwI7RIZI2OVXG/BBrsk6z/en10Hk4tajaraLnJ2BN7fv8/7L9zogGWzbU0dZdGHGxMF
ELzOPFKnrESpAFQ65zt55pRdiKv8OgwFvWSBEa5XhQvr3bKjkRb3QoC70Xne4F9ot1eET5Lp5qgt
nggevp0Rk8vzUyzSzRVhLdhNAbE69vmV9AkPNH8boyhbg5PFGORoqRjsWMYeVrV8EJ2PWRCwZj5V
Q6eNsbKuKw0jxCPfYWdeTh+29NbrgNSaFqw0LV8z+rUSb9xm52hSAg57+CuNutD0cxFzgK0v7yNC
JVoJ23trKeKi4UWJl0R/B6rz8slJ+awzJvsgk44PKLmragy7Pmb+o+InAD+VJoFNeNyla8SasBdm
i/vbSS1XiZ5eh6b/uByOrwrCWEAk4XT4cKaX2+X0ENQYkHNC/PMudI31WKMTDo9sldRSvZWS6/Wr
gePeC2/R+3XgNYHDZOyO2g/dj00stFb3Vit7k9EjDtgIUnfGET5e71uyYs0Y1rf7Fe4LwWkyzNY8
ONEs362a5UU+5PK4ZxIiYfBZNUExFD9NQ9R3MSf/KQGeQRgP7aoxaky0a9HQFGXgFCblx1jaK4as
UuxAE8DX7dz2E7CW0LZs6JEFZfVNCIRySC9MPiAWnHOzigSGRpbfmi/QzSyKCusbxWRtzKMzMkKO
CgaJgfVX9WYTRZs993oqHYgicYuKsgmDRKrHTYsiOkWU+YAeE/5AFtON22RpeBCXhecFiTHlCks3
wmPdFs5L5fMRpSNedu3ZDdfXoJsRcQ+O7eXs/U+Lt2V2Z/jfKt2F0hOTVcFYw5RxO+aDBhcX6TvZ
Suzulm8Y/NqL1ijTDUW6E1N/OGO9inObZA+J0mQlcuDon/LIi1QiUpFVCbvCQdxdGXSoqhvp5WPx
wLNoQwzIwmlSDHsvUqI9jvAKYoU1ZSaTWKl926sgct3lCP8hG1PJZvuwTUQ2bp8uF63hqx+HmMDI
uMU7BCqEH/fUhfl+lqHb/fH6CiiOjww4hvNDjRJhg9Lkl7VhKQFxa3GWQnBx5k1cXoktmYFj2pWV
W/rkXU+UbjX7MeynCblKElkELfqsw/xvoj3Hpjhfvuj9UEMbTXKwm0LFPSMUHzTGE6fgqBm0KpZZ
2tC11wkli6FqoWoTpe9WtLeytu5ijcVAT5vvLV6xNwWHAyk3j87T21qNQ1fF8vYuU5N1cvs6qQQS
/cSwkgK09McE/7EOATeWExiNuQVcMtxUsQlVnCzJmaStHcp9tDwhK3dqMwiVKcagZ4w7Is4mwFmO
+53HqSh3Vq2af8vn5l+fcMiQkdlReCsmMPYN8/33ZTGsqs4iLsTU/e2W38Yg8APBUM51QLApHh/l
N2FfwyBwSU/lA8XXDJExnDW3pgla9F3jPiFCwMdCs46zErSMQR81MUrr7e4OkGVRDFEw72EZrX0q
nRPke0uiTlKz9B4q6JQWjNfG8dOaturCLsmCYQl7wjdnr6GXNapujSrAiEotffQxAX8OOZQsYbEC
zgeV+y0tBEFzPJIqSt0BLILgBzj2hxxw3ngodZid8wWOfzPXArTQ/0kMJZtCCaMF+nUTc/85WS81
Wa9j1vfJN8iw1VJOMQxTLF0RvQr7epbpTfcSy6GLdro8EQMYC/bIJCVLCXXzuafnqLhWYqYutoTN
yUBCE9qI73N62h8b8yHNx3GdADKhVF/HLtZMsXJPYFiGWuqumrAyyI/VpvCQkUV56m0bJIaCtk4q
QpFzpF1IUcYoqT5ZVChkuhPUVsUZcHSNnIBo19rL4kK7btAM4TWUF7q9T3p1rVhJynOd4W5dbHJs
yFPKFVCaOlX4I4DhAmPbz9PX41uublGu9JKwu8tsrNiNnArL36JgAfow2Ck1gktOsCM52PGsDjFg
QuGAQ6ON503ISu5PRiUAvy/UzYxzp3FziNuB2Lhd3Q7au1ysUskOK6+b2HqnJ8O3fprOivPGOfNC
17KqRG7hWeUi6GVtg/jvBn7SHzQtCAaJwePKwbvbLgYOtBGGa6OF/dDl6rx80jfxrytUNBmSN54c
u1a81JtHw3KoTQ9vjm3hi+Xw1xg5Sg/HxAygN3u84uaWH1yq8flIkeLmpS5gapZ0lIb4NZHQbPxU
GFpAcNhl+Co7wTlZOEcosowlV86MDbeFdKyONH7wES14utxIvIiWbmcXVj6zDfgnq+CchPgv95Ny
2J7EEgxqF+zJCiZ1RetEy6WH91ohCA+eHjWJQkaY2iLYVFMkTt64tDfRwLNkwLald6+pyot9iCVn
g54PTvyl9JgEOsUmGLFet/kVNwKES59dxdX79duSnIz3ZH0EP128q6dNSo8BnfzHGTJGVxo+n6kg
tCL9j5ETj5iwol0WKv60dFPI6W3Urv9ZPcGcC116NmB6I+jd1MHhbaputJ6lFVmowiWSRJh45l6S
BySnST+vh06Ehu+rCd5X+C7cai/TIXPYfRVo2Pb50fNkhPl2mzRN25eK1n85PYwx+ZYcI1i6gfZO
VVfBU1w1ZlFgpvN24pkLaURDVxehHkq4Vf98JJtaSQz8x4oZj/G9KrvzwgTC0QWCvpF1p3Sjrlds
yv4Kfdu9cnuaoTX26HaCjPHpsjenpKULS+/v4Bvx0Zj7rA8IWamvI6PrhuDBlEWdUHZb2hHpwAWD
doewp2DJb++ziUxy3o3flZhVt3544N+ow0RorS5Wbl2vBYK0YS2h3kBr9ikXZbreH+loC48pyu1t
hQGy2zq/Uuk9TFyjeHohYjvkDwJcSNC9KS5hVynS9WX+gWmHjICGOg9qgLAGFAeVZEVdxRL+0lie
mZ8DA3YtxC4D0EXQ4mMZqBZ4b/PN3Nas0ysKXADGXjLJRC2MzNnrOUyeZgUg4Oh0mQ6IiJ6UssfY
hHTOXD99zvp0StZnhQ562rHGLNzGuJOjEDYTp1kuih8aQDaK1ntCdCv8pnW0BzANcVZkrAkzhiEr
uaM9/m22uUi94bYsy0ZHrrAjfrMAnUzRqxuiRRM3oCRTwClli5PvDHXwHh3hILFu1YpcRu1npyxf
uS0bXivZ8FBSWKUxsHX+o1nqD3grf5tvx8NjOv2idi2WhUyg+lLIULWFooTKsKbgWYyRT+2WyZQM
on9BWC/WxXrfZy/aPpHQpEuV39DdW7TiRCVylSJjQ7RNLxncmyhqA1SF0Sk/A/jWcvcrSW9XPQEI
kdOyWavDCijn2RVSgciDkHfIFjABjcwi7u6XL7PS1NqJdkDMYBXFij8G6ahgsBC/f7PA5fRVe8Ll
GHtHzhE7o7N/2X8xSz1uWkNnmesMy6PPi64KGE3rMoEs0Ip0Ya66btIGxXbM6s+6qsMBCm254v3J
6NhRXBp6J50klBZsDtkSzVBGhwN4GXb4qRfGduZwlWUlTlzg6w/mi05kj0T3ZSYtKoYE1Gs3QET5
ecRMqNnrdR3KeE9vCjKhkyVFH/r8VP9IoymUlbavYq0zmbkKRR9TSiEQ435BPzTQE2rZvCwF4ZzI
BgVluMf5uIcqQxZxJOn/fZaDW7Qt7CSLzWhDB3mIfCe1MCl5LipSDgF6vN3UM3bktu9sQaUsyzL2
xLaAXRUFEK7JTVbGsDu+7wOwkCzqmJQhZG1fqbWg43Z3micEZZ7nb8mhklzmik0O0wg5tLXKGJgL
W2WpnwrkrdS0/xhrD13XKZVejJXrX3cqsFCBFAqNPay64vSWy7EJ4TDVmseGSZuMcGab84zPsRoa
OTzR7XLx9WLbLzT4SB2rqXM1XYDbtKEbZdFWaaf9ZTLvUJO3oetjrwuVpHKtYrQTZkmHT3Ho079b
jB2mve5GD+hTjkxoI7lqBlRikkVn1qu+vQIDe0LJ6z3Ao6y+g3iV7EGQwnzTOFm6KoYyCbHIyjNo
Q8elWsky9HLagWR66Y9cjXBgS9dLT5PpMGBE0iZmjF4Gbz2WTdkjvxERrhq5jl2UTdUFrp+a2WS8
8PBRWDADwkZxBg7A9DyGUFPzY0g5m/ChWNb/uFw+/no5anyfbRSehylynPUKbA22WpVVjN3KkvkB
wNDVJxrUGCeRw+xKZekr32uFXyoKP+ztZFY7MSJ0C3NEgvKJI9+cTitL6dzUDsL23eiZ6WE+Adig
LvPN+s/wUkwkdM9TOo2FCmbZL6dXzRq3Mfc05CBQ5ys1bSypqc7YUhJhXRGnL9oy51UByApzJFwG
i+jL9Le1Q0z8mEz39jE5gDaRJFgqLJ5I8H5Zjr8BE8YJPRtF18iJS1Cz6lrt430UQlEcnYFSa0O3
QwDmoI9/XHOL740cA8nDjHPblYxAJ2w0ivOwnm3KlUPsQmGFqcihQFVHG8otGs+cOSrbvfmvVaKz
KDt7wEDjXBm8KB2HJqmkwUMqx/Zn8u0bc+3hIwhHxHntfl3Q1/4D+fSKbg9jgtT8lyxL2SAo/dFp
bZ8yU4pJCB+RndYThHa3LzAtCf4rcL+0wNUfELyaITWcTNEIYginqDpbiDOAT3c6+rRfdSW0QYua
3QulIjjjpk7yNq5kGb6ocMTHXXXau4A6vitj3eUbAppwULtNXmJ29icIIZs6ZhpioUSlPb06pn6R
YYV+gFwrzMFs0XCHmeamaXS+jecFRqNQCeoWnU668fy0YogM/vJXDV+IbyCkX65tPkgww9Ds1+QK
tWDHFR0suO88pdbgq2nRFegggYXAzWZMZZFwqV5Q9brqaHAUv/LQ8/SRdMEabEo4ReaZdACLPb2k
d1KEO+lyjkjmlIeAxp2RvYy8pV3Z8gla4vTXCdZob4nkYVumqDzOcvA23JHoi/dggcHu4ac31QSy
34h5nUQTKee9JBPfuFIR0rPLz8uSMreCubpfPUHYv9LUiUdRhUc7RoQvGeANHhhtL5njKCFzjOzE
+Cc1aG/w+RxcyNfnQvO2RbO0Y8ARX4nnBHXW+/v8oYMwBu/tkvpccVKxzJ4vG4WtDkYJNPJ2z+a7
zJvETtA0fX9bBsMa3ONWEViZt9kI0nhGVgdxuZjtDG9h9zjP369kufbvx9NhUeoC4xhOz7GTHaff
fnB2+ITDMwHOsr8QTkAh+RsFdZba6SeoP7TxgrJ7vEM1x+EI3AL+Av+TGyXlp0zhWD6QZtB9iGd9
SSUCAUfENqJugzwgXbbl09FhFrAKawdYBfSg5XGnVfwMSrNF2JUiSrRa5VbD/xfsCdiHjEOCN5T5
tMEvIyam+2Xgl3+8LNl1er/O6PoOeR1WxRuXYhNILcBOEfFS/FWghDafVOPXq12KO761TPIDl2uD
Ewu3B/Wdz6wlTr9xBgPXmvK8WHju/rAwBT9GPm6bJLR9eExtIOSkID/xaewX4pvxjMm8HFUTsWfH
BFrXJF0F7qt2CwmvihfCobcKeQIuUIYLdKQhXTydL/nEZ6KG7hSpgf9YFqVO2zU+dAYAXCcLoMbf
/Zi+K9puFQmzfbZWYmsIIXvQfbAHnaLH/fG+JeU6yBxkgZiKIRiILBNAXyExs59Obhx7JvHTxaf/
egpyEwJmqbJH2XUKabSSTxoUWsDIxoXEvajXKXF7ExvtFVSZL6+vdtagrC5CNpN4YGH/yl8IqZgt
aRi1uJLZ+nF5ZPOg5biitFJjYDK0SjFpLGIZQxN/vMCF8mBapdmHttTHcG/hG7pfLn++8NwCdRZZ
17Yx3q/4ajrVdyfS/RA2tbGMeqZS2NcrKJcCyYQRJledRlXW0YCc2zwyP13AznWgepKdpqhUApvY
AMSn/hZBEJgl2ikCdkcogo9lgqZ9pzNPCXkvAVdZDk1siuW2TvZOFvzBiahayfbx27xcsqXofkXs
3IyJ8UgWyJpjdhxFOqqqBYEB/5wqb5km3VKwINSlwrMxoyVCZMn3NN9GGZbI+3DUCX1fBnDUr+Ay
nbi23JyJblw1Chf5MokyM6CLQkjzVNzgfeCdgg+hVdyindxB77Z+WL3sZ25dFCU4OXjWSm5iQxHF
i0Y7l7c0LPd5Fbq6BYUwTZbNmzWZLh4zmG9UNdkR9HURm3nJxCUQJ2HVA09O1+1l0ZYq3atl+cUK
yga0ZSVHitQRrIrraEa0g75WF96nMNIf8/39Il26+6wUjAaB4RFhtWc8NxZnS1W3aqtYqToN4lf8
3BCnXvU/jyfUiHREmdA3fUUzH5czolvUgWZlUUT5C92dir5trTZex5CE5xn4E77On6ZnKaTIAYVm
Oa6GdLHbbaExjzP0EFwhWW3/Fxk0ed+NMQI3O7P95QYvYzNZrcCSYpqsDDAmwvFQogBJqwIOUJAG
F+yWZ5QW9PHy+i46YMQGFlS2zOGSheUqEWDAaVa1jl91ypwp+ruvl/N9l6UUFjoW+47KEHWx//KG
TP+7TG1NzIxGyF9QrPt6vD2MQnyfX5b5m7aX0OOtA1AporP/pJrVsu5jfukKC5yZHEmAYMnjgPMV
Gi2typVijTOu7WI0yc98hjk04tDWCkzmcxOoSvw2mzvwnbJrTxmyAV82O8ziQ+kfjajsHOwI8duG
HrJCIA6fJ94RdzLnocwNvOaa3Mqy7GOdNmSotQJwL/Xv6PJz5KjJdg+tpt7GEJsf7AfRZzjTkgFy
F5Id08eGjpjFDgBl30jR0rJNQw4ScZNAZ09Srr6YPlrvJ4K86T7t5vP+osKzh6KJEYhGef+0BL4w
bUgE37EyVcZeykbDyt+u7b4zbj2aWT+betNAnzokln4i71mm42kbOryJuSQWaw81ZLimH8ajWC7n
HOlkWRbhkLbIyDcixTzNrzjsHJrOlACii3n83HOrNzWMZTjlgH1y52t5nElmPmchByf6amuKVFVp
oW2K9fSq1SjjM3FXZUJ+SRHYu/0kjIdH2CnWo41FL06WQH7QI9eQAJx2Xrmjw6qrJ+/TdzLbu44Z
E9yapWJqo00ysKEdUIWyb4g/ZTA58FSw14b/xWLkBGB169/E/yZOXeaqGZMod46O/XkRIC+wf87W
/HQjDX+Ac8U15opLT4iwckVAtxB8fPve+fRrzLTgyAQOi9+NXO4vy4KTRqNf8fTfij7sm3Japf+L
iEsLZvRg6mMPI2K3f0LnF+xX3M6Bm7ZxuUGcCLp9zefuU0fm4Z9o/J+AHF4V0AG4BNcn9tx7ARmw
AiUzZp9Yp/XrNNZRJVL504Uox1K8xEqGafCTuB10pIs7rJlFmhD/wa1E8JtgrJsdnpkZZl/WwXLs
39NyWZ4hXEAAG9pVrYyWcYG5jtsoPcKraZ0G4Z083sx7osDguP9i3Tn4SJ0oEhcWQ+uB/q+ByWJJ
BmyW6QwFtug4gsbZQbWOyqA4OawFVGg5VNIVsf2pW8a6lVVI69m0IeW4ylxf1Cs6hxUkH2vANt5A
RiOHW8x1SMq4et1N6uqZnCk4HT/UCRjC0sIAAJtjiUC4c03voqQhsut6o08vOSV8jvnDeJ13Anbi
kMc1a3KOVB1ktKpi8EzspiA6aOg15EncSHAGz3xJuXCDnzTlAJOdX5Emj5sYdE7Mmx38pMcV4BLe
CrSKEnVjZoUihrPUjqhKn08ZA77i1zhIDhQIbrvvu2/fvlHy8rGcMEZSoK11E+6x5/rzV9DEh2QL
2uDHVlNaHZqz3QFhU/NtfzyKu0t/mcBaijYmu4NU3nzwc6JWMM34AefU2uArF3Y9W4OMHPKG76oF
TtKDMTyByU9eWNUEx8VFqfDUp9O36cdt97i/7ob0Ql3s5oOF0r8dY3cW+bYt918H4Gr5TleLOeKX
ncsBpE+/Cl9vG9Mn6V/3wZ7Ym0yJ9u4E5e5EQDL4GebZ40ov0MaclMgZpb+ofXoqwsxSN5HGXVWW
RaUkCSni2DBrporWVNcJ88f59rheL4uW/hyGITq9CKsMhKqkgoOKhS/7EJZarkBXnw4+zRfWsaxc
xER7l1ez06tevTbSe3BdLm9IQnY8b+lqHZro6Hm1pKokOLo6VtiOfO/xjDgQTFa8XA4a01ffb0pt
C3I6ReqGLhytUwdEOJhRgpE2mWGjZTinjj2Uqi1bjYguzKzXhdJxt+hllWqoYgmb+FrZYUhVH0Km
+YStv/3yQ++y7tsQbbBCEuFPJON7hq61F8wMI9cNVrlNn07i5mPGmeF/5/LSCuEP/o3a/Q3hMMQZ
hPLY7l400iO6CN7SWH1u38rSjV/a65HcZpX1OrdeBYnxqmKEaRSbqTFFyFlvPjFPpgBTmh8wc1zl
YOhXoII2hmaDEOZ/QuCVoSeqV7O3bfJnv6A0mzPfRDA4NG2yaZ0KF7lGLdpNFwL16me6LKqm2ceG
kvttfvlypKLTUYtTpbYdMQTsJKh1U+Vo7ELTKYM/xw+HFBDaVK0+nFDAfQLB+DOAvytwbsItleHQ
WGbud/kvaCnCK8jy7feNNsyCc4F6T2YTSCVnEBy7q0d9yIo+EL4YVzTXLN1lZpIj1wZk3JXCyBAb
nx5rzqw1rFGUnNHRfRDIi3qoXLlEuz//aECs+g0ouUFxJuQN4D+a+GBDbZ5hWJINOH4wE5cnEBi6
KHee734JYZU3otOD/JdWYW1jAAue2MqMuudMqV5ydj0PwBG0vBo4bAzcoeB8pJpi5NpBW20sivgM
GqLRYdE+IgjG9jW9KMXjJpyNWY1Kxfb2wLDl9XGyM8cyoJ+hXJWZ6jWBLLFZYaZJrcbV8WHeE1AY
QgciE4Jv6FLoBSnD00AkJuOBTd2Xx3k/qQGRCBXEvUo3DKVUzeyWVbNqIul/gjRBQS5HM4ir+E+J
+cYVdLoPfPn9dAbo7MvMjY4Kx1D4ldUQYzRT+1MKMTQVWuWaKj06CYuKWlxcCCgHYEG5Q1DAuL0N
U5zyFeNsJS0y9Rh+YiBpHe0mUgVBufc6RIZ3smMEn7cdXr5x8GFZynYPQVv+BGDUNHKUls54iXuk
FOTPg8qZxb8h3xw6SNrRte0G0Njh+PGhwbvkZMfCeQyCYgxwxhuawlYAJYsEVCL6KiQNqaWBsE6r
uaEJ5Fyfmbnu6uAwEVOz2H7FodEDJ4stx/OXjOYtqy46QIqh6Zn6RbthOurLAky9ebbKFT/Vhmmg
Ci+5QJuILlnX+2W0R46jsRDdOOBEdV18XqD2SXWsWeK3y+XDz3vUWODGKEuk5cq3wJvM9FlbrYzS
ECLrdYaKZ2ij6Gg3e+gMMwf4gzTPphds/XAcbblyRe44PIqIVrgWqGDfqxgZ/jP9Db0KeCDTu1EU
ChlOKH914CYb793shvUXkSZazzVJMcFwxlVZUOIoYLgFoCzprSk32MbgN8+jyXljdzkgT3Pra2Ei
G/hHQJoZPDqirsWquzp3VehpAr70qWA9QyVddKvQUQKNsU/AuG8YKmhg5ZV6GhMDG5T4SbzBylcu
WF6NHYMRNRuGj45RBgStY7erwuimKhLjXjUu4VWDSAAFIKpyDx/XShVd1ETMr+Y6qbkD6BX/I9M/
2Dd9rM8EvojJvS/YRDgjRSZgtbFRJNPqU3VR8r14GjfbYFpWQx0ETAFTmITDwMj1M4kR2hMltqli
zovlZJ2+5wNw4TkiHLSW6SWHzvky/8DRKUqGyd8jqLtBcMX4rjhUwJleF2HZKj+rI8xRcBrlL+r0
HgR0iikunWOmFMDJT+Hlqyqc0vKMnWUvIMNLO8ab//naHLt1BnNdltJRLxwOxkOYUMxzjd1F1cSK
haG5M9ZcAX8PTezxhWzgbj0917waBsJxsRjqSYNojWU372LRvqoLjphTlaxcz8cT2x2K2hWKKdax
pdp1wa2IhEfNDY+pVp1RRXDe98vVtV0dLtzgf7wqJWO6gtW8haDdKphIsbXnatTbHD9moOZVH4to
LoHLCGD1GTGQnKCQmC8brTVFMbGyelr5tndIG9nEz9ZAsVjNV3p6/EhzrbYDjlV0PgtfE3nv2uMo
gsiDz8RGebmGvJCxs7JtOdR68tnOnD46roRKcASDzNMIyMHaPU7eDFWPzUGqsjJKUsVh1QzPMwig
NmIsmPYog0wasnuMSf4R9IV/loVWzqFGqFujwjG1erVstkYCsU7rM8jwTYwiFEOKJJvtQ5SCCeUu
7DzRiSiFuTEGWDCR5PUoSCZEa6G54llvDRJlJ0ycDkwy7ppRMxOWRAlNNDkSdcnZEoO7Y8P4Btr5
b2QjNIxldGyaRdcj3RLGIsoS5RgLwKROclBWKkb7chb3vmXSOsVqIlCbDD5pBGFGM5fRnjwXsq6z
/0aX3Dmq0l3ZshDtQFCAG3qFdOFl3kHrNU66JEg/Te8h7qZbZk53WYhwIUDULh9w1MqwMtErBjfe
1ukG+03gbBGJCYOwYt7OZ1iHOoTNsFNBIq5XBfshxATV1cYUAImfZsTbcIxUnQZFkKkwGl9rEK6C
EQzCK4gEZOAdEhGTBl0SjiuEHX2rQn5SlIm8VvjOWDJcVcBxBWRKfn1bxEFkqyBRiQlXHcJDohVT
66IswqGcrDEdusLOYxfANgVjoVFBW5zG/XhXUjZ9EXrznPpxbFPHs3srzFsfwLX9hSo2ooxxM68f
teYeDnHXjmI6igsddjPXiFCKTkRAWnRhkPAOCaLZKMaMyzgGZEif4/tXPIUm5nE9p76UqQbi4dV+
WIN3D05G63PI9814pPCaVdansmpDG+94n3UeVCvRysdGZ2uuh2M0ivgXsSoqyegB2Orvl8x0yV6c
Fo4VsCyx5nhEi9dCU7c8vvQAHHQpEiHIkneCBrGpPM3BzXyXUZ/IboVjURVphXVGT18p2ShoFQqK
tZIILDGMMYJO+qRNg79xNrNfBPs6xTmt2s34P1TKhgTD4+ie82KzEBmQJO7G02iKnIFox7PjwzU0
KV5TlCo2ejZbBrjj3jxJKAhB1yZmFjDv0N7EhhodalcIOkz41oAl7WnBJLAL15IHj+fG7V3v5rBY
pnLy6GlHn/Bb680oG/FsuDhOaJRSjbsx3ugEWkSpN+B2qhi7Ky9kVXkyAEJhFKLkvTt7O1mkI36N
OJPO40D5a8xSN+zFUUhTxyZ2qrQJSqZhPKd/iFgDiVXqoNxu11q5X8pX+fUCPm/KomNzLrXEmzev
JPvxSZQxJcZnnOImp02MsceUVjvK8VThPcuVnM0nbkVt2iF+jn+STS8Y6AXpFCTBkvSw+GFe7Kqi
8gA/pwW3kPb2bfCMyiZ5OpkLGuqYRmYJzp7HWAbauJbnQY+Zo2BGlKhiN/jDHV2Kg3fCGZOMihoG
YXpX5sXNK+Aj0SIGPOEqxvjsJZcC5Pvl7Q0CEZ29AK/d701ERVL/ni82+UD/hXLsQ6A06iKiRI32
nAh2oaxTh+sE6kv2o2eOXQhj8XxzVHqHBObjQ/EzBqFLiUw1xt4MNtlWqHK2ph3T3obCfoK33wRU
1OEJb2hnp+P1Ao0Zsi4UR/To0/ETbsNfUAVWrrIVF/YllUAFNxA6S1Xg40AxDAXZuMrzQTvHXtwM
FPzKlpvnZGuHZZjIU52M0TaeFTZMzzWNRRdh71mFqFCY+Y5jD/acQjsqeEjJGCd4MWPjiiFo2gQI
KkXHkshDvpym85cc+WpfhCPy2D1Z8dr64rbW3N+30VmZ5s/TIvkqeyGQ94Q/iY7cU9ARTZccj2oD
eZuahQyn3ngh6Kg6N20eSy0UumHRJR9QIJ0VHTOGoY2DERHaEfLYbMAur362kGJSccXSrVh7xj3a
0wy08zySg0cj39hgp3Vs6TnFsEaGADd6gak5e4RNdO0aCix1DLP4aoRPqPOXH8ymCzX15agVZtpo
awvLbDB/fSOZRC/q6iIjgZVCSnLYYnZ+bnf0wX87nk7ZZE1ZSRh25yyn73nztlNtaCmrsoqBzQX9
vTylGww4xyG/Gs1s16+I9UgAL0CrDCl/7ZVXIfHYEHID2o6kDW27ZRl2WDVVOqefYceglH4fJHBZ
/9gOVh2N0cu9lAGQmMmAH/cMhnjFolk9t7TR26AeTISYYEftZTmrgIp21e3RKy1kFs4HD/Af2i3K
NKefbRxPwGdzdWXVh+gRTrkE/KM7/wC1RxN2b7kRkbKT26fkb0rpsovVZTLFFa2mEq7H3p4zj/T/
08A65uX0sS15B8m4wTdzk45b26xGYKTjVRtKPJQxGuswUWqk4nBywD5Ap34oidMouilfl9JxEOYI
V+nrcj2kFUZawdTZ/CBmUVhuMDPbrJg4iWtBLan2oo4vEg+cvRAs7gJ5/DZddy8PpWLehxaj3sAa
MCqfKRpegMpylM1wufb1oR5iYDc0FsiKkSFSoWawNqbUhFpkzJymF+sYLkHqxU2Nx0YRjkEvLbPN
WY8QwVrZ7fTx3iqqwANtigL1EgwJAu8bYLwQQMq+i80mKC53FEDMDw2jz92qmRLbKJsdSI7877R6
VrSzZTVcxahSFzAbqVDmq/QxmnuEF76bqOxb3t/rixA21K6I3jdxd5eFIFMt8fHy67XW3jx8DfvR
BKN5uJHsPr1swCaXYxhXRmeAZHGNXYjcXOEglDddBiJTW/r4E0U18B/8mCYLZ3zJkB4MneBnwDiy
dMtuJKYYBA/DOhKFLeBSL4/bj93pcrmm1+klVYSrm9rpcBBhWQ/zlTA5ybvqxdzfMdSA7peZnBx+
WOGXKByBFy4hPHiXx4cM3fz6amThpnykZ/Eoh9JPyhEbs0lnZWOlZ6roHaY9aJSG9ZQFxC5G9EeK
5+NR6ZbxW0a3CtbLxZdQBHg8v8/L8Z4OBXqB5xrZuxLyR3oQYKOKTugFnGZcoRpNoLoA1cbe9yw7
NXXTOul6MS4LF0V70a8PCfH5WIxKxoO9oAVEiAoke4MWZuB3T3NA4O8Hf9ClhLl46/O4whx2FWHc
i46BkX3syn+Ri96DdbMLDoIxBv7RlOuPAzi1MfBn1wUNTJ2PRTuvUZxXj6MfOfAxq+Ca1+msHdhY
Bo8fPlNwSlqY4H42Dqd5tBmqA+lktzXnN4PGcQK45zIKTR9r/3NONGV9zKObTnsNsRdGEtFWjcCo
z0A/qZh1OdWiwUEdPmeyZSxSWRXReCtIH2Ziv0KgzBBJ0K/ZRS1Deo4cvaxWfVb1CkO/otDJ3NmK
Lp3vjBDxKE0aDl54GkD8wbEUOUs4JWf+bpzxx6K20YYTw+yU0ghCWsChN85olGw+mLfnAgAiGShm
zw1FEFin2lc8n2FJyiQA0aYuoGo+HfEXrR5NiQOlm9xiwc65qVxlEWs7iyD4zua/MptjQme0Jg+F
UkPkEcFtbleNrS4XJNmYQJUrbSd1ZkQXtsXY4ME8HbyKDDfwuqnN3sKCSUHIvb+a80PlSSlH1Fac
W9Dupk/l1vA1vkPJ1VHpZxDEldR9a+oNV6rPDEkaZL6qWS0Spc5TSHD8TfStKzTcjx/WP7h9fcOZ
QFqIHLJhMeiQU3z0Bk10q/W1j9FsF88axbaJ6abyRISsXiGIMtPWW7ZjiDdu8hNKlSJbONEw4FUg
OofH+XBRRutGG6s5LtzC/NiLfDtxwBV9GJhj7iI3LLIsRQqy8mzZakPlJlLPTvL/VC7bqiaZFEho
GyWq8ykeozzg2F7MU/2i4UAlH0aDMa48eT+TVDn4UKlVllJ/On+dbviL6vA7jEMPy/Ttd0DU/7uP
6ft/owtvdPCPP0MaJ7p+43gm+3EMuJhpdWrC+uXjcrm/mxP7D4ViqnH1O1wKiyCtTGU6+OZhR4un
d9S5ZXAQC3sHmPGFfhMYpMD7s7RJqbWGoQ7X4vjAHBTzhxxfd+d5BuArA5kScQ8sRhJG3+dRobwV
MHdgnW6ADfj2Jzg4aBX/m3kcyQPr/JeKyalwgzg34w1A/mBM6Ozul2vy0AYSNPpQr7t5b9hbCE7r
9HVWiOIbxwKA66AHU8p14HQsJZc5t+kMTDTz+ZYkJ2hcXI8rNp5dxF4gjJXQDp31Dv28dlkp/rnP
MLBV/5E8oMpvQ4xVcgf0gU9xpg1BN8nxnD4kcqvo3jwQg9cCbElyF7UXIfSlGNny9gKsPEuS1RNF
2R8E5JWG4CDMu0Sso50b8RUAREmyE/gGITDM6UnWjUfsWmpAP9c76e82jheYVvNstby5t/mO7+EP
4C1alqXd7fJY9sn9MVCd7svH40+P7Tbff8G4If3IxIf6fHJka+mt+JPHsvAY3wqIzt9T+cDG8bW5
y2+CneDcdE1bdP0QaIu2TpzIHWiI1I30/pGXvgnP6vzbXy9G+P90/iu99jSGtnHEmfQ8KwfVWksl
YTg2SKW4rHrE6newt5t+1WOvvMuoLbNynlZf4sUiAihgzrTawjyZ5NPohTmDawsEeT4ZF/Y27+qu
yB41Ec/R2fj2zrUmJDn8G3qo6mkNUqw90MBenbGqcHOE31rmVLNk4zwvciE8jycvROy0QOLyB02B
1F6lCgfVWUDAddxmY8cwo7gA3eUBLWJywc6fFsIo4urS/YEtsim0PkiFnSW5ukqn4GDpR1qwiiGw
2HZG4YoIMm3wvVhhNrCUCCE2+Gl1XSoPRYjS4bFQa6/iFdVleNChYUVr8lc2Jl+N63axHXBpF6QN
NL9lkeFS2usrZL675HZGL9XVk5Nm/rfQQJTGsDYup+wOJ1TToqYxndPOxkppBE/VK2h7FDvnr6cW
LOvQb7Bt03f82d/ge/4NUl5/vBibevgb5qnSnkQbWMRQjCN+bNqgiUdbrs/6lHnyfet/jf1RcSHc
3b7M39JBxyD9hCfPAyvY8B3pZ9jWwTOsh/CqCFoDM+U4p2gi7qzHMBRFYKpDA3v7cpx283eIitAP
SsEx0KJJL83tDocpE2olrf/8O8BrKhmlR3pvPj8+NBB146DC7m9XgdvjFefZec+a8RJhpshEEg8D
u9s7ojo4nqed8YW+Gr/z5Xg3/5iNvU7ff+efWtMi83Zgx5wQQxrxAiOD02fGVXj/MIqozbCuMZoM
/pe00yaNNpI0MRn/BQTof/3tz7vpdH1PS9LYBa5a6AbLzGgmZumbJrD2bfEU2BmjYVTTI806ha5j
VBG5MAqCj/1p+rgqstCJSAYJ78aAjBzjS/f8025VG5idMni307KHzzlDndbcWBKjiN7L6otGlyIg
uSFk4gdAsBQCjsYNw6Yjxtoczfk4/M6Fl797O11eptO/4ZWDn/ZXxbIymWrCSidcmJw8ipRDjVWy
8FmzgWRVh6/S1iYV/pzGFavpHRbrxAFnbYBQAdJ4O0gEQ8PNcrkDgFQJL9ow5dLkX2S6JofvUXg+
NVYz2ngcbZw5VYiF/8Xdym0oOGkxaQKLVY7PzgFmfH4xN/E/+HLTlqYOzV8ZcZbatHYRGTtPHusu
jZwTkNN0shtvqQv8gNDdgbeICSx4hfdL+h2GDvvKZ9pPyPMLn/XvqSpn47pRSAz7tZrzSncPI3qB
u+YMdusrdB9+zEkqQHTpCuWoUGxyCZdG6JkOOe9jmkZqiKQECfeiWSckYqmgt4wYcbqbvAVIMAVm
5mOeoBZLHqvx4M1q1/fj/hegAU/7VWMQ9pZdTLR0hdqLwBI+mXN//3xMB3Bd9r9/LF/nv19+9z1h
IcYwvvXZVfvKEB1JUBo1xGlF7nBYR8rcM6NnJkROW6CHn8TyH9f5LZNpq0QaEI6nlw/+/WG28qK8
j2EQastXHY2N4oD/F4j3/3r8Pp/+Bt5h2jYNwZHUTZC6/jUncENXCLfNUWEqeaOsCAtHsKI6WejK
z/e/55yKXnhblSeagb88nawqhtz38Xy01aS0OzAUiuvmPpHlUVGvXVcGKfC+SKdCUa5/r1nAvi+C
Z9FXq3zo77lYkAnT+6oNLA9XVz1LB+fG0gnNsQjTdfVTZQA1zlZT2Fd1GK8k4nbzXfNyUxS9eCES
/PG8EIw3SbUJ40pN4BKFzov1WbKebi/kCL+r821xiL/AmefAD/cw7tqA3rf5PyzLlN6ZTAC360DH
5Q+3n/xK0tuYriedm3EkhESIpJZVkxcmhYO5SVDrTB58HYh4aKuDagStp2rcXqo6D9V/qhzp1l/q
3QZZL8rQ7z4z8Vg6b8NwYmf2+XSeyo2/gh/xd2tT/u32i1poGUQaBp2J4LBI9fkY43aFRuO/YCNa
ep91IA6hD0Y296GoOynvHjixyrLuj8v+8fE6L/NZcUKKTomgtmRyehGromMUbMbL0cv8Pn09XtKG
t2uKsAw1xnJlWaUrnch2na1CtQ2QFi3eHcohFu8+5yY3hyBlq8QzMW80G6NKhQdbDLMMVj+lH2yp
pHF8LJ7MP0ttVuOwvKecIgVF6WuqglKNJbIKorImHZUVQTE1rKlhqsbV6Mjgp219GyrCMZ4ayziv
IsaE+mcXBuHEPLu/pQEdokb4HNk51WLzDCoaoG7CxGodM6kK0WLjwPnecWFFTIPB5nsalta4QY8O
RlAGZ0HQiNNpfjM604hJ2jcU8QCWTf2Ezk0BoCyReGSbfR+QHZ6/7x5nSJ9mbFsTqOqqf1LV2nV0
MsQaXG0zlPM+/RV1GBRVz5oIa9CZOqZwI3ETw/Myn3JnhrKMKTQTI7kKfzYYEVUJULKhB2LcFx0C
xdPmnAazRWdfl097dr2CdhCH4S165nBlAQK8z3JDCi57PL1MtNuBss+5kBVWZHdAZjK1ajEI1YtB
RZ0rR+raohOYgrbA+n0vaCkuL/+YCfubuVEBbMBGl1hRs0yHkhq8xrugLpZIAmPRv5KZGWQXr7sw
Np1/O8KoBoA3m+tFsUtnjjTfn4z+bV6ODhee3pbXBm27jnKF5IJz8/8zW0o/niKmW53A+7mSGdGX
qfInvMX+cv2BaZK02ROVaEhktS7VooE1f/lItcujWhHqGuAgZaj5ZZCLOQolNm3DsmeVh8rkKkx1
mG9jY+DiXBm90TtMK7FGibjim3N5h3RsGQoqw9187s1BjP+e5FBAozUGYtpV2egEfcW0c9WG7njM
VazTimEMoWl1woRikTGr6/2x40Dywna9YD6H+N4RQkoEN+lNlYqPZKteWy1QX0o4cI/tYnI9ZyNs
DPVfeGZpzEIVJi6D+8NjeorqlKAuBNLV5XOgsAEh266qMINVFEe7k//8Q1ollMr3uOE93AE7nc2S
mhbuJWwKKcuCzOyv07L/Fb9rgl779CuRj21Yy2UsvatX7QRyEkOyqgiUMZlwapLRvKO+CxHqIYTS
5fIRlZC+8zZ2W4/z/nS5OXB7gsu3cQMb1xl4iYfWsiO9RAKV6/smvZrNanTC88Zxr50Igeid46PH
uF33a0Tpr6JoivlxwRSdJp7jnD6MMoQCFDkbaZ97+j2IhI2nP5XBM/ls6fAwhL2s8mFP9fF05qgL
zzjQDcTEQuKWSYf0Mhx5sobuLXnUXtrr9q+ow7EWKwsIMO90oxkavyGMLpp1EgsvKQRMedctrQC7
MKtVJqqP6Xe9Sq6FTig8TAokiSFEd2iF9cLQLY5o1qS6k5DfssPen6H2yC072y1T6RPKCiWZN3L5
UPo3hqbelKzOtODITDNBXYu0C/b/PKaT4moyuYy/3eIJ2osFq19g1pid944VA9UmDBKO+yQ0qEc3
1y/KRsESRUBWae3ey/MfXPhpzKaJtNI6qw+R/UWySyl972MMX+drn5QVwuMl4OBBLzr2YxPgaMOQ
0/q5G3AdvcggQKzYJvsv3L3TAruXx+vrvOQSWF1YvWhyq6dX6mNh49qul2lTVm1R0yFaK+P1SE+h
9gQEdk0FnFQH4Itqy17yBfYmjGeTyOrdNYsf6EVGA3JlfRdtQcmktyUOZnQ8AiGSSgV2iDtry7Vs
HvONQWFaJlSSdoW0IxmiSjhH+AebAvsFjRXmGMwxzKnBoqg/RDBfl34S0XMcuJ+uu39oyZMirAau
YE5vandbJ3JvZf2U9YS8C45G+1CTr73SUOTi623Yzl6khrGPv2zj3nqdftVNzFuXPpMKBBfZQ/x5
oJ50IqHGzST04X0RjXzVtIdQIqh+E30wWHTQscjdClI+FNGzbNJn2YaQsHYlW46ZARlcp3QarJXw
BSQ1KnLxZRanLVAxA456bSLKhNx2LZ8zFKVSmsHsiSXFzjYc90OI/q9Sr3pzMl8Ga5jMr9KtWjmD
OdSrfrQ0ykKdxIGKtAyQMl0qv00qRJNR0bxTVhWmSLm2YHb0V1Hx/+t0XP6e4hJrHIUFdUJD5T/w
L/e3205Egsx1bWdEwcVarqjXU4JfHONwWRnt/ZzP56z3tgSeBOXhsLUxmnrLZdzCBqgwpS9RE+T/
qRfSy2Rgh8CXwZOSQoMNBGRbemqaKpYqCA1D+pOKWHuhEfg3+p/jf4IhsUAVplP7dKWkhoBXZCF0
DJzDJAySiZ8PWLKCngqNFKMtJJcSjXCwrNq4L1j2AeNduXsHyNXm5avGhlEVqwmyTMECVw/kojgS
HBmRiZ9BobFqBZlL5WsFtDXoY0LKD4XuqewCekZGVT7O5jNejXtzUNsVcYViRcTCzBKAceMogdIf
MGPi1dLhJ5drBJuKMGTma4AkEogqkZ8lfSC1oPUqwC02/xzFoXiNBTxT2slI4koQJU6UmjXgrnkj
u9NlPzHrjUJf3gqKd7CKvRQhCCbxvG5Z8RacUT5v9Xa6nZDrCDieNALzVhDsoovbMV4Esy46+XAr
mFTRWansaRjlfburRE1tHU4Mtr48P0rjoignJ4hTxYyZ6XyHuuV0o445hRMTxxp1IQV874N4z/Lz
wIEIL2AP02LRiiuA7YSgs+qwC7SCIuZtQA3MThLOF+ZXwwrltnucJ+TnpKHKFMwp+5Mz49EJKx0j
+fdg7sHlCnMacPif8g5aQbyOSNmaNcSROkAn6Ntbcuz9gkMXv3xwmBqhO+FT5098quBgkxEiS5Ux
GDN0kjyuuJTKTtbKkZwt9s41wWfi87Q04lnO5nYUxM+tQxSAvJnPtFpR1RdCL5fw3OycPHpvxp8/
KTNaWjHYBJ4t+2z2uHkGxstRGc7dCl57hMnF9TB5GcfbTRt+3Yq5rk3r2YvNKkcPKEHtdUfDnGz2
oZ0JzjtKgA7h3mhrqNMU3q5WsKkDknRoV7uCndweL/xvFbMQ2ZzK28vUtm2pWOY+IBlkfN/25duu
VRYXPOudw1XlFqd/y2+9L6UNhX/w5s29HHZsqoCa9rJ8mRfl4kc5ahVgZDwWjp4TpKO2ad1mWNF4
t6tlbHpyWt4eOhN/M3TBdAq2BVHnQIVVkEEWsohw2NLNbhHnv3+8zDCTXDkpwQaJc+uHQJc5Urqb
4tGTIhP+IDz9ivXG+QE0pISI0gHRpPRDBWYLbbwddJwvP+acO95K37BCNFPhT7vaLY8z0g6+nqY3
xXaE45I50Wonl6KofzX/csFyFpgR5dlUCeY49dkgFk15LdIxAs+oDMIfHf1CzsAY6Fr+QnpdxOMJ
3bkZE1vVwfhhP0QIw7e/q9ZGPC+B9kT/iF/7Vu/Iu7kQ2fRl+E7vmrZohpCVsRpDq3WCJNGEicXz
9aJ9jV8HoH3BJrKFC/IXh4BAl3dCK1gm7l1y1h5+SxuQfnKjBE3KMlrlstxVh1lwhoI70rYyXDBB
3XvWw+wEN2HXSKOL8lD9wUX1GdHw6hKKnp0LgoCmAkVS80P6YGxB23/STDXm/1Menle+mMvlQZ3z
dKAqB2AK9l8yeW3SC0UsxgBWigXZ/qzi265ABb8phuh1wgn3A5ZYMuE4DqlcC+nmMuZYGE/1fMSY
CGgcM964oK3sMQEhnwhg0zMX2wjXG3ynshB6ffecPdCGFHZVGQgJVxVMKPT2YfOmoOazY99akfyB
R9M326VNETJvMpDaTwbudF6uNAoJRiWhUIwxBb1RvbeSarTCDL3zyEnYIW99VASyCoKl/rPuaOYt
SkLg0cVir48zj4BZZqOtzsRaljHS1Wq+Xu98TxAnaBDNp1tGybnc+ykIjuXicbaDxzg+VC10V4SK
jBsEA6NobPzH44TVewpD/g2dtgLTO/+GVlRJrnQxDmFfysInxTWY43z4N90JlMkFT3FEHhOrGacs
9DFirZgRh4bIjTC63SfNzW6LMuQSHmS6CJ+0QjJJchBOT7LsojdbDNGAMvRkyphbJdIruhA1Ynqq
QBul8n+22cqEEADSy6QDV9MMbY6GNMl1wvkc12mZPrTMTJiRGypvmnFShLPQyj683AHNRG/9/OuP
XVo1KJfur6xHWyrMip3PBx+n+T7NIDPuyMvMAwTnm8u2v0+nVxM2XKa71FPK+/Lar/GTFkmLO52A
5w1j+26bsvhV7Arjm1Q2Jsi/B/xHYytiNk+TucEqvMEwb+Wkk1NXSDCs2SiR7Osd9cObCx035J7E
wKeSJoa065rCdD7eLiaCvB73O3NWhMFWNtXEBq7Gc+c7ZVqvCE7axhHfp2Js9rNx1PLR2HqbcFak
X0aX2C8wrkx8JlwOeNxdg5jPcqCoX9IYeno+4fRNRrl58/GDvk6XKjnCEzygsm+egyj/STQ33nje
5mm/ndVM/Bgwwfs5JzYVCLeqeGNjmLNrspohE7yLEY91i/8Y4546LkZuwoEPQNHMXr1jR1kjLQ+K
gzxIxQI14fC0Pr4342/w0OXLZfcxnX9syOpXwejrroykrTRNL5R040csr2zjB0ymyA3obavQW/Fz
ikJ/9GU6pPt2aU916P8HqABuIbplC5rNGCZuGWzIChCLs2TuszFgK9OoOPKvCjIaehZDeB+Qthqq
7bmqbPq4Fya2x/G3IvmNgyu8dCnnXQU77Nrg67Dqa0wqxHAcjosIVfnuJnw7rc9frq2acvRFeIdF
4F/9r7//cVd2yuPowin1Q/TZKb9vAtegk97G7TrvzWPdK2YqzL329ecuPpfbF6VQ+kf9uaSMXpeQ
MzUQ4lNWzm3m6/uYjHL43rx+VXyIJpYS0NR8JooXg0sR9MKTjLHl4IixzN5XNjbWJMQjqmrMJjcR
1G0m0yhmc4oRH7IOnHH/iliZjq0LxaUq5yd9SR+LtOxRq9Ss9GSr2JzbhK+geC5FOH9+tE0VdmCh
k1HFByvCuUJ0nutYbZs33IjvCkt4fC7QQH1dLumplXg4ZVilrj6ReFEemnfQBh/70ZG/faKuVgea
jt2xx23+b+g0++uchgaSZ74apBbL71qlbQFSLw/NhovMO7ZedBxXPYX92dpcK2tzEDdYTvjjTWsz
IwU+BHiVpth0ZzA3K5dNrEP/VRYWBMevcmFlDAFkVZi5cV1dNG1MojnFap7Z/ojJNarFK9LXBIMP
GWBlnsKbUVy50ELkCPpIIpKYNpf5B/GKZg5UnEfjp7n6d4A3BWOpkRZLRS/T+Vaxuo1EKlmMsJYG
6YJb5uT/f88v/+PPzOD3H1+1ekQjxOSZbyGTtBpixS9bOTKPb+cqp8fz60VxQ8KUSRNPLCi6QeYB
aOq12AqyqWk86bSHPhiNxvUj70qwxVYciTpAE46sfJcjmn5FaXdhHmRU/AXlGldF/faTnlym/CXn
xuEkg4HGj62YWgQ2QuHHDidFhNQsrns03e3TR+mC+NlQB8PvLbjiv65Mb78Drz4NKm5iJJZrvLTl
sMjhpv0GEX1dVEFE4Lrw9LZPwY2DzYhxCPcWPHgvmNmwmGbnF97Jr1CoS/2xiFol7+EdR0TnRq/1
simpTPbDCVo4vRlOcvACWqMM20eeWR3/5+UM4CxjLU5/yHMwCK510b0XgN0fZ18cSd/esOJ5TAye
0W+uE8RtiJuIUodmSQf7XhtlQqTVt4s2iyUgh0SoT7XCorouOSYfgOHYxI+bblcLCdhCgsfTxSjA
49cMKhz1gf+44WlUHbCObxiq1MmugnrNkEfewWaevDHkNF6zlzrucZ3fOaRmXQ3yu2EK+jeFrkoc
igfBBt+zcT5UL/mL/MQI0NPT8mky5D7si66e5wpOh4PK3SH0ohgVbw/msUASSGc+FlNZRNItIGHY
LZe7ykwkrrh0iaPn2UDG7iDP8P34clKohseAKGfFCu5yW/sfaMWzzJWDHLLioWdrepNPTA3pJL1H
r5CFMrlvrkGpXNENhtlTHKkecEeoQ6zKLkZ1Jzb1wYNeVadk1Lim8twVQxnyzYUMiv7Bbem7EtMY
MM7o09R1G99wJ74Oo5guwi5Vpd2AQWGbpcwTdbzRbWUmhAjVhO2ffZTue+tIrF4Q4WO/RRPlsM55
SGPQw8idXAEn6U4j0xu6PsaDr7Ij6l3hvSRbRaUgdcwfCN7/p/P98st8ek1rgjG0ImOSMv6P5qR0
tdlpUuDRzNwim2nP9Mc1InQibLON8TPCTjULLjj7mwIbA0c3i4B0k66ThBvRNi7PEDC6Ooyezum6
orMf07S9uqFrQhtTrqk8rsvlCqZl5v2F1ma3vysDDtpQAQ+WnkT3Sjo5BbN0v3MGz3d/q6P1RmmB
C0riwjroVxv3H39i29qNUD4+zmkdAIqXmVNwBiHhAGhfMKyJjJ1K4YZLDGIJ73C9XA4/jEg/9l9s
O+9y/wEDyVgn4OZuyVVtZ0bNKBUuBvh537ubiSPu6V1xz2XNU7+5HfQ6vTH/6e4rIsCOxsDsTsrX
cZG9tr2bdHH2wHdwUGJTSvK8clxztFgnalbv83K885lojiAuUvbBjthJcTsicqRk1qdydBfrs3mF
iU1QNz9d9l8gSr0rWazK519wmdptxP5u9zZdjfTcv83z2bzeN/WTKv9JHlMBP/rz5Q2uiDgJ3Y2l
V+KeCNzTiIrboqXwbL8hvRag/dOfNfjPwjRJmfmsHR+c8nn+2iU9Em0JyOqUd8A1/Nri7fvwtk/H
rMw1scsGGhL9epl+lf4yUiJx1zAcAGhMlUkOVyja4Lv5JMVzMd4OzjXDnmNdIfAQF1oMy+Hcdfxi
TN4XdqCm0zeoDb5c7nfzeR/G2hzTz8BC0+syYGh6ffxmwdk45Ur5PHE1fkjpB6Kn7EcSmJZnAV+W
1FRRXK8Ssost58yNekeg4AIslESTgAGIurWhEpfeIBXlWm8dzQLKcdf+cEoIhMsheEgvl+8es79b
7idFgsVKde2xZo5b83FGXY6fqbxsr4gFA4HLkwupIhR67l2I2wfh5MiMqtVsJmxZ9bsiA34VwMUw
8nx/MhshRWo8/OPpYLZpbg1CfwiqPqb7/j2zP4uiqstgzMRlMd7hecXaamzhtE/WACuXpeHFIH1Q
S3sKy8xpJ5GeXxtoxcb38R7PD9EnoZiLMjAXnH4+z98C7wVmypnLA2nnCc4JJEPjuyxqpOqAFzO4
UhssYo7lfJ6XSlmgdwuwjmtYrD4uX2e5izG9iBVw5B/pBEOHNgIRf8koEvwljUoa5J/n/XfKn+7E
AeA/hk/4SY2vUeMKNSZd6QhfphPUTyCMJK1TptewirAPPMDwIxrlI8TPkQyCmRr5l7vrbX4cLha7
jZo+vRnnHiGXaousqvKD0vuwMA/cR++pBw//mPY0uge3c1MWEOIoc9fP0tSnT6MXFyKtwPPDGBS5
buIiuTpSPMtGOcsq/kHPe1Gko+6FdCCHWBPs5fW43NICavug6OfYZF8FP8dwQjP1jceBo1C0SO/Y
ykUUDTHKIxh8S4+zpDSPCSAcmHJfVBGxRXl6sDXaVg62wWtg+47km9MjwQmJ6zAeMyUl9nDQ+Ch3
08qX23sGAyhRoY3PxkiNR4Lh6cJjrtgMLo+XH7vXBVwxe1r3S+bDBiEtPp0Yk9takVvxEFuMS+uE
3CpqvfFHXBXIRDYmXnOtvGZxNAUSb3NX/NcLEbSiM4UuLM34VbSLkESw4bZP+zMuS+N5XrAajVB9
jmlZQSpapZCGzsUx92U6wgxifoQMs6ELU16kEOABnczau/O3XWUDgp1yuOKaK4xAyyYpLYrFKLwV
ppHGrPmd0PL0ZfvvyusWH1WAnjH/bHO2rFLkeBDuSeXdk2c5VjRYLRaRXMShqlCuvRUauEaCAB6c
d6S+W9AxVpRhtV1qAgdpLrEa8ZlZmwKQZuCrzh5zLQy155Rk+a2VF9SGv6siforibQ5SZCsvsuFB
KvLaCNMuZwPQC0aVkKaGajxlDF4llPMq7vjYzzAD9X05nr8kIQX0YsTh96N3mK23hzk/xXwJY4zV
3i5yAIq72kq9jP2x7TqGV/62dIwE15/ytBTXpirE0wI3kTMrEE9BFvYNIpqP6apFNY3ndqMT7QRP
XGxX2lNv4k/92doo59v3ce8CbMJkGTMvJwAdXGkFl9YCKINLw9D/EENLcknif7J2uI8BUooipblA
p/tua3RYOwZLXAe9dn+KO6RqvUHPLofQIrBWFqz9gh0O0G5EbH57fBhz9UP5rk7sR7gQMmvnMjvK
Mr0/HnqxwTL4fSvzYiG0xv1S1h389jwcwLa3okaezpfzj4/L4+bcDDg2ZclWHFjlD+zfMZv298vf
L9fd/UX5vThw+RL+PL/e/375G3q26u8bf1TE1lqFeSKWf+XKC3EoqKDtMCDQjDg3iU7C+tkADXcV
AWXdar1uTXWXZzushLlNEXcFbZpgB/z9Om1Z4wkUyIjgdKDA6VEc2nFce8V0wPScME9gX5h5vHkz
XMhI25FK5uP9UQQdff+sMvmxH36cp49UD07j+/3JIIyeIcMd6Gp6j3KmfTyasjuSekfZj4zJhicD
pcT8o/j7ODlqDP++khptPDnHk9oXWSAuugF4fTqeXaip2LVxfUljxNYr3lIrxb3xI4dCd0vxloYn
R1GxrFowKK4lKByQz1Mp/qIX1L5xfF/8u7JQXkYVS4hxaFNvCm3ECmP5LBEytNG8imL17X0qhlVu
shfuNgQQZeORbLu35Qh22elWLfdRrZOVY3CgykXUMYffvc6PN+VRJhIuoRwrb7MVu+6x+BTz+pUc
S9OJ3JOgrXQ5lvfLcvztgnCyF+VF1sL3HrG1JIh7FMVflEHcXrUJGVA+oq/iCUX+471yd0KRNH4+
X9pp156yiNRB21Y8YS+6mpbX7FapnbKMpVKIrR4jAuVaRBKiRzePC2WE7LJbYzpz5cVLqyi6+W+X
05xNp1g6NRJzyKFzCu45nbI7mwPCW9NLE0JzyAric6KSRUCJWvt40Pk4m//l5fQVy5vXecEs+8f0
3a6u6DURCJctAv3LoDwGcM9vx8Pl2y2/vU5sz09ViCVSFX3dComSzms+JpZVB/mySBbzXlgl3gQg
BKtRCYu1uolQL8iSWYQvVY+DO2HykIKrfTIRGOTkjYR4ThWCystEykvR2Y2wF8R3H6sLar66fE6i
+o21it0JSRK1Iax0MzK5jv5gIU9UkSZp78jmVDGdwo37edUiPCCIQux4m+gD3PD4urj/zjVkYgcO
k8LKwxk/qWeUnbVyZ+THB56C4uPI1GBQg6SJd8khOaR8h0Qum3bcKcZR/NJPerX3+zLvLx+UjXqc
piUbfzyp7F7Ed3axrCkpOjUYUpyEUebjwdY7ZJk0q4op9TqkJsDQCm0nSwufPB1LfkdqvkNXNuEG
KQLW1+ubrnxX7XzDvtxlBvo75TP7Mi4uhPO5EXovp28rqa4d+8Lzxyh5/V7mAxqEIIjcFPQiXJb7
O7xmo2huqrcgItAKAj/b5vSEIlDONgifHeQ6TAoowi/fYOeREM8noqj9Xm5B5AzzNRL5kGVVI+Pj
KPcrLoeycXXSL1EOtW3jx/Jc4F20gosohfbI2MARIDQI3zh1NO2Xy+2Wt/CtKGKAyqqKFMBB8Zqa
KpXpFulZaUMU2RWJigYjlDaSqFDOeKjimgWTuxYqmqYzavyUhKc6vFZb1Sy08DwIBdul1NSGjGNf
qH7M7jSp+I0u7osFfiV92PzxMh8IRqHLUCcjWg9qfZYgxceqxzVOyGL3sHMFSpuKEIsIEjv4sw6V
cln9Wum0Une2ivfQB6dg0zLshuU8r66IJzb4UW9KAbciBQxaytHreMK5m7na/Tvlt4kMSLckVVBh
rGSBkGIYxYIkEtzhS1YcmKGMxGKrvoH3Lfmayg1zXPdFeNwQtKGiWVNxl7VfRfCjSiHNANMqkcGz
/JOFp+uCx/tH9M+OZ2LemP/Il/RfSMBy+/c5qR0QWuoRsJKGBZ8Ap/B3sGqa3BsByxKNG5g7DCHh
OUPeegEhckfo89sKqFrCxh1BgSt7Ti8gGRfwJtWvLERTgCfakGLO6gyYc/F7gcsBUGEKIFYIiG/m
JG99+n68bWpQaQUwV4iZL/7J6k4GodtVAULXZUKQEG5ze4rHaZelAwpvgjhUohRiP2fYDnCoBN5q
zYlpO3cxCcEFJm50IWL3DDa/9PcvuGklcn1DkQgFfQwvvXsqB3NU/xlo9dAGi3LKBBhQDtNyIDZM
1KC+800BxosLHFzHiRBLof9S9dxKQB1DFlEShPPlzsrmkIWNj2EDVhtrVqLr0xAklQjy7ZeRdRCv
DH+1IVolfBeprNISqnWfRePhKpxpKpnsif0+/p7rdOD2V7VITQtVbqGycoZzU7MOfY74fbMWzL3R
ZNy5l+5Xom20bplKcpELoCM9ODUFTUs1fqnRtQZ/Xqrp8zq/mG8x2/57TimWTDbUFZvVGv28D26H
Ez0UpggFpLk49BnieIeVdr0vj/M+IyWMwCotWW3HTRioEDW3m37dBMLatFsz1XQGg/+1b8//FzSz
g1nakx1dfelzmpkWElckGDZyXXr0aV66sGewJ7dxw7mSkxc2mbLKfX+82YQ5PUDFPIlWNO81A9cd
B0K76SYhmpmEPpqBMejJrMXgPp8lxrlJOQUu2uxK18j0LwHPKpHw4V5aywC8CSxUOWYOtpkUnAqV
gOg1SoNxbVLNm1YirYeeC8LG+uee4222s2v7sAeVkVDUBQs4odP8qn2b3wr+vyChQegwcgjpqHRB
6MbAg7ZUCLEIJNsv5zJsPA7IUnz9LFIF9yf8DJlgCDt2nfuiPKI6dA+KVC98MleGDl4XOLB89p/P
vOCnibUGpBwog1f4wnPBMZOnN2GGl8iae0uKAvcho7PBI6022R16rf5s28Y5S6LY616b7j5XfSza
FOJjTsHpzIxcV7HGaLxuZR4EXrGQONmSlMoSqC+9Dt1bn1rD/7kFwB4/PubDET1KfL5v8xn4+SzL
l4aKbD0qEnReM8aQtfb4M6Da1qNikX/CJjqdLvFx57cFiOWXHO639fhhsrzB7tafzZ7aD50jFNf1
eGLkmSeBJ0THp4NjWLDx8FbMAJSy01fAV5zFzQGeVx/uaefhMW8MkGChTqBTfWM0bezVKGMVR9wI
yGwofjblbCTjNF1vKsq59Wjk2jO3HC4P8L4+5gVpNMMzz522+KjCIb78InRlm5aqBa7ZB0aStANF
6xMn3ghseKfJrHxUG0RWSNjoxjWQC4ve9QbFhgJRBtuzAfy/gg2vPYwdGWy8P2HUm/HePPsIHELu
+IZAYKsnHU7Mz7dPXUkfvqZaVSPsppAU3VXRbvwzlWTMivbUgct40a1oCnCxZEZ+lOU8cB5tq1TK
HPp8Wy6QRgBm5E1vpvNqQVDDnY63+6cksWkD7VK261fMjHXIf5POC6IEhpaHPWLiJl4p3kDScx9a
h7JY/attJ20fnFzbfabppCkDrVfLjpW1AiXSKsqOb/nSegjUoGNLdqvKU7M5yMySTdD7w29DuCaf
iDTw8/16tSeHzOnV/HPztgTnJI8UnMcS7Ypj33Yrx77+qcwWeeNlyHdUhQFLxv0si5AZpJV2IjDa
GkNMGSsbuPB5SzEfI01BC+Jt1mdxtJUo6fKG+Ks2f08lEvSeYz4L38JMh/hp6QjMt4CWKgF8DMn+
U0G/WjDsYgw3N3MTp5NsZ1G+xAcTwg9Ta2gZWauKGNlYEOhso1FrwiRQbSkG79hek+eDG+t4dmUL
TLYSAB2ehsCC6pI9dMoqA5HDwOOr7T0hgJWRAxPmZ+LOtgwp90hSGa0MaCsGMSvMXEXACWa5fNyl
4I9k215K6mD2AQdgyE5bOakzv/r7hZZIhq+lo+vGXwvOFNnyp/1ttr7InuWL2/i7v19gkaRCLh0l
Mv26RW6+6qlhUfs9+8nogtVuNFbYrgg0eGmaNFyl8+fn379cRd1D63/tZ8rKL0i9Kvx1IU7AkRPK
v63+uvF/21N3h6evW1e8hTK4Qwbis+fkCC5vygJeADF+LZ+2oX6EEN8h+mtIMn1Ls2CWjpWaFvEs
zfINqHLY+xPwNnBL22vpCHDpb3seMvkB6gvy7w/MB/v+cufa4fVd7v2pb9/LT9tG/7a2874N9U4T
k77s62OdTC8ATB7jRrY0LeP5VaH4sG/4mbIneXRVkHHn/Kqs4LzpXAKV6FQMM5LxyrviSLSS+7Rz
qSobEGL9IMON2PUShjE8N9gss0JWTZ5hHTDj8Yl8rrBNX+MtN7rvvaBZvADx3f1HhsmyEoiGBsFy
9MigekUsub/Xy2tjGSuBxCoDmg80rOgw+88SClSiK9aW5aTz7zwxZGZUNiKuZnBgFhEEbcVBYHjV
V6Jv33ne2/AmGIKLJIGHQcF5UH5A+ct9mLzsfkbEcAsikPVMttuITmvHOO2zldWnsRO0jT62jU3Q
Kfz5GE1Lfh4FhJ8kFutdEvEzXFO4ShlLaX46Zsav64KkGTu9n0JQ0JaG8K4+U8nC39fhwYxbERT0
6y644rbYHMTgr4vgDCx/9L+AbcNVV1m67mewbbDQUMRydHme49qR5NNvmVnoU401WNHrYygIl1YR
hjRL2VyEMET+lH+FSKRyU4moCoqjc8Oki2ijN7pHMa1ic7L5IZG92W0t8zZNAKmof6odqBINcaGR
YtHcHvR3tahay67meP5Bq8q3bQxQoWVGFHeiCnACttvD5Wk2EXt3fRT96/Myx/l0ALQHVVSw8VM7
qTqWX0Ejen8/7r/At5k1dqpc9TItOfq2eD6mz2K6K+GGAta55Clcn+4aqgRfYEjW7SwRve1lvp6m
vfau2yLGwB8HIynaYYyOPNgKsW37OsZ3zwYMZqc8bjuBZMqNShBILRSlqlSGHaivZIwhYKiNiqXa
6pITEfNbDQiq4fJ2OZv/5ttyvGP/yeWg4by9rhF1NSRT3ZIOlCBlSaWXVFaptuFKcI7afFq/sRGo
EpRr3FrBKSjPd+pGWrGSQbSOjnGpu1h1gGcOoZCpHSMCAt/4WcayVARs5LlQdAxQ/Oz++a9hb4Pj
LyXUGOKc9lubjCrRzWZbYCyp8v5hbhb7ejZD2YYnFBIs9f3j9H6/X5f5nw+jBPCX4X8FU1mul7NR
xz+uRgNe9o+05oP2GpqsNPTBBInEkv/nL3/ewUJu2fCP3e7LcZ/8Ux2lxfFPiezjz/2pfz6Oy5db
+k/5r2p8Y8fqT4HDuV/mg1n8OJ1cVdGoxHPyuIjGlb6hcDp5tfDtx3kPTAdggw7ppQq3lAjUV0vZ
CVlaJ4sD8tFaPpxarfUyHXYfxw88wPRK/gODBsrVWof5dTI/29Eg9Mdd21sVXDt3f2tCm+4/BYEd
/NVWDpCQk6LzJfgTacFp/GZ9xKSsbi/I/E/Si7bBos2YPYF/3C7YvXRMi08hFm1Si77t09dShw+/
ym5qy/soxPuonP5brXq+nGcT2SAAIj3r3jUg0V0XLiRff+N8/9335Ar+PuvK1Uu1rwQ/doL4A0aY
Q/JwP8OE0vQXd+EXD9su93F/Lbv0omLbpQu9sQnS6cPVn9CuhVsW3TFwAlvbJI6ifnm8vqaicZBr
fz0QLfbRT4d9Mejl+LpMH0aAzjDmbWc7XVOj7UpXPXTqto4KuRiRZv7j/aI/cC+g4LvERQpVhj0O
42jvL+mBIy5Z6t53XATsgEoQ+N38fT9f0/G3H55nn3eV15qT8ckV4+vVJgZdVfxh0vam/X6+KRp9
CPamizwoye8pO57ernhVXcrOrv8Ezgbftrw4XZ99UdUC2HT+v6SfbR+K6/AZnbrxTxSBuqmiLxl0
2JZz6IsxVF7NNuXFRi+9bP10vOiSX77M5+NvM/UumsuaFwjCbvvleL17AYGgLH11lXcnMJFOWy6K
MvkL8ZGiVdi+R8L1QTB9n5KRl2tup1X8wRdFk/xFWYXWK+gS54/Gv357n+fsZw/CL/MJc1zlV3OU
y/Tr/nS5pReow1PgF/U4m0v4YEjIPx+XO/Lpni+0cHKxpgwOo7SHkT4+6e36P8+nQOYBrUNqomTp
B1MODEDgNiq0isez6jVynOpfJsUeeOQ7nvRu7ySt95o2vAPZFEi4MSWmcw0hayts0/HT/h1GIGX2
UHvPAPKEXEJGzXc9Tce0QWmKwKVgz8w8OvZ6pmX/rkz0LF3Ndx1l0CGuX7PqjjR1qHY6sZBRL+Ae
pH/bhYasTh8iIpT8C0ufaaiu3HC8mIJIq5m6jKmZoqjT51kGESD/XQhH0ZnRfhnq7co2MUgNultw
0JrRqx85g152gU7lM/UbSX90KUQaKueWafWQUSBlE/xF+5QSujH9osZwGT5B1bL8mlZSVR174P4c
FPU2xAzp6+lxe4eEuLmKO+eQtpo58dZ8ssRvJW12qiI0kN3Grezmr8d0DFs1QbjYBM3YmzVoHWrQ
SmqQ8PJ1/dHEntr0YcKAG7x5AEle5z0wgZg3m760OkzmcOeAeSlYf3CW8QarkDaBfIfyeUXMraTP
u04LUpPgFf5If5p/UCKtnZRo9ZiqMjjtWtjL74o2qFfOcSO+gv1VXUNXYWKLK79vZ/glnqS5H4oF
01sP7TWHK7SHxxk9Havm0/vwb7JmyilnK2Gw1+34m9GP+MuPaY//f/y/4bD76fCPx+1OIQUMoI3+
Fegvqrg6gJ8Kf6fEerBQZ5hCpw5JmGXCczA1TBLsVs5OkCBiQDPhGMx1I6nKwdiUq1llne42g+KQ
lF3e3L9MJmLHPp0jjyfmScW2oKV1neA1tPERTQQssIxg397NVcOsUGXKmOBR9GW2pEfe8Mx4/wsu
GSbdVjyEKOspt+/MhyMVGu2hKH+5C9apuv+7lpBNkCi8yia4lzCuiC2l0NA2ZR3jMHs/Hq5H26AB
GDwi83u8XI/f5xNlown/vXFsRSPmnw3Qpza0IcfOtgv3pGmjb0NdjvsvPzZcgWRk94Yx6aDh7Y8x
Mv9P9Ifirptg1/TdZdOMg3vDf7wsv79clgOZG2WpOhj7WYn5jqBY8DAZSbPlPCXZshduiy9iOsdN
CxWhdpFULy+XjbuRM1Iq4UArnMSCybv2CeKiUIgIBR2jvw1fwD4dr8pndjGNGLw8igMBCKFco5yY
ATgp5Mwm0uzZrEGmYTcvy2WBp5EpsmBRZXRGSEAOHM6DrA/+m3m2JmK9A43cdDvujddnFFnSGWhF
5hhhQKNYGFXftMyTVwNgV3dfj7fjixEecxCaWnCEWWuHab26hXHoTUVuOu86wAbreL0cz/e838H4
BPY75NSG1ZYok83doMbmbf9kmSweXEob9kh/42UCvMkddVquessUJRwMCzhFdLvpW1jlr8fwTcjF
MFGTprVzpPi42IA2VpCKTB9G8sxF+lyw++z0esJJlzMrcgv+6Xy//O/jnBaWzgtLh9SoykVvMnNu
xjWl/EbfFbp6eLCaeePywt/hv0tXmVpRlhWVsPhm0ScjJ9ZYaA1R6bAt8RdodrYDMzcfLt/O9J8e
13SatY2l7OFCLCsjn4M1eumbEcG0xHatHsl8QlDXH5fLx1/headfSREkKeo2Jt8mQLthA056W36Z
BiDHDWPEAkl0q35GErtYzMfVss+9vlYkRMDSlUUdOzorgca4XDEvQP5s2gz0MjMihpiohiAtKlVM
TyfXQuWqlIlFtVSkBNevzriHMAIWiQFyRk/sTxApqEaPJ1tgcRsMDbWlp99dF6vjxB+0h2ueI8ZV
i7ccm5JPbvZOHg7L9OYjBfojiqbo+sAT6Jqf8QS2nMwQC/3jBpLfSJWW2y5uz7Xl0ouJxIicGbHS
azvEf1ON+542bAKAAfjavlM2ttJV6R2Ky27wH5/017JPrQyfWkQDBo1f3jLnzLywHgWiCeuVJYKT
MBHpl5veaecA8WTZB2fZpwXI1r/M1u4iifT9lHeyWi+QHTZ9Fpve6o/5FiiFtMCXoeHs9SsDphmt
SlPU29+Pux3lBUnlCtsrh+TFYMY+nRgU0C1EfBYZj2s5IqHJT/jYfcoVEUfAusO92unldjk97srz
L2NQydNElPEyxLKmBv5PkB6fjmdFs1SCAgwb7bG9uAqw+na35p9vKpK9F72MJY3WsWOKeCVLFJPZ
USNQteiFlVUg+HZH9iOz64mOwrJH7qO+j6xnXmWWPKIX3R8NwOSbVroj9vxfmBNAa7jsBcq+pFGP
5ah954bLlHSdNMrSNoPwkofjV7ee+c/plWRTSYXzOuxExshKW3YmPrZq8J9tsV7POBlWqJWVpMDi
bN+qedoZJqJY3owKFC89Ky2VXB4ySpVwin89nn/NrSB4asuKzi9yqzS/unQfvHt5aB8tmploWElV
SQPrrsKOBdbuthEsH2WDhqWtIlJs16R/VQRZHhl9ccWzn6OaL63nqpj23OCa/ms6OwSo1X6g9ipU
5tPZX5az5q2KIpScEL7Jv9LMoSz0guO+2XNP2/8iHb6sQ/Cvcz4O70J0npIR+nQwISD8grRngyeU
XjEUtrr4ZKiVXrgP8S715xxhkuWD4gmvbo3ZGL5dli/zcsNf0H/G9EeymdRE6b7vWHT08G8xMP+e
BnLjCoVotfVNCbyCc/FO8/RFW6QWZHCYSiyCjaTBZfDDcRBbwMlURWM5A4Ae+bGHEBzhuelFhjbg
aAu/g7j8rkmMK51lFzAgsm2z9K4f01U/yMr/HJ3ySm7AzgOiXLJ2kkOMp49X4Srp7u10ecFBJe50
tM8Ku+U5X+Jv5jyr5zKO/rtwwGYb7skBHaA5GBqXtSOqA2llvg57R/PtNr3NuUtqA9rBpgrF9eOx
nLTTFfwFrWubCYTkdp+We0pD0hY8ewHFCqQc5tPr7n26/de381+ZvFcR1jHWQG5lxbx5SKupHILm
W/oYF8NhPhz3CMjk1U7H13n/Y6/QS4yDoHmtqarO9U0g0vwL3YvDoF8n0NB35aLHYQiJCDv5eQ6+
vjs8FrRu09fjm05GYL5W7JEGxwUP/HTZ51Yo6+B5N4GqVF92KVTk6M3MHfr1d/+4mS+a9w/1r4+j
JLwsKbdaJKQ/sxkhwujcVt2TqjVmftH0rZAcnIfJLOd/sLLz37jW/0At88veCLPvjQAU2FH50EGQ
pGDOjD2S6X552b3cL5PyU8GK6UvsK1u2SZMXZcDUwif0gIOZwFOfiX9GOSGxldZx+kSPZWP3CH6g
l0Cwcryq/cDpdFI2FHLHtIHs5J+4ERvBDernevECZEUey2zFUNPhVehxVIJvnJc7X3TdNQ59yNQ+
eA16v/xyXzR+lHEsgstl38wql6/orWB/mGqKCmFH/LQlex4ElMMaunYUfieY3e2idlFbQNLpgP9g
/jmEaqnSvsFbEawGM0US/2HQsBhDo07hi70p51qHpLT16vllXY1x9PtBGoQiONT78WNOgtboOPyd
QC56KFcymuwPpl+XoW0PDlIM37RNlxtMRiHI2eMHPE/LSbHzo1gAl6wDj4Mtn+6+CVta0FsRDC3g
nfLvTLQv/sv0noSbW9F0MMY23sxGjIhQLtKE4OaUfnNASYJtJfnl3Nwp7FGFvDnnrGjN3WG+T9lM
XymmE1W9J6RhQL1FWUJf4IvZ4Nc5ZSgrByVw7AAMdLs9XozZtgBKjWsiNqeRADsoPvijFAKycoTb
/WjHlI2MLhqTv+AU8VgG0NkUJLFyVFHub3DS1/jI6b/RB79g0JZ17Q5326qQXIAzLaPlSxhVFGTl
OMfoFx6tfz84agUkwU/+fOyCn3OWy+7Ybvd7cr+j/3m9mgP2Xt/Sf7byl+FZxE0wlT4ZcX0+E2M3
Oh0O6C5mz7cLzpfBcEWi3bdyPF/uCznyNn5i+hdd8IvSqjXzsPaTcZLuwKGzMzd0e788eGIE+ZWH
E9rW9Kmp4vVqfLjsAXBCyx6AlekE0LJyvHr0C6iH8rsph/QhF4FMBdRmRih2Rn8eD9/mKRXN4j79
dUM2q7UXld5nL/ZZCJFKP53ePx0PWTXxZ/oHY1R6irT0dOF75huzZGj4QGFA1Q8mRdKG8OCp+B2L
+qGJeNJbrsP7tijM9Ed24iN9o43xxn73PXHd/i3XvpcyBfSsHEHh+lSMi5EWKf8ZkI7nsrH5Hx0P
DwBIJAke8dTEGYC+K0f6pn88jDU/TPcp+WVepOpSQFjTot970RdpMrrccLdKAgL3vJJmHj9L1vGX
//0//nhRxGRoxI3grTNetyzSO69CTR7q18Mpr1r7p8dBd/RmPDlKuhLeB9wUphrc0f81uiZ8g32h
Y9DNTtUWS1Du/g12iAUOBvoqa2MRt/dzJHEWby0XhznjEBBjawz8G62GmJwU9xWu2vVisiZ207Yb
1lXW87usMHnbhIOHiDQQIbS4t9OirOWndqKjUagrqV8pprxCitti2SgQOMxKQQx/L6ZtIoXCkNpJ
md9L60+InssYSkm2bI2rDKUY24kRSb9a5nBc6D8pIiUunzA+w2ahUi9OTJ2FlFLVdpkD01YTE0oR
BsyDDtebPO8q3uBN+WIvCHWL+Zw+vtj+9DhskfdeTOuFdGBVl6t7eJuut911OqqDZWitURxb8oWL
7ySAVIoUm65CrAlpgef9cb87Q0IFPJnIAbVZxdUg3lWHXbPJ1y5IJyEpc07R5NGui3AGstzzDvin
IXaHxobshXdNbAIxvXu/niJ84n59vWR1J/f35fJ4M4rkCCQ3xEyCLwVOUpPGTgzxxRmehbSbdhV/
VxkBktOe18e20iwb77cQWgbbVFKaT7kBrzuxtDdmpTqrQnsxzrlDyuh226KamumFzGHoVKYW3Wiv
/XeLBHZGtW540K24EqLCFSL97X0+WzT77nizTjuzWAKI//4+P5Eyiv+lbnXEHG7B3hpT68oaXiOh
+ug+/6ISoAo6djEqnO/SenaIeUDhN8vPkzY7DMFupXfn0Mdk7m3aiD1k21E03SGnlT6/Bk19EazI
2sjxsE4vN3OWAvivupu2yEz+ZueT3whEog+lvrnHGT36O0H00x/MXCy4PUgvlhxCTLcbvB63T/SH
015w73flG8gsDTJsaD5kP80GguNqBjAD8dwRgRG4vO5ej8vtnnPPhyK+poVrkofPPdGqC4afKQ6r
x2yD5bP9bjzK/WXBnDDdppVey86vabjGFb/oCIk0vQ8Slpi61jQaXmflz7CC5HVVNAE3xn05fpnt
U0tfBYOW6UOdCdwGx8J91F4gygqL09Xz15DmSwwtoc+p/OdQOqFcT94j5wJ/fb3Nj8NlNSPxrJHz
dmMXEKlz+MYL2UGB21bqg5kXnP3jlUhWt3lDtFrIT8xJkXC1+f6J7wxnyNshB7AQryOMAalKZTHB
UF1gxpEpuiy+mEojdA8fl/PFiMy77G7CQp+ddHdQlF0prh+CCi7kWgPPo8S45fhypYZ1ZcWS2bye
9MH+drt82GEg37xcCVpjN4Jc0CUnyxijmNYkZ5+Rnjbmg/TiNxy7gXSWmB9NwpYxaqxEZcTz1QTz
6emdp7fVNrFtvc3Ord69/HDfrqksXG0sYyOpLji84C6nXkBbSLKmW4qK/erbIuelF48qMefJN+sl
vo+eU/rzBn+HotHseU9Uc75Py9t8V/ZWyglo8AgZwXJ5fTXH9VcaRHo8S3dFOXoxDax0ewuOXjvt
KqixcQb1+cvkwWVOywEDqhXBV+K4kFM3HcnxkRXB0D0L10osyRYXjxCnge/sedBUAe0PielYriaa
/lPaSn3saP1B0ioLTjkIGORvMAZsedHGmFkAyWp8m/VL+Q/Yj77dAZSXpcNHbVUHA/KqVtu0jIXS
lzeKoWlCHBJrqkEQLdcF0+PY8U0shwGF5izRkmMwktBP/pEGIKb2t4wnw2NtQ21bq+KrYGZKgfao
QtazuG6rFBnqgnF0lmYq+aYohFqMB35IEBmx4HsZEoHi87pg95UsJX9rF05sVG+bxjaYMEq56jam
yknz4gg++o8wRM/l/NmvyFtBodcLF/VvevH3F3j06osXr2hwp7pBRhWpFJNMfY0wvl9lY234HiPO
yBPZlOKXiNmQnrB4u6Ln/pFtur5c6/pS/WsI7tcmCpUCt73VggAeAKLzjMtX9OH1p9a8YddjGkhh
Eaexm99qPtx4OBt6ACOP5tWN65mTxZZX50Jz7q7B1628viaQHNYUvBYKMeaoQEiyCraOvbVApM1S
eztdTnkcbRX6LartkxGcpsKqQM1YEH7KG73sgKpPewbSDiCWMuUFUouLCfgPmvcXddW0yEJTe2MR
iyyet8bCqu1rCM1d83ypnKfKejRtG8zvLVUvyWZcvirvo/+EJt7Qt4RL1qGURGSYeQSV2TykIAP3
LSkcxpAdX4/8b9o9tMG3VtstsCIlItrz6Icw/qTL1V59EYs8g6Ds5XL4sT0y8wcHXaRNkY+ttGOr
w7HjTdarYv/8DXW0tnTRxmxLICrBaMTMZYgR3VhLqTd709tClC72+ELlzOO70gglkmyZtcB/jBse
8uWcwvmWLgG+LaDObdAhmVfaL/jWDfPGRzHwHiOwPmvuleNvfjZWsrerrN3HklIJ1QCXcRMeIH+O
8h5XruW4Od7JaLRSTpVHiW9VneaIFrOGZqzDieF9LtZV3PSoduN7WxXoPxdGiFHyIkWtaqasA7YK
diIxheetVeS+C7950FwRtQhBRyg8iNFhNOLLKXdaheFxnUre6rOG8fvqbbllqhPIdI35EwdlZdcr
uorD1KPTEiBDv80WWvRDLrvbfCK3lo3bhyqIYCvVCrioRE8zlGEw0uUDrM8HVWWYGimzh6DmF8ow
jE/dEOnFvJc3bswBbyx5lCsPuaFCE1eng8K+eTWoGxJn17gc4rpMLa7FN/Nv4Wyk+n4nCuiAVePW
PAJnLDPLd6BojzCebTmiV2Xpr9MmofFeKheunElA4scd4F9PDHNAw5UMEXCpRmAcJBsfLQaAkX8g
yfrX4w2wwJtPohbV8W70XaUSnHC4POCjxcBWHrSughRqUbWjJmXLZn4++Eo7/dusVMd5BAntEEV0
kBLwVFW2FWCsZCoiIIruPsTcAgpQNWjjdBRfO5rFUdyVD5TezHs/KNR4dEH+80VxLCAgzkEgyqIV
KA1ISZR94wfaAtyEPw0+nyjAb+mvEygBiTWjZjGPkWJS6hVztvZaxCa956s/dI28jq5Z7BZ5mQZ6
6VB4XoNTbubiz1nISyluBEl8SkbR805JN1BCE7OpyOxcKeVtCf+oPfwjVpinh+dr8qREsvgjoYck
M46fPY/Z2LMEnGXX7GPvh+nIiWf6ZzSmUBrY5M6IZJ7zhges5PEIfyJwMJVKjM39E7iq1R7Ioptz
Q4w+lqVv3O0T6U5qYYyaFfNuFpeVXjEIQiwOfA5Gf1zfg3BfSyOLxEGPz2vYsmFbDtB2K5OIQrlk
Vj7LZ5w971r4FBJH/+19nk+SMTf/JLhjVZyHNHxiqdOkY9V4Z9K/FSKb2pOvsOSiYLPJIisIkaPV
7kpmpoQ6fF5Q/DfOsE77L28LxJvaXxAlJoL/BIzYxzOSLs3ftkhWLR4Zjecuo2tpS8ikvuXdj33w
TSKtGVilfaZIf1Dz17D5ILVlRX6f2nIywqTrEVl8Rpxoqa/2ou5NJpeRl6hXV9PkWt6KwGSm34ym
G1opJiV3fa90A2N2tVVkEr5YU/0mbtRFmJ97I01W98Q0ZjZ0N+Le/cu6eMtfkYlTnNvRPB24dtJN
VpCyOGHeiCz+CU97++dqi49r1VE6xCQS6c3fNrE0Nz4LIvzQ3vaaYssR/gZdelwNPWf2pVy8kOY9
6CtPBAkKj3v5XNxi/gApNRdwI0/jrNCtVoK7FdKRJfN6rNf8epzUuVa4Vh/gYrlmQdEQzSrYLdPh
+FA+sPTQWpwoT0v8Y7pO5/k2Q53bd8/wkW47OMFpKgXI3euriZCuwMslICC2GWPL+p6aFxF/ZZBb
Op455QclEEwCmHMkcQKvf6+cRxNcOFeY/LoybeN0FOXH05V5XLiK3ZU9Umsq83S9tWDiEGMaoxsU
368zMuMGBdlx61Kyq04su18ld423UwTw7xCG4ERcvBnVY8MV/b2UPeK9Uk8R96tQ2eBqIdDdxlh4
XOERajoXT00wz46Ow88ek8+TPm5A9wI4BB9wKfsbgvPjxGFsf/sXjogPlbJJQaIsQxQrNeHjIIGR
T0hZuQ2ExqUW6PO9VCKa3vnn2c8XSsmDO/TPV/YotaSNcDbmpNLJmlbkFmi4ylM8jeFjtp5LqQ+f
2Wo925SS0PQG8n65KtlNkTEDDIPx9vlZXx+UnUCLaMFGmEhOr9YVYbsV3TYmjsD8E2eA+TeCh/HG
ZXKBMojT6dv0I029NQjmuxIQHPaty6UxoySXBv6iZGQBq/aCShTK5zbdKVbl9c7G//iYvmsgN1yw
DLhJyzax3PG8NxsEtj3gctbX7IaAnZQVk3qmmL+iI92y66EQJF5YD+zWf2MLAgg3W4UH8LQQxPmr
NCMKCyWaaIrpIb1+I1j+IGC3nN7iL9jmw8f1oHHLDbVgfQWMXDl2udvCxJry8YJtzvdGPq/HJfQt
8tQE1MN1q969PFDltnvBDii68ze/0i1CK4gcS4izy+bpZZmb/phOuZ5OOli5Gi25Xs3syZ2nA3At
Gifz0PYhH3K/Zc3zJbdq+FzFlVFaVny2WVyXqFGyRiNlluUK9ZucTqfsq6yFWqIEyphVTHnh7Prg
S8un8yN8Wbo2RHur1srnScj9JeQEpZGHL6JdefxnO0mXIgt/H8o1iD3KnH4oKxv32IrFcLJDGEFa
LTa/Hs/kHqrPeZQUl6UDJPgP5v5pWl2nph0EkTWz7z+JG++L/40crfPlfpjvJiLUNHctKMwllUD0
ZYCDpNBUj4LruKqRWahcf/ad6BTZ+c9diiBYF40oz+/D+IbbDXebMdzSt3Di8/WkPJa+Crc52l5t
uOKUuU4vV61e8JOODoRHWUcSqFOi7fl9YAvKZNyS03za4EiUAf93W6jKmVYnffNVEZyhDVmC65Qe
pAiXox78F+VSJPG2gAuIVbMATpTBci3UhWI7juec7RD8vWjfqiGtWDdbtyLge62KqM5nVMC35XJ+
y72SuglF2r8Srom5lKJRXRiMpcsueIpN9rNNeIfASwsHuizYea4ZUOEqYCbk2dipXrjiKJXrpzNE
FbjywX3WONlUEowRU+S4j1Hui2Xu3wC9cLvZCcqMw9slJ7zjB67s06jFbcrmhIoB+KJlt8/fAGEs
lA0KnSrjYbHyhm5G9D4Up/fJ+8jd61iUG5yOw8F+sfJmxUISgBVVBEKTKh/aB0TYdbP1he0UQaml
GsVCR51Uf8qpiZdaI83EEFUo347nA0YeGW3SrjcV4E+wq8zaypsfymXhbOlpP8gz7ZUpgj/LrTZO
uesu4J6PxDSfDJIa8e5815LiGOVi5C5gla869RVbRLjWToZvWFxTwGLz5MowVw7yYCgOzRAypfdx
d4bdLKsHs05NOwZjMpqVaFo/zrjpkAURzIKaTygY1AWrstgrCeM62snHUsIw1zgjrtuwXWWfdeZM
n1zsDSFoE7hzVbnFxVaMTJ2xgLFsoO5w9kXmdpIZnK0psUEGbchmWKjSmne9wy2HIGD7mmCDMCuM
wkFFHw+hjtMcxpyvVLcbwoxEVPCuGe5WjB0ZHO+0WBZL5IFnkdlqI/zkevRokGjixrrd2qfLGWSi
tuCNo3jlym2IbRHIp4rexycTyLV42pD5i+RwEnlf5QS7uOVNp1M3vO82FeXTGSoNfKjBZMZ48NSU
m1zkUnnBQzivpdwe62qGoW3CZQc1mtyQjBTrUZm0Tsa5qsEqsgoLL2LZlvKrVqOa2u55NeRAUNYo
16+1kMzXtsGD6Qx1hsRirEIQueRyFID0HM+i75qAl8BR4Zbqn1L5k8h0UUST/Qe2f9DVZ7mpCVBW
Cg64EU0eXS1Qz7hhW/Tlrrpt2G8GezL4XbB6PnE5fn63ogSKY3/5bQRNeYRhIshMqZAyCrw3jV0b
gwiBiL2Y7BhXU9DpRbyZgYkeGL+TvehSYNArOMWKhXADUaSOCmkcKRBtEof0jv3TtdhOE1CD2gc3
omOA0ITNc8uFDKbMwjvXm5mHuLei40Zies1dLCAzeyxSH/ILdWXIYl8mWEU9qCMHaKbvFxcOqrC0
qlA00+Hr2UK0X69bJeh1vz5Op5txqWfi2od/3dG/776aR3PZpJOI1tADbjBXObr1wwVRJ2UAHd0o
sEVFzwOkdbiEgpUI21nsNNr36TrvGAXAqoJ/Tnoi/B9YmMfl9OPN9l3FRQKIyNlmFPXqrcbX9noq
wcWBSxZ+SVm9ii9pNRSx/27qnUYC9dH/EQcHti3PvgxoJPh4JxpK3dzJljFPunVYpjc5CPryqgKy
G9/c/KzvE+TC1AOVIxcWCsAHiFbVcY2IEtWs9/Wvle1mT+u5HTIRifkxjmRTrdzg1SmOay18b8/u
djpCq+uOUmh7Nf3TeI4lhiAR+yjxos7m1+c7DimlljN2I2Fe9+ECw9rO97wW7BMNXkm7WSlryWZI
RC12YtDKfgYY+S2rQAXbc5C83RsP4G4HRRuFskx73pPZKAxokljf3fz9CicN7jr9bJeaKYYvqPMv
CKf4jYwI5T8Dy5vHM3/AMl1ymVIsI4HpsWUS04Fw1rDQQy3+ow2W+dRHt+mP7oW6g4PmySPRj67T
H10L7SNaRH5qt+lDqcWfkZmC6G7H9G69rvQ8vqllhvQyg/hoibXkZc6Pjxf86tt1OnseIyBU2d0u
iYZ/vHuhy6nyqFxK+rRKKULChf2pS6nSl9Lod++OwfXbYUZdX7QScinVSHbvqvgIQzzWzy/8cU4t
m15SyIBMkWz4eOXtd0I+C2Q0T6uQ9KOs/GsJEGFRMerTYiSuggZ1KbtJaxruhiAxQY+iS+8mLRgM
rieh7rzrH91Nkd5NIY5YJN6iyyhiKnYjLedPPbH0Tdat2C1Uv4ohfXZpC1c2a4XVb31Uyt7kEfSK
FvQvIH2cw0+aEVU/SY9ewGCjh5eW37LdvkyZvoNK3AFkzPA1wToYUss4Zvfbn4C0BnONJmY8/JKc
pIfY96JSGjFEThAHgFNPxjlNoYQrysYe8cXkxNqwygSFl7uNjVNZAVpPtorIlr3VjrJJFVpNNrHY
HAAmAT5eFprmLnlSbrkQoBmDVED1TBJxgxhlN59PQHi+IbnQihBKVtoCh5ra/Ld0DjB/KwdSwtas
O4p296NC51AW/Zorof3cMI/0HI5xqNcsCXXIkuCkZsY5xvXBQ4CUxr8xnMrhYikTIB/mKySlzvsf
LoKkwoFyjoINx5N+u5aVo6BipdTcbUNurpTtF6KuwXHPdCUGig2hT7tmkykSUqN8Yb1O29I3BrSG
eTAh5WC6+EQT0HcAPNo8QoMSbuLrqCeyEjqF02yS/kMJioUcl9hsXAUjmixPhWdOY6Jgz1FKTVDg
ngu+jviLHvCSeW7WulL59CdccvNFUTs44I+LT6VFkw7xBZn65fNbZjVJg+F7TzVDLVY2teFYFclO
p/I5uGNuNMAVfVtibscZX3rweXJaWba0i7W/LqewL0y5rMavBpJWrteiyUJmwasbQbFp3c6v68lr
I99/nRfQTcf9w1gMzudtOQaO2/APyDKG7YrDxyZyM+QnKCImjpXiwKSQfeIpVGLRxvvh0deG+aj8
9YuDlfwkjubepcw3XBOTU+Fqklwn0lnoZrpp/YUk+oMQ/cY3rGRVzCbpF+9KOr/+8z35p58wpp2A
OE9Koj2JquVHytDH0nLi42WZUSx3Ox0Pkp5Lkx+hlyhsGLcd5VpEQbaUQ5XqVficzzKl2EH6/Fas
VD/P/9QU3ybpF6++b318HFl/zw31n7ACjXgMtWeU0Z5WpZxFFZqAPqGmWbFu0qrieD1e3O/PlUWc
xCrbE0cpkfsJ3ZQ9PLE1GeRvevWbrl68LMnR81kvIPMUxKXJBExgViL6UVGH4nHVWOYc4xrLRSZ5
JSOUoGTGSwgqjxLLnXAxCl/AYaWtV81Emm/znclDcWbCdFNqWuUQVse6SLAIw4a/XTaEif26vzwg
Z3RDN5G8jhB1StlJlHJa16a4JbTLPKzGcaay8y4SArJkidJzd59ttz+dTj+wTLpof2Bs4q32W/9A
elZD49iln8tcsdV54mDm8kYBCgqAdwjCpvEAjBg75yWhLFfTJ20VEnFwcIfH8+sl17pfyuCvdZ0Z
kVIh6KbPkgv2Qzx54OD3Fm63y5ByslYlPFXpUPLKTacvQcg89Wf0MbQJ6jdPpel0Eu55D//KXtBy
OWnPVYzmlLlYCcdGTEsA0ObvglEnecyH+SMi40HNpI3nnCCM4HW5XCFrNGs0jn0oUOz/TcvNBscB
1AXwHfx/VJS+cCWexrEw1gzpUHPreKtatQ7GyOtYgB7rpA2rydiBhJ7UO41J2orPK4RUCjT7x3R/
/zjlftv5TImYgu3ySp/IJcka+iBSQNvGjCqJNEGTKpn7XXoujZRt/EwZTy87xKaSYjp3y1cWcVCD
QFhtoLaik0+o4Sh2TRmMQuAtadtFkGd7V2CiwfSdFebtcb1eNCKVsQ2IVNpST3dp0IpCMm6PvuEr
9pXK541xgEYUm5bxAhs3nsnP+Q7swZpK2+WZFLsgoT0Cja1SA9fKesKnAF/NNqg/49FuH8aJEBTd
Sk60DPjUORJ8nlit8QBJNruGKHA/5eswMX3aKrbrhHQbT5tjs5uuN8o+5lJI7JKzr18vxyycqRxj
SjZCpJ32RCW6avSj7FY+7XYy+zFOyE1k9tD/Z+F5OBJpQ7lmHOUWkbuu3sI2r+Cmq/XDbUNK9K34
6wT5uEuDhaMaf4KBWg6fdzVOwQiIP1rRPoqSRLzm14uZVY1F1YXrpvdqA/NU/0LvJ0I0Prrpw9Xr
g0yTa0DY3o/EsFvlDjFPiojgbBADYe9uynKd353MacSOsUwvw1ks3BUlgrpwGWl9dRrT3g/DxF1J
siW3nNFR+JbnANX/GYmivzOIw2w8sWzs62vl63uxjCgZRb9eHSHS+4Gy9PECTrTOdohZ6sslPW2q
91Ps6JZr3/US+05zhj/gbOkIS+3VNOLSBXfC00Z/mxc78TMv337Rsh99NL39McJfPZ4fCoFj7wc5
0eaREXvceCSVdiTiHcg4NrYqXZpPlmvLVv5QZNwWXXY+oa+1ZVmhmqSv4JZ1lQE4WEX+xfZkhWW9
jtIwh8uI7chKhbz6x/lIEp9VbIMQeQH1jR3Z61Hb1SieI+J301daKct0QjIE+M6f0f30MypsFI+Q
/IHPGq9UP3LvZzrh6tTJ1+euxHqTytX04moEgHTzlpX9CkU39p66LL+0sqZUcwLvGM49EUNAlC+X
71hQfqQNhXo54hxlSLP96jUb3I9CYBvMSiXlPpxruUHxiGuSweJaYehxHcl/nXEV4h4RMW5bliDF
j6ezEP4IcbfXmjLRR871fqhp4zMmK4W+pfu+dxELf75orxNzaH6bbVyLEeQTLC5V3eGrEr5Ngdtd
vajz5f7/lTs2FkIxNDE3RXzM59e3qQ5pqDpK6CU7Xk735TMdLyKVIns9VqksEMbLcjXfoSRZRXMO
IP7a7nPNtxva4Jo2PmptYz5w84ijKh5UY/lhNYMqAkPJZUf7sJevyWY7zpfMSIBRzqDzUJznzA4d
jUIKRBkZH7EjTUinN0HVinjJGgFxO9D7eNypPnzkyDp3Jb24eYnYDlJNuWFq5stk4W70XT4vSzCE
na/wezLrIhLcvetpi6VqRcX3dFRIqwc5twudrVLkXb69z3663e54C4bJ+mEFfBg3LXVaBvOsLBsd
TVN02W9ce385benKHYKxhFWRQ/Yq2bAq1cy8hh7f3pfH+cuGinIXT4evh+cxPOP25egHDLt3riSQ
/PLgE/RBehyxKQqdui38cBGi94bKxYTB9LSsWhES1DvuJaZlcMKSf2plGQ5ja3qtBTSHTR2GYLHa
pnZxIvAOfrYxuy4bXZ/ma1sd98Oc2XccoKpot7YIIAtVWG91VSocWqAByNkleh6j+VNvVnmyVVC7
tHSP5+MHmTsxB0PQeVAjwuX+bv64jkUeA90q8DBWCwQt5fYrQDvgM1IaE8REB5n9dL93IHCAwX9N
Qy5oNd+cH0yzim1s0aZXFPHBELF1TtrXjWIdMR0peVAbBp0U/XriR/obX7SGlW7zNyoHVYqJFBSs
kx9Ajr6wEc5V0SNp3Fn7NObi55xEtaQkB9zKaC02ojRH6dO4rKtsOGmcQ3iIeQ5pLT2EnkNoMhAt
AeEJvWBFrcpaXoW5YGHY/JRhPMEjzZja4GXV0gsZMDf8DCD5DD1JEZ/A6VrENvSBFF0TJ6AJNnV7
P75uaOLgcWEOmsAUnBKczOp/Q9l+XIdOFkNwuB53EgeE6RaK0nak8q8mVDs5vLUSiXjV3IK/2o5B
ee8EBUesnkHKgcwB2h1jniHMPOygP+1xvh8/tLG2TWijB+/C/VRzBDlzTegXdkI+nahvEckxRkix
aqNSfl6ExjOJAfs0/ktUNSWQGFyb6XqTcWLGgx5lkVBMf1ydFfuoh+Pr67zMW2L7poi3dwUz7Ehp
4V/Yn4BmK0cQ0gX32rQJ3i60Cuh+KBuUqCzR5pJYLTPUvIt7MU9BsIJmCB9CFbCH+WGMOzIjqZZR
WkrODUZESJnMhmhGk8yZADICWqIMXtMTW1ru1Nt4mJV6m5te6RDgQBhNJevn+DOMFrAuJf4vytw3
MWlLFvqjy+waZSE5OU+UO+2kt4AgDFV2sLIyZqwWnpacsBTfYq0sJLqWqYaqfWurLCT8ZMqC98pC
2qdJ/6/16fRth6asK5xcVwSQrEXG13vdE4DmlgPiSSS27J55Tn3lOc7p4RYhbpzZDb/yqO+vJhy/
XPyYN45kE74akl75PncBf7j9+Hi5nNaT3VD12r+1XkdQHwx+ErnZ0OGy9wBR8B43bEpwFVDVaXDL
2U/buJJgonEVWXGbLv+VgUKNCWanMHTK4pcaIQ+Sl1aKqY1cHh8meP54mQErn6OrFJBDJL2kNwWJ
WRQu8kTTOC3jLzRBeoYdEZcQOBwXSgiYp3W3aZWfwhx1Yywhp4IGS+W7q3igQWVE5+JY7kLFHyxi
+Rv7Qu8/TisgtuW+faSoHqDIQP7D0AcIbLGmjQ6k7b6cLkuVXJKZM2HJesSEVSN7D07z651ha5Dp
JUR7mlQQ9lj7PRoZaprnPcI36rEA7mx0CwWF4g2fm15TbE7ebrDm8QP85O1rtn5NgDFUHK4Bch2C
UKo03udNN1yLj/bpagbB755OMb2pwq/TOZb/4Peg7hjEDOGN3lSAaw5+TUAdrOj8WKZ3Rrsfp38+
5uVHWkZKcWSg+9paCJ2Pv/g+ttBZwqqN35/vgBKnHpZsMwfotxi46s+CfLvO++MrUPooH+yvo4Lo
sxptHuR88A1Z+8cN2Fxp7fRoF1ivFbtr1/kuf26k9JUr7cSVPhGLoPWw17p1gBLszuuUCs6u6qvY
7siGbH5mQvfJyXnBopklGvH6BTD3NtOY1E+KWydWo8wWeouUfMJMv+5NkP0egkJmzatAooMogZJE
4+Z/3fdiynrtpoMkx/fATxhVV/U0zLi1fxAu4205Hvwwdfg3ckdTVR1asA32wJ6CX8H3sqbXYFwZ
OgqNMxp+DU7sqeKMe+n8OlDKqVfraDBj/L04T19WFt+idCPRh/jTFc4vLoATSnbEgT4f3mbtM2q/
jcYlTeVx3C8anS0tMgT3UkYXyZ9oH35Qs/4g8BCy3+Ovt/R8+GKR7Lkyys1uoxYfcztP1w0XEy7Q
VKvT4PIj5MVOj1nZSOM/pScJQ6/d/u+NHd3Pt9vOKPbdfXrDSUnHM/YOKOqkFvWVkF0ESHGPp5ud
iXB7fBjD8GPXIkJlfzoqwyG6bgyGqXDVnrJeS7KMiT8V8xgFOQ1NlL7/uDqIj/5NnRgRI56DOaO3
BQ7pcUPcyuH4+iN9LmKoksjq2XOZDgd3KGN6I2LcBiaVtLNtlBMdgmnIdk7W4XK1ba87VP/KwZax
cUnMHfSiMJ/VosxlpweHImL3f59ejsQfp1+OHJbtt2JXy+c2cA0vYuBb2ya349tjma0bl/51MATc
vWp5tZSaK5XzFDJeuJv9mAH2s0m85ETe0Zmv18vl7uccKF/Qx+YVxYSTvqRSRLQJv6QJljJRBOVf
9Dut5bzcWvT4of3Mfo44DKweMKXpx9WE6C7jYrTl2wWnBV2VgwnnhlehqLIjrtxr08YmmcYOttqi
CsvVcjxsByqhpy3nUoWCSl/zZf7xNp8V7RedhBn7hmHLN8jhrr0rWzkBsdMUPuYlr5jl5KXmSZPw
SMNQdhUlsFosGJByMIHl4fINCzC3440BUlucflT+Tcwoojm9vL6C454LXPH6mtCahSbE/P7cpn8s
JsxW3orKWwyuQHvipZjsNjhdg1RhRtNi+HF7n+d71lUYgqGtpevKJIi/OeTl+PHm0TcZYRDjioQO
dW/1YuVAMYxyjKxf4vUCBhEkiVTI7f3y4IJ/bkttuF7thhC8QW5Q+eHKvspuTorvKI1/mu/aFPNO
jJ1E41gzHcDyz8c8a+hUuiB5HAUBm8fk668VifFX4wdKRjWIojdWo7Bb4QbmVJiYOSwG6JnPP15x
4BnhroxDCAOyzm+P6U15h72Qf4ie2/BIzF5eLtNyADHBxLdyzWLAE6SnOdBzng96dJNyQWUf+INF
QuI1A9XHJP7GKLecRenLOtSZRVQBp2l6Ue92gY0t055xv8m+tDE5Mb6c5TDNe0P+o1pMTwQbgsT5
nNuEGFLZ4yQvpi/luYTIJU3enflvJvNTLWDDgxYeqo+lpe7f/WP6OpFIKwqu16IzedblJn+kDkMz
Rxm7y4QAZRd8DhM6/uff//Ln/4DKzn/QFf0KmbvL4/4rBSW/WljmrwR8/lXXvq2Yi4dDZ7tYuJS1
dl0RiqeAJ7weZ6y423BS0xmD5kStQrfsnvomiKCaZ09AUcZiqqQfNZ/YSbdFCvoyDG07i6c6zDjM
BhtbFP+yDB3CUIdojXj40uTUPoTMVEmZ3pRuqMrYKPl0LKQo1zrUjmWfFkBllTaeUSGoGHsDeZ1W
BA5FW2i3rmymqzQnCyRP+5Iy+BK+6dAbmT5goIDik0hpEXih93k6bAp1w2xSXClscGm60Go1qaBf
86NDb7MJzxLFVOfzIiHzGwH3lYEsD4AWvs0oIhBZMHEeAMphfkv6fKsiFH9VPdSb8ndtmO5Je5BK
+FJVKScBZm1hreKbOW82zDycikZAE3og2dNBDuIQ7JFL0u8Q3V3zMiUmhwozGPWRN1nVPpxInU4a
JAaEkFxUMT/IrqLXrfGxqhYL/W7lj/exHwN+WL2GsYv9bDr8YwLcp61GUTdpPtsRJkv75CluMnJV
OCa8th7dlzNkBe7Tm/KkyuCnVfoBdMrfbxRXf5363fQso3kYN+1koz7tRWgFnlzXaxvT3KwmllF+
jmWUJZohZiiN+/AFuSp8YkIRwFbzj21Bn+vdlgYkk6MSXqgnxbRGL69b/M8BelenPfZxkxiPYeq/
VL0/xeeropmNyLY2CaMIb0SeVLiQygH5nUA43YQ74QkPt/TsGZQcVVeui1bKqRRa8jsIZZUr6oKX
Xj55WMoTaKvQw6pWh5GhgaTDqIM12BZiU+3OhF3H6ZTqQiZtVynbD43XFsmoy5hkfEzHDYH8qJY1
vE5R3Lwm6nxj2dHY0CP37+G/Qo3Uw/wPl/0DdqfFhKXmNsBNa6lKNStvz9juIpv7jqaB4PFsOOWw
AFc+pyYUPdJqwr62HpvM2iolodafNyU5utB8K/Glcl1VsfVVKEpyVUXo8jkEZbW+jnmZLhiboW/o
Md+u83xQrL8oBSDinO2TnSKDGEQ77GGCobvKSfciW135cj2m378RqdfLxXwUPLQXvLnbHSbkKsFe
6E9WaX2shWkxEcXzATfUIYCVd96GJryJFRE1vybqFZ+nrxu8syYsC5eZqo8mfWX4FQNBRrAB+HZ5
LHvqFRH/jrUyI0T7u1Iba+swX8v5FrkM2P/jC1C7nrDyNi83ZbkmSPo13KRAM5XhsPBX/l9dAva4
V1jc6i7B4iYW4kohcQikxBzW6sVaXszFShZZomxHkuW4TIpY4jS9GJf33TyaEzwcZSXPVAMRIxfz
xEqv5smBs6sfjyDTAy+sZL0rj+fxcj/eT7NyLpIDLLaVZBoRt1CLG3JvXfyavPZk/IlrCC63wgNj
xA5sg+aWxcTnNO7txRbTv0uQ1bXufUQOVuOHofP1KwHAonk6X4REudemLCRum6h5n2572qusiHUr
6KQkMFks8bgflS0Ioiw5hy39Hi36EuE0/H+bTifl4Mfg4MunZwpPgqDEr5B5MtZgNn9CfSZi1y0O
fnzade6N1CErK3ftMOaa7QFBbrGa4vqddE1sR3W5TiWEeNOV/MH5kMs83ef/UGxOy5Mi7TK9yHZw
4YvmUuxP0+2WXsKPUUWr5dsH5oXgifgf4SpvDBVYAEmxu3wDkjXr9EbXh4+0PVk9r9+J9f1R3Xbh
qQJPyf7dOByXxy2RQcXFC7c4uovlpsVv6fVKv57PfPJ64FPdwKkCegSbjNK8Alyx8p/v6zXZzzeB
jgsnAFY3J/8ApzzwD7QOzy0vzf0V3yaR3m7jD6BfH6jxw25eZRHjmdrVhCvWfsWOWiwwmXd9A/Yn
bmhy/7azJ4Pir+8XccGdJ1DBqj7d2P/Ejm1Im/5Prc/SmnacKdIRIRCrCHaCeMrbbq/50/iMxODr
3gXy7jnTk8w+ZzE2WHqQ9JyTzSctN/K5vy/IDE/H13n/Y49jRekTjNb7SNlSDCvFtOvK+54f0+2L
m5LJzUXY5H2d7u+74xK3H2aBwfbHlUFmwP/2ZTooFXloh7WNj2WQr7S7gJ2l/3jrfgp6vC2ffrpj
zxcMcnqZxn9D6zKD/hscWVF6hdKtMFC3X7ATsdT7pG2kdsvAlTfrw9zMnYGLFf6rJDevuNczBF84
xBjZ2o7pOxrFCVkeEz+Ni9oo8Yfyv4g/TfTgOIgHxHwPs7BpNR6Mgj8JWeS+EeM+/leJueaVg6zQ
PhtnMoGn1/62Sv5WfmPvlA3/DgdRw1UeLg+oBE5pl6cCwIS/yGD6Ma9G0bzxdU429X2+aGBvWLIV
2+MmYQHGPSzTtwUdMWKyI55DlBToh0h+dDcGos++PhFp8mYp288XkT6+wa8kCn/hLVKvsAJEqFyC
hx5BDx0WkYWAkt78PLlGKeRAUkkH538zzuy8u3wcbzflHbWDf9tYdmifV8oPp8Eb9IpOMsIQWw6A
X/2Zf+ahd4MQNpz5BTMUI4f2tlwgr5XoH6scyJHF1umf8NCMpUnkseAbLZ2qfUSRY0//fdvPbP8+
u5PhV2idPZWr+dIaOC8cCD/EOn/DZf52PLzNykl0XgjBTjJyTdFJ6aUqYSFLd+387tFGQUM1cAni
+aSvuQ+MQzsI8eFdWMpF7iqzPLBf04v2UlEVqKmKOvKtTI9s3u45raM6aUhrd3/F9bsdeZW8+Ubq
ITE0Xd7ZHy534zUq2r+pA83B+Ajl0tLarKoDp6Spo0uBfwN9ou/T4fJNlYE+ULNN7Hnuj8v+lL6p
og7EqBkSCi19xoMXRIAAt5HXDbNtZgxQbu+X5W784/RT79rgsXLyjRrwn8Wal04/fXHgtWeUFZY7
ee+98L5EV9nqdJNlm8r1c5AjWbi3pV53+q6HcDfN8zt13gSp5PTr9EeMtDZ93UZeBTgk2qsI/Zpy
THgixgUxu1ogubPfJfNfePPivCUxzvrrFlCyWVdJvvzOzyRfL0bOam6xVjzbEdkEEg6N4sgIM+2L
BMGRTzCtTXnutdeDkJeugy+azPdMp+OkWTHb0G/fat0/beJP1HT/+2S/TOWgR05plBEvlGaaZHj7
0bRXgVw3SVEc0tsRCrpePbPgaOv00XYxExOqwST9LWpBYaPkYBZeAtuXyXziOLQXY3QuH6IcvdcO
vB1W2yuf1FidVmNF6P04DPhpztnPXlpef9GkdDhk4Q2wGpOabTp9m37coFhyeECX1wWYHVQfffBb
bQYkWx4DWvPpdH2fiIwlHW+JRwKWu+KLEO4C6CRcjyYRpb2HQdUh0t1Hb996SOlrlFeBgIk+aSy3
BDVt1wf3YwG7yTgrfWpF3taxb5lk76xcEdJpubyv1KYNXhcsxUH3y/Fw3BXFOKV1XBn42BZ7H760
nOR3XZcNz277Zfp4UcOWPny2gwitrUxb9Z0eulw54JK/Hxnk4SxoI8zTcZErWhOXfm3+pfTETNwE
xIxbos9e5MoEzixwS4gcy4jNZdG204/r7dQpU5C2sk144mG6wBn9/WWBrMYZyAEOaBrST1bmRwTZ
ttzVL6DZFOPSCftURp3QtM0fV9F9kUgfQQyTdWNEyCiZldarkabWF+ukWRnK9WKB2e3SZncM3PO6
jO4n4+PLI3q+IuuPzNd5Sq8h3hdmEnshxvalugeWf1leBWF3SMd5ovP8Jkc108tIX32V9rKC803r
0HoIbH8Q/SaeA0pS+qylBas9dWg8AskKpHAv5Myi4OZM0HeDM8MUUdoSikCvdb0aqbAxbTyaoO5Q
V1E7eOakSNoMit1g9du21OKF/VQ6TsbF9Hjjl8l/Infywk7TLNIu9WYAxDXf9+/poxePGJEdVZNQ
kWm93VVBYqRtU2matKZson5uZIm0om6qwOhXYyQ8MppI2UQbOmRVLOJ/f0D4qtv7cvUxtZJ4TZ9q
MSjW0MZpDyUZI/N4BEnvlbQDBuZp++49KszItm3gHJLTih5+2hj70wWIQBdxyk6X85ueX/J3XPt+
CKvjme1BZamvHHLZuz3PTsG/nU6/oOtt/sPvL8tZczbrME/UjCnRTWv6JsyRdt3TEv8DxUWRlnbl
8jaxNHlOTZXCX8L6fZkM6Mf0TlYJ30iuS2bPnBLlWQBA/ED4rySJQ+WIiai6CmnQoWg3RWPZ0RYo
ZmH0wp+QTM/bv5Mbw1E50op4PpoO+L9wMU1NjelklLtqIvNP33SY0ApVHeeufRFYiT0rYT/Gta7j
UIsmlhwear287UN9xyeDXeDmPP5dnFBaKLxhxMb3QGVSJJM7mHq1xJCUXnPpsw1Fd28XBEvt7xPw
zqc3KDRPA1LW18lUYjp7W/exFxbuzofM9N2FVuILdccwpB59n5bJKkz8tzHF/HE850zn6Lfi4eCR
nSieRJd/Hd4J1CewVY6Ph+O/dp1Hkg6SUjkso9mQZ1WV1khDGOJUqYNR/KMhhsqJGBlF87RBDjtW
ySVsTdoJqGOwmpxmTWvTLghBObPCaaYqHSgUYSUvZjo+ji7nC0nC9M00saQZ51dLl7fMCb684Odi
56rkkY4MOiGs+I9anEipnEgVylcZrfcCrBA2ktbAMqPUrlKRgTOUTis0rZI0sbEN0vH+cGnSbGFS
WIayXL/AVa4iG371ImQafLdCJLPsjkzLM46x6gVZnPo7E6Cs8oNpAyOzRFjBtAPKz6cfu8s5TPln
Uhi1UihymhQ9bv2Vlk3oIXOPF6W9fiqcFjcgB4PKrFybznpWoQ6KOKh0hwhRxZGufnOK8yEysj3i
Q4IXDNz43q/dno5oZe2xwYkSbapQkL5K4dX4Nt5v0N/lcCKYWacBjbw3KP+Yl5b2lnrpOcB/ropk
+S4dutRt+ACCNBJt63h+n5ejghToQp2h1LMzkLpOIiRrHBcTuMZUkEnPTKockSyddu1mPge7uS+P
j2uusNOKYMESCSOzGsCtAlFNX1CdLukE+ljJyq+wbsnEflqli6qOQNkHAfeyv2nF89VnxDIzRD6/
Qj2l45Yyv2JQ60o7VlUTlHe65AGlEwBtmDFKFAowtZ82veKLJHfPM1RvS2E//KbQ0/OAyyeVjWoO
VWnaGnTidYA5qFNFmXQEJJyuCrcbqTRnIKUSFoJjHbn+GpYNPge69IZlqPAfdQos6WxL+gbaQIl0
vZJETMtmMYaeLkO0zTcREJgGOFkse/hvu7fpCu0fwADEY3g4kkvTuJdF6ynlMUaoBNErTtTA1mU8
VtrC7p5m66QVBeF+6xtKCASxn0+nm3GPoMZw9yOBosthkw9zxZUh9AmJ8sHc7Y9J4C8y0zOJTlmu
p6hePoyfNh/QQFAqS1mkFIuI5/5Akleju4xg4DmtkmPpFZkLteSUpp84Pt3J1aNQhnNsv10SPZG0
O3FCfipRMFmURkbpe6q5fb0sV4NOAUcG/WSAm8OF1O3UzN5dWotc9sw4fTI6/maclLT80OeIbZBe
7P9vKD8alIRkpvdLDDiSskicCQ/RVb6mdkuJ9mRMRSxE7/5dsiAvLBPKzfvbomjEDkFjL8HTKKc9
BdqZ+Eg5ApHEEXu/OI+jv7BqEE/Es6XTcS+Xb4jgAdWS3kol34cYIOh1xrTfPz4epwm60u4X6C1J
pejpAoUMVC4sFRLgj0lZRHyXRBSJL5N6KCdUTFqBoBsUilCqM2+0FidU+VIuvXgaJYwducoSbaCE
OOSHPwtteB+ao0z7l49CVCH9JfGYm/3l+gMNaZoQmc63EZLs4jIGyKgOHcmvVOyl722iI+HZHTjg
erMKq0a/JcEx6b8Qxx6i8CmfJc4ZRzV3T8qZ1fLxbLeprFeN/tzB1vJqrvZAw1I+jofDKTOwmW6x
C7+wi42Rdozc35ZE3xDdQBnXIFbh364TTxv02WnrVGmP1z8U7CIa5PGZDeXsRyHknMw2NeJZl5Ub
I+DcuCaVv4W6ELdKo7FGoQzCyhZqmCR6mq5BvmcBzeBhhMYqzLdNxlK8IQJQ2mFdSBbtx6a9TMYl
S/nHtJSXDHTmBmkN0Fa9TzfhHed9p0FoDEpD0wuVI7Q/qTMqfw0iscFKjEPtYyozQitI+9mhEV09
cnDtQFaoh1G3M8K6tzgtmZUYzB9yACLzqqa7dlJ1KQ0gsTishT4UsdScDdIYY9wRsx8GSpG+bHu8
Qwv7pzXA5w6tNKyQjcv6Q5WwzHK6HNwadGGfv043vY2flhGK2vfR8TzTrO2oBuljtmJOtogxpH+3
O1w26MNyDBRXLWFN5rkYDQhckOhN+WI4C50yuYt23AROlmWEecDMFdw0aw5W3jg4mDiVYM+Z0xBS
XPuAi1iDKEbEZ2nU+Fc+lgX/j57uB8VIGXNUgLDwxC+s3sPMd1bL18eVLA8c9P34YeSySq/CAlQh
nZ2DlVh2BdzVw5j9452o9Q7JlRjQhithHrLyXEmOGwk65+j+VQK6wo+TwrpU41Jvl7MdNIv/vJ2O
SSp38/ueB4tg+5OfnfQxffcTnF7NVpRtcMBa1YG7cDkb+TpwN6DnsTtdbjNR972YddKlPNxb5/dG
/Mg8Uns24m0EAbbFF8AlB8gt3421fUMO1Jcfebb/wrWo0Z8pXQMqkvJ/MydgB7xPZxzxvtOFzo02
RDJF8/9YPxv9ucMTMZL7oLOBetIJKTVwQDj9qVtyoBHI4ui3CoaJIx/+KT2f3cvj5SXVaoSeTuWP
FZS11fwwuIWN4x2AGcaEmzNeZto2sk7WaSlo/c4Qg2AHQKNrln+qjX8a2Gfar5/qzGM/H+f78kDK
NaIF4vu3bNHpv1B6MW0wS+j0Gesa8I/1XXLDKD1grJQwEpHEjEuyRgCvlslaurZMWnQGFXkGNhEg
wpN0RuckJ3PhR0jgrQG6bbQ88tfpvn+HGJXkiU4kfVGFv33Ry7FWQhNkC95hXo1CN1p4Rlq8uMo9
HuTWBP5hEklFu4rtBH7pvx0O/wE//jNv6b+uRIFu1BuUZ/ePBWC/6auqvTyCvWblyFdtDovJxY/n
TVPOyZwICZJVxg+4TahTwgxjGGjp1J29nRkHkGY5zAo/namqA7qcy5l0Rlo8+lHRwmfyeE3knya4
QoU7+C8cnMLFCU4YriEZ87Qs5rDO09fjW9rJxOXqlWzITO3N6Biqe+K/Jqm84OB7ofU8rxtpJ9al
0ymFfUBp6MtA6DlmiaiX1+nLnDF4Q1kEZskO0IKpQzAzCP4DzA2Cj0N2nP2EEoB+DCqY9NrMebK2
HtLZUNyLNnQvGvGRdkoSfqTZ6B1GI5LTgqRI6soDZ+7okVY+wuXnxK4ZINRA0ZEBUt5RLbQopLm4
rdwczG1CYt7l7njiDzOwhP5Q3Co7kBJFv3cDnTYJxii+TDh3oetjJOSx7DQJHYUW6zv8By3E9vRy
RguRJEXAl9/5Y4GQkWXU2ATz3hY6VE1z9J1/JWLGENXjkG2VLoucBcUSj4F3wJGcsJPGTPGsD7B2
/IVHG0njf2nc9rSYCk+hrEQvbOQ15k9tKIX/6uNzeIO7r0bbvRjFdf9hd3kwugbajo1MKQ6c0FqD
4zywc8HYUHKATfibSXXTB3+vCEvv3A5RS1zNh16V7Qj3Gj6QpZvpgkk+vS7eoVpF1jNkt9aN91D7
tUH1s7Zhd9JK3vx9P9PoraNG5g7PoBF77d3RmTNDzpsFEjt8bOq+WqEFBcQy3NeQ3ob4LAgBOWcA
bGUAk9vjaGSUr9DrUcyHX9AWCJ+1hAm7jmdFRXTCGGKw/mwOX5BTKf3Gh048zs6BhznKMS7RxRWB
Z0WkSmkosP8ouhUIS5wjS9mD9+OrYib6IuYL0u6W+US5KX10CWyvamJeCMYnNrhV4hD/YwgfuZTH
kQzbBCPHbiqlDU3SD5iZJ0gxew69WNClxFxdqFQKl0bcHV5OeoA6tkXwrJ6DI6Z7Q5bUXBAzVCJA
RY4PXO3t3Tiopx9e5d425Vg6cTgIELFMPvS0JLUjZgKcMlEiCr8/QpjaKg1W4w4woRHU3F35xMFb
ddGrQidEjzUTLTKlAj20yrVGmj9N38X2hLTwIRcjjf6MIIAvmbnkmRgbSGgBCuG8UfgrJ2q83FuX
SAlP+yB2YFto3Sp4Oef5tHvbK66Ut81otoq18ZfxLKQ0jC43h3JN010Xrm2S9lU0jWDHsv4R8c1f
9BinEx4Otp5VkVhTcWJXT5B28O19Nif8lSsWx/TZjGUTGuL+09koYzAUiVu5CVWYzTMKXZkxiZm8
QbjVkGblRjFegE5aD21akbzCSasR+5JRwL04JszqDG0RhLAoOxAaXQ4/lHC2j/n0Nig4XyAuQGul
OBFCj7QisxCGGSc16VI0QdKl9aGehVmJDGNO8/ZCLYnJs6Fbk5oJhn7NEGT/mJjXHawlEsbtYdCp
nK93AbDcO/qLhqT+YZ4OeeXf13VMS9IjAEWm2I26D15j+/QaXUSB2XAloBhLcSx4LnwwJPHIxj99
fBjvY59LZbd94MDU7ZP4K3Ivnh9y2hXWazVqE6oXkwmUgZrKyL76OZW3FnXvTgasHvsaWMjHoaWa
NehEWlv4ingC5kj/F8rMfPijbt6FScHwanx+QuYxYsVHqzKUpXiLhWdO5zCG883gl8FZP5QMeBOe
DocY60O+2XS6d0CUA08/8ucQkvarBpBS8QA2oOQOiViuWVeDzDHEgRB2EldWGnCcvQ0D9UscQ//R
XeLhOLlyPdkvzULZeUyUUi08Fv/ZwdjVikotAiPODroMPQ4PSJHu/HEpEYeQqxqnV3QRPaIfzygq
A1WH/2iF/uAbw8QgaQI9jSPMcE0c4nVwZcD1RYAQ899oaQORhoCegbor5ZOhgS82FaOE+F64BQjM
eBN/MIHmnzBWlMzwVhwyiQORbUaO9MEVuf66XMzL4WTE4+XjqMSLoh4Kp+ZnSKzdYrTSMZ/4d9/T
T6cJksZNogDgYE3AiY8E3kl6dwzAZc0VuYt7WejK+aCNyPFJLOXrcQFtesW4JlfBaQqhr0pPlRAt
bDdKIChqbmjubCIuk8lWXGzxtmHx/ult2zr+lqx/HQRxdhKFEVuGGSCQ6jRPi1JN6UN/lgejXW6P
GReCVBQhQILABnaq86+TVauDoqXNd8znx86+dmpWgDGI6tyBwg9ic/FF7b8X2t/gHjK5205qMs9q
L5QhKjD89x0GTZP+haOMxSGrVnJEkKrOXYmNRynLNUFZjmHkEQvSKBakjCUwnqRWEVPhGWGynoIL
HBAhsAqgArGyjONdstUXWdVwOMf1l3mVdlz2j9O00NCT2/vxqnxwHaTkubYXeoTGmBMs5205Hl4u
3xXD4u+0891EoXOyqommec8pvpdSgsCkkQmtsFAvM2Xpj2zaMJZog/o2SlsuzyIifJyYkfacjXm5
azmooYxmkCmSdodzEQeVCYtbsaJojn/2W8Ef3Oa1VjGn7jPGc0NCSch05+IhxmCxKlcBT32QyuMG
348HVwHY0WPoqDbkEgVkpW2bwK2yWShrYf5Am1SueAiXq3ysR9E8ByVQOrM5a7X+VoVIKlt/A17Y
nSyUKmlLEch2zuLZSfIPTfsMIqVfILFFkfF3TstGl0cExeWI/yAxsAgKy3Zp/o4Rs+87JZwRCQwE
NwRBIJPCQB46W7cSiZTC07BIQECmrNZK76JwMBibi4fZioGBU2S8C8q27NAZXbwt0zyIWlftKWXM
i7hjxeNnMiKDMBhVjf+w9frLdT7QoMfDkdn9Pj6MiMcVzQD7Y6wmDvKxrLS4GBSDsF7lfSVQiQgS
4bznjf7v5qkvGqxtaGKl63/cdrbqyolVNNFq8aD3Egb+lIm/fdaDdXTOighDJHxGLhXO0xfOViuh
myj2kNpfp3IR7oXuupLODZOFbKajPn6n+PjCJBY1pt7r7qcthQLkapsqODZbfAB9igqa5/eBPLCD
7T3u/YQZNvVeevEpYu6SEz0+3Fz1q2uCNDuHbxh/BWiWrLsuElFlhW1f9TMm5vo+3TTV2gSYRDZp
FDYzBwn7UDlMzbjy/EnkjB/9uszzb9wvsnkSa+GGkbDtHvEjqWQD+h7wgecLwdly70mcuCAkIxQZ
pECyxYBW4MiEG+Jcr0zQ3cvKiq8nr4rdfj+K7PQhXKLYDJxV0kUrr6YPdQW+OvwLyFOmqAsJ28F/
cIXtbESJi7GExWaPWrmwFey6F1Y6MIq7aAy4n66ALlOSIGH4JVP/FkpGoK+b3l5GybsqAMwN5XOC
mlA/B32wJAVa/oIhez40cQjVltTtIDPnXurCYk+n1HpE+qp2boEbirrJlA0CUiZMWVLy110WysJd
4LTYF6lg/m33yQbUfxfmFuvIwY3KwfUxtIZLZel4wF6mJBsnTu7Xxg4aU/Gh/L4NojJGaRPn05O9
XQGtcjnX8Fz4zFPCmYX5eUepE0SneINYE/q9bo0FJrduEp0IOU0wVkKhgo9jp/k8FlvZuE5LPvBn
MhHXwVG7JrGdtVYKLqsK0bxdDL6ipNy83sXybmEL1XZgL/Uz2Zng1pHNjVbv/UOgkTJOBaxd4k0r
+ZHlGC8J3+xTy/iR2CCMg5j1LhdIDz63Tq2df8zW7nH8zC7k/PUmaEyjeWGQQCfg4vY1WzGlu3bJ
u2/zy9vJ+b6f2aJfDp3M4cnCbVvGD+qGggtT6ENh/cunrs2PRUf8oM/yE08PNSl/ZkExQLxzo7V/
cq0xHLNux4VePiearRis7V3EoElv2zpixLefLc0zL37uC8XM79pzQfKS0/n4MX16Rf8OBUpHIpC2
fauXi9q3/knf9TOLrfZUBX7YZwRCvB3fZRM6+xtXqgPRqlY9yZ8787YJvo9rPUa8ls9+n1eBomhE
rVbk1H1mV/71gPHqHZJ+JyqJG/flJR/rpazcP61Ju0Da61609u4gzLb+IRr46aRkUeogecxd82pL
4JZ2z0HUBKsBF25ktYJ2yu4H9ull8hKi0IxaukyVtCql9iciXKTwsNgwYTJsEVANO0ZRk2z89HIC
dn3F9mKCeCmgrnYNZKI1gNoQPDPzbtB2nOZJqfT1Iv6B5DSzV6z6DDldqMDEygDyxtrgSGPodkWh
dKT2bayRhdQbwcCZCUL3LQXkXowYXoH2lG7bpojFYOHvWyWcqYM0oKXAoTgwl6QaBGK2Aqtd9cL1
M+/IylQ+NBZhFarlXia7MDONcEiUDIz1trdVtmGXfiVX5hIRAuUzJbahrWJ9eaubqpWbiuL8bXRm
xD+rAAvvHK1gC2vQ6U0DnYoHWBENhkS/Ir7A1Vv8gWd6l2XruM+6PK4HYyf+jFQOf7ws/3m8/13D
to1liPDwLBZc7cDk/9GiKpSoqwxLXUPkrnrlVbRBNbUuYsoFfk10kfAfIHR/3PTOgz5WyrHFF6gb
4xWc7//BxXZlqTYsIHchVJc/1ESF13m5azjoIVblXcm0kkaSffXex3Nd4wx8n6miZJuVlQp7EQM5
RIsSpVKUCAEcqTRbJr8Wdmj0ZeRkGkWCot2SaPQtBo4YrNECw67ul4c7sXz+vK/DYi5rkwRo4/U0
f1dBGwJwJ0AbgVY5ngHN83WLMi/G0GXx0Ko3qgdbmKNSH5Co69LnFskhtm/meP+F/gvCb5wf1CCq
1DFE7rlz7gvkz1wNdBsPxyA6CEBUOAYPYS6gTqdlnhRoS+h/cFyZwAZfBfYxAxFeMdO06809rt+m
5XCTSyqbXPfz1WHQRIbzYEtwvloLlADTNV96E91QXeHeGubXbqT4UYqVCQSk9OswTSfbBVgVHueb
1qDUibQ4eJUld5utq4BIq+Ha2xX/SPgenUuNwIfB/WFtEq8ZGp3zmcQmkF0Oyy/nAJeAp+VoyJR6
ThnkV328eTU7Qej2fd4kHYNAf4tc/e1xu86g1VBZK78Wz6jFtilm+J72Xwjbwt3HgF2aNJodiSPB
qVicN4okxrFis6FPWJTqcehdKTpOZ2wKw/+IkUo2G91XQyx0CltHzX9+IUjcBgKMVqKFPVEpl0ns
IFVa3/zb/qLtTkDdRVt6uDtbZMl2tPaBp8zCxYAeGkCbaRQT4YBImGKTrxFuKoMq+J0qfCnPXDav
jzOpKPykjcw2TeCcsNdszmdvG7TQO/Xq72V+N5eoOPOdIENoKlfxDQ/9H5PxdPfL8XrfJhN1rInL
fbs16SbQoHmN90n5YuHEIArT/LNRqU1QMTL/h5IiKQO1yPOaXBXs+7uJ3K9KTNcLLHMFHkbFWRG2
bpQBojsBWwmGBDrpldiuCF766Lh3ICrEltkFzwqwbMfX43xwtj1XgBcRjYjXHJxQIoeU/E2VVx2c
UgJXcjps6K5rJXBCsPutFjU3ef7famdo23WBK8qpPa8lST9ezls6/oqwCEnSRrTN/4fpm/9fxaoV
gVPWVylhtX68JmWDcEFrz/FEYrWJ/a6VINDehWnhfqCjEjCJL6fprKUVx1gdEeFvcOUAgNsF3uc5
68N2opcWSa9rHmxh5B59ffABgC3fSIP5zNMPzwPA9csbq04lpJOteRUO8SyjPi747ubf52/Kq69i
T8mDFXBn8J8VAalDGquGtePXXOtmMcQi01VGAGmrLfxYCd6HsGcqQk+E/BFKZ0jIhMHPJNXtuCPy
MNV9GgQICvE9dvLDmyv6uM/k9GjGEPUhXRSLFjbUYGDK0E6VaaEdQp/X8ySQ9rQECWcNYdwJ0IUI
1RgPzOHBZNwAhUZONDWUgIUrxyHSCHi33HtKgmsM9tI+twBDJjBPTNSXsltS8M6u+V6eSQM1BFrU
Rd0KjhV5l8o7SD6Z3ir5hz6Wr2MuHWTkmE+vhNt6aE35InFHHpBwC16mxR5HpoQjSEfKoqNhsknG
yKPr4zwqgPChjPayS+/RYps3eHlduwq6OslJlsGmjyI9g9icLkhEHz/e2IHSmDyEmzlgOiTRb7I1
nzWKclzrZ04x8yVoCg8bVkKsMoZhekZnK6WyJmxoNTe/kWDVAdKg7UFLQZVBpYNTbSZa3h/NqX26
D38QjbxIMZfQbsoC4YbamHNpFrvenf8GPguXdpR4fAj55oqo2ReYh0xKK3w/XZnp/eRuAWqFzrx3
ge/Cjr9GQIi3xFxNyJRsSUojPRY0PGA+mUjit3m55DB5RRNj3UwFX9R1lvvYYoyxhKxS9sCAkkvz
dqLIgs2WTVJw4LMF3ZPG5bPi9GxyanfZKzq3SZL3PdOrKOnJIWyVGNiuwdv8RHtSJ/jLRNef9PsU
cy/xkEhSWq3x13kPulvjaofw7m8/zvf3GYhMKHjL5EPCjlQu2e6ns40RuM5hC/rUI0A1hKvxSw9G
/E/T7UY1GeMWmh3oKPS272MUudE4+HgHl0EJWtuwV8xjOqkxF3dLt6tlZYdx5TI1K6enUeRhxRgV
K74p9eS6DFgDowjwUin9N1EoB2cPmZwPaXmhh0ut9wjBxipGuTqDUjmDMGdvuUNWLZxA/2KEJNfB
WcScSBaLHLR6FBGeaJaxJgU7UXzhSgl4hQsq+oho7Mj/+X93PL1MFCKV6GeMFxFDcEWm2bgXdJV9
4ZIitrHVZUIzdCFdrCnexN6c+LzhbLYvGklPt84EcG6S+ZwwatXGEXSxbAyLKyC/brv7t6OK/O+j
0Al/qQHfTbZfrI51hlysEtrBCDyl8t6NsS6Y9RwK/vebpFPgNLyNaZRwTiQawjHD9Jkb6UkHIdFg
npk6TuC1qBaSk0NRURfIRGyN821838wTn3Fs782XinPt9CJ3Ac4sA5lTDaR2gO2nOkjrsKLRrOrG
xiEG86u4mFFutbWeo0QN12yUkyxjsSQQZZHy16ncRdFBNMzd5n8+zJdADJJh/VU+UkL7EFn0RPC4
Zn44Xc5v78kGYXIJhZ8B7nVZBy07pN2zrSBDUCrrrbHjZsg8/XUfZY0N2N+IqxGAXAJoq7zOMdYq
ykhWq5Xvl1/uOqO/oNlBVopiOy07Ric5FiVhF8F95ODIZV2BkuXbZTnk+gebWMnniV1hWzlk6GMn
B98V0mjnOkdXb3JYuS1KlkBIg8B+ixZs8GZzR9LFuOFd6s/2uSFBD0BrncZXTH0ZTEnprY0ULU/K
fqogWuJgM6y5Mr5AF2yxC/CyOTckkLEE5NDLmEOMyIekGplPGaKaA20KzJ3wW0InWUHX1ivKaeky
kKxmcRu9YFIBBdkPVltblSjzPFt4oSRrnxyHtnL9FXRaU8UeULJ+oPtVg4Qge4MSRe21yk1J49Eh
+KZv00lAzEFtGZhUhSVFiyx2fM/kwZoYGDBGCpZHeMDV6PJZa046tAEa1G4Y6xjg29nFT/IB9rJC
gn6xSLTFWdaMacnxrJUrhsmqeC5TYIkKz978F0riootNv4okdN6PAO77sSMdoSR1oryjP0l2rTJO
iAuvHFxXZRdSluslgYUnBBKuEbr150sw6YL6UxXfSPBvgIIq28Inp/6O5agZbAd1xlCUhxZ3P533
s9IdI/pv0d0pRc6L/cOLOYKreTyuEUhjexhjwbUTeshaYd2TKB8sREubyiIYiTrfCb1SgQrEW2C7
hAX3fUS79PRgcruqGPeUpWl4yVIByxEUFBHHhmNARm76zg2n+fkYfUzEJK7fSZcaOLaiRiGghq+n
6Q2wABD2oNGyqUelmlKHowWsT4EVIqx2oTFn1KJiYtpYB7Yb+sBzvWFEb6jXFSeljvMp+6/SxLkP
q191hN5arQP3AqImWtPXVml/MVKoBPjDarpik8YnKgYyOvTD6J/5lJ3N2EZTiDTORSP77WXRSbDt
bKJPdeONFYER7yuYiitqMVvabUYxy2QFpztNP3CkHjwFDlsy9IF9OBkvNnWmLBVfVBT6KhfCOvMO
DpbaeCegtjWknut+eGpZIz/0mG9b64s1IVwZQjM4laEzPkeZc5Ju6GGelRSNaIiAZKlbbA+K/OAM
Xy52KWJBWQizAlWD/w0iAs02c5NUyxCVUEv+eDE1RLEWq5GaUWOnJD/GwHWVY33gTH49nn/dEFxW
IarXFo9mmLx82N3uP4y/4ryjLQF4K2onSFo5Ps1RgZduNqakyPvQsZCIFfAqNiRQhOCIotgW2iUl
QSDx9R5cSV7XiVIvIWx4S51ZJhE9uuX77WRHm3xPuwZjSJ/WpmO0WonRJLgY1CG7XZx+I7Ctis1u
e6mY8UOG7EBOBe+zYsXtg7SSUncapPs34OfYjCBVItF+KunAOqzljuJJH+Y7jWS0ugs2o4hKOOC4
j1HMA/aKF82xzUs6zcLPqA+6RHLFsHY1EpNt1RONneL4VXrPkAW5bOII7cWsCTB9XSOiEd8c+qmI
RPQ7dLVrEgzzh74skTHtIgiHuKBqwnZMBD2CKMtLUGRrNQi2+ynfSIMzSmwO6LyKAWQ8vUNzIzqR
fRLkM3QDYmzgfMviMpsu1q/l7zPT2T0Wq7Jzser3sjkZGEBgn+R9mbWpMXVYkWcqy4OlbYAQHR38
HDamFdVKoZjMI4b2F5u8nGzU/2250P1Bb4GCJ5ekkJ6GMWDzyySdRcsQlo6Yl/aCQyeBFOc03bJR
ncAyihnPzyQQSjZEErUXrcfZRZn1Mhk+UaFAH5ckErtIuD6tP9+xCYH+FkkRYwzMad8w9c20Z9FK
JGirTaXHKsR6Rwdq396njJNTRVFfq7kcf1wuH39Va3ydgI+JSPxpAOKG9pPqCcKKrsSNGM1oFvTJ
GOEztiGAe3kzN3LfxXPIHseHhJyohi2fuIlI9lTwOs3fdy+X7wS++3Y8AMbnDP7hDUBP03f671J/
gJl38Q8ITLsbiQnpuhvVcbGGlNwoaS5ap3cMVx/HM++JKvxXoHYx1mOGfPDx+5xcj0dU+fVsaxrk
siA5CTaMGJcgUkgtw6lyXAZzta6ufDP25g5lWoZFnR0Vml6/9VPF6FJ6X6yG4RqYMkXk6+txD2jQ
OrkK4Y3pC0GHlYxCoBDMJX8pCuHXkF6OafVoU+jIMv6CmyY/phsrjd3xAzyKRIEUh5uWfmu1n3Lr
ga2/utP7leUjuVbdCsHwk2nxLdgKRToH6Fkc6cO8an6hkYHLdDg+KDS/4zNglLBNv57m81ta+pvB
32SNMT/XnfD7zKoIFsMbSH5gRVgSXANUtev1fVsuD8GEb1Z7n5f0qTd9HX5ns15pma/GZyZQ5A/F
AOBibag3SBawPuD8VZn6Tk9KxEushawiYMG2IaBwWlik8VCwu0Hdmvmpv1A48kISz+ED//4+A8Y5
LeqhUrRJ4ek2oyCgkEK12b8hNFGQfDb7hWeE/CbJt9RKpdhhbxRXw1HmjIO655ymemwjRfK8jNOJ
VqPuASfKaAbuXXWdmUndUxZULKJFvRvmFbb5f3flQfIoF/q9L0PbWrgx33iVH0nCY5SH1SKNT4Lj
IPpTWiOXVdkKWeo8aC44F3d1T7eKR56IBOiAGrE3fEwWNWl+vtxMdPGOLt0/H8flS/oTu9U5d2F+
3j5rYBqHZIM1I6gxmIP18OM8fRgrzD1dyb9VjuFr5WwWEZ0sj9MsD8QzF5XpM6ZqB21exCHB8zc2
+Hi9HW8ofPu0NajFa0CSH653Et5ZR5bg1zVjsJmySqrIm1GQZr3f5rRe85eLI58qa03mHSkNnQDb
M1isLxa9kSf/if59/r4/PYy/nCs0+fmna4ftcj79gFrO/cc1RIqndYdYp3EIhOXNRJLG7bkrz0so
HZEZxdGF/3zMCzTjmCc03VX+ZE+MR1vwuTn5TG8P43y9Ia/GdNSUlnACsDY0ShtOuusVGq10oza0
gd9VRVYhg5Sz+v6IMBXEtCPL1Xg08+FXoyjut1/1sxlWMl2vXEDgQTlyr87H5Za8r7EV30SA1mpV
/X+FiyIWLUd/xd9JXGQ7zJHGM6XwuY10pSEw5XwcreH/kGyCddkGwCBfgGvguEB8D8wu5vZvinWv
w+fFRWBzSeD+70MztyOv+3u6IQz9UeHFlwNGF09ulvfnLdrtsZzSasSrNAgjWY2coZEHGFooXvP/
uptv++k63373/Xm53pM3lGXQlSN+z/0G6QU6t4DIrQNZY+oHpftB5buIQQ2nflAEP+A+wqLokj9o
/DeNLgaAzofEDxjaj3+hFX+hTf6F2v+F2mUW5KkDr0ry173/cx4ZUBR98getP+POZVzFn7OCY7Rr
agn/iQLvDR0xqR9U/gfcvZkN8dp0rF6KYBa7UnpH0Gs8Dqcl1IClFboYvedn7wudP3MgQ1qhV17/
NZCsaiyvxeOOxpjhC5nocBzHIMpnK4e9F7xS0owPZUwDS08AFYPmCnddsETlJTbxi3rsw8CYCZIR
5nu+Y2IC/DXdjvGcdf7qAYeE4Tq//+WXX+Dq/jAb32BhPTyBq6eFBE3RhB796ITiATEKGUaRhTEW
ZA9iokdZrVTkQ+eV7gW0OPAdaX7IKGw1TqApklKmuPKV3wJOxut4og4TD0OZdrkx4RH4femMjfgW
TCdVlqEXWwHOBxgPYIGOu5vigTLnqc9ncEM2GLHb+wJpja3xYV90MU/UqBLzZZBye4OBQZh7TE6T
JPMoQhXfrBaTJvMm/2pdCEI9HT8gTTKd03kJscvKA55ejb8H073ugMmBhTQLznwV7tDYvgVrGAN7
vKPznwyUmNPRe/+2VHvakxDcv0FAYmKIF4iZ9Ecow9DB6XJke6Ik9uWsJEQ6kTiCSLHumnTMpsRp
Ui6Rj61eOzb2+ZrPezGxsObVdGP45kqGPZnQfnd+fLwoSmQQVgH8xe7ZKpwmJc1XCNvUCygPhTpQ
YDLRz5IEtmOcWPeBGLNbnuq1RHVcB8lry1dv4lpCnnuW5dTwPz8siwTcj8mET6bHoaioVgTaEBu3
60lxZNoDzxqwZB/H3+hftIfddGXgpdY+z4wlrc8km8XLqQrsqRm1lMBkpP8H1LwouXFTkgNCHcp5
x++306RngnppBsWs03TJIB2pRqMx4PkyXwJNv0SSoiSpy+DlcD5LpijMQ5iXXNK1ChMlfSRT7XDB
X82HJlcS+rKqoahsrBbng59z3OpSrfAOGkhVV5E0JESrY/ptiwdSgp4oGVmSEJ5XSFDfFwDlmxew
3E+K9MhcYOFH5ona2HxGlXqbjXd7EOUz4JbBtm74X6U1rBB8xPTh8tiufAHWE4tBSRtXqZUa0VJl
PhCcS3KDMsZmEO6yYHGB6hz7qhC4Zot1THPjDX14kwSpBniguZIfSjKmihyJT12YQ1l+QL/q6/F7
ungVLc8FMmUXTG+kaWKp7OeCFQIAwMc4zW/zWbmrsgwyVo0QJhgOeTl9RUfDXPiO8hmgguu08IgA
AT1/9jcIiGw0+pvRLy9mWdD0os6DQQgqzrTNEaoCTVfZyALnx/GERDJHrFa8wPwi8/lvj3Nyxb4J
jb+FZ5yQgAfTL+jwJVVOJW60rf0j9yVXbI8Bzi34t3QGVKSLG08zTsCHDdFRJ3WCV+YLANAxjYr/
CRmJAMNg7gBBQsY3Ou7TdqrshKzVSNpnh9s84DYp48P/Ynb58oM8CMQ5pVDZiF2gzA0CB0qXbrUL
mSuEmgP2T8CHp4wYLsVNZ7iUf91uKdgOlmABx6lsaAg3xHyA83xVm7BxA5X7aempKp++hab5aggU
3MfoF/PBDURuSVQH7qH3P/PlKXcxOOE1Sb+Bf1d8RO8AT3aB43m/ULESuJlQXqKrVP4UIUPL7my4
jdvjBbBXFheeO4/WrQhhFDvnb/P997SowkiK5+J/LtitnWM5k1o77OwW0zg1XE1IbeFyYc+HpJ40
t2njFw2eLWd1VZVyJHVw1wy8WS9QKAuUfgE/eyx4MTfo5TumBkbgIn0g9VX1/6ftXZckuXF0wSeK
Y06/+89udfcZ2bbUOpLmzOyajckiMzwzvSsyPDsuWZUyO+++BAiSgAcJ99Ts/pieUknO4AUEcfnw
QQwSytZdtlxZTckmUyBXQEFK3efHqYETScq3/OnEjTWsq31yRsp84kVgxX7UgRgF9zzO5+c1ua17
sT1GnDIK7d/m81/dCv/88b2iKuu4Qdh/wm1OSZUnl/yHxghV0hQZadV73+KeyLOuc3LPsBrpceL9
Kes70Xdl7s7sWNld0wkJLqWeIQxagC+sDTaIEydT9TxSOpreILDJ7D8798o/f6tSMMhL0ngYKdgn
oGu04yvlLS2yyka7XUx9NoHSz7rB9pzAUKTRKCPmTuCITXpWdy3eNgjGUr8ogkeGgdf2pxKvzkKV
8TUq6qyspI6XUmWN6l+ztIn4eSHUxkIbugDQqtIY5Os5JFQyXY7dw+15N9RtrWl4rskYkMZnKopS
eV9MK17Mpl7MJS3Wa88w26SSCaNLQ65ZSKYR7+bCQqLr6hfncsB08poNaaKKLSMHHFG+28Gm000p
o8ERKjkC9RAMPslpfHawFeD8fN2fn/MBA1N0C09i4KE8SGojMpvH9MCXDmA+qmE4T+/TPu/6Gw7w
hD/7ivxUiqBR4o4sOt2GmIuoZvSQ4L8qvd9i1RTFyBoMlImcljUkQODUoNbAQ5LRMXaS8Qvp8X+c
vrMac2U6ddencI/hGFyuMrjGIoeY33WObEPvityrUHnhvFqINOOaz/NXiMDtIFGceAwxiNPxMRt0
tv4YIC8fZi058gOLVjuhRyA2fdujIFoP8euLdQ4xqZsdsO1S2BYX7905FAEa9eivnmZ6V/KgOg6+
Dep/fVP7/Kay64E0CBULEFw+7Lv3+jf7x+//spZjpY6nSwAuydF5BBgcIBBfsn6uA3Exr7xwOLtU
NBrq1Tk0hQe788HpWuJxyGXFwtS7UOc+G5SiCi2KPDQxqPIZLI0akK85topVonmdRZ7xk4KtLvhx
VOE4Lldo5UaXWJh7OwXmx5E9DFnnAs6OQliJl9VDLxIflJVz3WwU8m+kCzAyV9OEoklH5wfx+/vQ
GKECrq44JJmVYwn2goVTFtecGs2tX/NeSlapACsh0v92WesMifvOAGR9QDDnoaGUrs4jRPPXrl88
AiW/vA66TUzEvlWZuzCH+VV5ennOhlUyunysu8j+BaU6LPveQOwnn5mtpCTWTJRoyRyaQZlfwnek
BlxeE/ekQG1GvB+IE9ED7xyG0GD3dWp4hTbQ7mG+OtT5+TWg2FVccN/3qeikh1QQfvT1GVicNSYv
Z2hV4hKRaw15+9sbJh5/vjnCnFUESJ9C6LpmY94ofYEMlpIoqdtU/Dg1BtAQQRLmqAzWJN8cZtpp
DLzueenlEK2wxU5IZf53BSA0DK2wxGrRs/p8C1REegZpqFqp6czdUqyraA//sEcCjteH6YTYWpdy
PPgsLbLeKKuN4o5FjLy84rp/3nGDVkl2mYReWlohqJJI2JXEbl+mUaMp3bMWfDcs0wuFuoaY+Dys
IF5pl/N11RCBhkLFljTsFePkn9vBrduhrRJnQyKZI8RGgIIUnqpMpl4VBBTLE9UG23k3IUt+GN+n
R+gh+QbTR4RPPkPOLBcMx/u6Eb4tmEBU0A79Evt0V6IEgCUsUlpJlBuh3MkJD8mN3XyeQDuv1pbV
C5BZ52PqHuSE8cldyCie/3Ub83AsXjNVhCRtTIzOh8NdOUoe180QxrFh32dcom/kE33LOkVM67dI
XdGJxyj2eduvFXgVzFDqoq85In6SV6pC1GXS1DbHVBYhu0yUcofwyPoaRBVrZ8oiii12ixhyKUkM
Q1zQvr+dpkfICKpoo45l5JEB2mz02Ia8x8aT8y1qupC5RLc0B/hVSmc4osvhw+owpkuBOnXsug7k
Y3vOllxUfhmvgytM1l/nL1YsVwz/hte09bEuF6tnnF3to65Q4/vmIsSZPesKbgCBRm3yYORaiQE1
DF2B0Fx3dX9wF971as92aQeFZCTSiiJwztcOhQXIubhaHdwxLBE0cPU8KhzrGM1fHbfacpDzEMx/
MdYCqrWSXOexmpJ1/PQXCtoHQpFSdnWVYXCiwLqDqTZ3Z3wpo1oDWhWNNO+7T1TXAePQ5aqUGBoO
Ny2CkW6lyR4gEXrEY1VbykeWswBooLA8kHroyquP0o12QCZk9QqtILBpIr1TdsF7Bb/f1qkTWNoU
RrEpjDCYCOz26WidyUfrWDynw+h9JaKyHCGzwgEd2ySEEG/Zs8tpD8D6Aqf/cXl/Tt7FVtsrlFqX
ENXMjKKVirOKLoBdBK8+4xXa+gUomFBVsWMZ95F9zD5fvlCnqBsCHm9Nru0cTCo6gqX5ukXfd7yG
so8krdb0+gH19cF6sT/FBuXobqltJGM3iwjnHTa+ySb/JnODFSNk1d1tUYFa1jPrUtUV5AUFRj/p
Q+wU0LJ9wpOeNvnYLuuzpUS07jgyEc3x2lNuvsV3eK0e1jrrKa8xCeWD8K7yDtdR4cFRdp/GcoLo
Kd5tn+ANoEDOI9ALv114gstht+CxIK9yyvdDQBZrdsvhz2aoF4+jQw4+3PKxdl5UAA+2T2qtyrAx
iiee8Z4pDzuGJwxu2vhNJ/foeS1lDDrFfpIr5A1ct8fESQYJzMyCs1ZrZCgtu1RFzLOkWh/X6eGo
vrx1VwhcKTlyFIhxqAy75zDdM4RMoXff1fM95hGb0pUnFLWoa4UjfbCm+RelVMek45GJx3arq1mz
0o0qLtc7b/gyrXFyFKwofmBeG76vq3g/B9w2InJfyVwEq87FA4RxV03pemhSBBrrl6lULpNJs+5g
8RdcJad5/SnkxUHeAyr5TRzjujFQNzzIX96BgR+xCf2BnobzeJ2UTF3HYzTOA/dt9eiN2h/+uX8M
ZaIyMJYP/TDNxjvh+uqx3T8v4ULlx6jWosL32cRKeW66hfdIlNP3g1z3zycloTNwc6ZlI6X80E7x
Q3tmbSInvIkFSVBzoDw/1HHT3Z/YPctu58kJ+3F+xv9P1uFhfDzmK2u4eQbr8T5LiLCFblw+uaAE
2UzKzFTcBffavueXypW98w/KTYQnpVJIVwqPr6xDeXs2NNunjPp7Y8U529FWWbFR6oQeBfFhT/RW
xd7w6ugIoV6oP8d1YQ2gtw/NNLGaTxbLVeU9jUtAk2QL1vJWbZMEvoTEvWdn0au6TTUUstq0161R
TT0wkYBon0dQuHpIV2P+RNKmJxFrnmEwMb7EiyvoXcuXV/BsFMymT+cCFPXCKpGQVa0iHUEJe/v0
5dP1VRradBcqf8j3iIgt/pYPMpZTecJO14QOzSF0QJTKqlKAZpq7G2ittIMDtyPCVMNNu8tXyvel
SgdcjgqSp2klfUnlzbPdywwvCoaQ9NecK/JCswyI1zbQRJ3mkJbTLNGaFyvG+A0LmS067+Qlqjep
O8t6y9PMyGjW09mlKNxhwWqn1mUZpKtnDrWMShCtTgXRQkydh79Bjve6690tshMlMYOBzqObrNR8
1+libZyI00jbqJ2qVLZeBHUduW8+LCx9OHrtvIWyqSK4549Liwn2OhGohuJGMjxVvoeWJxeilcDM
sC1b0zfSyqwEVo0aLTsOC96lMN9qAKWc2QasripAYlcLFYeyS0lNtM4hpHxVQuZlyuyFz38YgXrN
x33phownz0O27jp0bZLNL1UkvML2wRj9KsfbxArEre9ATYR82kJJehsCbtOk+sgcIkSLgsBOT70d
pwDkVvMXDH7TYmw4ISAyu9YqgmEk/s1kjX4lms7IN7AfUHO/VKRGPrnBJoZ2uOT5MgoB+/LsKdxW
u532b3bbNMxmK+MgpdEQxApmmEdAMfRB+F6EJ9qFPYNS92TiO4imv2MlmoKTbljwsjSM2HgzpKEt
hzSUOVJh3k6uinlUaIsrQYZUpXCMd1mpHHixLFN6QlrY4HxhMtGb2mvYmaZd4OTNsNFT2Voh3ybC
v2jS3XPPflMiW5n3JOjZo32zNS6osk0S60TGZyDNup2nNSrqjqmfKvYYt17X4/4w4gdMPyIDtNe/
4W/pP17pmFZXvKUn2sPdMm6Jvj//kcW/2vpLrLlHj+Qod7+Esbr0L+G/2vpLrKdTgTCBOzIMguek
f4v+5dZf4x0JIcMNqm6F5aTMx3G4Tw8y1NciCjnDFQTlDqTFh2fYLgxG7pUQZJvCewr1TvSuu/3h
oHAXscIQ3lLURWl/CZcZQP2/aGnlou1SCBvqVoFNMwAUg48rtdHAAnkfNsizUQ0p7wl8Ur75dZ4Y
i2n0FmkGy3t+zhWCz0VGk7p5Ya/0VQNmEFCJKlKzBYcLiuCtqe4goPl0fyE5wSu6AAkPzsO3v2Uc
tVKwxdWeahmDkXh9AvugCwr5kBBsNNCA2Xukc3uacuDSgPp7SDP4559AI2tX6hUohp4HMD3Pk6Ae
r1i6HCJJQJria5hX0hLGpJJVSS4IV3a2SgPBfNTBsAoOyWasZW8l+X/pKxSssaNDxxtGd4JGnVmj
czJ5RccLUWBjyC/m9CFuw1e82k4E0U08LtbNQJjT8yHvJ3HNBH82hNejhHQMfLzsN6A7S5ZOjvle
3KrPMCn3TScOjOKeS/cISX8Vkv+SG0nDH+YCVzBLrUbL6a11N/4Gjp8+EYdeR1LUeSRFvaTEb7aw
DOZLFiQHM6nrQIGkAt0Hs8AP13m1AP6rPYH9umbg5idSRFIbZl/F5G5DgkHTl95Eeci3OEawYSue
BYriymvGW0+s2O9tkvxMPHwqN2NxFycvE7xlktg1by4VSSvHF4CFzdRJzItuUdBSrLr5Coae0323
sV26+Ny6sI7lzbE/eFYVZdf7hNfkUSgHVpsWGt0hGyFRUQFlZf6dKFM+KfeJfQn+/pSvfatFuiAw
xmQJ/w7uTJzwwVNqV3BVMLOmYkgSBgXhdJOOghdyAm/55Io0OwmgRWEnmIer9RMhMieTSgCKJ86w
rUtIxJVUPIuEvZc8zLmUj4b5oyV+isIvEira8fQjXO7yeB7H01/Gt+vLT+P5u/n1zf5efsDByHon
CgW6bF5UJivCZ8oyySP2CFI8/kb5id/wAclXJvRJjBG3crZUq/dNsjcVyQA0fDxOj6HRl6cPSfoV
vJdHh0KhEtBa53AKLe1WANW9dDsG32sEaxAcbzzc/P4BRryqQNOKV9UCf5apFyG7A6TqXycM78Al
mHfOObqsPm8ceFRXESwoEJs/rydDu7ZPRbMJKvQ4n0+OKozar3rAAfBCrBTVFn0qlJ0oUMqrkirH
HHeXK4LyQxhQ52AwplvAXtplfD2Et7Z1nGoKzuHOwHyOvNEKCt4SDd3RLk/grk5pHfDSFmk62KW3
3+a9fc7cDlvVpaPL2HP482iCakF9m0nlklW9P0J5jRZ+aZpB2Js1wzonW/LlE2edTFtT96J127rL
29ZdutRyUX/ylSAUVpbzxSd1SjYwmjsFrMj6q2xVxKL/TCtiF7lohcpTXvEegY4grb9DveOJqPnv
vq1SRZUI6JjgZScRPM06qoNTIrvKXnrqHM3Ld+jRu25TnCEi35WskDTSXcJmhZD8/mHEumDXBzw0
YHV1CAoQq2DRMfDGiAJF3HtUburN594wD+9uggeaPLRPtj3y0bejNVl+hIfQpZAdCejP6x0SGOYM
ghK9sP/9g88UVV6R8OYIINOm6nLRvPGbPaXPozEa2cLCJK5u/ro2Kdhz+iTWW0BWHOUzxLONfRZv
1xcq48kTuLZVEnWLF9OZp3q7xkVzpSpbZ5xXsRy6FR/yJCGM3t2Uhdy6Cim5zbaaTCUAyJ9f1+e3
Vfp/5pMV7V2BfZqYW4G48bYW2Eikj87/l/HD9W7X/ZCG5SXYc5aGBW4kmRKPEHaLpNfDOkm+PyGA
u973l5VmgRXLz9aRj+4wvf/2drxdfjvt3397uD3X3dCZvBCwmETs2hNRThsyE9Ytkk0rm8je6tqs
YBCMSISp8YrbrVXmhhZYRRxPnnsUA7p6Obyrp7C24XzOm09tAKzgcCx8spjYG6wayxUogJWf3RBn
F3Go6dmp5UY4tz412GJunK8uP61ebBql2++m5ZN/rkgjO6+CjdZKft7EaBQV0zU8DtuGYZEHoE8t
F8MGYKRl10qNpHB28MD6K3U3PwhRZGGXuP+N3LVBXaf1dPJLK8WOlXV6JBcxFU93dkgi9MXdqjEZ
xSGuRNG1yWLCTWvZpsXWwzEM8ckBhypeU5bBWRwmz3fmZTfunatY107hZydsZXZeJm4blokn58Vy
Q/lpxR2DPFdXpKdFBXbr0k+UpLhMDMSkxyOagC0DshPo8ooy0Vw0LyWDPNSc7lWp13FuTE3GAMbd
QBsi6TgaO9NIS50dbcPWlWLrKv3iU/74OD2OeQXADiP2p7kb8ffv7bX6BsbnnL9ZZeqqLiSYAnJr
T0w/GKGYTJeeF3qM3qRZ2z3TyrWaDENKfoVM75pgVavbn9/4RuxWlZE0cvchtZlfVxwKjOUmMy2M
IEAQYoEqyi+3Ys8MFjwUfeZJpdi+tQRvr6ctb2oVtQrmDou73PfTHkw7zJQqd6wfenklulVtoq65
MPKIhztWvU+/YNGQg6exNTnrYdtoldDGlOnPGkwbb0Yh9WdZrT9leWkshXGYM3Lo/aE0rHZTDJtc
FbwbImz+PtBy+y2kf5HfwSalprLvmX8nbw9v07fxqPUlRg1dyck2qdO2bgu0m9xr9nolxTrtrNCF
w2RTfv8qIYC5G0ILVVW86cSDtqIAN8hdJyzr2qhTW9l600uPqVUnlw864FiFNCj0sRxyaMNy40lA
SKwdEsKRl1v2Ug95iVAgdriwOuW6+WZaWxxdYlN0QzSsm0TOUt29zqc5z/HaBopPN2SXd0Oo/xP1
5MyroDLOkBGDqW/C+tlFiYAcVZP2x0OFaP4Yi5SqTexefrP4g+L6CBNV/H2nxgSr+1qWkYUOS8cx
5sQUKI44F4d0B4HWwWHnLrvX+aBAGlhgqcMWBdUn+y2utEpnMbky6hRKO+EH/7rNVwoW7b6+jKeA
mlDI+WVfp3BzfZeAk9JwoChE24u6XHx7ft0rHaWK2DilHJbL2eFSVjt/FLEjRB1bpS/G0NoEFaUY
oO6SA3TKAL1YhecOXQzQKAPIbi2+yGMxQKUMUMtWOuk9UPpgFLI/Q5k8iEyxuhugk72W0ntQKwM0
cgm9u/aUGUT8mlrZXvOsQFXFcurfEZbwbXPXY8M7zeFm9P+lKKAQqd+ogBiKEv5cUmQlke5B9+/T
2R7Zo9a3+Lw9131bRHgbIaUdk/Y8XqgXiOubghliDXbQFEmMBUJecwmLVmluynmiTIR+LIfawoDP
c68QtDZUCq/OrVPm1i/R4jVrU3UhN3ZPkNptLMicW/CuXNNBoycrAc/n/Vse5lJr3TfytF8Kl2e9
SIwZ3u3yaTo6DJICzRKN3odQ2OShFggaU69ezzIhPCCaBUHk6WA6SR1H4RAXpmVlojp2qkmyhIMU
rYHDawb1Ya5s6NTibOrx+LRDulo4m7MLGCWZwstlGi1b8QFZsM/qDF6GGaOz1vN0oHPUcvOsIHx5
hUYZy73nw/T0sbvticMC6Un/uX/f6wyuQ2lSbbYFFO4NyjNuKkSn5cWzsSmbF0aOzM+nmvsqjV0G
4jaqPV9hbWuqDHeSKLhdZNJ1IMewYOIhm4sQngvoN75Qjts4zyBfpxAC+yteWNRrBBOMhM0rDBOL
btVLRIOVgGm6o5lZs30FZ3/t/rfZyuC3woqTLKC/Q3PZC0V/l6fnSEJCBdCddlNJ5UrIZlkw3LLD
+zxeLhpkvucMHJFJ+Y5MZS3AgqTjJvXOrJ6l3qamXhY5VZlKZI6fcxDfw3pBMu+A0UYq+SxTgMLG
ZjhSoEFRWVT9BqJwZMXNO7fI6V0KBFYjoCc75oMie8QI3J9Wz6j0V31VpDiYoPR+9EhyfG3yFaTM
JAXmT+/8s2ZiiAu2ZoTm+7a85mVwdV9cccNWb4EHYKVnktHr8HQKtGAOvqS9ai3fGFbszsArUYjv
xNddM4VVgVPFQfDKExYJZIvHMcBG/qxcsmbRhsHEsRyBXb4OYJAlnL59oTXTWPR5h9Hd7Bh8LVCs
46GyTuNEHuMVEqou2XE94TWt+kgcqwc+El06Htzc4eTyZT6SmYwskndr7sPzcKFPABMLSn2tWgUy
ze6J6B21Jivddo1afKsusLrh2PJmLo41xLE6B6+SlvL4NFqZ0WbTxBEcWr5hCKbbdHVQn6JOuzaO
bti9pwPaWOjnuitiMgrR6cAhfsThmUWZ/yVDNcCuEJRVgxbloHzUh4+wTWdFYZGi7pU1tWx6YG0V
7pRMraxpiBtBjRFoespGeOA9fsQpDE2X/8hXJOFHfReJZ+ybn59eF9dkOgwiu4+KLr97JSEUcfew
apruUFHV+Y+Ku4+cOjGVsuVkZ7uNYFTbRatMj4CBeE6IHiCruOiVX6rZRgC/nKFYn524sns12z28
a/RLTZX/qDRLMapo95RzKgr2EUO3GuWXfJ8BJxHYr4I+qkz+l3q+JlbbYHdF+aWKXUJGH20q5ZyG
km05si6RRBhlI9ou95Eie+3APuoiv5M9duVwe6bCsKN0RRuRFyMKd7uP4M0sKVhZDMovNWZ5uLTl
igore7Z7jrbVK5ZGUSw9k4gqRrByrYgr1lDi/mq0ijYybHpwtwzBn4qqVaS8zjwAtbJ7/Jc4q0Ex
KDe3ZhvRYoNmuoRdoygWJhE1vvy0e5qUF0xgHU1OT1dD0RE900Yu0kjttoz2EjLZc/0SaU2Dcp9q
djU4c1FRK7tXsI1w0H2vLBUN25v0llsbQ9ER7VLDNnTdlS3v2APQYPKINqJQTAJ+nxxHKSnLQlGW
DdsIxzJG56S8uYabBMgUQUhDo235UKVfQqsEFbXcLh4AMgmKVpHykksEs9iNYhtRso10BKvss76M
suVsetyrM8pHvvYcP4ILaQjLV2h2RMFNNxPfXKualC3nG1FF1ge7NkXvmaWyNLTlyiUsuZQ7U4wE
Vtk9brrxut6iUg6XPdRlhf9Dv2R6RWDZ+wQmgaesLnrNSOzSr0ZhWkUi2JYPGJ7yYlQoH3HjA80c
b8Mq96liT02PjXXofTLKS8hsoxLWVPrDLRS13DO73LHu+74HRrOX+25ph9H+1Yo+KpgHhQUt3shu
OuXuso9q/B/6SPslbhQ4LeEtc2VNZZ8xSBXFXLZMXTrcAz02tbamImPxFcqFb9kTUDWxXM5olnnP
jWxGEGnaVtESd14hSZ9yTmVZMpE10SDN0ZE6LcHFqGcOXqv8UsUNUgxAeSNbuVHtnc1CqmVQtHnD
ndYBLThSYspH7LFBQ64kzWc0zdezp7rCDLl/bJR3o2NbzkvFi1a5GmU8XHTBKgrfFZqhw94NDDSU
BBG0LqXi8pfp2IeplY0Y+qXj4HWEIrDM4hNxAqNo87LjztAQnSGjGNlVWWX8mlY5pyq3EaWyER3T
ewgNqbwPoFz3ih1ui/1NSYwK5Wo0HTtcbGVID0CnWRL9Ui37+6RseVMtt5zuU6MIrOGvRo9klPS+
ax5UtXzfyaRSbEuf8mC+Gm15rTwApmP3qcZLRb+kOeJsy8EgLckgNUosseyLpV9DuzcostewUGeF
Rb/eKFBMqt5kfGrlnCrhHjO1XDTK7vH75DSs9zaUh5oHVRvXYoY+GpTp5eI5SkSibE0msFVo8Zwi
bS8bxfioTJUxspWHuqy4HcEYAu2/URQLk73A64prUsSoZVfDMZF5x0G5hGX8qAbHqCZ8pfWVFQ1r
lsE6HydQzqnhGrZFS5turvIR33IZgFS2nPkAaFP4zs5GiVGVPGLe9pF9sdBi8zxYVyOUg2IfRksd
MJOgxTINL+WKYmkzyrJQopamX5puvXeGlOACN0dFQH9QptfwmG8bq/GLRnNaMyZ20Sm/VLMth/e3
pLqowihRS266Fa6LCxmJWtRyyDgovXJza7YRjjCDNKxihZVVt3RQvB2h/FLVpl93q0aVq1FlYolK
WLDsuIZtYza5GJRXo2HTw6J8Y9SmUs7XGDLKslKmN3APwEQah6LTsjWGJZPqmEwqtF/i6RDYflN5
FaZoI1Mvd48+Uh4AI6KWJcsLddpTw81Rht4tekX26iYdoyqUbE3JLcsGa628QaV41IavqY48TYWS
IDMsailosYtWS5B1S4nwtpFiWbIwu0zOdopBxQ3fuqQHQHYX9cWU+Wx5HbPlnPf3LnefHcFZnW4E
Hgxw+Foo3DiMUGsL2CKPMlgrmMGZVWxcRkZN2IQw1AZEQB9HgsCPFXDC8Vyu82tcJXEdP348HpXB
SrZhTGSXgy0qe/aPj+Mlv9iWwx6YdcfblGGro/wIDIThSH7Ti/QIWAVI2QdsGw1XxGantPubYCFt
HMItyq/KcWTaAYCyMY93QumK8yBjlCCY7/N0oB4vB7br0OY3v0f9UlTvd9ktMD8EWxRvArty/L6c
e2XT41VC0vnOXecUT3MUWoT95rmaIzIUS4Ak7pzjoFZYn3vOSYs8XxxaG/hn72hW2W/k22rxdnJF
KHZa9tsg4halCBAh25LUq10DyueJ0TpJkkvhVKDLY59TB4k8zb9oH1jEHlKstNzXRuhd2tquTpaW
hMagnCtW6Qlap3DbBEY7j1DLB33osIvO/rilV1GdnFe4AXh2iJWGGmMgsc1jhJsFO3h7h0x0CGGl
ZRhvkg0I63rB8IW9GwRxf55wr0hXzKQupJ3br4DhhMZf+dsoOxSWoRAYK9mpjTxAyaFWwY4G0poH
J3JYYR2IaNZ4Hle6UlQMYcq69qW4QT/VC4kjtx0/bvFpJn6FkPkO2NwniNChsMDTU+UbmUi2UcrP
2iP/6Ty9IgTWIcRFUZL/V79+5NHrNWdrH1j7CYTN/2V6zyPnB8Go2pkEC7qr38GXFatLpkedprXk
HR8ilD6it7EVzdvRt8jbXeabVeSXfKs8ee8I5IpSqPPvYCkIEzr8I2cmpq4/KAiulPA0u+IgpaV5
taQRLxe9VRyOGYr7fBMgHcRbJPkeV6qj88hyXpLZRRwALHJ/jm3ZONY8z6qaLMV5Gb85ItTp8pfp
GYoXL5ecaVMEQ36JCl92Ada7zFqndAEvrqhlBzaFnY9H8gn0opMq2T4Eqgh+AwH9baWNWM/7Jcc+
S155OeC4uyuAbD9rF6Wvkq9b9r1UG9BUfapPE0jPBUpg5qfdCzAkAYs5EaV68yIrR4WoUKiHaO3M
tyvWBr+M+/xOdcly1Xxhwo75llC0pivmrkiyyTNVP50SJiMp/ZUGQ30hjcYilrI4jvv8E9fLwpCV
IhijFMFU6a5ld/VEVCtKjCa+2US+tKhO7RsKx27/9GQv0UW3Xbp+0Qy5ZCNcbg++7Cr/fZcqnvHV
sqttMEOsdCHrubQSHqCs16l4s4/xdHsdz2C6r4QOCpaxXBRcRNGIx2H9R986BJsuKUKzKF9j1U6X
13m+viiljl3Tpx6PyA8+v0LHjtCKnB4nOKzzBO2zV+mIQxx3Qf0b7d7Ay7mHle5f81ZvneoNYu3b
yo6UZyTD5hFR6BqsEs7V4lon4GZt+vdQue5aD/3J/5f5Iv4hWdv9mdIlhZTXNIte655+FTlDPAnA
+9L+y3dKbVLuTJIMWW+R1wpWbTyVPsr0BXZTo9KuqgX3QbWR+L7ME9+XaaLgC2fsObuAzC7GAo1i
kDKdB06IdeWc+DxOh2wdYs1KopEELxDBX+bVUvSWqW/WIoK4QG/21mCz4ye4lSv1+SELFYywZafp
r/PTU56yoBJVqfSWib5BXsahjkmxK6OigSg8Ifw4S7/vQwJ+lvNc9ucPtTizZ71NWMV+XJpvmXLW
whddldSB2Bo2xz5R5k+OPeE8R0HxKNePGi3y2NjJma5KFIprUAYtOtygjtUV2DoXfQMlLl7aDEOG
uuY63zWZGTw8FopxS8cGfbPW7I7YBfbH4/xVJ83CcBTfykjJ6AzPLQ8Po7YA6SBLY2E3IlUCs6rg
0QPP13pxsGj0+BUzi7dKr6KZxfiAZQwNAhWj8pz3vL9nGaJEiRLV19t1f13reTAsWs0s+opkGncx
e+Sft8vVnpniVrWiORtFZZY9X6o8MUK7eNmKbhubfqc02OFGahPD6cG4ulDHUXvwz7ezQitkFpGR
Jq4OiEA2dIsYuAblEH7exghmpARGk/wEeEiO0ga2w+rLeeWpTTOjwCOmFxvX7H432PUg29O+VcKf
TInBXhoykWKPlXUPqV80AasqvR+Kd1bhwB7Bmz26xwUbGysOXNwpcEN9AwTRwB1bwEfP0BEve2r5
ZMX2IBhAqj4ZvvRRyz/Q3qhsUr4FmsdW8Vp53ZVl3kCWXZLrDb2RnELLd0dqpRtMGZ7vjhA++hkZ
jlYTbZhyKWSH2461orzKdpQr1EBFspVXIrD4Ol1Qsp+PH28v+cAijxxD+s1DankY5zwiKQRamKbJ
lM5hs5tCtmo1Sv+PfL9sbqo6NIFTFvPDP2HHvbjip/7+Lv5dcuwO4oyUYTSOx7BKjrwbXx8yMoFj
FGEMkdVfjvJuncsZ/jGXQuxC4NMNxmMcy8Gm1+f8GCWbEKvTuxsDw7t5Bm0cq2JjMYh1Yj67y7sy
JxM3mkPql+O4f84PU8fpDAXVAKRaHgUeqtC9BKMxSv8jHsJxqcSFtCLDCiaZx7e8P1+mCB9YChPD
AeAVKBGV3qSiOZ5DnbdhyWaWCnZrIPvedKn23bXCXlNIxdLxbtBeqygBEtmXjkKl9wRJzkqNuWJ4
6Ob9YY0nqUmErAUz1+XL9ObZPrIc+EjP1aTP3UM3CFESDLZ/3ZR+0m1jUvYIW7ZrOuK7I7sDXcmu
iFSBi5yw7IqLj1yVVFjPg2mRVy1mF2NqbTrt4tOhZ2gYioAlMJwr6HjW4p4BruBNk3fuFLl2UYE+
hqgyCdOxvwRiMd1J4E1eYxeBZItLiHDu9cvAW+C1wevipjd0usxrUmd3F2liUE+CjmQ5etyj4Foq
ms2e+wkMmGUYLp4CylxOR6Oc8Eh9H+tRHXWju/nX6aihE/rF/O4hBRINANdT6UjNvQTEQntOW2c+
eCUfuK+uD/MhHyDkzkLsShMu+iLanr/jMtZeNvmm6iQhLFCgtEvrUuSFYKWyznuYdw5HmlX/fd0m
+QLJ9KUl54Eh0jkj5e1+3PobxxC8zO8Rp3JiwD16fzx9lpbuKTgZVc1yANbN2aF7uK3Vemck3onO
S5dJZVqM/q9y/lrLtoeyafaiElG35ypL7lKXakLqZ4Z9xzROPPvIF7y5uu/55rlfIZ70dfcyKWRp
FW/5XkTQLUjKdHLMlt+pirZbRBPqZG8+xYeu+OuEvPSlaGKJ27qJ0NYUSalHINQrtJfI9SRBJFst
G+n6l3t/HEVXnZlIJxW1VfKevzEjLgSEB4lZpG6DzMgcMgUQmYVBMTmX6rlsxUgEJgw3MHZOo6OM
sEWaL27oBft/g76lSedPuJN+eOICfj3v8y12C25Uxezo+2Q19nQE3/EFVP94ydtQ1SBBG7RrmIQk
Elxrgu0gibHFurDvMAuv96FfVxYNZl/dDWiwks8SPB1vB7kzJEvUXoGP1/nmIprKc1Im0Q/32cGX
jzeg5/80wXcrdsDn7kQ86R5ssB5SKpOH7U6KArcYWVPkrYjbCJm8tk2g0zamAmvGa4g0Sqbems2r
8tk8HrPB/3E37XYav0EOyt4rzDLArXiDK4KW2wkDEaBC4AcuClX4Xcdxp1DRCuGKQhXxSuCcDE6V
YpvvSPyKRn4+qFmmkn2rAfBWscEzjOrhJJmiIjgsWuVq41urGdg94YVIC+Sxa+j7dp6hsgCynAoE
WcYsGy3qZfJRL05j2sYydfDPEKgH2ABALF30g+zaJMu7vA0B4K66H/Ug+ZS9Rebju/6RPivudicj
n2X9CVxqgG55XbWC1woFmOHXlmlizA3ezlPeduxS3d3R4/MB1Q1dcfshme2I6K4Is7Ench5V1d5z
DRmtHJ+t4NI1ZKWL4ys5y4APCviUfqiw0GMBSZ19eYVSD/siXNZ6BjNMO3IKDInW4NxiyiN/Stmj
2eOSv32uHXbDtqcq+5iczpEsIXRZdgOvfMb98vIw77HW5RlTs0jbrwf1TZPcz3/dQDas1rzapyBi
YZV97e7dA7pLPlCK/4Dp7Ly8VckX2dmVzh2DWwoG9tbW4DwF6TpthH7c5ren+fzVbthvoMStVng4
jr+tQEuaPkn8T4jmx/l8sqruet4/fkFMR0xSKnn2IYUJxC4wgYhY6QEjszJVbHwu3UxY4nH8thpz
GJjaJARGJVNtvhEM5ze2T+z7lC9pMIal70SV69PxE31qOt5GpAk5uvGEK3y4PT2t8fS3bZtC8yTT
YflEWNQhAwshhgv/Dh7gGp56aFJdaxJGM6zu0xazbG/QVElPuVY85XoBmSEhoOYqi+YN67AeFsJF
MtKKNv6PvcbKK1zJdix1CrPCqxzJaVUgKiZNh++PhHfVyAOGBtmcoMu+o/ncJEfR8np+CULBRJsC
YsiEHqht8SquPLCR+XwIWZwegxoDy3k4VtmkoJ4+woYePxW9ABw6O8wgs0bkFzsTiVJ9DhVNp51V
KiL4xzlh810SqqFOlfz8AJb73wGQsZ56qzlGMcZ23fwZLkV/jroh2RPp/xnP8z/e9iBRf99/2Fnk
cZas3QOW0ZpFZA9rc2L9oY/56FqW95CJuSk1JdIokX7W/KUKmXNdFZn83Hh3D4Nk3AtTHQtSMEUF
MTklCdGVEh9GDIWJuLFqA3a82qALbzjHYQZvfcwj9jqOc+QM+fc1buO3xxGjJ3nxXDQ4EqB9ga7x
RR16f5ZAqbTotcUCkgTXdz9xmJ6w/D//Cg/JCpeUTu3yOnXR0sIzCISn3HWDWnt2KvbsQOYndDlx
Ji++Z9BO5MtHiN7kwxmsY4qpypi7S62sza+MIysZf4nTrM/jCYsuDmvNfdpmYS/VssDhYk3U23kN
ilpWg9LfKuoWayl7JO7+CXsurcyORzE5efM9UvF6ULKlbQooa11TCMCjkqJJsSCNaw+TV8ulLBAQ
8W2IScaAJaFl7Wop5n070RErTkPBrPT4DMMF/G7/Zi2bo/UZ/np4Hr/bK62+rGQVqRyqL3nOky6g
FdykYgNOvjYZRSyjhLZIk7HV7D9d7LYd9lpOoeJelGtO0ScqBnahTjTvEZepaDM/OoeDQAP1zn5V
TswkgCT3ftpGi3rgMUpOfBML0v51G0FV+37qD/vVLqAs1YDR7IJiGs/2OaOuSG/7PNSwN6nsp8DK
2CebfD21j12ZUu3+LX2ZDofRCoZ9mZ99SVXeSpQJIZ7DCoEJ8ZytxI9Yf8QQ57jzjD/do5lpICRl
KwlG50LBiIS0rt/Xl+k65htvw3KN9CopvDUd1pow5xVZLaOShcosjabxopJr4Pwyrk5SeSm4Lq5Q
rZR6RUC+EiBeEGzw3S5j4+KiOTzyZJ+b57zXPvDoASfjUaqGle6jy06LpZY8en/df8tHy3nrzToW
pEQOgv+w2uo7WLe1qfIJ9iJVPOHL43wNY4yT6s9+bxZeb8FDZdTVDwJvZy06ZmTFbOjUyRkE9t8m
TaRKUcdCEBNeg4WfOZaobLdmypi6bs2cl9d1FLwoH8Y+0ejKeFMsPPzat6zPdmg94g4F6tuhw1qE
0eVNyk4qQXJ4rAYFkOBqzKxbtFbs40uPdCm/7vOVeOmUEMnl9xqKrekWTVEDrwiANiFFiTc4Vino
mtswvRQtpjuEPq4qj8mPogTgiNDDLO2L+hLYDXq259mfaHW4S4IlHhRufQDapLUsR9UVuS6+y+Ai
mmt6Kk4ArIJC90UjT6u9UU0xVCkhCPUC1/2DEi0ql3ZdF/v9EcPOxdfE5TGa5ZKlxvxXAsu9nqIw
pjCpJ1Zttq102+Sby9+75/H6N+DeQn/9b/P535Xy7K5tUxWYC0vQ6rvx4FK51lKR6J+MOSijONW2
JLieN7O7b9J4vUwxncqQYqqS23dF3L8F+m/NABN8FozsMJ1HQeqy9UQKj6CwdkTuziGcSUMStRzf
v6i3CcnStbK1jiFIwaSPya9qh5YkyAIsEtOeey3vxcy6LjwCJGPOObDq76Ygo3hICdOW5tNEUbsv
4/h2WWFC870XF5GmNcSU1r43tCdwKqzFKrdsFZ9CRMDEFQnbqraOBwLnoJr3Td+meAc8Vx93tHDv
XLtuVTkPlUzxU6RiSafkiRJ2YDTgs/1L3oXuiyS1Toxn/j6e590LjPhlzIsup58rgqL1NekP02GK
bIy6Y1ul270TB5MjU7L2hAg9bQQzthzJzvvAIJ+Rv6e/nebzaz492rVVKi3jK2imy+SaQEfaRD9l
Pd1jOLLH8XVGcJSDjfNQvHU2sahCicSblEW/IL/ZFaayrtDh9qhaPENG5ZK55AJjZ9C9arHDwO8E
f0+cmr2LBOYt1TrFsyL7cxP8SCllapaAOJMzvR5G2LTPZnZrWQbbVskTgCiV/7vjCnajZ9YZcjCX
8lgf5usVoQjn11jzpkY/+35QyKecfpqe7ZWwutI782s0pS0/Zp7+dObGETqHh1LoPP0SJ26oYi8I
khInMpF4881+Pp7fx2qFQ84IAsgIlXYlSowOQN+30JZX+iguhHSxx/j4QgQY1MVeh0qVi1gQAcpw
wx8h9O/4KPOWdzI47BSQXcfbatR/4f9X9X2iF1JtmpYYBlnlRmx69qU9T9+gROvpdnpcj9sNRZci
ebqdJ3tVvoyntTSrfUGaFMYZQTpIPokvsKsAXZOVatH5fEFGEo07CCgilx0WRO81QpImBfpb1p1s
KjlhoElA9/o+EjEGD4/uw3TaIx5jvmGUkyJqH9Yb+IbWmUbOw+u+HdVykYLBxkLNbVBYaS00RaSp
TNeoxbrddRaKhgPTeMsQCak57S+P06SgaoqURZ8uZMTMu7PiAEqg6Azu67cRoOLUrT1tdE23ZGQ6
ljTEnG+Z4lhQiRDLKnVNXgzI8oWootZMKuo776YxhGkgtHL6HVllrCUEuL2Lix+CPzQ+Td/yGMtW
DtjmmAuwNlVhoOtKSUAXOHVIpYaMAr5u+Ay751NB/y0qZimgjAtCfz38EZnxY4I8chQrTBzxQGFT
PbvO/Iz1BEHRIKvXTbXWekkeV5n7J90pwfwDHl+DDp+nDbVxCkKNcTAx3Iofjh70bSx+1qGrxOrI
S/4KAVKXZcCv2D9bHT9izdPlSlBPjCRm8A+OEsTRLWB7U87Us2VU8oKVwes4eINoImoZcTsfnRZB
Gd89fFwjrZej3FbevCRV5KtV8YfxfbL3hsfQ809vv4xwtXcs8BvIcOu2F1evXKJ2XERcrebv2CPR
QBiwaUrJae78XldSRIXzLu9Lufn1sFnTlFnarLvolgLUM6mQXoLHaoXAqpasORzFE98akRYErbB/
RjG0BtqjPSA0bVzJssbNaVJlOP7VALxpgkg5j/NvUrkxxnqZp8WoBDC/ZoUYmDNaIwrvmoXY9+yV
3kw6F5qlL/jWcR5fnTCZfDyAJeJMSNjcA/zt5bGPw4mTFqzQHrc8wRrx64sUtvLAF6lkgANael9O
JX3r2L6gkdFGSzqGNVfMcU6HOGwo7SH7PBFQ3Fzf0y9q5r3jffpwMbvLguY//5IuEFW+VwDcs5VM
StPJVAxdZ8zh/T//AHlUC6h7XtB7F+JgaCxKQevlbKZIspMfxjcAebjmIeM3sNo2VUW3pdzgukpV
5rxar28Nz8sUQBUjmufrcYfL0uSq5AVPXdghioREc24NEdgPSVJ5/5i49wV4jOyjBZBrDIj6f+va
L3wbDxEapqCKOFSmQ3+Ax4T3jkdL4cYsUq8VJtfAyTt/OIDuuovdmEVs0OQAoy7YSBbPFmxXycpM
mTr0MLVVKsuW29gxbLnwa04zzXFc4XqX0D6z7EPymVobTh8NKq2k+IasHfMoYiWnxnr4RIZtNGZ+
nY4jQcHz8frF1SvTBBqKNS6AmJEP/h4YFTDgG4FRbGZIckVGKEb/PY02/ECsVVdfn5qTyzchTMAQ
24fxCrDHPMq66JLdPkQ1+v4BHSoJC0xemj5VTSYJGTfSyFpvT1IHEXzn/Pyw31EbKx2hbfqUaZDC
0ioZ7ZpD0PoQsbsTJiVJxnNt8YbZ++QyM/gkkDOcj+YvVMbg3WoM6DqanACz3aH1cRzfx6OTUYCY
KPtcpWouVARArSAAmjTeOz56q9ykZZXcMTkFN7/TIVxBhZ8jSfHv9PYfBBI2vM1YF5mwWYe2QCae
J1JlMb66jAUO+dhpPmIqQ0JNgtcN+2D40jNXMQctswKvympqsL+b7iLZq3Z6aBiNKigaEgsEZVt/
jJqUwdzWnECzOM5ew1uwbMVxfFJwHOWQaifg3CQyIMEwVs2txRJLEZhDmjhga78qiNGOhb4RlzAk
2vZN48V9umx+iWGnfO7YYMbN0VKWS4bl7Y0g3TBFGAarFI3vhbSpIacbomYz6WNT8rWmje5jwz4e
YutcUdy1cR5lXAp2gO5SvUVVreXGaeKUjHvhE+Nc1Km0cQgX96o+04nSjdGxMdrYgiF5wLFPTn5A
h+t1++NamZuBwnEaCXKWpqZIJXeWTRTXuid24po0zZIBP4V6yGvPTKWZiwMo3TAxAMDNDIztyFCw
YwkCbX6EorWdWi5likYGNIzgKvfBssvOmopaW5u6uIN2N4s2jCHVCFDDM2aW9M5b9iVPMlcyDudg
LyAxynW+qn3mFtSQg6bHH8aX6UQNPJU4I4dXyr6nDBsj4Kxn+yposDUeFsBmyUN/V874r9uMTJtQ
aJkvZxxYsBZ4ZYkyINpYmG6756GkhogaoKvm7z+Gk82wmOV5fBvxZtzOyhx5rAHszNJHQQh3iCgl
qzZUL7xlhg1cJ7pNpJMhnHTYWp1d8fIUeh8+0a8AAhBqF7hGZtLMuulbKaZvveR9Klf9HyV3zXsp
9AHonygou9h/As4INFI2VZdxEwqUn68uk8yBFEtUMeTGcAcyKgWlhEQpja6T1Gs8XnbxvZQRHbNS
3VQlWQ0d/uA3iJ7+BvWryoXojZwQeceLeMYqNwY7yMjisMroVSmMXhlCXLju4OwBacv+AbvEfctH
5eslaW2xiP2shAUHliMBB7Vb9uYEKCqIKpL04ouV1zxJ/pDVPVJkiYcSubsinSJ4T/IeT5XsoZDs
g5tvf5ss7HahB1cvhLvzr5vSQreTaJCq5FVD4MnpZpwLhxRL7rx2Q7s5pUK1S/WC4v2iN5XNdo2I
bNSiAs0uTYlcLgo5qj+cNQmACQYLwm/Wa+XNog8vGX+305fT/PW0MEDdzurALN7qC5wiUvufah2n
BNV4vqxN4N4Bh4c0jFtJjAzvFwx2XFMk2XkaBUfUyOagvQ730livObyuj+UTKR4zrQKxYQBIrCr3
MOi7AitQBnv7AgNDypWepXwuvZckaxTX9p3bQnd6dcN7HteMr5pslGDniLVsv8BfKAGL8r78lwOT
nEkBfxP4gYhynf6V7hs1TEdgraLJNukWrWTOzlJdi6YL/FmHfmloyKR/O3BDgwPgFpidbVRGvM0A
p93Q7D7lOgyyVy5hOjzOFDuGXdcz48OQpMJbtuLK02jyeoVF6+cvDM3I5K7Ot++VD2lZpJNM2wqR
eG/NwoWx1s12pTkuL0xyC+3TL8kuAOMge4qRwVC8rRdrMj+jiqkMtb9envGHJZGwKV5N2xmyNJ5m
DN50fHYUuqRu2cOjyl7RtetYcg7mBnFod0HxlWS3YIDl1Q/rpMFNnjQ4k5EQtRCr73y6fC2GU0Tg
0cEvlEBKlWpc5ncbXeSzx8q5v/Mb6ATNGtZJlFEromJVzdgAA/2eI3KAW6xUASXpanNkA+N7vgh/
4EjzFqOrRMOB9SJj7K/4uSreLlmTgcfh7irkcIAIgaJcylkkcR93CT7F6hjSwMJIdmGFK09xUad+
3hdJobJ92WvYoYLzAjfYczMgROKJCa9nxW0ui0TUJYGJUnsKdMtkSKZCfWHCaqh1hmRDKFy1ZLMP
BUNOXyHdqxIFWZLN1SkTwFG85Kti2ZVz3blq3vWNhxrzBl2y9VGuDF/kKqv8oG0qq+sq7Y7j/otG
VcDUEwuLOUaJeE0/E2I3JbO4cN+HfI9pIBzNx+oZD0rbx3ZoRL2x25+mV7c39l19VthPmnpI1e+K
9hIztjZQgjs9bxYQsTgEcj7AqTEgmhb7qvhTzOnUyTdzrHTH/evbZ1yzRbP1YXsViat6cY0XrJh9
y5aScGsMbbshxfyYZ+QZkrU+YGe9zNjZGnqxnNasj4JXWWA2kebBrQ/H2pM3PnhEAwGFfZYl8PAp
xFdbpHAxJPeH+XV3eZzftJ5wRSrGGkLfoOrJIcNLqTR4KJNOgec75XI7BS5EFYI0cLOP90ykYIIL
kW4V2YYnMtqg4yNlt2NFx9cHFOTjXvEUOJl0GUNU3oW9XPfnq8ZAaberlYUUhcykRmA90Jk4WVcU
TlOLxrk9J8XC6Cg8NnCo+fbBpkw1Z3sB0mnQ7EoRUhLRZn/vdr7AyR9GeNYpJ+YK/xR3puYGAkEl
EHSENBArn9esGKAuQrxnfLs9MIRDHgqVBKydbq8PY+TFW2k0NPSSd180okKHwoH7CVQ9vSPSSDoh
+QkuYwv9wJmwVtqm9FWqDaYw39R+nG3fJPuHWBVxncMbqxh/iZCQynSrMIJ1XTL0TSagx4gXpshh
BRiYTJBUrVPoK7Pi9LS8Up9ayTsUg4utr5rK6a6CPvBz+lCchlqyALdJvuTHvX118rc67XkIYXGW
OhrEyEAwHy9r/FidqLIbiG0p2FW0Os6fnNfAHIA+IHkrS39g+tKhi2PLP2XXGqbF+mU40cfYodxn
PHxbjcnwp/CuesDVkh1IA7yMWnGTKRZh3VYQtIDmgD84fpo7upYN2X1Tck5vR9fSJYPsvRJk72Vj
jqpe0phAvfPLaDWc1eLQtBdoVx/zCTueW8U6XSf7wGL5CDB7xGhTeDBfwpF04xMYXZXIo1440YGQ
XtJI7B8ub/MFKqbcv8lonV5QOmEn797XO2CFILaVt84FWkiORHAlrmXPK+mOLUTXd57z/aoUkWvS
bUCex+tPhDRz1Ni0lWjYXezt/5J32DtpetHDStAzcgu8yam8H5yDGo3xBBYVp/N03j+vM921g9y5
qlhmdOCCCZbJfDoiyZvDmhpRtAf+Js9urmHcU3gHpTtubRIEGXE+HDkKfsZ5elPM3a6UUTtKRTq7
LMLrHBBo96HYZ5zKBoEBSzDR5fy4SuVfJQlo0J10jXwWmjD/yHHiMRZi4ZXGqxV2zLtusB36slBi
/DZdrhfk7CZuEqTHyddNLLpJlp/FJp11XrleFrfRmu/u93m83s6nC8VMreLwzbXWGGi6Tsag6XxE
Se42ov5mWCCAWqWhwSdIJNtK9nLwPKNQzIXm+R7ZUu1A9qbAxRtPj3nTgT0RiKZyk7RqHDj/XCEX
ihJqXzgm+/LvnYWZ9yL6tCUpG4PjC5EHfLepY/A+Kj1hwUFfgRoVnKrMzSjfm8Xky/26Zc+kWsVm
TodJgWRWqaT352NQRolBZQI3qt+iwat6STUkmIypCiC4/eHKr3QAZAqoDkxXLqpOGeLDOc882zGP
lWEq1RRilwdocpwnxj77Zf7ERYq3kPdX9aJcr91YkLGGziy7lCcrG5paYXlS0C5F6tJreXmljovd
dlaDddebJp9rlQkR4upaZDZd4buStOjrVCjwjpoLmR0Uh0JEcMirZlmP6XQaz5pP0i96cpkhr2eK
PJlGm264evfMaazU+JiVKfMa3C4iwVAYeeuUC8/TAGhBYXmNKKHI5wQWhD91NoGm8KDgnZd0F3XP
9ZALFZxu1gja0Eiz7ttksss/LPP5zT5/K6GBoezTbUzBxQXZw9L9fGChTImM8GFdFA+QHEqov052
GAzZc2t+E4uEysDSV31qOpCYtM/uG3j/19n7TwjtH7MvUF8nk533YmyVYF6Gk3RaHvezxvMx8Ec7
7sqChew6XY9bGci6VGtRakX2NF3xo/iPu/fpMM6AlcnpdEe6HGnnDWCGPaMkGwiIBC7vz6UySBVp
5B2LfrccZLSCdFBGKOIIaJWUdyO4iu48Wacbp43jgFiWTWo5yvcNI9PvYqyYfe/+qAzB+Ph5Ewc2
hPX8vu4g7HveT9pIJZsMM6PYSJeXc46QyA3RsyGq2Gp6OZkjNFvK0jW5oUwcyrVx7jOSooxRszF8
lSILDa2mgHreMCTq8kRLNFXXdDzFf1ckEanolKh1mcSJSBJSl65De8u+MtNaZIVxwMC1bEtukj49
QbvCUDCcf6PKpPG3QgL4aO3BDZxDQzrsSdxYGJqKSVBE2lh7OM8gGp/AOhpgamOsfFAiieAiiDkG
WvD9OZ+UBQ4M+CzwwA6bHjtbrzJm9mkj5pPtSLE4X/AIKaTkJtUfPFPzqFQ7dilSVl84ALXhcEeV
0G/BYa6uFKZZujIut7kZNVHxio27ts2QHbeX7XXC5bmuWfvDNHu4UQKlo1zqMsXPEx3gkZVUKiHX
LmV8ZOGgeQelX2byGbTcsSqCanDHEugNlFRbKdqldIxmfsGkssqbwrQwiEzZDPcQTqWLkzHNIjYq
8ycQ+cGgGaAFbysslCwpidQP1P5j/7a77p9DDJkM/TxvVpdu4XEHkOPI+BVar4Y3pYSy6G7py+R9
lmSVkksbuDB77IWr0PwtSA3rQLFIrpSGGByMNIBlrjcVWVdCOHWRaE+XhWUpRZ0mk2nBGN/mTt88
QVXHK4qPLCjlj51/duEh35Ra5XG1LvaG1kDwCvqMl527Evi76rCVSKapimRowge3WAve/Jpks0KP
8NweVNc5PvoF3a3kleZEPFYwrLt1O6uV+vLNLftNLRDzBRfcPXbqt7nLTyHWDIbxpKcqv2FnFuC6
XhK2IFn4Sv+Rhge5I8Lx5HOUag/FgfeEi08p6/aF6Ke8WSMDsb5V8u317U9IlobfLFzct4kqIsGC
Os7Wxb0fuwu8DQi+BWwq1Nll+o8TzoRhEhUNeEdg5zGE0C+XPqEqEvd3eeKNploQk/QFGytMMpf3
cmMw8o4Se+n5cpnp5ByFlUk4Y4hYTZpIWRZqJjHmc6FxFI/DxH4Pbjp98Bb8DQyFNqs7E9lnsI1j
w/cFOoFg7gTux8t8nn6HAgPrbijEKy1bJexSSbUrNCRQJQaZiB1u1Wy4G5dxwoAH49l2UlMNau54
VgaMGygQUeqAmQJ3HLBjW4mMQ6VAQ2071qaU59EvNk9ZD2Orqcq79cTOHwoXUVunuYBojNXvm3j4
gjSEvieOzHD+lJtTxouHLoqYaDzkvVhfFCNYcr09xCDkYNvp6NvLuI14fIlGgeeSNT5TlsSIiRws
0dzP5gpkHivzYSpt6CM6xG/NJvpxHIjzP5V4a/lA+0tQJn64PPOoW2HN9ruLoAe2U8rHHfuYYffp
EoXasE13yQgVWWYVkbI57LTamrpeCNgdEYpRN+mv1lnfAW+EAqFoulZCZr0iQ6sGGXCIYlUhPl1Q
PzFGk9VCAfu0yraA9BimkIQKbUDTSW5BclF+ADPk70ApggYJErFCaiXvK5eyHS9r+hdrAp0jr6xo
SPXJuvMA/VObd/tkqW8tNPjCGVCwrOn0jOgY5SodP0mWaAxnvI38Fcta5CZfi8yJZUGgyXB4uRxX
Aq/9kEoMuoDIU2AAQabU6T3vHS9SMxvqd9t88p05OeCmlnW5mnkKAbl8BqpOLXRJq6Yxptat5Knx
9UdQOePAq/bj817BWLGWGC2UoCVjPT7arYcSjFnA2Dsiy4Iw72/HGZA6198w3ZwnxZL9XwigmuiB
CbHfk9KVZmh59QQ2OepEcm5+ero44gW0Y3UetWFJCEsPe0zQKYVAdaI00+9oKAPJpzyrJHM0MXUD
p3nk8gaMnx6CMEU7pKLgiXopRlnyGaLsuFGgAZp+GymQArjkTZgdWV8lPBBU4NavfdlriO+Cx9na
2FkodpA94YOkdl83RSd5T3xMk6Bfp3m1osgUxSLvTCGXY2AEWova1GWyCjIYuw/X69bSMqkjyW5x
EAy9OGngcCRGJcR6oexiNXUe/lqJCVAAy93F0DYY3hy8/SsFqzV7m5FRd5XWrFWCkVWyf3WoqLhc
oQ3s1mBivaBs92CXxWuaL37iYIW2iHH+bHi0VcKj7GV2puairTLQ7KwzpNWSS6pJk16udS2UTVYC
S5Z1SlBf4J9cn1CysXyL0NUERFstqh1CK4V7vFOZTybz8HjHmGbHQICzu1gxUEmGCxHZDn2DQkIa
rUUVVsTi7OC4NzUrftsSpm2bOlVWnCrBy0NnFzK87GFGPWXWCLM6wRiICr3Wu+9ZtereWAX5smi5
QwXmiFakOHOSET9NFM7rIZBpKI+U6/NAuVqO4v1m6IcFRvkeUys7540p7GJtwnzgTKY34Oa8zDf7
kKFDqDQO4K0VI1O1ACREaoZ8dYcsEazycOW8dyDYShjXrZfE8dvbeWOBrSl4v6VYBfNIxLFav9Om
lun8apGHfZsnz9gJ1Zg6vx43ptG02gqqJWCsgqrtc0UwP4ywPllL4wCG6l3uWpN6+e8dxzUly8EA
+E4CyMUhHg8foZGX3UL8mrk2CNLCvyyKOrYSfM9ccthPz/rtUnohM5FrlYKfuACE+yQ+47kCH/cr
dfwk9v0qis6B2pX5NaX8sqIvh/yPURQKPylCVLwoqtUfIzb3ux8rlc3o5Sd+M5qt+9+IyYadabd+
36en3K/vbJ1Z7OqXFdvg6LhZmVn/Mq62cj1//K9WivCYtIhWG7eIiNvvtrhZl4c2uUWmWN/cXv6m
X2ariG2RnmanfFJlPtm4M41JH2SjHEaXlvd2fTMHeYz+x4b1zcwpnPXfrDK3Q9nTKKJD3NIMeN99
sVhY77S1f55IIaf3FO1O924MRlQIblLhJZGo+89Ltq9d/ge79A+2236QbM3BUEiqV58MnGIRvzDB
sc29GPhFH6dYfe7Ol9HaHD4lMWXsZ4MfNmxrmrUP60J+2G154crI9HL3oVn7kCIWA4kdmVkrzxyu
sRa/WBaqbsI5si/W30X8jTJzfvkvmvQ+tKsbWKU/bDaKitzGMNNydRvZte2YqHQbb1Ejd4gQ2TxS
Dcb2qvYoCznOJ7WHacQqymbrtpflf0uJlHH3EPPbb7FbyljkGGSx3Sr2phIfVvXnVIop785rm0ox
8oJX9VaVYob0L66qlDKeKXJx668eftHLSzBsVUJFn3588prddGJVdbmqfcoq/Rt57WNMWv3ntY+p
M3udn1Wb/o2Nasf0UozrrWrHsPvOvZuNaqes5Ul3q493wcSQYuuoqb697a8v+AGvbDiMWHmG7YeS
Q3YRHtYbIxpcALEiBDncMPtzpi81jkBOATraVbhVOKfd5bR/u7zM2EgNMMj2z7fjAWLfX3bT9YLD
51oV4OBdnB5Gvgwb3HeSpGoELcnVRSZ7t9T4vrixAh+OstA24vPKIuBbL7cHghxAvMtF31yBQzYK
h6ORrYqjRdYON5vraPcfYoNaTsDtD1tTZPrZvz5Mzzdo1umay+ZSHV3sM+cm0gc6E2T9zXQn7iJU
wP1yEahC3Pw9xy0iZC/akbRhEHCCqQDm7QMpCKNYwx+UFTi687CCmsiBZ6iLuFyVDzu2hthsO1uy
475pxY5TGGz/8HAe3ycMBmk/WMePh4j39ddUW6ORP0tBMtpo7SeZ1HbApOzm+037MZcHDNOkeDNE
LaFIU/+5Lv5c6z6VtySftHPXohPTpZr25YV3bCCxACQbDXRSVopj9jgSLVDu5lJJ5VMsL/z+tNsw
Sp9SOxggRfWnzLtIfRl2wU7keh5ZXtv+8equu3JtmQTG5/V0CXtJ1Z3f8uthksi7PZz1RhFdBPUH
waJQbyQje7+wNys/hTq5iPo/f/IK48/z+Tx/HQ/4D5fzb6V9zk1pMgEcyEBRpLdzup2U4PkCX0JD
WpP/so1fRmrix9/hy6pQf7MMXzK7/cvB/WZdVvkvq/glQ8CHbczLlWGlHx1hBdzXM/6utf5yIRn4
solfVk59Yb+9+eyC3aBuf3uY5+O4P/0G6iI5Uo8lYiQJDcHViDUCBiCjYGWAyoQBDGuPCgM4unrl
0yp8ygi88FNIfCsfNvE3S3aV4Te92P6WbbjSR7xMmLZh0z7i7T2ubVwfBgDbreYDzI/4AP2Wfbnd
CEOcQssSObD1t9fxPD2ubX0ZBuhNTD2Hw/st++j3kTs4uYJHK0m/6Y9aHwsM3RCFW8L/cXlrq8KA
WE993hr2vLHrE3Xg+O1xRByFpoMGoYPIdkCCRcxQhduoWM7sfYklq9bycsTmyoeF/G1ue83XF7sC
ukN/3O6Ov1DFOCHbotDGQHko5CzptozwRMBbdf06aZtTSWubNocqfNxjE15iZZRWuDdlbC18HL/t
poPyZdJbkEer8mR2sZVL+H1SNQtzZs0MqMVMvJU6P94cvWgWyeLW0Qg/gyrY3AxIOqBdxhXU1nha
N6Y6/vy7oiICD/mi7W+TspiqSFkP6Gbi3dlEwucugTTEKbZiv7yd765gXkiraG8yjPHt5BinTsFM
U4ZojVAni94pG0z0OgpJVQWvwF/h0ENYG6GTXjx3JsEt/dMv333/vdvbp/l4UK9MOwgLXljg/Pop
I0SRQxR5w0bwFuof1kxtJzST5zmImukB0FVrRmzdS++V8N/WoL/OO7JglO1uUkKMJJIb1H5lhMj5
quLz+DgizhIvkKJW741f3N6L+8/t/wcCkSsgVMbTY6rY0DCYEpmtpOB9JAWB6NRWMjdCGY1QMGqo
y94FvvfkRJkPo62NqO5G6rP4smSM0CF8Diqgrxd9j769nHd2sEwuEnhATbSehzDx08PlbedZu/NU
G7iAaPJzYqO48dlNZ1vWBvhwnLqVPRdyzEy8kBvXxt8lAqWM5wcfN3HVbRHo/vBjatd7tO/AkYJp
uSk00XcAVUXsaDiK3XN7exWRq+K5gwPXsBkgjt9jIHd7x4CT28RayF23OP9f5795Gt///OHvMRSb
61APE2OOWKT1s9aFCzN4szovD4NYGBXrkTw87h4/ztm1sBONwEf8knUWvu6fLyCa8PfZkdilMiEG
RvcZnoBwv/KvGa5F7m7D1kJWFzSWfAXGkbyH2UQ/EQkpBrEhpr3Ops1KySAW0rBvoS9yTi57uXwj
NvLiojXMalO3Mo4FsW3ST7frU797fLlBl7Lc1OP1rgcp4MTDE5VLdpBarr9mgzjaUR8czm4FG6AI
AQm/+dmfNamLPbrJg3UGj3JOoRuxYV0ffzFQak++Oh9Uc05u6ig33IyxA/1G9AK5KbSF0KwdU8l0
Bw7Wo3vJrr4VqyfNim/Zyg+XTPAaqZNBIWrqkAWO+pB+wy9JEf76kaMjY/2pKXpESut1/n06Hvc7
F/jOzTl+CjmRjmkd8RZt4ENHgYuqx0QiRxwu8j3t85vfVEJ82i7xrEWpz86ikDqniKOARUhScDtP
+R1dPCwFXwe2pckbJU0pfr1hVyBfNgzfRSFoWqntUFNmhacXv0dPzuGKnUAJLu01flYMCin0HV15
eIqPT/4Vzj4U7NHsgprxZENZr9gwwvqOqmsCqNYz6ONHjkM0/mV6OBNhichuwXvnAqvHlY1wUYao
whCIlKYGOYAPXv+4ir+PtvRdi2crPACtzpfCuWHqMEzMDS3XoHUUcCsp42YMIbp3ecNak8CRcQKI
/jE/ShP3g8VNXqbD2+TrQNmcrKn0Nn2zxqOaDXHTK8LA6BtWy70KGijHlmki1rf04h9ZXK7KT7fx
mCKyn/20h+eT6678PBspZgv8AibkCN+fr9PT/lGZTxO3wsSGO2w+yOX2+3ieVw+dkrHuuNpI8iKR
8w/TszJEKaSvSIrNyg43TPbayIKCgyhfRbkHX9wnhawffryd42+7klZN8jshs75JJF2b8W0/nTTp
GFJf80t8nLAS+nKccjABt5FclSCJIm3DhN0B3EVZU2mNSclGfJ2fwBTPcn4Yxvnhpb1ermd+uFi9
hF3NPdBNW1XDJoTJi47pJxrSelrP/qCUna6lbhmWM1uVdnbQXUCsuZngncE3zIo+sj/gcBNryqLM
jC3SRN0JwYzDtpeoZy+RUzFEoGCdpxtQKF5cqchxfoASdsxVnM/7j9g+ffe0n6zcZ2vdqsGkeFfZ
TwDXiA+i6IUy1SAZFkqar7UckPEaP6F/UDuauEqpyPsLQTpvP6HTgseCf3x9M2ZHY2bcUBws0jKX
EZqRrYaBT9r4CT4tIU5OFHR5cwZ/MBIfl7H+D1BkGDYF6MN4ftc3ILJAc0jM/QaUGzagj4TQ3J69
G2zLUIy4uGLI0lpZSmReZqAgv5fgzCnIJDcCI6IewkOfreDBTxgHdmSfzVak4CdxaazBONRabtiW
uMYq4h+DvIgYaH4CtdzbIjYV8jPIf9sLeamIE+fpOH6zysbRmb+PZ88FisQgrq0a0W5qjhlSH9MP
eJwAQXvLNv8J6daq4w2gstcO0e4mfIHWb8dYcCgoD/F98Eum30e0Z/KDeX7sTig3+3Db9w5s8cgI
sX97OwIVMd4F1yIR/4WyG2yihoFxB2VtQ5xOGdsV49ocvS4Ugz9nus27FRk5BHuHYTuIk2GFQwkG
osdpsTVFWSqHWYkVe4SqafKflItf0SG+bpPK+Alj2XQ0B8+QU0QKgdP4dUeirSyyCGOx2BvslnvO
j8DWfntTBohLZvgKd2L703z6eAVYpD6HIbnRRpGTMn7CMl6FUS4aAWDC2dADZ2rlk1pcZ1LKFFqk
7sbyqhymC7AJHJRL0bIxMYNJ+OcccAknEpUE5pSpo6szsanb7sP+nB+gK6RiKjjPONLgWH95Vbux
QWKGnrUlt3/8QnrcFyYro8XNReAi1f9bgUVSfV/h7BYHacxX5c6zTY3ILkfvQyMq4scEI76CjiU9
m1t3X5ZSwdXpi3gYIdeIf1y9j9UgdqUx7D5CozLSgsqcpMzWjf6moz6ppD7x969XBLKXG871NK0R
eBaO+w9okIUHoZxeUoUURplyWQmVQemHwihasyzFu+ABvQBLgQdfmV6TelCY2HvjgPF0K2IfR6uA
mqwaCr30FE+oSWl8F7AL3E2BY1tZCpMuuDNl4y0U5cereD/6YKFwVlV71mgqremPpmdLD1mqolQ0
cMUWPoTkjBOrfwtT+LOdwZruKoWMkSovjGJnlUZ8EjwiRU+bTppmJYviOYyZI9She+FMKbou4C/H
lgXKLsbfaOEBaX2DFdcTysM91vYjjsKadsRGueHl/noGPrrzJTrMiu7pU2q4KJWLXNVykwnNexz3
0UQLTTncU+AaSCqz6OQzReqkVI66KsUnlV6l6466Tl1J+yuBdFf5OWmixgpA5ed6YafVrV5VX1Nb
PzZDcgiFLe3Irfe365xvc+mErkitlunANXFj+jqivoqyUDapkFZhHWjJFv6Z1hLB/TjTenXQO7Bq
35QgXERFqpgz4/CRRq+PRxWSNLsCKzNqTt6XXTHgjLAAq4RjBLk/UCvKKZaph36PLa13iNlg5uz+
AEQyyvn0bFeRo5GAUajuWEYJ8ymxtldrLGNi1Z0LE0TVlBzLdTLOD2VitKIugj6moc6PMNrTef+Y
12qxQhQHAd1LKUMxCPKA2j8rg7DOWrH4UAziAYx4KS+Eid7lWLhMLMR2W9UzUFliavBnPr4yVRZh
iVpcDEpvWfktP0odY3OgkBuzYClTJlA0q6sK5HKv8wF6k56V4ViHtgYbCSfWozWba1izOdMjNULi
9ELmXWtH1lSs+R2Ew0xfrUl3aDML4QtF1GMsDyv7ElMEPk9HSAyBaqMcHu+81odXmU2SN6BUwPMm
FhiHsJ+8z25mb8AWt7fyrxxjxeLFEGcrKd79AC3tTzSXyWpSeIA/dqiFsqPVQ7zUdWzGm9QMO/M/
GmWvyk7EjYn5PnDtImRdnQs1pXdzKUPFYOrC2bGwPQkQFmrnV/Oud+ktV8WUNyWE9lpmaNfFCWjy
X5Qx4yqRkpkUwgS8fBd7j89vL9Cs40PZp3gPK+fCVal7iJzXvGfS03l+3f1TEa2ahf4jxDkj7lDL
YM/goj0ZJmp7hjK5l9Q1Ie1EgqUpF/MCrTA/KQUJJrIwhMQAhfjEpnlK3vtNU8XMDFLM6sX89hem
zpRzZQ9ssVymfxu9WaJrwZLNqMAuRInVOlDi5fb0NEGUwj8hinz0qbcsMSZ2U9g0YjwTCDMTnMg1
UPXG4AbNwXqpIrNkcmbimmpPNuv+iXBKo1oTyiE0IkVjmrytAyTQ5+ktV0FrIoVSzEx6DmgM57sG
i6v71IuVtV3yCVKmwK4Q7zWxpqNVAynuErZzdxr2GZLnEM5Bl4Qy4WoLTneFWmGjtiuGoDQ1lZOs
pNW6NMWnU8CQr5r1hll1sQPAVjWk7WTJ1HcbQp5xlsGA8o3stcRVZChxR2MC8UQccNXi6VLJ3Ky5
uG76sLwlbwMlRkSCY7jser9IE3mwgrj0q96IMhRLXEfqT/+s7z03p3VSn57Gs0tQ3nSHq2BDDoiq
TllEUCngSX1hI60jjRZIXL/24rM0dp3R6O46q2bWYu0Jc2TLY1BVwktNTWY8ASZaeUPLlolISIgJ
i8NpFFCaa2bHIMyhphNHqkFy8PRqtikILyuT1idJvf4isbFcxW5FqNf3CZ5wbIwBoL8ZWKcnBTfQ
FBK4UJeajbeuzCpp9BPDxeHJ+0SouJWFdRselISOUHer6tK7lTR+zr5F8SZzJUoEtmEoWFy7+raj
43BIO4wjKefQSWMvZ2SM2Bz8sG5sGPmsDLklv53HzfZeJxwyMEjjDWBcw8xX5/8uPXDFFHmzaFvP
v857ZhVTOfhxib247kcIfQWUcYowDlLvt/ejABpUGcDEiUB2uexiA+hx43Z4N7Vx9XU0gsd9ujGU
zRziDJCNs7xfhPLbVfzt1iXm3SlbN+ONmi/f3iDGhJ/fTo/7G4SKD/NrxfgKMtRhnhE7cKRxVvMD
dkXPftr0guaM1CefgNkygUKwrJWh8ee///z3/wW9upQJJElS+QT6LRNIsgbmO1CVsZTqjhlyBh1j
TX3XLOPhPO6/uAuY+Be7xyM0mcfcBP5Fnr62ZbzDru1f8V+539PhmE1sSFf7YPOQH0vvdeZGY+zf
oaGcS7pcrg4oepyo7c3++Pay373c7KVFPqCVbEzN83TxaGarux2dRyDE+JYdoqtT2C7sEO3gYs7a
yBZmu3ks8mBD4EVezaHVlczKE+E/lLVDSbpLGLoCOIdyyY/EEqqY2PH5/cuVthc6YaxtKcfRRZCA
3VJCC+FwvsOH636bH4xjhMpgU8/Qz2J/vuqSiIcjES2EEOTny2alDFOm1qTh92qGFWANt+I2AIzn
oiy8kYJZy4VbX3B/UubbJXFkSha3ZqAwlmR0iebRsSSMqmmJzfYkfoWa781HnLQyXZZA4wDoUpmu
/KWq0aTMRUKVze5Sx/u12mF36Cj/F6dfHsZrziLGTYgXAJt413Sbw+GpNjXuxwJnE/l417UBwwMy
j5tiwbAUOkkMJwC4wcG7UElBBGM63fYr8H23yqixWKSYBndmE7YZURSFhAgTDCm165eP14f5qO55
J9AxZX13z9c3vZDKr1zFH9ccFxMpQhPaZeWyd3KcwMdabTnvKG0sp/RVbGD+6yEuGo6jIx/ETtc3
Dsdh0IRA/Iuqbes2iQQpyi3rWMCSulW0Xs0Aw2i89vRcuadfWTWH2bLWf1RBiIjW2+m6egOSINAg
v/NX6JB0fh1Pk6aq+z4FP0rdAmJIU4biTw6siy4/e8BDV3FIIRw0U6ARSBFCxznzCscDaVBeP7aq
LgRO7M3wPbWwyEfRyGXqRkQs1sqFYthRhjHwm3oDGNeWoxlSll1Cqahh0Dp2Kl/Ap3Ef8a7h/VqB
LNZNkXrU5ZOnTKEXOxoq15x34KzEwIKCwGWcnlPoylVi1m8M/2horLpKroMJKRbB+K1V2m66XWml
oeTJ0vCu0PQvkB/EVuMre2RS+gsaVK1tQ8/kVdaBw/7+ef72Hw48+OPtePzuZXz8ouxostjCOk72
UT3ujiN2ptZrWeq6lPLWR1ykt43wwT/NOys/171mQUvIWOmh7tZ/U34/aVB5G/I8PlnTwBmV+cbv
deyqsjBKNYBwzfHYBWOx7xSBLMWvVG0USJoybta2S1rxIiayQ7ws02hrPmmVxI4W3RZfUCJ1qyrl
dWy3iyUktQp9wba854XAOQaYZq9MvpbIPirQn543qqIi7aQ1W2bbiT2v21wcIH9PkqeWesef9lCi
Ym3ufATI6RT2BGMtdVXeCSbZ9Wsu+QLtaEKfjQ0SVQnfrO1UiVr156t04Uxc0eIpwpakyspMSkF4
rQ+Ffz7fr8ypkBZ0w0ydBwhpQyX3mknJihexnNkwYpHpd6uxiU3+NB4veSRjE51R30mKoCRWitxe
gM724HRlkEZ0yyKDg37++nVWvuxTX7qffhyPx/yXHY8hxuqhsAPKb7IOXdETZC2kNa3bRPuqJqBs
u9yzDRsWG+GVjNN5+453MUoJBk7NB9jwtZHdzbrFAvAB2rSVsU0aerHUhwxGej5PB6q3wE/xn4PJ
Bw0zHamrWg5qImSn7EQzG199Mz9h3+QnaLY9Qh0HaLosVAlJeYygVKGEJE4PrWMED7IMk/NMrYlq
jaF3haulLRndQ43tbE0cmsrIsVgRKoYUJASC10pJvBK4/x6/oGsG7X6fz+P+evzAlAARar7vpyOe
oMPo5PV0pKcM9BS+N/ayvy4MHDYYxlUIK/pKkN5QcNh1IncCYa0aKmVmf7u3K4la/RlShwqvRjsw
UpzYBkNsMyFazvPXyyojikdzBTaMOo6HxQpYC7MGoDARMeXy3AFQhwMxd9+9YXdXIb9exvdSN3K9
TPZZE3OqrtDPv+lKweZEZnu8COQ85wcYosCDNu615YZGO0EM8uvlfEGxaGVxHlo1kon4mKA2WjYI
tusNAKrp4nArk4MwuxKRc54zyhdKYJcRkHLfSpyqy9iZuIO4KHewFDwqFBuySgJ0xMW+oHj9ouxR
9fNFuRzxUMr4ukU6AecF5QvDsbItClwZQdq4937XPjGlmg2HbElVrABNDHfWKMg8Rqkk6smhlbIB
6XesCJ9eb68ITcJZ62MyPrLWBJrApCIMr5jVKMiagX+Cf4OBbWUPaslSdCeOVghH13EdFNZx/6gH
ck2EAZdEEFwPiwtMQzp1S94v4W0uu7f9Ad+MLRLfMjF17+aWy6RMvJDDFQsZJf2FR7dqILQ9IzMa
6giax+k5NeHeLYo0xTnCk3lUlt0VUkOy9zxSlvml45NLLN9gM+jat+0qSV/Hxo7yRZWX+0cMEV9Q
oDWbzESAhRsYuTyaOPTz7RrwgesvT9P28kHrU5Okt/bulYeO769vcIOUOnQT0Tle31fNQo5RDvBK
ON5s5EA5A1MZap78wFyPxdZj3nSM2HZnNgJEQDPKuqJPseHhPEMjM2fKTCd6AI7z/JaXgVYShJlm
ea2opfwGK9mwpZrgEMQ9jAbRuj00lMIeMvxdp71zOxbeEoTwkUZR7Bgjz7lYzHEEocQrumYCNkMj
noHGfMbS2p2vyqVn/kbdhbK18Ru3X1QPo2aTAxurX9waOReP12C2x/Gs3O5BymC72MPT+Oywi55v
R058gxXbMjFnUZP4E0/TGZJ0I2iSnU4g2QxtVoO6qy33YT5fX+Zn7KcH4q68fV0vzJy6TekMOKbl
VfqczDY98zVif5g17xNiQTADRZcMcpM7Ma5/nGmyzDqKK1wxgKnr1tK0xO/9Xnhp3CJ5bSU1DJF+
J8dLm9Tq4HXKxbFG8PQK20mOb9jpOxNbsQ4YD2skvCUL+5UVUhCv0FZLtB0qSYFYKSpoVTUyQtGy
kk8gmdfOl11VjOyUECqWsLXdraDl3oB0IoQNVqISBVtyh1SKzcI1E5P9nPNcGmkQ1UtrFu2eT+qJ
lr2Ly1vg9IQ9GDzshZGx5l52tXxvEzEIKiNePbK2keGMpSr7HcX9G8B5Hr/AFlC7HuU2sa2EB8M0
y2VThM9B70+7J+Vqlq1gaC3rlKb13gXYleR2KDq1ksLe3fktgFui0PxqNKgshBdEZZbe9IxGHsr2
ZY20C99vI9/YId4hWB/pjj/iCQ8LS3fldoINrZoavujDHc4QY453xjjtB3VmiOEYp1kVLRfvTxV5
sUKsw72tZGehiXlQgh1MFQ+hWC6M5V+RraNJB6o0OSt1/cRbziW+MMRTHkgMh77tNfejFXGPcinn
AR5Da9VRY6jN4poBQEXpMRJI5xcd52d8bcmHhuo05XHsRaCnKlNqIhBdUeiaRl6dbClNHBqcvY3h
dy7Sbx6xw+tGCSWS/bAnfaE9SavKmEU6QN7vgqJeGXt/asWXallI2DQoWnXaG+dKQHkrBqlA6g1G
nRbYYa43kjOWEU6eMjoVzVakGNET76zwtdefWRbbKbAbabUMBk/H46ri9aXRpW8Fezc9O5914egG
4Qxw52ux+8qOLxw4tp7gP/wBO4dHajoZqUm80sHr2hTv7k02VBWPQA+xMiMCYP9dMtqVdM02qO+G
BxYKdKcKPkmrXOw+wiVbNSZYKgjt+1Y+/fKR/tTLz6IKJjaAJ9Uaz8muX/ylk4nF3ypuZSOuYb20
+0KTgawRo8QFFpmFwvOxixA4TlDbCO6WMlIfJeex4ocx87lIvGFC8l/tNYWhkXkr1qWr0DC8ArVU
b0a7tRFK4FT7J27xILyVpkwZcxsSpK1IUPVN6i4sLMKVcHUjg0IE6EQmOFi3q/jRj96XoLq30Cze
Qieey3iHIo2lSDXXbS52+smAj2nlS0GtEb7u38iSnp7IQZmg+8AZuxCPp8PX/dnKgt1ZDGOqCc6O
u1QNUiW2KX3IICmrD1y9yNDUidi0sIQWx/+8f/tUTrrlDzPWOmbdVlfNqbyIpUyNDWmhuDfmYmTp
qtj2BbdMELPbhHRTUH/zV6caLi9n4FL++jJ6nQ483NqV7WWeuWyUMNDt9OU0fz0tUyXKratSUUJH
+gq28tt5vp5vB9fLx27PCbAr69aapy1xe1LHPUnlMkQn6hUtwWArDNKc3gxOuKbG4zmsBnEq2Zh3
cKg2KZBBhz8kXiLFMRuyqSGefgkxxrUMjElBczaHzbelErpW2v4mHeeHF2ctyt+JpmJlIhjmpGhL
0q4tRPaJG/x/IKutBZ1ZxBHJoNRg5qYQZiV0QZ0JcFzG49OG+MbC5KipW9Sd+li1BzpmuWGFdJV7
K1dDd8zZRkKnLKpmk2PBUhSAQ+2HVHBp424Z8f5REWQ0SxSDtJaN2jxNpQg/hMpmyqYpef1O+Iht
tTV4qD4znhsmRGqWCmYpE5s0YCt7ATaZw1QOUHYT5GFmf/HJ7trwKDUyXFYvLz50t3TLRG9dxuQU
013unO8fCiRvLpBFM9QRUZW0UdKvfGjo8PU8oVn8Ck3elaetWtqBnRS+mEbZcp5MoeOr0WfijX8k
jSLTHSV3sk52UCsvv7twKMDN14BLDPvCMfAZfJl+MXoJyigHBUuEF3DF1Ws5UquR/qSW51Ts21Y4
qDxVFEytT4QoWuZFFdi6SMJaPhW360wj4xJFHk9gjXlNmIV3F/ukUgWmcz5HTIcpWk5es7L5HGhT
s3YYqqFBmhTFNEVnSDdKe5lV7jZBPBTdZ2Qyuc6a4+vysciu1drUMF8HD2z8K2/3Kr5mLS1nlh8j
TrDL7XV3HKGeABxio5xKI8D4JH6x8jamCBQN0C6znUYz5NZCzszuQtZ6o+2fMEYPE1DtxfjgSuai
qWVMhb/pG0IYG02sRpgjjQAY/8E0ZsuC/fgaltln3891y/PfySjzwg7zZ7j9NaxFWt2v3PUNjyUp
lKWPgewn+2NZMpAiVhTD5aJOUsxSyQxXK8OVcTiw8srCrA5XKcOZOBwkBUxXrA7XALXNNXdPC9br
FSeJjYe61VGV4XxqECdZYhBi6yS1g6nDqCX6ob7NJ/PDyQG3fug6xpBZZ4iDDOEXlq7fBnjmMag+
gW1Z1MJss94bWSWRxOZaLQJuS3TlFW20yOC1myFYOmqoZekj5mCdvH2Sys+GPIXi0xoJTGBRQ19I
5DT9ZaVBh4l8l4uO2UKhUWQQZVJL0LLHCKBnpi+3hjNZayctoNlwEEmDNGJNqkDGdd1VkGImm7H1
a5YwRGXR8sksm01FGasxbdZgujGhz25wpSU3ueY7d0IAG3a6SN67f7hYE9AriM9kRfidGRJo3EzA
d9P95inrJqEz0hldxQ+WJYXcrokcCR494sBSSmC6kSZgmfe6FMUgu8uXWrQYDKzJezQiNqNMUt7q
u2To5iiqZmB1ssaAR1E9vGMdV2AUI03Cetz2rqB6BhHu4/K+DamrIkYaCUEqtpjHeM0cr3W4/htt
ZHl372qcICjETNfDfMPyV9XZ4liVRXQ9i8Jbjf0yBC/IXVesRkY1b9XIN7Or8pXEKwDopl1EuetP
IQ/WUOY8kxQzVKoVgoUDitYfJMxgzVFXtPMgnEueWNziCStC2Ujvn3LEDMN2388PwRFaJSjXqNgp
cdDAeKRgvSFB/7i5xqPspUG6zP0g04eV0U+htVojQS51+Zny73VUQzzOfoFqwDk7j/NToPOWVyJG
nirVNlXuAlMB0STdUkdqTTVN4Gpe4tgnov/+uD4HYm9ZcACcJoqbrCI0r/svox1bY5nF0KLMidLo
YW8/CZPvWPGB6yeyGvUM8XhljrUw4DgZBDyMj1cnVVtS3yab+t4EwNNeg34Rb3EqXKYTR7WQtZd2
arl4nJRoWCFEpKxlVCZk3LcQqOFMGhGGzaFh18wCXplbS9MO8BreW7VbfrWqEaCF35QXspMIMvbY
/us2nb9cMI/jeJ7Je1tDS7VZPLnOjKAMKYsSeFqcwAUUGcPbtLZ/1cK5aJO61LU5V9pcoRJhmA94
GE3dbS+xWg81ljLvuVD6Qi89jN7ghFYzAOHxIPizt5sDyHRNTqsqtUF63HQFpygz1HWtl3ith0Ca
agHzKwMd1Y7VIB8/8Erkma3wWkrgYWk+W46oqNhK1A/V7SZMkGLVcYgryBtVQXgjBesvF1NUXtZB
RkG6PxiDV435OpXu5Pjp6xp8msEuqsBQIUdYx8B3EtnY5wM+G8L1bZWtREhkNT8XVuFBtMizttFl
USwIyUNylx9fBxqqOUEWkTQuMCcic6SZobZC0fLJKaJFh0/87uHDZWKV+9aJg+EwCuvtq2qgYXhD
lkzPMbWsSlxhUuVuKaKm6GmvcTX1QpvcPVxboqvaKTYD14T4P3+EVkXxvBbp2XZzQbmHDumsXsyj
QTuUY78dRn2pdZV7WEiNMXySyECLmzGSp8rIZ8HLBjdoVmNoLCIJQ/OIyVf7Gr7Nb0SOtb/kSSPx
KTRS+TRJCbsIP19RClW63CGBM/1cqYCRpXvNoFf4hmC5IpkSucYNFBwstMV6sme/O46nZyDxX2G5
kRxjd4D/ML8/HHhrWagMXYFKXCgRwIABn/fngy+iJpIdnS6wFYhHyvVujGlsmH9XyKrY2ui1pzGh
slJ82mQxuTFEsl4OOdzRytDuPs3nV+iP6ZhG4z/be2Hdr+l1vFz3r7noHNgwPeuoFZNGy5FQvnYI
en2fnvECf7UaMkeFgwPHDlk+OockssShg984CD3asseoD7P70A9tKmQcvF8Xo7eydrrA7HfYSkt7
BoaqltgP6ihCc/SOS0T6O+rdw8p9G1hEhzd/cjRSh+kdWhCiXfZVmRozIGrsBkNNDd1lhUapt8v6
EvshGREJSwSi8/BS2MdZyzAOpk+tK4wV29srQywoNgzbmof9GRb0CB2iQCtc3Ij5wVjFIUQPiAKQ
QMKOwyie5XQ4jOxV5OBQ7YnsOXKV95wLIzvV4IXQBxrzsy4k0SWRvcctOGO3W+UeDAyxivrAJCZ0
VW3MwRQpRg5WuuFeGUU+F9xP5freM+NP7P71Qdl9JnJQl2e6Um8UhB+ZlP2+nA7dRyzZeZ9G5S4a
Tr4BA1a+CzNRBGKIc2eK4i4xgB0InGKKb51LdPLjUva5TdFwRmkJR7YSZh6W7Ap1aDcIHHFAa4ez
1Lsto0aphT1K7slxtkNYw/kyPRxdJZTrMjFrcNWBOYNYZtWSrzaf6HSO+w8wDiC4erDzOt8er8po
fUqofZdT3wT8xR7NUc3WDSyHwLuA+BNzrQFmUCOsfmp/ve4fX9Sc1VA2qQgP7tTj0b7UypRkRWTZ
f+apqhTZrlN3xbNL3DDojjz4rkZ3BcPTM1gMM3jiE4Hz8xw6yqxMqlyAZIJY6JkH5aTEGhKrFH0D
41qoYhQ/TBB5p18A1WB/RJ1imZSReJRUqq4750OxMBXIEd0DEck3tBWoS5ergtwrElL2qeKU//9U
Uz+UKWLHtIGyU9Q1QwJg6XxXdPdGCumTdR6CgYdeTPCXXbUwVAX/f/AsDffhT35wH3BwigiWKSaH
28k6K48vRB5PnRDGi6JMahk1LdcW+mnbZ+Cs75zYyJ3Cz+P7uD/++Xa9Kp7VUC9yVwujkahhg9Wu
yHeVikf6lJdboyJkTfJtoPD8z+Pj7XyxyuR/3qxnqlzXOhkTpVPH7MOsnFglDTe6okljXJFveeze
VR3t9UXPLOR5VCelH7rUUsJcPuiqKefRpSwTprqUT5P0K1YGJrQd3CsB910rBxsYcn8IHU74ZioT
kOTm3vyluW9WuQy9ydCB/CaLs324Ke8JC8UlVvM+gWEVqI0Jy7N6RExcm4La6MLzHlWeJzdGi/1B
i9wPLJBMTS5XejOhLb6oWat98/RogpPTowWAehYQrmvWWqhTfrkViqetQnfBb7kvomKG4riu1Vuo
4ieVdK+r+Oj+DZzXn608f2ffQGVlVeLcsz2T8DeThMreaIkiB4rA7q9mfTDWPmgFudLJDX9cRnjb
7jN2aKlotSplTl3lJcJhFYXQpZ6ay3i9RgqjX+c3EvYNQRjOehADHl5NrKv7IoVKDav5tvtQrq5s
uGIW+7xuQpcmpZ7vHjxFOKoUA3G2ogSFo0jhEEnFBPMDxCJqIGX7hjtksieV3D+6fjbZIpwuNp/A
arQiRPeyC+hi7xD8pAsSlA02dBHBj5+YGOg83x4+3H9v/0CdxHbntB6AT0sC0xiyComMBg4cknN8
9/A+HPdvZX4wemCNNw2JA+H28BEMaWru7fFplF4QARyt8hx/htI9xucBezln9sxsm3UbhkM6aR/x
fJtf56fZk10D4C0n+TgMqRJMdnZIbdrE5bvGQtRwDH2ji/VtlTVSBZvxcZP2bis9mMXDTfOGl9s0
NmB8MnDA89UneZ71dsw4UBu3i6kIN7PjcXzeAyXf68OUi6m72VTZ2Vzen9emQJkl4wmp2OZQmzp7
8A/7TG7OrWKxHWUcwlGZ3UlqfqyKiX3kCYex/vKPH/yMgNUWBzb5gfo2Nyk2EIiSNsYgLoenZgp2
euh6dzthQ4x5vKhWu7siZXa3/JkrU6pbcVymZUxG4dZil/BwV5SpFFnxgxPfvY7n55G2OnAyuEyS
ogMqqVIMu7rn2wlziF8UYeqE3msrcW6uU+HquZmohZoQ2RZb3Cn3KX9A47c36+Tixf6nsoaa7QDk
/k1bbt5ZZV/Z0cfiR6xOU5+lyogrRfoBtehhfJzPe2otDeHZx/F02EOHFJhqfsiBbREct6mY2iCK
IkXu6kLsMK1EnE+jnE/8Gupy7x/GfOLEfd+JK8RUzGqzWCehRnzPZy/kY1cpO8A2kDPX3T1wG5/x
rpLP+HC/o62yI3FF0YFJLEi59DXblA4NxzancJVRhoVCylojik7rxC2h+DwFnHWpLmthv9Gn1Oxo
k24vBmlp1NL8OSvzNvHHWREfHkJY/5o1EYWKOWBCCGrlBOPcGfOT9or/EXuTgveLHQr8l1seLbNN
PatrZdcFkHCmGVQ7QxHZvktNhzbFfb1NdkyROj3dElfewDK+QcxzFcKgXedOvBkU5qRVOZd+46pK
8Zz7abz57MX5+qgIC7uQEHg15AC+zgeAErP0UdSba9ZXlXoM8XOHULYeWhZn5JQld8zQyzRpP09Z
F1NznfTtcA0AXVS1fSO/71M20hbh7Xp5On36FmjiL6dihqX7oKirhr86HreUOFNlI6usLrCm5kX5
bamoKcnpTFuseHAX5YIVBNc55MKzzQmdsEcLDcnDq/S5KLsZBQOCCV2ZPg/N9K3FidIL6lLna0ad
yV2NlEpUjJu+l6fCVI9PECgimXeJHVRSOdQi5XiQ0tqorrJ7gAKFWEFNrHrt/Vd+Vt6ialAvtHL8
nfSeylYdSDnDbhBnWJY5N0zTDQvdX2R0LWTrs3lSp3N7aXIb7vU+/BNke+P5DuKRZQqPAnzKjkjR
qLJWsuK61Px2sqSzs7JQUNGOUjRexyJjoUuPeNY1t6MXl2tpYyQilJqF0YtYH20IPmDWBXzZXybl
pgxRc2Ogn+3D2+30eL05ydi/z9PBhQxUrdFyg66JDJBqvFSRtzZ11vQ83Bm982lFs5o+FbRZvjaO
Ch3qeteemS7jri2upqaiF9svH9/dmhDKiw2PvqObm17x2Oijf90gmRX+dvd03r+Ouwn/X1Zt1EyF
4YNaek8kM9715Txfr5BYvT24v8F2stlk5BD7q4dQSq//go7CHiJ3nttPTJLqQ95OrlQdakfc36iK
q+7lw7KyJcBDM33LDxbfSbgr/qpkBiPGGKsWjtnk8hArAJ3DAXOkrGZu3MMIYDtfpKLIQ3wbQWVS
QUpm1OwoA/euqogB3ixV+XVHnc4oLHPjvk6XCxapnJ9vsO68SPEXONrHuXEfAfV5VHaRXXgXX/jM
6eSHbcXh9MWGSeYHYyEQeFHKSh/uOs+78/5tOuTPhruxoKmMfi0n/aiZu4Q6vWyaT6omT+Nqtbwi
UaU4+areqJ12+8M77HB+4HiVkFdE3wyy+B+PkyYBPNbeB830ZfyI2sMVOvnyO6TzmjTBNyISRj4/
5x9GqBm1fPMFse/74005OeYaQPTZEENFXlKdttspwsUzZ118BV/Hw7SH2sb9K371A/zzL/jPu/fp
MM6hLo/KEq9Ka+ued4sdsJTUTZyN+isO83icFVbCvpZdbMlPH09WCZ1d6G0FbNYk2+DeTeN5vP7i
0BoXZTJ1Cv5yuT0+jhfls0YyI9Ma+P6ubEK1aHVINWgzNnk+P0FxsPMmlDksuNbq+znMJ4dyd7I/
ng7r9Fx9JflTSra0v4zvk90X3FnXAmY8fIe/ARW+ypjlkOq1tDyxv747RgmatFY2UHcpnvsDsEKO
2CwSHzcwH4/H+atWBsZxr3iU5OaP57M2gaZKAWL45ttN+nVtqxtBeFnXya3+d2tF498pAxWyxSFV
jo7Xm/32Vf+WUephsWJ1t5L94RAS8Lfj0epMLGfeIkuSA7us0jdV1zt1klMwr8vcP3lyU1cfrwgA
AwYZqEYx1CEuIUyH8TRpQzW8z0mFWZjlXL/bJN0m1f9MyIVXlyP9hXL3JNEE2QnjaWVbGsltQrbk
UiwiKc902j9iKbF7b5T9LlO4ulcIAqGk7i7z7ayQUPWcqDIyZ3krdnf9eNO2o14UNnTZx+O7/dv+
YTrax10dT/IrUPb56/jwZbr+T3Z5d5eX/WH+Cs/b9UXDljf9imZxE/wynTSt1qQ66WbvjDIQB9wj
SdHKUN6uvOwebsCdrggCL0aDEOXQ/5Gbjdu5W5VnUaqD/0NGkjuX3WF2NtKC1mTVSu7xrpOd2BAR
kNNzvxxnl5+Kb/reKpJnqznhX+WH84njhoBQDSHab5g5HvGZvDzObyP0mN1nzBscycehgSWyj3y7
WFtL5df4Sj6e58tld4G6O2WVcVrVgHXtVG16nLVoZ+/JU+hbkE0ilKK9982BMISVL9PFgTzqCGvM
0ewp4yQ8aZ4GDHLTqcWBUdSFpgM4XILtI6bv68t0HZEZby2v58Yu4+lF+xbkar7gmzmOgLzJ8DY4
AejjblXBMIhVh1D2xua6MqGaTahw1OfZ3XdniQwu2iEMcUROcI/bQ0PAzrmJXd6f0xsVVwnmMB2k
daWBJWtHHlXYM2XD2WzaCBS208DKvst4O0Qd8ggtLHKZPDdcJ86P3nB36yhV7Mc+zQdNKzAhi7Sn
UhDWrlzBpD2y9+D9pUsL4ZHpeFFVuRsr3hwQ/6blQvAyXxbXRzn9eJfLWHL2w2yNTWfCQw/DGd7h
3fz0dBmv/0n///9WJJ7tVRU06F+/XUfMZqCJ4Qb/3itTZbAo8GUsarrXEIoMNOzKhGzuL7hXP8OV
mzbMgmmqMqg8KUdu83Xxriq5Ne2driLLK4j4ytqM2B2yLlPKwBUh0ywVeWjYBMGJpjDRj1ARGGUB
PeIf1RtTsm2PGVeUTfcc26lkKSHcZjFdwKvr4fCJmApPQNmeVupe9/iC2oAnF2s/3FahPOG0lOkw
1cu7YiyUAA14e9AloRzEyRHY4t9+/eHvYE/8lY5/i2gykYqox79YtfIq76+d19tVPzPD1CXjFEiI
k8sHwQ7OZ3cRJ0QTXei5UCQsvhSIMffRzuwL9uSDZqtPWcM0bIEovSK3GY+3MyRKfnk8T2+KABk+
2aB97k6HTh21ib1oSNmuHZlhgh0QBfejujv7y8qVLQuhU8S7AgjcfPDZiTVbokthNFQQhBk/9/hD
dzYyd1ceyprNhiLad2+Tu/8KL4UbqWaWMxaiVrnTnF4hgLUi24PcpjordVGKN1hPzI52/ej40xCJ
uUA9WLd21N70Rupy6ijqO7xZ98N1bLZnyjZTmZoRNgJQYxE3CUT48BO7ZsxhY/jbNckan/Z2FCJk
Rc4zfO5V6r8m8mQVlajwwtEjNQZCKy4ZlHwTmZBxlIgzoky7n+3KVHz3twKFuUB2HheXAMrWx/m4
OgBBlnAWEWnk5qDxSDSxFSV+e0fx5EgVzuMTGP+eniK7pXQBcKjmjtz5KJCKDnlDC0NjG1ghccoK
MwfuVhl3K1Y1nGaWvLCfo4kDZDhw0fTsZRNb3BfoCmBLKVYesH97AxaCw3S+Omz8JTdOX5QpeZCE
Rozdg1pX4GZnAghNJGF0swuAOk8l67huAfTy+KERETeREDRIyoJEa6PE+va4/gxIhzjyEhojOwXC
O+IUIrbsYf7mtQQRIeQGaDomZpBtN4OTdydSpBnpCoaiEgeSWuFmayIRrdcLdb9wf5/3b/H46JqU
2Y1qS3ElKFfgNspp7NXtYncbXXoyctwYTxATX1MPfBJwXKbk5VKn8SuIZB5s00SaURxiaGLDtpfp
8DYxpjrQ9beHN6s2wrTOuURSE5uZut0uYns5Vig9vUGsSTB9qHP1DNFFRZkNkzhBPyyxxmQtQDxD
k7oz7ssAFcItQDCLvYSCeya79oKpfdAbZUHMFXQJwaBR3q+k3nYxP6T29VWcB0/bqXAswID8IYh1
VVA6SVcK3T1nCoHNqNlDTSRkxHmGax51tDNdiBVLnZnnYnXqDzkbBv7Munu/ut3sdSpRpNkxYn6J
THh1Lr4trb/Q5BDTti92PL81g9jqknPRRF5UH7/FpywebP75HZgZcc/1RUwVsNRsrKaJDKULcUda
WU+rpDRwgxG4gi5CCJlOKyxvXRe3DbPROvTxvJVmDV4gprcTKvOWTSvf4m7JGPLAKCYumnVQsfOK
uOS0rTjk51OIUyc9PkMR+NU/3KBAN5BENLF/jVcA1OWLapSEsrvYxQKW4/FlzD97Q8pwAapuZGuB
5zlKkl5/BpMzyeECUaHvQqabk628JUV+Svl3q0hpSeITQU6v7I4MzE7pikjYuLxQa7aS4RqDYXIv
j3Aqb0jph80gsyNUQ95EB8iPtXI3GQJdw8y2Msixa0zg2r6o1qPnc/cToegdYw58nS44mmJfNdxj
Yg1l3SycLRuJX1bmw1yBBJVg0nbIV8U2sYGPf7RK4c6tvjDsnMpg7KmmY97oqMQFqgQlXSBoIFaZ
pycg8p/zVqRvCejuEuMNr7uu7dom+10tnzvSoe5nrWt03ttreL3Or9gTJLuYoUiNEjfmrOwDc8wi
XdKjNbSuwc1TzcGGPwNNSNmnlXf+MekqZqyF8yCi5vn+VXPDhmZdqoXZsicXC2BL06ZIg0jhcP9R
0E8pHuRQCdEkXRrt9jBR6IERvfRAp5h1eJmxzY/WRZPJZPyC1zBvDRkp6ox/copLcwSMPnKQf2RL
ab0EfluMM3gaUPcO4RH9Ps+vec3biIffx5dHCod42ty8wq1lkKldhMhileOCr1IhAcS3vxJqyni+
xMcvI8Qp9o+g8R4veQutEfOiiHb6Tpj8nSilwdmxO4GvW17g2ZF3aJv1TOAvpBbWFG43dOJSEjor
SnU49sjokBfkOBY2TW3ZYrZ5BoUYgDqZSu2/TR90/I2MJrho0LbxifQ9N7ykRPvHbgxcBWcvBq21
8uDyQCPCZjqhB6W6+j3fWQZlgN0NTpXgWR+RznpNBBqu2MBRN8SU8nB7/n2yr+Suaooh/yyyjQY1
ZPp66UZHTvk1aey7VETZDcVNkMvuPR8/NMmotHPA7QW/eqpEF+Wu8nezWJ5UxU6KQk9Pu0+7v0mz
ZPkcud4tIKZ4/xBWjb+oG/ymz4c07PqB1lH3q7l4MooXrg8czbmLNCrKoBfPpbe4+aum+Q4dd/UY
b0CMcb7kRTKqZtdxWYlebVQnTAewctxwaHjRNMYKjPgWqZeMMgMYAMNj0mP3XRVfjD68W4/nEeTa
hYJWXJhm4AFDmAhZhLJ75UoQfBA6scje05f8PV0ccCeVTldWeZuaB9o4gMnH/eD2mLdvoV8RPmFa
FNV3TV4cDhzpdLrxcNtKsLkZuL0C7/Jd+NuNo3Aa4PvViotMMkzkM1ToF2IBinXZsvkwgCsL/+Tt
wC5lIdEFdlLq1KnO14zGUie93kFeH2w8IEfOazgjNZz3Zk7v0FPqdv0eGP7/sr/u88IT1QMoGWrS
yEWn/JzodMnYglQ3G4Lk7E5x/pdENGry2LppNaPYtDyExyAsywTMw3z4wDTdPv84lKWMb5v7RKdT
QZQE95otH58qU7cu9o5ZzcuUXcq7+P/C3TNNUs5ciHFV4pueZSbgLpdNr9sheb+ZxRUpyVHJUODm
6HYv3/aSgT5jIAEoEPiGlXkNvggL+OjwO7TjdLBNasKXj/cUaW0ZaQj12GQ8JNbAwW3FGRuO69E8
FqCMKk7wDmgPWJW0cEKANgjJepg2qUG4nfkJ85Jdqdg/O3oEDrjoE4y886Ca3m+GOG4dW6mPZ+Ag
XHcxeCybMR3deQZa33XYc55EjTqS+Rrqo8o0PwupMwvM6/sshwhaYEkT2b8f7rxWoTNlKvvv+de9
TfpJZZoM1Ec9/6I4XuwiYWZPS8/0eY9pSGnjYNJZbd3nFWbBAutI1tB5VIoLVfqzsTfrNMf2hONh
oljqUU3KtUOfemsyuSw92Fh1KbXjXmqsAY1jnPMhqIbDOOCZNm3PLj6EETGzoYaBChleo5hLkKBF
VCKfU+CBdwgAejf+ATt67C5vt/M021eZ3q8XzcHomcnp8ICDj5TXVVPn58BiuFjNW3WJkNaqTu9z
JgFsQWwpQbwEqzidNnWrWMImtlTGS/IMzW6wLaT9Gyo11yCFKAhM9glFuaQwO3gE5IqYd+WQ0k5o
YbtWVe4AD+NRM5G5yYEFaIZJ5hkXRVmLjWIaB6xij93LcYJczPXl9vqgp2q7RfKgKZiZABph/Epx
uM2LbBkCywwoKUMqvsOf8U88wzJs7aucrtgnlPUIVCzQjl2HIeRthAGptuZD25FHYeqIW3KgI4im
uECTtwdCQ6gnALDm7baKAYSi6RfDRFTdx93EfKSoTibIRAOYi4sY+TZyqxZHb5KPNMJBgXw/3t+L
b4CuBzyGhetTMflDqaC8yArykntQPCPuXB587/ObzlVRpO7JpByKvF9vUgrS905yyjYYZrGb9Fpc
mz+vGCKrozU9nVKgFUIY5g1sZt3HzkAU/gtHuQ6l6NpeJjkW8e2mHZT4NlOFdRf5mLZgcqnTwyZI
biUUZN1K481qsvHqRsp7rBIoWQ73+mI+ienm1QZ3SLpYhsOfPSsduVIeBBYMqYip7yvJAq/BRFlz
ydtCCi5lYHPhB663nVex5oVVKQNxKW4qJyuqbSMW3tw3HFWOcEgDe10XPZKq5+N0fVSi33wZXXSp
z8AfcgYCauqdCXuOnHbv9iQBh/hLCALkS9DQAaplbNIszPy6q/KWBcebgBJrm0XMJ6/+khK1wFuv
7E7H3+U2KD8UnnyajcdysKC7TSczdlVeKpgBBB1dTFK47MFMj9dNKm1I3QXEMbFLiu0bMLKXj+Kw
EBorB2Uu9XrWrk0FQtLvUpt3HjsRuChbGcvJ2/vtChj+PX9VOpEo8leVJMpByhSJ7AoZIyzvlCQK
RbZcGdXkAirqOemO9+/kNkx0x0wz2A+aFD0gmKiiLIKO+RkWx2Fi3gAQZrvxXzfoGMdsJ3B91+K1
LAID4wff5A2hILox23AMVIe0E8NddnJhZOTtQxm7LO/zR9XnkgDJKiZiS57fnLJlgjEf5/xLxECC
UKrnu5aO+7N1WJ+mEarU8gR4OAKL1uFyOQovGHfH83qItTEpCKmoU9mCZm3rvDkgQQ95NcxiVO5/
fAs2rH/CIBH0HvF9cgNGSCFBR495EX3tF0K1JS3b8+RuEdbHEZlrQEyTsj7uq/Vcld5xBB4EO+KO
JUs+X8Bn5CUo72sClF6MaLYyDVhijYK5O1gtJ9Fy8Bunb3IO6p2RCPwpVDP79TwDKMIqD0xZOK9c
C/+2LHALHsodLQek1rjVuKmyJZkmEofCRXHbwbRlLw/mTiThT0fNqS5N6k22th71DnXsdHlfs+Hr
Yg0Tgmvz/uwDIRvc567icKz+fjgnZocNr1sn17VIhQWI44qp3wjUM1ljagFkPjLAjAh0y02dSCMp
eKVk+GOlCCFvzzXc2R1CqG2Z7uUZPvqr1ZRoWUuTgEpsHQ8AGVszhAOvL/ndWiQp2F6FCue1x6Tn
ZV9l5Jympuav04nCWLry6sQtY2UFKxnR/LQ6aYl6wPnhgz/9EwAU8iYpT4hiGXy3VpWWt8uT0Nn7
nJtWuNOXtVLc/Mcc7aZImRRO4y8SlYR0OY779/Hiej4oQck4VciF0WmG9eKxrmjeniXCmNkr64TX
sFGLMJ1JXkBnkOdlMwkK9yW5YD2uTYPX/mBnolaD7dd5v6yRAKLqPnR/OO8BqmFP6ZJfUVd+Jnpj
dbF/qtZwdbVJHRlZIFY2nWjmLRCmv6smZp08CNvpxnxLBxyjTJXth5JGdv3zl1WmrShhIHEQLvOS
txrqVI370ug/HzcY/aXE5pGm339h5eAnbPWnFl73fR7RNJ3ebnA6z6ul8g0rvi5jm7x7PaZaaj0P
vbOOKuFkfrFPxc9rMzHpO+V01wG5PHcukwLNGQ/Cd3TMh1qEi9VKlDGwlklR60iJtlqAfRoNTbZu
qDcsJAxDt4bnkSjzdkDOPTxT0tiP59uTMsd4JFjA04rqEAxEHjU8WpPEzQg8h1VNijFZpJx2pKf4
RB6RPbP9Agt7/Trbc7qEtDkc3kr2OhnkdIoRm5Rjl4/TOB4uaykFXv+GY5laCzquB7aTdC+s9HFz
zaGMBRDQI4dZ2C1LLfL4gTT4PXhNvgh/xQQwTWqdPq9/Adp5YDy+rHpxQrzq2KNHZdlYK4hq2rS/
EOOdSHqwqlR5dhmtMF8czFL823L7Rppz9HxKk2lrrU3TJ4O5IbVQ9QqCiJXmQri9DFGvK7FoX30Y
h8mYUoPQ8mJdyGeZdn3E/GDs3FCu0hWKf5DfZkiy5tz5ZqvViG0vy87L5TO5C02r8/ebV7zi23MP
sb4D5EI883JVgqIFL+GuY6fgfM7D5G2BVtcU26pCem72xeCPROevMldFqYUnlpB3C6H4bzjtHP/P
mrGmqjnz72SbSpq5RwmtdKDZ/sg/RG1G8mPcfsb0NIQu9bqI3iQL+Vn8IO+dJ3Or8KU1pPbYnlFl
m8dfL9IevsvP2gfidllXvKVWAMgQRl/Gj4d5fz6sQo3i9oLdThJ0n5zMUyx10k4n0j0WAcGmYkoy
MomHzAdWtxZdJeMXWQR93oNlDwNE28qiVTzhJj+OZNPwzPV3dgucoaIduVVQxHLL9GyU8sRacDQR
IDtZIYSVf/mQXCPDMS13G9POR16bdcKDIcfR5WZksGivPZZNv8g+pmuoVmIoTXMnP0juzwrU8LOH
8/wFqkQO42ytvLeX3eV1D3G2faZNm2tlSXGRGuvf4B4XLJZpd83aintK++XIwl03KVIq9eB4pmvf
4eH5OF1ewF3PJpDdRHr2fRnOD80GxzIUuKYf4IHcn7MNEXA4MnrcuoLTTsFVsAbf9odDzot1Kyri
ENgbc1gOQfFZAM7Oz/PJCpesGvzXbTp/0SZJbhJOMlYikcwepjOJib+S6nSLIW7gECtNo0XBQifa
vnVxSnVMI+JD7kPTzkXG1WnbxxZXyjiy4GF5O8/WPCchA58i10AB59eyc+U4CWVUbbRaSEl1j7rY
tGkdG6YVhYESrH0cn4E/Uuks5U6yj8M14So9cdqLC/SIxQKPTUQydMXq1InwPHqsix61Og268Z2Q
XlLdqc07nrXNYycaObX+uX/b21dgdK+20N/azpVMCQFsZKjUvYPJjodnVZP0pVAD5Er4O/m3+fzT
nDOU6CKwba/CzUQAhH3v1Z82Yod9GF9szTYJHaSEeqrlzLag/lndl0oo7HrQJqdKwFAJeadopPMY
p98dVXdQsSDqquKPKy3j5fEdVF5v1zWd0HVJvRUV6VZhbBqxLBIcesy07WATcAm9lhvomHnbeOxt
ci1rmkQ79CalfuOhU37K9QR2Bgk0O9RWy2TcuHa+fLWYl79s1cPMhojZh/CtgIRoPbZJv7VhNARa
NPensFUU2ka+qo1yoOpVadvUgf5ft8t+98P+yw1ouBg8C8vJNQmNqg1jVm3ff9LG0dRePAwIdFCc
w4l/yP5qghGXyjh9UgaNumNNK2SCtK+3S+2bt2KXdoN8jKvlDgXr1HtQauyT9sakJuUoK9zO6HFi
GqUToxD+w5WYnFcN9iJuDNYl9GJjHq6rG9OnVMFCt9CVe7Wus/0LSF/PK9E70jNMznmprbu7zvNy
dDKQVlXn2cQDZK3etJJuWh9TTF0VIxx36EyYRpQH9Uo0wtwseTbrOL6PR6cLtFm17FZFakG0f5nD
sM34LTccIKrzzx+fNA2pDgQlkl3bXNKVzi3KFxbbLXAQ5+MnrdU4HKOIPM7POJrvposOeT5dR5qJ
HWOL3UQHOTfImjrAo6870iZWSvNwsU7sFfz+ev3mugSDpO3GV208NrsSwdjFioxscbuMmGSZmuST
1hGd5lYLW9/cuQxbH9SObVpES8h6L8oH+8PQpmXE8ywKdr11pF3rXljCVSrh/RlZLfpBKPa2TQRo
ESIIqmej4dCLA5QWyNLI0kcahIFdMaqLS+CP17K6tEZ5vSm5sgxiWX2xYj928aUA3diWa++zdpCl
iGFVC/uR6iTznNckTcydAXkwJTUw8d0dL+N5shL6+4gdaS7/41umo3bsteQbQ/ceroB8MC46epqV
boXwfRm7nJcRhvvt9fhyvb75ht+s4THCz7GsnFVs/4/sHIdBdmfnTXjGw/en6xz63uQD5TAGb04f
k38A0ME2s/B0QE/zS/jHtz1swDX3jOMr27BG55wWcH745+PuYbJm7Ggt28PupPS5D0+lPweyZc+Y
pgYy9KwJMjA7zUlHECu/s7fzZLWD1X6n40duDN8I18hW3/aTeX/YzW8ZeoaB+YBGdmFlfTexEZG1
auxQ+VG4EMX6quP4xAJQVm6O13P2fJmglLGvADZkw4uw+32XJ4ocYiQcV1KGfcRPpytkc+ez50M4
zZlmzriY2oiBqJIW/nOwvumB9OSu/8CylwtKyOF7KBrKx+9ghTVbZjQ04IQ/KN3jESHaMCG+YnyL
4o6k5tWL7CFeqywaYYitip26DKHw8HVsQbXz7Yuz98l34vWiHHgZwhmiQLoeUur6fHUQ0n2A7nbS
UNWma3Pf+OI6tyUQiwvcqtefztPrBGb5/wYdkb+LNdvVWESNcjcCKuAK6sTeBnst0bAHWFEm7A7n
zC9XNGieH3fGZL8pojJh+XZ7sL/C2/f36XL9nqQ5ewxcH8XSKvivYxc3pQc1vgpRTCvU20TOZ7eA
+rld/vzx6/75R0Qug/GPf7J+l9Xiyo6YpLqB9oDuItHg1OaY3TbYeTqA5ODwJBS+4K2T3G1jqE5z
ncay+tgNMsRBYldxGmDl0z5+2sSyhDdvUru2bsr3XfyeyMuEieFi+A/7s0PIWXN95XYb00dZqBpE
LjXygl+wVaByp+XbUokuHe4qB6G6WFGYv9zeCOBw2GXp42CPO6YtIkTeFe3s3o43iAQBHPCC3gjs
wag85W28ulUROcGOEzZtR5VoDwEvgUYvM8TKGYQom8DD8oiNbLHC1G5edr8Kw7QQJOIpNgGq2Zok
FyD5IQMvr5PZ7Yutn+GWeGPJtblzW+XYTeD6TY52IGutmC5SPWPgsggFwUEe9kqSyLegC1E3p1kg
5jceT7tH9VsWbR6CUjpBPwogFjpq6cuW5x2Z8QdvrqvUDUBP1EDKQItQq7uht/MRdEsOX+GmX8ts
S9CH3tLGYwDU3LPVVPoRNMk0JW5jXAns5kWZTyvGqIw8RrD66KFyhrFyqIPYE8qtx81V1tHyI/XU
gtPVzv5Z3ctFUIOy+dgi+K/K5XTTbVK+KvdQ6LXQE6kexrGYBDwWoccokkao6sItR4Y/Fhb87vI2
PtoLv6bF3I7GoTCZ0i0tKIcawPC6srRWZpwLdjC6kC8EkxKBIN9YjQsvvYsJEVoVDNFOWU486CpG
A7y+2CzqMpbsa6n2l7/hQcXprZw4S/5FELu7dSuqK5nXCgfs3irtVAuZJK6YvIdaX1yGMkgdZw+6
qKv4c/nwgSpndzt9Oc1fT8TstSq5LPptoj5fjAk+/0EZo5eKcXBGy09YuuEcB2yMmbXbKdbjX7um
DO8lu9R5A4W7ClARVMeHxRpH58P+ul9zppgPFBgboqXsjBxghQBU8G48n5Xp+ALS4D0W4e3+M9IM
cgt3/fWDi+yhfd4C6wVLr2JQegur8NY2BaLhOcD/XHnz8PMyfk6kAf8n+NRP09E1zNY6eePuVoOM
MPkyP7uZsC2708PlLR/2KYV7Sv4y2mLzK0ZGMpjPIbZZRcnqASec8uTtJtgbQ8oZCMIUt6gupX8Y
qFmdY0FdhvNWqmmSgRIIQjPXDMxEEIhc5M/z4y/8bGg8H4lUqAMjpizwwNAmz5S+OOe3kSGF1nd8
Pn9cwamD9I7u8PY9M34hg+hJHg9Ioni5AgB+fspf5Tq1LntApMguDx/X/TMc0ck+gYglxvN6s/Kn
+LImFeEA0fuTlR9+HxEkPV3s/n0hIwBv6NtVMybgprTRZ/RZRP8bf7MuEP8NBD97spTx+nUER45e
koz2R64096TDK4rQA18Z4Mw0L73kIWMWYIZTB62lDNrFQWObjvCuHUZ8otyL/xja1ecfWRyzDGOy
t44IuNAhdOwuyghNnBUvD4cPEFwdGsrzsIwyXh1nVIQ7t79c5scJO5h76aLb4u6y/fdgrNmVP+2n
Y6kMb+J0I+gijHmaHWOLFil341RxnD7YoxscJPy4jx9Ho/hzazTK8EUYHp5bagS1P1g5joPkPycz
A0+gczEEoheErttR8Z1yVi0G0wqpeykQcWDfu6pqrxFWIrFM2ZTRgSJnjuqx/8PuExR06QM1UmvV
qVcGoj9ARoIJx/z70sk5tUFVfQ+lxFyPAOtDXHrePGNYCbSuCrqPb1BfsHGMTrpKtEI3BloTWFkC
oqrMI7oC2KGv4/NwhfZKp2A3jUFMox5yQ7jHT7FZGTqlrFk5AIxEFAqqn8Tg6FCX4JkjXb40yuOK
P9ImsSfuUDCP9aDAKNpe+sGB2OgNqasxB7ji+DN0vzDMYAQHO9sfV4A+LUuwlrHR8eEGxKFwEl5Z
n3TnppMgTzIbHl9GbFVHjRZczmVW9oRB/ASjBJ4rJLK2XBgjwQPMBT+4iv6dn1ee89fNhgHooGip
Yc68GEgZwkhEX/OZqFlfpyIlcgkrgr7Argsho4CXe9gVmhY3lyqBigl+AF266zEfLG6jizaEhjZM
wdrrb58Tq7TzrkjXLHKMZUpTH0ZQ1Hul3g81tUx10d1lT1mwS8E+yUZdhsi+HuLg0cXB8tvzzdrx
T7cTzi7vBptC5MdDtYj3ssCjOFIvSfWdZZlFRnsNn2xJPpmiju48K8a0u3HBwhp48V0Y/QARhv2j
3aKLNl7RijfR845gMAtXE4xfa4lMz5iXs6Jw/VhxVozp4sMdu/iGKBk6TuPX9R0zpqtkzs53R/JA
jsdDrleTw3HEHatj6uIv//jhr98eR/QU3IsPjTuRYGNUTK1oqSFukwAvPvdEnGj57+toqrHcx3/+
tL++hNkoX/fS1O7dHXf9qmJKGQQBZSA32BA1hs/C1M3yxseU+/u0z0eq4YqxjCgDSEhswHl8Gs+g
Ppi7PCqYh7oWh07VQSm5LBXJqVO2I1zYfxv3B27vwZDfn+Bv0+WSdoSeyKFwpHj48UuT/7KUX1KI
FcIr6A27aMKL3SP3cuQHMmEgHiEJU2jyX7ZxCtH2jV+W+S8r8SVxAuHkVyZbhA/hoe2qxU/W+S+b
8OXgzh617cX5VUWRz+8PlYgP0on/6Os0rfvxjLdErUVpmQD6uGDZ8qatF0p6Kp/H6F45BPmdLn8F
0tsfc/rOfRrz7HDjAwnTdIU8h8NhKV834esq4hdPgNpGbYl2RV5ltuyRKei1I5pLir8xF9A9BB65
ooxXicw7vZ5WBcNG/OxUwV/f9SGMiJZWi2UpHzLAQQSIgo3n6ip1HFvLcGwBs2CoE4Svzj3eFNRE
HVEHEEboyDtXw6R5u8gIL91LVQrvB8xnGlZkKCSsrl6YWI97TKafAGf/bm21Mh8wNSyhDsU6i5w3
efu/wgPp2oz+ZQXYGBSAxHG5VAFa5twRzFttHbNIK+y8QGCD+dW5TfM1hI7+ugJbaLvUWyLtSGd5
/Qx/VLztIVJJLPSUHe1Xe5vGFfyW74zrvkaUKxEgnc/7j5AR9cbfBRoM3Y7WvXq292V0fDrZdZpa
HKaXCwxGnVx1L55D/vH2TNZhcd62OI/2ygefNYraP10kOC9g3GiOczqPb1aYMHQ+vULqiAb2mMjY
8Rhydo5r5PpibbWrdjFCDeBC+P65f987NA+WeV2OWtBqYEGrOnq5KPxrgjaUKeAOGC2/gsb6ef7K
DRd3978bkQ/S6WdVH8PzSjlFFONIxhJHyn84xA/7gFYC0rdL/psumiy0m3Evfj2P43/sj1+g3eMq
oLgbJOCPdobQ/XTUpPaUJFEhFR95UJ41NKadVUAZSiXLf7EGTZ60533Emp03vbTTuSi19JwLTrhP
M8trOQ4PjuG2w/wK18K6Na9vu0kNeCGqUUpsaC2NCRVXvuKIfpwJjsen+BeBEsHnu4iJ8HV6BKae
yxfY39fpMgZLzPpOVv6g8Wc+1uE81iGVJfzPH/7+i/cIz7tvr8dopuT1VJlKXf1qDdTgE3jVCS/F
y/59XHt1WpbwLiQME4djOXfl+1rmu1ou5//xMh/HX1WgZMNszxg9ubwdp+vKh5WceMmEQPnK3E1X
AzHq4f62l3LYpIJIVvgeX0AZ5g2lOAxEcnvirHL1tAwzrwTFQpXmQj5+AWftl5dxdFLy/OjcN/iL
3dczoDHO6ZcM69AjdQ/4clXFdvhAtUA4ErMnAiey2lOnXDQfoqFDMQkbG1wAIEDys82NWC14AvvE
iLu3Kb9axs7JrmocAGdjH2dKomcnwvr2NLHOyO68yMZb60lxjnA+nLEwZE/tOIfx8WjfH5dLcpsN
B5AfSNKsNgF6jscWmBhpg5UJxYWBn0DkgHc7vCuVPZY0/R45+bhtHZ0UR9IUUVQuH68P81HJL6Dk
SZYt8o+CaRw6vuTPt/2UnGDQJD+YZK8nDu/Fnpb5LSlSvFHy8/zHlfy4WRxG3Nn8EL2QUQJcYZQ7
HsvDx0lhXC8ZI2AVe/GGNTDJ2KwLFi1OylooLjznP6KzSrHYmiI9UO1wgNjAD/s3F4j00AtoXaAY
7z5tF/D07jZ4f/NvFP7BL4OlF4JCa48zxg/IF6l8CM4sKjf+/PH9Qfm6jl8TEbWLY5Br4WgjsA0F
GsgHh6lfrQQsGE6P2RyjDyrj/mHsnvvQeaSRrLnzFoRrHxTKhS8rfqo1bONxVOi5haYdx10WPDOw
Knb/gBNUN58+gHYiSiA4iSxb1uHRPytgO2aoN13Q+wkrGf9MFpt+cL00ZykhJOUJJRMRko/52BBz
3Fk51OP+7eqmJIGWeS+LAQpNzJtbz/17ILB/9aR0rogIhZSXThD4ClwfOCsllcJxSEFgZXzIBStv
F1cLm3XG3HgRGVVDorru29SILHh5VlBNjWGJHoQS9onRMKSljxNhRxwEIHYSkqunay4d6oZhAKRY
JpSYzIoX7QarBaSqWhgd6zu9wLUVbDJCFNYkIILuRGTAc1z8qGQFu94kY0yQ/UdU9MMIFj5ewxho
eh2hfPw5n8FuRaqQTAdc0/QuoIzAcbAJ5Bs9Ku+b/x8GhHLpecSkaN1Q8UZ2wp+mADjgBnd7UUFu
n499yGjnb3mXgg0vQ2oOBerbaHgirxNALALkbVNIrU9Vfh7H0zO0G4vns0daBcX3NykdJ0Muoi5a
eZpYMWqPcIXyvyJsDmQIzj3vp0ZtW0fgFwVHKJZ0wXZy9oTB68aanTzbACvXY66J1bo/QVXbmbLv
u/f9edIc35a/3E0Iu9DX0DU85Kp9eHjHqyd9vAMO9Ws+RryIOHXJ5xTxrE/z+ev+rBW3VwKzTeDH
P1mZcC+MA+JPB0xDg6i45z4Pvmoj0q+gckVWqirhkI7q213G7GAsnML4zN32EeDTh55ZY9z83GJ6
D3m/CmpBiOZyjLPnp2NEGS7h9Fz0EzktdnSvsM1XfhqyENew6gWMdvkMWX4eTLVxfJvvBbzzCGna
Izw7ewT6yfFcW4x+89WtLCumLiGk2VO6LQaaXWjvvLcK4gJURmMesQFPADEElb7rLhHRWl0zzbcL
qIm/7y/X72B+P68NVYShmBFKlR75C4ffUtDTT6Ouggy+uSogN4wyQB8HiJ194j5cvmS6GLip1+Fr
rFcvE1/vXueLtvoqTgBEvxUb+YsL24e9/EWfjonT6cNusGTC4+3s66OULenieRD0KWNVYehhLWnZ
sUorFj31rttvWAr3GxpoSj14n8oyhhi5s+HJ3/BpXx0+VZik4YBuZQypXoSbnX31qvhKMZjxt9fj
JcbeIzArVLTsRhXc5NiyZL065fj+5zj7qkjntE8X+7qekBzE1fTt9kfk90ifM/baJk+j8x4cMKq4
B+H8aI9n9xWqmn/Sum+4JF4bxgGnmMhsAEnx7z//fesgHkHWuYhb45GW8/kwnfYQHw81X2u5BhzP
Y8I8WIQsouv+fP13SEHb3f/H6fjxHy/j6af98/i/nSmnLLLjmxU7LVhVvv+AsM54fp2sNYFQztPk
WAhirSlRGikT9h5RzF3TWdzwQc1/2MedY+U09s6fgBH+6ioHlYWZeHpdMIwC476CZnSfy3OrQsPI
xW64vj4oDNqxtfHY0OtfLmZ1Nzq2jXXIYtJnjkXPzUIZYohziAgnMPyz7GF4DuyXIzHy6/7b9Hp7
3eU6U7pVxzNw0aDgw6CtiJ2yX2ef8/ymTKKOd1FEae+E1I49f81hwFEeyziS48AtMkdLimbb5rZR
6bCk7CMFYL3UKZanW2YpRqEU84qkt4XQUyGoP795jfC3+fxvWMPwk3pcHRPSNvg49ypY2VymTUBY
/OaubF7fiB8uPaDUXvLTfHt+WSFLcrvAxLSJjFdM1nykel3Y6jBUExGQdwKizGVIqa5PKM2WCWnH
qiaCIIZKgUmluMfVdOLqkHhk9btyuDU7XCyarLgG2XZPeiO0ic8d+WPSDQe3nkpq5kFMwloks/Lr
pTgYcoK+Ul3acb6Ma7vZx91EeMqQuSOf2lim3ED+je/e7fEcynRqqZwLf3MwnOMcsdspSzfnhI2f
a7dFI66+Vq2UOTKN/S1W2LLcCbNnI1KECoMLCFr/dVM0Ud+Kky6blQfj02YNk2PeKjG/aWtaXFqb
fsJkbVo7/Tvn46ybnDV757Gx8cqrWypDNWJSBAwmM/ozc+riQOjPcqTJYjqQDMO92lQkjYNHAQYz
qaNS+1O+M5c7wl6qonZhk33iBnelMK34u71NLTaDeL2g1I4iWH/yTsGPvxD+ehXoZEyVhJtioVtI
gwb2mQCoW6H1GGTVR+fZbFwylRW3Y7E/NN9GbGvW92WIsYrj3r07hHQpqxDpwUj4pOEqHRkSV3KW
fZJQgwU3HSPYdBjHpycoOlZim21qi+S208yQUWplx1mNtokze37MtPjCPW1SnA/uRfL2D6ufV+lM
+yFJnvgj1a45zhUf89MhWlhoWMbqS+wHHEvhAmIk1pznhzELxqo2ApYxMkaIEUhWZyOHOBAj5S+R
qA4Hajrrsze9O5vd5dGqkfM0ZwAkbpxakPuT2ZwZp1LGWfAi1akAK67s4hgLPbNJfsQkfXTY8Zgb
DT+icWV3ZSFreSmBAuf28AGWqO/DrtMz4CEWkiVtuJOFsy5MrGEIA9aJpXkMyQamMF/SgPX0Q2jv
gGHoHzEKDckmoBt0BW7qNjGKcq58/dQcgsa+wl51KrPqZbsmk7sxeS5fN06SbS8/I03aTZI8MCPt
RtmlShAn1t39jkP+Zu0Od6Lov64TO+Ryphc9R+rWVkluer/f68FS97mRbflSCs5l5laOvRR19x40
BAA7FwMmHuE81g9LTpKhZV/S8TR9C7iaCJFYDdsW9YKEt/dvkn3yr0DKuQajHwrGBxptSki+/n06
feFZd99cdYVnAF/aPtn4E4ot51Pe8kaUq0m1u411mg6B5xBv2YXhQJ2Az9I7QHMAS6TMf1qmgKp2
L5/tyw2NL0GGP3b7AxWQun7IbmEquAvLc02q5zCb1+5hfIJCIezcnfUVcZ6VaPtKHJV8m5e4YwAP
WLlCFJKX2/zwEYvJipRXtwHXsLoLpZx6yQJ09j+db+dHjcYZhaxL9QNWVx9Wjkyyn9iKTnYtLqu7
Q1v+1Nresq7OMbTIBsx/2aRaGIMOGSES5YFE+Z2PpxqJAWgRjzNAo4gM+qLMvhd3i6x8IEJ0xOFh
Kx7n20kZJu4quEiEvwY8zoW0YX4VbP84gOYyH60LC5y3yIitsTfhMJW8jH1S2/joHmqd/GpaobnA
0fcxA4Uho18gMHx5K3jiARTmEvBQMKESYhemlMnGKhavWVd+yQjnnnTfQDtbQtbG8nlvGtw/pAH5
prxVg6zKW5ZGsyKVRcZ1zRUuZWHakultOpOrHmti1fpOBs7C14tsIcQGf0dBmoNSSJkFfWUKM09W
aEHTw82B+MoaeqrrKlGw1vaL4i4nNwqOq2O44JhN87aC4lLzorvIDbU4rsAmiorQbr/delkqop+n
aVOFhji2i2Hs9m/ThorFvuceexP7mIHp5vmWflX6l/Qc1BuD9aLYLV/eluRNgbv4gz0ewZpo/xmM
QFDBGtdfx2gSo8OHX6/lqvHzRgJP69Cah4EGVqNZfZvsg4HQq/kjtA5xLI27B6SFXblvZZsC3336
fvVtVDCMyC9Znq9k/pAmqE8B1iOMj6JGQJF1U2q5WykBA0M47u7qH/JYxwXFZ2zZ4syusFEx5Pcw
vuzfJwcufJ1vkEeBXgF5YEmZqoCNO28Xe3rcQ1wJSvjyZE9lgnMoku9vPkg+ndggJdRgiz4a4/FI
/czX+M+QVY+BnivGjQci8rM90U1F3AYL4SqJCSeh3Z/BIn6cDtWubdCDO78pjETDIHkxOZj7u/0K
IdHQi489hn8+/vK21z6LAHKWGw+UHBtUSVPUDO0f2iycs+2J8ZuofjB5UbCt32XRd/hlKYmXmvut
ble3uikKsVvkD1rD4IO65YEoUfte1kh2Ps5nZVAjpcCw9nmbKeSqiIbDgaINc/3zfJjUg4jyjP8X
eOcSOu80rxT/stD7MkQRm0z50VyUauUlZ5TSmL5vFhhvCn3kVV98Q/vYcmk6P96O+zOSZF/P44o9
0dWLuHmI2+e5tYc6lbAJKRr3ECj2lawGY2b4P5ChjCswIP2levfL1SjtcxZV7RRhtR9RKxqVEN8N
ITmVfFaLd1rZIq7oA0RArAFol+nKGDCE2lsHHD8oIzD4ZxVAGeiQAObTPrKO5T6fa8QqowjqBUwS
lWu6AIpzy8nDoYG+5efTRoAsQCsqgsjS7uwvGtgGB4gQX/ie+NjfXSjvxf2/FeZTXFEE1/re0Yz9
6X9P49e8HSVJ2xh1yQ9gJy9MToabX2G97pn+jeLshuAtsZUnp2RqEo3hho0BNWuvt1fFdO178WRR
KFcsQvmYqdZosModyPZyciNUUjkbNgK128QqImWE+M7DqTYDGwGrppRPjazU68JFoQms5FNw/ytB
nEgUUe576oCKFxb7OSMfrTJWITbD8KVAEbN1y06PWChgRV4tq+s6sSm+TTqOBH3AYI0Ky28V9ZCj
Bsc8gblbmrKUuLWsl5yUDEfYhvGXtWvSyuUkhBSS+/sJEr0nz+a8ssA+Wk3geHUp4X3dn7/c3pQx
amH0iok9gJWzP39oxHZukHjs8KCSTX5/7GdXwGbV7/i+zxXMurOLl9rnDF34D3A/+9No/Zbjx8/j
8wWMj/HwK2Co/jadx3+oBDWmbnMETn/fP4xHrgWP8BcIdDnPR2WitRQTN6LroYBDKJ9WKep617ht
7dMypbY2mAt4MWMs0m/C//EYNiDIBw8D2H+mkwO8vwNh2YkYkyG0ctWIPVn1nSMEgsaCLNT4+naM
TFuumxsv4fhPLO37lq8MibUqZawvwf/eJ9lxsj5q4RLA33KjNWE0BkfC1sFnTABiF4Gso1VE1wEn
FJumugmhfsDCQ1pvmOKKxeFt97JaAAw8qTEU4eYrerwbV8ocm+f216hP3OeVrCki2/rjMasx8atY
iQRagBy/UPerfMhqhtpQwoRL/E5j2HIfx51iBY9hp5QPo02GtJXucRDCuAtQFeX82eSjc7ZeluQ+
ZiVsRST2jz4Q2fBXujbaPjSihM0XUZC8+QGcSLqOW6M2sUVVWb2o4f7EvNj9aMKFTVyxHJKhiKEQ
GARfukIQw82363F6BxSbX+WKZzCUQon4thy/zxDudBXLmGDN5rlcMUK5pLA0PgT8b9fr28+8hfhe
YYlrOTNutJokbRrSECh9QFvWRrqqQj8CSNrtrz/Akf1yPU+P+fhcZ3KEzBhX+24+LtJDWEZGwYwD
ckGgYpuP7p8Vy6oRJAUmpOfiiNvHqgVRQcw/nagVRjCEptWABGsmXsXiDGhaXOQREkYSDQ7/taD2
1xiRGQd21YWo1+IZvmLD2zHxKCtvcH//Brvz/M6DdjyU9D+m60u+Yt3I0G+Uqds18DWhUbAC/ewY
yws+SAGLYvJxlipF8eYsK7r542G6aiX3fc+7OYcj/To+2E0GCdsErjQ+Ie+Z/etCBL9elRhXIZu4
JXJEntSjzN/sRjb47f+LpY4/A5/DOEAhE61OYB+O+9OXXXw08w3YKtlsoadGz1ZGwepydRkPH7u/
/OMHBSwbxbMBdd605V0rU8hn+17KWjqm66RJn25t4eksXAso5ciGuk7lYWN64jg+7x8/XOhX6YUY
jwxkh/hugI16q+h2VS27Ubidnh5Bs4GiXEVbN5JMlcJflJ06zK+Ag1jDW7NkN1acFjWzbgME0RsZ
AZN2Udg0OOw5kuJxEsr59DQ9387q7rA27SzduTj1E/W9zh+2lB26WcT3pZuQuBaTJJ6OzF6neefJ
ZFyGm5jE1IwnUzYMme4/xR465/F8U9SVWajtBSk6IACm48Vh/5VMOwP/tWFzeGdSBCOcp4PG29Mv
urMUoS0iQMMcI9VKW/K+SWYg7ePR5R+PBRPtXTvhA9D0TY8KaSCyDhUpNhV4tsq8SVCJx0Kk7f4q
Akfz8faapwFiNReYzqkXDU3uGz/nz5KxrTtzNdeZ3RMJ5c+iSwF1rLWChiZyEYFe2qs9e4a2lSR2
VYhb3te8AJkdPnLXeXc7OV4NYD7Kx6RcXQ3nlUM2wCH2ucZLeTk/7r5ae8jep9sJu+eEm6+/OXbw
KkN2tLijAHl4UlhsB5ETNxscZpTKTsby3c2UvWa+zufjwb5W+y95644pGjBUDAENYw+z6ZA3JDjp
fsObpops/v7dqpqVllJ918vXkmhBJ+ATQp6wvDXTyWvud3BylwzckpdRhSUsQNLl0kx26aL8HsZL
2kSUothBZmRqwcme3QlkZI/dsC4v8/n6b9a+UppgtSmKjn+cpwQnICGx5vgvXUIuS41Zm0isiU1H
DEVjnavsPSysVny08g/mzVnpIGSYEYoxgeW7aS8gNBZWG+5WoiLNm+QI/n/dvwXj0V1wAntCBmON
+9RVhxWJixncBsVgatMGU+TCdC3Bd9icm2oqV4wwfttjvpl1fXCFHGUebNYKlV0tydT+UzH4h7ZJ
/XrE7djzd7CuPGCnSN3R+OJEZE7eaCyT7QWC4AWyo/m0ysfad0ndHUOrAVjrzZLs3vQLX8ptrGud
iv9927Z9Oyj07K3onEP6980+eD9Q1zj3liAoLF8a0eJbwgjisTaVMlZWanfk7dr/mV7tLtn3GYJv
e9fy62t+TMOaDbnTX9AI+Krfy+Oc78Zux4n4BFYwbVXEdA7oAgx7KMtrZS/4VtaOLupj9a6BOGAV
B4xX3PrRPyA/zOG7X36BZjEXNznqwxmIFR0W/lv+ZPs21Zfo+Tg/gJS+IQJWLXJqGQGtb5BkxKJB
THxzQewuoyyWke4h03pJ7qQ1hn6lsyQ6qNWOUd678LyZpHlpUg54FeMQu28vyqFWi+5NguMBgwqk
rq0d4P6kLJGNVd/tle9I5wiSYaEnhVfQCmyb4rqj0fzBkR0Zgi/j43jItuF0C44oG2d98WEpAgpx
FHwXdCYVHK+NiwYEb9fdbSACP0dq54yoGZVRMdSjIwdiEViwSNCc5UAVOEwAy7wMD1FcGEuf1Upf
JsjuWMV9/WmeTo4Sa/z7/iPHcNQyywEbsFWh7IiL8Xj93ictFeIJJ8nFHeaJUYwsiuSUZ7plvSyl
PvFYYGr7tBKfc0caJQ+v//2RZn0Kdw9Yh5IC62863rJmxTnDI+tqQR8pda27llTNczsflZlEck5W
qCuEXdkG9pyVTeyjBf4paOiVnnRdI5k4S6Gk3n0vqvOEVehrZ1uVibPdH1xjvL/7igagjp4eJ2uP
vEzK7rZGdAGkJ/XP+/P3p6eZQpROsWidOJ390EkK4y5GYz1YTzsh306rkBUb4VGdv9zetqm1OM6A
9nOVe01XcHvu1WNQxBj499eSRT3eAJGgTqxsZP+bJvEoTNipOHAZKm+CEa0SZX/fnGa0hzg9Tdoh
DqV8TxPXRG805e4LG6UNahsmsvMzWRHygsllbH/8d07xGOyscHeu8y/ObvBMxZS6O4xP02n8n/mw
VA8eL1nijWDvvf8RDPX842n5G19zqSsY25M2N0KIIPgTkbpPhLC7jPlhmjBM3YX8nlfrrttCGNBN
65+XHUfN+h3K/0QffgLPv8nsQtjqDav3wZmG+DtWdjY/tzru4hBEXi6f/im5+PCL9gocD9mf6eNh
cQ7yzdKm70VcQ90EfGh+8PxA7KBi1AKRbaCN5vP0PGWe1Z6VSjaCjWGztG+7UUP8jdhAL/8bnxi6
Y9Pvl0ZB+iZcVgR/EIJPEcT1DckPaKLU1yFjsUGM8vsZrz86rv2m/dQVUyWOSBqdYUBxqbadTyel
s9umRraJVSsVdZOc8+L0t826lVJFNSoBfC6yTSfaFsXsi84LBCupu9IF+k3cBPcAzhrw6VdAV+Qa
yzgvgRvUIcqDRhYyBGBUcX7bWVvpwW7Bl5zIu8e+TT2yEHf6G5h8v4TeMjtuqwYTc1OLQ+bA1a6r
sf0J6widP36hutY/+WKmRVxDMQ4aEamitPh4acqdC2ooE+oLYfA2TdKjcXz/8/XFm7+KY1EpznnC
1Z9P+QrHloVYF6sjD5DLoCJ5zNmpA4e6w/Kg0UvJofHb+HjDW6JxmzrBa1O+LgWNQwhuxajrpIvb
ZgxgHhKMFBv5aLfbtjLZEMAaVLezb2JBVhbjaNNbOgR0CLYJKKFSlhGqagzI7mPZXYKcK1qvi71b
U5hYmBWr3JSlbFMhB0ovTRlNNoagd2R/nR92D9dZaffeRuUzVJG68vIyf/1hPuyPf5n2wA1gD+4A
JXgfK1wLTq5ky3cjlkbW2+N5vlBVE0Z5tUBqn4qiOMmH/9aOAFCIKAAQMVZmxyTWUdcWsc1ehJpp
MRTPRFB4lskmqSBQBnQBj7vPmlsjeMFJAOosL/Crj1MvvG1fj2bPf/d2ej6Omli3KQWViRtebg9r
GpTHICJUm5PrHlbjXVWqSYnTmXY6B6aIb+d3hOc+Pyqbw1qWdMgKO2jROGVe8fnDvp11fK6BcNiB
p/YXX82tPNW9CIS2vWDkuJ73SuCh6OIGo9PR37vjN+wdpGcATMGelQjCuY+eKvcp7gcok1Z0LNa6
yNgf71OPRy5H4iNOW22Kom9E8x4ziA1eT+EUXSEsM9LR2MxmUzPnthHplbKTtwovk2QtUVTFIlVT
51M1z1qipk31p76PfSny36WiZ2uP8pruauPysN4y6OR/fD39RBf9L6OzccAXRjNubdCevfRFYBml
xX772BYu74SR1GT33aNykJbsMI5vLmmmHMUgLYCSc3w6TfQ4a8HVRbsko+XJlOc1ahIIQMpNCpmo
02cTUcnAKMujnOYt+adiuOuhZ4f56Xh73k3azWV5K6akT4E8hZ40ls53elsBqrg9Zzea86P7MMUj
UEZvkystCE3Aly0Jujgh5McqMxlORQxlulXG6HGE6/ymfN6IXI40iJcQQv05KFv2RIfgUs4aWjPz
OzaaCRMDT/jP8+Hjv+8Fy9e7Fxvv6p+c2wnceHAC015JZVVVKvTvm9IedncOlSKitVh3WX0GeKDo
0k7E/6Wg3evBTQowbiGyfza+yPRhgsbfwgNRJmbEI92s5OWVF7ZPqaz7DEepqCuZ8KUHf38Elpnb
yQWslEwNz7FEarQLtW9m3jR4986IXnkCjWH2XSSeuffPV0HxbouKVKgKyP+pZOcXrNhBqnyHhVvx
FYu+kjYaOa6n+fQB3FG7y3EOZfCgmjWdzyz8yGUYNNGyVmM9K1vW0lba4p25uaqOSLxI8Mc+HVzy
ZoBdtXUEgGhuNz2fZjWk0DQiMNe0W/KHiiJJNnkMM6Q9AFF0cDYfu/hEgtkUTFn12Ai4Xw8gKTtQ
iRMjz34+v1nZiU3j8g1L3LoHYVd5agBSxkBD5AF8a6RG1rtiXG4VAtG7dWThKitb3y16tNd80L9Z
qUSfDXgQ9oDOAeTs+zR+zZLCDiwVR0UQPhPparkVAJ4ruqlTE3IxGgeQpvsLe7aha7BPNy9YIgnf
thoxhRMsZZkLyUIEXqOcZnHXrKAB2WGJ924+T79Dj+ojmWjAFAKVZFfo6jBe4OymM9iV7l/nJ9dK
zGq/0vm9yrd+Nyn06z8vfxnfp8fxp+nbePwZXLB804w+Rdxj79lLyDnmSQZNqivEN6JK8FXFoM0Y
ZD9POuJEideEmQj2CED1FywEnF9f55M+Vm8ker9uFxUuQZe59mL28qlFYSHTYJhqiBFzbDh+uGHu
C/9MMRA4z1IZs5e0uQ0v9bjcHnwfHB/f1yy1gQVkQqG2CduHFMJAFE9Owc8aZzyj88VexVRiOM/H
cc+P09q39LLmSw1bMRQRodKCPEjdsQwjuF5Z24Ibs45Fi1BuCI8vOJevVvGoxPNNJYofSdnl71+T
v38LBuXivyI/P2OddWj4vaLTFyh6CsGyXjGx2ASoDewrfsxjGbGfbCuR9UQp9vRELCtYWUndmoBY
/3SgKSuFtXWCY1MKZs72GZg1GshWIwcAr/3HABtU5+xv9uFC+UcuB+LKcaKS7QLdS5wuuVI4prdL
A6TiaX+85PtJ98ncFo7kKJ0V/AF+X6fSV4FYytpNlxEKR05wBu+KJcYQ0XV0ZX2Foav0xQqolfjF
MMhgVt3e741vRu63iP4+v8hkFEseIT39WjZyYGZxGZ3Bx+Pe3iRk+v7XbTp/ueSXFo3fqgqOzmWk
Olvg8PBsb560J7vfLC5dxX4kF0bGrjYyd5QI3FluIr/gWfvOLEJ6BC94G49Ha3AqWa2C+XkMaYld
77FsHpKbeB4qTa2bfC1OwpPzhJPIH0ErYb1VVrq0XRgYoNtEmtyHDC0cflFJhGOflEFHDpkXwF7m
4pr7QfKXoBThm8rESlBNw9i9lmFSfnu8qK0pmWTmjt2bvC86sFARpNrJYcT+lZxCwDo82KjGWs2A
aiTNoCyqTCVskyqBuo2E8rX86UiQDN8oEKa1XRrklFg98HR6Gc/TdYtkBu76hUscS7tcpdqkko63
0eYuJAlEYjpr4iNvXNnmd9rZV/oeN8nVrYjD8UhzVqZpUiHJlGLQH2Se8aiCXl4xF/I3x8gXp9yw
XGWNi0BWp7+D26bYySqvkpPK/+nwzz1UwqLgYe2e8jgO6zeS7HBgTVjXlUM2MQrjkXmj2yI88hdr
9qDd5uWo4eUKBi9BFCb7cRSfVY3ZpIAFaQNRfahYehFVb/25+wLO3UoOg8WTsRl277smOKfAJzFU
Pvt6wSGyJJwhoQSyfiDwUChRTKr3wo9QEQ0BlR/2b5DjwX/+HnutaaGxVlC/hGmd5nUHt6iSJcPu
yYN64a8v01XvI9HVVaqdpic3YLXsfov9a4wtKrLMl3Unm1a5Yb+zuu36M+xyCM25X7j/e3D0kSUO
KSbzMST0bCrWo30INp8vUVWpibGhbyF7Azuj5WF/mR6V34zdnLFRq/voBXCul08EHN1YrDlxx3rb
BRKV/D7XogWUd4hChx1kiXIJQr2JWRM7gWEcoFg2EM3dLJxFbKaGjQi6xSxeIAaWb0DVGNGnrgyB
nxlUxLOXPOf35DmuUZ/Htlq8x3ZYhh9jurxCEjDffK4uZWerfrEk1+OZYlH5lTEC2DaAkN2F4j2M
Q0pspfMLzqyVzbI8WHV/+Lhk1RZ67fFOgmdU+6zyo0tuO/4GrX0qrkj0LStFO1bgutpPp/C6v0Ar
ipX+iTixRqyICh7CXiOt6+5ZE6BBbnOrHdZuf/k4PebHau44e6Mu+c7ZjoAyno+H77LhF1zVIKU6
eTWJ3XPTDY1N0hjDHoSYY7oEeaa+Za5GXBiGKkyCLWmTau9TN+PutgIT52F/PqxdWHb3ow0Sg33W
PIDIqj3CiypCcRhmCjnJialvYGv33ewhJaN0NaxEY0DRVyZScuTzZzgn1lzRUU8v9eIKygxPvRZS
RA41563VFHPL+vPF7Eroba7Lby8uwvJSnccskyPOOyobhiFYHIgTvgvdcO2dxjMp5ZDdvQBbVcoa
t57z21rHywkajfpmgKEq0vXK4Vap3qoLuSXCyfwgUZmi42XkIBgmw605zSuH1fSiV6rP96JeR3QL
lZGrGqaVrRN94Cf3eOY3l2mqIphGbiU4m3AJVf/KtYqTmr3MPKAbT50/NDgkdYd8ms6XKyYpnqZv
aw11+j7ZQTCmxR/n+cs0/vXk+vRuyI13MhnQ5Li1tNAvGvPJREeQp5dxf8iTBw0p6r/p8td/3fbH
mCcm7/hPavR0iIGmBfkP133gGv4K2ce//OOHnzBLmp9cneJZFDVrhL3wSLE8iymjRG1C0Yt3eGA+
+BVbeJatq/JtIQw98TXLgipfteEr5Lgla5/xX7zsJ6WvUSfzpHUAi5MCffg4OSbMlfb1aASkePFY
4y2WZ75crkqTxq5aUDT1KZ5QGPkrGgWQz4WmUXrreOyKJ912sqOcCvjLCgVVx2jCQMB9aAvjRn92
Idfz+PTdSmORIYaXF/L8o7/0RJ//79fpeMHPb6fz+AxJ03NAMKvtmF3n9tjkHN/rgQTq8wOxruu0
ab69XIr40e7B7u223uJ1wURIRNH2JG5nhQmZbR2L7dvXLavBFThL4B9anISD2Lj8TmimYZ0RbasG
VqFjOkE8wOjcv8M/5hWKFHwqujyOz8g+50g+V/PJRZGioqW2fHZbkIt8tieGHQa+XXcPt+dd2Zd1
Ph/PqbRj9si1egOX4xV59/fPeTI4z+1iZGRyydq7+6bwyRnZVdQnhN6Ok5U24OZLuSsDA8UaFvKD
Tl6Agnv878KOjGGE66zq0F+N23lCKMz+6cn1UX34sLrr4vYrS9hapDqEOgDECsFxX3SpkGKEYVz+
/PHr/vlHByW00zvtVFQHQ4fwJs/BQnm3sjmff7k9KLHFMkUKL4Kc671/W6414yFKapkcLQBeLtkj
mfy6f//575/C3bTMGIFAV2BBX0Jh7XN3w+SQvWCjr7c/5AnrO94Vlhsmr67n9VYcY8fJHxdNH10R
8rw7jV8XrbN3r6qdwKxBRJV7fynWm55c80et0g/5kXvJLN0smTavAAPVOu0MDFa+WKOQ8e8gdA0y
hgMURZt/4chorgcyC9ykiqJRPmnjJ0WgFSlMnf+EIuz4SWx5l2s14X4lvuGoNFv6lVL5lUr8irfb
b69voDS+C2KaH4HeRBwhRq0KUyk/WsdPqojX2iNJtYbEcV/34ms6zD/98t333yOcZ7eG53GjxENE
EaUTKXplewe50oo+GZRfiZtTtsHNXtOjbl+jHQVb3PhfU0SmbIRgkrVTGEUwq1Z8QudfFIrIlFFk
IsS/KJTzLmshZKSKi6JTPmGHHL1vLGahC1rlGxuZTrTrItM7u3X4SS+aaZWlftvwk9iMCennan3r
8JNFxy9iQimMSXYvwwNidnlsUQilIsfp8QpWQZ7l0g0wSMPeC0WR/0kmedRGPTwJjx67bU2Lw/j6
Nl+zNYjuLW8FCzQdPXbCvV2t3c8xhzDIjH8buyVCIGp812JzQyeChWST34+Vh4vhKIMILVO8NDnK
dMjxnONAvUwDmcxAoVGuVp+BA7YiTM0qYHw1n32iv9iBsrgwHKURUeqmSk8r931ZFDL0Tj2YNjeh
D8vW29AbYSxRSxUJm6Ze7fBH10Ezj5420oIrWX8IT7a3K3bgLDlEbj66NaQw9q6xxYaGPKG02jtZ
tU/toPm4u50AnGBtfXCyFJR6dKvgcSD6P18dYq8jAv0VVH8leOw7szRFtaY5XVsIZ5U4Xn2HIrS9
shZYX5ayhVZUA99fvj8dxm9cD2wJRyH2qB1E83Xfz1rpcan44u19Oy0TUSkOQX6drSO8/z3fAsss
OMwNY6yH3aWKTwddPmntJwqzMH3bfFupvPPRyg461fLEMSpznL6sERGjANSykqNMJkHi0nT0xyDR
HxT7cIz3DBiDhv3l/TnJed8I2D/dB0hoX+3yHOyHcdjnz76T/U58yu2+xc86IRMGnRoZVK+WiTN4
vR1/GsTBjj8qcjCwIqwyZuGIBSCQOhClT75hDbuAMrc8una97s68Txfs7hJK49arxArehSc6/IlM
UuhNpO8ea85Vxq6UXsshwkhrCTMwtxjtrJKjcR1viAMJHObbA58WhG/yL4BsGeYzgFAPxVrjrSAO
8FGSwkGGBthWF0Ag/WxPET8Tf4PP1XS6re0fGpmlkT1Py/tfsLf0YTwcQjkmvYbKmLFVKOZC28SY
YAZcEDSVjda7sTrRTJUMNjmWvfH5AapCdINtqsQAj1axjb6YhnhK7Z8ezrlmOW5qpeivWqa27mJv
rNIqtoxdTMGaYW0E4xCuGsJfkYsyWCtaxyaP0oGKt54j27qIN1O2TptcJTYrOTmrPnIWmhsjul11
zNfKMRQ0HH4SN5xV18sh8qQXTqDijYF73prkmaEkYexaWU9z16h48eL6PBQrO1b1YcdiVyxTv+jO
x+CWSle+Vj4l5bJfGuKh17CfHevUVkXvOlmW+xX7mk5nDYeMr1Mv7BRaIzJmzifhI15kN5nUgFDQ
71sHGmpIQL3TIcez4eM+fIylLKX3f31BqNZOzhRNnWz4BSn1/4CM+p8gme3Th99fflb8P3x5+lRX
VdibX3A6YnfcBO05Mhvqdhq/vblcQiCmzMOdqyQ5FQHTHXWB8nGV4qo/zJjx2x/sVL6c5q9K5Ktl
BfsLWh7Ezskmi8oQRg5RsSHmk6t4yQJS3AiyWqUS9bLw5l/OCsFENSw6G/h3wIHutpyDEbUMpegQ
6RYCR6wMIBs8eBgpMOFs3sVatm4p2BAbd7FJkZU4iBI1anWMGg62lB+Id36JvR7dVFY+ZWRpsWB2
uvz7z3//03ohHmMaREFyu4iXARqYbdgC1v8GjoT8ODpIvBUY31LIMFjnBbaJTgbW1l6J8giPq8JP
XaHGdLoArzP/q5UjLaRgFnw9h/FxRrQXZtLpiD15jn5joqRAgrSv2AGHtO+GdheMwAp9uYLrr61H
VqY4A0Ot/Jbb29+1hrqHjjhfOQ8giZ4CoB/IKglxQzRP8q+GEYGIKlkm7kv1yXjUW9SZ1LNGITBM
yG3z7wKjo/Fkd01cl+/hhz73dXr6WLGNGB6jjI1nMce710wY3pQ9mq7BZwWLZa31cl9JLFSAmYIf
Hf1mvcDIRZ4kzQkZP7/4MkZXpmINqv3bZfx1/k9f9z5qmTmEyEgAYxMS+1ju8qd8rLdksWLqd8lt
AIyErbTzDSx9kqYgwgCAGPVPz+oIlUn2RHSkKCogjFEcsDqFTMwkb5RWSWDE467NdyTuU5Ef0Ujx
un/Ow5X4kmMWgrNzuJtvr8bkOf+1fqOhM1eAsBFxs5NP++wShTP1xuUESFa7IFBCCWYERlQWbWlZ
VBCCXd8jyg7QFquQjW5oU0Gq6TJBhHiXy6wNsYp6IStE4egJNtAuBiwDaH8lhFSWkuCkSkReo3kd
0WMO4LTzubk8NIXPNmLtFGKjvIwykEqPnAPOQEGmhV+VOxLI7Bc5jVR7Y/tsKygr2fu7NHmwLfZD
vZ2nvPjH84fZ9cMdWo/aTkynCbgc7f8H6OAKmRFT1Cwmn+eZyUsZX2v0jUTohZrw6SHOxaX05aDH
4/x1XKn8xbj3kNIyScRWiC/vEDdv967Mtzo1EjF1Hx9Y6aO+QEpT+wh8rV4AM4T1lOP+/Jjfma5N
Xb1oszmANOIHicSe2AuyBp3jn6lFlSM9hSTrbATfMT47UlXEkWK5Z2IgJR/mxmnCOMzHza1sBcbn
1ljFEfsQh6e3A1O0wvrV6a7dHGNxKkYexGvkpP6TQ5YDK5dtAt86DfluHZEZeRHRRf3kZCs2MpZy
EnfoJETkW35qbVxtE47WzWmLkFVFJ45UQPIJ8/rp7YrVudiS1ZARgse5TfKZnEUrlSoW3KQ2jdPH
gwMjpamYvH5WUE0cqgq54Ps7pOw0O6pySQHnTuzT4lOyIVkXZIfq/u9IZtmzQ4xq1VvT3rX95HQN
E4yQ+nR3cptcFLLuW7jJD3YOpIQ+LbHsEqDSKE1aUpQhSqHIaoqhg1D921nghaDe6Qg23QzUwltC
u76iw1A9ABVh/UCu6z8erFvyPp6JfADgqmqr8Y614TP0Gne+cai9YOBcz0+Kjd6xDomGCFNL38p1
sjP5WPs4BroRBVwGVAaCxkPzbj9cfqAY9IYwFbG1R5/eD3TiYJ6sldMxMlNDaEQqDHRb7Ktwsl/3
cVea+FL4r9FG+nsO8ITfm/A94GYIShS/J0pfrAPIjlHEOQyhVJPGgLijy0kfzvPb/PSUH6aJEhKh
phSD3dB7omNss4bAF4NYTkg7X/KTiAOwWC5RhPpjVj5vxRoq/nBvlPO+E3LuPQXkajlh4hEoX46+
YDS/FYXYCgqHBkk9j492HqsVzh1rpydn5ChYPIvo6sXp5PWlFzYnJDsk15k0hdLHe8PKIcN3u+fH
lYs3xA2qI4swtW88zK/5X2aJr9jQPuxsWJNzdPM70soD4mVzm7e1jYOYSAXnBX6lO0DHOk+iXgbP
1GM2vCbTEU8d6yrqs4gLJo6QfQ1Ry/xkjLw+Be93Fk7Wx2PXNydqFBObdy+vAIC7coDAjjWlNaLx
5f1xb7pKjVQvbqzr/sv4M05G0SzxnJCY1mdbATMHXufr/g1jLK5VtVLKbETAMXLA/vw///y/tQhB
xxBMDNcfShQhYkQRw/WCaoZJa4bwbDlYmwNQqwHtRTEWOXGQbqTmWB5/7PsOz7snO71V8J51HAoR
NKj7JADMv+xQf/QEHTU3IcCY0x57hmCwwBU0TSys6MIJgpf3MD4ePfncShKiqVLFilYj7h+nQ56g
u2ChiQZrMe6wryhvANF0VU8P4/UrtJHRQToIi6wWIdDaG/jPZyDnN5WddaGgeptULoISxaGhpPq+
Dyz3vgh6o8xNPgaLQkOg0d15npXwYN2kot8e7stbEV0+Xh/mYz6oXZoUzxcxgXgnFG65y+5hqEiF
xppCMkc3CcghkH/nIYZVSmBFmB4ji/klDZnUgFuMv0X5SCK756CFqQGFHaDOBw0X3NStit5xR51F
CGC8zqQit9RS4sv4oXX3QV0VLxVgw/smXvvd5WUc0aA7AA2Ab0Kxg8r0k7URx4PuV7m7LudHqXe3
1OkIkqfQXBcs6gv2SF8vKfd4tZkCm+/KIjUNXA6mYK3qEY6ickU5T3kZ7CuZWLjAzaJMwmF6cn2L
YpLhEtIL+XNZaHojOMd9LgSAA6D3X7U0cmifZyQEJEF/kc+1yteVRkByfie8GMza/AZ0jHkQyaja
xcHi7XdxhjEQB+6yvuYQi818YQU5aD/hbH4MVU9KSL7tB5F/opPFRCtZhz+uPv4tTwsUrGx+hhvp
0h4hJUd9bh19BHselIr6RS0AgRqIDMOKwfQ0AQW9blkPrGVqAEO7I33fWyE+TMjp5og1LlTcrNTC
F+LRIuHAqoQ30KTQgQrmtj/ay4BdcFfsL14VXQelhh3H7IWX0aPxSZRyX+bju2/JZf/pDYGjs66o
UPnVsUQPm3EXZEcT0xAGYlRUpRslllVWbUQdItAPc/188hAveJi/EQrA1cnla7caSXTmecnxU/f/
xsM/FPsCQQGxAAxMA/KFHP4DaAYOI1A7bOtOCOMZI9AJHgWOlTLzylwKyW1YJheEZUVWRf8JAQPu
n/LCg1OSpXve5aQlMlsR4X9IcKsJOA5ZyOK9js80ZFKgJ/rbFXhv3vIjLcgB82vODzEIFjMKm4dW
XNc11gHcegYqido3sUf7wyE/SC9Yuiq+FqhJyBJQoyAacUq14RsRND4Y8t4rym+IpDAtRWTeD4XH
A0phOjmWQ8/rsiZNpaRp6+QiHabhDW7uGUJoCJXmcCqt1xpOthS8a4FOPXEJvCrKz1VS5pEPQrNB
Nmp1qUUnGFzpPKnMJuhBv9YN0KWiFOx0eSnzbcDyIw0pytLkLgGvjSmHusxvE9M7MZCrSnoUVmT3
r+mlBG5ufOVQlhTW07KsJI+iT8pPj19cu1RseK0GJnAiklWyFPsAJ7yugCopb8QdFrp7YNIvjxOp
kv6kCIJH02OnQuKHjvl/faixWRB+nTwJdnYY7uJGj0qa414LbCxrbDlhSczrBzjOLpJrK8icJPBN
qWpFZIWrlbcm9HVnFLBhJWNdrbgPdskKLKqVNbzlnT8WmvJNWxClBadXi54VPKxvP9q7AaU3sGc/
qh6KqRe+eKD4onYzCMTIi2WbDChlwUF1HhxUpqKIrvSRwEHEzalUmhvTmZQAHYAIDFM1+P/gTSID
xLfZ2l1ub2pvQX7yvBY4kI396fg6X66/2GEV57JNRj7g7v8KNVa/uMvHTVVgYs4Hso1IFXjqR1fi
D9mK8Wlv/3v9KceBCpEHrZvVUvBdiH0qt6XhffAK1+SHRzf/m9HMZAtJ3roPUfSi822mGNoYpnmw
d04tPfXRp/QvkXZJAUgvSqs3EN7OGrCzFiGJxqQUNhmiVBYCBlw+flbLSAo9ZyCGP51njLsuCAVc
LNZr89f9OZdLQF9siEQ6DJJ9NwxE3JRBKkkX1MpBeABGGYRxDg2YYqzlMAASdfaEbCOtDBnpXVjA
OQyIIq18zTimYhef5dYo3/eCo4oMMrGc0J1NGYXxKhVYhRKbbYWxVog5HFslGyimPE+ugwKfVX4u
/SBX5NP7QENwthoH4p9hJI2/y/fjCGRMlT5SqYzUp0i57gQYYx1ObSlF5bjh3R2rZ2pAOde1MSMt
FEbyBmWSjys8qW7AVvKfLVq1OIrOPPq4kpX5Fe+CTFByKP5WX4yhSPMsHNVGYC4RJNNoTeyp89th
3B9+s8vIVzzwBrIghFWMp1Dc2Cip05KnTsnF+GaP4C9//fH7v/5l98/9+54yURjk0zNR3ulZZKLY
INAm1NEIPt1OaoXBsGQwMaJ1s8efuAYSlIaPnax0FHYnY49lnyqR8jC98fiklEZFyelDadR9gktJ
aNXJVIfLAf5xag7GXQ2VUpT0/O6XX7BF/F+sobJ3gVr8mvfT1MufXFOJiCzF/xt8wt2ZRnFw3kHc
WvK4v7MCIawixBoiqw3Hv/DxPpRuEW6gJKIXIAFg9d4wv+oaw+a8RDdMxFqijVpH6o8tX1cS/Rlx
CWxbtlAf1tS+/H7PKWUH5FHQAIiNrR1fBIAi80IRdCV6ExKWtnKTePl+NcQUeKJIJp+h6DgXfRPC
r7JkEupIynzFpOTxIWcuFp297M+Hr1Y1fDefXGOWxw9FKQ5S8yxqBPHsMc15CZ1oleqIvk7SrGKG
yJXuj+AeAsly+IlcPwGMPRHstDKi1P68zDhdfG3KfsridrHVay2Z4X357XG8MrK02BgnS12JjBCR
nB75kwc2N3Q4z6PrtBUCBvliVhzQd6mSQL2LPUOkig/ze5qxf+Gj4iu5zYvjIWcIIVaA2cXlnagD
wnnMlXG5YRpxBm3B1plO22mDFYLRP9SJhzk9wFphPDY5ZTh2oPE20XN2/To9quYZjlCJCZlA9v9n
msh3OI+f1Wl45WkoACqwgHhu3663/VGnKXZCFReElpURAg91hXBYateEuunEuXeMcP084rL25w8U
zUvG+XRTYUfVRjY/nMoKVMfFjdndNSGS5i7bYUfjnA5vOBFlGq28FZW4Fd/5S2HyI3RxIWADUsnM
vRIZoXjzipP6boMuacTyfCGMG/WC2/v96ecsIYwbo48nVceWUcmTor/9N2um6/xbbteiRIJObnlf
Blyt0+YB3LlyS6payIKv7nAMYwv1GaCV7nVdGbluxBZQjcf47Q2ivV8B4OkwPlCWYp/7F00hx91E
l7/LKGRlMlFSwKzqFGUASeD4T5dPNCTE/SzEqqkOIa8wPEQO8pd2QcoelPGgOtaQynVcPR5jffWa
XowD4f/VmUsDjQbyTGgo5IsL3As9coUKhSA8yihRoKtIEJW+KoouMEPq1roXmnRSxG4Dw+LqxMpO
LK9pNx7l7QTxOXsm2FkQ2rmdr5lskPudSp5smdaD2L3dvaJ2Q3Zr2rWL28r6iVem7WtlE5nqixyZ
6RMlLYBdI1DklBenHsRkfIMHSWW70TozvXzXh7T8As/iWVelTSVWS9lN12EDc9hQva7r+baXZ1d4
vcI0iKIs4gTAWiGQH2WzMDMVIXQ6jgfnwq5jE9K7d8e21Qge5MOQMIJ1Y6WKW4NJeTcAZqmHpuyU
A+7EOnxzZUBI7+5sZmWYuB3Yrip1NDvfFEVZRim0wKJWQfmuER5JZZSHdXmTlItUSy1XfeaCKjeh
SNnK/rD18gk3LyNcproVq0UdfJrnN2WAVpjHUtxQT+TZhtx+d1J1uZ0xVVEUiozE7cRMfELffbf+
gJXJXmZu6vhaHPzTs6BCUbajlC6ofFrBhFK+5ToJ3X9uFyNS8mPDszwI+SUn2FGW77y23UVlqbxE
peJO0/5Mp7R1+S2/yip/EwJC5w7cvGocMX8Pyi7NnRiu71zVijfBk2dlOohtaR6W7OcUo1PO4idU
zrxOwMGYgRiLKqUIQoB2znvoDk9hUqFtJ17U3eYUQ9u76wsr54XCn5VFG5PqVfad6w9EpFKvm5rB
Ite61y8NxRP61YaDFfN0G8qNVT7K+ArFu3892bPUe/D1DNALIY0uNmawe8Gyx/YePL5kaV6xuYDk
FqGHaJGEDk6A+kDhcL2Aw9CGOKjufP7TT987rhKAM16ub3vw1BBggRH2XMikiiTEuNNFbOy0v4y/
7p//M3Ojq9iQxNPhewYD++H3f9n64yQ14cc7NobyVRV/OWZ8sM/0BaJ8T0jYM5+UEaJ4VQXv1YAj
4NUPncqVUZi4RVsDTaauynUkwg+L+PNO51CZB7DmjJfNEyjZMmIOEZq0bOtMVEUGaTwCZviMl+l5
58XrYuXLvhqXqyIO3ulvKABg7VuiNBm/Hsc1agMcoornyjjuwNUmtBFvG4/PGc1PWV0nhqxipgBr
yrZvUxGXB/qdklvQuQrM6iw3gJtEPG6GLw3RaBXEUMVuQXjMsa2TZ7d1QAxlV9kFr8VzFLcgbkD+
gItBrILGYRpH2YA6XpRIG0Hr/jlXGOg+jRrCRBZpf1G23PWykbtfcz21qqDi5mGtTrVc9Lp+rRT9
qvxwLZ+y5k7eNuvYQUgP1QgH7eKUjcvDWlNAkSMjtV0plc0WEaoKKchUdLLAP7qSmBlAhi47vD8/
53GQSVRt7BF8STQJdjVkeZa7mKmv2vDULsst88WWvWw10vrPh/wnhSzj9kFiyIVq1JNDJ3+L0r00
Q0C0usQXpnUOhCrJI5173gY1Jj1cz3BXaoPU9o/j8bjWlCTZ5jO01XDROAXXUsqOjkPGDBMZvVVL
eqiksFCWKu7zDpe6c2vNb3ojGj2RfNx13XGFymttdwbJQFcuawHfADd6OuQR4IWATtb1XXtXNGrA
P1jt67rsO9VoFYHT6WU8T9cFt41SENil/I9nyPdPj6KamGKB+dsypLH94RRx+0/gEGH1r3KSXQ5e
/H+NH3ZqHNX5Bf8GKpXzgbiKJbmkceq+Vr4ywgorB0GCK7BpqM6uL3v7j/sLhVABbnuC9vIgMysU
/6bgzZAihPCuoB1fhrywlLKeu2Dh9kigudqhpmNtxrAm07kAb8fbszXwWI3GuO69WSGrU64361Pg
ghWEDckjrJoUTD+42qGVBnpwJP67LLfTwBhZZGFzrh7FkY+ovfpQfI1k5oz966BfH6Qz8m2YJfqw
DjBfaoW2xkdtij7p8FMpxlq5/dAs2iVLvoc8brFnCpP1X1m61fMJTgiL216gImBdDodqkFq9CZsZ
1FKQ6n9e9LvBAXZ1iI4uqgOu2K1k/KO1Ah2vFTCu3p9RImAHw50MYq2VApllY+8y9j+GJ9taDwSk
nL3vpYzVphp1LdgHGNeuAPhb5a2wPiHtgEkdF2c0zcten5LcTLzPvkXT8yrJfCPrenzM1GEysWpe
QWOW0oZbVhTplhKvaoq8yjnF4v4CubFVw2Roky0o79FxebUuKQpCJaRvR+Waao9f812f3PIWUFXZ
l+SgbWufir8tYMGx6d50mY96BG7oUr1lX6dH6Dp1Ab7bFXL0YhEXHhKUOecR84ePRLLi8MYrwlcn
WYrcNn+FFkC7l3F6flG8iEH2Fmjvy28IFj8fb6+nVCdfLLtJXkl4irC+aIfhtXwVCyhOfo+i1NxO
079u6AhGSX632o2rD6XELSnK974ERLvdMl2xNDiJ8KMPt7z3uRBPOtKm7Losa3/LfDbWekQ3BfJH
lywDhFfrrkrM46N1x40zilUho7Kt8S7cqEl/GgfOG8U5hkNR72603uqbOO3sYMwGYRVth1CtyPk2
nrQq8IHR70HoH+IkAy/IcLcJK6BXizL6PgWvn17f3Nb5U4DbBQv+y6qtNKRCHFb4fzpPrxhyQcK5
LbRdhlntyIZM1UP2dcfTyzZ1xiks6gcFsxa5zo8rb51J1assCv3ydX2NpL2hNwUtBuvf6g9l3aWc
HqoCDBh/oDuanm9nLbVjNXkpOf47joGKRkRgP4qsoyr4GCte+xRZGMiJYxYR/dfsa7rglXmZL0pq
t6gEALOsw6O8GEbhzXeJeInk9KxIrlnKBD1DKD2pkHrhEQ4Mz4iccvY5a3OzurmK5IuGIjESBlPx
iQGZ8J9++e77713E8mk+Zplf3eR6PrnGFZHnJgc7f9LWWhf1xt0/jxCqUQYaBOKmMrmBdOxj0aYg
eKlhzq5n2PrEOikWRXbE/fVlZbMktM13IXMHaTXyiTr85arb3QEWEuZSS2nwwygDdKlKgLsBdvos
tu+zdb+tRaLsSi8xjoV+71bgE9VQJWErLugEVYT6E+ymZATyvxxyq2NNQ/PXl4Fd61ApsTh1ZT1G
oHnzmuRFRZUUpZC9qly2gtqwL9WwAOQFPNsnL2khEYtS016AyHLtkBsB1TJiT705h3MCM11XiBJc
V1MVV/SBQFGcL1q8uxB0erXQz9f5F7Tb8nWnMmrlya9PjrhgelWKE9tWll+2kjVtOmhEijJEWXb/
lYvNTof/ZmS2TJVtxZKy6R+/bOplVqTi2tKoxhjhw5QnP3cB1SoZB7h4Hsad6zO/O9+UYrRCclr6
0BrhgWAepxw0FU2iNrUp2KDBfrE0iCjwl+/JMIg+AZ5p9vZ2hB5nIxK4bGw5UEVGa9/2NXDogdt1
Rwqxf33dI371+IEsSM45Q8nxQkxsX9mez3VfiX7mFQ/6zagfS+Vj1gy9D6/q+tzwkVufWmzbzgIR
fmq4PuXjNtUMna9L+Xa464O9+NZzdGJp28pgvWhoHyJqcJs9UwqmrfbZMgEcJjZ3R3+jvd8Mt7vj
Nyx7vSL+Dvtd+L9wd0v5ieautT38hlU2//7z3/EL8OlAX2RtLdj0VnYPrcs/4BXgOKwdc+VIcT5p
luIoRnRU9S2EsJpiwk6bj+P8BFoDFucr+rP9bIemlp2V2z9kk+LMilRjXJjFfJ6ep1P+w9gklhn+
SEuwgoXErxu5IfFnwRWCyqz8p7GVL3O3P+M2tjFe7tts18OnrSocpRObUDV/0E7EdclO0Wb4QxY1
jhR779YRhv78SZlt4hFh7VwXup3kHtc25sCKBUXuJ13LNkaIClY8vplbrsxDC7pUBgeYa6Ete0iR
gKUTgOH4eq6TbRdNonvC1/HhOr2CkUIGz+iJMNcHZLT2TPfAS/w9pIT4S+xyRJ5p4/yY893ghW8Y
z1eLsbeW5ZngHYHpZtKVHavDB4B6Eaoq3ef2t3f7h8t8xNhGpss0zoLRlkUEHwQjL2xF+M+QmnRM
mPlno2PPNCA1Td3zWeEwBJe6KKNEO6SKWmExFQybZinx3DjxEYN8dt/cjWO+KV+b8DUSIld3X5fa
1+yNhlfQdOTRuAEoGeAaBTzo7YYa1jGpRTrtUkjK6RnISLadd82a0VThvVjKbf5zZuEOWHLHhZbY
I3S5r1mXIdBopuZD+MYxHl/jskz5ramE+NayR/rrM4O1IPttJFBSre+mkX1/kovMr5A1qGrwf7jg
nfbX23l/XE+f4VCssU2sVYgqYrextVtdp/pDuXH2R6VsBz82siNOtWTOXxbsHCar/q+P+f2tC9kS
qYotvNSdbWRDKTpuvx1fQevZ91WVvk6yKxouMA7NyZjjndDg+Pk5taIRX9kIeJWD7rFmDXq+dahT
PjHFMKBe5nLUOgrwtr4xevv8iI4wsuMfp6cRwCJ5BFzL4JFYvxBApk2+o0cakjk+TIcjJ9EHMluH
PCQwkPLqMmbcFpPsZJyerLP1PEISZRPDP0uJgk9Npdv80UY8mott/hveRkAzTo+X3b9u0/lLemik
3KDNbgSF0QrNCRg0+bxFz26bx0ITs4c998t2Sxbn18eBmpArdAMhhZur4MtOpGATqV33ymUP60WN
Q675SM8esYaK0Es2m5O2Hx5ORmh1/2Idwk7mrjt8TNUBCJyJeGu2B9f5+fmo/Hg8Y9ej59P0Oj3T
vo2wdgVCCW4FkdYjGf/8dTzj7mItnzVUdt9yXZhxd+NZMwCJN+7zPhjuUVwjRj6Jw8UqidNlQXoW
u97kd6yNOxabpPwR8p+ePaWNRFUf1q9RWcmTK9iXCFLKfzmIe1M2LEjzp8M/7ZU7XZEBG4cBksj8
yVeLva0+yTwEY1ApmPF1ImW2STrg3G7HYzbB3DOQY7NovuRvRP5g2VEwPvCTI3B/zCXvehbMpN8s
F0VKqIC9C3mYoUhtvnqeyte9P2qCvuNf/5opIO8ZzKQR6CySmfn8GnE5eRGIawUDri0+f2HL7OCt
lAnSq25+OW5FnFSUgyqimVkKG+oftHPo+l7eiY5V+/59fFKuIVMv0QJkD6f2dTdU8kXrvQCzhwRj
cJs6WaEQ12IhFKRh81Hkoxva1LvNPv4PtMw3GgGdVLzDfQ8nKTMhLQRWWH7cvpWKo7vbsx/3yve9
iZeANaWJ89pfHqfprkYxL7UBS98Q2dTw/wNtEk5cvh8exhNf7GRTQ+oHGChS3KnlGal71iyzWUYw
5YHd2zg7fIaVx5jtfRVrMmmqHvUYBHX3v1QR64s4T6S8qu7tMI+gVFRaEy8hPHBVl7iE2605U0mx
7yLO2bdnwzqj/JNQS3PQ0zpjt7iLKwjTgfU9S7h5ldiyBnGws1hStoOasvwQXUoKXuffJ/uQukQm
IurHy9VFxOBPvz3cnqu2LoYyT0tR9b2k+SP2V/rcFF3TFer3g+BkJIRJ+PlqqIc8f1PVd4JLq6IE
jtSRW5VcFGjwn1vGiXqZDo4eJcMG3jO8ttxi9+DFasr8AH3ZCBeAoLtWUqzxEIBw2+TOxJed5UtW
9aKyuHgTMFDskdfnV4yNa3xYKH7MqioxHMLNgf2bfSkUy90IJc8eH8Lhg4uNT2suV4AriFNwVIIR
O44KdzrYDdWUQWWEvjPcrKAwF3E+5w2MNvVcbSDPwjON1kk1hKjQuqHYFHLhrebcbXDcpZlT8m6V
YB/tol7CW4iXLr+pzIpdNJuMJtfW+8vM2RIaTzIRo+TzyzkvZdJeqvv7433Jt1rrWaaikQ3Etj6A
9SDOl9QP24W17zvhEHgH97/hfqjGclFLc7f6A95+XmaHlEOZFLJsbgTFi9mXkQ8ja6Pk714hHfQi
pf7ys6jE+03dVJxgMgUENRPa89DL8w1UJWAiW4P7Am1UCZ0bnCT4CawJUGPnPePt8f5Cv2LiWy98
q5HfCTeGNO/qY1TlB2QXzfF9lWnhw3pVwIKsF0Og1HXCWjOatGy5kUWXUvdL5fa/VrTaIlBarEwq
P5te2Cd1tdURyO/X4nbVTGP9Rzah1bN8rAxeZIsZc8TqPUuWNESkWFME+K7WOH+5jTSWmoSbvXpK
tThqkaHLa+xCWBS+ZB3su/sySghugmt5O0H7gDeACjg1qpT+8Ybc2Fkm4fz9ohR8mFQtmSvCxdYs
sd7WqhnfZRNAWB7dtctD1lwNLgOzRpxwKKZR8vD4QBiRj6GA2wMA7QT8I9+aOtO4D1rAIUp5tYjb
dIt6uwjvBEDnCrpqYD5mJ/IXsebv4vEnEBqHKrR86R/rit0FpAR5ma5JBGSVHldKmOtFwajTWlEO
1cweq9vuIsGrjCrje+Rrtv62TtuNdWpNiljDYQDtpaBqtcsVuPbA5HiyxkaeSoDBcvqQP7TyfPwg
IyiHLcAqt142he/crbWfEIL22REvukz8/rrPjgYxVwegwDcSNFnjIUIUS/qaAcXBp24i+GkVeZFQ
T0RTC8hiLtYAzFWK2HGcBsVxyhgpdD1/RvSK9sdLKCrMr2QIw6D7TIGA/YODZbpCZTypN32cNo7T
BkPcfvZu57Hz25v/vIu7UgU8y2X/tD9P4MO7dE/+8yJuRuTkm97e2/w5mPiLsc+mR73Yfbzsbten
Pr//ceO4kToGJfo0UVfy/BBx1gwf7hLq2Y9qdmC4DiF6+eXGz0DjdB5mvAea7oMu7E34FDCZVLj7
r9t4/sj/XBQH1juWxCH/S/FulJFjHTcSGH0cbPj1YbQOHfF3qR15cY/jTUUj2Vs76t3qjJg9sePn
Qcmw4LhJDJCVL0uEqbFPqqD5YbX5T6q4QUNQHsjHpp1gGz9D77+I+/pyvb6tSKmRvzkQE910vM75
X4zbjmz53lRcUwNRqTVDELWgnAHSPdnXcPd+2alb28UFt5H7bTqc9mVRKHc6aiHUZ0GN1PmFxjuM
9G5dOJH8J3XqboTH43bK0H/gt11KALzWsgvMr60XF8ETJV9i0zP3EJ4fsmxNvu7cU5/6LhxPyheF
JM8jEsKP83Q8To+7H/+Wpzv19AyVz0V6jKI7xSq/0qh7EHBraipQAYzSM/Kyu2j583l/wCBa/Bc7
ayB/ySGq0OchyaLyBnK4c/0mMSVShi84N9MMBwZpkUALB72lr/M5/9t9E387NrLAlm2QO/bhoria
/EhdHKllATyAeu5gV24X4szeMJh/CX1xzcDaAyBPQtxdt975iSgFMYKSb+iFM2W7F7tbsCEv9rG8
ghdDLW2RxSv8619yvbZx4nUcuw7Pzct0eJtipcsuJSXAA3R7eJu+jccQ5M/+jDdOQMeDXmzoPVHE
b4eTyAth3JQ6krLeCQKC0rdIQx/3wYQDZLMKeYy8lNdxDBcxW46xdrHqRkyCjKFXqK58mL8pOEfc
YhM+RnqHPrsChxHKWbIoFXEsbBNuuvxxXV72h4zLgufELiwYe4beeH4jjtOb81rhpthTy+uRNq6x
CNCM+W1vLbFAcWndz+m06dZ2TAW4/2kCvN5V7rkyDk94mBwoNk3BiJeJRMryChZd9nMXIHWfVwnB
gc9Nk/2cdmXw5capX4c4R0pj5JdUh0HLBptKF6lZ9flZsT0ZQsuWxZ7U+T1p5KIqXlcjlgKrUwJK
sc+CW0zqduNShvznRfy8YuEa8XmV3wm2lTG8sfjc5D8v406UweJYbGR+8lUhzqFMnYNp85934XP0
A7rU50X+cyMn36c+L/OfV+JmlKHVPHSGQ/f8EYIm+ZOLs+8cgDvx+2X+92v2+ybSvMvp54W4auTq
Uxe7yO99GWfPc4xy8nnBqZngFLm9z2ulil2aMpL8L/d+9/s8v46KIonaCXPxyT3Iq5FykLoxpdzK
vPzVRh6gO//fx/Oc/aQppLJISXyRF5mykoorqffyh1aW4vM6+ZTk34KylWfepD7Pq6qyXpf3gBH7
aTxDVNSVBeWSJrG/IO0oujLt0hvZxbqt3WG+ASzoTMC1vLnE7OIeaenrrM3jH44yP1o04SHE0Clm
iss0I6vXSsdbNFqYlRE7NZznWZhRELDfP2OkOj/HbhDWOgXcnLX+MF2BEYRb6Fia/DlDvY02LIYC
2ubOEn6yfusObtBufx73SuwJdzUa/kPMUCU2Nb99C6v6bgjyo/Zn+79Px3kPCWmIql+sc42FLfnJ
MTO3R7q2O6N5fwUUQkhoHfPTZHYuCKMhYVTOOe+MxE1jUO7sMX/qfKMwOg5hAptojlheHlsj5bHL
e6Z4ZxaKRHd7m0YY+3eaH/sw7FwjBn8Xj7NyD5mPHvuBcI/ROYtb4wdsuJrzvo57V7d0Gp9dNIuQ
b+5f7dgPpsM3oCN8na7PbBAZzPwzjvHdfAbM03f27ihDtGEIVhrzaq8JdE9R7X/3fRm/bzQD3K1L
GaiLAw2JF81vzJY5GTFUyRzk9G4rQ1VxqD4y+X92lEZuUk2sSB5fwsJtGrV9ESbk7lLDuhcmRgK2
wRvEZfQL1MXYTlUnHvNwwYNIXvKqshZxtwCa0gJcW0JblbiTSthl1RpomDVQhqFgq2AICCc9vxyx
fHAKNe55xVaIN9vcKTaKOcDz9cYCZMoGtmwDTWz1Nz9cHm9nCFexHQQmTWLhUZAERRDA/5e2f22u
K0fOBeEfNMEK3C8f222fMx3Tx/Z02XPeLw4GRW5J201xyyRVVeqI+e/vxmUtZGIBD7aqPQ5bVlHM
BSCRd+SlSuA80tDVp6k9wf4uP1+mABKhofkHA7sRSXJKWjywqNxNlV1/kEbQzWb55MvxTFhWTyYz
7n5D8y2Rm21lMcDKm2+jXWtpXnBDzHcRdrMkcChGFFytsGwHoC7smUg4mrZxf798ugqPu4StOSM5
YrftbvrMZKgS98csB2IfJ6qzdUDew8sVQTlIfP6YtnmD6tRE1MmcESi3QN5jqt+4vNzWuF7sam6P
me4djGaCaY5BEgnPere+LXz49MeNQv94+TqPTVrHzQvHsXPLJeq2hRw0MtX4rtfYm7ybK17c8JIX
/XI6PSW2f82tOx/Pb/BKyZZzkO/6Z5xo5xt1jm1XS3K2s7fQxeymn4hE9uagTW1E/Xc/Qjiiw9KD
hNwyAMqIpMH358RCPIeYH/YOQmkfkpPV4ayTeOZ6zV7HUuS+0fDltTzUvVzN3OeHrc1yVQ6gQly1
Iv0SvGsmdE5b2Ob71RlykM9ULn5wLBBTU86EnUYea/eqAtFKWYWahpwiCbeROC1pL32XXmlLwtQN
5xe+7dm2N/Dnq0bdU4DnyJMtEpOcG92XopyuajR7NWWca55Llx8L3iaJwfN9kmC3EvnwtTtfuZta
hX+Z346MchQmS0RT8HY1x66WxHSkZP6GbeHGxMa1K4ow+sP0wqxmAc6a2k1w9Fsac00Q9LuwQyKI
Ys+IKFRxPVdOEPxBumhBxRRdrxH5lAOQJ0Cf3h6vl/uAuMEGdvDaUSPN3UldB7/nCTx3v74mw/P8
kgYHl0qQ+QdJoDwLUV0lsdBxjn7Dd1FL0MQ8OlkH3O08qdrUVZbCThtSf0otCdN4imRTltRkOUct
DTrnJkvSyq338vcyR6AWxaj5RyQJPccxNSdJm6Z+/zVnyNcETfBNSZ4CSAqXUBKglwfQN5eijop9
e7x8BTRGuIkkx5HObt+/pilA/w3Cw5OIsa+drCbMjxBkmxAidUTLaofbOI6EtUluJLvEsternfHh
/JI73mbherVwnuefJW8UZN7CYY8cyYB4HRf5cs7VKWaZ459LxjYjqbqlK308n56fUqSBovHOzLcY
uUqrRvjb16ut9/FcrOeaRQzuWpHHWRJf2ioP2ojVTRDSaynh+d1L/X41Qn+b79e1/eqWq5mLHpOo
PeemOzv/MixocFGRGwp6YNjUoOD+bUpsc8wQAUlG3SKTKVHa+allzD88392st5W0TMTIXtItqEuS
9y2VRKWqkRmh5zqAPu1HMgE7bZZdQB2m+A6EHDcwty77j5nrPme/BNQ+FllPn1jLmdicXyxmJXmx
Il03RPBzsR4E191Va86foSNRznGPxws/N2SJ4UnaIb8/fMrtfghfcQnY9deYlwhm2jF2dA5Oqiny
kAJI4Jkmf0u0Wwj7CQ90nnsUv6YgWh4//LGWQAD6jFSFlv6fI2MAkEfjdJM+ZuU+fLqpJn7mb2+p
pdtb6hQHp4Tn7wci8sUecskuQu4kOD+aGKJfujhfTEimX6oukG6aAhCj7fBnejckR1kzp7aeY8sB
6UUnN9S6lg9PCiepLICkKEieRrYdxESkAEliOR/bdg9PaYzz+RHcBH21zgxa1hdOzp1Tz1O2KoQA
coO+rbcL7xzzpZfl22bJoIqhjXGVE+dPLzmGu7QyBPf/QqWs8ACokcPUUK/09hGwoxj69POMhKh4
Co00N9g/wL+I7XPJtPB2M+Pn6k6OtvyWxlVcVTW/PoDgwL9iO0WNLBmgvgkxxH3kmpjnxUWaH9Ja
OdIQCVXecAyyarOZi0hqqdkdUV8diE2cFHlzKi3iioGQMNk8mD1sBcJScsQC0ro570XB7SR1AxVZ
QEUkqy3uAQBmtl01FFBrgul3FbAJRTwxIAGJoyD3hMnNZhiasT9sMZgRL149v4e5seRG6YM/pn2X
NmCwLB5jRub86bc0piMFVOfBihJiKuk5vwAjv5d8vU6tkfW3/w7vnIQ0RWyhvRzCr+PiryhLDzRv
ny/fnp9yd4tykGQgARoWzJjY2jTnaFNBwf4IcmOMV0QWvGntwb+9/Ne3K6Nd2eypWvWpGvIR+DWG
p+3JH3D7QFyIxrvaK/Tv0ySK5PklvnCW+i5Lr4XYZTStXXoBtKcgzBRYSguOgqSO24tASGRmrDbH
ENAokjeXcI5Ev22Z8FUjkp1u2BN7lr61DGYUfORhvfR28vB6Pr3BUBXxVpIkF8PwxTJ0hW1a8nyR
6K4mShXPILHD3dU2u5RZo/vngY3Kk/RrcToXcc2zIrZkL95g9EL6USWBtHN7IvDkdB1uDbVevqaJ
DX9Dpi5l11ZvJ+bZr5F4e6T9V+fS5hTE93kFSxHxkq8NnZv0OJsaQWAfx7BMeLM30f7rOQ3wuc2f
VZY8PfgcsIgdxpceBHkly+kfboCkNHVgDyHdEvcSfmRgiXlhQaRVKy10xbfx3xBBlDGO7PekMK+2
0XWFjw/XX8897Z8fgMmmJJO9lRiv8hp5SIaFGeuVXyXDPPDDyW6rhS36NzVKutLtl4SGzUB/eDpf
7q4U+Z76r9/mNETLdqV3K+5xzuVhZPhlWba9DKwfRAWJ4du9G9R13fmylrFzHY5TRGhqaJBq2Hde
rkZLHd/8+unbIrQkhg8sv1dYCVJFtXXHyEE+NXdKvOXZ8mruyuf61uv/Pp1Lz8skcdJUsqsO+ZcP
/3lCphQJ05Bz5snLny/PKXPpajj++nJrSoAfPbELG+aREsONFldzUesg8BvjvFJTc9W3KSlcYAxt
+R+QY5J4dmV8BQ8mUy8WyAryaJEfIDcec2LuoZqRAP14efz2ts0yui0SRsLTeSoON26218fNLzx4
gDfpMtdUSMrQt725eBstkRha7jlM0ivog9S0M35Js9Dcwdzt6A9ALnd1VSPVs2fObsnhP6AM6Z6a
apvILSChmtQ1au8fJ9z8ocGFYXSHEhFx7VLdfPaoUHxbsmdvt9lgeq7X5UhXkCepeQKpanPmW2RV
jSxK/Kpl6RZyDm6NMxoLclHiKJx5BZmrRcejmVuewVW0vVx5DNlgmoqZ3MYr8q6VVLHfbX7vQ84L
o0bA2/vD+wn4mY6khdABGUUIlIxcwOfWMet+k/bzst1IDxb2Lqnk9l7mmb5FKDh2/WqQjMCGa/3h
5f/4B/A1OwoVdq8f/w1RGlognFI96ovdUcvWvd+Q0iOp0dWmL/fvBQ8vLeDz9C0bP1uRhQSvCF1R
8NQH+HsVqqKOawt8i3nhaNRupAmlnUPQ7DXifPgAbK8w4vbHy7e3TdG+fX54ZUbg+kWMZnWV+NfG
MHOXVQ9fUTa35DaVT+RQeh7yg8BIyr99Pv12S3idCELj9/F8WXsVlvsRHUYCXdnvCGSW7Y9jWBn+
ki4GZPv3x3dlDCMj8O9J4kCvAUqaUTiZL7ey18DMguIFkJCXSs38tvfKeeheDR+oyRTw3/NkJZQZ
qZTz73wBE8QfyW1LDIwJAoloFS+WN0iA35q9JUOXKFXRHoBkCrzlgdrd86c5SBxwhYgCLNK9qlY5
ZeZyioS7iWkJmO1DUqLANCFdMXwSYN6b3XxaoZX2dcija7czGwMMvI6et0b4u0GV+iU/kkAT2ABt
K2AnaV5Zf+5uxN+vSIe2PX7CBClwkYenHQ3pXF4+PqPnGSn0KH1ZzHtRRNoZoCH/yF7F6PihnDtJ
w0RNpPRv0CvDM6iRuOv95v+WnEbu4Sh/Y0pOtlNBBEqMkjJ/D0IVb2FRXTCh588A5pYreHi7K4kG
1aXevdAbwwWN55IwcnoXF2Vm6w/mTpDmKmTGjXDzQ3qxTpjD6YZKcrkh3Tzx9EdkA/W5/Z7Peoix
LV5dJclTrG5MbR2QoauoKd2QCR+s8qtEUAzTJB2fEMdK5HtK3fkPs6qZSKMdqlgEiTmKpZ7VGLME
Ac2oRt5GFcOX1y+3imBFUvxJfOeYO4N8PPDK6YcKIw+/uC2MSVtw+Zwe3+mcHzisJDkTSVjUzAAh
gSWkwygJ4CZSFuRdMhkXtaD1ah/MzQP+WFNb/fy+BCFFPkYSeH/MpMe5ODSRK/nYcpZ0m/0SnI1E
jUGTjeHOit5jI1l+g9idY3lRJsAQ/e95VpekgIE8Z4h5C7Ko7Yhfm964UV10D/BVTngP3v8kfzPU
YWUzF6OQ0sNpPj23WNF2VMnA/J9Jgh1QtJJ1PQskfF2rUh9eHk9A8og4jPmYedDYDo2v2yoAiC+T
Z9YLCwUySumxvNampkSlPI3TxOH/0Yx2QXw1QhNi3sIsKg8N/x84oCCBDS/37Nfmo2wWVMkc2VKH
9h/DHCJJ92lJx5jB09nfmQBKIhO6TXk//2h5LwmwJheoPkj3aUB/50sZz4+tAYDfV7ylaLlMa3s9
ClrSUu912JLqeVIxz+V2iVxngrvbnymWZd+Kh/MlHXf++yI+5HEnt4knr4a/vKXHwrv890VATJJ6
9NA6Q96SYAiq62xX/eWO9Uwrw4UEA/Nb9F7GO/e9PMt+1bz+6UaPj1jBNuT+QVWMrsKpjd3w2Jmi
rSSv5ttKp+aKQQ8VwyB74Uc4X4ahMr/RPEsktjbPaLxDtcGPtyR5SeIllmLu2jz3B+wV4bt38VGo
/EsesVmd8x+rc5TjIjg/f5v2PMFBDTIFPz+8oQGfqk1OagIlbO/94Llfj/JsBn57fdBIz68XWHXJ
ExO3NEkXUS6Y4s6MJ8HOWziUMkKuSZFxyxl2IIgfuyw7DS37dZTM2JGwKYS5qsWj8ZNWbS0dcLXj
qP1v5yHf6pyQospcZKZp0cUPGQ7EWiXTu2gRze9TbSQhTLeZSMhYADXaRE8mcRfiDfFikDtP8pNS
IK6mFU0SYhfKV2g7rPf7wTYSKNNfj5saFEJtJl614HGppvD8fbk6WWOHoOpd4MCaPjll04LzREht
Ri7AzAFAROFY+dtWMBbm1gUN3rUg1ShT4McUiBh65bwry+/kosByXsyW+zPPvaPVJg29Yt6XPKph
stAxdPdjRROBNoovlKa7eueEAtiDgnVoka3idxgnvQmhiry2kax6AcqOaXpJywISClyBYJah3aZd
nU6pCeH54/e9XI01D1n6ior25HANHQKkYtIUpNZxWRgzf4G1fqRmqXR8eH3/72r3REwBVXIeB1Gf
G2O8JDvXJfy4LTBr5tLIhlFG/VXOzvW45xB+rcfXpogf9gfL49FzjEGAQAh9MHE5trz0dm4TPrQ5
htmjyDV2Nm8aWsx+OQptdqL29LGEmvb73Ry9hKw0yBaIXMOKvCpXFsv310vq9/nwtrB8aRQ06RJp
w7xZEHgN6PSQ/+HcNvTuodlzkzmU7vyQrUcba7XGAsKDQn/vRzEPCVrdRT1MTZhksSC8UkMhf22L
vc4dMytH2xXzuRSRKIS4pzcX36k0Ks3DvbtM460mdtPmyFEw6/Y8KztLia4WTBMD8ActCtdVR4pB
EtstTQDMCG8/FnVY5nk1oZiewGpH+quuBuSqh++Ex4RrWFJJyzOScDF6Xk8DuM0Pa5OcAx4u7xCl
LUzmXxsMUg0fL8I8RuU783FrhCFAuZDwo5hEjRQuY4TtyPX973dFrldeGqkmIE3XxlHh6+dIz2gQ
F/Ojusq9zVB6bkhmc/6P25gz8hT3GlMcdTQDjMkjE9oPK1GA5jajSTtiPhMqapayp/uM3R+oinY8
GDVsfnCuX9z5oJJKbSDwlqgEWCZKqFEq+h5LGCe9gvdB6k/nhsf1eR4UGpOkKaKHaRuWVQcWP4r5
dh7GLQ4FpeAsILb+I6C4JAz9A6HnoS/D8+aVHj5zAJL0owyEq9GM6qL422QN0dKmm8tXFfqkll9o
4g09EG9L1LEjM+VH69qWMo/3g7MkTLsbYCBIa0bR0d3aIElT6Sn1x6IDgt6omsUcVtVVvktJGJky
xFRmYv7WVs+0giuPrd3Zex4xcHo06myixf/uXFopRwn+h9Sov/OZmk5AE7uuu+mNEXXI9fxhR26J
KICx5TDjNEU+t6bFlckf/7rqdV+eC8PYDRQG3LDkgcS+ru/vzA6lAaQ2rWSeJYFC3ZGFuv2WHG/m
lYCWtzmqhzv2vVnksigzTHlbt9MAeOFukB4n8wA9IgY+y0016qtWFoSIkvdgeal1LVgCNEgqWlJy
Ydj6gHmLnuHCyFYf5Fze3ntQEvs/UaEZVKz+yOdIeI3ULP6+NH9Fn6paAahwc2/GDYPhxW/+HYF+
wUoNk6zQ5nfkuaJaRj8qRpgHQ/9OqU40latp6FmFfn74eiqzFvJfkytTSsLSTLn5P9yVH9bBWl/L
TMTh6hl35fk75KKXdFNXhf4f+/L7p19Pz2UOVR6IOKt1yx8s2XPlg2yqxWivVzP54ym9z2eWTwhL
3t7b/OslDSJ/PRvgqgZE+dcZCsrIk9kgjvzV4vKVr8b9+XC4Yz6cp4qoPM1ICDFdQZXqmIKVkD0e
sMbj+fXxyoyztot5y0UDly3nEQ1CDz5YBrN8PL/fzbocFSIgu9OZR1cf0+Bjvn2sPBip34dOBdDp
yenzgxBA5/nLpxyCf29D2fJ8UNCDuIiVRhWty/JkhYSZSm8QObphuoa1Rp9NE7IeXvcJMPPP1aF6
tzFb2SUkBE0YIU9QrOHe4fe+Xp6/f7q84C9aQg3JjpLa3koNXx+eslwt1ADWEJS5DJmbPhSP7w/Z
XMYM0birBBSEmTIEFTbgpgi/6ty4ckSxa1mlQhPYKXfGu8Fndjr/fMoT5haEXuyNctqm8H74hgDZ
C8KvxXWR8zUS9b9fvia74FvqenH34fT+6+n0kt+qSnJ0/VVAdo2QWT/EW9hXAf4wRFvu+Zj8oxtb
5CFTV2PgfWJ0Fm1JCM1m+1FP5MHd29eHl7eM6sfL68vpFZze21uU+nb6l1mYpEhBQhw6h5rU4ltl
NmLyAfMM3EIrYAEiw5L2lVreukCikkQU4OP+Fs22fW+BikB2mixpadzNRAVUuXaEOXIM288/uw27
vvv2ckYM4BqlxlzDLdeKARE+NTdylGD5vffP14+knNrFlwl9+RxP0D9sL25i6cocwHQklq7Pf4TB
QqenT6d568xifBDZUuYrm/mOc83klRO+T5oiFWlFxIpWMyqttHQ95PXEEKclY6l+z7WA2UKNgy9a
8sUUU5AWGFyn5+fz17fTD5pbimshw7a8zZD5fH56SlOKrmL1PBt/XUx6suFUjyDdSGxtuNRA31JZ
mn7iwi24FACXVOCVfO5bFW6j84V9bHq7UE/dpDUO6mzpigM/wwGRzVcOen5cmh1cmcpwg0eErMD4
A0TP9ciHy/v75ctKlRBVnZSitHLhJDlwdiqMEsf7kQz59vJYymLWnkDUzFkRc+YB3yAYtDkL0f64
KG5SCrA60SZlSpBEVmw2f24zZYl13KKLCz8AiD1HghkqD6KJv4tVJWBV/QOWKnKX0RpE4kTXxoPe
eLHlZSFV6d9yuTIQUyGPIbZrVbF/ODEiIBxiKuVmNtLcbIEht7fdgdN76/XxhnPccpPzC2rUhMvl
noCHJRygRkk+p/PwnZUEsoC0CbOnDgQyGqAgAXHRgF/ySMdW8YdzcRM5BeMPEzvL75niSIWBKw7E
EUjmkQwjA6a2nrhrgvPz7FG8bJEgMeQ/4g+cHShw6hfOr3qozGaCeaHdblfGT+eHL5eXpz3EXHgB
kC2JeYXesBvbtuAiPblIVXA1+N7jVazcfX2gUycAsptUMXLB/lVeQQNP0SBfChOY8CMebY5wgJsK
PQIicGlv8BaohRv2yr4b9E+7tEXwO/bqZx60733HW6L3TSyGrPT/blZZ3QC93z2P7YZY1hdowlnC
80q3XNsfNTbQTZAlkqm0VWbPNQgyjhzkxM5ly8G7VZSUPpO4nIPvblCZQMtJopxSYttWt8U/mBKH
8oafH76Wr4MtEhS6ku5/wxaBcyXlLaEVrugQNxPxkMLY0pkfN+JJYBeIOX1LUJer1AUBqECNR5df
d4BVghSouSWwyq9pdzg2+xpbd5K8RbZi0uEC1/88vaYyC8D9hPRN7tppATeVKPiSnfwtDh27ISA7
BDluyJ7b71IU6JmAiifVGkRh3gKaWIRbYn7TsCVyGWh8KWcs+SXxdwsA4iXPJTm/St6i4pH1a5gp
/TtVPIhhC+rFmkXoAHmxIBJHQno57Vup5WX+8unhK9Djor/DcEu8ANCbIy5Loj05fJdORsjre84g
xTynPRGxOhedmN/3Nod4xHQq0v0+vgY6ScgfiPGz5I2FCLbNssxzE80PRvxWhh6haq0Xj9ddKGPx
adWIWTtsQ6J7RUh3XY6EiL8v6HOTMSBjH5nRv4uKUICXKKB6qptvAzu/qsnblFT0YxZTQ9Qtr1CS
Zmzk0lV3m9F8y5uHucX0u7yc7r6efzuBD9HIS3notPP0B/Ri6umHXBvgOPc3gI5xVOWqhUmH7olo
HHBRxHZKHrIM7sft6JtWUvQ9MS5yw7qgJnB9tO/ZJd5oUN5Caj/yFP788D23ffv4nru+XhH08Lz9
8OussKfId9FnD4FlblQZo3h7zqN/q7rnKjxeUsLx2EDLHmX12VI2F6l8rrmlGWLLM2U7BR+0+wfz
XDMpPP1k/czz6eXT++c38Bm9fyYPrpWDj9xihZaPqXZIs/s3/GPAAynfMO0btYdfRvbnh9eX01vJ
Yr0yyeO318w93853xdt9fD1/naQ35Mk4NT6aU0BbRe/Hh7f3Lw/Pz5fHNMcmt1+/+l7zeWblU3r/
VK4gLJ+6eSdV6HY7eXt5+HpFb5oO/PX922vNP7+8ZeEAPtaOlas9ZM0Sez+9vb9+e3m58s/qOJEc
p41Hq78FwEQ7RtjtkfNVfL2+PDzfgEXX4NtszSRlXhMa//a3v91dQU7oC3H/Qnu6+3L6cnn9fn75
eFnvwLeDk7aWmdqTfL57P335+jzLlC+fsO0Tbf7Sx0uS6+X58cOUYzJ8o4Uavip689vV3r/7+nq6
6ojXnBf18unbdVvgNshGWjObt4dcyPLl/FZS2q8fTIQBPiPbpWTTvtqvX6+yP0EW/rsS1ltKFL+q
8scU1z9f7zyHXMfk4vcprSHhObk8tRty/6Hny6f5F2z7Qtyn2aaN3VVCTwxTW51UVp5/TO8fy53q
Y5HoO/UV1J9eHk9IpASGc1U/8nrKzQGfMsz542sqBizVayW1PpFXfZuuE9FKtUqZ65H/+ng1Ru9q
19fyq8Nd6JZu56NlTUiqqXVJJRu5lKp8/uH56+eH+be2IiLLR2wUvD5VRVByc+iJtuPUBlTkDGle
2Mfc4y/V+LylAojNVLh7fgWHUqONlA93ixYZeZkNnNUt16F8Tuzp+l8eftu+AYoedHPT9w/sw2XV
HGTrg2BLIVWNoGzlYEU2FSx+vCqgVMkC7qXdMcvdP335kB8l8uTY1EfsBFDa9pPfrCoOzi/lPr/+
9gaOH9jxt9E0u3zKnwDwWy90W8olqpjMUFKI7ULLrLnpV4wglxD35nRfUhFZuUV4hEbaJM9jHzCf
KyF3Vky0C6hJsJutFVxdjCo9J27GfEoRnH9Ot8st9L5NRrKAuMiFtOaXPULfTg+vj59zxRbAakNM
tgLDj/H87+ZwMRdbVxEJeMGPWVECbBm21lYMPOl4rVtdQ4/gTbS3uq6HD1cZuzdOf/j2flkK7NAx
k+CfzhVpOYGpODzgQ0TyU19nx/8VIFVfEYpAldO6ZXQVTm3tTwpX7Ftcf8XfQp7pEW1FnARXdk8y
qMLzNrnnm+zP87nEiPPfXx9e3lKJLjiTHBHsLP6sW/JRWTrVl9aGNKc0N3kXDleL+TUpTpT9qNsD
Qrkavzf2ek2D8JKTnEnmMRHPlQbrT3PuP/5q4GqqHuug2K/cfXn5/uWSno6v3tJfd1kJvizZ3VWu
64kgjxkFBGAZJVXNQTQ3lPmdFdEx8YfX00OuYf5y/i25XOAojqF+m5NyuSuDbXOdKPA2dItsFTFv
WsucSstXo+DTy93nMmnpl/z/wKcUJ8VNnnlAPE3c5r4Q9rZrBijRIxYnoj9D7eJxs9KInCw6JemP
HLRMf5mHwGPr2Blkddi2zpSHNYihnRcBX9T7F0nDO7RrovZymsbLE8pBjK3rXdl2HXVKbr4UAW8t
YEud9tVAvAqFT59Or283WIe+SdtUvVKzjH/U82g3f4sNZIgwsq3PyIa46n6c/zYLXuhWI1I+ovYW
VCnQtDVfeCtMCqRyGFsDBkhlz60BQ/nw68MVa3eZ/4Bg8ZbbTIUBr8o6C+FeT75dDYWPs0iGbuUX
VevGlhjRC8vr175Nu2kWeUksbbd3Aiik8Hr6cnVwn7bC9modvKX41wlZasQpbG1vfifX6VYUt+uc
eu9boPrrHfCqLDEbSdYh0+aAWtSIWlIcd9PGiZ9/PX346zmFtt/+mjVo2dhCjxrDdE0t9OMqorAk
IIN2ODJ5gX8ju3xA5TX7LVcaCRrUqje+uB1rGIqrwdRu58O3T9L5gC6Ja3451vz5i4CSNdtGNXeo
0Cze77fX58K1AK/EDot7BezViKg6aO3+D52Vr08fU88YfA4dBPNaq381lRXgFO1q87CYG7TfyhXR
mrF274psBhI4nOd76h2Q5/8vrIDQ1Glj4r/LCnDcrjD/n1gB/rBtHoBZEiF3fM02ZeW3W+H1SPjt
d0XfIe8SbzxfPpV/yJ/fiAIw7DAs8t9297pVvjYpa4eSJTe4mr2glr2qkfX6dwQ9gGKQ3AlRfdRq
eW+WueS1+XnZ4uXl+fIA1IEd3vl/H2Xr1qJiR2ZVGMDmAMjitlm1Ndbe6PWqPiEDKxBLszWdG8aT
c2pvMgdeL89AGsemJfM0Sc+1JLgSNdIlo62AxRvGrdwDC6P4SupuCNigoTs373CdSIHOtWFxFTcK
0S8sjehGOJyVQepW89ubFv+tLxSAOvXoVaKGXpKl+Ovrw9f0nPX5+tX0lgSoYBjYukI/n24NbGnP
5UI8+jFX0/EFW5xmJB9u896sZbApt7JYDx+rMV4fC/f/vtuvKfcOm+YA+NjlEVS/8PTw+pQmbc0t
8QQdhCKZEfstkW3cUt5a9hHal8we9nm/fPqUo6HtXIsNtRwLohgJ/J5oBLZC8jTMbvyRb7xcaXea
KZC/4PcvhL3e96oJmhJIOYj7B+cfCp5jhTL+NGhQENGSYNobzNfaDI2cJXteGKl+Sz9gx7lc/fbU
apV8C0d2y4FiO5AcEUzaT07Jn6Yj5B1Z/hnTfyYLpL9dLmArsW2FDDo5bqWcE3yHZ9HUvOeMizLe
bENRYsZvH3K3iTdwcYZf+daDMen2H2EEwTBUd9WfDpzKNfgmNNtJUt+uFdlwEnRUgi9AA5cGsobx
vpyezg8Z4Mt/pSnHd2xW+ayLXyBTHcg0tusn/vPtLn/y7vTb4+nr+52Y9gkNpFUwK84q8Ll17d3b
6fV83cjf5iVx6UuklSWJ8ZTd1BaP+aPTD9Cuvq0n7K/nqx78FQ4QjnLYbLLi8uslJxTdPb69Tdgm
45KMkMljZLZPVDPmqs2mbKf2JLi6eVLZvH9hN5jFvD047XBrbasN6E6yGJ8UaJPw9h7DSCvn8vwv
eB390Mr9Pus2poBklDHRVVfAkkTy6eHLt/f5qqRxJ823vYLXlrovp0+VLsW0/2cg88lUynxQW67C
/pn6iTln0KGDPtuJlL/qoNrT6b2yGuIx0kKZ9lqafcnMWYQMqHC5F9hOIHu3zKvf8XaV0ucUNBZu
fkth3AH++qld34FDRTqPstTX7lvZElTevr+8P/yGrokO7Q35DzXjGjnfCflIaZbj+50UxH48PaQ3
OvCtQIYT1z4S5iAOt4/mGVjTL7HxmrK12BjgB2yHtsnOzmyNjm0NuZiY/v7y+Pn18nL59jaXMHyS
sd6ZepvriyWL7Uai7Ux1eU2dYrCC8HReLan5oQrrSnW/Xk30ipo5R9FjuFZitx/kBvlGJwa5NnF4
JGeAkKBcILLs78TkEqdkNiEZ6ZAPkHDy7UvdxcPX85zYOkvAYKkwP0+gcjO589bOqHYupch021pJ
uN9O5pmruJtTKJ0pU3Sg7zF6w+UGOZrsm1RgGoWSUgbeJykDWQmFfu6xPkiB9Nz6h5//+Kc/lSkN
Hy/PT+iWlRqNjeXCdm4YkDmTeYwJF0t5zORamJAp5qyPzfP54+n9/AWIMsGbRUuoveYboGPk02a2
WsoCmOZKpLT31Cx/SWKSzNGg3VcTia2bFWaUDuf/HewDYGLQgfOi9bvMhs6Xr7kj2fIjZNJerZ6y
mHXnnwqWzt3MYzfxp+z8U36qlnMR14J9yOzSPKRc1gFeI60111R0D6o1PJxr9Tm10MEGpS9fvaqr
skwqE9A+HRIRQ2sjQsQRdixIX/1E83qns0+v1yMAUWyo1Uj6le2gc0Yj0zVY0eIV9IYj05GUtIvB
HPPAwCPfcrb11hiq2fkFxon8+1U/5l9PdQX3eVP36Vuz8TZJTYZad6n2jicp2QUyip8zCrlcm5N/
HJZoc0zR6VspyHE9J/ebrn7wCcp3Ov+L1vGUe0s9gWse/9tcQtMRK6Rm+pfz0+lylwLKOURXgx03
sbHlE5zcQJDcfX09z6d/BO9HE2iYO7v0iGcu6SFSMr8gR2gwB9b2V7Svz2myWv3QwyR6mT5BbRva
GGZgXc2FMx1BU+YS80FmqF4vbyJMcMEV35zO6BxcW1qd7tLluvWbNASls9gao7FLXQRsBPdk9mN8
Se3BbtmDmSiFGe/OMULjNrRd6wGpwMIjxymVv557NKtgIJldSWakdJGjW8I+js/+tXwb+FLoDPJI
WXVoKQJeI3KVtqAY2FZzRqHD50rLZEsuODXCmEdrs+pvDJ81v7CYPuaqXNLZ47pNOBgcZ64DDZWk
orWCHUkxYIPTKG0OGk+3AjQNnS6aC7H9XKvPLyjSgIBo7ZLnhsYcxZZO25WtFcT0tuaRMRojKT79
1LAH1hvFc+67EA8u5GLAd5BxNOq6nuj8Vl7LIAkTI5o+zh+ja/M4H3H+ZElAK3dNQ/r1PCkJMlVq
z2PDkVg5Q+VD6AYoIDWOinXCbvl8YplLrhah1DDfz0F2T5zJ+TR6MkyUzZbprT9AcJK9gdjFaeL8
NNS+SMKqXRLui5hlZhxTCw90gFiu6mW2YfBntHoUbux4EmdtRRRBDI3NA9fOfQIlRmMZOQLmg8vI
eHtZ/tCzSM+cFsh84jxxVNXs8sMxHlFhQP4SH6s++E6ZvXv9UPYucgb0/Gtmej/JamsEOjfa9NRM
6kXaHMc0Wjp5MFjj2NK5mKRpINdcDddzezyO3e3C90+XU5nncH55fP6WpvVMy6/zx9xEvo6lwNza
CK63NmqyafH9MkiuNvlT/u+3/52LQf58PejY8whtbmEO3hHm+nx++nrefMqWhv98evjlevZZM7X8
wdp6JH3QpnicE4K+xtcU71QTs73PXyn0/PINdBoolp7Zv0vSOWa12oG0FuA1cHte19POKK+XxHKv
QHHnHdQu3pJnl+bRhSVDLE87Pc0/4AQ7Qg0Gfvj6ZUPFlqs2RUOsOVTS7o2UIrmw4mN9Stn8dVRS
mwK7X2JZC2BatTVcboOl6RpvKcUqd1Qu3VJfUqZJWXhLOQKfbtTm0/b91gfqr+eMv18/n99PpVou
Dxw+v3z6h0nCb/6eb98jiW6MevMun06Pl9LLot75tuX5g2Eh5kZ0JgWWTLU76bfz6NW76y0C2pWM
EutbMxljla6olXvmqsEvpYr07vn9taRQvz+XrFjEI7GtY1tOcctkLO2HW27YiuL16HsFvVupQ035
TmPlWan858vr+W9X1k5Vg++vAMWOkIRIf2hKbTvZJqpOeDgIpc9XmZT/9YohQHlNGPic91Pl8HaM
MuqZiKK7h7fUnRFws2+Ss6U97U3ySjnwVWLm/2ztLO72yeIpGTlPm34DGbVlqcDvQcB7SI3dcmlR
zc1+BIdQkhB4Hq6+pclV3UQ2viVYAnZ0bJ/13ZRw8hHNc0knR9KW0HIykj6VKTOvp69Xd/QOCArt
+GWZKY3V9s9vB0IDSGyU4FLozNWErVn3gkA659Qi8hp13Ms2SuFwli8gTz+vHhqT5m6oRVgrq7yf
r+4ZcqsSqTmE9eAbnW4U/QP06puiI/mOue5o10wvlw+v88snyt74pub260+S5q2KnfPT+W5r8QMo
oNFTivdoZpU8pb5al+8pZTdNI076cSUbjeb0qW+StQpsUI0I/r++XUoOR61gSHMorpurDYWvvsJ3
cA129EVK9Ntd/6AWb7fjc9OmrZl68axJl4s76T6c36ETUnZK6JG2ERyYiNvlg5shiAykRU+h6mx6
lvIS9tmS9gq+SkiSzuchW7xa8IVRnpMA4ebM+5X402vPwzY6hlTTgUUJI9EQWiltuN7UXdp0ZYSr
n5V+UrgYKNzGCLk34FSp723QS53zQMmDRRrpmeQFWCGZeixtWc9oxELRfJEggEQ+tueuh9erO3da
8qofmYm/8+bAMkRl0eeLvLvrJ0+b8Z3lw+dUZFo90/msgeKkEVnTik1JJWRpvwjuw8sRBpKAOn/8
ns513c35jWwPGJnE7mkxOir4vqbk/9pMZ2VhmpH7yRiz0mQlcpDTnhUHuemW0wOtBnCh2o9210yi
P6M0nYL3odf6eDULX2of1Cx3EvGltoSlh/v8dJbfYvna0+vDrz+nl5ynf+q8///9M6ApP9rZ5qVf
/dlaaVVsgsq3gCqGph+h/EIOpYNNcnXe9iLCXCmaTa33h++px9YVOWDfiuNAQlv44+tDNt6SnF2I
LNVkrUsGt6taLdsEf04o/R+X14JcsLt2QyQva3xD4CuOUbFmVLyJ0Prc8Ea8UCCaAr9tRa7n5fQr
V4XFiyi4BJskIqWVc/2wcwi9Nkks69JkspBpKouqU5J2ZxkokY5kmC3ZmjAA7DkeSWI6aDfw9t2A
D8Uhl1DkE4frKqAy94G9xRhHNt4gnvL4fC4FQsgd9HEkFDZsl0jK21XpPD28oKCio6RBRmQScdDq
+V8vV0WWwoFv1botEuHlcpdCazkqcpPHeKVIImx9G7M3FI3/8Bew/yBGaBh6iz9mODc6yq8aoSbx
JUv58vEuVy+WSs+30rKkXV9RFjRwCtDfzAXSx2apVO/modTIBZKMc7UKtGkXatY/IDBaByoYSyLh
xSRDfe2enZ1hcLzgmAtd5e0P7gwLssZYLuQ//CEavTCVVBzZXTQ+U2qENwf7th4khe01sgWOEfuk
yl9PgNAtN1gVi5rusaXqV2zxIWx1ipFht/aD2mqwELxcEvG22tN8W6O08t2fDKvjkHJ4ftwJU0x5
VlHVNchP8cek6av8/QC2bol+L5nPR8nCNEtuJNhawlxZOB8CCBVqqec/gFiZC5LAzl3fZI7WR+oE
sdXdI0OJPsmo3JDFaGDy58eaeWefIqYso4Kus8/j5fVlDz2BBmAFZ0RslqfRA9P+PVE2NeLaQxeQ
0x4zT4r0ulZq7TtvA5jlYeT2jj/Ig6un/O3LS+qo9lJeJ0rRcI2r3OL52WGUBjH0bv9i1hJxRGLH
1iKdVJuT7FDyNHq46fXSWSBhC772Fn7pzXwxN70Q6vCgRWul16Jir22P1WmsSn1kfLr7dEqD07Js
+Ag0DnnKDfmPGtB/7V/V5sjTwB+nfsaSlyx9zS3Tabbq93NKNG7znRZV38XCkyCIsRPhuQYcb9BP
xo5CBTUj6+H51+zZ5kjS3SaYrhfz8dvzPgFltWM18kFG3L53cr2R2TvX0G0NPz6dftvmcqSpE48z
3VmaAHhexF8o5fTw+vz97uHx/KTvggPQkUO7Gvu+uhnnj+ccfMvKcMZj+SOyVfLnCH+NOF6xfpeK
Ee4kAG0tCPKoUL31gsuy5vPp7YTWbR0iXHvK2XcMTt1WTebNHlAuMcHX5Avla3yezcYpy7feB6TI
/+nyJf/2Sx7c9Z7GdyT3KoVDYE8I1XpCJPlSe0J8ezk/Xp5Of3x4O/3papbkpK9fTuArpKUDLQZ9
fL28vd2VHlLp8WLaarh8hTSMISNVSh7Q6fX1Ag9C+naQbI2Ht/c/pbw9AKh5kw3fhkhMXz/LRZgR
ET9d3t/eHxDnNLIl3tobXEq1lhvJLqsVPI3UDdhlY9SUUlNLOWsstMwT+fXh+en0Be1ZNn5Nr5eV
ShKtlTk3+QX8anZdhfPjX1H/mkAmFeXQdk3Ne3hOJnayj94e0ygm8AHSF6jZEe+Xn99f4cJKsiPU
hR+e86Cb7DCUqo00ZiVp42/PDwtu7giuUPzp8cvDXZald6ff8twWdBZxYOWsb5P83kTx9laxmVr5
PXBaWrWNJVL9ZPq9m1gaNH7KFbhvOeMPNClLHzSS1Go1PbS9nBTDnZhYWSvfvZ0/JB39ljrbfQeb
Ve3bRWxsGQRPu/NZzz1v6iLbDBe1DWPaIkHnx79+Jy+yB2zCr5rqgattQtSWxvPp4fF7sYjKs/2+
wDwom79Xn3Xy9+grd/X3tlj5G7iMhrDcM1nXUsiM9SL/y7dSUP01ecCzTpaO9t9sTUOF8jMIK0l/
Tb1X61+11ZcUeiyJTfOHrfQF3fp0yzZAJEnaRNb5UeSqJID9kjauNNt4lUWF7roW2F9fT7+c018q
PU435lpL8lIuv7knxcZM9nTG6PWcH18vX+4+vSarulgLb9Oves06hi9SGHO6meIo7hqx1kZNYKJE
QpAm9xTIzYb5zZKmpnZPVEwjDb497aZ2xsL2hkPbjP702+y7se0kN9zfwsv1nXkb3JcwO6dT3nBV
2+Xe8g29JPas1w74PO+SXv7uG3yos5bg7uyWZeJZhy5inJftwQ04xRviV7vn5ZJf5fL6WVLD9rdO
mlEPfKHNdO+EkXLWjt3fKl/T8ImrAzk/drtY0rmyckvedm3RWIV4na8x+lQghy8J6bV/pLJzem1n
TUZrHXe6zVwvUcbS/XAukTODkpun9aSfz+/FrqptBq+q7mtzOaef28IovjiZVZkJreZX0Mgn5Zu4
bbDp1ZT5a72DxbV3IrVmg325/so55eYU8tvoEYhA109lqJuX880LxSHsNk6KydwtmgPEnlOEx0tR
7lEzlJPUuFNm8d5tx1pDcXUnh2Jk23PmfDDjMiNMEsyTOhtOhon88/yWYnvgXdrtIcp3vWzqN3M7
3yTYUinSy5w9XRzJgm38z0p9WK4MYmVHOWdHwQRoVTj08kqEu0a8nk4pMPI2N02IoZEylqqf/HK5
O9IDFqxS8qMQOfF3aQzrGeVvz6aXr6mmox42v7GVRMNv83zSvEvNlX5NJpViznmCQ1gs/zIRAjs/
i0KqPki57yyntSTHM9VsRJdKnLCR3pF/PQM7VBPiEfsodyONtdr+EV4D1ZvNpSvXexUIfzu97o2w
pxHfzC6SoXMLtf1yORPRUFL2J53T824il8RbG+Q4x1+DiLvVVVYr0fDtaW/+xpIWNnHUSV+oueSW
coS4Bf3OxbdUI4Pzx4U3UBCSqxp601ehWrVc2j2y8o3nN1SjGA+vr5df66l/neUUZ4nvmJwzdBeZ
WpDDZQ0xWvyeh1lSJPaHua1nNFYTOozkz2Z+Nd119/b58u35Kcu6ZJXN9Q65wfa00AkU6o9fqeL8
+H6TYCG6KGUlqer0zkauZcbQlDE2TtJzg1B1s5mqKVtZ9q67olxD/nz6bdZ7N6NYze8aqo65vW0t
dwfr6Dk598uI7xO5+ppY2XPnPQQiZslU+IGHi3WfJ6RCnsdWyr5S0dtciHBhTh1whvCFZpbcl9tw
PEcMnRoS99oFIefmDjX81G4pn57OxcAqZXK91zAXC5LpP6XgFLjMHSOqOJjdBXPQ6iZ6g6Yvj+yI
H+B3IiTpkNv9ua4kfN4tXu3yp4aoOeqVh6f05F0GRj/e6hDIwDx3QxNYUzVY/9CGFIvu4icWTibN
d8in32i3wPwcR2RpGu+tmLktNTvTYZO5iSSN5sZUebP9cPr+RvJgUJZwNqyInVoayLFzPl0yZ28X
WmRp0S/pNeDh/X3LkLiy1BwDgjOwgLPjMvIND0P6Zu9l9cDmXmRlAfhXOS4NQufC589uNuRS7zii
d/IzRRz6qdSS2hi+IO56Vdy0mluBxPwsE9SrmtXzsyoWd6lKsdYm3X17qXbY6+kjjlpYI7gqtDtn
81BLTRm4YdJDFmhmNACqBLS2vJv3Sx5YlPKAXw8PAnMGN8w+UqZPb83bbfNDSbr7PDqq48jomsdP
5Pzg1DANh/D10FSQ04CcHquFFHNI0iTP12PvHkgEEB9Ry87Jubyer1K84K2W5T2f3pc63imq/2Qf
ybnN7STBK8XGcG1cn6mGvCrcSoRkTKgymVYcMh2v172gPRtH3imwzW/3+YkKpD1KfkzDAr/Qc66p
alGBwEbkitR3cyE/5YD4+WvKIrp7P6dscRwBovH5Jp3JtZKCkQW2nCfRXd8avze9McsIzqKzG3en
f1yuH0ySOdMFrpPWjoOZSgNqzpGuSP3ONwrpN92RDNBGw2gy2rObOzt+HJrFIYnjPLUVfUeuxQyI
1c7KPjNlhZGdO3F95hi0YhQVEHLuNncxfxpHqM2JaoHG1t1glbmWdXvgFszNnvPc7rBNpuYJY+G2
N8BWu7J6ATRcxPq/h8Tnq+jR3Guh5nRMfOL0RGJp/Pp6ITmT+5SLSN4/n15Xz1NmeNtvX5/PuwLZ
zlZSyJfxdWoW0XfjxdOJjYI9xmw+t5rHTkiMnEz+K6p6S7rMYQf8mEwctfSEaTdnP85ZJDAdVqlZ
yPlW+znhmz9i5/5IF8eujKvmu5I8AFhf/YSeBy2UGKVebPXUQ3dlHqsRmt97GIVjt0dUGJF13Do0
0BNbuMLkFTG/ClscGAHmNE2NIcUVN8gwIJ01j5tVN/38fp847z7z8f2KgxWI+04eHEG2e1aVJJiV
7MGtDXCxf/tUjffLPIZM3w2dbx14hZwLdsEzZOoLUslh+sOWxvMP8y5IWQuLUc5M9TC40X7MAMNu
qtNDjarnBqyMo5eVv8/MAzaTZ9atlX9vsGDO8UMkAxvMxG4as55f7dzCov5Am5XDUnPu5ujR3aY1
4uKP59erwXP1P2dztTITkwBI808arSVz6er5Xy7AjTDj17o5k0g1EvY3CKO54Wcd8CmHxraaOgjk
PCFPZxC37m++vTALD/2w9T4X8mJkUSDPkBSlzinEEczus3P2pN7y5b0usj76lfDsx8vzVVKVzhC/
vYNcV8tyXfWekJuLs77lQr8P397f8SDHnH5L8lGbQVoKGUpYqxr8iaBTSIu8Es2/6uNof/WqWm7m
VuxXFtqbpNV+Ryn3qcaISKkLSNVtac/plbe+MZLORBlqMOMXoMi3xOL8xL7HmspHcnery4f/LFR4
pYrVp+L+KWIXVrGTje/yWPvh4fx8V+s4jx2WwPd9+z7t7Eo6512p+DlTco20zj9WScPELqL4dPn2
YdvQj2PAtR36LoqaLJUrAydDvvQhaSmUmT3AV237aqtEIjvcdveSExvrNO3VXquLkr/aJCSxh36D
mfP5E3JAO6PbWG1FMcJJYQba/fv8lBsrv+WI9l4dV+rNFgnuVUGq+s5uSfJqs/lSNcv7wRJMz0ol
Clxe2QFraiIPcg91VZP8c1l9SXG83nhJIMftPYoAjH3VQE/oVXndyj15l55XEAxH1pOAwm1P0iVp
n5RkNI3fo5mW0lLETqOKZdvtBnWKNusabablHnth/I9UfVgyoWcPbZU91u+VOcgpx6pGzOdsmm+N
lC604rebsZBKcsB2Y1/1UpO4H97OZTzRzN8zu+OYpzZnH1/CFACzP/gWiOZNz3K9zO4dZYhSOAhf
Kc1uvZY19O5kz8J5Zk8lyBCkn8EsBcDsUekCQQdMf3t5rF3yJsRn9izItkE1YpnKil059vybin/T
wQCN2dOq9kPvaHJziLZGnqwmNIzpmP29stxeyy/K7VruSr+W9I6TbIq3+dHCkMomaVBmzygsEG6/
z1LE3te3V/tqLorMHpotHyShqUkGktmzAnYIJaFLb/ZXzYIqv7v0szxys2ezlTVaMUGeIbS/JN/V
aggQIDF7CLyRD35xMntQtECEXQd+PJ+en1I05e399ZRKJK/26PPp02nS7sbsWZiFDlMow9aS5vQW
1/FEyRN6PD0D3iLbsi3sOMkKMnttVYFokYeyPpD2Zg9Nlan1exBuFrA0e9XLfmM7mucCcxsEFKu3
5WCGjNmf3NsahfLYiwqSTW4oR8RcKmjF2HMrpDi/rJAnGQFVeq/dPbLJeavsM02e6lapO8sDN3sZ
zn7nUs1pLleszVW02V9ZGgXZYmeSLIfuJG93V0vg7svpNT0RlT7rt1tcugaIVHXAa8LRp9Ply+n9
9fvVIPjaugDUVjypOBD1li1VltyojdxwL9ZstTaYhVERBowMQUxE12bqdqnMWxe3grI2MoXmhMyR
Eoht25z7bA8dcwfKOjXiuzT3N4ekWEl0ckfpJpowkBI8zqn2+cbkmILxZuCSqFjNW6m5Z3vO2Obh
5xPstQJX+Vqe0UBcgaBGZy6Vx2hgfjWoL0GlRDntP6togBdysTRlsWjWvxvtoaE9G1mx81YeHx4/
n+5yN9bHy2tq2FdIJ1VWP53zf9clUwvZeTZpcQgci+nUt+S613oLGXB+p1l7hdHw5s3UKHGrObBj
c32N7Ds0bYG06RfIEEzTkjM/PX//Op+qaBwfR1gjFmkaVqKBxdQh4/xoOvT1Dk5zEDeaXwweXDKQ
HWG2CwnOoc0I+uMl+3era4mjwTTkWtardzPO3dZLYgEW+Dgmyl3lTm/YvJ1/owRVn06Xq5JLBPLb
9CPtjpO55vq2hvMT8OGluvbMGRRqEknX+iHkNFbURK+wLmli0Kr2tuzKfdBEDpsAYUYCGS2BtA/f
FDXYe98z+7ZIeRLXTcam0u7Q1Oo19SFMweL9FRKHRoQk/Qz2hNJaYnL+W3p/eD+lLC/cjSVLWRJl
MbvFt9b7QN8TuV3+iH11d9lpbRWZbj+piS/YiiC3nCSW2iYuJjNq6tYtErgLMh2LMykFGn8swpd5
o44R0jaGrXZnTZ9MF3y9pWnblbwp0j7EaTJdvdb+1z4iGVbOIxVOKu4Lr11XH7hnJ5ahBM/97aq3
Zgk6Zn/82t0MaWHNpNnfh/bI0eZQq/muAg+z1Pi2MFP3zAnFXKcqK+V8V07KEQSKTjmCq9aFCkWn
PHdpt3PouXsTeMRkgwDxLOdH93E1tT5Sc/DQrmazUbdpAKi9vtlrR+olkgmBwsy3FiOLpNSt/Xr6
8NfzLpf2rjq7EpluQRF3nw7gRIEv70bYmWzhLbkxD6tsU7O3r2iec40f2DAn0G4j7geuaX4pBMGl
2MSsPtunh6SczVuWUkMGE3oujGJH/Dhhy+zNJHp6mfXzMHsG7QFCzWNGwQ7PYfT85sQQwvo5hB0J
ihnRbX2jPrzPkU+Ix9k2OnJWuGL2KoQDatxc34jAdIGMy2itC0NdoOcSMWqGmk3fWCDZ9XBXGogd
wfWmhM2AzJ7x3TOn0HMNFd2QKEDI1xsu2R0sWTd7hXKGSLHE+sBfYuElDwgMyzN7U4n+cWRBh3Mi
JIrG5RPUI1g3v7zu0AHWppq9uK+RrfkBOTlzNcye+1JwoZeFGWZvTNIbIVKIOb454Rm3fFTzekR4
W3dTko5UHvTkdBq0CZL78h6qxgThiW8cdkdkFtHOaxjm/Cv8zpHX8CPvWcxHMRtHRzm32mDp57sS
PCQRINbzrtxo2vLMkMsQYbgrASCa+0zmwwkB7sPwG4xQQOSTW3aDe065mENoPpk9QKM370qNoi9C
gDvv7sNDNZIhJKdEC18BMoQdRa5m/bPyybsRxRG6RhlCscjJNolY6LnwimbEzhOBi9/1nCKPvDRC
K+f6uLbVKRoj7AkH6FnLd6+HevmsFeTojF2wBegkP3SJ1HyLQY8MGTl31GpfuIPJYOYQonMGzfLt
zMuhOrdxvkZ38jBR51vJ9Px4zbxUZWpcJX8HjNg49CvBQ5tXQ9vOzCFip7o303pOSzGMrnap7FcD
eszePqc6iyp7jIV/SQVvUarGT/PQjGkpcVnY4o6hGUQNs+j2VN29PCH3r1fz77iWSkeqcPZktzq4
7/Q2z8bbCjD39MvtQgI4MFm11eWUB6xjKUFKvxu0Z59/3nuSY7m3fZxpk5IKaBkedhcPHEKRQ5Cq
r1Kz9nS+/iU9mfU5l3B4SsGnZd/dS5AM2IrnWzHT0cN8VOMJbEPybeiOwvK5EvA2xSc/jr+BS1Hs
zrfBaeDO+fMvvPBGguSdtI3H2aIRe2I4eOvzrShuI+ntCibqo7iYnAt2Sa0BF7jRre067nU1CStv
VQiW+rtlSYwFASAhpw+5sMABLlRnWRquGs9RqC+t6BDVHG+0gf3cck5OnpsA/PZ+qVmJcyMt8se2
PV9sbvxHPTTlgYMRPDdoLe83/Pq82qUVduzU+DmEZ+7D1l9yvksrJN/l0lC3wox35eYQxCS2y1iz
2tufFmxL4tToOQR/RZS1MgR5HFHAC3p+XZNR95J/wwUJTkZmSUbRjP0icC5/QMXCI4zxBy/IRDt6
70a+V3QHT2q5LfWj2wrdhaxdwsCDEynUUEp+smlM9SZ+fvS7I9cL0MGgxqaFU9bJzeUY1atuJp/h
8rZ0pMqzPFFpain197xeZKo0nt9fkfVoidKLxNCywNAiINSnlkC1Gn5wN5nXVyq0Stk9S6jHZSBb
bxTDA5ifS4/SGh+7KuPD/c13HA23nSRk24KXdiXpb1X7OqB9I7dYHXQ/M4j2NzoNb58vr+/TCZFF
ZdvRPe4zmAHaVtchI7d/7SgX8On0npK7nsoIHMA05G71frdP548fT3m2Cm23D4xXUmCVu91EYGUB
nA0JuZSX//n08b1Wmv/b5etd7jNeZsMBwiUSoRSGR+hwF8NJj+zwz+f3rS/7yG3AOTa+tVrIPmzG
+ejWrj5RnmIDW8+Vz3UeooSqsnAQwW5oDzKT0pGCi6HMngVDizCyQxALVrGKcyoinjvgLzjFWK6m
k9c05OJIAYRqhp2axTMW+WALXdjBw4e14uUQ30zsZSSkAGGx860J+oY+Jg+6nDDSIfsVK2siCU1W
pg6+rZd7lLweMtxC4oCUSCVkbkIjxiMu+CzT3Lry+vMnIBYaxrOZGeCbbDmaHR1tZjoVdnM8coR7
CReVFbjosTDVqLCbHHmGiVE43qepUr4NgyiIzuU5kuVXbtqqfDLlc324vL9fvoAvCqYPLH4/Kidp
IKmyqrZautXhSLeypSAbyTsczIRiBlENZO1AFBDbQGjKkgMgvoFQr1ABED3emAYg5gDScvgvH+94
bCrnDi4qievr5DHwAKxRYUYKYBv+sI0YPg6mrdnswJze5kDtGswtQm6gbU85nR4EaGYOajmcGMU0
Z8H1YlQart3CMfZW5l4mOQ2kFuX0pt2IcdRKGpDss5wxfe+FtanTq6oRv79F9/ggpFXrZ64iI6U4
LcRGfVBsknkPGV+t7fOnl0sZ95dbwgHZY5jTtYXs99K3m9qmlS95jnJRx7B9fG9diUDDsaLEiLJp
11ZKVIB/9jscg/p03bscZbo3965Jtu/im8Ttik1VamCFKTcWGcBVIw4mjZc4wFV2KGV+Pb88paS6
m0w+SzxE4rTMktAKMw9D0rMstLJTwb1nP3dqith6A9zLLeUtb0sD41or+PSxh/5BpZVvrYC2K9pK
NS24VRNHTj7NCn/Oxx94VAADhCVTtY+0AaZbFNNi6NLdrJIAVnicSIe56b2NhFwZ3jRilDMkKjNY
wAymMQPpKLSf70IGRS6dCR5+2spXDaAwM6SwrWoEFjf6NgYh+z+RzCYmfYWJMASSirOm7obU1xmr
VzPo5fTpzuX/AX5cGFHMrGq4CLHhc2eyxDt9U8I/7XhAQClil+fS4EJguTKjGXHzVnIFMY0PU4Cr
NtWepRAUoaH5WdzAk8vP34+vl+fnDylp4tsnsAM1os/dLt2/W324G2LJYuiOKXCjsrNkqwBzAAtW
j+Kes/qHgrjuldMDIgD3zuWVCj/0OJZ9Ad38mhzX8ze4QmHs1wBXqDa53h2uuHaFtP5xVyjuIAm/
Rq5dodpfyEg2YfJGl9gSqz33Bs1/6PokI8H1izC0fRSIOVMVomjMuWuEd5WBgFLdUFwZENHQdmjJ
SCDoZRen87B7SUEIP93WTcKCjRn+ao5b0haLk+9L4xKHAjI0lSdhb1wjWgSSZWF0rxcJFkABm1Fq
RVNjPxjsqtXFLddnM9zApRk/0mQjT/OMXxes6AwTDZu4FIoZuw8aaF49jIENMqJudrZr9myPgpZ6
kv2L64fB0fmmjEFPiAAfNvL7c7B4rRC3HuGjxkRqQtFuHMLctZqjXRVtfmleRLty5DMOgyQaOEla
DKWRAQpdx7ENAHBJ40c0Bwng0mhIW/2TIH7ecvB5kRpWL5dmW4HbkSOs7a/zxfJOImIV5gvD2FI1
WeoB29NiqQsH5os7iLBWT5F62d9SVKyDYGXVLZrRlOJb6SeRei2WwNDnh1/OIHVQkzw41l97H75F
mmIuPCVNQqO53H3LTvs1K43nH9ia2SeB1rTkrXvrnpiM2/c4Na5LK0M151X7Zm8KXJtHpZhqNc77
7N+pmDD7EPtjVere3uXb2+eChaQD57mFZu98XdOqadPG1jX7ejUnhA6STJ+MCVmfEkaF3yj5xZKk
qZL/L5bZRdaQDKZkd4t1DpMlSWYx0HXmqTyWJP+wvOrcd/Bua4j//vrtDRTQWkvz0XPj4JrhsyK7
Eu0Q4+f1Fd0VYPo27xrR3kx45Ss0uB7rAZKx8vXh8Xw9weVllYuiSV6SyhpW/T7iLR8jL2kitqE1
t1FvkSv06dU18r39Zstn6POjqS+4qz5Xr5dvL7V9WLV0Pj88fwQtPyLteKXFf9zSbxqIfNJHwmQn
XYHGsDc2gW3dP2V0bSJPmTI8a7G0anjRPqpaF85bW4qCzZLGHy6n4/D2R6QlR5lYdre30FlpU82b
lIQf7TKrQL8O8m3W+6C2mar9dtIELYxWRXq/tteGFEg9v3wrbUFXjcbIF+yeiLyiyNQ8pllyyVF7
A5gkfUWK6LV7f5LW3aTvgocpfwscqG2Qtf+hzizgboRlrVkSpZZ0plRj8T2DfE0WYmkF9uvpw9PD
+8OHNDb3aoLmt8DSi/7u6cNwkfzdbQqgLOUFdlMD+3dfv71ks/bh29P5gnKbyufM/jmp802Wa3y7
+pp3T5fHb7lhe/E934qdljvzvz58moYNy4fj/uEUMXGWTIa4++V85d6U3jBTOPkT28wPyTi/orMG
mWfQMbb1dRsqsQF/eKhEmiTctw/5eHffJtO78udC24veXcxPl/Kl98s+ROtl5qTnr6i2Kbl3PBsg
BVbEZeSItqFMxVsWSe0l98v5AUUMyhX5tpvWzHTbRrX+Xy7ghoxgWNlCf+lF+4rVL+cyKCgjN23o
8vL4fJ7o47SX4Nmd1eem9/OX63ZeTx+vv51byD+usi3z3nT7mMp9U69/8hM+p7Ze6f4+ZV2cLKGJ
11AOKxvGU7KxrO2dr8f99eH1qiW+5XDWNESUT9iosnWLzyRUNeKn+tjw8cp6qUkNvsMYiDRorbWq
xE0+ZbrAuRwvZEBIuyVPfbqCf0tjK8tQuMtLOtcdudo5kROisHsUJSO70VRrGf0d0LgZMV33JQBu
d/BEqJWcmAjY7q4XBZ8BxmJs20pGYyWD7btXQf7L6fXt4TkldTy8fX95/Px6ebmqFLDRRlnZvfX0
g/evJ0RSV+gmVNJTmhd7QCEl4p+TmXU90vvssbswiyO0vYebGarOL1eD63qqX96unnualwLFpWWc
vPWrb1rqav68v16+7yoGaAHdkOP3N8vsulwRXHkZnIyAyz0qflXuD1sf18Qq8MKvKG7oSQGD6j51
khKSsibqqPWsHjPZvrnPV6E3R7HkB5M9ih+fL0mC3GYHSMUvLE41U4rrvl7PC7DVzprTcBQjpp3H
spx7gTJcNFGSVac5GDvVbH67fLuagHcfvqVHBSDqGjHo1j6QfO/qsO3YT8ZYevt9eL/+C/ioJLTe
ekOTj6ZO1ukx7PL1lALjyLqTTWm5FA51VSmTr11F3vnjue7x7dtbqrRJ+Vbg1ORu3e6PENvlTC7k
6/O3WY5VpjrCTlkjXv+MB7GMpboG0m5smWFx7Dkj1DkhdQbaj1lV2nCrSvfYv5oiV0OmklvlMAXu
s+lW0zTY21VDvN1VCZ1flzZ7+soPv4DdSSYKK2Pl8ozUkPvxOYUYbpCJomGMZO0Nd3VFPt6SYu6I
0UcpdHp4nT3/FhxJZobWqNLCAUmRorxVsLUmPGyeBTalC/ANy2h167bZjlcZ8GY5qyzjRRNvkECX
qxj+jAwdadglaA+ptoghsMWGN/JeO94i2BOxTNukAsxJ4GtD9bnd4afrgVIXw6e9aeniVgOXGA7K
2Jeb5axkhvReu0cEWx5XX5PUqnB7q4HBuXxzTJ1WFhs5WXM3IXC/M0Um8pGfH97ThzLMl4fHu1//
qvLfHx6v7sOVVc7P5/cSudgwm1Jc3+uD2S/n06+o6C2FFeXWj15vDXZ1rYgumqa8K709X34tCxOD
ueqizfI8/21OcnUptS+la8rmFtTKGYZvjw9XMfnxylbg4UrSLDmbFXGxhb5+vbsevaa9Xr/0nFT6
S0UF+lx7vEpPJHYbwPd9P+fT6eGphc2Sv/uaU7hPvzw8f5vJuPpxwz9eiGO3rotLmpF6lw7wcvoV
fayFw7O2cttOX8hWy5erxXrL1ZRPW172onyNXD6+nr++b1nZheyuN3R+fts2n0jj9nVIZUu28GrY
6evrt5eE1wqUg3pfX6+S8PX9e3G9//Phl4eymRkXKZEzFb22OZdK1TbHRQUn4TPXRxUHgd1VfiQo
rx9letXbL6U/T2r0/rb95C63fS8SbjoJRZpI3xazplL16+1rV92ZesF8e9llG/heexp0Jsvv2gzs
48NbGbN4enm8PG0thX5LEz+vvsLXK4GUHwMsxh2L2xTHbehL+RZ6Qs9fyHGieg99YUU18dLXEt8n
3kyZGN+uQvjLlWuvIuDplMfezz+fn3PqBsVeHbX3Ifr18vqUnOq3E9ih2T+RbVzBswrfvr2+Xj7l
vrsP51fwGbt/JplG9c3vy/eHly8Pr3dvn6/uPcJ0fiHb8JRde9OPTUyK/BkcxLfLIjXLNcH6/fvX
01Uk5uytj6eH5Mq+gd2o/VOtPv/988M53dmH0nDneqy/LpMGy9d0O1sOWdSYxa+nD5ljigV73dr3
uy9X0bU1j/oNkZUj2M7Co07+ffhyfv5e2gClT3/JHuHT3Yfv0H29Iq/RKZla9nz+lFGVtPfTOdkw
czvq+g0ic0T+Y0vOuJ7v5aHMrs2Q//N0+tvD3b++XtoI2/T4eH68WhhP/3llgHmeb9GehmnPSmwf
zk/nq0BO2TE5XpZG3oAMl/Ilu38pPwOq+mDe6C7zUVJ2f70eAt+zIDJ3T/14TMonj4nat3b1Y7+9
/PXl8utL3iXAaGOqlJHhqwxPoZdTKXz8eH7OrwF3X64qIxM5yBqTrFosf/16R3IjxofXx8/JiN/E
5daeH2TESdrzKUugavIdtoU+QcvJS6Kqqmm1xewsJ70agFfbaBPjybRL1dCn1+t2EWE38bb1eyip
DL+cNmWTrOarXr2qnL+evl85/Al9rkmGbJ5Wg+vbl68PTwk8QacndCztvOZiW/4HMf6q3fr5XHyD
UheArebrFwXnX4+/CD5EBLFsLWce3wqunq6K68MlxaFfT5+Sy5G1yyviML1zmE+H9QlnR6v629ev
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
AAAADQAcAHN2Zy9hcy1pbWFnZS9VVAkAAwtppld1bqZXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAI
ABGABknbCNNCOwAAAD8AAAA/ABwAc3ZnL2FzLWltYWdlL3N2Zy1pbWFnZS13aXRoLWRhdGEtdXJp
LWltYWdlcy1kaXNhYmxlZC1zdGRlcnIudHh0VVQJAAMRbKZXC2mmV3V4CwABBPUBAAAEUAAAAHMs
KUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgA
UEsDBAoAAAAAAAl+BkkAAAAAAAAAAAAAAAALABwAc3ZnL2N1c3RvbS9VVAkAAzJppld1bqZXdXgL
AAEE9QEAAARQAAAAUEsDBBQAAgAIACSABkkh9PbwOgAAAEIAAAAwABwAc3ZnL2N1c3RvbS91c2Ut
aW52YWxpZGF0ZS1jbGljay1jcmFzaC1zdGRlcnIudHh0VVQJAAM0bKZXLWmmV3V4CwABBPUBAAAE
UAAAAMvNLy1O9c0vSw3JV0hLzMxJTVEoAbIy81IUEhVKEovSU0sUyjJTyxUSSxR0Dc30DMBAx8zA
CMrkAgBQSwMEFAACAAgAJ4AGSa8ttg2RAAAApgAAACQAHABzdmcvY3VzdG9tL3plcm8tZGFzaGFy
cmF5LXN0ZGVyci50eHRVVAkAAzlsplcyaaZXdXgLAAEE9QEAAARQAAAAHYzLCsIwFET3fsX8gKFB
rBpEkFZc6M6FC3Fx2140kOSWNK2Pr7d1NXOGw+z7B5BD5ybTRi/Ar05nK+WkJodavKK2dayuXJ1s
mqKQkDgkVfLATlo/9ttmuc70HdtDjBJ3BsXxb73ThdPZBi6pexrYMJCzDZqRQDHSx4ASHFOXIIHB
jqc7+H4cKkaQMP9yFDX7AVBLAwQKAAAAAAD3fQZJAAAAAAAAAAAAAAAACwAcAHN2Zy9zdHJva2Uv
VVQJAAMSaaZXdW6mV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAAVgAZJsYTz5pEAAACmAAAAJQAc
AHN2Zy9zdHJva2UvemVyby13aWR0aC1oYW5nLXN0ZGVyci50eHRVVAkAAxpsplcSaaZXdXgLAAEE
9QEAAARQAAAAHYzLDoIwFET3fsX8gA2oAW2MiQHjQncuXBgXF7jRJm0vKQUfXy+4mjmTk9n3DyBD
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
b2cudHh0VVQFAAPwa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAc30GSQAAAAAAAAAAAAAA
AA4AGAAAAAAAAAAQAO1B7zMDAGFjY2Vzc2liaWxpdHkvVVQFAAMaaKZXdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgAD38GSSFMHCxpAAAAawAAAC4AGAAAAAAAAQAAAKSBNzQDAGFjY2Vzc2liaWxp
dHkvYXJpYS1jaGVja2JveC1jaGVja2VkLXN0ZGVyci50eHRVVAUAAx5rpld1eAsAAQT1AQAABFAA
AABQSwECHgMKAAAAAABzfQZJAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UEINQMAYWNjZXNzaWJp
bGl0eS9tYWMvVVQFAAMaaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAEX8GSYWLnkNpAAAA
awAAAGEAGAAAAAAAAQAAAKSBVDUDAGFjY2Vzc2liaWxpdHkvbWFjL2NoZWNrYm94LXBvc3RzLXZh
bHVlLWNoYW5nZS1ub3RpZmljYXRpb24tYWZ0ZXItYWN0aXZhdGlvbi13aXRoLXNwYWNlLXN0ZGVy
ci50eHRVVAUAAyJrpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAB3fQZJAAAAAAAAAAAAAAAA
DAAYAAAAAAAAABAA7UFYNgMAY29tcG9zaXRpbmcvVVQFAAMiaKZXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgAAAAAAdn0GSQAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1BnjYDAGNvbXBvc2l0aW5nL292
ZXJmbG93L1VUBQADH2imV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIABR/Bkkm3n2RaQAAAGsA
AAA9ABgAAAAAAAEAAACkge02AwBjb21wb3NpdGluZy9vdmVyZmxvdy90aGVtZS1hZmZlY3RzLXZp
c3VhbC1vdmVyZmxvdy1zdGRlcnIudHh0VVQFAAMna6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAA
AAAAdX0GSQAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BzTcDAGNvbXBvc2l0aW5nL3JlZ2lvbnMv
VVQFAAMdaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAE38GSWjjAt7BAAAA8gYAAEUAGAAA
AAAAAQAAAKSBGzgDAGNvbXBvc2l0aW5nL3JlZ2lvbnMvd2Via2l0LWZsb3ctcmVuZGVyZXItbGF5
ZXItY29tcG9zaXRpbmctc3RkZXJyLnR4dFVUBQADJWumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIABV/BkketFiOxQAAAPIGAAA8ABgAAAAAAAEAAACkgVs5AwBjb21wb3NpdGluZy9zaG93LWNv
bXBvc2l0ZWQtaWZyYW1lLW9uLWJhY2stYnV0dG9uLXN0ZGVyci50eHRVVAUAAyprpld1eAsAAQT1
AQAABFAAAABQSwECHgMKAAAAAAB0fQZJAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UGWOgMAY29t
cG9zaXRpbmcvdmlkZW8vVVQFAAMcaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAEX8GSXgI
FCeNAAEAYCABACMAGAAAAAAAAAAAAKSB4joDAGNvbXBvc2l0aW5nL3ZpZGVvL3Bvc3Rlci1hY3R1
YWwucG5nVVQFAAMia6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAEX8GSeoYesR5AAAAhwgA
ACEAGAAAAAAAAAAAAKSBzDsEAGNvbXBvc2l0aW5nL3ZpZGVvL3Bvc3Rlci1kaWZmLnBuZ1VUBQAD
ImumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIABF/BklnxCQIiQUAAA4SAAAjABgAAAAAAAEA
AACkgaA8BABjb21wb3NpdGluZy92aWRlby9wb3N0ZXItZGlmZnMuaHRtbFVUBQADImumV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIABF/Bkmswk9cDAEAAP0BAAAmABgAAAAAAAEAAACkgYZCBABj
b21wb3NpdGluZy92aWRlby9wb3N0ZXItZXhwZWN0ZWQuaHRtbFVUBQADImumV3V4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIABF/Bkk6bDm6pgABAIAgAQAlABgAAAAAAAAAAACkgfJDBABjb21wb3Np
dGluZy92aWRlby9wb3N0ZXItZXhwZWN0ZWQucG5nVVQFAAMia6ZXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAEn8GST4nGvG/AAAA8gYAADIAGAAAAAAAAQAAAKSB90QFAGNvbXBvc2l0aW5nL3Zp
ZGVvL3ZpZGVvLWNsaXAtY2hhbmdlLXNyYy1zdGRlcnIudHh0VVQFAAMka6ZXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DCgAAAAAAeX0GSQAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BIkYFAGNzczMvVVQF
AAMlaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAdX0GSQAAAAAAAAAAAAAAAAoAGAAAAAAA
AAAQAO1BYUYFAGNzczMvY2FsYy9VVAUAAx5opld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAB1
fQZJaZ3HUL8AAADyBgAAMAAYAAAAAAABAAAApIGlRgUAY3NzMy9jYWxjL2JhY2tncm91bmQtcG9z
aXRpb24tcGFyc2luZy1zdGRlcnIudHh0VVQFAAMeaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAA
AAAAeX0GSQAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BzkcFAGNzczMvc2VsZWN0b3JzMy9VVAUA
AyZopld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAB4fQZJAAAAAAAAAAAAAAAAFQAYAAAAAAAA
ABAA7UEYSAUAY3NzMy9zZWxlY3RvcnMzL2h0bWwvVVQFAAMjaKZXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAFX8GSWxiVh5pAAAAawAAAC4AGAAAAAAAAQAAAKSBZ0gFAGNzczMvc2VsZWN0b3Jz
My9odG1sL2NzczMtbW9kc2VsLTI1LXN0ZGVyci50eHRVVAUAAyprpld1eAsAAQT1AQAABFAAAABQ
SwECHgMKAAAAAAB5fQZJAAAAAAAAAAAAAAAAFgAYAAAAAAAAABAA7UE4SQUAY3NzMy9zZWxlY3Rv
cnMzL3hodG1sL1VUBQADJWimV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIABZ/BknOd8EdaQAA
AGsAAAAvABgAAAAAAAEAAACkgYhJBQBjc3MzL3NlbGVjdG9yczMveGh0bWwvY3NzMy1tb2RzZWwt
MjUtc3RkZXJyLnR4dFVUBQADK2umV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAHl9BkkAAAAA
AAAAAAAAAAAUABgAAAAAAAAAEADtQVpKBQBjc3MzL3NlbGVjdG9yczMveG1sL1VUBQADJmimV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIABZ/BklK+9XSaQAAAGsAAAAtABgAAAAAAAEAAACkgahK
BQBjc3MzL3NlbGVjdG9yczMveG1sL2NzczMtbW9kc2VsLTI1LXN0ZGVyci50eHRVVAUAAytrpld1
eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAB5fQZJAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UF4
SwUAY3NzMy9zaGFwZXMvVVQFAAMlaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAF38GSQAA
AAAAAAAAAAAAABoAGAAAAAAAAAAQAO1BvksFAGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvVVQF
AAMta6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAeX0GSQAAAAAAAAAAAAAAACYAGAAAAAAA
AAAQAO1BEkwFAGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvc2hhcGUtaW1hZ2UvVVQFAAMlaKZX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAeX0GSZ6SydXAAAAA8gYAAEAAGAAAAAAAAQAAAKSB
ckwFAGNzczMvc2hhcGVzL3NoYXBlLW91dHNpZGUvc2hhcGUtaW1hZ2Uvc2hhcGUtaW1hZ2UtMDAw
LXN0ZGVyci50eHRVVAUAAyVopld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAXfwZJAAAAAAAA
AAAAAAAAKwAYAAAAAAAAABAA7UGsTQUAY3NzMy9zaGFwZXMvc2hhcGUtb3V0c2lkZS9zdXBwb3J0
ZWQtc2hhcGVzL1VUBQADLWumV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAABd/BkkAAAAAAAAA
AAAAAAAyABgAAAAAAAAAEADtQRFOBQBjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL3N1cHBvcnRl
ZC1zaGFwZXMvY2lyY2xlL1VUBQADLWumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIABd/BkkA
nPrgwgAAAPIGAABVABgAAAAAAAEAAACkgX1OBQBjc3MzL3NoYXBlcy9zaGFwZS1vdXRzaWRlL3N1
cHBvcnRlZC1zaGFwZXMvY2lyY2xlL3NoYXBlLW91dHNpZGUtY2lyY2xlLTAxMy1zdGRlcnIudHh0
VVQFAAMta6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAe30GSQAAAAAAAAAAAAAAAA0AGAAA
AAAAAAAQAO1Bzk8FAGRpc3BsYXlsaXN0cy9VVAUAAylopld1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAAYfwZJo1f96FAAAACOAAAAMgAYAAAAAAABAAAApIEVUAUAZGlzcGxheWxpc3RzL2V4dGVu
dC1pbmNsdWRlcy10cmFuc2Zvcm1zLXN0ZGVyci50eHRVVAUAAzBrpld1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACAAYfwZJ8paV1UcAAABJAAAAKQAYAAAAAAABAAAApIHRUAUAZGlzcGxheWxpc3Rz
L2xheWVyLWRpc3BheS1saXN0LXN0ZGVyci50eHRVVAUAAzBrpld1eAsAAQT1AQAABFAAAABQSwEC
HgMKAAAAAAAgfwZJAAAAAAAAAAAAAAAABAAYAAAAAAAAABAA7UF7UQUAZG9tL1VUBQADO2umV3V4
CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAACB/BkkAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQblR
BQBkb20vaHRtbC9VVAUAAztrpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAgfwZJAAAAAAAA
AAAAAAAAEAAYAAAAAAAAABAA7UH8UQUAZG9tL2h0bWwvbGV2ZWwyL1VUBQADO2umV3V4CwABBPUB
AAAEUAAAAFBLAQIeAwoAAAAAACB/BkkAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQUZSBQBkb20v
aHRtbC9sZXZlbDIvaHRtbC9VVAUAAztrpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAgfwZJ
nTQL0mkAAABrAAAAMgAYAAAAAAABAAAApIGVUgUAZG9tL2h0bWwvbGV2ZWwyL2h0bWwvSFRNTElu
cHV0RWxlbWVudDIwLXN0ZGVyci50eHRVVAUAAztrpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAA
AACIfQZJAAAAAAAAAAAAAAAACgAYAAAAAAAAABAA7UFqUwUAZG9tL3hodG1sL1VUBQADP2imV3V4
CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAIh9BkkAAAAAAAAAAAAAAAARABgAAAAAAAAAEADtQa5T
BQBkb20veGh0bWwvbGV2ZWwyL1VUBQADP2imV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAIh9
BkkAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADtQflTBQBkb20veGh0bWwvbGV2ZWwyL2h0bWwvVVQF
AAM/aKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAIH8GSXm/H4lpAAAAawAAADMAGAAAAAAA
AQAAAKSBSVQFAGRvbS94aHRtbC9sZXZlbDIvaHRtbC9IVE1MSW5wdXRFbGVtZW50MjAtc3RkZXJy
LnR4dFVUBQADPGumV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAIJ9BkkAAAAAAAAAAAAAAAAI
ABgAAAAAAAAAEADtQR9VBQBlZGl0aW5nL1VUBQADNGimV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoA
AAAAAIJ9BkkAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQWFVBQBlZGl0aW5nL2V4ZWNDb21tYW5k
L1VUBQADNGimV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIABt/BkndIcPtQgAAAIYAAABBABgA
AAAAAAEAAACkga9VBQBlZGl0aW5nL2V4ZWNDb21tYW5kL2NsaXBib2FyZC1hY2Nlc3Mtd2l0aC11
c2VyLWdlc3R1cmUtc3RkZXJyLnR4dFVUBQADNWumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
AJCABkm+1zohBg8AAFKWAAANABgAAAAAAAEAAACkgWxWBQBlcnJvcl9sb2cudHh0VVQFAAMAbaZX
dXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAN38GSQAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1B
uWUFAGZhc3QvVVQFAANqa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAkX0GSQAAAAAAAAAA
AAAAAAwAGAAAAAAAAAAQAO1B+GUFAGZhc3QvY2FudmFzL1VUBQADUmimV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIACp/BkkQiXJ4lwAAAEwBAAAmABgAAAAAAAEAAACkgT5mBQBmYXN0L2NhbnZh
cy9jYW52YXMtbGluZURhc2gtc3RkZXJyLnR4dFVUBQADUGumV3V4CwABBPUBAAAEUAAAAFBLAQIe
AwoAAAAAAJF9BkkAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQTVnBQBmYXN0L2Nzcy9VVAUAA1Jo
pld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAArfwZJ2wjTQjsAAAA/AAAAKQAYAAAAAAABAAAA
pIF4ZwUAZmFzdC9jc3MvY29tcGFyZS1jb250ZW50LXN0eWxlLXN0ZGVyci50eHRVVAUAA1Frpld1
eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAApfwZJAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UEW
aAUAZmFzdC9kb20vVVQFAANOa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAKn8GSRFE785p
AAAAawAAADYAGAAAAAAAAQAAAKSBWWgFAGZhc3QvZG9tL2Nsb25lLW5vZGUtZm9ybS1lbGVtZW50
cy13aXRoLWF0dHItc3RkZXJyLnR4dFVUBQADUGumV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAA
AJB9BkkAAAAAAAAAAAAAAAAZABgAAAAAAAAAEADtQTJpBQBmYXN0L2RvbS9IVE1MRm9ybUVsZW1l
bnQvVVQFAANQaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAKX8GSZvaXeRpAAAAawAAAEcA
GAAAAAAAAQAAAKSBhWkFAGZhc3QvZG9tL0hUTUxGb3JtRWxlbWVudC9uYW1lZC1wcm9wZXJ0eS1n
ZXR0ZXItcmFkaW9ub2RlbGlzdC1zdGRlcnIudHh0VVQFAANOa6ZXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgAAAAAAKX8GSQAAAAAAAAAAAAAAABoAGAAAAAAAAAAQAO1Bb2oFAGZhc3QvZG9tL0hUTUxJ
bnB1dEVsZW1lbnQvVVQFAANOa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAKX8GSZwxcCNp
AAAAawAAADgAGAAAAAAAAQAAAKSBw2oFAGZhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvY2xvbmUt
aW5wdXQtY2hlY2tlZC1zdGRlcnIudHh0VVQFAANOa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAA
AAAAk30GSQAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BnmsFAGZhc3QvZHluYW1pYy9VVAUAA1Vo
pld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAArfwZJ/z046GkAAABrAAAAMAAYAAAAAAABAAAA
pIHlawUAZmFzdC9keW5hbWljL2NoZWNrYm94LXNlbGVjdGlvbi1jcmFzaC1zdGRlcnIudHh0VVQF
AANSa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAMH8GSQAAAAAAAAAAAAAAAAwAGAAAAAAA
AAAQAO1BuGwFAGZhc3QvZXZlbnRzL1VUBQADXGumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ADB/BklYKmd1OQAAAEMAAAAyABgAAAAAAAEAAACkgf5sBQBmYXN0L2V2ZW50cy9kaXNwbGF5LW5v
bmUtb24tZm9jdXMtY3Jhc2gtc3RkZXJyLnR4dFVUBQADW2umV3V4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIADB/Bkkcie0FaQAAAGsAAABJABgAAAAAAAEAAACkgaNtBQBmYXN0L2V2ZW50cy9kb21h
Y3RpdmF0ZS1zZXRzLXVuZGVybHlpbmctY2xpY2stZXZlbnQtYXMtaGFuZGxlZC1zdGRlcnIudHh0
VVQFAANca6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANX8GSTC1beM5AAAAQwAAACsAGAAA
AAAAAQAAAKSBj24FAGZhc3QvZXZlbnRzL21vdXNlLWZvY3VzLWltYWdlbWFwLXN0ZGVyci50eHRV
VAUAA2Zrpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA2fwZJ5669XzsAAABDAAAALwAYAAAA
AAABAAAApIEtbwUAZmFzdC9ldmVudHMvbW91c2V1cC1vdXRzaWRlLWRvY3VtZW50LXN0ZGVyci50
eHRVVAUAA2drpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAACYfQZJAAAAAAAAAAAAAAAACwAY
AAAAAAAAABAA7UHRbwUAZmFzdC9mb3Jtcy9VVAUAA2Bopld1eAsAAQT1AQAABFAAAABQSwECHgMK
AAAAAACTfQZJAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UEWcAUAZmFzdC9mb3Jtcy9maWxlL1VU
BQADVmimV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAJN9Bkn2NnKiaQAAAGsAAAAzABgAAAAA
AAEAAACkgWBwBQBmYXN0L2Zvcm1zL2ZpbGUvZmlsZS1pbnB1dC1wcmVzc2VkLXN0YXRlLXN0ZGVy
ci50eHRVVAUAA1Zopld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAxfwZJz04p0pAAAAC9AAAA
MwAYAAAAAAABAAAApIE2cQUAZmFzdC9mb3Jtcy9mb3JtLWFzc29jaWF0ZWQtZWxlbWVudC1jcmFz
aC1zdGRlcnIudHh0VVQFAANda6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgALX8GSZdEyZZp
AAAAawAAADQAGAAAAAAAAQAAAKSBM3IFAGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1p
c3NpbmctMDA2LXN0ZGVyci50eHRVVAUAA1Vrpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAACX
fQZJAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UEKcwUAZmFzdC9mcmFtZXMvVVQFAANeaKZXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMH8GSdsI00I7AAAAPwAAAC8AGAAAAAAAAQAAAKSBUHMF
AGZhc3QvZnJhbWVzL2ZyYW1lLWRpc3BsYXktbm9uZS1mb2N1cy1zdGRlcnIudHh0VVQFAANba6ZX
dXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAlX0GSQAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1B
9HMFAGZhc3QvaGFybmVzcy9VVAUAA1lopld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACACVfQZJ
f5KluGkAAABrAAAAKwAYAAAAAAABAAAApIE7dAUAZmFzdC9oYXJuZXNzL2ltYWdlLWRpZmYtdGVt
cGxhdGUtc3RkZXJyLnR4dFVUBQADWWimV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAJZ9BkkA
AAAAAAAAAAAAAAAKABgAAAAAAAAAEADtQQl1BQBmYXN0L2h0bWwvVVQFAANbaKZXdXgLAAEE9QEA
AARQAAAAUEsBAh4DFAACAAgAln0GSa8TJxJpAAAAawAAACsAGAAAAAAAAQAAAKSBTXUFAGZhc3Qv
aHRtbC9kZXRhaWxzLWNsaWNrLWNvbnRyb2xzLXN0ZGVyci50eHRVVAUAA1topld1eAsAAQT1AQAA
BFAAAABQSwECHgMKAAAAAACgfQZJAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UEbdgUAZmFzdC9p
bWFnZXMvVVQFAANraKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgACAAAANn8GSVGnghgxAAAAMQAA
AC0AGAAAAAAAAQAAAKSBYXYFAGZhc3QvaW1hZ2VzL2xhcmdlLXNpemUtaW1hZ2UtY3Jhc2gtc3Rk
ZXJyLnR4dFVUBQADaGumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADd/Bkkhj704MgAAADMA
AAAsABgAAAAAAAEAAACkgfl2BQBmYXN0L2ltYWdlcy9wZGYtYXMtaW1hZ2UtY3JvcC1ib3gtc3Rk
ZXJyLnR4dFVUBQADaWumV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAJx9BkkAAAAAAAAAAAAA
AAAMABgAAAAAAAAAEADtQZF3BQBmYXN0L2xvYWRlci9VVAUAA2hopld1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACAAvfwZJ2wjTQjsAAAA/AAAAUgAYAAAAAAABAAAApIHXdwUAZmFzdC9sb2FkZXIv
ZGlzcGxheS1pbWFnZS11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxh
Y2Utc3RkZXJyLnR4dFVUBQADWmumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADB/BknbCNNC
OwAAAD8AAABTABgAAAAAAAEAAACkgZ54BQBmYXN0L2xvYWRlci9pbWFnZXMtZW5hYmxlZC11bnNl
dC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVUBQAD
XGumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADV/BknbCNNCOwAAAD8AAAAtABgAAAAAAAEA
AACkgWZ5BQBmYXN0L2xvYWRlci9yZWxvYWQtcG9saWN5LWRlbGVnYXRlLXN0ZGVyci50eHRVVAUA
A2Vrpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAyfwZJAAAAAAAAAAAAAAAADAAYAAAAAAAA
ABAA7UEIegUAZmFzdC9wYXJzZXIvVVQFAANga6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
Mn8GSfnNl1JpAAAAawAAACQAGAAAAAAAAQAAAKSBTnoFAGZhc3QvcGFyc2VyL2JhZC14bWwtc2xh
c2gtc3RkZXJyLnR4dFVUBQADYGumV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAKJ9BkkAAAAA
AAAAAAAAAAANABgAAAAAAAAAEADtQRV7BQBmYXN0L3JlZ2lvbnMvVVQFAANvaKZXdXgLAAEE9QEA
AARQAAAAUEsBAh4DCgAAAAAAon0GSQAAAAAAAAAAAAAAABcAGAAAAAAAAAAQAO1BXHsFAGZhc3Qv
cmVnaW9ucy9zY3JvbGxpbmcvVVQFAANvaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAOH8G
STkBy91AAAAAegAAADUAGAAAAAAAAQAAAKSBrXsFAGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcvd2hl
ZWwtc2Nyb2xsLWFic3Bvcy1zdGRlcnIudHh0VVQFAANsa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgAOH8GSTkBy91AAAAAegAAAC4AGAAAAAAAAQAAAKSBXHwFAGZhc3QvcmVnaW9ucy9zY3Jv
bGxpbmcvd2hlZWwtc2Nyb2xsLXN0ZGVyci50eHRVVAUAA2xrpld1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACAA4fwZJ5IrHQzwAAAA9AAAAQAAYAAAAAAABAAAApIEEfQUAZmFzdC9yZWdpb25zL3Nj
cm9sbGluZy93aGVlbC1zY3JvbGxhYmxlLXNpbmdsZS1yZWdpb24tc3RkZXJyLnR4dFVUBQADbGum
V3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADh/BkkAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADt
Qbp9BQBmYXN0L3Njcm9sbGluZy9VVAUAA2trpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAIAAAA3
fwZJxQu1syUAAAAlAAAAOgAYAAAAAAABAAAApIEDfgUAZmFzdC9zY3JvbGxpbmcvYXJyb3cta2V5
LXNjcm9sbC1pbi1ydGwtZG9jdW1lbnQtYWN0dWFsLnR4dFVUBQADamumV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIADd/Bknz28kZpQAAAE4BAAA4ABgAAAAAAAEAAACkgZx+BQBmYXN0L3Njcm9s
bGluZy9hcnJvdy1rZXktc2Nyb2xsLWluLXJ0bC1kb2N1bWVudC1kaWZmLnR4dFVUBQADamumV3V4
CwABBPUBAAAEUAAAAFBLAQIeAwoAAgAAADd/BkmecqXcGQAAABkAAAA8ABgAAAAAAAEAAACkgbN/
BQBmYXN0L3Njcm9sbGluZy9hcnJvdy1rZXktc2Nyb2xsLWluLXJ0bC1kb2N1bWVudC1leHBlY3Rl
ZC50eHRVVAUAA2prpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA4fwZJARft1XsHAABAFwAA
QAAYAAAAAAABAAAApIFCgAUAZmFzdC9zY3JvbGxpbmcvYXJyb3cta2V5LXNjcm9sbC1pbi1ydGwt
ZG9jdW1lbnQtcHJldHR5LWRpZmYuaHRtbFVUBQADa2umV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoA
AAAAAKZ9BkkAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQTeIBQBmYXN0L3hzbC9VVAUAA3dopld1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA9fwZJcv1l8oUAAADpAAAAJQAYAAAAAAABAAAApIF6
iAUAZmFzdC94c2wvdHJhbnNmb3JtLXhoci1kb2Mtc3RkZXJyLnR4dFVUBQADdWumV3V4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIAD1/BknOCSgCjQAAAPAAAAAnABgAAAAAAAEAAACkgV6JBQBmYXN0
L3hzbC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRVVAUAA3Vrpld1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACAA9fwZJz49mDlAAAACgAAAAJAAYAAAAAAABAAAApIFMigUAZmFzdC94c2wv
eHNsdC1jb250ZW50VHlwZS1zdGRlcnIudHh0VVQFAAN1a6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgAPX8GSYFKd61LAAAArAAAADQAGAAAAAAAAQAAAKSB+ooFAGZhc3QveHNsL3hzbHQtdHJh
bnNmb3JtLXRvLWZyYWdtZW50LWNyYXNoLXN0ZGVyci50eHRVVAUAA3Zrpld1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACABWgQZJSI36tgsDAACpCQAAEQAYAAAAAAABAAAApIGziwUAZnVsbF9yZXN1
bHRzLmpzb25VVAUAA3Nupld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAACofQZJAAAAAAAAAAAA
AAAABQAYAAAAAAAAABAA7UEJjwUAaHR0cC9VVAUAA3topld1eAsAAQT1AQAABFAAAABQSwECHgMK
AAAAAACzfQZJAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UFIjwUAaHR0cC90ZXN0cy9VVAUAA5Fo
pld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAACpfQZJAAAAAAAAAAAAAAAAEQAYAAAAAAAAABAA
7UGNjwUAaHR0cC90ZXN0cy9jYWNoZS9VVAUAA35opld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CABDfwZJ3V9D/34AAAARAQAAMAAYAAAAAAABAAAApIHYjwUAaHR0cC90ZXN0cy9jYWNoZS9tZW1v
cnktY2FjaGUtcHJ1bmluZy1zdGRlcnIudHh0VVQFAAN+a6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4D
CgAAAAAAqH0GSQAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1BwJAFAGh0dHAvdGVzdHMvY2FudmFz
L1VUBQADe2imV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAKh9BkkAAAAAAAAAAAAAAAAYABgA
AAAAAAAAEADtQQyRBQBodHRwL3Rlc3RzL2NhbnZhcy93ZWJnbC9VVAUAA3topld1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACABBfwZJTbCcwsIAAAAXAQAAOwAYAAAAAAABAAAApIFekQUAaHR0cC90
ZXN0cy9jYW52YXMvd2ViZ2wvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLXN0ZGVyci50eHRVVAUA
A3prpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAACtfQZJAAAAAAAAAAAAAAAAHQAYAAAAAAAA
ABAA7UGVkgUAaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9VVAUAA4Zopld1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACABHfwZJfW+VQXsAAACuAAAAOgAYAAAAAAABAAAApIHskgUAaHR0cC90
ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy90ZXh0LXRyYWNrLWJsb2NrZWQtc3RkZXJyLnR4dFVUBQAD
hWumV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAKh9BkkAAAAAAAAAAAAAAAAcABgAAAAAAAAA
EADtQduTBQBodHRwL3Rlc3RzL2NvbnRlbnRmaWx0ZXJpbmcvVVQFAAN7aKZXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgAQX8GSbPURQdiAQAA7wgAADsAGAAAAAAAAQAAAKSBMZQFAGh0dHAvdGVz
dHMvY29udGVudGZpbHRlcmluZy9hbGxvdy1hZnRlci1yZWRpcmVjdC1zdGRlcnIudHh0VVQFAAN6
a6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAt30GSQAAAAAAAAAAAAAAABEAGAAAAAAAAAAQ
AO1BCJYFAGh0dHAvdGVzdHMvbWVkaWEvVVQFAAOaaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAA
AAAArH0GSQAAAAAAAAAAAAAAABoAGAAAAAAAAAAQAO1BU5YFAGh0dHAvdGVzdHMvbWVkaWEvY2xl
YXJrZXkvVVQFAAOEaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgARn8GSYSPMg4GAQAAUAIA
ADkAGAAAAAAAAQAAAKSBp5YFAGh0dHAvdGVzdHMvbWVkaWEvY2xlYXJrZXkvY2xlYXIta2V5LWhs
cy1hZXMxMjgtc3RkZXJyLnR4dFVUBQADg2umV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAEd/
BkkAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQSCYBQBodHRwL3Rlc3RzL21lZGlhL2hscy9VVAUA
A4Zrpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABGfwZJn7nh1WoBAABHAwAAQAAYAAAAAAAB
AAAApIFvmAUAaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLWFjY2Vzc2libGl0eS1kZXNjcmliZXMt
dmlkZW8tc3RkZXJyLnR4dFVUBQADg2umV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAEZ/Bkn9
Z8o/VQEAAPwCAAA6ABgAAAAAAAEAAACkgVOaBQBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtYXVk
aW8tdHJhY2tzLWhhcy1hdWRpby1zdGRlcnIudHh0VVQFAAODa6ZXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgARn8GSZ06XotVAQAA/AIAAEEAGAAAAAAAAQAAAKSBHJwFAGh0dHAvdGVzdHMvbWVk
aWEvaGxzL2hscy1hdWRpby10cmFja3MtbG9jYWxlLXNlbGVjdGlvbi1zdGRlcnIudHh0VVQFAAOE
a6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgARn8GSc8VustUAQAA/AIAADAAGAAAAAAAAQAA
AKSB7J0FAGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1hdWRpby10cmFja3Mtc3RkZXJyLnR4dFVU
BQADhGumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAEZ/Bkn7Qfb0sAAAAJUBAAAsABgAAAAA
AAEAAACkgaqfBQBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtcHJvZ3Jlc3Mtc3RkZXJyLnR4dFVU
BQADhGumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAEd/BkncDKkhsQAAAJUBAAAwABgAAAAA
AAEAAACkgcCgBQBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtdmlkZW8tcmVzaXplLXN0ZGVyci50
eHRVVAUAA4Vrpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABHfwZJegdJEL8AAAAqAwAAPQAY
AAAAAAABAAAApIHboQUAaHR0cC90ZXN0cy9tZWRpYS9obHMvdmlkZW8tY29udHJvbGxlci1nZXRT
dGFydERhdGUtc3RkZXJyLnR4dFVUBQADhWumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAK99
Bkk+zBGYLQAAAC4AAAA6ABgAAAAAAAEAAACkgRGjBQBodHRwL3Rlc3RzL21lZGlhL2hscy92aWRl
by1jb250cm9scy1saXZlLXN0cmVhbS1hY3R1YWwudHh0VVQFAAOKaKZXdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgAr30GSbje2McrAgAAXQcAADgAGAAAAAAAAQAAAKSBsqMFAGh0dHAvdGVzdHMv
bWVkaWEvaGxzL3ZpZGVvLWNvbnRyb2xzLWxpdmUtc3RyZWFtLWRpZmYudHh0VVQFAAOKaKZXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAr30GSc7roPKnAQAACwYAADwAGAAAAAAAAQAAAKSBT6YF
AGh0dHAvdGVzdHMvbWVkaWEvaGxzL3ZpZGVvLWNvbnRyb2xzLWxpdmUtc3RyZWFtLWV4cGVjdGVk
LnR4dFVUBQADimimV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAK99BknYcuoQcQkAAPUuAABA
ABgAAAAAAAEAAACkgWyoBQBodHRwL3Rlc3RzL21lZGlhL2hscy92aWRlby1jb250cm9scy1saXZl
LXN0cmVhbS1wcmV0dHktZGlmZi5odG1sVVQFAAOKaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgAR38GSRaLb/L8AAAAhwMAADoAGAAAAAAAAQAAAKSBV7IFAGh0dHAvdGVzdHMvbWVkaWEvaGxz
L3ZpZGVvLWNvbnRyb2xzLWxpdmUtc3RyZWFtLXN0ZGVyci50eHRVVAUAA4Zrpld1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACABGfwZJ1s/JlsoAAAA3AQAAMgAYAAAAAAABAAAApIHHswUAaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1yZWZlcmVyLXN0ZGVyci50eHRVVAUAA4Nrpld1eAsA
AQT1AQAABFAAAABQSwECHgMKAAIAAABGfwZJ9gamIGMAAABjAAAAKgAYAAAAAAABAAAApIH9tAUA
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1zdGRlcnIudHh0VVQFAAOEa6ZXdXgLAAEE
9QEAAARQAAAAUEsBAh4DCgACAAAAR38GSfYGpiBjAAAAYwAAADkAGAAAAAAAAQAAAKSBxLUFAGh0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtcGxheS1zdHJlYW0tY2h1bmtlZC1pY3ktc3RkZXJyLnR4dFVU
BQADhmumV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAL19BkkAAAAAAAAAAAAAAAAeABgAAAAA
AAAAEADtQZq2BQBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9VVAUAA6Vopld1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACABMfwZJojW2asYAAAD1AAAAQgAYAAAAAAABAAAApIHytgUAaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYXBwZW5kLWJ1ZmZlci1zdGRl
cnIudHh0VVQFAAOQa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgATH8GSQuCLA7MAAAAOAQA
ADsAGAAAAAAAAQAAAKSBNLgFAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291
cmNlLWNsb3NlZC1zdGRlcnIudHh0VVQFAAOQa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
TX8GSegR1WzTAAAA3wIAAFAAGAAAAAAAAQAAAKSBdbkFAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS1zdGRlcnIudHh0
VVQFAAOSa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgATn8GSQDtLIBKAQAAkwMAAFIAGAAA
AAAAAQAAAKSB0roFAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNv
bmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVyYXRlLXN0ZGVyci50eHRVVAUAA5Rrpld1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACABQfwZJMv1+0J4AAAC0AAAATQAYAAAAAAABAAAApIGovAUAaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtZW5kb2ZzdHJlYW0taW52YWxpZGVy
cm9yLXN0ZGVyci50eHRVVAUAA5drpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABUfwZJCtz4
4J4AAAC0AAAAOwAYAAAAAAABAAAApIHNvQUAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWFzb3VyY2UtcmVtb3ZlLXN0ZGVyci50eHRVVAUAA59rpld1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACABWfwZJSDRyJ8AAAACEAwAARgAYAAAAAAABAAAApIHgvgUAaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Utc291cmNlYnVmZmVyLW1vZGUtc3RkZXJyLnR4dFVU
BQADo2umV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAFh/BkkV97uRsQAAABwCAABFABgAAAAA
AAEAAACkgSDABQBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1zb3Vy
Y2VidWZmZXJsaXN0LXN0ZGVyci50eHRVVAUAA6drpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CABHfwZJplRmc+0AAABfAQAALQAYAAAAAAABAAAApIFQwQUAaHR0cC90ZXN0cy9tZWRpYS9wZGYt
c2VydmVkLWFzLXBkZi1zdGRlcnIudHh0VVQFAAOGa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgASX8GSQYpkrG6AAAA6wAAAC8AGAAAAAAAAQAAAKSBpMIFAGh0dHAvdGVzdHMvbWVkaWEvcmVs
b2FkLWFmdGVyLWRpYWxvZy1zdGRlcnIudHh0VVQFAAOKa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgASn8GSbAk3CvqAAAAWgEAAC8AGAAAAAAAAQAAAKSBx8MFAGh0dHAvdGVzdHMvbWVkaWEv
dGV4dC1zZXJ2ZWQtYXMtdGV4dC1zdGRlcnIudHh0VVQFAAOLa6ZXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgASn8GSTAFMXuwAAAAlQEAADYAGAAAAAAAAQAAAKSBGsUFAGh0dHAvdGVzdHMvbWVk
aWEvdHJhY2staW4tYmFuZC1obHMtbWV0YWRhdGEtc3RkZXJyLnR4dFVUBQADjGumV3V4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIAEt/Bkky9+k4CAEAAPIDAAAmABgAAAAAAAEAAACkgTrGBQBodHRw
L3Rlc3RzL21lZGlhL3ZpZGVvLWF1dGgtc3RkZXJyLnR4dFVUBQADjWumV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIAEx/Bkn9DfcXuAAAAOsAAAAtABgAAAAAAAEAAACkgaLHBQBodHRwL3Rlc3Rz
L21lZGlhL3ZpZGVvLWVycm9yLWFib3J0LXN0ZGVyci50eHRVVAUAA5Brpld1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACABNfwZJDl0b8rMAAAAjAQAANgAYAAAAAAABAAAApIHByAUAaHR0cC90ZXN0
cy9tZWRpYS92aWRlby1lcnJvci1kb2VzLW5vdC1leGlzdC1zdGRlcnIudHh0VVQFAAOSa6ZXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgATX8GSW2FtzdoAAAAxgAAACwAGAAAAAAAAQAAAKSB5MkF
AGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tbG9hZC10d2ljZS1zdGRlcnIudHh0VVQFAAOSa6ZXdXgL
AAEE9QEAAARQAAAAUEsBAh4DCgACAAAATX8GSQ0kDHpjAAAAYwAAAC8AGAAAAAAAAQAAAKSBssoF
AGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1wcm9ncmVzcy1zdGRlcnIudHh0VVQFAAOSa6ZX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAT38GSb92/UKyAAAALwEAACoAGAAAAAAAAQAAAKSB
fssFAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVkaXJlY3Qtc3RkZXJyLnR4dFVUBQADlmumV3V4
CwABBPUBAAAEUAAAAFBLAQIeAwoAAgAAAFB/Bklh3bzZYwAAAGMAAAArABgAAAAAAAEAAACkgZTM
BQBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXVzZXJhZ2VudC1zdGRlcnIudHh0VVQFAAOXa6ZXdXgL
AAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAzX0GSQAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BXM0F
AGh0dHAvdGVzdHMvbWlzYy9VVAUAA8Jopld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABMfwZJ
nzfkztUAAAAXAQAAPwAYAAAAAAABAAAApIGmzQUAaHR0cC90ZXN0cy9taXNjL2RlbGV0ZS1mcmFt
ZS1kdXJpbmctcmVhZHlzdGF0ZWNoYW5nZS1zdGRlcnIudHh0VVQFAAOQa6ZXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgATH8GScc/ndnVAAAAFwEAAFsAGAAAAAAAAQAAAKSB9M4FAGh0dHAvdGVz
dHMvbWlzYy9kZWxldGUtZnJhbWUtZHVyaW5nLXJlYWR5c3RhdGVjaGFuZ2Utd2l0aC1nYy1hZnRl
ci12aWRlby1yZW1vdmFsLXN0ZGVyci50eHRVVAUAA49rpld1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACABgfwZJFTU1knoAAAC8AAAAKgAYAAAAAAABAAAApIFe0AUAaHR0cC90ZXN0cy9taXNjL3hz
bHQtYmFkLWltcG9ydC1zdGRlcnIudHh0VVQFAAO0a6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAA
AAAAsH0GSQAAAAAAAAAAAAAAABYAGAAAAAAAAAAQAO1BPNEFAGh0dHAvdGVzdHMvbmF2aWdhdGlv
bi9VVAUAA4topld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABIfwZJ2wjTQjsAAAA/AAAANwAY
AAAAAAABAAAApIGM0QUAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZhbGxiYWNrLWFuY2hvci1yZWxv
YWQtc3RkZXJyLnR4dFVUBQADiGumV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAMN9BkkAAAAA
AAAAAAAAAAAUABgAAAAAAAAAEADtQTjSBQBodHRwL3Rlc3RzL3NlY3VyaXR5L1VUBQADrmimV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAEd/Bkm3Y+avewAAAK4AAABVABgAAAAAAAEAAACkgYbS
BQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NhbnZhcy1yZW1vdGUtcmVhZC1yZW1vdGUtdmlkZW8tYmxv
Y2tlZC1uby1jcm9zc29yaWdpbi1zdGRlcnIudHh0VVQFAAOGa6ZXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgACAAAASH8GSdbrzcNjAAAAYwAAAEgAGAAAAAAAAQAAAKSBkNMFAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY2FudmFzLXJlbW90ZS1yZWFkLXJlbW90ZS12aWRlby1sb2NhbGhvc3Qtc3RkZXJyLnR4
dFVUBQADh2umV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAgAAAEl/BklVjk/fYwAAAGMAAABHABgA
AAAAAAEAAACkgXXUBQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NhbnZhcy1yZW1vdGUtcmVhZC1yZW1v
dGUtdmlkZW8tcmVkaXJlY3Qtc3RkZXJyLnR4dFVUBQADimumV3V4CwABBPUBAAAEUAAAAFBLAQIe
AwoAAAAAAMJ9BkkAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQVnVBQBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAUAA6xopld1eAsAAQT1AQAABFAAAABQSwECHgMK
AAIAAABHfwZJAqPrqWMAAABjAAAASwAYAAAAAAABAAAApIG91QUAaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYXVkaW8tcmVkaXJlY3QtYWxsb3dlZC1zdGRlcnIudHh0
VVQFAAOFa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAR38GSaBNTnR7AAAArgAAAEwAGAAA
AAAAAQAAAKSBpdYFAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2F1
ZGlvLXJlZGlyZWN0LWFsbG93ZWQyLXN0ZGVyci50eHRVVAUAA4Vrpld1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACABHfwZJVDWrsKcAAACKAQAAWAAYAAAAAAABAAAApIGm1wUAaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYmxvYi11cmwtZG9lcy1ub3QtbWF0Y2gtc291
cmNlLXNlbGYtc3RkZXJyLnR4dFVUBQADhWumV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAK59
BkkAAAAAAAAAAAAAAABEABgAAAAAAAAAEADtQd/YBQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS91cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzL1VUBQADiGimV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIAEl/BklS1DiN6QAAACYDAAB5ABgAAAAAAAEAAACkgV3ZBQBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91cGdyYWRlLWluc2VjdXJl
LXJlcXVlc3RzL3VwZ3JhZGUtaW5zZWN1cmUtYXVkaW8tdmlkZW8taW4tbWFpbi1mcmFtZS1zdGRl
cnIudHh0VVQFAAOJa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAr30GSQAAAAAAAAAAAAAA
AD0AGAAAAAAAAAAQAO1B+doFAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9VVAUAA4lopld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CABHfwZJPnAKQHsAAACuAAAAUwAYAAAAAAABAAAApIFw2wUAaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL2FsbG93LWF1ZGlvLXN0ZGVy
ci50eHRVVAUAA4Vrpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABIfwZJ2wFwXq4AAADMAAAA
UwAYAAAAAAABAAAApIF43AUAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvdXNlckFnZW50U2hhZG93RE9NL2FsbG93LXZpZGVvLXN0ZGVyci50eHRVVAUAA4hrpld1eAsA
AQT1AQAABFAAAABQSwECHgMKAAIAAABPfwZJ965LlmMAAABjAAAASwAYAAAAAAABAAAApIGz3QUA
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdmlkZW8tcmVkaXJlY3Qt
YWxsb3dlZC1zdGRlcnIudHh0VVQFAAOVa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgACAAAAT38G
SfeuS5ZjAAAAYwAAAEwAGAAAAAAAAQAAAKSBm94FAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3ZpZGVvLXJlZGlyZWN0LWFsbG93ZWQyLXN0ZGVyci50eHRVVAUAA5Vr
pld1eAsAAQT1AQAABFAAAABQSwECHgMKAAIAAABPfwZJFKRwW2MAAABjAAAAZgAYAAAAAAABAAAA
pIGE3wUAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdmlkZW8td2l0
aC1odHRwLXVybC1hbGxvd2VkLWJ5LWNzcC1tZWRpYS1zcmMtc3Rhci1zdGRlcnIudHh0VVQFAAOW
a6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAUH8GSWOqrGyCAAAAqAAAAEAAGAAAAAAAAQAA
AKSBh+AFAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1hbGxv
d2VkLXN0ZGVyci50eHRVVAUAA5drpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABQfwZJY6qs
bIIAAACoAAAAUgAYAAAAAAABAAAApIGD4QUAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5bGUtc3JjLTItc3RkZXJyLnR4dFVUBQAD
l2umV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAgAAAEx/BkmurOWFYwAAAGMAAAA9ABgAAAAAAAEA
AACkgZHiBQBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLXZpZGVvLXNvdXJjZS1mcm9tLXJlbW90
ZS1zdGRlcnIudHh0VVQFAAOPa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAr30GSQAAAAAA
AAAAAAAAACEAGAAAAAAAAAAQAO1Ba+MFAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50
L1VUBQADiWimV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAEp/Bkmq/NvSaAAAAMYAAABOABgA
AAAAAAEAAACkgcbjBQBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1h
dWRpby12aWRlby1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAUAA4trpld1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACABWfwZJaaDJdGwAAADGAAAAOQAYAAAAAAABAAAApIG25AUAaHR0cC90ZXN0
cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tY2FjaGluZy1zdGRlcnIudHh0VVQFAAOja6ZX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAV38GSWBLZhCRAAAA+wEAAEUAGAAAAAAAAQAAAKSB
leUFAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlP
cmlnaW4tc3RkZXJyLnR4dFVUBQADpmumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAA1/Bklb
BFgOogUAAE0QAAAKABgAAAAAAAEAAACkgaXmBQBodHRwZC5jb25mVVQFAAMZa6ZXdXgLAAEE9QEA
AARQAAAAUEsBAh4DCgAAAAAAxH0GSQAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1Bi+wFAGltcG9y
dGVkL1VUBQADr2imV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAGZ/BkkAAAAAAAAAAAAAAAAP
ABgAAAAAAAAAEADtQc7sBQBpbXBvcnRlZC9ibGluay9VVAUAA79rpld1eAsAAQT1AQAABFAAAABQ
SwECHgMKAAAAAAC2fQZJAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UEX7QUAaW1wb3J0ZWQvYmxp
bmsvZmFzdC9VVAUAA5hopld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAC3fQZJAAAAAAAAAAAA
AAAAGgAYAAAAAAAAABAA7UFl7QUAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9VVAUAA5lopld1
eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAC2fQZJAAAAAAAAAAAAAAAAIQAYAAAAAAAAABAA7UG5
7QUAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9idXR0b24vVVQFAAOYaKZXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgAUX8GScch79s3AAAAQAAAAEcAGAAAAAAAAQAAAKSBFO4FAGltcG9ydGVk
L2JsaW5rL2Zhc3QvZm9ybXMvYnV0dG9uL2J1dHRvbi1yZXNldC1mb2N1cy1ieS1tb3VzZS1zdGRl
cnIudHh0VVQFAAOaa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAt30GSQAAAAAAAAAAAAAA
ACAAGAAAAAAAAAAQAO1BzO4FAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvcmFuZ2UvVVQFAAOZ
aKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAUn8GScch79s3AAAAQAAAAD8AGAAAAAAAAQAA
AKSBJu8FAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvcmFuZ2UvcmFuZ2UtZm9jdXMtYnktbW91
c2Utc3RkZXJyLnR4dFVUBQADm2umV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAALd9BkkAAAAA
AAAAAAAAAAAhABgAAAAAAAAAEADtQdbvBQBpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1zL3N1Ym1p
dC9VVAUAA5lopld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABSfwZJxyHv2zcAAABAAAAAQQAY
AAAAAAABAAAApIEx8AUAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9zdWJtaXQvc3VibWl0LWZv
Y3VzLWJ5LW1vdXNlLXN0ZGVyci50eHRVVAUAA5trpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAA
AABmfwZJAAAAAAAAAAAAAAAAFwAYAAAAAAAAABAA7UHj8AUAaW1wb3J0ZWQvYmxpbmsvc3RvcmFn
ZS9VVAUAA79rpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABmfwZJAAAAAAAAAAAAAAAAIQAY
AAAAAAAAABAA7UE08QUAaW1wb3J0ZWQvYmxpbmsvc3RvcmFnZS9pbmRleGVkZGIvVVQFAAO/a6ZX
dXgLAAEE9QEAAARQAAAAUEsBAh4DCgACAAAAZn8GSf4nOOA1AAAANQAAAEQAGAAAAAAAAQAAAKSB
j/EFAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL2Jsb2ItdmFsaWQtYmVmb3JlLWNv
bW1pdC1hY3R1YWwudHh0VVQFAAO/a6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAZn8GSTBk
K9fUAQAA9gMAAEIAGAAAAAAAAQAAAKSBQvIFAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhl
ZGRiL2Jsb2ItdmFsaWQtYmVmb3JlLWNvbW1pdC1kaWZmLnR4dFVUBQADv2umV3V4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIAGZ/BkmgjVmxQgEAAIgCAABGABgAAAAAAAEAAACkgZL0BQBpbXBvcnRl
ZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9ibG9iLXZhbGlkLWJlZm9yZS1jb21taXQtZXhwZWN0
ZWQudHh0VVQFAAO/a6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAZn8GSV1qkCsxCQAATCUA
AEoAGAAAAAAAAQAAAKSBVPYFAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL2Jsb2It
dmFsaWQtYmVmb3JlLWNvbW1pdC1wcmV0dHktZGlmZi5odG1sVVQFAAO/a6ZXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DCgAAAAAA0X0GSQAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BCQAGAGltcG9ydGVk
L3czYy9VVAUAA8lopld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADRfQZJAAAAAAAAAAAAAAAA
KAAYAAAAAAAAABAA7UFQAAYAaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L1VUBQADyWimV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAgAAAGt/Bkn+JzjgNQAAADUAAABDABgA
AAAAAAEAAACkgbIABgBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRi
ZmFjdG9yeV9vcGVuOS1hY3R1YWwudHh0VVQFAAPKa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgAa38GSZ4ZItVdAQAApAYAAEEAGAAAAAAAAQAAAKSBZAEGAGltcG9ydGVkL3czYy9JbmRleGVk
REItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW45LWRpZmYudHh0VVQFAAPKa6ZXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAa38GSZDuCCu6AAAANgUAAEUAGAAAAAAAAQAAAKSBPAMG
AGltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW45
LWV4cGVjdGVkLnR4dFVUBQADymumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAGt/BkkdkPzE
fAgAADQoAABJABgAAAAAAAEAAACkgXUEBgBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUt
YnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuOS1wcmV0dHktZGlmZi5odG1sVVQFAAPKa6ZXdXgLAAEE
9QEAAARQAAAAUEsBAh4DCgAAAAAA0H0GSQAAAAAAAAAAAAAAACAAGAAAAAAAAAAQAO1BdA0GAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvVVQFAAPHaKZXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgAAAAAAA4AGSQAAAAAAAAAAAAAAACQAGAAAAAAAAAAQAO1Bzg0GAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL1VUBQAD9WumV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAA
AM59BkkAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQSwOBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9VVAUAA8Nopld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADO
fQZJvboY9mkAAABrAAAARAAYAAAAAAABAAAApIGQDgYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1tYXRjaGVzLXN0ZGVyci50eHRVVAUAA8Nopld1eAsA
AQT1AQAABFAAAABQSwECHgMKAAAAAAADgAZJAAAAAAAAAAAAAAAAKwAYAAAAAAAAABAA7UF3DwYA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1VUBQAD9mumV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAwoAAgAAAAOABkn+JzjgNQAAADUAAABFABgAAAAAAAEAAACkgdwPBgBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtbXV0YXRpb25z
LWFjdHVhbC50eHRVVAUAA/Vrpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAADgAZJiPqnqkhp
AACi6A4AQwAYAAAAAAABAAAApIGQEAYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vcmFuZ2VzL1JhbmdlLW11dGF0aW9ucy1kaWZmLnR4dFVUBQAD9WumV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIAAOABkkpSVIoRGgAAIDQDgBHABgAAAAAAAEAAACkgVV6BgBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtbXV0YXRpb25zLWV4cGVjdGVk
LnR4dFVUBQAD9WumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAAOABklp/wlgFL8AAH+IHQBL
ABgAAAAAAAEAAACkgRrjBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5n
ZXMvUmFuZ2UtbXV0YXRpb25zLXByZXR0eS1kaWZmLmh0bWxVVAUAA/Zrpld1eAsAAQT1AQAABFAA
AABQSwECHgMKAAAAAADEfQZJAAAAAAAAAAAAAAAAJgAYAAAAAAAAABAA7UGzogcAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9VVAUAA69opld1eAsAAQT1AQAABFAAAABQSwEC
HgMKAAAAAADEfQZJAAAAAAAAAAAAAAAAKgAYAAAAAAAAABAA7UETowcAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvVVQFAAOvaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4D
CgAAAAAAxH0GSQAAAAAAAAAAAAAAADAAGAAAAAAAAAAQAO1Bd6MHAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL1VUBQADsGimV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIAF1/BkmodFIbjgAAAKAAAABHABgAAAAAAAEAAACkgeGjBwBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLW5vLWNvcnMtc3RkZXJyLnR4
dFVUBQADsWumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAFx/BknZVW1+jgAAAKAAAABOABgA
AAAAAAEAAACkgfCkBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9i
YXNpYy9tb2RlLW5vLWNvcnMtd29ya2VyLXN0ZGVyci50eHRVVAUAA7Brpld1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACABdfwZJyqWGojwBAACQBQAASwAYAAAAAAABAAAApIEGpgcAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi1h
Y3R1YWwudHh0VVQFAAOxa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAXX8GSSFpRtKMAQAA
PgYAAEkAGAAAAAAAAQAAAKSBx6cHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4tZGlmZi50eHRVVAUAA7Frpld1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACABdfwZJbNqz00UBAACoBQAATQAYAAAAAAABAAAApIHWqQcAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdp
bi1leHBlY3RlZC50eHRVVAUAA7Frpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABdfwZJoRDj
UYkIAADSIAAAUQAYAAAAAAABAAAApIGiqwcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi1wcmV0dHktZGlmZi5odG1sVVQFAAOx
a6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAXX8GSWo07zJBAQAAngUAAFIAGAAAAAAAAQAA
AKSBtrQHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21v
ZGUtc2FtZS1vcmlnaW4td29ya2VyLWFjdHVhbC50eHRVVAUAA7Frpld1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACABdfwZJD6gsV5IBAABoBgAAUAAYAAAAAAABAAAApIGDtgcAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi13b3Jr
ZXItZGlmZi50eHRVVAUAA7Frpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABdfwZJ6XMp8UoB
AAC2BQAAVAAYAAAAAAABAAAApIGfuAcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi13b3JrZXItZXhwZWN0ZWQudHh0VVQFAAOx
a6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAXX8GSR7hyG6OCAAA9SAAAFgAGAAAAAAAAQAA
AKSBd7oHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21v
ZGUtc2FtZS1vcmlnaW4td29ya2VyLXByZXR0eS1kaWZmLmh0bWxVVAUAA7Frpld1eAsAAQT1AQAA
BFAAAABQSwECHgMKAAAAAADEfQZJAAAAAAAAAAAAAAAALwAYAAAAAAAAABAA7UGXwwcAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9VVAUAA7Bopld1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACABdfwZJmRYdRakAAADAAwAARAAYAAAAAAABAAAApIEAxAcAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLWJhc2ljLXN0
ZGVyci50eHRVVAUAA7Frpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABdfwZJH4UEWagAAADA
AwAASwAYAAAAAAABAAAApIEnxQcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvY29ycy9jb3JzLWJhc2ljLXdvcmtlci1zdGRlcnIudHh0VVQFAAOxa6ZXdXgLAAEE9QEA
AARQAAAAUEsBAh4DFAACAAgAYH8GSXp41tOZAAAAQAEAAEsAGAAAAAAAAQAAAKSBVMYHAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1uby1wcmVmbGln
aHQtc3RkZXJyLnR4dFVUBQADs2umV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAGB/BklvhT9T
mQAAAEABAABSABgAAAAAAAEAAACkgXLHBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9jb3JzL2NvcnMtbm8tcHJlZmxpZ2h0LXdvcmtlci1zdGRlcnIudHh0VVQFAAOz
a6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAyX0GSQAAAAAAAAAAAAAAACUAGAAAAAAAAAAQ
AO1Bl8gHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9VVAUAA7popld1eAsA
AQT1AQAABFAAAABQSwECHgMKAAAAAADJfQZJAAAAAAAAAAAAAAAAKQAYAAAAAAAAABAA7UH2yAcA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9VVAUAA7popld1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACABkfwZJJhJzUsIAAABOAgAARwAYAAAAAAABAAAApIFZyQcAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9yZWZsZWN0aW9uLWVtYmVkZGVk
LXN0ZGVyci50eHRVVAUAA7trpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABqfwZJAAAAAAAA
AAAAAAAALwAYAAAAAAAAABAA7UGcygcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9VVAUAA8drpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADLfQZJAAAA
AAAAAAAAAAAAQAAYAAAAAAAAABAA7UEFywcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L1VUBQADvWimV3V4CwABBPUBAAAEUAAA
AFBLAQIeAwoAAAAAANB9BkkAAAAAAAAAAAAAAABPABgAAAAAAAAAEADtQX/LBwBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVk
aWEtZWxlbWVudHMvVVQFAAPIaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAZH8GSafPJK5+
AAAAEQEAAGcAGAAAAAAAAQAAAKSBCMwHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9jYW5w
bGF5LXN0ZGVyci50eHRVVAUAA7xrpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABkfwZJU2nv
FGgAAADGAAAAcgAYAAAAAAABAAAApIEnzQcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2Nh
bnBsYXlfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQFAAO8a6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgAZX8GSVNp7xRoAAAAxgAAAG4AGAAAAAAAAQAAAKSBO84HAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9ldmVudF9jYW5wbGF5dGhyb3VnaC1zdGRlcnIudHh0VVQFAAO9a6ZXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgAZX8GSVc5iupoAAAAxgAAAHkAGAAAAAAAAQAAAKSBS88HAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9ldmVudF9jYW5wbGF5dGhyb3VnaF9ub2F1dG9wbGF5LXN0ZGVyci50eHRV
VAUAA71rpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABlfwZJVzmK6mgAAADGAAAAagAYAAAA
AAABAAAApIFm0AcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRlZGRhdGEtc3RkZXJy
LnR4dFVUBQADvWumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAGV/Bkk+UZKNaAAAAMYAAAB1
ABgAAAAAAAEAAACkgXLRBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVkZGF0YV9u
b2F1dG9wbGF5LXN0ZGVyci50eHRVVAUAA75rpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABl
fwZJPlGSjWgAAADGAAAAbgAYAAAAAAABAAAApIGJ0gcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2
ZW50X2xvYWRlZG1ldGFkYXRhLXN0ZGVyci50eHRVVAUAA75rpld1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACABlfwZJPlGSjWgAAADGAAAAeQAYAAAAAAABAAAApIGZ0wcAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL2V2ZW50X2xvYWRlZG1ldGFkYXRhX25vYXV0b3BsYXktc3RkZXJyLnR4dFVUBQADvmum
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAGZ/Bkk6AfdzaAAAAMYAAABpABgAAAAAAAEAAACk
gbTUBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZHN0YXJ0LXN0ZGVyci50eHRVVAUA
A79rpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABmfwZJOgH3c2gAAADGAAAAdAAYAAAAAAAB
AAAApIG/1QcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRzdGFydF9ub2F1dG9wbGF5
LXN0ZGVyci50eHRVVAUAA79rpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABmfwZJOgH3c2gA
AADGAAAAfAAYAAAAAAABAAAApIHV1gcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVy
X2NhbnBsYXlfY2FucGxheXRocm91Z2gtc3RkZXJyLnR4dFVUBQADwGumV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIAGZ/Bkl39ymqaAAAAMYAAAB1ABgAAAAAAAEAAACkgfPXBwBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVk
aWEtZWxlbWVudHMvZXZlbnRfb3JkZXJfY2FucGxheV9wbGF5aW5nLXN0ZGVyci50eHRVVAUAA8Br
pld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABmfwZJd/cpqmgAAADGAAAAfwAYAAAAAAABAAAA
pIEK2QcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVyX2xvYWRlZG1ldGFkYXRhX2xv
YWRlZGRhdGEtc3RkZXJyLnR4dFVUBQADwGumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAGd/
Bklzp0xUaAAAAMYAAAB4ABgAAAAAAAEAAACkgSvaBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZl
bnRfb3JkZXJfbG9hZHN0YXJ0X3Byb2dyZXNzLXN0ZGVyci50eHRVVAUAA8Frpld1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACABnfwZJrYOelq8AAAAvAQAAZQAYAAAAAAABAAAApIFF2wcAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BhdXNlLXN0ZGVyci50eHRVVAUAA8Jrpld1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACABnfwZJrB3lwmgAAADGAAAAcAAYAAAAAAABAAAApIGT3AcAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BhdXNlX25vYXV0b3BsYXktc3RkZXJyLnR4dFVUBQADwmum
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAGd/BkmsHeXCaAAAAMYAAABkABgAAAAAAAEAAACk
gaXdBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheS1zdGRlcnIudHh0VVQFAAPCa6ZX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAaH8GSahNgDxoAAAAxgAAAG8AGAAAAAAAAQAAAKSB
q94HAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5X25vYXV0b3BsYXktc3RkZXJyLnR4
dFVUBQADw2umV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAGh/BkmoTYA8aAAAAMYAAABnABgA
AAAAAAEAAACkgbzfBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheWluZy1zdGRlcnIu
dHh0VVQFAAPDa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAaH8GSeW7XuVoAAAAxgAAAHIA
GAAAAAAAAQAAAKSBxeAHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5aW5nX25vYXV0
b3BsYXktc3RkZXJyLnR4dFVUBQADxGumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAGh/Bknl
u17laAAAAMYAAABoABgAAAAAAAEAAACkgdnhBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRf
cHJvZ3Jlc3Mtc3RkZXJyLnR4dFVUBQADxGumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAGh/
Bknlu17laAAAAMYAAABzABgAAAAAAAEAAACkgePiBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZl
bnRfcHJvZ3Jlc3Nfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQFAAPEa6ZXdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgAaX8GSeHrOxtoAAAAxgAAAGoAGAAAAAAAAQAAAKSB+OMHAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy9ldmVudF90aW1ldXBkYXRlLXN0ZGVyci50eHRVVAUAA8Vrpld1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACABpfwZJGsh8E2gAAADGAAAAdQAYAAAAAAABAAAApIEE5QcAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2V2ZW50X3RpbWV1cGRhdGVfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQF
AAPGa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAyX0GSQAAAAAAAAAAAAAAAFoAGAAAAAAA
AAAQAO1BG+YHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9pbnRlcmZhY2VzL1VUBQADumimV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAwoAAAAAAMl9BkkAAAAAAAAAAAAAAABkABgAAAAAAAAAEADtQa/mBwBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9UZXh0VHJhY2svVVQFAAO6aKZXdXgLAAEE
9QEAAARQAAAAUEsBAh4DCgACAAAAZH8GSTXeGRJjAAAAYwAAAHkAGAAAAAAAAQAAAKSBTecHAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC9tZWRpYS1lbGVtZW50cy9pbnRlcmZhY2VzL1RleHRUcmFjay9hY3RpdmVDdWVzLXN0ZGVy
ci50eHRVVAUAA7xrpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABpfwZJGsh8E2gAAADGAAAA
dwAYAAAAAAABAAAApIFj6AcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL25ldHdvcmtTdGF0ZV9kdXJp
bmdfbG9hZHN0YXJ0LXN0ZGVyci50eHRVVAUAA8Zrpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CABqfwZJHpgZ7WgAAADGAAAAcgAYAAAAAAABAAAApIF86QcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRz
L3BhdXNlZF9mYWxzZV9kdXJpbmdfcGxheS1zdGRlcnIudHh0VVQFAAPHa6ZXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgAan8GSeWyJoVoAAAAxgAAAHIAGAAAAAAAAQAAAKSBkOoHAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9wYXVzZWRfdHJ1ZV9kdXJpbmdfcGF1c2Utc3RkZXJyLnR4dFVUBQADyGum
V3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAMp9BkkAAAAAAAAAAAAAAABqABgAAAAAAAAAEADt
QaTrBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UvVVQF
AAO8aKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAZ38GSZcxDwh7AAAArgAAAJEAGAAAAAAA
AQAAAKSBSOwHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJj
ZS9wYXVzZS1tb3ZlLXRvLW90aGVyLWRvY3VtZW50LXN0ZGVyci50eHRVVAUAA8Frpld1eAsAAQT1
AQAABFAAAABQSwECHgMKAAIAAABnfwZJsLV7DWMAAABjAAAAjwAYAAAAAAABAAAApIGO7QcAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNlL3BhdXNlLW1vdmUt
d2l0aGluLWRvY3VtZW50LXN0ZGVyci50eHRVVAUAA8Frpld1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACABnfwZJ88M8TK4AAADMAAAAjwAYAAAAAAABAAAApIG67gcAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNlL3BhdXNlLXJlbW92ZS1mcm9tLWRvY3VtZW50
LXN0ZGVyci50eHRVVAUAA8Frpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABqfwZJ5bImhWgA
AADGAAAAcwAYAAAAAAABAAAApIEx8AcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVf
ZHVyaW5nX2NhbnBsYXktc3RkZXJyLnR4dFVUBQADyGumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIAGt/Bknh4kN7aAAAAMYAAAB6ABgAAAAAAAEAAACkgUbxBwBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVu
dHMvcmVhZHlTdGF0ZV9kdXJpbmdfY2FucGxheXRocm91Z2gtc3RkZXJyLnR4dFVUBQADyWumV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAGt/Bknh4kN7aAAAAMYAAAB2ABgAAAAAAAEAAACkgWLy
BwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHlTdGF0ZV9kdXJpbmdfbG9hZGVkZGF0YS1zdGRl
cnIudHh0VVQFAAPJa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAa38GSeHiQ3toAAAAxgAA
AHoAGAAAAAAAAQAAAKSBevMHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeVN0YXRlX2R1cmlu
Z19sb2FkZWRtZXRhZGF0YS1zdGRlcnIudHh0VVQFAAPKa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgAa38GSawUnaJoAAAAxgAAAHMAGAAAAAAAAQAAAKSBlvQHAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9yZWFkeVN0YXRlX2R1cmluZ19wbGF5aW5nLXN0ZGVyci50eHRVVAUAA8prpld1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACABrfwZJ0sN1RtYAAADCAgAAhAAYAAAAAAABAAAApIGr9QcAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL3NyY19yZWZsZWN0c19hdHRyaWJ1dGVfbm90X3NvdXJjZV9lbGVt
ZW50cy1zdGRlcnIudHh0VVQFAAPKa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAyn0GSQAA
AAAAAAAAAAAAAFUAGAAAAAAAAAAQAO1BP/cHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy90cmFjay9V
VAUAA7xopld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAADKfQZJAAAAAAAAAAAAAAAAYwAYAAAA
AAAAABAA7UHO9wcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3RyYWNrL3RyYWNrLWVsZW1lbnQvVVQF
AAO8aKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAZ38GSavapOt7AAAArgAAAIIAGAAAAAAA
AQAAAKSBa/gHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy90cmFjay90cmFjay1lbGVtZW50L3RyYWNr
LWFwaS10ZXh0dHJhY2tzLXN0ZGVyci50eHRVVAUAA8Frpld1eAsAAQT1AQAABFAAAABQSwECHgMK
AAIAAABrfwZJ9CKDcmMAAABjAAAAYwAYAAAAAAABAAAApIGi+QcAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL3ZpZGVvXzAwOC1zdGRlcnIudHh0VVQFAAPKa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAA
AAAAy30GSQAAAAAAAAAAAAAAAFIAGAAAAAAAAAAQAO1BovoHAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtYXVkaW8tZWxl
bWVudC9VVAUAA71opld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABnfwZJ/CslFN4AAADQAgAA
bgAYAAAAAAABAAAApIEu+wcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1hdWRpby1lbGVtZW50L2F1ZGlvX2NvbnN0cnVj
dG9yLXN0ZGVyci50eHRVVAUAA8Frpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAABqfwZJAAAA
AAAAAAAAAAAANQAYAAAAAAAAABAA7UG0/AcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9mb3Jtcy9VVAUAA8drpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAA
AABqfwZJAAAAAAAAAAAAAAAARwAYAAAAAAAAABAA7UEj/QcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudC9VVAUAA8dr
pld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABqfwZJEl7T1GkAAABrAAAAWAAYAAAAAAABAAAA
pIGk/QcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jt
cy90aGUtaW5wdXQtZWxlbWVudC9idXR0b24tc3RkZXJyLnR4dFVUBQADx2umV3V4CwABBPUBAAAE
UAAAAFBLAQIeAwoAAAAAAGh/BkkAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQZ/+BwBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9VVAUAA8Rrpld1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACABofwZJdfwGTmsAAAB6AAAAUwAYAAAAAAABAAAApIED/wcAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRl
bmVlZGVkLWFjdHVhbC50eHRVVAUAA8Rrpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABofwZJ
Ta1dHvUAAAARAgAAUQAYAAAAAAABAAAApIH7/wcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWRpZmYudHh0VVQF
AAPEa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAaH8GSeIGy1RJAAAATwAAAFUAGAAAAAAA
AQAAAKSBewEIAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2Fib3J0
LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHRVVAUAA8Rrpld1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACABofwZJsp9IShYIAADlGwAAWQAYAAAAAAABAAAApIFTAggAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYWJvcnQtaW4taW5pdGlhbC11cGdy
YWRlbmVlZGVkLXByZXR0eS1kaWZmLmh0bWxVVAUAA8Rrpld1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACADQfQZJ5ltienkAAACdAAAARQAYAAAAAAABAAAApIH8CggAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvY3Vyc29yLW92ZXJsb2Fkcy1hY3R1YWwudHh0VVQFAAPH
aKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA0H0GSXgjWhP5AAAAOwIAAEMAGAAAAAAAAQAA
AKSB9AsIAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2N1cnNvci1v
dmVybG9hZHMtZGlmZi50eHRVVAUAA8dopld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACADQfQZJ
8fVCclMAAAByAAAARwAYAAAAAAABAAAApIFqDQgAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvY3Vyc29yLW92ZXJsb2Fkcy1leHBlY3RlZC50eHRVVAUAA8dopld1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACADQfQZJ7W7JOy4IAAAdHAAASwAYAAAAAAABAAAApIE+DggA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvY3Vyc29yLW92ZXJsb2Fk
cy1wcmV0dHktZGlmZi5odG1sVVQFAAPHaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAAYAG
SQAAAAAAAAAAAAAAAAoAGAAAAAAAAAAQAO1B8RYIAGluc3BlY3Rvci9VVAUAA/Frpld1eAsAAQT1
AQAABFAAAABQSwECHgMKAAAAAADWfQZJAAAAAAAAAAAAAAAAEwAYAAAAAAAAABAA7UE1FwgAaW5z
cGVjdG9yL2RlYnVnZ2VyL1VUBQAD02imV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAHB/BkmQ
7I4sjQsAAJXgAABBABgAAAAAAAEAAACkgYIXCABpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
ZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Utc3RkZXJyLnR4dFVUBQAD1GumV3V4CwABBPUBAAAE
UAAAAFBLAQIeAwoAAAAAAAGABkkAAAAAAAAAAAAAAAARABgAAAAAAAAAEADtQYojCABpbnNwZWN0
b3IvbWVtb3J5L1VUBQAD8WumV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAgAAAAGABkn+JzjgNQAA
ADUAAAAkABgAAAAAAAEAAACkgdUjCABpbnNwZWN0b3IvbWVtb3J5L3RyYWNraW5nLWFjdHVhbC50
eHRVVAUAA/Frpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAABgAZJMEHRHZwBAAByAwAAIgAY
AAAAAAABAAAApIFoJAgAaW5zcGVjdG9yL21lbW9yeS90cmFja2luZy1kaWZmLnR4dFVUBQAD8Wum
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAAGABknZPu26EgEAAEcCAAAmABgAAAAAAAEAAACk
gWAmCABpbnNwZWN0b3IvbWVtb3J5L3RyYWNraW5nLWV4cGVjdGVkLnR4dFVUBQAD8WumV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIAAGABkmzazhDDAkAAFsjAAAqABgAAAAAAAEAAACkgdInCABp
bnNwZWN0b3IvbWVtb3J5L3RyYWNraW5nLXByZXR0eS1kaWZmLmh0bWxVVAUAA/Frpld1eAsAAQT1
AQAABFAAAABQSwECHgMKAAAAAAByfwZJAAAAAAAAAAAAAAAABwAYAAAAAAAAABAA7UFCMQgAanF1
ZXJ5L1VUBQAD12umV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAHJ/BknmdkxKaQAAAGsAAAAc
ABgAAAAAAAEAAACkgYMxCABqcXVlcnkvYXR0cmlidXRlcy1zdGRlcnIudHh0VVQFAAPXa6ZXdXgL
AAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAeX8GSQAAAAAAAAAAAAAAAAYAGAAAAAAAAAAQAO1BQjII
AG1lZGlhL1VUBQAD5WumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAHh/BknEUFSBewAAAK4A
AAAfABgAAAAAAAEAAACkgYIyCABtZWRpYS9hdWRpby1kYXRhLXVybC1zdGRlcnIudHh0VVQFAAPk
a6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAeX8GSQAAAAAAAAAAAAAAAAoAGAAAAAAAAAAQ
AO1BVjMIAG1lZGlhL21hYy9VVAUAA+Vrpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAB5fwZJ
s68SI8AAAADyBgAAMwAYAAAAAAABAAAApIGaMwgAbWVkaWEvbWFjL2NvbnRyb2xzLXBhbmVsLW5v
dC1jbGlwcGVkLW91dC1zdGRlcnIudHh0VVQFAAPla6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAA
AAAA4n0GSQAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BxzQIAG1lZGlhL21lZGlhLXNvdXJjZS9V
VAUAA+dopld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAB8fwZJ5/HdMZ4AAAC0AAAANQAYAAAA
AAABAAAApIEUNQgAbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1zdHBwLWNyYXNoLXN0
ZGVyci50eHRVVAUAA+trpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAANgAZJsrT4bWgAAADG
AAAAKAAYAAAAAAABAAAApIEhNggAbWVkaWEvc291cmNlcy1mYWxsYmFjay1jb2RlY3Mtc3RkZXJy
LnR4dFVUBQADCmymV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAAB+BkkAAAAAAAAAAAAAAAAM
ABgAAAAAAAAAEADtQes2CABtZWRpYS90cmFjay9VVAUAAyBppld1eAsAAQT1AQAABFAAAABQSwEC
HgMKAAIAAAAagAZJ/ic44DUAAAA1AAAAKgAYAAAAAAABAAAApIExNwgAbWVkaWEvdHJhY2svdHJh
Y2staW4tYmFuZC1zdHlsZS1hY3R1YWwudHh0VVQFAAMkbKZXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgAGoAGSf1q8zbFAQAAbgMAACgAGAAAAAAAAQAAAKSByjcIAG1lZGlhL3RyYWNrL3RyYWNr
LWluLWJhbmQtc3R5bGUtZGlmZi50eHRVVAUAAyRspld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CAAagAZJDPrk6jYBAAAzAgAALAAYAAAAAAABAAAApIHxOQgAbWVkaWEvdHJhY2svdHJhY2staW4t
YmFuZC1zdHlsZS1leHBlY3RlZC50eHRVVAUAAyRspld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CAAagAZJ15yTd+0IAAClJAAAMAAYAAAAAAABAAAApIGNOwgAbWVkaWEvdHJhY2svdHJhY2staW4t
YmFuZC1zdHlsZS1wcmV0dHktZGlmZi5odG1sVVQFAAMkbKZXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgADoAGSc9OKdKQAAAAvQAAACEAGAAAAAAAAQAAAKSB5EQIAG1lZGlhL3Vuc3VwcG9ydGVk
LXJ0c3Atc3RkZXJyLnR4dFVUBQADC2ymV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACiABkmj
uCDGwAAAAPIGAAAoABgAAAAAAAEAAACkgc9FCABtZWRpYS92aWRlby1wb3N0ZXItYmFja2dyb3Vu
ZC1zdGRlcnIudHh0VVQFAAM7bKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAe38GSQAAAAAA
AAAAAAAAAAkAGAAAAAAAAAAQAO1B8UYIAHBsYXRmb3JtL1VUBQAD6mumV3V4CwABBPUBAAAEUAAA
AFBLAQIeAwoAAAAAAHt/BkkAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQTRHCABwbGF0Zm9ybS9t
YWMvVVQFAAPqa6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAe38GSQAAAAAAAAAAAAAAABMA
GAAAAAAAAAAQAO1Be0cIAHBsYXRmb3JtL21hYy9mb250cy9VVAUAA+prpld1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACAB7fwZJZQf3tMgAAADyBgAAMAAYAAAAAAABAAAApIHIRwgAcGxhdGZvcm0v
bWFjL2ZvbnRzL2hhbi1kaXN1bmlmaWNhdGlvbi1zdGRlcnIudHh0VVQFAAPqa6ZXdXgLAAEE9QEA
AARQAAAAUEsBAh4DCgAAAAAA430GSQAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1B+kgIAHBsdWdp
bnMvVVQFAAPpaKZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAAIAGSe5dckWGAAAA9gAAADsA
GAAAAAAAAQAAAKSBPEkIAHBsdWdpbnMvbnBwLXNldC13aW5kb3ctY2FsbGVkLWR1cmluZy1kZXN0
cnVjdGlvbi1zdGRlcnIudHh0VVQFAAPva6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAYH8G
ScnC98qeAgAA2CQAABoAGAAAAAAAAQAAAKSBN0oIAHB5d2Vic29ja2V0LndzLmxvZy1lcnIudHh0
VVQFAAO0a6ZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAT38GSco1KM8JAQAAjwIAABoAGAAA
AAAAAQAAAKSBKU0IAHB5d2Vic29ja2V0LndzLmxvZy1vdXQudHh0VVQFAAOWa6ZXdXgLAAEE9QEA
AARQAAAAUEsBAh4DCgAAAAAADn8GSQAAAAAAAAAAAAAAABsAGAAAAAAAAAAAAKSBhk4IAHB5d2Vi
c29ja2V0Lndzcy5sb2ctZXJyLnR4dFVUBQADG2umV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAA
AA5/BkkAAAAAAAAAAAAAAAAbABgAAAAAAAAAAACkgdtOCABweXdlYnNvY2tldC53c3MubG9nLW91
dC50eHRVVAUAAxtrpld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABWgQZJRSYdOdEnAADLqgAA
DAAYAAAAAAABAAAApIEwTwgAcmVzdWx0cy5odG1sVVQFAANzbqZXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgAAAAAAin4GSQAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BR3cIAHJldHJpZXMvVVQFAAMk
aqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAin4GSQAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQ
AO1BiXcIAHJldHJpZXMvaHR0cC9VVAUAAyNqpld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAACK
fgZJAAAAAAAAAAAAAAAAEwAYAAAAAAAAABAA7UHQdwgAcmV0cmllcy9odHRwL3Rlc3RzL1VUBQAD
I2qmV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAIp+BkkAAAAAAAAAAAAAAAAZABgAAAAAAAAA
EADtQR14CAByZXRyaWVzL2h0dHAvdGVzdHMvbWVkaWEvVVQFAAMjaqZXdXgLAAEE9QEAAARQAAAA
UEsBAh4DCgAAAAAAin4GSQAAAAAAAAAAAAAAAB0AGAAAAAAAAAAQAO1BcHgIAHJldHJpZXMvaHR0
cC90ZXN0cy9tZWRpYS9obHMvVVQFAAMjaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAin4G
SWRuyDEKAQAA0gMAAEIAGAAAAAAAAQAAAKSBx3gIAHJldHJpZXMvaHR0cC90ZXN0cy9tZWRpYS9o
bHMvdmlkZW8tY29udHJvbHMtbGl2ZS1zdHJlYW0tc3RkZXJyLnR4dFVUBQADI2qmV3V4CwABBPUB
AAAEUAAAAFBLAQIeAwoAAAAAAIp+BkkAAAAAAAAAAAAAAAARABgAAAAAAAAAEADtQU16CAByZXRy
aWVzL2ltcG9ydGVkL1VUBQADJGqmV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAIp+BkkAAAAA
AAAAAAAAAAAVABgAAAAAAAAAEADtQZh6CAByZXRyaWVzL2ltcG9ydGVkL3czYy9VVAUAAyRqpld1
eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAACKfgZJAAAAAAAAAAAAAAAAKAAYAAAAAAAAABAA7UHn
eggAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1VUBQADJGqmV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAwoAAAAAAIp+BkkAAAAAAAAAAAAAAAAuABgAAAAAAAAAEADtQUl7CABy
ZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvVVQFAAMkaqZXdXgL
AAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAin4GSQAAAAAAAAAAAAAAADIAGAAAAAAAAAAQAO1BsXsI
AHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvVVQFAAMk
aqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAin4GSQAAAAAAAAAAAAAAADgAGAAAAAAAAAAQ
AO1BHXwIAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
YmFzaWMvVVQFAAMkaqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAToEGScqlhqI8AQAAkAUA
AFMAGAAAAAAAAQAAAKSBj3wIAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi1hY3R1YWwudHh0VVQFAANjbqZXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAToEGSbTkJjeSAQAATgYAAFEAGAAAAAAAAQAAAKSBWH4I
AHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMv
bW9kZS1zYW1lLW9yaWdpbi1kaWZmLnR4dFVUBQADY26mV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIAE6BBkls2rPTRQEAAKgFAABVABgAAAAAAAEAAACkgXWACAByZXRyaWVzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4tZXhw
ZWN0ZWQudHh0VVQFAANjbqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAToEGSeoOX76OCAAA
2iAAAFkAGAAAAAAAAQAAAKSBSYIIAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi1wcmV0dHktZGlmZi5odG1sVVQF
AANjbqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAToEGSWo07zJBAQAAngUAAFoAGAAAAAAA
AQAAAKSBaosIAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi13b3JrZXItYWN0dWFsLnR4dFVUBQADY26mV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIAE6BBkkOdZA7lwEAAHgGAABYABgAAAAAAAEAAACkgT+NCABy
ZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21v
ZGUtc2FtZS1vcmlnaW4td29ya2VyLWRpZmYudHh0VVQFAANjbqZXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAToEGSelzKfFKAQAAtgUAAFwAGAAAAAAAAQAAAKSBaI8IAHJldHJpZXMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdp
bi13b3JrZXItZXhwZWN0ZWQudHh0VVQFAANjbqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
ToEGSSHsbUqTCAAA/SAAAGAAGAAAAAAAAQAAAKSBSJEIAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi13b3JrZXIt
cHJldHR5LWRpZmYuaHRtbFVUBQADY26mV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAOR9BkkA
AAAAAAAAAAAAAAALABgAAAAAAAAAEADtQXWaCABzY3JvbGxiYXJzL1VUBQAD7GimV3V4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIAACABkluvSNhOQAAAEIAAAA7ABgAAAAAAAEAAACkgbqaCABzY3Jv
bGxiYXJzL3Njcm9sbGV2ZW50LWlmcmFtZS1uby1zY3JvbGxpbmctd2hlZWwtc3RkZXJyLnR4dFVU
BQAD8GumV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAFaBBkm08+1/q5EIAEncLQAKABgAAAAA
AAEAAACkgWibCABzdGF0cy5qc29uVVQFAANzbqZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA
D34GSQAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BVy0RAHN0b3JhZ2UvVVQFAAM+aaZXdXgLAAEE
9QEAAARQAAAAUEsBAh4DCgAAAAAAD34GSQAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1BmS0RAHN0
b3JhZ2UvaW5kZXhlZGRiL1VUBQADPmmmV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAABB+BkkA
AAAAAAAAAAAAAAAZABgAAAAAAAAAEADtQeUtEQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vVVQF
AAM/aaZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAD34GSeLF3gOhAQAA6QIAADgAGAAAAAAA
AQAAAKSBOC4RAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3VibGUtYWJvcnQtcHJpdmF0ZS1h
Y3R1YWwudHh0VVQFAAM+aaZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAD34GSSi56U2WAQAA
8gIAADYAGAAAAAAAAQAAAKSBSzARAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kb3VibGUtYWJv
cnQtcHJpdmF0ZS1kaWZmLnR4dFVUBQADPmmmV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAA9+
BkmRkSaSagEAAJECAAA6ABgAAAAAAAEAAACkgVEyEQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
ZG91YmxlLWFib3J0LXByaXZhdGUtZXhwZWN0ZWQudHh0VVQFAAM+aaZXdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgAEH4GSVt9tmb0CAAAXh8AAD4AGAAAAAAAAQAAAKSBLzQRAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9kb3VibGUtYWJvcnQtcHJpdmF0ZS1wcmV0dHktZGlmZi5odG1sVVQFAAM/
aaZXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAB34GSQAAAAAAAAAAAAAAAAQAGAAAAAAAAAAQ
AO1Bmz0RAHN2Zy9VVAUAAy1ppld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAD0fQZJAAAAAAAA
AAAAAAAADQAYAAAAAAAAABAA7UHZPREAc3ZnL2FzLWltYWdlL1VUBQADC2mmV3V4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIABGABknbCNNCOwAAAD8AAAA/ABgAAAAAAAEAAACkgSA+EQBzdmcvYXMt
aW1hZ2Uvc3ZnLWltYWdlLXdpdGgtZGF0YS11cmktaW1hZ2VzLWRpc2FibGVkLXN0ZGVyci50eHRV
VAUAAxFspld1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAJfgZJAAAAAAAAAAAAAAAACwAYAAAA
AAAAABAA7UHUPhEAc3ZnL2N1c3RvbS9VVAUAAzJppld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CAAkgAZJIfT28DoAAABCAAAAMAAYAAAAAAABAAAApIEZPxEAc3ZnL2N1c3RvbS91c2UtaW52YWxp
ZGF0ZS1jbGljay1jcmFzaC1zdGRlcnIudHh0VVQFAAM0bKZXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgAJ4AGSa8ttg2RAAAApgAAACQAGAAAAAAAAQAAAKSBvT8RAHN2Zy9jdXN0b20vemVyby1k
YXNoYXJyYXktc3RkZXJyLnR4dFVUBQADOWymV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAPd9
BkkAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQaxAEQBzdmcvc3Ryb2tlL1VUBQADEmmmV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIABWABkmxhPPmkQAAAKYAAAAlABgAAAAAAAEAAACkgfFAEQBz
dmcvc3Ryb2tlL3plcm8td2lkdGgtaGFuZy1zdGRlcnIudHh0VVQFAAMabKZXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DCgAAAAAA/X0GSQAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1B4UERAHdlYmFyY2hp
dmUvVVQFAAMdaaZXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAG4AGSdsI00I7AAAAPwAAADoA
GAAAAAAAAQAAAKSBJkIRAHdlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1zdWJyZXNvdXJjZS1iZWZv
cmVsb2FkLXN0ZGVyci50eHRVVAUAAyVspld1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACABPgQZJ
4S/gdS4EAABENgAAGQAYAAAAAAABAAAApIHVQhEAd3B0d2tfcHJvY2Vzc19sb2cub3V0LnR4dFVU
BQADZm6mV3V4CwABBPUBAAAEUAAAAFBLBQYAAAAAgwGDAUq5AABWRxEAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>285509</attachid>
            <date>2016-08-06 16:49:58 -0700</date>
            <delta_ts>2016-08-07 01:07:40 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews114 for mac-yosemite</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>1442922</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
UhOUboQZ/SLUTYa71VgI9/8fUEsDBAoAAAAAAAWABkkAAAAAAAAAAAAAAAAMABwAY29tcG9zaXRp
bmcvVVQJAAP5a6ZXD3CmV3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAB6fwZJAAAAAAAAAAAAAAAA
FAAcAGNvbXBvc2l0aW5nL3JlZ2lvbnMvVVQJAAPna6ZXD3CmV3V4CwABBPUBAAAEFAAAAFBLAwQU
AAIACAB6fwZJWyaqu6wAAAAUAwAARQAcAGNvbXBvc2l0aW5nL3JlZ2lvbnMvd2Via2l0LWZsb3ct
cmVuZGVyZXItbGF5ZXItY29tcG9zaXRpbmctc3RkZXJyLnR4dFVUCQAD52umV+drpld1eAsAAQT1
AQAABBQAAADtj7EKwjAURXe/IqMONm00agsOWhQcxIKjSHmmjxqNSXmNQv7eioN+gKPbudO555DI
TKaZTKJ4nB6Z9niDNlhV7tEX5BokH1irawvGYMWQaD5MxHQmWf+61vUSWtydLqj8ishRubEPMLoC
j9WA9fX3As/43t1JYQ7qjDx3hFusNHxomMiJiMQ45p3aOx8abHlhICDxTvamcvH6FylmtEUmRDrq
Hf4R/4jfRTwBUEsDBBQAAgAIAAWABknjWabDwgAAAPIGAAA8ABwAY29tcG9zaXRpbmcvc2hvdy1j
b21wb3NpdGVkLWlmcmFtZS1vbi1iYWNrLWJ1dHRvbi1zdGRlcnIudHh0VVQJAAP5a6ZX+WumV3V4
CwABBPUBAAAEFAAAAO3PMW/CMBQE4J1f4REGYsdNwERiaKMiMSCQMiIUPZwnMHXj6MUg+d8D6lAG
VgYkb3fT3bdNJ4UQhVCJyrMdMx5/oQ+triv0G3Idkg+sN4cWrMWGIdF8nMqpytnwZ2EOX9Djen9C
7b+JHNXL9gLWNOCxGbGheWzgGa/cmTSWoI/IS0e4wsbAfxqn+UQmMhP8Nu2dDx32fGMhIPHb2F+q
P+//Es2saZFJOfsYbCMiIl6CUPkjonRdeAuFUCoqoiIqniiuUEsDBAoAAAAAAHh/BkkAAAAAAAAA
AAAAAAASABwAY29tcG9zaXRpbmcvdmlkZW8vVVQJAAPka6ZXD3CmV3V4CwABBPUBAAAEFAAAAFBL
AwQUAAIACAB4fwZJu6RHocIAAADyBgAAMgAcAGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLWNsaXAt
Y2hhbmdlLXNyYy1zdGRlcnIudHh0VVQJAAPka6ZX5GumV3V4CwABBPUBAAAEFAAAAO3PMQvCMBQE
4N1fkVEHGxtb2woOWhQcRMFRpDzTh0ZjU16jkH+v4mAHRxch29109+3CeBxn4ygJxGi4Z8riFRpX
yWKLdkOmRrKONepYgdZYMiSa9EORpDHrXhbqOIMG14czSjsnMlQsqztoVYLFsse6qt3AMr41N5KY
gzwhzw3hCksFn9QP45EIRDTgz2lrrKux4RsNDok/x96pmL7+BZJpVSETIht2di1E5BEe8TtE0kbk
pnZ/oRikqVd4hVd8UTwAUEsDBAoAAAAAAAKABkkAAAAAAAAAAAAAAAANABwAZGlzcGxheWxpc3Rz
L1VUCQAD82umVw9wpld1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAAoAGSaNX/ehQAAAAjgAAADIA
HABkaXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtc3RkZXJyLnR4dFVUCQAD
82umV/Nrpld1eAsAAQT1AQAABBQAAABzL0osyMhMLnbOzytJrSixskpPLXEO8dXQVMgsVsjLL1Go
TC1RSM7PLUgsyUzKSVUozyzJUChKTc4vSsnMSwfKgLUV63G5oxtUjGYQMYYAAFBLAwQUAAIACAAC
gAZJ8paV1UcAAABJAAAAKQAcAGRpc3BsYXlsaXN0cy9sYXllci1kaXNwYXktbGlzdC1zdGRlcnIu
dHh0VVQJAAPza6ZX82umV3V4CwABBPUBAAAEFAAAAHMvSizIyEwuds7PK0mtKLGySk8tcQ7x1dBU
yCxWyMsvUahMLVFIzs8tSCzJTMpJVSjPLMlQKEpNzi9KycxLB8qAtRXrcQEAUEsDBAoAAAAAABCA
BkkAAAAAAAAAAAAAAAAIABwAZWRpdGluZy9VVAkAAxBsplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAAB2ABkkAAAAAAAAAAAAAAAATABwAZWRpdGluZy9wYXN0ZWJvYXJkL1VUCQADKmymVw9w
pld1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAEIAGSX6p8SDpAAAAggEAADAAHABlZGl0aW5nL3Bh
c3RlYm9hcmQvY29weS1yZXNvbHZlcy11cmxzLXN0ZGVyci50eHRVVAkAAxBsplcQbKZXdXgLAAEE
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
AAIACAAngAZJ3v266a8AAADuAAAAPwAcAGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvZGF0YWJh
c2UtY2FsbGJhY2stZGVsaXZlcnktc3RkZXJyLnR4dFVUCQADOWymVzlspld1eAsAAQT1AQAABBQA
AABlzkELgkAQBeC7v2JOolBt4CX2FmWXCEFLz7s6hbDOyLRb9O/TqFO3ebzvweRlWZQaLmSsQ/AM
PggBE/TUCg5I3jgwwfPyYdoQBkjWQOzBEKAISxqpml0Y8K72xhuVN5Vq0B57ryoO0uKcdiyoTtwF
N7En2m6S1tzxM5mPVTuOSbbJUtBgmR18R1r/hNYjypVlKEakLXU1Sn99JTNe/Ot8fg3iqTkftK68
9HSDOI3eUEsDBAoAAAAAACyABkkAAAAAAAAAAAAAAAALABwAZmFzdC9mb3Jtcy9VVAkAA0NsplcP
cKZXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIACyABkkuX9jvewEAAPg5AAAzABwAZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLXBhdHRlcm5NaXNtYXRjaC1zdGRlcnIudHh0VVQJAANDbKZXQ2ymV3V4
CwABBPUBAAAEFAAAAO3YTUsDMRAG4Lu/Yk62grjehCCC1gpWirJbLIIiY3baBnaTNZmt7b83fhwK
XvTm4b2EfM1u5jkkIeOyvC0NlbLsG47jTRclJRe8oYfzsiQb2s41QgvOZU1vTlc0uPZrblxN8SuI
ZCeq9y2rXeW5HUfxupIkabBX3IembyUVl6xcjOdVMZeXG6dFFfpopZjwmisbXaejEKXYcozFjzUd
2a4bnhwfkKGktTG9d6+9PHcaTyfVyJiHHGXMxVbFhlruWFWiP6OdsZ9pmrvo1qxizHeqQxt8UprP
roypNDq/pP3Dr+ZMNjriJJX45NStnW4Pd78+7Rt1jfMyzb8/2BuDFrSgBS1oQQta0IIWtKAFLWhB
C1rQgha0oP0F7SOxkviawiLjfiYHWMACFrCABez/hm1druTl5Kxa51k/6k+0CJHsiiPb3E+24YS7
ArjBDW5wgxvc4AY3uMENbnCDG6/NoAUtaPF+h4MN3ODGjgxa0IIW9wgcbOAG99+53wFQSwMECgAA
AAAAboAGSQAAAAAAAAAAAAAAAAwAHABmYXN0L2ZyYW1lcy9VVAkAA8BsplcPcKZXdXgLAAEE9QEA
AAQUAAAAUEsDBBQAAgAIAG6ABkne/brprwAAAO4AAAAvABwAZmFzdC9mcmFtZXMvc2FuZGJveGVk
LWlmcmFtZS1zdG9yYWdlLXN0ZGVyci50eHRVVAkAA8BsplfAbKZXdXgLAAEE9QEAAAQUAAAAZc5B
C4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmUGi5krEPwDD4IARP0
1AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLinHYsqE7cBTexJ9pu
ktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N4qk5H7SuvPR0gziN
3lBLAwQKAAAAAAAzgAZJAAAAAAAAAAAAAAAADQAcAGZhc3QvaGlzdG9yeS9VVAkAA1FsplcPcKZX
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIADOABkne/brprwAAAO4AAABAABwAZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2Utbm8tdHJhbnNhY3Rpb24tZGItc3RkZXJyLnR4dFVUCQAD
UWymV1Fspld1eAsAAQT1AQAABBQAAABlzkELgkAQBeC7v2JOolBt4CX2FmWXCEFLz7s6hbDOyLRb
9O/TqFO3ebzvweRlWZQaLmSsQ/AMPggBE/TUCg5I3jgwwfPyYdoQBkjWQOzBEKAISxqpml0Y8K72
xhuVN5Vq0B57ryoO0uKcdiyoTtwFN7En2m6S1tzxM5mPVTuOSbbJUtBgmR18R1r/hNYjypVlKEak
LXU1Sn99JTNe/Ot8fg3iqTkftK689HSDOI3eUEsDBAoAAAAAADmABkkAAAAAAAAAAAAAAAAMABwA
ZmFzdC9pbWFnZXMvVVQJAANebKZXD3CmV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACAA5gAZJIY+9
ODIAAAAzAAAALAAcAGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS1jcm9wLWJveC1zdGRlcnIudHh0
VVQJAANebKZXXmymV3V4CwABBPUBAAAEFAAAAHPLSSxJdUlNzk9JtVJIAdGZeekKqUVF+UVWCpl5
yflFRanJJQopiSWJCskZqcnZelwAUEsDBAoAAAAAAEuABkkAAAAAAAAAAAAAAAAJABwAZmFzdC94
c2wvVVQJAAN9bKZXD3CmV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACABJgAZJcv1l8oUAAADpAAAA
JQAcAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50eHRVVAkAA3pspld6bKZXdXgL
AAEE9QEAAAQUAAAArU4xDsJADNv7inygZGC7GSbYQHRO21SclLtUuZzU/p6DfoHFsmzL9qRpjUIe
NQObqQVYovAPAiK+VGrighdywuvwwIHHW3S8067Vn1y84ELFcSuCxkWrTS2+va2fdTo1FSRmhjOw
cOLsENOq5l1zwkEhQM00tlFXEKX5T+P9Uc/z90X3AVBLAwQUAAIACABKgAZJzgkoAo0AAADwAAAA
JwAcAGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3RkZXJyLnR4dFVUCQADe2ymV3tspld1
eAsAAQT1AQAABBQAAACljjEOwjAMRfeewhcoHtgywwQbiM5O64pITlw5jgS3J9AjsHz5/2dbf9a8
JSFPWoDN1AKsSfgnAREfKi1zxRM54Xm64cTxkhyv9Nbmd65ecaXq+KqCxlWbzX29Ox8jLWPKm5qP
zdKhZyCpMByBhTMXh50OnYR9hACtUOwFXEGUln+LFK1tfn6f9DuR4QNQSwMEFAACAAgASoAGSc+P
Zg5QAAAAoAAAACQAHABmYXN0L3hzbC94c2x0LWNvbnRlbnRUeXBlLXN0ZGVyci50eHRVVAkAA3ts
pld7bKZXdXgLAAEE9QEAAAQUAAAArcyxDcAgDAXRnin+BlHabIPACEs2RpaJMn7IDmmuu1dMJ0sO
tgFyN7/QWAgQHoQTJKQ0ArZirkg87ixcsbsIzRxK0a3uyyyVv7Cnh8rxkS9QSwMEFAACAAgAS4AG
SYFKd61LAAAArAAAADQAHABmYXN0L3hzbC94c2x0LXRyYW5zZm9ybS10by1mcmFnbWVudC1jcmFz
aC1zdGRlcnIudHh0VVQJAAN9bKZXfWymV3V4CwABBPUBAAAEFAAAALXMsQ2AMAxE0T5T3Aq0bOPA
BVlybGQs5keiYAPqr/e3mKealIaDmZErhhoBUycW0DjphVtSpRtbcudQ11fEwGHRxb6O4lVt++X6
AFBLAwQUAAIACAAxggZJEPnrxvQBAACTBQAAEQAcAGZ1bGxfcmVzdWx0cy5qc29uVVQJAAMNcKZX
D3CmV3V4CwABBPUBAAAEFAAAAL1UTW/bMAz9K4FOG2DN+Vo3ZKcA8Yai6VrUabudDNmmYyGyLEhU
miDIfx/lBFmHrcCKtfNFMkG+Rz6KnM5m2U2S3s4X6ZsdQ3Do2GTHoJQo9TJcHSgoULY6/DTtGni+
5UUtrCgQLM+tR+BVawt4V2OjgpcF01pkE3aTfCHw9PzqK4sYbAwBQUn262makoUQvKAItji/TK5u
F2wfnRgeWlvytXTkoLa8EcWLoMMGQZf8VNPPQn6H/zyfXnz/K+ReZ386ea9QcmfEq0rkqF8KDjS8
1cCpxgY0vhylggq5lcsaX7PTnVhK6v+mldSB7Wm5nv0O9sQrmxAdnHfsYVR0B+TcKIE0Kw0/TVoF
WNThIowMRy6cLA6jVlKGoqFmkuZS/4McybejFr8iBlFWf3r5zwM+fhFzK2lMcBwNR+8jpn2TWVha
cI4mjYr9GLEWa7BZYYWrIZQflNI0fdabjqISysEhtJHOdSuoHzEltq3HrBMtK6Ul7viuVb4BF88E
iji5T+N7yC8kxvPOd9HpG7E1WNftrvEB1QjnAvN4OBpQjkZuQB1xQYtcPUqiFAhE1B9PBh+uL3ut
7k390jvs9c+i3rA/OCP4WrjMWEDcEnLXSLSeYiu5CWBBivFRikqJ1ZZNhhHzlEF2kFWEJeSySgbf
ELp/++kHUEsDBAoAAAAAAEyABkkAAAAAAAAAAAAAAAAFABwAaHR0cC9VVAkAA4BsplcPcKZXdXgL
AAEE9QEAAAQUAAAAUEsDBAoAAAAAAFuABkkAAAAAAAAAAAAAAAALABwAaHR0cC90ZXN0cy9VVAkA
A55splcPcKZXdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAFCABkkAAAAAAAAAAAAAAAARABwAaHR0
cC90ZXN0cy9jYWNoZS9VVAkAA4dsplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAE+ABknh
n7UI7QAAAIkEAAAwABwAaHR0cC90ZXN0cy9jYWNoZS9tZW1vcnktY2FjaGUtcHJ1bmluZy1zdGRl
cnIudHh0VVQJAAOGbKZXhmymV3V4CwABBPUBAAAEFAAAAO3SwUoDMRAG4LP7FHPUy9K1pUIQoW4P
CgqCiIJ4mE2maWiclGRW8e2dqDdPUqGXHhMyXzJ/ZjF6gDl0czM5NdMJ0Hvpulkbk8UIWWymbcoS
2D/PprPu7AXOr3mVLgzE5L1uQxHMUtq2bRZ/ppY0jF6tQnJLpaCnm2/1Uos2BrQwktsFro/rE6+C
HzNKSPwYZN2n122kurpCdpGygR7tmhyozTjonTCg3RC7sltXD4VyzWsZrJhftoHj5ujkkNsecmP3
E9xXXyjkU/5Ql8cYD/J/yYGDVPJedZ2a+qMGnu56sImZbJ0kPfOGMbjmE1BLAwQUAAIACABQgAZJ
X9CLvYYAAADAAAAAPQAcAGh0dHAvdGVzdHMvY2FjaGUvbmV0d29yay1lcnJvci1kdXJpbmctcmV2
YWxpZGF0aW9uLXN0ZGVyci50eHRVVAkAA4dspleHbKZXdXgLAAEE9QEAAAQUAAAAlcyxCsIwEIDh
vU9xoy7S2FAhiFDq4iAIDgriENNrDIQ7SS6Kb28dHV1/fr6ueIAWVGvqpWlqwFdWSi8iOxshiUv4
4CSB/EU3Wq2usN7irfiNgYw07DFn6/EU5N5bQc/pbWBGJcZ51f3I6g85UJAveZz0wLSjkQ2cDz04
JkInU5uep41hqD5QSwMECgAAAAAATIAGSQAAAAAAAAAAAAAAABIAHABodHRwL3Rlc3RzL2NhbnZh
cy9VVAkAA4BsplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAEyABkkAAAAAAAAAAAAAAAAY
ABwAaHR0cC90ZXN0cy9jYW52YXMvd2ViZ2wvVVQJAAOAbKZXD3CmV3V4CwABBPUBAAAEFAAAAFBL
AwQUAAIACABMgAZJ9lp5J7oAAAB2AQAAOwAcAGh0dHAvdGVzdHMvY2FudmFzL3dlYmdsL29yaWdp
bi1jbGVhbi1jb25mb3JtYW5jZS1zdGRlcnIudHh0VVQJAAOAbKZXgGymV3V4CwABBPUBAAAEFAAA
AL2OzWoCMRSF9z7FeYGGzBicEorgz0Zooehy6CIz3kQxJJKbQenTe7H0BbroWR4433f6ZmF1a1uj
2rn+wpsEm/1qfcBSAh8nPn1SOp5T2FMkx3SgatHre+dfvR98Nw6dDNcxjxdonBwj5fTyTSWjkMeY
p1TRzPr/Eq2mACzwqwPduGmMkpmLKHUsdM2liqY3c6ONXNkln5cWMYcgNbi6Ulkp9QfUloYpCIup
fhCzC/T+Q33etpBhpOPsAVBLAwQKAAAAAABNgAZJAAAAAAAAAAAAAAAADwAcAGh0dHAvdGVzdHMv
ZG9tL1VUCQADgmymVw9wpld1eAsAAQT1AQAABBQAAABQSwMEFAACAAgATYAGSeleeZnIAAAAUwIA
AC4AHABodHRwL3Rlc3RzL2RvbS9kb2N1bWVudC1jb250ZW50VHlwZS1zdGRlcnIudHh0VVQJAAOC
bKZXgmymV3V4CwABBPUBAAAEFAAAAOWRMWvDMBCF5/hX3NgswU7cDCIEjDI0Q6FQSgOhw1k6K6Lq
KUjnlP77yl2zJWO3e3B8j/deNzqANTRrVS/V8hHoOzdNuwjRYIAkJtE5JvHsju2qrdsP2OyoH91W
QRZMoiMP3o0JxUd+93LS8escaFJPyDZQUqDRnMhCDcTYh3L1aD6Jba66281J3jKlPQ9x542oK7aC
h2o2v8uB7TPljI7+cqGQi+mncHkM4b+RPXuZkK+FXradeldweNFgIjOZae/yc8HgbfULUEsDBAoA
AAAAAFuABkkAAAAAAAAAAAAAAAARABwAaHR0cC90ZXN0cy9tZWRpYS9VVAkAA51splcPcKZXdXgL
AAEE9QEAAAQUAAAAUEsDBAoAAAAAAFKABkkAAAAAAAAAAAAAAAAaABwAaHR0cC90ZXN0cy9tZWRp
YS9jbGVhcmtleS9VVAkAA4tsplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAFKABkmlsCXP
UwEAAH8DAAA5ABwAaHR0cC90ZXN0cy9tZWRpYS9jbGVhcmtleS9jbGVhci1rZXktaGxzLWFlczEy
OC1zdGRlcnIudHh0VVQJAAOLbKZXi2ymV3V4CwABBPUBAAAEFAAAAM2STUsDMRCGz/ZXzNFeln5s
V41S6IeoYKVQiofiIU1m09BssiQTi//ebFtKwZsF8ZjMzDvv+ySrbsE6PdbPs6Jz+wEPi8en+XI2
H8KICKua3pB2zm9nzmpyfoEUawbWEQQk0lZBrMEeeqA6NN0Dl9JjCKADGCe4aa3+ZMsoKoACjrsG
gLvQ7ebZvgiehMfa+UZulffzvEg+XmzphiyNK9VsCcQ9hSzLfiE1xXVUSSs5niVXXOHrQXWchrYM
0qBBeSIxyHrFfyJxst8gmDhbahU9J+3su6bNxFW1web0zK006BlMuNighA6g5euUDNZcbNHKcBm7
ZUDfvMpUC2I/tBlct67aZxD7g/wcYkA1j1U9RaM/0Y+EiFU0nFCOY1k2rjsM5KEIUjdXAUrvKvDI
myyONqkinLUoKJ1v7gZFv3dRIiuP32HPMXlRzn+lHDYa0259A1BLAwQKAAAAAABTgAZJAAAAAAAA
AAAAAAAAFQAcAGh0dHAvdGVzdHMvbWVkaWEvaGxzL1VUCQADjmymVw9wpld1eAsAAQT1AQAABBQA
AABQSwMEFAACAAgAUoAGSTvllUa/AQAA0AQAAEAAHABodHRwL3Rlc3RzL21lZGlhL2hscy9obHMt
YWNjZXNzaWJsaXR5LWRlc2NyaWJlcy12aWRlby1zdGRlcnIudHh0VVQJAAOLbKZXi2ymV3V4CwAB
BPUBAAAEFAAAAM2T0WvbMBDGn9e/4h7XFxPHjpe4I5C66zaoSyCUPoQxFOssi8iSJ50X+t/vnKzD
bd/aDaY3SXffffw+aRtn+WSaJ2kUz+Nv8HHz6fP6rlwvYUWEbUe3SAfn96WzmpzfIPVdDtYRBCTS
VkHfgT3VQHsqugAhpccQQAcwrhLmbDuaMv1nU1a9AsjgcRbgIcRxGh0vwVPlsXN+kNumSZrM2cdX
W7tlzu1KDVMCCU8hiqJXSF3hrlesxY5LdiUU3pxUL7lpnwM3GpQjEtNswW284FqrDXkU7dqIB/Sw
5AV1V4fvK0PorSC80YGKRliFkqUa58LgVzMJzYbEYxmfgOHS8ZgPk/8I+B9KA+nC2Vqr3gvSzt5r
agrXdgaH3RdhpUGfQyGqBiVMAK3YMUDYiWqPVoa3RXQX0A/hX+mK8hfaObw/e3f+BGIyhlii1OJa
GyyEqXrD4C/vV1YWDVb7QjDJEkXo/VHRyoOW1AzQFGfMQQFxkAMB4gIO7KfwWlgacuWAB/gef/T6
aXvtXQtZkqazGMhBli7mi9kLh695TUXvPVoaPaKOU+aTNxG28vcvOObKqsr5B+Zqe2POnynP/qLy
L1BLAwQUAAIACABSgAZJamZ1W8YBAABFBQAAOgAcAGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1h
dWRpby10cmFja3MtaGFzLWF1ZGlvLXN0ZGVyci50eHRVVAkAA4tspleLbKZXdXgLAAEE9QEAAAQU
AAAAzZTRa9swEMafl7/iHteXkixOlngj4LrrNqhHIJQOyhgX6yKLKJInnRr63++UrtCQt5VC9Wbx
3Xfn73d2lTTAFEbTcvihHE+A9nE0Ks6tb9FC4DZQ7wMbp++KcTGe/YLPl7ROelFCJKcaihE13Rru
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
DEKWdykNoHYegepaRkI+GZ+KzP5Anj8nnhfD4r/LV3T5kk6d8m98H+TfUEsDBBQAAgAIAFKABkmd
cFYczAAAADcCAAAyABwAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1yZWZlcmVyLXN0
ZGVyci50eHRVVAkAA4tspleLbKZXdXgLAAEE9QEAAAQUAAAAtZAxb8IwEIXn8itupItFIDBYFVII
Q5HoWDFUHS72xVi4Z2RfVPXf14Funaqo4z3pfe/eawYHsIFqoxdLvVoDfeaqqlWIBgMkMYmuMYln
91av6nr5Dk8H7uNWQ4jOFRmyYJKslJo1f0btqRtcYWWSF8oZHR3v1F0xXTQUYyA7BTw+10buvRsS
io988nJu48c10Hg9I9tASUOL5kwWFkCMXcmEDs2F2OZprV4zpXGvvTeif7E1zGcPj5MS2P4Md+uF
Qi6mr8LlIYT/JH8DUEsDBBQAAgAIAFKABkkxWpK05AAAAKwCAAAqABwAaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1kb2N1bWVudC1zdGRlcnIudHh0VVQJAAOMbKZXjGymV3V4CwABBPUBAAAEFAAAAK2R
QUsDQQyFz/ZX5NhepNuuexik0G4PCi0IIgriITubTodOM2Umq/jvzYonPdXtMSH53svLsnMAFRSV
mc7M/AboIxdFeR2ixQBJbKJTTOLZvZbzspy9we2ams4tDGTidks5o6NnL/sahVxMnwbG3IUwGS3/
TfbspUc+Kt1HvuddNPDyUIONzGRFezrzjsG3v1Sqs/zLj/1NdE4nVrp0MKCLgQaBBZPUkXfedQl7
t9/5xOMpUF/dIbeBkoEa7Z5amAIxNqoJDdqDppqHXfWUKfWZrb0V84et/xldTQYpnPP3S5K/AFBL
AwQUAAIACABTgAZJvFr7dekAAADGAwAAOQAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtcGxheS1z
dHJlYW0tY2h1bmtlZC1pY3ktc3RkZXJyLnR4dFVUCQADjmymV45spld1eAsAAQT1AQAABBQAAADd
k8FKA0EMhs/2KXJsL9Jtl0UGEer20EILgoiCeMjOptOh06TMZBXf3lnx5qkuXnpMSL4/+UMWnQOo
oKjMdGbmFdBHKoryOojFAFFtpJNE9exey3lZzt7gdklN5+4MJOJ2Symho2ev+xqVnMRPA2PuQpiM
Fn8me/baIx8z3QuveScGXh5qsMJMVnMu17xj8O0AlUT6M/5GnMsV97npYCA3BhoEVoxaC++86yL2
0377I8dToD5aIbeBooEa7Z5amAIxNlkTGrSH7GoattVToth7tvRWzS92vs/oajJI4b/ufh755sLJ
53zBF1BLAwQKAAAAAABkgAZJAAAAAAAAAAAAAAAAHgAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL1VUCQADrGymVw9wpld1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAWIAGSTZUypdUAQAA
lwQAAEIAHABodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1hcHBlbmQt
YnVmZmVyLXN0ZGVyci50eHRVVAkAA5hspleYbKZXdXgLAAEE9QEAAAQUAAAAzZLNTiMxEITv+xR9
Aw7J2I6ZkEgcgBCBRCREgAtCqGP3JBYee9T2sDv79Ewkfi7AldxKpVb3V6V+kOVUqKnWw0OlHqFi
XC8wuCp6+3Tdps1plylBcuuA3pMFYj4eyFLoEvaf5+5j+Jw58tNdoH8NmUz2Mrg8w4wHsL8kE4OF
vSp3zR5gjjVQMLENmZjsQe9AsYwtGzpDs6HiLDItyDr8VAN5WKqh0qK45phjv4hSMY9cY77AYD1x
KhbxxVGxRdqKeR+kppDf+YYGvAsEshyJP0rIciCOBqKEt/jjYTmZwKytmxsKlviWiR70SAs9VWOp
J6NHuFyHyC6soU+TOfpbV9MKE0GiDKsOjHf9PViRwbZ3T+6XWDeeTtuqIp651HjsrrAjhr+YAK3t
28wREFIXzIZjcP+Jv0QbC7m7aPo7tJGQ4nfRxj+gqd9Fm+xsa1Ltwq+9AlBLAwQUAAIACABZgAZJ
koRKXD4BAAB6AwAAUAAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWNvbmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS1zdGRlcnIudHh0VVQJAAOabKZXmmymV3V4CwAB
BPUBAAAEFAAAAOWQQU8CMRCF7/6KuakH2O5SKpB4UJFIIokR9EIIGdpZaOy2m2lXXX+9S4z6I7i9
vLzMvO+tczURxUSO+gM13kDJuF+gt2VwZvvUxMNtmyhCtHuPzpEBYr7u5UpIBRdvM/sXvmcOvH3x
9FmTTmTm3qYpJryEiyXp4A2cl6mtzwFTqIC8Do1PxGQuOweyZWhY0x3qA2V3gWlBxuK/6uVDVfQL
KbInDil0hyhms8AVpgf0xhHHbBHeLWXHSkcx60Aq8um3X1+Ds54gVwNxtv6HHqnTg5aiOBXoQuSq
J0Y9oeAHfyj6cihg2lT1M3lDvGKitRxIISfFVS7Hgw3M9z6w9XvoaBIHt7IV7TASREqwa0E72/2D
HWlsOvfmdYlV7ei2KUviqY21w/YRW2L4wAhoTLdmCoAQW68PHLz9Ij77BlBLAwQUAAIACABagAZJ
b9BJlz0BAAB6AwAAUgAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNl
LWNvbmZpZy1jaGFuZ2UtbXA0LXYtZnJhbWVyYXRlLXN0ZGVyci50eHRVVAkAA5xsplecbKZXdXgL
AAEE9QEAAAQUAAAA5ZDNTgJBEITvPEXfgAPs7A8LkngQkEgiCRH0QghpZnph4uzMpmdWXZ/eNVF5
CG+VSqW7vtrH+VQk05EYjtPxAQrG8xqtLpxRx03tL7MmkAevzxaNIQXEfDuIc5Hl0Htd6r/wPbPj
47Olj4pkILWyOiwwYB96W5LOKugWoam6gMGVQFa62gZiUv3WgWjrapY0R3mhaO6Y1qQ0XtUgHuXJ
MMlEtGEXXHuIfLR0XGJ4QKsMsY/W7k1T9F3pWyxbkJJs+O03lGC0JYjzVHT2V+hR9g+h88l/gU5E
nA/EZCBy+MFPhhORwqIuqyeyinjHRPsszUQ2TcZxdpMeYHW2jrU9Q0sT2JmdLumEnsBTgFMD0uj2
H5xIYt26dy9bLCtDs7ooiBfaVwabR2yI4R09oFLtmsEBgm+svLCz+pO48wVQSwMEFAACAAgAYYAG
SeJ2xEqLAAAAmwAAADkAHABodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1wbGF5LXN0ZGVyci50eHRVVAkAA6VsplelbKZXdXgLAAEE9QEAAAQUAAAADcixDoIwEADQ3a+4
H8BcgSCyaVhMnJS4GIejPaBJackVYurXy/byclRVhnWGFaiqwaJBdcT6DO02Lw/2hqUT5ndZlFg2
+alApT5wG30Q60fQwa8SXGdn7ikyRF6hT6CdZb+LNW37Xl5PmhfH120YWFobF0fpTokFvhSBjGED
awCCmLyeJHj7Yzn8AVBLAwQUAAIACABigAZJbwfc56sAAAAHAwAAOwAcAGh0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXJlbW92ZS1zdGRlcnIudHh0VVQJAAOobKZXqGym
V3V4CwABBPUBAAAEFAAAAM3QvQ6CMBSG4d2rODeAOS3lJ2waFhMnJS7GoZQDNoGWtBBTr14uQF1h
+/JNT16OLI0wjzAFlhYYFyj2SZxDOQ/jhUxDrnJEdxELFAXPBOP8AafOWKdNB8qaydm+0gPV0hN4
mqAOoHpNZlmk5Ly8h9tVDmNPx7ltyZXaj70MZxnIwUt6kE1DDUwWJPhg1NNZo9/kdvwbTbBftBgZ
rksT262W/anGVqUluAXaB1BLAwQUAAIACABkgAZJRGvg+p8AAADRAQAARgAcAGh0dHAvdGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXNvdXJjZWJ1ZmZlci1tb2RlLXN0ZGVyci50
eHRVVAkAA6xsplesbKZXdXgLAAEE9QEAAAQUAAAAxc69CsIwFEDh3ae4L1DJT4mlm9JFcNLiIg5p
cquBNCk3LRKf3j6AdNTtcKZPMK4KVhVMAVc1kzWrtkpyaOZhPGOwSC0h3kpZsrIWO8k4u8PxESK5
8AATw0TRt27ATieEhBN0GYx3GJZCo+fl7q8XPYweD3PfIzUujV7nk85I8NIJtLVoYYqgIeVgnhSD
eyNtxFeaXKGJ/9KqFRr/Fe0DUEsDBBQAAgAIAFOABkk6TrWV7QAAAF8BAAAtABwAaHR0cC90ZXN0
cy9tZWRpYS9wZGYtc2VydmVkLWFzLXBkZi1zdGRlcnIudHh0VVQJAAOObKZXjmymV3V4CwABBPUB
AAAEFAAAAIWPu27DMAxF93wFp2y2bPcRR4BRBEmLDh0KI52CDIrF2AL0ikQVyN9XRpusJZd7cS4J
8lA/86rhD23ZPrVHeN/vP3u8JIwEZzXOdpeMf1NW6K/+Y2Nlj8YRbqQMGCMH8SugblZllbvOYzkL
KWiYiDxn7I54W1UVMyiVYN9KoitoCo5Ioyy0E7IcRvVihcEur3QpDBgZ5UtKL8/LW7Rbz7Wkq8dO
eK/VIEg5y3Jmcfj3mT+7DSgIX0NwYeuMQUsc0A4uWcKAEoQFnCGH05UQgrAjgkY70gRGRSNomKCA
OLmkJZzurAEVb3q1bh8XP1BLAwQUAAIACABUgAZJ7HJwxcAAAACSAQAALwAcAGh0dHAvdGVzdHMv
bWVkaWEvcmVsb2FkLWFmdGVyLWRpYWxvZy1zdGRlcnIudHh0VVQJAAOQbKZXkGymV3V4CwABBPUB
AAAEFAAAAKWQQWsCMRCFz+6vmKNeyu4aBIMIuh4U7LH0ID3MJmMMGyeSzFL675sWL9JT2+ODed/H
vM3oABbQLHTd6vkS6D03jXoK0WCAJCbRLSbx7E5qrlT7Bqsd9aNba8gkz5QzOjpG58rFtpQGDaUY
yFabv4MFk3SRz96NCcVHfvVy6eL1Fugr7ZFtoKShQ3MhCzUQY1+c0KMZiG3+j5zkJVM68DnuvBH9
g61hWk1mjwZV/8rA9j7c918o5GL6KFweQ5hVn1BLAwQUAAIACABUgAZJJa106UcBAAB0AgAALwAc
AGh0dHAvdGVzdHMvbWVkaWEvdGV4dC1zZXJ2ZWQtYXMtdGV4dC1zdGRlcnIudHh0VVQJAAOQbKZX
kGymV3V4CwABBPUBAAAEFAAAAM2QT08CMRDF73yKORk9sH9gBW1EQ1CjiSYENZoQDmU7dJt0p2s7
Vfn2liicPTq9zOt780s706gBRlCORDEQVQH4GcqyyqyrpQXPtcfOeTakl9WwqgYruLjGddSXAgKS
esQQpMZXw81MMmrntwKOKVp70pv+Q7IhwzvkU6IbR/e0cQLe5jOoHRHWnO5S5kNao3rLPT8bjU9X
cPf8PF/ge8TAsDF6J69j290akvZl8TAltcDWMU6V8okuQP40UA7GWZFOmcZSFqK30DB3Is8Pljgr
iiJvURmZfxiFrs+Nd8wWVd86qbJamyuSLU4S0kVfY8g5vSTjLz7aRyfnuzribYcTxi/OOysN/eEf
v3LmMW36xnvnZ65tkVgAUu0iMXpUIAlwZwpYbxnBS9IIFklzA60JreS6gT6ExkWrYH3wBmDCvq+q
Ytj7BlBLAwQUAAIACABWgAZJjupqiwgBAAB4AwAANgAcAGh0dHAvdGVzdHMvbWVkaWEvdHJhY2st
aW4tYmFuZC1obHMtbWV0YWRhdGEtc3RkZXJyLnR4dFVUCQADk2ymV5Nspld1eAsAAQT1AQAABBQA
AADNkU1LAzEQhs/2V8xRL2W/7CFKoW5FBVcKpXhYPGQ30zRsNlmSCcV/b7ZVKHisiseQd57nnaRO
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
V+TYXqRbhyKDFNrtQcGCIKIgHrKz6XToNCkz2Yr/3lnx5kFwL/aYkPfl5WXZeYA5VHM7nVlzDfSe
q8pcRnEYIalLdJSkgf2ruTJm9gY3a2o6v7CQidsN5YyenoPualTykj4sjLmLcTJa/pkcOGiPfCz0
IHzHW7Hw8lCDE2ZyWnpl5oQxtAO2nL9//bZ/L96XiVUR7S0UYaRBYMWktfA2+C5h7/YrHzkcI/XV
LXIbKVmo0e2ohSkQY1N2QoNuX1LNw656ypT6zNbBqf3BLv8ZXUz+5d9/I38CUEsDBBQAAgAIAFqA
BknT1ME7hwAAAMAAAAA9ABwAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1wbGF5LXN0YWxsLWJlZm9y
ZS1tZXRhLWRhdGEtc3RkZXJyLnR4dFVUCQADnGymV5xspld1eAsAAQT1AQAABBQAAACVzD0LwjAQ
gOG9v+JGXcTWUDSIUOriIAgOCuIQ02s8CHeSD8V/bxwdXV9eni47gBbqVs8brZaAr1jXaubFGg8h
2YAPCYnYXdRCqeYK6y3esttoiMjDHmM0Dk+U7r1J6CS8NUw4ez+tuh959YdMTOlLHotOwjseRcP5
0IMVZrSptPI8jaeh+gBQSwMEFAACAAgAWoAGSRL4hRq6AAAAkgEAACsAHABodHRwL3Rlc3RzL21l
ZGlhL3ZpZGVvLXF1ZXJ5LXVybC1zdGRlcnIudHh0VVQJAAOcbKZXnGymV3V4CwABBPUBAAAEFAAA
AKWQMYsCMRCF69tfMaU24q6rRTgE3S0UvFIsxGI2GWPYOJFkFrl/b5TrrtPywbzvY95qsAALKBdq
Wql5BXRPZVlPfNDoIYqOdAtRHNtjPavr6gTfLXWDXSpIJD+UElraBWvzxTqXegW56MkUq/fBglGa
wGdnh4jiAh+cXJpwvXl6pg2y8RQVNKgvZGAKxNhlJ3Soe2KTPpGT7BPFLZ9D67Sof2wFo+Jr/JGB
zd9wr79QyIb4m7k8eD8uHlBLAwQUAAIACABbgAZJKrMeBe0AAABYBQAAKgAcAGh0dHAvdGVzdHMv
bWVkaWEvdmlkZW8tcmVkaXJlY3Qtc3RkZXJyLnR4dFVUCQADnWymV51spld1eAsAAQT1AQAABBQA
AADtkkFLA0EMhc/2V+RoL9Ldrj0MItTtwUIFQURBPGRn0+nQMSkzWUv/vbPiSb3UvUmPMyTfe3nJ
vHMAMyhmZlKayxJon4qiughiMUBUG2knUT27l2paVeUrXC2o6dy1gUTc3lFK6OjJ66ZGJSfxYOCc
uxDGo/mfyZ699siHTPfCS16Lgef7Gqwwk9X8l2veMfj2m8r0KP/6ZX8lzuWKm9y0NZAbAw0CK0at
hdfedRF7t5/5yNsuUP+6RW4DRQM12g21MAFibLImNGi3OdU0bKrHRLHPbOGtmh/svJ/R2XiQwjF7
/+/k062ebvU38gdQSwMEFAACAAgAW4AGSdynvfzeAAAAUgIAACsAHABodHRwL3Rlc3RzL21lZGlh
L3ZpZGVvLXVzZXJhZ2VudC1zdGRlcnIudHh0VVQJAAOdbKZXnWymV3V4CwABBPUBAAAEFAAAAKWR
QUsDQQyFz/ZX5Ggv0m3XHgYR6vag0IIgUkE8ZGfT6dAxKTNZxX9vVnoTPLjHhLzvJS+rPgAsoVq6
2dxdL4A+S1XVV0k8JsjqM50ka+TwWi/qev4GN2tq+3DroBB3WyoFA+2iHhpUCpK/HFxyn9J0svo3
OXLUAflk9Cj8wHtx8PLYgBdm8mo9m/nAFLsRLoX0vP5GQrCJOxMdHZgw0SiwYtZGeB9Dn3HY9icf
eT8lGqp75C5RdtCgP1AHMyDG1jyhRX+0VMu4q54L5SGzdfTqfrHtP5OL6SiHv//+DVBLAwQKAAAA
AABSgAZJAAAAAAAAAAAAAAAAFQAcAGh0dHAvdGVzdHMvbWVzc2FnaW5nL1VUCQADi2ymVw9wpld1
eAsAAQT1AQAABBQAAABQSwMEFAACAAgAUoAGSRPcjWmEAAAAwAAAAEMAHABodHRwL3Rlc3RzL21l
c3NhZ2luZy9jcm9zcy1kb21haW4tbWVzc2FnZS1ldmVudC1kaXNwYXRjaC1zdGRlcnIudHh0VVQJ
AAOLbKZXi2ymV3V4CwABBPUBAAAEFAAAAJ3MPQoCMRBA4X5PMaU24roxRRBhWRsLQbBQEIuYnY0D
YUbyo3h74xVsH4+vLx5AQ6vNcmW6NeA7ta1aBHE2QMwu4lNiJvZX1Smlb7DZ4b34rYGEPB4wJevx
TPkx2Ixe4sfAjEsI86b/Wyam/CNPVSfhPU9i4HIcwAkzulxbfV420Nh8AVBLAwQKAAAAAACBgAZJ
AAAAAAAAAAAAAAAAEAAcAGh0dHAvdGVzdHMvbWlzYy9VVAkAA+FsplcPcKZXdXgLAAEE9QEAAAQU
AAAAUEsDBBQAAgAIAFuABklehPRp5gAAAGIBAAAtABwAaHR0cC90ZXN0cy9taXNjL2NvcHktcmVz
b2x2ZXMtdXJscy1zdGRlcnIudHh0VVQJAAOebKZXnmymV3V4CwABBPUBAAAEFAAAAHWNQUvDQBCF
7/0Vc5JEpJOKogwlINpcFJVE2vN2M0lXkkzYnQj+exMbUQoyp/fe9+Zt8vwlJ8iMa7gEFTDeHtwH
Qxj2noMM3jJU4uGg2hPi6vJmmYy3otskSbB1weIPF9BK25sQlu99vcCtNEM7mg9GDW52Be54/+gU
i294UvfiGRsxJXucd9FW+MS1sZ9jfnf0lrbvo+urJAaCoEadhZyrV/Xr+QfRaSWFfyMi69koR1a6
oLB7y4gK9a6r4ezit5Z50/LkHLEtW5U/g89SMpynExC0JKqGzqqTbr0XaSCa23EaL74AUEsDBBQA
AgAIAFyABklDy+IfxQAAAP4AAAA/ABwAaHR0cC90ZXN0cy9taXNjL2RlbGV0ZS1mcmFtZS1kdXJp
bmctcmVhZHlzdGF0ZWNoYW5nZS1zdGRlcnIudHh0VVQJAAOfbKZXn2ymV3V4CwABBPUBAAAEFAAA
AE2OT0vDQBTE7/0Uc1SwsknTbVzES2NPQYp/TkXKkrzWh8lueHmp6Kd3CwodmMPAMPPLTWbnppwb
i8w6k7vl8ja7W6Ga+uGZQkvyKkS7YlEU1uV2VS7Kd2wlDiT6jY5HBYeT77jFIcrZvVeHzBhcDZe1
EY0PISqaGNRzwNNbXV/Pdhevafk+CZtqvd3X3LNSi4ckbPj4lyseP9e++aDEcOKEt38h/edxeBRJ
FF/CyuGIOKW7cxkH7ugGKlNovBI04ockzn4BUEsDBBQAAgAIAFyABknW/5v6xQAAAP4AAABbABwA
aHR0cC90ZXN0cy9taXNjL2RlbGV0ZS1mcmFtZS1kdXJpbmctcmVhZHlzdGF0ZWNoYW5nZS13aXRo
LWdjLWFmdGVyLXZpZGVvLXJlbW92YWwtc3RkZXJyLnR4dFVUCQADn2ymV59spld1eAsAAQT1AQAA
BBQAAABNjk1Lw0AURff9FXepYGWSpmMcxE1jV0GKH6tSypC81ofJTHh5qeivdwqKXriLCwfuyU1m
56acG4vMOpO75fLaZLeopn54otCSvAjRtlgUhXW5vSkX5Q4biQOJfqLjUcHh5DtucYhybu/VITMG
F8N/bETjQ4iKJgb1HPD4WteXs+3fa252uEvBulpt9jX3rNTiPgVrPv7sisf3lW/eKDmcOOntn0l/
fRweRJLFh7ByOCJO6e4M48AdXUFlCo1XgkZ8kcTZN1BLAwQUAAIACACBgAZJFTU1knoAAAC8AAAA
KgAcAGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJyLnR4dFVUCQAD4WymV+Fs
pld1eAsAAQT1AQAABBQAAACNjkEOwyAMBO95hT9AIO2hFb8hxFUsGYyMkfr8EuUD1V5WO4fZLKUR
JyOpgKqiET7ECKdZi95vj9caZrb4DiH4Qj17xS5DM3b/7WxuT4ej0kTNDaV1bsBUEZ6AjAWrwU2X
SeJdIcKoaZ8aE2BJx3+6Kn3k87qXLDEvP1BLAwQKAAAAAABUgAZJAAAAAAAAAAAAAAAAGQAcAGh0
dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9VVAkAA49splcPcKZXdXgLAAEE9QEAAAQUAAAAUEsDBBQA
AgAIAFSABkndFH0PhAAAAMAAAAA4ABwAaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2V2ZW50LWxp
c3RlbmVyLWNyYXNoLXN0ZGVyci50eHRVVAkAA49splePbKZXdXgLAAEE9QEAAAQUAAAAncw9CgIx
EEDhfk8xpTbimrAsQYRlbSwEwUJBLGJ2jANhRvKjeHvjFWwfj28oHqCDtjPLlVE94Du1rV4EcTZA
zC7iU2Im9hettOqvsN7irfiNgYQ87TEl6/FE+THajF7ix8CMSwjzZvhbJqb8I49VJ+Ed38XA+TCC
E2Z0ubb6vGygqfkCUEsDBAoAAAAAAHKABkkAAAAAAAAAAAAAAAAUABwAaHR0cC90ZXN0cy9zZWN1
cml0eS9VVAkAA8hsplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAFaABkmDPx76twAAAJIB
AABVABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtcmVtb3RlLXZpZGVv
LWJsb2NrZWQtbm8tY3Jvc3NvcmlnaW4tc3RkZXJyLnR4dFVUCQADk2ymV5Nspld1eAsAAQT1AQAA
BBQAAAClkLEKAjEQRGvvK7bURjw9RIIIehYKWoqFWOwlawzGjSR7iH9vFDs7LQd23mNn3lqAMZRj
NRiqagh0T2VZ9X3Q6CGKjnQLURzbQzWqRpMjTJfUtHamIJFsKSW0tAnW5otFLl0U5KInU8x/BwtG
qQOfnG0jigu8d3Kuw/Xm6ZVWyMZTVFCjPpOBARBjk53QoL4Qm/SPnGSXKK75FJZOi/piK+gWnd5f
Bjaf4d5/oZAN8ZG53HrfK55QSwMEFAACAAgAVoAGSamoiFvaAAAArAIAAEgAHABodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NhbnZhcy1yZW1vdGUtcmVhZC1yZW1vdGUtdmlkZW8tbG9jYWxob3N0LXN0ZGVy
ci50eHRVVAkAA5NspleTbKZXdXgLAAEE9QEAAAQUAAAAzZFBSwNBDIXP9lfkaC/SdZcigwh1e1Cw
IBRREA/Z2XQ6dEzKTFbx3zcr3jwugseEvC8vL6shACyhWrrFpWtqoM9SVc1FEo8JsvpMR8kaObw2
dVNfvcH1mroh3DgoxP2GSsFAz1H3LSoFyV8OznlIaT5b/UNy5Kgjcmv0KHzPO3Hw8tiCF2byaj2b
+cAU+0n+9cf+g4RgE7cmOjgwYaJJYMWsrfAuhiHj6PY7H3k/JhqrO+Q+UXbQot9TDwsgxs52Qof+
YKmWaVc9FcpjZuvo1f1i239mZ3/59xNQSwMEFAACAAgAVoAGSXR5TfjiAAAArAIAAEcAHABodHRw
L3Rlc3RzL3NlY3VyaXR5L2NhbnZhcy1yZW1vdGUtcmVhZC1yZW1vdGUtdmlkZW8tcmVkaXJlY3Qt
c3RkZXJyLnR4dFVUCQADlGymV5Rspld1eAsAAQT1AQAABBQAAADNkUFLA0EMhc/2V+RoL9J1hyKD
FNrtQcGCIKIgHrKz6XTomCkz2Yr/3qx4UhBkLz0mJN97eVn2HmAO1dzOLq2pgd5LVZmLmBxGyOIy
HVKWwP7F1Ka+eoXrNbW9X1goxN2GSkFPT0F2DQr5lD8snHMf43SyPEFy4CAD8kHpIfEtb5OF5/sG
XGImJ9rTmSPG0P1QMf/yL9/275L3OrHSpb0FXYw0CiyYpUm8Db7POLj9yie9HSIN1Q1yFylbaNDt
qIMZEGOrmtCi22uqZdxVj4XykNk6OLG/2Pqfydl0lMLff/8EUEsDBAoAAAAAAGuABkkAAAAAAAAA
AAAAAAAqABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvVVQJAAO6
bKZXD3CmV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACABWgAZJaQ/1GNcAAAD4AQAASwAcAGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2F1ZGlvLXJlZGlyZWN0LWFsbG93
ZWQtc3RkZXJyLnR4dFVUCQADlGymV5Rspld1eAsAAQT1AQAABBQAAAClkEFLAzEQhc/ur5ijvUi3
xh6CFOr2oNCCIKIgHmaTaRoaZ0oyW/HfmxVv3tzjg/e+x3vrIQAsoV3a+cIaA/RZ2tZcJXGYIKvL
dJKskcObuTaLm3e43VA/hJWFQrqjUjDQVkKojrsaOlqowUS+Wf8frJi1E97HMGTUKPwS9dDJxynR
qO6RfaJsoUN3IA9zIMa+dkKP7kjsy5Ry0udC+YH3solO7R+2hcvmYjapgf3vcT+7UClI/qpcHlKa
Qo4cdUQ+VXr9adxg4fWxAyfM5MbvqueMKfrmG1BLAwQUAAIACABWgAZJpDVMluUAAABDAgAATAAc
AGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2F1ZGlvLXJlZGlyZWN0
LWFsbG93ZWQyLXN0ZGVyci50eHRVVAkAA5NspleTbKZXdXgLAAEE9QEAAAQUAAAApdDBSgMxEAbg
s/sUc9TL0m3XHoIIdXtQUBBEFMTDbDJNQ+OkJLOKb+9EvXmSPSZkvsn/byYPsIZubRZL06+APkrX
9W1MFiNksZmOKUtg/9Kv+uX5K1zc8C5dGojJe72GIpiltG3bbP5NbWmcvFqF5I5KQU+3P+qVDh0M
6GAkNweunxsS74KfMkpI/BRkP6S3Y6R6ukZ2kbKBAe2eHCyAGEfdCSPaA7Er81I9Fsq1r22wYv7Y
Bk6bk7NZG9j9FvedC4V8yp/q8hTjHDlwkEo+qK491QwGnu8HsImZbO1O37xjDK75AlBLAwQUAAIA
CABWgAZJjdQGAKcAAACKAQAAWAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L2Jsb2ItdXJsLWRvZXMtbm90LW1hdGNoLXNvdXJjZS1zZWxmLXN0ZGVyci50eHRVVAkA
A5RspleUbKZXdXgLAAEE9QEAAAQUAAAA3Y+xDoIwFEV3v6IjDlCogErioEQTByMJIzHkWV6wWil5
rSb8vRgH/Qa3c6dzbhWlWSiyOA5EGJ+YcngHO3SyLtEVZHokNzCr2g60xoYh0cqPxHyRMO+2U+0G
LB7PV5RuS2So3ndP0KoBh82Ueep3gWO8NA+SmIO8IM8N4QEbBV/yoyQVgYhDPqqdcUOPlhcaBiQ+
yj5Ur999gWRadciEWM4m1T+ceAFQSwMECgAAAAAAV4AGSQAAAAAAAAAAAAAAAEQAHABodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91cGdyYWRlLWluc2VjdXJlLXJlcXVl
c3RzL1VUCQADlmymVw9wpld1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAV4AGSeFk4QLtAAAAJgMA
AHkAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91cGdyYWRlLWlu
c2VjdXJlLXJlcXVlc3RzL3VwZ3JhZGUtaW5zZWN1cmUtYXVkaW8tdmlkZW8taW4tbWFpbi1mcmFt
ZS1zdGRlcnIudHh0VVQJAAOWbKZXlmymV3V4CwABBPUBAAAEFAAAAM1RO0/DMBDe+RU3wkASu8ZF
3qq0iIEBRWWqGFznWqzGdvCDgV/PtVSIoQKJoUJe7nzfS/pWTKqGKyErJifPcL9cPnb4WjBl2Njt
t7WNqDMuYgyxDc6hzwrQm1B8xog9aA+4PyooPqIJW2/f6fsl5xEipjH4hCCa5mL1syPhj+vc9h0a
tG/YHfmtHoa1NjtFiofDCX24PMSAa8alnF7BhuY9SNU149OqocfUrRCTmlihRIOpzuRWuVH8lo3W
eXHjnfV6eOoeZp4CupBx1vcklhTozwG+nIhGWChx+EsILsSZK+Hi5t9WcjLbeSr5AFBLAwQKAAAA
AABYgAZJAAAAAAAAAAAAAAAAPQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9VVAkAA5dsplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAFaABkk8WcqM5QAAAEMCAABTABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL2FsbG93LWF1ZGlvLXN0ZGVyci50eHRVVAkA
A5RspleUbKZXdXgLAAEE9QEAAAQUAAAApdDBSgMxEAbgs/sUc7SXpVtDwSCFuj0otCCIKIiH2WSa
hsZJSWYrvr2JevMke0zIfJP/X48OYAndUs8XWimgj9x1qg3RYIAkJtEpJvHsXtWVWly/wc097+NK
Q4jOlWvIgkly27bN+t/UhobRFSuT7ChndLT9UW/L0FFDGQxkp8D1c33kvXdjQvGRn70c+vh+ClRP
d8g2UNLQozmQhTkQ41B2woDmSGzztFRPmVLta+ON6D+2hsvmYjZpA9vf4r5zoZCL6bO4PIYwRfbs
pZKPRS891QwaXh56MJGZTO2uvDlj8Lb5AlBLAwQUAAIACABXgAZJJNzX8bwAAACSAQAAUwAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RP
TS9hbGxvdy12aWRlby1zdGRlcnIudHh0VVQJAAOWbKZXlmymV3V4CwABBPUBAAAEFAAAAKWQMWvD
MBCF5/hX3BgvIU6NISIEHGdIIRlLh9LhLJ1lEeUUpDMh/75q6datHh/c+z7utZMFaKBq1Hqj6gbo
kaqqXvmg0UMUHekeoji2H/VLvdl+wu5I/WT3ChLJhVJCS+dgbb445NJVQS56MkX7f7BglC7w4OwU
UVzgdydjF253T9/phGw8RQUd6pEMrIEY++yEHvWV2KQ5cpK3RPGVh3B0WtQftoJlsShnGdj8Dvfz
FwrZEJ+Zy5P3ZfEFUEsDBBQAAgAIAFiABkk+6Gj2gwAAAMAAAABrABwAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL2RlZmF1bHQtc3Jj
LW9iamVjdC1kYXRhLXVybC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAA5dspleXbKZXdXgLAAEE9QEA
AAQUAAAAncyxCsIwEIDhvU9xoy5iawgYRCh1cRAEBwVxiOk1HoSLJBfFtze+guvPz9cXD6Ch1WbZ
GaUB37lt1SJEZwMkcQmfMQmxv6qV6tY32OzwXvzWQEYeD5iz9XgmeQxW0Mf0MTDjEsK86f+WiUl+
5KnqFHnPUzRwOQ7gIjM6qa0+LxtobL5QSwMEFAACAAgAaYAGSR5qC8feAAAAUgIAAEsAHABodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS92aWRlby1yZWRpcmVjdC1hbGxv
d2VkLXN0ZGVyci50eHRVVAkAA7Zsple2bKZXdXgLAAEE9QEAAAQUAAAApZFBSwNBDIXP9lfkaC/S
tWuRQYS6PbRQQRBREA/Z2XQ6dJqUmazivzcr3gQP7jEh73vJy7IPAAuoFm42d9U10EepqvoiiccE
WX2mk2SNHF7reX159QY3K2r7cOugEHf3VAoGeo66b1ApSP50cM59StPJ8t/kyFEH5KPRo/CGd+Lg
5aEBL8zk1Xo2844pdiNcCunP+lsJwSbuTHRwYMJEo8CKWRvhXQx9xmHb73zkeEo0VGvkLlF20KDf
UwczIMbWPKFFf7BUy7irngrlIbNV9Op+se0/k7PpKIe///4FUEsDBBQAAgAIAGmABklcggGtuwAA
AJIBAABMABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdmlkZW8t
cmVkaXJlY3QtYWxsb3dlZDItc3RkZXJyLnR4dFVUCQADtWymV7Vspld1eAsAAQT1AQAABBQAAACl
kDGLAjEQhWv3V0ypjbjunkIQQdfiDu7Kw0IsZpPZGDZOJJnl8N+bEzs7LR/M+z7mbQYLsIByoWaV
KpdAf6ks66kPGj1E0ZEuIYpje6irev5xhNWO2sGuFSSSH0oJLX0Ha/PFNpd6BbnoyRSb18GCUZrA
nbNDRHGB905OTThfPP2nT2TjKSpoUJ/IwAyIsc1OaFH3xCa9Iyf5TRS/uAs7p0U9sRWMi9HkLQOb
x3D3v1DIhnjNXB68nxQ3UEsDBBQAAgAIAGmABklTIdNIJQEAALsCAABmABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdmlkZW8td2l0aC1odHRwLXVybC1hbGxvd2Vk
LWJ5LWNzcC1tZWRpYS1zcmMtc3Rhci1zdGRlcnIudHh0VVQJAAO2bKZXtmymV3V4CwABBPUBAAAE
FAAAAKWSTU/DMAyGz+xX+MgOTC0tG4vQpK07gATStAmBVO2Qpm4aLThTkvL163EnuHDgQH1LZD+v
/drLTgNMIZ2KJBPpNeBbSNN8Yp2SFnxUHo/OR0O6zLP88moPN2usOr0QEJDqBwxBanwysS1kRO38
h4Bz6qwdj5b/JhsysUfumG4c3VHjBDxvClCOCFXkP855ldbUo/KHP8mmPYMDiu1ytYMFBzS2C+2G
O2WdLVqUAXcYBZTJ+6yp0nmT5XI2T/aw4r4OkEArA5Cji0/0Djw2rNlRhHzAOAHjt0/3TmvOOGkJ
4EKL9RBwlD4WjhqjOy97W06LcC9Hi/3rVlJt0QsopGqx5umQZMWaUEl1YFPCsKkeA/p+OWuj2NLf
bD6E0dl4kMLfB/YFUEsDBBQAAgAIAGmABknKE4dMhAAAAMAAAABZABwAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvd29ya2VyLWJsb2ItaW5oZXJpdHMtY3NwLWJsb2Nr
cy1ldmFsLXN0ZGVyci50eHRVVAkAA7Zsple2bKZXdXgLAAEE9QEAAAQUAAAAncwxCgIxEEDRfk8x
pTZi3LhIEGFZGwtBsFAQi5gdYyDMSDJRvL3xCrafz+uLB+hAdWbeGrUCfGel9CyysxGSuIRPThLI
X3SrF8srrLd4K35jICONe8zZejwFeQxW0HP6GJhQiXHa9H/LgYL8yGPVA9OO7mzgfBjAMRE6qa0+
LxvD2HwBUEsDBBQAAgAIAGuABkljqqxsggAAAKgAAABAABwAaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADuWymV7lspld1
eAsAAQT1AQAABBQAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZzXK2wpsX
qQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP
2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIAGuABkljqqxsggAAAKgAAABS
ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0
ZWQtYnktc3R5bGUtc3JjLTItc3RkZXJyLnR4dFVUCQADumymV7pspld1eAsAAQT1AQAABBQAAAAt
jUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZzXK2wpsXqQRV0UR7YdDh3lIIy22d
48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP2AH4NGh6Q21cJ5LKnZY5
0o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIAFaABkndGaSOhAAAABoBAAA1ABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb3JzLXBvc3QtcmVkaXJlY3QtMzAxLXN0ZGVyci50eHRVVAkAA5RspleUbKZXdXgL
AAEE9QEAAAQUAAAAzcyxCsIwEIDhvU9xoy5ibCgSRCh1cRAEBwVxiOk1BsKdJBfFtze+hevPz9cX
D9CB6sxyZbQGfGel9CKysxGSuIRPThLIX3Wr2/UNNju8F781kJHGA+ZsPZ6DPAYr6Dl9DMyoxDhv
+j+UAwX5kaeqB6Y9TWzgchzAMRE6qa0+LxvD2HwBUEsDBBQAAgAIAGCABkmrePuhtQAAANwBAAA6
ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLWFsbG93ZWQtc3RkZXJy
LnR4dFVUCQADpGymV6Rspld1eAsAAQT1AQAABBQAAADlz7EKwkAMBuDdp8gkLagndJHbROsiUmi1
zndtKoVrUtI7xbe3FZ18BLf85PshSfM8yzVcyFiH4Bl8EAImaKkS7JC8cWCC5+XdVCF0EK2B2IMh
QBGWeKZKdqHDQe2NNyq9FuqK9th6VXCQCqe0Y0F14jq4kT3Q1qO0ZsB3ZRpWVd9HySaJQYNldvAp
af0VWvcoDUuX9UhbqkuUtnlGE1786nQ6Debj5nzQuvDS0g3m8Sz9q29fUEsDBBQAAgAIAGCABkne
/brprwAAAO4AAAAyABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLXN0
ZGVyci50eHRVVAkAA6RsplekbKZXdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQbeAl9hZl
lwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmUGi5krEPwDD4IARP01AoOSN44MMHz8mHaEAZI1kDs
wRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLinHYsqE7cBTexJ9puktbc8TOZj1U7jkm2yVLQYJkd
fEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N4qk5H7SuvPR0gziN3lBLAwQUAAIACABjgAZJyWU6
a7sAAACSAQAAPQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc291cmNlLWZyb20t
cmVtb3RlLXN0ZGVyci50eHRVVAkAA6pspleqbKZXdXgLAAEE9QEAAAQUAAAApZBBi8IwEIXP218x
R71IS0uRIAtue1DQo3iQPUyTMQazk5JMEf+9cdmbt/X4YN73MW89WYAWqlaVtSpboFuqqmbhg0YP
UXSkMURxbE9N3dTLb1j1NEz2U0Ei2VNKaGkXrM0XX7l0VZCLnkyx/j9YMEoX+OzsFFFc4KOTSxd+
Rk/PtEE2nqKCDvWFDJRAjEN2woD6SmzSO3KSQ6K45XPonRb1wlYwKz7mbxnY/A33+xcK2RDvmcuT
9/PiAVBLAwQUAAIACABjgAZJiRgWaIMAAADAAAAAOgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9j
YWwtdmlkZW8tc3JjLWZyb20tcmVtb3RlLXN0ZGVyci50eHRVVAkAA6pspleqbKZXdXgLAAEE9QEA
AAQUAAAAncw9CgIxEEDhfk8xpTayISFIEGFZGwtBsFAQi5gds4EwI/lRvL3xCraPxzdUD6BBaNNL
02vAdxZCrSI7GyEVl/DJqQTyVyWVXN9gs8N79VsDGWk6YM7W4zmUebQFPaePgQXVGJfd8LccKJQf
eWp6YNrTgw1cjiM4JkJXWmvPy8YwdV9QSwMECgAAAAAAWYAGSQAAAAAAAAAAAAAAACEAHABodHRw
L3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9VVAkAA5psplcPcKZXdXgLAAEE9QEAAAQUAAAA
UEsDBBQAAgAIAFmABklPSCkI7QAAAIkEAABOABwAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENv
bnRlbnQvaW5zZWN1cmUtYXVkaW8tdmlkZW8taW4tbWFpbi1mcmFtZS1zdGRlcnIudHh0VVQJAAOa
bKZXmmymV3V4CwABBPUBAAAEFAAAAO3SwUoDMRAG4LN9ijnqZenqWiSIULcHBQVBREF6mE2maWic
lGRW8e2dqDdPUsFLjwmZL5k/Mx89wAzamZkem9Mp0Ftp266JyWKELDbTNmUJ7J+7k647W8L5Na/S
hYGYvNdtKIJZStM0k/mvqQUNo1erkNxSKejp5ku91KKNAS2M5HaB6+P6xKvgx4wSEj8GWffpZRup
rq6QXaRsoEe7JgdqMw56JwxoN8Su7NbVQ6Fc81oEK+aHbeBwcnC0z+0fcmP3HdxnXyjkU35Xl8cY
9/JfyYGDVPJedZ2a+qMGnu56sImZbJ0kPfOKMbjJB1BLAwQUAAIACABZgAZJUcp7+YQAAADAAAAA
QgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWNzcy1pbi1pZnJh
bWUtc3RkZXJyLnR4dFVUCQADmmymV5pspld1eAsAAQT1AQAABBQAAACdzDEKAjEQQNF+TzGlNrLR
uEgQYVkbC0GwUBCLmB1jIMxIMlG8vfEKtp/P64sH6EB1pp2bZQv4zkrpWWRnIyRxCZ+cJJC/6IXW
qyust3grfmMgI417zNl6PAV5DFbQc/oYmFCJcdr0f8uBgvzIY9UD047ubOB8GMAxETqprT4vG8PY
fAFQSwMEFAACAAgAbIAGSd79uumvAAAA7gAAAD8AHABodHRwL3Rlc3RzL3NlY3VyaXR5L3N0b3Jh
Z2UtYmxvY2tpbmctbG9vc2VuZWQtd2Vic3FsLXN0ZGVyci50eHRVVAkAA7tsple7bKZXdXgLAAEE
9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmU
Gi5krEPwDD4IARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLi
nHYsqE7cBTexJ9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N
4qk5H7SuvPR0gziN3lBLAwQUAAIACABsgAZJ3v266a8AAADuAAAAQwAcAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvc3RvcmFnZS1ibG9ja2luZy1zdHJlbmd0aGVuZWQtd2Vic3FsLXN0ZGVyci50eHRVVAkA
A7xsple8bKZXdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0
W/Tv06hTt3m878HkZVmUGi5krEPwDD4IARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu
9sYblTeVatAee68qDtLinHYsqE7cBTexJ9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShG
pC11NUp/fSUzXvzrfH4N4qk5H7SuvPR0gziN3lBLAwQUAAIACABtgAZJ7xHUT+4AAACYBAAAOQAc
AGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWNhY2hpbmctc3RkZXJyLnR4
dFVUCQADvmymV75spld1eAsAAQT1AQAABBQAAADlkkFLAzEQhc/2V8zRXqTrrkGCCHV7UKggiFgQ
D7PJNA2Nk5LMKv57s+LJ3qyLB48Db77HzHvz3gEoqJSe1fr0DOgtV1VzEqLBAElMol1M4tk9NXVT
nz/DxYK63l1qyCS3lDM6WkbniuKqLG01lMVAdjL/OVgwSRt57V2fUHzkRy+bNr7sAg3TNbINlDS0
aDZkYQbE2BVP6NBsiW0+xJzkIVO64XVceCN6j63heHI0PciB7dfjPu9CIRfTe+FyH8J/I3v2MiDv
C71kO/xdw+quBROZyQx5F80rBv+9Umqsrqq/7KoavatqtNx/k/wBUEsDBBQAAgAIAG2ABkkELDXt
EgEAAOcBAAA/ABwAaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1wb3N0ZXItY3Jvc3Mtb3JpZ2lu
LWNyYXNoMi1zdGRlcnIudHh0VVQJAAO+bKZXvmymV3V4CwABBPUBAAAEFAAAAJ1Oy0oDQRC85yv6
mBzct3EziLAkSASFsEYUQg6T2d7N4GzPOo9I/t4JiV5F6UtVV3V1Vb4DmEI6ZUnOsingp03TIlJa
cAXGCYODNk5StynyIi+3cLvAne/uGFik5gmt5R2+Srefc4edNkcGY/JKTUbVv5MlSXeKfA7pUtMD
tZrB22oOQhOhcGEXPAeuZDPafOdH+fVsC8v1elXjh0froJXd0rnhQheyqVGgPGCNdtBkcc6V2nHx
zsCchQb2wR/YWYciKWCMxmgDV2k2y8sJtAGfTCyO0+wmSsKkrEySJLYovJHuGJMmtF7so34ofqsX
6ML3w70krl7qx4pCx147rJomtLAM+BnAz7NwFrzgjfpTjy9QSwMEFAACAAgAcoAGSWBLZhCRAAAA
+wEAAEUAHABodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWRvY3VtZW50LXNlY3Vy
aXR5T3JpZ2luLXN0ZGVyci50eHRVVAkAA8hsplfIbKZXdXgLAAEE9QEAAAQUAAAA7Y4xDoMwDEV3
TuELhASWVplh6NKeAQVTIpkksp0Kbl869AYdq7++r/dC3kqkSWNOgMyZPSyREFbV4q3t+kvrznX+
6pyzgqFy1MPuImYY77dxMLuQmXOoGyY1X+DB8RlTu28EFBNCD0j4IUD0IJQVUZvz6V/Icro95EQH
dK2DBSetjAITI0gtJbPi3IR/6I9D31BLAwQKAAAAAABagAZJAAAAAAAAAAAAAAAAEwAcAGh0dHAv
dGVzdHMvc3RvcmFnZS9VVAkAA5xsplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAFqABkne
/brprwAAAO4AAABFABwAaHR0cC90ZXN0cy9zdG9yYWdlL2NhbGxiYWNrcy1hcmUtY2FsbGVkLWlu
LWNvcnJlY3QtY29udGV4dC1zdGRlcnIudHh0VVQJAAOcbKZXnGymV3V4CwABBPUBAAAEFAAAAGXO
QQuCQBAF4Lu/Yk6iUG3gJfYWZZcIQUvPuzqFsM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+CAET
9NQKDkjeODDB8/Jh2hAGSNZA7MEQoAhLGqmaXRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfa
bpLW3PEzmY9VO45JtslS0GCZHXxHWv+E1iPKlWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4
jd5QSwMECgAAAAAAaoAGSQAAAAAAAAAAAAAAABoAHABodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L1VUCQADt2ymVw9wpld1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAaYAGSX5/7RexAAAAAQEAAEEA
HABodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtYXN5bmMt
c3RkZXJyLnR4dFVUCQADtmymV7Zspld1eAsAAQT1AQAABBQAAABljbEKwkAQRPt8xVaioB42ggdW
JoJYKImYQiwuySqHudtjs1H8ew0EVCxneDMvSdNdqmHj76a2FazIC3qZHJ4Bx2D7Nhg2DgUZ3rnF
aaSOVLcOGxUbMSrJM5VjsbWiMmq5xC6tiFGF2siF2CmP8iC+qb3hBqve0kmmZQjD2WI+Ag0FUQ39
VOvQoV/ksCTfCOSHtdaZsPVXGIwhxRLtHbkjYDCC00+x/NzFrXPPP/05egFQSwMEFAACAAgAaoAG
SX5/7RexAAAAAQEAAEAAHABodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250
ZW50LXR5cGUtc3luYy1zdGRlcnIudHh0VVQJAAO3bKZXt2ymV3V4CwABBPUBAAAEFAAAAGWNsQrC
QBBE+3zFVqKgHjaCB1YmglgoiZhCLC7JKoe522OzUfx7DQRULGd4My9J012qYePvprYVrMgLepkc
ngHHYPs2GDYOBRneucVppI5Utw4bFRsxKskzlWOxtaIyarnELq2IUYXayIXYKY/yIL6pveEGq97S
SaZlCMPZYj4CDQVRDf1U69ChX+SwJN8I5Ie11pmw9VcYjCHFEu0duSNgMILTT7H83MWtc88//Tl6
AVBLAwQKAAAAAABbgAZJAAAAAAAAAAAAAAAAIgAcAGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
d29ya2Vycy9VVAkAA55splcPcKZXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAFuABklnVd5XhgAA
AMAAAABVABwAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93b3JrZXJzL2FjY2Vzcy1jb250cm9s
LWJhc2ljLWdldC1mYWlsLW5vbi1zaW1wbGUtc3RkZXJyLnR4dFVUCQADnmymV55spld1eAsAAQT1
AQAABBQAAACVzLEKwjAQgOG9T3GjLmLb2CGIUOriIAgOCuIQ02sMhDtJLopvbxwdXX9+vj47gA7q
Ti8bvWoBX6mu1SKwNQGi2IgPjuLJXVSrVHOF9RZv2W00JKRxjykZhycv98EIOo5vDTPKIcyr/kdW
f8ievHzJY9E9044m1nA+DGCZCK2UVp6nCX6sPlBLAwQUAAIACAByfwZJWwRYDqIFAABNEAAACgAc
AGh0dHBkLmNvbmZVVAkAA9drpld0bqZXdXgLAAEE9QEAAAQUAAAArVdtb9s2EP6uX0G4MLAVk5y4
cecVQQDXcZYsSZ1ZTgMsSQ1aoiTWEqmRVGJ76377jpTlF8lRA2wOEInH57k7HY/Ho0vEExEjzhVq
tDIpGpZ1nSkyRwGNyYeWStLWHZleUmXdUP8MZADbCFuRUqnvpNRvWK7HBfnIsXgRJjViqhFgZUwT
wjOF3h0cWJeEpL2YPhE0ZNY1nq/HI/JnRqSS6HAbVVAPO+AsZW6KBXHNdwBQ83ckHctVWKgdwErv
HRczI+scaGmfM0Y8RTmTN0T0Ixr72jD8LOuKY/+a+xl8Gc4Up8wn80mSC2I6JXPitXCKvYi0WyCe
rEGO5NvkjNG5X0c0gBIJex6RcuLxJMWq1uo2sKwkUxGb6CX4jt8r1B768lX05cv0iEv1fbpGleiU
eXHm15peQUrEmIfgDgtoWMfdoEr0iGAfMqSOu4KUiFLGdSSYLhESSOo6hp4vx1TSWs/0fInihbSO
AdMlAiMhVxTrTVFH3IJpBW+2ly7BIUlwWrt2K0wl781mrM94AykTY4rraRpQIgnyLKiqXYQVpERM
o7RTsFa/MhnGGqWJVl6JPuGEoMP2z84B/B1a1vEpFVB8uFig1omldQxT82noQpcRItEZj2P+7C6S
K8pmEl1nsaKfKXmWaACm+r9eANJsAWnoPY0egiVBfaJHuVIByQrxgbmffMIWGygKBE/0jHXcWvty
Ylk9U1N0TTcuO5HKqwy4rIUS/YMaXx6cH+7Po8f7sXr8+/7Uf7x35eNE//uxcfKy3VN42ZjVEhdS
SAYL4+5xy+gHF24l6WPGGfVwbJyAY+IcigSD9yvOZ1kq0TAIdJUOr8gTidEzFsyyBkJwAbLdw4ho
qd7yjpqrhiGdcZFgOAGbEWrGqJmhpkIPjaZ4aKDmiUTNqR79NSIBEUR8oyDWY3BL2L2QMKVFDQRl
d0oZ8V+nsXlqGAlnO/iNFWSfoOZtA/LSCHZRxjbObTeQeSkyy6UhwyoTJkzW8UVQVJh13nsnENxC
flLGmErj5cvW8/0rzMIMDCAfI8efVcQsRg6LK2LCkENYVaxATCriQCAnEFWTkG9+FQ0L7JCqyUhn
5xrdj7CQYO7CHdrdbucXu4scKnn+WuFS8AuanLL4K3zzV7xPZfug3bZ/u4FpKiu0GXzOTLxIuxwZ
V+xZ9YsZhI1Vw8Y4iHlFnEIgUv7iF7dzM2k1VCl8bqr2iO2p0DPwqEzGaomcOKvIPYiRh6uLJGGR
qqGRT8iRT1UlgPZAv1dliAw5omp2GdnjO+TAQz2XI/CRhp2iFCOnGDlTeClD7y4+nQ7vXPuw3TkE
86l5KYP6N93379f6vBRGLwZdmzJh3/hcYC6HF117VKiZcdq1K0ly23dh3QpM5sn2PsTRNuKoghif
QbavESroWgayu8+3z+zVdte/IsA3gnI47BZ6J8PWh20OmmGf+mb/wX6BvQF5DpkJWQj5lOcOLJbO
E8gJWH9Y69Xa7JSblbfjRQondZrGUNa1E625DY06clS4XGMGzOM+ZSGa27qpFXDuIOePPbPhkqbI
CZe79HPM/BjOHehrbOkJqtMe3iHD41034MajbykJ7CepH2UF0lRWO9Xx9QtMFcR8G0ubStOa1dVY
0wxsauyeUJgrkw04cDZKXwecYvUaoC15JjxiFMt9meFTsZ0R627AdCIov9aYYOWvhX+VRYaJSRDj
0HTh5tiViLPdKRlxoSY8JWyiYAjTNWEr+q+Vc6N8OGAhHLv6tNsSwmXOR3CaDn6/HbjjyfVgfD48
/Ya+jEe9/mAbONLKnbfIRvdnjyXjn6lQGY51r4HefugeHb3LDe9t4cyEe7Xx5ri1xQd1b6w3qAdL
QmyZEo8G1DO3bLmQiiQoFVzlt08HkKveqiGk8P6PFmqrvdQNm/P2wXlwdP/kB3AJ/i8WtnrFfwFQ
SwMECgAAAAAAeIAGSQAAAAAAAAAAAAAAAAkAHABpbXBvcnRlZC9VVAkAA9RsplcPcKZXdXgLAAEE
9QEAAAQUAAAAUEsDBAoAAAAAAHiABkkAAAAAAAAAAAAAAAANABwAaW1wb3J0ZWQvdzNjL1VUCQAD
1GymVw9wpld1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAg4AGSQAAAAAAAAAAAAAAACAAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1VUCQAD5WymVw9wpld1eAsAAQT1AQAABBQAAABQ
SwMECgAAAAAAeIAGSQAAAAAAAAAAAAAAACYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL1VUCQAD1GymVw9wpld1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAeIAGSQAAAAAA
AAAAAAAAACoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9VVAkA
A9RsplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAHmABkkAAAAAAAAAAAAAAAAwABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvVVQJAAPVbKZXD3Cm
V3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACAB5gAZJyqWGojwBAACQBQAASwAcAGltcG9ydGVkL3cz
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
NqfZ0Vk2Pt4Rssk8G1/w7jmc6Uic2rH4ZBrHnsf3RyJDsqPFB42podMRbAJ6DtwzbC3Vvcw/VJ6c
DIfPNauoybsCFuiVbeIBtAEJNboIqqmg+48IPkUCr5hXDPK3MvD11u2PafD/c8faRuPjYshr9Le2
Z41db12P4UwHehdT90L7Xm3cPs0cr+/zsoSLrgAUxb+N/5b2pBZ0xWHwAFBLAwQUAAIACAB4gAZJ
6XMp8UoBAAC2BQAAVAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4td29ya2VyLWV4cGVjdGVkLnR4dFVUCQAD1GymV9Rspld1
eAsAAQT1AQAABBQAAADVkstOwzAQRff5itmEFbX7VEulCpU+2BSKiPoBxnGJRZyJ7KkKf49TUNrS
BWmABbJlWyP7zNW9nizvo+ViBnezKBrfzoawypxYKxBEyuQEhJCiiGH1uICEKHdDzlOUIk3Q0fCq
2+3wtSKZcJFrbpXDjZXKccKc0StdF1dJYzYKezdhu78jhJ1x2J77WXJ8pSD50o7ld0/za8nz50+i
h4S96YXETUajFqwtGr8Io2CrKSllHqkcDJrNA5VPwmnJDcaq4fzDBlr9rLPGFu2LsiwhkzKYohE6
c5eQWySUmDoQWQw5WnJgNo7ACM9jQTA500CvrNXus6Yfra/KKvlX2ldifKUA/Uv7godxFMG8oANj
pw586DpoBEVnOHz2neC6zPO+enWh1eOvwDwJ5shEq2JtlSSWv+2/Uk2ba3T6i2Rqyvj1MOvb8fP8
g3dQSwMEFAACAAgAeIAGSU+n0P2MCAAA8yAAAFgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLXdvcmtlci1wcmV0dHktZGlm
Zi5odG1sVVQJAAPUbKZX1GymV3V4CwABBPUBAAAEFAAAAO1aaW/bSBL97l/RsOExMDBJnY4OW4PE
sneAyRwYzfFx0SSbYsckW8tuWnJ2979v9UWRFClr4N0MFpg4sag+qut49aqayG0s0mRxdhsTHMJH
SgRGQYxzTsTdVSEiZ3IFw1y8JGRxNkto9nSNZs+UU0FC9M8zBH8E2QknJAHLsaAsm6GMZWSupnyW
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
K5xu5gFkpbjrI+Ut3Q5uqYhLA2r6Tya93qnIcOWLbxctWQpB4tdQCZhgkKgcQVuEJPg4SgsugBlB
nmtcDgkAsbYf3dAAmnodF2bRUVAcCTg7AT1fFBRvx8D/V8grFH61MNNm7R/mEh7D7f11zLyKl8EJ
UBl0Q+WL2vxf5s/hn8CfgMX+4J3bg59+E4t/lD7LzCklwoiU+Rd7/s/Zc/inQ+LNCPiLO9/KnaMT
gDI6nTvfpsz4BGXGX0qZmxOUuelW5qf3qxV6lEBDrnuYBBqiFcwhCUL0Fgw1PtRtBS4A6v86/AdQ
SwMECgAAAAAAgYAGSQAAAAAAAAAAAAAAACUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvVVQJAAPhbKZXD3CmV3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACBgAZJAAAAAAAA
AAAAAAAALwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
VVQJAAPhbKZXD3CmV3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACDgAZJAAAAAAAAAAAAAAAAQAAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC9VVAkAA+ZsplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAJWABkkAAAAAAAAA
AAAAAABPABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL1VUCQADCW2mVw9wpld1eAsAAQT1AQAABBQA
AABQSwMEFAACAAgAgYAGSQvxAM7kAAAATAUAAGcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZl
bnRfY2FucGxheS1zdGRlcnIudHh0VVQJAAPhbKZX4WymV3V4CwABBPUBAAAEFAAAAO3TwUoDMRAG
4LP7FHOsF9nF0EMQod0eFBQEEQXxMJtM09B0UpJZxbd3Vrx5ay8iPQZmvp8MM4sxAMyhm9vW2LYF
+qhdZy5SdpigiCu0z0Uih1dzaVrzBlcrGsZwbaGS3FOtGOguh6AVS23aWtDGRL5ZHA4LFukzr2MY
C0rM/Bxl0+fdPtH0ukH2iYqFHt2GPKjNOGgmDOi2xL4eE07yVKnc8jqvohP7y7Ywa87Oj0s4ze2g
BPY/g/v+FwqFXD7V5TGlk/zf5O5PyJGjTOSj6npD035beHnowWVmctNdac07puibL1BLAwQUAAIA
CACBgAZJ85eKyOkAAACkBAAAcgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9jYW5wbGF5
X25vYXV0b3BsYXktc3RkZXJyLnR4dFVUCQAD4mymV+Jspld1eAsAAQT1AQAABBQAAADtk8FKA0EM
QM/2K3K0F9mtQw+DCO32oGChIKIgHrKz6XTomCkzWcW/NyvePNU9CNJjQvKSeUMWvQeYQz23lbFV
DfRe6tpcxOQwQhaX6ZCyBPbP5tJU5gWuVtT2/tpCIe7WVAp6egyya1DIp/xh4Zz7GKeTxa/JgYMM
yHulh8S3vE0WnjYNuMRMTjSnNW8YQzdiSiH5Xv8uea8VS23aW9DGSKPAglmaxNvg+4zDtl9+0ush
0hDdIHeRsoUG3Y46qIAYW50JLbq9Wi3jXvVQKA/OVsGJ/cHW/5mcTU/e/sDbMfcy++fkY278E1BL
AwQUAAIACACCgAZJmYvsye0AAAAMBgAAbgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9j
YW5wbGF5dGhyb3VnaC1zdGRlcnIudHh0VVQJAAPjbKZX42ymV3V4CwABBPUBAAAEFAAAAO2UwUoD
MRBAz/Yr5mgvsmtDD0GEdntQUBBEFMTDbHaahsZJSWYV/95Z8eapruBljxlm3kxemKx6D7CEemkr
Y6tzoPdS1+YsJocRsrhMh5QlsH82C1OZF7jYUNv7SwuFuLulUtDTY5Bdg0I+5Q8Lp9zHOJ+tfk0O
HGRA3is9JL7mbbLwdNeAS8zkRGOa84YxdCO6FJLv8W+S95qx1qK9BS2MNAosmKVJvA2+zzhM++Un
vR4iDacr5C5SttCg21EHFRBjqz2hRbdXq2XcrR4K5cHZJjixP9j6PrOT+eTtH7wdsy+LiTyR/4B8
zF/6CVBLAwQUAAIACACCgAZJ+nFNgesAAAD+BAAAeQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9l
dmVudF9jYW5wbGF5dGhyb3VnaF9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAkAA+RsplfkbKZXdXgL
AAEE9QEAAAQUAAAA7ZPBSgMxEIbP9inmaC+yS0MPQYS6PSgoFEQsiIfZ7DQNjZOSzFZ8e2eLJz0t
PSjiMWHmmz9fmEXvAeZQz21lbDUDeit1bS5ichghi8u0T1kC+2czM5V5gcsltb2/slCIu3sqBT09
Bdk2KORTfrdwzn2M08niF5IDBxmQD0oPiW95kyysVw24xExO9E5rDhhD92WKGZVfPuPfJe+14lqb
dha0MdJJYMEsTeJN8H3GIe3RT3rdRxpON8hdpGyhQbelDiogxlZnQotup1bLaa96LJQHZ8vgxH5j
6/9Mzqb/3n7A25h9+evkMTv+AVBLAwQUAAIACACDgAZJ0EW/Qe8AAAAMBgAAagAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9ldmVudF9sb2FkZWRkYXRhLXN0ZGVyci50eHRVVAkAA+ZsplfmbKZXdXgL
AAEE9QEAAAQUAAAA7ZTBSgQxDIbP7lPk6F5kBuseigjr7EFBQRBREA+ZTrZbtqZLm1F8ezPiSU/j
CnsZ6KUl+fLnL8my9wALqBe2MnqA3ktdm5OYHEbI4jLtUpbA/tmcmsq8wPmK2t5fWCjE3S2Vgp4e
g2waFPIpf1g45j7G+Wz5Z3LgIAPyXukh8TWvk4WnuwZcYiYn+qYxbxhD96PK2Sj98i3/JnmvEZea
tLWgiZH2AgtmaRKvg+8zDmq//Emvu0jD7Qq5i5QtNOg21EEFxNhqTWjRbdXVsl9XD4Xy4NkqOLG/
2Po/s6P55NsBfBszLxN5Iv8Hecwu/QRQSwMEFAACAAgAhIAGSVuE04PrAAAApAQAAHUAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVkZGF0YV9ub2F1dG9wbGF5LXN0ZGVyci50eHRV
VAkAA+dsplfnbKZXdXgLAAEE9QEAAAQUAAAA7ZPBSgMxEIbP9inm2F5kF8MKQYS6PVRQEEQUxMNs
dpqGxpmSzCq+vVnxpKe1B0E8Jsx88+cLsxw8QAN1YytjqwboNde1OY7iMEJSl2gvSQP7R3NiKvME
ZyvqBn9uIRP315QzeroPum1RyUt6szDnIcbFbPljcuCgI/K20IPwJW/EwsNNC06YyWm5KzUvGEP/
ZcrppPz6Gf9KvC8VF6VpZ6E0RjoIrJi0Fd4EPyQc0374ked9pPG0Ru4jJQstui31UAExdmUmdOh2
xWo+7FV3mdLobBWc2m/s8j+zo8W/t1/wNmVf/jp5yo6/A1BLAwQUAAIACACEgAZJil0Y4esAAACk
BAAAbgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9sb2FkZWRtZXRhZGF0YS1zdGRlcnIu
dHh0VVQJAAPobKZX6GymV3V4CwABBPUBAAAEFAAAAO2TwUoDMRCGz/Yp5theZBdDlSBC3R4UFAQR
BfEwm52moemkJLOKb++seNLT2oNQPCbMfPPnC7PoPcAc6rmtjK1Ogd5KXZvjmBxGyOIy7VKWwP7Z
nJjKvMD5ktreX1goxN0tlYKeHoOsGxTyKb9bmHIf42yy+DU5cJABea/0kPiaV8nC010DLjGTE73T
mleMofs25WxUfvmKf5O814pLbdpY0MZIe4EFszSJV8H3GYe0n37SdhdpOF0hd5GyhQbdmjqogBhb
nQktuo1aLfu96qFQHpwtgxP7g63/Mzma/Xv7A29j9uXQyWN2/ANQSwMEFAACAAgAhYAGSZl3/evo
AAAApAQAAHkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVkbWV0YWRhdGFfbm9h
dXRvcGxheS1zdGRlcnIudHh0VVQJAAPpbKZX6WymV3V4CwABBPUBAAAEFAAAAO2TwUoDQQxAz/Yr
crQX2cWh4CBCuz1YqCCIKIiH7Gw6HTpmykxW8e/NijdPuogUekxIXjJvyLz3ADOoZ7YytroAeit1
bc5ichghi8u0T1kC+ydzbirzDJdLant/ZaEQdzdUCnp6CLJtUMin/G7hlPsYp5P5r8mBgwzIO6WH
xCveJAuPtw24xExONKc1rxhDN2JKIflaf52814qFNu0saGOkUWDBLE3iTfB9xmHbTz/pZR9piK6R
u0jZQoNuSx1UQIytzoQW3U6tlnGvui+UB2fL4MR+Y+v/TE6mR2//4O2v7uUQyT+58Q9QSwMEFAAC
AAgAhoAGSYThDyfoAAAApAQAAGkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZHN0
YXJ0LXN0ZGVyci50eHRVVAkAA+tsplfrbKZXdXgLAAEE9QEAAAQUAAAA7ZPBSgNBDEDP9itybC+y
S4ceBhHq9tBCBUFEQTxkZ9Pp0GmmzGQV/96sePOki4jgMSF5ybwhy94DLKBe2MrYugJ6KXVtzmNy
GCGLy3RKWQL7RzM3lXmCixW1vb+0UIi7ayoFPd0H2Tco5FN+tTDlPsbZZPltcuAgA/JW6SHxhnfJ
wsNNAy4xkxPNac0zxtCNmFJIPtbfJu+14kqbDha0MdIosGCWJvEu+D7jsO27n3Q8RRqiNXIXKVto
0O2pA2UztjoTWnQHtVrGvequUB6crYIT+4mt/zM5m/17+wVvP3Uvf5H8lRt/A1BLAwQUAAIACACG
gAZJqm4sKugAAACkBAAAdAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9sb2Fkc3RhcnRf
bm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAAPsbKZX7GymV3V4CwABBPUBAAAEFAAAAO2TwUoEMQxA
z+5X5OheZKplD0WEdfagoCCIKIiHTCfbLVvTpc0o/r0Z8eZJRy+Lx4TkJX0lyyEALMAsXGOdMUCv
1Rh7lLLHBEV8oV0uEjk82hPb2Cc4XVE3hDMHlbi/plox0H2UTYtCIZc3B4c8pDSfLX9MjhxlRN4q
PWa+5HV28HDTgs/M5EVzWvOCKfYTplSSz/Wvcghaca5NWwfamGgSWLBIm3kdw1Bw3PbDT37eJRqj
C+Q+UXHQot9QDw0QY6czoUO/Vat12qvuKpXR2Sp6cV/Y+j+zg/m/t1/xdvxn97Lv5O/c+DtQSwME
FAACAAgAh4AGSV+GelXvAAAADAYAAHwAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfb3Jk
ZXJfY2FucGxheV9jYW5wbGF5dGhyb3VnaC1zdGRlcnIudHh0VVQJAAPtbKZX7WymV3V4CwABBPUB
AAAEFAAAAO2UwUoDMRCGz/Yp5mgvsmtDD0GEuj0oKAgiCuJhNjtNQ+OkJLOKb++seNLTWsHLHhNm
vvnzhWTVe4Al1EtbGVufAr2VujYnMTmMkMVl2qcsgf2TWZjKPMPZmtren1soxN0NlYKeHoJsGxTy
Kb9bOOY+xvls9Wty4CAD8k7pIfEVb5KFx9sGXGImJ7qnNa8YQ/dtymJUfvmKf52814oLbdpZ0MZI
B4EFszSJN8H3GYe0n37Syz7SsLpE7iJlCw26LXVQATG2OhNadDu1Wg471X2hPDhbByf2B1vvZ3Y0
n7z9g7cx72UiT+S/II/5Sz8AUEsDBBQAAgAIAIiABkmsrBlo7gAAAAwGAAB1ABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21l
ZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVyX2NhbnBsYXlfcGxheWluZy1zdGRlcnIudHh0VVQJAAPv
bKZX72ymV3V4CwABBPUBAAAEFAAAAO2UwUoDMRBAz/Yr5mgvsouxhyBCuz1UUBBEFMTDbHaahqaT
kswq/r2z4s2TLmIPPWaYeTN5YTLvPcAM6pmtjK0N0Fupa3MWk8MIWVymfcoS2D+bc1OZF7hcUtv7
KwuFuLulUtDTY5BNg0I+5XcLp9zHOJ3Mf00OHGRA3is9JL7mdbLwdNeAS8zkRGOa84oxdCO6FJKv
8W+S95qx0KKtBS2MNAosmKVJvA6+zzhM++kn7faRhtMKuYuULTToNtRBBcTYak9o0W3Vahl3q4dC
eXC2DE7sN7a+z+RkevT2D97+al+O5EMkXxwE+Sd/6QdQSwMEFAACAAgAiIAGSRuYTH3tAAAAZgYA
AH8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfb3JkZXJfbG9hZGVkbWV0YWRhdGFfbG9h
ZGVkZGF0YS1zdGRlcnIudHh0VVQJAAPwbKZX8GymV3V4CwABBPUBAAAEFAAAAO2UwUoDMRCGz/Yp
5mgvsotxD0GEdntQUBBEFMTDbHaahsaZkswqvr1Z8eap7MEKPSbMfPnnC8li8AAN1I2tjK0vgD5y
XZuzKA4jJHWJdpI0sH8x56Yyr3C5om7wVxYycX9HOaOnp6CbFpW8pE8LpzzEOJ8tDpAcOOiIfCj0
IHzDa7HwfN+CE2ZyWvZKzTvG0E/Krz/xb8X7UrEsTVsLpTHSJLBi0lZ4HfyQcEz77UfedpHG1TVy
HylZaNFtqIcKiLErZ0KHblus5mlTPWZKo7NVcGp/scv9zE7mR29/4O3/vcT9yM2RfHDkff7SL1BL
AwQUAAIACACJgAZJTV3ViO8AAAAMBgAAeAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9v
cmRlcl9sb2Fkc3RhcnRfcHJvZ3Jlc3Mtc3RkZXJyLnR4dFVUCQAD8WymV/Fspld1eAsAAQT1AQAA
BBQAAADtlMFKAzEQhs/2KebYXmSXhhWCCO32UEGhIKIgHmaz0zQ0TkoyW/HtzYonPa0Vetljwsw3
f76QLDoLUEFZ6ULpsgJ6T2WpLn0w6CGKiXQIURzbFzVXhXqF6xU1nb3RkIjbe0oJLT052dUoZEP8
0DDlzvvZZPFnsmMnPfIh013gW94GDc+bGkxgJiN5L9cc0bv2x5SrQfnlO/5dsDZXLHPTXkNu9HQS
WDBKHXjrbBexT/vlJ7wdPPWrNXLrKWqo0eyohQKIsckzoUGzz1bTaad6TBR7ZytnRP9i5/uZXMxG
b2fwNuS9jOSR/B/kIX/pJ1BLAwQUAAIACACJgAZJU5mt8u8AAAAMBgAAZQAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy9ldmVudF9wYXVzZS1zdGRlcnIudHh0VVQJAAPybKZX8mymV3V4CwABBPUBAAAE
FAAAAO2UwUoDMRCGz/Yp5mgvsouhShChbg8KCoKIgniYzU7T0DhTklnFtzcrnvS0VvCyx4SZb/58
IVn2HmAB9cJWxtYnQG+5rs1RFIcRkrpEO0ka2D+ZY1OZZzhbUdv7cwuZuLuhnNHTQ9BNg0pe0ruF
Q+5jnM+WvyYHDjog7wo9CF/xWiw83jbghJmclr1S84oxdN+mnI7Kr1/xr8X7UnFRmrYWSmOkvcCK
SRvhdfB9wiHtpx952UUaVpfIXaRkoUG3oQ4qIMa2zIQW3bZYzfud6j5TGpytglP7g13uZ3Ywn7z9
g7cx72UiT+S/II/5Sz8AUEsDBBQAAgAIAIqABkmrX0Qz6AAAAKQEAABwABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL2V2ZW50X3BhdXNlX25vYXV0b3BsYXktc3RkZXJyLnR4dFVUCQAD82ymV/Nspld1
eAsAAQT1AQAABBQAAADtk8FKA0EMQM/2K3K0F9nFoeAgQrs9WKggiCiIh+xsOh06JmUmq/j3zoo3
T7qIFHpMSF4yb8i89wAzqGe2Mra+AHrLdW3OojiMkNQl2kvSwP7JnJvKPMPlktreX1nIxN0N5Yye
HoJuG1Tykt4tnHIf43Qy/zU5cNABeVfoQXjFG7HweNuAE2ZyWnKl5hVj6EZMyaRf66/F+1KxKE07
C6Ux0iiwYtJGeBN8n3DY9tOPvOwjDdE1chcpWWjQbamDCoixLTOhRbcrVvO4V91nSoOzZXBqv7HL
/0xOpkdv/+Dtr+7lEMk/ufEPUEsDBBQAAgAIAIuABklU7LAV6QAAAAwGAABkABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21l
ZGlhLWVsZW1lbnRzL2V2ZW50X3BsYXktc3RkZXJyLnR4dFVUCQAD9WymV/Vspld1eAsAAQT1AQAA
BBQAAADtlMFKAzEQQM/2K+ZoL7KroYcgQrs9VFAQRBTEw2x2moamk5LMKv69s+LNm6t42WOGmTeT
FybL3gMsoF7YytjzCuit1LU5i8lhhCwu0zFlCeyfzYWpzAtcrqnt/ZWFQtzdUino6THIrkEhn/K7
hVPuY5zPlj8mBw4yIO+VHhJf8zZZeLprwCVmcqIxzXnFGLoRXQrJ1/g3yXvNWGnR3oIWRhoFFszS
JN4G32ccpv30kw7HSMNpg9xFyhYadDvqQNmMrfaEFt1erZZxt3oolAdn6+DEfmPr+8xO5pO3f/D2
V/sykSfyb/ylH1BLAwQUAAIACACLgAZJ9BMrP+kAAAD+BAAAbwAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9ldmVudF9wbGF5X25vYXV0b3BsYXktc3RkZXJyLnR4dFVUCQAD9mymV/Zspld1eAsAAQT1
AQAABBQAAADtk8FKAzEQhs/2KeZoL7JbQw9BhHZ7sKAgiCiIh9nsNA1NJyWZVXx7Z8WbJ9mDe/CY
MPPlny/MqvcAS6iXtjJ2UQO9l7o2FzE5jJDFZTqlLIH9i7k0lXmFqw21vb+2UIi7OyoFPT0F2Tco
5FP+sHDOfYzz2WqC5MBBBuSD0kPiLe+Shef7BlxiJid6pzVvGEM3Kr98x79N3mvFWpsOFrQx0iiw
YJYm8S74PuOQ9stPOp4iDacb5C5SttCg21MHFRBjq29Ci+6gVsu4qR4L5cHZJjixP9j6P7Oz+b+3
P/A2jU1cTIL8mx3/BFBLAwQUAAIACACMgAZJ4OU/Y+0AAAAMBgAAZwAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy9ldmVudF9wbGF5aW5nLXN0ZGVyci50eHRVVAkAA/dsplf3bKZXdXgLAAEE9QEAAAQU
AAAA7ZTBSgMxEEDP9ivmaC+y24Yeggh1e1BQEEQUxMNsdpqGxpmSzCr+vVnx5km33vaYYebN5IXJ
uvcAK6hXtjJ2sQB6z3VtzqI4jJDUJTpI0sD+2SxNZV7gfENt7y8sZOLulnJGT49Bdw0qeUkfFk65
j3E+W/+ZHDjogLwv9CB8zVux8HTXgBNmclpiJecNY+hGdMmk3+PfiPcl47IU7S2UwkijwIpJG+Ft
8H3CYdovP/J6iDScrpC7SMlCg25HHVRAjG3pCS26fbGax93qIVManG2CU/uDXd5ndjKfvB3F2/Lf
9mUiT+RjkH/zl34CUEsDBBQAAgAIAIyABknErOHx7gAAAAwGAAByABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL2V2ZW50X3BsYXlpbmdfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAAP4bKZX+GymV3V4
CwABBPUBAAAEFAAAAO2UwUoDMRCGz/Yp5mgvsmtDD0GEuj0oKAgiCuJhNjtNQ+OkJLOKb++seNLT
WsHLHhNmvvnzhWTVe4Al1EtbGXu6AHordW1OYnIYIYvLtE9ZAvsnszCVeYazNbW9P7dQiLsbKgU9
PQTZNijkU363cMx9jPPZ6tfkwEEG5J3SQ+Ir3iQLj7cNuMRMTnRPa14xhu7bFDMqv3zFv07ea8WF
Nu0saGOkg8CCWZrEm+D7jEPaTz/pZR9pWF0id5GyhQbdljqogBhbnQktup1aLYed6r5QHpytgxP7
g633MzuaT97+wduY9zKRJ/JfkMf8pR9QSwMEFAACAAgAjYAGSbmptdXvAAAADAYAAGgAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcHJvZ3Jlc3Mtc3RkZXJyLnR4dFVUCQAD+WymV/lspld1
eAsAAQT1AQAABBQAAADtlLFKBDEQhmvvKab0GtnVeEUQ4dwrFBQEEQWxmM3O5cLFyZHMKr69s2Kl
1XqCzZYJM9/8+UKy7D3AAuqFrYw9NkBvpa7NUUwOI2RxmXYpS2D/ZE5MZZ7hbEVt788tFOLuhkpB
Tw9BNg0K+ZTfLRxyH+N8tvw1OXCQAXmn9JD4itfJwuNtAy4xkxPd05pXjKH7NuV0VH75in+dvNeK
C23aWtDGSHuBBbM0idfB9xmHtJ9+0ssu0rC6RO4iZQsNug11UAExtjoTWnRbtVr2O9V9oTw4WwUn
9gdb72d2MJ+8/YO3Me9lIk/kvyCP+Us/AFBLAwQUAAIACACNgAZJ4eBfm+gAAACkBAAAcwAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wcm9ncmVzc19ub2F1dG9wbGF5LXN0ZGVyci50eHRV
VAkAA/psplf6bKZXdXgLAAEE9QEAAAQUAAAA7ZPBSgQxDEDP7lfk6F5kRsscigjr7GEFBUFEQTxk
Otlu2W66tBnFvzcj3jzpILLgMSF5SV/JYvAADdSNrYw9bYBeS12bk5gcRsjiMu1TlsD+yZyZyjzD
+ZK6wV9YKMT9DZWCnh6CbFoU8im/WTjmIcb5bPFjcuAgI/JO6SHxFa+ThcfbFlxiJiea05oXjKGf
MKWQfK5/nbzXiktt2lrQxkiTwIJZ2sTr4IeM47YfftJuH2mMVsh9pGyhRbehHiogxk5nQoduq1bL
tFfdF8qjs2VwYr+w9X9mR/N/b3/g7bfu5RDJ37nxd1BLAwQUAAIACACOgAZJdlwpTO4AAAAMBgAA
agAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF90aW1ldXBkYXRlLXN0ZGVyci50eHRVVAkA
A/xsplf8bKZXdXgLAAEE9QEAAAQUAAAA7ZTBSgMxEEDP9ivmaC+yq6FKEKFuDwoKgoiC9DCbnaah
cVKSWcW/d1a8ebKLCNJjhpk3kxcm894DzKCe2crY41Ogt1LX5igmhxGyuEzblCWwfzYnpjJLOF9Q
2/sLC4W4u6VS0NNjkHWDQj7ldwuH3Mc4ncx3JgcOMiDvlR4SX/MqWXi6a8AlZnKiMc15xRi6EV0K
ydf4N8l7zbjUoo0FLYw0CiyYpUm8Cr7POEz76Se9bCMNpyvkLlK20KBbUwcVEGOrPaFFt1GrZdyt
HgrlwdkiOLHf2Po+k4Pp3tsfePutffn/5LM9eUfyT/7SD1BLAwQUAAIACACPgAZJDLjGbe0AAAAM
BgAAdQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF90aW1ldXBkYXRlX25vYXV0b3BsYXkt
c3RkZXJyLnR4dFVUCQAD/WymV/1spld1eAsAAQT1AQAABBQAAADtlMFKBDEMQM/uV+ToXmRGy6JF
hHX2oKAgiCiIh0wn2y1b06XNKP69GfHmSWe9zbEheUlfSZe9B1hAvbCVscenQO+lrs1RTA4jZHGZ
dilLYP9sTkxlXuB8RW3vLywU4u6WSkFPj0E2DQr5lD8sHHIf43y2/DM5cJABea/0kPia18nC010D
LjGTE41pzhvG0I3oUki+x79J3mvGpRZtLWhhpFFgwSxN4nXwfcZh2i8/6XUXaThdIXeRsoUG3YY6
qIAYW+0JLbqtWi3jbvVQKA/OVsGJ/cHW95kdzCdve/F29m/7MpEn8j7Iv/lLPwFQSwMEFAACAAgA
j4AGScjHCGmDAAAAwAAAAGwAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfdm9sdW1lY2hh
bmdlLXN0ZGVyci50eHRVVAkAA/5splf+bKZXdXgLAAEE9QEAAAQUAAAAncyxCsIwEIDhvU9xoy7S
aCgYRCh1cRAEBwVxiOk1HoSLJBfFtze+guvPz9cXD9CB6kyrzXIN+M5K6UWIzgZI4hI+YxJif9Ur
3eobbHZ4L35rICOPB8zZejyTPAYr6GP6GJhxCWHe9H/LxCQ/8lR1irznKRq4HAdwkRmd1Faflw00
Nl9QSwMECgAAAAAAgYAGSQAAAAAAAAAAAAAAAFoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvaW50
ZXJmYWNlcy9VVAkAA+FsplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAIGABkkAAAAAAAAA
AAAAAABkABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2ludGVyZmFjZXMvVGV4dFRyYWNrL1VUCQAD
4mymVw9wpld1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAgYAGSaSNbVm7AAAAkgEAAHkAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvbWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9UZXh0VHJhY2svYWN0aXZlQ3Vlcy1zdGRlcnIu
dHh0VVQJAAPhbKZX4WymV3V4CwABBPUBAAAEFAAAAKWQMWvDMBCF5/pX3BgvxSbCgygF1x4SaMfQ
oXQ4SxdFWD0Z6Uzpv49asmWrxwf3vo97/eoAOmg73SjdtEDfuW3VY4gGAyQxiZaYxLP7UHuluk94
Gmla3bOGTPJGOaOj1+hcuXgppVlDKQayVf9/sGCSIfLZuzWh+MjvXi5D/FoC/aYDsg2UNAxoLmSh
AWKcihMmNDOxzVvkJKdM6cjnOHoj+o6tYVc91JsMbG/D/f2FQi6mn8LlNYS6ugJQSwMEFAACAAgA
gYAGSdzxgI+DAAAAwAAAAHUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9UZXh0
VHJhY2svYWRkQ3VlLXN0ZGVyci50eHRVVAkAA+JsplfibKZXdXgLAAEE9QEAAAQUAAAAncwxCgIx
EEDRfk8xpTaywZAiiLCsjYUgWCiIRcyO2UCYkWSieHvjFWw/nzfUAGBAGdtr2yvAd1FKrxJ7lyCL
z/jkLJHCVa+1NjfY7PBew9ZCQZoOWIoLeI4yj04wcP5YWFBNadkNf8uRovzIU9Mj054ebOFyHMEz
EXpprT0vl+LUfQFQSwMEFAACAAgAkIAGSYAVg/PeAAAA5AMAAHcAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvbmV0d29ya1N0YXRlX2R1cmluZ19sb2Fkc3RhcnQtc3RkZXJyLnR4dFVUCQAD/2ymV/9s
pld1eAsAAQT1AQAABBQAAADtkTFLA0EQhWvvV0xpGrkjS4pFhHgpFAwERBTEYm53slmyzoTduYj/
3j2xs0tKLQfe+x7z3nIMAAvoFrY1dt4BfZSuM1dJHCbI6jIdJGvk8GrmpjVvcL2iYQw3FgrpmkrB
QA8SQlXcVtPeQjUm8s3ydLBi1l54G8OYUaPwc9RdL++HRNN1h+wTZQs9uh15aIEYh5oJA7o9sS/n
hJM+Fcr3vJVVdGp/sS1cNhez8xL+ezspgf1Pcd9/oVKQ/Fm5PKb018iRo07Ix0qv2069W3jZ9OCE
mdy0d9UcMUXffAFQSwMEFAACAAgAkIAGSZNxWkGDAAAAwAAAAG4AHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvbmV0d29ya1N0YXRlX2luaXRpYWwtc3RkZXJyLnR4dFVUCQAD/2ymV/9spld1eAsAAQT1
AQAABBQAAACdzLEKwjAQgOG9T3GjLtLQ0CGIUOriIAgOCuIQ0zMehDtJLopvb30F15+fb6gRoAfT
u9a6zgC+izF2lST4BFlDxqdkJY4X29nWXmG9xVuNGwcFedpjKT7iifQxesUo+eNgwTWlZTP8LROT
/sjjrJPwju/i4HwYIQgzBp3b/Lx8oqn5AlBLAwQUAAIACACQgAZJV4HFEeMAAABMBQAAcgAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC9tZWRpYS1lbGVtZW50cy9wYXVzZWRfZmFsc2VfZHVyaW5nX3BsYXktc3RkZXJyLnR4dFVU
CQADAG2mVwBtpld1eAsAAQT1AQAABBQAAADtkzFLA0EQhWvvV0ypjdyZJcUiQrwUCgqCiIJYzO1O
NkvWmbA7p/jv3RM7uwS7Kwfe+x7zmFmNAWAJ3dK2xi4ugD5L15nzJA4TZHWZ9pI1cng1C9OaN7hc
0zCGKwuF9J5KwUB3EkJVXFfTzkI1JvLN6nCwYtZeeBPDmFGj8HPUbS/v+0TTdIPsE2ULPboteWiB
GIeaCQO6HbEvx4STPhXKt7yRdXRq/7AtnDYnZ8clzL0dlMD+t7ifvVApSP6qXB5Tmskz+T/IkaNO
yMdKrz803beFl4cenDCTm/6qaj4wRd98A1BLAwQUAAIACACRgAZJNrChLuQAAAD+BAAAcgAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC9tZWRpYS1lbGVtZW50cy9wYXVzZWRfdHJ1ZV9kdXJpbmdfcGF1c2Utc3RkZXJyLnR4dFVU
CQADAm2mVwJtpld1eAsAAQT1AQAABBQAAADtkzFrAzEMhefmV2hMl3LHmQymFJLLkEIChVJaKB10
PsUxcaVg61r67+sr3drtlgwZZaRPz++h5eABFlAvbGVs0wB95ro2N1EcRkjqEp0kaWD/ahpTmTe4
XVM3+DsLmbjfUc7o6TnooUUlL+nLwpyHGK9nyzMkBw46Ih8LPQjf814svDy04ISZnJa30vOBMfST
9Ouv/K14XzpWZehooQxGmgRWTNoK74MfEo5qf/yR91Oksdog95GShRbdgXqogBi7shM6dMfiap72
q6dMafRsHZzaP+ySz+zqPHO/JHK58f9u/BtQSwMECgAAAAAAgoAGSQAAAAAAAAAAAAAAAGoAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UvVVQJAAPkbKZX
D3CmV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACACCgAZJZhBYJ7oAAACSAQAAkQAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9wYXVzZS1tb3ZlLXRvLW90
aGVyLWRvY3VtZW50LXN0ZGVyci50eHRVVAkAA+NsplfjbKZXdXgLAAEE9QEAAAQUAAAApZAxiwIx
EIVr91dMqY3s6iIYRNDdQsErxeK4YjYZY9g4kWQWuX9vFLvrzvLBvO9j3mawAAuoFqqsVTkHuqeq
qqc+aPQQRUe6hSiO7Xc9r2fLH1i11A12rSCRfFFKaOkQrM0X21zqFeSiJ1Ns/g8WjNIEPjs7RBQX
+OTk0oTrzdMz7ZCNp6igQX0hAyUQY5ed0KHuiU36RE5yTBT3fA6t06L+sBWMi9HkIwOb93Cvv1DI
hvibuTx4PykeUEsDBBQAAgAIAIKABkkmfv4u2gAAAKwCAACPABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNlL3BhdXNlLW1vdmUtd2l0aGluLWRvY3VtZW50
LXN0ZGVyci50eHRVVAkAA+NsplfjbKZXdXgLAAEE9QEAAAQUAAAAzZFBSwNBDIXP9lfkaC+ya5eC
gwh1e1CwIBRREA/Z2XQ6dEzKTFbx3zcr3jwugseEvC8vL6shACyhXrqqcdUC6LPUdXORxGOCrD7T
UbJGDq/Norm8eoPrNXVDuHFQiPsNlYKBnqPuW1QKkr8cnPOQ0ny2+ofkyFFH5NboUfied+Lg5bEF
L8zk1Xo284Ep9pP864/9BwnBJm5NdHBgwkSTwIpZW+FdDEPG0e13PvJ+TDRWd8h9ouygRb+nHiog
xs52Qof+YKmWaVc9FcpjZuvo1f1i239mZ3/59xNQSwMEFAACAAgAgoAGSXLTZnvkAAAABgMAAI8A
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UvcGF1c2Ut
cmVtb3ZlLWZyb20tZG9jdW1lbnQtc3RkZXJyLnR4dFVUCQAD5GymV+Rspld1eAsAAQT1AQAABBQA
AADNkUFLA0EMhc/2V+RoL2XXDgUHEer2oKAgFFEQD9nZdDp0TMpMVvHfd7Z40lNZDx4Tku+9vCx7
D7CAemErY6s50GeuazOL4jBCUpdoL0kD+1czNxeXb3C1orb31xYycfdAOaOn56DbBpW8pC8L59zH
OJ0s/yE5cNABuS70IHzHG7Hw8tiAE2ZyWnpl5gNj6H6omJP867f9e/G+TNyUpZ2FshhpFFgxaSO8
Cb5POLg95iPv+0hDdYvcRUoWGnRb6qACYmyLJrTodiXVPO6qp0xpyGwVnNpf7PKfydl0lMIpf/9L
8gFQSwMEFAACAAgAgoAGSXvEuByEAAAAwAAAAIEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxh
eWluZy10aGUtbWVkaWEtcmVzb3VyY2UvcGxheWJhY2tSYXRlLXN0ZGVyci50eHRVVAkAA+Rsplfk
bKZXdXgLAAEE9QEAAAQUAAAAncwxCgIxEIXhfk8xpTbialgwiLCsjYUgWCiIRcyOcSDMSDJRvL3x
CsKrfh5fXwJAB21n56YO8J3b1syieBchqU/4lKTE4WKWZrG6wnqLtxI2FjLyuMecXcAT6WNwikHS
x8KES4zTpv9bJib9kceqk/CO72LhfBjACzN6ra1+Xi7S2HwBUEsDBBQAAgAIAJGABkmb877xgwAA
AMAAAAB4ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3ByZWxvYWRfcmVmbGVjdHNfbm9uZV9hdXRv
cGxheS1zdGRlcnIudHh0VVQJAAMCbaZXAm2mV3V4CwABBPUBAAAEFAAAAJ3MsQrCMBCA4b1PcaMu
0tKjQxCh1MVBEBwUxCGmZwyEO0kuim9vfAXXn59vLB5ggG4wLZoegd6563AVxdkISV2ipyQN7C/Y
Y4tXWG/pVvzGQCae95Sz9XQK+piskpf0MbDgEuOyGf+WAwf9kceqB+Ed38XA+TCBE2ZyWlt9XjaG
ufkCUEsDBBQAAgAIAJKABkmqWZBB4wAAAEwFAABzABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3Jl
YWR5U3RhdGVfZHVyaW5nX2NhbnBsYXktc3RkZXJyLnR4dFVUCQADA22mVwNtpld1eAsAAQT1AQAA
BBQAAADtkzFLA0EQhWvvV0ypjdyRNcUiQrwUCgqCiIJYzO1ONkvWmbA7p/jv3RM7uwS7Kwfe+x7z
mFmNAWAJ3dK2xi4ugD5L15nzJA4TZHWZ9pI1cng1C9OaN7hc0zCGKwuF9J5KwUB3EkJVXFfTzkI1
JvLN6nCwYtZeeBPDmFGj8HPUbS/v+0TTdIPsE2ULPboteWiBGIeaCQO6HbEvx4STPhXKt7yRdXRq
/7AtnDYnZ8clzL0dlMD+t7ifvVApSP6qXB5Tmskz+T/IkaNOyMdKrz803beFl4cenDCTm/6qaj4w
Rd98A1BLAwQUAAIACACSgAZJtxSOk+8AAAAMBgAAegAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9y
ZWFkeVN0YXRlX2R1cmluZ19jYW5wbGF5dGhyb3VnaC1zdGRlcnIudHh0VVQJAAMEbaZXBG2mV3V4
CwABBPUBAAAEFAAAAO2UwUoDMRCGz/Yp5mgvskvTPYQi1O3BgkJBREE8zGanaWg6Kcms4tubFU96
2lbwsseEmW/+fCFZdhaggrLShdKzOdB7Kkt15YNBD1FMpGOI4ti+qJkq1CssVtR09lpDIm7vKSW0
9ORkV6OQDfFDwyV33k8ny5PJjp30yIdMd4HXvA0anjc1mMBMRvJernlD79ofU6pB+eU7/l2wNlfc
5Ka9htzo6SywYJQ68NbZLmKf9stPOBw99atb5NZT1FCj2VELBRBjk2dCg2afrabzTvWYKPbOVs6I
/sXO9zO5mI7e/sHbkPcykkfyX5CH/KWfUEsDBBQAAgAIAJOABkkksd8c7wAAAAwGAAB2ABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVfZHVyaW5nX2xvYWRlZGRhdGEtc3RkZXJyLnR4
dFVUCQADBW2mVwVtpld1eAsAAQT1AQAABBQAAADtlMFKAzEQhs/2KeZoL7JLwxaCCHV7sKBQEFEQ
D7PZaRqaTkoyW+nbmxVPeloreNljwsw3f76QLDoLUEFZ6ULpWQX0nspSXflg0EMUE+kQoji2r2qm
CvUG10tqOnujIRG3D5QSWnp2sq1RyIZ40nDJnffTyeLXZMdOeuRjprvAK94EDS/rGkxgJiN5L9cc
0bv225T5oPzyFf8+WJsrbnPTTkNu9HQWWDBKHXjjbBexT/vpJ+wPnvrVHXLrKWqo0WyphQKIsckz
oUGzy1bTead6ShR7Z0tnRP9g5/uZXExHb//gbch7Gckj+S/IQ/7SD1BLAwQUAAIACACTgAZJnSOi
U+sAAACkBAAAegAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeVN0YXRlX2R1cmluZ19sb2Fk
ZWRtZXRhZGF0YS1zdGRlcnIudHh0VVQJAAMGbaZXBm2mV3V4CwABBPUBAAAEFAAAAO2TwUoDMRCG
z/Yp5theZJeGKkGEuj0oKAgiCuJhNjtNQ9NJSWYV395Z8aSntQdBPCbMfPPnC7PsPcAC6oWtjJ2f
AL2WujbHMTmMkMVl2qcsgf2TmZvKPMPZitren1soxN0NlYKeHoJsGhTyKb9ZmHIf42yy/DE5cJAB
eaf0kPiK18nC420DLjGTE73TmheMofsy5XRUfvmMf52814oLbdpa0MZIB4EFszSJ18H3GYe0H37S
bh9pOF0id5GyhQbdhjqogBhbnQktuq1aLYe96r5QHpytghP7ja3/Mzma/Xv7BW9j9uWvk8fs+DtQ
SwMEFAACAAgAlIAGSa9jIRPxAAAAZgYAAHMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHlT
dGF0ZV9kdXJpbmdfcGxheWluZy1zdGRlcnIudHh0VVQJAAMIbaZXCG2mV3V4CwABBPUBAAAEFAAA
AO2UwUoDMRCGz/Yp5mgvsktDwSBC3R4UFAQRBfEwm52moXGmJLOKb29WvHnbVQTpMWHmmz9fSFa9
B1hCvbSVsYtToLdc1+YkisMISV2ivSQN7J/MwlTmGc7W1Pb+3EIm7m4oZ/T0EHTboJKX9G7hmPsY
57PVaHLgoAPyrtCD8BVvxMLjbQNOmMlp2Ss1rxhDN2FKJv2Kfy3el4qL0rSzUBojTQIrJm2EN8H3
CYe0n37kZR9pWF0id5GShQbdljqogBjbMhNadLtiNU871X2mNDhbB6f2G7vcz+xofvD2B95+670c
yKPJpvrn5NF/6Y/m/wBQSwMEFAACAAgAlIAGSX7xcQGDAAAAwAAAAGwAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEt
ZWxlbWVudHMvcmVhZHlTdGF0ZV9pbml0aWFsLXN0ZGVyci50eHRVVAkAAwhtplcIbaZXdXgLAAEE
9QEAAAQUAAAAncw9CgIxEEDhfk8xpTaS4LBFEGFZGwtBsFAQi5gdswNhIvlRvL3xCraPxzdUD9CD
7o1CgwronbXGVYjOBkjFJXrGVFj8Fdeo8AabHd2r3xrIJNOBcraezlzm0RbyMX0MLKSGsOyGv2UW
Lj/y1HSOspdHNHA5juCiCLnSWnteNvDUfQFQSwMEFAACAAgAlYAGSTR2o03VAAAAwgIAAIQAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvc3JjX3JlZmxlY3RzX2F0dHJpYnV0ZV9ub3Rfc291cmNlX2Vs
ZW1lbnRzLXN0ZGVyci50eHRVVAkAAwltplcJbaZXdXgLAAEE9QEAAAQUAAAA1ZA/T8MwEMV3PsWN
MKS2QwLBW9Wq6tABRWWqGFz7Qiz8J9hOPz9XpTMbEuiW99N7J727k3iSvJGNWPG2fof98fja49eM
ucBgP/alTDfcWtOjRnvBHvMUQ8aNcu6s9KeEtBgGRsoTLT40vIF7TCkmqET98tg9wED6GpKMuaiV
G2Musus4Z2PxjmX0KhSrM0N/RmPQVDqGgqEwj8aqCh16osyGGO9OP3cn3M5+2tmg3Ft/WAc6wMeC
a2OoYpagFgGifl5xGkFrlIU5ud8p2f7jB7d/9cHfUEsDBAoAAAAAAIKABkkAAAAAAAAAAAAAAABV
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3RyYWNrL1VUCQAD5GymVw9wpld1eAsAAQT1AQAABBQA
AABQSwMECgAAAAAAgoAGSQAAAAAAAAAAAAAAAGMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdHJh
Y2svdHJhY2stZWxlbWVudC9VVAkAA+RsplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAIKA
BkngvJWb7QAAAKEBAACCABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3RyYWNrL3RyYWNrLWVsZW1l
bnQvdHJhY2stYXBpLXRleHR0cmFja3Mtc3RkZXJyLnR4dFVUCQAD5GymV+Rspld1eAsAAQT1AQAA
BBQAAAClkEFLw0AQhc/mV7yjHixZkzZ1kUKbHhQUpKV4CD1sNpNN6Lpbdjco/npHwYvXvtvAvPfN
vEYsZF7KvJgt5/MjHliod+vNHisWejvF4ZVcNzqzI0sq0p6SRJN/Vn17r++WQhRVfsTGen1CjkFF
OO9uvyh4BOqh/eQSimw9GWCBPxzoIwpRztimLELSgc4+JMY0ZVGKik/ZUjuZlUSk9EIxKkPP3hje
+GVJsNFSd0lwUiHV3vWjmYJKo3dvYxpq/3629DM9KtdZChK10gN1/B051TITrdInLiVe9tUhUnhy
vd+Omiv9ny1xnV3dZN9QSwMEFAACAAgAlYAGSVZR3JC8AAAA7AEAAGMAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEt
ZWxlbWVudHMvdmlkZW9fMDA4LXN0ZGVyci50eHRVVAkAAwltplcJbaZXdXgLAAEE9QEAAAQUAAAA
tZAxa8MwEIXn5lfc2CzBoiKDCAXHGVpox9ChdDhLZ1lYOQXpTOm/rxK6dYvJ+ODe93GvnT3AFtTW
NNpoBfRdlNKbmCxGyGIznVOWwP5TP+lGf8HuQP3snw0UkncqBT29Je/rxb6WJgO1GMmt2tvBglm6
xEPwc0YJiT+CjF06nSNd0guyi5QNdGhHctAAMfbVCT3aidiVJXKSY6H8ykM6BCvmH9vA4+phvcjA
7m+4618o5FP+qVyeY7wn+RdQSwMEFAACAAgAlYAGSelzwJKDAAAAwAAAAGwAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVk
aWEtZWxlbWVudHMvdmlkZW9fdm9sdW1lX2NoZWNrLXN0ZGVyci50eHRVVAkAAwltplcJbaZXdXgL
AAEE9QEAAAQUAAAAncyxCsIwEIDhvU9xoy7S4NEhiFDq4iAIDgriENMzPQgXSS6Kb299Bdefn6+v
AaAD09kWLRqgdzEGVzF5FyGrz/RMWVnCFdfY4g02O7rXsLVQSMYDleICnVmnwSmFlD8WFlJjXDb9
3zIL6488zTon2csjWbgcB/BJhLzObX5eLvLYfAFQSwMECgAAAAAAgoAGSQAAAAAAAAAAAAAAAFEA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvdGhlLWFyZWEtZWxlbWVudC9VVAkAA+RsplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAIKABkksQhrkhAAAABoBAABrABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1hcmVhLWVsZW1lbnQvYXJlYS1w
cm9jZXNzaW5nLXN0ZGVyci50eHRVVAkAA+RsplfkbKZXdXgLAAEE9QEAAAQUAAAAzcwxCgIxEIXh
fk8xpTZiMKwQRFjWxkIQLBTEImbH7ECYkWRW8fbGWwiv+nl83RQBWjCtW9o6wHcxxi6SBJ8ga8j4
lKzE8WpX1qxvsNnhfYpbBwV5OGApPuKZdOy9YpT8cTDjKaV50/2hTEz6I09VJ+E9P8TB5dhDEGYM
Wlv9vHyiofkCUEsDBAoAAAAAAIOABkkAAAAAAAAAAAAAAABSABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1hdWRpby1l
bGVtZW50L1VUCQAD5mymVw9wpld1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAg4AGSSHPbW7eAAAA
0AIAAG4AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQvdGhlLWF1ZGlvLWVsZW1lbnQvYXVkaW9fY29uc3RydWN0b3Itc3RkZXJy
LnR4dFVUCQAD5mymV+Zspld1eAsAAQT1AQAABBQAAADVkDFPAzEMhXd+hUcYrsmVo71mq1pVHRjQ
qUwVQ5q4vQgnORIfv5+UY4YJCeTlPftZ+uxjvVCyUfJhtlouXmB/ODx1+DZiZji7y555+LJbZzs0
6N6xwzzEkHGjiU7avCpI08BCX/LFTXNoZAO3mFJMUNXz1X17B+eiryElBEWjqY+ZVdtKKXr2JDJ6
HdiZLNCf0Fq0lYmBMbDgHis9WhcrJPTXTk7m5vg9frHb0Q87FzQ9d4/rUG7wkXFtbaHMCvQkoJ4v
Z7JUXdZKFsZEv8bZ/q83h5HoJ/4/8edP0A9QSwMECgAAAAAAkoAGSQAAAAAAAAAAAAAAACoAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9VVAkAAwNtplcPcKZXdXgL
AAEE9QEAAAQUAAAAUEsDBBQAAgAIAIOABknCF/UVogAAAE8CAABGABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuMTEtc3RkZXJyLnR4dFVU
CQAD5WymV+Vspld1eAsAAQT1AQAABBQAAADtj7EKwjAURfd+xRvbxYCIlGzadhAVsQU7Spq8IZD2
hfSl+PnW0skvcHC8cM7l3qqub7WEAzP2noEJlJnUoBEUaOq9Q0YDOoaRQiIe5GKPoygVK1G1jWix
O1sWDcWg8ZMKCiiuZKKbMTsYfKExnRgxTBhEc79YxlN5LJbCjfY+3eZ5BhI6IgdrgZQz0iyKlF+O
lOvANNqB97snZ0n1P/EjJ95QSwMEFAACAAgAhIAGSbxxbNWZAAAAxQAAAEMAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9jb3VudC1zdGRlcnIudHh0
VVQJAAPnbKZX52ymV3V4CwABBPUBAAAEFAAAAF2OsQrCMBRF937FG9vFgIiUbNp2EBWxATtKmrwh
kPaF9KX4+dbSyfHCOYfbtO2jlXBixiEwMIG2sx4NggZDQ/DIaMGkOFHMxIt8GnAStWYtmk6JDvur
Y6EoRYO/VVFEcSeb/IK50eIHre3FhHHGKNTz5hgv9blagzsTQr4vywIk9EQetoCUC6JWRco/R8rt
YJ7cyMfDm4vsC1BLAwQUAAIACACDgAZJvHFs1ZkAAADFAAAARAAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50Mi1zdGRlcnIudHh0VVQJAAPm
bKZX5mymV3V4CwABBPUBAAAEFAAAAF2OsQrCMBRF937FG9vFgIiUbNp2EBWxATtKmrwhkPaF9KX4
+dbSyfHCOYfbtO2jlXBixiEwMIG2sx4NggZDQ/DIaMGkOFHMxIt8GnAStWYtmk6JDvurY6EoRYO/
VVFEcSeb/IK50eIHre3FhHHGKNTz5hgv9blagzsTQr4vywIk9EQetoCUC6JWRco/R8rtYJ7cyMfD
m4vsC1BLAwQUAAIACACDgAZJvHFs1ZkAAADFAAAARAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50My1zdGRlcnIudHh0VVQJAAPmbKZX5mym
V3V4CwABBPUBAAAEFAAAAF2OsQrCMBRF937FG9vFgIiUbNp2EBWxATtKmrwhkPaF9KX4+dbSyfHC
OYfbtO2jlXBixiEwMIG2sx4NggZDQ/DIaMGkOFHMxIt8GnAStWYtmk6JDvurY6EoRYO/VVFEcSeb
/IK50eIHre3FhHHGKNTz5hgv9blagzsTQr4vywIk9EQetoCUC6JWRco/R8rtYJ7cyMfDm4vsC1BL
AwQUAAIACACIgAZJvHFs1ZkAAADFAAAASQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2NvdW50LXN0ZGVyci50eHRVVAkAA/BsplfwbKZX
dXgLAAEE9QEAAAQUAAAAXY6xCsIwFEX3fsUb28WAiJRs2nYQFbEBO0qavCGQ9oX0pfj51tLJ8cI5
h9u07aOVcGLGITAwgbazHg2CBkND8MhowaQ4UczEi3wacBK1Zi2aTokO+6tjoShFg79VUURxJ5v8
grnR4get7cWEccYo1PPmGC/1uVqDOxNCvi/LAiT0RB62gJQLolZFyj9Hyu1gntzIx8Obi+wLUEsD
BBQAAgAIAIiABkm8cWzVmQAAAMUAAABKABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY291bnQyLXN0ZGVyci50eHRVVAkAA+9splfvbKZX
dXgLAAEE9QEAAAQUAAAAXY6xCsIwFEX3fsUb28WAiJRs2nYQFbEBO0qavCGQ9oX0pfj51tLJ8cI5
h9u07aOVcGLGITAwgbazHg2CBkND8MhowaQ4UczEi3wacBK1Zi2aTokO+6tjoShFg79VUURxJ5v8
grnR4get7cWEccYo1PPmGC/1uVqDOxNCvi/LAiT0RB62gJQLolZFyj9Hyu1gntzIx8Obi+wLUEsD
BBQAAgAIAIiABkkEiukDnwAAAIoBAABKABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfY291bnQzLXN0ZGVyci50eHRVVAkAA+9splfvbKZX
dXgLAAEE9QEAAAQUAAAA3Y+xCsIwFEX3fsUb7WJAREo2bTuIitiAHSVN3hBI+0L6Uvx8a+nkJzhe
OPdwb90090bCkRn7wMAE2k56MAgaDPXBI6MFk+JIMRNP8qnHUVSatahbJVrsLo6FohQNflNJEcWN
bPIz5gaLb7S2EyPGCaNQj6tjPFenchFuTQibXVHkIKEj8rAKpJwRtVSk/OlIuQ7cJDfwYf/iPKv/
4cQHUEsDBBQAAgAIAIqABkm8cWzVmQAAAMUAAABLABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNS1zdGRlcnIudHh0VVQJAAPz
bKZX82ymV3V4CwABBPUBAAAEFAAAAF2OsQrCMBRF937FG9vFgIiUbNp2EBWxATtKmrwhkPaF9KX4
+dbSyfHCOYfbtO2jlXBixiEwMIG2sx4NggZDQ/DIaMGkOFHMxIt8GnAStWYtmk6JDvurY6EoRYO/
VVFEcSeb/IK50eIHre3FhHHGKNTz5hgv9blagzsTQr4vywIk9EQetoCUC6JWRco/R8rtYJ7cyMfD
m4vsC1BLAwQUAAIACACNgAZJvHFs1ZkAAADFAAAATgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUtc3RkZXJyLnR4dFVU
CQAD+WymV/lspld1eAsAAQT1AQAABBQAAABdjrEKwjAURfd+xRvbxYCIlGzadhAVsQE7Spq8IZD2
hfSl+PnW0snxwjmH27Tto5VwYsYhMDCBtrMeDYIGQ0PwyGjBpDhRzMSLfBpwErVmLZpOiQ77q2Oh
KEWDv1VRRHEnm/yCudHiB63txYRxxijU8+YYL/W5WoM7E0K+L8sCJPREHraAlAuiVkXKP0fK7WCe
3MjHw5uL7AtQSwMEFAACAAgAkYAGSQSK6QOfAAAAigEAAFgAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5n
ZS1zdGRlcnIudHh0VVQJAAMBbaZXAW2mV3V4CwABBPUBAAAEFAAAAN2PsQrCMBRF937FG+1iQERK
Nm07iIrYgB0lTd4QSPtC+lL8fGvp5Cc4Xjj3cG/dNPdGwpEZ+8DABNpOejAIGgz1wSOjBZPiSDET
T/Kpx1FUmrWoWyVa7C6OhaIUDX5TSRHFjWzyM+YGi2+0thMjxgmjUI+rYzxXp3IRbk0Im11R5CCh
I/KwCqScEbVUpPzpSLkO3CQ38GH/4jyr/+HEB1BLAwQUAAIACACSgAZJvHFs1ZkAAADFAAAARgAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3dyaXRlci1zdGFydmF0
aW9uLXN0ZGVyci50eHRVVAkAAwNtplcDbaZXdXgLAAEE9QEAAAQUAAAAXY6xCsIwFEX3fsUb28WA
iJRs2nYQFbEBO0qavCGQ9oX0pfj51tLJ8cI5h9u07aOVcGLGITAwgbazHg2CBkND8MhowaQ4UczE
i3wacBK1Zi2aTokO+6tjoShFg79VUURxJ5v8grnR4get7cWEccYo1PPmGC/1uVqDOxNCvi/LAiT0
RB62gJQLolZFyj9Hyu1gntzIx8Obi+wLUEsDBAoAAAAAAJWABkkAAAAAAAAAAAAAAAAKABwAaW5z
cGVjdG9yL1VUCQADCW2mVw9wpld1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAlYAGSQAAAAAAAAAA
AAAAABMAHABpbnNwZWN0b3IvZGVidWdnZXIvVVQJAAMJbaZXD3CmV3V4CwABBPUBAAAEFAAAAFBL
AwQUAAIACACVgAZJYjFSb5ELAACV4AAAQQAcAGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1l
eGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS1zdGRlcnIudHh0VVQJAAMJbaZXCW2mV3V4CwABBPUB
AAAEFAAAAO2d3W+juBbA3/tXRLlaqSO1CR/+IJH2obftrrp3NFtNuzsP2z5QcFt2CeTy0ZneKv/7
tQlJCCQpjYGYxKOZTkrAnHN8jn2Mf9hHAflvTMJo2HnrOnZ3qOkn3RGJnn36ufs19iJnRHrkxXRj
MyLdk+7YDMxR2B2+dcmPcUDC0PE9euYtLeLafCI907a/kjB2o+PYI6FljsnxXfeu++kTvdZ/+JtY
0a+BH4/pJRG9hB50PMuNbXLuj0amZ392PHJ2fdUdPppuSCaTo59/7lApPMd76rALOmHsRGTY+XdA
zH9+986818sfFhlHVIredeCPnJAc5TUCNWj0k37B/mpKKhz9xMSj/yUC/qSf0Y8bhOSwyOnpskUs
M9xskN78yJWXHjr3vTAKYivyg4K5YA3mOj1dZSom+buW2iw9hx3zeqOt9A5JdEvP9OPomN329jnw
v1Ml57JWJR3OSkfGrvnaeyLRzVSOCzMyl0QMp8evbEL1eHRI0B2qSaHhmNqOsFKDpJLoyZOT6R20
yRF5oeezL+e3uiAP8dMTCXqhFThjWsNBSOzlWyVfXLGToU6/iQOXfqQfwsgMIqZXd6ikv537bjzy
kt/JVOfZ59k3urZOzMyn6HVML+zGnk0eaRl2l6rw3QwT23szE6Za6fxaAW6tBqhirQC/VpBbK1VT
K1YL8quF+F1QL6+VF48eaHCddFk7QQ+oJ12bTMWZNg/qJnXRKnVZ4+a7pDeiIUzb0zPbzmmbfpEo
7seBxeSwphedmmOHnuvSUpkFXP+J/haRH1Ha7BRaJ/b1VJPpuW5iD502hdasktHMno+OS4b9fv9P
9g0J+6zR6V9+u+l/Iw//caL+Z/OVtoKsHwj7jheOCWuf+3Zae31qu0TasP/AGvtT3zsls5b9lAkX
9v4OqQgBGROTVhNtgRN7JoqTiARU+b/mhqftP9VjYfg16k3uk2q3/rkNTGYoWsBj7Fnsnl9oqRvM
0qjOWQdW02r4MnWtTGXMjqhocj+ZNOk7jtcZb3QYY+EwmtIOh8no9L6XjAX0CyPvF5oyOSlI7nhO
5Jiu8z+S9+1c+ThXvlpwO3VF8flC//LMyHkhHcu3yf3yHZTcDZT8DVaJL3544t2HZ5QaqMM0vQwC
P1gdpriFzXpRtfej1fYTlxHJTVZ5yUkrmplBKcllMyNOMzNPmMdmnE+VLdN1f2GRNw27+a/JXd/u
un5gO57p3jG73dFaZQNXYt+kkt2xYSQtb228ub5lTjPft4+FAx1KMAP4Y3L+bDpeItx02JzJttMD
swH1TOZVUjLh5+JarhmGqay/3XwmPxyq96X34gS+N6LW6+az9pUnTeZtquX6YRww//C2NUAxqcMT
5pdV6KwVdf7V9R9Mt5Tma09d6P+0/pRqNNDzGnxzPDux77K06eG8ZEkXET07IZ8U4GNS0DALyItD
vq+665orqCOFLu3004EhK4KGQBA5aXx6i+Zp0aXPoi/TTSaWnzujFad1m5cijB9mA1facGau/9f8
okxBKxvF22fifUCUWVyUO//Ke2QdyevigvwAe3EKq2P/hQSPLr3BMApiMmHj6vDWdNwL4tLUwp4P
tzc2dGr5hm7RP5eN82KWrsJ6WjrYSEu3hQUKbT17wFJRQ4HqUHqp0kXVHDdS3evyotImgAUTqJWZ
wGh9PzcQop9TFdnRHUJHp5Xv6FYN59bFPH5vwEX9q57cXhUjfAr59sJmy3IsjpcOoKz5S0VQGJlR
HC78qvBEZUw8e3rE8SISUNdInep+S7fSy7vVei/Kj9pPC88FTusaIeqt70ZUUH0gZBqwDwhSSEJ/
WRSzLMqs/E7q4cefOm93Xof+WXq2c+dNutu5JSjvltxZDmoqyVeRTPtU3P6ANcTouQYy8duPxO+e
TbCYYWL6+bNlVikMDBqun17JzKpMJkfXZzc3w87Nsx+7did5eNx59IPOvMBegUoyamDFmBRTKmwq
Cf2QyEL/p9LQnwt5OOiv67M/bi47Z7edtAaHxlDTCvoNatGP3pmqcXZLf6R3p/oa9J+mVcez6crJ
iikBRrBQR1wHuIQzHaZl0CSMqUxzytGYpRlYgRrQDQ1htacj2siH5InFFAvlafqYoGr8FI/BTfFg
WDGbZPBrNeDWClVNXA02Q4G6slHrqTfRGxwVvE8VCyOuApplHcM3h+oUR+dmZD0XdNaEJ2fzKlTY
3Oi14LNM4G0l5AxXpAhHs9IsmlsrtQLus2KcVedHj5HGX1l4e+5Ty+e/2iZ19Z1zn8s5bpYRgnBP
2M9ExS35z9Q8wtAfEIrPgEIsGdDG/QIfLAMqXIgKhWn3orUNPFLaHKdTxUoHq2hegpRSAZtK/5WY
ydHf/Ic1EYv0EhEraWRJI3PQyMLFkPoR6euNIYnaZrBT5RBZW7X1k1GaJsRklKbLySiJ227ogEqH
u9LUbLwGmmRuP2gGOKiRPtVg4+CtUOrvEMP4qB1AwQ6wOju0H8XQxEAxNIliSAa3xABmTdgXxjCN
Qbi6Un38LM0ZicS76GC/eRcdtph3QRt5F975RSAckaLzLwKEoHBECs1ONhMpaFsiBe8vkbIaRzFa
g6NUzaIMamNR5tLuCkpB4kEp/LwfwhVAKXrFavEDf4gfYwRoeyhFz6dg+iZ1B0JAKfP4WjN5ifaI
TlnoyoGpZA0mzhRNC9YsQ3LNsub9wjhoXkXMWMUtAVewKsGV3REDqgRXJLgiwRUu4TUJrogIruiH
uEicvgerxImxTJwu14mT4EoV4Eoxx6oLXNGhwOAKVmokN3QkOrhSr/p4t+BKdgRcuhcsvPwEQHUG
af8icroYq8gBuYqcJFjaSLAA9YAIFqDsN8EC1PYSLECrlWAZCEewAIVbK6wIR7DQ9mQjwQK0kgTL
Tp6/W+snXzFo9QN4q+RUa3q+cBM1GOz/I/iL379crnE+2D7nS7RpscPBXTlcoWfU94/dW8nsASD+
5qvVsnoA1sLq7ZrTw6pwnB7g3woV86+ypKpVJ5H8GDTm37cWaNtzeiA/0ASb1IU75/TeYfQA2BNG
j5vPE5L3AUB8Ng8gyeY17hfoYNk8MeMUyo1FJRG1vxuLAnywG4u2vr2R9Fhm+kg7QHoMtH/THADE
mDaHctpc0mOcu4yCxjYgAkjQbUaL3VeF2BTAIu8zWq/qxu6IsW1oMTZVkKPFlOqMMWh9twcVIbo9
qMpuT9Ji7dtzFIqxWCbU5Z6jLd5zFIL29yNQkD1HIdqfPUe3SnhAU7k/xDIVXBij/S8OQDFeHEDy
xQG5CykX0472nGnHLWbajTqZdizeqowA8Wsl3qqMAL/DtBstZdrBQDLtu5x0HBwy0w4VybQ3vU2b
IgzTPtjP9WjPPCpXQtfQ4yshd6i0YmHaoiLVpUVQrY16T2VORd4V/i7eMrVgwK9VBcvUVq0WrOAd
Sv5laqG6Pf4O86N2uEldVQj8fTnIVvfuhrJHHHxOYQ4gvmA6YXIDQxGfjDc0ScY37hfaQZPxAges
KhF5icjvLyJv6AeNyO9HwyNZ+cxU3yGutIrav9IqEmOlVSRXWpWsPC8rX8zm6+JlEBSUlS92XxUC
4wiJzMrXq/qOAalCwlQ6AShMw4FBdVZpPymFxCClsCSlJDTfQmgeq2KEjyah+RZD87j97xxjIAg0
j+F+QfNbZz4r5nxqGg1gJJPDFVbB7Q9qQ4zebSCTQ4nRc2D0UNtvjB7q7cXoIagVoxdvaXiocWtl
iLc0PNQ3Y/QQtBSjN6DE6Hc5HwnFwegbn+/MVUrpzB82lfkbSpPzAB+2Q+H9YR1Wlt4bauOTAWLp
r8lB3wqrtP9JjiHG6nGGXD1Ozoi3cdM1Ax3QpmsQtn9kne1dae0NVVTQEtU9vs7KwAbZiP5QUYWj
bFznKNtQxRtlQ36t+LcEQbhirdA7o2xccpRt+aMxaz+Yix5/KniLwefvy6Xv5j09g3/nE02vuPaM
ydH/AVBLAwQKAAAAAACggAZJAAAAAAAAAAAAAAAAAwAcAGpzL1VUCQADG22mVw9wpld1eAsAAQT1
AQAABBQAAABQSwMECgAAAAAAuoAGSQAAAAAAAAAAAAAAAAcAHABqcy9kb20vVVQJAANQbaZXD3Cm
V3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACACggAZJ3v266a8AAADuAAAANQAcAGpzL2RvbS9jYWxs
YmFjay1mdW5jdGlvbi13aXRoLWhhbmRsZS1ldmVudC1zdGRlcnIudHh0VVQJAAMbbaZXG22mV3V4
CwABBPUBAAAEFAAAAGXOQQuCQBAF4Lu/Yk6iUG3gJfYWZZcIQUvPuzqFsM7ItFv079OoU7d5vO/B
5GVZlBouZKxD8Aw+CAET9NQKDkjeODDB8/Jh2hAGSNZA7MEQoAhLGqmaXRjwrvbGG5U3lWrQHnuv
Kg7S4px2LKhO3AU3sSfabpLW3PEzmY9VO45JtslS0GCZHXxHWv+E1iPKlWUoRqQtdTVKf30lM178
63x+DeKpOR+0rrz0dIM4jd5QSwMEFAACAAgAuoAGSd79uumvAAAA7gAAADAAHABqcy9kb20vZXhj
ZXB0aW9ucy10aHJvd24taW4tY2FsbGJhY2tzLXN0ZGVyci50eHRVVAkAA1BtpldQbaZXdXgLAAEE
9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmU
Gi5krEPwDD4IARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLi
nHYsqE7cBTexJ9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N
4qk5H7SuvPR0gziN3lBLAwQKAAAAAAAtgQZJAAAAAAAAAAAAAAAABgAcAG1lZGlhL1VUCQADJW6m
Vw9wpld1eAsAAQT1AQAABBQAAABQSwMEFAACAAgApYAGSV55rFbnAAAAnQIAAB8AHABtZWRpYS9h
dWRpby1kYXRhLXVybC1zdGRlcnIudHh0VVQJAAMmbaZXJm2mV3V4CwABBPUBAAAEFAAAAM3RwUoE
MQwG4LPzFDnqZdhhxzkUEXZnDwoKgoiCeMi02W7Zmi5tRvHtTdWbJ9mLx5bmS/NnNXuAAbrBLM5N
twB6L13XtzFZjJDFZjqkLIH9c7/sl8MLXFzzNl0aiMl7vYYimKW0bdus/kxtaJq9WoXklkpBTzff
6lqL9ga0MJI7Bq6fGxNvg58zSkj8GGQ3ptdDpHq6QnaRsoER7Y4cqM04aU+Y0O6JXTluqodCuea1
CVbML9vAaXNydlQHdj/Bfc2FQj7lD3V5jvF/yoGDVPJedd1ATcfA090INjGTrVvRN28Yg2s+AVBL
AwQKAAAAAACtgAZJAAAAAAAAAAAAAAAAEwAcAG1lZGlhL21lZGlhLXNvdXJjZS9VVAkAAzVtplcP
cKZXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAK2ABknSvBGNiwAAAJsAAABIABwAbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS1zdGFsbGVkLWhvbGRzLXNsZWVwLWFzc2VydGlvbi1zdGRl
cnIudHh0VVQJAAM1baZXNW2mV3V4CwABBPUBAAAEFAAAAA3IsQ6CMBAA0N2vuB/AlEoLYdOwmDgp
cTEOR3tgk9KSK8TUr5ft5UlR6kI0hdBQ6laoVqpjo2votnm5U7DEPRO9qlNV1q1slJTqDdcpRHZh
AhPDytH3bqYBE0GiFYYMxjsKu8jgtu/5+cB58XTZxpG4c2nxmG+YieGLCdBasrBGQEg5mA/H4H7E
hz9QSwMEFAACAAgA2YAGSbbfEhTFAAAAJAMAACgAHABtZWRpYS9zb3VyY2VzLWZhbGxiYWNrLWNv
ZGVjcy1zdGRlcnIudHh0VVQJAAOKbaZXim2mV3V4CwABBPUBAAAEFAAAAO2RsYoCMRCG6/Mppjwb
2cV1wXAI3looaClXiMVsMsZgnEgyi/j2xsPOzr3yyoH5v4+Zf95ZgBrKWhW1qqZA11SW1cgHjR6i
6EiXEMWx3VXjalzv4WtBbWdnChLJhlJCS+tgbd74zqGTghz0ZAbz98GCUZrAB2e7iOIC/zg5NuF8
8fSYlsjGU1TQoD6SgQKIsc1OaFGfiE3qIyfZJoorPoSF06Je2Ao+Bx/DXgY2z8f93oVCNsRb5nLn
fT/yfyNPw6T4w0buUEsDBBQAAgAIANqABkkAgUK9igAAAIABAAAwABwAbWVkaWEvc3ZnLWFzLWlt
YWdlLXdpdGgtbWVkaWEtYmxvY2tlZC1zdGRlcnIudHh0VVQJAAOLbaZXi22mV3V4CwABBPUBAAAE
FAAAAM3OvQoCMRAE4N6n2FIbueNiiiDCcTYWgmChIBYxt8aFsCv5UXx74ytoYzsM30xfPICGVptG
m0UD+Extq+ZBnA0Qs4t4l5iJ/Ul1qtNnWK7xUvzKQEIet5iS9XigfBtsRi/xZWDKJYTZpP9aJqb8
IfdVJ+ENX8XAcTeAE2Z0uWa187CBxh9W/uP/G1BLAwQUAAIACADbgAZJz04p0pAAAAC9AAAAIQAc
AG1lZGlhL3Vuc3VwcG9ydGVkLXJ0c3Atc3RkZXJyLnR4dFVUCQADjm2mV45tpld1eAsAAQT1AQAA
BBQAAABtjkEOgjAUBfee4l9AUKIu2FYREkkIwgGa9kWbYD+2vyTeXl25cTWzmMXkV07BQGlzR644
oIV1+mfr7f5QZMVuk3eBheU1I+aVu9XD0H2pJgcvtfZ2glUpCj/G/vJpF2cRMkPmb6ACtKBHnNlH
HJ2RisMZ0uOZEKUkxWmy5FnIsF8QhMahIWFqm/ZE342SVm9QSwMEFAACAAgALYEGSWOD7hm6AAAA
kgEAAB8AHABtZWRpYS92aWRlby1zcmMtYmxvYi1zdGRlcnIudHh0VVQJAAMlbqZXJW6mV3V4CwAB
BPUBAAAEFAAAAKWQMYsCMRCF69tfMaU24uqyYDgE3S0UtBSL44rZZIxh40SSWcR/bxS7687ywbzv
Y95qsAA1lLWaLtSsArqlsqwmPmj0EEVHuoYoju1PNa/m9S98t9QNdqkgkewpJbS0C9bmi3Uu9Qpy
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
XzvshuR+huXYMcdCZnyCSw7/G+MTnvlLzWQ+bod+TUmsZvE1lw96SCmlfo1vY06Jg9s8ncCUdW1o
DvVNllmJtkAUORyvE70dUIlfAKx8tRVgoLQZX3GvT7eiTjtD0dSGLhfMjLuoVTMCLsaSUT9i5OEh
P/dDAL4o2WFYdRJmjYc9o/wewIqzPXl0BiM0JwLsDKlGmIat/WWOwBqkrA24OT6h87SdoTjm4sAa
EOAe3NEOMrLM6GPpApQFmFP5lFEtTGJmkZmXyIQ6bv/sWGQ10gK3nYB18sg3loGPGhSFymGfhjQY
Q+8Z8c9nildMlbwzVK/7VNf02f8HUEsDBAoAAAAAADCCBkkAAAAAAAAAAAAAAAAIABwAcmV0cmll
cy9VVAkAAwxwplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAADCCBkkAAAAAAAAAAAAAAAAR
ABwAcmV0cmllcy9pbXBvcnRlZC9VVAkAAwxwplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAA
ADCCBkkAAAAAAAAAAAAAAAAVABwAcmV0cmllcy9pbXBvcnRlZC93M2MvVVQJAAMMcKZXD3CmV3V4
CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAwggZJAAAAAAAAAAAAAAAAKAAcAHJldHJpZXMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9VVAkAAwxwplcPcKZXdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAADCCBkkAAAAAAAAAAAAAAAAuABwAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL1VUCQADDHCmVw9wpld1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAMIIG
SQAAAAAAAAAAAAAAADIAHAByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL1VUCQADDHCmVw9wpld1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAMIIGSQAAAAAA
AAAAAAAAADgAHAByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2Jhc2ljL1VUCQADDHCmVw9wpld1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAMIIGScqlhqI8
AQAAkAUAAFMAHAByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4tYWN0dWFsLnR4dFVUCQADDHCmVwxwpld1eAsAAQT1
AQAABBQAAADVkk1OwzAQhfc5xWzKitr9k4BKFapKy6ZQRNQDGMclluKMZU8F3J5JQaGli7YBFiiW
E40y3zy/58niPl3Mp3A3TdPx7XQIyzKqlQFFZJwnIIQCVQbLxznkRD4OpSxQqyLHSMOrwaAvV4Z0
LpW3MpiI66BNlIRe0CtdV7+SxXK06W31x63ejFdN4ErF4NKGwm/m8F6T+PuTdaZxXdKoC6uAjjfl
DLxYymtpO8ouLzudLWVPKlotHWamHbmxjcE+21Lk5AoBN+iULeM5+ICEGosIqszAY6AIbh0JnGKQ
SJLJiW6xpG7vQnT46X6XdMCs2qsawJUK8V+8Sh7GaQqzCgtC7B/3Q9DWBKhGwnbbIaVNmadd4uOF
Hp/1Ecy9RHZMDCazwWgS/u3r3jS0ucGkv0imoYxfD7O5HT/PP3kHUEsDBBQAAgAIADCCBkn1DXBw
kAEAAEoGAABRABwAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLWRpZmYudHh0VVQJAAMMcKZXDHCmV3V4CwABBPUB
AAAEFAAAAN2STU8bMRCG7/kVc9leFq/zwVcjIRJI6KEUKlbA2fE6rCV7Z2WPFfrvO5uiFdBDS5Gq
CNkaWyP7mdevRwgB8g5d8ibKhSIll/elvDerr5aelrNkXSUXZpUepFM/MJEgE0kEE5OjKIOhYPm2
9S0GMpXcTLTcmJVonaI1Br89HuXakK6laq1cqWi19FgZEZU3AoN9sI0wj63RDCjokQZ5nu+MMKUp
KbeVNZuBGO0dQt6F2Wwgzq+vyuvLJXxbluX8y3IKt01UawOKyPiWgBAcqgpuby6hJmrjVEqHWrka
I00/7+9PntVn5ZiCZs2EbVfvtDtKFpuT7OAsGx9tCdlkno0vePYcznQkTm1ZvDKNY8/j/RORIdnB
4pPG1NDJCNYBPQd+LGws1b3MFyqPj4fDP7pU1ORdAQv0yjZxD9qAhBpdBNVU0P1ABJ8igVcMKgb5
/3Lu/Z7tgFvw9k5jUaPxUTHkMXot6q8arfesx3CmA33sPvtH397t2E50GY/v87KEi44MRfH7i39p
elYEuqow+AlQSwMEFAACAAgAMIIGSWzas9NFAQAAqAUAAFUAHAByZXRyaWVzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4tZXhw
ZWN0ZWQudHh0VVQJAAMMcKZXDHCmV3V4CwABBPUBAAAEFAAAANWSy07DMBBF9/mK2YQVtfsUpVKF
Sh9sCkVE/QDjuMRSnLHsqYC/xykotHRBGmCBHDnRyHPm5l5PV3fJajmH23mSTG7mI1gXXmwUCCJl
LAEh5ChSWD8sISOyfsR5jlLkGXoaXfb7Pb5RJDMurOZOedw6qTwntIxe6Ko8ShqLcTy4jrsXO0Lc
m8TdRXgqTqiUpFDascI70MJe8cL3BzFA4sHsTOK2oHEHNg5N2IRR8Kwpq2QeqBwO2+09lY/Ca8kN
pqrlQ2MLnX7SBcvI5AxmaIQu/DlYh4QScw+iSMGiIw9m6wmMCCAWRdMTnQuSOt0L1g6r81VSLeMq
3ypMqJSg/+VbdD9JEliUWGDs+NffBe1NgHIk7Ld9p7Qp87TLXV9o/dxrMI8SOTDRqVQ7JYnZ1887
1NDmBpP+IpmGMn49zOZ2/Dz/6A1QSwMEFAACAAgAMIIGSX3bnQOMCAAA2CAAAFkAHAByZXRyaWVz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2Ft
ZS1vcmlnaW4tcHJldHR5LWRpZmYuaHRtbFVUCQADDHCmVwxwpld1eAsAAQT1AQAABBQAAADtWmlv
40YS/e5f0bDhGAhMUqdHh61gxkcCZHJglWw+LppkU+wxyVbYTUueJP99qy+KpEhJ2dmdYIGMZyyq
j+o6Xr2qJuY2FmmyOLuNCQ7hIyUCoyDGOSfi7qoQkTO5gmEuXhOyOJslNHu+RrMXyqkgIfrtDMEf
QbbCCUnAciwoy2YoYxmZqymf5SHJHZ8JwdIZ6q+3KIRnEs7P/jjT4oyQgCUsn6GL3nCq5twnmpAH
GkVm3sfB8ypnRRY6dmk0kT/Vg/QJnCU0RBdhGOq5iGXCiXBKk9cZSlnG+BoHRsEU5ysKKvdJinp6
aM3AOGVHThKw6IUoheJ+Q9PhcNgin+OMO5zkNKpMcvqRqDOqhzoJicQM9dyxHQ8pXycYhNAMPGM0
3NBQxLC517s0+uEwpNmq3Kl1M6GRT/XoGHVpFoNSolwesxeSNywaj8fzLmcTot3gypi8h7O42Rwl
DIMZOV3Foh45ueoezMdgiz2KgeupABN7DZMF9hPiBCRJalY6Sm7NS5sYrHNUDCXUNjle7zRbkkDG
rhM0anMdMk24GMxavwOgeuutPuFxu4bwgnwwjVwjV340LexUj9OQ+K/yN1KqvktY8PwjzoULps4i
mnPhBDFNwk7HyuOWsP/6kLCcpBDa6yPnmTOs+zXgHF8uqcFubFEHaBE0wImDE7qC3BCsxaycSKR/
g7MwIdYdRo50ofweEx3QHZ6DIucyNFLtZgZiH6JT2IjBmSVwdPIo9Q5pUcP5PhxWOXmdN4Dpjo/F
S7sYuYIddbMb5SxtONvwozxDev37IvVJDmgiVXTpUav4Po0a1E6nNQK06dJGgzaTR6NRK91Uo19y
jBQ01img06AkfIMDA882iGh1a3AaGsKqGK5MbCUcXSQ63XKApNa5zE6ppnGgZRODGmtILVdhk6Oz
VU2BP9VXsCMn+NmRA1ohmuIVqUVmhgalw/0ESy/KhQFQA+gAqpgn1LR7F5XJaNrJvRGJdgQgYQUS
y/JYyeaWrWEU1rdCsHn38imZzg/V9FKSYZmqHiYrust1GO4JQCFJuneQ6VFtvC/RslivWS6g0uYG
yeDUNCWZ4OhLD87DhYiZ9reuxrKZAdQLwGlgI6U2qDUd9b9cI5XBAAm12NLZjQW2pBucJPdWg9bV
A13LUrx1GuU9hb7ADA16Zd1pHg1+P3hOmdllSteOadPTZWuiy6azIf4zFY7IZdppT2jFkTvg84oZ
I2P0BRdYFPxd4UMNL+uhK7OnVR25RTCW+Divz9ujo4SoDN1NpOxjOVqS01Dnsemj5KPtFuRzd0vY
xRwHW7kdLCK6JVqO4eNe3SQXqx5Ep9l+Fd9Q4IK8AbVS5keHZiHZAkkdMG1XCCsqtNllyKhW3iaG
xTKppknY1tIE5/lse1TRm52ifQ1iW4T0N6WseS4rmPlaKlx2ZrWjaZTjVGvYyJN6G1HJkfsOpt33
zSv0mmxjaj1JoHGEnvmEwnQzfdrBy9TkjknliPpc2UaG++1xvTk2MrT79jHc2RKElmf1MW8tKdir
Tq86+5OtkY07yc0bS2j7ah5Ikspth6dY9/JVzs1YDsPzDpYx9ssWjLcdru2wed1rW5JgnyQzHEGG
Xe9t1+NKiCrIGZh6jn5H5/OzshBXyndzd4KhQ2eRI17XpFXUeadGZmHjihuTRBFk2Yxi2Yx21KiL
lHBuG49OP7eFpZIdS0XUp5RCKDHQEL1QVvD7cgSa2Y8ku68Uy7Y6b1uOZompFhfJ5YBahQTL7ea7
QaIhkaGtgSdpY6ABPQ4RMidq5cK0fR1NX7XO+gVkVVblHVvfQ/oyi1hgfMgKIfmimn5+UqhKYqYA
LxHoAhWsbw2pFkslBXqYn2KiT/JMpV2B/tIGwZCAOV+vNlDj6IViycniO4MJUNbP2QYCDp1AjGGv
aYqocGUTVNoxGpsuvmxFzHfLDrKRlf969SJqX+k0e/yUhnDL0obJAHF7+W6pKNCHMY5fwPfgAdKo
K9Wb3l6pc/ruULdMu5cftvq3xODi4eGhktIXk6eHp/FTKz9Bc9mO4sfHxzatZyRdA0PVgm/atMZK
Fx5B01rmP04nvYnhrSAhOP+Xag/sVUCOqGtTLJfceuat2y0PcrqGmObB3XksxJrPPA9/wFt3xdgK
Nq0pl9BVY15Cfe59+LUg+avXd0fuwHxxobV0P/DzBchV8haoLjlgIXFkDMkG1n0FkZbBvBtNKltA
KfOi0GfhK3xAPoDemPO7K3sTkO8L4/7C+yfEEzjLe8ACe4+/LL1fiP8tFebjXUGT0HsgfrHyACfg
TEcQ4Fe4vBeJ4F5ORE5hN00ljknobYaBB+ThAKoEtPqpWs69iIgg9sAFno85DbxUWsGha3AYwAh4
BLqcAieu2ArQvV9XufLG6Gp/Rt3ku8blDR/pS0xjibzeoPqbod06oJ3MLlSvBnb9xtWiD36G+UVt
FTBAdc0Xmc/X89aFUMqvFvc/fL/84f0j+u5xuXz79eMM/ZxxHBGEhZDQlYQCkAvRz/94jyyWwB6c
xEAns+loNKy4FILBijyAMEAaShd+JZdKd93dws1tcTl+dzl4c+vJZyXscvj2cvAEf0uRMCKFwpAS
C58gGH6XouHZCNciB28uxw9a5Bc4Xc8DSEtx10fKW7of3FARlwbU9J9Mer2jkHDlK28XPbAUosOv
oQYwwSBFOYKGCEm4cZQWXAAngiDX+BqgD0G2H92YAII6Dgiz6CAaDkSanQCbz4qGTw/+/0msK6x9
tTDTZu2fZg8ew4X9OFiOAmVwAkYG3Rj5rDb/lxlz+BcwJoCwP3jj9uCn3wThnyXMMmVKiTAiZf7N
l/87vhz+5Vj45ND/zZb/MVuOTkDI6HS2/DRlxicoM/5cytycoMxNtzI/vl0u0ZNEGHLdffRrbFbA
hiT60KdgqPGhriTQ5Kv/0PBvUEsDBBQAAgAIADCCBklqNO8yQQEAAJ4FAABaABwAcmV0cmllcy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLXNhbWUt
b3JpZ2luLXdvcmtlci1hY3R1YWwudHh0VVQJAAMMcKZXDHCmV3V4CwABBPUBAAAEFAAAANWSy07D
MBBF9/mK2ZQVtfuSKJUqFJWWTaGIqB9gHJdYxBnLnqrw9zgFhT4WTQMsUCwnGmXOXN/ryeIhWcyn
cD9NkvhuOoJl4cVKgSBSxhIQQo4iheXTHDIi60ec5yhFnqGn0fVg0OcrRTLjwmrulMe1k8pzQsvo
jW7KX0ljMd72tvpxqzcLqyKESskIpS0lvAMn7BUpfH+xLiSuCxp3YeXQhE0YBRtNWSVtT9lw2Ons
KHsWXktuMFVtHxrb6PSLLtobdK/KsYxMzuAWjdCFvwTrkFBi7kEUKVh05MGsPYERgceiaHKmaUFZ
t3fFOuHpHio74VllWQUIlRLxzyyLHuMkgVlJB8aOT/2pa2cQlJNht+2U4KbM8650faH1I6/BPApm
z0SnUu2UJGbfv69PQ5sbTPqLZBrK+PUwm9vx8/yjD1BLAwQUAAIACAAwggZJXW4jF5YBAAB0BgAA
WAAcAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFz
aWMvbW9kZS1zYW1lLW9yaWdpbi13b3JrZXItZGlmZi50eHRVVAkAAwxwplcMcKZXdXgLAAEE9QEA
AAQUAAAA5ZJNTxsxEIbv+RVz2V4Wr/MBhUZCTSCBQ9NSdQWcHa/DWrV3VvZYof+e2RStaHuhIKFI
yNZ4NfI+887rEUKAvEGXvIlyoUjJ5W0pb836i6XH4yxZV8mFWac76dQvTCTIRBLBxOQoymAoWP7b
+hYDmUpuJ1puzVq0TtEGg99dj3JjSNdStVauVbRaeqyMiMobgcHe2UZsMfw0QZj71mjmFHRPgzzP
902f0pSU26mbzUCMDj5C3oXZbCDOr76VV6slfF2W5fxyOYXrJqqNAUVkfEtACA5VBdc/VlATtXEq
pUOtXI2Rpp8ODydPZHADmIJm6YRtV+9zd5UsNqfZ0Vk2Pt4Rssk8G1/w7jmc6Uic2rH4ZBrHnsff
j0SGZEeLDxpTQ6cj2AT0HLhn2Fqqe5l/qDw5GQ6fa1ZRk3cFLNAr28QDaAMSanQRVFNB9x4RfIoE
XjGvGORvZeDrrdsf0+D/5461jcbHxZDX6G9tzxq73roew5kO9C6m7oX2vdq4fZo5Xt/nZQkXXQEo
in8b/y3tSS3oisPgAVBLAwQUAAIACAAwggZJ6XMp8UoBAAC2BQAAXAAcAHJldHJpZXMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdp
bi13b3JrZXItZXhwZWN0ZWQudHh0VVQJAAMMcKZXDHCmV3V4CwABBPUBAAAEFAAAANWSy07DMBBF
9/mK2YQVtftUS6UKlT7YFIqI+gHGcYlFnInsqQp/j1NQ2tIFaYAFsmVbI/vM1b2eLO+j5WIGd7Mo
Gt/OhrDKnFgrEETK5ASEkKKIYfW4gIQod0POU5QiTdDR8Krb7fC1IplwkWtulcONlcpxwpzRK10X
V0ljNgp7N2G7vyOEnXHYnvtZcnylIPnSjuV3T/NryfPnT6KHhL3phcRNRqMWrC0avwijYKspKWUe
qRwMms0DlU/CackNxqrh/MMGWv2ss8YW7YuyLCGTMpiiETpzl5BbJJSYOhBZDDlacmA2jsAIz2NB
MDnTQK+s1e6zph+tr8oq+VfaV2J8pQD9S/uCh3EUwbygA2OnDnzoOmgERWc4fPad4LrM8756daHV
46/APAnmyESrYm2VJJa/7b9STZtrdPqLZGrK+PUw69vx8/yDd1BLAwQUAAIACAAwggZJDIIZjZEI
AAD7IAAAYAAcAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi13b3JrZXItcHJldHR5LWRpZmYuaHRtbFVUCQADDHCm
Vwxwpld1eAsAAQT1AQAABBQAAADtWmlv20gS/e5f0bDhMTAwSZ2ODluDxLJ3gMkcGM3xcdEkm2LH
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
BmPRUpG33XNjfDOlsw0wlh2jPJ+yLIZmrWXBlFFkhYWsD95bKvWiE6kYIe2mMRq0IdKQWWEzKa6n
tOjhfcqYPiFrfTs92W6hIgiJQsP4Zlat8XVa4ULSyGjFwLX+fVpHfLiVNPS6y0hWzr5y0BmK2l5k
h+b8w1rsE89pa3DVgtUSIMNSXSkaOU5oFk/Dcr+iYbtfk6clIkd6tUkxPuEZ4gIj0oRWWfq+IVw5
SdsEE8jlglGgExQuqpJro76baGobRQcptomBH3yxVg02g1xrsm+bLOu6Lazr+XxoI/EWO2ZF1WHQ
b9SvAhrsOgLgwYGu8reL3NCiPpX1nLXJJ+JjsWRSl6IyJ/FwwrrN10D2wB8pretG/bi6yWn8XD+t
dryTha6XZy7lByAIoWw0R+9TvNzj/aplb3sAbRUkncOrwZI4oLFpnaPrOT1zgJb/XUHnUZ5pWDHy
jK8B41K29Gxzg+GxOcMR3vcu2tfvmNfRMYQ9PJX5kus6cH/U95tLHf7+33ZidZ4RffSM6OQem+eJ
1XlidZ5YnSdW/4+J1cGmQ+epx3nqcUpTj8PL2x4dXqc1av4n42D9H/C9Xfq/372dEptXupCf5j5k
OtD34vdB4Oz24veB6xkn8Mr/RdvNWlKS1c4udl/mxNAxzUMOhM/vsuP/AFBLAwQUAAIACAABgQZJ
1rXrEvMEAAAuLQAARAAcAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tcGVuZGluZy12ZXJz
aW9uLWNoYW5nZXMtc2FtZS1zdGRlcnIudHh0VVQJAAPSbaZX0m2mV3V4CwABBPUBAAAEFAAAAO1a
S3PiOBC+c8pP0G2gaqbKD9k43AJMaqnaWmaXzN79kMEVI7Oyk2wu+9u3ZYOfko0T2JBaDjkgutWt
r7s/tZos5tMVYc+ETSbRjtD59A/y1xOJk5lNXRKGxBv8pAGsLObTuZ3Yjh0TmST6hm4Gi8+zn7eX
n0WUEjcJIjoLoziVU7Ey1rGpm7d4rGpK00ahM5m4Nf17Fm1nYUBowi3WdlPG2mC4tQM6QgLHO7Ya
lnYysWqORIcP6HP0SJY7wmy+0R31HphNYzvd9iHYEjYcXWE9D6xyF6IWxfuAAeBy3Y1NvZAcPucu
xOD8w4Ywgmz4UzHWDQNrWEEQJi+gax6UezATsVeICglJku9xiFmB90OUx08o2fKtwOPG0nCEhsrf
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
yyKnowg5Vbo4w8ZM00bGRtPd8Qxm4/Gw1z6x6WoLzWrxOQtIZV/4vnvktge/A3jgtdkPTEvDMgSH
mvF3tRiX7xHO37WETj7hgnCiwDmDPukPq+e0smQSZvEosttjMbv2qke8I85uZe9bHSob/cmPkLIj
Yt0C5C8bjkgVecVpqSqrvjeZVyZIykFd9vC0GNN0fZ8RdLUgY80wZsZoNrFaHdLm7w0GGbh2EDjo
a8PFCdqc16VFUs9qZQuu1AmJwHg/7jKUN8FNZENlTB3PXEyxi+YiaijlnJMg6Blev/3wwyhc0SKM
8AXpfyEsGSRhMprCSDNNS30uuYurNurgyd8SLfpUb9CS3HmoXNFnuiFVkt+aqDVYVjtO3J6XOpEB
cjxLK6LwTsSZsJ8dTzZnFH9zlKL5J9bsjjsddzrudNzpuNNxp+NOx52OOx13Ou503PnvuBNf08/3
PGRcxp61XOJN/DlZbGJQ0beaUXUqBEHl/WQupGaSEIf87tdNntNrJYQhwan89Yp86n/qpaLxZanj
J9eSJGAH4AkU4/+MtKlH9rvdaaQVCtfnL74dEhVZLrwt5CwZuboKIfoFojsI90Ek3CMnpLsYajNj
LqMY+j0s9zS94B5ELDVVhRqWBcQnXBK9BZVNAK7Yr3+hzmRRVg6SkpwazKuCsKSCtrV8gufqretq
B9KVMp9lgQ6qHVQ7qHZQ7aDaQbWDagfVDqodVDuolqB6ge9O0o/jC1E++EEwr3wT31d+D1r9NU3Z
UhixXfY9k/h9VDJ6+iTJGJuaVfqqJ/5styRkTLSi0NZ+dSD5mcjqmI3yjJEuTbjk9zVnrvhfUEsD
BBQAAgAIAAWBBklWQXTQMgUAAEctAAA4ABwAc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3Jk
ZXItZGF0ZS1wcml2YXRlLXN0ZGVyci50eHRVVAkAA9ltplfZbaZXdXgLAAEE9QEAAAQUAAAA7VpL
c+I4EL5z4if4CFWbKhubR7glZrJF7e6QDZm9C7tJPDEWK5swuexvX/ktWQ9DQmoO40OqYutr9evr
lmS0XNyugbwCmc/xHqLF7QP8e4A4cVHkQRiC3/sWBfTNcnG7QAnaoBhUSOPK6PcGOxREQ0Mi5OEo
Ai8JcOSGOAb/juCdGwYQJamgMbAcc2o7E3ty7UxGjjnUTIU2mCSPBEUxyibMNC9rT/wC6TZUUhyj
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
O8dfbAOpLj9LTkrJ0/qZeSH+FeMQh8fUA8c1AIbwtmH8PDZycYpxetUSmDzPBaH5AZ1eF3Ub+pCq
JHez2DWtNwBm12FYU93F2Z1s/mN9UXU/rS1S0wHkky0tUk1e0S3VZdUviSY1BUmeN90eNNdZmi4e
9gk6n6KBYdtj2xwP3aOatMm5zkC9wItjH/baV0MxrDlpuhYJ9jXKlrbSJCQGxvlxt4/ytnATs6E2
pvZnIaaoooWIOpSKnJNE0Ct+v/0WJWkyJ+UwggnU/YIoH0QJH83DyHAcV92X3GeoDTYY/y2xYo2s
Fiv8FZFqK9bYsqVGipdMaguue1xO3J12dWIGyONZiojCnBhnQj3bdTYngL9j5tFcwuyMtgIVSyiT
ofZCLvGh/Dms2JZB5b01jKqvQhBU1utCSJ1Jgh8KLhTw5xxmIQwRqEIviD51P3Vy0Yw8+BEv0yim
W8x4KGbNOdR6tIHGpxg5KgoXpx/+uEhU3HJptnRnfAQYG05/wuk9TjZxKvAqnnQXi9rqaxtlEWiS
+D9wntrB2lKo0RPySXVM1eUVIVuXVafXtKagLA7l22uoLyaAu9rEE9kkOLyJqT+L4l21SY7Kwum5
jjuFH02brlD5Cq2FH01VQaR5ueblmpdrXq55ueblmpdrXq55ueblmpdrXq55ueblmpdrXq55uebl
mpdrXq55ueblmpdrXq55ueblmpdrXq55ueblmpcfEbWX+iCwTNG3URxPah/ldZUfpNQ/Ej1ZWvyv
bbou/de8PXAMt9JHZB8TVYTsoVEWWnnvPubfEs93V1TVMC3p/Us+0665cLfbbucvUEsDBBQAAgAI
AAqBBkk48ozF6wYAABNaAABBABwAc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1pbnRyaW5zaWMt
cHJvcGVydGllcy1wcml2YXRlLXN0ZGVyci50eHRVVAkAA+RtplfkbaZXdXgLAAEE9QEAAAQUAAAA
7VzNU+M2FL9z4k/wMZnZnXFiJzHcwFnaTNsNBbZ3x1ZAXUdKZQeWS//2Sv6KZH3YgdClXR2YwdZ7
etJ7v/clx17ML28BeQTk/BxvAZpf3oC/diDLwwjFIE1BcvIFQXpnMb+cR3m0ijKgo3Q+OqcniyPP
N9hEEA0dBVOMEQJxDjEKU5yB5IrgTZhCgHLG6AxGvjvz/Kk3PfOnY98dGqaKVpjkdyRCWVRM2N5J
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
XNwGnqCwFft19ZUMaEy2BC6zUXQbWzdWdOOUJwOTiZcWYuJ+y6XAyxTbxRu9EMzSUj2v6aamnnJH
zcsKFgwaucGAMHPVQw7NOrzcBGEL2Ldu0prk57bv7zhS8wp1JGGczRJjjvd0l9sYwsrZL3NKel4b
nnTQiQVxYx8hKySQ39G0FYuCsAYU5kpQ1aXjJJdf+PEZSCwucYKz1/6QIMdxGkzHM/4tNf+/Y3Tz
nSzds7K7umwD54laVyg4BeHG9THOvyRpgrjn3kVRmwUTHMKKx+JoVjxjrpqsigc+jhygtSb3f37X
2Xy2wlpRF4hiPc1UWs6iAnGn2H56v9GJ6fuq5nyJac3CRvD8l58tzc5lq+I+t6c/irvLRuvymzle
3KzhCnLVq64PHN6oAeFU7Lvkbrmlg0tpGs1ZnfNcJ5B8T2trK+i9rzEmDltBJngmU5CIM6/YYYWP
pT8d63aY/j/8QLLGhUTU0VtRZ2qLFLCDMPmeR3KAZgpR56rGFWI5ThcJpmnyJBx8+xHsJ3DQ6rRx
+BXFXJBRxmniv3Ei9afO/MV6kGv4Rlq71JfbfriiT2/81LvlNW/UHJ0E1KOb4+GgR/uvT5SxzE+Z
nzI/ZX7K/JT5KfNT5qfMT5mfMj9lfsr8lPn54+Rn+aiiLUOrDzUYo2JvUoTC27yCSJyp1AOUt/s6
xbq/8d3AtOY/QKrMVmKWjiwWEcQ/Q/wJooMXU99CTWvE2YCXK7MDH11/gBtMy+wb1nGQqWpCDbMZ
8Qkcu74KvRWRbQBu6GdPiCNZpeWDpEYnBvOqQswpfF01l/Bcfa1d3UC6EsazTiChKqEqoSqhKqEq
oSqhKqEqoSqhKqFag+pZv1UoLwfk5YAsuLLgyoIroSqhKqEqoSqhKqEqoSqhKqEqofrjQVX+/l3+
/l3+/l3+/r319++V2SgO9vkvzumXoKWjZVC1qa6YtVd3Je/mrBFphlIl2lmvG0hf67s6ZnmdY6Jy
Y855VbHQBu77L5sv++1H/S9QSwMEFAACAAgAC4EGSYMfunjTAAAAQAIAAC0AHABzdG9yYWdlL2lu
ZGV4ZWRkYi9rZXlyYW5nZS1wcml2YXRlLXN0ZGVyci50eHRVVAkAA+VtplflbaZXdXgLAAEE9QEA
AAQUAAAArdC/DoIwEAbwnclHYGwHk4JYIptATJhM/PMAJxxJI1yxoHHy2QUXCaAurpfer999SRzu
0dzQBEEGDZygxkgTYdooTVGha8zsue14wl94ciFXnu+4wjqSulwxicN4tBME6WB/Y3QZFQqpaaXZ
QBO+a7ESFHF7hP6kWE+SniO5NWEouukzbis00EFryg4GqIYXe1AlGsat5F2DrpDicIetUzcRUIpF
gdmUPP2yS/Z373NF+sthG2Xan3pZ0q7FETKV5TGaMW4zcffzPF9KAehIwdtgT1BLAwQUAAIACAAL
gQZJBrbI1fgHAACdgAAAOgAcAHN0b3JhZ2UvaW5kZXhlZGRiL2xhenktaW5kZXgtcG9wdWxhdGlv
bi1wcml2YXRlLXN0ZGVyci50eHRVVAkAA+ZtplfmbaZXdXgLAAEE9QEAAAQUAAAA7V1Lc6M4EL7n
lJ/A0a7aVGGDMcnNsZNa19aOU0lm9iyDnLCDwQskmbnsbx8JDBboAfiR2Jk+TFWAbj1a3a1Wfy3P
dHJ9i5wkjH5eXbnYxwmeoATNUYy1C+38bDq5HodBgJ3EC4PH8AFHrziSUSq+fg28/14wocnfXl1x
rzpdraP/GC4Wi4Glo4Xh6l3C2VkiL+hqggaeUeD6eJJ2Vk+2fp6tcIToZGIyrsdnHGENkX890zQG
A9s2+toKB64XPJ21a+ouXK2wq6FAC/PXf2hB+KYlqj7qRj1+iSIcJEVPCgZCsgij5Zojk0rBl65B
x50LObPlukbOdzKkB6IKKmm6njvh6ZnFd/wwxhyjSJr/12lAz0o1QKaD+UiKPgghmXEwub7HpN04
ubqKsj/G4XJFKV0BSRiUW3l4cRwcx2QoF5qTCVMj/cVUil5MFlEfGqZlWJemNTBN2mDRlOvFK5Q4
zzevlImInJ0NNuZ6l5IX5kYUJZBNjn5jDUjrnBPZmFZfNwbDvml3WZGzxFtZGk7lLOBkW94Mc1/G
ZtqHNzamj4MZG9WojamVJGuQNZfZHRUua0WUs2eYzpwsMWVT2eCswrufJbGG1keKC897ynnHCYqS
b5ktjskgnvBjhIIYZUrJMWwUlnilCKMEy3hTC7tgbZsIoy9duDl+8gKGfVpeCgGHF7yG3zeyHwUu
w/7oLXHU6Z79jZfELxA+tjW+N4WAQkUHt15E/N9e1MTsm3qhJnLvPGPdUjPfvBkO80BGMKbLR3rT
3PzdufbmJc+FZ2bdct+2NacYkrZxmlTXjEtd7xkLve8MLvHlYNA9a65i2V7EvEiHWdEj4RbzdfUU
IRd/wdjFbpOtxbR14tHwm+D9FlvOZn6ZHczm/xLhZE7ngmwt2nmXmxlHmU5s85hTTAMX/xBIhvnK
fSv0dKOZpXGbjt5gQLMgUzaZCgpnIP/I2USNOOSmJKCVeJLcMXIMEl8gWj7kUjvUZg+5TUwn2qBn
60Oi6ENr3RLbTGlehPsLfmNaLByRiuXmhxdTe+SHXNKQt8hLWN4Hal1KL0Tcxp1MJi0XSOs4yPfn
ZBZd9d5A+hyLVEXi1oS0paGIiFhl3ZctpMbVzAoKOxS9biLYjLJO59dUTbQ9I1XqOUsi8zzN9Dsl
baXZdfOtKmpLSbZXzmIFlWop9rflz3tWxXC59JLyLvPm+f44fa/ePXfosFbtq92XlJ/7WLNw2RwV
2s9NVnXgzu1AyCSzCAWxVJ8zpkLvlb751gu8+LmpcxaOpokQWym+qJdynG7aRn/rgFthTCLt4UxK
oPnCUZ9LaGbRaB5GNTay8OjmkUfJxxf8V6TChKOCSJhOZp1gGS0SHJUi7fFaW/MoeusgN1Gsmzhg
L5GQPtHcJ8ZQ52MKwoqiCEdCuhq5Ls1akMdXrCVqz6iIu1cvVHNcl2Nan6jumO9bM0oMI/MSf1J1
IesvPYszvlYoJKXlizh4y7cu+7bI8nFA3rzgWt/U3Ee0nr64w4pzUzTFT5bE8rbaMSua22Xuu2/X
jZiOy6vJW0xtF5X2zT0lf2pihVFtx02zRx94uDuutdxEM6ODrao6IiIjyLueNs3mHleKL13zmjAp
peEioCrnvk4H+R5Xt3ezeyH3Tr1sBZki4V2QqM262HEl1ptBc/epFxeYYLPP2AkjaQ/E3ksEpQaq
H9PjIxl8FL56dH9BPplA+vIv/LORqd21EzF7WpBr4Z0srmG+sfrAJGbXwWiLcNPs6V1QVVDVd1fV
mygKo10VFdED54SEx+Et8nzsrtsS0/FJnQbn1a1MIe0unzfZ2cYocLC/HlwskyeqjIY1EO6behWz
+SoCv+rEG+R3RiIemW7LaeWhGuURJ3dE5pQZREQeXvFNkEQejv/xkudvyH/B1CYaGFVdH82Zd8o+
CQXbYH3b5J5EfVRST4ZhHSD1NBIoNRc18tYpGvIe8k6jGrs4yqQTk5elxUilZTOMHlm2EtES/Zzj
MaWcrj1QhUO3bemCcdqTNuQeptBH1lslWdDr6zXVEBX+2yhcjn0v30UqqYdhX5n5VjbVKYHXPau7
j0RMXb0TVC3to2rpGMpwBpaxdRlO04TIbuU6B0ykQGXNe1fWHN0+tzUEkgVnyiIFEcURFAq9P9Sx
+/GFk2XdkV4ofPnHmjQiR68Ionla9SFmwjEoz/81ri4jal5bMdlVFG1C/oloUZSV5zVFQBOVWkBB
HBTEQUEcFMRBQdwnK4iDtD6k9QGBAlUFBAoQqN8KgeKazLAmxkhuw3LFZ4YunCJ+lWIG90Q1yFN2
zHOlwZkU6wJcjC+DO5HCp8OhdDVolGkRH7YNGtUCB2wxGFPXlcihuAQ83UiEBeA0YU2eN0XgAH11
6wHPD/sFgt2qxI/O2AFgBIDxeO75b331AJDJz3jn/9RvVXwaOPNdQMmP/KUFgDMBzgQ4E+BMgDM/
Cs6ExPxBEvOAD4EaghqenBpCcUe1BSW0uC/48fPUcQDmCJjjNpgjgIlwyQ7gu63huxO7NniiKBqA
pHA/EOC7w90PPHi27N1/mgzgO4DvAL47LAoHtxEBvgP4DuA7gO8AvgPcBHATwE1OBDeBi7NwcRZu
I8JtREAGARmE24hwGxFuIwKcCbcRD3gb8ZPdIZSiwLlcsr3cl1+jklOX5E68/Ur4/xexH/bUPou2
pG+Zn8cdmLpd+6u7AyPzE81/dXdg9Pof3HU74f2eMjqo5v0CUEsDBBQAAgAIAAuBBkl7jE4kNggA
ANR/AAAyABwAc3RvcmFnZS9pbmRleGVkZGIvbGF6eS1pbmRleC1wb3B1bGF0aW9uLXN0ZGVyci50
eHRVVAkAA+ZtplfmbaZXdXgLAAEE9QEAAAQUAAAA7V3db6M4EJfusU/5E6x9uUTaSgQIJX1Lk60u
utOlt+3eOwGn5UogB6Tdfbm//QYIhA/bQJI2SXekrbaBmbE9Xx77Z6fTyc099V+of31t2dat7drB
02+Gazm2+/g39QPbc8dPhvtIH3zDDQwzhAfkknQupltGb0Xdyc1X+u+aBuHYcE3qONS6+Oba8ATo
JkZozI2A8ihR3mHk5UwUk/pG9OuDvaT+re0DXVf6frVYLAaaZFDVlHoR0y0weP4PMD91aEjTtlKZ
Y891aSzywcschUkpeMsYSeVRt5fv3kKxpB5wdpeG7fYIQ8BT5KR0EjdWT7b5PEuVEkC/Hp6oT4kB
P31VVQYDXVdkAgq2wPUv2om681Yr0K/hkkztn4nrvZJQ1EZdr8dr36dumLUkYACShecvNxyJVjK+
2AZda87kTMx1Y5jP0KV7cAV6cf/XH3YYUeWfXl8/0nDmfwmA0YEkkUqYugsPGrBSe3d47NWGSPwI
PpGF7VDya+dXAp217OBZMFLIUpNql3P+ZzpeQCuMLIP+V+eEfS12Ql4YpD3J2gDCWT5Cr6/9Tah6
y1VEaTFIPLco5X5tmjQIoCuXxEzsSV6STEzsAPxIulJUTdGGqjZQ1UhgJgpUtzJC8+nLS8QEVi9E
vDIvRXyUTXiDizNNLoZJtwO6UTVZUgZXsqr3KglMoOjaYKexnnkJb/Np281Dxbuqv32859p4s3iP
PGob7QXNKmBzXuhHyi3EI3D2ZVOazwdXwLZnGhCG8KzU9GEsql1px9Q2nfcjbXPFgM78kFdUVT1w
6++Q1HxqhFRUkMFPLjWAMmSu3ef00XZz7NOiKRgctvviPW91P3KtHHtcYHS5/lJuTVhZJJ7RMqFu
+5n7AM2MI6VF08vWK8mrHT5l6TSfS2VdJ2bWJbLNdJGFlaEk9ZWFJJuDIR0OBr2L5oZl1GbFz6lC
KvPCt9Wjb1j0T0otajWZD1RdgjREXxnPBW7pCcwa142HCU5VVqUsONvPWts2k1iYzf8BUyV56xJm
J9LpVfRcoYzVvP2YUkxdi35n2Cn3duf6WtyhmZu4Pi8gmCPgv6xYqEYdfMMyaDnZJE2OFQZOPmCZ
z7AiryCz+zRCpxMykBRlqPSHmi6eSu547bdUBumahuPMoa89cS6GNscss3ASGpO20BUWUd4xDuV3
sSM387jM51mPmyg2oazzrw1VE89KSIU+lYTxJckbdeNFmgSZMXm/fXKRTRCQVwPPT1wPmiDQEyiQ
yafOp4tx8goy6tyOcxdxvFfqk2f6I16xQAIka6gGsyctvLWlOtt7aGZGoW+yE1zx9YH90Vsu7bCY
1l9txxnHz8WT5x4N1vp+uflCBFRe1hguGaMgBCqDFa3T02BgMvHCQkzcrrs552WKbaKNVh7MaqVY
5aq6Iu9crgqiguUGldhguDCz1x0OzcwfzT2/xtkXdjQVpNXu6RVxJa3kCjlGRRsNZrO7MVqE1C9U
zIlS4iq3s1d5GArsxi68CyQ0XdnWJYuMsOQozJ5AUyPLirYM4OMLJaE4xQkq1tU68hzLqjBtVkZ3
ufc7M3ICoxk8kE+aTCUJI5/FUY18bSjrrMinLjxZ09rc1DxH7IaO1CU3gajqYK8kqaYGFojbZ+z7
z7uNmE4rq/ElxrELBdHht05qJv1RbcNt9l7ORd3bgmP0ZooXFy3Qg7TpadPtyiNNxJyMfR/tTNVU
MjFNpUgpcx6qEk+nobrpNT9dVZ6JzZaRCXZ0MxJx5GWTohDU+rrJ2378f+czSSZwEuSWoJJ8JddI
oabnR2ButJBkCpGHssIVYlhWEwm6rvMkrF3ziZrP1IJRx4u+30HMJekmnDr860VSf2nMn/UHuDqN
Iv2unYXz6wl+ENzxKp/cu7w75rZgN+Vqi4JU7Us9jBSMlCRSztHnv/i+5+/r8Ua0tp1AJe7dGrZD
rY0sNl11I6jB0ninmIqbS8cNM3RyhmbTuYCnT6PUm3ykVd6JrZiMV1BjlgfeYE9oxOLh+T5TfpMa
jMXYYKxttnxYbZR2fBRF273KPpOibcRwt0pdWo0blgIPsPmUtSTe68nta0YHcApmU5Q+mK1AtDR+
zOk4opxuorHEIUH25amo4j2xIOttDrfwWiut0fuyVAPhl/hvfW85duw0o5ZW/DAFinaOhaK6Bey3
r/UOsf9Rd8YHT+oc4qTOKZwdGWgKnh3BsyMf8uxIsn4QgvEsihM4fPL+IMD+1XZFl3VLWaby+S9r
du8q9II6t0orrrknFQbhirXoMIxFbx/WjWIR39w1TPU3jje/hQVVsoANGpXuk30V16aGn7BMKDw+
XXM0ZiJyIjyShUey8EgWHsnCI1m424y7zYjLIC6DkYK4DOIyiMsgLnNGuEwNGqJqEDm7oCEtkJ8W
nVElqQ4rYpz8jdMX89xvtBsLn7dnfxF66dUDbke79b3f4eB9gv1NbvnT7S1/vM9+FijZzqeyj3MR
/sBnovH2/Enfnm+DZH70ggnx2LfBYz8MAvouOOYxL/wjAooIKCKgiIAiAor76Ke4j47YD/os+uzH
9lk8afKOJ012ASaVviSre0H4+7b6c52PQQwUMdBTw0ARdTwu6nhm36x0puAfYrt4rQ6v1Z0mqDTd
4y+BIP7z3vjPuX/LFkJY73P7DyEshLAQwkIICyEshLAQDkA4AOGAnwAOwOuumLnxEh9e4kMACwEs
vMSHcBpe4vsgl/g+7tU7LiBZ/bvYZaVCXbFi/imX/Iv8Bn/8NPddowNV0mu/wnSgJNHb/CtMB0pf
Fvap3ZiPOIJ2HT2QKY843rNRNVt5/wNQSwMEFAACAAgADIEGSc3TirB1BgAA9lkAADUAHABzdG9y
YWdlL2luZGV4ZWRkYi9sYXp5LWluZGV4LXR5cGVzLXByaXZhdGUtc3RkZXJyLnR4dFVUCQAD522m
V+dtpld1eAsAAQT1AQAABBQAAADtXEtv6jgU3t9Vf0KWIE2lQAKk7Fq47aDRlKrtvbN2EgOZGxwm
CaXd3N8+x3nhJLYTWqpS1YtKxf6OfXz8nQcW9mx69YDDJxyOx67nXnvEi1Z/IuL6Hln+xGHkBWSy
QmSJH0NEIuTE0KCda2ffZnvBYIPJ9Ooe/7fFUTxBxMG+j91TQjDKJ7AQ0X8fvTUOr70Qu1pHfx4t
FovBUEfYdPQuFboGgSB8AcNgH8d4imJkowjnq58EhOBkyMegMCEXKen9QTzQFjB563hca+p0WfUW
hqt3QbKzRh7papwBVnT78DSZrBmWfZ7nRolAr8cVDrGG4K9nmsZgYFlGXwPjukCKb4cNdRdsNmBf
RLTC7H9oJNhpsWyOJq0n2zDEJC5mkggAZBGE60witUohl+xBx7W5kul2XSHnF6j0AFSQWROcZ1rH
M5vv+EGEa4I8a/5uYkBvmDBAxMFck2IOAM5Z1xiPw8xHgvWGIl0OJCDlUR62joOjCFQ515zUmNpT
GiA0L4JN1EeGOTSGF+ZwYJp0wGIo14s2KHZW35+oEJi85G6GXXE36saixSUuzjiQ1jkD25jDvm4M
Rn3T6tbigcTQjZ6GEztzJNmR92oey9lM6/2djZnj3ZyNMmrvaiXLGrDnIr+jxmW9iEr2DNOxYYup
mMwH5xXZ42zJcDT8SHNhuydddxSjMBYl6zqF9oSFqBRiFGNZooc/xrfBGH0eKT3yFPzaG/GSuMww
SZ7tiDfcxkuPMPhZeQv/xmuICyDBttalJAYKJHol+f84NDH7pl7QRByd52xYaheb9+owH0CDCd0+
mE1z87YzbefFqyIys2G5b1maU6ik7YMm5Zpxoes9Y6H3ncEFvhgMut/aUyzNRaUaq/w5L4RqKebH
ZhkiF99i7GK3TWoxLR0iGt5x2l+RcvbrS/1gbv8LxkmDzjmkFu2sW1tZDZksbP8xR8yIi585lmF6
a5KbbTwPL916yZpx4o7pV4JK8GsJHuRXr/rGJ3f0OUmDuCi0cyODuLOWaxrCjDhFcbCCTJsXHDUB
QY7lhUXk0vymzR/yXDObaoOepY8ggYyG2UjsMKV1gfQt3jEjQl3QLPL92YtonqurXGLILvRiVvaB
Zi1pdod0fCeyyYEbpHUc5Ps2rKIrr7lgzgmPKoJygYstqcIDsWQ9li8kztXOCwo/5DW3MWyKbOJ8
hmrD9hQq5TkLEUWedvxOoAcxu2m9VaIeaMnDyVnsoJSW/Hhb7j4uFfP00cRDNs3U2uR2K2CSb24F
RM69IpkJiLfEhNoA/4VfbrdrG5YjAKaHUfe08uYxtF03doJQqAqQsQQoDVDtTDYWVhkGTx6t05EP
K00aYSWtaHx32F6wBBaT8k5UWzB9LHGYryLZ+dYB3yLMHoeeitOK04rTitOK04rTitOK04rTitOK
04rTitOK04rTitOK04rTitOK04rT78RpxVfFVxWDFacVpxWnFacVpxWnFacVpxWnFacVpxWn1c8/
j/LzTzm9FOYzYtRPej/qJ71OsF57cflC1s7z/UnSLr9o9oYJG0NZdfpSQKt1NmxcukZJRKstVnY3
PY9tXCFRlJOAhXxOhQreS69bpK9HtL1vwdWmjREPIj5vlvKVVtMyXn+lVeJMPPbUXIrDfK7WZwIM
VAx2EDb4yMKj90HyC6Wnd0+2YhWmpuFcGqWLyWqhy0WMw9Kl1EnG1vzC6avvg8aSfePfbS1BYE5k
++AMTTGmAFaIwtUEpoL6kF7wh49PWIvlkVFyRdXLY3yWGJ1gmxqbdyFvQju1To7uHn80gQu1e42G
jcpcc0pjBE+iHiOGF32LFyMwgZYtboxi7aPJ6x7jaQqDkqHqix3puiUP4ZLh3rL2tyf2VkKnFf/E
IyZejkoZtvIywrEfYsiqisvGiT/nkwxtypLLdzO6vLQBDfKpZ21fMDmtZy2Sy7YN9U6CqZUyVclj
lflLnGabpiSc49j4W7TJt62AiS29h8i97ibHCY/iSv3lEwracR2E8G2WPWNj8zHbm7T/RP4WZ/J+
sINECP3/ePEqPUibkfs8PSj8B+PbBK6bwwjb7rzyhvGMqi/fcLzrRM4rleMrx1eO/wUdX50kfoKT
xK9zOvhZSvfTPatsPB0UPhLKfQf4MHRp5igONvlZH/suXtK6J4wxMHWr8rYcffm1AjKGehm0Ri82
nlDkLAsmVYleX7iDNXYnA0nW8D9QSwMEFAACAAgADIEGSXqFr+loBwAAYWQAAC0AHABzdG9yYWdl
L2luZGV4ZWRkYi9sYXp5LWluZGV4LXR5cGVzLXN0ZGVyci50eHRVVAkAA+dtplfnbaZXdXgLAAEE
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
XTuhF4jD96ILiez8/VrEQnPkZ2jMxiNjao1MTU6T54cP2aR8kc1E8Xc5KyIQaVHHYc6O430fFfPX
WFJxtqHHtUP9gdbX/zddrVZjYzRbGp4+kJGdl5w39iYjY47M4aQYmcuq+hZtt9KvE2rFLP6ohdGL
lqra6Oq1/RTHUmDRkiJAFllF8WYfsRuVIi6fg763bIzcTddnx32UXbqTFMTV3b//6adZqfLR+fxB
pIv4p0QGBn6yPtRwG64i2cBhTcuWWsLrDWn5IflNW/mB0H7o/aDJznp+8qi4Us/3bupdLvlzswVc
C2ya0N+6EA4nOcK2ZXDoSdGGLLgoZ8D5PN6nwmizzUp6DUWisFrL3ZPriiSRXfmkubv51GR7STaR
flLJacORlVVYVCWHbuuk7vqn5yJxHa/GMZYyb5VXfJat2y4uz+SlNaz1e3JszMnEmo5G1nAyqN0g
FAPdudhFPs5tN5Ra6n+r9W6M3n+9l9p4t/WeiTqu9srIGnLO25Z+NriV9Sgjh6PZWDfGUxn2O9OA
cgkvTpp+mxmVHf8zR9tZDnXVHV6OWZz+ulvKtuzEgyjd5zt+6sTCSUVbbO3nzmg6NCat874UD35Y
Cr+tTsVrf9q0eDltTfnLYifjwoR67Gfpi2zGzgYtu70cVWovfrou0mlpwGYyr2nHX4HaMdNlM+x4
uj4buvp4vFzqK7HLo2dO7O5qSwfybjYMSO2+8Mv2IXY88S8hPOGdcz/QJ6ZMQ+Kl4fjH++F54V2r
9Fs9XwuL5X/kVO3y1id5d9J6g9o410rmw3z8Klf2k0xm155XC907+1Y6TyCBBBJIIIEEEkgggQQS
SCCBBBJIIIEEEkgggQQS+EECK+eLvZ7j7k5lt8V09TO2URbhbsOubRuvcd+l/WRtX6ljE0fxZ1z1
si17oIct3VpAyy5m06aT42V7Wdri7rCveHujmTPL0q3Z2JioN8C/tbV/4WBofdcJgqXs60C9gyzb
tJumpWUbtrFspStNhcowfr+7g/IubuXVUDumHs+imGLzvyiiplSsOeXfP/2c7Q5LO3H+f+9HLcpH
T0vyydzpmVqm3lGLcKM4+3vJR/G9pZKJpbdWIuGeUcPUHJ+H+NtlY10m2w6wNYWVzpVhlPbN939B
dcEmszls4IdZzGIWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jFLGYxi1nMYhaz
mMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jF
LGYxi1nMYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxm
MYtZzGIWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jFLGYxi1nMYhazmMUsZjGL
WcxiFrOYxSxmMYtZzGIWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jFLGYxi1nM
YhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIW
s5jFLGYxi1nMYhazmMUsZjGLWcxiFrOYxSxmMYtZzGIWs5jFLGYxi1nMYhazmMUsZjGLWcxiFrOY
xSxmMYtZzGIWs5jFLGYxi9m/mVk32mz89KoyUi9+ENj58VJRrfeWDXYtEfe0+fJaqZ9UT+T+Gttp
1CrMBrxr/diNQS2CXXXhy7p7lNzch3NGo4y6Vv44I3ljja3Iz9DUp4Y5tqzJyDKHk6uGrvrhc/Qo
Fgco16FXqiZn01ctKruJwenqshsIN/a611JGrs1lFHdgX0nei1AGbLOEppidSHGx+RpRxK6d0AvE
4XsxbIkc7Pu1kJnOkZ+hMRuPjKk1MrWtCD2JrGFUStmjetWpYjCr33NLp0VkcnKWgZ+su1ZwUfBk
9hp7IpuS6VGmj+zrs9BSdd7Jc3++srJzi+PX+fxBpLXy8S6pfhXp7i5CEEEEEUQQQQQRRBBBBBH0
bkHyMa30aid7kty/8rlepSL+VcSJjLXX2Su23RNpf3B4+FI+Tikf3Jsiag/uhj4ejpoe3EUojzyJ
zlcL5z/iv+rV0Znvw4ylrnqN8MUP5Tj8I3u4lk/LlfEuD+fHeqZvrzF/SHbSct9vw/L7pldPU8cr
r+vOhktizx531XuzpXjww06EJ++rFM02LYDZSP2uTVHdH7se/io+j+8nr99Nqvodp+zBoek60JYk
cZc6cderxrxM7S3iaWT27vhDvx581Yv7h8MtrevN30P53lc/qJ65Y7n2YSiVUeer4124Jb0UNe03
llS7XJY1O2976eull3reBlPlJ8UpzK9Nk1PcPJPsbPIUpLLCNH5y0yc543YQheID7UThC1/4whe+
8IUvfOELX/jCF77whS984Qtf+MIXvvCFL3zhC1/4whe+8IUvfOELX/jCF77whS984Qtf+MIXvvCF
L3zhC1/4whe+8IUvfOELX/jCF77w9Tf3BRzgAAc43NHwhS984Qtf+OKHFXBITPjCF3CAQ2LCF4kJ
OCQmfOELX/jCF77whS984Qtf+MIXvvCFL3zhC1/4whe+8IUvfOELX/jCF77whS984Qtf+MIXvvCF
L3zhC1/4whe+8IUvfOELX/jCF77+Kr7caLPx06vKoL74QWDnx0tFtd5bNtil2T1tvqy6flI95ftr
bFdUqzAb8C7mdmNQC3lXXfiy7h7RN/fhnNEo66+VP85I3lhjK/IzNPWpYY4tazKyzOHkqqGrfvgc
PYrFAcp16JWqydn0B4orjRSBuTdF7NoJvUAcvhddSGTH79dCJhhHfobGbDwyptbI1LYi9OSEKXKB
3YTyNCfYDQuqcQx7LWUW8fUyijuW3kpe/CKUAdtApKKhH6XsUW1HJtdtZe6G1mw2qpZxgygRp4VM
s1po43xfCjsrebtfzCcRWeZuG8watLwir628dBAWydF2QlcEwWtKVwZpPxK99hP/B1BLAwQUAAIA
CADlgAZJ3h3F7UUFAAA2HQAANgAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9oYW5kbGUtdXNl
ci1kZWxldGUtc3RkZXJyLnR4dFVUCQADnm2mV55tpld1eAsAAQT1AQAABBQAAADtWUtvqzgU3mfV
n+DdTaRbiTckuzZpryJdTTp9zKwNOClTYmcMaaeb+e1zgAAGbEjaVHczlao25rx8zne+Y5zl4vqB
8FfCZ7MQp9jHCZkzSkmQRozOY5aQEF0i3dJc07I9zzE1V7NGTzT6e0+Wi+tFR2c2C1r6t5xt53FE
aAqWLlrWHNsZjbc4ohPUMTpoaixagp/JSGIjoq/shax2hOPM0BUNHzmmCc7NPkZbwseT0bJOA9sR
uri+J2AnSeeYBiSOSSizLJfMIju7PXWKWM/GbiMOnoRYgiyLHSOyWP7trI0naKz9467Xa9s0plh3
tEmx0VvwyPg7AIjEJCWlfJmHGhqPrIKaVLLnqSTCgQB9M8wDVGfuGdMwJovc2bDY4XOFowTienwm
nCAMv7o5tQ3LsHQHQRHDiG5Gp5m6Y7sd1BpTVBX0O6LsDaV9Poainu85h2apPPUogMia8e1Bo8hK
pVdgMPSlmkW5rnHwAiE9ABTI6OH3n1GaSYmrs9mGpCt+k4BiHCXPpYUlXTNwUNIPeFKodx2hfAk+
oXUUE/Tt4huCYMMoeenZaRiFi27IX9Ilft0l0jYoI6l8gOBKZIHZjB/ogG13mWQoEWG0aeVhHwQk
SSCUSxQU9UTgL8kKGSUN+tUNLzNYmYLU7XAaPN+8Vhwr9Lzpa5NGx2eMpdpczmZCD6PxBeTGchzP
NQxPd7qk25PowWYneZ5VpNqZUufqd9P4+n4XfHxZv2eIqru9kVkTaq5q/Sy5jX4ETd2Y2pppu6D2
SRrobeFVy/V5KgqB/8psY1/Psq00Aznj6R9FK88hiA0RRv7AqYwTnBKVbudkZri66Sjr7pNNRAX1
ZbMUHz2FKfDS9tZ7siiQcSKh1nEKH8DNPEtaNl5qVKK3KH2u6FRI2BR4DdUHVlQzXVZhHGraVA80
2/Z9bU0KHj2ysMVuhYU8TElCOnPhabfhOCS/ERKS8Jh5oDkW0BB5k6x/6gx6juY0Xc+wquY8fWoJ
rxV5L6z8v6BUBW9dwnRCF5NOnjuSeZrrj9DZeyCzqzDsqB5wdic8bygCC6p0fpD0ngSMf1ypIVCV
py5II0FWoB2x8xUtekzVedJUqR92oDCQ956XxK6sgrZKFu4oKIhHhhMcZvBDq4eSCpYLZE09T/Om
tun0z6w7lf8Tk4HGAY5jH2Kd9JM++JzLyqJgTqlsIxSZkAiMz+Ou7KchuIl911nrz2cl1jOvK5F+
KFXd3fvKcp8ROmCH538vviOWZw8leTEL9LiepQ1YybsbzLyQd4URx9OURgC4R1hwLfs4EN+dlmsR
smoA3qnIVHgmAkMYdYeXnhPmgqVL4PchzG5K6h0C7Ubk6O5ifyprOXV9BJl+4NbTQn1Ib8ClD7ue
Nz0OND9O3epxsFGPPvGhFDhJ9jTZxykYTPk+SPdQ8XnMKDkbvn7RAP8flABK2ZvIdkvCCEZYfqV8
y/hTQnhxgZKd+Itr12zEj/NTp+GCre9I/N90Tde2bUODZcv0TMNwbGeCSqQmAynDPuPpn3B0YPt0
ftDpyV4u3j7sDyTySqbzgZZTjZKjzMuv7wuAta/vddtp3QgpLuEGNv5EwWcYZS5xvDj6YvJ8N4sd
ojtGWlquL6E7Rm84Z7zvDJh3RVWoUTvk1vPW1zmmbYwUECi9/GRJ2tKCn+77Ry92PrXzhuI6yk6w
eQWUbzaMgtR2IU3OicPgM2eThkq7MKI1obEMR7es5jc3FjnXuQfodldWQ7zLyFeF5vamU+NI5bzt
29qW1RTa4ne/oO8llcBQz6m/71q6+3XcadL/AVBLAwQUAAIACADlgAZJYMltzB8GAADDNAAAUgAc
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJkYXRhYmFzZS1kZWxldGVvYmplY3RzdG9yZS1m
YWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAkAA55tpleebaZXdXgLAAEE9QEAAAQUAAAA7VvN
cuI4EL7nlEfwEao2Vf4DDLcEJrPU1g6pSWbvsi2Id4zMyiJMLvvsI9nYlmxJNoRsmFqmKgek7lar
1f11t6WZz+4eIX6BeDIJErSM8HoWhdM4SeE9Ttb51NU3FP2zhfPZ3QwQ4IMUThOEYECiBGnYjBvj
mv5Zrjly3IHnDR1zOBg2hbWJ6PESBqNh/2peKZ1sIJrdfYVUZEqmAAUwjmHYjeIeBCTBr5NJCGNI
YKEPW5RNV5t8SgphckrNrGS3jaFe3+iZP0bL5XLg2GPfCc0+5eytQYT6hkTAM0BhDGfZYu1k+9+L
DcSAbSalej09QwwNQP8sZzywXdu1hga1Uxih1dVhoh6SzQaGBkBGUgz/ZqBkZxDdGm1aT7cYQ0TK
lTQMlGSZ4PWeI7dKyZedQS/0pZz5cd2B4DtV6ZG6gs6aYRTOmvTc4QfMdRuMMmv+2+YB1jDzAJUP
FpqUa1DCBe/lkwneu3uy3jDKUEKSIFHK4zYIYJpSVW6MIDemQddLmRWjVAhjy/aYwFJUGKUbQILn
Ty+MKYvZajfA8c2+EG4sIlWby6KVCyCjd01t4w6H3si2PUsS/BpDt0YazOws4eQlV2qeKtgc+/2D
jVvj3YKNeVQVaoJlHXrmqrhjxuWjiHFa9sgJvMGIselicFHjPc2RmM7gI80FfEu775QATP7KY3FK
lVjBJwxQCnKn1GdnDAGBKt5GirZHliNN0RF6Sb5XRrxFISfmKVpD3FMfuA9XEeLo5+IR/gnXFBco
Bz/a5NIYKNHodR9hin+ncBNn5Nlu6SZqdF7wsNQNmyt1uB9Ugyk7PrqaERZj18YuIs8lMnNHN6YQ
aQSlSkYFmszXQGiaYyswBwPfN5cwh+SOLpbnIm4gU7PmR9IU822zwiCEXyAMYdgltZhDlyIa3EnG
j0g5XImZxcHC/5saJwedG5pajOt+Y2cNymxj1U8a1VuywLdh2GDdn+yDar5008oxBbXdwOygzwLt
y3KFB0o3oJ5shESLNdSRJKFVAEKBiw0GBRTITg+ELAyNxWMREvOZ4Y6pHd2BbZp7SbwYYV+U+wvc
cRIpfLWzfPoRpSwcmyoLDrLDEeF5H1lwaUGIosaDyiYHHpDRC0Ac+3QXfX1qoGtOZa6iQDUpraCK
jIh31rfHQhF5bSHAR2hjTG/PkkyT1UsSvXuXOKDw6rz/+MrAVuZF3aZhkGDlCtRlBQJBQDXZxS8f
DjMf74Vqn1IiJTfHnzWXWfbtygFJwbUkHnUcJCfrdUTEBLOL4niajesT5xsWbAX++vIC8DcmW3Al
36MG7Rub1fXaBeJLmVSoryFWonTOVKK5FpfvIxSlz12BWapNFyMehMiyVcQS3XOt40t0Db7LvKeB
7xLPl2p9raChIe0nuCVGlhFLHEWBfH51f80qHOiIuyYaY8oLaIGEYhrwY+qhbYFfEtZOT6oJXYqi
KvuKQH++QIPo4epEdXCtM2AnvEfw2yWBWOg8pvsQrn9elW5TG1AyDsln6YFlywIKIjqyha0h3z30
jsoEB/Y8ivDOse535vTUi5UfE84r1tQSM+cFAprXviqc+iPGPoPdti7MXwh0tbsuDTa+gxzXp7Rl
Ho2ispAZ2yfrfDQr/7fB9qs4f1WU3L5bGOgLG6pBsXTT+xUIlPlCS32R0TRKhzqn9nbsHGqCS3N7
aW4/prmt327qvtdcet9L7/t/6n1/lfuj8+3ED+h9s+cQ4uE5pumJRGvw6sPszc8clS9+OA57PDSV
hmo4USYofJ+nBqrVamXxyHRbX0sJ/Oyt0zSOCkhvPpfSgZBWlPBsiv7rv6WW7vri4vJu4hTvJs7h
IcDYpkh75IX+sY7WtQHuePX+7vd5l7v9k93tn11uPvqlQYe6W/NNdQWJ6nPqZ0j2Lc1J6upVIa6t
tF7x6zYH9VVgRac+JY5GX0FXFlAgxapGIJj2BcRbeJ/gP+Br24l1qYk/H2qBbl2j+pT5SWnfmLLZ
dBsTKpDgbUC21BFobYDg5e700j9e+sfL3enZ352+5ZpQ2eNJ//OHoEdKkk0hhq+bstHKfSxvPLbb
2lxK5LoHtbmW542HH7z0oR32iYx9CjE/AVBLAwQUAAIACADlgAZJVAA0+RwGAAC3NQAASgAcAHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJkYXRhYmFzZS1kZWxldGVvYmplY3RzdG9yZS1mYWls
dXJlcy1zdGRlcnIudHh0VVQJAAOebaZXnm2mV3V4CwABBPUBAAAEFAAAAO1bS2+jSBC+5+Sf0Lex
pYnEyxh8S5zJrKXVOjtO9s6j7bDB4AWc7Fzmt281GGigu4HEyToSI41Ghuqq6np8VdXNLG+u1zh6
xtF8Hu5xcHP9A/9zwHGysAIH+z52Lx4CD54sb65vrMSyrRjzKNElGl0sS37ukX4RBgF2Ei8MFn4Y
p3SyJs1UbWoYuirNJK0po1wznzu19bdRuFv4Hg4SIrHGTZ/qF+Od5QUTxFC8hdWY5gR/JqzNe8Fz
+IRXexxZhNFV4N5HVhBbKdt7b4ej8YQ2w6nNehJ+fBOFgo3dehFI4q99tALXx/nvwkQxiLx/xBFG
FvyVVXOqqDND0RDo53rBluzuFsSE0U+IGuzjpOCRb76Mh/uwiC8mpeAtQ+PGo/EEjaV/Z5vNZqoq
pq260kRoruOWU2EnsYymaLJeWKYfq7twvwcHWwEqvPgVBeELSkQy2rReHKIIMqSQJFgAJJsw2h1X
ZFYp1mWB59rMlZm7ri3nCVRaQyjgi/Wfv3sJoaKfzudbnKyibzEs9L34MeewDDYhCMgxByRxljcF
ofQR/EIbz8foy+gLAmVdL34S7NT13JumylT8OQRgGgtZDv3VFoSyngYhLw1yTQoZQLiiU38+j44Y
EO72hNJlkIRBlcv64Dg4jkGVS+Rk/kQgLyaO9OIK5sqKQRgWrMB0eytxHr89F8Ba7sZSbWlSyXgC
U7zNpRBG5TAaj8A2mq4bM0UxZL2JtAJDtyY7Tu3MQ9JGaTpVvqvK++c7JePd8p1EVJntFcuq4HNe
6hPjVvIRVsqKOZXU6QyWvREGhCm8qok+jUdB8f/T2pYtE2tz2YDNouSvLJUXoMQWU3W+pRWLsJVg
3tpGO6bMZFV/dQ/Fixcbb72Aol8GXcpGfZWws8gioyeglhpSP0DMghiNlJcyKtGLlzwWcEoZzARc
Q2WXikqkIx62XEkyZUeaTm1b2uAMRzs6Ntst9SBVk2GQRl142G8jy8V/YOxit0s9kHQNYAi/MJ6f
X+PZs2pRs0SaCyv7b3BVhluXUJ3QaNKwc4MyNXP5EzL7AGB25bqNpcc4u+O9L4xWmqmituZIHfRZ
BVnk8/KBuQH+y4aDWqwhmNeatBxQyLGxsYADByzvWS4JCrRa5wm6vEGaaRiSYU5VXVxJ7njyexoD
jR3L923QdSKGYpC5YLmFg2dM2ooqLCI6MN4ed3mUt4UbnQ2NZ2J7FmSCKlqQiEOpyDnhIPGDwCzE
TpT+O/qKwtR6KE6dmUXPzNCkFi7YCSMymT/hnxwmuiFxmUDgduAw06bdgviun63pkOUHIBfCqHd0
YFAF6DiK9EBrTWaE3+uwMtztvKSK/C+e7y/S5+L6+gaBrYhcF19B5MbLFhDK9ig6NqtvVjTK51DM
XMSDYzFxP3UpOGay7WKNXjjMklJthA1N1t9ymMhDdVYYNFCdEcJMrUccGshNO4xagn3jkXKRN8Tn
1+fVrEKhR3XXicCY7Ia5QoLzibQtgwvCmveYmoAogEcy6sPPZ4wSMe6cqNOsTQLEw0covtokOKpM
GlmkpNNB5RiWuU1hQrFWMA76p7LCSigcwJMDbk357qn3KkjvOVVw0vvWC8AOv5GghyjmjuznlWt8
jmnwQoPJn91PfVRwLEVXrYLpi4OudhfVM+ZpQ1sdEYhlJYCpiGuggN3H5sNnic+yb7h6t0gV9x6g
QS66GaAckFiTU5+WFiClaVT3+spzvBccps6znTozJg/BIcbutR/at55/ZBkPg2rPQbV+ESo6qBnm
2GGO/ZRz7NkVl083VfeYY9PvD6rOUyXJqBLtrJ82Tj+FWh4TtbpCMXWJayjO513vc7c/fEzW6ROH
4UOFU3yocA5X56YCSPsBV+CnP5Qcrs6Hq3Px1XmHHldwhLnFCe/08jtOsvniND3sNmfX1sZuabnN
h+JGraTje4miEXerpQX4301VRjDRCGkYpt7muS7t6/e+lug2qfG9Tb9kzmoxeRsf/AQYJtHBSQ4Q
EFDGAzzcPQ4z2zCzDXePH3f3+JZrtgpngO696LNGzv8cqTVCKY8yfGTDNJW20RKINK3XaCnntYW7
gxNt7dMYoteM/R9QSwMEFAACAAgA5YAGSXXWjo2PBAAA5BgAAEwAHABzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaWRiZGF0YWJhc2UtdHJhbnNhY3Rpb24tZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIu
dHh0VVQJAAOebaZXnm2mV3V4CwABBPUBAAAEFAAAAM1Yy3LiOBTds+ITtISqSZVfGJNdAkkVi2mo
Trr3si2Cuo1Fy07o3sy3z/UDW8KSDEmomQUL7Ht1X+ccSV4u7p8IfyP89pbtSbq4/0p+vZIsn+M0
IklC4sG3lMKT5eJ+gXMc4ozoLNENGg5GO0zTMVI4RSxNSZRTls4TlpH4kbPdPKEkzQtHNLI9a+p6
kyDwnVngeGNVYJq+sZ9ktSccFwvdpfEzx2mGy2Wf6Y7w0Xiw/OSSrrheXNvPT3oDdm07XGtqeYbG
MkM7HimH/ISIUbF+ZxFVBf90no3GaGT9nm42m4nrzLDtW+OqnEeIyPgfqIckJCdH+2O1bXXPrKlc
aWl4q8iwJ8HQjcsE9Z3b4jROyKIM1m9W/2/Ql0Fez1vCCcLws93ZxPEcz/YRjD6m6cvgsqXWbL+H
yeMUNQP9C6XsgHJTjL6s56+cA8WaSAYHMNkwvqs9qq40fhW541DpWY3rHkc/IaUngIKpmzGNF137
q0A0bCGqxOAxkyYGGK5E4t7e8prBbLcvLGOFCUvlVZ5eo4hkGaRyg6KqmQjiZUUXaSYR23aCYsFm
qZhme5xH24e3RhYFwrmhNZboVoiMrrhSgAQCodEQeuP5fjB1nMD2uzppaHQv00jZZ50OdlTus8jm
OtcnmxDjamQrENVSTeqsCzPX8a5orsiiwtN2pm4UTKaFm4mDqxPfzxmJ5U7+y3bh0DbWneWY598r
Ls4hiRcibJhdCLWABVXiBOdE51syTNy0nant+u8+wugGHpIXmgr2S3mEf5Md6AJ4iE+7Xh86S3wG
TNwpHPAamOjVeSXK0nna3KYj/IEM5sX4IBo6HrlgXgeabxtllo6fUwe1x1XUimaBNRxb1syOrMkk
DK0NqST5TIhVe5HwoEzzBEfKLebb/oXjmHwhJCbxOVuL5XugaOSgeP6OLUc4xpc8WIU/oDmV6NzA
1oKG405lHcuysPYvsPo1X/G7OO641pNdC+/bDHIByaeODX5bxEr1eJF1RqKrtAKhDprKyvQvO1zp
aZPhDtW11SjFUTA7DhqNUI0VxwU/0erpyJXlAnkz6KM3cSyrXklcRqoLvL+Qg7Ai6Fq/y8NvmhU8
7aYsIefAaS76PhWsM6oTyMla15MLB4RGEU6SEKoYm/cMiDlXQUUjd0pbKRWVkQjWj3PhSMk+CojU
7Twz97MxM2z3jYkZ3o1AaFBdXUy+FiqsQtF5r0nEuDYCQFYykBZoX56Dy/Vl7RNRqMfUWiexwjtx
1sKWU99jLtgtPFuBqPdJMtvtaC7r/oEmybx8bt5RPxCwV/hPw0vC33nZoytVjaYvZqfFmi7hR8VX
OulU32CsVenKqVFzoy4/0pRm23OFWZnNOU28SJFVUeSze+DZ/kc+P+r0XYWejr4rkK/MeqixAUqH
jPdwZEOLjeN4cv7/XQhOuiKIjvEseJUX5fcoGSBOMPNlox3+E5Ly4+2y1pBTDy/QQkPzFdiY38kN
oRjoA+eM321ywqX7Rz1l+F/eG4bGL0bdj9sXW4t3IbaX2mAHs5nT110w8ryLumsH9Twk2NTRh4N/
AVBLAwQUAAIACADmgAZJ6fL5uagEAAD/GAAARAAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9p
ZGJkYXRhYmFzZS10cmFuc2FjdGlvbi1mYWlsdXJlcy1zdGRlcnIudHh0VVQJAAOfbaZXn22mV3V4
CwABBPUBAAAEFAAAAM1YXW+jOBR9z1N+gt8mkaYSXyEkb23SSpFWm+yks+8GnIQpsTOGttuX/e17
gQAGbJNMW+2MVI0C98vnnntss1rebQl/IXw+D3GKfZyQBaOUBGnE6CJmCQnRDTIdY2o7E89zbWNq
OIPvNPr5TFbLu2XHZz4PWv4PnB0XcURoCpGGrWjuxB2MjjiiY9QJ2htqJEaCf+OBJEZEX9gTWZ8I
x1mgWxo+ckwTnId9jI6Ej8aDVQ0DOxG6vPtGIE6SLjANSByTUBZZbplV9uHx1BAxzcIeIg6Z1L4H
TMOYlL8riBJI+XggnCAMf6Y9m1j21LMcBPWFEd1nq3uANIy/AWtITNIqRrn4mg+PrOKX1FLzVlJx
59FojEbGP9PdbjexrZlvh8ZYC9d5yXmyD0HGsRzTrZC5LtSGnU7QYExR1cWviLJXlOpy9FW9eOYc
JqTKpHEAkx3jx7NHgUrlVxAv9KWeRbvucPAEJW2BCmSw/euPKM2sxKfz+Z6ka36fgGMcJYcyworu
GCQoNQcyKdy7iVD+CH6hXRQT9GX4BUGxYZQ8aVYaRuGyW7LAvyATmI6jrKH/9pHQdHMSqsagrKTK
AYZrcfTnc37WAHY8ZZahxITRZpTtcxCQJIFSblBQ9BNBviRrZJQ0NNe0vCxgFQqgO+E0ONy/VMJa
rwbbvjFuTHwmU6rF5RImzDAaDQEbx3W9qWV5pttVWg3QvcNOcpxVStrZmj5q3m3r8+ddyPFp854x
qp72BrI29Fw1+hm4jXkET9OaTQx7MgW3d8qAdoTXrdQf01Eo/P9EG/tmhrYyDGDG07+LUV5AEXsi
7PM9RzFOcEpUvp3jmDU1bfeXz1AqvvhkH1HBfkXbGqyQybWoDwpatYOXx4oLBLWuUPgB/osMtGx7
qVmJXqP0UMmpANgMdA3Vp1RUK13WYRwaxswMjMnE940dKXT0wsYWyxAe5GX2r5TR76c9xyH5k5CQ
hJfsB4brgAyRV8nz3+/geeWuJdwl8llY+z+gVYVu3cDuhIbjDs4dyxzm+idM9jOI2W0YdlzPPNsI
7+sKUmFs244VmjV+jfU4gXFBoWtajI9qqKQrU7/sdK4HJs1FrmurUItSNDsOCgGQtRWHGVvQeltO
7mqJnJnnGd5sYrv6LWajyn8lGGgU4Dj2odaxXqMh50LWFoUoSm0bpciMRGK8n3cl/fvoJo5J55ke
z8pMs71WJnoqVcOovWF8y/QXuMPz/4dfEcvRQ0nezII9U88xeqKQgPHsyv5E3hRBXM9QBgHiXhBh
6kwuI/HmOqxFyqoJuFFpn/BOJIawM53vKFfIuGNK6PdrWsmOxyhtCvJrFMeL/Ll+431Hwl5Fbqdv
KHLnZY8IFWvUfU9rL1Z3xy+lWOqkkmO98XXlCnIsDXsJGlfpsCxL84TsOab7nq+MKlWX0aCj6hIK
S6seKmxgNn3Ge8i+i7Ltojwp/34HwBYqgnpoT1uf8iL/aNQkiOXN3KbREb/5JP9+vTqLQdvD8ZTU
UHyT19bXuhFkDb3nnPHbXUp4475x7jL8zu8Jw/b9hJ0apZrebGb1IQBGjnMVAqZ3xkz5Ran7+bxN
hHOtwyvD/AdQSwMEFAACAAgA5oAGSVBLvI1VBQAAnTQAAEUAHABzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaWRiaW5kZXgtcHJvcGVydGllcy1iYXNpYy1wcml2YXRlLXN0ZGVyci50eHRVVAkAA59t
plefbaZXdXgLAAEE9QEAAAQUAAAA7VtLc6M4EL77lJ/A0a7aVPEyftwce1Lrw46nNpm9C5Bj7WDh
BRJnLvvbtwU2lkASOLE3M1OkKgegX+r+vpZA8nJx94CTF5xMpyHKkI9SPI8pxUFGYjqP4hSHxq1h
uebIcYfjseeYI9PtfaXkn2e8XNwtajrTaVDRv0/i7TwimGZg6aZizRt6vf4WETowakYbTfV5S/A3
6ElsEPoSf8OrHU4QMzSj4WOCaIpys49ki5P+oLc8pSHeYbq4+xODnTSbIxrgKMKhzLJckkV2cXvq
FMWagd2TBDxxsQQsizUjslj+rd3rD4y++Tpar9dDx54gyzMHxUDvwWOcfAcA4Qhn+Ch/zMMJGo9x
CTWppOapJMKGAH0nzANUZ26DaBjhRe6sWexwXeIohbgeNzjBBoJ/y5kMbdd2Lc+AIoaEPvXOM/Ul
3u2g1ogaZUF/M2i8NzKdj6ao589JAmQpPWkUQGQdJ9uDRpGVUq/AYOhLNYty3aHgG4T0AFDQZTMk
4aIufxWI+ieISjF4jKT0AYIrnoLTaXLgYrzdMclQIhJT0crDcxDgNIVQbo2gSKYB/lKWRZIKvc+y
x8xgaSok6Q5lwebTS9ngOMI5vjkQ6MbahWpweSvhCGT0byA3rueNR7Y9trx6x9MkupFpOM+zqqPV
pohLkc2xr082zsfVyMYQdaKakFkHaq7iHUsuzyKmadkjJxgPR0xNx8FVRfcyJTGd4UemC/mWdtxp
hpLsr4KLcwjiCXMTZsOaJsEowyrd2rrGHlmO9+bFiKrgPn4ilJNfiiX8A2+hL4AGf7eu9a61xCVg
4ozGtlvCRN2dV3xbatebT+FwFxDBnJUPvBnHNS7Ua0+yTdmZudJNoEUap4WncWqaDGsoNM2JFZjD
oe+ba1y05JYQK+Yi7kYeZgVH0inm6+4pQSH+jHGIwzZTi+m50NHwXnL/DVMOtyDPebDy/4bkFE3n
FqYW42ZQG1lNMh/Y6fIosaQhfpVkhnvaaV5XU3hW9oAT6wVMuIHZotgrWhBZRW8pOtQPa/2mAWqa
N8q6rKLbHiedmoKiz8qogULW44zVw7HfLBeGO4E8ukPbNA+WeDPCuED7M95zFmFuaFb59EpS1uvq
IQsI2Sck43UfWOfSdnhoyV9UOTmzQEY/QFHkwygG+nkXfM5lUFFMGVJZIRSZEA/WS3EhJ1c7FpQ8
lN1uk9hCsgnzB6k2aC9EtTjnRVSdpx2+c9GzkN003ipQz8zk+eAsK6iFpbzfio87KHZQ7KDYQbGD
YgfFDoodFDsodlDsoNhBsYNiB8UOih8AxXi7JZn4DXxPomie39d/23+Hw0bYV90L4K89bChcMUbd
KZzqYHXHAY48kCqpGKERVuK5UCpxr/26eU8oSTdtP29Ko2mTxLOAL/Mi7iKOXct7z5EmFZlk6KlR
SoJ8adQ3CplVMvPjpIEja8I+vx738H68rclKVrjNMnHUmSaZ8j0+QQSnYCgChDYRvxSsVE8aCbia
hSE76ACXL9jI9O1Ks1VHpJtMH3VX3B1lEDocupmtM5wIu6/zQ4+oHjGT5lHLWJmG5Dzj0LJljMUU
7jzjxp7SnttvmmrO3PdV9I+imf7OWAU0UR6o+LHIrLaYswMJ00XlZMWlD3IcpshZo+O2Rzr4w5Nt
6yMHYGWS0piSgX9i6ydYjbn/lws/CzZPi5LZ1VCqX9hABEfXFX/qBpHvJTesL3KZ2tKhqvnOo8/X
XxN0bxW/6ltF96bQvSlc4U0hzeKdUDtrPIFpU6QGOwNfFXJdUWiLvvs4/1nM8sDrisZ44ilLq/ip
T20gh2hvtOfM6z9uOVta7vQ/UEsDBBQAAgAIAOaABkmN0bjVewUAAKk0AAA9ABwAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2lkYmluZGV4LXByb3BlcnRpZXMtYmFzaWMtc3RkZXJyLnR4dFVUCQAD
n22mV59tpld1eAsAAQT1AQAABBQAAADtW0tv4zYQvvvkn0DsZW1gA+hlWfbNsTeogaLe1tne9aAT
NjLlSkqye+lv71CyHpRIytok3RRQgBxMzosz38yQJr3dXO9x/ITj5TJwU9dzE7yOKMV+SiK6DqME
B+gK6ZY2N62Z49imNtes0VdK/n7E2831psWzXPoN/ps4Oq5DgmkKksYNafbMHk2OLqFT1BLaKWpS
lwR/05FABqFP0QPenXDsMkErGtzGLk3cTOwtOeJ4Mh1tKzdEJ0w3139gkJOka5f6OAxxIJIspmSW
vbo8uYsixcJuSAya5Lz3Lg1CXHwuXZSAytt7HGPkwr9uLmaGOXcMC4F9AaF3bHU3oCaKvwNqcIjT
Ukax+AoPt1GJLyGlYlZgcWtoMkUT7dv8cDjMTGPhmYE2VbrrvORM2at4xjIs3S4900/Ul+h0ggC7
FJVR/IRo9IxSlY4uq9ePcQwZUmpSMADJIYqPZ47cKyVfDrzAE3Lm4bp2/QcwaQ9QwKP977+SlFHV
R5fLO5zu4s8JMIYkuS8kbOkhAgVFzQFNEva2IpQNwSd0ICFGH8cfERgbkORBsdKABJu2yTX8+azA
tBhFAf2nC4S6nYFQlgaFJaUOINzVU3+5jM81IDqeGGUgIIkoL2X/6Ps4ScCUK+Tn8USgL2GBJAlX
c3XDYQJLUeC6k5v695+fysJarcY1PW3KZTwrU7LFZSWslsNoMgbfWLbtzA3D0e12pVU4ujPZceZn
WSVttabXynfTePt8r+l4s3xniKqynfOsCTGXpT5zLpePwKkbi5lmzubA9sIyoEzhXUP160QUDP+Z
3nY9nXlbKgZ8Fqd/5qm8BiPucK3Pd2zFYuymWMbb2o4Zc920pXH38B2hNfYtH4of3XpJ8NLUptxZ
5MjoWVArO2sfQM2aOY21lwqV6Jmk92U5rTlsAXUNVbtUVFU6FmE30LSF7muzmedpB5zX0QsDm6+2
NpCZKXBIqy98Pd3FboB/wzjAwSX9QLMtKEP4WTD+/jaePbtW7SyR5cLO+wtCldetK+hOaDxt+blF
mbm5+lhQbGmAvwniVJsdON+Wk5srEVlhkMOE5WsXBHtH87IiKzZCdMgnW+jvgJriMNymlVTqovG0
GCS1VpQabsAyDu32RfXbbpC1cBzNWcxMW92mv8j093QGmvhuGHpg61Td50DnWhQWSbMQ0nKmiIjq
wHgt3GVAvgxxJeZFw5c4NqfswteZ6hJk5aRKTOVpfIXqQT2jSLedTyifr0ZGZfOFnpVEcQ49UIHA
Ejh8oA/jD6N1PgXdyiNZX0Bh9Ixj9IC/Z6dBaC7oEXba5UgPtPZ0Z3+ElmFUYlNc4PjpAY8DHgc8
Dngc8DjgccDjgMcBjwMeBzwOeBzwOOBxwOO7w2N0PJKU/0r6mYThOhtXf/H/AoWd2G+q5zKgNdkR
uHyNqvc8zcWq3hgUySBkkqWFmrifuTXwCsVe4o1eCBZp4W/oHEu3X/LKSZYVIhi0ckMAYaHVYwnN
Ll55UdwB9gNhX7UWN3Xv7wKq4ZXaJRS/6lThTPFNHkeCi6vyrgwuCRvRE1oCqlZBwN4gwMcnjFJ1
3VFcgRHh5c3PGuXvQBmEzu9hVocUx9wdaw7F7F6Ue4Am9KMyY0UcgieOM90QZSymMPKIO2vK5bn9
Qz2j532qpH7cEAp++IVlFaSJ9LHC+0pmucQsO2Af8PqvHTp63apTcc/nEr1jJAZho1EpRIkSYGGo
m6xC3H+bD/8XfFYbk9WbIVW9uQELCtUNffIisWfvXTr2GBlNa/vQ5HyPL6KHI8JwRBiOCMMRoccR
IUmjExc73VlAr+Tzgb1LbxJZFk90dL97OPuJzPaczA0OZ2FLQyv52Y/yiXf79yy9qTknnT0xlk/8
C1BLAwQUAAIACADngAZJqamDMqMLAADgyQUAQQAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9p
ZGJrZXktYXJyYXktZXF1YWxpdHktcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAOibaZXom2mV3V4CwAB
BPUBAAAEFAAAAO3dPW/bSB4H4N6VPwJLC7gAerfsbiNvABe3DtbZ7SlxnOgiUT5KiTfNffYbvVii
LFG2NwnuiidACovzGw5nnhmy+19fvb0NxddQXF5m6TwdpLPQn+Z5GM5H07w/ns5ClrxJGu36eavd
6fW6rfp5vX3yRz7695dwffX2ai9zeTl8kn9XTCf98Sjk89jT6ZPeup3uydkkHeW1ZK/TZ7s6K/cU
/9VODvQxyr9OP4eb+1Cki45+ybMPRZrP0mW3H0aTUJzVTq630zC9D/nV299D7Gc276f5MIzHITvU
8+GWi5H98P6qp2h65MHejYp4p9JYhotZ3Ovk0Fj+s/fbWS05q/91fnd312k1L9JGt15bPei7eMdp
8S0CCuMwD4/tH+dhS+PDdEPtYMsjVw+M8JkBDlrZcoDVM/cpzbNxuFre7Plm6783jmZxXB8+hSIk
afzfaF10mu1mu9FN4iJmo/zjyeu6ej+9v49rnebJZkH/keTTh2R+7B7Pjbr/pSjiZtnc6UggNrmb
FpN1YjUrm9zKYDY4mFwt19t0+DkO6TZSODab2Si72m//U4gOtkQPGnwcyeYeseFNeQteXhbrvTid
3C9aZgeaTPPdXm6/DIdhNotDeZMMV5OZxPvNFrM4mu2cfY1mb9HhpqtsNLtP58NPv37dHHClDdca
1Gs7221xXFQ93PIoKW2g5Ow0zk272+2dN5u9Rnf/xDsy0c/utLCc56oTbe8V8aM2W6v58zdb6R4/
bbMtRG232s7MtuKaV+27xeSWd9Ei2Wiet4a9zvkidmwP3jzJ/pglqbc6/8vpSgeNo889m6fF/M/V
XuzHQXwMpRfmM980RUjnoSq7913TPG+0un/7Y6RqwQfh4ygvtb/eXcJ/hkk8F2Ki/Ot+6ru+JX4E
k9Z5r9neMKk+nW/Kx9LLzubtcEp/xBH0F8sX75Y8fuPG9XoYzT9tTubS0l3EIzLZfngm20NzYS3N
6vWLxrDe6QwG9buwOpJfSGz1Lir9sBzmE0cHXzF/3H8s0iz8FkIWspe8WurddjzRwsOB3//GK6f0
Qb7cBzeDf8XJWR06b+KrJTmt7T3ZXsvlg23/jLv6y/ym+CXL9qLrlX1fui4oKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo+J3BneubCo7bmo07Ff3aw/oL
SvXd5KsyjFXFGQ/W9qu+uFct8plCgUfqge+3raiV+VgydC9QUSXzUGHDNFtUqExubh+rRV5fJe2L
OI/tTrNeX/dU7mbnuWL6t/BQ6vGs9oLIr3+NZotKlftD3gHyUIzm5eztou7k0fqc2Sh7XzUnr1yg
5GyYjseD+BS141VT4z37h6hUFPw82HZnKIcalbF+/1543HnPbYHyDt377fh8bpodKXi7aXKc9+Yc
qFD9OXxbgppd5y/YA6tC3r8vqpYeMveyy2E4LSrHE4HvNNjpYHvxJYrfv26yy2arBVaeq6VrZRml
Eq3rut+vqK7abhzwBy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBC
Cy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgst
tNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQ
QgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EIL
LbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy20
0EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBC
Cy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgst
tNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQ
QgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EIL
LbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy20
0EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBC
Cy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgst
tNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQ
QgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EIL
LbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy20
0EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBC
Cy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgst
tNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQ
QgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EIL
LbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy20
0EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBC
Cy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgst
tNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQ
QgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EIL
LbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy20
0EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBC
Cy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgst
tNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQ
QgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EIL
LbTQQgsttNBCCy200EILLbTQQgsttNBCCy200EILLbTQQvv/hHY4nUxG85OdmXoYjcf95e+lpsnp
bqPZfHofx9Vo189b7U6v1230Li6au22G4+ksPG3Ubu82mqTfBqG/aHm9np4nid5Ft3Le171sry07
yqraxynKN5PcT/NhGI/D/pKtn+30ld38F1BLAwQUAAIACADpgAZJ4gaAndENAADL2wYAOQAcAHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJrZXktYXJyYXktZXF1YWxpdHktc3RkZXJyLnR4dFVU
CQADpW2mV6Vtpld1eAsAAQT1AQAABBQAAADt3Utv21YagOG9V/4J3NUGGkB3y9klcgIYmBln4rR7
Sjy2NZFID6UkzWZ+eynqRlkXX5KZzuIpULSW+B5RR3woN4t+lxdvr0P+NeSvXyfxNO7Hk9DL0jQM
psMs7Y2ySUiiV1G9VTtrttrdbqdZO6u1jn5Lh//+Ei4v3l5sNa9fDx707/Ns3BsNQzotVjp+sFqn
3Tk6GcfD9DTaWvTRpU6qKxV/nR5YKu5n+fRTHqeTuFxwtsDR5frdZ/chvXj7MRTdZNqL00EYjUJy
dJL0dy53H/KbLB+/2bXqjsN3r14e/fcwzvLvxdFv48HnYXp7Pc3yl5/vfLXqUpU1FquenP6cU8yL
h7+Gq/6/io+ofOh9lv8e8sns47qL09tQ7s7spDfOoXihPJ7966fhOOTvh3nxKie1P85ubm7azcZ5
3BoUH+T8JStrF9dnGIVp+BgGWZ5sLTrIxuPh9Cqdb8/s6fUl+Slbbtr8qEq463XiJFm8yBNO4oUr
b+3/jjfz6Mv/0LmLxWKxWCwWi8VisVgsFovFYvHL4kN/pP/gD0orf8Jsg8VisVgsFovFYrFYLBaL
xWKxWCwWi8VisVgsFovFYrFYLBaLxWKxWCwWi8VisVgsFovFYrFYLBaLxWKxWCwWi8VisVgsFovF
YrFYLBaLxc8fGfg+HhRPfF8+sfxfYy8HPO6aW7jjSDsvFovF4r86rszBfdo31cbSO4ZEbD10clod
EdxvJrXTx74D94+guIvTZBQuynN4/LDFz1fLqcWT4k19ugt5iOLi73rzvN1oNVr1TnQf0mSY3r7k
/R54qQ/Z/X1IojiNVnOTf43S7Fs0PXQOj72r3pc8D+l09Uov3crFGOzFcvMtXS1afvr7BmjPt6Q6
UPro+p9/G07D1pjp2zC9yt9NinA0nNwtV7hMb7LiBZZDy3dfDd/yYsHKrJH3w7RYIhx6R8kw+fC8
2d7D9Gv2ef2u36RJJSpnXJ8cGkyeHQjL4dg/5RJtnnUbrdXlsWentz+TqHyo+Cm6GY5C9MvxL1Gx
Eclw8vnwFl5sf7rVYdmzYe5b4a69/c9jd4J6p7wT7Pu9eXkmq9coDryqDjqfTTGfTzzPxvezI5Md
h2Tp5irXXwaDMJkUp/IqGswv/ejrfPB5NJxszLevN7qzBVdLFVt3H08Hd+++robYV0afN/u1043/
RJgNZd/35sqB7ZUbbXRyXOxNq9PpnjUa3XrndGtc/IGNfvSOG8p93jc3fvHT+jR/1n212VhdtP+1
+2blNZ5933zqrXF2Ra1vjBs72yw+8313ydnmbngsynrjvF1rts+K7AfvmAcJXz146Z/ziRYn/lfu
dtyv1w7djIs9y6e/zyn3ipO4rX57bF+B6+u9uKnlIZ6GfW0J9FXl1tA4qzc7L/862XO99MPtMK0c
f5k+5Rv2YXXwjyLmV8Yzb6jrM6z8ULxMb7Zps6+X9VUZfRtO71a308qGnRf3tWiwOqVofaebfcJx
Uqud1we1drvfr92E+X30iR/s/N1WHihPc8eGbH0v/HZ/m8dJ+EcISUie8n1Q67SK21D4tuPx/7Pf
EZ7/rVUZ8lZaqPwqVjQnx9Hx6dY+bx1ZbnP1d7j7L8XN7E2SbKWL6+xD5XmhUCgUCoVCoVAoFAqF
QqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVC
oVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAp/MNx4fjVPcD1BcGOiX2tQe8Kovqt0PhRy36jInbP9
9j+5NbvwkUGB+0ce7jh2z7zM5djQrWDPpMxdgw3jZDYvMbq6Xs6uvLyIWufdbq173m52njRquvej
mxGdDOLRqF+c6+nhKaXFa/Z2fSx7Rn3uPHbjVHYdVL0wfvy6W17lj11uVQ1bjx3ez9VhBwbMrg45
fCmtzO25gj6H7+/+GE6mk8t08zIqnoiOf42y8sFoUj46v4y6tXrn8Mjuj7OBpsUaefnP3aucdVu1
R1Ypp70fPJVOt7Z3kdW8+IMrnLXaTzPx4XkfXVXA/ut57x2x8lz1OquMel0M/X7GXNRWfcfVjAAC
CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg
gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA
AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII
IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA
AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC
CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg
gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA
AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII
IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA
AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC
CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg
gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA
AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII
IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA
AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC
CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg
gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA
AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII
IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA
AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC
CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg
gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA
AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII
IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA
AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC
CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg
gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA
AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII
IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA
AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC
CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg
gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA
AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCPyvCAyy8Xg4PdrYqW/D0ahXPl45
NDreaovNv5+d2r5dKU4oXb2lXpwOwmgUkucfvT6zxSvWW7WzZqvd7Xbq3fPzxuYxg1E2CQ8ParU2
DxrH3/uhNzvycvGZPCi65529H/ZilfVz5ULJ0Z9QSwMEFAACAAgA6YAGSUf8EUoKBwAAZHIAAEIA
HABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY2xlYXItMS1wcml2YXRl
LXN0ZGVyci50eHRVVAkAA6VtplelbaZXdXgLAAEE9QEAAAQUAAAA7V1Lc6M4EL7PKT+Bo121U8XL
2M4tsZOsa3bH2Ulm7zxkhx0MXoGTyWV++0pggwSSMIm98WQ6VakKqFuP7q8fQg2ZTS/vEH5E+Pw8
WaN4evkF/btBaTZxYx9FEQo+fI1Dcmc2vZy6meu5KZJRah+1sw+9lRvGfU3A5CdxjPwsTOJJlKQo
uMbJahKFKM4oo9YzbH1o2YPRyDHHI9PuK7pyvQRn99iNUzfvMB951rqSXuAJu1sjvEjw6kLUa7fV
3/31R5hR6kvX/xbGy7sswXvMN9j2PamJiNBVUrH0oW4351PxtIqY780ZOAfRlqWTnz5dDrPCXErY
pX/ehyuEr0NMltPTvw8Xi8XAMseu7QuY/GS1CrN5XAiGNlfLu0924iqoGEZWls3GxuoEQyolUeuw
BedBGNx2A1QYPybf0HwnsIs4YJhy8fVU1pAoGHO5c+Kh2mx0IprVj8a9Xp/ToOHo/QLH12TEBD+T
taMIZWhHv4O5SIdiSkWrYIYtE/SsIJ+gXHIPbhxEaJoP1k62vS71lJJ53T8gjDSX/BrWeGDapm04
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
sG+EZVzRWxel19vTWrJ0bDnL0+3hReP8/mkDhOHOZmZbJkzSjBwL2XZbaOO/BsQrJG/3heVIw505
ygx16C0NRSr5VIyJ59OQJMmbpf8DUEsDBBQAAgAIAOqABknu4SXcaAcAAGXhAAA6ABwAc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNvdW50LTEtc3RkZXJyLnR4dFVUCQAD
p22mV6dtpld1eAsAAQT1AQAABBQAAADtmk1v20YQhu866ScscokExBW/RFG62bRjGE0r13aSY8GP
lcWa4qokZceX/vbukuKHRC4lIQ4aFG8AIRA5OzucmeclNfTN5cU9jZ9pPJv5Tuq4TkJtFkXUSwMW
2SFLqE/OiGooE90YW5apKxPF6H2Ogr839Oby4rKxZjbz9tZ/jNnKDgMapdxTf8+bOTZ7g5UTREPS
cHrQ1aDuif8b9lp8BNEze6LzNY0d4eg88h9iJ0qczO1DsKLxYNi7qdLA1jS6vLij3E+S2k7k0TCk
fpvndksR2Zv7k6eIdVzYxyDmO8nXLp3ID2nxvUxRwrd8WNKYEod/VH061vSJpRmEx+cH0aO4uo98
Gxa/8q6hIU1LH8XFV/3wwMr+arXsONsScePQYEgGyrfJYrEY69rU1X1l2Jmu7SVnm71JZgzNUM0y
M6e5umXrNS+wE5Gyih9IxF5I2rXHoajtTRxzQsqdOhZwkwWLV9sVeVbKdXnj+W7ryrxcF473xEO6
561Ae/d/fApSYVU/Ops90nQeXyV8YRgky8LDTbRgfINCc/hOkuXNjUh2iH8jiyCk5H3/PeHB+kHy
1HGlfuBfNkOu9Z8nBKaxsK2g/xxqQtXMmlCGQRFJuQc3nNfRn83irQaw1VpY+i0mLNr1cr/xPJok
PJQz4uX1JHy/RBQySHY0V9Us4bB0xVO3dlJvefVcCmt1NY7uKsMd4oVMyS4uk7Aaw2TQ57kxTNOa
aJqlmk2l7Uj0QdhplmeZkjZuTW/Fu679eN5re/ww3kVHVbTvZFbnNZehL5K7wyNfqWrTsaKPJ3zZ
d8pAJ8Lzva3fpqI88P8y246rimxL3fCcxemXHGWbB/FIa/f5A49iMXVSKlvbeBzTJqpufs8zlETv
5nXQZW3l0scgqrm9ifal+pBISjpv33Hx5FFtXfvCT9oiaeL2UnUleQnSZSmntYRNua6R6imVVEon
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
LWRlbGV0ZS0xLXByaXZhdGUtc3RkZXJyLnR4dFVUCQADqG2mV6htpld1eAsAAQT1AQAABBQAAADt
3E1z4jgawPF7TvkIPkLVdpUB85Zb2nR6U1s7pCaZuRtbSbwNNmubpPuyn31kA7b87iRkOrPz76o+
gPTIsvTTIwdRXC8+34rgSQQXF/5WeIvPv4r/7kQYmZZni/VaOGe/ea5853rxeWFF1soKRV1N7ZN2
fnadtecc6pu+5wk7cn3PXPthUm9g6NORMZ7NJiN9qhvla2QxFxd2If4q8Dfm2hVeFF+x0NpkPDnr
bSzX62sVHW9pqqe2JP/1q27e9Z78b2K5FYEVN3TpOXeB5YVW0uyduxFBr68Ow0mGtf6W/IaOXLmB
vJLSFzu+61IjVX35X+m9Xl/r6d+n9/f349Fwbg0men8/31fyin7wQ064WItIHOsfOWRTeeenNCpr
NpRW9LClg6uRk3SwfuQeLc9Zi0VysfZqh9fpvIeyX3ePIhCaJf8PRvPx0Bgag4kmJ9FxvYezlzV1
42+3cq4tT0sn9B+a5z9rUdM12npt7oJA4k6v1BAgq9z7weYQsR+VNG5v0FlVRu6n67Nlf5NdupUU
mkbTcZ1Fuf67EF1lRCsNHnuSXkNWXKpL8OIiOKxFf7ONazoVVXwv38rtzrZFGMqufNLs/WBq8nph
PIpumMtVg+EsbjBtynHDrRXZj1+e0oSkLLjRSu/nllucLupuLkklygLSeudybIzJZDYdDmeDSTlD
NQx060oTyTjXZbRSSj/VYhsN33+xKdd4t8UWi8qWWm5kR3LO69ZdPLjqKoojB8PpyJ6Np3FY0xpc
FmJPMyX6aPwzh8taDRrvO4ysIPp9vxZN2YkHoWyYLc8ggbAiURdbeg4ZTgejSe3ErcSD6ynh1/mp
eO0zx7/FRuYFGae2Vr7am54lTsFkNJ0NjZRJfXZeqmmpW27OuqO8kD0w4+mTV9OOz6Ryvp7d6DHN
zMrUzWWK1LIHRS1LmrE1y9H1+cDWx+PVSr8X+5Tckdh+L1LeSLpZcFS5xfy2fQgsR/wihCOcLluL
PjFkRhPPFe+/YstRHqCTdbBc/UcOzj7pfJJbi3beL91ZqWZyY9nL43PD1c7bsyw2cJjf/e76q7D9
wCk1sd1Fy+DSceqCb5TyD3NtAgkkkEACCSSQQAIJJJBAAgkkkEACCSSQQAIJJJDAv3qg7e+8qC7K
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
BNsDqVsVS8YB6lm38oLmraXTZHs5ZyV5jfNDDaeNgXxpk/MAT85IJyNMI9P0rdCcz4PA3EGJoyMD
2zEpNt+rAUrrC5/TvaAR/AkQQTSmH5gLF2EIXju+/36D53d2LWXNKmphG3zBUJW49RG7E5kamp81
yosKUl4RIp7lwhJFGuspYe/7/vOm0NH/qL6PvcZJ0r0zjdc4ZofpNGV7WsEwicp9+RTfrK/W6Yil
c932e6Xl3cRVPFQapfSKHVAdcTRrR1yqDNQN7bqn6cPrdOBupwesO+X/aLBHVqprmcbgOKnfvLQt
ynKeDm2e/WJUMC5knPHP8nzfblW+3BHaRO2biDeuFyzP8xe9jaznWmbyP1BLAwQUAAIACADsgAZJ
Imh5P2gBAABeBAAARQAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJ2ZXJzaW9uY2hhbmdl
ZXZlbnQtY29uc3RydWN0b3Itc3RkZXJyLnR4dFVUCQADrG2mV6xtpld1eAsAAQT1AQAABBQAAACt
kj9zgkAQxXsqPwLlUWQG8ZQ/nWKcsSKTmPQHLMmN3J1ZiJM0+ew5MCp4xCYWNMfb3+6+t0QwLh37
WfL3D1gvF0tWs5RVEEU5zx8AC4ViniqsN8hkxbKaK2nf2SPLqOgIoog1JTbJWFmmLNs6pjxWUsKv
Wrca6qG/MXX9CZ0GwczzQ8+1Bubkcq+2kOwAWVM4l3kHs+ECkDiWrngC3ANGkdqBXC4eQXOqOmYy
g7KEfIg8rGy3vzWP/BlDdvIpLlUF+QqViEsOsm4tIh2HwsCjzi0syo2MDr17gUxc36VN1Vm1USeC
mWgj7d3IUWNdnp1xC6O+RLCvFNqJ1vLQ8GKwMaUGNFZC8DrBf8K9MAyosUrBERJ52ibpBn34e4+o
cF7UgC+AVePoG5Ov2mGxK6GBEOd4WD2yOobWxrTSpNwm7qdfFMV04oWMZq5z5XrUlcxbWDf2rNna
gAwd1LfxpsfvjjWeuY7e5gdQSwMEFAACAAgA7IAGSYtSErkhCAAAfVYBADMAHABzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMS1wcml2YXRlLXN0ZGVyci50eHRVVAkAA6xtplesbaZXdXgL
AAEE9QEAAAQUAAAA7Z1Lb9s4EIDvOeUn6GgDG8AP+ZVbqjRBsNh10KTdsywxsbaK5JXkpL3sb19K
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
dkYz2fNaBMcB+MY3vvGNb3zjG9/4xje+8Y1vfOMb3/jGN77xjW984xvf+MY3vvGNb3zj+xf2/cP+
q1VekeIVKVIwKZgUjG984xvf+MY3vvGNb3zjG9/4xje+8Y1vfOMb3/jGN77xjW984xvf+MY3vnlF
ilekeEWKFEwKZouBb3zjG9/4xje+8c0jIo+IPCKSgknBbDHwjW984xvf+MY3vnlE5BGRR0RSMCmY
LQa+8Y1vfOMb3/jGN77xjW984xvf+MY3vvGNb3zjG9/4xje+8Y1vfOMb3/jmFSlekeIVKVIwKZgt
Br7xjW984xvf+MY3vvGNb3zjG9/4xje+8Y1vfOMb3/jGN77xjW984xvf+OYVKV6R4hUpUjApmC0G
vvGNb3zjG9/4xjePiDwi8ohICiYFs8XAN77xjW984xvf+D7X93+naXrrtR2+yvXyznacWXxcCU1a
XfUQmLV8ZrimcBxhFa4UhN4mupH8tfZHu3pn1NcH4/GwO55MevkY0/ECcRyk6/mgtfGyFLMocr4f
jaMS48mwcsD3tRzOxRVZZ97xv1BLAwQUAAIACADwgAZJcHs4/sMIAAAuFQEAMgAcAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9pbmRleC1jdXJzb3ItMS1zdGRlcnIudHh0VVQJAAOzbaZXs22mV3V4
CwABBPUBAAAEFAAAAO2cTW/bRhCGgR510k9Y5FIJSGpKoijKt0S2AyFN5dr5OBYUubZZU1yVpOzk
0t/e4aeWIrmiYuWjwVugaE3Ozu7OPu9wdk16fvbqmgcPPDg9FWvun7264v9seBjNLN/mnsedznvf
pSvzs1dnVmQtrZA3WbIXrNvprSzX77OaRrbwfW5HrvBnngi5cxGI1cxzuR/FDVlvoGuTkT42TWM4
NYd6X+HKWoogehdYfmglDpOe59uZOJnlbKdLstv2MtImmt7pOcvaLtY8uBHB6mVdTxXzbT97p1ke
gTE2Om/5SgSfydsry753/dvrSARNc0xtZUPJImvT6ze5DOjyA18s/6bxJZcuRPCBB2E81jvLv+XJ
bLPWkhkFlHs84lfcFoGTe/cd/in3ee5HgcvDj25098HyNvwN/3yYWak3y3Gyro5B00ijf/rHmtV8
r15aOjpMVsoo7ZsadVLChPoJrPh/37krHly4AXXS0z5Nbm5uxqPh1NLtIl5t4lHybYvVyo0Wfhqk
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
e1U9zD3rTlrfpK2eOl3596ob5eize3fPe62k13/s3L4Yj2p1sBMcH/dbYR2Laql/rPIV2m+6HLUX
v+wT4B5vSd3jEtFDCqRACqRACqRACqRACqRACqRACqRACqRACqRACqRACqRACqRACqRACqRACqRA
CqRACqRACqRACqRACqRACqRACqRACqRACqRACqRACqRAyosk5VYuzqJvIyWP00kprtXPYxFWvTbL
kHpSRnlcddmhxcn6V2WyPO/1uj/pdO3lZDKeDMSbOJazIBaxL0z7PqloK0xh5WVosls2jM++O5/J
yEiez7i8uTZu5PS9ExvX/jy0ZPLXUI3a+ODbc1eFOYnMpW1PjSideaN4+sVAX1tB0Oz0+y0xEFPf
d0XWQVpDJl+stTYJyukAm3PHi3vdL3FrJ3ZG+635buyMNHGtszMqEegLYWdZqWEbPas1HUqu1s+m
FlhboacIqqdIqx/xfGfNx/s//G5iqqmOsfLrypplTEQyVnqbyGjuxlolpXSnezLh5TezfE9N/Vy+
U1vaokqYShvprTalptBV+pRPWfVjpcttAt64f/kP9Su5GlstkrW4ejFfrQRX7Au73nkpz6vvfa7d
RHpVu57rAc8m1ZIavLlaq4rTXKwVWn+CLl4IMLqB3sbLern50uv1qloJrZHsSlg9KysT+8MvG+en
7e4Pv2z0u70tnfzuzSNpv3X96TvHzbqMdmL44vsmezeCL+r+hQJrv79A74KYEfMvI2asDFYGK0P2
J/tjZRAzYsbKYGWwMlgZsj/ZHyuDmBEzVgYrg5XBypD9yf5YGcSMmLEyWBmsDFaG7E/2R8yIGSuD
lcHKYGXI/mR/rAxiRsxYGawMVgYrQ/Yn+2NlEDNixspgZbAyWBmyP9kfK4OYETNWBivzPFYGH0Lq
JnWTukndz5i6g6qip1nS1oui0pCGNPwFGqZVlxPjVVaxNYvPir/m0S2tnV9dnzNrXFPBk2rgL6ka
eJ0Xo4A4pfaBi1L7kAIpkAIpkAIpkAIpkAIpkAIpkAIpkAIpkAIpkAIpkAIpkAIpkAIpkAIpkAIp
kAIpkAIpkAIpkAIpkAIpkAIpkAIpkAIpkAIpkAIpkPIUpNzKxbHNbaTkcTopxbX6eSzCqtdmGVJP
yiiPqxBH3o+asLIyFb1etzEMpZok7zY5KZ8c039w4juhuhPqluHjQBweHDayE/xOJKaOZyfBrv8g
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
7V16RbL1Kqkf+J+a5uTMBTK6nrteL1UWvfYLvuqZU12pNNxN1cZWN4AmqFys77UXst152i4oNrLu
41MmNo88VvOvUadUex7aWuflkKaj67T6zkLPquxj+R4W6pkzeX5xFivYWpZFlL4gaxXz86VYO+2P
FaT29dD8ZfuU1uNblqwe216os1qDhnL1GwIrRZsHnV5Xs5+dinNqbKZblNY/nTpyAM7aygIMgAEw
AAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAY
AANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAM
gAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAG
wAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAAD
YAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIAB
MAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAA
GAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AA
DIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAA
BsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgA
A2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyA
ATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbA
ABgAA/8/DISbTZB0KlP3EqzX0+zzUqhx8Z4PPHrYHj6+cuTWvjxyXOQ5tpy5tWQvVbrHTl9to6Zz
uCW48RTNGxWnbasIbgMZxKtTSaAdzSmTeNZxq3uK+uk75sh2BuPx0Bo7/WFHM9RAPoffxGJXX9fS
L3WTVVu313aE66qndpBrKl876ouGmEV0vQyjI3vkIUh3rGqwTbdxy+qELclmW6ul7cqV/lrsfi+m
LVaTfb8S6gBz1U/fngwsezS2HGMrZEpdzazEWzfxVh+ehcxmRnUlZzefhXpgnOTJ3D15nojj64dE
RF9FFKuGU/X8RzF9rdaslualVpVesxooHxL20mxbyryu/0wTVCOuPPBgfXUdhOXxT13pifVazWRl
8uIk3Faqsj+eTKxqjLcOY3EY5DjVoI37YymmaeT89XQ7aDGeDBszrW2hrCO/tkSvo704M+P/AFBL
AwQUAAIACADzgAZJM9a/BVMIAADjuQEATQAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9tZW1v
cnktaW5kZXgtbm90LWRlbGV0ZWQtd2l0aC1vYmplY3RzdG9yZS1zdGRlcnIudHh0VVQJAAO6baZX
um2mV3V4CwABBPUBAAAEFAAAAO3bTW/aSBjA8TunfIRRLwWpkQw2YHJLoFGRVku3SXs39hC8cWzW
dpLmsp99x3YwdvwW2lTbw79SDsC8Pc88Mz8qmeXi4kqGDzI8O3Nc59L13Wj7yfIdz/VvvskwcgN/
vrX8G3kdWn5k2bF6Q5yKk95X3/3nXi4XFwsrttZWJOeB78v0866hkv7qb2hoU90Ym+ZE18azUa9/
Z7n+QFQG7hquV9PD9R+CW7naydBKVnTuO4X1X7t3MuwPestD7MFO+ouLL1KNE8Vzy7el50mnbuT6
lmlKCuM5laTMvSBK2xXDnmpGeyLtF/0vw+Bu7rnSj2uSOBlPWpLYMVS/OJL6N/id0lqYJW2aTZ9O
eOmGql1f+z7dbDZjfTSzDFstvjkPQcvq08Fa+m6T+pP713keIrXO660MpbDU31CfjUf61BwZQgXl
qHJNQrhU0wThkyoN6ck4H2Mf4WHTr4O8iGpbtnxas+LKW/1BMVlr3dEGqmdnyOlkb5IZY2QMJ3lm
jhvqc7Dbqd22fJHv4gfhB48ibpuja9Xz+zBUxyCfqaWDarIJwrvnHllW8n7pHvSddf0dlra9sOxb
taQrVQqyd/XXH26ctCq+e3Z2I+NV+DFSHT115e1HWPqbQE2wv1jUTA3dqxOJ9C31SmxcT4r3J++F
WqzjRrftd+6iuuRC/dnJLVLpWLeh/3YV4XCSFmHTMdivJJ9DNVwV74uzs/D54gjudklLp6ZJ4JdH
ubq3bRlFaimnws72Uzxkrgg3Kl2sw5GZDJgPpVK3s2J7+/Ehvz0L94++1galE5/cbU3Bpfde4QyL
/onKjTGZmNPRyBxOqtdpS6I7D7tM89x0/Vb8eavzro9+/XkvzPHLzntSUYfTXsqsnpjTcPST5JbO
o+o5HM3Gmj6eqm4/eQ20HuHVi6nfZkfVwv/PbFvrYavwKmdh3PTlteP7ViitWLZ98S195xpNh/qk
cd/X8sb1C92X5a340e9XDfXycrbWbxZZZRx5oR7WWXihppknSUt4OVSleHTjbX6dFhI2U/eaOHwV
FYebLtlhy9G02dDWxuP1WtvI7B595cbWfFMsv94npOLC191NaDnyTykd6bzGA21iqGtIPta8//t9
8TxSrcJ/GNKzsFr/rbYqu7dOlU7iZFDJc6VlmubDy32Lpe/I7zX7VPi0V/Ol6cXApa61LYiBGIiB
GIiBGIiBGIiBGIiBGIiBGIiBGIiBGIiBGIiBGIiBGIiBGIiBGIiBGIiBGIiBGIiBGIjhx2M4/icb
nRGt/Oz5xaanGmtT0Pxh5TG7jny2/LSm2rbhkdD9E66VDg0Pddbtv+Ukj/aJ1dX+McvlQhgz09TM
2ViftD8P/Llp/iOTIfq25XlrtdZB5y/B5nXb0vBUam3bcrHVNCoWxlvVXXoSXldx+aGpe/s1ic1a
dtXXc6vXVFbWtLWmsnvgVBQ39bmKhhPzg8g+P7zTy5/yte/DKAiz0lNTCLWS8OlMvDt515tnH7mR
WLvpA6jCCx5lKG7lU/qzE8t3xP1ud3jniGo9Mp3HV2i+ja21mbeqr8pK2fx8PVau166qrL2Pmz9s
T2m1fcuWVdu2V+ui0qH1R03lezBIX4moULrmbKK1D/HVv4+kc+EF60vXk1+kHYRO9KoqXPxs4o6p
yEXdFrb+OKrjzly0FRFWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVW
YzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVW
YzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVW
YzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVW
YzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVW
YzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVW
YzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVW
YzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVW
YzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVW
YzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVWYzVW
YzVWv8mdGdzduXGvlLpH1/Pm6fuFpuLkLSfsvJ9fTl+6pSsfdlwuWYwt13Ql2FMVbteFXdup6epu
b3zccgsXbO2wr8nGUbds3Szqb2hoU90Ym+ZkZBrDSa9mqa7/ENzK1b5Qzn2nMExaNv1B281dVwaV
+7umhGtXfdLQZhWer4Owo9g3bnL0VIddch5bdidoCTY9Iy19t8pZT+5f52mLVLKvt1LdRJb6G+qz
8UifmiND7GSKdU1Wop0V29uPD9JPM6OG8hcXX6SaMIqzYK7ubVtG0fkmluE3GUaq41zNfyOzpPQH
aS0tC71Ko6Y1UDzt+lpr28pL13ej7ackQLXi0oRt+6uQ2O0XUjdyUAxsbvm29DyV4lJWn8c4lOvQ
nM1G5Ta2F0TyZSPDKDe6s57Wcp60XD7fXy96KMYaU1A5W+lAzpGB/QdQSwMEFAACAAgA9IAGSdD6
uPabBQAApCYAAEIAHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vbmV3LWRhdGFiYXNlLWFmdGVy
LXVzZXItZGVsZXRlLXN0ZGVyci50eHRVVAkAA7ttple7baZXdXgLAAEE9QEAAAQUAAAA7VpLb+M2
EL775J/A29pAAugt2bfE3qAGFnW6SXqnJDpWI1MupSTNpb+9I8qSKYuk7Dyw2zYGjETScGY4j2+G
Iy/mlzeEPRE2ncZJfJXQJF//gmmcJvT+d8LyJKOzNab35JZhmuOogBvoHA0HdzT585Es5pdzXOAQ
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
cE8Gx4PYwfqkXDfVSjI+2E57WHc0Iwagxtw2N6u3rAPp6/in82Y7F2OaENdpzF/qikJ+N4tzy16z
VEdSs9sjzfMICfzpNJgQ579I3S9xX/QvUEsDBBQAAgAIAPWABkm7sjSpNQEAAGMGAAA4ABwAc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS1yZXF1ZXN0LXN0ZGVyci50eHRVVAkA
A71tple9baZXdXgLAAEE9QEAAAQUAAAA7VNNT4NAEL1z4ifsERJNyi7l6wiNCacaW3/Awg6WSGdx
oX78e5cYWi20tsZoTDzsYSfz3ry8N5PO4gWoR1BRJGvAGW95xhswbrF82EA6i/tKFA1Klk2sybNf
FMWU0TBjMLGJOYZ8z5xIRMjbUqJhrXmJNhkBrDiKCvr/vAbFO0RDLslyBQoI189h4ZS61GWUaH5R
4p1xHtW1rGsQhCORffmCoHwi7bEZn6lONkoBtttJRwC6pZBqvUPgFvXRWTaxDUtkoySduTHP77W2
RSu1Zo10qM/yYOprWPof8B8JeD+p+AY0X9MmHHOoKhBfXYFDgQ0GaMvME2Scx3fYHVGK+Z7yb1kZ
5jnhKXH+zHxNcsVzTf7yZlNX2N3IUo5dZ2ccsUx9fq7nBT6lgePZv8U0XIDzul8BUEsDBBQAAgAI
APWABkmiRmJx8AMAAAciAABUABwAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFz
ZS1zdWNjZXNzLWFmdGVyLXZlcnNpb25jaGFuZ2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQJAAO+baZX
vm2mV3V4CwABBPUBAAAEFAAAAO1Zy3LiRhTds/In9BKq4iq9EIKdLY8rVCVhEnuyb6kv0DWim7Rk
O7PJt6clIakltQS4wI+ExSzouu/HOdea+d3tA4hnELMZ3wK7wwkOcAyDb4z+9QTzu9viZTZrPQ1H
aGj8PVkul2PbmgY2GCN0pdNULfucMQgTytlguMGUjZBGYY0ZiaD4vdiCwKlGjK7R4xoEICz/mfZ0
bDmWY1tI2ieUrQbHmfrKt1sgCDPEi+efEOMvKOnzsS9q/0kIYEnpqUdBiiy52FQarNSqV9Y2RoP5
pVOftFO3f4C0Fyc+ZiFEEZDOyrckZe5XJ7c3JIE2yVTlFoffZe0eEi5rKjMzrenYsMcTmdbD77/Q
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
mWfe4MXgxeDF4MXgRVArJ8oJ88wzzzzzzDPPPPPMM88884aNho2GjYaNglo5UU6YZ5555plnnnnm
mWeeeeaZN2w0bDRsNGwU1MqJcsI888wzzzzzzDPPPPPMM88888wzb8BuwG7AbsAuqAW1csI888wz
zzzzzDPPPPMGLwYvBi8GLwYvglo5UU6YZ5555plnnnnmmWeeeeaZN2w0bDRsNGwU1IJaUAtqQS2o
BbVVpFUk88qJcqKcKCeCWjmR48wzzzzzzDPPPPPMM2/wYvBi8GLwYvAiqJUT5plnnnnmmWeeeeaZ
Z5555g0boTZsNGw0bBTUglpQC2pBLagFtVUk88wrJ8qJcqKcCGrlRDlhnnnmmWeeeeYtQi1CLUIt
QgW1oFZOmGeeeeaZZ5555pln3uDF4MXgxeDF4EVQKyfKCfPMM88888wzzzzzzBu8GLwYvBi8CGrl
RDlhnnnmmWeeeeaZZ5555pln3rDRsNGw0bBRUCsnygnzzDPPPPPMM28RahFqEWoRahEqqJUT5YR5
5plnnnnmmWeeeeYNXgxeDF4MXgS1cqKcMM8888wzzzzzzDPPvMGLwYvBi8GLoBbUygnzzDPPPPPM
M88888wzzzzzho2GjYaNho2GjYJaOVFOmGeeeeaZZ555i1CLUItQi1BBrZzIceaZZ5555plnnnnm
mTd4MXgxeDF4EdSCWjlhnnmolRPlRDkR1MqJcsI888wzr5Ar5Aq5Qi6oBbVywjzzzDPPPPPMW4RC
bRFqEWoRKqiVE+WEeeaZZ5555plnnnnmDV4MXgxeDF4EtXIix5lXTpQT5UQ5UU4EtXKinDDPPPPM
K+QKuUKukAtq5USOM88888wr5Aq5Qq6QK+SCWjlRTphnnnnmmWeeeYtQi1CLUItQQa2cyHHmmWee
eeaZZ94i1CLUItQi1CJUUCsnzDPPPPPMM88888wzb/ACtcGLwYvBi6BWTpQT5plnnnmFXCFXyBVy
Qa2cKCfMM88888wzz7xFqEWoRahFqEWooFZOlBPmmWeeeeaZZ94i1CLUItQiVFArJ3KceeaZZ555
5plnnnnmDV4MXgxeDF4EtaBWTphnnnnmFXKoFXKFXCEX1MqJcsI888wzzzzzzFuEWoRahFqECmpB
rZwwzzzzzCvkUCvkCrlCLqiVE+WEeeaZZ5555pm3CLUItQi1CBXUyokcZ5555plXyBVyhVwhV8gF
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
xBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQ
QwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMM
McQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHE
EEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBD
DDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwx
xBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQ
QwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMM
McQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHE
EEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBD
DDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMMcQQQwwx
xBBDDDHEEEMMMcQQQwwxxBBDDDHEEEMMn51hlhT3HtJJku6CuInMU8xdbR7NXGD9HOWDmkH2N5E1
YJLtiJyYxfWLi5qC1usqZF8H44fwNkn/Hr7vxaz/+KHZj1q/MBPb2PrVM7q840mY/jVM34fJw3jG
aviQpjNgX8L37Kafi+WqsWEST6M4G7SHeN6/1sE0WTRVhhhNZ3pDzX09yXahyl28S+1XFzTPZDG2
HslWXDP160JwjfaoIqgC/DKstZqH53B+/dQB2k/7dSOM7QDmmWeeeeaZZ5555plnnnnmmWeeeeaZ
Z5555plnnnnmmWeeeeaZZ5555plnnnnmmWeeeeaZZ5555plnnnnmmWeeeeaZZ5555plnnnnmmWee
eeaZZ5555plnnnnmmWeeeeaZZ5555plnnnnmmWeeeeaZZ5555plnnnnmmWeeeeaZZ5555plnnnnm
mWeeeeaZZ5555plnnnnmmWeeeeaZZ5555plnnnnmmWeeeeaZZ5555plnnnnmmWeeeeaZZ5555pln
nnnmmWeeeeaZZ5555plnnnnmmWeeeeaZZ5555plnnnnmmWeeeeaZZ5555plnnnnmmWeeeeaZZ555
5plnnnnmmWeeeeaZZ5555plnnnnmmWeeeeaZZ5555plnnnnmmWeeeeaZZ5555plnnnnmmWeeeeaZ
Z5555plnnnnmmWeeeeaZZ5555plnnnnmmWeeeeaZZ5555plnnnnmmWeeeeaZZ5555pln/k9gvjCE
ozAO0zX7UqfTRdVX86j3YZikoxe0bEa5bu1aNaOtW6i83kyiENrgrRDWvGIKA1uzYJb1DeJPoWoR
7Fecb0G5cuXKlStXrly5cuXKlStXrly5cuXKlStXrvzPU77Ph4BXT/vAZ7+PALc/KNv+BPCq5hOr
Z/lgz+fQf8Tn0D5o3tfjZmSmm/6Vulv8eVZZKSRrc3Azjiafd5FcB34sNljZk6ypy9EoWxazH79m
M5wrKvch2dAofYh+/zDtp1lddR+fv8uVS5QoUaJEiRIlSpQoUaJEiRIlSpQoUaJEiRIlSpQoUaJE
iRIlSpQoUaJEiRIlSpQoUeIsMbkPcc2Xwpep/fqIJx0YGCZ3d9G0+BXrb9F43Jtf/7j9jerG72mX
via/+YZ3dcb8i+e/tI667bNO97Rz+qZ7+ub4/FXFN/NDnF15CNvfM686ZxB/Tb6E/mosLuNRLmk+
MgfPdNbiB8Z719fgh9uj33BoIWm41XmnGnI/D+LROKx+Xg/aJBvcj59DGlqD7N9Rt9s5Oeked9ut
DN8oij/lJZS72nxaYgmuvk+lCuczvePASK8yqebgyLAhOB9Z0e/MTsURpm9pNM1Hv43iDHrY7zhT
ddf3GcT8WZPGtZc1VtlKce11zzvHT15RL8tnfY3zoyKDwmxdx/lJf/oINAu93Nlwjdab8CmKt47D
1BwrKk3yLtSD0ei336PJNCvsF4/HbB9IWlS9D/4P00E6DaNX29xrnigVMdmz8SZJy6GFPt1mdPpx
lnA/O5C310q7/Glzv+MUYjRaNb3V3ovb1bf6nTsk1sBuPuMfG06IrWJK872dWXVs6ylP2dUL2K7n
bP5FrXSteVLXYfXzsAlp3hrWr4N/1N8PLbWQ7QP1B3Q3hfsssnePG779zku+q3uhzpW9wNO4GGKI
IYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGG
GGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhi
iCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYogh
hhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYY
YoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKI
IYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGG
GGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhi
iCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYogh
hhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYY
YoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKI
IYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYohhMSnuPaST
JN0FcROZp5i72jyaucD6OcoHNYPsbyJrwCTbETkxi+sXFzUFrddVyL4Oxg/hbZL+PXzfi1n/8UOz
H7V+YSa2sfWrZ3R5x5Mw/WuYvg+Th/GM1fAhTWfAvoTv2U0/F8tVY8MknkZxNmgP8bx/rYNpsmiq
DDGazvSGmvt6ku1Clbt4l9qvLmieyWJsPZKtuGbq14XgGu1RRVAF+GVYazUPz+H8+qkDtJ/260YY
2wHMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzz
zDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wz
zzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM888
88wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPM
M88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPP
PPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzz
zDPPPPPMM88888wzzzzzzDPP/J/AfGEIh+MwKPc1XdTYmxXmwl/QihludW3XohlW3EptWbOMUng9
vXJo8wIqDXjNGhpWx1XM7D7Lovdj959fHKXMzVzMW6wUVb2aqkK3F1SvQcGzrBVb+x+xtdu7/ziP
w+TuLpq+Kozyt2g87s2v50IXva4arqzdeN3z3iAehvE4jB4fXejXZJrcz2672LPl1aNu+6zTPe2c
vumcdNvnr7Y22WQStoI6p+1i0N3g+03ozSKvl3O3nXF0XMujtJfNK2q+h+qC/wdQSwMEFAACAAgA
JIEGSRf424utFAAAWWoHADIAHABzdG9yYWdlL2luZGV4ZWRkYi9wcmVmZXRjaC1pbnZhbGlkYXRp
b24tc3RkZXJyLnR4dFVUCQADFG6mVxRupld1eAsAAQT1AQAABBQAAADt3UtzGlmaBuC9VvoJGd5Y
iqiKQICuOxdu9yhipvHYruk1ItMSZZQwCVjtzfz2SVJcEvICkuVuV/SzqKgCznu+w8knE1TBB9dv
f/sYJV+j5OpqNI7it799iP53Fk2mnV7cj4bDKDz4PR6k91y//e1tb9q76U2iqpHBr8HhwfWPmy9c
jO+M4jjqTwejuDMcTbJxJ+3Geat91jq7bJ+fNBvFGuvM1VV/K/8uGd13hoMons4rbs3WOG8eHN33
BvFxULLwHVMd5WY6a5+cHRcX9inpxZPeYmW9m1Ey/ftgejeapdswHN70+l9qqmfDcxNkG3YU3pQO
HkfJ51Fy/6Yskw7cWEd6PJLe/D8/De6j5N0gSTf5qPGP88+fP5+eNXpRu984Pviv6H6UfEujv6Wr
HMS3H6ejpGpR2wX6o/v7wbQbPx7axVT5eYrbcnQ8n2V9HD+Nli4eJ8slFvN1b/5Ihy6WFUbDaBp9
iPqjJCx7vBeGiwdz4ooz1x+/x/E7y9d52iqY7V7tcr/ruQoLCwsLCwsLCwsLCwsLCwsLCwsLCwsL
CwsLCwsLCwsLCwsLCwsLCwsLCwsLCwv/WcIPyWCa/xj/u0E8mNxFdR/TDwfh+5p2ipLEIP46+hJ1
l30Vb+IwF8q6LI6OawqOaoJZe0ZN9q4Xh8NoeXu1hEm61E93URIFvfSfk3a7dXrabrYbwTiKw0F8
O++DeJeWSbdrucHLOZYtHWXNGOUjax4tWXHhrqPjfPvJ51bYOJ53uux6ylmxl9mZi4tWc7UzT5vq
/Wg8jsKgFwero/hLEI8egmldjV2r7sySJIqnq0o1gUXnzyLxuCurXG3P0OPhyvflHHz87/9MT5dC
189tNO0mf5mkwWF68ixnuI4/j9ICy8attFJFvFgoyO5KbwWfB8MoeH34OkgXGw4mX+rPy7fFJecb
euZdWoVg2QH9v10IT84yhFWnwXIlqxrpwG6+ze3qKln0u43ux/ORYcmQUbw5y8dZvx9NJulSfg36
j8czSOtN5gdyMMk3rp2dttvzCVdTpVs37k37d3/5uupOy3V0tW4axxtn/Lwlr+rJZe16uXM4ODpM
96Z91my0Ts+b7YvjQhdgzUbvPNmjbJ+rugYL/X0vdb63L378+Z6r8cPO97mo9dm+sbOt9JhXnfrz
zd04H9PkSbPfuLk5PU9j33kZqD2Fu1ulX+aInp2f/St3O7o5adS9wqd7lkz/5/FU7qSLuI1q2w43
+lmTqDeNqrLFntZ0M5rPf49S4eUmuh3EufHX8T4vG9up2ncWjzKeeEFdrzB3Iy3TmW/a/OVlrTJ4
GEzvVpfT/LW0eXERrFt9g/WVbn6EW5eNxknrc6PZP72MLk9Pjw/2P7AlrbGbt5cbUnhd+H18m/TC
6G9RFEbhPq8H7YtGehmKHkru//neeD7xVSvXQJudC7n392nm6DA4PC62IG+PfF4X9M5pV03OVd3L
ZeuofnBHA3JhfE2vcXFsfet4pxCoOKvLDkL6J9j8bOt+XJ5n12+D00arddk6uTy72Otvrc73bkZw
1F801R/XX1HTmp2yw1JxWerspFQ2KA/jBdw9tp5vbN3DYDjsFDrKD1+y4E7dhQ7672+vf2r7/C7W
paEq2vWDn7bcHO3SaffZjSeZLquy+d6gnf4N+uz3BjVnSBmDwhlSQrh01YcVY7pJ4X/HFLF/HsxP
veV7hJ/vpW9rV3IvfyXvA+ZPZvE34ZvP0yjZeJ/xuCnZe4PD73pRndYct/K3KxtDouXfA7suFquB
W1BKV5KWehOG8z+00ptfo2Baf4nbvDhv/A/A8WwuJwwLocX7yfe5xwUFBQUFBQUFBQUFBQUFBQUF
BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFk0XLZWeWTEZJVbS7MaLis/aP31/wH/NPoA/i28qW
wlwfRunnrmubCcoSxWaCs8vmRVkzQRSn98yil/rahPz3C+z79MsLbvVL1ExV9kuhjR1tTDXTfc9z
//5Wnr1CP1ejRM2Pos7bAXob3+ix1Yv60q2vy19W3Vn4KU2wf5btzn0Vyg/b+Po+qHQFy9LX+/aN
/4t6eyqu2B/nLcI7mqOyMYW+p+3kSzX3LV/DdnXs5F/rCvfVH7bVsJrW+tWQ+jNv9Ypa++0iHxbX
7ST79+EvwWNPUDDJWkMfe1EbzfPmjlmy7xFKp/kSfSufpHnZbFVOsvomovoZLi72a4l9/7S9zjcL
VnN8X/UGJvdYHkauK33Ri/aEbrP2SeOYWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZ
ZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWW
WWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllm
mWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZpll
lllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZ
ZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZ
ZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWW
WWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllm
mWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZpll
lllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZ
ZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZ
ZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWW
WWaZZZZZZlehuDNLJqNkl9r1yLzb3L31u5kbWH2M8oPq9XbXIztJlD7t+DboZ7eDh8H0LkglBWk0
+XYVvDp8dfA4NBhMgptBHM4HD0cPUZJpen34OujFYTAbj9f37AWp+/Qnvx+m7sZeb3Pqlh+z7J6r
q0k0/Ws0/RBNZsM5nHRTkjmh7Lx5MXjLYv1RnG79LHo3i7P1BUfT0WOpIrX0zE59RhXP61l6N6bc
BbhQv/yB+iO5ObYayda4eszXG4MrLoL7Vl7zvH7u89oP6XXt8dwegCqqqKKKKqqooooqqqiiiiqq
qKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqii
iiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooq
qqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqo
oooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKK
KqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqq
qKKKKqqooooqqqiiiiqqqKKKKqqo/ttQ7d78kS5+sYlhNIymK62FRSePU7/NRn2I+qMk/Im0h7ll
7cIebj2F0vvrSWwMrfG2Mawe+sbGVjhfzNeLb6P0mCbZvw9/CUbZYQwm80HBaaPVumydXLbODjpJ
lG5kfDvXM6f7MJjeBenUQbqE5NtV8Orw1cFC9WAS3AzicD54OHqIkuzQvT58HfTiMJiNx+t7dqwt
W3+6uOzQly6tcXF5Vj/J7/FsEoW/DUc37wbDxZQTddVVV1111VVXXXXVVVddddVVV1111VVXXXXV
VVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX
XXXVVVddddVVV1111VVXXXXVVVddddVVV1111VVX3Z+u7j4/j/D2eV+Fv9+PI2z/hMD2byO8rfgu
/xf5yQM/rPH8H9b4Mb8n8PSEH/jYV/t6Z6br9RWWu3l7PllhSFqzdzMcTO52gV8N/LRZsHQlaak3
YZiedPObX6Mg/1BxDaP1r5UUfrxkPJt2k3Suqp8teZ97XFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ
UFBQUFBQUFBQUFBQUFBQUFBQUFBwHhyNo7jiQ+GLaLd6xLPaEfqj+/vBdPMj1g+D4bCT3f9p+xPV
tZ/TLnxMfv0J7/JE9sHzX4OTduO81T5rnV22zy6bFwcln8yP4vSeWbT9OfOyLob46+hL1F3uxZs4
zIWynTl6oU6O79jvXR+D72/vfk3TwqjmqWaLqsne9eJwGC1vrzZtkm7up7soiYJe+s9Ju906PW03
240gxTdvsSjb92nvS/S36B/TD7M4Tg/01qFa9IUsOpBG8fBbMJmNx6NkOglO8h/c/yVr2HhIKw+T
qBd+C+56X9Ml5O0VN6e+P2NBvHoXChNmtnY0wHRKQxWNMP36wU9b7rpLpXwN++xGvk2l9rRNi5VW
2Txt2xet5rNPxp+LdvWMWZdJb5rfzus4f5yfvwP11N7sLFzB7ia6HcQlvTkVXUmFA13WmdQpecEo
RXJYMSZ95btJz/tPtc06n9Oj243TwHjezLfXyfDmhx2eHR2Mg3BZeqvezwW7eCxzLWA1Kj5Oe8ku
FNmYwvHeTpY1ZT3nNXT59mrXq2j+bVjhvvqDuhpWfRzWQ+rP3tWbvfqO3V58G6WHMMn+XdGy2zxv
fm/fb/Oy2aqcpBeG+8xwcXGx1xn5/ml7vV/r5Puq99a5x37Ctl9mmWWWWWaZZZZZZplllllmmWWW
WWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllm
mWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZpll
lllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZ
ZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZ
ZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWW
WWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllm
mWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZpll
lllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZ
ZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZ
ZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWW
WWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllmmWWWWWaZZZZZZplllllm
mWWWWWaZZZZZZplllllmmWWWWWb//GbTUNyZJZNRskvtemTebe7e+t3MDaw+RvlB9Xq765GdJEqf
dnwb9LPbwcNgehekkoI0mny7Cl4dvjp4HBoMJsHNIA7ng4ejhyjJNL0+fB304jCYjcfre/aC1H36
k98PU3djr7c5dcuPWXbP1dUkmv41mn6IJrPhHE66KcmcUHbevBi8ZbH+KE63fha9m8XZ+oKj6eix
VJFaemanPqOK5/UsvRtT7gJcqF/+QP2R3BxbjWRrXD3m643BFRfBfSuveV4/93nth/S69nhuD0AV
VVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVU
UUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFF
FVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVV
VFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRR
RRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUV
VVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVP9tqHZv/kgXv9jE/jDqFdeaPM7Y
mT+YG/4TQe9vLW2X9X7JU6l8rF5GYXg1veLQeveFDa+gvz1veqxH2a1gkt08bbRal61mo32x13nR
+b4NyJ8dheT6YGQVS0mVn05lQ7fPqE4Ngxc5WVySn39J7iRRulvx7fw6Nr+IPgymd0GaDNISyber
4NXhq4PF9XUwCW4GcTgfPBw9REl2JXl9+DroxWEwG4/X9zwj4aXhn6e9P7q/H0wPNnb5YTAcdrL7
c0MfV122XWndeLXyTi/uR8NhFBYqpVe68fyJ1D7wtPnXS17McdJunLfaZ62zy9Zpu3FxsHVxH02i
rUGts8bmoPvet5uoMx95vTio24mTZqWbwiU0m6hmK/4fUEsDBBQAAgAIACSBBknOP+2XrgYAAPhV
AAAyABwAc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtcmFjZS1wcml2YXRlLXN0ZGVyci50eHRV
VAkAAxRuplcUbqZXdXgLAAEE9QEAAAQUAAAA7VxLc+M2DL77lJ+goz3TnZEtWXZ8S+RN62m7TuNs
e5YlOlEjiy4lJ5tLf3tJvUyKD8mvrnfCQ2ZiESAg4ANAkJJm09sFQK8ATSZwA+Lp7QP4ZwuS1PVi
H0QRCDpf4xBfmU1vp17qLb0EyCiNT8ZVZ3a++YKC3oVxDPw0hLEbwSSj69vmyLIdy7m2R/2BycvY
8Uwmfo3/DsG1G4UgTonE2mzmaNDprr0w7hkCxRum6lIzOXbf6fGKPSIvTrxCM28JUfpXmD7DLTZD
FC09/0UhPSOnJsgM1g2WQuINQCuI1jciHkzI6IH9gTzy72O4BuguRNjIXfPbaLVaDR3TA7Zv9jqL
P34LUyLjFmsZxk+LFCKZUnUBPlyvw3Qe564lwzsHPcLS4TkVxUijgR9U2zanV/qyNmFuTil9EAb3
CpsKOML4Fb6AeWncmzigmDJTd3sKgVDBmPmIMQ/BIzeJSKt/uWvdHuPtvmP2ch/eYYkQveN7BxFI
QUlfuljkQzGlYlSgYYOCKyvIFJRb7tmLgwhMM2HNZMXvyk8J1uvxGSBgePivb9vWcDgeWwMDZ60A
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
rVTTBzbhEUx3fbbspOx2zdSNyzxjtDNOszCQebpmWYP86TUu6xIcvRYu/JZebLNkKfPWsyTpzXp2
xU1ovZMI26/jXjymCS63OGj2+ol7CNv7XIK5DTwuXKYZfc2XfdEBfXIN+5o0Zoksi5Z1ZO70YbyY
Y0RY35vUqLlMuAqGSQOmX4LhQ/6UUnevppvLqrxX0f0u/pie/4/pkgs1kia9Aj/mQEL9unqSYC5r
7xudu+BLr/+P4K+latgveU9xuTqWXIzRhbG1bDBaOrjrDMMNDvt3zeFdWNInnV43KK0y4kkMTzY+
/fR6OLOhIX1Zs29bNxQyF2guMAo3dN0UXfNMu67G3OTJ2hwA3pZ5XcAtbTYaf18Jf0dhzNGA8qZ3
H/zcHfbbweDf7eH17yOIjBRCyZRMyZRMyZRMyZRMyZRcjpTy4LWwqLMcu5S1MxG7srGXpW8+dFMy
JVMyJVMyJVMyJVMyJVMyJVMyJedU8vL6XVXSq4R639it2+nefJmi35CSt7sgmZ3ZmZ3ZmZ3ZmZ3Z
mZ3Zmf3t3v+d/77updRd2PYi2yLbItuUTMmUTMmUTMmUTMmUTMlvWMmFtbtqFm7NC75e19svKZmS
KZmSKZmSKZmSKZmSKZmSKdlrsOMivDkj1SuFeCmZkimZkimZkimZkimZkimZkimZkl/ZG7cpmZIp
mZIpmZIpmZIpmZIpmZIpmZJf43PJvktFyZRMyZRMyZRMyZRMyZRMyZRMye649lwyJVMyJVMyJVMy
JVMyJVMyJVMyJbvjupw7rsWSKZmSKZmSKZmSKZmSKZmSKZmSKbmsd1yvNyZc7A3aYsmUTMmUTMmU
TMmUTMmUTMmUTMmULJYslkzJlEzJlEzJlEzJlEzJlEzJlEzJlEzJlEzJlEzJlEzJlEzJlEzJlEzJ
lOwd1+XcEL2ysZelb4FPTlEyJVMyJVMyJVMyJVMyJVMyJVMyJZep3zV+R4qSKZmSKZmSKZmSKZmS
KZmSKZmSKXmr3/qVP1K9El69vYuSKZmSKZmSKZmSKZmSKZmSKZmSKZmSKZmSKZmSKZmSKZmSKZmS
KZmSfQmqVGpRMiVTMiVTMiVTMiVTMiVTMiVTMiWLJXvHNSVTMiVTMiVTMiVTMiVTMiVTMiVTMiVT
MiVTMiVTMiVTMiVTMiVTMiVTMiVTMiVTMiVTMiVTMiVTMiVTMiVTMiVTsrd3UTIlUzIlUzIlUzIl
UzIlUzIlU7K3d3l7FyVTMiVTMiVTMiVTMiVTMiVTMiWLJb/cO64pmZIpmZIpmZIpmZIpmZIpmZIp
mZLdcS2WTMmUTMmUTMmUTMmUTMmUTMmUTMliyd7eRcmUTMmUTMmUTMmUTMmUTMmUTMklSykPXotF
YAt7PAdOc9A9DbFrv/P7JXnzZYp+Q0re7oJkdmZndmZndmZndmZndmZndpHtMiPbWTHqFWLemVMK
haPfItsi25RMyZRMyZRMyZRMyZRMyZQssv0szxZvSvZFqsdqni+/UhV6dlxkW2Sb2Zmd2Zmd2Zmd
2Zmd2Zmd2UW2PbMtsi2yTcmUTMmUTMmUTMmUTMmUTMmU7CtZlEzJlEzJlEzJlEzJlEzJlEzJlEzJ
npKmZEqmZEqmZEqmZEqmZEqmZEqmZN+SXnN8+OU9703JlEzJlEzJlEzJlEzJlEzJlEzJYsnuuKZk
SqZkSqZkSqZkSqZkSqZkSqZkSvb2LkqmZEqmZEqmZEqmZEqmZEqmZEp+3UrOr9+lRF0g1Fvms8ux
9C0QtKZkSqZkSqZkSqZkSqZkSqZkSqZksWR3XFMyJVMyJVMyJVMyJVMyJVMyJVOyWHL5seT1veNa
LJmSKZmSKZmSKZmSKZmSKZmSKZmSKdmXoCiZkimZkimZkimZkimZkimZkinZ95IpmZIpmZIpmZIp
mZIpmZIpmZIpmZJf2veS80eqPZdMyZRMyZRMyZRMyZRMyZRMyZRMye64FkumZEqmZEqmZEqmZEqm
ZEqmZEqmZEqmZEqmZEqmZEqmZEqmZEqmZEqmZEr2XDIlUzIlUzIlUzIlUzIlUzIlUzIlU3LpUioH
r9vyNO/2KW3Ln/vOMTdA9KXUFWZndmZndmZndmZndmZndmZndu8S8y4xkW2RbUqmZEqmZEqmZEqm
ZEqmZEre9qeki+E0x53mJSH2GaPFWxijf5Gi35CSt7sgmZ3ZmZ3ZmZ3ZmZ3ZmZ3ZmV1ku8xnttdu
ZZFtkW2RbUqmZEqmZEqmZEqmZEqmZEou+sx2GVHw1DeWrRq1jouAl/P2s1j6FuA4JVMyJVMyJVMy
JVMyJVMyJVMyJYslbyaWnGXwAu/2FkumZEqmZEqmZEqmZEqmZEqmZEqm5FfzlSxKpmRKpmRKpmRK
pmRKpmRKpmRKpmRK9i1pSqZkSqZkSqZkSqZkSqZkSqZkSnbHtTuuKZmSKZmSKZmSKZmSKZmSKZmS
37iSC2t31Sxc79eb8/l2Qx/IomRKpmRKpmRKpmRKpmRKpmRKpmSx5IKx5JXjwzkj0L4ERcmUTMmU
TMmUTMmUTMmUTMmUTMmvNZZMyZRMyZRMyZRMyZRMyZRMyZRMyRtU8uu6S1f8u/xnqVMAtvZ7yF9K
SRN9jisQszM7szM7szM7szM7szM7s7v/2/3fItsi2yLblEzJlEzJlEzJlEzJlEzJlPy237hNyZRM
yZRMyZRMyZRMyZRMyZRMyZRMyb5LRcmUTMmUTMmUTMmUTMmUTMmUTMmvWclZ3l3Bz5n0LSxpSqZk
SqZkSqZkSqZkSqZkSqZkSqbkFWLE2/GlZ3dcUzIlUzIlUzIlUzIlUzIlUzIlU/LLUHIxxJYZb46l
bwGOUzIlUzIlUzIlUzIlUzIlUzIlU7I7rj2XTMmUTMmUTMmUTMmUTMmUTMmUTMliyWLJlEzJlEzJ
lEzJlEzJlEzJlEzJlPwsSi6s3VWz0PeSxZIpmZIpmZIpmZIpmZIpmZIpmZLFkp8nlry+d1yLJVMy
JVMyJVMyJVMyJVMyJVMyJVOyL0H5EhQlUzIlUzIlUzIlUzIlUzIlUzIliyVTMiVTMiVTMiVTMiVT
MiVTMiVTMiXH9SklhHjLsPaSjl3K2Pnund7gh5kpmZIpmZIpmZIp+U0reRMLSJu0SZu0Sfu1SHvD
783a1J3mq0G8SKXKgfhNm/VlzgpsSNrbPfmwiTHW8w0yXNZd1l/BRe3lT1+GB9qdKfuk0W0GnU7M
bPNg2LuNdbIFFlhgwfMv0LtZkL7g8RL78Ovj2KV2UK8ez6dpdnqD4Emi2mF1PtFN46+L4GSU8uxh
DPx0jb39xKHNwkBrvKFnrp7/B1BLAwQUAAIACAAogQZJq68wsUUOAADnaAQALQAcAHN0b3JhZ2Uv
aW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtc3RkZXJyLnR4dFVUCQADG26mVxtupld1eAsAAQT1
AQAABBQAAADt3Utv20YCAOB7Tv4JRC+1gQbQy/LjljhN18Cizibp3mWJdrSRKa8kJ81lf/uO3pRE
UlKsOI7zHYrC5HBmOO9vhlXPX718F/c+xb3T0+5tnLx6+Tb+713cH5w1kmbc6cStZ38l7XDl/NXL
V41B47LRj/NCRs+jvWfn3y6+1iT8WTdJ4uag3U3OOt3+KFy5Vjqq1urV+kntqFwpraYxf+b0tLn0
/Ote9+as046TwTDFpdhKR5Vn+zeNdnIQZWR8TVT7qZjqtXL9IOvl28mn7sf44jbuNYYRvUha73uN
pN8YRfu+fRP39g8KstAtePB1uxcKPP/ZD42k1Ymnf8+y0A+Zf/8h7sVRI/xTrtWqh4e1Sq0UhWpq
tZPrYaW8Dsl0e19CrcSdeDCLY1pn8/J+353VX2bIgrsZOV65tH8Q7Zf+Prq6ujqslxpX1VbpIDy5
9pVHie2mZI6Pq5VZyWwX1Zvu7W1ov40kmtXib1HS/RwNitJYl+uzu14vtMBZSgUPhCBX3d7N5Ilx
qcyeG9XBfusy88lxdb1sND+GLL0LTSF+9u5f/2wPhqHSV09Pr+PBRe/3fniw0+5/mMZwnlx1QwLT
Ph1Synl8NaFodCn8FV21O3H0696vUchsq93/WPCmrXbr1WqWU+2vOezAKw9mVej/1jXCcn3UCPO6
wTQnszRCwIv0CHh62psMhd2b22HIVkaQbrIYy7u7ZjPu90NWnkfNcX1GIb3+sCLb/fSYVj+s1YYR
zqIKRXfbGDQ//P5pNnDN3yauXpYOFnr8cLTOe7nRSJ7qw9H+XiibWr1Sqh4eVWrHBysTREFBr+3s
8aic8yaUlaF/V/29dvzt+3sqjW/W34ctat7bF0q2Guo8r+sPC3ehP4Yny5Vm6fLy8Cg8ds9hoLAL
XywlvZsarR/Vv2dpx5flUtEMH8qsN/j3uCufhUxcx6l5fs1Spxc3BnHes6vLnVAYla9fo+S0l8v4
up2kwp8nm0wby08VrizGLWPLAXWew9QfIZmzYaENp5d5q4w+twcfZsNpeiytHB9H81VgNB/phjVc
PSmVytWrUqV5eBKfHB4ePNu8Ysdvm7owymZGgazMC3/dXvcarfjPOG7FrU3mg9pxKQxD8eeM649v
4bnlrJVaq4/6wsXlf0JVjcet52F2ivYOVsp5JeSomOd/TkOcJ63474x6St1duTcrtXk5LeS71ixt
kKGLZNz08zpE5hvk31ypoTXFUQCi1bA5o8J0cFx5IGc8yKq+RmvYKqKLd9Meev4qOixVqyfV8kn9
uHgqeZOX/paFEe03G53OZcjrQfFYHNI8y6qWnAEtM+xCVrICpRvGrtrdqCFv1uJmbT7r8iYFOw65
rn1NQm3SssZBC9vUuBs/j9KVOmlF9VIYGcf351eezSaIMK72u71x0wtJRCEnYYEc/bL3y7Oz8a0w
ol62R2NX1Ol+jnvRx/jLSCxhAIzuwmpwdmWL1rplcW7fQmfVWNg2swe4xds7bo/dm5v2YHFY/9zu
dM5G14snz3skuLbtLye/0ANWbq6puPE7Fu05Lb9skdOnnSHzobxuURx4u+ymGm9mtJuUxlYtOCuV
xVVu7bj69avcgl6R1QxW+kZGE87M9V5OmIvei8tub01jv2oPp4LpavfxLeKWSiW1kMtY0Q5fZrK7
8eJqEPcWVszjQhmtcvfutTwcFNRb9sJ7IUg8le26wWIWcKmhZOYkJPWi1RpuGYQ/P8XRoHiIK1ix
3t4NW06rtfLQREZvUvdz2vfrdhKy/Y9hrYdqzAVpauzLfNfCDpz1xGoHrp9UjrM6cJyEK3fx2iFm
866+9etnJ7g0RhVElXUEUVqzlC2I7j7vfv/pc6OHHtfglB/jqAuGdU3+TsauN04mc/eLtQlvs4Xy
oxT3fN3w4psVfPHaI+RgmvT5pruO32k+zRmx3w03mNYsSEZhVtYay0/uakE9nYbWzZLp6WrlWnG1
zYIVbMzOghT3vNmkWHg29XYybvdG/977LRrPw1E/JclS5aiyJpa42e0Nz7KHHsyMpHJSqeZG0mi1
Nonh+HizbZE325V1eoGe3xzf5K1BUvfSDSO1pzlZ/22xwquVx81vYRV0HQ/yFkB/xINxAe6moV9P
o1vX0q/T6a5eLC7/ebj8Sk2FKW7t8xLIP8JZaGNFDb5crWzW0v7Y9lU3a2v51Zm+mdna+sO7/bvO
IEQ46N01B3ehxs863STeWaPEjgx2PPj+0NNhygMt1Xe1Pfa41k8ZUQ0aH+M/478Hb++SJFT0UlVN
RsXJeNdNOl+i/t3tbbc36EfldGf5bbTN+zmk3OnFjdaX6EMj9Kay7cGnuz1Isw+q2ae1G8u8O9tD
JuKfXcTjSP5K7vpx62Wne/m63ZlE2YdoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZo
iIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiL4/oreB8Zbg
hmiIhmiIhmiIhmiIhmiIhmiIhmiIdhLtJBqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqi
IRqiIRqiIRqiIfoJI/rhXLuLD8c3hfF9vhuHaIiGaIiGaIiGaIiGaIiGaIiGaIh2Eu0kGqIhGqIh
GqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIh2q9zQzREQzREQzREQzREQzREQzRE
QzRE/7SIzofxlryGaIiGaIiGaIiGaIiGaIiGaIiGaIj2ObfPuSEaoiEaoiEaoiEaoiEaoiEaoiEa
oiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEa
oiEaoiEaoiEaoiH6Mf6w2GOB8eMj5jabFMC/k9pAeqRHeqRHeqRHeqRHeqRHeqT/QUi/jch3wf97
kP7+vyf+1Pn/Y5L+gRD9uCsS6ZEe6ZEe6ZEe6ZEe6ZEe6ZHep+4+dfepu3NxiIZoiIZoiIZoiIZo
iIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiPajaxkw3hLc
EA3REA3REA3REA3REA3REA3REA3RTqKdREM0REM0REM0REM0REM0REM0REO0k2gn0RAN0RAN0RAN
0RAN0RAN0RAN0RAN0RAN0RAN0RAN0RAN0RAN0RAN0RAN0RDtc26IhmiIhmiIhmiIhmiIhmiIhmiI
hmgn0RAN0RAN0RAN0RAN0RAN0RAN0RAN0T8woh8/jB8fMbfZeAD+ndQG0iM90iM90iM90iM90iM9
0iO9j8t9XI7JzsUhGqIhGqIhGqIhGqIhGqIhGqJ9XA7REA3REA3REA3REA3REA3REA3REO0kGqIh
GqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqLnarovhr+2CCEaoiEaoiEa
oiEaoiEaoiEaoiEaop1EO4mGaIiGaIiGaIiGaIiGaIiGaIiGaIiGaIiGaIiGaIiGaIiGaIiGaIiG
aIiGaL/ODdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQ
DdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQ
DdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQ7X9xBdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQDdEQ
DdEQDdEQDdEQDdEQDdEQDdE+54ZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZoiIZo
iIZoiIZon3P7nBuiIRqiIRqiIRqiIRqiIRqiIRqiIdpJNERDNERDNERDNERDNERDNERDNERDNERD
NERDNERDNERDNERDNERDNERDNERDNERDNERDNERDNERDNERDNERDNERDtP8mGqIhGqIhGqIhGqIh
GqIhGqIhGqIh2km0k2iIhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiI
hmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiI9sNiEA3REA3REA3R
EA3REA3REA3REA3RTqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIhGqIh
2ufcPueGaIiGaIiGaIiGaIiGaIiGaIiG6O+E6Htj+GuLEKIhGqIhGqIhGqIhGqIhGqIhGqIh2km0
k2iIhmiIhmiIhmiIhmiIhmiIhmiIXu6MT0h1Pwv8i032oNsCP0plAP8W4Ed6pEd6pEd6pEd6pEd6
pEd65+LOxZ2LY7JzcYiGaIiGaIiGaIiGaIiGaIiGaL8VDtEQDdEQDdEQDdEQDdEQDdEQDdE/64fa
Gxt4F+DOgfGWvIZoiIZoiIZoiIZoiIZoiIZoiIZoiPY5t8+5IRqiIRqiIRqiIRqiIRqiIRqiIdrn
3D7nhmiIhmiIhmiIhmiIhmiIhmiIhmiIdhIN0RAN0RAN0RAN0RAN0RAN0RAN0RDtJBqiIRqiIRqi
IRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqifc4N0RAN0RAN0RAN0RD9vRH9EDdA
HMRBHMRB3Gm202wQ/zkgvuWa5ftN2iatJztpPa3tzEc5Hi3cDQvH28wpyQ033HjwG1mDXxhFktne
0FkjacadTtwqjGY+jEyuzsfn6mGtdLwYptnp9uOlQNV6aTHQTePLZXw2DHk+mbCXnyhXcofvlclk
FFHrqRS3G248rRv/B1BLAwQUAAIACAAogQZJC9c78sgFAAA6JQAALgAcAHN0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWFib3J0LXN0ZGVyci50eHRVVAkAAxxuplccbqZXdXgLAAEE9QEAAAQU
AAAA1VpLc5tIEL7rpJ8wt0hVcRUChJBusmTXqmpr5Y2cvSMYbNYItAO2k8v+9vSAgIF5AJZUSQ6p
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
/ReSujdzW6/2W9hB8X9QSwMEFAACAAgAKoEGSfiGyZUHAQAAJQMAAD8AHABzdG9yYWdlL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1jcmFzaC1pbi10YXNrcy1wcml2YXRlLXN0ZGVyci50eHRVVAkAAyBu
plcgbqZXdXgLAAEE9QEAAAQUAAAArZLPToQwEMbvnPYReoSDCX9KUW4CIeFkovgAI524jWW6FtzE
t7e46uoCGpM99NBmvt98802bqrhDu0eb5xJGeIABS0OE3agMldoMKNkFi3iYJVwk4opnURx696Se
X7CpimqmyfPuRF9b05daIY2OtDmhhVns+T0oCtgM+ifK/0YSPBKBt8BQtDdPeLNDCxPommRrgQZ4
x7aqR+sHXnOMweyQquIWHWcYS6AOtUa5RF6unJydnbcekfllsFpZ12lduwWSGj/vXxENrmW7RYsM
3Ik4T9KUxzxkzp9U9DhNV7s2xr4eTE8Pxx/Qmh+jf9APC9sEzOciDpM0i/llcF7SqnCe/v+q3wBQ
SwMEFAACAAgAKoEGSXC7JPUqAQAAMwQAADcAHABzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlv
bi1jcmFzaC1pbi10YXNrcy1zdGRlcnIudHh0VVQJAAMgbqZXIG6mV3V4CwABBPUBAAAEFAAAAK2T
TW6DMBCF96w4gpcgtZIDhiCWgCqxStWkBzB4aFDJmBqnP7evUUVoE0gbNQsvPJrv+c2znWfJGtQr
qDiWLWDGNS94B9Yj1i97yLNkqMTxSclxiUPfl1VVBSHllQ/UJfYU+V05lYhQ6lqi5ex4jS6ZALYc
RQPDftWC4j3RkVuy2YICws1aMOYHQRSxiBh9UeOTdZnUvWxbEIQjkUP5hqB8I/rcGb+5TvdKAerD
SWcA01JJtRsJPFA/k/Wpa+V/v6mZvI8VkgcwZKdTjiU0DYhZrZNOk55tOaKYHKtHEl4+m7TWWpoU
zSwLn5WFHywnBvm3jdl8RS1WR16u8+i8kI4Pwojc8dKIf3zZ7Atj6hs5dWu9ceLY5gOx0KMmF49F
7nWVZsHTvC/r/gRQSwMEFAACAAgAK4EGSaHY03hVBAAAyhcAAD8AHABzdG9yYWdlL2luZGV4ZWRk
Yi90cmFuc2FjdGlvbi1jcmFzaC1vbi1hYm9ydC1wcml2YXRlLXN0ZGVyci50eHRVVAkAAyFuplch
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
1Q+CZbqubtcnKGwE+Lr6CsBzNxswLduj6qlZfbOqJwM5sguZZOiuJu5mLoPuQrFtvNEJ1kVaqnO1
aUP1nvAsUdYkRGnANQlBCgutHkhooDa3EWlI9p1Pu08+X3+8sbHmFQY9BDM03cwRdRa7BJPKjJ45
JZ2rBycNpIkibuJRv0KC87N0E1gUhLVEEVoCqgCJ6UMKuHzBKFFD3JlmZEl+3/ghmP0bjTqEUXoE
ZrBPuFdlAYs4+AK2ZrotKmAcwsozboSY7q8NWm9frLCGUQpRopcoWsOkoBB3yt5Pb5+tmD4WOMkl
piUIA/75n7k09O5Fo+IuD21+FXeXc8Pi3Ryvnj3Aglz1uu1zzp/UTyWIfUcfaTUMJCkNN2vUOc81
UPeHWHqI/RXPfdeEROTUU59DR9cVdOjoxvED7B1lien4c16LyfdNWZmqy/cNlZu97T8aF8v86dSs
YXOVu6eOYrZfRe+pb7zFkW8h4pE9sxDKb4PNIsYWe+1yohPpqB3oDMN6hwPdQhBgrkPwmSoy+Qyn
uUVDjnzIo1x/vhKcr/47x6N+2u+n/X7a76f9ftrvX1n1r6z6V1b9K6v+ldX/8pWV9Otb/qcGdVkA
sYf8yMN+jZaulilgTEzNrn1DRT+SrhEZllYl2jvftzj9fcX6iAl1jrEuzRDJb0aUe5De6OCjH1BL
AwQUAAIACAAsgQZJvZcst28FAAA2LwAAOQAcAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9u
LW9yZGVyaW5nLXByaXZhdGUtc3RkZXJyLnR4dFVUCQADI26mVyNupld1eAsAAQT1AQAABBQAAADt
WktzozgQvueUn8DRrtpU8TImviV4Muva2vHUOLN3AW2HHQxeQeLJZX/7SGBAgCRwbG88sz7kYOiX
uvtrfVKYTe8XgF8ATybxBqLp/Rf45xmS1EGRB2EI/tXXKCBPZtP7KUqRixIQSSo3yvXVrLLn7+Sd
OIrAS4M4csI4yeQ0Ux0bpmVYt+ZY09W2j0pnMvEa+g84XjthAFFKPTasqWP9arBGQTRUOIF3mBow
lixTs4a8xQfRS/wN5hvAiBq6i/xHjKIEZWYfgzXgwZBNw1HSKl5SLAnkIcDEExOLR1fdMsKL5d/W
s8FQGajfx8vlcmSpCDRLHeb1fiAeY/xKCg4hpFDIF+1QlfIxLluDKyl5y4mwI8Cl4WcBijP3hCI/
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
oWOu2kOi0YmHeVbqjbDlmsYxh4kiVufBoMHqHAhzve4JZKA253HSAvZFSJeLsiF+e33eXlQY9uA0
vXQyW9a5WGQ4qTXVRVDyRrh3VAeZSfLG781rIrjc/LaRRSW4BxSuJ2AKmJieKsDlE0aZGCDv0/86
RUua8iXORP34Z5wVC+6rKBQU+3VIIAZ/0BIATAs38MxCwA2clM14I5ps5owMl8dmmMCdDW7l2+4/
ovw6Mzk4kXyDe0uPRBXvxzGtpQGUqDtm7sd3Ra836G0tVGKNOZ3B7kx88HXqc7ZtH3fRarjLidvb
CjdHVeY94i/4W3a7IQQIZK8itzPc7qtiEr2gdLNeQ3eUIp1daz4icAk9g+UINtXBC3rwYDHSD+pa
L14t1fLOFzwoTU8PPRb/PbImXpTv6JlrSwOeyzR66/2Rp9pALstWoq2tWrI9R/OmHCs7OXF+GRk5
xey6H/GPPbUDDtlpi24ahx1zfO461cMOOsS9IfuQe9SR0qfpJspAYZZs/GwDGZ9EMcGvdCJy8u5X
AVYBVgFWAVYBVgFWAVYBVgFWAVYBVgFWAVYBVgFWAVYBVgFWAVYBVgFWAVYB9v0CVr1KqV6lVK9S
/o6vUv7yb6jI3xV9n+9v/KT3F972S7+qKVJNkWqKVFOkmiLVFP3svy9hsE6/C1JLnmkallsXWnkv
c5x/omi6LdT9EZomTJvgs0vST2w0vyfUWboWAFhC1mU3xf6Ben6XmYhtaW5rfGzT0brFxzZ1Q+oT
/8F/UEsDBBQAAgAIACyBBkmQlZvQ7gUAAAEvAAA6ABwAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNh
Y3Rpb24tcmVhZC1vbmx5LXByaXZhdGUtc3RkZXJyLnR4dFVUCQADI26mVyNupld1eAsAAQT1AQAA
BBQAAADtWs1zokgUv3vKn8BRqzZVCIjEW6LjrrW1YyrJ7L2FZ8IGwW0wTi77t083CDT0Bxh1ozt7
8CC8737v168fPZvcPQJ+AzwaeShBCxTDOApDcBM/CsdBFIOnXWt9Sx+alm3aN9awb+idb6H/9wZm
k7sJxzMauTX+KY5W48CHMCGSrmrS9KHR6a6QH/Y0TmijqC4jybb6dq8jkOGHb9ErzNeAERV0G3pP
GIUxSsU++SvA3V5nVoYhWkM4uXsAIidOxih0IQjAE0kWU1LLji5PHqJI4djUx0QTY4tLo8gJEdny
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
XRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEzmY9VO45JtslS0GCZHXxHWv+E1iPK
lWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4jd5QSwMEFAACAAgA2IAGSd79uumvAAAA7gAA
AEYAHABzdG9yYWdlL3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi1uby1jcmFzaC1vbi1wcmVmbGlnaHQt
ZmFpbHVyZS1zdGRlcnIudHh0VVQJAAOIbaZXiG2mV3V4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Lu/
Yk6iUG3gJfYWZZcIQUvPuzqFsM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+CAET9NQKDkjeODDB
8/Jh2hAGSNZA7MEQoAhLGqmaXRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEzmY9V
O45JtslS0GCZHXxHWv+E1iPKlWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4jd5QSwMEFAAC
AAgA2IAGSflHdNi6AAAAuAMAACgAHABzdG9yYWdlL3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi1zdGRl
cnIudHh0VVQJAAOIbaZXiG2mV3V4CwABBPUBAAAEFAAAAO2PuwrCQBBF+3zFVJKAuoKNbCcaGxEh
8VHvJhMJbGbCZFfx701EK/9A0s1lzoV70iw7ZhrOZKxD8Aw+CAET1FQINkjeODDB8+xuihAaiBdA
7MEQoAhLEqkLu9Bgp7bGG5Vec3VFu6+9yjlIgUPasKA6cBlcjz3Qlj1pTYfvynDMi7aNl6tlAhos
s4NPSesvoXWLUrE0xxZpTeUFpa6e8QBPf+l0mAaT/nPaaZ17qekGkyRKR9vR9i9sX1BLAwQUAAIA
CADZgAZJ3v266a8AAADuAAAAMgAcAHN0b3JhZ2Uvd2Vic3FsL2Nsb3NlLWR1cmluZy1zdHJlc3Mt
dGVzdC1zdGRlcnIudHh0VVQJAAOJbaZXiW2mV3V4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Lu/Yk6i
UG3gJfYWZZcIQUvPuzqFsM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+CAET9NQKDkjeODDB8/Jh
2hAGSNZA7MEQoAhLGqmaXRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEzmY9VO45J
tslS0GCZHXxHWv+E1iPKlWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4jd5QSwMEFAACAAgA
2YAGSat4+6G1AAAA3AEAADQAHABzdG9yYWdlL3dlYnNxbC9kYXRhYmFzZS1sb2NrLWFmdGVyLXJl
bG9hZC1zdGRlcnIudHh0VVQJAAOJbaZXiW2mV3V4CwABBPUBAAAEFAAAAOXPsQrCQAwG4N2nyCQt
qCd0kdtE6yJSaLXOd20qhWtS0jvFt7cVnXwEt/zk+yFJ8zzLNVzIWIfgGXwQAiZoqRLskLxxYILn
5d1UIXQQrYHYgyFAEZZ4pkp2ocNB7Y03Kr0W6or22HpVcJAKp7RjQXXiOriRPdDWo7RmwHdlGlZV
30fJJolBg2V28Clp/RVa9ygNS5f1SFuqS5S2eUYTXvzqdDoN5uPmfNC68NLSDebxLP2rb19QSwME
FAACAAgA2YAGSd79uumvAAAA7gAAACkAHABzdG9yYWdlL3dlYnNxbC9lbXB0eS1zdGF0ZW1lbnQt
c3RkZXJyLnR4dFVUCQADiW2mV4ltpld1eAsAAQT1AQAABBQAAABlzkELgkAQBeC7v2JOolBt4CX2
FmWXCEFLz7s6hbDOyLRb9O/TqFO3ebzvweRlWZQaLmSsQ/AMPggBE/TUCg5I3jgwwfPyYdoQBkjW
QOzBEKAISxqpml0Y8K72xhuVN5Vq0B57ryoO0uKcdiyoTtwFN7En2m6S1tzxM5mPVTuOSbbJUtBg
mR18R1r/hNYjypVlKEakLXU1Sn99JTNe/Ot8fg3iqTkftK689HSDOI3eUEsDBBQAAgAIANmABkne
/brprwAAAO4AAAAqABwAc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZS1zcWwtYXJncy1zdGRlcnIudHh0
VVQJAAOJbaZXiW2mV3V4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Lu/Yk6iUG3gJfYWZZcIQUvPuzqF
sM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+CAET9NQKDkjeODDB8/Jh2hAGSNZA7MEQoAhLGqma
XRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEzmY9VO45JtslS0GCZHXxHWv+E1iPK
lWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4jd5QSwMEFAACAAgA2YAGSd79uumvAAAA7gAA
ADIAHABzdG9yYWdlL3dlYnNxbC9leGVjdXRlLXNxbC1yb3dzQWZmZWN0ZWQtc3RkZXJyLnR4dFVU
CQADiW2mV4ltpld1eAsAAQT1AQAABBQAAABlzkELgkAQBeC7v2JOolBt4CX2FmWXCEFLz7s6hbDO
yLRb9O/TqFO3ebzvweRlWZQaLmSsQ/AMPggBE/TUCg5I3jgwwfPyYdoQBkjWQOzBEKAISxqpml0Y
8K72xhuVN5Vq0B57ryoO0uKcdiyoTtwFN7En2m6S1tzxM5mPVTuOSbbJUtBgmR18R1r/hNYjypVl
KEakLXU1Sn99JTNe/Ot8fg3iqTkftK689HSDOI3eUEsDBBQAAgAIANmABkne/brprwAAAO4AAAA/
ABwAc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1z
dGRlcnIudHh0VVQJAAOKbaZXim2mV3V4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Lu/Yk6iUG3gJfYW
ZZcIQUvPuzqFsM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+CAET9NQKDkjeODDB8/Jh2hAGSNZA
7MEQoAhLGqmaXRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEzmY9VO45JtslS0GCZ
HXxHWv+E1iPKlWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4jd5QSwMEFAACAAgA2oAGSd79
uumvAAAA7gAAAC4AHABzdG9yYWdlL3dlYnNxbC9oYXNoLWNoYW5nZS13aXRoLXhoci1zdGRlcnIu
dHh0VVQJAAOLbaZXi22mV3V4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Lu/Yk6iUG3gJfYWZZcIQUvP
uzqFsM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+CAET9NQKDkjeODDB8/Jh2hAGSNZA7MEQoAhL
GqmaXRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEzmY9VO45JtslS0GCZHXxHWv+E
1iPKlWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4jd5QSwMEFAACAAgA2oAGSat4+6G1AAAA
3AEAAD8AHABzdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS1kYXRhYmFzZXMtZ2FyYmFnZS1jb2xsZWN0
aW9uLXN0ZGVyci50eHRVVAkAA4xtpleMbaZXdXgLAAEE9QEAAAQUAAAA5c+xCsJADAbg3afIJC2o
J3SR20TrIlJotc53bSqFa1LSO8W3txWdfAS3/OT7IUnzPMs1XMhYh+AZfBACJmipEuyQvHFggufl
3VQhdBCtgdiDIUARlnimSnahw0HtjTcqvRbqivbYelVwkAqntGNBdeI6uJE90NajtGbAd2UaVlXf
R8kmiUGDZXbwKWn9FVr3KA1Ll/VIW6pLlLZ5RhNe/Op0Og3m4+Z80Lrw0tIN5vEs/atvX1BLAwQU
AAIACADagAZJPGb0jLkAAADKAgAARAAcAHN0b3JhZ2Uvd2Vic3FsL211bHRpcGxlLXRyYW5zYWN0
aW9ucy1vbi1kaWZmZXJlbnQtaGFuZGxlcy1zdGRlcnIudHh0VVQJAAOMbaZXjG2mV3V4CwABBPUB
AAAEFAAAAO3PvwrCQAwG8L1Pkam0oJ7gIreJ1kVEaP0z37WpFK5JSe8U395WdPINxC0hvw/yZXl+
yDWcyFiH4Bl8EAImaKgUbJG8cWCC5+nNlCG0kMyB2IMhQBGWNFJndqHFXm2MNyq7FOqCdtd4VXCQ
EsdtzYJqz1VwA7ujrQZpTY+vyDjMyq5LFstFChoss4N3SOuP0LpDqVnaQ4e0ouqM0tSPZMSTb52N
r0E8XI5brQsvDV0hTqPs3/Zn2z4BUEsDBBQAAgAIANqABkne/brprwAAAO4AAAAvABwAc3RvcmFn
ZS93ZWJzcWwvbXVsdGlwbGUtdHJhbnNhY3Rpb25zLXN0ZGVyci50eHRVVAkAA4xtpleMbaZXdXgL
AAEE9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878Hk
ZVmUGi5krEPwDD4IARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68q
DtLinHYsqE7cBTexJ9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzr
fH4N4qk5H7SuvPR0gziN3lBLAwQUAAIACADagAZJ3v266a8AAADuAAAAKAAcAHN0b3JhZ2Uvd2Vi
c3FsL251bGwtY2FsbGJhY2tzLXN0ZGVyci50eHRVVAkAA4xtpleMbaZXdXgLAAEE9QEAAAQUAAAA
Zc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmUGi5krEPwDD4I
ARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLinHYsqE7cBTex
J9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N4qk5H7SuvPR0
gziN3lBLAwQUAAIACADagAZJq3j7obUAAADcAQAASAAcAHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0
YWJhc2UtY3JlYXRpb24tY2FsbGJhY2staXNvbGF0ZWQtd29ybGQtc3RkZXJyLnR4dFVUCQADjG2m
V4xtpld1eAsAAQT1AQAABBQAAADlz7EKwkAMBuDdp8gkLagndJHbROsiUmi1zndtKoVrUtI7xbe3
FZ18BLf85PshSfM8yzVcyFiH4Bl8EAImaKkS7JC8cWCC5+XdVCF0EK2B2IMhQBGWeKZKdqHDQe2N
Nyq9FuqK9th6VXCQCqe0Y0F14jq4kT3Q1qO0ZsB3ZRpWVd9HySaJQYNldvApaf0VWvcoDUuX9Uhb
qkuUtnlGE1786nQ6Debj5nzQuvDS0g3m8Sz9q29fUEsDBBQAAgAIANqABkn5R3TYugAAALgDAAA5
ABwAc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1zdGRlcnIu
dHh0VVQJAAOMbaZXjG2mV3V4CwABBPUBAAAEFAAAAO2PuwrCQBBF+3zFVJKAuoKNbCcaGxEh8VHv
JhMJbGbCZFfx701EK/9A0s1lzoV70iw7ZhrOZKxD8Aw+CAET1FQINkjeODDB8+xuihAaiBdA7MEQ
oAhLEqkLu9Bgp7bGG5Vec3VFu6+9yjlIgUPasKA6cBlcjz3Qlj1pTYfvynDMi7aNl6tlAhoss4NP
SesvoXWLUrE0xxZpTeUFpa6e8QBPf+l0mAaT/nPaaZ17qekGkyRKR9vR9i9sX1BLAwQUAAIACADb
gAZJ3v266a8AAADuAAAANQAcAHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2UtZW1wdHktdmVy
c2lvbi1zdGRlcnIudHh0VVQJAAONbaZXjW2mV3V4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Lu/Yk6i
UG3gJfYWZZcIQUvPuzqFsM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+CAET9NQKDkjeODDB8/Jh
2hAGSNZA7MEQoAhLGqmaXRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEzmY9VO45J
tslS0GCZHXxHWv+E1iPKlWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4jd5QSwMEFAACAAgA
24AGSd79uumvAAAA7gAAADQAHABzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWV4cGFuZC1x
dW90YS1zdGRlcnIudHh0VVQJAAONbaZXjW2mV3V4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Lu/Yk6i
UG3gJfYWZZcIQUvPuzqFsM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+CAET9NQKDkjeODDB8/Jh
2hAGSNZA7MEQoAhLGqmaXRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEzmY9VO45J
tslS0GCZHXxHWv+E1iPKlWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4jd5QSwMEFAACAAgA
24AGSat4+6G1AAAA3AEAADkAHABzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLXNldC1lbXB0
eS12ZXJzaW9uLXN0ZGVyci50eHRVVAkAA41tpleNbaZXdXgLAAEE9QEAAAQUAAAA5c+xCsJADAbg
3afIJC2oJ3SR20TrIlJotc53bSqFa1LSO8W3txWdfAS3/OT7IUnzPMs1XMhYh+AZfBACJmipEuyQ
vHFggufl3VQhdBCtgdiDIUARlnimSnahw0HtjTcqvRbqivbYelVwkAqntGNBdeI6uJE90NajtGbA
d2UaVlXfR8kmiUGDZXbwKWn9FVr3KA1Ll/VIW6pLlLZ5RhNe/Op0Og3m4+Z80Lrw0tIN5vEs/atv
X1BLAwQUAAIACADbgAZJq3j7obUAAADcAQAARQAcAHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJh
c2Utd2hpbGUtdHJhbnNhY3Rpb24taW4tcHJvZ3Jlc3Mtc3RkZXJyLnR4dFVUCQADjW2mV41tpld1
eAsAAQT1AQAABBQAAADlz7EKwkAMBuDdp8gkLagndJHbROsiUmi1zndtKoVrUtI7xbe3FZ18BLf8
5PshSfM8yzVcyFiH4Bl8EAImaKkS7JC8cWCC5+XdVCF0EK2B2IMhQBGWeKZKdqHDQe2NNyq9FuqK
9th6VXCQCqe0Y0F14jq4kT3Q1qO0ZsB3ZRpWVd9HySaJQYNldvApaf0VWvcoDUuX9UhbqkuUtnlG
E1786nQ6Debj5nzQuvDS0g3m8Sz9q29fUEsDBBQAAgAIANuABkne/brprwAAAO4AAAA5ABwAc3Rv
cmFnZS93ZWJzcWwvcHJpdmF0ZS1icm93c2luZy1ub3JlYWQtbm93cml0ZS1zdGRlcnIudHh0VVQJ
AAONbaZXjW2mV3V4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Lu/Yk6iUG3gJfYWZZcIQUvPuzqFsM7I
tFv079OoU7d5vO/B5GVZlBouZKxD8Aw+CAET9NQKDkjeODDB8/Jh2hAGSNZA7MEQoAhLGqmaXRjw
rvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEzmY9VO45JtslS0GCZHXxHWv+E1iPKlWUo
RqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4jd5QSwMEFAACAAgA24AGSTxm9Iy5AAAAygIAAEcA
HABzdG9yYWdlL3dlYnNxbC9yZWFkLWFuZC13cml0ZS10cmFuc2FjdGlvbnMtZG9udC1ydW4tdG9n
ZXRoZXItc3RkZXJyLnR4dFVUCQADjm2mV45tpld1eAsAAQT1AQAABBQAAADtz78KwkAMBvC9T5Gp
tKCe4CK3idZFRGj9M9+1qRSuSUnvFN/eVnTyDcQtIb8P8mV5fsg1nMhYh+AZfBACJmioFGyRvHFg
gufpzZQhtJDMgdiDIUARljRSZ3ahxV5tjDcquxTqgnbXeFVwkBLHbc2Cas9VcAO7o60GaU2Pr8g4
zMquSxbLRQoaLLODd0jrj9C6Q6lZ2kOHtKLqjNLUj2TEk2+dja9BPFyOW60LLw1dIU6j7N/2Z9s+
AVBLAwQUAAIACADbgAZJq3j7obUAAADcAQAAQAAcAHN0b3JhZ2Uvd2Vic3FsL3JlYWQtdHJhbnNh
Y3Rpb25zLXJ1bm5pbmctY29uY3VycmVudGx5LXN0ZGVyci50eHRVVAkAA45tpleObaZXdXgLAAEE
9QEAAAQUAAAA5c+xCsJADAbg3afIJC2oJ3SR20TrIlJotc53bSqFa1LSO8W3txWdfAS3/OT7IUnz
PMs1XMhYh+AZfBACJmipEuyQvHFggufl3VQhdBCtgdiDIUARlnimSnahw0HtjTcqvRbqivbYelVw
kAqntGNBdeI6uJE90NajtGbAd2UaVlXfR8kmiUGDZXbwKWn9FVr3KA1Ll/VIW6pLlLZ5RhNe/Op0
Og3m4+Z80Lrw0tIN5vEs/atvX1BLAwQUAAIACADbgAZJ3v266a8AAADuAAAAKAAcAHN0b3JhZ2Uv
d2Vic3FsL3NxbC1kYXRhLXR5cGVzLXN0ZGVyci50eHRVVAkAA45tpleObaZXdXgLAAEE9QEAAAQU
AAAAZc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmUGi5krEPw
DD4IARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLinHYsqE7c
BTexJ9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N4qk5H7Su
vPR0gziN3lBLAwQUAAIACADbgAZJq3j7obUAAADcAQAAQQAcAHN0b3JhZ2Uvd2Vic3FsL3N0YXRl
bWVudC1lcnJvci1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIudHh0VVQJAAOObaZXjm2m
V3V4CwABBPUBAAAEFAAAAOXPsQrCQAwG4N2nyCQtqCd0kdtE6yJSaLXOd20qhWtS0jvFt7cVnXwE
t/zk+yFJ8zzLNVzIWIfgGXwQAiZoqRLskLxxYILn5d1UIXQQrYHYgyFAEZZ4pkp2ocNB7Y03Kr0W
6or22HpVcJAKp7RjQXXiOriRPdDWo7RmwHdlGlZV30fJJolBg2V28Clp/RVa9ygNS5f1SFuqS5S2
eUYTXvzqdDoN5uPmfNC68NLSDebxLP2rb19QSwMEFAACAAgA24AGSd79uumvAAAA7gAAADIAHABz
dG9yYWdlL3dlYnNxbC9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJhY2stc3RkZXJyLnR4dFVUCQADjm2m
V45tpld1eAsAAQT1AQAABBQAAABlzkELgkAQBeC7v2JOolBt4CX2FmWXCEFLz7s6hbDOyLRb9O/T
qFO3ebzvweRlWZQaLmSsQ/AMPggBE/TUCg5I3jgwwfPyYdoQBkjWQOzBEKAISxqpml0Y8K72xhuV
N5Vq0B57ryoO0uKcdiyoTtwFN7En2m6S1tzxM5mPVTuOSbbJUtBgmR18R1r/hNYjypVlKEakLXU1
Sn99JTNe/Ot8fg3iqTkftK689HSDOI3eUEsDBBQAAgAIANyABkmrePuhtQAAANwBAABDABwAc3Rv
cmFnZS93ZWJzcWwvc3RhdGVtZW50LXN1Y2Nlc3MtY2FsbGJhY2staXNvbGF0ZWQtd29ybGQtc3Rk
ZXJyLnR4dFVUCQADj22mV49tpld1eAsAAQT1AQAABBQAAADlz7EKwkAMBuDdp8gkLagndJHbROsi
Umi1zndtKoVrUtI7xbe3FZ18BLf85PshSfM8yzVcyFiH4Bl8EAImaKkS7JC8cWCC5+XdVCF0EK2B
2IMhQBGWeKZKdqHDQe2NNyq9FuqK9th6VXCQCqe0Y0F14jq4kT3Q1qO0ZsB3ZRpWVd9HySaJQYNl
dvApaf0VWvcoDUuX9UhbqkuUtnlGE1786nQ6Debj5nzQuvDS0g3m8Sz9q29fUEsDBBQAAgAIANyA
Bkne/brprwAAAO4AAAAqABwAc3RvcmFnZS93ZWJzcWwvc3VjY2Vzcy1jYWxsYmFjay1zdGRlcnIu
dHh0VVQJAAOPbaZXj22mV3V4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Lu/Yk6iUG3gJfYWZZcIQUvP
uzqFsM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+CAET9NQKDkjeODDB8/Jh2hAGSNZA7MEQoAhL
GqmaXRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEzmY9VO45JtslS0GCZHXxHWv+E
1iPKlWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4jd5QSwMEFAACAAgA3IAGSd79uumvAAAA
7gAAAEMAHABzdG9yYWdlL3dlYnNxbC9zdWNjZXNzLWNhbGxiYWNrLXdoZW4tcGFnZS1kZWZlcnMt
bG9hZGluZy1zdGRlcnIudHh0VVQJAAOPbaZXj22mV3V4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Lu/
Yk6iUG3gJfYWZZcIQUvPuzqFsM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+CAET9NQKDkjeODDB
8/Jh2hAGSNZA7MEQoAhLGqmaXRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEzmY9V
O45JtslS0GCZHXxHWv+E1iPKlWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4jd5QSwMEFAAC
AAgA3IAGSd79uumvAAAA7gAAACkAHABzdG9yYWdlL3dlYnNxbC90ZXN0LWF1dGhvcml6ZXItc3Rk
ZXJyLnR4dFVUCQADkG2mV5Btpld1eAsAAQT1AQAABBQAAABlzkELgkAQBeC7v2JOolBt4CX2FmWX
CEFLz7s6hbDOyLRb9O/TqFO3ebzvweRlWZQaLmSsQ/AMPggBE/TUCg5I3jgwwfPyYdoQBkjWQOzB
EKAISxqpml0Y8K72xhuVN5Vq0B57ryoO0uKcdiyoTtwFN7En2m6S1tzxM5mPVTuOSbbJUtBgmR18
R1r/hNYjypVlKEakLXU1Sn99JTNe/Ot8fg3iqTkftK689HSDOI3eUEsDBBQAAgAIANyABkne/brp
rwAAAO4AAAA+ABwAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tY2FsbGJhY2stZXhjZXB0aW9u
LWNyYXNoLXN0ZGVyci50eHRVVAkAA5BtpleQbaZXdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXgu79i
TqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmUGi5krEPwDD4IARP01AoOSN44MMHz
8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLinHYsqE7cBTexJ9puktbc8TOZj1U7
jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N4qk5H7SuvPR0gziN3lBLAwQUAAIA
CADcgAZJq3j7obUAAADcAQAAPQAcAHN0b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWNhbGxiYWNr
LWlzb2xhdGVkLXdvcmxkLXN0ZGVyci50eHRVVAkAA5BtpleQbaZXdXgLAAEE9QEAAAQUAAAA5c+x
CsJADAbg3afIJC2oJ3SR20TrIlJotc53bSqFa1LSO8W3txWdfAS3/OT7IUnzPMs1XMhYh+AZfBAC
JmipEuyQvHFggufl3VQhdBCtgdiDIUARlnimSnahw0HtjTcqvRbqivbYelVwkAqntGNBdeI6uJE9
0NajtGbAd2UaVlXfR8kmiUGDZXbwKWn9FVr3KA1Ll/VIW6pLlLZ5RhNe/Op0Og3m4+Z80Lrw0tIN
5vEs/atvX1BLAwQUAAIACADdgAZJq3j7obUAAADcAQAAQwAcAHN0b3JhZ2Uvd2Vic3FsL3RyYW5z
YWN0aW9uLWVycm9yLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLXN0ZGVyci50eHRVVAkAA5FtpleR
baZXdXgLAAEE9QEAAAQUAAAA5c+xCsJADAbg3afIJC2oJ3SR20TrIlJotc53bSqFa1LSO8W3txWd
fAS3/OT7IUnzPMs1XMhYh+AZfBACJmipEuyQvHFggufl3VQhdBCtgdiDIUARlnimSnahw0HtjTcq
vRbqivbYelVwkAqntGNBdeI6uJE90NajtGbAd2UaVlXfR8kmiUGDZXbwKWn9FVr3KA1Ll/VIW6pL
lLZ5RhNe/Op0Og3m4+Z80Lrw0tIN5vEs/atvX1BLAwQUAAIACADdgAZJ3v266a8AAADuAAAANAAc
AHN0b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWVycm9yLWNhbGxiYWNrLXN0ZGVyci50eHRVVAkA
A5FtpleRbaZXdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0
W/Tv06hTt3m878HkZVmUGi5krEPwDD4IARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu
9sYblTeVatAee68qDtLinHYsqE7cBTexJ9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShG
pC11NUp/fSUzXvzrfH4N4qk5H7SuvPR0gziN3lBLAwQUAAIACADdgAZJ3v266a8AAADuAAAALwAc
AHN0b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLXByb3RvdHlwZS1zdGRlcnIudHh0VVQJAAOSbaZX
km2mV3V4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Lu/Yk6iUG3gJfYWZZcIQUvPuzqFsM7ItFv079Oo
U7d5vO/B5GVZlBouZKxD8Aw+CAET9NQKDkjeODDB8/Jh2hAGSNZA7MEQoAhLGqmaXRjwrvbGG5U3
lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEzmY9VO45JtslS0GCZHXxHWv+E1iPKlWUoRqQtdTVK
f30lM17863x+DeKpOR+0rrz0dIM4jd5QSwMEFAACAAgA3YAGSat4+6G1AAAA3AEAAEUAHABzdG9y
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
22umV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJCABklK0SoQHnMBAL/PDQAOABgAAAAAAAEA
AACkgZw0AABhY2Nlc3NfbG9nLnR4dFVUBQADAG2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AAWABkkAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQQKoAQBjb21wb3NpdGluZy9VVAUAA/lrpld1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB6fwZJAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UFI
qAEAY29tcG9zaXRpbmcvcmVnaW9ucy9VVAUAA+drpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAB6fwZJWyaqu6wAAAAUAwAARQAYAAAAAAABAAAApIGWqAEAY29tcG9zaXRpbmcvcmVnaW9ucy93
ZWJraXQtZmxvdy1yZW5kZXJlci1sYXllci1jb21wb3NpdGluZy1zdGRlcnIudHh0VVQFAAPna6ZX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABYAGSeNZpsPCAAAA8gYAADwAGAAAAAAAAQAAAKSB
wakBAGNvbXBvc2l0aW5nL3Nob3ctY29tcG9zaXRlZC1pZnJhbWUtb24tYmFjay1idXR0b24tc3Rk
ZXJyLnR4dFVUBQAD+WumV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHh/BkkAAAAAAAAAAAAA
AAASABgAAAAAAAAAEADtQfmqAQBjb21wb3NpdGluZy92aWRlby9VVAUAA+Rrpld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAB4fwZJu6RHocIAAADyBgAAMgAYAAAAAAABAAAApIFFqwEAY29tcG9z
aXRpbmcvdmlkZW8vdmlkZW8tY2xpcC1jaGFuZ2Utc3JjLXN0ZGVyci50eHRVVAUAA+Rrpld1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAACgAZJAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UFzrAEA
ZGlzcGxheWxpc3RzL1VUBQAD82umV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAKABkmjV/3o
UAAAAI4AAAAyABgAAAAAAAEAAACkgbqsAQBkaXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXRy
YW5zZm9ybXMtc3RkZXJyLnR4dFVUBQAD82umV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAKA
BknylpXVRwAAAEkAAAApABgAAAAAAAEAAACkgXatAQBkaXNwbGF5bGlzdHMvbGF5ZXItZGlzcGF5
LWxpc3Qtc3RkZXJyLnR4dFVUBQAD82umV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABCABkkA
AAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQSCuAQBlZGl0aW5nL1VUBQADEGymV3V4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAB2ABkkAAAAAAAAAAAAAAAATABgAAAAAAAAAEADtQWKuAQBlZGl0aW5n
L3Bhc3RlYm9hcmQvVVQFAAMqbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAEIAGSX6p8SDp
AAAAggEAADAAGAAAAAAAAQAAAKSBr64BAGVkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXJlc29sdmVz
LXVybHMtc3RkZXJyLnR4dFVUBQADEGymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAB2ABklX
GBNJ2gAAAFABAAAsABgAAAAAAAEAAACkgQKwAQBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtbm9w
bHVnaW4tc3RkZXJyLnR4dFVUBQADKWymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAByABklX
GBNJ2gAAAFABAAAyABgAAAAAAAEAAACkgUKxAQBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtbm9w
bHVnaW4teGh0bWwtc3RkZXJyLnR4dFVUBQADKGymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AB2ABkl3TYsd4wAAAHcBAAAsABgAAAAAAAEAAACkgYiyAQBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFz
dGUtbm9zY3JpcHQtc3RkZXJyLnR4dFVUBQADKmymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AB2ABklKLj4w4gAAAHsBAAAyABgAAAAAAAEAAACkgdGzAQBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFz
dGUtbm9zY3JpcHQteGh0bWwtc3RkZXJyLnR4dFVUBQADKWymV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAFaBBkmkQgnXbQoAAGE5AAANABgAAAAAAAEAAACkgR+1AQBlcnJvcl9sb2cudHh0VVQF
AAN0bqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAeYAGSQAAAAAAAAAAAAAAAAUAGAAAAAAA
AAAQAO1B078BAGZhc3QvVVQFAAPVbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAALIAGSQAA
AAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BEsABAGZhc3QvY2FudmFzL1VUBQADQ2ymV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIACeABkkuBc6SrQAAAN4DAABMABgAAAAAAAEAAACkgVjAAQBmYXN0
L2NhbnZhcy9jYW52YXMtY3NzLXNpemUtYWZ0ZXItaGVpZ2h0LWNoYW5nZS13aXRoLWRpc3BsYXkt
ZmxleC1zdGRlcnIudHh0VVQFAAM5bKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALIAGSR+v
Gl6FAAAAGgEAACYAGAAAAAAAAQAAAKSBi8EBAGZhc3QvY2FudmFzL2NhbnZhcy1saW5lRGFzaC1z
dGRlcnIudHh0VVQFAANDbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAeYAGSQAAAAAAAAAA
AAAAAAkAGAAAAAAAAAAQAO1BcMIBAGZhc3QvY3NzL1VUBQAD1WymV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAHmABklC0Bh3sQAAAM4BAAA2ABgAAAAAAAEAAACkgbPCAQBmYXN0L2Nzcy9wZXJz
cGVjdGl2ZS1vcmlnaW4taW5pdGlhbC1pbmhlcml0LXN0ZGVyci50eHRVVAUAA9Vspld1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAAAngAZJAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UHUwwEAZmFz
dC9kb20vVVQFAAM5bKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAJ4AGSQAAAAAAAAAAAAAA
ABoAGAAAAAAAAAAQAO1BF8QBAGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvVVQFAAM5bKZXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJ4AGSd79uumvAAAA7gAAAD8AGAAAAAAAAQAAAKSBa8QB
AGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnktc3Rk
ZXJyLnR4dFVUBQADOWymV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACyABkkAAAAAAAAAAAAA
AAALABgAAAAAAAAAEADtQZPFAQBmYXN0L2Zvcm1zL1VUBQADQ2ymV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIACyABkkuX9jvewEAAPg5AAAzABgAAAAAAAEAAACkgdjFAQBmYXN0L2Zvcm1zL1Zh
bGlkaXR5U3RhdGUtcGF0dGVybk1pc21hdGNoLXN0ZGVyci50eHRVVAUAA0Nspld1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAABugAZJAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UHAxwEAZmFzdC9m
cmFtZXMvVVQFAAPAbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAboAGSd79uumvAAAA7gAA
AC8AGAAAAAAAAQAAAKSBBsgBAGZhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJhbWUtc3RvcmFnZS1z
dGRlcnIudHh0VVQFAAPAbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAM4AGSQAAAAAAAAAA
AAAAAA0AGAAAAAAAAAAQAO1BHskBAGZhc3QvaGlzdG9yeS9VVAUAA1Fspld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAzgAZJ3v266a8AAADuAAAAQAAYAAAAAAABAAAApIFlyQEAZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2Utbm8tdHJhbnNhY3Rpb24tZGItc3RkZXJyLnR4dFVU
BQADUWymV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAADmABkkAAAAAAAAAAAAAAAAMABgAAAAA
AAAAEADtQY7KAQBmYXN0L2ltYWdlcy9VVAUAA15spld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAA5gAZJIY+9ODIAAAAzAAAALAAYAAAAAAABAAAApIHUygEAZmFzdC9pbWFnZXMvcGRmLWFzLWlt
YWdlLWNyb3AtYm94LXN0ZGVyci50eHRVVAUAA15spld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AABLgAZJAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UFsywEAZmFzdC94c2wvVVQFAAN9bKZXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgASYAGSXL9ZfKFAAAA6QAAACUAGAAAAAAAAQAAAKSBr8sB
AGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50eHRVVAUAA3pspld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABKgAZJzgkoAo0AAADwAAAAJwAYAAAAAAABAAAApIGTzAEAZmFzdC94
c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0VVQFAAN7bKZXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgASoAGSc+PZg5QAAAAoAAAACQAGAAAAAAAAQAAAKSBgc0BAGZhc3QveHNsL3hz
bHQtY29udGVudFR5cGUtc3RkZXJyLnR4dFVUBQADe2ymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAEuABkmBSnetSwAAAKwAAAA0ABgAAAAAAAEAAACkgS/OAQBmYXN0L3hzbC94c2x0LXRyYW5z
Zm9ybS10by1mcmFnbWVudC1jcmFzaC1zdGRlcnIudHh0VVQFAAN9bKZXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAMYIGSRD568b0AQAAkwUAABEAGAAAAAAAAQAAAKSB6M4BAGZ1bGxfcmVzdWx0
cy5qc29uVVQFAAMNcKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAATIAGSQAAAAAAAAAAAAAA
AAUAGAAAAAAAAAAQAO1BJ9EBAGh0dHAvVVQFAAOAbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAW4AGSQAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BZtEBAGh0dHAvdGVzdHMvVVQFAAOebKZX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAUIAGSQAAAAAAAAAAAAAAABEAGAAAAAAAAAAQAO1B
q9EBAGh0dHAvdGVzdHMvY2FjaGUvVVQFAAOHbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
T4AGSeGftQjtAAAAiQQAADAAGAAAAAAAAQAAAKSB9tEBAGh0dHAvdGVzdHMvY2FjaGUvbWVtb3J5
LWNhY2hlLXBydW5pbmctc3RkZXJyLnR4dFVUBQADhmymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAFCABklf0Iu9hgAAAMAAAAA9ABgAAAAAAAEAAACkgU3TAQBodHRwL3Rlc3RzL2NhY2hlL25l
dHdvcmstZXJyb3ItZHVyaW5nLXJldmFsaWRhdGlvbi1zdGRlcnIudHh0VVQFAAOHbKZXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAATIAGSQAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1BStQBAGh0
dHAvdGVzdHMvY2FudmFzL1VUBQADgGymV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAEyABkkA
AAAAAAAAAAAAAAAYABgAAAAAAAAAEADtQZbUAQBodHRwL3Rlc3RzL2NhbnZhcy93ZWJnbC9VVAUA
A4Bspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABMgAZJ9lp5J7oAAAB2AQAAOwAYAAAAAAAB
AAAApIHo1AEAaHR0cC90ZXN0cy9jYW52YXMvd2ViZ2wvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNl
LXN0ZGVyci50eHRVVAUAA4Bspld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABNgAZJAAAAAAAA
AAAAAAAADwAYAAAAAAAAABAA7UEX1gEAaHR0cC90ZXN0cy9kb20vVVQFAAOCbKZXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgATYAGSeleeZnIAAAAUwIAAC4AGAAAAAAAAQAAAKSBYNYBAGh0dHAv
dGVzdHMvZG9tL2RvY3VtZW50LWNvbnRlbnRUeXBlLXN0ZGVyci50eHRVVAUAA4Jspld1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAABbgAZJAAAAAAAAAAAAAAAAEQAYAAAAAAAAABAA7UGQ1wEAaHR0
cC90ZXN0cy9tZWRpYS9VVAUAA51spld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABSgAZJAAAA
AAAAAAAAAAAAGgAYAAAAAAAAABAA7UHb1wEAaHR0cC90ZXN0cy9tZWRpYS9jbGVhcmtleS9VVAUA
A4tspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABSgAZJpbAlz1MBAAB/AwAAOQAYAAAAAAAB
AAAApIEv2AEAaHR0cC90ZXN0cy9tZWRpYS9jbGVhcmtleS9jbGVhci1rZXktaGxzLWFlczEyOC1z
dGRlcnIudHh0VVQFAAOLbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAU4AGSQAAAAAAAAAA
AAAAABUAGAAAAAAAAAAQAO1B9dkBAGh0dHAvdGVzdHMvbWVkaWEvaGxzL1VUBQADjmymV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAFKABkk75ZVGvwEAANAEAABAABgAAAAAAAEAAACkgUTaAQBo
dHRwL3Rlc3RzL21lZGlhL2hscy9obHMtYWNjZXNzaWJsaXR5LWRlc2NyaWJlcy12aWRlby1zdGRl
cnIudHh0VVQFAAOLbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUoAGSWpmdVvGAQAARQUA
ADoAGAAAAAAAAQAAAKSBfdwBAGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1hdWRpby10cmFja3Mt
aGFzLWF1ZGlvLXN0ZGVyci50eHRVVAUAA4tspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABS
gAZJdaUFG8gBAACfBQAAQQAYAAAAAAABAAAApIG33gEAaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxz
LWF1ZGlvLXRyYWNrcy1sb2NhbGUtc2VsZWN0aW9uLXN0ZGVyci50eHRVVAUAA4xspld1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABSgAZJWsfeM8UBAABFBQAAMAAYAAAAAAABAAAApIH64AEAaHR0
cC90ZXN0cy9tZWRpYS9obHMvaGxzLWF1ZGlvLXRyYWNrcy1zdGRlcnIudHh0VVQFAAOMbKZXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAU4AGSRfTmkwmAQAA3gMAACwAGAAAAAAAAQAAAKSBKeMB
AGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1wcm9ncmVzcy1zdGRlcnIudHh0VVQFAAONbKZXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAU4AGSbnOp9MrAQAAhAMAADAAGAAAAAAAAQAAAKSBteQB
AGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy12aWRlby1yZXNpemUtc3RkZXJyLnR4dFVUBQADjWym
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFOABknr3ap4fAEAACoGAAA6ABgAAAAAAAEAAACk
gUrmAQBodHRwL3Rlc3RzL21lZGlhL2hscy92aWRlby1jb250cm9scy1saXZlLXN0cmVhbS1zdGRl
cnIudHh0VVQFAAOObKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUoAGSZ1wVhzMAAAANwIA
ADIAGAAAAAAAAQAAAKSBOugBAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtZG9jdW1lbnQtcmVmZXJl
ci1zdGRlcnIudHh0VVQFAAOLbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUoAGSTFakrTk
AAAArAIAACoAGAAAAAAAAQAAAKSBcukBAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtZG9jdW1lbnQt
c3RkZXJyLnR4dFVUBQADjGymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFOABkm8Wvt16QAA
AMYDAAA5ABgAAAAAAAEAAACkgbrqAQBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXBsYXktc3RyZWFt
LWNodW5rZWQtaWN5LXN0ZGVyci50eHRVVAUAA45spld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AABkgAZJAAAAAAAAAAAAAAAAHgAYAAAAAAAAABAA7UEW7AEAaHR0cC90ZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvVVQFAAOsbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWIAGSTZUypdUAQAA
lwQAAEIAGAAAAAAAAQAAAKSBbuwBAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLWFwcGVuZC1idWZmZXItc3RkZXJyLnR4dFVUBQADmGymV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAFmABkmShEpcPgEAAHoDAABQABgAAAAAAAEAAACkgT7uAQBodHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWJpdHJhdGUt
c3RkZXJyLnR4dFVUBQADmmymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFqABklv0EmXPQEA
AHoDAABSABgAAAAAAAEAAACkgQbwAQBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lcmF0ZS1zdGRlcnIudHh0VVQFAAOcbKZX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYYAGSeJ2xEqLAAAAmwAAADkAGAAAAAAAAQAAAKSB
z/EBAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXBsYXktc3RkZXJy
LnR4dFVUBQADpWymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGKABklvB9znqwAAAAcDAAA7
ABgAAAAAAAEAAACkgc3yAQBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1yZW1vdmUtc3RkZXJyLnR4dFVUBQADqGymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGSA
BklEa+D6nwAAANEBAABGABgAAAAAAAEAAACkge3zAQBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYXNvdXJjZS1zb3VyY2VidWZmZXItbW9kZS1zdGRlcnIudHh0VVQFAAOsbKZXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAU4AGSTpOtZXtAAAAXwEAAC0AGAAAAAAAAQAAAKSBDPUB
AGh0dHAvdGVzdHMvbWVkaWEvcGRmLXNlcnZlZC1hcy1wZGYtc3RkZXJyLnR4dFVUBQADjmymV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFSABknscnDFwAAAAJIBAAAvABgAAAAAAAEAAACkgWD2
AQBodHRwL3Rlc3RzL21lZGlhL3JlbG9hZC1hZnRlci1kaWFsb2ctc3RkZXJyLnR4dFVUBQADkGym
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFSABkklrXTpRwEAAHQCAAAvABgAAAAAAAEAAACk
gYn3AQBodHRwL3Rlc3RzL21lZGlhL3RleHQtc2VydmVkLWFzLXRleHQtc3RkZXJyLnR4dFVUBQAD
kGymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFaABkmO6mqLCAEAAHgDAAA2ABgAAAAAAAEA
AACkgTn5AQBodHRwL3Rlc3RzL21lZGlhL3RyYWNrLWluLWJhbmQtaGxzLW1ldGFkYXRhLXN0ZGVy
ci50eHRVVAUAA5Nspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABWgAZJStwGunkBAABsBwAA
JgAYAAAAAAABAAAApIGx+gEAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1hdXRoLXN0ZGVyci50eHRV
VAUAA5Rspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABXgAZJAv6thuEAAABSAgAALQAYAAAA
AAABAAAApIGK/AEAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1lcnJvci1hYm9ydC1zdGRlcnIudHh0
VVQFAAOVbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAV4AGSW16JEUZAQAAPQIAADYAGAAA
AAAAAQAAAKSB0v0BAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tZXJyb3ItZG9lcy1ub3QtZXhpc3Qt
c3RkZXJyLnR4dFVUBQADlmymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFiABknN1zZhzAAA
ACQDAAAsABgAAAAAAAEAAACkgVv/AQBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWxvYWQtdHdpY2Ut
c3RkZXJyLnR4dFVUBQADmGymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFiABkmbSvgz4gAA
AGwDAAAvABgAAAAAAAEAAACkgY0AAgBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXBsYXktcHJvZ3Jl
c3Mtc3RkZXJyLnR4dFVUBQADmGymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFqABknT1ME7
hwAAAMAAAAA9ABgAAAAAAAEAAACkgdgBAgBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXBsYXktc3Rh
bGwtYmVmb3JlLW1ldGEtZGF0YS1zdGRlcnIudHh0VVQFAAOcbKZXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAWoAGSRL4hRq6AAAAkgEAACsAGAAAAAAAAQAAAKSB1gICAGh0dHAvdGVzdHMvbWVk
aWEvdmlkZW8tcXVlcnktdXJsLXN0ZGVyci50eHRVVAUAA5xspld1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABbgAZJKrMeBe0AAABYBQAAKgAYAAAAAAABAAAApIH1AwIAaHR0cC90ZXN0cy9tZWRp
YS92aWRlby1yZWRpcmVjdC1zdGRlcnIudHh0VVQFAAOdbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAW4AGSdynvfzeAAAAUgIAACsAGAAAAAAAAQAAAKSBRgUCAGh0dHAvdGVzdHMvbWVkaWEv
dmlkZW8tdXNlcmFnZW50LXN0ZGVyci50eHRVVAUAA51spld1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAABSgAZJAAAAAAAAAAAAAAAAFQAYAAAAAAAAABAA7UGJBgIAaHR0cC90ZXN0cy9tZXNzYWdp
bmcvVVQFAAOLbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUoAGSRPcjWmEAAAAwAAAAEMA
GAAAAAAAAQAAAKSB2AYCAGh0dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdl
LWV2ZW50LWRpc3BhdGNoLXN0ZGVyci50eHRVVAUAA4tspld1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAACBgAZJAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UHZBwIAaHR0cC90ZXN0cy9taXNjL1VU
BQAD4WymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFuABklehPRp5gAAAGIBAAAtABgAAAAA
AAEAAACkgSMIAgBodHRwL3Rlc3RzL21pc2MvY29weS1yZXNvbHZlcy11cmxzLXN0ZGVyci50eHRV
VAUAA55spld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABcgAZJQ8viH8UAAAD+AAAAPwAYAAAA
AAABAAAApIFwCQIAaHR0cC90ZXN0cy9taXNjL2RlbGV0ZS1mcmFtZS1kdXJpbmctcmVhZHlzdGF0
ZWNoYW5nZS1zdGRlcnIudHh0VVQFAAOfbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXIAG
Sdb/m/rFAAAA/gAAAFsAGAAAAAAAAQAAAKSBrgoCAGh0dHAvdGVzdHMvbWlzYy9kZWxldGUtZnJh
bWUtZHVyaW5nLXJlYWR5c3RhdGVjaGFuZ2Utd2l0aC1nYy1hZnRlci12aWRlby1yZW1vdmFsLXN0
ZGVyci50eHRVVAUAA59spld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACBgAZJFTU1knoAAAC8
AAAAKgAYAAAAAAABAAAApIEIDAIAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRl
cnIudHh0VVQFAAPhbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAVIAGSQAAAAAAAAAAAAAA
ABkAGAAAAAAAAAAQAO1B5gwCAGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9VVAUAA49spld1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABUgAZJ3RR9D4QAAADAAAAAOAAYAAAAAAABAAAApIE5DQIA
aHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2V2ZW50LWxpc3RlbmVyLWNyYXNoLXN0ZGVyci50eHRV
VAUAA49spld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABygAZJAAAAAAAAAAAAAAAAFAAYAAAA
AAAAABAA7UEvDgIAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAUAA8hspld1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABWgAZJgz8e+rcAAACSAQAAVQAYAAAAAAABAAAApIF9DgIAaHR0cC90ZXN0cy9z
ZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtcmVtb3RlLXZpZGVvLWJsb2NrZWQtbm8tY3Jvc3Nv
cmlnaW4tc3RkZXJyLnR4dFVUBQADk2ymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFaABkmp
qIhb2gAAAKwCAABIABgAAAAAAAEAAACkgcMPAgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NhbnZhcy1y
ZW1vdGUtcmVhZC1yZW1vdGUtdmlkZW8tbG9jYWxob3N0LXN0ZGVyci50eHRVVAUAA5Nspld1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABWgAZJdHlN+OIAAACsAgAARwAYAAAAAAABAAAApIEfEQIA
aHR0cC90ZXN0cy9zZWN1cml0eS9jYW52YXMtcmVtb3RlLXJlYWQtcmVtb3RlLXZpZGVvLXJlZGly
ZWN0LXN0ZGVyci50eHRVVAUAA5Rspld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABrgAZJAAAA
AAAAAAAAAAAAKgAYAAAAAAAAABAA7UGCEgIAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvVVQFAAO6bKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVoAGSWkP9RjX
AAAA+AEAAEsAGAAAAAAAAQAAAKSB5hICAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L2F1ZGlvLXJlZGlyZWN0LWFsbG93ZWQtc3RkZXJyLnR4dFVUBQADlGymV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAFaABkmkNUyW5QAAAEMCAABMABgAAAAAAAEAAACkgUIUAgBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9hdWRpby1yZWRpcmVjdC1h
bGxvd2VkMi1zdGRlcnIudHh0VVQFAAOTbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVoAG
SY3UBgCnAAAAigEAAFgAGAAAAAAAAQAAAKSBrRUCAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2Jsb2ItdXJsLWRvZXMtbm90LW1hdGNoLXNvdXJjZS1zZWxmLXN0ZGVy
ci50eHRVVAUAA5Rspld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABXgAZJAAAAAAAAAAAAAAAA
RAAYAAAAAAAAABAA7UHmFgIAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy9VVAUAA5Zspld1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABXgAZJ4WThAu0AAAAmAwAAeQAYAAAAAAABAAAApIFkFwIAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cy91cGdy
YWRlLWluc2VjdXJlLWF1ZGlvLXZpZGVvLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUBQADlmym
V3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFiABkkAAAAAAAAAAAAAAAA9ABgAAAAAAAAAEADt
QQQZAgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRT
aGFkb3dET00vVVQFAAOXbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVoAGSTxZyozlAAAA
QwIAAFMAGAAAAAAAAQAAAKSBexkCAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9hbGxvdy1hdWRpby1zdGRlcnIudHh0VVQFAAOUbKZX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAV4AGSSTc1/G8AAAAkgEAAFMAGAAAAAAAAQAAAKSB
7RoCAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNo
YWRvd0RPTS9hbGxvdy12aWRlby1zdGRlcnIudHh0VVQFAAOWbKZXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAWIAGST7oaPaDAAAAwAAAAGsAGAAAAAAAAQAAAKSBNhwCAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNy
Yy1vYmplY3QtZGF0YS11cmwtYWxsb3dlZC1zdGRlcnIudHh0VVQFAAOXbKZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAaYAGSR5qC8feAAAAUgIAAEsAGAAAAAAAAQAAAKSBXh0CAGh0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3ZpZGVvLXJlZGlyZWN0LWFsbG93ZWQt
c3RkZXJyLnR4dFVUBQADtmymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGmABklcggGtuwAA
AJIBAABMABgAAAAAAAEAAACkgcEeAgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS92aWRlby1yZWRpcmVjdC1hbGxvd2VkMi1zdGRlcnIudHh0VVQFAAO1bKZXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAaYAGSVMh00glAQAAuwIAAGYAGAAAAAAAAQAAAKSBAiACAGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3ZpZGVvLXdpdGgtaHR0cC11
cmwtYWxsb3dlZC1ieS1jc3AtbWVkaWEtc3JjLXN0YXItc3RkZXJyLnR4dFVUBQADtmymV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAGmABknKE4dMhAAAAMAAAABZABgAAAAAAAEAAACkgcchAgBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS93b3JrZXItYmxvYi1pbmhl
cml0cy1jc3AtYmxvY2tzLWV2YWwtc3RkZXJyLnR4dFVUBQADtmymV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAGuABkljqqxsggAAAKgAAABAABgAAAAAAAEAAACkgd4iAgBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQFAAO5
bKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAa4AGSWOqrGyCAAAAqAAAAFIAGAAAAAAAAQAA
AKSB2iMCAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFm
ZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAUAA7pspld1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABWgAZJ3RmkjoQAAAAaAQAANQAYAAAAAAABAAAApIHoJAIAaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb3JzLXBvc3QtcmVkaXJlY3QtMzAxLXN0ZGVyci50eHRVVAUAA5Rspld1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABggAZJq3j7obUAAADcAQAAOgAYAAAAAAABAAAApIHbJQIAaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLWFsbG93ZWQtc3RkZXJyLnR4dFVU
BQADpGymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGCABkne/brprwAAAO4AAAAyABgAAAAA
AAEAAACkgQQnAgBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13ZWJzcWwtc3RkZXJy
LnR4dFVUBQADpGymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGOABknJZTpruwAAAJIBAAA9
ABgAAAAAAAEAAACkgR8oAgBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLXZpZGVvLXNvdXJjZS1m
cm9tLXJlbW90ZS1zdGRlcnIudHh0VVQFAAOqbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
Y4AGSYkYFmiDAAAAwAAAADoAGAAAAAAAAQAAAKSBUSkCAGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9j
YWwtdmlkZW8tc3JjLWZyb20tcmVtb3RlLXN0ZGVyci50eHRVVAUAA6pspld1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAABZgAZJAAAAAAAAAAAAAAAAIQAYAAAAAAAAABAA7UFIKgIAaHR0cC90ZXN0
cy9zZWN1cml0eS9taXhlZENvbnRlbnQvVVQFAAOabKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAWYAGSU9IKQjtAAAAiQQAAE4AGAAAAAAAAQAAAKSBoyoCAGh0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L2luc2VjdXJlLWF1ZGlvLXZpZGVvLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4
dFVUBQADmmymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFmABklRynv5hAAAAMAAAABCABgA
AAAAAAEAAACkgRgsAgBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1j
c3MtaW4taWZyYW1lLXN0ZGVyci50eHRVVAUAA5pspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABsgAZJ3v266a8AAADuAAAAPwAYAAAAAAABAAAApIEYLQIAaHR0cC90ZXN0cy9zZWN1cml0eS9z
dG9yYWdlLWJsb2NraW5nLWxvb3NlbmVkLXdlYnNxbC1zdGRlcnIudHh0VVQFAAO7bKZXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAbIAGSd79uumvAAAA7gAAAEMAGAAAAAAAAQAAAKSBQC4CAGh0
dHAvdGVzdHMvc2VjdXJpdHkvc3RvcmFnZS1ibG9ja2luZy1zdHJlbmd0aGVuZWQtd2Vic3FsLXN0
ZGVyci50eHRVVAUAA7xspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABtgAZJ7xHUT+4AAACY
BAAAOQAYAAAAAAABAAAApIFsLwIAaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmln
aW4tY2FjaGluZy1zdGRlcnIudHh0VVQFAAO+bKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
bYAGSQQsNe0SAQAA5wEAAD8AGAAAAAAAAQAAAKSBzTACAGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlk
ZW8tcG9zdGVyLWNyb3NzLW9yaWdpbi1jcmFzaDItc3RkZXJyLnR4dFVUBQADvmymV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAHKABklgS2YQkQAAAPsBAABFABgAAAAAAAEAAACkgVgyAgBodHRw
L3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWRvY3VtZW50LXNlY3VyaXR5T3JpZ2luLXN0
ZGVyci50eHRVVAUAA8hspld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABagAZJAAAAAAAAAAAA
AAAAEwAYAAAAAAAAABAA7UFoMwIAaHR0cC90ZXN0cy9zdG9yYWdlL1VUBQADnGymV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAFqABkne/brprwAAAO4AAABFABgAAAAAAAEAAACkgbUzAgBodHRw
L3Rlc3RzL3N0b3JhZ2UvY2FsbGJhY2tzLWFyZS1jYWxsZWQtaW4tY29ycmVjdC1jb250ZXh0LXN0
ZGVyci50eHRVVAUAA5xspld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABqgAZJAAAAAAAAAAAA
AAAAGgAYAAAAAAAAABAA7UHjNAIAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9VVAUAA7dspld1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABpgAZJfn/tF7EAAAABAQAAQQAYAAAAAAABAAAApIE3
NQIAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLWFzeW5j
LXN0ZGVyci50eHRVVAUAA7Zspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABqgAZJfn/tF7EA
AAABAQAAQAAYAAAAAAABAAAApIFjNgIAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJs
b2ItY29udGVudC10eXBlLXN5bmMtc3RkZXJyLnR4dFVUBQADt2ymV3V4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAFuABkkAAAAAAAAAAAAAAAAiABgAAAAAAAAAEADtQY43AgBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3dvcmtlcnMvVVQFAAOebKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
W4AGSWdV3leGAAAAwAAAAFUAGAAAAAAAAQAAAKSB6jcCAGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3Qvd29ya2Vycy9hY2Nlc3MtY29udHJvbC1iYXNpYy1nZXQtZmFpbC1ub24tc2ltcGxlLXN0ZGVy
ci50eHRVVAUAA55spld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAByfwZJWwRYDqIFAABNEAAA
CgAYAAAAAAABAAAApIH/OAIAaHR0cGQuY29uZlVUBQAD12umV3V4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAHiABkkAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQeU+AgBpbXBvcnRlZC9VVAUAA9Rs
pld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB4gAZJAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA
7UEoPwIAaW1wb3J0ZWQvdzNjL1VUBQAD1GymV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIOA
BkkAAAAAAAAAAAAAAAAgABgAAAAAAAAAEADtQW8/AgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL1VUBQAD5WymV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHiABkkAAAAAAAAAAAAA
AAAmABgAAAAAAAAAEADtQck/AgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L1VUBQAD1GymV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHiABkkAAAAAAAAAAAAAAAAqABgA
AAAAAAAAEADtQSlAAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9V
VAUAA9Rspld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB5gAZJAAAAAAAAAAAAAAAAMAAYAAAA
AAAAABAA7UGNQAIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFz
aWMvVVQFAAPVbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAeYAGScqlhqI8AQAAkAUAAEsA
GAAAAAAAAQAAAKSB90ACAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4tYWN0dWFsLnR4dFVUBQAD1WymV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAHmABklhtD+ujAEAADoGAABJABgAAAAAAAEAAACkgbhCAgBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLWRp
ZmYudHh0VVQFAAPVbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAeYAGSWzas9NFAQAAqAUA
AE0AGAAAAAAAAQAAAKSBx0QCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0VVQFAAPVbKZXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAeYAGSTAyL0GHCAAA0CAAAFEAGAAAAAAAAQAAAKSBk0YCAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2FtZS1vcmln
aW4tcHJldHR5LWRpZmYuaHRtbFVUBQAD1WymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHiA
BklqNO8yQQEAAJ4FAABSABgAAAAAAAEAAACkgaVPAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLXdvcmtlci1hY3R1YWwudHh0
VVQFAAPUbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAeIAGSWYaCrqRAQAAZAYAAFAAGAAA
AAAAAQAAAKSBclECAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL21vZGUtc2FtZS1vcmlnaW4td29ya2VyLWRpZmYudHh0VVQFAAPUbKZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAeIAGSelzKfFKAQAAtgUAAFQAGAAAAAAAAQAAAKSBjVMCAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4t
d29ya2VyLWV4cGVjdGVkLnR4dFVUBQAD1GymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHiA
BklPp9D9jAgAAPMgAABYABgAAAAAAAEAAACkgWVVAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLXNhbWUtb3JpZ2luLXdvcmtlci1wcmV0dHktZGlm
Zi5odG1sVVQFAAPUbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAgYAGSQAAAAAAAAAAAAAA
ACUAGAAAAAAAAAAQAO1Bg14CAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9V
VAUAA+Fspld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACBgAZJAAAAAAAAAAAAAAAALwAYAAAA
AAAAABAA7UHiXgIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9VVAUAA+Fspld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACDgAZJAAAAAAAAAAAAAAAAQAAY
AAAAAAAAABAA7UFLXwIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9lbWJlZGRlZC1jb250ZW50L1VUBQAD5mymV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AJWABkkAAAAAAAAAAAAAAABPABgAAAAAAAAAEADtQcVfAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMv
VVQFAAMJbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAgYAGSQvxAM7kAAAATAUAAGcAGAAA
AAAAAQAAAKSBTmACAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9jYW5wbGF5LXN0ZGVyci50
eHRVVAUAA+Fspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACBgAZJ85eKyOkAAACkBAAAcgAY
AAAAAAABAAAApIHTYQIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2NhbnBsYXlfbm9hdXRv
cGxheS1zdGRlcnIudHh0VVQFAAPibKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAgoAGSZmL
7MntAAAADAYAAG4AGAAAAAAAAQAAAKSBaGMCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9j
YW5wbGF5dGhyb3VnaC1zdGRlcnIudHh0VVQFAAPjbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAgoAGSfpxTYHrAAAA/gQAAHkAGAAAAAAAAQAAAKSB/WQCAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50
cy9ldmVudF9jYW5wbGF5dGhyb3VnaF9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAUAA+Rspld1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACDgAZJ0EW/Qe8AAAAMBgAAagAYAAAAAAABAAAApIGbZgIA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRlZGRhdGEtc3RkZXJyLnR4dFVUBQAD5mym
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAISABklbhNOD6wAAAKQEAAB1ABgAAAAAAAEAAACk
gS5oAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVkZGF0YV9ub2F1dG9wbGF5LXN0
ZGVyci50eHRVVAUAA+dspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACEgAZJil0Y4esAAACk
BAAAbgAYAAAAAAABAAAApIHIaQIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRlZG1l
dGFkYXRhLXN0ZGVyci50eHRVVAUAA+hspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACFgAZJ
mXf96+gAAACkBAAAeQAYAAAAAAABAAAApIFbawIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50
X2xvYWRlZG1ldGFkYXRhX25vYXV0b3BsYXktc3RkZXJyLnR4dFVUBQAD6WymV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAIaABkmE4Q8n6AAAAKQEAABpABgAAAAAAAEAAACkgfZsAgBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
bWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZHN0YXJ0LXN0ZGVyci50eHRVVAUAA+tspld1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACGgAZJqm4sKugAAACkBAAAdAAYAAAAAAABAAAApIGBbgIAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRzdGFydF9ub2F1dG9wbGF5LXN0ZGVyci50eHRV
VAUAA+xspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACHgAZJX4Z6Ve8AAAAMBgAAfAAYAAAA
AAABAAAApIEXcAIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVyX2NhbnBsYXlfY2Fu
cGxheXRocm91Z2gtc3RkZXJyLnR4dFVUBQAD7WymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AIiABkmsrBlo7gAAAAwGAAB1ABgAAAAAAAEAAACkgbxxAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMv
ZXZlbnRfb3JkZXJfY2FucGxheV9wbGF5aW5nLXN0ZGVyci50eHRVVAUAA+9spld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACIgAZJG5hMfe0AAABmBgAAfwAYAAAAAAABAAAApIFZcwIAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVyX2xvYWRlZG1ldGFkYXRhX2xvYWRlZGRhdGEtc3Rk
ZXJyLnR4dFVUBQAD8GymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAImABklNXdWI7wAAAAwG
AAB4ABgAAAAAAAEAAACkgf90AgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfb3JkZXJfbG9h
ZHN0YXJ0X3Byb2dyZXNzLXN0ZGVyci50eHRVVAUAA/Fspld1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACJgAZJU5mt8u8AAAAMBgAAZQAYAAAAAAABAAAApIGgdgIAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL2V2ZW50X3BhdXNlLXN0ZGVyci50eHRVVAUAA/Jspld1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACKgAZJq19EM+gAAACkBAAAcAAYAAAAAAABAAAApIEueAIAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL2V2ZW50X3BhdXNlX25vYXV0b3BsYXktc3RkZXJyLnR4dFVUBQAD82ymV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAIuABklU7LAV6QAAAAwGAABkABgAAAAAAAEAAACkgcB5AgBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
bWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheS1zdGRlcnIudHh0VVQFAAP1bKZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAi4AGSfQTKz/pAAAA/gQAAG8AGAAAAAAAAQAAAKSBR3sCAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5X25vYXV0b3BsYXktc3RkZXJyLnR4dFVUBQAD9mymV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIyABkng5T9j7QAAAAwGAABnABgAAAAAAAEAAACkgdl8
AgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheWluZy1zdGRlcnIudHh0VVQFAAP3bKZX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjIAGScSs4fHuAAAADAYAAHIAGAAAAAAAAQAAAKSB
Z34CAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5aW5nX25vYXV0b3BsYXktc3RkZXJy
LnR4dFVUBQAD+GymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI2ABkm5qbXV7wAAAAwGAABo
ABgAAAAAAAEAAACkgQGAAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcHJvZ3Jlc3Mtc3Rk
ZXJyLnR4dFVUBQAD+WymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI2ABknh4F+b6AAAAKQE
AABzABgAAAAAAAEAAACkgZKBAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcHJvZ3Jlc3Nf
bm9hdXRvcGxheS1zdGRlcnIudHh0VVQFAAP6bKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
joAGSXZcKUzuAAAADAYAAGoAGAAAAAAAAQAAAKSBJ4MCAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9l
dmVudF90aW1ldXBkYXRlLXN0ZGVyci50eHRVVAUAA/xspld1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACPgAZJDLjGbe0AAAAMBgAAdQAYAAAAAAABAAAApIG5hAIAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL2V2ZW50X3RpbWV1cGRhdGVfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQFAAP9bKZXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAj4AGScjHCGmDAAAAwAAAAGwAGAAAAAAAAQAAAKSBVYYCAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF92b2x1bWVjaGFuZ2Utc3RkZXJyLnR4dFVUBQAD/mym
V3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIGABkkAAAAAAAAAAAAAAABaABgAAAAAAAAAEADt
QX6HAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9VVAUAA+Fspld1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAACBgAZJAAAAAAAAAAAAAAAAZAAYAAAAAAAAABAA7UESiAIAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2ludGVyZmFjZXMvVGV4dFRyYWNrL1VUBQAD4mymV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAIGABkmkjW1ZuwAAAJIBAAB5ABgAAAAAAAEAAACkgbCIAgBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
bWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9UZXh0VHJhY2svYWN0aXZlQ3Vlcy1zdGRlcnIudHh0
VVQFAAPhbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAgYAGSdzxgI+DAAAAwAAAAHUAGAAA
AAAAAQAAAKSBHooCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9pbnRlcmZhY2VzL1RleHRUcmFjay9h
ZGRDdWUtc3RkZXJyLnR4dFVUBQAD4mymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJCABkmA
FYPz3gAAAOQDAAB3ABgAAAAAAAEAAACkgVCLAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvbmV0d29y
a1N0YXRlX2R1cmluZ19sb2Fkc3RhcnQtc3RkZXJyLnR4dFVUBQAD/2ymV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAJCABkmTcVpBgwAAAMAAAABuABgAAAAAAAEAAACkgd+MAgBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVk
aWEtZWxlbWVudHMvbmV0d29ya1N0YXRlX2luaXRpYWwtc3RkZXJyLnR4dFVUBQAD/2ymV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAJCABklXgcUR4wAAAEwFAAByABgAAAAAAAEAAACkgQqOAgBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvcGF1c2VkX2ZhbHNlX2R1cmluZ19wbGF5LXN0ZGVyci50eHRV
VAUAAwBtpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACRgAZJNrChLuQAAAD+BAAAcgAYAAAA
AAABAAAApIGZjwIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3BhdXNlZF90cnVlX2R1cmluZ19wYXVz
ZS1zdGRlcnIudHh0VVQFAAMCbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAgoAGSQAAAAAA
AAAAAAAAAGoAGAAAAAAAAAAQAO1BKZECAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wbGF5aW5nLXRo
ZS1tZWRpYS1yZXNvdXJjZS9VVAUAA+Rspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACCgAZJ
ZhBYJ7oAAACSAQAAkQAYAAAAAAABAAAApIHNkQIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3BsYXlp
bmctdGhlLW1lZGlhLXJlc291cmNlL3BhdXNlLW1vdmUtdG8tb3RoZXItZG9jdW1lbnQtc3RkZXJy
LnR4dFVUBQAD42ymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIKABkkmfv4u2gAAAKwCAACP
ABgAAAAAAAEAAACkgVKTAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVkaWEt
cmVzb3VyY2UvcGF1c2UtbW92ZS13aXRoaW4tZG9jdW1lbnQtc3RkZXJyLnR4dFVUBQAD42ymV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIKABkly02Z75AAAAAYDAACPABgAAAAAAAEAAACkgfWU
AgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UvcGF1c2Ut
cmVtb3ZlLWZyb20tZG9jdW1lbnQtc3RkZXJyLnR4dFVUBQAD5GymV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAIKABkl7xLgchAAAAMAAAACBABgAAAAAAAEAAACkgaKWAgBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEt
ZWxlbWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UvcGxheWJhY2tSYXRlLXN0ZGVyci50
eHRVVAUAA+Rspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACRgAZJm/O+8YMAAADAAAAAeAAY
AAAAAAABAAAApIHhlwIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3ByZWxvYWRfcmVmbGVjdHNfbm9u
ZV9hdXRvcGxheS1zdGRlcnIudHh0VVQFAAMCbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
koAGSapZkEHjAAAATAUAAHMAGAAAAAAAAQAAAKSBFpkCAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9y
ZWFkeVN0YXRlX2R1cmluZ19jYW5wbGF5LXN0ZGVyci50eHRVVAUAAwNtpld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACSgAZJtxSOk+8AAAAMBgAAegAYAAAAAAABAAAApIGmmgIAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21l
ZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVfZHVyaW5nX2NhbnBsYXl0aHJvdWdoLXN0ZGVyci50eHRV
VAUAAwRtpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACTgAZJJLHfHO8AAAAMBgAAdgAYAAAA
AAABAAAApIFJnAIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVfZHVyaW5nX2xvYWRl
ZGRhdGEtc3RkZXJyLnR4dFVUBQADBW2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJOABkmd
I6JT6wAAAKQEAAB6ABgAAAAAAAEAAACkgeidAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHlT
dGF0ZV9kdXJpbmdfbG9hZGVkbWV0YWRhdGEtc3RkZXJyLnR4dFVUBQADBm2mV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAJSABkmvYyET8QAAAGYGAABzABgAAAAAAAEAAACkgYefAgBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
bWVkaWEtZWxlbWVudHMvcmVhZHlTdGF0ZV9kdXJpbmdfcGxheWluZy1zdGRlcnIudHh0VVQFAAMI
baZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAlIAGSX7xcQGDAAAAwAAAAGwAGAAAAAAAAQAA
AKSBJaECAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeVN0YXRlX2luaXRpYWwtc3RkZXJyLnR4
dFVUBQADCG2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJWABkk0dqNN1QAAAMICAACEABgA
AAAAAAEAAACkgU6iAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvc3JjX3JlZmxlY3RzX2F0dHJpYnV0
ZV9ub3Rfc291cmNlX2VsZW1lbnRzLXN0ZGVyci50eHRVVAUAAwltpld1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAACCgAZJAAAAAAAAAAAAAAAAVQAYAAAAAAAAABAA7UHhowIAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL3RyYWNrL1VUBQAD5GymV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIKABkkA
AAAAAAAAAAAAAABjABgAAAAAAAAAEADtQXCkAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdHJhY2sv
dHJhY2stZWxlbWVudC9VVAUAA+Rspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACCgAZJ4LyV
m+0AAAChAQAAggAYAAAAAAABAAAApIENpQIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3RyYWNrL3Ry
YWNrLWVsZW1lbnQvdHJhY2stYXBpLXRleHR0cmFja3Mtc3RkZXJyLnR4dFVUBQAD5GymV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAJWABklWUdyQvAAAAOwBAABjABgAAAAAAAEAAACkgbamAgBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvdmlkZW9fMDA4LXN0ZGVyci50eHRVVAUAAwltpld1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACVgAZJ6XPAkoMAAADAAAAAbAAYAAAAAAABAAAApIEPqAIAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL3ZpZGVvX3ZvbHVtZV9jaGVjay1zdGRlcnIudHh0VVQFAAMJbaZX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAgoAGSQAAAAAAAAAAAAAAAFEAGAAAAAAAAAAQAO1B
OKkCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC90aGUtYXJlYS1lbGVtZW50L1VUBQAD5GymV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAIKABkksQhrkhAAAABoBAABrABgAAAAAAAEAAACkgcOpAgBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWFyZWEt
ZWxlbWVudC9hcmVhLXByb2Nlc3Npbmctc3RkZXJyLnR4dFVUBQAD5GymV3V4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAIOABkkAAAAAAAAAAAAAAABSABgAAAAAAAAAEADtQeyqAgBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhl
LWF1ZGlvLWVsZW1lbnQvVVQFAAPmbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAg4AGSSHP
bW7eAAAA0AIAAG4AGAAAAAAAAQAAAKSBeKsCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtYXVkaW8tZWxlbWVudC9hdWRp
b19jb25zdHJ1Y3Rvci1zdGRlcnIudHh0VVQFAAPmbKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAkoAGSQAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1B/qwCAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL1VUBQADA22mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AIOABknCF/UVogAAAE8CAABGABgAAAAAAAEAAACkgWKtAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJmYWN0b3J5X29wZW4xMS1zdGRlcnIudHh0VVQFAAPlbKZX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhIAGSbxxbNWZAAAAxQAAAEMAGAAAAAAAAQAAAKSB
hK4CAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2Nv
dW50LXN0ZGVyci50eHRVVAUAA+dspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACDgAZJvHFs
1ZkAAADFAAAARAAYAAAAAAABAAAApIGarwIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiaW5kZXhfY291bnQyLXN0ZGVyci50eHRVVAUAA+Zspld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACDgAZJvHFs1ZkAAADFAAAARAAYAAAAAAABAAAApIGxsAIAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfY291bnQzLXN0ZGVy
ci50eHRVVAUAA+Zspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACIgAZJvHFs1ZkAAADFAAAA
SQAYAAAAAAABAAAApIHIsQIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfY291bnQtc3RkZXJyLnR4dFVUBQAD8GymV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAIiABkm8cWzVmQAAAMUAAABKABgAAAAAAAEAAACkgeSyAgBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jb3VudDItc3Rk
ZXJyLnR4dFVUBQAD72ymV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIiABkkEiukDnwAAAIoB
AABKABgAAAAAAAEAAACkgQG0AgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJvYmplY3RzdG9yZV9jb3VudDMtc3RkZXJyLnR4dFVUBQAD72ymV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAIqABkm8cWzVmQAAAMUAAABLABgAAAAAAAEAAACkgSS1AgBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGU1
LXN0ZGVyci50eHRVVAUAA/Nspld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACNgAZJvHFs1ZkA
AADFAAAATgAYAAAAAAABAAAApIFCtgIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRidHJhbnNhY3Rpb24tb25jb21wbGV0ZS1zdGRlcnIudHh0VVQFAAP5bKZXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAkYAGSQSK6QOfAAAAigEAAFgAGAAAAAAAAQAAAKSBY7cC
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLWNy
ZWF0ZV9pbl92ZXJzaW9uY2hhbmdlLXN0ZGVyci50eHRVVAUAAwFtpld1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACSgAZJvHFs1ZkAAADFAAAARgAYAAAAAAABAAAApIGUuAIAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvd3JpdGVyLXN0YXJ2YXRpb24tc3RkZXJyLnR4
dFVUBQADA22mV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJWABkkAAAAAAAAAAAAAAAAKABgA
AAAAAAAAEADtQa25AgBpbnNwZWN0b3IvVVQFAAMJbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAlYAGSQAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1B8bkCAGluc3BlY3Rvci9kZWJ1Z2dlci9V
VAUAAwltpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACVgAZJYjFSb5ELAACV4AAAQQAYAAAA
AAABAAAApIE+ugIAaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1p
bi1wcm9taXNlLXN0ZGVyci50eHRVVAUAAwltpld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACg
gAZJAAAAAAAAAAAAAAAAAwAYAAAAAAAAABAA7UFKxgIAanMvVVQFAAMbbaZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAuoAGSQAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1Bh8YCAGpzL2RvbS9V
VAUAA1Btpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACggAZJ3v266a8AAADuAAAANQAYAAAA
AAABAAAApIHIxgIAanMvZG9tL2NhbGxiYWNrLWZ1bmN0aW9uLXdpdGgtaGFuZGxlLWV2ZW50LXN0
ZGVyci50eHRVVAUAAxttpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC6gAZJ3v266a8AAADu
AAAAMAAYAAAAAAABAAAApIHmxwIAanMvZG9tL2V4Y2VwdGlvbnMtdGhyb3duLWluLWNhbGxiYWNr
cy1zdGRlcnIudHh0VVQFAANQbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAALYEGSQAAAAAA
AAAAAAAAAAYAGAAAAAAAAAAQAO1B/8gCAG1lZGlhL1VUBQADJW6mV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAKWABkleeaxW5wAAAJ0CAAAfABgAAAAAAAEAAACkgT/JAgBtZWRpYS9hdWRpby1k
YXRhLXVybC1zdGRlcnIudHh0VVQFAAMmbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAArYAG
SQAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1Bf8oCAG1lZGlhL21lZGlhLXNvdXJjZS9VVAUAAzVt
pld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACtgAZJ0rwRjYsAAACbAAAASAAYAAAAAAABAAAA
pIHMygIAbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1zdGFsbGVkLWhvbGRzLXNsZWVw
LWFzc2VydGlvbi1zdGRlcnIudHh0VVQFAAM1baZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
2YAGSbbfEhTFAAAAJAMAACgAGAAAAAAAAQAAAKSB2csCAG1lZGlhL3NvdXJjZXMtZmFsbGJhY2st
Y29kZWNzLXN0ZGVyci50eHRVVAUAA4ptpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADagAZJ
AIFCvYoAAACAAQAAMAAYAAAAAAABAAAApIEAzQIAbWVkaWEvc3ZnLWFzLWltYWdlLXdpdGgtbWVk
aWEtYmxvY2tlZC1zdGRlcnIudHh0VVQFAAOLbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
24AGSc9OKdKQAAAAvQAAACEAGAAAAAAAAQAAAKSB9M0CAG1lZGlhL3Vuc3VwcG9ydGVkLXJ0c3At
c3RkZXJyLnR4dFVUBQADjm2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC2BBkljg+4ZugAA
AJIBAAAfABgAAAAAAAEAAACkgd/OAgBtZWRpYS92aWRlby1zcmMtYmxvYi1zdGRlcnIudHh0VVQF
AAMlbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALYEGSe/Lxt2EAAAAwAAAACEAGAAAAAAA
AQAAAKSB8s8CAG1lZGlhL3ZpZGVvLXNyYy1jaGFuZ2Utc3RkZXJyLnR4dFVUBQADJW6mV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAALGABkkAAAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQdHQAgBw
bHVnaW5zL1VUBQADPW2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALGABkl8ULaargAAAPEA
AAAvABgAAAAAAAEAAACkgRPRAgBwbHVnaW5zL21vdXNlLWNsaWNrLWlmcmFtZS10by1wbHVnaW4t
c3RkZXJyLnR4dFVUBQADPW2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHCABkkGMiZ1TgIA
AJAQAAAaABgAAAAAAAEAAACkgSrSAgBweXdlYnNvY2tldC53cy5sb2ctZXJyLnR4dFVUBQADxGym
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGGABkk4R588CAEAAI8CAAAaABgAAAAAAAEAAACk
gczUAgBweXdlYnNvY2tldC53cy5sb2ctb3V0LnR4dFVUBQADpmymV3V4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAHN/BkkAAAAAAAAAAAAAAAAbABgAAAAAAAAAAACkgSjWAgBweXdlYnNvY2tldC53
c3MubG9nLWVyci50eHRVVAUAA9prpld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABzfwZJAAAA
AAAAAAAAAAAAGwAYAAAAAAAAAAAApIF91gIAcHl3ZWJzb2NrZXQud3NzLmxvZy1vdXQudHh0VVQF
AAPZa6ZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMYIGSUUmHTnRJwAAy6oAAAwAGAAAAAAA
AQAAAKSB0tYCAHJlc3VsdHMuaHRtbFVUBQADDXCmV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
ADCCBkkAAAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQen+AgByZXRyaWVzL1VUBQADDHCmV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAADCCBkkAAAAAAAAAAAAAAAARABgAAAAAAAAAEADtQSv/AgBy
ZXRyaWVzL2ltcG9ydGVkL1VUBQADDHCmV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAADCCBkkA
AAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQXb/AgByZXRyaWVzL2ltcG9ydGVkL3czYy9VVAUAAwxw
pld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAwggZJAAAAAAAAAAAAAAAAKAAYAAAAAAAAABAA
7UHF/wIAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1VUBQADDHCmV3V4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAADCCBkkAAAAAAAAAAAAAAAAuABgAAAAAAAAAEADtQScA
AwByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvVVQFAAMMcKZX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAMIIGSQAAAAAAAAAAAAAAADIAGAAAAAAAAAAQAO1B
jwADAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvVVQF
AAMMcKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAMIIGSQAAAAAAAAAAAAAAADgAGAAAAAAA
AAAQAO1B+wADAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYmFzaWMvVVQFAAMMcKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMIIGScqlhqI8AQAA
kAUAAFMAGAAAAAAAAQAAAKSBbQEDAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi1hY3R1YWwudHh0VVQFAAMMcKZX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMIIGSfUNcHCQAQAASgYAAFEAGAAAAAAAAQAAAKSB
NgMDAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFz
aWMvbW9kZS1zYW1lLW9yaWdpbi1kaWZmLnR4dFVUBQADDHCmV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIADCCBkls2rPTRQEAAKgFAABVABgAAAAAAAEAAACkgVEFAwByZXRyaWVzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtc2FtZS1vcmlnaW4t
ZXhwZWN0ZWQudHh0VVQFAAMMcKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMIIGSX3bnQOM
CAAA2CAAAFkAGAAAAAAAAQAAAKSBJQcDAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi1wcmV0dHktZGlmZi5odG1s
VVQFAAMMcKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMIIGSWo07zJBAQAAngUAAFoAGAAA
AAAAAQAAAKSBRBADAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi13b3JrZXItYWN0dWFsLnR4dFVUBQADDHCmV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADCCBkldbiMXlgEAAHQGAABYABgAAAAAAAEAAACkgRkS
AwByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2lj
L21vZGUtc2FtZS1vcmlnaW4td29ya2VyLWRpZmYudHh0VVQFAAMMcKZXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAMIIGSelzKfFKAQAAtgUAAFwAGAAAAAAAAQAAAKSBQRQDAHJldHJpZXMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9y
aWdpbi13b3JrZXItZXhwZWN0ZWQudHh0VVQFAAMMcKZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAMIIGSQyCGY2RCAAA+yAAAGAAGAAAAAAAAQAAAKSBIRYDAHJldHJpZXMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1zYW1lLW9yaWdpbi13b3Jr
ZXItcHJldHR5LWRpZmYuaHRtbFVUBQADDHCmV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADGC
BklJAn6JX8MIACbYLgAKABgAAAAAAAEAAACkgUwfAwBzdGF0cy5qc29uVVQFAAMNcKZXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAA2IAGSQAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1B7+ILAHN0
b3JhZ2UvVVQFAAOIbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAL4EGSQAAAAAAAAAAAAAA
ABIAGAAAAAAAAAAQAO1BMeMLAHN0b3JhZ2UvaW5kZXhlZGRiL1VUBQADKW6mV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAPeABknCF/UVogAAAE8CAAApABgAAAAAAAEAAACkgX3jCwBzdG9yYWdl
L2luZGV4ZWRkYi9pbmRleC1iYXNpY3Mtc3RkZXJyLnR4dFVUBQADwm2mV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAPeABknCF/UVogAAAE8CAAAxABgAAAAAAAEAAACkgYLkCwBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbmRleC1iYXNpY3Mtd29ya2Vycy1zdGRlcnIudHh0VVQFAAPBbaZXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA+IAGSbYLDNuvAAAAAQoAACgAGAAAAAAAAQAAAKSBj+ULAHN0b3Jh
Z2UvaW5kZXhlZGRiL2luZGV4LWNvdW50LXN0ZGVyci50eHRVVAUAA8Ntpld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAD7gAZJ/P1/XqMAAAAUAwAALQAYAAAAAAABAAAApIGg5gsAc3RvcmFnZS9p
bmRleGVkZGIvaW5kZXgtbXVsdGllbnRyeS1zdGRlcnIudHh0VVQFAAPKbaZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA+4AGSbxxbNWZAAAAxQAAAC0AGAAAAAAAAQAAAKSBqucLAHN0b3JhZ2Uv
aW5kZXhlZGRiL2luZGV4LXBvcHVsYXRpb24tc3RkZXJyLnR4dFVUBQADym2mV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAACBBklXIsmkswUAAEwwAABFABgAAAAAAAAAAACkgaroCwBzdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4taW4tdXBncmFkZW5lZWRlZC1wcml2YXRlLXN0ZGVy
ci50eHRVVAUAA9Btpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAABgQZJbOZKtMkFAABiMwAA
PQAYAAAAAAAAAAAApIHc7gsAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLWluLXVw
Z3JhZGVuZWVkZWQtc3RkZXJyLnR4dFVUBQAD0W2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AAGBBknWbjvVQwQAACQXAABBABgAAAAAAAAAAACkgRz1CwBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD0W2mV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAAGBBknN70j8OQQAAMQWAAA5ABgAAAAAAAAAAACkgdr5CwBz
dG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLXN0ZGVyci50eHRV
VAUAA9Ftpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAABgQZJKrS/PfIEAAB/OAAAUQAYAAAA
AAAAAAAApIGG/gsAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZW5kaW5nLXZlcnNpb24t
Y2hhbmdlcy1hc2NlbmRpbmctcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPRbaZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAAYEGScqL1JUfBQAAwTkAAEkAGAAAAAAAAAAAAKSBAwQMAHN0b3JhZ2Uv
aW5kZXhlZGRiL2ludHZlcnNpb24tcGVuZGluZy12ZXJzaW9uLWNoYW5nZXMtYXNjZW5kaW5nLXN0
ZGVyci50eHRVVAUAA9Jtpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAABgQZJjZf/C9sEAAAK
LAAAUgAYAAAAAAAAAAAApIGlCQwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZW5kaW5n
LXZlcnNpb24tY2hhbmdlcy1kZXNjZW5kaW5nLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD0m2mV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAGBBkmUVHgx8AQAAPgpAABKABgAAAAAAAAAAACkgQwP
DABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlbmRpbmctdmVyc2lvbi1jaGFuZ2VzLWRl
c2NlbmRpbmctc3RkZXJyLnR4dFVUBQAD0m2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAGB
BklHGq1+vQQAACYpAABMABgAAAAAAAAAAACkgYAUDABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJz
aW9uLXBlbmRpbmctdmVyc2lvbi1jaGFuZ2VzLXNhbWUtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPS
baZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAYEGSda16xLzBAAALi0AAEQAGAAAAAAAAAAA
AKSBwxkMAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tcGVuZGluZy12ZXJzaW9uLWNoYW5n
ZXMtc2FtZS1zdGRlcnIudHh0VVQFAAPSbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAoEG
SXdZRCYQBAAANxoAADsAGAAAAAAAAAAAAKSBNB8MAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNp
b24tcGVyc2lzdGVuY2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPTbaZXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAAoEGSXvKbJjjAwAA/RcAADMAGAAAAAAAAAAAAKSBuSMMAHN0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tcGVyc2lzdGVuY2Utc3RkZXJyLnR4dFVUBQAD022mV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAAKBBkmRNfLvNQUAABwqAAA/ABgAAAAAAAAAAACkgQkoDABzdG9y
YWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXJldmVydC1vbi1hYm9ydC1wcml2YXRlLXN0ZGVyci50
eHRVVAUAA9Ntpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAACgQZJRFdR1TcFAACvKwAANwAY
AAAAAAAAAAAApIG3LQwAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1yZXZlcnQtb24tYWJv
cnQtc3RkZXJyLnR4dFVUBQAD022mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAKBBknWshYH
6gMAAJYYAABFABgAAAAAAAAAAACkgV8zDABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXR3
by1vcGVucy1uby12ZXJzaW9ucy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA9Rtpld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAACgQZJyg+2YhYEAAD9GQAAPQAYAAAAAAAAAAAApIHINwwAc3RvcmFn
ZS9pbmRleGVkZGIvaW50dmVyc2lvbi10d28tb3BlbnMtbm8tdmVyc2lvbnMtc3RkZXJyLnR4dFVU
BQAD1G2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAKBBklK5zv2GwUAAM9BAAA4ABgAAAAA
AAAAAACkgVU8DABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXVwZ3JhZGVzLXByaXZhdGUt
c3RkZXJyLnR4dFVUBQAD1G2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAKBBkmpFREUPQUA
AF1EAAAwABgAAAAAAAAAAACkgeJBDABzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXVwZ3Jh
ZGVzLXN0ZGVyci50eHRVVAUAA9Rtpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAADgQZJ8E6m
NCEDAADlEAAAMQAYAAAAAAAAAAAApIGJRwwAc3RvcmFnZS9pbmRleGVkZGIvaW52YWxpZC1rZXlz
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD1W2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAOB
Bkkc3+w3tQMAAKcSAAApABgAAAAAAAAAAACkgRVLDABzdG9yYWdlL2luZGV4ZWRkYi9pbnZhbGlk
LWtleXMtc3RkZXJyLnR4dFVUBQAD1W2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAOBBkkt
FhdeyAsAAHaYAQAyABgAAAAAAAAAAACkgS1PDABzdG9yYWdlL2luZGV4ZWRkYi9rZXktZ2VuZXJh
dG9yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD1m2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AASBBkkI8xSC6gsAAKWcAQAqABgAAAAAAAAAAACkgWFbDABzdG9yYWdlL2luZGV4ZWRkYi9rZXkt
Z2VuZXJhdG9yLXN0ZGVyci50eHRVVAUAA9htpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAE
gQZJigAx5P0EAAA3NQAAQAAYAAAAAAAAAAAApIGvZwwAc3RvcmFnZS9pbmRleGVkZGIva2V5LXNv
cnQtb3JkZXItYWNyb3NzLXR5cGVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD2G2mV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAASBBklzYTjjuAUAACw1AAA4ABgAAAAAAAAAAACkgSZtDABzdG9y
YWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1hY3Jvc3MtdHlwZXMtc3RkZXJyLnR4dFVUBQAD
2G2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAWBBklWQXTQMgUAAEctAAA4ABgAAAAAAAAA
AACkgVBzDABzdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1kYXRlLXByaXZhdGUtc3Rk
ZXJyLnR4dFVUBQAD2W2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAWBBklLBho9oAUAAL0u
AAAwABgAAAAAAAAAAACkgfR4DABzdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1kYXRl
LXN0ZGVyci50eHRVVAUAA9ltpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAFgQZJ6/cfrMEH
AADCtAAAMwAYAAAAAAAAAAAApIH+fgwAc3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtYXJyYXkt
cHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPabaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABoEG
SVkGD+epBwAAtbgAACsAGAAAAAAAAAAAAKSBLIcMAHN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBl
LWFycmF5LXN0ZGVyci50eHRVVAUAA9xtpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAGgQZJ
Vl9pLugEAAA6JAAANAAYAAAAAAAAAAAApIE6jwwAc3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUt
YmluYXJ5LXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD3G2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAAeBBkkRPbgm6QQAAEEkAAAsABgAAAAAAAAAAACkgZCUDABzdG9yYWdlL2luZGV4ZWRkYi9r
ZXktdHlwZS1iaW5hcnktc3RkZXJyLnR4dFVUBQAD3W2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAAeBBkl+x9HZMQQAAKAXAAA2ABgAAAAAAAAAAACkgd+ZDABzdG9yYWdlL2luZGV4ZWRkYi9r
ZXktdHlwZS1pbmZpbml0eS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA91tpld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAHgQZJRsPwNMIEAAC0GgAALgAYAAAAAAAAAAAApIGAngwAc3RvcmFnZS9p
bmRleGVkZGIva2V5LXR5cGUtaW5maW5pdHktc3RkZXJyLnR4dFVUBQAD3W2mV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAAeBBkkZv545xwYAAKc3AAAzABgAAAAAAAAAAACkgaqjDABzdG9yYWdl
L2luZGV4ZWRkYi9rZXlwYXRoLWFycmF5cy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA91tpld1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAHgQZJMI3vKKoGAADnNAAAKwAYAAAAAAAAAAAApIHeqgwA
c3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1hcnJheXMtc3RkZXJyLnR4dFVUBQAD3m2mV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAAiBBklJ0ajfqAMAALlPAAAzABgAAAAAAAAAAACkge2xDABz
dG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWJhc2ljcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA99t
pld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAJgQZJzsIgx5IEAAAQdAAAKwAYAAAAAAAAAAAA
pIECtgwAc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1iYXNpY3Mtc3RkZXJyLnR4dFVUBQAD4W2m
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAmBBknCh5PtVAYAALBbAAAyABgAAAAAAAAAAACk
gfm6DABzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWVkZ2VzLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQAD4m2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAqBBkm86VzjtwUAALE2AAAqABgAAAAA
AAAAAACkgbnBDABzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWVkZ2VzLXN0ZGVyci50eHRVVAUA
A+Ntpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAKgQZJjVjmP/0EAADXOQAANgAYAAAAAAAA
AAAApIHUxwwAc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1mZXRjaC1rZXktcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAPjbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACoEGSSqgO63RBQAArj4A
AC4AGAAAAAAAAAAAAKSBQc0MAHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZmV0Y2gta2V5LXN0
ZGVyci50eHRVVAUAA+Ntpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAKgQZJOPKMxesGAAAT
WgAAQQAYAAAAAAAAAAAApIF60wwAc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1pbnRyaW5zaWMt
cHJvcGVydGllcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA+Rtpld1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAKgQZJrwWN3fMGAACUWQAAOQAYAAAAAAAAAAAApIHg2gwAc3RvcmFnZS9pbmRleGVk
ZGIva2V5cGF0aC1pbnRyaW5zaWMtcHJvcGVydGllcy1zdGRlcnIudHh0VVQFAAPkbaZXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAC4EGSYMfunjTAAAAQAIAAC0AGAAAAAAAAAAAAKSBRuIMAHN0
b3JhZ2UvaW5kZXhlZGRiL2tleXJhbmdlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD5W2mV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAAuBBkkGtsjV+AcAAJ2AAAA6ABgAAAAAAAAAAACkgYDjDABz
dG9yYWdlL2luZGV4ZWRkYi9sYXp5LWluZGV4LXBvcHVsYXRpb24tcHJpdmF0ZS1zdGRlcnIudHh0
VVQFAAPmbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAC4EGSXuMTiQ2CAAA1H8AADIAGAAA
AAAAAAAAAKSB7OsMAHN0b3JhZ2UvaW5kZXhlZGRiL2xhenktaW5kZXgtcG9wdWxhdGlvbi1zdGRl
cnIudHh0VVQFAAPmbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADIEGSc3TirB1BgAA9lkA
ADUAGAAAAAAAAAAAAKSBjvQMAHN0b3JhZ2UvaW5kZXhlZGRiL2xhenktaW5kZXgtdHlwZXMtcHJp
dmF0ZS1zdGRlcnIudHh0VVQFAAPnbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADIEGSXqF
r+loBwAAYWQAAC0AGAAAAAAAAAAAAKSBcvsMAHN0b3JhZ2UvaW5kZXhlZGRiL2xhenktaW5kZXgt
dHlwZXMtc3RkZXJyLnR4dFVUBQAD522mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAyBBkkm
9BPm1gAAAEACAAA1ABgAAAAAAAAAAACkgUEDDQBzdG9yYWdlL2luZGV4ZWRkYi9sZWdhY3ktY29u
c3RhbnRzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD522mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAAyBBknfizANHwUAAE+EAAAyABgAAAAAAAAAAACkgYYEDQBzdG9yYWdlL2luZGV4ZWRkYi9s
aXN0LW9yZGVyaW5nLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD6G2mV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAAyBBkm+aK4rjAUAAIp6AAAqABgAAAAAAAAAAACkgREKDQBzdG9yYWdlL2luZGV4
ZWRkYi9saXN0LW9yZGVyaW5nLXN0ZGVyci50eHRVVAUAA+htpld1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAANgQZJ90K93wIGAABSUQAALQAYAAAAAAAAAAAApIEBEA0Ac3RvcmFnZS9pbmRleGVk
ZGIvbWV0YWRhdGEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPpbaZXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgADYEGSY1wr/r1BAAA+h4AADIAGAAAAAAAAAAAAKSBahYNAHN0b3JhZ2UvaW5kZXhl
ZGRiL21ldGFkYXRhLXJhY2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAPpbaZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgADYEGSZamgXahBQAAXiMAACoAGAAAAAAAAAAAAKSByxsNAHN0b3JhZ2Uv
aW5kZXhlZGRiL21ldGFkYXRhLXJhY2Utc3RkZXJyLnR4dFVUBQAD6W2mV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAA2BBkmfvQKYeAYAAN9SAAAlABgAAAAAAAAAAACkgdAhDQBzdG9yYWdlL2lu
ZGV4ZWRkYi9tZXRhZGF0YS1zdGRlcnIudHh0VVQFAAPqbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAA+IAGSQAAAAAAAAAAAAAAABkAGAAAAAAAAAAQAO1BpygNAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9VVAUAA8Ntpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADYgAZJJslKGYEGAACo
RgAARAAYAAAAAAAAAAAApIH6KA0Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Fib3J0LXJlcXVl
c3RzLWNhbmNlbGxlZC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA4htpld1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADYgAZJI6HUkWgGAABmTQAANwAYAAAAAAAAAAAApIH5Lw0Ac3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2Fib3J0ZWQtcHV0LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADiG2mV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIANmABkk4vUMndAYAACdKAAAvABgAAAAAAAAAAACkgdI2DQBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYWJvcnRlZC1wdXQtc3RkZXJyLnR4dFVUBQADiW2mV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANmABkmejC3ceAYAAKlrAAA3ABgAAAAAAAAAAACkga89
DQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYXV0b2luY3JlbWVudC1hYm9ydC1zdGRlcnIudHh0
VVQFAAOJbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2YAGSZD4D3nwBAAA+hwAADUAGAAA
AAAAAAAAAKSBmEQNAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9iYXNpYy1hZGQtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAOKbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2YAGSWV+alsDBQAA
Ex0AAC0AGAAAAAAAAAAAAKSB90kNAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9iYXNpYy1hZGQt
c3RkZXJyLnR4dFVUBQADim2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANmABknCAt+XzgQA
ADIaAAA1ABgAAAAAAAAAAACkgWFPDQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmFzaWMtcHV0
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADim2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANmA
Bkmn8l0A3wQAAKUaAAAtABgAAAAAAAAAAACkgZ5UDQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
YmFzaWMtcHV0LXN0ZGVyci50eHRVVAUAA4ptpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADa
gAZJ7SRhAYQGAADrPAAALwAYAAAAAAAAAAAApIHkWQ0Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2Jsb2ItY3Vyc29yLXN0ZGVyci50eHRVVAUAA4ttpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADagAZJJB/YDxIJAAAYpgAALwAYAAAAAAAAAAAApIHRYA0Ac3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2Jsb2Itc2ltcGxlLXN0ZGVyci50eHRVVAUAA4xtpld1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADagAZJkFhH4f8JAACUpQAANwAYAAAAAAAAAAAApIFMag0Ac3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2Jsb2Itc2ltcGxlLXdvcmtlcnMtc3RkZXJyLnR4dFVUBQADjG2mV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIANuABklNASe8DQYAABw0AAAyABgAAAAAAAAAAACkgbx0DQBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vYmxvYi1zdmctaW1hZ2Utc3RkZXJyLnR4dFVUBQADjW2mV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIANuABklM+skWRgYAADEyAABEABgAAAAAAAAAAACkgTV7DQBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmxvY2tlZC1vcGVuLWRiLXJlcXVlc3RzLXByaXZhdGUt
c3RkZXJyLnR4dFVUBQADjW2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANuABknsZV2LsQYA
AHAzAAA8ABgAAAAAAAAAAACkgfmBDQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmxvY2tlZC1v
cGVuLWRiLXJlcXVlc3RzLXN0ZGVyci50eHRVVAUAA45tpld1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADbgAZJ0/3y+BwGAAAaLwAAQQAYAAAAAAAAAAAApIEgiQ0Ac3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2NyZWF0ZS1pbmRleC1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA45tpld1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADbgAZJ8CraURcGAAD9KwAAOQAYAAAAAAAAAAAApIG3
jw0Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2NyZWF0ZS1pbmRleC1mYWlsdXJlcy1zdGRlcnIu
dHh0VVQFAAOObaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA24AGSe2g7rf+BQAAYkMAAEMA
GAAAAAAAAAAAAKSBQZYNAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jcmVhdGVvYmplY3RzdG9y
ZS1iYXNpYy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA45tpld1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADcgAZJPIBi1ksGAAAPRQAAOwAYAAAAAAAAAAAApIG8nA0Ac3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2NyZWF0ZW9iamVjdHN0b3JlLWJhc2ljLXN0ZGVyci50eHRVVAUAA49tpld1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADcgAZJ9boF5p0EAABlGwAARgAYAAAAAAAAAAAApIF8ow0Ac3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2NyZWF0ZW9iamVjdHN0b3JlLWZhaWx1cmVzLXByaXZhdGUt
c3RkZXJyLnR4dFVUBQADj22mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANyABkkp8xaHRgQA
ADwYAAA+ABgAAAAAAAAAAACkgZmoDQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3JlYXRlb2Jq
ZWN0c3RvcmUtZmFpbHVyZXMtc3RkZXJyLnR4dFVUBQADj22mV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIANyABknJjIo22AUAANBWAAA0ABgAAAAAAAAAAACkgVetDQBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vY3Vyc29yLTEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOPbaZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA3IAGSZ/qd/oNBgAAqFgAACwAGAAAAAAAAAAAAKSBnbMNAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMS1zdGRlcnIudHh0VVQFAAOQbaZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA3IAGSW3uunz3BQAAh3kAADQAGAAAAAAAAAAAAKSBELoNAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMi1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5Btpld1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADdgAZJRcQ46xkGAABwdQAALAAYAAAAAAAAAAAApIF1wA0A
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0yLXN0ZGVyci50eHRVVAUAA5Ftpld1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADdgAZJp6m+VscFAAAVVgAANAAYAAAAAAAAAAAApIH0xg0A
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0zLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD
kW2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAN2ABkmypHiV4gUAAM5UAAAsABgAAAAAAAAA
AACkgSnNDQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTMtc3RkZXJyLnR4dFVUBQAD
km2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAN2ABkk8JF5vwAUAAGFQAAA0ABgAAAAAAAAA
AACkgXHTDQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTQtcHJpdmF0ZS1zdGRlcnIu
dHh0VVQFAAOSbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3YAGScoAOivdBQAAhE8AACwA
GAAAAAAAAAAAAKSBn9kNAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItNC1zdGRlcnIu
dHh0VVQFAAOSbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4IAGSdpPrUedBQAACS4AADQA
GAAAAAAAAAAAAKSB4t8NAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItNS1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA5Ntpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADggAZJ17I26d0F
AAA9LwAALAAYAAAAAAAAAAAApIHt5Q0Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci01
LXN0ZGVyci50eHRVVAUAA5Ntpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADggAZJTgKn0KUF
AABXLgAANAAYAAAAAAAAAAAApIEw7A0Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci02
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADk22mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOCA
BkkmKRNX4AUAADUvAAAsABgAAAAAAAAAAACkgUPyDQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
Y3Vyc29yLTYtc3RkZXJyLnR4dFVUBQADk22mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOCA
Bknfac+RjAUAAJQoAAA0ABgAAAAAAAAAAACkgYn4DQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
Y3Vyc29yLTctcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOUbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA4IAGSYa1xtK3BQAAqCkAACwAGAAAAAAAAAAAAKSBg/4NAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9jdXJzb3ItNy1zdGRlcnIudHh0VVQFAAOUbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA4IAGSdVnezGPBQAA4igAADQAGAAAAAAAAAAAAKSBoAQOAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9jdXJzb3ItOC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5Rtpld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADggAZJCGPnnrUFAAAEKQAALAAYAAAAAAAAAAAApIGdCg4Ac3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2N1cnNvci04LXN0ZGVyci50eHRVVAUAA5Rtpld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADggAZJiUiGG/MFAABuQAAANgAYAAAAAAAAAAAApIG4EA4Ac3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2RhdGUtYmFzaWMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOUbaZXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4YAGSajoVur6BQAAlUEAAC4AGAAAAAAAAAAAAKSBGxcO
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kYXRlLWJhc2ljLXN0ZGVyci50eHRVVAUAA5Vtpld1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADhgAZJ9S9kimsFAADKLAAAPAAYAAAAAAAAAAAApIF9
HQ4Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLTEtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAOVbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4YAGSWySblmKBQAAAy4A
ADQAGAAAAAAAAAAAAKSBXiMOAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFz
ZS0xLXN0ZGVyci50eHRVVAUAA5Vtpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADhgAZJ5G1u
1BwGAADbMAAAPAAYAAAAAAAAAAAApIFWKQ4Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0
ZWRhdGFiYXNlLTItcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOVbaZXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA4YAGScxzXxceBgAALjEAADQAGAAAAAAAAAAAAKSB6C8OAHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS0yLXN0ZGVyci50eHRVVAUAA5Ztpld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADhgAZJwLxaANQAAADgAgAATgAYAAAAAAAAAAAApIF0Ng4Ac3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLW51bGwtbmFtZS1leGNlcHRpb24tcHJp
dmF0ZS1zdGRlcnIudHh0VVQFAAOWbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4YAGSYtC
ZWJPAQAAnQMAAEgAGAAAAAAAAAAAAKSB0DcOAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxl
dGVkYXRhYmFzZS1yZXF1ZXN0LWV2ZW50LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADlm2mV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAOGABkk1esHfiwEAAEIEAABAABgAAAAAAAAAAACkgaE5DgBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtcmVxdWVzdC1ldmVudC1zdGRl
cnIudHh0VVQFAAOWbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4YAGSWA29DJWAAAAmQAA
AEIAGAAAAAAAAAAAAKSBpjsOAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFz
ZS1yZXF1ZXN0LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADlm2mV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAOKABkm7WMPDDwEAACEDAAA6ABgAAAAAAAAAAACkgXg8DgBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtcmVxdWVzdC1zdGRlcnIudHh0VVQFAAOXbaZXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA4oAGSUrvglQlBwAA3DcAADkAGAAAAAAAAAAAAKSB+z0OAHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVpbmRleC0xLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQADl22mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOKABklZGMWdowcAAAw4AAAxABgAAAAA
AAAAAACkgZNFDgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMS1zdGRlcnIu
dHh0VVQFAAOXbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4oAGSbtcj793BwAAx08AADkA
GAAAAAAAAAAAAKSBoU0OAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVpbmRleC0yLXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADmG2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOKABkk4
e1GjBggAADRQAAAxABgAAAAAAAAAAACkgYtVDgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVs
ZXRlaW5kZXgtMi1zdGRlcnIudHh0VVQFAAOYbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
4oAGSZD7qbsrBQAAsyMAADkAGAAAAAAAAAAAAKSB/F0OAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9kZWxldGVpbmRleC0zLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADmG2mV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAOKABkmr8oExkQUAAKokAAAxABgAAAAAAAAAAACkgZpjDgBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMy1zdGRlcnIudHh0VVQFAAOYbaZXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA44AGSXCpp058BQAAyCwAADkAGAAAAAAAAAAAAKSBlmkOAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVpbmRleC00LXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD
mW2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOOABkmMeh5GDgcAACRoAAA/ABgAAAAAAAAA
AACkgYVvDgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlb2JqZWN0c3RvcmUtMS1wcml2
YXRlLXN0ZGVyci50eHRVVAUAA5ltpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADjgAZJq/Xz
EBMHAAC0agAANwAYAAAAAAAAAAAApIEMdw4Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0
ZW9iamVjdHN0b3JlLTEtc3RkZXJyLnR4dFVUBQADmW2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAOOABkktp0wTwgMAAJwUAAA4ABgAAAAAAAAAAACkgZB+DgBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vZG91YmxlLWFib3J0LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADmW2mV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAOOABkle30Zl6QMAAHQTAAAwABgAAAAAAAAAAACkgcSCDgBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vZG91YmxlLWFib3J0LXN0ZGVyci50eHRVVAUAA5ptpld1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADjgAZJWH+y5WEDAADLEgAANwAYAAAAAAAAAAAApIEXhw4Ac3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1vcGVuLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD
mm2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOOABknqad+FkwMAAI0VAAAvABgAAAAAAAAA
AACkgemKDgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZG91YmxlLW9wZW4tc3RkZXJyLnR4dFVU
BQADmm2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOOABkmRC633lAQAAFQkAAA+ABgAAAAA
AAAAAACkgeWODgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZ2MtY2xvc2VzLWRhdGFiYXNlLXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADmm2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOSABkmw
AwJdwwQAACclAAA2ABgAAAAAAAAAAACkgfGTDgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZ2Mt
Y2xvc2VzLWRhdGFiYXNlLXN0ZGVyci50eHRVVAUAA5ttpld1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADkgAZJyKUlFTUGAAAfNwAAPgAYAAAAAAAAAAAApIEkmQ4Ac3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2dldC1pbmRleC1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5ttpld1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADkgAZJZEcmLm4GAADGNQAANgAYAAAAAAAAAAAApIHRnw4A
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2dldC1pbmRleC1mYWlsdXJlcy1zdGRlcnIudHh0VVQF
AAObbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5IAGSRFzfy2SCQAA6u4BADgAGAAAAAAA
AAAAAKSBr6YOAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9nZXQta2V5cmFuZ2UtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAOcbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5YAGSbzZllfDCQAA
9wQCADAAGAAAAAAAAAAAAKSBs7AOAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9nZXQta2V5cmFu
Z2Utc3RkZXJyLnR4dFVUBQADnW2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOWABkneHcXt
RQUAADYdAAA2ABgAAAAAAAAAAACkgeC6DgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaGFuZGxl
LXVzZXItZGVsZXRlLXN0ZGVyci50eHRVVAUAA55tpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADlgAZJYMltzB8GAADDNAAAUgAYAAAAAAAAAAAApIGVwA4Ac3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2lkYmRhdGFiYXNlLWRlbGV0ZW9iamVjdHN0b3JlLWZhaWx1cmVzLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQADnm2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOWABklUADT5HAYAALc1AABK
ABgAAAAAAAAAAACkgUDHDgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiZGF0YWJhc2UtZGVs
ZXRlb2JqZWN0c3RvcmUtZmFpbHVyZXMtc3RkZXJyLnR4dFVUBQADnm2mV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAOWABkl11o6NjwQAAOQYAABMABgAAAAAAAAAAACkgeDNDgBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vaWRiZGF0YWJhc2UtdHJhbnNhY3Rpb24tZmFpbHVyZXMtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAOebaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5oAGSeny+bmoBAAA
/xgAAEQAGAAAAAAAAAAAAKSB9dIOAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJkYXRhYmFz
ZS10cmFuc2FjdGlvbi1mYWlsdXJlcy1zdGRlcnIudHh0VVQFAAOfbaZXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA5oAGSVBLvI1VBQAAnTQAAEUAGAAAAAAAAAAAAKSBG9gOAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9pZGJpbmRleC1wcm9wZXJ0aWVzLWJhc2ljLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADn22mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOaABkmN0bjVewUAAKk0AAA9ABgA
AAAAAAAAAACkge/dDgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiaW5kZXgtcHJvcGVydGll
cy1iYXNpYy1zdGRlcnIudHh0VVQFAAOfbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA54AG
SampgzKjCwAA4MkFAEEAGAAAAAAAAAAAAKSB4eMOAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9p
ZGJrZXktYXJyYXktZXF1YWxpdHktcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOibaZXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA6YAGSeIGgJ3RDQAAy9sGADkAGAAAAAAAAAAAAKSB/+8OAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9pZGJrZXktYXJyYXktZXF1YWxpdHktc3RkZXJyLnR4dFVUBQAD
pW2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOmABklH/BFKCgcAAGRyAABCABgAAAAAAAAA
AACkgUP+DgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY2xlYXItMS1w
cml2YXRlLXN0ZGVyci50eHRVVAUAA6Vtpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADpgAZJ
0N4DyecGAAA0cgAAOgAYAAAAAAAAAAAApIHJBQ8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lk
Ym9iamVjdHN0b3JlLWNsZWFyLTEtc3RkZXJyLnR4dFVUBQADpm2mV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAOmABkn9YIPHrwcAABeZAABCABgAAAAAAAAAAACkgSQNDwBzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY2xlYXItMi1wcml2YXRlLXN0ZGVyci50eHRVVAUA
A6Ztpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADpgAZJK4vvSbkHAACJmwAAOgAYAAAAAAAA
AAAApIFPFQ8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNsZWFyLTIt
c3RkZXJyLnR4dFVUBQADpm2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOqABknIRQIDVgYA
AAisAABCABgAAAAAAAAAAACkgXwdDwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0
c3RvcmUtY291bnQtMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA6dtpld1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADqgAZJ7uEl3GgHAABl4QAAOgAYAAAAAAAAAAAApIFOJA8Ac3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNvdW50LTEtc3RkZXJyLnR4dFVUBQADp22mV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOqABkkfLDj17AUAAI4uAABJABgAAAAAAAAAAACkgSos
DwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY291bnQtZmFpbHVyZXMt
cHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOnbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6oAG
STAZU9QHBgAAtC4AAEEAGAAAAAAAAAAAAKSBmTIPAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9p
ZGJvYmplY3RzdG9yZS1jb3VudC1mYWlsdXJlcy1zdGRlcnIudHh0VVQFAAOobaZXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA6oAGSXVi8RknCQAAf50BAEMAGAAAAAAAAAAAAKSBGzkPAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1kZWxldGUtMS1wcml2YXRlLXN0ZGVy
ci50eHRVVAUAA6htpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADrgAZJ1MZKbIcKAAD+4wEA
OwAYAAAAAAAAAAAApIG/Qg8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3Jl
LWRlbGV0ZS0xLXN0ZGVyci50eHRVVAUAA6ltpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADr
gAZJY/cE92kGAACCNQAAQwAYAAAAAAAAAAAApIG7TQ8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADqm2mV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAOuABkkL+CuJfQYAABc1AAA7ABgAAAAAAAAAAACkgaFUDwBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLTItc3RkZXJyLnR4
dFVUBQADqm2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOuABkmgXrk5KQYAAM84AABKABgA
AAAAAAAAAACkgZNbDwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVs
ZXRlLWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADqm2mV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAOuABkldLJc1awYAAGk4AABCABgAAAAAAAAAAACkgUBiDwBzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLWZhaWx1cmVzLXN0ZGVyci50eHRVVAUA
A6ptpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADrgAZJ7AZETO0FAADaLgAARwAYAAAAAAAA
AAAApIEnaQ8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWdldC1mYWls
dXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA6ptpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADsgAZJVpGtSQUGAACyLgAAPwAYAAAAAAAAAAAApIGVbw8Ac3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2lkYm9iamVjdHN0b3JlLWdldC1mYWlsdXJlcy1zdGRlcnIudHh0VVQFAAOrbaZXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA7IAGSRiaRMUsBgAA1jgAAFEAGAAAAAAAAAAAAKSBE3YPAHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1wdXQtYW5kLWNsZWFyLWZhaWx1
cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADq22mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AOyABkmenpBdbgYAAP44AABJABgAAAAAAAAAAACkgcp8DwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vaWRib2JqZWN0c3RvcmUtcHV0LWFuZC1jbGVhci1mYWlsdXJlcy1zdGRlcnIudHh0VVQFAAOr
baZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7IAGSTfmyjaIAwAAExEAAE8AGAAAAAAAAAAA
AKSBu4MPAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJ0cmFuc2FjdGlvbi1vYmplY3RzdG9y
ZS1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA6ttpld1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADsgAZJqO3PIRIEAADFEwAARwAYAAAAAAAAAAAApIHMhw8Ac3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL2lkYnRyYW5zYWN0aW9uLW9iamVjdHN0b3JlLWZhaWx1cmVzLXN0ZGVyci50eHRV
VAUAA6ttpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADsgAZJImh5P2gBAABeBAAARQAYAAAA
AAAAAAAApIFfjA8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYnZlcnNpb25jaGFuZ2VldmVu
dC1jb25zdHJ1Y3Rvci1zdGRlcnIudHh0VVQFAAOsbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA7IAGSYtSErkhCAAAfVYBADMAGAAAAAAAAAAAAKSBRo4PAHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9pbmRleC0xLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADrG2mV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAO2ABkmyYcAADgkAACJpAQArABgAAAAAAAAAAACkgdSWDwBzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vaW5kZXgtMS1zdGRlcnIudHh0VVQFAAOtbaZXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA7YAGSVMCARy9CwAArG4BADMAGAAAAAAAAAAAAKSBR6APAHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9pbmRleC0yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADrm2mV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAO6ABklCSXAhNgwAAGd4AQArABgAAAAAAAAAAACkgXGsDwBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMi1zdGRlcnIudHh0VVQFAAOvbaZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA7oAGSdxtGLAcBgAASEsAADMAGAAAAAAAAAAAAKSBDLkPAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9pbmRleC0zLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADr22mV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAO6ABkkTKOoP2gYAAGdQAAArABgAAAAAAAAAAACkgZW/DwBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMy1zdGRlcnIudHh0VVQFAAOwbaZXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA7oAGSa2o+bxlBgAAmYIAADMAGAAAAAAAAAAAAKSB1MYPAHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC00LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADsG2m
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAO6ABknVV2UJvgcAALSQAAArABgAAAAAAAAAAACk
gabNDwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtNC1zdGRlcnIudHh0VVQFAAOwbaZX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7oAGSRLiUV+fBQAAoiMAADMAGAAAAAAAAAAAAKSB
ydUPAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC01LXByaXZhdGUtc3RkZXJyLnR4dFVU
BQADsG2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAO+ABkkzHjR7uwUAABUhAAArABgAAAAA
AAAAAACkgdXbDwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtNS1zdGRlcnIudHh0VVQF
AAOxbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA74AGSc3AbC0pBwAAXg0BADoAGAAAAAAA
AAAAAKSB9eEPAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1jdXJzb3ItMS1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA7Jtpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADwgAZJcHs4/sMI
AAAuFQEAMgAYAAAAAAAAAAAApIGS6Q8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWN1
cnNvci0xLXN0ZGVyci50eHRVVAUAA7Ntpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADwgAZJ
HJS20c4HAABhKAEAOgAYAAAAAAAAAAAApIHB8g8Ac3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lu
ZGV4LWN1cnNvci0yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADtG2mV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAPGABklz2rXi4QgAAKYnAQAyABgAAAAAAAAAAACkgQP7DwBzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vaW5kZXgtY3Vyc29yLTItc3RkZXJyLnR4dFVUBQADtW2mV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAPGABknGtrnArQsAAAkSAgA6ABgAAAAAAAAAAACkgVAEEABzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtY3Vyc29yLTMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAO2
baZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8oAGSUJOLTrUDgAAxj4CADIAGAAAAAAAAAAA
AKSBcRAQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1jdXJzb3ItMy1zdGRlcnIudHh0
VVQFAAO3baZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8oAGSbuT7GXhBQAAeiUAAEEAGAAA
AAAAAAAAAKSBsR8QAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1nZXQtY291bnQtYmFz
aWMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAO3baZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
8oAGSRYaDDJPBgAAdiQAADkAGAAAAAAAAAAAAKSBDSYQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9pbmRleC1nZXQtY291bnQtYmFzaWMtc3RkZXJyLnR4dFVUBQADuG2mV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAPKABklLMLncdgYAAHI0AABEABgAAAAAAAAAAACkgc8sEABzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtZ2V0LWNvdW50LWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADuG2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPKABkmGMNWtLgcAAOg0AAA8ABgA
AAAAAAAAAACkgcMzEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtZ2V0LWNvdW50LWZh
aWx1cmVzLXN0ZGVyci50eHRVVAUAA7htpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADygAZJ
weRlJ6MEAAC0IwAAOQAYAAAAAAAAAAAApIFnOxAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2tl
eXBhdGgtYmFzaWMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAO4baZXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA84AGSfoTivGyBAAAmCMAADEAGAAAAAAAAAAAAKSBfUAQAHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9rZXlwYXRoLWJhc2ljLXN0ZGVyci50eHRVVAUAA7ltpld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADzgAZJb4qNqAQFAACrIQAAKgAYAAAAAAAAAAAApIGaRRAAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2xlYWstMS1zdGRlcnIudHh0VVQFAAO5baZXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA84AGSeXg++whCAAAgMoBAFUAGAAAAAAAAAAAAKSBAksQAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9tZW1vcnktaW5kZXgtbm90LWRlbGV0ZWQtd2l0aC1vYmplY3RzdG9yZS1w
cml2YXRlLXN0ZGVyci50eHRVVAUAA7ptpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADzgAZJ
M9a/BVMIAADjuQEATQAYAAAAAAAAAAAApIGyUxAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL21l
bW9yeS1pbmRleC1ub3QtZGVsZXRlZC13aXRoLW9iamVjdHN0b3JlLXN0ZGVyci50eHRVVAUAA7pt
pld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD0gAZJ0Pq49psFAACkJgAAQgAYAAAAAAAAAAAA
pIGMXBAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL25ldy1kYXRhYmFzZS1hZnRlci11c2VyLWRl
bGV0ZS1zdGRlcnIudHh0VVQFAAO7baZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9IAGSZfU
k0yGBQAAey4AAEIAGAAAAAAAAAAAAKSBo2IQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vYmpl
Y3RzdG9yZS1hdHRyaWJ1dGVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADu22mV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAPSABklmjq3BZgUAAKgrAAA6ABgAAAAAAAAAAACkgaVoEABzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0c3RvcmUtYXR0cmlidXRlcy1zdGRlcnIudHh0VVQFAAO7
baZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9IAGSVsmdPFrBwAAyYoAAE8AGAAAAAAAAAAA
AKSBf24QAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vYmplY3RzdG9yZS1jdXJzb3ItYWR2YW5j
ZS1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA7ttpld1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAD0gAZJ6Gjgs6UHAAAqjgAARwAYAAAAAAAAAAAApIFzdhAAc3RvcmFnZS9pbmRleGVk
ZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1cnNvci1hZHZhbmNlLWZhaWx1cmVzLXN0ZGVyci50eHRV
VAUAA7xtpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD0gAZJLMTuuWkHAACZjQAAUAAYAAAA
AAAAAAAApIGZfhAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1cnNvci1j
b250aW51ZS1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA7xtpld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAD0gAZJ4rlhTqcHAABqkQAASAAYAAAAAAAAAAAApIGMhhAAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1cnNvci1jb250aW51ZS1mYWlsdXJlcy1zdGRl
cnIudHh0VVQFAAO8baZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9YAGSULcJ7ZvBgAARzYA
AD8AGAAAAAAAAAAAAKSBtY4QAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuY3Vyc29yLWZh
aWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADvW2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAPWABknONxz7ywYAAK42AAA3ABgAAAAAAAAAAACkgZ2VEABzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vb3BlbmN1cnNvci1mYWlsdXJlcy1zdGRlcnIudHh0VVQFAAO9baZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA9YAGSRKdEqSVAgAA8AkAAEYAGAAAAAAAAAAAAKSB2ZwQAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2UtcmVxdWVzdC1ldmVudC1wcml2YXRlLXN0ZGVy
ci50eHRVVAUAA71tpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD1gAZJGyWdM+ECAACICwAA
PgAYAAAAAAAAAAAApIHunxAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS1y
ZXF1ZXN0LWV2ZW50LXN0ZGVyci50eHRVVAUAA71tpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAD1gAZJgD0nKFABAABhBAAAQAAYAAAAAAAAAAAApIFHoxAAc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL29wZW5kYXRhYmFzZS1yZXF1ZXN0LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADvW2mV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAPWABkm7sjSpNQEAAGMGAAA4ABgAAAAAAAAAAACkgRGlEABz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXJlcXVlc3Qtc3RkZXJyLnR4dFVU
BQADvW2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPWABkmiRmJx8AMAAAciAABUABgAAAAA
AAAAAACkgbimEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXN1Y2Nlc3Mt
YWZ0ZXItdmVyc2lvbmNoYW5nZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA75tpld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAD1gAZJEwzoJ04EAABVJQAATAAYAAAAAAAAAAAApIE2qxAAc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFzZS1zdWNjZXNzLWFmdGVyLXZlcnNpb25jaGFu
Z2Utc3RkZXJyLnR4dFVUBQADvm2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPWABkkC5b8h
aAQAAJAsAABBABgAAAAAAAAAAACkgQqwEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRh
dGFiYXNlLXZlcnNpb25zLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADvm2mV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAPWABknvXH3UdgQAAL4pAAA5ABgAAAAAAAAAAACkge20EABzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXZlcnNpb25zLXN0ZGVyci50eHRVVAUAA75tpld1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD1gAZJqGnre7oEAAC2GwAAPgAYAAAAAAAAAAAApIHW
uRAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3JlcXVlc3QtcmVhZHlzdGF0ZS1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA75tpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD2gAZJAWyvCdUEAACg
GwAANgAYAAAAAAAAAAAApIEIvxAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3JlcXVlc3QtcmVh
ZHlzdGF0ZS1zdGRlcnIudHh0VVQFAAO/baZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9oAG
SdmEhIJBBgAA6jMAAEMAGAAAAAAAAAAAAKSBTcQQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90
cmFuc2FjdGlvbi1zY2hlZHVsZXItMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA79tpld1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAD2gAZJ7Wg06cgGAADyQgAAQwAYAAAAAAAAAAAApIELyxAAc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxlci0yLXByaXZhdGUtc3Rk
ZXJyLnR4dFVUBQADv22mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPaABkm67y9fpwYAAKdC
AABDABgAAAAAAAAAAACkgVDSEABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24t
c2NoZWR1bGVyLTMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAO/baZXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA9oAGSZdXNoVuBgAAZzsAADsAGAAAAAAAAAAAAKSBdNkQAHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hlZHVsZXItMy1zdGRlcnIudHh0VVQFAAPAbaZXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9oAGSaRKy0U3BgAAzmUAAEMAGAAAAAAAAAAAAKSBV+AQ
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hlZHVsZXItNC1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA8Btpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD2gAZJ0mMya6AG
AAAMbQAAOwAYAAAAAAAAAAAApIEL5xAAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0
aW9uLXNjaGVkdWxlci00LXN0ZGVyci50eHRVVAUAA8Btpld1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAD2gAZJ0WzD1IwGAAAMTQAAQwAYAAAAAAAAAAAApIEg7hAAc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxlci01LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADwG2m
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPeABkkHxSKviAYAAGpCAABDABgAAAAAAAAAAACk
gSn1EABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTYtcHJp
dmF0ZS1zdGRlcnIudHh0VVQFAAPBbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA94AGSTG5
ezsUBQAA1y4AAEsAGAAAAAAAAAAAAKSBLvwQAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90cmFu
c2FjdGlvbnMtc3RvcC1vbi1uYXZpZ2F0aW9uLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADwW2mV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPeABkl+MrGudwYAANZhAABDABgAAAAAAAAAAACkgccB
EQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb25zLXN0b3Atb24tbmF2aWdhdGlv
bi1zdGRlcnIudHh0VVQFAAPCbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA94AGSSHdqjnB
BAAAeTMAAEsAGAAAAAAAAAAAAKSBuwgRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9u
Y2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADwm2mV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAPeABkkJZxEySAUAANk7AABDABgAAAAAAAAAAACkgQEOEQBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1hYm9ydC10aGVuLXJlb3Blbi1z
dGRlcnIudHh0VVQFAAPCbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA94AGSQZCYWvpBAAA
BSkAAD8AGAAAAAAAAAAAAKSBxhMRAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hh
bmdlLWV2ZW50LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADwm2mV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAPeABkkcFn8lHgUAAJApAAA3ABgAAAAAAAAAAACkgSgZEQBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vdmVyc2lvbmNoYW5nZS1ldmVudC1zdGRlcnIudHh0VVQFAAPCbaZXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA+IAGSdm3xbsuAQAAUAQAADQAGAAAAAAAAAAAAKSBtx4RAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi93b3JrZXJzLWRpc2FibGVkLXN0ZGVyci50eHRVVAUAA8Ntpld1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAANgQZJlywzlr8GAABeZAAANAAYAAAAAAAAAAAApIFT
IBEAc3RvcmFnZS9pbmRleGVkZGIvbXV0YXRpbmctY3Vyc29yLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQAD6m2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA6BBknRGek8ygYAAIthAAAsABgAAAAA
AAAAAACkgYAnEQBzdG9yYWdlL2luZGV4ZWRkYi9tdXRhdGluZy1jdXJzb3Itc3RkZXJyLnR4dFVU
BQAD622mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA6BBknnXGEkKwQAANUVAABEABgAAAAA
AAAAAACkgbAuEQBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3QtbG9va3Vwcy1pbi12ZXJzaW9uY2hh
bmdlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD622mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AA6BBkmjJC0NRQQAAPYWAAA8ABgAAAAAAAAAAACkgVkzEQBzdG9yYWdlL2luZGV4ZWRkYi9vYmpl
Y3QtbG9va3Vwcy1pbi12ZXJzaW9uY2hhbmdlLXN0ZGVyci50eHRVVAUAA+ttpld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAOgQZJWf07qIAHAACOawAAPgAYAAAAAAAAAAAApIEUOBEAc3RvcmFn
ZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYXV0b2luY3JlbWVudC1wcml2YXRlLXN0ZGVyci50eHRV
VAUAA+xtpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAOgQZJmwneg1kHAAC8ZgAANgAYAAAA
AAAAAAAApIEMQBEAc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYXV0b2luY3JlbWVudC1z
dGRlcnIudHh0VVQFAAPsbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAD4EGSbKOFCV2CQAA
/YwAADcAGAAAAAAAAAAAAKSB1UcRAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2lj
cy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA+1tpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAQ
gQZJEXA4vQ8KAADRkQAALwAYAAAAAAAAAAAApIG8UREAc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0
c3RvcmUtYmFzaWNzLXN0ZGVyci50eHRVVAUAA+9tpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAPgQZJ0n4eq3YKAACAkAAANwAYAAAAAAAAAAAApIE0XBEAc3RvcmFnZS9pbmRleGVkZGIvb2Jq
ZWN0c3RvcmUtYmFzaWNzLXdvcmtlcnMtc3RkZXJyLnR4dFVUBQAD7m2mV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIABCBBklvXvAYCAcAAJ43AAA2ABgAAAAAAAAAAACkgRtnEQBzdG9yYWdlL2lu
ZGV4ZWRkYi9vYmplY3RzdG9yZS1jbGVhci1wcml2YXRlLXN0ZGVyci50eHRVVAUAA+9tpld1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAQgQZJtlzIVTUHAABXNgAALgAYAAAAAAAAAAAApIGTbhEA
c3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY2xlYXItc3RkZXJyLnR4dFVUBQAD722mV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABCBBknjRRTfuAgAAP96AQA2ABgAAAAAAAAAAACkgTB2
EQBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jb3VudC1wcml2YXRlLXN0ZGVyci50eHRV
VAUAA/Btpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAARgQZJPK8l/GwJAABFpQEALgAYAAAA
AAAAAAAApIFYfxEAc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY291bnQtc3RkZXJyLnR4
dFVUBQAD8W2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABSBBkkR5/WG9g0AAAOsBQA3ABgA
AAAAAAAAAACkgSyJEQBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jdXJzb3ItcHJpdmF0
ZS1zdGRlcnIudHh0VVQFAAP3baZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAF4EGSbjfh/z1
DQAAeEYFAC8AGAAAAAAAAAAAAKSBk5cRAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWN1
cnNvci1zdGRlcnIudHh0VVQFAAP9baZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAF4EGScSP
WsfpBgAAWkcAAEIAGAAAAAAAAAAAAKSB8aURAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3Jl
LXJlbW92ZW9iamVjdHN0b3JlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD/W2mV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIABeBBknWJTXVZgcAAIBHAAA6ABgAAAAAAAAAAACkgVatEQBzdG9yYWdl
L2luZGV4ZWRkYi9vYmplY3RzdG9yZS1yZW1vdmVvYmplY3RzdG9yZS1zdGRlcnIudHh0VVQFAAP+
baZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADoEGSUba94w6AwAA9g4AAEMAGAAAAAAAAAAA
AKSBMLURAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdFN0b3JlLXJlcXVpcmVkLWFyZ3VtZW50cy1w
cml2YXRlLXN0ZGVyci50eHRVVAUAA+ttpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAOgQZJ
rcmmdJoDAADlEAAAOwAYAAAAAAAAAAAApIHnuBEAc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0U3Rv
cmUtcmVxdWlyZWQtYXJndW1lbnRzLXN0ZGVyci50eHRVVAUAA+ttpld1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAAXgQZJhfu114wIAACO8gAAMAAYAAAAAAAAAAAApIH2vBEAc3RvcmFnZS9pbmRl
eGVkZGIvb2RkLXN0cmluZ3MtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP+baZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAGIEGSSiBWSATBAAAFS8AADYAGAAAAAAAAAAAAKSB7MURAHN0b3JhZ2Uv
aW5kZXhlZGRiL29wZW4tYmFkLXZlcnNpb25zLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD/22mV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABmBBkl3IgcHyQMAAE0gAAAuABgAAAAAAAAAAACkgW/K
EQBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWJhZC12ZXJzaW9ucy1zdGRlcnIudHh0VVQFAAMBbqZX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGYEGSf8RpgeVBAAABh8AADAAGAAAAAAAAAAAAKSB
oM4RAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tY3Vyc29yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD
AW6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABmBBknkMuQORQUAABYiAAAoABgAAAAAAAAA
AACkgZ/TEQBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWN1cnNvci1zdGRlcnIudHh0VVQFAAMBbqZX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGYEGSfUI6SM+BgAAqDoAADwAGAAAAAAAAAAAAKSB
RtkRAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tZHVyaW5nLXRyYW5zYWN0aW9uLXByaXZhdGUtc3Rk
ZXJyLnR4dFVUBQADAW6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABqBBklKQyfpDQYAAAM8
AAA0ABgAAAAAAAAAAACkgfrfEQBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWR1cmluZy10cmFuc2Fj
dGlvbi1zdGRlcnIudHh0VVQFAAMDbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGoEGSb7Y
EqbQBAAAJjUAADIAGAAAAAAAAAAAAKSBdeYRAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tb3JkZXJp
bmctcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMDbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
GoEGSabC/0sDBQAAWTYAACoAGAAAAAAAAAAAAKSBsesRAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4t
b3JkZXJpbmctc3RkZXJyLnR4dFVUBQADA26mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABqB
BkmFBABBtgMAAGYfAAAvABgAAAAAAAAAAACkgRjxEQBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLXR3
aWNlLXdvcmtlcnMtc3RkZXJyLnR4dFVUBQADA26mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ABqBBkkELZlmlgcAAKOJAAAzABgAAAAAAAAAAACkgTf1EQBzdG9yYWdlL2luZGV4ZWRkYi9vcGVu
Y3Vyc29yLWtleS1wcml2YXRlLXN0ZGVyci50eHRVVAUAAwRupld1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAagQZJjLQ567gHAACWkwAAKwAYAAAAAAAAAAAApIE6/REAc3RvcmFnZS9pbmRleGVk
ZGIvb3BlbmN1cnNvci1rZXktc3RkZXJyLnR4dFVUBQADBG6mV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIABuBBkkgM8LtTwkAAGnnAAA3ABgAAAAAAAAAAACkgVcFEgBzdG9yYWdlL2luZGV4ZWRk
Yi9vcHRpb25hbC1hcmd1bWVudHMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMFbqZXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAG4EGSVmol0mkCQAAfeIAAC8AGAAAAAAAAAAAAKSBFw8SAHN0b3Jh
Z2UvaW5kZXhlZGRiL29wdGlvbmFsLWFyZ3VtZW50cy1zdGRlcnIudHh0VVQFAAMGbqZXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAHYEGSSX+6aaEBgAAYToAADUAGAAAAAAAAAAAAKSBJBkSAHN0
b3JhZ2UvaW5kZXhlZGRiL3BlbmRpbmctYWN0aXZpdHktcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMJ
bqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIYEGSZsaqm/kBgAAjjwAAC0AGAAAAAAAAAAA
AKSBFyASAHN0b3JhZ2UvaW5kZXhlZGRiL3BlbmRpbmctYWN0aXZpdHktc3RkZXJyLnR4dFVUBQAD
DW6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAB2BBkmFre7KLQcAAAU9AAA1ABgAAAAAAAAA
AACkgWInEgBzdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5nLWFjdGl2aXR5LXdvcmtlcnMtc3RkZXJy
LnR4dFVUBQADCm6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACGBBkkSltJ1qgQAAP8dAABD
ABgAAAAAAAAAAACkgf4uEgBzdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5nLXZlcnNpb24tY2hhbmdl
LW9uLWV4aXQtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMNbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAIYEGSaaJv3GLBAAA6xoAADsAGAAAAAAAAAAAAKSBJTQSAHN0b3JhZ2UvaW5kZXhlZGRi
L3BlbmRpbmctdmVyc2lvbi1jaGFuZ2Utb24tZXhpdC1zdGRlcnIudHh0VVQFAAMObqZXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAIYEGST5XU08lBAAAnxoAAEEAGAAAAAAAAAAAAKSBJTkSAHN0
b3JhZ2UvaW5kZXhlZGRiL3BlbmRpbmctdmVyc2lvbi1jaGFuZ2Utc3R1Y2stcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAMObqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIoEGSaGfgv9fBAAAeh4A
ADkAGAAAAAAAAAAAAKSBxT0SAHN0b3JhZ2UvaW5kZXhlZGRiL3BlbmRpbmctdmVyc2lvbi1jaGFu
Z2Utc3R1Y2stc3RkZXJyLnR4dFVUBQADD26mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACGB
BkmOQZcmlgQAAGQgAABWABgAAAAAAAAAAACkgZdCEgBzdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5n
LXZlcnNpb24tY2hhbmdlLXN0dWNrLXdvcmtzLXdpdGgtdGVybWluYXRlLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQADDm6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACKBBkmTC3U60wQAANIiAABO
ABgAAAAAAAAAAACkgb1HEgBzdG9yYWdlL2luZGV4ZWRkYi9wZW5kaW5nLXZlcnNpb24tY2hhbmdl
LXN0dWNrLXdvcmtzLXdpdGgtdGVybWluYXRlLXN0ZGVyci50eHRVVAUAAw9upld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAigQZJzjG3CPMFAAAGYAAAMAAYAAAAAAAAAAAApIEYTRIAc3RvcmFn
ZS9pbmRleGVkZGIvcGVyc2lzdGVuY2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMPbqZXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAIoEGSVnL1rIOBgAAq18AACgAGAAAAAAAAAAAAKSBdVMSAHN0
b3JhZ2UvaW5kZXhlZGRiL3BlcnNpc3RlbmNlLXN0ZGVyci50eHRVVAUAAxBupld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAigQZJNwjAk4QHAACYZgAAOwAYAAAAAAAAAAAApIHlWRIAc3RvcmFn
ZS9pbmRleGVkZGIvcHJlZmV0Y2gtYnVnZml4LTEwODA3MS1wcml2YXRlLXN0ZGVyci50eHRVVAUA
AxBupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAigQZJdQYQJqQHAACiZAAAMwAYAAAAAAAA
AAAApIHeYRIAc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtYnVnZml4LTEwODA3MS1zdGRlcnIu
dHh0VVQFAAMQbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAI4EGSWbI/lxbEgAAjuUGADoA
GAAAAAAAAAAAAKSB72kSAHN0b3JhZ2UvaW5kZXhlZGRiL3ByZWZldGNoLWludmFsaWRhdGlvbi1w
cml2YXRlLXN0ZGVyci50eHRVVAUAAxJupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAkgQZJ
F/jbi60UAABZagcAMgAYAAAAAAAAAAAApIG+fBIAc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gt
aW52YWxpZGF0aW9uLXN0ZGVyci50eHRVVAUAAxRupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAkgQZJzj/tl64GAAD4VQAAMgAYAAAAAAAAAAAApIHXkRIAc3RvcmFnZS9pbmRleGVkZGIvcHJl
ZmV0Y2gtcmFjZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxRupld1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAkgQZJOQ57jI4GAAC2UwAAKgAYAAAAAAAAAAAApIHxmBIAc3RvcmFnZS9pbmRleGVk
ZGIvcHJlZmV0Y2gtcmFjZS1zdGRlcnIudHh0VVQFAAMUbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAJIEGSdVK+xkCBgAAUj8AAEYAGAAAAAAAAAAAAKSB458SAHN0b3JhZ2UvaW5kZXhlZGRi
L3ByaW1hcnkta2V5LXVuaXF1ZS10by1vYmplY3RzdG9yZS1wcml2YXRlLXN0ZGVyci50eHRVVAUA
AxRupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAkgQZJFlZ75E4GAABVSAAAPgAYAAAAAAAA
AAAApIFlphIAc3RvcmFnZS9pbmRleGVkZGIvcHJpbWFyeS1rZXktdW5pcXVlLXRvLW9iamVjdHN0
b3JlLXN0ZGVyci50eHRVVAUAAxRupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAlgQZJO7EF
EsQEAABvHgAANAAYAAAAAAAAAAAApIErrRIAc3RvcmFnZS9pbmRleGVkZGIvcXVldWVkLWNvbW1h
bmRzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADFW6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ACWBBkkMUuY5gAUAAH8iAAAsABgAAAAAAAAAAACkgV2yEgBzdG9yYWdlL2luZGV4ZWRkYi9xdWV1
ZWQtY29tbWFuZHMtc3RkZXJyLnR4dFVUBQADFW6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ACWBBkkYLJIdcwUAACwgAAAtABgAAAAAAAAAAACkgUO4EgBzdG9yYWdlL2luZGV4ZWRkYi9yZWFk
b25seS1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxVupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAlgQZJ+OBu1DMDAAAEDwAAOAAYAAAAAAAAAAAApIEdvhIAc3RvcmFnZS9pbmRleGVkZGIvcmVh
ZG9ubHktcHJvcGVydGllcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxVupld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAlgQZJesUpnqADAAAwEQAAMAAYAAAAAAAAAAAApIHCwRIAc3RvcmFnZS9p
bmRleGVkZGIvcmVhZG9ubHktcHJvcGVydGllcy1zdGRlcnIudHh0VVQFAAMVbqZXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAJYEGSW9SRKHABQAAdyAAACUAGAAAAAAAAAAAAKSBzMUSAHN0b3Jh
Z2UvaW5kZXhlZGRiL3JlYWRvbmx5LXN0ZGVyci50eHRVVAUAAxVupld1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAAlgQZJuPkHc0wGAAA3LAAAOwAYAAAAAAAAAAAApIHryxIAc3RvcmFnZS9pbmRl
eGVkZGIvcmVxdWVzdC1jb250aW51ZS1hYm9ydC1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxZupld1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAlgQZJiCjGlEoGAABKKgAAMwAYAAAAAAAAAAAApIGs
0hIAc3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1jb250aW51ZS1hYm9ydC1zdGRlcnIudHh0VVQF
AAMWbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJYEGSXybV8wJBgAANUAAAD4AGAAAAAAA
AAAAAKSBY9kSAHN0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZlbnQtcHJvcGFnYXRpb24tcHJp
dmF0ZS1zdGRlcnIudHh0VVQFAAMWbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJYEGSZ73
JZMcBgAADz8AADYAGAAAAAAAAAAAAKSB5N8SAHN0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtZXZl
bnQtcHJvcGFnYXRpb24tc3RkZXJyLnR4dFVUBQADFm6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIACaBBkkEYcHM8QUAAAkpAAA5ABgAAAAAAAAAAACkgXDmEgBzdG9yYWdlL2luZGV4ZWRkYi9y
ZXF1ZXN0LXJlc3VsdC1jYWNoZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxdupld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAmgQZJDSrgZw4GAADXKAAAMQAYAAAAAAAAAAAApIHU7BIAc3RvcmFn
ZS9pbmRleGVkZGIvcmVxdWVzdC1yZXN1bHQtY2FjaGUtc3RkZXJyLnR4dFVUBQADF26mV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIACaBBklpyJIDoQQAABIgAAA4ABgAAAAAAAAAAACkgU3zEgBz
dG9yYWdlL2luZGV4ZWRkYi9zZXRfdmVyc2lvbl9ibG9ja2VkLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQADF26mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACaBBkk6yKFuAwUAAK0iAAAwABgAAAAA
AAAAAACkgWD4EgBzdG9yYWdlL2luZGV4ZWRkYi9zZXRfdmVyc2lvbl9ibG9ja2VkLXN0ZGVyci50
eHRVVAUAAxdupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAmgQZJ93rxQYMEAAA+JwAATgAY
AAAAAAAAAAAApIHN/RIAc3RvcmFnZS9pbmRleGVkZGIvc2V0dmVyc2lvbi1ibG9ja2VkLWJ5LXZl
cnNpb25jaGFuZ2UtY2xvc2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMXbqZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAJoEGSU5dko5gBAAAzicAAEYAGAAAAAAAAAAAAKSB2AITAHN0b3JhZ2Uv
aW5kZXhlZGRiL3NldHZlcnNpb24tYmxvY2tlZC1ieS12ZXJzaW9uY2hhbmdlLWNsb3NlLXN0ZGVy
ci50eHRVVAUAAxdupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAmgQZJKTAba4cEAAAHJQAA
OwAYAAAAAAAAAAAApIG4BxMAc3RvcmFnZS9pbmRleGVkZGIvc2V0dmVyc2lvbi1ub3QtYmxvY2tl
ZC1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxhupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAm
gQZJTmjilqkEAACKJQAAMwAYAAAAAAAAAAAApIG0DBMAc3RvcmFnZS9pbmRleGVkZGIvc2V0dmVy
c2lvbi1ub3QtYmxvY2tlZC1zdGRlcnIudHh0VVQFAAMYbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAJ4EGSQfQGuctDwAAJGQEADUAGAAAAAAAAAAAAKSByhETAHN0b3JhZ2UvaW5kZXhlZGRi
L3N0cnVjdHVyZWQtY2xvbmUtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMabqZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAKIEGSauvMLFFDgAA52gEAC0AGAAAAAAAAAAAAKSBZiETAHN0b3JhZ2Uv
aW5kZXhlZGRiL3N0cnVjdHVyZWQtY2xvbmUtc3RkZXJyLnR4dFVUBQADG26mV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIACiBBkkL1zvyyAUAADolAAAuABgAAAAAAAAAAACkgRIwEwBzdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC1zdGRlcnIudHh0VVQFAAMcbqZXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAKIEGSQiKm7PKCQAAetQAADwAGAAAAAAAAAAAAKSBQjYTAHN0b3Jh
Z2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFjdGl2ZS1mbGFnLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQADHG6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACmBBkltNA3LgQoAAE3jAAA0ABgAAAAA
AAAAAACkgYJAEwBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hY3RpdmUtZmxhZy1zdGRl
cnIudHh0VVQFAAMdbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKYEGSSMjKKG8BQAApDkA
ADwAGAAAAAAAAAAAAKSBcUsTAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFmdGVyLWNs
b3NlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADHW6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ACmBBkkPpKrnwAUAAEM5AAA0ABgAAAAAAAAAAACkgaNREwBzdG9yYWdlL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1hZnRlci1jbG9zZS1zdGRlcnIudHh0VVQFAAMdbqZXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAKYEGSeOge48FBwAAcXAAAEYAGAAAAAAAAAAAAKSB0VcTAHN0b3JhZ2UvaW5kZXhl
ZGRiL3RyYW5zYWN0aW9uLWFuZC1vYmplY3RzdG9yZS1jYWxscy1wcml2YXRlLXN0ZGVyci50eHRV
VAUAAx1upld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAApgQZJD7rbPvUGAABfewAAPgAYAAAA
AAAAAAAApIFWXxMAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0b3Jl
LWNhbGxzLXN0ZGVyci50eHRVVAUAAx5upld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAApgQZJ
d1GgAUEIAAB9oAAANwAYAAAAAAAAAAAApIHDZhMAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tYmFzaWNzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADHm6mV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIACqBBknpQ+bMnQgAAAGoAAAvABgAAAAAAAAAAACkgXVvEwBzdG9yYWdlL2luZGV4ZWRk
Yi90cmFuc2FjdGlvbi1iYXNpY3Mtc3RkZXJyLnR4dFVUBQADH26mV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIACqBBknF7G3ECAUAAMwoAABXABgAAAAAAAAAAACkgXt4EwBzdG9yYWdlL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0ZS13aXRoLWpzLXJlY3Vyc2lvbi1jcm9zcy1mcmFtZS1w
cml2YXRlLXN0ZGVyci50eHRVVAUAAx9upld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAqgQZJ
dX4bIocFAAAaKAAATwAYAAAAAAAAAAAApIEUfhMAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tY29tcGxldGUtd2l0aC1qcy1yZWN1cnNpb24tY3Jvc3MtZnJhbWUtc3RkZXJyLnR4dFVUBQAD
H26mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACqBBkmqbNMARgUAAMsnAABLABgAAAAAAAAA
AACkgSSEEwBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0ZS13aXRoLWpzLXJl
Y3Vyc2lvbi1wcml2YXRlLXN0ZGVyci50eHRVVAUAAx9upld1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAqgQZJJhIJs4UFAAABKAAAQwAYAAAAAAAAAAAApIHviRMAc3RvcmFnZS9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tY29tcGxldGUtd2l0aC1qcy1yZWN1cnNpb24tc3RkZXJyLnR4dFVUBQADH26m
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACqBBkkOxKdHHAYAAFpRAABBABgAAAAAAAAAAACk
gfGPEwBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0ZS13b3JrZXJzLXByaXZh
dGUtc3RkZXJyLnR4dFVUBQADH26mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACqBBkkAJRu2
xwUAAKROAAA5ABgAAAAAAAAAAACkgYiWEwBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1j
b21wbGV0ZS13b3JrZXJzLXN0ZGVyci50eHRVVAUAAyBupld1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAqgQZJNJZ3AVMGAAD+TAAATgAYAAAAAAAAAAAApIHCnBMAc3RvcmFnZS9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tY29vcmRpbmF0aW9uLWFjcm9zcy1kYXRhYmFzZXMtcHJpdmF0ZS1zdGRlcnIu
dHh0VVQFAAMgbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKoEGSb4f67JPBgAAaE0AAEYA
GAAAAAAAAAAAAKSBnaMTAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvb3JkaW5hdGlv
bi1hY3Jvc3MtZGF0YWJhc2VzLXN0ZGVyci50eHRVVAUAAyBupld1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAqgQZJsCgczQsGAADcNQAATQAYAAAAAAAAAAAApIFsqhMAc3RvcmFnZS9pbmRleGVk
ZGIvdHJhbnNhY3Rpb24tY29vcmRpbmF0aW9uLXdpdGhpbi1kYXRhYmFzZS1wcml2YXRlLXN0ZGVy
ci50eHRVVAUAAyBupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAqgQZJ+IbJlQcBAAAlAwAA
PwAYAAAAAAAAAAAApIH+sBMAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtaW4t
dGFza3MtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMgbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAKoEGSXC7JPUqAQAAMwQAADcAGAAAAAAAAAAAAKSBfrITAHN0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWNyYXNoLWluLXRhc2tzLXN0ZGVyci50eHRVVAUAAyBupld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAArgQZJodjTeFUEAADKFwAAPwAYAAAAAAAAAAAApIEZtBMAc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJvcnQtcHJpdmF0ZS1zdGRlcnIudHh0VVQF
AAMhbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAK4EGSSbF5F90BAAAIBgAADcAGAAAAAAA
AAAAAKSB57gTAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNyYXNoLW9uLWFib3J0LXN0
ZGVyci50eHRVVAUAAyJupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAArgQZJr/qLsS8HAABr
XgAANgAYAAAAAAAAAAAApIHMvRMAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXJyb3It
cHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMibqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAK4EG
SafNQsd3BwAAsVwAAC4AGAAAAAAAAAAAAKSBa8UTAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0
aW9uLWVycm9yLXN0ZGVyci50eHRVVAUAAyJupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAr
gQZJaSysD/AFAABdNAAAQgAYAAAAAAAAAAAApIFKzRMAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNh
Y3Rpb24tZXZlbnQtcHJvcGFnYXRpb24tcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMibqZXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgALIEGSfIMZ0H1BQAACDMAADoAGAAAAAAAAAAAAKSBttMTAHN0
b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWV2ZW50LXByb3BhZ2F0aW9uLXN0ZGVyci50eHRV
VAUAAyNupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAsgQZJvZcst28FAAA2LwAAOQAYAAAA
AAAAAAAApIEf2hMAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tb3JkZXJpbmctcHJpdmF0
ZS1zdGRlcnIudHh0VVQFAAMjbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALIEGScaK8hGZ
BQAA8i4AADEAGAAAAAAAAAAAAKSBAeATAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLW9y
ZGVyaW5nLXN0ZGVyci50eHRVVAUAAyNupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAsgQZJ
DyTWWRMGAACcMwAAPAAYAAAAAAAAAAAApIEF5hMAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rp
b24tb3ZlcmxhcHBpbmctcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMjbqZXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgALIEGSVR1HWpRBgAAvUoAADQAGAAAAAAAAAAAAKSBjuwTAHN0b3JhZ2UvaW5k
ZXhlZGRiL3RyYW5zYWN0aW9uLW92ZXJsYXBwaW5nLXN0ZGVyci50eHRVVAUAAyNupld1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAsgQZJkJWb0O4FAAABLwAAOgAYAAAAAAAAAAAApIFN8xMAc3Rv
cmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVhZC1vbmx5LXByaXZhdGUtc3RkZXJyLnR4dFVU
BQADI26mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACyBBkk3gyVMlgYAAMo6AAAyABgAAAAA
AAAAAACkga/5EwBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkLW9ubHktc3RkZXJy
LnR4dFVUBQADJG6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACyBBknglshwAwYAADlCAABE
ABgAAAAAAAAAAACkgbEAFABzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1yZWFkd3JpdGUt
ZXhjbHVzaXZlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADJG6mV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIACyBBkl4Rct7HAYAAJNCAAA8ABgAAAAAAAAAAACkgTIHFABzdG9yYWdlL2luZGV4ZWRk
Yi90cmFuc2FjdGlvbi1yZWFkd3JpdGUtZXhjbHVzaXZlLXN0ZGVyci50eHRVVAUAAyRupld1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAsgQZJ8aWwI2IGAAC7MAAAOQAYAAAAAAAAAAAApIHEDRQA
c3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tcm9sbGJhY2stcHJpdmF0ZS1zdGRlcnIudHh0
VVQFAAMkbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALIEGSXBd/SqxBgAAtDAAADEAGAAA
AAAAAAAAAKSBmRQUAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJvbGxiYWNrLXN0ZGVy
ci50eHRVVAUAAyRupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAsgQZJEH6clgwGAAD7RQAA
QQAYAAAAAAAAAAAApIG1GxQAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc2NvcGUtc2Vx
dWVuY2luZy1wcml2YXRlLXN0ZGVyci50eHRVVAUAAyRupld1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAtgQZJvMgdGdIFAAD9PwAAOQAYAAAAAAAAAAAApIE8IhQAc3RvcmFnZS9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tc2NvcGUtc2VxdWVuY2luZy1zdGRlcnIudHh0VVQFAAMlbqZXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgALYEGSZxvanz4AgAAlQ0AAEQAGAAAAAAAAAAAAKSBgSgUAHN0b3Jh
Z2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXN0b3JlTmFtZXMtcmVxdWlyZWQtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAMlbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALYEGSTCtkPZ1AwAAOhAA
ADwAGAAAAAAAAAAAAKSB9ysUAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXN0b3JlTmFt
ZXMtcmVxdWlyZWQtc3RkZXJyLnR4dFVUBQADJW6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AC2BBklZMVWqmwQAAKAgAAA+ABgAAAAAAAAAAACkgeIvFABzdG9yYWdlL2luZGV4ZWRkYi91bmJs
b2NrZWQtdmVyc2lvbi1jaGFuZ2VzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADJW6mV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAC2BBkkW2epJpAQAAD4hAAA2ABgAAAAAAAAAAACkgfU0FABzdG9y
YWdlL2luZGV4ZWRkYi91bmJsb2NrZWQtdmVyc2lvbi1jaGFuZ2VzLXN0ZGVyci50eHRVVAUAAyVu
pld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAtgQZJDGa7Mg4BAADBAwAALQAYAAAAAAAAAAAA
pIEJOhQAc3RvcmFnZS9pbmRleGVkZGIvdW5wcmVmaXgtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMl
bqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALYEGSVct7GNxBAAAFxcAADQAGAAAAAAAAAAA
AKSBfjsUAHN0b3JhZ2UvaW5kZXhlZGRiL3ZhbHVlLXVuZGVmaW5lZC1wcml2YXRlLXN0ZGVyci50
eHRVVAUAAyZupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAtgQZJp8Y7XmcFAACGHAAALAAY
AAAAAAAAAAAApIFdQBQAc3RvcmFnZS9pbmRleGVkZGIvdmFsdWUtdW5kZWZpbmVkLXN0ZGVyci50
eHRVVAUAAyZupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAtgQZJcfTsjDgFAACgLQAANQAY
AAAAAAAAAAAApIEqRhQAc3RvcmFnZS9pbmRleGVkZGIvdmFsdWVzLW9kZC10eXBlcy1wcml2YXRl
LXN0ZGVyci50eHRVVAUAAyZupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAtgQZJbf+2a64F
AABhLwAALQAYAAAAAAAAAAAApIHRSxQAc3RvcmFnZS9pbmRleGVkZGIvdmFsdWVzLW9kZC10eXBl
cy1zdGRlcnIudHh0VVQFAAMmbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALYEGSWSnzueS
BQAANy0AADkAGAAAAAAAAAAAAKSB5lEUAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdl
LWFib3J0LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADJm6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAC2BBkmqpwOHYQUAAMgsAAAxABgAAAAAAAAAAACkgetXFABzdG9yYWdlL2luZGV4ZWRkYi92
ZXJzaW9uLWNoYW5nZS1hYm9ydC1zdGRlcnIudHh0VVQFAAMmbqZXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgALYEGSfgGwNroAgAA5xkAAD8AGAAAAAAAAAAAAKSBt10UAHN0b3JhZ2UvaW5kZXhl
ZGRiL3ZlcnNpb24tY2hhbmdlLWV2ZW50LWJhc2ljLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADJm6m
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC2BBknyFcucyAMAANImAAA3ABgAAAAAAAAAAACk
gRhhFABzdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1ldmVudC1iYXNpYy1zdGRlcnIu
dHh0VVQFAAMmbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALoEGSV1nx/p+BQAAwC8AADkA
GAAAAAAAAAAAAKSBUWUUAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV2ZW50LXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADJ26mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC6BBkl5
44dfCAUAAEsoAAAxABgAAAAAAAAAAACkgUJrFABzdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNo
YW5nZS1ldmVudC1zdGRlcnIudHh0VVQFAAMnbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
LoEGSXJXt1gwBQAAkTgAAD0AGAAAAAAAAAAAAKSBtXAUAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNp
b24tY2hhbmdlLWV4Y2x1c2l2ZS1wcml2YXRlLXN0ZGVyci50eHRVVAUAAydupld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAugQZJKRM2AkIFAAAZOgAANQAYAAAAAAAAAAAApIFcdhQAc3RvcmFn
ZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtZXhjbHVzaXZlLXN0ZGVyci50eHRVVAUAAydupld1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAugQZJ1kvSOqIDAAB5EwAASQAYAAAAAAAAAAAApIEN
fBQAc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbmNoYW5nZXJlcXVlc3QtYWN0aXZlZG9tb2JqZWN0
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADKG6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC+B
Bkna9UoO3wMAAAMUAABBABgAAAAAAAAAAACkgTKAFABzdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9u
Y2hhbmdlcmVxdWVzdC1hY3RpdmVkb21vYmplY3Qtc3RkZXJyLnR4dFVUBQADKW6mV3V4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAN2ABkkAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADtQYyEFABzdG9y
YWdlL3dlYnNxbC9VVAUAA5Jtpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADYgAZJ3v266a8A
AADuAAAALQAYAAAAAAABAAAApIHVhBQAc3RvcmFnZS93ZWJzcWwvYWx0ZXItdG8taW5mby10YWJs
ZS1zdGRlcnIudHh0VVQFAAOIbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2IAGSd79uumv
AAAA7gAAADUAGAAAAAAAAQAAAKSB64UUAHN0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLWhh
bmRsZS1yZXVzZS1zdGRlcnIudHh0VVQFAAOIbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
2IAGSd79uumvAAAA7gAAAEYAGAAAAAAAAQAAAKSBCYcUAHN0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12
ZXJzaW9uLW5vLWNyYXNoLW9uLXByZWZsaWdodC1mYWlsdXJlLXN0ZGVyci50eHRVVAUAA4htpld1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADYgAZJ+Ud02LoAAAC4AwAAKAAYAAAAAAABAAAApIE4
iBQAc3RvcmFnZS93ZWJzcWwvY2hhbmdlLXZlcnNpb24tc3RkZXJyLnR4dFVUBQADiG2mV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIANmABkne/brprwAAAO4AAAAyABgAAAAAAAEAAACkgVSJFABz
dG9yYWdlL3dlYnNxbC9jbG9zZS1kdXJpbmctc3RyZXNzLXRlc3Qtc3RkZXJyLnR4dFVUBQADiW2m
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANmABkmrePuhtQAAANwBAAA0ABgAAAAAAAEAAACk
gW+KFABzdG9yYWdlL3dlYnNxbC9kYXRhYmFzZS1sb2NrLWFmdGVyLXJlbG9hZC1zdGRlcnIudHh0
VVQFAAOJbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2YAGSd79uumvAAAA7gAAACkAGAAA
AAAAAQAAAKSBkosUAHN0b3JhZ2Uvd2Vic3FsL2VtcHR5LXN0YXRlbWVudC1zdGRlcnIudHh0VVQF
AAOJbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2YAGSd79uumvAAAA7gAAACoAGAAAAAAA
AQAAAKSBpIwUAHN0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLWFyZ3Mtc3RkZXJyLnR4dFVUBQAD
iW2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANmABkne/brprwAAAO4AAAAyABgAAAAAAAEA
AACkgbeNFABzdG9yYWdlL3dlYnNxbC9leGVjdXRlLXNxbC1yb3dzQWZmZWN0ZWQtc3RkZXJyLnR4
dFVUBQADiW2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANmABkne/brprwAAAO4AAAA/ABgA
AAAAAAEAAACkgdKOFABzdG9yYWdlL3dlYnNxbC9leGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUt
c3RhdGVtZW50LXN0ZGVyci50eHRVVAUAA4ptpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADa
gAZJ3v266a8AAADuAAAALgAYAAAAAAABAAAApIH6jxQAc3RvcmFnZS93ZWJzcWwvaGFzaC1jaGFu
Z2Utd2l0aC14aHItc3RkZXJyLnR4dFVUBQADi22mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ANqABkmrePuhtQAAANwBAAA/ABgAAAAAAAEAAACkgRGRFABzdG9yYWdlL3dlYnNxbC9tdWx0aXBs
ZS1kYXRhYmFzZXMtZ2FyYmFnZS1jb2xsZWN0aW9uLXN0ZGVyci50eHRVVAUAA4xtpld1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADagAZJPGb0jLkAAADKAgAARAAYAAAAAAABAAAApIE/khQAc3Rv
cmFnZS93ZWJzcWwvbXVsdGlwbGUtdHJhbnNhY3Rpb25zLW9uLWRpZmZlcmVudC1oYW5kbGVzLXN0
ZGVyci50eHRVVAUAA4xtpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADagAZJ3v266a8AAADu
AAAALwAYAAAAAAABAAAApIF2kxQAc3RvcmFnZS93ZWJzcWwvbXVsdGlwbGUtdHJhbnNhY3Rpb25z
LXN0ZGVyci50eHRVVAUAA4xtpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADagAZJ3v266a8A
AADuAAAAKAAYAAAAAAABAAAApIGOlBQAc3RvcmFnZS93ZWJzcWwvbnVsbC1jYWxsYmFja3Mtc3Rk
ZXJyLnR4dFVUBQADjG2mV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANqABkmrePuhtQAAANwB
AABIABgAAAAAAAEAAACkgZ+VFABzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWNyZWF0aW9u
LWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLXN0ZGVyci50eHRVVAUAA4xtpld1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADagAZJ+Ud02LoAAAC4AwAAOQAYAAAAAAABAAAApIHWlhQAc3RvcmFnZS93
ZWJzcWwvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1zdGRlcnIudHh0VVQFAAOMbaZX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA24AGSd79uumvAAAA7gAAADUAGAAAAAAAAQAAAKSB
A5gUAHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2UtZW1wdHktdmVyc2lvbi1zdGRlcnIudHh0
VVQFAAONbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA24AGSd79uumvAAAA7gAAADQAGAAA
AAAAAQAAAKSBIZkUAHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2UtZXhwYW5kLXF1b3RhLXN0
ZGVyci50eHRVVAUAA41tpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADbgAZJq3j7obUAAADc
AQAAOQAYAAAAAAABAAAApIE+mhQAc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1zZXQtZW1w
dHktdmVyc2lvbi1zdGRlcnIudHh0VVQFAAONbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
24AGSat4+6G1AAAA3AEAAEUAGAAAAAAAAQAAAKSBZpsUAHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0
YWJhc2Utd2hpbGUtdHJhbnNhY3Rpb24taW4tcHJvZ3Jlc3Mtc3RkZXJyLnR4dFVUBQADjW2mV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANuABkne/brprwAAAO4AAAA5ABgAAAAAAAEAAACkgZqc
FABzdG9yYWdlL3dlYnNxbC9wcml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRlLXN0ZGVyci50
eHRVVAUAA41tpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADbgAZJPGb0jLkAAADKAgAARwAY
AAAAAAABAAAApIG8nRQAc3RvcmFnZS93ZWJzcWwvcmVhZC1hbmQtd3JpdGUtdHJhbnNhY3Rpb25z
LWRvbnQtcnVuLXRvZ2V0aGVyLXN0ZGVyci50eHRVVAUAA45tpld1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADbgAZJq3j7obUAAADcAQAAQAAYAAAAAAABAAAApIH2nhQAc3RvcmFnZS93ZWJzcWwv
cmVhZC10cmFuc2FjdGlvbnMtcnVubmluZy1jb25jdXJyZW50bHktc3RkZXJyLnR4dFVUBQADjm2m
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANuABkne/brprwAAAO4AAAAoABgAAAAAAAEAAACk
gSWgFABzdG9yYWdlL3dlYnNxbC9zcWwtZGF0YS10eXBlcy1zdGRlcnIudHh0VVQFAAOObaZXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA24AGSat4+6G1AAAA3AEAAEEAGAAAAAAAAQAAAKSBNqEU
AHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1lcnJvci1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1z
dGRlcnIudHh0VVQFAAOObaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA24AGSd79uumvAAAA
7gAAADIAGAAAAAAAAQAAAKSBZqIUAHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1lcnJvci1jYWxs
YmFjay1zdGRlcnIudHh0VVQFAAOObaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3IAGSat4
+6G1AAAA3AEAAEMAGAAAAAAAAQAAAKSBgaMUAHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1zdWNj
ZXNzLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLXN0ZGVyci50eHRVVAUAA49tpld1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADcgAZJ3v266a8AAADuAAAAKgAYAAAAAAABAAAApIGzpBQAc3RvcmFn
ZS93ZWJzcWwvc3VjY2Vzcy1jYWxsYmFjay1zdGRlcnIudHh0VVQFAAOPbaZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA3IAGSd79uumvAAAA7gAAAEMAGAAAAAAAAQAAAKSBxqUUAHN0b3JhZ2Uv
d2Vic3FsL3N1Y2Nlc3MtY2FsbGJhY2std2hlbi1wYWdlLWRlZmVycy1sb2FkaW5nLXN0ZGVyci50
eHRVVAUAA49tpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADcgAZJ3v266a8AAADuAAAAKQAY
AAAAAAABAAAApIHyphQAc3RvcmFnZS93ZWJzcWwvdGVzdC1hdXRob3JpemVyLXN0ZGVyci50eHRV
VAUAA5Btpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADcgAZJ3v266a8AAADuAAAAPgAYAAAA
AAABAAAApIEEqBQAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tY2FsbGJhY2stZXhjZXB0aW9u
LWNyYXNoLXN0ZGVyci50eHRVVAUAA5Btpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADcgAZJ
q3j7obUAAADcAQAAPQAYAAAAAAABAAAApIErqRQAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24t
Y2FsbGJhY2staXNvbGF0ZWQtd29ybGQtc3RkZXJyLnR4dFVUBQADkG2mV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAN2ABkmrePuhtQAAANwBAABDABgAAAAAAAEAAACkgVeqFABzdG9yYWdlL3dl
YnNxbC90cmFuc2FjdGlvbi1lcnJvci1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIudHh0
VVQFAAORbaZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3YAGSd79uumvAAAA7gAAADQAGAAA
AAAAAQAAAKSBiasUAHN0b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWVycm9yLWNhbGxiYWNrLXN0
ZGVyci50eHRVVAUAA5Ftpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADdgAZJ3v266a8AAADu
AAAALwAYAAAAAAABAAAApIGmrBQAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tcHJvdG90eXBl
LXN0ZGVyci50eHRVVAUAA5Jtpld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADdgAZJq3j7obUA
AADcAQAARQAYAAAAAAABAAAApIG+rRQAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tc3VjY2Vz
cy1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIudHh0VVQFAAOSbaZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAJoEGSQAAAAAAAAAAAAAAAAQAGAAAAAAAAAAQAO1B8q4UAHN2Zy9VVAUA
Axdupld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAmgQZJAAAAAAAAAAAAAAAACwAYAAAAAAAA
ABAA7UEwrxQAc3ZnL2N1c3RvbS9VVAUAAxdupld1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAm
gQZJR4OvuH8AAACNAAAAJAAYAAAAAAABAAAApIF1rxQAc3ZnL2N1c3RvbS96ZXJvLWRhc2hhcnJh
eS1zdGRlcnIudHh0VVQFAAMXbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA9IAGSQAAAAAA
AAAAAAAAAAsAGAAAAAAAAAAQAO1BUrAUAHN2Zy9zdHJva2UvVVQFAAO7baZXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA9IAGSZyYbcl/AAAAjQAAACUAGAAAAAAAAQAAAKSBl7AUAHN2Zy9zdHJv
a2UvemVyby13aWR0aC1oYW5nLXN0ZGVyci50eHRVVAUAA7ttpld1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAAAygQZJAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UF1sRQAd2ViZ2wvVVQFAAMwbqZX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAMoEGSQAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1B
tbEUAHdlYmdsLzEuMC4yL1VUBQADMG6mV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAADKBBkkA
AAAAAAAAAAAAAAAYABgAAAAAAAAAEADtQfuxFAB3ZWJnbC8xLjAuMi9jb25mb3JtYW5jZS9VVAUA
AzBupld1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAygQZJAAAAAAAAAAAAAAAAIQAYAAAAAAAA
ABAA7UFNshQAd2ViZ2wvMS4wLjIvY29uZm9ybWFuY2UvdGV4dHVyZXMvVVQFAAMwbqZXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAMoEGSQ/7BDp3AAAAdAEAADgAGAAAAAAAAQAAAKSBqLIUAHdl
YmdsLzEuMC4yL2NvbmZvcm1hbmNlL3RleHR1cmVzL3RleHR1cmUtbnBvdC1zdGRlcnIudHh0VVQF
AAMwbqZXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMIIGSdVguMSrAwAAUi8AABkAGAAAAAAA
AQAAAKSBkbMUAHdwdHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAUAAwxwpld1eAsAAQT1AQAABBQA
AABQSwUGAAAAAJsCmwLFTAEAj7cUAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285524</attachid>
            <date>2016-08-07 01:05:06 -0700</date>
            <delta_ts>2016-08-07 02:17:07 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160807010336.patch</filename>
            <type>text/plain</type>
            <size>279273</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTFhOGVhNzFmOTFiNmU2MWM4MGI2MWVhNDFiZjQ1MWEyNjBjNGM3Li5iNTcyMTlmMjI4ODQ0NDM0
MzNkODM3NWUyZWE2YjVlMTRiNmQxYTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wNiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDUgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIExFQkRlY29kZXIgYW5kIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyNmIyZWJmZmUy
Y2FkYTM3Y2NkYWUzY2VkZjZlZmM4NTNiNjE2YjEuLjJkNWM0Yzk0ZjZmZmE4ODk4YjIyMWI1ODQ5
NTZiOTU4ZTM0MjgxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgtMDYgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBi
cmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTog
QWRkZWQuCisgICAgICAgICogd3RmL2dlbmJyazogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisg
ICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuY3BwOgorICAgICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RG
OjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0
ZXJhdG9yKToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAg
ICAqIHd0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAg
ICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorCiAyMDE2LTA4LTA2ICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV1RGIG5lZWRzIGEgdmFyaWFudCBpbXBsZW1l
bnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMzBkYzllNGQwMjAzNjIw
YjE0Y2EyMjhiNGViMmJiNGZkZWNlZjBkLi4xYWJlNDdjMjQ2NGRhODk4ZmFkNTMwYWNjMzI2Mzdj
OGJkYTYyYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOSw2ICsxMTA5
LDcgQEAKIAkJMTRGOTc0NDcxMzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhD
ODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBK
U1N0cmluZ1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNG
NzM3NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5j
cHAgKi87IH07CisJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFE
NTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2
MkQ4NUI2MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQx
QzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07
CkBAIC0zMjcyLDYgKzMyNzMsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFz
ZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYg
LyogSmF2YVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2Ny
aXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQx
QkNGRiAvKiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKYXZhU2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4
RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7
IHBhdGggPSAuLi9XVEYvQnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9p
bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0
aCA9IGIzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTQzOCw2ICs1NDQwLDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAw
NzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVs
ZXMgKi8sCiAJCQkJMEY2MTgzMzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAog
CQkJCTBGNjE4MzM0MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywK
IAkJCQkwRjYxODMzNTFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAg
LTg0NTcsNiArODQ2MCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBp
biBSZXNvdXJjZXMgKi8sCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5n
UnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggM2JhODA0MDZiNjg3ODcyY2RjMmUzZTgxNmJlYjAwNDNhOTM5YzI3MC4uMjc5
Y2QxN2QxZjJlODY0YTdhYzU3OWJkNmY0Y2ZmODU2YjE4Yjg4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcsMTcgQEAKIAlvYmplY3RzID0gewog
CiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2
OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVn
YXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMw
MENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4Nzgy
MUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOwor
CQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsK
KwkJCXByb2R1Y3ROYW1lID0gIkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2
MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFn
Z3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBC
OTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtMzEyLDYgKzMyMywxNSBAQAogCQlBOEE0
NzQ4NzE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlRocmVhZERhdGEuaCAqLzsgfTsKIAkJQThBNDc0OEMxNTFBODI2NDAwNDEyM0ZGIC8qIGNv
bmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1
M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJl
RGVmaW5lcy5oICovOyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMuY3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VDMUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTMxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi87IH07CisJ
CUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Ez
N0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAq
LzsgfTsKKwkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksuY3BwICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YwMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U3MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLzsgfTsKKwkJ
QzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwICovOyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNo
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkz
NjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgKi87IH07CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKQEAgLTM0NCw2ICszNjQsMTMgQEAKIAkJ
CXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVt
b3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsK
KwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0
IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9
IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3Vy
Y2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRh
aW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAq
LzsKQEAgLTQzNiw2ICs0NjMsMTggQEAKIAkJMUMxODFDOEQxRDMwN0FCODAwRjVGQTE2IC8qIFVU
ZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzE4MUM4RTFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZBMTYgLyogVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHBhdGggPSBtYWMv
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NTFENTU5QTY5MDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
QjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25D
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkxRDU1OUFFRjAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0OyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUMx
RDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNv
dXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMubWFrZTsgcGF0aCA9IHd0Zi9EZXJp
dmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1c2VzVGFicyA9IDE7IH07
CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQ7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RFQyAvKiBMaW5lQnJlYWtJ
dGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODgx
NTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJU
b1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50
ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjU4LDYgKzY5NywxNSBAQAogCQlBOEE0NzM3QjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFk
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZUaHJlYWREYXRhLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAv
KiBjb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBG
ZWF0dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJl
RGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMDFENTVDOTcx
MDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7
IHBhdGggPSBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
MkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBN
ZWRpYVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjUsNiArNzczLDI0IEBACiAJCQlwYXRo
ID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUNEMTg3OTExRDU1
OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RF
QyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLywKKwkJCQkxQ0I0RkI5NDFENTU5
QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8sCisJCQkJMUNC
NEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0
ICovLAorCQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk4MUQ1NTlB
RDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAqLywKKwkJ
CQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5
RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQg
Ki8sCisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTc0NiwxMCArODEyLDEyIEBA
CiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3Vy
Y2VzLm1ha2UgKi8sCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAwRTc4Qjc2IC8qIENvbmZpZ3VyYXRp
b25zICovLAogCQkJCTE0MDIyRjNGMThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJ
CQkJNUQyNDdCNjMxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2R1Y3RzICovLAogCQkJCTVEMjQ3Qjc2
MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJCQkJQzJDQTM3REYxRDU1QzhEODAwNDg2
Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYg
LyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZG
IC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtMTA4Myw2ICsxMTUxLDcgQEAKIAkJ
QThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVh
a2luZ1J1bGVzICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3UgKi8sCiAJ
CQkJQTVCQTE1RjYxODI0MzU5RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCUE1QkExNUYxMTgyNDMz
OUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMTU4LDYgKzEyMjcsMjMgQEAKIAkJCXBhdGggPSBp
Y3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkNBMzdERjFENTVDOEQ4
MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTIxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi8sCisJCQkJ
QzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNjFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAg
Ki8sCisJCQkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSksuY3BwICovLAorCQkJCUMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0g
IkRlcml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvV1RGOworCQkJc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsKIAkJQ0U0NjUxNkMxOURCMUZCNDAw
M0VDQTA1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTE0NzAsNiArMTU1Niw3IEBACiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRl
cGVuZGVuY2llcyA9ICgKKwkJCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gV1RGOwpAQCAtMTUwMCwxMiArMTU4Nywy
NyBAQAogCQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RG
ICovLAogCQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICov
LAorCQkJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJ
CQkJMTQ0N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFsbG9jICovLAogCQkJKTsKIAkJfTsK
IC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRC
dWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVy
YXRlIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQ
aGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJ
CSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgRGVyaXZl
ZCBTb3VyY2VzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNo
ZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzL1dURlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZc
IlxuXG4vYmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV1RGXG5leHBvcnQgV1RGPVwiV1RGXCJc
blxuaWYgWyAhIC1kIEJyZWFraW5nUnVsZXMgXTsgdGhlblxuICAgIG1rZGlyIEJyZWFraW5nUnVs
ZXNcbmZpXG5cbmlmIFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMFwi
IF07IHRoZW5cbiAgICBleHBvcnQgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPTBcbmVsc2VcbiAg
ICBleHBvcnQgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPTFcbmZpXG5cbmlmIFsgXCIke0FDVElP
Tn1cIiA9IFwiYnVpbGRcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsXCIgLW8gXCIke0FD
VElPTn1cIiA9IFwiaW5zdGFsbGhkcnNcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsYXBp
XCIgXTsgdGhlblxubWFrZSAtLW5vLWJ1aWx0aW4tcnVsZXMgLWYgXCJXVEYvd3RmL0Rlcml2ZWRT
b3VyY2VzLm1ha2VcIiAtaiBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5hY3RpdmVjcHVgIFNES1JP
T1Q9XCIke1NES1JPT1R9XCJcbmZpIjsKKwkJfTsKIAkJNjVBRkExNzAxNjMwQjk3NzAwM0Q3MjND
IC8qIENvcHkgV1RGIEhlYWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxk
UGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMTUzNiw2ICsxNjM4
LDggQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJ
CQlBOEE0NzM4NjE1MUE4MjVCMDA0MTIzRkYgLyogQXNzZXJ0aW9ucy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlDMkNBMzdGMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRjFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBOEE0NzQzNTE1MUE4MjVCMDA0MTIzRkYgLyogQXRvbWljU3RyaW5nLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTcwRUNBNjBEMUIwMjQyNjgwMDQ0OTczOSAvKiBBdG9taWNTdHJp
bmdJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QkExNUZBMTgyNDM1QTYwMEE4MkU2OSAv
KiBBdG9taWNTdHJpbmdJbXBsQ0YuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNTYzLDYgKzE2Njcs
NyBAQAogCQkJCUE4QTQ3M0IwMTUxQTgyNUIwMDQxMjNGRiAvKiBkb3VibGUtY29udmVyc2lvbi5j
YyBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0JBMTUxQTgyNUIwMDQxMjNGRiAvKiBkdG9hLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0IzMTUxQTgyNUIwMDQxMjNGRiAvKiBmYXN0LWR0
b2EuY2MgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRDFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjg4NUUw
RjE4NDVBRUE5MDBGMUUzRkEgLyogRmFzdEJpdFZlY3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOEE0NzNDMzE1MUE4MjVCMDA0MTIzRkYgLyogRmFzdE1hbGxvYy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlEQ0VFMjIwMTFDRUE3NTUxMDAwQzIzOTYgLyogQmxvY2tPYmpDRXhjZXB0aW9ucy5t
bSBpbiBTb3VyY2VzICovLApAQCAtMTU3OCw2ICsxNjgzLDcgQEAKIAkJCQlBOEE0NzNFOTE1MUE4
MjVCMDA0MTIzRkYgLyogTUQ1LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENTQ5N0FDMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRUMx
NTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QzJDQTM3RjAxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RD
SksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRjQxNTFBODI1QjAwNDEyM0ZGIC8qIE51
bWJlck9mQ29yZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRjcxNTFBODI1QjAwNDEy
M0ZGIC8qIE9TQWxsb2NhdG9yUG9zaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRjkx
NTFBODI1QjAwNDEyM0ZGIC8qIE9TUmFuZG9tU291cmNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MTU4NSw2ICsxNjkxLDcgQEAKIAkJCQkxQzE4MUM5MzFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQ
cm92aWRlclVURjE2LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRkYxOURDMUJCMzM0RUIwMDg4
NkQ5MSAvKiBQYXJhbGxlbEhlbHBlclBvb2wuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4MjRB
NjgxQjc0NDNBMDAwMkUzNDVEIC8qIFBhcmtpbmdMb3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDMzNjIxNjVEQkE3MzAwNUFEMzg3IC8qIFBy
aW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0M0Y2MTFGMTU2NUYwRjkwMERCNTE0
QSAvKiBSQU1TaXplLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDE0MTUxQTgyNUIwMDQx
MjNGRiAvKiBSYW5kb21OdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNjE5LDkgKzE3MjYs
MTMgQEAKIAkJCQlBOEE0NzQ0QTE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkaW5nLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3NDRFMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRpbmdQdGhy
ZWFkcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ2OTE1MUE4MjVCMDA0MTIzRkYgLyog
VVRGOC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQzFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFGQTQ3QzhBMTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGRTQ0NzlDMUI3QUFBMDMwMDk0OThFQiAvKiBXb3JkTG9jay5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRENFRTIyMDMxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlc01hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VBMUQ1NUM5NzEwMDQ4NkI5
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0
QTBBRDM5MUE5NjI0NTUwMDUzNkRGNiAvKiBXb3JrUXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTRBMEFEM0QxQTk2MjUzQzAwNTM2REY2IC8qIFdvcmtRdWV1ZUNvY29hLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4QTQ3NDQ1MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZTdHJpbmcuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0xNjM3LDYgKzE3NDgsMTEgQEAKIAkJCXRhcmdldCA9IDVEMjQ3QjYx
MTQ2ODlCODYwMEU3OEI3NiAvKiBXVEYgKi87CiAJCQl0YXJnZXRQcm94eSA9IDE0NDdBRUMzMThG
Q0U1NzAwMEIzRDdGRiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJCTFDRDE4
Nzg4MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNh
ID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IDFDRDE4NzgxMUQ1NTY5NUMwMEND
N0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi87CisJCQl0YXJnZXRQcm94eSA9IDFDRDE4Nzg3MUQ1
NTY5ODgwMENDN0RFQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CisJCX07CiAJCTY1QUZB
MjhFMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewogCQkJaXNh
ID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9IDY1QUZBMTZGMTYzMEI5NzcwMDNE
NzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovOwpAQCAtMTY2Niw2ICsxNzgyLDMwIEBACiAJCQl9
OwogCQkJbmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJCTFDRDE4Nzg0MUQ1NTY5NUMwMENDN0RF
QyAvKiBEZWJ1ZyAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFz
ZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA2NTQxQ0FGNDE2MzBEQjI2MDA2RDBERUMgLyogQ29w
eVdURkhlYWRlcnMueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RV
Q1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9
OworCQkxQ0QxODc4NTFENTU2OTVDMDBDQzdERUMgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9
IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA2
NTQxQ0FGNDE2MzBEQjI2MDA2RDBERUMgLyogQ29weVdURkhlYWRlcnMueGNjb25maWcgKi87CisJ
CQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7
CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTFDRDE4Nzg2MUQ1NTY5NUMwMEND
N0RFQyAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDY1NDFDQUY0MTYzMERCMjYwMDZEMERF
QyAvKiBDb3B5V1RGSGVhZGVycy54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJ
CQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gUHJv
ZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdCNjQxNDY4OUI4NjAwRTc4Qjc2IC8qIERlYnVnICovID0g
ewogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJl
ZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25m
aWcgKi87CkBAIC0xNzQ5LDYgKzE4ODksMTYgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNW
aXNpYmxlID0gMDsKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJ
CX07CisJCTFDRDE4NzgzMUQ1NTY5NUMwMENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxp
c3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2VzIiAqLyA9IHsKKwkJCWlz
YSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJ
CTFDRDE4Nzg0MUQ1NTY5NUMwMENDN0RFQyAvKiBEZWJ1ZyAqLywKKwkJCQkxQ0QxODc4NTFENTU2
OTVDMDBDQzdERUMgLyogUmVsZWFzZSAqLywKKwkJCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMg
LyogUHJvZHVjdGlvbiAqLywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJs
ZSA9IDA7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOworCQl9Owog
CQk1RDI0N0I1QzE0Njg5Qjg2MDBFNzhCNzYgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZv
ciBQQlhQcm9qZWN0ICJXVEYiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsK
IAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL2Jya2l0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvYnJraXRlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRhYTVlNTUyNzk2MDkwZWFlYmNkN2NlN2I3ZDI3NWFhOGIzNzc1YjQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jya2l0ZXIuaApAQCAtMCwwICsxLDY1
NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAxOTk3
LTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBh
bmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqCisqIEZpbGUgYnJraXRlci5oCisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAg
IERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMDIvMTgvOTcgICAgYWxp
dSAgICAgICAgQWRkZWQgdHlwZWRlZiBmb3IgVGV4dENvdW50LiAgTWFkZSBET05FIGNvbnN0Lgor
KiAgIDA1LzA3Lzk3ICAgIGFsaXUgICAgICAgIEZpeGVkIERMTCBkZWNsYXJhdGlvbi4KKyogICAw
Ny8wOS85NyAgICBqZml0eiAgICAgICBSZW5hbWVkIEJyZWFrSXRlcmF0b3IgYW5kIGludGVyZmFj
ZSBzeW5jZWQgd2l0aCBKREsKKyogICAwOC8xMS85OCAgICBoZWxlbmEgICAgICBTeW5jLXVwIEpE
SzEuMi4KKyogICAwMS8xMy8yMDAwICBoZWxlbmEgICAgICBBZGRlZCBVRXJyb3JDb2RlIHBhcmFt
ZXRlciB0byBjcmVhdGVYWFhJbnN0YW5jZSBtZXRob2RzLgorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyovCisKKyNpZm5kZWYgQlJLSVRFUl9ICisjZGVmaW5lIEJSS0lURVJfSAorCisjaW5jbHVk
ZSAidW5pY29kZS91dHlwZXMuaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6
IEJyZWFrIEl0ZXJhdG9yLgorICovCisKKyNpZiBVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgor
CitVX05BTUVTUEFDRV9CRUdJTgorCisvKgorICogQWxsb3cgdGhlIGRlY2xhcmF0aW9uIG9mIEFQ
SXMgd2l0aCBwb2ludGVycyB0byBCcmVha0l0ZXJhdG9yCisgKiBldmVuIHdoZW4gYnJlYWsgaXRl
cmF0aW9uIGlzIHJlbW92ZWQgZnJvbSB0aGUgYnVpbGQuCisgKi8KK2NsYXNzIEJyZWFrSXRlcmF0
b3I7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZWxzZQorCisjaW5jbHVkZSAidW5pY29kZS91b2Jq
ZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2No
YXJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS9sb2NpZC5oIgorI2luY2x1ZGUgInVuaWNvZGUv
dWJyay5oIgorI2luY2x1ZGUgInVuaWNvZGUvc3RyZW51bS5oIgorI2luY2x1ZGUgInVuaWNvZGUv
dXRleHQuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VtaXNjLmgiCisKK1VfTkFNRVNQQUNFX0JFR0lO
CisKKy8qKgorICogVGhlIEJyZWFrSXRlcmF0b3IgY2xhc3MgaW1wbGVtZW50cyBtZXRob2RzIGZv
ciBmaW5kaW5nIHRoZSBsb2NhdGlvbgorICogb2YgYm91bmRhcmllcyBpbiB0ZXh0LiBCcmVha0l0
ZXJhdG9yIGlzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MuCisgKiBJbnN0YW5jZXMgb2YgQnJlYWtJ
dGVyYXRvciBtYWludGFpbiBhIGN1cnJlbnQgcG9zaXRpb24gYW5kIHNjYW4gb3ZlcgorICogdGV4
dCByZXR1cm5pbmcgdGhlIGluZGV4IG9mIGNoYXJhY3RlcnMgd2hlcmUgYm91bmRhcmllcyBvY2N1
ci4KKyAqIDxwPgorICogTGluZSBib3VuZGFyeSBhbmFseXNpcyBkZXRlcm1pbmVzIHdoZXJlIGEg
dGV4dCBzdHJpbmcgY2FuIGJlIGJyb2tlbgorICogd2hlbiBsaW5lLXdyYXBwaW5nLiBUaGUgbWVj
aGFuaXNtIGNvcnJlY3RseSBoYW5kbGVzIHB1bmN0dWF0aW9uIGFuZAorICogaHlwaGVuYXRlZCB3
b3Jkcy4KKyAqIDxwPgorICogU2VudGVuY2UgYm91bmRhcnkgYW5hbHlzaXMgYWxsb3dzIHNlbGVj
dGlvbiB3aXRoIGNvcnJlY3QKKyAqIGludGVycHJldGF0aW9uIG9mIHBlcmlvZHMgd2l0aGluIG51
bWJlcnMgYW5kIGFiYnJldmlhdGlvbnMsIGFuZAorICogdHJhaWxpbmcgcHVuY3R1YXRpb24gbWFy
a3Mgc3VjaCBhcyBxdW90YXRpb24gbWFya3MgYW5kIHBhcmVudGhlc2VzLgorICogPHA+CisgKiBX
b3JkIGJvdW5kYXJ5IGFuYWx5c2lzIGlzIHVzZWQgYnkgc2VhcmNoIGFuZCByZXBsYWNlIGZ1bmN0
aW9ucywgYXMKKyAqIHdlbGwgYXMgd2l0aGluIHRleHQgZWRpdGluZyBhcHBsaWNhdGlvbnMgdGhh
dCBhbGxvdyB0aGUgdXNlciB0bworICogc2VsZWN0IHdvcmRzIHdpdGggYSBkb3VibGUgY2xpY2su
IFdvcmQgc2VsZWN0aW9uIHByb3ZpZGVzIGNvcnJlY3QKKyAqIGludGVycHJldGF0aW9uIG9mIHB1
bmN0dWF0aW9uIG1hcmtzIHdpdGhpbiBhbmQgZm9sbG93aW5nCisgKiB3b3Jkcy4gQ2hhcmFjdGVy
cyB0aGF0IGFyZSBub3QgcGFydCBvZiBhIHdvcmQsIHN1Y2ggYXMgc3ltYm9scyBvcgorICogcHVu
Y3R1YXRpb24gbWFya3MsIGhhdmUgd29yZC1icmVha3Mgb24gYm90aCBzaWRlcy4KKyAqIDxwPgor
ICogQ2hhcmFjdGVyIGJvdW5kYXJ5IGFuYWx5c2lzIGFsbG93cyB1c2VycyB0byBpbnRlcmFjdCB3
aXRoCisgKiBjaGFyYWN0ZXJzIGFzIHRoZXkgZXhwZWN0IHRvLCBmb3IgZXhhbXBsZSwgd2hlbiBt
b3ZpbmcgdGhlIGN1cnNvcgorICogdGhyb3VnaCBhIHRleHQgc3RyaW5nLiBDaGFyYWN0ZXIgYm91
bmRhcnkgYW5hbHlzaXMgcHJvdmlkZXMgY29ycmVjdAorICogbmF2aWdhdGlvbiBvZiB0aHJvdWdo
IGNoYXJhY3RlciBzdHJpbmdzLCByZWdhcmRsZXNzIG9mIGhvdyB0aGUKKyAqIGNoYXJhY3RlciBp
cyBzdG9yZWQuICBGb3IgZXhhbXBsZSwgYW4gYWNjZW50ZWQgY2hhcmFjdGVyIG1pZ2h0IGJlCisg
KiBzdG9yZWQgYXMgYSBiYXNlIGNoYXJhY3RlciBhbmQgYSBkaWFjcml0aWNhbCBtYXJrLiBXaGF0
IHVzZXJzCisgKiBjb25zaWRlciB0byBiZSBhIGNoYXJhY3RlciBjYW4gZGlmZmVyIGJldHdlZW4g
bGFuZ3VhZ2VzLgorICogPHA+CisgKiBUaGUgdGV4dCBib3VuZGFyeSBwb3NpdGlvbnMgYXJlIGZv
dW5kIGFjY29yZGluZyB0byB0aGUgcnVsZXMKKyAqIGRlc2NyaWJlZCBpbiBVbmljb2RlIFN0YW5k
YXJkIEFubmV4ICMyOSwgVGV4dCBCb3VuZGFyaWVzLCBhbmQKKyAqIFVuaWNvZGUgU3RhbmRhcmQg
QW5uZXggIzE0LCBMaW5lIEJyZWFraW5nIFByb3BlcnRpZXMuICBUaGVzZQorICogYXJlIGF2YWls
YWJsZSBhdCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIxNC8gYW5kCisgKiBodHRw
Oi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIyOS8uCisgKiA8cD4KKyAqIEluIGFkZGl0aW9u
IHRvIHRoZSBDKysgQVBJIGRlZmluZWQgaW4gdGhpcyBoZWFkZXIgZmlsZSwgYQorICogcGxhaW4g
QyBBUEkgd2l0aCBlcXVpdmFsZW50IGZ1bmN0aW9uYWxpdHkgaXMgZGVmaW5lZCBpbiB0aGUKKyAq
IGZpbGUgdWJyay5oCisgKiA8cD4KKyAqIENvZGUgc25pcHBldHMgaWxsdXN0cmF0aW5nIHRoZSB1
c2Ugb2YgdGhlIEJyZWFrIEl0ZXJhdG9yIEFQSXMKKyAqIGFyZSBhdmFpbGFibGUgaW4gdGhlIElD
VSBVc2VyIEd1aWRlLAorICogaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy91c2VyZ3VpZGUvYm91bmRh
cnlBbmFseXNpcy5odG1sCisgKiBhbmQgaW4gdGhlIHNhbXBsZSBwcm9ncmFtIGljdS9zb3VyY2Uv
c2FtcGxlcy9icmVhay9icmVhay5jcHAKKyAqCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBCcmVh
a0l0ZXJhdG9yIDogcHVibGljIFVPYmplY3QgeworcHVibGljOgorICAgIC8qKgorICAgICAqICBk
ZXN0cnVjdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
fkJyZWFrSXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIGFub3Ro
ZXIgb2JqZWN0IGlzIHNlbWFudGljYWxseSBlcXVhbCB0byB0aGlzCisgICAgICogb25lLiBUaGUg
b3RoZXIgb2JqZWN0IHNob3VsZCBiZSBhbiBpbnN0YW5jZSBvZiB0aGUgc2FtZSBzdWJjbGFzcyBv
ZgorICAgICAqIEJyZWFrSXRlcmF0b3IuIE9iamVjdHMgb2YgZGlmZmVyZW50IHN1YmNsYXNzZXMg
YXJlIGNvbnNpZGVyZWQKKyAgICAgKiB1bmVxdWFsLgorICAgICAqIDxQPgorICAgICAqIFJldHVy
biB0cnVlIGlmIHRoaXMgQnJlYWtJdGVyYXRvciBpcyBhdCB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0
aGUKKyAgICAgKiBzYW1lIHRleHQsIGFuZCBpcyB0aGUgc2FtZSBjbGFzcyBhbmQgdHlwZSAod29y
ZCwgbGluZSwgZXRjLikgb2YKKyAgICAgKiBCcmVha0l0ZXJhdG9yLCBhcyB0aGUgYXJndW1lbnQu
ICBUZXh0IGlzIGNvbnNpZGVyZWQgdGhlIHNhbWUgaWYKKyAgICAgKiBpdCBjb250YWlucyB0aGUg
c2FtZSBjaGFyYWN0ZXJzLCBpdCBuZWVkIG5vdCBiZSB0aGUgc2FtZQorICAgICAqIG9iamVjdCwg
YW5kIHN0eWxlcyBhcmUgbm90IGNvbnNpZGVyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09KGNvbnN0IEJyZWFrSXRlcmF0b3Im
KSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb21wbGVtZW50IG9m
IHRoZSByZXN1bHQgb2Ygb3BlcmF0b3I9PQorICAgICAqIEBwYXJhbSByaHMgVGhlIEJyZWFrSXRl
cmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGluZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRoZSBj
b21wbGVtZW50IG9mIHRoZSByZXN1bHQgb2Ygb3BlcmF0b3I9PQorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgQnJlYWtJdGVyYXRvciYg
cmhzKSBjb25zdCB7IHJldHVybiAhb3BlcmF0b3I9PShyaHMpOyB9CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm4gYSBwb2x5bW9ycGhpYyBjb3B5IG9mIHRoaXMgb2JqZWN0LiAgVGhpcyBpcyBhbiBh
YnN0cmFjdAorICAgICAqIG1ldGhvZCB3aGljaCBzdWJjbGFzc2VzIGltcGxlbWVudC4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IqIGNs
b25lKHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHBvbHltb3Jw
aGljIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4gRGlmZmVyZW50IHN1YmNsYXNzZXMKKyAgICAg
KiB3aWxsIHJldHVybiBkaXN0aW5jdCB1bmVxdWFsIHZhbHVlcy4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKHZv
aWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIENoYXJhY3Rlckl0ZXJh
dG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciYgZ2V0VGV4dCh2b2lkKSBj
b25zdCA9IDA7CisKKworICAgIC8qKgorICAgICAgKiAgR2V0IGEgVVRleHQgZm9yIHRoZSB0ZXh0
IGJlaW5nIGFuYWx5emVkLgorICAgICAgKiAgVGhlIHJldHVybmVkIFVUZXh0IGlzIGEgc2hhbGxv
dyBjbG9uZSBvZiB0aGUgVVRleHQgdXNlZCBpbnRlcm5hbGx5CisgICAgICAqICBieSB0aGUgYnJl
YWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24uICBJdCBjYW4gc2FmZWx5IGJlIHVzZWQgdG8KKyAg
ICAgICogIGFjY2VzcyB0aGUgdGV4dCB3aXRob3V0IGltcGFjdGluZyBhbnkgYnJlYWsgaXRlcmF0
b3Igb3BlcmF0aW9ucywKKyAgICAgICogIGJ1dCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2VsZiBt
dXN0IG5vdCBiZSBhbHRlcmVkLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gZmlsbEluIEEgVVRl
eHQgdG8gYmUgZmlsbGVkIGluLiAgSWYgTlVMTCwgYSBuZXcgVVRleHQgd2lsbCBiZQorICAgICAg
KiAgICAgICAgICAgYWxsb2NhdGVkIHRvIGhvbGQgdGhlIHJlc3VsdC4KKyAgICAgICogQHBhcmFt
IHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMuCisgICAgICAqIEByZXR1cm4gICBUaGUg
Y3VycmVudCBVVGV4dCBmb3IgdGhpcyBicmVhayBpdGVyYXRvci4gIElmIGFuIGlucHV0CisgICAg
ICAqICAgICAgICAgICBVVGV4dCB3YXMgcHJvdmlkZWQsIGl0IHdpbGwgYWx3YXlzIGJlIHJldHVy
bmVkLgorICAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAgICovCisgICAgIHZpcnR1YWwgVVRl
eHQgKmdldFVUZXh0KFVUZXh0ICpmaWxsSW4sIFVFcnJvckNvZGUgJnN0YXR1cykgY29uc3QgPSAw
OworCisgICAgLyoqCisgICAgICogQ2hhbmdlIHRoZSB0ZXh0IG92ZXIgd2hpY2ggdGhpcyBvcGVy
YXRlcy4gVGhlIHRleHQgYm91bmRhcnkgaXMKKyAgICAgKiByZXNldCB0byB0aGUgc3RhcnQuCisg
ICAgICogQHBhcmFtIHRleHQgVGhlIFVuaWNvZGVTdHJpbmcgdXNlZCB0byBjaGFuZ2UgdGhlIHRl
eHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBz
ZXRUZXh0KGNvbnN0IFVuaWNvZGVTdHJpbmcgJnRleHQpID0gMDsKKworICAgIC8qKgorICAgICAq
IFJlc2V0IHRoZSBicmVhayBpdGVyYXRvciB0byBvcGVyYXRlIG92ZXIgdGhlIHRleHQgcmVwcmVz
ZW50ZWQgYnkKKyAgICAgKiB0aGUgVVRleHQuICBUaGUgaXRlcmF0b3IgcG9zaXRpb24gaXMgcmVz
ZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtYWtlcyBhIHNo
YWxsb3cgY2xvbmUgb2YgdGhlIHN1cHBsaWVkIFVUZXh0LiAgVGhpcyBtZWFucworICAgICAqIHRo
YXQgdGhlIGNhbGxlciBpcyBmcmVlIHRvIGltbWVkaWF0ZWx5IGNsb3NlIG9yIG90aGVyd2lzZSBy
ZXVzZSB0aGUKKyAgICAgKiBVdGV4dCB0aGF0IHdhcyBwYXNzZWQgYXMgYSBwYXJhbWV0ZXIsIGJ1
dCB0aGF0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmCisgICAgICogbXVzdCBub3QgYmUgYWx0
ZXJlZCB3aGlsZSBiZWluZyByZWZlcmVuY2VkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAg
KgorICAgICAqIEFsbCBpbmRleCBwb3NpdGlvbnMgcmV0dXJuZWQgYnkgYnJlYWsgaXRlcmF0b3Ig
ZnVuY3Rpb25zIGFyZQorICAgICAqIG5hdGl2ZSBpbmRpY2VzIGZyb20gdGhlIFVUZXh0LiBGb3Ig
ZXhhbXBsZSwgd2hlbiBicmVha2luZyBVVEYtOAorICAgICAqIGVuY29kZWQgdGV4dCwgdGhlIGJy
ZWFrIHBvc2l0aW9ucyByZXR1cm5lZCBieSBuZXh0KCksIHByZXZpb3VzKCksIGV0Yy4KKyAgICAg
KiB3aWxsIGJlIFVURi04IHN0cmluZyBpbmRpY2VzLCBub3QgVVRGLTE2IHBvc2l0aW9ucy4KKyAg
ICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBVVGV4dCB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4
dC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAg
KiBAc3RhYmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoVVRl
eHQgKnRleHQsIFVFcnJvckNvZGUgJnN0YXR1cykgPSAwOworCisgICAgLyoqCisgICAgICogQ2hh
bmdlIHRoZSB0ZXh0IG92ZXIgd2hpY2ggdGhpcyBvcGVyYXRlcy4gVGhlIHRleHQgYm91bmRhcnkg
aXMKKyAgICAgKiByZXNldCB0byB0aGUgc3RhcnQuCisgICAgICogTm90ZSB0aGF0IHNldFRleHQo
VVRleHQgKikgcHJvdmlkZXMgc2ltaWxhciBmdW5jdGlvbmFsaXR5IHRvIHRoaXMgZnVuY3Rpb24s
CisgICAgICogYW5kIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIEBwYXJhbSBpdCBUaGUgQ2hh
cmFjdGVySXRlcmF0b3IgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBhZG9wdFRleHQoQ2hhcmFjdGVySXRl
cmF0b3IqIGl0KSA9IDA7CisKKyAgICBlbnVtIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIERP
TkUgaXMgcmV0dXJuZWQgYnkgcHJldmlvdXMoKSBhbmQgbmV4dCgpIGFmdGVyIGFsbCB2YWxpZAor
ICAgICAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICAgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBET05FID0gKGludDMyX3QpLTEKKyAg
ICB9OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRp
b24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgcG9zaXRpb24gemVyby4KKyAgICAgKiBA
cmV0dXJuIFRoZSBvZmZzZXQgb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgemVyby4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZmlyc3Qo
dm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0
byB0aGUgaW5kZXggaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUg
dGV4dCBiZWluZyBzY2FubmVkLgorICAgICAqIEByZXR1cm4gVGhlIGluZGV4IGltbWVkaWF0ZWx5
IEJFWU9ORCB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgYmVpbmcgc2Nhbm5lZC4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbGFzdCh2
b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRv
IHRoZSBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIGN1cnJlbnQgYm91bmRhcnkuCisgICAgICogQHJl
dHVybiBUaGUgY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBwcmV2aW91cyB0ZXh0IGJvdW5kYXJ5IG9y
IERPTkUgaWYgYWxsCisgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHByZXZpb3Vz
KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIEFkdmFuY2UgdGhlIGl0ZXJhdG9yIHRvIHRo
ZSBib3VuZGFyeSBmb2xsb3dpbmcgdGhlIGN1cnJlbnQgYm91bmRhcnkuCisgICAgICogQHJldHVy
biBUaGUgY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBuZXh0IHRleHQgYm91bmRhcnkgb3IgRE9ORSBp
ZiBhbGwKKyAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dCh2b2lkKSA9IDA7
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBjdXJyZW50
IGludGVyYXRvciBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUg
Ym91bmRhcnkgbW9zdCByZWNlbnRseSByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgY3VycmVudCh2b2lkKSBjb25zdCA9IDA7CisK
KyAgICAvKioKKyAgICAgKiBBZHZhbmNlIHRoZSBpdGVyYXRvciB0byB0aGUgZmlyc3QgYm91bmRh
cnkgZm9sbG93aW5nIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIFRoZSB2YWx1ZSByZXR1
cm5lZCBpcyBhbHdheXMgZ3JlYXRlciB0aGFuIHRoZSBvZmZzZXQgb3IKKyAgICAgKiB0aGUgdmFs
dWUgQnJlYWtJdGVyYXRvci5ET05FCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRv
IGJlZ2luIHNjYW5uaW5nLgorICAgICAqIEByZXR1cm4gVGhlIGZpcnN0IGJvdW5kYXJ5IGFmdGVy
IHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgaW50MzJfdCBmb2xsb3dpbmcoaW50MzJfdCBvZmZzZXQpID0gMDsKKworICAg
IC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGZpcnN0IGJvdW5k
YXJ5IHByZWNlZGluZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBUaGUgdmFsdWUgcmV0
dXJuZWQgaXMgYWx3YXlzIHNtYWxsZXIgdGhhbiB0aGUgb2Zmc2V0IG9yCisgICAgICogdGhlIHZh
bHVlIEJyZWFrSXRlcmF0b3IuRE9ORQorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0
byBiZWdpbiBzY2FubmluZy4KKyAgICAgKiBAcmV0dXJuIFRoZSBmaXJzdCBib3VuZGFyeSBiZWZv
cmUgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBpbnQzMl90IHByZWNlZGluZyhpbnQzMl90IG9mZnNldCkgPSAwOworCisg
ICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0aW9uIGlzIGEg
Ym91bmRhcnkgcG9zaXRpb24uCisgICAgICogQXMgYSBzaWRlIGVmZmVjdCwgdGhlIGN1cnJlbnQg
cG9zaXRpb24gb2YgdGhlIGl0ZXJhdG9yIGlzIHNldAorICAgICAqIHRvIHRoZSBmaXJzdCBib3Vu
ZGFyeSBwb3NpdGlvbiBhdCBvciBmb2xsb3dpbmcgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAg
ICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gVHJ1
ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNCb3VuZGFyeShpbnQzMl90IG9mZnNl
dCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0
aGUgbnRoIGJvdW5kYXJ5IGZyb20gdGhlIGN1cnJlbnQgYm91bmRhcnkKKyAgICAgKiBAcGFyYW0g
biB0aGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgdG8gbW92ZSBieS4gIEEgdmFsdWUgb2YgMAorICAg
ICAqIGRvZXMgbm90aGluZy4gIE5lZ2F0aXZlIHZhbHVlcyBtb3ZlIHRvIHByZXZpb3VzIGJvdW5k
YXJpZXMKKyAgICAgKiBhbmQgcG9zaXRpdmUgdmFsdWVzIG1vdmUgdG8gbGF0ZXIgYm91bmRhcmll
cy4KKyAgICAgKiBAcmV0dXJuIFRoZSBuZXcgaXRlcmF0b3IgcG9zaXRpb24sIG9yCisgICAgICog
RE9ORSBpZiB0aGVyZSBhcmUgZmV3ZXIgdGhhbiB8bnwgYm91bmRhcmllcyBpbiB0aGUgc3BlY2Zp
ZWQgZGlyZWN0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgaW50MzJfdCBuZXh0KGludDMyX3QgbikgPSAwOworCisgICAvKioKKyAgICAgKiBGb3IgUnVs
ZUJhc2VkQnJlYWtJdGVyYXRvcnMsIHJldHVybiB0aGUgc3RhdHVzIHRhZyBmcm9tIHRoZSAKKyAg
ICAgKiBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAq
IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIDxwPgorICAgICAqIEZvciBicmVhayBp
dGVyYXRvciB0eXBlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IGEgcnVsZSBzdGF0dXMsCisgICAgICog
YSBkZWZhdWx0IHZhbHVlIG9mIDAgaXMgcmV0dXJuZWQuCisgICAgICogPHA+CisgICAgICogQHJl
dHVybiB0aGUgc3RhdHVzIGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBt
b3N0IHJlY2VudGx5CisgICAgICogICAgICAgICByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAg
ICAgKiBAc2VlIFJ1bGVCYXNlQnJlYWtJdGVyYXRvcjo6Z2V0UnVsZVN0YXR1cygpCisgICAgICog
QHNlZSBVV29yZEJyZWFrCisgICAgICogQHN0YWJsZSBJQ1UgNTIKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1cygpIGNvbnN0OworCisgICAvKioKKyAgICAqIEZvciBS
dWxlQmFzZWRCcmVha0l0ZXJhdG9ycywgZ2V0IHRoZSBzdGF0dXMgKHRhZykgdmFsdWVzIGZyb20g
dGhlIGJyZWFrIHJ1bGUocykgCisgICAgKiB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50
bHkgcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgKiA8cD4KKyAgICAqIEZvciBicmVhayBp
dGVyYXRvciB0eXBlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IHJ1bGUgc3RhdHVzLAorICAgICogbm8g
dmFsdWVzIGFyZSByZXR1cm5lZC4KKyAgICAqIDxwPgorICAgICogVGhlIHJldHVybmVkIHN0YXR1
cyB2YWx1ZShzKSBhcmUgc3RvcmVkIGludG8gYW4gYXJyYXkgcHJvdmlkZWQgYnkgdGhlIGNhbGxl
ci4KKyAgICAqIFRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiBzb3J0ZWQgKGFzY2VuZGluZykgb3Jk
ZXIuCisgICAgKiBJZiB0aGUgY2FwYWNpdHkgb2YgdGhlIG91dHB1dCBhcnJheSBpcyBpbnN1ZmZp
Y2llbnQgdG8gaG9sZCB0aGUgZGF0YSwKKyAgICAqICB0aGUgb3V0cHV0IHdpbGwgYmUgdHJ1bmNh
dGVkIHRvIHRoZSBhdmFpbGFibGUgbGVuZ3RoLCBhbmQgYQorICAgICogIFVfQlVGRkVSX09WRVJG
TE9XX0VSUk9SIHdpbGwgYmUgc2lnbmFsZWQuCisgICAgKiA8cD4KKyAgICAqIEBzZWUgUnVsZUJh
c2VCcmVha0l0ZXJhdG9yOjpnZXRSdWxlU3RhdHVzVmVjCisgICAgKgorICAgICogQHBhcmFtIGZp
bGxJblZlYyBhbiBhcnJheSB0byBiZSBmaWxsZWQgaW4gd2l0aCB0aGUgc3RhdHVzIHZhbHVlcy4K
KyAgICAqIEBwYXJhbSBjYXBhY2l0eSAgdGhlIGxlbmd0aCBvZiB0aGUgc3VwcGxpZWQgdmVjdG9y
LiAgQSBsZW5ndGggb2YgemVybyBjYXVzZXMKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIGZ1
bmN0aW9uIHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMsIGluIHRoZQorICAg
ICogICAgICAgICAgICAgICAgICBub3JtYWwgd2F5LCB3aXRob3V0IGF0dGVtdHBpbmcgdG8gc3Rv
cmUgYW55IHZhbHVlcy4KKyAgICAqIEBwYXJhbSBzdGF0dXMgICAgcmVjZWl2ZXMgZXJyb3IgY29k
ZXMuCisgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBudW1iZXIgb2YgcnVsZSBzdGF0dXMgdmFs
dWVzIGZyb20gcnVsZXMgdGhhdCBkZXRlcm1pbmVkCisgICAgKiAgICAgICAgICAgICAgICAgIHRo
ZSBtb3N0IHJlY2VudCBib3VuZGFyeSByZXR1cm5lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisg
ICAgKiAgICAgICAgICAgICAgICAgIEluIHRoZSBldmVudCBvZiBhIFVfQlVGRkVSX09WRVJGTE9X
X0VSUk9SLCB0aGUgcmV0dXJuIHZhbHVlCisgICAgKiAgICAgICAgICAgICAgICAgIGlzIHRoZSB0
b3RhbCBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcyB0aGF0IHdlcmUgYXZhaWxhYmxlLAorICAgICog
ICAgICAgICAgICAgICAgICBub3QgdGhlIHJlZHVjZWQgbnVtYmVyIHRoYXQgd2VyZSBhY3R1YWxs
eSByZXR1cm5lZC4KKyAgICAqIEBzZWUgZ2V0UnVsZVN0YXR1cworICAgICogQHN0YWJsZSBJQ1Ug
NTIKKyAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3RhdHVzVmVjKGludDMyX3Qg
KmZpbGxJblZlYywgaW50MzJfdCBjYXBhY2l0eSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAg
IC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciB3b3JkLWJyZWFrcyB1c2luZyB0
aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0
ZXJhdG9yIGltcGxlbWVudGluZyB3b3JkIGJyZWFrcy4KKyAgICAgKiBXb3JkQnJlYWsgaXMgdXNl
ZnVsIGZvciB3b3JkIHNlbGVjdGlvbiAoZXguIGRvdWJsZSBjbGljaykKKyAgICAgKiBAcGFyYW0g
d2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBlcnJvciBjb2RlCisg
ICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHdvcmQtYnJlYWtzLiAgVGhlIFVFcnJv
ckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMg
aW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29u
c3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUg
dmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9y
bWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVz
dWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJB
Q0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBG
b3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdh
cyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxU
X1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAg
ICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxs
IGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIg
b3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcg
aXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRl
cmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZVdvcmRJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdo
ZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFr
SXRlcmF0b3IgZm9yIGxpbmUtYnJlYWtzIHVzaW5nIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICog
UmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIGxpbmUg
YnJlYWtzLiBMaW5lCisgICAgICogYnJlYWtzIGFyZSBsb2dpY2FsbHkgcG9zc2libGUgbGluZSBi
cmVha3MsIGFjdHVhbCBsaW5lIGJyZWFrcyBhcmUKKyAgICAgKiB1c3VhbGx5IGRldGVybWluZWQg
YmFzZWQgb24gZGlzcGxheSB3aWR0aC4KKyAgICAgKiBMaW5lQnJlYWsgaXMgdXNlZnVsIGZvciB3
b3JkIHdyYXBwaW5nIHRleHQuCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAg
ICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJuIEEgQnJlYWtJ
dGVyYXRvciBmb3IgbGluZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICog
cGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNl
ci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9y
IG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJy
KS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNh
biBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGlj
YXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0
aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdk
ZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUn
IHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhh
dCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSBy
ZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICog
Y291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmpl
Y3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAg
Y3JlYXRlTGluZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1
cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3IgY2hhcmFjdGVy
LWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxlCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5j
ZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIGNoYXJhY3RlciBicmVha3MuCisgICAg
ICogQ2hhcmFjdGVyIGJyZWFrcyBhcmUgYm91bmRhcmllcyBvZiBjb21iaW5pbmcgY2hhcmFjdGVy
IHNlcXVlbmNlcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFy
YW0gc3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9y
IGZvciBjaGFyYWN0ZXItYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cworICAgICAqIHBh
cmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIu
CisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBu
b3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVyciku
ICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4g
Y2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0
ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhh
dCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVf
Q0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3
YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQg
dGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVx
dWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNv
dWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0
IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNy
ZWF0ZUNoYXJhY3Rlckluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0
YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3Igc2VudGVu
Y2UtYnJlYWtzIHVzaW5nIHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBSZXR1cm5zIGFuIGluc3Rh
bmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgc2VudGVuY2UgYnJlYWtzLgorICAg
ICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVy
cm9yIGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHNlbnRlbmNlLWJy
ZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0
byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNr
IHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNo
ZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9y
ZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1h
dGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAg
KiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9j
YWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVk
LCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4g
IFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2Fs
ZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9y
IGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAg
ICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2li
bGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVTZW50ZW5jZUluc3Rh
bmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioK
KyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3IgdGl0bGUtY2FzaW5nIGJyZWFrcyB1c2lu
ZyB0aGUgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBC
cmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyB0aXRsZSBicmVha3MuCisgICAgICogVGhlIGl0ZXJh
dG9yIHJldHVybmVkIGxvY2F0ZXMgdGl0bGUgYm91bmRhcmllcyBhcyBkZXNjcmliZWQgZm9yCisg
ICAgICogVW5pY29kZSAzLjIgb25seS4gRm9yIFVuaWNvZGUgNC4wIGFuZCBhYm92ZSB0aXRsZSBi
b3VuZGFyeSBpdGVyYXRpb24sCisgICAgICogcGxlYXNlIHVzZSBXb3JkIEJvdW5kYXJ5IGl0ZXJh
dG9yLntAbGluayAjY3JlYXRlV29yZEluc3RhbmNlIH0KKyAgICAgKgorICAgICAqIEBwYXJhbSB3
aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUuCisg
ICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHRpdGxlLWJyZWFrcy4gIFRoZSBVRXJy
b3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVz
IGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNv
bnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhl
IHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZv
cm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJl
c3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExC
QUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAg
Rm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3
YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVM
VF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAg
ICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFs
bCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVy
IG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5n
IGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0
ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVUaXRsZUluc3RhbmNlKGNvbnN0IExvY2FsZSYg
d2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNl
dCBvZiBMb2NhbGVzIGZvciB3aGljaCBUZXh0Qm91bmRhcmllcyBhcmUgaW5zdGFsbGVkLgorICAg
ICAqIDxwPjxiPk5vdGU6PC9iPiB0aGlzIHdpbGwgbm90IHJldHVybiBsb2NhbGVzIGFkZGVkIHRo
cm91Z2ggdGhlIHJlZ2lzdGVyCisgICAgICogY2FsbC4gVG8gc2VlIHRoZSByZWdpc3RlcmVkIGxv
Y2FsZXMgdG9vLCB1c2UgdGhlIGdldEF2YWlsYWJsZUxvY2FsZXMKKyAgICAgKiBmdW5jdGlvbiB0
aGF0IHJldHVybnMgYSBTdHJpbmdFbnVtZXJhdGlvbiBvYmplY3QgPC9wPgorICAgICAqIEBwYXJh
bSBjb3VudCB0aGUgb3V0cHV0IHBhcmFtZXRlciBvZiBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhl
IGxvY2FsZSBsaXN0CisgICAgICogQHJldHVybiBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUqIFVfRVhQT1JU
MiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIGNvdW50KTsKKworICAgIC8qKgorICAgICAq
IEdldCBuYW1lIG9mIHRoZSBvYmplY3QgZm9yIHRoZSBkZXNpcmVkIExvY2FsZSwgaW4gdGhlIGRl
c2lyZWQgbGFuZ2F1Z2UuCisgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSBtdXN0IGJlIGZyb20g
Z2V0QXZhaWxhYmxlTG9jYWxlcy4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSBzcGVjaWZp
ZXMgdGhlIGRlc2lyZWQgbG9jYWxlIGZvciBvdXRwdXQuCisgICAgICogQHBhcmFtIG5hbWUgdGhl
IGZpbGwtaW4gcGFyYW1ldGVyIG9mIHRoZSByZXR1cm4gdmFsdWUKKyAgICAgKiBVc2VzIGJlc3Qg
bWF0Y2guCisgICAgICogQHJldHVybiB1c2VyLWRpc3BsYXlhYmxlIG5hbWUKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgVV9FWFBPUlQy
IGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgb2JqZWN0TG9jYWxlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMb2NhbGUmIGRpc3BsYXlMb2NhbGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcm
IG5hbWUpOworCisgICAgLyoqCisgICAgICogR2V0IG5hbWUgb2YgdGhlIG9iamVjdCBmb3IgdGhl
IGRlc2lyZWQgTG9jYWxlLCBpbiB0aGUgbGFuZ2F1Z2Ugb2YgdGhlCisgICAgICogZGVmYXVsdCBs
b2NhbGUuCisgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSBtdXN0IGJlIGZyb20gZ2V0TWF0Y2hp
bmdMb2NhbGVzCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGZpbGwtaW4gcGFyYW1ldGVyIG9mIHRo
ZSByZXR1cm4gdmFsdWUKKyAgICAgKiBAcmV0dXJuIHVzZXItZGlzcGxheWFibGUgbmFtZQorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBV
X0VYUE9SVDIgZ2V0RGlzcGxheU5hbWUoY29uc3QgTG9jYWxlJiBvYmplY3RMb2NhbGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIG5hbWUp
OworCisgICAgLyoqCisgICAgICogRGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5LiBVc2UgY2xvbmUo
KSBpbnN0ZWFkLgorICAgICAqCisgICAgICogVGhyZWFkIHNhZmUgY2xpZW50LWJ1ZmZlci1iYXNl
ZCBjbG9uaW5nIG9wZXJhdGlvbgorICAgICAqICAgIERvIE5PVCBjYWxsIGRlbGV0ZSBvbiBhIHNh
ZmVjbG9uZSwgc2luY2UgJ25ldycgaXMgbm90IHVzZWQgdG8gY3JlYXRlIGl0LgorICAgICAqIEBw
YXJhbSBzdGFja0J1ZmZlciB1c2VyIGFsbG9jYXRlZCBzcGFjZSBmb3IgdGhlIG5ldyBjbG9uZS4g
SWYgTlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgorICAgICAqIElmIGJ1ZmZlciBp
cyBub3QgbGFyZ2UgZW5vdWdoLCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgorICAgICAq
IEBwYXJhbSBCdWZmZXJTaXplIHJlZmVyZW5jZSB0byBzaXplIG9mIGFsbG9jYXRlZCBzcGFjZS4K
KyAgICAgKiBJZiBCdWZmZXJTaXplID09IDAsIGEgc3VmZmljaWVudCBzaXplIGZvciB1c2UgaW4g
Y2xvbmluZyB3aWxsCisgICAgICogYmUgcmV0dXJuZWQgKCdwcmUtZmxpZ2h0aW5nJykKKyAgICAg
KiBJZiBCdWZmZXJTaXplIGlzIG5vdCBlbm91Z2ggZm9yIGEgc3RhY2stYmFzZWQgc2FmZSBjbG9u
ZSwKKyAgICAgKiBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgorICAgICAqIEBwYXJhbSBz
dGF0dXMgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgb3BlcmF0aW9uIHdlbnQgb24gc21vb3RobHkg
b3IgdGhlcmUgd2VyZSBlcnJvcnMKKyAgICAgKiAgQW4gaW5mb3JtYXRpb25hbCBzdGF0dXMgdmFs
dWUsIFVfU0FGRUNMT05FX0FMTE9DQVRFRF9FUlJPUiwgaXMgdXNlZCBpZiBhbnkgYWxsb2NhdGlv
bnMgd2VyZQorICAgICAqICBuZWNlc3NhcnkuCisgICAgICogQHJldHVybiBwb2ludGVyIHRvIHRo
ZSBuZXcgY2xvbmUKKyAgICAgKgorICAgICAqIEBkZXByZWNhdGVkIElDVSA1Mi4gVXNlIGNsb25l
KCkgaW5zdGVhZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IgKiAgY3JlYXRl
QnVmZmVyQ2xvbmUodm9pZCAqc3RhY2tCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgJkJ1ZmZlclNpemUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgJnN0YXR1cykgPSAw
OworCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQorCisgICAgLyoqCisgICAgICogICBE
ZXRlcm1pbmUgd2hldGhlciB0aGUgQnJlYWtJdGVyYXRvciB3YXMgY3JlYXRlZCBpbiB1c2VyIG1l
bW9yeSBieQorICAgICAqICAgY3JlYXRlQnVmZmVyQ2xvbmUoKSwgYW5kIHRodXMgc2hvdWxkIG5v
dCBiZSBkZWxldGVkLiAgU3VjaCBvYmplY3RzCisgICAgICogICBtdXN0IGJlIGNsb3NlZCBieSBh
biBleHBsaWNpdCBjYWxsIHRvIHRoZSBkZXN0cnVjdG9yIChub3QgZGVsZXRlKS4KKyAgICAgKiBA
ZGVwcmVjYXRlZCBJQ1UgNTIuIEFsd2F5cyBkZWxldGUgdGhlIEJyZWFrSXRlcmF0b3IuCisgICAg
ICovCisgICAgaW5saW5lIFVCb29sIGlzQnVmZmVyQ2xvbmUodm9pZCk7CisKKyNlbmRpZiAvKiBV
X0hJREVfREVQUkVDQVRFRF9BUEkgKi8KKworI2lmICFVQ09ORklHX05PX1NFUlZJQ0UKKyAgICAv
KioKKyAgICAgKiBSZWdpc3RlciBhIG5ldyBicmVhayBpdGVyYXRvciBvZiB0aGUgaW5kaWNhdGVk
IGtpbmQsIHRvIHVzZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIFRoZSBicmVhayBpdGVy
YXRvciB3aWxsIGJlIGFkb3B0ZWQuICBDbG9uZXMgb2YgdGhlIGl0ZXJhdG9yIHdpbGwgYmUgcmV0
dXJuZWQKKyAgICAgKiBpZiBhIHJlcXVlc3QgZm9yIGEgYnJlYWsgaXRlcmF0b3Igb2YgdGhlIGdp
dmVuIGtpbmQgbWF0Y2hlcyBvciBmYWxscyBiYWNrIHRvCisgICAgICogdGhpcyBsb2NhbGUuCisg
ICAgICogQmVjYXVzZSBJQ1UgbWF5IGNob29zZSB0byBjYWNoZSBCcmVha0l0ZXJhdG9ycyBpbnRl
cm5hbGx5LCB0aGlzIG11c3QKKyAgICAgKiBiZSBjYWxsZWQgYXQgYXBwbGljYXRpb24gc3RhcnR1
cCwgcHJpb3IgdG8gYW55IGNhbGxzIHRvCisgICAgICogQnJlYWtJdGVyYXRvcjo6Y3JlYXRlWFhY
SW5zdGFuY2UgdG8gYXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9yLgorICAgICAqIEBwYXJhbSB0b0Fk
b3B0IHRoZSBCcmVha0l0ZXJhdG9yIGluc3RhbmNlIHRvIGJlIGFkb3B0ZWQKKyAgICAgKiBAcGFy
YW0gbG9jYWxlIHRoZSBMb2NhbGUgZm9yIHdoaWNoIHRoaXMgaW5zdGFuY2UgaXMgdG8gYmUgcmVn
aXN0ZXJlZAorICAgICAqIEBwYXJhbSBraW5kIHRoZSB0eXBlIG9mIGl0ZXJhdG9yIGZvciB3aGlj
aCB0aGlzIGluc3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQKKyAgICAgKiBAcGFyYW0gc3RhdHVz
IHRoZSBpbi9vdXQgc3RhdHVzIGNvZGUsIG5vIHNwZWNpYWwgbWVhbmluZ3MgYXJlIGFzc2lnbmVk
CisgICAgICogQHJldHVybiBhIHJlZ2lzdHJ5IGtleSB0aGF0IGNhbiBiZSB1c2VkIHRvIHVucmVn
aXN0ZXIgdGhpcyBpbnN0YW5jZQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAg
IHN0YXRpYyBVUmVnaXN0cnlLZXkgVV9FWFBPUlQyIHJlZ2lzdGVySW5zdGFuY2UoQnJlYWtJdGVy
YXRvciogdG9BZG9wdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBMb2NhbGUmIGxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVQnJlYWtJdGVyYXRvclR5cGUga2luZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVW5y
ZWdpc3RlciBhIHByZXZpb3VzbHktcmVnaXN0ZXJlZCBCcmVha0l0ZXJhdG9yIHVzaW5nIHRoZSBr
ZXkgcmV0dXJuZWQgZnJvbSB0aGUKKyAgICAgKiByZWdpc3RlciBjYWxsLiAgS2V5IGJlY29tZXMg
aW52YWxpZCBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGFn
YWluLgorICAgICAqIFRoZSBCcmVha0l0ZXJhdG9yIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGtleSB3
aWxsIGJlIGRlbGV0ZWQuCisgICAgICogQmVjYXVzZSBJQ1UgbWF5IGNob29zZSB0byBjYWNoZSBC
cmVha0l0ZXJhdG9ycyBpbnRlcm5hbGx5LCB0aGlzIHNob3VsZAorICAgICAqIGJlIGNhbGxlZCBk
dXJpbmcgYXBwbGljYXRpb24gc2h1dGRvd24sIGFmdGVyIGFsbCBjYWxscyB0bworICAgICAqIEJy
ZWFrSXRlcmF0b3I6OmNyZWF0ZVhYWEluc3RhbmNlIHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhhdmlv
ci4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSByZWdpc3RyeSBrZXkgcmV0dXJuZWQgYnkgYSBwcmV2
aW91cyBjYWxsIHRvIHJlZ2lzdGVySW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBp
bi9vdXQgc3RhdHVzIGNvZGUsIG5vIHNwZWNpYWwgbWVhbmluZ3MgYXJlIGFzc2lnbmVkCisgICAg
ICogQHJldHVybiBUUlVFIGlmIHRoZSBpdGVyYXRvciBmb3IgdGhlIGtleSB3YXMgc3VjY2Vzc2Z1
bGx5IHVucmVnaXN0ZXJlZAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHN0
YXRpYyBVQm9vbCBVX0VYUE9SVDIgdW5yZWdpc3RlcihVUmVnaXN0cnlLZXkga2V5LCBVRXJyb3JD
b2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgU3RyaW5nRW51bWVyYXRp
b24gb3ZlciB0aGUgbG9jYWxlcyBhdmFpbGFibGUgYXQgdGhlIHRpbWUgb2YgdGhlIGNhbGwsCisg
ICAgICogaW5jbHVkaW5nIHJlZ2lzdGVyZWQgbG9jYWxlcy4KKyAgICAgKiBAcmV0dXJuIGEgU3Ry
aW5nRW51bWVyYXRpb24gb3ZlciB0aGUgbG9jYWxlcyBhdmFpbGFibGUgYXQgdGhlIHRpbWUgb2Yg
dGhlIGNhbGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBzdGF0aWMgU3Ry
aW5nRW51bWVyYXRpb24qIFVfRVhQT1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKHZvaWQpOworI2Vu
ZGlmCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUgZm9yIHRoaXMgYnJlYWsg
aXRlcmF0b3IuIFR3byBmbGF2b3JzIGFyZSBhdmFpbGFibGU6IHZhbGlkIGFuZAorICAgICAqIGFj
dHVhbCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgTG9jYWxl
IGdldExvY2FsZShVTG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwgVUVycm9yQ29kZSYgc3RhdHVzKSBj
b25zdDsKKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoqIEdldCB0aGUgbG9j
YWxlIGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yIG9iamVjdC4gWW91IGNhbiBjaG9vc2UgYmV0d2Vl
biB2YWxpZCBhbmQgYWN0dWFsIGxvY2FsZS4KKyAgICAgKiAgQHBhcmFtIHR5cGUgdHlwZSBvZiB0
aGUgbG9jYWxlIHdlJ3JlIGxvb2tpbmcgZm9yICh2YWxpZCBvciBhY3R1YWwpCisgICAgICogIEBw
YXJhbSBzdGF0dXMgZXJyb3IgY29kZSBmb3IgdGhlIG9wZXJhdGlvbgorICAgICAqICBAcmV0dXJu
IHRoZSBsb2NhbGUKKyAgICAgKiAgQGludGVybmFsCisgICAgICovCisgICAgY29uc3QgY2hhciAq
Z2V0TG9jYWxlSUQoVUxvY0RhdGFMb2NhbGVUeXBlIHR5cGUsIFVFcnJvckNvZGUmIHN0YXR1cykg
Y29uc3Q7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworICAgIC8qKgorICAg
ICAqICBTZXQgdGhlIHN1YmplY3QgdGV4dCBzdHJpbmcgdXBvbiB3aGljaCB0aGUgYnJlYWsgaXRl
cmF0b3IgaXMgb3BlcmF0aW5nCisgICAgICogIHdpdGhvdXQgY2hhbmdpbmcgYW55IG90aGVyIGFz
cGVjdCBvZiB0aGUgbWF0Y2hpbmcgc3RhdGUuCisgICAgICogIFRoZSBuZXcgYW5kIHByZXZpb3Vz
IHRleHQgc3RyaW5ncyBtdXN0IGhhdmUgdGhlIHNhbWUgY29udGVudC4KKyAgICAgKgorICAgICAq
ICBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2UgaW4gZW52aXJvbm1lbnRzIHdoZXJl
IElDVSBpcyBvcGVyYXRpbmcgb24KKyAgICAgKiAgc3RyaW5ncyB0aGF0IG1heSBtb3ZlIGFyb3Vu
ZCBpbiBtZW1vcnkuICBJdCBwcm92aWRlcyBhIG1lY2hhbmlzbSBmb3Igbm90aWZ5aW5nCisgICAg
ICogIElDVSB0aGF0IHRoZSBzdHJpbmcgaGFzIGJlZW4gcmVsb2NhdGVkLCBhbmQgcHJvdmlkaW5n
IGEgbmV3IFVUZXh0IHRvIGFjY2VzcyB0aGUKKyAgICAgKiAgc3RyaW5nIGluIGl0cyBuZXcgcG9z
aXRpb24uCisgICAgICoKKyAgICAgKiAgTm90ZSB0aGF0IHRoZSBicmVhayBpdGVyYXRvciBpbXBs
ZW1lbnRhdGlvbiBuZXZlciBjb3BpZXMgdGhlIHVuZGVybHlpbmcgdGV4dAorICAgICAqICBvZiBh
IHN0cmluZyBiZWluZyBwcm9jZXNzZWQsIGJ1dCBhbHdheXMgb3BlcmF0ZXMgZGlyZWN0bHkgb24g
dGhlIG9yaWdpbmFsIHRleHQKKyAgICAgKiAgcHJvdmlkZWQgYnkgdGhlIHVzZXIuIFJlZnJlc2hp
bmcgc2ltcGx5IGRyb3BzIHRoZSByZWZlcmVuY2VzIHRvIHRoZSBvbGQgdGV4dAorICAgICAqICBh
bmQgcmVwbGFjZXMgdGhlbSB3aXRoIHJlZmVyZW5jZXMgdG8gdGhlIG5ldy4KKyAgICAgKgorICAg
ICAqICBDYXV0aW9uOiAgdGhpcyBmdW5jdGlvbiBpcyBub3JtYWxseSB1c2VkIG9ubHkgYnkgdmVy
eSBzcGVjaWFsaXplZCwKKyAgICAgKiAgc3lzdGVtLWxldmVsIGNvZGUuICBPbmUgZXhhbXBsZSB1
c2UgY2FzZSBpcyB3aXRoIGdhcmJhZ2UgY29sbGVjdGlvbiB0aGF0IG1vdmVzCisgICAgICogIHRo
ZSB0ZXh0IGluIG1lbW9yeS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnB1dCAgICAgIFRoZSBu
ZXcgKG1vdmVkKSB0ZXh0IHN0cmluZy4KKyAgICAgKiBAcGFyYW0gc3RhdHVzICAgICBSZWNlaXZl
cyBlcnJvcnMgZGV0ZWN0ZWQgYnkgdGhpcyBmdW5jdGlvbi4KKyAgICAgKiBAcmV0dXJuICAgICAg
ICAgICAqdGhpcworICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgNDkKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIEJyZWFrSXRlcmF0b3IgJnJlZnJlc2hJbnB1dFRleHQoVVRleHQgKmlucHV0LCBVRXJy
b3JDb2RlICZzdGF0dXMpID0gMDsKKworIHByaXZhdGU6CisgICAgc3RhdGljIEJyZWFrSXRlcmF0
b3IqIGJ1aWxkSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2MsIGNvbnN0IGNoYXIgKnR5cGUsIGlu
dDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRv
ciogY3JlYXRlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2MsIGludDMyX3Qga2luZCwgVUVycm9y
Q29kZSYgc3RhdHVzKTsKKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogbWFrZUluc3RhbmNlKGNv
bnN0IExvY2FsZSYgbG9jLCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAg
ICBmcmllbmQgY2xhc3MgSUNVQnJlYWtJdGVyYXRvckZhY3Rvcnk7CisgICAgZnJpZW5kIGNsYXNz
IElDVUJyZWFrSXRlcmF0b3JTZXJ2aWNlOworCitwcm90ZWN0ZWQ6CisgICAgLy8gRG8gbm90IGVu
Y2xvc2UgcHJvdGVjdGVkIGRlZmF1bHQvY29weSBjb25zdHJ1Y3RvcnMgd2l0aCAjaWZuZGVmIFVf
SElERV9JTlRFUk5BTF9BUEkKKyAgICAvLyBvciBlbHNlIHRoZSBjb21waWxlciB3aWxsIGNyZWF0
ZSBhIHB1YmxpYyBvbmVzLgorICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJhdG9y
KCk7CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFrSXRlcmF0b3IgKGNvbnN0IEJyZWFr
SXRlcmF0b3IgJm90aGVyKSA6IFVPYmplY3Qob3RoZXIpIHt9CisgICAgLyoqIEBpbnRlcm5hbCAq
LworICAgIEJyZWFrSXRlcmF0b3IgKGNvbnN0IExvY2FsZSYgdmFsaWQsIGNvbnN0IExvY2FsZSYg
YWN0dWFsKTsKK3ByaXZhdGU6CisKKyAgICAvKiogQGludGVybmFsICovCisgICAgY2hhciBhY3R1
YWxMb2NhbGVbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07CisgICAgY2hhciB2YWxpZExvY2FsZVtV
TE9DX0ZVTExOQU1FX0NBUEFDSVRZXTsKKworICAgIC8qKgorICAgICAqIFRoZSBhc3NpZ25tZW50
IG9wZXJhdG9yIGhhcyBubyByZWFsIGltcGxlbWVudGF0aW9uLgorICAgICAqIEl0J3MgcHJvdmlk
ZWQgdG8gbWFrZSB0aGUgY29tcGlsZXIgaGFwcHkuIERvIG5vdCBjYWxsLgorICAgICAqLworICAg
IEJyZWFrSXRlcmF0b3ImIG9wZXJhdG9yPShjb25zdCBCcmVha0l0ZXJhdG9yJik7Cit9OworCisj
aWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQorCitpbmxpbmUgVUJvb2wgQnJlYWtJdGVyYXRv
cjo6aXNCdWZmZXJDbG9uZSgpCit7CisgICAgcmV0dXJuIEZBTFNFOworfQorCisjZW5kaWYgLyog
VV9ISURFX0RFUFJFQ0FURURfQVBJICovCisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYgLyog
I2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiAqLworCisjZW5kaWYgLy8gX0JSS0lURVIK
Ky8vZW9mCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmggYi9T
b3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThkNjUwOTBhNDBh
NjA4NTk1MWM3MzMwN2Y3NGFjZjgzYmExYmJjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaApAQCAtMCwwICsxLDcyMiBAQAorLyoKKyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5l
c3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIENIQVJJVEVSX0gKKyNkZWZpbmUg
Q0hBUklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmlj
b2RlL3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VuaXN0ci5oIgorLyoqCisgKiBcZmls
ZQorICogXGJyaWVmIEMrKyBBUEk6IENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVT
UEFDRV9CRUdJTgorLyoqCisgKiBBYnN0cmFjdCBjbGFzcyB0aGF0IGRlZmluZXMgYW4gQVBJIGZv
ciBmb3J3YXJkLW9ubHkgaXRlcmF0aW9uCisgKiBvbiB0ZXh0IG9iamVjdHMuCisgKiBUaGlzIGlz
IGEgbWluaW1hbCBpbnRlcmZhY2UgZm9yIGl0ZXJhdGlvbiB3aXRob3V0IHJhbmRvbSBhY2Nlc3MK
KyAqIG9yIGJhY2t3YXJkcyBpdGVyYXRpb24uIEl0IGlzIGVzcGVjaWFsbHkgdXNlZnVsIGZvciB3
cmFwcGluZworICogc3RyZWFtcyB3aXRoIGNvbnZlcnRlcnMgaW50byBhbiBvYmplY3QgZm9yIGNv
bGxhdGlvbiBvcgorICogbm9ybWFsaXphdGlvbi4KKyAqCisgKiA8cD5DaGFyYWN0ZXJzIGNhbiBi
ZSBhY2Nlc3NlZCBpbiB0d28gd2F5czogYXMgY29kZSB1bml0cyBvciBhcworICogY29kZSBwb2lu
dHMuCisgKiBVbmljb2RlIGNvZGUgcG9pbnRzIGFyZSAyMS1iaXQgaW50ZWdlcnMgYW5kIGFyZSB0
aGUgc2NhbGFyIHZhbHVlcworICogb2YgVW5pY29kZSBjaGFyYWN0ZXJzLiBJQ1UgdXNlcyB0aGUg
dHlwZSBVQ2hhcjMyIGZvciB0aGVtLgorICogVW5pY29kZSBjb2RlIHVuaXRzIGFyZSB0aGUgc3Rv
cmFnZSB1bml0cyBvZiBhIGdpdmVuCisgKiBVbmljb2RlL1VDUyBUcmFuc2Zvcm1hdGlvbiBGb3Jt
YXQgKGEgY2hhcmFjdGVyIGVuY29kaW5nIHNjaGVtZSkuCisgKiBXaXRoIFVURi0xNiwgYWxsIGNv
ZGUgcG9pbnRzIGNhbiBiZSByZXByZXNlbnRlZCB3aXRoIGVpdGhlciBvbmUKKyAqIG9yIHR3byBj
b2RlIHVuaXRzICgic3Vycm9nYXRlcyIpLgorICogU3RyaW5nIHN0b3JhZ2UgaXMgdHlwaWNhbGx5
IGJhc2VkIG9uIGNvZGUgdW5pdHMsIHdoaWxlIHByb3BlcnRpZXMKKyAqIG9mIGNoYXJhY3RlcnMg
YXJlIHR5cGljYWxseSBkZXRlcm1pbmVkIHVzaW5nIGNvZGUgcG9pbnQgdmFsdWVzLgorICogU29t
ZSBwcm9jZXNzZXMgbWF5IGJlIGRlc2lnbmVkIHRvIHdvcmsgd2l0aCBzZXF1ZW5jZXMgb2YgY29k
ZSB1bml0cywKKyAqIG9yIGl0IG1heSBiZSBrbm93biB0aGF0IGFsbCBjaGFyYWN0ZXJzIHRoYXQg
YXJlIGltcG9ydGFudCB0byBhbgorICogYWxnb3JpdGhtIGNhbiBiZSByZXByZXNlbnRlZCB3aXRo
IHNpbmdsZSBjb2RlIHVuaXRzLgorICogT3RoZXIgcHJvY2Vzc2VzIHdpbGwgbmVlZCB0byB1c2Ug
dGhlIGNvZGUgcG9pbnQgYWNjZXNzIGZ1bmN0aW9ucy48L3A+CisgKgorICogPHA+Rm9yd2FyZENo
YXJhY3Rlckl0ZXJhdG9yIHByb3ZpZGVzIG5leHRQb3N0SW5jKCkgdG8gYWNjZXNzCisgKiBhIGNv
ZGUgdW5pdCBhbmQgYWR2YW5jZSBhbiBpbnRlcm5hbCBwb3NpdGlvbiBpbnRvIHRoZSB0ZXh0IG9i
amVjdCwKKyAqIHNpbWlsYXIgdG8gYSA8Y29kZT5yZXR1cm4gdGV4dFtwb3NpdGlvbisrXTwvY29k
ZT4uPGJyPgorICogSXQgcHJvdmlkZXMgbmV4dDMyUG9zdEluYygpIHRvIGFjY2VzcyBhIGNvZGUg
cG9pbnQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwKKyAqIHBvc2l0aW9uLjwvcD4KKyAqCisgKiA8
cD5uZXh0MzJQb3N0SW5jKCkgYXNzdW1lcyB0aGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIHRo
YXQgb2YKKyAqIHRoZSBiZWdpbm5pbmcgb2YgYSBjb2RlIHBvaW50LCBpLmUuLCBvZiBpdHMgZmly
c3QgY29kZSB1bml0LgorICogQWZ0ZXIgbmV4dDMyUG9zdEluYygpLCB0aGlzIHdpbGwgYmUgdHJ1
ZSBhZ2Fpbi4KKyAqIEluIGdlbmVyYWwsIGFjY2VzcyB0byBjb2RlIHVuaXRzIGFuZCBjb2RlIHBv
aW50cyBpbiB0aGUgc2FtZQorICogaXRlcmF0aW9uIGxvb3Agc2hvdWxkIG5vdCBiZSBtaXhlZC4g
SW4gVVRGLTE2LCBpZiB0aGUgY3VycmVudCBwb3NpdGlvbgorICogaXMgb24gYSBzZWNvbmQgY29k
ZSB1bml0IChMb3cgU3Vycm9nYXRlKSwgdGhlbiBvbmx5IHRoYXQgY29kZSB1bml0CisgKiBpcyBy
ZXR1cm5lZCBldmVuIGJ5IG5leHQzMlBvc3RJbmMoKS48L3A+CisgKgorICogPHA+Rm9yIGl0ZXJh
dGlvbiB3aXRoIGVpdGhlciBmdW5jdGlvbiwgdGhlcmUgYXJlIHR3byB3YXlzIHRvCisgKiBjaGVj
ayBmb3IgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLiBXaGVuIHRoZXJlIGFyZSBubyBtb3JlCisg
KiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0IG9iamVjdDoKKyAqIDx1bD4KKyAqIDxsaT5UaGUgaGFz
TmV4dCgpIGZ1bmN0aW9uIHJldHVybnMgRkFMU0UuPC9saT4KKyAqIDxsaT5uZXh0UG9zdEluYygp
IGFuZCBuZXh0MzJQb3N0SW5jKCkgcmV0dXJuIERPTkUKKyAqICAgICB3aGVuIG9uZSBhdHRlbXB0
cyB0byByZWFkIGJleW9uZCB0aGUgZW5kIG9mIHRoZSB0ZXh0IG9iamVjdC48L2xpPgorICogPC91
bD4KKyAqCisgKiBFeGFtcGxlOgorICogXGNvZGUgCisgKiB2b2lkIGZ1bmN0aW9uMShGb3J3YXJk
Q2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIzMiBjOworICogICAgIHdoaWxl
KGl0Lmhhc05leHQoKSkgeworICogICAgICAgICBjPWl0Lm5leHQzMlBvc3RJbmMoKTsKKyAqICAg
ICAgICAgLy8gdXNlIGMKKyAqICAgICB9CisgKiB9CisgKgorICogdm9pZCBmdW5jdGlvbjEoRm9y
d2FyZENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyIGM7CisgKiAgICAgd2hp
bGUoKGM9aXQubmV4dFBvc3RJbmMoKSkhPUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjo6RE9ORSkg
eworICogICAgICAgICAvLyB1c2UgYworICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAq
IDwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1YmxpYzoKKyAgICAv
KioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBtb3N0IG9mIEZvcndhcmRDaGFyYWN0ZXJJdGVy
YXRvcidzIGZ1bmN0aW9ucworICAgICAqIHdoZW4gdGhlIGl0ZXJhdG9yIGhhcyByZWFjaGVkIHRo
ZSBsaW1pdHMgb2YgaXRzIGl0ZXJhdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBlbnVtIHsgRE9ORSA9IDB4ZmZmZiB9OworICAgIAorICAgIC8qKgorICAgICAqIERl
c3RydWN0b3IuICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IH5Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHRydWUgd2hlbiBib3RoIGl0ZXJhdG9ycyByZWZlciB0byB0aGUgc2FtZQorICAgICAqIGNo
YXJhY3RlciBpbiB0aGUgc2FtZSBjaGFyYWN0ZXItc3RvcmFnZSBvYmplY3QuICAKKyAgICAgKiBA
cGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZv
ciBlcXVhbGl0eQorICAgICAqIEByZXR1cm4gdHJ1ZSB3aGVuIGJvdGggaXRlcmF0b3JzIHJlZmVy
IHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIGNoYXJhY3Rlci1zdG9y
YWdlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
VUJvb2wgb3BlcmF0b3I9PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNv
bnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgd2hlbiB0aGUgaXRl
cmF0b3JzIHJlZmVyIHRvIGRpZmZlcmVudAorICAgICAqIHRleHQtc3RvcmFnZSBvYmplY3RzLCBv
ciB0byBkaWZmZXJlbnQgY2hhcmFjdGVycyBpbiB0aGUKKyAgICAgKiBzYW1lIHRleHQtc3RvcmFn
ZSBvYmplY3QuICAKKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5CisgICAgICogQHJldHVybiB0cnVlIHdo
ZW4gdGhlIGl0ZXJhdG9ycyByZWZlciB0byBkaWZmZXJlbnQKKyAgICAgKiB0ZXh0LXN0b3JhZ2Ug
b2JqZWN0cywgb3IgdG8gZGlmZmVyZW50IGNoYXJhY3RlcnMgaW4gdGhlCisgICAgICogc2FtZSB0
ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
aW5saW5lIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0
aGF0KSBjb25zdDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUg
Zm9yIHRoaXMgaXRlcmF0b3IuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBoYXNoIGNvZGUuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGhhc2hDb2Rl
KHZvaWQpIGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgVUNsYXNz
SUQgZm9yIHRoaXMgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICgicG9vciBtYW4ncworICAgICAq
IFJUVEkiKS48UD4gRGVzcGl0ZSB0aGUgZmFjdCB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgcHVibGlj
LAorICAgICAqIERPIE5PVCBDT05TSURFUiBJVCBQQVJUIE9GIENIQVJBQ1RFUklURVJBVE9SJ1Mg
QVBJISAKKyAgICAgKiBAcmV0dXJuIGEgVUNsYXNzSUQgZm9yIHRoaXMgRm9yd2FyZENoYXJhY3Rl
ckl0ZXJhdG9yIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
VUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3QgPSAwOworICAgIAorICAgIC8q
KgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSB1bml0IGZvciByZXR1cm5pbmcgYW5kIGFk
dmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgdW5pdAorICAgICAqIGluIHRoZSBpdGVyYXRpb24gcmFu
Z2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8g
bW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgICAqIEByZXR1cm4g
dGhlIGN1cnJlbnQgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0UG9zdEluYyh2b2lkKSA9IDA7CisgICAgCisg
ICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBjb2RlIHBvaW50IGZvciByZXR1cm5pbmcg
YW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICAgKiBpbiB0aGUgaXRlcmF0
aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAg
ICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICog
QHJldHVybiB0aGUgY3VycmVudCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzJQb3N0SW5jKHZvaWQpID0g
MDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBt
b3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAgKiBhdCBvciBhZnRlciB0aGUgY3Vy
cmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIFRoaXMgaXMgdXNl
ZCB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9zdEluYygpIGluIGZvcndhcmQKKyAgICAg
KiBpdGVyYXRpb24uCisgICAgICogQHJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUg
Y29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50
IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzTmV4dCgpID0gMDsKKyAgICAK
K3Byb3RlY3RlZDoKKyAgICAvKiogRGVmYXVsdCBjb25zdHJ1Y3RvciB0byBiZSBvdmVycmlkZGVu
IGluIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3MuIEBzdGFibGUgSUNVIDIuMCovCisgICAgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgCisgICAgLyoqIENvcHkgY29uc3RydWN0b3IgdG8g
YmUgb3ZlcnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLiBAc3RhYmxlIElDVSAyLjAq
LworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRl
cmF0b3IgJm90aGVyKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9y
IHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGluZyBjbGFzcy4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgJm9wZXJh
dG9yPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImKSB7IHJldHVybiAqdGhpczsgfQor
fTsKKworLyoqCisgKiBBYnN0cmFjdCBjbGFzcyB0aGF0IGRlZmluZXMgYW4gQVBJIGZvciBpdGVy
YXRpb24KKyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMgaXMgYW4gaW50ZXJmYWNlIGZvciBm
b3J3YXJkIGFuZCBiYWNrd2FyZCBpdGVyYXRpb24KKyAqIGFuZCByYW5kb20gYWNjZXNzIGludG8g
YSB0ZXh0IG9iamVjdC4KKyAqCisgKiA8cD5UaGUgQVBJIHByb3ZpZGVzIGJhY2t3YXJkIGNvbXBh
dGliaWxpdHkgdG8gdGhlIEphdmEgYW5kIG9sZGVyIElDVQorICogQ2hhcmFjdGVySXRlcmF0b3Ig
Y2xhc3NlcyBidXQgZXh0ZW5kcyB0aGVtIHNpZ25pZmljYW50bHk6CisgKiA8b2w+CisgKiA8bGk+
Q2hhcmFjdGVySXRlcmF0b3IgaXMgbm93IGEgc3ViY2xhc3Mgb2YgRm9yd2FyZENoYXJhY3Rlckl0
ZXJhdG9yLjwvbGk+CisgKiA8bGk+V2hpbGUgdGhlIG9sZCBBUEkgZnVuY3Rpb25zIHByb3ZpZGVk
IGZvcndhcmQgaXRlcmF0aW9uIHdpdGgKKyAqICAgICAicHJlLWluY3JlbWVudCIgc2VtYW50aWNz
LCB0aGUgbmV3IG9uZSBhbHNvIHByb3ZpZGVzIGZ1bmN0aW9ucworICogICAgIHdpdGggInBvc3Qt
aW5jcmVtZW50IiBzZW1hbnRpY3MuIFRoZXkgYXJlIG1vcmUgZWZmaWNpZW50IGFuZCBzaG91bGQK
KyAqICAgICBiZSB0aGUgcHJlZmVycmVkIGl0ZXJhdG9yIGZ1bmN0aW9ucyBmb3IgbmV3IGltcGxl
bWVudGF0aW9ucy4KKyAqICAgICBUaGUgYmFja3dhcmQgaXRlcmF0aW9uIGFsd2F5cyBoYWQgInBy
ZS1kZWNyZW1lbnQiIHNlbWFudGljcywgd2hpY2gKKyAqICAgICBhcmUgZWZmaWNpZW50LjwvbGk+
CisgKiA8bGk+SnVzdCBsaWtlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciwgaXQgcHJvdmlkZXMg
YWNjZXNzIHRvCisgKiAgICAgYm90aCBjb2RlIHVuaXRzIGFuZCBjb2RlIHBvaW50cy4gQ29kZSBw
b2ludCBhY2Nlc3MgdmVyc2lvbnMgYXJlIGF2YWlsYWJsZQorICogICAgIGZvciB0aGUgb2xkIGFu
ZCB0aGUgbmV3IGl0ZXJhdGlvbiBzZW1hbnRpY3MuPC9saT4KKyAqIDxsaT5UaGVyZSBhcmUgbmV3
IGZ1bmN0aW9ucyBmb3Igc2V0dGluZyBhbmQgbW92aW5nIHRoZSBjdXJyZW50IHBvc2l0aW9uCisg
KiAgICAgd2l0aG91dCByZXR1cm5pbmcgYSBjaGFyYWN0ZXIsIGZvciBlZmZpY2llbmN5LjwvbGk+
CisgKiA8L29sPgorICoKKyAqIFNlZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgZm9yIGV4YW1w
bGVzIGZvciB1c2luZyB0aGUgbmV3IGZvcndhcmQgaXRlcmF0aW9uCisgKiBmdW5jdGlvbnMuIEZv
ciBiYWNrd2FyZCBpdGVyYXRpb24sIHRoZXJlIGlzIGFsc28gYSBoYXNQcmV2aW91cygpIGZ1bmN0
aW9uCisgKiB0aGF0IGNhbiBiZSB1c2VkIGFuYWxvZ291c2x5IHRvIGhhc05leHQoKS4KKyAqIFRo
ZSBvbGQgZnVuY3Rpb25zIHdvcmsgYXMgYmVmb3JlIGFuZCBhcmUgc2hvd24gYmVsb3cuPC9wPgor
ICoKKyAqIDxwPkV4YW1wbGVzIGZvciBzb21lIG9mIHRoZSBuZXcgZnVuY3Rpb25zOjwvcD4KKyAq
CisgKiBGb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIGhhc05leHQoKToKKyAqIFxjb2RlCisgKiB2b2lk
IGZvcndhcmQxKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyMzIgYzsKKyAq
ICAgICBmb3IoaXQuc2V0VG9TdGFydCgpOyBpdC5oYXNOZXh0KCk7KSB7CisgKiAgICAgICAgIGM9
aXQubmV4dDMyUG9zdEluYygpOworICogICAgICAgICAvLyB1c2UgYworICogICAgIH0KKyAqICB9
CisgKiBcZW5kY29kZQorICogRm9yd2FyZCBpdGVyYXRpb24gbW9yZSBzaW1pbGFyIHRvIGxvb3Bz
IHdpdGggdGhlIG9sZCBmb3J3YXJkIGl0ZXJhdGlvbiwKKyAqIHNob3dpbmcgYSB3YXkgdG8gY29u
dmVydCBzaW1wbGUgZm9yKCkgbG9vcHM6CisgKiBcY29kZQorICogdm9pZCBmb3J3YXJkMihDaGFy
YWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhciBjOworICogICAgIGZvcihjPWl0LmZp
cnN0UG9zdEluYygpOyBjIT1DaGFyYWN0ZXJJdGVyYXRvcjo6RE9ORTsgYz1pdC5uZXh0UG9zdElu
YygpKSB7CisgKiAgICAgICAgICAvLyB1c2UgYworICogICAgICB9CisgKiB9CisgKiBcZW5kY29k
ZQorICogQmFja3dhcmQgaXRlcmF0aW9uIHdpdGggc2V0VG9FbmQoKSBhbmQgaGFzUHJldmlvdXMo
KToKKyAqIFxjb2RlCisgKiAgdm9pZCBiYWNrd2FyZDEoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7
CisgKiAgICAgIFVDaGFyMzIgYzsKKyAqICAgICAgZm9yKGl0LnNldFRvRW5kKCk7IGl0Lmhhc1By
ZXZpb3VzKCk7KSB7CisgKiAgICAgICAgIGM9aXQucHJldmlvdXMzMigpOworICogICAgICAgICAg
Ly8gdXNlIGMKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiBCYWNrd2FyZCBpdGVy
YXRpb24gd2l0aCBhIG1vcmUgdHJhZGl0aW9uYWwgZm9yKCkgbG9vcDoKKyAqIFxjb2RlCisgKiB2
b2lkIGJhY2t3YXJkMihDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhciBjOwor
ICogICAgIGZvcihjPWl0Lmxhc3QoKTsgYyE9Q2hhcmFjdGVySXRlcmF0b3I6OkRPTkU7IGM9aXQu
cHJldmlvdXMoKSkgeworICogICAgICAgICAvLyB1c2UgYworICogICAgICB9CisgKiAgfQorICog
XGVuZGNvZGUKKyAqCisgKiBFeGFtcGxlIGZvciByYW5kb20gYWNjZXNzOgorICogXGNvZGUKKyAq
ICB2b2lkIHJhbmRvbShDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICAgLy8gc2V0IHRv
IHRoZSB0aGlyZCBjb2RlIHBvaW50IGZyb20gdGhlIGJlZ2lubmluZworICogICAgICBpdC5tb3Zl
MzIoMywgQ2hhcmFjdGVySXRlcmF0b3I6OmtTdGFydCk7CisgKiAgICAgIC8vIGdldCBhIGNvZGUg
cG9pbnQgZnJvbSBoZXJlIHdpdGhvdXQgbW92aW5nIHRoZSBwb3NpdGlvbgorICogICAgICBVQ2hh
cjMyIGM9aXQuY3VycmVudDMyKCk7CisgKiAgICAgIC8vIGdldCB0aGUgcG9zaXRpb24KKyAqICAg
ICAgaW50MzJfdCBwb3M9aXQuZ2V0SW5kZXgoKTsKKyAqICAgICAgLy8gZ2V0IHRoZSBwcmV2aW91
cyBjb2RlIHVuaXQKKyAqICAgICAgVUNoYXIgdT1pdC5wcmV2aW91cygpOworICogICAgICAvLyBt
b3ZlIGJhY2sgb25lIG1vcmUgY29kZSB1bml0CisgKiAgICAgIGl0Lm1vdmUoLTEsIENoYXJhY3Rl
ckl0ZXJhdG9yOjprQ3VycmVudCk7CisgKiAgICAgIC8vIHNldCB0aGUgcG9zaXRpb24gYmFjayB0
byB3aGVyZSBpdCB3YXMKKyAqICAgICAgLy8gYW5kIHJlYWQgdGhlIHNhbWUgY29kZSBwb2ludCBj
IGFuZCBtb3ZlIGJleW9uZCBpdAorICogICAgICBpdC5zZXRJbmRleChwb3MpOworICogICAgICBp
ZihjIT1pdC5uZXh0MzJQb3N0SW5jKCkpIHsKKyAqICAgICAgICAgIGV4aXQoMSk7IC8vIENoYXJh
Y3Rlckl0ZXJhdG9yIGluY29uc2lzdGVudAorICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUK
KyAqCisgKiA8cD5FeGFtcGxlcywgZXNwZWNpYWxseSBmb3IgdGhlIG9sZCBBUEk6PC9wPgorICoK
KyAqIEZ1bmN0aW9uIHByb2Nlc3NpbmcgY2hhcmFjdGVycywgaW4gdGhpcyBleGFtcGxlIHNpbXBs
ZSBvdXRwdXQKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZvaWQgcHJvY2Vzc0NoYXIoIFVDaGFy
IGMgKQorICogIHsKKyAqICAgICAgY291dCA8PCAiICIgPDwgYzsKKyAqICB9CisgKiBcZW5kY29k
ZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSB0aGUgdGV4dCBmcm9tIHN0YXJ0IHRvIGZpbmlzaAor
ICogPHByZT4gCisgKiBcY29kZQorICogIHZvaWQgdHJhdmVyc2VGb3J3YXJkKENoYXJhY3Rlckl0
ZXJhdG9yJiBpdGVyKQorICogIHsKKyAqICAgICAgZm9yKFVDaGFyIGMgPSBpdGVyLmZpcnN0KCk7
IGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgYyA9IGl0ZXIubmV4dCgpKSB7CisgKiAgICAg
ICAgICBwcm9jZXNzQ2hhcihjKTsKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8
L3ByZT4KKyAqIFRyYXZlcnNlIHRoZSB0ZXh0IGJhY2t3YXJkcywgZnJvbSBlbmQgdG8gc3RhcnQK
KyAqIDxwcmU+CisgKiBcY29kZQorICogIHZvaWQgdHJhdmVyc2VCYWNrd2FyZChDaGFyYWN0ZXJJ
dGVyYXRvciYgaXRlcikKKyAqICB7CisgKiAgICAgIGZvcihVQ2hhciBjID0gaXRlci5sYXN0KCk7
IGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgYyA9IGl0ZXIucHJldmlvdXMoKSkgeworICog
ICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQor
ICogPC9wcmU+CisgKiBUcmF2ZXJzZSBib3RoIGZvcndhcmQgYW5kIGJhY2t3YXJkIGZyb20gYSBn
aXZlbiBwb3NpdGlvbiBpbiB0aGUgdGV4dC4gCisgKiBDYWxscyB0byBub3RCb3VuZGFyeSgpIGlu
IHRoaXMgZXhhbXBsZSByZXByZXNlbnRzIHNvbWUgYWRkaXRpb25hbCBzdG9wcGluZyBjcml0ZXJp
YS4KKyAqIDxwcmU+CisgKiBcY29kZQorICogdm9pZCB0cmF2ZXJzZU91dChDaGFyYWN0ZXJJdGVy
YXRvciYgaXRlciwgaW50MzJfdCBwb3MpCisgKiB7CisgKiAgICAgIFVDaGFyIGM7CisgKiAgICAg
IGZvciAoYyA9IGl0ZXIuc2V0SW5kZXgocG9zKTsKKyAqICAgICAgYyAhPSBDaGFyYWN0ZXJJdGVy
YXRvci5ET05FICYmIChVbmljb2RlOjppc0xldHRlcihjKSB8fCBVbmljb2RlOjppc0RpZ2l0KGMp
KTsKKyAqICAgICAgICAgIGMgPSBpdGVyLm5leHQoKSkge30KKyAqICAgICAgaW50MzJfdCBlbmQg
PSBpdGVyLmdldEluZGV4KCk7CisgKiAgICAgIGZvciAoYyA9IGl0ZXIuc2V0SW5kZXgocG9zKTsK
KyAqICAgICAgICAgIGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJiAoVW5pY29kZTo6aXNM
ZXR0ZXIoYykgfHwgVW5pY29kZTo6aXNEaWdpdChjKSk7CisgKiAgICAgICAgICBjID0gaXRlci5w
cmV2aW91cygpKSB7fQorICogICAgICBpbnQzMl90IHN0YXJ0ID0gaXRlci5nZXRJbmRleCgpICsg
MTsKKyAqICAKKyAqICAgICAgY291dCA8PCAic3RhcnQ6ICIgPDwgc3RhcnQgPDwgIiBlbmQ6ICIg
PDwgZW5kIDw8IGVuZGw7CisgKiAgICAgIGZvciAoYyA9IGl0ZXIuc2V0SW5kZXgoc3RhcnQpOyBp
dGVyLmdldEluZGV4KCkgPCBlbmQ7IGMgPSBpdGVyLm5leHQoKSApIHsKKyAqICAgICAgICAgIHBy
b2Nlc3NDaGFyKGMpOworICogICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+Cisg
KiBDcmVhdGluZyBhIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGFuZCBjYWxsaW5nIHRoZSB0ZXN0
IGZ1bmN0aW9ucworICogPHByZT4KKyAqIFxjb2RlCisgKiAgdm9pZCBDaGFyYWN0ZXJJdGVyYXRv
cl9FeGFtcGxlKCB2b2lkICkKKyAqICAgeworICogICAgICAgY291dCA8PCBlbmRsIDw8ICI9PT09
PSBDaGFyYWN0ZXJJdGVyYXRvcl9FeGFtcGxlOiA9PT09PSIgPDwgZW5kbDsKKyAqICAgICAgIFVu
aWNvZGVTdHJpbmcgdGV4dCgiRWluIGtsZWluZXIgU2F0ei4iKTsKKyAqICAgICAgIFN0cmluZ0No
YXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yKHRleHQpOworICogICAgICAgY291dCA8PCAiLS0tLS0g
dHJhdmVyc2VGb3J3YXJkOiAtLS0tLS0tLS0tLSIgPDwgZW5kbDsKKyAqICAgICAgIHRyYXZlcnNl
Rm9yd2FyZCggaXRlcmF0b3IgKTsKKyAqICAgICAgIGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICIt
LS0tLSB0cmF2ZXJzZUJhY2t3YXJkOiAtLS0tLS0tLS0tIiA8PCBlbmRsOworICogICAgICAgdHJh
dmVyc2VCYWNrd2FyZCggaXRlcmF0b3IgKTsKKyAqICAgICAgIGNvdXQgPDwgZW5kbCA8PCBlbmRs
IDw8ICItLS0tLSB0cmF2ZXJzZU91dDogLS0tLS0tLS0tLS0tLS0tIiA8PCBlbmRsOworICogICAg
ICAgdHJhdmVyc2VPdXQoIGl0ZXJhdG9yLCA3ICk7CisgKiAgICAgICBjb3V0IDw8IGVuZGwgPDwg
ZW5kbCA8PCAiLS0tLS0iIDw8IGVuZGw7CisgKiAgIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4K
KyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIENoYXJhY3Rl
ckl0ZXJhdG9yIDogcHVibGljIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB7CitwdWJsaWM6Cisg
ICAgLyoqCisgICAgICogT3JpZ2luIGVudW1lcmF0aW9uIGZvciB0aGUgbW92ZSgpIGFuZCBtb3Zl
MzIoKSBmdW5jdGlvbnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgZW51
bSBFT3JpZ2luIHsga1N0YXJ0LCBrQ3VycmVudCwga0VuZCB9OworCisgICAgLyoqCisgICAgICog
RGVzdHJ1Y3Rvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IH5DaGFyYWN0ZXJJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHBvaW50
ZXIgdG8gYSBuZXcgQ2hhcmFjdGVySXRlcmF0b3Igb2YgdGhlIHNhbWUKKyAgICAgKiBjb25jcmV0
ZSBjbGFzcyBhcyB0aGlzIG9uZSwgYW5kIHJlZmVycmluZyB0byB0aGUgc2FtZQorICAgICAqIGNo
YXJhY3RlciBpbiB0aGUgc2FtZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IGFzIHRoaXMgb25lLiAgVGhl
CisgICAgICogY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyB0aGUgbmV3IGNsb25l
LiAgCisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBuZXcgQ2hhcmFjdGVySXRlcmF0b3IK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIENoYXJhY3Rlckl0
ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRo
ZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAgICAq
IGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAgICogVGhp
cyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0KCkuCisgICAgICog
QHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZp
cnN0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJl
ZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdl
LCByZXR1cm5zIHRoYXQgY29kZSB1bml0LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAgICog
dG8gdGhlIHNlY29uZCBjb2RlIHVuaXQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9T
dGFydCgpCisgICAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMoKS4K
KyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5n
ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAg
ICAgICAgZmlyc3RQb3N0SW5jKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRl
cmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwKKyAgICAgKiBUaGlzIGNh
biBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQzMigpLgorICAgICAqIE5v
dGUgdGhhdCBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0SW5jKCksIGJlZ2lubmluZyB3aXRo
LAorICAgICAqIGUuZy4sIHNldFRvU3RhcnQoKSBvciBmaXJzdFBvc3RJbmMoKSwgaXMgbW9yZSBl
ZmZpY2llbnQuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRl
cmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyKHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cwor
ICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQsIGFuZCBtb3Zl
cyB0aGUgcG9zaXRpb24KKyAgICAgKiB0byB0aGUgc2Vjb25kIGNvZGUgcG9pbnQuIFRoaXMgaXMg
YW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAgICogZm9yIGZvcndhcmQgaXRlcmF0
aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUg
cG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmlyc3QzMlBvc3RJbmModm9pZCk7CisK
KyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3Qg
Y29kZSB1bml0IG9yIGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLiBU
aGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGEgZm9yd2FyZAorICAgICAqIGl0ZXJhdGlvbiB3aXRo
IG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhlIHN0
YXJ0IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICBzZXRUb1N0YXJ0KCk7CisKKyAgICAv
KioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHVu
aXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUg
dW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRo
IHByZXZpb3VzKCkuCisgICAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHVuaXQuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGxhc3Qo
dm9pZCkgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0
byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiBy
YW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNl
ZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91czMyKCkuCisgICAgICogQHJldHVy
biB0aGUgbGFzdCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBsYXN0MzIodm9pZCkgPSAwOworCisgICAgLyoqCisg
ICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gdGhlIGVuZCBvZiBpdHMgaXRlcmF0aW9uIHJhbmdl
LCBqdXN0IGJlaGluZAorICAgICAqIHRoZSBsYXN0IGNvZGUgdW5pdCBvciBjb2RlIHBvaW50LiBU
aGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGEgYmFja3dhcmQKKyAgICAgKiBpdGVyYXRpb24gd2l0
aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBlbmQgcG9z
aXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIGlubGluZSBpbnQzMl90ICAgIHNldFRvRW5kKCk7CisKKyAgICAvKioKKyAgICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVu
aXQKKyAgICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVmZXJz
IHRvLCBhbmQKKyAgICAgKiByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgCisgICAgICogQHBhcmFt
IHBvc2l0aW9uIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdCBpbiB0aGUgdGV4dC1zdG9yYWdl
IG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0LgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBz
ZXRJbmRleChpbnQzMl90IHBvc2l0aW9uKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRo
ZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjb2RlIHBvaW50Cisg
ICAgICogdGhhdCBjb250YWlucyB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICAgKiBp
biB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAg
ICAgKiByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4KKyAgICAgKiBUaGUgY3VycmVudCBwb3NpdGlv
biBpcyBhZGp1c3RlZCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjb2RlIHBvaW50CisgICAgICog
KGl0cyBmaXJzdCBjb2RlIHVuaXQpLgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgInBvc2l0
aW9uIi10aCBjb2RlIHVuaXQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAcmV0
dXJuIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHNldEluZGV4MzIoaW50MzJfdCBw
b3NpdGlvbikgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29kZSB1bml0IHRo
ZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLiAKKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJy
ZW50IGNvZGUgdW5pdC4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBVQ2hhciAgICAgICAgIGN1cnJlbnQodm9pZCkgY29uc3QgPSAwOworICAgICAgICAKKyAg
ICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50
bHkgcmVmZXJzIHRvLiAgCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHBvaW50Lgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAg
ICBjdXJyZW50MzIodm9pZCkgY29uc3QgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBB
ZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAg
ICAqICh0b3dhcmQgZW5kSW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYg
dGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBE
T05FLgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0KHZvaWQpID0g
MDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSBw
b2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgpKSwg
YW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9y
ZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBOb3RlIHRoYXQg
aXRlcmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIHNlbWFudGljcyBpcyBsZXNzCisgICAgICog
ZWZmaWNpZW50IHRoYW4gaXRlcmF0aW9uIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1hbnRpY3MK
KyAgICAgKiB0aGF0IGlzIHByb3ZpZGVkIGJ5IG5leHQzMlBvc3RJbmMoKS4KKyAgICAgKiBAcmV0
dXJuIHRoZSBuZXh0IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMih2b2lkKSA9IDA7CisgICAgICAgIAor
ICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgc3RhcnRJbmRleCgpKSwgYW5kIHJldHVy
bnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgdW5p
dHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91
cyBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBVQ2hhciAgICAgICAgIHByZXZpb3VzKHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIEFk
dmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UK
KyAgICAgKiAodG93YXJkIHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2lu
dC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCBy
ZXR1cm5zIERPTkUuIAorICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQuIAor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAg
ICBwcmV2aW91czMyKHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgRkFMU0Ug
aWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgICAqIGJl
Zm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAq
IFRoaXMgaXMgdXNlZCB3aXRoIHByZXZpb3VzKCkgb3IgcHJldmlvdXMzMigpIGluIGJhY2t3YXJk
CisgICAgICogaXRlcmF0aW9uLgorICAgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5v
IG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgICAqIGJlZm9yZSB0aGUgY3VycmVu
dCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLCByZXR1cm4gVFJVRSBvdGhlcndpc2Uu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCAgICAg
ICAgaGFzUHJldmlvdXMoKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1l
cmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBv
ZiB0aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGZpcnN0KCkuICBTaW5jZSBpdCdzCisgICAgICog
cG9zc2libGUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgYWNyb3NzIG9ubHkK
KyAgICAgKiBwYXJ0IG9mIGEgdGV4dC1zdG9yYWdlIG9iamVjdCwgdGhpcyBudW1iZXIgaXNuJ3QK
KyAgICAgKiBuZWNlc3NhcmlseSAwLiAgCisgICAgICogQHJldHVybnMgdGhlIG51bWVyaWMgaW5k
ZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBj
aGFyYWN0ZXIgcmV0dXJuZWQgYnkgZmlyc3QoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBzdGFydEluZGV4KHZvaWQpIGNvbnN0Owor
ICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRo
ZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgcG9zaXRpb24g
aW1tZWRpYXRlbHkgQkVZT05EIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiByZXR1cm5lZCBieSBsYXN0
KCkuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5n
IHRleHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgcG9zaXRpb24gaW1tZWRpYXRlbHkg
QkVZT05EIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiByZXR1cm5lZCBieSBsYXN0KCkuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAgZW5kSW5k
ZXgodm9pZCkgY29uc3Q7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51
bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0
IG9mIHRoZSBjaGFyYWN0ZXIgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8KKyAgICAg
KiAoaS5lLiwgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBjdXJyZW50KCkpLiAgCisgICAgICog
QHJldHVybiB0aGUgbnVtYmVyaWMgaW5kZXggaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3Qgb2Yg
CisgICAgICogdGhlIGNoYXJhY3RlciB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0bwor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgICAg
IGdldEluZGV4KHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGVu
Z3RoIG9mIHRoZSBlbnRpcmUgdGV4dCBpbiB0aGUgdW5kZXJseWluZworICAgICAqIHRleHQtc3Rv
cmFnZSBvYmplY3QuCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBlbnRpcmUgdGV4
dCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIGlubGluZSBpbnQzMl90ICAgICAgICAgICBnZXRMZW5ndGgoKSBjb25zdDsKKwor
ICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRo
ZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2
ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAgICogVGhlIG1vdmVtZW50IGlz
IGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgdW5pdHMgZm9yd2FyZAorICAgICAqIG9yIGJh
Y2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAgICAg
KiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdpbi4gQSBwb3NpdGl2
ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMgYmFj
a3dhcmQuCisgICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwg
a0N1cnJlbnQsIGtFbmR9CisgICAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92ZShp
bnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbikgPSAwOworCisgICAgLyoqCisgICAgICogTW92
ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0
aGUKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBv
c2l0aW9uIGl0c2VsZi4KKyAgICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJl
cnMgb2YgY29kZSBwb2ludHMgZm9yd2FyZAorICAgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlp
bmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAgICAgKiBAcGFyYW0gZGVsdGEgdGhl
IHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3
YXJkOworICAgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAgICogQHBh
cmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9Cisg
ICAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92ZTMyKGludDMyX3QgZGVsdGEsIEVP
cmlnaW4gb3JpZ2luKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDb3BpZXMgdGhlIHRleHQgdW5k
ZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcKKyAgICAgKiByZWZlcnJlZCB0byBi
eSAicmVzdWx0Ii4gIAorICAgICAqIEBwYXJhbSByZXN1bHQgUmVjZWl2ZXMgYSBjb3B5IG9mIHRo
ZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4gIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0cmluZyYgIHJl
c3VsdCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgLyoqCisgICAgICogRW1wdHkgY29uc3RydWN0
b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0
b3IoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLCBqdXN0IHNldHRpbmcgdGhlIGxl
bmd0aCBmaWVsZCBpbiB0aGlzIGJhc2UgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoaW50MzJfdCBsZW5ndGgpOworCisgICAgLyoq
CisgICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoIGFuZCBwb3NpdGlv
biBmaWVsZHMgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90IHBvc2l0
aW9uKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLCBqdXN0IHNldHRpbmcgdGhlIGxl
bmd0aCwgc3RhcnQsIGVuZCwgYW5kIHBvc2l0aW9uIGZpZWxkcyBpbiB0aGlzIGJhc2UgY2xhc3Mu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3Io
aW50MzJfdCBsZW5ndGgsIGludDMyX3QgdGV4dEJlZ2luLCBpbnQzMl90IHRleHRFbmQsIGludDMy
X3QgcG9zaXRpb24pOworICAKKyAgICAvKioKKyAgICAgKiBDb3B5IGNvbnN0cnVjdG9yLgorICAg
ICAqCisgICAgICogQHBhcmFtIHRoYXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvcGll
ZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9y
KGNvbnN0IENoYXJhY3Rlckl0ZXJhdG9yICZ0aGF0KTsKKworICAgIC8qKgorICAgICAqIEFzc2ln
bm1lbnQgb3BlcmF0b3IuICBTZXRzIHRoaXMgQ2hhcmFjdGVySXRlcmF0b3IgdG8gaGF2ZSB0aGUg
c2FtZSBiZWhhdmlvciwKKyAgICAgKiBhcyB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFy
YW0gdGhhdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4g
dGhlIG5ld2x5IHNldCBDaGFyYWN0ZXJJdGVyYXRvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvciAmb3BlcmF0b3I9KGNvbnN0IENoYXJhY3Rl
ckl0ZXJhdG9yICZ0aGF0KTsKKworICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgdGV4dCBsZW5n
dGggZmllbGQuCisgICAgICogTmVjZXNzYXJ5IHRoaXMgZm9yIGNvcnJlY3QgZ2V0VGV4dCgpIGFu
ZCBoYXNoQ29kZSgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGludDMy
X3QgdGV4dExlbmd0aDsKKworICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgZmllbGQgZm9yIHRo
ZSBjdXJyZW50IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IGludDMyX3QgIHBvczsKKworICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgZmllbGQgZm9yIHRo
ZSBzdGFydCBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIGludDMyX3QgIGJlZ2luOworCisgICAgLyoqCisgICAgICogQmFzZSBjbGFz
cyBmaWVsZCBmb3IgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIGVuZDsKK307CisKK2lubGluZSBVQm9v
bAorRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yOjpvcGVyYXRvciE9KGNvbnN0IEZvcndhcmRDaGFy
YWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3QgeworICAgIHJldHVybiAhb3BlcmF0b3I9PSh0aGF0
KTsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpzZXRUb1N0YXJ0KCkg
eworICAgIHJldHVybiBtb3ZlKDAsIGtTdGFydCk7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFy
YWN0ZXJJdGVyYXRvcjo6c2V0VG9FbmQoKSB7CisgICAgcmV0dXJuIG1vdmUoMCwga0VuZCk7Cit9
CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6c3RhcnRJbmRleCh2b2lkKSBj
b25zdCB7CisgICAgcmV0dXJuIGJlZ2luOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVy
SXRlcmF0b3I6OmVuZEluZGV4KHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gZW5kOworfQorCitp
bmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OmdldEluZGV4KHZvaWQpIGNvbnN0IHsK
KyAgICByZXR1cm4gcG9zOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6
OmdldExlbmd0aCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIHRleHRMZW5ndGg7Cit9CisKK1Vf
TkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L2xvY2lkLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFk
NWNiNTQ2ZWJlMzk3ZWY0MzZkZjM2NTAzZWI0MzcxYzM4NjY5NgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaApAQCAtMCwwICsxLDgxNCBAQAorLyoKKyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDE1LCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4g
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmls
ZSBsb2NpZC5oCisqCisqIENyZWF0ZWQgYnk6IEhlbGVuYSBTaGloCisqCisqIE1vZGlmaWNhdGlv
biBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisq
ICAgMDIvMTEvOTcgICAgYWxpdSAgICAgICAgQ2hhbmdlZCBnTG9jUGF0aCB0byBmZ0xvY1BhdGgg
YW5kIGFkZGVkIG1ldGhvZHMgdG8KKyogICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQgYW5k
IHNldCBpdC4KKyogICAwNC8wMi85NyAgICBhbGl1ICAgICAgICBNYWRlIG9wZXJhdG9yIT0gaW5s
aW5lOyBmaXhlZCByZXR1cm4gdmFsdWUgb2YgZ2V0TmFtZSgpLgorKiAgIDA0LzE1Lzk3ICAgIGFs
aXUgICAgICAgIENsZWFudXAgZm9yIEFJWC9XaW4zMi4KKyogICAwNC8yNC85NyAgICBhbGl1ICAg
ICAgICBOdW1lcm91cyBjaGFuZ2VzIHBlciBjb2RlIHJldmlldy4KKyogICAwOC8xOC85OCAgICBz
dGVwaGVuICAgICBBZGRlZCB0b2tlbml6ZVN0cmluZygpLGNoYW5nZWQgZ2V0RGlzcGxheU5hbWUo
KQorKiAgIDA5LzA4Lzk4ICAgIHN0ZXBoZW4gICAgIE1vdmVkIGRlZmluaXRpb24gb2Yga0VtcHR5
U3RyaW5nIGZvciBNYWMgUG9ydAorKiAgIDExLzA5Lzk5ICAgIHdlaXYgICAgICAgIEFkZGVkIGNv
bnN0IGNoYXIgKiBnZXROYW1lKCkgY29uc3Q7CisqICAgMDQvMTIvMDAgICAgc3JsICAgICAgICAg
cmVtb3ZpbmcgdW5pY29kZXN0cmluZyBhcGkncyBhbmQgY2FjaGVkIGhhc2ggY29kZQorKiAgIDA4
LzEwLzAxICAgIGdyaG90ZW4gICAgIENoYW5nZSB0aGUgc3RhdGljIExvY2FsZXMgdG8gYWNjZXNz
b3IgZnVuY3Rpb25zCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgTE9DSURf
SAorI2RlZmluZSBMT0NJRF9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1
ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisjaW5j
bHVkZSAidW5pY29kZS9wdXRpbC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWxvYy5oIgorI2luY2x1
ZGUgInVuaWNvZGUvc3RyZW51bS5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQ
STogTG9jYWxlIElEIG9iamVjdC4KKyAqLworCitVX05BTUVTUEFDRV9CRUdJTgorCisvLyBGb3J3
YXJkIERlY2xhcmF0aW9ucwordm9pZCBVX0NBTExDT05WIGxvY2FsZV9hdmFpbGFibGVfaW5pdCgp
OyAvKio8IEBpbnRlcm5hbCAqLworCisvKioKKyAqIEEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmpl
Y3QgcmVwcmVzZW50cyBhIHNwZWNpZmljIGdlb2dyYXBoaWNhbCwgcG9saXRpY2FsLAorICogb3Ig
Y3VsdHVyYWwgcmVnaW9uLiBBbiBvcGVyYXRpb24gdGhhdCByZXF1aXJlcyBhIDxjb2RlPkxvY2Fs
ZTwvY29kZT4gdG8gcGVyZm9ybQorICogaXRzIHRhc2sgaXMgY2FsbGVkIDxlbT5sb2NhbGUtc2Vu
c2l0aXZlPC9lbT4gYW5kIHVzZXMgdGhlIDxjb2RlPkxvY2FsZTwvY29kZT4KKyAqIHRvIHRhaWxv
ciBpbmZvcm1hdGlvbiBmb3IgdGhlIHVzZXIuIEZvciBleGFtcGxlLCBkaXNwbGF5aW5nIGEgbnVt
YmVyCisgKiBpcyBhIGxvY2FsZS1zZW5zaXRpdmUgb3BlcmF0aW9uLS10aGUgbnVtYmVyIHNob3Vs
ZCBiZSBmb3JtYXR0ZWQKKyAqIGFjY29yZGluZyB0byB0aGUgY3VzdG9tcy9jb252ZW50aW9ucyBv
ZiB0aGUgdXNlcidzIG5hdGl2ZSBjb3VudHJ5LAorICogcmVnaW9uLCBvciBjdWx0dXJlLgorICoK
KyAqIFRoZSBMb2NhbGUgY2xhc3MgaXMgbm90IHN1aXRhYmxlIGZvciBzdWJjbGFzc2luZy4KKyAq
CisgKiA8UD4KKyAqIFlvdSBjYW4gY3JlYXRlIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3Qg
dXNpbmcgdGhlIGNvbnN0cnVjdG9yIGluCisgKiB0aGlzIGNsYXNzOgorICogXGh0bWxvbmx5PGJs
b2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgICAgTG9jYWxlKCBjb25zdCAg
IGNoYXIqICBsYW5ndWFnZSwKKyAqICAgICAgICAgICAgICAgY29uc3QgICBjaGFyKiAgY291bnRy
eSwKKyAqICAgICAgICAgICAgICAgY29uc3QgICBjaGFyKiAgdmFyaWFudCk7CisgKiA8L3ByZT4K
KyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIFRoZSBmaXJzdCBhcmd1
bWVudCB0byB0aGUgY29uc3RydWN0b3JzIGlzIGEgdmFsaWQgPFNUUk9ORz5JU08KKyAqIExhbmd1
YWdlIENvZGUuPC9TVFJPTkc+IFRoZXNlIGNvZGVzIGFyZSB0aGUgbG93ZXItY2FzZSB0d28tbGV0
dGVyCisgKiBjb2RlcyBhcyBkZWZpbmVkIGJ5IElTTy02MzkuCisgKiBZb3UgY2FuIGZpbmQgYSBm
dWxsIGxpc3Qgb2YgdGhlc2UgY29kZXMgYXQ6CisgKiA8QlI+PGEgaHJlZiA9Imh0dHA6Ly93d3cu
bG9jLmdvdi9zdGFuZGFyZHMvaXNvNjM5LTIvIj4KKyAqIGh0dHA6Ly93d3cubG9jLmdvdi9zdGFu
ZGFyZHMvaXNvNjM5LTIvPC9hPgorICoKKyAqIDxQPgorICogVGhlIHNlY29uZCBhcmd1bWVudCB0
byB0aGUgY29uc3RydWN0b3JzIGlzIGEgdmFsaWQgPFNUUk9ORz5JU08gQ291bnRyeQorICogQ29k
ZS48L1NUUk9ORz4gVGhlc2UgY29kZXMgYXJlIHRoZSB1cHBlci1jYXNlIHR3by1sZXR0ZXIgY29k
ZXMKKyAqIGFzIGRlZmluZWQgYnkgSVNPLTMxNjYuCisgKiBZb3UgY2FuIGZpbmQgYSBmdWxsIGxp
c3Qgb2YgdGhlc2UgY29kZXMgYXQgYSBudW1iZXIgb2Ygc2l0ZXMsIHN1Y2ggYXM6CisgKiA8QlI+
PGEgaHJlZj0iaHR0cDovL3d3dy5pc28ub3JnL2lzby9lbi9wcm9kcy1zZXJ2aWNlcy9pc28zMTY2
bWEvaW5kZXguaHRtbCI+CisgKiBodHRwOi8vd3d3Lmlzby5vcmcvaXNvL2VuL3Byb2RzLXNlcnZp
Y2VzL2lzbzMxNjZtYS9pbmRleC5odG1sPC9hPgorICoKKyAqIDxQPgorICogVGhlIHRoaXJkIGNv
bnN0cnVjdG9yIHJlcXVpcmVzIGEgdGhpcmQgYXJndW1lbnQtLXRoZSA8U1RST05HPlZhcmlhbnQu
PC9TVFJPTkc+CisgKiBUaGUgVmFyaWFudCBjb2RlcyBhcmUgdmVuZG9yIGFuZCBicm93c2VyLXNw
ZWNpZmljLgorICogRm9yIGV4YW1wbGUsIHVzZSBSRVZJU0VEIGZvciBhIGxhbmdhdWdlJ3MgcmV2
aXNlZCBzY3JpcHQgb3J0aG9ncmFwaHksIGFuZCBQT1NJWCBmb3IgUE9TSVguCisgKiBXaGVyZSB0
aGVyZSBhcmUgdHdvIHZhcmlhbnRzLCBzZXBhcmF0ZSB0aGVtIHdpdGggYW4gdW5kZXJzY29yZSwg
YW5kCisgKiBwdXQgdGhlIG1vc3QgaW1wb3J0YW50IG9uZSBmaXJzdC4gRm9yCisgKiBleGFtcGxl
LCBhIFRyYWRpdGlvbmFsIFNwYW5pc2ggY29sbGF0aW9uIG1pZ2h0IGJlIHJlZmVyZW5jZWQsIHdp
dGgKKyAqICJFUyIsICJFUyIsICJUcmFkaXRpb25hbF9QT1NJWCIuCisgKgorICogPFA+CisgKiBC
ZWNhdXNlIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3QgaXMganVzdCBhbiBpZGVudGlmaWVy
IGZvciBhIHJlZ2lvbiwKKyAqIG5vIHZhbGlkaXR5IGNoZWNrIGlzIHBlcmZvcm1lZCB3aGVuIHlv
dSBjb25zdHJ1Y3QgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+LgorICogSWYgeW91IHdhbnQgdG8gc2Vl
IHdoZXRoZXIgcGFydGljdWxhciByZXNvdXJjZXMgYXJlIGF2YWlsYWJsZSBmb3IgdGhlCisgKiA8
Y29kZT5Mb2NhbGU8L2NvZGU+IHlvdSBjb25zdHJ1Y3QsIHlvdSBtdXN0IHF1ZXJ5IHRob3NlIHJl
c291cmNlcy4gRm9yCisgKiBleGFtcGxlLCBhc2sgdGhlIDxjb2RlPk51bWJlckZvcm1hdDwvY29k
ZT4gZm9yIHRoZSBsb2NhbGVzIGl0IHN1cHBvcnRzCisgKiB1c2luZyBpdHMgPGNvZGU+Z2V0QXZh
aWxhYmxlTG9jYWxlczwvY29kZT4gbWV0aG9kLgorICogPEJSPjxTVFJPTkc+Tm90ZTo8L1NUUk9O
Rz4gV2hlbiB5b3UgYXNrIGZvciBhIHJlc291cmNlIGZvciBhIHBhcnRpY3VsYXIKKyAqIGxvY2Fs
ZSwgeW91IGdldCBiYWNrIHRoZSBiZXN0IGF2YWlsYWJsZSBtYXRjaCwgbm90IG5lY2Vzc2FyaWx5
CisgKiBwcmVjaXNlbHkgd2hhdCB5b3UgYXNrZWQgZm9yLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwg
bG9vayBhdAorICogPGNvZGU+UmVzb3VyY2VCdW5kbGU8L2NvZGU+LgorICoKKyAqIDxQPgorICog
VGhlIDxjb2RlPkxvY2FsZTwvY29kZT4gY2xhc3MgcHJvdmlkZXMgYSBudW1iZXIgb2YgY29udmVu
aWVudCBjb25zdGFudHMKKyAqIHRoYXQgeW91IGNhbiB1c2UgdG8gY3JlYXRlIDxjb2RlPkxvY2Fs
ZTwvY29kZT4gb2JqZWN0cyBmb3IgY29tbW9ubHkgdXNlZAorICogbG9jYWxlcy4gRm9yIGV4YW1w
bGUsIHRoZSBmb2xsb3dpbmcgcmVmZXJzIHRvIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3QK
KyAqIGZvciB0aGUgVW5pdGVkIFN0YXRlczoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRo
dG1sb25seQorICogPHByZT4KKyAqICAgICAgIExvY2FsZTo6Z2V0VVMoKQorICogPC9wcmU+Cisg
KiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKgorICogPFA+CisgKiBPbmNl
IHlvdSd2ZSBjcmVhdGVkIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiB5b3UgY2FuIHF1ZXJ5IGl0IGZv
ciBpbmZvcm1hdGlvbiBhYm91dAorICogaXRzZWxmLiBVc2UgPGNvZGU+Z2V0Q291bnRyeTwvY29k
ZT4gdG8gZ2V0IHRoZSBJU08gQ291bnRyeSBDb2RlIGFuZAorICogPGNvZGU+Z2V0TGFuZ3VhZ2U8
L2NvZGU+IHRvIGdldCB0aGUgSVNPIExhbmd1YWdlIENvZGUuIFlvdSBjYW4KKyAqIHVzZSA8Y29k
ZT5nZXREaXNwbGF5Q291bnRyeTwvY29kZT4gdG8gZ2V0IHRoZQorICogbmFtZSBvZiB0aGUgY291
bnRyeSBzdWl0YWJsZSBmb3IgZGlzcGxheWluZyB0byB0aGUgdXNlci4gU2ltaWxhcmx5LAorICog
eW91IGNhbiB1c2UgPGNvZGU+Z2V0RGlzcGxheUxhbmd1YWdlPC9jb2RlPiB0byBnZXQgdGhlIG5h
bWUgb2YKKyAqIHRoZSBsYW5ndWFnZSBzdWl0YWJsZSBmb3IgZGlzcGxheWluZyB0byB0aGUgdXNl
ci4gSW50ZXJlc3RpbmdseSwKKyAqIHRoZSA8Y29kZT5nZXREaXNwbGF5WFhYPC9jb2RlPiBtZXRo
b2RzIGFyZSB0aGVtc2VsdmVzIGxvY2FsZS1zZW5zaXRpdmUKKyAqIGFuZCBoYXZlIHR3byB2ZXJz
aW9uczogb25lIHRoYXQgdXNlcyB0aGUgZGVmYXVsdCBsb2NhbGUgYW5kIG9uZQorICogdGhhdCB0
YWtlcyBhIGxvY2FsZSBhcyBhbiBhcmd1bWVudCBhbmQgZGlzcGxheXMgdGhlIG5hbWUgb3IgY291
bnRyeSBpbgorICogYSBsYW5ndWFnZSBhcHByb3ByaWF0ZSB0byB0aGF0IGxvY2FsZS4KKyAqCisg
KiA8UD4KKyAqIElDVSBwcm92aWRlcyBhIG51bWJlciBvZiBjbGFzc2VzIHRoYXQgcGVyZm9ybSBs
b2NhbGUtc2Vuc2l0aXZlCisgKiBvcGVyYXRpb25zLiBGb3IgZXhhbXBsZSwgdGhlIDxjb2RlPk51
bWJlckZvcm1hdDwvY29kZT4gY2xhc3MgZm9ybWF0cworICogbnVtYmVycywgY3VycmVuY3ksIG9y
IHBlcmNlbnRhZ2VzIGluIGEgbG9jYWxlLXNlbnNpdGl2ZSBtYW5uZXIuIENsYXNzZXMKKyAqIHN1
Y2ggYXMgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBoYXZlIGEgbnVtYmVyIG9mIGNvbnZlbmll
bmNlIG1ldGhvZHMKKyAqIGZvciBjcmVhdGluZyBhIGRlZmF1bHQgb2JqZWN0IG9mIHRoYXQgdHlw
ZS4gRm9yIGV4YW1wbGUsIHRoZQorICogPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBjbGFzcyBw
cm92aWRlcyB0aGVzZSB0aHJlZSBjb252ZW5pZW5jZSBtZXRob2RzCisgKiBmb3IgY3JlYXRpbmcg
YSBkZWZhdWx0IDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gb2JqZWN0OgorICogXGh0bWxvbmx5
PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgIFVFcnJvckNvZGUgc3Vj
Y2VzcyA9IFVfWkVST19FUlJPUjsKKyAqICAgICBMb2NhbGUgbXlMb2NhbGU7CisgKiAgICAgTnVt
YmVyRm9ybWF0ICpuZjsKKyAqCisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUluc3Rh
bmNlKCBzdWNjZXNzICk7ICAgICAgICAgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZv
cm1hdDo6Y3JlYXRlQ3VycmVuY3lJbnN0YW5jZSggc3VjY2VzcyApOyAgZGVsZXRlIG5mOworICog
ICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVQZXJjZW50SW5zdGFuY2UoIHN1Y2Nlc3MgKTsg
ICBkZWxldGUgbmY7CisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRt
bG9ubHkKKyAqIEVhY2ggb2YgdGhlc2UgbWV0aG9kcyBoYXMgdHdvIHZhcmlhbnRzOyBvbmUgd2l0
aCBhbiBleHBsaWNpdCBsb2NhbGUKKyAqIGFuZCBvbmUgd2l0aG91dDsgdGhlIGxhdHRlciB1c2lu
ZyB0aGUgZGVmYXVsdCBsb2NhbGUuCisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9u
bHkKKyAqIDxwcmU+CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUluc3RhbmNlKCBt
eUxvY2FsZSwgc3VjY2VzcyApOyAgICAgICAgICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1i
ZXJGb3JtYXQ6OmNyZWF0ZUN1cnJlbmN5SW5zdGFuY2UoIG15TG9jYWxlLCBzdWNjZXNzICk7ICBk
ZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZVBlcmNlbnRJbnN0YW5j
ZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgICBkZWxldGUgbmY7CisgKiA8L3ByZT4KKyAqIFxodG1s
b25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIEEgPGNvZGU+TG9jYWxlPC9jb2RlPiBp
cyB0aGUgbWVjaGFuaXNtIGZvciBpZGVudGlmeWluZyB0aGUga2luZCBvZiBvYmplY3QKKyAqICg8
Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+KSB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGdldC4gVGhl
IGxvY2FsZSBpcworICogPFNUUk9ORz5qdXN0PC9TVFJPTkc+IGEgbWVjaGFuaXNtIGZvciBpZGVu
dGlmeWluZyBvYmplY3RzLAorICogPFNUUk9ORz5ub3Q8L1NUUk9ORz4gYSBjb250YWluZXIgZm9y
IHRoZSBvYmplY3RzIHRoZW1zZWx2ZXMuCisgKgorICogPFA+CisgKiBFYWNoIGNsYXNzIHRoYXQg
cGVyZm9ybXMgbG9jYWxlLXNlbnNpdGl2ZSBvcGVyYXRpb25zIGFsbG93cyB5b3UKKyAqIHRvIGdl
dCBhbGwgdGhlIGF2YWlsYWJsZSBvYmplY3RzIG9mIHRoYXQgdHlwZS4gWW91IGNhbiBzaWZ0Cisg
KiB0aHJvdWdoIHRoZXNlIG9iamVjdHMgYnkgbGFuZ3VhZ2UsIGNvdW50cnksIG9yIHZhcmlhbnQs
CisgKiBhbmQgdXNlIHRoZSBkaXNwbGF5IG5hbWVzIHRvIHByZXNlbnQgYSBtZW51IHRvIHRoZSB1
c2VyLgorICogRm9yIGV4YW1wbGUsIHlvdSBjYW4gY3JlYXRlIGEgbWVudSBvZiBhbGwgdGhlIGNv
bGxhdGlvbiBvYmplY3RzCisgKiBzdWl0YWJsZSBmb3IgYSBnaXZlbiBsYW5ndWFnZS4gU3VjaCBj
bGFzc2VzIGltcGxlbWVudCB0aGVzZQorICogdGhyZWUgY2xhc3MgbWV0aG9kczoKKyAqIFxodG1s
b25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICAgIHN0YXRpYyBM
b2NhbGUqIGdldEF2YWlsYWJsZUxvY2FsZXMoaW50MzJfdCYgbnVtTG9jYWxlcykKKyAqICAgICAg
IHN0YXRpYyBVbmljb2RlU3RyaW5nJiBnZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmICBvYmpl
Y3RMb2NhbGUsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgTG9jYWxlJiAgZGlzcGxheUxvY2FsZSwKKyAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwbGF5TmFtZSkKKyAqICAgICAg
IHN0YXRpYyBVbmljb2RlU3RyaW5nJiBnZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmICBvYmpl
Y3RMb2NhbGUsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VW5pY29kZVN0cmluZyYgZGlzcGxheU5hbWUpCisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxv
Y2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqIEBzZWUgUmVz
b3VyY2VCdW5kbGUKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIExvY2FsZSA6IHB1YmxpYyBVT2Jq
ZWN0IHsKK3B1YmxpYzoKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGUgUm9vdCBsb2Nh
bGUuIEBzdGFibGUgSUNVIDQuNCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JU
MiBnZXRSb290KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3Vh
Z2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JU
MiBnZXRFbmdsaXNoKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFu
Z3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQ
T1JUMiBnZXRGcmVuY2godm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBs
YW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9F
WFBPUlQyIGdldEdlcm1hbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlz
IGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZV
X0VYUE9SVDIgZ2V0SXRhbGlhbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0
aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxl
ICZVX0VYUE9SVDIgZ2V0SmFwYW5lc2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBm
b3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExv
Y2FsZSAmVV9FWFBPUlQyIGdldEtvcmVhbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50
IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3Qg
TG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2hpbmVzZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0
YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0U2ltcGxpZmllZENoaW5lc2Uodm9pZCk7CisgICAgLyoq
IFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisg
ICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFRyYWRpdGlvbmFsQ2hpbmVzZSh2
b2lkKTsKKworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24u
IEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBn
ZXRGcmFuY2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5
L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9F
WFBPUlQyIGdldEdlcm1hbnkodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhp
cyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExv
Y2FsZSAmVV9FWFBPUlQyIGdldEl0YWx5KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQg
Zm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRKYXBhbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNv
bnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBz
dGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0S29yZWEodm9pZCk7CisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENoaW5hKHZvaWQpOworICAg
IC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNV
IDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRQUkModm9pZCk7
CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJs
ZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFRhaXdh
bih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9u
LiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIg
Z2V0VUsodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3Jl
Z2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBP
UlQyIGdldFVTKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRy
eS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVf
RVhQT1JUMiBnZXRDYW5hZGEodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhp
cyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExv
Y2FsZSAmVV9FWFBPUlQyIGdldENhbmFkYUZyZW5jaCh2b2lkKTsKKworCisgICAgLyoqCisgICAg
ICogQ29uc3RydWN0IGEgZGVmYXVsdCBsb2NhbGUgb2JqZWN0LCBhIExvY2FsZSBmb3IgdGhlIGRl
ZmF1bHQgbG9jYWxlIElELgorICAgICAqCisgICAgICogQHNlZSBnZXREZWZhdWx0CisgICAgICog
QHNlZSB1bG9jX2dldERlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICBMb2NhbGUoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIGxvY2FsZSBmcm9tIGxh
bmd1YWdlLCBjb3VudHJ5LCB2YXJpYW50LgorICAgICAqIElmIGFuIGVycm9yIG9jY3VycywgdGhl
biB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgImJvZ3VzIgorICAgICAqIChpc0JvZ3Vz
KCkgd2lsbCByZXR1cm4gVFJVRSkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGFuZ3VhZ2UgTG93
ZXJjYXNlIHR3by1sZXR0ZXIgb3IgdGhyZWUtbGV0dGVyIElTTy02MzkgY29kZS4KKyAgICAgKiAg
VGhpcyBwYXJhbWV0ZXIgY2FuIGluc3RlYWQgYmUgYW4gSUNVIHN0eWxlIEMgbG9jYWxlIChlLmcu
ICJlbl9VUyIpLAorICAgICAqICBidXQgdGhlIG90aGVyIHBhcmFtZXRlcnMgbXVzdCBub3QgYmUg
dXNlZC4KKyAgICAgKiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGJlIE5VTEw7IGlmIHNvLAorICAgICAq
ICB0aGUgbG9jYWxlIGlzIGluaXRpYWxpemVkIHRvIG1hdGNoIHRoZSBjdXJyZW50IGRlZmF1bHQg
bG9jYWxlLgorICAgICAqICAoVGhpcyBpcyB0aGUgc2FtZSBhcyB1c2luZyB0aGUgZGVmYXVsdCBj
b25zdHJ1Y3Rvci4pCisgICAgICogIFBsZWFzZSBub3RlOiBUaGUgSmF2YSBMb2NhbGUgY2xhc3Mg
ZG9lcyBOT1QgYWNjZXB0IHRoZSBmb3JtCisgICAgICogICduZXcgTG9jYWxlKCJlbl9VUyIpJyBi
dXQgb25seSAnbmV3IExvY2FsZSgiZW4iLCJVUyIpJworICAgICAqCisgICAgICogQHBhcmFtIGNv
dW50cnkgIFVwcGVyY2FzZSB0d28tbGV0dGVyIElTTy0zMTY2IGNvZGUuIChvcHRpb25hbCkKKyAg
ICAgKiBAcGFyYW0gdmFyaWFudCAgVXBwZXJjYXNlIHZlbmRvciBhbmQgYnJvd3NlciBzcGVjaWZp
YyBjb2RlLiBTZWUgY2xhc3MKKyAgICAgKiAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24uIChv
cHRpb25hbCkKKyAgICAgKiBAcGFyYW0ga2V5d29yZHNBbmRWYWx1ZXMgQSBzdHJpbmcgY29uc2lz
dGluZyBvZiBrZXl3b3JkL3ZhbHVlcyBwYWlycywgc3VjaCBhcworICAgICAqICAgICAgICAgICAg
ICAgICAiY29sbGF0aW9uPXBob25lYm9vaztjdXJyZW5jeT1ldXJvIgorICAgICAqCisgICAgICog
QHNlZSBnZXREZWZhdWx0CisgICAgICogQHNlZSB1bG9jX2dldERlZmF1bHQKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUoIGNvbnN0ICAgY2hhciAqIGxhbmd1YWdl
LAorICAgICAgICAgICAgY29uc3QgICBjaGFyICogY291bnRyeSAgPSAwLAorICAgICAgICAgICAg
Y29uc3QgICBjaGFyICogdmFyaWFudCAgPSAwLAorICAgICAgICAgICAgY29uc3QgICBjaGFyICog
a2V5d29yZHNBbmRWYWx1ZXMgPSAwKTsKKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIGEg
TG9jYWxlIG9iamVjdCBmcm9tIGFub3RoZXIgTG9jYWxlIG9iamVjdC4KKyAgICAgKgorICAgICAq
IEBwYXJhbSBvdGhlciBUaGUgTG9jYWxlIG9iamVjdCBiZWluZyBjb3BpZWQgaW4uCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxlKGNvbnN0ICAgIExvY2FsZSYgb3Ro
ZXIpOworCisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCB+TG9jYWxlKCkgOworCisgICAgLyoqCisgICAgICog
UmVwbGFjZXMgdGhlIGVudGlyZSBjb250ZW50cyBvZiAqdGhpcyB3aXRoIHRoZSBzcGVjaWZpZWQg
dmFsdWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIExvY2FsZSBvYmplY3QgYmVp
bmcgY29waWVkIGluLgorICAgICAqIEByZXR1cm4gICAgICAqdGhpcworICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIExvY2FsZSYgb3BlcmF0b3I9KGNvbnN0IExvY2FsZSYgb3Ro
ZXIpOworCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHR3byBsb2NhbGUga2V5cyBhcmUgdGhl
IHNhbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIGxvY2FsZSBrZXkgb2JqZWN0
IHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcy4KKyAgICAgKiBAcmV0dXJuICAgICAgVHJ1ZSBpZiB0
aGUgdHdvIGxvY2FsZSBrZXlzIGFyZSB0aGUgc2FtZSwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29sICAgb3BlcmF0b3I9PShjb25zdCAg
ICBMb2NhbGUmICAgICBvdGhlcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYg
dHdvIGxvY2FsZSBrZXlzIGFyZSBub3QgdGhlIHNhbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0g
b3RoZXIgVGhlIGxvY2FsZSBrZXkgb2JqZWN0IHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcy4KKyAg
ICAgKiBAcmV0dXJuICAgICAgVHJ1ZSBpZiB0aGUgdHdvIGxvY2FsZSBrZXlzIGFyZSBub3QgdGhl
IHNhbWUsIGZhbHNlCisgICAgICogICAgICAgICAgICAgIG90aGVyd2lzZS4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCAgIG9wZXJhdG9yIT0oY29uc3QgICAgTG9j
YWxlJiAgICAgb3RoZXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogQ2xvbmUgdGhpcyBvYmpl
Y3QuCisgICAgICogQ2xvbmVzIGNhbiBiZSB1c2VkIGNvbmN1cnJlbnRseSBpbiBtdWx0aXBsZSB0
aHJlYWRzLgorICAgICAqIElmIGFuIGVycm9yIG9jY3VycywgdGhlbiBOVUxMIGlzIHJldHVybmVk
LgorICAgICAqIFRoZSBjYWxsZXIgbXVzdCBkZWxldGUgdGhlIGNsb25lLgorICAgICAqCisgICAg
ICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgb2JqZWN0CisgICAgICoKKyAgICAgKiBAc2VlIGdl
dER5bmFtaWNDbGFzc0lECisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgTG9j
YWxlICpjbG9uZSgpIGNvbnN0OworCisjaWZuZGVmIFVfSElERV9TWVNURU1fQVBJCisgICAgLyoq
CisgICAgICogQ29tbW9uIG1ldGhvZHMgb2YgZ2V0dGluZyB0aGUgY3VycmVudCBkZWZhdWx0IExv
Y2FsZS4gVXNlZCBmb3IgdGhlCisgICAgICogcHJlc2VudGF0aW9uOiBtZW51cywgZGlhbG9ncywg
ZXRjLiBHZW5lcmFsbHkgc2V0IG9uY2Ugd2hlbiB5b3VyIGFwcGxldCBvcgorICAgICAqIGFwcGxp
Y2F0aW9uIGlzIGluaXRpYWxpemVkLCB0aGVuIG5ldmVyIHJlc2V0LiAoSWYgeW91IGRvIHJlc2V0
IHRoZQorICAgICAqIGRlZmF1bHQgbG9jYWxlLCB5b3UgcHJvYmFibHkgd2FudCB0byByZWxvYWQg
eW91ciBHVUksIHNvIHRoYXQgdGhlIGNoYW5nZQorICAgICAqIGlzIHJlZmxlY3RlZCBpbiB5b3Vy
IGludGVyZmFjZS4pCisgICAgICoKKyAgICAgKiBNb3JlIGFkdmFuY2VkIHByb2dyYW1zIHdpbGwg
YWxsb3cgdXNlcnMgdG8gdXNlIGRpZmZlcmVudCBsb2NhbGVzIGZvcgorICAgICAqIGRpZmZlcmVu
dCBmaWVsZHMsIGUuZy4gaW4gYSBzcHJlYWRzaGVldC4KKyAgICAgKgorICAgICAqIE5vdGUgdGhh
dCB0aGUgaW5pdGlhbCBzZXR0aW5nIHdpbGwgbWF0Y2ggdGhlIGhvc3Qgc3lzdGVtLgorICAgICAq
IEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhlIExvY2FsZSBvYmplY3QgZm9yIHRoZSBkZWZhdWx0
IGxvY2FsZSBJRAorICAgICAqIEBzeXN0ZW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlJiBVX0VYUE9SVDIgZ2V0RGVmYXVsdCh2b2lkKTsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRlZmF1bHQuIE5vcm1hbGx5IHNldCBvbmNlIGF0
IHRoZSBiZWdpbm5pbmcgb2YgYSBwcm9jZXNzLAorICAgICAqIHRoZW4gbmV2ZXIgcmVzZXQuCisg
ICAgICogc2V0RGVmYXVsdCgpIG9ubHkgY2hhbmdlcyBJQ1UncyBkZWZhdWx0IGxvY2FsZSBJRCwg
PHN0cm9uZz5ub3Q8L3N0cm9uZz4KKyAgICAgKiB0aGUgZGVmYXVsdCBsb2NhbGUgSUQgb2YgdGhl
IHJ1bnRpbWUgZW52aXJvbm1lbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmV3TG9jYWxlIExv
Y2FsZSB0byBzZXQgdG8uICBJZiBOVUxMLCBzZXQgdG8gdGhlIHZhbHVlIG9idGFpbmVkCisgICAg
ICogICAgICAgICAgICAgICAgICBmcm9tIHRoZSBydW50aW1lIGVudmlyb25lbWVudC4KKyAgICAg
KiBAcGFyYW0gc3VjY2VzcyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAc3lzdGVtCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIHZvaWQgVV9FWFBPUlQyIHNldERl
ZmF1bHQoY29uc3QgTG9jYWxlJiBuZXdMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVUVycm9yQ29kZSYgICBzdWNjZXNzKTsKKyNlbmRpZiAgLyogVV9ISURFX1NZ
U1RFTV9BUEkgKi8KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBsb2NhbGUgd2hpY2ggaGFz
IGhhZCBtaW5pbWFsIGNhbm9uaWNhbGl6YXRpb24KKyAgICAgKiBhcyBwZXIgdWxvY19nZXROYW1l
KCkuCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgdG8gY3JlYXRlIGZyb20uICBJZiBuYW1l
IGlzIG51bGwsCisgICAgICogIHRoZSBkZWZhdWx0IExvY2FsZSBpcyB1c2VkLgorICAgICAqIEBy
ZXR1cm4gbmV3IGxvY2FsZSBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKiBA
c2VlIHVsb2NfZ2V0TmFtZQorICAgICAqLworICAgIHN0YXRpYyBMb2NhbGUgVV9FWFBPUlQyIGNy
ZWF0ZUZyb21OYW1lKGNvbnN0IGNoYXIgKm5hbWUpOworCisgICAgLyoqCisgICAgICogQ3JlYXRl
cyBhIGxvY2FsZSBmcm9tIHRoZSBnaXZlbiBzdHJpbmcgYWZ0ZXIgY2Fub25pY2FsaXppbmcKKyAg
ICAgKiB0aGUgc3RyaW5nIGJ5IGNhbGxpbmcgdWxvY19jYW5vbmljYWxpemUoKS4KKyAgICAgKiBA
cGFyYW0gbmFtZSB0aGUgbG9jYWxlIElEIHRvIGNyZWF0ZSBmcm9tLiAgTXVzdCBub3QgYmUgTlVM
TC4KKyAgICAgKiBAcmV0dXJuIGEgbmV3IGxvY2FsZSBvYmplY3QgY29ycmVzcG9uZGluZyB0byB0
aGUgZ2l2ZW4gbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqIEBzZWUgdWxvY19j
YW5vbmljYWxpemUKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9jYWxlIFVfRVhQT1JUMiBjcmVhdGVD
YW5vbmljYWwoY29uc3QgY2hhciogbmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRo
ZSBsb2NhbGUncyBJU08tNjM5IGxhbmd1YWdlIGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFu
IGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
aW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0TGFuZ3VhZ2UoICkgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tMTU5MjQgYWJicmV2aWF0aW9uIHNjcmlwdCBj
b2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBz
ZWUgdXNjcmlwdF9nZXRTaG9ydE5hbWUKKyAgICAgKiBAc2VlIHVzY3JpcHRfZ2V0Q29kZQorICAg
ICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdl
dFNjcmlwdCggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdz
IElTTy0zMTY2IGNvdW50cnkgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8g
dGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29u
c3QgY2hhciAqICBnZXRDb3VudHJ5KCApIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJu
cyB0aGUgbG9jYWxlJ3MgdmFyaWFudCBjb2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlh
cyB0byB0aGUgY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGlu
ZSBjb25zdCBjaGFyICogIGdldFZhcmlhbnQoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBS
ZXR1cm5zIHRoZSBwcm9ncmFtbWF0aWMgbmFtZSBvZiB0aGUgZW50aXJlIGxvY2FsZSwgd2l0aCB0
aGUgbGFuZ3VhZ2UsCisgICAgICogY291bnRyeSBhbmQgdmFyaWFudCBzZXBhcmF0ZWQgYnkgdW5k
ZXJiYXJzLiBJZiBhIGZpZWxkIGlzIG1pc3NpbmcsIHVwCisgICAgICogdG8gdHdvIGxlYWRpbmcg
dW5kZXJiYXJzIHdpbGwgb2NjdXIuIEV4YW1wbGU6ICJlbiIsICJkZV9ERSIsICJlbl9VU19XSU4i
LAorICAgICAqICJkZV9fUE9TSVgiLCAiZnJfX01BQyIsICJfX01BQyIsICJfTVQiLCAiX0ZSX0VV
Uk8iCisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0byAibmFtZSIuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiBnZXROYW1lKCkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBwcm9ncmFtbWF0aWMgbmFtZSBv
ZiB0aGUgZW50aXJlIGxvY2FsZSBhcyBnZXROYW1lKCkgd291bGQgcmV0dXJuLAorICAgICAqIGJ1
dCB3aXRob3V0IGtleXdvcmRzLgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8gIm5h
bWUiLgorICAgICAqIEBzZWUgZ2V0TmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAq
LworICAgIGNvbnN0IGNoYXIgKiBnZXRCYXNlTmFtZSgpIGNvbnN0OworCisKKyAgICAvKioKKyAg
ICAgKiBHZXRzIHRoZSBsaXN0IG9mIGtleXdvcmRzIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4K
KyAgICAgKgorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIHN0YXR1cyBjb2RlCisgICAgICogQHJl
dHVybiBwb2ludGVyIHRvIFN0cmluZ0VudW1lcmF0aW9uIGNsYXNzLCBvciBOVUxMIGlmIHRoZXJl
IGFyZSBubyBrZXl3b3Jkcy4gCisgICAgICogQ2xpZW50IG11c3QgZGlzcG9zZSBvZiBpdCBieSBj
YWxsaW5nIGRlbGV0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBTdHJp
bmdFbnVtZXJhdGlvbiAqIGNyZWF0ZUtleXdvcmRzKFVFcnJvckNvZGUgJnN0YXR1cykgY29uc3Q7
CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB2YWx1ZSBmb3IgYSBrZXl3b3JkLgorICAgICAq
CisgICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgZm9yIHdoaWNo
IHdlIHdhbnQgdGhlIHZhbHVlLiBDYXNlIGluc2Vuc2l0aXZlLgorICAgICAqIEBwYXJhbSBidWZm
ZXIgVGhlIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBrZXl3b3JkIHZhbHVlLgorICAgICAqIEBwYXJh
bSBidWZmZXJDYXBhY2l0eSBUaGUgY2FwYWNpdHkgb2YgcmVjZWl2aW5nIGJ1ZmZlcgorICAgICAq
IEBwYXJhbSBzdGF0dXMgUmV0dXJucyBhbnkgZXJyb3IgaW5mb3JtYXRpb24gd2hpbGUgcGVyZm9y
bWluZyB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGtl
eXdvcmQgdmFsdWUKKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAg
IGludDMyX3QgZ2V0S2V5d29yZFZhbHVlKGNvbnN0IGNoYXIqIGtleXdvcmROYW1lLCBjaGFyICpi
dWZmZXIsIGludDMyX3QgYnVmZmVyQ2FwYWNpdHksIFVFcnJvckNvZGUgJnN0YXR1cykgY29uc3Q7
CisKKyAgICAvKioKKyAgICAgKiBTZXRzIG9yIHJlbW92ZXMgdGhlIHZhbHVlIGZvciBhIGtleXdv
cmQuCisgICAgICoKKyAgICAgKiBGb3IgcmVtb3ZpbmcgYWxsIGtleXdvcmRzLCB1c2UgZ2V0QmFz
ZU5hbWUoKSwKKyAgICAgKiBhbmQgY29uc3RydWN0IGEgbmV3IExvY2FsZSBpZiBpdCBkaWZmZXJz
IGZyb20gZ2V0TmFtZSgpLgorICAgICAqCisgICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUg
b2YgdGhlIGtleXdvcmQgdG8gYmUgc2V0LiBDYXNlIGluc2Vuc2l0aXZlLgorICAgICAqIEBwYXJh
bSBrZXl3b3JkVmFsdWUgdmFsdWUgb2YgdGhlIGtleXdvcmQgdG8gYmUgc2V0LiBJZiAwLWxlbmd0
aCBvcgorICAgICAqICBOVUxMLCB3aWxsIHJlc3VsdCBpbiB0aGUga2V5d29yZCBiZWluZyByZW1v
dmVkLiBObyBlcnJvciBpcyBnaXZlbiBpZgorICAgICAqICB0aGF0IGtleXdvcmQgZG9lcyBub3Qg
ZXhpc3QuCisgICAgICogQHBhcmFtIHN0YXR1cyBSZXR1cm5zIGFueSBlcnJvciBpbmZvcm1hdGlv
biB3aGlsZSBwZXJmb3JtaW5nIHRoaXMgb3BlcmF0aW9uLgorICAgICAqCisgICAgICogQHN0YWJs
ZSBJQ1UgNDkKKyAgICAgKi8KKyAgICB2b2lkIHNldEtleXdvcmRWYWx1ZShjb25zdCBjaGFyKiBr
ZXl3b3JkTmFtZSwgY29uc3QgY2hhcioga2V5d29yZFZhbHVlLCBVRXJyb3JDb2RlICZzdGF0dXMp
OworCisgICAgLyoqCisgICAgICogcmV0dXJucyB0aGUgbG9jYWxlJ3MgdGhyZWUtbGV0dGVyIGxh
bmd1YWdlIGNvZGUsIGFzIHNwZWNpZmllZAorICAgICAqIGluIElTTyBkcmFmdCBzdGFuZGFyZCBJ
U08tNjM5LTIuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlLCBvciBh
biBlbXB0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBjb25z
dCBjaGFyICogZ2V0SVNPM0xhbmd1YWdlKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxs
cyBpbiAibmFtZSIgd2l0aCB0aGUgbG9jYWxlJ3MgdGhyZWUtbGV0dGVyIElTTy0zMTY2IGNvdW50
cnkgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUsIG9yIGFu
IGVtcHR5IHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGNvbnN0
IGNoYXIgKiBnZXRJU08zQ291bnRyeSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJu
cyB0aGUgV2luZG93cyBMQ0lEIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBsb2NhbGUuCisg
ICAgICogVGhpcyB2YWx1ZSBpcyBzdG9yZWQgaW4gdGhlIHJlc291cmNlIGRhdGEgZm9yIHRoZSBs
b2NhbGUgYXMgYSBvbmUtdG8tZm91ci1kaWdpdAorICAgICAqIGhleGFkZWNpbWFsIG51bWJlci4g
IElmIHRoZSByZXNvdXJjZSBpcyBtaXNzaW5nLCBpbiB0aGUgd3JvbmcgZm9ybWF0LCBvcgorICAg
ICAqIHRoZXJlIGlzIG5vIFdpbmRvd3MgTENJRCB2YWx1ZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRo
aXMgbG9jYWxlLCByZXR1cm5zIDAuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdWludDMyX3QgICAgICAgIGdldExDSUQodm9pZCkgY29uc3Q7CisKKyNpZm5kZWYgVV9ISURF
X0RSQUZUX0FQSQorICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciB0aGlzIGxvY2FsZSdz
IHNjcmlwdCBpcyB3cml0dGVuIHJpZ2h0LXRvLWxlZnQuCisgICAgICogSWYgdGhlcmUgaXMgbm8g
c2NyaXB0IHN1YnRhZywgdGhlbiB0aGUgbGlrZWx5IHNjcmlwdCBpcyB1c2VkLCBzZWUgdWxvY19h
ZGRMaWtlbHlTdWJ0YWdzKCkuCisgICAgICogSWYgbm8gbGlrZWx5IHNjcmlwdCBpcyBrbm93biwg
dGhlbiBGQUxTRSBpcyByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEEgc2NyaXB0IGlzIHJpZ2h0
LXRvLWxlZnQgYWNjb3JkaW5nIHRvIHRoZSBDTERSIHNjcmlwdCBtZXRhZGF0YQorICAgICAqIHdo
aWNoIGNvcnJlc3BvbmRzIHRvIHdoZXRoZXIgdGhlIHNjcmlwdCdzIGxldHRlcnMgaGF2ZSBCaWRp
X0NsYXNzPVIgb3IgQUwuCisgICAgICoKKyAgICAgKiBSZXR1cm5zIFRSVUUgZm9yICJhciIgYW5k
ICJlbi1IZWJyIiwgRkFMU0UgZm9yICJ6aCIgYW5kICJmYS1DeXJsIi4KKyAgICAgKgorICAgICAq
IEByZXR1cm4gVFJVRSBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGlzIHdyaXR0ZW4gcmlnaHQtdG8t
bGVmdAorICAgICAqIEBkcmFmdCBJQ1UgNTQKKyAgICAgKi8KKyAgICBVQm9vbCBpc1JpZ2h0VG9M
ZWZ0KCkgY29uc3Q7CisjZW5kaWYgIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KKworICAgIC8qKgor
ICAgICAqIEZpbGxzIGluICJkaXNwTGFuZyIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdz
IGxhbmd1YWdlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvcgorICAgICAqIHVzZXIgZGlzcGxheSBp
biB0aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzIGxhbmd1
YWdlIGNvZGUgaXMKKyAgICAgKiAiZnIiIGFuZCB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5ndWFn
ZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcExhbmcg
dG8gIkZyZW5jaCIuCisgICAgICogQHBhcmFtIGRpc3BMYW5nICBSZWNlaXZlcyB0aGUgbGFuZ3Vh
Z2UncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0
byAiZGlzcExhbmciLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNv
ZGVTdHJpbmcmICBnZXREaXNwbGF5TGFuZ3VhZ2UoVW5pY29kZVN0cmluZyYgICBkaXNwTGFuZykg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcExhbmciIHdpdGggdGhlIG5h
bWUgb2YgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IKKyAg
ICAgKiB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlMb2Nh
bGUiLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncworICAgICAqIGxhbmd1YWdlIGNvZGUg
aXMgImVuIiBhbmQgZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImZyIiwgdGhpcyBm
dW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwTGFuZyB0byAiQW5nbGFpcyIuCisgICAgICog
QHBhcmFtIGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8g
ZGlzcGxheSB0aGUgbmFtZS4gIEluIG90aGVyIHdvcmRzLAorICAgICAqICAgICAgICAgICAgICAg
ICAgaWYgdGhlIGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgcGFzc2luZyBMb2NhbGU6
OmdldEZyZW5jaCgpIGZvcgorICAgICAqICAgICAgICAgICAgICAgICAgZGlzcGxheUxvY2FsZSB3
b3VsZCByZXN1bHQgaW4gIkFuZ2xhaXMiLCB3aGlsZSBwYXNzaW5nIExvY2FsZTo6Z2V0R2VybWFu
KCkKKyAgICAgKiAgICAgICAgICAgICAgICAgIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3Vs
dCBpbiAiRW5nbGlzY2giLgorICAgICAqIEBwYXJhbSBkaXNwTGFuZyAgUmVjZWl2ZXMgdGhlIGxh
bmd1YWdlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVu
Y2UgdG8gImRpc3BMYW5nIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBV
bmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUxhbmd1YWdlKCBjb25zdCAgIExvY2FsZSYgICAgICAg
ICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BMYW5nKSBjb25zdDsKKworICAgIC8qKgorICAg
ICAqIEZpbGxzIGluICJkaXNwU2NyaXB0IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3Mg
c2NyaXB0IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0
aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzIHNjcmlwdCBj
b2RlCisgICAgICogaXMgIkxBVE4iIGFuZCB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5ndWFnZSBj
b2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcFNjcmlwdCB0
byAiTGF0aW4iLgorICAgICAqIEBwYXJhbSBkaXNwU2NyaXB0ICAgIFJlY2VpdmVzIHRoZSBzY3Jp
cHRzJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJl
bmNlIHRvICJkaXNwU2NyaXB0Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAg
ICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheVNjcmlwdCggICAgICAgICAgVW5pY29kZVN0cmlu
ZyYgZGlzcFNjcmlwdCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFNj
cmlwdCIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGNvdW50cnkgaW4gYSBmb3JtYXQg
c3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVk
IGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MKKyAgICAg
KiBzY3JpcHQgY29kZSBpcyAiTEFUTiIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBjb2Rl
IGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcFNjcmlwdCB0byAi
TGF0aW4iLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICAgICAgU3BlY2lmaWVzIHRoZSBs
b2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLiAgSW4gb3RoZXIKKyAgICAgKiAg
ICAgICAgICAgICAgICAgICAgICB3b3JkcywgaWYgdGhlIGxvY2FsZSdzIHNjcmlwdCBjb2RlIGlz
ICJMQVROIiwgcGFzc2luZworICAgICAqICAgICAgICAgICAgICAgICAgICAgIExvY2FsZTo6Z2V0
RnJlbmNoKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICIiLCB3aGlsZQorICAg
ICAqICAgICAgICAgICAgICAgICAgICAgIHBhc3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKSBmb3Ig
ZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAg
ICAiIi4KKyAgICAgKiBAcGFyYW0gZGlzcFNjcmlwdCAgICBSZWNlaXZlcyB0aGUgc2NyaXB0cydz
IGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0
byAiZGlzcFNjcmlwdCIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgVW5p
Y29kZVN0cmluZyYgIGdldERpc3BsYXlTY3JpcHQoICBjb25zdCAgIExvY2FsZSYgICAgICAgICBk
aXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVbmljb2RlU3RyaW5nJiAgZGlzcFNjcmlwdCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAg
KiBGaWxscyBpbiAiZGlzcENvdW50cnkiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBj
b3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0
aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzIGNvdW50cnkg
Y29kZQorICAgICAqIGlzICJGUiIgYW5kIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNv
ZGUgaXMgImVuIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwQ291bnRyeSB0
byAiRnJhbmNlIi4KKyAgICAgKiBAcGFyYW0gZGlzcENvdW50cnkgICBSZWNlaXZlcyB0aGUgY291
bnRyeSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICBBIHJlZmVy
ZW5jZSB0byAiZGlzcENvdW50cnkiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5Q291bnRyeSggICAgICAgICAgVW5pY29kZVN0
cmluZyYgZGlzcENvdW50cnkpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRp
c3BDb3VudHJ5IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZv
cm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVj
aWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncwor
ICAgICAqIGNvdW50cnkgY29kZSBpcyAiVVMiIGFuZCBkaXNwbGF5TG9jYWxlJ3MgbGFuZ3VhZ2Ug
Y29kZSBpcyAiZnIiLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BDb3VudHJ5
IHRvICImRWFjdXRlO3RhdHMtVW5pcyIuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgICAg
ICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuICBJ
biBvdGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHdvcmRzLCBpZiB0aGUgbG9jYWxl
J3MgY291bnRyeSBjb2RlIGlzICJVUyIsIHBhc3NpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbGU6OmdldEZyZW5jaCgpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBp
biAiJkVhY3V0ZTt0YXRzLVVuaXMiLCB3aGlsZQorICAgICAqICAgICAgICAgICAgICAgICAgICAg
IHBhc3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKSBmb3IgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1
bHQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAiVmVyZWluaWd0ZSBTdGFhdGVuIi4K
KyAgICAgKiBAcGFyYW0gZGlzcENvdW50cnkgICBSZWNlaXZlcyB0aGUgY291bnRyeSdzIGRpc3Bs
YXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlz
cENvdW50cnkiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVT
dHJpbmcmICBnZXREaXNwbGF5Q291bnRyeSggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3Bs
YXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVbmljb2RlU3RyaW5nJiAgZGlzcENvdW50cnkpIGNvbnN0OworCisgICAgLyoqCisgICAgICog
RmlsbHMgaW4gImRpc3BWYXIiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyB2YXJpYW50
IGNvZGUgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRo
ZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlzcFZhciAgIFJlY2VpdmVzIHRoZSB2
YXJpYW50J3MgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJk
aXNwVmFyIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3Ry
aW5nJiAgZ2V0RGlzcGxheVZhcmlhbnQoICAgICAgVW5pY29kZVN0cmluZyYgZGlzcFZhcikgY29u
c3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFZhciIgd2l0aCB0aGUgbmFtZSBv
ZiB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgY29kZSBpbiBhIGZvcm1hdAorICAgICAqIHN1aXRhYmxl
IGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlMb2Nh
bGUiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0
byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHBhcmFtIGRpc3BWYXIgICBS
ZWNlaXZlcyB0aGUgdmFyaWFudCdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAg
ICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwVmFyIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheVZhcmlhbnQoICBjb25zdCAgIExv
Y2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BWYXIpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2Nh
bGUgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIHVzZXIgZGlzcGxheQorICAgICAqIGluIHRoZSBk
ZWZhdWx0IGxvY2FsZS4gIFRoaXMgZnVuY3Rpb24gdXNlcyBnZXREaXNwbGF5TGFuZ3VhZ2UoKSwg
Z2V0RGlzcGxheUNvdW50cnkoKSwKKyAgICAgKiBhbmQgZ2V0RGlzcGxheVZhcmlhbnQoKSB0byBk
byBpdHMgd29yaywgYW5kIG91dHB1dHMgdGhlIGRpc3BsYXkgbmFtZSBpbiB0aGUgZm9ybWF0Cisg
ICAgICogImxhbmd1YWdlIChjb3VudHJ5Wyx2YXJpYW50XSkiLiAgRm9yIGV4YW1wbGUsIGlmIHRo
ZSBkZWZhdWx0IGxvY2FsZSBpcyBlbl9VUywgdGhlbgorICAgICAqIGZyX0ZSJ3MgZGlzcGxheSBu
YW1lIHdvdWxkIGJlICJGcmVuY2ggKEZyYW5jZSkiLCBhbmQgZXNfTVhfVHJhZGl0aW9uYWwncyBk
aXNwbGF5IG5hbWUKKyAgICAgKiB3b3VsZCBiZSAiU3BhbmlzaCAoTWV4aWNvLFRyYWRpdGlvbmFs
KSIuCisgICAgICogQHBhcmFtIG5hbWUgIFJlY2VpdmVzIHRoZSBsb2NhbGUncyBkaXNwbGF5IG5h
bWUuCisgICAgICogQHJldHVybiAgICAgIEEgcmVmZXJlbmNlIHRvICJuYW1lIi4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheU5h
bWUoICAgICAgICAgVW5pY29kZVN0cmluZyYgIG5hbWUpIGNvbnN0OworCisgICAgLyoqCisgICAg
ICogRmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUgaW4gYSBmb3Jt
YXQgc3VpdGFibGUgZm9yIHVzZXIgZGlzcGxheQorICAgICAqIGluIHRoZSBsb2NhbGUgc3BlY2Zp
ZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgVGhpcyBmdW5jdGlvbiB1c2VzIGdldERpc3BsYXlMYW5n
dWFnZSgpLAorICAgICAqIGdldERpc3BsYXlDb3VudHJ5KCksIGFuZCBnZXREaXNwbGF5VmFyaWFu
dCgpIHRvIGRvIGl0cyB3b3JrLCBhbmQgb3V0cHV0cyB0aGUgZGlzcGxheQorICAgICAqIG5hbWUg
aW4gdGhlIGZvcm1hdCAibGFuZ3VhZ2UgKGNvdW50cnlbLHZhcmlhbnRdKSIuICBGb3IgZXhhbXBs
ZSwgaWYgZGlzcGxheUxvY2FsZSBpcworICAgICAqIGZyX0ZSLCB0aGVuIGVuX1VTJ3MgZGlzcGxh
eSBuYW1lIHdvdWxkIGJlICJBbmdsYWlzICgmRWFjdXRlO3RhdHMtVW5pcykiLCBhbmQgbm9fTk9f
TlkncworICAgICAqIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAibm9ydiZlYWN1dGU7Z2llbiAoTm9y
diZlZ3JhdmU7Z2UsTlkpIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgU3BlY2lmaWVz
IHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEBwYXJh
bSBuYW1lICAgICAgUmVjZWl2ZXMgdGhlIGxvY2FsZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBA
cmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJuYW1lIi4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheU5hbWUoIGNvbnN0
ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBuYW1lKSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhlIGxvY2FsZS4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAgaGFzaENvZGUo
dm9pZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBsb2NhbGUgdG8gYm9ndXMK
KyAgICAgKiBBIGJvZ3VzIGxvY2FsZSByZXByZXNlbnRzIGEgbm9uLWV4aXN0aW5nIGxvY2FsZSBh
c3NvY2lhdGVkCisgICAgICogd2l0aCBzZXJ2aWNlcyB0aGF0IGNhbiBiZSBpbnN0YW50aWF0ZWQg
ZnJvbSBub24tbG9jYWxlIGRhdGEKKyAgICAgKiBpbiBhZGRpdGlvbiB0byBsb2NhbGUgKGZvciBl
eGFtcGxlLCBjb2xsYXRpb24gY2FuIGJlCisgICAgICogaW5zdGFudGlhdGVkIGZyb20gYSBsb2Nh
bGUgYW5kIGZyb20gYSBydWxlIHNldCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICov
CisgICAgdm9pZCBzZXRUb0JvZ3VzKCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBib2d1
cyBzdGF0ZS4gTG9jYWxlIG9iamVjdCBjYW4gYmUgYm9ndXMgaWYgaXQgZG9lc24ndCBleGlzdAor
ICAgICAqIEByZXR1cm4gRkFMU0UgaWYgaXQgaXMgYSByZWFsIGxvY2FsZSwgVFJVRSBpZiBpdCBp
cyBhIGJvZ3VzIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIFVC
b29sIGlzQm9ndXModm9pZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlz
dCBvZiBhbGwgaW5zdGFsbGVkIGxvY2FsZXMuCisgICAgICogQHBhcmFtIGNvdW50IFJlY2VpdmVz
IHRoZSBudW1iZXIgb2YgbG9jYWxlcyBpbiB0aGUgbGlzdC4KKyAgICAgKiBAcmV0dXJuICAgICAg
QSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIExvY2FsZSBvYmplY3RzLiAgVGhpcyBhcnJheSBpcyB0
aGUgbGlzdAorICAgICAqICAgICAgICAgICAgICBvZiBhbGwgbG9jYWxlcyB3aXRoIGluc3RhbGxl
ZCByZXNvdXJjZSBmaWxlcy4gIFRoZSBjYWxsZWQgZG9lcyBOT1QKKyAgICAgKiAgICAgICAgICAg
ICAgZ2V0IG93bmVyc2hpcCBvZiB0aGlzIGxpc3QsIGFuZCBtdXN0IE5PVCBkZWxldGUgaXQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSog
VV9FWFBPUlQyIGdldEF2YWlsYWJsZUxvY2FsZXMoaW50MzJfdCYgY291bnQpOworCisgICAgLyoq
CisgICAgICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSAyLWxldHRlciBjb3VudHJ5IGNv
ZGVzIGRlZmluZWQgaW4gSVNPIDMxNjYuICBUaGlzIGlzIGEKKyAgICAgKiBwb2ludGVyIHRvIGFu
IGFycmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBvZiBjaGFyLiAgQWxsIG9mIHRoZXNlIHBvaW50
ZXJzIGFyZQorICAgICAqIG93bmVkIGJ5IElDVS0tIGRvIG5vdCBkZWxldGUgdGhlbSwgYW5kIGRv
IG5vdCB3cml0ZSB0aHJvdWdoIHRoZW0uICBUaGUgYXJyYXkgaXMKKyAgICAgKiB0ZXJtaW5hdGVk
IHdpdGggYSBudWxsIHBvaW50ZXIuCisgICAgICogQHJldHVybiBhIGxpc3Qgb2YgYWxsIGF2YWls
YWJsZSBjb3VudHJ5IGNvZGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0KiBVX0VYUE9SVDIgZ2V0SVNPQ291bnRyaWVzKCk7CisK
KyAgICAvKioKKyAgICAgKiBHZXRzIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGxhbmd1YWdlIGNv
ZGVzIGRlZmluZWQgaW4gSVNPIDYzOS4gIFRoaXMgaXMgYSBwb2ludGVyCisgICAgICogdG8gYW4g
YXJyYXkgb2YgcG9pbnRlcnMgdG8gYXJyYXlzIG9mIGNoYXIuICBBbGwgb2YgdGhlc2UgcG9pbnRl
cnMgYXJlIG93bmVkCisgICAgICogYnkgSUNVLS0gZG8gbm90IGRlbGV0ZSB0aGVtLCBhbmQgZG8g
bm90IHdyaXRlIHRocm91Z2ggdGhlbS4gIFRoZSBhcnJheSBpcworICAgICAqIHRlcm1pbmF0ZWQg
d2l0aCBhIG51bGwgcG9pbnRlci4KKyAgICAgKiBAcmV0dXJuIGEgbGlzdCBvZiBhbGwgYXZhaWxh
YmxlIGxhbmd1YWdlIGNvZGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0KiBVX0VYUE9SVDIgZ2V0SVNPTGFuZ3VhZ2VzKCk7CisK
KyAgICAvKioKKyAgICAgKiBJQ1UgInBvb3IgbWFuJ3MgUlRUSSIsIHJldHVybnMgYSBVQ2xhc3NJ
RCBmb3IgdGhpcyBjbGFzcy4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAq
LworICAgIHN0YXRpYyBVQ2xhc3NJRCBVX0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCgpOworCisg
ICAgLyoqCisgICAgICogSUNVICJwb29yIG1hbidzIFJUVEkiLCByZXR1cm5zIGEgVUNsYXNzSUQg
Zm9yIHRoZSBhY3R1YWwgY2xhc3MuCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKCkgY29uc3Q7CisK
K3Byb3RlY3RlZDogLyogb25seSBwcm90ZWN0ZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMuIERPIE5P
VCBVU0UuICovCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgKiBT
ZXQgdGhpcyBmcm9tIGEgc2luZ2xlIFBPU0lYIHN0eWxlIGxvY2FsZSBzdHJpbmcuCisgICAgICog
QGludGVybmFsCisgICAgICovCisgICAgdm9pZCBzZXRGcm9tUE9TSVhJRChjb25zdCBjaGFyICpw
b3NpeElEKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCitwcml2YXRlOgor
ICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgdGhlIGxvY2FsZSBvYmplY3Qgd2l0aCBhIG5ldyBu
YW1lLgorICAgICAqIFdhcyBkZXByZWNhdGVkIC0gdXNlZCBpbiBpbXBsZW1lbnRhdGlvbiAtIG1v
dmVkIGludGVybmFsCisgICAgICoKKyAgICAgKiBAcGFyYW0gY0xvY2FsZUlEIFRoZSBuZXcgbG9j
YWxlIG5hbWUuCisgICAgICogQHBhcmFtIGNhbm9uaWNhbGl6ZSB3aGV0aGVyIHRvIGNhbGwgdWxv
Y19jYW5vbmljYWxpemUgb24gY0xvY2FsZUlECisgICAgICovCisgICAgTG9jYWxlJiBpbml0KGNv
bnN0IGNoYXIqIGNMb2NhbGVJRCwgVUJvb2wgY2Fub25pY2FsaXplKTsKKworICAgIC8qCisgICAg
ICogSW50ZXJuYWwgY29uc3RydWN0b3IgdG8gYWxsb3cgY29uc3RydWN0aW9uIG9mIGEgbG9jYWxl
IG9iamVjdCB3aXRoCisgICAgICogICBOTyBzaWRlIGVmZmVjdHMuICAgKERlZmF1bHQgY29uc3Ry
dWN0b3IgdHJpZXMgdG8gZ2V0CisgICAgICogICB0aGUgZGVmYXVsdCBsb2NhbGUuKQorICAgICAq
LworICAgIGVudW0gRUxvY2FsZVR5cGUgeworICAgICAgICBlQk9HVVMKKyAgICB9OworICAgIExv
Y2FsZShFTG9jYWxlVHlwZSk7CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHRoZSBsb2Nh
bGUgY2FjaGUgZm9yIGNvbW1vbmx5IHVzZWQgbG9jYWxlcworICAgICAqLworICAgIHN0YXRpYyBM
b2NhbGUgKmdldExvY2FsZUNhY2hlKHZvaWQpOworCisgICAgY2hhciBsYW5ndWFnZVtVTE9DX0xB
TkdfQ0FQQUNJVFldOworICAgIGNoYXIgc2NyaXB0W1VMT0NfU0NSSVBUX0NBUEFDSVRZXTsKKyAg
ICBjaGFyIGNvdW50cnlbVUxPQ19DT1VOVFJZX0NBUEFDSVRZXTsKKyAgICBpbnQzMl90IHZhcmlh
bnRCZWdpbjsKKyAgICBjaGFyKiBmdWxsTmFtZTsKKyAgICBjaGFyIGZ1bGxOYW1lQnVmZmVyW1VM
T0NfRlVMTE5BTUVfQ0FQQUNJVFldOworICAgIC8vIG5hbWUgd2l0aG91dCBrZXl3b3JkcworICAg
IGNoYXIqIGJhc2VOYW1lOworICAgIHZvaWQgaW5pdEJhc2VOYW1lKFVFcnJvckNvZGUmIHN0YXR1
cyk7CisKKyAgICBVQm9vbCBmSXNCb2d1czsKKworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJmdl
dExvY2FsZShpbnQgbG9jaWQpOworCisgICAgLyoqCisgICAgICogQSBmcmllbmQgdG8gYWxsb3cg
dGhlIGRlZmF1bHQgbG9jYWxlIHRvIGJlIHNldCBieSBlaXRoZXIgdGhlIEMgb3IgQysrIEFQSS4K
KyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBmcmllbmQgTG9jYWxlICpsb2NhbGVfc2V0
X2RlZmF1bHRfaW50ZXJuYWwoY29uc3QgY2hhciAqLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisg
ICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgZnJpZW5kIHZvaWQgVV9DQUxM
Q09OViBsb2NhbGVfYXZhaWxhYmxlX2luaXQoKTsKK307CisKK2lubGluZSBVQm9vbAorTG9jYWxl
OjpvcGVyYXRvciE9KGNvbnN0ICAgIExvY2FsZSYgICAgIG90aGVyKSBjb25zdAoreworICAgIHJl
dHVybiAhb3BlcmF0b3I9PShvdGhlcik7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2Fs
ZTo6Z2V0Q291bnRyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvdW50cnk7Cit9CisKK2lubGlu
ZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0TGFuZ3VhZ2UoKSBjb25zdAoreworICAgIHJldHVy
biBsYW5ndWFnZTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRTY3JpcHQo
KSBjb25zdAoreworICAgIHJldHVybiBzY3JpcHQ7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoK
K0xvY2FsZTo6Z2V0VmFyaWFudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICZiYXNlTmFtZVt2YXJp
YW50QmVnaW5dOworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldE5hbWUoKSBj
b25zdAoreworICAgIHJldHVybiBmdWxsTmFtZTsKK30KKworaW5saW5lIFVCb29sCitMb2NhbGU6
OmlzQm9ndXModm9pZCkgY29uc3QgeworICAgIHJldHVybiBmSXNCb2d1czsKK30KKworVV9OQU1F
U1BBQ0VfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9y
YmJpLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JiYmkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDc1OThh
NTBlNmZhM2JhYjJhZDQ5ZTAyMmFhZjM5NmNhYzMyOWU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmgKQEAgLTAsMCArMSw3ODIgQEAKKy8qCisqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxNCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uICAgKgorKiAgIGFuZCBvdGhlcnMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAg
ICAgIERlc2NyaXB0aW9uCisqICAgMTAvMjIvOTkgICAgYWxhbiAgICAgICAgQ3JlYXRpb24uCisq
ICAgMTEvMTEvOTkgICAgcmdpbGxhbSAgICAgQ29tcGxldGUgcG9ydCBmcm9tIEphdmEuCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisqLworCisjaWZuZGVmIFJCQklfSAorI2RlZmluZSBSQkJJX0gKKworI2luY2x1
ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJ
OiBSdWxlIEJhc2VkIEJyZWFrIEl0ZXJhdG9yCisgKi8KKworI2lmICFVQ09ORklHX05PX0JSRUFL
X0lURVJBVElPTgorCisjaW5jbHVkZSAidW5pY29kZS9icmtpdGVyLmgiCisjaW5jbHVkZSAidW5p
Y29kZS91ZGF0YS5oIgorI2luY2x1ZGUgInVuaWNvZGUvcGFyc2VlcnIuaCIKKyNpbmNsdWRlICJ1
bmljb2RlL3NjaHJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2hyaXRlci5oIgorCisKK3N0
cnVjdCBVVHJpZTsKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqIEBpbnRlcm5hbCAqLworc3Ry
dWN0IFJCQklEYXRhSGVhZGVyOworY2xhc3MgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JUYWJsZXM7
CitjbGFzcyAgQnJlYWtJdGVyYXRvcjsKK2NsYXNzICBSQkJJRGF0YVdyYXBwZXI7CitjbGFzcyAg
VVN0YWNrOworY2xhc3MgIExhbmd1YWdlQnJlYWtFbmdpbmU7CitjbGFzcyAgVW5oYW5kbGVkRW5n
aW5lOworc3RydWN0IFJCQklTdGF0ZVRhYmxlOworCisKKworCisvKioKKyAqCisgKiBBIHN1YmNs
YXNzIG9mIEJyZWFrSXRlcmF0b3Igd2hvc2UgYmVoYXZpb3IgaXMgc3BlY2lmaWVkIHVzaW5nIGEg
bGlzdCBvZiBydWxlcy4KKyAqIDxwPkluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGFyZSBtb3N0IGNv
bW1vbmx5IGNyZWF0ZWQgYnkgdGhlIGZhY3RvcnkgbWV0aG9kcyBvZgorICogIEJyZWFrSXRlcmF0
b3I6OmNyZWF0ZVdvcmRJbnN0YW5jZSgpLCBCcmVha0l0ZXJhdG9yOjpjcmVhdGVMaW5lSW5zdGFu
Y2UoKSwgZXRjLiwKKyAqICBhbmQgdGhlbiB1c2VkIHZpYSB0aGUgYWJzdHJhY3QgQVBJIGluIGNs
YXNzIEJyZWFrSXRlcmF0b3I8L3A+CisgKgorICogPHA+U2VlIHRoZSBJQ1UgVXNlciBHdWlkZSBm
b3IgaW5mb3JtYXRpb24gb24gQnJlYWsgSXRlcmF0b3IgUnVsZXMuPC9wPgorICoKKyAqIDxwPlRo
aXMgY2xhc3MgaXMgbm90IGludGVuZGVkIHRvIGJlIHN1YmNsYXNzZWQuICAoQ2xhc3MgRGljdGlv
bmFyeUJhc2VkQnJlYWtJdGVyYXRvcgorICogICAgaXMgYSBzdWJjbGFzcywgYnV0IHRoYXQgcmVs
YXRpb25zaGlwIGlzIGVmZmVjdGl2ZWx5IGludGVybmFsIHRvIHRoZSBJQ1UKKyAqICAgIGltcGxl
bWVudGF0aW9uLiAgVGhlIHN1YmNsYXNzaW5nIGludGVyZmFjZSB0byBSdWxlc0Jhc2VkQnJlYWtJ
dGVyYXRvciBpcworICogICAgbm90IHBhcnQgb2YgdGhlIElDVSBBUEksIGFuZCBtYXkgbm90IHJl
bWFpbiBzdGFibGUuPC9wPgorICoKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIFJ1bGVCYXNlZEJy
ZWFrSXRlcmF0b3IgLypVX0ZJTkFMKi8gOiBwdWJsaWMgQnJlYWtJdGVyYXRvciB7CisKK3Byb3Rl
Y3RlZDoKKyAgICAvKioKKyAgICAgKiBUaGUgVVRleHQgdGhyb3VnaCB3aGljaCB0aGlzIEJyZWFr
SXRlcmF0b3IgYWNjZXNzZXMgdGhlIHRleHQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAg
ICBVVGV4dCAgKmZUZXh0OworCisgICAgLyoqCisgICAgICogICBBIGNoYXJhY3RlciBpdGVyYXRv
ciB0aGF0IHJlZmVycyB0byB0aGUgc2FtZSB0ZXh0IGFzIHRoZSBVVGV4dCwgYWJvdmUuCisgICAg
ICogICBPbmx5IGluY2x1ZGVkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggb2xkIEFQSSwgd2hpY2gg
d2FzIGJhc2VkIG9uIENoYXJhY3Rlckl0ZXJhdG9ycy4KKyAgICAgKiAgIFZhbHVlIG1heSBiZSBh
ZG9wdGVkIGZyb20gb3V0c2lkZSwgb3Igb25lIG9mIGZTQ2hhckl0ZXIgb3IgZkRDaGFySXRlciwg
YmVsb3cuCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IgICpmQ2hhckl0ZXI7CisKKyAg
ICAvKioKKyAgICAgKiAgIFdoZW4gdGhlIGlucHV0IHRleHQgaXMgcHJvdmlkZWQgYnkgYSBVbmlj
b2RlU3RyaW5nLCB0aGlzIHdpbGwgcG9pbnQgdG8KKyAgICAgKiAgICBhIGNoYXJhY3Rlckl0ZXJh
dG9yIHRoYXQgd3JhcHMgdGhhdCBkYXRhLiAgTmVlZGVkIG9ubHkgZm9yIHRoZQorICAgICAqICAg
IGltcGxlbWVudGF0aW9uIG9mIGdldFRleHQoKSwgYSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBp
c3N1ZS4KKyAgICAgKi8KKyAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciAqZlNDaGFySXRlcjsK
KworICAgIC8qKgorICAgICAqICBXaGVuIHRoZSBpbnB1dCB0ZXh0IGlzIHByb3ZpZGVkIGJ5IGEg
VVRleHQsIHRoaXMKKyAgICAgKiAgICBkdW1teSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIGFuIGVt
cHR5IHN0cmluZyB3aWxsCisgICAgICogICAgYmUgcmV0dXJuZWQgZnJvbSBnZXRUZXh0KCkKKyAg
ICAgKi8KKyAgICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yICpmRENoYXJJdGVyOworCisgICAgLyoq
CisgICAgICogVGhlIHJ1bGUgZGF0YSBmb3IgdGhpcyBCcmVha0l0ZXJhdG9yIGluc3RhbmNlCisg
ICAgICogQGludGVybmFsCisgICAgICovCisgICAgUkJCSURhdGFXcmFwcGVyICAgICpmRGF0YTsK
KworICAgIC8qKiBJbmRleCBvZiB0aGUgUnVsZSB7dGFnfSB2YWx1ZXMgZm9yIHRoZSBtb3N0IHJl
Y2VudCBtYXRjaC4KKyAgICAgKiAgQGludGVybmFsCisgICAgKi8KKyAgICBpbnQzMl90ICAgICAg
ICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4OworCisgICAgLyoqCisgICAgICogUnVsZSB0YWcg
dmFsdWUgdmFsaWQgZmxhZy4KKyAgICAgKiBTb21lIGl0ZXJhdG9yIG9wZXJhdGlvbnMgZG9uJ3Qg
aW50cmluc2ljYWxseSBzZXQgdGhlIGNvcnJlY3QgdGFnIHZhbHVlLgorICAgICAqIFRoaXMgZmxh
ZyBsZXRzIHVzIGxhemlseSBjb21wdXRlIHRoZSB2YWx1ZSBpZiB3ZSBhcmUgZXZlciBhc2tlZCBm
b3IgaXQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVUJvb2wgICAgICAgICAgICAg
ICBmTGFzdFN0YXR1c0luZGV4VmFsaWQ7CisKKyAgICAvKioKKyAgICAgKiBDb3VudGVyIGZvciB0
aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgZW5jb3VudGVyZWQgd2l0aCB0aGUgImRpY3Rpb25hcnki
CisgICAgICogICBmbGFnIHNldC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB1aW50
MzJfdCAgICAgICAgICAgIGZEaWN0aW9uYXJ5Q2hhckNvdW50OworCisgICAgLyoqCisgICAgICog
V2hlbiBhIHJhbmdlIG9mIGNoYXJhY3RlcnMgaXMgZGl2aWRlZCB1cCB1c2luZyB0aGUgZGljdGlv
bmFyeSwgdGhlIGJyZWFrCisgICAgICogcG9zaXRpb25zIHRoYXQgYXJlIGRpc2NvdmVyZWQgYXJl
IHN0b3JlZCBoZXJlLCBwcmV2ZW50aW5nIHVzIGZyb20gaGF2aW5nCisgICAgICogdG8gdXNlIGVp
dGhlciB0aGUgZGljdGlvbmFyeSBvciB0aGUgc3RhdGUgdGFibGUgYWdhaW4gdW50aWwgdGhlIGl0
ZXJhdG9yCisgICAgICogbGVhdmVzIHRoaXMgcmFuZ2Ugb2YgdGV4dC4gSGFzIHRoZSBtb3N0IGlt
cGFjdCBmb3IgbGluZSBicmVha2luZy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBp
bnQzMl90KiAgICAgICAgICAgIGZDYWNoZWRCcmVha1Bvc2l0aW9uczsKKworICAgIC8qKgorICAg
ICAqIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gZkNhY2hlZEJyZWFrUG9zaXRpb25zCisgICAg
ICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmTnVtQ2FjaGVk
QnJlYWtQb3NpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBpZiBmQ2FjaGVkQnJlYWtQb3NpdGlv
bnMgaXMgbm90IG51bGwsIHRoaXMgaW5kaWNhdGVzIHdoaWNoIGl0ZW0gaW4gdGhlCisgICAgICog
Y2FjaGUgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHJlZmVycyB0bworICAgICAqIEBp
bnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZlBvc2l0aW9uSW5DYWNo
ZTsKKyAgICAKKyAgICAvKioKKyAgICAgKgorICAgICAqIElmIHByZXNlbnQsIFVTdGFjayBvZiBM
YW5ndWFnZUJyZWFrRW5naW5lIG9iamVjdHMgdGhhdCBtaWdodCBoYW5kbGUKKyAgICAgKiBkaWN0
aW9uYXJ5IGNoYXJhY3RlcnMuIFNlYXJjaGVkIGZyb20gdG9wIHRvIGJvdHRvbSB0byBmaW5kIGFu
IG9iamVjdCB0bworICAgICAqIGhhbmRsZSBhIGdpdmVuIGNoYXJhY3Rlci4KKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBVU3RhY2sgICAgICAgICAgICAgICpmTGFuZ3VhZ2VCcmVha0Vu
Z2luZXM7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAgKiBJZiBwcmVzZW50LCB0aGUgc3Bl
Y2lhbCBMYW5ndWFnZUJyZWFrRW5naW5lIHVzZWQgZm9yIGhhbmRsaW5nCisgICAgICogY2hhcmFj
dGVycyB0aGF0IGFyZSBpbiB0aGUgZGljdGlvbmFyeSBzZXQsIGJ1dCBub3QgaGFuZGxlZCBieSBh
bnkKKyAgICAgKiBMYW5ndWdhZ2VCcmVha0VuZ2luZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAg
Ki8KKyAgICBVbmhhbmRsZWRFbmdpbmUgICAgICpmVW5oYW5kbGVkQnJlYWtFbmdpbmU7CisgICAg
CisgICAgLyoqCisgICAgICoKKyAgICAgKiBUaGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3Is
IG9yIC0xIGlmIGl0IGhhcyBub3QgYmVlbiBzZXQuCisgICAgICogQGludGVybmFsCisgICAgICov
CisgICAgaW50MzJfdCAgICAgICAgICAgICBmQnJlYWtUeXBlOworICAgIAorcHJvdGVjdGVkOgor
ICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBjb25zdHJ1Y3RvcnMKKyAgICAvLz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAqIENv
bnN0YW50IHRvIGJlIHVzZWQgaW4gdGhlIGNvbnN0cnVjdG9yCisgICAgICogUnVsZUJhc2VkQnJl
YWtJdGVyYXRvcihSQkJJRGF0YUhlYWRlciosIEVEb250QWRvcHQsIFVFcnJvckNvZGUgJik7Cisg
ICAgICogd2hpY2ggZG9lcyBub3QgYWRvcHQgdGhlIG1lbW9yeSBpbmRpY2F0ZWQgYnkgdGhlIFJC
QklEYXRhSGVhZGVyKgorICAgICAqIHBhcmFtZXRlci4KKyAgICAgKgorICAgICAqIEBpbnRlcm5h
bAorICAgICAqLworICAgIGVudW0gRURvbnRBZG9wdCB7CisgICAgICAgIGtEb250QWRvcHQKKyAg
ICB9OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgZnJvbSBhIGZsYXR0ZW5lZCBzZXQg
b2YgUkJCSSBkYXRhIGluIG1hbGxvY2VkIG1lbW9yeS4KKyAgICAgKiAgICAgICAgICAgICBSdWxl
c0Jhc2VkQnJlYWtJdGVyYXRvcnMgYnVpbHQgZnJvbSBhIGN1c3RvbSBzZXQgb2YgcnVsZXMKKyAg
ICAgKiAgICAgICAgICAgICBhcmUgY3JlYXRlZCB2aWEgdGhpcyBjb25zdHJ1Y3RvcjsgdGhlIHJ1
bGVzIGFyZSBjb21waWxlZAorICAgICAqICAgICAgICAgICAgIGludG8gbWVtb3J5LCB0aGVuIHRo
ZSBicmVhayBpdGVyYXRvciBpcyBjb25zdHJ1Y3RlZCBoZXJlLgorICAgICAqCisgICAgICogICAg
ICAgICAgICAgVGhlIGJyZWFrIGl0ZXJhdG9yIGFkb3B0cyB0aGUgbWVtb3J5LCBhbmQgd2lsbAor
ICAgICAqICAgICAgICAgICAgIGZyZWUgaXQgd2hlbiBkb25lLgorICAgICAqIEBpbnRlcm5hbAor
ICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoUkJCSURhdGFIZWFkZXIqIGRhdGEs
IFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmcm9t
IGEgZmxhdHRlbmVkIHNldCBvZiBSQkJJIGRhdGEgaW4gbWVtb3J5IHdoaWNoIG5lZWQgbm90Cisg
ICAgICogICAgICAgICAgICAgYmUgbWFsbG9jZWQgKGUuZy4gaXQgbWF5IGJlIGEgbWVtb3J5LW1h
cHBlZCBmaWxlLCBldGMuKS4KKyAgICAgKgorICAgICAqICAgICAgICAgICAgIFRoaXMgdmVyc2lv
biBkb2VzIG5vdCBhZG9wdCB0aGUgbWVtb3J5LCBhbmQgZG9lcyBub3QKKyAgICAgKiAgICAgICAg
ICAgICBmcmVlIGl0IHdoZW4gZG9uZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBS
dWxlQmFzZWRCcmVha0l0ZXJhdG9yKGNvbnN0IFJCQklEYXRhSGVhZGVyKiBkYXRhLCBlbnVtIEVE
b250QWRvcHQgZG9udEFkb3B0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworI2VuZGlmICAvKiBVX0hJ
REVfSU5URVJOQUxfQVBJICovCisKKworICAgIGZyaWVuZCBjbGFzcyBSQkJJUnVsZUJ1aWxkZXI7
CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIGZyaWVuZCBjbGFzcyBCcmVha0l0ZXJhdG9yOwor
CisKKworcHVibGljOgorCisgICAgLyoqIERlZmF1bHQgY29uc3RydWN0b3IuICBDcmVhdGVzIGFu
IGVtcHR5IHNoZWxsIG9mIGFuIGl0ZXJhdG9yLCB3aXRoIG5vCisgICAgICogIHJ1bGVzIG9yIHRl
eHQgdG8gaXRlcmF0ZSBvdmVyLiAgIE9iamVjdCBjYW4gc3Vic2VxdWVudGx5IGJlIGFzc2lnbmVk
IHRvLgorICAgICAqICBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVh
a0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBDb3B5IGNvbnN0cnVjdG9yLiAgV2lsbCBw
cm9kdWNlIGEgYnJlYWsgaXRlcmF0b3Igd2l0aCB0aGUgc2FtZSBiZWhhdmlvciwKKyAgICAgKiBh
bmQgd2hpY2ggaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSB0ZXh0LCBhcyB0aGUgb25lIHBhc3NlZCBp
bi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBwYXNzZWQg
dG8gYmUgY29waWVkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgUnVsZUJh
c2VkQnJlYWtJdGVyYXRvcihjb25zdCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yJiB0aGF0KTsKKwor
ICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZnJvbSBh
IHNldCBvZiBydWxlcyBzdXBwbGllZCBhcyBhIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gcnVsZXMg
VGhlIGJyZWFrIHJ1bGVzIHRvIGJlIHVzZWQuCisgICAgICogQHBhcmFtIHBhcnNlRXJyb3IgIElu
IHRoZSBldmVudCBvZiBhIHN5bnRheCBlcnJvciBpbiB0aGUgcnVsZXMsIHByb3ZpZGVzIHRoZSBs
b2NhdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICB3aXRoaW4gdGhlIHJ1bGVzIG9mIHRo
ZSBwcm9ibGVtLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24gYW55IGVycm9y
cyBlbmNvdW50ZXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBSdWxl
QmFzZWRCcmVha0l0ZXJhdG9yKCBjb25zdCBVbmljb2RlU3RyaW5nICAgICZydWxlcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVVBhcnNlRXJyb3IgICAgICAgICAgICZwYXJzZUVycm9y
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICAgICAgICAgICAgJnN0
YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDb250cnVjdCBhIFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3IgZnJvbSBhIHNldCBvZiBwcmVjb21waWxlZCBiaW5hcnkgcnVsZXMuCisgICAgICogQmluYXJ5
IHJ1bGVzIGFyZSBvYnRhaW5lZCBmcm9tIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yOjpnZXRCaW5h
cnlSdWxlcygpLgorICAgICAqIENvbnN0cnVjdGlvbiBvZiBhIGJyZWFrIGl0ZXJhdG9yIGluIHRo
aXMgd2F5IGlzIHN1YnN0YW50aWFsbHkgZmFzdGVyIHRoYW4KKyAgICAgKiBjb25zdHVjdGlvbiBm
cm9tIHNvdXJjZSBydWxlcy4KKyAgICAgKgorICAgICAqIE93bmVyc2hpcCBvZiB0aGUgc3RvcmFn
ZSBjb250YWluaW5nIHRoZSBjb21waWxlZCBydWxlcyByZW1haW5zIHdpdGggdGhlCisgICAgICog
Y2FsbGVyIG9mIHRoaXMgZnVuY3Rpb24uICBUaGUgY29tcGlsZWQgcnVsZXMgbXVzdCBub3QgYmUg
IG1vZGlmaWVkIG9yIAorICAgICAqIGRlbGV0ZWQgZHVyaW5nIHRoZSBsaWZlIG9mIHRoZSBicmVh
ayBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIFRoZSBjb21waWxlZCBydWxlcyBhcmUgbm90IGNv
bXBhdGlibGUgYWNyb3NzIGRpZmZlcmVudCBtYWpvciB2ZXJzaW9ucyBvZiBJQ1UuCisgICAgICog
VGhlIGNvbXBpbGVkIHJ1bGVzIGFyZSBjb21hcHRpYmxlIG9ubHkgYmV0d2VlbiBtYWNoaW5lcyB3
aXRoIHRoZSBzYW1lCisgICAgICogYnl0ZSBvcmRlcmluZyAobGl0dGxlIG9yIGJpZyBlbmRpYW4p
IGFuZCB0aGUgc2FtZSBiYXNlIGNoYXJhY3RlciBzZXQgZmFtaWx5CisgICAgICogKEFTQ0lJIG9y
IEVCQ0RJQykuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRCaW5hcnlSdWxlcworICAgICAqIEBw
YXJhbSBjb21waWxlZFJ1bGVzIEEgcG9pbnRlciB0byB0aGUgY29tcGlsZWQgYnJlYWsgcnVsZXMg
dG8gYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gcnVsZUxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBj
b21waWxlZCBicmVhayBydWxlcywgaW4gYnl0ZXMuICBUaGlzCisgICAgICogICBjb3JyZXNwb25k
cyB0byB0aGUgbGVuZ3RoIHZhbHVlIHByb2R1Y2VkIGJ5IGdldEJpbmFyeVJ1bGVzKCkuCisgICAg
ICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkgZXJyb3JzIGVuY291bnRlcmVkLCBp
bmNsdWRpbmcgaW52YWxpZAorICAgICAqICAgYmluYXJ5IHJ1bGVzLgorICAgICAqIEBzdGFibGUg
SUNVIDQuOAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoY29uc3QgdWludDhf
dCAqY29tcGlsZWRSdWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAg
ICAgIHJ1bGVMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICAg
ICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVGhpcyBjb25zdHJ1Y3RvciB1c2VzIHRoZSB1
ZGF0YSBpbnRlcmZhY2UgdG8gY3JlYXRlIGEgQnJlYWtJdGVyYXRvcgorICAgICAqIHdob3NlIGlu
dGVybmFsIHRhYmxlcyBsaXZlIGluIGEgbWVtb3J5LW1hcHBlZCBmaWxlLiAgImltYWdlIiBpcyBh
bgorICAgICAqIElDVSBVRGF0YU1lbW9yeSBoYW5kbGUgZm9yIHRoZSBwcmUtY29tcGlsZWQgYnJl
YWsgaXRlcmF0b3IgdGFibGVzLgorICAgICAqIEBwYXJhbSBpbWFnZSBoYW5kbGUgdG8gdGhlIG1l
bW9yeSBpbWFnZSBmb3IgdGhlIGJyZWFrIGl0ZXJhdG9yIGRhdGEuCisgICAgICogICAgICAgIE93
bmVyc2hpcCBvZiB0aGUgVURhdGFNZW1vcnkgaGFuZGxlIHBhc3NlcyB0byB0aGUgQnJlYWsgSXRl
cmF0b3IsCisgICAgICogICAgICAgIHdoaWNoIHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIGNsb3Np
bmcgaXQgd2hlbiBpdCBpcyBubyBsb25nZXIgbmVlZGVkLgorICAgICAqIEBwYXJhbSBzdGF0dXMg
SW5mb3JtYXRpb24gb24gYW55IGVycm9ycyBlbmNvdW50ZXJlZC4KKyAgICAgKiBAc2VlIHVkYXRh
X29wZW4KKyAgICAgKiBAc2VlICNnZXRCaW5hcnlSdWxlcworICAgICAqIEBzdGFibGUgSUNVIDIu
OAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoVURhdGFNZW1vcnkqIGltYWdl
LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3RvcgorICAg
ICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIH5SdWxlQmFzZWRCcmVh
a0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgU2V0
cyB0aGlzIGl0ZXJhdG9yIHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsCisgICAgICogYW5kIGl0
ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LCBhcyB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAgKiBA
cGFyYW0gdGhhdCBUaGUgUnVsZUJhc2VkQnJlYWtJdGVydG9yIHBhc3NlZCBpbgorICAgICAqIEBy
ZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAqICBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yJiBvcGVy
YXRvcj0oY29uc3QgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciYgdGhhdCk7CisKKyAgICAvKioKKyAg
ICAgKiBFcXVhbGl0eSBvcGVyYXRvci4gIFJldHVybnMgVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0
b3JzIGFyZSBvZiB0aGUKKyAgICAgKiBzYW1lIGNsYXNzLCBoYXZlIHRoZSBzYW1lIGJlaGF2aW9y
LCBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHRleHQuCisgICAgICogQHBhcmFtIHRoYXQgVGhl
IEJyZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5CisgICAgICogQHJldHVy
biBUUlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG9mIHRoZQorICAgICAqIHNhbWUgY2xh
c3MsIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsIGFuZCBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgdGV4
dC4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBv
cGVyYXRvcj09KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHRoYXQpIGNvbnN0OworCisgICAgLyoqCisg
ICAgICogTm90LWVxdWFsIG9wZXJhdG9yLiAgSWYgb3BlcmF0b3I9PSByZXR1cm5zIFRSVUUsIHRo
aXMgcmV0dXJucyBGQUxTRSwKKyAgICAgKiBhbmQgdmljZSB2ZXJzYS4KKyAgICAgKiBAcGFyYW0g
dGhhdCBUaGUgQnJlYWtJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgaW5lcXVhbGl0eQorICAg
ICAqIEByZXR1cm4gVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBub3Qgc2FtZS4KKyAg
ICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVUJvb2wgb3BlcmF0b3IhPShjb25z
dCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMg
YSBuZXdseS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHdpdGggdGhlIHNhbWUK
KyAgICAgKiBiZWhhdmlvciwgYW5kIGl0ZXJhdGluZyBvdmVyIHRoZSBzYW1lIHRleHQsIGFzIHRo
aXMgb25lLgorICAgICAqIERpZmZlcnMgZnJvbSB0aGUgY29weSBjb25zdHJ1Y3RvciBpbiB0aGF0
IGl0IGlzIHBvbHltb3JwaGljLCBhbmQKKyAgICAgKiB3aWxsIGNvcnJlY3RseSBjbG9uZSAoY29w
eSkgYSBkZXJpdmVkIGNsYXNzLgorICAgICAqIGNsb25lKCkgaXMgdGhyZWFkIHNhZmUuICBNdWx0
aXBsZSB0aHJlYWRzIG1heSBzaW11bHRhZW5lb3VzbHkKKyAgICAgKiBjbG9uZSB0aGUgc2FtZSBz
b3VyY2UgYnJlYWsgaXRlcmF0b3IuCisgICAgICogQHJldHVybiBhIG5ld2x5LWNvbnN0cnVjdGVk
IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IqIGNsb25lKCkgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBDb21wdXRlIGEgaGFzaCBjb2RlIGZvciB0aGlzIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBA
cmV0dXJuIEEgaGFzaCBjb2RlCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBoYXNoQ29kZSh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIGRlc2NyaXB0aW9uIHVzZWQgdG8gY3JlYXRlIHRoaXMgaXRlcmF0b3IKKyAg
ICAgKiBAcmV0dXJuIHRoZSBkZXNjcmlwdGlvbiB1c2VkIHRvIGNyZWF0ZSB0aGlzIGl0ZXJhdG9y
CisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgY29uc3QgVW5p
Y29kZVN0cmluZyYgZ2V0UnVsZXModm9pZCkgY29uc3Q7CisKKyAgICAvLz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisgICAgLy8gQnJlYWtJdGVyYXRvciBvdmVycmlkZXMKKyAgICAvLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisK
KyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBSZXR1cm4gYSBDaGFyYWN0ZXJJdGVyYXRvciBv
dmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIFRoZSByZXR1cm5lZCBjaGFyYWN0
ZXIgaXRlcmF0b3IgaXMgb3duZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLCBhbmQgbXVzdAorICAg
ICAqIG5vdCBiZSBkZWxldGVkIGJ5IHRoZSBjYWxsZXIuICBSZXBlYXRlZCBjYWxscyB0byB0aGlz
IGZ1bmN0aW9uIG1heQorICAgICAqIHJldHVybiB0aGUgc2FtZSBDaGFyYWN0ZXJJdGVyYXRvci4K
KyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhlIHJldHVybmVkIGNoYXJhY3RlciBp
dGVyYXRvciBtdXN0IG5vdCBiZSB1c2VkIGNvbmN1cnJlbnRseSB3aXRoCisgICAgICogdGhlIGJy
ZWFrIGl0ZXJhdG9yLiAgSWYgY29uY3VycmVudCBvcGVyYXRpb24gaXMgbmVlZGVkLCBjbG9uZSB0
aGUKKyAgICAgKiByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0b3IgZmlyc3QgYW5kIG9wZXJhdGUg
b24gdGhlIGNsb25lLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIHRoZSBi
cmVhayBpdGVyYXRvciBpcyBvcGVyYXRpbmcgb24gdGV4dCBzdXBwbGllZCB2aWEgYSBVVGV4dCwK
KyAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgZmFpbC4gIExhY2tpbmcgYW55IHdheSB0byBzaWdu
YWwgZmFpbHVyZXMsIGl0CisgICAgICogcmV0dXJucyBhbiBDaGFyYWN0ZXJJdGVyYXRvciBjb250
YWluaW5nIG5vIHRleHQuCisgICAgICogVGhlIGZ1bmN0aW9uIGdldFVUZXh0KCkgcHJvdmlkZXMg
c2ltaWxhciBmdW5jdGlvbmFsaXR5LAorICAgICAqIGlzIHJlbGlhYmxlLCBhbmQgaXMgbW9yZSBl
ZmZpY2llbnQuCisgICAgICogPC9wPgorICAgICAqCisgICAgICogVE9ETzogIGRlcHJlY2F0ZSB0
aGlzIGZ1bmN0aW9uPworICAgICAqCisgICAgICogQHJldHVybiBBbiBpdGVyYXRvciBvdmVyIHRo
ZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgIENoYXJhY3Rlckl0ZXJhdG9yJiBnZXRUZXh0KHZvaWQpIGNvbnN0OworCisK
KyAgICAvKioKKyAgICAgICogIEdldCBhIFVUZXh0IGZvciB0aGUgdGV4dCBiZWluZyBhbmFseXpl
ZC4KKyAgICAgICogIFRoZSByZXR1cm5lZCBVVGV4dCBpcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhl
IFVUZXh0IHVzZWQgaW50ZXJuYWxseQorICAgICAgKiAgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yIGlt
cGxlbWVudGF0aW9uLiAgSXQgY2FuIHNhZmVseSBiZSB1c2VkIHRvCisgICAgICAqICBhY2Nlc3Mg
dGhlIHRleHQgd2l0aG91dCBpbXBhY3RpbmcgYW55IGJyZWFrIGl0ZXJhdG9yIG9wZXJhdGlvbnMs
CisgICAgICAqICBidXQgdGhlIHVuZGVybHlpbmcgdGV4dCBpdHNlbGYgbXVzdCBub3QgYmUgYWx0
ZXJlZC4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGZpbGxJbiBBIFVUZXh0IHRvIGJlIGZpbGxl
ZCBpbi4gIElmIE5VTEwsIGEgbmV3IFVUZXh0IHdpbGwgYmUKKyAgICAgICogICAgICAgICAgIGFs
bG9jYXRlZCB0byBob2xkIHRoZSByZXN1bHQuCisgICAgICAqIEBwYXJhbSBzdGF0dXMgcmVjZWl2
ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAgKiBAcmV0dXJuICAgVGhlIGN1cnJlbnQgVVRleHQg
Zm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuICBJZiBhbiBpbnB1dAorICAgICAgKiAgICAgICAgICAg
VVRleHQgd2FzIHByb3ZpZGVkLCBpdCB3aWxsIGFsd2F5cyBiZSByZXR1cm5lZC4KKyAgICAgICog
QHN0YWJsZSBJQ1UgMy40CisgICAgICAqLworICAgICB2aXJ0dWFsIFVUZXh0ICpnZXRVVGV4dChV
VGV4dCAqZmlsbEluLCBVRXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAg
ICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlz
IGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0
byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IEFuIGl0
ZXJhdG9yIG92ZXIgdGhlIHRleHQgdG8gYW5hbHl6ZS4gIFRoZSBCcmVha0l0ZXJhdG9yCisgICAg
ICogdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBjaGFyYWN0ZXIgaXRlcmF0b3IuICBUaGUgY2FsbGVy
IE1VU1QgTk9UIGRlbGV0ZSBpdCEKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCB2b2lkIGFkb3B0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciogbmV3VGV4dCk7CisK
KyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHRvIGFuYWx5emUgYSBuZXcgcGllY2Ug
b2YgdGV4dC4gIFRoaXMgZnVuY3Rpb24gcmVzZXRzCisgICAgICogdGhlIGN1cnJlbnQgaXRlcmF0
aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogQHBhcmFt
IG5ld1RleHQgVGhlIHRleHQgdG8gYW5hbHl6ZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCB2b2lkIHNldFRleHQoY29uc3QgVW5pY29kZVN0cmluZyYgbmV3
VGV4dCk7CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdG8gb3Bl
cmF0ZSBvdmVyIHRoZSB0ZXh0IHJlcHJlc2VudGVkIGJ5CisgICAgICogdGhlIFVUZXh0LiAgVGhl
IGl0ZXJhdG9yIHBvc2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKgorICAgICAq
IFRoaXMgZnVuY3Rpb24gbWFrZXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBzdXBwbGllZCBVVGV4
dC4gIFRoaXMgbWVhbnMKKyAgICAgKiB0aGF0IHRoZSBjYWxsZXIgaXMgZnJlZSB0byBpbW1lZGlh
dGVseSBjbG9zZSBvciBvdGhlcndpc2UgcmV1c2UgdGhlCisgICAgICogVXRleHQgdGhhdCB3YXMg
cGFzc2VkIGFzIGEgcGFyYW1ldGVyLCBidXQgdGhhdCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2Vs
ZgorICAgICAqIG11c3Qgbm90IGJlIGFsdGVyZWQgd2hpbGUgYmVpbmcgcmVmZXJlbmNlZCBieSB0
aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCAgICBUaGUgVVRl
eHQgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHBhcmFtIHN0YXR1cyAgUmVjZWl2
ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAqLworICAg
IHZpcnR1YWwgdm9pZCAgc2V0VGV4dChVVGV4dCAqdGV4dCwgVUVycm9yQ29kZSAmc3RhdHVzKTsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRv
IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHBvc2l0aW9uIHplcm8uCisgICAgICogQHJldHVy
biBUaGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHplcm8uCisgICAgICog
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmaXJzdCh2b2lk
KTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9u
IHRvIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgdGV4dCdzIHBhc3Qt
dGhlLWVuZCBvZmZzZXQuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgaW50MzJfdCBsYXN0KHZvaWQpOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhl
IGl0ZXJhdG9yIGVpdGhlciBmb3J3YXJkIG9yIGJhY2t3YXJkIHRoZSBzcGVjaWZpZWQgbnVtYmVy
IG9mIHN0ZXBzLgorICAgICAqIE5lZ2F0aXZlIHZhbHVlcyBtb3ZlIGJhY2t3YXJkLCBhbmQgcG9z
aXRpdmUgdmFsdWVzIG1vdmUgZm9yd2FyZC4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRv
IHJlcGVhdGVkbHkgY2FsbGluZyBuZXh0KCkgb3IgcHJldmlvdXMoKS4KKyAgICAgKiBAcGFyYW0g
biBUaGUgbnVtYmVyIG9mIHN0ZXBzIHRvIG1vdmUuICBUaGUgc2lnbiBpbmRpY2F0ZXMgdGhlIGRp
cmVjdGlvbgorICAgICAqIChuZWdhdGl2ZSBpcyBiYWNrd2FyZHMsIGFuZCBwb3NpdGl2ZSBpcyBm
b3J3YXJkcykuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgYm91
bmRhcnkgcG9zaXRpb24gbiBib3VuZGFyaWVzIGF3YXkgZnJvbQorICAgICAqIHRoZSBjdXJyZW50
IG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQz
Ml90IG5leHQoaW50MzJfdCBuKTsKKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVy
YXRvciB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBw
b3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhpcyBvbmUuCisgICAgICogIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KHZvaWQpOwor
CisgICAgLyoqCisgICAgICogTW92ZXMgdGhlIGl0ZXJhdG9yIGJhY2t3YXJkcywgdG8gdGhlIGxh
c3QgYm91bmRhcnkgcHJlY2VkaW5nIHRoaXMgb25lLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0
aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIHByZWNlZGluZyB0aGlzIG9uZS4KKyAg
ICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHByZXZp
b3VzKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIg
dG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGZvbGxvd2luZworICAgICAqIHRoZSBzcGVj
aWZpZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNldCBUaGUgcG9zaXRpb24gZnJvbSB3
aGljaCB0byBiZWdpbiBzZWFyY2hpbmcgZm9yIGEgYnJlYWsgcG9zaXRpb24uCisgICAgICogQHJl
dHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJyZWFrIGFmdGVyIHRoZSBjdXJyZW50IHBv
c2l0aW9uLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGlu
dDMyX3QgZm9sbG93aW5nKGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFNldHMg
dGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIGJlZm9y
ZSB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNldCBU
aGUgcG9zaXRpb24gdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBhIGJyZWFrIGZyb20uCisgICAgICog
QHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzdGFy
dGluZyBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBpbnQzMl90IHByZWNlZGluZyhpbnQzMl90IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9z
aXRpb24uICBBcyBhIHNpZGUKKyAgICAgKiBlZmZlY3QsIGxlYXZlcyB0aGUgaXRlcmF0b3IgcG9p
bnRpbmcgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGF0CisgICAgICogb3IgYWZ0ZXIg
Im9mZnNldCIuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNrLgorICAg
ICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAg
ICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIGlzQm91bmRh
cnkoaW50MzJfdCBvZmZzZXQpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVu
dCBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBpdGVyYXRp
b24gcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90IGN1cnJlbnQodm9pZCkgY29uc3Q7CisKKworICAgIC8qKgorICAgICAqIFJldHVy
biB0aGUgc3RhdHVzIHRhZyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUg
bW9zdCByZWNlbnRseQorICAgICAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLiAgRm9yIGJyZWFr
IHJ1bGVzIHRoYXQgZG8gbm90IHNwZWNpZnkgYQorICAgICAqIHN0YXR1cywgYSBkZWZhdWx0IHZh
bHVlIG9mIDAgaXMgcmV0dXJuZWQuICBJZiBtb3JlIHRoYW4gb25lIGJyZWFrIHJ1bGUKKyAgICAg
KiB3b3VsZCBjYXVzZSBhIGJvdW5kYXJ5IHRvIGJlIGxvY2F0ZWQgYXQgc29tZSBwb3NpdGlvbiBp
biB0aGUgdGV4dCwKKyAgICAgKiB0aGUgbnVtZXJpY2FsbHkgbGFyZ2VzdCBvZiB0aGUgYXBwbGlj
YWJsZSBzdGF0dXMgdmFsdWVzIGlzIHJldHVybmVkLgorICAgICAqIDxwPgorICAgICAqIE9mIHRo
ZSBzdGFuZGFyZCB0eXBlcyBvZiBJQ1UgYnJlYWsgaXRlcmF0b3JzLCBvbmx5IHdvcmQgYnJlYWsg
YW5kCisgICAgICogbGluZSBicmVhayBwcm92aWRlIHN0YXR1cyB2YWx1ZXMuICBUaGUgdmFsdWVz
IGFyZSBkZWZpbmVkIGluCisgICAgICogdGhlIGhlYWRlciBmaWxlIHVicmsuaC4gIEZvciBXb3Jk
IGJyZWFrcywgdGhlIHN0YXR1cyBhbGxvd3MgZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbiB3b3Jkcwor
ICAgICAqIHRoYXQgY29udGFpbiBhbHBoYWJldGljIGxldHRlcnMsICJ3b3JkcyIgdGhhdCBhcHBl
YXIgdG8gYmUgbnVtYmVycywKKyAgICAgKiBwdW5jdHVhdGlvbiBhbmQgc3BhY2VzLCB3b3JkcyBj
b250YWluaW5nIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMsIGFuZAorICAgICAqIG1vcmUuICBGb3Ig
TGluZSBCcmVhaywgdGhlIHN0YXR1cyBkaXN0aW5ndWlzaGVzIGJldHdlZW4gaGFyZCAobWFuZGF0
b3J5KSBicmVha3MKKyAgICAgKiBhbmQgc29mdCAocG90ZW50aWFsKSBicmVhayBwb3NpdGlvbnMu
CisgICAgICogPHA+CisgICAgICogPGNvZGU+Z2V0UnVsZVN0YXR1cygpPC9jb2RlPiBjYW4gYmUg
Y2FsbGVkIGFmdGVyIG9idGFpbmluZyBhIGJvdW5kYXJ5CisgICAgICogcG9zaXRpb24gZnJvbSA8
Y29kZT5uZXh0KCk8L2NvZGU+LCA8Y29kZT5wcmV2aW91cygpPC9jb2RlPiwgb3IKKyAgICAgKiBh
bnkgb3RoZXIgYnJlYWsgaXRlcmF0b3IgZnVuY3Rpb25zIHRoYXQgcmV0dXJucyBhIGJvdW5kYXJ5
IHBvc2l0aW9uLgorICAgICAqIDxwPgorICAgICAqIFdoZW4gY3JlYXRpbmcgY3VzdG9tIGJyZWFr
IHJ1bGVzLCBvbmUgaXMgZnJlZSB0byBkZWZpbmUgd2hhdGV2ZXIKKyAgICAgKiBzdGF0dXMgdmFs
dWVzIG1heSBiZSBjb252ZW5pZW50IGZvciB0aGUgYXBwbGljYXRpb24uCisgICAgICogPHA+Cisg
ICAgICogTm90ZTogdGhpcyBmdW5jdGlvbiBpcyBub3QgdGhyZWFkIHNhZmUuICBJdCBzaG91bGQg
bm90IGhhdmUgYmVlbgorICAgICAqICAgICAgIGRlY2xhcmVkIGNvbnN0LCBhbmQgdGhlIGNvbnN0
IHJlbWFpbnMgb25seSBmb3IgY29tcGF0aWJpbGl0eQorICAgICAqICAgICAgIHJlYXNvbnMuICAo
VGhlIGZ1bmN0aW9uIGlzIGxvZ2ljYWxseSBjb25zdCwgYnV0IG5vdCBiaXQtd2lzZSBjb25zdCku
CisgICAgICogPHA+CisgICAgICogQHJldHVybiB0aGUgc3RhdHVzIGZyb20gdGhlIGJyZWFrIHJ1
bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogcmV0dXJuZWQgYnJl
YWsgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBAc2VlIFVXb3JkQnJlYWsKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1cygp
IGNvbnN0OworCisgICAvKioKKyAgICAqIEdldCB0aGUgc3RhdHVzICh0YWcpIHZhbHVlcyBmcm9t
IHRoZSBicmVhayBydWxlKHMpIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdAorICAgICogcmVjZW50
bHkgcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgKiA8cD4KKyAgICAqIFRoZSByZXR1cm5l
ZCBzdGF0dXMgdmFsdWUocykgYXJlIHN0b3JlZCBpbnRvIGFuIGFycmF5IHByb3ZpZGVkIGJ5IHRo
ZSBjYWxsZXIuCisgICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gc29ydGVkIChhc2NlbmRp
bmcpIG9yZGVyLgorICAgICogSWYgdGhlIGNhcGFjaXR5IG9mIHRoZSBvdXRwdXQgYXJyYXkgaXMg
aW5zdWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgICAgKiAgdGhlIG91dHB1dCB3aWxsIGJl
IHRydW5jYXRlZCB0byB0aGUgYXZhaWxhYmxlIGxlbmd0aCwgYW5kIGEKKyAgICAqICBVX0JVRkZF
Ul9PVkVSRkxPV19FUlJPUiB3aWxsIGJlIHNpZ25hbGVkLgorICAgICoKKyAgICAqIEBwYXJhbSBm
aWxsSW5WZWMgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGluIHdpdGggdGhlIHN0YXR1cyB2YWx1ZXMu
CisgICAgKiBAcGFyYW0gY2FwYWNpdHkgIHRoZSBsZW5ndGggb2YgdGhlIHN1cHBsaWVkIHZlY3Rv
ci4gIEEgbGVuZ3RoIG9mIHplcm8gY2F1c2VzCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBm
dW5jdGlvbiB0byByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzLCBpbiB0aGUKKyAg
ICAqICAgICAgICAgICAgICAgICAgbm9ybWFsIHdheSwgd2l0aG91dCBhdHRlbXRwaW5nIHRvIHN0
b3JlIGFueSB2YWx1ZXMuCisgICAgKiBAcGFyYW0gc3RhdHVzICAgIHJlY2VpdmVzIGVycm9yIGNv
ZGVzLgorICAgICogQHJldHVybiAgICAgICAgICBUaGUgbnVtYmVyIG9mIHJ1bGUgc3RhdHVzIHZh
bHVlcyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZAorICAgICogICAgICAgICAgICAgICAgICB0
aGUgbW9zdCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgor
ICAgICogICAgICAgICAgICAgICAgICBJbiB0aGUgZXZlbnQgb2YgYSBVX0JVRkZFUl9PVkVSRkxP
V19FUlJPUiwgdGhlIHJldHVybiB2YWx1ZQorICAgICogICAgICAgICAgICAgICAgICBpcyB0aGUg
dG90YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCB3ZXJlIGF2YWlsYWJsZSwKKyAgICAq
ICAgICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2VkIG51bWJlciB0aGF0IHdlcmUgYWN0dWFs
bHkgcmV0dXJuZWQuCisgICAgKiBAc2VlIGdldFJ1bGVTdGF0dXMKKyAgICAqIEBzdGFibGUgSUNV
IDMuMAorICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXNWZWMoaW50MzJf
dCAqZmlsbEluVmVjLCBpbnQzMl90IGNhcGFjaXR5LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyBhIHVuaXF1ZSBjbGFzcyBJRCBQT0xZTU9SUEhJQ0FMTFku
ICBQdXJlIHZpcnR1YWwgb3ZlcnJpZGUuCisgICAgICogVGhpcyBtZXRob2QgaXMgdG8gaW1wbGVt
ZW50IGEgc2ltcGxlIHZlcnNpb24gb2YgUlRUSSwgc2luY2Ugbm90IGFsbAorICAgICAqIEMrKyBj
b21waWxlcnMgc3VwcG9ydCBnZW51aW5lIFJUVEkuICBQb2x5bW9ycGhpYyBvcGVyYXRvcj09KCkg
YW5kCisgICAgICogY2xvbmUoKSBtZXRob2RzIGNhbGwgdGhpcyBtZXRob2QuCisgICAgICoKKyAg
ICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuIEFsbCBv
YmplY3RzIG9mIGEKKyAgICAgKiAgICAgICAgICAgICAgICAgIGdpdmVuIGNsYXNzIGhhdmUgdGhl
IHNhbWUgY2xhc3MgSUQuICBPYmplY3RzIG9mCisgICAgICogICAgICAgICAgICAgICAgICBvdGhl
ciBjbGFzc2VzIGhhdmUgZGlmZmVyZW50IGNsYXNzIElEcy4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKHZvaWQp
IGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY2xhc3MgSUQgZm9yIHRoaXMg
Y2xhc3MuICBUaGlzIGlzIHVzZWZ1bCBvbmx5IGZvcgorICAgICAqIGNvbXBhcmluZyB0byBhIHJl
dHVybiB2YWx1ZSBmcm9tIGdldER5bmFtaWNDbGFzc0lEKCkuICBGb3IgZXhhbXBsZToKKyAgICAg
KgorICAgICAqICAgICAgQmFzZSogcG9seW1vcnBoaWNfcG9pbnRlciA9IGNyZWF0ZVBvbHltb3Jw
aGljT2JqZWN0KCk7CisgICAgICogICAgICBpZiAocG9seW1vcnBoaWNfcG9pbnRlci0+Z2V0RHlu
YW1pY0NsYXNzSUQoKSA9PQorICAgICAqICAgICAgICAgIERlcml2ZWQ6OmdldFN0YXRpY0NsYXNz
SUQoKSkgLi4uCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBjbGFzcyBJRCBm
b3IgYWxsIG9iamVjdHMgb2YgdGhpcyBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQodm9p
ZCk7CisKKyAgICAvKioKKyAgICAgKiBEZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkuIFVzZSBjbG9u
ZSgpIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBDcmVhdGUgYSBjbG9uZSAoY29weSkgb2YgdGhp
cyBicmVhayBpdGVyYXRvciBpbiBtZW1vcnkgcHJvdmlkZWQKKyAgICAgKiAgYnkgdGhlIGNhbGxl
ci4gIFRoZSBpZGVhIGlzIHRvIGluY3JlYXNlIHBlcmZvcm1hbmNlIGJ5IGF2b2lkaW5nCisgICAg
ICogIGEgc3RvcmFnZSBhbGxvY2F0aW9uLiAgVXNlIG9mIHRoaXMgZnVuY3RvaW4gaXMgTk9UIFJF
Q09NTUVOREVELgorICAgICAqICBQZXJmb3JtYW5jZSBnYWlucyBhcmUgbWluaW1hbCwgYW5kIGNv
cnJlY3QgYnVmZmVyIG1hbmFnZW1lbnQgaXMKKyAgICAgKiAgdHJpY2t5LiAgVXNlIGNsb25lKCkg
aW5zdGVhZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFja0J1ZmZlciAgVGhlIHBvaW50ZXIg
dG8gdGhlIG1lbW9yeSBpbnRvIHdoaWNoIHRoZSBjbG9uZWQgb2JqZWN0CisgICAgICogICAgICAg
ICAgICAgICAgICAgICBzaG91bGQgYmUgcGxhY2VkLiAgSWYgTlVMTCwgIGFsbG9jYXRlIGhlYXAg
bWVtb3J5CisgICAgICogICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIGNsb25lZCBvYmplY3Qu
CisgICAgICogQHBhcmFtIEJ1ZmZlclNpemUgICBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyLiAgSWYg
emVybywgcmV0dXJuIHRoZSByZXF1aXJlZAorICAgICAqICAgICAgICAgICAgICAgICAgICAgYnVm
ZmVyIHNpemUsIGJ1dCBkbyBub3QgY2xvbmUgdGhlIG9iamVjdC4gIElmIHRoZQorICAgICAqICAg
ICAgICAgICAgICAgICAgICAgc2l6ZSB3YXMgdG9vIHNtYWxsIChidXQgbm90IHplcm8pLCBhbGxv
Y2F0ZSBoZWFwCisgICAgICogICAgICAgICAgICAgICAgICAgICBzdG9yYWdlIGZvciB0aGUgY2xv
bmVkIG9iamVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgICAgRXJyb3Igc3Rh
dHVzLiAgVV9TQUZFQ0xPTkVfQUxMT0NBVEVEX1dBUk5JTkcgd2lsbCBiZQorICAgICAqICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuZWQgaWYgdGhlIHRoZSBwcm92aWRlZCBidWZmZXIgd2FzIHRv
byBzbWFsbCwgYW5kCisgICAgICogICAgICAgICAgICAgICAgICAgICB0aGUgY2xvbmUgd2FzIHRo
ZXJlZm9yZSBwdXQgb24gdGhlIGhlYXAuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICBQb2ludGVy
IHRvIHRoZSBjbG9uZSBvYmplY3QuICBUaGlzIG1heSBkaWZmZXIgZnJvbSB0aGUgc3RhY2tCdWZm
ZXIKKyAgICAgKiAgICAgICAgICBhZGRyZXNzIGlmIHRoZSBieXRlIGFsaWdubWVudCBvZiB0aGUg
c3RhY2sgYnVmZmVyIHdhcyBub3Qgc3VpdGFibGUKKyAgICAgKiAgICAgICAgICBvciBpZiB0aGUg
c3RhY2tCdWZmZXIgd2FzIHRvbyBzbWFsbCB0byBob2xkIHRoZSBjbG9uZS4KKyAgICAgKiBAZGVw
cmVjYXRlZCBJQ1UgNTIuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICovCisgICAgdmlydHVh
bCBCcmVha0l0ZXJhdG9yICogIGNyZWF0ZUJ1ZmZlckNsb25lKHZvaWQgKnN0YWNrQnVmZmVyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICZC
dWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVRXJyb3JDb2RlICZzdGF0dXMpOworCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGJp
bmFyeSBmb3JtIG9mIGNvbXBpbGVkIGJyZWFrIHJ1bGVzLAorICAgICAqIHdoaWNoIGNhbiB0aGVu
IGJlIHVzZWQgdG8gY3JlYXRlIGEgbmV3IGJyZWFrIGl0ZXJhdG9yIGF0IHNvbWUKKyAgICAgKiB0
aW1lIGluIHRoZSBmdXR1cmUuICBDcmVhdGluZyBhIGJyZWFrIGl0ZXJhdG9yIGZyb20gcHJlLWNv
bXBpbGVkIHJ1bGVzCisgICAgICogaXMgbXVjaCBmYXN0ZXIgdGhhbiBidWlsZGluZyBvbmUgZnJv
bSB0aGUgc291cmNlIGZvcm0gb2YgdGhlCisgICAgICogYnJlYWsgcnVsZXMuCisgICAgICoKKyAg
ICAgKiBUaGUgYmluYXJ5IGRhdGEgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIHRoZSBzYW1lIHZlcnNp
b24gb2YgSUNVCisgICAgICogIGFuZCBvbiB0aGUgc2FtZSBwbGF0Zm9ybSB0eXBlIChwcm9jZXNz
b3IgZW5kaWFuLW5lc3MpCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGVuZ3RoIFJldHVybnMgdGhl
IGxlbmd0aCBvZiB0aGUgYmluYXJ5IGRhdGEuICAoT3V0IHBhcmFtdGVyLikKKyAgICAgKgorICAg
ICAqIEByZXR1cm4gICBBIHBvaW50ZXIgdG8gdGhlIGJpbmFyeSAoY29tcGlsZWQpIHJ1bGUgZGF0
YS4gIFRoZSBzdG9yYWdlCisgICAgICogICAgICAgICAgIGJlbG9uZ3MgdG8gdGhlIFJ1bGVzQmFz
ZWRCcmVha0l0ZXJhdG9yIG9iamVjdCwgbm90IHRoZQorICAgICAqICAgICAgICAgICBjYWxsZXIs
IGFuZCBtdXN0IG5vdCBiZSBtb2RpZmllZCBvciBkZWxldGVkLgorICAgICAqIEBzdGFibGUgSUNV
IDQuOAorICAgICAqLworICAgIHZpcnR1YWwgY29uc3QgdWludDhfdCAqZ2V0QmluYXJ5UnVsZXMo
dWludDMyX3QgJmxlbmd0aCk7CisKKyAgICAvKioKKyAgICAgKiAgU2V0IHRoZSBzdWJqZWN0IHRl
eHQgc3RyaW5nIHVwb24gd2hpY2ggdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9wZXJhdGluZworICAg
ICAqICB3aXRob3V0IGNoYW5naW5nIGFueSBvdGhlciBhc3BlY3Qgb2YgdGhlIG1hdGNoaW5nIHN0
YXRlLgorICAgICAqICBUaGUgbmV3IGFuZCBwcmV2aW91cyB0ZXh0IHN0cmluZ3MgbXVzdCBoYXZl
IHRoZSBzYW1lIGNvbnRlbnQuCisgICAgICoKKyAgICAgKiAgVGhpcyBmdW5jdGlvbiBpcyBpbnRl
bmRlZCBmb3IgdXNlIGluIGVudmlyb25tZW50cyB3aGVyZSBJQ1UgaXMgb3BlcmF0aW5nIG9uCisg
ICAgICogIHN0cmluZ3MgdGhhdCBtYXkgbW92ZSBhcm91bmQgaW4gbWVtb3J5LiAgSXQgcHJvdmlk
ZXMgYSBtZWNoYW5pc20gZm9yIG5vdGlmeWluZworICAgICAqICBJQ1UgdGhhdCB0aGUgc3RyaW5n
IGhhcyBiZWVuIHJlbG9jYXRlZCwgYW5kIHByb3ZpZGluZyBhIG5ldyBVVGV4dCB0byBhY2Nlc3Mg
dGhlCisgICAgICogIHN0cmluZyBpbiBpdHMgbmV3IHBvc2l0aW9uLgorICAgICAqCisgICAgICog
IE5vdGUgdGhhdCB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24gbmV2ZXIgY29waWVz
IHRoZSB1bmRlcmx5aW5nIHRleHQKKyAgICAgKiAgb2YgYSBzdHJpbmcgYmVpbmcgcHJvY2Vzc2Vk
LCBidXQgYWx3YXlzIG9wZXJhdGVzIGRpcmVjdGx5IG9uIHRoZSBvcmlnaW5hbCB0ZXh0CisgICAg
ICogIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiBSZWZyZXNoaW5nIHNpbXBseSBkcm9wcyB0aGUgcmVm
ZXJlbmNlcyB0byB0aGUgb2xkIHRleHQKKyAgICAgKiAgYW5kIHJlcGxhY2VzIHRoZW0gd2l0aCBy
ZWZlcmVuY2VzIHRvIHRoZSBuZXcuCisgICAgICoKKyAgICAgKiAgQ2F1dGlvbjogIHRoaXMgZnVu
Y3Rpb24gaXMgbm9ybWFsbHkgdXNlZCBvbmx5IGJ5IHZlcnkgc3BlY2lhbGl6ZWQsCisgICAgICog
IHN5c3RlbS1sZXZlbCBjb2RlLiAgT25lIGV4YW1wbGUgdXNlIGNhc2UgaXMgd2l0aCBnYXJiYWdl
IGNvbGxlY3Rpb24gdGhhdCBtb3ZlcworICAgICAqICB0aGUgdGV4dCBpbiBtZW1vcnkuCisgICAg
ICoKKyAgICAgKiBAcGFyYW0gaW5wdXQgICAgICBUaGUgbmV3IChtb3ZlZCkgdGV4dCBzdHJpbmcu
CisgICAgICogQHBhcmFtIHN0YXR1cyAgICAgUmVjZWl2ZXMgZXJyb3JzIGRldGVjdGVkIGJ5IHRo
aXMgZnVuY3Rpb24uCisgICAgICogQHJldHVybiAgICAgICAgICAgKnRoaXMKKyAgICAgKgorICAg
ICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdmlydHVhbCBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yICZyZWZyZXNoSW5wdXRUZXh0KFVUZXh0ICppbnB1dCwgVUVycm9yQ29kZSAmc3RhdHVz
KTsKKworCitwcm90ZWN0ZWQ6CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIGltcGxlbWVu
dGF0aW9uCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8qKgorICAgICAqIER1bXBzIGNhY2hl
cyBhbmQgcGVyZm9ybXMgb3RoZXIgYWN0aW9ucyBhc3NvY2lhdGVkIHdpdGggYSBjb21wbGV0ZSBj
aGFuZ2UKKyAgICAgKiBpbiB0ZXh0IG9yIGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXQodm9pZCk7CisKKyNpZiAwCisg
ICAgLyoqCisgICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBjYXRlZ29yeSBsb29rdXAgZm9yIHRo
aXMgY2hhcgorICAgICAgKiBpbmRpY2F0ZXMgdGhhdCBpdCBpcyBpbiB0aGUgc2V0IG9mIGRpY3Rp
b25hcnkgbG9va3VwIGNoYXJzLgorICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZv
ciB1c2UgYnkgZGljdGlvbmFyeSBiYXNlZCBicmVhayBpdGVyYXRvcnMuCisgICAgICAqIEByZXR1
cm4gdHJ1ZSBpZiB0aGUgY2F0ZWdvcnkgbG9va3VwIGZvciB0aGlzIGNoYXIKKyAgICAgICogaW5k
aWNhdGVzIHRoYXQgaXQgaXMgaW4gdGhlIHNldCBvZiBkaWN0aW9uYXJ5IGxvb2t1cCBjaGFycy4K
KyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNEaWN0aW9u
YXJ5Q2hhcihVQ2hhcjMyKTsKKworICAgIC8qKgorICAgICAgKiBHZXQgdGhlIHR5cGUgb2YgdGhl
IGJyZWFrIGl0ZXJhdG9yLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90IGdldEJyZWFrVHlwZSgpIGNvbnN0OworI2VuZGlmCisKKyAgICAvKioKKyAgICAg
ICogU2V0IHRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgICogQGludGVybmFs
CisgICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzZXRCcmVha1R5cGUoaW50MzJfdCB0eXBlKTsK
KworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICAqIENvbW1vbiBp
bml0aWFsaXphdGlvbiBmdW5jdGlvbiwgdXNlZCBieSBjb25zdHJ1Y3RvcnMgYW5kIGJ1ZmZlckNs
b25lLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisgICAgdm9pZCBpbml0KCk7CisjZW5k
aWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworcHJpdmF0ZToKKworICAgIC8qKgorICAg
ICAqIFRoaXMgbWV0aG9kIGJhY2tzIHRoZSBpdGVyYXRvciBiYWNrIHVwIHRvIGEgInNhZmUgcG9z
aXRpb24iIGluIHRoZSB0ZXh0LgorICAgICAqIFRoaXMgaXMgYSBwb3NpdGlvbiB0aGF0IHdlIGtu
b3csIHdpdGhvdXQgYW55IGNvbnRleHQsIG11c3QgYmUgYSBicmVhayBwb3NpdGlvbi4KKyAgICAg
KiBUaGUgdmFyaW91cyBjYWxsaW5nIG1ldGhvZHMgdGhlbiBpdGVyYXRlIGZvcndhcmQgZnJvbSB0
aGlzIHNhZmUgcG9zaXRpb24gdG8KKyAgICAgKiB0aGUgYXBwcm9wcmlhdGUgcG9zaXRpb24gdG8g
cmV0dXJuLiAgKEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRlc2NyaXB0aW9uCisgICAg
ICogb2YgYnVpbGRCYWNrd2FyZHNTdGF0ZVRhYmxlKCkgaW4gUnVsZUJhc2VkQnJlYWtJdGVyYXRv
ci5CdWlsZGVyLikKKyAgICAgKiBAcGFyYW0gc3RhdGV0YWJsZSBzdGF0ZSB0YWJsZSB1c2VkIG9m
IG1vdmluZyBiYWNrd2FyZHMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90
IGhhbmRsZVByZXZpb3VzKGNvbnN0IFJCQklTdGF0ZVRhYmxlICpzdGF0ZXRhYmxlKTsKKworICAg
IC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gb2Yg
dGhlIG5leHQoKSBtZXRob2QuICBBbGwgaXRlcmF0aW9uCisgICAgICogdmVjdG9ycyB0aHJvdWdo
IGhlcmUuICBUaGlzIG1ldGhvZCBpbml0aWFsaXplcyB0aGUgc3RhdGUgbWFjaGluZSB0byBzdGF0
ZSAxCisgICAgICogYW5kIGFkdmFuY2VzIHRocm91Z2ggdGhlIHRleHQgY2hhcmFjdGVyIGJ5IGNo
YXJhY3RlciB1bnRpbCB3ZSByZWFjaCB0aGUgZW5kCisgICAgICogb2YgdGhlIHRleHQgb3IgdGhl
IHN0YXRlIG1hY2hpbmUgdHJhbnNpdGlvbnMgdG8gc3RhdGUgMC4gIFdlIHVwZGF0ZSBvdXIgcmV0
dXJuCisgICAgICogdmFsdWUgZXZlcnkgdGltZSB0aGUgc3RhdGUgbWFjaGluZSBwYXNzZXMgdGhy
b3VnaCBhIHBvc3NpYmxlIGVuZCBzdGF0ZS4KKyAgICAgKiBAcGFyYW0gc3RhdGV0YWJsZSBzdGF0
ZSB0YWJsZSB1c2VkIG9mIG1vdmluZyBmb3J3YXJkcworICAgICAqIEBpbnRlcm5hbAorICAgICAq
LworICAgIGludDMyX3QgaGFuZGxlTmV4dChjb25zdCBSQkJJU3RhdGVUYWJsZSAqc3RhdGV0YWJs
ZSk7CisKK3Byb3RlY3RlZDoKKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoq
CisgICAgICogVGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBhY3R1YWxseSBpbXBsZW1lbnRzIGRp
Y3Rpb25hcnktYmFzZWQKKyAgICAgKiBicmVha2luZy4gIENvdmVyaW5nIGF0IGxlYXN0IHRoZSBy
YW5nZSBmcm9tIHN0YXJ0UG9zIHRvIGVuZFBvcywKKyAgICAgKiBpdCBjaGVja3MgZm9yIGRpY3Rp
b25hcnkgY2hhcmFjdGVycywgYW5kIGlmIGl0IGZpbmRzIHRoZW0gZGV0ZXJtaW5lcworICAgICAq
IHRoZSBhcHByb3ByaWF0ZSBvYmplY3QgdG8gZGVhbCB3aXRoIHRoZW0uIEl0IG1heSBjYWNoZSBm
b3VuZCBicmVha3MgaW4KKyAgICAgKiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMgYXMgaXQgZ29lcy4g
SXQgbWF5IHdlbGwgYWxzbyBsb29rIGF0IHRleHQgb3V0c2lkZQorICAgICAqIHRoZSByYW5nZSBz
dGFydFBvcyB0byBlbmRQb3MuCisgICAgICogSWYgZ29pbmcgZm9yd2FyZCwgZW5kUG9zIGlzIHRo
ZSBub3JtYWwgVW5pY29kZSBicmVhayByZXN1bHQsIGFuZAorICAgICAqIGlmIGdvaW5kIGluIHJl
dmVyc2UsIHN0YXJ0UG9zIGlzIHRoZSBub3JtYWwgVW5pY29kZSBicmVhayByZXN1bHQKKyAgICAg
KiBAcGFyYW0gc3RhcnRQb3MgIFRoZSBzdGFydCBwb3NpdGlvbiBvZiBhIHJhbmdlIG9mIHRleHQK
KyAgICAgKiBAcGFyYW0gZW5kUG9zICAgIFRoZSBlbmQgcG9zaXRpb24gb2YgYSByYW5nZSBvZiB0
ZXh0CisgICAgICogQHBhcmFtIHJldmVyc2UgICBUaGUgY2FsbCBpcyBmb3IgdGhlIHJldmVyc2Ug
ZGlyZWN0aW9uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCBjaGVja0Rp
Y3Rpb25hcnkoaW50MzJfdCBzdGFydFBvcywgaW50MzJfdCBlbmRQb3MsIFVCb29sIHJldmVyc2Up
OworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKK3ByaXZhdGU6CisKKyAgICAv
KioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFwcHJvcHJpYXRlIExhbmd1YWdl
QnJlYWtFbmdpbmUgZm9yIGEKKyAgICAgKiBnaXZlbiBjaGFyYWN0ZXIgYy4KKyAgICAgKiBAcGFy
YW0gYyAgICAgICAgIEEgY2hhcmFjdGVyIGluIHRoZSBkaWN0aW9uYXJ5IHNldAorICAgICAqIEBp
bnRlcm5hbAorICAgICAqLworICAgIGNvbnN0IExhbmd1YWdlQnJlYWtFbmdpbmUgKmdldExhbmd1
YWdlQnJlYWtFbmdpbmUoVUNoYXIzMiBjKTsKKworICAgIC8qKgorICAgICAqICBAaW50ZXJuYWwK
KyAgICAgKi8KKyAgICB2b2lkIG1ha2VSdWxlU3RhdHVzVmFsaWQoKTsKKworfTsKKworLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgIElubGluZSBGdW5jdGlvbnMgRGVmaW5pdGlvbnMg
Li4uCisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaW5saW5lIFVCb29sIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3I6Om9wZXJhdG9yIT0oY29uc3QgQnJlYWtJdGVyYXRvciYgdGhhdCkgY29u
c3QgeworICAgIHJldHVybiAhb3BlcmF0b3I9PSh0aGF0KTsKK30KKworVV9OQU1FU1BBQ0VfRU5E
CisKKyNlbmRpZiAvKiAjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OICovCisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oIGIvU291cmNl
L1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwYjVlMjI1MDNjZmYyNjFk
MmNkMjQwZmYxMjAwN2Y5MzdmNzgzYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2lj
dS91bmljb2RlL3NjaHJpdGVyLmgKQEAgLTAsMCArMSwxODcgQEAKKy8qCisqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25hbCBC
dXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRz
IFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgc2Nocml0ZXIu
aAorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAg
ICAgICBEZXNjcmlwdGlvbgorKiAgMDUvMDUvOTkgICAgIHN0ZXBoZW4gICAgIENsZWFuZWQgdXAu
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgU0NIUklURVJfSAorI2RlZmlu
ZSBTQ0hSSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVu
aWNvZGUvY2hhcml0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VjaHJpdGVyLmgiCisKKy8qKgor
ICogXGZpbGUgCisgKiBcYnJpZWYgQysrIEFQSTogU3RyaW5nIENoYXJhY3RlciBJdGVyYXRvcgor
ICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorLyoqCisgKiBBIGNvbmNyZXRlIHN1YmNsYXNzIG9m
IENoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciB0aGUKKyAqIGNoYXJhY3RlcnMg
KGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMpIGluIGEgVW5pY29kZVN0cmluZy4KKyAqIEl0J3Mg
cG9zc2libGUgbm90IG9ubHkgdG8gY3JlYXRlIGFuCisgKiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVz
IG92ZXIgYW4gZW50aXJlIFVuaWNvZGVTdHJpbmcsIGJ1dCBhbHNvIHRvCisgKiBjcmVhdGUgb25l
IHRoYXQgaXRlcmF0ZXMgb3ZlciBvbmx5IGEgc3VicmFuZ2Ugb2YgYSBVbmljb2RlU3RyaW5nCisg
KiAoaXRlcmF0b3JzIG92ZXIgZGlmZmVyZW50IHN1YnJhbmdlcyBvZiB0aGUgc2FtZSBVbmljb2Rl
U3RyaW5nIGRvbid0CisgKiBjb21wYXJlIGVxdWFsKS4KKyAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0
b3IKKyAqIEBzZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqLworY2xhc3MgVV9DT01NT05fQVBJIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIDogcHVibGlj
IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGljOgorICAvKioKKyAgICogQ3JlYXRlIGFu
IGl0ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJyZWQgdG8gYnkgInRleHRTdHIi
LgorICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaXMgY29waWVkLgorICAgKiBUaGUgaXRl
cmF0aW9uIHJhbmdlIGlzIHRoZSB3aG9sZSBzdHJpbmcsIGFuZCB0aGUgc3RhcnRpbmcgcG9zaXRp
b24gaXMgMC4KKyAgICogQHBhcmFtIHRleHRTdHIgVGhlIHVuaWNvZGUgc3RyaW5nIHVzZWQgdG8g
Y3JlYXRlIGFuIGl0ZXJhdG9yCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5n
Q2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYgdGV4dFN0cik7CisKKyAgLyoq
CisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJlZmVycmVk
IHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyB0aGUgd2hvbGUg
c3RyaW5nLCBhbmQgdGhlIHN0YXJ0aW5nCisgICAqIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAi
dGV4dFBvcyIuICBJZiAidGV4dFBvcyIgaXMgb3V0c2lkZSB0aGUgdmFsaWQKKyAgICogaXRlcmF0
aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2YgdGhpcyBvYmplY3QgaXMgdW5kZWZpbmVkLgorICAg
KiBAcGFyYW0gdGV4dFN0ciBUaGUgdW5pY29kZSBzdHJpbmcgdXNlZCB0byBjcmVhdGUgYW4gaXRl
cmF0b3IKKyAgICogQHBhcmFtIHRleHRQb3MgVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBp
dGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJ
dGVyYXRvcihjb25zdCBVbmljb2RlU3RyaW5nJiAgICB0ZXh0U3RyLAorICAgICAgICAgICAgICBp
bnQzMl90ICAgICAgICAgICAgICB0ZXh0UG9zKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0
ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJyZWQgdG8gYnkgInRleHRTdHIiLgor
ICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaXMgY29waWVkLgorICAgKiBUaGUgaXRlcmF0
aW9uIHJhbmdlIGJlZ2lucyB3aXRoIHRoZSBjb2RlIHVuaXQgc3BlY2lmaWVkIGJ5CisgICAqICJ0
ZXh0QmVnaW4iIGFuZCBlbmRzIHdpdGggdGhlIGNvZGUgdW5pdCBCRUZPUkUgdGhlIGNvZGUgdW5p
dCBzcGVjZmllZAorICAgKiBieSAidGV4dEVuZCIuICBUaGUgc3RhcnRpbmcgcG9zaXRpb24gaXMg
c3BlY2lmaWVkIGJ5ICJ0ZXh0UG9zIi4gIElmCisgICAqICJ0ZXh0QmVnaW4iIGFuZCAidGV4dEVu
ZCIgZG9uJ3QgZm9ybSBhIHZhbGlkIHJhbmdlIG9uICJ0ZXh0IiAoaS5lLiwKKyAgICogdGV4dEJl
Z2luID49IHRleHRFbmQgb3IgZWl0aGVyIGlzIG5lZ2F0aXZlIG9yIGdyZWF0ZXIgdGhhbiB0ZXh0
LnNpemUoKSksCisgICAqIG9yICJ0ZXh0UG9zIiBpcyBvdXRzaWRlIHRoZSByYW5nZSBkZWZpbmVk
IGJ5ICJ0ZXh0QmVnaW4iIGFuZCAidGV4dEVuZCIsCisgICAqIHRoZSBiZWhhdmlvciBvZiB0aGlz
IGl0ZXJhdG9yIGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRTdHIgICAgVGhlIHVuaWNv
ZGUgc3RyaW5nIHVzZWQgdG8gY3JlYXRlIHRoZSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcgorICAg
KiBAcGFyYW0gdGV4dEJlZ2luICBUaGUgYmVnaW4gcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiBy
YW5nZQorICAgKiBAcGFyYW0gdGV4dEVuZCAgICBUaGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBpdGVy
YXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRQb3MgICAgVGhlIHN0YXJ0aW5nIHBvc2l0aW9u
IG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdD
aGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVbmljb2RlU3RyaW5nJiAgICB0ZXh0U3RyLAorICAgICAg
ICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0QmVnaW4sCisgICAgICAgICAgICAgIGlu
dDMyX3QgICAgICAgICAgICAgIHRleHRFbmQsCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAg
ICAgICAgIHRleHRQb3MpOworCisgIC8qKgorICAgKiBDb3B5IGNvbnN0cnVjdG9yLiAgVGhlIG5l
dyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIHRoZSBzYW1lIHJhbmdlCisgICAqIG9mIHRoZSBzYW1l
IHN0cmluZyBhcyAidGhhdCIsIGFuZCBpdHMgaW5pdGlhbCBwb3NpdGlvbiBpcyB0aGUKKyAgICog
c2FtZSBhcyAidGhhdCIncyBjdXJyZW50IHBvc2l0aW9uLgorICAgKiBUaGUgVW5pY29kZVN0cmlu
ZyBvYmplY3QgaW4gInRoYXQiIGlzIGNvcGllZC4KKyAgICogQHBhcmFtIHRoYXQgVGhlIFN0cmlu
Z0NoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvcGllZAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFN0cmluZ0NoYXJhY3Rlckl0ZXJh
dG9yJiAgdGhhdCk7CisKKyAgLyoqCisgICAqIERlc3RydWN0b3IuCisgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgKi8KKyAgdmlydHVhbCB+U3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAv
KioKKyAgICogQXNzaWdubWVudCBvcGVyYXRvci4gICp0aGlzIGlzIGFsdGVyZWQgdG8gaXRlcmF0
ZSBvdmVyIHRoZSBzYW1lCisgICAqIHJhbmdlIG9mIHRoZSBzYW1lIHN0cmluZyBhcyAidGhhdCIs
IGFuZCByZWZlcnMgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIHdpdGhpbiB0aGF0IHN0cmlu
ZyBhcyAidGhhdCIgZG9lcy4KKyAgICogQHBhcmFtIHRoYXQgVGhlIG9iamVjdCB0byBiZSBjb3Bp
ZWQuCisgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LgorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJgorICBvcGVyYXRvcj0o
Y29uc3QgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImICAgIHRoYXQpOworCisgIC8qKgorICAgKiBS
ZXR1cm5zIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ug
b2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hh
cmFjdGVyLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHRv
IGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGl0ZXJh
dG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3RyaW5n
IGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgICAgb3BlcmF0b3I9PShjb25zdCBG
b3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1
cm5zIGEgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgc2FtZQor
ICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzIHRo
aXMgb25lLiAgVGhlCisgICAqIGNhbGxlciBtdXN0IGRlbGV0ZSB0aGUgbmV3IGl0ZXJhdG9yLgor
ICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjbG9uZWQgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0
OworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgdGhlIHBy
b3ZpZGVkIHN0cmluZy4KKyAgICogQHBhcmFtIG5ld1RleHQgVGhlIHN0cmluZyB0byBiZSBpdGVy
YXRlZCBvdmVyCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdm9pZCBzZXRUZXh0KGNv
bnN0IFVuaWNvZGVTdHJpbmcmIG5ld1RleHQpOworCisgIC8qKgorICAgKiBDb3BpZXMgdGhlIFVu
aWNvZGVTdHJpbmcgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcKKyAgICog
cmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICBFdmVuIGlmIHRoaXMgaXRlcmF0b3IgaXRlcmF0ZXMg
YWNyb3NzCisgICAqIG9ubHkgYSBwYXJ0IG9mIHRoaXMgc3RyaW5nLCB0aGUgd2hvbGUgc3RyaW5n
IGlzIGNvcGllZC4KKyAgICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRl
eHQgdW5kZXIgaXRlcmF0aW9uLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgdm9pZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0cmluZyYgcmVzdWx0KTsKKworICAv
KioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0IChub3QgcmVhbGx5IHB1
YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4KKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDbGFzc0lEICAgICAgICAgZ2V0RHluYW1p
Y0NsYXNzSUQodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZv
ciB0aGlzIGNsYXNzIChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElE
IGZvciB0aGlzIGNsYXNzCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgc3RhdGljIFVD
bGFzc0lEICAgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQodm9pZCk7CisKK3Byb3RlY3RlZDoK
KyAgLyoqCisgICAqIERlZmF1bHQgY29uc3RydWN0b3IsIGl0ZXJhdGlvbiBvdmVyIGVtcHR5IHN0
cmluZy4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVy
YXRvcigpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIg
dGhlIHByb3ZpZGVkIHN0cmluZy4KKyAgICogQHBhcmFtIG5ld1RleHQgVGhlIHN0cmluZyB0byBi
ZSBpdGVyYXRlZCBvdmVyCisgICAqIEBwYXJhbSBuZXdUZXh0TGVuZ3RoIFRoZSBsZW5ndGggb2Yg
dGhlIFN0cmluZworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZvaWQgc2V0VGV4dChj
b25zdCBVQ2hhciogbmV3VGV4dCwgaW50MzJfdCBuZXdUZXh0TGVuZ3RoKTsKKworICAvKioKKyAg
ICogQ29weSBvZiB0aGUgaXRlcmF0ZWQgc3RyaW5nIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBVbmljb2RlU3RyaW5nICAgICAgICAgICAgdGV4dDsKKworfTsKKworVV9O
QU1FU1BBQ0VfRU5ECisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUv
dWNhc2VtYXAuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNhc2VtYXAuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMzdlMTY1ODg2OTdmMWE5MzAxOTFlZTNkZjgxNmM2M2I3YmQzOGMxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1hcC5oCkBAIC0wLDAgKzEsNDIzIEBA
CisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMjAwNS0y
MDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5k
IG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqICAgZmlsZSBuYW1lOiAgdWNhc2VtYXAuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisq
ICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNy
ZWF0ZWQgb246IDIwMDVtYXkwNgorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisq
CisqICAgQ2FzZSBtYXBwaW5nIHNlcnZpY2Ugb2JqZWN0IGFuZCBmdW5jdGlvbnMgdXNpbmcgaXQu
CisqLworCisjaWZuZGVmIF9fVUNBU0VNQVBfSF9fCisjZGVmaW5lIF9fVUNBU0VNQVBfSF9fCisK
KyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXN0cmluZy5o
IgorI2luY2x1ZGUgInVuaWNvZGUvbG9jYWxwb2ludGVyLmgiCisKKy8qKgorICogXGZpbGUKKyAq
IFxicmllZiBDIEFQSTogVW5pY29kZSBjYXNlIG1hcHBpbmcgZnVuY3Rpb25zIHVzaW5nIGEgVUNh
c2VNYXAgc2VydmljZSBvYmplY3QuCisgKgorICogVGhlIHNlcnZpY2Ugb2JqZWN0IHRha2VzIGNh
cmUgb2YgbWVtb3J5IGFsbG9jYXRpb25zLCBkYXRhIGxvYWRpbmcsIGFuZCBzZXR1cAorICogZm9y
IHRoZSBhdHRyaWJ1dGVzLCBhcyB1c3VhbC4KKyAqCisgKiBDdXJyZW50bHksIHRoZSBmdW5jdGlv
bmFsaXR5IHByb3ZpZGVkIGhlcmUgZG9lcyBub3Qgb3ZlcmxhcCB3aXRoIHVjaGFyLmgKKyAqIGFu
ZCB1c3RyaW5nLmgsIGV4Y2VwdCBmb3IgdWNhc2VtYXBfdG9UaXRsZSgpLgorICoKKyAqIHVjYXNl
bWFwX3V0ZjhYWVooKSBmdW5jdGlvbnMgb3BlcmF0ZSBkaXJlY3RseSBvbiBVVEYtOCBzdHJpbmdz
LgorICovCisKKy8qKgorICogVUNhc2VNYXAgaXMgYW4gb3BhcXVlIHNlcnZpY2Ugb2JqZWN0IGZv
ciBuZXdlciBJQ1UgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucy4KKyAqIE9sZGVyIGZ1bmN0aW9ucyBk
aWQgbm90IHVzZSBhIHNlcnZpY2Ugb2JqZWN0LgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK3N0
cnVjdCBVQ2FzZU1hcDsKK3R5cGVkZWYgc3RydWN0IFVDYXNlTWFwIFVDYXNlTWFwOyAvKio8IEMg
dHlwZWRlZiBmb3Igc3RydWN0IFVDYXNlTWFwLiBAc3RhYmxlIElDVSAzLjQgKi8KKworLyoqCisg
KiBPcGVuIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QgZm9yIGEgbG9jYWxlIGFuZCBhIHNldCBv
ZiBvcHRpb25zLgorICogVGhlIGxvY2FsZSBJRCBhbmQgb3B0aW9ucyBhcmUgcHJlcHJvY2Vzc2Vk
IHNvIHRoYXQgZnVuY3Rpb25zIHVzaW5nIHRoZQorICogc2VydmljZSBvYmplY3QgbmVlZCBub3Qg
cHJvY2VzcyB0aGVtIGluIGVhY2ggY2FsbC4KKyAqCisgKiBAcGFyYW0gbG9jYWxlIElDVSBsb2Nh
bGUgSUQsIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudAorICogICAgICAgICAgICAgICB1cHBl
ci0vbG93ZXItL3RpdGxlLWNhc2luZyBhY2NvcmRpbmcgdG8gdGhlIFVuaWNvZGUgc3RhbmRhcmQu
CisgKiAgICAgICAgICAgICAgIFVzdWFsIHNlbWFudGljczogIiI9cm9vdCwgTlVMTD1kZWZhdWx0
IGxvY2FsZSwgZXRjLgorICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBiaXQgc2V0LCB1c2VkIGZv
ciBjYXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29ucy4KKyAqICAgICAgICAgICAgICAg
IFNhbWUgZmxhZ3MgYXMgZm9yIHVfZm9sZENhc2UoKSwgdV9zdHJGb2xkQ2FzZSgpLAorICogICAg
ICAgICAgICAgICAgdV9zdHJDYXNlQ29tcGFyZSgpLCBldGMuCisgKiAgICAgICAgICAgICAgICBV
c2UgMCBvciBVX0ZPTERfQ0FTRV9ERUZBVUxUIGZvciBkZWZhdWx0IGJlaGF2aW9yLgorICogQHBh
cmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2
YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFp
bHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFBvaW50ZXIgdG8gYSBV
Q2FzZU1hcCBzZXJ2aWNlIG9iamVjdCwgaWYgc3VjY2Vzc2Z1bC4KKyAqCisgKiBAc2VlIFVfRk9M
RF9DQVNFX0RFRkFVTFQKKyAqIEBzZWUgVV9GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKKyAq
IEBzZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0JS
RUFLX0FESlVTVE1FTlQKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSBVQ2FzZU1h
cCAqIFVfRVhQT1JUMgordWNhc2VtYXBfb3Blbihjb25zdCBjaGFyICpsb2NhbGUsIHVpbnQzMl90
IG9wdGlvbnMsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENsb3NlIGEgVUNh
c2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gY3NtIE9iamVjdCB0byBiZSBjbG9zZWQu
CisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNl
bWFwX2Nsb3NlKFVDYXNlTWFwICpjc20pOworCisjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKwor
VV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBcY2xhc3MgTG9jYWxVQ2FzZU1hcFBvaW50ZXIK
KyAqICJTbWFydCBwb2ludGVyIiBjbGFzcywgY2xvc2VzIGEgVUNhc2VNYXAgdmlhIHVjYXNlbWFw
X2Nsb3NlKCkuCisgKiBGb3IgbW9zdCBtZXRob2RzIHNlZSB0aGUgTG9jYWxQb2ludGVyQmFzZSBi
YXNlIGNsYXNzLgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVyQmFzZQorICogQHNlZSBMb2NhbFBv
aW50ZXIKKyAqIEBzdGFibGUgSUNVIDQuNAorICovCitVX0RFRklORV9MT0NBTF9PUEVOX1BPSU5U
RVIoTG9jYWxVQ2FzZU1hcFBvaW50ZXIsIFVDYXNlTWFwLCB1Y2FzZW1hcF9jbG9zZSk7CisKK1Vf
TkFNRVNQQUNFX0VORAorCisjZW5kaWYKKworLyoqCisgKiBHZXQgdGhlIGxvY2FsZSBJRCB0aGF0
IGlzIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudCBjYXNlIG1hcHBpbmdzLgorICogQHBhcmFt
IGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1cm4gbG9jYWxlIElECisgKiBA
c3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgY29uc3QgY2hhciAqIFVfRVhQT1JUMgordWNh
c2VtYXBfZ2V0TG9jYWxlKGNvbnN0IFVDYXNlTWFwICpjc20pOworCisvKioKKyAqIEdldCB0aGUg
b3B0aW9ucyBiaXQgc2V0IHRoYXQgaXMgdXNlZCBmb3IgY2FzZSBmb2xkaW5nIGFuZCBzdHJpbmcg
Y29tcGFyaXNvbnMuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICog
QHJldHVybiBvcHRpb25zIGJpdCBzZXQKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJM
RSB1aW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldE9wdGlvbnMoY29uc3QgVUNhc2VNYXAg
KmNzbSk7CisKKy8qKgorICogU2V0IHRoZSBsb2NhbGUgSUQgdGhhdCBpcyB1c2VkIGZvciBsYW5n
dWFnZS1kZXBlbmRlbnQgY2FzZSBtYXBwaW5ncy4KKyAqCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGxvY2FsZSBMb2NhbGUgSUQsIHNlZSB1Y2FzZW1h
cF9vcGVuKCkuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0
byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBu
b3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqCisgKiBA
c2VlIHVjYXNlbWFwX29wZW4KKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSB2b2lk
IFVfRVhQT1JUMgordWNhc2VtYXBfc2V0TG9jYWxlKFVDYXNlTWFwICpjc20sIGNvbnN0IGNoYXIg
KmxvY2FsZSwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogU2V0IHRoZSBvcHRp
b25zIGJpdCBzZXQgdGhhdCBpcyB1c2VkIGZvciBjYXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21w
YXJpc29ucy4KKyAqCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICog
QHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBiaXQgc2V0LCBzZWUgdWNhc2VtYXBfb3BlbigpLgorICog
QHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29k
ZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEg
ZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF9v
cGVuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3Vj
YXNlbWFwX3NldE9wdGlvbnMoVUNhc2VNYXAgKmNzbSwgdWludDMyX3Qgb3B0aW9ucywgVUVycm9y
Q29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogRG8gbm90IGxvd2VyY2FzZSBub24taW5pdGlh
bCBwYXJ0cyBvZiB3b3JkcyB3aGVuIHRpdGxlY2FzaW5nLgorICogT3B0aW9uIGJpdCBmb3IgdGl0
bGVjYXNpbmcgQVBJcyB0aGF0IHRha2UgYW4gb3B0aW9ucyBiaXQgc2V0LgorICoKKyAqIEJ5IGRl
ZmF1bHQsIHRpdGxlY2FzaW5nIHdpbGwgdGl0bGVjYXNlIHRoZSBmaXJzdCBjYXNlZCBjaGFyYWN0
ZXIKKyAqIG9mIGEgd29yZCBhbmQgbG93ZXJjYXNlIGFsbCBvdGhlciBjaGFyYWN0ZXJzLgorICog
V2l0aCB0aGlzIG9wdGlvbiwgdGhlIG90aGVyIGNoYXJhY3RlcnMgd2lsbCBub3QgYmUgbW9kaWZp
ZWQuCisgKgorICogQHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25zCisgKiBAc2VlIHVjYXNlbWFwX3Rv
VGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUKKyAqIEBzZWUgVW5pY29kZVN0cmlu
Zzo6dG9UaXRsZQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KKyNkZWZpbmUgVV9USVRMRUNBU0Vf
Tk9fTE9XRVJDQVNFIDB4MTAwCisKKy8qKgorICogRG8gbm90IGFkanVzdCB0aGUgdGl0bGVjYXNp
bmcgaW5kZXhlcyBmcm9tIEJyZWFrSXRlcmF0b3I6Om5leHQoKSBpbmRleGVzOworICogdGl0bGVj
YXNlIGV4YWN0bHkgdGhlIGNoYXJhY3RlcnMgYXQgYnJlYWtzIGZyb20gdGhlIGl0ZXJhdG9yLgor
ICogT3B0aW9uIGJpdCBmb3IgdGl0bGVjYXNpbmcgQVBJcyB0aGF0IHRha2UgYW4gb3B0aW9ucyBi
aXQgc2V0LgorICoKKyAqIEJ5IGRlZmF1bHQsIHRpdGxlY2FzaW5nIHdpbGwgdGFrZSBlYWNoIGJy
ZWFrIGl0ZXJhdG9yIGluZGV4LAorICogYWRqdXN0IGl0IGJ5IGxvb2tpbmcgZm9yIHRoZSBuZXh0
IGNhc2VkIGNoYXJhY3RlciwgYW5kIHRpdGxlY2FzZSB0aGF0IG9uZS4KKyAqIE90aGVyIGNoYXJh
Y3RlcnMgYXJlIGxvd2VyY2FzZWQuCisgKgorICogVGhpcyBmb2xsb3dzIFVuaWNvZGUgNCAmIDUg
c2VjdGlvbiAzLjEzIERlZmF1bHQgQ2FzZSBPcGVyYXRpb25zOgorICoKKyAqIFIzICB0b1RpdGxl
Y2FzZShYKTogRmluZCB0aGUgd29yZCBib3VuZGFyaWVzIGJhc2VkIG9uIFVuaWNvZGUgU3RhbmRh
cmQgQW5uZXgKKyAqICMyOSwgIlRleHQgQm91bmRhcmllcy4iIEJldHdlZW4gZWFjaCBwYWlyIG9m
IHdvcmQgYm91bmRhcmllcywgZmluZCB0aGUgZmlyc3QKKyAqIGNhc2VkIGNoYXJhY3RlciBGLiBJ
ZiBGIGV4aXN0cywgbWFwIEYgdG8gZGVmYXVsdF90aXRsZShGKTsgdGhlbiBtYXAgZWFjaAorICog
c3Vic2VxdWVudCBjaGFyYWN0ZXIgQyB0byBkZWZhdWx0X2xvd2VyKEMpLgorICoKKyAqIEBzZWUg
dWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNlZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBAc2VlIHVj
YXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc2VlIFVuaWNvZGVTdHJpbmc6OnRvVGl0bGUKKyAqIEBz
ZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworI2Rl
ZmluZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5UIDB4MjAwCisKKyNpZiAhVUNPTkZJ
R19OT19CUkVBS19JVEVSQVRJT04KKworLyoqCisgKiBHZXQgdGhlIGJyZWFrIGl0ZXJhdG9yIHRo
YXQgaXMgdXNlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBEbyBub3QgbW9kaWZ5IHRoZSByZXR1cm5l
ZCBicmVhayBpdGVyYXRvci4KKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3Qu
CisgKiBAcmV0dXJuIHRpdGxlY2FzaW5nIGJyZWFrIGl0ZXJhdG9yCisgKiBAc3RhYmxlIElDVSAz
LjgKKyAqLworVV9TVEFCTEUgY29uc3QgVUJyZWFrSXRlcmF0b3IgKiBVX0VYUE9SVDIKK3VjYXNl
bWFwX2dldEJyZWFrSXRlcmF0b3IoY29uc3QgVUNhc2VNYXAgKmNzbSk7CisKKy8qKgorICogU2V0
IHRoZSBicmVhayBpdGVyYXRvciB0aGF0IGlzIHVzZWQgZm9yIHRpdGxlY2FzaW5nLgorICogVGhl
IFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0IHJlbGVhc2VzIGEgcHJldmlvdXNseSBzZXQgYnJlYWsg
aXRlcmF0b3IKKyAqIGFuZCAiYWRvcHRzIiB0aGlzIG5ldyBvbmUsIHRha2luZyBvd25lcnNoaXAg
b2YgaXQuCisgKiBJdCB3aWxsIGJlIHJlbGVhc2VkIGluIGEgc3Vic2VxdWVudCBjYWxsIHRvIHVj
YXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoKQorICogb3IgdWNhc2VtYXBfY2xvc2UoKS4KKyAqCisg
KiBCcmVhayBpdGVyYXRvciBvcGVyYXRpb25zIGFyZSBub3QgdGhyZWFkLXNhZmUuIFRoZXJlZm9y
ZSwgdGl0bGVjYXNpbmcKKyAqIGZ1bmN0aW9ucyB1c2Ugbm9uLWNvbnN0IFVDYXNlTWFwIG9iamVj
dHMuIEl0IGlzIG5vdCBwb3NzaWJsZSB0byB0aXRsZWNhc2UKKyAqIHN0cmluZ3MgY29uY3VycmVu
dGx5IHVzaW5nIHRoZSBzYW1lIFVDYXNlTWFwLgorICoKKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAg
c2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gaXRlclRvQWRvcHQgQnJlYWsgaXRlcmF0b3IgdG8g
YmUgYWRvcHRlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJl
IGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAg
ICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rp
b24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBf
dXRmOFRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQ
T1JUMgordWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcihVQ2FzZU1hcCAqY3NtLCBVQnJlYWtJdGVy
YXRvciAqaXRlclRvQWRvcHQsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIFRp
dGxlY2FzZSBhIFVURi0xNiBzdHJpbmcuIFRoaXMgZnVuY3Rpb24gaXMgYWxtb3N0IGEgZHVwbGlj
YXRlIG9mIHVfc3RyVG9UaXRsZSgpLAorICogZXhjZXB0IHRoYXQgaXQgdGFrZXMgdWNhc2VtYXBf
c2V0T3B0aW9ucygpIGludG8gYWNjb3VudCBhbmQgaGFzIHBlcmZvcm1hbmNlCisgKiBhZHZhbnRh
Z2VzIGZyb20gYmVpbmcgYWJsZSB0byB1c2UgYSBVQ2FzZU1hcCBvYmplY3QgZm9yIG11bHRpcGxl
IGNhc2UgbWFwcGluZworICogb3BlcmF0aW9ucywgc2F2aW5nIHNldHVwIHRpbWUuCisgKgorICog
Q2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGl0
bGVjYXNpbmcgdXNlcyBhIGJyZWFrIGl0ZXJhdG9yIHRvIGZpbmQgdGhlIGZpcnN0IGNoYXJhY3Rl
cnMgb2Ygd29yZHMKKyAqIHRoYXQgYXJlIHRvIGJlIHRpdGxlY2FzZWQuIEl0IHRpdGxlY2FzZXMg
dGhvc2UgY2hhcmFjdGVycyBhbmQgbG93ZXJjYXNlcworICogYWxsIG90aGVycy4gKFRoaXMgY2Fu
IGJlIG1vZGlmaWVkIHdpdGggdWNhc2VtYXBfc2V0T3B0aW9ucygpLikKKyAqCisgKiBOb3RlOiBU
aGlzIGZ1bmN0aW9uIHRha2VzIGEgbm9uLWNvbnN0IFVDYXNlTWFwIHBvaW50ZXIgYmVjYXVzZSBp
dCB3aWxsCisgKiBvcGVuIGEgZGVmYXVsdCBicmVhayBpdGVyYXRvciBpZiBubyBicmVhayBpdGVy
YXRvciB3YXMgc2V0IHlldCwKKyAqIGFuZCBlZmZlY3RpdmVseSBjYWxsIHVjYXNlbWFwX3NldEJy
ZWFrSXRlcmF0b3IoKTsKKyAqIGFsc28gYmVjYXVzZSB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgc3Rh
dGVmdWwgYW5kIHdpbGwgYmUgbW9kaWZpZWQgZHVyaW5nCisgKiB0aGUgaXRlcmF0aW9uLgorICoK
KyAqIFRoZSB0aXRsZWNhc2UgYnJlYWsgaXRlcmF0b3IgY2FuIGJlIHByb3ZpZGVkIHRvIGN1c3Rv
bWl6ZSBmb3IgYXJiaXRyYXJ5CisgKiBzdHlsZXMsIHVzaW5nIHJ1bGVzIGFuZCBkaWN0aW9uYXJp
ZXMgYmV5b25kIHRoZSBzdGFuZGFyZCBpdGVyYXRvcnMuCisgKiBUaGUgc3RhbmRhcmQgdGl0bGVj
YXNlIGl0ZXJhdG9yIGZvciB0aGUgcm9vdCBsb2NhbGUgaW1wbGVtZW50cyB0aGUKKyAqIGFsZ29y
aXRobSBvZiBVbmljb2RlIFRSIDIxLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gdXNlcyBvbmx5IHRo
ZSBzZXRVVGV4dCgpLCBmaXJzdCgpLCBuZXh0KCkgYW5kIGNsb3NlKCkgbWV0aG9kcyBvZiB0aGUK
KyAqIHByb3ZpZGVkIGJyZWFrIGl0ZXJhdG9yLgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxv
bmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcg
YW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFy
YW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LiBUaGlzIHBvaW50ZXIgaXMgbm9u
LWNvbnN0IQorICogICAgICAgICAgICAgICAgICBTZWUgdGhlIG5vdGUgYWJvdmUgZm9yIGRldGFp
bHMuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4g
VGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAg
IHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29u
dGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2Fw
YWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMg
MCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVu
Y3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAg
ICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAq
IEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5n
dGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVz
dCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxp
ZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdo
aWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwu
CisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3Nm
dWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGlj
aCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2Vl
IHVfc3RyVG9UaXRsZQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIGludDMyX3Qg
VV9FWFBPUlQyCit1Y2FzZW1hcF90b1RpdGxlKFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAg
ICAgIFVDaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAg
Y29uc3QgVUNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgIFVF
cnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYKKworLyoqCisgKiBMb3dlcmNhc2UgdGhl
IGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRlcGVu
ZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIg
b3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0
aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNz
bSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBi
dWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1p
bmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2gu
CisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBv
ZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVy
IChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAg
IGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBs
ZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcg
YW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2lu
YWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5h
bCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBh
cmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2
YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWls
dXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0
aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIg
b3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRo
YW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb0xvd2VyCisgKiBAc3RhYmxlIElD
VSAzLjQKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhUb0xv
d2VyKGNvbnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0
LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg
KnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2Rl
ICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBVcHBlcmNhc2UgdGhlIGNoYXJhY3RlcnMgaW4gYSBV
VEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgY29udGV4dC1z
ZW5zaXRpdmUuCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRo
ZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVm
ZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBz
ZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1
bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAg
ICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAg
ICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBh
cmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMp
LiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwg
YW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3Vs
dAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQg
c3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBh
cmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0
aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVz
dCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAg
ICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVu
Y3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywg
aWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAg
ICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5Lgor
ICoKKyAqIEBzZWUgdV9zdHJUb1VwcGVyCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFC
TEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhUb1VwcGVyKGNvbnN0IFVDYXNlTWFw
ICpjc20sCisgICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBh
Y2l0eSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNM
ZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKwor
I2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCisvKioKKyAqIFRpdGxlY2FzZSBhIFVU
Ri04IHN0cmluZy4KKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNl
bnNpdGl2ZS4KKyAqIFRpdGxlY2FzaW5nIHVzZXMgYSBicmVhayBpdGVyYXRvciB0byBmaW5kIHRo
ZSBmaXJzdCBjaGFyYWN0ZXJzIG9mIHdvcmRzCisgKiB0aGF0IGFyZSB0byBiZSB0aXRsZWNhc2Vk
LiBJdCB0aXRsZWNhc2VzIHRob3NlIGNoYXJhY3RlcnMgYW5kIGxvd2VyY2FzZXMKKyAqIGFsbCBv
dGhlcnMuIChUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHVjYXNlbWFwX3NldE9wdGlvbnMoKS4p
CisgKgorICogTm90ZTogVGhpcyBmdW5jdGlvbiB0YWtlcyBhIG5vbi1jb25zdCBVQ2FzZU1hcCBw
b2ludGVyIGJlY2F1c2UgaXQgd2lsbAorICogb3BlbiBhIGRlZmF1bHQgYnJlYWsgaXRlcmF0b3Ig
aWYgbm8gYnJlYWsgaXRlcmF0b3Igd2FzIHNldCB5ZXQsCisgKiBhbmQgZWZmZWN0aXZlbHkgY2Fs
bCB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCk7CisgKiBhbHNvIGJlY2F1c2UgdGhlIGJyZWFr
IGl0ZXJhdG9yIGlzIHN0YXRlZnVsIGFuZCB3aWxsIGJlIG1vZGlmaWVkIGR1cmluZworICogdGhl
IGl0ZXJhdGlvbi4KKyAqCisgKiBUaGUgdGl0bGVjYXNlIGJyZWFrIGl0ZXJhdG9yIGNhbiBiZSBw
cm92aWRlZCB0byBjdXN0b21pemUgZm9yIGFyYml0cmFyeQorICogc3R5bGVzLCB1c2luZyBydWxl
cyBhbmQgZGljdGlvbmFyaWVzIGJleW9uZCB0aGUgc3RhbmRhcmQgaXRlcmF0b3JzLgorICogVGhl
IHN0YW5kYXJkIHRpdGxlY2FzZSBpdGVyYXRvciBmb3IgdGhlIHJvb3QgbG9jYWxlIGltcGxlbWVu
dHMgdGhlCisgKiBhbGdvcml0aG0gb2YgVW5pY29kZSBUUiAyMS4KKyAqCisgKiBUaGlzIGZ1bmN0
aW9uIHVzZXMgb25seSB0aGUgc2V0VVRleHQoKSwgZmlyc3QoKSwgbmV4dCgpIGFuZCBjbG9zZSgp
IG1ldGhvZHMgb2YgdGhlCisgKiBwcm92aWRlZCBicmVhayBpdGVyYXRvci4KKyAqCisgKiBUaGUg
cmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRo
ZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJs
YXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4gVGhp
cyBwb2ludGVyIGlzIG5vbi1jb25zdCEKKyAqICAgICAgICAgICAgICAgICAgU2VlIHRoZSBub3Rl
IGFib3ZlIGZvciBkZXRhaWxzLgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhl
IHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICog
ICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAg
ICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisg
KiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBi
eXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUg
TlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUg
cmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJl
c3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisg
KiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYg
LTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29k
ZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAg
ICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRo
ZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3Ry
aW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAq
ICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNp
dHkuCisgKgorICogQHNlZSB1X3N0clRvVGl0bGUKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fTE9X
RVJDQVNFCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0JSRUFLX0FESlVTVE1FTlQKKyAqIEBzdGFi
bGUgSUNVIDMuOAorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRm
OFRvVGl0bGUoVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwg
aW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNy
YywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBF
cnJvckNvZGUpOworCisjZW5kaWYKKworLyoqCisgKiBDYXNlLWZvbGRzIHRoZSBjaGFyYWN0ZXJz
IGluIGEgVVRGLTggc3RyaW5nLgorICoKKyAqIENhc2UtZm9sZGluZyBpcyBsb2NhbGUtaW5kZXBl
bmRlbnQgYW5kIG5vdCBjb250ZXh0LXNlbnNpdGl2ZSwKKyAqIGJ1dCB0aGVyZSBpcyBhbiBvcHRp
b24gZm9yIHdoZXRoZXIgdG8gaW5jbHVkZSBvciBleGNsdWRlIG1hcHBpbmdzIGZvciBkb3R0ZWQg
SQorICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQgd2l0aCAnVCcgaW4gQ2FzZUZvbGRp
bmcudHh0LgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4g
dGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBi
dWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJl
c3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAg
ICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAg
ICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBA
cGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRl
cykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVM
TCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVz
dWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3Vs
dCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBA
cGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEs
IHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBN
dXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAg
ICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBm
dW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5n
LCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAg
ICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHku
CisgKgorICogQHNlZSB1X3N0ckZvbGRDYXNlCisgKiBAc2VlIHVjYXNlbWFwX3NldE9wdGlvbnMK
KyAqIEBzZWUgVV9GT0xEX0NBU0VfREVGQVVMVAorICogQHNlZSBVX0ZPTERfQ0FTRV9FWENMVURF
X1NQRUNJQUxfSQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9F
WFBPUlQyCit1Y2FzZW1hcF91dGY4Rm9sZENhc2UoY29uc3QgVUNhc2VNYXAgKmNzbSwKKyAgICAg
ICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAg
ICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0ZXIuaCBiL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvdWNocml0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDVhOTkwZjdiN2VkM2Q1YmFjZjJk
YTg0NzFlZjhmZjk0MjJmOTljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5p
Y29kZS91Y2hyaXRlci5oCkBAIC0wLDAgKzEsMzgxIEBACisvKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IENvcHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisqLworCisjaWZuZGVmIFVDSFJJVEVSX0gKKyNkZWZpbmUgVUNIUklURVJfSAor
CisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVy
LmgiCisKKy8qKgorICogXGZpbGUgCisgKiBcYnJpZWYgQysrIEFQSTogVUNoYXIgQ2hhcmFjdGVy
IEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogQSBjb25jcmV0
ZSBzdWJjbGFzcyBvZiBDaGFyYWN0ZXJJdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgdGhlCisg
KiBjaGFyYWN0ZXJzIChjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzKSBpbiBhIFVDaGFyIGFycmF5
LgorICogSXQncyBwb3NzaWJsZSBub3Qgb25seSB0byBjcmVhdGUgYW4KKyAqIGl0ZXJhdG9yIHRo
YXQgaXRlcmF0ZXMgb3ZlciBhbiBlbnRpcmUgVUNoYXIgYXJyYXksIGJ1dCBhbHNvIHRvCisgKiBj
cmVhdGUgb25lIHRoYXQgaXRlcmF0ZXMgb3ZlciBvbmx5IGEgc3VicmFuZ2Ugb2YgYSBVQ2hhciBh
cnJheQorICogKGl0ZXJhdG9ycyBvdmVyIGRpZmZlcmVudCBzdWJyYW5nZXMgb2YgdGhlIHNhbWUg
VUNoYXIgYXJyYXkgZG9uJ3QKKyAqIGNvbXBhcmUgZXF1YWwpLgorICogQHNlZSBDaGFyYWN0ZXJJ
dGVyYXRvcgorICogQHNlZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzdGFibGUgSUNV
IDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciA6IHB1
YmxpYyBDaGFyYWN0ZXJJdGVyYXRvciB7CitwdWJsaWM6CisgIC8qKgorICAgKiBDcmVhdGUgYW4g
aXRlcmF0b3Igb3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgor
ICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNvZGU+bGVuZ3RoLTE8L2NvZGU+Lgor
ICAgKiB0ZXh0IGlzIG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAgKiBkZXN0cnVj
dG9yIHdpbGwgbm90IGRlbGV0ZSBpdCkuCisgICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBh
cnJheSB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBv
ZiB0aGUgVUNoYXIgYXJyYXkKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNo
YXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyKiB0ZXh0UHRyLCBpbnQzMl90IGxlbmd0aCk7CisK
KyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVQ2hhciBhcnJheSByZWZl
cnJlZCB0byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgMCB0byA8
Y29kZT5sZW5ndGgtMTwvY29kZT4uCisgICAqIHRleHQgaXMgb25seSBhbGlhc2VkLCBub3QgYWRv
cHRlZCAodGhlCisgICAqIGRlc3RydWN0b3Igd2lsbCBub3QgZGVsZXRlIGl0KS4KKyAgICogVGhl
IHN0YXJ0aW5nCisgICAqIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAicG9zaXRpb24iLiBJZiAi
cG9zaXRpb24iIGlzIG91dHNpZGUgdGhlIHZhbGlkCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhl
IGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRQ
dHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGQgb3ZlcgorICAgKiBAcGFyYW0gbGVuZ3Ro
IFRoZSBsZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAqIEBwYXJhbSBwb3NpdGlvbiBUaGUg
c3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVUNoYXIqIHRleHRQdHIsIGlu
dDMyX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcG9zaXRpb24p
OworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVUNoYXIgYXJyYXkg
cmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIDAg
dG8gPGNvZGU+ZW5kLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlzIG9ubHkgYWxpYXNlZCwgbm90IGFk
b3B0ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90IGRlbGV0ZSBpdCkuCisgICAqIFRo
ZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInBvc2l0aW9uIi4gSWYg
YmVnaW4gYW5kIGVuZCBkbyBub3QKKyAgICogZm9ybSBhIHZhbGlkIGl0ZXJhdGlvbiByYW5nZSBv
ciAicG9zaXRpb24iIGlzIG91dHNpZGUgdGhlIHZhbGlkCisgICAqIGl0ZXJhdGlvbiByYW5nZSwg
dGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFtIHRl
eHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICogQHBhcmFtIGxl
bmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQorICAgKiBAcGFyYW0gdGV4dEJlZ2lu
ICBUaGUgYmVnaW4gcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0g
dGV4dEVuZCAgICBUaGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICog
QHBhcmFtIHBvc2l0aW9uICAgIFRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9u
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihj
b25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50MzJfdCB0ZXh0QmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJf
dCB0ZXh0RW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcG9zaXRpb24pOwor
CisgIC8qKgorICAgKiBDb3B5IGNvbnN0cnVjdG9yLiAgVGhlIG5ldyBpdGVyYXRvciBpdGVyYXRl
cyBvdmVyIHRoZSBzYW1lIHJhbmdlCisgICAqIG9mIHRoZSBzYW1lIHN0cmluZyBhcyAidGhhdCIs
IGFuZCBpdHMgaW5pdGlhbCBwb3NpdGlvbiBpcyB0aGUKKyAgICogc2FtZSBhcyAidGhhdCIncyBj
dXJyZW50IHBvc2l0aW9uLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgVUNoYXJDaGFyYWN0ZXJJdGVy
YXRvciB0byBiZSBjb3BpZWQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNo
YXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImICB0aGF0KTsKKwor
ICAvKioKKyAgICogRGVzdHJ1Y3Rvci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2
aXJ0dWFsIH5VQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgLyoqCisgICAqIEFzc2lnbm1l
bnQgb3BlcmF0b3IuICAqdGhpcyBpcyBhbHRlcmVkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgc2FuZQor
ICAgKiByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgcmVmZXJzIHRvIHRo
ZSBzYW1lCisgICAqIGNoYXJhY3RlciB3aXRoaW4gdGhhdCBzdHJpbmcgYXMgInRoYXQiIGRvZXMu
CisgICAqIEBwYXJhbSB0aGF0IFRoZSBvYmplY3QgdG8gYmUgY29waWVkCisgICAqIEByZXR1cm4g
dGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
VUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYKKyAgb3BlcmF0b3I9KGNvbnN0IFVDaGFyQ2hhcmFjdGVy
SXRlcmF0b3ImICAgIHRoYXQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGl0
ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3Ry
aW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAcGFyYW0g
dGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHVzZWQgdG8gYmUgY29tcGFyZWQgZm9y
IGVxdWFsaXR5CisgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3Zl
ciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGlu
ZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
dmlydHVhbCBVQm9vbCAgICAgICAgICBvcGVyYXRvcj09KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgLyoqCisgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29k
ZSBmb3IgdGhpcyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0aGUgaGFzaCBjb2RlLgorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgaW50MzJfdCAgICAgICAgIGhhc2hDb2Rl
KHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1cm5zIGEgbmV3IFVDaGFyQ2hhcmFjdGVy
SXRlcmF0b3IgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciBpbiB0aGUgc2Ft
ZSByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgdGhpcyBvbmUuICBUaGUKKyAgICogY2FsbGVy
IG11c3QgZGVsZXRlIHRoZSBuZXcgaXRlcmF0b3IuCisgICAqIEByZXR1cm4gdGhlIENoYXJhY3Rl
ckl0ZXJhdG9yIG5ld2x5IGNyZWF0ZWQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2
aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAg
ICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBp
dHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAg
ICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0KCkuCisg
ICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJz
dCh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhl
IGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5zIHRo
YXQgY29kZSB1bml0LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAqIHRvIHRoZSBzZWNvbmQg
Y29kZSB1bml0LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAgKiBm
b3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpLgorICAgKiBAcmV0dXJuIHRo
ZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdFBvc3RJbmModm9pZCk7
CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBj
b2RlIHBvaW50IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQg
Y29kZSB1bml0LAorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3
aXRoIG5leHQzMigpLgorICAgKiBOb3RlIHRoYXQgYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9z
dEluYygpLCBiZWdpbm5pbmcgd2l0aCwKKyAgICogZS5nLiwgc2V0VG9TdGFydCgpIG9yIGZpcnN0
UG9zdEluYygpLCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICogQHJldHVybiB0aGUgZmlyc3QgY29k
ZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzIodm9pZCk7CisKKyAgLyoqCisgICAq
IFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0
cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LCBhbmQgbW92
ZXMgdGhlIHBvc2l0aW9uCisgICAqIHRvIHRoZSBzZWNvbmQgY29kZSBwb2ludC4gVGhpcyBpcyBh
biBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9u
IHdpdGggbmV4dDMyUG9zdEluYygpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50
IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
dmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzJQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHVuaXQgaW4gaXRz
CisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAq
IFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKS4K
KyAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4K
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbGFz
dCh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhl
IGxhc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJu
cyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVy
YXRpb24gd2l0aCBwcmV2aW91czMyKCkuCisgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSBwb2lu
dCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgVUNoYXIzMiAgICAgICBsYXN0MzIodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMg
dGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAg
KiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRvLCBhbmQK
KyAgICogcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBw
b3NpdGlvbiB3aXRoaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICogQHJldHVybiB0aGUg
Y29kZSB1bml0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAg
ICAgICAgIHNldEluZGV4KGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBTZXRzIHRo
ZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjb2RlIHBvaW50Cisg
ICAqIHRoYXQgY29udGFpbnMgdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAqIGluIHRo
ZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgKiBy
ZXR1cm5zIHRoYXQgY29kZSBwb2ludC4KKyAgICogVGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgYWRq
dXN0ZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgKiAoaXRzIGZpcnN0
IGNvZGUgdW5pdCkuCisgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gd2l0aGluIHRo
ZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAqIEByZXR1cm4gdGhlIGNvZGUgdW5pdAorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBzZXRJbmRleDMy
KGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBSZXR1cm5zIHRoZSBjb2RlIHVuaXQg
dGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEByZXR1cm4gdGhlIGNvZGUg
dW5pdCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgY3VycmVudCh2b2lkKSBjb25zdDsK
KworICAvKioKKyAgICogUmV0dXJucyB0aGUgY29kZSBwb2ludCB0aGUgaXRlcmF0b3IgY3VycmVu
dGx5IHJlZmVycyB0by4KKyAgICogQHJldHVybiB0aGUgY29kZSBwb2ludCB0aGUgaXRlcmF0b3Ig
Y3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIFVDaGFyMzIgICAgICAgY3VycmVudDMyKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBB
ZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93
YXJkCisgICAqIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4gIElmIHRo
ZXJlIGFyZSBubyBtb3JlCisgICAqIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUu
CisgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2Uu
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5l
eHQodm9pZCk7CisKKyAgLyoqCisgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSB1bml0IGZvciBy
ZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgdW5pdAorICAgKiBpbiB0aGUg
aXRlcmF0aW9uIHJhbmdlCisgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUK
KyAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBA
cmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dFBvc3RJbmModm9pZCk7CisKKyAgLyoqCisg
ICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5n
ZSAodG93YXJkCisgICAqIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQu
ICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVy
bnMgRE9ORS4KKyAgICogTm90ZSB0aGF0IGl0ZXJhdGlvbiB3aXRoICJwcmUtaW5jcmVtZW50IiBz
ZW1hbnRpY3MgaXMgbGVzcworICAgKiBlZmZpY2llbnQgdGhhbiBpdGVyYXRpb24gd2l0aCAicG9z
dC1pbmNyZW1lbnQiIHNlbWFudGljcworICAgKiB0aGF0IGlzIHByb3ZpZGVkIGJ5IG5leHQzMlBv
c3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMy
ICAgICAgIG5leHQzMih2b2lkKTsKKworICAvKioKKyAgICogR2V0cyB0aGUgY3VycmVudCBjb2Rl
IHBvaW50IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQK
KyAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAg
SWYgdGhlcmUgYXJlCisgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5z
IERPTkUuCisgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgcG9pbnQuCisgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMlBvc3RJbmModm9pZCk7
CisKKyAgLyoqCisgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1
bml0cyBvciBjb2RlIHBvaW50cworICAgKiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlv
biBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBuZXh0UG9z
dEluYygpIG9yIG5leHQzMlBvc3RJbmMoKSBpbiBmb3J3YXJkCisgICAqIGl0ZXJhdGlvbi4KKyAg
ICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUg
cG9pbnRzCisgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVy
YXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9v
bCAgICAgICAgaGFzTmV4dCgpOworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlv
dXMgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBzdGFydElu
ZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZSBubyBtb3Jl
CisgICAqIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4g
dGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBwcmV2aW91cyh2b2lk
KTsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgaW4g
dGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1
cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZSBubyBtb3JlCisgICAqIGNvZGUgcG9p
bnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBj
b2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHByZXZpb3VzMzIodm9pZCk7CisKKyAgLyoq
CisgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBj
b2RlIHBvaW50cworICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJh
dGlvbiByYW5nZS4KKyAgICogVGhpcyBpcyB1c2VkIHdpdGggcHJldmlvdXMoKSBvciBwcmV2aW91
czMyKCkgaW4gYmFja3dhcmQKKyAgICogaXRlcmF0aW9uLgorICAgKiBAcmV0dXJuIEZBTFNFIGlm
IHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYmVmb3Jl
IHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzUHJldmlvdXMoKTsK
KworICAvKioKKyAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhl
IHN0YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0
byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAqIFRoZSBtb3ZlbWVudCBpcyBleHBy
ZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHVuaXRzIGZvcndhcmQKKyAgICogb3IgYmFja3dhcmQg
Ynkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgKiBAcGFyYW0g
ZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBt
ZWFucyBmb3J3YXJkOworICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAg
KiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0Vu
ZH0KKyAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92ZShpbnQzMl90IGRlbHRhLCBFT3JpZ2lu
IG9yaWdpbik7CisKKyAgLyoqCisgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0
aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgb3Ig
cmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgKiBUaGUgbW92ZW1l
bnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSBwb2ludHMgZm9yd2FyZAorICAgKiBv
ciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisg
ICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0
aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMgYmFj
a3dhcmQuCisgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtD
dXJyZW50LCBrRW5kfQorICAgKiBAcmV0dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlMzIoaW50MzJfdCBk
ZWx0YSwgRU9yaWdpbiBvcmlnaW4pOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0
byBpdGVyYXRlIG92ZXIgYSBuZXcgcmFuZ2Ugb2YgdGV4dAorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVQ2hhciogbmV3VGV4dCwgaW50MzJfdCBuZXdU
ZXh0TGVuZ3RoKTsKKworICAvKioKKyAgICogQ29waWVzIHRoZSBVQ2hhciBhcnJheSB1bmRlciBp
dGVyYXRpb24gaW50byB0aGUgVW5pY29kZVN0cmluZworICAgKiByZWZlcnJlZCB0byBieSAicmVz
dWx0Ii4gIEV2ZW4gaWYgdGhpcyBpdGVyYXRvciBpdGVyYXRlcyBhY3Jvc3MKKyAgICogb25seSBh
IHBhcnQgb2YgdGhpcyBzdHJpbmcsIHRoZSB3aG9sZSBzdHJpbmcgaXMgY29waWVkLgorICAgKiBA
cGFyYW0gcmVzdWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24u
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB2b2lkICAgICAgICAgICAg
Z2V0VGV4dChVbmljb2RlU3RyaW5nJiByZXN1bHQpOworCisgIC8qKgorICAgKiBSZXR1cm4gYSBj
bGFzcyBJRCBmb3IgdGhpcyBjbGFzcyAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1cm4g
YSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHN0YXRpYyBVQ2xhc3NJRCAgICAgICAgIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKHZvaWQp
OworCisgIC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QgKG5vdCBy
ZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0Lgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNsYXNzSUQgICAgICAgIGdl
dER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgIC8qKgorICAgKiBQ
cm90ZWN0ZWQgY29uc3RydWN0b3IKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hh
ckNoYXJhY3Rlckl0ZXJhdG9yKCk7CisgIC8qKgorICAgKiBQcm90ZWN0ZWQgbWVtYmVyIHRleHQK
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBjb25zdCBVQ2hhciogICAgICAgICAgICB0
ZXh0OworCit9OworCitVX05BTUVTUEFDRV9FTkQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9pY3UvdW5pY29kZS91ZGF0YS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91ZGF0YS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI5ZTQ2NjMwZDUzOThkODI3MzhkMWQ2MWZmYzRkMmM5MTRlOGM2OGIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VkYXRhLmgKQEAgLTAsMCAr
MSw0MzAgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMp
IDE5OTktMjAxNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0
aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqICAgZmlsZSBuYW1lOiAgdWRhdGEuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJ
CisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAg
IGNyZWF0ZWQgb246IDE5OTlvY3QyNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVy
CisqLworCisjaWZuZGVmIF9fVURBVEFfSF9fCisjZGVmaW5lIF9fVURBVEFfSF9fCisKKyNpbmNs
dWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9jYWxwb2ludGVyLmgi
CisKK1VfQ0RFQ0xfQkVHSU4KKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMgQVBJOiBEYXRh
IGxvYWRpbmcgaW50ZXJmYWNlCisgKgorICogPGgyPkluZm9ybWF0aW9uIGFib3V0IGRhdGEgbG9h
ZGluZyBpbnRlcmZhY2U8L2gyPgorICoKKyAqIFRoaXMgQVBJIGlzIHVzZWQgdG8gZmluZCBhbmQg
ZWZmaWNpZW50bHkgbG9hZCBkYXRhIGZvciBJQ1UgYW5kIGFwcGxpY2F0aW9ucworICogdXNpbmcg
SUNVLiBJdCBwcm92aWRlcyBhbiBhYnN0cmFjdCBpbnRlcmZhY2UgdGhhdCBzcGVjaWZpZXMgYSBk
YXRhIHR5cGUgYW5kCisgKiBuYW1lIHRvIGZpbmQgYW5kIGxvYWQgdGhlIGRhdGEuIE5vcm1hbGx5
IHRoaXMgQVBJIGlzIHVzZWQgYnkgb3RoZXIgSUNVIEFQSXMKKyAqIHRvIGxvYWQgcmVxdWlyZWQg
ZGF0YSBvdXQgb2YgdGhlIElDVSBkYXRhIGxpYnJhcnksIGJ1dCBpdCBjYW4gYmUgdXNlZCB0bwor
ICogbG9hZCBkYXRhIG91dCBvZiBvdGhlciBwbGFjZXMuCisgKgorICogU2VlIHRoZSBVc2VyIEd1
aWRlIERhdGEgTWFuYWdlbWVudCBjaGFwdGVyLgorICovCisgCisjaWZuZGVmIFVfSElERV9JTlRF
Uk5BTF9BUEkKKy8qKgorICogQ2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgcGFja2FnZSBuYW1l
cyBmcm9tIHRyZWUgbmFtZXMgCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisjZGVmaW5lIFVf
VFJFRV9TRVBBUkFUT1IgJy0nCisKKy8qKgorICogU3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgcGFj
a2FnZSBuYW1lcyBmcm9tIHRyZWUgbmFtZXMgCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisj
ZGVmaW5lIFVfVFJFRV9TRVBBUkFUT1JfU1RSSU5HICItIgorCisvKioKKyAqIENoYXJhY3RlciB1
c2VkIHRvIHNlcGFyYXRlIHBhcnRzIG9mIGVudHJ5IG5hbWVzCisgKiBAaW50ZXJuYWwgSUNVIDMu
MAorICovCisjZGVmaW5lIFVfVFJFRV9FTlRSWV9TRVBfQ0hBUiAnLycKKworLyoqCisgKiBTdHJp
bmcgdXNlZCB0byBzZXBhcmF0ZSBwYXJ0cyBvZiBlbnRyeSBuYW1lcworICogQGludGVybmFsIElD
VSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfRU5UUllfU0VQX1NUUklORyAiLyIKKworLyoqCisg
KiBBbGlhcyBmb3Igc3RhbmRhcmQgSUNVIGRhdGEgCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICov
CisjZGVmaW5lIFVfSUNVREFUQV9BTElBUyAiSUNVREFUQSIKKworI2VuZGlmIC8qIFVfSElERV9J
TlRFUk5BTF9BUEkgKi8KKworLyoqCisgKiBVRGF0YUluZm8gY29udGFpbnMgdGhlIHByb3BlcnRp
ZXMgYWJvdXQgdGhlIHJlcXVlc3RlZCBkYXRhLgorICogVGhpcyBpcyBtZXRhIGRhdGEuCisgKgor
ICogPHA+VGhpcyBzdHJ1Y3R1cmUgbWF5IGdyb3cgaW4gdGhlIGZ1dHVyZSwgaW5kaWNhdGVkIGJ5
IHRoZQorICogPGNvZGU+c2l6ZTwvY29kZT4gZmllbGQuPC9wPgorICoKKyAqIDxwPklDVSBkYXRh
IG11c3QgYmUgYXQgbGVhc3QgOC1hbGlnbmVkLCBhbmQgc2hvdWxkIGJlIDE2LWFsaWduZWQuCisg
KiBUaGUgVURhdGFJbmZvIHN0cnVjdCBiZWdpbnMgNCBieXRlcyBhZnRlciB0aGUgc3RhcnQgb2Yg
dGhlIGRhdGEgaXRlbSwKKyAqIHNvIGl0IGlzIDQtYWxpZ25lZC4KKyAqCisgKiA8cD5UaGUgcGxh
dGZvcm0gZGF0YSBwcm9wZXJ0eSBmaWVsZHMgaGVscCBkZXRlcm1pbmUgaWYgYSBkYXRhCisgKiBm
aWxlIGNhbiBiZSBlZmZpY2llbnRseSB1c2VkIG9uIGEgZ2l2ZW4gbWFjaGluZS4KKyAqIFRoZSBw
YXJ0aWN1bGFyIGZpZWxkcyBhcmUgb2YgaW1wb3J0YW5jZSBvbmx5IGlmIHRoZSBkYXRhCisgKiBp
cyBhZmZlY3RlZCBieSB0aGUgcHJvcGVydGllcyAtIGlmIHRoZXJlIGlzIGludGVnZXIgZGF0YQor
ICogd2l0aCB3b3JkIHNpemVzID4gMSBieXRlLCBjaGFyKiB0ZXh0LCBvciBVQ2hhciogdGV4dC48
L3A+CisgKgorICogPHA+VGhlIGltcGxlbWVudGF0aW9uIGZvciB0aGUgPGNvZGU+dWRhdGFfb3Bl
bltDaG9pY2VdKCk8L2NvZGU+CisgKiBmdW5jdGlvbnMgbWF5IHJlamVjdCBkYXRhIGJhc2VkIG9u
IHRoZSB2YWx1ZSBpbiA8Y29kZT5pc0JpZ0VuZGlhbjwvY29kZT4uCisgKiBObyBvdGhlciBmaWVs
ZCBpcyB1c2VkIGJ5IHRoZSA8Y29kZT51ZGF0YTwvY29kZT4gQVBJIGltcGxlbWVudGF0aW9uLjwv
cD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+ZGF0YUZvcm1hdDwvY29kZT4gbWF5IGJlIHVzZWQgdG8g
aWRlbnRpZnkKKyAqIHRoZSBraW5kIG9mIGRhdGEsIGUuZy4gYSBjb252ZXJ0ZXIgdGFibGUuPC9w
PgorICoKKyAqIDxwPlRoZSA8Y29kZT5mb3JtYXRWZXJzaW9uPC9jb2RlPiBmaWVsZCBzaG91bGQg
YmUgdXNlZCB0bworICogbWFrZSBzdXJlIHRoYXQgdGhlIGZvcm1hdCBjYW4gYmUgaW50ZXJwcmV0
ZWQuCisgKiBJdCBtYXkgYmUgYSBnb29kIGlkZWEgdG8gY2hlY2sgb25seSBmb3IgdGhlIG9uZSBv
ciB0d28gaGlnaGVzdAorICogb2YgdGhlIHZlcnNpb24gZWxlbWVudHMgdG8gYWxsb3cgdGhlIGRh
dGEgbWVtb3J5IHRvCisgKiBnZXQgbW9yZSBvciBzb21ld2hhdCByZWFycmFuZ2VkIGNvbnRlbnRz
LCBmb3IgYXMgbG9uZworICogYXMgdGhlIHVzaW5nIGNvZGUgY2FuIHN0aWxsIGludGVycHJldCB0
aGUgb2xkZXIgY29udGVudHMuPC9wPgorICoKKyAqIDxwPlRoZSA8Y29kZT5kYXRhVmVyc2lvbjwv
Y29kZT4gZmllbGQgaXMgaW50ZW5kZWQgdG8gYmUgYQorICogY29tbW9uIHBsYWNlIHRvIHN0b3Jl
IHRoZSBzb3VyY2UgdmVyc2lvbiBvZiB0aGUgZGF0YTsKKyAqIGZvciBkYXRhIGZyb20gdGhlIFVu
aWNvZGUgY2hhcmFjdGVyIGRhdGFiYXNlLCB0aGlzIGNvdWxkCisgKiByZWZsZWN0IHRoZSBVbmlj
b2RlIHZlcnNpb24uPC9wPgorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIHN0
cnVjdCB7CisgICAgLyoqIHNpemVvZihVRGF0YUluZm8pCisgICAgICogIEBzdGFibGUgSUNVIDIu
MCAqLworICAgIHVpbnQxNl90IHNpemU7CisKKyAgICAvKiogdW51c2VkLCBzZXQgdG8gMCAKKyAg
ICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50MTZfdCByZXNlcnZlZFdvcmQ7CisKKyAg
ICAvKiBwbGF0Zm9ybSBkYXRhIHByb3BlcnRpZXMgKi8KKyAgICAvKiogMCBmb3IgbGl0dGxlLWVu
ZGlhbiBtYWNoaW5lLCAxIGZvciBiaWctZW5kaWFuCisgICAgICogIEBzdGFibGUgSUNVIDIuMCAq
LworICAgIHVpbnQ4X3QgaXNCaWdFbmRpYW47CisKKyAgICAvKiogc2VlIFVfQ0hBUlNFVF9GQU1J
TFkgdmFsdWVzIGluIHV0eXBlcy5oIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVp
bnQ4X3QgY2hhcnNldEZhbWlseTsKKworICAgIC8qKiBzaXplb2YoVUNoYXIpLCBvbmUgb2YgeyAx
LCAyLCA0IH0gCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBzaXplb2ZV
Q2hhcjsKKworICAgIC8qKiB1bnVzZWQsIHNldCB0byAwIAorICAgICAqICBAc3RhYmxlIElDVSAy
LjAqLworICAgIHVpbnQ4X3QgcmVzZXJ2ZWRCeXRlOworCisgICAgLyoqIGRhdGEgZm9ybWF0IGlk
ZW50aWZpZXIgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBkYXRhRm9y
bWF0WzRdOworCisgICAgLyoqIHZlcnNpb25zOiBbMF0gbWFqb3IgWzFdIG1pbm9yIFsyXSBtaWxs
aSBbM10gbWljcm8gCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBmb3Jt
YXRWZXJzaW9uWzRdOworCisgICAgLyoqIHZlcnNpb25zOiBbMF0gbWFqb3IgWzFdIG1pbm9yIFsy
XSBtaWxsaSBbM10gbWljcm8gCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhf
dCBkYXRhVmVyc2lvbls0XTsKK30gVURhdGFJbmZvOworCisvKiBBUEkgZm9yIHJlYWRpbmcgZGF0
YSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSov
CisKKy8qKgorICogRm9yd2FyZCBkZWNsYXJhdGlvbiBvZiB0aGUgZGF0YSBtZW1vcnkgdHlwZS4K
KyAqIEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIHN0cnVjdCBVRGF0YU1lbW9yeSBVRGF0
YU1lbW9yeTsKKworLyoqCisgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdWRhdGFfb3BlbkNob2lj
ZSgpLgorICogQHBhcmFtIGNvbnRleHQgcGFyYW1ldGVyIHBhc3NlZCBpbnRvIDxjb2RlPnVkYXRh
X29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSBvZiB0aGUgZGF0
YSBhcyBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICogICAg
ICAgICAgICAgSXQgbWF5IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICogQHBhcmFtIG5hbWUgVGhl
IG5hbWUgb2YgdGhlIGRhdGEgYXMgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgp
PC9jb2RlPi4KKyAqIEBwYXJhbSBwSW5mbyBBIHBvaW50ZXIgdG8gdGhlIDxjb2RlPlVEYXRhSW5m
bzwvY29kZT4gc3RydWN0dXJlCisgKiAgICAgICAgICAgICAgb2YgZGF0YSB0aGF0IGhhcyBiZWVu
IGxvYWRlZCBhbmQgd2lsbCBiZSByZXR1cm5lZAorICogICAgICAgICAgICAgIGJ5IDxjb2RlPnVk
YXRhX29wZW5DaG9pY2UoKTwvY29kZT4gaWYgdGhpcyBmdW5jdGlvbgorICogICAgICAgICAgICAg
IHJldHVybnMgPGNvZGU+VFJVRTwvY29kZT4uCisgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIGN1cnJl
bnQgZGF0YSBtZW1vcnkgaXMgYWNjZXB0YWJsZQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5
cGVkZWYgVUJvb2wgVV9DQUxMQ09OVgorVURhdGFNZW1vcnlJc0FjY2VwdGFibGUodm9pZCAqY29u
dGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNo
YXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVRGF0YUluZm8gKnBJbmZv
KTsKKworCisvKioKKyAqIENvbnZlbmllbmNlIGZ1bmN0aW9uLgorICogVGhpcyBmdW5jdGlvbiB3
b3JrcyB0aGUgc2FtZSBhcyA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlPC9jb2RlPgorICogZXhjZXB0
IHRoYXQgYW55IGRhdGEgdGhhdCBtYXRjaGVzIHRoZSB0eXBlIGFuZCBuYW1lCisgKiBpcyBhc3N1
bWVkIHRvIGJlIGFjY2VwdGFibGUuCisgKiBAcGFyYW0gcGF0aCBTcGVjaWZpZXMgYW4gYWJzb2x1
dGUgcGF0aCBhbmQvb3IgYSBiYXNlbmFtZSBmb3IgdGhlCisgKiAgICAgICAgICAgICBmaW5kaW5n
IG9mIHRoZSBkYXRhIGluIHRoZSBmaWxlIHN5c3RlbS4KKyAqICAgICAgICAgICAgIDxjb2RlPk5V
TEw8L2NvZGU+IGZvciBJQ1UgZGF0YS4KKyAqIEBwYXJhbSB0eXBlIEEgc3RyaW5nIHRoYXQgc3Bl
Y2lmaWVzIHRoZSB0eXBlIG9mIGRhdGEgdG8gYmUgbG9hZGVkLgorICogICAgICAgICAgICAgRm9y
IGV4YW1wbGUsIHJlc291cmNlIGJ1bmRsZXMgYXJlIGxvYWRlZCB3aXRoIHR5cGUgInJlcyIsCisg
KiAgICAgICAgICAgICBjb252ZXJzaW9uIHRhYmxlcyB3aXRoIHR5cGUgImNudiIuCisgKiAgICAg
ICAgICAgICBUaGlzIG1heSBiZSA8Y29kZT5OVUxMPC9jb2RlPiBvciBlbXB0eS4KKyAqIEBwYXJh
bSBuYW1lIEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBkYXRhLgorICog
QHBhcmFtIHBFcnJvckNvZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJdCBtdXN0IG5v
dCBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEByZXR1cm4gQSBwb2ludGVyIChoYW5kbGUpIHRv
IGEgZGF0YSBtZW1vcnkgb2JqZWN0LCBvciA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAgICBp
ZiBhbiBlcnJvciBvY2N1cnMuIENhbGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+Cisg
KiAgICAgICAgIHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhLgorICoKKyAqIEBz
ZWUgdWRhdGFfb3BlbkNob2ljZQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIFVE
YXRhTWVtb3J5ICogVV9FWFBPUlQyCit1ZGF0YV9vcGVuKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0
IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgIFVFcnJvckNvZGUgKnBF
cnJvckNvZGUpOworCisvKioKKyAqIERhdGEgbG9hZGluZyBmdW5jdGlvbi4KKyAqIFRoaXMgZnVu
Y3Rpb24gaXMgdXNlZCB0byBmaW5kIGFuZCBsb2FkIGVmZmljaWVudGx5IGRhdGEgZm9yCisgKiBJ
Q1UgYW5kIGFwcGxpY2F0aW9ucyB1c2luZyBJQ1UuCisgKiBJdCBwcm92aWRlcyBhbiBhYnN0cmFj
dCBpbnRlcmZhY2UgdGhhdCBhbGxvd3MgdG8gc3BlY2lmeSBhIGRhdGEKKyAqIHR5cGUgYW5kIG5h
bWUgdG8gZmluZCBhbmQgbG9hZCB0aGUgZGF0YS4KKyAqCisgKiA8cD5UaGUgaW1wbGVtZW50YXRp
b24gZGVwZW5kcyBvbiBwbGF0Zm9ybSBwcm9wZXJ0aWVzIGFuZCB1c2VyIHByZWZlcmVuY2VzCisg
KiBhbmQgbWF5IGludm9sdmUgbG9hZGluZyBzaGFyZWQgbGlicmFyaWVzIChETExzKSwgbWFwcGlu
ZworICogZmlsZXMgaW50byBtZW1vcnksIG9yIGZvcGVuKCkvZnJlYWQoKSBmaWxlcy4KKyAqIEl0
IG1heSBhbHNvIGludm9sdmUgdXNpbmcgc3RhdGljIG1lbW9yeSBvciBkYXRhYmFzZSBxdWVyaWVz
IGV0Yy4KKyAqIFNldmVyYWwgb3IgYWxsIGRhdGEgaXRlbXMgbWF5IGJlIGNvbWJpbmVkIGludG8g
b25lIGVudGl0eQorICogKERMTCwgbWVtb3J5LW1hcHBhYmxlIGZpbGUpLjwvcD4KKyAqCisgKiA8
cD5UaGUgZGF0YSBpcyBhbHdheXMgcHJlY2VkZWQgYnkgYSBoZWFkZXIgdGhhdCBpbmNsdWRlcwor
ICogYSA8Y29kZT5VRGF0YUluZm88L2NvZGU+IHN0cnVjdHVyZS4KKyAqIFRoZSBjYWxsZXIncyA8
Y29kZT5pc0FjY2VwdGFibGUoKTwvY29kZT4gZnVuY3Rpb24gaXMgY2FsbGVkIHRvIG1ha2UKKyAq
IHN1cmUgdGhhdCB0aGUgZGF0YSBpcyB1c2VmdWwuIEl0IG1heSBiZSBjYWxsZWQgc2V2ZXJhbCB0
aW1lcyBpZiBpdAorICogcmVqZWN0cyB0aGUgZGF0YSBhbmQgdGhlcmUgaXMgbW9yZSB0aGFuIG9u
ZSBsb2NhdGlvbiB3aXRoIGRhdGEKKyAqIG1hdGNoaW5nIHRoZSB0eXBlIGFuZCBuYW1lLjwvcD4K
KyAqCisgKiA8cD5JZiA8Y29kZT5wYXRoPT1OVUxMPC9jb2RlPiwgdGhlbiBJQ1UgZGF0YSBpcyBs
b2FkZWQuCisgKiBPdGhlcndpc2UsIGl0IGlzIHNlcGFyYXRlZCBpbnRvIGEgYmFzZW5hbWUgYW5k
IGEgYmFzZW5hbWUtbGVzcyBkaXJlY3Rvcnkgc3RyaW5nLgorICogVGhlIGJhc2VuYW1lIGlzIHVz
ZWQgYXMgdGhlIGRhdGEgcGFja2FnZSBuYW1lLCBhbmQgdGhlIGRpcmVjdG9yeSBpcworICogbG9n
aWNhbGx5IHByZXBlbmRlZCB0byB0aGUgSUNVIGRhdGEgZGlyZWN0b3J5IHN0cmluZy48L3A+Cisg
KgorICogPHA+Rm9yIGRldGFpbHMgYWJvdXQgSUNVIGRhdGEgbG9hZGluZyBzZWUgdGhlIFVzZXIg
R3VpZGUKKyAqIERhdGEgTWFuYWdlbWVudCBjaGFwdGVyLiAoaHR0cDovL2ljdS1wcm9qZWN0Lm9y
Zy91c2VyZ3VpZGUvaWN1ZGF0YS5odG1sKTwvcD4KKyAqCisgKiBAcGFyYW0gcGF0aCBTcGVjaWZp
ZXMgYW4gYWJzb2x1dGUgcGF0aCBhbmQvb3IgYSBiYXNlbmFtZSBmb3IgdGhlCisgKiAgICAgICAg
ICAgICBmaW5kaW5nIG9mIHRoZSBkYXRhIGluIHRoZSBmaWxlIHN5c3RlbS4KKyAqICAgICAgICAg
ICAgIDxjb2RlPk5VTEw8L2NvZGU+IGZvciBJQ1UgZGF0YS4KKyAqIEBwYXJhbSB0eXBlIEEgc3Ry
aW5nIHRoYXQgc3BlY2lmaWVzIHRoZSB0eXBlIG9mIGRhdGEgdG8gYmUgbG9hZGVkLgorICogICAg
ICAgICAgICAgRm9yIGV4YW1wbGUsIHJlc291cmNlIGJ1bmRsZXMgYXJlIGxvYWRlZCB3aXRoIHR5
cGUgInJlcyIsCisgKiAgICAgICAgICAgICBjb252ZXJzaW9uIHRhYmxlcyB3aXRoIHR5cGUgImNu
diIuCisgKiAgICAgICAgICAgICBUaGlzIG1heSBiZSA8Y29kZT5OVUxMPC9jb2RlPiBvciBlbXB0
eS4KKyAqIEBwYXJhbSBuYW1lIEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRo
ZSBkYXRhLgorICogQHBhcmFtIGlzQWNjZXB0YWJsZSBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0
byB2ZXJpZnkgdGhhdCBsb2FkZWQgZGF0YQorICogICAgICAgICAgICAgICAgICAgICBpcyB1c2Vm
dWwgZm9yIHRoZSBjbGllbnQgY29kZS4gSWYgaXQgcmV0dXJucyBGQUxTRQorICogICAgICAgICAg
ICAgICAgICAgICBmb3IgYWxsIGRhdGEgaXRlbXMsIHRoZW4gPGNvZGU+dWRhdGFfb3BlbkNob2lj
ZSgpPC9jb2RlPgorICogICAgICAgICAgICAgICAgICAgICB3aWxsIHJldHVybiB3aXRoIGFuIGVy
cm9yLgorICogQHBhcmFtIGNvbnRleHQgQXJiaXRyYXJ5IHBhcmFtZXRlciB0byBiZSBwYXNzZWQg
aW50byBpc0FjY2VwdGFibGUuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBBbiBJQ1UgVUVycm9yQ29k
ZSBwYXJhbWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICogQHJldHVy
biBBIHBvaW50ZXIgKGhhbmRsZSkgdG8gYSBkYXRhIG1lbW9yeSBvYmplY3QsIG9yIDxjb2RlPk5V
TEw8L2NvZGU+CisgKiAgICAgICAgIGlmIGFuIGVycm9yIG9jY3Vycy4gQ2FsbCA8Y29kZT51ZGF0
YV9nZXRNZW1vcnkoKTwvY29kZT4KKyAqICAgICAgICAgdG8gZ2V0IGEgcG9pbnRlciB0byB0aGUg
YWN0dWFsIGRhdGEuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgVURhdGFNZW1v
cnkgKiBVX0VYUE9SVDIKK3VkYXRhX29wZW5DaG9pY2UoY29uc3QgY2hhciAqcGF0aCwgY29uc3Qg
Y2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgVURhdGFNZW1v
cnlJc0FjY2VwdGFibGUgKmlzQWNjZXB0YWJsZSwgdm9pZCAqY29udGV4dCwKKyAgICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogQ2xvc2UgdGhlIGRhdGEg
bWVtb3J5LgorICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCB0byBhbGxvdyB0aGUgc3lz
dGVtIHRvCisgKiByZWxlYXNlIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBkYXRhIG1l
bW9yeS4KKyAqIEBwYXJhbSBwRGF0YSBUaGUgcG9pbnRlciB0byBkYXRhIG1lbW9yeSBvYmplY3QK
KyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWRhdGFf
Y2xvc2UoVURhdGFNZW1vcnkgKnBEYXRhKTsKKworI2lmIFVfU0hPV19DUExVU1BMVVNfQVBJCisK
K1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogXGNsYXNzIExvY2FsVURhdGFNZW1vcnlQb2lu
dGVyCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGNsb3NlcyBhIFVEYXRhTWVtb3J5IHZpYSB1
ZGF0YV9jbG9zZSgpLgorICogRm9yIG1vc3QgbWV0aG9kcyBzZWUgdGhlIExvY2FsUG9pbnRlckJh
c2UgYmFzZSBjbGFzcy4KKyAqCisgKiBAc2VlIExvY2FsUG9pbnRlckJhc2UKKyAqIEBzZWUgTG9j
YWxQb2ludGVyCisgKiBAc3RhYmxlIElDVSA0LjQKKyAqLworVV9ERUZJTkVfTE9DQUxfT1BFTl9Q
T0lOVEVSKExvY2FsVURhdGFNZW1vcnlQb2ludGVyLCBVRGF0YU1lbW9yeSwgdWRhdGFfY2xvc2Up
OworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmCisKKy8qKgorICogR2V0IHRoZSBwb2ludGVy
IHRvIHRoZSBhY3R1YWwgZGF0YSBpbnNpZGUgdGhlIGRhdGEgbWVtb3J5LgorICogVGhlIGRhdGEg
aXMgcmVhZC1vbmx5LgorICoKKyAqIElDVSBkYXRhIG11c3QgYmUgYXQgbGVhc3QgOC1hbGlnbmVk
LCBhbmQgc2hvdWxkIGJlIDE2LWFsaWduZWQuCisgKgorICogQHBhcmFtIHBEYXRhIFRoZSBwb2lu
dGVyIHRvIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RB
QkxFIGNvbnN0IHZvaWQgKiBVX0VYUE9SVDIKK3VkYXRhX2dldE1lbW9yeShVRGF0YU1lbW9yeSAq
cERhdGEpOworCisvKioKKyAqIEdldCB0aGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgZGF0YSBtZW1v
cnkgaGVhZGVyLgorICogVGhpcyBhbGxvd3MgdG8gZ2V0IGFjY2VzcyB0byB0aGUgaGVhZGVyIGNv
bnRhaW5pbmcKKyAqIHBsYXRmb3JtIGRhdGEgcHJvcGVydGllcyBldGMuIHdoaWNoIGlzIG5vdCBw
YXJ0IG9mCisgKiB0aGUgZGF0YSBpdHNlbGYgYW5kIGNhbiB0aGVyZWZvcmUgbm90IGJlIGFjY2Vz
c2VkCisgKiB2aWEgdGhlIHBvaW50ZXIgdGhhdCA8Y29kZT51ZGF0YV9nZXRNZW1vcnkoKTwvY29k
ZT4gcmV0dXJucy4KKyAqCisgKiBAcGFyYW0gcERhdGEgcG9pbnRlciB0byB0aGUgZGF0YSBtZW1v
cnkgb2JqZWN0CisgKiBAcGFyYW0gcEluZm8gcG9pbnRlciB0byBhIFVEYXRhSW5mbyBvYmplY3Q7
CisgKiAgICAgICAgICAgICAgaXRzIDxjb2RlPnNpemU8L2NvZGU+IGZpZWxkIG11c3QgYmUgc2V0
IGNvcnJlY3RseSwKKyAqICAgICAgICAgICAgICB0eXBpY2FsbHkgdG8gPGNvZGU+c2l6ZW9mKFVE
YXRhSW5mbyk8L2NvZGU+LgorICoKKyAqIDxjb2RlPipwSW5mbzwvY29kZT4gd2lsbCBiZSBmaWxs
ZWQgd2l0aCB0aGUgVURhdGFJbmZvIHN0cnVjdHVyZQorICogaW4gdGhlIGRhdGEgbWVtb3J5IG9i
amVjdC4gSWYgdGhpcyBzdHJ1Y3R1cmUgaXMgc21hbGxlciB0aGFuCisgKiA8Y29kZT5wSW5mby0+
c2l6ZTwvY29kZT4sIHRoZW4gdGhlIDxjb2RlPnNpemU8L2NvZGU+IHdpbGwgYmUKKyAqIGFkanVz
dGVkIGFuZCBvbmx5IHBhcnQgb2YgdGhlIHN0cnVjdHVyZSB3aWxsIGJlIGZpbGxlZC4KKyAqIEBz
dGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWRhdGFfZ2V0SW5m
byhVRGF0YU1lbW9yeSAqcERhdGEsIFVEYXRhSW5mbyAqcEluZm8pOworCisvKioKKyAqIFRoaXMg
ZnVuY3Rpb24gYnlwYXNzZXMgdGhlIG5vcm1hbCBJQ1UgZGF0YSBsb2FkaW5nIHByb2Nlc3MgYW5k
CisgKiBhbGxvd3MgeW91IHRvIGZvcmNlIElDVSdzIHN5c3RlbSBkYXRhIHRvIGNvbWUgb3V0IG9m
IGEgdXNlci1zcGVjaWZpZWQKKyAqIGFyZWEgaW4gbWVtb3J5LgorICoKKyAqIElDVSBkYXRhIG11
c3QgYmUgYXQgbGVhc3QgOC1hbGlnbmVkLCBhbmQgc2hvdWxkIGJlIDE2LWFsaWduZWQuCisgKiBT
ZWUgaHR0cDovL3VzZXJndWlkZS5pY3UtcHJvamVjdC5vcmcvaWN1ZGF0YQorICoKKyAqIFRoZSBm
b3JtYXQgb2YgdGhpcyBkYXRhIGlzIHRoYXQgb2YgdGhlIGljdSBjb21tb24gZGF0YSBmaWxlLCBh
cyBpcworICogZ2VuZXJhdGVkIGJ5IHRoZSBwa2dkYXRhIHRvb2wgd2l0aCBtb2RlPWNvbW1vbiBv
ciBtb2RlPWRsbC4KKyAqIFlvdSBjYW4gcmVhZCBpbiBhIHdob2xlIGNvbW1vbiBtb2RlIGZpbGUg
YW5kIHBhc3MgdGhlIGFkZHJlc3MgdG8gdGhlIHN0YXJ0IG9mIHRoZQorICogZGF0YSwgb3IgKHdp
dGggdGhlIGFwcHJvcHJpYXRlIGxpbmsgb3B0aW9ucykgcGFzcyBpbiB0aGUgcG9pbnRlciB0bwor
ICogdGhlIGRhdGEgdGhhdCBoYXMgYmVlbiBsb2FkZWQgZnJvbSBhIGRsbCBieSB0aGUgb3BlcmF0
aW5nIHN5c3RlbSwKKyAqIGFzIHNob3duIGluIHRoaXMgY29kZToKKyAqCisgKiAgICAgICBleHRl
cm4gY29uc3QgY2hhciBVX0lNUE9SVCBVX0lDVURBVEFfRU5UUllfUE9JTlQgW107CisgKiAgICAg
ICAgLy8gVV9JQ1VEQVRBX0VOVFJZX1BPSU5UIGlzIHNhbWUgYXMgZW50cnkgcG9pbnQgc3BlY2lm
aWVkIHRvIHBrZ2RhdGEgdG9vbAorICogICAgICAgVUVycm9yQ29kZSAgc3RhdHVzID0gVV9aRVJP
X0VSUk9SOworICoKKyAqICAgICAgIHVkYXRhX3NldENvbW1vbkRhdGEoJlVfSUNVREFUQV9FTlRS
WV9QT0lOVCwgJnN0YXR1cyk7CisgKgorICogSXQgaXMgaW1wb3J0YW50IHRoYXQgdGhlIGRlY2xh
cmF0aW9uIGJlIGFzIGFib3ZlLiBUaGUgZW50cnkgcG9pbnQKKyAqIG11c3Qgbm90IGJlIGRlY2xh
cmVkIGFzIGFuIGV4dGVybiB2b2lkKi4KKyAqCisgKiBTdGFydGluZyB3aXRoIElDVSA0LjQsIGl0
IGlzIHBvc3NpYmxlIHRvIHNldCBzZXZlcmFsIGRhdGEgcGFja2FnZXMsCisgKiBvbmUgcGVyIGNh
bGwgdG8gdGhpcyBmdW5jdGlvbi4KKyAqIHVkYXRhX29wZW4oKSB3aWxsIGxvb2sgZm9yIGRhdGEg
aW4gdGhlIG11bHRpcGxlIGRhdGEgcGFja2FnZXMgaW4gdGhlIG9yZGVyCisgKiBpbiB3aGljaCB0
aGV5IHdlcmUgc2V0LgorICogVGhlIHBvc2l0aW9uIG9mIHRoZSBsaW5rZWQtaW4gb3IgZGVmYXVs
dC1uYW1lIElDVSAuZGF0YSBwYWNrYWdlIGluIHRoZQorICogc2VhcmNoIGxpc3QgZGVwZW5kcyBv
biB3aGVuIHRoZSBmaXJzdCBkYXRhIGl0ZW0gaXMgbG9hZGVkIHRoYXQgaXMgbm90IGNvbnRhaW5l
ZAorICogaW4gdGhlIGFscmVhZHkgZXhwbGljaXRseSBzZXQgcGFja2FnZXMuCisgKiBJZiBkYXRh
IHdhcyBsb2FkZWQgaW1wbGljaXRseSBiZWZvcmUgdGhlIGZpcnN0IGNhbGwgdG8gdGhpcyBmdW5j
dGlvbgorICogKGZvciBleGFtcGxlLCB2aWEgb3BlbmluZyBhIGNvbnZlcnRlciwgY29uc3RydWN0
aW5nIGEgVW5pY29kZVN0cmluZworICogZnJvbSBkZWZhdWx0LWNvZGVwYWdlIGRhdGEsIHVzaW5n
IGZvcm1hdHRpbmcgb3IgY29sbGF0aW9uIEFQSXMsIGV0Yy4pLAorICogdGhlbiB0aGUgZGVmYXVs
dCBkYXRhIHdpbGwgYmUgZmlyc3QgaW4gdGhlIGxpc3QuCisgKgorICogVGhpcyBmdW5jdGlvbiBo
YXMgbm8gZWZmZWN0IG9uIGFwcGxpY2F0aW9uIChub24gSUNVKSBkYXRhLiAgU2VlIHVkYXRhX3Nl
dEFwcERhdGEoKQorICogZm9yIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSBmb3IgYXBwbGljYXRpb24g
ZGF0YS4KKyAqCisgKiBAcGFyYW0gZGF0YSBwb2ludGVyIHRvIElDVSBjb21tb24gZGF0YQorICog
QHBhcmFtIGVyciBvdXRnb2luZyBlcnJvciBzdGF0dXMgPGNvZGU+VV9VU0lOR19ERUZBVUxUX1dB
Uk5JTkcsIFVfVU5TVVBQT1JURURfRVJST1I8L2NvZGU+CisgKiBAc3RhYmxlIElDVSAyLjAKKyAq
LworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3NldENvbW1vbkRhdGEoY29uc3Qgdm9p
ZCAqZGF0YSwgVUVycm9yQ29kZSAqZXJyKTsKKworCisvKioKKyAqIFRoaXMgZnVuY3Rpb24gYnlw
YXNzZXMgdGhlIG5vcm1hbCBJQ1UgZGF0YSBsb2FkaW5nIHByb2Nlc3MgZm9yIGFwcGxpY2F0aW9u
LXNwZWNpZmljCisgKiBkYXRhIGFuZCBhbGxvd3MgeW91IHRvIGZvcmNlIHRoZSBpdCB0byBjb21l
IG91dCBvZiBhIHVzZXItc3BlY2lmaWVkCisgKiBwb2ludGVyLgorICoKKyAqIElDVSBkYXRhIG11
c3QgYmUgYXQgbGVhc3QgOC1hbGlnbmVkLCBhbmQgc2hvdWxkIGJlIDE2LWFsaWduZWQuCisgKiBT
ZWUgaHR0cDovL3VzZXJndWlkZS5pY3UtcHJvamVjdC5vcmcvaWN1ZGF0YQorICoKKyAqIFRoZSBm
b3JtYXQgb2YgdGhpcyBkYXRhIGlzIHRoYXQgb2YgdGhlIGljdSBjb21tb24gZGF0YSBmaWxlLCBs
aWtlICdpY3VkdDI2bC5kYXQnCisgKiBvciB0aGUgY29ycmVzcG9uZGluZyBzaGFyZWQgbGlicmFy
eSAoRExMKSBmaWxlLgorICogVGhlIGFwcGxpY2F0aW9uIG11c3QgcmVhZCBpbiBvciBvdGhlcndp
c2UgY29uc3RydWN0IGFuIGltYWdlIG9mIHRoZSBkYXRhIGFuZCB0aGVuCisgKiBwYXNzIHRoZSBh
ZGRyZXNzIG9mIGl0IHRvIHRoaXMgZnVuY3Rpb24uCisgKgorICoKKyAqIFdhcm5pbmc6ICBzZXRB
cHBEYXRhIHdpbGwgc2V0IGEgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgY29kZSBpZgorICogICAg
ICAgICAgIGRhdGEgd2l0aCB0aGUgc3BlY2lmZWQgcGF0aCB0aGF0IGhhcyBhbHJlYWR5IGJlZW4g
b3BlbmVkLCBvcgorICogICAgICAgICAgIGlmIHNldEFwcERhdGEgd2l0aCB0aGUgc2FtZSBwYXRo
IGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkLgorICogICAgICAgICAgIEFueSBzdWNoIGNhbGxzIHRv
IHNldEFwcERhdGEgd2lsbCBoYXZlIG5vIGVmZmVjdC4KKyAqCisgKgorICogQHBhcmFtIHBhY2th
Z2VOYW1lIHRoZSBwYWNrYWdlIG5hbWUgYnkgd2hpY2ggdGhlIGFwcGxpY2F0aW9uIHdpbGwgcmVm
ZXIKKyAqICAgICAgICAgICAgIHRvIChvcGVuKSB0aGlzIGRhdGEKKyAqIEBwYXJhbSBkYXRhIHBv
aW50ZXIgdG8gdGhlIGRhdGEKKyAqIEBwYXJhbSBlcnIgb3V0Z29pbmcgZXJyb3Igc3RhdHVzIDxj
b2RlPlVfVVNJTkdfREVGQVVMVF9XQVJOSU5HLCBVX1VOU1VQUE9SVEVEX0VSUk9SPC9jb2RlPgor
ICogQHNlZSB1ZGF0YV9zZXRDb21tb25EYXRhCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9T
VEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3NldEFwcERhdGEoY29uc3QgY2hhciAqcGFja2Fn
ZU5hbWUsIGNvbnN0IHZvaWQgKmRhdGEsIFVFcnJvckNvZGUgKmVycik7CisKKy8qKgorICogUG9z
c2libGUgc2V0dGluZ3MgZm9yIHVkYXRhX3NldEZpbGVBY2Nlc3MoKQorICogQHNlZSB1ZGF0YV9z
ZXRGaWxlQWNjZXNzCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLwordHlwZWRlZiBlbnVtIFVEYXRh
RmlsZUFjY2VzcyB7CisgICAgLyoqIElDVSBsb29rcyBmb3IgZGF0YSBpbiBzaW5nbGUgZmlsZXMg
Zmlyc3QsIHRoZW4gaW4gcGFja2FnZXMuIChkZWZhdWx0KSBAc3RhYmxlIElDVSAzLjQgKi8KKyAg
ICBVREFUQV9GSUxFU19GSVJTVCwKKyAgICAvKiogQW4gYWxpYXMgZm9yIHRoZSBkZWZhdWx0IGFj
Y2VzcyBtb2RlLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9ERUZBVUxUX0FDQ0VTUyA9
IFVEQVRBX0ZJTEVTX0ZJUlNULAorICAgIC8qKiBJQ1Ugb25seSBsb2FkcyBkYXRhIGZyb20gcGFj
a2FnZXMsIG5vdCBmcm9tIHNpbmdsZSBmaWxlcy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURB
VEFfT05MWV9QQUNLQUdFUywKKyAgICAvKiogSUNVIGxvYWRzIGRhdGEgZnJvbSBwYWNrYWdlcyBm
aXJzdCwgYW5kIG9ubHkgZnJvbSBzaW5nbGUgZmlsZXMKKyAgICAgICAgaWYgdGhlIGRhdGEgY2Fu
bm90IGJlIGZvdW5kIGluIGEgcGFja2FnZS4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFf
UEFDS0FHRVNfRklSU1QsCisgICAgLyoqIElDVSBkb2VzIG5vdCBhY2Nlc3MgdGhlIGZpbGUgc3lz
dGVtIGZvciBkYXRhIGxvYWRpbmcuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX05PX0ZJ
TEVTLAorICAgIC8qKiBOdW1iZXIgb2YgcmVhbCBVRGF0YUZpbGVBY2Nlc3MgdmFsdWVzLiBAc3Rh
YmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9GSUxFX0FDQ0VTU19DT1VOVAorfSBVRGF0YUZpbGVB
Y2Nlc3M7CisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIHRvIGNvbnRyb2wg
aG93IElDVSBsb2FkcyBkYXRhLiBJdCBtdXN0IGJlIGNhbGxlZAorICogYmVmb3JlIGFueSBJQ1Ug
ZGF0YSBpcyBsb2FkZWQsIGluY2x1ZGluZyBhcHBsaWNhdGlvbiBkYXRhIGxvYWRlZCB3aXRoIAor
ICogdXJlcy9SZXNvdXJjZUJ1bmRsZSBvciB1ZGF0YSBBUElzLiBUaGlzIGZ1bmN0aW9uIGlzIG5v
dCBtdWx0aXRocmVhZCBzYWZlLiAgCisgKiBUaGUgcmVzdWx0cyBvZiBjYWxsaW5nIGl0IHdoaWxl
IG90aGVyIHRocmVhZHMgYXJlIGxvYWRpbmcgZGF0YSBhcmUgdW5kZWZpbmVkLgorICogQHBhcmFt
IGFjY2VzcyBUaGUgdHlwZSBvZiBmaWxlIGFjY2VzcyB0byBiZSB1c2VkCisgKiBAcGFyYW0gc3Rh
dHVzIEVycm9yIGNvZGUuCisgKiBAc2VlIFVEYXRhRmlsZUFjY2VzcworICogQHN0YWJsZSBJQ1Ug
My40IAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWRhdGFfc2V0RmlsZUFjY2VzcyhV
RGF0YUZpbGVBY2Nlc3MgYWNjZXNzLCBVRXJyb3JDb2RlICpzdGF0dXMpOworCitVX0NERUNMX0VO
RAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1pc2MuaCBi
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1pc2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODU0NTFmYzc2N2Mw
NTgzNWY2YzE1ZjU2NmYzNTYyZTJkNGFmODM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri9pY3UvdW5pY29kZS91bWlzYy5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1bWlzYy5oCisqICAgZW5jb2Rpbmc6ICAg
VVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0
CisqCisqICAgY3JlYXRlZCBvbjogMTk5OW9jdDE1CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcu
IFNjaGVyZXIKKyovCisKKyNpZm5kZWYgVU1JU0NfSAorI2RlZmluZSBVTUlTQ19ICisKKyNpbmNs
dWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgIEMgQVBJ
Om1pc2MgZGVmaW5pdGlvbnMgCisgKgorICogIFRoaXMgZmlsZSBjb250YWlucyBtaXNjZWxsYW5l
b3VzIGRlZmluaXRpb25zIGZvciB0aGUgQyBBUElzLiAKKyAqLworCitVX0NERUNMX0JFR0lOCisK
Ky8qKiBBIHN0cnVjdCByZXByZXNlbnRpbmcgYSByYW5nZSBvZiB0ZXh0IGNvbnRhaW5pbmcgYSBz
cGVjaWZpYyBmaWVsZCAKKyAqICBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3Qg
VUZpZWxkUG9zaXRpb24geworICAvKioKKyAgICogVGhlIGZpZWxkIAorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIGludDMyX3QgZmllbGQ7CisgIC8qKgorICAgKiBUaGUgc3RhcnQgb2Yg
dGhlIHRleHQgcmFuZ2UgY29udGFpbmluZyBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAqLworICBpbnQzMl90IGJlZ2luSW5kZXg7CisgIC8qKiAKKyAgICogVGhlIGxpbWl0IG9mIHRo
ZSB0ZXh0IHJhbmdlIGNvbnRhaW5pbmcgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgaW50MzJfdCBlbmRJbmRleDsKK30gVUZpZWxkUG9zaXRpb247CisKKyNpZiAhVUNPTkZJ
R19OT19TRVJWSUNFCisvKioKKyAqIE9wYXF1ZSB0eXBlIHJldHVybmVkIGJ5IHJlZ2lzdGVySW5z
dGFuY2UsIHJlZ2lzdGVyRmFjdG9yeSBhbmQgdW5yZWdpc3RlciBmb3Igc2VydmljZSByZWdpc3Ry
YXRpb24uCisgKiBAc3RhYmxlIElDVSAyLjYKKyAqLwordHlwZWRlZiBjb25zdCB2b2lkKiBVUmVn
aXN0cnlLZXk7CisjZW5kaWYKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDA5OTdkOWVhYzQ3OTU4MWZmMWZkNDc2OWNjYzRiNTQ2NjJlZmQ3MTQuLmQ4ODhm
Yjg5YTFmZGRlYjZhODhkYjBjYjk3NDIxODcwZDRlOWUzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
CkBAIC0yNTUsNiArMjU1LDE4IEBAIHNldChXVEZfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e0RFUklWRURfU09VUkNFU19ESVJ9IgogKQogCitzZXQoV1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJD
RVMKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4
dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dAor
ICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dAor
ICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0
CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNK
Sy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKKykKKwogc2V0KFdURl9MSUJSQVJJRVMKICAgICAke0NN
QUtFX0RMX0xJQlN9CiApCkBAIC0yNzIsNiArMjg0LDMxIEBAIGlmIChOT1QgVVNFX1NZU1RFTV9N
QUxMT0MpCiAgICAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUyBibWFsbG9jKQogZW5kaWYgKCkK
IAorbWFjcm8oR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMgX2lucHV0IF9vdXRwdXQpCisgICAgYWRk
X2N1c3RvbV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgJHtfb3V0cHV0fQorICAgICAgICBNQUlO
X0RFUEVOREVOQ1kgJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJl
YWtpbmdSdWxlU3RyaW5ncy5weQorICAgICAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VS
Q0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQg
JHtfaW5wdXR9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKKyAgICAgICAgQ09NTUFORCBjYXQgJHtDTUFL
RV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clByb2xvZ3VlLnR4dCAke19pbnB1dH0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCB8ICR7UFlUSE9OX0VY
RUNVVEFCTEV9ICR7V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFr
aW5nUnVsZVN0cmluZ3MucHkgPiAke19vdXRwdXR9CisgICAgICAgIFZFUkJBVElNKQorICAgIGxp
c3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7X291dHB1dH0pCisgICAgQUREX1NPVVJDRV9ERVBFTkRF
TkNJRVMoJHtfaW5wdXR9ICR7X291dHB1dH0pCitlbmRtYWNybygpCisKK2ZvcmVhY2ggKF9maWxl
ICR7V1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVN9KQorICAgIGdldF9maWxlbmFtZV9jb21wb25l
bnQoX25hbWUgJHtfZmlsZX0gTkFNRV9XRSkKKyAgICBHRU5FUkFURV9CUkVBS0lOR19SVUxFUygk
e0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtfZmlsZX0gJHtERVJJVkVEX1NPVVJDRVNfV1RG
X0RJUn0vQnJlYWtpbmdSdWxlcy8ke19uYW1lfS5jcHApCitlbmRmb3JlYWNoICgpCisKK2FkZF9j
dXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJl
YWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgTUFJTl9ERVBF
TkRFTkNZICR7V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5n
UnVsZVN0cmluZ3MucHkKKyAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90
ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorICAgIENP
TU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSA8ICR7Q01BS0VfQ1VSUkVOVF9TT1VS
Q0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4
dCA+ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLmNwcAorICAgIFZFUkJBVElNKQorbGlzdChBUFBFTkQgV1RGX1NPVVJD
RVMgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMuY3BwKQorQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtDTUFLRV9DVVJS
RU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMudHh0ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCkKKwogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKICAg
ICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5t
YWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJlY2FiOWViYTM5NTljODQ5NmU5MjIyMDhlNzM2NTRhNGI0YzdjNGYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC0wLDAgKzEsODQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIwor
IyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIyAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMu
ICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisjICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisjICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitCUkVBS0lOR19SVUxFU19GSUxFUyA9IFwKKyAg
ICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5icmsgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5icmsgXAorICAgIEJyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuYnJrIFwKKyAgICBCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuYnJrIFwKKyAgICBCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuYnJrCisKK0JSRUFLSU5H
X1JVTEVTX0RFRklOSVRJT05TID0gXAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Q0pLLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9u
Q0pLLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VD
SksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdENKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdE5vbkNKSy5jcHAKKworaWZlcSAoJChzaGVsbCAkKENDKSAtc3RkPWdudSsrMTEgLXggYysr
IC1FIC1QIC1kTSAkKFNES19GTEFHUykgJChGUkFNRVdPUktfRkxBR1MpICQoSEVBREVSX0ZMQUdT
KSAtaW5jbHVkZSAid3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8IGdyZXAgJyBXVEZfUExBVEZP
Uk1fSU9TICcgfCBjdXQgLWQnICcgLWYzKSwgMSkKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMQor
ZWxzZQorICAgIFdURl9QTEFURk9STV9JT1MgPSAwCitlbmRpZgorCitpZmVxICgkKFdURl9QTEFU
Rk9STV9JT1MpLCAxKQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVN
RU5UID0gMAorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAwCitlbHNlCisJQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQgPSAkKEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVCkKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMQorZW5kaWYKKworREVQRU5E
RU5DSUVTID0gJChCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUykKKworaWZlcSAoJChPUyksTUFD
T1MpCitERVBFTkRFTkNJRVMgKz0gJChCUkVBS0lOR19SVUxFU19GSUxFUykKK2VuZGlmCisKK2Fs
bCA6ICQoREVQRU5ERU5DSUVTKQorCitCcmVha2luZ1J1bGVzLyUuYnJrIDogQnJlYWtpbmdSdWxl
cy8lLnBwCisJLi9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsgLWMgLXIgJDwgLW8g
JEAKKworQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIDogJChX
VEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4
dAorCXB5dGhvbiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5n
UnVsZVN0cmluZ3MucHkgY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzIDwgJDwgPiAkQAorCitC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS5jcHAgOiAkKFdURikvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAkKFdURikvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisJY2F0ICQ/IHwgcHl0aG9u
ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5n
cy5weSBsaW5lQnJlYWtJdGVyYXRvciQqUnVsZXMgPiAkQAorCitCcmVha2luZ1J1bGVzL0N1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKwktdW5pZmRlZiAtREFERElUSU9OQUxf
RU1PSklfU1VQUE9SVD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVN
RU5UKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9T
RVRTKSAtbyAkQCAkPAorCitCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS5wcCA6ICQo
V1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0
ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS50eHQgJChX
VEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQK
KwktY2F0ICQ/IHwgdW5pZmRlZiAtREFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0kKEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVCkgLURIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTPSQoSEFWRV9FWFRS
QV9JQ1VfTkFNRURfU0VUUykgLW8gJEAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0IGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzFmYWQ4NDcxMDAxNDkzZDdiZjRiNmVhNmQ1Mjk4MDg4MGQwMjU4ZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0CkBAIC0wLDAgKzEsMTUxIEBACisjIFRoaXMgcnVsZSBz
ZXQgaXMgYmFzZWQgb24gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1Nwor
IyA8aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVh
c2UtNTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KKyMgVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZy
b20gdGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBiZWxvdzoKKyMgKiBSZXBsYWNlZCAnW1xw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBTcGFjaW5nTWFya31dJyB3aXRoICdbXHB7R2VuZXJh
bF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya30gLSAkRXh0ZW5kXScgZm9yIElDVSAzLjggb3IgZWFy
bGllcjsKKyMgKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmlu
ZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7CisjICogQWRkZWQgcnVsZXMg
dGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJ
bmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7CisjICogQWRkZWQg
cnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGJlZm9yZSBKYXBhbmVzZSBo
YWxmLXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJrcy4KKyMgKiBBZGRlZCBydWxlcyBmb3IgcmVn
aW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCisKKyRDUiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBDUn1dOworJExGICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IExGfV07CiskQ29udHJvbCA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1d
OworJFZvaWNlTWFya3MgPSBbXHVGRjlFXHVGRjlGXTsgIyBKYXBhbmVzZSBoYWxmLXdpZHRoIGth
dGFrYW5hIHZvaWNlZCBtYXJrcworJEV4dGVuZCAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVh
ayA9IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXHUwRTMwIFx1MEUzMiBcdTBFNDUgXHUwRUIwIFx1
MEVCMl1dOworJFNwYWNpbmdNYXJrID0gW1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBN
YXJrfV0gLSAkRXh0ZW5kXTsKKyRMICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBMfV07CiskViAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOworJFQg
ICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFR9XTsKKyRMViAgICAgID0gW1xw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOworJExWVCAgICAgPSBbXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IExWVH1dOworJEhpbjAgICAgPSBbXHUwOTA1LVx1MDkzOV07ICMgRGV2
YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEKKyRIaW5WICAgID0gXHUwOTREOyAjIERldmFuYWdhcmkg
U2lnbiBWaXJhbWEKKyRIaW4xICAgID0gW1x1MDkxNS1cdTA5MzldOyAjIERldmFuYWdhcmkgTGV0
dGVyIEthLC4uLixIYQorJEJlbjAgICAgPSBbXHUwOTg1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0
ZXIgQSwuLi4sSGEKKyRCZW5WICAgID0gXHUwOUNEOyAjIEJlbmdhbGkgU2lnbiBWaXJhbWEKKyRC
ZW4xICAgID0gW1x1MDk5NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVyIEthLC4uLixIYQorJFBh
bjAgICAgPSBbXHUwQTA1LVx1MEEzOV07ICMgR3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCiskUGFu
ViAgICA9IFx1MEE0RDsgIyBHdXJtdWtoaSBTaWduIFZpcmFtYQorJFBhbjEgICAgPSBbXHUwQTE1
LVx1MEEzOV07ICMgR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQorJEd1ajAgICAgPSBbXHUwQTg1
LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0dGVyIEEsLi4uLEhhCiskR3VqViAgICA9IFx1MEFDRDsg
IyBHdWphcmF0aSBTaWduIFZpcmFtYQorJEd1ajEgICAgPSBbXHUwQTk1LVx1MEFCOV07ICMgR3Vq
YXJhdGkgTGV0dGVyIEthLC4uLixIYQorJE9yaTAgICAgPSBbXHUwQjA1LVx1MEIzOV07ICMgT3Jp
eWEgTGV0dGVyIEEsLi4uLEhhCiskT3JpViAgICA9IFx1MEI0RDsgIyBPcml5YSBTaWduIFZpcmFt
YQorJE9yaTEgICAgPSBbXHUwQjE1LVx1MEIzOV07ICMgT3JpeWEgTGV0dGVyIEthLC4uLixIYQor
JFRlbDAgICAgPSBbXHUwQzA1LVx1MEMzOV07ICMgVGVsdWd1IExldHRlciBBLC4uLixIYQorJFRl
bFYgICAgPSBcdTBDNEQ7ICMgVGVsdWd1IFNpZ24gVmlyYW1hCiskVGVsMSAgICA9IFtcdTBDMTQt
XHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEthLC4uLixIYQorJEthbjAgICAgPSBbXHUwQzg1LVx1
MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKKyRLYW5WICAgID0gXHUwQ0NEOyAjIEth
bm5hZGEgU2lnbiBWaXJhbWEKKyRLYW4xICAgID0gW1x1MEM5NS1cdTBDQjldOyAjIEthbm5hZGEg
TGV0dGVyIEEsLi4uLEhhCiskTWFsMCAgICA9IFtcdTBEMDUtXHUwRDM5XTsgIyBNYWxheWFsYW0g
TGV0dGVyIEEsLi4uLEhhIAorJE1hbFYgICAgPSBcdTBENEQ7ICMgTWFsYXlhbGFtIFNpZ24gVmly
YW1hCiskTWFsMSAgICA9IFtcdTBEMTUtXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4u
LEhhCiskUkkgICAgICA9IFtcVTAwMDFGMUU2LVxVMDAwMUYxRkZdOyAjIEVtb2ppIHJlZ2lvbmFs
IGluZGljYXRvcnMKKyRaV0ogICAgID0gXHUyMDBEOyAjIFplcm8gd2lkdGggam9pbmVyCiskRW1v
amlWYXIgPSBbXHVGRTBGXTsgIyBFbW9qaS1zdHlsZSB2YXJpYXRpb24gc2VsZWN0b3IKKworI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI2NDAg
XHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUwMDAxRjMwOCBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUw
MDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAwMUYzRjMgXFUwMDAxRjQ0MSBcVTAwMDFGNDY2LVxVMDAw
MUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDZGIFxVMDAwMUY0NzEgXFUwMDAxRjQ3MyBcVTAwMDFG
NDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MiBcVTAwMDFGNDg2LVxVMDAwMUY0ODcgXFUwMDAxRjQ4
QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTggXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEIg
XFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2XTsg
IyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JN
b2RzID0gW1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1MjcwRCBcVTAwMDFGMzg1IFxVMDAwMUYzQzMt
XFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxVMDAwMUYzQ0IgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxV
MDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAw
MDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAx
RjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1NzUgXFUwMDAxRjU5MCBcVTAwMDFGNTk1IFxVMDAwMUY1
OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEz
IFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwIFxVMDAwMUY5MThdIDsgIyBFbW9qaSB0
aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JT
ZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ4Ql07ICMgRW1vamkg
dGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtc
dTI2MUQgXHUyNzBBLVx1MjcwQyBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAw
MDFGM0M3IFxVMDAwMUYzQ0EgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAx
RjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0
N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFB
IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBc
VTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwXSA7ICMgRW1vamkgdGhh
dCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtc
VTAwMDFGM0ZCLVxVMDAwMUYzRkZdOyAjIEZpdHpwYXRyaWNrIG1vZGlmaWVycworISFjaGFpbjsK
KworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgISFSSU5vQ2hhaW47CisKKyNl
bmRpZgorCishIWZvcndhcmQ7CiskQ1IgJExGOworJEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsK
KygkTFYgfCAkVikgKCRWIHwgJFQpOworKCRMVlQgfCAkVCkgJFQ7CisKKyNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKKworICAgICRSSSAkUkkgJEV4dGVuZCogLyAkUkk7CisgICAgJFJJICRS
SSAkRXh0ZW5kKjsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7CisgICAgW14kQ29u
dHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7CisKKyNlbHNlCisKKyAgICBbXiRDb250cm9sICRD
UiAkTEZdICRFeHRlbmQ7CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7Cisg
ICAgJFJJICRSSSAvICRSSTsKKyAgICAkUkkgJFJJOworCisjZW5kaWYKKworJEhpbjAgJEhpblYg
JEhpbjE7ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCiskQmVuMCAkQmVuViAkQmVuMTsg
IyBCZW5nYWxpIFZpcmFtYSAoZm9yd2FyZCkKKyRQYW4wICRQYW5WICRQYW4xOyAjIEd1cm11a2hp
IFZpcmFtYSAoZm9yd2FyZCkKKyRHdWowICRHdWpWICRHdWoxOyAjIEd1amFyYXRpIFZpcmFtYSAo
Zm9yd2FyZCkKKyRPcmkwICRPcmlWICRPcmkxOyAjIE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKKyRU
ZWwwICRUZWxWICRUZWwxOyAjIFRlbHVndSBWaXJhbWEgKGZvcndhcmQpCiskS2FuMCAkS2FuViAk
S2FuMTsgIyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKKyRNYWwwICRNYWxWICRNYWwxOyAjIE1h
bGF5YWxhbSBWaXJhbWEgKGZvcndhcmQpCiskWldKICRFbW9qaUZvclNlcXM7ICMgRG9udCBicmVh
ayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2pp
TW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGgg
dmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKyEhcmV2ZXJzZTsK
KyRMRiAkQ1I7CisoJEwgfCAkViB8ICRMViB8ICRMVlQpICRMOworKCRWIHwgJFQpICgkTFYgfCAk
Vik7CiskVCAoJExWVCB8ICRUKTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisg
ICAgJEV4dGVuZCogJFJJICRSSSAvICRFeHRlbmQqICRSSSAkUkk7CisgICAgJEV4dGVuZCogJFJJ
ICRSSTsKKyAgICAkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkU3BhY2lu
Z01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsKKworI2Vsc2UKKworICAgICRFeHRlbmQgICAgICBb
XiRDb250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZd
OworICAgICRSSSAkUkkgLyAkUkkgJFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGlu
MSAkSGluViAkSGluMDsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCiskQmVuMSAkQmVu
ViAkQmVuMDsgIyBCZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQpCiskUGFuMSAkUGFuViAkUGFuMDsg
IyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQorJEd1ajEgJEd1alYgJEd1ajA7ICMgR3VqYXJh
dGkgVmlyYW1hIChiYWNrd2FyZCkKKyRPcmkxICRPcmlWICRPcmkwOyAjIEd1amFyYXRpIFZpcmFt
YSAoYmFja3dhcmQpCiskVGVsMSAkVGVsViAkVGVsMDsgIyBUZWx1Z3UgVmlyYW1hIChiYWNrd2Fy
ZCkKKyRLYW4xICRLYW5WICRLYW4wOyAjIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKKyRNYWwx
ICRNYWxWICRNYWwwOyAjIE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3YXJkKQorJEVtb2ppRm9yU2Vx
cyAkWldKOyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2ppTW9kcyAk
RW1vamlWYXI/ICRFbW9qaUZvck1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVt
b2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1v
ZGlmaWVyCisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICEhc2FmZV9yZXZl
cnNlOworICAgICRSSSAkUkkrOworICAgIFskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZv
ck1vZHM7CisgICAgISFzYWZlX2ZvcndhcmQ7CisgICAgJFJJICRSSSs7CisgICAgJEVtb2ppRm9y
TW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsKKworI2Vsc2UKKworICAgIFskRW1vamlWYXIg
JEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7CisgICAgJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFy
ICRFbW9qaU1vZHNdKzsKKyAgICAhIXNhZmVfcmV2ZXJzZTsKKyAgICAhIXNhZmVfZm9yd2FyZDsK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
R2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zM2Yy
YmU4NDc4M2I2MDEzYzBlODRhNmY4MWVjZjI2NWIwYTYxODcxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3Ry
aW5ncy5weQpAQCAtMCwwICsxLDk2IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5cworaW1wb3J0IHJl
CisKK2hlYWRlciA9ICIiIi8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFT
CisgKiBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQKKyAqIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQQorICogUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBIT0xERVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisKK2RlZiBt
YWluKGFyZ3Y9Tm9uZSk6CisgICAgaWYgbm90IGFyZ3Y6CisgICAgICAgIGFyZ3YgPSBzeXMuYXJn
dgorICAgIHN5bWJvbE5hbWUgPSBhcmd2WzFdCisKKyAgICBwcmludChoZWFkZXIpCisgICAgcHJp
bnQoIiIpCisgICAgcHJpbnQoIi8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21h
dGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIHNjcmlwdCIpCisgICAgcHJpbnQoIi8vIFdURi93dGYv
dGV4dC9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkiKQorICAgIHByaW50KCIiKQorICAg
IHByaW50KCIjaW5jbHVkZSBcImNvbmZpZy5oXCIiKQorICAgIHByaW50KCIjaW5jbHVkZSA8dW5p
Y29kZS91dmVybnVtLmg+IikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiI2RlZmluZSBBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApKSIpCisgICAgcHJpbnQo
IiNkZWZpbmUgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyAoKFVfSUNVX1ZFUlNJT05fTUFKT1Jf
TlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KSkiKQorICAgIHByaW50
KCIiKQorICAgIHByaW50KCJuYW1lc3BhY2UgV1RGIHsiKQorICAgIHByaW50KCIiKQorICAgIHBy
aW50KCJjb25zdCBjaGFyKiAiICsgc3ltYm9sTmFtZSArICIgPSAiKQorCisgICAgZm9yIGwgaW4g
c3lzLnN0ZGluOgorICAgIAlsaW5lID0gbC5yc3RyaXAoKQorICAgIAlpZiByZS5tYXRjaCgiXlxz
KiQiLCBsaW5lKToKKyAgICAJCXBhc3MKKyAgICAJZWxpZiBsaW5lLnN0YXJ0c3dpdGgoIiMgIik6
CisgICAgCQlwYXNzCisgICAgCWVsaWYgbGluZS5zdGFydHN3aXRoKCIjIik6CisJICAgIAlwcmlu
dChsaW5lKQorICAgICAgICBlbHNlOgorCSAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgiXiguKik7
KCAjIC4qKT8kIiwgbGluZSkKKwkgICAgICAgIGlmIG1hdGNoOgorCSAgICAgICAgCXJlc3VsdCA9
ICJcIiIgKyBtYXRjaC5ncm91cCgxKS5yZXBsYWNlKCJcXCIsICJcXFxcIikgKyAiO1wiIgorCSAg
ICAgICAgCWlmIG1hdGNoLmdyb3VwKDIpOgorCSAgICAgICAgCQlyZXN1bHQgKz0gIiAvLyAiICsg
bWF0Y2guZ3JvdXAoMilbMzpdCisJICAgICAgICAJcHJpbnQocmVzdWx0KQorICAgICAgICAJZWxz
ZToKKyAgICAgICAgCQlleGl0KDEpCisKKyAgICBwcmludCgiOyIpCisgICAgcHJpbnQoIn0iKQor
CitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHN5cy5leGl0KG1haW4oc3lzLmFyZ3Yp
KQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45ZTBjOGE1MWIzYzFjYzBiNzE2ZjJhMzg3MmZiM2IxODEwMGQwZWZiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0wLDAgKzEsMzQ3IEBACiskQUkgPSBbOkxpbmVC
cmVhayA9IEFtYmlndW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07Cisk
QkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxp
bmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlf
QnJlYWs6XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENCID0gWzpMaW5l
QnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1
bmN0dWF0aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1Ag
PSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9
IENhcnJpYWdlX1JldHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAt
ICRFWF9TVUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJB
X0lDVV9OQU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6
XTsKKworI2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNl
bmRpZgorCiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsg
PSBIMjpdOworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsg
PSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElOID0gW1s6TGlu
ZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGluZUJyZWFrID0g
SW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07Cisk
SlYgPSBbOkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYg
PSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xp
bmU6XTsKKyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQURE
XSAtICROU19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxp
bmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3Rm
aXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVt
ZXJpYzpdIC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJ
ID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhf
Q29udGV4dDpdOworJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGlu
ZUJyZWFrID0gU3BhY2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOwor
JFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBV
bmtub3duOl07CiskWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7
CiskRW1vamlWYXIgPSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKwor
ICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYz
MDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0Yz
IFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBc
VTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUw
MDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAw
MUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFG
NkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBa
V0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1c
dTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFG
M0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2
Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEt
XFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxV
MDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAw
MDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAx
RjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVy
cworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAw
MDFGNDY5IFxVMDAwMUY0OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1c
dTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFG
M0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2
Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEt
XFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxV
MDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAw
MDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0
cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAw
MDFGM0ZGXTsKKyRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsK
KyRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07CiskQUxjbSA9ICRBTFBsdXMgJENNKjsK
KyRCQWNtID0gJEJBICRDTSo7CiskQkJjbSA9ICRCQiAkQ00qOworJEIyY20gPSAkQjIgJENNKjsK
KyRDTGNtID0gJENMICRDTSo7CiskQ1BjbSA9ICRDUCAkQ00qOworJEVYY20gPSAkRVggJENNKjsK
KyRHTGNtID0gJEdMICRDTSo7CiskSExjbSA9ICRITCAkQ00qOworJEhZY20gPSAkSFkgJENNKjsK
KyRIMmNtID0gJEgyICRDTSo7CiskSDNjbSA9ICRIMyAkQ00qOworJElEY20gPSAkSUQgJENNKjsK
KyRJTmNtID0gJElOICRDTSo7CiskSVNjbSA9ICRJUyAkQ00qOworJEpMY20gPSAkSkwgJENNKjsK
KyRKVmNtID0gJEpWICRDTSo7CiskSlRjbSA9ICRKVCAkQ00qOworJE5TY20gPSAkTlMgJENNKjsK
KyROVWNtID0gJE5VICRDTSo7CiskT1BjbSA9ICRPUCAkQ00qOworJFBPY20gPSAkUE8gJENNKjsK
KyRQUmNtID0gJFBSICRDTSo7CiskUVVjbSA9ICRRVSAkQ00qOworJFJJY20gPSAkUkkgJENNKjsK
KyRTWWNtID0gJFNZICRDTSo7CiskV0pjbSA9ICRXSiAkQ00qOworCishIWZvcndhcmQ7CiskQ0FO
X0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJENBTlRfQ00gPSBbJFNQICRC
SyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAk
TkwgJFpXICRTUF07CiskQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRX
SiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOworJEFMX0ZPTExPVyA9
IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07CiskTEI0QnJlYWtzID0gWyRCSyAkQ1Ig
JExGICROTF07CiskTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOworJExCOEJyZWFr
cyA9IFskTEI0QnJlYWtzICRaV107CiskTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAt
IFskWlddXTsKKyRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07CiskTEIx
OEJyZWFrcyA9IFskTEI4QnJlYWtzICRTUF07CiskTEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJy
ZWFrcyAtICRDQl07CiskQUxQbHVzICRDTSs7CiskQkEgJENNKzsKKyRCQiAkQ00rOworJEIyICRD
TSs7CiskQ0wgJENNKzsKKyRDUCAkQ00rOworJEVYICRDTSs7CiskR0wgJENNKzsKKyRITCAkQ00r
OworJEhZICRDTSs7CiskSDIgJENNKzsKKyRIMyAkQ00rOworJElEICRDTSs7CiskSU4gJENNKzsK
KyRJUyAkQ00rOworJEpMICRDTSs7CiskSlYgJENNKzsKKyRKVCAkQ00rOworJE5TICRDTSs7Cisk
TlUgJENNKzsKKyRPUCAkQ00rOworJFBPICRDTSs7CiskUFIgJENNKzsKKyRRVSAkQ00rOworJFJJ
ICRDTSs7CiskU1kgJENNKzsKKyRXSiAkQ00rOworJENSICRMRiB7MTAwfTsKKyRMQjROb25CcmVh
a3M/ICRMQjRCcmVha3MgezEwMH07CiskQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsKKyRD
TSsgJExCNEJyZWFrcyB7MTAwfTsKKyRMQjROb25CcmVha3MgWyRTUCAkWlddOworJENBTl9DTSAk
Q00qIFskU1AgJFpXXTsKKyRDTSsgWyRTUCAkWlddOworJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/
ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsKKyRDQU5fQ00gJENNKzsKKyRDTSs7Cisk
Q0FOX0NNICRDTSogJFdKY207CiskTEI4Tm9uQnJlYWtzICRXSmNtOworJENNKyAkV0pjbTsKKyRX
SmNtICRDQU5UX0NNOworJFdKY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTl9DTSAkQ00qOwor
JEdMY20gJENBTlRfQ007CitbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENNKiAk
R0xjbTsKKyRDTSsgR0xjbTsKKyRMQjhOb25CcmVha3MgJENMOworJENBTl9DTSAkQ00qICRDTDsK
KyRDTSsgJENMOworJExCOE5vbkJyZWFrcyAkQ1A7CiskQ0FOX0NNICRDTSogJENQOworJENNKyAk
Q1A7CiskTEI4Tm9uQnJlYWtzICRFWDsKKyRDQU5fQ00gJENNKiAkRVg7CiskQ00rICRFWDsKKyRM
QjhOb25CcmVha3MgJElTOworJENBTl9DTSAkQ00qICRJUzsKKyRDTSsgJElTOworJExCOE5vbkJy
ZWFrcyAkU1k7CiskQ0FOX0NNICRDTSogJFNZOworJENNKyAkU1k7CiskT1BjbSAkU1AqICRDQU5f
Q00gJENNKjsKKyRPUGNtICRTUCogJENBTlRfQ007CiskT1BjbSAkU1ArICRDTSsgJEFMX0ZPTExP
Vz87CiskUVVjbSAkU1AqICRPUGNtOworKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207CiskQjJj
bSAkU1AqICRCMmNtOworJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsKKyRDTSsgJFFVY207Cisk
UVVjbSAuPzsKKyRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7CiskTEIyME5vbkJyZWFrcyAkQ00q
ICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAKKyRCQmNtIFteJENCXTsKKyRCQmNtICRMQjIwTm9u
QnJlYWtzICRDTSo7CiskSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsKKyRTWWNtICRITGNt
OworKCRBTGNtIHwgJEhMY20pICRJTmNtOworJENNKyAkSU5jbTsKKyRFWGNtICRJTmNtOworJElE
Y20gJElOY207CiskSU5jbSAkSU5jbTsKKyROVWNtICRJTmNtOworJElEY20gJFBPY207CiskQUxj
bSAkTlVjbTsKKyRITGNtICROVWNtOworJENNKyAkTlVjbTsKKyROVWNtICRBTGNtOworJE5VY20g
JEhMY207CiskUFJjbSAkSURjbTsKKyRQUmNtICgkQUxjbSB8ICRITGNtKTsKKyRQT2NtICgkQUxj
bSB8ICRITGNtKTsKKygkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5V
Y20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/Owor
JEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkSlZjbSB8ICRIMmNtKSAo
JEpWY20gfCAkSlRjbSk7CisoJEpUY20gfCAkSDNjbSkgJEpUY207CisoJEpMY20gfCAkSlZjbSB8
ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwg
JEgyY20gfCAkSDNjbSkgJFBPY207CiskUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgy
Y20gfCAkSDNjbSk7CisoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOworJENNKyAoJEFM
Y20gfCAkSExjbSk7CiskSVNjbSAoJEFMY20gfCAkSExjbSk7CisoJEFMY20gfCAkSExjbSB8ICRO
VWNtKSAkT1BjbTsKKyRDTSsgJE9QY207CiskQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsK
KworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJY20gJFJJY207CisKKyNl
bmRpZgorCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsKKworISFyZXZlcnNl
OworJENNKyAkQUxQbHVzOworJENNKyAkQkE7CiskQ00rICRCQjsKKyRDTSsgJEIyOworJENNKyAk
Q0w7CiskQ00rICRDUDsKKyRDTSsgJEVYOworJENNKyAkR0w7CiskQ00rICRITDsKKyRDTSsgJEhZ
OworJENNKyAkSDI7CiskQ00rICRIMzsKKyRDTSsgJElEOworJENNKyAkSU47CiskQ00rICRJUzsK
KyRDTSsgJEpMOworJENNKyAkSlY7CiskQ00rICRKVDsKKyRDTSsgJE5TOworJENNKyAkTlU7Cisk
Q00rICRPUDsKKyRDTSsgJFBPOworJENNKyAkUFI7CiskQ00rICRRVTsKKworI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKyAkUkk7CisKKyNlbmRpZgorCiskQ00rICRTWTsK
KyRDTSsgJFdKOworJENNKzsKKyRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRa
VyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFsk
QUwge2VvZn1dKSk7CitbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9
XTsKKyRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENNXTsKKyRMQjRCcmVha3MgJENNKyAkQ0FO
X0NNOworJExGICRDUjsKK1skU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOworWyRTUCAkWldd
ICRDTSsgJENBTl9DTTsKKyRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/
ICRFbW9qaUZvclNlcXM7CiskQ00rICRDQU5fQ007CiskQ00qICRXSiAkQ00qICRDQU5fQ007Cisk
Q00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOworJENBTlRfQ00gJENNKiAkV0o7CiskQ00qICRD
QU5fQ00gJENNKiAkV0o7CiskQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRC
QSAkSFldXTsKKyRDQU5UX0NNICRDTSogJEdMOworJENNKiAkQ0FOX0NNICRDTSogJEdMOworJENM
ICRDTSsgJENBTl9DTTsKKyRDUCAkQ00rICRDQU5fQ007CiskRVggJENNKyAkQ0FOX0NNOworJElT
ICRDTSsgJENBTl9DTTsKKyRTWSAkQ00rICRDQU5fQ007CiskQ0wgWyRMQjhOb25CcmVha3MtJENN
XTsKKyRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOworJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07Cisk
SVMgWyRMQjhOb25CcmVha3MtJENNXTsKKyRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOworWyRDTCAk
Q1AgJEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgCiskQ00qICRDQU5fQ00gJFNQKiAk
Q00qICRPUDsKKyRDQU5UX0NNICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XPyAkQ00rICRTUCAk
U1AqICRDTSogJE9QOworJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRDTSog
JEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskU1kgJENNICRTUCsgJE9QOworJENN
KiAkT1AgJFNQKiAkQ00qICRRVTsKKyRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsKKyRD
TSogJEIyICRTUCogJENNKiAkQjI7CiskQ00qICRRVSAkQ00qICRDQU5fQ007CiskQ00qICRRVSAk
TEIxOE5vbkJyZWFrczsKKyRDTSogJENBTl9DTSAkQ00qICRRVTsKKyRDQU5UX0NNICRDTSogJFFV
OworJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOworJENN
KiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICRCQjsKK1teJENC
XSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworJENNKiAkSEwgJENNKiAkU1k7CiskQ00qICRJ
TiAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogJElOICRDTSogJEVYOworJENNKiAkSU4gJENN
KiAkSUQ7CiskQ00qICRJTiAkQ00qICRJTjsKKyRDTSogJElOICRDTSogJE5VOworJENNKiAkUE8g
JENNKiAkSUQ7CiskQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMg
fCAkSEwpICRDTSogJE5VOworJENNKiAkSUQgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhM
KSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOworKCRDTSogKCRQUiB8
ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENN
KiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OworJENNKiAoJEgz
IHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsKKyRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgy
IHwgJEpWKTsKKyRDTSogJEpUICRDTSogKCRIMyB8ICRKVCk7CiskQ00qICRJTiAkQ00qICgkSDMg
fCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpU
IHwgJEpWIHwgJEpMKTsKKyRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAk
UFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRB
TFBsdXMgfCAkSEwpICRDTSogJElTOworJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8ICRO
VSk7CiskQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsKKworI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKiAkUkkgJENNKiAkUkk7CisKKyNlbmRpZgorCisk
RW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsKKworISFzYWZlX2ZvcndhcmQ7Citb
JENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14k
Q00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07CiskZGljdGlv
bmFyeSAkZGljdGlvbmFyeTsKKyAgICAKKyEhc2FmZV9yZXZlcnNlOworJENNKyBbXiRDTSAkQksg
JENSICRMRiAkTkwgJFpXICRTUF07CiskQ00rICRTUCAvIC47CiskU1ArICRDTSogJE9QOworJFNQ
KyAkQ00qICRRVTsKKyRTUCsgJENNKiAoJENMIHwgJENQKTsKKyRTUCsgJENNKiAkQjI7CiskQ00q
ICgkSFkgfCAkQkEpICRDTSogJEhMOworKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsKKygk
Q0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7CiskZGljdGlvbmFyeSAkZGljdGlvbmFy
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclByb2xvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MWY4YWQyNTFiZjU1
MjVkMjkzZjM3MjEyNjQ1NjE2MTE1MGI2MGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0CkBA
IC0wLDAgKzEsMTUgQEAKKyEhY2hhaW47CishIUxCQ01Ob0NoYWluOworISFsb29rQWhlYWRIYXJk
QnJlYWs7CisKKworCisjaWYgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUworCisgICAgJENKID0g
WzpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjpdOworCisjZWxzZQorCisg
ICAgJENKID0gW1x1MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2M1x1MzA4M1x1MzA4
NVx1MzA4N1x1MzA4RVx1MzA5NVx1MzA5Nlx1MzBBMVx1MzBBM1x1MzBBNVx1MzBBN1x1MzBBOVx1
MzBDM1x1MzBFM1x1MzBFNVx1MzBFN1x1MzBFRVx1MzBGNVx1MzBGNlx1MzBGQ1x1MzFGMFx1MzFG
MVx1MzFGMlx1MzFGM1x1MzFGNFx1MzFGNVx1MzFGNlx1MzFGN1x1MzFGOFx1MzFGOVx1MzFGQVx1
MzFGQlx1MzFGQ1x1MzFGRFx1MzFGRVx1MzFGRlx1RkY2N1x1RkY2OFx1RkY2OVx1RkY2QVx1RkY2
Qlx1RkY2Q1x1RkY2RFx1RkY2RVx1RkY2Rlx1RkY3MF07CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0ZjM2YzkwMjA2OWYzYTZjNWNkODAzMzg1NDlm
YjE5OWEwMThhZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKQEAgLTAsMCArMSwxMCBAQAor
JEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOwor
JElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBdOwor
JFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNf
U1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0IGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDEzNDE0NjM1NTY2NmJkMTgxMWRjYzgxNzY3NTczZGEzNDBjMDA4NAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIg
PSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSBbXHUwMDIxXHUwMDNGXHVGRjAxXHVGRjFGXTsK
KyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSBbXHUyMDI1XHUyMDI2XTsKKyRJU19TVUIgPSBbXHUw
MDNBXHUwMDNCXTsKKyROU19TVUIgPSBbXHUyMDNDXHUyMDQ3XHUyMDQ4XHUyMDQ5XHUzMDA1XHUz
MDFDXHUzMDNCXHUzMDlEXHUzMDlFXHUzMEEwXHUzMEZCXHUzMEZEXHUzMEZFXHVGRjFBXHVGRjFC
XHVGRjY1XTsKKyRQT19TVUIgPSBbXHUwMDI1XHUwMEEyXHUwMEIwXHUyMDMwXHUyMDMyXHUyMDMz
XHUyMTAzXHVGRjA1XHVGRkUwXTsKKyRQUl9TVUIgPSBbXHUwMDI0XHUwMEEzXHUwMEE1XHUyMEFD
XHUyMTE2XHVGRjA0XHVGRkUxXHVGRkU1XTsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVYX1NV
QiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOworJE5TX0FERCA9ICcn
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xNjg5Njk5ZDhkMGU0YzM2ODM0YjJmYWUyNTkzMjc3NTdhMjRkMTNmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZU5vbkNKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NVQiA9ICcnOworJEVY
X1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElT
X1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMDVcdTMwM0JcdTMwOURcdTMwOUVcdTMwRkRcdTMw
RkVdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJElOX1NV
QiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNTlmY2YwZjhhOTkyMjEyMGViYjExZGQ1ZGE0NDE3ZjkyNjc2Mjcy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIg
PSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19T
VUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJ
RF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGYzNmM5MDIwNjlmM2E2YzVjZDgwMzM4NTQ5ZmIx
OTlhMDE4YWQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0CkBAIC0wLDAgKzEsMTAg
QEAKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAn
JzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUzMDFDXHUzMEEw
XTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIg
JE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDYzNTU5ZWIxZWQ2NGYyNjNkODllMTYyZDMxNzcx
OTg3Y2RmY2ZiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApAQCAtMCwwICsx
LDEwIEBACiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5f
U1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7Cisk
UFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU5ZmNmMGY4YTk5MjIx
MjBlYmIxMWRkNWRhNDQxN2Y5MjY3NjI3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4
dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VC
ID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9f
U1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTU5ZmNmMGY4YTk5MjIxMjBlYmIxMWRkNWRhNDQxN2Y5MjY3NjI3MgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0gJyc7Cisk
RVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7
CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0g
Jyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvZ2VuYnJrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dl
bmJyawpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mZDIwNmRjZmZmZGQ0ZTdjZWYzMmFiNTU1M2ExOTk5MGNjMTg1ZjI3
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzMTQ1Ngp6Y21lSHZkdzVqVXglWmxjS24jfSZpaSVn
Wm17OD1CV1ZuVV5rX2kqb0JOSz4kQ3teUHluVkJTMENvfTA+NUc+VFIKek5tQDRKWHNwdTE+MWox
cGlkMVYpezd5eHJNO1laMyhVdDtVaWdIdj1NWjA0X2spOUs3JUFEVzNfTHxBZU0kMj1+CnpeWmok
YVp9Iyk3d2NndSQqU3A/ei1TNno9UGlLI3hBSHRYK28zWWpgI0BNQXUrWGdlJSFFT009Kml9ZH1s
SEZjeQp6VVJaZllXejc8enJheSpzXmxMSEZ2a0RFXj9hTH5jRkgwQlVeLUkhZU95SURNPHNlWj5r
S0c8fXVMXjBmaE50VzYKengmb2E2VmBJSzFMLT9RcGFZOTtDUU0pfUQzZkJqZEIpeHM1LV9yRHI1
Uz5pbWkzKyh3QTYmKkNPYHBCVj9RTC1mCnpLKylAeSQ3fWp0N1d4UCR6YkJzeT59enk3P2UwfWhj
VDMwfmFANmJmPHhiR193Rm1gLXJ8Qzs3KSZSVFI4NEx3SAp6ekQ3YVU+dVZNSW8pUyhZSmtAYEMt
TyVVdjFxVEwxdWRrJDd2b0E1Y2dzMUEkbkZvSmBlZk41TkYxeUZxOzBJSCQKelotdm07QmBPbEd3
PCVSOCZBVVZKd2NUenBGRWdpYlU9U1l5Rjs1Y25qUn5DUThgY0QkZHNOR0FfaiZFWCl5PyZPCnp1
ZX5Ke18ocHZSYik9OCNDbXh5fmxNQEleeVM+cHI7SSN8dyVTVX4oNTdVRGBnek5SOD4mZUclX2Q1
UWJlV2dOUQp6NlluJSpnczFBR3shVUEzQllSd3FrWWorTF9nfE11dnV9bWFOQkd8IypaU2JWRCFa
YDFZXnRVJmNjOTVNYCRSS0kKej8hZGxldm8ybSNYfFhPN3RhMzR+REVUQUdCVmAmJntZPSQwbWEk
ZzJnMFhWT2hkdik9SF8jWUxxTXR5eTNYVz5CCnpGbT9uTFh8OWIlWUZXVjhjVGhnTW42VldZK0BY
TjBrPzB7bHI3PWh8azxoaG9lRGJScGI5QGJWMVpXYntGcj95ZQp6RmlgQ0UpRUIhfWR0SmNreGR3
XmFuRTEwb3p3LXl2fEtabyRmM2FmT0JZV0tpcHllYTZwP04lRWA2aXxgUUU1SzQKelFvWi1GRlF6
YCFQQUwtY3NFXkQqbUt6NHpNKkFMVCp5I19yaV9BcVojOFhkRismPVF0SylxR0soKDVAVlBBb0Vz
CnpJe0oxRGQ5UCNJcXt9Wnw5U3BnZml6LXJAVmRKMmNgWCQ1ZnY/Z3Y2SUVAMjYqQ0Z3SypKN0xz
SVZxRTZKZHA3fgp6I3NlNy1XSVR9Wksqaj9aNGBlKSRAaiU3ezg0cU1Va256Qyg1KWFoTSVFd0Vx
bTIrfXJgbU5YRV4qPWlJXn4pR0QKeiNaPiE5Iz8mc25eMl5GQXAhUlg5dG41PTRmVDRWLV9KS3V9
Jjl8RnhHdU43ekV0UCs4WSNUYWxSWmh1fm9hKyFqCnprfFVeRnh4YzQhNlp5ZyM4NnFuPSN9UVlO
cXIqMn0mRGVHZE1YQ1FmOUleMTJhb3F+VWZZIz82MHpFSjFZMj9OWgp6aVZDJlB5X15DdSNgWFli
bn1EPihqT3tMOXcjZjcma2g0VzU4JGZOSEpCSXtBIXtvQF5ze3BBZGpme3p3T3xqQ1AKemdgbjlZ
aDJ5OSZUOEA8Rit6bSpNVU5gQS02aF9NLUlsNlh9eCgjKEFZZDNZb2pTbyNpMyRwU0hJVWJKLUVw
bH1GCnowfSE/O3IpPGplPClFdj54cFF7UDlmeXRXI2dJNGtaPlB3UDRDbXg/KWAjaXtsdlpWcnNv
ISp2JFk7PWlITSRfcgp6K0lHSFE/JipQJnhOTkxDdCR2VF9OKUx9JitteUlYSVZtZ2VzPUduOCV7
cFExXyF3JkU/LT98Y3Q2bU1OOUlmcT0KenFnOShBWWY8e3UoSTUlQ3BNYT1NYFBGI1IrITM9Vz1S
KDZ9WEheI2YrMzwkLXJoUFckQzkrK1BoQndKZGs5cmhnCnpGc3JnbFJObC1oS1UpRjs4Pz0rdkhz
IUF7ckJYU2U/dG0hZCtUdW9JI3w4eElnaisxcFJSJnE8Q2BGd2AoSysrZgp6Wm13fVIpa2peTUB8
aV9CRD5TVXRHPzA2aks+XnQ2YSoqS3FFdFAxaS09PSg4ckY8PyZxTkdlY2hsd0hnYlN3dTkKenI/
TVNlUCg/allNMUA9KXgqQzFoQjFib24wUXJMYWB6Rnt7PHBiVXdUald7bHNxdnhuc0EhRTBtTHNq
TihkYX48CnpVantPVUZ9QCE/SCVCWjVnT3JAWDIoTXZVe19SU2IjZHxKQ1VnQUVDWX5iRkFia0l5
dEtTVUBFJT9vJEU1NTx1VQp6cXohR2BsdXkqSU9HcGNPX0NzfFMwLT0lR08mdGV+NDtfUXQ+PCpH
TWNJM2R0Rm92NDEmYypQbF9yWVlGXjBedjcKenNUTlpBcUh7Tm4we2soRCpLU2N5QmN6OEZeIzt2
VXRmPCtRYDs4cUdMTnZ3WEFNQnpQY2M9TC1iRGpCYXYlUEw3Cno8ZXVTanF0eT9vOFpGKUY8Rklz
bEtjYz16aERTTWYpflE0Q01yJmtMNTRaPWhvVXo7JnB0JjZ8bCZQUGRpXm9sSQp6XiY9RWVjTmVk
YTMjO30pQFp+OXgqdmBkZkJgZHRCTmx0O0pFbUM1UWo4VUQqd3U+KCU/ZFl6b3lyPSNKV1VZPGcK
ellKR35NcWpJRGFSIW9Dai0kPUF+RUo+UXB0SUNsTGU2ZWsmeF5RNyE0UU8/RGE+M0UrRE1XXn5l
JWAyNlAoR0JFCnoqVlVEZiFaQGlHTz9yY24tcGkkNWpZTWhNU1J4JkZwK05JdjZJSW9sTVpJQkt5
KmczdjtiYmR3NX44cS09N3ZnPQp6KVk1d3A9e0AhcF91OUIqRkVueFd1VjlrVV5DYX1TQ1MqdG9u
Rzs+KjNWI29vOW5jKENlQHhQVWdmI1hMU3w7aS0KejFmQWhid0hnZmRjNFdsQlkmIXlhLX17fC1G
ZV5JWnEzZnlXNF8mJDUqdUZQMyhpQ2dHblQ3SWJ3Xm87PFFyKnNtCnpCSUI1TDQ1aFkoUTtvck95
PDs/MTEzbF5kPT0yRyZQYHdyYypqMkV9VihhKDxPP0RnbHZQPzFLKT56JW5HPTBobQp6U3ZleSs1
QXFFUyFnYWw4QVo7OUQ1JCM+Yj9AUSZeXzVLSVloN3xlSkc9Y1dpXj0+Qm0xQF9oVHUxdTQhPilu
JXYKekZSaGw5Yjd+RH1Oe182M0FoKyR4eXxiP08zNmtqfnJedzFfU3ZqUz1CUCp9Z15fcXlSPnAk
bW4xMTU1PWohI0ZSCnoqMmVXPF5aaDx+NSkxfX5NcmFWe15qTXdaREVKSX1nI34pYTdII2JnXnRa
MH1YVyhqaHd9RDItJGo1RnlzNW1QKAp6I09tUGtvZGZiJUhaTmd1VnQxKDkkQD4kQGQwdk5hTlg2
Qk1HKTBlVUxyMnBsYEI0NFRCZlhUTDMyI2BIY2RXe1AKelNgfTt3bXolaytPSiR7WWYySFh0S21N
TTk2eVVibSU9cG1iZlU3JENqcVEoUGRkVkdvanFOYExVfHY2JVBWTlpOCnpsO3tAQlhgOWxxNGFF
KXxreFhzSVdkUGY4Um1haUxZRSFIVlVCMUItR3E9dVRwe3I8QEpPT3J2YWpVSH4tZ2MoZwp6eFp4
RyEqMWQrO2FPYHcqSipVK0Q7THwzTTlWSlJ0JE1IfWxTfFFsbngpI0BoNjUzKilBKXlHVCVGZXlB
O2d2cUEKekMhNiolU2wtKFVwZUxKdHozU1p1RmUmJG5KZU19eHotMnd6SUEhXnZeP09NNXt1KUFM
PGBRbkNtNWZ9KGpvPiFQCnooVTxuNEAkRlJBcmtxIXxwXjh2eCt9Ynw7UHZFdGtFKUhGX3IrcWxk
Nns5P1dsSnlQUSg/SkJCMDt2bDYpJGMrOQp6YiEmPiZwTlpKQnt0OylWRSY2OylKRXpvSkFTTjJj
SFJVdDRqTXxNKFp7ZiEqKlFnJUdaakM4Z3JBI1p9cWpacFoKejY/djlNI0I2K19qPHhMXlJCNkk2
emVJeVdiTUpCKmc/ek9jcy1tKFhkZT4tISNyVlJSPXpMQDAzN3BKMF92RSVjCnp4ZWFFO1FoPmIy
UWpxdUZ4Mz1TKTxvbmMhRlZSP0pQNjBJNmc3Qkk4NjxWKV4oI3die04xbXJmYTY/YygyRUMhfQp6
Qk97S2V6bVR6IU9SJE5EWnI/X2U8RUJIIzdZP0RQRzAyK3d0OyhOWUImcy01WjFgPUVibEhAQ29H
XzA7alpIYioKemNSZ0okRSg1RDRuQHBpOzhYMng2NzBhYDBfbEdhSERNeFVFKGdhVUFLfikyNGVa
JV94OHxGVzVEcz1tfWd+cS16CnpsSEMhemYxV2ltazVsOEpOJFBQSlV7Pn5rcSprRXMqZXI4MzZa
JiVEZ04zPX5uPmc9QlhVV2RFK0phOW5FWjdZUAp6YzdlM0Boa1orMWQ4ZSQobXNuaSlKOCgmUDU5
ZHVLb3ZGQjhveVMkdGltVCFSXjBUciNHTW5afFgtRUEyWTFZVkUKekVJdXFGXiR3VXNuRUQoNTcm
S1RqaD9DQnJBdi09LVJkXntmOH0qRXVEWEFCVko4O24zQklESHVBKV82JTErYWgmCnpfIzkoWXJK
U2Z6JmUpV0hSfGxhbGs9ZzItNVl6Y2paYWJEPXpBbnNYKC1tQEw5QCNZbDdwMXMlbGp3eUpYZn5l
Pwp6NSZsWCtAKG9KKEpqdGNYcFhhLShgcl9CZ0U4I0VvOyRRTTxzSUVeREZXMi0jQDEtM0Z6ZHU2
UWcwcyZKcD1BNGYKenw2OGB5dFlFVHpObjZzcmU3MiZOJilqeENlfnBZSzZ+YkEjb29gKGVQfUxt
MGAkWEhoezUyRDcoWWJla0dqTSlUCnpPKWZ7PEs+UmU7e1oyPzRAQmdkMD9Hc35WTkJ7Uyk7a3Uq
S1okdmVWYSswUFpVRkNZO2dscSFRbyEyO1J0T30tSwp6SlR5XmBqR15neFc4Mnd5Y3FyV3JfVjU+
JVNKNjhvem1Aam1iZ0FxODVtJEQxLUE7YnFpVFpkYUstQ0V7Q1JWNmAKejZ5JVlEOWFzK3YpeUhq
WXdnRTJ5bmcmWiFMLU1ITEstenI4ej9FOCtLZ3ZwWW8zZUotP2BkeXNpKVJAaDcpOUhsCnpeUTFM
ZURhbElaWW4pKzx5LTBqbnNwe14xMGchUF9EXk8tXz4mWV4xZVdtVTY8blhkPzE4dUl4X044RVY5
OF94Rwp6cyMxPkdsOyRud21xXm4xQW5DRDJyV01kdEMhZHpuUFBCc3F2aSVXSzZ5SSVhK2NteXcp
XzwtIS0xeyZqd2UhKnYKelUxWD9velFXYlhrPW9iajB1NUN5K3lWPjB0ITJpb1UoN20+aTVIS19a
TGZ+VThgenBwZCNlK0NJWGJHPDdBPCgyCnpzI09ffDhRVylvVzhQelZkI3U1ey10elZoP0pASXV5
ZGdhVXdsJl88ekJmfClSYEA1VFNub1FMPz5LNX45fU18TAp6UU9tUGZRfFFTYSVXa1NAK2tGRXJZ
UTwhbldwPnJCd08zaTQyam9iMm47YVNTaiZiWGh3KTJ6MlNHTHx+VjQ7IVIKekh3SSgtNChLeTBA
QWw8Ym0xVm5ndHIxJjZLRi0/RXdIRTlja3U/UlF1YGtDRCgyTW15TChtazE4R1g1PzdgVDgpCnpi
N2J3Vl98OTQ5KjM5RlVxNDZQQSU5Xil4YDx+KExXN1Nue3lDcElWMmQjLTMmdT85ZyNgQUZQWGdo
NVBjbFRNVwp6aVZlYys4YWlkPzhAOS10ZWVKUkVtMWc3Q0F2QThvJTxHcEorVj5oZU8zcWAkanpM
d29PX3tTI2o9d0BKOFh2ZD4KeldhVyoldFckQFRMczw4dkRaOCY2c3E2MFJKJDFQNjw5T2omOUg7
VFpGTHsyUj1NMn1EY3dyWEwybDBGYCZ2U1g2CnokTWEhNEFIbmx7bz9wdUlROVFxYj1jOVJrSFA1
ZipgU209UGNzYGNyMXcwP2VeWUp7TiExR0J3RlhETCMmIV9Odwp6OHFhNiZ5cC1vPEpmRmshbnxX
VCZeOXI2QGMpb3o9R1M2P314c0IoR2QweCUpOHN1MCQoZCVCczMyYV4oRlo/eWkKeiZMJCVFZXVC
NHpyZn4lUTgkbUtiMk1LekRwd3xkYG5WXj5tZFk3UXo1JWVpUlBaUlZOTDB0cjBpRncpa1EtVFQh
CnpkVnJ2RWZfX05RdHB1JGkkVkhIa3BtaFlmMj5LYThjTSNNflAmR2xYNjEwR3pjTDx0OCZ+YnZN
NVJgP0wrRG1XUAp6UDFnYH5Kd1lWfGpVdVIkcGdlK1YyeDBefDI8cGV3WTRRPHRqRyhteXtlXz9p
TDVCJFhNfXFiZF5ifHE2MnpyNV8Kej9GOCo2c0dGY1MzRUU4MXpaM0x4Zjw3bmNDakA7KCZebSZL
Vk1GY3hLMCgoSTZlNEltTEVqOzBDUDZDKlQwcWNrCnoxbDFCYEJaJVR1eSVtNWtafnk3aik+Zjl5
aG1Ga1U0Kj5ge3VwaVBGbkV3TEFpXyR+TDd9UDk1JCk2PWFoeyFxMQp6ZllpWnt7Q04oQz9ZfF5B
RjMzejJqQVQoOGJUcW9scXs1KGQ9ajRAaiRvd3JLNTU2ZEBsT19rR0stbFleK35EIUwKenJPQUhE
OX1jeUlMbWJVeG0oO2kmRjNJRFE+SH1gYUooNEhuNG1oWUR1TSg4IzgmUyNPYjRtOUd6QG47QnNM
M3RXCnpkd2g8LVlLZ3ZWJU08T0M8eXx0bE4lOUF6JEA2JFZuWkRlVkFuZ2ZDVlh9P3VnM3hVbWQh
OylOcTt9e0RIdT4rQgp6OTghWVI+PCZAfCRUfkd5ckB2KSZ6fCtfaWZ+PzJxXm9DdC1oITBTR3sq
Y0U+QCsqX04+LXxBRCpCdUg2ZD1sRCQKemEhJThGNF9Te1VpKks+MDgha15rbDkwS2JBd1BRN2ZS
MT9tUFBvRj9pMmtwWmR+VWJQT14kK3RuJXlwczFLeXh8Cno1X3ZUXkRlbl5BbUBhR1pkJWdhOVFM
VFFwKVp6Iz1PX0UmaDIxblElZkBBI3tEcD12dHRaPSE1QSNNVVI1RGZxRgp6UUFrPWUyX185RnFj
ST9iZENWT016KkxOJSk4RWBvMUxnSmo7Rzk1WHhZX0xzTm47Q3hXQWhqZEtSMSpRclJEKCoKelp3
PzFUUW9UUmFCLU9qNlYyaik3WTRFc1JNUmBuYHBZLXxvYDhQPlpOPSh4eU5tbEI7V3xfaylSZkww
UkQ7U2lqCno5TF4/IVAkJHNoN3hSWn5mbkpQcWshMUZJcjVZTilwajZgeXgmdGZHZ3YxSmlXcz1r
M2xRNFNkZkc2Wn1jcz0qSQp6Q0Z9ZyFCMjA7cEJOUHJ3YklENkFQfHhRMyEoSkJgXnwhY3ZuKDxv
YUQhQihSZHRFZUVlM0VPN3UrejhGUFNSemgKelFffCM4U1JzR3l7M2JeTFJfTkpJWGJaVig7SSNA
eihDdzxBckQ1ZU8heW5Lfk9PaGpgSWxhJnwzOFVaKkh+WFlRCnpSfn5EMGB8MVB0bCkpKSFtWnk1
M2pGfXxIQz9UIzVYclo+XnM3RXhgRFY2ZT0pKTg4ZW9TaihFc2E+YkYkSGF7MQp6cWFTMlkhM08z
ITZCQ1hsN2cySH01a1NKOGtsKmo2JDxeWEBoY0pfYVZXJCZnLVZwWUJSfk5BV0RgTk43aSVFI0IK
ekN0O0s7K314fmY1MUxobCFRI1NUNWU7U1hLfS14IVZ1TVZRbGZjdXVoanYyelpvI2stdlBucFUp
NWErQDchRUFZCnpGJkxQXjs0b3d4PW8/QDlVY0ROOEl4MSY8M21HMjU+M2RFM3dpfi1FelBUTDFF
Wld6eFMjdWQxeWROOXVrLTw9agp6Z1NVSkwla0QmKHBVVnU9UHsyYyhWRmxpWUBgdG1XPyVgfXVg
M1BwWGZuXnkrNGpue28td0pqQXFpNllldHVPVlcKel5vbncmQ3xnQ2pVWCtpREAtYjB2NSN8Mzg8
LWR3QGswfCR4QDt5LT03M0Y4NUpTfEdTQG1WKSViYDJCZDZ7M194CnpJWUVAdU0wdjkpV2xgM01A
LTkmfWhfWGVMX2xkR3lsbjt0PnFiUSNjPCE/bH1SZ15KTnpBbm5RTUVRWHpSWipUNAp6PChIeHkm
RUVTflYkTXxyP3ZaZCp2cTZkRDY+empqPiN5RHEzQXstRjduN1NPPGJIQXllSmgzQiZuX1l0NUhA
eVEKek05d2VkSGVFIXtCam89MUI2NCo3cXZ3VC0kVD5CIU9yRyZUI3NlNy1XSVR9Wksqaj9aNGBl
KSRAaiU3ezg0dnRfCno8QUlUNU9JTTduU2FHJGJiJTtkNGZKQDhtX0ImalQ+WHEhKUsrTXBFVSk4
azcmYEF1UnFuWVZ3X1FxQUs/RCQqdgp6cHg9aTtTWks5PFdlSURJQSpSZTlMKzUzdmhyaDlSSVBi
QUxvOT9rVWg4K1BIQlZ7MUU1SClIXkF8QnJXT3B6bG4Kej1ucjFgQUwhYz14YGl9cnJRWnlNVzxF
eSRFcHQmTFAmJCZURVNgIz5sNCl3SyYqU3ZGKylNZGkjTHFXWEk7dDBpCnpKZ2shaSVEKyp7Vnlh
dzg2N3FuPWxxcHt5YkEhVH5NVD9pKGI/c0V2bWB0X1JoflQrLU5VWCtHUXA8dCl1IUo7TQp6NGBg
bFFUamcjPlZBdGlYI0U1e217NmUxWi1wWGNUdHBGPSpjWTU2cFVsX2gpZmhKQ1hpfldKY2olS2Q5
Z185Y0gKekFxISVfbVBGVz9namFENiNXTStPSEU9WmVIRz1CfEQtYGckZUkobi0yXjYkK2RKKC1R
KCM5bW9oM0swemx5SX1CCno1bURIMWZYajN4V2htQjN3WURURmk0WjRJeUUoTmJ1K3JXVGFQeWtt
bDlYbCNWI2BqRitIYXRGUjsmSCUwMGU2aAp6TWtld2hQUFI5QG82IX1UZT8mWkA1ZU1kRWdUdnpg
aE1IZ201SjY4IXBCTnl2dFdGUzU2VmJnJkk0Y1dDTCRkU2gKeklPX0h7a2poUkNwKW53SUJTK3pY
WmdmYHkzbGVWJiN9ZHh5PTIjMjxRJHZVPStOUi1RdCE2Qk5AdFV1M2o2JXR6CnpYRnRiK1phNDRq
QSYhT0lVZiNuYTlPRk5Wa2Y9KU5LcFE3RzhWKyUjcndJdlFfTzBaZVl8Wjg8e2M4clF4c0ZpJAp6
Qk1FMFNwSzZAfjY7b20ocDwkb3NyPyFfRz9EJmwrK3VxeSt6cXleXmtRQElhISRDe0JYcWtOaGV2
SDV4YlVUe3UKelkpWTdJckM7Q2hwKjhvI0QkVEtMRE1DJno1NWx9MzhaZGBgWXwjMyMjbjhmREgx
TXxtVT1XUVNGYSs3aDF+KXJ9Cnp8NyZ1aDZyc3x0UzslNnU1ST0+SmVzMTkxXz8+fXc/enQ/OyVy
ZTtVUXZmPipgT1kjOEpfNU1BNDNTIyRkNT9rbwp6YDNefDJHSEFrbzZGPz0oVDR5OGNxQVdIV3Zp
SyF7b2l2MTg+Pis0OUxLTXR7angwWEA+cHwrQ0x5fmh+aHNWZEIKeiRmREA+USgwSnw+XkNHJiVv
Q0tnJlBDUlYqbHJnNlNZdX5AJShBIThoRzdtZzJIQngobWFUPlFTI01TWW1UYSh6CnpePUUwJFh3
NjAmYX01Pj5XVjNWNzhKaURILVN9YHxOR1c/aCtjYmwxJno/R2s/Wn5kYyFudWQtJUMyXn09bSFZ
NAp6SChUMlQqfW0qcjBsZilidHFaNitXaylGTVR1M05vYCg7OXskY3xXUHUofkdDZVBuMmZSM2Jf
RlFocSp1NHl2WHkKelUrTnModmZvZnJRWCtMMyR8O1ViQmtRNkg7d2VPI2lYI05oOHR+UUlUWk5s
JUNsTHpnNihMTGZVelpLUTNzUHw2Cno3YStrYHsyX2NYdlEoVnZRfmFFR1BhI3FMMVdxKW57fUJD
dmlIQzVpcFRNNjVLNW1jfWRuWD0hKkJ+SiFvfUI+Mwp6O25TRnlOdnBlYGFLemkkUjFLIyhpSV5s
bl81c3JNQVNVe0FMZntFfGBoa3h+WCloUERCazsqcjt7VH03Jil8ZXQKejdpOz5iMD4yKlpjWnYz
QTU8a1RyMypqbUQpQnJha2I+VCt8NnMkcXVDRCZ7Q0R1SV5eYH5pVy1nIzJjS3VlZVQ9CnpyO2xW
dlV5ST1YTEV4PXx8RG5MazElNldDQ3hrcUdhTCgtIXtBJmY/RGNVeSl5aFFMOTI+Z2heemIpYHFB
eH1UUAp6bGZEJUt8RG5LSjFwV15SVC01KUshMUR6ajZMP0pFaGQ3PU9QaWclPENpcTclWTB3TmlC
aypwYWUrWWh7cTRyRDAKellXJUFPOT1rIXE+OEUrbHpmcl5LMllQTz0hMEJndCFrTko3PVhBbjUx
PlBYPVpoX3c/QE0+WENSTiRRZ3wwUXIjCnpOM0syM1gqampPcDk0RGx4REdkQ0U8IWpkZjRkSSVh
PWFCQCg0TFNFfERHbkY8VWckOE5xWmpHO21fJnRUe2A/dgp6SXthTjdlcEg4XylacTs0Sms9a0Fi
QCZKIUsxenBRdEhXPjk7UytTWU5yI3V8YUkrNFZiQCZuO2V3ei1qKThURiUKei1tSnJlSXtiUyZ5
aUpFa2JvZTcwb30zU2w+RntUQ196b1QzcXIoc0RAUS0hKTdkbzh3elNRfTZsQDFAVDttUD9gCnpx
VHxvajtqJko/Nnc/XmoxY3JtMztyTTJBa25UZE5MJUpLdWo8Zj5GZm1EeT1MfjxkeWtzNldjX3FN
cjZIelVuTgp6RG5+TFNFa0lnYEJxUHkqYz87NGFCcFhyeyhxZzB+Tll6TzY5IyhfMjZsb2IhRXop
Z0JiUmFIQWBabSVYTk92TU4KekFiRjdSbCskbGA2LWVgdUVKJjN8e35QLXd2RW97TVpWfC0pSmZi
ZiMhcCs2T2ZVe1dwV2p8NGY/LVl1aEVpRCZGCnpTQTshWVMyNiRVTHd4ZlI2eEU5QUlqaEV2eDFe
dnVvdyVnX0o5dCRJUFdKZiZjJntqNFJYVzJ5Vl9ISlEmK3lWewp6R1Z3MmglcyFYSjxNdUZudmpk
bTdoNGJnOXtDaFU5K3I7ZHlDWCUrejZyVUp6cV9pZEFaeyk5R3t+YmtpamlYbUoKekVCIU14Sk9B
UngmTSRpNitFJnlldTVUQT5Hd3FKOC1LZ3pwRzxzanJRVFV9Ym90QW5EUHZgTGFjUkduKi1fdURn
CnpiY0AhSj16NShfOyVfbitsSzJmPlB2JSM2SiZ8QVUofV9YNG5kP1lBeyV8MT9nTDs3PVVEVlR3
OyFQdStzOW5PcAp6aE5qdjZIRSV6N1dnb2NOaXhDIT1gIXIwdShGPkJlXnJ1YjstMFZ8UC0wQFM8
KGxrdUZgPXt+flp2bSteQGZNSXUKek8xdjU5LT9UM2xRMjdRdjUyWWt7fDJLbXUzN3pUVDZGcnAm
UEMoPypFfGU3OUxSamkrOyNyYGtnYj5vPVN2Kz0tCnpNJHNaJW9UU0NLRz8xY084cExCOzk4QVU7
MVNTRnVUNFcmK1Fte0Fod2J7U31JbjNVbXR1IWl2el9kbHlBWVM2Xwp6NGZzUzclWlVvJllBZE9N
Mkx0UjRKUEtmTTVSKWBmTUgzWm9gZ3I1bDdFZSVueDJKYn1kWnx4fEVDQyNkREZKflkKej5DcSg2
Y3BNNGsxcHk/WUJ7VTklak9fZkl3e002UVgtdXUzVHJMP01OYHg1ZjtiZUc3MTRVZnVnNkpYNkw7
WjkxCnpnSkNoZW0zRCFTbjw5VEVBOyoyeWZSZ1YwaEVuYkpvMyM8TEw8YmoxZHpEPj52UDhoUk56
fTRZMkwzUGNoJWIoKQp6JDx5Jm5uPkI2UGw9QGtZRGJyXiglJFFuZ25tVD5mT3ZrS3gkMUs7MzUt
X0phWFUmKy0lRUpBSmIyQEdzXzI4KVkKenp5SGhNMSU0aVRZO1RZJihxKkYkS2FoTEZnTEEmUnRM
Jn1tRUF1fFJHXmdZV3NifTRvcyN9VSRNJkZ0Sk1FS3BlCno5KG5mZXZOSz0hfDZFPkJibF82K0ZI
aW87ZCtqZ3dvX0k5Kyh9YFdEbnMwYmBgek93JCt4ST5eYmpgZGU8RyEycwp6K0NwMzRvail2RHdB
ZyQ5IXBlNyFmM1dFZiVicSh2cnxIUnhNPzNHZGpSO2xUK1dWKkNwSW96VzsjMjU5Yik0UU4Kem5l
ZkdtNmtsfEtvYVBIRD53b1R4ampOXjMjbX40JGdqWVJ+YjR5b3UmRW9JMD8mIUp0JDtxYj0mZkkr
RXs0K2x5Cno4fil4aS1AUitlbFFrYmFgSjM/ak9+LSNMcEw7eGheR21hYkYxV3BRTl9xUzRuI1Eq
bXtRakIwakM7ZyNecSlSagp6YHU2alVBRnVsRTtUO0Rpe0BZSilvdnxTPl4xV2VPb3xCJEZ4YVFs
JiN8QjZIa0tOVFhAIyROcXk/U3MkKlhCaGYKekRgITZiPnlRNTlnOzdIdntxZ1ZpUDV3JX5gN190
cnRxPVpyLWtgQDB0ODtnfWBzMis5RV89Q2YpU1BFR2JockhBCno7RFg9WV9HREpAJkcqYXhXP3Va
eiRpa0lISVhCRz5gUU5CR2RSQF5NJjMoXyM5QHwqKXRGdzJ5bW9OTHxzV2FidQp6YkwpY3pGVDgl
cWBOMlFHPmRqNCZ2bVhwNFUrNGI0SzR5M3M0YGUpJEBqJTd7ODRxTVVrbnVwcTB+cnJ3SmRwN34K
eiNzZTctV0lUfVpLKmo/WjRgZSkkQGolN3s4NHFNVWtudXBxMH5ycndKZHA3fiNzZTctV0lUfVpL
Kmo/WjVCJElHCkdmJlQqMFFibDZgCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrLnJlYWRtZSBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsucmVhZG1lCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZi
MTZlM2Y2NjEwMDlhOTU2ODg2NWZiZWIwZGFlMTVkNDgzMjM3NjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrLnJlYWRtZQpAQCAtMCww
ICsxLDE1IEBACitJbiBvcmRlciB0byBnZW5lcmF0ZSB0aGUgZ2VuYnJrIGJyZWFraW5nIHJ1bGVz
IGNvbXBpbGVyOgorCisxKSAgQ2hlY2sgb3V0IElDVQorMikgIGNkIGljdS9zb3VyY2UKKzMpICBt
a2RpciBpbnN0YWxsCis0KSAgLi9ydW5Db25maWd1cmVJQ1UgTWFjT1NYIC0tcHJlZml4PSQocHdk
KS9pbnN0YWxsIC0tZW5hYmxlLXN0YXRpYyAtLWVuYWJsZS1yZW5hbWluZz1ubworNSkgIG1ha2Ug
LWo4Cis2KSAgbWFrZSBpbnN0YWxsIC1qOAorNykgIENyZWF0ZSBhIGdlbmJyayBDKysgWGNvZGUg
cHJvamVjdAorOCkgIERlbGV0ZSB0aGUgYXV0byBnZW5lcmF0ZWQgbWFpbi5jcHAgYW5kIGRyYWcv
Y29weSBpbiBzb3VyY2UvdG9vbHMvZ2VuYnJrL2dlbmJyay5jcHAKKzkpIEFkZCBzb3VyY2UvY29t
bW9uIGFuZCBzb3VyY2UvdG9vbHMvdG9vbHV0aWwgdG8gdGhlIFVzZXIgSGVhZGVyIFNlYXJjaCBQ
YXRocyBsaXN0IGluIHRoZSBwcm9qZWN0IGJ1aWxkIHNldHRpbmdzCisxMCkgQWRkIFVfRElTQUJM
RV9SRU5BTUlORz0xIHRvIHRoZSBwcmVwcm9jZXNzb3IgbWFjcm8gbGlzdCBpbiB0aGUgcHJvamVj
dCBidWlsZCBzZXR0aW5ncworMTEpIFVuZGVyIOKAnEJ1aWxkIFBoYXNlcyzigJ0gYWRkIGEgbGli
cmFyeSB0byBsaW5rIHdpdGgsIHNlYXJjaCBmb3Ig4oCcaWN14oCdIGFuZCBzZWxlY3QgdGhlIHN5
c3RlbSBsaWJpY3Vjb3JlCisxMikgRHJhZy9jb3B5IHNvdXJjZS9pbnN0YWxsL2xpYi9saWJpY3V0
dS5hIGludG8gdGhlIHByb2plY3QKKzEzKSBDaGFuZ2UgYnVpbGQgY29uZmlndXJhdGlvbiB0byBS
ZWxlYXNlIGFuZCBidWlsZCBpdCEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4
dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRv
ci5jcHAKaW5kZXggMzFhM2YwMmIzZWNhOGUwNTNkZDUyNTI1MDUxMjUzNWZlMTBiYmIzYi4uNzA0
ZmFmY2ZkNjU1OGFkYTUxYjQzNGNkMjYyNzk3YTdjNzUxMDYxOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKQEAgLTI5LDkgKzI5LDYgQEAKICNpbmNsdWRlIDx3
dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIAotLy8gRklY
TUU6IFRoaXMgbmVlZHMgYSBiZXR0ZXIgbmFtZQotI2RlZmluZSBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApKQotCiBuYW1lc3BhY2UgV1RGIHsKIAogLy8gSXRl
cmF0b3IgaW5pdGlhbGl6YXRpb24KQEAgLTU5LDYgKzU2LDEyIEBAIHN0YXRpYyBUZXh0QnJlYWtJ
dGVyYXRvciogaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGNvbnN0IGNoYXIqIGJyZWFrUnVs
ZXMpCiAKICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKK1Rl
eHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0IHJ1bGVT
ZXQpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKIAogLy8gSXRlcmF0b3IgdGV4
dCBzZXR0aW5nCiAKQEAgLTE2NSwxMzEgKzE2OCwxNCBAQCBUZXh0QnJlYWtJdGVyYXRvciogc2Vu
dGVuY2VCcmVha0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogVGV4dEJyZWFrSXRlcmF0b3Iq
IGN1cnNvck1vdmVtZW50SXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiB7CiAjaWYgIVBMQVRG
T1JNKElPUykKLSAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVh
ayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKLSAgICAvLyA8aHR0cDovL3NvdXJjZS5pY3UtcHJv
amVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtp
dHIvPi4KLSAgICAvLyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25l
cyBhcmUgbGlzdGVkIGJlbG93OgotICAgIC8vICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBT
cGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7Ci0gICAgLy8g
KiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBw
cmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0
IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGlj
IGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKLSAgICAvLyAqIEFkZGVk
IHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2Ug
aGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0gICAgLy8gKiBBZGRlZCBydWxlcyBm
b3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCi0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGtS
dWxlcyA9Ci0gICAgICAgICIkQ1IgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IENSfV07IgotICAgICAgICAiJExGICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBMRn1dOyIKLSAgICAgICAgIiRDb250cm9sID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gQ29udHJvbH1dOyIKLSAgICAgICAgIiRWb2ljZU1hcmtzID0gW1xcdUZGOUVcXHVGRjlGXTsi
IC8vIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCi0gICAgICAgICIk
RXh0ZW5kICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNlTWFy
a3MgLSBbXFx1MEUzMCBcXHUwRTMyIFxcdTBFNDUgXFx1MEVCMCBcXHUwRUIyXV07IgotICAgICAg
ICAiJFNwYWNpbmdNYXJrID0gW1tcXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31d
IC0gJEV4dGVuZF07IgotICAgICAgICAiJEwgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJf
QnJlYWsgPSBMfV07IgotICAgICAgICAiJFYgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJf
QnJlYWsgPSBWfV07IgotICAgICAgICAiJFQgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJf
QnJlYWsgPSBUfV07IgotICAgICAgICAiJExWICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJf
QnJlYWsgPSBMVn1dOyIKLSAgICAgICAgIiRMVlQgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVy
X0JyZWFrID0gTFZUfV07IgotICAgICAgICAiJEhpbjAgICAgPSBbXFx1MDkwNS1cXHUwOTM5XTsi
IC8vIERldmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkSGluViAgICA9IFxcdTA5
NEQ7IiAvLyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkSGluMSAgICA9IFtcXHUw
OTE1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIk
QmVuMCAgICA9IFtcXHUwOTg1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEK
LSAgICAgICAgIiRCZW5WICAgID0gXFx1MDlDRDsiIC8vIEJlbmdhbGkgU2lnbiBWaXJhbWEKLSAg
ICAgICAgIiRCZW4xICAgID0gW1xcdTA5OTUtXFx1MDlCOV07IiAvLyBCZW5nYWxpIExldHRlciBL
YSwuLi4sSGEKLSAgICAgICAgIiRQYW4wICAgID0gW1xcdTBBMDUtXFx1MEEzOV07IiAvLyBHdXJt
dWtoaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRQYW5WICAgID0gXFx1MEE0RDsiIC8vIEd1
cm11a2hpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkUGFuMSAgICA9IFtcXHUwQTE1LVxcdTBBMzld
OyIgLy8gR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEd1ajAgICAgPSBbXFx1
MEE4NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEd1
alYgICAgPSBcXHUwQUNEOyIgLy8gR3VqYXJhdGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRHdWox
ICAgID0gW1xcdTBBOTUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCi0g
ICAgICAgICIkT3JpMCAgICA9IFtcXHUwQjA1LVxcdTBCMzldOyIgLy8gT3JpeWEgTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkT3JpViAgICA9IFxcdTBCNEQ7IiAvLyBPcml5YSBTaWduIFZpcmFt
YQotICAgICAgICAiJE9yaTEgICAgPSBbXFx1MEIxNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRl
ciBLYSwuLi4sSGEKLSAgICAgICAgIiRUZWwwICAgID0gW1xcdTBDMDUtXFx1MEMzOV07IiAvLyBU
ZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkVGVsViAgICA9IFxcdTBDNEQ7IiAvLyBU
ZWx1Z3UgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRUZWwxICAgID0gW1xcdTBDMTQtXFx1MEMzOV07
IiAvLyBUZWx1Z3UgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEthbjAgICAgPSBbXFx1MEM4
NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkS2FuViAg
ICA9IFxcdTBDQ0Q7IiAvLyBLYW5uYWRhIFNpZ24gVmlyYW1hCi0gICAgICAgICIkS2FuMSAgICA9
IFtcXHUwQzk1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAg
IiRNYWwwICAgID0gW1xcdTBEMDUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4u
LEhhCi0gICAgICAgICIkTWFsViAgICA9IFxcdTBENEQ7IiAvLyBNYWxheWFsYW0gU2lnbiBWaXJh
bWEKLSAgICAgICAgIiRNYWwxICAgID0gW1xcdTBEMTUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0g
TGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUkkgICAgICA9IFtcXFUwMDAxRjFFNi1cXFUwMDAx
RjFGRl07IiAvLyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCi0gICAgICAgICIkWldKICAgICA9
IFxcdTIwMEQ7IiAvLyBaZXJvIHdpZHRoIGpvaW5lcgotICAgICAgICAiJEVtb2ppVmFyID0gW1xc
dUZFMEZdOyIgLy8gRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCi0jaWYgQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1MjY0
MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxV
MDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0NjYt
XFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAwMUY0
NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxVMDAw
MUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUtXFxV
MDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2QTMg
XFxVMDAwMUY2QjQtXFxVMDAwMUY2QjZdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBa
V0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBc
XHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAw
MUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxV
MDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0Nzgg
XFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0
ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAw
MUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxV
MDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MThd
IDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNlCi0gICAg
ICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxV
MDAwMUY0OEJdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0g
ICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFG
Mzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAw
MDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxc
VTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgx
LVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFG
NTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAw
MDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0
aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAgICAgICAgIiRFbW9qaU1v
ZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIgLy8gRml0enBhdHJpY2sgbW9kaWZpZXJz
Ci0gICAgICAgICIhIWNoYWluOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAg
ICAgIiEhUklOb0NoYWluOyIKLSNlbmRpZgotICAgICAgICAiISFmb3J3YXJkOyIKLSAgICAgICAg
IiRDUiAkTEY7IgotICAgICAgICAiJEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsiCi0gICAgICAg
ICIoJExWIHwgJFYpICgkViB8ICRUKTsiCi0gICAgICAgICIoJExWVCB8ICRUKSAkVDsiCi0jaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqIC8gJFJJ
OyIKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCo7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1Ig
JExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJr
OyIKLSNlbHNlCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAg
ICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotICAgICAgICAiJFJJICRSSSAv
ICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAiJEhpbjAgJEhpblYg
JEhpbjE7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRCZW4wICRC
ZW5WICRCZW4xOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkUGFuMCAk
UGFuViAkUGFuMTsiIC8vIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRHdWow
ICRHdWpWICRHdWoxOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE9y
aTAgJE9yaVYgJE9yaTE7IiAvLyBPcml5YSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkVGVs
MCAkVGVsViAkVGVsMTsiIC8vIFRlbHVndSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkS2Fu
MCAkS2FuViAkS2FuMTsiIC8vIEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE1h
bDAgJE1hbFYgJE1hbDE7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAi
JFpXSiAkRW1vamlGb3JTZXFzOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNl
cwotICAgICAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IiAvLyBEb24n
dCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBz
ZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0gICAgICAgICIhIXJldmVyc2U7Igot
ICAgICAgICAiJExGICRDUjsiCi0gICAgICAgICIoJEwgfCAkViB8ICRMViB8ICRMVlQpICRMOyIK
LSAgICAgICAgIigkViB8ICRUKSAoJExWIHwgJFYpOyIKLSAgICAgICAgIiRUICgkTFZUIHwgJFQp
OyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFeHRlbmQqICRSSSAk
UkkgLyAkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkk7IgotICAg
ICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNp
bmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07IgotI2Vsc2UKLSAgICAgICAgIiRFeHRlbmQgICAg
ICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9s
ICRDUiAkTEZdOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkkgJFJJOyIKLSAgICAgICAgIiRSSSAk
Ukk7IgotI2VuZGlmCi0gICAgICAgICIkSGluMSAkSGluViAkSGluMDsiIC8vIERldmFuYWdhcmkg
VmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRCZW4xICRCZW5WICRCZW4wOyIgLy8gQmVuZ2Fs
aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFBhbjEgJFBhblYgJFBhbjA7IiAvLyBHdXJt
dWtoaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEd1ajEgJEd1alYgJEd1ajA7IiAvLyBH
dWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE9yaTEgJE9yaVYgJE9yaTA7IiAv
LyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFRlbDEgJFRlbFYgJFRlbDA7
IiAvLyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRLYW4xICRLYW5WICRLYW4w
OyIgLy8gS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE1hbDEgJE1hbFYgJE1h
bDA7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRFbW9qaUZvclNl
cXMgJFpXSjsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAg
IiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0
d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFu
ZCBGaXR6cGF0cmljayBtb2RpZmllcgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAg
ICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiWyRF
bW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIhIXNhZmVfZm9y
d2FyZDsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0gICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1v
amlWYXIgJEVtb2ppTW9kc10rOyI7Ci0jZWxzZQotICAgICAgICAiWyRFbW9qaVZhciAkRW1vamlN
b2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlWYXIg
JEVtb2ppTW9kc10rOyIKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiEhc2Fm
ZV9mb3J3YXJkOyI7Ci0jZW5kaWYKLSAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRp
Y0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoa1J1
bGVzKTsKKworICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGl0ZXJhdG9yRm9yUnVsZVNldChCcmVh
a2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50KSkgeworICAgICAgICBpZiAoYXV0byogaXRlcmF0
b3JXaXRoVGV4dCA9IHNldFRleHRGb3JJdGVyYXRvcigqaXRlcmF0b3IsIHN0cmluZykpCisgICAg
ICAgICAgICByZXR1cm4gaXRlcmF0b3JXaXRoVGV4dDsKKyAgICAgICAgdWJya19jbG9zZShyZWlu
dGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpKTsKKyAgICB9CisKKyAgICBz
dGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBp
bml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzKTsK
ICNlbHNlIC8vIFBMQVRGT1JNKElPUykKICAgICAvLyBVc2UgdGhlIHNwZWNpYWwgVGhhaSBjaGFy
YWN0ZXIgYnJlYWsgaXRlcmF0b3IgZm9yIGFsbCBsb2NhbGVzCiAgICAgc3RhdGljIFRleHRCcmVh
a0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJh
dG9yKFVCUktfQ0hBUkFDVEVSLCAidGgiKTsKQEAgLTMxNyw0NDIgKzIwMywyMCBAQCB2b2lkIHJl
bGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiAgICAg
TGluZUJyZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQb29sKCkucHV0KGl0ZXJhdG9yKTsKIH0KIAot
c3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UHJvbG9ndWUgPQotICAgICIhIWNoYWluOyIKLSAgICAi
ISFMQkNNTm9DaGFpbjsiCi0gICAgIiEhbG9va0FoZWFkSGFyZEJyZWFrOyI7Ci0KLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQmVmb3JlID0KLSAgICAvLyBleHBsaWNpdGx5IGVu
dW1lcmF0ZSAkQ0ogc2luY2UgSUNVIHZlcnNpb25zIHByaW9yIHRvIDQ5IGRvbid0IHN1cHBvcnQg
OkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOgotICAgICIkQ0ogPSBbIgot
I2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5P
Ul9OVU0gPj0gOSkKLSAgICAiOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVy
OiIKLSNlbHNlCi0gICAgIlxcdTMwNDFcXHUzMDQzXFx1MzA0NVxcdTMwNDdcXHUzMDQ5XFx1MzA2
M1xcdTMwODNcXHUzMDg1XFx1MzA4N1xcdTMwOEVcXHUzMDk1XFx1MzA5NlxcdTMwQTFcXHUzMEEz
XFx1MzBBNVxcdTMwQTciCi0gICAgIlxcdTMwQTlcXHUzMEMzXFx1MzBFM1xcdTMwRTVcXHUzMEU3
XFx1MzBFRVxcdTMwRjVcXHUzMEY2XFx1MzBGQyIKLSAgICAiXFx1MzFGMFxcdTMxRjFcXHUzMUYy
XFx1MzFGM1xcdTMxRjRcXHUzMUY1XFx1MzFGNlxcdTMxRjdcXHUzMUY4XFx1MzFGOVxcdTMxRkFc
XHUzMUZCXFx1MzFGQ1xcdTMxRkRcXHUzMUZFXFx1MzFGRiIKLSAgICAiXFx1RkY2N1xcdUZGNjhc
XHVGRjY5XFx1RkY2QVxcdUZGNkJcXHVGRjZDXFx1RkY2RFxcdUZGNkVcXHVGRjZGXFx1RkY3MCIK
LSNlbmRpZgotICAgICJdOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tTG9vc2VDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAg
IiRFWF9TVUIgPSBbXFx1MDAyMVxcdTAwM0ZcXHVGRjAxXFx1RkYxRl07IgotICAgICIkSURfU1VC
ID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIg
PSBbXFx1MDAzQVxcdTAwM0JdOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUyMDNDXFx1MjA0N1xcdTIw
NDhcXHUyMDQ5XFx1MzAwNVxcdTMwMUNcXHUzMDNCXFx1MzA5RFxcdTMwOUVcXHUzMEEwXFx1MzBG
QlxcdTMwRkRcXHUzMEZFXFx1RkYxQVxcdUZGMUJcXHVGRjY1XTsiCi0gICAgIiRQT19TVUIgPSBb
XFx1MDAyNVxcdTAwQTJcXHUwMEIwXFx1MjAzMFxcdTIwMzJcXHUyMDMzXFx1MjEwM1xcdUZGMDVc
XHVGRkUwXTsiCi0gICAgIiRQUl9TVUIgPSBbXFx1MDAyNFxcdTAwQTNcXHUwMEE1XFx1MjBBQ1xc
dTIxMTZcXHVGRjA0XFx1RkZFMVxcdUZGRTVdOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NV
QiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07IgotICAg
ICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHND
dXN0b21Mb29zZU5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAn
JzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZd
OyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDA1XFx1MzAzQlxc
dTMwOURcXHUzMDlFXFx1MzBGRFxcdTMwRkVdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAi
JFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsiCi0g
ICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50
c0N1c3RvbU5vcm1hbENKSyA9Ci0gICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAg
ICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcn
OyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDFDXFx1MzBBMF07
IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQURE
ID0gWyRDSiAkQkFfU1VCICROU19TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRp
YyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pLID0KLSAgICAi
JEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIK
LSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9
ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElE
X0FERCA9IFskQ0pdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFy
KiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIK
LSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9
ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBP
X1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9ICcnOyIKLSAg
ICAiJE5TX0FERCA9IFskQ0pdOyI7Ci0KLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0
cmljdE5vbkNKSyAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksKLSNkZWZpbmUg
dWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHRDSksgICAgICAgIHVheDE0QXNzaWdubWVudHND
dXN0b21Ob3JtYWxDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25D
SksgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSksKLQotc3RhdGljIGNvbnN0
IGNoYXIqIHVheDE0QXNzaWdubWVudHNBZnRlciA9Ci0gICAgIiRBSSA9IFs6TGluZUJyZWFrID0g
QW1iaWd1b3VzOl07IgotICAgICIkQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsiCi0g
ICAgIiRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsiCi0gICAg
IiRCQiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07IgotICAgICIkQksgPSBbOkxpbmVC
cmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOyIKLSAgICAiJEIyID0gWzpMaW5lQnJlYWsgPSBCcmVh
a19Cb3RoOl07IgotICAgICIkQ0IgPSBbOkxpbmVCcmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsi
Ci0gICAgIiRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246XTsiCi0gICAgIiRD
TSA9IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsiCi0gICAgIiRDUCA9IFs6TGluZUJy
ZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsiCi0gICAgIiRDUiA9IFs6TGluZUJyZWFrID0gQ2Fy
cmlhZ2VfUmV0dXJuOl07IgotICAgICIkRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpd
IC0gJEVYX1NVQl07IgotICAgICIkR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsiCi0jaWYgKFVf
SUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+
PSA5KQotICAgICIkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsiCi0jZWxzZQot
ICAgICIkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1dOyIKLSNlbmRpZgotICAgICIkSFkg
PSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOyIKLSAgICAiJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpd
OyIKLSAgICAiJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOyIKLSAgICAiJElEID0gW1tbWzpMaW5l
QnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOyIKLSAgICAi
JElOID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOyIKLSAgICAiJElT
ID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07IgotICAgICIkSkwg
PSBbOkxpbmVCcmVhayA9IEpMOl07IgotICAgICIkSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07Igot
ICAgICIkSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07IgotICAgICIkTEYgPSBbOkxpbmVCcmVhayA9
IExpbmVfRmVlZDpdOyIKLSAgICAiJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsiCi0g
ICAgIiROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAt
ICROU19TVUJdOyIKLSAgICAiJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07IgotICAgICIk
T1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsiCi0gICAgIiRQTyA9IFtbOkxp
bmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07IgotICAgICIkUFIgPSBbWzpM
aW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07IgotICAgICIkUVUgPSBbOkxp
bmVCcmVhayA9IFF1b3RhdGlvbjpdOyIKLSAgICAiJFJJID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFG
MUZGXTsiCi0gICAgIiRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAg
ICIkU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOyIKLSAgICAiJFNQID0gWzpMaW5lQnJl
YWsgPSBTcGFjZTpdOyIKLSAgICAiJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07
IgotICAgICIkV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9pbmVyOl07IgotICAgICIkWFggPSBb
OkxpbmVCcmVhayA9IFVua25vd246XTsiCi0gICAgIiRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFj
ZTpdOyIKLSAgICAiJFpXSiA9IFxcdTIwMEQ7IgotICAgICIkRW1vamlWYXIgPSBcXHVGRTBGOyIK
LSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUy
NjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAw
MDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxc
VTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcx
IFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFG
NDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAw
MDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxc
VTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2XTsiIC8vIEVtb2ppIHRoYXQgcGFydGlj
aXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1
MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQg
XFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0
NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAw
MUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxV
MDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUg
XFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2
NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAw
MUY5MThdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNl
Ci0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBc
XFUwMDAxRjQ4Ql07IgotICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1cXHUy
NzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxcVTAw
MDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxc
VTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdD
IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFG
NEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAw
MDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwXSA7
IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAgICAi
JEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07IgotICAgICIkZGljdGlvbmFy
eSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIkQUxQbHVzID0gWyRB
TCAkQUkgJFNBICRTRyAkWFhdOyIKLSAgICAiJEFMY20gPSAkQUxQbHVzICRDTSo7IgotICAgICIk
QkFjbSA9ICRCQSAkQ00qOyIKLSAgICAiJEJCY20gPSAkQkIgJENNKjsiCi0gICAgIiRCMmNtID0g
JEIyICRDTSo7IgotICAgICIkQ0xjbSA9ICRDTCAkQ00qOyIKLSAgICAiJENQY20gPSAkQ1AgJENN
KjsiCi0gICAgIiRFWGNtID0gJEVYICRDTSo7IgotICAgICIkR0xjbSA9ICRHTCAkQ00qOyIKLSAg
ICAiJEhMY20gPSAkSEwgJENNKjsiCi0gICAgIiRIWWNtID0gJEhZICRDTSo7IgotICAgICIkSDJj
bSA9ICRIMiAkQ00qOyIKLSAgICAiJEgzY20gPSAkSDMgJENNKjsiCi0gICAgIiRJRGNtID0gJElE
ICRDTSo7IgotICAgICIkSU5jbSA9ICRJTiAkQ00qOyIKLSAgICAiJElTY20gPSAkSVMgJENNKjsi
Ci0gICAgIiRKTGNtID0gJEpMICRDTSo7IgotICAgICIkSlZjbSA9ICRKViAkQ00qOyIKLSAgICAi
JEpUY20gPSAkSlQgJENNKjsiCi0gICAgIiROU2NtID0gJE5TICRDTSo7IgotICAgICIkTlVjbSA9
ICROVSAkQ00qOyIKLSAgICAiJE9QY20gPSAkT1AgJENNKjsiCi0gICAgIiRQT2NtID0gJFBPICRD
TSo7IgotICAgICIkUFJjbSA9ICRQUiAkQ00qOyIKLSAgICAiJFFVY20gPSAkUVUgJENNKjsiCi0g
ICAgIiRSSWNtID0gJFJJICRDTSo7IgotICAgICIkU1ljbSA9ICRTWSAkQ00qOyIKLSAgICAiJFdK
Y20gPSAkV0ogJENNKjsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRGb3J3YXJkID0KLSAg
ICAiISFmb3J3YXJkOyIKLSAgICAiJENBTl9DTSA9IFteJFNQICRCSyAkQ1IgJExGICROTCAkWlcg
JENNXTsiCi0gICAgIiRDQU5UX0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07Igot
ICAgICIkQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOyIKLSAgICAi
JEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRTWSAkV0ogJEdMICRPUCAkUVUg
JEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsiCi0gICAgIiRBTF9GT0xMT1cgPSBbJEFMX0ZP
TExPV19OT0NNICRBTF9GT0xMT1dfQ01dOyIKLSAgICAiJExCNEJyZWFrcyA9IFskQksgJENSICRM
RiAkTkxdOyIKLSAgICAiJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5MXTsiCi0gICAg
IiRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOyIKLSAgICAiJExCOE5vbkJyZWFrcyA9IFtb
JExCNE5vbkJyZWFrc10gLSBbJFpXXV07IgotICAgICIkTEIxOE5vbkJyZWFrcyA9IFskTEI4Tm9u
QnJlYWtzIC0gWyRTUF1dOyIKLSAgICAiJExCMThCcmVha3MgPSBbJExCOEJyZWFrcyAkU1BdOyIK
LSAgICAiJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVha3MgLSAkQ0JdOyIKLSAgICAiJEFM
UGx1cyAkQ00rOyIKLSAgICAiJEJBICRDTSs7IgotICAgICIkQkIgJENNKzsiCi0gICAgIiRCMiAk
Q00rOyIKLSAgICAiJENMICRDTSs7IgotICAgICIkQ1AgJENNKzsiCi0gICAgIiRFWCAkQ00rOyIK
LSAgICAiJEdMICRDTSs7IgotICAgICIkSEwgJENNKzsiCi0gICAgIiRIWSAkQ00rOyIKLSAgICAi
JEgyICRDTSs7IgotICAgICIkSDMgJENNKzsiCi0gICAgIiRJRCAkQ00rOyIKLSAgICAiJElOICRD
TSs7IgotICAgICIkSVMgJENNKzsiCi0gICAgIiRKTCAkQ00rOyIKLSAgICAiJEpWICRDTSs7Igot
ICAgICIkSlQgJENNKzsiCi0gICAgIiROUyAkQ00rOyIKLSAgICAiJE5VICRDTSs7IgotICAgICIk
T1AgJENNKzsiCi0gICAgIiRQTyAkQ00rOyIKLSAgICAiJFBSICRDTSs7IgotICAgICIkUVUgJENN
KzsiCi0gICAgIiRSSSAkQ00rOyIKLSAgICAiJFNZICRDTSs7IgotICAgICIkV0ogJENNKzsiCi0g
ICAgIiRDUiAkTEYgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzPyAkTEI0QnJlYWtzIHsxMDB9
OyIKLSAgICAiJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEwMH07IgotICAgICIkQ00rICRMQjRC
cmVha3MgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsiCi0gICAgIiRDQU5f
Q00gJENNKiBbJFNQICRaV107IgotICAgICIkQ00rIFskU1AgJFpXXTsiCi0gICAgIiRFbW9qaUZv
clNlcXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7IgotICAgICIk
Q0FOX0NNICRDTSs7IgotICAgICIkQ00rOyIKLSAgICAiJENBTl9DTSAkQ00qICRXSmNtOyIKLSAg
ICAiJExCOE5vbkJyZWFrcyAkV0pjbTsiCi0gICAgIiRDTSsgJFdKY207IgotICAgICIkV0pjbSAk
Q0FOVF9DTTsiCi0gICAgIiRXSmNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5fQ00g
JENNKjsiCi0gICAgIiRHTGNtICRDQU5UX0NNOyIKLSAgICAiW1skTEI4Tm9uQnJlYWtzXSAtIFsk
U1AgJEJBICRIWV1dICRDTSogJEdMY207IgotICAgICIkQ00rIEdMY207IgotICAgICIkTEI4Tm9u
QnJlYWtzICRDTDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ0w7IgotICAgICIkQ00rICRDTDsiCi0g
ICAgIiRMQjhOb25CcmVha3MgJENQOyIKLSAgICAiJENBTl9DTSAkQ00qICRDUDsiCi0gICAgIiRD
TSsgJENQOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkRVg7IgotICAgICIkQ0FOX0NNICRDTSogJEVY
OyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkTEI4Tm9uQnJlYWtzICRJUzsiCi0gICAgIiRDQU5f
Q00gJENNKiAkSVM7IgotICAgICIkQ00rICRJUzsiCi0gICAgIiRMQjhOb25CcmVha3MgJFNZOyIK
LSAgICAiJENBTl9DTSAkQ00qICRTWTsiCi0gICAgIiRDTSsgJFNZOyIKLSAgICAiJE9QY20gJFNQ
KiAkQ0FOX0NNICRDTSo7IgotICAgICIkT1BjbSAkU1AqICRDQU5UX0NNOyIKLSAgICAiJE9QY20g
JFNQKyAkQ00rICRBTF9GT0xMT1c/OyIKLSAgICAiJFFVY20gJFNQKiAkT1BjbTsiCi0gICAgIigk
Q0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOyIKLSAgICAiJEIyY20gJFNQKiAkQjJjbTsiCi0gICAg
IiRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207IgotICAgICIkQ00rICRRVWNtOyIKLSAgICAiJFFV
Y20gLj87IgotICAgICIkUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJExCMjBOb25C
cmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsgIgotICAgICIkQkJjbSBbXiRDQl07
IgotICAgICIkQkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJEhMY20gKCRIWWNtIHwg
JEJBY20pIFteJENCXT87IgotICAgICIkU1ljbSAkSExjbTsiCi0gICAgIigkQUxjbSB8ICRITGNt
KSAkSU5jbTsiCi0gICAgIiRDTSsgJElOY207IgotICAgICIkRVhjbSAkSU5jbTsiCi0gICAgIiRJ
RGNtICRJTmNtOyIKLSAgICAiJElOY20gJElOY207IgotICAgICIkTlVjbSAkSU5jbTsiCi0gICAg
IiRJRGNtICRQT2NtOyIKLSAgICAiJEFMY20gJE5VY207IgotICAgICIkSExjbSAkTlVjbTsiCi0g
ICAgIiRDTSsgJE5VY207IgotICAgICIkTlVjbSAkQUxjbTsiCi0gICAgIiROVWNtICRITGNtOyIK
LSAgICAiJFBSY20gJElEY207IgotICAgICIkUFJjbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIk
UE9jbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJFBSY20gfCAkUE9jbSk/ICgkT1BjbSB8ICRI
WWNtKT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRDUGNtKT8gKCRQ
UmNtIHwgJFBPY20pPzsiCi0gICAgIiRKTGNtICgkSkxjbSB8ICRKVmNtIHwgJEgyY20gfCAkSDNj
bSk7IgotICAgICIoJEpWY20gfCAkSDJjbSkgKCRKVmNtIHwgJEpUY20pOyIKLSAgICAiKCRKVGNt
IHwgJEgzY20pICRKVGNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwg
JEgzY20pICRJTmNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgz
Y20pICRQT2NtOyIKLSAgICAiJFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwg
JEgzY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRD
TSsgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJElTY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAi
KCRBTGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207IgotICAgICIkQ00rICRPUGNtOyIKLSAgICAi
JENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVAotICAgICIkUkljbSAkUkljbTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppRm9yTW9kcyAkRW1v
amlWYXI/ICRFbW9qaU1vZHM7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UmV2ZXJzZSA9
Ci0gICAgIiEhcmV2ZXJzZTsiCi0gICAgIiRDTSsgJEFMUGx1czsiCi0gICAgIiRDTSsgJEJBOyIK
LSAgICAiJENNKyAkQkI7IgotICAgICIkQ00rICRCMjsiCi0gICAgIiRDTSsgJENMOyIKLSAgICAi
JENNKyAkQ1A7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRDTSsgJEdMOyIKLSAgICAiJENNKyAk
SEw7IgotICAgICIkQ00rICRIWTsiCi0gICAgIiRDTSsgJEgyOyIKLSAgICAiJENNKyAkSDM7Igot
ICAgICIkQ00rICRJRDsiCi0gICAgIiRDTSsgJElOOyIKLSAgICAiJENNKyAkSVM7IgotICAgICIk
Q00rICRKTDsiCi0gICAgIiRDTSsgJEpWOyIKLSAgICAiJENNKyAkSlQ7IgotICAgICIkQ00rICRO
UzsiCi0gICAgIiRDTSsgJE5VOyIKLSAgICAiJENNKyAkT1A7IgotICAgICIkQ00rICRQTzsiCi0g
ICAgIiRDTSsgJFBSOyIKLSAgICAiJENNKyAkUVU7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVAotICAgICIkQ00rICRSSTsiCi0jZW5kaWYKLSAgICAiJENNKyAkU1k7IgotICAgICIkQ00r
ICRXSjsiCi0gICAgIiRDTSs7IgotICAgICIkQUxfRk9MTE9XICRDTSsgLyAoWyRCSyAkQ1IgJExG
ICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14kT1AgJENNICRT
UF0gfCBbJEFMIHtlb2Z9XSkpOyIKLSAgICAiWyRQUl0gLyAkQ00rIFskQksgJENSICRMRiAkTkwg
JFpXICRTUCB7ZW9mfV07IgotICAgICIkTEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtzLSRDTV07Igot
ICAgICIkTEI0QnJlYWtzICRDTSsgJENBTl9DTTsiCi0gICAgIiRMRiAkQ1I7IgotICAgICJbJFNQ
ICRaV10gWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIlskU1AgJFpXXSAkQ00rICRDQU5fQ007
IgotICAgICIkRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2ppVmFyPyAkRW1vamlG
b3JTZXFzOyIKLSAgICAiJENNKyAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogJENNKiAkQ0FOX0NN
OyIKLSAgICAiJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRDQU5UX0NNICRD
TSogJFdKOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkR0wgJENN
KiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZXV07IgotICAgICIkQ0FOVF9DTSAkQ00q
ICRHTDsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRHTDsiCi0gICAgIiRDTCAkQ00rICRDQU5f
Q007IgotICAgICIkQ1AgJENNKyAkQ0FOX0NNOyIKLSAgICAiJEVYICRDTSsgJENBTl9DTTsiCi0g
ICAgIiRJUyAkQ00rICRDQU5fQ007IgotICAgICIkU1kgJENNKyAkQ0FOX0NNOyIKLSAgICAiJENM
IFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ1AgWyRMQjhOb25CcmVha3MtJENNXTsiCi0g
ICAgIiRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJElTIFskTEI4Tm9uQnJlYWtzLSRD
TV07IgotICAgICIkU1kgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIlskQ0wgJENQICRFWCAk
SVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7ICIKLSAgICAiJENNKiAkQ0FOX0NNICRTUCogJENN
KiAkT1A7IgotICAgICIkQ0FOVF9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAiJEFMX0ZPTExPVz8g
JENNKyAkU1AgJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xMT1dfTk9DTSAkQ00rICRTUCsg
JENNKiAkT1A7IgotICAgICIkQ00qICRBTF9GT0xMT1dfQ00gJENNKyAkU1ArICRDTSogJE9QOyIK
LSAgICAiJFNZICRDTSAkU1ArICRPUDsiCi0gICAgIiRDTSogJE9QICRTUCogJENNKiAkUVU7Igot
ICAgICIkQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIkQ00qICRCMiAkU1Aq
ICRDTSogJEIyOyIKLSAgICAiJENNKiAkUVUgJENNKiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkUVUg
JExCMThOb25CcmVha3M7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkUVU7IgotICAgICIkQ0FO
VF9DTSAkQ00qICRRVTsiCi0gICAgIiRDTSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBbJExCMjBO
b25CcmVha3MtJENNXTsiCi0gICAgIiRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV0gJENNKiAkQkI7
IgotICAgICJbXiRDQl0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAoJEhZIHwgJEJBKSAk
Q00qICRITDsiCi0gICAgIiRDTSogJEhMICRDTSogJFNZOyIKLSAgICAiJENNKiAkSU4gJENNKiAo
JEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICRJTiAkQ00qICRFWDsiCi0gICAgIiRDTSogJElO
ICRDTSogJElEOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSU47IgotICAgICIkQ00qICRJTiAkQ00q
ICROVTsiCi0gICAgIiRDTSogJFBPICRDTSogJElEOyIKLSAgICAiJENNKiAkTlUgJENNKiAoJEFM
UGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICROVTsiCi0gICAg
IiRDTSogJElEICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUFI7
IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQTzsiCi0gICAgIigkQ00qICgkUFIg
fCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElTIHwgJFNZKSkqICRD
TSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykpPzsiCi0gICAgIiRD
TSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7IgotICAgICIkQ00qICgkSlQgfCAk
SlYpICRDTSogKCRIMiB8ICRKVik7IgotICAgICIkQ00qICRKVCAkQ00qICgkSDMgfCAkSlQpOyIK
LSAgICAiJENNKiAkSU4gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsiCi0gICAg
IiRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7IgotICAgICIkQ00q
ICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFM
UGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwg
JEhMKSAkQ00qICRJUzsiCi0gICAgIiRDTSogJE9QICRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUp
OyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7IgotI2lmIEFERElU
SU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00qICRSSSAkQ00qICRSSTsiCi0jZW5kaWYKLSAg
ICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7IjsKLQotc3RhdGljIGNvbnN0
IGNoYXIqIHVheDE0U2FmZUZvcndhcmQgPQotICAgICIhIXNhZmVfZm9yd2FyZDsiCi0gICAgIlsk
Q00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnldKyBbXiRD
TSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsiCi0gICAgIiRk
aWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVS
ZXZlcnNlID0KLSAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICIkQ00rIFteJENNICRCSyAkQ1Ig
JExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRDTSsgJFNQIC8gLjsiCi0gICAgIiRTUCsgJENNKiAk
T1A7IgotICAgICIkU1ArICRDTSogJFFVOyIKLSAgICAiJFNQKyAkQ00qICgkQ0wgfCAkQ1ApOyIK
LSAgICAiJFNQKyAkQ00qICRCMjsiCi0gICAgIiRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7Igot
ICAgICIoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOyIKLSAgICAiKCRDTCB8ICRDUCkgJENN
KiAoJE5VIHwgJElTIHwgJFNZKTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0K
IHN0YXRpYyBTdHJpbmcgbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMoTGluZUJyZWFrSXRlcmF0
b3JNb2RlIG1vZGUsIGJvb2wgaXNDSkspCiB7Ci0gICAgU3RyaW5nQnVpbGRlciBydWxlc0J1aWxk
ZXI7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFByb2xvZ3VlKTsKLSAgICBydWxlc0J1
aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNCZWZvcmUpOwogICAgIHN3aXRjaCAobW9kZSkg
ewogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTQ6Ci0gICAgICAgIHJ1bGVzQnVp
bGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdENKSyA6IHVh
eDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAg
ICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSktSdWxlcyA6IGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9y
TW9kZVVBWDE0TG9vc2U6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgx
NEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VO
b25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlQ0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VO
b25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0Tm9ybWFsOgot
ICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3Rv
bU5vcm1hbENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxOb25DSkspOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOwog
ICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRTdHJpY3Q6Ci0gICAgICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLIDog
dWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAg
ICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLUnVsZXMg
OiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CiAgICAgfQotICAgIHJ1
bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0FmdGVyKTsKLSAgICBydWxlc0J1aWxk
ZXIuYXBwZW5kKHVheDE0Rm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFJl
dmVyc2UpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZlRm9yd2FyZCk7Ci0gICAg
cnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVSZXZlcnNlKTsKLSAgICByZXR1cm4gcnVsZXNC
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
ICIiOwogfQogCiAvLyBSZWNvZ25pemUgQkNQNDcgY29tcGxpYW50IHByaW1hcnkgbGFuZ3VhZ2Ug
dmFsdWVzIG9mICd6aCcsICdqYScsICdrbycKQEAgLTc4Niw2ICsyNTAsMjQgQEAgVGV4dEJyZWFr
SXRlcmF0b3IqIG9wZW5MaW5lQnJlYWtJdGVyYXRvcihjb25zdCBBdG9taWNTdHJpbmcmIGxvY2Fs
ZSwgTGluZUJyZWFrSXQKICAgICBpZiAobW9kZSA9PSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgx
NCkKICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBsb2NhbGVJc0VtcHR5
ID8gY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkgOiBsb2NhbGUuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOwogICAgIGVsc2UgeworICAgICAgICBCcmVha2luZ1J1
bGVTZXQgcnVsZVNldDsKKyAgICAgICAgc3dpdGNoIChtb2RlKSB7CisgICAgICAgIGNhc2UgTGlu
ZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTQ6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBC
cmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVB
WDE0TG9vc2U6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6
OlVBWDE0TG9vc2VDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNE5v
cm1hbDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFY
MTROb3JtYWxDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pLOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRTdHJp
Y3Q6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0
U3RyaWN0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdE5vbkNKSzsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGl0ZXJh
dG9yRm9yUnVsZVNldChydWxlU2V0KSkKKyAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcjsKKwog
ICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKICAgICAgICAgYXV0byBydWxlcyA9IG1h
cExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsKICAgICAgICAgdWJya0l0ZXIg
PSB1YnJrX29wZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMo
KSwgcnVsZXMubGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0dXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oIGIvU291cmNl
L1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCmluZGV4IGQ5MDMyMTVhZTQxMzdlNGMz
YTllYTM1YjNkMDI1YmY1MmU0NTE4ZWMuLmQyZDA3YzI4ZmI4ZDQwOTllZTk2OWMyMGY1ODQ4OTIy
OGZiMDA3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKQEAgLTM4
LDYgKzM4LDMwIEBAIGVudW0gTGluZUJyZWFrSXRlcmF0b3JNb2RlIHsKICAgICBMaW5lQnJlYWtJ
dGVyYXRvck1vZGVVQVgxNFN0cmljdCwKIH07CiAKK2VudW0gY2xhc3MgQnJlYWtpbmdSdWxlU2V0
IHsKKyAgICBDdXJzb3JNb3ZlbWVudCwKKyAgICBVQVgxNENKSywKKyAgICBVQVgxNE5vbkNKSywK
KyAgICBVQVgxNExvb3NlQ0pLLAorICAgIFVBWDE0TG9vc2VOb25DSkssCisgICAgVUFYMTROb3Jt
YWxDSkssCisgICAgVUFYMTROb3JtYWxOb25DSkssCisgICAgVUFYMTRTdHJpY3RDSkssCisgICAg
VUFYMTRTdHJpY3ROb25DSksKK307CisKK2V4dGVybiBjb25zdCBjaGFyKiBjdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25D
SktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VD
SktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VO
b25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CisKK1RleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvckZvclJ1
bGVTZXQoQnJlYWtpbmdSdWxlU2V0KTsKKwogLy8gVGhpcyBpcyBzaW1pbGFyIHRvIGNoYXJhY3Rl
ciBicmVhayBpdGVyYXRvciBpbiBtb3N0IGNhc2VzLCBidXQgaXMgc3ViamVjdCB0bwogLy8gcGxh
dGZvcm0gVUkgY29udmVudGlvbnMuIE9uZSBub3RhYmxlIGV4YW1wbGUgd2hlcmUgdGhpcyBjYW4g
YmUgZGlmZmVyZW50CiAvLyBmcm9tIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBpcyBUaGFpIHBy
ZXBlbmQgY2hhcmFjdGVycywgc2VlIGJ1ZyAyNDM0Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0gYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCmluZGV4
IGJlZjVkYWE2NDI4ODgyMWUyMGYyNjI4YzY4NTVlZThlODhhMzg5MmMuLjZkZjhjZDYwZDZkMjRm
YzFlMDBjMjYzZDk3Y2Q3NGFmNzY0MTJmYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQpAQCAtMjEs
MTIgKzIxLDc1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRl
cmF0b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKKwor
I2lmIGRlZmluZWQoVV9TSE9XX0NQTFVTUExVU19BUEkpCisjdW5kZWYgVV9TSE9XX0NQTFVTUExV
U19BUEkKKyNlbmRpZgorI2RlZmluZSBVX1NIT1dfQ1BMVVNQTFVTX0FQSSAxCisKKyNpbmNsdWRl
IDx1bmljb2RlL3JiYmkuaD4KKyNpbmNsdWRlIDx1bmljb2RlL3VkYXRhLmg+CiAjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgogCitAaW50ZXJmYWNlIFdURkJ1bmRsZUZpbmRlciA6IE5TT2JqZWN0
CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXVEZCdW5kbGVGaW5kZXIKK0BlbmQKKwogbmFtZXNw
YWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdCBpbnQgbWF4TG9jYWxlU3RyaW5nTGVuZ3RoID0gMzI7
CiAKK1RleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0
IHJ1bGVTZXQpCit7CisgICAgTlNTdHJpbmcgKmZpbGVOYW1lQmFzZTsKKyAgICBzd2l0Y2ggKHJ1
bGVTZXQpIHsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQ6CisgICAg
ICAgIGZpbGVOYW1lQmFzZSA9IEAiQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzIjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLOgorICAgICAgICBm
aWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksiOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks6CisgICAgICAgIGZpbGVO
YW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSyI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLOgorICAgICAgICBmaWxl
TmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSyI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOgorICAgICAg
ICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSyI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbENKSzoK
KyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pL
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFs
Tm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSksiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6
VUFYMTRTdHJpY3RDSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdENKSyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxl
U2V0OjpVQVgxNFN0cmljdE5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisg
ICAgTlNCdW5kbGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV1RGQnVuZGxl
RmluZGVyIGNsYXNzXV07CisgICAgTlNTdHJpbmcgKnBhdGggPSBbYnVuZGxlIHBhdGhGb3JSZXNv
dXJjZTpmaWxlTmFtZUJhc2Ugb2ZUeXBlOkAiYnJrIiBpbkRpcmVjdG9yeTpAIkJyZWFraW5nUnVs
ZXMiXTsKKyAgICBpZiAoIXBhdGgpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIE5TU3Ry
aW5nICpkaXJlY3RvcnkgPSBbcGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRd
OworICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAgIExvY2FsVURh
dGFNZW1vcnlQb2ludGVyIGRhdGEodWRhdGFfb3BlbihbZGlyZWN0b3J5IFVURjhTdHJpbmddLCAi
YnJrIiwgW2ZpbGVOYW1lQmFzZSBVVEY4U3RyaW5nXSwgJmVycm9yQ29kZSkpOworICAgIGlmIChl
cnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBh
dXRvIGl0ZXJhdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPihk
YXRhLm9ycGhhbigpLCBlcnJvckNvZGUpOworICAgIGlmIChlcnJvckNvZGUgIT0gVV9aRVJPX0VS
Uk9SKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxUZXh0QnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yLnJlbGVhc2UoKSk7Cit9CisKIHN0YXRpYyBp
bmxpbmUgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVmZXJlbmNlKCkK
IHsKICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFkb3B0Q0YoQ0ZQ
cmVmZXJlbmNlc0NvcHlWYWx1ZShDRlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUiKSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRG
Uy5jbWFrZQppbmRleCAyOWEwOTY5MDM4ZmFhNzQ0ZTFhOGM1OGYzNTZhZDA3M2YwMDUyNWJkLi44
MWY1NGE1NmFkNjk1M2Q3YjFlMjBjODhmYTg1YmJkZGQxZjA3ZThjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvY21ha2UvV2ViS2l0RlMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtl
CkBAIC0yNCw2ICsyNCw3IEBAIGlmIChOT1QgVE9PTFNfRElSKQogZW5kaWYgKCkKIAogc2V0KERF
UklWRURfU09VUkNFU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMiKQor
c2V0KERFUklWRURfU09VUkNFU19XVEZfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRT
b3VyY2VzL1dURiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUiAiJHtD
TUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZSIpCiBzZXQoREVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJLSVRMRUdBQ1lfRElSICIke0NN
QUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIpCkBAIC0zMiw2ICsz
Myw4IEBAIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVIgIiR7Q01BS0VfQklOQVJZX0RJ
Un0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0MiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQklOU1BF
Q1RPUlVJX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJJbnNwZWN0
b3JVSSIpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQ
VENPUkVfRElSfSkKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJ
Un0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFr
aW5nUnVsZXMpCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0vU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVE
X1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285525</attachid>
            <date>2016-08-07 02:17:14 -0700</date>
            <delta_ts>2016-08-08 01:50:17 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160807021544.patch</filename>
            <type>text/plain</type>
            <size>457732</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NTFhOGVhNzFmOTFiNmU2MWM4MGI2MWVhNDFiZjQ1MWEyNjBjNGM3Li4xNWRkMzYxOTMxODNiMGIz
MmY4ZWE2ZjY3ZGZkYjQ0ODZhYWIyNDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDUgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIExFQkRlY29kZXIgYW5kIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyNmIyZWJmZmUy
Y2FkYTM3Y2NkYWUzY2VkZjZlZmM4NTNiNjE2YjEuLjdlY2MzOTZkZDFhZjQ3NzBmNjg1MjljNWNi
OGM1N2YxNTlmOTMzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgtMDcgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBi
cmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTog
QWRkZWQuCisgICAgICAgICogd3RmL2dlbmJyazogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisg
ICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0
b3IuY3BwOgorICAgICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RG
OjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0
ZXJhdG9yKToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAg
ICAqIHd0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAg
ICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorCiAyMDE2LTA4LTA2ICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV1RGIG5lZWRzIGEgdmFyaWFudCBpbXBsZW1l
bnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMzBkYzllNGQwMjAzNjIw
YjE0Y2EyMjhiNGViMmJiNGZkZWNlZjBkLi4xYWJlNDdjMjQ2NGRhODk4ZmFkNTMwYWNjMzI2Mzdj
OGJkYTYyYzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOSw2ICsxMTA5
LDcgQEAKIAkJMTRGOTc0NDcxMzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhD
ODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBK
U1N0cmluZ1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNG
NzM3NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5j
cHAgKi87IH07CisJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFE
NTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmlu
Z0pvaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2
MkQ4NUI2MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQx
QzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07
CkBAIC0zMjcyLDYgKzMyNzMsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFz
ZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYg
LyogSmF2YVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2Ny
aXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQx
QkNGRiAvKiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKYXZhU2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4
RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7
IHBhdGggPSAuLi9XVEYvQnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9p
bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0
aCA9IGIzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTQzOCw2ICs1NDQwLDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAw
NzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVs
ZXMgKi8sCiAJCQkJMEY2MTgzMzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAog
CQkJCTBGNjE4MzM0MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywK
IAkJCQkwRjYxODMzNTFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAg
LTg0NTcsNiArODQ2MCw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBp
biBSZXNvdXJjZXMgKi8sCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5n
UnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggM2JhODA0MDZiNjg3ODcyY2RjMmUzZTgxNmJlYjAwNDNhOTM5YzI3MC4uYTdj
MmIyMjk4OTE4ZDExMzFjNmM4YzQ2NDcwMGY2YzQ0YmExZmM2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcsMTggQEAKIAlvYmplY3RzID0gewog
CiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2
OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVn
YXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMw
MENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4Nzgy
MUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOwor
CQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCUMyQkE1NDNCMUQ1NzJCRUIwMDBBMzMzMiAvKiBQQlhU
YXJnZXREZXBlbmRlbmN5ICovLAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsK
KwkJCXByb2R1Y3ROYW1lID0gIkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2
MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFn
Z3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBC
OTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtMzEyLDYgKzMyNCwyMCBAQAogCQlBOEE0
NzQ4NzE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlRocmVhZERhdGEuaCAqLzsgfTsKIAkJQThBNDc0OEMxNTFBODI2NDAwNDEyM0ZGIC8qIGNv
bmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1
M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJl
RGVmaW5lcy5oICovOyB9OworCQlDMkJBNTQyNTFENTcyNUM0MDAwQTMzMzIgLyogZ2VuYnJrLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1NDE4
MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsuY3BwICovOyB9OworCQlDMkJBNTQzMTFENTcyOEI4
MDAwQTMzMzIgLyogbGliaWN1Y29yZS50YmQgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkJBNTQzMDFENTcyOEI4MDAwQTMzMzIgLyogbGliaWN1Y29y
ZS50YmQgKi87IH07CisJCUMyQkE1NDMzMUQ1NzI5MzgwMDBBMzMzMiAvKiB1b3B0aW9ucy5jIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCQTU0MzIxRDU3
MjkzODAwMEEzMzMyIC8qIHVvcHRpb25zLmMgKi87IH07CisJCUMyQkE1NDM2MUQ1NzI5RkYwMDBB
MzMzMiAvKiB1bmV3ZGF0YS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzJCQTU0MzUxRDU3MjlGRjAwMEEzMzMyIC8qIHVuZXdkYXRhLmMgKi87IH07CisJ
CUMyQkE1NDM5MUQ1NzJBRjgwMDBBMzMzMiAvKiBmaWxlc3RybS5jIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJCQTU0MzgxRDU3MkFGODAwMEEzMzMyIC8q
IGZpbGVzdHJtLmMgKi87IH07CisJCUMyQ0EzN0U5MUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy5jcHAgKi87IH07CisJCUMyQ0EzN0VBMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUMxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMzFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLzsgfTsK
KwkJQzJDQTM3RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25D
SksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJD
QTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3Bw
ICovOyB9OworCQlDMkNBMzdFRTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RjAxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTcxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwICovOyB9Owor
CQlDMkNBMzdGMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMkNBMzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKSy5jcHAgKi87IH07CiAJCUM0RjhBOTM3MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0
Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM0RjhB
OTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLzsgfTsKIAkJQ0Q1NDk3QUMxNTg1
N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1l
LmNwcCAqLzsgfTsKIAkJQ0Q1NDk3QUQxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NDk3QUIxNTg1
N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICovOyB9OwpAQCAtMzQ0LDYgKzM3MCwxMyBAQAog
CQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzY7CiAJCQly
ZW1vdGVJbmZvID0gV1RGOwogCQl9OworCQkxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJY
Q29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5
OworCQkJY29udGFpbmVyUG9ydGFsID0gNUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2pl
Y3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5n
ID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDOworCQkJcmVtb3RlSW5mbyA9ICJEZXJpdmVkIFNv
dXJjZXMiOworCQl9OwogCQk2NUFGQTI4RDE2MzBCOTlFMDAzRDcyM0MgLyogUEJYQ29udGFpbmVy
SXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJY29u
dGFpbmVyUG9ydGFsID0gNUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0
ICovOwpAQCAtMzUxLDggKzM4NCwyNyBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA2NUFG
QTE2RjE2MzBCOTc3MDAzRDcyM0M7CiAJCQlyZW1vdGVJbmZvID0gIkNvcHkgSGVhZGVycyI7CiAJ
CX07CisJCUMyQkE1NDNBMUQ1NzJCRUIwMDBBMzMzMiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkg
Ki8gPSB7CisJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250YWluZXJQb3J0
YWwgPSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBvYmplY3QgKi87CisJCQlw
cm94eVR5cGUgPSAxOworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSBDMkJBNTQxQzFENTcyNUI0
MDAwQTMzMzI7CisJCQlyZW1vdGVJbmZvID0gZ2VuYnJrOworCQl9OwogLyogRW5kIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCiAKKy8qIEJlZ2luIFBCWENvcHlGaWxlc0J1aWxkUGhh
c2Ugc2VjdGlvbiAqLworCQlDMkJBNTQxQjFENTcyNUI0MDAwQTMzMzIgLyogQ29weUZpbGVzICov
ID0geworCQkJaXNhID0gUEJYQ29weUZpbGVzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFz
ayA9IDIxNDc0ODM2NDc7CisJCQlkc3RQYXRoID0gL3Vzci9zaGFyZS9tYW4vbWFuMS87CisJCQlk
c3RTdWJmb2xkZXJTcGVjID0gMDsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAxOworCQl9OworLyogRW5kIFBCWENvcHlGaWxlc0J1
aWxkUGhhc2Ugc2VjdGlvbiAqLworCiAvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24g
Ki8KIAkJMEYwRDg1QjMxNzIzNENCMTAwMzM4MjEwIC8qIE5vTG9jay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOb0xvY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyQjY2QTQxN0I2QjRG
NzAwQTdBRTNGIC8qIERlZmVycmFibGVSZWZDb3VudGVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlZmVy
cmFibGVSZWZDb3VudGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MzYsNiAr
NDg4LDE4IEBACiAJCTFDMTgxQzhEMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRG
MTYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVRleHRQcm92aWRl
clVURjE2LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMxODFDOEUxRDMwN0FC
ODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBVVGV4dFByb3ZpZGVyVVRGMTYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUMxODFDOTUxRDMwODAwQTAwRjVGQTE2IC8qIFRleHRCcmVha0l0ZXJhdG9ySW50ZXJu
YWxJQ1VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXh0
QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOyBwYXRoID0gbWFjL1RleHRCcmVha0l0ZXJh
dG9ySW50ZXJuYWxJQ1VNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRG
Qjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQ0I0RkI5NjFENTU5QTkwMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NzFENTU5QUE4
MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0OyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5ODFENTU5QUQyMDBGOUZFMzggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3RDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QjFENTU5
QjNFMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlDMUQ1NTlCNjcwMEY5RkUz
OCAvKiBMaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBMaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhtbDsg
bmFtZSA9IERlcml2ZWRTb3VyY2VzLm1ha2U7IHBhdGggPSB3dGYvRGVyaXZlZFNvdXJjZXMubWFr
ZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdXNlc1RhYnMgPSAxOyB9OworCQkxQ0QxODc5MjFE
NTU5OEUxMDBDQzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBD
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQ0QxODc5MzFENTU5OTY1MDBDQzdERUMgLyogTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1
ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg4MTUyNTAyREEwMDU2OEQx
QiAvKiBXZWJDb3JlVGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkNvcmVUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkE0
N0M4OTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI2MTQ3QjA4MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdDb252ZXJz
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludGVnZXJUb1N0cmluZ0Nv
bnZlcnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1OCw2ICs3MjIsMzMg
QEAKIAkJQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV1RGVGhyZWFkRGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBOEE0NzQ4QjE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCMzhGRDdCQzE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmVhdHVyZURlZmluZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MTgxRDU3MjU5MDAwMEEzMzMyIC8qIGdl
bmJyay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBnZW5icmsuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDMkJBNTQxRDFENTcyNUI0MDAwQTMzMzIgLyogZ2VuYnJrICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1v
LmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBnZW5icms7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUMyQkE1NDI2MUQ1NzI2N0MwMDBBMzMzMiAv
KiB1b3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1b3B0aW9ucy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyNzFENTcyNjg5MDAwQTMzMzIg
LyogdW5ld2RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdW5ld2RhdGEu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MjgxRDU3MjZCMDAwMEEzMzMy
IC8qIHVjbW5kYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVjbW5kYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDI5MUQ1NzI2QkMwMDBBMzMz
MiAvKiByYmJpZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSByYmJpZGF0
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyQTFENTcyNkM1MDAwQTMz
MzIgLyogY21lbW9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBjbWVtb3J5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDJCMUQ1NzI2RTgwMDBBMzMz
MiAvKiB1bWFwZmlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1bWFwZmls
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyQzFENTcyNzA5MDAwQTMz
MzIgLyogcHV0aWxpbXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcHV0aWxp
bXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MkQxRDU3MjcyNDAwMEEz
MzMyIC8qIHVkYXRhc3dwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVkYXRh
c3dwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDJFMUQ1NzI3M0IwMDBB
MzMzMiAvKiB1bXV0ZXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdW11dGV4
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDJGMUQ1NzI3NEMwMDBBMzMz
MiAvKiB1dHJpZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1dHJpZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQzMDFENTcyOEI4MDAwQTMzMzIgLyog
bGliaWN1Y29yZS50YmQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSAic291cmNlY29kZS50ZXh0LWJhc2VkLWR5bGliLWRlZmluaXRpb24iOyBuYW1lID0g
bGliaWN1Y29yZS50YmQ7IHBhdGggPSB1c3IvbGliL2xpYmljdWNvcmUudGJkOyBzb3VyY2VUcmVl
ID0gU0RLUk9PVDsgfTsKKwkJQzJCQTU0MzIxRDU3MjkzODAwMEEzMzMyIC8qIHVvcHRpb25zLmMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHVvcHRpb25zLmM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDM0MUQ1NzI5QTkwMDBBMzMzMiAvKiBjc3RyaW5nLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNzdHJpbmcuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MzUxRDU3MjlGRjAwMEEzMzMyIC8qIHVuZXdkYXRhLmMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHVuZXdkYXRhLmM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDM3MUQ1NzJBMkQwMDBBMzMzMiAvKiBmaWxlc3RybS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBmaWxlc3RybS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQzODFENTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0u
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gZmlsZXN0cm0uYzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxl
cy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UyMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTMxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VOb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNDFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9u
Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
Sy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
Y3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pL
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNzFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U4MUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzRGOEE5
MzYxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdG9wd2F0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1
NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDU0OTdBQjE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNzAxLDYgKzc5MiwxNCBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQlDMkJBNTQxQTFENTcyNUI0MDAwQTMzMzIg
LyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwor
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCUMyQkE1
NDMxMUQ1NzI4QjgwMDBBMzMzMiAvKiBsaWJpY3Vjb3JlLnRiZCBpbiBGcmFtZXdvcmtzICovLAor
CQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9Owog
LyogRW5kIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJY
R3JvdXAgc2VjdGlvbiAqLwpAQCAtNzI1LDYgKzgyNCwyNCBAQAogCQkJcGF0aCA9IGljdTsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RF
QyAvKiBCcmVha2luZ1J1bGVzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJl
biA9ICgKKwkJCQkxQ0QxODc5MjFENTU5OEUxMDBDQzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzLnR4dCAqLywKKwkJCQkxQ0QxODc5MzFENTU5OTY1MDBDQzdERUMgLyogTGluZUJy
ZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgKi8sCisJCQkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0ICovLAorCQkJCTFDQjRGQjk1MUQ1NTlB
NjkwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5NjFENTU5QTkwMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pL
LnR4dCAqLywKKwkJCQkxQ0I0RkI5NzFENTU5QUE4MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5ODFENTU5QUQyMDBGOUZFMzgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQgKi8sCisJCQkJMUNCNEZCOTkx
RDU1OUFFRjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0
ICovLAorCQkJCTFDQjRGQjlBMUQ1NTlCMjMwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QjFENTU5QjNFMDBGOUZFMzggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUMxRDU1
OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovLAorCQkJKTsK
KwkJCXBhdGggPSBCcmVha2luZ1J1bGVzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKIAkJMUZBNDdDODcxNTI1MDJEQTAwNTY4RDFCIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC03NDYsMTAgKzg2MywxMyBAQAogCQk1RDI0N0I1
NzE0Njg5Qjg2MDBFNzhCNzYgPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCUMyQkE1NDMwMUQ1NzI4QjgwMDBBMzMzMiAvKiBsaWJpY3Vjb3JlLnRiZCAqLywKKwkJ
CQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKIAkJ
CQk1RDI0N0I2RDE0Njg5QzQ3MDBFNzhCNzYgLyogQ29uZmlndXJhdGlvbnMgKi8sCiAJCQkJMTQw
MjJGM0YxOEY1QzNFNTAwN0ZGMEVCIC8qIExpYnJhcmllcyAqLywKIAkJCQk1RDI0N0I2MzE0Njg5
Qjg2MDBFNzhCNzYgLyogUHJvZHVjdHMgKi8sCiAJCQkJNUQyNDdCNzYxNDY4OUQ3NjAwRTc4Qjc2
IC8qIFNvdXJjZSAqLywKKwkJCQlDMkNBMzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBT
b3VyY2VzICovLAogCQkJCTE0NDdBRUM1MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZy
YW1ld29yayAqLywKIAkJCQkxNDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5k
eWxpYiAqLywKIAkJCSk7CkBAIC03NjAsNiArODgwLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CTE0NDdBRUJFMThGQ0U1NjkwMEIzRDdGRiAvKiBsaWJtYm1hbGxvYy5keWxpYiAqLywKIAkJCQk1
RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi8sCisJCQkJQzJCQTU0MUQxRDU3
MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLywKIAkJCSk7CiAJCQluYW1lID0gUHJvZHVjdHM7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTA4Myw2ICsxMjA0LDggQEAKIAkJQThBNDcz
MUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDE3MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsgKi8s
CisJCQkJMUNEMTg3OTExRDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJ
MUMxODFDODgxRDMwN0FCODAwRjVGQTE2IC8qIGljdSAqLywKIAkJCQlBNUJBMTVGNjE4MjQzNTlF
MDBBODJFNjkgLyogY2YgKi8sCiAJCQkJQTVCQTE1RjExODI0MzM5RjAwQTgyRTY5IC8qIG1hYyAq
LywKQEAgLTExNTgsNiArMTI4MSw0NyBAQAogCQkJcGF0aCA9IGljdTsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CiAJCX07CisJCUMyQkE1NDE3MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDE4
MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsuY3BwICovLAorCQkJCUMyQkE1NDMyMUQ1NzI5Mzgw
MDBBMzMzMiAvKiB1b3B0aW9ucy5jICovLAorCQkJCUMyQkE1NDM1MUQ1NzI5RkYwMDBBMzMzMiAv
KiB1bmV3ZGF0YS5jICovLAorCQkJCUMyQkE1NDM4MUQ1NzJBRjgwMDBBMzMzMiAvKiBmaWxlc3Ry
bS5jICovLAorCQkJCUMyQkE1NDI2MUQ1NzI2N0MwMDBBMzMzMiAvKiB1b3B0aW9ucy5oICovLAor
CQkJCUMyQkE1NDI3MUQ1NzI2ODkwMDBBMzMzMiAvKiB1bmV3ZGF0YS5oICovLAorCQkJCUMyQkE1
NDI4MUQ1NzI2QjAwMDBBMzMzMiAvKiB1Y21uZGF0YS5oICovLAorCQkJCUMyQkE1NDI5MUQ1NzI2
QkMwMDBBMzMzMiAvKiByYmJpZGF0YS5oICovLAorCQkJCUMyQkE1NDJBMUQ1NzI2QzUwMDBBMzMz
MiAvKiBjbWVtb3J5LmggKi8sCisJCQkJQzJCQTU0MkIxRDU3MjZFODAwMEEzMzMyIC8qIHVtYXBm
aWxlLmggKi8sCisJCQkJQzJCQTU0MkMxRDU3MjcwOTAwMEEzMzMyIC8qIHB1dGlsaW1wLmggKi8s
CisJCQkJQzJCQTU0MkQxRDU3MjcyNDAwMEEzMzMyIC8qIHVkYXRhc3dwLmggKi8sCisJCQkJQzJC
QTU0MkUxRDU3MjczQjAwMEEzMzMyIC8qIHVtdXRleC5oICovLAorCQkJCUMyQkE1NDJGMUQ1NzI3
NEMwMDBBMzMzMiAvKiB1dHJpZS5oICovLAorCQkJCUMyQkE1NDM0MUQ1NzI5QTkwMDBBMzMzMiAv
KiBjc3RyaW5nLmggKi8sCisJCQkJQzJCQTU0MzcxRDU3MkEyRDAwMEEzMzMyIC8qIGZpbGVzdHJt
LmggKi8sCisJCQkpOworCQkJbmFtZSA9IGdlbmJyazsKKwkJCXBhdGggPSBCcmVha2luZ1J1bGVz
L2dlbmJyazsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCUMyQ0EzN0RGMUQ1
NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovLAorCQkJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFMjFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCAqLywK
KwkJCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTUxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwICovLAorCQkJCUMyQ0Ez
N0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
LmNwcCAqLywKKwkJCQlDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICovLAorCQkJKTsKKwkJCW5h
bWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXBhdGggPSBEZXJpdmVkU291cmNlcy9XVEY7CisJ
CQlzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOworCQl9OwogCQlDRTQ2NTE2QzE5REIx
RkI0MDAzRUNBMDUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKApAQCAtMTQ3MCw2ICsxNjM0LDcgQEAKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwog
CQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTFDRDE4Nzg4MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhU
YXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTY1QUZBMjhFMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhU
YXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBXVEY7CkBAIC0xNDc3LDYgKzE2
NDIsMjMgQEAKIAkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYg
LyogbGliV1RGLmEgKi87CiAJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBl
LmxpYnJhcnkuc3RhdGljIjsKIAkJfTsKKwkJQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMyIC8qIGdl
bmJyayAqLyA9IHsKKwkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJh
dGlvbkxpc3QgPSBDMkJBNTQyMTFENTcyNUI0MDAwQTMzMzIgLyogQnVpbGQgY29uZmlndXJhdGlv
biBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgImdlbmJyayIgKi87CisJCQlidWlsZFBoYXNlcyA9
ICgKKwkJCQlDMkJBNTQxOTFENTcyNUI0MDAwQTMzMzIgLyogU291cmNlcyAqLywKKwkJCQlDMkJB
NTQxQTFENTcyNUI0MDAwQTMzMzIgLyogRnJhbWV3b3JrcyAqLywKKwkJCQlDMkJBNTQxQjFENTcy
NUI0MDAwQTMzMzIgLyogQ29weUZpbGVzICovLAorCQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJ
CQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSBnZW5icms7CisJCQlw
cm9kdWN0TmFtZSA9IGdlbmJyazsKKwkJCXByb2R1Y3RSZWZlcmVuY2UgPSBDMkJBNTQxRDFENTcy
NUI0MDAwQTMzMzIgLyogZ2VuYnJrICovOworCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnBy
b2R1Y3QtdHlwZS50b29sIjsKKwkJfTsKIC8qIEVuZCBQQlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAq
LwogCiAvKiBCZWdpbiBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KQEAgLTE0ODUsNiArMTY2NywxMSBA
QAogCQkJYXR0cmlidXRlcyA9IHsKIAkJCQlMYXN0U3dpZnRVcGRhdGVDaGVjayA9IDA3MDA7CiAJ
CQkJTGFzdFVwZ3JhZGVDaGVjayA9IDA3MDA7CisJCQkJVGFyZ2V0QXR0cmlidXRlcyA9IHsKKwkJ
CQkJQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMyID0geworCQkJCQkJQ3JlYXRlZE9uVG9vbHNWZXJz
aW9uID0gNy4zLjE7CisJCQkJCX07CisJCQkJfTsKIAkJCX07CiAJCQlidWlsZENvbmZpZ3VyYXRp
b25MaXN0ID0gNUQyNDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24g
bGlzdCBmb3IgUEJYUHJvamVjdCAiV1RGIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0g
Ilhjb2RlIDMuMiI7CkBAIC0xNTAwLDEyICsxNjg3LDI4IEBACiAJCQl0YXJnZXRzID0gKAogCQkJ
CTVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NiAvKiBXVEYgKi8sCiAJCQkJNjVBRkExNkYxNjMwQjk3
NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi8sCisJCQkJMUNEMTg3ODExRDU1Njk1QzAw
Q0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVCRDE4RkNFNTY5MDBCM0Q3
RkYgLyogbWJtYWxsb2MgKi8sCisJCQkJQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJy
ayAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICovCiAKIC8qIEJl
Z2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCisJCTFDRDE4NzgyMUQ1NTY5
NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQ
QlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCSk7CisJCQluYW1l
ID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNlcyI7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7
CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0
aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVD
VFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuY2QgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0v
RGVyaXZlZFNvdXJjZXMvV1RGXCJcblxuL2Jpbi9sbiAtc2ZoIFwiJHtTUkNST09UfVwiIFdURlxu
ZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsgISAtZCBCcmVha2luZ1J1bGVzIF07IHRoZW5cbiAg
ICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxuXG5pZiBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RB
UkdFVFwiID09IFwiMTAuMTBcIiBdOyB0aGVuXG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVD0wXG5lbHNlXG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0xXG5m
aVxuXG5pZiBbIFwiJHtBQ1RJT059XCIgPSBcImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwi
aW5zdGFsbFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxoZHJzXCIgLW8gXCIke0FDVElP
Tn1cIiA9IFwiaW5zdGFsbGFwaVwiIF07IHRoZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1bGVzIC1m
IFwiV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4g
aHcuYWN0aXZlY3B1YCBTREtST09UPVwiJHtTREtST09UfVwiXG5maSI7CisJCX07CiAJCTY1QUZB
MTcwMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0g
UEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKQEAgLTE1MzYsNiArMTczOSw4IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OwogCQkJZmlsZXMgPSAoCiAJCQkJQThBNDczODYxNTFBODI1QjAwNDEyM0ZGIC8qIEFzc2VydGlv
bnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzUxNTFBODI1QjAwNDEyM0ZGIC8q
IEF0b21pY1N0cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MEVDQTYwRDFCMDI0MjY4MDA0
NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUJBMTVG
QTE4MjQzNUE2MDBBODJFNjkgLyogQXRvbWljU3RyaW5nSW1wbENGLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMTU2Myw2ICsxNzY4LDcgQEAKIAkJCQlBOEE0NzNCMDE1MUE4MjVCMDA0MTIzRkYgLyog
ZG91YmxlLWNvbnZlcnNpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCQTE1MUE4MjVC
MDA0MTIzRkYgLyogZHRvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCMzE1MUE4MjVC
MDA0MTIzRkYgLyogZmFzdC1kdG9hLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUQxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY4ODVFMEYxODQ1QUVBOTAwRjFFM0ZBIC8qIEZhc3RCaXRWZWN0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQzMxNTFBODI1QjAwNDEyM0ZGIC8qIEZhc3RNYWxs
b2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRENFRTIyMDExQ0VBNzU1MTAwMEMyMzk2IC8qIEJs
b2NrT2JqQ0V4Y2VwdGlvbnMubW0gaW4gU291cmNlcyAqLywKQEAgLTE1NzgsNiArMTc4NCw3IEBA
CiAJCQkJQThBNDczRTkxNTFBODI1QjAwNDEyM0ZGIC8qIE1ENS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlDRDU0OTdBQzE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QTQ3M0VDMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y0MTUx
QTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
QTQ3M0Y3MTUxQTgyNUIwMDQxMjNGRiAvKiBPU0FsbG9jYXRvclBvc2l4LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QTQ3M0Y5MTUxQTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTE1ODUsNiArMTc5Miw3IEBACiAJCQkJMUMxODFDOTMxRDMwN0FC
ODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkZGMTlEQzFCQjMzNEVCMDA4ODZEOTEgLyogUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGODI0QTY4MUI3NDQzQTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQzMzYyMTY1
REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDNG
NjExRjE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMTYxOSw5ICsxODI3LDEzIEBACiAJCQkJQThBNDc0NEExNTFBODI1QjAwNDEyM0ZGIC8q
IFRocmVhZGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0RTE1MUE4MjVCMDA0MTIz
RkYgLyogVGhyZWFkaW5nUHRocmVhZHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0Njkx
NTFBODI1QjAwNDEyM0ZGIC8qIFVURjguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUMx
RDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxRkE0N0M4QTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRo
cmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkU0NDc5QzFCN0FBQTAzMDA5NDk4RUIgLyog
V29yZExvY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4
IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlD
MkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pL
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDRUUyMjAzMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQlDMkNB
MzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFNEEwQUQzOTFBOTYyNDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUU0QTBBRDNEMUE5NjI1M0MwMDUzNkRGNiAvKiBXb3JrUXVl
dWVDb2NvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0NTE1MUE4MjVCMDA0MTIzRkYg
LyogV1RGU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTYyOSw2ICsxODQxLDE3IEBACiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CisJ
CUMyQkE1NDE5MUQ1NzI1QjQwMDBBMzMzMiAvKiBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJY
U291cmNlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJ
ZmlsZXMgPSAoCisJCQkJQzJCQTU0MzMxRDU3MjkzODAwMEEzMzMyIC8qIHVvcHRpb25zLmMgaW4g
U291cmNlcyAqLywKKwkJCQlDMkJBNTQzOTFENTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyBp
biBTb3VyY2VzICovLAorCQkJCUMyQkE1NDI1MUQ1NzI1QzQwMDBBMzMzMiAvKiBnZW5icmsuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQzJCQTU0MzYxRDU3MjlGRjAwMEEzMzMyIC8qIHVuZXdkYXRh
LmMgaW4gU291cmNlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKKwkJfTsKIC8qIEVuZCBQQlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICov
CiAKIC8qIEJlZ2luIFBCWFRhcmdldERlcGVuZGVuY3kgc2VjdGlvbiAqLwpAQCAtMTYzNywxMSAr
MTg2MCwyMSBAQAogCQkJdGFyZ2V0ID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAq
LzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FFQzMxOEZDRTU3MDAwQjNEN0ZGIC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJMUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBC
WFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5Owor
CQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAq
LzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJNjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBC
WFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5Owog
CQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMg
Ki87CiAJCQl0YXJnZXRQcm94eSA9IDY1QUZBMjhEMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhDb250
YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJCUMyQkE1NDNCMUQ1NzJCRUIwMDBBMzMzMiAvKiBQ
QlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsK
KwkJCXRhcmdldCA9IEMyQkE1NDFDMUQ1NzI1QjQwMDBBMzMzMiAvKiBnZW5icmsgKi87CisJCQl0
YXJnZXRQcm94eSA9IEMyQkE1NDNBMUQ1NzJCRUIwMDBBMzMzMiAvKiBQQlhDb250YWluZXJJdGVt
UHJveHkgKi87CisJCX07CiAvKiBFbmQgUEJYVGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9uICovCiAK
IC8qIEJlZ2luIFhDQnVpbGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KQEAgLTE2NjYsNiArMTg5
OSwzMCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFE
NTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJh
dGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNjU0MUNBRjQxNjMwREIyNjAw
NkQwREVDIC8qIENvcHlXVEZIZWFkZXJzLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9
IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUg
PSBEZWJ1ZzsKKwkJfTsKKwkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8g
PSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9u
UmVmZXJlbmNlID0gNjU0MUNBRjQxNjMwREIyNjAwNkQwREVDIC8qIENvcHlXVEZIZWFkZXJzLnhj
Y29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChU
QVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OworCQkxQ0QxODc4
NjFENTU2OTVDMDBDQzdERUMgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRD
b25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA2NTQxQ0FGNDE2
MzBEQjI2MDA2RDBERUMgLyogQ29weVdURkhlYWRlcnMueGNjb25maWcgKi87CisJCQlidWlsZFNl
dHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9Owor
CQkJbmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAv
KiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNv
bmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdS
ZWxlYXNlLnhjY29uZmlnICovOwpAQCAtMTczNiw2ICsxOTkzLDIwNCBAQAogCQkJfTsKIAkJCW5h
bWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQlDMkJBNTQyMjFENTcyNUI0MDAwQTMzMzIgLyogRGVi
dWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJ1aWxkU2V0dGlu
Z3MgPSB7CisJCQkJQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87CisJCQkJQ0xBTkdfQU5B
TFlaRVJfTk9OTlVMTCA9IFlFUzsKKwkJCQlDTEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAi
Z251KysweCI7CisJCQkJQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKKwkJCQlDTEFOR19F
TkFCTEVfTU9EVUxFUyA9IFlFUzsKKwkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZRVM7CisJ
CQkJQ0xBTkdfV0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9DT05T
VEFOVF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRElSRUNUX09CSkNfSVNBX1VT
QUdFID0gWUVTX0VSUk9SOworCQkJCUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKKwkJCQlD
TEFOR19XQVJOX0VOVU1fQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0lOVF9DT05W
RVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVTX0VSUk9S
OworCQkJCUNMQU5HX1dBUk5fVU5SRUFDSEFCTEVfQ09ERSA9IFlFUzsKKwkJCQlDTEFOR19XQVJO
X19EVVBMSUNBVEVfTUVUSE9EX01BVENIID0gWUVTOworCQkJCUNPREVfU0lHTl9JREVOVElUWSA9
ICItIjsKKwkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87CisJCQkJREVCVUdfSU5GT1JNQVRJT05f
Rk9STUFUID0gZHdhcmY7CisJCQkJRU5BQkxFX1NUUklDVF9PQkpDX01TR1NFTkQgPSBZRVM7CisJ
CQkJRU5BQkxFX1RFU1RBQklMSVRZID0gWUVTOworCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJE
ID0gZ251OTk7CisJCQkJR0NDX0RZTkFNSUNfTk9fUElDID0gTk87CisJCQkJR0NDX05PX0NPTU1P
Tl9CTE9DS1MgPSBZRVM7CisJCQkJR0NDX09QVElNSVpBVElPTl9MRVZFTCA9IDA7CisJCQkJR0ND
X1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKKwkJCQkJIkRFQlVHPTEiLAorCQkJCQkiVV9T
SE9XX0NQTFVTUExVU19BUEk9MSIsCisJCQkJCSIkKGluaGVyaXRlZCkiLAorCQkJCSk7CisJCQkJ
R0NDX1dBUk5fNjRfVE9fMzJfQklUX0NPTlZFUlNJT04gPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9V
VF9NSVNTSU5HX1BST1RPVFlQRVMgPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQ
RSA9IFlFU19FUlJPUjsKKwkJCQlHQ0NfV0FSTl9TSUdOX0NPTVBBUkUgPSBOTzsKKwkJCQlHQ0Nf
V0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTEla
RURfQVVUT1MgPSBZRVNfQUdHUkVTU0lWRTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04g
PSBZRVM7CisJCQkJR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU1BQ09TWF9E
RVBMT1lNRU5UX1RBUkdFVCA9IDEwLjExOworCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IFlF
UzsKKwkJCQlPTkxZX0FDVElWRV9BUkNIID0gWUVTOworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRB
UkdFVF9OQU1FKSI7CisJCQkJU0RLUk9PVCA9IG1hY29zeDsKKwkJCQlXQVJOSU5HX0NGTEFHUyA9
ICgKKwkJCQkJIi1XYWxsIiwKKwkJCQkJIi1XZXh0cmEiLAorCQkJCQkiLVdjYXN0LXF1YWwiLAor
CQkJCQkiLVdjaGFyLXN1YnNjcmlwdHMiLAorCQkJCQkiLVdleHRyYS10b2tlbnMiLAorCQkJCQki
LVdmb3JtYXQ9MiIsCisJCQkJCSItV2luaXQtc2VsZiIsCisJCQkJCSItV21pc3NpbmctZm9ybWF0
LWF0dHJpYnV0ZSIsCisJCQkJCSItV3BhY2tlZCIsCisJCQkJCSItV3BvaW50ZXItYXJpdGgiLAor
CQkJCQkiLVdyZWR1bmRhbnQtZGVjbHMiLAorCQkJCQkiLVd1bmRlZiIsCisJCQkJCSItV3dyaXRl
LXN0cmluZ3MiLAorCQkJCQkiLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMiLAorCQkJCQkiLVdnbG9i
YWwtY29uc3RydWN0b3JzIiwKKwkJCQkJIi1XdGF1dG9sb2dpY2FsLWNvbXBhcmUiLAorCQkJCQki
LVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIsCisJCQkJCSItV25vLXNpZ24tY29tcGFyZSIsCisJCQkJ
KTsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCUMyQkE1NDIzMUQ1NzI1QjQwMDBB
MzMzMiAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJ
CQlidWlsZFNldHRpbmdzID0geworCQkJCUFMV0FZU19TRUFSQ0hfVVNFUl9QQVRIUyA9IE5POwor
CQkJCUNMQU5HX0FOQUxZWkVSX05PTk5VTEwgPSBZRVM7CisJCQkJQ0xBTkdfQ1hYX0xBTkdVQUdF
X1NUQU5EQVJEID0gImdudSsrMHgiOworCQkJCUNMQU5HX0NYWF9MSUJSQVJZID0gImxpYmMrKyI7
CisJCQkJQ0xBTkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisJCQkJQ0xBTkdfRU5BQkxFX09CSkNf
QVJDID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQk9PTF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNM
QU5HX1dBUk5fQ09OU1RBTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0RJUkVD
VF9PQkpDX0lTQV9VU0FHRSA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX0VNUFRZX0JPRFkg
PSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9FTlVNX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdf
V0FSTl9JTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX09CSkNfUk9PVF9DTEFT
UyA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX1VOUkVBQ0hBQkxFX0NPREUgPSBZRVM7CisJ
CQkJQ0xBTkdfV0FSTl9fRFVQTElDQVRFX01FVEhPRF9NQVRDSCA9IFlFUzsKKwkJCQlDT0RFX1NJ
R05fSURFTlRJVFkgPSAiLSI7CisJCQkJQ09QWV9QSEFTRV9TVFJJUCA9IE5POworCQkJCURFQlVH
X0lORk9STUFUSU9OX0ZPUk1BVCA9ICJkd2FyZi13aXRoLWRzeW0iOworCQkJCUVOQUJMRV9OU19B
U1NFUlRJT05TID0gTk87CisJCQkJRU5BQkxFX1NUUklDVF9PQkpDX01TR1NFTkQgPSBZRVM7CisJ
CQkJR0NDX0NfTEFOR1VBR0VfU1RBTkRBUkQgPSBnbnU5OTsKKwkJCQlHQ0NfTk9fQ09NTU9OX0JM
T0NLUyA9IFlFUzsKKwkJCQlHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TID0gKAorCQkJCQki
VV9TSE9XX0NQTFVTUExVU19BUEk9MSIsCisJCQkJCSIkKERFQlVHX0RFRklORVMpIiwKKwkJCQkJ
IiQoaW5oZXJpdGVkKSIsCisJCQkJKTsKKwkJCQlHQ0NfV0FSTl82NF9UT18zMl9CSVRfQ09OVkVS
U0lPTiA9IE5POworCQkJCUdDQ19XQVJOX0FCT1VUX01JU1NJTkdfUFJPVE9UWVBFUyA9IE5POwor
CQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9SOworCQkJCUdDQ19XQVJO
X1NJR05fQ09NUEFSRSA9IE5POworCQkJCUdDQ19XQVJOX1VOREVDTEFSRURfU0VMRUNUT1IgPSBZ
RVM7CisJCQkJR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFU19BR0dSRVNTSVZFOwor
CQkJCUdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9VTlVTRURf
VkFSSUFCTEUgPSBZRVM7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTAuMTE7CisJ
CQkJTVRMX0VOQUJMRV9ERUJVR19JTkZPID0gTk87CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFS
R0VUX05BTUUpIjsKKwkJCQlTREtST09UID0gbWFjb3N4OworCQkJCVdBUk5JTkdfQ0ZMQUdTID0g
KAorCQkJCQkiLVdhbGwiLAorCQkJCQkiLVdleHRyYSIsCisJCQkJCSItV2Nhc3QtcXVhbCIsCisJ
CQkJCSItV2NoYXItc3Vic2NyaXB0cyIsCisJCQkJCSItV2V4dHJhLXRva2VucyIsCisJCQkJCSIt
V2Zvcm1hdD0yIiwKKwkJCQkJIi1XaW5pdC1zZWxmIiwKKwkJCQkJIi1XbWlzc2luZy1mb3JtYXQt
YXR0cmlidXRlIiwKKwkJCQkJIi1XcGFja2VkIiwKKwkJCQkJIi1XcG9pbnRlci1hcml0aCIsCisJ
CQkJCSItV3JlZHVuZGFudC1kZWNscyIsCisJCQkJCSItV3VuZGVmIiwKKwkJCQkJIi1Xd3JpdGUt
c3RyaW5ncyIsCisJCQkJCSItV2V4aXQtdGltZS1kZXN0cnVjdG9ycyIsCisJCQkJCSItV2dsb2Jh
bC1jb25zdHJ1Y3RvcnMiLAorCQkJCQkiLVd0YXV0b2xvZ2ljYWwtY29tcGFyZSIsCisJCQkJCSIt
V2ltcGxpY2l0LWZhbGx0aHJvdWdoIiwKKwkJCQkJIi1Xbm8tc2lnbi1jb21wYXJlIiwKKwkJCQkp
OworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OworCQlDMkJBNTQyNDFENTcyNUI0MDAw
QTMzMzIgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9u
OworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlBTFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMgPSBO
TzsKKwkJCQlDTEFOR19BTkFMWVpFUl9OT05OVUxMID0gWUVTOworCQkJCUNMQU5HX0NYWF9MQU5H
VUFHRV9TVEFOREFSRCA9ICJnbnUrKzB4IjsKKwkJCQlDTEFOR19DWFhfTElCUkFSWSA9ICJsaWJj
KysiOworCQkJCUNMQU5HX0VOQUJMRV9NT0RVTEVTID0gWUVTOworCQkJCUNMQU5HX0VOQUJMRV9P
QkpDX0FSQyA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0JPT0xfQ09OVkVSU0lPTiA9IFlFUzsKKwkJ
CQlDTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9E
SVJFQ1RfT0JKQ19JU0FfVVNBR0UgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9FTVBUWV9C
T0RZID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRU5VTV9DT05WRVJTSU9OID0gWUVTOworCQkJCUNM
QU5HX1dBUk5fSU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9PQkpDX1JPT1Rf
Q0xBU1MgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9VTlJFQUNIQUJMRV9DT0RFID0gWUVT
OworCQkJCUNMQU5HX1dBUk5fX0RVUExJQ0FURV9NRVRIT0RfTUFUQ0ggPSBZRVM7CisJCQkJQ09E
RV9TSUdOX0lERU5USVRZID0gIi0iOworCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBOTzsKKwkJCQlE
RUJVR19JTkZPUk1BVElPTl9GT1JNQVQgPSAiZHdhcmYtd2l0aC1kc3ltIjsKKwkJCQlFTkFCTEVf
TlNfQVNTRVJUSU9OUyA9IE5POworCQkJCUVOQUJMRV9TVFJJQ1RfT0JKQ19NU0dTRU5EID0gWUVT
OworCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251OTk7CisJCQkJR0NDX05PX0NPTU1P
Tl9CTE9DS1MgPSBZRVM7CisJCQkJR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKKwkJ
CQkJIlVfU0hPV19DUExVU1BMVVNfQVBJPTEiLAorCQkJCQkiJChERUJVR19ERUZJTkVTKSIsCisJ
CQkJCSIkKGluaGVyaXRlZCkiLAorCQkJCSk7CisJCQkJR0NDX1dBUk5fNjRfVE9fMzJfQklUX0NP
TlZFUlNJT04gPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9NSVNTSU5HX1BST1RPVFlQRVMgPSBO
TzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9IFlFU19FUlJPUjsKKwkJCQlHQ0Nf
V0FSTl9TSUdOX0NPTVBBUkUgPSBOTzsKKwkJCQlHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9S
ID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVNfQUdHUkVTU0lW
RTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5V
U0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjEx
OworCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IE5POworCQkJCVBST0RVQ1RfTkFNRSA9ICIk
KFRBUkdFVF9OQU1FKSI7CisJCQkJU0RLUk9PVCA9IG1hY29zeDsKKwkJCQlXQVJOSU5HX0NGTEFH
UyA9ICgKKwkJCQkJIi1XYWxsIiwKKwkJCQkJIi1XZXh0cmEiLAorCQkJCQkiLVdjYXN0LXF1YWwi
LAorCQkJCQkiLVdjaGFyLXN1YnNjcmlwdHMiLAorCQkJCQkiLVdleHRyYS10b2tlbnMiLAorCQkJ
CQkiLVdmb3JtYXQ9MiIsCisJCQkJCSItV2luaXQtc2VsZiIsCisJCQkJCSItV21pc3NpbmctZm9y
bWF0LWF0dHJpYnV0ZSIsCisJCQkJCSItV3BhY2tlZCIsCisJCQkJCSItV3BvaW50ZXItYXJpdGgi
LAorCQkJCQkiLVdyZWR1bmRhbnQtZGVjbHMiLAorCQkJCQkiLVd1bmRlZiIsCisJCQkJCSItV3dy
aXRlLXN0cmluZ3MiLAorCQkJCQkiLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMiLAorCQkJCQkiLVdn
bG9iYWwtY29uc3RydWN0b3JzIiwKKwkJCQkJIi1XdGF1dG9sb2dpY2FsLWNvbXBhcmUiLAorCQkJ
CQkiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIsCisJCQkJCSItV25vLXNpZ24tY29tcGFyZSIsCisJ
CQkJKTsKKwkJCX07CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIC8qIEVuZCBYQ0J1aWxk
Q29uZmlndXJhdGlvbiBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFhDQ29uZmlndXJhdGlvbkxpc3Qg
c2VjdGlvbiAqLwpAQCAtMTc0OSw2ICsyMjA0LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlv
bklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9u
OwogCQl9OworCQkxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlv
biBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJ
CQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgK
KwkJCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUx
RDU1Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3
REVDIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zp
c2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJ
fTsKIAkJNUQyNDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlz
dCBmb3IgUEJYUHJvamVjdCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxp
c3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApAQCAtMTc3OSw2ICsyMjQ0LDE1IEBACiAJ
CQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJh
dGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQlDMkJBNTQyMTFENTcyNUI0MDAwQTMzMzIg
LyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgImdlbmJyayIg
Ki8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0
aW9ucyA9ICgKKwkJCQlDMkJBNTQyMjFENTcyNUI0MDAwQTMzMzIgLyogRGVidWcgKi8sCisJCQkJ
QzJCQTU0MjMxRDU3MjVCNDAwMEEzMzMyIC8qIFJlbGVhc2UgKi8sCisJCQkJQzJCQTU0MjQxRDU3
MjVCNDAwMEEzMzMyIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3Vy
YXRpb25Jc1Zpc2libGUgPSAwOworCQl9OwogLyogRW5kIFhDQ29uZmlndXJhdGlvbkxpc3Qgc2Vj
dGlvbiAqLwogCX07CiAJcm9vdE9iamVjdCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQ
cm9qZWN0IG9iamVjdCAqLzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvYnJr
aXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFh
NWU1NTI3OTYwOTBlYWViY2Q3Y2U3YjdkMjc1YWE4YjM3NzViNAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvYnJraXRlci5oCkBAIC0wLDAgKzEsNjU1IEBACisvKgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxNCwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMu
ICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmls
ZSBicmtpdGVyLmgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAg
ICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwMi8xOC85NyAgICBhbGl1ICAgICAgICBB
ZGRlZCB0eXBlZGVmIGZvciBUZXh0Q291bnQuICBNYWRlIERPTkUgY29uc3QuCisqICAgMDUvMDcv
OTcgICAgYWxpdSAgICAgICAgRml4ZWQgRExMIGRlY2xhcmF0aW9uLgorKiAgIDA3LzA5Lzk3ICAg
IGpmaXR6ICAgICAgIFJlbmFtZWQgQnJlYWtJdGVyYXRvciBhbmQgaW50ZXJmYWNlIHN5bmNlZCB3
aXRoIEpESworKiAgIDA4LzExLzk4ICAgIGhlbGVuYSAgICAgIFN5bmMtdXAgSkRLMS4yLgorKiAg
IDAxLzEzLzIwMDAgIGhlbGVuYSAgICAgIEFkZGVkIFVFcnJvckNvZGUgcGFyYW1ldGVyIHRvIGNy
ZWF0ZVhYWEluc3RhbmNlIG1ldGhvZHMuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKwor
I2lmbmRlZiBCUktJVEVSX0gKKyNkZWZpbmUgQlJLSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2Rl
L3V0eXBlcy5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTogQnJlYWsgSXRl
cmF0b3IuCisgKi8KKworI2lmIFVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKK1VfTkFNRVNQ
QUNFX0JFR0lOCisKKy8qCisgKiBBbGxvdyB0aGUgZGVjbGFyYXRpb24gb2YgQVBJcyB3aXRoIHBv
aW50ZXJzIHRvIEJyZWFrSXRlcmF0b3IKKyAqIGV2ZW4gd2hlbiBicmVhayBpdGVyYXRpb24gaXMg
cmVtb3ZlZCBmcm9tIHRoZSBidWlsZC4KKyAqLworY2xhc3MgQnJlYWtJdGVyYXRvcjsKKworVV9O
QU1FU1BBQ0VfRU5ECisKKyNlbHNlCisKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNp
bmNsdWRlICJ1bmljb2RlL3VuaXN0ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIK
KyNpbmNsdWRlICJ1bmljb2RlL2xvY2lkLmgiCisjaW5jbHVkZSAidW5pY29kZS91YnJrLmgiCisj
aW5jbHVkZSAidW5pY29kZS9zdHJlbnVtLmgiCisjaW5jbHVkZSAidW5pY29kZS91dGV4dC5oIgor
I2luY2x1ZGUgInVuaWNvZGUvdW1pc2MuaCIKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisg
KiBUaGUgQnJlYWtJdGVyYXRvciBjbGFzcyBpbXBsZW1lbnRzIG1ldGhvZHMgZm9yIGZpbmRpbmcg
dGhlIGxvY2F0aW9uCisgKiBvZiBib3VuZGFyaWVzIGluIHRleHQuIEJyZWFrSXRlcmF0b3IgaXMg
YW4gYWJzdHJhY3QgYmFzZSBjbGFzcy4KKyAqIEluc3RhbmNlcyBvZiBCcmVha0l0ZXJhdG9yIG1h
aW50YWluIGEgY3VycmVudCBwb3NpdGlvbiBhbmQgc2NhbiBvdmVyCisgKiB0ZXh0IHJldHVybmlu
ZyB0aGUgaW5kZXggb2YgY2hhcmFjdGVycyB3aGVyZSBib3VuZGFyaWVzIG9jY3VyLgorICogPHA+
CisgKiBMaW5lIGJvdW5kYXJ5IGFuYWx5c2lzIGRldGVybWluZXMgd2hlcmUgYSB0ZXh0IHN0cmlu
ZyBjYW4gYmUgYnJva2VuCisgKiB3aGVuIGxpbmUtd3JhcHBpbmcuIFRoZSBtZWNoYW5pc20gY29y
cmVjdGx5IGhhbmRsZXMgcHVuY3R1YXRpb24gYW5kCisgKiBoeXBoZW5hdGVkIHdvcmRzLgorICog
PHA+CisgKiBTZW50ZW5jZSBib3VuZGFyeSBhbmFseXNpcyBhbGxvd3Mgc2VsZWN0aW9uIHdpdGgg
Y29ycmVjdAorICogaW50ZXJwcmV0YXRpb24gb2YgcGVyaW9kcyB3aXRoaW4gbnVtYmVycyBhbmQg
YWJicmV2aWF0aW9ucywgYW5kCisgKiB0cmFpbGluZyBwdW5jdHVhdGlvbiBtYXJrcyBzdWNoIGFz
IHF1b3RhdGlvbiBtYXJrcyBhbmQgcGFyZW50aGVzZXMuCisgKiA8cD4KKyAqIFdvcmQgYm91bmRh
cnkgYW5hbHlzaXMgaXMgdXNlZCBieSBzZWFyY2ggYW5kIHJlcGxhY2UgZnVuY3Rpb25zLCBhcwor
ICogd2VsbCBhcyB3aXRoaW4gdGV4dCBlZGl0aW5nIGFwcGxpY2F0aW9ucyB0aGF0IGFsbG93IHRo
ZSB1c2VyIHRvCisgKiBzZWxlY3Qgd29yZHMgd2l0aCBhIGRvdWJsZSBjbGljay4gV29yZCBzZWxl
Y3Rpb24gcHJvdmlkZXMgY29ycmVjdAorICogaW50ZXJwcmV0YXRpb24gb2YgcHVuY3R1YXRpb24g
bWFya3Mgd2l0aGluIGFuZCBmb2xsb3dpbmcKKyAqIHdvcmRzLiBDaGFyYWN0ZXJzIHRoYXQgYXJl
IG5vdCBwYXJ0IG9mIGEgd29yZCwgc3VjaCBhcyBzeW1ib2xzIG9yCisgKiBwdW5jdHVhdGlvbiBt
YXJrcywgaGF2ZSB3b3JkLWJyZWFrcyBvbiBib3RoIHNpZGVzLgorICogPHA+CisgKiBDaGFyYWN0
ZXIgYm91bmRhcnkgYW5hbHlzaXMgYWxsb3dzIHVzZXJzIHRvIGludGVyYWN0IHdpdGgKKyAqIGNo
YXJhY3RlcnMgYXMgdGhleSBleHBlY3QgdG8sIGZvciBleGFtcGxlLCB3aGVuIG1vdmluZyB0aGUg
Y3Vyc29yCisgKiB0aHJvdWdoIGEgdGV4dCBzdHJpbmcuIENoYXJhY3RlciBib3VuZGFyeSBhbmFs
eXNpcyBwcm92aWRlcyBjb3JyZWN0CisgKiBuYXZpZ2F0aW9uIG9mIHRocm91Z2ggY2hhcmFjdGVy
IHN0cmluZ3MsIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZQorICogY2hhcmFjdGVyIGlzIHN0b3JlZC4g
IEZvciBleGFtcGxlLCBhbiBhY2NlbnRlZCBjaGFyYWN0ZXIgbWlnaHQgYmUKKyAqIHN0b3JlZCBh
cyBhIGJhc2UgY2hhcmFjdGVyIGFuZCBhIGRpYWNyaXRpY2FsIG1hcmsuIFdoYXQgdXNlcnMKKyAq
IGNvbnNpZGVyIHRvIGJlIGEgY2hhcmFjdGVyIGNhbiBkaWZmZXIgYmV0d2VlbiBsYW5ndWFnZXMu
CisgKiA8cD4KKyAqIFRoZSB0ZXh0IGJvdW5kYXJ5IHBvc2l0aW9ucyBhcmUgZm91bmQgYWNjb3Jk
aW5nIHRvIHRoZSBydWxlcworICogZGVzY3JpYmVkIGluIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXgg
IzI5LCBUZXh0IEJvdW5kYXJpZXMsIGFuZAorICogVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMTQs
IExpbmUgQnJlYWtpbmcgUHJvcGVydGllcy4gIFRoZXNlCisgKiBhcmUgYXZhaWxhYmxlIGF0IGh0
dHA6Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjE0LyBhbmQKKyAqIGh0dHA6Ly93d3cudW5p
Y29kZS5vcmcvcmVwb3J0cy90cjI5Ly4KKyAqIDxwPgorICogSW4gYWRkaXRpb24gdG8gdGhlIEMr
KyBBUEkgZGVmaW5lZCBpbiB0aGlzIGhlYWRlciBmaWxlLCBhCisgKiBwbGFpbiBDIEFQSSB3aXRo
IGVxdWl2YWxlbnQgZnVuY3Rpb25hbGl0eSBpcyBkZWZpbmVkIGluIHRoZQorICogZmlsZSB1YnJr
LmgKKyAqIDxwPgorICogQ29kZSBzbmlwcGV0cyBpbGx1c3RyYXRpbmcgdGhlIHVzZSBvZiB0aGUg
QnJlYWsgSXRlcmF0b3IgQVBJcworICogYXJlIGF2YWlsYWJsZSBpbiB0aGUgSUNVIFVzZXIgR3Vp
ZGUsCisgKiBodHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9ib3VuZGFyeUFuYWx5c2lz
Lmh0bWwKKyAqIGFuZCBpbiB0aGUgc2FtcGxlIHByb2dyYW0gaWN1L3NvdXJjZS9zYW1wbGVzL2Jy
ZWFrL2JyZWFrLmNwcAorICoKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIEJyZWFrSXRlcmF0b3Ig
OiBwdWJsaWMgVU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogIGRlc3RydWN0b3IK
KyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+QnJlYWtJdGVy
YXRvcigpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgYW5vdGhlciBvYmplY3Qg
aXMgc2VtYW50aWNhbGx5IGVxdWFsIHRvIHRoaXMKKyAgICAgKiBvbmUuIFRoZSBvdGhlciBvYmpl
Y3Qgc2hvdWxkIGJlIGFuIGluc3RhbmNlIG9mIHRoZSBzYW1lIHN1YmNsYXNzIG9mCisgICAgICog
QnJlYWtJdGVyYXRvci4gT2JqZWN0cyBvZiBkaWZmZXJlbnQgc3ViY2xhc3NlcyBhcmUgY29uc2lk
ZXJlZAorICAgICAqIHVuZXF1YWwuCisgICAgICogPFA+CisgICAgICogUmV0dXJuIHRydWUgaWYg
dGhpcyBCcmVha0l0ZXJhdG9yIGlzIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZQorICAgICAq
IHNhbWUgdGV4dCwgYW5kIGlzIHRoZSBzYW1lIGNsYXNzIGFuZCB0eXBlICh3b3JkLCBsaW5lLCBl
dGMuKSBvZgorICAgICAqIEJyZWFrSXRlcmF0b3IsIGFzIHRoZSBhcmd1bWVudC4gIFRleHQgaXMg
Y29uc2lkZXJlZCB0aGUgc2FtZSBpZgorICAgICAqIGl0IGNvbnRhaW5zIHRoZSBzYW1lIGNoYXJh
Y3RlcnMsIGl0IG5lZWQgbm90IGJlIHRoZSBzYW1lCisgICAgICogb2JqZWN0LCBhbmQgc3R5bGVz
IGFyZSBub3QgY29uc2lkZXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29uc3QgQnJlYWtJdGVyYXRvciYpIGNvbnN0ID0g
MDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvbXBsZW1lbnQgb2YgdGhlIHJlc3Vs
dCBvZiBvcGVyYXRvcj09CisgICAgICogQHBhcmFtIHJocyBUaGUgQnJlYWtJdGVyYXRvciB0byBi
ZSBjb21wYXJlZCBmb3IgaW5lcXVhbGl0eQorICAgICAqIEByZXR1cm4gdGhlIGNvbXBsZW1lbnQg
b2YgdGhlIHJlc3VsdCBvZiBvcGVyYXRvcj09CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgVUJvb2wgb3BlcmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiByaHMpIGNvbnN0
IHsgcmV0dXJuICFvcGVyYXRvcj09KHJocyk7IH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBh
IHBvbHltb3JwaGljIGNvcHkgb2YgdGhpcyBvYmplY3QuICBUaGlzIGlzIGFuIGFic3RyYWN0Cisg
ICAgICogbWV0aG9kIHdoaWNoIHN1YmNsYXNzZXMgaW1wbGVtZW50LgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciogY2xvbmUodm9pZCkg
Y29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcG9seW1vcnBoaWMgY2xhc3Mg
SUQgZm9yIHRoaXMgb2JqZWN0LiBEaWZmZXJlbnQgc3ViY2xhc3NlcworICAgICAqIHdpbGwgcmV0
dXJuIGRpc3RpbmN0IHVuZXF1YWwgdmFsdWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3Qg
PSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0
aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yJiBnZXRUZXh0KHZvaWQpIGNvbnN0ID0gMDsK
KworCisgICAgLyoqCisgICAgICAqICBHZXQgYSBVVGV4dCBmb3IgdGhlIHRleHQgYmVpbmcgYW5h
bHl6ZWQuCisgICAgICAqICBUaGUgcmV0dXJuZWQgVVRleHQgaXMgYSBzaGFsbG93IGNsb25lIG9m
IHRoZSBVVGV4dCB1c2VkIGludGVybmFsbHkKKyAgICAgICogIGJ5IHRoZSBicmVhayBpdGVyYXRv
ciBpbXBsZW1lbnRhdGlvbi4gIEl0IGNhbiBzYWZlbHkgYmUgdXNlZCB0bworICAgICAgKiAgYWNj
ZXNzIHRoZSB0ZXh0IHdpdGhvdXQgaW1wYWN0aW5nIGFueSBicmVhayBpdGVyYXRvciBvcGVyYXRp
b25zLAorICAgICAgKiAgYnV0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmIG11c3Qgbm90IGJl
IGFsdGVyZWQuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBmaWxsSW4gQSBVVGV4dCB0byBiZSBm
aWxsZWQgaW4uICBJZiBOVUxMLCBhIG5ldyBVVGV4dCB3aWxsIGJlCisgICAgICAqICAgICAgICAg
ICBhbGxvY2F0ZWQgdG8gaG9sZCB0aGUgcmVzdWx0LgorICAgICAgKiBAcGFyYW0gc3RhdHVzIHJl
Y2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgICogQHJldHVybiAgIFRoZSBjdXJyZW50IFVU
ZXh0IGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiAgSWYgYW4gaW5wdXQKKyAgICAgICogICAgICAg
ICAgIFVUZXh0IHdhcyBwcm92aWRlZCwgaXQgd2lsbCBhbHdheXMgYmUgcmV0dXJuZWQuCisgICAg
ICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAgKi8KKyAgICAgdmlydHVhbCBVVGV4dCAqZ2V0VVRl
eHQoVVRleHQgKmZpbGxJbiwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdCA9IDA7CisKKyAgICAv
KioKKyAgICAgKiBDaGFuZ2UgdGhlIHRleHQgb3ZlciB3aGljaCB0aGlzIG9wZXJhdGVzLiBUaGUg
dGV4dCBib3VuZGFyeSBpcworICAgICAqIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKiBAcGFy
YW0gdGV4dCBUaGUgVW5pY29kZVN0cmluZyB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoY29u
c3QgVW5pY29kZVN0cmluZyAmdGV4dCkgPSAwOworCisgICAgLyoqCisgICAgICogUmVzZXQgdGhl
IGJyZWFrIGl0ZXJhdG9yIHRvIG9wZXJhdGUgb3ZlciB0aGUgdGV4dCByZXByZXNlbnRlZCBieQor
ICAgICAqIHRoZSBVVGV4dC4gIFRoZSBpdGVyYXRvciBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUg
c3RhcnQuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBjbG9u
ZSBvZiB0aGUgc3VwcGxpZWQgVVRleHQuICBUaGlzIG1lYW5zCisgICAgICogdGhhdCB0aGUgY2Fs
bGVyIGlzIGZyZWUgdG8gaW1tZWRpYXRlbHkgY2xvc2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRoZQor
ICAgICAqIFV0ZXh0IHRoYXQgd2FzIHBhc3NlZCBhcyBhIHBhcmFtZXRlciwgYnV0IHRoYXQgdGhl
IHVuZGVybHlpbmcgdGV4dCBpdHNlbGYKKyAgICAgKiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdoaWxl
IGJlaW5nIHJlZmVyZW5jZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAgICog
QWxsIGluZGV4IHBvc2l0aW9ucyByZXR1cm5lZCBieSBicmVhayBpdGVyYXRvciBmdW5jdGlvbnMg
YXJlCisgICAgICogbmF0aXZlIGluZGljZXMgZnJvbSB0aGUgVVRleHQuIEZvciBleGFtcGxlLCB3
aGVuIGJyZWFraW5nIFVURi04CisgICAgICogZW5jb2RlZCB0ZXh0LCB0aGUgYnJlYWsgcG9zaXRp
b25zIHJldHVybmVkIGJ5IG5leHQoKSwgcHJldmlvdXMoKSwgZXRjLgorICAgICAqIHdpbGwgYmUg
VVRGLTggc3RyaW5nIGluZGljZXMsIG5vdCBVVEYtMTYgcG9zaXRpb25zLgorICAgICAqCisgICAg
ICogQHBhcmFtIHRleHQgVGhlIFVUZXh0IHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAq
IEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAqIEBzdGFibGUg
SUNVIDMuNAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChVVGV4dCAqdGV4dCwg
VUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDaGFuZ2UgdGhlIHRl
eHQgb3ZlciB3aGljaCB0aGlzIG9wZXJhdGVzLiBUaGUgdGV4dCBib3VuZGFyeSBpcworICAgICAq
IHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKiBOb3RlIHRoYXQgc2V0VGV4dChVVGV4dCAqKSBw
cm92aWRlcyBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgdG8gdGhpcyBmdW5jdGlvbiwKKyAgICAgKiBh
bmQgaXMgbW9yZSBlZmZpY2llbnQuCisgICAgICogQHBhcmFtIGl0IFRoZSBDaGFyYWN0ZXJJdGVy
YXRvciB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIGFkb3B0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciogaXQp
ID0gMDsKKworICAgIGVudW0geworICAgICAgICAvKioKKyAgICAgICAgICogRE9ORSBpcyByZXR1
cm5lZCBieSBwcmV2aW91cygpIGFuZCBuZXh0KCkgYWZ0ZXIgYWxsIHZhbGlkCisgICAgICAgICAq
IGJvdW5kYXJpZXMgaGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgICAgICovCisgICAgICAgIERPTkUgPSAoaW50MzJfdCktMQorICAgIH07CisKKyAg
ICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUg
YmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCBwb3NpdGlvbiB6ZXJvLgorICAgICAqIEByZXR1cm4gVGhl
IG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCB6ZXJvLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmaXJzdCh2b2lkKSA9IDA7
CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBpbmRl
eCBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJlaW5n
IHNjYW5uZWQuCisgICAgICogQHJldHVybiBUaGUgaW5kZXggaW1tZWRpYXRlbHkgQkVZT05EIHRo
ZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCBiZWluZyBzY2FubmVkLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBsYXN0KHZvaWQpID0gMDsK
KworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGJvdW5k
YXJ5IHByZWNlZGluZyB0aGUgY3VycmVudCBib3VuZGFyeS4KKyAgICAgKiBAcmV0dXJuIFRoZSBj
aGFyYWN0ZXIgaW5kZXggb2YgdGhlIHByZXZpb3VzIHRleHQgYm91bmRhcnkgb3IgRE9ORSBpZiBh
bGwKKyAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJldmlvdXModm9pZCkgPSAw
OworCisgICAgLyoqCisgICAgICogQWR2YW5jZSB0aGUgaXRlcmF0b3IgdG8gdGhlIGJvdW5kYXJ5
IGZvbGxvd2luZyB0aGUgY3VycmVudCBib3VuZGFyeS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFy
YWN0ZXIgaW5kZXggb2YgdGhlIG5leHQgdGV4dCBib3VuZGFyeSBvciBET05FIGlmIGFsbAorICAg
ICAqIGJvdW5kYXJpZXMgaGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KHZvaWQpID0gMDsKKworICAgIC8q
KgorICAgICAqIFJldHVybiBjaGFyYWN0ZXIgaW5kZXggb2YgdGhlIGN1cnJlbnQgaW50ZXJhdG9y
IHBvc2l0aW9uIHdpdGhpbiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSBib3VuZGFyeSBt
b3N0IHJlY2VudGx5IHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgaW50MzJfdCBjdXJyZW50KHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgor
ICAgICAqIEFkdmFuY2UgdGhlIGl0ZXJhdG9yIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBmb2xsb3dp
bmcgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFs
d2F5cyBncmVhdGVyIHRoYW4gdGhlIG9mZnNldCBvcgorICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0
ZXJhdG9yLkRPTkUKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nh
bm5pbmcuCisgICAgICogQHJldHVybiBUaGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhlIHNwZWNp
ZmllZCBvZmZzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90IGZvbGxvd2luZyhpbnQzMl90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAg
ICogU2V0IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgZmlyc3QgYm91bmRhcnkgcHJlY2Vk
aW5nIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyBh
bHdheXMgc21hbGxlciB0aGFuIHRoZSBvZmZzZXQgb3IKKyAgICAgKiB0aGUgdmFsdWUgQnJlYWtJ
dGVyYXRvci5ET05FCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGJlZ2luIHNj
YW5uaW5nLgorICAgICAqIEByZXR1cm4gVGhlIGZpcnN0IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3Bl
Y2lmaWVkIG9mZnNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIGludDMyX3QgcHJlY2VkaW5nKGludDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc3BlY2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBw
b3NpdGlvbi4KKyAgICAgKiBBcyBhIHNpZGUgZWZmZWN0LCB0aGUgY3VycmVudCBwb3NpdGlvbiBv
ZiB0aGUgaXRlcmF0b3IgaXMgc2V0CisgICAgICogdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0
aW9uIGF0IG9yIGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBAcGFyYW0g
b2Zmc2V0IHRoZSBvZmZzZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBUcnVlIGlmICJvZmZz
ZXQiIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBVQm9vbCBpc0JvdW5kYXJ5KGludDMyX3Qgb2Zmc2V0KSA9IDA7CisK
KyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBudGggYm91
bmRhcnkgZnJvbSB0aGUgY3VycmVudCBib3VuZGFyeQorICAgICAqIEBwYXJhbSBuIHRoZSBudW1i
ZXIgb2YgYm91bmRhcmllcyB0byBtb3ZlIGJ5LiAgQSB2YWx1ZSBvZiAwCisgICAgICogZG9lcyBu
b3RoaW5nLiAgTmVnYXRpdmUgdmFsdWVzIG1vdmUgdG8gcHJldmlvdXMgYm91bmRhcmllcworICAg
ICAqIGFuZCBwb3NpdGl2ZSB2YWx1ZXMgbW92ZSB0byBsYXRlciBib3VuZGFyaWVzLgorICAgICAq
IEByZXR1cm4gVGhlIG5ldyBpdGVyYXRvciBwb3NpdGlvbiwgb3IKKyAgICAgKiBET05FIGlmIHRo
ZXJlIGFyZSBmZXdlciB0aGFuIHxufCBib3VuZGFyaWVzIGluIHRoZSBzcGVjZmllZCBkaXJlY3Rp
b24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90
IG5leHQoaW50MzJfdCBuKSA9IDA7CisKKyAgIC8qKgorICAgICAqIEZvciBSdWxlQmFzZWRCcmVh
a0l0ZXJhdG9ycywgcmV0dXJuIHRoZSBzdGF0dXMgdGFnIGZyb20gdGhlIAorICAgICAqIGJyZWFr
IHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogcmV0dXJuZWQg
YnJlYWsgcG9zaXRpb24uCisgICAgICogPHA+CisgICAgICogRm9yIGJyZWFrIGl0ZXJhdG9yIHR5
cGVzIHRoYXQgZG8gbm90IHN1cHBvcnQgYSBydWxlIHN0YXR1cywKKyAgICAgKiBhIGRlZmF1bHQg
dmFsdWUgb2YgMCBpcyByZXR1cm5lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcmV0dXJuIHRoZSBz
dGF0dXMgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50
bHkKKyAgICAgKiAgICAgICAgIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIEBzZWUg
UnVsZUJhc2VCcmVha0l0ZXJhdG9yOjpnZXRSdWxlU3RhdHVzKCkKKyAgICAgKiBAc2VlIFVXb3Jk
QnJlYWsKKyAgICAgKiBAc3RhYmxlIElDVSA1MgorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJf
dCBnZXRSdWxlU3RhdHVzKCkgY29uc3Q7CisKKyAgIC8qKgorICAgICogRm9yIFJ1bGVCYXNlZEJy
ZWFrSXRlcmF0b3JzLCBnZXQgdGhlIHN0YXR1cyAodGFnKSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsg
cnVsZShzKSAKKyAgICAqIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseSByZXR1cm5l
ZCBicmVhayBwb3NpdGlvbi4KKyAgICAqIDxwPgorICAgICogRm9yIGJyZWFrIGl0ZXJhdG9yIHR5
cGVzIHRoYXQgZG8gbm90IHN1cHBvcnQgcnVsZSBzdGF0dXMsCisgICAgKiBubyB2YWx1ZXMgYXJl
IHJldHVybmVkLgorICAgICogPHA+CisgICAgKiBUaGUgcmV0dXJuZWQgc3RhdHVzIHZhbHVlKHMp
IGFyZSBzdG9yZWQgaW50byBhbiBhcnJheSBwcm92aWRlZCBieSB0aGUgY2FsbGVyLgorICAgICog
VGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHNvcnRlZCAoYXNjZW5kaW5nKSBvcmRlci4KKyAgICAq
IElmIHRoZSBjYXBhY2l0eSBvZiB0aGUgb3V0cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBo
b2xkIHRoZSBkYXRhLAorICAgICogIHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhl
IGF2YWlsYWJsZSBsZW5ndGgsIGFuZCBhCisgICAgKiAgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1Ig
d2lsbCBiZSBzaWduYWxlZC4KKyAgICAqIDxwPgorICAgICogQHNlZSBSdWxlQmFzZUJyZWFrSXRl
cmF0b3I6OmdldFJ1bGVTdGF0dXNWZWMKKyAgICAqCisgICAgKiBAcGFyYW0gZmlsbEluVmVjIGFu
IGFycmF5IHRvIGJlIGZpbGxlZCBpbiB3aXRoIHRoZSBzdGF0dXMgdmFsdWVzLgorICAgICogQHBh
cmFtIGNhcGFjaXR5ICB0aGUgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0
aCBvZiB6ZXJvIGNhdXNlcworICAgICogICAgICAgICAgICAgICAgICB0aGUgZnVuY3Rpb24gdG8g
cmV0dXJuIHRoZSBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcywgaW4gdGhlCisgICAgKiAgICAgICAg
ICAgICAgICAgIG5vcm1hbCB3YXksIHdpdGhvdXQgYXR0ZW10cGluZyB0byBzdG9yZSBhbnkgdmFs
dWVzLgorICAgICogQHBhcmFtIHN0YXR1cyAgICByZWNlaXZlcyBlcnJvciBjb2Rlcy4KKyAgICAq
IEByZXR1cm4gICAgICAgICAgVGhlIG51bWJlciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBy
dWxlcyB0aGF0IGRldGVybWluZWQKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVj
ZW50IGJvdW5kYXJ5IHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAqICAgICAg
ICAgICAgICAgICAgSW4gdGhlIGV2ZW50IG9mIGEgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRo
ZSByZXR1cm4gdmFsdWUKKyAgICAqICAgICAgICAgICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJl
ciBvZiBzdGF0dXMgdmFsdWVzIHRoYXQgd2VyZSBhdmFpbGFibGUsCisgICAgKiAgICAgICAgICAg
ICAgICAgIG5vdCB0aGUgcmVkdWNlZCBudW1iZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVk
LgorICAgICogQHNlZSBnZXRSdWxlU3RhdHVzCisgICAgKiBAc3RhYmxlIElDVSA1MgorICAgICov
CisgICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXNWZWMoaW50MzJfdCAqZmlsbEluVmVj
LCBpbnQzMl90IGNhcGFjaXR5LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAg
ICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIHdvcmQtYnJlYWtzIHVzaW5nIHRoZSBnaXZlbiBs
b2NhbGUuCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1w
bGVtZW50aW5nIHdvcmQgYnJlYWtzLgorICAgICAqIFdvcmRCcmVhayBpcyB1c2VmdWwgZm9yIHdv
cmQgc2VsZWN0aW9uIChleC4gZG91YmxlIGNsaWNrKQorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUg
bG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGVycm9yIGNvZGUKKyAgICAgKiBAcmV0
dXJuIEEgQnJlYWtJdGVyYXRvciBmb3Igd29yZC1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3Rh
dHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlv
biB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24g
c3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBV
X1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlv
dQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNo
IHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5H
IGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAq
IGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRo
ZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBp
bmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBu
ZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2Nh
bGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSBy
ZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9F
WFBPUlQyCisgICAgY3JlYXRlV29yZEluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJv
ckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBm
b3IgbGluZS1icmVha3MgdXNpbmcgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBSZXR1cm5zIGFu
IGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgbGluZSBicmVha3MuIExp
bmUKKyAgICAgKiBicmVha3MgYXJlIGxvZ2ljYWxseSBwb3NzaWJsZSBsaW5lIGJyZWFrcywgYWN0
dWFsIGxpbmUgYnJlYWtzIGFyZQorICAgICAqIHVzdWFsbHkgZGV0ZXJtaW5lZCBiYXNlZCBvbiBk
aXNwbGF5IHdpZHRoLgorICAgICAqIExpbmVCcmVhayBpcyB1c2VmdWwgZm9yIHdvcmQgd3JhcHBp
bmcgdGV4dC4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0g
c3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZv
ciBsaW5lLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIg
aXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAq
IFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ug
c2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91
IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZv
ciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vz
cy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxs
IGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMg
cmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAg
ICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZh
dWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBs
b2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBm
b3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMg
cmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVMaW5l
SW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAg
IC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBjaGFyYWN0ZXItYnJlYWtzIHVz
aW5nIHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJl
YWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgY2hhcmFjdGVyIGJyZWFrcy4KKyAgICAgKiBDaGFyYWN0
ZXIgYnJlYWtzIGFyZSBib3VuZGFyaWVzIG9mIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVuY2Vz
LgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMg
VGhlIGVycm9yIGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIGNoYXJh
Y3Rlci1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlz
IHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBU
byBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNo
b3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3
aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3Ig
aW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3Mu
CisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBi
YWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJl
cXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAq
IHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVs
dCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9j
YWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91
bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJl
c3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlQ2hhcmFj
dGVySW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKwor
ICAgIC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBzZW50ZW5jZS1icmVha3Mg
dXNpbmcgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBC
cmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyBzZW50ZW5jZSBicmVha3MuCisgICAgICogQHBhcmFt
IHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4K
KyAgICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3Igc2VudGVuY2UtYnJlYWtzLiAgVGhl
IFVFcnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBz
dGF0dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0
aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAg
KiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVk
IGluZm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJy
b3IgcmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdf
RkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVz
ZWQuICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3Ro
aW5nIHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19E
RUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2Fz
CisgICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0
cyBmYWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBj
YWxsZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVs
ZXRpbmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJy
ZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZVNlbnRlbmNlSW5zdGFuY2UoY29uc3Qg
TG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENy
ZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciB0aXRsZS1jYXNpbmcgYnJlYWtzIHVzaW5nIHRoZSBzcGVj
aWZpZWQgbG9jYWxlCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0
b3IgaW1wbGVtZW50aW5nIHRpdGxlIGJyZWFrcy4KKyAgICAgKiBUaGUgaXRlcmF0b3IgcmV0dXJu
ZWQgbG9jYXRlcyB0aXRsZSBib3VuZGFyaWVzIGFzIGRlc2NyaWJlZCBmb3IKKyAgICAgKiBVbmlj
b2RlIDMuMiBvbmx5LiBGb3IgVW5pY29kZSA0LjAgYW5kIGFib3ZlIHRpdGxlIGJvdW5kYXJ5IGl0
ZXJhdGlvbiwKKyAgICAgKiBwbGVhc2UgdXNlIFdvcmQgQm91bmRhcnkgaXRlcmF0b3Iue0BsaW5r
ICNjcmVhdGVXb3JkSW5zdGFuY2UgfQorICAgICAqCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBs
b2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0
dXJuIEEgQnJlYWtJdGVyYXRvciBmb3IgdGl0bGUtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0
YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRp
b24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9u
IHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2Yg
VV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5
b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGlj
aCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklO
RyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAg
KiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0
aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcg
aW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsg
bmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9j
YWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUg
cmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVf
RVhQT1JUMgorICAgIGNyZWF0ZVRpdGxlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVy
cm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc2V0IG9mIExvY2Fs
ZXMgZm9yIHdoaWNoIFRleHRCb3VuZGFyaWVzIGFyZSBpbnN0YWxsZWQuCisgICAgICogPHA+PGI+
Tm90ZTo8L2I+IHRoaXMgd2lsbCBub3QgcmV0dXJuIGxvY2FsZXMgYWRkZWQgdGhyb3VnaCB0aGUg
cmVnaXN0ZXIKKyAgICAgKiBjYWxsLiBUbyBzZWUgdGhlIHJlZ2lzdGVyZWQgbG9jYWxlcyB0b28s
IHVzZSB0aGUgZ2V0QXZhaWxhYmxlTG9jYWxlcworICAgICAqIGZ1bmN0aW9uIHRoYXQgcmV0dXJu
cyBhIFN0cmluZ0VudW1lcmF0aW9uIG9iamVjdCA8L3A+CisgICAgICogQHBhcmFtIGNvdW50IHRo
ZSBvdXRwdXQgcGFyYW1ldGVyIG9mIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgbG9jYWxlIGxp
c3QKKyAgICAgKiBAcmV0dXJuIGF2YWlsYWJsZSBsb2NhbGVzCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSogVV9FWFBPUlQyIGdldEF2YWls
YWJsZUxvY2FsZXMoaW50MzJfdCYgY291bnQpOworCisgICAgLyoqCisgICAgICogR2V0IG5hbWUg
b2YgdGhlIG9iamVjdCBmb3IgdGhlIGRlc2lyZWQgTG9jYWxlLCBpbiB0aGUgZGVzaXJlZCBsYW5n
YXVnZS4KKyAgICAgKiBAcGFyYW0gb2JqZWN0TG9jYWxlIG11c3QgYmUgZnJvbSBnZXRBdmFpbGFi
bGVMb2NhbGVzLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHNwZWNpZmllcyB0aGUgZGVz
aXJlZCBsb2NhbGUgZm9yIG91dHB1dC4KKyAgICAgKiBAcGFyYW0gbmFtZSB0aGUgZmlsbC1pbiBw
YXJhbWV0ZXIgb2YgdGhlIHJldHVybiB2YWx1ZQorICAgICAqIFVzZXMgYmVzdCBtYXRjaC4KKyAg
ICAgKiBAcmV0dXJuIHVzZXItZGlzcGxheWFibGUgbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBVX0VYUE9SVDIgZ2V0RGlzcGxh
eU5hbWUoY29uc3QgTG9jYWxlJiBvYmplY3RMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYgZGlzcGxheUxvY2FsZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgbmFtZSk7CisK
KyAgICAvKioKKyAgICAgKiBHZXQgbmFtZSBvZiB0aGUgb2JqZWN0IGZvciB0aGUgZGVzaXJlZCBM
b2NhbGUsIGluIHRoZSBsYW5nYXVnZSBvZiB0aGUKKyAgICAgKiBkZWZhdWx0IGxvY2FsZS4KKyAg
ICAgKiBAcGFyYW0gb2JqZWN0TG9jYWxlIG11c3QgYmUgZnJvbSBnZXRNYXRjaGluZ0xvY2FsZXMK
KyAgICAgKiBAcGFyYW0gbmFtZSB0aGUgZmlsbC1pbiBwYXJhbWV0ZXIgb2YgdGhlIHJldHVybiB2
YWx1ZQorICAgICAqIEByZXR1cm4gdXNlci1kaXNwbGF5YWJsZSBuYW1lCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVuaWNvZGVTdHJpbmcmIFVfRVhQT1JUMiBn
ZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmIG9iamVjdExvY2FsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgbmFtZSk7CisKKyAgICAv
KioKKyAgICAgKiBEZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkuIFVzZSBjbG9uZSgpIGluc3RlYWQu
CisgICAgICoKKyAgICAgKiBUaHJlYWQgc2FmZSBjbGllbnQtYnVmZmVyLWJhc2VkIGNsb25pbmcg
b3BlcmF0aW9uCisgICAgICogICAgRG8gTk9UIGNhbGwgZGVsZXRlIG9uIGEgc2FmZWNsb25lLCBz
aW5jZSAnbmV3JyBpcyBub3QgdXNlZCB0byBjcmVhdGUgaXQuCisgICAgICogQHBhcmFtIHN0YWNr
QnVmZmVyIHVzZXIgYWxsb2NhdGVkIHNwYWNlIGZvciB0aGUgbmV3IGNsb25lLiBJZiBOVUxMIG5l
dyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogSWYgYnVmZmVyIGlzIG5vdCBsYXJn
ZSBlbm91Z2gsIG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogQHBhcmFtIEJ1
ZmZlclNpemUgcmVmZXJlbmNlIHRvIHNpemUgb2YgYWxsb2NhdGVkIHNwYWNlLgorICAgICAqIElm
IEJ1ZmZlclNpemUgPT0gMCwgYSBzdWZmaWNpZW50IHNpemUgZm9yIHVzZSBpbiBjbG9uaW5nIHdp
bGwKKyAgICAgKiBiZSByZXR1cm5lZCAoJ3ByZS1mbGlnaHRpbmcnKQorICAgICAqIElmIEJ1ZmZl
clNpemUgaXMgbm90IGVub3VnaCBmb3IgYSBzdGFjay1iYXNlZCBzYWZlIGNsb25lLAorICAgICAq
IG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogQHBhcmFtIHN0YXR1cyB0byBp
bmRpY2F0ZSB3aGV0aGVyIHRoZSBvcGVyYXRpb24gd2VudCBvbiBzbW9vdGhseSBvciB0aGVyZSB3
ZXJlIGVycm9ycworICAgICAqICBBbiBpbmZvcm1hdGlvbmFsIHN0YXR1cyB2YWx1ZSwgVV9TQUZF
Q0xPTkVfQUxMT0NBVEVEX0VSUk9SLCBpcyB1c2VkIGlmIGFueSBhbGxvY2F0aW9ucyB3ZXJlCisg
ICAgICogIG5lY2Vzc2FyeS4KKyAgICAgKiBAcmV0dXJuIHBvaW50ZXIgdG8gdGhlIG5ldyBjbG9u
ZQorICAgICAqCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0ZWFk
LgorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciAqICBjcmVhdGVCdWZmZXJDbG9u
ZSh2b2lkICpzdGFja0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50MzJfdCAmQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyNpZm5k
ZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisKKyAgICAvKioKKyAgICAgKiAgIERldGVybWluZSB3
aGV0aGVyIHRoZSBCcmVha0l0ZXJhdG9yIHdhcyBjcmVhdGVkIGluIHVzZXIgbWVtb3J5IGJ5Cisg
ICAgICogICBjcmVhdGVCdWZmZXJDbG9uZSgpLCBhbmQgdGh1cyBzaG91bGQgbm90IGJlIGRlbGV0
ZWQuICBTdWNoIG9iamVjdHMKKyAgICAgKiAgIG11c3QgYmUgY2xvc2VkIGJ5IGFuIGV4cGxpY2l0
IGNhbGwgdG8gdGhlIGRlc3RydWN0b3IgKG5vdCBkZWxldGUpLgorICAgICAqIEBkZXByZWNhdGVk
IElDVSA1Mi4gQWx3YXlzIGRlbGV0ZSB0aGUgQnJlYWtJdGVyYXRvci4KKyAgICAgKi8KKyAgICBp
bmxpbmUgVUJvb2wgaXNCdWZmZXJDbG9uZSh2b2lkKTsKKworI2VuZGlmIC8qIFVfSElERV9ERVBS
RUNBVEVEX0FQSSAqLworCisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorICAgIC8qKgorICAgICAq
IFJlZ2lzdGVyIGEgbmV3IGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBpbmRpY2F0ZWQga2luZCwgdG8g
dXNlIGluIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogVGhlIGJyZWFrIGl0ZXJhdG9yIHdpbGwg
YmUgYWRvcHRlZC4gIENsb25lcyBvZiB0aGUgaXRlcmF0b3Igd2lsbCBiZSByZXR1cm5lZAorICAg
ICAqIGlmIGEgcmVxdWVzdCBmb3IgYSBicmVhayBpdGVyYXRvciBvZiB0aGUgZ2l2ZW4ga2luZCBt
YXRjaGVzIG9yIGZhbGxzIGJhY2sgdG8KKyAgICAgKiB0aGlzIGxvY2FsZS4KKyAgICAgKiBCZWNh
dXNlIElDVSBtYXkgY2hvb3NlIHRvIGNhY2hlIEJyZWFrSXRlcmF0b3JzIGludGVybmFsbHksIHRo
aXMgbXVzdAorICAgICAqIGJlIGNhbGxlZCBhdCBhcHBsaWNhdGlvbiBzdGFydHVwLCBwcmlvciB0
byBhbnkgY2FsbHMgdG8KKyAgICAgKiBCcmVha0l0ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0
byBhdm9pZCB1bmRlZmluZWQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIHRvQWRvcHQgdGhlIEJy
ZWFrSXRlcmF0b3IgaW5zdGFuY2UgdG8gYmUgYWRvcHRlZAorICAgICAqIEBwYXJhbSBsb2NhbGUg
dGhlIExvY2FsZSBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisg
ICAgICogQHBhcmFtIGtpbmQgdGhlIHR5cGUgb2YgaXRlcmF0b3IgZm9yIHdoaWNoIHRoaXMgaW5z
dGFuY2UgaXMgdG8gYmUgcmVnaXN0ZXJlZAorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGluL291
dCBzdGF0dXMgY29kZSwgbm8gc3BlY2lhbCBtZWFuaW5ncyBhcmUgYXNzaWduZWQKKyAgICAgKiBA
cmV0dXJuIGEgcmVnaXN0cnkga2V5IHRoYXQgY2FuIGJlIHVzZWQgdG8gdW5yZWdpc3RlciB0aGlz
IGluc3RhbmNlCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgc3RhdGljIFVS
ZWdpc3RyeUtleSBVX0VYUE9SVDIgcmVnaXN0ZXJJbnN0YW5jZShCcmVha0l0ZXJhdG9yKiB0b0Fk
b3B0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExvY2Fs
ZSYgbG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVCcmVh
a0l0ZXJhdG9yVHlwZSBraW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGEg
cHJldmlvdXNseS1yZWdpc3RlcmVkIEJyZWFrSXRlcmF0b3IgdXNpbmcgdGhlIGtleSByZXR1cm5l
ZCBmcm9tIHRoZQorICAgICAqIHJlZ2lzdGVyIGNhbGwuICBLZXkgYmVjb21lcyBpbnZhbGlkIGFm
dGVyIGEgc3VjY2Vzc2Z1bCBjYWxsIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYWdhaW4uCisgICAg
ICogVGhlIEJyZWFrSXRlcmF0b3IgY29ycmVzcG9uZGluZyB0byB0aGUga2V5IHdpbGwgYmUgZGVs
ZXRlZC4KKyAgICAgKiBCZWNhdXNlIElDVSBtYXkgY2hvb3NlIHRvIGNhY2hlIEJyZWFrSXRlcmF0
b3JzIGludGVybmFsbHksIHRoaXMgc2hvdWxkCisgICAgICogYmUgY2FsbGVkIGR1cmluZyBhcHBs
aWNhdGlvbiBzaHV0ZG93biwgYWZ0ZXIgYWxsIGNhbGxzIHRvCisgICAgICogQnJlYWtJdGVyYXRv
cjo6Y3JlYXRlWFhYSW5zdGFuY2UgdG8gYXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9yLgorICAgICAq
IEBwYXJhbSBrZXkgdGhlIHJlZ2lzdHJ5IGtleSByZXR1cm5lZCBieSBhIHByZXZpb3VzIGNhbGwg
dG8gcmVnaXN0ZXJJbnN0YW5jZQorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGluL291dCBzdGF0
dXMgY29kZSwgbm8gc3BlY2lhbCBtZWFuaW5ncyBhcmUgYXNzaWduZWQKKyAgICAgKiBAcmV0dXJu
IFRSVUUgaWYgdGhlIGl0ZXJhdG9yIGZvciB0aGUga2V5IHdhcyBzdWNjZXNzZnVsbHkgdW5yZWdp
c3RlcmVkCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgc3RhdGljIFVCb29s
IFVfRVhQT1JUMiB1bnJlZ2lzdGVyKFVSZWdpc3RyeUtleSBrZXksIFVFcnJvckNvZGUmIHN0YXR1
cyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBTdHJpbmdFbnVtZXJhdGlvbiBvdmVyIHRo
ZSBsb2NhbGVzIGF2YWlsYWJsZSBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbCwKKyAgICAgKiBpbmNs
dWRpbmcgcmVnaXN0ZXJlZCBsb2NhbGVzLgorICAgICAqIEByZXR1cm4gYSBTdHJpbmdFbnVtZXJh
dGlvbiBvdmVyIHRoZSBsb2NhbGVzIGF2YWlsYWJsZSBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbAor
ICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHN0YXRpYyBTdHJpbmdFbnVtZXJh
dGlvbiogVV9FWFBPUlQyIGdldEF2YWlsYWJsZUxvY2FsZXModm9pZCk7CisjZW5kaWYKKworICAg
IC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSBmb3IgdGhpcyBicmVhayBpdGVyYXRvci4g
VHdvIGZsYXZvcnMgYXJlIGF2YWlsYWJsZTogdmFsaWQgYW5kCisgICAgICogYWN0dWFsIGxvY2Fs
ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBMb2NhbGUgZ2V0TG9jYWxl
KFVMb2NEYXRhTG9jYWxlVHlwZSB0eXBlLCBVRXJyb3JDb2RlJiBzdGF0dXMpIGNvbnN0OworCisj
aWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKiogR2V0IHRoZSBsb2NhbGUgZm9yIHRo
aXMgYnJlYWsgaXRlcmF0b3Igb2JqZWN0LiBZb3UgY2FuIGNob29zZSBiZXR3ZWVuIHZhbGlkIGFu
ZCBhY3R1YWwgbG9jYWxlLgorICAgICAqICBAcGFyYW0gdHlwZSB0eXBlIG9mIHRoZSBsb2NhbGUg
d2UncmUgbG9va2luZyBmb3IgKHZhbGlkIG9yIGFjdHVhbCkKKyAgICAgKiAgQHBhcmFtIHN0YXR1
cyBlcnJvciBjb2RlIGZvciB0aGUgb3BlcmF0aW9uCisgICAgICogIEByZXR1cm4gdGhlIGxvY2Fs
ZQorICAgICAqICBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICpnZXRMb2NhbGVJ
RChVTG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwgVUVycm9yQ29kZSYgc3RhdHVzKSBjb25zdDsKKyNl
bmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisgICAgLyoqCisgICAgICogIFNldCB0
aGUgc3ViamVjdCB0ZXh0IHN0cmluZyB1cG9uIHdoaWNoIHRoZSBicmVhayBpdGVyYXRvciBpcyBv
cGVyYXRpbmcKKyAgICAgKiAgd2l0aG91dCBjaGFuZ2luZyBhbnkgb3RoZXIgYXNwZWN0IG9mIHRo
ZSBtYXRjaGluZyBzdGF0ZS4KKyAgICAgKiAgVGhlIG5ldyBhbmQgcHJldmlvdXMgdGV4dCBzdHJp
bmdzIG11c3QgaGF2ZSB0aGUgc2FtZSBjb250ZW50LgorICAgICAqCisgICAgICogIFRoaXMgZnVu
Y3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBpbiBlbnZpcm9ubWVudHMgd2hlcmUgSUNVIGlzIG9w
ZXJhdGluZyBvbgorICAgICAqICBzdHJpbmdzIHRoYXQgbWF5IG1vdmUgYXJvdW5kIGluIG1lbW9y
eS4gIEl0IHByb3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBub3RpZnlpbmcKKyAgICAgKiAgSUNVIHRo
YXQgdGhlIHN0cmluZyBoYXMgYmVlbiByZWxvY2F0ZWQsIGFuZCBwcm92aWRpbmcgYSBuZXcgVVRl
eHQgdG8gYWNjZXNzIHRoZQorICAgICAqICBzdHJpbmcgaW4gaXRzIG5ldyBwb3NpdGlvbi4KKyAg
ICAgKgorICAgICAqICBOb3RlIHRoYXQgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9u
IG5ldmVyIGNvcGllcyB0aGUgdW5kZXJseWluZyB0ZXh0CisgICAgICogIG9mIGEgc3RyaW5nIGJl
aW5nIHByb2Nlc3NlZCwgYnV0IGFsd2F5cyBvcGVyYXRlcyBkaXJlY3RseSBvbiB0aGUgb3JpZ2lu
YWwgdGV4dAorICAgICAqICBwcm92aWRlZCBieSB0aGUgdXNlci4gUmVmcmVzaGluZyBzaW1wbHkg
ZHJvcHMgdGhlIHJlZmVyZW5jZXMgdG8gdGhlIG9sZCB0ZXh0CisgICAgICogIGFuZCByZXBsYWNl
cyB0aGVtIHdpdGggcmVmZXJlbmNlcyB0byB0aGUgbmV3LgorICAgICAqCisgICAgICogIENhdXRp
b246ICB0aGlzIGZ1bmN0aW9uIGlzIG5vcm1hbGx5IHVzZWQgb25seSBieSB2ZXJ5IHNwZWNpYWxp
emVkLAorICAgICAqICBzeXN0ZW0tbGV2ZWwgY29kZS4gIE9uZSBleGFtcGxlIHVzZSBjYXNlIGlz
IHdpdGggZ2FyYmFnZSBjb2xsZWN0aW9uIHRoYXQgbW92ZXMKKyAgICAgKiAgdGhlIHRleHQgaW4g
bWVtb3J5LgorICAgICAqCisgICAgICogQHBhcmFtIGlucHV0ICAgICAgVGhlIG5ldyAobW92ZWQp
IHRleHQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgIFJlY2VpdmVzIGVycm9ycyBk
ZXRlY3RlZCBieSB0aGlzIGZ1bmN0aW9uLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICp0aGlz
CisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAgIHZpcnR1YWwgQnJl
YWtJdGVyYXRvciAmcmVmcmVzaElucHV0VGV4dChVVGV4dCAqaW5wdXQsIFVFcnJvckNvZGUgJnN0
YXR1cykgPSAwOworCisgcHJpdmF0ZToKKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogYnVpbGRJ
bnN0YW5jZShjb25zdCBMb2NhbGUmIGxvYywgY29uc3QgY2hhciAqdHlwZSwgaW50MzJfdCBraW5k
LCBVRXJyb3JDb2RlJiBzdGF0dXMpOworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBjcmVhdGVJ
bnN0YW5jZShjb25zdCBMb2NhbGUmIGxvYywgaW50MzJfdCBraW5kLCBVRXJyb3JDb2RlJiBzdGF0
dXMpOworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBtYWtlSW5zdGFuY2UoY29uc3QgTG9jYWxl
JiBsb2MsIGludDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIGZyaWVuZCBj
bGFzcyBJQ1VCcmVha0l0ZXJhdG9yRmFjdG9yeTsKKyAgICBmcmllbmQgY2xhc3MgSUNVQnJlYWtJ
dGVyYXRvclNlcnZpY2U7CisKK3Byb3RlY3RlZDoKKyAgICAvLyBEbyBub3QgZW5jbG9zZSBwcm90
ZWN0ZWQgZGVmYXVsdC9jb3B5IGNvbnN0cnVjdG9ycyB3aXRoICNpZm5kZWYgVV9ISURFX0lOVEVS
TkFMX0FQSQorICAgIC8vIG9yIGVsc2UgdGhlIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGEgcHVibGlj
IG9uZXMuCisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFrSXRlcmF0b3IoKTsKKyAgICAv
KiogQGludGVybmFsICovCisgICAgQnJlYWtJdGVyYXRvciAoY29uc3QgQnJlYWtJdGVyYXRvciAm
b3RoZXIpIDogVU9iamVjdChvdGhlcikge30KKyAgICAvKiogQGludGVybmFsICovCisgICAgQnJl
YWtJdGVyYXRvciAoY29uc3QgTG9jYWxlJiB2YWxpZCwgY29uc3QgTG9jYWxlJiBhY3R1YWwpOwor
cHJpdmF0ZToKKworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBjaGFyIGFjdHVhbExvY2FsZVtV
TE9DX0ZVTExOQU1FX0NBUEFDSVRZXTsKKyAgICBjaGFyIHZhbGlkTG9jYWxlW1VMT0NfRlVMTE5B
TUVfQ0FQQUNJVFldOworCisgICAgLyoqCisgICAgICogVGhlIGFzc2lnbm1lbnQgb3BlcmF0b3Ig
aGFzIG5vIHJlYWwgaW1wbGVtZW50YXRpb24uCisgICAgICogSXQncyBwcm92aWRlZCB0byBtYWtl
IHRoZSBjb21waWxlciBoYXBweS4gRG8gbm90IGNhbGwuCisgICAgICovCisgICAgQnJlYWtJdGVy
YXRvciYgb3BlcmF0b3I9KGNvbnN0IEJyZWFrSXRlcmF0b3ImKTsKK307CisKKyNpZm5kZWYgVV9I
SURFX0RFUFJFQ0FURURfQVBJCisKK2lubGluZSBVQm9vbCBCcmVha0l0ZXJhdG9yOjppc0J1ZmZl
ckNsb25lKCkKK3sKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKKyNlbmRpZiAvKiBVX0hJREVfREVQ
UkVDQVRFRF9BUEkgKi8KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZiAvKiAjaWYgIVVDT05G
SUdfTk9fQlJFQUtfSVRFUkFUSU9OICovCisKKyNlbmRpZiAvLyBfQlJLSVRFUgorLy9lb2YKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaCBiL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvY2hhcml0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGQ2NTA5MGE0MGE2MDg1OTUxYzcz
MzA3Zjc0YWNmODNiYTFiYmM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5p
Y29kZS9jaGFyaXRlci5oCkBAIC0wLDAgKzEsNzIyIEBACisvKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyog
ICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5l
cworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyovCisKKyNpZm5kZWYgQ0hBUklURVJfSAorI2RlZmluZSBDSEFSSVRFUl9I
CisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW9iamVj
dC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisvKioKKyAqIFxmaWxlCisgKiBcYnJp
ZWYgQysrIEFQSTogQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lO
CisvKioKKyAqIEFic3RyYWN0IGNsYXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGZvcndhcmQt
b25seSBpdGVyYXRpb24KKyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMgaXMgYSBtaW5pbWFs
IGludGVyZmFjZSBmb3IgaXRlcmF0aW9uIHdpdGhvdXQgcmFuZG9tIGFjY2VzcworICogb3IgYmFj
a3dhcmRzIGl0ZXJhdGlvbi4gSXQgaXMgZXNwZWNpYWxseSB1c2VmdWwgZm9yIHdyYXBwaW5nCisg
KiBzdHJlYW1zIHdpdGggY29udmVydGVycyBpbnRvIGFuIG9iamVjdCBmb3IgY29sbGF0aW9uIG9y
CisgKiBub3JtYWxpemF0aW9uLgorICoKKyAqIDxwPkNoYXJhY3RlcnMgY2FuIGJlIGFjY2Vzc2Vk
IGluIHR3byB3YXlzOiBhcyBjb2RlIHVuaXRzIG9yIGFzCisgKiBjb2RlIHBvaW50cy4KKyAqIFVu
aWNvZGUgY29kZSBwb2ludHMgYXJlIDIxLWJpdCBpbnRlZ2VycyBhbmQgYXJlIHRoZSBzY2FsYXIg
dmFsdWVzCisgKiBvZiBVbmljb2RlIGNoYXJhY3RlcnMuIElDVSB1c2VzIHRoZSB0eXBlIFVDaGFy
MzIgZm9yIHRoZW0uCisgKiBVbmljb2RlIGNvZGUgdW5pdHMgYXJlIHRoZSBzdG9yYWdlIHVuaXRz
IG9mIGEgZ2l2ZW4KKyAqIFVuaWNvZGUvVUNTIFRyYW5zZm9ybWF0aW9uIEZvcm1hdCAoYSBjaGFy
YWN0ZXIgZW5jb2Rpbmcgc2NoZW1lKS4KKyAqIFdpdGggVVRGLTE2LCBhbGwgY29kZSBwb2ludHMg
Y2FuIGJlIHJlcHJlc2VudGVkIHdpdGggZWl0aGVyIG9uZQorICogb3IgdHdvIGNvZGUgdW5pdHMg
KCJzdXJyb2dhdGVzIikuCisgKiBTdHJpbmcgc3RvcmFnZSBpcyB0eXBpY2FsbHkgYmFzZWQgb24g
Y29kZSB1bml0cywgd2hpbGUgcHJvcGVydGllcworICogb2YgY2hhcmFjdGVycyBhcmUgdHlwaWNh
bGx5IGRldGVybWluZWQgdXNpbmcgY29kZSBwb2ludCB2YWx1ZXMuCisgKiBTb21lIHByb2Nlc3Nl
cyBtYXkgYmUgZGVzaWduZWQgdG8gd29yayB3aXRoIHNlcXVlbmNlcyBvZiBjb2RlIHVuaXRzLAor
ICogb3IgaXQgbWF5IGJlIGtub3duIHRoYXQgYWxsIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW1wb3J0
YW50IHRvIGFuCisgKiBhbGdvcml0aG0gY2FuIGJlIHJlcHJlc2VudGVkIHdpdGggc2luZ2xlIGNv
ZGUgdW5pdHMuCisgKiBPdGhlciBwcm9jZXNzZXMgd2lsbCBuZWVkIHRvIHVzZSB0aGUgY29kZSBw
b2ludCBhY2Nlc3MgZnVuY3Rpb25zLjwvcD4KKyAqCisgKiA8cD5Gb3J3YXJkQ2hhcmFjdGVySXRl
cmF0b3IgcHJvdmlkZXMgbmV4dFBvc3RJbmMoKSB0byBhY2Nlc3MKKyAqIGEgY29kZSB1bml0IGFu
ZCBhZHZhbmNlIGFuIGludGVybmFsIHBvc2l0aW9uIGludG8gdGhlIHRleHQgb2JqZWN0LAorICog
c2ltaWxhciB0byBhIDxjb2RlPnJldHVybiB0ZXh0W3Bvc2l0aW9uKytdPC9jb2RlPi48YnI+Cisg
KiBJdCBwcm92aWRlcyBuZXh0MzJQb3N0SW5jKCkgdG8gYWNjZXNzIGEgY29kZSBwb2ludCBhbmQg
YWR2YW5jZSBhbiBpbnRlcm5hbAorICogcG9zaXRpb24uPC9wPgorICoKKyAqIDxwPm5leHQzMlBv
c3RJbmMoKSBhc3N1bWVzIHRoYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgdGhhdCBvZgorICog
dGhlIGJlZ2lubmluZyBvZiBhIGNvZGUgcG9pbnQsIGkuZS4sIG9mIGl0cyBmaXJzdCBjb2RlIHVu
aXQuCisgKiBBZnRlciBuZXh0MzJQb3N0SW5jKCksIHRoaXMgd2lsbCBiZSB0cnVlIGFnYWluLgor
ICogSW4gZ2VuZXJhbCwgYWNjZXNzIHRvIGNvZGUgdW5pdHMgYW5kIGNvZGUgcG9pbnRzIGluIHRo
ZSBzYW1lCisgKiBpdGVyYXRpb24gbG9vcCBzaG91bGQgbm90IGJlIG1peGVkLiBJbiBVVEYtMTYs
IGlmIHRoZSBjdXJyZW50IHBvc2l0aW9uCisgKiBpcyBvbiBhIHNlY29uZCBjb2RlIHVuaXQgKExv
dyBTdXJyb2dhdGUpLCB0aGVuIG9ubHkgdGhhdCBjb2RlIHVuaXQKKyAqIGlzIHJldHVybmVkIGV2
ZW4gYnkgbmV4dDMyUG9zdEluYygpLjwvcD4KKyAqCisgKiA8cD5Gb3IgaXRlcmF0aW9uIHdpdGgg
ZWl0aGVyIGZ1bmN0aW9uLCB0aGVyZSBhcmUgdHdvIHdheXMgdG8KKyAqIGNoZWNrIGZvciB0aGUg
ZW5kIG9mIHRoZSBpdGVyYXRpb24uIFdoZW4gdGhlcmUgYXJlIG5vIG1vcmUKKyAqIGNoYXJhY3Rl
cnMgaW4gdGhlIHRleHQgb2JqZWN0OgorICogPHVsPgorICogPGxpPlRoZSBoYXNOZXh0KCkgZnVu
Y3Rpb24gcmV0dXJucyBGQUxTRS48L2xpPgorICogPGxpPm5leHRQb3N0SW5jKCkgYW5kIG5leHQz
MlBvc3RJbmMoKSByZXR1cm4gRE9ORQorICogICAgIHdoZW4gb25lIGF0dGVtcHRzIHRvIHJlYWQg
YmV5b25kIHRoZSBlbmQgb2YgdGhlIHRleHQgb2JqZWN0LjwvbGk+CisgKiA8L3VsPgorICoKKyAq
IEV4YW1wbGU6CisgKiBcY29kZSAKKyAqIHZvaWQgZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhcjMyIGM7CisgKiAgICAgd2hpbGUoaXQuaGFzTmV4
dCgpKSB7CisgKiAgICAgICAgIGM9aXQubmV4dDMyUG9zdEluYygpOworICogICAgICAgICAvLyB1
c2UgYworICogICAgIH0KKyAqIH0KKyAqCisgKiB2b2lkIGZ1bmN0aW9uMShGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAgICB3aGlsZSgoYz1pdC5u
ZXh0UG9zdEluYygpKSE9Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yOjpET05FKSB7CisgKiAgICAg
ICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wPgorICoK
KyAqIEBzdGFibGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgRm9yd2FyZENoYXJh
Y3Rlckl0ZXJhdG9yIDogcHVibGljIFVPYmplY3QgeworcHVibGljOgorICAgIC8qKgorICAgICAq
IFZhbHVlIHJldHVybmVkIGJ5IG1vc3Qgb2YgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJ3MgZnVu
Y3Rpb25zCisgICAgICogd2hlbiB0aGUgaXRlcmF0b3IgaGFzIHJlYWNoZWQgdGhlIGxpbWl0cyBv
ZiBpdHMgaXRlcmF0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGVu
dW0geyBET05FID0gMHhmZmZmIH07CisgICAgCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3Rvci4g
IAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkZvcndhcmRD
aGFyYWN0ZXJJdGVyYXRvcigpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSB3
aGVuIGJvdGggaXRlcmF0b3JzIHJlZmVyIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGlu
IHRoZSBzYW1lIGNoYXJhY3Rlci1zdG9yYWdlIG9iamVjdC4gIAorICAgICAqIEBwYXJhbSB0aGF0
IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5
CisgICAgICogQHJldHVybiB0cnVlIHdoZW4gYm90aCBpdGVyYXRvcnMgcmVmZXIgdG8gdGhlIHNh
bWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgY2hhcmFjdGVyLXN0b3JhZ2Ugb2JqZWN0
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVy
YXRvcj09KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3QgPSAwOwor
ICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBpdGVyYXRvcnMgcmVm
ZXIgdG8gZGlmZmVyZW50CisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdHMsIG9yIHRvIGRpZmZl
cmVudCBjaGFyYWN0ZXJzIGluIHRoZQorICAgICAqIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdC4g
IAorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUg
Y29tcGFyZWQgZm9yIGluZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRydWUgd2hlbiB0aGUgaXRl
cmF0b3JzIHJlZmVyIHRvIGRpZmZlcmVudAorICAgICAqIHRleHQtc3RvcmFnZSBvYmplY3RzLCBv
ciB0byBkaWZmZXJlbnQgY2hhcmFjdGVycyBpbiB0aGUKKyAgICAgKiBzYW1lIHRleHQtc3RvcmFn
ZSBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgVUJv
b2wgb3BlcmF0b3IhPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0
OworICAgIAorICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhpcyBp
dGVyYXRvci4gIAorICAgICAqIEByZXR1cm4gdGhlIGhhc2ggY29kZS4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgaGFzaENvZGUodm9pZCkgY29u
c3QgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhp
cyBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgKCJwb29yIG1hbidzCisgICAgICogUlRUSSIpLjxQ
PiBEZXNwaXRlIHRoZSBmYWN0IHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBwdWJsaWMsCisgICAgICog
RE8gTk9UIENPTlNJREVSIElUIFBBUlQgT0YgQ0hBUkFDVEVSSVRFUkFUT1InUyBBUEkhIAorICAg
ICAqIEByZXR1cm4gYSBVQ2xhc3NJRCBmb3IgdGhpcyBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Ig
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBn
ZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICog
R2V0cyB0aGUgY3VycmVudCBjb2RlIHVuaXQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8g
dGhlIG5leHQgY29kZSB1bml0CisgICAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAq
ICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUg
dW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICogQHJldHVybiB0aGUgY3VycmVu
dCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBVQ2hhciAgICAgICAgIG5leHRQb3N0SW5jKHZvaWQpID0gMDsKKyAgICAKKyAgICAvKioKKyAg
ICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5j
ZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludAorICAgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UK
KyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9y
ZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRo
ZSBjdXJyZW50IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMlBvc3RJbmModm9pZCkgPSAwOworICAgIAor
ICAgIC8qKgorICAgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1
bml0cyBvciBjb2RlIHBvaW50cworICAgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0
aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogVGhpcyBpcyB1c2VkIHdpdGggbmV4
dFBvc3RJbmMoKSBvciBuZXh0MzJQb3N0SW5jKCkgaW4gZm9yd2FyZAorICAgICAqIGl0ZXJhdGlv
bi4KKyAgICAgKiBAcmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRz
IG9yIGNvZGUgcG9pbnRzCisgICAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24g
aW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNOZXh0KCkgPSAwOworICAgIAorcHJvdGVjdGVk
OgorICAgIC8qKiBEZWZhdWx0IGNvbnN0cnVjdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGlt
cGxlbWVudGluZyBjbGFzcy4gQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVy
SXRlcmF0b3IoKTsKKyAgICAKKyAgICAvKiogQ29weSBjb25zdHJ1Y3RvciB0byBiZSBvdmVycmlk
ZGVuIGluIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3MuIEBzdGFibGUgSUNVIDIuMCovCisgICAgRm9y
d2FyZENoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmb3Ro
ZXIpOworICAgIAorICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IgdG8gYmUgb3Zl
cnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmb3BlcmF0b3I9KGNvbnN0
IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYpIHsgcmV0dXJuICp0aGlzOyB9Cit9OworCisvKioK
KyAqIEFic3RyYWN0IGNsYXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGl0ZXJhdGlvbgorICog
b24gdGV4dCBvYmplY3RzLgorICogVGhpcyBpcyBhbiBpbnRlcmZhY2UgZm9yIGZvcndhcmQgYW5k
IGJhY2t3YXJkIGl0ZXJhdGlvbgorICogYW5kIHJhbmRvbSBhY2Nlc3MgaW50byBhIHRleHQgb2Jq
ZWN0LgorICoKKyAqIDxwPlRoZSBBUEkgcHJvdmlkZXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB0
byB0aGUgSmF2YSBhbmQgb2xkZXIgSUNVCisgKiBDaGFyYWN0ZXJJdGVyYXRvciBjbGFzc2VzIGJ1
dCBleHRlbmRzIHRoZW0gc2lnbmlmaWNhbnRseToKKyAqIDxvbD4KKyAqIDxsaT5DaGFyYWN0ZXJJ
dGVyYXRvciBpcyBub3cgYSBzdWJjbGFzcyBvZiBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuPC9s
aT4KKyAqIDxsaT5XaGlsZSB0aGUgb2xkIEFQSSBmdW5jdGlvbnMgcHJvdmlkZWQgZm9yd2FyZCBp
dGVyYXRpb24gd2l0aAorICogICAgICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MsIHRoZSBuZXcg
b25lIGFsc28gcHJvdmlkZXMgZnVuY3Rpb25zCisgKiAgICAgd2l0aCAicG9zdC1pbmNyZW1lbnQi
IHNlbWFudGljcy4gVGhleSBhcmUgbW9yZSBlZmZpY2llbnQgYW5kIHNob3VsZAorICogICAgIGJl
IHRoZSBwcmVmZXJyZWQgaXRlcmF0b3IgZnVuY3Rpb25zIGZvciBuZXcgaW1wbGVtZW50YXRpb25z
LgorICogICAgIFRoZSBiYWNrd2FyZCBpdGVyYXRpb24gYWx3YXlzIGhhZCAicHJlLWRlY3JlbWVu
dCIgc2VtYW50aWNzLCB3aGljaAorICogICAgIGFyZSBlZmZpY2llbnQuPC9saT4KKyAqIDxsaT5K
dXN0IGxpa2UgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLCBpdCBwcm92aWRlcyBhY2Nlc3MgdG8K
KyAqICAgICBib3RoIGNvZGUgdW5pdHMgYW5kIGNvZGUgcG9pbnRzLiBDb2RlIHBvaW50IGFjY2Vz
cyB2ZXJzaW9ucyBhcmUgYXZhaWxhYmxlCisgKiAgICAgZm9yIHRoZSBvbGQgYW5kIHRoZSBuZXcg
aXRlcmF0aW9uIHNlbWFudGljcy48L2xpPgorICogPGxpPlRoZXJlIGFyZSBuZXcgZnVuY3Rpb25z
IGZvciBzZXR0aW5nIGFuZCBtb3ZpbmcgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICB3aXRo
b3V0IHJldHVybmluZyBhIGNoYXJhY3RlciwgZm9yIGVmZmljaWVuY3kuPC9saT4KKyAqIDwvb2w+
CisgKgorICogU2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciBmb3IgZXhhbXBsZXMgZm9yIHVz
aW5nIHRoZSBuZXcgZm9yd2FyZCBpdGVyYXRpb24KKyAqIGZ1bmN0aW9ucy4gRm9yIGJhY2t3YXJk
IGl0ZXJhdGlvbiwgdGhlcmUgaXMgYWxzbyBhIGhhc1ByZXZpb3VzKCkgZnVuY3Rpb24KKyAqIHRo
YXQgY2FuIGJlIHVzZWQgYW5hbG9nb3VzbHkgdG8gaGFzTmV4dCgpLgorICogVGhlIG9sZCBmdW5j
dGlvbnMgd29yayBhcyBiZWZvcmUgYW5kIGFyZSBzaG93biBiZWxvdy48L3A+CisgKgorICogPHA+
RXhhbXBsZXMgZm9yIHNvbWUgb2YgdGhlIG5ldyBmdW5jdGlvbnM6PC9wPgorICoKKyAqIEZvcndh
cmQgaXRlcmF0aW9uIHdpdGggaGFzTmV4dCgpOgorICogXGNvZGUKKyAqIHZvaWQgZm9yd2FyZDEo
Q2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIzMiBjOworICogICAgIGZvcihp
dC5zZXRUb1N0YXJ0KCk7IGl0Lmhhc05leHQoKTspIHsKKyAqICAgICAgICAgYz1pdC5uZXh0MzJQ
b3N0SW5jKCk7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgfQorICogIH0KKyAqIFxlbmRj
b2RlCisgKiBGb3J3YXJkIGl0ZXJhdGlvbiBtb3JlIHNpbWlsYXIgdG8gbG9vcHMgd2l0aCB0aGUg
b2xkIGZvcndhcmQgaXRlcmF0aW9uLAorICogc2hvd2luZyBhIHdheSB0byBjb252ZXJ0IHNpbXBs
ZSBmb3IoKSBsb29wczoKKyAqIFxjb2RlCisgKiB2b2lkIGZvcndhcmQyKENoYXJhY3Rlckl0ZXJh
dG9yICZpdCkgeworICogICAgIFVDaGFyIGM7CisgKiAgICAgZm9yKGM9aXQuZmlyc3RQb3N0SW5j
KCk7IGMhPUNoYXJhY3Rlckl0ZXJhdG9yOjpET05FOyBjPWl0Lm5leHRQb3N0SW5jKCkpIHsKKyAq
ICAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqIH0KKyAqIFxlbmRjb2RlCisgKiBCYWNr
d2FyZCBpdGVyYXRpb24gd2l0aCBzZXRUb0VuZCgpIGFuZCBoYXNQcmV2aW91cygpOgorICogXGNv
ZGUKKyAqICB2b2lkIGJhY2t3YXJkMShDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICAg
VUNoYXIzMiBjOworICogICAgICBmb3IoaXQuc2V0VG9FbmQoKTsgaXQuaGFzUHJldmlvdXMoKTsp
IHsKKyAqICAgICAgICAgYz1pdC5wcmV2aW91czMyKCk7CisgKiAgICAgICAgICAvLyB1c2UgYwor
ICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRo
IGEgbW9yZSB0cmFkaXRpb25hbCBmb3IoKSBsb29wOgorICogXGNvZGUKKyAqIHZvaWQgYmFja3dh
cmQyKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyIGM7CisgKiAgICAgZm9y
KGM9aXQubGFzdCgpOyBjIT1DaGFyYWN0ZXJJdGVyYXRvcjo6RE9ORTsgYz1pdC5wcmV2aW91cygp
KSB7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQor
ICoKKyAqIEV4YW1wbGUgZm9yIHJhbmRvbSBhY2Nlc3M6CisgKiBcY29kZQorICogIHZvaWQgcmFu
ZG9tKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgICAvLyBzZXQgdG8gdGhlIHRoaXJk
IGNvZGUgcG9pbnQgZnJvbSB0aGUgYmVnaW5uaW5nCisgKiAgICAgIGl0Lm1vdmUzMigzLCBDaGFy
YWN0ZXJJdGVyYXRvcjo6a1N0YXJ0KTsKKyAqICAgICAgLy8gZ2V0IGEgY29kZSBwb2ludCBmcm9t
IGhlcmUgd2l0aG91dCBtb3ZpbmcgdGhlIHBvc2l0aW9uCisgKiAgICAgIFVDaGFyMzIgYz1pdC5j
dXJyZW50MzIoKTsKKyAqICAgICAgLy8gZ2V0IHRoZSBwb3NpdGlvbgorICogICAgICBpbnQzMl90
IHBvcz1pdC5nZXRJbmRleCgpOworICogICAgICAvLyBnZXQgdGhlIHByZXZpb3VzIGNvZGUgdW5p
dAorICogICAgICBVQ2hhciB1PWl0LnByZXZpb3VzKCk7CisgKiAgICAgIC8vIG1vdmUgYmFjayBv
bmUgbW9yZSBjb2RlIHVuaXQKKyAqICAgICAgaXQubW92ZSgtMSwgQ2hhcmFjdGVySXRlcmF0b3I6
OmtDdXJyZW50KTsKKyAqICAgICAgLy8gc2V0IHRoZSBwb3NpdGlvbiBiYWNrIHRvIHdoZXJlIGl0
IHdhcworICogICAgICAvLyBhbmQgcmVhZCB0aGUgc2FtZSBjb2RlIHBvaW50IGMgYW5kIG1vdmUg
YmV5b25kIGl0CisgKiAgICAgIGl0LnNldEluZGV4KHBvcyk7CisgKiAgICAgIGlmKGMhPWl0Lm5l
eHQzMlBvc3RJbmMoKSkgeworICogICAgICAgICAgZXhpdCgxKTsgLy8gQ2hhcmFjdGVySXRlcmF0
b3IgaW5jb25zaXN0ZW50CisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICoKKyAqIDxw
PkV4YW1wbGVzLCBlc3BlY2lhbGx5IGZvciB0aGUgb2xkIEFQSTo8L3A+CisgKgorICogRnVuY3Rp
b24gcHJvY2Vzc2luZyBjaGFyYWN0ZXJzLCBpbiB0aGlzIGV4YW1wbGUgc2ltcGxlIG91dHB1dAor
ICogPHByZT4KKyAqIFxjb2RlCisgKiAgdm9pZCBwcm9jZXNzQ2hhciggVUNoYXIgYyApCisgKiAg
eworICogICAgICBjb3V0IDw8ICIgIiA8PCBjOworICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3By
ZT4KKyAqIFRyYXZlcnNlIHRoZSB0ZXh0IGZyb20gc3RhcnQgdG8gZmluaXNoCisgKiA8cHJlPiAK
KyAqIFxjb2RlCisgKiAgdm9pZCB0cmF2ZXJzZUZvcndhcmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0
ZXIpCisgKiAgeworICogICAgICBmb3IoVUNoYXIgYyA9IGl0ZXIuZmlyc3QoKTsgYyAhPSBDaGFy
YWN0ZXJJdGVyYXRvci5ET05FOyBjID0gaXRlci5uZXh0KCkpIHsKKyAqICAgICAgICAgIHByb2Nl
c3NDaGFyKGMpOworICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICog
VHJhdmVyc2UgdGhlIHRleHQgYmFja3dhcmRzLCBmcm9tIGVuZCB0byBzdGFydAorICogPHByZT4K
KyAqIFxjb2RlCisgKiAgdm9pZCB0cmF2ZXJzZUJhY2t3YXJkKENoYXJhY3Rlckl0ZXJhdG9yJiBp
dGVyKQorICogIHsKKyAqICAgICAgZm9yKFVDaGFyIGMgPSBpdGVyLmxhc3QoKTsgYyAhPSBDaGFy
YWN0ZXJJdGVyYXRvci5ET05FOyBjID0gaXRlci5wcmV2aW91cygpKSB7CisgKiAgICAgICAgICBw
cm9jZXNzQ2hhcihjKTsKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4K
KyAqIFRyYXZlcnNlIGJvdGggZm9yd2FyZCBhbmQgYmFja3dhcmQgZnJvbSBhIGdpdmVuIHBvc2l0
aW9uIGluIHRoZSB0ZXh0LiAKKyAqIENhbGxzIHRvIG5vdEJvdW5kYXJ5KCkgaW4gdGhpcyBleGFt
cGxlIHJlcHJlc2VudHMgc29tZSBhZGRpdGlvbmFsIHN0b3BwaW5nIGNyaXRlcmlhLgorICogPHBy
ZT4KKyAqIFxjb2RlCisgKiB2b2lkIHRyYXZlcnNlT3V0KENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVy
LCBpbnQzMl90IHBvcykKKyAqIHsKKyAqICAgICAgVUNoYXIgYzsKKyAqICAgICAgZm9yIChjID0g
aXRlci5zZXRJbmRleChwb3MpOworICogICAgICBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUg
JiYgKFVuaWNvZGU6OmlzTGV0dGVyKGMpIHx8IFVuaWNvZGU6OmlzRGlnaXQoYykpOworICogICAg
ICAgICAgYyA9IGl0ZXIubmV4dCgpKSB7fQorICogICAgICBpbnQzMl90IGVuZCA9IGl0ZXIuZ2V0
SW5kZXgoKTsKKyAqICAgICAgZm9yIChjID0gaXRlci5zZXRJbmRleChwb3MpOworICogICAgICAg
ICAgYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIChVbmljb2RlOjppc0xldHRlcihjKSB8
fCBVbmljb2RlOjppc0RpZ2l0KGMpKTsKKyAqICAgICAgICAgIGMgPSBpdGVyLnByZXZpb3VzKCkp
IHt9CisgKiAgICAgIGludDMyX3Qgc3RhcnQgPSBpdGVyLmdldEluZGV4KCkgKyAxOworICogIAor
ICogICAgICBjb3V0IDw8ICJzdGFydDogIiA8PCBzdGFydCA8PCAiIGVuZDogIiA8PCBlbmQgPDwg
ZW5kbDsKKyAqICAgICAgZm9yIChjID0gaXRlci5zZXRJbmRleChzdGFydCk7IGl0ZXIuZ2V0SW5k
ZXgoKSA8IGVuZDsgYyA9IGl0ZXIubmV4dCgpICkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIo
Yyk7CisgKiAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIENyZWF0aW5n
IGEgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgYW5kIGNhbGxpbmcgdGhlIHRlc3QgZnVuY3Rpb25z
CisgKiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIENoYXJhY3Rlckl0ZXJhdG9yX0V4YW1wbGUo
IHZvaWQgKQorICogICB7CisgKiAgICAgICBjb3V0IDw8IGVuZGwgPDwgIj09PT09IENoYXJhY3Rl
ckl0ZXJhdG9yX0V4YW1wbGU6ID09PT09IiA8PCBlbmRsOworICogICAgICAgVW5pY29kZVN0cmlu
ZyB0ZXh0KCJFaW4ga2xlaW5lciBTYXR6LiIpOworICogICAgICAgU3RyaW5nQ2hhcmFjdGVySXRl
cmF0b3IgaXRlcmF0b3IodGV4dCk7CisgKiAgICAgICBjb3V0IDw8ICItLS0tLSB0cmF2ZXJzZUZv
cndhcmQ6IC0tLS0tLS0tLS0tIiA8PCBlbmRsOworICogICAgICAgdHJhdmVyc2VGb3J3YXJkKCBp
dGVyYXRvciApOworICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIHRyYXZl
cnNlQmFja3dhcmQ6IC0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZUJhY2t3
YXJkKCBpdGVyYXRvciApOworICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0t
IHRyYXZlcnNlT3V0OiAtLS0tLS0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJz
ZU91dCggaXRlcmF0b3IsIDcgKTsKKyAqICAgICAgIGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICIt
LS0tLSIgPDwgZW5kbDsKKyAqICAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICoKKyAqIEBz
dGFibGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgQ2hhcmFjdGVySXRlcmF0b3Ig
OiBwdWJsaWMgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgICAvKioKKyAg
ICAgKiBPcmlnaW4gZW51bWVyYXRpb24gZm9yIHRoZSBtb3ZlKCkgYW5kIG1vdmUzMigpIGZ1bmN0
aW9ucy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBlbnVtIEVPcmlnaW4g
eyBrU3RhcnQsIGtDdXJyZW50LCBrRW5kIH07CisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9y
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkNoYXJhY3Rl
ckl0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcG9pbnRlciB0byBhIG5l
dyBDaGFyYWN0ZXJJdGVyYXRvciBvZiB0aGUgc2FtZQorICAgICAqIGNvbmNyZXRlIGNsYXNzIGFz
IHRoaXMgb25lLCBhbmQgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGlu
IHRoZSBzYW1lIHRleHQtc3RvcmFnZSBvYmplY3QgYXMgdGhpcyBvbmUuICBUaGUKKyAgICAgKiBj
YWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSBuZXcgY2xvbmUuICAKKyAgICAg
KiBAcmV0dXJuIGEgcG9pbnRlciB0byBhIG5ldyBDaGFyYWN0ZXJJdGVyYXRvcgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3IqIGNs
b25lKHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9y
IHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9u
IHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1
c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQoKS4KKyAgICAgKiBAcmV0dXJuIHRo
ZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3Qodm9pZCkg
PSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhl
IGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMg
dGhhdCBjb2RlIHVuaXQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICAgKiB0byB0aGUgc2Vj
b25kIGNvZGUgdW5pdC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAg
ICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpLgorICAgICAqIEBy
ZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJz
dFBvc3RJbmModm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBy
ZWZlciB0byB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFu
Z2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LAorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQg
dG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyKCkuCisgICAgICogTm90ZSB0aGF0IGFu
IGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKSwgYmVnaW5uaW5nIHdpdGgsCisgICAgICog
ZS5nLiwgc2V0VG9TdGFydCgpIG9yIGZpcnN0UG9zdEluYygpLCBpcyBtb3JlIGVmZmljaWVudC4K
KyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFu
Z2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMy
ICAgICAgIGZpcnN0MzIodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRl
cmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSBwb2ludCwgYW5kIG1vdmVzIHRoZSBwb3Np
dGlvbgorICAgICAqIHRvIHRoZSBzZWNvbmQgY29kZSBwb2ludC4gVGhpcyBpcyBhbiBhbHRlcm5h
dGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBu
ZXh0MzJQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBp
dHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyUG9zdEluYyh2b2lkKTsKKworICAgIC8qKgor
ICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQg
b3IgY29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UuIFRoaXMgY2FuIGJl
IHVzZWQgdG8gYmVnaW4gYSBmb3J3YXJkCisgICAgICogaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJ
bmMoKSBvciBuZXh0MzJQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgc3RhcnQgcG9zaXRp
b24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIGlubGluZSBpbnQzMl90ICAgIHNldFRvU3RhcnQoKTsKKworICAgIC8qKgorICAgICAq
IFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMK
KyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAg
ICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMo
KS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbGFzdCh2b2lkKSA9IDA7
CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRv
IHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQg
cmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2lu
IGFuIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzMzIoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsYXN0
IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBVQ2hhcjMyICAgICAgIGxhc3QzMih2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRz
IHRoZSBpdGVyYXRvciB0byB0aGUgZW5kIG9mIGl0cyBpdGVyYXRpb24gcmFuZ2UsIGp1c3QgYmVo
aW5kCisgICAgICogdGhlIGxhc3QgY29kZSB1bml0IG9yIGNvZGUgcG9pbnQuIFRoaXMgY2FuIGJl
IHVzZWQgdG8gYmVnaW4gYSBiYWNrd2FyZAorICAgICAqIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3Vz
KCkgb3IgcHJldmlvdXMzMigpLgorICAgICAqIEByZXR1cm4gdGhlIGVuZCBwb3NpdGlvbiBvZiB0
aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
aW5saW5lIGludDMyX3QgICAgc2V0VG9FbmQoKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgICAq
IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAor
ICAgICAqIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICAKKyAgICAgKiBAcGFyYW0gcG9zaXRpb24g
dGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0Cisg
ICAgICogQHJldHVybiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIHNldEluZGV4KGlu
dDMyX3QgcG9zaXRpb24pID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9y
IHRvIHJlZmVyIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiB0aGF0
IGNvbnRhaW5zIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgICAqIGluIHRoZSB0ZXh0
LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgICAqIHJldHVy
bnMgdGhhdCBjb2RlIHBvaW50LgorICAgICAqIFRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIGFkanVz
dGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiAoaXRzIGZpcnN0
IGNvZGUgdW5pdCkuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSAicG9zaXRpb24iLXRoIGNv
ZGUgdW5pdCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlICJw
b3NpdGlvbiItdGggY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgc2V0SW5kZXgzMihpbnQzMl90IHBvc2l0aW9uKSA9
IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9y
IGN1cnJlbnRseSByZWZlcnMgdG8uIAorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSB1
bml0LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFy
ICAgICAgICAgY3VycmVudCh2b2lkKSBjb25zdCA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAg
ICAqIFJldHVybnMgdGhlIGNvZGUgcG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMg
dG8uICAKKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGN1cnJlbnQz
Mih2b2lkKSBjb25zdCA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRv
IHRoZSBuZXh0IGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2Fy
ZCBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUK
KyAgICAgKiBubyBtb3JlIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAg
ICogQHJldHVybiB0aGUgbmV4dCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHQodm9pZCkgPSAwOworICAgICAg
ICAKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRo
ZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJu
cyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9p
bnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgICAqIE5vdGUgdGhhdCBpdGVyYXRpb24g
d2l0aCAicHJlLWluY3JlbWVudCIgc2VtYW50aWNzIGlzIGxlc3MKKyAgICAgKiBlZmZpY2llbnQg
dGhhbiBpdGVyYXRpb24gd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNlbWFudGljcworICAgICAqIHRo
YXQgaXMgcHJvdmlkZWQgYnkgbmV4dDMyUG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhlIG5l
eHQgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyKHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisg
ICAgICogQWR2YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9u
IHJhbmdlCisgICAgICogKHRvd2FyZCBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNv
ZGUgdW5pdC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1
cm4sIHJldHVybnMgRE9ORS4gIAorICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgdW5p
dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAg
ICAgICAgcHJldmlvdXModm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8g
dGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0
b3dhcmQgc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhl
cmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9O
RS4gCisgICAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSBwb2ludC4gCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHByZXZpb3Vz
MzIodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBGQUxTRSBpZiB0aGVyZSBh
cmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYmVmb3JlIHRoZSBj
dXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogVGhpcyBpcyB1
c2VkIHdpdGggcHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkgaW4gYmFja3dhcmQKKyAgICAgKiBp
dGVyYXRpb24uCisgICAgICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2Rl
IHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9u
IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UsIHJldHVybiBUUlVFIG90aGVyd2lzZS4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNQcmV2
aW91cygpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXgg
aW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBjaGFy
YWN0ZXIgcmV0dXJuZWQgYnkgZmlyc3QoKS4gIFNpbmNlIGl0J3MKKyAgICAgKiBwb3NzaWJsZSB0
byBjcmVhdGUgYW4gaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBhY3Jvc3Mgb25seQorICAgICAqIHBh
cnQgb2YgYSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LCB0aGlzIG51bWJlciBpc24ndAorICAgICAqIG5l
Y2Vzc2FyaWx5IDAuICAKKyAgICAgKiBAcmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUg
dW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciBy
ZXR1cm5lZCBieSBmaXJzdCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IGlubGluZSBpbnQzMl90ICAgICAgIHN0YXJ0SW5kZXgodm9pZCkgY29uc3Q7CisgICAgICAgIAor
ICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlp
bmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBwb3NpdGlvbiBpbW1lZGlhdGVs
eSBCRVlPTkQgdGhlIGNoYXJhY3RlcgorICAgICAqIHJldHVybmVkIGJ5IGxhc3QoKS4gIAorICAg
ICAqIEByZXR1cm4gdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9y
YWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBwb3NpdGlvbiBpbW1lZGlhdGVseSBCRVlPTkQgdGhl
IGNoYXJhY3RlcgorICAgICAqIHJldHVybmVkIGJ5IGxhc3QoKS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBlbmRJbmRleCh2b2lkKSBj
b25zdDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyBpbmRl
eCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNo
YXJhY3RlciB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0bworICAgICAqIChpLmUuLCB0
aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGN1cnJlbnQoKSkuICAKKyAgICAgKiBAcmV0dXJuIHRo
ZSBudW1iZXJpYyBpbmRleCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCBvZiAKKyAgICAgKiB0
aGUgY2hhcmFjdGVyIHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAgZ2V0SW5kZXgo
dm9pZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhl
IGVudGlyZSB0ZXh0IGluIHRoZSB1bmRlcmx5aW5nCisgICAgICogdGV4dC1zdG9yYWdlIG9iamVj
dC4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGVudGlyZSB0ZXh0IGluIHRoZSB0
ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
aW5saW5lIGludDMyX3QgICAgICAgICAgIGdldExlbmd0aCgpIGNvbnN0OworCisgICAgLyoqCisg
ICAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9y
IGVuZCBvZiB0aGUKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBj
dXJyZW50IHBvc2l0aW9uIGl0c2VsZi4KKyAgICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2Vk
IGluIG51bWJlcnMgb2YgY29kZSB1bml0cyBmb3J3YXJkCisgICAgICogb3IgYmFja3dhcmQgYnkg
c3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgICAqIEBwYXJhbSBk
ZWx0YSB0aGUgcG9zaXRpb24gcmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1l
YW5zIGZvcndhcmQ7CisgICAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAg
ICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwg
a0VuZH0KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlKGludDMyX3QgZGVs
dGEsIEVPcmlnaW4gb3JpZ2luKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3Vy
cmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgICAq
IGl0ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRz
ZWxmLgorICAgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2Rl
IHBvaW50cyBmb3J3YXJkCisgICAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0
aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24g
cmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAg
ICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICAgKiBAcGFyYW0gb3JpZ2lu
IE9yaWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICAgKiBAcmV0
dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlMzIoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmln
aW4pID0gMDsKKworICAgIC8qKgorICAgICAqIENvcGllcyB0aGUgdGV4dCB1bmRlciBpdGVyYXRp
b24gaW50byB0aGUgVW5pY29kZVN0cmluZworICAgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQi
LiAgCisgICAgICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5k
ZXIgaXRlcmF0aW9uLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCB2b2lkICAgICAgICAgICAgZ2V0VGV4dChVbmljb2RlU3RyaW5nJiAgcmVzdWx0KSA9IDA7
CisKK3Byb3RlY3RlZDoKKyAgICAvKioKKyAgICAgKiBFbXB0eSBjb25zdHJ1Y3Rvci4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcigpOworCisg
ICAgLyoqCisgICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoIGZpZWxk
IGluIHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0aCk7CisKKyAgICAvKioKKyAgICAgKiBD
b25zdHJ1Y3RvciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGggYW5kIHBvc2l0aW9uIGZpZWxkcyBp
biB0aGlzIGJhc2UgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
Q2hhcmFjdGVySXRlcmF0b3IoaW50MzJfdCBsZW5ndGgsIGludDMyX3QgcG9zaXRpb24pOworCisg
ICAgLyoqCisgICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoLCBzdGFy
dCwgZW5kLCBhbmQgcG9zaXRpb24gZmllbGRzIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxl
bmd0aCwgaW50MzJfdCB0ZXh0QmVnaW4sIGludDMyX3QgdGV4dEVuZCwgaW50MzJfdCBwb3NpdGlv
bik7CisgIAorICAgIC8qKgorICAgICAqIENvcHkgY29uc3RydWN0b3IuCisgICAgICoKKyAgICAg
KiBAcGFyYW0gdGhhdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgQ2hh
cmFjdGVySXRlcmF0b3IgJnRoYXQpOworCisgICAgLyoqCisgICAgICogQXNzaWdubWVudCBvcGVy
YXRvci4gIFNldHMgdGhpcyBDaGFyYWN0ZXJJdGVyYXRvciB0byBoYXZlIHRoZSBzYW1lIGJlaGF2
aW9yLAorICAgICAqIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRo
ZSBDaGFyYWN0ZXJJdGVyYXRvciBwYXNzZWQgaW4uCisgICAgICogQHJldHVybiB0aGUgbmV3bHkg
c2V0IENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIENoYXJhY3Rlckl0ZXJhdG9yICZvcGVyYXRvcj0oY29uc3QgQ2hhcmFjdGVySXRlcmF0b3Ig
JnRoYXQpOworCisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyB0ZXh0IGxlbmd0aCBmaWVsZC4K
KyAgICAgKiBOZWNlc3NhcnkgdGhpcyBmb3IgY29ycmVjdCBnZXRUZXh0KCkgYW5kIGhhc2hDb2Rl
KCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCB0ZXh0TGVu
Z3RoOworCisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIGN1cnJlbnQg
cG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCAg
cG9zOworCisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIHN0YXJ0IG9m
IHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgaW50MzJfdCAgYmVnaW47CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNzIGZpZWxkIGZv
ciB0aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgaW50MzJfdCAgZW5kOworfTsKKworaW5saW5lIFVCb29sCitGb3J3YXJk
Q2hhcmFjdGVySXRlcmF0b3I6Om9wZXJhdG9yIT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yJiB0aGF0KSBjb25zdCB7CisgICAgcmV0dXJuICFvcGVyYXRvcj09KHRoYXQpOworfQorCitp
bmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvU3RhcnQoKSB7CisgICAgcmV0
dXJuIG1vdmUoMCwga1N0YXJ0KTsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJh
dG9yOjpzZXRUb0VuZCgpIHsKKyAgICByZXR1cm4gbW92ZSgwLCBrRW5kKTsKK30KKworaW5saW5l
IGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpzdGFydEluZGV4KHZvaWQpIGNvbnN0IHsKKyAg
ICByZXR1cm4gYmVnaW47Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6
ZW5kSW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBlbmQ7Cit9CisKK2lubGluZSBpbnQz
Ml90CitDaGFyYWN0ZXJJdGVyYXRvcjo6Z2V0SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVy
biBwb3M7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6Z2V0TGVuZ3Ro
KHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gdGV4dExlbmd0aDsKK30KKworVV9OQU1FU1BBQ0Vf
RU5ECisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaCBi
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWQ1Y2I1NDZlYmUz
OTdlZjQzNmRmMzY1MDNlYjQzNzFjMzg2Njk2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri9pY3UvdW5pY29kZS9sb2NpZC5oCkBAIC0wLDAgKzEsODE0IEBACisvKgorKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMTUsIEludGVybmF0aW9uYWwg
QnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxlIGxvY2lkLmgK
KyoKKyogQ3JlYXRlZCBieTogSGVsZW5hIFNoaWgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6
CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwMi8xMS85
NyAgICBhbGl1ICAgICAgICBDaGFuZ2VkIGdMb2NQYXRoIHRvIGZnTG9jUGF0aCBhbmQgYWRkZWQg
bWV0aG9kcyB0bworKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldCBhbmQgc2V0IGl0Lgor
KiAgIDA0LzAyLzk3ICAgIGFsaXUgICAgICAgIE1hZGUgb3BlcmF0b3IhPSBpbmxpbmU7IGZpeGVk
IHJldHVybiB2YWx1ZSBvZiBnZXROYW1lKCkuCisqICAgMDQvMTUvOTcgICAgYWxpdSAgICAgICAg
Q2xlYW51cCBmb3IgQUlYL1dpbjMyLgorKiAgIDA0LzI0Lzk3ICAgIGFsaXUgICAgICAgIE51bWVy
b3VzIGNoYW5nZXMgcGVyIGNvZGUgcmV2aWV3LgorKiAgIDA4LzE4Lzk4ICAgIHN0ZXBoZW4gICAg
IEFkZGVkIHRva2VuaXplU3RyaW5nKCksY2hhbmdlZCBnZXREaXNwbGF5TmFtZSgpCisqICAgMDkv
MDgvOTggICAgc3RlcGhlbiAgICAgTW92ZWQgZGVmaW5pdGlvbiBvZiBrRW1wdHlTdHJpbmcgZm9y
IE1hYyBQb3J0CisqICAgMTEvMDkvOTkgICAgd2VpdiAgICAgICAgQWRkZWQgY29uc3QgY2hhciAq
IGdldE5hbWUoKSBjb25zdDsKKyogICAwNC8xMi8wMCAgICBzcmwgICAgICAgICByZW1vdmluZyB1
bmljb2Rlc3RyaW5nIGFwaSdzIGFuZCBjYWNoZWQgaGFzaCBjb2RlCisqICAgMDgvMTAvMDEgICAg
Z3Job3RlbiAgICAgQ2hhbmdlIHRoZSBzdGF0aWMgTG9jYWxlcyB0byBhY2Nlc3NvciBmdW5jdGlv
bnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBMT0NJRF9ICisjZGVmaW5l
IExPQ0lEX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29k
ZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIKKyNpbmNsdWRlICJ1bmlj
b2RlL3B1dGlsLmgiCisjaW5jbHVkZSAidW5pY29kZS91bG9jLmgiCisjaW5jbHVkZSAidW5pY29k
ZS9zdHJlbnVtLmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBMb2NhbGUg
SUQgb2JqZWN0LgorICovCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8vIEZvcndhcmQgRGVjbGFy
YXRpb25zCit2b2lkIFVfQ0FMTENPTlYgbG9jYWxlX2F2YWlsYWJsZV9pbml0KCk7IC8qKjwgQGlu
dGVybmFsICovCisKKy8qKgorICogQSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCByZXByZXNl
bnRzIGEgc3BlY2lmaWMgZ2VvZ3JhcGhpY2FsLCBwb2xpdGljYWwsCisgKiBvciBjdWx0dXJhbCBy
ZWdpb24uIEFuIG9wZXJhdGlvbiB0aGF0IHJlcXVpcmVzIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiB0
byBwZXJmb3JtCisgKiBpdHMgdGFzayBpcyBjYWxsZWQgPGVtPmxvY2FsZS1zZW5zaXRpdmU8L2Vt
PiBhbmQgdXNlcyB0aGUgPGNvZGU+TG9jYWxlPC9jb2RlPgorICogdG8gdGFpbG9yIGluZm9ybWF0
aW9uIGZvciB0aGUgdXNlci4gRm9yIGV4YW1wbGUsIGRpc3BsYXlpbmcgYSBudW1iZXIKKyAqIGlz
IGEgbG9jYWxlLXNlbnNpdGl2ZSBvcGVyYXRpb24tLXRoZSBudW1iZXIgc2hvdWxkIGJlIGZvcm1h
dHRlZAorICogYWNjb3JkaW5nIHRvIHRoZSBjdXN0b21zL2NvbnZlbnRpb25zIG9mIHRoZSB1c2Vy
J3MgbmF0aXZlIGNvdW50cnksCisgKiByZWdpb24sIG9yIGN1bHR1cmUuCisgKgorICogVGhlIExv
Y2FsZSBjbGFzcyBpcyBub3Qgc3VpdGFibGUgZm9yIHN1YmNsYXNzaW5nLgorICoKKyAqIDxQPgor
ICogWW91IGNhbiBjcmVhdGUgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCB1c2luZyB0aGUg
Y29uc3RydWN0b3IgaW4KKyAqIHRoaXMgY2xhc3M6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5c
ZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgICBMb2NhbGUoIGNvbnN0ICAgY2hhciogIGxh
bmd1YWdlLAorICogICAgICAgICAgICAgICBjb25zdCAgIGNoYXIqICBjb3VudHJ5LAorICogICAg
ICAgICAgICAgICBjb25zdCAgIGNoYXIqICB2YXJpYW50KTsKKyAqIDwvcHJlPgorICogXGh0bWxv
bmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRo
ZSBjb25zdHJ1Y3RvcnMgaXMgYSB2YWxpZCA8U1RST05HPklTTworICogTGFuZ3VhZ2UgQ29kZS48
L1NUUk9ORz4gVGhlc2UgY29kZXMgYXJlIHRoZSBsb3dlci1jYXNlIHR3by1sZXR0ZXIKKyAqIGNv
ZGVzIGFzIGRlZmluZWQgYnkgSVNPLTYzOS4KKyAqIFlvdSBjYW4gZmluZCBhIGZ1bGwgbGlzdCBv
ZiB0aGVzZSBjb2RlcyBhdDoKKyAqIDxCUj48YSBocmVmID0iaHR0cDovL3d3dy5sb2MuZ292L3N0
YW5kYXJkcy9pc282MzktMi8iPgorICogaHR0cDovL3d3dy5sb2MuZ292L3N0YW5kYXJkcy9pc282
MzktMi88L2E+CisgKgorICogPFA+CisgKiBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRoZSBjb25z
dHJ1Y3RvcnMgaXMgYSB2YWxpZCA8U1RST05HPklTTyBDb3VudHJ5CisgKiBDb2RlLjwvU1RST05H
PiBUaGVzZSBjb2RlcyBhcmUgdGhlIHVwcGVyLWNhc2UgdHdvLWxldHRlciBjb2RlcworICogYXMg
ZGVmaW5lZCBieSBJU08tMzE2Ni4KKyAqIFlvdSBjYW4gZmluZCBhIGZ1bGwgbGlzdCBvZiB0aGVz
ZSBjb2RlcyBhdCBhIG51bWJlciBvZiBzaXRlcywgc3VjaCBhczoKKyAqIDxCUj48YSBocmVmPSJo
dHRwOi8vd3d3Lmlzby5vcmcvaXNvL2VuL3Byb2RzLXNlcnZpY2VzL2lzbzMxNjZtYS9pbmRleC5o
dG1sIj4KKyAqIGh0dHA6Ly93d3cuaXNvLm9yZy9pc28vZW4vcHJvZHMtc2VydmljZXMvaXNvMzE2
Nm1hL2luZGV4Lmh0bWw8L2E+CisgKgorICogPFA+CisgKiBUaGUgdGhpcmQgY29uc3RydWN0b3Ig
cmVxdWlyZXMgYSB0aGlyZCBhcmd1bWVudC0tdGhlIDxTVFJPTkc+VmFyaWFudC48L1NUUk9ORz4K
KyAqIFRoZSBWYXJpYW50IGNvZGVzIGFyZSB2ZW5kb3IgYW5kIGJyb3dzZXItc3BlY2lmaWMuCisg
KiBGb3IgZXhhbXBsZSwgdXNlIFJFVklTRUQgZm9yIGEgbGFuZ2F1Z2UncyByZXZpc2VkIHNjcmlw
dCBvcnRob2dyYXBoeSwgYW5kIFBPU0lYIGZvciBQT1NJWC4KKyAqIFdoZXJlIHRoZXJlIGFyZSB0
d28gdmFyaWFudHMsIHNlcGFyYXRlIHRoZW0gd2l0aCBhbiB1bmRlcnNjb3JlLCBhbmQKKyAqIHB1
dCB0aGUgbW9zdCBpbXBvcnRhbnQgb25lIGZpcnN0LiBGb3IKKyAqIGV4YW1wbGUsIGEgVHJhZGl0
aW9uYWwgU3BhbmlzaCBjb2xsYXRpb24gbWlnaHQgYmUgcmVmZXJlbmNlZCwgd2l0aAorICogIkVT
IiwgIkVTIiwgIlRyYWRpdGlvbmFsX1BPU0lYIi4KKyAqCisgKiA8UD4KKyAqIEJlY2F1c2UgYSA8
Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCBpcyBqdXN0IGFuIGlkZW50aWZpZXIgZm9yIGEgcmVn
aW9uLAorICogbm8gdmFsaWRpdHkgY2hlY2sgaXMgcGVyZm9ybWVkIHdoZW4geW91IGNvbnN0cnVj
dCBhIDxjb2RlPkxvY2FsZTwvY29kZT4uCisgKiBJZiB5b3Ugd2FudCB0byBzZWUgd2hldGhlciBw
YXJ0aWN1bGFyIHJlc291cmNlcyBhcmUgYXZhaWxhYmxlIGZvciB0aGUKKyAqIDxjb2RlPkxvY2Fs
ZTwvY29kZT4geW91IGNvbnN0cnVjdCwgeW91IG11c3QgcXVlcnkgdGhvc2UgcmVzb3VyY2VzLiBG
b3IKKyAqIGV4YW1wbGUsIGFzayB0aGUgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBmb3IgdGhl
IGxvY2FsZXMgaXQgc3VwcG9ydHMKKyAqIHVzaW5nIGl0cyA8Y29kZT5nZXRBdmFpbGFibGVMb2Nh
bGVzPC9jb2RlPiBtZXRob2QuCisgKiA8QlI+PFNUUk9ORz5Ob3RlOjwvU1RST05HPiBXaGVuIHlv
dSBhc2sgZm9yIGEgcmVzb3VyY2UgZm9yIGEgcGFydGljdWxhcgorICogbG9jYWxlLCB5b3UgZ2V0
IGJhY2sgdGhlIGJlc3QgYXZhaWxhYmxlIG1hdGNoLCBub3QgbmVjZXNzYXJpbHkKKyAqIHByZWNp
c2VseSB3aGF0IHlvdSBhc2tlZCBmb3IuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBsb29rIGF0Cisg
KiA8Y29kZT5SZXNvdXJjZUJ1bmRsZTwvY29kZT4uCisgKgorICogPFA+CisgKiBUaGUgPGNvZGU+
TG9jYWxlPC9jb2RlPiBjbGFzcyBwcm92aWRlcyBhIG51bWJlciBvZiBjb252ZW5pZW50IGNvbnN0
YW50cworICogdGhhdCB5b3UgY2FuIHVzZSB0byBjcmVhdGUgPGNvZGU+TG9jYWxlPC9jb2RlPiBv
YmplY3RzIGZvciBjb21tb25seSB1c2VkCisgKiBsb2NhbGVzLiBGb3IgZXhhbXBsZSwgdGhlIGZv
bGxvd2luZyByZWZlcnMgdG8gYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdAorICogZm9yIHRo
ZSBVbml0ZWQgU3RhdGVzOgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5Cisg
KiA8cHJlPgorICogICAgICAgTG9jYWxlOjpnZXRVUygpCisgKiA8L3ByZT4KKyAqIFxodG1sb25s
eTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqCisgKiA8UD4KKyAqIE9uY2UgeW91J3ZlIGNy
ZWF0ZWQgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHlvdSBjYW4gcXVlcnkgaXQgZm9yIGluZm9ybWF0
aW9uIGFib3V0CisgKiBpdHNlbGYuIFVzZSA8Y29kZT5nZXRDb3VudHJ5PC9jb2RlPiB0byBnZXQg
dGhlIElTTyBDb3VudHJ5IENvZGUgYW5kCisgKiA8Y29kZT5nZXRMYW5ndWFnZTwvY29kZT4gdG8g
Z2V0IHRoZSBJU08gTGFuZ3VhZ2UgQ29kZS4gWW91IGNhbgorICogdXNlIDxjb2RlPmdldERpc3Bs
YXlDb3VudHJ5PC9jb2RlPiB0byBnZXQgdGhlCisgKiBuYW1lIG9mIHRoZSBjb3VudHJ5IHN1aXRh
YmxlIGZvciBkaXNwbGF5aW5nIHRvIHRoZSB1c2VyLiBTaW1pbGFybHksCisgKiB5b3UgY2FuIHVz
ZSA8Y29kZT5nZXREaXNwbGF5TGFuZ3VhZ2U8L2NvZGU+IHRvIGdldCB0aGUgbmFtZSBvZgorICog
dGhlIGxhbmd1YWdlIHN1aXRhYmxlIGZvciBkaXNwbGF5aW5nIHRvIHRoZSB1c2VyLiBJbnRlcmVz
dGluZ2x5LAorICogdGhlIDxjb2RlPmdldERpc3BsYXlYWFg8L2NvZGU+IG1ldGhvZHMgYXJlIHRo
ZW1zZWx2ZXMgbG9jYWxlLXNlbnNpdGl2ZQorICogYW5kIGhhdmUgdHdvIHZlcnNpb25zOiBvbmUg
dGhhdCB1c2VzIHRoZSBkZWZhdWx0IGxvY2FsZSBhbmQgb25lCisgKiB0aGF0IHRha2VzIGEgbG9j
YWxlIGFzIGFuIGFyZ3VtZW50IGFuZCBkaXNwbGF5cyB0aGUgbmFtZSBvciBjb3VudHJ5IGluCisg
KiBhIGxhbmd1YWdlIGFwcHJvcHJpYXRlIHRvIHRoYXQgbG9jYWxlLgorICoKKyAqIDxQPgorICog
SUNVIHByb3ZpZGVzIGEgbnVtYmVyIG9mIGNsYXNzZXMgdGhhdCBwZXJmb3JtIGxvY2FsZS1zZW5z
aXRpdmUKKyAqIG9wZXJhdGlvbnMuIEZvciBleGFtcGxlLCB0aGUgPGNvZGU+TnVtYmVyRm9ybWF0
PC9jb2RlPiBjbGFzcyBmb3JtYXRzCisgKiBudW1iZXJzLCBjdXJyZW5jeSwgb3IgcGVyY2VudGFn
ZXMgaW4gYSBsb2NhbGUtc2Vuc2l0aXZlIG1hbm5lci4gQ2xhc3NlcworICogc3VjaCBhcyA8Y29k
ZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGhhdmUgYSBudW1iZXIgb2YgY29udmVuaWVuY2UgbWV0aG9k
cworICogZm9yIGNyZWF0aW5nIGEgZGVmYXVsdCBvYmplY3Qgb2YgdGhhdCB0eXBlLiBGb3IgZXhh
bXBsZSwgdGhlCisgKiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGNsYXNzIHByb3ZpZGVzIHRo
ZXNlIHRocmVlIGNvbnZlbmllbmNlIG1ldGhvZHMKKyAqIGZvciBjcmVhdGluZyBhIGRlZmF1bHQg
PGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBvYmplY3Q6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90
ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgVUVycm9yQ29kZSBzdWNjZXNzID0gVV9a
RVJPX0VSUk9SOworICogICAgIExvY2FsZSBteUxvY2FsZTsKKyAqICAgICBOdW1iZXJGb3JtYXQg
Km5mOworICoKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlSW5zdGFuY2UoIHN1Y2Nl
c3MgKTsgICAgICAgICAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVh
dGVDdXJyZW5jeUluc3RhbmNlKCBzdWNjZXNzICk7ICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBO
dW1iZXJGb3JtYXQ6OmNyZWF0ZVBlcmNlbnRJbnN0YW5jZSggc3VjY2VzcyApOyAgIGRlbGV0ZSBu
ZjsKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICog
RWFjaCBvZiB0aGVzZSBtZXRob2RzIGhhcyB0d28gdmFyaWFudHM7IG9uZSB3aXRoIGFuIGV4cGxp
Y2l0IGxvY2FsZQorICogYW5kIG9uZSB3aXRob3V0OyB0aGUgbGF0dGVyIHVzaW5nIHRoZSBkZWZh
dWx0IGxvY2FsZS4KKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHBy
ZT4KKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlSW5zdGFuY2UoIG15TG9jYWxlLCBz
dWNjZXNzICk7ICAgICAgICAgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6
Y3JlYXRlQ3VycmVuY3lJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgIGRlbGV0ZSBuZjsK
KyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlUGVyY2VudEluc3RhbmNlKCBteUxvY2Fs
ZSwgc3VjY2VzcyApOyAgIGRlbGV0ZSBuZjsKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9j
a3F1b3RlPlxlbmRodG1sb25seQorICogQSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGlzIHRoZSBtZWNo
YW5pc20gZm9yIGlkZW50aWZ5aW5nIHRoZSBraW5kIG9mIG9iamVjdAorICogKDxjb2RlPk51bWJl
ckZvcm1hdDwvY29kZT4pIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gZ2V0LiBUaGUgbG9jYWxlIGlz
CisgKiA8U1RST05HPmp1c3Q8L1NUUk9ORz4gYSBtZWNoYW5pc20gZm9yIGlkZW50aWZ5aW5nIG9i
amVjdHMsCisgKiA8U1RST05HPm5vdDwvU1RST05HPiBhIGNvbnRhaW5lciBmb3IgdGhlIG9iamVj
dHMgdGhlbXNlbHZlcy4KKyAqCisgKiA8UD4KKyAqIEVhY2ggY2xhc3MgdGhhdCBwZXJmb3JtcyBs
b2NhbGUtc2Vuc2l0aXZlIG9wZXJhdGlvbnMgYWxsb3dzIHlvdQorICogdG8gZ2V0IGFsbCB0aGUg
YXZhaWxhYmxlIG9iamVjdHMgb2YgdGhhdCB0eXBlLiBZb3UgY2FuIHNpZnQKKyAqIHRocm91Z2gg
dGhlc2Ugb2JqZWN0cyBieSBsYW5ndWFnZSwgY291bnRyeSwgb3IgdmFyaWFudCwKKyAqIGFuZCB1
c2UgdGhlIGRpc3BsYXkgbmFtZXMgdG8gcHJlc2VudCBhIG1lbnUgdG8gdGhlIHVzZXIuCisgKiBG
b3IgZXhhbXBsZSwgeW91IGNhbiBjcmVhdGUgYSBtZW51IG9mIGFsbCB0aGUgY29sbGF0aW9uIG9i
amVjdHMKKyAqIHN1aXRhYmxlIGZvciBhIGdpdmVuIGxhbmd1YWdlLiBTdWNoIGNsYXNzZXMgaW1w
bGVtZW50IHRoZXNlCisgKiB0aHJlZSBjbGFzcyBtZXRob2RzOgorICogXGh0bWxvbmx5PGJsb2Nr
cXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgICAgc3RhdGljIExvY2FsZSogZ2V0
QXZhaWxhYmxlTG9jYWxlcyhpbnQzMl90JiBudW1Mb2NhbGVzKQorICogICAgICAgc3RhdGljIFVu
aWNvZGVTdHJpbmcmIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgIG9iamVjdExvY2FsZSwK
KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMb2Nh
bGUmICBkaXNwbGF5TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BsYXlOYW1lKQorICogICAgICAgc3RhdGljIFVu
aWNvZGVTdHJpbmcmIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgIG9iamVjdExvY2FsZSwK
KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3Ry
aW5nJiBkaXNwbGF5TmFtZSkKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxl
bmRodG1sb25seQorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICogQHNlZSBSZXNvdXJjZUJ1bmRs
ZQorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgTG9jYWxlIDogcHVibGljIFVPYmplY3QgeworcHVi
bGljOgorICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoZSBSb290IGxvY2FsZS4gQHN0YWJs
ZSBJQ1UgNC40ICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFJvb3Qo
dm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJs
ZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEVuZ2xp
c2godm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0
YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEZy
ZW5jaCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0
R2VybWFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2Uu
IEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBn
ZXRJdGFsaWFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3Vh
Z2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JU
MiBnZXRKYXBhbmVzZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxh
bmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VY
UE9SVDIgZ2V0S29yZWFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMg
bGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVf
RVhQT1JUMiBnZXRDaGluZXNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRo
aXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUg
JlVfRVhQT1JUMiBnZXRTaW1wbGlmaWVkQ2hpbmVzZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNv
bnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMg
Y29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VHJhZGl0aW9uYWxDaGluZXNlKHZvaWQpOworCisg
ICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJ
Q1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEZyYW5jZSh2
b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0
R2VybWFueSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkv
cmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VY
UE9SVDIgZ2V0SXRhbHkodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBj
b3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2Fs
ZSAmVV9FWFBPUlQyIGdldEphcGFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9y
IHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25z
dCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRLb3JlYSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0
YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0
aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2hpbmEodm9pZCk7CisgICAgLyoqIFVzZWZ1
bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisg
ICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFBSQyh2b2lkKTsKKyAgICAvKiog
VXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAg
Ki8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VGFpd2FuKHZvaWQpOwor
ICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUg
SUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRVSyh2b2lk
KTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3Rh
YmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VVMo
dm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4g
QHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdl
dENhbmFkYSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkv
cmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VY
UE9SVDIgZ2V0Q2FuYWRhRnJlbmNoKHZvaWQpOworCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1
Y3QgYSBkZWZhdWx0IGxvY2FsZSBvYmplY3QsIGEgTG9jYWxlIGZvciB0aGUgZGVmYXVsdCBsb2Nh
bGUgSUQuCisgICAgICoKKyAgICAgKiBAc2VlIGdldERlZmF1bHQKKyAgICAgKiBAc2VlIHVsb2Nf
Z2V0RGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZSgp
OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbG9jYWxlIGZyb20gbGFuZ3VhZ2UsIGNv
dW50cnksIHZhcmlhbnQuCisgICAgICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVuIHRoZSBjb25z
dHJ1Y3RlZCBvYmplY3Qgd2lsbCBiZSAiYm9ndXMiCisgICAgICogKGlzQm9ndXMoKSB3aWxsIHJl
dHVybiBUUlVFKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYW5ndWFnZSBMb3dlcmNhc2UgdHdv
LWxldHRlciBvciB0aHJlZS1sZXR0ZXIgSVNPLTYzOSBjb2RlLgorICAgICAqICBUaGlzIHBhcmFt
ZXRlciBjYW4gaW5zdGVhZCBiZSBhbiBJQ1Ugc3R5bGUgQyBsb2NhbGUgKGUuZy4gImVuX1VTIiks
CisgICAgICogIGJ1dCB0aGUgb3RoZXIgcGFyYW1ldGVycyBtdXN0IG5vdCBiZSB1c2VkLgorICAg
ICAqICBUaGlzIHBhcmFtZXRlciBjYW4gYmUgTlVMTDsgaWYgc28sCisgICAgICogIHRoZSBsb2Nh
bGUgaXMgaW5pdGlhbGl6ZWQgdG8gbWF0Y2ggdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisg
ICAgICogIChUaGlzIGlzIHRoZSBzYW1lIGFzIHVzaW5nIHRoZSBkZWZhdWx0IGNvbnN0cnVjdG9y
LikKKyAgICAgKiAgUGxlYXNlIG5vdGU6IFRoZSBKYXZhIExvY2FsZSBjbGFzcyBkb2VzIE5PVCBh
Y2NlcHQgdGhlIGZvcm0KKyAgICAgKiAgJ25ldyBMb2NhbGUoImVuX1VTIiknIGJ1dCBvbmx5ICdu
ZXcgTG9jYWxlKCJlbiIsIlVTIiknCisgICAgICoKKyAgICAgKiBAcGFyYW0gY291bnRyeSAgVXBw
ZXJjYXNlIHR3by1sZXR0ZXIgSVNPLTMxNjYgY29kZS4gKG9wdGlvbmFsKQorICAgICAqIEBwYXJh
bSB2YXJpYW50ICBVcHBlcmNhc2UgdmVuZG9yIGFuZCBicm93c2VyIHNwZWNpZmljIGNvZGUuIFNl
ZSBjbGFzcworICAgICAqICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbi4gKG9wdGlvbmFsKQor
ICAgICAqIEBwYXJhbSBrZXl3b3Jkc0FuZFZhbHVlcyBBIHN0cmluZyBjb25zaXN0aW5nIG9mIGtl
eXdvcmQvdmFsdWVzIHBhaXJzLCBzdWNoIGFzCisgICAgICogICAgICAgICAgICAgICAgICJjb2xs
YXRpb249cGhvbmVib29rO2N1cnJlbmN5PWV1cm8iCisgICAgICoKKyAgICAgKiBAc2VlIGdldERl
ZmF1bHQKKyAgICAgKiBAc2VlIHVsb2NfZ2V0RGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIExvY2FsZSggY29uc3QgICBjaGFyICogbGFuZ3VhZ2UsCisgICAgICAg
ICAgICBjb25zdCAgIGNoYXIgKiBjb3VudHJ5ICA9IDAsCisgICAgICAgICAgICBjb25zdCAgIGNo
YXIgKiB2YXJpYW50ICA9IDAsCisgICAgICAgICAgICBjb25zdCAgIGNoYXIgKiBrZXl3b3Jkc0Fu
ZFZhbHVlcyA9IDApOworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgYSBMb2NhbGUgb2Jq
ZWN0IGZyb20gYW5vdGhlciBMb2NhbGUgb2JqZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIG90
aGVyIFRoZSBMb2NhbGUgb2JqZWN0IGJlaW5nIGNvcGllZCBpbi4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUoY29uc3QgICAgTG9jYWxlJiBvdGhlcik7CisKKwor
ICAgIC8qKgorICAgICAqIERlc3RydWN0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIH5Mb2NhbGUoKSA7CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlcyB0
aGUgZW50aXJlIGNvbnRlbnRzIG9mICp0aGlzIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAg
ICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgTG9jYWxlIG9iamVjdCBiZWluZyBjb3BpZWQg
aW4uCisgICAgICogQHJldHVybiAgICAgICp0aGlzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgTG9jYWxlJiBvcGVyYXRvcj0oY29uc3QgTG9jYWxlJiBvdGhlcik7CisKKyAg
ICAvKioKKyAgICAgKiBDaGVja3MgaWYgdHdvIGxvY2FsZSBrZXlzIGFyZSB0aGUgc2FtZS4KKyAg
ICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgbG9jYWxlIGtleSBvYmplY3QgdG8gYmUgY29t
cGFyZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1cm4gICAgICBUcnVlIGlmIHRoZSB0d28gbG9j
YWxlIGtleXMgYXJlIHRoZSBzYW1lLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgVUJvb2wgICBvcGVyYXRvcj09KGNvbnN0ICAgIExvY2FsZSYg
ICAgIG90aGVyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0d28gbG9jYWxl
IGtleXMgYXJlIG5vdCB0aGUgc2FtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUg
bG9jYWxlIGtleSBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1
cm4gICAgICBUcnVlIGlmIHRoZSB0d28gbG9jYWxlIGtleXMgYXJlIG5vdCB0aGUgc2FtZSwgZmFs
c2UKKyAgICAgKiAgICAgICAgICAgICAgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIFVCb29sICAgb3BlcmF0b3IhPShjb25zdCAgICBMb2NhbGUmICAgICBv
dGhlcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBDbG9uZSB0aGlzIG9iamVjdC4KKyAgICAg
KiBDbG9uZXMgY2FuIGJlIHVzZWQgY29uY3VycmVudGx5IGluIG11bHRpcGxlIHRocmVhZHMuCisg
ICAgICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVuIE5VTEwgaXMgcmV0dXJuZWQuCisgICAgICog
VGhlIGNhbGxlciBtdXN0IGRlbGV0ZSB0aGUgY2xvbmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJu
IGEgY2xvbmUgb2YgdGhpcyBvYmplY3QKKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RHluYW1pY0Ns
YXNzSUQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBMb2NhbGUgKmNsb25l
KCkgY29uc3Q7CisKKyNpZm5kZWYgVV9ISURFX1NZU1RFTV9BUEkKKyAgICAvKioKKyAgICAgKiBD
b21tb24gbWV0aG9kcyBvZiBnZXR0aW5nIHRoZSBjdXJyZW50IGRlZmF1bHQgTG9jYWxlLiBVc2Vk
IGZvciB0aGUKKyAgICAgKiBwcmVzZW50YXRpb246IG1lbnVzLCBkaWFsb2dzLCBldGMuIEdlbmVy
YWxseSBzZXQgb25jZSB3aGVuIHlvdXIgYXBwbGV0IG9yCisgICAgICogYXBwbGljYXRpb24gaXMg
aW5pdGlhbGl6ZWQsIHRoZW4gbmV2ZXIgcmVzZXQuIChJZiB5b3UgZG8gcmVzZXQgdGhlCisgICAg
ICogZGVmYXVsdCBsb2NhbGUsIHlvdSBwcm9iYWJseSB3YW50IHRvIHJlbG9hZCB5b3VyIEdVSSwg
c28gdGhhdCB0aGUgY2hhbmdlCisgICAgICogaXMgcmVmbGVjdGVkIGluIHlvdXIgaW50ZXJmYWNl
LikKKyAgICAgKgorICAgICAqIE1vcmUgYWR2YW5jZWQgcHJvZ3JhbXMgd2lsbCBhbGxvdyB1c2Vy
cyB0byB1c2UgZGlmZmVyZW50IGxvY2FsZXMgZm9yCisgICAgICogZGlmZmVyZW50IGZpZWxkcywg
ZS5nLiBpbiBhIHNwcmVhZHNoZWV0LgorICAgICAqCisgICAgICogTm90ZSB0aGF0IHRoZSBpbml0
aWFsIHNldHRpbmcgd2lsbCBtYXRjaCB0aGUgaG9zdCBzeXN0ZW0uCisgICAgICogQHJldHVybiBh
IHJlZmVyZW5jZSB0byB0aGUgTG9jYWxlIG9iamVjdCBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIElE
CisgICAgICogQHN5c3RlbQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUmIFVfRVhQT1JUMiBnZXREZWZhdWx0KHZvaWQpOworCisgICAgLyoq
CisgICAgICogU2V0cyB0aGUgZGVmYXVsdC4gTm9ybWFsbHkgc2V0IG9uY2UgYXQgdGhlIGJlZ2lu
bmluZyBvZiBhIHByb2Nlc3MsCisgICAgICogdGhlbiBuZXZlciByZXNldC4KKyAgICAgKiBzZXRE
ZWZhdWx0KCkgb25seSBjaGFuZ2VzIElDVSdzIGRlZmF1bHQgbG9jYWxlIElELCA8c3Ryb25nPm5v
dDwvc3Ryb25nPgorICAgICAqIHRoZSBkZWZhdWx0IGxvY2FsZSBJRCBvZiB0aGUgcnVudGltZSBl
bnZpcm9ubWVudC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuZXdMb2NhbGUgTG9jYWxlIHRvIHNl
dCB0by4gIElmIE5VTEwsIHNldCB0byB0aGUgdmFsdWUgb2J0YWluZWQKKyAgICAgKiAgICAgICAg
ICAgICAgICAgIGZyb20gdGhlIHJ1bnRpbWUgZW52aXJvbmVtZW50LgorICAgICAqIEBwYXJhbSBz
dWNjZXNzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEBzeXN0ZW0KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBVX0VYUE9SVDIgc2V0RGVmYXVsdChjb25z
dCBMb2NhbGUmIG5ld0xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVRXJyb3JDb2RlJiAgIHN1Y2Nlc3MpOworI2VuZGlmICAvKiBVX0hJREVfU1lTVEVNX0FQSSAq
LworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGxvY2FsZSB3aGljaCBoYXMgaGFkIG1pbmlt
YWwgY2Fub25pY2FsaXphdGlvbgorICAgICAqIGFzIHBlciB1bG9jX2dldE5hbWUoKS4KKyAgICAg
KiBAcGFyYW0gbmFtZSBUaGUgbmFtZSB0byBjcmVhdGUgZnJvbS4gIElmIG5hbWUgaXMgbnVsbCwK
KyAgICAgKiAgdGhlIGRlZmF1bHQgTG9jYWxlIGlzIHVzZWQuCisgICAgICogQHJldHVybiBuZXcg
bG9jYWxlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqIEBzZWUgdWxvY19n
ZXROYW1lCisgICAgICovCisgICAgc3RhdGljIExvY2FsZSBVX0VYUE9SVDIgY3JlYXRlRnJvbU5h
bWUoY29uc3QgY2hhciAqbmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbG9jYWxl
IGZyb20gdGhlIGdpdmVuIHN0cmluZyBhZnRlciBjYW5vbmljYWxpemluZworICAgICAqIHRoZSBz
dHJpbmcgYnkgY2FsbGluZyB1bG9jX2Nhbm9uaWNhbGl6ZSgpLgorICAgICAqIEBwYXJhbSBuYW1l
IHRoZSBsb2NhbGUgSUQgdG8gY3JlYXRlIGZyb20uICBNdXN0IG5vdCBiZSBOVUxMLgorICAgICAq
IEByZXR1cm4gYSBuZXcgbG9jYWxlIG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBu
YW1lCisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICogQHNlZSB1bG9jX2Nhbm9uaWNhbGl6
ZQorICAgICAqLworICAgIHN0YXRpYyBMb2NhbGUgVV9FWFBPUlQyIGNyZWF0ZUNhbm9uaWNhbChj
b25zdCBjaGFyKiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdz
IElTTy02MzkgbGFuZ3VhZ2UgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8g
dGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29u
c3QgY2hhciAqICBnZXRMYW5ndWFnZSggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVy
bnMgdGhlIGxvY2FsZSdzIElTTy0xNTkyNCBhYmJyZXZpYXRpb24gc2NyaXB0IGNvZGUuCisgICAg
ICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHNlZSB1c2NyaXB0
X2dldFNob3J0TmFtZQorICAgICAqIEBzZWUgdXNjcmlwdF9nZXRDb2RlCisgICAgICogQHN0YWJs
ZSBJQ1UgMi44CisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0U2NyaXB0KCAp
IGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTMxNjYg
Y291bnRyeSBjb2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICog
IGdldENvdW50cnkoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2Nh
bGUncyB2YXJpYW50IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBj
b2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNo
YXIgKiAgZ2V0VmFyaWFudCggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhl
IHByb2dyYW1tYXRpYyBuYW1lIG9mIHRoZSBlbnRpcmUgbG9jYWxlLCB3aXRoIHRoZSBsYW5ndWFn
ZSwKKyAgICAgKiBjb3VudHJ5IGFuZCB2YXJpYW50IHNlcGFyYXRlZCBieSB1bmRlcmJhcnMuIElm
IGEgZmllbGQgaXMgbWlzc2luZywgdXAKKyAgICAgKiB0byB0d28gbGVhZGluZyB1bmRlcmJhcnMg
d2lsbCBvY2N1ci4gRXhhbXBsZTogImVuIiwgImRlX0RFIiwgImVuX1VTX1dJTiIsCisgICAgICog
ImRlX19QT1NJWCIsICJmcl9fTUFDIiwgIl9fTUFDIiwgIl9NVCIsICJfRlJfRVVSTyIKKyAgICAg
KiBAcmV0dXJuICAgICAgQSBwb2ludGVyIHRvICJuYW1lIi4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqIGdldE5hbWUoKSBjb25zdDsKKwor
ICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHByb2dyYW1tYXRpYyBuYW1lIG9mIHRoZSBlbnRp
cmUgbG9jYWxlIGFzIGdldE5hbWUoKSB3b3VsZCByZXR1cm4sCisgICAgICogYnV0IHdpdGhvdXQg
a2V5d29yZHMuCisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0byAibmFtZSIuCisgICAg
ICogQHNlZSBnZXROYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgY29u
c3QgY2hhciAqIGdldEJhc2VOYW1lKCkgY29uc3Q7CisKKworICAgIC8qKgorICAgICAqIEdldHMg
dGhlIGxpc3Qgb2Yga2V5d29yZHMgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqCisg
ICAgICogQHBhcmFtIHN0YXR1cyB0aGUgc3RhdHVzIGNvZGUKKyAgICAgKiBAcmV0dXJuIHBvaW50
ZXIgdG8gU3RyaW5nRW51bWVyYXRpb24gY2xhc3MsIG9yIE5VTEwgaWYgdGhlcmUgYXJlIG5vIGtl
eXdvcmRzLiAKKyAgICAgKiBDbGllbnQgbXVzdCBkaXNwb3NlIG9mIGl0IGJ5IGNhbGxpbmcgZGVs
ZXRlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFN0cmluZ0VudW1lcmF0
aW9uICogY3JlYXRlS2V5d29yZHMoVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8q
KgorICAgICAqIEdldHMgdGhlIHZhbHVlIGZvciBhIGtleXdvcmQuCisgICAgICoKKyAgICAgKiBA
cGFyYW0ga2V5d29yZE5hbWUgbmFtZSBvZiB0aGUga2V5d29yZCBmb3Igd2hpY2ggd2Ugd2FudCB0
aGUgdmFsdWUuIENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHBhcmFtIGJ1ZmZlciBUaGUgYnVm
ZmVyIHRvIHJlY2VpdmUgdGhlIGtleXdvcmQgdmFsdWUuCisgICAgICogQHBhcmFtIGJ1ZmZlckNh
cGFjaXR5IFRoZSBjYXBhY2l0eSBvZiByZWNlaXZpbmcgYnVmZmVyCisgICAgICogQHBhcmFtIHN0
YXR1cyBSZXR1cm5zIGFueSBlcnJvciBpbmZvcm1hdGlvbiB3aGlsZSBwZXJmb3JtaW5nIHRoaXMg
b3BlcmF0aW9uLgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUga2V5d29yZCB2YWx1
ZQorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgaW50MzJfdCBn
ZXRLZXl3b3JkVmFsdWUoY29uc3QgY2hhcioga2V5d29yZE5hbWUsIGNoYXIgKmJ1ZmZlciwgaW50
MzJfdCBidWZmZXJDYXBhY2l0eSwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8q
KgorICAgICAqIFNldHMgb3IgcmVtb3ZlcyB0aGUgdmFsdWUgZm9yIGEga2V5d29yZC4KKyAgICAg
KgorICAgICAqIEZvciByZW1vdmluZyBhbGwga2V5d29yZHMsIHVzZSBnZXRCYXNlTmFtZSgpLAor
ICAgICAqIGFuZCBjb25zdHJ1Y3QgYSBuZXcgTG9jYWxlIGlmIGl0IGRpZmZlcnMgZnJvbSBnZXRO
YW1lKCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5d29yZE5hbWUgbmFtZSBvZiB0aGUga2V5
d29yZCB0byBiZSBzZXQuIENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHBhcmFtIGtleXdvcmRW
YWx1ZSB2YWx1ZSBvZiB0aGUga2V5d29yZCB0byBiZSBzZXQuIElmIDAtbGVuZ3RoIG9yCisgICAg
ICogIE5VTEwsIHdpbGwgcmVzdWx0IGluIHRoZSBrZXl3b3JkIGJlaW5nIHJlbW92ZWQuIE5vIGVy
cm9yIGlzIGdpdmVuIGlmCisgICAgICogIHRoYXQga2V5d29yZCBkb2VzIG5vdCBleGlzdC4KKyAg
ICAgKiBAcGFyYW0gc3RhdHVzIFJldHVybnMgYW55IGVycm9yIGluZm9ybWF0aW9uIHdoaWxlIHBl
cmZvcm1pbmcgdGhpcyBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQor
ICAgICAqLworICAgIHZvaWQgc2V0S2V5d29yZFZhbHVlKGNvbnN0IGNoYXIqIGtleXdvcmROYW1l
LCBjb25zdCBjaGFyKiBrZXl3b3JkVmFsdWUsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAv
KioKKyAgICAgKiByZXR1cm5zIHRoZSBsb2NhbGUncyB0aHJlZS1sZXR0ZXIgbGFuZ3VhZ2UgY29k
ZSwgYXMgc3BlY2lmaWVkCisgICAgICogaW4gSVNPIGRyYWZ0IHN0YW5kYXJkIElTTy02MzktMi4K
KyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUsIG9yIGFuIGVtcHR5IHN0
cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBn
ZXRJU08zTGFuZ3VhZ2UoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1l
IiB3aXRoIHRoZSBsb2NhbGUncyB0aHJlZS1sZXR0ZXIgSVNPLTMxNjYgY291bnRyeSBjb2RlLgor
ICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZSwgb3IgYW4gZW1wdHkgc3Ry
aW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgY29uc3QgY2hhciAqIGdl
dElTTzNDb3VudHJ5KCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBXaW5k
b3dzIExDSUQgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGlzIGxvY2FsZS4KKyAgICAgKiBUaGlz
IHZhbHVlIGlzIHN0b3JlZCBpbiB0aGUgcmVzb3VyY2UgZGF0YSBmb3IgdGhlIGxvY2FsZSBhcyBh
IG9uZS10by1mb3VyLWRpZ2l0CisgICAgICogaGV4YWRlY2ltYWwgbnVtYmVyLiAgSWYgdGhlIHJl
c291cmNlIGlzIG1pc3NpbmcsIGluIHRoZSB3cm9uZyBmb3JtYXQsIG9yCisgICAgICogdGhlcmUg
aXMgbm8gV2luZG93cyBMQ0lEIHZhbHVlIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhpcyBsb2NhbGUs
IHJldHVybnMgMC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB1aW50MzJf
dCAgICAgICAgZ2V0TENJRCh2b2lkKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJ
CisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGlz
IHdyaXR0ZW4gcmlnaHQtdG8tbGVmdC4KKyAgICAgKiBJZiB0aGVyZSBpcyBubyBzY3JpcHQgc3Vi
dGFnLCB0aGVuIHRoZSBsaWtlbHkgc2NyaXB0IGlzIHVzZWQsIHNlZSB1bG9jX2FkZExpa2VseVN1
YnRhZ3MoKS4KKyAgICAgKiBJZiBubyBsaWtlbHkgc2NyaXB0IGlzIGtub3duLCB0aGVuIEZBTFNF
IGlzIHJldHVybmVkLgorICAgICAqCisgICAgICogQSBzY3JpcHQgaXMgcmlnaHQtdG8tbGVmdCBh
Y2NvcmRpbmcgdG8gdGhlIENMRFIgc2NyaXB0IG1ldGFkYXRhCisgICAgICogd2hpY2ggY29ycmVz
cG9uZHMgdG8gd2hldGhlciB0aGUgc2NyaXB0J3MgbGV0dGVycyBoYXZlIEJpZGlfQ2xhc3M9UiBv
ciBBTC4KKyAgICAgKgorICAgICAqIFJldHVybnMgVFJVRSBmb3IgImFyIiBhbmQgImVuLUhlYnIi
LCBGQUxTRSBmb3IgInpoIiBhbmQgImZhLUN5cmwiLgorICAgICAqCisgICAgICogQHJldHVybiBU
UlVFIGlmIHRoZSBsb2NhbGUncyBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0CisgICAg
ICogQGRyYWZ0IElDVSA1NAorICAgICAqLworICAgIFVCb29sIGlzUmlnaHRUb0xlZnQoKSBjb25z
dDsKKyNlbmRpZiAgLyogVV9ISURFX0RSQUZUX0FQSSAqLworCisgICAgLyoqCisgICAgICogRmls
bHMgaW4gImRpc3BMYW5nIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2Ug
aW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yCisgICAgICogdXNlciBkaXNwbGF5IGluIHRoZSBkZWZh
dWx0IGxvY2FsZS4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBp
cworICAgICAqICJmciIgYW5kIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMg
ImVuIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwTGFuZyB0byAiRnJlbmNo
Ii4KKyAgICAgKiBAcGFyYW0gZGlzcExhbmcgIFJlY2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRpc3Bs
YXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwTGFu
ZyIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYg
IGdldERpc3BsYXlMYW5ndWFnZShVbmljb2RlU3RyaW5nJiAgIGRpc3BMYW5nKSBjb25zdDsKKwor
ICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwTGFuZyIgd2l0aCB0aGUgbmFtZSBvZiB0aGlz
IGxvY2FsZSdzIGxhbmd1YWdlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvcgorICAgICAqIHVzZXIg
ZGlzcGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3Ig
ZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzCisgICAgICogbGFuZ3VhZ2UgY29kZSBpcyAiZW4iIGFu
ZCBkaXNwbGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZnIiLCB0aGlzIGZ1bmN0aW9uIHdv
dWxkIHNldAorICAgICAqIGRpc3BMYW5nIHRvICJBbmdsYWlzIi4KKyAgICAgKiBAcGFyYW0gZGlz
cGxheUxvY2FsZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRo
ZSBuYW1lLiAgSW4gb3RoZXIgd29yZHMsCisgICAgICogICAgICAgICAgICAgICAgICBpZiB0aGUg
bG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCBwYXNzaW5nIExvY2FsZTo6Z2V0RnJlbmNo
KCkgZm9yCisgICAgICogICAgICAgICAgICAgICAgICBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3Vs
dCBpbiAiQW5nbGFpcyIsIHdoaWxlIHBhc3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKQorICAgICAq
ICAgICAgICAgICAgICAgICAgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICJFbmds
aXNjaCIuCisgICAgICogQHBhcmFtIGRpc3BMYW5nICBSZWNlaXZlcyB0aGUgbGFuZ3VhZ2UncyBk
aXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlz
cExhbmciLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJp
bmcmICBnZXREaXNwbGF5TGFuZ3VhZ2UoIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlM
b2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBV
bmljb2RlU3RyaW5nJiAgZGlzcExhbmcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMg
aW4gImRpc3BTY3JpcHQiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBzY3JpcHQgaW4g
YSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0
IGxvY2FsZS4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGNvZGUKKyAgICAg
KiBpcyAiTEFUTiIgYW5kIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVu
IiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwU2NyaXB0IHRvICJMYXRpbiIu
CisgICAgICogQHBhcmFtIGRpc3BTY3JpcHQgICAgUmVjZWl2ZXMgdGhlIHNjcmlwdHMncyBkaXNw
bGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRp
c3BTY3JpcHQiLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFVuaWNvZGVT
dHJpbmcmICBnZXREaXNwbGF5U2NyaXB0KCAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwU2Ny
aXB0KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwU2NyaXB0IiB3aXRo
IHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQor
ICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3Bs
YXlMb2NhbGUiLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncworICAgICAqIHNjcmlwdCBj
b2RlIGlzICJMQVROIiBhbmQgZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwg
dGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwU2NyaXB0IHRvICJMYXRpbiIuCisg
ICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBi
ZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlcgorICAgICAqICAgICAgICAgICAg
ICAgICAgICAgIHdvcmRzLCBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGNvZGUgaXMgIkxBVE4iLCBw
YXNzaW5nCisgICAgICogICAgICAgICAgICAgICAgICAgICAgTG9jYWxlOjpnZXRGcmVuY2goKSBm
b3IgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIiIsIHdoaWxlCisgICAgICogICAgICAg
ICAgICAgICAgICAgICAgcGFzc2luZyBMb2NhbGU6OmdldEdlcm1hbigpIGZvciBkaXNwbGF5TG9j
YWxlIHdvdWxkIHJlc3VsdCBpbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICIiLgorICAg
ICAqIEBwYXJhbSBkaXNwU2NyaXB0ICAgIFJlY2VpdmVzIHRoZSBzY3JpcHRzJ3MgZGlzcGxheSBu
YW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwU2Ny
aXB0Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5n
JiAgZ2V0RGlzcGxheVNjcmlwdCggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2Nh
bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNv
ZGVTdHJpbmcmICBkaXNwU2NyaXB0KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGlu
ICJkaXNwQ291bnRyeSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGNvdW50cnkgaW4g
YSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0
IGxvY2FsZS4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MgY291bnRyeSBjb2RlCisgICAg
ICogaXMgIkZSIiBhbmQgdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4i
LCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BDb3VudHJ5IHRvICJGcmFuY2Ui
LgorICAgICAqIEBwYXJhbSBkaXNwQ291bnRyeSAgIFJlY2VpdmVzIHRoZSBjb3VudHJ5J3MgZGlz
cGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJk
aXNwQ291bnRyeSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29k
ZVN0cmluZyYgIGdldERpc3BsYXlDb3VudHJ5KCAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNw
Q291bnRyeSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcENvdW50cnki
IHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRh
YmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAi
ZGlzcGxheUxvY2FsZSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzCisgICAgICogY291
bnRyeSBjb2RlIGlzICJVUyIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJm
ciIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcENvdW50cnkgdG8gIiZFYWN1
dGU7dGF0cy1VbmlzIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgICAgIFNwZWNpZmll
cyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIEluIG90aGVyCisg
ICAgICogICAgICAgICAgICAgICAgICAgICAgd29yZHMsIGlmIHRoZSBsb2NhbGUncyBjb3VudHJ5
IGNvZGUgaXMgIlVTIiwgcGFzc2luZworICAgICAqICAgICAgICAgICAgICAgICAgICAgIExvY2Fs
ZTo6Z2V0RnJlbmNoKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICImRWFjdXRl
O3RhdHMtVW5pcyIsIHdoaWxlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgcGFzc2luZyBM
b2NhbGU6OmdldEdlcm1hbigpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbgorICAg
ICAqICAgICAgICAgICAgICAgICAgICAgICJWZXJlaW5pZ3RlIFN0YWF0ZW4iLgorICAgICAqIEBw
YXJhbSBkaXNwQ291bnRyeSAgIFJlY2VpdmVzIHRoZSBjb3VudHJ5J3MgZGlzcGxheSBuYW1lLgor
ICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwQ291bnRyeSIu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdl
dERpc3BsYXlDb3VudHJ5KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVT
dHJpbmcmICBkaXNwQ291bnRyeSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAi
ZGlzcFZhciIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgY29kZSBpbiBh
IGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQg
bG9jYWxlLgorICAgICAqIEBwYXJhbSBkaXNwVmFyICAgUmVjZWl2ZXMgdGhlIHZhcmlhbnQncyBu
YW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BWYXIiLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXRE
aXNwbGF5VmFyaWFudCggICAgICBVbmljb2RlU3RyaW5nJiBkaXNwVmFyKSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwVmFyIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9j
YWxlJ3MgdmFyaWFudCBjb2RlIGluIGEgZm9ybWF0CisgICAgICogc3VpdGFibGUgZm9yIHVzZXIg
ZGlzcGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuCisgICAg
ICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQg
dG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcGFyYW0gZGlzcFZhciAgIFJlY2VpdmVzIHRo
ZSB2YXJpYW50J3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZl
cmVuY2UgdG8gImRpc3BWYXIiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5VmFyaWFudCggIGNvbnN0ICAgTG9jYWxlJiAgICAg
ICAgIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgZGlzcFZhcikgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBGaWxscyBpbiAibmFtZSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSBpbiBhIGZv
cm1hdCBzdWl0YWJsZSBmb3IgdXNlciBkaXNwbGF5CisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9j
YWxlLiAgVGhpcyBmdW5jdGlvbiB1c2VzIGdldERpc3BsYXlMYW5ndWFnZSgpLCBnZXREaXNwbGF5
Q291bnRyeSgpLAorICAgICAqIGFuZCBnZXREaXNwbGF5VmFyaWFudCgpIHRvIGRvIGl0cyB3b3Jr
LCBhbmQgb3V0cHV0cyB0aGUgZGlzcGxheSBuYW1lIGluIHRoZSBmb3JtYXQKKyAgICAgKiAibGFu
Z3VhZ2UgKGNvdW50cnlbLHZhcmlhbnRdKSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGRlZmF1bHQg
bG9jYWxlIGlzIGVuX1VTLCB0aGVuCisgICAgICogZnJfRlIncyBkaXNwbGF5IG5hbWUgd291bGQg
YmUgIkZyZW5jaCAoRnJhbmNlKSIsIGFuZCBlc19NWF9UcmFkaXRpb25hbCdzIGRpc3BsYXkgbmFt
ZQorICAgICAqIHdvdWxkIGJlICJTcGFuaXNoIChNZXhpY28sVHJhZGl0aW9uYWwpIi4KKyAgICAg
KiBAcGFyYW0gbmFtZSAgUmVjZWl2ZXMgdGhlIGxvY2FsZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAg
KiBAcmV0dXJuICAgICAgQSByZWZlcmVuY2UgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TmFtZSggICAgICAg
ICBVbmljb2RlU3RyaW5nJiAgbmFtZSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBp
biAibmFtZSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSBpbiBhIGZvcm1hdCBzdWl0YWJs
ZSBmb3IgdXNlciBkaXNwbGF5CisgICAgICogaW4gdGhlIGxvY2FsZSBzcGVjZmllZCBieSAiZGlz
cGxheUxvY2FsZSIuICBUaGlzIGZ1bmN0aW9uIHVzZXMgZ2V0RGlzcGxheUxhbmd1YWdlKCksCisg
ICAgICogZ2V0RGlzcGxheUNvdW50cnkoKSwgYW5kIGdldERpc3BsYXlWYXJpYW50KCkgdG8gZG8g
aXRzIHdvcmssIGFuZCBvdXRwdXRzIHRoZSBkaXNwbGF5CisgICAgICogbmFtZSBpbiB0aGUgZm9y
bWF0ICJsYW5ndWFnZSAoY291bnRyeVssdmFyaWFudF0pIi4gIEZvciBleGFtcGxlLCBpZiBkaXNw
bGF5TG9jYWxlIGlzCisgICAgICogZnJfRlIsIHRoZW4gZW5fVVMncyBkaXNwbGF5IG5hbWUgd291
bGQgYmUgIkFuZ2xhaXMgKCZFYWN1dGU7dGF0cy1VbmlzKSIsIGFuZCBub19OT19OWSdzCisgICAg
ICogZGlzcGxheSBuYW1lIHdvdWxkIGJlICJub3J2JmVhY3V0ZTtnaWVuIChOb3J2JmVncmF2ZTtn
ZSxOWSkiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2Fs
ZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHBhcmFtIG5hbWUgICAg
ICBSZWNlaXZlcyB0aGUgbG9jYWxlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAg
ICAgICAgQSByZWZlcmVuY2UgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TmFtZSggY29uc3QgICBMb2NhbGUm
ICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIG5hbWUpIGNvbnN0OworCisgICAgLyoqCisgICAg
ICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGUgbG9jYWxlLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICBoYXNoQ29kZSh2b2lkKSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGxvY2FsZSB0byBib2d1cworICAgICAqIEEg
Ym9ndXMgbG9jYWxlIHJlcHJlc2VudHMgYSBub24tZXhpc3RpbmcgbG9jYWxlIGFzc29jaWF0ZWQK
KyAgICAgKiB3aXRoIHNlcnZpY2VzIHRoYXQgY2FuIGJlIGluc3RhbnRpYXRlZCBmcm9tIG5vbi1s
b2NhbGUgZGF0YQorICAgICAqIGluIGFkZGl0aW9uIHRvIGxvY2FsZSAoZm9yIGV4YW1wbGUsIGNv
bGxhdGlvbiBjYW4gYmUKKyAgICAgKiBpbnN0YW50aWF0ZWQgZnJvbSBhIGxvY2FsZSBhbmQgZnJv
bSBhIHJ1bGUgc2V0KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICB2b2lk
IHNldFRvQm9ndXMoKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGJvZ3VzIHN0YXRlLiBM
b2NhbGUgb2JqZWN0IGNhbiBiZSBib2d1cyBpZiBpdCBkb2Vzbid0IGV4aXN0CisgICAgICogQHJl
dHVybiBGQUxTRSBpZiBpdCBpcyBhIHJlYWwgbG9jYWxlLCBUUlVFIGlmIGl0IGlzIGEgYm9ndXMg
bG9jYWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgVUJvb2wgaXNCb2d1
cyh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBp
bnN0YWxsZWQgbG9jYWxlcy4KKyAgICAgKiBAcGFyYW0gY291bnQgUmVjZWl2ZXMgdGhlIG51bWJl
ciBvZiBsb2NhbGVzIGluIHRoZSBsaXN0LgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIg
dG8gYW4gYXJyYXkgb2YgTG9jYWxlIG9iamVjdHMuICBUaGlzIGFycmF5IGlzIHRoZSBsaXN0Cisg
ICAgICogICAgICAgICAgICAgIG9mIGFsbCBsb2NhbGVzIHdpdGggaW5zdGFsbGVkIHJlc291cmNl
IGZpbGVzLiAgVGhlIGNhbGxlZCBkb2VzIE5PVAorICAgICAqICAgICAgICAgICAgICBnZXQgb3du
ZXJzaGlwIG9mIHRoaXMgbGlzdCwgYW5kIG11c3QgTk9UIGRlbGV0ZSBpdC4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlKiBVX0VYUE9SVDIg
Z2V0QXZhaWxhYmxlTG9jYWxlcyhpbnQzMl90JiBjb3VudCk7CisKKyAgICAvKioKKyAgICAgKiBH
ZXRzIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIDItbGV0dGVyIGNvdW50cnkgY29kZXMgZGVmaW5l
ZCBpbiBJU08gMzE2Ni4gIFRoaXMgaXMgYQorICAgICAqIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2Yg
cG9pbnRlcnMgdG8gYXJyYXlzIG9mIGNoYXIuICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlCisg
ICAgICogb3duZWQgYnkgSUNVLS0gZG8gbm90IGRlbGV0ZSB0aGVtLCBhbmQgZG8gbm90IHdyaXRl
IHRocm91Z2ggdGhlbS4gIFRoZSBhcnJheSBpcworICAgICAqIHRlcm1pbmF0ZWQgd2l0aCBhIG51
bGwgcG9pbnRlci4KKyAgICAgKiBAcmV0dXJuIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGNvdW50
cnkgY29kZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29u
c3QgY2hhciogY29uc3QqIFVfRVhQT1JUMiBnZXRJU09Db3VudHJpZXMoKTsKKworICAgIC8qKgor
ICAgICAqIEdldHMgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgbGFuZ3VhZ2UgY29kZXMgZGVmaW5l
ZCBpbiBJU08gNjM5LiAgVGhpcyBpcyBhIHBvaW50ZXIKKyAgICAgKiB0byBhbiBhcnJheSBvZiBw
b2ludGVycyB0byBhcnJheXMgb2YgY2hhci4gIEFsbCBvZiB0aGVzZSBwb2ludGVycyBhcmUgb3du
ZWQKKyAgICAgKiBieSBJQ1UtLSBkbyBub3QgZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUg
dGhyb3VnaCB0aGVtLiAgVGhlIGFycmF5IGlzCisgICAgICogdGVybWluYXRlZCB3aXRoIGEgbnVs
bCBwb2ludGVyLgorICAgICAqIEByZXR1cm4gYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgbGFuZ3Vh
Z2UgY29kZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29u
c3QgY2hhciogY29uc3QqIFVfRVhQT1JUMiBnZXRJU09MYW5ndWFnZXMoKTsKKworICAgIC8qKgor
ICAgICAqIElDVSAicG9vciBtYW4ncyBSVFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGlz
IGNsYXNzLgorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgc3Rh
dGljIFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKCk7CisKKyAgICAvKioKKyAg
ICAgKiBJQ1UgInBvb3IgbWFuJ3MgUlRUSSIsIHJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhlIGFj
dHVhbCBjbGFzcy4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAg
IHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQoKSBjb25zdDsKKworcHJvdGVjdGVk
OiAvKiBvbmx5IHByb3RlY3RlZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gRE8gTk9UIFVTRS4gKi8K
KyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAqIFNldCB0aGlzIGZy
b20gYSBzaW5nbGUgUE9TSVggc3R5bGUgbG9jYWxlIHN0cmluZy4KKyAgICAgKiBAaW50ZXJuYWwK
KyAgICAgKi8KKyAgICB2b2lkIHNldEZyb21QT1NJWElEKGNvbnN0IGNoYXIgKnBvc2l4SUQpOwor
I2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKK3ByaXZhdGU6CisgICAgLyoqCisg
ICAgICogSW5pdGlhbGl6ZSB0aGUgbG9jYWxlIG9iamVjdCB3aXRoIGEgbmV3IG5hbWUuCisgICAg
ICogV2FzIGRlcHJlY2F0ZWQgLSB1c2VkIGluIGltcGxlbWVudGF0aW9uIC0gbW92ZWQgaW50ZXJu
YWwKKyAgICAgKgorICAgICAqIEBwYXJhbSBjTG9jYWxlSUQgVGhlIG5ldyBsb2NhbGUgbmFtZS4K
KyAgICAgKiBAcGFyYW0gY2Fub25pY2FsaXplIHdoZXRoZXIgdG8gY2FsbCB1bG9jX2Nhbm9uaWNh
bGl6ZSBvbiBjTG9jYWxlSUQKKyAgICAgKi8KKyAgICBMb2NhbGUmIGluaXQoY29uc3QgY2hhciog
Y0xvY2FsZUlELCBVQm9vbCBjYW5vbmljYWxpemUpOworCisgICAgLyoKKyAgICAgKiBJbnRlcm5h
bCBjb25zdHJ1Y3RvciB0byBhbGxvdyBjb25zdHJ1Y3Rpb24gb2YgYSBsb2NhbGUgb2JqZWN0IHdp
dGgKKyAgICAgKiAgIE5PIHNpZGUgZWZmZWN0cy4gICAoRGVmYXVsdCBjb25zdHJ1Y3RvciB0cmll
cyB0byBnZXQKKyAgICAgKiAgIHRoZSBkZWZhdWx0IGxvY2FsZS4pCisgICAgICovCisgICAgZW51
bSBFTG9jYWxlVHlwZSB7CisgICAgICAgIGVCT0dVUworICAgIH07CisgICAgTG9jYWxlKEVMb2Nh
bGVUeXBlKTsKKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgdGhlIGxvY2FsZSBjYWNoZSBm
b3IgY29tbW9ubHkgdXNlZCBsb2NhbGVzCisgICAgICovCisgICAgc3RhdGljIExvY2FsZSAqZ2V0
TG9jYWxlQ2FjaGUodm9pZCk7CisKKyAgICBjaGFyIGxhbmd1YWdlW1VMT0NfTEFOR19DQVBBQ0lU
WV07CisgICAgY2hhciBzY3JpcHRbVUxPQ19TQ1JJUFRfQ0FQQUNJVFldOworICAgIGNoYXIgY291
bnRyeVtVTE9DX0NPVU5UUllfQ0FQQUNJVFldOworICAgIGludDMyX3QgdmFyaWFudEJlZ2luOwor
ICAgIGNoYXIqIGZ1bGxOYW1lOworICAgIGNoYXIgZnVsbE5hbWVCdWZmZXJbVUxPQ19GVUxMTkFN
RV9DQVBBQ0lUWV07CisgICAgLy8gbmFtZSB3aXRob3V0IGtleXdvcmRzCisgICAgY2hhciogYmFz
ZU5hbWU7CisgICAgdm9pZCBpbml0QmFzZU5hbWUoVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAg
IFVCb29sIGZJc0JvZ3VzOworCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmZ2V0TG9jYWxlKGlu
dCBsb2NpZCk7CisKKyAgICAvKioKKyAgICAgKiBBIGZyaWVuZCB0byBhbGxvdyB0aGUgZGVmYXVs
dCBsb2NhbGUgdG8gYmUgc2V0IGJ5IGVpdGhlciB0aGUgQyBvciBDKysgQVBJLgorICAgICAqIEBp
bnRlcm5hbAorICAgICAqLworICAgIGZyaWVuZCBMb2NhbGUgKmxvY2FsZV9zZXRfZGVmYXVsdF9p
bnRlcm5hbChjb25zdCBjaGFyICosIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAg
ICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBmcmllbmQgdm9pZCBVX0NBTExDT05WIGxvY2Fs
ZV9hdmFpbGFibGVfaW5pdCgpOworfTsKKworaW5saW5lIFVCb29sCitMb2NhbGU6Om9wZXJhdG9y
IT0oY29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuICFvcGVy
YXRvcj09KG90aGVyKTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRDb3Vu
dHJ5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gY291bnRyeTsKK30KKworaW5saW5lIGNvbnN0IGNo
YXIgKgorTG9jYWxlOjpnZXRMYW5ndWFnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGxhbmd1YWdl
OworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldFNjcmlwdCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHNjcmlwdDsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpn
ZXRWYXJpYW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gJmJhc2VOYW1lW3ZhcmlhbnRCZWdpbl07
Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0TmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZ1bGxOYW1lOworfQorCitpbmxpbmUgVUJvb2wKK0xvY2FsZTo6aXNCb2d1cyh2
b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIGZJc0JvZ3VzOworfQorCitVX05BTUVTUEFDRV9FTkQK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JiYmkuaCBiL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NzU5OGE1MGU2ZmEzYmFi
MmFkNDllMDIyYWFmMzk2Y2FjMzI5ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2lj
dS91bmljb2RlL3JiYmkuaApAQCAtMCwwICsxLDc4MiBAQAorLyoKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMgQ29ycG9yYXRpb24gICAqCisqICAgYW5kIG90aGVycy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3Jp
cHRpb24KKyogICAxMC8yMi85OSAgICBhbGFuICAgICAgICBDcmVhdGlvbi4KKyogICAxMS8xMS85
OSAgICByZ2lsbGFtICAgICBDb21wbGV0ZSBwb3J0IGZyb20gSmF2YS4KKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyovCisKKyNpZm5kZWYgUkJCSV9ICisjZGVmaW5lIFJCQklfSAorCisjaW5jbHVkZSAidW5pY29k
ZS91dHlwZXMuaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IFJ1bGUgQmFz
ZWQgQnJlYWsgSXRlcmF0b3IKKyAqLworCisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9O
CisKKyNpbmNsdWRlICJ1bmljb2RlL2Jya2l0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRh
LmgiCisjaW5jbHVkZSAidW5pY29kZS9wYXJzZWVyci5oIgorI2luY2x1ZGUgInVuaWNvZGUvc2No
cml0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VjaHJpdGVyLmgiCisKKworc3RydWN0IFVUcmll
OworCitVX05BTUVTUEFDRV9CRUdJTgorCisvKiogQGludGVybmFsICovCitzdHJ1Y3QgUkJCSURh
dGFIZWFkZXI7CitjbGFzcyAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvclRhYmxlczsKK2NsYXNzICBC
cmVha0l0ZXJhdG9yOworY2xhc3MgIFJCQklEYXRhV3JhcHBlcjsKK2NsYXNzICBVU3RhY2s7Citj
bGFzcyAgTGFuZ3VhZ2VCcmVha0VuZ2luZTsKK2NsYXNzICBVbmhhbmRsZWRFbmdpbmU7CitzdHJ1
Y3QgUkJCSVN0YXRlVGFibGU7CisKKworCisKKy8qKgorICoKKyAqIEEgc3ViY2xhc3Mgb2YgQnJl
YWtJdGVyYXRvciB3aG9zZSBiZWhhdmlvciBpcyBzcGVjaWZpZWQgdXNpbmcgYSBsaXN0IG9mIHJ1
bGVzLgorICogPHA+SW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgYXJlIG1vc3QgY29tbW9ubHkgY3Jl
YXRlZCBieSB0aGUgZmFjdG9yeSBtZXRob2RzIG9mCisgKiAgQnJlYWtJdGVyYXRvcjo6Y3JlYXRl
V29yZEluc3RhbmNlKCksIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZUxpbmVJbnN0YW5jZSgpLCBldGMu
LAorICogIGFuZCB0aGVuIHVzZWQgdmlhIHRoZSBhYnN0cmFjdCBBUEkgaW4gY2xhc3MgQnJlYWtJ
dGVyYXRvcjwvcD4KKyAqCisgKiA8cD5TZWUgdGhlIElDVSBVc2VyIEd1aWRlIGZvciBpbmZvcm1h
dGlvbiBvbiBCcmVhayBJdGVyYXRvciBSdWxlcy48L3A+CisgKgorICogPHA+VGhpcyBjbGFzcyBp
cyBub3QgaW50ZW5kZWQgdG8gYmUgc3ViY2xhc3NlZC4gIChDbGFzcyBEaWN0aW9uYXJ5QmFzZWRC
cmVha0l0ZXJhdG9yCisgKiAgICBpcyBhIHN1YmNsYXNzLCBidXQgdGhhdCByZWxhdGlvbnNoaXAg
aXMgZWZmZWN0aXZlbHkgaW50ZXJuYWwgdG8gdGhlIElDVQorICogICAgaW1wbGVtZW50YXRpb24u
ICBUaGUgc3ViY2xhc3NpbmcgaW50ZXJmYWNlIHRvIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yIGlz
CisgKiAgICBub3QgcGFydCBvZiB0aGUgSUNVIEFQSSwgYW5kIG1heSBub3QgcmVtYWluIHN0YWJs
ZS48L3A+CisgKgorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgUnVsZUJhc2VkQnJlYWtJdGVyYXRv
ciAvKlVfRklOQUwqLyA6IHB1YmxpYyBCcmVha0l0ZXJhdG9yIHsKKworcHJvdGVjdGVkOgorICAg
IC8qKgorICAgICAqIFRoZSBVVGV4dCB0aHJvdWdoIHdoaWNoIHRoaXMgQnJlYWtJdGVyYXRvciBh
Y2Nlc3NlcyB0aGUgdGV4dAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVUZXh0ICAq
ZlRleHQ7CisKKyAgICAvKioKKyAgICAgKiAgIEEgY2hhcmFjdGVyIGl0ZXJhdG9yIHRoYXQgcmVm
ZXJzIHRvIHRoZSBzYW1lIHRleHQgYXMgdGhlIFVUZXh0LCBhYm92ZS4KKyAgICAgKiAgIE9ubHkg
aW5jbHVkZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgQVBJLCB3aGljaCB3YXMgYmFzZWQg
b24gQ2hhcmFjdGVySXRlcmF0b3JzLgorICAgICAqICAgVmFsdWUgbWF5IGJlIGFkb3B0ZWQgZnJv
bSBvdXRzaWRlLCBvciBvbmUgb2YgZlNDaGFySXRlciBvciBmRENoYXJJdGVyLCBiZWxvdy4KKyAg
ICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvciAgKmZDaGFySXRlcjsKKworICAgIC8qKgorICAg
ICAqICAgV2hlbiB0aGUgaW5wdXQgdGV4dCBpcyBwcm92aWRlZCBieSBhIFVuaWNvZGVTdHJpbmcs
IHRoaXMgd2lsbCBwb2ludCB0bworICAgICAqICAgIGEgY2hhcmFjdGVySXRlcmF0b3IgdGhhdCB3
cmFwcyB0aGF0IGRhdGEuICBOZWVkZWQgb25seSBmb3IgdGhlCisgICAgICogICAgaW1wbGVtZW50
YXRpb24gb2YgZ2V0VGV4dCgpLCBhIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGlzc3VlLgorICAg
ICAqLworICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yICpmU0NoYXJJdGVyOworCisgICAgLyoq
CisgICAgICogIFdoZW4gdGhlIGlucHV0IHRleHQgaXMgcHJvdmlkZWQgYnkgYSBVVGV4dCwgdGhp
cworICAgICAqICAgIGR1bW15IENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgYW4gZW1wdHkgc3RyaW5n
IHdpbGwKKyAgICAgKiAgICBiZSByZXR1cm5lZCBmcm9tIGdldFRleHQoKQorICAgICAqLworICAg
IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgKmZEQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiBU
aGUgcnVsZSBkYXRhIGZvciB0aGlzIEJyZWFrSXRlcmF0b3IgaW5zdGFuY2UKKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBSQkJJRGF0YVdyYXBwZXIgICAgKmZEYXRhOworCisgICAgLyoq
IEluZGV4IG9mIHRoZSBSdWxlIHt0YWd9IHZhbHVlcyBmb3IgdGhlIG1vc3QgcmVjZW50IG1hdGNo
LgorICAgICAqICBAaW50ZXJuYWwKKyAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZkxh
c3RSdWxlU3RhdHVzSW5kZXg7CisKKyAgICAvKioKKyAgICAgKiBSdWxlIHRhZyB2YWx1ZSB2YWxp
ZCBmbGFnLgorICAgICAqIFNvbWUgaXRlcmF0b3Igb3BlcmF0aW9ucyBkb24ndCBpbnRyaW5zaWNh
bGx5IHNldCB0aGUgY29ycmVjdCB0YWcgdmFsdWUuCisgICAgICogVGhpcyBmbGFnIGxldHMgdXMg
bGF6aWx5IGNvbXB1dGUgdGhlIHZhbHVlIGlmIHdlIGFyZSBldmVyIGFza2VkIGZvciBpdC4KKyAg
ICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBVQm9vbCAgICAgICAgICAgICAgIGZMYXN0U3Rh
dHVzSW5kZXhWYWxpZDsKKworICAgIC8qKgorICAgICAqIENvdW50ZXIgZm9yIHRoZSBudW1iZXIg
b2YgY2hhcmFjdGVycyBlbmNvdW50ZXJlZCB3aXRoIHRoZSAiZGljdGlvbmFyeSIKKyAgICAgKiAg
IGZsYWcgc2V0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHVpbnQzMl90ICAgICAg
ICAgICAgZkRpY3Rpb25hcnlDaGFyQ291bnQ7CisKKyAgICAvKioKKyAgICAgKiBXaGVuIGEgcmFu
Z2Ugb2YgY2hhcmFjdGVycyBpcyBkaXZpZGVkIHVwIHVzaW5nIHRoZSBkaWN0aW9uYXJ5LCB0aGUg
YnJlYWsKKyAgICAgKiBwb3NpdGlvbnMgdGhhdCBhcmUgZGlzY292ZXJlZCBhcmUgc3RvcmVkIGhl
cmUsIHByZXZlbnRpbmcgdXMgZnJvbSBoYXZpbmcKKyAgICAgKiB0byB1c2UgZWl0aGVyIHRoZSBk
aWN0aW9uYXJ5IG9yIHRoZSBzdGF0ZSB0YWJsZSBhZ2FpbiB1bnRpbCB0aGUgaXRlcmF0b3IKKyAg
ICAgKiBsZWF2ZXMgdGhpcyByYW5nZSBvZiB0ZXh0LiBIYXMgdGhlIG1vc3QgaW1wYWN0IGZvciBs
aW5lIGJyZWFraW5nLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QqICAg
ICAgICAgICAgZkNhY2hlZEJyZWFrUG9zaXRpb25zOworCisgICAgLyoqCisgICAgICogVGhlIG51
bWJlciBvZiBlbGVtZW50cyBpbiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMKKyAgICAgKiBAaW50ZXJu
YWwKKyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZOdW1DYWNoZWRCcmVha1Bvc2l0
aW9uczsKKworICAgIC8qKgorICAgICAqIGlmIGZDYWNoZWRCcmVha1Bvc2l0aW9ucyBpcyBub3Qg
bnVsbCwgdGhpcyBpbmRpY2F0ZXMgd2hpY2ggaXRlbSBpbiB0aGUKKyAgICAgKiBjYWNoZSB0aGUg
Y3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gcmVmZXJzIHRvCisgICAgICogQGludGVybmFsCisg
ICAgICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmUG9zaXRpb25JbkNhY2hlOworICAgIAor
ICAgIC8qKgorICAgICAqCisgICAgICogSWYgcHJlc2VudCwgVVN0YWNrIG9mIExhbmd1YWdlQnJl
YWtFbmdpbmUgb2JqZWN0cyB0aGF0IG1pZ2h0IGhhbmRsZQorICAgICAqIGRpY3Rpb25hcnkgY2hh
cmFjdGVycy4gU2VhcmNoZWQgZnJvbSB0b3AgdG8gYm90dG9tIHRvIGZpbmQgYW4gb2JqZWN0IHRv
CisgICAgICogaGFuZGxlIGEgZ2l2ZW4gY2hhcmFjdGVyLgorICAgICAqIEBpbnRlcm5hbAorICAg
ICAqLworICAgIFVTdGFjayAgICAgICAgICAgICAgKmZMYW5ndWFnZUJyZWFrRW5naW5lczsKKyAg
ICAKKyAgICAvKioKKyAgICAgKgorICAgICAqIElmIHByZXNlbnQsIHRoZSBzcGVjaWFsIExhbmd1
YWdlQnJlYWtFbmdpbmUgdXNlZCBmb3IgaGFuZGxpbmcKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQg
YXJlIGluIHRoZSBkaWN0aW9uYXJ5IHNldCwgYnV0IG5vdCBoYW5kbGVkIGJ5IGFueQorICAgICAq
IExhbmd1Z2FnZUJyZWFrRW5naW5lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVu
aGFuZGxlZEVuZ2luZSAgICAgKmZVbmhhbmRsZWRCcmVha0VuZ2luZTsKKyAgICAKKyAgICAvKioK
KyAgICAgKgorICAgICAqIFRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvciwgb3IgLTEgaWYg
aXQgaGFzIG5vdCBiZWVuIHNldC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQz
Ml90ICAgICAgICAgICAgIGZCcmVha1R5cGU7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgLy89PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorICAgIC8vIGNvbnN0cnVjdG9ycworICAgIC8vPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
I2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgdG8g
YmUgdXNlZCBpbiB0aGUgY29uc3RydWN0b3IKKyAgICAgKiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
KFJCQklEYXRhSGVhZGVyKiwgRURvbnRBZG9wdCwgVUVycm9yQ29kZSAmKTsKKyAgICAgKiB3aGlj
aCBkb2VzIG5vdCBhZG9wdCB0aGUgbWVtb3J5IGluZGljYXRlZCBieSB0aGUgUkJCSURhdGFIZWFk
ZXIqCisgICAgICogcGFyYW1ldGVyLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICov
CisgICAgZW51bSBFRG9udEFkb3B0IHsKKyAgICAgICAga0RvbnRBZG9wdAorICAgIH07CisKKyAg
ICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmcm9tIGEgZmxhdHRlbmVkIHNldCBvZiBSQkJJIGRh
dGEgaW4gbWFsbG9jZWQgbWVtb3J5LgorICAgICAqICAgICAgICAgICAgIFJ1bGVzQmFzZWRCcmVh
a0l0ZXJhdG9ycyBidWlsdCBmcm9tIGEgY3VzdG9tIHNldCBvZiBydWxlcworICAgICAqICAgICAg
ICAgICAgIGFyZSBjcmVhdGVkIHZpYSB0aGlzIGNvbnN0cnVjdG9yOyB0aGUgcnVsZXMgYXJlIGNv
bXBpbGVkCisgICAgICogICAgICAgICAgICAgaW50byBtZW1vcnksIHRoZW4gdGhlIGJyZWFrIGl0
ZXJhdG9yIGlzIGNvbnN0cnVjdGVkIGhlcmUuCisgICAgICoKKyAgICAgKiAgICAgICAgICAgICBU
aGUgYnJlYWsgaXRlcmF0b3IgYWRvcHRzIHRoZSBtZW1vcnksIGFuZCB3aWxsCisgICAgICogICAg
ICAgICAgICAgZnJlZSBpdCB3aGVuIGRvbmUuCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihSQkJJRGF0YUhlYWRlciogZGF0YSwgVUVycm9yQ29k
ZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZyb20gYSBmbGF0dGVu
ZWQgc2V0IG9mIFJCQkkgZGF0YSBpbiBtZW1vcnkgd2hpY2ggbmVlZCBub3QKKyAgICAgKiAgICAg
ICAgICAgICBiZSBtYWxsb2NlZCAoZS5nLiBpdCBtYXkgYmUgYSBtZW1vcnktbWFwcGVkIGZpbGUs
IGV0Yy4pLgorICAgICAqCisgICAgICogICAgICAgICAgICAgVGhpcyB2ZXJzaW9uIGRvZXMgbm90
IGFkb3B0IHRoZSBtZW1vcnksIGFuZCBkb2VzIG5vdAorICAgICAqICAgICAgICAgICAgIGZyZWUg
aXQgd2hlbiBkb25lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJ1bGVCYXNlZEJy
ZWFrSXRlcmF0b3IoY29uc3QgUkJCSURhdGFIZWFkZXIqIGRhdGEsIGVudW0gRURvbnRBZG9wdCBk
b250QWRvcHQsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5B
TF9BUEkgKi8KKworCisgICAgZnJpZW5kIGNsYXNzIFJCQklSdWxlQnVpbGRlcjsKKyAgICAvKiog
QGludGVybmFsICovCisgICAgZnJpZW5kIGNsYXNzIEJyZWFrSXRlcmF0b3I7CisKKworCitwdWJs
aWM6CisKKyAgICAvKiogRGVmYXVsdCBjb25zdHJ1Y3Rvci4gIENyZWF0ZXMgYW4gZW1wdHkgc2hl
bGwgb2YgYW4gaXRlcmF0b3IsIHdpdGggbm8KKyAgICAgKiAgcnVsZXMgb3IgdGV4dCB0byBpdGVy
YXRlIG92ZXIuICAgT2JqZWN0IGNhbiBzdWJzZXF1ZW50bHkgYmUgYXNzaWduZWQgdG8uCisgICAg
ICogIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Io
KTsKKworICAgIC8qKgorICAgICAqIENvcHkgY29uc3RydWN0b3IuICBXaWxsIHByb2R1Y2UgYSBi
cmVhayBpdGVyYXRvciB3aXRoIHRoZSBzYW1lIGJlaGF2aW9yLAorICAgICAqIGFuZCB3aGljaCBp
dGVyYXRlcyBvdmVyIHRoZSBzYW1lIHRleHQsIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAq
IEBwYXJhbSB0aGF0IFRoZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHBhc3NlZCB0byBiZSBjb3Bp
ZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yKGNvbnN0IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIHRoYXQpOworCisgICAgLyoqCisg
ICAgICogQ29uc3RydWN0IGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEgc2V0IG9mIHJ1
bGVzIHN1cHBsaWVkIGFzIGEgc3RyaW5nLgorICAgICAqIEBwYXJhbSBydWxlcyBUaGUgYnJlYWsg
cnVsZXMgdG8gYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gcGFyc2VFcnJvciAgSW4gdGhlIGV2ZW50
IG9mIGEgc3ludGF4IGVycm9yIGluIHRoZSBydWxlcywgcHJvdmlkZXMgdGhlIGxvY2F0aW9uCisg
ICAgICogICAgICAgICAgICAgICAgICAgIHdpdGhpbiB0aGUgcnVsZXMgb2YgdGhlIHByb2JsZW0u
CisgICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkgZXJyb3JzIGVuY291bnRl
cmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IoIGNvbnN0IFVuaWNvZGVTdHJpbmcgICAgJnJ1bGVzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBVUGFyc2VFcnJvciAgICAgICAgICAgJnBhcnNlRXJyb3IsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgICAgICAgICAmc3RhdHVzKTsKKwor
ICAgIC8qKgorICAgICAqIENvbnRydWN0IGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEg
c2V0IG9mIHByZWNvbXBpbGVkIGJpbmFyeSBydWxlcy4KKyAgICAgKiBCaW5hcnkgcnVsZXMgYXJl
IG9idGFpbmVkIGZyb20gUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3I6OmdldEJpbmFyeVJ1bGVzKCku
CisgICAgICogQ29uc3RydWN0aW9uIG9mIGEgYnJlYWsgaXRlcmF0b3IgaW4gdGhpcyB3YXkgaXMg
c3Vic3RhbnRpYWxseSBmYXN0ZXIgdGhhbgorICAgICAqIGNvbnN0dWN0aW9uIGZyb20gc291cmNl
IHJ1bGVzLgorICAgICAqCisgICAgICogT3duZXJzaGlwIG9mIHRoZSBzdG9yYWdlIGNvbnRhaW5p
bmcgdGhlIGNvbXBpbGVkIHJ1bGVzIHJlbWFpbnMgd2l0aCB0aGUKKyAgICAgKiBjYWxsZXIgb2Yg
dGhpcyBmdW5jdGlvbi4gIFRoZSBjb21waWxlZCBydWxlcyBtdXN0IG5vdCBiZSAgbW9kaWZpZWQg
b3IgCisgICAgICogZGVsZXRlZCBkdXJpbmcgdGhlIGxpZmUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9y
LgorICAgICAqCisgICAgICogVGhlIGNvbXBpbGVkIHJ1bGVzIGFyZSBub3QgY29tcGF0aWJsZSBh
Y3Jvc3MgZGlmZmVyZW50IG1ham9yIHZlcnNpb25zIG9mIElDVS4KKyAgICAgKiBUaGUgY29tcGls
ZWQgcnVsZXMgYXJlIGNvbWFwdGlibGUgb25seSBiZXR3ZWVuIG1hY2hpbmVzIHdpdGggdGhlIHNh
bWUKKyAgICAgKiBieXRlIG9yZGVyaW5nIChsaXR0bGUgb3IgYmlnIGVuZGlhbikgYW5kIHRoZSBz
YW1lIGJhc2UgY2hhcmFjdGVyIHNldCBmYW1pbHkKKyAgICAgKiAoQVNDSUkgb3IgRUJDRElDKS4K
KyAgICAgKgorICAgICAqIEBzZWUgI2dldEJpbmFyeVJ1bGVzCisgICAgICogQHBhcmFtIGNvbXBp
bGVkUnVsZXMgQSBwb2ludGVyIHRvIHRoZSBjb21waWxlZCBicmVhayBydWxlcyB0byBiZSB1c2Vk
LgorICAgICAqIEBwYXJhbSBydWxlTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIGNvbXBpbGVkIGJy
ZWFrIHJ1bGVzLCBpbiBieXRlcy4gIFRoaXMKKyAgICAgKiAgIGNvcnJlc3BvbmRzIHRvIHRoZSBs
ZW5ndGggdmFsdWUgcHJvZHVjZWQgYnkgZ2V0QmluYXJ5UnVsZXMoKS4KKyAgICAgKiBAcGFyYW0g
c3RhdHVzIEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQsIGluY2x1ZGluZyBp
bnZhbGlkCisgICAgICogICBiaW5hcnkgcnVsZXMuCisgICAgICogQHN0YWJsZSBJQ1UgNC44Cisg
ICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCB1aW50OF90ICpjb21waWxl
ZFJ1bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgcnVsZUxl
bmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgJnN0YXR1cyk7
CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGNvbnN0cnVjdG9yIHVzZXMgdGhlIHVkYXRhIGludGVy
ZmFjZSB0byBjcmVhdGUgYSBCcmVha0l0ZXJhdG9yCisgICAgICogd2hvc2UgaW50ZXJuYWwgdGFi
bGVzIGxpdmUgaW4gYSBtZW1vcnktbWFwcGVkIGZpbGUuICAiaW1hZ2UiIGlzIGFuCisgICAgICog
SUNVIFVEYXRhTWVtb3J5IGhhbmRsZSBmb3IgdGhlIHByZS1jb21waWxlZCBicmVhayBpdGVyYXRv
ciB0YWJsZXMuCisgICAgICogQHBhcmFtIGltYWdlIGhhbmRsZSB0byB0aGUgbWVtb3J5IGltYWdl
IGZvciB0aGUgYnJlYWsgaXRlcmF0b3IgZGF0YS4KKyAgICAgKiAgICAgICAgT3duZXJzaGlwIG9m
IHRoZSBVRGF0YU1lbW9yeSBoYW5kbGUgcGFzc2VzIHRvIHRoZSBCcmVhayBJdGVyYXRvciwKKyAg
ICAgKiAgICAgICAgd2hpY2ggd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgY2xvc2luZyBpdCB3aGVu
IGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuCisgICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlv
biBvbiBhbnkgZXJyb3JzIGVuY291bnRlcmVkLgorICAgICAqIEBzZWUgdWRhdGFfb3BlbgorICAg
ICAqIEBzZWUgI2dldEJpbmFyeVJ1bGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICov
CisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihVRGF0YU1lbW9yeSogaW1hZ2UsIFVFcnJvckNv
ZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yCisgICAgICogIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgflJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Io
KTsKKworICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICBTZXRzIHRoaXMgaXRl
cmF0b3IgdG8gaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwKKyAgICAgKiBhbmQgaXRlcmF0ZSBvdmVy
IHRoZSBzYW1lIHRleHQsIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0
IFRoZSBSdWxlQmFzZWRCcmVha0l0ZXJ0b3IgcGFzc2VkIGluCisgICAgICogQHJldHVybiB0aGUg
bmV3bHkgY3JlYXRlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICogIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIG9wZXJhdG9yPShjb25z
dCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yJiB0aGF0KTsKKworICAgIC8qKgorICAgICAqIEVxdWFs
aXR5IG9wZXJhdG9yLiAgUmV0dXJucyBUUlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG9m
IHRoZQorICAgICAqIHNhbWUgY2xhc3MsIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsIGFuZCBpdGVy
YXRlIG92ZXIgdGhlIHNhbWUgdGV4dC4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQnJlYWtJdGVy
YXRvciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYg
Ym90aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhlCisgICAgICogc2FtZSBjbGFzcywgaGF2ZSB0
aGUgc2FtZSBiZWhhdmlvciwgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAq
ICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0o
Y29uc3QgQnJlYWtJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBOb3Qt
ZXF1YWwgb3BlcmF0b3IuICBJZiBvcGVyYXRvcj09IHJldHVybnMgVFJVRSwgdGhpcyByZXR1cm5z
IEZBTFNFLAorICAgICAqIGFuZCB2aWNlIHZlcnNhLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBC
cmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5CisgICAgICogQHJldHVy
biBUUlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG5vdCBzYW1lLgorICAgICAqICBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEJyZWFrSXRl
cmF0b3ImIHRoYXQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ld2x5LWNv
bnN0cnVjdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd2l0aCB0aGUgc2FtZQorICAgICAqIGJl
aGF2aW9yLCBhbmQgaXRlcmF0aW5nIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhpcyBvbmUuCisg
ICAgICogRGlmZmVycyBmcm9tIHRoZSBjb3B5IGNvbnN0cnVjdG9yIGluIHRoYXQgaXQgaXMgcG9s
eW1vcnBoaWMsIGFuZAorICAgICAqIHdpbGwgY29ycmVjdGx5IGNsb25lIChjb3B5KSBhIGRlcml2
ZWQgY2xhc3MuCisgICAgICogY2xvbmUoKSBpcyB0aHJlYWQgc2FmZS4gIE11bHRpcGxlIHRocmVh
ZHMgbWF5IHNpbXVsdGFlbmVvdXNseQorICAgICAqIGNsb25lIHRoZSBzYW1lIHNvdXJjZSBicmVh
ayBpdGVyYXRvci4KKyAgICAgKiBAcmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgQnJlYWtJdGVyYXRvciogY2xvbmUoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENvbXB1
dGUgYSBoYXNoIGNvZGUgZm9yIHRoaXMgQnJlYWtJdGVyYXRvcgorICAgICAqIEByZXR1cm4gQSBo
YXNoIGNvZGUKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBp
bnQzMl90IGhhc2hDb2RlKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0
aGUgZGVzY3JpcHRpb24gdXNlZCB0byBjcmVhdGUgdGhpcyBpdGVyYXRvcgorICAgICAqIEByZXR1
cm4gdGhlIGRlc2NyaXB0aW9uIHVzZWQgdG8gY3JlYXRlIHRoaXMgaXRlcmF0b3IKKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBjb25zdCBVbmljb2RlU3RyaW5n
JiBnZXRSdWxlcyh2b2lkKSBjb25zdDsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBC
cmVha0l0ZXJhdG9yIG92ZXJyaWRlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgor
ICAgICAqIDxwPgorICAgICAqIFJldHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRl
eHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogVGhlIHJldHVybmVkIGNoYXJhY3RlciBpdGVyYXRv
ciBpcyBvd25lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IsIGFuZCBtdXN0CisgICAgICogbm90IGJl
IGRlbGV0ZWQgYnkgdGhlIGNhbGxlci4gIFJlcGVhdGVkIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24g
bWF5CisgICAgICogcmV0dXJuIHRoZSBzYW1lIENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIDwv
cD4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIG11
c3Qgbm90IGJlIHVzZWQgY29uY3VycmVudGx5IHdpdGgKKyAgICAgKiB0aGUgYnJlYWsgaXRlcmF0
b3IuICBJZiBjb25jdXJyZW50IG9wZXJhdGlvbiBpcyBuZWVkZWQsIGNsb25lIHRoZQorICAgICAq
IHJldHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBmaXJzdCBhbmQgb3BlcmF0ZSBvbiB0aGUgY2xv
bmUuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFdoZW4gdGhlIGJyZWFrIGl0ZXJh
dG9yIGlzIG9wZXJhdGluZyBvbiB0ZXh0IHN1cHBsaWVkIHZpYSBhIFVUZXh0LAorICAgICAqIHRo
aXMgZnVuY3Rpb24gd2lsbCBmYWlsLiAgTGFja2luZyBhbnkgd2F5IHRvIHNpZ25hbCBmYWlsdXJl
cywgaXQKKyAgICAgKiByZXR1cm5zIGFuIENoYXJhY3Rlckl0ZXJhdG9yIGNvbnRhaW5pbmcgbm8g
dGV4dC4KKyAgICAgKiBUaGUgZnVuY3Rpb24gZ2V0VVRleHQoKSBwcm92aWRlcyBzaW1pbGFyIGZ1
bmN0aW9uYWxpdHksCisgICAgICogaXMgcmVsaWFibGUsIGFuZCBpcyBtb3JlIGVmZmljaWVudC4K
KyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBUT0RPOiAgZGVwcmVjYXRlIHRoaXMgZnVuY3Rp
b24/CisgICAgICoKKyAgICAgKiBAcmV0dXJuIEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVp
bmcgYW5hbHl6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCAgQ2hhcmFjdGVySXRlcmF0b3ImIGdldFRleHQodm9pZCkgY29uc3Q7CisKKworICAgIC8qKgor
ICAgICAgKiAgR2V0IGEgVVRleHQgZm9yIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAg
KiAgVGhlIHJldHVybmVkIFVUZXh0IGlzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgVVRleHQgdXNl
ZCBpbnRlcm5hbGx5CisgICAgICAqICBieSB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRp
b24uICBJdCBjYW4gc2FmZWx5IGJlIHVzZWQgdG8KKyAgICAgICogIGFjY2VzcyB0aGUgdGV4dCB3
aXRob3V0IGltcGFjdGluZyBhbnkgYnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucywKKyAgICAgICog
IGJ1dCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2VsZiBtdXN0IG5vdCBiZSBhbHRlcmVkLgorICAg
ICAgKgorICAgICAgKiBAcGFyYW0gZmlsbEluIEEgVVRleHQgdG8gYmUgZmlsbGVkIGluLiAgSWYg
TlVMTCwgYSBuZXcgVVRleHQgd2lsbCBiZQorICAgICAgKiAgICAgICAgICAgYWxsb2NhdGVkIHRv
IGhvbGQgdGhlIHJlc3VsdC4KKyAgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJy
b3IgY29kZXMuCisgICAgICAqIEByZXR1cm4gICBUaGUgY3VycmVudCBVVGV4dCBmb3IgdGhpcyBi
cmVhayBpdGVyYXRvci4gIElmIGFuIGlucHV0CisgICAgICAqICAgICAgICAgICBVVGV4dCB3YXMg
cHJvdmlkZWQsIGl0IHdpbGwgYWx3YXlzIGJlIHJldHVybmVkLgorICAgICAgKiBAc3RhYmxlIElD
VSAzLjQKKyAgICAgICovCisgICAgIHZpcnR1YWwgVVRleHQgKmdldFVUZXh0KFVUZXh0ICpmaWxs
SW4sIFVFcnJvckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhl
IGl0ZXJhdG9yIHRvIGFuYWx5emUgYSBuZXcgcGllY2Ugb2YgdGV4dC4gIFRoaXMgZnVuY3Rpb24g
cmVzZXRzCisgICAgICogdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdp
bm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgQW4gaXRlcmF0b3Igb3Zl
ciB0aGUgdGV4dCB0byBhbmFseXplLiAgVGhlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiB0YWtlcyBv
d25lcnNoaXAgb2YgdGhlIGNoYXJhY3RlciBpdGVyYXRvci4gIFRoZSBjYWxsZXIgTVVTVCBOT1Qg
ZGVsZXRlIGl0IQorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IHZvaWQgYWRvcHRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKiBuZXdUZXh0KTsKKworICAgIC8qKgor
ICAgICAqIFNldCB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAg
VGhpcyBmdW5jdGlvbiByZXNldHMKKyAgICAgKiB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRp
b24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBU
aGUgdGV4dCB0byBhbmFseXplLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKwor
ICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBicmVhayBpdGVyYXRvciB0byBvcGVyYXRlIG92ZXIg
dGhlIHRleHQgcmVwcmVzZW50ZWQgYnkKKyAgICAgKiB0aGUgVVRleHQuICBUaGUgaXRlcmF0b3Ig
cG9zaXRpb24gaXMgcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqCisgICAgICogVGhpcyBmdW5j
dGlvbiBtYWtlcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIHN1cHBsaWVkIFVUZXh0LiAgVGhpcyBt
ZWFucworICAgICAqIHRoYXQgdGhlIGNhbGxlciBpcyBmcmVlIHRvIGltbWVkaWF0ZWx5IGNsb3Nl
IG9yIG90aGVyd2lzZSByZXVzZSB0aGUKKyAgICAgKiBVdGV4dCB0aGF0IHdhcyBwYXNzZWQgYXMg
YSBwYXJhbWV0ZXIsIGJ1dCB0aGF0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmCisgICAgICog
bXVzdCBub3QgYmUgYWx0ZXJlZCB3aGlsZSBiZWluZyByZWZlcmVuY2VkIGJ5IHRoZSBicmVhayBp
dGVyYXRvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0ICAgIFRoZSBVVGV4dCB1c2VkIHRv
IGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzICBSZWNlaXZlcyBhbnkgZXJy
b3IgY29kZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICovCisgICAgdmlydHVhbCB2
b2lkICBzZXRUZXh0KFVUZXh0ICp0ZXh0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoq
CisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lu
bmluZyBvZiB0aGUgdGV4dCwgcG9zaXRpb24gemVyby4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZz
ZXQgb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgemVyby4KKyAgICAgKiAgQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGZpcnN0KHZvaWQpOworCisgICAg
LyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGVu
ZCBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSB0ZXh0J3MgcGFzdC10aGUtZW5kIG9m
ZnNldC4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQz
Ml90IGxhc3Qodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3Ig
ZWl0aGVyIGZvcndhcmQgb3IgYmFja3dhcmQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc3RlcHMu
CisgICAgICogTmVnYXRpdmUgdmFsdWVzIG1vdmUgYmFja3dhcmQsIGFuZCBwb3NpdGl2ZSB2YWx1
ZXMgbW92ZSBmb3J3YXJkLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gcmVwZWF0ZWRs
eSBjYWxsaW5nIG5leHQoKSBvciBwcmV2aW91cygpLgorICAgICAqIEBwYXJhbSBuIFRoZSBudW1i
ZXIgb2Ygc3RlcHMgdG8gbW92ZS4gIFRoZSBzaWduIGluZGljYXRlcyB0aGUgZGlyZWN0aW9uCisg
ICAgICogKG5lZ2F0aXZlIGlzIGJhY2t3YXJkcywgYW5kIHBvc2l0aXZlIGlzIGZvcndhcmRzKS4K
KyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgb2Zmc2V0IG9mIHRoZSBib3VuZGFyeSBwb3Np
dGlvbiBuIGJvdW5kYXJpZXMgYXdheSBmcm9tCisgICAgICogdGhlIGN1cnJlbnQgb25lLgorICAg
ICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dChp
bnQzMl90IG4pOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIHRvIHRo
ZSBuZXh0IGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9m
IHRoZSBmaXJzdCBib3VuZGFyeSBhZnRlciB0aGlzIG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQodm9pZCk7CisKKyAgICAvKioK
KyAgICAgKiBNb3ZlcyB0aGUgaXRlcmF0b3IgYmFja3dhcmRzLCB0byB0aGUgbGFzdCBib3VuZGFy
eSBwcmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhl
IGxhc3QgYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoaXMgb25lLgorICAgICAqICBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJldmlvdXModm9pZCk7
CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmly
c3QgYm91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nCisgICAgICogdGhlIHNwZWNpZmllZCBwb3Np
dGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiBmcm9tIHdoaWNoIHRvIGJl
Z2luIHNlYXJjaGluZyBmb3IgYSBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBw
b3NpdGlvbiBvZiB0aGUgZmlyc3QgYnJlYWsgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisg
ICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmb2xs
b3dpbmcoaW50MzJfdCBvZmZzZXQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0
b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlIHRoZQorICAg
ICAqIHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlv
biB0byBiZWdpbiBzZWFyY2hpbmcgZm9yIGEgYnJlYWsgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRo
ZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBiZWZvcmUgdGhlIHN0YXJ0aW5nIHBvc2l0
aW9uLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMy
X3QgcHJlY2VkaW5nKGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMg
dHJ1ZSBpZiB0aGUgc3BlY2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4gIEFz
IGEgc2lkZQorICAgICAqIGVmZmVjdCwgbGVhdmVzIHRoZSBpdGVyYXRvciBwb2ludGluZyB0byB0
aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gYXQKKyAgICAgKiBvciBhZnRlciAib2Zmc2V0Ii4K
KyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gY2hlY2suCisgICAgICogQHJldHVy
biBUcnVlIGlmICJvZmZzZXQiIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNCb3VuZGFyeShpbnQzMl90
IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGl0ZXJhdGlv
biBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlv
bi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3Qg
Y3VycmVudCh2b2lkKSBjb25zdDsKKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGF0
dXMgdGFnIGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2Vu
dGx5CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uICBGb3IgYnJlYWsgcnVsZXMgdGhh
dCBkbyBub3Qgc3BlY2lmeSBhCisgICAgICogc3RhdHVzLCBhIGRlZmF1bHQgdmFsdWUgb2YgMCBp
cyByZXR1cm5lZC4gIElmIG1vcmUgdGhhbiBvbmUgYnJlYWsgcnVsZQorICAgICAqIHdvdWxkIGNh
dXNlIGEgYm91bmRhcnkgdG8gYmUgbG9jYXRlZCBhdCBzb21lIHBvc2l0aW9uIGluIHRoZSB0ZXh0
LAorICAgICAqIHRoZSBudW1lcmljYWxseSBsYXJnZXN0IG9mIHRoZSBhcHBsaWNhYmxlIHN0YXR1
cyB2YWx1ZXMgaXMgcmV0dXJuZWQuCisgICAgICogPHA+CisgICAgICogT2YgdGhlIHN0YW5kYXJk
IHR5cGVzIG9mIElDVSBicmVhayBpdGVyYXRvcnMsIG9ubHkgd29yZCBicmVhayBhbmQKKyAgICAg
KiBsaW5lIGJyZWFrIHByb3ZpZGUgc3RhdHVzIHZhbHVlcy4gIFRoZSB2YWx1ZXMgYXJlIGRlZmlu
ZWQgaW4KKyAgICAgKiB0aGUgaGVhZGVyIGZpbGUgdWJyay5oLiAgRm9yIFdvcmQgYnJlYWtzLCB0
aGUgc3RhdHVzIGFsbG93cyBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuIHdvcmRzCisgICAgICogdGhh
dCBjb250YWluIGFscGhhYmV0aWMgbGV0dGVycywgIndvcmRzIiB0aGF0IGFwcGVhciB0byBiZSBu
dW1iZXJzLAorICAgICAqIHB1bmN0dWF0aW9uIGFuZCBzcGFjZXMsIHdvcmRzIGNvbnRhaW5pbmcg
aWRlb2dyYXBoaWMgY2hhcmFjdGVycywgYW5kCisgICAgICogbW9yZS4gIEZvciBMaW5lIEJyZWFr
LCB0aGUgc3RhdHVzIGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiBoYXJkIChtYW5kYXRvcnkpIGJyZWFr
cworICAgICAqIGFuZCBzb2Z0IChwb3RlbnRpYWwpIGJyZWFrIHBvc2l0aW9ucy4KKyAgICAgKiA8
cD4KKyAgICAgKiA8Y29kZT5nZXRSdWxlU3RhdHVzKCk8L2NvZGU+IGNhbiBiZSBjYWxsZWQgYWZ0
ZXIgb2J0YWluaW5nIGEgYm91bmRhcnkKKyAgICAgKiBwb3NpdGlvbiBmcm9tIDxjb2RlPm5leHQo
KTwvY29kZT4sIDxjb2RlPnByZXZpb3VzKCk8L2NvZGU+LCBvcgorICAgICAqIGFueSBvdGhlciBi
cmVhayBpdGVyYXRvciBmdW5jdGlvbnMgdGhhdCByZXR1cm5zIGEgYm91bmRhcnkgcG9zaXRpb24u
CisgICAgICogPHA+CisgICAgICogV2hlbiBjcmVhdGluZyBjdXN0b20gYnJlYWsgcnVsZXMsIG9u
ZSBpcyBmcmVlIHRvIGRlZmluZSB3aGF0ZXZlcgorICAgICAqIHN0YXR1cyB2YWx1ZXMgbWF5IGJl
IGNvbnZlbmllbnQgZm9yIHRoZSBhcHBsaWNhdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3Rl
OiB0aGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZS4gIEl0IHNob3VsZCBub3QgaGF2ZSBi
ZWVuCisgICAgICogICAgICAgZGVjbGFyZWQgY29uc3QsIGFuZCB0aGUgY29uc3QgcmVtYWlucyBv
bmx5IGZvciBjb21wYXRpYmlsaXR5CisgICAgICogICAgICAgcmVhc29ucy4gIChUaGUgZnVuY3Rp
b24gaXMgbG9naWNhbGx5IGNvbnN0LCBidXQgbm90IGJpdC13aXNlIGNvbnN0KS4KKyAgICAgKiA8
cD4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGF0dXMgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRl
dGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlv
bi4KKyAgICAgKgorICAgICAqIEBzZWUgVVdvcmRCcmVhaworICAgICAqIEBzdGFibGUgSUNVIDIu
MgorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3RhdHVzKCkgY29uc3Q7CisK
KyAgIC8qKgorICAgICogR2V0IHRoZSBzdGF0dXMgKHRhZykgdmFsdWVzIGZyb20gdGhlIGJyZWFr
IHJ1bGUocykgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0CisgICAgKiByZWNlbnRseSByZXR1cm5l
ZCBicmVhayBwb3NpdGlvbi4KKyAgICAqIDxwPgorICAgICogVGhlIHJldHVybmVkIHN0YXR1cyB2
YWx1ZShzKSBhcmUgc3RvcmVkIGludG8gYW4gYXJyYXkgcHJvdmlkZWQgYnkgdGhlIGNhbGxlci4K
KyAgICAqIFRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiBzb3J0ZWQgKGFzY2VuZGluZykgb3JkZXIu
CisgICAgKiBJZiB0aGUgY2FwYWNpdHkgb2YgdGhlIG91dHB1dCBhcnJheSBpcyBpbnN1ZmZpY2ll
bnQgdG8gaG9sZCB0aGUgZGF0YSwKKyAgICAqICB0aGUgb3V0cHV0IHdpbGwgYmUgdHJ1bmNhdGVk
IHRvIHRoZSBhdmFpbGFibGUgbGVuZ3RoLCBhbmQgYQorICAgICogIFVfQlVGRkVSX09WRVJGTE9X
X0VSUk9SIHdpbGwgYmUgc2lnbmFsZWQuCisgICAgKgorICAgICogQHBhcmFtIGZpbGxJblZlYyBh
biBhcnJheSB0byBiZSBmaWxsZWQgaW4gd2l0aCB0aGUgc3RhdHVzIHZhbHVlcy4KKyAgICAqIEBw
YXJhbSBjYXBhY2l0eSAgdGhlIGxlbmd0aCBvZiB0aGUgc3VwcGxpZWQgdmVjdG9yLiAgQSBsZW5n
dGggb2YgemVybyBjYXVzZXMKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIGZ1bmN0aW9uIHRv
IHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMsIGluIHRoZQorICAgICogICAgICAg
ICAgICAgICAgICBub3JtYWwgd2F5LCB3aXRob3V0IGF0dGVtdHBpbmcgdG8gc3RvcmUgYW55IHZh
bHVlcy4KKyAgICAqIEBwYXJhbSBzdGF0dXMgICAgcmVjZWl2ZXMgZXJyb3IgY29kZXMuCisgICAg
KiBAcmV0dXJuICAgICAgICAgIFRoZSBudW1iZXIgb2YgcnVsZSBzdGF0dXMgdmFsdWVzIGZyb20g
cnVsZXMgdGhhdCBkZXRlcm1pbmVkCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJl
Y2VudCBib3VuZGFyeSByZXR1cm5lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgKiAgICAg
ICAgICAgICAgICAgIEluIHRoZSBldmVudCBvZiBhIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SLCB0
aGUgcmV0dXJuIHZhbHVlCisgICAgKiAgICAgICAgICAgICAgICAgIGlzIHRoZSB0b3RhbCBudW1i
ZXIgb2Ygc3RhdHVzIHZhbHVlcyB0aGF0IHdlcmUgYXZhaWxhYmxlLAorICAgICogICAgICAgICAg
ICAgICAgICBub3QgdGhlIHJlZHVjZWQgbnVtYmVyIHRoYXQgd2VyZSBhY3R1YWxseSByZXR1cm5l
ZC4KKyAgICAqIEBzZWUgZ2V0UnVsZVN0YXR1cworICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAg
Ki8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1c1ZlYyhpbnQzMl90ICpmaWxsSW5W
ZWMsIGludDMyX3QgY2FwYWNpdHksIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIGEgdW5pcXVlIGNsYXNzIElEIFBPTFlNT1JQSElDQUxMWS4gIFB1cmUgdmly
dHVhbCBvdmVycmlkZS4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB0byBpbXBsZW1lbnQgYSBzaW1w
bGUgdmVyc2lvbiBvZiBSVFRJLCBzaW5jZSBub3QgYWxsCisgICAgICogQysrIGNvbXBpbGVycyBz
dXBwb3J0IGdlbnVpbmUgUlRUSS4gIFBvbHltb3JwaGljIG9wZXJhdG9yPT0oKSBhbmQKKyAgICAg
KiBjbG9uZSgpIG1ldGhvZHMgY2FsbCB0aGlzIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEByZXR1
cm4gICAgICAgICAgVGhlIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4gQWxsIG9iamVjdHMgb2Yg
YQorICAgICAqICAgICAgICAgICAgICAgICAgZ2l2ZW4gY2xhc3MgaGF2ZSB0aGUgc2FtZSBjbGFz
cyBJRC4gIE9iamVjdHMgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgIG90aGVyIGNsYXNzZXMg
aGF2ZSBkaWZmZXJlbnQgY2xhc3MgSURzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcy4gIFRo
aXMgaXMgdXNlZnVsIG9ubHkgZm9yCisgICAgICogY29tcGFyaW5nIHRvIGEgcmV0dXJuIHZhbHVl
IGZyb20gZ2V0RHluYW1pY0NsYXNzSUQoKS4gIEZvciBleGFtcGxlOgorICAgICAqCisgICAgICog
ICAgICBCYXNlKiBwb2x5bW9ycGhpY19wb2ludGVyID0gY3JlYXRlUG9seW1vcnBoaWNPYmplY3Qo
KTsKKyAgICAgKiAgICAgIGlmIChwb2x5bW9ycGhpY19wb2ludGVyLT5nZXREeW5hbWljQ2xhc3NJ
RCgpID09CisgICAgICogICAgICAgICAgRGVyaXZlZDo6Z2V0U3RhdGljQ2xhc3NJRCgpKSAuLi4K
KyAgICAgKgorICAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIGNsYXNzIElEIGZvciBhbGwgb2Jq
ZWN0cyBvZiB0aGlzIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHN0YXRpYyBVQ2xhc3NJRCBVX0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworICAg
IC8qKgorICAgICAqIERlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0eS4gVXNlIGNsb25lKCkgaW5zdGVh
ZC4KKyAgICAgKgorICAgICAqIENyZWF0ZSBhIGNsb25lIChjb3B5KSBvZiB0aGlzIGJyZWFrIGl0
ZXJhdG9yIGluIG1lbW9yeSBwcm92aWRlZAorICAgICAqICBieSB0aGUgY2FsbGVyLiAgVGhlIGlk
ZWEgaXMgdG8gaW5jcmVhc2UgcGVyZm9ybWFuY2UgYnkgYXZvaWRpbmcKKyAgICAgKiAgYSBzdG9y
YWdlIGFsbG9jYXRpb24uICBVc2Ugb2YgdGhpcyBmdW5jdG9pbiBpcyBOT1QgUkVDT01NRU5ERUQu
CisgICAgICogIFBlcmZvcm1hbmNlIGdhaW5zIGFyZSBtaW5pbWFsLCBhbmQgY29ycmVjdCBidWZm
ZXIgbWFuYWdlbWVudCBpcworICAgICAqICB0cmlja3kuICBVc2UgY2xvbmUoKSBpbnN0ZWFkLgor
ICAgICAqCisgICAgICogQHBhcmFtIHN0YWNrQnVmZmVyICBUaGUgcG9pbnRlciB0byB0aGUgbWVt
b3J5IGludG8gd2hpY2ggdGhlIGNsb25lZCBvYmplY3QKKyAgICAgKiAgICAgICAgICAgICAgICAg
ICAgIHNob3VsZCBiZSBwbGFjZWQuICBJZiBOVUxMLCAgYWxsb2NhdGUgaGVhcCBtZW1vcnkKKyAg
ICAgKiAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgY2xvbmVkIG9iamVjdC4KKyAgICAgKiBA
cGFyYW0gQnVmZmVyU2l6ZSAgIFRoZSBzaXplIG9mIHRoZSBidWZmZXIuICBJZiB6ZXJvLCByZXR1
cm4gdGhlIHJlcXVpcmVkCisgICAgICogICAgICAgICAgICAgICAgICAgICBidWZmZXIgc2l6ZSwg
YnV0IGRvIG5vdCBjbG9uZSB0aGUgb2JqZWN0LiAgSWYgdGhlCisgICAgICogICAgICAgICAgICAg
ICAgICAgICBzaXplIHdhcyB0b28gc21hbGwgKGJ1dCBub3QgemVybyksIGFsbG9jYXRlIGhlYXAK
KyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2UgZm9yIHRoZSBjbG9uZWQgb2JqZWN0
LgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXR1cyAgICAgICBFcnJvciBzdGF0dXMuICBVX1NB
RkVDTE9ORV9BTExPQ0FURURfV0FSTklORyB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgICAg
ICAgICByZXR1cm5lZCBpZiB0aGUgdGhlIHByb3ZpZGVkIGJ1ZmZlciB3YXMgdG9vIHNtYWxsLCBh
bmQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9uZSB3YXMgdGhlcmVmb3JlIHB1
dCBvbiB0aGUgaGVhcC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIFBvaW50ZXIgdG8gdGhlIGNs
b25lIG9iamVjdC4gIFRoaXMgbWF5IGRpZmZlciBmcm9tIHRoZSBzdGFja0J1ZmZlcgorICAgICAq
ICAgICAgICAgIGFkZHJlc3MgaWYgdGhlIGJ5dGUgYWxpZ25tZW50IG9mIHRoZSBzdGFjayBidWZm
ZXIgd2FzIG5vdCBzdWl0YWJsZQorICAgICAqICAgICAgICAgIG9yIGlmIHRoZSBzdGFja0J1ZmZl
ciB3YXMgdG9vIHNtYWxsIHRvIGhvbGQgdGhlIGNsb25lLgorICAgICAqIEBkZXByZWNhdGVkIElD
VSA1Mi4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRl
cmF0b3IgKiAgY3JlYXRlQnVmZmVyQ2xvbmUodm9pZCAqc3RhY2tCdWZmZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgJkJ1ZmZlclNpemUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNv
ZGUgJnN0YXR1cyk7CisKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmluYXJ5IGZvcm0g
b2YgY29tcGlsZWQgYnJlYWsgcnVsZXMsCisgICAgICogd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCB0
byBjcmVhdGUgYSBuZXcgYnJlYWsgaXRlcmF0b3IgYXQgc29tZQorICAgICAqIHRpbWUgaW4gdGhl
IGZ1dHVyZS4gIENyZWF0aW5nIGEgYnJlYWsgaXRlcmF0b3IgZnJvbSBwcmUtY29tcGlsZWQgcnVs
ZXMKKyAgICAgKiBpcyBtdWNoIGZhc3RlciB0aGFuIGJ1aWxkaW5nIG9uZSBmcm9tIHRoZSBzb3Vy
Y2UgZm9ybSBvZiB0aGUKKyAgICAgKiBicmVhayBydWxlcy4KKyAgICAgKgorICAgICAqIFRoZSBi
aW5hcnkgZGF0YSBjYW4gb25seSBiZSB1c2VkIHdpdGggdGhlIHNhbWUgdmVyc2lvbiBvZiBJQ1UK
KyAgICAgKiAgYW5kIG9uIHRoZSBzYW1lIHBsYXRmb3JtIHR5cGUgKHByb2Nlc3NvciBlbmRpYW4t
bmVzcykKKyAgICAgKgorICAgICAqIEBwYXJhbSBsZW5ndGggUmV0dXJucyB0aGUgbGVuZ3RoIG9m
IHRoZSBiaW5hcnkgZGF0YS4gIChPdXQgcGFyYW10ZXIuKQorICAgICAqCisgICAgICogQHJldHVy
biAgIEEgcG9pbnRlciB0byB0aGUgYmluYXJ5IChjb21waWxlZCkgcnVsZSBkYXRhLiAgVGhlIHN0
b3JhZ2UKKyAgICAgKiAgICAgICAgICAgYmVsb25ncyB0byB0aGUgUnVsZXNCYXNlZEJyZWFrSXRl
cmF0b3Igb2JqZWN0LCBub3QgdGhlCisgICAgICogICAgICAgICAgIGNhbGxlciwgYW5kIG11c3Qg
bm90IGJlIG1vZGlmaWVkIG9yIGRlbGV0ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAg
ICovCisgICAgdmlydHVhbCBjb25zdCB1aW50OF90ICpnZXRCaW5hcnlSdWxlcyh1aW50MzJfdCAm
bGVuZ3RoKTsKKworICAgIC8qKgorICAgICAqICBTZXQgdGhlIHN1YmplY3QgdGV4dCBzdHJpbmcg
dXBvbiB3aGljaCB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nCisgICAgICogIHdpdGhv
dXQgY2hhbmdpbmcgYW55IG90aGVyIGFzcGVjdCBvZiB0aGUgbWF0Y2hpbmcgc3RhdGUuCisgICAg
ICogIFRoZSBuZXcgYW5kIHByZXZpb3VzIHRleHQgc3RyaW5ncyBtdXN0IGhhdmUgdGhlIHNhbWUg
Y29udGVudC4KKyAgICAgKgorICAgICAqICBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1
c2UgaW4gZW52aXJvbm1lbnRzIHdoZXJlIElDVSBpcyBvcGVyYXRpbmcgb24KKyAgICAgKiAgc3Ry
aW5ncyB0aGF0IG1heSBtb3ZlIGFyb3VuZCBpbiBtZW1vcnkuICBJdCBwcm92aWRlcyBhIG1lY2hh
bmlzbSBmb3Igbm90aWZ5aW5nCisgICAgICogIElDVSB0aGF0IHRoZSBzdHJpbmcgaGFzIGJlZW4g
cmVsb2NhdGVkLCBhbmQgcHJvdmlkaW5nIGEgbmV3IFVUZXh0IHRvIGFjY2VzcyB0aGUKKyAgICAg
KiAgc3RyaW5nIGluIGl0cyBuZXcgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiAgTm90ZSB0aGF0
IHRoZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbiBuZXZlciBjb3BpZXMgdGhlIHVuZGVy
bHlpbmcgdGV4dAorICAgICAqICBvZiBhIHN0cmluZyBiZWluZyBwcm9jZXNzZWQsIGJ1dCBhbHdh
eXMgb3BlcmF0ZXMgZGlyZWN0bHkgb24gdGhlIG9yaWdpbmFsIHRleHQKKyAgICAgKiAgcHJvdmlk
ZWQgYnkgdGhlIHVzZXIuIFJlZnJlc2hpbmcgc2ltcGx5IGRyb3BzIHRoZSByZWZlcmVuY2VzIHRv
IHRoZSBvbGQgdGV4dAorICAgICAqICBhbmQgcmVwbGFjZXMgdGhlbSB3aXRoIHJlZmVyZW5jZXMg
dG8gdGhlIG5ldy4KKyAgICAgKgorICAgICAqICBDYXV0aW9uOiAgdGhpcyBmdW5jdGlvbiBpcyBu
b3JtYWxseSB1c2VkIG9ubHkgYnkgdmVyeSBzcGVjaWFsaXplZCwKKyAgICAgKiAgc3lzdGVtLWxl
dmVsIGNvZGUuICBPbmUgZXhhbXBsZSB1c2UgY2FzZSBpcyB3aXRoIGdhcmJhZ2UgY29sbGVjdGlv
biB0aGF0IG1vdmVzCisgICAgICogIHRoZSB0ZXh0IGluIG1lbW9yeS4KKyAgICAgKgorICAgICAq
IEBwYXJhbSBpbnB1dCAgICAgIFRoZSBuZXcgKG1vdmVkKSB0ZXh0IHN0cmluZy4KKyAgICAgKiBA
cGFyYW0gc3RhdHVzICAgICBSZWNlaXZlcyBlcnJvcnMgZGV0ZWN0ZWQgYnkgdGhpcyBmdW5jdGlv
bi4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAqdGhpcworICAgICAqCisgICAgICogQHN0YWJs
ZSBJQ1UgNDkKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgJnJl
ZnJlc2hJbnB1dFRleHQoVVRleHQgKmlucHV0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisKK3By
b3RlY3RlZDoKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gaW1wbGVtZW50YXRpb24KKyAg
ICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisgICAgLyoqCisgICAgICogRHVtcHMgY2FjaGVzIGFuZCBwZXJm
b3JtcyBvdGhlciBhY3Rpb25zIGFzc29jaWF0ZWQgd2l0aCBhIGNvbXBsZXRlIGNoYW5nZQorICAg
ICAqIGluIHRleHQgb3IgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBpbnRlcm5hbAorICAg
ICAqLworICAgIHZpcnR1YWwgdm9pZCByZXNldCh2b2lkKTsKKworI2lmIDAKKyAgICAvKioKKyAg
ICAgICogUmV0dXJuIHRydWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBmb3IgdGhpcyBjaGFyCisg
ICAgICAqIGluZGljYXRlcyB0aGF0IGl0IGlzIGluIHRoZSBzZXQgb2YgZGljdGlvbmFyeSBsb29r
dXAgY2hhcnMuCisgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBk
aWN0aW9uYXJ5IGJhc2VkIGJyZWFrIGl0ZXJhdG9ycy4KKyAgICAgICogQHJldHVybiB0cnVlIGlm
IHRoZSBjYXRlZ29yeSBsb29rdXAgZm9yIHRoaXMgY2hhcgorICAgICAgKiBpbmRpY2F0ZXMgdGhh
dCBpdCBpcyBpbiB0aGUgc2V0IG9mIGRpY3Rpb25hcnkgbG9va3VwIGNoYXJzLgorICAgICAgKiBA
aW50ZXJuYWwKKyAgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBpc0RpY3Rpb25hcnlDaGFyKFVD
aGFyMzIpOworCisgICAgLyoqCisgICAgICAqIEdldCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRl
cmF0b3IuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3Qg
Z2V0QnJlYWtUeXBlKCkgY29uc3Q7CisjZW5kaWYKKworICAgIC8qKgorICAgICAgKiBTZXQgdGhl
IHR5cGUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICov
CisgICAgdmlydHVhbCB2b2lkIHNldEJyZWFrVHlwZShpbnQzMl90IHR5cGUpOworCisjaWZuZGVm
IFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgICogQ29tbW9uIGluaXRpYWxpemF0
aW9uIGZ1bmN0aW9uLCB1c2VkIGJ5IGNvbnN0cnVjdG9ycyBhbmQgYnVmZmVyQ2xvbmUuCisgICAg
ICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2b2lkIGluaXQoKTsKKyNlbmRpZiAgLyogVV9I
SURFX0lOVEVSTkFMX0FQSSAqLworCitwcml2YXRlOgorCisgICAgLyoqCisgICAgICogVGhpcyBt
ZXRob2QgYmFja3MgdGhlIGl0ZXJhdG9yIGJhY2sgdXAgdG8gYSAic2FmZSBwb3NpdGlvbiIgaW4g
dGhlIHRleHQuCisgICAgICogVGhpcyBpcyBhIHBvc2l0aW9uIHRoYXQgd2Uga25vdywgd2l0aG91
dCBhbnkgY29udGV4dCwgbXVzdCBiZSBhIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIFRoZSB2YXJp
b3VzIGNhbGxpbmcgbWV0aG9kcyB0aGVuIGl0ZXJhdGUgZm9yd2FyZCBmcm9tIHRoaXMgc2FmZSBw
b3NpdGlvbiB0bworICAgICAqIHRoZSBhcHByb3ByaWF0ZSBwb3NpdGlvbiB0byByZXR1cm4uICAo
Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBvZiBidWls
ZEJhY2t3YXJkc1N0YXRlVGFibGUoKSBpbiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkJ1aWxkZXIu
KQorICAgICAqIEBwYXJhbSBzdGF0ZXRhYmxlIHN0YXRlIHRhYmxlIHVzZWQgb2YgbW92aW5nIGJh
Y2t3YXJkcworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgaGFuZGxlUHJl
dmlvdXMoY29uc3QgUkJCSVN0YXRlVGFibGUgKnN0YXRldGFibGUpOworCisgICAgLyoqCisgICAg
ICogVGhpcyBtZXRob2QgaXMgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV4dCgp
IG1ldGhvZC4gIEFsbCBpdGVyYXRpb24KKyAgICAgKiB2ZWN0b3JzIHRocm91Z2ggaGVyZS4gIFRo
aXMgbWV0aG9kIGluaXRpYWxpemVzIHRoZSBzdGF0ZSBtYWNoaW5lIHRvIHN0YXRlIDEKKyAgICAg
KiBhbmQgYWR2YW5jZXMgdGhyb3VnaCB0aGUgdGV4dCBjaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIHVu
dGlsIHdlIHJlYWNoIHRoZSBlbmQKKyAgICAgKiBvZiB0aGUgdGV4dCBvciB0aGUgc3RhdGUgbWFj
aGluZSB0cmFuc2l0aW9ucyB0byBzdGF0ZSAwLiAgV2UgdXBkYXRlIG91ciByZXR1cm4KKyAgICAg
KiB2YWx1ZSBldmVyeSB0aW1lIHRoZSBzdGF0ZSBtYWNoaW5lIHBhc3NlcyB0aHJvdWdoIGEgcG9z
c2libGUgZW5kIHN0YXRlLgorICAgICAqIEBwYXJhbSBzdGF0ZXRhYmxlIHN0YXRlIHRhYmxlIHVz
ZWQgb2YgbW92aW5nIGZvcndhcmRzCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50
MzJfdCBoYW5kbGVOZXh0KGNvbnN0IFJCQklTdGF0ZVRhYmxlICpzdGF0ZXRhYmxlKTsKKworcHJv
dGVjdGVkOgorCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgKiBU
aGlzIGlzIHRoZSBmdW5jdGlvbiB0aGF0IGFjdHVhbGx5IGltcGxlbWVudHMgZGljdGlvbmFyeS1i
YXNlZAorICAgICAqIGJyZWFraW5nLiAgQ292ZXJpbmcgYXQgbGVhc3QgdGhlIHJhbmdlIGZyb20g
c3RhcnRQb3MgdG8gZW5kUG9zLAorICAgICAqIGl0IGNoZWNrcyBmb3IgZGljdGlvbmFyeSBjaGFy
YWN0ZXJzLCBhbmQgaWYgaXQgZmluZHMgdGhlbSBkZXRlcm1pbmVzCisgICAgICogdGhlIGFwcHJv
cHJpYXRlIG9iamVjdCB0byBkZWFsIHdpdGggdGhlbS4gSXQgbWF5IGNhY2hlIGZvdW5kIGJyZWFr
cyBpbgorICAgICAqIGZDYWNoZWRCcmVha1Bvc2l0aW9ucyBhcyBpdCBnb2VzLiBJdCBtYXkgd2Vs
bCBhbHNvIGxvb2sgYXQgdGV4dCBvdXRzaWRlCisgICAgICogdGhlIHJhbmdlIHN0YXJ0UG9zIHRv
IGVuZFBvcy4KKyAgICAgKiBJZiBnb2luZyBmb3J3YXJkLCBlbmRQb3MgaXMgdGhlIG5vcm1hbCBV
bmljb2RlIGJyZWFrIHJlc3VsdCwgYW5kCisgICAgICogaWYgZ29pbmQgaW4gcmV2ZXJzZSwgc3Rh
cnRQb3MgaXMgdGhlIG5vcm1hbCBVbmljb2RlIGJyZWFrIHJlc3VsdAorICAgICAqIEBwYXJhbSBz
dGFydFBvcyAgVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIGEgcmFuZ2Ugb2YgdGV4dAorICAgICAqIEBw
YXJhbSBlbmRQb3MgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiBhIHJhbmdlIG9mIHRleHQKKyAgICAg
KiBAcGFyYW0gcmV2ZXJzZSAgIFRoZSBjYWxsIGlzIGZvciB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24K
KyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGNoZWNrRGljdGlvbmFyeShp
bnQzMl90IHN0YXJ0UG9zLCBpbnQzMl90IGVuZFBvcywgVUJvb2wgcmV2ZXJzZSk7CisjZW5kaWYg
IC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworcHJpdmF0ZToKKworICAgIC8qKgorICAgICAq
IFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgTGFuZ3VhZ2VCcmVha0VuZ2lu
ZSBmb3IgYQorICAgICAqIGdpdmVuIGNoYXJhY3RlciBjLgorICAgICAqIEBwYXJhbSBjICAgICAg
ICAgQSBjaGFyYWN0ZXIgaW4gdGhlIGRpY3Rpb25hcnkgc2V0CisgICAgICogQGludGVybmFsCisg
ICAgICovCisgICAgY29uc3QgTGFuZ3VhZ2VCcmVha0VuZ2luZSAqZ2V0TGFuZ3VhZ2VCcmVha0Vu
Z2luZShVQ2hhcjMyIGMpOworCisgICAgLyoqCisgICAgICogIEBpbnRlcm5hbAorICAgICAqLwor
ICAgIHZvaWQgbWFrZVJ1bGVTdGF0dXNWYWxpZCgpOworCit9OworCisvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorLy8KKy8vICAgSW5saW5lIEZ1bmN0aW9ucyBEZWZpbml0aW9ucyAuLi4KKy8vCisv
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitpbmxpbmUgVUJvb2wgUnVsZUJhc2VkQnJlYWtJdGVy
YXRvcjo6b3BlcmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdCB7CisgICAg
cmV0dXJuICFvcGVyYXRvcj09KHRoYXQpOworfQorCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlm
IC8qICNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gKi8KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3NjaHJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3NjaHJpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBiNWUyMjUwM2NmZjI2MWQyY2QyNDBmZjEy
MDA3ZjkzN2Y3ODNiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUv
c2Nocml0ZXIuaApAQCAtMCwwICsxLDE4NyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor
KgorKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1h
Y2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBzY2hyaXRlci5oCisqCisqIE1v
ZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2Ny
aXB0aW9uCisqICAwNS8wNS85OSAgICAgc3RlcGhlbiAgICAgQ2xlYW5lZCB1cC4KKyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBTQ0hSSVRFUl9ICisjZGVmaW5lIFNDSFJJVEVS
X0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS9jaGFy
aXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWNocml0ZXIuaCIKKworLyoqCisgKiBcZmlsZSAK
KyAqIFxicmllZiBDKysgQVBJOiBTdHJpbmcgQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1Vf
TkFNRVNQQUNFX0JFR0lOCisvKioKKyAqIEEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ2hhcmFjdGVy
SXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIHRoZQorICogY2hhcmFjdGVycyAoY29kZSB1bml0
cyBvciBjb2RlIHBvaW50cykgaW4gYSBVbmljb2RlU3RyaW5nLgorICogSXQncyBwb3NzaWJsZSBu
b3Qgb25seSB0byBjcmVhdGUgYW4KKyAqIGl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciBhbiBl
bnRpcmUgVW5pY29kZVN0cmluZywgYnV0IGFsc28gdG8KKyAqIGNyZWF0ZSBvbmUgdGhhdCBpdGVy
YXRlcyBvdmVyIG9ubHkgYSBzdWJyYW5nZSBvZiBhIFVuaWNvZGVTdHJpbmcKKyAqIChpdGVyYXRv
cnMgb3ZlciBkaWZmZXJlbnQgc3VicmFuZ2VzIG9mIHRoZSBzYW1lIFVuaWNvZGVTdHJpbmcgZG9u
J3QKKyAqIGNvbXBhcmUgZXF1YWwpLgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQHNl
ZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitjbGFz
cyBVX0NPTU1PTl9BUEkgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgVUNoYXJDaGFy
YWN0ZXJJdGVyYXRvciB7CitwdWJsaWM6CisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Ig
b3ZlciB0aGUgVW5pY29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRo
ZSBVbmljb2RlU3RyaW5nIG9iamVjdCBpcyBjb3BpZWQuCisgICAqIFRoZSBpdGVyYXRpb24gcmFu
Z2UgaXMgdGhlIHdob2xlIHN0cmluZywgYW5kIHRoZSBzdGFydGluZyBwb3NpdGlvbiBpcyAwLgor
ICAgKiBAcGFyYW0gdGV4dFN0ciBUaGUgdW5pY29kZSBzdHJpbmcgdXNlZCB0byBjcmVhdGUgYW4g
aXRlcmF0b3IKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJ
dGVyYXRvcihjb25zdCBVbmljb2RlU3RyaW5nJiB0ZXh0U3RyKTsKKworICAvKioKKyAgICogQ3Jl
YXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJyZWQgdG8gYnkgInRl
eHRTdHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIHRoZSB3aG9sZSBzdHJpbmcsIGFu
ZCB0aGUgc3RhcnRpbmcKKyAgICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJ0ZXh0UG9zIi4g
IElmICJ0ZXh0UG9zIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVyYXRpb24gcmFuZ2Us
IHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0
ZXh0U3RyIFRoZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSBhbiBpdGVyYXRvcgorICAg
KiBAcGFyYW0gdGV4dFBvcyBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNv
bnN0IFVuaWNvZGVTdHJpbmcmICAgIHRleHRTdHIsCisgICAgICAgICAgICAgIGludDMyX3QgICAg
ICAgICAgICAgIHRleHRQb3MpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3Zl
ciB0aGUgVW5pY29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBV
bmljb2RlU3RyaW5nIG9iamVjdCBpcyBjb3BpZWQuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2Ug
YmVnaW5zIHdpdGggdGhlIGNvZGUgdW5pdCBzcGVjaWZpZWQgYnkKKyAgICogInRleHRCZWdpbiIg
YW5kIGVuZHMgd2l0aCB0aGUgY29kZSB1bml0IEJFRk9SRSB0aGUgY29kZSB1bml0IHNwZWNmaWVk
CisgICAqIGJ5ICJ0ZXh0RW5kIi4gIFRoZSBzdGFydGluZyBwb3NpdGlvbiBpcyBzcGVjaWZpZWQg
YnkgInRleHRQb3MiLiAgSWYKKyAgICogInRleHRCZWdpbiIgYW5kICJ0ZXh0RW5kIiBkb24ndCBm
b3JtIGEgdmFsaWQgcmFuZ2Ugb24gInRleHQiIChpLmUuLAorICAgKiB0ZXh0QmVnaW4gPj0gdGV4
dEVuZCBvciBlaXRoZXIgaXMgbmVnYXRpdmUgb3IgZ3JlYXRlciB0aGFuIHRleHQuc2l6ZSgpKSwK
KyAgICogb3IgInRleHRQb3MiIGlzIG91dHNpZGUgdGhlIHJhbmdlIGRlZmluZWQgYnkgInRleHRC
ZWdpbiIgYW5kICJ0ZXh0RW5kIiwKKyAgICogdGhlIGJlaGF2aW9yIG9mIHRoaXMgaXRlcmF0b3Ig
aXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFN0ciAgICBUaGUgdW5pY29kZSBzdHJpbmcg
dXNlZCB0byBjcmVhdGUgdGhlIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yCisgICAqIEBwYXJhbSB0
ZXh0QmVnaW4gIFRoZSBiZWdpbiBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAq
IEBwYXJhbSB0ZXh0RW5kICAgIFRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5n
ZQorICAgKiBAcGFyYW0gdGV4dFBvcyAgICBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0
ZXJhdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0
ZXJhdG9yKGNvbnN0IFVuaWNvZGVTdHJpbmcmICAgIHRleHRTdHIsCisgICAgICAgICAgICAgIGlu
dDMyX3QgICAgICAgICAgICAgIHRleHRCZWdpbiwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAg
ICAgICAgICAgdGV4dEVuZCwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4
dFBvcyk7CisKKyAgLyoqCisgICAqIENvcHkgY29uc3RydWN0b3IuICBUaGUgbmV3IGl0ZXJhdG9y
IGl0ZXJhdGVzIG92ZXIgdGhlIHNhbWUgcmFuZ2UKKyAgICogb2YgdGhlIHNhbWUgc3RyaW5nIGFz
ICJ0aGF0IiwgYW5kIGl0cyBpbml0aWFsIHBvc2l0aW9uIGlzIHRoZQorICAgKiBzYW1lIGFzICJ0
aGF0IidzIGN1cnJlbnQgcG9zaXRpb24uCisgICAqIFRoZSBVbmljb2RlU3RyaW5nIG9iamVjdCBp
biAidGhhdCIgaXMgY29waWVkLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgU3RyaW5nQ2hhcmFjdGVy
SXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3Ry
aW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImICB0aGF0
KTsKKworICAvKioKKyAgICogRGVzdHJ1Y3Rvci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICB2aXJ0dWFsIH5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8qKgorICAgKiBB
c3NpZ25tZW50IG9wZXJhdG9yLiAgKnRoaXMgaXMgYWx0ZXJlZCB0byBpdGVyYXRlIG92ZXIgdGhl
IHNhbWUKKyAgICogcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIHJlZmVy
cyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgd2l0aGluIHRoYXQgc3RyaW5nIGFzICJ0aGF0
IiBkb2VzLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgb2JqZWN0IHRvIGJlIGNvcGllZC4KKyAgICog
QHJldHVybiB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImCisgIG9wZXJhdG9yPShjb25zdCBTdHJp
bmdDaGFyYWN0ZXJJdGVyYXRvciYgICAgdGhhdCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgdHJ1
ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAg
ICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisg
ICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFy
ZWQgZm9yIGVxdWFsaXR5CisgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJh
dGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBw
b2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQm9vbCAgICAgICAgICBvcGVyYXRvcj09KGNvbnN0IEZvcndhcmRDaGFy
YWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgYSBuZXcg
U3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAqIGNoYXJh
Y3RlciBpbiB0aGUgc2FtZSByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgdGhpcyBvbmUuICBU
aGUKKyAgICogY2FsbGVyIG11c3QgZGVsZXRlIHRoZSBuZXcgaXRlcmF0b3IuCisgICAqIEByZXR1
cm4gdGhlIG5ld2x5IGNsb25lZCBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3Q7CisKKyAgLyoq
CisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgcHJvdmlkZWQgc3Ry
aW5nLgorICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUgc3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIK
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVW5pY29k
ZVN0cmluZyYgbmV3VGV4dCk7CisKKyAgLyoqCisgICAqIENvcGllcyB0aGUgVW5pY29kZVN0cmlu
ZyB1bmRlciBpdGVyYXRpb24gaW50byB0aGUgVW5pY29kZVN0cmluZworICAgKiByZWZlcnJlZCB0
byBieSAicmVzdWx0Ii4gIEV2ZW4gaWYgdGhpcyBpdGVyYXRvciBpdGVyYXRlcyBhY3Jvc3MKKyAg
ICogb25seSBhIHBhcnQgb2YgdGhpcyBzdHJpbmcsIHRoZSB3aG9sZSBzdHJpbmcgaXMgY29waWVk
LgorICAgKiBAcGFyYW0gcmVzdWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBp
dGVyYXRpb24uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB2b2lkICAg
ICAgICAgICAgZ2V0VGV4dChVbmljb2RlU3RyaW5nJiByZXN1bHQpOworCisgIC8qKgorICAgKiBS
ZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QgKG5vdCByZWFsbHkgcHVibGljKQorICAg
KiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIHZpcnR1YWwgVUNsYXNzSUQgICAgICAgICBnZXREeW5hbWljQ2xhc3NJRCh2
b2lkKSBjb25zdDsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xh
c3MgKG5vdCByZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMg
Y2xhc3MKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBzdGF0aWMgVUNsYXNzSUQgICBV
X0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworcHJvdGVjdGVkOgorICAvKioKKyAg
ICogRGVmYXVsdCBjb25zdHJ1Y3RvciwgaXRlcmF0aW9uIG92ZXIgZW1wdHkgc3RyaW5nLgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKCk7CisK
KyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgcHJvdmlk
ZWQgc3RyaW5nLgorICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUgc3RyaW5nIHRvIGJlIGl0ZXJhdGVk
IG92ZXIKKyAgICogQHBhcmFtIG5ld1RleHRMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgU3RyaW5n
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdm9pZCBzZXRUZXh0KGNvbnN0IFVDaGFy
KiBuZXdUZXh0LCBpbnQzMl90IG5ld1RleHRMZW5ndGgpOworCisgIC8qKgorICAgKiBDb3B5IG9m
IHRoZSBpdGVyYXRlZCBzdHJpbmcgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIFVuaWNvZGVTdHJpbmcgICAgICAgICAgICB0ZXh0OworCit9OworCitVX05BTUVTUEFDRV9F
TkQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1hcC5o
IGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1hcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzN2UxNjU4
ODY5N2YxYTkzMDE5MWVlM2RmODE2YzYzYjdiZDM4YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL3VjYXNlbWFwLmgKQEAgLTAsMCArMSw0MjMgQEAKKy8qCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTIsIEludGVy
bmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAg
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxl
IG5hbWU6ICB1Y2FzZW1hcC5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6
ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjog
MjAwNW1heTA2CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyoKKyogICBDYXNl
IG1hcHBpbmcgc2VydmljZSBvYmplY3QgYW5kIGZ1bmN0aW9ucyB1c2luZyBpdC4KKyovCisKKyNp
Zm5kZWYgX19VQ0FTRU1BUF9IX18KKyNkZWZpbmUgX19VQ0FTRU1BUF9IX18KKworI2luY2x1ZGUg
InVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91c3RyaW5nLmgiCisjaW5jbHVk
ZSAidW5pY29kZS9sb2NhbHBvaW50ZXIuaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMg
QVBJOiBVbmljb2RlIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMgdXNpbmcgYSBVQ2FzZU1hcCBzZXJ2
aWNlIG9iamVjdC4KKyAqCisgKiBUaGUgc2VydmljZSBvYmplY3QgdGFrZXMgY2FyZSBvZiBtZW1v
cnkgYWxsb2NhdGlvbnMsIGRhdGEgbG9hZGluZywgYW5kIHNldHVwCisgKiBmb3IgdGhlIGF0dHJp
YnV0ZXMsIGFzIHVzdWFsLgorICoKKyAqIEN1cnJlbnRseSwgdGhlIGZ1bmN0aW9uYWxpdHkgcHJv
dmlkZWQgaGVyZSBkb2VzIG5vdCBvdmVybGFwIHdpdGggdWNoYXIuaAorICogYW5kIHVzdHJpbmcu
aCwgZXhjZXB0IGZvciB1Y2FzZW1hcF90b1RpdGxlKCkuCisgKgorICogdWNhc2VtYXBfdXRmOFhZ
WigpIGZ1bmN0aW9ucyBvcGVyYXRlIGRpcmVjdGx5IG9uIFVURi04IHN0cmluZ3MuCisgKi8KKwor
LyoqCisgKiBVQ2FzZU1hcCBpcyBhbiBvcGFxdWUgc2VydmljZSBvYmplY3QgZm9yIG5ld2VyIElD
VSBjYXNlIG1hcHBpbmcgZnVuY3Rpb25zLgorICogT2xkZXIgZnVuY3Rpb25zIGRpZCBub3QgdXNl
IGEgc2VydmljZSBvYmplY3QuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworc3RydWN0IFVDYXNl
TWFwOwordHlwZWRlZiBzdHJ1Y3QgVUNhc2VNYXAgVUNhc2VNYXA7IC8qKjwgQyB0eXBlZGVmIGZv
ciBzdHJ1Y3QgVUNhc2VNYXAuIEBzdGFibGUgSUNVIDMuNCAqLworCisvKioKKyAqIE9wZW4gYSBV
Q2FzZU1hcCBzZXJ2aWNlIG9iamVjdCBmb3IgYSBsb2NhbGUgYW5kIGEgc2V0IG9mIG9wdGlvbnMu
CisgKiBUaGUgbG9jYWxlIElEIGFuZCBvcHRpb25zIGFyZSBwcmVwcm9jZXNzZWQgc28gdGhhdCBm
dW5jdGlvbnMgdXNpbmcgdGhlCisgKiBzZXJ2aWNlIG9iamVjdCBuZWVkIG5vdCBwcm9jZXNzIHRo
ZW0gaW4gZWFjaCBjYWxsLgorICoKKyAqIEBwYXJhbSBsb2NhbGUgSUNVIGxvY2FsZSBJRCwgdXNl
ZCBmb3IgbGFuZ3VhZ2UtZGVwZW5kZW50CisgKiAgICAgICAgICAgICAgIHVwcGVyLS9sb3dlci0v
dGl0bGUtY2FzaW5nIGFjY29yZGluZyB0byB0aGUgVW5pY29kZSBzdGFuZGFyZC4KKyAqICAgICAg
ICAgICAgICAgVXN1YWwgc2VtYW50aWNzOiAiIj1yb290LCBOVUxMPWRlZmF1bHQgbG9jYWxlLCBl
dGMuCisgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGJpdCBzZXQsIHVzZWQgZm9yIGNhc2UgZm9s
ZGluZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICogICAgICAgICAgICAgICAgU2FtZSBmbGFn
cyBhcyBmb3IgdV9mb2xkQ2FzZSgpLCB1X3N0ckZvbGRDYXNlKCksCisgKiAgICAgICAgICAgICAg
ICB1X3N0ckNhc2VDb21wYXJlKCksIGV0Yy4KKyAqICAgICAgICAgICAgICAgIFVzZSAwIG9yIFVf
Rk9MRF9DQVNFX0RFRkFVTFQgZm9yIGRlZmF1bHQgYmVoYXZpb3IuCisgKiBAcGFyYW0gcEVycm9y
Q29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICog
ICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9y
ZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gUG9pbnRlciB0byBhIFVDYXNlTWFwIHNl
cnZpY2Ugb2JqZWN0LCBpZiBzdWNjZXNzZnVsLgorICoKKyAqIEBzZWUgVV9GT0xEX0NBU0VfREVG
QVVMVAorICogQHNlZSBVX0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICogQHNlZSBVX1RJ
VExFQ0FTRV9OT19MT1dFUkNBU0UKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNU
TUVOVAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIFVDYXNlTWFwICogVV9FWFBP
UlQyCit1Y2FzZW1hcF9vcGVuKGNvbnN0IGNoYXIgKmxvY2FsZSwgdWludDMyX3Qgb3B0aW9ucywg
VUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogQ2xvc2UgYSBVQ2FzZU1hcCBzZXJ2
aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBjc20gT2JqZWN0IHRvIGJlIGNsb3NlZC4KKyAqIEBzdGFi
bGUgSUNVIDMuNAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfY2xvc2Uo
VUNhc2VNYXAgKmNzbSk7CisKKyNpZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFD
RV9CRUdJTgorCisvKioKKyAqIFxjbGFzcyBMb2NhbFVDYXNlTWFwUG9pbnRlcgorICogIlNtYXJ0
IHBvaW50ZXIiIGNsYXNzLCBjbG9zZXMgYSBVQ2FzZU1hcCB2aWEgdWNhc2VtYXBfY2xvc2UoKS4K
KyAqIEZvciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3Mu
CisgKgorICogQHNlZSBMb2NhbFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICog
QHN0YWJsZSBJQ1UgNC40CisgKi8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVD
YXNlTWFwUG9pbnRlciwgVUNhc2VNYXAsIHVjYXNlbWFwX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0Vf
RU5ECisKKyNlbmRpZgorCisvKioKKyAqIEdldCB0aGUgbG9jYWxlIElEIHRoYXQgaXMgdXNlZCBm
b3IgbGFuZ3VhZ2UtZGVwZW5kZW50IGNhc2UgbWFwcGluZ3MuCisgKiBAcGFyYW0gY3NtIFVDYXNl
TWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVybiBsb2NhbGUgSUQKKyAqIEBzdGFibGUgSUNV
IDMuNAorICovCitVX1NUQUJMRSBjb25zdCBjaGFyICogVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRM
b2NhbGUoY29uc3QgVUNhc2VNYXAgKmNzbSk7CisKKy8qKgorICogR2V0IHRoZSBvcHRpb25zIGJp
dCBzZXQgdGhhdCBpcyB1c2VkIGZvciBjYXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29u
cy4KKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIG9w
dGlvbnMgYml0IHNldAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHVpbnQzMl90
IFVfRVhQT1JUMgordWNhc2VtYXBfZ2V0T3B0aW9ucyhjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKwor
LyoqCisgKiBTZXQgdGhlIGxvY2FsZSBJRCB0aGF0IGlzIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVu
ZGVudCBjYXNlIG1hcHBpbmdzLgorICoKKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBv
YmplY3QuCisgKiBAcGFyYW0gbG9jYWxlIExvY2FsZSBJRCwgc2VlIHVjYXNlbWFwX29wZW4oKS4K
KyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9y
IGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0
ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAqIEBzZWUgdWNhc2Vt
YXBfb3BlbgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQy
Cit1Y2FzZW1hcF9zZXRMb2NhbGUoVUNhc2VNYXAgKmNzbSwgY29uc3QgY2hhciAqbG9jYWxlLCBV
RXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBTZXQgdGhlIG9wdGlvbnMgYml0IHNl
dCB0aGF0IGlzIHVzZWQgZm9yIGNhc2UgZm9sZGluZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgor
ICoKKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gb3B0
aW9ucyBPcHRpb25zIGJpdCBzZXQsIHNlZSB1Y2FzZW1hcF9vcGVuKCkuCisgKiBAcGFyYW0gcEVy
cm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAor
ICogICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJl
Zm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX29wZW4KKyAqIEBz
dGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0
T3B0aW9ucyhVQ2FzZU1hcCAqY3NtLCB1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJy
b3JDb2RlKTsKKworLyoqCisgKiBEbyBub3QgbG93ZXJjYXNlIG5vbi1pbml0aWFsIHBhcnRzIG9m
IHdvcmRzIHdoZW4gdGl0bGVjYXNpbmcuCisgKiBPcHRpb24gYml0IGZvciB0aXRsZWNhc2luZyBB
UElzIHRoYXQgdGFrZSBhbiBvcHRpb25zIGJpdCBzZXQuCisgKgorICogQnkgZGVmYXVsdCwgdGl0
bGVjYXNpbmcgd2lsbCB0aXRsZWNhc2UgdGhlIGZpcnN0IGNhc2VkIGNoYXJhY3RlcgorICogb2Yg
YSB3b3JkIGFuZCBsb3dlcmNhc2UgYWxsIG90aGVyIGNoYXJhY3RlcnMuCisgKiBXaXRoIHRoaXMg
b3B0aW9uLCB0aGUgb3RoZXIgY2hhcmFjdGVycyB3aWxsIG5vdCBiZSBtb2RpZmllZC4KKyAqCisg
KiBAc2VlIHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgdWNhc2VtYXBfdG9UaXRsZQorICog
QHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICogQHNlZSBVbmljb2RlU3RyaW5nOjp0b1RpdGxl
CisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworI2RlZmluZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNB
U0UgMHgxMDAKKworLyoqCisgKiBEbyBub3QgYWRqdXN0IHRoZSB0aXRsZWNhc2luZyBpbmRleGVz
IGZyb20gQnJlYWtJdGVyYXRvcjo6bmV4dCgpIGluZGV4ZXM7CisgKiB0aXRsZWNhc2UgZXhhY3Rs
eSB0aGUgY2hhcmFjdGVycyBhdCBicmVha3MgZnJvbSB0aGUgaXRlcmF0b3IuCisgKiBPcHRpb24g
Yml0IGZvciB0aXRsZWNhc2luZyBBUElzIHRoYXQgdGFrZSBhbiBvcHRpb25zIGJpdCBzZXQuCisg
KgorICogQnkgZGVmYXVsdCwgdGl0bGVjYXNpbmcgd2lsbCB0YWtlIGVhY2ggYnJlYWsgaXRlcmF0
b3IgaW5kZXgsCisgKiBhZGp1c3QgaXQgYnkgbG9va2luZyBmb3IgdGhlIG5leHQgY2FzZWQgY2hh
cmFjdGVyLCBhbmQgdGl0bGVjYXNlIHRoYXQgb25lLgorICogT3RoZXIgY2hhcmFjdGVycyBhcmUg
bG93ZXJjYXNlZC4KKyAqCisgKiBUaGlzIGZvbGxvd3MgVW5pY29kZSA0ICYgNSBzZWN0aW9uIDMu
MTMgRGVmYXVsdCBDYXNlIE9wZXJhdGlvbnM6CisgKgorICogUjMgIHRvVGl0bGVjYXNlKFgpOiBG
aW5kIHRoZSB3b3JkIGJvdW5kYXJpZXMgYmFzZWQgb24gVW5pY29kZSBTdGFuZGFyZCBBbm5leAor
ICogIzI5LCAiVGV4dCBCb3VuZGFyaWVzLiIgQmV0d2VlbiBlYWNoIHBhaXIgb2Ygd29yZCBib3Vu
ZGFyaWVzLCBmaW5kIHRoZSBmaXJzdAorICogY2FzZWQgY2hhcmFjdGVyIEYuIElmIEYgZXhpc3Rz
LCBtYXAgRiB0byBkZWZhdWx0X3RpdGxlKEYpOyB0aGVuIG1hcCBlYWNoCisgKiBzdWJzZXF1ZW50
IGNoYXJhY3RlciBDIHRvIGRlZmF1bHRfbG93ZXIoQykuCisgKgorICogQHNlZSB1Y2FzZW1hcF9z
ZXRPcHRpb25zCisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRm
OFRvVGl0bGUKKyAqIEBzZWUgVW5pY29kZVN0cmluZzo6dG9UaXRsZQorICogQHNlZSBVX1RJVExF
Q0FTRV9OT19MT1dFUkNBU0UKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCisjZGVmaW5lIFVfVElU
TEVDQVNFX05PX0JSRUFLX0FESlVTVE1FTlQgMHgyMDAKKworI2lmICFVQ09ORklHX05PX0JSRUFL
X0lURVJBVElPTgorCisvKioKKyAqIEdldCB0aGUgYnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2Vk
IGZvciB0aXRsZWNhc2luZy4KKyAqIERvIG5vdCBtb2RpZnkgdGhlIHJldHVybmVkIGJyZWFrIGl0
ZXJhdG9yLgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1
cm4gdGl0bGVjYXNpbmcgYnJlYWsgaXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitV
X1NUQUJMRSBjb25zdCBVQnJlYWtJdGVyYXRvciAqIFVfRVhQT1JUMgordWNhc2VtYXBfZ2V0QnJl
YWtJdGVyYXRvcihjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoqCisgKiBTZXQgdGhlIGJyZWFr
IGl0ZXJhdG9yIHRoYXQgaXMgdXNlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBUaGUgVUNhc2VNYXAg
c2VydmljZSBvYmplY3QgcmVsZWFzZXMgYSBwcmV2aW91c2x5IHNldCBicmVhayBpdGVyYXRvcgor
ICogYW5kICJhZG9wdHMiIHRoaXMgbmV3IG9uZSwgdGFraW5nIG93bmVyc2hpcCBvZiBpdC4KKyAq
IEl0IHdpbGwgYmUgcmVsZWFzZWQgaW4gYSBzdWJzZXF1ZW50IGNhbGwgdG8gdWNhc2VtYXBfc2V0
QnJlYWtJdGVyYXRvcigpCisgKiBvciB1Y2FzZW1hcF9jbG9zZSgpLgorICoKKyAqIEJyZWFrIGl0
ZXJhdG9yIG9wZXJhdGlvbnMgYXJlIG5vdCB0aHJlYWQtc2FmZS4gVGhlcmVmb3JlLCB0aXRsZWNh
c2luZworICogZnVuY3Rpb25zIHVzZSBub24tY29uc3QgVUNhc2VNYXAgb2JqZWN0cy4gSXQgaXMg
bm90IHBvc3NpYmxlIHRvIHRpdGxlY2FzZQorICogc3RyaW5ncyBjb25jdXJyZW50bHkgdXNpbmcg
dGhlIHNhbWUgVUNhc2VNYXAuCisgKgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9i
amVjdC4KKyAqIEBwYXJhbSBpdGVyVG9BZG9wdCBCcmVhayBpdGVyYXRvciB0byBiZSBhZG9wdGVk
IGZvciB0aXRsZWNhc2luZy4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBw
b2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGlj
aCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgor
ICoKKyAqIEBzZWUgdWNhc2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRs
ZQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2Fz
ZW1hcF9zZXRCcmVha0l0ZXJhdG9yKFVDYXNlTWFwICpjc20sIFVCcmVha0l0ZXJhdG9yICppdGVy
VG9BZG9wdCwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogVGl0bGVjYXNlIGEg
VVRGLTE2IHN0cmluZy4gVGhpcyBmdW5jdGlvbiBpcyBhbG1vc3QgYSBkdXBsaWNhdGUgb2YgdV9z
dHJUb1RpdGxlKCksCisgKiBleGNlcHQgdGhhdCBpdCB0YWtlcyB1Y2FzZW1hcF9zZXRPcHRpb25z
KCkgaW50byBhY2NvdW50IGFuZCBoYXMgcGVyZm9ybWFuY2UKKyAqIGFkdmFudGFnZXMgZnJvbSBi
ZWluZyBhYmxlIHRvIHVzZSBhIFVDYXNlTWFwIG9iamVjdCBmb3IgbXVsdGlwbGUgY2FzZSBtYXBw
aW5nCisgKiBvcGVyYXRpb25zLCBzYXZpbmcgc2V0dXAgdGltZS4KKyAqCisgKiBDYXNpbmcgaXMg
bG9jYWxlLWRlcGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaXRsZWNhc2luZyB1
c2VzIGEgYnJlYWsgaXRlcmF0b3IgdG8gZmluZCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiB3b3Jk
cworICogdGhhdCBhcmUgdG8gYmUgdGl0bGVjYXNlZC4gSXQgdGl0bGVjYXNlcyB0aG9zZSBjaGFy
YWN0ZXJzIGFuZCBsb3dlcmNhc2VzCisgKiBhbGwgb3RoZXJzLiAoVGhpcyBjYW4gYmUgbW9kaWZp
ZWQgd2l0aCB1Y2FzZW1hcF9zZXRPcHRpb25zKCkuKQorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rp
b24gdGFrZXMgYSBub24tY29uc3QgVUNhc2VNYXAgcG9pbnRlciBiZWNhdXNlIGl0IHdpbGwKKyAq
IG9wZW4gYSBkZWZhdWx0IGJyZWFrIGl0ZXJhdG9yIGlmIG5vIGJyZWFrIGl0ZXJhdG9yIHdhcyBz
ZXQgeWV0LAorICogYW5kIGVmZmVjdGl2ZWx5IGNhbGwgdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRv
cigpOworICogYWxzbyBiZWNhdXNlIHRoZSBicmVhayBpdGVyYXRvciBpcyBzdGF0ZWZ1bCBhbmQg
d2lsbCBiZSBtb2RpZmllZCBkdXJpbmcKKyAqIHRoZSBpdGVyYXRpb24uCisgKgorICogVGhlIHRp
dGxlY2FzZSBicmVhayBpdGVyYXRvciBjYW4gYmUgcHJvdmlkZWQgdG8gY3VzdG9taXplIGZvciBh
cmJpdHJhcnkKKyAqIHN0eWxlcywgdXNpbmcgcnVsZXMgYW5kIGRpY3Rpb25hcmllcyBiZXlvbmQg
dGhlIHN0YW5kYXJkIGl0ZXJhdG9ycy4KKyAqIFRoZSBzdGFuZGFyZCB0aXRsZWNhc2UgaXRlcmF0
b3IgZm9yIHRoZSByb290IGxvY2FsZSBpbXBsZW1lbnRzIHRoZQorICogYWxnb3JpdGhtIG9mIFVu
aWNvZGUgVFIgMjEuCisgKgorICogVGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHNldFVUZXh0
KCksIGZpcnN0KCksIG5leHQoKSBhbmQgY2xvc2UoKSBtZXRob2RzIG9mIHRoZQorICogcHJvdmlk
ZWQgYnJlYWsgaXRlcmF0b3IuCisgKgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNo
b3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRl
c3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAg
ICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuIFRoaXMgcG9pbnRlciBpcyBub24tY29uc3QhCisg
KiAgICAgICAgICAgICAgICAgIFNlZSB0aGUgbm90ZSBhYm92ZSBmb3IgZGV0YWlscy4KKyAqIEBw
YXJhbSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0
IHdpbGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZl
ciBpcyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1
bmRlZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUg
c2l6ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisg
KiAgICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxs
IG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAg
ICB3aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNy
YyAgICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVu
Z3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10
ZXJtaW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIg
dG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBu
b3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1
cm4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGlu
IGNhc2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQg
d2lsbCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1Rp
dGxlCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIK
K3VjYXNlbWFwX3RvVGl0bGUoVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgVUNoYXIg
KmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICBjb25zdCBVQ2hh
ciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAq
cEVycm9yQ29kZSk7CisKKyNlbmRpZgorCisvKioKKyAqIExvd2VyY2FzZSB0aGUgY2hhcmFjdGVy
cyBpbiBhIFVURi04IHN0cmluZy4KKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBj
b250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVy
IHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5h
dGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVD
YXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3Ig
dGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgor
ICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAg
ICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUu
CisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBv
ZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkg
YmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0
aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhl
IHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcu
CisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4g
SWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9y
Q29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICog
ICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3Jl
IHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQg
c3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywK
KyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2Fw
YWNpdHkuCisgKgorICogQHNlZSB1X3N0clRvTG93ZXIKKyAqIEBzdGFibGUgSUNVIDMuNAorICov
CitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOFRvTG93ZXIoY29uc3Qg
VUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3Qg
ZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQz
Ml90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNv
ZGUpOworCisvKioKKyAqIFVwcGVyY2FzZSB0aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmlu
Zy4KKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4K
KyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFs
LgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBu
b3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2Jq
ZWN0LgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcu
IFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAg
ICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNv
bnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENh
cGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlz
IDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1
bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAg
ICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisg
KiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVu
Z3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11
c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFs
aWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3
aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxs
LgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNz
ZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hp
Y2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNl
ZSB1X3N0clRvVXBwZXIKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSBpbnQzMl90
IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOFRvVXBwZXIoY29uc3QgVUNhc2VNYXAgKmNzbSwKKyAg
ICAgICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjaWYgIVVDT05G
SUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKKy8qKgorICogVGl0bGVjYXNlIGEgVVRGLTggc3RyaW5n
LgorICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgor
ICogVGl0bGVjYXNpbmcgdXNlcyBhIGJyZWFrIGl0ZXJhdG9yIHRvIGZpbmQgdGhlIGZpcnN0IGNo
YXJhY3RlcnMgb2Ygd29yZHMKKyAqIHRoYXQgYXJlIHRvIGJlIHRpdGxlY2FzZWQuIEl0IHRpdGxl
Y2FzZXMgdGhvc2UgY2hhcmFjdGVycyBhbmQgbG93ZXJjYXNlcworICogYWxsIG90aGVycy4gKFRo
aXMgY2FuIGJlIG1vZGlmaWVkIHdpdGggdWNhc2VtYXBfc2V0T3B0aW9ucygpLikKKyAqCisgKiBO
b3RlOiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgbm9uLWNvbnN0IFVDYXNlTWFwIHBvaW50ZXIgYmVj
YXVzZSBpdCB3aWxsCisgKiBvcGVuIGEgZGVmYXVsdCBicmVhayBpdGVyYXRvciBpZiBubyBicmVh
ayBpdGVyYXRvciB3YXMgc2V0IHlldCwKKyAqIGFuZCBlZmZlY3RpdmVseSBjYWxsIHVjYXNlbWFw
X3NldEJyZWFrSXRlcmF0b3IoKTsKKyAqIGFsc28gYmVjYXVzZSB0aGUgYnJlYWsgaXRlcmF0b3Ig
aXMgc3RhdGVmdWwgYW5kIHdpbGwgYmUgbW9kaWZpZWQgZHVyaW5nCisgKiB0aGUgaXRlcmF0aW9u
LgorICoKKyAqIFRoZSB0aXRsZWNhc2UgYnJlYWsgaXRlcmF0b3IgY2FuIGJlIHByb3ZpZGVkIHRv
IGN1c3RvbWl6ZSBmb3IgYXJiaXRyYXJ5CisgKiBzdHlsZXMsIHVzaW5nIHJ1bGVzIGFuZCBkaWN0
aW9uYXJpZXMgYmV5b25kIHRoZSBzdGFuZGFyZCBpdGVyYXRvcnMuCisgKiBUaGUgc3RhbmRhcmQg
dGl0bGVjYXNlIGl0ZXJhdG9yIGZvciB0aGUgcm9vdCBsb2NhbGUgaW1wbGVtZW50cyB0aGUKKyAq
IGFsZ29yaXRobSBvZiBVbmljb2RlIFRSIDIxLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gdXNlcyBv
bmx5IHRoZSBzZXRVVGV4dCgpLCBmaXJzdCgpLCBuZXh0KCkgYW5kIGNsb3NlKCkgbWV0aG9kcyBv
ZiB0aGUKKyAqIHByb3ZpZGVkIGJyZWFrIGl0ZXJhdG9yLgorICoKKyAqIFRoZSByZXN1bHQgbWF5
IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBz
dHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisg
KiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LiBUaGlzIHBvaW50ZXIg
aXMgbm9uLWNvbnN0IQorICogICAgICAgICAgICAgICAgICBTZWUgdGhlIG5vdGUgYWJvdmUgZm9y
IGRldGFpbHMuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0
cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAg
ICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBU
aGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBk
ZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYg
aXQgaXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0
aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAq
ICAgICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmlu
Zy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBz
cmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBz
cmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUg
YSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAg
ICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9u
IGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1
Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBp
biB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisg
KiBAc2VlIHVfc3RyVG9UaXRsZQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNBU0UKKyAq
IEBzZWUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVAorICogQHN0YWJsZSBJQ1UgMy44
CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4VG9UaXRsZShV
Q2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRl
c3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90
IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7
CisKKyNlbmRpZgorCisvKioKKyAqIENhc2UtZm9sZHMgdGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYt
OCBzdHJpbmcuCisgKgorICogQ2FzZS1mb2xkaW5nIGlzIGxvY2FsZS1pbmRlcGVuZGVudCBhbmQg
bm90IGNvbnRleHQtc2Vuc2l0aXZlLAorICogYnV0IHRoZXJlIGlzIGFuIG9wdGlvbiBmb3Igd2hl
dGhlciB0byBpbmNsdWRlIG9yIGV4Y2x1ZGUgbWFwcGluZ3MgZm9yIGRvdHRlZCBJCisgKiBhbmQg
ZG90bGVzcyBpIHRoYXQgYXJlIG1hcmtlZCB3aXRoICdUJyBpbiBDYXNlRm9sZGluZy50eHQuCisg
KgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2lu
YWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0
IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBv
YmplY3QuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmlu
Zy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAg
ICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUg
Y29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0
Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQg
aXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUg
ZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAg
ICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4K
KyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNM
ZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMg
bXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2
YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAg
IHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNh
bGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nl
c3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3
aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBA
c2VlIHVfc3RyRm9sZENhc2UKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNlZSBV
X0ZPTERfQ0FTRV9ERUZBVUxUCisgKiBAc2VlIFVfRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9J
CisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3Vj
YXNlbWFwX3V0ZjhGb2xkQ2FzZShjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAg
ICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAg
ICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9pY3UvdW5pY29kZS91Y2hyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS91Y2hyaXRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkNWE5OTBmN2I3ZWQzZDViYWNmMmRhODQ3MWVmOGZm
OTQyMmY5OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJp
dGVyLmgKQEAgLTAsMCArMSwzODEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0
IChDKSAxOTk4LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jw
b3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyovCisKKyNpZm5kZWYgVUNIUklURVJfSAorI2RlZmluZSBVQ0hSSVRFUl9ICisKKyNpbmNsdWRl
ICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKworLyoq
CisgKiBcZmlsZSAKKyAqIFxicmllZiBDKysgQVBJOiBVQ2hhciBDaGFyYWN0ZXIgSXRlcmF0b3IK
KyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBBIGNvbmNyZXRlIHN1YmNsYXNz
IG9mIENoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciB0aGUKKyAqIGNoYXJhY3Rl
cnMgKGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMpIGluIGEgVUNoYXIgYXJyYXkuCisgKiBJdCdz
IHBvc3NpYmxlIG5vdCBvbmx5IHRvIGNyZWF0ZSBhbgorICogaXRlcmF0b3IgdGhhdCBpdGVyYXRl
cyBvdmVyIGFuIGVudGlyZSBVQ2hhciBhcnJheSwgYnV0IGFsc28gdG8KKyAqIGNyZWF0ZSBvbmUg
dGhhdCBpdGVyYXRlcyBvdmVyIG9ubHkgYSBzdWJyYW5nZSBvZiBhIFVDaGFyIGFycmF5CisgKiAo
aXRlcmF0b3JzIG92ZXIgZGlmZmVyZW50IHN1YnJhbmdlcyBvZiB0aGUgc2FtZSBVQ2hhciBhcnJh
eSBkb24ndAorICogY29tcGFyZSBlcXVhbCkuCisgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yCisg
KiBAc2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8K
K2NsYXNzIFVfQ09NTU9OX0FQSSBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIDogcHVibGljIENoYXJh
Y3Rlckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBv
dmVyIHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBp
dGVyYXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5sZW5ndGgtMTwvY29kZT4uCisgICAqIHRleHQg
aXMgb25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisgICAqIGRlc3RydWN0b3Igd2lsbCBu
b3QgZGVsZXRlIGl0KS4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJl
IGl0ZXJhdGVkIG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hh
ciBhcnJheQorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRl
cmF0b3IoY29uc3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoKTsKKworICAvKioKKyAg
ICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5
ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmxlbmd0
aC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUK
KyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBUaGUgc3RhcnRpbmcK
KyAgICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJwb3NpdGlvbiIuIElmICJwb3NpdGlvbiIg
aXMgb3V0c2lkZSB0aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Ig
b2YgdGhpcyBvYmplY3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNo
YXIgYXJyYXkgdG8gYmUgaXRlcmF0ZCBvdmVyCisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0
aCBvZiB0aGUgVUNoYXIgYXJyYXkKKyAgICogQHBhcmFtIHBvc2l0aW9uIFRoZSBzdGFydGluZyBw
b3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
VUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5n
dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoq
CisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0
byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5l
bmQtMTwvY29kZT4uCisgICAqIHRleHQgaXMgb25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhl
CisgICAqIGRlc3RydWN0b3Igd2lsbCBub3QgZGVsZXRlIGl0KS4KKyAgICogVGhlIHN0YXJ0aW5n
CisgICAqIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAicG9zaXRpb24iLiBJZiBiZWdpbiBhbmQg
ZW5kIGRvIG5vdAorICAgKiBmb3JtIGEgdmFsaWQgaXRlcmF0aW9uIHJhbmdlIG9yICJwb3NpdGlv
biIgaXMgb3V0c2lkZSB0aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZp
b3Igb2YgdGhpcyBvYmplY3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUg
VUNoYXIgYXJyYXkgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBs
ZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAqIEBwYXJhbSB0ZXh0QmVnaW4gIFRoZSBiZWdp
biBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0RW5kICAg
IFRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0gcG9z
aXRpb24gICAgVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFy
KiB0ZXh0UHRyLCBpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQz
Ml90IHRleHRCZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRleHRFbmQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisg
ICAqIENvcHkgY29uc3RydWN0b3IuICBUaGUgbmV3IGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgdGhl
IHNhbWUgcmFuZ2UKKyAgICogb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIGl0cyBp
bml0aWFsIHBvc2l0aW9uIGlzIHRoZQorICAgKiBzYW1lIGFzICJ0aGF0IidzIGN1cnJlbnQgcG9z
aXRpb24uCisgICAqIEBwYXJhbSB0aGF0IFRoZSBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHRvIGJl
IGNvcGllZAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRl
cmF0b3IoY29uc3QgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYgIHRoYXQpOworCisgIC8qKgorICAg
KiBEZXN0cnVjdG9yLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgflVD
aGFyQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogQXNzaWdubWVudCBvcGVyYXRv
ci4gICp0aGlzIGlzIGFsdGVyZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBzYW5lCisgICAqIHJhbmdl
IG9mIHRoZSBzYW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCByZWZlcnMgdG8gdGhlIHNhbWUKKyAg
ICogY2hhcmFjdGVyIHdpdGhpbiB0aGF0IHN0cmluZyBhcyAidGhhdCIgZG9lcy4KKyAgICogQHBh
cmFtIHRoYXQgVGhlIG9iamVjdCB0byBiZSBjb3BpZWQKKyAgICogQHJldHVybiB0aGUgbmV3bHkg
Y3JlYXRlZCBvYmplY3QKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJh
Y3Rlckl0ZXJhdG9yJgorICBvcGVyYXRvcj0oY29uc3QgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYg
ICAgdGhhdCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0
ZXJhdGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFy
ZSBwb2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBG
b3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdXNlZCB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkK
KyAgICogQHJldHVybiB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1l
IHJhbmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBz
YW1lIGNoYXJhY3Rlci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVC
b29sICAgICAgICAgIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0
aGF0KSBjb25zdDsKKworICAvKioKKyAgICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGlz
IGl0ZXJhdG9yLgorICAgKiBAcmV0dXJuIHRoZSBoYXNoIGNvZGUuCisgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgKi8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgICAgaGFzaENvZGUodm9pZCkgY29u
c3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgYSBuZXcgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciBy
ZWZlcnJpbmcgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHJhbmdlIG9m
IHRoZSBzYW1lIHN0cmluZyBhcyB0aGlzIG9uZS4gIFRoZQorICAgKiBjYWxsZXIgbXVzdCBkZWxl
dGUgdGhlIG5ldyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0aGUgQ2hhcmFjdGVySXRlcmF0b3Ig
bmV3bHkgY3JlYXRlZAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgQ2hh
cmFjdGVySXRlcmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBTZXRzIHRo
ZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAgKiBp
dGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBUaGlzIGNh
biBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQoKS4KKyAgICogQHJldHVy
biB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0KHZvaWQpOwor
CisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29k
ZSB1bml0IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHVu
aXQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICogdG8gdGhlIHNlY29uZCBjb2RlIHVuaXQu
IFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAqIGZvciBmb3J3YXJk
IGl0ZXJhdGlvbiB3aXRoIG5leHRQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNv
ZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0UG9zdEluYyh2b2lkKTsKKworICAvKioK
KyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQg
aW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQs
CisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMy
KCkuCisgICAqIE5vdGUgdGhhdCBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0SW5jKCksIGJl
Z2lubmluZyB3aXRoLAorICAgKiBlLmcuLCBzZXRUb1N0YXJ0KCkgb3IgZmlyc3RQb3N0SW5jKCks
IGlzIG1vcmUgZWZmaWNpZW50LgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGlu
IGl0cyBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIFVDaGFyMzIgICAgICAgZmlyc3QzMih2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUg
aXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0
ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQsIGFuZCBtb3ZlcyB0aGUgcG9z
aXRpb24KKyAgICogdG8gdGhlIHNlY29uZCBjb2RlIHBvaW50LiBUaGlzIGlzIGFuIGFsdGVybmF0
aXZlIHRvIHNldFRvU3RhcnQoKQorICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0
MzJQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0
ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVD
aGFyMzIgICAgICAgZmlyc3QzMlBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRl
cmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4g
YmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpLgorICAgKiBAcmV0
dXJuIHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBsYXN0KHZvaWQpOwor
CisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2Rl
IHBvaW50IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29k
ZSB1bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRo
IHByZXZpb3VzMzIoKS4KKyAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0cyBp
dGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBV
Q2hhcjMyICAgICAgIGxhc3QzMih2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0
b3IgdG8gcmVmZXIgdG8gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAqIGluIHRoZSB0
ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgKiByZXR1
cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIHdp
dGhpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQK
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgc2V0
SW5kZXgoaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9y
IHRvIHJlZmVyIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICogdGhhdCBj
b250YWlucyB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIHRleHQtc3Rv
cmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAqIHJldHVybnMgdGhh
dCBjb2RlIHBvaW50LgorICAgKiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyBhZGp1c3RlZCB0byB0
aGUgYmVnaW5uaW5nIG9mIHRoZSBjb2RlIHBvaW50CisgICAqIChpdHMgZmlyc3QgY29kZSB1bml0
KS4KKyAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQtc3Rv
cmFnZSBvYmplY3QKKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0CisgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHNldEluZGV4MzIoaW50MzJfdCBw
b3NpdGlvbik7CisKKyAgLyoqCisgICAqIFJldHVybnMgdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0
b3IgY3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0IHRoZSBp
dGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBjdXJyZW50KHZvaWQpIGNvbnN0OworCisgIC8qKgor
ICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJz
IHRvLgorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkg
cmVmZXJzIHRvLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIz
MiAgICAgICBjdXJyZW50MzIodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRv
IHRoZSBuZXh0IGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAgICog
ZW5kSW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlIG5v
IG1vcmUKKyAgICogY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJl
dHVybiB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dCh2b2lkKTsK
KworICAvKioKKyAgICogR2V0cyB0aGUgY3VycmVudCBjb2RlIHVuaXQgZm9yIHJldHVybmluZyBh
bmQgYWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0CisgICAqIGluIHRoZSBpdGVyYXRpb24g
cmFuZ2UKKyAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgKiBubyBt
b3JlIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhl
IGN1cnJlbnQgY29kZSB1bml0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUNoYXIgICAgICAgICBuZXh0UG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogQWR2YW5j
ZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQK
KyAgICogZW5kSW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJl
IGFyZSBubyBtb3JlCisgICAqIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgor
ICAgKiBOb3RlIHRoYXQgaXRlcmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIHNlbWFudGljcyBp
cyBsZXNzCisgICAqIGVmZmljaWVudCB0aGFuIGl0ZXJhdGlvbiB3aXRoICJwb3N0LWluY3JlbWVu
dCIgc2VtYW50aWNzCisgICAqIHRoYXQgaXMgcHJvdmlkZWQgYnkgbmV4dDMyUG9zdEluYygpLgor
ICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4K
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4
dDMyKHZvaWQpOworCisgIC8qKgorICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgZm9y
IHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludAorICAgKiBpbiB0
aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBh
cmUKKyAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAg
ICogQHJldHVybiB0aGUgY3VycmVudCBwb2ludC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyUG9zdEluYyh2b2lkKTsKKworICAvKioK
KyAgICogUmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNv
ZGUgcG9pbnRzCisgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBp
dGVyYXRpb24gcmFuZ2UuCisgICAqIFRoaXMgaXMgdXNlZCB3aXRoIG5leHRQb3N0SW5jKCkgb3Ig
bmV4dDMyUG9zdEluYygpIGluIGZvcndhcmQKKyAgICogaXRlcmF0aW9uLgorICAgKiBAcmV0dXJu
IEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAg
ICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5n
ZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICBo
YXNOZXh0KCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHVu
aXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIHN0YXJ0SW5kZXgoKSksIGFu
ZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29k
ZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgcHJldmlv
dXMgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIHByZXZpb3VzKHZvaWQpOworCisgIC8q
KgorICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0
aW9uIHJhbmdlICh0b3dhcmQKKyAgICogc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBj
b2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSBwb2ludHMgdG8gcmV0
dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQg
aW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2
aXJ0dWFsIFVDaGFyMzIgICAgICAgcHJldmlvdXMzMih2b2lkKTsKKworICAvKioKKyAgICogUmV0
dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRz
CisgICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
LgorICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIoKSBpbiBi
YWNrd2FyZAorICAgKiBpdGVyYXRpb24uCisgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJl
IG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBiZWZvcmUgdGhlIGN1cnJl
bnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNQcmV2aW91cygpOworCisgIC8qKgor
ICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3Ig
ZW5kIG9mIHRoZQorICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJy
ZW50IHBvc2l0aW9uIGl0c2VsZi4KKyAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBu
dW1iZXJzIG9mIGNvZGUgdW5pdHMgZm9yd2FyZAorICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5
aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAqIEBwYXJhbSBkZWx0YSB0aGUg
cG9zaXRpb24gcmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndh
cmQ7CisgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAqIEBwYXJhbSBv
cmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgKiBA
cmV0dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2
aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKTsK
KworICAvKioKKyAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhl
IHN0YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0
byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAqIFRoZSBtb3ZlbWVudCBpcyBleHBy
ZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHBvaW50cyBmb3J3YXJkCisgICAqIG9yIGJhY2t3YXJk
IGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAgICogQHBhcmFt
IGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEg
bWVhbnMgZm9yd2FyZDsKKyAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAg
ICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtF
bmR9CisgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUzMihpbnQzMl90IGRlbHRhLCBFT3Jp
Z2luIG9yaWdpbik7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUg
b3ZlciBhIG5ldyByYW5nZSBvZiB0ZXh0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
dm9pZCBzZXRUZXh0KGNvbnN0IFVDaGFyKiBuZXdUZXh0LCBpbnQzMl90IG5ld1RleHRMZW5ndGgp
OworCisgIC8qKgorICAgKiBDb3BpZXMgdGhlIFVDaGFyIGFycmF5IHVuZGVyIGl0ZXJhdGlvbiBp
bnRvIHRoZSBVbmljb2RlU3RyaW5nCisgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZl
biBpZiB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIGFjcm9zcworICAgKiBvbmx5IGEgcGFydCBvZiB0
aGlzIHN0cmluZywgdGhlIHdob2xlIHN0cmluZyBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSByZXN1
bHQgUmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVu
aWNvZGVTdHJpbmcmIHJlc3VsdCk7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZv
ciB0aGlzIGNsYXNzIChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElE
IGZvciB0aGlzIGNsYXNzCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgc3RhdGljIFVD
bGFzc0lEICAgICAgICAgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQodm9pZCk7CisKKyAgLyoq
CisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdCAobm90IHJlYWxseSBwdWJs
aWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2xhc3NJRCAgICAgICAgZ2V0RHluYW1pY0Ns
YXNzSUQodm9pZCkgY29uc3Q7CisKK3Byb3RlY3RlZDoKKyAgLyoqCisgICAqIFByb3RlY3RlZCBj
b25zdHJ1Y3RvcgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVy
SXRlcmF0b3IoKTsKKyAgLyoqCisgICAqIFByb3RlY3RlZCBtZW1iZXIgdGV4dAorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIGNvbnN0IFVDaGFyKiAgICAgICAgICAgIHRleHQ7CisKK307
CisKK1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3VjbGVhbi5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2xlYW4uaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kOWExZTUzOTA1OGNkZTg1ZWZkMmFhODRjYjcwN2QzNzQxNzQyNWZlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2xlYW4uaApAQCAtMCwwICsxLDI1OCBA
QAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCwg
SW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgICAgICAgICAgICAgICBDb3Jwb3Jh
dGlvbiBhbmQgb3RoZXJzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqICAgZmlsZSBuYW1lOiAgdWNsZWFuLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQor
KiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBj
cmVhdGVkIG9uOiAyMDAxSnVseTA1CisqICAgY3JlYXRlZCBieTogR2VvcmdlIFJob3RlbgorKi8K
KworI2lmbmRlZiBfX1VDTEVBTl9IX18KKyNkZWZpbmUgX19VQ0xFQU5fSF9fCisKKyNpbmNsdWRl
ICJ1bmljb2RlL3V0eXBlcy5oIgorLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMgQVBJOiBJbml0
aWFsaXplIGFuZCBjbGVhbiB1cCBJQ1UKKyAqLworIAorLyoqCisgKiAgSW5pdGlhbGl6ZSBJQ1Uu
CisgKgorICogIFVzZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIG9wdGlvbmFsLiAgSXQgaXMgT0sgdG8g
c2ltcGx5IHVzZSBJQ1UKKyAqICBzZXJ2aWNlcyBhbmQgZnVuY3Rpb25zIHdpdGhvdXQgZmlyc3Qg
aGF2aW5nIGluaXRpYWxpemVkCisgKiAgSUNVIGJ5IGNhbGxpbmcgdV9pbml0KCkuCisgKgorICog
IHVfaW5pdCgpIHdpbGwgYXR0ZW1wdCB0byBsb2FkIHNvbWUgcGFydCBvZiBJQ1UncyBkYXRhLCBh
bmQgaXMKKyAqICB1c2VmdWwgYXMgYSB0ZXN0IGZvciBjb25maWd1cmF0aW9uIG9yIGluc3RhbGxh
dGlvbiBwcm9ibGVtcyB0aGF0CisgKiAgbGVhdmUgdGhlIElDVSBkYXRhIGluYWNjZXNzaWJsZS4g
IEEgc3VjY2Vzc2Z1bCBpbnZvY2F0aW9uIG9mIHVfaW5pdCgpCisgKiAgZG9lcyBub3QsIGhvd2V2
ZXIsIGd1YXJhbnRlZSB0aGF0IGFsbCBJQ1UgZGF0YSBpcyBhY2Nlc3NpYmxlLgorICoKKyAqICBN
dWx0aXBsZSBjYWxscyB0byB1X2luaXQoKSBjYXVzZSBubyBoYXJtLCBhc2lkZSBmcm9tIHRoZSBz
bWFsbCBhbW91bnQKKyAqICBvZiB0aW1lIHJlcXVpcmVkLgorICoKKyAqICBJbiBvbGQgdmVyc2lv
bnMgb2YgSUNVLCB1X2luaXQoKSB3YXMgcmVxdWlyZWQgaW4gbXVsdGktdGhyZWFkZWQgYXBwbGlj
YXRpb25zCisgKiAgdG8gZW5zdXJlIHRoZSB0aHJlYWQgc2FmZXR5IG9mIElDVS4gIHVfaW5pdCgp
IGlzIG5vIGxvbmdlciBuZWVkZWQgZm9yIHRoaXMgcHVycG9zZS4KKyAqCisgKiBAcGFyYW0gc3Rh
dHVzIEFuIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+TlVM
TDwvY29kZT4uCisgKiAgICBBbiBFcnJvciB3aWxsIGJlIHJldHVybmVkIGlmIHNvbWUgcmVxdWly
ZWQgcGFydCBvZiBJQ1UgZGF0YSBjYW4gbm90CisgKiAgICBiZSBsb2FkZWQgb3IgaW5pdGlhbGl6
ZWQuCisgKiAgICBUaGUgZnVuY3Rpb24gcmV0dXJucyBpbW1lZGlhdGVseSBpZiB0aGUgaW5wdXQg
ZXJyb3IgY29kZSBpbmRpY2F0ZXMgYQorICogICAgZmFpbHVyZSwgYXMgdXN1YWwuCisgKgorICog
QHN0YWJsZSBJQ1UgMi42CisgKi8gIAorVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIgCit1X2luaXQo
VUVycm9yQ29kZSAqc3RhdHVzKTsKKworI2lmbmRlZiBVX0hJREVfU1lTVEVNX0FQSQorLyoqCisg
KiBDbGVhbiB1cCB0aGUgc3lzdGVtIHJlc291cmNlcywgc3VjaCBhcyBhbGxvY2F0ZWQgbWVtb3J5
IG9yIG9wZW4gZmlsZXMsCisgKiB1c2VkIGluIGFsbCBJQ1UgbGlicmFyaWVzLiBUaGlzIHdpbGwg
ZnJlZS9kZWxldGUgYWxsIG1lbW9yeSBvd25lZCBieSB0aGUKKyAqIElDVSBsaWJyYXJpZXMsIGFu
ZCByZXR1cm4gdGhlbSB0byB0aGVpciBvcmlnaW5hbCBsb2FkIHN0YXRlLiBBbGwgb3BlbiBJQ1UK
KyAqIGl0ZW1zIChjb2xsYXRvcnMsIHJlc291cmNlIGJ1bmRsZXMsIGNvbnZlcnRlcnMsIGV0Yy4p
IG11c3QgYmUgY2xvc2VkIGJlZm9yZQorICogY2FsbGluZyB0aGlzIGZ1bmN0aW9uLCBvdGhlcndp
c2UgSUNVIG1heSBub3QgZnJlZSBpdHMgYWxsb2NhdGVkIG1lbW9yeQorICogKGUuZy4gY2xvc2Ug
eW91ciBjb252ZXJ0ZXJzIGFuZCByZXNvdXJjZSBidW5kbGVzIGJlZm9yZSBjYWxsaW5nIHRoaXMK
KyAqIGZ1bmN0aW9uKS4gR2VuZXJhbGx5LCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQg
b25jZSBqdXN0IGJlZm9yZQorICogYW4gYXBwbGljYXRpb24gZXhpdHMuIEZvciBhcHBsaWNhdGlv
bnMgdGhhdCBkeW5hbWljYWxseSBsb2FkIGFuZCB1bmxvYWQKKyAqIHRoZSBJQ1UgbGlicmFyaWVz
IChyZWxhdGl2ZWx5IHVuY29tbW9uKSwgdV9jbGVhbnVwKCkgc2hvdWxkIGJlIGNhbGxlZAorICog
anVzdCBiZWZvcmUgdGhlIGxpYnJhcnkgdW5sb2FkLgorICogPHA+CisgKiB1X2NsZWFudXAoKSBh
bHNvIGNsZWFycyBhbnkgSUNVIGhlYXAgZnVuY3Rpb25zLCBtdXRleCBmdW5jdGlvbnMgb3IKKyAq
IHRyYWNlIGZ1bmN0aW9ucyB0aGF0IG1heSBoYXZlIGJlZW4gc2V0IGZvciB0aGUgcHJvY2Vzcy4g
IAorICogVGhpcyBoYXMgdGhlIGVmZmVjdCBvZiByZXN0b3JpbmcgSUNVIHRvIGl0cyBpbml0aWFs
IGNvbmRpdGlvbiwgYmVmb3JlCisgKiBhbnkgb2YgdGhlc2Ugb3ZlcnJpZGUgZnVuY3Rpb25zIHdl
cmUgaW5zdGFsbGVkLiAgUmVmZXIgdG8KKyAqIHVfc2V0TWVtb3J5RnVuY3Rpb25zKCksIHVfc2V0
TXV0ZXhGdW5jdGlvbnMgYW5kIAorICogdXRyYWNlX3NldEZ1bmN0aW9ucygpLiAgSWYgSUNVIGlz
IHRvIGJlIHJlaW5pdGlhbGl6ZWQgYWZ0ZXIgYWZ0ZXIKKyAqIGNhbGxpbmcgdV9jbGVhbnVwKCks
IHRoZXNlIHJ1bnRpbWUgb3ZlcnJpZGUgZnVuY3Rpb25zIHdpbGwgbmVlZCB0bworICogYmUgc2V0
IHVwIGFnYWluIGlmIHRoZXkgYXJlIHN0aWxsIHJlcXVpcmVkLgorICogPHA+CisgKiB1X2NsZWFu
dXAoKSBpcyBub3QgdGhyZWFkIHNhZmUuICBBbGwgb3RoZXIgdGhyZWFkcyBzaG91bGQgc3RvcCB1
c2luZyBJQ1UKKyAqIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCisgKiA8cD4KKyAqIEFu
eSBvcGVuIElDVSBpdGVtcyB3aWxsIGJlIGxlZnQgaW4gYW4gdW5kZWZpbmVkIHN0YXRlIGJ5IHVf
Y2xlYW51cCgpLAorICogYW5kIGFueSBzdWJzZXF1ZW50IGF0dGVtcHQgdG8gdXNlIHN1Y2ggYW4g
aXRlbSB3aWxsIGdpdmUgdW5wcmVkaWN0YWJsZQorICogcmVzdWx0cy4KKyAqIDxwPgorICogQWZ0
ZXIgY2FsbGluZyB1X2NsZWFudXAoKSwgYW4gYXBwbGljYXRpb24gbWF5IGNvbnRpbnVlIHRvIHVz
ZSBJQ1UgYnkKKyAqIGNhbGxpbmcgdV9pbml0KCkuICBBbiBhcHBsaWNhdGlvbiBtdXN0IGludm9r
ZSB1X2luaXQoKSBmaXJzdCBmcm9tIG9uZSBzaW5nbGUKKyAqIHRocmVhZCBiZWZvcmUgYWxsb3dp
bmcgb3RoZXIgdGhyZWFkcyBjYWxsIHVfaW5pdCgpLiAgQWxsIHRocmVhZHMgZXhpc3RpbmcKKyAq
IGF0IHRoZSB0aW1lIG9mIHRoZSBmaXJzdCB0aHJlYWQncyBjYWxsIHRvIHVfaW5pdCgpIG11c3Qg
YWxzbyBjYWxsCisgKiB1X2luaXQoKSB0aGVtc2VsdmVzIGJlZm9yZSBjb250aW51aW5nIHdpdGgg
b3RoZXIgSUNVIG9wZXJhdGlvbnMuICAKKyAqIDxwPgorICogVGhlIHVzZSBvZiB1X2NsZWFudXAo
KSBqdXN0IGJlZm9yZSBhbiBhcHBsaWNhdGlvbiB0ZXJtaW5hdGVzIGlzIG9wdGlvbmFsLAorICog
YnV0IGl0IHNob3VsZCBiZSBjYWxsZWQgb25seSBvbmNlIGZvciBwZXJmb3JtYW5jZSByZWFzb25z
LiBUaGUgcHJpbWFyeQorICogYmVuZWZpdCBpcyB0byBlbGltaW5hdGUgcmVwb3J0cyBvZiBtZW1v
cnkgb3IgcmVzb3VyY2UgbGVha3Mgb3JpZ2luYXRpbmcKKyAqIGluIElDVSBjb2RlIGZyb20gdGhl
IHJlc3VsdHMgZ2VuZXJhdGVkIGJ5IGhlYXAgYW5hbHlzaXMgdG9vbHMuCisgKiA8cD4KKyAqIDxz
dHJvbmc+VXNlIHRoaXMgZnVuY3Rpb24gd2l0aCBncmVhdCBjYXJlITwvc3Ryb25nPgorICogPC9w
PgorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICogQHN5c3RlbQorICovCitVX1NUQUJMRSB2b2lk
IFVfRVhQT1JUMiAKK3VfY2xlYW51cCh2b2lkKTsKKworCisvKioKKyAgKiAgUG9pbnRlciB0eXBl
IGZvciBhIHVzZXIgc3VwcGxpZWQgbWVtb3J5IGFsbG9jYXRpb24gZnVuY3Rpb24uCisgICogIEBw
YXJhbSBjb250ZXh0IHVzZXIgc3VwcGxpZWQgdmFsdWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3Nl
dE1lbW9yeUZ1bmN0aW9ucygpLgorICAqICBAcGFyYW0gc2l6ZSAgICBUaGUgbnVtYmVyIG9mIGJ5
dGVzIHRvIGJlIGFsbG9jYXRlZAorICAqICBAcmV0dXJuICAgICAgICBQb2ludGVyIHRvIHRoZSBu
ZXdseSBhbGxvY2F0ZWQgbWVtb3J5LCBvciBOVUxMIGlmIHRoZSBhbGxvY2F0aW9uIGZhaWxlZC4K
KyAgKiAgQHN0YWJsZSBJQ1UgMi44CisgICogIEBzeXN0ZW0KKyAgKi8KK3R5cGVkZWYgdm9pZCAq
VV9DQUxMQ09OViBVTWVtQWxsb2NGbihjb25zdCB2b2lkICpjb250ZXh0LCBzaXplX3Qgc2l6ZSk7
CisvKioKKyAgKiAgUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3VwcGxpZWQgbWVtb3J5IHJlLWFs
bG9jYXRpb24gZnVuY3Rpb24uCisgICogIEBwYXJhbSBjb250ZXh0IHVzZXIgc3VwcGxpZWQgdmFs
dWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3NldE1lbW9yeUZ1bmN0aW9ucygpLgorICAqICBAcGFy
YW0gc2l6ZSAgICBUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGJlIGFsbG9jYXRlZAorICAqICBAcmV0
dXJuICAgICAgICBQb2ludGVyIHRvIHRoZSBuZXdseSBhbGxvY2F0ZWQgbWVtb3J5LCBvciBOVUxM
IGlmIHRoZSBhbGxvY2F0aW9uIGZhaWxlZC4KKyAgKiAgQHN0YWJsZSBJQ1UgMi44CisgICogIEBz
eXN0ZW0KKyAgKi8KK3R5cGVkZWYgdm9pZCAqVV9DQUxMQ09OViBVTWVtUmVhbGxvY0ZuKGNvbnN0
IHZvaWQgKmNvbnRleHQsIHZvaWQgKm1lbSwgc2l6ZV90IHNpemUpOworLyoqCisgICogIFBvaW50
ZXIgdHlwZSBmb3IgYSB1c2VyIHN1cHBsaWVkIG1lbW9yeSBmcmVlICBmdW5jdGlvbi4gIEJlaGF2
aW9yIHNob3VsZCBiZQorICAqICBzaW1pbGFyIHRoZSBzdGFuZGFyZCBDIGxpYnJhcnkgZnJlZSgp
LgorICAqICBAcGFyYW0gY29udGV4dCB1c2VyIHN1cHBsaWVkIHZhbHVlLCBvYnRhaW5lZCBmcm9t
IGZyb20gdV9zZXRNZW1vcnlGdW5jdGlvbnMoKS4KKyAgKiAgQHBhcmFtIG1lbSAgICAgUG9pbnRl
ciB0byB0aGUgbWVtb3J5IGJsb2NrIHRvIGJlIHJlc2l6ZWQKKyAgKiAgQHBhcmFtIHNpemUgICAg
VGhlIG5ldyBzaXplIGZvciB0aGUgYmxvY2sKKyAgKiAgQHJldHVybiAgICAgICAgUG9pbnRlciB0
byB0aGUgcmVzaXplZCBtZW1vcnkgYmxvY2ssIG9yIE5VTEwgaWYgdGhlIHJlc2l6aW5nIGZhaWxl
ZC4KKyAgKiAgQHN0YWJsZSBJQ1UgMi44CisgICogIEBzeXN0ZW0KKyAgKi8KK3R5cGVkZWYgdm9p
ZCAgVV9DQUxMQ09OViBVTWVtRnJlZUZuIChjb25zdCB2b2lkICpjb250ZXh0LCB2b2lkICptZW0p
OworCisvKioKKyAqICBTZXQgdGhlIGZ1bmN0aW9ucyB0aGF0IElDVSB3aWxsIHVzZSBmb3IgbWVt
b3J5IGFsbG9jYXRpb24uCisgKiAgVXNlIG9mIHRoaXMgZnVuY3Rpb24gaXMgb3B0aW9uYWw7IGJ5
IGRlZmF1bHQgKHdpdGhvdXQgdGhpcyBmdW5jdGlvbiksIElDVSB3aWxsCisgKiAgdXNlIHRoZSBz
dGFuZGFyZCBDIGxpYnJhcnkgbWFsbG9jKCkgYW5kIGZyZWUoKSBmdW5jdGlvbnMuCisgKiAgVGhp
cyBmdW5jdGlvbiBjYW4gb25seSBiZSB1c2VkIHdoZW4gSUNVIGlzIGluIGFuIGluaXRpYWwsIHVu
dXNlZCBzdGF0ZSwgYmVmb3JlCisgKiAgdV9pbml0KCkgaGFzIGJlZW4gY2FsbGVkLgorICogIEBw
YXJhbSBjb250ZXh0IFRoaXMgcG9pbnRlciB2YWx1ZSB3aWxsIGJlIHNhdmVkLCBhbmQgdGhlbiAo
bGF0ZXIpIHBhc3NlZCBhcworICogICAgICAgICAgICAgICAgIGEgcGFyYW1ldGVyIHRvIHRoZSBt
ZW1vcnkgZnVuY3Rpb25zIGVhY2ggdGltZSB0aGV5CisgKiAgICAgICAgICAgICAgICAgYXJlIGNh
bGxlZC4KKyAqICBAcGFyYW0gYSAgICAgICBQb2ludGVyIHRvIGEgdXNlci1zdXBwbGllZCBtYWxs
b2MgZnVuY3Rpb24uCisgKiAgQHBhcmFtIHIgICAgICAgUG9pbnRlciB0byBhIHVzZXItc3VwcGxp
ZWQgcmVhbGxvYyBmdW5jdGlvbi4KKyAqICBAcGFyYW0gZiAgICAgICBQb2ludGVyIHRvIGEgdXNl
ci1zdXBwbGllZCBmcmVlIGZ1bmN0aW9uLgorICogIEBwYXJhbSBzdGF0dXMgIFJlY2VpdmVzIGVy
cm9yIHZhbHVlcy4KKyAqICBAc3RhYmxlIElDVSAyLjgKKyAqICBAc3lzdGVtCisgKi8gIAorVV9T
VEFCTEUgdm9pZCBVX0VYUE9SVDIgCit1X3NldE1lbW9yeUZ1bmN0aW9ucyhjb25zdCB2b2lkICpj
b250ZXh0LCBVTWVtQWxsb2NGbiAqYSwgVU1lbVJlYWxsb2NGbiAqciwgVU1lbUZyZWVGbiAqZiwg
CisgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnN0YXR1cyk7CisKKworI2lmbmRlZiBV
X0hJREVfREVQUkVDQVRFRF9BUEkKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBE
ZXByZWNhdGVkIEZ1bmN0aW9ucworICoKKyAqICAgIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGZv
ciB1c2VyIHN1cHBsaWVkIG11dGV4ZXMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgKiAgICBB
bnkgYXR0ZW1wdCB0byB1c2UgdGhlbSB3aWxsIHJldHVybiBhIFVfVU5TVVBQT1JURURfRVJST1Iu
CisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKgorICAqIEFuIG9wYXF1ZSBw
b2ludGVyIHR5cGUgdGhhdCByZXByZXNlbnRzIGFuIElDVSBtdXRleC4KKyAgKiBGb3IgdXNlci1p
bXBsZW1lbnRlZCBtdXRleGVzLCB0aGUgdmFsdWUgd2lsbCB0eXBpY2FsbHkgcG9pbnQgdG8gYQor
ICAqICBzdHJ1Y3Qgb3Igb2JqZWN0IHRoYXQgaW1wbGVtZW50cyB0aGUgbXV0ZXguCisgICogQGRl
cHJlY2F0ZWQgSUNVIDUyLiBUaGlzIHR5cGUgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KKyAgKiBA
c3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQgKlVNVFg7CisKKy8qKgorICAqICBGdW5jdGlvbiBQ
b2ludGVyIHR5cGUgZm9yIGEgdXNlciBzdXBwbGllZCBtdXRleCBpbml0aWFsaXphdGlvbiBmdW5j
dGlvbi4KKyAgKiAgVGhlIHVzZXItc3VwcGxpZWQgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgYnkg
SUNVIHdoZW5ldmVyIElDVSBuZWVkcyB0byBjcmVhdGUgYQorICAqICBuZXcgbXV0ZXguICBUaGUg
ZnVuY3Rpb24gaW1wbGVtZW50YXRpb24gc2hvdWxkIGNyZWF0ZSBhIG11dGV4LCBhbmQgc3RvcmUg
YSBwb2ludGVyCisgICogIHRvIHNvbWV0aGluZyB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhl
IG11dGV4IGludG8gdGhlIFVNVFggdGhhdCBpcyBzdXBwbGllZAorICAqICBhcyBhIHBhcmFtdGVy
LgorICAqICBAcGFyYW0gY29udGV4dCB1c2VyIHN1cHBsaWVkIHZhbHVlLCBvYnRhaW5lZCBmcm9t
IGZyb20gdV9zZXRNdXRleEZ1bmN0aW9ucygpLgorICAqICBAcGFyYW0gbXV0ZXggICBSZWNlaXZl
cyBhIHBvaW50ZXIgdGhhdCBpZGVudGlmaWVzIHRoZSBuZXcgbXV0ZXguCisgICogICAgICAgICAg
ICAgICAgIFRoZSBtdXRleCBpbml0IGZ1bmN0aW9uIG11c3Qgc2V0IHRoZSBVTVRYIHRvIGEgbm9u
LW51bGwgdmFsdWUuICAgCisgICogICAgICAgICAgICAgICAgIFN1YnNlcXVlbnQgY2FsbHMgYnkg
SUNVIHRvIGxvY2ssIHVubG9jaywgb3IgZGVzdHJveSBhIG11dGV4IHdpbGwgCisgICogICAgICAg
ICAgICAgICAgIGlkZW50aWZ5IHRoZSBtdXRleCBieSB0aGUgVU1UWCB2YWx1ZS4KKyAgKiAgQHBh
cmFtIHN0YXR1cyAgRXJyb3Igc3RhdHVzLiAgUmVwb3J0IGVycm9ycyBiYWNrIHRvIElDVSBieSBz
ZXR0aW5nIHRoaXMgdmFyaWFibGUKKyAgKiAgICAgICAgICAgICAgICAgd2l0aCBhbiBlcnJvciBj
b2RlLgorICAqICBAZGVwcmVjYXRlZCBJQ1UgNTIuIFRoaXMgZnVuY3Rpb24gaXMgbm8gbG9uZ2Vy
IHN1cHBvcnRlZC4KKyAgKiAgQHN5c3RlbQorICAqLwordHlwZWRlZiB2b2lkIFVfQ0FMTENPTlYg
VU10eEluaXRGbiAoY29uc3Qgdm9pZCAqY29udGV4dCwgVU1UWCAgKm11dGV4LCBVRXJyb3JDb2Rl
KiBzdGF0dXMpOworCisKKy8qKgorICAqICBGdW5jdGlvbiBQb2ludGVyIHR5cGUgZm9yIGEgdXNl
ciBzdXBwbGllZCBtdXRleCBmdW5jdGlvbnMuCisgICogIE9uZSBvZiB0aGUgIHVzZXItc3VwcGxp
ZWQgZnVuY3Rpb25zIHdpdGggdGhpcyBzaWduYXR1cmUgd2lsbCBiZSBjYWxsZWQgYnkgSUNVCisg
ICogIHdoZW5ldmVyIElDVSBuZWVkcyB0byBsb2NrLCB1bmxvY2ssIG9yIGRlc3Ryb3kgYSBtdXRl
eC4KKyAgKiAgQHBhcmFtIGNvbnRleHQgdXNlciBzdXBwbGllZCB2YWx1ZSwgb2J0YWluZWQgZnJv
bSBmcm9tIHVfc2V0TXV0ZXhGdW5jdGlvbnMoKS4KKyAgKiAgQHBhcmFtIG11dGV4ICAgc3BlY2lm
eSB0aGUgbXV0ZXggb24gd2hpY2ggdG8gb3BlcmF0ZS4KKyAgKiAgQGRlcHJlY2F0ZWQgSUNVIDUy
LiBUaGlzIGZ1bmN0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICogIEBzeXN0ZW0KKyAg
Ki8KK3R5cGVkZWYgdm9pZCBVX0NBTExDT05WIFVNdHhGbiAgIChjb25zdCB2b2lkICpjb250ZXh0
LCBVTVRYICAqbXV0ZXgpOworCisKKy8qKgorICAqICBTZXQgdGhlIGZ1bmN0aW9ucyB0aGF0IElD
VSB3aWxsIHVzZSBmb3IgbXV0ZXggb3BlcmF0aW9ucworICAqICBVc2Ugb2YgdGhpcyBmdW5jdGlv
biBpcyBvcHRpb25hbDsgYnkgZGVmYXVsdCAod2l0aG91dCB0aGlzIGZ1bmN0aW9uKSwgSUNVIHdp
bGwKKyAgKiAgZGlyZWN0bHkgYWNjZXNzIHN5c3RlbSBmdW5jdGlvbnMgZm9yIG11dGV4IG9wZXJh
dGlvbnMKKyAgKiAgVGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSB1c2VkIHdoZW4gSUNVIGlzIGlu
IGFuIGluaXRpYWwsIHVudXNlZCBzdGF0ZSwgYmVmb3JlCisgICogIHVfaW5pdCgpIGhhcyBiZWVu
IGNhbGxlZC4KKyAgKiAgQHBhcmFtIGNvbnRleHQgVGhpcyBwb2ludGVyIHZhbHVlIHdpbGwgYmUg
c2F2ZWQsIGFuZCB0aGVuIChsYXRlcikgcGFzc2VkIGFzCisgICogICAgICAgICAgICAgICAgIGEg
cGFyYW1ldGVyIHRvIHRoZSB1c2VyLXN1cHBsaWVkIG11dGV4IGZ1bmN0aW9ucyBlYWNoIHRpbWUg
dGhleQorICAqICAgICAgICAgICAgICAgICBhcmUgY2FsbGVkLiAKKyAgKiAgQHBhcmFtIGluaXQg
ICAgUG9pbnRlciB0byBhIG11dGV4IGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLiAgTXVzdCBiZSBu
b24tbnVsbC4KKyAgKiAgQHBhcmFtIGRlc3Ryb3kgUG9pbnRlciB0byB0aGUgbXV0ZXggZGVzdHJv
eSBmdW5jdGlvbi4gIE11c3QgYmUgbm9uLW51bGwuCisgICogIEBwYXJhbSBsb2NrICAgIHBvaW50
ZXIgdG8gdGhlIG11dGV4IGxvY2sgZnVuY3Rpb24uICBNdXN0IGJlIG5vbi1udWxsLgorICAqICBA
cGFyYW0gdW5sb2NrICBQb2ludGVyIHRvIHRoZSBtdXRleCB1bmxvY2sgZnVuY3Rpb24uICBNdXN0
IGJlIG5vbi1udWxsLgorICAqICBAcGFyYW0gc3RhdHVzICBSZWNlaXZlcyBlcnJvciB2YWx1ZXMu
CisgICogIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyBmdW5jdGlvbiBpcyBubyBsb25nZXIgc3Vw
cG9ydGVkLgorICAqICBAc3lzdGVtCisgICovICAKK1VfREVQUkVDQVRFRCB2b2lkIFVfRVhQT1JU
MiAKK3Vfc2V0TXV0ZXhGdW5jdGlvbnMoY29uc3Qgdm9pZCAqY29udGV4dCwgVU10eEluaXRGbiAq
aW5pdCwgVU10eEZuICpkZXN0cm95LCBVTXR4Rm4gKmxvY2ssIFVNdHhGbiAqdW5sb2NrLAorICAg
ICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOworCisKKy8qKgorICAqICBQb2lu
dGVyIHR5cGUgZm9yIGEgdXNlciBzdXBwbGllZCBhdG9taWMgaW5jcmVtZW50IG9yIGRlY3JlbWVu
dCBmdW5jdGlvbi4KKyAgKiAgQHBhcmFtIGNvbnRleHQgdXNlciBzdXBwbGllZCB2YWx1ZSwgb2J0
YWluZWQgZnJvbSBmcm9tIHVfc2V0QXRvbWljSW5jRGVjRnVuY3Rpb25zKCkuCisgICogIEBwYXJh
bSBwICAgUG9pbnRlciB0byBhIDMyIGJpdCBpbnQgdG8gYmUgaW5jcmVtZW50ZWQgb3IgZGVjcmVt
ZW50ZWQKKyAgKiAgQHJldHVybiAgICBUaGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIGFmdGVyIHRo
ZSBpbmMgb3IgZGVjIG9wZXJhdGlvbi4KKyAgKiAgQGRlcHJlY2F0ZWQgSUNVIDUyLiBUaGlzIGZ1
bmN0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICogIEBzeXN0ZW0KKyAgKi8KK3R5cGVk
ZWYgaW50MzJfdCBVX0NBTExDT05WIFVNdHhBdG9taWNGbihjb25zdCB2b2lkICpjb250ZXh0LCBp
bnQzMl90ICpwKTsKKworLyoqCisgKiAgU2V0IHRoZSBmdW5jdGlvbnMgdGhhdCBJQ1Ugd2lsbCB1
c2UgZm9yIGF0b21pYyBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBvZiBpbnQzMl90IHZhbHVlcy4K
KyAqICBVc2Ugb2YgdGhpcyBmdW5jdGlvbiBpcyBvcHRpb25hbDsgYnkgZGVmYXVsdCAod2l0aG91
dCB0aGlzIGZ1bmN0aW9uKSwgSUNVIHdpbGwKKyAqICB1c2UgaXRzIG93biBpbnRlcm5hbCBpbXBs
ZW1lbnRhdGlvbiBvZiBhdG9taWMgaW5jcmVtZW50L2RlY3JlbWVudC4KKyAqICBUaGlzIGZ1bmN0
aW9uIGNhbiBvbmx5IGJlIHVzZWQgd2hlbiBJQ1UgaXMgaW4gYW4gaW5pdGlhbCwgdW51c2VkIHN0
YXRlLCBiZWZvcmUKKyAqICB1X2luaXQoKSBoYXMgYmVlbiBjYWxsZWQuCisgKiAgQHBhcmFtIGNv
bnRleHQgVGhpcyBwb2ludGVyIHZhbHVlIHdpbGwgYmUgc2F2ZWQsIGFuZCB0aGVuIChsYXRlcikg
cGFzc2VkIGFzCisgKiAgICAgICAgICAgICAgICAgYSBwYXJhbWV0ZXIgdG8gdGhlIGluY3JlbWVu
dCBhbmQgZGVjcmVtZW50IGZ1bmN0aW9ucyBlYWNoIHRpbWUgdGhleQorICogICAgICAgICAgICAg
ICAgIGFyZSBjYWxsZWQuICBUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5IGJlIGNhbGxlZCAKKyAqICBA
cGFyYW0gaW5jICAgICBQb2ludGVyIHRvIGEgZnVuY3Rpb24gdG8gZG8gYW4gYXRvbWljIGluY3Jl
bWVudCBvcGVyYXRpb24uICBNdXN0IGJlIG5vbi1udWxsLgorICogIEBwYXJhbSBkZWMgICAgIFBv
aW50ZXIgdG8gYSBmdW5jdGlvbiB0byBkbyBhbiBhdG9taWMgZGVjcmVtZW50IG9wZXJhdGlvbi4g
IE11c3QgYmUgbm9uLW51bGwuCisgKiAgQHBhcmFtIHN0YXR1cyAgUmVjZWl2ZXMgZXJyb3IgdmFs
dWVzLgorICogIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyBmdW5jdGlvbiBpcyBubyBsb25nZXIg
c3VwcG9ydGVkLgorICogIEBzeXN0ZW0KKyAqLyAgCitVX0RFUFJFQ0FURUQgdm9pZCBVX0VYUE9S
VDIgCit1X3NldEF0b21pY0luY0RlY0Z1bmN0aW9ucyhjb25zdCB2b2lkICpjb250ZXh0LCBVTXR4
QXRvbWljRm4gKmluYywgVU10eEF0b21pY0ZuICpkZWMsCisgICAgICAgICAgICAgICAgICAgIFVF
cnJvckNvZGUgKnN0YXR1cyk7CisKKyNlbmRpZiAgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICov
CisjZW5kaWYgIC8qIFVfSElERV9TWVNURU1fQVBJICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9pY3UvdW5pY29kZS91ZGF0YS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91
ZGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI5ZTQ2NjMwZDUzOThkODI3MzhkMWQ2MWZmYzRkMmM5MTRlOGM2
OGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VkYXRhLmgKQEAg
LTAsMCArMSw0MzAgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmln
aHQgKEMpIDE5OTktMjAxNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENv
cnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdWRhdGEuaAorKiAgIGVuY29kaW5nOiAgIFVT
LUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAor
KgorKiAgIGNyZWF0ZWQgb246IDE5OTlvY3QyNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBT
Y2hlcmVyCisqLworCisjaWZuZGVmIF9fVURBVEFfSF9fCisjZGVmaW5lIF9fVURBVEFfSF9fCisK
KyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9jYWxwb2lu
dGVyLmgiCisKK1VfQ0RFQ0xfQkVHSU4KKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMgQVBJ
OiBEYXRhIGxvYWRpbmcgaW50ZXJmYWNlCisgKgorICogPGgyPkluZm9ybWF0aW9uIGFib3V0IGRh
dGEgbG9hZGluZyBpbnRlcmZhY2U8L2gyPgorICoKKyAqIFRoaXMgQVBJIGlzIHVzZWQgdG8gZmlu
ZCBhbmQgZWZmaWNpZW50bHkgbG9hZCBkYXRhIGZvciBJQ1UgYW5kIGFwcGxpY2F0aW9ucworICog
dXNpbmcgSUNVLiBJdCBwcm92aWRlcyBhbiBhYnN0cmFjdCBpbnRlcmZhY2UgdGhhdCBzcGVjaWZp
ZXMgYSBkYXRhIHR5cGUgYW5kCisgKiBuYW1lIHRvIGZpbmQgYW5kIGxvYWQgdGhlIGRhdGEuIE5v
cm1hbGx5IHRoaXMgQVBJIGlzIHVzZWQgYnkgb3RoZXIgSUNVIEFQSXMKKyAqIHRvIGxvYWQgcmVx
dWlyZWQgZGF0YSBvdXQgb2YgdGhlIElDVSBkYXRhIGxpYnJhcnksIGJ1dCBpdCBjYW4gYmUgdXNl
ZCB0bworICogbG9hZCBkYXRhIG91dCBvZiBvdGhlciBwbGFjZXMuCisgKgorICogU2VlIHRoZSBV
c2VyIEd1aWRlIERhdGEgTWFuYWdlbWVudCBjaGFwdGVyLgorICovCisgCisjaWZuZGVmIFVfSElE
RV9JTlRFUk5BTF9BUEkKKy8qKgorICogQ2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgcGFja2Fn
ZSBuYW1lcyBmcm9tIHRyZWUgbmFtZXMgCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisjZGVm
aW5lIFVfVFJFRV9TRVBBUkFUT1IgJy0nCisKKy8qKgorICogU3RyaW5nIHVzZWQgdG8gc2VwYXJh
dGUgcGFja2FnZSBuYW1lcyBmcm9tIHRyZWUgbmFtZXMgCisgKiBAaW50ZXJuYWwgSUNVIDMuMAor
ICovCisjZGVmaW5lIFVfVFJFRV9TRVBBUkFUT1JfU1RSSU5HICItIgorCisvKioKKyAqIENoYXJh
Y3RlciB1c2VkIHRvIHNlcGFyYXRlIHBhcnRzIG9mIGVudHJ5IG5hbWVzCisgKiBAaW50ZXJuYWwg
SUNVIDMuMAorICovCisjZGVmaW5lIFVfVFJFRV9FTlRSWV9TRVBfQ0hBUiAnLycKKworLyoqCisg
KiBTdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSBwYXJ0cyBvZiBlbnRyeSBuYW1lcworICogQGludGVy
bmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfRU5UUllfU0VQX1NUUklORyAiLyIKKwor
LyoqCisgKiBBbGlhcyBmb3Igc3RhbmRhcmQgSUNVIGRhdGEgCisgKiBAaW50ZXJuYWwgSUNVIDMu
MAorICovCisjZGVmaW5lIFVfSUNVREFUQV9BTElBUyAiSUNVREFUQSIKKworI2VuZGlmIC8qIFVf
SElERV9JTlRFUk5BTF9BUEkgKi8KKworLyoqCisgKiBVRGF0YUluZm8gY29udGFpbnMgdGhlIHBy
b3BlcnRpZXMgYWJvdXQgdGhlIHJlcXVlc3RlZCBkYXRhLgorICogVGhpcyBpcyBtZXRhIGRhdGEu
CisgKgorICogPHA+VGhpcyBzdHJ1Y3R1cmUgbWF5IGdyb3cgaW4gdGhlIGZ1dHVyZSwgaW5kaWNh
dGVkIGJ5IHRoZQorICogPGNvZGU+c2l6ZTwvY29kZT4gZmllbGQuPC9wPgorICoKKyAqIDxwPklD
VSBkYXRhIG11c3QgYmUgYXQgbGVhc3QgOC1hbGlnbmVkLCBhbmQgc2hvdWxkIGJlIDE2LWFsaWdu
ZWQuCisgKiBUaGUgVURhdGFJbmZvIHN0cnVjdCBiZWdpbnMgNCBieXRlcyBhZnRlciB0aGUgc3Rh
cnQgb2YgdGhlIGRhdGEgaXRlbSwKKyAqIHNvIGl0IGlzIDQtYWxpZ25lZC4KKyAqCisgKiA8cD5U
aGUgcGxhdGZvcm0gZGF0YSBwcm9wZXJ0eSBmaWVsZHMgaGVscCBkZXRlcm1pbmUgaWYgYSBkYXRh
CisgKiBmaWxlIGNhbiBiZSBlZmZpY2llbnRseSB1c2VkIG9uIGEgZ2l2ZW4gbWFjaGluZS4KKyAq
IFRoZSBwYXJ0aWN1bGFyIGZpZWxkcyBhcmUgb2YgaW1wb3J0YW5jZSBvbmx5IGlmIHRoZSBkYXRh
CisgKiBpcyBhZmZlY3RlZCBieSB0aGUgcHJvcGVydGllcyAtIGlmIHRoZXJlIGlzIGludGVnZXIg
ZGF0YQorICogd2l0aCB3b3JkIHNpemVzID4gMSBieXRlLCBjaGFyKiB0ZXh0LCBvciBVQ2hhciog
dGV4dC48L3A+CisgKgorICogPHA+VGhlIGltcGxlbWVudGF0aW9uIGZvciB0aGUgPGNvZGU+dWRh
dGFfb3BlbltDaG9pY2VdKCk8L2NvZGU+CisgKiBmdW5jdGlvbnMgbWF5IHJlamVjdCBkYXRhIGJh
c2VkIG9uIHRoZSB2YWx1ZSBpbiA8Y29kZT5pc0JpZ0VuZGlhbjwvY29kZT4uCisgKiBObyBvdGhl
ciBmaWVsZCBpcyB1c2VkIGJ5IHRoZSA8Y29kZT51ZGF0YTwvY29kZT4gQVBJIGltcGxlbWVudGF0
aW9uLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+ZGF0YUZvcm1hdDwvY29kZT4gbWF5IGJlIHVz
ZWQgdG8gaWRlbnRpZnkKKyAqIHRoZSBraW5kIG9mIGRhdGEsIGUuZy4gYSBjb252ZXJ0ZXIgdGFi
bGUuPC9wPgorICoKKyAqIDxwPlRoZSA8Y29kZT5mb3JtYXRWZXJzaW9uPC9jb2RlPiBmaWVsZCBz
aG91bGQgYmUgdXNlZCB0bworICogbWFrZSBzdXJlIHRoYXQgdGhlIGZvcm1hdCBjYW4gYmUgaW50
ZXJwcmV0ZWQuCisgKiBJdCBtYXkgYmUgYSBnb29kIGlkZWEgdG8gY2hlY2sgb25seSBmb3IgdGhl
IG9uZSBvciB0d28gaGlnaGVzdAorICogb2YgdGhlIHZlcnNpb24gZWxlbWVudHMgdG8gYWxsb3cg
dGhlIGRhdGEgbWVtb3J5IHRvCisgKiBnZXQgbW9yZSBvciBzb21ld2hhdCByZWFycmFuZ2VkIGNv
bnRlbnRzLCBmb3IgYXMgbG9uZworICogYXMgdGhlIHVzaW5nIGNvZGUgY2FuIHN0aWxsIGludGVy
cHJldCB0aGUgb2xkZXIgY29udGVudHMuPC9wPgorICoKKyAqIDxwPlRoZSA8Y29kZT5kYXRhVmVy
c2lvbjwvY29kZT4gZmllbGQgaXMgaW50ZW5kZWQgdG8gYmUgYQorICogY29tbW9uIHBsYWNlIHRv
IHN0b3JlIHRoZSBzb3VyY2UgdmVyc2lvbiBvZiB0aGUgZGF0YTsKKyAqIGZvciBkYXRhIGZyb20g
dGhlIFVuaWNvZGUgY2hhcmFjdGVyIGRhdGFiYXNlLCB0aGlzIGNvdWxkCisgKiByZWZsZWN0IHRo
ZSBVbmljb2RlIHZlcnNpb24uPC9wPgorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCit0eXBl
ZGVmIHN0cnVjdCB7CisgICAgLyoqIHNpemVvZihVRGF0YUluZm8pCisgICAgICogIEBzdGFibGUg
SUNVIDIuMCAqLworICAgIHVpbnQxNl90IHNpemU7CisKKyAgICAvKiogdW51c2VkLCBzZXQgdG8g
MCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50MTZfdCByZXNlcnZlZFdvcmQ7
CisKKyAgICAvKiBwbGF0Zm9ybSBkYXRhIHByb3BlcnRpZXMgKi8KKyAgICAvKiogMCBmb3IgbGl0
dGxlLWVuZGlhbiBtYWNoaW5lLCAxIGZvciBiaWctZW5kaWFuCisgICAgICogIEBzdGFibGUgSUNV
IDIuMCAqLworICAgIHVpbnQ4X3QgaXNCaWdFbmRpYW47CisKKyAgICAvKiogc2VlIFVfQ0hBUlNF
VF9GQU1JTFkgdmFsdWVzIGluIHV0eXBlcy5oIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLwor
ICAgIHVpbnQ4X3QgY2hhcnNldEZhbWlseTsKKworICAgIC8qKiBzaXplb2YoVUNoYXIpLCBvbmUg
b2YgeyAxLCAyLCA0IH0gCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBz
aXplb2ZVQ2hhcjsKKworICAgIC8qKiB1bnVzZWQsIHNldCB0byAwIAorICAgICAqICBAc3RhYmxl
IElDVSAyLjAqLworICAgIHVpbnQ4X3QgcmVzZXJ2ZWRCeXRlOworCisgICAgLyoqIGRhdGEgZm9y
bWF0IGlkZW50aWZpZXIgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBk
YXRhRm9ybWF0WzRdOworCisgICAgLyoqIHZlcnNpb25zOiBbMF0gbWFqb3IgWzFdIG1pbm9yIFsy
XSBtaWxsaSBbM10gbWljcm8gCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhf
dCBmb3JtYXRWZXJzaW9uWzRdOworCisgICAgLyoqIHZlcnNpb25zOiBbMF0gbWFqb3IgWzFdIG1p
bm9yIFsyXSBtaWxsaSBbM10gbWljcm8gCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAg
dWludDhfdCBkYXRhVmVyc2lvbls0XTsKK30gVURhdGFJbmZvOworCisvKiBBUEkgZm9yIHJlYWRp
bmcgZGF0YSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSovCisKKy8qKgorICogRm9yd2FyZCBkZWNsYXJhdGlvbiBvZiB0aGUgZGF0YSBtZW1vcnkg
dHlwZS4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIHN0cnVjdCBVRGF0YU1lbW9y
eSBVRGF0YU1lbW9yeTsKKworLyoqCisgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdWRhdGFfb3Bl
bkNob2ljZSgpLgorICogQHBhcmFtIGNvbnRleHQgcGFyYW1ldGVyIHBhc3NlZCBpbnRvIDxjb2Rl
PnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSBvZiB0
aGUgZGF0YSBhcyBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+Lgor
ICogICAgICAgICAgICAgSXQgbWF5IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICogQHBhcmFtIG5h
bWUgVGhlIG5hbWUgb2YgdGhlIGRhdGEgYXMgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3BlbkNo
b2ljZSgpPC9jb2RlPi4KKyAqIEBwYXJhbSBwSW5mbyBBIHBvaW50ZXIgdG8gdGhlIDxjb2RlPlVE
YXRhSW5mbzwvY29kZT4gc3RydWN0dXJlCisgKiAgICAgICAgICAgICAgb2YgZGF0YSB0aGF0IGhh
cyBiZWVuIGxvYWRlZCBhbmQgd2lsbCBiZSByZXR1cm5lZAorICogICAgICAgICAgICAgIGJ5IDxj
b2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4gaWYgdGhpcyBmdW5jdGlvbgorICogICAgICAg
ICAgICAgIHJldHVybnMgPGNvZGU+VFJVRTwvY29kZT4uCisgKiBAcmV0dXJuIFRSVUUgaWYgdGhl
IGN1cnJlbnQgZGF0YSBtZW1vcnkgaXMgYWNjZXB0YWJsZQorICogQHN0YWJsZSBJQ1UgMi4wCisg
Ki8KK3R5cGVkZWYgVUJvb2wgVV9DQUxMQ09OVgorVURhdGFNZW1vcnlJc0FjY2VwdGFibGUodm9p
ZCAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnR5cGUsIGNv
bnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVRGF0YUluZm8g
KnBJbmZvKTsKKworCisvKioKKyAqIENvbnZlbmllbmNlIGZ1bmN0aW9uLgorICogVGhpcyBmdW5j
dGlvbiB3b3JrcyB0aGUgc2FtZSBhcyA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlPC9jb2RlPgorICog
ZXhjZXB0IHRoYXQgYW55IGRhdGEgdGhhdCBtYXRjaGVzIHRoZSB0eXBlIGFuZCBuYW1lCisgKiBp
cyBhc3N1bWVkIHRvIGJlIGFjY2VwdGFibGUuCisgKiBAcGFyYW0gcGF0aCBTcGVjaWZpZXMgYW4g
YWJzb2x1dGUgcGF0aCBhbmQvb3IgYSBiYXNlbmFtZSBmb3IgdGhlCisgKiAgICAgICAgICAgICBm
aW5kaW5nIG9mIHRoZSBkYXRhIGluIHRoZSBmaWxlIHN5c3RlbS4KKyAqICAgICAgICAgICAgIDxj
b2RlPk5VTEw8L2NvZGU+IGZvciBJQ1UgZGF0YS4KKyAqIEBwYXJhbSB0eXBlIEEgc3RyaW5nIHRo
YXQgc3BlY2lmaWVzIHRoZSB0eXBlIG9mIGRhdGEgdG8gYmUgbG9hZGVkLgorICogICAgICAgICAg
ICAgRm9yIGV4YW1wbGUsIHJlc291cmNlIGJ1bmRsZXMgYXJlIGxvYWRlZCB3aXRoIHR5cGUgInJl
cyIsCisgKiAgICAgICAgICAgICBjb252ZXJzaW9uIHRhYmxlcyB3aXRoIHR5cGUgImNudiIuCisg
KiAgICAgICAgICAgICBUaGlzIG1heSBiZSA8Y29kZT5OVUxMPC9jb2RlPiBvciBlbXB0eS4KKyAq
IEBwYXJhbSBuYW1lIEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBkYXRh
LgorICogQHBhcmFtIHBFcnJvckNvZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJdCBt
dXN0IG5vdCBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEByZXR1cm4gQSBwb2ludGVyIChoYW5k
bGUpIHRvIGEgZGF0YSBtZW1vcnkgb2JqZWN0LCBvciA8Y29kZT5OVUxMPC9jb2RlPgorICogICAg
ICAgICBpZiBhbiBlcnJvciBvY2N1cnMuIENhbGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2Nv
ZGU+CisgKiAgICAgICAgIHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhLgorICoK
KyAqIEBzZWUgdWRhdGFfb3BlbkNob2ljZQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RB
QkxFIFVEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1ZGF0YV9vcGVuKGNvbnN0IGNoYXIgKnBhdGgs
IGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgIFVFcnJvckNv
ZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIERhdGEgbG9hZGluZyBmdW5jdGlvbi4KKyAqIFRo
aXMgZnVuY3Rpb24gaXMgdXNlZCB0byBmaW5kIGFuZCBsb2FkIGVmZmljaWVudGx5IGRhdGEgZm9y
CisgKiBJQ1UgYW5kIGFwcGxpY2F0aW9ucyB1c2luZyBJQ1UuCisgKiBJdCBwcm92aWRlcyBhbiBh
YnN0cmFjdCBpbnRlcmZhY2UgdGhhdCBhbGxvd3MgdG8gc3BlY2lmeSBhIGRhdGEKKyAqIHR5cGUg
YW5kIG5hbWUgdG8gZmluZCBhbmQgbG9hZCB0aGUgZGF0YS4KKyAqCisgKiA8cD5UaGUgaW1wbGVt
ZW50YXRpb24gZGVwZW5kcyBvbiBwbGF0Zm9ybSBwcm9wZXJ0aWVzIGFuZCB1c2VyIHByZWZlcmVu
Y2VzCisgKiBhbmQgbWF5IGludm9sdmUgbG9hZGluZyBzaGFyZWQgbGlicmFyaWVzIChETExzKSwg
bWFwcGluZworICogZmlsZXMgaW50byBtZW1vcnksIG9yIGZvcGVuKCkvZnJlYWQoKSBmaWxlcy4K
KyAqIEl0IG1heSBhbHNvIGludm9sdmUgdXNpbmcgc3RhdGljIG1lbW9yeSBvciBkYXRhYmFzZSBx
dWVyaWVzIGV0Yy4KKyAqIFNldmVyYWwgb3IgYWxsIGRhdGEgaXRlbXMgbWF5IGJlIGNvbWJpbmVk
IGludG8gb25lIGVudGl0eQorICogKERMTCwgbWVtb3J5LW1hcHBhYmxlIGZpbGUpLjwvcD4KKyAq
CisgKiA8cD5UaGUgZGF0YSBpcyBhbHdheXMgcHJlY2VkZWQgYnkgYSBoZWFkZXIgdGhhdCBpbmNs
dWRlcworICogYSA8Y29kZT5VRGF0YUluZm88L2NvZGU+IHN0cnVjdHVyZS4KKyAqIFRoZSBjYWxs
ZXIncyA8Y29kZT5pc0FjY2VwdGFibGUoKTwvY29kZT4gZnVuY3Rpb24gaXMgY2FsbGVkIHRvIG1h
a2UKKyAqIHN1cmUgdGhhdCB0aGUgZGF0YSBpcyB1c2VmdWwuIEl0IG1heSBiZSBjYWxsZWQgc2V2
ZXJhbCB0aW1lcyBpZiBpdAorICogcmVqZWN0cyB0aGUgZGF0YSBhbmQgdGhlcmUgaXMgbW9yZSB0
aGFuIG9uZSBsb2NhdGlvbiB3aXRoIGRhdGEKKyAqIG1hdGNoaW5nIHRoZSB0eXBlIGFuZCBuYW1l
LjwvcD4KKyAqCisgKiA8cD5JZiA8Y29kZT5wYXRoPT1OVUxMPC9jb2RlPiwgdGhlbiBJQ1UgZGF0
YSBpcyBsb2FkZWQuCisgKiBPdGhlcndpc2UsIGl0IGlzIHNlcGFyYXRlZCBpbnRvIGEgYmFzZW5h
bWUgYW5kIGEgYmFzZW5hbWUtbGVzcyBkaXJlY3Rvcnkgc3RyaW5nLgorICogVGhlIGJhc2VuYW1l
IGlzIHVzZWQgYXMgdGhlIGRhdGEgcGFja2FnZSBuYW1lLCBhbmQgdGhlIGRpcmVjdG9yeSBpcwor
ICogbG9naWNhbGx5IHByZXBlbmRlZCB0byB0aGUgSUNVIGRhdGEgZGlyZWN0b3J5IHN0cmluZy48
L3A+CisgKgorICogPHA+Rm9yIGRldGFpbHMgYWJvdXQgSUNVIGRhdGEgbG9hZGluZyBzZWUgdGhl
IFVzZXIgR3VpZGUKKyAqIERhdGEgTWFuYWdlbWVudCBjaGFwdGVyLiAoaHR0cDovL2ljdS1wcm9q
ZWN0Lm9yZy91c2VyZ3VpZGUvaWN1ZGF0YS5odG1sKTwvcD4KKyAqCisgKiBAcGFyYW0gcGF0aCBT
cGVjaWZpZXMgYW4gYWJzb2x1dGUgcGF0aCBhbmQvb3IgYSBiYXNlbmFtZSBmb3IgdGhlCisgKiAg
ICAgICAgICAgICBmaW5kaW5nIG9mIHRoZSBkYXRhIGluIHRoZSBmaWxlIHN5c3RlbS4KKyAqICAg
ICAgICAgICAgIDxjb2RlPk5VTEw8L2NvZGU+IGZvciBJQ1UgZGF0YS4KKyAqIEBwYXJhbSB0eXBl
IEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSB0eXBlIG9mIGRhdGEgdG8gYmUgbG9hZGVkLgor
ICogICAgICAgICAgICAgRm9yIGV4YW1wbGUsIHJlc291cmNlIGJ1bmRsZXMgYXJlIGxvYWRlZCB3
aXRoIHR5cGUgInJlcyIsCisgKiAgICAgICAgICAgICBjb252ZXJzaW9uIHRhYmxlcyB3aXRoIHR5
cGUgImNudiIuCisgKiAgICAgICAgICAgICBUaGlzIG1heSBiZSA8Y29kZT5OVUxMPC9jb2RlPiBv
ciBlbXB0eS4KKyAqIEBwYXJhbSBuYW1lIEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSBuYW1l
IG9mIHRoZSBkYXRhLgorICogQHBhcmFtIGlzQWNjZXB0YWJsZSBUaGlzIGZ1bmN0aW9uIGlzIGNh
bGxlZCB0byB2ZXJpZnkgdGhhdCBsb2FkZWQgZGF0YQorICogICAgICAgICAgICAgICAgICAgICBp
cyB1c2VmdWwgZm9yIHRoZSBjbGllbnQgY29kZS4gSWYgaXQgcmV0dXJucyBGQUxTRQorICogICAg
ICAgICAgICAgICAgICAgICBmb3IgYWxsIGRhdGEgaXRlbXMsIHRoZW4gPGNvZGU+dWRhdGFfb3Bl
bkNob2ljZSgpPC9jb2RlPgorICogICAgICAgICAgICAgICAgICAgICB3aWxsIHJldHVybiB3aXRo
IGFuIGVycm9yLgorICogQHBhcmFtIGNvbnRleHQgQXJiaXRyYXJ5IHBhcmFtZXRlciB0byBiZSBw
YXNzZWQgaW50byBpc0FjY2VwdGFibGUuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBBbiBJQ1UgVUVy
cm9yQ29kZSBwYXJhbWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICog
QHJldHVybiBBIHBvaW50ZXIgKGhhbmRsZSkgdG8gYSBkYXRhIG1lbW9yeSBvYmplY3QsIG9yIDxj
b2RlPk5VTEw8L2NvZGU+CisgKiAgICAgICAgIGlmIGFuIGVycm9yIG9jY3Vycy4gQ2FsbCA8Y29k
ZT51ZGF0YV9nZXRNZW1vcnkoKTwvY29kZT4KKyAqICAgICAgICAgdG8gZ2V0IGEgcG9pbnRlciB0
byB0aGUgYWN0dWFsIGRhdGEuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgVURh
dGFNZW1vcnkgKiBVX0VYUE9SVDIKK3VkYXRhX29wZW5DaG9pY2UoY29uc3QgY2hhciAqcGF0aCwg
Y29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgVURh
dGFNZW1vcnlJc0FjY2VwdGFibGUgKmlzQWNjZXB0YWJsZSwgdm9pZCAqY29udGV4dCwKKyAgICAg
ICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogQ2xvc2UgdGhl
IGRhdGEgbWVtb3J5LgorICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCB0byBhbGxvdyB0
aGUgc3lzdGVtIHRvCisgKiByZWxlYXNlIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBk
YXRhIG1lbW9yeS4KKyAqIEBwYXJhbSBwRGF0YSBUaGUgcG9pbnRlciB0byBkYXRhIG1lbW9yeSBv
YmplY3QKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgor
dWRhdGFfY2xvc2UoVURhdGFNZW1vcnkgKnBEYXRhKTsKKworI2lmIFVfU0hPV19DUExVU1BMVVNf
QVBJCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogXGNsYXNzIExvY2FsVURhdGFNZW1v
cnlQb2ludGVyCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGNsb3NlcyBhIFVEYXRhTWVtb3J5
IHZpYSB1ZGF0YV9jbG9zZSgpLgorICogRm9yIG1vc3QgbWV0aG9kcyBzZWUgdGhlIExvY2FsUG9p
bnRlckJhc2UgYmFzZSBjbGFzcy4KKyAqCisgKiBAc2VlIExvY2FsUG9pbnRlckJhc2UKKyAqIEBz
ZWUgTG9jYWxQb2ludGVyCisgKiBAc3RhYmxlIElDVSA0LjQKKyAqLworVV9ERUZJTkVfTE9DQUxf
T1BFTl9QT0lOVEVSKExvY2FsVURhdGFNZW1vcnlQb2ludGVyLCBVRGF0YU1lbW9yeSwgdWRhdGFf
Y2xvc2UpOworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmCisKKy8qKgorICogR2V0IHRoZSBw
b2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YSBpbnNpZGUgdGhlIGRhdGEgbWVtb3J5LgorICogVGhl
IGRhdGEgaXMgcmVhZC1vbmx5LgorICoKKyAqIElDVSBkYXRhIG11c3QgYmUgYXQgbGVhc3QgOC1h
bGlnbmVkLCBhbmQgc2hvdWxkIGJlIDE2LWFsaWduZWQuCisgKgorICogQHBhcmFtIHBEYXRhIFRo
ZSBwb2ludGVyIHRvIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8K
K1VfU1RBQkxFIGNvbnN0IHZvaWQgKiBVX0VYUE9SVDIKK3VkYXRhX2dldE1lbW9yeShVRGF0YU1l
bW9yeSAqcERhdGEpOworCisvKioKKyAqIEdldCB0aGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgZGF0
YSBtZW1vcnkgaGVhZGVyLgorICogVGhpcyBhbGxvd3MgdG8gZ2V0IGFjY2VzcyB0byB0aGUgaGVh
ZGVyIGNvbnRhaW5pbmcKKyAqIHBsYXRmb3JtIGRhdGEgcHJvcGVydGllcyBldGMuIHdoaWNoIGlz
IG5vdCBwYXJ0IG9mCisgKiB0aGUgZGF0YSBpdHNlbGYgYW5kIGNhbiB0aGVyZWZvcmUgbm90IGJl
IGFjY2Vzc2VkCisgKiB2aWEgdGhlIHBvaW50ZXIgdGhhdCA8Y29kZT51ZGF0YV9nZXRNZW1vcnko
KTwvY29kZT4gcmV0dXJucy4KKyAqCisgKiBAcGFyYW0gcERhdGEgcG9pbnRlciB0byB0aGUgZGF0
YSBtZW1vcnkgb2JqZWN0CisgKiBAcGFyYW0gcEluZm8gcG9pbnRlciB0byBhIFVEYXRhSW5mbyBv
YmplY3Q7CisgKiAgICAgICAgICAgICAgaXRzIDxjb2RlPnNpemU8L2NvZGU+IGZpZWxkIG11c3Qg
YmUgc2V0IGNvcnJlY3RseSwKKyAqICAgICAgICAgICAgICB0eXBpY2FsbHkgdG8gPGNvZGU+c2l6
ZW9mKFVEYXRhSW5mbyk8L2NvZGU+LgorICoKKyAqIDxjb2RlPipwSW5mbzwvY29kZT4gd2lsbCBi
ZSBmaWxsZWQgd2l0aCB0aGUgVURhdGFJbmZvIHN0cnVjdHVyZQorICogaW4gdGhlIGRhdGEgbWVt
b3J5IG9iamVjdC4gSWYgdGhpcyBzdHJ1Y3R1cmUgaXMgc21hbGxlciB0aGFuCisgKiA8Y29kZT5w
SW5mby0+c2l6ZTwvY29kZT4sIHRoZW4gdGhlIDxjb2RlPnNpemU8L2NvZGU+IHdpbGwgYmUKKyAq
IGFkanVzdGVkIGFuZCBvbmx5IHBhcnQgb2YgdGhlIHN0cnVjdHVyZSB3aWxsIGJlIGZpbGxlZC4K
KyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWRhdGFf
Z2V0SW5mbyhVRGF0YU1lbW9yeSAqcERhdGEsIFVEYXRhSW5mbyAqcEluZm8pOworCisvKioKKyAq
IFRoaXMgZnVuY3Rpb24gYnlwYXNzZXMgdGhlIG5vcm1hbCBJQ1UgZGF0YSBsb2FkaW5nIHByb2Nl
c3MgYW5kCisgKiBhbGxvd3MgeW91IHRvIGZvcmNlIElDVSdzIHN5c3RlbSBkYXRhIHRvIGNvbWUg
b3V0IG9mIGEgdXNlci1zcGVjaWZpZWQKKyAqIGFyZWEgaW4gbWVtb3J5LgorICoKKyAqIElDVSBk
YXRhIG11c3QgYmUgYXQgbGVhc3QgOC1hbGlnbmVkLCBhbmQgc2hvdWxkIGJlIDE2LWFsaWduZWQu
CisgKiBTZWUgaHR0cDovL3VzZXJndWlkZS5pY3UtcHJvamVjdC5vcmcvaWN1ZGF0YQorICoKKyAq
IFRoZSBmb3JtYXQgb2YgdGhpcyBkYXRhIGlzIHRoYXQgb2YgdGhlIGljdSBjb21tb24gZGF0YSBm
aWxlLCBhcyBpcworICogZ2VuZXJhdGVkIGJ5IHRoZSBwa2dkYXRhIHRvb2wgd2l0aCBtb2RlPWNv
bW1vbiBvciBtb2RlPWRsbC4KKyAqIFlvdSBjYW4gcmVhZCBpbiBhIHdob2xlIGNvbW1vbiBtb2Rl
IGZpbGUgYW5kIHBhc3MgdGhlIGFkZHJlc3MgdG8gdGhlIHN0YXJ0IG9mIHRoZQorICogZGF0YSwg
b3IgKHdpdGggdGhlIGFwcHJvcHJpYXRlIGxpbmsgb3B0aW9ucykgcGFzcyBpbiB0aGUgcG9pbnRl
ciB0bworICogdGhlIGRhdGEgdGhhdCBoYXMgYmVlbiBsb2FkZWQgZnJvbSBhIGRsbCBieSB0aGUg
b3BlcmF0aW5nIHN5c3RlbSwKKyAqIGFzIHNob3duIGluIHRoaXMgY29kZToKKyAqCisgKiAgICAg
ICBleHRlcm4gY29uc3QgY2hhciBVX0lNUE9SVCBVX0lDVURBVEFfRU5UUllfUE9JTlQgW107Cisg
KiAgICAgICAgLy8gVV9JQ1VEQVRBX0VOVFJZX1BPSU5UIGlzIHNhbWUgYXMgZW50cnkgcG9pbnQg
c3BlY2lmaWVkIHRvIHBrZ2RhdGEgdG9vbAorICogICAgICAgVUVycm9yQ29kZSAgc3RhdHVzID0g
VV9aRVJPX0VSUk9SOworICoKKyAqICAgICAgIHVkYXRhX3NldENvbW1vbkRhdGEoJlVfSUNVREFU
QV9FTlRSWV9QT0lOVCwgJnN0YXR1cyk7CisgKgorICogSXQgaXMgaW1wb3J0YW50IHRoYXQgdGhl
IGRlY2xhcmF0aW9uIGJlIGFzIGFib3ZlLiBUaGUgZW50cnkgcG9pbnQKKyAqIG11c3Qgbm90IGJl
IGRlY2xhcmVkIGFzIGFuIGV4dGVybiB2b2lkKi4KKyAqCisgKiBTdGFydGluZyB3aXRoIElDVSA0
LjQsIGl0IGlzIHBvc3NpYmxlIHRvIHNldCBzZXZlcmFsIGRhdGEgcGFja2FnZXMsCisgKiBvbmUg
cGVyIGNhbGwgdG8gdGhpcyBmdW5jdGlvbi4KKyAqIHVkYXRhX29wZW4oKSB3aWxsIGxvb2sgZm9y
IGRhdGEgaW4gdGhlIG11bHRpcGxlIGRhdGEgcGFja2FnZXMgaW4gdGhlIG9yZGVyCisgKiBpbiB3
aGljaCB0aGV5IHdlcmUgc2V0LgorICogVGhlIHBvc2l0aW9uIG9mIHRoZSBsaW5rZWQtaW4gb3Ig
ZGVmYXVsdC1uYW1lIElDVSAuZGF0YSBwYWNrYWdlIGluIHRoZQorICogc2VhcmNoIGxpc3QgZGVw
ZW5kcyBvbiB3aGVuIHRoZSBmaXJzdCBkYXRhIGl0ZW0gaXMgbG9hZGVkIHRoYXQgaXMgbm90IGNv
bnRhaW5lZAorICogaW4gdGhlIGFscmVhZHkgZXhwbGljaXRseSBzZXQgcGFja2FnZXMuCisgKiBJ
ZiBkYXRhIHdhcyBsb2FkZWQgaW1wbGljaXRseSBiZWZvcmUgdGhlIGZpcnN0IGNhbGwgdG8gdGhp
cyBmdW5jdGlvbgorICogKGZvciBleGFtcGxlLCB2aWEgb3BlbmluZyBhIGNvbnZlcnRlciwgY29u
c3RydWN0aW5nIGEgVW5pY29kZVN0cmluZworICogZnJvbSBkZWZhdWx0LWNvZGVwYWdlIGRhdGEs
IHVzaW5nIGZvcm1hdHRpbmcgb3IgY29sbGF0aW9uIEFQSXMsIGV0Yy4pLAorICogdGhlbiB0aGUg
ZGVmYXVsdCBkYXRhIHdpbGwgYmUgZmlyc3QgaW4gdGhlIGxpc3QuCisgKgorICogVGhpcyBmdW5j
dGlvbiBoYXMgbm8gZWZmZWN0IG9uIGFwcGxpY2F0aW9uIChub24gSUNVKSBkYXRhLiAgU2VlIHVk
YXRhX3NldEFwcERhdGEoKQorICogZm9yIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSBmb3IgYXBwbGlj
YXRpb24gZGF0YS4KKyAqCisgKiBAcGFyYW0gZGF0YSBwb2ludGVyIHRvIElDVSBjb21tb24gZGF0
YQorICogQHBhcmFtIGVyciBvdXRnb2luZyBlcnJvciBzdGF0dXMgPGNvZGU+VV9VU0lOR19ERUZB
VUxUX1dBUk5JTkcsIFVfVU5TVVBQT1JURURfRVJST1I8L2NvZGU+CisgKiBAc3RhYmxlIElDVSAy
LjAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3NldENvbW1vbkRhdGEoY29u
c3Qgdm9pZCAqZGF0YSwgVUVycm9yQ29kZSAqZXJyKTsKKworCisvKioKKyAqIFRoaXMgZnVuY3Rp
b24gYnlwYXNzZXMgdGhlIG5vcm1hbCBJQ1UgZGF0YSBsb2FkaW5nIHByb2Nlc3MgZm9yIGFwcGxp
Y2F0aW9uLXNwZWNpZmljCisgKiBkYXRhIGFuZCBhbGxvd3MgeW91IHRvIGZvcmNlIHRoZSBpdCB0
byBjb21lIG91dCBvZiBhIHVzZXItc3BlY2lmaWVkCisgKiBwb2ludGVyLgorICoKKyAqIElDVSBk
YXRhIG11c3QgYmUgYXQgbGVhc3QgOC1hbGlnbmVkLCBhbmQgc2hvdWxkIGJlIDE2LWFsaWduZWQu
CisgKiBTZWUgaHR0cDovL3VzZXJndWlkZS5pY3UtcHJvamVjdC5vcmcvaWN1ZGF0YQorICoKKyAq
IFRoZSBmb3JtYXQgb2YgdGhpcyBkYXRhIGlzIHRoYXQgb2YgdGhlIGljdSBjb21tb24gZGF0YSBm
aWxlLCBsaWtlICdpY3VkdDI2bC5kYXQnCisgKiBvciB0aGUgY29ycmVzcG9uZGluZyBzaGFyZWQg
bGlicmFyeSAoRExMKSBmaWxlLgorICogVGhlIGFwcGxpY2F0aW9uIG11c3QgcmVhZCBpbiBvciBv
dGhlcndpc2UgY29uc3RydWN0IGFuIGltYWdlIG9mIHRoZSBkYXRhIGFuZCB0aGVuCisgKiBwYXNz
IHRoZSBhZGRyZXNzIG9mIGl0IHRvIHRoaXMgZnVuY3Rpb24uCisgKgorICoKKyAqIFdhcm5pbmc6
ICBzZXRBcHBEYXRhIHdpbGwgc2V0IGEgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgY29kZSBpZgor
ICogICAgICAgICAgIGRhdGEgd2l0aCB0aGUgc3BlY2lmZWQgcGF0aCB0aGF0IGhhcyBhbHJlYWR5
IGJlZW4gb3BlbmVkLCBvcgorICogICAgICAgICAgIGlmIHNldEFwcERhdGEgd2l0aCB0aGUgc2Ft
ZSBwYXRoIGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkLgorICogICAgICAgICAgIEFueSBzdWNoIGNh
bGxzIHRvIHNldEFwcERhdGEgd2lsbCBoYXZlIG5vIGVmZmVjdC4KKyAqCisgKgorICogQHBhcmFt
IHBhY2thZ2VOYW1lIHRoZSBwYWNrYWdlIG5hbWUgYnkgd2hpY2ggdGhlIGFwcGxpY2F0aW9uIHdp
bGwgcmVmZXIKKyAqICAgICAgICAgICAgIHRvIChvcGVuKSB0aGlzIGRhdGEKKyAqIEBwYXJhbSBk
YXRhIHBvaW50ZXIgdG8gdGhlIGRhdGEKKyAqIEBwYXJhbSBlcnIgb3V0Z29pbmcgZXJyb3Igc3Rh
dHVzIDxjb2RlPlVfVVNJTkdfREVGQVVMVF9XQVJOSU5HLCBVX1VOU1VQUE9SVEVEX0VSUk9SPC9j
b2RlPgorICogQHNlZSB1ZGF0YV9zZXRDb21tb25EYXRhCisgKiBAc3RhYmxlIElDVSAyLjAKKyAq
LworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3NldEFwcERhdGEoY29uc3QgY2hhciAq
cGFja2FnZU5hbWUsIGNvbnN0IHZvaWQgKmRhdGEsIFVFcnJvckNvZGUgKmVycik7CisKKy8qKgor
ICogUG9zc2libGUgc2V0dGluZ3MgZm9yIHVkYXRhX3NldEZpbGVBY2Nlc3MoKQorICogQHNlZSB1
ZGF0YV9zZXRGaWxlQWNjZXNzCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLwordHlwZWRlZiBlbnVt
IFVEYXRhRmlsZUFjY2VzcyB7CisgICAgLyoqIElDVSBsb29rcyBmb3IgZGF0YSBpbiBzaW5nbGUg
ZmlsZXMgZmlyc3QsIHRoZW4gaW4gcGFja2FnZXMuIChkZWZhdWx0KSBAc3RhYmxlIElDVSAzLjQg
Ki8KKyAgICBVREFUQV9GSUxFU19GSVJTVCwKKyAgICAvKiogQW4gYWxpYXMgZm9yIHRoZSBkZWZh
dWx0IGFjY2VzcyBtb2RlLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9ERUZBVUxUX0FD
Q0VTUyA9IFVEQVRBX0ZJTEVTX0ZJUlNULAorICAgIC8qKiBJQ1Ugb25seSBsb2FkcyBkYXRhIGZy
b20gcGFja2FnZXMsIG5vdCBmcm9tIHNpbmdsZSBmaWxlcy4gQHN0YWJsZSBJQ1UgMy40ICovCisg
ICAgVURBVEFfT05MWV9QQUNLQUdFUywKKyAgICAvKiogSUNVIGxvYWRzIGRhdGEgZnJvbSBwYWNr
YWdlcyBmaXJzdCwgYW5kIG9ubHkgZnJvbSBzaW5nbGUgZmlsZXMKKyAgICAgICAgaWYgdGhlIGRh
dGEgY2Fubm90IGJlIGZvdW5kIGluIGEgcGFja2FnZS4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAg
VURBVEFfUEFDS0FHRVNfRklSU1QsCisgICAgLyoqIElDVSBkb2VzIG5vdCBhY2Nlc3MgdGhlIGZp
bGUgc3lzdGVtIGZvciBkYXRhIGxvYWRpbmcuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRB
X05PX0ZJTEVTLAorICAgIC8qKiBOdW1iZXIgb2YgcmVhbCBVRGF0YUZpbGVBY2Nlc3MgdmFsdWVz
LiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9GSUxFX0FDQ0VTU19DT1VOVAorfSBVRGF0
YUZpbGVBY2Nlc3M7CisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIHRvIGNv
bnRyb2wgaG93IElDVSBsb2FkcyBkYXRhLiBJdCBtdXN0IGJlIGNhbGxlZAorICogYmVmb3JlIGFu
eSBJQ1UgZGF0YSBpcyBsb2FkZWQsIGluY2x1ZGluZyBhcHBsaWNhdGlvbiBkYXRhIGxvYWRlZCB3
aXRoIAorICogdXJlcy9SZXNvdXJjZUJ1bmRsZSBvciB1ZGF0YSBBUElzLiBUaGlzIGZ1bmN0aW9u
IGlzIG5vdCBtdWx0aXRocmVhZCBzYWZlLiAgCisgKiBUaGUgcmVzdWx0cyBvZiBjYWxsaW5nIGl0
IHdoaWxlIG90aGVyIHRocmVhZHMgYXJlIGxvYWRpbmcgZGF0YSBhcmUgdW5kZWZpbmVkLgorICog
QHBhcmFtIGFjY2VzcyBUaGUgdHlwZSBvZiBmaWxlIGFjY2VzcyB0byBiZSB1c2VkCisgKiBAcGFy
YW0gc3RhdHVzIEVycm9yIGNvZGUuCisgKiBAc2VlIFVEYXRhRmlsZUFjY2VzcworICogQHN0YWJs
ZSBJQ1UgMy40IAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWRhdGFfc2V0RmlsZUFj
Y2VzcyhVRGF0YUZpbGVBY2Nlc3MgYWNjZXNzLCBVRXJyb3JDb2RlICpzdGF0dXMpOworCitVX0NE
RUNMX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1p
c2MuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1pc2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODU0NTFm
Yzc2N2MwNTgzNWY2YzE1ZjU2NmYzNTYyZTJkNGFmODM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi9pY3UvdW5pY29kZS91bWlzYy5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5l
c3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1bWlzYy5oCisqICAgZW5jb2Rp
bmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRh
dGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMTk5OW9jdDE1CisqICAgY3JlYXRlZCBieTogTWFy
a3VzIFcuIFNjaGVyZXIKKyovCisKKyNpZm5kZWYgVU1JU0NfSAorI2RlZmluZSBVTUlTQ19ICisK
KyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYg
IEMgQVBJOm1pc2MgZGVmaW5pdGlvbnMgCisgKgorICogIFRoaXMgZmlsZSBjb250YWlucyBtaXNj
ZWxsYW5lb3VzIGRlZmluaXRpb25zIGZvciB0aGUgQyBBUElzLiAKKyAqLworCitVX0NERUNMX0JF
R0lOCisKKy8qKiBBIHN0cnVjdCByZXByZXNlbnRpbmcgYSByYW5nZSBvZiB0ZXh0IGNvbnRhaW5p
bmcgYSBzcGVjaWZpYyBmaWVsZCAKKyAqICBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBz
dHJ1Y3QgVUZpZWxkUG9zaXRpb24geworICAvKioKKyAgICogVGhlIGZpZWxkIAorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgZmllbGQ7CisgIC8qKgorICAgKiBUaGUgc3Rh
cnQgb2YgdGhlIHRleHQgcmFuZ2UgY29udGFpbmluZyBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBpbnQzMl90IGJlZ2luSW5kZXg7CisgIC8qKiAKKyAgICogVGhlIGxpbWl0
IG9mIHRoZSB0ZXh0IHJhbmdlIGNvbnRhaW5pbmcgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgaW50MzJfdCBlbmRJbmRleDsKK30gVUZpZWxkUG9zaXRpb247CisKKyNpZiAh
VUNPTkZJR19OT19TRVJWSUNFCisvKioKKyAqIE9wYXF1ZSB0eXBlIHJldHVybmVkIGJ5IHJlZ2lz
dGVySW5zdGFuY2UsIHJlZ2lzdGVyRmFjdG9yeSBhbmQgdW5yZWdpc3RlciBmb3Igc2VydmljZSBy
ZWdpc3RyYXRpb24uCisgKiBAc3RhYmxlIElDVSAyLjYKKyAqLwordHlwZWRlZiBjb25zdCB2b2lk
KiBVUmVnaXN0cnlLZXk7CisjZW5kaWYKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtl
TGlzdHMudHh0CmluZGV4IDA5OTdkOWVhYzQ3OTU4MWZmMWZkNDc2OWNjYzRiNTQ2NjJlZmQ3MTQu
LjZiOWZlMmRhYmE4Zjc3ZTJlNzY3MTNjZDY4ZDUyMDM1YWJjMjA1MTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlz
dHMudHh0CkBAIC0yNTUsNiArMjU1LDE4IEBAIHNldChXVEZfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9IgogKQogCitzZXQoV1RGX0JSRUFLSU5HX1JVTEVT
X1NPVVJDRVMKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pL
LnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VD
SksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKKykKKwogc2V0KFdURl9MSUJSQVJJRVMKICAg
ICAke0NNQUtFX0RMX0xJQlN9CiApCkBAIC0yNzIsNiArMjg0LDMxIEBAIGlmIChOT1QgVVNFX1NZ
U1RFTV9NQUxMT0MpCiAgICAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUyBibWFsbG9jKQogZW5k
aWYgKCkKIAorbWFjcm8oR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMgX2lucHV0IF9vdXRwdXQpCisg
ICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgJHtfb3V0cHV0fQorICAgICAg
ICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVy
YXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQorICAgICAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVO
VF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1
ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKKyAgICAgICAgQ09NTUFORCBjYXQg
JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclByb2xvZ3VlLnR4dCAke19pbnB1dH0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCB8ICR7UFlU
SE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0
ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgPiAke19vdXRwdXR9CisgICAgICAgIFZFUkJBVElNKQor
ICAgIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7X291dHB1dH0pCisgICAgQUREX1NPVVJDRV9E
RVBFTkRFTkNJRVMoJHtfaW5wdXR9ICR7X291dHB1dH0pCitlbmRtYWNybygpCisKK2ZvcmVhY2gg
KF9maWxlICR7V1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVN9KQorICAgIGdldF9maWxlbmFtZV9j
b21wb25lbnQoX25hbWUgJHtfZmlsZX0gTkFNRV9XRSkKKyAgICBHRU5FUkFURV9CUkVBS0lOR19S
VUxFUygke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtfZmlsZX0gJHtERVJJVkVEX1NPVVJD
RVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy8ke19uYW1lfS5jcHApCitlbmRmb3JlYWNoICgpCisK
K2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJ
Un0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgTUFJ
Tl9ERVBFTkRFTkNZICR7V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJy
ZWFraW5nUnVsZVN0cmluZ3MucHkKKyAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0Vf
RElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAor
ICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZfRElSfS93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSA8ICR7Q01BS0VfQ1VSUkVO
VF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLnR4dCA+ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcAorICAgIFZFUkJBVElNKQorbGlzdChBUFBFTkQgV1RG
X1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwKQorQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtDTUFL
RV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMudHh0ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMv
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCkKKwogbGlzdChBUFBFTkQgV1RGX1NPVVJD
RVMKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKICkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291
cmNlcy5tYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkMWEwNGEwZDk3Yjk5NWMxNTdkNTU5MDE3MzhlNWVlMWRk
N2QzMzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC0wLDAgKzEsODQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIworIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIyAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisjICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisjICAg
ICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitCUkVBS0lOR19SVUxFU19GSUxFUyA9
IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5icmsgXAor
ICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5icmsgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5icmsgXAorICAgIEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmJyayBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuYnJrIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuYnJrIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuYnJrIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuYnJrIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuYnJrCisKK0JS
RUFLSU5HX1JVTEVTX0RFRklOSVRJT05TID0gXAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Q0pLLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VDSksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZU5vbkNKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbENKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbE5vbkNKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKSy5jcHAKKworaWZlcSAoJChzaGVsbCAkKENDKSAtc3RkPWdudSsrMTEg
LXggYysrIC1FIC1QIC1kTSAkKFNES19GTEFHUykgJChGUkFNRVdPUktfRkxBR1MpICQoSEVBREVS
X0ZMQUdTKSAtaW5jbHVkZSAid3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8IGdyZXAgJyBXVEZf
UExBVEZPUk1fSU9TICcgfCBjdXQgLWQnICcgLWYzKSwgMSkKKyAgICBXVEZfUExBVEZPUk1fSU9T
ID0gMQorZWxzZQorICAgIFdURl9QTEFURk9STV9JT1MgPSAwCitlbmRpZgorCitpZmVxICgkKFdU
Rl9QTEFURk9STV9JT1MpLCAxKQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09S
X01PVkVNRU5UID0gMAorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAwCitlbHNlCisJQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQgPSAkKEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVCkKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMQorZW5kaWYKKwor
REVQRU5ERU5DSUVTID0gJChCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUykKKworaWZlcSAoJChP
UyksTUFDT1MpCitERVBFTkRFTkNJRVMgKz0gJChCUkVBS0lOR19SVUxFU19GSUxFUykKK2VuZGlm
CisKK2FsbCA6ICQoREVQRU5ERU5DSUVTKQorCitCcmVha2luZ1J1bGVzLyUuYnJrIDogQnJlYWtp
bmdSdWxlcy8lLnBwCisJLi4vLi4vZ2VuYnJrIC1jIC1yICQ8IC1vICRACisKK0JyZWFraW5nUnVs
ZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKwlweXRob24gJChXVEYp
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGN1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyA8ICQ8ID4gJEAKKworQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvciUuY3BwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCWNhdCAkPyB8IHB5dGhvbiAkKFdURikvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgbGluZUJyZWFrSXRl
cmF0b3IkKlJ1bGVzID4gJEAKKworQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMucHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMudHh0CisJLXVuaWZkZWYgLURBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9JChB
RERJVElPTkFMX0VNT0pJX1NVUFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVOVCkgLURIQVZFX0VYVFJB
X0lDVV9OQU1FRF9TRVRTPSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUykgLW8gJEAgJDwKKwor
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUucHAgOiAkKFdURikvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAkKFdURikvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisJLWNhdCAkPyB8IHVuaWZk
ZWYgLURBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9JChBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQp
IC1ESEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMp
IC1vICRACmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxZmFk
ODQ3MTAwMTQ5M2Q3YmY0YjZlYTZkNTI5ODA4ODBkMDI1OGYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLnR4dApAQCAtMCwwICsxLDE1MSBAQAorIyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNo
YXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKKyMgPGh0dHA6Ly9zb3VyY2Uu
aWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2Rh
dGEvYnJraXRyLz4uCisjIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9tIHRoZSBvcmlnaW5hbCBv
bmVzIGFyZSBsaXN0ZWQgYmVsb3c6CisjICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVy
X0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFj
aW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7CisjICogUmVtb3Zl
ZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVuZCBj
aGFyYWN0ZXJzIChCdWcgMjQzNDIpOworIyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1
cnNvciBmcm9tIG1vdmluZyBhZnRlciB2aXJhbWEgc2lnbnMgb2YgSW5kaWMgbGFuZ3VhZ2VzIGV4
Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwgYW5kOworIyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVu
dCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2Fy
YSB2b2ljZWQgbWFya3MuCisjICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBz
eW1ib2xzLgorCiskQ1IgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ1J9XTsK
KyRMRiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1dOworJENvbnRyb2wg
PSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsKKyRWb2ljZU1hcmtzID0g
W1x1RkY5RVx1RkY5Rl07ICMgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FuYSB2b2ljZWQgbWFy
a3MKKyRFeHRlbmQgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2lj
ZU1hcmtzIC0gW1x1MEUzMCBcdTBFMzIgXHUwRTQ1IFx1MEVCMCBcdTBFQjJdXTsKKyRTcGFjaW5n
TWFyayA9IFtbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31dIC0gJEV4dGVuZF07
CiskTCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOworJFYgICAgICAg
PSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFZ9XTsKKyRUICAgICAgID0gW1xwe0dyYXBo
ZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07CiskTFYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVy
X0JyZWFrID0gTFZ9XTsKKyRMVlQgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBM
VlR9XTsKKyRIaW4wICAgID0gW1x1MDkwNS1cdTA5MzldOyAjIERldmFuYWdhcmkgTGV0dGVyIEEs
Li4uLEhhCiskSGluViAgICA9IFx1MDk0RDsgIyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCiskSGlu
MSAgICA9IFtcdTA5MTUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRlciBLYSwuLi4sSGEKKyRC
ZW4wICAgID0gW1x1MDk4NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCiskQmVu
ViAgICA9IFx1MDlDRDsgIyBCZW5nYWxpIFNpZ24gVmlyYW1hCiskQmVuMSAgICA9IFtcdTA5OTUt
XHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEKKyRQYW4wICAgID0gW1x1MEEwNS1c
dTBBMzldOyAjIEd1cm11a2hpIExldHRlciBBLC4uLixIYQorJFBhblYgICAgPSBcdTBBNEQ7ICMg
R3VybXVraGkgU2lnbiBWaXJhbWEKKyRQYW4xICAgID0gW1x1MEExNS1cdTBBMzldOyAjIEd1cm11
a2hpIExldHRlciBLYSwuLi4sSGEKKyRHdWowICAgID0gW1x1MEE4NS1cdTBBQjldOyAjIEd1amFy
YXRpIExldHRlciBBLC4uLixIYQorJEd1alYgICAgPSBcdTBBQ0Q7ICMgR3VqYXJhdGkgU2lnbiBW
aXJhbWEKKyRHdWoxICAgID0gW1x1MEE5NS1cdTBBQjldOyAjIEd1amFyYXRpIExldHRlciBLYSwu
Li4sSGEKKyRPcmkwICAgID0gW1x1MEIwNS1cdTBCMzldOyAjIE9yaXlhIExldHRlciBBLC4uLixI
YQorJE9yaVYgICAgPSBcdTBCNEQ7ICMgT3JpeWEgU2lnbiBWaXJhbWEKKyRPcmkxICAgID0gW1x1
MEIxNS1cdTBCMzldOyAjIE9yaXlhIExldHRlciBLYSwuLi4sSGEKKyRUZWwwICAgID0gW1x1MEMw
NS1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKKyRUZWxWICAgID0gXHUwQzREOyAj
IFRlbHVndSBTaWduIFZpcmFtYQorJFRlbDEgICAgPSBbXHUwQzE0LVx1MEMzOV07ICMgVGVsdWd1
IExldHRlciBLYSwuLi4sSGEKKyRLYW4wICAgID0gW1x1MEM4NS1cdTBDQjldOyAjIEthbm5hZGEg
TGV0dGVyIEEsLi4uLEhhCiskS2FuViAgICA9IFx1MENDRDsgIyBLYW5uYWRhIFNpZ24gVmlyYW1h
CiskS2FuMSAgICA9IFtcdTBDOTUtXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4uLixIYQor
JE1hbDAgICAgPSBbXHUwRDA1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExldHRlciBBLC4uLixIYSAK
KyRNYWxWICAgID0gXHUwRDREOyAjIE1hbGF5YWxhbSBTaWduIFZpcmFtYQorJE1hbDEgICAgPSBb
XHUwRDE1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQorJFJJICAgICAgPSBb
XFUwMDAxRjFFNi1cVTAwMDFGMUZGXTsgIyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCiskWldK
ICAgICA9IFx1MjAwRDsgIyBaZXJvIHdpZHRoIGpvaW5lcgorJEVtb2ppVmFyID0gW1x1RkUwRl07
ICMgRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCisKKyNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUy
NzY0IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjND
QyBcVTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUt
XFUwMDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxV
MDAwMUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAw
MDFGNUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAx
RjY0RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0
aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUy
NkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAx
RjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0
NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdD
IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBc
VTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUw
MDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAw
MUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRy
aWNrIG1vZGlmaWVycworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUw
MDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0OEJdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUg
aW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3
MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFGM0NB
IFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1c
VTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUw
MDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxVMDAw
MUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFG
NkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmlj
ayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAwMDFG
M0ZGXTsgIyBGaXR6cGF0cmljayBtb2RpZmllcnMKKyEhY2hhaW47CisKKyNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKKworICAgICEhUklOb0NoYWluOworCisjZW5kaWYKKworISFmb3J3YXJk
OworJENSICRMRjsKKyRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7CisoJExWIHwgJFYpICgkViB8
ICRUKTsKKygkTFZUIHwgJFQpICRUOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisK
KyAgICAkUkkgJFJJICRFeHRlbmQqIC8gJFJJOworICAgICRSSSAkUkkgJEV4dGVuZCo7CisgICAg
W14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJFNw
YWNpbmdNYXJrOworCisjZWxzZQorCisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOwor
ICAgIFteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOworICAgICRSSSAkUkkgLyAkUkk7
CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4wICRIaW5WICRIaW4xOyAjIERldmFuYWdh
cmkgVmlyYW1hIChmb3J3YXJkKQorJEJlbjAgJEJlblYgJEJlbjE7ICMgQmVuZ2FsaSBWaXJhbWEg
KGZvcndhcmQpCiskUGFuMCAkUGFuViAkUGFuMTsgIyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQp
CiskR3VqMCAkR3VqViAkR3VqMTsgIyBHdWphcmF0aSBWaXJhbWEgKGZvcndhcmQpCiskT3JpMCAk
T3JpViAkT3JpMTsgIyBPcml5YSBWaXJhbWEgKGZvcndhcmQpCiskVGVsMCAkVGVsViAkVGVsMTsg
IyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQorJEthbjAgJEthblYgJEthbjE7ICMgS2FubmFkYSBW
aXJhbWEgKGZvcndhcmQpCiskTWFsMCAkTWFsViAkTWFsMTsgIyBNYWxheWFsYW0gVmlyYW1hIChm
b3J3YXJkKQorJFpXSiAkRW1vamlGb3JTZXFzOyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNl
cXVlbmNlcworJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7ICMgRG9udCBicmVh
ayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3Rv
cikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCishIXJldmVyc2U7CiskTEYgJENSOworKCRMIHwg
JFYgfCAkTFYgfCAkTFZUKSAkTDsKKygkViB8ICRUKSAoJExWIHwgJFYpOworJFQgKCRMVlQgfCAk
VCk7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFeHRlbmQqICRSSSAk
UkkgLyAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQqICRSSSAkUkk7CisgICAgJEV4dGVu
ZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wg
JENSICRMRl07CisKKyNlbHNlCisKKyAgICAkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExG
XTsKKyAgICAkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkUkkgJFJJIC8g
JFJJICRSSTsKKyAgICAkUkkgJFJJOworCisjZW5kaWYKKworJEhpbjEgJEhpblYgJEhpbjA7ICMg
RGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQorJEJlbjEgJEJlblYgJEJlbjA7ICMgQmVuZ2Fs
aSBWaXJhbWEgKGJhY2t3YXJkKQorJFBhbjEgJFBhblYgJFBhbjA7ICMgR3VybXVraGkgVmlyYW1h
IChiYWNrd2FyZCkKKyRHdWoxICRHdWpWICRHdWowOyAjIEd1amFyYXRpIFZpcmFtYSAoYmFja3dh
cmQpCiskT3JpMSAkT3JpViAkT3JpMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJFRl
bDEgJFRlbFYgJFRlbDA7ICMgVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCiskS2FuMSAkS2FuViAk
S2FuMDsgIyBLYW5uYWRhIFZpcmFtYSAoYmFja3dhcmQpCiskTWFsMSAkTWFsViAkTWFsMDsgIyBN
YWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKKyRFbW9qaUZvclNlcXMgJFpXSjsgIyBEb250IGJy
ZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlG
b3JNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0
aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorCisjaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIXNhZmVfcmV2ZXJzZTsKKyAgICAkUkkgJFJJ
KzsKKyAgICBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOworICAgICEhc2Fm
ZV9mb3J3YXJkOworICAgICRSSSAkUkkrOworICAgICRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAk
RW1vamlNb2RzXSs7CisKKyNlbHNlCisKKyAgICBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1v
amlGb3JNb2RzOworICAgICRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7Cisg
ICAgISFzYWZlX3JldmVyc2U7CisgICAgISFzYWZlX2ZvcndhcmQ7CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdS
dWxlU3RyaW5ncy5weSBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0
ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGVlYWZjOGMzNDYwNzc5MmIyODk4
MjgxMTM2YmFlMjljMWU1MjM0NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKQEAgLTAsMCAr
MSw5NyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBzeXMKK2ltcG9ydCByZQorCitoZWFkZXIgPSAiIiIv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUworICogSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
CisgKiBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEKKyAqIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLyIiIgorCisKK2RlZiBtYWluKGFyZ3Y9Tm9uZSk6
CisgICAgaWYgbm90IGFyZ3Y6CisgICAgICAgIGFyZ3YgPSBzeXMuYXJndgorICAgIHN5bWJvbE5h
bWUgPSBhcmd2WzFdCisKKyAgICBwcmludChoZWFkZXIpCisgICAgcHJpbnQoIiIpCisgICAgcHJp
bnQoIi8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0
ZWQgYnkgdGhlIHNjcmlwdCIpCisgICAgcHJpbnQoIi8vIFdURi93dGYvdGV4dC9HZW5lcmF0ZUJy
ZWFraW5nUnVsZVN0cmluZ3MucHkiKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCIjaW5jbHVk
ZSBcImNvbmZpZy5oXCIiKQorICAgIHByaW50KCIjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+
IikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiI2RlZmluZSBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApKSIpCisgICAgcHJpbnQoIiNkZWZpbmUgSEFWRV9F
WFRSQV9JQ1VfTkFNRURfU0VUUyAoKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChV
X0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KSkiKQorICAgIHByaW50KCIiKQorICAgIHByaW50
KCJuYW1lc3BhY2UgV1RGIHsiKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCJjb25zdCBjaGFy
KiAiICsgc3ltYm9sTmFtZSArICIgPSAiKQorCisgICAgZm9yIGwgaW4gc3lzLnN0ZGluOgorICAg
ICAgICBsaW5lID0gbC5yc3RyaXAoKQorICAgICAgICBpZiByZS5tYXRjaCgiXlxzKiQiLCBsaW5l
KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoIiMgIik6
CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjIik6Cisg
ICAgICAgICAgICBwcmludChsaW5lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbWF0Y2gg
PSByZS5tYXRjaCgiXiguKik7KCAjIC4qKT8kIiwgbGluZSkKKyAgICAgICAgICAgIGlmIG1hdGNo
OgorICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJcIiIgKyBtYXRjaC5ncm91cCgxKS5yZXBsYWNl
KCJcXCIsICJcXFxcIikgKyAiO1wiIgorICAgICAgICAgICAgICAgIGlmIG1hdGNoLmdyb3VwKDIp
OgorICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gIiAvLyAiICsgbWF0Y2guZ3JvdXAoMilb
MzpdCisgICAgICAgICAgICAgICAgcHJpbnQocmVzdWx0KQorICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICBleGl0KDEpCisKKyAgICBwcmludCgiOyIpCisgICAgcHJpbnQoIn0iKQor
CitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHN5cy5leGl0KG1haW4oc3lzLmFyZ3Yp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yRXBpbG9ndWUudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllMGM4YTUxYjNjMWNj
MGI3MTZmMmEzODcyZmIzYjE4MTAwZDBlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKQEAg
LTAsMCArMSwzNDcgQEAKKyRBSSA9IFs6TGluZUJyZWFrID0gQW1iaWd1b3VzOl07CiskQUwgPSBb
OkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsKKyRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0Fm
dGVyOl0gLSAkQkFfU1VCXTsKKyRCQiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07Cisk
QksgPSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOworJEIyID0gWzpMaW5lQnJlYWsg
PSBCcmVha19Cb3RoOl07CiskQ0IgPSBbOkxpbmVCcmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsK
KyRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246XTsKKyRDTSA9IFs6TGluZUJy
ZWFrID0gQ29tYmluaW5nX01hcms6XTsKKyRDUCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUGFyZW50
aGVzaXM6XTsKKyRDUiA9IFs6TGluZUJyZWFrID0gQ2FycmlhZ2VfUmV0dXJuOl07CiskRVggPSBb
WzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0gJEVYX1NVQl07CiskR0wgPSBbOkxpbmVCcmVh
ayA9IEdsdWU6XTsKKworI2lmIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMKKworICAgICRITCA9
IFs6TGluZUJyZWFrID0gSGVicmV3X0xldHRlcjpdOworCisjZWxzZQorCisgICAgJEhMID0gW1s6
SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsKKworI2VuZGlmCisKKyRIWSA9IFs6TGluZUJyZWFrID0g
SHlwaGVuOl07CiskSDIgPSBbOkxpbmVCcmVhayA9IEgyOl07CiskSDMgPSBbOkxpbmVCcmVhayA9
IEgzOl07CiskSUQgPSBbW1tbOkxpbmVCcmVhayA9IElkZW9ncmFwaGljOl0gLSAkQ0pdICRJRF9B
RERdIC0gJElEX1NVQl07CiskSU4gPSBbWzpMaW5lQnJlYWsgPSBJbnNlcGFyYWJsZTpdIC0gJElO
X1NVQl07CiskSVMgPSBbWzpMaW5lQnJlYWsgPSBJbmZpeF9OdW1lcmljOl0gLSAkSVNfU1VCXTsK
KyRKTCA9IFs6TGluZUJyZWFrID0gSkw6XTsKKyRKViA9IFs6TGluZUJyZWFrID0gSlY6XTsKKyRK
VCA9IFs6TGluZUJyZWFrID0gSlQ6XTsKKyRMRiA9IFs6TGluZUJyZWFrID0gTGluZV9GZWVkOl07
CiskTkwgPSBbOkxpbmVCcmVhayA9IE5leHRfTGluZTpdOworJE5TID0gW1tbWzpMaW5lQnJlYWsg
PSBOb25zdGFydGVyOl0gLSAkQ0pdICROU19BRERdIC0gJE5TX1NVQl07CiskTlUgPSBbOkxpbmVC
cmVhayA9IE51bWVyaWM6XTsKKyRPUCA9IFs6TGluZUJyZWFrID0gT3Blbl9QdW5jdHVhdGlvbjpd
OworJFBPID0gW1s6TGluZUJyZWFrID0gUG9zdGZpeF9OdW1lcmljOl0gLSAkUE9fU1VCXTsKKyRQ
UiA9IFtbOkxpbmVCcmVhayA9IFByZWZpeF9OdW1lcmljOl0gLSAkUFJfU1VCXTsKKyRRVSA9IFs6
TGluZUJyZWFrID0gUXVvdGF0aW9uOl07CiskUkkgPSBbXFUwMDAxRjFFNi1cVTAwMDFGMUZGXTsK
KyRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07CiskU0cgPSBbOkxpbmVCcmVh
ayA9IFN1cnJvZ2F0ZTpdOworJFNQID0gWzpMaW5lQnJlYWsgPSBTcGFjZTpdOworJFNZID0gWzpM
aW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07CiskV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9p
bmVyOl07CiskWFggPSBbOkxpbmVCcmVhayA9IFVua25vd246XTsKKyRaVyA9IFs6TGluZUJyZWFr
ID0gWldTcGFjZTpdOworJFpXSiA9IFx1MjAwRDsKKyRFbW9qaVZhciA9IFx1RkUwRjsKKworI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI2NDAg
XHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUwMDAxRjMwOCBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUw
MDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAwMUYzRjMgXFUwMDAxRjQ0MSBcVTAwMDFGNDY2LVxVMDAw
MUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDZGIFxVMDAwMUY0NzEgXFUwMDAxRjQ3MyBcVTAwMDFG
NDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MiBcVTAwMDFGNDg2LVxVMDAwMUY0ODcgXFUwMDAxRjQ4
QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTggXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEIg
XFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2XTsg
IyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JN
b2RzID0gW1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1MjcwRCBcVTAwMDFGMzg1IFxVMDAwMUYzQzMt
XFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxVMDAwMUYzQ0IgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxV
MDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAw
MDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAx
RjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1NzUgXFUwMDAxRjU5MCBcVTAwMDFGNTk1IFxVMDAwMUY1
OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEz
IFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwIFxVMDAwMUY5MThdIDsgIyBFbW9qaSB0
aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JT
ZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ4Ql07CisgICAgJEVt
b2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBBLVx1MjcwQyBcVTAwMDFGMzg1IFxVMDAwMUYzQzMt
XFUwMDAxRjNDNCBcVTAwMDFGM0M3IFxVMDAwMUYzQ0EgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxV
MDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAw
MDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAx
RjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2
NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMw
XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZW5kaWYKKwor
JEVtb2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYzRkZdOworJGRpY3Rpb25hcnkgPSBbOkxp
bmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOworJEFMUGx1cyA9IFskQUwgJEFJICRTQSAkU0cg
JFhYXTsKKyRBTGNtID0gJEFMUGx1cyAkQ00qOworJEJBY20gPSAkQkEgJENNKjsKKyRCQmNtID0g
JEJCICRDTSo7CiskQjJjbSA9ICRCMiAkQ00qOworJENMY20gPSAkQ0wgJENNKjsKKyRDUGNtID0g
JENQICRDTSo7CiskRVhjbSA9ICRFWCAkQ00qOworJEdMY20gPSAkR0wgJENNKjsKKyRITGNtID0g
JEhMICRDTSo7CiskSFljbSA9ICRIWSAkQ00qOworJEgyY20gPSAkSDIgJENNKjsKKyRIM2NtID0g
JEgzICRDTSo7CiskSURjbSA9ICRJRCAkQ00qOworJElOY20gPSAkSU4gJENNKjsKKyRJU2NtID0g
JElTICRDTSo7CiskSkxjbSA9ICRKTCAkQ00qOworJEpWY20gPSAkSlYgJENNKjsKKyRKVGNtID0g
JEpUICRDTSo7CiskTlNjbSA9ICROUyAkQ00qOworJE5VY20gPSAkTlUgJENNKjsKKyRPUGNtID0g
JE9QICRDTSo7CiskUE9jbSA9ICRQTyAkQ00qOworJFBSY20gPSAkUFIgJENNKjsKKyRRVWNtID0g
JFFVICRDTSo7CiskUkljbSA9ICRSSSAkQ00qOworJFNZY20gPSAkU1kgJENNKjsKKyRXSmNtID0g
JFdKICRDTSo7CisKKyEhZm9yd2FyZDsKKyRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRMRiAkTkwg
JFpXICRDTV07CiskQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJEFM
X0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsKKyRBTF9GT0xMT1dfQ00g
PSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRHTCAkT1AgJFFVICRCQSAkSFkgJE5TICRJ
TiAkTlUgJEFMUGx1c107CiskQUxfRk9MTE9XID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9X
X0NNXTsKKyRMQjRCcmVha3MgPSBbJEJLICRDUiAkTEYgJE5MXTsKKyRMQjROb25CcmVha3MgPSBb
XiRCSyAkQ1IgJExGICROTF07CiskTEI4QnJlYWtzID0gWyRMQjRCcmVha3MgJFpXXTsKKyRMQjhO
b25CcmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOworJExCMThOb25CcmVha3MgPSBb
JExCOE5vbkJyZWFrcyAtIFskU1BdXTsKKyRMQjE4QnJlYWtzID0gWyRMQjhCcmVha3MgJFNQXTsK
KyRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsKKyRBTFBsdXMgJENNKzsK
KyRCQSAkQ00rOworJEJCICRDTSs7CiskQjIgJENNKzsKKyRDTCAkQ00rOworJENQICRDTSs7Cisk
RVggJENNKzsKKyRHTCAkQ00rOworJEhMICRDTSs7CiskSFkgJENNKzsKKyRIMiAkQ00rOworJEgz
ICRDTSs7CiskSUQgJENNKzsKKyRJTiAkQ00rOworJElTICRDTSs7CiskSkwgJENNKzsKKyRKViAk
Q00rOworJEpUICRDTSs7CiskTlMgJENNKzsKKyROVSAkQ00rOworJE9QICRDTSs7CiskUE8gJENN
KzsKKyRQUiAkQ00rOworJFFVICRDTSs7CiskUkkgJENNKzsKKyRTWSAkQ00rOworJFdKICRDTSs7
CiskQ1IgJExGIHsxMDB9OworJExCNE5vbkJyZWFrcz8gJExCNEJyZWFrcyB7MTAwfTsKKyRDQU5f
Q00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OworJENNKyAkTEI0QnJlYWtzIHsxMDB9OworJExCNE5v
bkJyZWFrcyBbJFNQICRaV107CiskQ0FOX0NNICRDTSogWyRTUCAkWlddOworJENNKyBbJFNQICRa
V107CiskRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JT
ZXFzOworJENBTl9DTSAkQ00rOworJENNKzsKKyRDQU5fQ00gJENNKiAkV0pjbTsKKyRMQjhOb25C
cmVha3MgJFdKY207CiskQ00rICRXSmNtOworJFdKY20gJENBTlRfQ007CiskV0pjbSAkQ0FOX0NN
ICRDTSo7CiskR0xjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOVF9DTTsKK1tbJExCOE5vbkJy
ZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOworJENNKyBHTGNtOworJExCOE5vbkJy
ZWFrcyAkQ0w7CiskQ0FOX0NNICRDTSogJENMOworJENNKyAkQ0w7CiskTEI4Tm9uQnJlYWtzICRD
UDsKKyRDQU5fQ00gJENNKiAkQ1A7CiskQ00rICRDUDsKKyRMQjhOb25CcmVha3MgJEVYOworJENB
Tl9DTSAkQ00qICRFWDsKKyRDTSsgJEVYOworJExCOE5vbkJyZWFrcyAkSVM7CiskQ0FOX0NNICRD
TSogJElTOworJENNKyAkSVM7CiskTEI4Tm9uQnJlYWtzICRTWTsKKyRDQU5fQ00gJENNKiAkU1k7
CiskQ00rICRTWTsKKyRPUGNtICRTUCogJENBTl9DTSAkQ00qOworJE9QY20gJFNQKiAkQ0FOVF9D
TTsKKyRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsKKyRRVWNtICRTUCogJE9QY207CisoJENM
Y20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsKKyRCMmNtICRTUCogJEIyY207CiskTEIxOE5vbkJyZWFr
cyAkQ00qICRRVWNtOworJENNKyAkUVVjbTsKKyRRVWNtIC4/OworJFFVY20gJExCMThOb25CcmVh
a3MgJENNKjsKKyRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7IAor
JEJCY20gW14kQ0JdOworJEJCY20gJExCMjBOb25CcmVha3MgJENNKjsKKyRITGNtICgkSFljbSB8
ICRCQWNtKSBbXiRDQl0/OworJFNZY20gJEhMY207CisoJEFMY20gfCAkSExjbSkgJElOY207Cisk
Q00rICRJTmNtOworJEVYY20gJElOY207CiskSURjbSAkSU5jbTsKKyRJTmNtICRJTmNtOworJE5V
Y20gJElOY207CiskSURjbSAkUE9jbTsKKyRBTGNtICROVWNtOworJEhMY20gJE5VY207CiskQ00r
ICROVWNtOworJE5VY20gJEFMY207CiskTlVjbSAkSExjbTsKKyRQUmNtICRJRGNtOworJFBSY20g
KCRBTGNtIHwgJEhMY20pOworJFBPY20gKCRBTGNtIHwgJEhMY20pOworKCRQUmNtIHwgJFBPY20p
PyAoJE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20g
fCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87CiskSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRIMmNt
IHwgJEgzY20pOworKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNtKTsKKygkSlRjbSB8ICRI
M2NtKSAkSlRjbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkSU5j
bTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkUE9jbTsKKyRQUmNt
ICgkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkQUxjbSB8ICRITGNt
KSAoJEFMY20gfCAkSExjbSk7CiskQ00rICgkQUxjbSB8ICRITGNtKTsKKyRJU2NtICgkQUxjbSB8
ICRITGNtKTsKKygkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNtOworJENNKyAkT1BjbTsKKyRD
UGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUCisKKyAgICAkUkljbSAkUkljbTsKKworI2VuZGlmCisKKyRFbW9qaUZvck1vZHMgJEVtb2pp
VmFyPyAkRW1vamlNb2RzOworCishIXJldmVyc2U7CiskQ00rICRBTFBsdXM7CiskQ00rICRCQTsK
KyRDTSsgJEJCOworJENNKyAkQjI7CiskQ00rICRDTDsKKyRDTSsgJENQOworJENNKyAkRVg7Cisk
Q00rICRHTDsKKyRDTSsgJEhMOworJENNKyAkSFk7CiskQ00rICRIMjsKKyRDTSsgJEgzOworJENN
KyAkSUQ7CiskQ00rICRJTjsKKyRDTSsgJElTOworJENNKyAkSkw7CiskQ00rICRKVjsKKyRDTSsg
JEpUOworJENNKyAkTlM7CiskQ00rICROVTsKKyRDTSsgJE9QOworJENNKyAkUE87CiskQ00rICRQ
UjsKKyRDTSsgJFFVOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkQ00r
ICRSSTsKKworI2VuZGlmCisKKyRDTSsgJFNZOworJENNKyAkV0o7CiskQ00rOworJEFMX0ZPTExP
VyAkQ00rIC8gKFskQksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAk
U1ArICRDTSogKFteJE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsKK1skUFJdIC8gJENNKyBb
JEJLICRDUiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOworJExCNEJyZWFrcyBbJExCNE5vbkJyZWFr
cy0kQ01dOworJExCNEJyZWFrcyAkQ00rICRDQU5fQ007CiskTEYgJENSOworWyRTUCAkWlddIFsk
TEI0Tm9uQnJlYWtzLSRDTV07CitbJFNQICRaV10gJENNKyAkQ0FOX0NNOworJEVtb2ppRm9yU2Vx
cyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZhcj8gJEVtb2ppRm9yU2VxczsKKyRDTSsgJENBTl9D
TTsKKyRDTSogJFdKICRDTSogJENBTl9DTTsKKyRDTSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07
CiskQ0FOVF9DTSAkQ00qICRXSjsKKyRDTSogJENBTl9DTSAkQ00qICRXSjsKKyRDTSogJEdMICRD
TSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOworJENBTlRfQ00gJENNKiAkR0w7
CiskQ00qICRDQU5fQ00gJENNKiAkR0w7CiskQ0wgJENNKyAkQ0FOX0NNOworJENQICRDTSsgJENB
Tl9DTTsKKyRFWCAkQ00rICRDQU5fQ007CiskSVMgJENNKyAkQ0FOX0NNOworJFNZICRDTSsgJENB
Tl9DTTsKKyRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOworJENQIFskTEI4Tm9uQnJlYWtzLSRDTV07
CiskRVggWyRMQjhOb25CcmVha3MtJENNXTsKKyRJUyBbJExCOE5vbkJyZWFrcy0kQ01dOworJFNZ
IFskTEI4Tm9uQnJlYWtzLSRDTV07CitbJENMICRDUCAkRVggJElTICRTWV0gJENNKyAkU1ArICRD
TSogJE9QOyAKKyRDTSogJENBTl9DTSAkU1AqICRDTSogJE9QOworJENBTlRfQ00gJFNQKiAkQ00q
ICRPUDsKKyRBTF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XX05P
Q00gJENNKyAkU1ArICRDTSogJE9QOworJENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAkQ00q
ICRPUDsKKyRTWSAkQ00gJFNQKyAkT1A7CiskQ00qICRPUCAkU1AqICRDTSogJFFVOworJENNKiAk
TlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOworJENNKiAkQjIgJFNQKiAkQ00qICRCMjsKKyRDTSog
JFFVICRDTSogJENBTl9DTTsKKyRDTSogJFFVICRMQjE4Tm9uQnJlYWtzOworJENNKiAkQ0FOX0NN
ICRDTSogJFFVOworJENBTlRfQ00gJENNKiAkUVU7CiskQ00qICgkQkEgfCAkSFkgfCAkTlMpICRD
TSogWyRMQjIwTm9uQnJlYWtzLSRDTV07CiskQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dICRDTSog
JEJCOworW14kQ0JdICRDTSogJEJCOworW14kQ0JdICRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7
CiskQ00qICRITCAkQ00qICRTWTsKKyRDTSogJElOICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENN
KiAkSU4gJENNKiAkRVg7CiskQ00qICRJTiAkQ00qICRJRDsKKyRDTSogJElOICRDTSogJElOOwor
JENNKiAkSU4gJENNKiAkTlU7CiskQ00qICRQTyAkQ00qICRJRDsKKyRDTSogJE5VICRDTSogKCRB
TFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkTlU7CiskQ00qICRJRCAk
Q00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8
ICRITCkgJENNKiAkUE87CisoJENNKiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAkQ1ApKT8g
KCRDTSogKCROVSB8ICRJUyB8ICRTWSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZKSk/ICgk
Q00qICgkUFIgfCAkUE8pKT87CiskQ00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwpICRDTSogJEpM
OworJENNKiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOworJENNKiAkSlQgJENNKiAoJEgz
IHwgJEpUKTsKKyRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7Cisk
Q00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAoJEgzIHwg
JEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRD
TSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkSVM7CiskQ00q
ICRPUCAkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwgfCAk
TlUpICRDTSogJENQOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkQ00q
ICRSSSAkQ00qICRSSTsKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlG
b3JNb2RzOworCishIXNhZmVfZm9yd2FyZDsKK1skQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIg
JEhZICRCQSAkU1AgJGRpY3Rpb25hcnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAk
SFkgJEJBICRkaWN0aW9uYXJ5XTsKKyRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OworICAgIAorISFz
YWZlX3JldmVyc2U7CiskQ00rIFteJENNICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsKKyRDTSsg
JFNQIC8gLjsKKyRTUCsgJENNKiAkT1A7CiskU1ArICRDTSogJFFVOworJFNQKyAkQ00qICgkQ0wg
fCAkQ1ApOworJFNQKyAkQ00qICRCMjsKKyRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7CisoJENN
KiAoJElTIHwgJFNZKSkrICRDTSogJE5VOworKCRDTCB8ICRDUCkgJENNKiAoJE5VIHwgJElTIHwg
JFNZKTsKKyRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0IGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgxZjhhZDI1MWJmNTUyNWQyOTNmMzcyMTI2NDU2MTYxMTUwYjYwZDQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKQEAgLTAsMCArMSwxNSBAQAorISFjaGFpbjsKKyEh
TEJDTU5vQ2hhaW47CishIWxvb2tBaGVhZEhhcmRCcmVhazsKKworCisKKyNpZiBIQVZFX0VYVFJB
X0lDVV9OQU1FRF9TRVRTCisKKyAgICAkQ0ogPSBbOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBh
bmVzZV9TdGFydGVyOl07CisKKyNlbHNlCisKKyAgICAkQ0ogPSBbXHUzMDQxXHUzMDQzXHUzMDQ1
XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhFXHUzMDk1XHUzMDk2XHUz
MEExXHUzMEEzXHUzMEE1XHUzMEE3XHUzMEE5XHUzMEMzXHUzMEUzXHUzMEU1XHUzMEU3XHUzMEVF
XHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYwXHUzMUYxXHUzMUYyXHUzMUYzXHUzMUY0XHUzMUY1XHUz
MUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUzMUZBXHUzMUZCXHUzMUZDXHUzMUZEXHUzMUZFXHUzMUZG
XHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZBXHVGRjZCXHVGRjZDXHVGRjZEXHVGRjZFXHVGRjZGXHVG
RjcwXTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjRmMzZjOTAyMDY5ZjNhNmM1Y2Q4MDMzODU0OWZiMTk5YTAxOGFkMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Q0pLLnR4dApAQCAtMCwwICsxLDEwIEBACiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107Cisk
RVhfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7
CiskTlNfU1VCID0gW1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7
CiskSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTM0MTQ2MzU1NjY2
YmQxODExZGNjODE3Njc1NzNkYTM0MGMwMDg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50
eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9
IFtcdTAwMjFcdTAwM0ZcdUZGMDFcdUZGMUZdOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtc
dTIwMjVcdTIwMjZdOworJElTX1NVQiA9IFtcdTAwM0FcdTAwM0JdOworJE5TX1NVQiA9IFtcdTIw
M0NcdTIwNDdcdTIwNDhcdTIwNDlcdTMwMDVcdTMwMUNcdTMwM0JcdTMwOURcdTMwOUVcdTMwQTBc
dTMwRkJcdTMwRkRcdTMwRkVcdUZGMUFcdUZGMUJcdUZGNjVdOworJFBPX1NVQiA9IFtcdTAwMjVc
dTAwQTJcdTAwQjBcdTIwMzBcdTIwMzJcdTIwMzNcdTIxMDNcdUZGMDVcdUZGRTBdOworJFBSX1NV
QiA9IFtcdTAwMjRcdTAwQTNcdTAwQTVcdTIwQUNcdTIxMTZcdUZGMDRcdUZGRTFcdUZGRTVdOwor
JElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQ
T19TVUIgJFBSX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4
dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2ODk2OTlkOGQwZTRjMzY4MzRiMmZhZTI1
OTMyNzc1N2EyNGQxM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApAQCAtMCww
ICsxLDEwIEBACiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7Cisk
SU5fU1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAw
NVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBGRFx1MzBGRV07CiskUE9fU1VCID0gJyc7CiskUFJfU1VC
ID0gJyc7CiskSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1OWZjZjBmOGE5
OTIyMTIwZWJiMTFkZDVkYTQ0MTdmOTI2NzYyNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50
eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NV
QiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBP
X1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pd
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0
ZjM2YzkwMjA2OWYzYTZjNWNkODAzMzg1NDlmYjE5OWEwMThhZDMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbENKSy50eHQKQEAgLTAsMCArMSwxMCBAQAorJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNd
OworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9
ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9
ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NjM1NTllYjFlZDY0ZjI2M2Q4OWUxNjJkMzE3NzE5ODdjZGZjZmI0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxOb25DSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIgPSAnJzsKKyRFWF9T
VUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyRO
U19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENK
XTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xNTlmY2YwZjhhOTkyMjEyMGViYjExZGQ1ZGE0NDE3ZjkyNjc2MjcyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CkBAIC0wLDAgKzEsMTAgQEAKKyRCQV9TVUIg
PSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19T
VUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJ
RF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4
dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTlmY2YwZjhhOTkyMjEyMGViYjExZGQ1
ZGE0NDE3ZjkyNjc2MjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CkBAIC0w
LDAgKzEsMTAgQEAKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsK
KyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAn
JzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvY21lbW9yeS5o
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9jbWVtb3J5LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDE4MmI1YWE3ZDE2NjkzMDA2OWQ1MjQyM2M3YTM3M2U3MmNlYjUyNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvY21l
bW9yeS5oCkBAIC0wLDAgKzEsNjAwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisq
ICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoK
KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxlIENNRU1PUlkuSAorKgorKiAgQ29udGFp
bnMgc3RkbGliLmgvc3RyaW5nLmggbWVtb3J5IGZ1bmN0aW9ucworKgorKiBAYXV0aG9yICAgICAg
IEJlcnRyYW5kIEEuIERhbWliYQorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBE
YXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDYvMjAvOTggICAgIEJlcnRy
YW5kICAgIENyZWF0ZWQuCisqICAwNS8wMy85OSAgICAgc3RlcGhlbiAgICAgQ2hhbmdlZCBmcm9t
IGZ1bmN0aW9ucyB0byBtYWNyb3MuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNp
Zm5kZWYgQ01FTU9SWV9ICisjZGVmaW5lIENNRU1PUllfSAorCisjaW5jbHVkZSAidW5pY29kZS91
dHlwZXMuaCIKKworI2luY2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2lu
Y2x1ZGUgInVuaWNvZGUvbG9jYWxwb2ludGVyLmgiCisKKyNpZiBVX0RFQlVHICYmIGRlZmluZWQo
VVBSVl9NQUxMT0NfQ09VTlQpCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRpZgorCisjaWYgVV9E
RUJVRworCisvKgorICogVGhlIEMrKyBzdGFuZGFyZCByZXF1aXJlcyB0aGF0IHRoZSBzb3VyY2Ug
cG9pbnRlciBmb3IgbWVtY3B5KCkgJiBtZW1tb3ZlKCkKKyAqIGlzIHZhbGlkLCBub3QgTlVMTCwg
YW5kIG5vdCBhdCB0aGUgZW5kIG9mIGFuIGFsbG9jYXRlZCBtZW1vcnkgYmxvY2suCisgKiBJbiBk
ZWJ1ZyBtb2RlLCB3ZSByZWFkIG9uZSBieXRlIGZyb20gdGhlIHNvdXJjZSBwb2ludCB0byB2ZXJp
ZnkgdGhhdCBpdCdzCisgKiBhIHZhbGlkLCByZWFkYWJsZSBwb2ludGVyLgorICovCisKK1VfQ0FQ
SSB2b2lkIHVwcnZfY2hlY2tWYWxpZE1lbW9yeShjb25zdCB2b2lkICpwLCBzaXplX3Qgbik7CisK
KyNkZWZpbmUgdXBydl9tZW1jcHkoZHN0LCBzcmMsIHNpemUpICggXAorICAgIHVwcnZfY2hlY2tW
YWxpZE1lbW9yeShzcmMsIDEpLCBcCisgICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIG1lbWNw
eShkc3QsIHNyYywgc2l6ZSkpCisjZGVmaW5lIHVwcnZfbWVtbW92ZShkc3QsIHNyYywgc2l6ZSkg
KCBcCisgICAgdXBydl9jaGVja1ZhbGlkTWVtb3J5KHNyYywgMSksIFwKKyAgICBVX1NUQU5EQVJE
X0NQUF9OQU1FU1BBQ0UgbWVtbW92ZShkc3QsIHNyYywgc2l6ZSkpCisKKyNlbHNlCisKKyNkZWZp
bmUgdXBydl9tZW1jcHkoZHN0LCBzcmMsIHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBt
ZW1jcHkoZHN0LCBzcmMsIHNpemUpCisjZGVmaW5lIHVwcnZfbWVtbW92ZShkc3QsIHNyYywgc2l6
ZSkgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIG1lbW1vdmUoZHN0LCBzcmMsIHNpemUpCisKKyNl
bmRpZiAgLyogVV9ERUJVRyAqLworCisvKioKKyAqIFxkZWYgVVBSVl9MRU5HVEhPRgorICogQ29u
dmVuaWVuY2UgbWFjcm8gdG8gZGV0ZXJtaW5lIHRoZSBsZW5ndGggb2YgYSBmaXhlZCBhcnJheSBh
dCBjb21waWxlLXRpbWUuCisgKiBAcGFyYW0gYXJyYXkgQSBmaXhlZCBsZW5ndGggYXJyYXkKKyAq
IEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgYXJyYXksIGluIGVsZW1lbnRzCisgKiBAaW50ZXJu
YWwKKyAqLworI2RlZmluZSBVUFJWX0xFTkdUSE9GKGFycmF5KSAoaW50MzJfdCkoc2l6ZW9mKGFy
cmF5KS9zaXplb2YoKGFycmF5KVswXSkpCisjZGVmaW5lIHVwcnZfbWVtc2V0KGJ1ZmZlciwgbWFy
aywgc2l6ZSkgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIG1lbXNldChidWZmZXIsIG1hcmssIHNp
emUpCisjZGVmaW5lIHVwcnZfbWVtY21wKGJ1ZmZlcjEsIGJ1ZmZlcjIsIHNpemUpIFVfU1RBTkRB
UkRfQ1BQX05BTUVTUEFDRSBtZW1jbXAoYnVmZmVyMSwgYnVmZmVyMixzaXplKQorCitVX0NBUEkg
dm9pZCAqIFVfRVhQT1JUMgordXBydl9tYWxsb2Moc2l6ZV90IHMpIFVfTUFMTE9DX0FUVFIgVV9B
TExPQ19TSVpFX0FUVFIoMSk7CisKK1VfQ0FQSSB2b2lkICogVV9FWFBPUlQyCit1cHJ2X3JlYWxs
b2Modm9pZCAqbWVtLCBzaXplX3Qgc2l6ZSkgVV9BTExPQ19TSVpFX0FUVFIoMik7CisKK1VfQ0FQ
SSB2b2lkIFVfRVhQT1JUMgordXBydl9mcmVlKHZvaWQgKm1lbSk7CisKK1VfQ0FQSSB2b2lkICog
VV9FWFBPUlQyCit1cHJ2X2NhbGxvYyhzaXplX3QgbnVtLCBzaXplX3Qgc2l6ZSkgVV9NQUxMT0Nf
QVRUUiBVX0FMTE9DX1NJWkVfQVRUUjIoMSwyKTsKKworLyoqCisgKiBUaGlzIHNob3VsZCBhbGln
biB0aGUgbWVtb3J5IHByb3Blcmx5IG9uIGFueSBtYWNoaW5lLgorICogVGhpcyBpcyB2ZXJ5IHVz
ZWZ1bCBmb3IgdGhlIHNhZmVDbG9uZSBmdW5jdGlvbnMuCisgKi8KK3R5cGVkZWYgdW5pb24gewor
ICAgIGxvbmcgICAgdDE7CisgICAgZG91YmxlICB0MjsKKyAgICB2b2lkICAgKnQzOworfSBVQWxp
Z25lZE1lbW9yeTsKKworLyoqCisgKiBHZXQgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2Yg
YSBwb2ludGVyIChhIG1lbW9yeSBhZGRyZXNzKS4KKyAqIEZvciBleGFtcGxlLCB3aXRoIGEgbWFz
ayBvZiAzLCB0aGUgbWFjcm8gZ2V0cyB0aGUgMiBsZWFzdCBzaWduaWZpY2FudCBiaXRzLAorICog
d2hpY2ggd2lsbCBiZSAwIGlmIHRoZSBwb2ludGVyIGlzIDMyLWJpdCAoNC1ieXRlKSBhbGlnbmVk
LgorICoKKyAqIHB0cmRpZmZfdCBpcyB0aGUgbW9zdCBhcHByb3ByaWF0ZSBpbnRlZ2VyIHR5cGUg
dG8gY2FzdCB0by4KKyAqIHNpemVfdCBzaG91bGQgd29yayB0b28sIHNpbmNlIG9uIG1vc3QgKG9y
IGFsbD8pIHBsYXRmb3JtcyBpdCBoYXMgdGhlIHNhbWUKKyAqIHdpZHRoIGFzIHB0cmRpZmZfdC4K
KyAqLworI2RlZmluZSBVX1BPSU5URVJfTUFTS19MU0IocHRyLCBtYXNrKSAoKChwdHJkaWZmX3Qp
KGNoYXIgKikocHRyKSkgJiAobWFzaykpCisKKy8qKgorICogR2V0IHRoZSBhbW91bnQgb2YgYnl0
ZXMgdGhhdCBhIHBvaW50ZXIgaXMgb2ZmIGJ5IGZyb20KKyAqIHRoZSBwcmV2aW91cyBVQWxpZ25l
ZE1lbW9yeS1hbGlnbmVkIHBvaW50ZXIuCisgKi8KKyNkZWZpbmUgVV9BTElHTk1FTlRfT0ZGU0VU
KHB0cikgVV9QT0lOVEVSX01BU0tfTFNCKHB0ciwgc2l6ZW9mKFVBbGlnbmVkTWVtb3J5KSAtIDEp
CisKKy8qKgorICogR2V0IHRoZSBhbW91bnQgb2YgYnl0ZXMgdG8gYWRkIHRvIGEgcG9pbnRlcgor
ICogaW4gb3JkZXIgdG8gZ2V0IHRoZSBuZXh0IFVBbGlnbmVkTWVtb3J5LWFsaWduZWQgYWRkcmVz
cy4KKyAqLworI2RlZmluZSBVX0FMSUdOTUVOVF9PRkZTRVRfVVAocHRyKSAoc2l6ZW9mKFVBbGln
bmVkTWVtb3J5KSAtIFVfQUxJR05NRU5UX09GRlNFVChwdHIpKQorCisvKioKKyAgKiAgSGVhcCBj
bGVhbiB1cCBmdW5jdGlvbiwgY2FsbGVkIGZyb20gdV9jbGVhbnVwKCkKKyAgKiAgICBDbGVhcnMg
YW55IHVzZXIgaGVhcCBmdW5jdGlvbnMgZnJvbSB1X3NldE1lbW9yeUZ1bmN0aW9ucygpCisgICog
ICAgRG9lcyBOT1QgZGVhbGxvY2F0ZSBhbnkgcmVtYWluaW5nIGFsbG9jYXRlZCBtZW1vcnkuCisg
ICovCitVX0NGVU5DIFVCb29sIAorY21lbW9yeV9jbGVhbnVwKHZvaWQpOworCisvKioKKyAqIEEg
ZnVuY3Rpb24gY2FsbGVkIGJ5IDxUVD51aGFzaF9yZW1vdmU8L1RUPiwKKyAqIDxUVD51aGFzaF9j
bG9zZTwvVFQ+LCBvciA8VFQ+dWhhc2hfcHV0PC9UVD4gdG8gZGVsZXRlCisgKiBhbiBleGlzdGlu
ZyBrZXkgb3IgdmFsdWUuCisgKiBAcGFyYW0gb2JqIEEga2V5IG9yIHZhbHVlIHN0b3JlZCBpbiBh
IGhhc2h0YWJsZQorICogQHNlZSB1cHJ2X2RlbGV0ZVVPYmplY3QKKyAqLwordHlwZWRlZiB2b2lk
IFVfQ0FMTENPTlYgVU9iamVjdERlbGV0ZXIodm9pZCogb2JqKTsKKworLyoqCisgKiBEZWxldGVy
IGZvciBVT2JqZWN0IGluc3RhbmNlcy4KKyAqIFdvcmtzIGZvciBhbGwgc3ViY2xhc3NlcyBvZiBV
T2JqZWN0IGJlY2F1c2UgaXQgaGFzIGEgdmlydHVhbCBkZXN0cnVjdG9yLgorICovCitVX0NBUEkg
dm9pZCBVX0VYUE9SVDIKK3VwcnZfZGVsZXRlVU9iamVjdCh2b2lkICpvYmopOworCisjaWZkZWYg
X19jcGx1c3BsdXMKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiAiU21hcnQgcG9pbnRl
ciIgY2xhc3MsIGRlbGV0ZXMgbWVtb3J5IHZpYSB1cHJ2X2ZyZWUoKS4KKyAqIEZvciBtb3N0IG1l
dGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKiBBZGRzIG9wZXJh
dG9yW10gZm9yIGFycmF5IGl0ZW0gYWNjZXNzLgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVyQmFz
ZQorICovCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgTG9jYWxNZW1vcnkgOiBwdWJsaWMg
TG9jYWxQb2ludGVyQmFzZTxUPiB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogQ29uc3RydWN0
b3IgdGFrZXMgb3duZXJzaGlwLgorICAgICAqIEBwYXJhbSBwIHNpbXBsZSBwb2ludGVyIHRvIGFu
IGFycmF5IG9mIFQgaXRlbXMgdGhhdCBpcyBhZG9wdGVkCisgICAgICovCisgICAgZXhwbGljaXQg
TG9jYWxNZW1vcnkoVCAqcD1OVUxMKSA6IExvY2FsUG9pbnRlckJhc2U8VD4ocCkge30KKyAgICAv
KioKKyAgICAgKiBEZXN0cnVjdG9yIGRlbGV0ZXMgdGhlIG1lbW9yeSBpdCBvd25zLgorICAgICAq
LworICAgIH5Mb2NhbE1lbW9yeSgpIHsKKyAgICAgICAgdXBydl9mcmVlKExvY2FsUG9pbnRlckJh
c2U8VD46OnB0cik7CisgICAgfQorICAgIC8qKgorICAgICAqIERlbGV0ZXMgdGhlIGFycmF5IGl0
IG93bnMsCisgICAgICogYW5kIGFkb3B0cyAodGFrZXMgb3duZXJzaGlwIG9mKSB0aGUgb25lIHBh
c3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gcCBzaW1wbGUgcG9pbnRlciB0byBhbiBhcnJheSBvZiBU
IGl0ZW1zIHRoYXQgaXMgYWRvcHRlZAorICAgICAqLworICAgIHZvaWQgYWRvcHRJbnN0ZWFkKFQg
KnApIHsKKyAgICAgICAgdXBydl9mcmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7CisgICAg
ICAgIExvY2FsUG9pbnRlckJhc2U8VD46OnB0cj1wOworICAgIH0KKyAgICAvKioKKyAgICAgKiBE
ZWxldGVzIHRoZSBhcnJheSBpdCBvd25zLCBhbGxvY2F0ZXMgYSBuZXcgb25lIGFuZCByZXNldCBp
dHMgYnl0ZXMgdG8gMC4KKyAgICAgKiBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgcG9pbnRlci4KKyAg
ICAgKiBJZiB0aGUgYWxsb2NhdGlvbiBmYWlscywgdGhlbiB0aGUgY3VycmVudCBhcnJheSBpcyB1
bmNoYW5nZWQgYW5kCisgICAgICogdGhpcyBtZXRob2QgcmV0dXJucyBOVUxMLgorICAgICAqIEBw
YXJhbSBuZXdDYXBhY2l0eSBtdXN0IGJlID4wCisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVk
IGFycmF5IHBvaW50ZXIsIG9yIE5VTEwgaWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkCisgICAgICov
CisgICAgaW5saW5lIFQgKmFsbG9jYXRlSW5zdGVhZEFuZFJlc2V0KGludDMyX3QgbmV3Q2FwYWNp
dHk9MSk7CisgICAgLyoqCisgICAgICogRGVsZXRlcyB0aGUgYXJyYXkgaXQgb3ducyBhbmQgYWxs
b2NhdGVzIGEgbmV3IG9uZSwgY29weWluZyBsZW5ndGggVCBpdGVtcy4KKyAgICAgKiBSZXR1cm5z
IHRoZSBuZXcgYXJyYXkgcG9pbnRlci4KKyAgICAgKiBJZiB0aGUgYWxsb2NhdGlvbiBmYWlscywg
dGhlbiB0aGUgY3VycmVudCBhcnJheSBpcyB1bmNoYW5nZWQgYW5kCisgICAgICogdGhpcyBtZXRo
b2QgcmV0dXJucyBOVUxMLgorICAgICAqIEBwYXJhbSBuZXdDYXBhY2l0eSBtdXN0IGJlID4wCisg
ICAgICogQHBhcmFtIGxlbmd0aCBudW1iZXIgb2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0
aGUgb2xkIGFycmF5IHRvIHRoZSBuZXcgb25lOworICAgICAqICAgICAgICAgICAgICAgbXVzdCBi
ZSBubyBtb3JlIHRoYW4gdGhlIGNhcGFjaXR5IG9mIHRoZSBvbGQgYXJyYXksCisgICAgICogICAg
ICAgICAgICAgICB3aGljaCB0aGUgY2FsbGVyIG11c3QgdHJhY2sgYmVjYXVzZSB0aGUgTG9jYWxN
ZW1vcnkgZG9lcyBub3QgdHJhY2sgaXQKKyAgICAgKiBAcmV0dXJuIHRoZSBhbGxvY2F0ZWQgYXJy
YXkgcG9pbnRlciwgb3IgTlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQKKyAgICAgKi8KKyAg
ICBpbmxpbmUgVCAqYWxsb2NhdGVJbnN0ZWFkQW5kQ29weShpbnQzMl90IG5ld0NhcGFjaXR5PTEs
IGludDMyX3QgbGVuZ3RoPTApOworICAgIC8qKgorICAgICAqIEFycmF5IGl0ZW0gYWNjZXNzICh3
cml0YWJsZSkuCisgICAgICogTm8gaW5kZXggYm91bmRzIGNoZWNrLgorICAgICAqIEBwYXJhbSBp
IGFycmF5IGluZGV4CisgICAgICogQHJldHVybiByZWZlcmVuY2UgdG8gdGhlIGFycmF5IGl0ZW0K
KyAgICAgKi8KKyAgICBUICZvcGVyYXRvcltdKHB0cmRpZmZfdCBpKSBjb25zdCB7IHJldHVybiBM
b2NhbFBvaW50ZXJCYXNlPFQ+OjpwdHJbaV07IH0KK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
CitpbmxpbmUgVCAqTG9jYWxNZW1vcnk8VD46OmFsbG9jYXRlSW5zdGVhZEFuZFJlc2V0KGludDMy
X3QgbmV3Q2FwYWNpdHkpIHsKKyAgICBpZihuZXdDYXBhY2l0eT4wKSB7CisgICAgICAgIFQgKnA9
KFQgKil1cHJ2X21hbGxvYyhuZXdDYXBhY2l0eSpzaXplb2YoVCkpOworICAgICAgICBpZihwIT1O
VUxMKSB7CisgICAgICAgICAgICB1cHJ2X21lbXNldChwLCAwLCBuZXdDYXBhY2l0eSpzaXplb2Yo
VCkpOworICAgICAgICAgICAgdXBydl9mcmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7Cisg
ICAgICAgICAgICBMb2NhbFBvaW50ZXJCYXNlPFQ+OjpwdHI9cDsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gcDsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9
CisKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSBUICpMb2NhbE1lbW9yeTxUPjo6YWxs
b2NhdGVJbnN0ZWFkQW5kQ29weShpbnQzMl90IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aCkg
eworICAgIGlmKG5ld0NhcGFjaXR5PjApIHsKKyAgICAgICAgVCAqcD0oVCAqKXVwcnZfbWFsbG9j
KG5ld0NhcGFjaXR5KnNpemVvZihUKSk7CisgICAgICAgIGlmKHAhPU5VTEwpIHsKKyAgICAgICAg
ICAgIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICAgICAgaWYobGVuZ3RoPm5ld0NhcGFjaXR5
KSB7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD1uZXdDYXBhY2l0eTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgdXBydl9tZW1jcHkocCwgTG9jYWxQb2ludGVyQmFzZTxU
Pjo6cHRyLCBsZW5ndGgqc2l6ZW9mKFQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHVw
cnZfZnJlZShMb2NhbFBvaW50ZXJCYXNlPFQ+OjpwdHIpOworICAgICAgICAgICAgTG9jYWxQb2lu
dGVyQmFzZTxUPjo6cHRyPXA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHA7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKioKKyAqIFNpbXBsZSBh
cnJheS9idWZmZXIgbWFuYWdlbWVudCBjbGFzcyB1c2luZyB1cHJ2X21hbGxvYygpIGFuZCB1cHJ2
X2ZyZWUoKS4KKyAqIFByb3ZpZGVzIGFuIGludGVybmFsIGFycmF5IHdpdGggZml4ZWQgY2FwYWNp
dHkuIENhbiBhbGlhcyBhbm90aGVyIGFycmF5CisgKiBvciBhbGxvY2F0ZSBvbmUuCisgKgorICog
VGhlIGFycmF5IGFkZHJlc3MgaXMgcHJvcGVybHkgYWxpZ25lZCBmb3IgdHlwZSBULiBJdCBtaWdo
dCBub3QgYmUgcHJvcGVybHkKKyAqIGFsaWduZWQgZm9yIHR5cGVzIGxhcmdlciB0aGFuIFQgKG9y
IGxhcmdlciB0aGFuIHRoZSBsYXJnZXN0IHN1YnR5cGUgb2YgVCkuCisgKgorICogVW5saWtlIExv
Y2FsTWVtb3J5IGFuZCBMb2NhbEFycmF5LCB0aGlzIGNsYXNzIG5ldmVyIGFkb3B0cworICogKHRh
a2VzIG93bmVyc2hpcCBvZikgYW5vdGhlciBhcnJheS4KKyAqLwordGVtcGxhdGU8dHlwZW5hbWUg
VCwgaW50MzJfdCBzdGFja0NhcGFjaXR5PgorY2xhc3MgTWF5YmVTdGFja0FycmF5IHsKK3B1Ymxp
YzoKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yIGluaXRpYWxpemVzIHdpdGgg
aW50ZXJuYWwgVFtzdGFja0NhcGFjaXR5XSBidWZmZXIuCisgICAgICovCisgICAgTWF5YmVTdGFj
a0FycmF5KCkgOiBwdHIoc3RhY2tBcnJheSksIGNhcGFjaXR5KHN0YWNrQ2FwYWNpdHkpLCBuZWVk
VG9SZWxlYXNlKEZBTFNFKSB7fQorICAgIC8qKgorICAgICAqIERlc3RydWN0b3IgZGVsZXRlcyB0
aGUgYXJyYXkgKGlmIG93bmVkKS4KKyAgICAgKi8KKyAgICB+TWF5YmVTdGFja0FycmF5KCkgeyBy
ZWxlYXNlQXJyYXkoKTsgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGFycmF5IGNhcGFj
aXR5IChudW1iZXIgb2YgVCBpdGVtcykuCisgICAgICogQHJldHVybiBhcnJheSBjYXBhY2l0eQor
ICAgICAqLworICAgIGludDMyX3QgZ2V0Q2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBjYXBhY2l0
eTsgfQorICAgIC8qKgorICAgICAqIEFjY2VzcyB3aXRob3V0IG93bmVyc2hpcCBjaGFuZ2UuCisg
ICAgICogQHJldHVybiB0aGUgYXJyYXkgcG9pbnRlcgorICAgICAqLworICAgIFQgKmdldEFsaWFz
KCkgY29uc3QgeyByZXR1cm4gcHRyOyB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYXJy
YXkgbGltaXQuIFNpbXBsZSBjb252ZW5pZW5jZSBtZXRob2QuCisgICAgICogQHJldHVybiBnZXRB
bGlhcygpK2dldENhcGFjaXR5KCkKKyAgICAgKi8KKyAgICBUICpnZXRBcnJheUxpbWl0KCkgY29u
c3QgeyByZXR1cm4gZ2V0QWxpYXMoKStjYXBhY2l0eTsgfQorICAgIC8vIE5vICJvcGVyYXRvciBU
ICooKSBjb25zdCIgYmVjYXVzZSB0aGF0IGNhbiBtYWtlCisgICAgLy8gZXhwcmVzc2lvbnMgbGlr
ZSBtYnNbaW5kZXhdIGFtYmlndW91cyBmb3Igc29tZSBjb21waWxlcnMuCisgICAgLyoqCisgICAg
ICogQXJyYXkgaXRlbSBhY2Nlc3MgKGNvbnN0KS4KKyAgICAgKiBObyBpbmRleCBib3VuZHMgY2hl
Y2suCisgICAgICogQHBhcmFtIGkgYXJyYXkgaW5kZXgKKyAgICAgKiBAcmV0dXJuIHJlZmVyZW5j
ZSB0byB0aGUgYXJyYXkgaXRlbQorICAgICAqLworICAgIGNvbnN0IFQgJm9wZXJhdG9yW10ocHRy
ZGlmZl90IGkpIGNvbnN0IHsgcmV0dXJuIHB0cltpXTsgfQorICAgIC8qKgorICAgICAqIEFycmF5
IGl0ZW0gYWNjZXNzICh3cml0YWJsZSkuCisgICAgICogTm8gaW5kZXggYm91bmRzIGNoZWNrLgor
ICAgICAqIEBwYXJhbSBpIGFycmF5IGluZGV4CisgICAgICogQHJldHVybiByZWZlcmVuY2UgdG8g
dGhlIGFycmF5IGl0ZW0KKyAgICAgKi8KKyAgICBUICZvcGVyYXRvcltdKHB0cmRpZmZfdCBpKSB7
IHJldHVybiBwdHJbaV07IH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSAoaWYg
b3duZWQpIGFuZCBhbGlhc2VzIGFub3RoZXIgb25lLCBubyB0cmFuc2ZlciBvZiBvd25lcnNoaXAu
CisgICAgICogSWYgdGhlIGFyZ3VtZW50cyBhcmUgaWxsZWdhbCwgdGhlbiB0aGUgY3VycmVudCBh
cnJheSBpcyB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIG90aGVyQXJyYXkgbXVzdCBub3QgYmUg
TlVMTAorICAgICAqIEBwYXJhbSBvdGhlckNhcGFjaXR5IG11c3QgYmUgPjAKKyAgICAgKi8KKyAg
ICB2b2lkIGFsaWFzSW5zdGVhZChUICpvdGhlckFycmF5LCBpbnQzMl90IG90aGVyQ2FwYWNpdHkp
IHsKKyAgICAgICAgaWYob3RoZXJBcnJheSE9TlVMTCAmJiBvdGhlckNhcGFjaXR5PjApIHsKKyAg
ICAgICAgICAgIHJlbGVhc2VBcnJheSgpOworICAgICAgICAgICAgcHRyPW90aGVyQXJyYXk7Cisg
ICAgICAgICAgICBjYXBhY2l0eT1vdGhlckNhcGFjaXR5OworICAgICAgICAgICAgbmVlZFRvUmVs
ZWFzZT1GQUxTRTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRo
ZSBhcnJheSAoaWYgb3duZWQpIGFuZCBhbGxvY2F0ZXMgYSBuZXcgb25lLCBjb3B5aW5nIGxlbmd0
aCBUIGl0ZW1zLgorICAgICAqIFJldHVybnMgdGhlIG5ldyBhcnJheSBwb2ludGVyLgorICAgICAq
IElmIHRoZSBhbGxvY2F0aW9uIGZhaWxzLCB0aGVuIHRoZSBjdXJyZW50IGFycmF5IGlzIHVuY2hh
bmdlZCBhbmQKKyAgICAgKiB0aGlzIG1ldGhvZCByZXR1cm5zIE5VTEwuCisgICAgICogQHBhcmFt
IG5ld0NhcGFjaXR5IGNhbiBiZSBsZXNzIHRoYW4gb3IgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50
IGNhcGFjaXR5OworICAgICAqICAgICAgICAgICAgICAgICAgICBtdXN0IGJlID4wCisgICAgICog
QHBhcmFtIGxlbmd0aCBudW1iZXIgb2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xk
IGFycmF5IHRvIHRoZSBuZXcgb25lCisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIGFycmF5
IHBvaW50ZXIsIG9yIE5VTEwgaWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAg
aW5saW5lIFQgKnJlc2l6ZShpbnQzMl90IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aD0wKTsK
KyAgICAvKioKKyAgICAgKiBHaXZlcyB1cCBvd25lcnNoaXAgb2YgdGhlIGFycmF5IGlmIG93bmVk
LCBvciBlbHNlIGNsb25lcyBpdCwKKyAgICAgKiBjb3B5aW5nIGxlbmd0aCBUIGl0ZW1zOyByZXNl
dHMgaXRzZWxmIHRvIHRoZSBpbnRlcm5hbCBzdGFjayBhcnJheS4KKyAgICAgKiBSZXR1cm5zIE5V
TEwgaWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkLgorICAgICAqIEBwYXJhbSBsZW5ndGggbnVtYmVy
IG9mIFQgaXRlbXMgdG8gY29weSB3aGVuIGNsb25pbmcsCisgICAgICogICAgICAgIGFuZCBjYXBh
Y2l0eSBvZiB0aGUgY2xvbmUgd2hlbiBjbG9uaW5nCisgICAgICogQHBhcmFtIHJlc3VsdENhcGFj
aXR5IHdpbGwgYmUgc2V0IHRvIHRoZSByZXR1cm5lZCBhcnJheSdzIGNhcGFjaXR5IChvdXRwdXQt
b25seSkKKyAgICAgKiBAcmV0dXJuIHRoZSBhcnJheSBwb2ludGVyOworICAgICAqICAgICAgICAg
Y2FsbGVyIGJlY29tZXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSBhcnJheQorICAgICAq
LworICAgIGlubGluZSBUICpvcnBoYW5PckNsb25lKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90ICZy
ZXN1bHRDYXBhY2l0eSk7Citwcml2YXRlOgorICAgIFQgKnB0cjsKKyAgICBpbnQzMl90IGNhcGFj
aXR5OworICAgIFVCb29sIG5lZWRUb1JlbGVhc2U7CisgICAgVCBzdGFja0FycmF5W3N0YWNrQ2Fw
YWNpdHldOworICAgIHZvaWQgcmVsZWFzZUFycmF5KCkgeworICAgICAgICBpZihuZWVkVG9SZWxl
YXNlKSB7CisgICAgICAgICAgICB1cHJ2X2ZyZWUocHRyKTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICAvKiBObyBjb21wYXJpc29uIG9wZXJhdG9ycyB3aXRoIG90aGVyIE1heWJlU3RhY2tBcnJheSdz
LiAqLworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVy
Ki8pIHtyZXR1cm4gRkFMU0U7fQorICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBNYXliZVN0YWNr
QXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1cm4gVFJVRTt9CisgICAgLyogTm8gb3duZXJzaGlwIHRy
YW5zZmVyOiBObyBjb3B5IGNvbnN0cnVjdG9yLCBubyBhc3NpZ25tZW50IG9wZXJhdG9yLiAqLwor
ICAgIE1heWJlU3RhY2tBcnJheShjb25zdCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVyKi8pIHt9
CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgTWF5YmVTdGFja0FycmF5ICYgLypvdGhlciovKSB7
fQorCisgICAgLy8gTm8gaGVhcCBhbGxvY2F0aW9uLiBVc2Ugb25seSBvbiB0aGUgc3RhY2suCisg
ICAgLy8gICAoRGVjbGFyaW5nIHRoZXNlIGZ1bmN0aW9ucyBwcml2YXRlIHRyaWdnZXJzIGEgY2Fz
Y2FkZSBvZiBwcm9ibGVtczoKKyAgICAvLyAgICAgIE1TVkMgaW5zaXN0cyBvbiBleHBvcnRpbmcg
YW4gaW5zdGFudGlhdGlvbiBvZiBNYXliZVN0YWNrQXJyYXksIHdoaWNoCisgICAgLy8gICAgICBy
ZXF1aXJlcyB0aGF0IGFsbCBmdW5jdGlvbnMgYmUgZGVmaW5lZC4KKyAgICAvLyAgICAgIEFuIGVt
cHR5IGltcGxlbWVudGF0aW9uIG9mIG5ldygpIGlzIHJlamVjdGVkLCBpdCBtdXN0IHJldHVybiBh
IHZhbHVlLgorICAgIC8vICAgICAgUmV0dXJuaW5nIE5VTEwgaXMgcmVqZWN0ZWQgYnkgZ2NjIGZv
ciBvcGVyYXRvciBuZXcuCisgICAgLy8gICAgICBUaGUgZXhwZWRpZW50IHRoaW5nIGlzIGp1c3Qg
bm90IHRvIG92ZXJyaWRlIG9wZXJhdG9yIG5ldy4KKyAgICAvLyAgICAgIFdoaWxlIHJlbGF0aXZl
bHkgcG9pbnRsZXNzLCBoZWFwIGFsbG9jYXRlZCBpbnN0YW5jZXMgd2lsbCBmdW5jdGlvbi4KKyAg
ICAvLyBzdGF0aWMgdm9pZCAqIFVfRVhQT1JUMiBvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpOyAK
KyAgICAvLyBzdGF0aWMgdm9pZCAqIFVfRVhQT1JUMiBvcGVyYXRvciBuZXdbXShzaXplX3Qgc2l6
ZSk7CisjaWYgVV9IQVZFX1BMQUNFTUVOVF9ORVcKKyAgICAvLyBzdGF0aWMgdm9pZCAqIFVfRVhQ
T1JUMiBvcGVyYXRvciBuZXcoc2l6ZV90LCB2b2lkICpwdHIpOworI2VuZGlmCit9OworCit0ZW1w
bGF0ZTx0eXBlbmFtZSBULCBpbnQzMl90IHN0YWNrQ2FwYWNpdHk+CitpbmxpbmUgVCAqTWF5YmVT
dGFja0FycmF5PFQsIHN0YWNrQ2FwYWNpdHk+OjpyZXNpemUoaW50MzJfdCBuZXdDYXBhY2l0eSwg
aW50MzJfdCBsZW5ndGgpIHsKKyAgICBpZihuZXdDYXBhY2l0eT4wKSB7CisjaWYgVV9ERUJVRyAm
JiBkZWZpbmVkKFVQUlZfTUFMTE9DX0NPVU5UKQorICAgICAgOjpmcHJpbnRmKDo6c3RkZXJyLCJN
YXliZVN0YWNBcnJheSAocmVzaXplKSBhbGxvYyAlZCAqICVsdVxuIiwgbmV3Q2FwYWNpdHksc2l6
ZW9mKFQpKTsKKyNlbmRpZgorICAgICAgICBUICpwPShUICopdXBydl9tYWxsb2MobmV3Q2FwYWNp
dHkqc2l6ZW9mKFQpKTsKKyAgICAgICAgaWYocCE9TlVMTCkgeworICAgICAgICAgICAgaWYobGVu
Z3RoPjApIHsKKyAgICAgICAgICAgICAgICBpZihsZW5ndGg+Y2FwYWNpdHkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgbGVuZ3RoPWNhcGFjaXR5OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBpZihsZW5ndGg+bmV3Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVu
Z3RoPW5ld0NhcGFjaXR5OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1cHJ2
X21lbWNweShwLCBwdHIsIGxlbmd0aCpzaXplb2YoVCkpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgcmVsZWFzZUFycmF5KCk7CisgICAgICAgICAgICBwdHI9cDsKKyAgICAgICAgICAgIGNh
cGFjaXR5PW5ld0NhcGFjaXR5OworICAgICAgICAgICAgbmVlZFRvUmVsZWFzZT1UUlVFOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBwOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBO
VUxMOworICAgIH0KK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0NhcGFj
aXR5PgoraW5saW5lIFQgKk1heWJlU3RhY2tBcnJheTxULCBzdGFja0NhcGFjaXR5Pjo6b3JwaGFu
T3JDbG9uZShpbnQzMl90IGxlbmd0aCwgaW50MzJfdCAmcmVzdWx0Q2FwYWNpdHkpIHsKKyAgICBU
ICpwOworICAgIGlmKG5lZWRUb1JlbGVhc2UpIHsKKyAgICAgICAgcD1wdHI7CisgICAgfSBlbHNl
IGlmKGxlbmd0aDw9MCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9IGVsc2UgeworICAg
ICAgICBpZihsZW5ndGg+Y2FwYWNpdHkpIHsKKyAgICAgICAgICAgIGxlbmd0aD1jYXBhY2l0eTsK
KyAgICAgICAgfQorICAgICAgICBwPShUICopdXBydl9tYWxsb2MobGVuZ3RoKnNpemVvZihUKSk7
CisjaWYgVV9ERUJVRyAmJiBkZWZpbmVkKFVQUlZfTUFMTE9DX0NPVU5UKQorICAgICAgOjpmcHJp
bnRmKDo6c3RkZXJyLCJNYXliZVN0YWNBcnJheSAob3JwaGFuKSBhbGxvYyAlZCAqICVsdVxuIiwg
bGVuZ3RoLHNpemVvZihUKSk7CisjZW5kaWYKKyAgICAgICAgaWYocD09TlVMTCkgeworICAgICAg
ICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgdXBydl9tZW1jcHkocCwgcHRy
LCBsZW5ndGgqc2l6ZW9mKFQpKTsKKyAgICB9CisgICAgcmVzdWx0Q2FwYWNpdHk9bGVuZ3RoOwor
ICAgIHB0cj1zdGFja0FycmF5OworICAgIGNhcGFjaXR5PXN0YWNrQ2FwYWNpdHk7CisgICAgbmVl
ZFRvUmVsZWFzZT1GQUxTRTsKKyAgICByZXR1cm4gcDsKK30KKworLyoqCisgKiBWYXJpYW50IG9m
IE1heWJlU3RhY2tBcnJheSB0aGF0IGFsbG9jYXRlcyBhIGhlYWRlciBzdHJ1Y3QgYW5kIGFuIGFy
cmF5CisgKiBpbiBvbmUgY29udGlndW91cyBtZW1vcnkgYmxvY2ssIHVzaW5nIHVwcnZfbWFsbG9j
KCkgYW5kIHVwcnZfZnJlZSgpLgorICogUHJvdmlkZXMgaW50ZXJuYWwgbWVtb3J5IHdpdGggZml4
ZWQgYXJyYXkgY2FwYWNpdHkuIENhbiBhbGlhcyBhbm90aGVyIG1lbW9yeQorICogYmxvY2sgb3Ig
YWxsb2NhdGUgb25lLgorICogVGhlIHN0YWNrQ2FwYWNpdHkgaXMgdGhlIG51bWJlciBvZiBUIGl0
ZW1zIGluIHRoZSBpbnRlcm5hbCBtZW1vcnksCisgKiBub3QgY291bnRpbmcgdGhlIEggaGVhZGVy
LgorICogVW5saWtlIExvY2FsTWVtb3J5IGFuZCBMb2NhbEFycmF5LCB0aGlzIGNsYXNzIG5ldmVy
IGFkb3B0cworICogKHRha2VzIG93bmVyc2hpcCBvZikgYW5vdGhlciBtZW1vcnkgYmxvY2suCisg
Ki8KK3RlbXBsYXRlPHR5cGVuYW1lIEgsIHR5cGVuYW1lIFQsIGludDMyX3Qgc3RhY2tDYXBhY2l0
eT4KK2NsYXNzIE1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSB7CitwdWJsaWM6CisgICAgLyoqCisg
ICAgICogRGVmYXVsdCBjb25zdHJ1Y3RvciBpbml0aWFsaXplcyB3aXRoIGludGVybmFsIEgrVFtz
dGFja0NhcGFjaXR5XSBidWZmZXIuCisgICAgICovCisgICAgTWF5YmVTdGFja0hlYWRlckFuZEFy
cmF5KCkgOiBwdHIoJnN0YWNrSGVhZGVyKSwgY2FwYWNpdHkoc3RhY2tDYXBhY2l0eSksIG5lZWRU
b1JlbGVhc2UoRkFMU0UpIHt9CisgICAgLyoqCisgICAgICogRGVzdHJ1Y3RvciBkZWxldGVzIHRo
ZSBtZW1vcnkgKGlmIG93bmVkKS4KKyAgICAgKi8KKyAgICB+TWF5YmVTdGFja0hlYWRlckFuZEFy
cmF5KCkgeyByZWxlYXNlTWVtb3J5KCk7IH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBh
cnJheSBjYXBhY2l0eSAobnVtYmVyIG9mIFQgaXRlbXMpLgorICAgICAqIEByZXR1cm4gYXJyYXkg
Y2FwYWNpdHkKKyAgICAgKi8KKyAgICBpbnQzMl90IGdldENhcGFjaXR5KCkgY29uc3QgeyByZXR1
cm4gY2FwYWNpdHk7IH0KKyAgICAvKioKKyAgICAgKiBBY2Nlc3Mgd2l0aG91dCBvd25lcnNoaXAg
Y2hhbmdlLgorICAgICAqIEByZXR1cm4gdGhlIGhlYWRlciBwb2ludGVyCisgICAgICovCisgICAg
SCAqZ2V0QWxpYXMoKSBjb25zdCB7IHJldHVybiBwdHI7IH0KKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHRoZSBhcnJheSBzdGFydC4KKyAgICAgKiBAcmV0dXJuIGFycmF5IHN0YXJ0LCBzYW1lIGFk
ZHJlc3MgYXMgZ2V0QWxpYXMoKSsxCisgICAgICovCisgICAgVCAqZ2V0QXJyYXlTdGFydCgpIGNv
bnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VCAqPihnZXRBbGlhcygpKzEpOyB9CisgICAg
LyoqCisgICAgICogUmV0dXJucyB0aGUgYXJyYXkgbGltaXQuCisgICAgICogQHJldHVybiBhcnJh
eSBsaW1pdAorICAgICAqLworICAgIFQgKmdldEFycmF5TGltaXQoKSBjb25zdCB7IHJldHVybiBn
ZXRBcnJheVN0YXJ0KCkrY2FwYWNpdHk7IH0KKyAgICAvKioKKyAgICAgKiBBY2Nlc3Mgd2l0aG91
dCBvd25lcnNoaXAgY2hhbmdlLiBTYW1lIGFzIGdldEFsaWFzKCkuCisgICAgICogQSBjbGFzcyBp
bnN0YW5jZSBjYW4gYmUgdXNlZCBkaXJlY3RseSBpbiBleHByZXNzaW9ucyB0aGF0IHRha2UgYSBU
ICouCisgICAgICogQHJldHVybiB0aGUgaGVhZGVyIHBvaW50ZXIKKyAgICAgKi8KKyAgICBvcGVy
YXRvciBIICooKSBjb25zdCB7IHJldHVybiBwdHI7IH0KKyAgICAvKioKKyAgICAgKiBBcnJheSBp
dGVtIGFjY2VzcyAod3JpdGFibGUpLgorICAgICAqIE5vIGluZGV4IGJvdW5kcyBjaGVjay4KKyAg
ICAgKiBAcGFyYW0gaSBhcnJheSBpbmRleAorICAgICAqIEByZXR1cm4gcmVmZXJlbmNlIHRvIHRo
ZSBhcnJheSBpdGVtCisgICAgICovCisgICAgVCAmb3BlcmF0b3JbXShwdHJkaWZmX3QgaSkgeyBy
ZXR1cm4gZ2V0QXJyYXlTdGFydCgpW2ldOyB9CisgICAgLyoqCisgICAgICogRGVsZXRlcyB0aGUg
bWVtb3J5IGJsb2NrIChpZiBvd25lZCkgYW5kIGFsaWFzZXMgYW5vdGhlciBvbmUsIG5vIHRyYW5z
ZmVyIG9mIG93bmVyc2hpcC4KKyAgICAgKiBJZiB0aGUgYXJndW1lbnRzIGFyZSBpbGxlZ2FsLCB0
aGVuIHRoZSBjdXJyZW50IG1lbW9yeSBpcyB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIG90aGVy
QXJyYXkgbXVzdCBub3QgYmUgTlVMTAorICAgICAqIEBwYXJhbSBvdGhlckNhcGFjaXR5IG11c3Qg
YmUgPjAKKyAgICAgKi8KKyAgICB2b2lkIGFsaWFzSW5zdGVhZChIICpvdGhlck1lbW9yeSwgaW50
MzJfdCBvdGhlckNhcGFjaXR5KSB7CisgICAgICAgIGlmKG90aGVyTWVtb3J5IT1OVUxMICYmIG90
aGVyQ2FwYWNpdHk+MCkgeworICAgICAgICAgICAgcmVsZWFzZU1lbW9yeSgpOworICAgICAgICAg
ICAgcHRyPW90aGVyTWVtb3J5OworICAgICAgICAgICAgY2FwYWNpdHk9b3RoZXJDYXBhY2l0eTsK
KyAgICAgICAgICAgIG5lZWRUb1JlbGVhc2U9RkFMU0U7CisgICAgICAgIH0KKyAgICB9CisgICAg
LyoqCisgICAgICogRGVsZXRlcyB0aGUgbWVtb3J5IGJsb2NrIChpZiBvd25lZCkgYW5kIGFsbG9j
YXRlcyBhIG5ldyBvbmUsCisgICAgICogY29weWluZyB0aGUgaGVhZGVyIGFuZCBsZW5ndGggVCBh
cnJheSBpdGVtcy4KKyAgICAgKiBSZXR1cm5zIHRoZSBuZXcgaGVhZGVyIHBvaW50ZXIuCisgICAg
ICogSWYgdGhlIGFsbG9jYXRpb24gZmFpbHMsIHRoZW4gdGhlIGN1cnJlbnQgbWVtb3J5IGlzIHVu
Y2hhbmdlZCBhbmQKKyAgICAgKiB0aGlzIG1ldGhvZCByZXR1cm5zIE5VTEwuCisgICAgICogQHBh
cmFtIG5ld0NhcGFjaXR5IGNhbiBiZSBsZXNzIHRoYW4gb3IgZ3JlYXRlciB0aGFuIHRoZSBjdXJy
ZW50IGNhcGFjaXR5OworICAgICAqICAgICAgICAgICAgICAgICAgICBtdXN0IGJlID4wCisgICAg
ICogQHBhcmFtIGxlbmd0aCBudW1iZXIgb2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUg
b2xkIGFycmF5IHRvIHRoZSBuZXcgb25lCisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIHBv
aW50ZXIsIG9yIE5VTEwgaWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5s
aW5lIEggKnJlc2l6ZShpbnQzMl90IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aD0wKTsKKyAg
ICAvKioKKyAgICAgKiBHaXZlcyB1cCBvd25lcnNoaXAgb2YgdGhlIG1lbW9yeSBpZiBvd25lZCwg
b3IgZWxzZSBjbG9uZXMgaXQsCisgICAgICogY29weWluZyB0aGUgaGVhZGVyIGFuZCBsZW5ndGgg
VCBhcnJheSBpdGVtczsgcmVzZXRzIGl0c2VsZiB0byB0aGUgaW50ZXJuYWwgbWVtb3J5LgorICAg
ICAqIFJldHVybnMgTlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQuCisgICAgICogQHBhcmFt
IGxlbmd0aCBudW1iZXIgb2YgVCBpdGVtcyB0byBjb3B5IHdoZW4gY2xvbmluZywKKyAgICAgKiAg
ICAgICAgYW5kIGFycmF5IGNhcGFjaXR5IG9mIHRoZSBjbG9uZSB3aGVuIGNsb25pbmcKKyAgICAg
KiBAcGFyYW0gcmVzdWx0Q2FwYWNpdHkgd2lsbCBiZSBzZXQgdG8gdGhlIHJldHVybmVkIGFycmF5
J3MgY2FwYWNpdHkgKG91dHB1dC1vbmx5KQorICAgICAqIEByZXR1cm4gdGhlIGhlYWRlciBwb2lu
dGVyOworICAgICAqICAgICAgICAgY2FsbGVyIGJlY29tZXMgcmVzcG9uc2libGUgZm9yIGRlbGV0
aW5nIHRoZSBhcnJheQorICAgICAqLworICAgIGlubGluZSBIICpvcnBoYW5PckNsb25lKGludDMy
X3QgbGVuZ3RoLCBpbnQzMl90ICZyZXN1bHRDYXBhY2l0eSk7Citwcml2YXRlOgorICAgIEggKnB0
cjsKKyAgICBpbnQzMl90IGNhcGFjaXR5OworICAgIFVCb29sIG5lZWRUb1JlbGVhc2U7CisgICAg
Ly8gc3RhY2tIZWFkZXIgbXVzdCBwcmVjZWRlIHN0YWNrQXJyYXkgaW1tZWRpYXRlbHkuCisgICAg
SCBzdGFja0hlYWRlcjsKKyAgICBUIHN0YWNrQXJyYXlbc3RhY2tDYXBhY2l0eV07CisgICAgdm9p
ZCByZWxlYXNlTWVtb3J5KCkgeworICAgICAgICBpZihuZWVkVG9SZWxlYXNlKSB7CisgICAgICAg
ICAgICB1cHJ2X2ZyZWUocHRyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBObyBjb21wYXJp
c29uIG9wZXJhdG9ycyB3aXRoIG90aGVyIE1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSdzLiAqLwor
ICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgJiAvKm90
aGVyKi8pIHtyZXR1cm4gRkFMU0U7fQorICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBNYXliZVN0
YWNrSGVhZGVyQW5kQXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1cm4gVFJVRTt9CisgICAgLyogTm8g
b3duZXJzaGlwIHRyYW5zZmVyOiBObyBjb3B5IGNvbnN0cnVjdG9yLCBubyBhc3NpZ25tZW50IG9w
ZXJhdG9yLiAqLworICAgIE1heWJlU3RhY2tIZWFkZXJBbmRBcnJheShjb25zdCBNYXliZVN0YWNr
SGVhZGVyQW5kQXJyYXkgJiAvKm90aGVyKi8pIHt9CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3Qg
TWF5YmVTdGFja0hlYWRlckFuZEFycmF5ICYgLypvdGhlciovKSB7fQorCisgICAgLy8gTm8gaGVh
cCBhbGxvY2F0aW9uLiBVc2Ugb25seSBvbiB0aGUgc3RhY2suCisgICAgLy8gICAoRGVjbGFyaW5n
IHRoZXNlIGZ1bmN0aW9ucyBwcml2YXRlIHRyaWdnZXJzIGEgY2FzY2FkZSBvZiBwcm9ibGVtczsK
KyAgICAvLyAgICBzZWUgdGhlIE1heWJlU3RhY2tBcnJheSBjbGFzcyBmb3IgZGV0YWlscy4pCisg
ICAgLy8gc3RhdGljIHZvaWQgKiBVX0VYUE9SVDIgb3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKTsg
CisgICAgLy8gc3RhdGljIHZvaWQgKiBVX0VYUE9SVDIgb3BlcmF0b3IgbmV3W10oc2l6ZV90IHNp
emUpOworI2lmIFVfSEFWRV9QTEFDRU1FTlRfTkVXCisgICAgLy8gc3RhdGljIHZvaWQgKiBVX0VY
UE9SVDIgb3BlcmF0b3IgbmV3KHNpemVfdCwgdm9pZCAqcHRyKTsKKyNlbmRpZgorfTsKKwordGVt
cGxhdGU8dHlwZW5hbWUgSCwgdHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5PgoraW5s
aW5lIEggKk1heWJlU3RhY2tIZWFkZXJBbmRBcnJheTxILCBULCBzdGFja0NhcGFjaXR5Pjo6cmVz
aXplKGludDMyX3QgbmV3Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBsZW5ndGgpIHsKKyAgICBp
ZihuZXdDYXBhY2l0eT49MCkgeworI2lmIFVfREVCVUcgJiYgZGVmaW5lZChVUFJWX01BTExPQ19D
T1VOVCkKKyAgICAgIDo6ZnByaW50Zig6OnN0ZGVyciwiTWF5YmVTdGFja0hlYWRlckFuZEFycmF5
IGFsbG9jICVkICsgJWQgKiAldWxcbiIsIHNpemVvZihIKSxuZXdDYXBhY2l0eSxzaXplb2YoVCkp
OworI2VuZGlmCisgICAgICAgIEggKnA9KEggKil1cHJ2X21hbGxvYyhzaXplb2YoSCkrbmV3Q2Fw
YWNpdHkqc2l6ZW9mKFQpKTsKKyAgICAgICAgaWYocCE9TlVMTCkgeworICAgICAgICAgICAgaWYo
bGVuZ3RoPDApIHsKKyAgICAgICAgICAgICAgICBsZW5ndGg9MDsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZihsZW5ndGg+MCkgeworICAgICAgICAgICAgICAgIGlmKGxlbmd0aD5jYXBhY2l0eSkgewor
ICAgICAgICAgICAgICAgICAgICBsZW5ndGg9Y2FwYWNpdHk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIGlmKGxlbmd0aD5uZXdDYXBhY2l0eSkgeworICAgICAgICAgICAgICAg
ICAgICBsZW5ndGg9bmV3Q2FwYWNpdHk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICAgICAgdXBydl9tZW1jcHkocCwgcHRyLCBzaXplb2YoSCkrbGVuZ3RoKnNpemVv
ZihUKSk7CisgICAgICAgICAgICByZWxlYXNlTWVtb3J5KCk7CisgICAgICAgICAgICBwdHI9cDsK
KyAgICAgICAgICAgIGNhcGFjaXR5PW5ld0NhcGFjaXR5OworICAgICAgICAgICAgbmVlZFRvUmVs
ZWFzZT1UUlVFOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKwordGVtcGxhdGU8dHlwZW5hbWUgSCwgdHlw
ZW5hbWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5PgoraW5saW5lIEggKk1heWJlU3RhY2tIZWFk
ZXJBbmRBcnJheTxILCBULCBzdGFja0NhcGFjaXR5Pjo6b3JwaGFuT3JDbG9uZShpbnQzMl90IGxl
bmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCAmcmVzdWx0Q2FwYWNpdHkpIHsKKyAgICBIICpw
OworICAgIGlmKG5lZWRUb1JlbGVhc2UpIHsKKyAgICAgICAgcD1wdHI7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgaWYobGVuZ3RoPDApIHsKKyAgICAgICAgICAgIGxlbmd0aD0wOworICAgICAgICB9
IGVsc2UgaWYobGVuZ3RoPmNhcGFjaXR5KSB7CisgICAgICAgICAgICBsZW5ndGg9Y2FwYWNpdHk7
CisgICAgICAgIH0KKyNpZiBVX0RFQlVHICYmIGRlZmluZWQoVVBSVl9NQUxMT0NfQ09VTlQpCisg
ICAgICA6OmZwcmludGYoOjpzdGRlcnIsIk1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSAob3JwaGFu
KSBhbGxvYyAldWwgKyAlZCAqICVsdVxuIiwgc2l6ZW9mKEgpLGxlbmd0aCxzaXplb2YoVCkpOwor
I2VuZGlmCisgICAgICAgIHA9KEggKil1cHJ2X21hbGxvYyhzaXplb2YoSCkrbGVuZ3RoKnNpemVv
ZihUKSk7CisgICAgICAgIGlmKHA9PU5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOwor
ICAgICAgICB9CisgICAgICAgIHVwcnZfbWVtY3B5KHAsIHB0ciwgc2l6ZW9mKEgpK2xlbmd0aCpz
aXplb2YoVCkpOworICAgIH0KKyAgICByZXN1bHRDYXBhY2l0eT1sZW5ndGg7CisgICAgcHRyPSZz
dGFja0hlYWRlcjsKKyAgICBjYXBhY2l0eT1zdGFja0NhcGFjaXR5OworICAgIG5lZWRUb1JlbGVh
c2U9RkFMU0U7CisgICAgcmV0dXJuIHA7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYg
IC8qIF9fY3BsdXNwbHVzICovCisjZW5kaWYgIC8qIENNRU1PUllfSCAqLwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9jc3RyaW5nLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2NzdHJpbmcuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NGI2OGZmYWJiMjZiY2I5MTU2MjZlZDRkMTE1ZTk0MmQzN2JiNzcxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9jc3RyaW5nLmgK
QEAgLTAsMCArMSwxNDAgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5
cmlnaHQgKEMpIDE5OTctMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqIEZpbGUgQ1NUUklORy5ICisqCisqIENvbnRhaW5zIENTdHJp
bmcgaW50ZXJmYWNlCisqCisqIEBhdXRob3IgICAgICAgSGVsZW5hIFNoaWgKKyoKKyogTW9kaWZp
Y2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRp
b24KKyogICA2LzE3Lzk4ICAgICBoc2hpaCAgICAgICBDcmVhdGVkLgorKiAgMDUvMDMvOTkgICAg
IHN0ZXBoZW4gICAgIENoYW5nZWQgZnJvbSBmdW5jdGlvbnMgdG8gbWFjcm9zLgorKiAgMDYvMTQv
OTkgICAgIHN0ZXBoZW4gICAgIEFkZGVkIGljdV9zdHJuY2F0LCBpY3Vfc3RybmNtcCwgaWN1X3Rv
bG93ZXIKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBDU1RSSU5HX0gK
KyNkZWZpbmUgQ1NUUklOR19IIDEKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5j
bHVkZSAiY21lbW9yeS5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5o
PgorI2luY2x1ZGUgPGN0eXBlLmg+CisKKyNkZWZpbmUgdXBydl9zdHJjcHkoZHN0LCBzcmMpIFVf
U1RBTkRBUkRfQ1BQX05BTUVTUEFDRSAgc3RyY3B5KGRzdCwgc3JjKQorI2RlZmluZSB1cHJ2X3N0
cmxlbihzdHIpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJsZW4oc3RyKQorI2RlZmluZSB1
cHJ2X3N0cmNtcChzMSwgczIpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJjbXAoczEsIHMy
KQorI2RlZmluZSB1cHJ2X3N0cmNhdChkc3QsIHNyYykgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNF
IHN0cmNhdChkc3QsIHNyYykKKyNkZWZpbmUgdXBydl9zdHJjaHIocywgYykgVV9TVEFOREFSRF9D
UFBfTkFNRVNQQUNFIHN0cmNocihzLCBjKQorI2RlZmluZSB1cHJ2X3N0cnN0cihzLCBjKSBVX1NU
QU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3Ryc3RyKHMsIGMpCisjZGVmaW5lIHVwcnZfc3RycmNocihz
LCBjKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RycmNocihzLCBjKQorCisjaWYgVV9ERUJV
RworCisjZGVmaW5lIHVwcnZfc3RybmNweShkc3QsIHNyYywgc2l6ZSkgKCBcCisgICAgdXBydl9j
aGVja1ZhbGlkTWVtb3J5KHNyYywgMSksIFwKKyAgICBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ug
c3RybmNweShkc3QsIHNyYywgc2l6ZSkpCisjZGVmaW5lIHVwcnZfc3RybmNtcChzMSwgczIsIG4p
ICggXAorICAgIHVwcnZfY2hlY2tWYWxpZE1lbW9yeShzMSwgMSksIFwKKyAgICB1cHJ2X2NoZWNr
VmFsaWRNZW1vcnkoczIsIDEpLCBcCisgICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cm5j
bXAoczEsIHMyLCBuKSkKKyNkZWZpbmUgdXBydl9zdHJuY2F0KGRzdCwgc3JjLCBuKSAoIFwKKyAg
ICB1cHJ2X2NoZWNrVmFsaWRNZW1vcnkoc3JjLCAxKSwgXAorICAgIFVfU1RBTkRBUkRfQ1BQX05B
TUVTUEFDRSBzdHJuY2F0KGRzdCwgc3JjLCBuKSkKKworI2Vsc2UKKworI2RlZmluZSB1cHJ2X3N0
cm5jcHkoZHN0LCBzcmMsIHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJuY3B5KGRz
dCwgc3JjLCBzaXplKQorI2RlZmluZSB1cHJ2X3N0cm5jbXAoczEsIHMyLCBuKSBVX1NUQU5EQVJE
X0NQUF9OQU1FU1BBQ0Ugc3RybmNtcChzMSwgczIsIG4pCisjZGVmaW5lIHVwcnZfc3RybmNhdChk
c3QsIHNyYywgbikgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cm5jYXQoZHN0LCBzcmMsIG4p
CisKKyNlbmRpZiAgLyogVV9ERUJVRyAqLworCisvKioKKyAqIElzIGMgYW4gQVNDSUktcmVwZXJ0
b2lyZSBsZXR0ZXIgYS16IG9yIEEtWj8KKyAqIE5vdGU6IFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBz
cGVjaWZpYyB0byB3aGV0aGVyIElDVSBpcyBjb21waWxlZCBmb3IKKyAqIGFuIEFTQ0lJLWJhc2Vk
IG9yIEVCQ0RJQy1iYXNlZCBtYWNoaW5lLiBUaGVyZSBqdXN0IGRvZXMgbm90IHNlZW0gdG8gYmUg
YSBiZXR0ZXIgbmFtZSBmb3IgdGhpcy4KKyAqLworVV9DQVBJIFVCb29sIFVfRVhQT1JUMgordXBy
dl9pc0FTQ0lJTGV0dGVyKGNoYXIgYyk7CisKK1VfQ0FQSSBjaGFyIFVfRVhQT1JUMgordXBydl90
b3VwcGVyKGNoYXIgYyk7CisKKworVV9DQVBJIGNoYXIgVV9FWFBPUlQyCit1cHJ2X2FzY2lpdG9s
b3dlcihjaGFyIGMpOworCitVX0NBUEkgY2hhciBVX0VYUE9SVDIKK3VwcnZfZWJjZGljdG9sb3dl
cihjaGFyIGMpOworCisjaWYgVV9DSEFSU0VUX0ZBTUlMWT09VV9BU0NJSV9GQU1JTFkKKyMgICBk
ZWZpbmUgdXBydl90b2xvd2VyIHVwcnZfYXNjaWl0b2xvd2VyCisjZWxpZiBVX0NIQVJTRVRfRkFN
SUxZPT1VX0VCQ0RJQ19GQU1JTFkKKyMgICBkZWZpbmUgdXBydl90b2xvd2VyIHVwcnZfZWJjZGlj
dG9sb3dlcgorI2Vsc2UKKyMgICBlcnJvciBVX0NIQVJTRVRfRkFNSUxZIGlzIG5vdCB2YWxpZAor
I2VuZGlmCisKKyNkZWZpbmUgdXBydl9zdHJ0b2Qoc291cmNlLCBlbmQpIFVfU1RBTkRBUkRfQ1BQ
X05BTUVTUEFDRSBzdHJ0b2Qoc291cmNlLCBlbmQpCisjZGVmaW5lIHVwcnZfc3RydG91bChzdHIs
IGVuZCwgYmFzZSkgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cnRvdWwoc3RyLCBlbmQsIGJh
c2UpCisjZGVmaW5lIHVwcnZfc3RydG9sKHN0ciwgZW5kLCBiYXNlKSBVX1NUQU5EQVJEX0NQUF9O
QU1FU1BBQ0Ugc3RydG9sKHN0ciwgZW5kLCBiYXNlKQorCisvKiBDb252ZXJzaW9uIGZyb20gYSBk
aWdpdCB0byB0aGUgY2hhcmFjdGVyIHdpdGggcmFkaXggYmFzZSBmcm9tIDItMTkgKi8KKy8qIE1h
eSBuZWVkIHRvIHVzZSBVX1VQUEVSX09SRElOQUwqLworI2RlZmluZSBUX0NTdHJpbmdfaXRvc09m
ZnNldChhKSAoKGEpPD05PygnMCcrKGEpKTooJ0EnKyhhKS0xMCkpCisKK1VfQ0FQSSBjaGFyKiBV
X0VYUE9SVDIKK3VwcnZfc3RyZHVwKGNvbnN0IGNoYXIgKnNyYyk7CisKKy8qKgorICogdXBydl9t
YWxsb2MgbisxIGJ5dGVzLCBhbmQgY29weSBuIGJ5dGVzIGZyb20gc3JjIGludG8gdGhlIG5ldyBz
dHJpbmcuCisgKiBUZXJtaW5hdGUgd2l0aCBhIG51bGwgYXQgb2Zmc2V0IG4uICAgSWYgbiBpcyAt
MSwgd29ya3MgbGlrZSB1cHJ2X3N0cmR1cAorICogQHBhcmFtIHNyYworICogQHBhcmFtIG4gbGVu
Z3RoIG9mIHRoZSBpbnB1dCBzdHJpbmcsIG5vdCBpbmNsdWRpbmcgbnVsbC4KKyAqIEByZXR1cm4g
bmV3IHN0cmluZyAob3duZWQgYnkgY2FsbGVyLCB1c2UgdXBydl9mcmVlIHRvIGZyZWUpLgorICog
QGludGVybmFsCisgKi8KK1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK3VwcnZfc3RybmR1cChjb25z
dCBjaGFyICpzcmMsIGludDMyX3Qgbik7CisKK1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK1RfQ1N0
cmluZ190b0xvd2VyQ2FzZShjaGFyKiBzdHIpOworCitVX0NBUEkgY2hhciogVV9FWFBPUlQyCitU
X0NTdHJpbmdfdG9VcHBlckNhc2UoY2hhciogc3RyKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBP
UlQyCitUX0NTdHJpbmdfaW50ZWdlclRvU3RyaW5nKGNoYXIgKmJ1ZmZlciwgaW50MzJfdCBuLCBp
bnQzMl90IHJhZGl4KTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0NTdHJpbmdfaW50
NjRUb1N0cmluZyhjaGFyICpidWZmZXIsIGludDY0X3QgbiwgdWludDMyX3QgcmFkaXgpOworCitV
X0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfQ1N0cmluZ19zdHJpbmdUb0ludGVnZXIoY29uc3Qg
Y2hhciAqaW50ZWdlclN0cmluZywgaW50MzJfdCByYWRpeCk7CisKKy8qKgorICogQ2FzZS1pbnNl
bnNpdGl2ZSwgbGFuZ3VhZ2UtaW5kZXBlbmRlbnQgc3RyaW5nIGNvbXBhcmlzb24KKyAqIGxpbWl0
ZWQgdG8gdGhlIEFTQ0lJIGNoYXJhY3RlciByZXBlcnRvaXJlLgorICovCitVX0NBUEkgaW50IFVf
RVhQT1JUMgordXBydl9zdHJpY21wKGNvbnN0IGNoYXIgKnN0cjEsIGNvbnN0IGNoYXIgKnN0cjIp
OworCisvKioKKyAqIENhc2UtaW5zZW5zaXRpdmUsIGxhbmd1YWdlLWluZGVwZW5kZW50IHN0cmlu
ZyBjb21wYXJpc29uCisgKiBsaW1pdGVkIHRvIHRoZSBBU0NJSSBjaGFyYWN0ZXIgcmVwZXJ0b2ly
ZS4KKyAqLworVV9DQVBJIGludCBVX0VYUE9SVDIKK3VwcnZfc3RybmljbXAoY29uc3QgY2hhciAq
c3RyMSwgY29uc3QgY2hhciAqc3RyMiwgdWludDMyX3Qgbik7CisKKyNlbmRpZiAvKiAhIENTVFJJ
TkdfSCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dl
bmJyay9maWxlc3RybS5jIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJy
ay9maWxlc3RybS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczMDk3NDdjNzA1YmQxMzc2NWEzYzViNzFlN2E4YmJk
NDgxMTRjYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvZ2VuYnJrL2ZpbGVzdHJtLmMKQEAgLTAsMCArMSwyMjUgQEAKKy8qCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMSwgSW50ZXJuYXRpb25h
bCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmln
aHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgRklMRVNU
Uk0uQworKgorKiBAYXV0aG9yICAgICAgIEdsZW5uIE1hcmN5CisqCisqIE1vZGlmaWNhdGlvbiBI
aXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAg
NS84Lzk4ICAgICAgZ20gICAgICAgICAgQ3JlYXRlZAorKiAgMDMvMDIvOTkgICAgIHN0ZXBoZW4g
ICAgIFJlb3JkZXJlZCBwYXJhbXMgaW4gdW5nZXRjIHRvIG1hdGNoIHN0ZGlvCisqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQWRkZWQgd29wZW4KKyogICAzLzI5Lzk5ICAgICBoZWxlbmEgICAg
ICBNZXJnZWQgU3RlcGhlbiBhbmQgQmVydHJhbmQncyBjaGFuZ2VzLgorKgorKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisqLworCisjaW5jbHVkZSAiZmlsZXN0cm0uaCIKKworI2luY2x1ZGUgImNtZW1v
cnkuaCIKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9S
VDIKK1RfRmlsZVN0cmVhbV9vcGVuKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFyKiBt
b2RlKQoreworICAgIGlmKGZpbGVuYW1lICE9IE5VTEwgJiYgKmZpbGVuYW1lICE9IDAgJiYgbW9k
ZSAhPSBOVUxMICYmICptb2RlICE9IDApIHsKKyAgICAgICAgRklMRSAqZmlsZSA9IGZvcGVuKGZp
bGVuYW1lLCBtb2RlKTsKKyAgICAgICAgcmV0dXJuIChGaWxlU3RyZWFtKilmaWxlOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyoKK1VfQ0FQSSBGaWxl
U3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV93b3Blbihjb25zdCB3Y2hhcl90KiBmaWxl
bmFtZSwgY29uc3Qgd2NoYXJfdCogbW9kZSkKK3sKKyAgIC8vIFRCRDogX3dmb3BlbiBpcyBiZWxp
ZXZlZCB0byBiZSBNUy1zcGVjaWZpYz8gCisjaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJf
QVBJCisgICAgRklMRSogcmVzdWx0ID0gX3dmb3BlbihmaWxlbmFtZSwgbW9kZSk7CisgICAgcmV0
dXJuIChGaWxlU3RyZWFtKilyZXN1bHQ7CisjZWxzZQorICAgIHNpemVfdCBmbk1ic1NpemUsIG1k
TWJzU2l6ZTsKKyAgICBjaGFyICpmbiwgKm1kOworICAgIEZJTEUgKnJlc3VsdDsKKworICAgIC8v
IGNvbnZlcnQgZnJvbSB3Y2hhcl90IHRvIGNoYXIgCisgICAgZm5NYnNTaXplID0gd2NzdG9tYnMo
TlVMTCwgZmlsZW5hbWUsICgoc2l6ZV90KS0xKSA+PiAxKTsKKyAgICBmbiA9IChjaGFyKil1cHJ2
X21hbGxvYyhmbk1ic1NpemUrMik7CisgICAgd2NzdG9tYnMoZm4sIGZpbGVuYW1lLCBmbk1ic1Np
emUpOworICAgIGZuW2ZuTWJzU2l6ZV0gPSAwOworCisgICAgbWRNYnNTaXplID0gd2NzdG9tYnMo
TlVMTCwgbW9kZSwgKChzaXplX3QpLTEpID4+IDEpOworICAgIG1kID0gKGNoYXIqKXVwcnZfbWFs
bG9jKG1kTWJzU2l6ZSsyKTsKKyAgICB3Y3N0b21icyhtZCwgbW9kZSwgbWRNYnNTaXplKTsKKyAg
ICBtZFttZE1ic1NpemVdID0gMDsKKworICAgIHJlc3VsdCA9IGZvcGVuKGZuLCBtZCk7CisgICAg
dXBydl9mcmVlKGZuKTsKKyAgICB1cHJ2X2ZyZWUobWQpOworICAgIHJldHVybiAoRmlsZVN0cmVh
bSopcmVzdWx0OworI2VuZGlmCit9CisqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVT
dHJlYW1fY2xvc2UoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSkKK3sKKyAgICBpZiAoZmlsZVN0cmVh
bSAhPSAwKQorICAgICAgICBmY2xvc2UoKEZJTEUqKWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkg
VUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fZmlsZV9leGlzdHMoY29uc3QgY2hhciogZmls
ZW5hbWUpCit7CisgICAgRklMRSogdGVtcCA9IGZvcGVuKGZpbGVuYW1lLCAiciIpOworICAgIGlm
ICh0ZW1wKSB7CisgICAgICAgIGZjbG9zZSh0ZW1wKTsKKyAgICAgICAgcmV0dXJuIFRSVUU7Cisg
ICAgfSBlbHNlCisgICAgICAgIHJldHVybiBGQUxTRTsKK30KKworLypzdGF0aWMgY29uc3QgaW50
MzJfdCBrRU9GOworY29uc3QgaW50MzJfdCBGaWxlU3RyZWFtOjprRU9GID0gRU9GOyovCisKKy8q
CitVX0NBUEkgRmlsZVN0cmVhbSoKK1RfRmlsZVN0cmVhbV90bXBmaWxlKCkKK3sKKyAgICBGSUxF
KiBmaWxlID0gdG1wZmlsZSgpOworICAgIHJldHVybiAoRmlsZVN0cmVhbSopZmlsZTsKK30KKyov
CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3JlYWQoRmlsZVN0cmVh
bSogZmlsZVN0cmVhbSwgdm9pZCogYWRkciwgaW50MzJfdCBsZW4pCit7CisgICAgcmV0dXJuIGZy
ZWFkKGFkZHIsIDEsIGxlbiwgKEZJTEUqKWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkgaW50MzJf
dCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV93cml0ZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBj
b25zdCB2b2lkKiBhZGRyLCBpbnQzMl90IGxlbikKK3sKKworICAgIHJldHVybiBmd3JpdGUoYWRk
ciwgMSwgbGVuLCAoRklMRSopZmlsZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JU
MgorVF9GaWxlU3RyZWFtX3Jld2luZChGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIHJl
d2luZCgoRklMRSopZmlsZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgor
VF9GaWxlU3RyZWFtX3B1dGMoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgaW50MzJfdCBjaCkKK3sK
KyAgICBpbnQzMl90IGMgPSBmcHV0YyhjaCwgKEZJTEUqKWZpbGVTdHJlYW0pOworICAgIHJldHVy
biBjOworfQorCitVX0NBUEkgaW50IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX2dldGMoRmlsZVN0
cmVhbSogZmlsZVN0cmVhbSkKK3sKKyAgICBpbnQgYyA9IGZnZXRjKChGSUxFKilmaWxlU3RyZWFt
KTsKKyAgICByZXR1cm4gYzsKK30KKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVT
dHJlYW1fdW5nZXRjKGludDMyX3QgY2gsIEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisKKyAg
ICBpbnQzMl90IGMgPSB1bmdldGMoY2gsIChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4g
YzsKK30KKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcGVlayhGaWxl
U3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIGludDMyX3QgYyA9IGZnZXRjKChGSUxFKilmaWxl
U3RyZWFtKTsKKyAgICByZXR1cm4gdW5nZXRjKGMsIChGSUxFKilmaWxlU3RyZWFtKTsKK30KKwor
VV9DQVBJIGNoYXIqIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3JlYWRMaW5lKEZpbGVTdHJlYW0q
IGZpbGVTdHJlYW0sIGNoYXIqIGJ1ZmZlciwgaW50MzJfdCBsZW5ndGgpCit7CisgICAgcmV0dXJu
IGZnZXRzKGJ1ZmZlciwgbGVuZ3RoLCAoRklMRSopZmlsZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSBp
bnQzMl90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3dyaXRlTGluZShGaWxlU3RyZWFtKiBmaWxl
U3RyZWFtLCBjb25zdCBjaGFyKiBidWZmZXIpCit7CisgICAgcmV0dXJuIGZwdXRzKGJ1ZmZlciwg
KEZJTEUqKWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmls
ZVN0cmVhbV9zaXplKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisgICAgaW50MzJfdCBzYXZl
ZFBvcyA9IGZ0ZWxsKChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICBpbnQzMl90IHNpemUgPSAwOwor
CisgICAgLypDaGFuZ2VzIGJ5IEJlcnRyYW5kIEEuIEQuIGRvZXNuJ3QgYWZmZWN0IHRoZSBjdXJy
ZW50IHBvc2l0aW9uCisgICAgZ29lcyB0byB0aGUgZW5kIG9mIHRoZSBmaWxlIGJlZm9yZSBmdGVs
bCovCisgICAgZnNlZWsoKEZJTEUqKWZpbGVTdHJlYW0sIDAsIFNFRUtfRU5EKTsKKyAgICBzaXpl
ID0gKGludDMyX3QpZnRlbGwoKEZJTEUqKWZpbGVTdHJlYW0pOworICAgIGZzZWVrKChGSUxFKilm
aWxlU3RyZWFtLCBzYXZlZFBvcywgU0VFS19TRVQpOworICAgIHJldHVybiBzaXplOworfQorCitV
X0NBUEkgaW50IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX2VvZihGaWxlU3RyZWFtKiBmaWxlU3Ry
ZWFtKQoreworICAgIHJldHVybiBmZW9mKChGSUxFKilmaWxlU3RyZWFtKTsKK30KKworLyoKKyBX
YXJuaW5nIAorIFRoaXMgZnVuY3Rpb24gbWF5IG5vdCB3b3JrIGNvbnNpc3RlbnRseSBvbiBhbGwg
cGxhdGZvcm1zCisgKGUuZy4gSFAtVVgsIEZyZWVCU0QgYW5kIE1hY09TWCBkb24ndCByZXR1cm4g
YW4gZXJyb3Igd2hlbgorIHB1dGMgaXMgdXNlZCBvbiBhIGZpbGUgb3BlbmVkIGFzIHJlYWRvbmx5
KQorKi8KK1VfQ0FQSSBpbnQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fZXJyb3IoRmlsZVN0cmVh
bSogZmlsZVN0cmVhbSkKK3sKKyAgICByZXR1cm4gKGZpbGVTdHJlYW0gPT0gMCB8fCBmZXJyb3Io
KEZJTEUqKWZpbGVTdHJlYW0pKTsKK30KKworLyogVGhpcyBmdW5jdGlvbiBkb2Vzbid0IHdvcmsu
ICovCisvKiBmb3JjZSB0aGUgc3RyZWFtIHRvIHNldCBpdHMgZXJyb3IgZmxhZyovCisvKlVfQ0FQ
SSB2b2lkIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3NldEVycm9yKEZpbGVTdHJlYW0qIGZpbGVT
dHJlYW0pCit7CisgICAgZnNlZWsoKEZJTEUqKWZpbGVTdHJlYW0sIDk5OTk5LCBTRUVLX1NFVCk7
Cit9CisqLworCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3Rk
aW4odm9pZCkKK3sKKyAgICByZXR1cm4gKEZpbGVTdHJlYW0qKXN0ZGluOworfQorCitVX0NBUEkg
RmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3Rkb3V0KHZvaWQpCit7CisgICAg
cmV0dXJuIChGaWxlU3RyZWFtKilzdGRvdXQ7Cit9CisKKworVV9DQVBJIEZpbGVTdHJlYW0qIFVf
RVhQT1JUMgorVF9GaWxlU3RyZWFtX3N0ZGVycih2b2lkKQoreworICAgIHJldHVybiAoRmlsZVN0
cmVhbSopc3RkZXJyOworfQorCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1f
cmVtb3ZlKGNvbnN0IGNoYXIqIGZpbGVOYW1lKXsKKyAgICByZXR1cm4gKHJlbW92ZShmaWxlTmFt
ZSkgPT0gMCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvZ2VuYnJrL2ZpbGVzdHJtLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Z2VuYnJrL2ZpbGVzdHJtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGVlYmE5OGI2NjFmZDYxNzgxMTFiMGJlMDll
OTMxOWViOWYxMWEwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9nZW5icmsvZmlsZXN0cm0uaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDA1LCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBG
SUxFU1RSTS5ICisqCisqIENvbnRhaW5zIEZpbGVTdHJlYW0gaW50ZXJmYWNlCisqCisqIEBhdXRo
b3IgICAgICAgR2xlbm4gTWFyY3kKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAg
RGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICA1LzgvOTggICAgICBnbSAg
ICAgICAgICBDcmVhdGVkLgorKiAgMDMvMDIvOTkgICAgIHN0ZXBoZW4gICAgIFJlb3JkZXJlZCBw
YXJhbXMgaW4gdW5nZXRjIHRvIG1hdGNoIHN0ZGlvCisqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWRkZWQgd29wZW4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBG
SUxFU1RSTV9ICisjZGVmaW5lIEZJTEVTVFJNX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVz
LmgiCisKK3R5cGVkZWYgc3RydWN0IF9GaWxlU3RyZWFtIEZpbGVTdHJlYW07CisKK1VfQ0FQSSBG
aWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9vcGVuKGNvbnN0IGNoYXIqIGZpbGVu
YW1lLCBjb25zdCBjaGFyKiBtb2RlKTsKKworLyoKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9S
VDIKK1RfRmlsZVN0cmVhbV93b3Blbihjb25zdCB3Y2hhcl90KiBmaWxlbmFtZSwgY29uc3Qgd2No
YXJfdCogbW9kZSk7CisqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fY2xv
c2UoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSk7CisKK1VfQ0FQSSBVQm9vbCBVX0VYUE9SVDIKK1Rf
RmlsZVN0cmVhbV9maWxlX2V4aXN0cyhjb25zdCBjaGFyKiBmaWxlbmFtZSk7CisKKy8qCitVX0NB
UEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fdG1wZmlsZSh2b2lkKTsKKyov
CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3JlYWQoRmlsZVN0cmVh
bSogZmlsZVN0cmVhbSwgdm9pZCogYWRkciwgaW50MzJfdCBsZW4pOworCitVX0NBUEkgaW50MzJf
dCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV93cml0ZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBj
b25zdCB2b2lkKiBhZGRyLCBpbnQzMl90IGxlbik7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgor
VF9GaWxlU3RyZWFtX3Jld2luZChGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKworLypBZGRlZCBi
eSBCZXJ0cmFuZCBBLiBELiAqLworVV9DQVBJIGNoYXIgKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVh
bV9yZWFkTGluZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjaGFyKiBidWZmZXIsIGludDMyX3Qg
bGVuZ3RoKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fd3JpdGVM
aW5lKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0sIGNvbnN0IGNoYXIqIGJ1ZmZlcik7CisKK1VfQ0FQ
SSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3B1dGMoRmlsZVN0cmVhbSogZmlsZVN0
cmVhbSwgaW50MzJfdCBjaCk7CisKK1VfQ0FQSSBpbnQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1f
Z2V0YyhGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQy
CitUX0ZpbGVTdHJlYW1fdW5nZXRjKGludDMyX3QgY2gsIEZpbGVTdHJlYW0gKmZpbGVTdHJlYW0p
OworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9wZWVrKEZpbGVTdHJl
YW0qIGZpbGVTdHJlYW0pOworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVh
bV9zaXplKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pOworCitVX0NBUEkgaW50IFVfRVhQT1JUMgor
VF9GaWxlU3RyZWFtX2VvZihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKworVV9DQVBJIGludCBV
X0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9lcnJvcihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKwor
LyoKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3NldEVycm9yKEZpbGVTdHJl
YW0qIGZpbGVTdHJlYW0pOworKi8KKworVV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9G
aWxlU3RyZWFtX3N0ZGluKHZvaWQpOworCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitU
X0ZpbGVTdHJlYW1fc3Rkb3V0KHZvaWQpOworCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQy
CitUX0ZpbGVTdHJlYW1fc3RkZXJyKHZvaWQpOworCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCitU
X0ZpbGVTdHJlYW1fcmVtb3ZlKGNvbnN0IGNoYXIqIGZpbGVOYW1lKTsKKworI2VuZGlmIC8qIF9G
SUxFU1RSTSovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Z2VuYnJrL2dlbmJyay5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2Vu
YnJrL2dlbmJyay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJjNmNmZmU3YjUyOTZkZTg2NzhlZmFlMDRiNDc1
OTc0MDhmNmEwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9nZW5icmsvZ2VuYnJrLmNwcApAQCAtMCwwICsxLDM0NiBAQAorLyoKKyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKyogICBDb3B5cmlnaHQgKEMpIDIwMDItMjAwOSwgSW50ZXJuYXRpb25hbCBCdXNpbmVz
cyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxlIGdlbmJyay5jCisqLworCisvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisvLworLy8gICBUb29sIGZvciBnZW5lcmF0aW5nIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Ig
ZGF0YSBmaWxlcyAoLmJyayBmaWxlcykuCisvLyAgIC5icmsgZmlsZXMgY29udGFpbiB0aGUgcHJl
Y29tcGlsZWQgcnVsZXMgZm9yIHN0YW5kYXJkIHR5cGVzCisvLyAgIG9mIGl0ZXJhdG9ycyAtIHdv
cmQsIGxpbmUsIHNlbnRlbmNlLCBldGMuCisvLworLy8gICBVc2FnZTogIGdlbmJyayBbb3B0aW9u
c10gLXIgcnVsZS1maWxlLnR4dCAgLW8gb3V0cHV0LWZpbGUuYnJrCisvLworLy8gICAgICAgb3B0
aW9uczogICAtdiAgICAgICAgIHZlcmJvc2UKKy8vICAgICAgICAgICAgICAgICAgLT8gb3IgLWgg
ICBoZWxwCisvLworLy8gICBUaGUgaW5wdXQgcnVsZSBmaWxlIGlzIGEgcGxhaW4gdGV4dCBmaWxl
IGNvbnRhaW5pbmcgYnJlYWsgcnVsZXMKKy8vICAgIGluIHRoZSBpbnB1dCBmb3JtYXQgYWNjZXB0
ZWQgYnkgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcnMuICBUaGUKKy8vICAgIGZpbGUgY2FuIGJlIGVu
Y29kZWQgYXMgdXRmLTgsIG9yIHV0Zi0xNiAoZWl0aGVyIGVuZGlhbiksIG9yCisvLyAgICBpbiB0
aGUgZGVmYXVsdCBjb2RlIHBhZ2UgKHBsYXRmb3JtIGRlcGVuZGVudC4pLiAgdXRmIGVuY29kZWQK
Ky8vICAgIGZpbGVzIG11c3QgaW5jbHVkZSBhIEJPTS4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNp
bmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWNudi5oIgorI2lu
Y2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisjaW5jbHVkZSAidW5pY29kZS9yYmJpLmgiCisjaW5j
bHVkZSAidW5pY29kZS91Y2xlYW4uaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisjaW5j
bHVkZSAidW5pY29kZS9wdXRpbC5oIgorCisjaW5jbHVkZSAidW9wdGlvbnMuaCIKKyNpbmNsdWRl
ICJ1bmV3ZGF0YS5oIgorI2luY2x1ZGUgInVjbW5kYXRhLmgiCisjaW5jbHVkZSAicmJiaWRhdGEu
aCIKKyNpbmNsdWRlICJjbWVtb3J5LmgiCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUg
PHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCitVX05BTUVTUEFDRV9VU0UKKworc3Rh
dGljIGNoYXIgKnByb2dOYW1lOworc3RhdGljIFVPcHRpb24gb3B0aW9uc1tdPXsKKyAgICBVT1BU
SU9OX0hFTFBfSCwgICAgICAgICAgICAgLyogMCAqLworICAgIFVPUFRJT05fSEVMUF9RVUVTVElP
Tl9NQVJLLCAvKiAxICovCisgICAgVU9QVElPTl9WRVJCT1NFLCAgICAgICAgICAgIC8qIDIgKi8K
KyAgICB7ICJydWxlcyIsIE5VTEwsIE5VTEwsIE5VTEwsICdyJywgVU9QVF9SRVFVSVJFU19BUkcs
IDAgfSwgICAvKiAzICovCisgICAgeyAib3V0IiwgICBOVUxMLCBOVUxMLCBOVUxMLCAnbycsIFVP
UFRfUkVRVUlSRVNfQVJHLCAwIH0sICAgLyogNCAqLworICAgIFVPUFRJT05fSUNVREFUQURJUiwg
ICAgICAgICAvKiA1ICovCisgICAgVU9QVElPTl9ERVNURElSLCAgICAgICAgICAgIC8qIDYgKi8K
KyAgICBVT1BUSU9OX0NPUFlSSUdIVCwgICAgICAgICAgLyogNyAqLworfTsKKwordm9pZCB1c2Fn
ZUFuZERpZShpbnQgcmV0Q29kZSkgeworICAgICAgICBwcmludGYoIlVzYWdlOiAlcyBbLXZdIFst
b3B0aW9uc10gLXIgcnVsZS1maWxlIC1vIG91dHB1dC1maWxlXG4iLCBwcm9nTmFtZSk7CisgICAg
ICAgIHByaW50ZigiXHRSZWFkIGluIGJyZWFrIGl0ZXJhdGlvbiBydWxlcyB0ZXh0IGFuZCB3cml0
ZSBvdXQgdGhlIGJpbmFyeSBkYXRhXG4iCisgICAgICAgICAgICAib3B0aW9uczpcbiIKKyAgICAg
ICAgICAgICJcdC1oIG9yIC0/IG9yIC0taGVscCAgdGhpcyB1c2FnZSB0ZXh0XG4iCisgICAgICAg
ICAgICAiXHQtViBvciAtLXZlcnNpb24gICAgIHNob3cgYSB2ZXJzaW9uIG1lc3NhZ2VcbiIKKyAg
ICAgICAgICAgICJcdC1jIG9yIC0tY29weXJpZ2h0ICAgaW5jbHVkZSBhIGNvcHlyaWdodCBub3Rp
Y2VcbiIKKyAgICAgICAgICAgICJcdC12IG9yIC0tdmVyYm9zZSAgICAgdHVybiBvbiB2ZXJib3Nl
IG91dHB1dFxuIgorICAgICAgICAgICAgIlx0LWkgb3IgLS1pY3VkYXRhZGlyICBkaXJlY3Rvcnkg
Zm9yIGxvY2F0aW5nIGFueSBuZWVkZWQgaW50ZXJtZWRpYXRlIGRhdGEgZmlsZXMsXG4iCisgICAg
ICAgICAgICAiXHQgICAgICAgICAgICAgICAgICAgIGZvbGxvd2VkIGJ5IHBhdGgsIGRlZmF1bHRz
IHRvICVzXG4iCisgICAgICAgICAgICAiXHQtZCBvciAtLWRlc3RkaXIgICAgIGRlc3RpbmF0aW9u
IGRpcmVjdG9yeSwgZm9sbG93ZWQgYnkgdGhlIHBhdGhcbiIsCisgICAgICAgICAgICB1X2dldERh
dGFEaXJlY3RvcnkoKSk7CisgICAgICAgIGV4aXQgKHJldENvZGUpOworfQorCisKKyNpZiBVQ09O
RklHX05PX0JSRUFLX0lURVJBVElPTiB8fCBVQ09ORklHX05PX0ZJTEVfSU8KKworLyogZHVtbXkg
VURhdGFJbmZvIGNmLiB1ZGF0YS5oICovCitzdGF0aWMgVURhdGFJbmZvIGR1bW15RGF0YUluZm8g
PSB7CisgICAgc2l6ZW9mKFVEYXRhSW5mbyksCisgICAgMCwKKworICAgIFVfSVNfQklHX0VORElB
TiwKKyAgICBVX0NIQVJTRVRfRkFNSUxZLAorICAgIFVfU0laRU9GX1VDSEFSLAorICAgIDAsCisK
KyAgICB7IDAsIDAsIDAsIDAgfSwgICAgICAgICAgICAgICAgIC8qIGR1bW15IGRhdGFGb3JtYXQg
Ki8KKyAgICB7IDAsIDAsIDAsIDAgfSwgICAgICAgICAgICAgICAgIC8qIGR1bW15IGZvcm1hdFZl
cnNpb24gKi8KKyAgICB7IDAsIDAsIDAsIDAgfSAgICAgICAgICAgICAgICAgIC8qIGR1bW15IGRh
dGFWZXJzaW9uICovCit9OworCisjZWxzZQorCisvLworLy8gIFNldCB1cCB0aGUgSUNVIGRhdGEg
aGVhZGVyLCBkZWZpbmVkIGluIHVjbW5kYXRhLmgKKy8vCitEYXRhSGVhZGVyIGRoID17CisgICAg
e3NpemVvZihEYXRhSGVhZGVyKSwgICAgICAgICAgIC8vIFN0cnVjdCBNYXBwZWREYXRhCisgICAg
ICAgIDB4ZGEsCisgICAgICAgIDB4Mjd9LAorCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBzdHJ1Y3QgVURhdGFJbmZvCisgICAgICAgIHNpemVvZihVRGF0YUluZm8pLCAg
ICAgICAgICAvLyAgICAgc2l6ZQorICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gICAgIHJlc2VydmVkCisgICAgICAgIFVfSVNfQklHX0VORElBTiwKKyAgICAgICAgVV9DSEFS
U0VUX0ZBTUlMWSwKKyAgICAgICAgVV9TSVpFT0ZfVUNIQVIsCisgICAgICAgIDAsICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAgICAgcmVzZXJ2ZWQKKworICAgIHsgMHg0MiwgMHg3MiwgMHg2
YiwgMHgyMCB9LCAgICAgLy8gICAgIGRhdGFGb3JtYXQ9IkJyayAiCisgICAgeyAweGZmLCAwLCAw
LCAwIH0sICAgICAgICAgICAgICAvLyAgICAgZm9ybWF0VmVyc2lvbi4gIEZpbGxlZCBpbiBsYXRl
ciB3aXRoIHZhbHVlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAg
ICBmcm9tIHRoZSBSQkJJIHJ1bGUgYnVpbGRlci4gIFRoZSAgdmFsdWVzIGRlY2xhcmVkCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgIGhlcmUgc2hvdWxkIG5ldmVy
IGFwcGVhciBpbiBhbnkgcmVhbCBSQkJJIGRhdGEuCisgICAgICAgIHsgNCwgMSwgMCwgMCB9ICAg
ICAgICAgICAgICAvLyAgIGRhdGFWZXJzaW9uIChVbmljb2RlIHZlcnNpb24pCisgICAgfX07CisK
KyNlbmRpZgorCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgbWFpbiAgICAgIGZvciBn
ZW5icmsKKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2ludCAgbWFpbihpbnQgYXJnYywgY2hh
ciAqKmFyZ3YpIHsKKyAgICBVRXJyb3JDb2RlICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAg
Y29uc3QgY2hhciAqcnVsZUZpbGVOYW1lOworICAgIGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lOwor
ICAgIGNvbnN0IGNoYXIgKm91dERpciA9IE5VTEw7CisgICAgY29uc3QgY2hhciAqY29weXJpZ2h0
ID0gTlVMTDsKKworICAgIC8vCisgICAgLy8gUGljayB1cCBhbmQgY2hlY2sgdGhlIGNvbW1hbmQg
bGluZSBhcmd1bWVudHMsCisgICAgLy8gICAgdXNpbmcgdGhlIHN0YW5kYXJkIElDVSB0b29sIHV0
aWxzIG9wdGlvbiBoYW5kbGluZy4KKyAgICAvLworICAgIFVfTUFJTl9JTklUX0FSR1MoYXJnYywg
YXJndik7CisgICAgcHJvZ05hbWUgPSBhcmd2WzBdOworICAgIGFyZ2M9dV9wYXJzZUFyZ3MoYXJn
YywgYXJndiwgc2l6ZW9mKG9wdGlvbnMpL3NpemVvZihvcHRpb25zWzBdKSwgb3B0aW9ucyk7Cisg
ICAgaWYoYXJnYzwwKSB7CisgICAgICAgIC8vIFVucmVjb2duaXplZCBvcHRpb24KKyAgICAgICAg
ZnByaW50ZihzdGRlcnIsICJlcnJvciBpbiBjb21tYW5kIGxpbmUgYXJndW1lbnQgXCIlc1wiXG4i
LCBhcmd2Wy1hcmdjXSk7CisgICAgICAgIHVzYWdlQW5kRGllKFVfSUxMRUdBTF9BUkdVTUVOVF9F
UlJPUik7CisgICAgfQorCisgICAgaWYob3B0aW9uc1swXS5kb2VzT2NjdXIgfHwgb3B0aW9uc1sx
XS5kb2VzT2NjdXIpIHsKKyAgICAgICAgLy8gIC0/IG9yIC1oIGZvciBoZWxwLgorICAgICAgICB1
c2FnZUFuZERpZSgwKTsKKyAgICB9CisKKyAgICBpZiAoIShvcHRpb25zWzNdLmRvZXNPY2N1ciAm
JiBvcHRpb25zWzRdLmRvZXNPY2N1cikpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJydWxl
IGZpbGUgYW5kIG91dHB1dCBmaWxlIG11c3QgYm90aCBiZSBzcGVjaWZpZWQuXG4iKTsKKyAgICAg
ICAgdXNhZ2VBbmREaWUoVV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SKTsKKyAgICB9CisgICAgcnVs
ZUZpbGVOYW1lID0gb3B0aW9uc1szXS52YWx1ZTsKKyAgICBvdXRGaWxlTmFtZSAgPSBvcHRpb25z
WzRdLnZhbHVlOworCisgICAgaWYgKG9wdGlvbnNbNV0uZG9lc09jY3VyKSB7CisgICAgICAgIHVf
c2V0RGF0YURpcmVjdG9yeShvcHRpb25zWzVdLnZhbHVlKTsKKyAgICB9CisKKyAgICBzdGF0dXMg
PSBVX1pFUk9fRVJST1I7CisKKyAgICAvKiBDb21iaW5lIHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUg
ZmlsZSBuYW1lICovCisgICAgaWYob3B0aW9uc1s2XS5kb2VzT2NjdXIpIHsKKyAgICAgICAgb3V0
RGlyID0gb3B0aW9uc1s2XS52YWx1ZTsKKyAgICB9CisgICAgaWYgKG9wdGlvbnNbN10uZG9lc09j
Y3VyKSB7CisgICAgICAgIGNvcHlyaWdodCA9IFVfQ09QWVJJR0hUX1NUUklORzsKKyAgICB9CisK
KyNpZiBVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiB8fCBVQ09ORklHX05PX0ZJTEVfSU8KKwor
ICAgIFVOZXdEYXRhTWVtb3J5ICpwRGF0YTsKKyAgICBjaGFyIG1zZ1sxMDI0XTsKKworICAgIC8q
IHdyaXRlIG1lc3NhZ2Ugd2l0aCBqdXN0IHRoZSBuYW1lICovCisgICAgc3ByaW50Zihtc2csICJn
ZW5icmsgd3JpdGVzIGR1bW15ICVzIGJlY2F1c2Ugb2YgVUNPTkZJR19OT19CUkVBS19JVEVSQVRJ
T04gYW5kL29yIFVDT05GSUdfTk9fRklMRV9JTywgc2VlIHVjb25maWcuaCIsIG91dEZpbGVOYW1l
KTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiVzXG4iLCBtc2cpOworCisgICAgLyogd3JpdGUgdGhl
IGR1bW15IGRhdGEgZmlsZSAqLworICAgIHBEYXRhID0gdWRhdGFfY3JlYXRlKG91dERpciwgTlVM
TCwgb3V0RmlsZU5hbWUsICZkdW1teURhdGFJbmZvLCBOVUxMLCAmc3RhdHVzKTsKKyAgICB1ZGF0
YV93cml0ZUJsb2NrKHBEYXRhLCBtc2csIHN0cmxlbihtc2cpKTsKKyAgICB1ZGF0YV9maW5pc2go
cERhdGEsICZzdGF0dXMpOworICAgIHJldHVybiAoaW50KXN0YXR1czsKKworI2Vsc2UKKyAgICAv
KiBJbml0aWFsaXplIElDVSAqLworICAgIHVfaW5pdCgmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlM
VVJFKHN0YXR1cykpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczogY2FuIG5vdCBpbml0
aWFsaXplIElDVS4gIHN0YXR1cyA9ICVzXG4iLAorICAgICAgICAgICAgYXJndlswXSwgdV9lcnJv
ck5hbWUoc3RhdHVzKSk7CisgICAgICAgIGV4aXQoMSk7CisgICAgfQorICAgIHN0YXR1cyA9IFVf
WkVST19FUlJPUjsKKworICAgIC8vCisgICAgLy8gIFJlYWQgaW4gdGhlIHJ1bGUgc291cmNlIGZp
bGUKKyAgICAvLworICAgIGxvbmcgICAgICAgIHJlc3VsdDsKKyAgICBsb25nICAgICAgICBydWxl
RmlsZVNpemU7CisgICAgRklMRSAgICAgICAgKmZpbGU7CisgICAgY2hhciAgICAgICAgKnJ1bGVC
dWZmZXJDOworCisgICAgZmlsZSA9IGZvcGVuKHJ1bGVGaWxlTmFtZSwgInJiIik7CisgICAgaWYo
IGZpbGUgPT0gMCApIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3Qgb3BlbiBm
aWxlIFwiJXNcIlxuIiwgcnVsZUZpbGVOYW1lKTsKKyAgICAgICAgZXhpdCgtMSk7CisgICAgfQor
ICAgIGZzZWVrKGZpbGUsIDAsIFNFRUtfRU5EKTsKKyAgICBydWxlRmlsZVNpemUgPSBmdGVsbChm
aWxlKTsKKyAgICBmc2VlayhmaWxlLCAwLCBTRUVLX1NFVCk7CisgICAgcnVsZUJ1ZmZlckMgPSBu
ZXcgY2hhcltydWxlRmlsZVNpemUrMTBdOworCisgICAgcmVzdWx0ID0gKGxvbmcpZnJlYWQocnVs
ZUJ1ZmZlckMsIDEsIHJ1bGVGaWxlU2l6ZSwgZmlsZSk7CisgICAgaWYgKHJlc3VsdCAhPSBydWxl
RmlsZVNpemUpICB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3IgcmVhZGluZyBmaWxl
IFwiJXNcIlxuIiwgcnVsZUZpbGVOYW1lKTsKKyAgICAgICAgZXhpdCAoLTEpOworICAgIH0KKyAg
ICBydWxlQnVmZmVyQ1tydWxlRmlsZVNpemVdPTA7CisgICAgZmNsb3NlKGZpbGUpOworCisgICAg
Ly8KKyAgICAvLyBMb29rIGZvciBhIFVuaWNvZGUgU2lnbmF0dXJlIChCT00pIG9uIHRoZSBydWxl
IGZpbGUKKyAgICAvLworICAgIGludDMyX3QgICAgICAgIHNpZ25hdHVyZUxlbmd0aDsKKyAgICBj
b25zdCBjaGFyICogICBydWxlU291cmNlQyA9IHJ1bGVCdWZmZXJDOworICAgIGNvbnN0IGNoYXIq
ICAgIGVuY29kaW5nID0gdWNudl9kZXRlY3RVbmljb2RlU2lnbmF0dXJlKAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVsZVNvdXJjZUMsIHJ1bGVGaWxlU2l6ZSwgJnNpZ25hdHVyZUxlbmd0
aCwgJnN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGV4aXQo
c3RhdHVzKTsKKyAgICB9CisgICAgaWYoZW5jb2RpbmchPU5VTEwgKXsKKyAgICAgICAgcnVsZVNv
dXJjZUMgICs9IHNpZ25hdHVyZUxlbmd0aDsKKyAgICAgICAgcnVsZUZpbGVTaXplIC09IHNpZ25h
dHVyZUxlbmd0aDsKKyAgICB9CisKKyAgICAvLworICAgIC8vIE9wZW4gYSBjb252ZXJ0ZXIgdG8g
dGFrZSB0aGUgcnVsZSBmaWxlIHRvIFVURi0xNgorICAgIC8vCisgICAgVUNvbnZlcnRlciogY29u
djsKKyAgICBjb252ID0gdWNudl9vcGVuKGVuY29kaW5nLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9G
QUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1Y252X29wZW46IElD
VSBFcnJvciBcIiVzXCJcbiIsIHVfZXJyb3JOYW1lKHN0YXR1cykpOworICAgICAgICBleGl0KHN0
YXR1cyk7CisgICAgfQorCisgICAgLy8KKyAgICAvLyBDb252ZXJ0IHRoZSBydWxlcyB0byBVQ2hh
ci4KKyAgICAvLyAgUHJlZmxpZ2h0IGZpcnN0IHRvIGRldGVybWluZSByZXF1aXJlZCBidWZmZXIg
c2l6ZS4KKyAgICAvLworICAgIHVpbnQzMl90IGRlc3RDYXAgPSB1Y252X3RvVUNoYXJzKGNvbnYs
CisgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsICAgICAgICAgICAvLyAgZGVzdCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgMCwgICAgICAgICAgICAgIC8vICBkZXN0Q2FwYWNpdHksCisgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bGVTb3VyY2VDLAorICAgICAgICAgICAgICAgICAgICAgICBy
dWxlRmlsZVNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICZzdGF0dXMpOworICAgIGlmIChz
dGF0dXMgIT0gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IpIHsKKyAgICAgICAgZnByaW50ZihzdGRl
cnIsICJ1Y252X3RvVUNoYXJzOiBJQ1UgRXJyb3IgXCIlc1wiXG4iLCB1X2Vycm9yTmFtZShzdGF0
dXMpKTsKKyAgICAgICAgZXhpdChzdGF0dXMpOworICAgIH07CisKKyAgICBzdGF0dXMgPSBVX1pF
Uk9fRVJST1I7CisgICAgVUNoYXIgKnJ1bGVTb3VyY2VVID0gbmV3IFVDaGFyW2Rlc3RDYXArMV07
CisgICAgdWNudl90b1VDaGFycyhjb252LAorICAgICAgICAgICAgICAgICAgcnVsZVNvdXJjZVUs
ICAgICAvLyAgZGVzdCwKKyAgICAgICAgICAgICAgICAgIGRlc3RDYXArMSwKKyAgICAgICAgICAg
ICAgICAgIHJ1bGVTb3VyY2VDLAorICAgICAgICAgICAgICAgICAgcnVsZUZpbGVTaXplLAorICAg
ICAgICAgICAgICAgICAgJnN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7Cisg
ICAgICAgIGZwcmludGYoc3RkZXJyLCAidWNudl90b1VDaGFyczogSUNVIEVycm9yIFwiJXNcIlxu
IiwgdV9lcnJvck5hbWUoc3RhdHVzKSk7CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9Owor
ICAgIHVjbnZfY2xvc2UoY29udik7CisKKworICAgIC8vCisgICAgLy8gIFB1dCB0aGUgc291cmNl
IHJ1bGVzIGludG8gYSBVbmljb2RlU3RyaW5nCisgICAgLy8KKyAgICBVbmljb2RlU3RyaW5nIHJ1
bGVTb3VyY2VTKEZBTFNFLCBydWxlU291cmNlVSwgZGVzdENhcCk7CisKKyAgICAvLworICAgIC8v
ICBDcmVhdGUgdGhlIGJyZWFrIGl0ZXJhdG9yIGZyb20gdGhlIHJ1bGVzCisgICAgLy8gICAgIFRo
aXMgd2lsbCBjb21waWxlIHRoZSBydWxlcy4KKyAgICAvLworICAgIFVQYXJzZUVycm9yIHBhcnNl
RXJyb3I7CisgICAgcGFyc2VFcnJvci5saW5lID0gMDsKKyAgICBwYXJzZUVycm9yLm9mZnNldCA9
IDA7CisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAqYmkgPSBuZXcgUnVsZUJhc2VkQnJlYWtJ
dGVyYXRvcihydWxlU291cmNlUywgcGFyc2VFcnJvciwgc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlM
VVJFKHN0YXR1cykpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJjcmVhdGVSdWxlQmFzZWRC
cmVha0l0ZXJhdG9yOiBJQ1UgRXJyb3IgXCIlc1wiICBhdCBsaW5lICVkLCBjb2x1bW4gJWRcbiIs
CisgICAgICAgICAgICAgICAgdV9lcnJvck5hbWUoc3RhdHVzKSwgKGludClwYXJzZUVycm9yLmxp
bmUsIChpbnQpcGFyc2VFcnJvci5vZmZzZXQpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAg
fTsKKworCisgICAgLy8KKyAgICAvLyAgR2V0IHRoZSBjb21waWxlZCBydWxlIGRhdGEgZnJvbSB0
aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgLy8KKyAgICB1aW50MzJfdCAgICAgICAgb3V0RGF0YVNp
emU7CisgICAgY29uc3QgdWludDhfdCAgKm91dERhdGE7CisgICAgb3V0RGF0YSA9IGJpLT5nZXRC
aW5hcnlSdWxlcyhvdXREYXRhU2l6ZSk7CisKKyAgICAvLyBDb3B5IHRoZSBkYXRhIGZvcm1hdCB2
ZXJzaW9uIG51bWJlcnMgZnJvbSB0aGUgUkJCSSBkYXRhIGhlYWRlciBpbnRvIHRoZSBVRGF0YU1l
bW9yeSBoZWFkZXIuCisgICAgdXBydl9tZW1jcHkoZGguaW5mby5mb3JtYXRWZXJzaW9uLCAoKFJC
QklEYXRhSGVhZGVyICopb3V0RGF0YSktPmZGb3JtYXRWZXJzaW9uLCBzaXplb2YoZGguaW5mby5m
b3JtYXRWZXJzaW9uKSk7CisKKyAgICAvLworICAgIC8vICBDcmVhdGUgdGhlIG91dHB1dCBmaWxl
CisgICAgLy8KKyAgICBzaXplX3QgYnl0ZXNXcml0dGVuOworICAgIFVOZXdEYXRhTWVtb3J5ICpw
RGF0YTsKKyAgICBwRGF0YSA9IHVkYXRhX2NyZWF0ZShvdXREaXIsIE5VTEwsIG91dEZpbGVOYW1l
LCAmKGRoLmluZm8pLCBjb3B5cmlnaHQsICZzdGF0dXMpOworICAgIGlmKFVfRkFJTFVSRShzdGF0
dXMpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZ2VuYnJrOiBDb3VsZCBub3Qgb3BlbiBv
dXRwdXQgZmlsZSBcIiVzXCIsIFwiJXNcIlxuIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAg
b3V0RmlsZU5hbWUsIHVfZXJyb3JOYW1lKHN0YXR1cykpOworICAgICAgICBleGl0KHN0YXR1cyk7
CisgICAgfQorCisKKyAgICAvLyAgV3JpdGUgdGhlIGRhdGEgaXRzZWxmLgorICAgIHVkYXRhX3dy
aXRlQmxvY2socERhdGEsIG91dERhdGEsIG91dERhdGFTaXplKTsKKyAgICAvLyBmaW5pc2ggdXAg
CisgICAgYnl0ZXNXcml0dGVuID0gdWRhdGFfZmluaXNoKHBEYXRhLCAmc3RhdHVzKTsKKyAgICBp
ZihVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImdlbmJyazog
ZXJyb3IgJWQgd3JpdGluZyB0aGUgb3V0cHV0IGZpbGVcbiIsIHN0YXR1cyk7CisgICAgICAgIGV4
aXQoc3RhdHVzKTsKKyAgICB9CisgICAgCisgICAgaWYgKGJ5dGVzV3JpdHRlbiAhPSBvdXREYXRh
U2l6ZSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yIHdyaXRpbmcgdG8gb3V0cHV0
IGZpbGUgXCIlc1wiXG4iLCBvdXRGaWxlTmFtZSk7CisgICAgICAgIGV4aXQoLTEpOworICAgIH0K
KworICAgIGRlbGV0ZSBiaTsKKyAgICBkZWxldGVbXSBydWxlU291cmNlVTsKKyAgICBkZWxldGVb
XSBydWxlQnVmZmVyQzsKKyAgICB1X2NsZWFudXAoKTsKKworCisgICAgcHJpbnRmKCJnZW5icms6
IHRvb2wgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS5cbiIpOworICAgIHJldHVybiAwOworCisjZW5k
aWYgLyogI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiAqLworfQorCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3B1dGlsaW1wLmggYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3B1dGlsaW1wLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDJjMWM2NmYxNzAxNDVjM2QwYmMwMjNiNjE3MDk1NzMzNDAyMDViNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvcHV0aWxp
bXAuaApAQCAtMCwwICsxLDYxMSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAg
IENvcHlyaWdodCAoQykgMTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyoKKyogIEZJTEUgTkFNRSA6IHB1dGlsaW1wLmgKKyoKKyog
ICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDEwLzE3LzA0ICAgIGdy
aG90ZW4gICAgIE1vdmUgaW50ZXJuYWwgZnVuY3Rpb25zIGZyb20gcHV0aWwuaCB0byB0aGlzIGZp
bGUuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgUFVUSUxJTVBfSAorI2Rl
ZmluZSBQVVRJTElNUF9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUg
InVuaWNvZGUvcHV0aWwuaCIKKworLyoqCisgKiBcZGVmIFVfU0lHTkVEX1JJR0hUX1NISUZUX0lT
X0FSSVRITUVUSUMKKyAqIE5lYXJseSBhbGwgQ1BVcyBhbmQgY29tcGlsZXJzIGltcGxlbWVudCBh
IHJpZ2h0LXNoaWZ0IG9mIGEgc2lnbmVkIGludGVnZXIKKyAqIGFzIGFuIEFyaXRobWV0aWMgU2hp
ZnQgUmlnaHQgd2hpY2ggY29waWVzIHRoZSBzaWduIGJpdCAodGhlIE1vc3QgU2lnbmlmaWNhbnQg
Qml0IChNU0IpKQorICogaW50byB0aGUgdmFjYXRlZCBiaXRzIChzaWduIGV4dGVuc2lvbikuCisg
KiBGb3IgZXhhbXBsZSwgKGludDMyX3QpMHhmZmY1ZmZmMz4+NCBiZWNvbWVzIDB4ZmZmZjVmZmYg
YW5kIC0xPj4xPS0xLgorICoKKyAqIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3Igc3RvcmluZyBhIHNp
Z25lZCB2YWx1ZSBpbiB0aGUgdXBwZXIgYml0cworICogYW5kIGFub3RoZXIgYml0IGZpZWxkIGlu
IHRoZSBsb3dlciBiaXRzLgorICogVGhlIHNpZ25lZCB2YWx1ZSBjYW4gYmUgcmV0cmlldmVkIGJ5
IHNpbXBsZSByaWdodC1zaGlmdGluZy4KKyAqCisgKiBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCB0
aGUgSmF2YSBsYW5ndWFnZS4KKyAqCisgKiBIb3dldmVyLCB0aGUgQyBzdGFuZGFyZCBhbGxvd3Mg
Y29tcGlsZXJzIHRvIGltcGxlbWVudCBhIHJpZ2h0LXNoaWZ0IG9mIGEgc2lnbmVkIGludGVnZXIK
KyAqIGFzIGEgTG9naWNhbCBTaGlmdCBSaWdodCB3aGljaCBjb3BpZXMgYSAwIGludG8gdGhlIHZh
Y2F0ZWQgYml0cy4KKyAqIEZvciBleGFtcGxlLCAoaW50MzJfdCkweGZmZjVmZmYzPj40IGJlY29t
ZXMgMHgwZmZmNWZmZiBhbmQgLTE+PjE9MHg3ZmZmZmZmZi4KKyAqCisgKiBDb2RlIHRoYXQgZGVw
ZW5kcyBvbiB0aGUgbmF0dXJhbCBiZWhhdmlvciBzaG91bGQgYmUgZ3VhcmRlZCB3aXRoIHRoaXMg
bWFjcm8sCisgKiB3aXRoIGFuIGFsdGVybmF0ZSBwYXRoIGZvciB1bnVzdWFsIHBsYXRmb3Jtcy4K
KyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9TSUdORURfUklHSFRfU0hJRlRfSVNfQVJJVEhN
RVRJQworICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbHNlCisgICAgLyoK
KyAgICAgKiBOZWFybHkgYWxsIENQVXMgJiBjb21waWxlcnMgaW1wbGVtZW50IGEgcmlnaHQtc2hp
ZnQgb2YgYSBzaWduZWQgaW50ZWdlcgorICAgICAqIGFzIGFuIEFyaXRobWV0aWMgU2hpZnQgUmln
aHQgKHdpdGggc2lnbiBleHRlbnNpb24pLgorICAgICAqLworIyAgIGRlZmluZSBVX1NJR05FRF9S
SUdIVF9TSElGVF9JU19BUklUSE1FVElDIDEKKyNlbmRpZgorCisvKiogRGVmaW5lIHRoaXMgdG8g
MSBpZiB5b3VyIHBsYXRmb3JtIHN1cHBvcnRzIElFRUUgNzU0IGZsb2F0aW5nIHBvaW50LAorICAg
dG8gMCBpZiBpdCBkb2VzIG5vdC4gKi8KKyNpZm5kZWYgSUVFRV83NTQKKyMgICBkZWZpbmUgSUVF
RV83NTQgMQorI2VuZGlmCisKKy8qKgorICogdWludHB0cl90IGlzIGFuIG9wdGlvbmFsIHBhcnQg
b2YgdGhlIHN0YW5kYXJkIGRlZmluaXRpb25zIGluIHN0ZGludC5oLgorICogVGhlIG9wZW5ncm91
cC5vcmcgZG9jdW1lbnRhdGlvbiBmb3Igc3RkaW50Lmggc2F5cworICogIk9uIFhTSS1jb25mb3Jt
YW50IHN5c3RlbXMsIHRoZSBpbnRwdHJfdCBhbmQgdWludHB0cl90IHR5cGVzIGFyZSByZXF1aXJl
ZDsKKyAqIG90aGVyd2lzZSwgdGhleSBhcmUgb3B0aW9uYWwuIgorICogV2UgYXNzdW1lIHRoYXQg
d2hlbiB1aW50cHRyX3QgaXMgZGVmaW5lZCwgVUlOVFBUUl9NQVggaXMgZGVmaW5lZCBhcyB3ZWxs
LgorICoKKyAqIERvIG5vdCB1c2UgcHRyZGlmZl90IHNpbmNlIGl0IGlzIHNpZ25lZC4gc2l6ZV90
IGlzIHVuc2lnbmVkLgorICovCisvKiBUT0RPOiBUaGlzIGNoZWNrIGZhaWxzIG9uIHNvbWUgeiBl
bnZpcm9ubWVudHMuIEZpbGVkIGEgdGlja2V0ICM5MzU3IGZvciB0aGlzLiAqLworI2lmICFkZWZp
bmVkKF9faW50cHRyX3RfZGVmaW5lZCkgJiYgIWRlZmluZWQoVUlOVFBUUl9NQVgpICYmIChVX1BM
QVRGT1JNICE9IFVfUEZfT1MzOTApCit0eXBlZGVmIHNpemVfdCB1aW50cHRyX3Q7CisjZW5kaWYK
KworLyoqCisgKiBcZGVmIFVfSEFWRV9NU1ZDXzIwMDNfT1JfRUFSTElFUgorICogRmxhZyBmb3Ig
d29ya2Fyb3VuZCBvZiBNU1ZDIDIwMDMgb3B0aW1pemF0aW9uIGJ1Z3MKKyAqIEBpbnRlcm5hbAor
ICovCisjaWYgIWRlZmluZWQoVV9IQVZFX01TVkNfMjAwM19PUl9FQVJMSUVSKSAmJiBkZWZpbmVk
KF9NU0NfVkVSKSAmJiAoX01TQ19WRVIgPCAxNDAwKQorI2RlZmluZSBVX0hBVkVfTVNWQ18yMDAz
X09SX0VBUkxJRVIKKyNlbmRpZgorCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisvKiogQHsgSW5m
b3JtYXRpb24gYWJvdXQgUE9TSVggc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICovCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisKKyNpZmRlZiBVX0hBVkVfTkxf
TEFOR0lORk9fQ09ERVNFVAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNl
bGlmIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSSB8fCBVX1BMQVRGT1JNID09IFVfUEZfQU5EUk9J
RCB8fCBVX1BMQVRGT1JNID09IFVfUEZfUU5YCisjICAgZGVmaW5lIFVfSEFWRV9OTF9MQU5HSU5G
T19DT0RFU0VUIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VU
IDEKKyNlbmRpZgorCisjaWZkZWYgVV9OTF9MQU5HSU5GT19DT0RFU0VUCisgICAgLyogVXNlIHRo
ZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgIVVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VU
CisjICAgZGVmaW5lIFVfTkxfTEFOR0lORk9fQ09ERVNFVCAtMQorI2VsaWYgVV9QTEFURk9STSA9
PSBVX1BGX09TNDAwCisgICAvKiBub3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9O
TF9MQU5HSU5GT19DT0RFU0VUIENPREVTRVQKKyNlbmRpZgorCisjaWZkZWYgVV9UWlNFVAorICAg
IC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fVVNFU19P
TkxZX1dJTjMyX0FQSQorIyAgIGRlZmluZSBVX1RaU0VUIF90enNldAorI2VsaWYgVV9QTEFURk9S
TSA9PSBVX1BGX09TNDAwCisgICAvKiBub3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUg
VV9UWlNFVCB0enNldAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFVfVElNRVpPTkUpIHx8IGRlZmlu
ZWQoVV9IQVZFX1RJTUVaT05FKQorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8K
KyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9BTkRST0lECisjICAgZGVmaW5lIFVfVElNRVpPTkUg
dGltZXpvbmUKKyNlbGlmIFVfUExBVEZPUk1fSVNfTElOVVhfQkFTRUQKKyMgICBpZiBkZWZpbmVk
KF9fVUNMSUJDX18pCisgICAgICAgLyogdUNsaWJjIGRvZXMgbm90IGhhdmUgX190aW1lem9uZSBv
ciBfdGltZXpvbmUuICovCisjICAgZWxpZiBkZWZpbmVkKF9ORVdMSUJfVkVSU0lPTikKKyMgICAg
ICBkZWZpbmUgVV9USU1FWk9ORSAgICAgIF90aW1lem9uZQorIyAgIGVsaWYgZGVmaW5lZChfX0dM
SUJDX18pCisgICAgICAgLyogZ2xpYmMgKi8KKyMgICAgICBkZWZpbmUgVV9USU1FWk9ORSAgICAg
IF9fdGltZXpvbmUKKyMgICBlbmRpZgorI2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJf
QVBJCisjICAgZGVmaW5lIFVfVElNRVpPTkUgX3RpbWV6b25lCisjZWxpZiBVX1BMQVRGT1JNID09
IFVfUEZfQlNEICYmICFkZWZpbmVkKF9fTmV0QlNEX18pCisgICAvKiBub3QgZGVmaW5lZCAqLwor
I2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisgICAvKiBub3QgZGVmaW5lZCAqLworI2Vs
aWYgVV9QTEFURk9STSA9PSBVX1BGX0lQSE9ORQorICAgLyogbm90IGRlZmluZWQgKi8KKyNlbHNl
CisjICAgZGVmaW5lIFVfVElNRVpPTkUgdGltZXpvbmUKKyNlbmRpZgorCisjaWZkZWYgVV9UWk5B
TUUKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JN
X1VTRVNfT05MWV9XSU4zMl9BUEkKKyMgICBkZWZpbmUgVV9UWk5BTUUgX3R6bmFtZQorI2VsaWYg
VV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisgICAvKiBub3QgZGVmaW5lZCAqLworI2Vsc2UKKyMg
ICBkZWZpbmUgVV9UWk5BTUUgdHpuYW1lCisjZW5kaWYKKworI2lmZGVmIFVfSEFWRV9NTUFQCisg
ICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9IQVNf
V0lOMzJfQVBJCisjICAgZGVmaW5lIFVfSEFWRV9NTUFQIDAKKyNlbHNlCisjICAgZGVmaW5lIFVf
SEFWRV9NTUFQIDEKKyNlbmRpZgorCisjaWZkZWYgVV9IQVZFX1BPUEVOCisgICAgLyogVXNlIHRo
ZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJf
QVBJCisjICAgZGVmaW5lIFVfSEFWRV9QT1BFTiAwCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZf
T1M0MDAKKyMgICBkZWZpbmUgVV9IQVZFX1BPUEVOIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFW
RV9QT1BFTiAxCisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfSEFWRV9ESVJFTlRfSAorICogRGVm
aW5lcyB3aGV0aGVyIGRpcmVudC5oIGlzIGF2YWlsYWJsZS4KKyAqIEBpbnRlcm5hbAorICovCisj
aWZkZWYgVV9IQVZFX0RJUkVOVF9ICisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAq
LworI2VsaWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisjICAgZGVmaW5lIFVfSEFWRV9ESVJF
TlRfSCAwCisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfRElSRU5UX0ggMQorI2VuZGlmCisKKy8q
KiBAfSAqLworCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisvKiogQHsgR0NDIGJ1aWx0IGluIGZ1
bmN0aW9ucyBmb3IgYXRvbWljIG1lbW9yeSBvcGVyYXRpb25zICAgICAgICAgICAgICAgICAgICov
CisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSovCisKKy8qKgorICogXGRlZiBVX0hBVkVfR0NDX0FUT01J
Q1MKKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX0dDQ19BVE9NSUNTCisgICAgLyog
VXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX01J
TkdXCisgICAgI2RlZmluZSBVX0hBVkVfR0NDX0FUT01JQ1MgMAorI2VsaWYgVV9HQ0NfTUFKT1Jf
TUlOT1IgPj0gNDA0IHx8IGRlZmluZWQoX19jbGFuZ19fKQorICAgIC8qIFRPRE86IEludGVsIGlj
YyBhbmQgSUJNIHhsYyBvbiBBSVggYWxzbyBzdXBwb3J0IGdjYyBhdG9taWNzLiAgKEludGVsIG9y
aWdpbmF0ZWQgdGhlbS4pCisgICAgICogICAgICAgQWRkIHRoZW0gZm9yIHRoZXNlIGNvbXBpbGVy
cy4KKyAgICAgKiBOb3RlOiBDbGFuZyBzZXRzIF9fR05VQ19fIGRlZmluZXMgZm9yIHZlcnNpb24g
NC4yLCBzbyBtaXNzZXMgdGhlIDQuNCB0ZXN0IGhlcmUuCisgICAgICovCisjICAgZGVmaW5lIFVf
SEFWRV9HQ0NfQVRPTUlDUyAxCisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfR0NDX0FUT01JQ1Mg
MAorI2VuZGlmCisKKy8qKiBAfSAqLworCisvKioKKyAqIFxkZWYgVV9IQVZFX1NURF9BVE9NSUNT
CisgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHN0YW5kYXJkIEMrKzExIDxhdG9taWM+IGlzIGF2YWls
YWJsZS4KKyAqIElDVSB3aWxsIHVzZSB0aGlzIHdoZW4gYXZpYWxhYmxlLAorICogb3RoZXJ3aXNl
IHdpbGwgZmFsbCBiYWNrIHRvIGNvbXBpbGVyIG9yIHBsYXRmb3JtIHNwZWNpZmljIGFsdGVybmF0
aXZlcy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX1NURF9BVE9NSUNTCisgICAg
LyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgIWRlZmluZWQoX19jcGx1c3Bs
dXMpIHx8IF9fY3BsdXNwbHVzPDIwMTEwM0wKKyAgICAvKiBOb3QgQysrMTEsIGRpc2FibGUgdXNl
IG9mIGF0b21pY3MgKi8KKyMgICBkZWZpbmUgVV9IQVZFX1NURF9BVE9NSUNTIDAKKyNlbGlmIF9f
Y2xhbmdfXyAmJiBfX2NsYW5nX21ham9yX189PTMgJiYgX19jbGFuZ19taW5vcl9fPD0xCisgICAg
LyogQ2xhbmcgMy4xLCBoYXMgYXRvbWljIHZhcmlhYmxlIGluaXRpYWxpemVyIGJ1Zy4gKi8KKyMg
ICBkZWZpbmUgVV9IQVZFX1NURF9BVE9NSUNTIDAKKyNlbHNlIAorICAgIC8qIFVfSEFWRV9BVE9N
SUMgaXMgdHlwaWNhbGx5IHNldCBieSBhbiBhdXRvY29uZiB0ZXN0IG9mICNpbmNsdWRlIDxhdG9t
aWM+ICAqLworICAgIC8qICAgQ2FuIGJlIHNldCBtYW51YWxseSwgb3IgbGVmdCB1bmRlZmluZWQs
IG9uIHBsYXRmb3JtcyB3aXRob3V0IGF1dG9jb25mLiAqLworIyAgIGlmIGRlZmluZWQoVV9IQVZF
X0FUT01JQykgJiYgIFVfSEFWRV9BVE9NSUMgCisjICAgICAgZGVmaW5lIFVfSEFWRV9TVERfQVRP
TUlDUyAxCisjICAgZWxzZQorIyAgICAgIGRlZmluZSBVX0hBVkVfU1REX0FUT01JQ1MgMAorIyAg
IGVuZGlmCisjZW5kaWYKKworCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisvKiogQHsgQ29kZSBh
bGlnbm1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICovCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisKKy8qKgorICogXGRlZiBVX0FMSUdO
X0NPREUKKyAqIFRoaXMgaXMgdXNlZCB0byBhbGlnbiBjb2RlIGZyYWdtZW50cyB0byBhIHNwZWNp
ZmljIGJ5dGUgYm91bmRhcnkuCisgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2V0dGluZyBjb25zaXN0
ZW50IHBlcmZvcm1hbmNlIHRlc3QgcmVzdWx0cy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYg
VV9BTElHTl9DT0RFCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYg
ZGVmaW5lZChfTVNDX1ZFUikgJiYgZGVmaW5lZChfTV9JWDg2KSAmJiAhZGVmaW5lZChfTUFOQUdF
RCkKKyMgICBkZWZpbmUgVV9BTElHTl9DT0RFKGJvdW5kYXJ5U2l6ZSkgX19hc20gIGFsaWduIGJv
dW5kYXJ5U2l6ZQorI2Vsc2UKKyMgICBkZWZpbmUgVV9BTElHTl9DT0RFKGJvdW5kYXJ5U2l6ZSkg
CisjZW5kaWYKKworLyoqIEB9ICovCisKKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKy8qKiBAeyBQ
cm9ncmFtcyB1c2VkIGJ5IElDVSBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKi8KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKworLyoqCisgKiBcZGVmIFVf
TUFLRV9JU19OTUFLRQorICogRGVmaW5lcyB3aGV0aGVyIHRoZSAibWFrZSIgcHJvZ3JhbSBpcyBX
aW5kb3dzIG5tYWtlLgorICovCisjaWZkZWYgVV9NQUtFX0lTX05NQUtFCisgICAgLyogVXNlIHRo
ZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX1dJTkRPV1MK
KyMgICBkZWZpbmUgVV9NQUtFX0lTX05NQUtFIDEKKyNlbHNlCisjICAgZGVmaW5lIFVfTUFLRV9J
U19OTUFLRSAwCisjZW5kaWYKKworLyoqIEB9ICovCisKKy8qPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwor
LyogUGxhdGZvcm0gdXRpbGl0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICovCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKworLyoqCisgKiBQ
bGF0Zm9ybSB1dGlsaXRpZXMgaXNvbGF0ZXMgdGhlIHBsYXRmb3JtIGRlcGVuZGVuY2llcyBvZiB0
aGUKKyAqIGxpYmFyYXJ5LiAgRm9yIGVhY2ggcGxhdGZvcm0gd2hpY2ggdGhpcyBjb2RlIGlzIHBv
cnRlZCB0bywgdGhlc2UKKyAqIGZ1bmN0aW9ucyBtYXkgaGF2ZSB0byBiZSByZS1pbXBsZW1lbnRl
ZC4KKyAqLworCisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gZGV0ZXJtaW5lIGlm
IGEgZG91YmxlIGlzIE5vdCBhIE51bWJlciAoTmFOKS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lO
VEVSTkFMIFVCb29sICAgVV9FWFBPUlQyIHVwcnZfaXNOYU4oZG91YmxlIGQpOworLyoqCisgKiBG
bG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGRldGVybWluZSBpZiBhIGRvdWJsZSBoYXMgYW4gaW5m
aW5pdGUgdmFsdWUuCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBVQm9vbCAgIFVfRVhQ
T1JUMiB1cHJ2X2lzSW5maW5pdGUoZG91YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1
dGlsaXR5IHRvIGRldGVybWluZSBpZiBhIGRvdWJsZSBoYXMgYSBwb3NpdGl2ZSBpbmZpbml0ZSB2
YWx1ZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIFVCb29sICAgVV9FWFBPUlQyIHVw
cnZfaXNQb3NpdGl2ZUluZmluaXR5KGRvdWJsZSBkKTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQg
dXRpbGl0eSB0byBkZXRlcm1pbmUgaWYgYSBkb3VibGUgaGFzIGEgbmVnYXRpdmUgaW5maW5pdGUg
dmFsdWUuCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBVQm9vbCAgIFVfRVhQT1JUMiB1
cHJ2X2lzTmVnYXRpdmVJbmZpbml0eShkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50
IHV0aWxpdHkgdGhhdCByZXR1cm5zIGEgTm90IGEgTnVtYmVyIChOYU4pIHZhbHVlLgorICogQGlu
dGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9nZXROYU4odm9p
ZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdGhhdCByZXR1cm5zIGFuIGluZmlu
aXRlIHZhbHVlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9S
VDIgdXBydl9nZXRJbmZpbml0eSh2b2lkKTsKKworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGls
aXR5IHRvIHRydW5jYXRlIGEgZG91YmxlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwg
ZG91YmxlICBVX0VYUE9SVDIgdXBydl90cnVuYyhkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5n
IHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBmbG9vciBvZiBhIGRvdWJsZS4KKyAqIEBp
bnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfZmxvb3IoZG91
YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSB0aGUg
Y2VpbGluZyBvZiBhIGRvdWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJs
ZSAgVV9FWFBPUlQyIHVwcnZfY2VpbChkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50
IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiBhIGRvdWJsZS4KKyAq
IEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfZmFicyhk
b3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRo
ZSBmcmFjdGlvbmFsIGFuZCBpbnRlZ2VyIHBhcnRzIG9mIGEgZG91YmxlLgorICogQGludGVybmFs
CisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9tb2RmKGRvdWJsZSBkLCBk
b3VibGUqIHBpbnRlZ2VyKTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBjYWxj
dWxhdGUgdGhlIHJlbWFpbmRlciBvZiBhIGRvdWJsZSBkaXZpZGVkIGJ5IGFub3RoZXIgZG91Ymxl
LgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9m
bW9kKGRvdWJsZSBkLCBkb3VibGUgeSk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkg
dG8gY2FsY3VsYXRlIGQgdG8gdGhlIHBvd2VyIG9mIGV4cG9uZW50IChkXmV4cG9uZW50KS4KKyAq
IEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfcG93KGRv
dWJsZSBkLCBkb3VibGUgZXhwb25lbnQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5
IHRvIGNhbGN1bGF0ZSAxMCB0byB0aGUgcG93ZXIgb2YgZXhwb25lbnQgKDEwXmV4cG9uZW50KS4K
KyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfcG93
MTAoaW50MzJfdCBleHBvbmVudCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8g
Y2FsY3VsYXRlIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHR3byBkb3VibGVzLgorICogQGludGVybmFs
CisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9mbWF4KGRvdWJsZSBkLCBk
b3VibGUgeSk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRo
ZSBtaW5pbXVtIHZhbHVlIG9mIHR3byBkb3VibGVzLgorICogQGludGVybmFsCisgKi8KK1VfSU5U
RVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9mbWluKGRvdWJsZSBkLCBkb3VibGUgeSk7Cisv
KioKKyAqIFByaXZhdGUgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIG1heGltdW0gdmFsdWUgb2Yg
dHdvIGludGVnZXJzLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgaW50MzJfdCBVX0VY
UE9SVDIgdXBydl9tYXgoaW50MzJfdCBkLCBpbnQzMl90IHkpOworLyoqCisgKiBQcml2YXRlIHV0
aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHR3byBpbnRlZ2Vycy4KKyAq
IEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGludDMyX3QgVV9FWFBPUlQyIHVwcnZfbWluKGlu
dDMyX3QgZCwgaW50MzJfdCB5KTsKKworI2lmIFVfSVNfQklHX0VORElBTgorIyAgIGRlZmluZSB1
cHJ2X2lzTmVnYXRpdmUobnVtYmVyKSAoKigoc2lnbmVkIGNoYXIgKikmKG51bWJlcikpPDApCisj
ZWxzZQorIyAgIGRlZmluZSB1cHJ2X2lzTmVnYXRpdmUobnVtYmVyKSAoKigoc2lnbmVkIGNoYXIg
KikmKG51bWJlcikrc2l6ZW9mKG51bWJlciktMSk8MCkKKyNlbmRpZgorCisvKioKKyAqIFJldHVy
biB0aGUgbGFyZ2VzdCBwb3NpdGl2ZSBudW1iZXIgdGhhdCBjYW4gYmUgcmVwcmVzZW50ZWQgYnkg
YW4gaW50ZWdlcgorICogdHlwZSBvZiBhcmJpdHJhcnkgYml0IGxlbmd0aC4KKyAqIEBpbnRlcm5h
bAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfbWF4TWFudGlzc2Eodm9p
ZCk7CisKKy8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIGxv
Z2FyaXRobSBvZiBhIGRvdWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJs
ZSAgVV9FWFBPUlQyIHVwcnZfbG9nKGRvdWJsZSBkKTsKKworLyoqCisgKiBEb2VzIGNvbW1vbiBu
b3Rpb24gb2Ygcm91bmRpbmcgZS5nLiB1cHJ2X2Zsb29yKHggKyAwLjUpOworICogQHBhcmFtIHgg
dGhlIGRvdWJsZSBudW1iZXIKKyAqIEByZXR1cm4gdGhlIHJvdW5kZWQgZG91YmxlCisgKiBAaW50
ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBkb3VibGUgIFVfRVhQT1JUMiB1cHJ2X3JvdW5kKGRvdWJs
ZSB4KTsKKworI2lmIDAKKy8qKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBhZnRl
ciB0aGUgZGVjaW1hbCBwb2ludCBpbiBhIGRvdWJsZSBudW1iZXIgeC4KKyAqCisgKiBAcGFyYW0g
eCB0aGUgZG91YmxlIG51bWJlcgorICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBhZnRl
ciB0aGUgZGVjaW1hbCBwb2ludCBpbiBhIGRvdWJsZSBudW1iZXIgeC4KKyAqIEBpbnRlcm5hbAor
ICovCisvKlVfSU5URVJOQUwgaW50MzJfdCAgVV9FWFBPUlQyIHVwcnZfZGlnaXRzQWZ0ZXJEZWNp
bWFsKGRvdWJsZSB4KTsqLworI2VuZGlmCisKKyNpZiAhVV9DSEFSU0VUX0lTX1VURjgKKy8qKgor
ICogUGxlYXNlIHVzZSB1Y252X2dldERlZmF1bHROYW1lKCkgaW5zdGVhZC4KKyAqIFJldHVybiB0
aGUgZGVmYXVsdCBjb2RlcGFnZSBmb3IgdGhpcyBwbGF0Zm9ybSBhbmQgbG9jYWxlLgorICogVGhp
cyBmdW5jdGlvbiBjYW4gY2FsbCBzZXRsb2NhbGUoKSBvbiBVbml4IHBsYXRmb3Jtcy4gUGxlYXNl
IHJlYWQgdGhlCisgKiBwbGF0Zm9ybSBkb2N1bWVudGF0aW9uIG9uIHNldGxvY2FsZSgpIGJlZm9y
ZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCisgKiBAcmV0dXJuIHRoZSBkZWZhdWx0IGNvZGVwYWdl
IGZvciB0aGlzIHBsYXRmb3JtIAorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgY29uc3Qg
Y2hhciogIFVfRVhQT1JUMiB1cHJ2X2dldERlZmF1bHRDb2RlcGFnZSh2b2lkKTsKKyNlbmRpZgor
CisvKioKKyAqIFBsZWFzZSB1c2UgdWxvY19nZXREZWZhdWx0KCkgaW5zdGVhZC4KKyAqIFJldHVy
biB0aGUgZGVmYXVsdCBsb2NhbGUgSUQgc3RyaW5nIGJ5IHF1ZXJ5aW5nIHRocyBzeXN0ZW0sIG9y
CisgKiAgICAgemVybyBpZiBvbmUgY2Fubm90IGJlIGZvdW5kLiAKKyAqIFRoaXMgZnVuY3Rpb24g
Y2FuIGNhbGwgc2V0bG9jYWxlKCkgb24gVW5peCBwbGF0Zm9ybXMuIFBsZWFzZSByZWFkIHRoZQor
ICogcGxhdGZvcm0gZG9jdW1lbnRhdGlvbiBvbiBzZXRsb2NhbGUoKSBiZWZvcmUgY2FsbGluZyB0
aGlzIGZ1bmN0aW9uLgorICogQHJldHVybiB0aGUgZGVmYXVsdCBsb2NhbGUgSUQgc3RyaW5nCisg
KiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBjb25zdCBjaGFyKiAgVV9FWFBPUlQyIHVwcnZf
Z2V0RGVmYXVsdExvY2FsZUlEKHZvaWQpOworCisvKioKKyAqIFRpbWUgem9uZSB1dGlsaXRpZXMK
KyAqCisgKiBXcmFwcGVycyBmb3IgQyBydW50aW1lIGxpYnJhcnkgZnVuY3Rpb25zIHJlbGF0aW5n
IHRvIHRpbWV6b25lcy4KKyAqIFRoZSB0X3R6c2V0KCkgZnVuY3Rpb24gKHNpbWlsYXIgdG8gdHpz
ZXQpIHVzZXMgdGhlIGN1cnJlbnQgc2V0dGluZworICogb2YgdGhlIGVudmlyb25tZW50IHZhcmlh
YmxlIFRaIHRvIGFzc2lnbiB2YWx1ZXMgdG8gdGhyZWUgZ2xvYmFsCisgKiB2YXJpYWJsZXM6IGRh
eWxpZ2h0LCB0aW1lem9uZSwgYW5kIHR6bmFtZS4gVGhlc2UgdmFyaWFibGVzIGhhdmUgdGhlCisg
KiBmb2xsb3dpbmcgbWVhbmluZ3MsIGFuZCBhcmUgZGVjbGFyZWQgaW4gJmx0O3RpbWUuaCZndDsu
CisgKgorICogICBkYXlsaWdodCAgIE5vbnplcm8gaWYgZGF5bGlnaHQtc2F2aW5nLXRpbWUgem9u
ZSAoRFNUKSBpcyBzcGVjaWZpZWQKKyAqICAgICAgICAgICAgICBpbiBUWjsgb3RoZXJ3aXNlLCAw
LiBEZWZhdWx0IHZhbHVlIGlzIDEuCisgKiAgIHRpbWV6b25lICAgRGlmZmVyZW5jZSBpbiBzZWNv
bmRzIGJldHdlZW4gY29vcmRpbmF0ZWQgdW5pdmVyc2FsCisgKiAgICAgICAgICAgICAgdGltZSBh
bmQgbG9jYWwgdGltZS4gRS5nLiwgLTI4LDgwMCBmb3IgUFNUIChHTVQtOGhycykKKyAqICAgdHpu
YW1lKDApICBUaHJlZS1sZXR0ZXIgdGltZS16b25lIG5hbWUgZGVyaXZlZCBmcm9tIFRaIGVudmly
b25tZW50CisgKiAgICAgICAgICAgICAgdmFyaWFibGUuIEUuZy4sICJQU1QiLgorICogICB0em5h
bWUoMSkgIFRocmVlLWxldHRlciBEU1Qgem9uZSBuYW1lIGRlcml2ZWQgZnJvbSBUWiBlbnZpcm9u
bWVudAorICogICAgICAgICAgICAgIHZhcmlhYmxlLiAgRS5nLiwgIlBEVCIuIElmIERTVCB6b25l
IGlzIG9taXR0ZWQgZnJvbSBUWiwKKyAqICAgICAgICAgICAgICB0em5hbWUoMSkgaXMgYW4gZW1w
dHkgc3RyaW5nLgorICoKKyAqIE5vdGVzOiBGb3IgZXhhbXBsZSwgdG8gc2V0IHRoZSBUWiBlbnZp
cm9ubWVudCB2YXJpYWJsZSB0byBjb3JyZXNwb25kCisgKiB0byB0aGUgY3VycmVudCB0aW1lIHpv
bmUgaW4gR2VybWFueSwgeW91IGNhbiB1c2Ugb25lIG9mIHRoZQorICogZm9sbG93aW5nIHN0YXRl
bWVudHM6CisgKgorICogICBzZXQgVFo9R1NUMUdEVAorICogICBzZXQgVFo9R1NUKzFHRFQKKyAq
CisgKiBJZiB0aGUgVFogdmFsdWUgaXMgbm90IHNldCwgdF90enNldCgpIGF0dGVtcHRzIHRvIHVz
ZSB0aGUgdGltZSB6b25lCisgKiBpbmZvcm1hdGlvbiBzcGVjaWZpZWQgYnkgdGhlIG9wZXJhdGlu
ZyBzeXN0ZW0uIFVuZGVyIFdpbmRvd3MgTlQKKyAqIGFuZCBXaW5kb3dzIDk1LCB0aGlzIGluZm9y
bWF0aW9uIGlzIHNwZWNpZmllZCBpbiB0aGUgQ29udHJvbCBQYW5lbCdzCisgKiBEYXRlL1RpbWUg
YXBwbGljYXRpb24uCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCB2b2lkICAgICBVX0VY
UE9SVDIgdXBydl90enNldCh2b2lkKTsKKworLyoqCisgKiBEaWZmZXJlbmNlIGluIHNlY29uZHMg
YmV0d2VlbiBjb29yZGluYXRlZCB1bml2ZXJzYWwKKyAqIHRpbWUgYW5kIGxvY2FsIHRpbWUuIEUu
Zy4sIC0yOCw4MDAgZm9yIFBTVCAoR01ULThocnMpCisgKiBAcmV0dXJuIHRoZSBkaWZmZXJlbmNl
IGluIHNlY29uZHMgYmV0d2VlbiBjb29yZGluYXRlZCB1bml2ZXJzYWwgdGltZSBhbmQgbG9jYWwg
dGltZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGludDMyX3QgIFVfRVhQT1JUMiB1
cHJ2X3RpbWV6b25lKHZvaWQpOworCisvKioKKyAqICAgdHpuYW1lKDApICBUaHJlZS1sZXR0ZXIg
dGltZS16b25lIG5hbWUgZGVyaXZlZCBmcm9tIFRaIGVudmlyb25tZW50CisgKiAgICAgICAgICAg
ICAgdmFyaWFibGUuIEUuZy4sICJQU1QiLgorICogICB0em5hbWUoMSkgIFRocmVlLWxldHRlciBE
U1Qgem9uZSBuYW1lIGRlcml2ZWQgZnJvbSBUWiBlbnZpcm9ubWVudAorICogICAgICAgICAgICAg
IHZhcmlhYmxlLiAgRS5nLiwgIlBEVCIuIElmIERTVCB6b25lIGlzIG9taXR0ZWQgZnJvbSBUWiwK
KyAqICAgICAgICAgICAgICB0em5hbWUoMSkgaXMgYW4gZW1wdHkgc3RyaW5nLgorICogQGludGVy
bmFsCisgKi8KK1VfSU5URVJOQUwgY29uc3QgY2hhciogVV9FWFBPUlQyIHVwcnZfdHpuYW1lKGlu
dCBuKTsKKworLyoqCisgKiBHZXQgVVRDIChHTVQpIHRpbWUgbWVhc3VyZWQgaW4gbWlsbGlzZWNv
bmRzIHNpbmNlIDA6MDAgb24gMS8xLzE5NzAuCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGFmZmVjdGVk
IGJ5ICdmYWtldGltZScgYW5kIHNob3VsZCBiZSB0aGUgYm90dGxlbmVjayBmb3IgYWxsIHVzZXIt
dmlzaWJsZSBJQ1UgdGltZSBmdW5jdGlvbnMuCisgKiBAcmV0dXJuIHRoZSBVVEMgdGltZSBtZWFz
dXJlZCBpbiBtaWxsaXNlY29uZHMKKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIFVEYXRl
IFVfRVhQT1JUMiB1cHJ2X2dldFVUQ3RpbWUodm9pZCk7CisKKy8qKgorICogR2V0IFVUQyAoR01U
KSB0aW1lIG1lYXN1cmVkIGluIG1pbGxpc2Vjb25kcyBzaW5jZSAwOjAwIG9uIDEvMS8xOTcwLgor
ICogVGhpcyBmdW5jdGlvbiBpcyBub3QgYWZmZWN0ZWQgYnkgJ2Zha2V0aW1lJywgc28gaXQgc2hv
dWxkIG9ubHkgYmUgdXNlZCBieSBsb3cgbGV2ZWwgdGVzdCBmdW5jdGlvbnMtIG5vdCBieSBhbnl0
aGluZyB0aGF0CisgKiBleHBvc2VzIHRpbWUgdG8gdGhlIGVuZCB1c2VyLgorICogQHJldHVybiB0
aGUgVVRDIHRpbWUgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzCisgKiBAaW50ZXJuYWwKKyAqLwor
VV9JTlRFUk5BTCBVRGF0ZSBVX0VYUE9SVDIgdXBydl9nZXRSYXdVVEN0aW1lKHZvaWQpOworCisv
KioKKyAqIERldGVybWluZSB3aGV0aGVyIGEgcGF0aG5hbWUgaXMgYWJzb2x1dGUgb3Igbm90LCBh
cyBkZWZpbmVkIGJ5IHRoZSBwbGF0Zm9ybS4KKyAqIEBwYXJhbSBwYXRoIFBhdGhuYW1lIHRvIHRl
c3QKKyAqIEByZXR1cm4gVFJVRSBpZiB0aGUgcGF0aCBpcyBhYnNvbHV0ZQorICogQGludGVybmFs
IChJQ1UgMy4wKQorICovCitVX0lOVEVSTkFMIFVCb29sIFVfRVhQT1JUMiB1cHJ2X3BhdGhJc0Fi
c29sdXRlKGNvbnN0IGNoYXIgKnBhdGgpOworCisvKioKKyAqIFVzZSBVX01BWF9QVFIgaW5zdGVh
ZCBvZiB0aGlzIGZ1bmN0aW9uLgorICogQHBhcmFtIHZvaWQgcG9pbnRlciB0byB0ZXN0CisgKiBA
cmV0dXJuIHRoZSBsYXJnZXN0IHBvc3NpYmxlIHBvaW50ZXIgZ3JlYXRlciB0aGFuIHRoZSBiYXNl
CisgKiBAaW50ZXJuYWwgKElDVSAzLjgpCisgKi8KK1VfSU5URVJOQUwgdm9pZCAqIFVfRVhQT1JU
MiB1cHJ2X21heGltdW1QdHIodm9pZCAqYmFzZSk7CisKKy8qKgorICogTWF4aW11bSB2YWx1ZSBv
ZiBhICh2b2lkKikgLSB1c2UgdG8gaW5kaWNhdGUgdGhlIGxpbWl0IG9mIGFuICdpbmZpbml0ZScg
YnVmZmVyLgorICogSW4gZmFjdCwgYnVmZmVyIHNpemVzIG11c3Qgbm90IGV4Y2VlZCAyR0Igc28g
dGhhdCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCisgKiB0aGUgYnVmZmVyIGxpbWl0IGFuZCB0aGUg
YnVmZmVyIHN0YXJ0IGNhbiBiZSBleHByZXNzZWQgaW4gYW4gaW50MzJfdC4KKyAqCisgKiBUaGUg
ZGVmaW5pdGlvbiBvZiBVX01BWF9QVFIgbXVzdCBmdWxmaWxsIHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9uczoKKyAqIC0gcmV0dXJuIHRoZSBsYXJnZXN0IHBvc3NpYmxlIHBvaW50ZXIgZ3JlYXRlciB0
aGFuIGJhc2UKKyAqIC0gcmV0dXJuIGEgdmFsaWQgcG9pbnRlciBhY2NvcmRpbmcgdG8gdGhlIG1h
Y2hpbmUgYXJjaGl0ZWN0dXJlIChBUy80MDAsIDY0LWJpdCwgZXRjLikKKyAqIC0gYXZvaWQgd3Jh
cHBpbmcgYXJvdW5kIGF0IGhpZ2ggYWRkcmVzc2VzCisgKiAtIG1ha2Ugc3VyZSB0aGF0IHRoZSBy
ZXR1cm5lZCBwb2ludGVyIGlzIG5vdCBmYXJ0aGVyIGZyb20gYmFzZSB0aGFuIDB4N2ZmZmZmZmYg
Ynl0ZXMKKyAqCisgKiBAcGFyYW0gYmFzZSBUaGUgYmVnaW5uaW5nIG9mIGEgYnVmZmVyIHRvIGZp
bmQgdGhlIG1heGltdW0gb2Zmc2V0IGZyb20KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVf
TUFYX1BUUgorIyAgaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwICYmICFkZWZpbmVkKF9MUDY0
KQorICAgIC8qIFdlIGhhdmUgMzEtYml0IHBvaW50ZXJzLiAqLworIyAgICBkZWZpbmUgVV9NQVhf
UFRSKGJhc2UpICgodm9pZCAqKTB4N2ZmZmZmZmYpCisjICBlbGlmIFVfUExBVEZPUk0gPT0gVV9Q
Rl9PUzQwMAorIyAgICBkZWZpbmUgVV9NQVhfUFRSKGJhc2UpIHVwcnZfbWF4aW11bVB0cigodm9p
ZCAqKWJhc2UpCisjICBlbGlmIDAKKyAgICAvKgorICAgICAqIEZvciBwbGF0Zm9ybXMgd2hlcmUg
cG9pbnRlcnMgYXJlIHNjYWxhciB2YWx1ZXMgKHdoaWNoIGlzIG5vcm1hbCwgYnV0IHVubGlrZSBp
NS9PUykKKyAgICAgKiBidXQgdGhhdCBkbyBub3QgZGVmaW5lIHVpbnRwdHJfdC4KKyAgICAgKgor
ICAgICAqIEhvd2V2ZXIsIHRoaXMgZG9lcyBub3Qgd29yayBvbiBtb2Rlcm4gY29tcGlsZXJzOgor
ICAgICAqIFRoZSBDKysgc3RhbmRhcmQgZG9lcyBub3QgZGVmaW5lIHBvaW50ZXIgb3ZlcmZsb3cs
IGFuZCBhbGxvd3MgY29tcGlsZXJzIHRvCisgICAgICogYXNzdW1lIHRoYXQgcCt1PnAgZm9yIGFu
eSBwb2ludGVyIHAgYW5kIGFueSBpbnRlZ2VyIHU+MC4KKyAgICAgKiBUaHVzLCBtb2Rlcm4gY29t
cGlsZXJzIG9wdGltaXplIGF3YXkgdGhlICI+IiBjb21wYXJpc29uLgorICAgICAqIChTZWUgSUNV
IHRpY2tldHMgIzcxODcgYW5kICM4MDk2LikKKyAgICAgKi8KKyMgICAgZGVmaW5lIFVfTUFYX1BU
UihiYXNlKSBcCisgICAgKCh2b2lkICopKCgoY2hhciAqKShiYXNlKSsweDdmZmZmZmZmdSkgPiAo
Y2hhciAqKShiYXNlKSBcCisgICAgICAgID8gKChjaGFyICopKGJhc2UpKzB4N2ZmZmZmZmZ1KSBc
CisgICAgICAgIDogKGNoYXIgKiktMSkpCisjICBlbHNlCisgICAgLyogRGVmYXVsdCB2ZXJzaW9u
LiBDKysgc3RhbmRhcmQgY29tcGxpYW50IGZvciBzY2FsYXIgcG9pbnRlcnMuICovCisjICAgIGRl
ZmluZSBVX01BWF9QVFIoYmFzZSkgXAorICAgICgodm9pZCAqKSgoKHVpbnRwdHJfdCkoYmFzZSkr
MHg3ZmZmZmZmZnUpID4gKHVpbnRwdHJfdCkoYmFzZSkgXAorICAgICAgICA/ICgodWludHB0cl90
KShiYXNlKSsweDdmZmZmZmZmdSkgXAorICAgICAgICA6ICh1aW50cHRyX3QpLTEpKQorIyAgZW5k
aWYKKyNlbmRpZgorCisvKiAgRHluYW1pYyBMaWJyYXJ5IEZ1bmN0aW9ucyAqLworCit0eXBlZGVm
IHZvaWQgKFVWb2lkRnVuY3Rpb24pKHZvaWQpOworCisjaWYgVV9FTkFCTEVfRFlMT0FECisvKioK
KyAqIExvYWQgYSBsaWJyYXJ5CisgKiBAaW50ZXJuYWwgKElDVSA0LjQpCisgKi8KK1VfSU5URVJO
QUwgdm9pZCAqIFVfRVhQT1JUMiB1cHJ2X2RsX29wZW4oY29uc3QgY2hhciAqbGliTmFtZSwgVUVy
cm9yQ29kZSAqc3RhdHVzKTsKKworLyoqCisgKiBDbG9zZSBhIGxpYnJhcnkKKyAqIEBpbnRlcm5h
bCAoSUNVIDQuNCkKKyAqLworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JUMiB1cHJ2X2RsX2Nsb3Nl
KCB2b2lkICpsaWIsIFVFcnJvckNvZGUgKnN0YXR1cyk7CisKKy8qKgorICogRXh0cmFjdCBhIHN5
bWJvbCBmcm9tIGEgbGlicmFyeSAoZnVuY3Rpb24pCisgKiBAaW50ZXJuYWwgKElDVSA0LjgpCisg
Ki8KK1VfSU5URVJOQUwgVVZvaWRGdW5jdGlvbiogVV9FWFBPUlQyIHVwcnZfZGxzeW1fZnVuYygg
dm9pZCAqbGliLCBjb25zdCBjaGFyICpzeW1ib2xOYW1lLCBVRXJyb3JDb2RlICpzdGF0dXMpOwor
CisvKioKKyAqIEV4dHJhY3QgYSBzeW1ib2wgZnJvbSBhIGxpYnJhcnkgKGZ1bmN0aW9uKQorICog
Tm90IGltcGxlbWVudGVkLCBubyBjbGllbnRzLgorICogQGludGVybmFsCisgKi8KKy8qIFVfSU5U
RVJOQUwgdm9pZCAqIFVfRVhQT1JUMiB1cHJ2X2Rsc3ltX2RhdGEoIHZvaWQgKmxpYiwgY29uc3Qg
Y2hhciAqc3ltYm9sTmFtZSwgVUVycm9yQ29kZSAqc3RhdHVzKTsgKi8KKworI2VuZGlmCisKKy8q
KgorICogRGVmaW5lIG1hbGxvYyBhbmQgcmVsYXRlZCBmdW5jdGlvbnMKKyAqIEBpbnRlcm5hbAor
ICovCisjaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisjIGRlZmluZSB1cHJ2X2RlZmF1bHRf
bWFsbG9jKHgpIF9DX1RTX21hbGxvYyh4KQorIyBkZWZpbmUgdXBydl9kZWZhdWx0X3JlYWxsb2Mo
eCx5KSBfQ19UU19yZWFsbG9jKHgseSkKKyMgZGVmaW5lIHVwcnZfZGVmYXVsdF9mcmVlKHgpIF9D
X1RTX2ZyZWUoeCkKKy8qIGFsc28gX0NfVFNfY2FsbG9jKHgpICovCisjZWxzZQorLyogQyBkZWZh
dWx0cyAqLworIyBkZWZpbmUgdXBydl9kZWZhdWx0X21hbGxvYyh4KSBtYWxsb2MoeCkKKyMgZGVm
aW5lIHVwcnZfZGVmYXVsdF9yZWFsbG9jKHgseSkgcmVhbGxvYyh4LHkpCisjIGRlZmluZSB1cHJ2
X2RlZmF1bHRfZnJlZSh4KSBmcmVlKHgpCisjZW5kaWYKKworCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvcmJiaWRhdGEuaCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvcmJiaWRhdGEuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42NTI3NGMzYWRiYmY0OTI1NzFlNzIxM2NjNTIyNGQ0YjExY2VkMzNjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9yYmJpZGF0
YS5oCkBAIC0wLDAgKzEsMjAwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAg
IENvcHlyaWdodCAoQykgMTk5OS0yMDE0IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMK
KyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICByYmJpZGF0YS5oCisqICAgZW5j
b2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRl
bnRhdGlvbjo0CisqCisqICAgUkJCSSBkYXRhIGZvcm1hdHMgIEluY2x1ZGVzCisqCisqICAgICAg
ICAgICAgICAgICAgICAgICAgICBTdHJ1Y3RzIHRoYXQgZGVzY3JpYmVzIHRoZSBmb3JtYXQgb2Yg
dGhlIEJpbmFyeSBSQkJJIGRhdGEsCisqICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBpdCBp
cyBzdG9yZWQgaW4gSUNVJ3MgZGF0YSBmaWxlLgorKgorKiAgICAgIFJCQklEYXRhV3JhcHBlciAg
LSAgSW5zdGFuY2VzIG9mIHRoaXMgY2xhc3Mgc2l0IGJldHdlZW4gdGhlCisqICAgICAgICAgICAg
ICAgICAgICAgICAgICByYXcgZGF0YSBzdHJ1Y3RzIGFuZCB0aGUgUnVsZXNCYXNlZEJyZWFrSXRl
cmF0b3Igb2JqZWN0cworKiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBhcmUgY3JlYXRl
ZCBieSBhcHBsaWNhdGlvbnMuICBUaGUgd3JhcHBlciBjbGFzcworKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvdmlkZXMgcmVmZXJlbmNlIGNvdW50aW5nIGZvciB0aGUgdW5kZXJseWluZyBk
YXRhLAorKiAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRpcmVjdCBwb2ludGVycyB0byBk
YXRhIHRoYXQgd291bGQgbm90IG90aGVyd2lzZQorKiAgICAgICAgICAgICAgICAgICAgICAgICAg
YmUgYWNjZXNzaWJsZSB3aXRob3V0IHVnbHkgcG9pbnRlciBhcml0aG1ldGljLiAgVGhlCisqICAg
ICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVyIGRvZXMgbm90IGF0dGVtcHQgdG8gcHJvdmlk
ZSBhbnkgaGlnaGVyIGxldmVsCisqICAgICAgICAgICAgICAgICAgICAgICAgICBhYnN0cmFjdGlv
bnMgZm9yIHRoZSBkYXRhIGl0c2VsZi4KKyoKKyogICAgICAgICAgICAgICAgICAgICAgICAgIFRo
ZXJlIHdpbGwgYmUgb25seSBvbmUgaW5zdGFuY2Ugb2YgUkJCSURhdGFXcmFwcGVyIGZvciBhbnkK
KyogICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBvZiBSQkJJIHJ1biB0aW1lIGRhdGEgYmVp
bmcgc2hhcmVkIGJ5IGluc3RhbmNlcworKiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb25l
cykgb2YgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3IuCisqLworCisjaWZuZGVmIF9fUkJCSURBVEFf
SF9fCisjZGVmaW5lIF9fUkJCSURBVEFfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKyNpbmNsdWRlICJ1ZGF0YXN3cC5oIgorCisv
KioKKyAqIFN3YXAgUkJCSSBkYXRhLiBTZWUgdWRhdGFzd3AuaC4KKyAqIEBpbnRlcm5hbAorICov
CitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3Vicmtfc3dhcChjb25zdCBVRGF0YVN3YXBwZXIg
KmRzLAorICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQg
Km91dERhdGEsCisgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNpZmRlZiBf
X2NwbHVzcGx1cworCisjaW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5p
Y29kZS91bmlzdHIuaCIKKyNpbmNsdWRlICJ1bXV0ZXguaCIKKyNpbmNsdWRlICJ1dHJpZS5oIgor
CitVX05BTUVTUEFDRV9CRUdJTgorCisvKiAgCisgKiAgIFRoZSBmb2xsb3dpbmcgc3RydWN0cyBt
YXAgZXhhY3RseSBvbnRvIHRoZSByYXcgZGF0YSBmcm9tIElDVSBjb21tb24gZGF0YSBmaWxlLiAK
KyAqLworc3RydWN0IFJCQklEYXRhSGVhZGVyIHsKKyAgICB1aW50MzJfdCAgICAgICAgIGZNYWdp
YzsgICAgICAgICAgIC8qICA9PSAweGJsYTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICovCisgICAgdWludDhfdCAgICAgICAgICBmRm9ybWF0VmVyc2lvbls0
XTsgLyogRGF0YSBGb3JtYXQuICBTYW1lIGFzIHRoZSB2YWx1ZSBpbiBzdHJ1Y3QgVURhdGFJbmZv
ICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgaWYg
dGhlcmUgaXMgb25lIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRhdGEuICAgICAgICAgICAgICovCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgKHZlcnNpb24gb3Jp
Z2luYXRlcyBpbiByYmJpLCBpcyBjb3BpZWQgdG8gVURhdGFJbmZvKSAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICBGb3IgSUNVIDMuMiBhbmQgZWFybGllciwg
dGhpcyBmaWVsZCB3YXMgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qICAgICAgIHVpbnQzMl90ICBmVmVyc2lvbiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiAgIHdpdGggYSB2YWx1ZSBvZiAxLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICAgZkxlbmd0aDsgICAgICAgICAgLyogIFRv
dGFsIGxlbmd0aCBpbiBieXRlcyBvZiB0aGlzIFJCQkkgRGF0YSwgICAgICAgICAgICAgICAgKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgaW5jbHVkaW5n
IGFsbCBzZWN0aW9ucywgbm90IGp1c3QgdGhlIGhlYWRlci4gICAgICAgICovCisgICAgdWludDMy
X3QgICAgICAgICBmQ2F0Q291bnQ7ICAgICAgICAvKiAgTnVtYmVyIG9mIGNoYXJhY3RlciBjYXRl
Z29yaWVzLiAgICAgICAgICAgICAgICAgICAgICAgICAqLworCisgICAgLyogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqLworICAgIC8qICBPZmZzZXRzIGFuZCBzaXplcyBvZiBlYWNoIG9mIHRoZSBzdWJzZWN0aW9u
cyB3aXRoaW4gdGhlIFJCQkkgZGF0YS4gICAgKi8KKyAgICAvKiAgQWxsIG9mZnNldHMgYXJlIGJ5
dGVzIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBSQkJJRGF0YUhlYWRlci4gICAgICAgICAgICovCisg
ICAgLyogIEFsbCBzaXplcyBhcmUgaW4gYnl0ZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqLworICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50
MzJfdCAgICAgICAgIGZGVGFibGU7ICAgICAgICAgLyogIGZvcndhcmQgc3RhdGUgdHJhbnNpdGlv
biB0YWJsZS4gKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZGVGFibGVMZW47CisgICAgdWludDMy
X3QgICAgICAgICBmUlRhYmxlOyAgICAgICAgIC8qICBPZmZzZXQgdG8gdGhlIHJldmVyc2Ugc3Rh
dGUgdHJhbnNpdGlvbiB0YWJsZS4gKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZSVGFibGVMZW47
CisgICAgdWludDMyX3QgICAgICAgICBmU0ZUYWJsZTsgICAgICAgIC8qICBzYWZlIHBvaW50IGZv
cndhcmQgdHJhbnNpdGlvbiB0YWJsZSAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlNGVGFibGVM
ZW47CisgICAgdWludDMyX3QgICAgICAgICBmU1JUYWJsZTsgICAgICAgIC8qICBzYWZlIHBvaW50
IHJldmVyc2UgdHJhbnNpdGlvbiB0YWJsZSAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlNSVGFi
bGVMZW47CisgICAgdWludDMyX3QgICAgICAgICBmVHJpZTsgICAgICAgICAgIC8qICBPZmZzZXQg
dG8gVHJpZSBkYXRhIGZvciBjaGFyYWN0ZXIgY2F0ZWdvcmllcyAqLworICAgIHVpbnQzMl90ICAg
ICAgICAgZlRyaWVMZW47CisgICAgdWludDMyX3QgICAgICAgICBmUnVsZVNvdXJjZTsgICAgIC8q
ICBPZmZzZXQgdG8gdGhlIHNvdXJjZSBmb3IgZm9yIHRoZSBicmVhayAqLworICAgIHVpbnQzMl90
ICAgICAgICAgZlJ1bGVTb3VyY2VMZW47ICAvKiAgICBydWxlcy4gIFN0b3JlZCBVQ2hhciAqLiAq
LworICAgIHVpbnQzMl90ICAgICAgICAgZlN0YXR1c1RhYmxlOyAgICAvKiBPZmZzZXQgdG8gdGhl
IHRhYmxlIG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlN0
YXR1c1RhYmxlTGVuOworCisgICAgdWludDMyX3QgICAgICAgICBmUmVzZXJ2ZWRbNl07ICAgIC8q
ICBSZXNlcnZlZCBmb3IgZXhwYW5zaW9uICovCisKK307CisKKworCitzdHJ1Y3QgIFJCQklTdGF0
ZVRhYmxlUm93IHsKKyAgICBpbnQxNl90ICAgICAgICAgIGZBY2NlcHRpbmc7ICAgIC8qICBOb24t
emVybyBpZiB0aGlzIHJvdyBpcyBmb3IgYW4gYWNjZXB0aW5nIHN0YXRlLiAgICovCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgVmFsdWUgMDogbm90IGFuIGFjY2VwdGlu
ZyBzdGF0ZS4gICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLyogICAgICAgLTE6IFVuY29uZGl0aW9uYWwgQWNjZXB0aW5nIHN0YXRlLiAgICAg
ICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIHBvc2l0
aXZlOiAgTG9vay1haGVhZCBtYXRjaCBoYXMgY29tcGxldGVkLiAgICAgICovCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgQWN0dWFsIGJvdW5kYXJ5IHBv
c2l0aW9uIGhhcHBlbmVkIGVhcmxpZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8qICAgICAgICAgICBWYWx1ZSBoZXJlID09IGZMb29rQWhlYWQgaW4gZWFybGllciAg
ICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAg
ICAgc3RhdGUsIGF0IGFjdHVhbCBib3VuZGFyeSBwb3MuICAgICAgICAqLworICAgIGludDE2X3Qg
ICAgICAgICAgZkxvb2tBaGVhZDsgICAgLyogIE5vbi16ZXJvIGlmIHRoaXMgcm93IGlzIGZvciBh
IHN0YXRlIHRoYXQgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8qICAgIGNvcnJlc3BvbmRzIHRvIGEgJy8nIGluIHRoZSBydWxlIHNvdXJjZS4gICAgICAg
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICBWYWx1ZSBpcyB0
aGUgc2FtZSBhcyB0aGUgZkFjY2VwdGluZyAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyogICAgICB2YWx1ZSBmb3IgdGhlIHJ1bGUgKHdoaWNoIHdp
bGwgYXBwZWFyICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qICAgICAgaW4gYSBkaWZmZXJlbnQgc3RhdGUuICAgICAgICAgICAgICAgICAgICAgICAgICov
CisgICAgaW50MTZfdCAgICAgICAgICBmVGFnSWR4OyAgICAgICAvKiAgTm9uLXplcm8gaWYgdGhp
cyByb3cgY292ZXJzIGEge3RhZ2dlZH0gcG9zaXRpb24gICAqLworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyogICAgIGZyb20gYSBydWxlLiAgVmFsdWUgaXMgdGhlIGluZGV4
IGluIHRoZSAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q
ICAgICBTdGF0dXNUYWJsZSBvZiB0aGUgc2V0IG9mIG1hdGNoaW5nICAgICAgICAgICAgICovCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgdGFncyAocnVsZSBzdGF0
dXMgdmFsdWVzKSAgICAgICAgICAgICAgICAgICAgICAqLworICAgIGludDE2X3QgICAgICAgICAg
ZlJlc2VydmVkOworICAgIHVpbnQxNl90ICAgICAgICAgZk5leHRTdGF0ZVsyXTsgLyogIE5leHQg
U3RhdGUsIGluZGV4ZWQgYnkgY2hhciBjYXRlZ29yeS4gICAgICAgICAgICAgKi8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBUaGlzIGFycmF5IGRvZXMgbm90IGhhdmUg
dHdvIGVsZW1lbnRzICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvKiAgICBBcnJheSBTaXplIGlzIGFjdHVhbGx5IGZEYXRhLT5mSGVhZGVyLT5mQ2F0
Q291bnQgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
ICAgQ0FVVElPTjogIHNlZSBSQkJJVGFibGVCdWlsZGVyOjpnZXRUYWJsZVNpemUoKSAgKi8KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICBiZWZvcmUg
Y2hhbmdpbmcgYW55dGhpbmcgaGVyZS4gICAgICAgICovCit9OworCisKK3N0cnVjdCBSQkJJU3Rh
dGVUYWJsZSB7CisgICAgdWludDMyX3QgICAgICAgICBmTnVtU3RhdGVzOyAgICAvKiAgTnVtYmVy
IG9mIHN0YXRlcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIHVpbnQz
Ml90ICAgICAgICAgZlJvd0xlbjsgICAgICAgLyogIExlbmd0aCBvZiBhIHN0YXRlIHRhYmxlIHJv
dywgaW4gYnl0ZXMuICAgICAgICAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZGbGFnczsg
ICAgICAgIC8qICBPcHRpb24gRmxhZ3MgZm9yIHRoaXMgc3RhdGUgdGFibGUgICAgICAgICAgICAg
ICAgICovCisgICAgdWludDMyX3QgICAgICAgICBmUmVzZXJ2ZWQ7ICAgICAvKiAgcmVzZXJ2ZWQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIGNoYXIgICAg
ICAgICAgICAgZlRhYmxlRGF0YVs0XTsgLyogIEZpcnN0IFJCQklTdGF0ZVRhYmxlUm93IGJlZ2lu
cyBoZXJlLiAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8qICAgIChtYWtpbmcgaXQgY2hhcltdIHNpbXBsaWZpZXMgdWdseSBhZGRyZXNzICAgICAg
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgYXJpdGhtZXRp
YyBmb3IgaW5kZXhpbmcgdmFyaWFibGUgbGVuZ3RoIHJvd3MuKSAqLworfTsKKwordHlwZWRlZiBl
bnVtIHsKKyAgICBSQkJJX0xPT0tBSEVBRF9IQVJEX0JSRUFLID0gMSwKKyAgICBSQkJJX0JPRl9S
RVFVSVJFRCA9IDIKK30gUkJCSVN0YXRlVGFibGVGbGFnczsKKworCisvKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICBUaGUgcmVmZXJlbmNlIGNvdW50aW5n
IHdyYXBwZXIgY2xhc3MgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICovCitjbGFzcyBSQkJJRGF0YVdyYXBwZXIgOiBwdWJsaWMgVU1lbW9yeSB7CitwdWJsaWM6
CisgICAgZW51bSBFRG9udEFkb3B0IHsKKyAgICAgICAga0RvbnRBZG9wdAorICAgIH07CisgICAg
UkJCSURhdGFXcmFwcGVyKGNvbnN0IFJCQklEYXRhSGVhZGVyICpkYXRhLCBVRXJyb3JDb2RlICZz
dGF0dXMpOworICAgIFJCQklEYXRhV3JhcHBlcihjb25zdCBSQkJJRGF0YUhlYWRlciAqZGF0YSwg
ZW51bSBFRG9udEFkb3B0IGRvbnRBZG9wdCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyAgICBSQkJJ
RGF0YVdyYXBwZXIoVURhdGFNZW1vcnkqIHVkbSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyAgICB+
UkJCSURhdGFXcmFwcGVyKCk7CisKKyAgICB2b2lkICAgICAgICAgICAgICAgICAgaW5pdDAoKTsK
KyAgICB2b2lkICAgICAgICAgICAgICAgICAgaW5pdChjb25zdCBSQkJJRGF0YUhlYWRlciAqZGF0
YSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyAgICBSQkJJRGF0YVdyYXBwZXIgICAgICAqYWRkUmVm
ZXJlbmNlKCk7CisgICAgdm9pZCAgICAgICAgICAgICAgICAgIHJlbW92ZVJlZmVyZW5jZSgpOwor
ICAgIFVCb29sICAgICAgICAgICAgICAgICBvcGVyYXRvciA9PShjb25zdCBSQkJJRGF0YVdyYXBw
ZXIgJm90aGVyKSBjb25zdDsKKyAgICBpbnQzMl90ICAgICAgICAgICAgICAgaGFzaENvZGUoKTsK
KyAgICBjb25zdCBVbmljb2RlU3RyaW5nICAmZ2V0UnVsZVNvdXJjZVN0cmluZygpIGNvbnN0Owor
I2lmZGVmIFJCQklfREVCVUcKKyAgICB2b2lkICAgICAgICAgICAgICAgICAgcHJpbnREYXRhKCk7
CisgICAgdm9pZCAgICAgICAgICAgICAgICAgIHByaW50VGFibGUoY29uc3QgY2hhciAqaGVhZGlu
ZywgY29uc3QgUkJCSVN0YXRlVGFibGUgKnRhYmxlKTsKKyNlbHNlCisgICAgI2RlZmluZSBwcmlu
dERhdGEoKQorICAgICNkZWZpbmUgcHJpbnRUYWJsZShoZWFkaW5nLCB0YWJsZSkKKyNlbmRpZgor
CisgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAvKiAg
IFBvaW50ZXJzIHRvIGl0ZW1zIHdpdGhpbiB0aGUgZGF0YSAqLworICAgIC8qICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgY29uc3QgUkJCSURhdGFIZWFkZXIgICAg
ICpmSGVhZGVyOworICAgIGNvbnN0IFJCQklTdGF0ZVRhYmxlICAgICAqZkZvcndhcmRUYWJsZTsK
KyAgICBjb25zdCBSQkJJU3RhdGVUYWJsZSAgICAgKmZSZXZlcnNlVGFibGU7CisgICAgY29uc3Qg
UkJCSVN0YXRlVGFibGUgICAgICpmU2FmZUZ3ZFRhYmxlOworICAgIGNvbnN0IFJCQklTdGF0ZVRh
YmxlICAgICAqZlNhZmVSZXZUYWJsZTsKKyAgICBjb25zdCBVQ2hhciAgICAgICAgICAgICAgKmZS
dWxlU291cmNlOworICAgIGNvbnN0IGludDMyX3QgICAgICAgICAgICAqZlJ1bGVTdGF0dXNUYWJs
ZTsgCisKKyAgICAvKiBudW1iZXIgb2YgaW50MzJfdCB2YWx1ZXMgaW4gdGhlIHJ1bGUgc3RhdHVz
IHRhYmxlLiAgIFVzZWQgdG8gc2FuaXR5IGNoZWNrIGluZGV4aW5nICovCisgICAgaW50MzJfdCAg
ICAgICAgICAgICBmU3RhdHVzTWF4SWR4OworCisgICAgVVRyaWUgICAgICAgICAgICAgICBmVHJp
ZTsKKworcHJpdmF0ZToKKyAgICB1X2F0b21pY19pbnQzMl90ICAgIGZSZWZDb3VudDsKKyAgICBV
RGF0YU1lbW9yeSAgKmZVRGF0YU1lbTsKKyAgICBVbmljb2RlU3RyaW5nICAgICAgIGZSdWxlU3Ry
aW5nOworICAgIFVCb29sICAgICAgICAgICAgICAgZkRvbnRGcmVlRGF0YTsKKworICAgIFJCQklE
YXRhV3JhcHBlcihjb25zdCBSQkJJRGF0YVdyYXBwZXIgJm90aGVyKTsgLyogIGZvcmJpZCBjb3B5
aW5nIG9mIHRoaXMgY2xhc3MgKi8KKyAgICBSQkJJRGF0YVdyYXBwZXIgJm9wZXJhdG9yPShjb25z
dCBSQkJJRGF0YVdyYXBwZXIgJm90aGVyKTsgLyogIGZvcmJpZCBjb3B5aW5nIG9mIHRoaXMgY2xh
c3MgKi8KK307CisKKworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmIC8qIEMrKyAqLworCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5i
cmsvdWNtbmRhdGEuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsv
dWNtbmRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjE2M2M1MDhiOTc3NGI4ZjlkMmJiNGFiZTIyYzM0MTQx
ODI1NGVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL2dlbmJyay91Y21uZGF0YS5oCkBAIC0wLDAgKzEsMTExIEBACisvKgorKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTEsIEludGVybmF0aW9uYWwg
QnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKyAqCisgKiAgIFVDb21tb25EYXRhICAgQW4gYWJzdHJhY3QgaW50ZXJm
YWNlIGZvciBkZWFsaW5nIHdpdGggSUNVIENvbW1vbiBEYXRhIEZpbGVzLgorICogICAgICAgICAg
ICAgICAgIElDVSBDb21tb24gRGF0YSBGaWxlcyBhcmUgYSBncm91cGluZyBvZiBhIG51bWJlciBv
ZiBpbmRpdmlkdWFsCisgKiAgICAgICAgICAgICAgICAgZGF0YSBpdGVtcyAocmVzb3VyY2VzLCBj
b252ZXJ0ZXJzLCB0YWJsZXMsIGFueXRoaW5nKSBpbnRvIGEKKyAqICAgICAgICAgICAgICAgICBz
aW5nbGUgZmlsZSBvciBkbGwuICBUaGUgY29tYmluZWQgZm9ybWF0IGluY2x1ZGVzIGEgdGFibGUg
b2YKKyAqICAgICAgICAgICAgICAgICBjb250ZW50cyBmb3IgbG9jYXRpbmcgdGhlIGluZGl2aWR1
YWwgaXRlbXMgYnkgbmFtZS4KKyAqCisgKiAgICAgICAgICAgICAgICAgVHdvIGZvcm1hdHMgZm9y
IHRoZSB0YWJsZSBvZiBjb250ZW50cyBhcmUgc3VwcG9ydGVkLCB3aGljaCBpcworICogICAgICAg
ICAgICAgICAgIHdoeSB0aGVyZSBpcyBhbiBhYnN0cmFjdCBpbnRlZmFjZSBpbnZvbHZlZC4KKyAq
CisgKiAgICAgICAgICAgICAgICAgVGhlc2UgZnVuY3Rpb25zIGFyZSBwYXJ0IG9mIHRoZSBJQ1Ug
aW50ZXJuYWwgaW1wbGVtZW50YXRpb24sIGFuZAorICogICAgICAgICAgICAgICAgIGFyZSBub3Qg
aW50ZWRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGJ5IGFwcGxpY2F0aW9ucy4KKyAqLworCisjaWZu
ZGVmIF9fVUNNTkRBVEFfSF9fCisjZGVmaW5lIF9fVUNNTkRBVEFfSF9fCisKKyNpbmNsdWRlICJ1
bmljb2RlL3VkYXRhLmgiCisjaW5jbHVkZSAidW1hcGZpbGUuaCIKKworCisjZGVmaW5lIENPTU1P
Tl9EQVRBX05BTUUgVV9JQ1VEQVRBX05BTUUKKwordHlwZWRlZiBzdHJ1Y3QgIHsKKyAgICB1aW50
MTZfdCAgICBoZWFkZXJTaXplOworICAgIHVpbnQ4X3QgICAgIG1hZ2ljMTsKKyAgICB1aW50OF90
ICAgICBtYWdpYzI7Cit9IE1hcHBlZERhdGE7CisKKwordHlwZWRlZiBzdHJ1Y3QgIHsKKyAgICBN
YXBwZWREYXRhICBkYXRhSGVhZGVyOworICAgIFVEYXRhSW5mbyAgIGluZm87Cit9IERhdGFIZWFk
ZXI7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1aW50MzJfdCBuYW1lT2Zmc2V0OworICAgIHVp
bnQzMl90IGRhdGFPZmZzZXQ7Cit9IFVEYXRhT2Zmc2V0VE9DRW50cnk7CisKK3R5cGVkZWYgc3Ry
dWN0IHsKKyAgICB1aW50MzJfdCBjb3VudDsKKyAgICBVRGF0YU9mZnNldFRPQ0VudHJ5IGVudHJ5
WzJdOyAgICAvKiBBY3R1YWwgc2l6ZSBvZiBhcnJheSBpcyBmcm9tIGNvdW50LiAqLworfSBVRGF0
YU9mZnNldFRPQzsKKworLyoqCisgKiBHZXQgdGhlIGhlYWRlciBzaXplIGZyb20gYSBjb25zdCBE
YXRhSGVhZGVyICp1ZGguCisgKiBIYW5kbGVzIG9wcG9zaXRlLWVuZGlhbiBkYXRhLgorICoKKyAq
IEBpbnRlcm5hbAorICovCitVX0NGVU5DIHVpbnQxNl90Cit1ZGF0YV9nZXRIZWFkZXJTaXplKGNv
bnN0IERhdGFIZWFkZXIgKnVkaCk7CisKKy8qKgorICogR2V0IHRoZSBVRGF0YUluZm8uc2l6ZSBm
cm9tIGEgY29uc3QgVURhdGFJbmZvICppbmZvLgorICogSGFuZGxlcyBvcHBvc2l0ZS1lbmRpYW4g
ZGF0YS4KKyAqCisgKiBAaW50ZXJuYWwKKyAqLworVV9DRlVOQyB1aW50MTZfdAordWRhdGFfZ2V0
SW5mb1NpemUoY29uc3QgVURhdGFJbmZvICppbmZvKTsKKworVV9DREVDTF9CRUdJTgorLyoKKyAq
ICAiVmlydHVhbCIgZnVuY3Rpb25zIGZvciBkYXRhIGxvb2t1cC4KKyAqICBUbyBjYWxsIG9uZSwg
Z2l2ZW4gYSBVRGF0YU1lbW9yeSAqcCwgdGhlIGNvZGUgbG9va3MgbGlrZSB0aGlzOgorICogICAg
IHAtPnZGdW5jcy5Mb29rdXAocCwgdG9jRW50cnlOYW1lLCBwRXJyb3JDb2RlKTsKKyAqICAgICAg
ICAgIChJIHN1cmUgZG8gd2lzaCB0aGlzIHdhcyB3cml0dGVuIGluIEMrKywgbm90IEMpCisgKi8K
KwordHlwZWRlZiBjb25zdCBEYXRhSGVhZGVyICoKKyhVX0NBTExDT05WICogTG9va3VwRm4pKGNv
bnN0IFVEYXRhTWVtb3J5ICpwRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIgKnRvY0VudHJ5TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgKnBMZW5n
dGgsCisgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKwor
dHlwZWRlZiB1aW50MzJfdAorKFVfQ0FMTENPTlYgKiBOdW1FbnRyaWVzRm4pKGNvbnN0IFVEYXRh
TWVtb3J5ICpwRGF0YSk7CisKK1VfQ0RFQ0xfRU5ECisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBM
b29rdXBGbiAgICAgIExvb2t1cDsKKyAgICBOdW1FbnRyaWVzRm4gIE51bUVudHJpZXM7IAorfSBj
b21tb25EYXRhRnVuY3M7CisKKworLyoKKyAqICBGdW5jdGlvbnMgdG8gY2hlY2sgd2hldGhlciBh
IFVEYXRhTWVtb3J5IHJlZmVycyB0byBtZW1vcnkgY29udGFpbmluZyAKKyAqICAgICBhIHJlY29n
bml6YWJsZSBoZWFkZXIgYW5kIHRhYmxlIG9mIGNvbnRlbnRzIGEgQ29tbW9uIERhdGEgRm9ybWF0
CisgKgorICogICAgIElmIGEgdmFsaWQgaGVhZGVyIGFuZCBUT0MgYXJlIGZvdW5kLAorICogICAg
ICAgICBzZXQgdGhlIENvbW1vbkRhdGFGdW5jcyBmdW5jdGlvbiBkaXNwYXRjaCB2ZWN0b3IgaW4g
dGhlIFVEYXRhTWVtb3J5CisgKiAgICAgICAgICAgICB0byBwb2ludCB0byB0aGUgcmlnaHQgZnVu
Y3Rpb25zIGZvciB0aGUgVE9DIHR5cGUuCisgKiAgICAgb3RoZXJ3aXNlCisgKiAgICAgICAgIHNl
dCBhbiBlcnJvcmNvZGUuCisgKi8KK1VfQ0ZVTkMgdm9pZCB1ZGF0YV9jaGVja0NvbW1vbkRhdGEo
VURhdGFNZW1vcnkgKnBEYXRhLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VkYXRh
c3dwLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VkYXRhc3dw
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjZjODQ5NTU2NzY3MDg2ZWFiMWI1ZmI5YjAzMmVmNTA2NzAwZGM3MQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5i
cmsvdWRhdGFzd3AuaApAQCAtMCwwICsxLDM1MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVz
cyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVkYXRhc3dw
LmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2Vk
KQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDAzanVuMDUKKyogICBj
cmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIERlZmluaXRpb25zIGZvciBJQ1Ug
ZGF0YSB0cmFuc2Zvcm1hdGlvbnMgZm9yIGRpZmZlcmVudCBwbGF0Zm9ybXMsCisqICAgY2hhbmdp
bmcgYmV0d2VlbiBiaWctIGFuZCBsaXR0bGUtZW5kaWFuIGRhdGEgYW5kL29yIGJldHdlZW4KKyog
ICBjaGFyc2V0IGZhbWlsaWVzIChBU0NJSTwtPkVCQ0RJQykuCisqLworCisjaWZuZGVmIF9fVURB
VEFTV1BfSF9fCisjZGVmaW5lIF9fVURBVEFTV1BfSF9fCisKKyNpbmNsdWRlIDxzdGRhcmcuaD4K
KyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisvKiBmb3J3YXJkIGRlY2xhcmF0aW9uICov
CisKK1VfQ0RFQ0xfQkVHSU4KKworc3RydWN0IFVEYXRhU3dhcHBlcjsKK3R5cGVkZWYgc3RydWN0
IFVEYXRhU3dhcHBlciBVRGF0YVN3YXBwZXI7CisKKy8qKgorICogRnVuY3Rpb24gdHlwZSBmb3Ig
ZGF0YSB0cmFuc2Zvcm1hdGlvbi4KKyAqIFRyYW5zZm9ybXMgZGF0YSwgb3IganVzdCByZXR1cm5z
IHRoZSBsZW5ndGggb2YgdGhlIGRhdGEgaWYKKyAqIHRoZSBpbnB1dCBsZW5ndGggaXMgLTEuCisg
KiBTd2FwIGZ1bmN0aW9ucyBhc3N1bWUgdGhhdCB0aGVpciBkYXRhIHBvaW50ZXJzIGFyZSBhbGln
bmVkIHByb3Blcmx5LgorICoKKyAqIFF1aWNrIGltcGxlbWVudGF0aW9uIG91dGxpbmU6CisgKiAo
YmVzdCB0byBjb3B5IGFuZCBhZGFwdCBhbmQgZXhpc3Rpbmcgc3dhcHBlciBpbXBsZW1lbnRhdGlv
bikKKyAqIGNoZWNrIHRoYXQgdGhlIGRhdGEgbG9va3MgbGlrZSB0aGUgZXhwZWN0ZWQgZm9ybWF0
CisgKiBpZihsZW5ndGg8MCkgeworICogICBwcmVmbGlnaHQ6CisgKiAgIG5ldmVyIGRlcmVmZXJl
bmNlIG91dERhdGEKKyAqICAgcmVhZCBpbkRhdGEgYW5kIGRldGVybWluZSB0aGUgZGF0YSBzaXpl
CisgKiAgIGFzc3VtZSB0aGF0IGluRGF0YSBpcyBsb25nIGVub3VnaCBmb3IgdGhpcworICogfSBl
bHNlIHsKKyAqICAgb3V0RGF0YSBjYW4gYmUgTlVMTCBpZiBsZW5ndGg9PTAKKyAqICAgaW5EYXRh
PT1vdXREYXRhIChpbi1wbGFjZSBzd2FwcGluZykgcG9zc2libGUgYnV0IG5vdCByZXF1aXJlZCEK
KyAqICAgdmVyaWZ5IHRoYXQgbGVuZ3RoPj0oYWN0dWFsIHNpemUpCisgKiAgIGlmIHRoZXJlIGlz
IGEgY2hhbmNlIHRoYXQgbm90IGV2ZXJ5IGJ5dGUgdXAgdG8gc2l6ZSBpcyByZWFjaGVkCisgKiAg
ICAgZHVlIHRvIHBhZGRpbmcgZXRjLjoKKyAqICAgaWYoaW5EYXRhIT1vdXREYXRhKSB7CisgKiAg
ICAgbWVtY3B5KG91dERhdGEsIGluRGF0YSwgYWN0dWFsIHNpemUpOworICogICB9CisgKiAgIHN3
YXAgY29udGVudHMKKyAqIH0KKyAqIHJldHVybiBhY3R1YWwgc2l6ZQorICoKKyAqIEZ1cnRoZXIg
aW1wbGVtZW50YXRpb24gbm90ZXM6CisgKiAtIHJlYWQgaW50ZWdlcnMgZnJvbSBpbkRhdGEgYmVm
b3JlIHN3YXBwaW5nIHRoZW0KKyAqICAgYmVjYXVzZSBpbi1wbGFjZSBzd2FwcGluZyBjYW4gbWFr
ZSB0aGVtIHVucmVhZGFibGUKKyAqIC0gY29tcGFyZUludkNoYXJzIGNvbXBhcmVzIGEgbG9jYWwg
VW5pY29kZSBzdHJpbmcgd2l0aCBhbHJlYWR5LXN3YXBwZWQKKyAqICAgb3V0cHV0IGNoYXJzZXQg
c3RyaW5ncworICoKKyAqIEBwYXJhbSBkcyBQb2ludGVyIHRvIFVEYXRhU3dhcHBlciBjb250YWlu
aW5nIGdsb2JhbCBkYXRhIGFib3V0IHRoZQorICogICAgICAgICAgIHRyYW5zZm9ybWF0aW9uIGFu
ZCBmdW5jdGlvbiBwb2ludGVycyBmb3IgaGFuZGxpbmcgcHJpbWl0aXZlCisgKiAgICAgICAgICAg
dHlwZXMuCisgKiBAcGFyYW0gaW5EYXRhIFBvaW50ZXIgdG8gdGhlIGlucHV0IGRhdGEgdG8gYmUg
dHJhbnNmb3JtZWQgb3IgZXhhbWluZWQuCisgKiBAcGFyYW0gbGVuZ3RoIExlbmd0aCBvZiB0aGUg
ZGF0YSwgY291bnRpbmcgYnl0ZXMuIE1heSBiZSAtMSBmb3IgcHJlZmxpZ2h0aW5nLgorICogICAg
ICAgICAgICAgICBJZiBsZW5ndGg+PTAsIHRoZW4gdHJhbnNmb3JtIHRoZSBkYXRhLgorICogICAg
ICAgICAgICAgICBJZiBsZW5ndGg9PS0xLCB0aGVuIG9ubHkgZGV0ZXJtaW5lIHRoZSBsZW5ndGgg
b2YgdGhlIGRhdGEuCisgKiAgICAgICAgICAgICAgIFRoZSBsZW5ndGggY2Fubm90IGJlIGRldGVy
bWluZWQgZnJvbSB0aGUgZGF0YSBpdHNlbGYgZm9yIGFsbAorICogICAgICAgICAgICAgICB0eXBl
cyBvZiBkYXRhIChlLmcuLCBub3QgZm9yIHNpbXBsZSBhcnJheXMgb2YgaW50ZWdlcnMpLgorICog
QHBhcmFtIG91dERhdGEgUG9pbnRlciB0byB0aGUgb3V0cHV0IGRhdGEgYnVmZmVyLgorICogICAg
ICAgICAgICAgICAgSWYgbGVuZ3RoPj0wICh0cmFuc2Zvcm1hdGlvbiksIHRoZW4gdGhlIG91dHB1
dCBidWZmZXIgbXVzdAorICogICAgICAgICAgICAgICAgaGF2ZSBhIGNhcGFjaXR5IG9mIGF0IGxl
YXN0IGxlbmd0aC4KKyAqICAgICAgICAgICAgICAgIElmIGxlbmd0aD09LTEsIHRoZW4gb3V0RGF0
YSB3aWxsIG5vdCBiZSB1c2VkIGFuZCBjYW4gYmUgTlVMTC4KKyAqIEBwYXJhbSBwRXJyb3JDb2Rl
IElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlciwgbXVzdCBub3QgYmUgTlVMTCBhbmQgbXVzdAorICog
ICAgICAgICAgICAgICAgICAgZnVsZmlsbCBVX1NVQ0NFU1Mgb24gaW5wdXQuCisgKiBAcmV0dXJu
IFRoZSBhY3R1YWwgbGVuZ3RoIG9mIHRoZSBkYXRhLgorICoKKyAqIEBzZWUgVURhdGFTd2FwcGVy
CisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgor
VURhdGFTd2FwRm4oY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgIGNvbnN0IHZv
aWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICBV
RXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBm
cm9tIGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAor
ICovCit0eXBlZGVmIHVpbnQxNl90IFVfQ0FMTENPTlYKK1VEYXRhUmVhZFVJbnQxNih1aW50MTZf
dCB4KTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSB1aW50MzJfdCBmcm9tIGlucHV0IHRvIHBsYXRm
b3JtIGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHVpbnQz
Ml90IFVfQ0FMTENPTlYKK1VEYXRhUmVhZFVJbnQzMih1aW50MzJfdCB4KTsKKworLyoqCisgKiBD
b252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIHBsYXRmb3JtIHRvIGlucHV0IGVuZGlhbm5lc3MuCisg
KiBAaW50ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHZvaWQgVV9DQUxMQ09OVgorVURhdGFX
cml0ZVVJbnQxNih1aW50MTZfdCAqcCwgdWludDE2X3QgeCk7CisKKy8qKgorICogQ29udmVydCBv
bmUgdWludDMyX3QgZnJvbSBwbGF0Zm9ybSB0byBpbnB1dCBlbmRpYW5uZXNzLgorICogQGludGVy
bmFsIElDVSAyLjgKKyAqLwordHlwZWRlZiB2b2lkIFVfQ0FMTENPTlYKK1VEYXRhV3JpdGVVSW50
MzIodWludDMyX3QgKnAsIHVpbnQzMl90IHgpOworCisvKioKKyAqIENvbXBhcmUgaW52YXJpYW50
LWNoYXJhY3RlciBzdHJpbmdzLCBvbmUgaW4gdGhlIG91dHB1dCBkYXRhIGFuZCB0aGUKKyAqIG90
aGVyIG9uZSBjYWxsZXItcHJvdmlkZWQgaW4gVW5pY29kZS4KKyAqIEFuIG91dHB1dCBkYXRhIHN0
cmluZyBpcyBjb21wYXJlZCBiZWNhdXNlIHN0cmluZ3MgYXJlIHVzdWFsbHkgc3dhcHBlZAorICog
YmVmb3JlIHRoZSByZXN0IG9mIHRoZSBkYXRhLCB0byBhbGxvdyBmb3Igc29ydGluZyBvZiBzdHJp
bmcgdGFibGVzCisgKiBhY2NvcmRpbmcgdG8gdGhlIG91dHB1dCBjaGFyc2V0LgorICogWW91IGNh
biB1c2UgLTEgZm9yIHRoZSBsZW5ndGggcGFyYW1ldGVycyBvZiBOVUwtdGVybWluYXRlZCBzdHJp
bmdzIGFzIHVzdWFsLgorICogUmV0dXJucyBVbmljb2RlIGNvZGUgcG9pbnQgb3JkZXIgZm9yIGlu
dmFyaWFudCBjaGFyYWN0ZXJzLgorICogQGludGVybmFsIElDVSAyLjgKKyAqLwordHlwZWRlZiBp
bnQzMl90IFVfQ0FMTENPTlYKK1VEYXRhQ29tcGFyZUludkNoYXJzKGNvbnN0IFVEYXRhU3dhcHBl
ciAqZHMsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpvdXRTdHJpbmcsIGludDMy
X3Qgb3V0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxvY2FsU3Ry
aW5nLCBpbnQzMl90IGxvY2FsTGVuZ3RoKTsKKworLyoqCisgKiBGdW5jdGlvbiBmb3IgbWVzc2Fn
ZSBvdXRwdXQgd2hlbiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIGRhdGEgc3dhcHBpbmcuCisgKiBB
IGZvcm1hdCBzdHJpbmcgYW5kIHZhcmlhYmxlIG51bWJlciBvZiBhcmd1bWVudHMgYXJlIHBhc3Nl
ZAorICogbGlrZSBmb3IgdnByaW50ZigpLgorICoKKyAqIEBwYXJhbSBjb250ZXh0IEEgZnVuY3Rp
b24tc3BlY2lmaWMgY29udGV4dCBwb2ludGVyLgorICogQHBhcmFtIGZtdCBUaGUgZm9ybWF0IHN0
cmluZy4KKyAqIEBwYXJhbSBhcmdzIFRoZSBhcmd1bWVudHMgZm9yIGZvcm1hdCBzdHJpbmcgaW5z
ZXJ0cy4KKyAqCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHZvaWQgVV9DQUxM
Q09OVgorVURhdGFQcmludEVycm9yKHZvaWQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmZtdCwgdmFf
bGlzdCBhcmdzKTsKKworc3RydWN0IFVEYXRhU3dhcHBlciB7CisgICAgLyoqIElucHV0IGVuZGlh
bm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgVUJvb2wgaW5Jc0JpZ0VuZGlhbjsKKyAg
ICAvKiogSW5wdXQgY2hhcnNldCBmYW1pbHkuIEBzZWUgVV9DSEFSU0VUX0ZBTUlMWSBAaW50ZXJu
YWwgSUNVIDIuOCAqLworICAgIHVpbnQ4X3QgaW5DaGFyc2V0OworICAgIC8qKiBPdXRwdXQgZW5k
aWFubmVzcy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBVQm9vbCBvdXRJc0JpZ0VuZGlhbjsK
KyAgICAvKiogT3V0cHV0IGNoYXJzZXQgZmFtaWx5LiBAc2VlIFVfQ0hBUlNFVF9GQU1JTFkgQGlu
dGVybmFsIElDVSAyLjggKi8KKyAgICB1aW50OF90IG91dENoYXJzZXQ7CisKKyAgICAvKiBiYXNp
YyBmdW5jdGlvbnMgZm9yIHJlYWRpbmcgZGF0YSB2YWx1ZXMgKi8KKworICAgIC8qKiBDb252ZXJ0
IG9uZSB1aW50MTZfdCBmcm9tIGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuIEBpbnRlcm5h
bCBJQ1UgMi44ICovCisgICAgVURhdGFSZWFkVUludDE2ICpyZWFkVUludDE2OworICAgIC8qKiBD
b252ZXJ0IG9uZSB1aW50MzJfdCBmcm9tIGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuIEBp
bnRlcm5hbCBJQ1UgMi44ICovCisgICAgVURhdGFSZWFkVUludDMyICpyZWFkVUludDMyOworICAg
IC8qKiBDb21wYXJlIGFuIGludmFyaWFudC1jaGFyYWN0ZXIgb3V0cHV0IHN0cmluZyB3aXRoIGEg
bG9jYWwgb25lLiBAaW50ZXJuYWwgSUNVIDIuOCAqLworICAgIFVEYXRhQ29tcGFyZUludkNoYXJz
ICpjb21wYXJlSW52Q2hhcnM7CisKKyAgICAvKiBiYXNpYyBmdW5jdGlvbnMgZm9yIHdyaXRpbmcg
ZGF0YSB2YWx1ZXMgKi8KKworICAgIC8qKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIHBsYXRm
b3JtIHRvIGlucHV0IGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgVURhdGFX
cml0ZVVJbnQxNiAqd3JpdGVVSW50MTY7CisgICAgLyoqIENvbnZlcnQgb25lIHVpbnQzMl90IGZy
b20gcGxhdGZvcm0gdG8gaW5wdXQgZW5kaWFubmVzcy4gQGludGVybmFsIElDVSAyLjggKi8KKyAg
ICBVRGF0YVdyaXRlVUludDMyICp3cml0ZVVJbnQzMjsKKworICAgIC8qIGJhc2ljIGZ1bmN0aW9u
cyBmb3IgZGF0YSB0cmFuc2Zvcm1hdGlvbnMgKi8KKworICAgIC8qKiBUcmFuc2Zvcm0gYW4gYXJy
YXkgb2YgMTYtYml0IGludGVnZXJzLiBAaW50ZXJuYWwgSUNVIDIuOCAqLworICAgIFVEYXRhU3dh
cEZuICpzd2FwQXJyYXkxNjsKKyAgICAvKiogVHJhbnNmb3JtIGFuIGFycmF5IG9mIDMyLWJpdCBp
bnRlZ2Vycy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVN3YXBGbiAqc3dhcEFycmF5
MzI7CisgICAgLyoqIFRyYW5zZm9ybSBhbiBhcnJheSBvZiA2NC1iaXQgaW50ZWdlcnMuIEBpbnRl
cm5hbCBJQ1UgNTMgKi8KKyAgICBVRGF0YVN3YXBGbiAqc3dhcEFycmF5NjQ7CisgICAgLyoqIFRy
YW5zZm9ybSBhbiBpbnZhcmlhbnQtY2hhcmFjdGVyIHN0cmluZy4gQGludGVybmFsIElDVSAyLjgg
Ki8KKyAgICBVRGF0YVN3YXBGbiAqc3dhcEludkNoYXJzOworCisgICAgLyoqCisgICAgICogRnVu
Y3Rpb24gZm9yIG1lc3NhZ2Ugb3V0cHV0IHdoZW4gYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBkYXRh
IHN3YXBwaW5nLgorICAgICAqIENhbiBiZSBOVUxMLgorICAgICAqIEBpbnRlcm5hbCBJQ1UgMi44
CisgICAgICovCisgICAgVURhdGFQcmludEVycm9yICpwcmludEVycm9yOworICAgIC8qKiBDb250
ZXh0IHBvaW50ZXIgZm9yIHByaW50RXJyb3IuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgdm9p
ZCAqcHJpbnRFcnJvckNvbnRleHQ7Cit9OworCitVX0NERUNMX0VORAorCitVX0NBUEkgVURhdGFT
d2FwcGVyICogVV9FWFBPUlQyCit1ZGF0YV9vcGVuU3dhcHBlcihVQm9vbCBpbklzQmlnRW5kaWFu
LCB1aW50OF90IGluQ2hhcnNldCwKKyAgICAgICAgICAgICAgICAgIFVCb29sIG91dElzQmlnRW5k
aWFuLCB1aW50OF90IG91dENoYXJzZXQsCisgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKworLyoqCisgKiBPcGVuIGEgVURhdGFTd2FwcGVyIGZvciB0aGUgZ2l2ZW4g
aW5wdXQgZGF0YSBhbmQgdGhlIHNwZWNpZmllZCBvdXRwdXQKKyAqIGNoYXJhY3RlcmlzdGljcy4K
KyAqIFZhbHVlcyBvZiAtMSBmb3IgYW55IG9mIHRoZSBjaGFyYWN0ZXJpc3RpY3MgbWVhbiB0aGUg
bG9jYWwgcGxhdGZvcm0ncworICogY2hhcmFjdGVyaXN0aWNzLgorICoKKyAqIEBzZWUgdWRhdGFf
c3dhcAorICogQGludGVybmFsIElDVSAyLjgKKyAqLworVV9DQVBJIFVEYXRhU3dhcHBlciAqIFVf
RVhQT1JUMgordWRhdGFfb3BlblN3YXBwZXJGb3JJbnB1dERhdGEoY29uc3Qgdm9pZCAqZGF0YSwg
aW50MzJfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQm9vbCBvdXRJ
c0JpZ0VuZGlhbiwgdWludDhfdCBvdXRDaGFyc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgor
dWRhdGFfY2xvc2VTd2FwcGVyKFVEYXRhU3dhcHBlciAqZHMpOworCisvKioKKyAqIFJlYWQgdGhl
IGJlZ2lubmluZyBvZiBhbiBJQ1UgZGF0YSBwaWVjZSwgcmVjb2duaXplIG1hZ2ljIGJ5dGVzLAor
ICogc3dhcCB0aGUgc3RydWN0dXJlLgorICogU2V0IGEgVV9VTlNVUFBPUlRFRF9FUlJPUiBpZiBp
dCBkb2VzIG5vdCBsb29rIGxpa2UgYW4gSUNVIGRhdGEgcGllY2UuCisgKgorICogQHJldHVybiBU
aGUgc2l6ZSBvZiB0aGUgZGF0YSBoZWFkZXIsIGluIGJ5dGVzLgorICoKKyAqIEBpbnRlcm5hbCBJ
Q1UgMi44CisgKi8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgordWRhdGFfc3dhcERhdGFIZWFk
ZXIoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZv
aWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICAg
ICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSBp
bnQxNl90IGZyb20gaW5wdXQgdG8gcGxhdGZvcm0gZW5kaWFubmVzcy4KKyAqIEBpbnRlcm5hbCBJ
Q1UgMi44CisgKi8KK1VfQ0FQSSBpbnQxNl90IFVfRVhQT1JUMgordWRhdGFfcmVhZEludDE2KGNv
bnN0IFVEYXRhU3dhcHBlciAqZHMsIGludDE2X3QgeCk7CisKKy8qKgorICogQ29udmVydCBvbmUg
aW50MzJfdCBmcm9tIGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwg
SUNVIDIuOAorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3VkYXRhX3JlYWRJbnQzMihj
b25zdCBVRGF0YVN3YXBwZXIgKmRzLCBpbnQzMl90IHgpOworCisvKioKKyAqIFN3YXAgYSBibG9j
ayBvZiBpbnZhcmlhbnQsIE5VTC10ZXJtaW5hdGVkIHN0cmluZ3MsIGJ1dCBub3QgcGFkZGluZwor
ICogYnl0ZXMgYWZ0ZXIgdGhlIGxhc3Qgc3RyaW5nLgorICogQGludGVybmFsCisgKi8KK1VfQ0FQ
SSBpbnQzMl90IFVfRVhQT1JUMgordWRhdGFfc3dhcEludlN0cmluZ0Jsb2NrKGNvbnN0IFVEYXRh
U3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW5EYXRh
LCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0
YV9wcmludEVycm9yKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIgKmZtdCwKKyAgICAgICAgICAgICAgICAgLi4uKTsKKworLyogaW50ZXJuYWwgZXhw
b3J0cyBmcm9tIHB1dGlsLmMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gKi8KKworLyogZGVjbGFyZWQgaGVyZSB0byBrZWVwIHRoZW0gb3V0IG9mIHRoZSBwdWJs
aWMgcHV0aWwuaCAqLworCisvKioKKyAqIFN3YXAgaW52YXJpYW50IGNoYXIgKiBzdHJpbmdzIEFT
Q0lJLT5FQkNESUMuCisgKiBAaW50ZXJuYWwKKyAqLworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQy
Cit1cHJ2X2ViY2RpY0Zyb21Bc2NpaShjb25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAg
ICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0
RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisv
KioKKyAqIENvcHkgaW52YXJpYW50IEFTQ0lJIGNoYXIgKiBzdHJpbmdzIGFuZCB2ZXJpZnkgdGhl
eSBhcmUgaW52YXJpYW50LgorICogQGludGVybmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBy
dl9jb3B5QXNjaWkoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgIGNvbnN0
IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAg
ICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBTd2FwIGludmFyaWFudCBj
aGFyICogc3RyaW5ncyBFQkNESUMtPkFTQ0lJLgorICogQGludGVybmFsCisgKi8KK1VfQ0ZVTkMg
aW50MzJfdAordXBydl9hc2NpaUZyb21FYmNkaWMoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZv
aWQgKm91dERhdGEsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2Rl
KTsKKworLyoqCisgKiBDb3B5IGludmFyaWFudCBFQkNESUMgY2hhciAqIHN0cmluZ3MgYW5kIHZl
cmlmeSB0aGV5IGFyZSBpbnZhcmlhbnQuCisgKiBAaW50ZXJuYWwKKyAqLworVV9DRlVOQyBpbnQz
Ml90Cit1cHJ2X2NvcHlFYmNkaWMoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAg
ICAgICBjb25zdCB2b2lkICppbkRhdGEsIGludDMyX3QgbGVuZ3RoLCB2b2lkICpvdXREYXRhLAor
ICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENvbXBh
cmUgQVNDSUkgaW52YXJpYW50IGNoYXIgKiB3aXRoIFVuaWNvZGUgaW52YXJpYW50IFVDaGFyICoK
KyAqIEBpbnRlcm5hbAorICovCitVX0NGVU5DIGludDMyX3QKK3VwcnZfY29tcGFyZUludkFzY2lp
KGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICpvdXRTdHJpbmcsIGludDMyX3Qgb3V0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgY29u
c3QgVUNoYXIgKmxvY2FsU3RyaW5nLCBpbnQzMl90IGxvY2FsTGVuZ3RoKTsKKworLyoqCisgKiBD
b21wYXJlIEVCQ0RJQyBpbnZhcmlhbnQgY2hhciAqIHdpdGggVW5pY29kZSBpbnZhcmlhbnQgVUNo
YXIgKgorICogQGludGVybmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBydl9jb21wYXJlSW52
RWJjZGljKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciAqb3V0U3RyaW5nLCBpbnQzMl90IG91dExlbmd0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBVQ2hhciAqbG9jYWxTdHJpbmcsIGludDMyX3QgbG9jYWxMZW5ndGgpOworCisv
KiBtYXRlcmlhbC4uLiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjaWYgMAorCisvKiB1ZGF0YS5oICovCisKKy8qKgor
ICogUHVibGljIEFQSSBmdW5jdGlvbiBpbiB1ZGF0YS5jCisgKgorICogU2FtZSBhcyB1ZGF0YV9v
cGVuQ2hvaWNlKCkgYnV0IGF1dG9tYXRpY2FsbHkgc3dhcHMgdGhlIGRhdGEuCisgKiBpc0FjY2Vw
dGFibGUsIGlmIG5vdCBOVUxMLCBtYXkgYWNjZXB0IGRhdGEgd2l0aCBlbmRpYW5uZXNzIGFuZCBj
aGFyc2V0IGZhbWlseQorICogZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgcGxhdGZvcm0ncyBw
cm9wZXJ0aWVzLgorICogSWYgdGhlIGRhdGEgaXMgYWNjZXB0YWJsZSBhbmQgdGhlIHBsYXRmb3Jt
IHByb3BlcnRpZXMgZG8gbm90IG1hdGNoLCB0aGVuCisgKiB0aGUgc3dhcCBmdW5jdGlvbiBpcyBj
YWxsZWQgdG8gc3dhcCBhbiBhbGxvY2F0ZWQgdmVyc2lvbiBvZiB0aGUgZGF0YS4KKyAqIFByZWZs
aWdodGluZyBtYXkgb3IgbWF5IG5vdCBiZSBwZXJmb3JtZWQgZGVwZW5kaW5nIG9uIHdoZXRoZXIg
dGhlIHNpemUgb2YKKyAqIHRoZSBsb2FkZWQgZGF0YSBpdGVtIGlzIGtub3duLgorICoKKyAqIEBw
YXJhbSBpc0FjY2VwdGFibGUgU2FtZSBhcyBmb3IgdWRhdGFfb3BlbkNob2ljZSgpLiBNYXkgYmUg
TlVMTC4KKyAqCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCitVX0NBUEkgVURhdGFNZW1vcnkg
KiBVX0VYUE9SVDIKK3VkYXRhX29wZW5Td2FwKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIg
KnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICBVRGF0YU1lbW9yeUlzQWNj
ZXB0YWJsZSAqaXNBY2NlcHRhYmxlLCB2b2lkICppc0FjY2VwdGFibGVDb250ZXh0LAorICAgICAg
ICAgICAgICAgVURhdGFTd2FwRm4gKnN3YXAsCisgICAgICAgICAgICAgICBVRGF0YVByaW50RXJy
b3IgKnByaW50RXJyb3IsIHZvaWQgKnByaW50RXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAg
VUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW1hcGZpbGUuaCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW1hcGZpbGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yOTk1ZTM4MWVkMzBjMGI5MDMyNmIyNGVjZGYxMjI0OWZkNDM0NTQ4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bWFwZmls
ZS5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBD
b3B5cmlnaHQgKEMpIDE5OTktMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwor
KiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqLworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg
KiAgICAgICBNZW1vcnkgbWFwcGVkIGZpbGUgd3JhcHBlcnMgZm9yIHVzZSBieSB0aGUgSUNVIERh
dGEgSW1wbGVtZW50YXRpb24KKyAqCisgKiAgICAgICAgICAgUG9ydGluZyBub3RlOiAgVGhlIGlt
cGxlbWVudGF0aW9uIG9mIHRoZXNlIGZ1bmN0aW9ucyBpcyB2ZXJ5IHBsYXRmb3JtIHNwZWNpZmlj
LgorICogICAgICAgICAgICAgTm90IGFsbCBwbGF0Zm9ybXMgY2FuIGRvIHJlYWwgbWVtb3J5IG1h
cHBpbmcuICBUaG9zZSB0aGF0IGNhbid0CisgKiAgICAgICAgICAgICBzdGlsbCBtdXN0IGltcGxl
bWVudCB0aGVzZSBmdW5jdGlvbnMsIGdldHRpbmcgdGhlIGRhdGEgaW50byBtZW1vcnkgdXNpbmcK
KyAqICAgICAgICAgICAgIHdoYXRldmVyIG1lYW5zIGFyZSBhdmFpbGFibGUuCisgKgorICogICAg
ICAgICAgICBUaGVzZSBmdW5jdGlvbnMgYXJlIHBhcnQgb2YgdGhlIElDVSBpbnRlcm5hbCBpbXBs
ZW1lbnRhdGlvbiwgYW5kCisgKiAgICAgICAgICAgIGFyZSBub3QgaW50ZWRlZCB0byBiZSB1c2Vk
IGRpcmVjdGx5IGJ5IGFwcGxpY2F0aW9ucy4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0qLworCisjaWZuZGVmIF9fVU1BUEZJTEVfSF9fCisjZGVmaW5lIF9fVU1BUEZJTEVfSF9fCisK
KyNpbmNsdWRlICJ1bmljb2RlL3B1dGlsLmgiCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgor
I2luY2x1ZGUgInB1dGlsaW1wLmgiCisKK1VfQ0ZVTkMgVUJvb2wgdXBydl9tYXBGaWxlKFVEYXRh
TWVtb3J5ICpwZG0sIGNvbnN0IGNoYXIgKnBhdGgpOworVV9DRlVOQyB2b2lkICB1cHJ2X3VubWFw
RmlsZShVRGF0YU1lbW9yeSAqcERhdGEpOworCisvKiBNQVBfTk9ORTogbm8gbWVtb3J5IG1hcHBp
bmcsIG5vIGZpbGUgYWNjZXNzIGF0IGFsbCAqLworI2RlZmluZSBNQVBfTk9ORSAgICAgICAgMAor
I2RlZmluZSBNQVBfV0lOMzIgICAgICAgMQorI2RlZmluZSBNQVBfUE9TSVggICAgICAgMgorI2Rl
ZmluZSBNQVBfU1RESU8gICAgICAgMworI2RlZmluZSBNQVBfMzkwRExMICAgICAgNAorCisjaWYg
VUNPTkZJR19OT19GSUxFX0lPCisjICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfTk9O
RQorI2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5lIE1BUF9J
TVBMRU1FTlRBVElPTiBNQVBfV0lOMzIKKyNlbGlmIFVfSEFWRV9NTUFQIHx8IFVfUExBVEZPUk0g
PT0gVV9QRl9PUzM5MAorIyAgIGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MCAmJiBkZWZpbmVk
IChPUzM5MF9TVFVCREFUQSkKKyAgICAgICAgLyogICBObyBtZW1vcnkgbWFwcGluZyBmb3IgMzkw
IGJhdGNoIG1vZGUuICBGYWtlIGl0IHVzaW5nIGRsbCBsb2FkaW5nLiAgKi8KKyMgICAgICAgZGVm
aW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfMzkwRExMCisjICAgZWxzZQorIyAgICAgICBkZWZp
bmUgTUFQX0lNUExFTUVOVEFUSU9OIE1BUF9QT1NJWAorIyAgIGVuZGlmCisjZWxzZSAvKiB1bmtu
b3duIHBsYXRmb3JtLCBubyBtZW1vcnkgbWFwIGltcGxlbWVudGF0aW9uOiB1c2Ugc3RkaW8uaCBh
bmQgdXBydl9tYWxsb2MoKSBpbnN0ZWFkICovCisjICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElP
TiBNQVBfU1RESU8KKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW11dGV4LmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VtdXRleC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwYWQwZDNjMDM2NTRk
NjFhMDIzYTA4MjU0ODU2M2Q4ZDRjMDNjNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VtdXRleC5oCkBAIC0wLDAgKzEsNDI0IEBA
CisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDE0LCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgVU1VVEVYLkgKKyoK
KyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAg
RGVzY3JpcHRpb24KKyogICAwNC8wMi85NyAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqICAgMDQv
MDcvOTkgIHNybCAgICAgICAgIHJld3JpdGUgLSBDIGludGVyZmFjZSwgbXVsdGlwbGUgbXV0aWNl
cworKiAgIDA1LzEzLzk5ICBzdGVwaGVuICAgICBDaGFuZ2VkIHRvIHVtdXRleCAoZnJvbSBjbXV0
ZXgpCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgVU1VVEVYX0gKKyNkZWZp
bmUgVU1VVEVYX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5p
Y29kZS91Y2xlYW4uaCIKKyNpbmNsdWRlICJwdXRpbGltcC5oIgorCisKKworLy8gRm9yd2FyZCBE
ZWNsYXJhdGlvbnMuIFVNdXRleCBpcyBub3QgaW4gdGhlIElDVSBuYW1lc3BhY2UgKHlldCkgYmVj
YXVzZQorLy8gICAgICAgICAgICAgICAgICAgICAgIHRoZXJlIGFyZSBzb21lIHJlbWFpbmluZyBy
ZWZlcmVuY2VzIGZyb20gcGxhaW4gQy4KK3N0cnVjdCBVTXV0ZXg7CitzdHJ1Y3QgVUNvbmRpdGlv
blZhcjsKKworVV9OQU1FU1BBQ0VfQkVHSU4KK3N0cnVjdCBVSW5pdE9uY2U7CitVX05BTUVTUEFD
RV9FTkQKKworLy8gU3RyaW5naWZ5IG1hY3JvcywgdG8gYWxsb3cgI2luY2x1ZGUgb2YgdXNlciBz
dXBwbGllZCBhdG9taWMgJiBtdXRleCBmaWxlcy4KKyNkZWZpbmUgVV9NVVRFWF9TVFIocykgI3MK
KyNkZWZpbmUgVV9NVVRFWF9YU1RSKHMpIFVfTVVURVhfU1RSKHMpCisKKy8qKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisgKgorICogICBMb3cgTGV2ZWwgQXRvbWljIE9wZXJhdGlvbnMuCisgKiAgICAgIENv
bXBpbGVyIGRlcGVuZGVudC4gTm90IG9wZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50LgorICoKKyAq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqLworI2lmIGRlZmluZWQgKFVfVVNFUl9BVE9NSUNTX0gpCisjaW5j
bHVkZSBVX01VVEVYX1hTVFIoVV9VU0VSX0FUT01JQ1NfSCkKKworI2VsaWYgVV9IQVZFX1NURF9B
VE9NSUNTCisKKy8vICBDKysxMSBhdG9taWNzIGFyZSBhdmFpbGFibGUuCisKKyNpbmNsdWRlIDxh
dG9taWM+CisKK1VfTkFNRVNQQUNFX0JFR0lOCisKK3R5cGVkZWYgc3RkOjphdG9taWM8aW50MzJf
dD4gdV9hdG9taWNfaW50MzJfdDsKKyNkZWZpbmUgQVRPTUlDX0lOVDMyX1RfSU5JVElBTElaRVIo
dmFsKSBBVE9NSUNfVkFSX0lOSVQodmFsKQorCitpbmxpbmUgaW50MzJfdCB1bXR4X2xvYWRBY3F1
aXJlKHVfYXRvbWljX2ludDMyX3QgJnZhcikgeworICAgIHJldHVybiB2YXIubG9hZChzdGQ6Om1l
bW9yeV9vcmRlcl9hY3F1aXJlKTsKK30KKworaW5saW5lIHZvaWQgdW10eF9zdG9yZVJlbGVhc2Uo
dV9hdG9taWNfaW50MzJfdCAmdmFyLCBpbnQzMl90IHZhbCkgeworICAgIHZhci5zdG9yZSh2YWws
IHN0ZDo6bWVtb3J5X29yZGVyX3JlbGVhc2UpOworfQorCitpbmxpbmUgaW50MzJfdCB1bXR4X2F0
b21pY19pbmModV9hdG9taWNfaW50MzJfdCAqdmFyKSB7CisgICAgcmV0dXJuIHZhci0+ZmV0Y2hf
YWRkKDEpICsgMTsKK30KKworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfZGVjKHVfYXRvbWlj
X2ludDMyX3QgKnZhcikgeworICAgIHJldHVybiB2YXItPmZldGNoX3N1YigxKSAtIDE7Cit9CitV
X05BTUVTUEFDRV9FTkQKKworI2VsaWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisKKy8vIE1T
VkMgY29tcGlsZXIuIFJlYWRzIGFuZCB3cml0ZXMgb2Ygdm9sYXRpbGUgdmFyaWFibGVzIGhhdmUK
Ky8vICAgICAgICAgICAgICAgIGFjcXVpcmUgYW5kIHJlbGVhc2UgbWVtb3J5IHNlbWFudGljcywg
cmVzcGVjdGl2ZWx5LgorLy8gICAgICAgICAgICAgICAgVGhpcyBpcyBhIE1pY3Jvc29mdCBleHRl
bnNpb24sIG5vdCBzdGFuZGFyZCBDKysgYmVoYXZpb3IuCisvLworLy8gICBVcGRhdGU6ICAgICAg
Y2FuJ3QgdXNlIHRoaXMgYmVjYXVzZSBvZiBNaW5HVywgYnVpbHQgd2l0aCBnY2MuCisvLyAgICAg
ICAgICAgICAgICBPcmlnaW5hbCBwbGFuIHdhcyB0byB1c2UgZ2NjIGF0b21pY3MgZm9yIE1pbkdX
LCBidXQgdGhleQorLy8gICAgICAgICAgICAgICAgYXJlbid0IHN1cHBvcnRlZCwgc28gd2UgZm9s
ZCBNaW5HVyBpbnRvIHRoaXMgcGF0aC4KKworIyBkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgor
IyBkZWZpbmUgVkNfRVhUUkFMRUFOCisjIGRlZmluZSBOT1VTRVIKKyMgZGVmaW5lIE5PU0VSVklD
RQorIyBkZWZpbmUgTk9JTUUKKyMgZGVmaW5lIE5PTUNYCisjIGlmbmRlZiBOT01JTk1BWAorIyBk
ZWZpbmUgTk9NSU5NQVgKKyMgZW5kaWYKKyMgaW5jbHVkZSA8d2luZG93cy5oPgorCitVX05BTUVT
UEFDRV9CRUdJTgordHlwZWRlZiB2b2xhdGlsZSBMT05HIHVfYXRvbWljX2ludDMyX3Q7CisjZGVm
aW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJQUxJWkVSKHZhbCkgdmFsCisKK2lubGluZSBpbnQzMl90
IHVtdHhfbG9hZEFjcXVpcmUodV9hdG9taWNfaW50MzJfdCAmdmFyKSB7CisgICAgcmV0dXJuIElu
dGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKCZ2YXIsIDAsIDApOworfQorCitpbmxpbmUgdm9pZCB1
bXR4X3N0b3JlUmVsZWFzZSh1X2F0b21pY19pbnQzMl90ICZ2YXIsIGludDMyX3QgdmFsKSB7Cisg
ICAgSW50ZXJsb2NrZWRFeGNoYW5nZSgmdmFyLCB2YWwpOworfQorCisKK2lubGluZSBpbnQzMl90
IHVtdHhfYXRvbWljX2luYyh1X2F0b21pY19pbnQzMl90ICp2YXIpIHsKKyAgICByZXR1cm4gSW50
ZXJsb2NrZWRJbmNyZW1lbnQodmFyKTsKK30KKworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNf
ZGVjKHVfYXRvbWljX2ludDMyX3QgKnZhcikgeworICAgIHJldHVybiBJbnRlcmxvY2tlZERlY3Jl
bWVudCh2YXIpOworfQorVV9OQU1FU1BBQ0VfRU5ECisKKworI2VsaWYgVV9IQVZFX0dDQ19BVE9N
SUNTCisvKgorICogZ2NjIGF0b21pYyBvcHMuIFRoZXNlIGFyZSBhdmFpbGFibGUgb24gc2V2ZXJh
bCBvdGhlciBjb21waWxlcnMgYXMgd2VsbC4KKyAqLworCitVX05BTUVTUEFDRV9CRUdJTgordHlw
ZWRlZiBpbnQzMl90IHVfYXRvbWljX2ludDMyX3Q7CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lO
SVRJQUxJWkVSKHZhbCkgdmFsCisKK2lubGluZSBpbnQzMl90IHVtdHhfbG9hZEFjcXVpcmUodV9h
dG9taWNfaW50MzJfdCAmdmFyKSB7CisgICAgaW50MzJfdCB2YWwgPSB2YXI7CisgICAgX19zeW5j
X3N5bmNocm9uaXplKCk7CisgICAgcmV0dXJuIHZhbDsKK30KKworaW5saW5lIHZvaWQgdW10eF9z
dG9yZVJlbGVhc2UodV9hdG9taWNfaW50MzJfdCAmdmFyLCBpbnQzMl90IHZhbCkgeworICAgIF9f
c3luY19zeW5jaHJvbml6ZSgpOworICAgIHZhciA9IHZhbDsKK30KKworaW5saW5lIGludDMyX3Qg
dW10eF9hdG9taWNfaW5jKHVfYXRvbWljX2ludDMyX3QgKnApICB7CisgICByZXR1cm4gX19zeW5j
X2FkZF9hbmRfZmV0Y2gocCwgMSk7Cit9CisKK2lubGluZSBpbnQzMl90IHVtdHhfYXRvbWljX2Rl
Yyh1X2F0b21pY19pbnQzMl90ICpwKSAgeworICAgcmV0dXJuIF9fc3luY19zdWJfYW5kX2ZldGNo
KHAsIDEpOworfQorVV9OQU1FU1BBQ0VfRU5ECisKKyNlbHNlCisKKy8qCisgKiBVbmtub3duIFBs
YXRmb3JtLiBVc2Ugb3V0LW9mLWxpbmUgZnVuY3Rpb25zLCB3aGljaCBpbiB0dXJuIHVzZSBtdXRl
eGVzLgorICogICAgICAgICAgICAgICAgICAgU2xvdyBidXQgY29ycmVjdC4KKyAqLworCisjZGVm
aW5lIFVfTk9fUExBVEZPUk1fQVRPTUlDUworCitVX05BTUVTUEFDRV9CRUdJTgordHlwZWRlZiBp
bnQzMl90IHVfYXRvbWljX2ludDMyX3Q7CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJQUxJ
WkVSKHZhbCkgdmFsCisKK1VfQ09NTU9OX0FQSSBpbnQzMl90IFVfRVhQT1JUMiAKK3VtdHhfbG9h
ZEFjcXVpcmUodV9hdG9taWNfaW50MzJfdCAmdmFyKTsKKworVV9DT01NT05fQVBJIHZvaWQgVV9F
WFBPUlQyIAordW10eF9zdG9yZVJlbGVhc2UodV9hdG9taWNfaW50MzJfdCAmdmFyLCBpbnQzMl90
IHZhbCk7CisKK1VfQ09NTU9OX0FQSSBpbnQzMl90IFVfRVhQT1JUMiAKK3VtdHhfYXRvbWljX2lu
Yyh1X2F0b21pY19pbnQzMl90ICpwKTsKKworVV9DT01NT05fQVBJIGludDMyX3QgVV9FWFBPUlQy
IAordW10eF9hdG9taWNfZGVjKHVfYXRvbWljX2ludDMyX3QgKnApOworCitVX05BTUVTUEFDRV9F
TkQKKworI2VuZGlmICAvKiBMb3cgTGV2ZWwgQXRvbWljIE9wcyBQbGF0ZnJvbSBDaGFpbiAqLwor
CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAg
VUluaXRPbmNlIERlZmluaXRpb25zLgorICogICAgIFRoZXNlIGFyZSBwbGF0Zm9ybSBuZXV0cmFs
LgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitVX05B
TUVTUEFDRV9CRUdJTgorCitzdHJ1Y3QgVUluaXRPbmNlIHsKKyAgICB1X2F0b21pY19pbnQzMl90
ICAgZlN0YXRlOworICAgIFVFcnJvckNvZGUgICAgICAgZkVyckNvZGU7CisgICAgdm9pZCByZXNl
dCgpIHtmU3RhdGUgPSAwO307CisgICAgVUJvb2wgaXNSZXNldCgpIHtyZXR1cm4gdW10eF9sb2Fk
QWNxdWlyZShmU3RhdGUpID09IDA7fTsKKy8vIE5vdGU6IGlzUmVzZXQoKSBpcyB1c2VkIGJ5IHNl
cnZpY2UgcmVnaXN0cmF0aW9uIGNvZGUuCisvLyAgICAgICAgICAgICAgICAgVGhyZWFkIHNhZmV0
eSBvZiB0aGlzIHVzYWdlIG5lZWRzIHJldmlldy4KK307CisKKyNkZWZpbmUgVV9JTklUT05DRV9J
TklUSUFMSVpFUiB7QVRPTUlDX0lOVDMyX1RfSU5JVElBTElaRVIoMCksIFVfWkVST19FUlJPUn0K
KworCitVX0NPTU1PTl9BUEkgVUJvb2wgVV9FWFBPUlQyIHVtdHhfaW5pdEltcGxQcmVJbml0KFVJ
bml0T25jZSAmKTsKK1VfQ09NTU9OX0FQSSB2b2lkICBVX0VYUE9SVDIgdW10eF9pbml0SW1wbFBv
c3RJbml0KFVJbml0T25jZSAmKTsKKwordGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCB1bXR4X2luaXRP
bmNlKFVJbml0T25jZSAmdWlvLCBUICpvYmosIHZvaWQgKFQ6OipmcCkoKSkgeworICAgIGlmICh1
bXR4X2xvYWRBY3F1aXJlKHVpby5mU3RhdGUpID09IDIpIHsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBpZiAodW10eF9pbml0SW1wbFByZUluaXQodWlvKSkgeworICAgICAgICAob2JqLT4q
ZnApKCk7CisgICAgICAgIHVtdHhfaW5pdEltcGxQb3N0SW5pdCh1aW8pOworICAgIH0KK30KKwor
CisvLyB1bXR4X2luaXRPbmNlIHZhcmlhbnQgZm9yIHBsYWluIGZ1bmN0aW9ucywgb3Igc3RhdGlj
IGNsYXNzIGZ1bmN0aW9ucy4KKy8vICAgICAgICAgICAgICAgTm8gY29udGV4dCBwYXJhbWV0ZXIu
CitpbmxpbmUgdm9pZCB1bXR4X2luaXRPbmNlKFVJbml0T25jZSAmdWlvLCB2b2lkICgqZnApKCkp
IHsKKyAgICBpZiAodW10eF9sb2FkQWNxdWlyZSh1aW8uZlN0YXRlKSA9PSAyKSB7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgaWYgKHVtdHhfaW5pdEltcGxQcmVJbml0KHVpbykpIHsKKyAg
ICAgICAgKCpmcCkoKTsKKyAgICAgICAgdW10eF9pbml0SW1wbFBvc3RJbml0KHVpbyk7CisgICAg
fQorfQorCisvLyB1bXR4X2luaXRPbmNlIHZhcmlhbnQgZm9yIHBsYWluIGZ1bmN0aW9ucywgb3Ig
c3RhdGljIGNsYXNzIGZ1bmN0aW9ucy4KKy8vICAgICAgICAgICAgICAgV2l0aCBFcnJvckNvZGUs
IE5vIGNvbnRleHQgcGFyYW1ldGVyLgoraW5saW5lIHZvaWQgdW10eF9pbml0T25jZShVSW5pdE9u
Y2UgJnVpbywgdm9pZCAoKmZwKShVRXJyb3JDb2RlICYpLCBVRXJyb3JDb2RlICZlcnJDb2RlKSB7
CisgICAgaWYgKFVfRkFJTFVSRShlcnJDb2RlKSkgeworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGlmICh1bXR4X2xvYWRBY3F1aXJlKHVpby5mU3RhdGUpICE9IDIgJiYgdW10eF9pbml0SW1w
bFByZUluaXQodWlvKSkgeworICAgICAgICAvLyBXZSBydW4gdGhlIGluaXRpYWxpemF0aW9uLgor
ICAgICAgICAoKmZwKShlcnJDb2RlKTsKKyAgICAgICAgdWlvLmZFcnJDb2RlID0gZXJyQ29kZTsK
KyAgICAgICAgdW10eF9pbml0SW1wbFBvc3RJbml0KHVpbyk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgLy8gU29tZW9uZSBlbHNlIGFscmVhZHkgcmFuIHRoZSBpbml0aWFsaXphdGlvbi4KKyAgICAg
ICAgaWYgKFVfRkFJTFVSRSh1aW8uZkVyckNvZGUpKSB7CisgICAgICAgICAgICBlcnJDb2RlID0g
dWlvLmZFcnJDb2RlOworICAgICAgICB9CisgICAgfQorfQorCisvLyB1bXR4X2luaXRPbmNlIHZh
cmlhbnQgZm9yIHBsYWluIGZ1bmN0aW9ucywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9ucywKKy8v
ICAgICAgICAgICAgICAgd2l0aCBhIGNvbnRleHQgcGFyYW1ldGVyLgordGVtcGxhdGU8Y2xhc3Mg
VD4gdm9pZCB1bXR4X2luaXRPbmNlKFVJbml0T25jZSAmdWlvLCB2b2lkICgqZnApKFQpLCBUIGNv
bnRleHQpIHsKKyAgICBpZiAodW10eF9sb2FkQWNxdWlyZSh1aW8uZlN0YXRlKSA9PSAyKSB7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHVtdHhfaW5pdEltcGxQcmVJbml0KHVpbykp
IHsKKyAgICAgICAgKCpmcCkoY29udGV4dCk7CisgICAgICAgIHVtdHhfaW5pdEltcGxQb3N0SW5p
dCh1aW8pOworICAgIH0KK30KKworLy8gdW10eF9pbml0T25jZSB2YXJpYW50IGZvciBwbGFpbiBm
dW5jdGlvbnMsIG9yIHN0YXRpYyBjbGFzcyBmdW5jdGlvbnMsCisvLyAgICAgICAgICAgICAgIHdp
dGggYSBjb250ZXh0IHBhcmFtZXRlciBhbmQgYW4gZXJyb3IgY29kZS4KK3RlbXBsYXRlPGNsYXNz
IFQ+IHZvaWQgdW10eF9pbml0T25jZShVSW5pdE9uY2UgJnVpbywgdm9pZCAoKmZwKShULCBVRXJy
b3JDb2RlICYpLCBUIGNvbnRleHQsIFVFcnJvckNvZGUgJmVyckNvZGUpIHsKKyAgICBpZiAoVV9G
QUlMVVJFKGVyckNvZGUpKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHVtdHhf
bG9hZEFjcXVpcmUodWlvLmZTdGF0ZSkgIT0gMiAmJiB1bXR4X2luaXRJbXBsUHJlSW5pdCh1aW8p
KSB7CisgICAgICAgIC8vIFdlIHJ1biB0aGUgaW5pdGlhbGl6YXRpb24uCisgICAgICAgICgqZnAp
KGNvbnRleHQsIGVyckNvZGUpOworICAgICAgICB1aW8uZkVyckNvZGUgPSBlcnJDb2RlOworICAg
ICAgICB1bXR4X2luaXRJbXBsUG9zdEluaXQodWlvKTsKKyAgICB9IGVsc2UgeworICAgICAgICAv
LyBTb21lb25lIGVsc2UgYWxyZWFkeSByYW4gdGhlIGluaXRpYWxpemF0aW9uLgorICAgICAgICBp
ZiAoVV9GQUlMVVJFKHVpby5mRXJyQ29kZSkpIHsKKyAgICAgICAgICAgIGVyckNvZGUgPSB1aW8u
ZkVyckNvZGU7CisgICAgICAgIH0KKyAgICB9Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisKKwor
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgTXV0ZXgg
RGVmaW5pdGlvbnMuIFBsYXRmb3JtIERlcGVuZGVudCwgI2lmIHBsYXRmb3JtIGNoYWluIGZvbGxv
d3MuCisgKiAgICAgICAgIFRPRE86ICBBZGQgYSBDKysxMSB2ZXJzaW9uLgorICogICAgICAgICAg
ICAgICAgTmVlZCB0byBjb252ZXJ0IGFsbCBtdXRleCB1c2luZyBmaWxlcyB0byBDKysgZmlyc3Qu
CisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZiBk
ZWZpbmVkKFVfVVNFUl9NVVRFWF9IKQorLy8gI2lubGN1ZGUgIlVfVVNFUl9NVVRFWF9IIgorI2lu
Y2x1ZGUgVV9NVVRFWF9YU1RSKFVfVVNFUl9NVVRFWF9IKQorCisjZWxpZiBVX1BMQVRGT1JNX0hB
U19XSU4zMl9BUEkKKworLyogV2luZG93cyBEZWZpbml0aW9ucy4KKyAqICAgIFdpbmRvd3MgY29t
ZXMgZmlyc3QgaW4gdGhlIHBsYXRmb3JtIGNoYWluLgorICogICAgQ3lnd2luIChhbmQgcG9zc2li
bHkgb3RoZXJzKSBoYXZlIGJvdGggV0lOMzIgYW5kIFBPU0lYIEFQSXMuIFByZWZlciBXaW4zMiBp
biB0aGlzIGNhc2UuCisgKi8KKworCisvKiBGb3IgQ1JJVElDQUxfU0VDVElPTiAqLworCisvKgor
ICogICBOb3RlOiB0aGVyZSBpcyBhbiBlYXJsaWVyIGluY2x1ZGUgb2Ygd2luZG93cy5oIGluIHRo
aXMgZmlsZSwgYnV0IGl0IGlzIGluCisgKiAgICAgICAgIGRpZmZlcmVudCBjb25kaXRpb25hbHMu
CisgKiAgICAgICAgIFRoaXMgb25lIGlzIG5lZWRlZCBpZiB3ZSBhcmUgdXNpbmcgQysrMTEgZm9y
IGF0b21pYyBvcHMsIGJ1dAorICogICAgICAgICB3aW4zMiBBUElzIGZvciBDcml0aWNhbCBTZWN0
aW9ucy4KKyAqLworCisjIGRlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCisjIGRlZmluZSBWQ19F
WFRSQUxFQU4KKyMgZGVmaW5lIE5PVVNFUgorIyBkZWZpbmUgTk9TRVJWSUNFCisjIGRlZmluZSBO
T0lNRQorIyBkZWZpbmUgTk9NQ1gKKyMgaWZuZGVmIE5PTUlOTUFYCisjIGRlZmluZSBOT01JTk1B
WAorIyBlbmRpZgorIyBpbmNsdWRlIDx3aW5kb3dzLmg+CisKKwordHlwZWRlZiBzdHJ1Y3QgVU11
dGV4IHsKKyAgICBpY3U6OlVJbml0T25jZSAgICBmSW5pdE9uY2U7CisgICAgQ1JJVElDQUxfU0VD
VElPTiAgZkNTOworfSBVTXV0ZXg7CisKKy8qIEluaXRpYWxpemVyIGZvciBhIHN0YXRpYyBVTVVU
RVguIERlbGliZXJhdGVseSBjb250YWlucyBubyB2YWx1ZSBmb3IgdGhlCisgKiAgQ1JJVElDQUxf
U0VDVElPTi4KKyAqLworI2RlZmluZSBVX01VVEVYX0lOSVRJQUxJWkVSIHtVX0lOSVRPTkNFX0lO
SVRJQUxJWkVSfQorCitzdHJ1Y3QgVUNvbmRpdGlvblZhciB7CisgICAgSEFORExFICAgICAgICAg
ICBmRW50cnlHYXRlOworICAgIEhBTkRMRSAgICAgICAgICAgZkV4aXRHYXRlOworICAgIGludDMy
X3QgICAgICAgICAgZldhaXRDb3VudDsKK307CisKKyNkZWZpbmUgVV9DT05ESVRJT05fSU5JVElB
TElaRVIge05VTEwsIE5VTEwsIDB9CisgICAgCisKKworI2VsaWYgVV9QTEFURk9STV9JTVBMRU1F
TlRTX1BPU0lYCisKKy8qCisgKiAgUE9TSVggcGxhdGZvcm0KKyAqLworCisjaW5jbHVkZSA8cHRo
cmVhZC5oPgorCitzdHJ1Y3QgVU11dGV4IHsKKyAgICBwdGhyZWFkX211dGV4X3QgIGZNdXRleDsK
K307Cit0eXBlZGVmIHN0cnVjdCBVTXV0ZXggVU11dGV4OworI2RlZmluZSBVX01VVEVYX0lOSVRJ
QUxJWkVSICB7UFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUn0KKworc3RydWN0IFVDb25kaXRpb25W
YXIgeworICAgIHB0aHJlYWRfY29uZF90ICAgZkNvbmRpdGlvbjsKK307CisjZGVmaW5lIFVfQ09O
RElUSU9OX0lOSVRJQUxJWkVSIHtQVEhSRUFEX0NPTkRfSU5JVElBTElaRVJ9CisKKyNlbHNlCisK
Ky8qCisgKiAgVW5rbm93IHBsYXRmb3JtIHR5cGUuCisgKiAgICAgIFRoaXMgaXMgYW4gZXJyb3Ig
Y29uZGl0aW9uLiBJQ1UgcmVxdWlyZXMgbXV0ZXhlcy4KKyAqLworCisjZXJyb3IgVW5rbm93biBQ
bGF0Zm9ybS4KKworI2VuZGlmCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyAqCisgKiAgTXV0ZXggSW1wbGVtZW50YXRpb24gZnVuY3Rpb24gZGVjbGFyYXRhdGlvbnMuCisg
KiAgICAgRGVjbGFyYXRpb25zIGFyZSBwbGF0Zm9ybSBuZXV0cmFsLgorICogICAgIEltcGxlbWVu
dGF0aW9ucywgaW4gdW11dGV4LmNwcCwgYXJlIHBsYXRmb3JtIHNwZWNpZmljLgorICoKKyAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIExvY2sgYSBtdXRleC4KKyAqIEBwYXJhbSBt
dXRleCBUaGUgZ2l2ZW4gbXV0ZXggdG8gYmUgbG9ja2VkLiAgUGFzcyBOVUxMIHRvIHNwZWNpZnkK
KyAqICAgICAgICAgICAgICB0aGUgZ2xvYmFsIElDVSBtdXRleC4gIFJlY3Vyc2l2ZSBsb2NrcyBh
cmUgYW4gZXJyb3IKKyAqICAgICAgICAgICAgICBhbmQgbWF5IGNhdXNlIGEgZGVhZGxvY2sgb24g
c29tZSBwbGF0Zm9ybXMuCisgKi8KK1VfSU5URVJOQUwgdm9pZCBVX0VYUE9SVDIgdW10eF9sb2Nr
KFVNdXRleCogbXV0ZXgpOworCisvKiBVbmxvY2sgYSBtdXRleC4KKyAqIEBwYXJhbSBtdXRleCBU
aGUgZ2l2ZW4gbXV0ZXggdG8gYmUgdW5sb2NrZWQuICBQYXNzIE5VTEwgdG8gc3BlY2lmeQorICog
ICAgICAgICAgICAgIHRoZSBnbG9iYWwgSUNVIG11dGV4LgorICovCitVX0lOVEVSTkFMIHZvaWQg
VV9FWFBPUlQyIHVtdHhfdW5sb2NrIChVTXV0ZXgqIG11dGV4KTsKKworLyoKKyAqIFdhaXQgb24g
YSBjb25kaXRpb24gdmFyaWFibGUuCisgKiBUaGUgY2FsbGluZyB0aHJlYWQgd2lsbCB1bmxvY2sg
dGhlIG11dGV4IGFuZCB3YWl0IG9uIHRoZSBjb25kaXRpb24gdmFyaWFibGUuCisgKiBUaGUgbXV0
ZXggbXVzdCBiZSBsb2NrZWQgYnkgdGhlIGNhbGxpbmcgdGhyZWFkIHdoZW4gaW52b2tpbmcgdGhp
cyBmdW5jdGlvbi4KKyAqCisgKiBAcGFyYW0gY29uZCB0aGUgY29uZGl0aW9uIHZhcmlhYmxlIHRv
IHdhaXQgb24uCisgKiBAcGFyYW0gbXV0ZXggdGhlIGFzc29jaWF0ZWQgbXV0ZXguCisgKi8KKwor
VV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JUMiB1bXR4X2NvbmRXYWl0KFVDb25kaXRpb25WYXIgKmNv
bmQsIFVNdXRleCAqbXV0ZXgpOworCisKKy8qCisgKiBCcm9hZGNhc3Qgd2FrZXVwIG9mIGFsbCB0
aHJlYWRzIHdhaXRpbmcgb24gYSBDb25kaXRpb24uCisgKiBUaGUgYXNzb2NpYXRlZCBtdXRleCBt
dXN0IGJlIGxvY2tlZCBieSB0aGUgY2FsbGluZyB0aHJlYWQgd2hlbiBjYWxsaW5nCisgKiB0aGlz
IGZ1bmN0aW9uOyB0aGlzIGlzIGEgdGVtcG9yYXJ5IElDVSByZXN0cmljdGlvbi4KKyAqIAorICog
QHBhcmFtIGNvbmQgdGhlIGNvbmRpdGlvbiB2YXJpYWJsZS4KKyAqLworVV9JTlRFUk5BTCB2b2lk
IFVfRVhQT1JUMiB1bXR4X2NvbmRCcm9hZGNhc3QoVUNvbmRpdGlvblZhciAqY29uZCk7CisKKy8q
CisgKiBTaWduYWwgYSBjb25kaXRpb24gdmFyaWFibGUsIHdha2luZyB1cCBvbmUgd2FpdGluZyB0
aHJlYWQuCisgKiBDQVVUSU9OOiBEbyBub3QgdXNlLiBQbGFjZSBob2xkZXIgb25seS4gTm90IGlt
cGxlbWVudGVkIGZvciBXaW5kb3dzLgorICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyIHVt
dHhfY29uZFNpZ25hbChVQ29uZGl0aW9uVmFyICpjb25kKTsKKworI2VuZGlmIC8qIFVNVVRFWF9I
ICovCisvKmVvZiovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvZ2VuYnJrL3VuZXdkYXRhLmMgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Z2VuYnJrL3VuZXdkYXRhLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVhNjBkNTY2ODM5NjQwMzdiYjM2ZGU3Mjhi
NTJmMWJjNDFmZWM2NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9nZW5icmsvdW5ld2RhdGEuYwpAQCAtMCwwICsxLDI3NCBAQAorLyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJu
YXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBB
bGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUg
bmFtZTogIHVuZXdkYXRhLmMKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXpl
OiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAx
OTk5b2N0MjUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2luY2x1
ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmlj
b2RlL3B1dGlsLmgiCisjaW5jbHVkZSAidW5pY29kZS91c3RyaW5nLmgiCisjaW5jbHVkZSAiY21l
bW9yeS5oIgorI2luY2x1ZGUgImNzdHJpbmcuaCIKKyNpbmNsdWRlICJmaWxlc3RybS5oIgorI2lu
Y2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKyNpbmNsdWRlICJ1bmV3ZGF0YS5oIgorCitzdHJ1Y3Qg
VU5ld0RhdGFNZW1vcnkgeworICAgIEZpbGVTdHJlYW0gKmZpbGU7CisgICAgdWludDE2X3QgaGVh
ZGVyU2l6ZTsKKyAgICB1aW50OF90IG1hZ2ljMSwgbWFnaWMyOworfTsKKworVV9DQVBJIFVOZXdE
YXRhTWVtb3J5ICogVV9FWFBPUlQyCit1ZGF0YV9jcmVhdGUoY29uc3QgY2hhciAqZGlyLCBjb25z
dCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgIGNvbnN0IFVEYXRh
SW5mbyAqcEluZm8sCisgICAgICAgICAgICAgY29uc3QgY2hhciAqY29tbWVudCwKKyAgICAgICAg
ICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKSB7CisgICAgVU5ld0RhdGFNZW1vcnkgKnBEYXRh
OworICAgIHVpbnQxNl90IGhlYWRlclNpemUsIGNvbW1lbnRMZW5ndGg7CisgICAgY2hhciBmaWxl
bmFtZVs1MTJdOworICAgIHVpbnQ4X3QgYnl0ZXNbMTZdOworICAgIGludCBsZW5ndGg7CisKKyAg
ICBpZihwRXJyb3JDb2RlPT1OVUxMIHx8IFVfRkFJTFVSRSgqcEVycm9yQ29kZSkpIHsKKyAgICAg
ICAgcmV0dXJuIE5VTEw7CisgICAgfSBlbHNlIGlmKG5hbWU9PU5VTEwgfHwgKm5hbWU9PTAgfHwg
cEluZm89PU5VTEwpIHsKKyAgICAgICAgKnBFcnJvckNvZGU9VV9JTExFR0FMX0FSR1VNRU5UX0VS
Uk9SOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiBhbGxvY2F0ZSB0aGUg
ZGF0YSBzdHJ1Y3R1cmUgKi8KKyAgICBwRGF0YT0oVU5ld0RhdGFNZW1vcnkgKil1cHJ2X21hbGxv
YyhzaXplb2YoVU5ld0RhdGFNZW1vcnkpKTsKKyAgICBpZihwRGF0YT09TlVMTCkgeworICAgICAg
ICAqcEVycm9yQ29kZT1VX01FTU9SWV9BTExPQ0FUSU9OX0VSUk9SOworICAgICAgICByZXR1cm4g
TlVMTDsKKyAgICB9CisgICAgCisgICAgLyogQ2hlY2sgdGhhdCB0aGUgZnVsbCBwYXRoIHdvbid0
IGJlIHRvbyBsb25nICovCisgICAgbGVuZ3RoID0gMDsJCQkJCS8qIFN0YXJ0IHdpdGggbm90aGlu
ZyAqLworICAgIGlmKGRpciAhPSBOVUxMICAmJiAqZGlyICE9MCkJLyogQWRkIGRpcmVjdG9yeSBs
ZW5ndGggaWYgb25lIHdhcyBnaXZlbiAqLworICAgIHsKKyAgICAJbGVuZ3RoICs9IHN0cmxlbihk
aXIpOworCQorICAgIAkvKiBBZGQgMSBpZiBkaXIgZG9lc24ndCBlbmQgd2l0aCBwYXRoIHNlcCAq
LworICAgICAgICBpZiAoZGlyW3N0cmxlbihkaXIpIC0gMV0hPSBVX0ZJTEVfU0VQX0NIQVIpIHsK
KyAgICAgICAgICAgIGxlbmd0aCsrOworICAgICAgICB9CisJfQorICAgIGxlbmd0aCArPSBzdHJs
ZW4obmFtZSk7CQkvKiBBZGQgdGhlIGZpbGVuYW1lIGxlbmd0aCAqLworCisgICAgaWYodHlwZSAh
PSBOVUxMICAmJiAqdHlwZSAhPTApIHsgLyogQWRkIGRpcmVjdG9yeSBsZW5ndGggaWYgIGdpdmVu
ICovCisgICAgICAgIGxlbmd0aCArPSBzdHJsZW4odHlwZSk7CisgICAgfQorCisgICAgICAgIAor
ICAgICAvKiBMREggYnVmZmVyIExlbmd0aCBlcnJvciBjaGVjayAqLworICAgIGlmKGxlbmd0aCAg
PiAoc2l6ZW9mKGZpbGVuYW1lKSAtIDEpKQorICAgIHsKKyAgIAkgICAgKnBFcnJvckNvZGUgPSBV
X0JVRkZFUl9PVkVSRkxPV19FUlJPUjsKKyAgIAkgICAgdXBydl9mcmVlKHBEYXRhKTsKKwkgICAg
cmV0dXJuIE5VTEw7CisgICAgfQorICAgCisgICAgLyogb3BlbiB0aGUgb3V0cHV0IGZpbGUgKi8K
KyAgICBpZihkaXIhPU5VTEwgJiYgKmRpciE9MCkgeyAvKiBpZiBkaXIgaGFzIGEgdmFsdWUsIHdl
IHByZXBlbmQgaXQgdG8gdGhlIGZpbGVuYW1lICovCisgICAgICAgIGNoYXIgKnA9ZmlsZW5hbWUr
c3RybGVuKGRpcik7CisgICAgICAgIHVwcnZfc3RyY3B5KGZpbGVuYW1lLCBkaXIpOworICAgICAg
ICBpZiAoKihwLTEpIT1VX0ZJTEVfU0VQX0NIQVIpIHsKKyAgICAgICAgICAgICpwKys9VV9GSUxF
X1NFUF9DSEFSOworICAgICAgICAgICAgKnA9MDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7IC8q
IG90aGVyd2lzZSwgd2UnbGwgb3V0cHV0IHRvIHRoZSBjdXJyZW50IGRpciAqLworICAgICAgICBm
aWxlbmFtZVswXT0wOworICAgIH0KKyAgICB1cHJ2X3N0cmNhdChmaWxlbmFtZSwgbmFtZSk7Cisg
ICAgaWYodHlwZSE9TlVMTCAmJiAqdHlwZSE9MCkgeworICAgICAgICB1cHJ2X3N0cmNhdChmaWxl
bmFtZSwgIi4iKTsKKyAgICAgICAgdXBydl9zdHJjYXQoZmlsZW5hbWUsIHR5cGUpOworICAgIH0K
KyAgICBwRGF0YS0+ZmlsZT1UX0ZpbGVTdHJlYW1fb3BlbihmaWxlbmFtZSwgIndiIik7CisgICAg
aWYocERhdGEtPmZpbGU9PU5VTEwpIHsKKyAgICAgICAgdXBydl9mcmVlKHBEYXRhKTsKKyAgICAg
ICAgKnBFcnJvckNvZGU9VV9GSUxFX0FDQ0VTU19FUlJPUjsKKyAgICAgICAgcmV0dXJuIE5VTEw7
CisgICAgfQorCisgICAgLyogd3JpdGUgdGhlIGhlYWRlciBpbmZvcm1hdGlvbiAqLworICAgIGhl
YWRlclNpemU9KHVpbnQxNl90KShwSW5mby0+c2l6ZSs0KTsKKyAgICBpZihjb21tZW50IT1OVUxM
ICYmICpjb21tZW50IT0wKSB7CisgICAgICAgIGNvbW1lbnRMZW5ndGg9KHVpbnQxNl90KSh1cHJ2
X3N0cmxlbihjb21tZW50KSsxKTsKKyAgICAgICAgaGVhZGVyU2l6ZSs9Y29tbWVudExlbmd0aDsK
KyAgICB9IGVsc2UgeworICAgICAgICBjb21tZW50TGVuZ3RoPTA7CisgICAgfQorCisgICAgLyog
d3JpdGUgdGhlIHNpemUgb2YgdGhlIGhlYWRlciwgdGFrZSBwYWRkaW5nIGludG8gYWNjb3VudCAq
LworICAgIHBEYXRhLT5oZWFkZXJTaXplPSh1aW50MTZfdCkoKGhlYWRlclNpemUrMTUpJn4weGYp
OworICAgIHBEYXRhLT5tYWdpYzE9MHhkYTsKKyAgICBwRGF0YS0+bWFnaWMyPTB4Mjc7CisgICAg
VF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCAmcERhdGEtPmhlYWRlclNpemUsIDQpOwor
CisgICAgLyogd3JpdGUgdGhlIGluZm9ybWF0aW9uIGRhdGEgKi8KKyAgICBUX0ZpbGVTdHJlYW1f
d3JpdGUocERhdGEtPmZpbGUsIHBJbmZvLCBwSW5mby0+c2l6ZSk7CisKKyAgICAvKiB3cml0ZSB0
aGUgY29tbWVudCAqLworICAgIGlmKGNvbW1lbnRMZW5ndGg+MCkgeworICAgICAgICBUX0ZpbGVT
dHJlYW1fd3JpdGUocERhdGEtPmZpbGUsIGNvbW1lbnQsIGNvbW1lbnRMZW5ndGgpOworICAgIH0K
KworICAgIC8qIHdyaXRlIHBhZGRpbmcgYnl0ZXMgdG8gYWxpZ24gdGhlIGRhdGEgc2VjdGlvbiB0
byAxNiBieXRlcyAqLworICAgIGhlYWRlclNpemUmPTB4ZjsKKyAgICBpZihoZWFkZXJTaXplIT0w
KSB7CisgICAgICAgIGhlYWRlclNpemU9KHVpbnQxNl90KSgxNi1oZWFkZXJTaXplKTsKKyAgICAg
ICAgdXBydl9tZW1zZXQoYnl0ZXMsIDAsIGhlYWRlclNpemUpOworICAgICAgICBUX0ZpbGVTdHJl
YW1fd3JpdGUocERhdGEtPmZpbGUsIGJ5dGVzLCBoZWFkZXJTaXplKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gcERhdGE7Cit9CisKK1VfQ0FQSSB1aW50MzJfdCBVX0VYUE9SVDIKK3VkYXRhX2Zpbmlz
aChVTmV3RGF0YU1lbW9yeSAqcERhdGEsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpIHsKKyAgICB1
aW50MzJfdCBmaWxlTGVuZ3RoPTA7CisKKyAgICBpZihwRXJyb3JDb2RlPT1OVUxMIHx8IFVfRkFJ
TFVSRSgqcEVycm9yQ29kZSkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYo
cERhdGEhPU5VTEwpIHsKKyAgICAgICAgaWYocERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAg
ICAgIC8qIGZmbHVzaChwRGF0YS0+ZmlsZSk7Ki8KKyAgICAgICAgICAgIGZpbGVMZW5ndGg9VF9G
aWxlU3RyZWFtX3NpemUocERhdGEtPmZpbGUpOworICAgICAgICAgICAgaWYoVF9GaWxlU3RyZWFt
X2Vycm9yKHBEYXRhLT5maWxlKSkgeworICAgICAgICAgICAgICAgICpwRXJyb3JDb2RlPVVfRklM
RV9BQ0NFU1NfRVJST1I7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZp
bGVMZW5ndGgtPXBEYXRhLT5oZWFkZXJTaXplOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
VF9GaWxlU3RyZWFtX2Nsb3NlKHBEYXRhLT5maWxlKTsKKyAgICAgICAgfQorICAgICAgICB1cHJ2
X2ZyZWUocERhdGEpOworICAgIH0KKworICAgIHJldHVybiBmaWxlTGVuZ3RoOworfQorCisvKiBk
dW1teSBVRGF0YUluZm8gY2YuIHVkYXRhLmggKi8KK3N0YXRpYyBjb25zdCBVRGF0YUluZm8gZHVt
bXlEYXRhSW5mbyA9IHsKKyAgICBzaXplb2YoVURhdGFJbmZvKSwKKyAgICAwLAorCisgICAgVV9J
U19CSUdfRU5ESUFOLAorICAgIFVfQ0hBUlNFVF9GQU1JTFksCisgICAgVV9TSVpFT0ZfVUNIQVIs
CisgICAgMCwKKworICAgIHsgMCwgMCwgMCwgMCB9LCAgICAgICAgICAgICAgICAgLyogZHVtbXkg
ZGF0YUZvcm1hdCAqLworICAgIHsgMCwgMCwgMCwgMCB9LCAgICAgICAgICAgICAgICAgLyogZHVt
bXkgZm9ybWF0VmVyc2lvbiAqLworICAgIHsgMCwgMCwgMCwgMCB9ICAgICAgICAgICAgICAgICAg
LyogZHVtbXkgZGF0YVZlcnNpb24gKi8KK307CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRh
dGFfY3JlYXRlRHVtbXkoY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBj
aGFyICpuYW1lLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKSB7CisgICAgaWYoVV9TVUNDRVNTKCpw
RXJyb3JDb2RlKSkgeworICAgICAgICB1ZGF0YV9maW5pc2godWRhdGFfY3JlYXRlKGRpciwgdHlw
ZSwgbmFtZSwgJmR1bW15RGF0YUluZm8sIE5VTEwsIHBFcnJvckNvZGUpLCBwRXJyb3JDb2RlKTsK
KyAgICAgICAgaWYoVV9GQUlMVVJFKCpwRXJyb3JDb2RlKSkgeworICAgICAgICAgICAgZnByaW50
ZihzdGRlcnIsICJlcnJvciAlcyB3cml0aW5nIGR1bW15IGRhdGEgZmlsZSAlcyIgVV9GSUxFX1NF
UF9TVFJJTkcgIiVzLiVzXG4iLAorICAgICAgICAgICAgICAgICAgICB1X2Vycm9yTmFtZSgqcEVy
cm9yQ29kZSksIGRpciwgbmFtZSwgdHlwZSk7CisgICAgICAgICAgICBleGl0KCpwRXJyb3JDb2Rl
KTsKKyAgICAgICAgfQorICAgIH0KK30KKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93
cml0ZTgoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCB1aW50OF90IGJ5dGUpIHsKKyAgICBpZihwRGF0
YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3Jp
dGUocERhdGEtPmZpbGUsICZieXRlLCAxKTsKKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQ
T1JUMgordWRhdGFfd3JpdGUxNihVTmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQxNl90IHdvcmQp
IHsKKyAgICBpZihwRGF0YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBU
X0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsICZ3b3JkLCAyKTsKKyAgICB9Cit9CisKK1Vf
Q0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGUzMihVTmV3RGF0YU1lbW9yeSAqcERhdGEs
IHVpbnQzMl90IHd5ZGUpIHsKKyAgICBpZihwRGF0YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9TlVM
TCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsICZ3eWRlLCA0KTsK
KyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGVCbG9jayhVTmV3
RGF0YU1lbW9yeSAqcERhdGEsIGNvbnN0IHZvaWQgKnMsIGludDMyX3QgbGVuZ3RoKSB7CisgICAg
aWYocERhdGEhPU5VTEwgJiYgcERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgaWYobGVuZ3Ro
PjApIHsKKyAgICAgICAgICAgIFRfRmlsZVN0cmVhbV93cml0ZShwRGF0YS0+ZmlsZSwgcywgbGVu
Z3RoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0
YV93cml0ZVBhZGRpbmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBpbnQzMl90IGxlbmd0aCkgewor
ICAgIHN0YXRpYyBjb25zdCB1aW50OF90IHBhZGRpbmdbMTZdPXsKKyAgICAgICAgMHhhYSwgMHhh
YSwgMHhhYSwgMHhhYSwKKyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwKKyAgICAgICAg
MHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwKKyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYQor
ICAgIH07CisgICAgaWYocERhdGEhPU5VTEwgJiYgcERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAg
ICAgd2hpbGUobGVuZ3RoPj0xNikgeworICAgICAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBE
YXRhLT5maWxlLCBwYWRkaW5nLCAxNik7CisgICAgICAgICAgICBsZW5ndGgtPTE2OworICAgICAg
ICB9CisgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICBUX0ZpbGVTdHJlYW1fd3Jp
dGUocERhdGEtPmZpbGUsIHBhZGRpbmcsIGxlbmd0aCk7CisgICAgICAgIH0KKyAgICB9Cit9CisK
K1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGVTdHJpbmcoVU5ld0RhdGFNZW1vcnkg
KnBEYXRhLCBjb25zdCBjaGFyICpzLCBpbnQzMl90IGxlbmd0aCkgeworICAgIGlmKHBEYXRhIT1O
VUxMICYmIHBEYXRhLT5maWxlIT1OVUxMKSB7CisgICAgICAgIGlmKGxlbmd0aD09LTEpIHsKKyAg
ICAgICAgICAgIGxlbmd0aD0oaW50MzJfdCl1cHJ2X3N0cmxlbihzKTsKKyAgICAgICAgfQorICAg
ICAgICBpZihsZW5ndGg+MCkgeworICAgICAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRh
LT5maWxlLCBzLCBsZW5ndGgpOworICAgICAgICB9CisgICAgfQorfQorCitVX0NBUEkgdm9pZCBV
X0VYUE9SVDIKK3VkYXRhX3dyaXRlVVN0cmluZyhVTmV3RGF0YU1lbW9yeSAqcERhdGEsIGNvbnN0
IFVDaGFyICpzLCBpbnQzMl90IGxlbmd0aCkgeworICAgIGlmKHBEYXRhIT1OVUxMICYmIHBEYXRh
LT5maWxlIT1OVUxMKSB7CisgICAgICAgIGlmKGxlbmd0aD09LTEpIHsKKyAgICAgICAgICAgIGxl
bmd0aD11X3N0cmxlbihzKTsKKyAgICAgICAgfQorICAgICAgICBpZihsZW5ndGg+MCkgeworICAg
ICAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBzLCBsZW5ndGgqc2l6ZW9m
KFVDaGFyKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiBIZXksIEVtYWNzLCBwbGVh
c2Ugc2V0IHRoZSBmb2xsb3dpbmc6CisgKgorICogTG9jYWwgVmFyaWFibGVzOgorICogaW5kZW50
LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKgorICovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW5ld2RhdGEuaCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW5ld2RhdGEuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjVi
OGU5Zjc0OTg0NzQyN2QxMGFiY2ViZTJiNDNhZWI4NzAzZjc3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bmV3ZGF0YS5oCkBAIC0w
LDAgKzEsMTExIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdo
dCAoQykgMTk5OS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29y
cG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdW5ld2RhdGEuaAorKiAgIGVuY29kaW5nOiAg
IFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246
NAorKgorKiAgIGNyZWF0ZWQgb246IDE5OTlvY3QyNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBX
LiBTY2hlcmVyCisqLworCisjaWZuZGVmIF9fVU5FV0RBVEFfSF9fCisjZGVmaW5lIF9fVU5FV0RB
VEFfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUv
dWRhdGEuaCIKKworLyogQVBJIGZvciB3cml0aW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiogQG1lbW8gRm9yd2FyZCBk
ZWNsYXJhdGlvbiBvZiB0aGUgZGF0YSBtZW1vcnkgY3JlYXRpb24gdHlwZS4gKi8KK3R5cGVkZWYg
c3RydWN0IFVOZXdEYXRhTWVtb3J5IFVOZXdEYXRhTWVtb3J5OworCisvKioKKyAqIENyZWF0ZSBh
IG5ldyBiaW5hcnkgZGF0YSBmaWxlLgorICogVGhlIGZpbGUtd3JpdGluZyA8Y29kZT51ZGF0YV88
L2NvZGU+IGZ1bmN0aW9ucyBmYWNpbGl0YXRlIHdyaXRpbmcKKyAqIGJpbmFyeSBkYXRhIGZpbGVz
IHRoYXQgY2FuIGJlIHJlYWQgYnkgSUNVJ3MgPGNvZGU+dWRhdGE8L2NvZGU+IEFQSS4KKyAqIFRo
aXMgZnVuY3Rpb24gb3BlbnMgYSBuZXcgZmlsZSB3aXRoIGEgZmlsZW5hbWUgZGV0ZXJtaW5lZCBm
cm9tIGl0cworICogcGFyYW1ldGVycyAtIG9mIHRoZSBmb3JtICJuYW1lLnR5cGUiLgorICogSXQg
dGhlbiB3cml0ZXMgYSBzaG9ydCBoZWFkZXIsIGZvbGxvd2VkIGJ5IHRoZSA8Y29kZT5VRGF0YUlu
Zm88L2NvZGU+CisgKiBzdHJ1Y3R1cmUgYW5kLCBvcHRpb25hbGx5LCBieSB0aGUgY29tbWVudCBz
dHJpbmcuCisgKiBJdCB0aGVuIHdyaXRlcyBwYWRkaW5nIGJ5dGVzIHRvIHJvdW5kIHVwIHRvIGEg
bXVsdGlwbGUgb2YgMTYgYnl0ZXMuCisgKiBTdWJzZXF1ZW50IHdyaXRlIG9wZXJhdGlvbnMgd2ls
bCB0aHVzIHN0YXJ0IGF0IGFuIG9mZnNldCBpbiB0aGUgZmlsZQorICogdGhhdCBpcyBhIG11bHRp
cGxlIG9mIDE2LiA8Y29kZT51ZGF0YV9nZXRNZW1vcnkoKTwvY29kZT4gd2lsbCByZXR1cm4KKyAq
IGEgcG9pbnRlciB0byB0aGlzIHNhbWUgc3RhcnRpbmcgb2Zmc2V0LgorICoKKyAqIFNlZSB1ZGF0
YS5oIC4KKyAqCisgKiBAcGFyYW0gZGlyIEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSBkaXJl
Y3Rvcnkgd2hlcmUgdGhlIGRhdGEgd2lsbCBiZQorICogICAgICAgICAgICB3cml0dGVuLiBJZiA8
Y29kZT5OVUxMPC9jb2RlPiwgdGhlbgorICogICAgICAgICAgICA8Y29kZT51X2dldERhdGFEaXJl
Y3Rvcnk8L2NvZGU+IGlzIHVzZWQuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNp
ZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRvIGJlIHdyaXR0ZW4uCisgKiAgICAgICAgICAgICBGb3Ig
ZXhhbXBsZSwgcmVzb3VyY2UgYnVuZGxlcyBhcmUgd3JpdHRlbiB3aXRoIHR5cGUgInJlcyIsCisg
KiAgICAgICAgICAgICBjb252ZXJzaW9uIHRhYmxlcyB3aXRoIHR5cGUgImNudiIuCisgKiAgICAg
ICAgICAgICBUaGlzIG1heSBiZSA8Y29kZT5OVUxMPC9jb2RlPiBvciBlbXB0eS4KKyAqIEBwYXJh
bSBuYW1lIEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBkYXRhLgorICog
QHBhcmFtIHBJbmZvIEEgcG9pbnRlciB0byBhIGNvcnJlY3RseSBmaWxsZWQgPGNvZGU+VURhdGFJ
bmZvPC9jb2RlPgorICogICAgICAgICAgICAgIHN0cnVjdHVyZSB0aGF0IHdpbGwgYmUgY29waWVk
IGludG8gdGhlIGZpbGUuCisgKiBAcGFyYW0gY29tbWVudCBBIHN0cmluZyAoZS5nLiwgYSBjb3B5
cmlnaHQgc3RhdGVtZW50KSB0aGF0IHdpbGwgYmUKKyAqICAgICAgICAgICAgICAgIGNvcGllZCBp
bnRvIHRoZSBmaWxlIGlmIGl0IGlzIG5vdCA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAgICAg
ICAgICAgb3IgZW1wdHkuIFRoaXMgc3RyaW5nIHNlcnZlcyBvbmx5IGFzIGEgY29tbWVudCBpbiB0
aGUgYmluYXJ5CisgKiAgICAgICAgICAgICAgICBmaWxlLiBJdCB3aWxsIG5vdCBiZSBhY2Nlc3Np
YmxlIGJ5IGFueSBBUEkuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBBbiBJQ1UgVUVycm9yQ29kZSBw
YXJhbWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICovCitVX0NBUEkg
VU5ld0RhdGFNZW1vcnkgKiBVX0VYUE9SVDIKK3VkYXRhX2NyZWF0ZShjb25zdCBjaGFyICpkaXIs
IGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgY29uc3Qg
VURhdGFJbmZvICpwSW5mbywKKyAgICAgICAgICAgICBjb25zdCBjaGFyICpjb21tZW50LAorICAg
ICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKiogQG1lbW8gQ2xvc2UgYSBu
ZXdseSB3cml0dGVuIGJpbmFyeSBmaWxlLiAqLworVV9DQVBJIHVpbnQzMl90IFVfRVhQT1JUMgor
dWRhdGFfZmluaXNoKFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgVUVycm9yQ29kZSAqcEVycm9yQ29k
ZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBhIGR1bW15IGRhdGEgZmlsZS4gKi8KK1VfQ0FQSSB2b2lk
IFVfRVhQT1JUMgordWRhdGFfY3JlYXRlRHVtbXkoY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFy
ICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoq
IEBtZW1vIFdyaXRlIGFuIDgtYml0IGJ5dGUgdG8gdGhlIGZpbGUuICovCitVX0NBUEkgdm9pZCBV
X0VYUE9SVDIKK3VkYXRhX3dyaXRlOChVTmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQ4X3QgYnl0
ZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBhIDE2LWJpdCB3b3JkIHRvIHRoZSBmaWxlLiAqLworVV9D
QVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZTE2KFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwg
dWludDE2X3Qgd29yZCk7CisKKy8qKiBAbWVtbyBXcml0ZSBhIDMyLWJpdCB3b3JkIHRvIHRoZSBm
aWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZTMyKFVOZXdEYXRhTWVt
b3J5ICpwRGF0YSwgdWludDMyX3Qgd3lkZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBhIGJsb2NrIG9m
IGJ5dGVzIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0
ZUJsb2NrKFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgY29uc3Qgdm9pZCAqcywgaW50MzJfdCBsZW5n
dGgpOworCisvKiogQG1lbW8gV3JpdGUgYSBibG9jayBvZiBhcmJpdHJhcnkgcGFkZGluZyBieXRl
cyB0byB0aGUgZmlsZS4gKi8KK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGVQYWRk
aW5nKFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgaW50MzJfdCBsZW5ndGgpOworCisvKiogQG1lbW8g
V3JpdGUgYSA8Y29kZT5jaGFyKjwvY29kZT4gc3RyaW5nIG9mIHBsYXRmb3JtICJpbnZhcmlhbnQg
Y2hhcmFjdGVycyIgdG8gdGhlIGZpbGUuICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRh
X3dyaXRlU3RyaW5nKFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgY29uc3QgY2hhciAqcywgaW50MzJf
dCBsZW5ndGgpOworCisvKiogQG1lbW8gV3JpdGUgYSA8Y29kZT5VQ2hhcio8L2NvZGU+IHN0cmlu
ZyBvZiBVbmljb2RlIGNoYXJhY3RlciBjb2RlIHVuaXRzIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJ
IHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZVVTdHJpbmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRh
LCBjb25zdCBVQ2hhciAqcywgaW50MzJfdCBsZW5ndGgpOworCisKKy8qCisgKiBIZXksIEVtYWNz
LCBwbGVhc2Ugc2V0IHRoZSBmb2xsb3dpbmc6CisgKgorICogTG9jYWwgVmFyaWFibGVzOgorICog
aW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKgorICovCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5j
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5jCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA1ZWZjMTcwY2JkZjc1MTNkZDU3ZWJmNzc3OWI5ODJlOTdhMjFkOTQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3Vv
cHRpb25zLmMKQEAgLTAsMCArMSwxMjIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
CisqICAgQ29weXJpZ2h0IChDKSAyMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdW9wdGlvbnMuYworKiAgIGVu
Y29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5k
ZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDIwMDBhcHIxNworKiAgIGNyZWF0ZWQgYnk6
IE1hcmt1cyBXLiBTY2hlcmVyCisqCisqICAgVGhpcyBmaWxlIHByb3ZpZGVzIGEgY29tbWFuZCBs
aW5lIGFyZ3VtZW50IHBhcnNlci4KKyovCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgor
I2luY2x1ZGUgImNzdHJpbmcuaCIKKyNpbmNsdWRlICJ1b3B0aW9ucy5oIgorCitVX0NBUEkgaW50
IFVfRVhQT1JUMgordV9wYXJzZUFyZ3MoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSwKKyAgICAgICAg
ICAgIGludCBvcHRpb25Db3VudCwgVU9wdGlvbiBvcHRpb25zW10pIHsKKyAgICBjaGFyICphcmc7
CisgICAgaW50IGk9MSwgcmVtYWluaW5nPTE7CisgICAgY2hhciBjLCBzdG9wT3B0aW9ucz0wOwor
CisgICAgd2hpbGUoaTxhcmdjKSB7CisgICAgICAgIGFyZz1hcmd2W2ldOworICAgICAgICBpZigh
c3RvcE9wdGlvbnMgJiYgKmFyZz09Jy0nICYmIChjPWFyZ1sxXSkhPTApIHsKKyAgICAgICAgICAg
IC8qIHByb2Nlc3MgYW4gb3B0aW9uICovCisgICAgICAgICAgICBVT3B0aW9uICpvcHRpb249TlVM
TDsKKyAgICAgICAgICAgIGFyZys9MjsKKyAgICAgICAgICAgIGlmKGM9PSctJykgeworICAgICAg
ICAgICAgICAgIC8qIHByb2Nlc3MgYSBsb25nIG9wdGlvbiAqLworICAgICAgICAgICAgICAgIGlm
KCphcmc9PTApIHsKKyAgICAgICAgICAgICAgICAgICAgLyogc3RvcCBwcm9jZXNzaW5nIG9wdGlv
bnMgYWZ0ZXIgIi0tIiAqLworICAgICAgICAgICAgICAgICAgICBzdG9wT3B0aW9ucz0xOworICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHNlYXJjaCBmb3Ig
dGhlIG9wdGlvbiBzdHJpbmcgKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAg
ICAgICAgICAgICAgIGZvcihqPTA7IGo8b3B0aW9uQ291bnQ7ICsraikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYob3B0aW9uc1tqXS5sb25nTmFtZSAmJiB1cHJ2X3N0cmNtcChhcmcsIG9w
dGlvbnNbal0ubG9uZ05hbWUpPT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0
aW9uPW9wdGlvbnMrajsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBpZihvcHRpb249PU5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5v
IG9wdGlvbiBtYXRjaGVzICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLWk7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3B0aW9uLT5kb2VzT2Nj
dXI9MTsKKworICAgICAgICAgICAgICAgICAgICBpZihvcHRpb24tPmhhc0FyZyE9VU9QVF9OT19B
UkcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBhcnNlIHRoZSBhcmd1bWVudCBmb3Ig
dGhlIG9wdGlvbiwgaWYgYW55ICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZihpKzE8YXJn
YyAmJiAhKGFyZ3ZbaSsxXVswXT09Jy0nICYmIGFyZ3ZbaSsxXVsxXSE9MCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBhcmd2W10sIGFuZCB0
aGVyZSBpcyBub3QgYW4gb3B0aW9uIGluIHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3B0aW9uLT52YWx1ZT1hcmd2WysraV07CisgICAgICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgaWYob3B0aW9uLT5oYXNBcmc9PVVPUFRfUkVRVUlSRVNfQVJHKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyogdGhlcmUgaXMgbm8gYXJndW1lbnQsIGJ1dCBvbmUgaXMgcmVx
dWlyZWQ6IHJldHVybiB3aXRoIGVycm9yICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIC1pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAvKiBwcm9jZXNzIG9uZSBvciBtb3JlIHNob3J0IG9wdGlvbnMgKi8KKyAgICAgICAgICAg
ICAgICBkbyB7CisgICAgICAgICAgICAgICAgICAgIC8qIHNlYXJjaCBmb3IgdGhlIG9wdGlvbiBs
ZXR0ZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAg
IGZvcihqPTA7IGo8b3B0aW9uQ291bnQ7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAg
aWYoYz09b3B0aW9uc1tqXS5zaG9ydE5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcHRpb249b3B0aW9ucytqOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIGlmKG9wdGlvbj09TlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
Lyogbm8gb3B0aW9uIG1hdGNoZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAt
aTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvcHRpb24tPmRv
ZXNPY2N1cj0xOworCisgICAgICAgICAgICAgICAgICAgIGlmKG9wdGlvbi0+aGFzQXJnIT1VT1BU
X05PX0FSRykgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogcGFyc2UgdGhlIGFyZ3VtZW50
IGZvciB0aGUgb3B0aW9uLCBpZiBhbnkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCph
cmchPTApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhcmd1bWVudCBmb2xsb3dp
bmcgaW4gdGhlIHNhbWUgYXJndltdICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0
aW9uLT52YWx1ZT1hcmc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZG8gbm90IHBy
b2Nlc3MgdGhlIHJlc3Qgb2YgdGhpcyBhcmcgYXMgb3B0aW9uIGxldHRlcnMgKi8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZihpKzE8YXJnYyAmJiAhKGFyZ3ZbaSsxXVswXT09Jy0nICYmIGFyZ3ZbaSsxXVsxXSE9MCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBh
cmd2W10sIGFuZCB0aGVyZSBpcyBub3QgYW4gb3B0aW9uIGluIHRoZXJlICovCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3B0aW9uLT52YWx1ZT1hcmd2WysraV07CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyogdGhpcyBicmVhayBpcyByZWR1bmRhbnQgYmVjYXVzZSB3ZSBrbm93
IHRoYXQgKmFyZz09MCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKG9wdGlvbi0+aGFzQXJnPT1VT1BUX1JFUVVJ
UkVTX0FSRykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZXJlIGlzIG5vIGFy
Z3VtZW50LCBidXQgb25lIGlzIHJlcXVpcmVkOiByZXR1cm4gd2l0aCBlcnJvciAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8qIGdldCB0
aGUgbmV4dCBvcHRpb24gbGV0dGVyICovCisgICAgICAgICAgICAgICAgICAgIG9wdGlvbj1OVUxM
OworICAgICAgICAgICAgICAgICAgICBjPSphcmcrKzsKKyAgICAgICAgICAgICAgICB9IHdoaWxl
KGMhPTApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZihvcHRpb24hPTAgJiYgb3B0
aW9uLT5vcHRpb25GbiE9MCAmJiBvcHRpb24tPm9wdGlvbkZuKG9wdGlvbi0+Y29udGV4dCwgb3B0
aW9uKTwwKSB7CisgICAgICAgICAgICAgICAgLyogdGhlIG9wdGlvbiBmdW5jdGlvbiB3YXMgY2Fs
bGVkIGFuZCByZXR1cm5lZCBhbiBlcnJvciAqLworICAgICAgICAgICAgICAgIHJldHVybiAtaTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogZ28gdG8gbmV4dCBhcmd2W10gKi8KKyAg
ICAgICAgICAgICsraTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIG1vdmUgYSBu
b24tb3B0aW9uIHVwIGluIGFyZ3ZbXSAqLworICAgICAgICAgICAgYXJndltyZW1haW5pbmcrK109
YXJnOworICAgICAgICAgICAgKytpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZW1h
aW5pbmc7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Z2VuYnJrL3VvcHRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2Vu
YnJrL3VvcHRpb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDNkYjY1ZjI4MWZjMTkzNGNiODg4MzYzNjYwY2Iz
MzE3NTUzNGFjMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9nZW5icmsvdW9wdGlvbnMuaApAQCAtMCwwICsxLDE0MSBAQAorLyoKKyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMSwgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwg
UmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFt
ZTogIHVvcHRpb25zLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAg
IDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDAw
YXByMTcKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIFRoaXMgZmls
ZSBwcm92aWRlcyBhIGNvbW1hbmQgbGluZSBhcmd1bWVudCBwYXJzZXIuCisqLworCisjaWZuZGVm
IF9fVU9QVElPTlNfSF9fCisjZGVmaW5lIF9fVU9QVElPTlNfSF9fCisKKyNpbmNsdWRlICJ1bmlj
b2RlL3V0eXBlcy5oIgorCisvKiBUaGlzIHNob3VsZCB1c3VhbGx5IGJlIGNhbGxlZCBiZWZvcmUg
Y2FsbGluZyB1X3BhcnNlQXJncyAqLworLyojaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwICYm
IChVX0NIQVJTRVRfRkFNSUxZID09IFVfQVNDSUlfRkFNSUxZKSovCisgICAgLyogdHJhbnNsYXRl
IGFyZ3MgZnJvbSBFQkNESUMgdG8gQVNDSUkgKi8KKy8qIyAgIGRlZmluZSBVX01BSU5fSU5JVF9B
UkdTKGFyZ2MsIGFyZ3YpIF9fYXJndnRvYXNjaWlfYShhcmdjLCBhcmd2KSovCisvKiNlbGlmIGRl
ZmluZWQoWFBfTUFDX0NPTlNPTEUpKi8KKyNpZiBkZWZpbmVkKFhQX01BQ19DT05TT0xFKQorIyAg
IGluY2x1ZGUgPGNvbnNvbGUuaD4KKyAgICAvKiBHZXQgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBH
VUksIHNpbmNlIG9sZCBNYWNzIGRvbid0IGhhdmUgYSBjb25zb2xlIFdpbmRvdy4gKi8KKyMgICBk
ZWZpbmUgVV9NQUlOX0lOSVRfQVJHUyhhcmdjLCBhcmd2KSBhcmdjID0gY2NvbW1hbmQoKGNoYXIq
KiopJmFyZ3YpCisjZWxzZQorICAgIC8qIE5vcm1hbGx5IHdlIGRvIG5vdGhpbmcuICovCisjICAg
ZGVmaW5lIFVfTUFJTl9JTklUX0FSR1MoYXJnYywgYXJndikKKyNlbmRpZgorCisKKworLyogZm9y
d2FyZCBkZWNsYXJhdGlvbnMgZm9yIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiAqLworc3RydWN0
IFVPcHRpb247Cit0eXBlZGVmIHN0cnVjdCBVT3B0aW9uIFVPcHRpb247CisKKy8qIGZ1bmN0aW9u
IHRvIGJlIGNhbGxlZCBmb3IgYSBjb21tYW5kIGxpbmUgb3B0aW9uICovCit0eXBlZGVmIGludCBV
T3B0aW9uRm4odm9pZCAqY29udGV4dCwgVU9wdGlvbiAqb3B0aW9uKTsKKworLyogdmFsdWVzIG9m
IFVPcHRpb24uaGFzQXJnICovCitlbnVtIHsgVU9QVF9OT19BUkcsIFVPUFRfUkVRVUlSRVNfQVJH
LCBVT1BUX09QVElPTkFMX0FSRyB9OworCisvKiBzdHJ1Y3R1cmUgZGVzY3JpYmluZyBhIGNvbW1h
bmQgbGluZSBvcHRpb24gKi8KK3N0cnVjdCBVT3B0aW9uIHsKKyAgICBjb25zdCBjaGFyICpsb25n
TmFtZTsgICAvKiAiZm9vIiBmb3IgLS1mb28gKi8KKyAgICBjb25zdCBjaGFyICp2YWx1ZTsgICAg
ICAvKiBvdXRwdXQgcGxhY2Vob2xkZXIsIHdpbGwgcG9pbnQgdG8gdGhlIGFyZ3VtZW50IHN0cmlu
ZywgaWYgYW55ICovCisgICAgVU9wdGlvbkZuICpvcHRpb25GbjsgICAgLyogZnVuY3Rpb24gdG8g
YmUgY2FsbGVkIHdoZW4gdGhpcyBvcHRpb24gb2NjdXJzICovCisgICAgdm9pZCAqY29udGV4dDsg
ICAgICAgICAgLyogcGFyYW1ldGVyIGZvciB0aGUgZnVuY3Rpb24gKi8KKyAgICBjaGFyIHNob3J0
TmFtZTsgICAgICAgICAvKiAnZicgZm9yIC1mICovCisgICAgY2hhciBoYXNBcmc7ICAgICAgICAg
ICAgLyogZW51bSB2YWx1ZTogb3B0aW9uIHRha2VzIG5vL3JlcXVpcmVzL21heSBoYXZlIGFyZ3Vt
ZW50ICovCisgICAgY2hhciBkb2VzT2NjdXI7ICAgICAgICAgLyogYm9vbGVhbiBmb3IgInRoaXMg
b25lIG9jY3VyZWQiICovCit9OworCisvKiBtYWNybyBmb3IgYW4gZW50cnkgaW4gYSBkZWNsYXJh
dGlvbiBvZiBVT3B0aW9uW10gKi8KKyNkZWZpbmUgVU9QVElPTl9ERUYobG9uZ05hbWUsIHNob3J0
TmFtZSwgaGFzQXJnKSBcCisgICAgeyBsb25nTmFtZSwgTlVMTCwgTlVMTCwgTlVMTCwgc2hvcnRO
YW1lLCBoYXNBcmcsIDAgfQorCisvKiBJQ1UgVG9vbHMgb3B0aW9uIGRlZmluaXRpb25zICovCisj
ZGVmaW5lIFVPUFRJT05fSEVMUF9IICAgICAgICAgICAgICBVT1BUSU9OX0RFRigiaGVscCIsICdo
JywgVU9QVF9OT19BUkcpCisjZGVmaW5lIFVPUFRJT05fSEVMUF9RVUVTVElPTl9NQVJLICBVT1BU
SU9OX0RFRigiaGVscCIsICc/JywgVU9QVF9OT19BUkcpCisjZGVmaW5lIFVPUFRJT05fVkVSQk9T
RSAgICAgICAgICAgICBVT1BUSU9OX0RFRigidmVyYm9zZSIsICd2JywgVU9QVF9OT19BUkcpCisj
ZGVmaW5lIFVPUFRJT05fUVVJRVQgICAgICAgICAgICAgICBVT1BUSU9OX0RFRigicXVpZXQiLCAn
cScsIFVPUFRfTk9fQVJHKQorI2RlZmluZSBVT1BUSU9OX1ZFUlNJT04gICAgICAgICAgICAgVU9Q
VElPTl9ERUYoInZlcnNpb24iLCAnVicsIFVPUFRfTk9fQVJHKQorI2RlZmluZSBVT1BUSU9OX0NP
UFlSSUdIVCAgICAgICAgICAgVU9QVElPTl9ERUYoImNvcHlyaWdodCIsICdjJywgVU9QVF9OT19B
UkcpCisKKyNkZWZpbmUgVU9QVElPTl9ERVNURElSICAgICAgICAgICAgIFVPUFRJT05fREVGKCJk
ZXN0ZGlyIiwgJ2QnLCBVT1BUX1JFUVVJUkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9TT1VSQ0VE
SVIgICAgICAgICAgIFVPUFRJT05fREVGKCJzb3VyY2VkaXIiLCAncycsIFVPUFRfUkVRVUlSRVNf
QVJHKQorI2RlZmluZSBVT1BUSU9OX0VOQ09ESU5HICAgICAgICAgICAgVU9QVElPTl9ERUYoImVu
Y29kaW5nIiwgJ2UnLCBVT1BUX1JFUVVJUkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9JQ1VEQVRB
RElSICAgICAgICAgIFVPUFRJT05fREVGKCJpY3VkYXRhZGlyIiwgJ2knLCBVT1BUX1JFUVVJUkVT
X0FSRykKKyNkZWZpbmUgVU9QVElPTl9XUklURV9KQVZBICAgICAgICAgIFVPUFRJT05fREVGKCJ3
cml0ZS1qYXZhIiwgJ2onLCBVT1BUX09QVElPTkFMX0FSRykKKyNkZWZpbmUgVU9QVElPTl9QQUNL
QUdFX05BTUUgICAgICAgIFVPUFRJT05fREVGKCJwYWNrYWdlLW5hbWUiLCAncCcsIFVPUFRfUkVR
VUlSRVNfQVJHKQorI2RlZmluZSBVT1BUSU9OX0JVTkRMRV9OQU1FICAgICAgICAgVU9QVElPTl9E
RUYoImJ1bmRsZS1uYW1lIiwgJ2InLCBVT1BUX1JFUVVJUkVTX0FSRykKKworLyoqCisgKiBDIENv
bW1hbmQgbGluZSBhcmd1bWVudCBwYXJzZXIuCisgKgorICogVGhpcyBmdW5jdGlvbiB0YWtlcyB0
aGUgYXJndlthcmdjXSBjb21tYW5kIGxpbmUgYW5kIGEgZGVzY3JpcHRpb24gb2YKKyAqIHRoZSBw
cm9ncmFtJ3Mgb3B0aW9ucyBpbiBmb3JtIG9mIGFuIGFycmF5IG9mIFVPcHRpb24gc3RydWN0dXJl
cy4KKyAqIEVhY2ggVU9wdGlvbiBkZWZpbmVzIGEgbG9uZyBhbmQgYSBzaG9ydCBuYW1lIChhIHN0
cmluZyBhbmQgYSBjaGFyYWN0ZXIpCisgKiBmb3Igb3B0aW9ucyBsaWtlICItLWZvbyIgYW5kICIt
ZiIuCisgKgorICogRWFjaCBvcHRpb24gaXMgbWFya2VkIHdpdGggd2hldGhlciBpdCBkb2VzIG5v
dCB0YWtlIGFuIGFyZ3VtZW50LAorICogcmVxdWlyZXMgb25lLCBvciBvcHRpb25hbGx5IHRha2Vz
IG9uZS4gVGhlIGFyZ3VtZW50IG1heSBmb2xsb3cgaW4KKyAqIHRoZSBzYW1lIGFyZ3ZbXSBlbnRy
eSBmb3Igc2hvcnQgb3B0aW9ucywgb3IgaXQgbWF5IGFsd2F5cyBmb2xsb3cKKyAqIGluIHRoZSBu
ZXh0IGFyZ3ZbXSBlbnRyeS4KKyAqCisgKiBBbiBhcmd1bWVudCBpcyBpbiB0aGUgbmV4dCBhcmd2
W10gZW50cnkgZm9yIGJvdGggbG9uZyBhbmQgc2hvcnQgbmFtZQorICogb3B0aW9ucywgZXhjZXB0
IGl0IGlzIHRha2VuIGZyb20gZGlyZWN0bHkgYmVoaW5kIHRoZSBzaG9ydCBuYW1lIGluCisgKiBp
dHMgb3duIGFyZ3ZbXSBlbnRyeSBpZiB0aGVyZSBhcmUgY2hhcmFjdGVycyBmb2xsb3dpbmcgdGhl
IG9wdGlvbiBsZXR0ZXIuCisgKiBBbiBhcmd1bWVudCBpbiBpdHMgb3duIGFyZ3ZbXSBlbnRyeSBt
dXN0IG5vdCBiZWdpbiB3aXRoIGEgJy0nCisgKiB1bmxlc3MgaXQgaXMgb25seSB0aGUgJy0nIGl0
c2VsZi4gVGhlcmUgaXMgbm8gcmVzdHJpY3Rpb24gb2YgdGhlCisgKiBhcmd1bWVudCBmb3JtYXQg
aWYgaXQgaXMgcGFydCBvZiB0aGUgc2hvcnQgbmFtZSBvcHRpb25zJ3MgYXJndltdIGVudHJ5Lgor
ICoKKyAqIFRoZSBhcmd1bWVudCBpcyBzdG9yZWQgaW4gdGhlIHZhbHVlIGZpZWxkIG9mIHRoZSBj
b3JyZXNwb25kaW5nCisgKiBVT3B0aW9uIGVudHJ5LCBhbmQgdGhlIGRvZXNPY2N1ciBmaWVsZCBp
cyBzZXQgdG8gMSBpZiB0aGUgb3B0aW9uCisgKiBpcyBmb3VuZCBhdCBhbGwuCisgKgorICogU2hv
cnQgbmFtZSBvcHRpb25zIHdpdGhvdXQgYXJndW1lbnRzIGNhbiBiZSBjb2xsYXBzZWQgaW50byBh
IHNpbmdsZQorICogYXJndltdIGVudHJ5LiBBZnRlciBhbiBvcHRpb24gbGV0dGVyIHRha2VzIGFu
IGFyZ3VtZW50LCBmb2xsb3dpbmcKKyAqIGxldHRlcnMgd2lsbCBiZSB0YWtlbiBhcyBpdHMgYXJn
dW1lbnQuCisgKgorICogSWYgdGhlIHNhbWUgb3B0aW9uIGlzIGZvdW5kIHNldmVyYWwgdGltZXMs
IHRoZW4gdGhlIGxhc3QKKyAqIGFyZ3VtZW50IHZhbHVlIHdpbGwgYmUgc3RvcmVkIGluIHRoZSB2
YWx1ZSBmaWVsZC4KKyAqCisgKiBGb3IgZWFjaCBvcHRpb24sIGEgZnVuY3Rpb24gY2FuIGJlIGNh
bGxlZC4gVGhpcyBjb3VsZCBiZSB1c2VkCisgKiBmb3Igb3B0aW9ucyB0aGF0IG9jY3VyIG11bHRp
cGxlIHRpbWVzIGFuZCBhbGwgYXJndW1lbnRzIGFyZSB0bworICogYmUgY29sbGVjdGVkLgorICoK
KyAqIEFsbCBvcHRpb25zIGFyZSByZW1vdmVkIGZyb20gdGhlIGFyZ3ZbXSBhcnJheSBpdHNlbGYu
IElmIHRoZSBwYXJzZXIKKyAqIGlzIHN1Y2Nlc3NmdWwsIHRoZW4gaXQgcmV0dXJucyB0aGUgbnVt
YmVyIG9mIHJlbWFpbmluZyBub24tb3B0aW9uCisgKiBzdHJpbmdzIChpbmNsdWRpbmcgYXJndlsw
XSkuCisgKiBhcmd2WzBdLCB0aGUgcHJvZ3JhbSBuYW1lLCBpcyBuZXZlciByZWFkIG9yIG1vZGlm
aWVkLgorICoKKyAqIEFuIG9wdGlvbiAiLS0iIGVuZHMgb3B0aW9uIHByb2Nlc3Npbmc7IGV2ZXJ5
dGhpbmcgYWZ0ZXIgdGhpcworICogcmVtYWlucyBpbiB0aGUgYXJndltdIGFycmF5LgorICoKKyAq
IEFuIG9wdGlvbiBzdHJpbmcgIi0iIGFsb25lIGlzIHRyZWF0ZWQgYXMgYSBub24tb3B0aW9uLgor
ICoKKyAqIElmIGFuIG9wdGlvbiBpcyBub3QgcmVjb2duaXplZCBvciBhbiBhcmd1bWVudCBtaXNz
aW5nLCB0aGVuCisgKiB0aGUgcGFyc2VyIHJldHVybnMgd2l0aCB0aGUgbmVnYXRpdmUgaW5kZXgg
b2YgdGhlIGFyZ3ZbXSBlbnRyeQorICogd2hlcmUgdGhlIGVycm9yIHdhcyBkZXRlY3RlZC4KKyAq
CisgKiBUaGUgT1MvNDAwIGNvbXBpbGVyIHJlcXVpcmVzIHRoYXQgYXJndiBlaXRoZXIgYmUgImNo
YXIqIGFyZ3ZbXSIsCisgKiBvciAiY29uc3QgY2hhciogY29uc3QgYXJndltdIiwgYW5kIGl0IHdp
bGwgbm90IGFjY2VwdCwgCisgKiAiY29uc3QgY2hhciogYXJndltdIiBhcyBhIGRlZmluaXRpb24g
Zm9yIG1haW4oKS4KKyAqCisgKiBAcGFyYW0gYXJndiBUaGlzIHBhcmFtZXRlciBpcyBtb2RpZmll
ZAorICogQHBhcmFtIG9wdGlvbnMgVGhpcyBwYXJhbWV0ZXIgaXMgbW9kaWZpZWQKKyAqLworVV9D
QVBJIGludCBVX0VYUE9SVDIKK3VfcGFyc2VBcmdzKGludCBhcmdjLCBjaGFyKiBhcmd2W10sCisg
ICAgICAgICAgICBpbnQgb3B0aW9uQ291bnQsIFVPcHRpb24gb3B0aW9uc1tdKTsKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3V0
cmllLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3V0cmllLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2NlYzAyN2ZlMzQ1OTVlNWI3NWUxZjI4NTBkMjA2YjYyYTk0ZWY4NwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsv
dXRyaWUuaApAQCAtMCwwICsxLDc5NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgor
KiAgIENvcHlyaWdodCAoQykgMjAwMS0yMDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisq
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1dHJpZS5oCisqICAgZW5j
b2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRl
bnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwMW5vdjA4CisqICAgY3JlYXRlZCBieTog
TWFya3VzIFcuIFNjaGVyZXIKKyovCisKKyNpZm5kZWYgX19VVFJJRV9IX18KKyNkZWZpbmUgX19V
VFJJRV9IX18KKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29k
ZS91dGYxNi5oIgorI2luY2x1ZGUgInVkYXRhc3dwLmgiCisKK1VfQ0RFQ0xfQkVHSU4KKworLyoq
CisgKiBcZmlsZQorICoKKyAqIFRoaXMgaXMgYSBjb21tb24gaW1wbGVtZW50YXRpb24gb2YgYSAi
Zm9sZGVkIiB0cmllLgorICogSXQgaXMgYSBraW5kIG9mIGNvbXByZXNzZWQsIHNlcmlhbGl6YWJs
ZSB0YWJsZSBvZiAxNi0gb3IgMzItYml0IHZhbHVlcyBhc3NvY2lhdGVkIHdpdGgKKyAqIFVuaWNv
ZGUgY29kZSBwb2ludHMgKDAuLjB4MTBmZmZmKS4KKyAqCisgKiBUaGlzIGltcGxlbWVudGF0aW9u
IGlzIG9wdGltaXplZCBmb3IgZ2V0dGluZyB2YWx1ZXMgd2hpbGUgd2Fsa2luZyBmb3J3YXJkCisg
KiB0aHJvdWdoIGEgVVRGLTE2IHN0cmluZy4KKyAqIFRoZXJlZm9yZSwgdGhlIHNpbXBsZXN0IGFu
ZCBmYXN0ZXN0IGFjY2VzcyBtYWNyb3MgYXJlIHRoZQorICogX0ZST01fTEVBRCgpIGFuZCBfRlJP
TV9PRkZTRVRfVFJBSUwoKSBtYWNyb3MuCisgKgorICogVGhlIF9GUk9NX0JNUCgpIG1hY3JvcyBh
cmUgYSBsaXR0bGUgbW9yZSBjb21wbGljYXRlZDsgdGhleSBnZXQgdmFsdWVzCisgKiBldmVuIGZv
ciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF9wb2ludHNfLCB3aGlsZSB0aGUgX0ZST01fTEVBRCgpIG1h
Y3JvcworICogZ2V0IHNwZWNpYWwgImZvbGRlZCIgdmFsdWVzIGZvciBsZWFkIHN1cnJvZ2F0ZSBj
b2RlIF91bml0c18gaWYKKyAqIHRoZXJlIGlzIHJlbGV2YW50IGRhdGEgYXNzb2NpYXRlZCB3aXRo
IHRoZW0uCisgKiBGcm9tIHN1Y2ggYSBmb2xkZWQgdmFsdWUsIGFuIG9mZnNldCBuZWVkcyB0byBi
ZSBleHRyYWN0ZWQgdG8gc3VwcGx5CisgKiB0byB0aGUgX0ZST01fT0ZGU0VUX1RSQUlMKCkgbWFj
cm9zLgorICoKKyAqIE1vc3Qgb2YgdGhlIG1vcmUgY29tcGxleCAoYW5kIG1vcmUgY29udmVuaWVu
dCkgZnVuY3Rpb25zL21hY3JvcyBjYWxsIGEgY2FsbGJhY2sgZnVuY3Rpb24KKyAqIHRvIGdldCB0
aGF0IG9mZnNldCBmcm9tIHRoZSBmb2xkZWQgdmFsdWUgZm9yIGEgbGVhZCBzdXJyb2dhdGUgdW5p
dC4KKyAqLworCisvKioKKyAqIFRyaWUgY29uc3RhbnRzLCBkZWZpbmluZyBzaGlmdCB3aWR0aHMs
IGluZGV4IGFycmF5IGxlbmd0aHMsIGV0Yy4KKyAqLworZW51bSB7CisgICAgLyoqIFNoaWZ0IHNp
emUgZm9yIHNoaWZ0aW5nIHJpZ2h0IHRoZSBpbnB1dCBpbmRleC4gMS4uOSAqLworICAgIFVUUklF
X1NISUZUPTUsCisKKyAgICAvKiogTnVtYmVyIG9mIGRhdGEgdmFsdWVzIGluIGEgc3RhZ2UgMiAo
ZGF0YSBhcnJheSkgYmxvY2suIDIsIDQsIDgsIC4uLCAweDIwMCAqLworICAgIFVUUklFX0RBVEFf
QkxPQ0tfTEVOR1RIPTE8PFVUUklFX1NISUZULAorCisgICAgLyoqIE1hc2sgZm9yIGdldHRpbmcg
dGhlIGxvd2VyIGJpdHMgZnJvbSB0aGUgaW5wdXQgaW5kZXguICovCisgICAgVVRSSUVfTUFTSz1V
VFJJRV9EQVRBX0JMT0NLX0xFTkdUSC0xLAorCisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dh
dGUgY29kZSBwb2ludHMnIGluZGV4IGRpc3BsYWNlbWVudCBpbiB0aGUgaW5kZXggYXJyYXkuCisg
ICAgICogMHgxMDAwMC0weGQ4MDA9MHgyODAwCisgICAgICovCisgICAgVVRSSUVfTEVBRF9JTkRF
WF9ESVNQPTB4MjgwMD4+VVRSSUVfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBTaGlmdCBzaXpl
IGZvciBzaGlmdGluZyBsZWZ0IHRoZSBpbmRleCBhcnJheSB2YWx1ZXMuCisgICAgICogSW5jcmVh
c2VzIHBvc3NpYmxlIGRhdGEgc2l6ZSB3aXRoIDE2LWJpdCBpbmRleCB2YWx1ZXMgYXQgdGhlIGNv
c3QKKyAgICAgKiBvZiBjb21wYWN0YWJpbGl0eS4KKyAgICAgKiBUaGlzIHJlcXVpcmVzIGJsb2Nr
cyBvZiBzdGFnZSAyIGRhdGEgdG8gYmUgYWxpZ25lZCBieSBVVFJJRV9EQVRBX0dSQU5VTEFSSVRZ
LgorICAgICAqIDAuLlVUUklFX1NISUZUCisgICAgICovCisgICAgVVRSSUVfSU5ERVhfU0hJRlQ9
MiwKKworICAgIC8qKiBUaGUgYWxpZ25tZW50IHNpemUgb2YgYSBzdGFnZSAyIGRhdGEgYmxvY2su
IEFsc28gdGhlIGdyYW51bGFyaXR5IGZvciBjb21wYWN0aW9uLiAqLworICAgIFVUUklFX0RBVEFf
R1JBTlVMQVJJVFk9MTw8VVRSSUVfSU5ERVhfU0hJRlQsCisKKyAgICAvKiogTnVtYmVyIG9mIGJp
dHMgb2YgYSB0cmFpbCBzdXJyb2dhdGUgdGhhdCBhcmUgdXNlZCBpbiBpbmRleCB0YWJsZSBsb29r
dXBzLiAqLworICAgIFVUUklFX1NVUlJPR0FURV9CTE9DS19CSVRTPTEwLVVUUklFX1NISUZULAor
CisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIGluZGV4IChzdGFnZSAxKSBlbnRyaWVzIHBlciBs
ZWFkIHN1cnJvZ2F0ZS4KKyAgICAgKiBTYW1lIGFzIG51bWJlciBvZiBpbmRleCBlbnRyaWVzIGZv
ciAxMDI0IHRyYWlsIHN1cnJvZ2F0ZXMsCisgICAgICogPT0weDQwMD4+VVRSSUVfU0hJRlQKKyAg
ICAgKi8KKyAgICBVVFJJRV9TVVJST0dBVEVfQkxPQ0tfQ09VTlQ9KDE8PFVUUklFX1NVUlJPR0FU
RV9CTE9DS19CSVRTKSwKKworICAgIC8qKiBMZW5ndGggb2YgdGhlIEJNUCBwb3J0aW9uIG9mIHRo
ZSBpbmRleCAoc3RhZ2UgMSkgYXJyYXkuICovCisgICAgVVRSSUVfQk1QX0lOREVYX0xFTkdUSD0w
eDEwMDAwPj5VVFJJRV9TSElGVAorfTsKKworLyoqCisgKiBMZW5ndGggb2YgdGhlIGluZGV4IChz
dGFnZSAxKSBhcnJheSBiZWZvcmUgZm9sZGluZy4KKyAqIE1heGltdW0gbnVtYmVyIG9mIFVuaWNv
ZGUgY29kZSBwb2ludHMgKDB4MTEwMDAwKSBzaGlmdGVkIHJpZ2h0IGJ5IFVUUklFX1NISUZULgor
ICovCisjZGVmaW5lIFVUUklFX01BWF9JTkRFWF9MRU5HVEggKDB4MTEwMDAwPj5VVFJJRV9TSElG
VCkKKworLyoqCisgKiBNYXhpbXVtIGxlbmd0aCBvZiB0aGUgcnVudGltZSBkYXRhIChzdGFnZSAy
KSBhcnJheS4KKyAqIExpbWl0ZWQgYnkgMTYtYml0IGluZGV4IHZhbHVlcyB0aGF0IGFyZSBsZWZ0
LXNoaWZ0ZWQgYnkgVVRSSUVfSU5ERVhfU0hJRlQuCisgKi8KKyNkZWZpbmUgVVRSSUVfTUFYX0RB
VEFfTEVOR1RIICgweDEwMDAwPDxVVFJJRV9JTkRFWF9TSElGVCkKKworLyoqCisgKiBNYXhpbXVt
IGxlbmd0aCBvZiB0aGUgYnVpbGQtdGltZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKyAqIFRoZSBt
YXhpbXVtIGxlbmd0aCBpcyAweDExMDAwMCtVVFJJRV9EQVRBX0JMT0NLX0xFTkdUSCsweDQwMC4K
KyAqIChOdW1iZXIgb2YgVW5pY29kZSBjb2RlIHBvaW50cyArIG9uZSBhbGwtaW5pdGlhbC12YWx1
ZSBibG9jayArCisgKiAgcG9zc2libGUgZHVwbGljYXRlIGVudHJpZXMgZm9yIDEwMjQgbGVhZCBz
dXJyb2dhdGVzLikKKyAqLworI2RlZmluZSBVVFJJRV9NQVhfQlVJTERfVElNRV9EQVRBX0xFTkdU
SCAoMHgxMTAwMDArVVRSSUVfREFUQV9CTE9DS19MRU5HVEgrMHg0MDApCisKKy8qKgorICogTnVt
YmVyIG9mIGJ5dGVzIGZvciBhIGR1bW15IHRyaWUuCisgKiBBIGR1bW15IHRyaWUgaXMgYW4gZW1w
dHkgcnVudGltZSB0cmllLCB1c2VkIHdoZW4gYSByZWFsIGRhdGEgdHJpZSBjYW5ub3QKKyAqIGJl
IGxvYWRlZC4KKyAqIFRoZSBudW1iZXIgb2YgYnl0ZXMgd29ya3MgZm9yIExhdGluLTEtbGluZWFy
IHRyaWVzIHdpdGggMzItYml0IGRhdGEKKyAqICh3b3JzdCBjYXNlKS4KKyAqCisgKiBDYWxjdWxh
dGlvbjoKKyAqICAgQk1QIGluZGV4ICsgMSBpbmRleCBibG9jayBmb3IgbGVhZCBzdXJyb2dhdGUg
Y29kZSBwb2ludHMgKworICogICBMYXRpbi0xLWxpbmVhciBhcnJheSArIDEgZGF0YSBibG9jayBm
b3IgbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMKKyAqCisgKiBMYXRpbi0xOiBpZihVVFJJRV9T
SElGVDw9OCkgeyAyNTYgfSBlbHNlIHsgaW5jbHVkZWQgaW4gZmlyc3QgZGF0YSBibG9jayB9Cisg
KgorICogQHNlZSB1dHJpZV91bnNlcmlhbGl6ZUR1bW15CisgKi8KKyNkZWZpbmUgVVRSSUVfRFVN
TVlfU0laRSAoKFVUUklFX0JNUF9JTkRFWF9MRU5HVEgrVVRSSUVfU1VSUk9HQVRFX0JMT0NLX0NP
VU5UKSoyKyhVVFJJRV9TSElGVDw9OD8yNTY6VVRSSUVfREFUQV9CTE9DS19MRU5HVEgpKjQrVVRS
SUVfREFUQV9CTE9DS19MRU5HVEgqNCkKKworLyoqCisgKiBSdW50aW1lIFVUcmllIGNhbGxiYWNr
IGZ1bmN0aW9uLgorICogRXh0cmFjdCBmcm9tIGEgbGVhZCBzdXJyb2dhdGUncyBkYXRhIHRoZQor
ICogaW5kZXggYXJyYXkgb2Zmc2V0IG9mIHRoZSBpbmRleGVzIGZvciB0aGF0IGxlYWQgc3Vycm9n
YXRlLgorICoKKyAqIEBwYXJhbSBkYXRhIGRhdGEgdmFsdWUgZm9yIGEgc3Vycm9nYXRlIGZyb20g
dGhlIHRyaWUsIGluY2x1ZGluZyB0aGUgZm9sZGluZyBvZmZzZXQKKyAqIEByZXR1cm4gb2Zmc2V0
Pj1VVFJJRV9CTVBfSU5ERVhfTEVOR1RILCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRo
ZSBsZWFkIHN1cnJvZ2F0ZQorICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgorVVRyaWVH
ZXRGb2xkaW5nT2Zmc2V0KHVpbnQzMl90IGRhdGEpOworCisvKioKKyAqIFJ1bi10aW1lIFRyaWUg
c3RydWN0dXJlLgorICoKKyAqIEVpdGhlciB0aGUgZGF0YSB0YWJsZSBpcyAxNiBiaXRzIHdpZGUg
YW5kIGFjY2Vzc2VkIHZpYSB0aGUgaW5kZXgKKyAqIHBvaW50ZXIsIHdpdGggZWFjaCBpbmRleCBp
dGVtIGluY3JlYXNlZCBieSBpbmRleExlbmd0aDsKKyAqIGluIHRoaXMgY2FzZSwgZGF0YTMyPT1O
VUxMLgorICoKKyAqIE9yIHRoZSBkYXRhIHRhYmxlIGlzIDMyIGJpdHMgd2lkZSBhbmQgYWNjZXNz
ZWQgdmlhIHRoZSBkYXRhMzIgcG9pbnRlci4KKyAqLworc3RydWN0IFVUcmllIHsKKyAgICBjb25z
dCB1aW50MTZfdCAqaW5kZXg7CisgICAgY29uc3QgdWludDMyX3QgKmRhdGEzMjsgLyogTlVMTCBp
ZiAxNmIgZGF0YSBpcyB1c2VkIHZpYSBpbmRleCAqLworCisgICAgLyoqCisgICAgICogVGhpcyBm
dW5jdGlvbiBpcyBub3QgdXNlZCBpbiBfRlJPTV9MRUFELCBfRlJPTV9CTVAsIGFuZCBfRlJPTV9P
RkZTRVRfVFJBSUwgbWFjcm9zLgorICAgICAqIElmIGNvbnZlbmllbmNlIG1hY3JvcyBsaWtlIF9H
RVQxNiBvciBfTkVYVDMyIGFyZSB1c2VkLCB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgc2V0LgorICAg
ICAqCisgICAgICogdXRyaWVfdW5zZXJpYWxpemUoKSBzZXRzIGEgZGVmYXVsdCBmdW5jdGlvbiB3
aGljaCBzaW1wbHkgcmV0dXJucworICAgICAqIHRoZSBsZWFkIHN1cnJvZ2F0ZSdzIHZhbHVlIGl0
c2VsZiAtIHdoaWNoIGlzIHRoZSBpbnZlcnNlIG9mIHRoZSBkZWZhdWx0CisgICAgICogZm9sZGlu
ZyBmdW5jdGlvbiB1c2VkIGJ5IHV0cmllX3NlcmlhbGl6ZSgpLgorICAgICAqCisgICAgICogQHNl
ZSBVVHJpZUdldEZvbGRpbmdPZmZzZXQKKyAgICAgKi8KKyAgICBVVHJpZUdldEZvbGRpbmdPZmZz
ZXQgKmdldEZvbGRpbmdPZmZzZXQ7CisKKyAgICBpbnQzMl90IGluZGV4TGVuZ3RoLCBkYXRhTGVu
Z3RoOworICAgIHVpbnQzMl90IGluaXRpYWxWYWx1ZTsKKyAgICBVQm9vbCBpc0xhdGluMUxpbmVh
cjsKK307CisKKyNpZm5kZWYgX19VVFJJRTJfSF9fCit0eXBlZGVmIHN0cnVjdCBVVHJpZSBVVHJp
ZTsKKyNlbmRpZgorCisvKiogSW50ZXJuYWwgdHJpZSBnZXR0ZXIgZnJvbSBhbiBvZmZzZXQgKDAg
aWYgYzE2IGlzIGEgQk1QL2xlYWQgdW5pdHMpIGFuZCBhIDE2LWJpdCB1bml0ICovCisjZGVmaW5l
IF9VVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEsIG9mZnNldCwgYzE2KSBcCisgICAgKHRyaWUpLT5k
YXRhWyBcCisgICAgICAgICgoaW50MzJfdCkoKHRyaWUpLT5pbmRleFsob2Zmc2V0KSsoKGMxNik+
PlVUUklFX1NISUZUKV0pPDxVVFJJRV9JTkRFWF9TSElGVCkrIFwKKyAgICAgICAgKChjMTYpJlVU
UklFX01BU0spIFwKKyAgICBdCisKKy8qKiBJbnRlcm5hbCB0cmllIGdldHRlciBmcm9tIGEgcGFp
ciBvZiBzdXJyb2dhdGVzICovCisjZGVmaW5lIF9VVFJJRV9HRVRfRlJPTV9QQUlSKHRyaWUsIGRh
dGEsIGMsIGMyLCByZXN1bHQsIHJlc3VsdFR5cGUpIHsgXAorICAgIGludDMyX3QgX19vZmZzZXQ7
IFwKK1wKKyAgICAvKiBnZXQgZGF0YSBmb3IgbGVhZCBzdXJyb2dhdGUgKi8gXAorICAgIChyZXN1
bHQpPV9VVFJJRV9HRVRfUkFXKCh0cmllKSwgZGF0YSwgMCwgKGMpKTsgXAorICAgIF9fb2Zmc2V0
PSh0cmllKS0+Z2V0Rm9sZGluZ09mZnNldChyZXN1bHQpOyBcCitcCisgICAgLyogZ2V0IHRoZSBy
ZWFsIGRhdGEgZnJvbSB0aGUgZm9sZGVkIGxlYWQvdHJhaWwgdW5pdHMgKi8gXAorICAgIGlmKF9f
b2Zmc2V0PjApIHsgXAorICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRh
dGEsIF9fb2Zmc2V0LCAoYzIpJjB4M2ZmKTsgXAorICAgIH0gZWxzZSB7IFwKKyAgICAgICAgKHJl
c3VsdCk9KHJlc3VsdFR5cGUpKCh0cmllKS0+aW5pdGlhbFZhbHVlKTsgXAorICAgIH0gXAorfQor
CisvKiogSW50ZXJuYWwgdHJpZSBnZXR0ZXIgZnJvbSBhIEJNUCBjb2RlIHBvaW50LCB0cmVhdGlu
ZyBhIGxlYWQgc3Vycm9nYXRlIGFzIGEgbm9ybWFsIGNvZGUgcG9pbnQgKi8KKyNkZWZpbmUgX1VU
UklFX0dFVF9GUk9NX0JNUCh0cmllLCBkYXRhLCBjMTYpIFwKKyAgICBfVVRSSUVfR0VUX1JBVyh0
cmllLCBkYXRhLCAweGQ4MDA8PShjMTYpICYmIChjMTYpPD0weGRiZmYgPyBVVFJJRV9MRUFEX0lO
REVYX0RJU1AgOiAwLCBjMTYpOworCisvKioKKyAqIEludGVybmFsIHRyaWUgZ2V0dGVyIGZyb20g
YSBjb2RlIHBvaW50LgorICogQ291bGQgYmUgZmFzdGVyKD8pIGJ1dCBsb25nZXIgd2l0aAorICog
ICBpZigoYzMyKTw9MHhkN2ZmKSB7IChyZXN1bHQpPV9VVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEs
IDAsIGMzMik7IH0KKyAqLworI2RlZmluZSBfVVRSSUVfR0VUKHRyaWUsIGRhdGEsIGMzMiwgcmVz
dWx0LCByZXN1bHRUeXBlKSBcCisgICAgaWYoKHVpbnQzMl90KShjMzIpPD0weGZmZmYpIHsgXAor
ICAgICAgICAvKiBCTVAgY29kZSBwb2ludHMgKi8gXAorICAgICAgICAocmVzdWx0KT1fVVRSSUVf
R0VUX0ZST01fQk1QKHRyaWUsIGRhdGEsIGMzMik7IFwKKyAgICB9IGVsc2UgaWYoKHVpbnQzMl90
KShjMzIpPD0weDEwZmZmZikgeyBcCisgICAgICAgIC8qIHN1cHBsZW1lbnRhcnkgY29kZSBwb2lu
dCAqLyBcCisgICAgICAgIFVDaGFyIF9fbGVhZDE2PVUxNl9MRUFEKGMzMik7IFwKKyAgICAgICAg
X1VUUklFX0dFVF9GUk9NX1BBSVIodHJpZSwgZGF0YSwgX19sZWFkMTYsIGMzMiwgcmVzdWx0LCBy
ZXN1bHRUeXBlKTsgXAorICAgIH0gZWxzZSB7IFwKKyAgICAgICAgLyogb3V0IG9mIHJhbmdlICov
IFwKKyAgICAgICAgKHJlc3VsdCk9KHJlc3VsdFR5cGUpKCh0cmllKS0+aW5pdGlhbFZhbHVlKTsg
XAorICAgIH0KKworLyoqIEludGVybmFsIG5leHQtcG9zdC1pbmNyZW1lbnQ6IGdldCB0aGUgbmV4
dCBjb2RlIHBvaW50IChjLCBjMikgYW5kIGl0cyBkYXRhICovCisjZGVmaW5lIF9VVFJJRV9ORVhU
KHRyaWUsIGRhdGEsIHNyYywgbGltaXQsIGMsIGMyLCByZXN1bHQsIHJlc3VsdFR5cGUpIHsgXAor
ICAgIChjKT0qKHNyYykrKzsgXAorICAgIGlmKCFVMTZfSVNfTEVBRChjKSkgeyBcCisgICAgICAg
IChjMik9MDsgXAorICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEs
IDAsIChjKSk7IFwKKyAgICB9IGVsc2UgaWYoKHNyYykhPShsaW1pdCkgJiYgVTE2X0lTX1RSQUlM
KChjMik9KihzcmMpKSkgeyBcCisgICAgICAgICsrKHNyYyk7IFwKKyAgICAgICAgX1VUUklFX0dF
VF9GUk9NX1BBSVIoKHRyaWUpLCBkYXRhLCAoYyksIChjMiksIChyZXN1bHQpLCByZXN1bHRUeXBl
KTsgXAorICAgIH0gZWxzZSB7IFwKKyAgICAgICAgLyogdW5wYWlyZWQgbGVhZCBzdXJyb2dhdGUg
Y29kZSBwb2ludCAqLyBcCisgICAgICAgIChjMik9MDsgXAorICAgICAgICAocmVzdWx0KT1fVVRS
SUVfR0VUX1JBVygodHJpZSksIGRhdGEsIFVUUklFX0xFQURfSU5ERVhfRElTUCwgKGMpKTsgXAor
ICAgIH0gXAorfQorCisvKiogSW50ZXJuYWwgcHJldmlvdXM6IGdldCB0aGUgcHJldmlvdXMgY29k
ZSBwb2ludCAoYywgYzIpIGFuZCBpdHMgZGF0YSAqLworI2RlZmluZSBfVVRSSUVfUFJFVklPVVMo
dHJpZSwgZGF0YSwgc3RhcnQsIHNyYywgYywgYzIsIHJlc3VsdCwgcmVzdWx0VHlwZSkgeyBcCisg
ICAgKGMpPSotLShzcmMpOyBcCisgICAgaWYoIVUxNl9JU19TVVJST0dBVEUoYykpIHsgXAorICAg
ICAgICAoYzIpPTA7IFwKKyAgICAgICAgKHJlc3VsdCk9X1VUUklFX0dFVF9SQVcoKHRyaWUpLCBk
YXRhLCAwLCAoYykpOyBcCisgICAgfSBlbHNlIGlmKCFVMTZfSVNfU1VSUk9HQVRFX0xFQUQoYykp
IHsgXAorICAgICAgICAvKiB0cmFpbCBzdXJyb2dhdGUgKi8gXAorICAgICAgICBpZigoc3RhcnQp
IT0oc3JjKSAmJiBVMTZfSVNfTEVBRCgoYzIpPSooKHNyYyktMSkpKSB7IFwKKyAgICAgICAgICAg
IC0tKHNyYyk7IFwKKyAgICAgICAgICAgIChyZXN1bHQpPShjKTsgKGMpPShjMik7IChjMik9KFVD
aGFyKShyZXN1bHQpOyAvKiBzd2FwIGMsIGMyICovIFwKKyAgICAgICAgICAgIF9VVFJJRV9HRVRf
RlJPTV9QQUlSKCh0cmllKSwgZGF0YSwgKGMpLCAoYzIpLCAocmVzdWx0KSwgcmVzdWx0VHlwZSk7
IFwKKyAgICAgICAgfSBlbHNlIHsgXAorICAgICAgICAgICAgLyogdW5wYWlyZWQgdHJhaWwgc3Vy
cm9nYXRlIGNvZGUgcG9pbnQgKi8gXAorICAgICAgICAgICAgKGMyKT0wOyBcCisgICAgICAgICAg
ICAocmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEsIDAsIChjKSk7IFwKKyAgICAg
ICAgfSBcCisgICAgfSBlbHNlIHsgXAorICAgICAgICAvKiB1bnBhaXJlZCBsZWFkIHN1cnJvZ2F0
ZSBjb2RlIHBvaW50ICovIFwKKyAgICAgICAgKGMyKT0wOyBcCisgICAgICAgIChyZXN1bHQpPV9V
VFJJRV9HRVRfUkFXKCh0cmllKSwgZGF0YSwgVVRSSUVfTEVBRF9JTkRFWF9ESVNQLCAoYykpOyBc
CisgICAgfSBcCit9CisKKy8qIFB1YmxpYyBVVHJpZSBBUEkgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBHZXQgYSBw
b2ludGVyIHRvIHRoZSBjb250aWd1b3VzIHBhcnQgb2YgdGhlIGRhdGEgYXJyYXkKKyAqIGZvciB0
aGUgTGF0aW4tMSByYW5nZSAoVSswMDAwLi5VKzAwZmYpLgorICogTXVzdCBiZSB1c2VkIG9ubHkg
aWYgdGhlIExhdGluLTEgcmFuZ2UgaXMgaW4gZmFjdCBsaW5lYXIKKyAqICh0cmllLT5pc0xhdGlu
MUxpbmVhcikuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50
ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEByZXR1cm4gKGNvbnN0IHVpbnQx
Nl90ICopIHBvaW50ZXIgdG8gdmFsdWVzIGZvciBMYXRpbi0xIGNvZGUgcG9pbnRzCisgKi8KKyNk
ZWZpbmUgVVRSSUVfR0VUMTZfTEFUSU4xKHRyaWUpICgodHJpZSktPmluZGV4Kyh0cmllKS0+aW5k
ZXhMZW5ndGgrVVRSSUVfREFUQV9CTE9DS19MRU5HVEgpCisKKy8qKgorICogR2V0IGEgcG9pbnRl
ciB0byB0aGUgY29udGlndW91cyBwYXJ0IG9mIHRoZSBkYXRhIGFycmF5CisgKiBmb3IgdGhlIExh
dGluLTEgcmFuZ2UgKFUrMDAwMC4uVSswMGZmKS4KKyAqIE11c3QgYmUgdXNlZCBvbmx5IGlmIHRo
ZSBMYXRpbi0xIHJhbmdlIGlzIGluIGZhY3QgbGluZWFyCisgKiAodHJpZS0+aXNMYXRpbjFMaW5l
YXIpLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRv
IHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcmV0dXJuIChjb25zdCB1aW50MzJfdCAq
KSBwb2ludGVyIHRvIHZhbHVlcyBmb3IgTGF0aW4tMSBjb2RlIHBvaW50cworICovCisjZGVmaW5l
IFVUUklFX0dFVDMyX0xBVElOMSh0cmllKSAoKHRyaWUpLT5kYXRhMzIrVVRSSUVfREFUQV9CTE9D
S19MRU5HVEgpCisKKy8qKgorICogR2V0IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJNUCBj
b2RlIHBvaW50IChVQ2hhciwgPD1VK2ZmZmYpLgorICogYzE2IG1heSBiZSBhIGxlYWQgc3Vycm9n
YXRlLCB3aGljaCBtYXkgaGF2ZSBhIHZhbHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0Lgor
ICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBy
dW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYzE2IChVQ2hhciwgaW4pIHRoZSBpbnB1
dCBCTVAgY29kZSBwb2ludAorICogQHJldHVybiAodWludDE2X3QpIHRyaWUgbG9va3VwIHJlc3Vs
dAorICovCisjZGVmaW5lIFVUUklFX0dFVDE2X0ZST01fTEVBRCh0cmllLCBjMTYpIF9VVFJJRV9H
RVRfUkFXKHRyaWUsIGluZGV4LCAwLCBjMTYpCisKKy8qKgorICogR2V0IGEgMzItYml0IHRyaWUg
dmFsdWUgZnJvbSBhIEJNUCBjb2RlIHBvaW50IChVQ2hhciwgPD1VK2ZmZmYpLgorICogYzE2IG1h
eSBiZSBhIGxlYWQgc3Vycm9nYXRlLCB3aGljaCBtYXkgaGF2ZSBhIHZhbHVlIGluY2x1ZGluZyBh
IGZvbGRpbmcgb2Zmc2V0LgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikg
YSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYzE2IChV
Q2hhciwgaW4pIHRoZSBpbnB1dCBCTVAgY29kZSBwb2ludAorICogQHJldHVybiAodWludDMyX3Qp
IHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dFVDMyX0ZST01fTEVBRCh0
cmllLCBjMTYpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEzMiwgMCwgYzE2KQorCisvKioKKyAq
IEdldCBhIDE2LWJpdCB0cmllIHZhbHVlIGZyb20gYSBCTVAgY29kZSBwb2ludCAoVUNoYXIsIDw9
VStmZmZmKS4KKyAqIEV2ZW4gbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMgYXJlIHRyZWF0ZWQg
YXMgbm9ybWFsIGNvZGUgcG9pbnRzLAorICogd2l0aCB1bmZvbGRlZCB2YWx1ZXMgdGhhdCBtYXkg
ZGlmZmVyIGZyb20gX0ZST01fTEVBRCgpIG1hY3JvIHJlc3VsdHMgZm9yIHRoZW0uCisgKgorICog
QHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUg
dHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBjMTYgKFVDaGFyLCBpbikgdGhlIGlucHV0IEJNUCBj
b2RlIHBvaW50CisgKiBAcmV0dXJuICh1aW50MTZfdCkgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8K
KyNkZWZpbmUgVVRSSUVfR0VUMTZfRlJPTV9CTVAodHJpZSwgYzE2KSBfVVRSSUVfR0VUX0ZST01f
Qk1QKHRyaWUsIGluZGV4LCBjMTYpCisKKy8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUg
ZnJvbSBhIEJNUCBjb2RlIHBvaW50IChVQ2hhciwgPD1VK2ZmZmYpLgorICogRXZlbiBsZWFkIHN1
cnJvZ2F0ZSBjb2RlIHBvaW50cyBhcmUgdHJlYXRlZCBhcyBub3JtYWwgY29kZSBwb2ludHMsCisg
KiB3aXRoIHVuZm9sZGVkIHZhbHVlcyB0aGF0IG1heSBkaWZmZXIgZnJvbSBfRlJPTV9MRUFEKCkg
bWFjcm8gcmVzdWx0cyBmb3IgdGhlbS4KKyAqCisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUg
KiwgaW4pIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFt
IGMxNiAoVUNoYXIsIGluKSB0aGUgaW5wdXQgQk1QIGNvZGUgcG9pbnQKKyAqIEByZXR1cm4gKHVp
bnQzMl90KSB0cmllIGxvb2t1cCByZXN1bHQKKyAqLworI2RlZmluZSBVVFJJRV9HRVQzMl9GUk9N
X0JNUCh0cmllLCBjMTYpIF9VVFJJRV9HRVRfRlJPTV9CTVAodHJpZSwgZGF0YTMyLCBjMTYpCisK
Ky8qKgorICogR2V0IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIGNvZGUgcG9pbnQuCisgKiBF
dmVuIGxlYWQgc3Vycm9nYXRlIGNvZGUgcG9pbnRzIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBjb2Rl
IHBvaW50cywKKyAqIHdpdGggdW5mb2xkZWQgdmFsdWVzIHRoYXQgbWF5IGRpZmZlciBmcm9tIF9G
Uk9NX0xFQUQoKSBtYWNybyByZXN1bHRzIGZvciB0aGVtLgorICoKKyAqIEBwYXJhbSB0cmllIChj
b25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJl
CisgKiBAcGFyYW0gYzMyIChVQ2hhcjMyLCBpbikgdGhlIGlucHV0IGNvZGUgcG9pbnQKKyAqIEBw
YXJhbSByZXN1bHQgKHVpbnQxNl90LCBvdXQpIHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUgdHJp
ZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTYodHJpZSwgYzMyLCByZXN1
bHQpIF9VVFJJRV9HRVQodHJpZSwgaW5kZXgsIGMzMiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoq
CisgKiBHZXQgYSAzMi1iaXQgdHJpZSB2YWx1ZSBmcm9tIGEgY29kZSBwb2ludC4KKyAqIEV2ZW4g
bGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIGNvZGUgcG9p
bnRzLAorICogd2l0aCB1bmZvbGRlZCB2YWx1ZXMgdGhhdCBtYXkgZGlmZmVyIGZyb20gX0ZST01f
TEVBRCgpIG1hY3JvIHJlc3VsdHMgZm9yIHRoZW0uCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0
IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAq
IEBwYXJhbSBjMzIgKFVDaGFyMzIsIGluKSB0aGUgaW5wdXQgY29kZSBwb2ludAorICogQHBhcmFt
IHJlc3VsdCAodWludDMyX3QsIG91dCkgdWludDMyX3QgdmFyaWFibGUgZm9yIHRoZSB0cmllIGxv
b2t1cCByZXN1bHQKKyAqLworI2RlZmluZSBVVFJJRV9HRVQzMih0cmllLCBjMzIsIHJlc3VsdCkg
X1VUUklFX0dFVCh0cmllLCBkYXRhMzIsIGMzMiwgcmVzdWx0LCB1aW50MzJfdCkKKworLyoqCisg
KiBHZXQgdGhlIG5leHQgY29kZSBwb2ludCAoYywgYzIpLCBwb3N0LWluY3JlbWVudCBzcmMsCisg
KiBhbmQgZ2V0IGEgMTYtYml0IHZhbHVlIGZyb20gdGhlIHRyaWUuCisgKgorICogQHBhcmFtIHRy
aWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1
Y3R1cmUKKyAqIEBwYXJhbSBzcmMgKGNvbnN0IFVDaGFyICosIGluL291dCkgdGhlIHNvdXJjZSB0
ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBsaW1pdCAoY29uc3QgVUNoYXIgKiwgaW4pIHRoZSBsaW1p
dCBwb2ludGVyIGZvciB0aGUgdGV4dCwgb3IgTlVMTAorICogQHBhcmFtIGMgKFVDaGFyLCBvdXQp
IHZhcmlhYmxlIGZvciB0aGUgQk1QIG9yIGxlYWQgY29kZSB1bml0CisgKiBAcGFyYW0gYzIgKFVD
aGFyLCBvdXQpIHZhcmlhYmxlIGZvciAwIG9yIHRoZSB0cmFpbCBjb2RlIHVuaXQKKyAqIEBwYXJh
bSByZXN1bHQgKHVpbnQxNl90LCBvdXQpIHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBs
b29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfTkVYVDE2KHRyaWUsIHNyYywgbGltaXQs
IGMsIGMyLCByZXN1bHQpIF9VVFJJRV9ORVhUKHRyaWUsIGluZGV4LCBzcmMsIGxpbWl0LCBjLCBj
MiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgdGhlIG5leHQgY29kZSBwb2ludCAo
YywgYzIpLCBwb3N0LWluY3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0IGEgMzItYml0IHZhbHVlIGZy
b20gdGhlIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBv
aW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzcmMgKGNvbnN0
IFVDaGFyICosIGluL291dCkgdGhlIHNvdXJjZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBsaW1p
dCAoY29uc3QgVUNoYXIgKiwgaW4pIHRoZSBsaW1pdCBwb2ludGVyIGZvciB0aGUgdGV4dCwgb3Ig
TlVMTAorICogQHBhcmFtIGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9yIGxl
YWQgY29kZSB1bml0CisgKiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAwIG9y
IHRoZSB0cmFpbCBjb2RlIHVuaXQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQpIHVp
bnQzMl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUg
VVRSSUVfTkVYVDMyKHRyaWUsIHNyYywgbGltaXQsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9ORVhU
KHRyaWUsIGRhdGEzMiwgc3JjLCBsaW1pdCwgYywgYzIsIHJlc3VsdCwgdWludDMyX3QpCisKKy8q
KgorICogR2V0IHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IChjLCBjMiksIHByZS1kZWNyZW1lbnQg
c3JjLAorICogYW5kIGdldCBhIDE2LWJpdCB2YWx1ZSBmcm9tIHRoZSB0cmllLgorICoKKyAqIEBw
YXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRy
aWUgc3RydWN0dXJlCisgKiBAcGFyYW0gc3RhcnQgKGNvbnN0IFVDaGFyICosIGluKSB0aGUgc3Rh
cnQgcG9pbnRlciBmb3IgdGhlIHRleHQsIG9yIE5VTEwKKyAqIEBwYXJhbSBzcmMgKGNvbnN0IFVD
aGFyICosIGluL291dCkgdGhlIHNvdXJjZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBjIChVQ2hh
ciwgb3V0KSB2YXJpYWJsZSBmb3IgdGhlIEJNUCBvciBsZWFkIGNvZGUgdW5pdAorICogQHBhcmFt
IGMyIChVQ2hhciwgb3V0KSB2YXJpYWJsZSBmb3IgMCBvciB0aGUgdHJhaWwgY29kZSB1bml0Cisg
KiBAcGFyYW0gcmVzdWx0ICh1aW50MTZfdCwgb3V0KSB1aW50MTZfdCB2YXJpYWJsZSBmb3IgdGhl
IHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX1BSRVZJT1VTMTYodHJpZSwg
c3RhcnQsIHNyYywgYywgYzIsIHJlc3VsdCkgX1VUUklFX1BSRVZJT1VTKHRyaWUsIGluZGV4LCBz
dGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgdGhlIHBy
ZXZpb3VzIGNvZGUgcG9pbnQgKGMsIGMyKSwgcHJlLWRlY3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0
IGEgMzItYml0IHZhbHVlIGZyb20gdGhlIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0
IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAq
IEBwYXJhbSBzdGFydCAoY29uc3QgVUNoYXIgKiwgaW4pIHRoZSBzdGFydCBwb2ludGVyIGZvciB0
aGUgdGV4dCwgb3IgTlVMTAorICogQHBhcmFtIHNyYyAoY29uc3QgVUNoYXIgKiwgaW4vb3V0KSB0
aGUgc291cmNlIHRleHQgcG9pbnRlcgorICogQHBhcmFtIGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxl
IGZvciB0aGUgQk1QIG9yIGxlYWQgY29kZSB1bml0CisgKiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQp
IHZhcmlhYmxlIGZvciAwIG9yIHRoZSB0cmFpbCBjb2RlIHVuaXQKKyAqIEBwYXJhbSByZXN1bHQg
KHVpbnQzMl90LCBvdXQpIHVpbnQzMl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVz
dWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfUFJFVklPVVMzMih0cmllLCBzdGFydCwgc3JjLCBjLCBj
MiwgcmVzdWx0KSBfVVRSSUVfUFJFVklPVVModHJpZSwgZGF0YTMyLCBzdGFydCwgc3JjLCBjLCBj
MiwgcmVzdWx0LCB1aW50MzJfdCkKKworLyoqCisgKiBHZXQgYSAxNi1iaXQgdHJpZSB2YWx1ZSBm
cm9tIGEgcGFpciBvZiBzdXJyb2dhdGVzLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJp
ZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFy
YW0gYyAoVUNoYXIsIGluKSBhIGxlYWQgc3Vycm9nYXRlCisgKiBAcGFyYW0gYzIgKFVDaGFyLCBp
bikgYSB0cmFpbCBzdXJyb2dhdGUKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQxNl90LCBvdXQpIHVp
bnQxNl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUg
VVRSSUVfR0VUMTZfRlJPTV9QQUlSKHRyaWUsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9HRVRfRlJP
TV9QQUlSKHRyaWUsIGluZGV4LCBjLCBjMiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBH
ZXQgYSAzMi1iaXQgdHJpZSB2YWx1ZSBmcm9tIGEgcGFpciBvZiBzdXJyb2dhdGVzLgorICoKKyAq
IEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1l
IHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYyAoVUNoYXIsIGluKSBhIGxlYWQgc3Vycm9nYXRl
CisgKiBAcGFyYW0gYzIgKFVDaGFyLCBpbikgYSB0cmFpbCBzdXJyb2dhdGUKKyAqIEBwYXJhbSBy
ZXN1bHQgKHVpbnQzMl90LCBvdXQpIHVpbnQzMl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29r
dXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMzJfRlJPTV9QQUlSKHRyaWUsIGMsIGMy
LCByZXN1bHQpIF9VVFJJRV9HRVRfRlJPTV9QQUlSKHRyaWUsIGRhdGEzMiwgYywgYzIsIHJlc3Vs
dCwgdWludDMyX3QpCisKKy8qKgorICogR2V0IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIGZv
bGRpbmcgb2Zmc2V0IChmcm9tIHRoZSB2YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRlKQorICogYW5k
IGEgdHJhaWwgc3Vycm9nYXRlLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBp
bikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gb2Zm
c2V0IChpbnQzMl90LCBpbikgdGhlIGZvbGRpbmcgb2Zmc2V0IGZyb20gdGhlIHZhbHVlIG9mIGEg
bGVhZCBzdXJyb2dhdGUKKyAqIEBwYXJhbSBjMiAoVUNoYXIsIGluKSBhIHRyYWlsIHN1cnJvZ2F0
ZSAob25seSB0aGUgMTAgbG93IGJpdHMgYXJlIHNpZ25pZmljYW50KQorICogQHJldHVybiAodWlu
dDE2X3QpIHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dFVDE2X0ZST01f
T0ZGU0VUX1RSQUlMKHRyaWUsIG9mZnNldCwgYzIpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGluZGV4
LCBvZmZzZXQsIChjMikmMHgzZmYpCisKKy8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUg
ZnJvbSBhIGZvbGRpbmcgb2Zmc2V0IChmcm9tIHRoZSB2YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRl
KQorICogYW5kIGEgdHJhaWwgc3Vycm9nYXRlLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBV
VHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBA
cGFyYW0gb2Zmc2V0IChpbnQzMl90LCBpbikgdGhlIGZvbGRpbmcgb2Zmc2V0IGZyb20gdGhlIHZh
bHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUKKyAqIEBwYXJhbSBjMiAoVUNoYXIsIGluKSBhIHRyYWls
IHN1cnJvZ2F0ZSAob25seSB0aGUgMTAgbG93IGJpdHMgYXJlIHNpZ25pZmljYW50KQorICogQHJl
dHVybiAodWludDMyX3QpIHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dF
VDMyX0ZST01fT0ZGU0VUX1RSQUlMKHRyaWUsIG9mZnNldCwgYzIpIF9VVFJJRV9HRVRfUkFXKHRy
aWUsIGRhdGEzMiwgb2Zmc2V0LCAoYzIpJjB4M2ZmKQorCisvKiBlbnVtZXJhdGlvbiBjYWxsYmFj
ayB0eXBlcyAqLworCisvKioKKyAqIENhbGxiYWNrIGZyb20gdXRyaWVfZW51bSgpLCBleHRyYWN0
cyBhIHVpbnQzMl90IHZhbHVlIGZyb20gYQorICogdHJpZSB2YWx1ZS4gVGhpcyB2YWx1ZSB3aWxs
IGJlIHBhc3NlZCBvbiB0byB0aGUgVVRyaWVFbnVtUmFuZ2UgZnVuY3Rpb24uCisgKgorICogQHBh
cmFtIGNvbnRleHQgYW4gb3BhcXVlIHBvaW50ZXIsIGFzIHBhc3NlZCBpbnRvIHV0cmllX2VudW0o
KQorICogQHBhcmFtIHZhbHVlIGEgdmFsdWUgZnJvbSB0aGUgdHJpZQorICogQHJldHVybiB0aGUg
dmFsdWUgdGhhdCBpcyB0byBiZSBwYXNzZWQgb24gdG8gdGhlIFVUcmllRW51bVJhbmdlIGZ1bmN0
aW9uCisgKi8KK3R5cGVkZWYgdWludDMyX3QgVV9DQUxMQ09OVgorVVRyaWVFbnVtVmFsdWUoY29u
c3Qgdm9pZCAqY29udGV4dCwgdWludDMyX3QgdmFsdWUpOworCisvKioKKyAqIENhbGxiYWNrIGZy
b20gdXRyaWVfZW51bSgpLCBpcyBjYWxsZWQgZm9yIGVhY2ggY29udGlndW91cyByYW5nZQorICog
b2YgY29kZSBwb2ludHMgd2l0aCB0aGUgc2FtZSB2YWx1ZSBhcyByZXRyaWV2ZWQgZnJvbSB0aGUg
dHJpZSBhbmQKKyAqIHRyYW5zZm9ybWVkIGJ5IHRoZSBVVHJpZUVudW1WYWx1ZSBmdW5jdGlvbi4K
KyAqCisgKiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gY2FuIHN0b3AgdGhlIGVudW1lcmF0aW9uIGJ5
IHJldHVybmluZyBGQUxTRS4KKyAqCisgKiBAcGFyYW0gY29udGV4dCBhbiBvcGFxdWUgcG9pbnRl
ciwgYXMgcGFzc2VkIGludG8gdXRyaWVfZW51bSgpCisgKiBAcGFyYW0gc3RhcnQgdGhlIGZpcnN0
IGNvZGUgcG9pbnQgaW4gYSBjb250aWd1b3VzIHJhbmdlIHdpdGggdmFsdWUKKyAqIEBwYXJhbSBs
aW1pdCBvbmUgcGFzdCB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGEgY29udGlndW91cyByYW5nZSB3
aXRoIHZhbHVlCisgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRoYXQgaXMgc2V0IGZvciBhbGwg
Y29kZSBwb2ludHMgaW4gW3N0YXJ0Li5saW1pdFsKKyAqIEByZXR1cm4gRkFMU0UgdG8gc3RvcCB0
aGUgZW51bWVyYXRpb24KKyAqLwordHlwZWRlZiBVQm9vbCBVX0NBTExDT05WCitVVHJpZUVudW1S
YW5nZShjb25zdCB2b2lkICpjb250ZXh0LCBVQ2hhcjMyIHN0YXJ0LCBVQ2hhcjMyIGxpbWl0LCB1
aW50MzJfdCB2YWx1ZSk7CisKKy8qKgorICogRW51bWVyYXRlIGVmZmljaWVudGx5IGFsbCB2YWx1
ZXMgaW4gYSB0cmllLgorICogRm9yIGVhY2ggZW50cnkgaW4gdGhlIHRyaWUsIHRoZSB2YWx1ZSB0
byBiZSBkZWxpdmVyZWQgaXMgcGFzc2VkIHRocm91Z2gKKyAqIHRoZSBVVHJpZUVudW1WYWx1ZSBm
dW5jdGlvbi4KKyAqIFRoZSB2YWx1ZSBpcyB1bmNoYW5nZWQgaWYgdGhhdCBmdW5jdGlvbiBwb2lu
dGVyIGlzIE5VTEwuCisgKgorICogRm9yIGVhY2ggY29udGlndW91cyByYW5nZSBvZiBjb2RlIHBv
aW50cyB3aXRoIGEgZ2l2ZW4gdmFsdWUsCisgKiB0aGUgVVRyaWVFbnVtUmFuZ2UgZnVuY3Rpb24g
aXMgY2FsbGVkLgorICoKKyAqIEBwYXJhbSB0cmllIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0
cmllIHN0cnVjdHVyZQorICogQHBhcmFtIGVudW1WYWx1ZSBhIHBvaW50ZXIgdG8gYSBmdW5jdGlv
biB0aGF0IG1heSB0cmFuc2Zvcm0gdGhlIHRyaWUgZW50cnkgdmFsdWUsCisgKiAgICAgICAgICAg
ICAgICAgIG9yIE5VTEwgaWYgdGhlIHZhbHVlcyBmcm9tIHRoZSB0cmllIGFyZSB0byBiZSB1c2Vk
IGRpcmVjdGx5CisgKiBAcGFyYW0gZW51bVJhbmdlIGEgcG9pbnRlciB0byBhIGZ1bmN0aW9uIHRo
YXQgaXMgY2FsbGVkIGZvciBlYWNoIGNvbnRpZ3VvdXMgcmFuZ2UKKyAqICAgICAgICAgICAgICAg
ICAgb2YgY29kZSBwb2ludHMgd2l0aCB0aGUgc2FtZSB2YWx1ZQorICogQHBhcmFtIGNvbnRleHQg
YW4gb3BhcXVlIHBvaW50ZXIgdGhhdCBpcyBwYXNzZWQgb24gdG8gdGhlIGNhbGxiYWNrIGZ1bmN0
aW9ucworICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3V0cmllX2VudW0oY29uc3QgVVRyaWUg
KnRyaWUsCisgICAgICAgICAgIFVUcmllRW51bVZhbHVlICplbnVtVmFsdWUsIFVUcmllRW51bVJh
bmdlICplbnVtUmFuZ2UsIGNvbnN0IHZvaWQgKmNvbnRleHQpOworCisvKioKKyAqIFVuc2VyaWFs
aXplIGEgdHJpZSBmcm9tIDMyLWJpdC1hbGlnbmVkIG1lbW9yeS4KKyAqIEludmVyc2Ugb2YgdXRy
aWVfc2VyaWFsaXplKCkuCisgKiBGaWxscyB0aGUgVVRyaWUgcnVudGltZSB0cmllIHN0cnVjdHVy
ZSB3aXRoIHRoZSBzZXR0aW5ncyBmb3IgdGhlIHRyaWUgZGF0YS4KKyAqCisgKiBAcGFyYW0gdHJp
ZSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBkYXRh
IGEgcG9pbnRlciB0byAzMi1iaXQtYWxpZ25lZCBtZW1vcnkgY29udGFpbmluZyB0cmllIGRhdGEK
KyAqIEBwYXJhbSBsZW5ndGggdGhlIG51bWJlciBvZiBieXRlcyBhdmFpbGFibGUgYXQgZGF0YQor
ICogQHBhcmFtIHBFcnJvckNvZGUgYW4gaW4vb3V0IElDVSBVRXJyb3JDb2RlCisgKiBAcmV0dXJu
IHRoZSBudW1iZXIgb2YgYnl0ZXMgYXQgZGF0YSB0YWtlbiB1cCBieSB0aGUgdHJpZSBkYXRhCisg
Ki8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgordXRyaWVfdW5zZXJpYWxpemUoVVRyaWUgKnRy
aWUsIGNvbnN0IHZvaWQgKmRhdGEsIGludDMyX3QgbGVuZ3RoLCBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKTsKKworLyoqCisgKiAiVW5zZXJpYWxpemUiIGEgZHVtbXkgdHJpZS4KKyAqIEEgZHVtbXkg
dHJpZSBpcyBhbiBlbXB0eSBydW50aW1lIHRyaWUsIHVzZWQgd2hlbiBhIHJlYWwgZGF0YSB0cmll
IGNhbm5vdAorICogYmUgbG9hZGVkLgorICoKKyAqIFRoZSBpbnB1dCBtZW1vcnkgaXMgZmlsbGVk
IHNvIHRoYXQgdGhlIHRyaWUgYWx3YXlzIHJldHVybnMgdGhlIGluaXRpYWxWYWx1ZSwKKyAqIG9y
IHRoZSBsZWFkVW5pdFZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cy4KKyAqIFRo
ZSBMYXRpbi0xIHBhcnQgaXMgYWx3YXlzIHNldCB1cCB0byBiZSBsaW5lYXIuCisgKgorICogQHBh
cmFtIHRyaWUgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFy
YW0gZGF0YSBhIHBvaW50ZXIgdG8gMzItYml0LWFsaWduZWQgbWVtb3J5IHRvIGJlIGZpbGxlZCB3
aXRoIHRoZSBkdW1teSB0cmllIGRhdGEKKyAqIEBwYXJhbSBsZW5ndGggdGhlIG51bWJlciBvZiBi
eXRlcyBhdmFpbGFibGUgYXQgZGF0YSAocmVjb21tZW5kZWQgdG8gdXNlIFVUUklFX0RVTU1ZX1NJ
WkUpCisgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIHRoZSBpbml0aWFsIHZhbHVlIHRoYXQgaXMgc2V0
IGZvciBhbGwgY29kZSBwb2ludHMKKyAqIEBwYXJhbSBsZWFkVW5pdFZhbHVlIHRoZSB2YWx1ZSBm
b3IgbGVhZCBzdXJyb2dhdGUgY29kZSBfdW5pdHNfIHRoYXQgZG8gbm90CisgKiAgICAgICAgICAg
ICAgICAgICAgICBoYXZlIGFzc29jaWF0ZWQgc3VwcGxlbWVudGFyeSBkYXRhCisgKiBAcGFyYW0g
cEVycm9yQ29kZSBhbiBpbi9vdXQgSUNVIFVFcnJvckNvZGUKKyAqCisgKiBAc2VlIFVUUklFX0RV
TU1ZX1NJWkUKKyAqIEBzZWUgdXRyaWVfb3BlbgorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9S
VDIKK3V0cmllX3Vuc2VyaWFsaXplRHVtbXkoVVRyaWUgKnRyaWUsCisgICAgICAgICAgICAgICAg
ICAgICAgIHZvaWQgKmRhdGEsIGludDMyX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAg
ICB1aW50MzJfdCBpbml0aWFsVmFsdWUsIHVpbnQzMl90IGxlYWRVbml0VmFsdWUsCisgICAgICAg
ICAgICAgICAgICAgICAgIFVCb29sIG1ha2UxNkJpdFRyaWUsCisgICAgICAgICAgICAgICAgICAg
ICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIERlZmF1bHQgaW1wbGVtZW50
YXRpb24gZm9yIFVUcmllLmdldEZvbGRpbmdPZmZzZXQsIHNldCBhdXRvbWF0aWNhbGx5IGJ5Cisg
KiB1dHJpZV91bnNlcmlhbGl6ZSgpLgorICogU2ltcGx5IHJldHVybnMgdGhlIGxlYWQgc3Vycm9n
YXRlJ3MgdmFsdWUgaXRzZWxmIC0gd2hpY2ggaXMgdGhlIGludmVyc2UKKyAqIG9mIHRoZSBkZWZh
dWx0IGZvbGRpbmcgZnVuY3Rpb24gdXNlZCBieSB1dHJpZV9zZXJpYWxpemUoKS4KKyAqIEV4cG9y
dGVkIGZvciBzdGF0aWMgY29uc3QgVVRyaWUgc3RydWN0dXJlcy4KKyAqCisgKiBAc2VlIFVUcmll
R2V0Rm9sZGluZ09mZnNldAorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0cmllX2Rl
ZmF1bHRHZXRGb2xkaW5nT2Zmc2V0KHVpbnQzMl90IGRhdGEpOworCisvKiBCdWlsZGluZyBhIHRy
aWUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSovCisKKy8qKgorICogQnVpbGQtdGltZSB0cmllIHN0cnVjdHVyZS4KKyAqIE9wYXF1ZSBk
ZWZpbml0aW9uLCBoZXJlIG9ubHkgdG8gbWFrZSBmaWxsSW4gcGFyYW1ldGVycyBwb3NzaWJsZQor
ICogZm9yIHV0cmllX29wZW4oKSBhbmQgdXRyaWVfY2xvbmUoKS4KKyAqLworc3RydWN0IFVOZXdU
cmllIHsKKyAgICAvKioKKyAgICAgKiBJbmRleCB2YWx1ZXMgYXQgYnVpbGQtdGltZSBhcmUgMzIg
Yml0cyB3aWRlIGZvciBlYXNpZXIgcHJvY2Vzc2luZy4KKyAgICAgKiBCaXQgMzEgaXMgc2V0IGlm
IHRoZSBkYXRhIGJsb2NrIGlzIHVzZWQgYnkgbXVsdGlwbGUgaW5kZXggdmFsdWVzIChmcm9tIHV0
cmllX3NldFJhbmdlKCkpLgorICAgICAqLworICAgIGludDMyX3QgaW5kZXhbVVRSSUVfTUFYX0lO
REVYX0xFTkdUSF07CisgICAgdWludDMyX3QgKmRhdGE7CisKKyAgICB1aW50MzJfdCBsZWFkVW5p
dFZhbHVlOworICAgIGludDMyX3QgaW5kZXhMZW5ndGgsIGRhdGFDYXBhY2l0eSwgZGF0YUxlbmd0
aDsKKyAgICBVQm9vbCBpc0FsbG9jYXRlZCwgaXNEYXRhQWxsb2NhdGVkOworICAgIFVCb29sIGlz
TGF0aW4xTGluZWFyLCBpc0NvbXBhY3RlZDsKKworICAgIC8qKgorICAgICAqIE1hcCBvZiBhZGp1
c3RlZCBpbmRleGVzLCB1c2VkIGluIHV0cmllX2NvbXBhY3QoKS4KKyAgICAgKiBNYXBzIGZyb20g
b3JpZ2luYWwgaW5kZXhlcyB0byBuZXcgb25lcy4KKyAgICAgKi8KKyAgICBpbnQzMl90IG1hcFtV
VFJJRV9NQVhfQlVJTERfVElNRV9EQVRBX0xFTkdUSD4+VVRSSUVfU0hJRlRdOworfTsKKwordHlw
ZWRlZiBzdHJ1Y3QgVU5ld1RyaWUgVU5ld1RyaWU7CisKKy8qKgorICogQnVpbGQtdGltZSB0cmll
IGNhbGxiYWNrIGZ1bmN0aW9uLCB1c2VkIHdpdGggdXRyaWVfc2VyaWFsaXplKCkuCisgKiBUaGlz
IGZ1bmN0aW9uIGNhbGN1bGF0ZXMgYSBsZWFkIHN1cnJvZ2F0ZSdzIHZhbHVlIGluY2x1ZGluZyBh
IGZvbGRpbmcgb2Zmc2V0CisgKiBmcm9tIHRoZSAxMDI0IHN1cHBsZW1lbnRhcnkgY29kZSBwb2lu
dHMgW3N0YXJ0Li5zdGFydCsxMDI0WyAuCisgKiBJdCBpcyBVKzEwMDAwIDw9IHN0YXJ0IDw9IFUr
MTBmYzAwIGFuZCAoc3RhcnQmMHgzZmYpPT0wLgorICoKKyAqIFRoZSBmb2xkaW5nIG9mZnNldCBp
cyBwcm92aWRlZCBieSB0aGUgY2FsbGVyLgorICogSXQgaXMgb2Zmc2V0PVVUUklFX0JNUF9JTkRF
WF9MRU5HVEgrbipVVFJJRV9TVVJST0dBVEVfQkxPQ0tfQ09VTlQgd2l0aCBuPTAuLjEwMjMuCisg
KiBJbnN0ZWFkIG9mIHRoZSBvZmZzZXQgaXRzZWxmLCBuIGNhbiBiZSBzdG9yZWQgaW4gMTAgYml0
cyAtCisgKiBvciBmZXdlciBpZiBpdCBjYW4gYmUgYXNzdW1lZCB0aGF0IGZldyBsZWFkIHN1cnJv
Z2F0ZXMgaGF2ZSBhc3NvY2lhdGVkIGRhdGEuCisgKgorICogVGhlIHJldHVybmVkIHZhbHVlIG11
c3QgYmUKKyAqIC0gbm90IHplcm8gaWYgYW5kIG9ubHkgaWYgdGhlcmUgaXMgcmVsZXZhbnQgZGF0
YQorICogICBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgMTAyNCBzdXBwbGVtZW50YXJ5IGNvZGUgcG9p
bnRzCisgKiAtIHN1Y2ggdGhhdCBVVHJpZS5nZXRGb2xkaW5nT2Zmc2V0KFVOZXdUcmllR2V0Rm9s
ZGVkVmFsdWUoLi4uLCBvZmZzZXQpKT09b2Zmc2V0CisgKgorICogQHJldHVybiBhIGZvbGRlZCB2
YWx1ZSwgb3IgMCBpZiB0aGVyZSBpcyBubyByZWxldmFudCBkYXRhIGZvciB0aGUgbGVhZCBzdXJy
b2dhdGUuCisgKi8KK3R5cGVkZWYgdWludDMyX3QgVV9DQUxMQ09OVgorVU5ld1RyaWVHZXRGb2xk
ZWRWYWx1ZShVTmV3VHJpZSAqdHJpZSwgVUNoYXIzMiBzdGFydCwgaW50MzJfdCBvZmZzZXQpOwor
CisvKioKKyAqIE9wZW4gYSBidWlsZC10aW1lIHRyaWUgc3RydWN0dXJlLgorICogVGhlIHNpemUg
b2YgdGhlIGJ1aWxkLXRpbWUgZGF0YSBhcnJheSBpcyBzcGVjaWZpZWQgdG8gYXZvaWQgYWxsb2Nh
dGluZyBhIGxhcmdlCisgKiBhcnJheSBpbiBhbGwgY2FzZXMuIFRoZSBhcnJheSBpdHNlbGYgY2Fu
IGFsc28gYmUgcGFzc2VkIGluLgorICoKKyAqIEFsdGhvdWdoIHRoZSB0cmllIGlzIG5ldmVyIGZ1
bGx5IGV4cGFuZGVkIHRvIGEgbGluZWFyIGFycmF5LCBlc3BlY2lhbGx5IHdoZW4KKyAqIHV0cmll
X3NldFJhbmdlMzIoKSBpcyB1c2VkLCB0aGUgZGF0YSBhcnJheSBjb3VsZCBiZSBsYXJnZSBkdXJp
bmcgYnVpbGQgdGltZS4KKyAqIFRoZSBtYXhpbXVtIGxlbmd0aCBpcworICogVVRSSUVfTUFYX0JV
SUxEX1RJTUVfREFUQV9MRU5HVEg9MHgxMTAwMDArVVRSSUVfREFUQV9CTE9DS19MRU5HVEgrMHg0
MDAuCisgKiAoTnVtYmVyIG9mIFVuaWNvZGUgY29kZSBwb2ludHMgKyBvbmUgYWxsLWluaXRpYWwt
dmFsdWUgYmxvY2sgKworICogIHBvc3NpYmxlIGR1cGxpY2F0ZSBlbnRyaWVzIGZvciAxMDI0IGxl
YWQgc3Vycm9nYXRlcy4pCisgKiAoVVRSSUVfREFUQV9CTE9DS19MRU5HVEg8PTB4MjAwIGluIGFs
bCBjYXNlcy4pCisgKgorICogQHBhcmFtIGZpbGxJbiBhIHBvaW50ZXIgdG8gYSBVTmV3VHJpZSBz
dHJ1Y3R1cmUgdG8gYmUgaW5pdGlhbGl6ZWQgKHdpbGwgbm90IGJlIHJlbGVhc2VkKSwgb3IKKyAq
ICAgICAgICAgICAgICAgTlVMTCBpZiBvbmUgaXMgdG8gYmUgYWxsb2NhdGVkCisgKiBAcGFyYW0g
YWxpYXNEYXRhIGEgcG9pbnRlciB0byBhIGRhdGEgYXJyYXkgdG8gYmUgdXNlZCAod2lsbCBub3Qg
YmUgcmVsZWFzZWQpLCBvcgorICogICAgICAgICAgICAgICAgICBOVUxMIGlmIG9uZSBpcyB0byBi
ZSBhbGxvY2F0ZWQKKyAqIEBwYXJhbSBtYXhEYXRhTGVuZ3RoIHRoZSBjYXBhY2l0eSBvZiBhbGlh
c0RhdGEgKGlmIG5vdCBOVUxMKSBvcgorICogICAgICAgICAgICAgICAgICAgICAgdGhlIGxlbmd0
aCBvZiB0aGUgZGF0YSBhcnJheSB0byBiZSBhbGxvY2F0ZWQKKyAqIEBwYXJhbSBpbml0aWFsVmFs
dWUgdGhlIGluaXRpYWwgdmFsdWUgdGhhdCBpcyBzZXQgZm9yIGFsbCBjb2RlIHBvaW50cworICog
QHBhcmFtIGxlYWRVbml0VmFsdWUgdGhlIHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91
bml0c18gdGhhdCBkbyBub3QKKyAqICAgICAgICAgICAgICAgICAgICAgIGhhdmUgYXNzb2NpYXRl
ZCBzdXBwbGVtZW50YXJ5IGRhdGEKKyAqIEBwYXJhbSBsYXRpbjFMaW5lYXIgYSBmbGFnIGluZGlj
YXRpbmcgd2hldGhlciB0aGUgTGF0aW4tMSByYW5nZSBpcyB0byBiZSBhbGxvY2F0ZWQgYW5kCisg
KiAgICAgICAgICAgICAgICAgICAgIGtlcHQgaW4gYSBsaW5lYXIsIGNvbnRpZ3VvdXMgcGFydCBv
ZiB0aGUgZGF0YSBhcnJheQorICogQHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIGluaXRpYWxpemVk
IGZpbGxJbiBvciB0aGUgYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBuZXcgVU5ld1RyaWUKKyAq
LworVV9DQVBJIFVOZXdUcmllICogVV9FWFBPUlQyCit1dHJpZV9vcGVuKFVOZXdUcmllICpmaWxs
SW4sCisgICAgICAgICAgIHVpbnQzMl90ICphbGlhc0RhdGEsIGludDMyX3QgbWF4RGF0YUxlbmd0
aCwKKyAgICAgICAgICAgdWludDMyX3QgaW5pdGlhbFZhbHVlLCB1aW50MzJfdCBsZWFkVW5pdFZh
bHVlLAorICAgICAgICAgICBVQm9vbCBsYXRpbjFMaW5lYXIpOworCisvKioKKyAqIENsb25lIGEg
YnVpbGQtdGltZSB0cmllIHN0cnVjdHVyZSB3aXRoIGFsbCBlbnRyaWVzLgorICoKKyAqIEBwYXJh
bSBmaWxsSW4gbGlrZSBpbiB1dHJpZV9vcGVuKCkKKyAqIEBwYXJhbSBvdGhlciB0aGUgYnVpbGQt
dGltZSB0cmllIHN0cnVjdHVyZSB0byBjbG9uZQorICogQHBhcmFtIGFsaWFzRGF0YSBsaWtlIGlu
IHV0cmllX29wZW4oKSwKKyAqICAgICAgICAgICAgICAgICAgdXNlZCBpZiBhbGlhc0RhdGFMZW5n
dGg+PShjYXBhY2l0eSBvZiBvdGhlcidzIGRhdGEgYXJyYXkpCisgKiBAcGFyYW0gYWxpYXNEYXRh
TGVuZ3RoIHRoZSBsZW5ndGggb2YgYWxpYXNEYXRhCisgKiBAcmV0dXJuIGEgcG9pbnRlciB0byB0
aGUgaW5pdGlhbGl6ZWQgZmlsbEluIG9yIHRoZSBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkIG5l
dyBVTmV3VHJpZQorICovCitVX0NBUEkgVU5ld1RyaWUgKiBVX0VYUE9SVDIKK3V0cmllX2Nsb25l
KFVOZXdUcmllICpmaWxsSW4sIGNvbnN0IFVOZXdUcmllICpvdGhlciwgdWludDMyX3QgKmFsaWFz
RGF0YSwgaW50MzJfdCBhbGlhc0RhdGFMZW5ndGgpOworCisvKioKKyAqIENsb3NlIGEgYnVpbGQt
dGltZSB0cmllIHN0cnVjdHVyZSwgYW5kIHJlbGVhc2UgbWVtb3J5CisgKiB0aGF0IHdhcyBhbGxv
Y2F0ZWQgYnkgdXRyaWVfb3BlbigpIG9yIHV0cmllX2Nsb25lKCkuCisgKgorICogQHBhcmFtIHRy
aWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQorICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3V0cmll
X2Nsb3NlKFVOZXdUcmllICp0cmllKTsKKworLyoqCisgKiBHZXQgdGhlIGRhdGEgYXJyYXkgb2Yg
YSBidWlsZC10aW1lIHRyaWUuCisgKiBUaGUgZGF0YSBtYXkgYmUgbW9kaWZpZWQsIGJ1dCBlbnRy
aWVzIHRoYXQgYXJlIGVxdWFsIGJlZm9yZQorICogbXVzdCBzdGlsbCBiZSBlcXVhbCBhZnRlciBt
b2RpZmljYXRpb24uCisgKgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQorICog
QHBhcmFtIHBMZW5ndGggKG91dCkgYSBwb2ludGVyIHRvIGEgdmFyaWFibGUgdGhhdCByZWNlaXZl
cyB0aGUgbnVtYmVyCisgKiAgICAgICAgICAgICAgICBvZiBlbnRyaWVzIGluIHRoZSBkYXRhIGFy
cmF5CisgKiBAcmV0dXJuIHRoZSBkYXRhIGFycmF5CisgKi8KK1VfQ0FQSSB1aW50MzJfdCAqIFVf
RVhQT1JUMgordXRyaWVfZ2V0RGF0YShVTmV3VHJpZSAqdHJpZSwgaW50MzJfdCAqcExlbmd0aCk7
CisKKy8qKgorICogU2V0IGEgdmFsdWUgZm9yIGEgY29kZSBwb2ludC4KKyAqCisgKiBAcGFyYW0g
dHJpZSB0aGUgYnVpbGQtdGltZSB0cmllCisgKiBAcGFyYW0gYyB0aGUgY29kZSBwb2ludAorICog
QHBhcmFtIHZhbHVlIHRoZSB2YWx1ZQorICogQHJldHVybiBGQUxTRSBpZiBhIGZhaWx1cmUgb2Nj
dXJyZWQgKGlsbGVnYWwgYXJndW1lbnQgb3IgZGF0YSBhcnJheSBvdmVycnVuKQorICovCitVX0NB
UEkgVUJvb2wgVV9FWFBPUlQyCit1dHJpZV9zZXQzMihVTmV3VHJpZSAqdHJpZSwgVUNoYXIzMiBj
LCB1aW50MzJfdCB2YWx1ZSk7CisKKy8qKgorICogR2V0IGEgdmFsdWUgZnJvbSBhIGNvZGUgcG9p
bnQgYXMgc3RvcmVkIGluIHRoZSBidWlsZC10aW1lIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUg
dGhlIGJ1aWxkLXRpbWUgdHJpZQorICogQHBhcmFtIGMgdGhlIGNvZGUgcG9pbnQKKyAqIEBwYXJh
bSBwSW5CbG9ja1plcm8gaWYgbm90IE5VTEwsIHRoZW4gKnBJbkJsb2NrWmVybyBpcyBzZXQgdG8g
VFJVRQorICogICAgICAgICAgICAgICAgICAgICBpZmYgdGhlIHZhbHVlIGlzIHJldHJpZXZlZCBm
cm9tIGJsb2NrIDA7CisgKiAgICAgICAgICAgICAgICAgICAgIGJsb2NrIDAgaXMgdGhlIGFsbC1p
bml0aWFsLXZhbHVlIGluaXRpYWwgYmxvY2sKKyAqIEByZXR1cm4gdGhlIHZhbHVlCisgKi8KK1Vf
Q0FQSSB1aW50MzJfdCBVX0VYUE9SVDIKK3V0cmllX2dldDMyKFVOZXdUcmllICp0cmllLCBVQ2hh
cjMyIGMsIFVCb29sICpwSW5CbG9ja1plcm8pOworCisvKioKKyAqIFNldCBhIHZhbHVlIGluIGEg
cmFuZ2Ugb2YgY29kZSBwb2ludHMgW3N0YXJ0Li5saW1pdFsuCisgKiBBbGwgY29kZSBwb2ludHMg
YyB3aXRoIHN0YXJ0PD1jPGxpbWl0IHdpbGwgZ2V0IHRoZSB2YWx1ZSBpZgorICogb3ZlcndyaXRl
IGlzIFRSVUUgb3IgaWYgdGhlIG9sZCB2YWx1ZSBpcyAwLgorICoKKyAqIEBwYXJhbSB0cmllIHRo
ZSBidWlsZC10aW1lIHRyaWUKKyAqIEBwYXJhbSBzdGFydCB0aGUgZmlyc3QgY29kZSBwb2ludCB0
byBnZXQgdGhlIHZhbHVlCisgKiBAcGFyYW0gbGltaXQgb25lIHBhc3QgdGhlIGxhc3QgY29kZSBw
b2ludCB0byBnZXQgdGhlIHZhbHVlCisgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlCisgKiBAcGFy
YW0gb3ZlcndyaXRlIGZsYWcgZm9yIHdoZXRoZXIgb2xkIG5vbi1pbml0aWFsIHZhbHVlcyBhcmUg
dG8gYmUgb3ZlcndyaXR0ZW4KKyAqIEByZXR1cm4gRkFMU0UgaWYgYSBmYWlsdXJlIG9jY3VycmVk
IChpbGxlZ2FsIGFyZ3VtZW50IG9yIGRhdGEgYXJyYXkgb3ZlcnJ1bikKKyAqLworVV9DQVBJIFVC
b29sIFVfRVhQT1JUMgordXRyaWVfc2V0UmFuZ2UzMihVTmV3VHJpZSAqdHJpZSwgVUNoYXIzMiBz
dGFydCwgVUNoYXIzMiBsaW1pdCwgdWludDMyX3QgdmFsdWUsIFVCb29sIG92ZXJ3cml0ZSk7CisK
Ky8qKgorICogQ29tcGFjdCB0aGUgYnVpbGQtdGltZSB0cmllIGFmdGVyIGFsbCB2YWx1ZXMgYXJl
IHNldCwgYW5kIHRoZW4KKyAqIHNlcmlhbGl6ZSBpdCBpbnRvIDMyLWJpdCBhbGlnbmVkIG1lbW9y
eS4KKyAqCisgKiBBZnRlciB0aGlzLCB0aGUgdHJpZSBjYW4gb25seSBiZSBzZXJpemFsaXplZCBh
Z2FpbiBhbmQvb3IgY2xvc2VkOworICogbm8gZnVydGhlciB2YWx1ZXMgY2FuIGJlIGFkZGVkLgor
ICoKKyAqIEBzZWUgdXRyaWVfdW5zZXJpYWxpemUoKQorICoKKyAqIEBwYXJhbSB0cmllIHRoZSBi
dWlsZC10aW1lIHRyaWUKKyAqIEBwYXJhbSBkYXRhIGEgcG9pbnRlciB0byAzMi1iaXQtYWxpZ25l
ZCBtZW1vcnkgZm9yIHRoZSB0cmllIGRhdGEKKyAqIEBwYXJhbSBjYXBhY2l0eSB0aGUgbnVtYmVy
IG9mIGJ5dGVzIGF2YWlsYWJsZSBhdCBkYXRhCisgKiBAcGFyYW0gZ2V0Rm9sZGVkVmFsdWUgYSBj
YWxsYmFjayBmdW5jdGlvbiB0aGF0IGNhbGN1bGF0ZXMgdGhlIHZhbHVlIGZvcgorICogICAgICAg
ICAgICAgICAgICAgICAgIGEgbGVhZCBzdXJyb2dhdGUgZnJvbSBhbGwgb2YgaXRzIHN1cHBsZW1l
bnRhcnkgY29kZSBwb2ludHMKKyAqICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhlIGZvbGRp
bmcgb2Zmc2V0OworICogICAgICAgICAgICAgICAgICAgICAgIGlmIE5VTEwsIHRoZW4gYSBkZWZh
dWx0IGZ1bmN0aW9uIGlzIHVzZWQgd2hpY2ggcmV0dXJucyBqdXN0CisgKiAgICAgICAgICAgICAg
ICAgICAgICAgdGhlIGlucHV0IG9mZnNldCB3aGVuIHRoZXJlIGFyZSBhbnkgbm9uLWluaXRpYWwt
dmFsdWUgZW50cmllcworICogQHBhcmFtIHJlZHVjZVRvMTZCaXRzIGZsYWcgZm9yIHdoZXRoZXIg
dGhlIHZhbHVlcyBhcmUgdG8gYmUgcmVkdWNlZCB0byBhCisgKiAgICAgICAgICAgICAgICAgICAg
ICAgd2lkdGggb2YgMTYgYml0cyBmb3Igc2VyaWFsaXphdGlvbiBhbmQgcnVudGltZQorICogQHBh
cmFtIHBFcnJvckNvZGUgYSBVRXJyb3JDb2RlIGFyZ3VtZW50OyBhbW9uZyBvdGhlciBwb3NzaWJs
ZSBlcnJvciBjb2RlczoKKyAqIC0gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IgaWYgdGhlIGRhdGEg
c3RvcmFnZSBibG9jayBpcyB0b28gc21hbGwgZm9yIHNlcmlhbGl6YXRpb24KKyAqIC0gVV9NRU1P
UllfQUxMT0NBVElPTl9FUlJPUiBpZiB0aGUgdHJpZSBkYXRhIGFycmF5IGlzIHRvbyBzbWFsbAor
ICogLSBVX0lOREVYX09VVE9GQk9VTkRTX0VSUk9SIGlmIHRoZSBpbmRleCBvciBkYXRhIGFycmF5
cyBhcmUgdG9vIGxvbmcgYWZ0ZXIgY29tcGFjdGlvbiBmb3Igc2VyaWFsaXphdGlvbgorICoKKyAq
IEByZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyB3cml0dGVuIGZvciB0aGUgdHJpZQorICovCitV
X0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0cmllX3NlcmlhbGl6ZShVTmV3VHJpZSAqdHJpZSwg
dm9pZCAqZGF0YSwgaW50MzJfdCBjYXBhY2l0eSwKKyAgICAgICAgICAgICAgICBVTmV3VHJpZUdl
dEZvbGRlZFZhbHVlICpnZXRGb2xkZWRWYWx1ZSwKKyAgICAgICAgICAgICAgICBVQm9vbCByZWR1
Y2VUbzE2Qml0cywKKyAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKwor
LyoqCisgKiBTd2FwIGEgc2VyaWFsaXplZCBVVHJpZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0NB
UEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0cmllX3N3YXAoY29uc3QgVURhdGFTd2FwcGVyICpkcywK
KyAgICAgICAgICAgY29uc3Qgdm9pZCAqaW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0
RGF0YSwKKyAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qIHNlcmlhbGl6
YXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICovCisKKy8qKgorICogVHJpZSBkYXRhIHN0cnVjdHVyZSBpbiBzZXJpYWxpemVk
IGZvcm06CisgKgorICogVVRyaWVIZWFkZXIgaGVhZGVyOworICogdWludDE2X3QgaW5kZXhbaGVh
ZGVyLmluZGV4TGVuZ3RoXTsKKyAqIHVpbnQxNl90IGRhdGFbaGVhZGVyLmRhdGFMZW5ndGhdOwor
ICogQGludGVybmFsCisgKi8KK3R5cGVkZWYgc3RydWN0IFVUcmllSGVhZGVyIHsKKyAgICAvKiog
IlRyaWUiIGluIGJpZy1lbmRpYW4gVVMtQVNDSUkgKDB4NTQ3MjY5NjUpICovCisgICAgdWludDMy
X3Qgc2lnbmF0dXJlOworCisgICAgLyoqCisgICAgICogb3B0aW9ucyBiaXQgZmllbGQ6CisgICAg
ICogICAgIDkgICAgMT1MYXRpbi0xIGRhdGEgaXMgc3RvcmVkIGxpbmVhcmx5IGF0IGRhdGErVVRS
SUVfREFUQV9CTE9DS19MRU5HVEgKKyAgICAgKiAgICAgOCAgICAwPTE2LWJpdCBkYXRhLCAxPTMy
LWJpdCBkYXRhCisgICAgICogIDcuLjQgICAgVVRSSUVfSU5ERVhfU0hJRlQgICAvLyAwLi5VVFJJ
RV9TSElGVAorICAgICAqICAzLi4wICAgIFVUUklFX1NISUZUICAgICAgICAgLy8gMS4uOQorICAg
ICAqLworICAgIHVpbnQzMl90IG9wdGlvbnM7CisKKyAgICAvKiogaW5kZXhMZW5ndGggaXMgYSBt
dWx0aXBsZSBvZiBVVFJJRV9TVVJST0dBVEVfQkxPQ0tfQ09VTlQgKi8KKyAgICBpbnQzMl90IGlu
ZGV4TGVuZ3RoOworCisgICAgLyoqIGRhdGFMZW5ndGg+PVVUUklFX0RBVEFfQkxPQ0tfTEVOR1RI
ICovCisgICAgaW50MzJfdCBkYXRhTGVuZ3RoOworfSBVVHJpZUhlYWRlcjsKKworLyoqCisgKiBD
b25zdGFudHMgZm9yIHVzZSB3aXRoIFVUcmllSGVhZGVyLm9wdGlvbnMuCisgKiBAaW50ZXJuYWwK
KyAqLworZW51bSB7CisgICAgLyoqIE1hc2sgdG8gZ2V0IHRoZSBVVFJJRV9TSElGVCB2YWx1ZSBm
cm9tIG9wdGlvbnMuICovCisgICAgVVRSSUVfT1BUSU9OU19TSElGVF9NQVNLPTB4ZiwKKworICAg
IC8qKiBTaGlmdCBvcHRpb25zIHJpZ2h0IHRoaXMgbXVjaCB0byBnZXQgdGhlIFVUUklFX0lOREVY
X1NISUZUIHZhbHVlLiAqLworICAgIFVUUklFX09QVElPTlNfSU5ERVhfU0hJRlQ9NCwKKworICAg
IC8qKiBJZiBzZXQsIHRoZW4gdGhlIGRhdGEgKHN0YWdlIDIpIGFycmF5IGlzIDMyIGJpdHMgd2lk
ZS4gKi8KKyAgICBVVFJJRV9PUFRJT05TX0RBVEFfSVNfMzJfQklUPTB4MTAwLAorCisgICAgLyoq
CisgICAgICogSWYgc2V0LCB0aGVuIExhdGluLTEgZGF0YSAoZm9yIFUrMDAwMC4uVSswMGZmKSBp
cyBzdG9yZWQgaW4gdGhlIGRhdGEgKHN0YWdlIDIpIGFycmF5CisgICAgICogYXMgYSBzaW1wbGUs
IGxpbmVhciBhcnJheSBhdCBkYXRhK1VUUklFX0RBVEFfQkxPQ0tfTEVOR1RILgorICAgICAqLwor
ICAgIFVUUklFX09QVElPTlNfTEFUSU4xX0lTX0xJTkVBUj0weDIwMAorfTsKKworVV9DREVDTF9F
TkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0
ZXJhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCmlu
ZGV4IDMxYTNmMDJiM2VjYThlMDUzZGQ1MjUyNTA1MTI1MzVmZTEwYmJiM2IuLjcwNGZhZmNmZDY1
NThhZGE1MWI0MzRjZDI2Mjc5N2E3Yzc1MTA2MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4
dEJyZWFrSXRlcmF0b3IuY3BwCkBAIC0yOSw5ICsyOSw2IEBACiAjaW5jbHVkZSA8d3RmL0F0b21p
Y3MuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKLS8vIEZJWE1FOiBUaGlz
IG5lZWRzIGEgYmV0dGVyIG5hbWUKLSNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQ
TEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMTAwKSkKLQogbmFtZXNwYWNlIFdURiB7CiAKIC8vIEl0ZXJhdG9yIGlu
aXRpYWxpemF0aW9uCkBAIC01OSw2ICs1NiwxMiBAQCBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3Iq
IGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhjb25zdCBjaGFyKiBicmVha1J1bGVzKQogCiAj
ZW5kaWYKIAorI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCitUZXh0QnJlYWtJ
dGVyYXRvciogaXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCBydWxlU2V0KQorewor
ICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCiAKIC8vIEl0ZXJhdG9yIHRleHQgc2V0dGlu
ZwogCkBAIC0xNjUsMTMxICsxNjgsMTQgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJl
YWtJdGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZykKIFRleHRCcmVha0l0ZXJhdG9yKiBjdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogewogI2lmICFQTEFURk9STShJT1Mp
Ci0gICAgLy8gVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0
b3IgcnVsZXMgb2YgSUNVIDU3Ci0gICAgLy8gPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3Jn
L3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCi0g
ICAgLy8gVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxp
c3RlZCBiZWxvdzoKLSAgICAvLyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVh
ayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBN
YXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOwotICAgIC8vICogUmVtb3Zl
ZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVuZCBj
aGFyYWN0ZXJzIChCdWcgMjQzNDIpOwotICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50
IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFn
ZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0
aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lk
dGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgotICAgIC8vICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lv
bmFsIGluZGljYXRvciBzeW1ib2xzLgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBrUnVsZXMgPQot
ICAgICAgICAiJENSICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOyIK
LSAgICAgICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsi
Ci0gICAgICAgICIkQ29udHJvbCA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRy
b2x9XTsiCi0gICAgICAgICIkVm9pY2VNYXJrcyA9IFtcXHVGRjlFXFx1RkY5Rl07IiAvLyBKYXBh
bmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcwotICAgICAgICAiJEV4dGVuZCAg
PSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1xc
dTBFMzAgXFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVCMl1dOyIKLSAgICAgICAgIiRTcGFj
aW5nTWFyayA9IFtbXFxwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRl
bmRdOyIKLSAgICAgICAgIiRMICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
TH1dOyIKLSAgICAgICAgIiRWICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
Vn1dOyIKLSAgICAgICAgIiRUICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
VH1dOyIKLSAgICAgICAgIiRMViAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
TFZ9XTsiCi0gICAgICAgICIkTFZUICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IExWVH1dOyIKLSAgICAgICAgIiRIaW4wICAgID0gW1xcdTA5MDUtXFx1MDkzOV07IiAvLyBEZXZh
bmFnYXJpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEhpblYgICAgPSBcXHUwOTREOyIgLy8g
RGV2YW5hZ2FyaSBTaWduIFZpcmFtYQotICAgICAgICAiJEhpbjEgICAgPSBbXFx1MDkxNS1cXHUw
OTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEJlbjAgICAg
PSBbXFx1MDk4NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAg
ICIkQmVuViAgICA9IFxcdTA5Q0Q7IiAvLyBCZW5nYWxpIFNpZ24gVmlyYW1hCi0gICAgICAgICIk
QmVuMSAgICA9IFtcXHUwOTk1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhh
Ci0gICAgICAgICIkUGFuMCAgICA9IFtcXHUwQTA1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0
dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUGFuViAgICA9IFxcdTBBNEQ7IiAvLyBHdXJtdWtoaSBT
aWduIFZpcmFtYQotICAgICAgICAiJFBhbjEgICAgPSBbXFx1MEExNS1cXHUwQTM5XTsiIC8vIEd1
cm11a2hpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRHdWowICAgID0gW1xcdTBBODUtXFx1
MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRHdWpWICAgID0g
XFx1MEFDRDsiIC8vIEd1amFyYXRpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkR3VqMSAgICA9IFtc
XHUwQTk1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAi
JE9yaTAgICAgPSBbXFx1MEIwNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBBLC4uLixIYQot
ICAgICAgICAiJE9yaVYgICAgPSBcXHUwQjREOyIgLy8gT3JpeWEgU2lnbiBWaXJhbWEKLSAgICAg
ICAgIiRPcmkxICAgID0gW1xcdTBCMTUtXFx1MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIgS2EsLi4u
LEhhCi0gICAgICAgICIkVGVsMCAgICA9IFtcXHUwQzA1LVxcdTBDMzldOyIgLy8gVGVsdWd1IExl
dHRlciBBLC4uLixIYQotICAgICAgICAiJFRlbFYgICAgPSBcXHUwQzREOyIgLy8gVGVsdWd1IFNp
Z24gVmlyYW1hCi0gICAgICAgICIkVGVsMSAgICA9IFtcXHUwQzE0LVxcdTBDMzldOyIgLy8gVGVs
dWd1IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRLYW4wICAgID0gW1xcdTBDODUtXFx1MENC
OV07IiAvLyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEthblYgICAgPSBcXHUw
Q0NEOyIgLy8gS2FubmFkYSBTaWduIFZpcmFtYQotICAgICAgICAiJEthbjEgICAgPSBbXFx1MEM5
NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsMCAg
ICA9IFtcXHUwRDA1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAg
ICAgICAiJE1hbFYgICAgPSBcXHUwRDREOyIgLy8gTWFsYXlhbGFtIFNpZ24gVmlyYW1hCi0gICAg
ICAgICIkTWFsMSAgICA9IFtcXHUwRDE1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBB
LC4uLixIYQotICAgICAgICAiJFJJICAgICAgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIg
Ly8gRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycwotICAgICAgICAiJFpXSiAgICAgPSBcXHUyMDBE
OyIgLy8gWmVybyB3aWR0aCBqb2luZXIKLSAgICAgICAgIiRFbW9qaVZhciA9IFtcXHVGRTBGXTsi
IC8vIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgotI2lmIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVAotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZG
OSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NB
LVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFG
NDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAw
MDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxc
VTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3
IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFG
NkI0LVxcVTAwMDFGNkI2XTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVl
bmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1c
XHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxc
VTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUw
IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFG
NDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAw
MDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxc
VTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEz
IFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4XSA7IiAvLyBF
bW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZWxzZQotICAgICAgICAiJEVt
b2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDhC
XTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAi
JEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUw
MDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1c
XFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2
OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAx
RjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUw
MDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBc
XFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtl
IEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAgICAgICIkRW1vamlNb2RzID0gW1xc
VTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiIC8vIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotICAgICAg
ICAiISFjaGFpbjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIhIVJJ
Tm9DaGFpbjsiCi0jZW5kaWYKLSAgICAgICAgIiEhZm9yd2FyZDsiCi0gICAgICAgICIkQ1IgJExG
OyIKLSAgICAgICAgIiRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7IgotICAgICAgICAiKCRMViB8
ICRWKSAoJFYgfCAkVCk7IgotICAgICAgICAiKCRMVlQgfCAkVCkgJFQ7IgotI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsiCi0gICAg
ICAgICIkUkkgJFJJICRFeHRlbmQqOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJEV4
dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsiCi0jZWxz
ZQotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENv
bnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkk7Igot
ICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4wICRIaW5WICRIaW4xOyIg
Ly8gRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkQmVuMCAkQmVuViAkQmVu
MTsiIC8vIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFBhbjAgJFBhblYgJFBh
bjE7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkR3VqMCAkR3VqViAk
R3VqMTsiIC8vIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRPcmkwICRPcmlW
ICRPcmkxOyIgLy8gT3JpeWEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFRlbDAgJFRlbFYg
JFRlbDE7IiAvLyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEthbjAgJEthblYg
JEthbjE7IiAvLyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRNYWwwICRNYWxW
ICRNYWwxOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRaV0ogJEVt
b2ppRm9yU2VxczsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAg
ICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyIgLy8gRG9uJ3QgYnJlYWsg
YmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3Ip
IGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotICAgICAgICAiISFyZXZlcnNlOyIKLSAgICAgICAg
IiRMRiAkQ1I7IgotICAgICAgICAiKCRMIHwgJFYgfCAkTFYgfCAkTFZUKSAkTDsiCi0gICAgICAg
ICIoJFYgfCAkVCkgKCRMViB8ICRWKTsiCi0gICAgICAgICIkVCAoJExWVCB8ICRUKTsiCi0jaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4
dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRF
eHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayBb
XiRDb250cm9sICRDUiAkTEZdOyIKLSNlbHNlCi0gICAgICAgICIkRXh0ZW5kICAgICAgW14kQ29u
dHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExG
XTsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNl
bmRpZgotICAgICAgICAiJEhpbjEgJEhpblYgJEhpbjA7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAo
YmFja3dhcmQpCi0gICAgICAgICIkQmVuMSAkQmVuViAkQmVuMDsiIC8vIEJlbmdhbGkgVmlyYW1h
IChiYWNrd2FyZCkKLSAgICAgICAgIiRQYW4xICRQYW5WICRQYW4wOyIgLy8gR3VybXVraGkgVmly
YW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRHdWoxICRHdWpWICRHdWowOyIgLy8gR3VqYXJhdGkg
VmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRPcmkxICRPcmlWICRPcmkwOyIgLy8gR3VqYXJh
dGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRUZWwxICRUZWxWICRUZWwwOyIgLy8gVGVs
dWd1IFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkS2FuMSAkS2FuViAkS2FuMDsiIC8vIEth
bm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRNYWwxICRNYWxWICRNYWwwOyIgLy8g
TWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkRW1vamlGb3JTZXFzICRaV0o7
IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlN
b2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4gcmVs
ZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBh
dHJpY2sgbW9kaWZpZXIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEh
c2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIlskRW1vamlWYXIg
JEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7Igot
ICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRF
bW9qaU1vZHNdKzsiOwotI2Vsc2UKLSAgICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRF
bW9qaUZvck1vZHM7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1v
ZHNdKzsiCi0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgICAgICIhIXNhZmVfZm9yd2Fy
ZDsiOwotI2VuZGlmCi0gICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGtSdWxlcyk7CisK
KyAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBpdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxl
U2V0OjpDdXJzb3JNb3ZlbWVudCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yV2l0aFRl
eHQgPSBzZXRUZXh0Rm9ySXRlcmF0b3IoKml0ZXJhdG9yLCBzdHJpbmcpKQorICAgICAgICAgICAg
cmV0dXJuIGl0ZXJhdG9yV2l0aFRleHQ7CisgICAgICAgIHVicmtfY2xvc2UocmVpbnRlcnByZXRf
Y2FzdDxVQnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yKSk7CisgICAgfQorCisgICAgc3RhdGljIFRl
eHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6
ZUl0ZXJhdG9yV2l0aFJ1bGVzKGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyk7CiAjZWxzZSAv
LyBQTEFURk9STShJT1MpCiAgICAgLy8gVXNlIHRoZSBzcGVjaWFsIFRoYWkgY2hhcmFjdGVyIGJy
ZWFrIGl0ZXJhdG9yIGZvciBhbGwgbG9jYWxlcwogICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRv
ciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcihVQlJL
X0NIQVJBQ1RFUiwgInRoIik7CkBAIC0zMTcsNDQyICsyMDMsMjAgQEAgdm9pZCByZWxlYXNlTGlu
ZUJyZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQogICAgIExpbmVCcmVh
a0l0ZXJhdG9yUG9vbDo6c2hhcmVkUG9vbCgpLnB1dChpdGVyYXRvcik7CiB9CiAKLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNFByb2xvZ3VlID0KLSAgICAiISFjaGFpbjsiCi0gICAgIiEhTEJDTU5v
Q2hhaW47IgotICAgICIhIWxvb2tBaGVhZEhhcmRCcmVhazsiOwotCi1zdGF0aWMgY29uc3QgY2hh
ciogdWF4MTRBc3NpZ25tZW50c0JlZm9yZSA9Ci0gICAgLy8gZXhwbGljaXRseSBlbnVtZXJhdGUg
JENKIHNpbmNlIElDVSB2ZXJzaW9ucyBwcmlvciB0byA0OSBkb24ndCBzdXBwb3J0IDpMaW5lQnJl
YWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoKLSAgICAiJENKID0gWyIKLSNpZiAoVV9J
Q1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49
IDkpCi0gICAgIjpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoiCi0jZWxz
ZQotICAgICJcXHUzMDQxXFx1MzA0M1xcdTMwNDVcXHUzMDQ3XFx1MzA0OVxcdTMwNjNcXHUzMDgz
XFx1MzA4NVxcdTMwODdcXHUzMDhFXFx1MzA5NVxcdTMwOTZcXHUzMEExXFx1MzBBM1xcdTMwQTVc
XHUzMEE3IgotICAgICJcXHUzMEE5XFx1MzBDM1xcdTMwRTNcXHUzMEU1XFx1MzBFN1xcdTMwRUVc
XHUzMEY1XFx1MzBGNlxcdTMwRkMiCi0gICAgIlxcdTMxRjBcXHUzMUYxXFx1MzFGMlxcdTMxRjNc
XHUzMUY0XFx1MzFGNVxcdTMxRjZcXHUzMUY3XFx1MzFGOFxcdTMxRjlcXHUzMUZBXFx1MzFGQlxc
dTMxRkNcXHUzMUZEXFx1MzFGRVxcdTMxRkYiCi0gICAgIlxcdUZGNjdcXHVGRjY4XFx1RkY2OVxc
dUZGNkFcXHVGRjZCXFx1RkY2Q1xcdUZGNkRcXHVGRjZFXFx1RkY2RlxcdUZGNzAiCi0jZW5kaWYK
LSAgICAiXTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxv
b3NlQ0pLID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAgICIkRVhfU1VC
ID0gW1xcdTAwMjFcXHUwMDNGXFx1RkYwMVxcdUZGMUZdOyIKLSAgICAiJElEX1NVQiA9ICcnOyIK
LSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAgICIkSVNfU1VCID0gW1xcdTAw
M0FcXHUwMDNCXTsiCi0gICAgIiROU19TVUIgPSBbXFx1MjAzQ1xcdTIwNDdcXHUyMDQ4XFx1MjA0
OVxcdTMwMDVcXHUzMDFDXFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBBMFxcdTMwRkJcXHUzMEZE
XFx1MzBGRVxcdUZGMUFcXHVGRjFCXFx1RkY2NV07IgotICAgICIkUE9fU1VCID0gW1xcdTAwMjVc
XHUwMEEyXFx1MDBCMFxcdTIwMzBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHVGRjA1XFx1RkZFMF07
IgotICAgICIkUFJfU1VCID0gW1xcdTAwMjRcXHUwMEEzXFx1MDBBNVxcdTIwQUNcXHUyMTE2XFx1
RkYwNFxcdUZGRTFcXHVGRkU1XTsiCi0gICAgIiRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVYX1NV
QiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOyIKLSAgICAiJE5TX0FE
RCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9v
c2VOb25DSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7IgotICAg
ICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAg
IiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAwNVxcdTMwM0JcXHUzMDlEXFx1
MzA5RVxcdTMwRkRcXHUzMEZFXTsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIg
PSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKICRJTl9TVUIgJE5TX1NVQl07IgotICAgICIkTlNf
QUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21O
b3JtYWxDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRFWF9T
VUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAg
IiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAxQ1xcdTMwQTBdOyIKLSAgICAi
JFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0og
JEJBX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3Qg
Y2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyA9Ci0gICAgIiRCQV9TVUIg
PSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJ
Tl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsiCi0g
ICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBb
JENKXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRB
c3NpZ25tZW50c0N1c3RvbVN0cmljdENKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRF
WF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0g
ICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIgPSAn
JzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSAnJzsiCi0gICAgIiROU19B
REQgPSBbJENKXTsiOwotCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25D
SksgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLCi0jZGVmaW5lIHVheDE0QXNz
aWdubWVudHNDdXN0b21EZWZhdWx0Q0pLICAgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9y
bWFsQ0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLICAgICB1
YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLCi0KLXN0YXRpYyBjb25zdCBjaGFyKiB1
YXgxNEFzc2lnbm1lbnRzQWZ0ZXIgPQotICAgICIkQUkgPSBbOkxpbmVCcmVhayA9IEFtYmlndW91
czpdOyIKLSAgICAiJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07IgotICAgICIkQkEg
PSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07IgotICAgICIkQkIgPSBb
OkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOyIKLSAgICAiJEJLID0gWzpMaW5lQnJlYWsgPSBN
YW5kYXRvcnlfQnJlYWs6XTsiCi0gICAgIiRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpd
OyIKLSAgICAiJENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07IgotICAgICIk
Q0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07IgotICAgICIkQ00gPSBbOkxp
bmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07IgotICAgICIkQ1AgPSBbOkxpbmVCcmVhayA9IENs
b3NlX1BhcmVudGhlc2lzOl07IgotICAgICIkQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdlX1Jl
dHVybjpdOyIKLSAgICAiJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9T
VUJdOyIKLSAgICAiJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07IgotI2lmIChVX0lDVV9WRVJT
SU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAg
ICAiJEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdfTGV0dGVyOl07IgotI2Vsc2UKLSAgICAiJEhM
ID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsiCi0jZW5kaWYKLSAgICAiJEhZID0gWzpMaW5l
QnJlYWsgPSBIeXBoZW46XTsiCi0gICAgIiRIMiA9IFs6TGluZUJyZWFrID0gSDI6XTsiCi0gICAg
IiRIMyA9IFs6TGluZUJyZWFrID0gSDM6XTsiCi0gICAgIiRJRCA9IFtbW1s6TGluZUJyZWFrID0g
SWRlb2dyYXBoaWM6XSAtICRDSl0gJElEX0FERF0gLSAkSURfU1VCXTsiCi0gICAgIiRJTiA9IFtb
OkxpbmVCcmVhayA9IEluc2VwYXJhYmxlOl0gLSAkSU5fU1VCXTsiCi0gICAgIiRJUyA9IFtbOkxp
bmVCcmVhayA9IEluZml4X051bWVyaWM6XSAtICRJU19TVUJdOyIKLSAgICAiJEpMID0gWzpMaW5l
QnJlYWsgPSBKTDpdOyIKLSAgICAiJEpWID0gWzpMaW5lQnJlYWsgPSBKVjpdOyIKLSAgICAiJEpU
ID0gWzpMaW5lQnJlYWsgPSBKVDpdOyIKLSAgICAiJExGID0gWzpMaW5lQnJlYWsgPSBMaW5lX0Zl
ZWQ6XTsiCi0gICAgIiROTCA9IFs6TGluZUJyZWFrID0gTmV4dF9MaW5lOl07IgotICAgICIkTlMg
PSBbW1tbOkxpbmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRDSl0gJE5TX0FERF0gLSAkTlNfU1VC
XTsiCi0gICAgIiROVSA9IFs6TGluZUJyZWFrID0gTnVtZXJpYzpdOyIKLSAgICAiJE9QID0gWzpM
aW5lQnJlYWsgPSBPcGVuX1B1bmN0dWF0aW9uOl07IgotICAgICIkUE8gPSBbWzpMaW5lQnJlYWsg
PSBQb3N0Zml4X051bWVyaWM6XSAtICRQT19TVUJdOyIKLSAgICAiJFBSID0gW1s6TGluZUJyZWFr
ID0gUHJlZml4X051bWVyaWM6XSAtICRQUl9TVUJdOyIKLSAgICAiJFFVID0gWzpMaW5lQnJlYWsg
PSBRdW90YXRpb246XTsiCi0gICAgIiRSSSA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07Igot
ICAgICIkU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJFNHID0g
WzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsiCi0gICAgIiRTUCA9IFs6TGluZUJyZWFrID0gU3Bh
Y2U6XTsiCi0gICAgIiRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOyIKLSAgICAi
JFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOyIKLSAgICAiJFhYID0gWzpMaW5lQnJl
YWsgPSBVbmtub3duOl07IgotICAgICIkWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsiCi0g
ICAgIiRaV0ogPSBcXHUyMDBEOyIKLSAgICAiJEVtb2ppVmFyID0gXFx1RkUwRjsiCi0jaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1MjY0MCBcXHUy
NjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBc
XFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBcXFUwMDAxRjQ2
Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3MSBcXFUwMDAx
RjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAxRjQ4Ni1cXFUw
MDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUwMDAxRjY0NS1c
XFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBcXFUwMDAxRjZB
MyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNl07IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGlu
IFpXSiBzZXF1ZW5jZXMKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1
MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFG
M0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAw
MDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxc
VTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3
IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFG
NTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAw
MDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4XSA7
IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZWxzZQotICAgICIk
RW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0
OEJdOyIKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUw
MDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBc
XFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2
Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAx
RjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUw
MDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBc
XFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1v
amkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAgIiRFbW9qaU1v
ZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIKLSAgICAiJGRpY3Rpb25hcnkgPSBbOkxp
bmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJEFMUGx1cyA9IFskQUwgJEFJICRT
QSAkU0cgJFhYXTsiCi0gICAgIiRBTGNtID0gJEFMUGx1cyAkQ00qOyIKLSAgICAiJEJBY20gPSAk
QkEgJENNKjsiCi0gICAgIiRCQmNtID0gJEJCICRDTSo7IgotICAgICIkQjJjbSA9ICRCMiAkQ00q
OyIKLSAgICAiJENMY20gPSAkQ0wgJENNKjsiCi0gICAgIiRDUGNtID0gJENQICRDTSo7IgotICAg
ICIkRVhjbSA9ICRFWCAkQ00qOyIKLSAgICAiJEdMY20gPSAkR0wgJENNKjsiCi0gICAgIiRITGNt
ID0gJEhMICRDTSo7IgotICAgICIkSFljbSA9ICRIWSAkQ00qOyIKLSAgICAiJEgyY20gPSAkSDIg
JENNKjsiCi0gICAgIiRIM2NtID0gJEgzICRDTSo7IgotICAgICIkSURjbSA9ICRJRCAkQ00qOyIK
LSAgICAiJElOY20gPSAkSU4gJENNKjsiCi0gICAgIiRJU2NtID0gJElTICRDTSo7IgotICAgICIk
SkxjbSA9ICRKTCAkQ00qOyIKLSAgICAiJEpWY20gPSAkSlYgJENNKjsiCi0gICAgIiRKVGNtID0g
JEpUICRDTSo7IgotICAgICIkTlNjbSA9ICROUyAkQ00qOyIKLSAgICAiJE5VY20gPSAkTlUgJENN
KjsiCi0gICAgIiRPUGNtID0gJE9QICRDTSo7IgotICAgICIkUE9jbSA9ICRQTyAkQ00qOyIKLSAg
ICAiJFBSY20gPSAkUFIgJENNKjsiCi0gICAgIiRRVWNtID0gJFFVICRDTSo7IgotICAgICIkUklj
bSA9ICRSSSAkQ00qOyIKLSAgICAiJFNZY20gPSAkU1kgJENNKjsiCi0gICAgIiRXSmNtID0gJFdK
ICRDTSo7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0Rm9yd2FyZCA9Ci0gICAgIiEhZm9y
d2FyZDsiCi0gICAgIiRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07Igot
ICAgICIkQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOyIKLSAgICAiJEFM
X0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRBTF9GT0xM
T1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRHTCAkT1AgJFFVICRCQSAkSFkg
JE5TICRJTiAkTlUgJEFMUGx1c107IgotICAgICIkQUxfRk9MTE9XID0gWyRBTF9GT0xMT1dfTk9D
TSAkQUxfRk9MTE9XX0NNXTsiCi0gICAgIiRMQjRCcmVha3MgPSBbJEJLICRDUiAkTEYgJE5MXTsi
Ci0gICAgIiRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICROTF07IgotICAgICIkTEI4QnJl
YWtzID0gWyRMQjRCcmVha3MgJFpXXTsiCi0gICAgIiRMQjhOb25CcmVha3MgPSBbWyRMQjROb25C
cmVha3NdIC0gWyRaV11dOyIKLSAgICAiJExCMThOb25CcmVha3MgPSBbJExCOE5vbkJyZWFrcyAt
IFskU1BdXTsiCi0gICAgIiRMQjE4QnJlYWtzID0gWyRMQjhCcmVha3MgJFNQXTsiCi0gICAgIiRM
QjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsiCi0gICAgIiRBTFBsdXMgJENN
KzsiCi0gICAgIiRCQSAkQ00rOyIKLSAgICAiJEJCICRDTSs7IgotICAgICIkQjIgJENNKzsiCi0g
ICAgIiRDTCAkQ00rOyIKLSAgICAiJENQICRDTSs7IgotICAgICIkRVggJENNKzsiCi0gICAgIiRH
TCAkQ00rOyIKLSAgICAiJEhMICRDTSs7IgotICAgICIkSFkgJENNKzsiCi0gICAgIiRIMiAkQ00r
OyIKLSAgICAiJEgzICRDTSs7IgotICAgICIkSUQgJENNKzsiCi0gICAgIiRJTiAkQ00rOyIKLSAg
ICAiJElTICRDTSs7IgotICAgICIkSkwgJENNKzsiCi0gICAgIiRKViAkQ00rOyIKLSAgICAiJEpU
ICRDTSs7IgotICAgICIkTlMgJENNKzsiCi0gICAgIiROVSAkQ00rOyIKLSAgICAiJE9QICRDTSs7
IgotICAgICIkUE8gJENNKzsiCi0gICAgIiRQUiAkQ00rOyIKLSAgICAiJFFVICRDTSs7IgotICAg
ICIkUkkgJENNKzsiCi0gICAgIiRTWSAkQ00rOyIKLSAgICAiJFdKICRDTSs7IgotICAgICIkQ1Ig
JExGIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcz8gJExCNEJyZWFrcyB7MTAwfTsiCi0gICAg
IiRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJENNKyAkTEI0QnJlYWtzIHsx
MDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcyBbJFNQICRaV107IgotICAgICIkQ0FOX0NNICRDTSog
WyRTUCAkWlddOyIKLSAgICAiJENNKyBbJFNQICRaV107IgotICAgICIkRW1vamlGb3JTZXFzICRF
bW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFzOyIKLSAgICAiJENBTl9DTSAk
Q00rOyIKLSAgICAiJENNKzsiCi0gICAgIiRDQU5fQ00gJENNKiAkV0pjbTsiCi0gICAgIiRMQjhO
b25CcmVha3MgJFdKY207IgotICAgICIkQ00rICRXSmNtOyIKLSAgICAiJFdKY20gJENBTlRfQ007
IgotICAgICIkV0pjbSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FOX0NNICRDTSo7Igot
ICAgICIkR0xjbSAkQ0FOVF9DTTsiCi0gICAgIltbJExCOE5vbkJyZWFrc10gLSBbJFNQICRCQSAk
SFldXSAkQ00qICRHTGNtOyIKLSAgICAiJENNKyBHTGNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAk
Q0w7IgotICAgICIkQ0FOX0NNICRDTSogJENMOyIKLSAgICAiJENNKyAkQ0w7IgotICAgICIkTEI4
Tm9uQnJlYWtzICRDUDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ1A7IgotICAgICIkQ00rICRDUDsi
Ci0gICAgIiRMQjhOb25CcmVha3MgJEVYOyIKLSAgICAiJENBTl9DTSAkQ00qICRFWDsiCi0gICAg
IiRDTSsgJEVYOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkSVM7IgotICAgICIkQ0FOX0NNICRDTSog
JElTOyIKLSAgICAiJENNKyAkSVM7IgotICAgICIkTEI4Tm9uQnJlYWtzICRTWTsiCi0gICAgIiRD
QU5fQ00gJENNKiAkU1k7IgotICAgICIkQ00rICRTWTsiCi0gICAgIiRPUGNtICRTUCogJENBTl9D
TSAkQ00qOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOVF9DTTsiCi0gICAgIiRPUGNtICRTUCsgJENN
KyAkQUxfRk9MTE9XPzsiCi0gICAgIiRRVWNtICRTUCogJE9QY207IgotICAgICIoJENMY20gfCAk
Q1BjbSkgJFNQKiAkTlNjbTsiCi0gICAgIiRCMmNtICRTUCogJEIyY207IgotICAgICIkTEIxOE5v
bkJyZWFrcyAkQ00qICRRVWNtOyIKLSAgICAiJENNKyAkUVVjbTsiCi0gICAgIiRRVWNtIC4/OyIK
LSAgICAiJFFVY20gJExCMThOb25CcmVha3MgJENNKjsiCi0gICAgIiRMQjIwTm9uQnJlYWtzICRD
TSogKCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7ICIKLSAgICAiJEJCY20gW14kQ0JdOyIKLSAgICAi
JEJCY20gJExCMjBOb25CcmVha3MgJENNKjsiCi0gICAgIiRITGNtICgkSFljbSB8ICRCQWNtKSBb
XiRDQl0/OyIKLSAgICAiJFNZY20gJEhMY207IgotICAgICIoJEFMY20gfCAkSExjbSkgJElOY207
IgotICAgICIkQ00rICRJTmNtOyIKLSAgICAiJEVYY20gJElOY207IgotICAgICIkSURjbSAkSU5j
bTsiCi0gICAgIiRJTmNtICRJTmNtOyIKLSAgICAiJE5VY20gJElOY207IgotICAgICIkSURjbSAk
UE9jbTsiCi0gICAgIiRBTGNtICROVWNtOyIKLSAgICAiJEhMY20gJE5VY207IgotICAgICIkQ00r
ICROVWNtOyIKLSAgICAiJE5VY20gJEFMY207IgotICAgICIkTlVjbSAkSExjbTsiCi0gICAgIiRQ
UmNtICRJRGNtOyIKLSAgICAiJFBSY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJFBPY20gKCRB
TGNtIHwgJEhMY20pOyIKLSAgICAiKCRQUmNtIHwgJFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICRO
VWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQ
T2NtKT87IgotICAgICIkSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRIMmNtIHwgJEgzY20pOyIKLSAg
ICAiKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNtKTsiCi0gICAgIigkSlRjbSB8ICRIM2Nt
KSAkSlRjbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAk
SU5jbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkUE9j
bTsiCi0gICAgIiRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKTsi
Ci0gICAgIigkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7IgotICAgICIkQ00rICgkQUxj
bSB8ICRITGNtKTsiCi0gICAgIiRJU2NtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIigkQUxjbSB8
ICRITGNtIHwgJE5VY20pICRPUGNtOyIKLSAgICAiJENNKyAkT1BjbTsiCi0gICAgIiRDUGNtICgk
QUxjbSB8ICRITGNtIHwgJE5VY20pOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAg
ICAiJFJJY20gJFJJY207IgotI2VuZGlmCi0gICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAk
RW1vamlNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFJldmVyc2UgPQotICAgICIh
IXJldmVyc2U7IgotICAgICIkQ00rICRBTFBsdXM7IgotICAgICIkQ00rICRCQTsiCi0gICAgIiRD
TSsgJEJCOyIKLSAgICAiJENNKyAkQjI7IgotICAgICIkQ00rICRDTDsiCi0gICAgIiRDTSsgJENQ
OyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkQ00rICRHTDsiCi0gICAgIiRDTSsgJEhMOyIKLSAg
ICAiJENNKyAkSFk7IgotICAgICIkQ00rICRIMjsiCi0gICAgIiRDTSsgJEgzOyIKLSAgICAiJENN
KyAkSUQ7IgotICAgICIkQ00rICRJTjsiCi0gICAgIiRDTSsgJElTOyIKLSAgICAiJENNKyAkSkw7
IgotICAgICIkQ00rICRKVjsiCi0gICAgIiRDTSsgJEpUOyIKLSAgICAiJENNKyAkTlM7IgotICAg
ICIkQ00rICROVTsiCi0gICAgIiRDTSsgJE9QOyIKLSAgICAiJENNKyAkUE87IgotICAgICIkQ00r
ICRQUjsiCi0gICAgIiRDTSsgJFFVOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAg
ICAiJENNKyAkUkk7IgotI2VuZGlmCi0gICAgIiRDTSsgJFNZOyIKLSAgICAiJENNKyAkV0o7Igot
ICAgICIkQ00rOyIKLSAgICAiJEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRMRiAkTkwgJFpX
IHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAkU1BdIHwgWyRB
TCB7ZW9mfV0pKTsiCi0gICAgIlskUFJdIC8gJENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1Ag
e2VvZn1dOyIKLSAgICAiJExCNEJyZWFrcyBbJExCNE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJExC
NEJyZWFrcyAkQ00rICRDQU5fQ007IgotICAgICIkTEYgJENSOyIKLSAgICAiWyRTUCAkWlddIFsk
TEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJFNQICRaV10gJENNKyAkQ0FOX0NNOyIKLSAgICAi
JEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZhcj8gJEVtb2ppRm9yU2Vxczsi
Ci0gICAgIiRDTSsgJENBTl9DTTsiCi0gICAgIiRDTSogJFdKICRDTSogJENBTl9DTTsiCi0gICAg
IiRDTSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ0FOVF9DTSAkQ00qICRXSjsi
Ci0gICAgIiRDTSogJENBTl9DTSAkQ00qICRXSjsiCi0gICAgIiRDTSogJEdMICRDTSogWyRMQjhO
b25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOyIKLSAgICAiJENBTlRfQ00gJENNKiAkR0w7Igot
ICAgICIkQ00qICRDQU5fQ00gJENNKiAkR0w7IgotICAgICIkQ0wgJENNKyAkQ0FOX0NNOyIKLSAg
ICAiJENQICRDTSsgJENBTl9DTTsiCi0gICAgIiRFWCAkQ00rICRDQU5fQ007IgotICAgICIkSVMg
JENNKyAkQ0FOX0NNOyIKLSAgICAiJFNZICRDTSsgJENBTl9DTTsiCi0gICAgIiRDTCBbJExCOE5v
bkJyZWFrcy0kQ01dOyIKLSAgICAiJENQIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkRVgg
WyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRJUyBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAg
ICAiJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJENMICRDUCAkRVggJElTICRTWV0g
JENNKyAkU1ArICRDTSogJE9QOyAiCi0gICAgIiRDTSogJENBTl9DTSAkU1AqICRDTSogJE9QOyIK
LSAgICAiJENBTlRfQ00gJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xMT1c/ICRDTSsgJFNQ
ICRTUCogJENNKiAkT1A7IgotICAgICIkQUxfRk9MTE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9Q
OyIKLSAgICAiJENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAkQ00qICRPUDsiCi0gICAgIiRT
WSAkQ00gJFNQKyAkT1A7IgotICAgICIkQ00qICRPUCAkU1AqICRDTSogJFFVOyIKLSAgICAiJENN
KiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJENNKiAkQjIgJFNQKiAkQ00qICRC
MjsiCi0gICAgIiRDTSogJFFVICRDTSogJENBTl9DTTsiCi0gICAgIiRDTSogJFFVICRMQjE4Tm9u
QnJlYWtzOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFFVOyIKLSAgICAiJENBTlRfQ00gJENN
KiAkUVU7IgotICAgICIkQ00qICgkQkEgfCAkSFkgfCAkTlMpICRDTSogWyRMQjIwTm9uQnJlYWtz
LSRDTV07IgotICAgICIkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dICRDTSogJEJCOyIKLSAgICAi
W14kQ0JdICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7
IgotICAgICIkQ00qICRITCAkQ00qICRTWTsiCi0gICAgIiRDTSogJElOICRDTSogKCRBTFBsdXMg
fCAkSEwpOyIKLSAgICAiJENNKiAkSU4gJENNKiAkRVg7IgotICAgICIkQ00qICRJTiAkQ00qICRJ
RDsiCi0gICAgIiRDTSogJElOICRDTSogJElOOyIKLSAgICAiJENNKiAkSU4gJENNKiAkTlU7Igot
ICAgICIkQ00qICRQTyAkQ00qICRJRDsiCi0gICAgIiRDTSogJE5VICRDTSogKCRBTFBsdXMgfCAk
SEwpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkTlU7IgotICAgICIkQ00qICRJ
RCAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBSOyIKLSAgICAi
JENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87IgotICAgICIoJENNKiAoJFBSIHwgJFBPKSk/
ICgkQ00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRTWSkpKiAkQ00qICROVSAo
JENNKiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87IgotICAgICIkQ00qICgkSDMg
fCAkSDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOyIKLSAgICAiJENNKiAoJEpUIHwgJEpWKSAkQ00q
ICgkSDIgfCAkSlYpOyIKLSAgICAiJENNKiAkSlQgJENNKiAoJEgzIHwgJEpUKTsiCi0gICAgIiRD
TSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7IgotICAgICIkQ00qICRQ
TyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIKLSAgICAiJENNKiAoJEgzIHwg
JEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAk
SEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENN
KiAkSVM7IgotICAgICIkQ00qICRPUCAkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKTsiCi0gICAg
IiRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOyIKLSNpZiBBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQKLSAgICAiJENNKiAkUkkgJENNKiAkUkk7IgotI2VuZGlmCi0gICAgIiRFbW9q
aU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1
YXgxNFNhZmVGb3J3YXJkID0KLSAgICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICJbJENNICRPUCAk
UVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14kQ00gJE9QICRR
VSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07IgotICAgICIkZGljdGlvbmFy
eSAkZGljdGlvbmFyeTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRTYWZlUmV2ZXJzZSA9
Ci0gICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAiJENNKyBbXiRDTSAkQksgJENSICRMRiAkTkwg
JFpXICRTUF07IgotICAgICIkQ00rICRTUCAvIC47IgotICAgICIkU1ArICRDTSogJE9QOyIKLSAg
ICAiJFNQKyAkQ00qICRRVTsiCi0gICAgIiRTUCsgJENNKiAoJENMIHwgJENQKTsiCi0gICAgIiRT
UCsgJENNKiAkQjI7IgotICAgICIkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOyIKLSAgICAiKCRD
TSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsiCi0gICAgIigkQ0wgfCAkQ1ApICRDTSogKCROVSB8
ICRJUyB8ICRTWSk7IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsiOwotCiBzdGF0aWMg
U3RyaW5nIG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKExpbmVCcmVha0l0ZXJhdG9yTW9kZSBt
b2RlLCBib29sIGlzQ0pLKQogewotICAgIFN0cmluZ0J1aWxkZXIgcnVsZXNCdWlsZGVyOwotICAg
IHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRQcm9sb2d1ZSk7Ci0gICAgcnVsZXNCdWlsZGVyLmFw
cGVuZCh1YXgxNEFzc2lnbm1lbnRzQmVmb3JlKTsKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAgICBj
YXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0OgotICAgICAgICBydWxlc0J1aWxkZXIuYXBw
ZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHRDSksgOiB1YXgxNEFzc2ln
bm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1
cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgx
NExvb3NlOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25t
ZW50c0N1c3RvbUxvb3NlQ0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlTm9uQ0pLKTsK
LSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLUnVs
ZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNE5vcm1hbDoKLSAgICAgICAg
cnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxD
SksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7
CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSktS
dWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSktSdWxlczsKICAgICBjYXNl
IExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0U3RyaWN0OgotICAgICAgICBydWxlc0J1aWxkZXIu
YXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSyA6IHVheDE0QXNz
aWdubWVudHNDdXN0b21TdHJpY3ROb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0
dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKS1J1bGVzIDogbGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKS1J1bGVzOwogICAgIH0KLSAgICBydWxlc0J1aWxk
ZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNBZnRlcik7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVu
ZCh1YXgxNEZvcndhcmQpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRSZXZlcnNlKTsK
LSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2FmZUZvcndhcmQpOwotICAgIHJ1bGVzQnVp
bGRlci5hcHBlbmQodWF4MTRTYWZlUmV2ZXJzZSk7Ci0gICAgcmV0dXJuIHJ1bGVzQnVpbGRlci50
b1N0cmluZygpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAiIjsKIH0K
IAogLy8gUmVjb2duaXplIEJDUDQ3IGNvbXBsaWFudCBwcmltYXJ5IGxhbmd1YWdlIHZhbHVlcyBv
ZiAnemgnLCAnamEnLCAna28nCkBAIC03ODYsNiArMjUwLDI0IEBAIFRleHRCcmVha0l0ZXJhdG9y
KiBvcGVuTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUsIExpbmVC
cmVha0l0CiAgICAgaWYgKG1vZGUgPT0gTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTQpCiAgICAg
ICAgIHVicmtJdGVyID0gdWJya19vcGVuKFVCUktfTElORSwgbG9jYWxlSXNFbXB0eSA/IGN1cnJl
bnRUZXh0QnJlYWtMb2NhbGVJRCgpIDogbG9jYWxlLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIDAs
IDAsICZvcGVuU3RhdHVzKTsKICAgICBlbHNlIHsKKyAgICAgICAgQnJlYWtpbmdSdWxlU2V0IHJ1
bGVTZXQ7CisgICAgICAgIHN3aXRjaCAobW9kZSkgeworICAgICAgICBjYXNlIExpbmVCcmVha0l0
ZXJhdG9yTW9kZVVBWDE0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdS
dWxlU2V0OjpVQVgxNENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNExvb3Nl
OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExv
b3NlQ0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTROb3JtYWw6Cisg
ICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFs
Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0U3RyaWN0OgorICAg
ICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdENK
SyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3ROb25DSks7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBpdGVyYXRvckZvclJ1
bGVTZXQocnVsZVNldCkpCisgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3I7CisKICAgICAgICAg
VVBhcnNlRXJyb3IgcGFyc2VTdGF0dXM7CiAgICAgICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRl
cmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7CiAgICAgICAgIHVicmtJdGVyID0gdWJya19v
cGVuUnVsZXMoU3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHJ1bGVz
Lmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaCBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAppbmRleCBkOTAzMjE1YWU0MTM3ZTRjM2E5ZWEzNWIz
ZDAyNWJmNTJlNDUxOGVjLi5kMmQwN2MyOGZiOGQ0MDk5ZWU5NjljMjBmNTg0ODkyMjhmYjAwNzA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCkBAIC0zOCw2ICszOCwz
MCBAQCBlbnVtIExpbmVCcmVha0l0ZXJhdG9yTW9kZSB7CiAgICAgTGluZUJyZWFrSXRlcmF0b3JN
b2RlVUFYMTRTdHJpY3QsCiB9OwogCitlbnVtIGNsYXNzIEJyZWFraW5nUnVsZVNldCB7CisgICAg
Q3Vyc29yTW92ZW1lbnQsCisgICAgVUFYMTRDSkssCisgICAgVUFYMTROb25DSkssCisgICAgVUFY
MTRMb29zZUNKSywKKyAgICBVQVgxNExvb3NlTm9uQ0pLLAorICAgIFVBWDE0Tm9ybWFsQ0pLLAor
ICAgIFVBWDE0Tm9ybWFsTm9uQ0pLLAorICAgIFVBWDE0U3RyaWN0Q0pLLAorICAgIFVBWDE0U3Ry
aWN0Tm9uQ0pLCit9OworCitleHRlcm4gY29uc3QgY2hhciogY3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSktSdWxl
czsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLUnVsZXM7
CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLUnVsZXM7
CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLUnVs
ZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKS1J1
bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25D
SktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKS1J1bGVzOworCitUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3JGb3JSdWxlU2V0KEJy
ZWFraW5nUnVsZVNldCk7CisKIC8vIFRoaXMgaXMgc2ltaWxhciB0byBjaGFyYWN0ZXIgYnJlYWsg
aXRlcmF0b3IgaW4gbW9zdCBjYXNlcywgYnV0IGlzIHN1YmplY3QgdG8KIC8vIHBsYXRmb3JtIFVJ
IGNvbnZlbnRpb25zLiBPbmUgbm90YWJsZSBleGFtcGxlIHdoZXJlIHRoaXMgY2FuIGJlIGRpZmZl
cmVudAogLy8gZnJvbSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgaXMgVGhhaSBwcmVwZW5kIGNo
YXJhY3RlcnMsIHNlZSBidWcgMjQzNDIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tIGIvU291cmNlL1dURi93dGYv
dGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQppbmRleCBiZWY1ZGFh
NjQyODg4MjFlMjBmMjYyOGM2ODU1ZWU4ZTg4YTM4OTJjLi42ZGY4Y2Q2MGQ2ZDI0ZmMxZTAwYzI2
M2Q5N2NkNzRhZjc2NDEyZmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9U
ZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KQEAgLTIxLDEyICsyMSw3
NSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9ySW50
ZXJuYWxJQ1UuaCIKIAorI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCisKKyNpZiBkZWZp
bmVkKFVfU0hPV19DUExVU1BMVVNfQVBJKQorI3VuZGVmIFVfU0hPV19DUExVU1BMVVNfQVBJCisj
ZW5kaWYKKyNkZWZpbmUgVV9TSE9XX0NQTFVTUExVU19BUEkgMQorCisjaW5jbHVkZSA8dW5pY29k
ZS9yYmJpLmg+CisjaW5jbHVkZSA8dW5pY29kZS91ZGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KIAorQGludGVyZmFjZSBXVEZCdW5kbGVGaW5kZXIgOiBOU09iamVjdAorQGVuZAor
CitAaW1wbGVtZW50YXRpb24gV1RGQnVuZGxlRmluZGVyCitAZW5kCisKIG5hbWVzcGFjZSBXVEYg
ewogCiBzdGF0aWMgY29uc3QgaW50IG1heExvY2FsZVN0cmluZ0xlbmd0aCA9IDMyOwogCitUZXh0
QnJlYWtJdGVyYXRvciogaXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCBydWxlU2V0
KQoreworICAgIE5TU3RyaW5nICpmaWxlTmFtZUJhc2U7CisgICAgc3dpdGNoIChydWxlU2V0KSB7
CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50OgorICAgICAgICBmaWxl
TmFtZUJhc2UgPSBAIkN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENKSzoKKyAgICAgICAgZmlsZU5hbWVC
YXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2Ug
PSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksiOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZUNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNl
ID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksiOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZU5vbkNKSzoKKyAgICAgICAgZmlsZU5h
bWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksiOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSks6CisgICAgICAg
IGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSyI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzoK
KyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9u
Q0pLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3Ry
aWN0Q0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFY
MTRTdHJpY3ROb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdE5vbkNKSyI7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIE5TQnVu
ZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6W1dURkJ1bmRsZUZpbmRlciBj
bGFzc11dOworICAgIE5TU3RyaW5nICpwYXRoID0gW2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6Zmls
ZU5hbWVCYXNlIG9mVHlwZTpAImJyayIgaW5EaXJlY3Rvcnk6QCJCcmVha2luZ1J1bGVzIl07Cisg
ICAgaWYgKCFwYXRoKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBOU1N0cmluZyAqZGly
ZWN0b3J5ID0gW3BhdGggc3RyaW5nQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50XTsKKyAgICBV
RXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAgICBMb2NhbFVEYXRhTWVtb3J5
UG9pbnRlciBkYXRhKHVkYXRhX29wZW4oW2RpcmVjdG9yeSBVVEY4U3RyaW5nXSwgImJyayIsIFtm
aWxlTmFtZUJhc2UgVVRGOFN0cmluZ10sICZlcnJvckNvZGUpKTsKKyAgICBpZiAoZXJyb3JDb2Rl
ICE9IFVfWkVST19FUlJPUikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBpdGVy
YXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4oZGF0YS5vcnBo
YW4oKSwgZXJyb3JDb2RlKTsKKyAgICBpZiAoZXJyb3JDb2RlICE9IFVfWkVST19FUlJPUikKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGV4dEJy
ZWFrSXRlcmF0b3IqPihpdGVyYXRvci5yZWxlYXNlKCkpOworfQorCiBzdGF0aWMgaW5saW5lIFJl
dGFpblB0cjxDRlN0cmluZ1JlZj4gdGV4dEJyZWFrTG9jYWxlUHJlZmVyZW5jZSgpCiB7CiAgICAg
UmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBsb2NhbGUgPSBhZG9wdENGKENGUHJlZmVyZW5j
ZXNDb3B5VmFsdWUoQ0ZTVFIoIkFwcGxlVGV4dEJyZWFrTG9jYWxlIiksCmRpZmYgLS1naXQgYS9T
b3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UK
aW5kZXggMjlhMDk2OTAzOGZhYTc0NGUxYThjNThmMzU2YWQwNzNmMDA1MjViZC4uODFmNTRhNTZh
ZDY5NTNkN2IxZTIwYzg4ZmE4NWJiZGRkMWYwN2U4YyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtl
L1dlYktpdEZTLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQpAQCAtMjQs
NiArMjQsNyBAQCBpZiAoTk9UIFRPT0xTX0RJUikKIGVuZGlmICgpCiAKIHNldChERVJJVkVEX1NP
VVJDRVNfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzIikKK3NldChERVJJ
VkVEX1NPVVJDRVNfV1RGX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9X
VEYiKQogc2V0KERFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVIgIiR7Q01BS0VfQklO
QVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUiKQogc2V0KERFUklWRURfU09V
UkNFU19XRUJDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUTEVHQUNZX0RJUiAiJHtDTUFLRV9CSU5B
UllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3kiKQpAQCAtMzIsNiArMzMsOCBAQCBz
ZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9E
SVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9yVUkiKQog
CiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJ
Un0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9KQorZmls
ZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVz
KQogZmlsZShNQUtFX0RJUkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9L1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lKQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VT
X1dFQklOU1BFQ1RPUlVJX0RJUn0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285560</attachid>
            <date>2016-08-08 01:50:23 -0700</date>
            <delta_ts>2016-08-08 01:52:57 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160808014851.patch</filename>
            <type>text/plain</type>
            <size>474949</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
YzY4YzkyYmY5ZDJjMzFiM2RlMTE1MWM3MzkzMDM5ODdjYjIyMmYxLi5iZWZkYTZmNWYwM2JkZWM1
YTc5NDdlZGFhNWNjODMxZTNkYmMxMTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CiAKICAgICAgICAgW0VTNl0gTW9kdWxlIG5hbWVzcGFjZSBvYmplY3Qgc2hvdWxkIG5vdCBh
bGxvdyB1bnNldCBJQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZwppbmRleCBmMjZiMmViZmZlMmNhZGEzN2NjZGFlM2NlZGY2ZWZjODUzYjYx
NmIxLi43ZWNjMzk2ZGQxYWY0NzcwZjY4NTI5YzVjYjhjNTdmMTU5ZjkzMzE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMyIEBACisyMDE2LTA4LTA3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBs
ZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJQ1UgYnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxk
IHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkLgorICAgICAgICAqIHd0Zi9nZW5i
cms6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDogQWRkZWQu
CisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQ6IEFkZGVk
LgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ6
IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdURjo6aXRl
cmF0b3JGb3JSdWxlU2V0KToKKyAgICAgICAgKFdURjo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6
CisgICAgICAgIChXVEY6Om9wZW5MaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgICogd3RmL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3IuaDoKKyAgICAgICAgKiB3dGYvdGV4dC9tYWMvVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbToKKyAgICAgICAgKFdURjo6aXRlcmF0b3JGb3JSdWxl
U2V0KToKKwogMjAxNi0wOC0wNiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFdURiBuZWVkcyBhIHZhcmlhbnQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggZTMwZGM5ZTRkMDIwMzYyMGIxNGNhMjI4YjRlYjJiYjRmZGVjZWYwZC4u
MWFiZTQ3YzI0NjRkYTg5OGZhZDUzMGFjYzMyNjM3YzhiZGE2MmM3YyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTExMDksNiArMTEwOSw3IEBACiAJCTE0Rjk3NDQ3MTM4Qzg1M0Uw
MERBMUM2NyAvKiBIZWFwUm9vdFZpc2l0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE0Rjk3NDQ2MTM4Qzg1M0UwMERBMUM2NyAvKiBIZWFwUm9vdFZp
c2l0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkxQTI4RDRBODE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTI4RDRBNzE3N0I3MUM4
MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUFDRjczNzcxNzFDQTZGQjAwQzlCQjFFIC8qIFdl
YWsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFD
RjczNzYxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwICovOyB9OworCQkxQ0QxODc5MDFENTU5
NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5n
UnVsZXMgKi87IH07CiAJCTI2MDBCNUE2MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5l
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAw
QjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovOyB9OwogCQkyNjAw
QjVBNzE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAv
KiBKU1N0cmluZ0pvaW5lci5oICovOyB9OwogCQkyNjJEODVCNjFDMEQ2NTBGMDA2QUNCNjEgLyog
QWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MkQ4NUI0MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQ
YXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovOyB9OwpAQCAtMzI3Miw2ICszMjczLDcgQEAKIAkJ
MUM5MDUxNDUwQkE5RThBNzAwODFFOUQwIC8qIEJhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNBQThCNEEwRDMyQzM5QTAwNDFCQ0ZGIC8qIEphdmFTY3JpcHQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNjcmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQ0FBOEI0QjBEMzJDMzlBMDA0MUJDRkYgLyogSmF2YVNjcmlwdENvcmUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNjcmlwdENvcmUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFr
aW5nUnVsZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBmb2xkZXI7IG5hbWUgPSBCcmVha2luZ1J1bGVzOyBwYXRoID0gLi4vV1RGL0JyZWFraW5nUnVs
ZXM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1
RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1N0cmluZ0pvaW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2
MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0cmluZ0pvaW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyNjJEODVCNDFDMEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lz
dGVyU3RhbGxzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFpckZp
eFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRml4UGFydGlhbFJl
Z2lzdGVyU3RhbGxzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU0MzgsNiAr
NTQ0MCw3IEBACiAJCTY1MEZERjhEMDlEMEZDQTcwMDc2OUU1NCAvKiBEZXJpdmVkIFNvdXJjZXMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzhG
MUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovLAogCQkJCTBGNjE4MzMyMUM0NUYz
NUMwMDcyNDUwQiAvKiBBaXJPcGNvZGUuaCAqLywKIAkJCQkwRjYxODMzNDFDNDVGM0I2MDA3MjQ1
MEIgLyogQWlyT3Bjb2RlR2VuZXJhdGVkLmggKi8sCiAJCQkJMEY2MTgzMzUxQzQ1RjNCNjAwNzI0
NTBCIC8qIEFpck9wY29kZVV0aWxzLmggKi8sCkBAIC04NDU3LDYgKzg0NjAsNyBAQAogCQkJYnVp
bGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUE1M0YxQUMwMThD
OTBGOEYwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgaW4gUmVzb3VyY2VzICovLAorCQkJCTFDRDE4
NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGluIFJlc291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiYTgwNDA2YjY4Nzg3
MmNkYzJlM2U4MTZiZWIwMDQzYTkzOWMyNzAuLjBjMzhhMjcxNmUyNzI3ZmI5Yzk3YjBiMjNhYjQ2
NzdiNDlmY2QxZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNyw2ICs3LDE4IEBACiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQWdncmVnYXRlVGFy
Z2V0IHNlY3Rpb24gKi8KKwkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291
cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmln
dXJhdGlvbkxpc3QgPSAxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJh
dGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi87CisJ
CQlidWlsZFBoYXNlcyA9ICgKKwkJCQkxQ0QxODc4MjFENTU2OTVDMDBDQzdERUMgLyogR2VuZXJh
dGUgRGVyaXZlZCBTb3VyY2VzICovLAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCQlD
MkJBNTQzQjFENTcyQkVCMDAwQTMzMzIgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKKwkJCSk7
CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwcm9kdWN0TmFtZSA9ICJDb3B5IFdU
RiBIZWFkZXJzIjsKKwkJfTsKIAkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RG
IEhlYWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CiAJCQlidWlsZENv
bmZpZ3VyYXRpb25MaXN0ID0gNjVBRkEyODgxNjMwQjk3NzAwM0Q3MjNDIC8qIEJ1aWxkIGNvbmZp
Z3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJDb3B5IFdURiBIZWFkZXJzIiAq
LzsKQEAgLTMxMiw2ICszMjQsMjAgQEAKIAkJQThBNDc0ODcxNTFBODI1QjAwNDEyM0ZGIC8qIFdU
RlRocmVhZERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QTQ3MzdCMTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggKi87IH07CiAJ
CUE4QTQ3NDhDMTUxQTgyNjQwMDQxMjNGRiAvKiBjb25maWcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAvKiBj
b25maWcuaCAqLzsgfTsKIAkJQjM4RkQ3QkQxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZp
bmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMzhG
RDdCQzE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCAqLzsgfTsKKwkJQzJCQTU0
MjUxRDU3MjVDNDAwMEEzMzMyIC8qIGdlbmJyay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkJBNTQxODFENTcyNTkwMDAwQTMzMzIgLyogZ2VuYnJr
LmNwcCAqLzsgfTsKKwkJQzJCQTU0MzMxRDU3MjkzODAwMEEzMzMyIC8qIHVvcHRpb25zLmMgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkJBNTQzMjFENTcy
OTM4MDAwQTMzMzIgLyogdW9wdGlvbnMuYyAqLzsgfTsKKwkJQzJCQTU0MzYxRDU3MjlGRjAwMEEz
MzMyIC8qIHVuZXdkYXRhLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMkJBNTQzNTFENTcyOUZGMDAwQTMzMzIgLyogdW5ld2RhdGEuYyAqLzsgfTsKKwkJ
QzJCQTU0MzkxRDU3MkFGODAwMEEzMzMyIC8qIGZpbGVzdHJtLmMgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkJBNTQzODFENTcyQUY4MDAwQTMzMzIgLyog
ZmlsZXN0cm0uYyAqLzsgfTsKKwkJQzJCQTU0M0UxRDU4NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNv
cmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLzsgfTsKKwkJ
QzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdF
MDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLzsg
fTsKKwkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJD
QTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwICov
OyB9OworCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VDSksuY3BwICovOyB9OworCQlDMkNBMzdFQzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovOyB9OworCQlDMkNBMzdFRDFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNDFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VFMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U1MUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLzsgfTsK
KwkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksuY3BwICovOyB9OworCQlDMkNBMzdGMDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YxMUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U4MUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLzsgfTsKIAkJ
QzRGOEE5MzcxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzRGOEE5MzYxOUM2NUVCNDAwQjJCMTVEIC8q
IFN0b3B3YXRjaC5oICovOyB9OwogCQlDRDU0OTdBQzE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFU
aW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovOyB9OwogCQlDRDU0OTdB
RDE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU0OTdBQjE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFU
aW1lLmggKi87IH07CkBAIC0zNDQsNiArMzcwLDEzIEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmlu
ZyA9IDVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NjsKIAkJCXJlbW90ZUluZm8gPSBXVEY7CiAJCX07
CisJCTFDRDE4Nzg3MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8g
PSB7CisJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250YWluZXJQb3J0YWwg
PSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94
eVR5cGUgPSAxOworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSAxQ0QxODc4MTFENTU2OTVDMDBD
QzdERUM7CisJCQlyZW1vdGVJbmZvID0gIkRlcml2ZWQgU291cmNlcyI7CisJCX07CiAJCTY1QUZB
MjhEMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlp
c2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CiAJCQljb250YWluZXJQb3J0YWwgPSA1RDI0N0I1
OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBvYmplY3QgKi87CkBAIC0zNTEsOCArMzg0LDI3
IEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQzsK
IAkJCXJlbW90ZUluZm8gPSAiQ29weSBIZWFkZXJzIjsKIAkJfTsKKwkJQzJCQTU0M0ExRDU3MkJF
QjAwMEEzMzMyIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENv
bnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYw
MEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1v
dGVHbG9iYWxJRFN0cmluZyA9IEMyQkE1NDFDMUQ1NzI1QjQwMDBBMzMzMjsKKwkJCXJlbW90ZUlu
Zm8gPSBnZW5icms7CisJCX07CiAvKiBFbmQgUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24g
Ki8KIAorLyogQmVnaW4gUEJYQ29weUZpbGVzQnVpbGRQaGFzZSBzZWN0aW9uICovCisJCUMyQkE1
NDFCMUQ1NzI1QjQwMDBBMzMzMiAvKiBDb3B5RmlsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhDb3B5
RmlsZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWRz
dFBhdGggPSAvdXNyL3NoYXJlL21hbi9tYW4xLzsKKwkJCWRzdFN1YmZvbGRlclNwZWMgPSAwOwor
CQkJZmlsZXMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDE7CisJCX07CisvKiBFbmQgUEJYQ29weUZpbGVzQnVpbGRQaGFzZSBzZWN0aW9uICovCisK
IC8qIEJlZ2luIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCQkwRjBEODVCMzE3MjM0Q0Ix
MDAzMzgyMTAgLyogTm9Mb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vTG9jay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjJCNjZBNDE3QjZCNEY3MDBBN0FFM0YgLyogRGVmZXJyYWJs
ZVJlZkNvdW50ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVmZXJyYWJsZVJlZkNvdW50ZWQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzNiw2ICs0ODgsMTggQEAKIAkJMUMxODFDOEQx
RDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM4RTFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92
aWRlclVURjE2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlk
ZXJVVEYxNi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM5NTFEMzA4MDBB
MDBGNUZBMTYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJ
Q1VNYWMubW07IHBhdGggPSBtYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQ0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
Sy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
Sy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5
RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDQjRGQjk4MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkx
RDU1OUFFRjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25D
SksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUNCNEZCOUMxRDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9y
RXBpbG9ndWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBp
bG9ndWUudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQz
MDBDQzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMu
bWFrZTsgcGF0aCA9IHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB1c2VzVGFicyA9IDE7IH07CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUw
MENDN0RFQyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUZBNDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAv
KiBXZWJDb3JlVGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
cmVUaHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NE
QzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNjU4LDYgKzcyMiwzMyBAQAogCQlBOEE0NzM3QjE1MUE4MjVC
MDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXVEZUaHJlYWREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3
NDhCMTUxQTgyNjQwMDQxMjNGRiAvKiBjb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JD
MTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMkJBNTQxODFENTcyNTkwMDAwQTMzMzIgLyogZ2VuYnJrLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IGdlbmJyay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDFE
MUQ1NzI1QjQwMDBBMzMzMiAvKiBnZW5icmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgcGF0aCA9IGdlbmJyazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKKwkJQzJCQTU0MjYxRDU3MjY3QzAwMEEzMzMyIC8qIHVvcHRpb25zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVvcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQkE1NDI3MUQ1NzI2ODkwMDBBMzMzMiAvKiB1bmV3ZGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1bmV3ZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDMkJBNTQyODFENTcyNkIwMDAwQTMzMzIgLyogdWNtbmRhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdWNtbmRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzJCQTU0MjkxRDU3MjZCQzAwMEEzMzMyIC8qIHJiYmlkYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHJiYmlkYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUMyQkE1NDJBMUQ1NzI2QzUwMDBBMzMzMiAvKiBjbWVtb3J5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNtZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzJCQTU0MkIxRDU3MjZFODAwMEEzMzMyIC8qIHVtYXBmaWxlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVtYXBmaWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUMyQkE1NDJDMUQ1NzI3MDkwMDBBMzMzMiAvKiBwdXRpbGltcC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwdXRpbGltcC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDMkJBNTQyRDFENTcyNzI0MDAwQTMzMzIgLyogdWRhdGFzd3AuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdWRhdGFzd3AuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MkUxRDU3MjczQjAwMEEzMzMyIC8qIHVtdXRleC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1bXV0ZXguaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzJCQTU0MkYxRDU3Mjc0QzAwMEEzMzMyIC8qIHV0cmllLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHV0cmllLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUMyQkE1NDMyMUQ1NzI5MzgwMDBBMzMzMiAvKiB1b3B0aW9ucy5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IHBhdGggPSB1b3B0aW9ucy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMkJBNTQzNDFENTcyOUE5MDAwQTMzMzIgLyogY3N0cmluZy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBjc3RyaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUMyQkE1NDM1MUQ1NzI5RkYwMDBBMzMzMiAvKiB1bmV3ZGF0YS5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IHBhdGggPSB1bmV3ZGF0YS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMkJBNTQzNzFENTcyQTJEMDAwQTMzMzIgLyogZmlsZXN0cm0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gZmlsZXN0cm0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJCQTU0MzgxRDU3MkFGODAwMEEzMzMyIC8qIGZpbGVzdHJtLmMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IGZpbGVzdHJtLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQkE1NDNGMUQ1ODc0RTYwMDBBMzMzMiAvKiBHZW5lcmF0ZUJyZWFraW5nUnVs
ZVN0cmluZ3MucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmlu
Z3MucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UwMUQ1NUM5NzEwMDQ4
NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgcGF0
aCA9IEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VO
b25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNB
MzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0Ez
N0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3RDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDMkNBMzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlh
VGltZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRpbWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY4OCw3ICs3NzksNyBAQAogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTE0NDdBRUM2MThGQ0U1Nzcw
MEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTE0
NDdBRUNCMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3Mg
Ki8sCisJCQkJQzJCQTU0M0UxRDU4NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4g
RnJhbWV3b3JrcyAqLywKIAkJCQkxNDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEg
aW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKQEAgLTcwMSw2ICs3OTIsMTQgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJQzJCQTU0MUExRDU3MjVCNDAwMEEz
MzMyIC8qIEZyYW1ld29ya3MgKi8gPSB7CisJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFz
ZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQkx
NDQ3QUVDQjE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtz
ICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwor
CQl9OwogLyogRW5kIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAogLyogQmVn
aW4gUEJYR3JvdXAgc2VjdGlvbiAqLwpAQCAtNzI1LDYgKzgyNCwyNSBAQAogCQkJcGF0aCA9IGlj
dTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTFDRDE4NzkxMUQ1NTk4RTEw
MENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQlDMkJBNTQzRjFENTg3NEU2MDAwQTMzMzIgLyogR2VuZXJhdGVCcmVh
a2luZ1J1bGVTdHJpbmdzLnB5ICovLAorCQkJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBD
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFDRDE4NzkzMUQ1NTk5NjUw
MENDN0RFQyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLywKKwkJCQkxQ0I0RkI5
NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8sCisJ
CQkJMUNCNEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25D
SksudHh0ICovLAorCQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk4
MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAq
LywKKwkJCQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJCTFDQjRGQjlCMUQ1NTlC
M0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLywK
KwkJCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1
ZS50eHQgKi8sCisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTc0NiwxMCArODY0
LDEyIEBACiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2
ZWRTb3VyY2VzLm1ha2UgKi8sCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAwRTc4Qjc2IC8qIENvbmZp
Z3VyYXRpb25zICovLAogCQkJCTE0MDIyRjNGMThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMg
Ki8sCiAJCQkJNUQyNDdCNjMxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2R1Y3RzICovLAogCQkJCTVE
MjQ3Qjc2MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJCQkJQzJDQTM3REYxRDU1QzhE
ODAwNDg2Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3MDBC
M0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVCOTAw
QjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtNzYwLDYgKzg4MCw3IEBA
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxNDQ3QUVCRTE4RkNFNTY5MDBCM0Q3RkYgLyogbGlibWJt
YWxsb2MuZHlsaWIgKi8sCiAJCQkJNUQyNDdCNjIxNDY4OUI4NjAwRTc4Qjc2IC8qIGxpYldURi5h
ICovLAorCQkJCUMyQkE1NDFEMUQ1NzI1QjQwMDBBMzMzMiAvKiBnZW5icmsgKi8sCiAJCQkpOwog
CQkJbmFtZSA9IFByb2R1Y3RzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEwODMs
NiArMTIwNCw4IEBACiAJCUE4QTQ3MzFCMTUxQTgyNUIwMDQxMjNGRiAvKiB0ZXh0ICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDMkJBNTQxNzFENTcyNTkw
MDAwQTMzMzIgLyogZ2VuYnJrICovLAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBC
cmVha2luZ1J1bGVzICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3UgKi8s
CiAJCQkJQTVCQTE1RjYxODI0MzU5RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCUE1QkExNUYxMTgy
NDMzOUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMTU4LDYgKzEyODEsNDcgQEAKIAkJCXBhdGgg
PSBpY3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkJBNTQxNzFENTcy
NTkwMDAwQTMzMzIgLyogZ2VuYnJrICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGls
ZHJlbiA9ICgKKwkJCQlDMkJBNTQxODFENTcyNTkwMDAwQTMzMzIgLyogZ2VuYnJrLmNwcCAqLywK
KwkJCQlDMkJBNTQzMjFENTcyOTM4MDAwQTMzMzIgLyogdW9wdGlvbnMuYyAqLywKKwkJCQlDMkJB
NTQzNTFENTcyOUZGMDAwQTMzMzIgLyogdW5ld2RhdGEuYyAqLywKKwkJCQlDMkJBNTQzODFENTcy
QUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyAqLywKKwkJCQlDMkJBNTQyNjFENTcyNjdDMDAwQTMz
MzIgLyogdW9wdGlvbnMuaCAqLywKKwkJCQlDMkJBNTQyNzFENTcyNjg5MDAwQTMzMzIgLyogdW5l
d2RhdGEuaCAqLywKKwkJCQlDMkJBNTQyODFENTcyNkIwMDAwQTMzMzIgLyogdWNtbmRhdGEuaCAq
LywKKwkJCQlDMkJBNTQyOTFENTcyNkJDMDAwQTMzMzIgLyogcmJiaWRhdGEuaCAqLywKKwkJCQlD
MkJBNTQyQTFENTcyNkM1MDAwQTMzMzIgLyogY21lbW9yeS5oICovLAorCQkJCUMyQkE1NDJCMUQ1
NzI2RTgwMDBBMzMzMiAvKiB1bWFwZmlsZS5oICovLAorCQkJCUMyQkE1NDJDMUQ1NzI3MDkwMDBB
MzMzMiAvKiBwdXRpbGltcC5oICovLAorCQkJCUMyQkE1NDJEMUQ1NzI3MjQwMDBBMzMzMiAvKiB1
ZGF0YXN3cC5oICovLAorCQkJCUMyQkE1NDJFMUQ1NzI3M0IwMDBBMzMzMiAvKiB1bXV0ZXguaCAq
LywKKwkJCQlDMkJBNTQyRjFENTcyNzRDMDAwQTMzMzIgLyogdXRyaWUuaCAqLywKKwkJCQlDMkJB
NTQzNDFENTcyOUE5MDAwQTMzMzIgLyogY3N0cmluZy5oICovLAorCQkJCUMyQkE1NDM3MUQ1NzJB
MkQwMDBBMzMzMiAvKiBmaWxlc3RybS5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBnZW5icms7CisJ
CQlwYXRoID0gQnJlYWtpbmdSdWxlcy9nZW5icms7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OworCQlDMkNBMzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFE
NTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJ
CQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5j
cHAgKi8sCisJCQkJQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTQxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwICovLAorCQkJ
CUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwICovLAorCQkJCUMyQ0Ez
N0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV1RGOworCQkJc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsK
KwkJfTsKIAkJQ0U0NjUxNkMxOURCMUZCNDAwM0VDQTA1IC8qIGNvY29hICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE0NzAsNiArMTYzNCw3IEBACiAJCQli
dWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCQkxQ0QxODc4ODFE
NTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2
MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1l
ID0gV1RGOwpAQCAtMTQ3Nyw2ICsxNjQyLDIzIEBACiAJCQlwcm9kdWN0UmVmZXJlbmNlID0gNUQy
NDdCNjIxNDY4OUI4NjAwRTc4Qjc2IC8qIGxpYldURi5hICovOwogCQkJcHJvZHVjdFR5cGUgPSAi
Y29tLmFwcGxlLnByb2R1Y3QtdHlwZS5saWJyYXJ5LnN0YXRpYyI7CiAJCX07CisJCUMyQkE1NDFD
MUQ1NzI1QjQwMDBBMzMzMiAvKiBnZW5icmsgKi8gPSB7CisJCQlpc2EgPSBQQlhOYXRpdmVUYXJn
ZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gQzJCQTU0MjExRDU3MjVCNDAwMEEzMzMy
IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJnZW5icmsi
ICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJCQkJQzJCQTU0MTkxRDU3MjVCNDAwMEEzMzMyIC8q
IFNvdXJjZXMgKi8sCisJCQkJQzJCQTU0MUExRDU3MjVCNDAwMEEzMzMyIC8qIEZyYW1ld29ya3Mg
Ki8sCisJCQkJQzJCQTU0MUIxRDU3MjVCNDAwMEEzMzMyIC8qIENvcHlGaWxlcyAqLywKKwkJCSk7
CisJCQlidWlsZFJ1bGVzID0gKAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJ
CQluYW1lID0gZ2VuYnJrOworCQkJcHJvZHVjdE5hbWUgPSBnZW5icms7CisJCQlwcm9kdWN0UmVm
ZXJlbmNlID0gQzJCQTU0MUQxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLzsKKwkJCXByb2R1
Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUudG9vbCI7CisJCX07CiAvKiBFbmQgUEJY
TmF0aXZlVGFyZ2V0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYUHJvamVjdCBzZWN0aW9uICov
CkBAIC0xNDg1LDYgKzE2NjcsMTEgQEAKIAkJCWF0dHJpYnV0ZXMgPSB7CiAJCQkJTGFzdFN3aWZ0
VXBkYXRlQ2hlY2sgPSAwNzAwOwogCQkJCUxhc3RVcGdyYWRlQ2hlY2sgPSAwNzAwOworCQkJCVRh
cmdldEF0dHJpYnV0ZXMgPSB7CisJCQkJCUMyQkE1NDFDMUQ1NzI1QjQwMDBBMzMzMiA9IHsKKwkJ
CQkJCUNyZWF0ZWRPblRvb2xzVmVyc2lvbiA9IDcuMy4xOworCQkJCQl9OworCQkJCX07CiAJCQl9
OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDVEMjQ3QjVDMTQ2ODlCODYwMEU3OEI3NiAv
KiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldURiIgKi87CiAJCQlj
b21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAzLjIiOwpAQCAtMTUwMCwxMiArMTY4NywyOCBA
QAogCQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICov
LAogCQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovLAor
CQkJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJ
MTQ0N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFsbG9jICovLAorCQkJCUMyQkE1NDFDMUQ1
NzI1QjQwMDBBMzMzMiAvKiBnZW5icmsgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2pl
Y3Qgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlv
biAqLworCQkxQ0QxODc4MjFENTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3Vy
Y2VzICovID0geworCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0
aHMgPSAoCisJCQkpOworCQkJbmFtZSA9ICJHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMiOworCQkJ
b3V0cHV0UGF0aHMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAibWtk
aXIgLXAgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcbmNkIFwi
JHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURlwiXG5cbi9iaW4vbG4gLXNm
aCBcIiR7U1JDUk9PVH1cIiBXVEZcbmV4cG9ydCBXVEY9XCJXVEZcIlxuXG5pZiBbICEgLWQgQnJl
YWtpbmdSdWxlcyBdOyB0aGVuXG4gICAgbWtkaXIgQnJlYWtpbmdSdWxlc1xuZmlcblxuaWYgWyBc
IiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEwLjEwXCIgXTsgdGhlblxuICAgIGV4
cG9ydCBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9MFxuZWxzZVxuICAgIGV4cG9ydCBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQ9MVxuZmlcblxuaWYgWyBcIiR7QUNUSU9OfVwiID0gXCJidWlsZFwi
IC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0
YWxsaGRyc1wiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxhcGlcIiBdOyB0aGVuXG5tYWtl
IC0tbm8tYnVpbHRpbi1ydWxlcyAtZiBcIldURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1q
IGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9PVD1cIiR7U0RLUk9PVH1c
IlxuZmkiOworCQl9OwogCQk2NUFGQTE3MDE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVh
ZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKIAkJCWJ1aWxk
QWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNTM2LDYgKzE3MzksOCBAQAogCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUE4QTQ3Mzg2MTUxQTgy
NUIwMDQxMjNGRiAvKiBBc3NlcnRpb25zLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0Yx
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3
NDM1MTUxQTgyNUIwMDQxMjNGRiAvKiBBdG9taWNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNzBFQ0E2MEQxQjAyNDI2ODAwNDQ5NzM5IC8qIEF0b21pY1N0cmluZ0ltcGwuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTVCQTE1RkExODI0MzVBNjAwQTgyRTY5IC8qIEF0b21pY1N0cmluZ0lt
cGxDRi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1NjMsNiArMTc2OCw3IEBACiAJCQkJQThBNDcz
QjAxNTFBODI1QjAwNDEyM0ZGIC8qIGRvdWJsZS1jb252ZXJzaW9uLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDczQkExNTFBODI1QjAwNDEyM0ZGIC8qIGR0b2EuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDczQjMxNTFBODI1QjAwNDEyM0ZGIC8qIGZhc3QtZHRvYS5jYyBpbiBTb3VyY2Vz
ICovLAorCQkJCUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGODg1RTBGMTg0NUFFQTkwMEYxRTNG
QSAvKiBGYXN0Qml0VmVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0MzMTUxQTgy
NUIwMDQxMjNGRiAvKiBGYXN0TWFsbG9jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDRUUyMjAx
MUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRpb25zLm1tIGluIFNvdXJjZXMgKi8s
CkBAIC0xNTc4LDYgKzE3ODQsNyBAQAogCQkJCUE4QTQ3M0U5MTUxQTgyNUIwMDQxMjNGRiAvKiBN
RDUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1NDk3QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1l
ZGlhVGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNFQzE1MUE4MjVCMDA0MTIzRkYg
LyogTWV0YUFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdGMDFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBOEE0NzNGNDE1MUE4MjVCMDA0MTIzRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGNzE1MUE4MjVCMDA0MTIzRkYgLyogT1NBbGxvY2F0
b3JQb3NpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGOTE1MUE4MjVCMDA0MTIzRkYg
LyogT1NSYW5kb21Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNTg1LDYgKzE3OTIsNyBA
QAogCQkJCTFDMTgxQzkzMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGRjE5REMxQkIzMzRFQjAwODg2RDkxIC8qIFBhcmFsbGVs
SGVscGVyUG9vbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjgyNEE2ODFCNzQ0M0EwMDAyRTM0
NUQgLyogUGFya2luZ0xvdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRTFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjlEMzM2MjE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MTQxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51
bWJlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE2MTksOSArMTgyNywxMyBAQAogCQkJCUE4QTQ3
NDRBMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QThBNDc0NEUxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZGluZ1B0aHJlYWRzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4QTQ3NDY5MTUxQTgyNUIwMDQxMjNGRiAvKiBVVEY4LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUZBNDdDOEExNTI1MDJE
QTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFNDQ3
OUMxQjdBQUEwMzAwOTQ5OEVCIC8qIFdvcmRMb2NrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMy
Q0EzN0U5MUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEQ0VFMjIwMzFD
RUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBMEFEMzkxQTk2MjQ1NTAw
NTM2REY2IC8qIFdvcmtRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzRDFBOTYy
NTNDMDA1MzZERjYgLyogV29ya1F1ZXVlQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDc0NDUxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTE2MjksNiArMTg0MSwxNyBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OworCQlDMkJBNTQxOTFENTcyNUI0MDAwQTMzMzIgLyogU291cmNl
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25N
YXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCUMyQkE1NDMzMUQ1NzI5MzgwMDBB
MzMzMiAvKiB1b3B0aW9ucy5jIGluIFNvdXJjZXMgKi8sCisJCQkJQzJCQTU0MzkxRDU3MkFGODAw
MEEzMzMyIC8qIGZpbGVzdHJtLmMgaW4gU291cmNlcyAqLywKKwkJCQlDMkJBNTQyNTFENTcyNUM0
MDAwQTMzMzIgLyogZ2VuYnJrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQkE1NDM2MUQ1NzI5
RkYwMDBBMzMzMiAvKiB1bmV3ZGF0YS5jIGluIFNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAvKiBFbmQgUEJYU291cmNl
c0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhUYXJnZXREZXBlbmRlbmN5IHNl
Y3Rpb24gKi8KQEAgLTE2MzcsMTEgKzE4NjAsMjEgQEAKIAkJCXRhcmdldCA9IDVEMjQ3QjYxMTQ2
ODlCODYwMEU3OEI3NiAvKiBXVEYgKi87CiAJCQl0YXJnZXRQcm94eSA9IDE0NDdBRUMzMThGQ0U1
NzAwMEIzRDdGRiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJCTFDRDE4Nzg4
MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0g
UEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RF
QyAvKiBEZXJpdmVkIFNvdXJjZXMgKi87CisJCQl0YXJnZXRQcm94eSA9IDFDRDE4Nzg3MUQ1NTY5
ODgwMENDN0RFQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CisJCX07CiAJCTY1QUZBMjhF
MTYzMEI5OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewogCQkJaXNhID0g
UEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9IDY1QUZBMTZGMTYzMEI5NzcwMDNENzIz
QyAvKiBDb3B5IFdURiBIZWFkZXJzICovOwogCQkJdGFyZ2V0UHJveHkgPSA2NUFGQTI4RDE2MzBC
OTlFMDAzRDcyM0MgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9OworCQlDMkJBNTQz
QjFENTcyQkVCMDAwQTMzMzIgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9
IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQgPSBDMkJBNTQxQzFENTcyNUI0MDAwQTMz
MzIgLyogZ2VuYnJrICovOworCQkJdGFyZ2V0UHJveHkgPSBDMkJBNTQzQTFENTcyQkVCMDAwQTMz
MzIgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9OwogLyogRW5kIFBCWFRhcmdldERl
cGVuZGVuY3kgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0
aW9uICovCkBAIC0xNjY2LDYgKzE4OTksMzAgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlv
bjsKIAkJfTsKKwkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICovID0geworCQkJ
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5j
ZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87
CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1F
KSI7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQkxQ0QxODc4NTFENTU2OTVDMDBD
QzdERUMgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwor
CQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYg
LyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQ
Uk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNl
OworCQl9OworCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJvZHVjdGlvbiAqLyA9IHsK
KwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZl
cmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmln
ICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRf
TkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDI0N0I2NDE0
Njg5Qjg2MDBFNzhCNzYgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJh
dGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAw
RTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKQEAgLTE3MzYsNiArMTk5MywyMDQg
QEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJQzJCQTU0MjIxRDU3MjVC
NDAwMEEzMzMyIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3
NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJ
CUFMV0FZU19TRUFSQ0hfVVNFUl9QQVRIUyA9IE5POworCQkJCUNMQU5HX0FOQUxZWkVSX05PTk5V
TEwgPSBZRVM7CisJCQkJQ0xBTkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJEID0gImdudSsrMHgiOwor
CQkJCUNMQU5HX0NYWF9MSUJSQVJZID0gImxpYmMrKyI7CisJCQkJQ0xBTkdfRU5BQkxFX01PRFVM
RVMgPSBZRVM7CisJCQkJQ0xBTkdfRU5BQkxFX09CSkNfQVJDID0gWUVTOworCQkJCUNMQU5HX1dB
Uk5fQk9PTF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQ09OU1RBTlRfQ09OVkVS
U0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0RJUkVDVF9PQkpDX0lTQV9VU0FHRSA9IFlFU19F
UlJPUjsKKwkJCQlDTEFOR19XQVJOX0VNUFRZX0JPRFkgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9F
TlVNX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9JTlRfQ09OVkVSU0lPTiA9IFlF
UzsKKwkJCQlDTEFOR19XQVJOX09CSkNfUk9PVF9DTEFTUyA9IFlFU19FUlJPUjsKKwkJCQlDTEFO
R19XQVJOX1VOUkVBQ0hBQkxFX0NPREUgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9fRFVQTElDQVRF
X01FVEhPRF9NQVRDSCA9IFlFUzsKKwkJCQlDT0RFX1NJR05fSURFTlRJVFkgPSAiLSI7CisJCQkJ
Q09QWV9QSEFTRV9TVFJJUCA9IE5POworCQkJCURFQlVHX0lORk9STUFUSU9OX0ZPUk1BVCA9IGR3
YXJmOworCQkJCUVOQUJMRV9TVFJJQ1RfT0JKQ19NU0dTRU5EID0gWUVTOworCQkJCUVOQUJMRV9U
RVNUQUJJTElUWSA9IFlFUzsKKwkJCQlHQ0NfQ19MQU5HVUFHRV9TVEFOREFSRCA9IGdudTk5Owor
CQkJCUdDQ19EWU5BTUlDX05PX1BJQyA9IE5POworCQkJCUdDQ19OT19DT01NT05fQkxPQ0tTID0g
WUVTOworCQkJCUdDQ19PUFRJTUlaQVRJT05fTEVWRUwgPSAwOworCQkJCUdDQ19QUkVQUk9DRVNT
T1JfREVGSU5JVElPTlMgPSAoCisJCQkJCSJERUJVRz0xIiwKKwkJCQkJIlVfU0hPV19DUExVU1BM
VVNfQVBJPTEiLAorCQkJCQkiJChpbmhlcml0ZWQpIiwKKwkJCQkpOworCQkJCUdDQ19XQVJOXzY0
X1RPXzMyX0JJVF9DT05WRVJTSU9OID0gTk87CisJCQkJR0NDX1dBUk5fQUJPVVRfTUlTU0lOR19Q
Uk9UT1RZUEVTID0gTk87CisJCQkJR0NDX1dBUk5fQUJPVVRfUkVUVVJOX1RZUEUgPSBZRVNfRVJS
T1I7CisJCQkJR0NDX1dBUk5fU0lHTl9DT01QQVJFID0gTk87CisJCQkJR0NDX1dBUk5fVU5ERUNM
QVJFRF9TRUxFQ1RPUiA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0g
WUVTX0FHR1JFU1NJVkU7CisJCQkJR0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVTOworCQkJ
CUdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKKwkJCQlNQUNPU1hfREVQTE9ZTUVOVF9U
QVJHRVQgPSAxMC4xMTsKKwkJCQlNVExfRU5BQkxFX0RFQlVHX0lORk8gPSBZRVM7CisJCQkJT05M
WV9BQ1RJVkVfQVJDSCA9IFlFUzsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSki
OworCQkJCVdBUk5JTkdfQ0ZMQUdTID0gKAorCQkJCQkiLVdhbGwiLAorCQkJCQkiLVdleHRyYSIs
CisJCQkJCSItV2Nhc3QtcXVhbCIsCisJCQkJCSItV2NoYXItc3Vic2NyaXB0cyIsCisJCQkJCSIt
V2V4dHJhLXRva2VucyIsCisJCQkJCSItV2Zvcm1hdD0yIiwKKwkJCQkJIi1XaW5pdC1zZWxmIiwK
KwkJCQkJIi1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIiwKKwkJCQkJIi1XcGFja2VkIiwKKwkJ
CQkJIi1XcG9pbnRlci1hcml0aCIsCisJCQkJCSItV3JlZHVuZGFudC1kZWNscyIsCisJCQkJCSIt
V3VuZGVmIiwKKwkJCQkJIi1Xd3JpdGUtc3RyaW5ncyIsCisJCQkJCSItV2V4aXQtdGltZS1kZXN0
cnVjdG9ycyIsCisJCQkJCSItV2dsb2JhbC1jb25zdHJ1Y3RvcnMiLAorCQkJCQkiLVd0YXV0b2xv
Z2ljYWwtY29tcGFyZSIsCisJCQkJCSItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIiwKKwkJCQkJIi1X
bm8tc2lnbi1jb21wYXJlIiwKKwkJCQkpOworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsK
KwkJQzJCQTU0MjMxRDU3MjVCNDAwMEEzMzMyIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBY
Q0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQy
NDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1
aWxkU2V0dGluZ3MgPSB7CisJCQkJQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87CisJCQkJ
Q0xBTkdfQU5BTFlaRVJfTk9OTlVMTCA9IFlFUzsKKwkJCQlDTEFOR19DWFhfTEFOR1VBR0VfU1RB
TkRBUkQgPSAiZ251KysweCI7CisJCQkJQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKKwkJ
CQlDTEFOR19FTkFCTEVfTU9EVUxFUyA9IFlFUzsKKwkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMg
PSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdf
V0FSTl9DT05TVEFOVF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRElSRUNUX09C
SkNfSVNBX1VTQUdFID0gWUVTX0VSUk9SOworCQkJCUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlF
UzsKKwkJCQlDTEFOR19XQVJOX0VOVU1fQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJO
X0lOVF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0g
WUVTX0VSUk9SOworCQkJCUNMQU5HX1dBUk5fVU5SRUFDSEFCTEVfQ09ERSA9IFlFUzsKKwkJCQlD
TEFOR19XQVJOX19EVVBMSUNBVEVfTUVUSE9EX01BVENIID0gWUVTOworCQkJCUNPREVfU0lHTl9J
REVOVElUWSA9ICItIjsKKwkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87CisJCQkJREVCVUdfSU5G
T1JNQVRJT05fRk9STUFUID0gImR3YXJmLXdpdGgtZHN5bSI7CisJCQkJRU5BQkxFX05TX0FTU0VS
VElPTlMgPSBOTzsKKwkJCQlFTkFCTEVfU1RSSUNUX09CSkNfTVNHU0VORCA9IFlFUzsKKwkJCQlH
Q0NfQ19MQU5HVUFHRV9TVEFOREFSRCA9IGdudTk5OworCQkJCUdDQ19OT19DT01NT05fQkxPQ0tT
ID0gWUVTOworCQkJCUdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlMgPSAoCisJCQkJCSJVX1NI
T1dfQ1BMVVNQTFVTX0FQST0xIiwKKwkJCQkJIiQoREVCVUdfREVGSU5FUykiLAorCQkJCQkiJChp
bmhlcml0ZWQpIiwKKwkJCQkpOworCQkJCUdDQ19XQVJOXzY0X1RPXzMyX0JJVF9DT05WRVJTSU9O
ID0gTk87CisJCQkJR0NDX1dBUk5fQUJPVVRfTUlTU0lOR19QUk9UT1RZUEVTID0gTk87CisJCQkJ
R0NDX1dBUk5fQUJPVVRfUkVUVVJOX1RZUEUgPSBZRVNfRVJST1I7CisJCQkJR0NDX1dBUk5fU0lH
Tl9DT01QQVJFID0gTk87CisJCQkJR0NDX1dBUk5fVU5ERUNMQVJFRF9TRUxFQ1RPUiA9IFlFUzsK
KwkJCQlHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTX0FHR1JFU1NJVkU7CisJCQkJ
R0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVTOworCQkJCUdDQ19XQVJOX1VOVVNFRF9WQVJJ
QUJMRSA9IFlFUzsKKwkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xMTsKKwkJCQlN
VExfRU5BQkxFX0RFQlVHX0lORk8gPSBOTzsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRf
TkFNRSkiOworCQkJCVdBUk5JTkdfQ0ZMQUdTID0gKAorCQkJCQkiLVdhbGwiLAorCQkJCQkiLVdl
eHRyYSIsCisJCQkJCSItV2Nhc3QtcXVhbCIsCisJCQkJCSItV2NoYXItc3Vic2NyaXB0cyIsCisJ
CQkJCSItV2V4dHJhLXRva2VucyIsCisJCQkJCSItV2Zvcm1hdD0yIiwKKwkJCQkJIi1XaW5pdC1z
ZWxmIiwKKwkJCQkJIi1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIiwKKwkJCQkJIi1XcGFja2Vk
IiwKKwkJCQkJIi1XcG9pbnRlci1hcml0aCIsCisJCQkJCSItV3JlZHVuZGFudC1kZWNscyIsCisJ
CQkJCSItV3VuZGVmIiwKKwkJCQkJIi1Xd3JpdGUtc3RyaW5ncyIsCisJCQkJCSItV2V4aXQtdGlt
ZS1kZXN0cnVjdG9ycyIsCisJCQkJCSItV2dsb2JhbC1jb25zdHJ1Y3RvcnMiLAorCQkJCQkiLVd0
YXV0b2xvZ2ljYWwtY29tcGFyZSIsCisJCQkJCSItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIiwKKwkJ
CQkJIi1Xbm8tc2lnbi1jb21wYXJlIiwKKwkJCQkpOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNl
OworCQl9OworCQlDMkJBNTQyNDFENTcyNUI0MDAwQTMzMzIgLyogUHJvZHVjdGlvbiAqLyA9IHsK
KwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZl
cmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmln
ICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlBTFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMg
PSBOTzsKKwkJCQlDTEFOR19BTkFMWVpFUl9OT05OVUxMID0gWUVTOworCQkJCUNMQU5HX0NYWF9M
QU5HVUFHRV9TVEFOREFSRCA9ICJnbnUrKzB4IjsKKwkJCQlDTEFOR19DWFhfTElCUkFSWSA9ICJs
aWJjKysiOworCQkJCUNMQU5HX0VOQUJMRV9NT0RVTEVTID0gWUVTOworCQkJCUNMQU5HX0VOQUJM
RV9PQkpDX0FSQyA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0JPT0xfQ09OVkVSU0lPTiA9IFlFUzsK
KwkJCQlDTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FS
Tl9ESVJFQ1RfT0JKQ19JU0FfVVNBR0UgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9FTVBU
WV9CT0RZID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRU5VTV9DT05WRVJTSU9OID0gWUVTOworCQkJ
CUNMQU5HX1dBUk5fSU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9PQkpDX1JP
T1RfQ0xBU1MgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9VTlJFQUNIQUJMRV9DT0RFID0g
WUVTOworCQkJCUNMQU5HX1dBUk5fX0RVUExJQ0FURV9NRVRIT0RfTUFUQ0ggPSBZRVM7CisJCQkJ
Q09ERV9TSUdOX0lERU5USVRZID0gIi0iOworCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBOTzsKKwkJ
CQlERUJVR19JTkZPUk1BVElPTl9GT1JNQVQgPSAiZHdhcmYtd2l0aC1kc3ltIjsKKwkJCQlFTkFC
TEVfTlNfQVNTRVJUSU9OUyA9IE5POworCQkJCUVOQUJMRV9TVFJJQ1RfT0JKQ19NU0dTRU5EID0g
WUVTOworCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251OTk7CisJCQkJR0NDX05PX0NP
TU1PTl9CTE9DS1MgPSBZRVM7CisJCQkJR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgK
KwkJCQkJIlVfU0hPV19DUExVU1BMVVNfQVBJPTEiLAorCQkJCQkiJChERUJVR19ERUZJTkVTKSIs
CisJCQkJCSIkKGluaGVyaXRlZCkiLAorCQkJCSk7CisJCQkJR0NDX1dBUk5fNjRfVE9fMzJfQklU
X0NPTlZFUlNJT04gPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9NSVNTSU5HX1BST1RPVFlQRVMg
PSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9IFlFU19FUlJPUjsKKwkJCQlH
Q0NfV0FSTl9TSUdOX0NPTVBBUkUgPSBOTzsKKwkJCQlHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVD
VE9SID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVNfQUdHUkVT
U0lWRTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CisJCQkJR0NDX1dBUk5f
VU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEw
LjExOworCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IE5POworCQkJCVBST0RVQ1RfTkFNRSA9
ICIkKFRBUkdFVF9OQU1FKSI7CisJCQkJV0FSTklOR19DRkxBR1MgPSAoCisJCQkJCSItV2FsbCIs
CisJCQkJCSItV2V4dHJhIiwKKwkJCQkJIi1XY2FzdC1xdWFsIiwKKwkJCQkJIi1XY2hhci1zdWJz
Y3JpcHRzIiwKKwkJCQkJIi1XZXh0cmEtdG9rZW5zIiwKKwkJCQkJIi1XZm9ybWF0PTIiLAorCQkJ
CQkiLVdpbml0LXNlbGYiLAorCQkJCQkiLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUiLAorCQkJ
CQkiLVdwYWNrZWQiLAorCQkJCQkiLVdwb2ludGVyLWFyaXRoIiwKKwkJCQkJIi1XcmVkdW5kYW50
LWRlY2xzIiwKKwkJCQkJIi1XdW5kZWYiLAorCQkJCQkiLVd3cml0ZS1zdHJpbmdzIiwKKwkJCQkJ
Ii1XZXhpdC10aW1lLWRlc3RydWN0b3JzIiwKKwkJCQkJIi1XZ2xvYmFsLWNvbnN0cnVjdG9ycyIs
CisJCQkJCSItV3RhdXRvbG9naWNhbC1jb21wYXJlIiwKKwkJCQkJIi1XaW1wbGljaXQtZmFsbHRo
cm91Z2giLAorCQkJCQkiLVduby1zaWduLWNvbXBhcmUiLAorCQkJCSk7CisJCQl9OworCQkJbmFt
ZSA9IFByb2R1Y3Rpb247CisJCX07CiAvKiBFbmQgWENCdWlsZENvbmZpZ3VyYXRpb24gc2VjdGlv
biAqLwogCiAvKiBCZWdpbiBYQ0NvbmZpZ3VyYXRpb25MaXN0IHNlY3Rpb24gKi8KQEAgLTE3NDks
NiArMjIwNCwxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJ
ZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODMx
RDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVn
YXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0
aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJMUNEMTg3ODQxRDU1Njk1
QzAwQ0M3REVDIC8qIERlYnVnICovLAorCQkJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBS
ZWxlYXNlICovLAorCQkJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICov
LAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1
bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjVDMTQ2ODlC
ODYwMEU3OEI3NiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldU
RiIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1
cmF0aW9ucyA9ICgKQEAgLTE3NzksNiArMjI0NCwxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRp
b25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlv
bjsKIAkJfTsKKwkJQzJCQTU0MjExRDU3MjVCNDAwMEEzMzMyIC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJnZW5icmsiICovID0geworCQkJaXNhID0gWEND
b25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJQzJCQTU0
MjIxRDU3MjVCNDAwMEEzMzMyIC8qIERlYnVnICovLAorCQkJCUMyQkE1NDIzMUQ1NzI1QjQwMDBB
MzMzMiAvKiBSZWxlYXNlICovLAorCQkJCUMyQkE1NDI0MUQ1NzI1QjQwMDBBMzMzMiAvKiBQcm9k
dWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsK
KwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAvKiBFbmQg
WENDb25maWd1cmF0aW9uTGlzdCBzZWN0aW9uICovCiAJfTsKIAlyb290T2JqZWN0ID0gNUQyNDdC
NTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jy
a2l0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40YWE1ZTU1Mjc5NjA5MGVhZWJjZDdjZTdiN2QyNzVhYThiMzc3
NWI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmgK
QEAgLTAsMCArMSw2NTUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHly
aWdodCAoQykgMTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAg
Q29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorKgorKiBGaWxlIGJya2l0ZXIuaAorKgorKiBNb2RpZmljYXRpb24gSGlz
dG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAy
LzE4Lzk3ICAgIGFsaXUgICAgICAgIEFkZGVkIHR5cGVkZWYgZm9yIFRleHRDb3VudC4gIE1hZGUg
RE9ORSBjb25zdC4KKyogICAwNS8wNy85NyAgICBhbGl1ICAgICAgICBGaXhlZCBETEwgZGVjbGFy
YXRpb24uCisqICAgMDcvMDkvOTcgICAgamZpdHogICAgICAgUmVuYW1lZCBCcmVha0l0ZXJhdG9y
IGFuZCBpbnRlcmZhY2Ugc3luY2VkIHdpdGggSkRLCisqICAgMDgvMTEvOTggICAgaGVsZW5hICAg
ICAgU3luYy11cCBKREsxLjIuCisqICAgMDEvMTMvMjAwMCAgaGVsZW5hICAgICAgQWRkZWQgVUVy
cm9yQ29kZSBwYXJhbWV0ZXIgdG8gY3JlYXRlWFhYSW5zdGFuY2UgbWV0aG9kcy4KKyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIEJSS0lURVJfSAorI2RlZmluZSBCUktJVEVS
X0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxi
cmllZiBDKysgQVBJOiBCcmVhayBJdGVyYXRvci4KKyAqLworCisjaWYgVUNPTkZJR19OT19CUkVB
S19JVEVSQVRJT04KKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoKKyAqIEFsbG93IHRoZSBkZWNs
YXJhdGlvbiBvZiBBUElzIHdpdGggcG9pbnRlcnMgdG8gQnJlYWtJdGVyYXRvcgorICogZXZlbiB3
aGVuIGJyZWFrIGl0ZXJhdGlvbiBpcyByZW1vdmVkIGZyb20gdGhlIGJ1aWxkLgorICovCitjbGFz
cyBCcmVha0l0ZXJhdG9yOworCitVX05BTUVTUEFDRV9FTkQKKworI2Vsc2UKKworI2luY2x1ZGUg
InVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisjaW5jbHVk
ZSAidW5pY29kZS9jaGFyaXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9jaWQuaCIKKyNpbmNs
dWRlICJ1bmljb2RlL3VicmsuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVudW0uaCIKKyNpbmNs
dWRlICJ1bmljb2RlL3V0ZXh0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bWlzYy5oIgorCitVX05B
TUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFRoZSBCcmVha0l0ZXJhdG9yIGNsYXNzIGltcGxlbWVu
dHMgbWV0aG9kcyBmb3IgZmluZGluZyB0aGUgbG9jYXRpb24KKyAqIG9mIGJvdW5kYXJpZXMgaW4g
dGV4dC4gQnJlYWtJdGVyYXRvciBpcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzLgorICogSW5zdGFu
Y2VzIG9mIEJyZWFrSXRlcmF0b3IgbWFpbnRhaW4gYSBjdXJyZW50IHBvc2l0aW9uIGFuZCBzY2Fu
IG92ZXIKKyAqIHRleHQgcmV0dXJuaW5nIHRoZSBpbmRleCBvZiBjaGFyYWN0ZXJzIHdoZXJlIGJv
dW5kYXJpZXMgb2NjdXIuCisgKiA8cD4KKyAqIExpbmUgYm91bmRhcnkgYW5hbHlzaXMgZGV0ZXJt
aW5lcyB3aGVyZSBhIHRleHQgc3RyaW5nIGNhbiBiZSBicm9rZW4KKyAqIHdoZW4gbGluZS13cmFw
cGluZy4gVGhlIG1lY2hhbmlzbSBjb3JyZWN0bHkgaGFuZGxlcyBwdW5jdHVhdGlvbiBhbmQKKyAq
IGh5cGhlbmF0ZWQgd29yZHMuCisgKiA8cD4KKyAqIFNlbnRlbmNlIGJvdW5kYXJ5IGFuYWx5c2lz
IGFsbG93cyBzZWxlY3Rpb24gd2l0aCBjb3JyZWN0CisgKiBpbnRlcnByZXRhdGlvbiBvZiBwZXJp
b2RzIHdpdGhpbiBudW1iZXJzIGFuZCBhYmJyZXZpYXRpb25zLCBhbmQKKyAqIHRyYWlsaW5nIHB1
bmN0dWF0aW9uIG1hcmtzIHN1Y2ggYXMgcXVvdGF0aW9uIG1hcmtzIGFuZCBwYXJlbnRoZXNlcy4K
KyAqIDxwPgorICogV29yZCBib3VuZGFyeSBhbmFseXNpcyBpcyB1c2VkIGJ5IHNlYXJjaCBhbmQg
cmVwbGFjZSBmdW5jdGlvbnMsIGFzCisgKiB3ZWxsIGFzIHdpdGhpbiB0ZXh0IGVkaXRpbmcgYXBw
bGljYXRpb25zIHRoYXQgYWxsb3cgdGhlIHVzZXIgdG8KKyAqIHNlbGVjdCB3b3JkcyB3aXRoIGEg
ZG91YmxlIGNsaWNrLiBXb3JkIHNlbGVjdGlvbiBwcm92aWRlcyBjb3JyZWN0CisgKiBpbnRlcnBy
ZXRhdGlvbiBvZiBwdW5jdHVhdGlvbiBtYXJrcyB3aXRoaW4gYW5kIGZvbGxvd2luZworICogd29y
ZHMuIENoYXJhY3RlcnMgdGhhdCBhcmUgbm90IHBhcnQgb2YgYSB3b3JkLCBzdWNoIGFzIHN5bWJv
bHMgb3IKKyAqIHB1bmN0dWF0aW9uIG1hcmtzLCBoYXZlIHdvcmQtYnJlYWtzIG9uIGJvdGggc2lk
ZXMuCisgKiA8cD4KKyAqIENoYXJhY3RlciBib3VuZGFyeSBhbmFseXNpcyBhbGxvd3MgdXNlcnMg
dG8gaW50ZXJhY3Qgd2l0aAorICogY2hhcmFjdGVycyBhcyB0aGV5IGV4cGVjdCB0bywgZm9yIGV4
YW1wbGUsIHdoZW4gbW92aW5nIHRoZSBjdXJzb3IKKyAqIHRocm91Z2ggYSB0ZXh0IHN0cmluZy4g
Q2hhcmFjdGVyIGJvdW5kYXJ5IGFuYWx5c2lzIHByb3ZpZGVzIGNvcnJlY3QKKyAqIG5hdmlnYXRp
b24gb2YgdGhyb3VnaCBjaGFyYWN0ZXIgc3RyaW5ncywgcmVnYXJkbGVzcyBvZiBob3cgdGhlCisg
KiBjaGFyYWN0ZXIgaXMgc3RvcmVkLiAgRm9yIGV4YW1wbGUsIGFuIGFjY2VudGVkIGNoYXJhY3Rl
ciBtaWdodCBiZQorICogc3RvcmVkIGFzIGEgYmFzZSBjaGFyYWN0ZXIgYW5kIGEgZGlhY3JpdGlj
YWwgbWFyay4gV2hhdCB1c2VycworICogY29uc2lkZXIgdG8gYmUgYSBjaGFyYWN0ZXIgY2FuIGRp
ZmZlciBiZXR3ZWVuIGxhbmd1YWdlcy4KKyAqIDxwPgorICogVGhlIHRleHQgYm91bmRhcnkgcG9z
aXRpb25zIGFyZSBmb3VuZCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzCisgKiBkZXNjcmliZWQgaW4g
VW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMjksIFRleHQgQm91bmRhcmllcywgYW5kCisgKiBVbmlj
b2RlIFN0YW5kYXJkIEFubmV4ICMxNCwgTGluZSBCcmVha2luZyBQcm9wZXJ0aWVzLiAgVGhlc2UK
KyAqIGFyZSBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMTQv
IGFuZAorICogaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkvLgorICogPHA+Cisg
KiBJbiBhZGRpdGlvbiB0byB0aGUgQysrIEFQSSBkZWZpbmVkIGluIHRoaXMgaGVhZGVyIGZpbGUs
IGEKKyAqIHBsYWluIEMgQVBJIHdpdGggZXF1aXZhbGVudCBmdW5jdGlvbmFsaXR5IGlzIGRlZmlu
ZWQgaW4gdGhlCisgKiBmaWxlIHVicmsuaAorICogPHA+CisgKiBDb2RlIHNuaXBwZXRzIGlsbHVz
dHJhdGluZyB0aGUgdXNlIG9mIHRoZSBCcmVhayBJdGVyYXRvciBBUElzCisgKiBhcmUgYXZhaWxh
YmxlIGluIHRoZSBJQ1UgVXNlciBHdWlkZSwKKyAqIGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNl
cmd1aWRlL2JvdW5kYXJ5QW5hbHlzaXMuaHRtbAorICogYW5kIGluIHRoZSBzYW1wbGUgcHJvZ3Jh
bSBpY3Uvc291cmNlL3NhbXBsZXMvYnJlYWsvYnJlYWsuY3BwCisgKgorICovCitjbGFzcyBVX0NP
TU1PTl9BUEkgQnJlYWtJdGVyYXRvciA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1YmxpYzoKKyAgICAv
KioKKyAgICAgKiAgZGVzdHJ1Y3RvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIH5CcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4g
dHJ1ZSBpZiBhbm90aGVyIG9iamVjdCBpcyBzZW1hbnRpY2FsbHkgZXF1YWwgdG8gdGhpcworICAg
ICAqIG9uZS4gVGhlIG90aGVyIG9iamVjdCBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2YgdGhlIHNh
bWUgc3ViY2xhc3Mgb2YKKyAgICAgKiBCcmVha0l0ZXJhdG9yLiBPYmplY3RzIG9mIGRpZmZlcmVu
dCBzdWJjbGFzc2VzIGFyZSBjb25zaWRlcmVkCisgICAgICogdW5lcXVhbC4KKyAgICAgKiA8UD4K
KyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIEJyZWFrSXRlcmF0b3IgaXMgYXQgdGhlIHNhbWUg
cG9zaXRpb24gaW4gdGhlCisgICAgICogc2FtZSB0ZXh0LCBhbmQgaXMgdGhlIHNhbWUgY2xhc3Mg
YW5kIHR5cGUgKHdvcmQsIGxpbmUsIGV0Yy4pIG9mCisgICAgICogQnJlYWtJdGVyYXRvciwgYXMg
dGhlIGFyZ3VtZW50LiAgVGV4dCBpcyBjb25zaWRlcmVkIHRoZSBzYW1lIGlmCisgICAgICogaXQg
Y29udGFpbnMgdGhlIHNhbWUgY2hhcmFjdGVycywgaXQgbmVlZCBub3QgYmUgdGhlIHNhbWUKKyAg
ICAgKiBvYmplY3QsIGFuZCBzdHlsZXMgYXJlIG5vdCBjb25zaWRlcmVkLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBC
cmVha0l0ZXJhdG9yJikgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUg
Y29tcGxlbWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJhdG9yPT0KKyAgICAgKiBAcGFyYW0gcmhz
IFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5CisgICAgICog
QHJldHVybiB0aGUgY29tcGxlbWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJhdG9yPT0KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEJy
ZWFrSXRlcmF0b3ImIHJocykgY29uc3QgeyByZXR1cm4gIW9wZXJhdG9yPT0ocmhzKTsgfQorCisg
ICAgLyoqCisgICAgICogUmV0dXJuIGEgcG9seW1vcnBoaWMgY29weSBvZiB0aGlzIG9iamVjdC4g
IFRoaXMgaXMgYW4gYWJzdHJhY3QKKyAgICAgKiBtZXRob2Qgd2hpY2ggc3ViY2xhc3NlcyBpbXBs
ZW1lbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBCcmVh
a0l0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm4gYSBwb2x5bW9ycGhpYyBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuIERpZmZlcmVudCBzdWJj
bGFzc2VzCisgICAgICogd2lsbCByZXR1cm4gZGlzdGluY3QgdW5lcXVhbCB2YWx1ZXMuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5h
bWljQ2xhc3NJRCh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBD
aGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3ImIGdl
dFRleHQodm9pZCkgY29uc3QgPSAwOworCisKKyAgICAvKioKKyAgICAgICogIEdldCBhIFVUZXh0
IGZvciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgICogIFRoZSByZXR1cm5lZCBVVGV4
dCBpcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIFVUZXh0IHVzZWQgaW50ZXJuYWxseQorICAgICAg
KiAgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uLiAgSXQgY2FuIHNhZmVseSBi
ZSB1c2VkIHRvCisgICAgICAqICBhY2Nlc3MgdGhlIHRleHQgd2l0aG91dCBpbXBhY3RpbmcgYW55
IGJyZWFrIGl0ZXJhdG9yIG9wZXJhdGlvbnMsCisgICAgICAqICBidXQgdGhlIHVuZGVybHlpbmcg
dGV4dCBpdHNlbGYgbXVzdCBub3QgYmUgYWx0ZXJlZC4KKyAgICAgICoKKyAgICAgICogQHBhcmFt
IGZpbGxJbiBBIFVUZXh0IHRvIGJlIGZpbGxlZCBpbi4gIElmIE5VTEwsIGEgbmV3IFVUZXh0IHdp
bGwgYmUKKyAgICAgICogICAgICAgICAgIGFsbG9jYXRlZCB0byBob2xkIHRoZSByZXN1bHQuCisg
ICAgICAqIEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAgKiBA
cmV0dXJuICAgVGhlIGN1cnJlbnQgVVRleHQgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuICBJZiBh
biBpbnB1dAorICAgICAgKiAgICAgICAgICAgVVRleHQgd2FzIHByb3ZpZGVkLCBpdCB3aWxsIGFs
d2F5cyBiZSByZXR1cm5lZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICAqLworICAg
ICB2aXJ0dWFsIFVUZXh0ICpnZXRVVGV4dChVVGV4dCAqZmlsbEluLCBVRXJyb3JDb2RlICZzdGF0
dXMpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIENoYW5nZSB0aGUgdGV4dCBvdmVyIHdo
aWNoIHRoaXMgb3BlcmF0ZXMuIFRoZSB0ZXh0IGJvdW5kYXJ5IGlzCisgICAgICogcmVzZXQgdG8g
dGhlIHN0YXJ0LgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBVbmljb2RlU3RyaW5nIHVzZWQgdG8g
Y2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgdm9pZCAgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nICZ0ZXh0KSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBSZXNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdG8gb3BlcmF0ZSBvdmVyIHRo
ZSB0ZXh0IHJlcHJlc2VudGVkIGJ5CisgICAgICogdGhlIFVUZXh0LiAgVGhlIGl0ZXJhdG9yIHBv
c2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rp
b24gbWFrZXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBzdXBwbGllZCBVVGV4dC4gIFRoaXMgbWVh
bnMKKyAgICAgKiB0aGF0IHRoZSBjYWxsZXIgaXMgZnJlZSB0byBpbW1lZGlhdGVseSBjbG9zZSBv
ciBvdGhlcndpc2UgcmV1c2UgdGhlCisgICAgICogVXRleHQgdGhhdCB3YXMgcGFzc2VkIGFzIGEg
cGFyYW1ldGVyLCBidXQgdGhhdCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2VsZgorICAgICAqIG11
c3Qgbm90IGJlIGFsdGVyZWQgd2hpbGUgYmVpbmcgcmVmZXJlbmNlZCBieSB0aGUgYnJlYWsgaXRl
cmF0b3IuCisgICAgICoKKyAgICAgKiBBbGwgaW5kZXggcG9zaXRpb25zIHJldHVybmVkIGJ5IGJy
ZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyBhcmUKKyAgICAgKiBuYXRpdmUgaW5kaWNlcyBmcm9tIHRo
ZSBVVGV4dC4gRm9yIGV4YW1wbGUsIHdoZW4gYnJlYWtpbmcgVVRGLTgKKyAgICAgKiBlbmNvZGVk
IHRleHQsIHRoZSBicmVhayBwb3NpdGlvbnMgcmV0dXJuZWQgYnkgbmV4dCgpLCBwcmV2aW91cygp
LCBldGMuCisgICAgICogd2lsbCBiZSBVVEYtOCBzdHJpbmcgaW5kaWNlcywgbm90IFVURi0xNiBw
b3NpdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgVVRleHQgdXNlZCB0byBj
aGFuZ2UgdGhlIHRleHQuCisgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3Ig
Y29kZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICovCisgICAgdmlydHVhbCB2b2lk
ICBzZXRUZXh0KFVUZXh0ICp0ZXh0LCBVRXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKworICAgIC8q
KgorICAgICAqIENoYW5nZSB0aGUgdGV4dCBvdmVyIHdoaWNoIHRoaXMgb3BlcmF0ZXMuIFRoZSB0
ZXh0IGJvdW5kYXJ5IGlzCisgICAgICogcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqIE5vdGUg
dGhhdCBzZXRUZXh0KFVUZXh0ICopIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSB0byB0
aGlzIGZ1bmN0aW9uLAorICAgICAqIGFuZCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICAgKiBAcGFy
YW0gaXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgYWRvcHRUZXh0
KENoYXJhY3Rlckl0ZXJhdG9yKiBpdCkgPSAwOworCisgICAgZW51bSB7CisgICAgICAgIC8qKgor
ICAgICAgICAgKiBET05FIGlzIHJldHVybmVkIGJ5IHByZXZpb3VzKCkgYW5kIG5leHQoKSBhZnRl
ciBhbGwgdmFsaWQKKyAgICAgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQuCisg
ICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgRE9ORSA9IChp
bnQzMl90KS0xCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaXRl
cmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHBvc2l0aW9uIHpl
cm8uCisgICAgICogQHJldHVybiBUaGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRl
eHQsIHplcm8uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBp
bnQzMl90IGZpcnN0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0
b3IgcG9zaXRpb24gdG8gdGhlIGluZGV4IGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgbGFzdCBjaGFy
YWN0ZXIgaW4gdGhlIHRleHQgYmVpbmcgc2Nhbm5lZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBpbmRl
eCBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJlaW5n
IHNjYW5uZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBp
bnQzMl90IGxhc3Qodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRv
ciBwb3NpdGlvbiB0byB0aGUgYm91bmRhcnkgcHJlY2VkaW5nIHRoZSBjdXJyZW50IGJvdW5kYXJ5
LgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgcHJldmlvdXMgdGV4
dCBib3VuZGFyeSBvciBET05FIGlmIGFsbAorICAgICAqIGJvdW5kYXJpZXMgaGF2ZSBiZWVuIHJl
dHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50
MzJfdCBwcmV2aW91cyh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlIHRoZSBp
dGVyYXRvciB0byB0aGUgYm91bmRhcnkgZm9sbG93aW5nIHRoZSBjdXJyZW50IGJvdW5kYXJ5Lgor
ICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgbmV4dCB0ZXh0IGJvdW5k
YXJ5IG9yIERPTkUgaWYgYWxsCisgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IG5l
eHQodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGNoYXJhY3RlciBpbmRleCBv
ZiB0aGUgY3VycmVudCBpbnRlcmF0b3IgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LgorICAgICAq
IEByZXR1cm4gVGhlIGJvdW5kYXJ5IG1vc3QgcmVjZW50bHkgcmV0dXJuZWQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGN1cnJlbnQodm9pZCkg
Y29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogQWR2YW5jZSB0aGUgaXRlcmF0b3IgdG8gdGhl
IGZpcnN0IGJvdW5kYXJ5IGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBU
aGUgdmFsdWUgcmV0dXJuZWQgaXMgYWx3YXlzIGdyZWF0ZXIgdGhhbiB0aGUgb2Zmc2V0IG9yCisg
ICAgICogdGhlIHZhbHVlIEJyZWFrSXRlcmF0b3IuRE9ORQorICAgICAqIEBwYXJhbSBvZmZzZXQg
dGhlIG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KKyAgICAgKiBAcmV0dXJuIFRoZSBmaXJzdCBi
b3VuZGFyeSBhZnRlciB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZm9sbG93aW5nKGludDMyX3Qgb2Zmc2V0
KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRo
ZSBmaXJzdCBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICog
VGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5cyBzbWFsbGVyIHRoYW4gdGhlIG9mZnNldCBvcgor
ICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0ZXJhdG9yLkRPTkUKKyAgICAgKiBAcGFyYW0gb2Zmc2V0
IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nhbm5pbmcuCisgICAgICogQHJldHVybiBUaGUgZmlyc3Qg
Ym91bmRhcnkgYmVmb3JlIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmcoaW50MzJfdCBvZmZz
ZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBzcGVjZmllZCBw
b3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEFzIGEgc2lkZSBlZmZlY3Qs
IHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRvciBpcyBzZXQKKyAgICAgKiB0byB0
aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gYXQgb3IgZm9sbG93aW5nIHRoZSBzcGVjaWZpZWQg
b2Zmc2V0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBjaGVjay4KKyAgICAg
KiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIGlzQm91bmRhcnko
aW50MzJfdCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3Ig
cG9zaXRpb24gdG8gdGhlIG50aCBib3VuZGFyeSBmcm9tIHRoZSBjdXJyZW50IGJvdW5kYXJ5Cisg
ICAgICogQHBhcmFtIG4gdGhlIG51bWJlciBvZiBib3VuZGFyaWVzIHRvIG1vdmUgYnkuICBBIHZh
bHVlIG9mIDAKKyAgICAgKiBkb2VzIG5vdGhpbmcuICBOZWdhdGl2ZSB2YWx1ZXMgbW92ZSB0byBw
cmV2aW91cyBib3VuZGFyaWVzCisgICAgICogYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3ZlIHRvIGxh
dGVyIGJvdW5kYXJpZXMuCisgICAgICogQHJldHVybiBUaGUgbmV3IGl0ZXJhdG9yIHBvc2l0aW9u
LCBvcgorICAgICAqIERPTkUgaWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gfG58IGJvdW5kYXJpZXMg
aW4gdGhlIHNwZWNmaWVkIGRpcmVjdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dChpbnQzMl90IG4pID0gMDsKKworICAgLyoqCisg
ICAgICogRm9yIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JzLCByZXR1cm4gdGhlIHN0YXR1cyB0YWcg
ZnJvbSB0aGUgCisgICAgICogYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVj
ZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAg
KiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBhIHJ1bGUgc3Rh
dHVzLAorICAgICAqIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVkLgorICAgICAqIDxw
PgorICAgICAqIEByZXR1cm4gdGhlIHN0YXR1cyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0
ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqICAgICAgICAgcmV0dXJuZWQgYnJlYWsg
cG9zaXRpb24uCisgICAgICogQHNlZSBSdWxlQmFzZUJyZWFrSXRlcmF0b3I6OmdldFJ1bGVTdGF0
dXMoKQorICAgICAqIEBzZWUgVVdvcmRCcmVhaworICAgICAqIEBzdGFibGUgSUNVIDUyCisgICAg
ICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXMoKSBjb25zdDsKKworICAgLyoq
CisgICAgKiBGb3IgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcnMsIGdldCB0aGUgc3RhdHVzICh0YWcp
IHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIAorICAgICogdGhhdCBkZXRlcm1pbmVkIHRo
ZSBtb3N0IHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICogPHA+CisgICAg
KiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBydWxlIHN0YXR1
cywKKyAgICAqIG5vIHZhbHVlcyBhcmUgcmV0dXJuZWQuCisgICAgKiA8cD4KKyAgICAqIFRoZSBy
ZXR1cm5lZCBzdGF0dXMgdmFsdWUocykgYXJlIHN0b3JlZCBpbnRvIGFuIGFycmF5IHByb3ZpZGVk
IGJ5IHRoZSBjYWxsZXIuCisgICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gc29ydGVkIChh
c2NlbmRpbmcpIG9yZGVyLgorICAgICogSWYgdGhlIGNhcGFjaXR5IG9mIHRoZSBvdXRwdXQgYXJy
YXkgaXMgaW5zdWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgICAgKiAgdGhlIG91dHB1dCB3
aWxsIGJlIHRydW5jYXRlZCB0byB0aGUgYXZhaWxhYmxlIGxlbmd0aCwgYW5kIGEKKyAgICAqICBV
X0JVRkZFUl9PVkVSRkxPV19FUlJPUiB3aWxsIGJlIHNpZ25hbGVkLgorICAgICogPHA+CisgICAg
KiBAc2VlIFJ1bGVCYXNlQnJlYWtJdGVyYXRvcjo6Z2V0UnVsZVN0YXR1c1ZlYworICAgICoKKyAg
ICAqIEBwYXJhbSBmaWxsSW5WZWMgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGluIHdpdGggdGhlIHN0
YXR1cyB2YWx1ZXMuCisgICAgKiBAcGFyYW0gY2FwYWNpdHkgIHRoZSBsZW5ndGggb2YgdGhlIHN1
cHBsaWVkIHZlY3Rvci4gIEEgbGVuZ3RoIG9mIHplcm8gY2F1c2VzCisgICAgKiAgICAgICAgICAg
ICAgICAgIHRoZSBmdW5jdGlvbiB0byByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0dXMgdmFsdWVz
LCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgbm9ybWFsIHdheSwgd2l0aG91dCBhdHRl
bXRwaW5nIHRvIHN0b3JlIGFueSB2YWx1ZXMuCisgICAgKiBAcGFyYW0gc3RhdHVzICAgIHJlY2Vp
dmVzIGVycm9yIGNvZGVzLgorICAgICogQHJldHVybiAgICAgICAgICBUaGUgbnVtYmVyIG9mIHJ1
bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZAorICAgICogICAgICAg
ICAgICAgICAgICB0aGUgbW9zdCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQgYnkgdGhlIGJyZWFr
IGl0ZXJhdG9yLgorICAgICogICAgICAgICAgICAgICAgICBJbiB0aGUgZXZlbnQgb2YgYSBVX0JV
RkZFUl9PVkVSRkxPV19FUlJPUiwgdGhlIHJldHVybiB2YWx1ZQorICAgICogICAgICAgICAgICAg
ICAgICBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCB3ZXJlIGF2YWls
YWJsZSwKKyAgICAqICAgICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2VkIG51bWJlciB0aGF0
IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQuCisgICAgKiBAc2VlIGdldFJ1bGVTdGF0dXMKKyAgICAq
IEBzdGFibGUgSUNVIDUyCisgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1
c1ZlYyhpbnQzMl90ICpmaWxsSW5WZWMsIGludDMyX3QgY2FwYWNpdHksIFVFcnJvckNvZGUgJnN0
YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3Igd29yZC1i
cmVha3MgdXNpbmcgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNl
IG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgd29yZCBicmVha3MuCisgICAgICogV29y
ZEJyZWFrIGlzIHVzZWZ1bCBmb3Igd29yZCBzZWxlY3Rpb24gKGV4LiBkb3VibGUgY2xpY2spCisg
ICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyB0aGUg
ZXJyb3IgY29kZQorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciB3b3JkLWJyZWFr
cy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byBy
ZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdo
ZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNr
CisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBk
ZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlv
bmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBV
X1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxl
IHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBi
dXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVf
VVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBk
YXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFu
eSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAg
KiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUg
Zm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0
YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVXb3JkSW5zdGFuY2UoY29u
c3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAq
IENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBsaW5lLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9j
YWxlLgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxl
bWVudGluZyBsaW5lIGJyZWFrcy4gTGluZQorICAgICAqIGJyZWFrcyBhcmUgbG9naWNhbGx5IHBv
c3NpYmxlIGxpbmUgYnJlYWtzLCBhY3R1YWwgbGluZSBicmVha3MgYXJlCisgICAgICogdXN1YWxs
eSBkZXRlcm1pbmVkIGJhc2VkIG9uIGRpc3BsYXkgd2lkdGguCisgICAgICogTGluZUJyZWFrIGlz
IHVzZWZ1bCBmb3Igd29yZCB3cmFwcGluZyB0ZXh0LgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUg
bG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHJl
dHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIGxpbmUtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0
YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRp
b24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9u
IHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2Yg
VV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5
b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGlj
aCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklO
RyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAg
KiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0
aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcg
aW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsg
bmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9j
YWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUg
cmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVf
RVhQT1JUMgorICAgIGNyZWF0ZUxpbmVJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJy
b3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3Ig
Zm9yIGNoYXJhY3Rlci1icmVha3MgdXNpbmcgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVy
bnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyBjaGFyYWN0ZXIg
YnJlYWtzLgorICAgICAqIENoYXJhY3RlciBicmVha3MgYXJlIGJvdW5kYXJpZXMgb2YgY29tYmlu
aW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMuCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUu
CisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJuIEEg
QnJlYWtJdGVyYXRvciBmb3IgY2hhcmFjdGVyLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0
dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9u
IHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBz
dWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVf
U1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91
CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2gg
c3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcg
aW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICog
ZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhl
cmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGlu
ZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5l
aXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2Fs
ZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJl
dHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VY
UE9SVDIKKyAgICBjcmVhdGVDaGFyYWN0ZXJJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBV
RXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0
b3IgZm9yIHNlbnRlbmNlLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxlCisgICAgICogUmV0
dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIHNlbnRlbmNl
IGJyZWFrcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0g
c3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZv
ciBzZW50ZW5jZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1l
dGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAg
ICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwg
eW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElm
IHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVj
ayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1
Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEg
ZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcg
d2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcwor
ICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUg
ZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0
ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQg
YmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5k
IGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRl
U2VudGVuY2VJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMp
OworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIHRpdGxlLWNhc2lu
ZyBicmVha3MgdXNpbmcgdGhlIHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBSZXR1cm5zIGFuIGlu
c3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgdGl0bGUgYnJlYWtzLgorICAg
ICAqIFRoZSBpdGVyYXRvciByZXR1cm5lZCBsb2NhdGVzIHRpdGxlIGJvdW5kYXJpZXMgYXMgZGVz
Y3JpYmVkIGZvcgorICAgICAqIFVuaWNvZGUgMy4yIG9ubHkuIEZvciBVbmljb2RlIDQuMCBhbmQg
YWJvdmUgdGl0bGUgYm91bmRhcnkgaXRlcmF0aW9uLAorICAgICAqIHBsZWFzZSB1c2UgV29yZCBC
b3VuZGFyeSBpdGVyYXRvci57QGxpbmsgI2NyZWF0ZVdvcmRJbnN0YW5jZSB9CisgICAgICoKKyAg
ICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBl
cnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciB0aXRsZS1icmVh
a3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8g
cmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3
aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVj
aworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUg
ZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRp
b25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICog
VV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2Fs
ZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwg
YnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBV
X1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUg
ZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBh
bnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAg
ICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxl
IGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBz
dGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlVGl0bGVJbnN0YW5jZShj
b25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAg
ICogR2V0IHRoZSBzZXQgb2YgTG9jYWxlcyBmb3Igd2hpY2ggVGV4dEJvdW5kYXJpZXMgYXJlIGlu
c3RhbGxlZC4KKyAgICAgKiA8cD48Yj5Ob3RlOjwvYj4gdGhpcyB3aWxsIG5vdCByZXR1cm4gbG9j
YWxlcyBhZGRlZCB0aHJvdWdoIHRoZSByZWdpc3RlcgorICAgICAqIGNhbGwuIFRvIHNlZSB0aGUg
cmVnaXN0ZXJlZCBsb2NhbGVzIHRvbywgdXNlIHRoZSBnZXRBdmFpbGFibGVMb2NhbGVzCisgICAg
ICogZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgU3RyaW5nRW51bWVyYXRpb24gb2JqZWN0IDwvcD4K
KyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG91dHB1dCBwYXJhbWV0ZXIgb2YgbnVtYmVyIG9mIGVs
ZW1lbnRzIGluIHRoZSBsb2NhbGUgbGlzdAorICAgICAqIEByZXR1cm4gYXZhaWxhYmxlIGxvY2Fs
ZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9j
YWxlKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxlTG9jYWxlcyhpbnQzMl90JiBjb3VudCk7CisKKyAg
ICAvKioKKyAgICAgKiBHZXQgbmFtZSBvZiB0aGUgb2JqZWN0IGZvciB0aGUgZGVzaXJlZCBMb2Nh
bGUsIGluIHRoZSBkZXNpcmVkIGxhbmdhdWdlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUg
bXVzdCBiZSBmcm9tIGdldEF2YWlsYWJsZUxvY2FsZXMuCisgICAgICogQHBhcmFtIGRpc3BsYXlM
b2NhbGUgc3BlY2lmaWVzIHRoZSBkZXNpcmVkIGxvY2FsZSBmb3Igb3V0cHV0LgorICAgICAqIEBw
YXJhbSBuYW1lIHRoZSBmaWxsLWluIHBhcmFtZXRlciBvZiB0aGUgcmV0dXJuIHZhbHVlCisgICAg
ICogVXNlcyBiZXN0IG1hdGNoLgorICAgICAqIEByZXR1cm4gdXNlci1kaXNwbGF5YWJsZSBuYW1l
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVuaWNvZGVTdHJp
bmcmIFVfRVhQT1JUMiBnZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmIG9iamVjdExvY2FsZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxlJiBk
aXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBV
bmljb2RlU3RyaW5nJiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIEdldCBuYW1lIG9mIHRoZSBv
YmplY3QgZm9yIHRoZSBkZXNpcmVkIExvY2FsZSwgaW4gdGhlIGxhbmdhdWdlIG9mIHRoZQorICAg
ICAqIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUgbXVzdCBiZSBm
cm9tIGdldE1hdGNoaW5nTG9jYWxlcworICAgICAqIEBwYXJhbSBuYW1lIHRoZSBmaWxsLWluIHBh
cmFtZXRlciBvZiB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogQHJldHVybiB1c2VyLWRpc3BsYXlh
YmxlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgVW5p
Y29kZVN0cmluZyYgVV9FWFBPUlQyIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgb2JqZWN0
TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2Rl
U3RyaW5nJiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIERlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0
eS4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIFRocmVhZCBzYWZlIGNsaWVu
dC1idWZmZXItYmFzZWQgY2xvbmluZyBvcGVyYXRpb24KKyAgICAgKiAgICBEbyBOT1QgY2FsbCBk
ZWxldGUgb24gYSBzYWZlY2xvbmUsIHNpbmNlICduZXcnIGlzIG5vdCB1c2VkIHRvIGNyZWF0ZSBp
dC4KKyAgICAgKiBAcGFyYW0gc3RhY2tCdWZmZXIgdXNlciBhbGxvY2F0ZWQgc3BhY2UgZm9yIHRo
ZSBuZXcgY2xvbmUuIElmIE5VTEwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4KKyAgICAg
KiBJZiBidWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaCwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9j
YXRlZC4KKyAgICAgKiBAcGFyYW0gQnVmZmVyU2l6ZSByZWZlcmVuY2UgdG8gc2l6ZSBvZiBhbGxv
Y2F0ZWQgc3BhY2UuCisgICAgICogSWYgQnVmZmVyU2l6ZSA9PSAwLCBhIHN1ZmZpY2llbnQgc2l6
ZSBmb3IgdXNlIGluIGNsb25pbmcgd2lsbAorICAgICAqIGJlIHJldHVybmVkICgncHJlLWZsaWdo
dGluZycpCisgICAgICogSWYgQnVmZmVyU2l6ZSBpcyBub3QgZW5vdWdoIGZvciBhIHN0YWNrLWJh
c2VkIHNhZmUgY2xvbmUsCisgICAgICogbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4KKyAg
ICAgKiBAcGFyYW0gc3RhdHVzIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIG9wZXJhdGlvbiB3ZW50
IG9uIHNtb290aGx5IG9yIHRoZXJlIHdlcmUgZXJyb3JzCisgICAgICogIEFuIGluZm9ybWF0aW9u
YWwgc3RhdHVzIHZhbHVlLCBVX1NBRkVDTE9ORV9BTExPQ0FURURfRVJST1IsIGlzIHVzZWQgaWYg
YW55IGFsbG9jYXRpb25zIHdlcmUKKyAgICAgKiAgbmVjZXNzYXJ5LgorICAgICAqIEByZXR1cm4g
cG9pbnRlciB0byB0aGUgbmV3IGNsb25lCisgICAgICoKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1Ug
NTIuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJh
dG9yICogIGNyZWF0ZUJ1ZmZlckNsb25lKHZvaWQgKnN0YWNrQnVmZmVyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICZCdWZmZXJTaXplLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2Rl
ICZzdGF0dXMpID0gMDsKKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworICAgIC8q
KgorICAgICAqICAgRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIEJyZWFrSXRlcmF0b3Igd2FzIGNyZWF0
ZWQgaW4gdXNlciBtZW1vcnkgYnkKKyAgICAgKiAgIGNyZWF0ZUJ1ZmZlckNsb25lKCksIGFuZCB0
aHVzIHNob3VsZCBub3QgYmUgZGVsZXRlZC4gIFN1Y2ggb2JqZWN0cworICAgICAqICAgbXVzdCBi
ZSBjbG9zZWQgYnkgYW4gZXhwbGljaXQgY2FsbCB0byB0aGUgZGVzdHJ1Y3RvciAobm90IGRlbGV0
ZSkuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBBbHdheXMgZGVsZXRlIHRoZSBCcmVha0l0
ZXJhdG9yLgorICAgICAqLworICAgIGlubGluZSBVQm9vbCBpc0J1ZmZlckNsb25lKHZvaWQpOwor
CisjZW5kaWYgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisKKyNpZiAhVUNPTkZJR19OT19T
RVJWSUNFCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBuZXcgYnJlYWsgaXRlcmF0b3Igb2Yg
dGhlIGluZGljYXRlZCBraW5kLCB0byB1c2UgaW4gdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBU
aGUgYnJlYWsgaXRlcmF0b3Igd2lsbCBiZSBhZG9wdGVkLiAgQ2xvbmVzIG9mIHRoZSBpdGVyYXRv
ciB3aWxsIGJlIHJldHVybmVkCisgICAgICogaWYgYSByZXF1ZXN0IGZvciBhIGJyZWFrIGl0ZXJh
dG9yIG9mIHRoZSBnaXZlbiBraW5kIG1hdGNoZXMgb3IgZmFsbHMgYmFjayB0bworICAgICAqIHRo
aXMgbG9jYWxlLgorICAgICAqIEJlY2F1c2UgSUNVIG1heSBjaG9vc2UgdG8gY2FjaGUgQnJlYWtJ
dGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBtdXN0CisgICAgICogYmUgY2FsbGVkIGF0IGFwcGxp
Y2F0aW9uIHN0YXJ0dXAsIHByaW9yIHRvIGFueSBjYWxscyB0bworICAgICAqIEJyZWFrSXRlcmF0
b3I6OmNyZWF0ZVhYWEluc3RhbmNlIHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhhdmlvci4KKyAgICAg
KiBAcGFyYW0gdG9BZG9wdCB0aGUgQnJlYWtJdGVyYXRvciBpbnN0YW5jZSB0byBiZSBhZG9wdGVk
CisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgTG9jYWxlIGZvciB3aGljaCB0aGlzIGluc3RhbmNl
IGlzIHRvIGJlIHJlZ2lzdGVyZWQKKyAgICAgKiBAcGFyYW0ga2luZCB0aGUgdHlwZSBvZiBpdGVy
YXRvciBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAgICog
QHBhcmFtIHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVjaWFsIG1lYW5pbmdz
IGFyZSBhc3NpZ25lZAorICAgICAqIEByZXR1cm4gYSByZWdpc3RyeSBrZXkgdGhhdCBjYW4gYmUg
dXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQK
KyAgICAgKi8KKyAgICBzdGF0aWMgVVJlZ2lzdHJ5S2V5IFVfRVhQT1JUMiByZWdpc3Rlckluc3Rh
bmNlKEJyZWFrSXRlcmF0b3IqIHRvQWRvcHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgTG9jYWxlJiBsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVUJyZWFrSXRlcmF0b3JUeXBlIGtpbmQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8q
KgorICAgICAqIFVucmVnaXN0ZXIgYSBwcmV2aW91c2x5LXJlZ2lzdGVyZWQgQnJlYWtJdGVyYXRv
ciB1c2luZyB0aGUga2V5IHJldHVybmVkIGZyb20gdGhlCisgICAgICogcmVnaXN0ZXIgY2FsbC4g
IEtleSBiZWNvbWVzIGludmFsaWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgYW5kIHNob3VsZCBu
b3QgYmUgdXNlZCBhZ2Fpbi4KKyAgICAgKiBUaGUgQnJlYWtJdGVyYXRvciBjb3JyZXNwb25kaW5n
IHRvIHRoZSBrZXkgd2lsbCBiZSBkZWxldGVkLgorICAgICAqIEJlY2F1c2UgSUNVIG1heSBjaG9v
c2UgdG8gY2FjaGUgQnJlYWtJdGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBzaG91bGQKKyAgICAg
KiBiZSBjYWxsZWQgZHVyaW5nIGFwcGxpY2F0aW9uIHNodXRkb3duLCBhZnRlciBhbGwgY2FsbHMg
dG8KKyAgICAgKiBCcmVha0l0ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0byBhdm9pZCB1bmRl
ZmluZWQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIGtleSB0aGUgcmVnaXN0cnkga2V5IHJldHVy
bmVkIGJ5IGEgcHJldmlvdXMgY2FsbCB0byByZWdpc3Rlckluc3RhbmNlCisgICAgICogQHBhcmFt
IHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVjaWFsIG1lYW5pbmdzIGFyZSBh
c3NpZ25lZAorICAgICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgaXRlcmF0b3IgZm9yIHRoZSBrZXkg
d2FzIHN1Y2Nlc3NmdWxseSB1bnJlZ2lzdGVyZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAg
ICAgKi8KKyAgICBzdGF0aWMgVUJvb2wgVV9FWFBPUlQyIHVucmVnaXN0ZXIoVVJlZ2lzdHJ5S2V5
IGtleSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIFN0
cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMgYXZhaWxhYmxlIGF0IHRoZSB0aW1lIG9m
IHRoZSBjYWxsLAorICAgICAqIGluY2x1ZGluZyByZWdpc3RlcmVkIGxvY2FsZXMuCisgICAgICog
QHJldHVybiBhIFN0cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMgYXZhaWxhYmxlIGF0
IHRoZSB0aW1lIG9mIHRoZSBjYWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisg
ICAgc3RhdGljIFN0cmluZ0VudW1lcmF0aW9uKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxlTG9jYWxl
cyh2b2lkKTsKKyNlbmRpZgorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlIGZv
ciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiBUd28gZmxhdm9ycyBhcmUgYXZhaWxhYmxlOiB2YWxpZCBh
bmQKKyAgICAgKiBhY3R1YWwgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAq
LworICAgIExvY2FsZSBnZXRMb2NhbGUoVUxvY0RhdGFMb2NhbGVUeXBlIHR5cGUsIFVFcnJvckNv
ZGUmIHN0YXR1cykgY29uc3Q7CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8q
KiBHZXQgdGhlIGxvY2FsZSBmb3IgdGhpcyBicmVhayBpdGVyYXRvciBvYmplY3QuIFlvdSBjYW4g
Y2hvb3NlIGJldHdlZW4gdmFsaWQgYW5kIGFjdHVhbCBsb2NhbGUuCisgICAgICogIEBwYXJhbSB0
eXBlIHR5cGUgb2YgdGhlIGxvY2FsZSB3ZSdyZSBsb29raW5nIGZvciAodmFsaWQgb3IgYWN0dWFs
KQorICAgICAqICBAcGFyYW0gc3RhdHVzIGVycm9yIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24KKyAg
ICAgKiAgQHJldHVybiB0aGUgbG9jYWxlCisgICAgICogIEBpbnRlcm5hbAorICAgICAqLworICAg
IGNvbnN0IGNoYXIgKmdldExvY2FsZUlEKFVMb2NEYXRhTG9jYWxlVHlwZSB0eXBlLCBVRXJyb3JD
b2RlJiBzdGF0dXMpIGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisK
KyAgICAvKioKKyAgICAgKiAgU2V0IHRoZSBzdWJqZWN0IHRleHQgc3RyaW5nIHVwb24gd2hpY2gg
dGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9wZXJhdGluZworICAgICAqICB3aXRob3V0IGNoYW5naW5n
IGFueSBvdGhlciBhc3BlY3Qgb2YgdGhlIG1hdGNoaW5nIHN0YXRlLgorICAgICAqICBUaGUgbmV3
IGFuZCBwcmV2aW91cyB0ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCisg
ICAgICoKKyAgICAgKiAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGluIGVudmly
b25tZW50cyB3aGVyZSBJQ1UgaXMgb3BlcmF0aW5nIG9uCisgICAgICogIHN0cmluZ3MgdGhhdCBt
YXkgbW92ZSBhcm91bmQgaW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIG5v
dGlmeWluZworICAgICAqICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVuIHJlbG9jYXRlZCwg
YW5kIHByb3ZpZGluZyBhIG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICAgICogIHN0cmluZyBp
biBpdHMgbmV3IHBvc2l0aW9uLgorICAgICAqCisgICAgICogIE5vdGUgdGhhdCB0aGUgYnJlYWsg
aXRlcmF0b3IgaW1wbGVtZW50YXRpb24gbmV2ZXIgY29waWVzIHRoZSB1bmRlcmx5aW5nIHRleHQK
KyAgICAgKiAgb2YgYSBzdHJpbmcgYmVpbmcgcHJvY2Vzc2VkLCBidXQgYWx3YXlzIG9wZXJhdGVz
IGRpcmVjdGx5IG9uIHRoZSBvcmlnaW5hbCB0ZXh0CisgICAgICogIHByb3ZpZGVkIGJ5IHRoZSB1
c2VyLiBSZWZyZXNoaW5nIHNpbXBseSBkcm9wcyB0aGUgcmVmZXJlbmNlcyB0byB0aGUgb2xkIHRl
eHQKKyAgICAgKiAgYW5kIHJlcGxhY2VzIHRoZW0gd2l0aCByZWZlcmVuY2VzIHRvIHRoZSBuZXcu
CisgICAgICoKKyAgICAgKiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rpb24gaXMgbm9ybWFsbHkgdXNl
ZCBvbmx5IGJ5IHZlcnkgc3BlY2lhbGl6ZWQsCisgICAgICogIHN5c3RlbS1sZXZlbCBjb2RlLiAg
T25lIGV4YW1wbGUgdXNlIGNhc2UgaXMgd2l0aCBnYXJiYWdlIGNvbGxlY3Rpb24gdGhhdCBtb3Zl
cworICAgICAqICB0aGUgdGV4dCBpbiBtZW1vcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5w
dXQgICAgICBUaGUgbmV3IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisgICAgICogQHBhcmFtIHN0YXR1
cyAgICAgUmVjZWl2ZXMgZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCisgICAgICog
QHJldHVybiAgICAgICAgICAgKnRoaXMKKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDQ5Cisg
ICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yICZyZWZyZXNoSW5wdXRUZXh0KFVUZXh0
ICppbnB1dCwgVUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyBwcml2YXRlOgorICAgIHN0YXRp
YyBCcmVha0l0ZXJhdG9yKiBidWlsZEluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBjb25zdCBj
aGFyICp0eXBlLCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisgICAgc3RhdGlj
IEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBpbnQzMl90
IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIG1h
a2VJbnN0YW5jZShjb25zdCBMb2NhbGUmIGxvYywgaW50MzJfdCBraW5kLCBVRXJyb3JDb2RlJiBz
dGF0dXMpOworCisgICAgZnJpZW5kIGNsYXNzIElDVUJyZWFrSXRlcmF0b3JGYWN0b3J5OworICAg
IGZyaWVuZCBjbGFzcyBJQ1VCcmVha0l0ZXJhdG9yU2VydmljZTsKKworcHJvdGVjdGVkOgorICAg
IC8vIERvIG5vdCBlbmNsb3NlIHByb3RlY3RlZCBkZWZhdWx0L2NvcHkgY29uc3RydWN0b3JzIHdp
dGggI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLy8gb3IgZWxzZSB0aGUgY29tcGls
ZXIgd2lsbCBjcmVhdGUgYSBwdWJsaWMgb25lcy4KKyAgICAvKiogQGludGVybmFsICovCisgICAg
QnJlYWtJdGVyYXRvcigpOworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJhdG9y
IChjb25zdCBCcmVha0l0ZXJhdG9yICZvdGhlcikgOiBVT2JqZWN0KG90aGVyKSB7fQorICAgIC8q
KiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJhdG9yIChjb25zdCBMb2NhbGUmIHZhbGlkLCBj
b25zdCBMb2NhbGUmIGFjdHVhbCk7Citwcml2YXRlOgorCisgICAgLyoqIEBpbnRlcm5hbCAqLwor
ICAgIGNoYXIgYWN0dWFsTG9jYWxlW1VMT0NfRlVMTE5BTUVfQ0FQQUNJVFldOworICAgIGNoYXIg
dmFsaWRMb2NhbGVbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07CisKKyAgICAvKioKKyAgICAgKiBU
aGUgYXNzaWdubWVudCBvcGVyYXRvciBoYXMgbm8gcmVhbCBpbXBsZW1lbnRhdGlvbi4KKyAgICAg
KiBJdCdzIHByb3ZpZGVkIHRvIG1ha2UgdGhlIGNvbXBpbGVyIGhhcHB5LiBEbyBub3QgY2FsbC4K
KyAgICAgKi8KKyAgICBCcmVha0l0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3QgQnJlYWtJdGVyYXRv
ciYpOworfTsKKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworaW5saW5lIFVCb29s
IEJyZWFrSXRlcmF0b3I6OmlzQnVmZmVyQ2xvbmUoKQoreworICAgIHJldHVybiBGQUxTRTsKK30K
KworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLworCitVX05BTUVTUEFDRV9FTkQK
KworI2VuZGlmIC8qICNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gKi8KKworI2VuZGlm
IC8vIF9CUktJVEVSCisvL2VvZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9j
aGFyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9jaGFyaXRlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU4ZDY1MDkwYTQwYTYwODU5NTFjNzMzMDdmNzRhY2Y4M2JhMWJiYzgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmgKQEAgLTAsMCArMSw3MjIgQEAK
Ky8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDExLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBDSEFSSVRF
Ul9ICisjZGVmaW5lIENIQVJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisj
aW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIK
Ky8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAq
LworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhhdCBkZWZp
bmVzIGFuIEFQSSBmb3IgZm9yd2FyZC1vbmx5IGl0ZXJhdGlvbgorICogb24gdGV4dCBvYmplY3Rz
LgorICogVGhpcyBpcyBhIG1pbmltYWwgaW50ZXJmYWNlIGZvciBpdGVyYXRpb24gd2l0aG91dCBy
YW5kb20gYWNjZXNzCisgKiBvciBiYWNrd2FyZHMgaXRlcmF0aW9uLiBJdCBpcyBlc3BlY2lhbGx5
IHVzZWZ1bCBmb3Igd3JhcHBpbmcKKyAqIHN0cmVhbXMgd2l0aCBjb252ZXJ0ZXJzIGludG8gYW4g
b2JqZWN0IGZvciBjb2xsYXRpb24gb3IKKyAqIG5vcm1hbGl6YXRpb24uCisgKgorICogPHA+Q2hh
cmFjdGVycyBjYW4gYmUgYWNjZXNzZWQgaW4gdHdvIHdheXM6IGFzIGNvZGUgdW5pdHMgb3IgYXMK
KyAqIGNvZGUgcG9pbnRzLgorICogVW5pY29kZSBjb2RlIHBvaW50cyBhcmUgMjEtYml0IGludGVn
ZXJzIGFuZCBhcmUgdGhlIHNjYWxhciB2YWx1ZXMKKyAqIG9mIFVuaWNvZGUgY2hhcmFjdGVycy4g
SUNVIHVzZXMgdGhlIHR5cGUgVUNoYXIzMiBmb3IgdGhlbS4KKyAqIFVuaWNvZGUgY29kZSB1bml0
cyBhcmUgdGhlIHN0b3JhZ2UgdW5pdHMgb2YgYSBnaXZlbgorICogVW5pY29kZS9VQ1MgVHJhbnNm
b3JtYXRpb24gRm9ybWF0IChhIGNoYXJhY3RlciBlbmNvZGluZyBzY2hlbWUpLgorICogV2l0aCBV
VEYtMTYsIGFsbCBjb2RlIHBvaW50cyBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aCBlaXRoZXIgb25l
CisgKiBvciB0d28gY29kZSB1bml0cyAoInN1cnJvZ2F0ZXMiKS4KKyAqIFN0cmluZyBzdG9yYWdl
IGlzIHR5cGljYWxseSBiYXNlZCBvbiBjb2RlIHVuaXRzLCB3aGlsZSBwcm9wZXJ0aWVzCisgKiBv
ZiBjaGFyYWN0ZXJzIGFyZSB0eXBpY2FsbHkgZGV0ZXJtaW5lZCB1c2luZyBjb2RlIHBvaW50IHZh
bHVlcy4KKyAqIFNvbWUgcHJvY2Vzc2VzIG1heSBiZSBkZXNpZ25lZCB0byB3b3JrIHdpdGggc2Vx
dWVuY2VzIG9mIGNvZGUgdW5pdHMsCisgKiBvciBpdCBtYXkgYmUga25vd24gdGhhdCBhbGwgY2hh
cmFjdGVycyB0aGF0IGFyZSBpbXBvcnRhbnQgdG8gYW4KKyAqIGFsZ29yaXRobSBjYW4gYmUgcmVw
cmVzZW50ZWQgd2l0aCBzaW5nbGUgY29kZSB1bml0cy4KKyAqIE90aGVyIHByb2Nlc3NlcyB3aWxs
IG5lZWQgdG8gdXNlIHRoZSBjb2RlIHBvaW50IGFjY2VzcyBmdW5jdGlvbnMuPC9wPgorICoKKyAq
IDxwPkZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciBwcm92aWRlcyBuZXh0UG9zdEluYygpIHRvIGFj
Y2VzcworICogYSBjb2RlIHVuaXQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwgcG9zaXRpb24gaW50
byB0aGUgdGV4dCBvYmplY3QsCisgKiBzaW1pbGFyIHRvIGEgPGNvZGU+cmV0dXJuIHRleHRbcG9z
aXRpb24rK108L2NvZGU+Ljxicj4KKyAqIEl0IHByb3ZpZGVzIG5leHQzMlBvc3RJbmMoKSB0byBh
Y2Nlc3MgYSBjb2RlIHBvaW50IGFuZCBhZHZhbmNlIGFuIGludGVybmFsCisgKiBwb3NpdGlvbi48
L3A+CisgKgorICogPHA+bmV4dDMyUG9zdEluYygpIGFzc3VtZXMgdGhhdCB0aGUgY3VycmVudCBw
b3NpdGlvbiBpcyB0aGF0IG9mCisgKiB0aGUgYmVnaW5uaW5nIG9mIGEgY29kZSBwb2ludCwgaS5l
Liwgb2YgaXRzIGZpcnN0IGNvZGUgdW5pdC4KKyAqIEFmdGVyIG5leHQzMlBvc3RJbmMoKSwgdGhp
cyB3aWxsIGJlIHRydWUgYWdhaW4uCisgKiBJbiBnZW5lcmFsLCBhY2Nlc3MgdG8gY29kZSB1bml0
cyBhbmQgY29kZSBwb2ludHMgaW4gdGhlIHNhbWUKKyAqIGl0ZXJhdGlvbiBsb29wIHNob3VsZCBu
b3QgYmUgbWl4ZWQuIEluIFVURi0xNiwgaWYgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAqIGlzIG9u
IGEgc2Vjb25kIGNvZGUgdW5pdCAoTG93IFN1cnJvZ2F0ZSksIHRoZW4gb25seSB0aGF0IGNvZGUg
dW5pdAorICogaXMgcmV0dXJuZWQgZXZlbiBieSBuZXh0MzJQb3N0SW5jKCkuPC9wPgorICoKKyAq
IDxwPkZvciBpdGVyYXRpb24gd2l0aCBlaXRoZXIgZnVuY3Rpb24sIHRoZXJlIGFyZSB0d28gd2F5
cyB0bworICogY2hlY2sgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbi4gV2hlbiB0aGVyZSBh
cmUgbm8gbW9yZQorICogY2hhcmFjdGVycyBpbiB0aGUgdGV4dCBvYmplY3Q6CisgKiA8dWw+Cisg
KiA8bGk+VGhlIGhhc05leHQoKSBmdW5jdGlvbiByZXR1cm5zIEZBTFNFLjwvbGk+CisgKiA8bGk+
bmV4dFBvc3RJbmMoKSBhbmQgbmV4dDMyUG9zdEluYygpIHJldHVybiBET05FCisgKiAgICAgd2hl
biBvbmUgYXR0ZW1wdHMgdG8gcmVhZCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgdGV4dCBvYmplY3Qu
PC9saT4KKyAqIDwvdWw+CisgKgorICogRXhhbXBsZToKKyAqIFxjb2RlIAorICogdm9pZCBmdW5j
dGlvbjEoRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyMzIgYzsK
KyAqICAgICB3aGlsZShpdC5oYXNOZXh0KCkpIHsKKyAqICAgICAgICAgYz1pdC5uZXh0MzJQb3N0
SW5jKCk7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgfQorICogfQorICoKKyAqIHZvaWQg
ZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhciBj
OworICogICAgIHdoaWxlKChjPWl0Lm5leHRQb3N0SW5jKCkpIT1Gb3J3YXJkQ2hhcmFjdGVySXRl
cmF0b3I6OkRPTkUpIHsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICogIH0KKyAq
IFxlbmRjb2RlCisgKiA8L3A+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVf
Q09NTU9OX0FQSSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgVU9iamVjdCB7Citw
dWJsaWM6CisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgbW9zdCBvZiBGb3J3YXJk
Q2hhcmFjdGVySXRlcmF0b3IncyBmdW5jdGlvbnMKKyAgICAgKiB3aGVuIHRoZSBpdGVyYXRvciBo
YXMgcmVhY2hlZCB0aGUgbGltaXRzIG9mIGl0cyBpdGVyYXRpb24uCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgZW51bSB7IERPTkUgPSAweGZmZmYgfTsKKyAgICAKKyAgICAv
KioKKyAgICAgKiBEZXN0cnVjdG9yLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCB+Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgCisgICAgLyoq
CisgICAgICogUmV0dXJucyB0cnVlIHdoZW4gYm90aCBpdGVyYXRvcnMgcmVmZXIgdG8gdGhlIHNh
bWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgY2hhcmFjdGVyLXN0b3JhZ2Ugb2JqZWN0
LiAgCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0byBi
ZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRydWUgd2hlbiBib3RoIGl0
ZXJhdG9ycyByZWZlciB0byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSBj
aGFyYWN0ZXItc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yJiB0aGF0KSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVl
IHdoZW4gdGhlIGl0ZXJhdG9ycyByZWZlciB0byBkaWZmZXJlbnQKKyAgICAgKiB0ZXh0LXN0b3Jh
Z2Ugb2JqZWN0cywgb3IgdG8gZGlmZmVyZW50IGNoYXJhY3RlcnMgaW4gdGhlCisgICAgICogc2Ft
ZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LiAgCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRD
aGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgaW5lcXVhbGl0eQorICAgICAqIEBy
ZXR1cm4gdHJ1ZSB3aGVuIHRoZSBpdGVyYXRvcnMgcmVmZXIgdG8gZGlmZmVyZW50CisgICAgICog
dGV4dC1zdG9yYWdlIG9iamVjdHMsIG9yIHRvIGRpZmZlcmVudCBjaGFyYWN0ZXJzIGluIHRoZQor
ICAgICAqIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIGlubGluZSBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEZvcndhcmRDaGFyYWN0
ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisgICAgCisgICAgLyoqCisgICAgICogR2VuZXJhdGVz
IGEgaGFzaCBjb2RlIGZvciB0aGlzIGl0ZXJhdG9yLiAgCisgICAgICogQHJldHVybiB0aGUgaGFz
aCBjb2RlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50
MzJfdCBoYXNoQ29kZSh2b2lkKSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0
dXJucyBhIFVDbGFzc0lEIGZvciB0aGlzIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAoInBvb3Ig
bWFuJ3MKKyAgICAgKiBSVFRJIikuPFA+IERlc3BpdGUgdGhlIGZhY3QgdGhhdCB0aGlzIGZ1bmN0
aW9uIGlzIHB1YmxpYywKKyAgICAgKiBETyBOT1QgQ09OU0lERVIgSVQgUEFSVCBPRiBDSEFSQUNU
RVJJVEVSQVRPUidTIEFQSSEgCisgICAgICogQHJldHVybiBhIFVDbGFzc0lEIGZvciB0aGlzIEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0ID0gMDsK
KyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgdW5pdCBmb3IgcmV0
dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0aGUg
aXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFy
ZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAg
ICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dFBvc3RJbmModm9pZCkg
PSAwOworICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSBwb2ludCBm
b3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAgICog
aW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0
aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBE
T05FLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSBwb2ludC4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyUG9z
dEluYyh2b2lkKSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBGQUxTRSBpZiB0
aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYXQgb3Ig
YWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAg
KiBUaGlzIGlzIHVzZWQgd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMoKSBpbiBm
b3J3YXJkCisgICAgICogaXRlcmF0aW9uLgorICAgICAqIEByZXR1cm5zIEZBTFNFIGlmIHRoZXJl
IGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAgKiBhdCBvciBhZnRl
ciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc05leHQo
KSA9IDA7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgLyoqIERlZmF1bHQgY29uc3RydWN0b3IgdG8g
YmUgb3ZlcnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLiBAc3RhYmxlIElDVSAyLjAq
LworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgIAorICAgIC8qKiBDb3B5IGNv
bnN0cnVjdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGluZyBjbGFzcy4gQHN0
YWJsZSBJQ1UgMi4wKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yICZvdGhlcik7CisgICAgCisgICAgLyoqCisgICAgICogQXNzaWdu
bWVudCBvcGVyYXRvciB0byBiZSBvdmVycmlkZGVuIGluIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3Mu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgRm9yd2FyZENoYXJhY3Rlckl0
ZXJhdG9yICZvcGVyYXRvcj0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJikgeyByZXR1
cm4gKnRoaXM7IH0KK307CisKKy8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhhdCBkZWZpbmVzIGFu
IEFQSSBmb3IgaXRlcmF0aW9uCisgKiBvbiB0ZXh0IG9iamVjdHMuCisgKiBUaGlzIGlzIGFuIGlu
dGVyZmFjZSBmb3IgZm9yd2FyZCBhbmQgYmFja3dhcmQgaXRlcmF0aW9uCisgKiBhbmQgcmFuZG9t
IGFjY2VzcyBpbnRvIGEgdGV4dCBvYmplY3QuCisgKgorICogPHA+VGhlIEFQSSBwcm92aWRlcyBi
YWNrd2FyZCBjb21wYXRpYmlsaXR5IHRvIHRoZSBKYXZhIGFuZCBvbGRlciBJQ1UKKyAqIENoYXJh
Y3Rlckl0ZXJhdG9yIGNsYXNzZXMgYnV0IGV4dGVuZHMgdGhlbSBzaWduaWZpY2FudGx5OgorICog
PG9sPgorICogPGxpPkNoYXJhY3Rlckl0ZXJhdG9yIGlzIG5vdyBhIHN1YmNsYXNzIG9mIEZvcndh
cmRDaGFyYWN0ZXJJdGVyYXRvci48L2xpPgorICogPGxpPldoaWxlIHRoZSBvbGQgQVBJIGZ1bmN0
aW9ucyBwcm92aWRlZCBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoCisgKiAgICAgInByZS1pbmNyZW1l
bnQiIHNlbWFudGljcywgdGhlIG5ldyBvbmUgYWxzbyBwcm92aWRlcyBmdW5jdGlvbnMKKyAqICAg
ICB3aXRoICJwb3N0LWluY3JlbWVudCIgc2VtYW50aWNzLiBUaGV5IGFyZSBtb3JlIGVmZmljaWVu
dCBhbmQgc2hvdWxkCisgKiAgICAgYmUgdGhlIHByZWZlcnJlZCBpdGVyYXRvciBmdW5jdGlvbnMg
Zm9yIG5ldyBpbXBsZW1lbnRhdGlvbnMuCisgKiAgICAgVGhlIGJhY2t3YXJkIGl0ZXJhdGlvbiBh
bHdheXMgaGFkICJwcmUtZGVjcmVtZW50IiBzZW1hbnRpY3MsIHdoaWNoCisgKiAgICAgYXJlIGVm
ZmljaWVudC48L2xpPgorICogPGxpPkp1c3QgbGlrZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Is
IGl0IHByb3ZpZGVzIGFjY2VzcyB0bworICogICAgIGJvdGggY29kZSB1bml0cyBhbmQgY29kZSBw
b2ludHMuIENvZGUgcG9pbnQgYWNjZXNzIHZlcnNpb25zIGFyZSBhdmFpbGFibGUKKyAqICAgICBm
b3IgdGhlIG9sZCBhbmQgdGhlIG5ldyBpdGVyYXRpb24gc2VtYW50aWNzLjwvbGk+CisgKiA8bGk+
VGhlcmUgYXJlIG5ldyBmdW5jdGlvbnMgZm9yIHNldHRpbmcgYW5kIG1vdmluZyB0aGUgY3VycmVu
dCBwb3NpdGlvbgorICogICAgIHdpdGhvdXQgcmV0dXJuaW5nIGEgY2hhcmFjdGVyLCBmb3IgZWZm
aWNpZW5jeS48L2xpPgorICogPC9vbD4KKyAqCisgKiBTZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yIGZvciBleGFtcGxlcyBmb3IgdXNpbmcgdGhlIG5ldyBmb3J3YXJkIGl0ZXJhdGlvbgorICog
ZnVuY3Rpb25zLiBGb3IgYmFja3dhcmQgaXRlcmF0aW9uLCB0aGVyZSBpcyBhbHNvIGEgaGFzUHJl
dmlvdXMoKSBmdW5jdGlvbgorICogdGhhdCBjYW4gYmUgdXNlZCBhbmFsb2dvdXNseSB0byBoYXNO
ZXh0KCkuCisgKiBUaGUgb2xkIGZ1bmN0aW9ucyB3b3JrIGFzIGJlZm9yZSBhbmQgYXJlIHNob3du
IGJlbG93LjwvcD4KKyAqCisgKiA8cD5FeGFtcGxlcyBmb3Igc29tZSBvZiB0aGUgbmV3IGZ1bmN0
aW9uczo8L3A+CisgKgorICogRm9yd2FyZCBpdGVyYXRpb24gd2l0aCBoYXNOZXh0KCk6CisgKiBc
Y29kZQorICogdm9pZCBmb3J3YXJkMShDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBV
Q2hhcjMyIGM7CisgKiAgICAgZm9yKGl0LnNldFRvU3RhcnQoKTsgaXQuaGFzTmV4dCgpOykgewor
ICogICAgICAgICBjPWl0Lm5leHQzMlBvc3RJbmMoKTsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAq
ICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIEZvcndhcmQgaXRlcmF0aW9uIG1vcmUgc2lt
aWxhciB0byBsb29wcyB3aXRoIHRoZSBvbGQgZm9yd2FyZCBpdGVyYXRpb24sCisgKiBzaG93aW5n
IGEgd2F5IHRvIGNvbnZlcnQgc2ltcGxlIGZvcigpIGxvb3BzOgorICogXGNvZGUKKyAqIHZvaWQg
Zm9yd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAg
ICBmb3IoYz1pdC5maXJzdFBvc3RJbmMoKTsgYyE9Q2hhcmFjdGVySXRlcmF0b3I6OkRPTkU7IGM9
aXQubmV4dFBvc3RJbmMoKSkgeworICogICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICog
fQorICogXGVuZGNvZGUKKyAqIEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIHNldFRvRW5kKCkgYW5k
IGhhc1ByZXZpb3VzKCk6CisgKiBcY29kZQorICogIHZvaWQgYmFja3dhcmQxKENoYXJhY3Rlckl0
ZXJhdG9yICZpdCkgeworICogICAgICBVQ2hhcjMyIGM7CisgKiAgICAgIGZvcihpdC5zZXRUb0Vu
ZCgpOyBpdC5oYXNQcmV2aW91cygpOykgeworICogICAgICAgICBjPWl0LnByZXZpb3VzMzIoKTsK
KyAqICAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICog
QmFja3dhcmQgaXRlcmF0aW9uIHdpdGggYSBtb3JlIHRyYWRpdGlvbmFsIGZvcigpIGxvb3A6Cisg
KiBcY29kZQorICogdm9pZCBiYWNrd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAg
ICAgVUNoYXIgYzsKKyAqICAgICBmb3IoYz1pdC5sYXN0KCk7IGMhPUNoYXJhY3Rlckl0ZXJhdG9y
OjpET05FOyBjPWl0LnByZXZpb3VzKCkpIHsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAg
fQorICogIH0KKyAqIFxlbmRjb2RlCisgKgorICogRXhhbXBsZSBmb3IgcmFuZG9tIGFjY2VzczoK
KyAqIFxjb2RlCisgKiAgdm9pZCByYW5kb20oQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAg
ICAgIC8vIHNldCB0byB0aGUgdGhpcmQgY29kZSBwb2ludCBmcm9tIHRoZSBiZWdpbm5pbmcKKyAq
ICAgICAgaXQubW92ZTMyKDMsIENoYXJhY3Rlckl0ZXJhdG9yOjprU3RhcnQpOworICogICAgICAv
LyBnZXQgYSBjb2RlIHBvaW50IGZyb20gaGVyZSB3aXRob3V0IG1vdmluZyB0aGUgcG9zaXRpb24K
KyAqICAgICAgVUNoYXIzMiBjPWl0LmN1cnJlbnQzMigpOworICogICAgICAvLyBnZXQgdGhlIHBv
c2l0aW9uCisgKiAgICAgIGludDMyX3QgcG9zPWl0LmdldEluZGV4KCk7CisgKiAgICAgIC8vIGdl
dCB0aGUgcHJldmlvdXMgY29kZSB1bml0CisgKiAgICAgIFVDaGFyIHU9aXQucHJldmlvdXMoKTsK
KyAqICAgICAgLy8gbW92ZSBiYWNrIG9uZSBtb3JlIGNvZGUgdW5pdAorICogICAgICBpdC5tb3Zl
KC0xLCBDaGFyYWN0ZXJJdGVyYXRvcjo6a0N1cnJlbnQpOworICogICAgICAvLyBzZXQgdGhlIHBv
c2l0aW9uIGJhY2sgdG8gd2hlcmUgaXQgd2FzCisgKiAgICAgIC8vIGFuZCByZWFkIHRoZSBzYW1l
IGNvZGUgcG9pbnQgYyBhbmQgbW92ZSBiZXlvbmQgaXQKKyAqICAgICAgaXQuc2V0SW5kZXgocG9z
KTsKKyAqICAgICAgaWYoYyE9aXQubmV4dDMyUG9zdEluYygpKSB7CisgKiAgICAgICAgICBleGl0
KDEpOyAvLyBDaGFyYWN0ZXJJdGVyYXRvciBpbmNvbnNpc3RlbnQKKyAqICAgICAgfQorICogIH0K
KyAqIFxlbmRjb2RlCisgKgorICogPHA+RXhhbXBsZXMsIGVzcGVjaWFsbHkgZm9yIHRoZSBvbGQg
QVBJOjwvcD4KKyAqCisgKiBGdW5jdGlvbiBwcm9jZXNzaW5nIGNoYXJhY3RlcnMsIGluIHRoaXMg
ZXhhbXBsZSBzaW1wbGUgb3V0cHV0CisgKiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIHByb2Nl
c3NDaGFyKCBVQ2hhciBjICkKKyAqICB7CisgKiAgICAgIGNvdXQgPDwgIiAiIDw8IGM7CisgKiAg
fQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgdGhlIHRleHQgZnJvbSBzdGFy
dCB0byBmaW5pc2gKKyAqIDxwcmU+IAorICogXGNvZGUKKyAqICB2b2lkIHRyYXZlcnNlRm9yd2Fy
ZChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlcikKKyAqICB7CisgKiAgICAgIGZvcihVQ2hhciBjID0g
aXRlci5maXJzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMgPSBpdGVyLm5leHQo
KSkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgIH0KKyAqICB9CisgKiBc
ZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSB0aGUgdGV4dCBiYWNrd2FyZHMsIGZyb20g
ZW5kIHRvIHN0YXJ0CisgKiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIHRyYXZlcnNlQmFja3dh
cmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIpCisgKiAgeworICogICAgICBmb3IoVUNoYXIgYyA9
IGl0ZXIubGFzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMgPSBpdGVyLnByZXZp
b3VzKCkpIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMpOworICogICAgICB9CisgKiAgfQor
ICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgYm90aCBmb3J3YXJkIGFuZCBiYWNr
d2FyZCBmcm9tIGEgZ2l2ZW4gcG9zaXRpb24gaW4gdGhlIHRleHQuIAorICogQ2FsbHMgdG8gbm90
Qm91bmRhcnkoKSBpbiB0aGlzIGV4YW1wbGUgcmVwcmVzZW50cyBzb21lIGFkZGl0aW9uYWwgc3Rv
cHBpbmcgY3JpdGVyaWEuCisgKiA8cHJlPgorICogXGNvZGUKKyAqIHZvaWQgdHJhdmVyc2VPdXQo
Q2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIsIGludDMyX3QgcG9zKQorICogeworICogICAgICBVQ2hh
ciBjOworICogICAgICBmb3IgKGMgPSBpdGVyLnNldEluZGV4KHBvcyk7CisgKiAgICAgIGMgIT0g
Q2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJiAoVW5pY29kZTo6aXNMZXR0ZXIoYykgfHwgVW5pY29k
ZTo6aXNEaWdpdChjKSk7CisgKiAgICAgICAgICBjID0gaXRlci5uZXh0KCkpIHt9CisgKiAgICAg
IGludDMyX3QgZW5kID0gaXRlci5nZXRJbmRleCgpOworICogICAgICBmb3IgKGMgPSBpdGVyLnNl
dEluZGV4KHBvcyk7CisgKiAgICAgICAgICBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYg
KFVuaWNvZGU6OmlzTGV0dGVyKGMpIHx8IFVuaWNvZGU6OmlzRGlnaXQoYykpOworICogICAgICAg
ICAgYyA9IGl0ZXIucHJldmlvdXMoKSkge30KKyAqICAgICAgaW50MzJfdCBzdGFydCA9IGl0ZXIu
Z2V0SW5kZXgoKSArIDE7CisgKiAgCisgKiAgICAgIGNvdXQgPDwgInN0YXJ0OiAiIDw8IHN0YXJ0
IDw8ICIgZW5kOiAiIDw8IGVuZCA8PCBlbmRsOworICogICAgICBmb3IgKGMgPSBpdGVyLnNldElu
ZGV4KHN0YXJ0KTsgaXRlci5nZXRJbmRleCgpIDwgZW5kOyBjID0gaXRlci5uZXh0KCkgKSB7Cisg
KiAgICAgICAgICBwcm9jZXNzQ2hhcihjKTsKKyAqICAgICB9CisgKiAgfQorICogXGVuZGNvZGUK
KyAqIDwvcHJlPgorICogQ3JlYXRpbmcgYSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBhbmQgY2Fs
bGluZyB0aGUgdGVzdCBmdW5jdGlvbnMKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZvaWQgQ2hh
cmFjdGVySXRlcmF0b3JfRXhhbXBsZSggdm9pZCApCisgKiAgIHsKKyAqICAgICAgIGNvdXQgPDwg
ZW5kbCA8PCAiPT09PT0gQ2hhcmFjdGVySXRlcmF0b3JfRXhhbXBsZTogPT09PT0iIDw8IGVuZGw7
CisgKiAgICAgICBVbmljb2RlU3RyaW5nIHRleHQoIkVpbiBrbGVpbmVyIFNhdHouIik7CisgKiAg
ICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvcih0ZXh0KTsKKyAqICAgICAgIGNv
dXQgPDwgIi0tLS0tIHRyYXZlcnNlRm9yd2FyZDogLS0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAg
ICAgICB0cmF2ZXJzZUZvcndhcmQoIGl0ZXJhdG9yICk7CisgKiAgICAgICBjb3V0IDw8IGVuZGwg
PDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVyc2VCYWNrd2FyZDogLS0tLS0tLS0tLSIgPDwgZW5kbDsK
KyAqICAgICAgIHRyYXZlcnNlQmFja3dhcmQoIGl0ZXJhdG9yICk7CisgKiAgICAgICBjb3V0IDw8
IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVyc2VPdXQ6IC0tLS0tLS0tLS0tLS0tLSIgPDwg
ZW5kbDsKKyAqICAgICAgIHRyYXZlcnNlT3V0KCBpdGVyYXRvciwgNyApOworICogICAgICAgY291
dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIiA8PCBlbmRsOworICogICB9CisgKiBcZW5kY29k
ZQorICogPC9wcmU+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9O
X0FQSSBDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Ig
eworcHVibGljOgorICAgIC8qKgorICAgICAqIE9yaWdpbiBlbnVtZXJhdGlvbiBmb3IgdGhlIG1v
dmUoKSBhbmQgbW92ZTMyKCkgZnVuY3Rpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIGVudW0gRU9yaWdpbiB7IGtTdGFydCwga0N1cnJlbnQsIGtFbmQgfTsKKworICAg
IC8qKgorICAgICAqIERlc3RydWN0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCB+Q2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAqIFJl
dHVybnMgYSBwb2ludGVyIHRvIGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yIG9mIHRoZSBzYW1lCisg
ICAgICogY29uY3JldGUgY2xhc3MgYXMgdGhpcyBvbmUsIGFuZCByZWZlcnJpbmcgdG8gdGhlIHNh
bWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdCBhcyB0
aGlzIG9uZS4gIFRoZQorICAgICAqIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcg
dGhlIG5ldyBjbG9uZS4gIAorICAgICAqIEByZXR1cm4gYSBwb2ludGVyIHRvIGEgbmV3IENoYXJh
Y3Rlckl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3QgPSAwOworCisgICAgLyoqCisg
ICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBp
biBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0
LgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4
dCgpLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9u
IHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNo
YXIgICAgICAgICBmaXJzdCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBp
dGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAgICAqIGl0
ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1vdmVzIHRoZSBwb3Np
dGlvbgorICAgICAqIHRvIHRoZSBzZWNvbmQgY29kZSB1bml0LiBUaGlzIGlzIGFuIGFsdGVybmF0
aXZlIHRvIHNldFRvU3RhcnQoKQorICAgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5l
eHRQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBp
dGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBVQ2hhciAgICAgICAgIGZpcnN0UG9zdEluYyh2b2lkKTsKKworICAgIC8qKgorICAgICAq
IFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0
cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsCisg
ICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzIo
KS4KKyAgICAgKiBOb3RlIHRoYXQgYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLCBi
ZWdpbm5pbmcgd2l0aCwKKyAgICAgKiBlLmcuLCBzZXRUb1N0YXJ0KCkgb3IgZmlyc3RQb3N0SW5j
KCksIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9p
bnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmlyc3QzMih2b2lkKSA9IDA7CisKKyAgICAv
KioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSBw
b2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHBv
aW50LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAgICogdG8gdGhlIHNlY29uZCBjb2RlIHBv
aW50LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAgICAqIGZvciBm
b3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRo
ZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzJQb3N0
SW5jKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIg
dG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvciBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0ZXJh
dGlvbiByYW5nZS4gVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhIGZvcndhcmQKKyAgICAgKiBp
dGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMoKS4KKyAgICAgKiBA
cmV0dXJuIHRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgc2V0VG9TdGFy
dCgpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhl
IGxhc3QgY29kZSB1bml0IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVy
bnMgdGhhdCBjb2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBp
dGVyYXRpb24gd2l0aCBwcmV2aW91cygpLgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSB1
bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIg
ICAgICAgICBsYXN0KHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0
aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAg
KiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgICAqIFRo
aXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMzMigpLgor
ICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMyKHZvaWQpID0gMDsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBlbmQgb2YgaXRzIGl0
ZXJhdGlvbiByYW5nZSwganVzdCBiZWhpbmQKKyAgICAgKiB0aGUgbGFzdCBjb2RlIHVuaXQgb3Ig
Y29kZSBwb2ludC4gVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhIGJhY2t3YXJkCisgICAgICog
aXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkuCisgICAgICogQHJldHVy
biB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICBzZXRUb0VuZCgpOworCisg
ICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlICJwb3NpdGlv
biItdGggY29kZSB1bml0CisgICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0
ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAgICogcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4gIAor
ICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQgaW4gdGhl
IHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAcmV0dXJuIHRoZSAicG9zaXRpb24iLXRoIGNv
ZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVD
aGFyICAgICAgICAgc2V0SW5kZXgoaW50MzJfdCBwb3NpdGlvbikgPSAwOworCisgICAgLyoqCisg
ICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUg
Y29kZSBwb2ludAorICAgICAqIHRoYXQgY29udGFpbnMgdGhlICJwb3NpdGlvbiItdGggY29kZSB1
bml0CisgICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVy
cyB0bywgYW5kCisgICAgICogcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisgICAgICogVGhlIGN1
cnJlbnQgcG9zaXRpb24gaXMgYWRqdXN0ZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29kZSBw
b2ludAorICAgICAqIChpdHMgZmlyc3QgY29kZSB1bml0KS4KKyAgICAgKiBAcGFyYW0gcG9zaXRp
b24gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0
CisgICAgICogQHJldHVybiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHBvaW50LgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBzZXRJbmRl
eDMyKGludDMyX3QgcG9zaXRpb24pID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhl
IGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4gCisgICAgICogQHJl
dHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBjdXJyZW50KHZvaWQpIGNvbnN0ID0gMDsK
KyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29kZSBwb2ludCB0aGUgaXRl
cmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4gIAorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQg
Y29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IFVDaGFyMzIgICAgICAgY3VycmVudDMyKHZvaWQpIGNvbnN0ID0gMDsKKyAgICAgICAgCisgICAg
LyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNv
ZGUgdW5pdC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1
cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgdW5pdC4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAg
bmV4dCh2b2lkKSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRo
ZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQg
ZW5kSW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZQor
ICAgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAg
ICogTm90ZSB0aGF0IGl0ZXJhdGlvbiB3aXRoICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MgaXMg
bGVzcworICAgICAqIGVmZmljaWVudCB0aGFuIGl0ZXJhdGlvbiB3aXRoICJwb3N0LWluY3JlbWVu
dCIgc2VtYW50aWNzCisgICAgICogdGhhdCBpcyBwcm92aWRlZCBieSBuZXh0MzJQb3N0SW5jKCku
CisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzIodm9pZCkgPSAw
OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29k
ZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIHN0YXJ0SW5kZXgo
KSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8g
bW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLiAgCisgICAgICogQHJldHVy
biB0aGUgcHJldmlvdXMgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBwcmV2aW91cyh2b2lkKSA9IDA7CisKKyAgICAv
KioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0
aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLiAKKyAgICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBj
b2RlIHBvaW50LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IFVDaGFyMzIgICAgICAgcHJldmlvdXMzMih2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBS
ZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2lu
dHMKKyAgICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiBy
YW5nZS4KKyAgICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIo
KSBpbiBiYWNrd2FyZAorICAgICAqIGl0ZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIEZBTFNFIGlm
IHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAgKiBiZWZv
cmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJuIFRS
VUUgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgVUJvb2wgICAgICAgIGhhc1ByZXZpb3VzKCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0
dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAg
ICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBmaXJzdCgpLiAgU2luY2Ug
aXQncworICAgICAqIHBvc3NpYmxlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVz
IGFjcm9zcyBvbmx5CisgICAgICogcGFydCBvZiBhIHRleHQtc3RvcmFnZSBvYmplY3QsIHRoaXMg
bnVtYmVyIGlzbid0CisgICAgICogbmVjZXNzYXJpbHkgMC4gIAorICAgICAqIEByZXR1cm5zIHRo
ZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9i
amVjdCBvZiB0aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGZpcnN0KCkuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAgc3RhcnRJbmRleCh2
b2lkKSBjb25zdDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtZXJp
YyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2Yg
dGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVyCisgICAgICogcmV0
dXJuZWQgYnkgbGFzdCgpLiAgCisgICAgICogQHJldHVybiB0aGUgbnVtZXJpYyBpbmRleCBpbiB0
aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIHBvc2l0aW9u
IGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVyCisgICAgICogcmV0dXJuZWQgYnkgbGFz
dCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90
ICAgICAgIGVuZEluZGV4KHZvaWQpIGNvbnN0OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBS
ZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQor
ICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVm
ZXJzIHRvCisgICAgICogKGkuZS4sIHRoZSBjaGFyYWN0ZXIgcmV0dXJuZWQgYnkgY3VycmVudCgp
KS4gIAorICAgICAqIEByZXR1cm4gdGhlIG51bWJlcmljIGluZGV4IGluIHRoZSB0ZXh0LXN0b3Jh
Z2Ugb2JqZWN0IG9mIAorICAgICAqIHRoZSBjaGFyYWN0ZXIgdGhlIGl0ZXJhdG9yIGN1cnJlbnRs
eSByZWZlcnMgdG8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUg
aW50MzJfdCAgICAgICBnZXRJbmRleCh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJl
dHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgZW50aXJlIHRleHQgaW4gdGhlIHVuZGVybHlpbmcKKyAg
ICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0
aGUgZW50aXJlIHRleHQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICAgICAgZ2V0TGVuZ3Ro
KCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiBy
ZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgICAqIGl0ZXJhdGlvbiByYW5n
ZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgICAqIFRo
ZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHVuaXRzIGZvcndhcmQK
KyAgICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUg
ZGVsdGEuCisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmln
aW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBhIG5lZ2F0aXZlIGRl
bHRhIG1lYW5zIGJhY2t3YXJkLgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0
aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBwb3Np
dGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJf
dCAgICAgIG1vdmUoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pID0gMDsKKworICAgIC8q
KgorICAgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFy
dCBvciBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0
aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJl
c3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgcG9pbnRzIGZvcndhcmQKKyAgICAgKiBvciBiYWNrd2Fy
ZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAgICogQHBh
cmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVs
dGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJk
LgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJy
ZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUzMihpbnQz
Ml90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbikgPSAwOworCisgICAgLyoqCisgICAgICogQ29waWVz
IHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBVbmljb2RlU3RyaW5nCisgICAgICog
cmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICAKKyAgICAgKiBAcGFyYW0gcmVzdWx0IFJlY2VpdmVz
IGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uICAKKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNv
ZGVTdHJpbmcmICByZXN1bHQpID0gMDsKKworcHJvdGVjdGVkOgorICAgIC8qKgorICAgICAqIEVt
cHR5IGNvbnN0cnVjdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENo
YXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciwganVzdCBz
ZXR0aW5nIHRoZSBsZW5ndGggZmllbGQgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3QgbGVuZ3Ro
KTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0
aCBhbmQgcG9zaXRpb24gZmllbGRzIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0aCwg
aW50MzJfdCBwb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciwganVzdCBz
ZXR0aW5nIHRoZSBsZW5ndGgsIHN0YXJ0LCBlbmQsIGFuZCBwb3NpdGlvbiBmaWVsZHMgaW4gdGhp
cyBiYXNlIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJh
Y3Rlckl0ZXJhdG9yKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90IHRleHRCZWdpbiwgaW50MzJfdCB0
ZXh0RW5kLCBpbnQzMl90IHBvc2l0aW9uKTsKKyAgCisgICAgLyoqCisgICAgICogQ29weSBjb25z
dHJ1Y3Rvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBDaGFyYWN0ZXJJdGVyYXRv
ciB0byBiZSBjb3BpZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFy
YWN0ZXJJdGVyYXRvcihjb25zdCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7CisKKyAgICAvKioK
KyAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgU2V0cyB0aGlzIENoYXJhY3Rlckl0ZXJhdG9y
IHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsCisgICAgICogYXMgdGhlIG9uZSBwYXNzZWQgaW4u
CisgICAgICogQHBhcmFtIHRoYXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHBhc3NlZCBpbi4KKyAg
ICAgKiBAcmV0dXJuIHRoZSBuZXdseSBzZXQgQ2hhcmFjdGVySXRlcmF0b3IuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IgJm9wZXJhdG9yPShj
b25zdCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNs
YXNzIHRleHQgbGVuZ3RoIGZpZWxkLgorICAgICAqIE5lY2Vzc2FyeSB0aGlzIGZvciBjb3JyZWN0
IGdldFRleHQoKSBhbmQgaGFzaENvZGUoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBpbnQzMl90IHRleHRMZW5ndGg7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNz
IGZpZWxkIGZvciB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBpbnQzMl90ICBwb3M7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNz
IGZpZWxkIGZvciB0aGUgc3RhcnQgb2YgdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBiZWdpbjsKKworICAgIC8qKgorICAg
ICAqIEJhc2UgY2xhc3MgZmllbGQgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiByYW5nZS4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBlbmQ7Cit9Owor
CitpbmxpbmUgVUJvb2wKK0ZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjo6b3BlcmF0b3IhPShjb25z
dCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0IHsKKyAgICByZXR1cm4gIW9w
ZXJhdG9yPT0odGhhdCk7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6
c2V0VG9TdGFydCgpIHsKKyAgICByZXR1cm4gbW92ZSgwLCBrU3RhcnQpOworfQorCitpbmxpbmUg
aW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvRW5kKCkgeworICAgIHJldHVybiBtb3Zl
KDAsIGtFbmQpOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnN0YXJ0
SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBiZWdpbjsKK30KKworaW5saW5lIGludDMy
X3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjplbmRJbmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJu
IGVuZDsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpnZXRJbmRleCh2
b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIHBvczsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJh
Y3Rlckl0ZXJhdG9yOjpnZXRMZW5ndGgodm9pZCkgY29uc3QgeworICAgIHJldHVybiB0ZXh0TGVu
Z3RoOworfQorCitVX05BTUVTUEFDRV9FTkQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9pY3UvdW5pY29kZS9sb2NpZC5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9sb2NpZC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFhZDVjYjU0NmViZTM5N2VmNDM2ZGYzNjUwM2ViNDM3MWMzODY2OTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmgKQEAgLTAsMCArMSw4
MTQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5
OTYtMjAxNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9u
IGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqCisqIEZpbGUgbG9jaWQuaAorKgorKiBDcmVhdGVkIGJ5OiBIZWxlbmEgU2hpaAorKgor
KiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBE
ZXNjcmlwdGlvbgorKiAgIDAyLzExLzk3ICAgIGFsaXUgICAgICAgIENoYW5nZWQgZ0xvY1BhdGgg
dG8gZmdMb2NQYXRoIGFuZCBhZGRlZCBtZXRob2RzIHRvCisqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2V0IGFuZCBzZXQgaXQuCisqICAgMDQvMDIvOTcgICAgYWxpdSAgICAgICAgTWFkZSBv
cGVyYXRvciE9IGlubGluZTsgZml4ZWQgcmV0dXJuIHZhbHVlIG9mIGdldE5hbWUoKS4KKyogICAw
NC8xNS85NyAgICBhbGl1ICAgICAgICBDbGVhbnVwIGZvciBBSVgvV2luMzIuCisqICAgMDQvMjQv
OTcgICAgYWxpdSAgICAgICAgTnVtZXJvdXMgY2hhbmdlcyBwZXIgY29kZSByZXZpZXcuCisqICAg
MDgvMTgvOTggICAgc3RlcGhlbiAgICAgQWRkZWQgdG9rZW5pemVTdHJpbmcoKSxjaGFuZ2VkIGdl
dERpc3BsYXlOYW1lKCkKKyogICAwOS8wOC85OCAgICBzdGVwaGVuICAgICBNb3ZlZCBkZWZpbml0
aW9uIG9mIGtFbXB0eVN0cmluZyBmb3IgTWFjIFBvcnQKKyogICAxMS8wOS85OSAgICB3ZWl2ICAg
ICAgICBBZGRlZCBjb25zdCBjaGFyICogZ2V0TmFtZSgpIGNvbnN0OworKiAgIDA0LzEyLzAwICAg
IHNybCAgICAgICAgIHJlbW92aW5nIHVuaWNvZGVzdHJpbmcgYXBpJ3MgYW5kIGNhY2hlZCBoYXNo
IGNvZGUKKyogICAwOC8xMC8wMSAgICBncmhvdGVuICAgICBDaGFuZ2UgdGhlIHN0YXRpYyBMb2Nh
bGVzIHRvIGFjY2Vzc29yIGZ1bmN0aW9ucworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisj
aWZuZGVmIExPQ0lEX0gKKyNkZWZpbmUgTE9DSURfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlw
ZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3Vu
aXN0ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3Vs
b2MuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVudW0uaCIKKworLyoqCisgKiBcZmlsZQorICog
XGJyaWVmIEMrKyBBUEk6IExvY2FsZSBJRCBvYmplY3QuCisgKi8KKworVV9OQU1FU1BBQ0VfQkVH
SU4KKworLy8gRm9yd2FyZCBEZWNsYXJhdGlvbnMKK3ZvaWQgVV9DQUxMQ09OViBsb2NhbGVfYXZh
aWxhYmxlX2luaXQoKTsgLyoqPCBAaW50ZXJuYWwgKi8KKworLyoqCisgKiBBIDxjb2RlPkxvY2Fs
ZTwvY29kZT4gb2JqZWN0IHJlcHJlc2VudHMgYSBzcGVjaWZpYyBnZW9ncmFwaGljYWwsIHBvbGl0
aWNhbCwKKyAqIG9yIGN1bHR1cmFsIHJlZ2lvbi4gQW4gb3BlcmF0aW9uIHRoYXQgcmVxdWlyZXMg
YSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHRvIHBlcmZvcm0KKyAqIGl0cyB0YXNrIGlzIGNhbGxlZCA8
ZW0+bG9jYWxlLXNlbnNpdGl2ZTwvZW0+IGFuZCB1c2VzIHRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+
CisgKiB0byB0YWlsb3IgaW5mb3JtYXRpb24gZm9yIHRoZSB1c2VyLiBGb3IgZXhhbXBsZSwgZGlz
cGxheWluZyBhIG51bWJlcgorICogaXMgYSBsb2NhbGUtc2Vuc2l0aXZlIG9wZXJhdGlvbi0tdGhl
IG51bWJlciBzaG91bGQgYmUgZm9ybWF0dGVkCisgKiBhY2NvcmRpbmcgdG8gdGhlIGN1c3RvbXMv
Y29udmVudGlvbnMgb2YgdGhlIHVzZXIncyBuYXRpdmUgY291bnRyeSwKKyAqIHJlZ2lvbiwgb3Ig
Y3VsdHVyZS4KKyAqCisgKiBUaGUgTG9jYWxlIGNsYXNzIGlzIG5vdCBzdWl0YWJsZSBmb3Igc3Vi
Y2xhc3NpbmcuCisgKgorICogPFA+CisgKiBZb3UgY2FuIGNyZWF0ZSBhIDxjb2RlPkxvY2FsZTwv
Y29kZT4gb2JqZWN0IHVzaW5nIHRoZSBjb25zdHJ1Y3RvciBpbgorICogdGhpcyBjbGFzczoKKyAq
IFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICAgIExv
Y2FsZSggY29uc3QgICBjaGFyKiAgbGFuZ3VhZ2UsCisgKiAgICAgICAgICAgICAgIGNvbnN0ICAg
Y2hhciogIGNvdW50cnksCisgKiAgICAgICAgICAgICAgIGNvbnN0ICAgY2hhciogIHZhcmlhbnQp
OworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBU
aGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZhbGlkIDxTVFJPTkc+
SVNPCisgKiBMYW5ndWFnZSBDb2RlLjwvU1RST05HPiBUaGVzZSBjb2RlcyBhcmUgdGhlIGxvd2Vy
LWNhc2UgdHdvLWxldHRlcgorICogY29kZXMgYXMgZGVmaW5lZCBieSBJU08tNjM5LgorICogWW91
IGNhbiBmaW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNlIGNvZGVzIGF0OgorICogPEJSPjxhIGhyZWYg
PSJodHRwOi8vd3d3LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLyI+CisgKiBodHRwOi8vd3d3
LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLzwvYT4KKyAqCisgKiA8UD4KKyAqIFRoZSBzZWNv
bmQgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZhbGlkIDxTVFJPTkc+SVNPIENv
dW50cnkKKyAqIENvZGUuPC9TVFJPTkc+IFRoZXNlIGNvZGVzIGFyZSB0aGUgdXBwZXItY2FzZSB0
d28tbGV0dGVyIGNvZGVzCisgKiBhcyBkZWZpbmVkIGJ5IElTTy0zMTY2LgorICogWW91IGNhbiBm
aW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNlIGNvZGVzIGF0IGEgbnVtYmVyIG9mIHNpdGVzLCBzdWNo
IGFzOgorICogPEJSPjxhIGhyZWY9Imh0dHA6Ly93d3cuaXNvLm9yZy9pc28vZW4vcHJvZHMtc2Vy
dmljZXMvaXNvMzE2Nm1hL2luZGV4Lmh0bWwiPgorICogaHR0cDovL3d3dy5pc28ub3JnL2lzby9l
bi9wcm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEvaW5kZXguaHRtbDwvYT4KKyAqCisgKiA8UD4KKyAq
IFRoZSB0aGlyZCBjb25zdHJ1Y3RvciByZXF1aXJlcyBhIHRoaXJkIGFyZ3VtZW50LS10aGUgPFNU
Uk9ORz5WYXJpYW50LjwvU1RST05HPgorICogVGhlIFZhcmlhbnQgY29kZXMgYXJlIHZlbmRvciBh
bmQgYnJvd3Nlci1zcGVjaWZpYy4KKyAqIEZvciBleGFtcGxlLCB1c2UgUkVWSVNFRCBmb3IgYSBs
YW5nYXVnZSdzIHJldmlzZWQgc2NyaXB0IG9ydGhvZ3JhcGh5LCBhbmQgUE9TSVggZm9yIFBPU0lY
LgorICogV2hlcmUgdGhlcmUgYXJlIHR3byB2YXJpYW50cywgc2VwYXJhdGUgdGhlbSB3aXRoIGFu
IHVuZGVyc2NvcmUsIGFuZAorICogcHV0IHRoZSBtb3N0IGltcG9ydGFudCBvbmUgZmlyc3QuIEZv
cgorICogZXhhbXBsZSwgYSBUcmFkaXRpb25hbCBTcGFuaXNoIGNvbGxhdGlvbiBtaWdodCBiZSBy
ZWZlcmVuY2VkLCB3aXRoCisgKiAiRVMiLCAiRVMiLCAiVHJhZGl0aW9uYWxfUE9TSVgiLgorICoK
KyAqIDxQPgorICogQmVjYXVzZSBhIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IGlzIGp1c3Qg
YW4gaWRlbnRpZmllciBmb3IgYSByZWdpb24sCisgKiBubyB2YWxpZGl0eSBjaGVjayBpcyBwZXJm
b3JtZWQgd2hlbiB5b3UgY29uc3RydWN0IGEgPGNvZGU+TG9jYWxlPC9jb2RlPi4KKyAqIElmIHlv
dSB3YW50IHRvIHNlZSB3aGV0aGVyIHBhcnRpY3VsYXIgcmVzb3VyY2VzIGFyZSBhdmFpbGFibGUg
Zm9yIHRoZQorICogPGNvZGU+TG9jYWxlPC9jb2RlPiB5b3UgY29uc3RydWN0LCB5b3UgbXVzdCBx
dWVyeSB0aG9zZSByZXNvdXJjZXMuIEZvcgorICogZXhhbXBsZSwgYXNrIHRoZSA8Y29kZT5OdW1i
ZXJGb3JtYXQ8L2NvZGU+IGZvciB0aGUgbG9jYWxlcyBpdCBzdXBwb3J0cworICogdXNpbmcgaXRz
IDxjb2RlPmdldEF2YWlsYWJsZUxvY2FsZXM8L2NvZGU+IG1ldGhvZC4KKyAqIDxCUj48U1RST05H
Pk5vdGU6PC9TVFJPTkc+IFdoZW4geW91IGFzayBmb3IgYSByZXNvdXJjZSBmb3IgYSBwYXJ0aWN1
bGFyCisgKiBsb2NhbGUsIHlvdSBnZXQgYmFjayB0aGUgYmVzdCBhdmFpbGFibGUgbWF0Y2gsIG5v
dCBuZWNlc3NhcmlseQorICogcHJlY2lzZWx5IHdoYXQgeW91IGFza2VkIGZvci4gRm9yIG1vcmUg
aW5mb3JtYXRpb24sIGxvb2sgYXQKKyAqIDxjb2RlPlJlc291cmNlQnVuZGxlPC9jb2RlPi4KKyAq
CisgKiA8UD4KKyAqIFRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGNsYXNzIHByb3ZpZGVzIGEgbnVt
YmVyIG9mIGNvbnZlbmllbnQgY29uc3RhbnRzCisgKiB0aGF0IHlvdSBjYW4gdXNlIHRvIGNyZWF0
ZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdHMgZm9yIGNvbW1vbmx5IHVzZWQKKyAqIGxvY2Fs
ZXMuIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHJlZmVycyB0byBhIDxjb2RlPkxvY2FsZTwv
Y29kZT4gb2JqZWN0CisgKiBmb3IgdGhlIFVuaXRlZCBTdGF0ZXM6CisgKiBcaHRtbG9ubHk8Ymxv
Y2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgICBMb2NhbGU6OmdldFVTKCkK
KyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICoKKyAq
IDxQPgorICogT25jZSB5b3UndmUgY3JlYXRlZCBhIDxjb2RlPkxvY2FsZTwvY29kZT4geW91IGNh
biBxdWVyeSBpdCBmb3IgaW5mb3JtYXRpb24gYWJvdXQKKyAqIGl0c2VsZi4gVXNlIDxjb2RlPmdl
dENvdW50cnk8L2NvZGU+IHRvIGdldCB0aGUgSVNPIENvdW50cnkgQ29kZSBhbmQKKyAqIDxjb2Rl
PmdldExhbmd1YWdlPC9jb2RlPiB0byBnZXQgdGhlIElTTyBMYW5ndWFnZSBDb2RlLiBZb3UgY2Fu
CisgKiB1c2UgPGNvZGU+Z2V0RGlzcGxheUNvdW50cnk8L2NvZGU+IHRvIGdldCB0aGUKKyAqIG5h
bWUgb2YgdGhlIGNvdW50cnkgc3VpdGFibGUgZm9yIGRpc3BsYXlpbmcgdG8gdGhlIHVzZXIuIFNp
bWlsYXJseSwKKyAqIHlvdSBjYW4gdXNlIDxjb2RlPmdldERpc3BsYXlMYW5ndWFnZTwvY29kZT4g
dG8gZ2V0IHRoZSBuYW1lIG9mCisgKiB0aGUgbGFuZ3VhZ2Ugc3VpdGFibGUgZm9yIGRpc3BsYXlp
bmcgdG8gdGhlIHVzZXIuIEludGVyZXN0aW5nbHksCisgKiB0aGUgPGNvZGU+Z2V0RGlzcGxheVhY
WDwvY29kZT4gbWV0aG9kcyBhcmUgdGhlbXNlbHZlcyBsb2NhbGUtc2Vuc2l0aXZlCisgKiBhbmQg
aGF2ZSB0d28gdmVyc2lvbnM6IG9uZSB0aGF0IHVzZXMgdGhlIGRlZmF1bHQgbG9jYWxlIGFuZCBv
bmUKKyAqIHRoYXQgdGFrZXMgYSBsb2NhbGUgYXMgYW4gYXJndW1lbnQgYW5kIGRpc3BsYXlzIHRo
ZSBuYW1lIG9yIGNvdW50cnkgaW4KKyAqIGEgbGFuZ3VhZ2UgYXBwcm9wcmlhdGUgdG8gdGhhdCBs
b2NhbGUuCisgKgorICogPFA+CisgKiBJQ1UgcHJvdmlkZXMgYSBudW1iZXIgb2YgY2xhc3NlcyB0
aGF0IHBlcmZvcm0gbG9jYWxlLXNlbnNpdGl2ZQorICogb3BlcmF0aW9ucy4gRm9yIGV4YW1wbGUs
IHRoZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGNsYXNzIGZvcm1hdHMKKyAqIG51bWJlcnMs
IGN1cnJlbmN5LCBvciBwZXJjZW50YWdlcyBpbiBhIGxvY2FsZS1zZW5zaXRpdmUgbWFubmVyLiBD
bGFzc2VzCisgKiBzdWNoIGFzIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gaGF2ZSBhIG51bWJl
ciBvZiBjb252ZW5pZW5jZSBtZXRob2RzCisgKiBmb3IgY3JlYXRpbmcgYSBkZWZhdWx0IG9iamVj
dCBvZiB0aGF0IHR5cGUuIEZvciBleGFtcGxlLCB0aGUKKyAqIDxjb2RlPk51bWJlckZvcm1hdDwv
Y29kZT4gY2xhc3MgcHJvdmlkZXMgdGhlc2UgdGhyZWUgY29udmVuaWVuY2UgbWV0aG9kcworICog
Zm9yIGNyZWF0aW5nIGEgZGVmYXVsdCA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IG9iamVjdDoK
KyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICBV
RXJyb3JDb2RlIHN1Y2Nlc3MgPSBVX1pFUk9fRVJST1I7CisgKiAgICAgTG9jYWxlIG15TG9jYWxl
OworICogICAgIE51bWJlckZvcm1hdCAqbmY7CisgKgorICogICAgIG5mID0gTnVtYmVyRm9ybWF0
OjpjcmVhdGVJbnN0YW5jZSggc3VjY2VzcyApOyAgICAgICAgICBkZWxldGUgbmY7CisgKiAgICAg
bmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUN1cnJlbmN5SW5zdGFuY2UoIHN1Y2Nlc3MgKTsgIGRl
bGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlUGVyY2VudEluc3RhbmNl
KCBzdWNjZXNzICk7ICAgZGVsZXRlIG5mOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2Nr
cXVvdGU+XGVuZGh0bWxvbmx5CisgKiBFYWNoIG9mIHRoZXNlIG1ldGhvZHMgaGFzIHR3byB2YXJp
YW50czsgb25lIHdpdGggYW4gZXhwbGljaXQgbG9jYWxlCisgKiBhbmQgb25lIHdpdGhvdXQ7IHRo
ZSBsYXR0ZXIgdXNpbmcgdGhlIGRlZmF1bHQgbG9jYWxlLgorICogXGh0bWxvbmx5PGJsb2NrcXVv
dGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVh
dGVJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgICAgICAgICAgZGVsZXRlIG5mOworICog
ICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVDdXJyZW5jeUluc3RhbmNlKCBteUxvY2FsZSwg
c3VjY2VzcyApOyAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVQ
ZXJjZW50SW5zdGFuY2UoIG15TG9jYWxlLCBzdWNjZXNzICk7ICAgZGVsZXRlIG5mOworICogPC9w
cmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBBIDxjb2RlPkxv
Y2FsZTwvY29kZT4gaXMgdGhlIG1lY2hhbmlzbSBmb3IgaWRlbnRpZnlpbmcgdGhlIGtpbmQgb2Yg
b2JqZWN0CisgKiAoPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPikgdGhhdCB5b3Ugd291bGQgbGlr
ZSB0byBnZXQuIFRoZSBsb2NhbGUgaXMKKyAqIDxTVFJPTkc+anVzdDwvU1RST05HPiBhIG1lY2hh
bmlzbSBmb3IgaWRlbnRpZnlpbmcgb2JqZWN0cywKKyAqIDxTVFJPTkc+bm90PC9TVFJPTkc+IGEg
Y29udGFpbmVyIGZvciB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgorICoKKyAqIDxQPgorICogRWFj
aCBjbGFzcyB0aGF0IHBlcmZvcm1zIGxvY2FsZS1zZW5zaXRpdmUgb3BlcmF0aW9ucyBhbGxvd3Mg
eW91CisgKiB0byBnZXQgYWxsIHRoZSBhdmFpbGFibGUgb2JqZWN0cyBvZiB0aGF0IHR5cGUuIFlv
dSBjYW4gc2lmdAorICogdGhyb3VnaCB0aGVzZSBvYmplY3RzIGJ5IGxhbmd1YWdlLCBjb3VudHJ5
LCBvciB2YXJpYW50LAorICogYW5kIHVzZSB0aGUgZGlzcGxheSBuYW1lcyB0byBwcmVzZW50IGEg
bWVudSB0byB0aGUgdXNlci4KKyAqIEZvciBleGFtcGxlLCB5b3UgY2FuIGNyZWF0ZSBhIG1lbnUg
b2YgYWxsIHRoZSBjb2xsYXRpb24gb2JqZWN0cworICogc3VpdGFibGUgZm9yIGEgZ2l2ZW4gbGFu
Z3VhZ2UuIFN1Y2ggY2xhc3NlcyBpbXBsZW1lbnQgdGhlc2UKKyAqIHRocmVlIGNsYXNzIG1ldGhv
ZHM6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAg
ICAgICBzdGF0aWMgTG9jYWxlKiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIG51bUxvY2Fs
ZXMpCisgKiAgICAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxheU5hbWUoY29uc3Qg
TG9jYWxlJiAgb2JqZWN0TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYgIGRpc3BsYXlMb2NhbGUsCisgKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcGxheU5h
bWUpCisgKiAgICAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxheU5hbWUoY29uc3Qg
TG9jYWxlJiAgb2JqZWN0TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BsYXlOYW1lKQorICogPC9wcmU+CisgKiBc
aHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKgorICogQHN0YWJsZSBJQ1UgMi4w
CisgKiBAc2VlIFJlc291cmNlQnVuZGxlCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBMb2NhbGUg
OiBwdWJsaWMgVU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3Ig
dGhlIFJvb3QgbG9jYWxlLiBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9j
YWxlICZVX0VYUE9SVDIgZ2V0Um9vdCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZv
ciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9j
YWxlICZVX0VYUE9SVDIgZ2V0RW5nbGlzaCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50
IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3Qg
TG9jYWxlICZVX0VYUE9SVDIgZ2V0RnJlbmNoKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3Rh
bnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25z
dCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRHZXJtYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25z
dGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNv
bnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEl0YWxpYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBj
b25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEphcGFuZXNlKHZvaWQpOworICAgIC8qKiBVc2Vm
dWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRLb3JlYW4odm9pZCk7CisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAg
c3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENoaW5lc2Uodm9pZCk7CisgICAgLyoq
IFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisg
ICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFNpbXBsaWZpZWRDaGluZXNlKHZv
aWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUg
SUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRUcmFkaXRp
b25hbENoaW5lc2Uodm9pZCk7CisKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNv
dW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxl
ICZVX0VYUE9SVDIgZ2V0RnJhbmNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9y
IHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25z
dCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRHZXJtYW55KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRJdGFseSh2b2lkKTsKKyAgICAvKiogVXNl
ZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8K
KyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SmFwYW4odm9pZCk7CisgICAg
LyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1Ug
Mi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEtvcmVhKHZvaWQp
OworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFi
bGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDaGlu
YSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9u
LiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIg
Z2V0UFJDKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9y
ZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQ
T1JUMiBnZXRUYWl3YW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBj
b3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2Fs
ZSAmVV9FWFBPUlQyIGdldFVLKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRo
aXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBM
b2NhbGUgJlVfRVhQT1JUMiBnZXRVUyh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZv
ciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2FuYWRhKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDYW5hZGFGcmVuY2godm9pZCk7CisKKwor
ICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIGRlZmF1bHQgbG9jYWxlIG9iamVjdCwgYSBMb2Nh
bGUgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBJRC4KKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RGVm
YXVsdAorICAgICAqIEBzZWUgdWxvY19nZXREZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgTG9jYWxlKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBs
b2NhbGUgZnJvbSBsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudC4KKyAgICAgKiBJZiBhbiBlcnJv
ciBvY2N1cnMsIHRoZW4gdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlICJib2d1cyIKKyAg
ICAgKiAoaXNCb2d1cygpIHdpbGwgcmV0dXJuIFRSVUUpLgorICAgICAqCisgICAgICogQHBhcmFt
IGxhbmd1YWdlIExvd2VyY2FzZSB0d28tbGV0dGVyIG9yIHRocmVlLWxldHRlciBJU08tNjM5IGNv
ZGUuCisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNhbiBpbnN0ZWFkIGJlIGFuIElDVSBzdHlsZSBD
IGxvY2FsZSAoZS5nLiAiZW5fVVMiKSwKKyAgICAgKiAgYnV0IHRoZSBvdGhlciBwYXJhbWV0ZXJz
IG11c3Qgbm90IGJlIHVzZWQuCisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSBOVUxMOyBp
ZiBzbywKKyAgICAgKiAgdGhlIGxvY2FsZSBpcyBpbml0aWFsaXplZCB0byBtYXRjaCB0aGUgY3Vy
cmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiAgKFRoaXMgaXMgdGhlIHNhbWUgYXMgdXNpbmcg
dGhlIGRlZmF1bHQgY29uc3RydWN0b3IuKQorICAgICAqICBQbGVhc2Ugbm90ZTogVGhlIEphdmEg
TG9jYWxlIGNsYXNzIGRvZXMgTk9UIGFjY2VwdCB0aGUgZm9ybQorICAgICAqICAnbmV3IExvY2Fs
ZSgiZW5fVVMiKScgYnV0IG9ubHkgJ25ldyBMb2NhbGUoImVuIiwiVVMiKScKKyAgICAgKgorICAg
ICAqIEBwYXJhbSBjb3VudHJ5ICBVcHBlcmNhc2UgdHdvLWxldHRlciBJU08tMzE2NiBjb2RlLiAo
b3B0aW9uYWwpCisgICAgICogQHBhcmFtIHZhcmlhbnQgIFVwcGVyY2FzZSB2ZW5kb3IgYW5kIGJy
b3dzZXIgc3BlY2lmaWMgY29kZS4gU2VlIGNsYXNzCisgICAgICogICAgICAgICAgICAgICAgIGRl
c2NyaXB0aW9uLiAob3B0aW9uYWwpCisgICAgICogQHBhcmFtIGtleXdvcmRzQW5kVmFsdWVzIEEg
c3RyaW5nIGNvbnNpc3Rpbmcgb2Yga2V5d29yZC92YWx1ZXMgcGFpcnMsIHN1Y2ggYXMKKyAgICAg
KiAgICAgICAgICAgICAgICAgImNvbGxhdGlvbj1waG9uZWJvb2s7Y3VycmVuY3k9ZXVybyIKKyAg
ICAgKgorICAgICAqIEBzZWUgZ2V0RGVmYXVsdAorICAgICAqIEBzZWUgdWxvY19nZXREZWZhdWx0
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxlKCBjb25zdCAgIGNo
YXIgKiBsYW5ndWFnZSwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIGNvdW50cnkgID0gMCwK
KyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIHZhcmlhbnQgID0gMCwKKyAgICAgICAgICAgIGNv
bnN0ICAgY2hhciAqIGtleXdvcmRzQW5kVmFsdWVzID0gMCk7CisKKyAgICAvKioKKyAgICAgKiBJ
bml0aWFsaXplcyBhIExvY2FsZSBvYmplY3QgZnJvbSBhbm90aGVyIExvY2FsZSBvYmplY3QuCisg
ICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIExvY2FsZSBvYmplY3QgYmVpbmcgY29waWVk
IGluLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZShjb25zdCAg
ICBMb2NhbGUmIG90aGVyKTsKKworCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3RvcgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkxvY2FsZSgpIDsKKworICAg
IC8qKgorICAgICAqIFJlcGxhY2VzIHRoZSBlbnRpcmUgY29udGVudHMgb2YgKnRoaXMgd2l0aCB0
aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBMb2Nh
bGUgb2JqZWN0IGJlaW5nIGNvcGllZCBpbi4KKyAgICAgKiBAcmV0dXJuICAgICAgKnRoaXMKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUmIG9wZXJhdG9yPShjb25z
dCBMb2NhbGUmIG90aGVyKTsKKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0d28gbG9jYWxl
IGtleXMgYXJlIHRoZSBzYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBsb2Nh
bGUga2V5IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAgICogQHJldHVybiAg
ICAgIFRydWUgaWYgdGhlIHR3byBsb2NhbGUga2V5cyBhcmUgdGhlIHNhbWUsIGZhbHNlIG90aGVy
d2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCAgIG9wZXJh
dG9yPT0oY29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0OworCisgICAgLyoqCisgICAg
ICogQ2hlY2tzIGlmIHR3byBsb2NhbGUga2V5cyBhcmUgbm90IHRoZSBzYW1lLgorICAgICAqCisg
ICAgICogQHBhcmFtIG90aGVyIFRoZSBsb2NhbGUga2V5IG9iamVjdCB0byBiZSBjb21wYXJlZCB3
aXRoIHRoaXMuCisgICAgICogQHJldHVybiAgICAgIFRydWUgaWYgdGhlIHR3byBsb2NhbGUga2V5
cyBhcmUgbm90IHRoZSBzYW1lLCBmYWxzZQorICAgICAqICAgICAgICAgICAgICBvdGhlcndpc2Uu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVUJvb2wgICBvcGVyYXRvciE9
KGNvbnN0ICAgIExvY2FsZSYgICAgIG90aGVyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENs
b25lIHRoaXMgb2JqZWN0LgorICAgICAqIENsb25lcyBjYW4gYmUgdXNlZCBjb25jdXJyZW50bHkg
aW4gbXVsdGlwbGUgdGhyZWFkcy4KKyAgICAgKiBJZiBhbiBlcnJvciBvY2N1cnMsIHRoZW4gTlVM
TCBpcyByZXR1cm5lZC4KKyAgICAgKiBUaGUgY2FsbGVyIG11c3QgZGVsZXRlIHRoZSBjbG9uZS4K
KyAgICAgKgorICAgICAqIEByZXR1cm4gYSBjbG9uZSBvZiB0aGlzIG9iamVjdAorICAgICAqCisg
ICAgICogQHNlZSBnZXREeW5hbWljQ2xhc3NJRAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAg
ICAqLworICAgIExvY2FsZSAqY2xvbmUoKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfU1lTVEVN
X0FQSQorICAgIC8qKgorICAgICAqIENvbW1vbiBtZXRob2RzIG9mIGdldHRpbmcgdGhlIGN1cnJl
bnQgZGVmYXVsdCBMb2NhbGUuIFVzZWQgZm9yIHRoZQorICAgICAqIHByZXNlbnRhdGlvbjogbWVu
dXMsIGRpYWxvZ3MsIGV0Yy4gR2VuZXJhbGx5IHNldCBvbmNlIHdoZW4geW91ciBhcHBsZXQgb3IK
KyAgICAgKiBhcHBsaWNhdGlvbiBpcyBpbml0aWFsaXplZCwgdGhlbiBuZXZlciByZXNldC4gKElm
IHlvdSBkbyByZXNldCB0aGUKKyAgICAgKiBkZWZhdWx0IGxvY2FsZSwgeW91IHByb2JhYmx5IHdh
bnQgdG8gcmVsb2FkIHlvdXIgR1VJLCBzbyB0aGF0IHRoZSBjaGFuZ2UKKyAgICAgKiBpcyByZWZs
ZWN0ZWQgaW4geW91ciBpbnRlcmZhY2UuKQorICAgICAqCisgICAgICogTW9yZSBhZHZhbmNlZCBw
cm9ncmFtcyB3aWxsIGFsbG93IHVzZXJzIHRvIHVzZSBkaWZmZXJlbnQgbG9jYWxlcyBmb3IKKyAg
ICAgKiBkaWZmZXJlbnQgZmllbGRzLCBlLmcuIGluIGEgc3ByZWFkc2hlZXQuCisgICAgICoKKyAg
ICAgKiBOb3RlIHRoYXQgdGhlIGluaXRpYWwgc2V0dGluZyB3aWxsIG1hdGNoIHRoZSBob3N0IHN5
c3RlbS4KKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSBMb2NhbGUgb2JqZWN0IGZv
ciB0aGUgZGVmYXVsdCBsb2NhbGUgSUQKKyAgICAgKiBAc3lzdGVtCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSYgVV9FWFBPUlQyIGdldERl
ZmF1bHQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWZhdWx0LiBOb3JtYWxs
eSBzZXQgb25jZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgcHJvY2VzcywKKyAgICAgKiB0aGVuIG5l
dmVyIHJlc2V0LgorICAgICAqIHNldERlZmF1bHQoKSBvbmx5IGNoYW5nZXMgSUNVJ3MgZGVmYXVs
dCBsb2NhbGUgSUQsIDxzdHJvbmc+bm90PC9zdHJvbmc+CisgICAgICogdGhlIGRlZmF1bHQgbG9j
YWxlIElEIG9mIHRoZSBydW50aW1lIGVudmlyb25tZW50LgorICAgICAqCisgICAgICogQHBhcmFt
IG5ld0xvY2FsZSBMb2NhbGUgdG8gc2V0IHRvLiAgSWYgTlVMTCwgc2V0IHRvIHRoZSB2YWx1ZSBv
YnRhaW5lZAorICAgICAqICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgcnVudGltZSBlbnZpcm9u
ZW1lbnQuCisgICAgICogQHBhcmFtIHN1Y2Nlc3MgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHN5
c3RlbQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyB2b2lkIFVf
RVhQT1JUMiBzZXREZWZhdWx0KGNvbnN0IExvY2FsZSYgbmV3TG9jYWxlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUmICAgc3VjY2Vzcyk7CisjZW5kaWYg
IC8qIFVfSElERV9TWVNURU1fQVBJICovCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbG9j
YWxlIHdoaWNoIGhhcyBoYWQgbWluaW1hbCBjYW5vbmljYWxpemF0aW9uCisgICAgICogYXMgcGVy
IHVsb2NfZ2V0TmFtZSgpLgorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIHRvIGNyZWF0ZSBm
cm9tLiAgSWYgbmFtZSBpcyBudWxsLAorICAgICAqICB0aGUgZGVmYXVsdCBMb2NhbGUgaXMgdXNl
ZC4KKyAgICAgKiBAcmV0dXJuIG5ldyBsb2NhbGUgb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICogQHNlZSB1bG9jX2dldE5hbWUKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9jYWxl
IFVfRVhQT1JUMiBjcmVhdGVGcm9tTmFtZShjb25zdCBjaGFyICpuYW1lKTsKKworICAgIC8qKgor
ICAgICAqIENyZWF0ZXMgYSBsb2NhbGUgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nIGFmdGVyIGNhbm9u
aWNhbGl6aW5nCisgICAgICogdGhlIHN0cmluZyBieSBjYWxsaW5nIHVsb2NfY2Fub25pY2FsaXpl
KCkuCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGxvY2FsZSBJRCB0byBjcmVhdGUgZnJvbS4gIE11
c3Qgbm90IGJlIE5VTEwuCisgICAgICogQHJldHVybiBhIG5ldyBsb2NhbGUgb2JqZWN0IGNvcnJl
c3BvbmRpbmcgdG8gdGhlIGdpdmVuIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAg
KiBAc2VlIHVsb2NfY2Fub25pY2FsaXplCisgICAgICovCisgICAgc3RhdGljIExvY2FsZSBVX0VY
UE9SVDIgY3JlYXRlQ2Fub25pY2FsKGNvbnN0IGNoYXIqIG5hbWUpOworCisgICAgLyoqCisgICAg
ICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTYzOSBsYW5ndWFnZSBjb2RlLgorICAgICAqIEBy
ZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldExhbmd1YWdlKCApIGNvbnN0Owor
CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTE1OTI0IGFiYnJldmlh
dGlvbiBzY3JpcHQgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNv
ZGUKKyAgICAgKiBAc2VlIHVzY3JpcHRfZ2V0U2hvcnROYW1lCisgICAgICogQHNlZSB1c2NyaXB0
X2dldENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBpbmxpbmUgY29u
c3QgY2hhciAqICBnZXRTY3JpcHQoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5z
IHRoZSBsb2NhbGUncyBJU08tMzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICogQHJldHVybiAgICAg
IEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0Q291bnRyeSggKSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIHZhcmlhbnQgY29kZS4KKyAgICAgKiBAcmV0dXJu
ICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRWYXJpYW50KCApIGNvbnN0OworCisgICAg
LyoqCisgICAgICogUmV0dXJucyB0aGUgcHJvZ3JhbW1hdGljIG5hbWUgb2YgdGhlIGVudGlyZSBs
b2NhbGUsIHdpdGggdGhlIGxhbmd1YWdlLAorICAgICAqIGNvdW50cnkgYW5kIHZhcmlhbnQgc2Vw
YXJhdGVkIGJ5IHVuZGVyYmFycy4gSWYgYSBmaWVsZCBpcyBtaXNzaW5nLCB1cAorICAgICAqIHRv
IHR3byBsZWFkaW5nIHVuZGVyYmFycyB3aWxsIG9jY3VyLiBFeGFtcGxlOiAiZW4iLCAiZGVfREUi
LCAiZW5fVVNfV0lOIiwKKyAgICAgKiAiZGVfX1BPU0lYIiwgImZyX19NQUMiLCAiX19NQUMiLCAi
X01UIiwgIl9GUl9FVVJPIgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8gIm5hbWUi
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFy
ICogZ2V0TmFtZSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcHJvZ3Jh
bW1hdGljIG5hbWUgb2YgdGhlIGVudGlyZSBsb2NhbGUgYXMgZ2V0TmFtZSgpIHdvdWxkIHJldHVy
biwKKyAgICAgKiBidXQgd2l0aG91dCBrZXl3b3Jkcy4KKyAgICAgKiBAcmV0dXJuICAgICAgQSBw
b2ludGVyIHRvICJuYW1lIi4KKyAgICAgKiBAc2VlIGdldE5hbWUKKyAgICAgKiBAc3RhYmxlIElD
VSAyLjgKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0QmFzZU5hbWUoKSBjb25zdDsKKwor
CisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGlzdCBvZiBrZXl3b3JkcyBmb3IgdGhlIHNwZWNp
ZmllZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBzdGF0dXMgY29k
ZQorICAgICAqIEByZXR1cm4gcG9pbnRlciB0byBTdHJpbmdFbnVtZXJhdGlvbiBjbGFzcywgb3Ig
TlVMTCBpZiB0aGVyZSBhcmUgbm8ga2V5d29yZHMuIAorICAgICAqIENsaWVudCBtdXN0IGRpc3Bv
c2Ugb2YgaXQgYnkgY2FsbGluZyBkZWxldGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAg
ICovCisgICAgU3RyaW5nRW51bWVyYXRpb24gKiBjcmVhdGVLZXl3b3JkcyhVRXJyb3JDb2RlICZz
dGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdmFsdWUgZm9yIGEga2V5
d29yZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3
b3JkIGZvciB3aGljaCB3ZSB3YW50IHRoZSB2YWx1ZS4gQ2FzZSBpbnNlbnNpdGl2ZS4KKyAgICAg
KiBAcGFyYW0gYnVmZmVyIFRoZSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUga2V5d29yZCB2YWx1ZS4K
KyAgICAgKiBAcGFyYW0gYnVmZmVyQ2FwYWNpdHkgVGhlIGNhcGFjaXR5IG9mIHJlY2VpdmluZyBi
dWZmZXIKKyAgICAgKiBAcGFyYW0gc3RhdHVzIFJldHVybnMgYW55IGVycm9yIGluZm9ybWF0aW9u
IHdoaWxlIHBlcmZvcm1pbmcgdGhpcyBvcGVyYXRpb24uCisgICAgICogQHJldHVybiB0aGUgbGVu
Z3RoIG9mIHRoZSBrZXl3b3JkIHZhbHVlCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgK
KyAgICAgKi8KKyAgICBpbnQzMl90IGdldEtleXdvcmRWYWx1ZShjb25zdCBjaGFyKiBrZXl3b3Jk
TmFtZSwgY2hhciAqYnVmZmVyLCBpbnQzMl90IGJ1ZmZlckNhcGFjaXR5LCBVRXJyb3JDb2RlICZz
dGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogU2V0cyBvciByZW1vdmVzIHRoZSB2YWx1
ZSBmb3IgYSBrZXl3b3JkLgorICAgICAqCisgICAgICogRm9yIHJlbW92aW5nIGFsbCBrZXl3b3Jk
cywgdXNlIGdldEJhc2VOYW1lKCksCisgICAgICogYW5kIGNvbnN0cnVjdCBhIG5ldyBMb2NhbGUg
aWYgaXQgZGlmZmVycyBmcm9tIGdldE5hbWUoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXl3
b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3JkIHRvIGJlIHNldC4gQ2FzZSBpbnNlbnNpdGl2ZS4K
KyAgICAgKiBAcGFyYW0ga2V5d29yZFZhbHVlIHZhbHVlIG9mIHRoZSBrZXl3b3JkIHRvIGJlIHNl
dC4gSWYgMC1sZW5ndGggb3IKKyAgICAgKiAgTlVMTCwgd2lsbCByZXN1bHQgaW4gdGhlIGtleXdv
cmQgYmVpbmcgcmVtb3ZlZC4gTm8gZXJyb3IgaXMgZ2l2ZW4gaWYKKyAgICAgKiAgdGhhdCBrZXl3
b3JkIGRvZXMgbm90IGV4aXN0LgorICAgICAqIEBwYXJhbSBzdGF0dXMgUmV0dXJucyBhbnkgZXJy
b3IgaW5mb3JtYXRpb24gd2hpbGUgcGVyZm9ybWluZyB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKgor
ICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdm9pZCBzZXRLZXl3b3JkVmFsdWUo
Y29uc3QgY2hhcioga2V5d29yZE5hbWUsIGNvbnN0IGNoYXIqIGtleXdvcmRWYWx1ZSwgVUVycm9y
Q29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIHJldHVybnMgdGhlIGxvY2FsZSdzIHRo
cmVlLWxldHRlciBsYW5ndWFnZSBjb2RlLCBhcyBzcGVjaWZpZWQKKyAgICAgKiBpbiBJU08gZHJh
ZnQgc3RhbmRhcmQgSVNPLTYzOS0yLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0
aGUgY29kZSwgb3IgYW4gZW1wdHkgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgY29uc3QgY2hhciAqIGdldElTTzNMYW5ndWFnZSgpIGNvbnN0OworCisgICAgLyoq
CisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIGxvY2FsZSdzIHRocmVlLWxldHRlciBJ
U08tMzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRo
ZSBjb2RlLCBvciBhbiBlbXB0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBjb25zdCBjaGFyICogZ2V0SVNPM0NvdW50cnkoKSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIFdpbmRvd3MgTENJRCB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRo
aXMgbG9jYWxlLgorICAgICAqIFRoaXMgdmFsdWUgaXMgc3RvcmVkIGluIHRoZSByZXNvdXJjZSBk
YXRhIGZvciB0aGUgbG9jYWxlIGFzIGEgb25lLXRvLWZvdXItZGlnaXQKKyAgICAgKiBoZXhhZGVj
aW1hbCBudW1iZXIuICBJZiB0aGUgcmVzb3VyY2UgaXMgbWlzc2luZywgaW4gdGhlIHdyb25nIGZv
cm1hdCwgb3IKKyAgICAgKiB0aGVyZSBpcyBubyBXaW5kb3dzIExDSUQgdmFsdWUgdGhhdCBjb3Jy
ZXNwb25kcyB0byB0aGlzIGxvY2FsZSwgcmV0dXJucyAwLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICBnZXRMQ0lEKHZvaWQpIGNvbnN0OworCisj
aWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHdoZXRoZXIg
dGhpcyBsb2NhbGUncyBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0LgorICAgICAqIElm
IHRoZXJlIGlzIG5vIHNjcmlwdCBzdWJ0YWcsIHRoZW4gdGhlIGxpa2VseSBzY3JpcHQgaXMgdXNl
ZCwgc2VlIHVsb2NfYWRkTGlrZWx5U3VidGFncygpLgorICAgICAqIElmIG5vIGxpa2VseSBzY3Jp
cHQgaXMga25vd24sIHRoZW4gRkFMU0UgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBBIHNj
cmlwdCBpcyByaWdodC10by1sZWZ0IGFjY29yZGluZyB0byB0aGUgQ0xEUiBzY3JpcHQgbWV0YWRh
dGEKKyAgICAgKiB3aGljaCBjb3JyZXNwb25kcyB0byB3aGV0aGVyIHRoZSBzY3JpcHQncyBsZXR0
ZXJzIGhhdmUgQmlkaV9DbGFzcz1SIG9yIEFMLgorICAgICAqCisgICAgICogUmV0dXJucyBUUlVF
IGZvciAiYXIiIGFuZCAiZW4tSGViciIsIEZBTFNFIGZvciAiemgiIGFuZCAiZmEtQ3lybCIuCisg
ICAgICoKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIGxvY2FsZSdzIHNjcmlwdCBpcyB3cml0
dGVuIHJpZ2h0LXRvLWxlZnQKKyAgICAgKiBAZHJhZnQgSUNVIDU0CisgICAgICovCisgICAgVUJv
b2wgaXNSaWdodFRvTGVmdCgpIGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJICov
CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcExhbmciIHdpdGggdGhlIG5hbWUgb2Yg
dGhpcyBsb2NhbGUncyBsYW5ndWFnZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IKKyAgICAgKiB1
c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBs
b2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzCisgICAgICogImZyIiBhbmQgdGhlIGRlZmF1bHQgbG9j
YWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAg
ICAqIGRpc3BMYW5nIHRvICJGcmVuY2giLgorICAgICAqIEBwYXJhbSBkaXNwTGFuZyAgUmVjZWl2
ZXMgdGhlIGxhbmd1YWdlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAg
QSByZWZlcmVuY2UgdG8gImRpc3BMYW5nIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUxhbmd1YWdlKFVuaWNvZGVTdHJpbmcm
ICAgZGlzcExhbmcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BMYW5n
IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgaW4gYSBmb3JtYXQgc3Vp
dGFibGUgZm9yCisgICAgICogdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5
ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBs
YW5ndWFnZSBjb2RlIGlzICJlbiIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlz
ICJmciIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcExhbmcgdG8gIkFuZ2xh
aXMiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0
byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlciB3b3JkcywKKyAgICAgKiAg
ICAgICAgICAgICAgICAgIGlmIHRoZSBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHBh
c3NpbmcgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgIGRp
c3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICJBbmdsYWlzIiwgd2hpbGUgcGFzc2luZyBMb2Nh
bGU6OmdldEdlcm1hbigpCisgICAgICogICAgICAgICAgICAgICAgICBmb3IgZGlzcGxheUxvY2Fs
ZSB3b3VsZCByZXN1bHQgaW4gIkVuZ2xpc2NoIi4KKyAgICAgKiBAcGFyYW0gZGlzcExhbmcgIFJl
Y2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAg
ICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwTGFuZyIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlMYW5ndWFnZSggY29uc3QgICBM
b2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwTGFuZykgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFNjcmlwdCIgd2l0aCB0aGUgbmFtZSBvZiB0
aGlzIGxvY2FsZSdzIHNjcmlwdCBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2Vy
IGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2Nh
bGUncyBzY3JpcHQgY29kZQorICAgICAqIGlzICJMQVROIiBhbmQgdGhlIGRlZmF1bHQgbG9jYWxl
J3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAq
IGRpc3BTY3JpcHQgdG8gIkxhdGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcFNjcmlwdCAgICBSZWNl
aXZlcyB0aGUgc2NyaXB0cydzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAg
ICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFNjcmlwdCIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44
CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlTY3JpcHQoICAgICAgICAg
IFVuaWNvZGVTdHJpbmcmIGRpc3BTY3JpcHQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmls
bHMgaW4gImRpc3BTY3JpcHQiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5
IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgbG9j
YWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxv
Y2FsZSdzCisgICAgICogc2NyaXB0IGNvZGUgaXMgIkxBVE4iIGFuZCBkaXNwbGF5TG9jYWxlJ3Mg
bGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRp
c3BTY3JpcHQgdG8gIkxhdGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgICAgIFNw
ZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIEluIG90
aGVyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd29yZHMsIGlmIHRoZSBsb2NhbGUncyBz
Y3JpcHQgY29kZSBpcyAiTEFUTiIsIHBhc3NpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbGU6OmdldEZyZW5jaCgpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAi
Iiwgd2hpbGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBwYXNzaW5nIExvY2FsZTo6Z2V0
R2VybWFuKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluCisgICAgICogICAgICAg
ICAgICAgICAgICAgICAgIiIuCisgICAgICogQHBhcmFtIGRpc3BTY3JpcHQgICAgUmVjZWl2ZXMg
dGhlIHNjcmlwdHMncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAg
QSByZWZlcmVuY2UgdG8gImRpc3BTY3JpcHQiLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAg
ICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5U2NyaXB0KCAgY29uc3QgICBMb2Nh
bGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BTY3JpcHQpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BDb3VudHJ5IiB3aXRoIHRoZSBuYW1lIG9mIHRo
aXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2Vy
IGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2Nh
bGUncyBjb3VudHJ5IGNvZGUKKyAgICAgKiBpcyAiRlIiIGFuZCB0aGUgZGVmYXVsdCBsb2NhbGUn
cyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICog
ZGlzcENvdW50cnkgdG8gIkZyYW5jZSIuCisgICAgICogQHBhcmFtIGRpc3BDb3VudHJ5ICAgUmVj
ZWl2ZXMgdGhlIGNvdW50cnkncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAg
ICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNvdW50cnkoICAgICAg
ICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BDb3VudHJ5KSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IEZpbGxzIGluICJkaXNwQ291bnRyeSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGNv
dW50cnkgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRo
ZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBpZiB0
aGUgbG9jYWxlJ3MKKyAgICAgKiBjb3VudHJ5IGNvZGUgaXMgIlVTIiBhbmQgZGlzcGxheUxvY2Fs
ZSdzIGxhbmd1YWdlIGNvZGUgaXMgImZyIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAg
KiBkaXNwQ291bnRyeSB0byAiJkVhY3V0ZTt0YXRzLVVuaXMiLgorICAgICAqIEBwYXJhbSBkaXNw
bGF5TG9jYWxlICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5
IHRoZSBuYW1lLiAgSW4gb3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB3b3Jkcywg
aWYgdGhlIGxvY2FsZSdzIGNvdW50cnkgY29kZSBpcyAiVVMiLCBwYXNzaW5nCisgICAgICogICAg
ICAgICAgICAgICAgICAgICAgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IgZGlzcGxheUxvY2FsZSB3
b3VsZCByZXN1bHQgaW4gIiZFYWN1dGU7dGF0cy1VbmlzIiwgd2hpbGUKKyAgICAgKiAgICAgICAg
ICAgICAgICAgICAgICBwYXNzaW5nIExvY2FsZTo6Z2V0R2VybWFuKCkgZm9yIGRpc3BsYXlMb2Nh
bGUgd291bGQgcmVzdWx0IGluCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIlZlcmVpbmln
dGUgU3RhYXRlbiIuCisgICAgICogQHBhcmFtIGRpc3BDb3VudHJ5ICAgUmVjZWl2ZXMgdGhlIGNv
dW50cnkncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgQSByZWZl
cmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNvdW50cnkoICBjb25zdCAgIExvY2FsZSYg
ICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BDb3VudHJ5KSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwVmFyIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9j
YWxlJ3MgdmFyaWFudCBjb2RlIGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIg
ZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BWYXIgICBS
ZWNlaXZlcyB0aGUgdmFyaWFudCdzIG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJl
ZmVyZW5jZSB0byAiZGlzcFZhciIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlWYXJpYW50KCAgICAgIFVuaWNvZGVTdHJpbmcm
IGRpc3BWYXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BWYXIiIHdp
dGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyB2YXJpYW50IGNvZGUgaW4gYSBmb3JtYXQKKyAg
ICAgKiBzdWl0YWJsZSBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5
ICJkaXNwbGF5TG9jYWxlIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgU3BlY2lmaWVz
IHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEBwYXJh
bSBkaXNwVmFyICAgUmVjZWl2ZXMgdGhlIHZhcmlhbnQncyBkaXNwbGF5IG5hbWUuCisgICAgICog
QHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFZhciIuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlWYXJpYW50
KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwVmFy
KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRoZSBuYW1l
IG9mIHRoaXMgbG9jYWxlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkKKyAg
ICAgKiBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBUaGlzIGZ1bmN0aW9uIHVzZXMgZ2V0RGlzcGxh
eUxhbmd1YWdlKCksIGdldERpc3BsYXlDb3VudHJ5KCksCisgICAgICogYW5kIGdldERpc3BsYXlW
YXJpYW50KCkgdG8gZG8gaXRzIHdvcmssIGFuZCBvdXRwdXRzIHRoZSBkaXNwbGF5IG5hbWUgaW4g
dGhlIGZvcm1hdAorICAgICAqICJsYW5ndWFnZSAoY291bnRyeVssdmFyaWFudF0pIi4gIEZvciBl
eGFtcGxlLCBpZiB0aGUgZGVmYXVsdCBsb2NhbGUgaXMgZW5fVVMsIHRoZW4KKyAgICAgKiBmcl9G
UidzIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAiRnJlbmNoIChGcmFuY2UpIiwgYW5kIGVzX01YX1Ry
YWRpdGlvbmFsJ3MgZGlzcGxheSBuYW1lCisgICAgICogd291bGQgYmUgIlNwYW5pc2ggKE1leGlj
byxUcmFkaXRpb25hbCkiLgorICAgICAqIEBwYXJhbSBuYW1lICBSZWNlaXZlcyB0aGUgbG9jYWxl
J3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICBBIHJlZmVyZW5jZSB0byAibmFt
ZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYg
IGdldERpc3BsYXlOYW1lKCAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBuYW1lKSBjb25zdDsKKwor
ICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9j
YWxlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkKKyAgICAgKiBpbiB0aGUg
bG9jYWxlIHNwZWNmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIFRoaXMgZnVuY3Rpb24gdXNlcyBn
ZXREaXNwbGF5TGFuZ3VhZ2UoKSwKKyAgICAgKiBnZXREaXNwbGF5Q291bnRyeSgpLCBhbmQgZ2V0
RGlzcGxheVZhcmlhbnQoKSB0byBkbyBpdHMgd29yaywgYW5kIG91dHB1dHMgdGhlIGRpc3BsYXkK
KyAgICAgKiBuYW1lIGluIHRoZSBmb3JtYXQgImxhbmd1YWdlIChjb3VudHJ5Wyx2YXJpYW50XSki
LiAgRm9yIGV4YW1wbGUsIGlmIGRpc3BsYXlMb2NhbGUgaXMKKyAgICAgKiBmcl9GUiwgdGhlbiBl
bl9VUydzIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAiQW5nbGFpcyAoJkVhY3V0ZTt0YXRzLVVuaXMp
IiwgYW5kIG5vX05PX05ZJ3MKKyAgICAgKiBkaXNwbGF5IG5hbWUgd291bGQgYmUgIm5vcnYmZWFj
dXRlO2dpZW4gKE5vcnYmZWdyYXZlO2dlLE5ZKSIuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2Nh
bGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4K
KyAgICAgKiBAcGFyYW0gbmFtZSAgICAgIFJlY2VpdmVzIHRoZSBsb2NhbGUncyBkaXNwbGF5IG5h
bWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAibmFtZSIuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3Bs
YXlOYW1lKCBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgbmFtZSkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoZSBs
b2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCAgICAg
ICAgIGhhc2hDb2RlKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbG9j
YWxlIHRvIGJvZ3VzCisgICAgICogQSBib2d1cyBsb2NhbGUgcmVwcmVzZW50cyBhIG5vbi1leGlz
dGluZyBsb2NhbGUgYXNzb2NpYXRlZAorICAgICAqIHdpdGggc2VydmljZXMgdGhhdCBjYW4gYmUg
aW5zdGFudGlhdGVkIGZyb20gbm9uLWxvY2FsZSBkYXRhCisgICAgICogaW4gYWRkaXRpb24gdG8g
bG9jYWxlIChmb3IgZXhhbXBsZSwgY29sbGF0aW9uIGNhbiBiZQorICAgICAqIGluc3RhbnRpYXRl
ZCBmcm9tIGEgbG9jYWxlIGFuZCBmcm9tIGEgcnVsZSBzZXQpLgorICAgICAqIEBzdGFibGUgSUNV
IDIuMQorICAgICAqLworICAgIHZvaWQgc2V0VG9Cb2d1cygpOworCisgICAgLyoqCisgICAgICog
R2V0cyB0aGUgYm9ndXMgc3RhdGUuIExvY2FsZSBvYmplY3QgY2FuIGJlIGJvZ3VzIGlmIGl0IGRv
ZXNuJ3QgZXhpc3QKKyAgICAgKiBAcmV0dXJuIEZBTFNFIGlmIGl0IGlzIGEgcmVhbCBsb2NhbGUs
IFRSVUUgaWYgaXQgaXMgYSBib2d1cyBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAg
ICAgKi8KKyAgICBVQm9vbCBpc0JvZ3VzKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICog
UmV0dXJucyBhIGxpc3Qgb2YgYWxsIGluc3RhbGxlZCBsb2NhbGVzLgorICAgICAqIEBwYXJhbSBj
b3VudCBSZWNlaXZlcyB0aGUgbnVtYmVyIG9mIGxvY2FsZXMgaW4gdGhlIGxpc3QuCisgICAgICog
QHJldHVybiAgICAgIEEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBMb2NhbGUgb2JqZWN0cy4gIFRo
aXMgYXJyYXkgaXMgdGhlIGxpc3QKKyAgICAgKiAgICAgICAgICAgICAgb2YgYWxsIGxvY2FsZXMg
d2l0aCBpbnN0YWxsZWQgcmVzb3VyY2UgZmlsZXMuICBUaGUgY2FsbGVkIGRvZXMgTk9UCisgICAg
ICogICAgICAgICAgICAgIGdldCBvd25lcnNoaXAgb2YgdGhpcyBsaXN0LCBhbmQgbXVzdCBOT1Qg
ZGVsZXRlIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUqIFVfRVhQT1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIGNvdW50
KTsKKworICAgIC8qKgorICAgICAqIEdldHMgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgMi1sZXR0
ZXIgY291bnRyeSBjb2RlcyBkZWZpbmVkIGluIElTTyAzMTY2LiAgVGhpcyBpcyBhCisgICAgICog
cG9pbnRlciB0byBhbiBhcnJheSBvZiBwb2ludGVycyB0byBhcnJheXMgb2YgY2hhci4gIEFsbCBv
ZiB0aGVzZSBwb2ludGVycyBhcmUKKyAgICAgKiBvd25lZCBieSBJQ1UtLSBkbyBub3QgZGVsZXRl
IHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0aGVtLiAgVGhlIGFycmF5IGlzCisgICAg
ICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBwb2ludGVyLgorICAgICAqIEByZXR1cm4gYSBsaXN0
IG9mIGFsbCBhdmFpbGFibGUgY291bnRyeSBjb2RlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBPUlQyIGdldElTT0Nv
dW50cmllcygpOworCisgICAgLyoqCisgICAgICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJs
ZSBsYW5ndWFnZSBjb2RlcyBkZWZpbmVkIGluIElTTyA2MzkuICBUaGlzIGlzIGEgcG9pbnRlcgor
ICAgICAqIHRvIGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBvZiBjaGFyLiAgQWxsIG9m
IHRoZXNlIHBvaW50ZXJzIGFyZSBvd25lZAorICAgICAqIGJ5IElDVS0tIGRvIG5vdCBkZWxldGUg
dGhlbSwgYW5kIGRvIG5vdCB3cml0ZSB0aHJvdWdoIHRoZW0uICBUaGUgYXJyYXkgaXMKKyAgICAg
KiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCisgICAgICogQHJldHVybiBhIGxpc3Qg
b2YgYWxsIGF2YWlsYWJsZSBsYW5ndWFnZSBjb2RlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBPUlQyIGdldElTT0xh
bmd1YWdlcygpOworCisgICAgLyoqCisgICAgICogSUNVICJwb29yIG1hbidzIFJUVEkiLCByZXR1
cm5zIGEgVUNsYXNzSUQgZm9yIHRoaXMgY2xhc3MuCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElD
VSAyLjIKKyAgICAgKi8KKyAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQyIGdldFN0YXRpY0Ns
YXNzSUQoKTsKKworICAgIC8qKgorICAgICAqIElDVSAicG9vciBtYW4ncyBSVFRJIiwgcmV0dXJu
cyBhIFVDbGFzc0lEIGZvciB0aGUgYWN0dWFsIGNsYXNzLgorICAgICAqCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4yCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJ
RCgpIGNvbnN0OworCitwcm90ZWN0ZWQ6IC8qIG9ubHkgcHJvdGVjdGVkIGZvciB0ZXN0aW5nIHB1
cnBvc2VzLiBETyBOT1QgVVNFLiAqLworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAg
LyoqCisgICAgICogU2V0IHRoaXMgZnJvbSBhIHNpbmdsZSBQT1NJWCBzdHlsZSBsb2NhbGUgc3Ry
aW5nLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHZvaWQgc2V0RnJvbVBPU0lYSUQo
Y29uc3QgY2hhciAqcG9zaXhJRCk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8K
KworcHJpdmF0ZToKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHRoZSBsb2NhbGUgb2JqZWN0
IHdpdGggYSBuZXcgbmFtZS4KKyAgICAgKiBXYXMgZGVwcmVjYXRlZCAtIHVzZWQgaW4gaW1wbGVt
ZW50YXRpb24gLSBtb3ZlZCBpbnRlcm5hbAorICAgICAqCisgICAgICogQHBhcmFtIGNMb2NhbGVJ
RCBUaGUgbmV3IGxvY2FsZSBuYW1lLgorICAgICAqIEBwYXJhbSBjYW5vbmljYWxpemUgd2hldGhl
ciB0byBjYWxsIHVsb2NfY2Fub25pY2FsaXplIG9uIGNMb2NhbGVJRAorICAgICAqLworICAgIExv
Y2FsZSYgaW5pdChjb25zdCBjaGFyKiBjTG9jYWxlSUQsIFVCb29sIGNhbm9uaWNhbGl6ZSk7CisK
KyAgICAvKgorICAgICAqIEludGVybmFsIGNvbnN0cnVjdG9yIHRvIGFsbG93IGNvbnN0cnVjdGlv
biBvZiBhIGxvY2FsZSBvYmplY3Qgd2l0aAorICAgICAqICAgTk8gc2lkZSBlZmZlY3RzLiAgIChE
ZWZhdWx0IGNvbnN0cnVjdG9yIHRyaWVzIHRvIGdldAorICAgICAqICAgdGhlIGRlZmF1bHQgbG9j
YWxlLikKKyAgICAgKi8KKyAgICBlbnVtIEVMb2NhbGVUeXBlIHsKKyAgICAgICAgZUJPR1VTCisg
ICAgfTsKKyAgICBMb2NhbGUoRUxvY2FsZVR5cGUpOworCisgICAgLyoqCisgICAgICogSW5pdGlh
bGl6ZSB0aGUgbG9jYWxlIGNhY2hlIGZvciBjb21tb25seSB1c2VkIGxvY2FsZXMKKyAgICAgKi8K
KyAgICBzdGF0aWMgTG9jYWxlICpnZXRMb2NhbGVDYWNoZSh2b2lkKTsKKworICAgIGNoYXIgbGFu
Z3VhZ2VbVUxPQ19MQU5HX0NBUEFDSVRZXTsKKyAgICBjaGFyIHNjcmlwdFtVTE9DX1NDUklQVF9D
QVBBQ0lUWV07CisgICAgY2hhciBjb3VudHJ5W1VMT0NfQ09VTlRSWV9DQVBBQ0lUWV07CisgICAg
aW50MzJfdCB2YXJpYW50QmVnaW47CisgICAgY2hhciogZnVsbE5hbWU7CisgICAgY2hhciBmdWxs
TmFtZUJ1ZmZlcltVTE9DX0ZVTExOQU1FX0NBUEFDSVRZXTsKKyAgICAvLyBuYW1lIHdpdGhvdXQg
a2V5d29yZHMKKyAgICBjaGFyKiBiYXNlTmFtZTsKKyAgICB2b2lkIGluaXRCYXNlTmFtZShVRXJy
b3JDb2RlJiBzdGF0dXMpOworCisgICAgVUJvb2wgZklzQm9ndXM7CisKKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZnZXRMb2NhbGUoaW50IGxvY2lkKTsKKworICAgIC8qKgorICAgICAqIEEgZnJp
ZW5kIHRvIGFsbG93IHRoZSBkZWZhdWx0IGxvY2FsZSB0byBiZSBzZXQgYnkgZWl0aGVyIHRoZSBD
IG9yIEMrKyBBUEkuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgZnJpZW5kIExvY2Fs
ZSAqbG9jYWxlX3NldF9kZWZhdWx0X2ludGVybmFsKGNvbnN0IGNoYXIgKiwgVUVycm9yQ29kZSYg
c3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGZyaWVu
ZCB2b2lkIFVfQ0FMTENPTlYgbG9jYWxlX2F2YWlsYWJsZV9pbml0KCk7Cit9OworCitpbmxpbmUg
VUJvb2wKK0xvY2FsZTo6b3BlcmF0b3IhPShjb25zdCAgICBMb2NhbGUmICAgICBvdGhlcikgY29u
c3QKK3sKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0ob3RoZXIpOworfQorCitpbmxpbmUgY29uc3Qg
Y2hhciAqCitMb2NhbGU6OmdldENvdW50cnkoKSBjb25zdAoreworICAgIHJldHVybiBjb3VudHJ5
OworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldExhbmd1YWdlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbGFuZ3VhZ2U7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2Fs
ZTo6Z2V0U2NyaXB0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2NyaXB0OworfQorCitpbmxpbmUg
Y29uc3QgY2hhciAqCitMb2NhbGU6OmdldFZhcmlhbnQoKSBjb25zdAoreworICAgIHJldHVybiAm
YmFzZU5hbWVbdmFyaWFudEJlZ2luXTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxl
OjpnZXROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnVsbE5hbWU7Cit9CisKK2lubGluZSBV
Qm9vbAorTG9jYWxlOjppc0JvZ3VzKHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gZklzQm9ndXM7
Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvcmJiaS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDQ3NTk4YTUwZTZmYTNiYWIyYWQ0OWUwMjJhYWYzOTZjYWMzMjllNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oCkBAIC0wLDAgKzEsNzgyIEBA
CisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiAgICoKKyogICBhbmQgb3Ro
ZXJzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAg
ICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDEwLzIyLzk5ICAgIGFsYW4gICAgICAg
IENyZWF0aW9uLgorKiAgIDExLzExLzk5ICAgIHJnaWxsYW0gICAgIENvbXBsZXRlIHBvcnQgZnJv
bSBKYXZhLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBSQkJJX0gKKyNkZWZpbmUgUkJC
SV9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisvKioKKyAqIFxmaWxlCisgKiBc
YnJpZWYgQysrIEFQSTogUnVsZSBCYXNlZCBCcmVhayBJdGVyYXRvcgorICovCisKKyNpZiAhVUNP
TkZJR19OT19CUkVBS19JVEVSQVRJT04KKworI2luY2x1ZGUgInVuaWNvZGUvYnJraXRlci5oIgor
I2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3BhcnNlZXJyLmgi
CisjaW5jbHVkZSAidW5pY29kZS9zY2hyaXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWNocml0
ZXIuaCIKKworCitzdHJ1Y3QgVVRyaWU7CisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKiBAaW50
ZXJuYWwgKi8KK3N0cnVjdCBSQkJJRGF0YUhlYWRlcjsKK2NsYXNzICBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yVGFibGVzOworY2xhc3MgIEJyZWFrSXRlcmF0b3I7CitjbGFzcyAgUkJCSURhdGFXcmFw
cGVyOworY2xhc3MgIFVTdGFjazsKK2NsYXNzICBMYW5ndWFnZUJyZWFrRW5naW5lOworY2xhc3Mg
IFVuaGFuZGxlZEVuZ2luZTsKK3N0cnVjdCBSQkJJU3RhdGVUYWJsZTsKKworCisKKworLyoqCisg
KgorICogQSBzdWJjbGFzcyBvZiBCcmVha0l0ZXJhdG9yIHdob3NlIGJlaGF2aW9yIGlzIHNwZWNp
ZmllZCB1c2luZyBhIGxpc3Qgb2YgcnVsZXMuCisgKiA8cD5JbnN0YW5jZXMgb2YgdGhpcyBjbGFz
cyBhcmUgbW9zdCBjb21tb25seSBjcmVhdGVkIGJ5IHRoZSBmYWN0b3J5IG1ldGhvZHMgb2YKKyAq
ICBCcmVha0l0ZXJhdG9yOjpjcmVhdGVXb3JkSW5zdGFuY2UoKSwgQnJlYWtJdGVyYXRvcjo6Y3Jl
YXRlTGluZUluc3RhbmNlKCksIGV0Yy4sCisgKiAgYW5kIHRoZW4gdXNlZCB2aWEgdGhlIGFic3Ry
YWN0IEFQSSBpbiBjbGFzcyBCcmVha0l0ZXJhdG9yPC9wPgorICoKKyAqIDxwPlNlZSB0aGUgSUNV
IFVzZXIgR3VpZGUgZm9yIGluZm9ybWF0aW9uIG9uIEJyZWFrIEl0ZXJhdG9yIFJ1bGVzLjwvcD4K
KyAqCisgKiA8cD5UaGlzIGNsYXNzIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBzdWJjbGFzc2VkLiAg
KENsYXNzIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IKKyAqICAgIGlzIGEgc3ViY2xhc3Ms
IGJ1dCB0aGF0IHJlbGF0aW9uc2hpcCBpcyBlZmZlY3RpdmVseSBpbnRlcm5hbCB0byB0aGUgSUNV
CisgKiAgICBpbXBsZW1lbnRhdGlvbi4gIFRoZSBzdWJjbGFzc2luZyBpbnRlcmZhY2UgdG8gUnVs
ZXNCYXNlZEJyZWFrSXRlcmF0b3IgaXMKKyAqICAgIG5vdCBwYXJ0IG9mIHRoZSBJQ1UgQVBJLCBh
bmQgbWF5IG5vdCByZW1haW4gc3RhYmxlLjwvcD4KKyAqCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQ
SSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIC8qVV9GSU5BTCovIDogcHVibGljIEJyZWFrSXRlcmF0
b3IgeworCitwcm90ZWN0ZWQ6CisgICAgLyoqCisgICAgICogVGhlIFVUZXh0IHRocm91Z2ggd2hp
Y2ggdGhpcyBCcmVha0l0ZXJhdG9yIGFjY2Vzc2VzIHRoZSB0ZXh0CisgICAgICogQGludGVybmFs
CisgICAgICovCisgICAgVVRleHQgICpmVGV4dDsKKworICAgIC8qKgorICAgICAqICAgQSBjaGFy
YWN0ZXIgaXRlcmF0b3IgdGhhdCByZWZlcnMgdG8gdGhlIHNhbWUgdGV4dCBhcyB0aGUgVVRleHQs
IGFib3ZlLgorICAgICAqICAgT25seSBpbmNsdWRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9s
ZCBBUEksIHdoaWNoIHdhcyBiYXNlZCBvbiBDaGFyYWN0ZXJJdGVyYXRvcnMuCisgICAgICogICBW
YWx1ZSBtYXkgYmUgYWRvcHRlZCBmcm9tIG91dHNpZGUsIG9yIG9uZSBvZiBmU0NoYXJJdGVyIG9y
IGZEQ2hhckl0ZXIsIGJlbG93LgorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yICAqZkNo
YXJJdGVyOworCisgICAgLyoqCisgICAgICogICBXaGVuIHRoZSBpbnB1dCB0ZXh0IGlzIHByb3Zp
ZGVkIGJ5IGEgVW5pY29kZVN0cmluZywgdGhpcyB3aWxsIHBvaW50IHRvCisgICAgICogICAgYSBj
aGFyYWN0ZXJJdGVyYXRvciB0aGF0IHdyYXBzIHRoYXQgZGF0YS4gIE5lZWRlZCBvbmx5IGZvciB0
aGUKKyAgICAgKiAgICBpbXBsZW1lbnRhdGlvbiBvZiBnZXRUZXh0KCksIGEgYmFja3dhcmRzIGNv
bXBhdGliaWxpdHkgaXNzdWUuCisgICAgICovCisgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Ig
KmZTQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiAgV2hlbiB0aGUgaW5wdXQgdGV4dCBpcyBw
cm92aWRlZCBieSBhIFVUZXh0LCB0aGlzCisgICAgICogICAgZHVtbXkgQ2hhcmFjdGVySXRlcmF0
b3Igb3ZlciBhbiBlbXB0eSBzdHJpbmcgd2lsbAorICAgICAqICAgIGJlIHJldHVybmVkIGZyb20g
Z2V0VGV4dCgpCisgICAgICovCisgICAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciAqZkRDaGFySXRl
cjsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlIGRhdGEgZm9yIHRoaXMgQnJlYWtJdGVyYXRv
ciBpbnN0YW5jZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJCQklEYXRhV3JhcHBl
ciAgICAqZkRhdGE7CisKKyAgICAvKiogSW5kZXggb2YgdGhlIFJ1bGUge3RhZ30gdmFsdWVzIGZv
ciB0aGUgbW9zdCByZWNlbnQgbWF0Y2guCisgICAgICogIEBpbnRlcm5hbAorICAgICovCisgICAg
aW50MzJfdCAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleDsKKworICAgIC8qKgorICAg
ICAqIFJ1bGUgdGFnIHZhbHVlIHZhbGlkIGZsYWcuCisgICAgICogU29tZSBpdGVyYXRvciBvcGVy
YXRpb25zIGRvbid0IGludHJpbnNpY2FsbHkgc2V0IHRoZSBjb3JyZWN0IHRhZyB2YWx1ZS4KKyAg
ICAgKiBUaGlzIGZsYWcgbGV0cyB1cyBsYXppbHkgY29tcHV0ZSB0aGUgdmFsdWUgaWYgd2UgYXJl
IGV2ZXIgYXNrZWQgZm9yIGl0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVCb29s
ICAgICAgICAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkOworCisgICAgLyoqCisgICAgICog
Q291bnRlciBmb3IgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGVuY291bnRlcmVkIHdpdGggdGhl
ICJkaWN0aW9uYXJ5IgorICAgICAqICAgZmxhZyBzZXQuCisgICAgICogQGludGVybmFsCisgICAg
ICovCisgICAgdWludDMyX3QgICAgICAgICAgICBmRGljdGlvbmFyeUNoYXJDb3VudDsKKworICAg
IC8qKgorICAgICAqIFdoZW4gYSByYW5nZSBvZiBjaGFyYWN0ZXJzIGlzIGRpdmlkZWQgdXAgdXNp
bmcgdGhlIGRpY3Rpb25hcnksIHRoZSBicmVhaworICAgICAqIHBvc2l0aW9ucyB0aGF0IGFyZSBk
aXNjb3ZlcmVkIGFyZSBzdG9yZWQgaGVyZSwgcHJldmVudGluZyB1cyBmcm9tIGhhdmluZworICAg
ICAqIHRvIHVzZSBlaXRoZXIgdGhlIGRpY3Rpb25hcnkgb3IgdGhlIHN0YXRlIHRhYmxlIGFnYWlu
IHVudGlsIHRoZSBpdGVyYXRvcgorICAgICAqIGxlYXZlcyB0aGlzIHJhbmdlIG9mIHRleHQuIEhh
cyB0aGUgbW9zdCBpbXBhY3QgZm9yIGxpbmUgYnJlYWtpbmcuCisgICAgICogQGludGVybmFsCisg
ICAgICovCisgICAgaW50MzJfdCogICAgICAgICAgICBmQ2FjaGVkQnJlYWtQb3NpdGlvbnM7CisK
KyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGZDYWNoZWRCcmVha1Bv
c2l0aW9ucworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICAg
ICAgZk51bUNhY2hlZEJyZWFrUG9zaXRpb25zOworCisgICAgLyoqCisgICAgICogaWYgZkNhY2hl
ZEJyZWFrUG9zaXRpb25zIGlzIG5vdCBudWxsLCB0aGlzIGluZGljYXRlcyB3aGljaCBpdGVtIGlu
IHRoZQorICAgICAqIGNhY2hlIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiByZWZlcnMg
dG8KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZQ
b3NpdGlvbkluQ2FjaGU7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAgKiBJZiBwcmVzZW50
LCBVU3RhY2sgb2YgTGFuZ3VhZ2VCcmVha0VuZ2luZSBvYmplY3RzIHRoYXQgbWlnaHQgaGFuZGxl
CisgICAgICogZGljdGlvbmFyeSBjaGFyYWN0ZXJzLiBTZWFyY2hlZCBmcm9tIHRvcCB0byBib3R0
b20gdG8gZmluZCBhbiBvYmplY3QgdG8KKyAgICAgKiBoYW5kbGUgYSBnaXZlbiBjaGFyYWN0ZXIu
CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVVN0YWNrICAgICAgICAgICAgICAqZkxh
bmd1YWdlQnJlYWtFbmdpbmVzOworICAgIAorICAgIC8qKgorICAgICAqCisgICAgICogSWYgcHJl
c2VudCwgdGhlIHNwZWNpYWwgTGFuZ3VhZ2VCcmVha0VuZ2luZSB1c2VkIGZvciBoYW5kbGluZwor
ICAgICAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW4gdGhlIGRpY3Rpb25hcnkgc2V0LCBidXQgbm90
IGhhbmRsZWQgYnkgYW55CisgICAgICogTGFuZ3VnYWdlQnJlYWtFbmdpbmUuCisgICAgICogQGlu
dGVybmFsCisgICAgICovCisgICAgVW5oYW5kbGVkRW5naW5lICAgICAqZlVuaGFuZGxlZEJyZWFr
RW5naW5lOworICAgIAorICAgIC8qKgorICAgICAqCisgICAgICogVGhlIHR5cGUgb2YgdGhlIGJy
ZWFrIGl0ZXJhdG9yLCBvciAtMSBpZiBpdCBoYXMgbm90IGJlZW4gc2V0LgorICAgICAqIEBpbnRl
cm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZkJyZWFrVHlwZTsKKyAgICAK
K3Byb3RlY3RlZDoKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gY29uc3RydWN0b3JzCisg
ICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAv
KioKKyAgICAgKiBDb25zdGFudCB0byBiZSB1c2VkIGluIHRoZSBjb25zdHJ1Y3RvcgorICAgICAq
IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoUkJCSURhdGFIZWFkZXIqLCBFRG9udEFkb3B0LCBVRXJy
b3JDb2RlICYpOworICAgICAqIHdoaWNoIGRvZXMgbm90IGFkb3B0IHRoZSBtZW1vcnkgaW5kaWNh
dGVkIGJ5IHRoZSBSQkJJRGF0YUhlYWRlcioKKyAgICAgKiBwYXJhbWV0ZXIuCisgICAgICoKKyAg
ICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBlbnVtIEVEb250QWRvcHQgeworICAgICAgICBr
RG9udEFkb3B0CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZyb20gYSBm
bGF0dGVuZWQgc2V0IG9mIFJCQkkgZGF0YSBpbiBtYWxsb2NlZCBtZW1vcnkuCisgICAgICogICAg
ICAgICAgICAgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3JzIGJ1aWx0IGZyb20gYSBjdXN0b20gc2V0
IG9mIHJ1bGVzCisgICAgICogICAgICAgICAgICAgYXJlIGNyZWF0ZWQgdmlhIHRoaXMgY29uc3Ry
dWN0b3I7IHRoZSBydWxlcyBhcmUgY29tcGlsZWQKKyAgICAgKiAgICAgICAgICAgICBpbnRvIG1l
bW9yeSwgdGhlbiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgY29uc3RydWN0ZWQgaGVyZS4KKyAgICAg
KgorICAgICAqICAgICAgICAgICAgIFRoZSBicmVhayBpdGVyYXRvciBhZG9wdHMgdGhlIG1lbW9y
eSwgYW5kIHdpbGwKKyAgICAgKiAgICAgICAgICAgICBmcmVlIGl0IHdoZW4gZG9uZS4KKyAgICAg
KiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFJCQklEYXRh
SGVhZGVyKiBkYXRhLCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ29u
c3RydWN0b3IgZnJvbSBhIGZsYXR0ZW5lZCBzZXQgb2YgUkJCSSBkYXRhIGluIG1lbW9yeSB3aGlj
aCBuZWVkIG5vdAorICAgICAqICAgICAgICAgICAgIGJlIG1hbGxvY2VkIChlLmcuIGl0IG1heSBi
ZSBhIG1lbW9yeS1tYXBwZWQgZmlsZSwgZXRjLikuCisgICAgICoKKyAgICAgKiAgICAgICAgICAg
ICBUaGlzIHZlcnNpb24gZG9lcyBub3QgYWRvcHQgdGhlIG1lbW9yeSwgYW5kIGRvZXMgbm90Cisg
ICAgICogICAgICAgICAgICAgZnJlZSBpdCB3aGVuIGRvbmUuCisgICAgICogQGludGVybmFsCisg
ICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCBSQkJJRGF0YUhlYWRlciog
ZGF0YSwgZW51bSBFRG9udEFkb3B0IGRvbnRBZG9wdCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyNl
bmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisKKyAgICBmcmllbmQgY2xhc3MgUkJC
SVJ1bGVCdWlsZGVyOworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBmcmllbmQgY2xhc3MgQnJl
YWtJdGVyYXRvcjsKKworCisKK3B1YmxpYzoKKworICAgIC8qKiBEZWZhdWx0IGNvbnN0cnVjdG9y
LiAgQ3JlYXRlcyBhbiBlbXB0eSBzaGVsbCBvZiBhbiBpdGVyYXRvciwgd2l0aCBubworICAgICAq
ICBydWxlcyBvciB0ZXh0IHRvIGl0ZXJhdGUgb3Zlci4gICBPYmplY3QgY2FuIHN1YnNlcXVlbnRs
eSBiZSBhc3NpZ25lZCB0by4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAg
UnVsZUJhc2VkQnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICogQ29weSBjb25zdHJ1
Y3Rvci4gIFdpbGwgcHJvZHVjZSBhIGJyZWFrIGl0ZXJhdG9yIHdpdGggdGhlIHNhbWUgYmVoYXZp
b3IsCisgICAgICogYW5kIHdoaWNoIGl0ZXJhdGVzIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhl
IG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVCYXNlZEJyZWFrSXRl
cmF0b3IgcGFzc2VkIHRvIGJlIGNvcGllZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoY29uc3QgUnVsZUJhc2VkQnJlYWtJdGVyYXRv
ciYgdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yIGZyb20gYSBzZXQgb2YgcnVsZXMgc3VwcGxpZWQgYXMgYSBzdHJpbmcuCisgICAgICog
QHBhcmFtIHJ1bGVzIFRoZSBicmVhayBydWxlcyB0byBiZSB1c2VkLgorICAgICAqIEBwYXJhbSBw
YXJzZUVycm9yICBJbiB0aGUgZXZlbnQgb2YgYSBzeW50YXggZXJyb3IgaW4gdGhlIHJ1bGVzLCBw
cm92aWRlcyB0aGUgbG9jYXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgd2l0aGluIHRo
ZSBydWxlcyBvZiB0aGUgcHJvYmxlbS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIEluZm9ybWF0aW9u
IG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAg
ICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciggY29uc3QgVW5pY29kZVN0cmluZyAgICAm
cnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQYXJzZUVycm9yICAgICAgICAg
ICAmcGFyc2VFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAg
ICAgICAgICAgICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ29udHJ1Y3QgYSBSdWxlQmFz
ZWRCcmVha0l0ZXJhdG9yIGZyb20gYSBzZXQgb2YgcHJlY29tcGlsZWQgYmluYXJ5IHJ1bGVzLgor
ICAgICAqIEJpbmFyeSBydWxlcyBhcmUgb2J0YWluZWQgZnJvbSBSdWxlc0Jhc2VkQnJlYWtJdGVy
YXRvcjo6Z2V0QmluYXJ5UnVsZXMoKS4KKyAgICAgKiBDb25zdHJ1Y3Rpb24gb2YgYSBicmVhayBp
dGVyYXRvciBpbiB0aGlzIHdheSBpcyBzdWJzdGFudGlhbGx5IGZhc3RlciB0aGFuCisgICAgICog
Y29uc3R1Y3Rpb24gZnJvbSBzb3VyY2UgcnVsZXMuCisgICAgICoKKyAgICAgKiBPd25lcnNoaXAg
b2YgdGhlIHN0b3JhZ2UgY29udGFpbmluZyB0aGUgY29tcGlsZWQgcnVsZXMgcmVtYWlucyB3aXRo
IHRoZQorICAgICAqIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uLiAgVGhlIGNvbXBpbGVkIHJ1bGVz
IG11c3Qgbm90IGJlICBtb2RpZmllZCBvciAKKyAgICAgKiBkZWxldGVkIGR1cmluZyB0aGUgbGlm
ZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBUaGUgY29tcGlsZWQgcnVs
ZXMgYXJlIG5vdCBjb21wYXRpYmxlIGFjcm9zcyBkaWZmZXJlbnQgbWFqb3IgdmVyc2lvbnMgb2Yg
SUNVLgorICAgICAqIFRoZSBjb21waWxlZCBydWxlcyBhcmUgY29tYXB0aWJsZSBvbmx5IGJldHdl
ZW4gbWFjaGluZXMgd2l0aCB0aGUgc2FtZQorICAgICAqIGJ5dGUgb3JkZXJpbmcgKGxpdHRsZSBv
ciBiaWcgZW5kaWFuKSBhbmQgdGhlIHNhbWUgYmFzZSBjaGFyYWN0ZXIgc2V0IGZhbWlseQorICAg
ICAqIChBU0NJSSBvciBFQkNESUMpLgorICAgICAqCisgICAgICogQHNlZSAjZ2V0QmluYXJ5UnVs
ZXMKKyAgICAgKiBAcGFyYW0gY29tcGlsZWRSdWxlcyBBIHBvaW50ZXIgdG8gdGhlIGNvbXBpbGVk
IGJyZWFrIHJ1bGVzIHRvIGJlIHVzZWQuCisgICAgICogQHBhcmFtIHJ1bGVMZW5ndGggVGhlIGxl
bmd0aCBvZiB0aGUgY29tcGlsZWQgYnJlYWsgcnVsZXMsIGluIGJ5dGVzLiAgVGhpcworICAgICAq
ICAgY29ycmVzcG9uZHMgdG8gdGhlIGxlbmd0aCB2YWx1ZSBwcm9kdWNlZCBieSBnZXRCaW5hcnlS
dWxlcygpLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24gYW55IGVycm9ycyBl
bmNvdW50ZXJlZCwgaW5jbHVkaW5nIGludmFsaWQKKyAgICAgKiAgIGJpbmFyeSBydWxlcy4KKyAg
ICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
KGNvbnN0IHVpbnQ4X3QgKmNvbXBpbGVkUnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1aW50MzJfdCAgICAgICBydWxlTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
VUVycm9yQ29kZSAgICAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgY29uc3RydWN0
b3IgdXNlcyB0aGUgdWRhdGEgaW50ZXJmYWNlIHRvIGNyZWF0ZSBhIEJyZWFrSXRlcmF0b3IKKyAg
ICAgKiB3aG9zZSBpbnRlcm5hbCB0YWJsZXMgbGl2ZSBpbiBhIG1lbW9yeS1tYXBwZWQgZmlsZS4g
ICJpbWFnZSIgaXMgYW4KKyAgICAgKiBJQ1UgVURhdGFNZW1vcnkgaGFuZGxlIGZvciB0aGUgcHJl
LWNvbXBpbGVkIGJyZWFrIGl0ZXJhdG9yIHRhYmxlcy4KKyAgICAgKiBAcGFyYW0gaW1hZ2UgaGFu
ZGxlIHRvIHRoZSBtZW1vcnkgaW1hZ2UgZm9yIHRoZSBicmVhayBpdGVyYXRvciBkYXRhLgorICAg
ICAqICAgICAgICBPd25lcnNoaXAgb2YgdGhlIFVEYXRhTWVtb3J5IGhhbmRsZSBwYXNzZXMgdG8g
dGhlIEJyZWFrIEl0ZXJhdG9yLAorICAgICAqICAgICAgICB3aGljaCB3aWxsIGJlIHJlc3BvbnNp
YmxlIGZvciBjbG9zaW5nIGl0IHdoZW4gaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgKiBA
cGFyYW0gc3RhdHVzIEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQuCisgICAg
ICogQHNlZSB1ZGF0YV9vcGVuCisgICAgICogQHNlZSAjZ2V0QmluYXJ5UnVsZXMKKyAgICAgKiBA
c3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFVEYXRh
TWVtb3J5KiBpbWFnZSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIERl
c3RydWN0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+
UnVsZUJhc2VkQnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICogQXNzaWdubWVudCBv
cGVyYXRvci4gIFNldHMgdGhpcyBpdGVyYXRvciB0byBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLAor
ICAgICAqIGFuZCBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhlIG9uZSBwYXNzZWQg
aW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVCYXNlZEJyZWFrSXRlcnRvciBwYXNzZWQg
aW4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJ
dGVyYXRvciYgb3BlcmF0b3I9KGNvbnN0IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIHRoYXQpOwor
CisgICAgLyoqCisgICAgICogRXF1YWxpdHkgb3BlcmF0b3IuICBSZXR1cm5zIFRSVUUgaWYgYm90
aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhlCisgICAgICogc2FtZSBjbGFzcywgaGF2ZSB0aGUg
c2FtZSBiZWhhdmlvciwgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAqIEBw
YXJhbSB0aGF0IFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQor
ICAgICAqIEByZXR1cm4gVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBvZiB0aGUKKyAg
ICAgKiBzYW1lIGNsYXNzLCBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLCBhbmQgaXRlcmF0ZSBvdmVy
IHRoZSBzYW1lIHRleHQuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIE5vdC1lcXVhbCBvcGVyYXRvci4gIElmIG9wZXJhdG9yPT0gcmV0
dXJucyBUUlVFLCB0aGlzIHJldHVybnMgRkFMU0UsCisgICAgICogYW5kIHZpY2UgdmVyc2EuCisg
ICAgICogQHBhcmFtIHRoYXQgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGlu
ZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBhcmUg
bm90IHNhbWUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29sIG9w
ZXJhdG9yIT0oY29uc3QgQnJlYWtJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3
aXRoIHRoZSBzYW1lCisgICAgICogYmVoYXZpb3IsIGFuZCBpdGVyYXRpbmcgb3ZlciB0aGUgc2Ft
ZSB0ZXh0LCBhcyB0aGlzIG9uZS4KKyAgICAgKiBEaWZmZXJzIGZyb20gdGhlIGNvcHkgY29uc3Ry
dWN0b3IgaW4gdGhhdCBpdCBpcyBwb2x5bW9ycGhpYywgYW5kCisgICAgICogd2lsbCBjb3JyZWN0
bHkgY2xvbmUgKGNvcHkpIGEgZGVyaXZlZCBjbGFzcy4KKyAgICAgKiBjbG9uZSgpIGlzIHRocmVh
ZCBzYWZlLiAgTXVsdGlwbGUgdGhyZWFkcyBtYXkgc2ltdWx0YWVuZW91c2x5CisgICAgICogY2xv
bmUgdGhlIHNhbWUgc291cmNlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gYSBuZXds
eS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yKiBjbG9uZSgpIGNvbnN0Owor
CisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIGhhc2ggY29kZSBmb3IgdGhpcyBCcmVha0l0ZXJh
dG9yCisgICAgICogQHJldHVybiBBIGhhc2ggY29kZQorICAgICAqICBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgaGFzaENvZGUodm9pZCkgY29uc3Q7CisKKyAg
ICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZXNjcmlwdGlvbiB1c2VkIHRvIGNyZWF0ZSB0aGlz
IGl0ZXJhdG9yCisgICAgICogQHJldHVybiB0aGUgZGVzY3JpcHRpb24gdXNlZCB0byBjcmVhdGUg
dGhpcyBpdGVyYXRvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIGNvbnN0IFVuaWNvZGVTdHJpbmcmIGdldFJ1bGVzKHZvaWQpIGNvbnN0OworCisgICAgLy89
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorICAgIC8vIEJyZWFrSXRlcmF0b3Igb3ZlcnJpZGVzCisgICAgLy89PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogUmV0dXJuIGEgQ2hhcmFj
dGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBUaGUgcmV0
dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIGlzIG93bmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvciwg
YW5kIG11c3QKKyAgICAgKiBub3QgYmUgZGVsZXRlZCBieSB0aGUgY2FsbGVyLiAgUmVwZWF0ZWQg
Y2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBtYXkKKyAgICAgKiByZXR1cm4gdGhlIHNhbWUgQ2hhcmFj
dGVySXRlcmF0b3IuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoZSByZXR1cm5l
ZCBjaGFyYWN0ZXIgaXRlcmF0b3IgbXVzdCBub3QgYmUgdXNlZCBjb25jdXJyZW50bHkgd2l0aAor
ICAgICAqIHRoZSBicmVhayBpdGVyYXRvci4gIElmIGNvbmN1cnJlbnQgb3BlcmF0aW9uIGlzIG5l
ZWRlZCwgY2xvbmUgdGhlCisgICAgICogcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIGZpcnN0
IGFuZCBvcGVyYXRlIG9uIHRoZSBjbG9uZS4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAg
ICogV2hlbiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nIG9uIHRleHQgc3VwcGxpZWQg
dmlhIGEgVVRleHQsCisgICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIGZhaWwuICBMYWNraW5nIGFu
eSB3YXkgdG8gc2lnbmFsIGZhaWx1cmVzLCBpdAorICAgICAqIHJldHVybnMgYW4gQ2hhcmFjdGVy
SXRlcmF0b3IgY29udGFpbmluZyBubyB0ZXh0LgorICAgICAqIFRoZSBmdW5jdGlvbiBnZXRVVGV4
dCgpIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSwKKyAgICAgKiBpcyByZWxpYWJsZSwg
YW5kIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIFRPRE86
ICBkZXByZWNhdGUgdGhpcyBmdW5jdGlvbj8KKyAgICAgKgorICAgICAqIEByZXR1cm4gQW4gaXRl
cmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsICBDaGFyYWN0ZXJJdGVyYXRvciYgZ2V0VGV4dCh2b2lk
KSBjb25zdDsKKworCisgICAgLyoqCisgICAgICAqICBHZXQgYSBVVGV4dCBmb3IgdGhlIHRleHQg
YmVpbmcgYW5hbHl6ZWQuCisgICAgICAqICBUaGUgcmV0dXJuZWQgVVRleHQgaXMgYSBzaGFsbG93
IGNsb25lIG9mIHRoZSBVVGV4dCB1c2VkIGludGVybmFsbHkKKyAgICAgICogIGJ5IHRoZSBicmVh
ayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbi4gIEl0IGNhbiBzYWZlbHkgYmUgdXNlZCB0bworICAg
ICAgKiAgYWNjZXNzIHRoZSB0ZXh0IHdpdGhvdXQgaW1wYWN0aW5nIGFueSBicmVhayBpdGVyYXRv
ciBvcGVyYXRpb25zLAorICAgICAgKiAgYnV0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmIG11
c3Qgbm90IGJlIGFsdGVyZWQuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBmaWxsSW4gQSBVVGV4
dCB0byBiZSBmaWxsZWQgaW4uICBJZiBOVUxMLCBhIG5ldyBVVGV4dCB3aWxsIGJlCisgICAgICAq
ICAgICAgICAgICBhbGxvY2F0ZWQgdG8gaG9sZCB0aGUgcmVzdWx0LgorICAgICAgKiBAcGFyYW0g
c3RhdHVzIHJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgICogQHJldHVybiAgIFRoZSBj
dXJyZW50IFVUZXh0IGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiAgSWYgYW4gaW5wdXQKKyAgICAg
ICogICAgICAgICAgIFVUZXh0IHdhcyBwcm92aWRlZCwgaXQgd2lsbCBhbHdheXMgYmUgcmV0dXJu
ZWQuCisgICAgICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAgKi8KKyAgICAgdmlydHVhbCBVVGV4
dCAqZ2V0VVRleHQoVVRleHQgKmZpbGxJbiwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKwor
ICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBv
ZiB0ZXh0LiAgVGhpcyBmdW5jdGlvbiByZXNldHMKKyAgICAgKiB0aGUgY3VycmVudCBpdGVyYXRp
b24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0g
bmV3VGV4dCBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IHRvIGFuYWx5emUuICBUaGUgQnJlYWtJ
dGVyYXRvcgorICAgICAqIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgY2hhcmFjdGVyIGl0ZXJhdG9y
LiAgVGhlIGNhbGxlciBNVVNUIE5PVCBkZWxldGUgaXQhCisgICAgICogIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBhZG9wdFRleHQoQ2hhcmFjdGVySXRlcmF0b3Iq
IG5ld1RleHQpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXpl
IGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBj
dXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0Lgor
ICAgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSB0ZXh0IHRvIGFuYWx5emUuCisgICAgICogIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0KGNvbnN0IFVuaWNv
ZGVTdHJpbmcmIG5ld1RleHQpOworCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGJyZWFrIGl0
ZXJhdG9yIHRvIG9wZXJhdGUgb3ZlciB0aGUgdGV4dCByZXByZXNlbnRlZCBieQorICAgICAqIHRo
ZSBVVGV4dC4gIFRoZSBpdGVyYXRvciBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgc3RhcnQuCisg
ICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUg
c3VwcGxpZWQgVVRleHQuICBUaGlzIG1lYW5zCisgICAgICogdGhhdCB0aGUgY2FsbGVyIGlzIGZy
ZWUgdG8gaW1tZWRpYXRlbHkgY2xvc2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRoZQorICAgICAqIFV0
ZXh0IHRoYXQgd2FzIHBhc3NlZCBhcyBhIHBhcmFtZXRlciwgYnV0IHRoYXQgdGhlIHVuZGVybHlp
bmcgdGV4dCBpdHNlbGYKKyAgICAgKiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdoaWxlIGJlaW5nIHJl
ZmVyZW5jZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIHRl
eHQgICAgVGhlIFVUZXh0IHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBz
dGF0dXMgIFJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoVVRleHQgKnRleHQsIFVFcnJvckNv
ZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlv
biBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCBwb3NpdGlvbiB6ZXJvLgor
ICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCB6
ZXJvLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMy
X3QgZmlyc3Qodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJh
dGlvbiBwb3NpdGlvbiB0byB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gVGhl
IHRleHQncyBwYXN0LXRoZS1lbmQgb2Zmc2V0LgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbGFzdCh2b2lkKTsKKworICAgIC8qKgorICAgICAq
IEFkdmFuY2VzIHRoZSBpdGVyYXRvciBlaXRoZXIgZm9yd2FyZCBvciBiYWNrd2FyZCB0aGUgc3Bl
Y2lmaWVkIG51bWJlciBvZiBzdGVwcy4KKyAgICAgKiBOZWdhdGl2ZSB2YWx1ZXMgbW92ZSBiYWNr
d2FyZCwgYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3ZlIGZvcndhcmQuICBUaGlzIGlzCisgICAgICog
ZXF1aXZhbGVudCB0byByZXBlYXRlZGx5IGNhbGxpbmcgbmV4dCgpIG9yIHByZXZpb3VzKCkuCisg
ICAgICogQHBhcmFtIG4gVGhlIG51bWJlciBvZiBzdGVwcyB0byBtb3ZlLiAgVGhlIHNpZ24gaW5k
aWNhdGVzIHRoZSBkaXJlY3Rpb24KKyAgICAgKiAobmVnYXRpdmUgaXMgYmFja3dhcmRzLCBhbmQg
cG9zaXRpdmUgaXMgZm9yd2FyZHMpLgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBvZmZz
ZXQgb2YgdGhlIGJvdW5kYXJ5IHBvc2l0aW9uIG4gYm91bmRhcmllcyBhd2F5IGZyb20KKyAgICAg
KiB0aGUgY3VycmVudCBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBuZXh0KGludDMyX3Qgbik7CisKKyAgICAvKioKKyAgICAgKiBBZHZh
bmNlcyB0aGUgaXRlcmF0b3IgdG8gdGhlIG5leHQgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICog
QHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRoaXMgb25l
LgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3Qg
bmV4dCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBpdGVyYXRvciBiYWNrd2Fy
ZHMsIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHByZWNlZGluZyB0aGlzIG9uZS4KKyAgICAgKiBAcmV0
dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcg
dGhpcyBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
aW50MzJfdCBwcmV2aW91cyh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJh
dG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBmb2xsb3dpbmcKKyAg
ICAgKiB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBv
c2l0aW9uIGZyb20gd2hpY2ggdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBhIGJyZWFrIHBvc2l0aW9u
LgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBicmVhayBhZnRlciB0
aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBpbnQzMl90IGZvbGxvd2luZyhpbnQzMl90IG9mZnNldCk7CisKKyAgICAvKioK
KyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBib3VuZGFyeSBw
b3NpdGlvbiBiZWZvcmUgdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBw
YXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIHRvIGJlZ2luIHNlYXJjaGluZyBmb3IgYSBicmVhayBm
cm9tLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IGJl
Zm9yZSB0aGUgc3RhcnRpbmcgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmcoaW50MzJfdCBvZmZzZXQpOworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjZmllZCBwb3NpdGlvbiBpcyBh
IGJvdW5kYXJ5IHBvc2l0aW9uLiAgQXMgYSBzaWRlCisgICAgICogZWZmZWN0LCBsZWF2ZXMgdGhl
IGl0ZXJhdG9yIHBvaW50aW5nIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBhdAorICAg
ICAqIG9yIGFmdGVyICJvZmZzZXQiLgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0
byBjaGVjay4KKyAgICAgKiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMgYSBib3VuZGFyeSBw
b3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBV
Qm9vbCBpc0JvdW5kYXJ5KGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVy
bnMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIGN1
cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgaW50MzJfdCBjdXJyZW50KHZvaWQpIGNvbnN0OworCisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm4gdGhlIHN0YXR1cyB0YWcgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRl
dGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlv
bi4gIEZvciBicmVhayBydWxlcyB0aGF0IGRvIG5vdCBzcGVjaWZ5IGEKKyAgICAgKiBzdGF0dXMs
IGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVkLiAgSWYgbW9yZSB0aGFuIG9uZSBicmVh
ayBydWxlCisgICAgICogd291bGQgY2F1c2UgYSBib3VuZGFyeSB0byBiZSBsb2NhdGVkIGF0IHNv
bWUgcG9zaXRpb24gaW4gdGhlIHRleHQsCisgICAgICogdGhlIG51bWVyaWNhbGx5IGxhcmdlc3Qg
b2YgdGhlIGFwcGxpY2FibGUgc3RhdHVzIHZhbHVlcyBpcyByZXR1cm5lZC4KKyAgICAgKiA8cD4K
KyAgICAgKiBPZiB0aGUgc3RhbmRhcmQgdHlwZXMgb2YgSUNVIGJyZWFrIGl0ZXJhdG9ycywgb25s
eSB3b3JkIGJyZWFrIGFuZAorICAgICAqIGxpbmUgYnJlYWsgcHJvdmlkZSBzdGF0dXMgdmFsdWVz
LiAgVGhlIHZhbHVlcyBhcmUgZGVmaW5lZCBpbgorICAgICAqIHRoZSBoZWFkZXIgZmlsZSB1YnJr
LmguICBGb3IgV29yZCBicmVha3MsIHRoZSBzdGF0dXMgYWxsb3dzIGRpc3Rpbmd1aXNoaW5nIGJl
dHdlZW4gd29yZHMKKyAgICAgKiB0aGF0IGNvbnRhaW4gYWxwaGFiZXRpYyBsZXR0ZXJzLCAid29y
ZHMiIHRoYXQgYXBwZWFyIHRvIGJlIG51bWJlcnMsCisgICAgICogcHVuY3R1YXRpb24gYW5kIHNw
YWNlcywgd29yZHMgY29udGFpbmluZyBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzLCBhbmQKKyAgICAg
KiBtb3JlLiAgRm9yIExpbmUgQnJlYWssIHRoZSBzdGF0dXMgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVu
IGhhcmQgKG1hbmRhdG9yeSkgYnJlYWtzCisgICAgICogYW5kIHNvZnQgKHBvdGVudGlhbCkgYnJl
YWsgcG9zaXRpb25zLgorICAgICAqIDxwPgorICAgICAqIDxjb2RlPmdldFJ1bGVTdGF0dXMoKTwv
Y29kZT4gY2FuIGJlIGNhbGxlZCBhZnRlciBvYnRhaW5pbmcgYSBib3VuZGFyeQorICAgICAqIHBv
c2l0aW9uIGZyb20gPGNvZGU+bmV4dCgpPC9jb2RlPiwgPGNvZGU+cHJldmlvdXMoKTwvY29kZT4s
IG9yCisgICAgICogYW55IG90aGVyIGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyB0aGF0IHJldHVy
bnMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIGNyZWF0aW5n
IGN1c3RvbSBicmVhayBydWxlcywgb25lIGlzIGZyZWUgdG8gZGVmaW5lIHdoYXRldmVyCisgICAg
ICogc3RhdHVzIHZhbHVlcyBtYXkgYmUgY29udmVuaWVudCBmb3IgdGhlIGFwcGxpY2F0aW9uLgor
ICAgICAqIDxwPgorICAgICAqIE5vdGU6IHRoaXMgZnVuY3Rpb24gaXMgbm90IHRocmVhZCBzYWZl
LiAgSXQgc2hvdWxkIG5vdCBoYXZlIGJlZW4KKyAgICAgKiAgICAgICBkZWNsYXJlZCBjb25zdCwg
YW5kIHRoZSBjb25zdCByZW1haW5zIG9ubHkgZm9yIGNvbXBhdGliaWxpdHkKKyAgICAgKiAgICAg
ICByZWFzb25zLiAgKFRoZSBmdW5jdGlvbiBpcyBsb2dpY2FsbHkgY29uc3QsIGJ1dCBub3QgYml0
LXdpc2UgY29uc3QpLgorICAgICAqIDxwPgorICAgICAqIEByZXR1cm4gdGhlIHN0YXR1cyBmcm9t
IHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAq
IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqCisgICAgICogQHNlZSBVV29yZEJyZWFr
CisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdl
dFJ1bGVTdGF0dXMoKSBjb25zdDsKKworICAgLyoqCisgICAgKiBHZXQgdGhlIHN0YXR1cyAodGFn
KSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsgcnVsZShzKSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QK
KyAgICAqIHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICogPHA+CisgICAg
KiBUaGUgcmV0dXJuZWQgc3RhdHVzIHZhbHVlKHMpIGFyZSBzdG9yZWQgaW50byBhbiBhcnJheSBw
cm92aWRlZCBieSB0aGUgY2FsbGVyLgorICAgICogVGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHNv
cnRlZCAoYXNjZW5kaW5nKSBvcmRlci4KKyAgICAqIElmIHRoZSBjYXBhY2l0eSBvZiB0aGUgb3V0
cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xkIHRoZSBkYXRhLAorICAgICogIHRoZSBv
dXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2YWlsYWJsZSBsZW5ndGgsIGFuZCBhCisg
ICAgKiAgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1Igd2lsbCBiZSBzaWduYWxlZC4KKyAgICAqCisg
ICAgKiBAcGFyYW0gZmlsbEluVmVjIGFuIGFycmF5IHRvIGJlIGZpbGxlZCBpbiB3aXRoIHRoZSBz
dGF0dXMgdmFsdWVzLgorICAgICogQHBhcmFtIGNhcGFjaXR5ICB0aGUgbGVuZ3RoIG9mIHRoZSBz
dXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0aCBvZiB6ZXJvIGNhdXNlcworICAgICogICAgICAgICAg
ICAgICAgICB0aGUgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSBudW1iZXIgb2Ygc3RhdHVzIHZhbHVl
cywgaW4gdGhlCisgICAgKiAgICAgICAgICAgICAgICAgIG5vcm1hbCB3YXksIHdpdGhvdXQgYXR0
ZW10cGluZyB0byBzdG9yZSBhbnkgdmFsdWVzLgorICAgICogQHBhcmFtIHN0YXR1cyAgICByZWNl
aXZlcyBlcnJvciBjb2Rlcy4KKyAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIG51bWJlciBvZiBy
dWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxlcyB0aGF0IGRldGVybWluZWQKKyAgICAqICAgICAg
ICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50IGJvdW5kYXJ5IHJldHVybmVkIGJ5IHRoZSBicmVh
ayBpdGVyYXRvci4KKyAgICAqICAgICAgICAgICAgICAgICAgSW4gdGhlIGV2ZW50IG9mIGEgVV9C
VUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRoZSByZXR1cm4gdmFsdWUKKyAgICAqICAgICAgICAgICAg
ICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzIHRoYXQgd2VyZSBhdmFp
bGFibGUsCisgICAgKiAgICAgICAgICAgICAgICAgIG5vdCB0aGUgcmVkdWNlZCBudW1iZXIgdGhh
dCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgorICAgICogQHNlZSBnZXRSdWxlU3RhdHVzCisgICAg
KiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3Rh
dHVzVmVjKGludDMyX3QgKmZpbGxJblZlYywgaW50MzJfdCBjYXBhY2l0eSwgVUVycm9yQ29kZSAm
c3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB1bmlxdWUgY2xhc3MgSUQgUE9M
WU1PUlBISUNBTExZLiAgUHVyZSB2aXJ0dWFsIG92ZXJyaWRlLgorICAgICAqIFRoaXMgbWV0aG9k
IGlzIHRvIGltcGxlbWVudCBhIHNpbXBsZSB2ZXJzaW9uIG9mIFJUVEksIHNpbmNlIG5vdCBhbGwK
KyAgICAgKiBDKysgY29tcGlsZXJzIHN1cHBvcnQgZ2VudWluZSBSVFRJLiAgUG9seW1vcnBoaWMg
b3BlcmF0b3I9PSgpIGFuZAorICAgICAqIGNsb25lKCkgbWV0aG9kcyBjYWxsIHRoaXMgbWV0aG9k
LgorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICBUaGUgY2xhc3MgSUQgZm9yIHRoaXMg
b2JqZWN0LiBBbGwgb2JqZWN0cyBvZiBhCisgICAgICogICAgICAgICAgICAgICAgICBnaXZlbiBj
bGFzcyBoYXZlIHRoZSBzYW1lIGNsYXNzIElELiAgT2JqZWN0cyBvZgorICAgICAqICAgICAgICAg
ICAgICAgICAgb3RoZXIgY2xhc3NlcyBoYXZlIGRpZmZlcmVudCBjbGFzcyBJRHMuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWlj
Q2xhc3NJRCh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNsYXNz
IElEIGZvciB0aGlzIGNsYXNzLiAgVGhpcyBpcyB1c2VmdWwgb25seSBmb3IKKyAgICAgKiBjb21w
YXJpbmcgdG8gYSByZXR1cm4gdmFsdWUgZnJvbSBnZXREeW5hbWljQ2xhc3NJRCgpLiAgRm9yIGV4
YW1wbGU6CisgICAgICoKKyAgICAgKiAgICAgIEJhc2UqIHBvbHltb3JwaGljX3BvaW50ZXIgPSBj
cmVhdGVQb2x5bW9ycGhpY09iamVjdCgpOworICAgICAqICAgICAgaWYgKHBvbHltb3JwaGljX3Bv
aW50ZXItPmdldER5bmFtaWNDbGFzc0lEKCkgPT0KKyAgICAgKiAgICAgICAgICBEZXJpdmVkOjpn
ZXRTdGF0aWNDbGFzc0lEKCkpIC4uLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICBU
aGUgY2xhc3MgSUQgZm9yIGFsbCBvYmplY3RzIG9mIHRoaXMgY2xhc3MuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRTdGF0
aWNDbGFzc0lEKHZvaWQpOworCisgICAgLyoqCisgICAgICogRGVwcmVjYXRlZCBmdW5jdGlvbmFs
aXR5LiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisgICAgICogQ3JlYXRlIGEgY2xvbmUg
KGNvcHkpIG9mIHRoaXMgYnJlYWsgaXRlcmF0b3IgaW4gbWVtb3J5IHByb3ZpZGVkCisgICAgICog
IGJ5IHRoZSBjYWxsZXIuICBUaGUgaWRlYSBpcyB0byBpbmNyZWFzZSBwZXJmb3JtYW5jZSBieSBh
dm9pZGluZworICAgICAqICBhIHN0b3JhZ2UgYWxsb2NhdGlvbi4gIFVzZSBvZiB0aGlzIGZ1bmN0
b2luIGlzIE5PVCBSRUNPTU1FTkRFRC4KKyAgICAgKiAgUGVyZm9ybWFuY2UgZ2FpbnMgYXJlIG1p
bmltYWwsIGFuZCBjb3JyZWN0IGJ1ZmZlciBtYW5hZ2VtZW50IGlzCisgICAgICogIHRyaWNreS4g
IFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhY2tCdWZmZXIg
IFRoZSBwb2ludGVyIHRvIHRoZSBtZW1vcnkgaW50byB3aGljaCB0aGUgY2xvbmVkIG9iamVjdAor
ICAgICAqICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGJlIHBsYWNlZC4gIElmIE5VTEwsICBh
bGxvY2F0ZSBoZWFwIG1lbW9yeQorICAgICAqICAgICAgICAgICAgICAgICAgICAgZm9yIHRoZSBj
bG9uZWQgb2JqZWN0LgorICAgICAqIEBwYXJhbSBCdWZmZXJTaXplICAgVGhlIHNpemUgb2YgdGhl
IGJ1ZmZlci4gIElmIHplcm8sIHJldHVybiB0aGUgcmVxdWlyZWQKKyAgICAgKiAgICAgICAgICAg
ICAgICAgICAgIGJ1ZmZlciBzaXplLCBidXQgZG8gbm90IGNsb25lIHRoZSBvYmplY3QuICBJZiB0
aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHNpemUgd2FzIHRvbyBzbWFsbCAoYnV0IG5v
dCB6ZXJvKSwgYWxsb2NhdGUgaGVhcAorICAgICAqICAgICAgICAgICAgICAgICAgICAgc3RvcmFn
ZSBmb3IgdGhlIGNsb25lZCBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzICAg
ICAgIEVycm9yIHN0YXR1cy4gIFVfU0FGRUNMT05FX0FMTE9DQVRFRF9XQVJOSU5HIHdpbGwgYmUK
KyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHJldHVybmVkIGlmIHRoZSB0aGUgcHJvdmlkZWQg
YnVmZmVyIHdhcyB0b28gc21hbGwsIGFuZAorICAgICAqICAgICAgICAgICAgICAgICAgICAgdGhl
IGNsb25lIHdhcyB0aGVyZWZvcmUgcHV0IG9uIHRoZSBoZWFwLgorICAgICAqCisgICAgICogQHJl
dHVybiAgUG9pbnRlciB0byB0aGUgY2xvbmUgb2JqZWN0LiAgVGhpcyBtYXkgZGlmZmVyIGZyb20g
dGhlIHN0YWNrQnVmZmVyCisgICAgICogICAgICAgICAgYWRkcmVzcyBpZiB0aGUgYnl0ZSBhbGln
bm1lbnQgb2YgdGhlIHN0YWNrIGJ1ZmZlciB3YXMgbm90IHN1aXRhYmxlCisgICAgICogICAgICAg
ICAgb3IgaWYgdGhlIHN0YWNrQnVmZmVyIHdhcyB0b28gc21hbGwgdG8gaG9sZCB0aGUgY2xvbmUu
CisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAq
LworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciAqICBjcmVhdGVCdWZmZXJDbG9uZSh2b2lkICpz
dGFja0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50MzJfdCAmQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworCisgICAgLyoqCisgICAgICog
UmV0dXJuIHRoZSBiaW5hcnkgZm9ybSBvZiBjb21waWxlZCBicmVhayBydWxlcywKKyAgICAgKiB3
aGljaCBjYW4gdGhlbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5ldyBicmVhayBpdGVyYXRvciBhdCBz
b21lCisgICAgICogdGltZSBpbiB0aGUgZnV0dXJlLiAgQ3JlYXRpbmcgYSBicmVhayBpdGVyYXRv
ciBmcm9tIHByZS1jb21waWxlZCBydWxlcworICAgICAqIGlzIG11Y2ggZmFzdGVyIHRoYW4gYnVp
bGRpbmcgb25lIGZyb20gdGhlIHNvdXJjZSBmb3JtIG9mIHRoZQorICAgICAqIGJyZWFrIHJ1bGVz
LgorICAgICAqCisgICAgICogVGhlIGJpbmFyeSBkYXRhIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCB0
aGUgc2FtZSB2ZXJzaW9uIG9mIElDVQorICAgICAqICBhbmQgb24gdGhlIHNhbWUgcGxhdGZvcm0g
dHlwZSAocHJvY2Vzc29yIGVuZGlhbi1uZXNzKQorICAgICAqCisgICAgICogQHBhcmFtIGxlbmd0
aCBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGJpbmFyeSBkYXRhLiAgKE91dCBwYXJhbXRlci4p
CisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgQSBwb2ludGVyIHRvIHRoZSBiaW5hcnkgKGNvbXBp
bGVkKSBydWxlIGRhdGEuICBUaGUgc3RvcmFnZQorICAgICAqICAgICAgICAgICBiZWxvbmdzIHRv
IHRoZSBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvciBvYmplY3QsIG5vdCB0aGUKKyAgICAgKiAgICAg
ICAgICAgY2FsbGVyLCBhbmQgbXVzdCBub3QgYmUgbW9kaWZpZWQgb3IgZGVsZXRlZC4KKyAgICAg
KiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGNvbnN0IHVpbnQ4X3QgKmdl
dEJpbmFyeVJ1bGVzKHVpbnQzMl90ICZsZW5ndGgpOworCisgICAgLyoqCisgICAgICogIFNldCB0
aGUgc3ViamVjdCB0ZXh0IHN0cmluZyB1cG9uIHdoaWNoIHRoZSBicmVhayBpdGVyYXRvciBpcyBv
cGVyYXRpbmcKKyAgICAgKiAgd2l0aG91dCBjaGFuZ2luZyBhbnkgb3RoZXIgYXNwZWN0IG9mIHRo
ZSBtYXRjaGluZyBzdGF0ZS4KKyAgICAgKiAgVGhlIG5ldyBhbmQgcHJldmlvdXMgdGV4dCBzdHJp
bmdzIG11c3QgaGF2ZSB0aGUgc2FtZSBjb250ZW50LgorICAgICAqCisgICAgICogIFRoaXMgZnVu
Y3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBpbiBlbnZpcm9ubWVudHMgd2hlcmUgSUNVIGlzIG9w
ZXJhdGluZyBvbgorICAgICAqICBzdHJpbmdzIHRoYXQgbWF5IG1vdmUgYXJvdW5kIGluIG1lbW9y
eS4gIEl0IHByb3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBub3RpZnlpbmcKKyAgICAgKiAgSUNVIHRo
YXQgdGhlIHN0cmluZyBoYXMgYmVlbiByZWxvY2F0ZWQsIGFuZCBwcm92aWRpbmcgYSBuZXcgVVRl
eHQgdG8gYWNjZXNzIHRoZQorICAgICAqICBzdHJpbmcgaW4gaXRzIG5ldyBwb3NpdGlvbi4KKyAg
ICAgKgorICAgICAqICBOb3RlIHRoYXQgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9u
IG5ldmVyIGNvcGllcyB0aGUgdW5kZXJseWluZyB0ZXh0CisgICAgICogIG9mIGEgc3RyaW5nIGJl
aW5nIHByb2Nlc3NlZCwgYnV0IGFsd2F5cyBvcGVyYXRlcyBkaXJlY3RseSBvbiB0aGUgb3JpZ2lu
YWwgdGV4dAorICAgICAqICBwcm92aWRlZCBieSB0aGUgdXNlci4gUmVmcmVzaGluZyBzaW1wbHkg
ZHJvcHMgdGhlIHJlZmVyZW5jZXMgdG8gdGhlIG9sZCB0ZXh0CisgICAgICogIGFuZCByZXBsYWNl
cyB0aGVtIHdpdGggcmVmZXJlbmNlcyB0byB0aGUgbmV3LgorICAgICAqCisgICAgICogIENhdXRp
b246ICB0aGlzIGZ1bmN0aW9uIGlzIG5vcm1hbGx5IHVzZWQgb25seSBieSB2ZXJ5IHNwZWNpYWxp
emVkLAorICAgICAqICBzeXN0ZW0tbGV2ZWwgY29kZS4gIE9uZSBleGFtcGxlIHVzZSBjYXNlIGlz
IHdpdGggZ2FyYmFnZSBjb2xsZWN0aW9uIHRoYXQgbW92ZXMKKyAgICAgKiAgdGhlIHRleHQgaW4g
bWVtb3J5LgorICAgICAqCisgICAgICogQHBhcmFtIGlucHV0ICAgICAgVGhlIG5ldyAobW92ZWQp
IHRleHQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgIFJlY2VpdmVzIGVycm9ycyBk
ZXRlY3RlZCBieSB0aGlzIGZ1bmN0aW9uLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICp0aGlz
CisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAgIHZpcnR1YWwgUnVs
ZUJhc2VkQnJlYWtJdGVyYXRvciAmcmVmcmVzaElucHV0VGV4dChVVGV4dCAqaW5wdXQsIFVFcnJv
ckNvZGUgJnN0YXR1cyk7CisKKworcHJvdGVjdGVkOgorICAgIC8vPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAg
ICAvLyBpbXBsZW1lbnRhdGlvbgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvKioKKyAgICAg
KiBEdW1wcyBjYWNoZXMgYW5kIHBlcmZvcm1zIG90aGVyIGFjdGlvbnMgYXNzb2NpYXRlZCB3aXRo
IGEgY29tcGxldGUgY2hhbmdlCisgICAgICogaW4gdGV4dCBvciBpdGVyYXRpb24gcG9zaXRpb24u
CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgdmlydHVhbCB2b2lkIHJlc2V0KHZvaWQp
OworCisjaWYgMAorICAgIC8qKgorICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2F0ZWdvcnkg
bG9va3VwIGZvciB0aGlzIGNoYXIKKyAgICAgICogaW5kaWNhdGVzIHRoYXQgaXQgaXMgaW4gdGhl
IHNldCBvZiBkaWN0aW9uYXJ5IGxvb2t1cCBjaGFycy4KKyAgICAgICogVGhpcyBmdW5jdGlvbiBp
cyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGRpY3Rpb25hcnkgYmFzZWQgYnJlYWsgaXRlcmF0b3JzLgor
ICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBmb3IgdGhpcyBjaGFy
CisgICAgICAqIGluZGljYXRlcyB0aGF0IGl0IGlzIGluIHRoZSBzZXQgb2YgZGljdGlvbmFyeSBs
b29rdXAgY2hhcnMuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIFVC
b29sIGlzRGljdGlvbmFyeUNoYXIoVUNoYXIzMik7CisKKyAgICAvKioKKyAgICAgICogR2V0IHRo
ZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgICogQGludGVybmFsCisgICAgICAq
LworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRCcmVha1R5cGUoKSBjb25zdDsKKyNlbmRpZgorCisg
ICAgLyoqCisgICAgICAqIFNldCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAg
ICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgc2V0QnJlYWtUeXBlKGlu
dDMyX3QgdHlwZSk7CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAg
ICAgKiBDb21tb24gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24sIHVzZWQgYnkgY29uc3RydWN0b3Jz
IGFuZCBidWZmZXJDbG9uZS4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZvaWQg
aW5pdCgpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKK3ByaXZhdGU6CisK
KyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBiYWNrcyB0aGUgaXRlcmF0b3IgYmFjayB1cCB0
byBhICJzYWZlIHBvc2l0aW9uIiBpbiB0aGUgdGV4dC4KKyAgICAgKiBUaGlzIGlzIGEgcG9zaXRp
b24gdGhhdCB3ZSBrbm93LCB3aXRob3V0IGFueSBjb250ZXh0LCBtdXN0IGJlIGEgYnJlYWsgcG9z
aXRpb24uCisgICAgICogVGhlIHZhcmlvdXMgY2FsbGluZyBtZXRob2RzIHRoZW4gaXRlcmF0ZSBm
b3J3YXJkIGZyb20gdGhpcyBzYWZlIHBvc2l0aW9uIHRvCisgICAgICogdGhlIGFwcHJvcHJpYXRl
IHBvc2l0aW9uIHRvIHJldHVybi4gIChGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkZXNj
cmlwdGlvbgorICAgICAqIG9mIGJ1aWxkQmFja3dhcmRzU3RhdGVUYWJsZSgpIGluIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3IuQnVpbGRlci4pCisgICAgICogQHBhcmFtIHN0YXRldGFibGUgc3RhdGUg
dGFibGUgdXNlZCBvZiBtb3ZpbmcgYmFja3dhcmRzCisgICAgICogQGludGVybmFsCisgICAgICov
CisgICAgaW50MzJfdCBoYW5kbGVQcmV2aW91cyhjb25zdCBSQkJJU3RhdGVUYWJsZSAqc3RhdGV0
YWJsZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUgYWN0dWFsIGltcGxl
bWVudGF0aW9uIG9mIHRoZSBuZXh0KCkgbWV0aG9kLiAgQWxsIGl0ZXJhdGlvbgorICAgICAqIHZl
Y3RvcnMgdGhyb3VnaCBoZXJlLiAgVGhpcyBtZXRob2QgaW5pdGlhbGl6ZXMgdGhlIHN0YXRlIG1h
Y2hpbmUgdG8gc3RhdGUgMQorICAgICAqIGFuZCBhZHZhbmNlcyB0aHJvdWdoIHRoZSB0ZXh0IGNo
YXJhY3RlciBieSBjaGFyYWN0ZXIgdW50aWwgd2UgcmVhY2ggdGhlIGVuZAorICAgICAqIG9mIHRo
ZSB0ZXh0IG9yIHRoZSBzdGF0ZSBtYWNoaW5lIHRyYW5zaXRpb25zIHRvIHN0YXRlIDAuICBXZSB1
cGRhdGUgb3VyIHJldHVybgorICAgICAqIHZhbHVlIGV2ZXJ5IHRpbWUgdGhlIHN0YXRlIG1hY2hp
bmUgcGFzc2VzIHRocm91Z2ggYSBwb3NzaWJsZSBlbmQgc3RhdGUuCisgICAgICogQHBhcmFtIHN0
YXRldGFibGUgc3RhdGUgdGFibGUgdXNlZCBvZiBtb3ZpbmcgZm9yd2FyZHMKKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGhhbmRsZU5leHQoY29uc3QgUkJCSVN0YXRlVGFi
bGUgKnN0YXRldGFibGUpOworCitwcm90ZWN0ZWQ6CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFM
X0FQSQorICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkg
aW1wbGVtZW50cyBkaWN0aW9uYXJ5LWJhc2VkCisgICAgICogYnJlYWtpbmcuICBDb3ZlcmluZyBh
dCBsZWFzdCB0aGUgcmFuZ2UgZnJvbSBzdGFydFBvcyB0byBlbmRQb3MsCisgICAgICogaXQgY2hl
Y2tzIGZvciBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMsIGFuZCBpZiBpdCBmaW5kcyB0aGVtIGRldGVy
bWluZXMKKyAgICAgKiB0aGUgYXBwcm9wcmlhdGUgb2JqZWN0IHRvIGRlYWwgd2l0aCB0aGVtLiBJ
dCBtYXkgY2FjaGUgZm91bmQgYnJlYWtzIGluCisgICAgICogZkNhY2hlZEJyZWFrUG9zaXRpb25z
IGFzIGl0IGdvZXMuIEl0IG1heSB3ZWxsIGFsc28gbG9vayBhdCB0ZXh0IG91dHNpZGUKKyAgICAg
KiB0aGUgcmFuZ2Ugc3RhcnRQb3MgdG8gZW5kUG9zLgorICAgICAqIElmIGdvaW5nIGZvcndhcmQs
IGVuZFBvcyBpcyB0aGUgbm9ybWFsIFVuaWNvZGUgYnJlYWsgcmVzdWx0LCBhbmQKKyAgICAgKiBp
ZiBnb2luZCBpbiByZXZlcnNlLCBzdGFydFBvcyBpcyB0aGUgbm9ybWFsIFVuaWNvZGUgYnJlYWsg
cmVzdWx0CisgICAgICogQHBhcmFtIHN0YXJ0UG9zICBUaGUgc3RhcnQgcG9zaXRpb24gb2YgYSBy
YW5nZSBvZiB0ZXh0CisgICAgICogQHBhcmFtIGVuZFBvcyAgICBUaGUgZW5kIHBvc2l0aW9uIG9m
IGEgcmFuZ2Ugb2YgdGV4dAorICAgICAqIEBwYXJhbSByZXZlcnNlICAgVGhlIGNhbGwgaXMgZm9y
IHRoZSByZXZlcnNlIGRpcmVjdGlvbgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGlu
dDMyX3QgY2hlY2tEaWN0aW9uYXJ5KGludDMyX3Qgc3RhcnRQb3MsIGludDMyX3QgZW5kUG9zLCBV
Qm9vbCByZXZlcnNlKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCitwcml2
YXRlOgorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBhcHByb3By
aWF0ZSBMYW5ndWFnZUJyZWFrRW5naW5lIGZvciBhCisgICAgICogZ2l2ZW4gY2hhcmFjdGVyIGMu
CisgICAgICogQHBhcmFtIGMgICAgICAgICBBIGNoYXJhY3RlciBpbiB0aGUgZGljdGlvbmFyeSBz
ZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBjb25zdCBMYW5ndWFnZUJyZWFrRW5n
aW5lICpnZXRMYW5ndWFnZUJyZWFrRW5naW5lKFVDaGFyMzIgYyk7CisKKyAgICAvKioKKyAgICAg
KiAgQGludGVybmFsCisgICAgICovCisgICAgdm9pZCBtYWtlUnVsZVN0YXR1c1ZhbGlkKCk7CisK
K307CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICBJbmxpbmUgRnVuY3Rpb25z
IERlZmluaXRpb25zIC4uLgorLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lubGluZSBV
Qm9vbCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yOjpvcGVyYXRvciE9KGNvbnN0IEJyZWFrSXRlcmF0
b3ImIHRoYXQpIGNvbnN0IHsKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0odGhhdCk7Cit9CisKK1Vf
TkFNRVNQQUNFX0VORAorCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElP
TiAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0
ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0ZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGI1
ZTIyNTAzY2ZmMjYxZDJjZDI0MGZmMTIwMDdmOTM3Zjc4M2IyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oCkBAIC0wLDAgKzEsMTg3IEBACisvKgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDUsIElu
dGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJz
LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBG
aWxlIHNjaHJpdGVyLmgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAg
ICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogIDA1LzA1Lzk5ICAgICBzdGVwaGVuICAg
ICBDbGVhbmVkIHVwLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIFNDSFJJ
VEVSX0gKKyNkZWZpbmUgU0NIUklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIK
KyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2hyaXRl
ci5oIgorCisvKioKKyAqIFxmaWxlIAorICogXGJyaWVmIEMrKyBBUEk6IFN0cmluZyBDaGFyYWN0
ZXIgSXRlcmF0b3IKKyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgorICogQSBjb25jcmV0
ZSBzdWJjbGFzcyBvZiBDaGFyYWN0ZXJJdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgdGhlCisg
KiBjaGFyYWN0ZXJzIChjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzKSBpbiBhIFVuaWNvZGVTdHJp
bmcuCisgKiBJdCdzIHBvc3NpYmxlIG5vdCBvbmx5IHRvIGNyZWF0ZSBhbgorICogaXRlcmF0b3Ig
dGhhdCBpdGVyYXRlcyBvdmVyIGFuIGVudGlyZSBVbmljb2RlU3RyaW5nLCBidXQgYWxzbyB0bwor
ICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25seSBhIHN1YnJhbmdlIG9mIGEgVW5p
Y29kZVN0cmluZworICogKGl0ZXJhdG9ycyBvdmVyIGRpZmZlcmVudCBzdWJyYW5nZXMgb2YgdGhl
IHNhbWUgVW5pY29kZVN0cmluZyBkb24ndAorICogY29tcGFyZSBlcXVhbCkuCisgKiBAc2VlIENo
YXJhY3Rlckl0ZXJhdG9yCisgKiBAc2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcgorICogQHN0
YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBTdHJpbmdDaGFyYWN0ZXJJdGVy
YXRvciA6IHB1YmxpYyBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgLyoqCisg
ICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJlZmVycmVkIHRv
IGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlzIGNvcGllZC4K
KyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyB0aGUgd2hvbGUgc3RyaW5nLCBhbmQgdGhlIHN0
YXJ0aW5nIHBvc2l0aW9uIGlzIDAuCisgICAqIEBwYXJhbSB0ZXh0U3RyIFRoZSB1bmljb2RlIHN0
cmluZyB1c2VkIHRvIGNyZWF0ZSBhbiBpdGVyYXRvcgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVuaWNvZGVTdHJpbmcmIHRleHRT
dHIpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVW5pY29kZVN0
cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2Ug
aXMgdGhlIHdob2xlIHN0cmluZywgYW5kIHRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBz
cGVjaWZpZWQgYnkgInRleHRQb3MiLiAgSWYgInRleHRQb3MiIGlzIG91dHNpZGUgdGhlIHZhbGlk
CisgICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVu
ZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRTdHIgVGhlIHVuaWNvZGUgc3RyaW5nIHVzZWQgdG8g
Y3JlYXRlIGFuIGl0ZXJhdG9yCisgICAqIEBwYXJhbSB0ZXh0UG9zIFRoZSBzdGFydGluZyBwb3Np
dGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3Ry
aW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYgICAgdGV4dFN0ciwKKyAg
ICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dFBvcyk7CisKKyAgLyoqCisgICAq
IENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJlZmVycmVkIHRvIGJ5
ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlzIGNvcGllZC4KKyAg
ICogVGhlIGl0ZXJhdGlvbiByYW5nZSBiZWdpbnMgd2l0aCB0aGUgY29kZSB1bml0IHNwZWNpZmll
ZCBieQorICAgKiAidGV4dEJlZ2luIiBhbmQgZW5kcyB3aXRoIHRoZSBjb2RlIHVuaXQgQkVGT1JF
IHRoZSBjb2RlIHVuaXQgc3BlY2ZpZWQKKyAgICogYnkgInRleHRFbmQiLiAgVGhlIHN0YXJ0aW5n
IHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAidGV4dFBvcyIuICBJZgorICAgKiAidGV4dEJlZ2lu
IiBhbmQgInRleHRFbmQiIGRvbid0IGZvcm0gYSB2YWxpZCByYW5nZSBvbiAidGV4dCIgKGkuZS4s
CisgICAqIHRleHRCZWdpbiA+PSB0ZXh0RW5kIG9yIGVpdGhlciBpcyBuZWdhdGl2ZSBvciBncmVh
dGVyIHRoYW4gdGV4dC5zaXplKCkpLAorICAgKiBvciAidGV4dFBvcyIgaXMgb3V0c2lkZSB0aGUg
cmFuZ2UgZGVmaW5lZCBieSAidGV4dEJlZ2luIiBhbmQgInRleHRFbmQiLAorICAgKiB0aGUgYmVo
YXZpb3Igb2YgdGhpcyBpdGVyYXRvciBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0U3Ry
ICAgIFRoZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSB0aGUgU3RyaW5nQ2hhcmFjdGVy
SXRlcmF0b3IKKyAgICogQHBhcmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBvc2l0aW9uIG9mIHRo
ZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhlIGVuZCBwb3NpdGlv
biBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0UG9zICAgIFRoZSBzdGFy
dGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYgICAgdGV4
dFN0ciwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dEJlZ2luLAorICAg
ICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0RW5kLAorICAgICAgICAgICAgICBp
bnQzMl90ICAgICAgICAgICAgICB0ZXh0UG9zKTsKKworICAvKioKKyAgICogQ29weSBjb25zdHJ1
Y3Rvci4gIFRoZSBuZXcgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSByYW5nZQorICAg
KiBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRpYWwgcG9zaXRpb24g
aXMgdGhlCisgICAqIHNhbWUgYXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICogVGhl
IFVuaWNvZGVTdHJpbmcgb2JqZWN0IGluICJ0aGF0IiBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSB0
aGF0IFRoZSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBTdHJpbmdD
aGFyYWN0ZXJJdGVyYXRvciYgIHRoYXQpOworCisgIC8qKgorICAgKiBEZXN0cnVjdG9yLgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgflN0cmluZ0NoYXJhY3Rlckl0ZXJh
dG9yKCk7CisKKyAgLyoqCisgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICAqdGhpcyBpcyBhbHRl
cmVkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZQorICAgKiByYW5nZSBvZiB0aGUgc2FtZSBzdHJp
bmcgYXMgInRoYXQiLCBhbmQgcmVmZXJzIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciB3aXRo
aW4gdGhhdCBzdHJpbmcgYXMgInRoYXQiIGRvZXMuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBvYmpl
Y3QgdG8gYmUgY29waWVkLgorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4K
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciYK
KyAgb3BlcmF0b3I9KGNvbnN0IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJiAgICB0aGF0KTsKKwor
ICAvKioKKyAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRo
ZSBzYW1lIHJhbmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0
IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0
ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICogQHJldHVybiB0cnVl
IGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQorICAg
KiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICAgIG9wZXJh
dG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKworICAv
KioKKyAgICogUmV0dXJucyBhIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciByZWZlcnJpbmcg
dG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHJhbmdlIG9mIHRoZSBzYW1l
IHN0cmluZyBhcyB0aGlzIG9uZS4gIFRoZQorICAgKiBjYWxsZXIgbXVzdCBkZWxldGUgdGhlIG5l
dyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0aGUgbmV3bHkgY2xvbmVkIG9iamVjdC4KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9u
ZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0
ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSBzdHJp
bmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZv
aWQgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKworICAvKioKKyAgICog
Q29waWVzIHRoZSBVbmljb2RlU3RyaW5nIHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBVbmljb2Rl
U3RyaW5nCisgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZlbiBpZiB0aGlzIGl0ZXJh
dG9yIGl0ZXJhdGVzIGFjcm9zcworICAgKiBvbmx5IGEgcGFydCBvZiB0aGlzIHN0cmluZywgdGhl
IHdob2xlIHN0cmluZyBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSByZXN1bHQgUmVjZWl2ZXMgYSBj
b3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAqLworICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNvZGVTdHJpbmcmIHJl
c3VsdCk7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdCAo
bm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmpl
Y3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2xhc3NJRCAgICAg
ICAgIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1cm4g
YSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcyAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1
cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIHN0YXRpYyBVQ2xhc3NJRCAgIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKHZvaWQpOwor
Citwcm90ZWN0ZWQ6CisgIC8qKgorICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yLCBpdGVyYXRpb24g
b3ZlciBlbXB0eSBzdHJpbmcuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5n
Q2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8g
aXRlcmF0ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJhbSBuZXdUZXh0IFRo
ZSBzdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbmV3VGV4dExlbmd0aCBU
aGUgbGVuZ3RoIG9mIHRoZSBTdHJpbmcKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2
b2lkIHNldFRleHQoY29uc3QgVUNoYXIqIG5ld1RleHQsIGludDMyX3QgbmV3VGV4dExlbmd0aCk7
CisKKyAgLyoqCisgICAqIENvcHkgb2YgdGhlIGl0ZXJhdGVkIHN0cmluZyBvYmplY3QuCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVW5pY29kZVN0cmluZyAgICAgICAgICAgIHRleHQ7
CisKK307CisKK1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L2ljdS91bmljb2RlL3VjYXNlbWFwLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjYXNlbWFw
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjM3ZTE2NTg4Njk3ZjFhOTMwMTkxZWUzZGY4MTZjNjNiN2JkMzhjMQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNhc2VtYXAuaApAQCAt
MCwwICsxLDQyMyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmln
aHQgKEMpIDIwMDUtMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENv
cnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVjYXNlbWFwLmgKKyogICBlbmNvZGluZzog
ICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9u
OjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDA1bWF5MDYKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMg
Vy4gU2NoZXJlcgorKgorKiAgIENhc2UgbWFwcGluZyBzZXJ2aWNlIG9iamVjdCBhbmQgZnVuY3Rp
b25zIHVzaW5nIGl0LgorKi8KKworI2lmbmRlZiBfX1VDQVNFTUFQX0hfXworI2RlZmluZSBfX1VD
QVNFTUFQX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmlj
b2RlL3VzdHJpbmcuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCisvKioK
KyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IFVuaWNvZGUgY2FzZSBtYXBwaW5nIGZ1bmN0aW9u
cyB1c2luZyBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICoKKyAqIFRoZSBzZXJ2aWNlIG9i
amVjdCB0YWtlcyBjYXJlIG9mIG1lbW9yeSBhbGxvY2F0aW9ucywgZGF0YSBsb2FkaW5nLCBhbmQg
c2V0dXAKKyAqIGZvciB0aGUgYXR0cmlidXRlcywgYXMgdXN1YWwuCisgKgorICogQ3VycmVudGx5
LCB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBoZXJlIGRvZXMgbm90IG92ZXJsYXAgd2l0aCB1
Y2hhci5oCisgKiBhbmQgdXN0cmluZy5oLCBleGNlcHQgZm9yIHVjYXNlbWFwX3RvVGl0bGUoKS4K
KyAqCisgKiB1Y2FzZW1hcF91dGY4WFlaKCkgZnVuY3Rpb25zIG9wZXJhdGUgZGlyZWN0bHkgb24g
VVRGLTggc3RyaW5ncy4KKyAqLworCisvKioKKyAqIFVDYXNlTWFwIGlzIGFuIG9wYXF1ZSBzZXJ2
aWNlIG9iamVjdCBmb3IgbmV3ZXIgSUNVIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMuCisgKiBPbGRl
ciBmdW5jdGlvbnMgZGlkIG5vdCB1c2UgYSBzZXJ2aWNlIG9iamVjdC4KKyAqIEBzdGFibGUgSUNV
IDMuNAorICovCitzdHJ1Y3QgVUNhc2VNYXA7Cit0eXBlZGVmIHN0cnVjdCBVQ2FzZU1hcCBVQ2Fz
ZU1hcDsgLyoqPCBDIHR5cGVkZWYgZm9yIHN0cnVjdCBVQ2FzZU1hcC4gQHN0YWJsZSBJQ1UgMy40
ICovCisKKy8qKgorICogT3BlbiBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0IGZvciBhIGxvY2Fs
ZSBhbmQgYSBzZXQgb2Ygb3B0aW9ucy4KKyAqIFRoZSBsb2NhbGUgSUQgYW5kIG9wdGlvbnMgYXJl
IHByZXByb2Nlc3NlZCBzbyB0aGF0IGZ1bmN0aW9ucyB1c2luZyB0aGUKKyAqIHNlcnZpY2Ugb2Jq
ZWN0IG5lZWQgbm90IHByb2Nlc3MgdGhlbSBpbiBlYWNoIGNhbGwuCisgKgorICogQHBhcmFtIGxv
Y2FsZSBJQ1UgbG9jYWxlIElELCB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQKKyAqICAgICAg
ICAgICAgICAgdXBwZXItL2xvd2VyLS90aXRsZS1jYXNpbmcgYWNjb3JkaW5nIHRvIHRoZSBVbmlj
b2RlIHN0YW5kYXJkLgorICogICAgICAgICAgICAgICBVc3VhbCBzZW1hbnRpY3M6ICIiPXJvb3Qs
IE5VTEw9ZGVmYXVsdCBsb2NhbGUsIGV0Yy4KKyAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgYml0
IHNldCwgdXNlZCBmb3IgY2FzZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKiAg
ICAgICAgICAgICAgICBTYW1lIGZsYWdzIGFzIGZvciB1X2ZvbGRDYXNlKCksIHVfc3RyRm9sZENh
c2UoKSwKKyAqICAgICAgICAgICAgICAgIHVfc3RyQ2FzZUNvbXBhcmUoKSwgZXRjLgorICogICAg
ICAgICAgICAgICAgVXNlIDAgb3IgVV9GT0xEX0NBU0VfREVGQVVMVCBmb3IgZGVmYXVsdCBiZWhh
dmlvci4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFu
IGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBp
bmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBQ
b2ludGVyIHRvIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QsIGlmIHN1Y2Nlc3NmdWwuCisgKgor
ICogQHNlZSBVX0ZPTERfQ0FTRV9ERUZBVUxUCisgKiBAc2VlIFVfRk9MRF9DQVNFX0VYQ0xVREVf
U1BFQ0lBTF9JCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHNlZSBVX1RJ
VExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5UCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9T
VEFCTEUgVUNhc2VNYXAgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX29wZW4oY29uc3QgY2hhciAqbG9j
YWxlLCB1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisg
KiBDbG9zZSBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGNzbSBPYmplY3Qg
dG8gYmUgY2xvc2VkLgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9F
WFBPUlQyCit1Y2FzZW1hcF9jbG9zZShVQ2FzZU1hcCAqY3NtKTsKKworI2lmIFVfU0hPV19DUExV
U1BMVVNfQVBJCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogXGNsYXNzIExvY2FsVUNh
c2VNYXBQb2ludGVyCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGNsb3NlcyBhIFVDYXNlTWFw
IHZpYSB1Y2FzZW1hcF9jbG9zZSgpLgorICogRm9yIG1vc3QgbWV0aG9kcyBzZWUgdGhlIExvY2Fs
UG9pbnRlckJhc2UgYmFzZSBjbGFzcy4KKyAqCisgKiBAc2VlIExvY2FsUG9pbnRlckJhc2UKKyAq
IEBzZWUgTG9jYWxQb2ludGVyCisgKiBAc3RhYmxlIElDVSA0LjQKKyAqLworVV9ERUZJTkVfTE9D
QUxfT1BFTl9QT0lOVEVSKExvY2FsVUNhc2VNYXBQb2ludGVyLCBVQ2FzZU1hcCwgdWNhc2VtYXBf
Y2xvc2UpOworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmCisKKy8qKgorICogR2V0IHRoZSBs
b2NhbGUgSUQgdGhhdCBpcyB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQgY2FzZSBtYXBwaW5n
cy4KKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIGxv
Y2FsZSBJRAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGNvbnN0IGNoYXIgKiBV
X0VYUE9SVDIKK3VjYXNlbWFwX2dldExvY2FsZShjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoq
CisgKiBHZXQgdGhlIG9wdGlvbnMgYml0IHNldCB0aGF0IGlzIHVzZWQgZm9yIGNhc2UgZm9sZGlu
ZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNl
IG9iamVjdC4KKyAqIEByZXR1cm4gb3B0aW9ucyBiaXQgc2V0CisgKiBAc3RhYmxlIElDVSAzLjQK
KyAqLworVV9TVEFCTEUgdWludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRPcHRpb25zKGNv
bnN0IFVDYXNlTWFwICpjc20pOworCisvKioKKyAqIFNldCB0aGUgbG9jYWxlIElEIHRoYXQgaXMg
dXNlZCBmb3IgbGFuZ3VhZ2UtZGVwZW5kZW50IGNhc2UgbWFwcGluZ3MuCisgKgorICogQHBhcmFt
IGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBsb2NhbGUgTG9jYWxlIElE
LCBzZWUgdWNhc2VtYXBfb3BlbigpLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZh
bGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAg
IHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNh
bGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF9vcGVuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLwor
VV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldExvY2FsZShVQ2FzZU1hcCAqY3Nt
LCBjb25zdCBjaGFyICpsb2NhbGUsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAq
IFNldCB0aGUgb3B0aW9ucyBiaXQgc2V0IHRoYXQgaXMgdXNlZCBmb3IgY2FzZSBmb2xkaW5nIGFu
ZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNl
IG9iamVjdC4KKyAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgYml0IHNldCwgc2VlIHVjYXNlbWFw
X29wZW4oKS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRv
IGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5v
dCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAqIEBz
ZWUgdWNhc2VtYXBfb3BlbgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQg
VV9FWFBPUlQyCit1Y2FzZW1hcF9zZXRPcHRpb25zKFVDYXNlTWFwICpjc20sIHVpbnQzMl90IG9w
dGlvbnMsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIERvIG5vdCBsb3dlcmNh
c2Ugbm9uLWluaXRpYWwgcGFydHMgb2Ygd29yZHMgd2hlbiB0aXRsZWNhc2luZy4KKyAqIE9wdGlv
biBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQSXMgdGhhdCB0YWtlIGFuIG9wdGlvbnMgYml0IHNldC4K
KyAqCisgKiBCeSBkZWZhdWx0LCB0aXRsZWNhc2luZyB3aWxsIHRpdGxlY2FzZSB0aGUgZmlyc3Qg
Y2FzZWQgY2hhcmFjdGVyCisgKiBvZiBhIHdvcmQgYW5kIGxvd2VyY2FzZSBhbGwgb3RoZXIgY2hh
cmFjdGVycy4KKyAqIFdpdGggdGhpcyBvcHRpb24sIHRoZSBvdGhlciBjaGFyYWN0ZXJzIHdpbGwg
bm90IGJlIG1vZGlmaWVkLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNl
ZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc2Vl
IFVuaWNvZGVTdHJpbmc6OnRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCisjZGVmaW5l
IFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRSAweDEwMAorCisvKioKKyAqIERvIG5vdCBhZGp1c3Qg
dGhlIHRpdGxlY2FzaW5nIGluZGV4ZXMgZnJvbSBCcmVha0l0ZXJhdG9yOjpuZXh0KCkgaW5kZXhl
czsKKyAqIHRpdGxlY2FzZSBleGFjdGx5IHRoZSBjaGFyYWN0ZXJzIGF0IGJyZWFrcyBmcm9tIHRo
ZSBpdGVyYXRvci4KKyAqIE9wdGlvbiBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQSXMgdGhhdCB0YWtl
IGFuIG9wdGlvbnMgYml0IHNldC4KKyAqCisgKiBCeSBkZWZhdWx0LCB0aXRsZWNhc2luZyB3aWxs
IHRha2UgZWFjaCBicmVhayBpdGVyYXRvciBpbmRleCwKKyAqIGFkanVzdCBpdCBieSBsb29raW5n
IGZvciB0aGUgbmV4dCBjYXNlZCBjaGFyYWN0ZXIsIGFuZCB0aXRsZWNhc2UgdGhhdCBvbmUuCisg
KiBPdGhlciBjaGFyYWN0ZXJzIGFyZSBsb3dlcmNhc2VkLgorICoKKyAqIFRoaXMgZm9sbG93cyBV
bmljb2RlIDQgJiA1IHNlY3Rpb24gMy4xMyBEZWZhdWx0IENhc2UgT3BlcmF0aW9uczoKKyAqCisg
KiBSMyAgdG9UaXRsZWNhc2UoWCk6IEZpbmQgdGhlIHdvcmQgYm91bmRhcmllcyBiYXNlZCBvbiBV
bmljb2RlIFN0YW5kYXJkIEFubmV4CisgKiAjMjksICJUZXh0IEJvdW5kYXJpZXMuIiBCZXR3ZWVu
IGVhY2ggcGFpciBvZiB3b3JkIGJvdW5kYXJpZXMsIGZpbmQgdGhlIGZpcnN0CisgKiBjYXNlZCBj
aGFyYWN0ZXIgRi4gSWYgRiBleGlzdHMsIG1hcCBGIHRvIGRlZmF1bHRfdGl0bGUoRik7IHRoZW4g
bWFwIGVhY2gKKyAqIHN1YnNlcXVlbnQgY2hhcmFjdGVyIEMgdG8gZGVmYXVsdF9sb3dlcihDKS4K
KyAqCisgKiBAc2VlIHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgdWNhc2VtYXBfdG9UaXRs
ZQorICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICogQHNlZSBVbmljb2RlU3RyaW5nOjp0
b1RpdGxlCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHN0YWJsZSBJQ1Ug
My44CisgKi8KKyNkZWZpbmUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVCAweDIwMAor
CisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKKy8qKgorICogR2V0IHRoZSBicmVh
ayBpdGVyYXRvciB0aGF0IGlzIHVzZWQgZm9yIHRpdGxlY2FzaW5nLgorICogRG8gbm90IG1vZGlm
eSB0aGUgcmV0dXJuZWQgYnJlYWsgaXRlcmF0b3IuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNl
cnZpY2Ugb2JqZWN0LgorICogQHJldHVybiB0aXRsZWNhc2luZyBicmVhayBpdGVyYXRvcgorICog
QHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIGNvbnN0IFVCcmVha0l0ZXJhdG9yICogVV9F
WFBPUlQyCit1Y2FzZW1hcF9nZXRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDYXNlTWFwICpjc20pOwor
CisvKioKKyAqIFNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2VkIGZvciB0aXRsZWNh
c2luZy4KKyAqIFRoZSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdCByZWxlYXNlcyBhIHByZXZpb3Vz
bHkgc2V0IGJyZWFrIGl0ZXJhdG9yCisgKiBhbmQgImFkb3B0cyIgdGhpcyBuZXcgb25lLCB0YWtp
bmcgb3duZXJzaGlwIG9mIGl0LgorICogSXQgd2lsbCBiZSByZWxlYXNlZCBpbiBhIHN1YnNlcXVl
bnQgY2FsbCB0byB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCkKKyAqIG9yIHVjYXNlbWFwX2Ns
b3NlKCkuCisgKgorICogQnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucyBhcmUgbm90IHRocmVhZC1z
YWZlLiBUaGVyZWZvcmUsIHRpdGxlY2FzaW5nCisgKiBmdW5jdGlvbnMgdXNlIG5vbi1jb25zdCBV
Q2FzZU1hcCBvYmplY3RzLiBJdCBpcyBub3QgcG9zc2libGUgdG8gdGl0bGVjYXNlCisgKiBzdHJp
bmdzIGNvbmN1cnJlbnRseSB1c2luZyB0aGUgc2FtZSBVQ2FzZU1hcC4KKyAqCisgKiBAcGFyYW0g
Y3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGl0ZXJUb0Fkb3B0IEJyZWFr
IGl0ZXJhdG9yIHRvIGJlIGFkb3B0ZWQgZm9yIHRpdGxlY2FzaW5nLgorICogQHBhcmFtIHBFcnJv
ckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAq
ICAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZv
cmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBA
c2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFC
TEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoVUNhc2VNYXAgKmNz
bSwgVUJyZWFrSXRlcmF0b3IgKml0ZXJUb0Fkb3B0LCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsK
KworLyoqCisgKiBUaXRsZWNhc2UgYSBVVEYtMTYgc3RyaW5nLiBUaGlzIGZ1bmN0aW9uIGlzIGFs
bW9zdCBhIGR1cGxpY2F0ZSBvZiB1X3N0clRvVGl0bGUoKSwKKyAqIGV4Y2VwdCB0aGF0IGl0IHRh
a2VzIHVjYXNlbWFwX3NldE9wdGlvbnMoKSBpbnRvIGFjY291bnQgYW5kIGhhcyBwZXJmb3JtYW5j
ZQorICogYWR2YW50YWdlcyBmcm9tIGJlaW5nIGFibGUgdG8gdXNlIGEgVUNhc2VNYXAgb2JqZWN0
IGZvciBtdWx0aXBsZSBjYXNlIG1hcHBpbmcKKyAqIG9wZXJhdGlvbnMsIHNhdmluZyBzZXR1cCB0
aW1lLgorICoKKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNlbnNp
dGl2ZS4KKyAqIFRpdGxlY2FzaW5nIHVzZXMgYSBicmVhayBpdGVyYXRvciB0byBmaW5kIHRoZSBm
aXJzdCBjaGFyYWN0ZXJzIG9mIHdvcmRzCisgKiB0aGF0IGFyZSB0byBiZSB0aXRsZWNhc2VkLiBJ
dCB0aXRsZWNhc2VzIHRob3NlIGNoYXJhY3RlcnMgYW5kIGxvd2VyY2FzZXMKKyAqIGFsbCBvdGhl
cnMuIChUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHVjYXNlbWFwX3NldE9wdGlvbnMoKS4pCisg
KgorICogTm90ZTogVGhpcyBmdW5jdGlvbiB0YWtlcyBhIG5vbi1jb25zdCBVQ2FzZU1hcCBwb2lu
dGVyIGJlY2F1c2UgaXQgd2lsbAorICogb3BlbiBhIGRlZmF1bHQgYnJlYWsgaXRlcmF0b3IgaWYg
bm8gYnJlYWsgaXRlcmF0b3Igd2FzIHNldCB5ZXQsCisgKiBhbmQgZWZmZWN0aXZlbHkgY2FsbCB1
Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCk7CisgKiBhbHNvIGJlY2F1c2UgdGhlIGJyZWFrIGl0
ZXJhdG9yIGlzIHN0YXRlZnVsIGFuZCB3aWxsIGJlIG1vZGlmaWVkIGR1cmluZworICogdGhlIGl0
ZXJhdGlvbi4KKyAqCisgKiBUaGUgdGl0bGVjYXNlIGJyZWFrIGl0ZXJhdG9yIGNhbiBiZSBwcm92
aWRlZCB0byBjdXN0b21pemUgZm9yIGFyYml0cmFyeQorICogc3R5bGVzLCB1c2luZyBydWxlcyBh
bmQgZGljdGlvbmFyaWVzIGJleW9uZCB0aGUgc3RhbmRhcmQgaXRlcmF0b3JzLgorICogVGhlIHN0
YW5kYXJkIHRpdGxlY2FzZSBpdGVyYXRvciBmb3IgdGhlIHJvb3QgbG9jYWxlIGltcGxlbWVudHMg
dGhlCisgKiBhbGdvcml0aG0gb2YgVW5pY29kZSBUUiAyMS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9u
IHVzZXMgb25seSB0aGUgc2V0VVRleHQoKSwgZmlyc3QoKSwgbmV4dCgpIGFuZCBjbG9zZSgpIG1l
dGhvZHMgb2YgdGhlCisgKiBwcm92aWRlZCBicmVhayBpdGVyYXRvci4KKyAqCisgKiBUaGUgcmVz
dWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBz
b3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAu
CisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4gVGhpcyBw
b2ludGVyIGlzIG5vbi1jb25zdCEKKyAqICAgICAgICAgICAgICAgICAgU2VlIHRoZSBub3RlIGFi
b3ZlIGZvciBkZXRhaWxzLgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJl
c3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAg
ICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAg
ICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBA
cGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRl
cykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVM
TCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVz
dWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3Vs
dCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBA
cGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEs
IHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBN
dXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAg
ICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBm
dW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5n
LCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAg
ICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHku
CisgKgorICogQHNlZSB1X3N0clRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NU
QUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdG9UaXRsZShVQ2FzZU1hcCAqY3NtLAor
ICAgICAgICAgICAgICAgICBVQ2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAg
ICAgICAgICAgICAgIGNvbnN0IFVDaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCisKKy8qKgorICog
TG93ZXJjYXNlIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICogQ2FzaW5nIGlz
IGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGhlIHJlc3VsdCBt
YXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNl
IHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoK
KyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0g
ZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxs
IGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMg
bGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZp
bmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUg
b2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAg
ICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5
IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0
aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAg
ICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBv
ZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWlu
YXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFu
IGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGlu
ZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRo
ZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNl
IG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwg
YmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9Mb3dlcgor
ICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2Fz
ZW1hcF91dGY4VG9Mb3dlcihjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAg
ICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAg
ICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogVXBwZXJjYXNlIHRoZSBjaGFy
YWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQg
YW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNo
b3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRl
c3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAg
ICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVy
IGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVk
IGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICog
ICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFp
bHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVt
YmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0
IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3Ro
IG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBv
ZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0
cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3Ry
aW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBw
RXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUs
CisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBi
ZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJl
c3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJm
bG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRl
c3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9VcHBlcgorICogQHN0YWJsZSBJQ1UgMy40
CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4VG9VcHBlcihj
b25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50
MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMs
IGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVy
cm9yQ29kZSk7CisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworLyoqCisgKiBU
aXRsZWNhc2UgYSBVVEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVudCBh
bmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaXRsZWNhc2luZyB1c2VzIGEgYnJlYWsgaXRlcmF0
b3IgdG8gZmluZCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiB3b3JkcworICogdGhhdCBhcmUgdG8g
YmUgdGl0bGVjYXNlZC4gSXQgdGl0bGVjYXNlcyB0aG9zZSBjaGFyYWN0ZXJzIGFuZCBsb3dlcmNh
c2VzCisgKiBhbGwgb3RoZXJzLiAoVGhpcyBjYW4gYmUgbW9kaWZpZWQgd2l0aCB1Y2FzZW1hcF9z
ZXRPcHRpb25zKCkuKQorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBub24tY29u
c3QgVUNhc2VNYXAgcG9pbnRlciBiZWNhdXNlIGl0IHdpbGwKKyAqIG9wZW4gYSBkZWZhdWx0IGJy
ZWFrIGl0ZXJhdG9yIGlmIG5vIGJyZWFrIGl0ZXJhdG9yIHdhcyBzZXQgeWV0LAorICogYW5kIGVm
ZmVjdGl2ZWx5IGNhbGwgdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigpOworICogYWxzbyBiZWNh
dXNlIHRoZSBicmVhayBpdGVyYXRvciBpcyBzdGF0ZWZ1bCBhbmQgd2lsbCBiZSBtb2RpZmllZCBk
dXJpbmcKKyAqIHRoZSBpdGVyYXRpb24uCisgKgorICogVGhlIHRpdGxlY2FzZSBicmVhayBpdGVy
YXRvciBjYW4gYmUgcHJvdmlkZWQgdG8gY3VzdG9taXplIGZvciBhcmJpdHJhcnkKKyAqIHN0eWxl
cywgdXNpbmcgcnVsZXMgYW5kIGRpY3Rpb25hcmllcyBiZXlvbmQgdGhlIHN0YW5kYXJkIGl0ZXJh
dG9ycy4KKyAqIFRoZSBzdGFuZGFyZCB0aXRsZWNhc2UgaXRlcmF0b3IgZm9yIHRoZSByb290IGxv
Y2FsZSBpbXBsZW1lbnRzIHRoZQorICogYWxnb3JpdGhtIG9mIFVuaWNvZGUgVFIgMjEuCisgKgor
ICogVGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHNldFVUZXh0KCksIGZpcnN0KCksIG5leHQo
KSBhbmQgY2xvc2UoKSBtZXRob2RzIG9mIHRoZQorICogcHJvdmlkZWQgYnJlYWsgaXRlcmF0b3Iu
CisgKgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3Jp
Z2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBt
dXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2Vydmlj
ZSBvYmplY3QuIFRoaXMgcG9pbnRlciBpcyBub24tY29uc3QhCisgKiAgICAgICAgICAgICAgICAg
IFNlZSB0aGUgbm90ZSBhYm92ZSBmb3IgZGV0YWlscy4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBi
dWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1p
bmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2gu
CisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBv
ZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVy
IChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAg
IGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBs
ZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcg
YW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2lu
YWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5h
bCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBh
cmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2
YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWls
dXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0
aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIg
b3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRo
YW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1RpdGxlCisgKiBAc2VlIFVfVElU
TEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RN
RU5UCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIK
K3VjYXNlbWFwX3V0ZjhUb1RpdGxlKFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgICAg
IGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICBV
RXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCisKKy8qKgorICogQ2FzZS1mb2xkcyB0
aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmluZy4KKyAqCisgKiBDYXNlLWZvbGRpbmcgaXMg
bG9jYWxlLWluZGVwZW5kZW50IGFuZCBub3QgY29udGV4dC1zZW5zaXRpdmUsCisgKiBidXQgdGhl
cmUgaXMgYW4gb3B0aW9uIGZvciB3aGV0aGVyIHRvIGluY2x1ZGUgb3IgZXhjbHVkZSBtYXBwaW5n
cyBmb3IgZG90dGVkIEkKKyAqIGFuZCBkb3RsZXNzIGkgdGhhdCBhcmUgbWFya2VkIHdpdGggJ1Qn
IGluIENhc2VGb2xkaW5nLnR4dC4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Ig
c2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUg
ZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAg
ICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBidWZm
ZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0
ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2guCisg
KiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBvZiBm
YWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChu
dW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAgIGRl
c3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5n
dGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcgYW55
IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2luYWwg
c3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBz
dHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBhcmFt
IHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1
ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJl
IGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUg
cmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIgb3Zl
cmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRoYW4g
ZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJGb2xkQ2FzZQorICogQHNlZSB1Y2FzZW1h
cF9zZXRPcHRpb25zCisgKiBAc2VlIFVfRk9MRF9DQVNFX0RFRkFVTFQKKyAqIEBzZWUgVV9GT0xE
X0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJM
RSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOEZvbGRDYXNlKGNvbnN0IFVDYXNlTWFw
ICpjc20sCisgICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2Fw
YWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNy
Y0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmgg
Yi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ1YTk5MGY3
YjdlZDNkNWJhY2YyZGE4NDcxZWY4ZmY5NDIyZjk5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0ZXIuaApAQCAtMCwwICsxLDM4MSBAQAorLyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNp
bmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJl
c2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBVQ0hSSVRFUl9ICisjZGVmaW5l
IFVDSFJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5p
Y29kZS9jaGFyaXRlci5oIgorCisvKioKKyAqIFxmaWxlIAorICogXGJyaWVmIEMrKyBBUEk6IFVD
aGFyIENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioK
KyAqIEEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ2hhcmFjdGVySXRlcmF0b3IgdGhhdCBpdGVyYXRl
cyBvdmVyIHRoZQorICogY2hhcmFjdGVycyAoY29kZSB1bml0cyBvciBjb2RlIHBvaW50cykgaW4g
YSBVQ2hhciBhcnJheS4KKyAqIEl0J3MgcG9zc2libGUgbm90IG9ubHkgdG8gY3JlYXRlIGFuCisg
KiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgYW4gZW50aXJlIFVDaGFyIGFycmF5LCBidXQg
YWxzbyB0bworICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25seSBhIHN1YnJhbmdl
IG9mIGEgVUNoYXIgYXJyYXkKKyAqIChpdGVyYXRvcnMgb3ZlciBkaWZmZXJlbnQgc3VicmFuZ2Vz
IG9mIHRoZSBzYW1lIFVDaGFyIGFycmF5IGRvbid0CisgKiBjb21wYXJlIGVxdWFsKS4KKyAqIEBz
ZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yCisg
KiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIFVDaGFyQ2hhcmFjdGVy
SXRlcmF0b3IgOiBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGljOgorICAvKioKKyAg
ICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5
ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmxlbmd0
aC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUK
KyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBAcGFyYW0gdGV4dFB0
ciBUaGUgVUNoYXIgYXJyYXkgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbGVuZ3Ro
IFRoZSBsZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJf
dCBsZW5ndGgpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVUNo
YXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJh
bmdlIGlzIDAgdG8gPGNvZGU+bGVuZ3RoLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlzIG9ubHkgYWxp
YXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90IGRlbGV0ZSBp
dCkuCisgICAqIFRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInBv
c2l0aW9uIi4gSWYgInBvc2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVyYXRp
b24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisgICAq
IEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRkIG92ZXIKKyAgICog
QHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQorICAgKiBAcGFyYW0g
cG9zaXRpb24gVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFy
KiB0ZXh0UHRyLCBpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQz
Ml90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhl
IFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlv
biByYW5nZSBpcyAwIHRvIDxjb2RlPmVuZC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5IGFs
aWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUg
aXQpLgorICAgKiBUaGUgc3RhcnRpbmcKKyAgICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJw
b3NpdGlvbiIuIElmIGJlZ2luIGFuZCBlbmQgZG8gbm90CisgICAqIGZvcm0gYSB2YWxpZCBpdGVy
YXRpb24gcmFuZ2Ugb3IgInBvc2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVy
YXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisg
ICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRlZCBvdmVyCisg
ICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIgYXJyYXkKKyAgICogQHBh
cmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UK
KyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9u
IHJhbmdlCisgICAqIEBwYXJhbSBwb3NpdGlvbiAgICBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2Yg
dGhlIGl0ZXJhdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFj
dGVySXRlcmF0b3IoY29uc3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGV4dEJlZ2luLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIGludDMyX3QgdGV4dEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90
IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogQ29weSBjb25zdHJ1Y3Rvci4gIFRoZSBuZXcgaXRl
cmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSByYW5nZQorICAgKiBvZiB0aGUgc2FtZSBzdHJp
bmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRpYWwgcG9zaXRpb24gaXMgdGhlCisgICAqIHNhbWUg
YXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICogQHBhcmFtIHRoYXQgVGhlIFVDaGFy
Q2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9y
JiAgdGhhdCk7CisKKyAgLyoqCisgICAqIERlc3RydWN0b3IuCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCB+VUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8qKgor
ICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgKnRoaXMgaXMgYWx0ZXJlZCB0byBpdGVyYXRlIG92
ZXIgdGhlIHNhbmUKKyAgICogcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5k
IHJlZmVycyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgd2l0aGluIHRoYXQgc3RyaW5nIGFz
ICJ0aGF0IiBkb2VzLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgb2JqZWN0IHRvIGJlIGNvcGllZAor
ICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdAorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImCisgIG9wZXJhdG9yPShjb25zdCBV
Q2hhckNoYXJhY3Rlckl0ZXJhdG9yJiAgICB0aGF0KTsKKworICAvKioKKyAgICogUmV0dXJucyB0
cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQor
ICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4K
KyAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB1c2VkIHRvIGJl
IGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGl0ZXJhdG9y
cyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFu
ZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgICAgb3BlcmF0b3I9PShjb25zdCBGb3J3
YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0OworCisgIC8qKgorICAgKiBHZW5lcmF0
ZXMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgaXRlcmF0b3IuCisgICAqIEByZXR1cm4gdGhlIGhhc2gg
Y29kZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIGludDMyX3QgICAg
ICAgICBoYXNoQ29kZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogUmV0dXJucyBhIG5ldyBV
Q2hhckNoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0
ZXIgaW4gdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzIHRoaXMgb25lLiAgVGhl
CisgICAqIGNhbGxlciBtdXN0IGRlbGV0ZSB0aGUgbmV3IGl0ZXJhdG9yLgorICAgKiBAcmV0dXJu
IHRoZSBDaGFyYWN0ZXJJdGVyYXRvciBuZXdseSBjcmVhdGVkCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3Q7
CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBj
b2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBj
b2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdp
dGggbmV4dCgpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJh
dGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFy
ICAgICAgICAgZmlyc3Qodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5n
ZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgKiB0
byB0aGUgc2Vjb25kIGNvZGUgdW5pdC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0
YXJ0KCkKKyAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMoKS4KKyAg
ICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UKKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3RQ
b3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0
byB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQg
cmV0dXJucyB0aGF0IGNvZGUgdW5pdCwKKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBh
biBpdGVyYXRpb24gd2l0aCBuZXh0MzIoKS4KKyAgICogTm90ZSB0aGF0IGFuIGl0ZXJhdGlvbiB3
aXRoIG5leHQzMlBvc3RJbmMoKSwgYmVnaW5uaW5nIHdpdGgsCisgICAqIGUuZy4sIHNldFRvU3Rh
cnQoKSBvciBmaXJzdFBvc3RJbmMoKSwgaXMgbW9yZSBlZmZpY2llbnQuCisgICAqIEByZXR1cm4g
dGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyKHZvaWQpOwor
CisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29k
ZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSBw
b2ludCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgKiB0byB0aGUgc2Vjb25kIGNvZGUgcG9p
bnQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAqIGZvciBmb3J3
YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUgZmly
c3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyUG9zdEluYyh2b2lkKTsK
KworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29k
ZSB1bml0IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29k
ZSB1bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRo
IHByZXZpb3VzKCkuCisgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSB1bml0IGluIGl0cyBpdGVy
YXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hh
ciAgICAgICAgIGxhc3Qodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5n
ZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8g
YmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMzMigpLgorICAgKiBAcmV0dXJuIHRoZSBs
YXN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMyKHZvaWQpOworCisgIC8q
KgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgInBvc2l0aW9uIi10aCBj
b2RlIHVuaXQKKyAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJl
ZmVycyB0bywgYW5kCisgICAqIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIEBwYXJhbSBw
b3NpdGlvbiB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAq
IEByZXR1cm4gdGhlIGNvZGUgdW5pdAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZp
cnR1YWwgVUNoYXIgICAgICAgICBzZXRJbmRleChpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioK
KyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUg
Y29kZSBwb2ludAorICAgKiB0aGF0IGNvbnRhaW5zIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5p
dAorICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRv
LCBhbmQKKyAgICogcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisgICAqIFRoZSBjdXJyZW50IHBv
c2l0aW9uIGlzIGFkanVzdGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAg
ICogKGl0cyBmaXJzdCBjb2RlIHVuaXQpLgorICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0
aW9uIHdpdGhpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgKiBAcmV0dXJuIHRoZSBjb2Rl
IHVuaXQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAg
ICAgc2V0SW5kZXgzMihpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogUmV0dXJucyB0
aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAgKiBAcmV0
dXJuIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGN1cnJlbnQo
dm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgdGhlIGNvZGUgcG9pbnQgdGhlIGl0
ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEByZXR1cm4gdGhlIGNvZGUgcG9pbnQg
dGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGN1cnJlbnQzMih2b2lkKSBjb25zdDsKKwor
ICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UgKHRvd2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2Rl
IHVuaXQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRzIHRvIHJldHVybiwg
cmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgdW5pdCBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNo
YXIgICAgICAgICBuZXh0KHZvaWQpOworCisgIC8qKgorICAgKiBHZXRzIHRoZSBjdXJyZW50IGNv
ZGUgdW5pdCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQK
KyAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAg
SWYgdGhlcmUgYXJlCisgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMg
RE9ORS4KKyAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHRQb3N0SW5jKHZvaWQp
OworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRoZSBp
dGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhh
dCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSBwb2ludHMgdG8g
cmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIE5vdGUgdGhhdCBpdGVyYXRpb24gd2l0aCAicHJl
LWluY3JlbWVudCIgc2VtYW50aWNzIGlzIGxlc3MKKyAgICogZWZmaWNpZW50IHRoYW4gaXRlcmF0
aW9uIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1hbnRpY3MKKyAgICogdGhhdCBpcyBwcm92aWRl
ZCBieSBuZXh0MzJQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSBwb2ludCBp
biB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZp
cnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzIodm9pZCk7CisKKyAgLyoqCisgICAqIEdldHMgdGhl
IGN1cnJlbnQgY29kZSBwb2ludCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4
dCBjb2RlIHBvaW50CisgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogKHRvd2FyZCBl
bmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJl
dHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHBvaW50LgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzJQ
b3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBu
byBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1
cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogVGhpcyBpcyB1c2Vk
IHdpdGggbmV4dFBvc3RJbmMoKSBvciBuZXh0MzJQb3N0SW5jKCkgaW4gZm9yd2FyZAorICAgKiBp
dGVyYXRpb24uCisgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1
bml0cyBvciBjb2RlIHBvaW50cworICAgKiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlv
biBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc05leHQoKTsKKworICAvKioKKyAgICogQWR2YW5jZXMg
dG8gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQK
KyAgICogc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVy
ZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgor
ICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5n
ZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAg
cHJldmlvdXModm9pZCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBj
b2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBzdGFydEluZGV4
KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQor
ICAgKiBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0
aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBwcmV2aW91czMyKHZv
aWQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNv
ZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9u
IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIFRoaXMgaXMgdXNlZCB3aXRoIHByZXZpb3Vz
KCkgb3IgcHJldmlvdXMzMigpIGluIGJhY2t3YXJkCisgICAqIGl0ZXJhdGlvbi4KKyAgICogQHJl
dHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRz
CisgICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhh
c1ByZXZpb3VzKCk7CisKKyAgLyoqCisgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJl
bGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAqIGl0ZXJhdGlvbiByYW5nZSwg
b3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgKiBUaGUgbW92
ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSB1bml0cyBmb3J3YXJkCisgICAq
IG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4K
KyAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9z
aXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBi
YWNrd2FyZC4KKyAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwg
a0N1cnJlbnQsIGtFbmR9CisgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUoaW50MzJfdCBk
ZWx0YSwgRU9yaWdpbiBvcmlnaW4pOworCisgIC8qKgorICAgKiBNb3ZlcyB0aGUgY3VycmVudCBw
b3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgKiBpdGVyYXRp
b24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGl0c2VsZi4KKyAg
ICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgcG9pbnRzIGZv
cndhcmQKKyAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0
aXZlIGRlbHRhLgorICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9y
aWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgKiBhIG5lZ2F0aXZlIGRl
bHRhIG1lYW5zIGJhY2t3YXJkLgorICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlv
biB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9u
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92
ZTMyKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKTsKKworICAvKioKKyAgICogU2V0cyB0
aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIGEgbmV3IHJhbmdlIG9mIHRleHQKKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVUNoYXIqIG5ld1RleHQs
IGludDMyX3QgbmV3VGV4dExlbmd0aCk7CisKKyAgLyoqCisgICAqIENvcGllcyB0aGUgVUNoYXIg
YXJyYXkgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcKKyAgICogcmVmZXJy
ZWQgdG8gYnkgInJlc3VsdCIuICBFdmVuIGlmIHRoaXMgaXRlcmF0b3IgaXRlcmF0ZXMgYWNyb3Nz
CisgICAqIG9ubHkgYSBwYXJ0IG9mIHRoaXMgc3RyaW5nLCB0aGUgd2hvbGUgc3RyaW5nIGlzIGNv
cGllZC4KKyAgICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5k
ZXIgaXRlcmF0aW9uLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgdm9p
ZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0cmluZyYgcmVzdWx0KTsKKworICAvKioKKyAg
ICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MgKG5vdCByZWFsbHkgcHVibGljKQor
ICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MKKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBzdGF0aWMgVUNsYXNzSUQgICAgICAgICBVX0VYUE9SVDIgZ2V0U3RhdGlj
Q2xhc3NJRCh2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMg
b2JqZWN0IChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0
aGlzIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDbGFz
c0lEICAgICAgICBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKworcHJvdGVjdGVkOgor
ICAvKioKKyAgICogUHJvdGVjdGVkIGNvbnN0cnVjdG9yCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigpOworICAvKioKKyAgICogUHJvdGVjdGVk
IG1lbWJlciB0ZXh0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgY29uc3QgVUNoYXIq
ICAgICAgICAgICAgdGV4dDsKKworfTsKKworVV9OQU1FU1BBQ0VfRU5ECisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNsZWFuLmggYi9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3VjbGVhbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5YTFlNTM5MDU4Y2RlODVlZmQyYWE4NGNiNzA3
ZDM3NDE3NDI1ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Vj
bGVhbi5oCkBAIC0wLDAgKzEsMjU4IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENv
cHlyaWdodCAoQykgMjAwMS0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisq
ICAgICAgICAgICAgICAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1Y2xlYW4uaAorKiAg
IGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAg
aW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDIwMDFKdWx5MDUKKyogICBjcmVhdGVk
IGJ5OiBHZW9yZ2UgUmhvdGVuCisqLworCisjaWZuZGVmIF9fVUNMRUFOX0hfXworI2RlZmluZSBf
X1VDTEVBTl9IX18KKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisvKioKKyAqIFxmaWxl
CisgKiBcYnJpZWYgQyBBUEk6IEluaXRpYWxpemUgYW5kIGNsZWFuIHVwIElDVQorICovCisgCisv
KioKKyAqICBJbml0aWFsaXplIElDVS4KKyAqCisgKiAgVXNlIG9mIHRoaXMgZnVuY3Rpb24gaXMg
b3B0aW9uYWwuICBJdCBpcyBPSyB0byBzaW1wbHkgdXNlIElDVQorICogIHNlcnZpY2VzIGFuZCBm
dW5jdGlvbnMgd2l0aG91dCBmaXJzdCBoYXZpbmcgaW5pdGlhbGl6ZWQKKyAqICBJQ1UgYnkgY2Fs
bGluZyB1X2luaXQoKS4KKyAqCisgKiAgdV9pbml0KCkgd2lsbCBhdHRlbXB0IHRvIGxvYWQgc29t
ZSBwYXJ0IG9mIElDVSdzIGRhdGEsIGFuZCBpcworICogIHVzZWZ1bCBhcyBhIHRlc3QgZm9yIGNv
bmZpZ3VyYXRpb24gb3IgaW5zdGFsbGF0aW9uIHByb2JsZW1zIHRoYXQKKyAqICBsZWF2ZSB0aGUg
SUNVIGRhdGEgaW5hY2Nlc3NpYmxlLiAgQSBzdWNjZXNzZnVsIGludm9jYXRpb24gb2YgdV9pbml0
KCkKKyAqICBkb2VzIG5vdCwgaG93ZXZlciwgZ3VhcmFudGVlIHRoYXQgYWxsIElDVSBkYXRhIGlz
IGFjY2Vzc2libGUuCisgKgorICogIE11bHRpcGxlIGNhbGxzIHRvIHVfaW5pdCgpIGNhdXNlIG5v
IGhhcm0sIGFzaWRlIGZyb20gdGhlIHNtYWxsIGFtb3VudAorICogIG9mIHRpbWUgcmVxdWlyZWQu
CisgKgorICogIEluIG9sZCB2ZXJzaW9ucyBvZiBJQ1UsIHVfaW5pdCgpIHdhcyByZXF1aXJlZCBp
biBtdWx0aS10aHJlYWRlZCBhcHBsaWNhdGlvbnMKKyAqICB0byBlbnN1cmUgdGhlIHRocmVhZCBz
YWZldHkgb2YgSUNVLiAgdV9pbml0KCkgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgdGhpcyBwdXJw
b3NlLgorICoKKyAqIEBwYXJhbSBzdGF0dXMgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJ
dCBtdXN0IG5vdCBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqICAgIEFuIEVycm9yIHdpbGwgYmUg
cmV0dXJuZWQgaWYgc29tZSByZXF1aXJlZCBwYXJ0IG9mIElDVSBkYXRhIGNhbiBub3QKKyAqICAg
IGJlIGxvYWRlZCBvciBpbml0aWFsaXplZC4KKyAqICAgIFRoZSBmdW5jdGlvbiByZXR1cm5zIGlt
bWVkaWF0ZWx5IGlmIHRoZSBpbnB1dCBlcnJvciBjb2RlIGluZGljYXRlcyBhCisgKiAgICBmYWls
dXJlLCBhcyB1c3VhbC4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjYKKyAqLyAgCitVX1NUQUJMRSB2
b2lkIFVfRVhQT1JUMiAKK3VfaW5pdChVRXJyb3JDb2RlICpzdGF0dXMpOworCisjaWZuZGVmIFVf
SElERV9TWVNURU1fQVBJCisvKioKKyAqIENsZWFuIHVwIHRoZSBzeXN0ZW0gcmVzb3VyY2VzLCBz
dWNoIGFzIGFsbG9jYXRlZCBtZW1vcnkgb3Igb3BlbiBmaWxlcywKKyAqIHVzZWQgaW4gYWxsIElD
VSBsaWJyYXJpZXMuIFRoaXMgd2lsbCBmcmVlL2RlbGV0ZSBhbGwgbWVtb3J5IG93bmVkIGJ5IHRo
ZQorICogSUNVIGxpYnJhcmllcywgYW5kIHJldHVybiB0aGVtIHRvIHRoZWlyIG9yaWdpbmFsIGxv
YWQgc3RhdGUuIEFsbCBvcGVuIElDVQorICogaXRlbXMgKGNvbGxhdG9ycywgcmVzb3VyY2UgYnVu
ZGxlcywgY29udmVydGVycywgZXRjLikgbXVzdCBiZSBjbG9zZWQgYmVmb3JlCisgKiBjYWxsaW5n
IHRoaXMgZnVuY3Rpb24sIG90aGVyd2lzZSBJQ1UgbWF5IG5vdCBmcmVlIGl0cyBhbGxvY2F0ZWQg
bWVtb3J5CisgKiAoZS5nLiBjbG9zZSB5b3VyIGNvbnZlcnRlcnMgYW5kIHJlc291cmNlIGJ1bmRs
ZXMgYmVmb3JlIGNhbGxpbmcgdGhpcworICogZnVuY3Rpb24pLiBHZW5lcmFsbHksIHRoaXMgZnVu
Y3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBvbmNlIGp1c3QgYmVmb3JlCisgKiBhbiBhcHBsaWNhdGlv
biBleGl0cy4gRm9yIGFwcGxpY2F0aW9ucyB0aGF0IGR5bmFtaWNhbGx5IGxvYWQgYW5kIHVubG9h
ZAorICogdGhlIElDVSBsaWJyYXJpZXMgKHJlbGF0aXZlbHkgdW5jb21tb24pLCB1X2NsZWFudXAo
KSBzaG91bGQgYmUgY2FsbGVkCisgKiBqdXN0IGJlZm9yZSB0aGUgbGlicmFyeSB1bmxvYWQuCisg
KiA8cD4KKyAqIHVfY2xlYW51cCgpIGFsc28gY2xlYXJzIGFueSBJQ1UgaGVhcCBmdW5jdGlvbnMs
IG11dGV4IGZ1bmN0aW9ucyBvcgorICogdHJhY2UgZnVuY3Rpb25zIHRoYXQgbWF5IGhhdmUgYmVl
biBzZXQgZm9yIHRoZSBwcm9jZXNzLiAgCisgKiBUaGlzIGhhcyB0aGUgZWZmZWN0IG9mIHJlc3Rv
cmluZyBJQ1UgdG8gaXRzIGluaXRpYWwgY29uZGl0aW9uLCBiZWZvcmUKKyAqIGFueSBvZiB0aGVz
ZSBvdmVycmlkZSBmdW5jdGlvbnMgd2VyZSBpbnN0YWxsZWQuICBSZWZlciB0bworICogdV9zZXRN
ZW1vcnlGdW5jdGlvbnMoKSwgdV9zZXRNdXRleEZ1bmN0aW9ucyBhbmQgCisgKiB1dHJhY2Vfc2V0
RnVuY3Rpb25zKCkuICBJZiBJQ1UgaXMgdG8gYmUgcmVpbml0aWFsaXplZCBhZnRlciBhZnRlcgor
ICogY2FsbGluZyB1X2NsZWFudXAoKSwgdGhlc2UgcnVudGltZSBvdmVycmlkZSBmdW5jdGlvbnMg
d2lsbCBuZWVkIHRvCisgKiBiZSBzZXQgdXAgYWdhaW4gaWYgdGhleSBhcmUgc3RpbGwgcmVxdWly
ZWQuCisgKiA8cD4KKyAqIHVfY2xlYW51cCgpIGlzIG5vdCB0aHJlYWQgc2FmZS4gIEFsbCBvdGhl
ciB0aHJlYWRzIHNob3VsZCBzdG9wIHVzaW5nIElDVQorICogYmVmb3JlIGNhbGxpbmcgdGhpcyBm
dW5jdGlvbi4KKyAqIDxwPgorICogQW55IG9wZW4gSUNVIGl0ZW1zIHdpbGwgYmUgbGVmdCBpbiBh
biB1bmRlZmluZWQgc3RhdGUgYnkgdV9jbGVhbnVwKCksCisgKiBhbmQgYW55IHN1YnNlcXVlbnQg
YXR0ZW1wdCB0byB1c2Ugc3VjaCBhbiBpdGVtIHdpbGwgZ2l2ZSB1bnByZWRpY3RhYmxlCisgKiBy
ZXN1bHRzLgorICogPHA+CisgKiBBZnRlciBjYWxsaW5nIHVfY2xlYW51cCgpLCBhbiBhcHBsaWNh
dGlvbiBtYXkgY29udGludWUgdG8gdXNlIElDVSBieQorICogY2FsbGluZyB1X2luaXQoKS4gIEFu
IGFwcGxpY2F0aW9uIG11c3QgaW52b2tlIHVfaW5pdCgpIGZpcnN0IGZyb20gb25lIHNpbmdsZQor
ICogdGhyZWFkIGJlZm9yZSBhbGxvd2luZyBvdGhlciB0aHJlYWRzIGNhbGwgdV9pbml0KCkuICBB
bGwgdGhyZWFkcyBleGlzdGluZworICogYXQgdGhlIHRpbWUgb2YgdGhlIGZpcnN0IHRocmVhZCdz
IGNhbGwgdG8gdV9pbml0KCkgbXVzdCBhbHNvIGNhbGwKKyAqIHVfaW5pdCgpIHRoZW1zZWx2ZXMg
YmVmb3JlIGNvbnRpbnVpbmcgd2l0aCBvdGhlciBJQ1Ugb3BlcmF0aW9ucy4gIAorICogPHA+Cisg
KiBUaGUgdXNlIG9mIHVfY2xlYW51cCgpIGp1c3QgYmVmb3JlIGFuIGFwcGxpY2F0aW9uIHRlcm1p
bmF0ZXMgaXMgb3B0aW9uYWwsCisgKiBidXQgaXQgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IG9uY2Ug
Zm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuIFRoZSBwcmltYXJ5CisgKiBiZW5lZml0IGlzIHRvIGVs
aW1pbmF0ZSByZXBvcnRzIG9mIG1lbW9yeSBvciByZXNvdXJjZSBsZWFrcyBvcmlnaW5hdGluZwor
ICogaW4gSUNVIGNvZGUgZnJvbSB0aGUgcmVzdWx0cyBnZW5lcmF0ZWQgYnkgaGVhcCBhbmFseXNp
cyB0b29scy4KKyAqIDxwPgorICogPHN0cm9uZz5Vc2UgdGhpcyBmdW5jdGlvbiB3aXRoIGdyZWF0
IGNhcmUhPC9zdHJvbmc+CisgKiA8L3A+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKiBAc3lz
dGVtCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyIAordV9jbGVhbnVwKHZvaWQpOworCisK
Ky8qKgorICAqICBQb2ludGVyIHR5cGUgZm9yIGEgdXNlciBzdXBwbGllZCBtZW1vcnkgYWxsb2Nh
dGlvbiBmdW5jdGlvbi4KKyAgKiAgQHBhcmFtIGNvbnRleHQgdXNlciBzdXBwbGllZCB2YWx1ZSwg
b2J0YWluZWQgZnJvbSBmcm9tIHVfc2V0TWVtb3J5RnVuY3Rpb25zKCkuCisgICogIEBwYXJhbSBz
aXplICAgIFRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gYmUgYWxsb2NhdGVkCisgICogIEByZXR1cm4g
ICAgICAgIFBvaW50ZXIgdG8gdGhlIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnksIG9yIE5VTEwgaWYg
dGhlIGFsbG9jYXRpb24gZmFpbGVkLgorICAqICBAc3RhYmxlIElDVSAyLjgKKyAgKiAgQHN5c3Rl
bQorICAqLwordHlwZWRlZiB2b2lkICpVX0NBTExDT05WIFVNZW1BbGxvY0ZuKGNvbnN0IHZvaWQg
KmNvbnRleHQsIHNpemVfdCBzaXplKTsKKy8qKgorICAqICBQb2ludGVyIHR5cGUgZm9yIGEgdXNl
ciBzdXBwbGllZCBtZW1vcnkgcmUtYWxsb2NhdGlvbiBmdW5jdGlvbi4KKyAgKiAgQHBhcmFtIGNv
bnRleHQgdXNlciBzdXBwbGllZCB2YWx1ZSwgb2J0YWluZWQgZnJvbSBmcm9tIHVfc2V0TWVtb3J5
RnVuY3Rpb25zKCkuCisgICogIEBwYXJhbSBzaXplICAgIFRoZSBudW1iZXIgb2YgYnl0ZXMgdG8g
YmUgYWxsb2NhdGVkCisgICogIEByZXR1cm4gICAgICAgIFBvaW50ZXIgdG8gdGhlIG5ld2x5IGFs
bG9jYXRlZCBtZW1vcnksIG9yIE5VTEwgaWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkLgorICAqICBA
c3RhYmxlIElDVSAyLjgKKyAgKiAgQHN5c3RlbQorICAqLwordHlwZWRlZiB2b2lkICpVX0NBTExD
T05WIFVNZW1SZWFsbG9jRm4oY29uc3Qgdm9pZCAqY29udGV4dCwgdm9pZCAqbWVtLCBzaXplX3Qg
c2l6ZSk7CisvKioKKyAgKiAgUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3VwcGxpZWQgbWVtb3J5
IGZyZWUgIGZ1bmN0aW9uLiAgQmVoYXZpb3Igc2hvdWxkIGJlCisgICogIHNpbWlsYXIgdGhlIHN0
YW5kYXJkIEMgbGlicmFyeSBmcmVlKCkuCisgICogIEBwYXJhbSBjb250ZXh0IHVzZXIgc3VwcGxp
ZWQgdmFsdWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3NldE1lbW9yeUZ1bmN0aW9ucygpLgorICAq
ICBAcGFyYW0gbWVtICAgICBQb2ludGVyIHRvIHRoZSBtZW1vcnkgYmxvY2sgdG8gYmUgcmVzaXpl
ZAorICAqICBAcGFyYW0gc2l6ZSAgICBUaGUgbmV3IHNpemUgZm9yIHRoZSBibG9jaworICAqICBA
cmV0dXJuICAgICAgICBQb2ludGVyIHRvIHRoZSByZXNpemVkIG1lbW9yeSBibG9jaywgb3IgTlVM
TCBpZiB0aGUgcmVzaXppbmcgZmFpbGVkLgorICAqICBAc3RhYmxlIElDVSAyLjgKKyAgKiAgQHN5
c3RlbQorICAqLwordHlwZWRlZiB2b2lkICBVX0NBTExDT05WIFVNZW1GcmVlRm4gKGNvbnN0IHZv
aWQgKmNvbnRleHQsIHZvaWQgKm1lbSk7CisKKy8qKgorICogIFNldCB0aGUgZnVuY3Rpb25zIHRo
YXQgSUNVIHdpbGwgdXNlIGZvciBtZW1vcnkgYWxsb2NhdGlvbi4KKyAqICBVc2Ugb2YgdGhpcyBm
dW5jdGlvbiBpcyBvcHRpb25hbDsgYnkgZGVmYXVsdCAod2l0aG91dCB0aGlzIGZ1bmN0aW9uKSwg
SUNVIHdpbGwKKyAqICB1c2UgdGhlIHN0YW5kYXJkIEMgbGlicmFyeSBtYWxsb2MoKSBhbmQgZnJl
ZSgpIGZ1bmN0aW9ucy4KKyAqICBUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5IGJlIHVzZWQgd2hlbiBJ
Q1UgaXMgaW4gYW4gaW5pdGlhbCwgdW51c2VkIHN0YXRlLCBiZWZvcmUKKyAqICB1X2luaXQoKSBo
YXMgYmVlbiBjYWxsZWQuCisgKiAgQHBhcmFtIGNvbnRleHQgVGhpcyBwb2ludGVyIHZhbHVlIHdp
bGwgYmUgc2F2ZWQsIGFuZCB0aGVuIChsYXRlcikgcGFzc2VkIGFzCisgKiAgICAgICAgICAgICAg
ICAgYSBwYXJhbWV0ZXIgdG8gdGhlIG1lbW9yeSBmdW5jdGlvbnMgZWFjaCB0aW1lIHRoZXkKKyAq
ICAgICAgICAgICAgICAgICBhcmUgY2FsbGVkLgorICogIEBwYXJhbSBhICAgICAgIFBvaW50ZXIg
dG8gYSB1c2VyLXN1cHBsaWVkIG1hbGxvYyBmdW5jdGlvbi4KKyAqICBAcGFyYW0gciAgICAgICBQ
b2ludGVyIHRvIGEgdXNlci1zdXBwbGllZCByZWFsbG9jIGZ1bmN0aW9uLgorICogIEBwYXJhbSBm
ICAgICAgIFBvaW50ZXIgdG8gYSB1c2VyLXN1cHBsaWVkIGZyZWUgZnVuY3Rpb24uCisgKiAgQHBh
cmFtIHN0YXR1cyAgUmVjZWl2ZXMgZXJyb3IgdmFsdWVzLgorICogIEBzdGFibGUgSUNVIDIuOAor
ICogIEBzeXN0ZW0KKyAqLyAgCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMiAKK3Vfc2V0TWVtb3J5
RnVuY3Rpb25zKGNvbnN0IHZvaWQgKmNvbnRleHQsIFVNZW1BbGxvY0ZuICphLCBVTWVtUmVhbGxv
Y0ZuICpyLCBVTWVtRnJlZUZuICpmLCAKKyAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAq
c3RhdHVzKTsKKworCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQorLyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorICoKKyAqIERlcHJlY2F0ZWQgRnVuY3Rpb25zCisgKgorICogICAgVGhl
IGZvbGxvd2luZyBmdW5jdGlvbnMgZm9yIHVzZXIgc3VwcGxpZWQgbXV0ZXhlcyBhcmUgbm8gbG9u
Z2VyIHN1cHBvcnRlZC4KKyAqICAgIEFueSBhdHRlbXB0IHRvIHVzZSB0aGVtIHdpbGwgcmV0dXJu
IGEgVV9VTlNVUFBPUlRFRF9FUlJPUi4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K
KworLyoqCisgICogQW4gb3BhcXVlIHBvaW50ZXIgdHlwZSB0aGF0IHJlcHJlc2VudHMgYW4gSUNV
IG11dGV4LgorICAqIEZvciB1c2VyLWltcGxlbWVudGVkIG11dGV4ZXMsIHRoZSB2YWx1ZSB3aWxs
IHR5cGljYWxseSBwb2ludCB0byBhCisgICogIHN0cnVjdCBvciBvYmplY3QgdGhhdCBpbXBsZW1l
bnRzIHRoZSBtdXRleC4KKyAgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIFRoaXMgdHlwZSBpcyBubyBs
b25nZXIgc3VwcG9ydGVkLgorICAqIEBzeXN0ZW0KKyAgKi8KK3R5cGVkZWYgdm9pZCAqVU1UWDsK
KworLyoqCisgICogIEZ1bmN0aW9uIFBvaW50ZXIgdHlwZSBmb3IgYSB1c2VyIHN1cHBsaWVkIG11
dGV4IGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLgorICAqICBUaGUgdXNlci1zdXBwbGllZCBmdW5j
dGlvbiB3aWxsIGJlIGNhbGxlZCBieSBJQ1Ugd2hlbmV2ZXIgSUNVIG5lZWRzIHRvIGNyZWF0ZSBh
CisgICogIG5ldyBtdXRleC4gIFRoZSBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbiBzaG91bGQgY3Jl
YXRlIGEgbXV0ZXgsIGFuZCBzdG9yZSBhIHBvaW50ZXIKKyAgKiAgdG8gc29tZXRoaW5nIHRoYXQg
dW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgbXV0ZXggaW50byB0aGUgVU1UWCB0aGF0IGlzIHN1cHBs
aWVkCisgICogIGFzIGEgcGFyYW10ZXIuCisgICogIEBwYXJhbSBjb250ZXh0IHVzZXIgc3VwcGxp
ZWQgdmFsdWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3NldE11dGV4RnVuY3Rpb25zKCkuCisgICog
IEBwYXJhbSBtdXRleCAgIFJlY2VpdmVzIGEgcG9pbnRlciB0aGF0IGlkZW50aWZpZXMgdGhlIG5l
dyBtdXRleC4KKyAgKiAgICAgICAgICAgICAgICAgVGhlIG11dGV4IGluaXQgZnVuY3Rpb24gbXVz
dCBzZXQgdGhlIFVNVFggdG8gYSBub24tbnVsbCB2YWx1ZS4gICAKKyAgKiAgICAgICAgICAgICAg
ICAgU3Vic2VxdWVudCBjYWxscyBieSBJQ1UgdG8gbG9jaywgdW5sb2NrLCBvciBkZXN0cm95IGEg
bXV0ZXggd2lsbCAKKyAgKiAgICAgICAgICAgICAgICAgaWRlbnRpZnkgdGhlIG11dGV4IGJ5IHRo
ZSBVTVRYIHZhbHVlLgorICAqICBAcGFyYW0gc3RhdHVzICBFcnJvciBzdGF0dXMuICBSZXBvcnQg
ZXJyb3JzIGJhY2sgdG8gSUNVIGJ5IHNldHRpbmcgdGhpcyB2YXJpYWJsZQorICAqICAgICAgICAg
ICAgICAgICB3aXRoIGFuIGVycm9yIGNvZGUuCisgICogIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhp
cyBmdW5jdGlvbiBpcyBubyBsb25nZXIgc3VwcG9ydGVkLgorICAqICBAc3lzdGVtCisgICovCit0
eXBlZGVmIHZvaWQgVV9DQUxMQ09OViBVTXR4SW5pdEZuIChjb25zdCB2b2lkICpjb250ZXh0LCBV
TVRYICAqbXV0ZXgsIFVFcnJvckNvZGUqIHN0YXR1cyk7CisKKworLyoqCisgICogIEZ1bmN0aW9u
IFBvaW50ZXIgdHlwZSBmb3IgYSB1c2VyIHN1cHBsaWVkIG11dGV4IGZ1bmN0aW9ucy4KKyAgKiAg
T25lIG9mIHRoZSAgdXNlci1zdXBwbGllZCBmdW5jdGlvbnMgd2l0aCB0aGlzIHNpZ25hdHVyZSB3
aWxsIGJlIGNhbGxlZCBieSBJQ1UKKyAgKiAgd2hlbmV2ZXIgSUNVIG5lZWRzIHRvIGxvY2ssIHVu
bG9jaywgb3IgZGVzdHJveSBhIG11dGV4LgorICAqICBAcGFyYW0gY29udGV4dCB1c2VyIHN1cHBs
aWVkIHZhbHVlLCBvYnRhaW5lZCBmcm9tIGZyb20gdV9zZXRNdXRleEZ1bmN0aW9ucygpLgorICAq
ICBAcGFyYW0gbXV0ZXggICBzcGVjaWZ5IHRoZSBtdXRleCBvbiB3aGljaCB0byBvcGVyYXRlLgor
ICAqICBAZGVwcmVjYXRlZCBJQ1UgNTIuIFRoaXMgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyIHN1cHBv
cnRlZC4KKyAgKiAgQHN5c3RlbQorICAqLwordHlwZWRlZiB2b2lkIFVfQ0FMTENPTlYgVU10eEZu
ICAgKGNvbnN0IHZvaWQgKmNvbnRleHQsIFVNVFggICptdXRleCk7CisKKworLyoqCisgICogIFNl
dCB0aGUgZnVuY3Rpb25zIHRoYXQgSUNVIHdpbGwgdXNlIGZvciBtdXRleCBvcGVyYXRpb25zCisg
ICogIFVzZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIG9wdGlvbmFsOyBieSBkZWZhdWx0ICh3aXRob3V0
IHRoaXMgZnVuY3Rpb24pLCBJQ1Ugd2lsbAorICAqICBkaXJlY3RseSBhY2Nlc3Mgc3lzdGVtIGZ1
bmN0aW9ucyBmb3IgbXV0ZXggb3BlcmF0aW9ucworICAqICBUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5
IGJlIHVzZWQgd2hlbiBJQ1UgaXMgaW4gYW4gaW5pdGlhbCwgdW51c2VkIHN0YXRlLCBiZWZvcmUK
KyAgKiAgdV9pbml0KCkgaGFzIGJlZW4gY2FsbGVkLgorICAqICBAcGFyYW0gY29udGV4dCBUaGlz
IHBvaW50ZXIgdmFsdWUgd2lsbCBiZSBzYXZlZCwgYW5kIHRoZW4gKGxhdGVyKSBwYXNzZWQgYXMK
KyAgKiAgICAgICAgICAgICAgICAgYSBwYXJhbWV0ZXIgdG8gdGhlIHVzZXItc3VwcGxpZWQgbXV0
ZXggZnVuY3Rpb25zIGVhY2ggdGltZSB0aGV5CisgICogICAgICAgICAgICAgICAgIGFyZSBjYWxs
ZWQuIAorICAqICBAcGFyYW0gaW5pdCAgICBQb2ludGVyIHRvIGEgbXV0ZXggaW5pdGlhbGl6YXRp
b24gZnVuY3Rpb24uICBNdXN0IGJlIG5vbi1udWxsLgorICAqICBAcGFyYW0gZGVzdHJveSBQb2lu
dGVyIHRvIHRoZSBtdXRleCBkZXN0cm95IGZ1bmN0aW9uLiAgTXVzdCBiZSBub24tbnVsbC4KKyAg
KiAgQHBhcmFtIGxvY2sgICAgcG9pbnRlciB0byB0aGUgbXV0ZXggbG9jayBmdW5jdGlvbi4gIE11
c3QgYmUgbm9uLW51bGwuCisgICogIEBwYXJhbSB1bmxvY2sgIFBvaW50ZXIgdG8gdGhlIG11dGV4
IHVubG9jayBmdW5jdGlvbi4gIE11c3QgYmUgbm9uLW51bGwuCisgICogIEBwYXJhbSBzdGF0dXMg
IFJlY2VpdmVzIGVycm9yIHZhbHVlcy4KKyAgKiAgQGRlcHJlY2F0ZWQgSUNVIDUyLiBUaGlzIGZ1
bmN0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICogIEBzeXN0ZW0KKyAgKi8gIAorVV9E
RVBSRUNBVEVEIHZvaWQgVV9FWFBPUlQyIAordV9zZXRNdXRleEZ1bmN0aW9ucyhjb25zdCB2b2lk
ICpjb250ZXh0LCBVTXR4SW5pdEZuICppbml0LCBVTXR4Rm4gKmRlc3Ryb3ksIFVNdHhGbiAqbG9j
aywgVU10eEZuICp1bmxvY2ssCisgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnN0YXR1
cyk7CisKKworLyoqCisgICogIFBvaW50ZXIgdHlwZSBmb3IgYSB1c2VyIHN1cHBsaWVkIGF0b21p
YyBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IGZ1bmN0aW9uLgorICAqICBAcGFyYW0gY29udGV4dCB1
c2VyIHN1cHBsaWVkIHZhbHVlLCBvYnRhaW5lZCBmcm9tIGZyb20gdV9zZXRBdG9taWNJbmNEZWNG
dW5jdGlvbnMoKS4KKyAgKiAgQHBhcmFtIHAgICBQb2ludGVyIHRvIGEgMzIgYml0IGludCB0byBi
ZSBpbmNyZW1lbnRlZCBvciBkZWNyZW1lbnRlZAorICAqICBAcmV0dXJuICAgIFRoZSB2YWx1ZSBv
ZiB0aGUgdmFyaWFibGUgYWZ0ZXIgdGhlIGluYyBvciBkZWMgb3BlcmF0aW9uLgorICAqICBAZGVw
cmVjYXRlZCBJQ1UgNTIuIFRoaXMgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KKyAg
KiAgQHN5c3RlbQorICAqLwordHlwZWRlZiBpbnQzMl90IFVfQ0FMTENPTlYgVU10eEF0b21pY0Zu
KGNvbnN0IHZvaWQgKmNvbnRleHQsIGludDMyX3QgKnApOworCisvKioKKyAqICBTZXQgdGhlIGZ1
bmN0aW9ucyB0aGF0IElDVSB3aWxsIHVzZSBmb3IgYXRvbWljIGluY3JlbWVudCBhbmQgZGVjcmVt
ZW50IG9mIGludDMyX3QgdmFsdWVzLgorICogIFVzZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIG9wdGlv
bmFsOyBieSBkZWZhdWx0ICh3aXRob3V0IHRoaXMgZnVuY3Rpb24pLCBJQ1Ugd2lsbAorICogIHVz
ZSBpdHMgb3duIGludGVybmFsIGltcGxlbWVudGF0aW9uIG9mIGF0b21pYyBpbmNyZW1lbnQvZGVj
cmVtZW50LgorICogIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgdXNlZCB3aGVuIElDVSBpcyBp
biBhbiBpbml0aWFsLCB1bnVzZWQgc3RhdGUsIGJlZm9yZQorICogIHVfaW5pdCgpIGhhcyBiZWVu
IGNhbGxlZC4KKyAqICBAcGFyYW0gY29udGV4dCBUaGlzIHBvaW50ZXIgdmFsdWUgd2lsbCBiZSBz
YXZlZCwgYW5kIHRoZW4gKGxhdGVyKSBwYXNzZWQgYXMKKyAqICAgICAgICAgICAgICAgICBhIHBh
cmFtZXRlciB0byB0aGUgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgZnVuY3Rpb25zIGVhY2ggdGlt
ZSB0aGV5CisgKiAgICAgICAgICAgICAgICAgYXJlIGNhbGxlZC4gIFRoaXMgZnVuY3Rpb24gY2Fu
IG9ubHkgYmUgY2FsbGVkIAorICogIEBwYXJhbSBpbmMgICAgIFBvaW50ZXIgdG8gYSBmdW5jdGlv
biB0byBkbyBhbiBhdG9taWMgaW5jcmVtZW50IG9wZXJhdGlvbi4gIE11c3QgYmUgbm9uLW51bGwu
CisgKiAgQHBhcmFtIGRlYyAgICAgUG9pbnRlciB0byBhIGZ1bmN0aW9uIHRvIGRvIGFuIGF0b21p
YyBkZWNyZW1lbnQgb3BlcmF0aW9uLiAgTXVzdCBiZSBub24tbnVsbC4KKyAqICBAcGFyYW0gc3Rh
dHVzICBSZWNlaXZlcyBlcnJvciB2YWx1ZXMuCisgKiAgQGRlcHJlY2F0ZWQgSUNVIDUyLiBUaGlz
IGZ1bmN0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgKiAgQHN5c3RlbQorICovICAKK1Vf
REVQUkVDQVRFRCB2b2lkIFVfRVhQT1JUMiAKK3Vfc2V0QXRvbWljSW5jRGVjRnVuY3Rpb25zKGNv
bnN0IHZvaWQgKmNvbnRleHQsIFVNdHhBdG9taWNGbiAqaW5jLCBVTXR4QXRvbWljRm4gKmRlYywK
KyAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworI2VuZGlmICAvKiBV
X0hJREVfREVQUkVDQVRFRF9BUEkgKi8KKyNlbmRpZiAgLyogVV9ISURFX1NZU1RFTV9BUEkgKi8K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VkYXRhLmggYi9T
b3VyY2UvV1RGL2ljdS91bmljb2RlL3VkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjllNDY2MzBkNTM5OGQ4
MjczOGQxZDYxZmZjNGQyYzkxNGU4YzY4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvdWRhdGEuaApAQCAtMCwwICsxLDQzMCBAQAorLyoKKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1ZGF0
YS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNl
ZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMTk5OW9jdDI1CisqICAg
Y3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisKKyNpZm5kZWYgX19VREFUQV9IX18K
KyNkZWZpbmUgX19VREFUQV9IX18KKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5j
bHVkZSAidW5pY29kZS9sb2NhbHBvaW50ZXIuaCIKKworVV9DREVDTF9CRUdJTgorCisvKioKKyAq
IFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IERhdGEgbG9hZGluZyBpbnRlcmZhY2UKKyAqCisgKiA8
aDI+SW5mb3JtYXRpb24gYWJvdXQgZGF0YSBsb2FkaW5nIGludGVyZmFjZTwvaDI+CisgKgorICog
VGhpcyBBUEkgaXMgdXNlZCB0byBmaW5kIGFuZCBlZmZpY2llbnRseSBsb2FkIGRhdGEgZm9yIElD
VSBhbmQgYXBwbGljYXRpb25zCisgKiB1c2luZyBJQ1UuIEl0IHByb3ZpZGVzIGFuIGFic3RyYWN0
IGludGVyZmFjZSB0aGF0IHNwZWNpZmllcyBhIGRhdGEgdHlwZSBhbmQKKyAqIG5hbWUgdG8gZmlu
ZCBhbmQgbG9hZCB0aGUgZGF0YS4gTm9ybWFsbHkgdGhpcyBBUEkgaXMgdXNlZCBieSBvdGhlciBJ
Q1UgQVBJcworICogdG8gbG9hZCByZXF1aXJlZCBkYXRhIG91dCBvZiB0aGUgSUNVIGRhdGEgbGli
cmFyeSwgYnV0IGl0IGNhbiBiZSB1c2VkIHRvCisgKiBsb2FkIGRhdGEgb3V0IG9mIG90aGVyIHBs
YWNlcy4KKyAqCisgKiBTZWUgdGhlIFVzZXIgR3VpZGUgRGF0YSBNYW5hZ2VtZW50IGNoYXB0ZXIu
CisgKi8KKyAKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorLyoqCisgKiBDaGFyYWN0ZXIg
dXNlZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZyb20gdHJlZSBuYW1lcyAKKyAqIEBpbnRl
cm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX1NFUEFSQVRPUiAnLScKKworLyoqCisg
KiBTdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZyb20gdHJlZSBuYW1lcyAK
KyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX1NFUEFSQVRPUl9TVFJJ
TkcgIi0iCisKKy8qKgorICogQ2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgcGFydHMgb2YgZW50
cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX0VOVFJZ
X1NFUF9DSEFSICcvJworCisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhcnRzIG9m
IGVudHJ5IG5hbWVzCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisjZGVmaW5lIFVfVFJFRV9F
TlRSWV9TRVBfU1RSSU5HICIvIgorCisvKioKKyAqIEFsaWFzIGZvciBzdGFuZGFyZCBJQ1UgZGF0
YSAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9JQ1VEQVRBX0FMSUFTICJJ
Q1VEQVRBIgorCisjZW5kaWYgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisvKioKKyAqIFVE
YXRhSW5mbyBjb250YWlucyB0aGUgcHJvcGVydGllcyBhYm91dCB0aGUgcmVxdWVzdGVkIGRhdGEu
CisgKiBUaGlzIGlzIG1ldGEgZGF0YS4KKyAqCisgKiA8cD5UaGlzIHN0cnVjdHVyZSBtYXkgZ3Jv
dyBpbiB0aGUgZnV0dXJlLCBpbmRpY2F0ZWQgYnkgdGhlCisgKiA8Y29kZT5zaXplPC9jb2RlPiBm
aWVsZC48L3A+CisgKgorICogPHA+SUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQs
IGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFRoZSBVRGF0YUluZm8gc3RydWN0IGJlZ2lu
cyA0IGJ5dGVzIGFmdGVyIHRoZSBzdGFydCBvZiB0aGUgZGF0YSBpdGVtLAorICogc28gaXQgaXMg
NC1hbGlnbmVkLgorICoKKyAqIDxwPlRoZSBwbGF0Zm9ybSBkYXRhIHByb3BlcnR5IGZpZWxkcyBo
ZWxwIGRldGVybWluZSBpZiBhIGRhdGEKKyAqIGZpbGUgY2FuIGJlIGVmZmljaWVudGx5IHVzZWQg
b24gYSBnaXZlbiBtYWNoaW5lLgorICogVGhlIHBhcnRpY3VsYXIgZmllbGRzIGFyZSBvZiBpbXBv
cnRhbmNlIG9ubHkgaWYgdGhlIGRhdGEKKyAqIGlzIGFmZmVjdGVkIGJ5IHRoZSBwcm9wZXJ0aWVz
IC0gaWYgdGhlcmUgaXMgaW50ZWdlciBkYXRhCisgKiB3aXRoIHdvcmQgc2l6ZXMgPiAxIGJ5dGUs
IGNoYXIqIHRleHQsIG9yIFVDaGFyKiB0ZXh0LjwvcD4KKyAqCisgKiA8cD5UaGUgaW1wbGVtZW50
YXRpb24gZm9yIHRoZSA8Y29kZT51ZGF0YV9vcGVuW0Nob2ljZV0oKTwvY29kZT4KKyAqIGZ1bmN0
aW9ucyBtYXkgcmVqZWN0IGRhdGEgYmFzZWQgb24gdGhlIHZhbHVlIGluIDxjb2RlPmlzQmlnRW5k
aWFuPC9jb2RlPi4KKyAqIE5vIG90aGVyIGZpZWxkIGlzIHVzZWQgYnkgdGhlIDxjb2RlPnVkYXRh
PC9jb2RlPiBBUEkgaW1wbGVtZW50YXRpb24uPC9wPgorICoKKyAqIDxwPlRoZSA8Y29kZT5kYXRh
Rm9ybWF0PC9jb2RlPiBtYXkgYmUgdXNlZCB0byBpZGVudGlmeQorICogdGhlIGtpbmQgb2YgZGF0
YSwgZS5nLiBhIGNvbnZlcnRlciB0YWJsZS48L3A+CisgKgorICogPHA+VGhlIDxjb2RlPmZvcm1h
dFZlcnNpb248L2NvZGU+IGZpZWxkIHNob3VsZCBiZSB1c2VkIHRvCisgKiBtYWtlIHN1cmUgdGhh
dCB0aGUgZm9ybWF0IGNhbiBiZSBpbnRlcnByZXRlZC4KKyAqIEl0IG1heSBiZSBhIGdvb2QgaWRl
YSB0byBjaGVjayBvbmx5IGZvciB0aGUgb25lIG9yIHR3byBoaWdoZXN0CisgKiBvZiB0aGUgdmVy
c2lvbiBlbGVtZW50cyB0byBhbGxvdyB0aGUgZGF0YSBtZW1vcnkgdG8KKyAqIGdldCBtb3JlIG9y
IHNvbWV3aGF0IHJlYXJyYW5nZWQgY29udGVudHMsIGZvciBhcyBsb25nCisgKiBhcyB0aGUgdXNp
bmcgY29kZSBjYW4gc3RpbGwgaW50ZXJwcmV0IHRoZSBvbGRlciBjb250ZW50cy48L3A+CisgKgor
ICogPHA+VGhlIDxjb2RlPmRhdGFWZXJzaW9uPC9jb2RlPiBmaWVsZCBpcyBpbnRlbmRlZCB0byBi
ZSBhCisgKiBjb21tb24gcGxhY2UgdG8gc3RvcmUgdGhlIHNvdXJjZSB2ZXJzaW9uIG9mIHRoZSBk
YXRhOworICogZm9yIGRhdGEgZnJvbSB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgZGF0YWJhc2UsIHRo
aXMgY291bGQKKyAqIHJlZmxlY3QgdGhlIFVuaWNvZGUgdmVyc2lvbi48L3A+CisgKgorICogQHN0
YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICAvKiogc2l6ZW9mKFVEYXRh
SW5mbykKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWludDE2X3Qgc2l6ZTsKKwor
ICAgIC8qKiB1bnVzZWQsIHNldCB0byAwIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAg
IHVpbnQxNl90IHJlc2VydmVkV29yZDsKKworICAgIC8qIHBsYXRmb3JtIGRhdGEgcHJvcGVydGll
cyAqLworICAgIC8qKiAwIGZvciBsaXR0bGUtZW5kaWFuIG1hY2hpbmUsIDEgZm9yIGJpZy1lbmRp
YW4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWludDhfdCBpc0JpZ0VuZGlhbjsK
KworICAgIC8qKiBzZWUgVV9DSEFSU0VUX0ZBTUlMWSB2YWx1ZXMgaW4gdXR5cGVzLmggCisgICAg
ICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBjaGFyc2V0RmFtaWx5OworCisgICAg
LyoqIHNpemVvZihVQ2hhciksIG9uZSBvZiB7IDEsIDIsIDQgfSAKKyAgICAgKiAgQHN0YWJsZSBJ
Q1UgMi4wKi8KKyAgICB1aW50OF90IHNpemVvZlVDaGFyOworCisgICAgLyoqIHVudXNlZCwgc2V0
IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCByZXNlcnZlZEJ5
dGU7CisKKyAgICAvKiogZGF0YSBmb3JtYXQgaWRlbnRpZmllciAKKyAgICAgKiAgQHN0YWJsZSBJ
Q1UgMi4wKi8KKyAgICB1aW50OF90IGRhdGFGb3JtYXRbNF07CisKKyAgICAvKiogdmVyc2lvbnM6
IFswXSBtYWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBtaWNybyAKKyAgICAgKiAgQHN0YWJs
ZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGZvcm1hdFZlcnNpb25bNF07CisKKyAgICAvKiogdmVy
c2lvbnM6IFswXSBtYWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBtaWNybyAKKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGRhdGFWZXJzaW9uWzRdOworfSBVRGF0YUlu
Zm87CisKKy8qIEFQSSBmb3IgcmVhZGluZyBkYXRhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBGb3J3YXJkIGRlY2xhcmF0
aW9uIG9mIHRoZSBkYXRhIG1lbW9yeSB0eXBlLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5
cGVkZWYgc3RydWN0IFVEYXRhTWVtb3J5IFVEYXRhTWVtb3J5OworCisvKioKKyAqIENhbGxiYWNr
IGZ1bmN0aW9uIGZvciB1ZGF0YV9vcGVuQ2hvaWNlKCkuCisgKiBAcGFyYW0gY29udGV4dCBwYXJh
bWV0ZXIgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPi4KKyAqIEBw
YXJhbSB0eXBlIFRoZSB0eXBlIG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBpbnRvIDxjb2RlPnVkYXRh
X29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiAgICAgICAgICAgICBJdCBtYXkgYmUgPGNvZGU+TlVM
TDwvY29kZT4uCisgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgZGF0YSBhcyBwYXNzZWQg
aW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICogQHBhcmFtIHBJbmZvIEEg
cG9pbnRlciB0byB0aGUgPGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1Y3R1cmUKKyAqICAgICAg
ICAgICAgICBvZiBkYXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVkIGFuZCB3aWxsIGJlIHJldHVybmVk
CisgKiAgICAgICAgICAgICAgYnkgPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPiBpZiB0
aGlzIGZ1bmN0aW9uCisgKiAgICAgICAgICAgICAgcmV0dXJucyA8Y29kZT5UUlVFPC9jb2RlPi4K
KyAqIEByZXR1cm4gVFJVRSBpZiB0aGUgY3VycmVudCBkYXRhIG1lbW9yeSBpcyBhY2NlcHRhYmxl
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBVQm9vbCBVX0NBTExDT05WCitVRGF0
YU1lbW9yeUlzQWNjZXB0YWJsZSh2b2lkICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFVEYXRhSW5mbyAqcEluZm8pOworCisKKy8qKgorICogQ29udmVuaWVuY2Ug
ZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIHdvcmtzIHRoZSBzYW1lIGFzIDxjb2RlPnVkYXRh
X29wZW5DaG9pY2U8L2NvZGU+CisgKiBleGNlcHQgdGhhdCBhbnkgZGF0YSB0aGF0IG1hdGNoZXMg
dGhlIHR5cGUgYW5kIG5hbWUKKyAqIGlzIGFzc3VtZWQgdG8gYmUgYWNjZXB0YWJsZS4KKyAqIEBw
YXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0ZSBwYXRoIGFuZC9vciBhIGJhc2VuYW1lIGZv
ciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcgb2YgdGhlIGRhdGEgaW4gdGhlIGZpbGUgc3lz
dGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVMTDwvY29kZT4gZm9yIElDVSBkYXRhLgorICog
QHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgZGF0YSB0byBi
ZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVzb3VyY2UgYnVuZGxlcyBh
cmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAqICAgICAgICAgICAgIGNvbnZlcnNpb24gdGFi
bGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAgICAgICAgIFRoaXMgbWF5IGJlIDxjb2RlPk5V
TEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFtIG5hbWUgQSBzdHJpbmcgdGhhdCBzcGVjaWZp
ZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBBbiBJQ1UgVUVy
cm9yQ29kZSBwYXJhbWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICog
QHJldHVybiBBIHBvaW50ZXIgKGhhbmRsZSkgdG8gYSBkYXRhIG1lbW9yeSBvYmplY3QsIG9yIDxj
b2RlPk5VTEw8L2NvZGU+CisgKiAgICAgICAgIGlmIGFuIGVycm9yIG9jY3Vycy4gQ2FsbCA8Y29k
ZT51ZGF0YV9nZXRNZW1vcnkoKTwvY29kZT4KKyAqICAgICAgICAgdG8gZ2V0IGEgcG9pbnRlciB0
byB0aGUgYWN0dWFsIGRhdGEuCisgKgorICogQHNlZSB1ZGF0YV9vcGVuQ2hvaWNlCisgKiBAc3Rh
YmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgVURhdGFNZW1vcnkgKiBVX0VYUE9SVDIKK3VkYXRh
X29wZW4oY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFt
ZSwKKyAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogRGF0YSBs
b2FkaW5nIGZ1bmN0aW9uLgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGZpbmQgYW5kIGxv
YWQgZWZmaWNpZW50bHkgZGF0YSBmb3IKKyAqIElDVSBhbmQgYXBwbGljYXRpb25zIHVzaW5nIElD
VS4KKyAqIEl0IHByb3ZpZGVzIGFuIGFic3RyYWN0IGludGVyZmFjZSB0aGF0IGFsbG93cyB0byBz
cGVjaWZ5IGEgZGF0YQorICogdHlwZSBhbmQgbmFtZSB0byBmaW5kIGFuZCBsb2FkIHRoZSBkYXRh
LgorICoKKyAqIDxwPlRoZSBpbXBsZW1lbnRhdGlvbiBkZXBlbmRzIG9uIHBsYXRmb3JtIHByb3Bl
cnRpZXMgYW5kIHVzZXIgcHJlZmVyZW5jZXMKKyAqIGFuZCBtYXkgaW52b2x2ZSBsb2FkaW5nIHNo
YXJlZCBsaWJyYXJpZXMgKERMTHMpLCBtYXBwaW5nCisgKiBmaWxlcyBpbnRvIG1lbW9yeSwgb3Ig
Zm9wZW4oKS9mcmVhZCgpIGZpbGVzLgorICogSXQgbWF5IGFsc28gaW52b2x2ZSB1c2luZyBzdGF0
aWMgbWVtb3J5IG9yIGRhdGFiYXNlIHF1ZXJpZXMgZXRjLgorICogU2V2ZXJhbCBvciBhbGwgZGF0
YSBpdGVtcyBtYXkgYmUgY29tYmluZWQgaW50byBvbmUgZW50aXR5CisgKiAoRExMLCBtZW1vcnkt
bWFwcGFibGUgZmlsZSkuPC9wPgorICoKKyAqIDxwPlRoZSBkYXRhIGlzIGFsd2F5cyBwcmVjZWRl
ZCBieSBhIGhlYWRlciB0aGF0IGluY2x1ZGVzCisgKiBhIDxjb2RlPlVEYXRhSW5mbzwvY29kZT4g
c3RydWN0dXJlLgorICogVGhlIGNhbGxlcidzIDxjb2RlPmlzQWNjZXB0YWJsZSgpPC9jb2RlPiBm
dW5jdGlvbiBpcyBjYWxsZWQgdG8gbWFrZQorICogc3VyZSB0aGF0IHRoZSBkYXRhIGlzIHVzZWZ1
bC4gSXQgbWF5IGJlIGNhbGxlZCBzZXZlcmFsIHRpbWVzIGlmIGl0CisgKiByZWplY3RzIHRoZSBk
YXRhIGFuZCB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGxvY2F0aW9uIHdpdGggZGF0YQorICogbWF0
Y2hpbmcgdGhlIHR5cGUgYW5kIG5hbWUuPC9wPgorICoKKyAqIDxwPklmIDxjb2RlPnBhdGg9PU5V
TEw8L2NvZGU+LCB0aGVuIElDVSBkYXRhIGlzIGxvYWRlZC4KKyAqIE90aGVyd2lzZSwgaXQgaXMg
c2VwYXJhdGVkIGludG8gYSBiYXNlbmFtZSBhbmQgYSBiYXNlbmFtZS1sZXNzIGRpcmVjdG9yeSBz
dHJpbmcuCisgKiBUaGUgYmFzZW5hbWUgaXMgdXNlZCBhcyB0aGUgZGF0YSBwYWNrYWdlIG5hbWUs
IGFuZCB0aGUgZGlyZWN0b3J5IGlzCisgKiBsb2dpY2FsbHkgcHJlcGVuZGVkIHRvIHRoZSBJQ1Ug
ZGF0YSBkaXJlY3Rvcnkgc3RyaW5nLjwvcD4KKyAqCisgKiA8cD5Gb3IgZGV0YWlscyBhYm91dCBJ
Q1UgZGF0YSBsb2FkaW5nIHNlZSB0aGUgVXNlciBHdWlkZQorICogRGF0YSBNYW5hZ2VtZW50IGNo
YXB0ZXIuIChodHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9pY3VkYXRhLmh0bWwpPC9w
PgorICoKKyAqIEBwYXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0ZSBwYXRoIGFuZC9vciBh
IGJhc2VuYW1lIGZvciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcgb2YgdGhlIGRhdGEgaW4g
dGhlIGZpbGUgc3lzdGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVMTDwvY29kZT4gZm9yIElD
VSBkYXRhLgorICogQHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHR5cGUg
b2YgZGF0YSB0byBiZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVzb3Vy
Y2UgYnVuZGxlcyBhcmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAqICAgICAgICAgICAgIGNv
bnZlcnNpb24gdGFibGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAgICAgICAgIFRoaXMgbWF5
IGJlIDxjb2RlPk5VTEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFtIG5hbWUgQSBzdHJpbmcg
dGhhdCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBAcGFyYW0gaXNBY2NlcHRh
YmxlIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIHZlcmlmeSB0aGF0IGxvYWRlZCBkYXRhCisg
KiAgICAgICAgICAgICAgICAgICAgIGlzIHVzZWZ1bCBmb3IgdGhlIGNsaWVudCBjb2RlLiBJZiBp
dCByZXR1cm5zIEZBTFNFCisgKiAgICAgICAgICAgICAgICAgICAgIGZvciBhbGwgZGF0YSBpdGVt
cywgdGhlbiA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+CisgKiAgICAgICAgICAgICAg
ICAgICAgIHdpbGwgcmV0dXJuIHdpdGggYW4gZXJyb3IuCisgKiBAcGFyYW0gY29udGV4dCBBcmJp
dHJhcnkgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCBpbnRvIGlzQWNjZXB0YWJsZS4KKyAqIEBwYXJh
bSBwRXJyb3JDb2RlIEFuIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUg
PGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAoaGFuZGxlKSB0byBhIGRh
dGEgbWVtb3J5IG9iamVjdCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAqICAgICAgICAgaWYgYW4g
ZXJyb3Igb2NjdXJzLiBDYWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPgorICogICAg
ICAgICB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4KKyAqIEBzdGFibGUgSUNV
IDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRhdGFfb3BlbkNo
b2ljZShjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1l
LAorICAgICAgICAgICAgICAgICBVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSAqaXNBY2NlcHRhYmxl
LCB2b2lkICpjb250ZXh0LAorICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2Rl
KTsKKworLyoqCisgKiBDbG9zZSB0aGUgZGF0YSBtZW1vcnkuCisgKiBUaGlzIGZ1bmN0aW9uIG11
c3QgYmUgY2FsbGVkIHRvIGFsbG93IHRoZSBzeXN0ZW0gdG8KKyAqIHJlbGVhc2UgcmVzb3VyY2Vz
IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRhdGEgbWVtb3J5LgorICogQHBhcmFtIHBEYXRhIFRoZSBw
b2ludGVyIHRvIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1Vf
U1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9jbG9zZShVRGF0YU1lbW9yeSAqcERhdGEpOwor
CisjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisg
KiBcY2xhc3MgTG9jYWxVRGF0YU1lbW9yeVBvaW50ZXIKKyAqICJTbWFydCBwb2ludGVyIiBjbGFz
cywgY2xvc2VzIGEgVURhdGFNZW1vcnkgdmlhIHVkYXRhX2Nsb3NlKCkuCisgKiBGb3IgbW9zdCBt
ZXRob2RzIHNlZSB0aGUgTG9jYWxQb2ludGVyQmFzZSBiYXNlIGNsYXNzLgorICoKKyAqIEBzZWUg
TG9jYWxQb2ludGVyQmFzZQorICogQHNlZSBMb2NhbFBvaW50ZXIKKyAqIEBzdGFibGUgSUNVIDQu
NAorICovCitVX0RFRklORV9MT0NBTF9PUEVOX1BPSU5URVIoTG9jYWxVRGF0YU1lbW9yeVBvaW50
ZXIsIFVEYXRhTWVtb3J5LCB1ZGF0YV9jbG9zZSk7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5k
aWYKKworLyoqCisgKiBHZXQgdGhlIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhIGluc2lkZSB0
aGUgZGF0YSBtZW1vcnkuCisgKiBUaGUgZGF0YSBpcyByZWFkLW9ubHkuCisgKgorICogSUNVIGRh
dGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4K
KyAqCisgKiBAcGFyYW0gcERhdGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBtZW1vcnkgb2JqZWN0Cisg
KiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgY29uc3Qgdm9pZCAqIFVfRVhQT1JUMgor
dWRhdGFfZ2V0TWVtb3J5KFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKy8qKgorICogR2V0IHRoZSBp
bmZvcm1hdGlvbiBmcm9tIHRoZSBkYXRhIG1lbW9yeSBoZWFkZXIuCisgKiBUaGlzIGFsbG93cyB0
byBnZXQgYWNjZXNzIHRvIHRoZSBoZWFkZXIgY29udGFpbmluZworICogcGxhdGZvcm0gZGF0YSBw
cm9wZXJ0aWVzIGV0Yy4gd2hpY2ggaXMgbm90IHBhcnQgb2YKKyAqIHRoZSBkYXRhIGl0c2VsZiBh
bmQgY2FuIHRoZXJlZm9yZSBub3QgYmUgYWNjZXNzZWQKKyAqIHZpYSB0aGUgcG9pbnRlciB0aGF0
IDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPiByZXR1cm5zLgorICoKKyAqIEBwYXJhbSBw
RGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QKKyAqIEBwYXJhbSBwSW5mbyBw
b2ludGVyIHRvIGEgVURhdGFJbmZvIG9iamVjdDsKKyAqICAgICAgICAgICAgICBpdHMgPGNvZGU+
c2l6ZTwvY29kZT4gZmllbGQgbXVzdCBiZSBzZXQgY29ycmVjdGx5LAorICogICAgICAgICAgICAg
IHR5cGljYWxseSB0byA8Y29kZT5zaXplb2YoVURhdGFJbmZvKTwvY29kZT4uCisgKgorICogPGNv
ZGU+KnBJbmZvPC9jb2RlPiB3aWxsIGJlIGZpbGxlZCB3aXRoIHRoZSBVRGF0YUluZm8gc3RydWN0
dXJlCisgKiBpbiB0aGUgZGF0YSBtZW1vcnkgb2JqZWN0LiBJZiB0aGlzIHN0cnVjdHVyZSBpcyBz
bWFsbGVyIHRoYW4KKyAqIDxjb2RlPnBJbmZvLT5zaXplPC9jb2RlPiwgdGhlbiB0aGUgPGNvZGU+
c2l6ZTwvY29kZT4gd2lsbCBiZQorICogYWRqdXN0ZWQgYW5kIG9ubHkgcGFydCBvZiB0aGUgc3Ry
dWN0dXJlIHdpbGwgYmUgZmlsbGVkLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxF
IHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9nZXRJbmZvKFVEYXRhTWVtb3J5ICpwRGF0YSwgVURhdGFJ
bmZvICpwSW5mbyk7CisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgbm9ybWFs
IElDVSBkYXRhIGxvYWRpbmcgcHJvY2VzcyBhbmQKKyAqIGFsbG93cyB5b3UgdG8gZm9yY2UgSUNV
J3Mgc3lzdGVtIGRhdGEgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNpZmllZAorICogYXJlYSBp
biBtZW1vcnkuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQsIGFu
ZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9q
ZWN0Lm9yZy9pY3VkYXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlzIGRhdGEgaXMgdGhhdCBv
ZiB0aGUgaWN1IGNvbW1vbiBkYXRhIGZpbGUsIGFzIGlzCisgKiBnZW5lcmF0ZWQgYnkgdGhlIHBr
Z2RhdGEgdG9vbCB3aXRoIG1vZGU9Y29tbW9uIG9yIG1vZGU9ZGxsLgorICogWW91IGNhbiByZWFk
IGluIGEgd2hvbGUgY29tbW9uIG1vZGUgZmlsZSBhbmQgcGFzcyB0aGUgYWRkcmVzcyB0byB0aGUg
c3RhcnQgb2YgdGhlCisgKiBkYXRhLCBvciAod2l0aCB0aGUgYXBwcm9wcmlhdGUgbGluayBvcHRp
b25zKSBwYXNzIGluIHRoZSBwb2ludGVyIHRvCisgKiB0aGUgZGF0YSB0aGF0IGhhcyBiZWVuIGxv
YWRlZCBmcm9tIGEgZGxsIGJ5IHRoZSBvcGVyYXRpbmcgc3lzdGVtLAorICogYXMgc2hvd24gaW4g
dGhpcyBjb2RlOgorICoKKyAqICAgICAgIGV4dGVybiBjb25zdCBjaGFyIFVfSU1QT1JUIFVfSUNV
REFUQV9FTlRSWV9QT0lOVCBbXTsKKyAqICAgICAgICAvLyBVX0lDVURBVEFfRU5UUllfUE9JTlQg
aXMgc2FtZSBhcyBlbnRyeSBwb2ludCBzcGVjaWZpZWQgdG8gcGtnZGF0YSB0b29sCisgKiAgICAg
ICBVRXJyb3JDb2RlICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgKgorICogICAgICAgdWRhdGFf
c2V0Q29tbW9uRGF0YSgmVV9JQ1VEQVRBX0VOVFJZX1BPSU5ULCAmc3RhdHVzKTsKKyAqCisgKiBJ
dCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgZGVjbGFyYXRpb24gYmUgYXMgYWJvdmUuIFRoZSBlbnRy
eSBwb2ludAorICogbXVzdCBub3QgYmUgZGVjbGFyZWQgYXMgYW4gZXh0ZXJuIHZvaWQqLgorICoK
KyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQuNCwgaXQgaXMgcG9zc2libGUgdG8gc2V0IHNldmVyYWwg
ZGF0YSBwYWNrYWdlcywKKyAqIG9uZSBwZXIgY2FsbCB0byB0aGlzIGZ1bmN0aW9uLgorICogdWRh
dGFfb3BlbigpIHdpbGwgbG9vayBmb3IgZGF0YSBpbiB0aGUgbXVsdGlwbGUgZGF0YSBwYWNrYWdl
cyBpbiB0aGUgb3JkZXIKKyAqIGluIHdoaWNoIHRoZXkgd2VyZSBzZXQuCisgKiBUaGUgcG9zaXRp
b24gb2YgdGhlIGxpbmtlZC1pbiBvciBkZWZhdWx0LW5hbWUgSUNVIC5kYXRhIHBhY2thZ2UgaW4g
dGhlCisgKiBzZWFyY2ggbGlzdCBkZXBlbmRzIG9uIHdoZW4gdGhlIGZpcnN0IGRhdGEgaXRlbSBp
cyBsb2FkZWQgdGhhdCBpcyBub3QgY29udGFpbmVkCisgKiBpbiB0aGUgYWxyZWFkeSBleHBsaWNp
dGx5IHNldCBwYWNrYWdlcy4KKyAqIElmIGRhdGEgd2FzIGxvYWRlZCBpbXBsaWNpdGx5IGJlZm9y
ZSB0aGUgZmlyc3QgY2FsbCB0byB0aGlzIGZ1bmN0aW9uCisgKiAoZm9yIGV4YW1wbGUsIHZpYSBv
cGVuaW5nIGEgY29udmVydGVyLCBjb25zdHJ1Y3RpbmcgYSBVbmljb2RlU3RyaW5nCisgKiBmcm9t
IGRlZmF1bHQtY29kZXBhZ2UgZGF0YSwgdXNpbmcgZm9ybWF0dGluZyBvciBjb2xsYXRpb24gQVBJ
cywgZXRjLiksCisgKiB0aGVuIHRoZSBkZWZhdWx0IGRhdGEgd2lsbCBiZSBmaXJzdCBpbiB0aGUg
bGlzdC4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGhhcyBubyBlZmZlY3Qgb24gYXBwbGljYXRpb24g
KG5vbiBJQ1UpIGRhdGEuICBTZWUgdWRhdGFfc2V0QXBwRGF0YSgpCisgKiBmb3Igc2ltaWxhciBm
dW5jdGlvbmFsaXR5IGZvciBhcHBsaWNhdGlvbiBkYXRhLgorICoKKyAqIEBwYXJhbSBkYXRhIHBv
aW50ZXIgdG8gSUNVIGNvbW1vbiBkYXRhCisgKiBAcGFyYW0gZXJyIG91dGdvaW5nIGVycm9yIHN0
YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9VTlNVUFBPUlRFRF9FUlJPUjwv
Y29kZT4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgor
dWRhdGFfc2V0Q29tbW9uRGF0YShjb25zdCB2b2lkICpkYXRhLCBVRXJyb3JDb2RlICplcnIpOwor
CisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgbm9ybWFsIElDVSBkYXRhIGxv
YWRpbmcgcHJvY2VzcyBmb3IgYXBwbGljYXRpb24tc3BlY2lmaWMKKyAqIGRhdGEgYW5kIGFsbG93
cyB5b3UgdG8gZm9yY2UgdGhlIGl0IHRvIGNvbWUgb3V0IG9mIGEgdXNlci1zcGVjaWZpZWQKKyAq
IHBvaW50ZXIuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQsIGFu
ZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9q
ZWN0Lm9yZy9pY3VkYXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlzIGRhdGEgaXMgdGhhdCBv
ZiB0aGUgaWN1IGNvbW1vbiBkYXRhIGZpbGUsIGxpa2UgJ2ljdWR0MjZsLmRhdCcKKyAqIG9yIHRo
ZSBjb3JyZXNwb25kaW5nIHNoYXJlZCBsaWJyYXJ5IChETEwpIGZpbGUuCisgKiBUaGUgYXBwbGlj
YXRpb24gbXVzdCByZWFkIGluIG9yIG90aGVyd2lzZSBjb25zdHJ1Y3QgYW4gaW1hZ2Ugb2YgdGhl
IGRhdGEgYW5kIHRoZW4KKyAqIHBhc3MgdGhlIGFkZHJlc3Mgb2YgaXQgdG8gdGhpcyBmdW5jdGlv
bi4KKyAqCisgKgorICogV2FybmluZzogIHNldEFwcERhdGEgd2lsbCBzZXQgYSBVX1VTSU5HX0RF
RkFVTFRfV0FSTklORyBjb2RlIGlmCisgKiAgICAgICAgICAgZGF0YSB3aXRoIHRoZSBzcGVjaWZl
ZCBwYXRoIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBvcGVuZWQsIG9yCisgKiAgICAgICAgICAgaWYg
c2V0QXBwRGF0YSB3aXRoIHRoZSBzYW1lIHBhdGggaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQuCisg
KiAgICAgICAgICAgQW55IHN1Y2ggY2FsbHMgdG8gc2V0QXBwRGF0YSB3aWxsIGhhdmUgbm8gZWZm
ZWN0LgorICoKKyAqCisgKiBAcGFyYW0gcGFja2FnZU5hbWUgdGhlIHBhY2thZ2UgbmFtZSBieSB3
aGljaCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWZlcgorICogICAgICAgICAgICAgdG8gKG9wZW4p
IHRoaXMgZGF0YQorICogQHBhcmFtIGRhdGEgcG9pbnRlciB0byB0aGUgZGF0YQorICogQHBhcmFt
IGVyciBvdXRnb2luZyBlcnJvciBzdGF0dXMgPGNvZGU+VV9VU0lOR19ERUZBVUxUX1dBUk5JTkcs
IFVfVU5TVVBQT1JURURfRVJST1I8L2NvZGU+CisgKiBAc2VlIHVkYXRhX3NldENvbW1vbkRhdGEK
KyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWRhdGFf
c2V0QXBwRGF0YShjb25zdCBjaGFyICpwYWNrYWdlTmFtZSwgY29uc3Qgdm9pZCAqZGF0YSwgVUVy
cm9yQ29kZSAqZXJyKTsKKworLyoqCisgKiBQb3NzaWJsZSBzZXR0aW5ncyBmb3IgdWRhdGFfc2V0
RmlsZUFjY2VzcygpCisgKiBAc2VlIHVkYXRhX3NldEZpbGVBY2Nlc3MKKyAqIEBzdGFibGUgSUNV
IDMuNAorICovCit0eXBlZGVmIGVudW0gVURhdGFGaWxlQWNjZXNzIHsKKyAgICAvKiogSUNVIGxv
b2tzIGZvciBkYXRhIGluIHNpbmdsZSBmaWxlcyBmaXJzdCwgdGhlbiBpbiBwYWNrYWdlcy4gKGRl
ZmF1bHQpIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX0ZJTEVTX0ZJUlNULAorICAgIC8q
KiBBbiBhbGlhcyBmb3IgdGhlIGRlZmF1bHQgYWNjZXNzIG1vZGUuIEBzdGFibGUgSUNVIDMuNCAq
LworICAgIFVEQVRBX0RFRkFVTFRfQUNDRVNTID0gVURBVEFfRklMRVNfRklSU1QsCisgICAgLyoq
IElDVSBvbmx5IGxvYWRzIGRhdGEgZnJvbSBwYWNrYWdlcywgbm90IGZyb20gc2luZ2xlIGZpbGVz
LiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9PTkxZX1BBQ0tBR0VTLAorICAgIC8qKiBJ
Q1UgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzIGZpcnN0LCBhbmQgb25seSBmcm9tIHNpbmdsZSBm
aWxlcworICAgICAgICBpZiB0aGUgZGF0YSBjYW5ub3QgYmUgZm91bmQgaW4gYSBwYWNrYWdlLiBA
c3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9QQUNLQUdFU19GSVJTVCwKKyAgICAvKiogSUNV
IGRvZXMgbm90IGFjY2VzcyB0aGUgZmlsZSBzeXN0ZW0gZm9yIGRhdGEgbG9hZGluZy4gQHN0YWJs
ZSBJQ1UgMy40ICovCisgICAgVURBVEFfTk9fRklMRVMsCisgICAgLyoqIE51bWJlciBvZiByZWFs
IFVEYXRhRmlsZUFjY2VzcyB2YWx1ZXMuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX0ZJ
TEVfQUNDRVNTX0NPVU5UCit9IFVEYXRhRmlsZUFjY2VzczsKKworLyoqCisgKiBUaGlzIGZ1bmN0
aW9uIG1heSBiZSBjYWxsZWQgdG8gY29udHJvbCBob3cgSUNVIGxvYWRzIGRhdGEuIEl0IG11c3Qg
YmUgY2FsbGVkCisgKiBiZWZvcmUgYW55IElDVSBkYXRhIGlzIGxvYWRlZCwgaW5jbHVkaW5nIGFw
cGxpY2F0aW9uIGRhdGEgbG9hZGVkIHdpdGggCisgKiB1cmVzL1Jlc291cmNlQnVuZGxlIG9yIHVk
YXRhIEFQSXMuIFRoaXMgZnVuY3Rpb24gaXMgbm90IG11bHRpdGhyZWFkIHNhZmUuICAKKyAqIFRo
ZSByZXN1bHRzIG9mIGNhbGxpbmcgaXQgd2hpbGUgb3RoZXIgdGhyZWFkcyBhcmUgbG9hZGluZyBk
YXRhIGFyZSB1bmRlZmluZWQuCisgKiBAcGFyYW0gYWNjZXNzIFRoZSB0eXBlIG9mIGZpbGUgYWNj
ZXNzIHRvIGJlIHVzZWQKKyAqIEBwYXJhbSBzdGF0dXMgRXJyb3IgY29kZS4KKyAqIEBzZWUgVURh
dGFGaWxlQWNjZXNzCisgKiBAc3RhYmxlIElDVSAzLjQgCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9F
WFBPUlQyCit1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEYXRhRmlsZUFjY2VzcyBhY2Nlc3MsIFVFcnJv
ckNvZGUgKnN0YXR1cyk7CisKK1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9pY3UvdW5pY29kZS91bWlzYy5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91bWlz
Yy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ4NTQ1MWZjNzY3YzA1ODM1ZjZjMTVmNTY2ZjM1NjJlMmQ0YWY4MzQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmgKQEAgLTAs
MCArMSw2MCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAw
NiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBv
dGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFt
ZTogIHVtaXNjLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDgg
KG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0
MTUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBVTUlT
Q19ICisjZGVmaW5lIFVNSVNDX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8q
KgorICogXGZpbGUKKyAqIFxicmllZiAgQyBBUEk6bWlzYyBkZWZpbml0aW9ucyAKKyAqCisgKiAg
VGhpcyBmaWxlIGNvbnRhaW5zIG1pc2NlbGxhbmVvdXMgZGVmaW5pdGlvbnMgZm9yIHRoZSBDIEFQ
SXMuIAorICovCisKK1VfQ0RFQ0xfQkVHSU4KKworLyoqIEEgc3RydWN0IHJlcHJlc2VudGluZyBh
IHJhbmdlIG9mIHRleHQgY29udGFpbmluZyBhIHNwZWNpZmljIGZpZWxkIAorICogIEBzdGFibGUg
SUNVIDIuMAorICovCit0eXBlZGVmIHN0cnVjdCBVRmllbGRQb3NpdGlvbiB7CisgIC8qKgorICAg
KiBUaGUgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBmaWVs
ZDsKKyAgLyoqCisgICAqIFRoZSBzdGFydCBvZiB0aGUgdGV4dCByYW5nZSBjb250YWluaW5nIGZp
ZWxkIAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgYmVnaW5JbmRleDsK
KyAgLyoqIAorICAgKiBUaGUgbGltaXQgb2YgdGhlIHRleHQgcmFuZ2UgY29udGFpbmluZyBmaWVs
ZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90IGVuZEluZGV4OworfSBV
RmllbGRQb3NpdGlvbjsKKworI2lmICFVQ09ORklHX05PX1NFUlZJQ0UKKy8qKgorICogT3BhcXVl
IHR5cGUgcmV0dXJuZWQgYnkgcmVnaXN0ZXJJbnN0YW5jZSwgcmVnaXN0ZXJGYWN0b3J5IGFuZCB1
bnJlZ2lzdGVyIGZvciBzZXJ2aWNlIHJlZ2lzdHJhdGlvbi4KKyAqIEBzdGFibGUgSUNVIDIuNgor
ICovCit0eXBlZGVmIGNvbnN0IHZvaWQqIFVSZWdpc3RyeUtleTsKKyNlbmRpZgorCitVX0NERUNM
X0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMDk5N2Q5ZWFjNDc5NTgxZmYx
ZmQ0NzY5Y2NjNGI1NDY2MmVmZDcxNC4uYWMwYTExMDNlNzUwYTFkMjUzY2NhYzQ1YmRkOGY0M2U0
ZjhkZDBjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTI3Miw2ICsyNzIsNDMgQEAgaWYgKE5P
VCBVU0VfU1lTVEVNX01BTExPQykKICAgICBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTIGJtYWxs
b2MpCiBlbmRpZiAoKQogCitzZXQoV1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVMKKyAgICB0ZXh0
L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorICAgIHRleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dAorICAgIHRleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0CisgICAgdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQKKyAgICB0
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKKyAgICB0
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKKyAg
ICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50
eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENK
Sy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKSy50eHQKKykKKworbWFjcm8oR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMgX2lucHV0IF9v
dXRwdXQpCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgJHtfb3V0cHV0
fQorICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQorICAgICAgICBERVBFTkRTICR7Q01B
S0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKKyAgICAgICAgQ09N
TUFORCBjYXQgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAke19pbnB1dH0gJHtDTUFLRV9DVVJSRU5UX1NP
VVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4
dCB8IHVuaWZkZWYgLVVBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQgLVVIQVZFX0VYVFJBX0lDVV9O
QU1FRF9TRVRTIHwgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZfRElSfS93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSA+ICR7X291dHB1dH0KKyAg
ICAgICAgVkVSQkFUSU0pCisgICAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMgJHtfb3V0cHV0fSkK
KyAgICBBRERfU09VUkNFX0RFUEVOREVOQ0lFUygke19pbnB1dH0gJHtfb3V0cHV0fSkKK2VuZG1h
Y3JvKCkKKworZm9yZWFjaCAoX2ZpbGUgJHtXVEZfQlJFQUtJTkdfUlVMRVNfU09VUkNFU30pCisg
ICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfbmFtZSAke19maWxlfSBOQU1FX1dFKQorICAgIEdF
TkVSQVRFX0JSRUFLSU5HX1JVTEVTKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8ke19maWxl
fSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzLyR7X25hbWV9LmNwcCkK
K2VuZGZvcmVhY2ggKCkKKworYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklW
RURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAKKyAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQorICAgIERFUEVORFMgJHtDTUFL
RV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMudHh0CisgICAgQ09NTUFORCB1bmlmZGVmIC1VQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUIC1VSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyAke0NNQUtFX0NVUlJFTlRfU09VUkNF
X0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQg
fCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dURl9ESVJ9L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
R2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ID4gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJ
Un0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgVkVS
QkFUSU0pCitsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XVEZfRElS
fS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHApCitBRERfU09V
UkNFX0RFUEVOREVOQ0lFUygke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2lu
Z1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgJHtERVJJVkVEX1NPVVJDRVNf
V1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwKQor
CiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNw
cAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRkNjhiZWE4MGM4
ZjJjNzNhMWUwNWZlMWY5YmJhN2VjZDQ1NjNlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTAsMCArMSw4MSBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworQlJFQUtJTkdfUlVMRVNfRklMRVMgPSBcCisgICAg
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuYnJrIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmJyayBcCisgICAgQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmJyaworCitCUkVBS0lOR19S
VUxFU19ERUZJTklUSU9OUyA9IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NENKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
Sy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pL
LmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25D
SksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxO
b25DSksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3RDSksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksuY3BwCisKK2lmZXEgKCQoc2hlbGwgJChDQykgLXN0ZD1nbnUrKzExIC14IGMrKyAt
RSAtUCAtZE0gJChTREtfRkxBR1MpICQoRlJBTUVXT1JLX0ZMQUdTKSAkKEhFQURFUl9GTEFHUykg
LUkgJChXVEYpIC1pbmNsdWRlICIkKFdURikvd3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8IGdy
ZXAgJyBXVEZfUExBVEZPUk1fSU9TICcgfCBjdXQgLWQnICcgLWYzKSwgMSkKKyAgICBXVEZfUExB
VEZPUk1fSU9TID0gMQorZWxzZQorICAgIFdURl9QTEFURk9STV9JT1MgPSAwCitlbmRpZgorCitp
ZmVxICgkKFdURl9QTEFURk9STV9JT1MpLCAxKQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9G
T1JfQ1VSU09SX01PVkVNRU5UID0gMAorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAwCitl
bHNlCisJQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQgPSAkKEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVCkKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMQor
ZW5kaWYKKworREVQRU5ERU5DSUVTID0gJChCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUykKKwor
aWZlcSAoJChPUyksTUFDT1MpCitERVBFTkRFTkNJRVMgKz0gJChCUkVBS0lOR19SVUxFU19GSUxF
UykKK2VuZGlmCisKK2FsbCA6ICQoREVQRU5ERU5DSUVTKQorCitCcmVha2luZ1J1bGVzLyUuYnJr
IDogQnJlYWtpbmdSdWxlcy8lLnBwCisJLi4vLi4vZ2VuYnJrIC1jIC1yICQ8IC1vICRACisKK0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCA6IEJyZWFraW5nUnVs
ZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwCisJcHl0aG9uICQoV1RGKS93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBjdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMgPCAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3IlLmNwcCA6IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwCisJcHl0aG9u
ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5n
cy5weSBsaW5lQnJlYWtJdGVyYXRvciQqUnVsZXMgPCAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMv
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1Jf
TU9WRU1FTlQpIC1ESEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05B
TUVEX1NFVFMpIC1vICRAICQ8CisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBw
IDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1
ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnR4
dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3Vl
LnR4dAorCS1jYXQgJD8gfCB1bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZF
X0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jNTkxMGJmYTVlMGU2MzNkYmQ3MjU5M2FjMWYzMzBhZjNlZTQzZGRk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKQEAgLTAsMCArMSwxNzQgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBydWxlIHNldCBpcyBiYXNlZCBv
biBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRwOi8vc291
cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3NvdXJj
ZS9kYXRhL2Jya2l0ci8+LgorIyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2lu
YWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0g
U3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOworIyAqIFJl
bW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHByZXBl
bmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQg
YSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdl
cyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHBy
ZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0
YWthcmEgdm9pY2VkIG1hcmtzLgorIyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0
b3Igc3ltYm9scy4KKworJENSICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENS
fV07CiskTEYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsKKyRDb250
cm9sID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9pY2VNYXJr
cyA9IFtcdUZGOUVcdUZGOUZdOyAjIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2Vk
IG1hcmtzCiskRXh0ZW5kICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSAk
Vm9pY2VNYXJrcyAtIFtcdTBFMzAgXHUwRTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07CiskU3Bh
Y2luZ01hcmsgPSBbW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRl
bmRdOworJEwgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsKKyRWICAg
ICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9IFtccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOworJExWICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IExWfV07CiskTFZUICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gTFZUfV07CiskSGluMCAgICA9IFtcdTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRl
ciBBLC4uLixIYQorJEhpblYgICAgPSBcdTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQor
JEhpbjEgICAgPSBbXHUwOTE1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhh
CiskQmVuMCAgICA9IFtcdTA5ODUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4uLixIYQor
JEJlblYgICAgPSBcdTA5Q0Q7ICMgQmVuZ2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAgPSBbXHUw
OTk1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9IFtcdTBB
MDUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0gXHUwQTRE
OyAjIEd1cm11a2hpIFNpZ24gVmlyYW1hCiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5XTsgIyBH
dXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5XTsgIyBH
dWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKKyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFyYXRpIFNp
Z24gVmlyYW1hCiskR3VqMSAgICA9IFtcdTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIg
S2EsLi4uLEhhCiskT3JpMCAgICA9IFtcdTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgQSwu
Li4sSGEKKyRPcmlWICAgID0gXHUwQjREOyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3JpMSAgICA9
IFtcdTBCMTUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAgICA9IFtc
dTBDMDUtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9IFx1MEM0
RDsgIyBUZWx1Z3UgU2lnbiBWaXJhbWEKKyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzldOyAjIFRl
bHVndSBMZXR0ZXIgS2EsLi4uLEhhCiskS2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsgIyBLYW5u
YWRhIExldHRlciBBLC4uLixIYQorJEthblYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBTaWduIFZp
cmFtYQorJEthbjEgICAgPSBbXHUwQzk1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4s
SGEKKyRNYWwwICAgID0gW1x1MEQwNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4s
SGEgCiskTWFsViAgICA9IFx1MEQ0RDsgIyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRNYWwxICAg
ID0gW1x1MEQxNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRSSSAgICAg
ID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycwor
JFpXSiAgICAgPSBcdTIwMEQ7ICMgWmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9IFtcdUZF
MEZdOyAjIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgorCisjaWYgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5
IFx1Mjc2NCBcVTAwMDFGMzA4IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAw
MUYzQ0MgXFUwMDAxRjNGMyBcVTAwMDFGNDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFG
NDZFLVxVMDAwMUY0NkYgXFUwMDAxRjQ3MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4
MS1cVTAwMDFGNDgyIFxVMDAwMUY0ODYtXFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUg
XFUwMDAxRjVFOCBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxV
MDAwMUY2NEUgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjZdOyAjIEVtb2ppIHRoYXQg
cGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFE
IFx1MjZGOSBcdTI3MEEtXHUyNzBEIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxV
MDAwMUYzQ0EgXFUwMDAxRjNDQiBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAw
MDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAx
RjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0
QUEgXFUwMDAxRjU3NSBcVTAwMDFGNTkwIFxVMDAwMUY1OTUgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1
LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1c
VTAwMDFGNkI2IFxVMDAwMUY2QzAgXFUwMDAxRjkxOF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6
cGF0cmljayBtb2RpZmllcnMKKworI2Vsc2UKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNzY0
IFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDhCXTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lw
YXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI3MEEt
XHUyNzBDIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcgXFUwMDAx
RjNDQSBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0
NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgx
LVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU5NiBc
VTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUw
MDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBh
dHJpY2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUw
MDAxRjNGRl07ICMgRml0enBhdHJpY2sgbW9kaWZpZXJzCishIWNoYWluOworCisjaWYgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIVJJTm9DaGFpbjsKKworI2VuZGlmCisKKyEhZm9y
d2FyZDsKKyRDUiAkTEY7CiskTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8ICRWKSAo
JFYgfCAkVCk7CisoJExWVCB8ICRUKSAkVDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAorCisgICAgJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsKKyAgICAkUkkgJFJJICRFeHRlbmQqOwor
ICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZd
ICRTcGFjaW5nTWFyazsKKworI2Vsc2UKKworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVu
ZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKyAgICAkUkkgJFJJIC8g
JFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMCAkSGluViAkSGluMTsgIyBEZXZh
bmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKKyRCZW4wICRCZW5WICRCZW4xOyAjIEJlbmdhbGkgVmly
YW1hIChmb3J3YXJkKQorJFBhbjAgJFBhblYgJFBhbjE7ICMgR3VybXVraGkgVmlyYW1hIChmb3J3
YXJkKQorJEd1ajAgJEd1alYgJEd1ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQorJE9y
aTAgJE9yaVYgJE9yaTE7ICMgT3JpeWEgVmlyYW1hIChmb3J3YXJkKQorJFRlbDAgJFRlbFYgJFRl
bDE7ICMgVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKKyRLYW4wICRLYW5WICRLYW4xOyAjIEthbm5h
ZGEgVmlyYW1hIChmb3J3YXJkKQorJE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFsYXlhbGFtIFZpcmFt
YSAoZm9yd2FyZCkKKyRaV0ogJEVtb2ppRm9yU2VxczsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpX
SiBzZXF1ZW5jZXMKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyAjIERvbnQg
YnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2Vs
ZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorISFyZXZlcnNlOworJExGICRDUjsKKygk
TCB8ICRWIHwgJExWIHwgJExWVCkgJEw7CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRUICgkTFZU
IHwgJFQpOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRXh0ZW5kKiAk
UkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRF
eHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250
cm9sICRDUiAkTEZdOworCisjZWxzZQorCisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENS
ICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFJJICRS
SSAvICRSSSAkUkk7CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4xICRIaW5WICRIaW4w
OyAjIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKKyRCZW4xICRCZW5WICRCZW4wOyAjIEJl
bmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKKyRQYW4xICRQYW5WICRQYW4wOyAjIEd1cm11a2hpIFZp
cmFtYSAoYmFja3dhcmQpCiskR3VqMSAkR3VqViAkR3VqMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJh
Y2t3YXJkKQorJE9yaTEgJE9yaVYgJE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkK
KyRUZWwxICRUZWxWICRUZWwwOyAjIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQorJEthbjEgJEth
blYgJEthbjA7ICMgS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQorJE1hbDEgJE1hbFYgJE1hbDA7
ICMgTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCiskRW1vamlGb3JTZXFzICRaV0o7ICMgRG9u
dCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVt
b2ppRm9yTW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5
IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKworI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgISFzYWZlX3JldmVyc2U7CisgICAgJFJJ
ICRSSSs7CisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAh
IXNhZmVfZm9yd2FyZDsKKyAgICAkUkkgJFJJKzsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlW
YXIgJEVtb2ppTW9kc10rOworCisjZWxzZQorCisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsg
JEVtb2ppRm9yTW9kczsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10r
OworICAgICEhc2FmZV9yZXZlcnNlOworICAgICEhc2FmZV9mb3J3YXJkOworCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFr
aW5nUnVsZVN0cmluZ3MucHkgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2Vu
ZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NTgxNWVjYjQwYzMwZTli
NTNhMWNlOTNjZjIxNzE2M2M1NTQ3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CkBAIC0w
LDAgKzEsOTYgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5cworaW1wb3J0IHJlCisKK2hlYWRlciA9ICIi
Ii8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLyIiIgorCisKK2RlZiBtYWluKGFyZ3Y9Tm9uZSk6CisgICAgaWYgbm90IGFyZ3Y6
CisgICAgICAgIGFyZ3YgPSBzeXMuYXJndgorICAgIHN5bWJvbE5hbWUgPSBhcmd2WzFdCisKKyAg
ICBwcmludChoZWFkZXIpCisgICAgcHJpbnQoIiIpCisgICAgcHJpbnQoIi8vIERPIE5PVCBFRElU
IFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIHNjcmlwdCIp
CisgICAgcHJpbnQoIi8vIFdURi93dGYvdGV4dC9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3Mu
cHkiKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCIjaW5jbHVkZSBcImNvbmZpZy5oXCIiKQor
ICAgIHByaW50KCIjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+IikKKyAgICBwcmludCgiIikK
KyAgICBwcmludCgibmFtZXNwYWNlIFdURiB7IikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgi
Y29uc3QgY2hhciogIiArIHN5bWJvbE5hbWUgKyAiID0gIikKKworICAgIGZvciBsIGluIHN5cy5z
dGRpbjoKKyAgICAgICAgbGluZSA9IGwucnN0cmlwKCkKKyAgICAgICAgaWYgcmUubWF0Y2goIl5c
cyokIiwgbGluZSk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsaWYgbGluZS5zdGFydHN3
aXRoKCIjICIpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgor
ICAgICAgICAgICAgcGFzcworICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyIpOgorICAg
ICAgICAgICAgcHJpbnQobGluZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1hdGNoID0g
cmUubWF0Y2goIl4oLiopOyggIyAuKik/JCIsIGxpbmUpCisgICAgICAgICAgICBpZiBtYXRjaDoK
KyAgICAgICAgICAgICAgICByZXN1bHQgPSAiXCIiICsgbWF0Y2guZ3JvdXAoMSkucmVwbGFjZSgi
XFwiLCAiXFxcXCIpICsgIjtcIiIKKyAgICAgICAgICAgICAgICBpZiBtYXRjaC5ncm91cCgyKToK
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIpWzM6
XQorICAgICAgICAgICAgICAgIHByaW50KHJlc3VsdCkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAgIHByaW50KCJ9IikKKwor
aWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvckVwaWxvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTg1ZDNjMWE2ZWUyMTc2
MmY2NGNhZDI5ZjdhY2VmNGIyOGEzZWFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0w
LDAgKzEsMzcwIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQUkg
PSBbOkxpbmVCcmVhayA9IEFtYmlndW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJl
dGljOl07CiskQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07Cisk
QkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBN
YW5kYXRvcnlfQnJlYWs6XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENC
ID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9
IENsb3NlX1B1bmN0dWF0aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJr
Ol07CiskQ1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxp
bmVCcmVhayA9IENhcnJpYWdlX1JldHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFt
YXRpb246XSAtICRFWF9TVUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBI
QVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJl
d19MZXR0ZXI6XTsKKworI2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6
XV07CisKKyNlbmRpZgorCiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpM
aW5lQnJlYWsgPSBIMjpdOworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpM
aW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElO
ID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGlu
ZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9
IEpMOl07CiskSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpU
Ol07CiskTEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsg
PSBOZXh0X0xpbmU6XTsKKyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENK
XSAkTlNfQUREXSAtICROU19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07Cisk
T1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVh
ayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQ
cmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlv
bjpdOworJFJJID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9
IENvbXBsZXhfQ29udGV4dDpdOworJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRT
UCA9IFs6TGluZUJyZWFrID0gU3BhY2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3lt
Ym9sczpdOworJFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5l
QnJlYWsgPSBVbmtub3duOl07CiskWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0og
PSBcdTIwMEQ7CiskRW1vamlWYXIgPSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0
IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBc
VTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUw
MDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAw
MUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFG
NUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0
RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNp
cGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5
IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjND
QSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAg
XFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxV
MDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAw
MDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAx
RjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2
QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNr
IG1vZGlmaWVycworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAx
RjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFE
IFx1MjcwQS1cdTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjND
NyBcVTAwMDFGM0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAg
XFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxV
MDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAw
MDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAx
RjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFr
ZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAx
RjNGQi1cVTAwMDFGM0ZGXTsKKyRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0Nv
bnRleHQ6XTsKKyRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07CiskQUxjbSA9ICRBTFBs
dXMgJENNKjsKKyRCQWNtID0gJEJBICRDTSo7CiskQkJjbSA9ICRCQiAkQ00qOworJEIyY20gPSAk
QjIgJENNKjsKKyRDTGNtID0gJENMICRDTSo7CiskQ1BjbSA9ICRDUCAkQ00qOworJEVYY20gPSAk
RVggJENNKjsKKyRHTGNtID0gJEdMICRDTSo7CiskSExjbSA9ICRITCAkQ00qOworJEhZY20gPSAk
SFkgJENNKjsKKyRIMmNtID0gJEgyICRDTSo7CiskSDNjbSA9ICRIMyAkQ00qOworJElEY20gPSAk
SUQgJENNKjsKKyRJTmNtID0gJElOICRDTSo7CiskSVNjbSA9ICRJUyAkQ00qOworJEpMY20gPSAk
SkwgJENNKjsKKyRKVmNtID0gJEpWICRDTSo7CiskSlRjbSA9ICRKVCAkQ00qOworJE5TY20gPSAk
TlMgJENNKjsKKyROVWNtID0gJE5VICRDTSo7CiskT1BjbSA9ICRPUCAkQ00qOworJFBPY20gPSAk
UE8gJENNKjsKKyRQUmNtID0gJFBSICRDTSo7CiskUVVjbSA9ICRRVSAkQ00qOworJFJJY20gPSAk
UkkgJENNKjsKKyRTWWNtID0gJFNZICRDTSo7CiskV0pjbSA9ICRXSiAkQ00qOworCishIWZvcndh
cmQ7CiskQ0FOX0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJENBTlRfQ00g
PSBbJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRBTF9GT0xMT1dfTk9DTSA9IFskQksg
JENSICRMRiAkTkwgJFpXICRTUF07CiskQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAk
SVMgJFNZICRXSiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOworJEFM
X0ZPTExPVyA9IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07CiskTEI0QnJlYWtzID0g
WyRCSyAkQ1IgJExGICROTF07CiskTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOwor
JExCOEJyZWFrcyA9IFskTEI0QnJlYWtzICRaV107CiskTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9u
QnJlYWtzXSAtIFskWlddXTsKKyRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQ
XV07CiskTEIxOEJyZWFrcyA9IFskTEI4QnJlYWtzICRTUF07CiskTEIyME5vbkJyZWFrcyA9IFsk
TEIxOE5vbkJyZWFrcyAtICRDQl07CiskQUxQbHVzICRDTSs7CiskQkEgJENNKzsKKyRCQiAkQ00r
OworJEIyICRDTSs7CiskQ0wgJENNKzsKKyRDUCAkQ00rOworJEVYICRDTSs7CiskR0wgJENNKzsK
KyRITCAkQ00rOworJEhZICRDTSs7CiskSDIgJENNKzsKKyRIMyAkQ00rOworJElEICRDTSs7Cisk
SU4gJENNKzsKKyRJUyAkQ00rOworJEpMICRDTSs7CiskSlYgJENNKzsKKyRKVCAkQ00rOworJE5T
ICRDTSs7CiskTlUgJENNKzsKKyRPUCAkQ00rOworJFBPICRDTSs7CiskUFIgJENNKzsKKyRRVSAk
Q00rOworJFJJICRDTSs7CiskU1kgJENNKzsKKyRXSiAkQ00rOworJENSICRMRiB7MTAwfTsKKyRM
QjROb25CcmVha3M/ICRMQjRCcmVha3MgezEwMH07CiskQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7
MTAwfTsKKyRDTSsgJExCNEJyZWFrcyB7MTAwfTsKKyRMQjROb25CcmVha3MgWyRTUCAkWlddOwor
JENBTl9DTSAkQ00qIFskU1AgJFpXXTsKKyRDTSsgWyRTUCAkWlddOworJEVtb2ppRm9yU2VxcyAk
RW1vamlWYXI/ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsKKyRDQU5fQ00gJENNKzsK
KyRDTSs7CiskQ0FOX0NNICRDTSogJFdKY207CiskTEI4Tm9uQnJlYWtzICRXSmNtOworJENNKyAk
V0pjbTsKKyRXSmNtICRDQU5UX0NNOworJFdKY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTl9D
TSAkQ00qOworJEdMY20gJENBTlRfQ007CitbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZ
XV0gJENNKiAkR0xjbTsKKyRDTSsgR0xjbTsKKyRMQjhOb25CcmVha3MgJENMOworJENBTl9DTSAk
Q00qICRDTDsKKyRDTSsgJENMOworJExCOE5vbkJyZWFrcyAkQ1A7CiskQ0FOX0NNICRDTSogJENQ
OworJENNKyAkQ1A7CiskTEI4Tm9uQnJlYWtzICRFWDsKKyRDQU5fQ00gJENNKiAkRVg7CiskQ00r
ICRFWDsKKyRMQjhOb25CcmVha3MgJElTOworJENBTl9DTSAkQ00qICRJUzsKKyRDTSsgJElTOwor
JExCOE5vbkJyZWFrcyAkU1k7CiskQ0FOX0NNICRDTSogJFNZOworJENNKyAkU1k7CiskT1BjbSAk
U1AqICRDQU5fQ00gJENNKjsKKyRPUGNtICRTUCogJENBTlRfQ007CiskT1BjbSAkU1ArICRDTSsg
JEFMX0ZPTExPVz87CiskUVVjbSAkU1AqICRPUGNtOworKCRDTGNtIHwgJENQY20pICRTUCogJE5T
Y207CiskQjJjbSAkU1AqICRCMmNtOworJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsKKyRDTSsg
JFFVY207CiskUVVjbSAuPzsKKyRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7CiskTEIyME5vbkJy
ZWFrcyAkQ00qICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAKKyRCQmNtIFteJENCXTsKKyRCQmNt
ICRMQjIwTm9uQnJlYWtzICRDTSo7CiskSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsKKyRT
WWNtICRITGNtOworKCRBTGNtIHwgJEhMY20pICRJTmNtOworJENNKyAkSU5jbTsKKyRFWGNtICRJ
TmNtOworJElEY20gJElOY207CiskSU5jbSAkSU5jbTsKKyROVWNtICRJTmNtOworJElEY20gJFBP
Y207CiskQUxjbSAkTlVjbTsKKyRITGNtICROVWNtOworJENNKyAkTlVjbTsKKyROVWNtICRBTGNt
OworJE5VY20gJEhMY207CiskUFJjbSAkSURjbTsKKyRQUmNtICgkQUxjbSB8ICRITGNtKTsKKyRQ
T2NtICgkQUxjbSB8ICRITGNtKTsKKygkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAk
TlVjbSAoJE5VY20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAk
UE9jbSk/OworJEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkSlZjbSB8
ICRIMmNtKSAoJEpWY20gfCAkSlRjbSk7CisoJEpUY20gfCAkSDNjbSkgJEpUY207CisoJEpMY20g
fCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207CisoJEpMY20gfCAkSlZjbSB8
ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJFBPY207CiskUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRK
VGNtIHwgJEgyY20gfCAkSDNjbSk7CisoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOwor
JENNKyAoJEFMY20gfCAkSExjbSk7CiskSVNjbSAoJEFMY20gfCAkSExjbSk7CisoJEFMY20gfCAk
SExjbSB8ICROVWNtKSAkT1BjbTsKKyRDTSsgJE9QY207CiskQ1BjbSAoJEFMY20gfCAkSExjbSB8
ICROVWNtKTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJY20gJFJJ
Y207CisKKyNlbmRpZgorCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsKKwor
ISFyZXZlcnNlOworJENNKyAkQUxQbHVzOworJENNKyAkQkE7CiskQ00rICRCQjsKKyRDTSsgJEIy
OworJENNKyAkQ0w7CiskQ00rICRDUDsKKyRDTSsgJEVYOworJENNKyAkR0w7CiskQ00rICRITDsK
KyRDTSsgJEhZOworJENNKyAkSDI7CiskQ00rICRIMzsKKyRDTSsgJElEOworJENNKyAkSU47Cisk
Q00rICRJUzsKKyRDTSsgJEpMOworJENNKyAkSlY7CiskQ00rICRKVDsKKyRDTSsgJE5TOworJENN
KyAkTlU7CiskQ00rICRPUDsKKyRDTSsgJFBPOworJENNKyAkUFI7CiskQ00rICRRVTsKKworI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKyAkUkk7CisKKyNlbmRpZgorCisk
Q00rICRTWTsKKyRDTSsgJFdKOworJENNKzsKKyRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAk
TEYgJE5MICRaVyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00g
JFNQXSB8IFskQUwge2VvZn1dKSk7CitbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcg
JFNQIHtlb2Z9XTsKKyRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENNXTsKKyRMQjRCcmVha3Mg
JENNKyAkQ0FOX0NNOworJExGICRDUjsKK1skU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOwor
WyRTUCAkWlddICRDTSsgJENBTl9DTTsKKyRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAk
RW1vamlWYXI/ICRFbW9qaUZvclNlcXM7CiskQ00rICRDQU5fQ007CiskQ00qICRXSiAkQ00qICRD
QU5fQ007CiskQ00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOworJENBTlRfQ00gJENNKiAkV0o7
CiskQ00qICRDQU5fQ00gJENNKiAkV0o7CiskQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVsk
Q00gJFNQICRCQSAkSFldXTsKKyRDQU5UX0NNICRDTSogJEdMOworJENNKiAkQ0FOX0NNICRDTSog
JEdMOworJENMICRDTSsgJENBTl9DTTsKKyRDUCAkQ00rICRDQU5fQ007CiskRVggJENNKyAkQ0FO
X0NNOworJElTICRDTSsgJENBTl9DTTsKKyRTWSAkQ00rICRDQU5fQ007CiskQ0wgWyRMQjhOb25C
cmVha3MtJENNXTsKKyRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOworJEVYIFskTEI4Tm9uQnJlYWtz
LSRDTV07CiskSVMgWyRMQjhOb25CcmVha3MtJENNXTsKKyRTWSBbJExCOE5vbkJyZWFrcy0kQ01d
OworWyRDTCAkQ1AgJEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgCiskQ00qICRDQU5f
Q00gJFNQKiAkQ00qICRPUDsKKyRDQU5UX0NNICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XPyAk
Q00rICRTUCAkU1AqICRDTSogJE9QOworJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRP
UDsKKyRDTSogJEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskU1kgJENNICRTUCsg
JE9QOworJENNKiAkT1AgJFNQKiAkQ00qICRRVTsKKyRDTSogJE5TICRTUCogJENNKiAoJENMIHwg
JENQKTsKKyRDTSogJEIyICRTUCogJENNKiAkQjI7CiskQ00qICRRVSAkQ00qICRDQU5fQ007Cisk
Q00qICRRVSAkTEIxOE5vbkJyZWFrczsKKyRDTSogJENBTl9DTSAkQ00qICRRVTsKKyRDQU5UX0NN
ICRDTSogJFFVOworJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0k
Q01dOworJENNKiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICRC
QjsKK1teJENCXSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworJENNKiAkSEwgJENNKiAkU1k7
CiskQ00qICRJTiAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogJElOICRDTSogJEVYOworJENN
KiAkSU4gJENNKiAkSUQ7CiskQ00qICRJTiAkQ00qICRJTjsKKyRDTSogJElOICRDTSogJE5VOwor
JENNKiAkUE8gJENNKiAkSUQ7CiskQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSog
KCRBTFBsdXMgfCAkSEwpICRDTSogJE5VOworJENNKiAkSUQgJENNKiAkUFI7CiskQ00qICgkQUxQ
bHVzIHwgJEhMKSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOworKCRD
TSogKCRQUiB8ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAk
U1kpKSogJENNKiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/Owor
JENNKiAoJEgzIHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsKKyRDTSogKCRKVCB8ICRKVikg
JENNKiAoJEgyIHwgJEpWKTsKKyRDTSogJEpUICRDTSogKCRIMyB8ICRKVCk7CiskQ00qICRJTiAk
Q00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAkUE8gJENNKiAoJEgzIHwg
JEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsKKyRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRK
TCkgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsK
KyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJElTOworJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8
ICRITCB8ICROVSk7CiskQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsKKworI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKiAkUkkgJENNKiAkUkk7CisKKyNl
bmRpZgorCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsKKworISFzYWZlX2Zv
cndhcmQ7CitbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9u
YXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07
CiskZGljdGlvbmFyeSAkZGljdGlvbmFyeTsKKyAgICAKKyEhc2FmZV9yZXZlcnNlOworJENNKyBb
XiRDTSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07CiskQ00rICRTUCAvIC47CiskU1ArICRDTSog
JE9QOworJFNQKyAkQ00qICRRVTsKKyRTUCsgJENNKiAoJENMIHwgJENQKTsKKyRTUCsgJENNKiAk
QjI7CiskQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00q
ICROVTsKKygkQ0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7CiskZGljdGlvbmFyeSAk
ZGljdGlvbmFyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjg4
MzU1NjMxZTQzNzkyZDNmM2M5MjMzMzcyNzY2YWNkZWMxYjQyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9n
dWUudHh0CkBAIC0wLDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyEhY2hhaW47CishIUxCQ01Ob0NoYWluOworISFsb29rQWhlYWRIYXJkQnJlYWs7CisK
KyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkQ0ogPSBbOkxpbmVCcmVhaz1D
b25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOl07CisKKyNlbHNlCisKKyAgICAkQ0ogPSBbXHUz
MDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhF
XHUzMDk1XHUzMDk2XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3XHUzMEE5XHUzMEMzXHUzMEUzXHUz
MEU1XHUzMEU3XHUzMEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYwXHUzMUYxXHUzMUYyXHUzMUYz
XHUzMUY0XHUzMUY1XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUzMUZBXHUzMUZCXHUzMUZDXHUz
MUZEXHUzMUZFXHUzMUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZBXHVGRjZCXHVGRjZDXHVGRjZE
XHVGRjZFXHVGRjZGXHVGRjcwXTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzBiY2U1ZWU5ZTY3OTY5YmM4NmIwODc1MDY2MTU0ZjdmYzM5MzE2MQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisj
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhf
U1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7Cisk
TlNfU1VCID0gW1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7Cisk
SURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTAzZTUxMWViOTg0ZmNh
YTY0ODU0NGFjY2VlZjZlNzgxNTg4MDFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQK
QEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
JEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9IFtcdTAwMjFcdTAwM0ZcdUZGMDFc
dUZGMUZdOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NV
QiA9IFtcdTAwM0FcdTAwM0JdOworJE5TX1NVQiA9IFtcdTIwM0NcdTIwNDdcdTIwNDhcdTIwNDlc
dTMwMDVcdTMwMUNcdTMwM0JcdTMwOURcdTMwOUVcdTMwQTBcdTMwRkJcdTMwRkRcdTMwRkVcdUZG
MUFcdUZGMUJcdUZGNjVdOworJFBPX1NVQiA9IFtcdTAwMjVcdTAwQTJcdTAwQjBcdTIwMzBcdTIw
MzJcdTIwMzNcdTIxMDNcdUZGMDVcdUZGRTBdOworJFBSX1NVQiA9IFtcdTAwMjRcdTAwQTNcdTAw
QTVcdTIwQUNcdTIxMTZcdUZGMDRcdUZGRTFcdUZGRTVdOworJElEX0FERCA9IFskQ0ogJEJBX1NV
QiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07CiskTlNf
QUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZmOGU4ZTFiNWI2NWJjNjM0M2I1MDEyZDhmOTlkODQ0YTQwNGFkZGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7
CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gJyc7
CiskTlNfU1VCID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBGRFx1MzBGRV07CiskUE9f
U1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJd
OworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0IGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ2ZWFiNjk0OTg2ZWY4MmQ5YWI5NWZiMTliNDM1MmI2NjJkMjYzZGIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vbkNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NV
QiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBP
X1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pd
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMw
YmNlNWVlOWU2Nzk2OWJjODZiMDg3NTA2NjE1NGY3ZmMzOTMxNjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbENKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOwor
JElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtc
dTMwMUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFsk
Q0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9u
Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDk0NTgyY2NlOWZkNGQwN2Q5
ODdlMzk5ZWM5NzUyMjczYjRkYmU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0
CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAn
JzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIg
PSAnJzsKKyRJRF9BREQgPSBbJENKXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5NDk4NmVmODJkOWFiOTVm
YjE5YjQzNTJiNjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CkBAIC0w
LDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
IyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9T
VUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJ
U19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsK
KyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5NDk4NmVmODJkOWFiOTVm
YjE5YjQzNTJiNjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CkBA
IC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRC
QV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsK
KyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAn
JzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvY21lbW9yeS5oIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9jbWVtb3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE4MmI1
YWE3ZDE2NjkzMDA2OWQ1MjQyM2M3YTM3M2U3MmNlYjUyNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvY21lbW9yeS5oCkBAIC0wLDAg
KzEsNjAwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChD
KSAxOTk3LTIwMTUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3Jh
dGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorKgorKiBGaWxlIENNRU1PUlkuSAorKgorKiAgQ29udGFpbnMgc3RkbGliLmgvc3Ry
aW5nLmggbWVtb3J5IGZ1bmN0aW9ucworKgorKiBAYXV0aG9yICAgICAgIEJlcnRyYW5kIEEuIERh
bWliYQorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1l
ICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDYvMjAvOTggICAgIEJlcnRyYW5kICAgIENyZWF0ZWQu
CisqICAwNS8wMy85OSAgICAgc3RlcGhlbiAgICAgQ2hhbmdlZCBmcm9tIGZ1bmN0aW9ucyB0byBt
YWNyb3MuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgQ01FTU9SWV9I
CisjZGVmaW5lIENNRU1PUllfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworI2lu
Y2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgInVuaWNvZGUv
bG9jYWxwb2ludGVyLmgiCisKKyNpZiBVX0RFQlVHICYmIGRlZmluZWQoVVBSVl9NQUxMT0NfQ09V
TlQpCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRpZgorCisjaWYgVV9ERUJVRworCisvKgorICog
VGhlIEMrKyBzdGFuZGFyZCByZXF1aXJlcyB0aGF0IHRoZSBzb3VyY2UgcG9pbnRlciBmb3IgbWVt
Y3B5KCkgJiBtZW1tb3ZlKCkKKyAqIGlzIHZhbGlkLCBub3QgTlVMTCwgYW5kIG5vdCBhdCB0aGUg
ZW5kIG9mIGFuIGFsbG9jYXRlZCBtZW1vcnkgYmxvY2suCisgKiBJbiBkZWJ1ZyBtb2RlLCB3ZSBy
ZWFkIG9uZSBieXRlIGZyb20gdGhlIHNvdXJjZSBwb2ludCB0byB2ZXJpZnkgdGhhdCBpdCdzCisg
KiBhIHZhbGlkLCByZWFkYWJsZSBwb2ludGVyLgorICovCisKK1VfQ0FQSSB2b2lkIHVwcnZfY2hl
Y2tWYWxpZE1lbW9yeShjb25zdCB2b2lkICpwLCBzaXplX3Qgbik7CisKKyNkZWZpbmUgdXBydl9t
ZW1jcHkoZHN0LCBzcmMsIHNpemUpICggXAorICAgIHVwcnZfY2hlY2tWYWxpZE1lbW9yeShzcmMs
IDEpLCBcCisgICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIG1lbWNweShkc3QsIHNyYywgc2l6
ZSkpCisjZGVmaW5lIHVwcnZfbWVtbW92ZShkc3QsIHNyYywgc2l6ZSkgKCBcCisgICAgdXBydl9j
aGVja1ZhbGlkTWVtb3J5KHNyYywgMSksIFwKKyAgICBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ug
bWVtbW92ZShkc3QsIHNyYywgc2l6ZSkpCisKKyNlbHNlCisKKyNkZWZpbmUgdXBydl9tZW1jcHko
ZHN0LCBzcmMsIHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBtZW1jcHkoZHN0LCBzcmMs
IHNpemUpCisjZGVmaW5lIHVwcnZfbWVtbW92ZShkc3QsIHNyYywgc2l6ZSkgVV9TVEFOREFSRF9D
UFBfTkFNRVNQQUNFIG1lbW1vdmUoZHN0LCBzcmMsIHNpemUpCisKKyNlbmRpZiAgLyogVV9ERUJV
RyAqLworCisvKioKKyAqIFxkZWYgVVBSVl9MRU5HVEhPRgorICogQ29udmVuaWVuY2UgbWFjcm8g
dG8gZGV0ZXJtaW5lIHRoZSBsZW5ndGggb2YgYSBmaXhlZCBhcnJheSBhdCBjb21waWxlLXRpbWUu
CisgKiBAcGFyYW0gYXJyYXkgQSBmaXhlZCBsZW5ndGggYXJyYXkKKyAqIEByZXR1cm4gVGhlIGxl
bmd0aCBvZiB0aGUgYXJyYXksIGluIGVsZW1lbnRzCisgKiBAaW50ZXJuYWwKKyAqLworI2RlZmlu
ZSBVUFJWX0xFTkdUSE9GKGFycmF5KSAoaW50MzJfdCkoc2l6ZW9mKGFycmF5KS9zaXplb2YoKGFy
cmF5KVswXSkpCisjZGVmaW5lIHVwcnZfbWVtc2V0KGJ1ZmZlciwgbWFyaywgc2l6ZSkgVV9TVEFO
REFSRF9DUFBfTkFNRVNQQUNFIG1lbXNldChidWZmZXIsIG1hcmssIHNpemUpCisjZGVmaW5lIHVw
cnZfbWVtY21wKGJ1ZmZlcjEsIGJ1ZmZlcjIsIHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFD
RSBtZW1jbXAoYnVmZmVyMSwgYnVmZmVyMixzaXplKQorCitVX0NBUEkgdm9pZCAqIFVfRVhQT1JU
MgordXBydl9tYWxsb2Moc2l6ZV90IHMpIFVfTUFMTE9DX0FUVFIgVV9BTExPQ19TSVpFX0FUVFIo
MSk7CisKK1VfQ0FQSSB2b2lkICogVV9FWFBPUlQyCit1cHJ2X3JlYWxsb2Modm9pZCAqbWVtLCBz
aXplX3Qgc2l6ZSkgVV9BTExPQ19TSVpFX0FUVFIoMik7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JU
MgordXBydl9mcmVlKHZvaWQgKm1lbSk7CisKK1VfQ0FQSSB2b2lkICogVV9FWFBPUlQyCit1cHJ2
X2NhbGxvYyhzaXplX3QgbnVtLCBzaXplX3Qgc2l6ZSkgVV9NQUxMT0NfQVRUUiBVX0FMTE9DX1NJ
WkVfQVRUUjIoMSwyKTsKKworLyoqCisgKiBUaGlzIHNob3VsZCBhbGlnbiB0aGUgbWVtb3J5IHBy
b3Blcmx5IG9uIGFueSBtYWNoaW5lLgorICogVGhpcyBpcyB2ZXJ5IHVzZWZ1bCBmb3IgdGhlIHNh
ZmVDbG9uZSBmdW5jdGlvbnMuCisgKi8KK3R5cGVkZWYgdW5pb24geworICAgIGxvbmcgICAgdDE7
CisgICAgZG91YmxlICB0MjsKKyAgICB2b2lkICAgKnQzOworfSBVQWxpZ25lZE1lbW9yeTsKKwor
LyoqCisgKiBHZXQgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2YgYSBwb2ludGVyIChhIG1l
bW9yeSBhZGRyZXNzKS4KKyAqIEZvciBleGFtcGxlLCB3aXRoIGEgbWFzayBvZiAzLCB0aGUgbWFj
cm8gZ2V0cyB0aGUgMiBsZWFzdCBzaWduaWZpY2FudCBiaXRzLAorICogd2hpY2ggd2lsbCBiZSAw
IGlmIHRoZSBwb2ludGVyIGlzIDMyLWJpdCAoNC1ieXRlKSBhbGlnbmVkLgorICoKKyAqIHB0cmRp
ZmZfdCBpcyB0aGUgbW9zdCBhcHByb3ByaWF0ZSBpbnRlZ2VyIHR5cGUgdG8gY2FzdCB0by4KKyAq
IHNpemVfdCBzaG91bGQgd29yayB0b28sIHNpbmNlIG9uIG1vc3QgKG9yIGFsbD8pIHBsYXRmb3Jt
cyBpdCBoYXMgdGhlIHNhbWUKKyAqIHdpZHRoIGFzIHB0cmRpZmZfdC4KKyAqLworI2RlZmluZSBV
X1BPSU5URVJfTUFTS19MU0IocHRyLCBtYXNrKSAoKChwdHJkaWZmX3QpKGNoYXIgKikocHRyKSkg
JiAobWFzaykpCisKKy8qKgorICogR2V0IHRoZSBhbW91bnQgb2YgYnl0ZXMgdGhhdCBhIHBvaW50
ZXIgaXMgb2ZmIGJ5IGZyb20KKyAqIHRoZSBwcmV2aW91cyBVQWxpZ25lZE1lbW9yeS1hbGlnbmVk
IHBvaW50ZXIuCisgKi8KKyNkZWZpbmUgVV9BTElHTk1FTlRfT0ZGU0VUKHB0cikgVV9QT0lOVEVS
X01BU0tfTFNCKHB0ciwgc2l6ZW9mKFVBbGlnbmVkTWVtb3J5KSAtIDEpCisKKy8qKgorICogR2V0
IHRoZSBhbW91bnQgb2YgYnl0ZXMgdG8gYWRkIHRvIGEgcG9pbnRlcgorICogaW4gb3JkZXIgdG8g
Z2V0IHRoZSBuZXh0IFVBbGlnbmVkTWVtb3J5LWFsaWduZWQgYWRkcmVzcy4KKyAqLworI2RlZmlu
ZSBVX0FMSUdOTUVOVF9PRkZTRVRfVVAocHRyKSAoc2l6ZW9mKFVBbGlnbmVkTWVtb3J5KSAtIFVf
QUxJR05NRU5UX09GRlNFVChwdHIpKQorCisvKioKKyAgKiAgSGVhcCBjbGVhbiB1cCBmdW5jdGlv
biwgY2FsbGVkIGZyb20gdV9jbGVhbnVwKCkKKyAgKiAgICBDbGVhcnMgYW55IHVzZXIgaGVhcCBm
dW5jdGlvbnMgZnJvbSB1X3NldE1lbW9yeUZ1bmN0aW9ucygpCisgICogICAgRG9lcyBOT1QgZGVh
bGxvY2F0ZSBhbnkgcmVtYWluaW5nIGFsbG9jYXRlZCBtZW1vcnkuCisgICovCitVX0NGVU5DIFVC
b29sIAorY21lbW9yeV9jbGVhbnVwKHZvaWQpOworCisvKioKKyAqIEEgZnVuY3Rpb24gY2FsbGVk
IGJ5IDxUVD51aGFzaF9yZW1vdmU8L1RUPiwKKyAqIDxUVD51aGFzaF9jbG9zZTwvVFQ+LCBvciA8
VFQ+dWhhc2hfcHV0PC9UVD4gdG8gZGVsZXRlCisgKiBhbiBleGlzdGluZyBrZXkgb3IgdmFsdWUu
CisgKiBAcGFyYW0gb2JqIEEga2V5IG9yIHZhbHVlIHN0b3JlZCBpbiBhIGhhc2h0YWJsZQorICog
QHNlZSB1cHJ2X2RlbGV0ZVVPYmplY3QKKyAqLwordHlwZWRlZiB2b2lkIFVfQ0FMTENPTlYgVU9i
amVjdERlbGV0ZXIodm9pZCogb2JqKTsKKworLyoqCisgKiBEZWxldGVyIGZvciBVT2JqZWN0IGlu
c3RhbmNlcy4KKyAqIFdvcmtzIGZvciBhbGwgc3ViY2xhc3NlcyBvZiBVT2JqZWN0IGJlY2F1c2Ug
aXQgaGFzIGEgdmlydHVhbCBkZXN0cnVjdG9yLgorICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIK
K3VwcnZfZGVsZXRlVU9iamVjdCh2b2lkICpvYmopOworCisjaWZkZWYgX19jcGx1c3BsdXMKKwor
VV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGRlbGV0
ZXMgbWVtb3J5IHZpYSB1cHJ2X2ZyZWUoKS4KKyAqIEZvciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBM
b2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKiBBZGRzIG9wZXJhdG9yW10gZm9yIGFycmF5
IGl0ZW0gYWNjZXNzLgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVyQmFzZQorICovCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgorY2xhc3MgTG9jYWxNZW1vcnkgOiBwdWJsaWMgTG9jYWxQb2ludGVyQmFz
ZTxUPiB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgdGFrZXMgb3duZXJz
aGlwLgorICAgICAqIEBwYXJhbSBwIHNpbXBsZSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFQgaXRl
bXMgdGhhdCBpcyBhZG9wdGVkCisgICAgICovCisgICAgZXhwbGljaXQgTG9jYWxNZW1vcnkoVCAq
cD1OVUxMKSA6IExvY2FsUG9pbnRlckJhc2U8VD4ocCkge30KKyAgICAvKioKKyAgICAgKiBEZXN0
cnVjdG9yIGRlbGV0ZXMgdGhlIG1lbW9yeSBpdCBvd25zLgorICAgICAqLworICAgIH5Mb2NhbE1l
bW9yeSgpIHsKKyAgICAgICAgdXBydl9mcmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7Cisg
ICAgfQorICAgIC8qKgorICAgICAqIERlbGV0ZXMgdGhlIGFycmF5IGl0IG93bnMsCisgICAgICog
YW5kIGFkb3B0cyAodGFrZXMgb3duZXJzaGlwIG9mKSB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAg
KiBAcGFyYW0gcCBzaW1wbGUgcG9pbnRlciB0byBhbiBhcnJheSBvZiBUIGl0ZW1zIHRoYXQgaXMg
YWRvcHRlZAorICAgICAqLworICAgIHZvaWQgYWRvcHRJbnN0ZWFkKFQgKnApIHsKKyAgICAgICAg
dXBydl9mcmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7CisgICAgICAgIExvY2FsUG9pbnRl
ckJhc2U8VD46OnB0cj1wOworICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJh
eSBpdCBvd25zLCBhbGxvY2F0ZXMgYSBuZXcgb25lIGFuZCByZXNldCBpdHMgYnl0ZXMgdG8gMC4K
KyAgICAgKiBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgcG9pbnRlci4KKyAgICAgKiBJZiB0aGUgYWxs
b2NhdGlvbiBmYWlscywgdGhlbiB0aGUgY3VycmVudCBhcnJheSBpcyB1bmNoYW5nZWQgYW5kCisg
ICAgICogdGhpcyBtZXRob2QgcmV0dXJucyBOVUxMLgorICAgICAqIEBwYXJhbSBuZXdDYXBhY2l0
eSBtdXN0IGJlID4wCisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIGFycmF5IHBvaW50ZXIs
IG9yIE5VTEwgaWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIFQg
KmFsbG9jYXRlSW5zdGVhZEFuZFJlc2V0KGludDMyX3QgbmV3Q2FwYWNpdHk9MSk7CisgICAgLyoq
CisgICAgICogRGVsZXRlcyB0aGUgYXJyYXkgaXQgb3ducyBhbmQgYWxsb2NhdGVzIGEgbmV3IG9u
ZSwgY29weWluZyBsZW5ndGggVCBpdGVtcy4KKyAgICAgKiBSZXR1cm5zIHRoZSBuZXcgYXJyYXkg
cG9pbnRlci4KKyAgICAgKiBJZiB0aGUgYWxsb2NhdGlvbiBmYWlscywgdGhlbiB0aGUgY3VycmVu
dCBhcnJheSBpcyB1bmNoYW5nZWQgYW5kCisgICAgICogdGhpcyBtZXRob2QgcmV0dXJucyBOVUxM
LgorICAgICAqIEBwYXJhbSBuZXdDYXBhY2l0eSBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxl
bmd0aCBudW1iZXIgb2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRv
IHRoZSBuZXcgb25lOworICAgICAqICAgICAgICAgICAgICAgbXVzdCBiZSBubyBtb3JlIHRoYW4g
dGhlIGNhcGFjaXR5IG9mIHRoZSBvbGQgYXJyYXksCisgICAgICogICAgICAgICAgICAgICB3aGlj
aCB0aGUgY2FsbGVyIG11c3QgdHJhY2sgYmVjYXVzZSB0aGUgTG9jYWxNZW1vcnkgZG9lcyBub3Qg
dHJhY2sgaXQKKyAgICAgKiBAcmV0dXJuIHRoZSBhbGxvY2F0ZWQgYXJyYXkgcG9pbnRlciwgb3Ig
TlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQKKyAgICAgKi8KKyAgICBpbmxpbmUgVCAqYWxs
b2NhdGVJbnN0ZWFkQW5kQ29weShpbnQzMl90IG5ld0NhcGFjaXR5PTEsIGludDMyX3QgbGVuZ3Ro
PTApOworICAgIC8qKgorICAgICAqIEFycmF5IGl0ZW0gYWNjZXNzICh3cml0YWJsZSkuCisgICAg
ICogTm8gaW5kZXggYm91bmRzIGNoZWNrLgorICAgICAqIEBwYXJhbSBpIGFycmF5IGluZGV4Cisg
ICAgICogQHJldHVybiByZWZlcmVuY2UgdG8gdGhlIGFycmF5IGl0ZW0KKyAgICAgKi8KKyAgICBU
ICZvcGVyYXRvcltdKHB0cmRpZmZfdCBpKSBjb25zdCB7IHJldHVybiBMb2NhbFBvaW50ZXJCYXNl
PFQ+OjpwdHJbaV07IH0KK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgVCAqTG9j
YWxNZW1vcnk8VD46OmFsbG9jYXRlSW5zdGVhZEFuZFJlc2V0KGludDMyX3QgbmV3Q2FwYWNpdHkp
IHsKKyAgICBpZihuZXdDYXBhY2l0eT4wKSB7CisgICAgICAgIFQgKnA9KFQgKil1cHJ2X21hbGxv
YyhuZXdDYXBhY2l0eSpzaXplb2YoVCkpOworICAgICAgICBpZihwIT1OVUxMKSB7CisgICAgICAg
ICAgICB1cHJ2X21lbXNldChwLCAwLCBuZXdDYXBhY2l0eSpzaXplb2YoVCkpOworICAgICAgICAg
ICAgdXBydl9mcmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7CisgICAgICAgICAgICBMb2Nh
bFBvaW50ZXJCYXNlPFQ+OjpwdHI9cDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcDsKKyAg
ICB9IGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKwordGVtcGxhdGU8
dHlwZW5hbWUgVD4KK2lubGluZSBUICpMb2NhbE1lbW9yeTxUPjo6YWxsb2NhdGVJbnN0ZWFkQW5k
Q29weShpbnQzMl90IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aCkgeworICAgIGlmKG5ld0Nh
cGFjaXR5PjApIHsKKyAgICAgICAgVCAqcD0oVCAqKXVwcnZfbWFsbG9jKG5ld0NhcGFjaXR5KnNp
emVvZihUKSk7CisgICAgICAgIGlmKHAhPU5VTEwpIHsKKyAgICAgICAgICAgIGlmKGxlbmd0aD4w
KSB7CisgICAgICAgICAgICAgICAgaWYobGVuZ3RoPm5ld0NhcGFjaXR5KSB7CisgICAgICAgICAg
ICAgICAgICAgIGxlbmd0aD1uZXdDYXBhY2l0eTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgdXBydl9tZW1jcHkocCwgTG9jYWxQb2ludGVyQmFzZTxUPjo6cHRyLCBsZW5ndGgq
c2l6ZW9mKFQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHVwcnZfZnJlZShMb2NhbFBv
aW50ZXJCYXNlPFQ+OjpwdHIpOworICAgICAgICAgICAgTG9jYWxQb2ludGVyQmFzZTxUPjo6cHRy
PXA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHA7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
cmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKioKKyAqIFNpbXBsZSBhcnJheS9idWZmZXIgbWFu
YWdlbWVudCBjbGFzcyB1c2luZyB1cHJ2X21hbGxvYygpIGFuZCB1cHJ2X2ZyZWUoKS4KKyAqIFBy
b3ZpZGVzIGFuIGludGVybmFsIGFycmF5IHdpdGggZml4ZWQgY2FwYWNpdHkuIENhbiBhbGlhcyBh
bm90aGVyIGFycmF5CisgKiBvciBhbGxvY2F0ZSBvbmUuCisgKgorICogVGhlIGFycmF5IGFkZHJl
c3MgaXMgcHJvcGVybHkgYWxpZ25lZCBmb3IgdHlwZSBULiBJdCBtaWdodCBub3QgYmUgcHJvcGVy
bHkKKyAqIGFsaWduZWQgZm9yIHR5cGVzIGxhcmdlciB0aGFuIFQgKG9yIGxhcmdlciB0aGFuIHRo
ZSBsYXJnZXN0IHN1YnR5cGUgb2YgVCkuCisgKgorICogVW5saWtlIExvY2FsTWVtb3J5IGFuZCBM
b2NhbEFycmF5LCB0aGlzIGNsYXNzIG5ldmVyIGFkb3B0cworICogKHRha2VzIG93bmVyc2hpcCBv
ZikgYW5vdGhlciBhcnJheS4KKyAqLwordGVtcGxhdGU8dHlwZW5hbWUgVCwgaW50MzJfdCBzdGFj
a0NhcGFjaXR5PgorY2xhc3MgTWF5YmVTdGFja0FycmF5IHsKK3B1YmxpYzoKKyAgICAvKioKKyAg
ICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yIGluaXRpYWxpemVzIHdpdGggaW50ZXJuYWwgVFtzdGFj
a0NhcGFjaXR5XSBidWZmZXIuCisgICAgICovCisgICAgTWF5YmVTdGFja0FycmF5KCkgOiBwdHIo
c3RhY2tBcnJheSksIGNhcGFjaXR5KHN0YWNrQ2FwYWNpdHkpLCBuZWVkVG9SZWxlYXNlKEZBTFNF
KSB7fQorICAgIC8qKgorICAgICAqIERlc3RydWN0b3IgZGVsZXRlcyB0aGUgYXJyYXkgKGlmIG93
bmVkKS4KKyAgICAgKi8KKyAgICB+TWF5YmVTdGFja0FycmF5KCkgeyByZWxlYXNlQXJyYXkoKTsg
fQorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGFycmF5IGNhcGFjaXR5IChudW1iZXIgb2Yg
VCBpdGVtcykuCisgICAgICogQHJldHVybiBhcnJheSBjYXBhY2l0eQorICAgICAqLworICAgIGlu
dDMyX3QgZ2V0Q2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBjYXBhY2l0eTsgfQorICAgIC8qKgor
ICAgICAqIEFjY2VzcyB3aXRob3V0IG93bmVyc2hpcCBjaGFuZ2UuCisgICAgICogQHJldHVybiB0
aGUgYXJyYXkgcG9pbnRlcgorICAgICAqLworICAgIFQgKmdldEFsaWFzKCkgY29uc3QgeyByZXR1
cm4gcHRyOyB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYXJyYXkgbGltaXQuIFNpbXBs
ZSBjb252ZW5pZW5jZSBtZXRob2QuCisgICAgICogQHJldHVybiBnZXRBbGlhcygpK2dldENhcGFj
aXR5KCkKKyAgICAgKi8KKyAgICBUICpnZXRBcnJheUxpbWl0KCkgY29uc3QgeyByZXR1cm4gZ2V0
QWxpYXMoKStjYXBhY2l0eTsgfQorICAgIC8vIE5vICJvcGVyYXRvciBUICooKSBjb25zdCIgYmVj
YXVzZSB0aGF0IGNhbiBtYWtlCisgICAgLy8gZXhwcmVzc2lvbnMgbGlrZSBtYnNbaW5kZXhdIGFt
YmlndW91cyBmb3Igc29tZSBjb21waWxlcnMuCisgICAgLyoqCisgICAgICogQXJyYXkgaXRlbSBh
Y2Nlc3MgKGNvbnN0KS4KKyAgICAgKiBObyBpbmRleCBib3VuZHMgY2hlY2suCisgICAgICogQHBh
cmFtIGkgYXJyYXkgaW5kZXgKKyAgICAgKiBAcmV0dXJuIHJlZmVyZW5jZSB0byB0aGUgYXJyYXkg
aXRlbQorICAgICAqLworICAgIGNvbnN0IFQgJm9wZXJhdG9yW10ocHRyZGlmZl90IGkpIGNvbnN0
IHsgcmV0dXJuIHB0cltpXTsgfQorICAgIC8qKgorICAgICAqIEFycmF5IGl0ZW0gYWNjZXNzICh3
cml0YWJsZSkuCisgICAgICogTm8gaW5kZXggYm91bmRzIGNoZWNrLgorICAgICAqIEBwYXJhbSBp
IGFycmF5IGluZGV4CisgICAgICogQHJldHVybiByZWZlcmVuY2UgdG8gdGhlIGFycmF5IGl0ZW0K
KyAgICAgKi8KKyAgICBUICZvcGVyYXRvcltdKHB0cmRpZmZfdCBpKSB7IHJldHVybiBwdHJbaV07
IH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSAoaWYgb3duZWQpIGFuZCBhbGlh
c2VzIGFub3RoZXIgb25lLCBubyB0cmFuc2ZlciBvZiBvd25lcnNoaXAuCisgICAgICogSWYgdGhl
IGFyZ3VtZW50cyBhcmUgaWxsZWdhbCwgdGhlbiB0aGUgY3VycmVudCBhcnJheSBpcyB1bmNoYW5n
ZWQuCisgICAgICogQHBhcmFtIG90aGVyQXJyYXkgbXVzdCBub3QgYmUgTlVMTAorICAgICAqIEBw
YXJhbSBvdGhlckNhcGFjaXR5IG11c3QgYmUgPjAKKyAgICAgKi8KKyAgICB2b2lkIGFsaWFzSW5z
dGVhZChUICpvdGhlckFycmF5LCBpbnQzMl90IG90aGVyQ2FwYWNpdHkpIHsKKyAgICAgICAgaWYo
b3RoZXJBcnJheSE9TlVMTCAmJiBvdGhlckNhcGFjaXR5PjApIHsKKyAgICAgICAgICAgIHJlbGVh
c2VBcnJheSgpOworICAgICAgICAgICAgcHRyPW90aGVyQXJyYXk7CisgICAgICAgICAgICBjYXBh
Y2l0eT1vdGhlckNhcGFjaXR5OworICAgICAgICAgICAgbmVlZFRvUmVsZWFzZT1GQUxTRTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSAoaWYgb3du
ZWQpIGFuZCBhbGxvY2F0ZXMgYSBuZXcgb25lLCBjb3B5aW5nIGxlbmd0aCBUIGl0ZW1zLgorICAg
ICAqIFJldHVybnMgdGhlIG5ldyBhcnJheSBwb2ludGVyLgorICAgICAqIElmIHRoZSBhbGxvY2F0
aW9uIGZhaWxzLCB0aGVuIHRoZSBjdXJyZW50IGFycmF5IGlzIHVuY2hhbmdlZCBhbmQKKyAgICAg
KiB0aGlzIG1ldGhvZCByZXR1cm5zIE5VTEwuCisgICAgICogQHBhcmFtIG5ld0NhcGFjaXR5IGNh
biBiZSBsZXNzIHRoYW4gb3IgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGNhcGFjaXR5OworICAg
ICAqICAgICAgICAgICAgICAgICAgICBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxlbmd0aCBu
dW1iZXIgb2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRvIHRoZSBu
ZXcgb25lCisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIGFycmF5IHBvaW50ZXIsIG9yIE5V
TEwgaWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIFQgKnJlc2l6
ZShpbnQzMl90IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aD0wKTsKKyAgICAvKioKKyAgICAg
KiBHaXZlcyB1cCBvd25lcnNoaXAgb2YgdGhlIGFycmF5IGlmIG93bmVkLCBvciBlbHNlIGNsb25l
cyBpdCwKKyAgICAgKiBjb3B5aW5nIGxlbmd0aCBUIGl0ZW1zOyByZXNldHMgaXRzZWxmIHRvIHRo
ZSBpbnRlcm5hbCBzdGFjayBhcnJheS4KKyAgICAgKiBSZXR1cm5zIE5VTEwgaWYgdGhlIGFsbG9j
YXRpb24gZmFpbGVkLgorICAgICAqIEBwYXJhbSBsZW5ndGggbnVtYmVyIG9mIFQgaXRlbXMgdG8g
Y29weSB3aGVuIGNsb25pbmcsCisgICAgICogICAgICAgIGFuZCBjYXBhY2l0eSBvZiB0aGUgY2xv
bmUgd2hlbiBjbG9uaW5nCisgICAgICogQHBhcmFtIHJlc3VsdENhcGFjaXR5IHdpbGwgYmUgc2V0
IHRvIHRoZSByZXR1cm5lZCBhcnJheSdzIGNhcGFjaXR5IChvdXRwdXQtb25seSkKKyAgICAgKiBA
cmV0dXJuIHRoZSBhcnJheSBwb2ludGVyOworICAgICAqICAgICAgICAgY2FsbGVyIGJlY29tZXMg
cmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSBhcnJheQorICAgICAqLworICAgIGlubGluZSBU
ICpvcnBoYW5PckNsb25lKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90ICZyZXN1bHRDYXBhY2l0eSk7
Citwcml2YXRlOgorICAgIFQgKnB0cjsKKyAgICBpbnQzMl90IGNhcGFjaXR5OworICAgIFVCb29s
IG5lZWRUb1JlbGVhc2U7CisgICAgVCBzdGFja0FycmF5W3N0YWNrQ2FwYWNpdHldOworICAgIHZv
aWQgcmVsZWFzZUFycmF5KCkgeworICAgICAgICBpZihuZWVkVG9SZWxlYXNlKSB7CisgICAgICAg
ICAgICB1cHJ2X2ZyZWUocHRyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBObyBjb21wYXJp
c29uIG9wZXJhdG9ycyB3aXRoIG90aGVyIE1heWJlU3RhY2tBcnJheSdzLiAqLworICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1cm4gRkFM
U0U7fQorICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVy
Ki8pIHtyZXR1cm4gVFJVRTt9CisgICAgLyogTm8gb3duZXJzaGlwIHRyYW5zZmVyOiBObyBjb3B5
IGNvbnN0cnVjdG9yLCBubyBhc3NpZ25tZW50IG9wZXJhdG9yLiAqLworICAgIE1heWJlU3RhY2tB
cnJheShjb25zdCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVyKi8pIHt9CisgICAgdm9pZCBvcGVy
YXRvcj0oY29uc3QgTWF5YmVTdGFja0FycmF5ICYgLypvdGhlciovKSB7fQorCisgICAgLy8gTm8g
aGVhcCBhbGxvY2F0aW9uLiBVc2Ugb25seSBvbiB0aGUgc3RhY2suCisgICAgLy8gICAoRGVjbGFy
aW5nIHRoZXNlIGZ1bmN0aW9ucyBwcml2YXRlIHRyaWdnZXJzIGEgY2FzY2FkZSBvZiBwcm9ibGVt
czoKKyAgICAvLyAgICAgIE1TVkMgaW5zaXN0cyBvbiBleHBvcnRpbmcgYW4gaW5zdGFudGlhdGlv
biBvZiBNYXliZVN0YWNrQXJyYXksIHdoaWNoCisgICAgLy8gICAgICByZXF1aXJlcyB0aGF0IGFs
bCBmdW5jdGlvbnMgYmUgZGVmaW5lZC4KKyAgICAvLyAgICAgIEFuIGVtcHR5IGltcGxlbWVudGF0
aW9uIG9mIG5ldygpIGlzIHJlamVjdGVkLCBpdCBtdXN0IHJldHVybiBhIHZhbHVlLgorICAgIC8v
ICAgICAgUmV0dXJuaW5nIE5VTEwgaXMgcmVqZWN0ZWQgYnkgZ2NjIGZvciBvcGVyYXRvciBuZXcu
CisgICAgLy8gICAgICBUaGUgZXhwZWRpZW50IHRoaW5nIGlzIGp1c3Qgbm90IHRvIG92ZXJyaWRl
IG9wZXJhdG9yIG5ldy4KKyAgICAvLyAgICAgIFdoaWxlIHJlbGF0aXZlbHkgcG9pbnRsZXNzLCBo
ZWFwIGFsbG9jYXRlZCBpbnN0YW5jZXMgd2lsbCBmdW5jdGlvbi4KKyAgICAvLyBzdGF0aWMgdm9p
ZCAqIFVfRVhQT1JUMiBvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpOyAKKyAgICAvLyBzdGF0aWMg
dm9pZCAqIFVfRVhQT1JUMiBvcGVyYXRvciBuZXdbXShzaXplX3Qgc2l6ZSk7CisjaWYgVV9IQVZF
X1BMQUNFTUVOVF9ORVcKKyAgICAvLyBzdGF0aWMgdm9pZCAqIFVfRVhQT1JUMiBvcGVyYXRvciBu
ZXcoc2l6ZV90LCB2b2lkICpwdHIpOworI2VuZGlmCit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBpbnQzMl90IHN0YWNrQ2FwYWNpdHk+CitpbmxpbmUgVCAqTWF5YmVTdGFja0FycmF5PFQsIHN0
YWNrQ2FwYWNpdHk+OjpyZXNpemUoaW50MzJfdCBuZXdDYXBhY2l0eSwgaW50MzJfdCBsZW5ndGgp
IHsKKyAgICBpZihuZXdDYXBhY2l0eT4wKSB7CisjaWYgVV9ERUJVRyAmJiBkZWZpbmVkKFVQUlZf
TUFMTE9DX0NPVU5UKQorICAgICAgOjpmcHJpbnRmKDo6c3RkZXJyLCJNYXliZVN0YWNBcnJheSAo
cmVzaXplKSBhbGxvYyAlZCAqICVsdVxuIiwgbmV3Q2FwYWNpdHksc2l6ZW9mKFQpKTsKKyNlbmRp
ZgorICAgICAgICBUICpwPShUICopdXBydl9tYWxsb2MobmV3Q2FwYWNpdHkqc2l6ZW9mKFQpKTsK
KyAgICAgICAgaWYocCE9TlVMTCkgeworICAgICAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAg
ICAgICAgICAgICBpZihsZW5ndGg+Y2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVu
Z3RoPWNhcGFjaXR5OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihsZW5n
dGg+bmV3Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPW5ld0NhcGFjaXR5
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1cHJ2X21lbWNweShwLCBwdHIs
IGxlbmd0aCpzaXplb2YoVCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVsZWFzZUFy
cmF5KCk7CisgICAgICAgICAgICBwdHI9cDsKKyAgICAgICAgICAgIGNhcGFjaXR5PW5ld0NhcGFj
aXR5OworICAgICAgICAgICAgbmVlZFRvUmVsZWFzZT1UUlVFOworICAgICAgICB9CisgICAgICAg
IHJldHVybiBwOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30K
KwordGVtcGxhdGU8dHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5PgoraW5saW5lIFQg
Kk1heWJlU3RhY2tBcnJheTxULCBzdGFja0NhcGFjaXR5Pjo6b3JwaGFuT3JDbG9uZShpbnQzMl90
IGxlbmd0aCwgaW50MzJfdCAmcmVzdWx0Q2FwYWNpdHkpIHsKKyAgICBUICpwOworICAgIGlmKG5l
ZWRUb1JlbGVhc2UpIHsKKyAgICAgICAgcD1wdHI7CisgICAgfSBlbHNlIGlmKGxlbmd0aDw9MCkg
eworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9IGVsc2UgeworICAgICAgICBpZihsZW5ndGg+
Y2FwYWNpdHkpIHsKKyAgICAgICAgICAgIGxlbmd0aD1jYXBhY2l0eTsKKyAgICAgICAgfQorICAg
ICAgICBwPShUICopdXBydl9tYWxsb2MobGVuZ3RoKnNpemVvZihUKSk7CisjaWYgVV9ERUJVRyAm
JiBkZWZpbmVkKFVQUlZfTUFMTE9DX0NPVU5UKQorICAgICAgOjpmcHJpbnRmKDo6c3RkZXJyLCJN
YXliZVN0YWNBcnJheSAob3JwaGFuKSBhbGxvYyAlZCAqICVsdVxuIiwgbGVuZ3RoLHNpemVvZihU
KSk7CisjZW5kaWYKKyAgICAgICAgaWYocD09TlVMTCkgeworICAgICAgICAgICAgcmV0dXJuIE5V
TEw7CisgICAgICAgIH0KKyAgICAgICAgdXBydl9tZW1jcHkocCwgcHRyLCBsZW5ndGgqc2l6ZW9m
KFQpKTsKKyAgICB9CisgICAgcmVzdWx0Q2FwYWNpdHk9bGVuZ3RoOworICAgIHB0cj1zdGFja0Fy
cmF5OworICAgIGNhcGFjaXR5PXN0YWNrQ2FwYWNpdHk7CisgICAgbmVlZFRvUmVsZWFzZT1GQUxT
RTsKKyAgICByZXR1cm4gcDsKK30KKworLyoqCisgKiBWYXJpYW50IG9mIE1heWJlU3RhY2tBcnJh
eSB0aGF0IGFsbG9jYXRlcyBhIGhlYWRlciBzdHJ1Y3QgYW5kIGFuIGFycmF5CisgKiBpbiBvbmUg
Y29udGlndW91cyBtZW1vcnkgYmxvY2ssIHVzaW5nIHVwcnZfbWFsbG9jKCkgYW5kIHVwcnZfZnJl
ZSgpLgorICogUHJvdmlkZXMgaW50ZXJuYWwgbWVtb3J5IHdpdGggZml4ZWQgYXJyYXkgY2FwYWNp
dHkuIENhbiBhbGlhcyBhbm90aGVyIG1lbW9yeQorICogYmxvY2sgb3IgYWxsb2NhdGUgb25lLgor
ICogVGhlIHN0YWNrQ2FwYWNpdHkgaXMgdGhlIG51bWJlciBvZiBUIGl0ZW1zIGluIHRoZSBpbnRl
cm5hbCBtZW1vcnksCisgKiBub3QgY291bnRpbmcgdGhlIEggaGVhZGVyLgorICogVW5saWtlIExv
Y2FsTWVtb3J5IGFuZCBMb2NhbEFycmF5LCB0aGlzIGNsYXNzIG5ldmVyIGFkb3B0cworICogKHRh
a2VzIG93bmVyc2hpcCBvZikgYW5vdGhlciBtZW1vcnkgYmxvY2suCisgKi8KK3RlbXBsYXRlPHR5
cGVuYW1lIEgsIHR5cGVuYW1lIFQsIGludDMyX3Qgc3RhY2tDYXBhY2l0eT4KK2NsYXNzIE1heWJl
U3RhY2tIZWFkZXJBbmRBcnJheSB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogRGVmYXVsdCBj
b25zdHJ1Y3RvciBpbml0aWFsaXplcyB3aXRoIGludGVybmFsIEgrVFtzdGFja0NhcGFjaXR5XSBi
dWZmZXIuCisgICAgICovCisgICAgTWF5YmVTdGFja0hlYWRlckFuZEFycmF5KCkgOiBwdHIoJnN0
YWNrSGVhZGVyKSwgY2FwYWNpdHkoc3RhY2tDYXBhY2l0eSksIG5lZWRUb1JlbGVhc2UoRkFMU0Up
IHt9CisgICAgLyoqCisgICAgICogRGVzdHJ1Y3RvciBkZWxldGVzIHRoZSBtZW1vcnkgKGlmIG93
bmVkKS4KKyAgICAgKi8KKyAgICB+TWF5YmVTdGFja0hlYWRlckFuZEFycmF5KCkgeyByZWxlYXNl
TWVtb3J5KCk7IH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhcnJheSBjYXBhY2l0eSAo
bnVtYmVyIG9mIFQgaXRlbXMpLgorICAgICAqIEByZXR1cm4gYXJyYXkgY2FwYWNpdHkKKyAgICAg
Ki8KKyAgICBpbnQzMl90IGdldENhcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gY2FwYWNpdHk7IH0K
KyAgICAvKioKKyAgICAgKiBBY2Nlc3Mgd2l0aG91dCBvd25lcnNoaXAgY2hhbmdlLgorICAgICAq
IEByZXR1cm4gdGhlIGhlYWRlciBwb2ludGVyCisgICAgICovCisgICAgSCAqZ2V0QWxpYXMoKSBj
b25zdCB7IHJldHVybiBwdHI7IH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhcnJheSBz
dGFydC4KKyAgICAgKiBAcmV0dXJuIGFycmF5IHN0YXJ0LCBzYW1lIGFkZHJlc3MgYXMgZ2V0QWxp
YXMoKSsxCisgICAgICovCisgICAgVCAqZ2V0QXJyYXlTdGFydCgpIGNvbnN0IHsgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8VCAqPihnZXRBbGlhcygpKzEpOyB9CisgICAgLyoqCisgICAgICogUmV0
dXJucyB0aGUgYXJyYXkgbGltaXQuCisgICAgICogQHJldHVybiBhcnJheSBsaW1pdAorICAgICAq
LworICAgIFQgKmdldEFycmF5TGltaXQoKSBjb25zdCB7IHJldHVybiBnZXRBcnJheVN0YXJ0KCkr
Y2FwYWNpdHk7IH0KKyAgICAvKioKKyAgICAgKiBBY2Nlc3Mgd2l0aG91dCBvd25lcnNoaXAgY2hh
bmdlLiBTYW1lIGFzIGdldEFsaWFzKCkuCisgICAgICogQSBjbGFzcyBpbnN0YW5jZSBjYW4gYmUg
dXNlZCBkaXJlY3RseSBpbiBleHByZXNzaW9ucyB0aGF0IHRha2UgYSBUICouCisgICAgICogQHJl
dHVybiB0aGUgaGVhZGVyIHBvaW50ZXIKKyAgICAgKi8KKyAgICBvcGVyYXRvciBIICooKSBjb25z
dCB7IHJldHVybiBwdHI7IH0KKyAgICAvKioKKyAgICAgKiBBcnJheSBpdGVtIGFjY2VzcyAod3Jp
dGFibGUpLgorICAgICAqIE5vIGluZGV4IGJvdW5kcyBjaGVjay4KKyAgICAgKiBAcGFyYW0gaSBh
cnJheSBpbmRleAorICAgICAqIEByZXR1cm4gcmVmZXJlbmNlIHRvIHRoZSBhcnJheSBpdGVtCisg
ICAgICovCisgICAgVCAmb3BlcmF0b3JbXShwdHJkaWZmX3QgaSkgeyByZXR1cm4gZ2V0QXJyYXlT
dGFydCgpW2ldOyB9CisgICAgLyoqCisgICAgICogRGVsZXRlcyB0aGUgbWVtb3J5IGJsb2NrIChp
ZiBvd25lZCkgYW5kIGFsaWFzZXMgYW5vdGhlciBvbmUsIG5vIHRyYW5zZmVyIG9mIG93bmVyc2hp
cC4KKyAgICAgKiBJZiB0aGUgYXJndW1lbnRzIGFyZSBpbGxlZ2FsLCB0aGVuIHRoZSBjdXJyZW50
IG1lbW9yeSBpcyB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIG90aGVyQXJyYXkgbXVzdCBub3Qg
YmUgTlVMTAorICAgICAqIEBwYXJhbSBvdGhlckNhcGFjaXR5IG11c3QgYmUgPjAKKyAgICAgKi8K
KyAgICB2b2lkIGFsaWFzSW5zdGVhZChIICpvdGhlck1lbW9yeSwgaW50MzJfdCBvdGhlckNhcGFj
aXR5KSB7CisgICAgICAgIGlmKG90aGVyTWVtb3J5IT1OVUxMICYmIG90aGVyQ2FwYWNpdHk+MCkg
eworICAgICAgICAgICAgcmVsZWFzZU1lbW9yeSgpOworICAgICAgICAgICAgcHRyPW90aGVyTWVt
b3J5OworICAgICAgICAgICAgY2FwYWNpdHk9b3RoZXJDYXBhY2l0eTsKKyAgICAgICAgICAgIG5l
ZWRUb1JlbGVhc2U9RkFMU0U7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogRGVs
ZXRlcyB0aGUgbWVtb3J5IGJsb2NrIChpZiBvd25lZCkgYW5kIGFsbG9jYXRlcyBhIG5ldyBvbmUs
CisgICAgICogY29weWluZyB0aGUgaGVhZGVyIGFuZCBsZW5ndGggVCBhcnJheSBpdGVtcy4KKyAg
ICAgKiBSZXR1cm5zIHRoZSBuZXcgaGVhZGVyIHBvaW50ZXIuCisgICAgICogSWYgdGhlIGFsbG9j
YXRpb24gZmFpbHMsIHRoZW4gdGhlIGN1cnJlbnQgbWVtb3J5IGlzIHVuY2hhbmdlZCBhbmQKKyAg
ICAgKiB0aGlzIG1ldGhvZCByZXR1cm5zIE5VTEwuCisgICAgICogQHBhcmFtIG5ld0NhcGFjaXR5
IGNhbiBiZSBsZXNzIHRoYW4gb3IgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGNhcGFjaXR5Owor
ICAgICAqICAgICAgICAgICAgICAgICAgICBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxlbmd0
aCBudW1iZXIgb2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRvIHRo
ZSBuZXcgb25lCisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIHBvaW50ZXIsIG9yIE5VTEwg
aWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIEggKnJlc2l6ZShp
bnQzMl90IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aD0wKTsKKyAgICAvKioKKyAgICAgKiBH
aXZlcyB1cCBvd25lcnNoaXAgb2YgdGhlIG1lbW9yeSBpZiBvd25lZCwgb3IgZWxzZSBjbG9uZXMg
aXQsCisgICAgICogY29weWluZyB0aGUgaGVhZGVyIGFuZCBsZW5ndGggVCBhcnJheSBpdGVtczsg
cmVzZXRzIGl0c2VsZiB0byB0aGUgaW50ZXJuYWwgbWVtb3J5LgorICAgICAqIFJldHVybnMgTlVM
TCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQuCisgICAgICogQHBhcmFtIGxlbmd0aCBudW1iZXIg
b2YgVCBpdGVtcyB0byBjb3B5IHdoZW4gY2xvbmluZywKKyAgICAgKiAgICAgICAgYW5kIGFycmF5
IGNhcGFjaXR5IG9mIHRoZSBjbG9uZSB3aGVuIGNsb25pbmcKKyAgICAgKiBAcGFyYW0gcmVzdWx0
Q2FwYWNpdHkgd2lsbCBiZSBzZXQgdG8gdGhlIHJldHVybmVkIGFycmF5J3MgY2FwYWNpdHkgKG91
dHB1dC1vbmx5KQorICAgICAqIEByZXR1cm4gdGhlIGhlYWRlciBwb2ludGVyOworICAgICAqICAg
ICAgICAgY2FsbGVyIGJlY29tZXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSBhcnJheQor
ICAgICAqLworICAgIGlubGluZSBIICpvcnBoYW5PckNsb25lKGludDMyX3QgbGVuZ3RoLCBpbnQz
Ml90ICZyZXN1bHRDYXBhY2l0eSk7Citwcml2YXRlOgorICAgIEggKnB0cjsKKyAgICBpbnQzMl90
IGNhcGFjaXR5OworICAgIFVCb29sIG5lZWRUb1JlbGVhc2U7CisgICAgLy8gc3RhY2tIZWFkZXIg
bXVzdCBwcmVjZWRlIHN0YWNrQXJyYXkgaW1tZWRpYXRlbHkuCisgICAgSCBzdGFja0hlYWRlcjsK
KyAgICBUIHN0YWNrQXJyYXlbc3RhY2tDYXBhY2l0eV07CisgICAgdm9pZCByZWxlYXNlTWVtb3J5
KCkgeworICAgICAgICBpZihuZWVkVG9SZWxlYXNlKSB7CisgICAgICAgICAgICB1cHJ2X2ZyZWUo
cHRyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBObyBjb21wYXJpc29uIG9wZXJhdG9ycyB3
aXRoIG90aGVyIE1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSdzLiAqLworICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1cm4g
RkFMU0U7fQorICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBNYXliZVN0YWNrSGVhZGVyQW5kQXJy
YXkgJiAvKm90aGVyKi8pIHtyZXR1cm4gVFJVRTt9CisgICAgLyogTm8gb3duZXJzaGlwIHRyYW5z
ZmVyOiBObyBjb3B5IGNvbnN0cnVjdG9yLCBubyBhc3NpZ25tZW50IG9wZXJhdG9yLiAqLworICAg
IE1heWJlU3RhY2tIZWFkZXJBbmRBcnJheShjb25zdCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkg
JiAvKm90aGVyKi8pIHt9CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgTWF5YmVTdGFja0hlYWRl
ckFuZEFycmF5ICYgLypvdGhlciovKSB7fQorCisgICAgLy8gTm8gaGVhcCBhbGxvY2F0aW9uLiBV
c2Ugb25seSBvbiB0aGUgc3RhY2suCisgICAgLy8gICAoRGVjbGFyaW5nIHRoZXNlIGZ1bmN0aW9u
cyBwcml2YXRlIHRyaWdnZXJzIGEgY2FzY2FkZSBvZiBwcm9ibGVtczsKKyAgICAvLyAgICBzZWUg
dGhlIE1heWJlU3RhY2tBcnJheSBjbGFzcyBmb3IgZGV0YWlscy4pCisgICAgLy8gc3RhdGljIHZv
aWQgKiBVX0VYUE9SVDIgb3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKTsgCisgICAgLy8gc3RhdGlj
IHZvaWQgKiBVX0VYUE9SVDIgb3BlcmF0b3IgbmV3W10oc2l6ZV90IHNpemUpOworI2lmIFVfSEFW
RV9QTEFDRU1FTlRfTkVXCisgICAgLy8gc3RhdGljIHZvaWQgKiBVX0VYUE9SVDIgb3BlcmF0b3Ig
bmV3KHNpemVfdCwgdm9pZCAqcHRyKTsKKyNlbmRpZgorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUg
SCwgdHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5PgoraW5saW5lIEggKk1heWJlU3Rh
Y2tIZWFkZXJBbmRBcnJheTxILCBULCBzdGFja0NhcGFjaXR5Pjo6cmVzaXplKGludDMyX3QgbmV3
Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50MzJfdCBsZW5ndGgpIHsKKyAgICBpZihuZXdDYXBhY2l0eT49
MCkgeworI2lmIFVfREVCVUcgJiYgZGVmaW5lZChVUFJWX01BTExPQ19DT1VOVCkKKyAgICAgIDo6
ZnByaW50Zig6OnN0ZGVyciwiTWF5YmVTdGFja0hlYWRlckFuZEFycmF5IGFsbG9jICVkICsgJWQg
KiAldWxcbiIsIHNpemVvZihIKSxuZXdDYXBhY2l0eSxzaXplb2YoVCkpOworI2VuZGlmCisgICAg
ICAgIEggKnA9KEggKil1cHJ2X21hbGxvYyhzaXplb2YoSCkrbmV3Q2FwYWNpdHkqc2l6ZW9mKFQp
KTsKKyAgICAgICAgaWYocCE9TlVMTCkgeworICAgICAgICAgICAgaWYobGVuZ3RoPDApIHsKKyAg
ICAgICAgICAgICAgICBsZW5ndGg9MDsKKyAgICAgICAgICAgIH0gZWxzZSBpZihsZW5ndGg+MCkg
eworICAgICAgICAgICAgICAgIGlmKGxlbmd0aD5jYXBhY2l0eSkgeworICAgICAgICAgICAgICAg
ICAgICBsZW5ndGg9Y2FwYWNpdHk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGlmKGxlbmd0aD5uZXdDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBsZW5ndGg9bmV3
Q2FwYWNpdHk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAg
dXBydl9tZW1jcHkocCwgcHRyLCBzaXplb2YoSCkrbGVuZ3RoKnNpemVvZihUKSk7CisgICAgICAg
ICAgICByZWxlYXNlTWVtb3J5KCk7CisgICAgICAgICAgICBwdHI9cDsKKyAgICAgICAgICAgIGNh
cGFjaXR5PW5ld0NhcGFjaXR5OworICAgICAgICAgICAgbmVlZFRvUmVsZWFzZT1UUlVFOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBwOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBO
VUxMOworICAgIH0KK30KKwordGVtcGxhdGU8dHlwZW5hbWUgSCwgdHlwZW5hbWUgVCwgaW50MzJf
dCBzdGFja0NhcGFjaXR5PgoraW5saW5lIEggKk1heWJlU3RhY2tIZWFkZXJBbmRBcnJheTxILCBU
LCBzdGFja0NhcGFjaXR5Pjo6b3JwaGFuT3JDbG9uZShpbnQzMl90IGxlbmd0aCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50MzJfdCAmcmVzdWx0Q2FwYWNpdHkpIHsKKyAgICBIICpwOworICAgIGlmKG5lZWRU
b1JlbGVhc2UpIHsKKyAgICAgICAgcD1wdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYobGVu
Z3RoPDApIHsKKyAgICAgICAgICAgIGxlbmd0aD0wOworICAgICAgICB9IGVsc2UgaWYobGVuZ3Ro
PmNhcGFjaXR5KSB7CisgICAgICAgICAgICBsZW5ndGg9Y2FwYWNpdHk7CisgICAgICAgIH0KKyNp
ZiBVX0RFQlVHICYmIGRlZmluZWQoVVBSVl9NQUxMT0NfQ09VTlQpCisgICAgICA6OmZwcmludGYo
OjpzdGRlcnIsIk1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSAob3JwaGFuKSBhbGxvYyAldWwgKyAl
ZCAqICVsdVxuIiwgc2l6ZW9mKEgpLGxlbmd0aCxzaXplb2YoVCkpOworI2VuZGlmCisgICAgICAg
IHA9KEggKil1cHJ2X21hbGxvYyhzaXplb2YoSCkrbGVuZ3RoKnNpemVvZihUKSk7CisgICAgICAg
IGlmKHA9PU5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAg
ICAgIHVwcnZfbWVtY3B5KHAsIHB0ciwgc2l6ZW9mKEgpK2xlbmd0aCpzaXplb2YoVCkpOworICAg
IH0KKyAgICByZXN1bHRDYXBhY2l0eT1sZW5ndGg7CisgICAgcHRyPSZzdGFja0hlYWRlcjsKKyAg
ICBjYXBhY2l0eT1zdGFja0NhcGFjaXR5OworICAgIG5lZWRUb1JlbGVhc2U9RkFMU0U7CisgICAg
cmV0dXJuIHA7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYgIC8qIF9fY3BsdXNwbHVz
ICovCisjZW5kaWYgIC8qIENNRU1PUllfSCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9jc3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2NzdHJpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGI2OGZmYWJiMjZi
Y2I5MTU2MjZlZDRkMTE1ZTk0MmQzN2JiNzcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9jc3RyaW5nLmgKQEAgLTAsMCArMSwxNDAg
QEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTct
MjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFu
ZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqCisqIEZpbGUgQ1NUUklORy5ICisqCisqIENvbnRhaW5zIENTdHJpbmcgaW50ZXJmYWNlCisq
CisqIEBhdXRob3IgICAgICAgSGVsZW5hIFNoaWgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6
CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICA2LzE3Lzk4
ICAgICBoc2hpaCAgICAgICBDcmVhdGVkLgorKiAgMDUvMDMvOTkgICAgIHN0ZXBoZW4gICAgIENo
YW5nZWQgZnJvbSBmdW5jdGlvbnMgdG8gbWFjcm9zLgorKiAgMDYvMTQvOTkgICAgIHN0ZXBoZW4g
ICAgIEFkZGVkIGljdV9zdHJuY2F0LCBpY3Vfc3RybmNtcCwgaWN1X3RvbG93ZXIKKyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBDU1RSSU5HX0gKKyNkZWZpbmUgQ1NUUklO
R19IIDEKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAiY21lbW9yeS5o
IgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGN0
eXBlLmg+CisKKyNkZWZpbmUgdXBydl9zdHJjcHkoZHN0LCBzcmMpIFVfU1RBTkRBUkRfQ1BQX05B
TUVTUEFDRSAgc3RyY3B5KGRzdCwgc3JjKQorI2RlZmluZSB1cHJ2X3N0cmxlbihzdHIpIFVfU1RB
TkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJsZW4oc3RyKQorI2RlZmluZSB1cHJ2X3N0cmNtcChzMSwg
czIpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJjbXAoczEsIHMyKQorI2RlZmluZSB1cHJ2
X3N0cmNhdChkc3QsIHNyYykgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cmNhdChkc3QsIHNy
YykKKyNkZWZpbmUgdXBydl9zdHJjaHIocywgYykgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0
cmNocihzLCBjKQorI2RlZmluZSB1cHJ2X3N0cnN0cihzLCBjKSBVX1NUQU5EQVJEX0NQUF9OQU1F
U1BBQ0Ugc3Ryc3RyKHMsIGMpCisjZGVmaW5lIHVwcnZfc3RycmNocihzLCBjKSBVX1NUQU5EQVJE
X0NQUF9OQU1FU1BBQ0Ugc3RycmNocihzLCBjKQorCisjaWYgVV9ERUJVRworCisjZGVmaW5lIHVw
cnZfc3RybmNweShkc3QsIHNyYywgc2l6ZSkgKCBcCisgICAgdXBydl9jaGVja1ZhbGlkTWVtb3J5
KHNyYywgMSksIFwKKyAgICBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RybmNweShkc3QsIHNy
Yywgc2l6ZSkpCisjZGVmaW5lIHVwcnZfc3RybmNtcChzMSwgczIsIG4pICggXAorICAgIHVwcnZf
Y2hlY2tWYWxpZE1lbW9yeShzMSwgMSksIFwKKyAgICB1cHJ2X2NoZWNrVmFsaWRNZW1vcnkoczIs
IDEpLCBcCisgICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cm5jbXAoczEsIHMyLCBuKSkK
KyNkZWZpbmUgdXBydl9zdHJuY2F0KGRzdCwgc3JjLCBuKSAoIFwKKyAgICB1cHJ2X2NoZWNrVmFs
aWRNZW1vcnkoc3JjLCAxKSwgXAorICAgIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJuY2F0
KGRzdCwgc3JjLCBuKSkKKworI2Vsc2UKKworI2RlZmluZSB1cHJ2X3N0cm5jcHkoZHN0LCBzcmMs
IHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJuY3B5KGRzdCwgc3JjLCBzaXplKQor
I2RlZmluZSB1cHJ2X3N0cm5jbXAoczEsIHMyLCBuKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ug
c3RybmNtcChzMSwgczIsIG4pCisjZGVmaW5lIHVwcnZfc3RybmNhdChkc3QsIHNyYywgbikgVV9T
VEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cm5jYXQoZHN0LCBzcmMsIG4pCisKKyNlbmRpZiAgLyog
VV9ERUJVRyAqLworCisvKioKKyAqIElzIGMgYW4gQVNDSUktcmVwZXJ0b2lyZSBsZXR0ZXIgYS16
IG9yIEEtWj8KKyAqIE5vdGU6IFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBzcGVjaWZpYyB0byB3aGV0
aGVyIElDVSBpcyBjb21waWxlZCBmb3IKKyAqIGFuIEFTQ0lJLWJhc2VkIG9yIEVCQ0RJQy1iYXNl
ZCBtYWNoaW5lLiBUaGVyZSBqdXN0IGRvZXMgbm90IHNlZW0gdG8gYmUgYSBiZXR0ZXIgbmFtZSBm
b3IgdGhpcy4KKyAqLworVV9DQVBJIFVCb29sIFVfRVhQT1JUMgordXBydl9pc0FTQ0lJTGV0dGVy
KGNoYXIgYyk7CisKK1VfQ0FQSSBjaGFyIFVfRVhQT1JUMgordXBydl90b3VwcGVyKGNoYXIgYyk7
CisKKworVV9DQVBJIGNoYXIgVV9FWFBPUlQyCit1cHJ2X2FzY2lpdG9sb3dlcihjaGFyIGMpOwor
CitVX0NBUEkgY2hhciBVX0VYUE9SVDIKK3VwcnZfZWJjZGljdG9sb3dlcihjaGFyIGMpOworCisj
aWYgVV9DSEFSU0VUX0ZBTUlMWT09VV9BU0NJSV9GQU1JTFkKKyMgICBkZWZpbmUgdXBydl90b2xv
d2VyIHVwcnZfYXNjaWl0b2xvd2VyCisjZWxpZiBVX0NIQVJTRVRfRkFNSUxZPT1VX0VCQ0RJQ19G
QU1JTFkKKyMgICBkZWZpbmUgdXBydl90b2xvd2VyIHVwcnZfZWJjZGljdG9sb3dlcgorI2Vsc2UK
KyMgICBlcnJvciBVX0NIQVJTRVRfRkFNSUxZIGlzIG5vdCB2YWxpZAorI2VuZGlmCisKKyNkZWZp
bmUgdXBydl9zdHJ0b2Qoc291cmNlLCBlbmQpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJ0
b2Qoc291cmNlLCBlbmQpCisjZGVmaW5lIHVwcnZfc3RydG91bChzdHIsIGVuZCwgYmFzZSkgVV9T
VEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cnRvdWwoc3RyLCBlbmQsIGJhc2UpCisjZGVmaW5lIHVw
cnZfc3RydG9sKHN0ciwgZW5kLCBiYXNlKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RydG9s
KHN0ciwgZW5kLCBiYXNlKQorCisvKiBDb252ZXJzaW9uIGZyb20gYSBkaWdpdCB0byB0aGUgY2hh
cmFjdGVyIHdpdGggcmFkaXggYmFzZSBmcm9tIDItMTkgKi8KKy8qIE1heSBuZWVkIHRvIHVzZSBV
X1VQUEVSX09SRElOQUwqLworI2RlZmluZSBUX0NTdHJpbmdfaXRvc09mZnNldChhKSAoKGEpPD05
PygnMCcrKGEpKTooJ0EnKyhhKS0xMCkpCisKK1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK3VwcnZf
c3RyZHVwKGNvbnN0IGNoYXIgKnNyYyk7CisKKy8qKgorICogdXBydl9tYWxsb2MgbisxIGJ5dGVz
LCBhbmQgY29weSBuIGJ5dGVzIGZyb20gc3JjIGludG8gdGhlIG5ldyBzdHJpbmcuCisgKiBUZXJt
aW5hdGUgd2l0aCBhIG51bGwgYXQgb2Zmc2V0IG4uICAgSWYgbiBpcyAtMSwgd29ya3MgbGlrZSB1
cHJ2X3N0cmR1cAorICogQHBhcmFtIHNyYworICogQHBhcmFtIG4gbGVuZ3RoIG9mIHRoZSBpbnB1
dCBzdHJpbmcsIG5vdCBpbmNsdWRpbmcgbnVsbC4KKyAqIEByZXR1cm4gbmV3IHN0cmluZyAob3du
ZWQgYnkgY2FsbGVyLCB1c2UgdXBydl9mcmVlIHRvIGZyZWUpLgorICogQGludGVybmFsCisgKi8K
K1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK3VwcnZfc3RybmR1cChjb25zdCBjaGFyICpzcmMsIGlu
dDMyX3Qgbik7CisKK1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK1RfQ1N0cmluZ190b0xvd2VyQ2Fz
ZShjaGFyKiBzdHIpOworCitVX0NBUEkgY2hhciogVV9FWFBPUlQyCitUX0NTdHJpbmdfdG9VcHBl
ckNhc2UoY2hhciogc3RyKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0NTdHJpbmdf
aW50ZWdlclRvU3RyaW5nKGNoYXIgKmJ1ZmZlciwgaW50MzJfdCBuLCBpbnQzMl90IHJhZGl4KTsK
KworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0NTdHJpbmdfaW50NjRUb1N0cmluZyhjaGFy
ICpidWZmZXIsIGludDY0X3QgbiwgdWludDMyX3QgcmFkaXgpOworCitVX0NBUEkgaW50MzJfdCBV
X0VYUE9SVDIKK1RfQ1N0cmluZ19zdHJpbmdUb0ludGVnZXIoY29uc3QgY2hhciAqaW50ZWdlclN0
cmluZywgaW50MzJfdCByYWRpeCk7CisKKy8qKgorICogQ2FzZS1pbnNlbnNpdGl2ZSwgbGFuZ3Vh
Z2UtaW5kZXBlbmRlbnQgc3RyaW5nIGNvbXBhcmlzb24KKyAqIGxpbWl0ZWQgdG8gdGhlIEFTQ0lJ
IGNoYXJhY3RlciByZXBlcnRvaXJlLgorICovCitVX0NBUEkgaW50IFVfRVhQT1JUMgordXBydl9z
dHJpY21wKGNvbnN0IGNoYXIgKnN0cjEsIGNvbnN0IGNoYXIgKnN0cjIpOworCisvKioKKyAqIENh
c2UtaW5zZW5zaXRpdmUsIGxhbmd1YWdlLWluZGVwZW5kZW50IHN0cmluZyBjb21wYXJpc29uCisg
KiBsaW1pdGVkIHRvIHRoZSBBU0NJSSBjaGFyYWN0ZXIgcmVwZXJ0b2lyZS4KKyAqLworVV9DQVBJ
IGludCBVX0VYUE9SVDIKK3VwcnZfc3RybmljbXAoY29uc3QgY2hhciAqc3RyMSwgY29uc3QgY2hh
ciAqc3RyMiwgdWludDMyX3Qgbik7CisKKyNlbmRpZiAvKiAhIENTVFJJTkdfSCAqLwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9maWxlc3RybS5j
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9maWxlc3RybS5jCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjczMDk3NDdjNzA1YmQxMzc2NWEzYzViNzFlN2E4YmJkNDgxMTRjYWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2Zp
bGVzdHJtLmMKQEAgLTAsMCArMSwyMjUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoK
KyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNo
aW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgor
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgRklMRVNUUk0uQworKgorKiBAYXV0
aG9yICAgICAgIEdsZW5uIE1hcmN5CisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAg
IERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgNS84Lzk4ICAgICAgZ20g
ICAgICAgICAgQ3JlYXRlZAorKiAgMDMvMDIvOTkgICAgIHN0ZXBoZW4gICAgIFJlb3JkZXJlZCBw
YXJhbXMgaW4gdW5nZXRjIHRvIG1hdGNoIHN0ZGlvCisqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWRkZWQgd29wZW4KKyogICAzLzI5Lzk5ICAgICBoZWxlbmEgICAgICBNZXJnZWQgU3RlcGhl
biBhbmQgQmVydHJhbmQncyBjaGFuZ2VzLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLwor
CisjaW5jbHVkZSAiZmlsZXN0cm0uaCIKKworI2luY2x1ZGUgImNtZW1vcnkuaCIKKworI2luY2x1
ZGUgPHN0ZGlvLmg+CisKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVh
bV9vcGVuKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFyKiBtb2RlKQoreworICAgIGlm
KGZpbGVuYW1lICE9IE5VTEwgJiYgKmZpbGVuYW1lICE9IDAgJiYgbW9kZSAhPSBOVUxMICYmICpt
b2RlICE9IDApIHsKKyAgICAgICAgRklMRSAqZmlsZSA9IGZvcGVuKGZpbGVuYW1lLCBtb2RlKTsK
KyAgICAgICAgcmV0dXJuIChGaWxlU3RyZWFtKilmaWxlOworICAgIH0gZWxzZSB7CisgICAgICAg
IHJldHVybiBOVUxMOworICAgIH0KK30KKworLyoKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9S
VDIKK1RfRmlsZVN0cmVhbV93b3Blbihjb25zdCB3Y2hhcl90KiBmaWxlbmFtZSwgY29uc3Qgd2No
YXJfdCogbW9kZSkKK3sKKyAgIC8vIFRCRDogX3dmb3BlbiBpcyBiZWxpZXZlZCB0byBiZSBNUy1z
cGVjaWZpYz8gCisjaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisgICAgRklMRSog
cmVzdWx0ID0gX3dmb3BlbihmaWxlbmFtZSwgbW9kZSk7CisgICAgcmV0dXJuIChGaWxlU3RyZWFt
KilyZXN1bHQ7CisjZWxzZQorICAgIHNpemVfdCBmbk1ic1NpemUsIG1kTWJzU2l6ZTsKKyAgICBj
aGFyICpmbiwgKm1kOworICAgIEZJTEUgKnJlc3VsdDsKKworICAgIC8vIGNvbnZlcnQgZnJvbSB3
Y2hhcl90IHRvIGNoYXIgCisgICAgZm5NYnNTaXplID0gd2NzdG9tYnMoTlVMTCwgZmlsZW5hbWUs
ICgoc2l6ZV90KS0xKSA+PiAxKTsKKyAgICBmbiA9IChjaGFyKil1cHJ2X21hbGxvYyhmbk1ic1Np
emUrMik7CisgICAgd2NzdG9tYnMoZm4sIGZpbGVuYW1lLCBmbk1ic1NpemUpOworICAgIGZuW2Zu
TWJzU2l6ZV0gPSAwOworCisgICAgbWRNYnNTaXplID0gd2NzdG9tYnMoTlVMTCwgbW9kZSwgKChz
aXplX3QpLTEpID4+IDEpOworICAgIG1kID0gKGNoYXIqKXVwcnZfbWFsbG9jKG1kTWJzU2l6ZSsy
KTsKKyAgICB3Y3N0b21icyhtZCwgbW9kZSwgbWRNYnNTaXplKTsKKyAgICBtZFttZE1ic1NpemVd
ID0gMDsKKworICAgIHJlc3VsdCA9IGZvcGVuKGZuLCBtZCk7CisgICAgdXBydl9mcmVlKGZuKTsK
KyAgICB1cHJ2X2ZyZWUobWQpOworICAgIHJldHVybiAoRmlsZVN0cmVhbSopcmVzdWx0OworI2Vu
ZGlmCit9CisqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fY2xvc2UoRmls
ZVN0cmVhbSogZmlsZVN0cmVhbSkKK3sKKyAgICBpZiAoZmlsZVN0cmVhbSAhPSAwKQorICAgICAg
ICBmY2xvc2UoKEZJTEUqKWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQy
CitUX0ZpbGVTdHJlYW1fZmlsZV9leGlzdHMoY29uc3QgY2hhciogZmlsZW5hbWUpCit7CisgICAg
RklMRSogdGVtcCA9IGZvcGVuKGZpbGVuYW1lLCAiciIpOworICAgIGlmICh0ZW1wKSB7CisgICAg
ICAgIGZjbG9zZSh0ZW1wKTsKKyAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgfSBlbHNlCisgICAg
ICAgIHJldHVybiBGQUxTRTsKK30KKworLypzdGF0aWMgY29uc3QgaW50MzJfdCBrRU9GOworY29u
c3QgaW50MzJfdCBGaWxlU3RyZWFtOjprRU9GID0gRU9GOyovCisKKy8qCitVX0NBUEkgRmlsZVN0
cmVhbSoKK1RfRmlsZVN0cmVhbV90bXBmaWxlKCkKK3sKKyAgICBGSUxFKiBmaWxlID0gdG1wZmls
ZSgpOworICAgIHJldHVybiAoRmlsZVN0cmVhbSopZmlsZTsKK30KKyovCisKK1VfQ0FQSSBpbnQz
Ml90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3JlYWQoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwg
dm9pZCogYWRkciwgaW50MzJfdCBsZW4pCit7CisgICAgcmV0dXJuIGZyZWFkKGFkZHIsIDEsIGxl
biwgKEZJTEUqKWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1Rf
RmlsZVN0cmVhbV93cml0ZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCB2b2lkKiBhZGRy
LCBpbnQzMl90IGxlbikKK3sKKworICAgIHJldHVybiBmd3JpdGUoYWRkciwgMSwgbGVuLCAoRklM
RSopZmlsZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFt
X3Jld2luZChGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIHJld2luZCgoRklMRSopZmls
ZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3B1
dGMoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgaW50MzJfdCBjaCkKK3sKKyAgICBpbnQzMl90IGMg
PSBmcHV0YyhjaCwgKEZJTEUqKWZpbGVTdHJlYW0pOworICAgIHJldHVybiBjOworfQorCitVX0NB
UEkgaW50IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX2dldGMoRmlsZVN0cmVhbSogZmlsZVN0cmVh
bSkKK3sKKyAgICBpbnQgYyA9IGZnZXRjKChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4g
YzsKK30KKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fdW5nZXRjKGlu
dDMyX3QgY2gsIEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisKKyAgICBpbnQzMl90IGMgPSB1
bmdldGMoY2gsIChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4gYzsKK30KKworVV9DQVBJ
IGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcGVlayhGaWxlU3RyZWFtKiBmaWxlU3Ry
ZWFtKQoreworICAgIGludDMyX3QgYyA9IGZnZXRjKChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICBy
ZXR1cm4gdW5nZXRjKGMsIChGSUxFKilmaWxlU3RyZWFtKTsKK30KKworVV9DQVBJIGNoYXIqIFVf
RVhQT1JUMgorVF9GaWxlU3RyZWFtX3JlYWRMaW5lKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0sIGNo
YXIqIGJ1ZmZlciwgaW50MzJfdCBsZW5ndGgpCit7CisgICAgcmV0dXJuIGZnZXRzKGJ1ZmZlciwg
bGVuZ3RoLCAoRklMRSopZmlsZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JU
MgorVF9GaWxlU3RyZWFtX3dyaXRlTGluZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCBj
aGFyKiBidWZmZXIpCit7CisgICAgcmV0dXJuIGZwdXRzKGJ1ZmZlciwgKEZJTEUqKWZpbGVTdHJl
YW0pOworfQorCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9zaXplKEZp
bGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisgICAgaW50MzJfdCBzYXZlZFBvcyA9IGZ0ZWxsKChG
SUxFKilmaWxlU3RyZWFtKTsKKyAgICBpbnQzMl90IHNpemUgPSAwOworCisgICAgLypDaGFuZ2Vz
IGJ5IEJlcnRyYW5kIEEuIEQuIGRvZXNuJ3QgYWZmZWN0IHRoZSBjdXJyZW50IHBvc2l0aW9uCisg
ICAgZ29lcyB0byB0aGUgZW5kIG9mIHRoZSBmaWxlIGJlZm9yZSBmdGVsbCovCisgICAgZnNlZWso
KEZJTEUqKWZpbGVTdHJlYW0sIDAsIFNFRUtfRU5EKTsKKyAgICBzaXplID0gKGludDMyX3QpZnRl
bGwoKEZJTEUqKWZpbGVTdHJlYW0pOworICAgIGZzZWVrKChGSUxFKilmaWxlU3RyZWFtLCBzYXZl
ZFBvcywgU0VFS19TRVQpOworICAgIHJldHVybiBzaXplOworfQorCitVX0NBUEkgaW50IFVfRVhQ
T1JUMgorVF9GaWxlU3RyZWFtX2VvZihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIHJl
dHVybiBmZW9mKChGSUxFKilmaWxlU3RyZWFtKTsKK30KKworLyoKKyBXYXJuaW5nIAorIFRoaXMg
ZnVuY3Rpb24gbWF5IG5vdCB3b3JrIGNvbnNpc3RlbnRseSBvbiBhbGwgcGxhdGZvcm1zCisgKGUu
Zy4gSFAtVVgsIEZyZWVCU0QgYW5kIE1hY09TWCBkb24ndCByZXR1cm4gYW4gZXJyb3Igd2hlbgor
IHB1dGMgaXMgdXNlZCBvbiBhIGZpbGUgb3BlbmVkIGFzIHJlYWRvbmx5KQorKi8KK1VfQ0FQSSBp
bnQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fZXJyb3IoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSkK
K3sKKyAgICByZXR1cm4gKGZpbGVTdHJlYW0gPT0gMCB8fCBmZXJyb3IoKEZJTEUqKWZpbGVTdHJl
YW0pKTsKK30KKworLyogVGhpcyBmdW5jdGlvbiBkb2Vzbid0IHdvcmsuICovCisvKiBmb3JjZSB0
aGUgc3RyZWFtIHRvIHNldCBpdHMgZXJyb3IgZmxhZyovCisvKlVfQ0FQSSB2b2lkIFVfRVhQT1JU
MgorVF9GaWxlU3RyZWFtX3NldEVycm9yKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisgICAg
ZnNlZWsoKEZJTEUqKWZpbGVTdHJlYW0sIDk5OTk5LCBTRUVLX1NFVCk7Cit9CisqLworCitVX0NB
UEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3RkaW4odm9pZCkKK3sKKyAg
ICByZXR1cm4gKEZpbGVTdHJlYW0qKXN0ZGluOworfQorCitVX0NBUEkgRmlsZVN0cmVhbSogVV9F
WFBPUlQyCitUX0ZpbGVTdHJlYW1fc3Rkb3V0KHZvaWQpCit7CisgICAgcmV0dXJuIChGaWxlU3Ry
ZWFtKilzdGRvdXQ7Cit9CisKKworVV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxl
U3RyZWFtX3N0ZGVycih2b2lkKQoreworICAgIHJldHVybiAoRmlsZVN0cmVhbSopc3RkZXJyOwor
fQorCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcmVtb3ZlKGNvbnN0IGNo
YXIqIGZpbGVOYW1lKXsKKyAgICByZXR1cm4gKHJlbW92ZShmaWxlTmFtZSkgPT0gMCk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVz
dHJtLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVzdHJt
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGVlYmE5OGI2NjFmZDYxNzgxMTFiMGJlMDllOTMxOWViOWYxMWEwMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5i
cmsvZmlsZXN0cm0uaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBGSUxFU1RSTS5ICisqCisq
IENvbnRhaW5zIEZpbGVTdHJlYW0gaW50ZXJmYWNlCisqCisqIEBhdXRob3IgICAgICAgR2xlbm4g
TWFyY3kKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFt
ZSAgICAgICAgRGVzY3JpcHRpb24KKyogICA1LzgvOTggICAgICBnbSAgICAgICAgICBDcmVhdGVk
LgorKiAgMDMvMDIvOTkgICAgIHN0ZXBoZW4gICAgIFJlb3JkZXJlZCBwYXJhbXMgaW4gdW5nZXRj
IHRvIG1hdGNoIHN0ZGlvCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgd29wZW4K
KyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBGSUxFU1RSTV9ICisjZGVm
aW5lIEZJTEVTVFJNX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKK3R5cGVkZWYg
c3RydWN0IF9GaWxlU3RyZWFtIEZpbGVTdHJlYW07CisKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VY
UE9SVDIKK1RfRmlsZVN0cmVhbV9vcGVuKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFy
KiBtb2RlKTsKKworLyoKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVh
bV93b3Blbihjb25zdCB3Y2hhcl90KiBmaWxlbmFtZSwgY29uc3Qgd2NoYXJfdCogbW9kZSk7Cisq
LworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fY2xvc2UoRmlsZVN0cmVhbSog
ZmlsZVN0cmVhbSk7CisKK1VfQ0FQSSBVQm9vbCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9maWxl
X2V4aXN0cyhjb25zdCBjaGFyKiBmaWxlbmFtZSk7CisKKy8qCitVX0NBUEkgRmlsZVN0cmVhbSog
VV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fdG1wZmlsZSh2b2lkKTsKKyovCisKK1VfQ0FQSSBpbnQz
Ml90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3JlYWQoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwg
dm9pZCogYWRkciwgaW50MzJfdCBsZW4pOworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1Rf
RmlsZVN0cmVhbV93cml0ZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCB2b2lkKiBhZGRy
LCBpbnQzMl90IGxlbik7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3Jl
d2luZChGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKworLypBZGRlZCBieSBCZXJ0cmFuZCBBLiBE
LiAqLworVV9DQVBJIGNoYXIgKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9yZWFkTGluZShGaWxl
U3RyZWFtKiBmaWxlU3RyZWFtLCBjaGFyKiBidWZmZXIsIGludDMyX3QgbGVuZ3RoKTsKKworVV9D
QVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fd3JpdGVMaW5lKEZpbGVTdHJlYW0q
IGZpbGVTdHJlYW0sIGNvbnN0IGNoYXIqIGJ1ZmZlcik7CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQ
T1JUMgorVF9GaWxlU3RyZWFtX3B1dGMoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgaW50MzJfdCBj
aCk7CisKK1VfQ0FQSSBpbnQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fZ2V0YyhGaWxlU3RyZWFt
KiBmaWxlU3RyZWFtKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1f
dW5nZXRjKGludDMyX3QgY2gsIEZpbGVTdHJlYW0gKmZpbGVTdHJlYW0pOworCitVX0NBUEkgaW50
MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9wZWVrKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0p
OworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9zaXplKEZpbGVTdHJl
YW0qIGZpbGVTdHJlYW0pOworCitVX0NBUEkgaW50IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX2Vv
ZihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKworVV9DQVBJIGludCBVX0VYUE9SVDIKK1RfRmls
ZVN0cmVhbV9lcnJvcihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKworLyoKK1VfQ0FQSSB2b2lk
IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3NldEVycm9yKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0p
OworKi8KKworVV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3N0ZGlu
KHZvaWQpOworCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3Rk
b3V0KHZvaWQpOworCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1f
c3RkZXJyKHZvaWQpOworCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcmVt
b3ZlKGNvbnN0IGNoYXIqIGZpbGVOYW1lKTsKKworI2VuZGlmIC8qIF9GSUxFU1RSTSovCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2dlbmJyay5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2dlbmJyay5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzJjNmNmZmU3YjUyOTZkZTg2NzhlZmFlMDRiNDc1OTc0MDhmNmEwNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsv
Z2VuYnJrLmNwcApAQCAtMCwwICsxLDM0NiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5
cmlnaHQgKEMpIDIwMDItMjAwOSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorKgorKiBGaWxlIGdlbmJyay5jCisqLworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICBU
b29sIGZvciBnZW5lcmF0aW5nIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZGF0YSBmaWxlcyAoLmJy
ayBmaWxlcykuCisvLyAgIC5icmsgZmlsZXMgY29udGFpbiB0aGUgcHJlY29tcGlsZWQgcnVsZXMg
Zm9yIHN0YW5kYXJkIHR5cGVzCisvLyAgIG9mIGl0ZXJhdG9ycyAtIHdvcmQsIGxpbmUsIHNlbnRl
bmNlLCBldGMuCisvLworLy8gICBVc2FnZTogIGdlbmJyayBbb3B0aW9uc10gLXIgcnVsZS1maWxl
LnR4dCAgLW8gb3V0cHV0LWZpbGUuYnJrCisvLworLy8gICAgICAgb3B0aW9uczogICAtdiAgICAg
ICAgIHZlcmJvc2UKKy8vICAgICAgICAgICAgICAgICAgLT8gb3IgLWggICBoZWxwCisvLworLy8g
ICBUaGUgaW5wdXQgcnVsZSBmaWxlIGlzIGEgcGxhaW4gdGV4dCBmaWxlIGNvbnRhaW5pbmcgYnJl
YWsgcnVsZXMKKy8vICAgIGluIHRoZSBpbnB1dCBmb3JtYXQgYWNjZXB0ZWQgYnkgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvcnMuICBUaGUKKy8vICAgIGZpbGUgY2FuIGJlIGVuY29kZWQgYXMgdXRmLTgs
IG9yIHV0Zi0xNiAoZWl0aGVyIGVuZGlhbiksIG9yCisvLyAgICBpbiB0aGUgZGVmYXVsdCBjb2Rl
IHBhZ2UgKHBsYXRmb3JtIGRlcGVuZGVudC4pLiAgdXRmIGVuY29kZWQKKy8vICAgIGZpbGVzIG11
c3QgaW5jbHVkZSBhIEJPTS4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpbmNsdWRlICJ1bmljb2Rl
L3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWNudi5oIgorI2luY2x1ZGUgInVuaWNvZGUv
dW5pc3RyLmgiCisjaW5jbHVkZSAidW5pY29kZS9yYmJpLmgiCisjaW5jbHVkZSAidW5pY29kZS91
Y2xlYW4uaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisjaW5jbHVkZSAidW5pY29kZS9w
dXRpbC5oIgorCisjaW5jbHVkZSAidW9wdGlvbnMuaCIKKyNpbmNsdWRlICJ1bmV3ZGF0YS5oIgor
I2luY2x1ZGUgInVjbW5kYXRhLmgiCisjaW5jbHVkZSAicmJiaWRhdGEuaCIKKyNpbmNsdWRlICJj
bWVtb3J5LmgiCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2lu
Y2x1ZGUgPHN0cmluZy5oPgorCitVX05BTUVTUEFDRV9VU0UKKworc3RhdGljIGNoYXIgKnByb2dO
YW1lOworc3RhdGljIFVPcHRpb24gb3B0aW9uc1tdPXsKKyAgICBVT1BUSU9OX0hFTFBfSCwgICAg
ICAgICAgICAgLyogMCAqLworICAgIFVPUFRJT05fSEVMUF9RVUVTVElPTl9NQVJLLCAvKiAxICov
CisgICAgVU9QVElPTl9WRVJCT1NFLCAgICAgICAgICAgIC8qIDIgKi8KKyAgICB7ICJydWxlcyIs
IE5VTEwsIE5VTEwsIE5VTEwsICdyJywgVU9QVF9SRVFVSVJFU19BUkcsIDAgfSwgICAvKiAzICov
CisgICAgeyAib3V0IiwgICBOVUxMLCBOVUxMLCBOVUxMLCAnbycsIFVPUFRfUkVRVUlSRVNfQVJH
LCAwIH0sICAgLyogNCAqLworICAgIFVPUFRJT05fSUNVREFUQURJUiwgICAgICAgICAvKiA1ICov
CisgICAgVU9QVElPTl9ERVNURElSLCAgICAgICAgICAgIC8qIDYgKi8KKyAgICBVT1BUSU9OX0NP
UFlSSUdIVCwgICAgICAgICAgLyogNyAqLworfTsKKwordm9pZCB1c2FnZUFuZERpZShpbnQgcmV0
Q29kZSkgeworICAgICAgICBwcmludGYoIlVzYWdlOiAlcyBbLXZdIFstb3B0aW9uc10gLXIgcnVs
ZS1maWxlIC1vIG91dHB1dC1maWxlXG4iLCBwcm9nTmFtZSk7CisgICAgICAgIHByaW50ZigiXHRS
ZWFkIGluIGJyZWFrIGl0ZXJhdGlvbiBydWxlcyB0ZXh0IGFuZCB3cml0ZSBvdXQgdGhlIGJpbmFy
eSBkYXRhXG4iCisgICAgICAgICAgICAib3B0aW9uczpcbiIKKyAgICAgICAgICAgICJcdC1oIG9y
IC0/IG9yIC0taGVscCAgdGhpcyB1c2FnZSB0ZXh0XG4iCisgICAgICAgICAgICAiXHQtViBvciAt
LXZlcnNpb24gICAgIHNob3cgYSB2ZXJzaW9uIG1lc3NhZ2VcbiIKKyAgICAgICAgICAgICJcdC1j
IG9yIC0tY29weXJpZ2h0ICAgaW5jbHVkZSBhIGNvcHlyaWdodCBub3RpY2VcbiIKKyAgICAgICAg
ICAgICJcdC12IG9yIC0tdmVyYm9zZSAgICAgdHVybiBvbiB2ZXJib3NlIG91dHB1dFxuIgorICAg
ICAgICAgICAgIlx0LWkgb3IgLS1pY3VkYXRhZGlyICBkaXJlY3RvcnkgZm9yIGxvY2F0aW5nIGFu
eSBuZWVkZWQgaW50ZXJtZWRpYXRlIGRhdGEgZmlsZXMsXG4iCisgICAgICAgICAgICAiXHQgICAg
ICAgICAgICAgICAgICAgIGZvbGxvd2VkIGJ5IHBhdGgsIGRlZmF1bHRzIHRvICVzXG4iCisgICAg
ICAgICAgICAiXHQtZCBvciAtLWRlc3RkaXIgICAgIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSwgZm9s
bG93ZWQgYnkgdGhlIHBhdGhcbiIsCisgICAgICAgICAgICB1X2dldERhdGFEaXJlY3RvcnkoKSk7
CisgICAgICAgIGV4aXQgKHJldENvZGUpOworfQorCisKKyNpZiBVQ09ORklHX05PX0JSRUFLX0lU
RVJBVElPTiB8fCBVQ09ORklHX05PX0ZJTEVfSU8KKworLyogZHVtbXkgVURhdGFJbmZvIGNmLiB1
ZGF0YS5oICovCitzdGF0aWMgVURhdGFJbmZvIGR1bW15RGF0YUluZm8gPSB7CisgICAgc2l6ZW9m
KFVEYXRhSW5mbyksCisgICAgMCwKKworICAgIFVfSVNfQklHX0VORElBTiwKKyAgICBVX0NIQVJT
RVRfRkFNSUxZLAorICAgIFVfU0laRU9GX1VDSEFSLAorICAgIDAsCisKKyAgICB7IDAsIDAsIDAs
IDAgfSwgICAgICAgICAgICAgICAgIC8qIGR1bW15IGRhdGFGb3JtYXQgKi8KKyAgICB7IDAsIDAs
IDAsIDAgfSwgICAgICAgICAgICAgICAgIC8qIGR1bW15IGZvcm1hdFZlcnNpb24gKi8KKyAgICB7
IDAsIDAsIDAsIDAgfSAgICAgICAgICAgICAgICAgIC8qIGR1bW15IGRhdGFWZXJzaW9uICovCit9
OworCisjZWxzZQorCisvLworLy8gIFNldCB1cCB0aGUgSUNVIGRhdGEgaGVhZGVyLCBkZWZpbmVk
IGluIHVjbW5kYXRhLmgKKy8vCitEYXRhSGVhZGVyIGRoID17CisgICAge3NpemVvZihEYXRhSGVh
ZGVyKSwgICAgICAgICAgIC8vIFN0cnVjdCBNYXBwZWREYXRhCisgICAgICAgIDB4ZGEsCisgICAg
ICAgIDB4Mjd9LAorCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdHJ1
Y3QgVURhdGFJbmZvCisgICAgICAgIHNpemVvZihVRGF0YUluZm8pLCAgICAgICAgICAvLyAgICAg
c2l6ZQorICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIHJlc2VydmVk
CisgICAgICAgIFVfSVNfQklHX0VORElBTiwKKyAgICAgICAgVV9DSEFSU0VUX0ZBTUlMWSwKKyAg
ICAgICAgVV9TSVpFT0ZfVUNIQVIsCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyAgICAgcmVzZXJ2ZWQKKworICAgIHsgMHg0MiwgMHg3MiwgMHg2YiwgMHgyMCB9LCAgICAg
Ly8gICAgIGRhdGFGb3JtYXQ9IkJyayAiCisgICAgeyAweGZmLCAwLCAwLCAwIH0sICAgICAgICAg
ICAgICAvLyAgICAgZm9ybWF0VmVyc2lvbi4gIEZpbGxlZCBpbiBsYXRlciB3aXRoIHZhbHVlcwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICBmcm9tIHRoZSBSQkJJ
IHJ1bGUgYnVpbGRlci4gIFRoZSAgdmFsdWVzIGRlY2xhcmVkCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAgICAgIGhlcmUgc2hvdWxkIG5ldmVyIGFwcGVhciBpbiBhbnkg
cmVhbCBSQkJJIGRhdGEuCisgICAgICAgIHsgNCwgMSwgMCwgMCB9ICAgICAgICAgICAgICAvLyAg
IGRhdGFWZXJzaW9uIChVbmljb2RlIHZlcnNpb24pCisgICAgfX07CisKKyNlbmRpZgorCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgbWFpbiAgICAgIGZvciBnZW5icmsKKy8vCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK2ludCAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAg
ICBVRXJyb3JDb2RlICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgY29uc3QgY2hhciAqcnVs
ZUZpbGVOYW1lOworICAgIGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lOworICAgIGNvbnN0IGNoYXIg
Km91dERpciA9IE5VTEw7CisgICAgY29uc3QgY2hhciAqY29weXJpZ2h0ID0gTlVMTDsKKworICAg
IC8vCisgICAgLy8gUGljayB1cCBhbmQgY2hlY2sgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMs
CisgICAgLy8gICAgdXNpbmcgdGhlIHN0YW5kYXJkIElDVSB0b29sIHV0aWxzIG9wdGlvbiBoYW5k
bGluZy4KKyAgICAvLworICAgIFVfTUFJTl9JTklUX0FSR1MoYXJnYywgYXJndik7CisgICAgcHJv
Z05hbWUgPSBhcmd2WzBdOworICAgIGFyZ2M9dV9wYXJzZUFyZ3MoYXJnYywgYXJndiwgc2l6ZW9m
KG9wdGlvbnMpL3NpemVvZihvcHRpb25zWzBdKSwgb3B0aW9ucyk7CisgICAgaWYoYXJnYzwwKSB7
CisgICAgICAgIC8vIFVucmVjb2duaXplZCBvcHRpb24KKyAgICAgICAgZnByaW50ZihzdGRlcnIs
ICJlcnJvciBpbiBjb21tYW5kIGxpbmUgYXJndW1lbnQgXCIlc1wiXG4iLCBhcmd2Wy1hcmdjXSk7
CisgICAgICAgIHVzYWdlQW5kRGllKFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUik7CisgICAgfQor
CisgICAgaWYob3B0aW9uc1swXS5kb2VzT2NjdXIgfHwgb3B0aW9uc1sxXS5kb2VzT2NjdXIpIHsK
KyAgICAgICAgLy8gIC0/IG9yIC1oIGZvciBoZWxwLgorICAgICAgICB1c2FnZUFuZERpZSgwKTsK
KyAgICB9CisKKyAgICBpZiAoIShvcHRpb25zWzNdLmRvZXNPY2N1ciAmJiBvcHRpb25zWzRdLmRv
ZXNPY2N1cikpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJydWxlIGZpbGUgYW5kIG91dHB1
dCBmaWxlIG11c3QgYm90aCBiZSBzcGVjaWZpZWQuXG4iKTsKKyAgICAgICAgdXNhZ2VBbmREaWUo
VV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SKTsKKyAgICB9CisgICAgcnVsZUZpbGVOYW1lID0gb3B0
aW9uc1szXS52YWx1ZTsKKyAgICBvdXRGaWxlTmFtZSAgPSBvcHRpb25zWzRdLnZhbHVlOworCisg
ICAgaWYgKG9wdGlvbnNbNV0uZG9lc09jY3VyKSB7CisgICAgICAgIHVfc2V0RGF0YURpcmVjdG9y
eShvcHRpb25zWzVdLnZhbHVlKTsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7
CisKKyAgICAvKiBDb21iaW5lIHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUgZmlsZSBuYW1lICovCisg
ICAgaWYob3B0aW9uc1s2XS5kb2VzT2NjdXIpIHsKKyAgICAgICAgb3V0RGlyID0gb3B0aW9uc1s2
XS52YWx1ZTsKKyAgICB9CisgICAgaWYgKG9wdGlvbnNbN10uZG9lc09jY3VyKSB7CisgICAgICAg
IGNvcHlyaWdodCA9IFVfQ09QWVJJR0hUX1NUUklORzsKKyAgICB9CisKKyNpZiBVQ09ORklHX05P
X0JSRUFLX0lURVJBVElPTiB8fCBVQ09ORklHX05PX0ZJTEVfSU8KKworICAgIFVOZXdEYXRhTWVt
b3J5ICpwRGF0YTsKKyAgICBjaGFyIG1zZ1sxMDI0XTsKKworICAgIC8qIHdyaXRlIG1lc3NhZ2Ug
d2l0aCBqdXN0IHRoZSBuYW1lICovCisgICAgc3ByaW50Zihtc2csICJnZW5icmsgd3JpdGVzIGR1
bW15ICVzIGJlY2F1c2Ugb2YgVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gYW5kL29yIFVDT05G
SUdfTk9fRklMRV9JTywgc2VlIHVjb25maWcuaCIsIG91dEZpbGVOYW1lKTsKKyAgICBmcHJpbnRm
KHN0ZGVyciwgIiVzXG4iLCBtc2cpOworCisgICAgLyogd3JpdGUgdGhlIGR1bW15IGRhdGEgZmls
ZSAqLworICAgIHBEYXRhID0gdWRhdGFfY3JlYXRlKG91dERpciwgTlVMTCwgb3V0RmlsZU5hbWUs
ICZkdW1teURhdGFJbmZvLCBOVUxMLCAmc3RhdHVzKTsKKyAgICB1ZGF0YV93cml0ZUJsb2NrKHBE
YXRhLCBtc2csIHN0cmxlbihtc2cpKTsKKyAgICB1ZGF0YV9maW5pc2gocERhdGEsICZzdGF0dXMp
OworICAgIHJldHVybiAoaW50KXN0YXR1czsKKworI2Vsc2UKKyAgICAvKiBJbml0aWFsaXplIElD
VSAqLworICAgIHVfaW5pdCgmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsK
KyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczogY2FuIG5vdCBpbml0aWFsaXplIElDVS4gIHN0
YXR1cyA9ICVzXG4iLAorICAgICAgICAgICAgYXJndlswXSwgdV9lcnJvck5hbWUoc3RhdHVzKSk7
CisgICAgICAgIGV4aXQoMSk7CisgICAgfQorICAgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKwor
ICAgIC8vCisgICAgLy8gIFJlYWQgaW4gdGhlIHJ1bGUgc291cmNlIGZpbGUKKyAgICAvLworICAg
IGxvbmcgICAgICAgIHJlc3VsdDsKKyAgICBsb25nICAgICAgICBydWxlRmlsZVNpemU7CisgICAg
RklMRSAgICAgICAgKmZpbGU7CisgICAgY2hhciAgICAgICAgKnJ1bGVCdWZmZXJDOworCisgICAg
ZmlsZSA9IGZvcGVuKHJ1bGVGaWxlTmFtZSwgInJiIik7CisgICAgaWYoIGZpbGUgPT0gMCApIHsK
KyAgICAgICAgZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIlxuIiwg
cnVsZUZpbGVOYW1lKTsKKyAgICAgICAgZXhpdCgtMSk7CisgICAgfQorICAgIGZzZWVrKGZpbGUs
IDAsIFNFRUtfRU5EKTsKKyAgICBydWxlRmlsZVNpemUgPSBmdGVsbChmaWxlKTsKKyAgICBmc2Vl
ayhmaWxlLCAwLCBTRUVLX1NFVCk7CisgICAgcnVsZUJ1ZmZlckMgPSBuZXcgY2hhcltydWxlRmls
ZVNpemUrMTBdOworCisgICAgcmVzdWx0ID0gKGxvbmcpZnJlYWQocnVsZUJ1ZmZlckMsIDEsIHJ1
bGVGaWxlU2l6ZSwgZmlsZSk7CisgICAgaWYgKHJlc3VsdCAhPSBydWxlRmlsZVNpemUpICB7Cisg
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3IgcmVhZGluZyBmaWxlIFwiJXNcIlxuIiwgcnVs
ZUZpbGVOYW1lKTsKKyAgICAgICAgZXhpdCAoLTEpOworICAgIH0KKyAgICBydWxlQnVmZmVyQ1ty
dWxlRmlsZVNpemVdPTA7CisgICAgZmNsb3NlKGZpbGUpOworCisgICAgLy8KKyAgICAvLyBMb29r
IGZvciBhIFVuaWNvZGUgU2lnbmF0dXJlIChCT00pIG9uIHRoZSBydWxlIGZpbGUKKyAgICAvLwor
ICAgIGludDMyX3QgICAgICAgIHNpZ25hdHVyZUxlbmd0aDsKKyAgICBjb25zdCBjaGFyICogICBy
dWxlU291cmNlQyA9IHJ1bGVCdWZmZXJDOworICAgIGNvbnN0IGNoYXIqICAgIGVuY29kaW5nID0g
dWNudl9kZXRlY3RVbmljb2RlU2lnbmF0dXJlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
cnVsZVNvdXJjZUMsIHJ1bGVGaWxlU2l6ZSwgJnNpZ25hdHVyZUxlbmd0aCwgJnN0YXR1cyk7Cisg
ICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9
CisgICAgaWYoZW5jb2RpbmchPU5VTEwgKXsKKyAgICAgICAgcnVsZVNvdXJjZUMgICs9IHNpZ25h
dHVyZUxlbmd0aDsKKyAgICAgICAgcnVsZUZpbGVTaXplIC09IHNpZ25hdHVyZUxlbmd0aDsKKyAg
ICB9CisKKyAgICAvLworICAgIC8vIE9wZW4gYSBjb252ZXJ0ZXIgdG8gdGFrZSB0aGUgcnVsZSBm
aWxlIHRvIFVURi0xNgorICAgIC8vCisgICAgVUNvbnZlcnRlciogY29udjsKKyAgICBjb252ID0g
dWNudl9vcGVuKGVuY29kaW5nLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykp
IHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1Y252X29wZW46IElDVSBFcnJvciBcIiVzXCJc
biIsIHVfZXJyb3JOYW1lKHN0YXR1cykpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfQor
CisgICAgLy8KKyAgICAvLyBDb252ZXJ0IHRoZSBydWxlcyB0byBVQ2hhci4KKyAgICAvLyAgUHJl
ZmxpZ2h0IGZpcnN0IHRvIGRldGVybWluZSByZXF1aXJlZCBidWZmZXIgc2l6ZS4KKyAgICAvLwor
ICAgIHVpbnQzMl90IGRlc3RDYXAgPSB1Y252X3RvVUNoYXJzKGNvbnYsCisgICAgICAgICAgICAg
ICAgICAgICAgIE5VTEwsICAgICAgICAgICAvLyAgZGVzdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgMCwgICAgICAgICAgICAgIC8vICBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAg
ICAgIHJ1bGVTb3VyY2VDLAorICAgICAgICAgICAgICAgICAgICAgICBydWxlRmlsZVNpemUsCisg
ICAgICAgICAgICAgICAgICAgICAgICZzdGF0dXMpOworICAgIGlmIChzdGF0dXMgIT0gVV9CVUZG
RVJfT1ZFUkZMT1dfRVJST1IpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1Y252X3RvVUNo
YXJzOiBJQ1UgRXJyb3IgXCIlc1wiXG4iLCB1X2Vycm9yTmFtZShzdGF0dXMpKTsKKyAgICAgICAg
ZXhpdChzdGF0dXMpOworICAgIH07CisKKyAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAg
VUNoYXIgKnJ1bGVTb3VyY2VVID0gbmV3IFVDaGFyW2Rlc3RDYXArMV07CisgICAgdWNudl90b1VD
aGFycyhjb252LAorICAgICAgICAgICAgICAgICAgcnVsZVNvdXJjZVUsICAgICAvLyAgZGVzdCwK
KyAgICAgICAgICAgICAgICAgIGRlc3RDYXArMSwKKyAgICAgICAgICAgICAgICAgIHJ1bGVTb3Vy
Y2VDLAorICAgICAgICAgICAgICAgICAgcnVsZUZpbGVTaXplLAorICAgICAgICAgICAgICAgICAg
JnN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGZwcmludGYo
c3RkZXJyLCAidWNudl90b1VDaGFyczogSUNVIEVycm9yIFwiJXNcIlxuIiwgdV9lcnJvck5hbWUo
c3RhdHVzKSk7CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9OworICAgIHVjbnZfY2xvc2Uo
Y29udik7CisKKworICAgIC8vCisgICAgLy8gIFB1dCB0aGUgc291cmNlIHJ1bGVzIGludG8gYSBV
bmljb2RlU3RyaW5nCisgICAgLy8KKyAgICBVbmljb2RlU3RyaW5nIHJ1bGVTb3VyY2VTKEZBTFNF
LCBydWxlU291cmNlVSwgZGVzdENhcCk7CisKKyAgICAvLworICAgIC8vICBDcmVhdGUgdGhlIGJy
ZWFrIGl0ZXJhdG9yIGZyb20gdGhlIHJ1bGVzCisgICAgLy8gICAgIFRoaXMgd2lsbCBjb21waWxl
IHRoZSBydWxlcy4KKyAgICAvLworICAgIFVQYXJzZUVycm9yIHBhcnNlRXJyb3I7CisgICAgcGFy
c2VFcnJvci5saW5lID0gMDsKKyAgICBwYXJzZUVycm9yLm9mZnNldCA9IDA7CisgICAgUnVsZUJh
c2VkQnJlYWtJdGVyYXRvciAqYmkgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihydWxlU291
cmNlUywgcGFyc2VFcnJvciwgc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsK
KyAgICAgICAgZnByaW50ZihzdGRlcnIsICJjcmVhdGVSdWxlQmFzZWRCcmVha0l0ZXJhdG9yOiBJ
Q1UgRXJyb3IgXCIlc1wiICBhdCBsaW5lICVkLCBjb2x1bW4gJWRcbiIsCisgICAgICAgICAgICAg
ICAgdV9lcnJvck5hbWUoc3RhdHVzKSwgKGludClwYXJzZUVycm9yLmxpbmUsIChpbnQpcGFyc2VF
cnJvci5vZmZzZXQpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfTsKKworCisgICAgLy8K
KyAgICAvLyAgR2V0IHRoZSBjb21waWxlZCBydWxlIGRhdGEgZnJvbSB0aGUgYnJlYWsgaXRlcmF0
b3IuCisgICAgLy8KKyAgICB1aW50MzJfdCAgICAgICAgb3V0RGF0YVNpemU7CisgICAgY29uc3Qg
dWludDhfdCAgKm91dERhdGE7CisgICAgb3V0RGF0YSA9IGJpLT5nZXRCaW5hcnlSdWxlcyhvdXRE
YXRhU2l6ZSk7CisKKyAgICAvLyBDb3B5IHRoZSBkYXRhIGZvcm1hdCB2ZXJzaW9uIG51bWJlcnMg
ZnJvbSB0aGUgUkJCSSBkYXRhIGhlYWRlciBpbnRvIHRoZSBVRGF0YU1lbW9yeSBoZWFkZXIuCisg
ICAgdXBydl9tZW1jcHkoZGguaW5mby5mb3JtYXRWZXJzaW9uLCAoKFJCQklEYXRhSGVhZGVyICop
b3V0RGF0YSktPmZGb3JtYXRWZXJzaW9uLCBzaXplb2YoZGguaW5mby5mb3JtYXRWZXJzaW9uKSk7
CisKKyAgICAvLworICAgIC8vICBDcmVhdGUgdGhlIG91dHB1dCBmaWxlCisgICAgLy8KKyAgICBz
aXplX3QgYnl0ZXNXcml0dGVuOworICAgIFVOZXdEYXRhTWVtb3J5ICpwRGF0YTsKKyAgICBwRGF0
YSA9IHVkYXRhX2NyZWF0ZShvdXREaXIsIE5VTEwsIG91dEZpbGVOYW1lLCAmKGRoLmluZm8pLCBj
b3B5cmlnaHQsICZzdGF0dXMpOworICAgIGlmKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAg
IGZwcmludGYoc3RkZXJyLCAiZ2VuYnJrOiBDb3VsZCBub3Qgb3BlbiBvdXRwdXQgZmlsZSBcIiVz
XCIsIFwiJXNcIlxuIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgb3V0RmlsZU5hbWUsIHVf
ZXJyb3JOYW1lKHN0YXR1cykpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfQorCisKKyAg
ICAvLyAgV3JpdGUgdGhlIGRhdGEgaXRzZWxmLgorICAgIHVkYXRhX3dyaXRlQmxvY2socERhdGEs
IG91dERhdGEsIG91dERhdGFTaXplKTsKKyAgICAvLyBmaW5pc2ggdXAgCisgICAgYnl0ZXNXcml0
dGVuID0gdWRhdGFfZmluaXNoKHBEYXRhLCAmc3RhdHVzKTsKKyAgICBpZihVX0ZBSUxVUkUoc3Rh
dHVzKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImdlbmJyazogZXJyb3IgJWQgd3JpdGlu
ZyB0aGUgb3V0cHV0IGZpbGVcbiIsIHN0YXR1cyk7CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAg
ICB9CisgICAgCisgICAgaWYgKGJ5dGVzV3JpdHRlbiAhPSBvdXREYXRhU2l6ZSkgeworICAgICAg
ICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yIHdyaXRpbmcgdG8gb3V0cHV0IGZpbGUgXCIlc1wiXG4i
LCBvdXRGaWxlTmFtZSk7CisgICAgICAgIGV4aXQoLTEpOworICAgIH0KKworICAgIGRlbGV0ZSBi
aTsKKyAgICBkZWxldGVbXSBydWxlU291cmNlVTsKKyAgICBkZWxldGVbXSBydWxlQnVmZmVyQzsK
KyAgICB1X2NsZWFudXAoKTsKKworCisgICAgcHJpbnRmKCJnZW5icms6IHRvb2wgY29tcGxldGVk
IHN1Y2Nlc3NmdWxseS5cbiIpOworICAgIHJldHVybiAwOworCisjZW5kaWYgLyogI2lmICFVQ09O
RklHX05PX0JSRUFLX0lURVJBVElPTiAqLworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3B1dGlsaW1wLmggYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3B1dGlsaW1wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDJjMWM2NmYx
NzAxNDVjM2QwYmMwMjNiNjE3MDk1NzMzNDAyMDViNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvcHV0aWxpbXAuaApAQCAtMCwwICsx
LDYxMSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykg
MTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRp
b24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKyoKKyogIEZJTEUgTkFNRSA6IHB1dGlsaW1wLmgKKyoKKyogICBEYXRlICAgICAgICBO
YW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDEwLzE3LzA0ICAgIGdyaG90ZW4gICAgIE1vdmUg
aW50ZXJuYWwgZnVuY3Rpb25zIGZyb20gcHV0aWwuaCB0byB0aGlzIGZpbGUuCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyovCisKKyNpZm5kZWYgUFVUSUxJTVBfSAorI2RlZmluZSBQVVRJTElNUF9I
CisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwu
aCIKKworLyoqCisgKiBcZGVmIFVfU0lHTkVEX1JJR0hUX1NISUZUX0lTX0FSSVRITUVUSUMKKyAq
IE5lYXJseSBhbGwgQ1BVcyBhbmQgY29tcGlsZXJzIGltcGxlbWVudCBhIHJpZ2h0LXNoaWZ0IG9m
IGEgc2lnbmVkIGludGVnZXIKKyAqIGFzIGFuIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgd2hpY2gg
Y29waWVzIHRoZSBzaWduIGJpdCAodGhlIE1vc3QgU2lnbmlmaWNhbnQgQml0IChNU0IpKQorICog
aW50byB0aGUgdmFjYXRlZCBiaXRzIChzaWduIGV4dGVuc2lvbikuCisgKiBGb3IgZXhhbXBsZSwg
KGludDMyX3QpMHhmZmY1ZmZmMz4+NCBiZWNvbWVzIDB4ZmZmZjVmZmYgYW5kIC0xPj4xPS0xLgor
ICoKKyAqIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3Igc3RvcmluZyBhIHNpZ25lZCB2YWx1ZSBpbiB0
aGUgdXBwZXIgYml0cworICogYW5kIGFub3RoZXIgYml0IGZpZWxkIGluIHRoZSBsb3dlciBiaXRz
LgorICogVGhlIHNpZ25lZCB2YWx1ZSBjYW4gYmUgcmV0cmlldmVkIGJ5IHNpbXBsZSByaWdodC1z
aGlmdGluZy4KKyAqCisgKiBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgSmF2YSBsYW5ndWFn
ZS4KKyAqCisgKiBIb3dldmVyLCB0aGUgQyBzdGFuZGFyZCBhbGxvd3MgY29tcGlsZXJzIHRvIGlt
cGxlbWVudCBhIHJpZ2h0LXNoaWZ0IG9mIGEgc2lnbmVkIGludGVnZXIKKyAqIGFzIGEgTG9naWNh
bCBTaGlmdCBSaWdodCB3aGljaCBjb3BpZXMgYSAwIGludG8gdGhlIHZhY2F0ZWQgYml0cy4KKyAq
IEZvciBleGFtcGxlLCAoaW50MzJfdCkweGZmZjVmZmYzPj40IGJlY29tZXMgMHgwZmZmNWZmZiBh
bmQgLTE+PjE9MHg3ZmZmZmZmZi4KKyAqCisgKiBDb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgbmF0
dXJhbCBiZWhhdmlvciBzaG91bGQgYmUgZ3VhcmRlZCB3aXRoIHRoaXMgbWFjcm8sCisgKiB3aXRo
IGFuIGFsdGVybmF0ZSBwYXRoIGZvciB1bnVzdWFsIHBsYXRmb3Jtcy4KKyAqIEBpbnRlcm5hbAor
ICovCisjaWZkZWYgVV9TSUdORURfUklHSFRfU0hJRlRfSVNfQVJJVEhNRVRJQworICAgIC8qIFVz
ZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbHNlCisgICAgLyoKKyAgICAgKiBOZWFybHkg
YWxsIENQVXMgJiBjb21waWxlcnMgaW1wbGVtZW50IGEgcmlnaHQtc2hpZnQgb2YgYSBzaWduZWQg
aW50ZWdlcgorICAgICAqIGFzIGFuIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgKHdpdGggc2lnbiBl
eHRlbnNpb24pLgorICAgICAqLworIyAgIGRlZmluZSBVX1NJR05FRF9SSUdIVF9TSElGVF9JU19B
UklUSE1FVElDIDEKKyNlbmRpZgorCisvKiogRGVmaW5lIHRoaXMgdG8gMSBpZiB5b3VyIHBsYXRm
b3JtIHN1cHBvcnRzIElFRUUgNzU0IGZsb2F0aW5nIHBvaW50LAorICAgdG8gMCBpZiBpdCBkb2Vz
IG5vdC4gKi8KKyNpZm5kZWYgSUVFRV83NTQKKyMgICBkZWZpbmUgSUVFRV83NTQgMQorI2VuZGlm
CisKKy8qKgorICogdWludHB0cl90IGlzIGFuIG9wdGlvbmFsIHBhcnQgb2YgdGhlIHN0YW5kYXJk
IGRlZmluaXRpb25zIGluIHN0ZGludC5oLgorICogVGhlIG9wZW5ncm91cC5vcmcgZG9jdW1lbnRh
dGlvbiBmb3Igc3RkaW50Lmggc2F5cworICogIk9uIFhTSS1jb25mb3JtYW50IHN5c3RlbXMsIHRo
ZSBpbnRwdHJfdCBhbmQgdWludHB0cl90IHR5cGVzIGFyZSByZXF1aXJlZDsKKyAqIG90aGVyd2lz
ZSwgdGhleSBhcmUgb3B0aW9uYWwuIgorICogV2UgYXNzdW1lIHRoYXQgd2hlbiB1aW50cHRyX3Qg
aXMgZGVmaW5lZCwgVUlOVFBUUl9NQVggaXMgZGVmaW5lZCBhcyB3ZWxsLgorICoKKyAqIERvIG5v
dCB1c2UgcHRyZGlmZl90IHNpbmNlIGl0IGlzIHNpZ25lZC4gc2l6ZV90IGlzIHVuc2lnbmVkLgor
ICovCisvKiBUT0RPOiBUaGlzIGNoZWNrIGZhaWxzIG9uIHNvbWUgeiBlbnZpcm9ubWVudHMuIEZp
bGVkIGEgdGlja2V0ICM5MzU3IGZvciB0aGlzLiAqLworI2lmICFkZWZpbmVkKF9faW50cHRyX3Rf
ZGVmaW5lZCkgJiYgIWRlZmluZWQoVUlOVFBUUl9NQVgpICYmIChVX1BMQVRGT1JNICE9IFVfUEZf
T1MzOTApCit0eXBlZGVmIHNpemVfdCB1aW50cHRyX3Q7CisjZW5kaWYKKworLyoqCisgKiBcZGVm
IFVfSEFWRV9NU1ZDXzIwMDNfT1JfRUFSTElFUgorICogRmxhZyBmb3Igd29ya2Fyb3VuZCBvZiBN
U1ZDIDIwMDMgb3B0aW1pemF0aW9uIGJ1Z3MKKyAqIEBpbnRlcm5hbAorICovCisjaWYgIWRlZmlu
ZWQoVV9IQVZFX01TVkNfMjAwM19PUl9FQVJMSUVSKSAmJiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAo
X01TQ19WRVIgPCAxNDAwKQorI2RlZmluZSBVX0hBVkVfTVNWQ18yMDAzX09SX0VBUkxJRVIKKyNl
bmRpZgorCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisvKiogQHsgSW5mb3JtYXRpb24gYWJvdXQg
UE9TSVggc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSovCisKKyNpZmRlZiBVX0hBVkVfTkxfTEFOR0lORk9fQ09ERVNF
VAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1f
SEFTX1dJTjMyX0FQSSB8fCBVX1BMQVRGT1JNID09IFVfUEZfQU5EUk9JRCB8fCBVX1BMQVRGT1JN
ID09IFVfUEZfUU5YCisjICAgZGVmaW5lIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUIDAKKyNl
bHNlCisjICAgZGVmaW5lIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUIDEKKyNlbmRpZgorCisj
aWZkZWYgVV9OTF9MQU5HSU5GT19DT0RFU0VUCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgIVVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUCisjICAgZGVmaW5lIFVf
TkxfTEFOR0lORk9fQ09ERVNFVCAtMQorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisg
ICAvKiBub3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9OTF9MQU5HSU5GT19DT0RF
U0VUIENPREVTRVQKKyNlbmRpZgorCisjaWZkZWYgVV9UWlNFVAorICAgIC8qIFVzZSB0aGUgcHJl
ZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSQor
IyAgIGRlZmluZSBVX1RaU0VUIF90enNldAorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAw
CisgICAvKiBub3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9UWlNFVCB0enNldAor
I2VuZGlmCisKKyNpZiBkZWZpbmVkKFVfVElNRVpPTkUpIHx8IGRlZmluZWQoVV9IQVZFX1RJTUVa
T05FKQorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZP
Uk0gPT0gVV9QRl9BTkRST0lECisjICAgZGVmaW5lIFVfVElNRVpPTkUgdGltZXpvbmUKKyNlbGlm
IFVfUExBVEZPUk1fSVNfTElOVVhfQkFTRUQKKyMgICBpZiBkZWZpbmVkKF9fVUNMSUJDX18pCisg
ICAgICAgLyogdUNsaWJjIGRvZXMgbm90IGhhdmUgX190aW1lem9uZSBvciBfdGltZXpvbmUuICov
CisjICAgZWxpZiBkZWZpbmVkKF9ORVdMSUJfVkVSU0lPTikKKyMgICAgICBkZWZpbmUgVV9USU1F
Wk9ORSAgICAgIF90aW1lem9uZQorIyAgIGVsaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICAgICAg
LyogZ2xpYmMgKi8KKyMgICAgICBkZWZpbmUgVV9USU1FWk9ORSAgICAgIF9fdGltZXpvbmUKKyMg
ICBlbmRpZgorI2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5l
IFVfVElNRVpPTkUgX3RpbWV6b25lCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQlNEICYmICFk
ZWZpbmVkKF9fTmV0QlNEX18pCisgICAvKiBub3QgZGVmaW5lZCAqLworI2VsaWYgVV9QTEFURk9S
TSA9PSBVX1BGX09TNDAwCisgICAvKiBub3QgZGVmaW5lZCAqLworI2VsaWYgVV9QTEFURk9STSA9
PSBVX1BGX0lQSE9ORQorICAgLyogbm90IGRlZmluZWQgKi8KKyNlbHNlCisjICAgZGVmaW5lIFVf
VElNRVpPTkUgdGltZXpvbmUKKyNlbmRpZgorCisjaWZkZWYgVV9UWk5BTUUKKyAgICAvKiBVc2Ug
dGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4z
Ml9BUEkKKyMgICBkZWZpbmUgVV9UWk5BTUUgX3R6bmFtZQorI2VsaWYgVV9QTEFURk9STSA9PSBV
X1BGX09TNDAwCisgICAvKiBub3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9UWk5B
TUUgdHpuYW1lCisjZW5kaWYKKworI2lmZGVmIFVfSEFWRV9NTUFQCisgICAgLyogVXNlIHRoZSBw
cmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisjICAg
ZGVmaW5lIFVfSEFWRV9NTUFQIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9NTUFQIDEKKyNl
bmRpZgorCisjaWZkZWYgVV9IQVZFX1BPUEVOCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5l
IFVfSEFWRV9QT1BFTiAwCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAKKyMgICBkZWZp
bmUgVV9IQVZFX1BPUEVOIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9QT1BFTiAxCisjZW5k
aWYKKworLyoqCisgKiBcZGVmIFVfSEFWRV9ESVJFTlRfSAorICogRGVmaW5lcyB3aGV0aGVyIGRp
cmVudC5oIGlzIGF2YWlsYWJsZS4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX0RJ
UkVOVF9ICisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFU
Rk9STV9IQVNfV0lOMzJfQVBJCisjICAgZGVmaW5lIFVfSEFWRV9ESVJFTlRfSCAwCisjZWxzZQor
IyAgIGRlZmluZSBVX0hBVkVfRElSRU5UX0ggMQorI2VuZGlmCisKKy8qKiBAfSAqLworCisvKj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSovCisvKiogQHsgR0NDIGJ1aWx0IGluIGZ1bmN0aW9ucyBmb3IgYXRv
bWljIG1lbW9yeSBvcGVyYXRpb25zICAgICAgICAgICAgICAgICAgICovCisvKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCisKKy8qKgorICogXGRlZiBVX0hBVkVfR0NDX0FUT01JQ1MKKyAqIEBpbnRlcm5h
bAorICovCisjaWZkZWYgVV9IQVZFX0dDQ19BVE9NSUNTCisgICAgLyogVXNlIHRoZSBwcmVkZWZp
bmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX01JTkdXCisgICAgI2RlZmlu
ZSBVX0hBVkVfR0NDX0FUT01JQ1MgMAorI2VsaWYgVV9HQ0NfTUFKT1JfTUlOT1IgPj0gNDA0IHx8
IGRlZmluZWQoX19jbGFuZ19fKQorICAgIC8qIFRPRE86IEludGVsIGljYyBhbmQgSUJNIHhsYyBv
biBBSVggYWxzbyBzdXBwb3J0IGdjYyBhdG9taWNzLiAgKEludGVsIG9yaWdpbmF0ZWQgdGhlbS4p
CisgICAgICogICAgICAgQWRkIHRoZW0gZm9yIHRoZXNlIGNvbXBpbGVycy4KKyAgICAgKiBOb3Rl
OiBDbGFuZyBzZXRzIF9fR05VQ19fIGRlZmluZXMgZm9yIHZlcnNpb24gNC4yLCBzbyBtaXNzZXMg
dGhlIDQuNCB0ZXN0IGhlcmUuCisgICAgICovCisjICAgZGVmaW5lIFVfSEFWRV9HQ0NfQVRPTUlD
UyAxCisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfR0NDX0FUT01JQ1MgMAorI2VuZGlmCisKKy8q
KiBAfSAqLworCisvKioKKyAqIFxkZWYgVV9IQVZFX1NURF9BVE9NSUNTCisgKiBEZWZpbmVzIHdo
ZXRoZXIgdGhlIHN0YW5kYXJkIEMrKzExIDxhdG9taWM+IGlzIGF2YWlsYWJsZS4KKyAqIElDVSB3
aWxsIHVzZSB0aGlzIHdoZW4gYXZpYWxhYmxlLAorICogb3RoZXJ3aXNlIHdpbGwgZmFsbCBiYWNr
IHRvIGNvbXBpbGVyIG9yIHBsYXRmb3JtIHNwZWNpZmljIGFsdGVybmF0aXZlcy4KKyAqIEBpbnRl
cm5hbAorICovCisjaWZkZWYgVV9IQVZFX1NURF9BVE9NSUNTCisgICAgLyogVXNlIHRoZSBwcmVk
ZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgIWRlZmluZWQoX19jcGx1c3BsdXMpIHx8IF9fY3BsdXNw
bHVzPDIwMTEwM0wKKyAgICAvKiBOb3QgQysrMTEsIGRpc2FibGUgdXNlIG9mIGF0b21pY3MgKi8K
KyMgICBkZWZpbmUgVV9IQVZFX1NURF9BVE9NSUNTIDAKKyNlbGlmIF9fY2xhbmdfXyAmJiBfX2Ns
YW5nX21ham9yX189PTMgJiYgX19jbGFuZ19taW5vcl9fPD0xCisgICAgLyogQ2xhbmcgMy4xLCBo
YXMgYXRvbWljIHZhcmlhYmxlIGluaXRpYWxpemVyIGJ1Zy4gKi8KKyMgICBkZWZpbmUgVV9IQVZF
X1NURF9BVE9NSUNTIDAKKyNlbHNlIAorICAgIC8qIFVfSEFWRV9BVE9NSUMgaXMgdHlwaWNhbGx5
IHNldCBieSBhbiBhdXRvY29uZiB0ZXN0IG9mICNpbmNsdWRlIDxhdG9taWM+ICAqLworICAgIC8q
ICAgQ2FuIGJlIHNldCBtYW51YWxseSwgb3IgbGVmdCB1bmRlZmluZWQsIG9uIHBsYXRmb3JtcyB3
aXRob3V0IGF1dG9jb25mLiAqLworIyAgIGlmIGRlZmluZWQoVV9IQVZFX0FUT01JQykgJiYgIFVf
SEFWRV9BVE9NSUMgCisjICAgICAgZGVmaW5lIFVfSEFWRV9TVERfQVRPTUlDUyAxCisjICAgZWxz
ZQorIyAgICAgIGRlZmluZSBVX0hBVkVfU1REX0FUT01JQ1MgMAorIyAgIGVuZGlmCisjZW5kaWYK
KworCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSovCisvKiogQHsgQ29kZSBhbGlnbm1lbnQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSovCisKKy8qKgorICogXGRlZiBVX0FMSUdOX0NPREUKKyAqIFRoaXMg
aXMgdXNlZCB0byBhbGlnbiBjb2RlIGZyYWdtZW50cyB0byBhIHNwZWNpZmljIGJ5dGUgYm91bmRh
cnkuCisgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2V0dGluZyBjb25zaXN0ZW50IHBlcmZvcm1hbmNl
IHRlc3QgcmVzdWx0cy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9BTElHTl9DT0RFCisg
ICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChfTVNDX1ZF
UikgJiYgZGVmaW5lZChfTV9JWDg2KSAmJiAhZGVmaW5lZChfTUFOQUdFRCkKKyMgICBkZWZpbmUg
VV9BTElHTl9DT0RFKGJvdW5kYXJ5U2l6ZSkgX19hc20gIGFsaWduIGJvdW5kYXJ5U2l6ZQorI2Vs
c2UKKyMgICBkZWZpbmUgVV9BTElHTl9DT0RFKGJvdW5kYXJ5U2l6ZSkgCisjZW5kaWYKKworLyoq
IEB9ICovCisKKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKy8qKiBAeyBQcm9ncmFtcyB1c2VkIGJ5
IElDVSBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
Ky8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ki8KKworLyoqCisgKiBcZGVmIFVfTUFLRV9JU19OTUFLRQor
ICogRGVmaW5lcyB3aGV0aGVyIHRoZSAibWFrZSIgcHJvZ3JhbSBpcyBXaW5kb3dzIG5tYWtlLgor
ICovCisjaWZkZWYgVV9NQUtFX0lTX05NQUtFCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX1dJTkRPV1MKKyMgICBkZWZpbmUgVV9N
QUtFX0lTX05NQUtFIDEKKyNlbHNlCisjICAgZGVmaW5lIFVfTUFLRV9JU19OTUFLRSAwCisjZW5k
aWYKKworLyoqIEB9ICovCisKKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworLyogUGxhdGZvcm0gdXRp
bGl0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICovCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKworLyoqCisgKiBQbGF0Zm9ybSB1dGlsaXRp
ZXMgaXNvbGF0ZXMgdGhlIHBsYXRmb3JtIGRlcGVuZGVuY2llcyBvZiB0aGUKKyAqIGxpYmFyYXJ5
LiAgRm9yIGVhY2ggcGxhdGZvcm0gd2hpY2ggdGhpcyBjb2RlIGlzIHBvcnRlZCB0bywgdGhlc2UK
KyAqIGZ1bmN0aW9ucyBtYXkgaGF2ZSB0byBiZSByZS1pbXBsZW1lbnRlZC4KKyAqLworCisvKioK
KyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gZGV0ZXJtaW5lIGlmIGEgZG91YmxlIGlzIE5v
dCBhIE51bWJlciAoTmFOKS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIFVCb29sICAg
VV9FWFBPUlQyIHVwcnZfaXNOYU4oZG91YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1
dGlsaXR5IHRvIGRldGVybWluZSBpZiBhIGRvdWJsZSBoYXMgYW4gaW5maW5pdGUgdmFsdWUuCisg
KiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBVQm9vbCAgIFVfRVhQT1JUMiB1cHJ2X2lzSW5m
aW5pdGUoZG91YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGRldGVy
bWluZSBpZiBhIGRvdWJsZSBoYXMgYSBwb3NpdGl2ZSBpbmZpbml0ZSB2YWx1ZS4KKyAqIEBpbnRl
cm5hbAorICovCitVX0lOVEVSTkFMIFVCb29sICAgVV9FWFBPUlQyIHVwcnZfaXNQb3NpdGl2ZUlu
ZmluaXR5KGRvdWJsZSBkKTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBkZXRl
cm1pbmUgaWYgYSBkb3VibGUgaGFzIGEgbmVnYXRpdmUgaW5maW5pdGUgdmFsdWUuCisgKiBAaW50
ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBVQm9vbCAgIFVfRVhQT1JUMiB1cHJ2X2lzTmVnYXRpdmVJ
bmZpbml0eShkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdGhhdCBy
ZXR1cm5zIGEgTm90IGEgTnVtYmVyIChOYU4pIHZhbHVlLgorICogQGludGVybmFsCisgKi8KK1Vf
SU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9nZXROYU4odm9pZCk7CisvKioKKyAqIEZs
b2F0aW5nIHBvaW50IHV0aWxpdHkgdGhhdCByZXR1cm5zIGFuIGluZmluaXRlIHZhbHVlLgorICog
QGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9nZXRJbmZp
bml0eSh2b2lkKTsKKworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIHRydW5jYXRl
IGEgZG91YmxlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9S
VDIgdXBydl90cnVuYyhkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkg
dG8gY2FsY3VsYXRlIHRoZSBmbG9vciBvZiBhIGRvdWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitV
X0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfZmxvb3IoZG91YmxlIGQpOworLyoqCisg
KiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSB0aGUgY2VpbGluZyBvZiBhIGRv
dWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVw
cnZfY2VpbChkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2Fs
Y3VsYXRlIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiBhIGRvdWJsZS4KKyAqIEBpbnRlcm5hbAorICov
CitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfZmFicyhkb3VibGUgZCk7CisvKioK
KyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBmcmFjdGlvbmFsIGFu
ZCBpbnRlZ2VyIHBhcnRzIG9mIGEgZG91YmxlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJO
QUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9tb2RmKGRvdWJsZSBkLCBkb3VibGUqIHBpbnRlZ2Vy
KTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIHJlbWFp
bmRlciBvZiBhIGRvdWJsZSBkaXZpZGVkIGJ5IGFub3RoZXIgZG91YmxlLgorICogQGludGVybmFs
CisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9mbW9kKGRvdWJsZSBkLCBk
b3VibGUgeSk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIGQg
dG8gdGhlIHBvd2VyIG9mIGV4cG9uZW50IChkXmV4cG9uZW50KS4KKyAqIEBpbnRlcm5hbAorICov
CitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfcG93KGRvdWJsZSBkLCBkb3VibGUg
ZXhwb25lbnQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSAx
MCB0byB0aGUgcG93ZXIgb2YgZXhwb25lbnQgKDEwXmV4cG9uZW50KS4KKyAqIEBpbnRlcm5hbAor
ICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfcG93MTAoaW50MzJfdCBleHBv
bmVudCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBt
YXhpbXVtIHZhbHVlIG9mIHR3byBkb3VibGVzLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJO
QUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9mbWF4KGRvdWJsZSBkLCBkb3VibGUgeSk7CisvKioK
KyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBtaW5pbXVtIHZhbHVl
IG9mIHR3byBkb3VibGVzLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBV
X0VYUE9SVDIgdXBydl9mbWluKGRvdWJsZSBkLCBkb3VibGUgeSk7CisvKioKKyAqIFByaXZhdGUg
dXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIG1heGltdW0gdmFsdWUgb2YgdHdvIGludGVnZXJzLgor
ICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgaW50MzJfdCBVX0VYUE9SVDIgdXBydl9tYXgo
aW50MzJfdCBkLCBpbnQzMl90IHkpOworLyoqCisgKiBQcml2YXRlIHV0aWxpdHkgdG8gY2FsY3Vs
YXRlIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHR3byBpbnRlZ2Vycy4KKyAqIEBpbnRlcm5hbAorICov
CitVX0lOVEVSTkFMIGludDMyX3QgVV9FWFBPUlQyIHVwcnZfbWluKGludDMyX3QgZCwgaW50MzJf
dCB5KTsKKworI2lmIFVfSVNfQklHX0VORElBTgorIyAgIGRlZmluZSB1cHJ2X2lzTmVnYXRpdmUo
bnVtYmVyKSAoKigoc2lnbmVkIGNoYXIgKikmKG51bWJlcikpPDApCisjZWxzZQorIyAgIGRlZmlu
ZSB1cHJ2X2lzTmVnYXRpdmUobnVtYmVyKSAoKigoc2lnbmVkIGNoYXIgKikmKG51bWJlcikrc2l6
ZW9mKG51bWJlciktMSk8MCkKKyNlbmRpZgorCisvKioKKyAqIFJldHVybiB0aGUgbGFyZ2VzdCBw
b3NpdGl2ZSBudW1iZXIgdGhhdCBjYW4gYmUgcmVwcmVzZW50ZWQgYnkgYW4gaW50ZWdlcgorICog
dHlwZSBvZiBhcmJpdHJhcnkgYml0IGxlbmd0aC4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVS
TkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfbWF4TWFudGlzc2Eodm9pZCk7CisKKy8qKgorICog
RmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIGxvZ2FyaXRobSBvZiBhIGRv
dWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVw
cnZfbG9nKGRvdWJsZSBkKTsKKworLyoqCisgKiBEb2VzIGNvbW1vbiBub3Rpb24gb2Ygcm91bmRp
bmcgZS5nLiB1cHJ2X2Zsb29yKHggKyAwLjUpOworICogQHBhcmFtIHggdGhlIGRvdWJsZSBudW1i
ZXIKKyAqIEByZXR1cm4gdGhlIHJvdW5kZWQgZG91YmxlCisgKiBAaW50ZXJuYWwKKyAqLworVV9J
TlRFUk5BTCBkb3VibGUgIFVfRVhQT1JUMiB1cHJ2X3JvdW5kKGRvdWJsZSB4KTsKKworI2lmIDAK
Ky8qKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBw
b2ludCBpbiBhIGRvdWJsZSBudW1iZXIgeC4KKyAqCisgKiBAcGFyYW0geCB0aGUgZG91YmxlIG51
bWJlcgorICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBw
b2ludCBpbiBhIGRvdWJsZSBudW1iZXIgeC4KKyAqIEBpbnRlcm5hbAorICovCisvKlVfSU5URVJO
QUwgaW50MzJfdCAgVV9FWFBPUlQyIHVwcnZfZGlnaXRzQWZ0ZXJEZWNpbWFsKGRvdWJsZSB4KTsq
LworI2VuZGlmCisKKyNpZiAhVV9DSEFSU0VUX0lTX1VURjgKKy8qKgorICogUGxlYXNlIHVzZSB1
Y252X2dldERlZmF1bHROYW1lKCkgaW5zdGVhZC4KKyAqIFJldHVybiB0aGUgZGVmYXVsdCBjb2Rl
cGFnZSBmb3IgdGhpcyBwbGF0Zm9ybSBhbmQgbG9jYWxlLgorICogVGhpcyBmdW5jdGlvbiBjYW4g
Y2FsbCBzZXRsb2NhbGUoKSBvbiBVbml4IHBsYXRmb3Jtcy4gUGxlYXNlIHJlYWQgdGhlCisgKiBw
bGF0Zm9ybSBkb2N1bWVudGF0aW9uIG9uIHNldGxvY2FsZSgpIGJlZm9yZSBjYWxsaW5nIHRoaXMg
ZnVuY3Rpb24uCisgKiBAcmV0dXJuIHRoZSBkZWZhdWx0IGNvZGVwYWdlIGZvciB0aGlzIHBsYXRm
b3JtIAorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgY29uc3QgY2hhciogIFVfRVhQT1JU
MiB1cHJ2X2dldERlZmF1bHRDb2RlcGFnZSh2b2lkKTsKKyNlbmRpZgorCisvKioKKyAqIFBsZWFz
ZSB1c2UgdWxvY19nZXREZWZhdWx0KCkgaW5zdGVhZC4KKyAqIFJldHVybiB0aGUgZGVmYXVsdCBs
b2NhbGUgSUQgc3RyaW5nIGJ5IHF1ZXJ5aW5nIHRocyBzeXN0ZW0sIG9yCisgKiAgICAgemVybyBp
ZiBvbmUgY2Fubm90IGJlIGZvdW5kLiAKKyAqIFRoaXMgZnVuY3Rpb24gY2FuIGNhbGwgc2V0bG9j
YWxlKCkgb24gVW5peCBwbGF0Zm9ybXMuIFBsZWFzZSByZWFkIHRoZQorICogcGxhdGZvcm0gZG9j
dW1lbnRhdGlvbiBvbiBzZXRsb2NhbGUoKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgor
ICogQHJldHVybiB0aGUgZGVmYXVsdCBsb2NhbGUgSUQgc3RyaW5nCisgKiBAaW50ZXJuYWwKKyAq
LworVV9JTlRFUk5BTCBjb25zdCBjaGFyKiAgVV9FWFBPUlQyIHVwcnZfZ2V0RGVmYXVsdExvY2Fs
ZUlEKHZvaWQpOworCisvKioKKyAqIFRpbWUgem9uZSB1dGlsaXRpZXMKKyAqCisgKiBXcmFwcGVy
cyBmb3IgQyBydW50aW1lIGxpYnJhcnkgZnVuY3Rpb25zIHJlbGF0aW5nIHRvIHRpbWV6b25lcy4K
KyAqIFRoZSB0X3R6c2V0KCkgZnVuY3Rpb24gKHNpbWlsYXIgdG8gdHpzZXQpIHVzZXMgdGhlIGN1
cnJlbnQgc2V0dGluZworICogb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIFRaIHRvIGFzc2ln
biB2YWx1ZXMgdG8gdGhyZWUgZ2xvYmFsCisgKiB2YXJpYWJsZXM6IGRheWxpZ2h0LCB0aW1lem9u
ZSwgYW5kIHR6bmFtZS4gVGhlc2UgdmFyaWFibGVzIGhhdmUgdGhlCisgKiBmb2xsb3dpbmcgbWVh
bmluZ3MsIGFuZCBhcmUgZGVjbGFyZWQgaW4gJmx0O3RpbWUuaCZndDsuCisgKgorICogICBkYXls
aWdodCAgIE5vbnplcm8gaWYgZGF5bGlnaHQtc2F2aW5nLXRpbWUgem9uZSAoRFNUKSBpcyBzcGVj
aWZpZWQKKyAqICAgICAgICAgICAgICBpbiBUWjsgb3RoZXJ3aXNlLCAwLiBEZWZhdWx0IHZhbHVl
IGlzIDEuCisgKiAgIHRpbWV6b25lICAgRGlmZmVyZW5jZSBpbiBzZWNvbmRzIGJldHdlZW4gY29v
cmRpbmF0ZWQgdW5pdmVyc2FsCisgKiAgICAgICAgICAgICAgdGltZSBhbmQgbG9jYWwgdGltZS4g
RS5nLiwgLTI4LDgwMCBmb3IgUFNUIChHTVQtOGhycykKKyAqICAgdHpuYW1lKDApICBUaHJlZS1s
ZXR0ZXIgdGltZS16b25lIG5hbWUgZGVyaXZlZCBmcm9tIFRaIGVudmlyb25tZW50CisgKiAgICAg
ICAgICAgICAgdmFyaWFibGUuIEUuZy4sICJQU1QiLgorICogICB0em5hbWUoMSkgIFRocmVlLWxl
dHRlciBEU1Qgem9uZSBuYW1lIGRlcml2ZWQgZnJvbSBUWiBlbnZpcm9ubWVudAorICogICAgICAg
ICAgICAgIHZhcmlhYmxlLiAgRS5nLiwgIlBEVCIuIElmIERTVCB6b25lIGlzIG9taXR0ZWQgZnJv
bSBUWiwKKyAqICAgICAgICAgICAgICB0em5hbWUoMSkgaXMgYW4gZW1wdHkgc3RyaW5nLgorICoK
KyAqIE5vdGVzOiBGb3IgZXhhbXBsZSwgdG8gc2V0IHRoZSBUWiBlbnZpcm9ubWVudCB2YXJpYWJs
ZSB0byBjb3JyZXNwb25kCisgKiB0byB0aGUgY3VycmVudCB0aW1lIHpvbmUgaW4gR2VybWFueSwg
eW91IGNhbiB1c2Ugb25lIG9mIHRoZQorICogZm9sbG93aW5nIHN0YXRlbWVudHM6CisgKgorICog
ICBzZXQgVFo9R1NUMUdEVAorICogICBzZXQgVFo9R1NUKzFHRFQKKyAqCisgKiBJZiB0aGUgVFog
dmFsdWUgaXMgbm90IHNldCwgdF90enNldCgpIGF0dGVtcHRzIHRvIHVzZSB0aGUgdGltZSB6b25l
CisgKiBpbmZvcm1hdGlvbiBzcGVjaWZpZWQgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0uIFVuZGVy
IFdpbmRvd3MgTlQKKyAqIGFuZCBXaW5kb3dzIDk1LCB0aGlzIGluZm9ybWF0aW9uIGlzIHNwZWNp
ZmllZCBpbiB0aGUgQ29udHJvbCBQYW5lbCdzCisgKiBEYXRlL1RpbWUgYXBwbGljYXRpb24uCisg
KiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCB2b2lkICAgICBVX0VYUE9SVDIgdXBydl90enNl
dCh2b2lkKTsKKworLyoqCisgKiBEaWZmZXJlbmNlIGluIHNlY29uZHMgYmV0d2VlbiBjb29yZGlu
YXRlZCB1bml2ZXJzYWwKKyAqIHRpbWUgYW5kIGxvY2FsIHRpbWUuIEUuZy4sIC0yOCw4MDAgZm9y
IFBTVCAoR01ULThocnMpCisgKiBAcmV0dXJuIHRoZSBkaWZmZXJlbmNlIGluIHNlY29uZHMgYmV0
d2VlbiBjb29yZGluYXRlZCB1bml2ZXJzYWwgdGltZSBhbmQgbG9jYWwgdGltZS4KKyAqIEBpbnRl
cm5hbAorICovCitVX0lOVEVSTkFMIGludDMyX3QgIFVfRVhQT1JUMiB1cHJ2X3RpbWV6b25lKHZv
aWQpOworCisvKioKKyAqICAgdHpuYW1lKDApICBUaHJlZS1sZXR0ZXIgdGltZS16b25lIG5hbWUg
ZGVyaXZlZCBmcm9tIFRaIGVudmlyb25tZW50CisgKiAgICAgICAgICAgICAgdmFyaWFibGUuIEUu
Zy4sICJQU1QiLgorICogICB0em5hbWUoMSkgIFRocmVlLWxldHRlciBEU1Qgem9uZSBuYW1lIGRl
cml2ZWQgZnJvbSBUWiBlbnZpcm9ubWVudAorICogICAgICAgICAgICAgIHZhcmlhYmxlLiAgRS5n
LiwgIlBEVCIuIElmIERTVCB6b25lIGlzIG9taXR0ZWQgZnJvbSBUWiwKKyAqICAgICAgICAgICAg
ICB0em5hbWUoMSkgaXMgYW4gZW1wdHkgc3RyaW5nLgorICogQGludGVybmFsCisgKi8KK1VfSU5U
RVJOQUwgY29uc3QgY2hhciogVV9FWFBPUlQyIHVwcnZfdHpuYW1lKGludCBuKTsKKworLyoqCisg
KiBHZXQgVVRDIChHTVQpIHRpbWUgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIDA6MDAg
b24gMS8xLzE5NzAuCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGFmZmVjdGVkIGJ5ICdmYWtldGltZScg
YW5kIHNob3VsZCBiZSB0aGUgYm90dGxlbmVjayBmb3IgYWxsIHVzZXItdmlzaWJsZSBJQ1UgdGlt
ZSBmdW5jdGlvbnMuCisgKiBAcmV0dXJuIHRoZSBVVEMgdGltZSBtZWFzdXJlZCBpbiBtaWxsaXNl
Y29uZHMKKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIFVEYXRlIFVfRVhQT1JUMiB1cHJ2
X2dldFVUQ3RpbWUodm9pZCk7CisKKy8qKgorICogR2V0IFVUQyAoR01UKSB0aW1lIG1lYXN1cmVk
IGluIG1pbGxpc2Vjb25kcyBzaW5jZSAwOjAwIG9uIDEvMS8xOTcwLgorICogVGhpcyBmdW5jdGlv
biBpcyBub3QgYWZmZWN0ZWQgYnkgJ2Zha2V0aW1lJywgc28gaXQgc2hvdWxkIG9ubHkgYmUgdXNl
ZCBieSBsb3cgbGV2ZWwgdGVzdCBmdW5jdGlvbnMtIG5vdCBieSBhbnl0aGluZyB0aGF0CisgKiBl
eHBvc2VzIHRpbWUgdG8gdGhlIGVuZCB1c2VyLgorICogQHJldHVybiB0aGUgVVRDIHRpbWUgbWVh
c3VyZWQgaW4gbWlsbGlzZWNvbmRzCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBVRGF0
ZSBVX0VYUE9SVDIgdXBydl9nZXRSYXdVVEN0aW1lKHZvaWQpOworCisvKioKKyAqIERldGVybWlu
ZSB3aGV0aGVyIGEgcGF0aG5hbWUgaXMgYWJzb2x1dGUgb3Igbm90LCBhcyBkZWZpbmVkIGJ5IHRo
ZSBwbGF0Zm9ybS4KKyAqIEBwYXJhbSBwYXRoIFBhdGhuYW1lIHRvIHRlc3QKKyAqIEByZXR1cm4g
VFJVRSBpZiB0aGUgcGF0aCBpcyBhYnNvbHV0ZQorICogQGludGVybmFsIChJQ1UgMy4wKQorICov
CitVX0lOVEVSTkFMIFVCb29sIFVfRVhQT1JUMiB1cHJ2X3BhdGhJc0Fic29sdXRlKGNvbnN0IGNo
YXIgKnBhdGgpOworCisvKioKKyAqIFVzZSBVX01BWF9QVFIgaW5zdGVhZCBvZiB0aGlzIGZ1bmN0
aW9uLgorICogQHBhcmFtIHZvaWQgcG9pbnRlciB0byB0ZXN0CisgKiBAcmV0dXJuIHRoZSBsYXJn
ZXN0IHBvc3NpYmxlIHBvaW50ZXIgZ3JlYXRlciB0aGFuIHRoZSBiYXNlCisgKiBAaW50ZXJuYWwg
KElDVSAzLjgpCisgKi8KK1VfSU5URVJOQUwgdm9pZCAqIFVfRVhQT1JUMiB1cHJ2X21heGltdW1Q
dHIodm9pZCAqYmFzZSk7CisKKy8qKgorICogTWF4aW11bSB2YWx1ZSBvZiBhICh2b2lkKikgLSB1
c2UgdG8gaW5kaWNhdGUgdGhlIGxpbWl0IG9mIGFuICdpbmZpbml0ZScgYnVmZmVyLgorICogSW4g
ZmFjdCwgYnVmZmVyIHNpemVzIG11c3Qgbm90IGV4Y2VlZCAyR0Igc28gdGhhdCB0aGUgZGlmZmVy
ZW5jZSBiZXR3ZWVuCisgKiB0aGUgYnVmZmVyIGxpbWl0IGFuZCB0aGUgYnVmZmVyIHN0YXJ0IGNh
biBiZSBleHByZXNzZWQgaW4gYW4gaW50MzJfdC4KKyAqCisgKiBUaGUgZGVmaW5pdGlvbiBvZiBV
X01BWF9QVFIgbXVzdCBmdWxmaWxsIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqIC0gcmV0
dXJuIHRoZSBsYXJnZXN0IHBvc3NpYmxlIHBvaW50ZXIgZ3JlYXRlciB0aGFuIGJhc2UKKyAqIC0g
cmV0dXJuIGEgdmFsaWQgcG9pbnRlciBhY2NvcmRpbmcgdG8gdGhlIG1hY2hpbmUgYXJjaGl0ZWN0
dXJlIChBUy80MDAsIDY0LWJpdCwgZXRjLikKKyAqIC0gYXZvaWQgd3JhcHBpbmcgYXJvdW5kIGF0
IGhpZ2ggYWRkcmVzc2VzCisgKiAtIG1ha2Ugc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBwb2ludGVy
IGlzIG5vdCBmYXJ0aGVyIGZyb20gYmFzZSB0aGFuIDB4N2ZmZmZmZmYgYnl0ZXMKKyAqCisgKiBA
cGFyYW0gYmFzZSBUaGUgYmVnaW5uaW5nIG9mIGEgYnVmZmVyIHRvIGZpbmQgdGhlIG1heGltdW0g
b2Zmc2V0IGZyb20KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfTUFYX1BUUgorIyAgaWYg
VV9QTEFURk9STSA9PSBVX1BGX09TMzkwICYmICFkZWZpbmVkKF9MUDY0KQorICAgIC8qIFdlIGhh
dmUgMzEtYml0IHBvaW50ZXJzLiAqLworIyAgICBkZWZpbmUgVV9NQVhfUFRSKGJhc2UpICgodm9p
ZCAqKTB4N2ZmZmZmZmYpCisjICBlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMAorIyAgICBk
ZWZpbmUgVV9NQVhfUFRSKGJhc2UpIHVwcnZfbWF4aW11bVB0cigodm9pZCAqKWJhc2UpCisjICBl
bGlmIDAKKyAgICAvKgorICAgICAqIEZvciBwbGF0Zm9ybXMgd2hlcmUgcG9pbnRlcnMgYXJlIHNj
YWxhciB2YWx1ZXMgKHdoaWNoIGlzIG5vcm1hbCwgYnV0IHVubGlrZSBpNS9PUykKKyAgICAgKiBi
dXQgdGhhdCBkbyBub3QgZGVmaW5lIHVpbnRwdHJfdC4KKyAgICAgKgorICAgICAqIEhvd2V2ZXIs
IHRoaXMgZG9lcyBub3Qgd29yayBvbiBtb2Rlcm4gY29tcGlsZXJzOgorICAgICAqIFRoZSBDKysg
c3RhbmRhcmQgZG9lcyBub3QgZGVmaW5lIHBvaW50ZXIgb3ZlcmZsb3csIGFuZCBhbGxvd3MgY29t
cGlsZXJzIHRvCisgICAgICogYXNzdW1lIHRoYXQgcCt1PnAgZm9yIGFueSBwb2ludGVyIHAgYW5k
IGFueSBpbnRlZ2VyIHU+MC4KKyAgICAgKiBUaHVzLCBtb2Rlcm4gY29tcGlsZXJzIG9wdGltaXpl
IGF3YXkgdGhlICI+IiBjb21wYXJpc29uLgorICAgICAqIChTZWUgSUNVIHRpY2tldHMgIzcxODcg
YW5kICM4MDk2LikKKyAgICAgKi8KKyMgICAgZGVmaW5lIFVfTUFYX1BUUihiYXNlKSBcCisgICAg
KCh2b2lkICopKCgoY2hhciAqKShiYXNlKSsweDdmZmZmZmZmdSkgPiAoY2hhciAqKShiYXNlKSBc
CisgICAgICAgID8gKChjaGFyICopKGJhc2UpKzB4N2ZmZmZmZmZ1KSBcCisgICAgICAgIDogKGNo
YXIgKiktMSkpCisjICBlbHNlCisgICAgLyogRGVmYXVsdCB2ZXJzaW9uLiBDKysgc3RhbmRhcmQg
Y29tcGxpYW50IGZvciBzY2FsYXIgcG9pbnRlcnMuICovCisjICAgIGRlZmluZSBVX01BWF9QVFIo
YmFzZSkgXAorICAgICgodm9pZCAqKSgoKHVpbnRwdHJfdCkoYmFzZSkrMHg3ZmZmZmZmZnUpID4g
KHVpbnRwdHJfdCkoYmFzZSkgXAorICAgICAgICA/ICgodWludHB0cl90KShiYXNlKSsweDdmZmZm
ZmZmdSkgXAorICAgICAgICA6ICh1aW50cHRyX3QpLTEpKQorIyAgZW5kaWYKKyNlbmRpZgorCisv
KiAgRHluYW1pYyBMaWJyYXJ5IEZ1bmN0aW9ucyAqLworCit0eXBlZGVmIHZvaWQgKFVWb2lkRnVu
Y3Rpb24pKHZvaWQpOworCisjaWYgVV9FTkFCTEVfRFlMT0FECisvKioKKyAqIExvYWQgYSBsaWJy
YXJ5CisgKiBAaW50ZXJuYWwgKElDVSA0LjQpCisgKi8KK1VfSU5URVJOQUwgdm9pZCAqIFVfRVhQ
T1JUMiB1cHJ2X2RsX29wZW4oY29uc3QgY2hhciAqbGliTmFtZSwgVUVycm9yQ29kZSAqc3RhdHVz
KTsKKworLyoqCisgKiBDbG9zZSBhIGxpYnJhcnkKKyAqIEBpbnRlcm5hbCAoSUNVIDQuNCkKKyAq
LworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JUMiB1cHJ2X2RsX2Nsb3NlKCB2b2lkICpsaWIsIFVF
cnJvckNvZGUgKnN0YXR1cyk7CisKKy8qKgorICogRXh0cmFjdCBhIHN5bWJvbCBmcm9tIGEgbGli
cmFyeSAoZnVuY3Rpb24pCisgKiBAaW50ZXJuYWwgKElDVSA0LjgpCisgKi8KK1VfSU5URVJOQUwg
VVZvaWRGdW5jdGlvbiogVV9FWFBPUlQyIHVwcnZfZGxzeW1fZnVuYyggdm9pZCAqbGliLCBjb25z
dCBjaGFyICpzeW1ib2xOYW1lLCBVRXJyb3JDb2RlICpzdGF0dXMpOworCisvKioKKyAqIEV4dHJh
Y3QgYSBzeW1ib2wgZnJvbSBhIGxpYnJhcnkgKGZ1bmN0aW9uKQorICogTm90IGltcGxlbWVudGVk
LCBubyBjbGllbnRzLgorICogQGludGVybmFsCisgKi8KKy8qIFVfSU5URVJOQUwgdm9pZCAqIFVf
RVhQT1JUMiB1cHJ2X2Rsc3ltX2RhdGEoIHZvaWQgKmxpYiwgY29uc3QgY2hhciAqc3ltYm9sTmFt
ZSwgVUVycm9yQ29kZSAqc3RhdHVzKTsgKi8KKworI2VuZGlmCisKKy8qKgorICogRGVmaW5lIG1h
bGxvYyBhbmQgcmVsYXRlZCBmdW5jdGlvbnMKKyAqIEBpbnRlcm5hbAorICovCisjaWYgVV9QTEFU
Rk9STSA9PSBVX1BGX09TNDAwCisjIGRlZmluZSB1cHJ2X2RlZmF1bHRfbWFsbG9jKHgpIF9DX1RT
X21hbGxvYyh4KQorIyBkZWZpbmUgdXBydl9kZWZhdWx0X3JlYWxsb2MoeCx5KSBfQ19UU19yZWFs
bG9jKHgseSkKKyMgZGVmaW5lIHVwcnZfZGVmYXVsdF9mcmVlKHgpIF9DX1RTX2ZyZWUoeCkKKy8q
IGFsc28gX0NfVFNfY2FsbG9jKHgpICovCisjZWxzZQorLyogQyBkZWZhdWx0cyAqLworIyBkZWZp
bmUgdXBydl9kZWZhdWx0X21hbGxvYyh4KSBtYWxsb2MoeCkKKyMgZGVmaW5lIHVwcnZfZGVmYXVs
dF9yZWFsbG9jKHgseSkgcmVhbGxvYyh4LHkpCisjIGRlZmluZSB1cHJ2X2RlZmF1bHRfZnJlZSh4
KSBmcmVlKHgpCisjZW5kaWYKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvcmJiaWRhdGEuaCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvcmJiaWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTI3NGMzYWRi
YmY0OTI1NzFlNzIxM2NjNTIyNGQ0YjExY2VkMzNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9yYmJpZGF0YS5oCkBAIC0wLDAgKzEs
MjAwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykg
MTk5OS0yMDE0IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlv
biBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKyogICBmaWxlIG5hbWU6ICByYmJpZGF0YS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVND
SUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisq
ICAgUkJCSSBkYXRhIGZvcm1hdHMgIEluY2x1ZGVzCisqCisqICAgICAgICAgICAgICAgICAgICAg
ICAgICBTdHJ1Y3RzIHRoYXQgZGVzY3JpYmVzIHRoZSBmb3JtYXQgb2YgdGhlIEJpbmFyeSBSQkJJ
IGRhdGEsCisqICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBpdCBpcyBzdG9yZWQgaW4gSUNV
J3MgZGF0YSBmaWxlLgorKgorKiAgICAgIFJCQklEYXRhV3JhcHBlciAgLSAgSW5zdGFuY2VzIG9m
IHRoaXMgY2xhc3Mgc2l0IGJldHdlZW4gdGhlCisqICAgICAgICAgICAgICAgICAgICAgICAgICBy
YXcgZGF0YSBzdHJ1Y3RzIGFuZCB0aGUgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3Igb2JqZWN0cwor
KiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBhcmUgY3JlYXRlZCBieSBhcHBsaWNhdGlv
bnMuICBUaGUgd3JhcHBlciBjbGFzcworKiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlk
ZXMgcmVmZXJlbmNlIGNvdW50aW5nIGZvciB0aGUgdW5kZXJseWluZyBkYXRhLAorKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgYW5kIGRpcmVjdCBwb2ludGVycyB0byBkYXRhIHRoYXQgd291bGQg
bm90IG90aGVyd2lzZQorKiAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgYWNjZXNzaWJsZSB3
aXRob3V0IHVnbHkgcG9pbnRlciBhcml0aG1ldGljLiAgVGhlCisqICAgICAgICAgICAgICAgICAg
ICAgICAgICB3cmFwcGVyIGRvZXMgbm90IGF0dGVtcHQgdG8gcHJvdmlkZSBhbnkgaGlnaGVyIGxl
dmVsCisqICAgICAgICAgICAgICAgICAgICAgICAgICBhYnN0cmFjdGlvbnMgZm9yIHRoZSBkYXRh
IGl0c2VsZi4KKyoKKyogICAgICAgICAgICAgICAgICAgICAgICAgIFRoZXJlIHdpbGwgYmUgb25s
eSBvbmUgaW5zdGFuY2Ugb2YgUkJCSURhdGFXcmFwcGVyIGZvciBhbnkKKyogICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldCBvZiBSQkJJIHJ1biB0aW1lIGRhdGEgYmVpbmcgc2hhcmVkIGJ5IGlu
c3RhbmNlcworKiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb25lcykgb2YgUnVsZXNCYXNl
ZEJyZWFrSXRlcmF0b3IuCisqLworCisjaWZuZGVmIF9fUkJCSURBVEFfSF9fCisjZGVmaW5lIF9f
UkJCSURBVEFfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdWRhdGEuaCIKKyNpbmNsdWRlICJ1ZGF0YXN3cC5oIgorCisvKioKKyAqIFN3YXAgUkJC
SSBkYXRhLiBTZWUgdWRhdGFzd3AuaC4KKyAqIEBpbnRlcm5hbAorICovCitVX0NBUEkgaW50MzJf
dCBVX0VYUE9SVDIKK3Vicmtfc3dhcChjb25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAg
IGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAg
ICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworCisj
aW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIK
KyNpbmNsdWRlICJ1bXV0ZXguaCIKKyNpbmNsdWRlICJ1dHJpZS5oIgorCitVX05BTUVTUEFDRV9C
RUdJTgorCisvKiAgCisgKiAgIFRoZSBmb2xsb3dpbmcgc3RydWN0cyBtYXAgZXhhY3RseSBvbnRv
IHRoZSByYXcgZGF0YSBmcm9tIElDVSBjb21tb24gZGF0YSBmaWxlLiAKKyAqLworc3RydWN0IFJC
QklEYXRhSGVhZGVyIHsKKyAgICB1aW50MzJfdCAgICAgICAgIGZNYWdpYzsgICAgICAgICAgIC8q
ICA9PSAweGJsYTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICovCisgICAgdWludDhfdCAgICAgICAgICBmRm9ybWF0VmVyc2lvbls0XTsgLyogRGF0YSBGb3Jt
YXQuICBTYW1lIGFzIHRoZSB2YWx1ZSBpbiBzdHJ1Y3QgVURhdGFJbmZvICAgICAgKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgaWYgdGhlcmUgaXMgb25lIGFz
c29jaWF0ZWQgd2l0aCB0aGlzIGRhdGEuICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgKHZlcnNpb24gb3JpZ2luYXRlcyBpbiByYmJp
LCBpcyBjb3BpZWQgdG8gVURhdGFJbmZvKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLyogICBGb3IgSUNVIDMuMiBhbmQgZWFybGllciwgdGhpcyBmaWVsZCB3YXMg
ICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qICAgICAgIHVpbnQzMl90ICBmVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIHdpdGgg
YSB2YWx1ZSBvZiAxLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAg
IHVpbnQzMl90ICAgICAgICAgZkxlbmd0aDsgICAgICAgICAgLyogIFRvdGFsIGxlbmd0aCBpbiBi
eXRlcyBvZiB0aGlzIFJCQkkgRGF0YSwgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgaW5jbHVkaW5nIGFsbCBzZWN0aW9ucywg
bm90IGp1c3QgdGhlIGhlYWRlci4gICAgICAgICovCisgICAgdWludDMyX3QgICAgICAgICBmQ2F0
Q291bnQ7ICAgICAgICAvKiAgTnVtYmVyIG9mIGNoYXJhY3RlciBjYXRlZ29yaWVzLiAgICAgICAg
ICAgICAgICAgICAgICAgICAqLworCisgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIC8qICBP
ZmZzZXRzIGFuZCBzaXplcyBvZiBlYWNoIG9mIHRoZSBzdWJzZWN0aW9ucyB3aXRoaW4gdGhlIFJC
QkkgZGF0YS4gICAgKi8KKyAgICAvKiAgQWxsIG9mZnNldHMgYXJlIGJ5dGVzIGZyb20gdGhlIHN0
YXJ0IG9mIHRoZSBSQkJJRGF0YUhlYWRlci4gICAgICAgICAgICovCisgICAgLyogIEFsbCBzaXpl
cyBhcmUgaW4gYnl0ZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqLworICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZG
VGFibGU7ICAgICAgICAgLyogIGZvcndhcmQgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS4gKi8KKyAg
ICB1aW50MzJfdCAgICAgICAgIGZGVGFibGVMZW47CisgICAgdWludDMyX3QgICAgICAgICBmUlRh
YmxlOyAgICAgICAgIC8qICBPZmZzZXQgdG8gdGhlIHJldmVyc2Ugc3RhdGUgdHJhbnNpdGlvbiB0
YWJsZS4gKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZSVGFibGVMZW47CisgICAgdWludDMyX3Qg
ICAgICAgICBmU0ZUYWJsZTsgICAgICAgIC8qICBzYWZlIHBvaW50IGZvcndhcmQgdHJhbnNpdGlv
biB0YWJsZSAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlNGVGFibGVMZW47CisgICAgdWludDMy
X3QgICAgICAgICBmU1JUYWJsZTsgICAgICAgIC8qICBzYWZlIHBvaW50IHJldmVyc2UgdHJhbnNp
dGlvbiB0YWJsZSAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlNSVGFibGVMZW47CisgICAgdWlu
dDMyX3QgICAgICAgICBmVHJpZTsgICAgICAgICAgIC8qICBPZmZzZXQgdG8gVHJpZSBkYXRhIGZv
ciBjaGFyYWN0ZXIgY2F0ZWdvcmllcyAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlRyaWVMZW47
CisgICAgdWludDMyX3QgICAgICAgICBmUnVsZVNvdXJjZTsgICAgIC8qICBPZmZzZXQgdG8gdGhl
IHNvdXJjZSBmb3IgZm9yIHRoZSBicmVhayAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlJ1bGVT
b3VyY2VMZW47ICAvKiAgICBydWxlcy4gIFN0b3JlZCBVQ2hhciAqLiAqLworICAgIHVpbnQzMl90
ICAgICAgICAgZlN0YXR1c1RhYmxlOyAgICAvKiBPZmZzZXQgdG8gdGhlIHRhYmxlIG9mIHJ1bGUg
c3RhdHVzIHZhbHVlcyAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlN0YXR1c1RhYmxlTGVuOwor
CisgICAgdWludDMyX3QgICAgICAgICBmUmVzZXJ2ZWRbNl07ICAgIC8qICBSZXNlcnZlZCBmb3Ig
ZXhwYW5zaW9uICovCisKK307CisKKworCitzdHJ1Y3QgIFJCQklTdGF0ZVRhYmxlUm93IHsKKyAg
ICBpbnQxNl90ICAgICAgICAgIGZBY2NlcHRpbmc7ICAgIC8qICBOb24temVybyBpZiB0aGlzIHJv
dyBpcyBmb3IgYW4gYWNjZXB0aW5nIHN0YXRlLiAgICovCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiAgVmFsdWUgMDogbm90IGFuIGFjY2VwdGluZyBzdGF0ZS4gICAgICAg
ICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAg
ICAgLTE6IFVuY29uZGl0aW9uYWwgQWNjZXB0aW5nIHN0YXRlLiAgICAgICAgICAgKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIHBvc2l0aXZlOiAgTG9vay1haGVh
ZCBtYXRjaCBoYXMgY29tcGxldGVkLiAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiAgICAgICAgICAgQWN0dWFsIGJvdW5kYXJ5IHBvc2l0aW9uIGhhcHBlbmVk
IGVhcmxpZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAg
ICAgICBWYWx1ZSBoZXJlID09IGZMb29rQWhlYWQgaW4gZWFybGllciAgICAgICovCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgc3RhdGUsIGF0IGFj
dHVhbCBib3VuZGFyeSBwb3MuICAgICAgICAqLworICAgIGludDE2X3QgICAgICAgICAgZkxvb2tB
aGVhZDsgICAgLyogIE5vbi16ZXJvIGlmIHRoaXMgcm93IGlzIGZvciBhIHN0YXRlIHRoYXQgICAg
ICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIGNvcnJl
c3BvbmRzIHRvIGEgJy8nIGluIHRoZSBydWxlIHNvdXJjZS4gICAgICAgICovCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICBWYWx1ZSBpcyB0aGUgc2FtZSBhcyB0aGUg
ZkFjY2VwdGluZyAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLyogICAgICB2YWx1ZSBmb3IgdGhlIHJ1bGUgKHdoaWNoIHdpbGwgYXBwZWFyICAgICAg
ICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgaW4gYSBk
aWZmZXJlbnQgc3RhdGUuICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgaW50MTZfdCAg
ICAgICAgICBmVGFnSWR4OyAgICAgICAvKiAgTm9uLXplcm8gaWYgdGhpcyByb3cgY292ZXJzIGEg
e3RhZ2dlZH0gcG9zaXRpb24gICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogICAgIGZyb20gYSBydWxlLiAgVmFsdWUgaXMgdGhlIGluZGV4IGluIHRoZSAgICAgICAg
Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICBTdGF0dXNUYWJs
ZSBvZiB0aGUgc2V0IG9mIG1hdGNoaW5nICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKiAgICAgdGFncyAocnVsZSBzdGF0dXMgdmFsdWVzKSAgICAg
ICAgICAgICAgICAgICAgICAqLworICAgIGludDE2X3QgICAgICAgICAgZlJlc2VydmVkOworICAg
IHVpbnQxNl90ICAgICAgICAgZk5leHRTdGF0ZVsyXTsgLyogIE5leHQgU3RhdGUsIGluZGV4ZWQg
YnkgY2hhciBjYXRlZ29yeS4gICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8qICBUaGlzIGFycmF5IGRvZXMgbm90IGhhdmUgdHdvIGVsZW1lbnRzICAg
ICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICBB
cnJheSBTaXplIGlzIGFjdHVhbGx5IGZEYXRhLT5mSGVhZGVyLT5mQ2F0Q291bnQgICAgICAgICAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgQ0FVVElPTjogIHNl
ZSBSQkJJVGFibGVCdWlsZGVyOjpnZXRUYWJsZVNpemUoKSAgKi8KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICBiZWZvcmUgY2hhbmdpbmcgYW55dGhp
bmcgaGVyZS4gICAgICAgICovCit9OworCisKK3N0cnVjdCBSQkJJU3RhdGVUYWJsZSB7CisgICAg
dWludDMyX3QgICAgICAgICBmTnVtU3RhdGVzOyAgICAvKiAgTnVtYmVyIG9mIHN0YXRlcy4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlJv
d0xlbjsgICAgICAgLyogIExlbmd0aCBvZiBhIHN0YXRlIHRhYmxlIHJvdywgaW4gYnl0ZXMuICAg
ICAgICAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZGbGFnczsgICAgICAgIC8qICBPcHRp
b24gRmxhZ3MgZm9yIHRoaXMgc3RhdGUgdGFibGUgICAgICAgICAgICAgICAgICovCisgICAgdWlu
dDMyX3QgICAgICAgICBmUmVzZXJ2ZWQ7ICAgICAvKiAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIGNoYXIgICAgICAgICAgICAgZlRhYmxl
RGF0YVs0XTsgLyogIEZpcnN0IFJCQklTdGF0ZVRhYmxlUm93IGJlZ2lucyBoZXJlLiAgICAgICAg
ICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIChtYWtp
bmcgaXQgY2hhcltdIHNpbXBsaWZpZXMgdWdseSBhZGRyZXNzICAgICAgICovCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgYXJpdGhtZXRpYyBmb3IgaW5kZXhpbmcg
dmFyaWFibGUgbGVuZ3RoIHJvd3MuKSAqLworfTsKKwordHlwZWRlZiBlbnVtIHsKKyAgICBSQkJJ
X0xPT0tBSEVBRF9IQVJEX0JSRUFLID0gMSwKKyAgICBSQkJJX0JPRl9SRVFVSVJFRCA9IDIKK30g
UkJCSVN0YXRlVGFibGVGbGFnczsKKworCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqLworLyogICBUaGUgcmVmZXJlbmNlIGNvdW50aW5nIHdyYXBwZXIgY2xhc3Mg
Ki8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCitjbGFzcyBS
QkJJRGF0YVdyYXBwZXIgOiBwdWJsaWMgVU1lbW9yeSB7CitwdWJsaWM6CisgICAgZW51bSBFRG9u
dEFkb3B0IHsKKyAgICAgICAga0RvbnRBZG9wdAorICAgIH07CisgICAgUkJCSURhdGFXcmFwcGVy
KGNvbnN0IFJCQklEYXRhSGVhZGVyICpkYXRhLCBVRXJyb3JDb2RlICZzdGF0dXMpOworICAgIFJC
QklEYXRhV3JhcHBlcihjb25zdCBSQkJJRGF0YUhlYWRlciAqZGF0YSwgZW51bSBFRG9udEFkb3B0
IGRvbnRBZG9wdCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyAgICBSQkJJRGF0YVdyYXBwZXIoVURh
dGFNZW1vcnkqIHVkbSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyAgICB+UkJCSURhdGFXcmFwcGVy
KCk7CisKKyAgICB2b2lkICAgICAgICAgICAgICAgICAgaW5pdDAoKTsKKyAgICB2b2lkICAgICAg
ICAgICAgICAgICAgaW5pdChjb25zdCBSQkJJRGF0YUhlYWRlciAqZGF0YSwgVUVycm9yQ29kZSAm
c3RhdHVzKTsKKyAgICBSQkJJRGF0YVdyYXBwZXIgICAgICAqYWRkUmVmZXJlbmNlKCk7CisgICAg
dm9pZCAgICAgICAgICAgICAgICAgIHJlbW92ZVJlZmVyZW5jZSgpOworICAgIFVCb29sICAgICAg
ICAgICAgICAgICBvcGVyYXRvciA9PShjb25zdCBSQkJJRGF0YVdyYXBwZXIgJm90aGVyKSBjb25z
dDsKKyAgICBpbnQzMl90ICAgICAgICAgICAgICAgaGFzaENvZGUoKTsKKyAgICBjb25zdCBVbmlj
b2RlU3RyaW5nICAmZ2V0UnVsZVNvdXJjZVN0cmluZygpIGNvbnN0OworI2lmZGVmIFJCQklfREVC
VUcKKyAgICB2b2lkICAgICAgICAgICAgICAgICAgcHJpbnREYXRhKCk7CisgICAgdm9pZCAgICAg
ICAgICAgICAgICAgIHByaW50VGFibGUoY29uc3QgY2hhciAqaGVhZGluZywgY29uc3QgUkJCSVN0
YXRlVGFibGUgKnRhYmxlKTsKKyNlbHNlCisgICAgI2RlZmluZSBwcmludERhdGEoKQorICAgICNk
ZWZpbmUgcHJpbnRUYWJsZShoZWFkaW5nLCB0YWJsZSkKKyNlbmRpZgorCisgICAgLyogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAvKiAgIFBvaW50ZXJzIHRvIGl0
ZW1zIHdpdGhpbiB0aGUgZGF0YSAqLworICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICovCisgICAgY29uc3QgUkJCSURhdGFIZWFkZXIgICAgICpmSGVhZGVyOworICAg
IGNvbnN0IFJCQklTdGF0ZVRhYmxlICAgICAqZkZvcndhcmRUYWJsZTsKKyAgICBjb25zdCBSQkJJ
U3RhdGVUYWJsZSAgICAgKmZSZXZlcnNlVGFibGU7CisgICAgY29uc3QgUkJCSVN0YXRlVGFibGUg
ICAgICpmU2FmZUZ3ZFRhYmxlOworICAgIGNvbnN0IFJCQklTdGF0ZVRhYmxlICAgICAqZlNhZmVS
ZXZUYWJsZTsKKyAgICBjb25zdCBVQ2hhciAgICAgICAgICAgICAgKmZSdWxlU291cmNlOworICAg
IGNvbnN0IGludDMyX3QgICAgICAgICAgICAqZlJ1bGVTdGF0dXNUYWJsZTsgCisKKyAgICAvKiBu
dW1iZXIgb2YgaW50MzJfdCB2YWx1ZXMgaW4gdGhlIHJ1bGUgc3RhdHVzIHRhYmxlLiAgIFVzZWQg
dG8gc2FuaXR5IGNoZWNrIGluZGV4aW5nICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmU3Rh
dHVzTWF4SWR4OworCisgICAgVVRyaWUgICAgICAgICAgICAgICBmVHJpZTsKKworcHJpdmF0ZToK
KyAgICB1X2F0b21pY19pbnQzMl90ICAgIGZSZWZDb3VudDsKKyAgICBVRGF0YU1lbW9yeSAgKmZV
RGF0YU1lbTsKKyAgICBVbmljb2RlU3RyaW5nICAgICAgIGZSdWxlU3RyaW5nOworICAgIFVCb29s
ICAgICAgICAgICAgICAgZkRvbnRGcmVlRGF0YTsKKworICAgIFJCQklEYXRhV3JhcHBlcihjb25z
dCBSQkJJRGF0YVdyYXBwZXIgJm90aGVyKTsgLyogIGZvcmJpZCBjb3B5aW5nIG9mIHRoaXMgY2xh
c3MgKi8KKyAgICBSQkJJRGF0YVdyYXBwZXIgJm9wZXJhdG9yPShjb25zdCBSQkJJRGF0YVdyYXBw
ZXIgJm90aGVyKTsgLyogIGZvcmJpZCBjb3B5aW5nIG9mIHRoaXMgY2xhc3MgKi8KK307CisKKwor
CitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmIC8qIEMrKyAqLworCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWNtbmRhdGEuaCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWNtbmRhdGEuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zNjE2M2M1MDhiOTc3NGI4ZjlkMmJiNGFiZTIyYzM0MTQxODI1NGVkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91Y21u
ZGF0YS5oCkBAIC0wLDAgKzEsMTExIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisq
ICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoK
KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAqCisgKiAgIFVDb21tb25EYXRhICAgQW4gYWJzdHJhY3QgaW50ZXJmYWNlIGZvciBkZWFsaW5n
IHdpdGggSUNVIENvbW1vbiBEYXRhIEZpbGVzLgorICogICAgICAgICAgICAgICAgIElDVSBDb21t
b24gRGF0YSBGaWxlcyBhcmUgYSBncm91cGluZyBvZiBhIG51bWJlciBvZiBpbmRpdmlkdWFsCisg
KiAgICAgICAgICAgICAgICAgZGF0YSBpdGVtcyAocmVzb3VyY2VzLCBjb252ZXJ0ZXJzLCB0YWJs
ZXMsIGFueXRoaW5nKSBpbnRvIGEKKyAqICAgICAgICAgICAgICAgICBzaW5nbGUgZmlsZSBvciBk
bGwuICBUaGUgY29tYmluZWQgZm9ybWF0IGluY2x1ZGVzIGEgdGFibGUgb2YKKyAqICAgICAgICAg
ICAgICAgICBjb250ZW50cyBmb3IgbG9jYXRpbmcgdGhlIGluZGl2aWR1YWwgaXRlbXMgYnkgbmFt
ZS4KKyAqCisgKiAgICAgICAgICAgICAgICAgVHdvIGZvcm1hdHMgZm9yIHRoZSB0YWJsZSBvZiBj
b250ZW50cyBhcmUgc3VwcG9ydGVkLCB3aGljaCBpcworICogICAgICAgICAgICAgICAgIHdoeSB0
aGVyZSBpcyBhbiBhYnN0cmFjdCBpbnRlZmFjZSBpbnZvbHZlZC4KKyAqCisgKiAgICAgICAgICAg
ICAgICAgVGhlc2UgZnVuY3Rpb25zIGFyZSBwYXJ0IG9mIHRoZSBJQ1UgaW50ZXJuYWwgaW1wbGVt
ZW50YXRpb24sIGFuZAorICogICAgICAgICAgICAgICAgIGFyZSBub3QgaW50ZWRlZCB0byBiZSB1
c2VkIGRpcmVjdGx5IGJ5IGFwcGxpY2F0aW9ucy4KKyAqLworCisjaWZuZGVmIF9fVUNNTkRBVEFf
SF9fCisjZGVmaW5lIF9fVUNNTkRBVEFfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgi
CisjaW5jbHVkZSAidW1hcGZpbGUuaCIKKworCisjZGVmaW5lIENPTU1PTl9EQVRBX05BTUUgVV9J
Q1VEQVRBX05BTUUKKwordHlwZWRlZiBzdHJ1Y3QgIHsKKyAgICB1aW50MTZfdCAgICBoZWFkZXJT
aXplOworICAgIHVpbnQ4X3QgICAgIG1hZ2ljMTsKKyAgICB1aW50OF90ICAgICBtYWdpYzI7Cit9
IE1hcHBlZERhdGE7CisKKwordHlwZWRlZiBzdHJ1Y3QgIHsKKyAgICBNYXBwZWREYXRhICBkYXRh
SGVhZGVyOworICAgIFVEYXRhSW5mbyAgIGluZm87Cit9IERhdGFIZWFkZXI7CisKK3R5cGVkZWYg
c3RydWN0IHsKKyAgICB1aW50MzJfdCBuYW1lT2Zmc2V0OworICAgIHVpbnQzMl90IGRhdGFPZmZz
ZXQ7Cit9IFVEYXRhT2Zmc2V0VE9DRW50cnk7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1aW50
MzJfdCBjb3VudDsKKyAgICBVRGF0YU9mZnNldFRPQ0VudHJ5IGVudHJ5WzJdOyAgICAvKiBBY3R1
YWwgc2l6ZSBvZiBhcnJheSBpcyBmcm9tIGNvdW50LiAqLworfSBVRGF0YU9mZnNldFRPQzsKKwor
LyoqCisgKiBHZXQgdGhlIGhlYWRlciBzaXplIGZyb20gYSBjb25zdCBEYXRhSGVhZGVyICp1ZGgu
CisgKiBIYW5kbGVzIG9wcG9zaXRlLWVuZGlhbiBkYXRhLgorICoKKyAqIEBpbnRlcm5hbAorICov
CitVX0NGVU5DIHVpbnQxNl90Cit1ZGF0YV9nZXRIZWFkZXJTaXplKGNvbnN0IERhdGFIZWFkZXIg
KnVkaCk7CisKKy8qKgorICogR2V0IHRoZSBVRGF0YUluZm8uc2l6ZSBmcm9tIGEgY29uc3QgVURh
dGFJbmZvICppbmZvLgorICogSGFuZGxlcyBvcHBvc2l0ZS1lbmRpYW4gZGF0YS4KKyAqCisgKiBA
aW50ZXJuYWwKKyAqLworVV9DRlVOQyB1aW50MTZfdAordWRhdGFfZ2V0SW5mb1NpemUoY29uc3Qg
VURhdGFJbmZvICppbmZvKTsKKworVV9DREVDTF9CRUdJTgorLyoKKyAqICAiVmlydHVhbCIgZnVu
Y3Rpb25zIGZvciBkYXRhIGxvb2t1cC4KKyAqICBUbyBjYWxsIG9uZSwgZ2l2ZW4gYSBVRGF0YU1l
bW9yeSAqcCwgdGhlIGNvZGUgbG9va3MgbGlrZSB0aGlzOgorICogICAgIHAtPnZGdW5jcy5Mb29r
dXAocCwgdG9jRW50cnlOYW1lLCBwRXJyb3JDb2RlKTsKKyAqICAgICAgICAgIChJIHN1cmUgZG8g
d2lzaCB0aGlzIHdhcyB3cml0dGVuIGluIEMrKywgbm90IEMpCisgKi8KKwordHlwZWRlZiBjb25z
dCBEYXRhSGVhZGVyICoKKyhVX0NBTExDT05WICogTG9va3VwRm4pKGNvbnN0IFVEYXRhTWVtb3J5
ICpwRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnRvY0VudHJ5TmFt
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgKnBMZW5ndGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKwordHlwZWRlZiB1aW50MzJf
dAorKFVfQ0FMTENPTlYgKiBOdW1FbnRyaWVzRm4pKGNvbnN0IFVEYXRhTWVtb3J5ICpwRGF0YSk7
CisKK1VfQ0RFQ0xfRU5ECisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBMb29rdXBGbiAgICAgIExv
b2t1cDsKKyAgICBOdW1FbnRyaWVzRm4gIE51bUVudHJpZXM7IAorfSBjb21tb25EYXRhRnVuY3M7
CisKKworLyoKKyAqICBGdW5jdGlvbnMgdG8gY2hlY2sgd2hldGhlciBhIFVEYXRhTWVtb3J5IHJl
ZmVycyB0byBtZW1vcnkgY29udGFpbmluZyAKKyAqICAgICBhIHJlY29nbml6YWJsZSBoZWFkZXIg
YW5kIHRhYmxlIG9mIGNvbnRlbnRzIGEgQ29tbW9uIERhdGEgRm9ybWF0CisgKgorICogICAgIElm
IGEgdmFsaWQgaGVhZGVyIGFuZCBUT0MgYXJlIGZvdW5kLAorICogICAgICAgICBzZXQgdGhlIENv
bW1vbkRhdGFGdW5jcyBmdW5jdGlvbiBkaXNwYXRjaCB2ZWN0b3IgaW4gdGhlIFVEYXRhTWVtb3J5
CisgKiAgICAgICAgICAgICB0byBwb2ludCB0byB0aGUgcmlnaHQgZnVuY3Rpb25zIGZvciB0aGUg
VE9DIHR5cGUuCisgKiAgICAgb3RoZXJ3aXNlCisgKiAgICAgICAgIHNldCBhbiBlcnJvcmNvZGUu
CisgKi8KK1VfQ0ZVTkMgdm9pZCB1ZGF0YV9jaGVja0NvbW1vbkRhdGEoVURhdGFNZW1vcnkgKnBE
YXRhLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VkYXRhc3dwLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VkYXRhc3dwLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjZjODQ5NTU2NzY3MDg2ZWFiMWI1ZmI5YjAzMmVmNTA2NzAwZGM3MQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWRhdGFzd3AuaApA
QCAtMCwwICsxLDM1MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5
cmlnaHQgKEMpIDIwMDMtMjAxNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVkYXRhc3dwLmgKKyogICBlbmNvZGlu
ZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0
aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDAzanVuMDUKKyogICBjcmVhdGVkIGJ5OiBNYXJr
dXMgVy4gU2NoZXJlcgorKgorKiAgIERlZmluaXRpb25zIGZvciBJQ1UgZGF0YSB0cmFuc2Zvcm1h
dGlvbnMgZm9yIGRpZmZlcmVudCBwbGF0Zm9ybXMsCisqICAgY2hhbmdpbmcgYmV0d2VlbiBiaWct
IGFuZCBsaXR0bGUtZW5kaWFuIGRhdGEgYW5kL29yIGJldHdlZW4KKyogICBjaGFyc2V0IGZhbWls
aWVzIChBU0NJSTwtPkVCQ0RJQykuCisqLworCisjaWZuZGVmIF9fVURBVEFTV1BfSF9fCisjZGVm
aW5lIF9fVURBVEFTV1BfSF9fCisKKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlICJ1bmlj
b2RlL3V0eXBlcy5oIgorCisvKiBmb3J3YXJkIGRlY2xhcmF0aW9uICovCisKK1VfQ0RFQ0xfQkVH
SU4KKworc3RydWN0IFVEYXRhU3dhcHBlcjsKK3R5cGVkZWYgc3RydWN0IFVEYXRhU3dhcHBlciBV
RGF0YVN3YXBwZXI7CisKKy8qKgorICogRnVuY3Rpb24gdHlwZSBmb3IgZGF0YSB0cmFuc2Zvcm1h
dGlvbi4KKyAqIFRyYW5zZm9ybXMgZGF0YSwgb3IganVzdCByZXR1cm5zIHRoZSBsZW5ndGggb2Yg
dGhlIGRhdGEgaWYKKyAqIHRoZSBpbnB1dCBsZW5ndGggaXMgLTEuCisgKiBTd2FwIGZ1bmN0aW9u
cyBhc3N1bWUgdGhhdCB0aGVpciBkYXRhIHBvaW50ZXJzIGFyZSBhbGlnbmVkIHByb3Blcmx5Lgor
ICoKKyAqIFF1aWNrIGltcGxlbWVudGF0aW9uIG91dGxpbmU6CisgKiAoYmVzdCB0byBjb3B5IGFu
ZCBhZGFwdCBhbmQgZXhpc3Rpbmcgc3dhcHBlciBpbXBsZW1lbnRhdGlvbikKKyAqIGNoZWNrIHRo
YXQgdGhlIGRhdGEgbG9va3MgbGlrZSB0aGUgZXhwZWN0ZWQgZm9ybWF0CisgKiBpZihsZW5ndGg8
MCkgeworICogICBwcmVmbGlnaHQ6CisgKiAgIG5ldmVyIGRlcmVmZXJlbmNlIG91dERhdGEKKyAq
ICAgcmVhZCBpbkRhdGEgYW5kIGRldGVybWluZSB0aGUgZGF0YSBzaXplCisgKiAgIGFzc3VtZSB0
aGF0IGluRGF0YSBpcyBsb25nIGVub3VnaCBmb3IgdGhpcworICogfSBlbHNlIHsKKyAqICAgb3V0
RGF0YSBjYW4gYmUgTlVMTCBpZiBsZW5ndGg9PTAKKyAqICAgaW5EYXRhPT1vdXREYXRhIChpbi1w
bGFjZSBzd2FwcGluZykgcG9zc2libGUgYnV0IG5vdCByZXF1aXJlZCEKKyAqICAgdmVyaWZ5IHRo
YXQgbGVuZ3RoPj0oYWN0dWFsIHNpemUpCisgKiAgIGlmIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQg
bm90IGV2ZXJ5IGJ5dGUgdXAgdG8gc2l6ZSBpcyByZWFjaGVkCisgKiAgICAgZHVlIHRvIHBhZGRp
bmcgZXRjLjoKKyAqICAgaWYoaW5EYXRhIT1vdXREYXRhKSB7CisgKiAgICAgbWVtY3B5KG91dERh
dGEsIGluRGF0YSwgYWN0dWFsIHNpemUpOworICogICB9CisgKiAgIHN3YXAgY29udGVudHMKKyAq
IH0KKyAqIHJldHVybiBhY3R1YWwgc2l6ZQorICoKKyAqIEZ1cnRoZXIgaW1wbGVtZW50YXRpb24g
bm90ZXM6CisgKiAtIHJlYWQgaW50ZWdlcnMgZnJvbSBpbkRhdGEgYmVmb3JlIHN3YXBwaW5nIHRo
ZW0KKyAqICAgYmVjYXVzZSBpbi1wbGFjZSBzd2FwcGluZyBjYW4gbWFrZSB0aGVtIHVucmVhZGFi
bGUKKyAqIC0gY29tcGFyZUludkNoYXJzIGNvbXBhcmVzIGEgbG9jYWwgVW5pY29kZSBzdHJpbmcg
d2l0aCBhbHJlYWR5LXN3YXBwZWQKKyAqICAgb3V0cHV0IGNoYXJzZXQgc3RyaW5ncworICoKKyAq
IEBwYXJhbSBkcyBQb2ludGVyIHRvIFVEYXRhU3dhcHBlciBjb250YWluaW5nIGdsb2JhbCBkYXRh
IGFib3V0IHRoZQorICogICAgICAgICAgIHRyYW5zZm9ybWF0aW9uIGFuZCBmdW5jdGlvbiBwb2lu
dGVycyBmb3IgaGFuZGxpbmcgcHJpbWl0aXZlCisgKiAgICAgICAgICAgdHlwZXMuCisgKiBAcGFy
YW0gaW5EYXRhIFBvaW50ZXIgdG8gdGhlIGlucHV0IGRhdGEgdG8gYmUgdHJhbnNmb3JtZWQgb3Ig
ZXhhbWluZWQuCisgKiBAcGFyYW0gbGVuZ3RoIExlbmd0aCBvZiB0aGUgZGF0YSwgY291bnRpbmcg
Ynl0ZXMuIE1heSBiZSAtMSBmb3IgcHJlZmxpZ2h0aW5nLgorICogICAgICAgICAgICAgICBJZiBs
ZW5ndGg+PTAsIHRoZW4gdHJhbnNmb3JtIHRoZSBkYXRhLgorICogICAgICAgICAgICAgICBJZiBs
ZW5ndGg9PS0xLCB0aGVuIG9ubHkgZGV0ZXJtaW5lIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEuCisg
KiAgICAgICAgICAgICAgIFRoZSBsZW5ndGggY2Fubm90IGJlIGRldGVybWluZWQgZnJvbSB0aGUg
ZGF0YSBpdHNlbGYgZm9yIGFsbAorICogICAgICAgICAgICAgICB0eXBlcyBvZiBkYXRhIChlLmcu
LCBub3QgZm9yIHNpbXBsZSBhcnJheXMgb2YgaW50ZWdlcnMpLgorICogQHBhcmFtIG91dERhdGEg
UG9pbnRlciB0byB0aGUgb3V0cHV0IGRhdGEgYnVmZmVyLgorICogICAgICAgICAgICAgICAgSWYg
bGVuZ3RoPj0wICh0cmFuc2Zvcm1hdGlvbiksIHRoZW4gdGhlIG91dHB1dCBidWZmZXIgbXVzdAor
ICogICAgICAgICAgICAgICAgaGF2ZSBhIGNhcGFjaXR5IG9mIGF0IGxlYXN0IGxlbmd0aC4KKyAq
ICAgICAgICAgICAgICAgIElmIGxlbmd0aD09LTEsIHRoZW4gb3V0RGF0YSB3aWxsIG5vdCBiZSB1
c2VkIGFuZCBjYW4gYmUgTlVMTC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIElDVSBVRXJyb3JDb2Rl
IHBhcmFtZXRlciwgbXVzdCBub3QgYmUgTlVMTCBhbmQgbXVzdAorICogICAgICAgICAgICAgICAg
ICAgZnVsZmlsbCBVX1NVQ0NFU1Mgb24gaW5wdXQuCisgKiBAcmV0dXJuIFRoZSBhY3R1YWwgbGVu
Z3RoIG9mIHRoZSBkYXRhLgorICoKKyAqIEBzZWUgVURhdGFTd2FwcGVyCisgKiBAaW50ZXJuYWwg
SUNVIDIuOAorICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgorVURhdGFTd2FwRm4oY29u
c3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50
MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJy
b3JDb2RlKTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIGlucHV0IHRvIHBs
YXRmb3JtIGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHVp
bnQxNl90IFVfQ0FMTENPTlYKK1VEYXRhUmVhZFVJbnQxNih1aW50MTZfdCB4KTsKKworLyoqCisg
KiBDb252ZXJ0IG9uZSB1aW50MzJfdCBmcm9tIGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3Mu
CisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHVpbnQzMl90IFVfQ0FMTENPTlYK
K1VEYXRhUmVhZFVJbnQzMih1aW50MzJfdCB4KTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSB1aW50
MTZfdCBmcm9tIHBsYXRmb3JtIHRvIGlucHV0IGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNV
IDIuOAorICovCit0eXBlZGVmIHZvaWQgVV9DQUxMQ09OVgorVURhdGFXcml0ZVVJbnQxNih1aW50
MTZfdCAqcCwgdWludDE2X3QgeCk7CisKKy8qKgorICogQ29udmVydCBvbmUgdWludDMyX3QgZnJv
bSBwbGF0Zm9ybSB0byBpbnB1dCBlbmRpYW5uZXNzLgorICogQGludGVybmFsIElDVSAyLjgKKyAq
LwordHlwZWRlZiB2b2lkIFVfQ0FMTENPTlYKK1VEYXRhV3JpdGVVSW50MzIodWludDMyX3QgKnAs
IHVpbnQzMl90IHgpOworCisvKioKKyAqIENvbXBhcmUgaW52YXJpYW50LWNoYXJhY3RlciBzdHJp
bmdzLCBvbmUgaW4gdGhlIG91dHB1dCBkYXRhIGFuZCB0aGUKKyAqIG90aGVyIG9uZSBjYWxsZXIt
cHJvdmlkZWQgaW4gVW5pY29kZS4KKyAqIEFuIG91dHB1dCBkYXRhIHN0cmluZyBpcyBjb21wYXJl
ZCBiZWNhdXNlIHN0cmluZ3MgYXJlIHVzdWFsbHkgc3dhcHBlZAorICogYmVmb3JlIHRoZSByZXN0
IG9mIHRoZSBkYXRhLCB0byBhbGxvdyBmb3Igc29ydGluZyBvZiBzdHJpbmcgdGFibGVzCisgKiBh
Y2NvcmRpbmcgdG8gdGhlIG91dHB1dCBjaGFyc2V0LgorICogWW91IGNhbiB1c2UgLTEgZm9yIHRo
ZSBsZW5ndGggcGFyYW1ldGVycyBvZiBOVUwtdGVybWluYXRlZCBzdHJpbmdzIGFzIHVzdWFsLgor
ICogUmV0dXJucyBVbmljb2RlIGNvZGUgcG9pbnQgb3JkZXIgZm9yIGludmFyaWFudCBjaGFyYWN0
ZXJzLgorICogQGludGVybmFsIElDVSAyLjgKKyAqLwordHlwZWRlZiBpbnQzMl90IFVfQ0FMTENP
TlYKK1VEYXRhQ29tcGFyZUludkNoYXJzKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyICpvdXRTdHJpbmcsIGludDMyX3Qgb3V0TGVuZ3RoLAor
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxvY2FsU3RyaW5nLCBpbnQzMl90IGxv
Y2FsTGVuZ3RoKTsKKworLyoqCisgKiBGdW5jdGlvbiBmb3IgbWVzc2FnZSBvdXRwdXQgd2hlbiBh
biBlcnJvciBvY2N1cnMgZHVyaW5nIGRhdGEgc3dhcHBpbmcuCisgKiBBIGZvcm1hdCBzdHJpbmcg
YW5kIHZhcmlhYmxlIG51bWJlciBvZiBhcmd1bWVudHMgYXJlIHBhc3NlZAorICogbGlrZSBmb3Ig
dnByaW50ZigpLgorICoKKyAqIEBwYXJhbSBjb250ZXh0IEEgZnVuY3Rpb24tc3BlY2lmaWMgY29u
dGV4dCBwb2ludGVyLgorICogQHBhcmFtIGZtdCBUaGUgZm9ybWF0IHN0cmluZy4KKyAqIEBwYXJh
bSBhcmdzIFRoZSBhcmd1bWVudHMgZm9yIGZvcm1hdCBzdHJpbmcgaW5zZXJ0cy4KKyAqCisgKiBA
aW50ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHZvaWQgVV9DQUxMQ09OVgorVURhdGFQcmlu
dEVycm9yKHZvaWQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKTsKKwor
c3RydWN0IFVEYXRhU3dhcHBlciB7CisgICAgLyoqIElucHV0IGVuZGlhbm5lc3MuIEBpbnRlcm5h
bCBJQ1UgMi44ICovCisgICAgVUJvb2wgaW5Jc0JpZ0VuZGlhbjsKKyAgICAvKiogSW5wdXQgY2hh
cnNldCBmYW1pbHkuIEBzZWUgVV9DSEFSU0VUX0ZBTUlMWSBAaW50ZXJuYWwgSUNVIDIuOCAqLwor
ICAgIHVpbnQ4X3QgaW5DaGFyc2V0OworICAgIC8qKiBPdXRwdXQgZW5kaWFubmVzcy4gQGludGVy
bmFsIElDVSAyLjggKi8KKyAgICBVQm9vbCBvdXRJc0JpZ0VuZGlhbjsKKyAgICAvKiogT3V0cHV0
IGNoYXJzZXQgZmFtaWx5LiBAc2VlIFVfQ0hBUlNFVF9GQU1JTFkgQGludGVybmFsIElDVSAyLjgg
Ki8KKyAgICB1aW50OF90IG91dENoYXJzZXQ7CisKKyAgICAvKiBiYXNpYyBmdW5jdGlvbnMgZm9y
IHJlYWRpbmcgZGF0YSB2YWx1ZXMgKi8KKworICAgIC8qKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBm
cm9tIGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisg
ICAgVURhdGFSZWFkVUludDE2ICpyZWFkVUludDE2OworICAgIC8qKiBDb252ZXJ0IG9uZSB1aW50
MzJfdCBmcm9tIGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44
ICovCisgICAgVURhdGFSZWFkVUludDMyICpyZWFkVUludDMyOworICAgIC8qKiBDb21wYXJlIGFu
IGludmFyaWFudC1jaGFyYWN0ZXIgb3V0cHV0IHN0cmluZyB3aXRoIGEgbG9jYWwgb25lLiBAaW50
ZXJuYWwgSUNVIDIuOCAqLworICAgIFVEYXRhQ29tcGFyZUludkNoYXJzICpjb21wYXJlSW52Q2hh
cnM7CisKKyAgICAvKiBiYXNpYyBmdW5jdGlvbnMgZm9yIHdyaXRpbmcgZGF0YSB2YWx1ZXMgKi8K
KworICAgIC8qKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIHBsYXRmb3JtIHRvIGlucHV0IGVu
ZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgVURhdGFXcml0ZVVJbnQxNiAqd3Jp
dGVVSW50MTY7CisgICAgLyoqIENvbnZlcnQgb25lIHVpbnQzMl90IGZyb20gcGxhdGZvcm0gdG8g
aW5wdXQgZW5kaWFubmVzcy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVdyaXRlVUlu
dDMyICp3cml0ZVVJbnQzMjsKKworICAgIC8qIGJhc2ljIGZ1bmN0aW9ucyBmb3IgZGF0YSB0cmFu
c2Zvcm1hdGlvbnMgKi8KKworICAgIC8qKiBUcmFuc2Zvcm0gYW4gYXJyYXkgb2YgMTYtYml0IGlu
dGVnZXJzLiBAaW50ZXJuYWwgSUNVIDIuOCAqLworICAgIFVEYXRhU3dhcEZuICpzd2FwQXJyYXkx
NjsKKyAgICAvKiogVHJhbnNmb3JtIGFuIGFycmF5IG9mIDMyLWJpdCBpbnRlZ2Vycy4gQGludGVy
bmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVN3YXBGbiAqc3dhcEFycmF5MzI7CisgICAgLyoqIFRy
YW5zZm9ybSBhbiBhcnJheSBvZiA2NC1iaXQgaW50ZWdlcnMuIEBpbnRlcm5hbCBJQ1UgNTMgKi8K
KyAgICBVRGF0YVN3YXBGbiAqc3dhcEFycmF5NjQ7CisgICAgLyoqIFRyYW5zZm9ybSBhbiBpbnZh
cmlhbnQtY2hhcmFjdGVyIHN0cmluZy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVN3
YXBGbiAqc3dhcEludkNoYXJzOworCisgICAgLyoqCisgICAgICogRnVuY3Rpb24gZm9yIG1lc3Nh
Z2Ugb3V0cHV0IHdoZW4gYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBkYXRhIHN3YXBwaW5nLgorICAg
ICAqIENhbiBiZSBOVUxMLgorICAgICAqIEBpbnRlcm5hbCBJQ1UgMi44CisgICAgICovCisgICAg
VURhdGFQcmludEVycm9yICpwcmludEVycm9yOworICAgIC8qKiBDb250ZXh0IHBvaW50ZXIgZm9y
IHByaW50RXJyb3IuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgdm9pZCAqcHJpbnRFcnJvckNv
bnRleHQ7Cit9OworCitVX0NERUNMX0VORAorCitVX0NBUEkgVURhdGFTd2FwcGVyICogVV9FWFBP
UlQyCit1ZGF0YV9vcGVuU3dhcHBlcihVQm9vbCBpbklzQmlnRW5kaWFuLCB1aW50OF90IGluQ2hh
cnNldCwKKyAgICAgICAgICAgICAgICAgIFVCb29sIG91dElzQmlnRW5kaWFuLCB1aW50OF90IG91
dENoYXJzZXQsCisgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKwor
LyoqCisgKiBPcGVuIGEgVURhdGFTd2FwcGVyIGZvciB0aGUgZ2l2ZW4gaW5wdXQgZGF0YSBhbmQg
dGhlIHNwZWNpZmllZCBvdXRwdXQKKyAqIGNoYXJhY3RlcmlzdGljcy4KKyAqIFZhbHVlcyBvZiAt
MSBmb3IgYW55IG9mIHRoZSBjaGFyYWN0ZXJpc3RpY3MgbWVhbiB0aGUgbG9jYWwgcGxhdGZvcm0n
cworICogY2hhcmFjdGVyaXN0aWNzLgorICoKKyAqIEBzZWUgdWRhdGFfc3dhcAorICogQGludGVy
bmFsIElDVSAyLjgKKyAqLworVV9DQVBJIFVEYXRhU3dhcHBlciAqIFVfRVhQT1JUMgordWRhdGFf
b3BlblN3YXBwZXJGb3JJbnB1dERhdGEoY29uc3Qgdm9pZCAqZGF0YSwgaW50MzJfdCBsZW5ndGgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQm9vbCBvdXRJc0JpZ0VuZGlhbiwgdWlu
dDhfdCBvdXRDaGFyc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29k
ZSAqcEVycm9yQ29kZSk7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfY2xvc2VTd2Fw
cGVyKFVEYXRhU3dhcHBlciAqZHMpOworCisvKioKKyAqIFJlYWQgdGhlIGJlZ2lubmluZyBvZiBh
biBJQ1UgZGF0YSBwaWVjZSwgcmVjb2duaXplIG1hZ2ljIGJ5dGVzLAorICogc3dhcCB0aGUgc3Ry
dWN0dXJlLgorICogU2V0IGEgVV9VTlNVUFBPUlRFRF9FUlJPUiBpZiBpdCBkb2VzIG5vdCBsb29r
IGxpa2UgYW4gSUNVIGRhdGEgcGllY2UuCisgKgorICogQHJldHVybiBUaGUgc2l6ZSBvZiB0aGUg
ZGF0YSBoZWFkZXIsIGluIGJ5dGVzLgorICoKKyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK1Vf
Q0FQSSBpbnQzMl90IFVfRVhQT1JUMgordWRhdGFfc3dhcERhdGFIZWFkZXIoY29uc3QgVURhdGFT
d2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50
MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSBpbnQxNl90IGZyb20gaW5w
dXQgdG8gcGxhdGZvcm0gZW5kaWFubmVzcy4KKyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK1Vf
Q0FQSSBpbnQxNl90IFVfRVhQT1JUMgordWRhdGFfcmVhZEludDE2KGNvbnN0IFVEYXRhU3dhcHBl
ciAqZHMsIGludDE2X3QgeCk7CisKKy8qKgorICogQ29udmVydCBvbmUgaW50MzJfdCBmcm9tIGlu
cHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCitV
X0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3VkYXRhX3JlYWRJbnQzMihjb25zdCBVRGF0YVN3YXBw
ZXIgKmRzLCBpbnQzMl90IHgpOworCisvKioKKyAqIFN3YXAgYSBibG9jayBvZiBpbnZhcmlhbnQs
IE5VTC10ZXJtaW5hdGVkIHN0cmluZ3MsIGJ1dCBub3QgcGFkZGluZworICogYnl0ZXMgYWZ0ZXIg
dGhlIGxhc3Qgc3RyaW5nLgorICogQGludGVybmFsCisgKi8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQ
T1JUMgordWRhdGFfc3dhcEludlN0cmluZ0Jsb2NrKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW5EYXRhLCBpbnQzMl90IGxlbmd0
aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9wcmludEVycm9yKGNv
bnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZtdCwK
KyAgICAgICAgICAgICAgICAgLi4uKTsKKworLyogaW50ZXJuYWwgZXhwb3J0cyBmcm9tIHB1dGls
LmMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyog
ZGVjbGFyZWQgaGVyZSB0byBrZWVwIHRoZW0gb3V0IG9mIHRoZSBwdWJsaWMgcHV0aWwuaCAqLwor
CisvKioKKyAqIFN3YXAgaW52YXJpYW50IGNoYXIgKiBzdHJpbmdzIEFTQ0lJLT5FQkNESUMuCisg
KiBAaW50ZXJuYWwKKyAqLworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCit1cHJ2X2ViY2RpY0Zy
b21Bc2NpaShjb25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAgICAgICAgICAgICAgY29u
c3Qgdm9pZCAqaW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAg
ICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENvcHkgaW52
YXJpYW50IEFTQ0lJIGNoYXIgKiBzdHJpbmdzIGFuZCB2ZXJpZnkgdGhleSBhcmUgaW52YXJpYW50
LgorICogQGludGVybmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBydl9jb3B5QXNjaWkoY29u
c3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwg
aW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICAgICBVRXJyb3JDb2Rl
ICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBTd2FwIGludmFyaWFudCBjaGFyICogc3RyaW5ncyBF
QkNESUMtPkFTQ0lJLgorICogQGludGVybmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBydl9h
c2NpaUZyb21FYmNkaWMoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisg
ICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBD
b3B5IGludmFyaWFudCBFQkNESUMgY2hhciAqIHN0cmluZ3MgYW5kIHZlcmlmeSB0aGV5IGFyZSBp
bnZhcmlhbnQuCisgKiBAaW50ZXJuYWwKKyAqLworVV9DRlVOQyBpbnQzMl90Cit1cHJ2X2NvcHlF
YmNkaWMoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICBjb25zdCB2b2lk
ICppbkRhdGEsIGludDMyX3QgbGVuZ3RoLCB2b2lkICpvdXREYXRhLAorICAgICAgICAgICAgICAg
IFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENvbXBhcmUgQVNDSUkgaW52YXJp
YW50IGNoYXIgKiB3aXRoIFVuaWNvZGUgaW52YXJpYW50IFVDaGFyICoKKyAqIEBpbnRlcm5hbAor
ICovCitVX0NGVU5DIGludDMyX3QKK3VwcnZfY29tcGFyZUludkFzY2lpKGNvbnN0IFVEYXRhU3dh
cHBlciAqZHMsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpvdXRTdHJpbmcsIGlu
dDMyX3Qgb3V0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxvY2Fs
U3RyaW5nLCBpbnQzMl90IGxvY2FsTGVuZ3RoKTsKKworLyoqCisgKiBDb21wYXJlIEVCQ0RJQyBp
bnZhcmlhbnQgY2hhciAqIHdpdGggVW5pY29kZSBpbnZhcmlhbnQgVUNoYXIgKgorICogQGludGVy
bmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBydl9jb21wYXJlSW52RWJjZGljKGNvbnN0IFVE
YXRhU3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqb3V0U3Ry
aW5nLCBpbnQzMl90IG91dExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hh
ciAqbG9jYWxTdHJpbmcsIGludDMyX3QgbG9jYWxMZW5ndGgpOworCisvKiBtYXRlcmlhbC4uLiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqLworCisjaWYgMAorCisvKiB1ZGF0YS5oICovCisKKy8qKgorICogUHVibGljIEFQSSBm
dW5jdGlvbiBpbiB1ZGF0YS5jCisgKgorICogU2FtZSBhcyB1ZGF0YV9vcGVuQ2hvaWNlKCkgYnV0
IGF1dG9tYXRpY2FsbHkgc3dhcHMgdGhlIGRhdGEuCisgKiBpc0FjY2VwdGFibGUsIGlmIG5vdCBO
VUxMLCBtYXkgYWNjZXB0IGRhdGEgd2l0aCBlbmRpYW5uZXNzIGFuZCBjaGFyc2V0IGZhbWlseQor
ICogZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgcGxhdGZvcm0ncyBwcm9wZXJ0aWVzLgorICog
SWYgdGhlIGRhdGEgaXMgYWNjZXB0YWJsZSBhbmQgdGhlIHBsYXRmb3JtIHByb3BlcnRpZXMgZG8g
bm90IG1hdGNoLCB0aGVuCisgKiB0aGUgc3dhcCBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gc3dhcCBh
biBhbGxvY2F0ZWQgdmVyc2lvbiBvZiB0aGUgZGF0YS4KKyAqIFByZWZsaWdodGluZyBtYXkgb3Ig
bWF5IG5vdCBiZSBwZXJmb3JtZWQgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHNpemUgb2YKKyAq
IHRoZSBsb2FkZWQgZGF0YSBpdGVtIGlzIGtub3duLgorICoKKyAqIEBwYXJhbSBpc0FjY2VwdGFi
bGUgU2FtZSBhcyBmb3IgdWRhdGFfb3BlbkNob2ljZSgpLiBNYXkgYmUgTlVMTC4KKyAqCisgKiBA
aW50ZXJuYWwgSUNVIDIuOAorICovCitVX0NBUEkgVURhdGFNZW1vcnkgKiBVX0VYUE9SVDIKK3Vk
YXRhX29wZW5Td2FwKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNo
YXIgKm5hbWUsCisgICAgICAgICAgICAgICBVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSAqaXNBY2Nl
cHRhYmxlLCB2b2lkICppc0FjY2VwdGFibGVDb250ZXh0LAorICAgICAgICAgICAgICAgVURhdGFT
d2FwRm4gKnN3YXAsCisgICAgICAgICAgICAgICBVRGF0YVByaW50RXJyb3IgKnByaW50RXJyb3Is
IHZvaWQgKnByaW50RXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVy
cm9yQ29kZSk7CisKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW1hcGZpbGUuaCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW1hcGZpbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTk1ZTM4MWVk
MzBjMGI5MDMyNmIyNGVjZGYxMjI0OWZkNDM0NTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bWFwZmlsZS5oCkBAIC0wLDAgKzEs
NTUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5
OTktMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9u
IGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqLworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAgICAgICBNZW1vcnkg
bWFwcGVkIGZpbGUgd3JhcHBlcnMgZm9yIHVzZSBieSB0aGUgSUNVIERhdGEgSW1wbGVtZW50YXRp
b24KKyAqCisgKiAgICAgICAgICAgUG9ydGluZyBub3RlOiAgVGhlIGltcGxlbWVudGF0aW9uIG9m
IHRoZXNlIGZ1bmN0aW9ucyBpcyB2ZXJ5IHBsYXRmb3JtIHNwZWNpZmljLgorICogICAgICAgICAg
ICAgTm90IGFsbCBwbGF0Zm9ybXMgY2FuIGRvIHJlYWwgbWVtb3J5IG1hcHBpbmcuICBUaG9zZSB0
aGF0IGNhbid0CisgKiAgICAgICAgICAgICBzdGlsbCBtdXN0IGltcGxlbWVudCB0aGVzZSBmdW5j
dGlvbnMsIGdldHRpbmcgdGhlIGRhdGEgaW50byBtZW1vcnkgdXNpbmcKKyAqICAgICAgICAgICAg
IHdoYXRldmVyIG1lYW5zIGFyZSBhdmFpbGFibGUuCisgKgorICogICAgICAgICAgICBUaGVzZSBm
dW5jdGlvbnMgYXJlIHBhcnQgb2YgdGhlIElDVSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiwgYW5k
CisgKiAgICAgICAgICAgIGFyZSBub3QgaW50ZWRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGJ5IGFw
cGxpY2F0aW9ucy4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisjaWZuZGVm
IF9fVU1BUEZJTEVfSF9fCisjZGVmaW5lIF9fVU1BUEZJTEVfSF9fCisKKyNpbmNsdWRlICJ1bmlj
b2RlL3B1dGlsLmgiCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgorI2luY2x1ZGUgInB1dGls
aW1wLmgiCisKK1VfQ0ZVTkMgVUJvb2wgdXBydl9tYXBGaWxlKFVEYXRhTWVtb3J5ICpwZG0sIGNv
bnN0IGNoYXIgKnBhdGgpOworVV9DRlVOQyB2b2lkICB1cHJ2X3VubWFwRmlsZShVRGF0YU1lbW9y
eSAqcERhdGEpOworCisvKiBNQVBfTk9ORTogbm8gbWVtb3J5IG1hcHBpbmcsIG5vIGZpbGUgYWNj
ZXNzIGF0IGFsbCAqLworI2RlZmluZSBNQVBfTk9ORSAgICAgICAgMAorI2RlZmluZSBNQVBfV0lO
MzIgICAgICAgMQorI2RlZmluZSBNQVBfUE9TSVggICAgICAgMgorI2RlZmluZSBNQVBfU1RESU8g
ICAgICAgMworI2RlZmluZSBNQVBfMzkwRExMICAgICAgNAorCisjaWYgVUNPTkZJR19OT19GSUxF
X0lPCisjICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfTk9ORQorI2VsaWYgVV9QTEFU
Rk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBN
QVBfV0lOMzIKKyNlbGlmIFVfSEFWRV9NTUFQIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MAor
IyAgIGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MCAmJiBkZWZpbmVkIChPUzM5MF9TVFVCREFU
QSkKKyAgICAgICAgLyogICBObyBtZW1vcnkgbWFwcGluZyBmb3IgMzkwIGJhdGNoIG1vZGUuICBG
YWtlIGl0IHVzaW5nIGRsbCBsb2FkaW5nLiAgKi8KKyMgICAgICAgZGVmaW5lIE1BUF9JTVBMRU1F
TlRBVElPTiBNQVBfMzkwRExMCisjICAgZWxzZQorIyAgICAgICBkZWZpbmUgTUFQX0lNUExFTUVO
VEFUSU9OIE1BUF9QT1NJWAorIyAgIGVuZGlmCisjZWxzZSAvKiB1bmtub3duIHBsYXRmb3JtLCBu
byBtZW1vcnkgbWFwIGltcGxlbWVudGF0aW9uOiB1c2Ugc3RkaW8uaCBhbmQgdXBydl9tYWxsb2Mo
KSBpbnN0ZWFkICovCisjICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfU1RESU8KKyNl
bmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9nZW5icmsvdW11dGV4LmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Z2VuYnJrL3VtdXRleC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwYWQwZDNjMDM2NTRkNjFhMDIzYTA4MjU0ODU2
M2Q4ZDRjMDNjNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvZ2VuYnJrL3VtdXRleC5oCkBAIC0wLDAgKzEsNDI0IEBACisvKgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgVU1VVEVYLkgKKyoKKyogTW9kaWZpY2F0aW9u
IEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyog
ICAwNC8wMi85NyAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqICAgMDQvMDcvOTkgIHNybCAgICAg
ICAgIHJld3JpdGUgLSBDIGludGVyZmFjZSwgbXVsdGlwbGUgbXV0aWNlcworKiAgIDA1LzEzLzk5
ICBzdGVwaGVuICAgICBDaGFuZ2VkIHRvIHVtdXRleCAoZnJvbSBjbXV0ZXgpCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyovCisKKyNpZm5kZWYgVU1VVEVYX0gKKyNkZWZpbmUgVU1VVEVYX0gKKwor
I2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2xlYW4uaCIK
KyNpbmNsdWRlICJwdXRpbGltcC5oIgorCisKKworLy8gRm9yd2FyZCBEZWNsYXJhdGlvbnMuIFVN
dXRleCBpcyBub3QgaW4gdGhlIElDVSBuYW1lc3BhY2UgKHlldCkgYmVjYXVzZQorLy8gICAgICAg
ICAgICAgICAgICAgICAgIHRoZXJlIGFyZSBzb21lIHJlbWFpbmluZyByZWZlcmVuY2VzIGZyb20g
cGxhaW4gQy4KK3N0cnVjdCBVTXV0ZXg7CitzdHJ1Y3QgVUNvbmRpdGlvblZhcjsKKworVV9OQU1F
U1BBQ0VfQkVHSU4KK3N0cnVjdCBVSW5pdE9uY2U7CitVX05BTUVTUEFDRV9FTkQKKworLy8gU3Ry
aW5naWZ5IG1hY3JvcywgdG8gYWxsb3cgI2luY2x1ZGUgb2YgdXNlciBzdXBwbGllZCBhdG9taWMg
JiBtdXRleCBmaWxlcy4KKyNkZWZpbmUgVV9NVVRFWF9TVFIocykgI3MKKyNkZWZpbmUgVV9NVVRF
WF9YU1RSKHMpIFVfTVVURVhfU1RSKHMpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICog
ICBMb3cgTGV2ZWwgQXRvbWljIE9wZXJhdGlvbnMuCisgKiAgICAgIENvbXBpbGVyIGRlcGVuZGVu
dC4gTm90IG9wZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50LgorICoKKyAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqLworI2lmIGRlZmluZWQgKFVfVVNFUl9BVE9NSUNTX0gpCisjaW5jbHVkZSBVX01VVEVYX1hT
VFIoVV9VU0VSX0FUT01JQ1NfSCkKKworI2VsaWYgVV9IQVZFX1NURF9BVE9NSUNTCisKKy8vICBD
KysxMSBhdG9taWNzIGFyZSBhdmFpbGFibGUuCisKKyNpbmNsdWRlIDxhdG9taWM+CisKK1VfTkFN
RVNQQUNFX0JFR0lOCisKK3R5cGVkZWYgc3RkOjphdG9taWM8aW50MzJfdD4gdV9hdG9taWNfaW50
MzJfdDsKKyNkZWZpbmUgQVRPTUlDX0lOVDMyX1RfSU5JVElBTElaRVIodmFsKSBBVE9NSUNfVkFS
X0lOSVQodmFsKQorCitpbmxpbmUgaW50MzJfdCB1bXR4X2xvYWRBY3F1aXJlKHVfYXRvbWljX2lu
dDMyX3QgJnZhcikgeworICAgIHJldHVybiB2YXIubG9hZChzdGQ6Om1lbW9yeV9vcmRlcl9hY3F1
aXJlKTsKK30KKworaW5saW5lIHZvaWQgdW10eF9zdG9yZVJlbGVhc2UodV9hdG9taWNfaW50MzJf
dCAmdmFyLCBpbnQzMl90IHZhbCkgeworICAgIHZhci5zdG9yZSh2YWwsIHN0ZDo6bWVtb3J5X29y
ZGVyX3JlbGVhc2UpOworfQorCitpbmxpbmUgaW50MzJfdCB1bXR4X2F0b21pY19pbmModV9hdG9t
aWNfaW50MzJfdCAqdmFyKSB7CisgICAgcmV0dXJuIHZhci0+ZmV0Y2hfYWRkKDEpICsgMTsKK30K
KworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfZGVjKHVfYXRvbWljX2ludDMyX3QgKnZhcikg
eworICAgIHJldHVybiB2YXItPmZldGNoX3N1YigxKSAtIDE7Cit9CitVX05BTUVTUEFDRV9FTkQK
KworI2VsaWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisKKy8vIE1TVkMgY29tcGlsZXIuIFJl
YWRzIGFuZCB3cml0ZXMgb2Ygdm9sYXRpbGUgdmFyaWFibGVzIGhhdmUKKy8vICAgICAgICAgICAg
ICAgIGFjcXVpcmUgYW5kIHJlbGVhc2UgbWVtb3J5IHNlbWFudGljcywgcmVzcGVjdGl2ZWx5Lgor
Ly8gICAgICAgICAgICAgICAgVGhpcyBpcyBhIE1pY3Jvc29mdCBleHRlbnNpb24sIG5vdCBzdGFu
ZGFyZCBDKysgYmVoYXZpb3IuCisvLworLy8gICBVcGRhdGU6ICAgICAgY2FuJ3QgdXNlIHRoaXMg
YmVjYXVzZSBvZiBNaW5HVywgYnVpbHQgd2l0aCBnY2MuCisvLyAgICAgICAgICAgICAgICBPcmln
aW5hbCBwbGFuIHdhcyB0byB1c2UgZ2NjIGF0b21pY3MgZm9yIE1pbkdXLCBidXQgdGhleQorLy8g
ICAgICAgICAgICAgICAgYXJlbid0IHN1cHBvcnRlZCwgc28gd2UgZm9sZCBNaW5HVyBpbnRvIHRo
aXMgcGF0aC4KKworIyBkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgorIyBkZWZpbmUgVkNfRVhU
UkFMRUFOCisjIGRlZmluZSBOT1VTRVIKKyMgZGVmaW5lIE5PU0VSVklDRQorIyBkZWZpbmUgTk9J
TUUKKyMgZGVmaW5lIE5PTUNYCisjIGlmbmRlZiBOT01JTk1BWAorIyBkZWZpbmUgTk9NSU5NQVgK
KyMgZW5kaWYKKyMgaW5jbHVkZSA8d2luZG93cy5oPgorCitVX05BTUVTUEFDRV9CRUdJTgordHlw
ZWRlZiB2b2xhdGlsZSBMT05HIHVfYXRvbWljX2ludDMyX3Q7CisjZGVmaW5lIEFUT01JQ19JTlQz
Ml9UX0lOSVRJQUxJWkVSKHZhbCkgdmFsCisKK2lubGluZSBpbnQzMl90IHVtdHhfbG9hZEFjcXVp
cmUodV9hdG9taWNfaW50MzJfdCAmdmFyKSB7CisgICAgcmV0dXJuIEludGVybG9ja2VkQ29tcGFy
ZUV4Y2hhbmdlKCZ2YXIsIDAsIDApOworfQorCitpbmxpbmUgdm9pZCB1bXR4X3N0b3JlUmVsZWFz
ZSh1X2F0b21pY19pbnQzMl90ICZ2YXIsIGludDMyX3QgdmFsKSB7CisgICAgSW50ZXJsb2NrZWRF
eGNoYW5nZSgmdmFyLCB2YWwpOworfQorCisKK2lubGluZSBpbnQzMl90IHVtdHhfYXRvbWljX2lu
Yyh1X2F0b21pY19pbnQzMl90ICp2YXIpIHsKKyAgICByZXR1cm4gSW50ZXJsb2NrZWRJbmNyZW1l
bnQodmFyKTsKK30KKworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfZGVjKHVfYXRvbWljX2lu
dDMyX3QgKnZhcikgeworICAgIHJldHVybiBJbnRlcmxvY2tlZERlY3JlbWVudCh2YXIpOworfQor
VV9OQU1FU1BBQ0VfRU5ECisKKworI2VsaWYgVV9IQVZFX0dDQ19BVE9NSUNTCisvKgorICogZ2Nj
IGF0b21pYyBvcHMuIFRoZXNlIGFyZSBhdmFpbGFibGUgb24gc2V2ZXJhbCBvdGhlciBjb21waWxl
cnMgYXMgd2VsbC4KKyAqLworCitVX05BTUVTUEFDRV9CRUdJTgordHlwZWRlZiBpbnQzMl90IHVf
YXRvbWljX2ludDMyX3Q7CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJQUxJWkVSKHZhbCkg
dmFsCisKK2lubGluZSBpbnQzMl90IHVtdHhfbG9hZEFjcXVpcmUodV9hdG9taWNfaW50MzJfdCAm
dmFyKSB7CisgICAgaW50MzJfdCB2YWwgPSB2YXI7CisgICAgX19zeW5jX3N5bmNocm9uaXplKCk7
CisgICAgcmV0dXJuIHZhbDsKK30KKworaW5saW5lIHZvaWQgdW10eF9zdG9yZVJlbGVhc2UodV9h
dG9taWNfaW50MzJfdCAmdmFyLCBpbnQzMl90IHZhbCkgeworICAgIF9fc3luY19zeW5jaHJvbml6
ZSgpOworICAgIHZhciA9IHZhbDsKK30KKworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfaW5j
KHVfYXRvbWljX2ludDMyX3QgKnApICB7CisgICByZXR1cm4gX19zeW5jX2FkZF9hbmRfZmV0Y2go
cCwgMSk7Cit9CisKK2lubGluZSBpbnQzMl90IHVtdHhfYXRvbWljX2RlYyh1X2F0b21pY19pbnQz
Ml90ICpwKSAgeworICAgcmV0dXJuIF9fc3luY19zdWJfYW5kX2ZldGNoKHAsIDEpOworfQorVV9O
QU1FU1BBQ0VfRU5ECisKKyNlbHNlCisKKy8qCisgKiBVbmtub3duIFBsYXRmb3JtLiBVc2Ugb3V0
LW9mLWxpbmUgZnVuY3Rpb25zLCB3aGljaCBpbiB0dXJuIHVzZSBtdXRleGVzLgorICogICAgICAg
ICAgICAgICAgICAgU2xvdyBidXQgY29ycmVjdC4KKyAqLworCisjZGVmaW5lIFVfTk9fUExBVEZP
Uk1fQVRPTUlDUworCitVX05BTUVTUEFDRV9CRUdJTgordHlwZWRlZiBpbnQzMl90IHVfYXRvbWlj
X2ludDMyX3Q7CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJQUxJWkVSKHZhbCkgdmFsCisK
K1VfQ09NTU9OX0FQSSBpbnQzMl90IFVfRVhQT1JUMiAKK3VtdHhfbG9hZEFjcXVpcmUodV9hdG9t
aWNfaW50MzJfdCAmdmFyKTsKKworVV9DT01NT05fQVBJIHZvaWQgVV9FWFBPUlQyIAordW10eF9z
dG9yZVJlbGVhc2UodV9hdG9taWNfaW50MzJfdCAmdmFyLCBpbnQzMl90IHZhbCk7CisKK1VfQ09N
TU9OX0FQSSBpbnQzMl90IFVfRVhQT1JUMiAKK3VtdHhfYXRvbWljX2luYyh1X2F0b21pY19pbnQz
Ml90ICpwKTsKKworVV9DT01NT05fQVBJIGludDMyX3QgVV9FWFBPUlQyIAordW10eF9hdG9taWNf
ZGVjKHVfYXRvbWljX2ludDMyX3QgKnApOworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmICAv
KiBMb3cgTGV2ZWwgQXRvbWljIE9wcyBQbGF0ZnJvbSBDaGFpbiAqLworCisKKworLyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgVUluaXRPbmNlIERlZmlu
aXRpb25zLgorICogICAgIFRoZXNlIGFyZSBwbGF0Zm9ybSBuZXV0cmFsLgorICoKKyAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitVX05BTUVTUEFDRV9CRUdJTgor
CitzdHJ1Y3QgVUluaXRPbmNlIHsKKyAgICB1X2F0b21pY19pbnQzMl90ICAgZlN0YXRlOworICAg
IFVFcnJvckNvZGUgICAgICAgZkVyckNvZGU7CisgICAgdm9pZCByZXNldCgpIHtmU3RhdGUgPSAw
O307CisgICAgVUJvb2wgaXNSZXNldCgpIHtyZXR1cm4gdW10eF9sb2FkQWNxdWlyZShmU3RhdGUp
ID09IDA7fTsKKy8vIE5vdGU6IGlzUmVzZXQoKSBpcyB1c2VkIGJ5IHNlcnZpY2UgcmVnaXN0cmF0
aW9uIGNvZGUuCisvLyAgICAgICAgICAgICAgICAgVGhyZWFkIHNhZmV0eSBvZiB0aGlzIHVzYWdl
IG5lZWRzIHJldmlldy4KK307CisKKyNkZWZpbmUgVV9JTklUT05DRV9JTklUSUFMSVpFUiB7QVRP
TUlDX0lOVDMyX1RfSU5JVElBTElaRVIoMCksIFVfWkVST19FUlJPUn0KKworCitVX0NPTU1PTl9B
UEkgVUJvb2wgVV9FWFBPUlQyIHVtdHhfaW5pdEltcGxQcmVJbml0KFVJbml0T25jZSAmKTsKK1Vf
Q09NTU9OX0FQSSB2b2lkICBVX0VYUE9SVDIgdW10eF9pbml0SW1wbFBvc3RJbml0KFVJbml0T25j
ZSAmKTsKKwordGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCB1bXR4X2luaXRPbmNlKFVJbml0T25jZSAm
dWlvLCBUICpvYmosIHZvaWQgKFQ6OipmcCkoKSkgeworICAgIGlmICh1bXR4X2xvYWRBY3F1aXJl
KHVpby5mU3RhdGUpID09IDIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAodW10
eF9pbml0SW1wbFByZUluaXQodWlvKSkgeworICAgICAgICAob2JqLT4qZnApKCk7CisgICAgICAg
IHVtdHhfaW5pdEltcGxQb3N0SW5pdCh1aW8pOworICAgIH0KK30KKworCisvLyB1bXR4X2luaXRP
bmNlIHZhcmlhbnQgZm9yIHBsYWluIGZ1bmN0aW9ucywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9u
cy4KKy8vICAgICAgICAgICAgICAgTm8gY29udGV4dCBwYXJhbWV0ZXIuCitpbmxpbmUgdm9pZCB1
bXR4X2luaXRPbmNlKFVJbml0T25jZSAmdWlvLCB2b2lkICgqZnApKCkpIHsKKyAgICBpZiAodW10
eF9sb2FkQWNxdWlyZSh1aW8uZlN0YXRlKSA9PSAyKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgaWYgKHVtdHhfaW5pdEltcGxQcmVJbml0KHVpbykpIHsKKyAgICAgICAgKCpmcCkoKTsK
KyAgICAgICAgdW10eF9pbml0SW1wbFBvc3RJbml0KHVpbyk7CisgICAgfQorfQorCisvLyB1bXR4
X2luaXRPbmNlIHZhcmlhbnQgZm9yIHBsYWluIGZ1bmN0aW9ucywgb3Igc3RhdGljIGNsYXNzIGZ1
bmN0aW9ucy4KKy8vICAgICAgICAgICAgICAgV2l0aCBFcnJvckNvZGUsIE5vIGNvbnRleHQgcGFy
YW1ldGVyLgoraW5saW5lIHZvaWQgdW10eF9pbml0T25jZShVSW5pdE9uY2UgJnVpbywgdm9pZCAo
KmZwKShVRXJyb3JDb2RlICYpLCBVRXJyb3JDb2RlICZlcnJDb2RlKSB7CisgICAgaWYgKFVfRkFJ
TFVSRShlcnJDb2RlKSkgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICh1bXR4X2xv
YWRBY3F1aXJlKHVpby5mU3RhdGUpICE9IDIgJiYgdW10eF9pbml0SW1wbFByZUluaXQodWlvKSkg
eworICAgICAgICAvLyBXZSBydW4gdGhlIGluaXRpYWxpemF0aW9uLgorICAgICAgICAoKmZwKShl
cnJDb2RlKTsKKyAgICAgICAgdWlvLmZFcnJDb2RlID0gZXJyQ29kZTsKKyAgICAgICAgdW10eF9p
bml0SW1wbFBvc3RJbml0KHVpbyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gU29tZW9uZSBl
bHNlIGFscmVhZHkgcmFuIHRoZSBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgaWYgKFVfRkFJTFVS
RSh1aW8uZkVyckNvZGUpKSB7CisgICAgICAgICAgICBlcnJDb2RlID0gdWlvLmZFcnJDb2RlOwor
ICAgICAgICB9CisgICAgfQorfQorCisvLyB1bXR4X2luaXRPbmNlIHZhcmlhbnQgZm9yIHBsYWlu
IGZ1bmN0aW9ucywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9ucywKKy8vICAgICAgICAgICAgICAg
d2l0aCBhIGNvbnRleHQgcGFyYW1ldGVyLgordGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCB1bXR4X2lu
aXRPbmNlKFVJbml0T25jZSAmdWlvLCB2b2lkICgqZnApKFQpLCBUIGNvbnRleHQpIHsKKyAgICBp
ZiAodW10eF9sb2FkQWNxdWlyZSh1aW8uZlN0YXRlKSA9PSAyKSB7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgaWYgKHVtdHhfaW5pdEltcGxQcmVJbml0KHVpbykpIHsKKyAgICAgICAgKCpm
cCkoY29udGV4dCk7CisgICAgICAgIHVtdHhfaW5pdEltcGxQb3N0SW5pdCh1aW8pOworICAgIH0K
K30KKworLy8gdW10eF9pbml0T25jZSB2YXJpYW50IGZvciBwbGFpbiBmdW5jdGlvbnMsIG9yIHN0
YXRpYyBjbGFzcyBmdW5jdGlvbnMsCisvLyAgICAgICAgICAgICAgIHdpdGggYSBjb250ZXh0IHBh
cmFtZXRlciBhbmQgYW4gZXJyb3IgY29kZS4KK3RlbXBsYXRlPGNsYXNzIFQ+IHZvaWQgdW10eF9p
bml0T25jZShVSW5pdE9uY2UgJnVpbywgdm9pZCAoKmZwKShULCBVRXJyb3JDb2RlICYpLCBUIGNv
bnRleHQsIFVFcnJvckNvZGUgJmVyckNvZGUpIHsKKyAgICBpZiAoVV9GQUlMVVJFKGVyckNvZGUp
KSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHVtdHhfbG9hZEFjcXVpcmUodWlv
LmZTdGF0ZSkgIT0gMiAmJiB1bXR4X2luaXRJbXBsUHJlSW5pdCh1aW8pKSB7CisgICAgICAgIC8v
IFdlIHJ1biB0aGUgaW5pdGlhbGl6YXRpb24uCisgICAgICAgICgqZnApKGNvbnRleHQsIGVyckNv
ZGUpOworICAgICAgICB1aW8uZkVyckNvZGUgPSBlcnJDb2RlOworICAgICAgICB1bXR4X2luaXRJ
bXBsUG9zdEluaXQodWlvKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBTb21lb25lIGVsc2Ug
YWxyZWFkeSByYW4gdGhlIGluaXRpYWxpemF0aW9uLgorICAgICAgICBpZiAoVV9GQUlMVVJFKHVp
by5mRXJyQ29kZSkpIHsKKyAgICAgICAgICAgIGVyckNvZGUgPSB1aW8uZkVyckNvZGU7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisKKworLyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgTXV0ZXggRGVmaW5pdGlvbnMuIFBs
YXRmb3JtIERlcGVuZGVudCwgI2lmIHBsYXRmb3JtIGNoYWluIGZvbGxvd3MuCisgKiAgICAgICAg
IFRPRE86ICBBZGQgYSBDKysxMSB2ZXJzaW9uLgorICogICAgICAgICAgICAgICAgTmVlZCB0byBj
b252ZXJ0IGFsbCBtdXRleCB1c2luZyBmaWxlcyB0byBDKysgZmlyc3QuCisgKgorICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZiBkZWZpbmVkKFVfVVNFUl9N
VVRFWF9IKQorLy8gI2lubGN1ZGUgIlVfVVNFUl9NVVRFWF9IIgorI2luY2x1ZGUgVV9NVVRFWF9Y
U1RSKFVfVVNFUl9NVVRFWF9IKQorCisjZWxpZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkKKwor
LyogV2luZG93cyBEZWZpbml0aW9ucy4KKyAqICAgIFdpbmRvd3MgY29tZXMgZmlyc3QgaW4gdGhl
IHBsYXRmb3JtIGNoYWluLgorICogICAgQ3lnd2luIChhbmQgcG9zc2libHkgb3RoZXJzKSBoYXZl
IGJvdGggV0lOMzIgYW5kIFBPU0lYIEFQSXMuIFByZWZlciBXaW4zMiBpbiB0aGlzIGNhc2UuCisg
Ki8KKworCisvKiBGb3IgQ1JJVElDQUxfU0VDVElPTiAqLworCisvKgorICogICBOb3RlOiB0aGVy
ZSBpcyBhbiBlYXJsaWVyIGluY2x1ZGUgb2Ygd2luZG93cy5oIGluIHRoaXMgZmlsZSwgYnV0IGl0
IGlzIGluCisgKiAgICAgICAgIGRpZmZlcmVudCBjb25kaXRpb25hbHMuCisgKiAgICAgICAgIFRo
aXMgb25lIGlzIG5lZWRlZCBpZiB3ZSBhcmUgdXNpbmcgQysrMTEgZm9yIGF0b21pYyBvcHMsIGJ1
dAorICogICAgICAgICB3aW4zMiBBUElzIGZvciBDcml0aWNhbCBTZWN0aW9ucy4KKyAqLworCisj
IGRlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCisjIGRlZmluZSBWQ19FWFRSQUxFQU4KKyMgZGVm
aW5lIE5PVVNFUgorIyBkZWZpbmUgTk9TRVJWSUNFCisjIGRlZmluZSBOT0lNRQorIyBkZWZpbmUg
Tk9NQ1gKKyMgaWZuZGVmIE5PTUlOTUFYCisjIGRlZmluZSBOT01JTk1BWAorIyBlbmRpZgorIyBp
bmNsdWRlIDx3aW5kb3dzLmg+CisKKwordHlwZWRlZiBzdHJ1Y3QgVU11dGV4IHsKKyAgICBpY3U6
OlVJbml0T25jZSAgICBmSW5pdE9uY2U7CisgICAgQ1JJVElDQUxfU0VDVElPTiAgZkNTOworfSBV
TXV0ZXg7CisKKy8qIEluaXRpYWxpemVyIGZvciBhIHN0YXRpYyBVTVVURVguIERlbGliZXJhdGVs
eSBjb250YWlucyBubyB2YWx1ZSBmb3IgdGhlCisgKiAgQ1JJVElDQUxfU0VDVElPTi4KKyAqLwor
I2RlZmluZSBVX01VVEVYX0lOSVRJQUxJWkVSIHtVX0lOSVRPTkNFX0lOSVRJQUxJWkVSfQorCitz
dHJ1Y3QgVUNvbmRpdGlvblZhciB7CisgICAgSEFORExFICAgICAgICAgICBmRW50cnlHYXRlOwor
ICAgIEhBTkRMRSAgICAgICAgICAgZkV4aXRHYXRlOworICAgIGludDMyX3QgICAgICAgICAgZldh
aXRDb3VudDsKK307CisKKyNkZWZpbmUgVV9DT05ESVRJT05fSU5JVElBTElaRVIge05VTEwsIE5V
TEwsIDB9CisgICAgCisKKworI2VsaWYgVV9QTEFURk9STV9JTVBMRU1FTlRTX1BPU0lYCisKKy8q
CisgKiAgUE9TSVggcGxhdGZvcm0KKyAqLworCisjaW5jbHVkZSA8cHRocmVhZC5oPgorCitzdHJ1
Y3QgVU11dGV4IHsKKyAgICBwdGhyZWFkX211dGV4X3QgIGZNdXRleDsKK307Cit0eXBlZGVmIHN0
cnVjdCBVTXV0ZXggVU11dGV4OworI2RlZmluZSBVX01VVEVYX0lOSVRJQUxJWkVSICB7UFRIUkVB
RF9NVVRFWF9JTklUSUFMSVpFUn0KKworc3RydWN0IFVDb25kaXRpb25WYXIgeworICAgIHB0aHJl
YWRfY29uZF90ICAgZkNvbmRpdGlvbjsKK307CisjZGVmaW5lIFVfQ09ORElUSU9OX0lOSVRJQUxJ
WkVSIHtQVEhSRUFEX0NPTkRfSU5JVElBTElaRVJ9CisKKyNlbHNlCisKKy8qCisgKiAgVW5rbm93
IHBsYXRmb3JtIHR5cGUuCisgKiAgICAgIFRoaXMgaXMgYW4gZXJyb3IgY29uZGl0aW9uLiBJQ1Ug
cmVxdWlyZXMgbXV0ZXhlcy4KKyAqLworCisjZXJyb3IgVW5rbm93biBQbGF0Zm9ybS4KKworI2Vu
ZGlmCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgTXV0ZXgg
SW1wbGVtZW50YXRpb24gZnVuY3Rpb24gZGVjbGFyYXRhdGlvbnMuCisgKiAgICAgRGVjbGFyYXRp
b25zIGFyZSBwbGF0Zm9ybSBuZXV0cmFsLgorICogICAgIEltcGxlbWVudGF0aW9ucywgaW4gdW11
dGV4LmNwcCwgYXJlIHBsYXRmb3JtIHNwZWNpZmljLgorICoKKyAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKiovCisKKy8qIExvY2sgYSBtdXRleC4KKyAqIEBwYXJhbSBtdXRleCBUaGUgZ2l2ZW4g
bXV0ZXggdG8gYmUgbG9ja2VkLiAgUGFzcyBOVUxMIHRvIHNwZWNpZnkKKyAqICAgICAgICAgICAg
ICB0aGUgZ2xvYmFsIElDVSBtdXRleC4gIFJlY3Vyc2l2ZSBsb2NrcyBhcmUgYW4gZXJyb3IKKyAq
ICAgICAgICAgICAgICBhbmQgbWF5IGNhdXNlIGEgZGVhZGxvY2sgb24gc29tZSBwbGF0Zm9ybXMu
CisgKi8KK1VfSU5URVJOQUwgdm9pZCBVX0VYUE9SVDIgdW10eF9sb2NrKFVNdXRleCogbXV0ZXgp
OworCisvKiBVbmxvY2sgYSBtdXRleC4KKyAqIEBwYXJhbSBtdXRleCBUaGUgZ2l2ZW4gbXV0ZXgg
dG8gYmUgdW5sb2NrZWQuICBQYXNzIE5VTEwgdG8gc3BlY2lmeQorICogICAgICAgICAgICAgIHRo
ZSBnbG9iYWwgSUNVIG11dGV4LgorICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyIHVtdHhf
dW5sb2NrIChVTXV0ZXgqIG11dGV4KTsKKworLyoKKyAqIFdhaXQgb24gYSBjb25kaXRpb24gdmFy
aWFibGUuCisgKiBUaGUgY2FsbGluZyB0aHJlYWQgd2lsbCB1bmxvY2sgdGhlIG11dGV4IGFuZCB3
YWl0IG9uIHRoZSBjb25kaXRpb24gdmFyaWFibGUuCisgKiBUaGUgbXV0ZXggbXVzdCBiZSBsb2Nr
ZWQgYnkgdGhlIGNhbGxpbmcgdGhyZWFkIHdoZW4gaW52b2tpbmcgdGhpcyBmdW5jdGlvbi4KKyAq
CisgKiBAcGFyYW0gY29uZCB0aGUgY29uZGl0aW9uIHZhcmlhYmxlIHRvIHdhaXQgb24uCisgKiBA
cGFyYW0gbXV0ZXggdGhlIGFzc29jaWF0ZWQgbXV0ZXguCisgKi8KKworVV9JTlRFUk5BTCB2b2lk
IFVfRVhQT1JUMiB1bXR4X2NvbmRXYWl0KFVDb25kaXRpb25WYXIgKmNvbmQsIFVNdXRleCAqbXV0
ZXgpOworCisKKy8qCisgKiBCcm9hZGNhc3Qgd2FrZXVwIG9mIGFsbCB0aHJlYWRzIHdhaXRpbmcg
b24gYSBDb25kaXRpb24uCisgKiBUaGUgYXNzb2NpYXRlZCBtdXRleCBtdXN0IGJlIGxvY2tlZCBi
eSB0aGUgY2FsbGluZyB0aHJlYWQgd2hlbiBjYWxsaW5nCisgKiB0aGlzIGZ1bmN0aW9uOyB0aGlz
IGlzIGEgdGVtcG9yYXJ5IElDVSByZXN0cmljdGlvbi4KKyAqIAorICogQHBhcmFtIGNvbmQgdGhl
IGNvbmRpdGlvbiB2YXJpYWJsZS4KKyAqLworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JUMiB1bXR4
X2NvbmRCcm9hZGNhc3QoVUNvbmRpdGlvblZhciAqY29uZCk7CisKKy8qCisgKiBTaWduYWwgYSBj
b25kaXRpb24gdmFyaWFibGUsIHdha2luZyB1cCBvbmUgd2FpdGluZyB0aHJlYWQuCisgKiBDQVVU
SU9OOiBEbyBub3QgdXNlLiBQbGFjZSBob2xkZXIgb25seS4gTm90IGltcGxlbWVudGVkIGZvciBX
aW5kb3dzLgorICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyIHVtdHhfY29uZFNpZ25hbChV
Q29uZGl0aW9uVmFyICpjb25kKTsKKworI2VuZGlmIC8qIFVNVVRFWF9IICovCisvKmVvZiovCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VuZXdk
YXRhLmMgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VuZXdkYXRh
LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWVhNjBkNTY2ODM5NjQwMzdiYjM2ZGU3MjhiNTJmMWJjNDFmZWM2Ngot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5i
cmsvdW5ld2RhdGEuYwpAQCAtMCwwICsxLDI3NCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVz
cyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVuZXdkYXRh
LmMKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2Vk
KQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0MjUKKyogICBj
cmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+Cisj
aW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3B1dGlsLmgiCisj
aW5jbHVkZSAidW5pY29kZS91c3RyaW5nLmgiCisjaW5jbHVkZSAiY21lbW9yeS5oIgorI2luY2x1
ZGUgImNzdHJpbmcuaCIKKyNpbmNsdWRlICJmaWxlc3RybS5oIgorI2luY2x1ZGUgInVuaWNvZGUv
dWRhdGEuaCIKKyNpbmNsdWRlICJ1bmV3ZGF0YS5oIgorCitzdHJ1Y3QgVU5ld0RhdGFNZW1vcnkg
eworICAgIEZpbGVTdHJlYW0gKmZpbGU7CisgICAgdWludDE2X3QgaGVhZGVyU2l6ZTsKKyAgICB1
aW50OF90IG1hZ2ljMSwgbWFnaWMyOworfTsKKworVV9DQVBJIFVOZXdEYXRhTWVtb3J5ICogVV9F
WFBPUlQyCit1ZGF0YV9jcmVhdGUoY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBj
b25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgIGNvbnN0IFVEYXRhSW5mbyAqcEluZm8sCisg
ICAgICAgICAgICAgY29uc3QgY2hhciAqY29tbWVudCwKKyAgICAgICAgICAgICBVRXJyb3JDb2Rl
ICpwRXJyb3JDb2RlKSB7CisgICAgVU5ld0RhdGFNZW1vcnkgKnBEYXRhOworICAgIHVpbnQxNl90
IGhlYWRlclNpemUsIGNvbW1lbnRMZW5ndGg7CisgICAgY2hhciBmaWxlbmFtZVs1MTJdOworICAg
IHVpbnQ4X3QgYnl0ZXNbMTZdOworICAgIGludCBsZW5ndGg7CisKKyAgICBpZihwRXJyb3JDb2Rl
PT1OVUxMIHx8IFVfRkFJTFVSRSgqcEVycm9yQ29kZSkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7
CisgICAgfSBlbHNlIGlmKG5hbWU9PU5VTEwgfHwgKm5hbWU9PTAgfHwgcEluZm89PU5VTEwpIHsK
KyAgICAgICAgKnBFcnJvckNvZGU9VV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SOworICAgICAgICBy
ZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiBhbGxvY2F0ZSB0aGUgZGF0YSBzdHJ1Y3R1cmUg
Ki8KKyAgICBwRGF0YT0oVU5ld0RhdGFNZW1vcnkgKil1cHJ2X21hbGxvYyhzaXplb2YoVU5ld0Rh
dGFNZW1vcnkpKTsKKyAgICBpZihwRGF0YT09TlVMTCkgeworICAgICAgICAqcEVycm9yQ29kZT1V
X01FTU9SWV9BTExPQ0FUSU9OX0VSUk9SOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cisg
ICAgCisgICAgLyogQ2hlY2sgdGhhdCB0aGUgZnVsbCBwYXRoIHdvbid0IGJlIHRvbyBsb25nICov
CisgICAgbGVuZ3RoID0gMDsJCQkJCS8qIFN0YXJ0IHdpdGggbm90aGluZyAqLworICAgIGlmKGRp
ciAhPSBOVUxMICAmJiAqZGlyICE9MCkJLyogQWRkIGRpcmVjdG9yeSBsZW5ndGggaWYgb25lIHdh
cyBnaXZlbiAqLworICAgIHsKKyAgICAJbGVuZ3RoICs9IHN0cmxlbihkaXIpOworCQorICAgIAkv
KiBBZGQgMSBpZiBkaXIgZG9lc24ndCBlbmQgd2l0aCBwYXRoIHNlcCAqLworICAgICAgICBpZiAo
ZGlyW3N0cmxlbihkaXIpIC0gMV0hPSBVX0ZJTEVfU0VQX0NIQVIpIHsKKyAgICAgICAgICAgIGxl
bmd0aCsrOworICAgICAgICB9CisJfQorICAgIGxlbmd0aCArPSBzdHJsZW4obmFtZSk7CQkvKiBB
ZGQgdGhlIGZpbGVuYW1lIGxlbmd0aCAqLworCisgICAgaWYodHlwZSAhPSBOVUxMICAmJiAqdHlw
ZSAhPTApIHsgLyogQWRkIGRpcmVjdG9yeSBsZW5ndGggaWYgIGdpdmVuICovCisgICAgICAgIGxl
bmd0aCArPSBzdHJsZW4odHlwZSk7CisgICAgfQorCisgICAgICAgIAorICAgICAvKiBMREggYnVm
ZmVyIExlbmd0aCBlcnJvciBjaGVjayAqLworICAgIGlmKGxlbmd0aCAgPiAoc2l6ZW9mKGZpbGVu
YW1lKSAtIDEpKQorICAgIHsKKyAgIAkgICAgKnBFcnJvckNvZGUgPSBVX0JVRkZFUl9PVkVSRkxP
V19FUlJPUjsKKyAgIAkgICAgdXBydl9mcmVlKHBEYXRhKTsKKwkgICAgcmV0dXJuIE5VTEw7Cisg
ICAgfQorICAgCisgICAgLyogb3BlbiB0aGUgb3V0cHV0IGZpbGUgKi8KKyAgICBpZihkaXIhPU5V
TEwgJiYgKmRpciE9MCkgeyAvKiBpZiBkaXIgaGFzIGEgdmFsdWUsIHdlIHByZXBlbmQgaXQgdG8g
dGhlIGZpbGVuYW1lICovCisgICAgICAgIGNoYXIgKnA9ZmlsZW5hbWUrc3RybGVuKGRpcik7Cisg
ICAgICAgIHVwcnZfc3RyY3B5KGZpbGVuYW1lLCBkaXIpOworICAgICAgICBpZiAoKihwLTEpIT1V
X0ZJTEVfU0VQX0NIQVIpIHsKKyAgICAgICAgICAgICpwKys9VV9GSUxFX1NFUF9DSEFSOworICAg
ICAgICAgICAgKnA9MDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7IC8qIG90aGVyd2lzZSwgd2Un
bGwgb3V0cHV0IHRvIHRoZSBjdXJyZW50IGRpciAqLworICAgICAgICBmaWxlbmFtZVswXT0wOwor
ICAgIH0KKyAgICB1cHJ2X3N0cmNhdChmaWxlbmFtZSwgbmFtZSk7CisgICAgaWYodHlwZSE9TlVM
TCAmJiAqdHlwZSE9MCkgeworICAgICAgICB1cHJ2X3N0cmNhdChmaWxlbmFtZSwgIi4iKTsKKyAg
ICAgICAgdXBydl9zdHJjYXQoZmlsZW5hbWUsIHR5cGUpOworICAgIH0KKyAgICBwRGF0YS0+Zmls
ZT1UX0ZpbGVTdHJlYW1fb3BlbihmaWxlbmFtZSwgIndiIik7CisgICAgaWYocERhdGEtPmZpbGU9
PU5VTEwpIHsKKyAgICAgICAgdXBydl9mcmVlKHBEYXRhKTsKKyAgICAgICAgKnBFcnJvckNvZGU9
VV9GSUxFX0FDQ0VTU19FUlJPUjsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAg
Lyogd3JpdGUgdGhlIGhlYWRlciBpbmZvcm1hdGlvbiAqLworICAgIGhlYWRlclNpemU9KHVpbnQx
Nl90KShwSW5mby0+c2l6ZSs0KTsKKyAgICBpZihjb21tZW50IT1OVUxMICYmICpjb21tZW50IT0w
KSB7CisgICAgICAgIGNvbW1lbnRMZW5ndGg9KHVpbnQxNl90KSh1cHJ2X3N0cmxlbihjb21tZW50
KSsxKTsKKyAgICAgICAgaGVhZGVyU2l6ZSs9Y29tbWVudExlbmd0aDsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBjb21tZW50TGVuZ3RoPTA7CisgICAgfQorCisgICAgLyogd3JpdGUgdGhlIHNpemUg
b2YgdGhlIGhlYWRlciwgdGFrZSBwYWRkaW5nIGludG8gYWNjb3VudCAqLworICAgIHBEYXRhLT5o
ZWFkZXJTaXplPSh1aW50MTZfdCkoKGhlYWRlclNpemUrMTUpJn4weGYpOworICAgIHBEYXRhLT5t
YWdpYzE9MHhkYTsKKyAgICBwRGF0YS0+bWFnaWMyPTB4Mjc7CisgICAgVF9GaWxlU3RyZWFtX3dy
aXRlKHBEYXRhLT5maWxlLCAmcERhdGEtPmhlYWRlclNpemUsIDQpOworCisgICAgLyogd3JpdGUg
dGhlIGluZm9ybWF0aW9uIGRhdGEgKi8KKyAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZp
bGUsIHBJbmZvLCBwSW5mby0+c2l6ZSk7CisKKyAgICAvKiB3cml0ZSB0aGUgY29tbWVudCAqLwor
ICAgIGlmKGNvbW1lbnRMZW5ndGg+MCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERh
dGEtPmZpbGUsIGNvbW1lbnQsIGNvbW1lbnRMZW5ndGgpOworICAgIH0KKworICAgIC8qIHdyaXRl
IHBhZGRpbmcgYnl0ZXMgdG8gYWxpZ24gdGhlIGRhdGEgc2VjdGlvbiB0byAxNiBieXRlcyAqLwor
ICAgIGhlYWRlclNpemUmPTB4ZjsKKyAgICBpZihoZWFkZXJTaXplIT0wKSB7CisgICAgICAgIGhl
YWRlclNpemU9KHVpbnQxNl90KSgxNi1oZWFkZXJTaXplKTsKKyAgICAgICAgdXBydl9tZW1zZXQo
Ynl0ZXMsIDAsIGhlYWRlclNpemUpOworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEt
PmZpbGUsIGJ5dGVzLCBoZWFkZXJTaXplKTsKKyAgICB9CisKKyAgICByZXR1cm4gcERhdGE7Cit9
CisKK1VfQ0FQSSB1aW50MzJfdCBVX0VYUE9SVDIKK3VkYXRhX2ZpbmlzaChVTmV3RGF0YU1lbW9y
eSAqcERhdGEsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpIHsKKyAgICB1aW50MzJfdCBmaWxlTGVu
Z3RoPTA7CisKKyAgICBpZihwRXJyb3JDb2RlPT1OVUxMIHx8IFVfRkFJTFVSRSgqcEVycm9yQ29k
ZSkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYocERhdGEhPU5VTEwpIHsK
KyAgICAgICAgaWYocERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgICAgIC8qIGZmbHVzaChw
RGF0YS0+ZmlsZSk7Ki8KKyAgICAgICAgICAgIGZpbGVMZW5ndGg9VF9GaWxlU3RyZWFtX3NpemUo
cERhdGEtPmZpbGUpOworICAgICAgICAgICAgaWYoVF9GaWxlU3RyZWFtX2Vycm9yKHBEYXRhLT5m
aWxlKSkgeworICAgICAgICAgICAgICAgICpwRXJyb3JDb2RlPVVfRklMRV9BQ0NFU1NfRVJST1I7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZpbGVMZW5ndGgtPXBEYXRh
LT5oZWFkZXJTaXplOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVF9GaWxlU3RyZWFtX2Ns
b3NlKHBEYXRhLT5maWxlKTsKKyAgICAgICAgfQorICAgICAgICB1cHJ2X2ZyZWUocERhdGEpOwor
ICAgIH0KKworICAgIHJldHVybiBmaWxlTGVuZ3RoOworfQorCisvKiBkdW1teSBVRGF0YUluZm8g
Y2YuIHVkYXRhLmggKi8KK3N0YXRpYyBjb25zdCBVRGF0YUluZm8gZHVtbXlEYXRhSW5mbyA9IHsK
KyAgICBzaXplb2YoVURhdGFJbmZvKSwKKyAgICAwLAorCisgICAgVV9JU19CSUdfRU5ESUFOLAor
ICAgIFVfQ0hBUlNFVF9GQU1JTFksCisgICAgVV9TSVpFT0ZfVUNIQVIsCisgICAgMCwKKworICAg
IHsgMCwgMCwgMCwgMCB9LCAgICAgICAgICAgICAgICAgLyogZHVtbXkgZGF0YUZvcm1hdCAqLwor
ICAgIHsgMCwgMCwgMCwgMCB9LCAgICAgICAgICAgICAgICAgLyogZHVtbXkgZm9ybWF0VmVyc2lv
biAqLworICAgIHsgMCwgMCwgMCwgMCB9ICAgICAgICAgICAgICAgICAgLyogZHVtbXkgZGF0YVZl
cnNpb24gKi8KK307CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfY3JlYXRlRHVtbXko
Y29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLCBVRXJy
b3JDb2RlICpwRXJyb3JDb2RlKSB7CisgICAgaWYoVV9TVUNDRVNTKCpwRXJyb3JDb2RlKSkgewor
ICAgICAgICB1ZGF0YV9maW5pc2godWRhdGFfY3JlYXRlKGRpciwgdHlwZSwgbmFtZSwgJmR1bW15
RGF0YUluZm8sIE5VTEwsIHBFcnJvckNvZGUpLCBwRXJyb3JDb2RlKTsKKyAgICAgICAgaWYoVV9G
QUlMVVJFKCpwRXJyb3JDb2RlKSkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJv
ciAlcyB3cml0aW5nIGR1bW15IGRhdGEgZmlsZSAlcyIgVV9GSUxFX1NFUF9TVFJJTkcgIiVzLiVz
XG4iLAorICAgICAgICAgICAgICAgICAgICB1X2Vycm9yTmFtZSgqcEVycm9yQ29kZSksIGRpciwg
bmFtZSwgdHlwZSk7CisgICAgICAgICAgICBleGl0KCpwRXJyb3JDb2RlKTsKKyAgICAgICAgfQor
ICAgIH0KK30KKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZTgoVU5ld0RhdGFN
ZW1vcnkgKnBEYXRhLCB1aW50OF90IGJ5dGUpIHsKKyAgICBpZihwRGF0YSE9TlVMTCAmJiBwRGF0
YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUs
ICZieXRlLCAxKTsKKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3Jp
dGUxNihVTmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQxNl90IHdvcmQpIHsKKyAgICBpZihwRGF0
YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3Jp
dGUocERhdGEtPmZpbGUsICZ3b3JkLCAyKTsKKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQ
T1JUMgordWRhdGFfd3JpdGUzMihVTmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQzMl90IHd5ZGUp
IHsKKyAgICBpZihwRGF0YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBU
X0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsICZ3eWRlLCA0KTsKKyAgICB9Cit9CisKK1Vf
Q0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGVCbG9jayhVTmV3RGF0YU1lbW9yeSAqcERh
dGEsIGNvbnN0IHZvaWQgKnMsIGludDMyX3QgbGVuZ3RoKSB7CisgICAgaWYocERhdGEhPU5VTEwg
JiYgcERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAg
ICAgIFRfRmlsZVN0cmVhbV93cml0ZShwRGF0YS0+ZmlsZSwgcywgbGVuZ3RoKTsKKyAgICAgICAg
fQorICAgIH0KK30KKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZVBhZGRpbmco
VU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBpbnQzMl90IGxlbmd0aCkgeworICAgIHN0YXRpYyBjb25z
dCB1aW50OF90IHBhZGRpbmdbMTZdPXsKKyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwK
KyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwKKyAgICAgICAgMHhhYSwgMHhhYSwgMHhh
YSwgMHhhYSwKKyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYQorICAgIH07CisgICAgaWYo
cERhdGEhPU5VTEwgJiYgcERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgd2hpbGUobGVuZ3Ro
Pj0xNikgeworICAgICAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBwYWRk
aW5nLCAxNik7CisgICAgICAgICAgICBsZW5ndGgtPTE2OworICAgICAgICB9CisgICAgICAgIGlm
KGxlbmd0aD4wKSB7CisgICAgICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUs
IHBhZGRpbmcsIGxlbmd0aCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVf
RVhQT1JUMgordWRhdGFfd3JpdGVTdHJpbmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBjb25zdCBj
aGFyICpzLCBpbnQzMl90IGxlbmd0aCkgeworICAgIGlmKHBEYXRhIT1OVUxMICYmIHBEYXRhLT5m
aWxlIT1OVUxMKSB7CisgICAgICAgIGlmKGxlbmd0aD09LTEpIHsKKyAgICAgICAgICAgIGxlbmd0
aD0oaW50MzJfdCl1cHJ2X3N0cmxlbihzKTsKKyAgICAgICAgfQorICAgICAgICBpZihsZW5ndGg+
MCkgeworICAgICAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBzLCBsZW5n
dGgpOworICAgICAgICB9CisgICAgfQorfQorCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRh
X3dyaXRlVVN0cmluZyhVTmV3RGF0YU1lbW9yeSAqcERhdGEsIGNvbnN0IFVDaGFyICpzLCBpbnQz
Ml90IGxlbmd0aCkgeworICAgIGlmKHBEYXRhIT1OVUxMICYmIHBEYXRhLT5maWxlIT1OVUxMKSB7
CisgICAgICAgIGlmKGxlbmd0aD09LTEpIHsKKyAgICAgICAgICAgIGxlbmd0aD11X3N0cmxlbihz
KTsKKyAgICAgICAgfQorICAgICAgICBpZihsZW5ndGg+MCkgeworICAgICAgICAgICAgVF9GaWxl
U3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBzLCBsZW5ndGgqc2l6ZW9mKFVDaGFyKSk7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiBIZXksIEVtYWNzLCBwbGVhc2Ugc2V0IHRoZSBmb2xs
b3dpbmc6CisgKgorICogTG9jYWwgVmFyaWFibGVzOgorICogaW5kZW50LXRhYnMtbW9kZTogbmls
CisgKiBFbmQ6CisgKgorICovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9nZW5icmsvdW5ld2RhdGEuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9nZW5icmsvdW5ld2RhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjViOGU5Zjc0OTg0NzQyN2Qx
MGFiY2ViZTJiNDNhZWI4NzAzZjc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bmV3ZGF0YS5oCkBAIC0wLDAgKzEsMTExIEBACisv
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEw
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
ICAgZmlsZSBuYW1lOiAgdW5ld2RhdGEuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAg
dGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0
ZWQgb246IDE5OTlvY3QyNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLwor
CisjaWZuZGVmIF9fVU5FV0RBVEFfSF9fCisjZGVmaW5lIF9fVU5FV0RBVEFfSF9fCisKKyNpbmNs
dWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKworLyog
QVBJIGZvciB3cml0aW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiogQG1lbW8gRm9yd2FyZCBkZWNsYXJhdGlvbiBvZiB0
aGUgZGF0YSBtZW1vcnkgY3JlYXRpb24gdHlwZS4gKi8KK3R5cGVkZWYgc3RydWN0IFVOZXdEYXRh
TWVtb3J5IFVOZXdEYXRhTWVtb3J5OworCisvKioKKyAqIENyZWF0ZSBhIG5ldyBiaW5hcnkgZGF0
YSBmaWxlLgorICogVGhlIGZpbGUtd3JpdGluZyA8Y29kZT51ZGF0YV88L2NvZGU+IGZ1bmN0aW9u
cyBmYWNpbGl0YXRlIHdyaXRpbmcKKyAqIGJpbmFyeSBkYXRhIGZpbGVzIHRoYXQgY2FuIGJlIHJl
YWQgYnkgSUNVJ3MgPGNvZGU+dWRhdGE8L2NvZGU+IEFQSS4KKyAqIFRoaXMgZnVuY3Rpb24gb3Bl
bnMgYSBuZXcgZmlsZSB3aXRoIGEgZmlsZW5hbWUgZGV0ZXJtaW5lZCBmcm9tIGl0cworICogcGFy
YW1ldGVycyAtIG9mIHRoZSBmb3JtICJuYW1lLnR5cGUiLgorICogSXQgdGhlbiB3cml0ZXMgYSBz
aG9ydCBoZWFkZXIsIGZvbGxvd2VkIGJ5IHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+CisgKiBz
dHJ1Y3R1cmUgYW5kLCBvcHRpb25hbGx5LCBieSB0aGUgY29tbWVudCBzdHJpbmcuCisgKiBJdCB0
aGVuIHdyaXRlcyBwYWRkaW5nIGJ5dGVzIHRvIHJvdW5kIHVwIHRvIGEgbXVsdGlwbGUgb2YgMTYg
Ynl0ZXMuCisgKiBTdWJzZXF1ZW50IHdyaXRlIG9wZXJhdGlvbnMgd2lsbCB0aHVzIHN0YXJ0IGF0
IGFuIG9mZnNldCBpbiB0aGUgZmlsZQorICogdGhhdCBpcyBhIG11bHRpcGxlIG9mIDE2LiA8Y29k
ZT51ZGF0YV9nZXRNZW1vcnkoKTwvY29kZT4gd2lsbCByZXR1cm4KKyAqIGEgcG9pbnRlciB0byB0
aGlzIHNhbWUgc3RhcnRpbmcgb2Zmc2V0LgorICoKKyAqIFNlZSB1ZGF0YS5oIC4KKyAqCisgKiBA
cGFyYW0gZGlyIEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhl
IGRhdGEgd2lsbCBiZQorICogICAgICAgICAgICB3cml0dGVuLiBJZiA8Y29kZT5OVUxMPC9jb2Rl
PiwgdGhlbgorICogICAgICAgICAgICA8Y29kZT51X2dldERhdGFEaXJlY3Rvcnk8L2NvZGU+IGlz
IHVzZWQuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBv
ZiBkYXRhIHRvIGJlIHdyaXR0ZW4uCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVzb3Vy
Y2UgYnVuZGxlcyBhcmUgd3JpdHRlbiB3aXRoIHR5cGUgInJlcyIsCisgKiAgICAgICAgICAgICBj
b252ZXJzaW9uIHRhYmxlcyB3aXRoIHR5cGUgImNudiIuCisgKiAgICAgICAgICAgICBUaGlzIG1h
eSBiZSA8Y29kZT5OVUxMPC9jb2RlPiBvciBlbXB0eS4KKyAqIEBwYXJhbSBuYW1lIEEgc3RyaW5n
IHRoYXQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBkYXRhLgorICogQHBhcmFtIHBJbmZvIEEg
cG9pbnRlciB0byBhIGNvcnJlY3RseSBmaWxsZWQgPGNvZGU+VURhdGFJbmZvPC9jb2RlPgorICog
ICAgICAgICAgICAgIHN0cnVjdHVyZSB0aGF0IHdpbGwgYmUgY29waWVkIGludG8gdGhlIGZpbGUu
CisgKiBAcGFyYW0gY29tbWVudCBBIHN0cmluZyAoZS5nLiwgYSBjb3B5cmlnaHQgc3RhdGVtZW50
KSB0aGF0IHdpbGwgYmUKKyAqICAgICAgICAgICAgICAgIGNvcGllZCBpbnRvIHRoZSBmaWxlIGlm
IGl0IGlzIG5vdCA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAgICAgICAgICAgb3IgZW1wdHku
IFRoaXMgc3RyaW5nIHNlcnZlcyBvbmx5IGFzIGEgY29tbWVudCBpbiB0aGUgYmluYXJ5CisgKiAg
ICAgICAgICAgICAgICBmaWxlLiBJdCB3aWxsIG5vdCBiZSBhY2Nlc3NpYmxlIGJ5IGFueSBBUEku
CisgKiBAcGFyYW0gcEVycm9yQ29kZSBBbiBJQ1UgVUVycm9yQ29kZSBwYXJhbWV0ZXIuIEl0IG11
c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICovCitVX0NBUEkgVU5ld0RhdGFNZW1vcnkg
KiBVX0VYUE9SVDIKK3VkYXRhX2NyZWF0ZShjb25zdCBjaGFyICpkaXIsIGNvbnN0IGNoYXIgKnR5
cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgY29uc3QgVURhdGFJbmZvICpwSW5m
bywKKyAgICAgICAgICAgICBjb25zdCBjaGFyICpjb21tZW50LAorICAgICAgICAgICAgIFVFcnJv
ckNvZGUgKnBFcnJvckNvZGUpOworCisvKiogQG1lbW8gQ2xvc2UgYSBuZXdseSB3cml0dGVuIGJp
bmFyeSBmaWxlLiAqLworVV9DQVBJIHVpbnQzMl90IFVfRVhQT1JUMgordWRhdGFfZmluaXNoKFVO
ZXdEYXRhTWVtb3J5ICpwRGF0YSwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKiBAbWVt
byBXcml0ZSBhIGR1bW15IGRhdGEgZmlsZS4gKi8KK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRh
dGFfY3JlYXRlRHVtbXkoY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBj
aGFyICpuYW1lLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqIEBtZW1vIFdyaXRlIGFu
IDgtYml0IGJ5dGUgdG8gdGhlIGZpbGUuICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRh
X3dyaXRlOChVTmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQ4X3QgYnl0ZSk7CisKKy8qKiBAbWVt
byBXcml0ZSBhIDE2LWJpdCB3b3JkIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBP
UlQyCit1ZGF0YV93cml0ZTE2KFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgdWludDE2X3Qgd29yZCk7
CisKKy8qKiBAbWVtbyBXcml0ZSBhIDMyLWJpdCB3b3JkIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJ
IHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZTMyKFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgdWlu
dDMyX3Qgd3lkZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBhIGJsb2NrIG9mIGJ5dGVzIHRvIHRoZSBm
aWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZUJsb2NrKFVOZXdEYXRh
TWVtb3J5ICpwRGF0YSwgY29uc3Qgdm9pZCAqcywgaW50MzJfdCBsZW5ndGgpOworCisvKiogQG1l
bW8gV3JpdGUgYSBibG9jayBvZiBhcmJpdHJhcnkgcGFkZGluZyBieXRlcyB0byB0aGUgZmlsZS4g
Ki8KK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGVQYWRkaW5nKFVOZXdEYXRhTWVt
b3J5ICpwRGF0YSwgaW50MzJfdCBsZW5ndGgpOworCisvKiogQG1lbW8gV3JpdGUgYSA8Y29kZT5j
aGFyKjwvY29kZT4gc3RyaW5nIG9mIHBsYXRmb3JtICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgdG8g
dGhlIGZpbGUuICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlU3RyaW5nKFVO
ZXdEYXRhTWVtb3J5ICpwRGF0YSwgY29uc3QgY2hhciAqcywgaW50MzJfdCBsZW5ndGgpOworCisv
KiogQG1lbW8gV3JpdGUgYSA8Y29kZT5VQ2hhcio8L2NvZGU+IHN0cmluZyBvZiBVbmljb2RlIGNo
YXJhY3RlciBjb2RlIHVuaXRzIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQy
Cit1ZGF0YV93cml0ZVVTdHJpbmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBjb25zdCBVQ2hhciAq
cywgaW50MzJfdCBsZW5ndGgpOworCisKKy8qCisgKiBIZXksIEVtYWNzLCBwbGVhc2Ugc2V0IHRo
ZSBmb2xsb3dpbmc6CisgKgorICogTG9jYWwgVmFyaWFibGVzOgorICogaW5kZW50LXRhYnMtbW9k
ZTogbmlsCisgKiBFbmQ6CisgKgorICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5jIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5jCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1ZWZj
MTcwY2JkZjc1MTNkZDU3ZWJmNzc3OWI5ODJlOTdhMjFkOTQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25zLmMKQEAgLTAs
MCArMSwxMjIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0
IChDKSAyMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRp
b24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqICAgZmlsZSBuYW1lOiAgdW9wdGlvbnMuYworKiAgIGVuY29kaW5nOiAgIFVTLUFT
Q0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgor
KiAgIGNyZWF0ZWQgb246IDIwMDBhcHIxNworKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hl
cmVyCisqCisqICAgVGhpcyBmaWxlIHByb3ZpZGVzIGEgY29tbWFuZCBsaW5lIGFyZ3VtZW50IHBh
cnNlci4KKyovCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgImNzdHJp
bmcuaCIKKyNpbmNsdWRlICJ1b3B0aW9ucy5oIgorCitVX0NBUEkgaW50IFVfRVhQT1JUMgordV9w
YXJzZUFyZ3MoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSwKKyAgICAgICAgICAgIGludCBvcHRpb25D
b3VudCwgVU9wdGlvbiBvcHRpb25zW10pIHsKKyAgICBjaGFyICphcmc7CisgICAgaW50IGk9MSwg
cmVtYWluaW5nPTE7CisgICAgY2hhciBjLCBzdG9wT3B0aW9ucz0wOworCisgICAgd2hpbGUoaTxh
cmdjKSB7CisgICAgICAgIGFyZz1hcmd2W2ldOworICAgICAgICBpZighc3RvcE9wdGlvbnMgJiYg
KmFyZz09Jy0nICYmIChjPWFyZ1sxXSkhPTApIHsKKyAgICAgICAgICAgIC8qIHByb2Nlc3MgYW4g
b3B0aW9uICovCisgICAgICAgICAgICBVT3B0aW9uICpvcHRpb249TlVMTDsKKyAgICAgICAgICAg
IGFyZys9MjsKKyAgICAgICAgICAgIGlmKGM9PSctJykgeworICAgICAgICAgICAgICAgIC8qIHBy
b2Nlc3MgYSBsb25nIG9wdGlvbiAqLworICAgICAgICAgICAgICAgIGlmKCphcmc9PTApIHsKKyAg
ICAgICAgICAgICAgICAgICAgLyogc3RvcCBwcm9jZXNzaW5nIG9wdGlvbnMgYWZ0ZXIgIi0tIiAq
LworICAgICAgICAgICAgICAgICAgICBzdG9wT3B0aW9ucz0xOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHNlYXJjaCBmb3IgdGhlIG9wdGlvbiBzdHJp
bmcgKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgIGZv
cihqPTA7IGo8b3B0aW9uQ291bnQ7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYo
b3B0aW9uc1tqXS5sb25nTmFtZSAmJiB1cHJ2X3N0cmNtcChhcmcsIG9wdGlvbnNbal0ubG9uZ05h
bWUpPT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPW9wdGlvbnMrajsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZihvcHRp
b249PU5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vIG9wdGlvbiBtYXRjaGVz
ICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLWk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3B0aW9uLT5kb2VzT2NjdXI9MTsKKworICAgICAg
ICAgICAgICAgICAgICBpZihvcHRpb24tPmhhc0FyZyE9VU9QVF9OT19BUkcpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIHBhcnNlIHRoZSBhcmd1bWVudCBmb3IgdGhlIG9wdGlvbiwgaWYg
YW55ICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZihpKzE8YXJnYyAmJiAhKGFyZ3ZbaSsx
XVswXT09Jy0nICYmIGFyZ3ZbaSsxXVsxXSE9MCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBhcmd2W10sIGFuZCB0aGVyZSBpcyBub3QgYW4g
b3B0aW9uIGluIHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLT52
YWx1ZT1hcmd2WysraV07CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYob3B0aW9u
LT5oYXNBcmc9PVVPUFRfUkVRVUlSRVNfQVJHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogdGhlcmUgaXMgbm8gYXJndW1lbnQsIGJ1dCBvbmUgaXMgcmVxdWlyZWQ6IHJldHVybiB3
aXRoIGVycm9yICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1pOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBwcm9jZXNz
IG9uZSBvciBtb3JlIHNob3J0IG9wdGlvbnMgKi8KKyAgICAgICAgICAgICAgICBkbyB7CisgICAg
ICAgICAgICAgICAgICAgIC8qIHNlYXJjaCBmb3IgdGhlIG9wdGlvbiBsZXR0ZXIgKi8KKyAgICAg
ICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8b3B0
aW9uQ291bnQ7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoYz09b3B0aW9uc1tq
XS5zaG9ydE5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb249b3B0aW9u
cytqOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlm
KG9wdGlvbj09TlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogbm8gb3B0aW9uIG1h
dGNoZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvcHRpb24tPmRvZXNPY2N1cj0xOworCisg
ICAgICAgICAgICAgICAgICAgIGlmKG9wdGlvbi0+aGFzQXJnIT1VT1BUX05PX0FSRykgeworICAg
ICAgICAgICAgICAgICAgICAgICAgLyogcGFyc2UgdGhlIGFyZ3VtZW50IGZvciB0aGUgb3B0aW9u
LCBpZiBhbnkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCphcmchPTApIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiBhcmd1bWVudCBmb2xsb3dpbmcgaW4gdGhlIHNhbWUg
YXJndltdICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLT52YWx1ZT1hcmc7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZG8gbm90IHByb2Nlc3MgdGhlIHJlc3Qg
b2YgdGhpcyBhcmcgYXMgb3B0aW9uIGxldHRlcnMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihpKzE8YXJnYyAm
JiAhKGFyZ3ZbaSsxXVswXT09Jy0nICYmIGFyZ3ZbaSsxXVsxXSE9MCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBhcmd2W10sIGFuZCB0aGVy
ZSBpcyBub3QgYW4gb3B0aW9uIGluIHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3B0aW9uLT52YWx1ZT1hcmd2WysraV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyogdGhpcyBicmVhayBpcyByZWR1bmRhbnQgYmVjYXVzZSB3ZSBrbm93IHRoYXQgKmFyZz09MCAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmKG9wdGlvbi0+aGFzQXJnPT1VT1BUX1JFUVVJUkVTX0FSRykgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZXJlIGlzIG5vIGFyZ3VtZW50LCBidXQgb25l
IGlzIHJlcXVpcmVkOiByZXR1cm4gd2l0aCBlcnJvciAqLworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8qIGdldCB0aGUgbmV4dCBvcHRpb24g
bGV0dGVyICovCisgICAgICAgICAgICAgICAgICAgIG9wdGlvbj1OVUxMOworICAgICAgICAgICAg
ICAgICAgICBjPSphcmcrKzsKKyAgICAgICAgICAgICAgICB9IHdoaWxlKGMhPTApOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBpZihvcHRpb24hPTAgJiYgb3B0aW9uLT5vcHRpb25GbiE9
MCAmJiBvcHRpb24tPm9wdGlvbkZuKG9wdGlvbi0+Y29udGV4dCwgb3B0aW9uKTwwKSB7CisgICAg
ICAgICAgICAgICAgLyogdGhlIG9wdGlvbiBmdW5jdGlvbiB3YXMgY2FsbGVkIGFuZCByZXR1cm5l
ZCBhbiBlcnJvciAqLworICAgICAgICAgICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgLyogZ28gdG8gbmV4dCBhcmd2W10gKi8KKyAgICAgICAgICAgICsraTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIG1vdmUgYSBub24tb3B0aW9uIHVwIGlu
IGFyZ3ZbXSAqLworICAgICAgICAgICAgYXJndltyZW1haW5pbmcrK109YXJnOworICAgICAgICAg
ICAgKytpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZW1haW5pbmc7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25z
LmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25zLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDNkYjY1ZjI4MWZjMTkzNGNiODg4MzYzNjYwY2IzMzE3NTUzNGFjMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsv
dW9wdGlvbnMuaApAQCAtMCwwICsxLDE0MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyoKKyogICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBN
YWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVk
LgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVvcHRpb25zLmgK
KyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQor
KiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDAwYXByMTcKKyogICBjcmVh
dGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIFRoaXMgZmlsZSBwcm92aWRlcyBhIGNv
bW1hbmQgbGluZSBhcmd1bWVudCBwYXJzZXIuCisqLworCisjaWZuZGVmIF9fVU9QVElPTlNfSF9f
CisjZGVmaW5lIF9fVU9QVElPTlNfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgor
CisvKiBUaGlzIHNob3VsZCB1c3VhbGx5IGJlIGNhbGxlZCBiZWZvcmUgY2FsbGluZyB1X3BhcnNl
QXJncyAqLworLyojaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwICYmIChVX0NIQVJTRVRfRkFN
SUxZID09IFVfQVNDSUlfRkFNSUxZKSovCisgICAgLyogdHJhbnNsYXRlIGFyZ3MgZnJvbSBFQkNE
SUMgdG8gQVNDSUkgKi8KKy8qIyAgIGRlZmluZSBVX01BSU5fSU5JVF9BUkdTKGFyZ2MsIGFyZ3Yp
IF9fYXJndnRvYXNjaWlfYShhcmdjLCBhcmd2KSovCisvKiNlbGlmIGRlZmluZWQoWFBfTUFDX0NP
TlNPTEUpKi8KKyNpZiBkZWZpbmVkKFhQX01BQ19DT05TT0xFKQorIyAgIGluY2x1ZGUgPGNvbnNv
bGUuaD4KKyAgICAvKiBHZXQgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBHVUksIHNpbmNlIG9sZCBN
YWNzIGRvbid0IGhhdmUgYSBjb25zb2xlIFdpbmRvdy4gKi8KKyMgICBkZWZpbmUgVV9NQUlOX0lO
SVRfQVJHUyhhcmdjLCBhcmd2KSBhcmdjID0gY2NvbW1hbmQoKGNoYXIqKiopJmFyZ3YpCisjZWxz
ZQorICAgIC8qIE5vcm1hbGx5IHdlIGRvIG5vdGhpbmcuICovCisjICAgZGVmaW5lIFVfTUFJTl9J
TklUX0FSR1MoYXJnYywgYXJndikKKyNlbmRpZgorCisKKworLyogZm9yd2FyZCBkZWNsYXJhdGlv
bnMgZm9yIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiAqLworc3RydWN0IFVPcHRpb247Cit0eXBl
ZGVmIHN0cnVjdCBVT3B0aW9uIFVPcHRpb247CisKKy8qIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBm
b3IgYSBjb21tYW5kIGxpbmUgb3B0aW9uICovCit0eXBlZGVmIGludCBVT3B0aW9uRm4odm9pZCAq
Y29udGV4dCwgVU9wdGlvbiAqb3B0aW9uKTsKKworLyogdmFsdWVzIG9mIFVPcHRpb24uaGFzQXJn
ICovCitlbnVtIHsgVU9QVF9OT19BUkcsIFVPUFRfUkVRVUlSRVNfQVJHLCBVT1BUX09QVElPTkFM
X0FSRyB9OworCisvKiBzdHJ1Y3R1cmUgZGVzY3JpYmluZyBhIGNvbW1hbmQgbGluZSBvcHRpb24g
Ki8KK3N0cnVjdCBVT3B0aW9uIHsKKyAgICBjb25zdCBjaGFyICpsb25nTmFtZTsgICAvKiAiZm9v
IiBmb3IgLS1mb28gKi8KKyAgICBjb25zdCBjaGFyICp2YWx1ZTsgICAgICAvKiBvdXRwdXQgcGxh
Y2Vob2xkZXIsIHdpbGwgcG9pbnQgdG8gdGhlIGFyZ3VtZW50IHN0cmluZywgaWYgYW55ICovCisg
ICAgVU9wdGlvbkZuICpvcHRpb25GbjsgICAgLyogZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4g
dGhpcyBvcHRpb24gb2NjdXJzICovCisgICAgdm9pZCAqY29udGV4dDsgICAgICAgICAgLyogcGFy
YW1ldGVyIGZvciB0aGUgZnVuY3Rpb24gKi8KKyAgICBjaGFyIHNob3J0TmFtZTsgICAgICAgICAv
KiAnZicgZm9yIC1mICovCisgICAgY2hhciBoYXNBcmc7ICAgICAgICAgICAgLyogZW51bSB2YWx1
ZTogb3B0aW9uIHRha2VzIG5vL3JlcXVpcmVzL21heSBoYXZlIGFyZ3VtZW50ICovCisgICAgY2hh
ciBkb2VzT2NjdXI7ICAgICAgICAgLyogYm9vbGVhbiBmb3IgInRoaXMgb25lIG9jY3VyZWQiICov
Cit9OworCisvKiBtYWNybyBmb3IgYW4gZW50cnkgaW4gYSBkZWNsYXJhdGlvbiBvZiBVT3B0aW9u
W10gKi8KKyNkZWZpbmUgVU9QVElPTl9ERUYobG9uZ05hbWUsIHNob3J0TmFtZSwgaGFzQXJnKSBc
CisgICAgeyBsb25nTmFtZSwgTlVMTCwgTlVMTCwgTlVMTCwgc2hvcnROYW1lLCBoYXNBcmcsIDAg
fQorCisvKiBJQ1UgVG9vbHMgb3B0aW9uIGRlZmluaXRpb25zICovCisjZGVmaW5lIFVPUFRJT05f
SEVMUF9IICAgICAgICAgICAgICBVT1BUSU9OX0RFRigiaGVscCIsICdoJywgVU9QVF9OT19BUkcp
CisjZGVmaW5lIFVPUFRJT05fSEVMUF9RVUVTVElPTl9NQVJLICBVT1BUSU9OX0RFRigiaGVscCIs
ICc/JywgVU9QVF9OT19BUkcpCisjZGVmaW5lIFVPUFRJT05fVkVSQk9TRSAgICAgICAgICAgICBV
T1BUSU9OX0RFRigidmVyYm9zZSIsICd2JywgVU9QVF9OT19BUkcpCisjZGVmaW5lIFVPUFRJT05f
UVVJRVQgICAgICAgICAgICAgICBVT1BUSU9OX0RFRigicXVpZXQiLCAncScsIFVPUFRfTk9fQVJH
KQorI2RlZmluZSBVT1BUSU9OX1ZFUlNJT04gICAgICAgICAgICAgVU9QVElPTl9ERUYoInZlcnNp
b24iLCAnVicsIFVPUFRfTk9fQVJHKQorI2RlZmluZSBVT1BUSU9OX0NPUFlSSUdIVCAgICAgICAg
ICAgVU9QVElPTl9ERUYoImNvcHlyaWdodCIsICdjJywgVU9QVF9OT19BUkcpCisKKyNkZWZpbmUg
VU9QVElPTl9ERVNURElSICAgICAgICAgICAgIFVPUFRJT05fREVGKCJkZXN0ZGlyIiwgJ2QnLCBV
T1BUX1JFUVVJUkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9TT1VSQ0VESVIgICAgICAgICAgIFVP
UFRJT05fREVGKCJzb3VyY2VkaXIiLCAncycsIFVPUFRfUkVRVUlSRVNfQVJHKQorI2RlZmluZSBV
T1BUSU9OX0VOQ09ESU5HICAgICAgICAgICAgVU9QVElPTl9ERUYoImVuY29kaW5nIiwgJ2UnLCBV
T1BUX1JFUVVJUkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9JQ1VEQVRBRElSICAgICAgICAgIFVP
UFRJT05fREVGKCJpY3VkYXRhZGlyIiwgJ2knLCBVT1BUX1JFUVVJUkVTX0FSRykKKyNkZWZpbmUg
VU9QVElPTl9XUklURV9KQVZBICAgICAgICAgIFVPUFRJT05fREVGKCJ3cml0ZS1qYXZhIiwgJ2on
LCBVT1BUX09QVElPTkFMX0FSRykKKyNkZWZpbmUgVU9QVElPTl9QQUNLQUdFX05BTUUgICAgICAg
IFVPUFRJT05fREVGKCJwYWNrYWdlLW5hbWUiLCAncCcsIFVPUFRfUkVRVUlSRVNfQVJHKQorI2Rl
ZmluZSBVT1BUSU9OX0JVTkRMRV9OQU1FICAgICAgICAgVU9QVElPTl9ERUYoImJ1bmRsZS1uYW1l
IiwgJ2InLCBVT1BUX1JFUVVJUkVTX0FSRykKKworLyoqCisgKiBDIENvbW1hbmQgbGluZSBhcmd1
bWVudCBwYXJzZXIuCisgKgorICogVGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgYXJndlthcmdjXSBj
b21tYW5kIGxpbmUgYW5kIGEgZGVzY3JpcHRpb24gb2YKKyAqIHRoZSBwcm9ncmFtJ3Mgb3B0aW9u
cyBpbiBmb3JtIG9mIGFuIGFycmF5IG9mIFVPcHRpb24gc3RydWN0dXJlcy4KKyAqIEVhY2ggVU9w
dGlvbiBkZWZpbmVzIGEgbG9uZyBhbmQgYSBzaG9ydCBuYW1lIChhIHN0cmluZyBhbmQgYSBjaGFy
YWN0ZXIpCisgKiBmb3Igb3B0aW9ucyBsaWtlICItLWZvbyIgYW5kICItZiIuCisgKgorICogRWFj
aCBvcHRpb24gaXMgbWFya2VkIHdpdGggd2hldGhlciBpdCBkb2VzIG5vdCB0YWtlIGFuIGFyZ3Vt
ZW50LAorICogcmVxdWlyZXMgb25lLCBvciBvcHRpb25hbGx5IHRha2VzIG9uZS4gVGhlIGFyZ3Vt
ZW50IG1heSBmb2xsb3cgaW4KKyAqIHRoZSBzYW1lIGFyZ3ZbXSBlbnRyeSBmb3Igc2hvcnQgb3B0
aW9ucywgb3IgaXQgbWF5IGFsd2F5cyBmb2xsb3cKKyAqIGluIHRoZSBuZXh0IGFyZ3ZbXSBlbnRy
eS4KKyAqCisgKiBBbiBhcmd1bWVudCBpcyBpbiB0aGUgbmV4dCBhcmd2W10gZW50cnkgZm9yIGJv
dGggbG9uZyBhbmQgc2hvcnQgbmFtZQorICogb3B0aW9ucywgZXhjZXB0IGl0IGlzIHRha2VuIGZy
b20gZGlyZWN0bHkgYmVoaW5kIHRoZSBzaG9ydCBuYW1lIGluCisgKiBpdHMgb3duIGFyZ3ZbXSBl
bnRyeSBpZiB0aGVyZSBhcmUgY2hhcmFjdGVycyBmb2xsb3dpbmcgdGhlIG9wdGlvbiBsZXR0ZXIu
CisgKiBBbiBhcmd1bWVudCBpbiBpdHMgb3duIGFyZ3ZbXSBlbnRyeSBtdXN0IG5vdCBiZWdpbiB3
aXRoIGEgJy0nCisgKiB1bmxlc3MgaXQgaXMgb25seSB0aGUgJy0nIGl0c2VsZi4gVGhlcmUgaXMg
bm8gcmVzdHJpY3Rpb24gb2YgdGhlCisgKiBhcmd1bWVudCBmb3JtYXQgaWYgaXQgaXMgcGFydCBv
ZiB0aGUgc2hvcnQgbmFtZSBvcHRpb25zJ3MgYXJndltdIGVudHJ5LgorICoKKyAqIFRoZSBhcmd1
bWVudCBpcyBzdG9yZWQgaW4gdGhlIHZhbHVlIGZpZWxkIG9mIHRoZSBjb3JyZXNwb25kaW5nCisg
KiBVT3B0aW9uIGVudHJ5LCBhbmQgdGhlIGRvZXNPY2N1ciBmaWVsZCBpcyBzZXQgdG8gMSBpZiB0
aGUgb3B0aW9uCisgKiBpcyBmb3VuZCBhdCBhbGwuCisgKgorICogU2hvcnQgbmFtZSBvcHRpb25z
IHdpdGhvdXQgYXJndW1lbnRzIGNhbiBiZSBjb2xsYXBzZWQgaW50byBhIHNpbmdsZQorICogYXJn
dltdIGVudHJ5LiBBZnRlciBhbiBvcHRpb24gbGV0dGVyIHRha2VzIGFuIGFyZ3VtZW50LCBmb2xs
b3dpbmcKKyAqIGxldHRlcnMgd2lsbCBiZSB0YWtlbiBhcyBpdHMgYXJndW1lbnQuCisgKgorICog
SWYgdGhlIHNhbWUgb3B0aW9uIGlzIGZvdW5kIHNldmVyYWwgdGltZXMsIHRoZW4gdGhlIGxhc3QK
KyAqIGFyZ3VtZW50IHZhbHVlIHdpbGwgYmUgc3RvcmVkIGluIHRoZSB2YWx1ZSBmaWVsZC4KKyAq
CisgKiBGb3IgZWFjaCBvcHRpb24sIGEgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZC4gVGhpcyBjb3Vs
ZCBiZSB1c2VkCisgKiBmb3Igb3B0aW9ucyB0aGF0IG9jY3VyIG11bHRpcGxlIHRpbWVzIGFuZCBh
bGwgYXJndW1lbnRzIGFyZSB0bworICogYmUgY29sbGVjdGVkLgorICoKKyAqIEFsbCBvcHRpb25z
IGFyZSByZW1vdmVkIGZyb20gdGhlIGFyZ3ZbXSBhcnJheSBpdHNlbGYuIElmIHRoZSBwYXJzZXIK
KyAqIGlzIHN1Y2Nlc3NmdWwsIHRoZW4gaXQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlbWFpbmlu
ZyBub24tb3B0aW9uCisgKiBzdHJpbmdzIChpbmNsdWRpbmcgYXJndlswXSkuCisgKiBhcmd2WzBd
LCB0aGUgcHJvZ3JhbSBuYW1lLCBpcyBuZXZlciByZWFkIG9yIG1vZGlmaWVkLgorICoKKyAqIEFu
IG9wdGlvbiAiLS0iIGVuZHMgb3B0aW9uIHByb2Nlc3Npbmc7IGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhp
cworICogcmVtYWlucyBpbiB0aGUgYXJndltdIGFycmF5LgorICoKKyAqIEFuIG9wdGlvbiBzdHJp
bmcgIi0iIGFsb25lIGlzIHRyZWF0ZWQgYXMgYSBub24tb3B0aW9uLgorICoKKyAqIElmIGFuIG9w
dGlvbiBpcyBub3QgcmVjb2duaXplZCBvciBhbiBhcmd1bWVudCBtaXNzaW5nLCB0aGVuCisgKiB0
aGUgcGFyc2VyIHJldHVybnMgd2l0aCB0aGUgbmVnYXRpdmUgaW5kZXggb2YgdGhlIGFyZ3ZbXSBl
bnRyeQorICogd2hlcmUgdGhlIGVycm9yIHdhcyBkZXRlY3RlZC4KKyAqCisgKiBUaGUgT1MvNDAw
IGNvbXBpbGVyIHJlcXVpcmVzIHRoYXQgYXJndiBlaXRoZXIgYmUgImNoYXIqIGFyZ3ZbXSIsCisg
KiBvciAiY29uc3QgY2hhciogY29uc3QgYXJndltdIiwgYW5kIGl0IHdpbGwgbm90IGFjY2VwdCwg
CisgKiAiY29uc3QgY2hhciogYXJndltdIiBhcyBhIGRlZmluaXRpb24gZm9yIG1haW4oKS4KKyAq
CisgKiBAcGFyYW0gYXJndiBUaGlzIHBhcmFtZXRlciBpcyBtb2RpZmllZAorICogQHBhcmFtIG9w
dGlvbnMgVGhpcyBwYXJhbWV0ZXIgaXMgbW9kaWZpZWQKKyAqLworVV9DQVBJIGludCBVX0VYUE9S
VDIKK3VfcGFyc2VBcmdzKGludCBhcmdjLCBjaGFyKiBhcmd2W10sCisgICAgICAgICAgICBpbnQg
b3B0aW9uQ291bnQsIFVPcHRpb24gb3B0aW9uc1tdKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3V0cmllLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3V0cmllLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Nl
YzAyN2ZlMzQ1OTVlNWI3NWUxZjI4NTBkMjA2YjYyYTk0ZWY4NwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdXRyaWUuaApAQCAtMCww
ICsxLDc5NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAo
QykgMjAwMS0yMDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9y
YXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1dHJpZS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVND
SUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisq
ICAgY3JlYXRlZCBvbjogMjAwMW5vdjA4CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVy
ZXIKKyovCisKKyNpZm5kZWYgX19VVFJJRV9IX18KKyNkZWZpbmUgX19VVFJJRV9IX18KKworI2lu
Y2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91dGYxNi5oIgorI2lu
Y2x1ZGUgInVkYXRhc3dwLmgiCisKK1VfQ0RFQ0xfQkVHSU4KKworLyoqCisgKiBcZmlsZQorICoK
KyAqIFRoaXMgaXMgYSBjb21tb24gaW1wbGVtZW50YXRpb24gb2YgYSAiZm9sZGVkIiB0cmllLgor
ICogSXQgaXMgYSBraW5kIG9mIGNvbXByZXNzZWQsIHNlcmlhbGl6YWJsZSB0YWJsZSBvZiAxNi0g
b3IgMzItYml0IHZhbHVlcyBhc3NvY2lhdGVkIHdpdGgKKyAqIFVuaWNvZGUgY29kZSBwb2ludHMg
KDAuLjB4MTBmZmZmKS4KKyAqCisgKiBUaGlzIGltcGxlbWVudGF0aW9uIGlzIG9wdGltaXplZCBm
b3IgZ2V0dGluZyB2YWx1ZXMgd2hpbGUgd2Fsa2luZyBmb3J3YXJkCisgKiB0aHJvdWdoIGEgVVRG
LTE2IHN0cmluZy4KKyAqIFRoZXJlZm9yZSwgdGhlIHNpbXBsZXN0IGFuZCBmYXN0ZXN0IGFjY2Vz
cyBtYWNyb3MgYXJlIHRoZQorICogX0ZST01fTEVBRCgpIGFuZCBfRlJPTV9PRkZTRVRfVFJBSUwo
KSBtYWNyb3MuCisgKgorICogVGhlIF9GUk9NX0JNUCgpIG1hY3JvcyBhcmUgYSBsaXR0bGUgbW9y
ZSBjb21wbGljYXRlZDsgdGhleSBnZXQgdmFsdWVzCisgKiBldmVuIGZvciBsZWFkIHN1cnJvZ2F0
ZSBjb2RlIF9wb2ludHNfLCB3aGlsZSB0aGUgX0ZST01fTEVBRCgpIG1hY3JvcworICogZ2V0IHNw
ZWNpYWwgImZvbGRlZCIgdmFsdWVzIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gaWYK
KyAqIHRoZXJlIGlzIHJlbGV2YW50IGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZW0uCisgKiBGcm9t
IHN1Y2ggYSBmb2xkZWQgdmFsdWUsIGFuIG9mZnNldCBuZWVkcyB0byBiZSBleHRyYWN0ZWQgdG8g
c3VwcGx5CisgKiB0byB0aGUgX0ZST01fT0ZGU0VUX1RSQUlMKCkgbWFjcm9zLgorICoKKyAqIE1v
c3Qgb2YgdGhlIG1vcmUgY29tcGxleCAoYW5kIG1vcmUgY29udmVuaWVudCkgZnVuY3Rpb25zL21h
Y3JvcyBjYWxsIGEgY2FsbGJhY2sgZnVuY3Rpb24KKyAqIHRvIGdldCB0aGF0IG9mZnNldCBmcm9t
IHRoZSBmb2xkZWQgdmFsdWUgZm9yIGEgbGVhZCBzdXJyb2dhdGUgdW5pdC4KKyAqLworCisvKioK
KyAqIFRyaWUgY29uc3RhbnRzLCBkZWZpbmluZyBzaGlmdCB3aWR0aHMsIGluZGV4IGFycmF5IGxl
bmd0aHMsIGV0Yy4KKyAqLworZW51bSB7CisgICAgLyoqIFNoaWZ0IHNpemUgZm9yIHNoaWZ0aW5n
IHJpZ2h0IHRoZSBpbnB1dCBpbmRleC4gMS4uOSAqLworICAgIFVUUklFX1NISUZUPTUsCisKKyAg
ICAvKiogTnVtYmVyIG9mIGRhdGEgdmFsdWVzIGluIGEgc3RhZ2UgMiAoZGF0YSBhcnJheSkgYmxv
Y2suIDIsIDQsIDgsIC4uLCAweDIwMCAqLworICAgIFVUUklFX0RBVEFfQkxPQ0tfTEVOR1RIPTE8
PFVUUklFX1NISUZULAorCisgICAgLyoqIE1hc2sgZm9yIGdldHRpbmcgdGhlIGxvd2VyIGJpdHMg
ZnJvbSB0aGUgaW5wdXQgaW5kZXguICovCisgICAgVVRSSUVfTUFTSz1VVFJJRV9EQVRBX0JMT0NL
X0xFTkdUSC0xLAorCisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMn
IGluZGV4IGRpc3BsYWNlbWVudCBpbiB0aGUgaW5kZXggYXJyYXkuCisgICAgICogMHgxMDAwMC0w
eGQ4MDA9MHgyODAwCisgICAgICovCisgICAgVVRSSUVfTEVBRF9JTkRFWF9ESVNQPTB4MjgwMD4+
VVRSSUVfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBTaGlmdCBzaXplIGZvciBzaGlmdGluZyBs
ZWZ0IHRoZSBpbmRleCBhcnJheSB2YWx1ZXMuCisgICAgICogSW5jcmVhc2VzIHBvc3NpYmxlIGRh
dGEgc2l6ZSB3aXRoIDE2LWJpdCBpbmRleCB2YWx1ZXMgYXQgdGhlIGNvc3QKKyAgICAgKiBvZiBj
b21wYWN0YWJpbGl0eS4KKyAgICAgKiBUaGlzIHJlcXVpcmVzIGJsb2NrcyBvZiBzdGFnZSAyIGRh
dGEgdG8gYmUgYWxpZ25lZCBieSBVVFJJRV9EQVRBX0dSQU5VTEFSSVRZLgorICAgICAqIDAuLlVU
UklFX1NISUZUCisgICAgICovCisgICAgVVRSSUVfSU5ERVhfU0hJRlQ9MiwKKworICAgIC8qKiBU
aGUgYWxpZ25tZW50IHNpemUgb2YgYSBzdGFnZSAyIGRhdGEgYmxvY2suIEFsc28gdGhlIGdyYW51
bGFyaXR5IGZvciBjb21wYWN0aW9uLiAqLworICAgIFVUUklFX0RBVEFfR1JBTlVMQVJJVFk9MTw8
VVRSSUVfSU5ERVhfU0hJRlQsCisKKyAgICAvKiogTnVtYmVyIG9mIGJpdHMgb2YgYSB0cmFpbCBz
dXJyb2dhdGUgdGhhdCBhcmUgdXNlZCBpbiBpbmRleCB0YWJsZSBsb29rdXBzLiAqLworICAgIFVU
UklFX1NVUlJPR0FURV9CTE9DS19CSVRTPTEwLVVUUklFX1NISUZULAorCisgICAgLyoqCisgICAg
ICogTnVtYmVyIG9mIGluZGV4IChzdGFnZSAxKSBlbnRyaWVzIHBlciBsZWFkIHN1cnJvZ2F0ZS4K
KyAgICAgKiBTYW1lIGFzIG51bWJlciBvZiBpbmRleCBlbnRyaWVzIGZvciAxMDI0IHRyYWlsIHN1
cnJvZ2F0ZXMsCisgICAgICogPT0weDQwMD4+VVRSSUVfU0hJRlQKKyAgICAgKi8KKyAgICBVVFJJ
RV9TVVJST0dBVEVfQkxPQ0tfQ09VTlQ9KDE8PFVUUklFX1NVUlJPR0FURV9CTE9DS19CSVRTKSwK
KworICAgIC8qKiBMZW5ndGggb2YgdGhlIEJNUCBwb3J0aW9uIG9mIHRoZSBpbmRleCAoc3RhZ2Ug
MSkgYXJyYXkuICovCisgICAgVVRSSUVfQk1QX0lOREVYX0xFTkdUSD0weDEwMDAwPj5VVFJJRV9T
SElGVAorfTsKKworLyoqCisgKiBMZW5ndGggb2YgdGhlIGluZGV4IChzdGFnZSAxKSBhcnJheSBi
ZWZvcmUgZm9sZGluZy4KKyAqIE1heGltdW0gbnVtYmVyIG9mIFVuaWNvZGUgY29kZSBwb2ludHMg
KDB4MTEwMDAwKSBzaGlmdGVkIHJpZ2h0IGJ5IFVUUklFX1NISUZULgorICovCisjZGVmaW5lIFVU
UklFX01BWF9JTkRFWF9MRU5HVEggKDB4MTEwMDAwPj5VVFJJRV9TSElGVCkKKworLyoqCisgKiBN
YXhpbXVtIGxlbmd0aCBvZiB0aGUgcnVudGltZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKyAqIExp
bWl0ZWQgYnkgMTYtYml0IGluZGV4IHZhbHVlcyB0aGF0IGFyZSBsZWZ0LXNoaWZ0ZWQgYnkgVVRS
SUVfSU5ERVhfU0hJRlQuCisgKi8KKyNkZWZpbmUgVVRSSUVfTUFYX0RBVEFfTEVOR1RIICgweDEw
MDAwPDxVVFJJRV9JTkRFWF9TSElGVCkKKworLyoqCisgKiBNYXhpbXVtIGxlbmd0aCBvZiB0aGUg
YnVpbGQtdGltZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKyAqIFRoZSBtYXhpbXVtIGxlbmd0aCBp
cyAweDExMDAwMCtVVFJJRV9EQVRBX0JMT0NLX0xFTkdUSCsweDQwMC4KKyAqIChOdW1iZXIgb2Yg
VW5pY29kZSBjb2RlIHBvaW50cyArIG9uZSBhbGwtaW5pdGlhbC12YWx1ZSBibG9jayArCisgKiAg
cG9zc2libGUgZHVwbGljYXRlIGVudHJpZXMgZm9yIDEwMjQgbGVhZCBzdXJyb2dhdGVzLikKKyAq
LworI2RlZmluZSBVVFJJRV9NQVhfQlVJTERfVElNRV9EQVRBX0xFTkdUSCAoMHgxMTAwMDArVVRS
SUVfREFUQV9CTE9DS19MRU5HVEgrMHg0MDApCisKKy8qKgorICogTnVtYmVyIG9mIGJ5dGVzIGZv
ciBhIGR1bW15IHRyaWUuCisgKiBBIGR1bW15IHRyaWUgaXMgYW4gZW1wdHkgcnVudGltZSB0cmll
LCB1c2VkIHdoZW4gYSByZWFsIGRhdGEgdHJpZSBjYW5ub3QKKyAqIGJlIGxvYWRlZC4KKyAqIFRo
ZSBudW1iZXIgb2YgYnl0ZXMgd29ya3MgZm9yIExhdGluLTEtbGluZWFyIHRyaWVzIHdpdGggMzIt
Yml0IGRhdGEKKyAqICh3b3JzdCBjYXNlKS4KKyAqCisgKiBDYWxjdWxhdGlvbjoKKyAqICAgQk1Q
IGluZGV4ICsgMSBpbmRleCBibG9jayBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMgKwor
ICogICBMYXRpbi0xLWxpbmVhciBhcnJheSArIDEgZGF0YSBibG9jayBmb3IgbGVhZCBzdXJyb2dh
dGUgY29kZSBwb2ludHMKKyAqCisgKiBMYXRpbi0xOiBpZihVVFJJRV9TSElGVDw9OCkgeyAyNTYg
fSBlbHNlIHsgaW5jbHVkZWQgaW4gZmlyc3QgZGF0YSBibG9jayB9CisgKgorICogQHNlZSB1dHJp
ZV91bnNlcmlhbGl6ZUR1bW15CisgKi8KKyNkZWZpbmUgVVRSSUVfRFVNTVlfU0laRSAoKFVUUklF
X0JNUF9JTkRFWF9MRU5HVEgrVVRSSUVfU1VSUk9HQVRFX0JMT0NLX0NPVU5UKSoyKyhVVFJJRV9T
SElGVDw9OD8yNTY6VVRSSUVfREFUQV9CTE9DS19MRU5HVEgpKjQrVVRSSUVfREFUQV9CTE9DS19M
RU5HVEgqNCkKKworLyoqCisgKiBSdW50aW1lIFVUcmllIGNhbGxiYWNrIGZ1bmN0aW9uLgorICog
RXh0cmFjdCBmcm9tIGEgbGVhZCBzdXJyb2dhdGUncyBkYXRhIHRoZQorICogaW5kZXggYXJyYXkg
b2Zmc2V0IG9mIHRoZSBpbmRleGVzIGZvciB0aGF0IGxlYWQgc3Vycm9nYXRlLgorICoKKyAqIEBw
YXJhbSBkYXRhIGRhdGEgdmFsdWUgZm9yIGEgc3Vycm9nYXRlIGZyb20gdGhlIHRyaWUsIGluY2x1
ZGluZyB0aGUgZm9sZGluZyBvZmZzZXQKKyAqIEByZXR1cm4gb2Zmc2V0Pj1VVFJJRV9CTVBfSU5E
RVhfTEVOR1RILCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0
ZQorICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgorVVRyaWVHZXRGb2xkaW5nT2Zmc2V0
KHVpbnQzMl90IGRhdGEpOworCisvKioKKyAqIFJ1bi10aW1lIFRyaWUgc3RydWN0dXJlLgorICoK
KyAqIEVpdGhlciB0aGUgZGF0YSB0YWJsZSBpcyAxNiBiaXRzIHdpZGUgYW5kIGFjY2Vzc2VkIHZp
YSB0aGUgaW5kZXgKKyAqIHBvaW50ZXIsIHdpdGggZWFjaCBpbmRleCBpdGVtIGluY3JlYXNlZCBi
eSBpbmRleExlbmd0aDsKKyAqIGluIHRoaXMgY2FzZSwgZGF0YTMyPT1OVUxMLgorICoKKyAqIE9y
IHRoZSBkYXRhIHRhYmxlIGlzIDMyIGJpdHMgd2lkZSBhbmQgYWNjZXNzZWQgdmlhIHRoZSBkYXRh
MzIgcG9pbnRlci4KKyAqLworc3RydWN0IFVUcmllIHsKKyAgICBjb25zdCB1aW50MTZfdCAqaW5k
ZXg7CisgICAgY29uc3QgdWludDMyX3QgKmRhdGEzMjsgLyogTlVMTCBpZiAxNmIgZGF0YSBpcyB1
c2VkIHZpYSBpbmRleCAqLworCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyBub3Qg
dXNlZCBpbiBfRlJPTV9MRUFELCBfRlJPTV9CTVAsIGFuZCBfRlJPTV9PRkZTRVRfVFJBSUwgbWFj
cm9zLgorICAgICAqIElmIGNvbnZlbmllbmNlIG1hY3JvcyBsaWtlIF9HRVQxNiBvciBfTkVYVDMy
IGFyZSB1c2VkLCB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgc2V0LgorICAgICAqCisgICAgICogdXRy
aWVfdW5zZXJpYWxpemUoKSBzZXRzIGEgZGVmYXVsdCBmdW5jdGlvbiB3aGljaCBzaW1wbHkgcmV0
dXJucworICAgICAqIHRoZSBsZWFkIHN1cnJvZ2F0ZSdzIHZhbHVlIGl0c2VsZiAtIHdoaWNoIGlz
IHRoZSBpbnZlcnNlIG9mIHRoZSBkZWZhdWx0CisgICAgICogZm9sZGluZyBmdW5jdGlvbiB1c2Vk
IGJ5IHV0cmllX3NlcmlhbGl6ZSgpLgorICAgICAqCisgICAgICogQHNlZSBVVHJpZUdldEZvbGRp
bmdPZmZzZXQKKyAgICAgKi8KKyAgICBVVHJpZUdldEZvbGRpbmdPZmZzZXQgKmdldEZvbGRpbmdP
ZmZzZXQ7CisKKyAgICBpbnQzMl90IGluZGV4TGVuZ3RoLCBkYXRhTGVuZ3RoOworICAgIHVpbnQz
Ml90IGluaXRpYWxWYWx1ZTsKKyAgICBVQm9vbCBpc0xhdGluMUxpbmVhcjsKK307CisKKyNpZm5k
ZWYgX19VVFJJRTJfSF9fCit0eXBlZGVmIHN0cnVjdCBVVHJpZSBVVHJpZTsKKyNlbmRpZgorCisv
KiogSW50ZXJuYWwgdHJpZSBnZXR0ZXIgZnJvbSBhbiBvZmZzZXQgKDAgaWYgYzE2IGlzIGEgQk1Q
L2xlYWQgdW5pdHMpIGFuZCBhIDE2LWJpdCB1bml0ICovCisjZGVmaW5lIF9VVFJJRV9HRVRfUkFX
KHRyaWUsIGRhdGEsIG9mZnNldCwgYzE2KSBcCisgICAgKHRyaWUpLT5kYXRhWyBcCisgICAgICAg
ICgoaW50MzJfdCkoKHRyaWUpLT5pbmRleFsob2Zmc2V0KSsoKGMxNik+PlVUUklFX1NISUZUKV0p
PDxVVFJJRV9JTkRFWF9TSElGVCkrIFwKKyAgICAgICAgKChjMTYpJlVUUklFX01BU0spIFwKKyAg
ICBdCisKKy8qKiBJbnRlcm5hbCB0cmllIGdldHRlciBmcm9tIGEgcGFpciBvZiBzdXJyb2dhdGVz
ICovCisjZGVmaW5lIF9VVFJJRV9HRVRfRlJPTV9QQUlSKHRyaWUsIGRhdGEsIGMsIGMyLCByZXN1
bHQsIHJlc3VsdFR5cGUpIHsgXAorICAgIGludDMyX3QgX19vZmZzZXQ7IFwKK1wKKyAgICAvKiBn
ZXQgZGF0YSBmb3IgbGVhZCBzdXJyb2dhdGUgKi8gXAorICAgIChyZXN1bHQpPV9VVFJJRV9HRVRf
UkFXKCh0cmllKSwgZGF0YSwgMCwgKGMpKTsgXAorICAgIF9fb2Zmc2V0PSh0cmllKS0+Z2V0Rm9s
ZGluZ09mZnNldChyZXN1bHQpOyBcCitcCisgICAgLyogZ2V0IHRoZSByZWFsIGRhdGEgZnJvbSB0
aGUgZm9sZGVkIGxlYWQvdHJhaWwgdW5pdHMgKi8gXAorICAgIGlmKF9fb2Zmc2V0PjApIHsgXAor
ICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEsIF9fb2Zmc2V0LCAo
YzIpJjB4M2ZmKTsgXAorICAgIH0gZWxzZSB7IFwKKyAgICAgICAgKHJlc3VsdCk9KHJlc3VsdFR5
cGUpKCh0cmllKS0+aW5pdGlhbFZhbHVlKTsgXAorICAgIH0gXAorfQorCisvKiogSW50ZXJuYWwg
dHJpZSBnZXR0ZXIgZnJvbSBhIEJNUCBjb2RlIHBvaW50LCB0cmVhdGluZyBhIGxlYWQgc3Vycm9n
YXRlIGFzIGEgbm9ybWFsIGNvZGUgcG9pbnQgKi8KKyNkZWZpbmUgX1VUUklFX0dFVF9GUk9NX0JN
UCh0cmllLCBkYXRhLCBjMTYpIFwKKyAgICBfVVRSSUVfR0VUX1JBVyh0cmllLCBkYXRhLCAweGQ4
MDA8PShjMTYpICYmIChjMTYpPD0weGRiZmYgPyBVVFJJRV9MRUFEX0lOREVYX0RJU1AgOiAwLCBj
MTYpOworCisvKioKKyAqIEludGVybmFsIHRyaWUgZ2V0dGVyIGZyb20gYSBjb2RlIHBvaW50Lgor
ICogQ291bGQgYmUgZmFzdGVyKD8pIGJ1dCBsb25nZXIgd2l0aAorICogICBpZigoYzMyKTw9MHhk
N2ZmKSB7IChyZXN1bHQpPV9VVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEsIDAsIGMzMik7IH0KKyAq
LworI2RlZmluZSBfVVRSSUVfR0VUKHRyaWUsIGRhdGEsIGMzMiwgcmVzdWx0LCByZXN1bHRUeXBl
KSBcCisgICAgaWYoKHVpbnQzMl90KShjMzIpPD0weGZmZmYpIHsgXAorICAgICAgICAvKiBCTVAg
Y29kZSBwb2ludHMgKi8gXAorICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX0ZST01fQk1QKHRy
aWUsIGRhdGEsIGMzMik7IFwKKyAgICB9IGVsc2UgaWYoKHVpbnQzMl90KShjMzIpPD0weDEwZmZm
ZikgeyBcCisgICAgICAgIC8qIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCAqLyBcCisgICAgICAg
IFVDaGFyIF9fbGVhZDE2PVUxNl9MRUFEKGMzMik7IFwKKyAgICAgICAgX1VUUklFX0dFVF9GUk9N
X1BBSVIodHJpZSwgZGF0YSwgX19sZWFkMTYsIGMzMiwgcmVzdWx0LCByZXN1bHRUeXBlKTsgXAor
ICAgIH0gZWxzZSB7IFwKKyAgICAgICAgLyogb3V0IG9mIHJhbmdlICovIFwKKyAgICAgICAgKHJl
c3VsdCk9KHJlc3VsdFR5cGUpKCh0cmllKS0+aW5pdGlhbFZhbHVlKTsgXAorICAgIH0KKworLyoq
IEludGVybmFsIG5leHQtcG9zdC1pbmNyZW1lbnQ6IGdldCB0aGUgbmV4dCBjb2RlIHBvaW50IChj
LCBjMikgYW5kIGl0cyBkYXRhICovCisjZGVmaW5lIF9VVFJJRV9ORVhUKHRyaWUsIGRhdGEsIHNy
YywgbGltaXQsIGMsIGMyLCByZXN1bHQsIHJlc3VsdFR5cGUpIHsgXAorICAgIChjKT0qKHNyYykr
KzsgXAorICAgIGlmKCFVMTZfSVNfTEVBRChjKSkgeyBcCisgICAgICAgIChjMik9MDsgXAorICAg
ICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEsIDAsIChjKSk7IFwKKyAg
ICB9IGVsc2UgaWYoKHNyYykhPShsaW1pdCkgJiYgVTE2X0lTX1RSQUlMKChjMik9KihzcmMpKSkg
eyBcCisgICAgICAgICsrKHNyYyk7IFwKKyAgICAgICAgX1VUUklFX0dFVF9GUk9NX1BBSVIoKHRy
aWUpLCBkYXRhLCAoYyksIChjMiksIChyZXN1bHQpLCByZXN1bHRUeXBlKTsgXAorICAgIH0gZWxz
ZSB7IFwKKyAgICAgICAgLyogdW5wYWlyZWQgbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludCAqLyBc
CisgICAgICAgIChjMik9MDsgXAorICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJp
ZSksIGRhdGEsIFVUUklFX0xFQURfSU5ERVhfRElTUCwgKGMpKTsgXAorICAgIH0gXAorfQorCisv
KiogSW50ZXJuYWwgcHJldmlvdXM6IGdldCB0aGUgcHJldmlvdXMgY29kZSBwb2ludCAoYywgYzIp
IGFuZCBpdHMgZGF0YSAqLworI2RlZmluZSBfVVRSSUVfUFJFVklPVVModHJpZSwgZGF0YSwgc3Rh
cnQsIHNyYywgYywgYzIsIHJlc3VsdCwgcmVzdWx0VHlwZSkgeyBcCisgICAgKGMpPSotLShzcmMp
OyBcCisgICAgaWYoIVUxNl9JU19TVVJST0dBVEUoYykpIHsgXAorICAgICAgICAoYzIpPTA7IFwK
KyAgICAgICAgKHJlc3VsdCk9X1VUUklFX0dFVF9SQVcoKHRyaWUpLCBkYXRhLCAwLCAoYykpOyBc
CisgICAgfSBlbHNlIGlmKCFVMTZfSVNfU1VSUk9HQVRFX0xFQUQoYykpIHsgXAorICAgICAgICAv
KiB0cmFpbCBzdXJyb2dhdGUgKi8gXAorICAgICAgICBpZigoc3RhcnQpIT0oc3JjKSAmJiBVMTZf
SVNfTEVBRCgoYzIpPSooKHNyYyktMSkpKSB7IFwKKyAgICAgICAgICAgIC0tKHNyYyk7IFwKKyAg
ICAgICAgICAgIChyZXN1bHQpPShjKTsgKGMpPShjMik7IChjMik9KFVDaGFyKShyZXN1bHQpOyAv
KiBzd2FwIGMsIGMyICovIFwKKyAgICAgICAgICAgIF9VVFJJRV9HRVRfRlJPTV9QQUlSKCh0cmll
KSwgZGF0YSwgKGMpLCAoYzIpLCAocmVzdWx0KSwgcmVzdWx0VHlwZSk7IFwKKyAgICAgICAgfSBl
bHNlIHsgXAorICAgICAgICAgICAgLyogdW5wYWlyZWQgdHJhaWwgc3Vycm9nYXRlIGNvZGUgcG9p
bnQgKi8gXAorICAgICAgICAgICAgKGMyKT0wOyBcCisgICAgICAgICAgICAocmVzdWx0KT1fVVRS
SUVfR0VUX1JBVygodHJpZSksIGRhdGEsIDAsIChjKSk7IFwKKyAgICAgICAgfSBcCisgICAgfSBl
bHNlIHsgXAorICAgICAgICAvKiB1bnBhaXJlZCBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50ICov
IFwKKyAgICAgICAgKGMyKT0wOyBcCisgICAgICAgIChyZXN1bHQpPV9VVFJJRV9HRVRfUkFXKCh0
cmllKSwgZGF0YSwgVVRSSUVfTEVBRF9JTkRFWF9ESVNQLCAoYykpOyBcCisgICAgfSBcCit9CisK
Ky8qIFB1YmxpYyBVVHJpZSBBUEkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBHZXQgYSBwb2ludGVyIHRvIHRoZSBj
b250aWd1b3VzIHBhcnQgb2YgdGhlIGRhdGEgYXJyYXkKKyAqIGZvciB0aGUgTGF0aW4tMSByYW5n
ZSAoVSswMDAwLi5VKzAwZmYpLgorICogTXVzdCBiZSB1c2VkIG9ubHkgaWYgdGhlIExhdGluLTEg
cmFuZ2UgaXMgaW4gZmFjdCBsaW5lYXIKKyAqICh0cmllLT5pc0xhdGluMUxpbmVhcikuCisgKgor
ICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRp
bWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEByZXR1cm4gKGNvbnN0IHVpbnQxNl90ICopIHBvaW50ZXIg
dG8gdmFsdWVzIGZvciBMYXRpbi0xIGNvZGUgcG9pbnRzCisgKi8KKyNkZWZpbmUgVVRSSUVfR0VU
MTZfTEFUSU4xKHRyaWUpICgodHJpZSktPmluZGV4Kyh0cmllKS0+aW5kZXhMZW5ndGgrVVRSSUVf
REFUQV9CTE9DS19MRU5HVEgpCisKKy8qKgorICogR2V0IGEgcG9pbnRlciB0byB0aGUgY29udGln
dW91cyBwYXJ0IG9mIHRoZSBkYXRhIGFycmF5CisgKiBmb3IgdGhlIExhdGluLTEgcmFuZ2UgKFUr
MDAwMC4uVSswMGZmKS4KKyAqIE11c3QgYmUgdXNlZCBvbmx5IGlmIHRoZSBMYXRpbi0xIHJhbmdl
IGlzIGluIGZhY3QgbGluZWFyCisgKiAodHJpZS0+aXNMYXRpbjFMaW5lYXIpLgorICoKKyAqIEBw
YXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRy
aWUgc3RydWN0dXJlCisgKiBAcmV0dXJuIChjb25zdCB1aW50MzJfdCAqKSBwb2ludGVyIHRvIHZh
bHVlcyBmb3IgTGF0aW4tMSBjb2RlIHBvaW50cworICovCisjZGVmaW5lIFVUUklFX0dFVDMyX0xB
VElOMSh0cmllKSAoKHRyaWUpLT5kYXRhMzIrVVRSSUVfREFUQV9CTE9DS19MRU5HVEgpCisKKy8q
KgorICogR2V0IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJNUCBjb2RlIHBvaW50IChVQ2hh
ciwgPD1VK2ZmZmYpLgorICogYzE2IG1heSBiZSBhIGxlYWQgc3Vycm9nYXRlLCB3aGljaCBtYXkg
aGF2ZSBhIHZhbHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0LgorICoKKyAqIEBwYXJhbSB0
cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3Ry
dWN0dXJlCisgKiBAcGFyYW0gYzE2IChVQ2hhciwgaW4pIHRoZSBpbnB1dCBCTVAgY29kZSBwb2lu
dAorICogQHJldHVybiAodWludDE2X3QpIHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5l
IFVUUklFX0dFVDE2X0ZST01fTEVBRCh0cmllLCBjMTYpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGlu
ZGV4LCAwLCBjMTYpCisKKy8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJN
UCBjb2RlIHBvaW50IChVQ2hhciwgPD1VK2ZmZmYpLgorICogYzE2IG1heSBiZSBhIGxlYWQgc3Vy
cm9nYXRlLCB3aGljaCBtYXkgaGF2ZSBhIHZhbHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0
LgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRo
ZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYzE2IChVQ2hhciwgaW4pIHRoZSBp
bnB1dCBCTVAgY29kZSBwb2ludAorICogQHJldHVybiAodWludDMyX3QpIHRyaWUgbG9va3VwIHJl
c3VsdAorICovCisjZGVmaW5lIFVUUklFX0dFVDMyX0ZST01fTEVBRCh0cmllLCBjMTYpIF9VVFJJ
RV9HRVRfUkFXKHRyaWUsIGRhdGEzMiwgMCwgYzE2KQorCisvKioKKyAqIEdldCBhIDE2LWJpdCB0
cmllIHZhbHVlIGZyb20gYSBCTVAgY29kZSBwb2ludCAoVUNoYXIsIDw9VStmZmZmKS4KKyAqIEV2
ZW4gbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIGNvZGUg
cG9pbnRzLAorICogd2l0aCB1bmZvbGRlZCB2YWx1ZXMgdGhhdCBtYXkgZGlmZmVyIGZyb20gX0ZS
T01fTEVBRCgpIG1hY3JvIHJlc3VsdHMgZm9yIHRoZW0uCisgKgorICogQHBhcmFtIHRyaWUgKGNv
bnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUK
KyAqIEBwYXJhbSBjMTYgKFVDaGFyLCBpbikgdGhlIGlucHV0IEJNUCBjb2RlIHBvaW50CisgKiBA
cmV0dXJuICh1aW50MTZfdCkgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVf
R0VUMTZfRlJPTV9CTVAodHJpZSwgYzE2KSBfVVRSSUVfR0VUX0ZST01fQk1QKHRyaWUsIGluZGV4
LCBjMTYpCisKKy8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJNUCBjb2Rl
IHBvaW50IChVQ2hhciwgPD1VK2ZmZmYpLgorICogRXZlbiBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBv
aW50cyBhcmUgdHJlYXRlZCBhcyBub3JtYWwgY29kZSBwb2ludHMsCisgKiB3aXRoIHVuZm9sZGVk
IHZhbHVlcyB0aGF0IG1heSBkaWZmZXIgZnJvbSBfRlJPTV9MRUFEKCkgbWFjcm8gcmVzdWx0cyBm
b3IgdGhlbS4KKyAqCisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRl
ciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIGMxNiAoVUNoYXIsIGlu
KSB0aGUgaW5wdXQgQk1QIGNvZGUgcG9pbnQKKyAqIEByZXR1cm4gKHVpbnQzMl90KSB0cmllIGxv
b2t1cCByZXN1bHQKKyAqLworI2RlZmluZSBVVFJJRV9HRVQzMl9GUk9NX0JNUCh0cmllLCBjMTYp
IF9VVFJJRV9HRVRfRlJPTV9CTVAodHJpZSwgZGF0YTMyLCBjMTYpCisKKy8qKgorICogR2V0IGEg
MTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIGNvZGUgcG9pbnQuCisgKiBFdmVuIGxlYWQgc3Vycm9n
YXRlIGNvZGUgcG9pbnRzIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBjb2RlIHBvaW50cywKKyAqIHdp
dGggdW5mb2xkZWQgdmFsdWVzIHRoYXQgbWF5IGRpZmZlciBmcm9tIF9GUk9NX0xFQUQoKSBtYWNy
byByZXN1bHRzIGZvciB0aGVtLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBp
bikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYzMy
IChVQ2hhcjMyLCBpbikgdGhlIGlucHV0IGNvZGUgcG9pbnQKKyAqIEBwYXJhbSByZXN1bHQgKHVp
bnQxNl90LCBvdXQpIHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0
CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTYodHJpZSwgYzMyLCByZXN1bHQpIF9VVFJJRV9HRVQo
dHJpZSwgaW5kZXgsIGMzMiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgYSAzMi1i
aXQgdHJpZSB2YWx1ZSBmcm9tIGEgY29kZSBwb2ludC4KKyAqIEV2ZW4gbGVhZCBzdXJyb2dhdGUg
Y29kZSBwb2ludHMgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIGNvZGUgcG9pbnRzLAorICogd2l0aCB1
bmZvbGRlZCB2YWx1ZXMgdGhhdCBtYXkgZGlmZmVyIGZyb20gX0ZST01fTEVBRCgpIG1hY3JvIHJl
c3VsdHMgZm9yIHRoZW0uCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBh
IHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBjMzIgKFVD
aGFyMzIsIGluKSB0aGUgaW5wdXQgY29kZSBwb2ludAorICogQHBhcmFtIHJlc3VsdCAodWludDMy
X3QsIG91dCkgdWludDMyX3QgdmFyaWFibGUgZm9yIHRoZSB0cmllIGxvb2t1cCByZXN1bHQKKyAq
LworI2RlZmluZSBVVFJJRV9HRVQzMih0cmllLCBjMzIsIHJlc3VsdCkgX1VUUklFX0dFVCh0cmll
LCBkYXRhMzIsIGMzMiwgcmVzdWx0LCB1aW50MzJfdCkKKworLyoqCisgKiBHZXQgdGhlIG5leHQg
Y29kZSBwb2ludCAoYywgYzIpLCBwb3N0LWluY3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0IGEgMTYt
Yml0IHZhbHVlIGZyb20gdGhlIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmll
ICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJh
bSBzcmMgKGNvbnN0IFVDaGFyICosIGluL291dCkgdGhlIHNvdXJjZSB0ZXh0IHBvaW50ZXIKKyAq
IEBwYXJhbSBsaW1pdCAoY29uc3QgVUNoYXIgKiwgaW4pIHRoZSBsaW1pdCBwb2ludGVyIGZvciB0
aGUgdGV4dCwgb3IgTlVMTAorICogQHBhcmFtIGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciB0
aGUgQk1QIG9yIGxlYWQgY29kZSB1bml0CisgKiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQpIHZhcmlh
YmxlIGZvciAwIG9yIHRoZSB0cmFpbCBjb2RlIHVuaXQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQx
Nl90LCBvdXQpIHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0Cisg
Ki8KKyNkZWZpbmUgVVRSSUVfTkVYVDE2KHRyaWUsIHNyYywgbGltaXQsIGMsIGMyLCByZXN1bHQp
IF9VVFJJRV9ORVhUKHRyaWUsIGluZGV4LCBzcmMsIGxpbWl0LCBjLCBjMiwgcmVzdWx0LCB1aW50
MTZfdCkKKworLyoqCisgKiBHZXQgdGhlIG5leHQgY29kZSBwb2ludCAoYywgYzIpLCBwb3N0LWlu
Y3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0IGEgMzItYml0IHZhbHVlIGZyb20gdGhlIHRyaWUuCisg
KgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1
bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzcmMgKGNvbnN0IFVDaGFyICosIGluL291
dCkgdGhlIHNvdXJjZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBsaW1pdCAoY29uc3QgVUNoYXIg
KiwgaW4pIHRoZSBsaW1pdCBwb2ludGVyIGZvciB0aGUgdGV4dCwgb3IgTlVMTAorICogQHBhcmFt
IGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9yIGxlYWQgY29kZSB1bml0Cisg
KiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAwIG9yIHRoZSB0cmFpbCBjb2Rl
IHVuaXQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQpIHVpbnQzMl90IHZhcmlhYmxl
IGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfTkVYVDMyKHRy
aWUsIHNyYywgbGltaXQsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9ORVhUKHRyaWUsIGRhdGEzMiwg
c3JjLCBsaW1pdCwgYywgYzIsIHJlc3VsdCwgdWludDMyX3QpCisKKy8qKgorICogR2V0IHRoZSBw
cmV2aW91cyBjb2RlIHBvaW50IChjLCBjMiksIHByZS1kZWNyZW1lbnQgc3JjLAorICogYW5kIGdl
dCBhIDE2LWJpdCB2YWx1ZSBmcm9tIHRoZSB0cmllLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25z
dCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisg
KiBAcGFyYW0gc3RhcnQgKGNvbnN0IFVDaGFyICosIGluKSB0aGUgc3RhcnQgcG9pbnRlciBmb3Ig
dGhlIHRleHQsIG9yIE5VTEwKKyAqIEBwYXJhbSBzcmMgKGNvbnN0IFVDaGFyICosIGluL291dCkg
dGhlIHNvdXJjZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBjIChVQ2hhciwgb3V0KSB2YXJpYWJs
ZSBmb3IgdGhlIEJNUCBvciBsZWFkIGNvZGUgdW5pdAorICogQHBhcmFtIGMyIChVQ2hhciwgb3V0
KSB2YXJpYWJsZSBmb3IgMCBvciB0aGUgdHJhaWwgY29kZSB1bml0CisgKiBAcGFyYW0gcmVzdWx0
ICh1aW50MTZfdCwgb3V0KSB1aW50MTZfdCB2YXJpYWJsZSBmb3IgdGhlIHRyaWUgbG9va3VwIHJl
c3VsdAorICovCisjZGVmaW5lIFVUUklFX1BSRVZJT1VTMTYodHJpZSwgc3RhcnQsIHNyYywgYywg
YzIsIHJlc3VsdCkgX1VUUklFX1BSRVZJT1VTKHRyaWUsIGluZGV4LCBzdGFydCwgc3JjLCBjLCBj
MiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgdGhlIHByZXZpb3VzIGNvZGUgcG9p
bnQgKGMsIGMyKSwgcHJlLWRlY3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0IGEgMzItYml0IHZhbHVl
IGZyb20gdGhlIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBh
IHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzdGFydCAo
Y29uc3QgVUNoYXIgKiwgaW4pIHRoZSBzdGFydCBwb2ludGVyIGZvciB0aGUgdGV4dCwgb3IgTlVM
TAorICogQHBhcmFtIHNyYyAoY29uc3QgVUNoYXIgKiwgaW4vb3V0KSB0aGUgc291cmNlIHRleHQg
cG9pbnRlcgorICogQHBhcmFtIGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9y
IGxlYWQgY29kZSB1bml0CisgKiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAw
IG9yIHRoZSB0cmFpbCBjb2RlIHVuaXQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQp
IHVpbnQzMl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZp
bmUgVVRSSUVfUFJFVklPVVMzMih0cmllLCBzdGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0KSBfVVRS
SUVfUFJFVklPVVModHJpZSwgZGF0YTMyLCBzdGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0LCB1aW50
MzJfdCkKKworLyoqCisgKiBHZXQgYSAxNi1iaXQgdHJpZSB2YWx1ZSBmcm9tIGEgcGFpciBvZiBz
dXJyb2dhdGVzLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2lu
dGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYyAoVUNoYXIsIGlu
KSBhIGxlYWQgc3Vycm9nYXRlCisgKiBAcGFyYW0gYzIgKFVDaGFyLCBpbikgYSB0cmFpbCBzdXJy
b2dhdGUKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQxNl90LCBvdXQpIHVpbnQxNl90IHZhcmlhYmxl
IGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTZfRlJP
TV9QQUlSKHRyaWUsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9HRVRfRlJPTV9QQUlSKHRyaWUsIGlu
ZGV4LCBjLCBjMiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgYSAzMi1iaXQgdHJp
ZSB2YWx1ZSBmcm9tIGEgcGFpciBvZiBzdXJyb2dhdGVzLgorICoKKyAqIEBwYXJhbSB0cmllIChj
b25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJl
CisgKiBAcGFyYW0gYyAoVUNoYXIsIGluKSBhIGxlYWQgc3Vycm9nYXRlCisgKiBAcGFyYW0gYzIg
KFVDaGFyLCBpbikgYSB0cmFpbCBzdXJyb2dhdGUKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQzMl90
LCBvdXQpIHVpbnQzMl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8K
KyNkZWZpbmUgVVRSSUVfR0VUMzJfRlJPTV9QQUlSKHRyaWUsIGMsIGMyLCByZXN1bHQpIF9VVFJJ
RV9HRVRfRlJPTV9QQUlSKHRyaWUsIGRhdGEzMiwgYywgYzIsIHJlc3VsdCwgdWludDMyX3QpCisK
Ky8qKgorICogR2V0IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIGZvbGRpbmcgb2Zmc2V0IChm
cm9tIHRoZSB2YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRlKQorICogYW5kIGEgdHJhaWwgc3Vycm9n
YXRlLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRv
IHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gb2Zmc2V0IChpbnQzMl90LCBp
bikgdGhlIGZvbGRpbmcgb2Zmc2V0IGZyb20gdGhlIHZhbHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUK
KyAqIEBwYXJhbSBjMiAoVUNoYXIsIGluKSBhIHRyYWlsIHN1cnJvZ2F0ZSAob25seSB0aGUgMTAg
bG93IGJpdHMgYXJlIHNpZ25pZmljYW50KQorICogQHJldHVybiAodWludDE2X3QpIHRyaWUgbG9v
a3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dFVDE2X0ZST01fT0ZGU0VUX1RSQUlMKHRy
aWUsIG9mZnNldCwgYzIpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGluZGV4LCBvZmZzZXQsIChjMikm
MHgzZmYpCisKKy8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIGZvbGRpbmcg
b2Zmc2V0IChmcm9tIHRoZSB2YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRlKQorICogYW5kIGEgdHJh
aWwgc3Vycm9nYXRlLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBw
b2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gb2Zmc2V0IChp
bnQzMl90LCBpbikgdGhlIGZvbGRpbmcgb2Zmc2V0IGZyb20gdGhlIHZhbHVlIG9mIGEgbGVhZCBz
dXJyb2dhdGUKKyAqIEBwYXJhbSBjMiAoVUNoYXIsIGluKSBhIHRyYWlsIHN1cnJvZ2F0ZSAob25s
eSB0aGUgMTAgbG93IGJpdHMgYXJlIHNpZ25pZmljYW50KQorICogQHJldHVybiAodWludDMyX3Qp
IHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dFVDMyX0ZST01fT0ZGU0VU
X1RSQUlMKHRyaWUsIG9mZnNldCwgYzIpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEzMiwgb2Zm
c2V0LCAoYzIpJjB4M2ZmKQorCisvKiBlbnVtZXJhdGlvbiBjYWxsYmFjayB0eXBlcyAqLworCisv
KioKKyAqIENhbGxiYWNrIGZyb20gdXRyaWVfZW51bSgpLCBleHRyYWN0cyBhIHVpbnQzMl90IHZh
bHVlIGZyb20gYQorICogdHJpZSB2YWx1ZS4gVGhpcyB2YWx1ZSB3aWxsIGJlIHBhc3NlZCBvbiB0
byB0aGUgVVRyaWVFbnVtUmFuZ2UgZnVuY3Rpb24uCisgKgorICogQHBhcmFtIGNvbnRleHQgYW4g
b3BhcXVlIHBvaW50ZXIsIGFzIHBhc3NlZCBpbnRvIHV0cmllX2VudW0oKQorICogQHBhcmFtIHZh
bHVlIGEgdmFsdWUgZnJvbSB0aGUgdHJpZQorICogQHJldHVybiB0aGUgdmFsdWUgdGhhdCBpcyB0
byBiZSBwYXNzZWQgb24gdG8gdGhlIFVUcmllRW51bVJhbmdlIGZ1bmN0aW9uCisgKi8KK3R5cGVk
ZWYgdWludDMyX3QgVV9DQUxMQ09OVgorVVRyaWVFbnVtVmFsdWUoY29uc3Qgdm9pZCAqY29udGV4
dCwgdWludDMyX3QgdmFsdWUpOworCisvKioKKyAqIENhbGxiYWNrIGZyb20gdXRyaWVfZW51bSgp
LCBpcyBjYWxsZWQgZm9yIGVhY2ggY29udGlndW91cyByYW5nZQorICogb2YgY29kZSBwb2ludHMg
d2l0aCB0aGUgc2FtZSB2YWx1ZSBhcyByZXRyaWV2ZWQgZnJvbSB0aGUgdHJpZSBhbmQKKyAqIHRy
YW5zZm9ybWVkIGJ5IHRoZSBVVHJpZUVudW1WYWx1ZSBmdW5jdGlvbi4KKyAqCisgKiBUaGUgY2Fs
bGJhY2sgZnVuY3Rpb24gY2FuIHN0b3AgdGhlIGVudW1lcmF0aW9uIGJ5IHJldHVybmluZyBGQUxT
RS4KKyAqCisgKiBAcGFyYW0gY29udGV4dCBhbiBvcGFxdWUgcG9pbnRlciwgYXMgcGFzc2VkIGlu
dG8gdXRyaWVfZW51bSgpCisgKiBAcGFyYW0gc3RhcnQgdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4g
YSBjb250aWd1b3VzIHJhbmdlIHdpdGggdmFsdWUKKyAqIEBwYXJhbSBsaW1pdCBvbmUgcGFzdCB0
aGUgbGFzdCBjb2RlIHBvaW50IGluIGEgY29udGlndW91cyByYW5nZSB3aXRoIHZhbHVlCisgKiBA
cGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRoYXQgaXMgc2V0IGZvciBhbGwgY29kZSBwb2ludHMgaW4g
W3N0YXJ0Li5saW1pdFsKKyAqIEByZXR1cm4gRkFMU0UgdG8gc3RvcCB0aGUgZW51bWVyYXRpb24K
KyAqLwordHlwZWRlZiBVQm9vbCBVX0NBTExDT05WCitVVHJpZUVudW1SYW5nZShjb25zdCB2b2lk
ICpjb250ZXh0LCBVQ2hhcjMyIHN0YXJ0LCBVQ2hhcjMyIGxpbWl0LCB1aW50MzJfdCB2YWx1ZSk7
CisKKy8qKgorICogRW51bWVyYXRlIGVmZmljaWVudGx5IGFsbCB2YWx1ZXMgaW4gYSB0cmllLgor
ICogRm9yIGVhY2ggZW50cnkgaW4gdGhlIHRyaWUsIHRoZSB2YWx1ZSB0byBiZSBkZWxpdmVyZWQg
aXMgcGFzc2VkIHRocm91Z2gKKyAqIHRoZSBVVHJpZUVudW1WYWx1ZSBmdW5jdGlvbi4KKyAqIFRo
ZSB2YWx1ZSBpcyB1bmNoYW5nZWQgaWYgdGhhdCBmdW5jdGlvbiBwb2ludGVyIGlzIE5VTEwuCisg
KgorICogRm9yIGVhY2ggY29udGlndW91cyByYW5nZSBvZiBjb2RlIHBvaW50cyB3aXRoIGEgZ2l2
ZW4gdmFsdWUsCisgKiB0aGUgVVRyaWVFbnVtUmFuZ2UgZnVuY3Rpb24gaXMgY2FsbGVkLgorICoK
KyAqIEBwYXJhbSB0cmllIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQor
ICogQHBhcmFtIGVudW1WYWx1ZSBhIHBvaW50ZXIgdG8gYSBmdW5jdGlvbiB0aGF0IG1heSB0cmFu
c2Zvcm0gdGhlIHRyaWUgZW50cnkgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIG9yIE5VTEwg
aWYgdGhlIHZhbHVlcyBmcm9tIHRoZSB0cmllIGFyZSB0byBiZSB1c2VkIGRpcmVjdGx5CisgKiBA
cGFyYW0gZW51bVJhbmdlIGEgcG9pbnRlciB0byBhIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGZv
ciBlYWNoIGNvbnRpZ3VvdXMgcmFuZ2UKKyAqICAgICAgICAgICAgICAgICAgb2YgY29kZSBwb2lu
dHMgd2l0aCB0aGUgc2FtZSB2YWx1ZQorICogQHBhcmFtIGNvbnRleHQgYW4gb3BhcXVlIHBvaW50
ZXIgdGhhdCBpcyBwYXNzZWQgb24gdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9ucworICovCitVX0NB
UEkgdm9pZCBVX0VYUE9SVDIKK3V0cmllX2VudW0oY29uc3QgVVRyaWUgKnRyaWUsCisgICAgICAg
ICAgIFVUcmllRW51bVZhbHVlICplbnVtVmFsdWUsIFVUcmllRW51bVJhbmdlICplbnVtUmFuZ2Us
IGNvbnN0IHZvaWQgKmNvbnRleHQpOworCisvKioKKyAqIFVuc2VyaWFsaXplIGEgdHJpZSBmcm9t
IDMyLWJpdC1hbGlnbmVkIG1lbW9yeS4KKyAqIEludmVyc2Ugb2YgdXRyaWVfc2VyaWFsaXplKCku
CisgKiBGaWxscyB0aGUgVVRyaWUgcnVudGltZSB0cmllIHN0cnVjdHVyZSB3aXRoIHRoZSBzZXR0
aW5ncyBmb3IgdGhlIHRyaWUgZGF0YS4KKyAqCisgKiBAcGFyYW0gdHJpZSBhIHBvaW50ZXIgdG8g
dGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBkYXRhIGEgcG9pbnRlciB0byAz
Mi1iaXQtYWxpZ25lZCBtZW1vcnkgY29udGFpbmluZyB0cmllIGRhdGEKKyAqIEBwYXJhbSBsZW5n
dGggdGhlIG51bWJlciBvZiBieXRlcyBhdmFpbGFibGUgYXQgZGF0YQorICogQHBhcmFtIHBFcnJv
ckNvZGUgYW4gaW4vb3V0IElDVSBVRXJyb3JDb2RlCisgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2Yg
Ynl0ZXMgYXQgZGF0YSB0YWtlbiB1cCBieSB0aGUgdHJpZSBkYXRhCisgKi8KK1VfQ0FQSSBpbnQz
Ml90IFVfRVhQT1JUMgordXRyaWVfdW5zZXJpYWxpemUoVVRyaWUgKnRyaWUsIGNvbnN0IHZvaWQg
KmRhdGEsIGludDMyX3QgbGVuZ3RoLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisg
KiAiVW5zZXJpYWxpemUiIGEgZHVtbXkgdHJpZS4KKyAqIEEgZHVtbXkgdHJpZSBpcyBhbiBlbXB0
eSBydW50aW1lIHRyaWUsIHVzZWQgd2hlbiBhIHJlYWwgZGF0YSB0cmllIGNhbm5vdAorICogYmUg
bG9hZGVkLgorICoKKyAqIFRoZSBpbnB1dCBtZW1vcnkgaXMgZmlsbGVkIHNvIHRoYXQgdGhlIHRy
aWUgYWx3YXlzIHJldHVybnMgdGhlIGluaXRpYWxWYWx1ZSwKKyAqIG9yIHRoZSBsZWFkVW5pdFZh
bHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cy4KKyAqIFRoZSBMYXRpbi0xIHBhcnQg
aXMgYWx3YXlzIHNldCB1cCB0byBiZSBsaW5lYXIuCisgKgorICogQHBhcmFtIHRyaWUgYSBwb2lu
dGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gZGF0YSBhIHBvaW50
ZXIgdG8gMzItYml0LWFsaWduZWQgbWVtb3J5IHRvIGJlIGZpbGxlZCB3aXRoIHRoZSBkdW1teSB0
cmllIGRhdGEKKyAqIEBwYXJhbSBsZW5ndGggdGhlIG51bWJlciBvZiBieXRlcyBhdmFpbGFibGUg
YXQgZGF0YSAocmVjb21tZW5kZWQgdG8gdXNlIFVUUklFX0RVTU1ZX1NJWkUpCisgKiBAcGFyYW0g
aW5pdGlhbFZhbHVlIHRoZSBpbml0aWFsIHZhbHVlIHRoYXQgaXMgc2V0IGZvciBhbGwgY29kZSBw
b2ludHMKKyAqIEBwYXJhbSBsZWFkVW5pdFZhbHVlIHRoZSB2YWx1ZSBmb3IgbGVhZCBzdXJyb2dh
dGUgY29kZSBfdW5pdHNfIHRoYXQgZG8gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICBoYXZl
IGFzc29jaWF0ZWQgc3VwcGxlbWVudGFyeSBkYXRhCisgKiBAcGFyYW0gcEVycm9yQ29kZSBhbiBp
bi9vdXQgSUNVIFVFcnJvckNvZGUKKyAqCisgKiBAc2VlIFVUUklFX0RVTU1ZX1NJWkUKKyAqIEBz
ZWUgdXRyaWVfb3BlbgorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0cmllX3Vuc2Vy
aWFsaXplRHVtbXkoVVRyaWUgKnRyaWUsCisgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRh
dGEsIGludDMyX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpbml0
aWFsVmFsdWUsIHVpbnQzMl90IGxlYWRVbml0VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAg
IFVCb29sIG1ha2UxNkJpdFRyaWUsCisgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUg
KnBFcnJvckNvZGUpOworCisvKioKKyAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIFVUcmll
LmdldEZvbGRpbmdPZmZzZXQsIHNldCBhdXRvbWF0aWNhbGx5IGJ5CisgKiB1dHJpZV91bnNlcmlh
bGl6ZSgpLgorICogU2ltcGx5IHJldHVybnMgdGhlIGxlYWQgc3Vycm9nYXRlJ3MgdmFsdWUgaXRz
ZWxmIC0gd2hpY2ggaXMgdGhlIGludmVyc2UKKyAqIG9mIHRoZSBkZWZhdWx0IGZvbGRpbmcgZnVu
Y3Rpb24gdXNlZCBieSB1dHJpZV9zZXJpYWxpemUoKS4KKyAqIEV4cG9ydGVkIGZvciBzdGF0aWMg
Y29uc3QgVVRyaWUgc3RydWN0dXJlcy4KKyAqCisgKiBAc2VlIFVUcmllR2V0Rm9sZGluZ09mZnNl
dAorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0cmllX2RlZmF1bHRHZXRGb2xkaW5n
T2Zmc2V0KHVpbnQzMl90IGRhdGEpOworCisvKiBCdWlsZGluZyBhIHRyaWUgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qKgor
ICogQnVpbGQtdGltZSB0cmllIHN0cnVjdHVyZS4KKyAqIE9wYXF1ZSBkZWZpbml0aW9uLCBoZXJl
IG9ubHkgdG8gbWFrZSBmaWxsSW4gcGFyYW1ldGVycyBwb3NzaWJsZQorICogZm9yIHV0cmllX29w
ZW4oKSBhbmQgdXRyaWVfY2xvbmUoKS4KKyAqLworc3RydWN0IFVOZXdUcmllIHsKKyAgICAvKioK
KyAgICAgKiBJbmRleCB2YWx1ZXMgYXQgYnVpbGQtdGltZSBhcmUgMzIgYml0cyB3aWRlIGZvciBl
YXNpZXIgcHJvY2Vzc2luZy4KKyAgICAgKiBCaXQgMzEgaXMgc2V0IGlmIHRoZSBkYXRhIGJsb2Nr
IGlzIHVzZWQgYnkgbXVsdGlwbGUgaW5kZXggdmFsdWVzIChmcm9tIHV0cmllX3NldFJhbmdlKCkp
LgorICAgICAqLworICAgIGludDMyX3QgaW5kZXhbVVRSSUVfTUFYX0lOREVYX0xFTkdUSF07Cisg
ICAgdWludDMyX3QgKmRhdGE7CisKKyAgICB1aW50MzJfdCBsZWFkVW5pdFZhbHVlOworICAgIGlu
dDMyX3QgaW5kZXhMZW5ndGgsIGRhdGFDYXBhY2l0eSwgZGF0YUxlbmd0aDsKKyAgICBVQm9vbCBp
c0FsbG9jYXRlZCwgaXNEYXRhQWxsb2NhdGVkOworICAgIFVCb29sIGlzTGF0aW4xTGluZWFyLCBp
c0NvbXBhY3RlZDsKKworICAgIC8qKgorICAgICAqIE1hcCBvZiBhZGp1c3RlZCBpbmRleGVzLCB1
c2VkIGluIHV0cmllX2NvbXBhY3QoKS4KKyAgICAgKiBNYXBzIGZyb20gb3JpZ2luYWwgaW5kZXhl
cyB0byBuZXcgb25lcy4KKyAgICAgKi8KKyAgICBpbnQzMl90IG1hcFtVVFJJRV9NQVhfQlVJTERf
VElNRV9EQVRBX0xFTkdUSD4+VVRSSUVfU0hJRlRdOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgVU5l
d1RyaWUgVU5ld1RyaWU7CisKKy8qKgorICogQnVpbGQtdGltZSB0cmllIGNhbGxiYWNrIGZ1bmN0
aW9uLCB1c2VkIHdpdGggdXRyaWVfc2VyaWFsaXplKCkuCisgKiBUaGlzIGZ1bmN0aW9uIGNhbGN1
bGF0ZXMgYSBsZWFkIHN1cnJvZ2F0ZSdzIHZhbHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0
CisgKiBmcm9tIHRoZSAxMDI0IHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgW3N0YXJ0Li5zdGFy
dCsxMDI0WyAuCisgKiBJdCBpcyBVKzEwMDAwIDw9IHN0YXJ0IDw9IFUrMTBmYzAwIGFuZCAoc3Rh
cnQmMHgzZmYpPT0wLgorICoKKyAqIFRoZSBmb2xkaW5nIG9mZnNldCBpcyBwcm92aWRlZCBieSB0
aGUgY2FsbGVyLgorICogSXQgaXMgb2Zmc2V0PVVUUklFX0JNUF9JTkRFWF9MRU5HVEgrbipVVFJJ
RV9TVVJST0dBVEVfQkxPQ0tfQ09VTlQgd2l0aCBuPTAuLjEwMjMuCisgKiBJbnN0ZWFkIG9mIHRo
ZSBvZmZzZXQgaXRzZWxmLCBuIGNhbiBiZSBzdG9yZWQgaW4gMTAgYml0cyAtCisgKiBvciBmZXdl
ciBpZiBpdCBjYW4gYmUgYXNzdW1lZCB0aGF0IGZldyBsZWFkIHN1cnJvZ2F0ZXMgaGF2ZSBhc3Nv
Y2lhdGVkIGRhdGEuCisgKgorICogVGhlIHJldHVybmVkIHZhbHVlIG11c3QgYmUKKyAqIC0gbm90
IHplcm8gaWYgYW5kIG9ubHkgaWYgdGhlcmUgaXMgcmVsZXZhbnQgZGF0YQorICogICBmb3IgdGhl
IGNvcnJlc3BvbmRpbmcgMTAyNCBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzCisgKiAtIHN1Y2gg
dGhhdCBVVHJpZS5nZXRGb2xkaW5nT2Zmc2V0KFVOZXdUcmllR2V0Rm9sZGVkVmFsdWUoLi4uLCBv
ZmZzZXQpKT09b2Zmc2V0CisgKgorICogQHJldHVybiBhIGZvbGRlZCB2YWx1ZSwgb3IgMCBpZiB0
aGVyZSBpcyBubyByZWxldmFudCBkYXRhIGZvciB0aGUgbGVhZCBzdXJyb2dhdGUuCisgKi8KK3R5
cGVkZWYgdWludDMyX3QgVV9DQUxMQ09OVgorVU5ld1RyaWVHZXRGb2xkZWRWYWx1ZShVTmV3VHJp
ZSAqdHJpZSwgVUNoYXIzMiBzdGFydCwgaW50MzJfdCBvZmZzZXQpOworCisvKioKKyAqIE9wZW4g
YSBidWlsZC10aW1lIHRyaWUgc3RydWN0dXJlLgorICogVGhlIHNpemUgb2YgdGhlIGJ1aWxkLXRp
bWUgZGF0YSBhcnJheSBpcyBzcGVjaWZpZWQgdG8gYXZvaWQgYWxsb2NhdGluZyBhIGxhcmdlCisg
KiBhcnJheSBpbiBhbGwgY2FzZXMuIFRoZSBhcnJheSBpdHNlbGYgY2FuIGFsc28gYmUgcGFzc2Vk
IGluLgorICoKKyAqIEFsdGhvdWdoIHRoZSB0cmllIGlzIG5ldmVyIGZ1bGx5IGV4cGFuZGVkIHRv
IGEgbGluZWFyIGFycmF5LCBlc3BlY2lhbGx5IHdoZW4KKyAqIHV0cmllX3NldFJhbmdlMzIoKSBp
cyB1c2VkLCB0aGUgZGF0YSBhcnJheSBjb3VsZCBiZSBsYXJnZSBkdXJpbmcgYnVpbGQgdGltZS4K
KyAqIFRoZSBtYXhpbXVtIGxlbmd0aCBpcworICogVVRSSUVfTUFYX0JVSUxEX1RJTUVfREFUQV9M
RU5HVEg9MHgxMTAwMDArVVRSSUVfREFUQV9CTE9DS19MRU5HVEgrMHg0MDAuCisgKiAoTnVtYmVy
IG9mIFVuaWNvZGUgY29kZSBwb2ludHMgKyBvbmUgYWxsLWluaXRpYWwtdmFsdWUgYmxvY2sgKwor
ICogIHBvc3NpYmxlIGR1cGxpY2F0ZSBlbnRyaWVzIGZvciAxMDI0IGxlYWQgc3Vycm9nYXRlcy4p
CisgKiAoVVRSSUVfREFUQV9CTE9DS19MRU5HVEg8PTB4MjAwIGluIGFsbCBjYXNlcy4pCisgKgor
ICogQHBhcmFtIGZpbGxJbiBhIHBvaW50ZXIgdG8gYSBVTmV3VHJpZSBzdHJ1Y3R1cmUgdG8gYmUg
aW5pdGlhbGl6ZWQgKHdpbGwgbm90IGJlIHJlbGVhc2VkKSwgb3IKKyAqICAgICAgICAgICAgICAg
TlVMTCBpZiBvbmUgaXMgdG8gYmUgYWxsb2NhdGVkCisgKiBAcGFyYW0gYWxpYXNEYXRhIGEgcG9p
bnRlciB0byBhIGRhdGEgYXJyYXkgdG8gYmUgdXNlZCAod2lsbCBub3QgYmUgcmVsZWFzZWQpLCBv
cgorICogICAgICAgICAgICAgICAgICBOVUxMIGlmIG9uZSBpcyB0byBiZSBhbGxvY2F0ZWQKKyAq
IEBwYXJhbSBtYXhEYXRhTGVuZ3RoIHRoZSBjYXBhY2l0eSBvZiBhbGlhc0RhdGEgKGlmIG5vdCBO
VUxMKSBvcgorICogICAgICAgICAgICAgICAgICAgICAgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YSBh
cnJheSB0byBiZSBhbGxvY2F0ZWQKKyAqIEBwYXJhbSBpbml0aWFsVmFsdWUgdGhlIGluaXRpYWwg
dmFsdWUgdGhhdCBpcyBzZXQgZm9yIGFsbCBjb2RlIHBvaW50cworICogQHBhcmFtIGxlYWRVbml0
VmFsdWUgdGhlIHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gdGhhdCBkbyBu
b3QKKyAqICAgICAgICAgICAgICAgICAgICAgIGhhdmUgYXNzb2NpYXRlZCBzdXBwbGVtZW50YXJ5
IGRhdGEKKyAqIEBwYXJhbSBsYXRpbjFMaW5lYXIgYSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0
aGUgTGF0aW4tMSByYW5nZSBpcyB0byBiZSBhbGxvY2F0ZWQgYW5kCisgKiAgICAgICAgICAgICAg
ICAgICAgIGtlcHQgaW4gYSBsaW5lYXIsIGNvbnRpZ3VvdXMgcGFydCBvZiB0aGUgZGF0YSBhcnJh
eQorICogQHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIGluaXRpYWxpemVkIGZpbGxJbiBvciB0aGUg
YWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBuZXcgVU5ld1RyaWUKKyAqLworVV9DQVBJIFVOZXdU
cmllICogVV9FWFBPUlQyCit1dHJpZV9vcGVuKFVOZXdUcmllICpmaWxsSW4sCisgICAgICAgICAg
IHVpbnQzMl90ICphbGlhc0RhdGEsIGludDMyX3QgbWF4RGF0YUxlbmd0aCwKKyAgICAgICAgICAg
dWludDMyX3QgaW5pdGlhbFZhbHVlLCB1aW50MzJfdCBsZWFkVW5pdFZhbHVlLAorICAgICAgICAg
ICBVQm9vbCBsYXRpbjFMaW5lYXIpOworCisvKioKKyAqIENsb25lIGEgYnVpbGQtdGltZSB0cmll
IHN0cnVjdHVyZSB3aXRoIGFsbCBlbnRyaWVzLgorICoKKyAqIEBwYXJhbSBmaWxsSW4gbGlrZSBp
biB1dHJpZV9vcGVuKCkKKyAqIEBwYXJhbSBvdGhlciB0aGUgYnVpbGQtdGltZSB0cmllIHN0cnVj
dHVyZSB0byBjbG9uZQorICogQHBhcmFtIGFsaWFzRGF0YSBsaWtlIGluIHV0cmllX29wZW4oKSwK
KyAqICAgICAgICAgICAgICAgICAgdXNlZCBpZiBhbGlhc0RhdGFMZW5ndGg+PShjYXBhY2l0eSBv
ZiBvdGhlcidzIGRhdGEgYXJyYXkpCisgKiBAcGFyYW0gYWxpYXNEYXRhTGVuZ3RoIHRoZSBsZW5n
dGggb2YgYWxpYXNEYXRhCisgKiBAcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgaW5pdGlhbGl6ZWQg
ZmlsbEluIG9yIHRoZSBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkIG5ldyBVTmV3VHJpZQorICov
CitVX0NBUEkgVU5ld1RyaWUgKiBVX0VYUE9SVDIKK3V0cmllX2Nsb25lKFVOZXdUcmllICpmaWxs
SW4sIGNvbnN0IFVOZXdUcmllICpvdGhlciwgdWludDMyX3QgKmFsaWFzRGF0YSwgaW50MzJfdCBh
bGlhc0RhdGFMZW5ndGgpOworCisvKioKKyAqIENsb3NlIGEgYnVpbGQtdGltZSB0cmllIHN0cnVj
dHVyZSwgYW5kIHJlbGVhc2UgbWVtb3J5CisgKiB0aGF0IHdhcyBhbGxvY2F0ZWQgYnkgdXRyaWVf
b3BlbigpIG9yIHV0cmllX2Nsb25lKCkuCisgKgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRp
bWUgdHJpZQorICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3V0cmllX2Nsb3NlKFVOZXdUcmll
ICp0cmllKTsKKworLyoqCisgKiBHZXQgdGhlIGRhdGEgYXJyYXkgb2YgYSBidWlsZC10aW1lIHRy
aWUuCisgKiBUaGUgZGF0YSBtYXkgYmUgbW9kaWZpZWQsIGJ1dCBlbnRyaWVzIHRoYXQgYXJlIGVx
dWFsIGJlZm9yZQorICogbXVzdCBzdGlsbCBiZSBlcXVhbCBhZnRlciBtb2RpZmljYXRpb24uCisg
KgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQorICogQHBhcmFtIHBMZW5ndGgg
KG91dCkgYSBwb2ludGVyIHRvIGEgdmFyaWFibGUgdGhhdCByZWNlaXZlcyB0aGUgbnVtYmVyCisg
KiAgICAgICAgICAgICAgICBvZiBlbnRyaWVzIGluIHRoZSBkYXRhIGFycmF5CisgKiBAcmV0dXJu
IHRoZSBkYXRhIGFycmF5CisgKi8KK1VfQ0FQSSB1aW50MzJfdCAqIFVfRVhQT1JUMgordXRyaWVf
Z2V0RGF0YShVTmV3VHJpZSAqdHJpZSwgaW50MzJfdCAqcExlbmd0aCk7CisKKy8qKgorICogU2V0
IGEgdmFsdWUgZm9yIGEgY29kZSBwb2ludC4KKyAqCisgKiBAcGFyYW0gdHJpZSB0aGUgYnVpbGQt
dGltZSB0cmllCisgKiBAcGFyYW0gYyB0aGUgY29kZSBwb2ludAorICogQHBhcmFtIHZhbHVlIHRo
ZSB2YWx1ZQorICogQHJldHVybiBGQUxTRSBpZiBhIGZhaWx1cmUgb2NjdXJyZWQgKGlsbGVnYWwg
YXJndW1lbnQgb3IgZGF0YSBhcnJheSBvdmVycnVuKQorICovCitVX0NBUEkgVUJvb2wgVV9FWFBP
UlQyCit1dHJpZV9zZXQzMihVTmV3VHJpZSAqdHJpZSwgVUNoYXIzMiBjLCB1aW50MzJfdCB2YWx1
ZSk7CisKKy8qKgorICogR2V0IGEgdmFsdWUgZnJvbSBhIGNvZGUgcG9pbnQgYXMgc3RvcmVkIGlu
IHRoZSBidWlsZC10aW1lIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUg
dHJpZQorICogQHBhcmFtIGMgdGhlIGNvZGUgcG9pbnQKKyAqIEBwYXJhbSBwSW5CbG9ja1plcm8g
aWYgbm90IE5VTEwsIHRoZW4gKnBJbkJsb2NrWmVybyBpcyBzZXQgdG8gVFJVRQorICogICAgICAg
ICAgICAgICAgICAgICBpZmYgdGhlIHZhbHVlIGlzIHJldHJpZXZlZCBmcm9tIGJsb2NrIDA7Cisg
KiAgICAgICAgICAgICAgICAgICAgIGJsb2NrIDAgaXMgdGhlIGFsbC1pbml0aWFsLXZhbHVlIGlu
aXRpYWwgYmxvY2sKKyAqIEByZXR1cm4gdGhlIHZhbHVlCisgKi8KK1VfQ0FQSSB1aW50MzJfdCBV
X0VYUE9SVDIKK3V0cmllX2dldDMyKFVOZXdUcmllICp0cmllLCBVQ2hhcjMyIGMsIFVCb29sICpw
SW5CbG9ja1plcm8pOworCisvKioKKyAqIFNldCBhIHZhbHVlIGluIGEgcmFuZ2Ugb2YgY29kZSBw
b2ludHMgW3N0YXJ0Li5saW1pdFsuCisgKiBBbGwgY29kZSBwb2ludHMgYyB3aXRoIHN0YXJ0PD1j
PGxpbWl0IHdpbGwgZ2V0IHRoZSB2YWx1ZSBpZgorICogb3ZlcndyaXRlIGlzIFRSVUUgb3IgaWYg
dGhlIG9sZCB2YWx1ZSBpcyAwLgorICoKKyAqIEBwYXJhbSB0cmllIHRoZSBidWlsZC10aW1lIHRy
aWUKKyAqIEBwYXJhbSBzdGFydCB0aGUgZmlyc3QgY29kZSBwb2ludCB0byBnZXQgdGhlIHZhbHVl
CisgKiBAcGFyYW0gbGltaXQgb25lIHBhc3QgdGhlIGxhc3QgY29kZSBwb2ludCB0byBnZXQgdGhl
IHZhbHVlCisgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlCisgKiBAcGFyYW0gb3ZlcndyaXRlIGZs
YWcgZm9yIHdoZXRoZXIgb2xkIG5vbi1pbml0aWFsIHZhbHVlcyBhcmUgdG8gYmUgb3ZlcndyaXR0
ZW4KKyAqIEByZXR1cm4gRkFMU0UgaWYgYSBmYWlsdXJlIG9jY3VycmVkIChpbGxlZ2FsIGFyZ3Vt
ZW50IG9yIGRhdGEgYXJyYXkgb3ZlcnJ1bikKKyAqLworVV9DQVBJIFVCb29sIFVfRVhQT1JUMgor
dXRyaWVfc2V0UmFuZ2UzMihVTmV3VHJpZSAqdHJpZSwgVUNoYXIzMiBzdGFydCwgVUNoYXIzMiBs
aW1pdCwgdWludDMyX3QgdmFsdWUsIFVCb29sIG92ZXJ3cml0ZSk7CisKKy8qKgorICogQ29tcGFj
dCB0aGUgYnVpbGQtdGltZSB0cmllIGFmdGVyIGFsbCB2YWx1ZXMgYXJlIHNldCwgYW5kIHRoZW4K
KyAqIHNlcmlhbGl6ZSBpdCBpbnRvIDMyLWJpdCBhbGlnbmVkIG1lbW9yeS4KKyAqCisgKiBBZnRl
ciB0aGlzLCB0aGUgdHJpZSBjYW4gb25seSBiZSBzZXJpemFsaXplZCBhZ2FpbiBhbmQvb3IgY2xv
c2VkOworICogbm8gZnVydGhlciB2YWx1ZXMgY2FuIGJlIGFkZGVkLgorICoKKyAqIEBzZWUgdXRy
aWVfdW5zZXJpYWxpemUoKQorICoKKyAqIEBwYXJhbSB0cmllIHRoZSBidWlsZC10aW1lIHRyaWUK
KyAqIEBwYXJhbSBkYXRhIGEgcG9pbnRlciB0byAzMi1iaXQtYWxpZ25lZCBtZW1vcnkgZm9yIHRo
ZSB0cmllIGRhdGEKKyAqIEBwYXJhbSBjYXBhY2l0eSB0aGUgbnVtYmVyIG9mIGJ5dGVzIGF2YWls
YWJsZSBhdCBkYXRhCisgKiBAcGFyYW0gZ2V0Rm9sZGVkVmFsdWUgYSBjYWxsYmFjayBmdW5jdGlv
biB0aGF0IGNhbGN1bGF0ZXMgdGhlIHZhbHVlIGZvcgorICogICAgICAgICAgICAgICAgICAgICAg
IGEgbGVhZCBzdXJyb2dhdGUgZnJvbSBhbGwgb2YgaXRzIHN1cHBsZW1lbnRhcnkgY29kZSBwb2lu
dHMKKyAqICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhlIGZvbGRpbmcgb2Zmc2V0OworICog
ICAgICAgICAgICAgICAgICAgICAgIGlmIE5VTEwsIHRoZW4gYSBkZWZhdWx0IGZ1bmN0aW9uIGlz
IHVzZWQgd2hpY2ggcmV0dXJucyBqdXN0CisgKiAgICAgICAgICAgICAgICAgICAgICAgdGhlIGlu
cHV0IG9mZnNldCB3aGVuIHRoZXJlIGFyZSBhbnkgbm9uLWluaXRpYWwtdmFsdWUgZW50cmllcwor
ICogQHBhcmFtIHJlZHVjZVRvMTZCaXRzIGZsYWcgZm9yIHdoZXRoZXIgdGhlIHZhbHVlcyBhcmUg
dG8gYmUgcmVkdWNlZCB0byBhCisgKiAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggb2YgMTYg
Yml0cyBmb3Igc2VyaWFsaXphdGlvbiBhbmQgcnVudGltZQorICogQHBhcmFtIHBFcnJvckNvZGUg
YSBVRXJyb3JDb2RlIGFyZ3VtZW50OyBhbW9uZyBvdGhlciBwb3NzaWJsZSBlcnJvciBjb2RlczoK
KyAqIC0gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IgaWYgdGhlIGRhdGEgc3RvcmFnZSBibG9jayBp
cyB0b28gc21hbGwgZm9yIHNlcmlhbGl6YXRpb24KKyAqIC0gVV9NRU1PUllfQUxMT0NBVElPTl9F
UlJPUiBpZiB0aGUgdHJpZSBkYXRhIGFycmF5IGlzIHRvbyBzbWFsbAorICogLSBVX0lOREVYX09V
VE9GQk9VTkRTX0VSUk9SIGlmIHRoZSBpbmRleCBvciBkYXRhIGFycmF5cyBhcmUgdG9vIGxvbmcg
YWZ0ZXIgY29tcGFjdGlvbiBmb3Igc2VyaWFsaXphdGlvbgorICoKKyAqIEByZXR1cm4gdGhlIG51
bWJlciBvZiBieXRlcyB3cml0dGVuIGZvciB0aGUgdHJpZQorICovCitVX0NBUEkgaW50MzJfdCBV
X0VYUE9SVDIKK3V0cmllX3NlcmlhbGl6ZShVTmV3VHJpZSAqdHJpZSwgdm9pZCAqZGF0YSwgaW50
MzJfdCBjYXBhY2l0eSwKKyAgICAgICAgICAgICAgICBVTmV3VHJpZUdldEZvbGRlZFZhbHVlICpn
ZXRGb2xkZWRWYWx1ZSwKKyAgICAgICAgICAgICAgICBVQm9vbCByZWR1Y2VUbzE2Qml0cywKKyAg
ICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBTd2FwIGEg
c2VyaWFsaXplZCBVVHJpZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0NBUEkgaW50MzJfdCBVX0VY
UE9SVDIKK3V0cmllX3N3YXAoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgY29u
c3Qgdm9pZCAqaW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAg
ICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qIHNlcmlhbGl6YXRpb24gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisK
Ky8qKgorICogVHJpZSBkYXRhIHN0cnVjdHVyZSBpbiBzZXJpYWxpemVkIGZvcm06CisgKgorICog
VVRyaWVIZWFkZXIgaGVhZGVyOworICogdWludDE2X3QgaW5kZXhbaGVhZGVyLmluZGV4TGVuZ3Ro
XTsKKyAqIHVpbnQxNl90IGRhdGFbaGVhZGVyLmRhdGFMZW5ndGhdOworICogQGludGVybmFsCisg
Ki8KK3R5cGVkZWYgc3RydWN0IFVUcmllSGVhZGVyIHsKKyAgICAvKiogIlRyaWUiIGluIGJpZy1l
bmRpYW4gVVMtQVNDSUkgKDB4NTQ3MjY5NjUpICovCisgICAgdWludDMyX3Qgc2lnbmF0dXJlOwor
CisgICAgLyoqCisgICAgICogb3B0aW9ucyBiaXQgZmllbGQ6CisgICAgICogICAgIDkgICAgMT1M
YXRpbi0xIGRhdGEgaXMgc3RvcmVkIGxpbmVhcmx5IGF0IGRhdGErVVRSSUVfREFUQV9CTE9DS19M
RU5HVEgKKyAgICAgKiAgICAgOCAgICAwPTE2LWJpdCBkYXRhLCAxPTMyLWJpdCBkYXRhCisgICAg
ICogIDcuLjQgICAgVVRSSUVfSU5ERVhfU0hJRlQgICAvLyAwLi5VVFJJRV9TSElGVAorICAgICAq
ICAzLi4wICAgIFVUUklFX1NISUZUICAgICAgICAgLy8gMS4uOQorICAgICAqLworICAgIHVpbnQz
Ml90IG9wdGlvbnM7CisKKyAgICAvKiogaW5kZXhMZW5ndGggaXMgYSBtdWx0aXBsZSBvZiBVVFJJ
RV9TVVJST0dBVEVfQkxPQ0tfQ09VTlQgKi8KKyAgICBpbnQzMl90IGluZGV4TGVuZ3RoOworCisg
ICAgLyoqIGRhdGFMZW5ndGg+PVVUUklFX0RBVEFfQkxPQ0tfTEVOR1RIICovCisgICAgaW50MzJf
dCBkYXRhTGVuZ3RoOworfSBVVHJpZUhlYWRlcjsKKworLyoqCisgKiBDb25zdGFudHMgZm9yIHVz
ZSB3aXRoIFVUcmllSGVhZGVyLm9wdGlvbnMuCisgKiBAaW50ZXJuYWwKKyAqLworZW51bSB7Cisg
ICAgLyoqIE1hc2sgdG8gZ2V0IHRoZSBVVFJJRV9TSElGVCB2YWx1ZSBmcm9tIG9wdGlvbnMuICov
CisgICAgVVRSSUVfT1BUSU9OU19TSElGVF9NQVNLPTB4ZiwKKworICAgIC8qKiBTaGlmdCBvcHRp
b25zIHJpZ2h0IHRoaXMgbXVjaCB0byBnZXQgdGhlIFVUUklFX0lOREVYX1NISUZUIHZhbHVlLiAq
LworICAgIFVUUklFX09QVElPTlNfSU5ERVhfU0hJRlQ9NCwKKworICAgIC8qKiBJZiBzZXQsIHRo
ZW4gdGhlIGRhdGEgKHN0YWdlIDIpIGFycmF5IGlzIDMyIGJpdHMgd2lkZS4gKi8KKyAgICBVVFJJ
RV9PUFRJT05TX0RBVEFfSVNfMzJfQklUPTB4MTAwLAorCisgICAgLyoqCisgICAgICogSWYgc2V0
LCB0aGVuIExhdGluLTEgZGF0YSAoZm9yIFUrMDAwMC4uVSswMGZmKSBpcyBzdG9yZWQgaW4gdGhl
IGRhdGEgKHN0YWdlIDIpIGFycmF5CisgICAgICogYXMgYSBzaW1wbGUsIGxpbmVhciBhcnJheSBh
dCBkYXRhK1VUUklFX0RBVEFfQkxPQ0tfTEVOR1RILgorICAgICAqLworICAgIFVUUklFX09QVElP
TlNfTEFUSU4xX0lTX0xJTkVBUj0weDIwMAorfTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IDMxYTNmMDJiM2Vj
YThlMDUzZGQ1MjUyNTA1MTI1MzVmZTEwYmJiM2IuLjE4NGM0MDk3ODc1N2ExOWU0Y2Q5NDliZWI1
OTE2NmQzOTdlODdhMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFr
SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
Y3BwCkBAIC0yOSw5ICsyOSw2IEBACiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKLS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0dGVy
IG5hbWUKLSNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8
IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MTAwKSkKLQogbmFtZXNwYWNlIFdURiB7CiAKIC8vIEl0ZXJhdG9yIGluaXRpYWxpemF0aW9uCkBA
IC01OSw2ICs1NiwxMiBAQCBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIGluaXRpYWxpemVJdGVy
YXRvcldpdGhSdWxlcyhjb25zdCBjaGFyKiBicmVha1J1bGVzKQogCiAjZW5kaWYKIAorI2lmICFQ
TEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRl
SXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCBydWxlU2V0KQoreworICAgIHJldHVy
biBudWxscHRyOworfQorI2VuZGlmCiAKIC8vIEl0ZXJhdG9yIHRleHQgc2V0dGluZwogCkBAIC0x
NjIsMTM1ICsxNjUsMjAgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRv
cihTdHJpbmdWaWV3IHN0cmluZykKICAgICByZXR1cm4gc2V0VGV4dEZvckl0ZXJhdG9yKCpzdGF0
aWNTZW50ZW5jZUJyZWFrSXRlcmF0b3IsIHN0cmluZyk7CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9T
KQorc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBjcmVhdGVDdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
V2l0aEZhbGxiYWNrKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIGlmIChhdXRvKiBpdGVyYXRv
ciA9IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVt
ZW50KSkKKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yOworICAgIHJldHVybiBpbml0aWFsaXplSXRl
cmF0b3JXaXRoUnVsZXMoY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzKTsKK30KKyNlbmRpZgor
CiBUZXh0QnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcihTdHJpbmdWaWV3IHN0
cmluZykKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIC8vIFRoaXMgcnVsZSBzZXQgaXMgYmFz
ZWQgb24gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NwotICAgIC8vIDxo
dHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01
Ny0xL3NvdXJjZS9kYXRhL2Jya2l0ci8+LgotICAgIC8vIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBm
cm9tIHRoZSBvcmlnaW5hbCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6Ci0gICAgLy8gKiBSZXBsYWNl
ZCAnW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBTcGFjaW5nTWFya31dJyB3aXRoICdbXHB7
R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya30gLSAkRXh0ZW5kXScgZm9yIElDVSAzLjgg
b3IgZWFybGllcjsKLSAgICAvLyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29y
IGZyb20gbW92aW5nIGFmdGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKLSAgICAv
LyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciB2
aXJhbWEgc2lnbnMgb2YgSW5kaWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwg
YW5kOwotICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92
aW5nIGJlZm9yZSBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJrcy4KLSAg
ICAvLyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4KLSAgICBz
dGF0aWMgY29uc3QgY2hhcioga1J1bGVzID0KLSAgICAgICAgIiRDUiAgICAgID0gW1xccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gQ1J9XTsiCi0gICAgICAgICIkTEYgICAgICA9IFtcXHB7R3Jh
cGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExGfV07IgotICAgICAgICAiJENvbnRyb2wgPSBbXFxwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07IgotICAgICAgICAiJFZvaWNlTWFya3Mg
PSBbXFx1RkY5RVxcdUZGOUZdOyIgLy8gSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FuYSB2b2lj
ZWQgbWFya3MKLSAgICAgICAgIiRFeHRlbmQgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gRXh0ZW5kfSAkVm9pY2VNYXJrcyAtIFtcXHUwRTMwIFxcdTBFMzIgXFx1MEU0NSBcXHUwRUIw
IFxcdTBFQjJdXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgPSBbW1xccHtHZW5lcmFsX0NhdGVn
b3J5ID0gU3BhY2luZyBNYXJrfV0gLSAkRXh0ZW5kXTsiCi0gICAgICAgICIkTCAgICAgICA9IFtc
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsiCi0gICAgICAgICIkViAgICAgICA9IFtc
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFZ9XTsiCi0gICAgICAgICIkVCAgICAgICA9IFtc
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFR9XTsiCi0gICAgICAgICIkTFYgICAgICA9IFtc
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07IgotICAgICAgICAiJExWVCAgICAgPSBb
XFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVlR9XTsiCi0gICAgICAgICIkSGluMCAgICA9
IFtcXHUwOTA1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAg
ICAgIiRIaW5WICAgID0gXFx1MDk0RDsiIC8vIERldmFuYWdhcmkgU2lnbiBWaXJhbWEKLSAgICAg
ICAgIiRIaW4xICAgID0gW1xcdTA5MTUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJpIExldHRlciBL
YSwuLi4sSGEKLSAgICAgICAgIiRCZW4wICAgID0gW1xcdTA5ODUtXFx1MDlCOV07IiAvLyBCZW5n
YWxpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEJlblYgICAgPSBcXHUwOUNEOyIgLy8gQmVu
Z2FsaSBTaWduIFZpcmFtYQotICAgICAgICAiJEJlbjEgICAgPSBbXFx1MDk5NS1cXHUwOUI5XTsi
IC8vIEJlbmdhbGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJFBhbjAgICAgPSBbXFx1MEEw
NS1cXHUwQTM5XTsiIC8vIEd1cm11a2hpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJFBhblYg
ICAgPSBcXHUwQTREOyIgLy8gR3VybXVraGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRQYW4xICAg
ID0gW1xcdTBBMTUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAg
ICAgICIkR3VqMCAgICA9IFtcXHUwQTg1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkR3VqViAgICA9IFxcdTBBQ0Q7IiAvLyBHdWphcmF0aSBTaWduIFZp
cmFtYQotICAgICAgICAiJEd1ajEgICAgPSBbXFx1MEE5NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRp
IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRPcmkwICAgID0gW1xcdTBCMDUtXFx1MEIzOV07
IiAvLyBPcml5YSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRPcmlWICAgID0gXFx1MEI0RDsi
IC8vIE9yaXlhIFNpZ24gVmlyYW1hCi0gICAgICAgICIkT3JpMSAgICA9IFtcXHUwQjE1LVxcdTBC
MzldOyIgLy8gT3JpeWEgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJFRlbDAgICAgPSBbXFx1
MEMwNS1cXHUwQzM5XTsiIC8vIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRUZWxW
ICAgID0gXFx1MEM0RDsiIC8vIFRlbHVndSBTaWduIFZpcmFtYQotICAgICAgICAiJFRlbDEgICAg
PSBbXFx1MEMxNC1cXHUwQzM5XTsiIC8vIFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAg
ICIkS2FuMCAgICA9IFtcXHUwQzg1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4s
SGEKLSAgICAgICAgIiRLYW5WICAgID0gXFx1MENDRDsiIC8vIEthbm5hZGEgU2lnbiBWaXJhbWEK
LSAgICAgICAgIiRLYW4xICAgID0gW1xcdTBDOTUtXFx1MENCOV07IiAvLyBLYW5uYWRhIExldHRl
ciBBLC4uLixIYQotICAgICAgICAiJE1hbDAgICAgPSBbXFx1MEQwNS1cXHUwRDM5XTsiIC8vIE1h
bGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWxWICAgID0gXFx1MEQ0RDsiIC8v
IE1hbGF5YWxhbSBTaWduIFZpcmFtYQotICAgICAgICAiJE1hbDEgICAgPSBbXFx1MEQxNS1cXHUw
RDM5XTsiIC8vIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRSSSAgICAgID0g
W1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsiIC8vIEVtb2ppIHJlZ2lvbmFsIGluZGljYXRvcnMK
LSAgICAgICAgIiRaV0ogICAgID0gXFx1MjAwRDsiIC8vIFplcm8gd2lkdGggam9pbmVyCi0gICAg
ICAgICIkRW1vamlWYXIgPSBbXFx1RkUwRl07IiAvLyBFbW9qaS1zdHlsZSB2YXJpYXRpb24gc2Vs
ZWN0b3IKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFbW9qaUZvclNl
cXMgPSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAx
RjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUw
MDAxRjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBc
XFUwMDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4
MiBcXFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAx
RjVFOCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUw
MDAxRjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNl07IiAvLyBFbW9qaSB0
aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMg
PSBbXFx1MjYxRCBcXHUyNkY5IFxcdTI3MEEtXFx1MjcwRCBcXFUwMDAxRjM4NSBcXFUwMDAxRjND
My1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQSBcXFUwMDAxRjNDQiBcXFUwMDAxRjQ0Mi1cXFUwMDAx
RjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUw
MDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBc
XFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU3NSBcXFUwMDAxRjU5
MCBcXFUwMDAxRjU5NSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAx
RjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUw
MDAxRjZDMCBcXFUwMDAxRjkxOF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1v
ZGlmaWVycwotI2Vsc2UKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUwMDAx
RjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRl
IGluIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUy
NzBBLVxcdTI3MEMgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYz
QzcgXFxVMDAwMUYzQ0EgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAw
MUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxV
MDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcg
XFxVMDAwMUY0QUEgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2
NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAw
MUY2QzBdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbmRp
ZgotICAgICAgICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07IiAvLyBG
aXR6cGF0cmljayBtb2RpZmllcnMKLSAgICAgICAgIiEhY2hhaW47IgotI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAotICAgICAgICAiISFSSU5vQ2hhaW47IgotI2VuZGlmCi0gICAgICAgICIh
IWZvcndhcmQ7IgotICAgICAgICAiJENSICRMRjsiCi0gICAgICAgICIkTCAoJEwgfCAkViB8ICRM
ViB8ICRMVlQpOyIKLSAgICAgICAgIigkTFYgfCAkVikgKCRWIHwgJFQpOyIKLSAgICAgICAgIigk
TFZUIHwgJFQpICRUOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRS
SSAkUkkgJEV4dGVuZCogLyAkUkk7IgotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKjsiCi0gICAg
ICAgICJbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAk
Q1IgJExGXSAkU3BhY2luZ01hcms7IgotI2Vsc2UKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRM
Rl0gJEV4dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsi
Ci0gICAgICAgICIkUkkgJFJJIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7IgotI2VuZGlmCi0g
ICAgICAgICIkSGluMCAkSGluViAkSGluMTsiIC8vIERldmFuYWdhcmkgVmlyYW1hIChmb3J3YXJk
KQotICAgICAgICAiJEJlbjAgJEJlblYgJEJlbjE7IiAvLyBCZW5nYWxpIFZpcmFtYSAoZm9yd2Fy
ZCkKLSAgICAgICAgIiRQYW4wICRQYW5WICRQYW4xOyIgLy8gR3VybXVraGkgVmlyYW1hIChmb3J3
YXJkKQotICAgICAgICAiJEd1ajAgJEd1alYgJEd1ajE7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGZv
cndhcmQpCi0gICAgICAgICIkT3JpMCAkT3JpViAkT3JpMTsiIC8vIE9yaXlhIFZpcmFtYSAoZm9y
d2FyZCkKLSAgICAgICAgIiRUZWwwICRUZWxWICRUZWwxOyIgLy8gVGVsdWd1IFZpcmFtYSAoZm9y
d2FyZCkKLSAgICAgICAgIiRLYW4wICRLYW5WICRLYW4xOyIgLy8gS2FubmFkYSBWaXJhbWEgKGZv
cndhcmQpCi0gICAgICAgICIkTWFsMCAkTWFsViAkTWFsMTsiIC8vIE1hbGF5YWxhbSBWaXJhbWEg
KGZvcndhcmQpCi0gICAgICAgICIkWldKICRFbW9qaUZvclNlcXM7IiAvLyBEb24ndCBicmVhayBp
biBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzICRFbW9qaVZhcj8g
JEVtb2ppTW9kczsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3Np
Ymx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKLSAg
ICAgICAgIiEhcmV2ZXJzZTsiCi0gICAgICAgICIkTEYgJENSOyIKLSAgICAgICAgIigkTCB8ICRW
IHwgJExWIHwgJExWVCkgJEw7IgotICAgICAgICAiKCRWIHwgJFQpICgkTFYgfCAkVik7IgotICAg
ICAgICAiJFQgKCRMVlQgfCAkVCk7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAg
ICAgICAiJEV4dGVuZCogJFJJICRSSSAvICRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4
dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExG
XTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0jZWxzZQot
ICAgICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNw
YWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFJJICRSSSAvICRSSSAk
Ukk7IgotICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4xICRIaW5WICRI
aW4wOyIgLy8gRGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEJlbjEgJEJl
blYgJEJlbjA7IiAvLyBCZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkUGFuMSAk
UGFuViAkUGFuMDsiIC8vIEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkR3Vq
MSAkR3VqViAkR3VqMDsiIC8vIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIk
T3JpMSAkT3JpViAkT3JpMDsiIC8vIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAg
ICIkVGVsMSAkVGVsViAkVGVsMDsiIC8vIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAg
ICAiJEthbjEgJEthblYgJEthbjA7IiAvLyBLYW5uYWRhIFZpcmFtYSAoYmFja3dhcmQpCi0gICAg
ICAgICIkTWFsMSAkTWFsViAkTWFsMDsiIC8vIE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3YXJkKQot
ICAgICAgICAiJEVtb2ppRm9yU2VxcyAkWldKOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1vamkgWldK
IHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7
IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZh
cmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0jaWYgQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgICAgICIkUkkg
JFJJKzsiCi0gICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOyIK
LSAgICAgICAgIiEhc2FmZV9mb3J3YXJkOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAg
IiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IjsKKyAgICBzdGF0aWMgVGV4
dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBjcmVhdGVDdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKHN0cmluZyk7CiAjZWxzZQotICAgICAgICAi
WyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIkRW1vamlG
b3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyIKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNl
OyIKLSAgICAgICAgIiEhc2FmZV9mb3J3YXJkOyI7Ci0jZW5kaWYKLSAgICBzdGF0aWMgVGV4dEJy
ZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRl
cmF0b3JXaXRoUnVsZXMoa1J1bGVzKTsKLSNlbHNlIC8vIFBMQVRGT1JNKElPUykKICAgICAvLyBV
c2UgdGhlIHNwZWNpYWwgVGhhaSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgZm9yIGFsbCBsb2Nh
bGVzCiAgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yKFVCUktfQ0hBUkFDVEVSLCAidGgiKTsKICNlbmRp
ZiAvLyAhUExBVEZPUk0oSU9TKQpAQCAtMzE3LDQ0MiArMjA1LDIwIEBAIHZvaWQgcmVsZWFzZUxp
bmVCcmVha0l0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKICAgICBMaW5lQnJl
YWtJdGVyYXRvclBvb2w6OnNoYXJlZFBvb2woKS5wdXQoaXRlcmF0b3IpOwogfQogCi1zdGF0aWMg
Y29uc3QgY2hhciogdWF4MTRQcm9sb2d1ZSA9Ci0gICAgIiEhY2hhaW47IgotICAgICIhIUxCQ01O
b0NoYWluOyIKLSAgICAiISFsb29rQWhlYWRIYXJkQnJlYWs7IjsKLQotc3RhdGljIGNvbnN0IGNo
YXIqIHVheDE0QXNzaWdubWVudHNCZWZvcmUgPQotICAgIC8vIGV4cGxpY2l0bHkgZW51bWVyYXRl
ICRDSiBzaW5jZSBJQ1UgdmVyc2lvbnMgcHJpb3IgdG8gNDkgZG9uJ3Qgc3VwcG9ydCA6TGluZUJy
ZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6Ci0gICAgIiRDSiA9IFsiCi0jaWYgKFVf
SUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+
PSA5KQotICAgICI6TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6IgotI2Vs
c2UKLSAgICAiXFx1MzA0MVxcdTMwNDNcXHUzMDQ1XFx1MzA0N1xcdTMwNDlcXHUzMDYzXFx1MzA4
M1xcdTMwODVcXHUzMDg3XFx1MzA4RVxcdTMwOTVcXHUzMDk2XFx1MzBBMVxcdTMwQTNcXHUzMEE1
XFx1MzBBNyIKLSAgICAiXFx1MzBBOVxcdTMwQzNcXHUzMEUzXFx1MzBFNVxcdTMwRTdcXHUzMEVF
XFx1MzBGNVxcdTMwRjZcXHUzMEZDIgotICAgICJcXHUzMUYwXFx1MzFGMVxcdTMxRjJcXHUzMUYz
XFx1MzFGNFxcdTMxRjVcXHUzMUY2XFx1MzFGN1xcdTMxRjhcXHUzMUY5XFx1MzFGQVxcdTMxRkJc
XHUzMUZDXFx1MzFGRFxcdTMxRkVcXHUzMUZGIgotICAgICJcXHVGRjY3XFx1RkY2OFxcdUZGNjlc
XHVGRjZBXFx1RkY2QlxcdUZGNkNcXHVGRjZEXFx1RkY2RVxcdUZGNkZcXHVGRjcwIgotI2VuZGlm
Ci0gICAgIl07IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21M
b29zZUNKSyA9Ci0gICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAgICAiJEVYX1NV
QiA9IFtcXHUwMDIxXFx1MDAzRlxcdUZGMDFcXHVGRjFGXTsiCi0gICAgIiRJRF9TVUIgPSAnJzsi
Ci0gICAgIiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAgICAiJElTX1NVQiA9IFtcXHUw
MDNBXFx1MDAzQl07IgotICAgICIkTlNfU1VCID0gW1xcdTIwM0NcXHUyMDQ3XFx1MjA0OFxcdTIw
NDlcXHUzMDA1XFx1MzAxQ1xcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwQTBcXHUzMEZCXFx1MzBG
RFxcdTMwRkVcXHVGRjFBXFx1RkYxQlxcdUZGNjVdOyIKLSAgICAiJFBPX1NVQiA9IFtcXHUwMDI1
XFx1MDBBMlxcdTAwQjBcXHUyMDMwXFx1MjAzMlxcdTIwMzNcXHUyMTAzXFx1RkYwNVxcdUZGRTBd
OyIKLSAgICAiJFBSX1NVQiA9IFtcXHUwMDI0XFx1MDBBM1xcdTAwQTVcXHUyMEFDXFx1MjExNlxc
dUZGMDRcXHVGRkUxXFx1RkZFNV07IgotICAgICIkSURfQUREID0gWyRDSiAkQkFfU1VCICRFWF9T
VUIgJElOX1NVQiAkSVNfU1VCICROU19TVUIgJFBPX1NVQiAkUFJfU1VCXTsiCi0gICAgIiROU19B
REQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxv
b3NlTm9uQ0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAg
ICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAg
ICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gW1xcdTMwMDVcXHUzMDNCXFx1MzA5RFxc
dTMwOUVcXHUzMEZEXFx1MzBGRV07IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VC
ID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJdOyIKLSAgICAiJE5T
X0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9t
Tm9ybWFsQ0pLID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAgICIkRVhf
U1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAg
ICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gW1xcdTMwMUNcXHUzMEEwXTsiCi0gICAg
IiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENK
ICRCQV9TVUIgJE5TX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0
IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxOb25DSksgPQotICAgICIkQkFfU1VC
ID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIk
SU5fU1VCID0gJyc7IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gJyc7Igot
ICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0g
WyRDSl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0
QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIk
RVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gJyc7Igot
ICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gJyc7IgotICAgICIkUE9fU1VCID0g
Jyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gJyc7IgotICAgICIkTlNf
QUREID0gWyRDSl07IjsKLQotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9u
Q0pLICAgICAgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSwotI2RlZmluZSB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tRGVmYXVsdENKSyAgICAgICAgdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5v
cm1hbENKSwotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNKSyAgICAg
dWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSwotCi1zdGF0aWMgY29uc3QgY2hhciog
dWF4MTRBc3NpZ25tZW50c0FmdGVyID0KLSAgICAiJEFJID0gWzpMaW5lQnJlYWsgPSBBbWJpZ3Vv
dXM6XTsiCi0gICAgIiRBTCA9IFs6TGluZUJyZWFrID0gQWxwaGFiZXRpYzpdOyIKLSAgICAiJEJB
ID0gW1s6TGluZUJyZWFrID0gQnJlYWtfQWZ0ZXI6XSAtICRCQV9TVUJdOyIKLSAgICAiJEJCID0g
WzpMaW5lQnJlYWsgPSBCcmVha19CZWZvcmU6XTsiCi0gICAgIiRCSyA9IFs6TGluZUJyZWFrID0g
TWFuZGF0b3J5X0JyZWFrOl07IgotICAgICIkQjIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JvdGg6
XTsiCi0gICAgIiRDQiA9IFs6TGluZUJyZWFrID0gQ29udGluZ2VudF9CcmVhazpdOyIKLSAgICAi
JENMID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QdW5jdHVhdGlvbjpdOyIKLSAgICAiJENNID0gWzpM
aW5lQnJlYWsgPSBDb21iaW5pbmdfTWFyazpdOyIKLSAgICAiJENQID0gWzpMaW5lQnJlYWsgPSBD
bG9zZV9QYXJlbnRoZXNpczpdOyIKLSAgICAiJENSID0gWzpMaW5lQnJlYWsgPSBDYXJyaWFnZV9S
ZXR1cm46XTsiCi0gICAgIiRFWCA9IFtbOkxpbmVCcmVhayA9IEV4Y2xhbWF0aW9uOl0gLSAkRVhf
U1VCXTsiCi0gICAgIiRHTCA9IFs6TGluZUJyZWFrID0gR2x1ZTpdOyIKLSNpZiAoVV9JQ1VfVkVS
U0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpCi0g
ICAgIiRITCA9IFs6TGluZUJyZWFrID0gSGVicmV3X0xldHRlcjpdOyIKLSNlbHNlCi0gICAgIiRI
TCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07IgotI2VuZGlmCi0gICAgIiRIWSA9IFs6TGlu
ZUJyZWFrID0gSHlwaGVuOl07IgotICAgICIkSDIgPSBbOkxpbmVCcmVhayA9IEgyOl07IgotICAg
ICIkSDMgPSBbOkxpbmVCcmVhayA9IEgzOl07IgotICAgICIkSUQgPSBbW1tbOkxpbmVCcmVhayA9
IElkZW9ncmFwaGljOl0gLSAkQ0pdICRJRF9BRERdIC0gJElEX1NVQl07IgotICAgICIkSU4gPSBb
WzpMaW5lQnJlYWsgPSBJbnNlcGFyYWJsZTpdIC0gJElOX1NVQl07IgotICAgICIkSVMgPSBbWzpM
aW5lQnJlYWsgPSBJbmZpeF9OdW1lcmljOl0gLSAkSVNfU1VCXTsiCi0gICAgIiRKTCA9IFs6TGlu
ZUJyZWFrID0gSkw6XTsiCi0gICAgIiRKViA9IFs6TGluZUJyZWFrID0gSlY6XTsiCi0gICAgIiRK
VCA9IFs6TGluZUJyZWFrID0gSlQ6XTsiCi0gICAgIiRMRiA9IFs6TGluZUJyZWFrID0gTGluZV9G
ZWVkOl07IgotICAgICIkTkwgPSBbOkxpbmVCcmVhayA9IE5leHRfTGluZTpdOyIKLSAgICAiJE5T
ID0gW1tbWzpMaW5lQnJlYWsgPSBOb25zdGFydGVyOl0gLSAkQ0pdICROU19BRERdIC0gJE5TX1NV
Ql07IgotICAgICIkTlUgPSBbOkxpbmVCcmVhayA9IE51bWVyaWM6XTsiCi0gICAgIiRPUCA9IFs6
TGluZUJyZWFrID0gT3Blbl9QdW5jdHVhdGlvbjpdOyIKLSAgICAiJFBPID0gW1s6TGluZUJyZWFr
ID0gUG9zdGZpeF9OdW1lcmljOl0gLSAkUE9fU1VCXTsiCi0gICAgIiRQUiA9IFtbOkxpbmVCcmVh
ayA9IFByZWZpeF9OdW1lcmljOl0gLSAkUFJfU1VCXTsiCi0gICAgIiRRVSA9IFs6TGluZUJyZWFr
ID0gUXVvdGF0aW9uOl07IgotICAgICIkUkkgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIK
LSAgICAiJFNBID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsiCi0gICAgIiRTRyA9
IFs6TGluZUJyZWFrID0gU3Vycm9nYXRlOl07IgotICAgICIkU1AgPSBbOkxpbmVCcmVhayA9IFNw
YWNlOl07IgotICAgICIkU1kgPSBbOkxpbmVCcmVhayA9IEJyZWFrX1N5bWJvbHM6XTsiCi0gICAg
IiRXSiA9IFs6TGluZUJyZWFrID0gV29yZF9Kb2luZXI6XTsiCi0gICAgIiRYWCA9IFs6TGluZUJy
ZWFrID0gVW5rbm93bjpdOyIKLSAgICAiJFpXID0gWzpMaW5lQnJlYWsgPSBaV1NwYWNlOl07Igot
ICAgICIkWldKID0gXFx1MjAwRDsiCi0gICAgIiRFbW9qaVZhciA9IFxcdUZFMEY7IgotI2lmIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1
MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQg
XFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0
NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAw
MUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxV
MDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUt
XFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2
QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjZdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBp
biBaV0ogc2VxdWVuY2VzCi0gICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNkY5IFxc
dTI3MEEtXFx1MjcwRCBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAx
RjNDQSBcXFUwMDAxRjNDQiBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUw
MDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBc
XFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4
NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU3NSBcXFUwMDAxRjU5MCBcXFUwMDAxRjU5NSBcXFUwMDAx
RjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUw
MDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMCBcXFUwMDAxRjkxOF0g
OyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2Vsc2UKLSAgICAi
JEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFG
NDhCXTsiCi0gICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNzBBLVxcdTI3MEMgXFxV
MDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0Eg
XFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0
NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAw
MUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxV
MDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYg
XFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzBdIDsiIC8vIEVt
b2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbmRpZgotICAgICIkRW1vamlN
b2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiCi0gICAgIiRkaWN0aW9uYXJ5ID0gWzpM
aW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsiCi0gICAgIiRBTFBsdXMgPSBbJEFMICRBSSAk
U0EgJFNHICRYWF07IgotICAgICIkQUxjbSA9ICRBTFBsdXMgJENNKjsiCi0gICAgIiRCQWNtID0g
JEJBICRDTSo7IgotICAgICIkQkJjbSA9ICRCQiAkQ00qOyIKLSAgICAiJEIyY20gPSAkQjIgJENN
KjsiCi0gICAgIiRDTGNtID0gJENMICRDTSo7IgotICAgICIkQ1BjbSA9ICRDUCAkQ00qOyIKLSAg
ICAiJEVYY20gPSAkRVggJENNKjsiCi0gICAgIiRHTGNtID0gJEdMICRDTSo7IgotICAgICIkSExj
bSA9ICRITCAkQ00qOyIKLSAgICAiJEhZY20gPSAkSFkgJENNKjsiCi0gICAgIiRIMmNtID0gJEgy
ICRDTSo7IgotICAgICIkSDNjbSA9ICRIMyAkQ00qOyIKLSAgICAiJElEY20gPSAkSUQgJENNKjsi
Ci0gICAgIiRJTmNtID0gJElOICRDTSo7IgotICAgICIkSVNjbSA9ICRJUyAkQ00qOyIKLSAgICAi
JEpMY20gPSAkSkwgJENNKjsiCi0gICAgIiRKVmNtID0gJEpWICRDTSo7IgotICAgICIkSlRjbSA9
ICRKVCAkQ00qOyIKLSAgICAiJE5TY20gPSAkTlMgJENNKjsiCi0gICAgIiROVWNtID0gJE5VICRD
TSo7IgotICAgICIkT1BjbSA9ICRPUCAkQ00qOyIKLSAgICAiJFBPY20gPSAkUE8gJENNKjsiCi0g
ICAgIiRQUmNtID0gJFBSICRDTSo7IgotICAgICIkUVVjbSA9ICRRVSAkQ00qOyIKLSAgICAiJFJJ
Y20gPSAkUkkgJENNKjsiCi0gICAgIiRTWWNtID0gJFNZICRDTSo7IgotICAgICIkV0pjbSA9ICRX
SiAkQ00qOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEZvcndhcmQgPQotICAgICIhIWZv
cndhcmQ7IgotICAgICIkQ0FOX0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOyIK
LSAgICAiJENBTlRfQ00gPSBbJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsiCi0gICAgIiRB
TF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAkTkwgJFpXICRTUF07IgotICAgICIkQUxfRk9M
TE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRXSiAkR0wgJE9QICRRVSAkQkEgJEhZ
ICROUyAkSU4gJE5VICRBTFBsdXNdOyIKLSAgICAiJEFMX0ZPTExPVyA9IFskQUxfRk9MTE9XX05P
Q00gJEFMX0ZPTExPV19DTV07IgotICAgICIkTEI0QnJlYWtzID0gWyRCSyAkQ1IgJExGICROTF07
IgotICAgICIkTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOyIKLSAgICAiJExCOEJy
ZWFrcyA9IFskTEI0QnJlYWtzICRaV107IgotICAgICIkTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9u
QnJlYWtzXSAtIFskWlddXTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3Mg
LSBbJFNQXV07IgotICAgICIkTEIxOEJyZWFrcyA9IFskTEI4QnJlYWtzICRTUF07IgotICAgICIk
TEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJyZWFrcyAtICRDQl07IgotICAgICIkQUxQbHVzICRD
TSs7IgotICAgICIkQkEgJENNKzsiCi0gICAgIiRCQiAkQ00rOyIKLSAgICAiJEIyICRDTSs7Igot
ICAgICIkQ0wgJENNKzsiCi0gICAgIiRDUCAkQ00rOyIKLSAgICAiJEVYICRDTSs7IgotICAgICIk
R0wgJENNKzsiCi0gICAgIiRITCAkQ00rOyIKLSAgICAiJEhZICRDTSs7IgotICAgICIkSDIgJENN
KzsiCi0gICAgIiRIMyAkQ00rOyIKLSAgICAiJElEICRDTSs7IgotICAgICIkSU4gJENNKzsiCi0g
ICAgIiRJUyAkQ00rOyIKLSAgICAiJEpMICRDTSs7IgotICAgICIkSlYgJENNKzsiCi0gICAgIiRK
VCAkQ00rOyIKLSAgICAiJE5TICRDTSs7IgotICAgICIkTlUgJENNKzsiCi0gICAgIiRPUCAkQ00r
OyIKLSAgICAiJFBPICRDTSs7IgotICAgICIkUFIgJENNKzsiCi0gICAgIiRRVSAkQ00rOyIKLSAg
ICAiJFJJICRDTSs7IgotICAgICIkU1kgJENNKzsiCi0gICAgIiRXSiAkQ00rOyIKLSAgICAiJENS
ICRMRiB7MTAwfTsiCi0gICAgIiRMQjROb25CcmVha3M/ICRMQjRCcmVha3MgezEwMH07IgotICAg
ICIkQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRDTSsgJExCNEJyZWFrcyB7
MTAwfTsiCi0gICAgIiRMQjROb25CcmVha3MgWyRTUCAkWlddOyIKLSAgICAiJENBTl9DTSAkQ00q
IFskU1AgJFpXXTsiCi0gICAgIiRDTSsgWyRTUCAkWlddOyIKLSAgICAiJEVtb2ppRm9yU2VxcyAk
RW1vamlWYXI/ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsiCi0gICAgIiRDQU5fQ00g
JENNKzsiCi0gICAgIiRDTSs7IgotICAgICIkQ0FOX0NNICRDTSogJFdKY207IgotICAgICIkTEI4
Tm9uQnJlYWtzICRXSmNtOyIKLSAgICAiJENNKyAkV0pjbTsiCi0gICAgIiRXSmNtICRDQU5UX0NN
OyIKLSAgICAiJFdKY20gJENBTl9DTSAkQ00qOyIKLSAgICAiJEdMY20gJENBTl9DTSAkQ00qOyIK
LSAgICAiJEdMY20gJENBTlRfQ007IgotICAgICJbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEg
JEhZXV0gJENNKiAkR0xjbTsiCi0gICAgIiRDTSsgR0xjbTsiCi0gICAgIiRMQjhOb25CcmVha3Mg
JENMOyIKLSAgICAiJENBTl9DTSAkQ00qICRDTDsiCi0gICAgIiRDTSsgJENMOyIKLSAgICAiJExC
OE5vbkJyZWFrcyAkQ1A7IgotICAgICIkQ0FOX0NNICRDTSogJENQOyIKLSAgICAiJENNKyAkQ1A7
IgotICAgICIkTEI4Tm9uQnJlYWtzICRFWDsiCi0gICAgIiRDQU5fQ00gJENNKiAkRVg7IgotICAg
ICIkQ00rICRFWDsiCi0gICAgIiRMQjhOb25CcmVha3MgJElTOyIKLSAgICAiJENBTl9DTSAkQ00q
ICRJUzsiCi0gICAgIiRDTSsgJElTOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkU1k7IgotICAgICIk
Q0FOX0NNICRDTSogJFNZOyIKLSAgICAiJENNKyAkU1k7IgotICAgICIkT1BjbSAkU1AqICRDQU5f
Q00gJENNKjsiCi0gICAgIiRPUGNtICRTUCogJENBTlRfQ007IgotICAgICIkT1BjbSAkU1ArICRD
TSsgJEFMX0ZPTExPVz87IgotICAgICIkUVVjbSAkU1AqICRPUGNtOyIKLSAgICAiKCRDTGNtIHwg
JENQY20pICRTUCogJE5TY207IgotICAgICIkQjJjbSAkU1AqICRCMmNtOyIKLSAgICAiJExCMThO
b25CcmVha3MgJENNKiAkUVVjbTsiCi0gICAgIiRDTSsgJFFVY207IgotICAgICIkUVVjbSAuPzsi
Ci0gICAgIiRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7IgotICAgICIkTEIyME5vbkJyZWFrcyAk
Q00qICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAiCi0gICAgIiRCQmNtIFteJENCXTsiCi0gICAg
IiRCQmNtICRMQjIwTm9uQnJlYWtzICRDTSo7IgotICAgICIkSExjbSAoJEhZY20gfCAkQkFjbSkg
W14kQ0JdPzsiCi0gICAgIiRTWWNtICRITGNtOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICRJTmNt
OyIKLSAgICAiJENNKyAkSU5jbTsiCi0gICAgIiRFWGNtICRJTmNtOyIKLSAgICAiJElEY20gJElO
Y207IgotICAgICIkSU5jbSAkSU5jbTsiCi0gICAgIiROVWNtICRJTmNtOyIKLSAgICAiJElEY20g
JFBPY207IgotICAgICIkQUxjbSAkTlVjbTsiCi0gICAgIiRITGNtICROVWNtOyIKLSAgICAiJENN
KyAkTlVjbTsiCi0gICAgIiROVWNtICRBTGNtOyIKLSAgICAiJE5VY20gJEhMY207IgotICAgICIk
UFJjbSAkSURjbTsiCi0gICAgIiRQUmNtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRQT2NtICgk
QUxjbSB8ICRITGNtKTsiCi0gICAgIigkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAk
TlVjbSAoJE5VY20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAk
UE9jbSk/OyIKLSAgICAiJEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsiCi0g
ICAgIigkSlZjbSB8ICRIMmNtKSAoJEpWY20gfCAkSlRjbSk7IgotICAgICIoJEpUY20gfCAkSDNj
bSkgJEpUY207IgotICAgICIoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkg
JElOY207IgotICAgICIoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJFBP
Y207IgotICAgICIkUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSk7
IgotICAgICIoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJENNKyAoJEFM
Y20gfCAkSExjbSk7IgotICAgICIkSVNjbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJEFMY20g
fCAkSExjbSB8ICROVWNtKSAkT1BjbTsiCi0gICAgIiRDTSsgJE9QY207IgotICAgICIkQ1BjbSAo
JEFMY20gfCAkSExjbSB8ICROVWNtKTsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0g
ICAgIiRSSWNtICRSSWNtOyIKLSNlbmRpZgotICAgICIkRW1vamlGb3JNb2RzICRFbW9qaVZhcj8g
JEVtb2ppTW9kczsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRSZXZlcnNlID0KLSAgICAi
ISFyZXZlcnNlOyIKLSAgICAiJENNKyAkQUxQbHVzOyIKLSAgICAiJENNKyAkQkE7IgotICAgICIk
Q00rICRCQjsiCi0gICAgIiRDTSsgJEIyOyIKLSAgICAiJENNKyAkQ0w7IgotICAgICIkQ00rICRD
UDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAiJENNKyAkR0w7IgotICAgICIkQ00rICRITDsiCi0g
ICAgIiRDTSsgJEhZOyIKLSAgICAiJENNKyAkSDI7IgotICAgICIkQ00rICRIMzsiCi0gICAgIiRD
TSsgJElEOyIKLSAgICAiJENNKyAkSU47IgotICAgICIkQ00rICRJUzsiCi0gICAgIiRDTSsgJEpM
OyIKLSAgICAiJENNKyAkSlY7IgotICAgICIkQ00rICRKVDsiCi0gICAgIiRDTSsgJE5TOyIKLSAg
ICAiJENNKyAkTlU7IgotICAgICIkQ00rICRPUDsiCi0gICAgIiRDTSsgJFBPOyIKLSAgICAiJENN
KyAkUFI7IgotICAgICIkQ00rICRRVTsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0g
ICAgIiRDTSsgJFJJOyIKLSNlbmRpZgotICAgICIkQ00rICRTWTsiCi0gICAgIiRDTSsgJFdKOyIK
LSAgICAiJENNKzsiCi0gICAgIiRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRa
VyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFsk
QUwge2VvZn1dKSk7IgotICAgICJbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQ
IHtlb2Z9XTsiCi0gICAgIiRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIiRM
QjRCcmVha3MgJENNKyAkQ0FOX0NNOyIKLSAgICAiJExGICRDUjsiCi0gICAgIlskU1AgJFpXXSBb
JExCNE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiWyRTUCAkWlddICRDTSsgJENBTl9DTTsiCi0gICAg
IiRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/ICRFbW9qaUZvclNlcXM7
IgotICAgICIkQ00rICRDQU5fQ007IgotICAgICIkQ00qICRXSiAkQ00qICRDQU5fQ007IgotICAg
ICIkQ00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENBTlRfQ00gJENNKiAkV0o7
IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkV0o7IgotICAgICIkQ00qICRHTCAkQ00qIFskTEI4
Tm9uQnJlYWtzLVskQ00gJFNQICRCQSAkSFldXTsiCi0gICAgIiRDQU5UX0NNICRDTSogJEdMOyIK
LSAgICAiJENNKiAkQ0FOX0NNICRDTSogJEdMOyIKLSAgICAiJENMICRDTSsgJENBTl9DTTsiCi0g
ICAgIiRDUCAkQ00rICRDQU5fQ007IgotICAgICIkRVggJENNKyAkQ0FOX0NNOyIKLSAgICAiJElT
ICRDTSsgJENBTl9DTTsiCi0gICAgIiRTWSAkQ00rICRDQU5fQ007IgotICAgICIkQ0wgWyRMQjhO
b25CcmVha3MtJENNXTsiCi0gICAgIiRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJEVY
IFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkSVMgWyRMQjhOb25CcmVha3MtJENNXTsiCi0g
ICAgIiRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiWyRDTCAkQ1AgJEVYICRJUyAkU1ld
ICRDTSsgJFNQKyAkQ00qICRPUDsgIgotICAgICIkQ00qICRDQU5fQ00gJFNQKiAkQ00qICRPUDsi
Ci0gICAgIiRDQU5UX0NNICRTUCogJENNKiAkT1A7IgotICAgICIkQUxfRk9MTE9XPyAkQ00rICRT
UCAkU1AqICRDTSogJE9QOyIKLSAgICAiJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRP
UDsiCi0gICAgIiRDTSogJEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7IgotICAgICIk
U1kgJENNICRTUCsgJE9QOyIKLSAgICAiJENNKiAkT1AgJFNQKiAkQ00qICRRVTsiCi0gICAgIiRD
TSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsiCi0gICAgIiRDTSogJEIyICRTUCogJENNKiAk
QjI7IgotICAgICIkQ00qICRRVSAkQ00qICRDQU5fQ007IgotICAgICIkQ00qICRRVSAkTEIxOE5v
bkJyZWFrczsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRRVTsiCi0gICAgIiRDQU5UX0NNICRD
TSogJFFVOyIKLSAgICAiJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFr
cy0kQ01dOyIKLSAgICAiJENNKiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsiCi0gICAg
IlteJENCXSAkQ00qICRCQjsiCi0gICAgIlteJENCXSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhM
OyIKLSAgICAiJENNKiAkSEwgJENNKiAkU1k7IgotICAgICIkQ00qICRJTiAkQ00qICgkQUxQbHVz
IHwgJEhMKTsiCi0gICAgIiRDTSogJElOICRDTSogJEVYOyIKLSAgICAiJENNKiAkSU4gJENNKiAk
SUQ7IgotICAgICIkQ00qICRJTiAkQ00qICRJTjsiCi0gICAgIiRDTSogJElOICRDTSogJE5VOyIK
LSAgICAiJENNKiAkUE8gJENNKiAkSUQ7IgotICAgICIkQ00qICROVSAkQ00qICgkQUxQbHVzIHwg
JEhMKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJE5VOyIKLSAgICAiJENNKiAk
SUQgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQUjsiCi0gICAg
IiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOyIKLSAgICAiKCRDTSogKCRQUiB8ICRQTykp
PyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENNKiAkTlUg
KCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OyIKLSAgICAiJENNKiAoJEgz
IHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsiCi0gICAgIiRDTSogKCRKVCB8ICRKVikgJENN
KiAoJEgyIHwgJEpWKTsiCi0gICAgIiRDTSogJEpUICRDTSogKCRIMyB8ICRKVCk7IgotICAgICIk
Q00qICRJTiAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIKLSAgICAiJENNKiAk
UE8gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsiCi0gICAgIiRDTSogKCRIMyB8
ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwg
JEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRD
TSogJElTOyIKLSAgICAiJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSk7IgotICAg
ICIkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsiCi0jaWYgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUCi0gICAgIiRDTSogJFJJICRDTSogJFJJOyIKLSNlbmRpZgotICAgICIkRW1v
amlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiOwotCi1zdGF0aWMgY29uc3QgY2hhciog
dWF4MTRTYWZlRm9yd2FyZCA9Ci0gICAgIiEhc2FmZV9mb3J3YXJkOyIKLSAgICAiWyRDTSAkT1Ag
JFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRTUCAkZGljdGlvbmFyeV0rIFteJENNICRPUCAk
UVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJGRpY3Rpb25hcnldOyIKLSAgICAiJGRpY3Rpb25h
cnkgJGRpY3Rpb25hcnk7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0U2FmZVJldmVyc2Ug
PQotICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgIiRDTSsgW14kQ00gJEJLICRDUiAkTEYgJE5M
ICRaVyAkU1BdOyIKLSAgICAiJENNKyAkU1AgLyAuOyIKLSAgICAiJFNQKyAkQ00qICRPUDsiCi0g
ICAgIiRTUCsgJENNKiAkUVU7IgotICAgICIkU1ArICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIk
U1ArICRDTSogJEIyOyIKLSAgICAiJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsiCi0gICAgIigk
Q00qICgkSVMgfCAkU1kpKSsgJENNKiAkTlU7IgotICAgICIoJENMIHwgJENQKSAkQ00qICgkTlUg
fCAkSVMgfCAkU1kpOyIKLSAgICAiJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7IjsKLQogc3RhdGlj
IFN0cmluZyBtYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhMaW5lQnJlYWtJdGVyYXRvck1vZGUg
bW9kZSwgYm9vbCBpc0NKSykKIHsKLSAgICBTdHJpbmdCdWlsZGVyIHJ1bGVzQnVpbGRlcjsKLSAg
ICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0UHJvbG9ndWUpOwotICAgIHJ1bGVzQnVpbGRlci5h
cHBlbmQodWF4MTRBc3NpZ25tZW50c0JlZm9yZSk7CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAg
Y2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFw
cGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Q0pLIDogdWF4MTRBc3Np
Z25tZW50c0N1c3RvbURlZmF1bHROb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0
dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNENKS1J1bGVzIDogbGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFY
MTRMb29zZToKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdu
bWVudHNDdXN0b21Mb29zZUNKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZU5vbkNKSyk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKS1J1
bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTROb3JtYWw6Ci0gICAgICAg
IHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFs
Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyk7Ci0gICAgICAgIGJyZWFr
OworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pL
UnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVsZXM7CiAgICAgY2Fz
ZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNFN0cmljdDoKLSAgICAgICAgcnVsZXNCdWlsZGVy
LmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksgOiB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJl
dHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSktSdWxlcyA6IGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsKICAgICB9Ci0gICAgcnVsZXNCdWls
ZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBl
bmQodWF4MTRGb3J3YXJkKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0UmV2ZXJzZSk7
Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVGb3J3YXJkKTsKLSAgICBydWxlc0J1
aWxkZXIuYXBwZW5kKHVheDE0U2FmZVJldmVyc2UpOwotICAgIHJldHVybiBydWxlc0J1aWxkZXIu
dG9TdHJpbmcoKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gIiI7CiB9
CiAKIC8vIFJlY29nbml6ZSBCQ1A0NyBjb21wbGlhbnQgcHJpbWFyeSBsYW5ndWFnZSB2YWx1ZXMg
b2YgJ3poJywgJ2phJywgJ2tvJwpAQCAtNzg2LDkgKzI1MiwyOSBAQCBUZXh0QnJlYWtJdGVyYXRv
ciogb3BlbkxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBMaW5l
QnJlYWtJdAogICAgIGlmIChtb2RlID09IExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0KQogICAg
ICAgICB1YnJrSXRlciA9IHVicmtfb3BlbihVQlJLX0xJTkUsIGxvY2FsZUlzRW1wdHkgPyBjdXJy
ZW50VGV4dEJyZWFrTG9jYWxlSUQoKSA6IGxvY2FsZS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCAw
LCAwLCAmb3BlblN0YXR1cyk7CiAgICAgZWxzZSB7Ci0gICAgICAgIFVQYXJzZUVycm9yIHBhcnNl
U3RhdHVzOwotICAgICAgICBhdXRvIHJ1bGVzID0gbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMo
bW9kZSwgaXNDSkspOwotICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlblJ1bGVzKFN0cmluZ1Zp
ZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBydWxlcy5sZW5ndGgoKSwgMCwgMCwg
JnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7CisgICAgICAgIEJyZWFraW5nUnVsZVNldCBydWxl
U2V0OworICAgICAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVy
YXRvck1vZGVVQVgxNDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVs
ZVNldDo6VUFYMTRDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRMb29zZToK
KyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29z
ZUNKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZU5vbkNKSzsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0Tm9ybWFsOgorICAg
ICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbENK
SyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNFN0cmljdDoKKyAgICAg
ICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3RDSksg
OiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKworICAgICAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBjcmVhdGVJdGVyYXRv
ckZvclJ1bGVTZXQocnVsZVNldCkpCisgICAgICAgICAgICB1YnJrSXRlciA9IGl0ZXJhdG9yOwor
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFVQYXJzZUVycm9yIHBhcnNlU3RhdHVzOworICAg
ICAgICAgICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlz
Q0pLKTsKKyAgICAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuUnVsZXMoU3RyaW5nVmlldyhy
dWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHJ1bGVzLmxlbmd0aCgpLCAwLCAwLCAmcGFy
c2VTdGF0dXMsICZvcGVuU3RhdHVzKTsKKyAgICAgICAgfQogICAgIH0KICAgICAvLyBsb2NhbGUg
Y29tZXMgZnJvbSBhIHdlYiBwYWdlIGFuZCBpdCBjYW4gYmUgaW52YWxpZCwgbGVhZGluZyBJQ1UK
ICAgICAvLyB0byBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIGZhbGwgYmFjayB0byB0aGUgZGVmYXVs
dCBsb2NhbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKaW5kZXggZDkw
MzIxNWFlNDEzN2U0YzNhOWVhMzViM2QwMjViZjUyZTQ1MThlYy4uZDgyMWIzMTY3OTE5YjQ0Mjlm
YTU0YzFlNWIzZjQ2N2M1MjA2MTM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRl
cmF0b3IuaApAQCAtMzgsNiArMzgsMzAgQEAgZW51bSBMaW5lQnJlYWtJdGVyYXRvck1vZGUgewog
ICAgIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0U3RyaWN0LAogfTsKIAorZW51bSBjbGFzcyBC
cmVha2luZ1J1bGVTZXQgeworICAgIEN1cnNvck1vdmVtZW50LAorICAgIFVBWDE0Q0pLLAorICAg
IFVBWDE0Tm9uQ0pLLAorICAgIFVBWDE0TG9vc2VDSkssCisgICAgVUFYMTRMb29zZU5vbkNKSywK
KyAgICBVQVgxNE5vcm1hbENKSywKKyAgICBVQVgxNE5vcm1hbE5vbkNKSywKKyAgICBVQVgxNFN0
cmljdENKSywKKyAgICBVQVgxNFN0cmljdE5vbkNKSworfTsKKworZXh0ZXJuIGNvbnN0IGNoYXIq
IGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJl
YWtJdGVyYXRvclVBWDE0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZUNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZU5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsKKworVGV4dEJyZWFrSXRlcmF0b3Iq
IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpOworCiAvLyBUaGlzIGlz
IHNpbWlsYXIgdG8gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMsIGJ1dCBp
cyBzdWJqZWN0IHRvCiAvLyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUgZXhh
bXBsZSB3aGVyZSB0aGlzIGNhbiBiZSBkaWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVyIGJyZWFr
IGl0ZXJhdG9yIGlzIFRoYWkgcHJlcGVuZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQyLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVU1hYy5tbSBiL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50
ZXJuYWxJQ1VNYWMubW0KaW5kZXggYmVmNWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVlOGU4OGEz
ODkyYy4uMmFlY2YwOWU4MjU0NGM2NmI3ZDFjMWU1YWFhYzY0ZjVmZmYzMDJiZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1h
Yy5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVy
bmFsSUNVTWFjLm1tCkBAIC0yMSwxMiArMjEsMTIwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAiVGV4
dEJyZWFrSXRlcmF0b3IuaCIKKworI2lmIGRlZmluZWQoVV9TSE9XX0NQTFVTUExVU19BUEkpCisj
dW5kZWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKyNlbmRpZgorI2RlZmluZSBVX1NIT1dfQ1BMVVNQ
TFVTX0FQSSAxCisKKyNpbmNsdWRlIDx1bmljb2RlL3JiYmkuaD4KKyNpbmNsdWRlIDx1bmljb2Rl
L3VkYXRhLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3Rm
L09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCitAaW50ZXJmYWNlIFdU
RkJ1bmRsZUZpbmRlciA6IE5TT2JqZWN0CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXVEZCdW5k
bGVGaW5kZXIKK0BlbmQKKwogbmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdCBpbnQgbWF4
TG9jYWxlU3RyaW5nTGVuZ3RoID0gMzI7CiAKK3N0cnVjdCBSdWxlQ2FjaGUgeworICAgIHN0ZDo6
dW5pcXVlX3B0cjxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPiBpdGVyYXRvcjsKKyAgICBib29sIGZh
aWxlZCB7IGZhbHNlIH07Cit9OworCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JG
b3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCBydWxlU2V0KQoreworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxSdWxlQ2FjaGU+IGN1cnNvck1vdmVtZW50SXRlcmF0b3I7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTRDSktJdGVyYXRvcjsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNE5vbkNKS0l0ZXJh
dG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0
TG9vc2VDSktJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBs
aW5lQnJlYWtVQVgxNExvb3NlTm9uQ0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTROb3JtYWxDSktJdGVyYXRvcjsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNE5vcm1hbE5vbkNKS0l0
ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VB
WDE0U3RyaWN0Q0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNo
ZT4gbGluZUJyZWFrVUFYMTRTdHJpY3ROb25DSktJdGVyYXRvcjsKKworICAgIE5TU3RyaW5nICpm
aWxlTmFtZUJhc2U7CisgICAgUnVsZUNhY2hlKiBjYWNoZSA9IG51bGxwdHI7CisKKyAgICBzd2l0
Y2ggKHJ1bGVTZXQpIHsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQ6
CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzIjsK
KyAgICAgICAgY2FjaGUgPSAmY3Vyc29yTW92ZW1lbnRJdGVyYXRvci5nZXQoKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLOgorICAgICAgICBmaWxl
TmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksiOworICAgICAgICBjYWNoZSA9
ICZsaW5lQnJlYWtVQVgxNENKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9
IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVC
cmVha1VBWDE0Tm9uQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBA
IkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVC
cmVha1VBWDE0TG9vc2VDSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFz
ZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLIjsKKyAgICAgICAgY2FjaGUg
PSAmbGluZUJyZWFrVUFYMTRMb29zZU5vbkNKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSks6CisgICAgICAgIGZp
bGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSyI7CisgICAgICAg
IGNhY2hlID0gJmxpbmVCcmVha1VBWDE0Tm9ybWFsQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzoKKyAg
ICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
IjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTROb3JtYWxOb25DSktJdGVyYXRvci5n
ZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3Ry
aWN0Q0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNFN0cmljdENKS0l0ZXJh
dG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFY
MTRTdHJpY3ROb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdE5vbkNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0U3Ry
aWN0Tm9uQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEFT
U0VSVChjYWNoZSk7CisKKyAgICBpZiAoY2FjaGUtPmZhaWxlZCkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBpZiAoIWNhY2hlLT5pdGVyYXRvcikgeworICAgICAgICBOU0J1bmRsZSAq
YnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXVEZCdW5kbGVGaW5kZXIgY2xhc3Nd
XTsKKyAgICAgICAgTlNTdHJpbmcgKnBhdGggPSBbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpmaWxl
TmFtZUJhc2Ugb2ZUeXBlOkAiYnJrIiBpbkRpcmVjdG9yeTpAIkJyZWFraW5nUnVsZXMiXTsKKyAg
ICAgICAgaWYgKCFwYXRoKSB7CisgICAgICAgICAgICBjYWNoZS0+ZmFpbGVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgTlNTdHJpbmcg
KmRpcmVjdG9yeSA9IFtwYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF07Cisg
ICAgICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAgICAgICBMb2Nh
bFVEYXRhTWVtb3J5UG9pbnRlciBkYXRhKHVkYXRhX29wZW4oW2RpcmVjdG9yeSBVVEY4U3RyaW5n
XSwgImJyayIsIFtmaWxlTmFtZUJhc2UgVVRGOFN0cmluZ10sICZlcnJvckNvZGUpKTsKKyAgICAg
ICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJST1IpIHsKKyAgICAgICAgICAgIGNhY2hlLT5m
YWlsZWQgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKwor
ICAgICAgICBjYWNoZS0+aXRlcmF0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3I+KGRhdGEub3JwaGFuKCksIGVycm9yQ29kZSk7CisgICAgICAgIGlmIChlcnJvckNv
ZGUgIT0gVV9aRVJPX0VSUk9SKSB7CisgICAgICAgICAgICBjYWNoZS0+ZmFpbGVkID0gdHJ1ZTsK
KyAgICAgICAgICAgIGNhY2hlLT5pdGVyYXRvciA9IG51bGxwdHI7CisgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PFRleHRCcmVha0l0ZXJhdG9yKj4oc3RkOjptYWtlX3VuaXF1ZTxSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yPigqY2FjaGUtPml0ZXJhdG9yKS5yZWxlYXNlKCkpOworfQorCiBzdGF0aWMgaW5saW5l
IFJldGFpblB0cjxDRlN0cmluZ1JlZj4gdGV4dEJyZWFrTG9jYWxlUHJlZmVyZW5jZSgpCiB7CiAg
ICAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBsb2NhbGUgPSBhZG9wdENGKENGUHJlZmVy
ZW5jZXNDb3B5VmFsdWUoQ0ZTVFIoIkFwcGxlVGV4dEJyZWFrTG9jYWxlIiksCmRpZmYgLS1naXQg
YS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21h
a2UKaW5kZXggMjlhMDk2OTAzOGZhYTc0NGUxYThjNThmMzU2YWQwNzNmMDA1MjViZC4uODFmNTRh
NTZhZDY5NTNkN2IxZTIwYzg4ZmE4NWJiZGRkMWYwN2U4YyAxMDA2NDQKLS0tIGEvU291cmNlL2Nt
YWtlL1dlYktpdEZTLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQpAQCAt
MjQsNiArMjQsNyBAQCBpZiAoTk9UIFRPT0xTX0RJUikKIGVuZGlmICgpCiAKIHNldChERVJJVkVE
X1NPVVJDRVNfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzIikKK3NldChE
RVJJVkVEX1NPVVJDRVNfV1RGX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNl
cy9XVEYiKQogc2V0KERFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVIgIiR7Q01BS0Vf
QklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUiKQogc2V0KERFUklWRURf
U09VUkNFU19XRUJDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUTEVHQUNZX0RJUiAiJHtDTUFLRV9C
SU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3kiKQpAQCAtMzIsNiArMzMsOCBA
QCBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JV
SV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9yVUki
KQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JF
X0RJUn0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9KQor
ZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1
bGVzKQogZmlsZShNQUtFX0RJUkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9L1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lKQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VS
Q0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285561</attachid>
            <date>2016-08-08 01:53:04 -0700</date>
            <delta_ts>2016-08-08 16:28:56 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160808015132.patch</filename>
            <type>text/plain</type>
            <size>474961</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
YzY4YzkyYmY5ZDJjMzFiM2RlMTE1MWM3MzkzMDM5ODdjYjIyMmYxLi5iZWZkYTZmNWYwM2JkZWM1
YTc5NDdlZGFhNWNjODMxZTNkYmMxMTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CiAKICAgICAgICAgW0VTNl0gTW9kdWxlIG5hbWVzcGFjZSBvYmplY3Qgc2hvdWxkIG5vdCBh
bGxvdyB1bnNldCBJQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZwppbmRleCBmMjZiMmViZmZlMmNhZGEzN2NjZGFlM2NlZGY2ZWZjODUzYjYx
NmIxLi43ZWNjMzk2ZGQxYWY0NzcwZjY4NTI5YzVjYjhjNTdmMTU5ZjkzMzE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMyIEBACisyMDE2LTA4LTA3ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBs
ZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJQ1UgYnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxk
IHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkLgorICAgICAgICAqIHd0Zi9nZW5i
cms6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDogQWRkZWQu
CisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQ6IEFkZGVk
LgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ6
IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdURjo6aXRl
cmF0b3JGb3JSdWxlU2V0KToKKyAgICAgICAgKFdURjo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6
CisgICAgICAgIChXVEY6Om9wZW5MaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgICogd3RmL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3IuaDoKKyAgICAgICAgKiB3dGYvdGV4dC9tYWMvVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbToKKyAgICAgICAgKFdURjo6aXRlcmF0b3JGb3JSdWxl
U2V0KToKKwogMjAxNi0wOC0wNiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFdURiBuZWVkcyBhIHZhcmlhbnQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggZTMwZGM5ZTRkMDIwMzYyMGIxNGNhMjI4YjRlYjJiYjRmZGVjZWYwZC4u
MWFiZTQ3YzI0NjRkYTg5OGZhZDUzMGFjYzMyNjM3YzhiZGE2MmM3YyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTExMDksNiArMTEwOSw3IEBACiAJCTE0Rjk3NDQ3MTM4Qzg1M0Uw
MERBMUM2NyAvKiBIZWFwUm9vdFZpc2l0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE0Rjk3NDQ2MTM4Qzg1M0UwMERBMUM2NyAvKiBIZWFwUm9vdFZp
c2l0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkxQTI4RDRBODE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTI4RDRBNzE3N0I3MUM4
MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUFDRjczNzcxNzFDQTZGQjAwQzlCQjFFIC8qIFdl
YWsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFD
RjczNzYxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwICovOyB9OworCQkxQ0QxODc5MDFENTU5
NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5n
UnVsZXMgKi87IH07CiAJCTI2MDBCNUE2MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5l
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAw
QjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovOyB9OwogCQkyNjAw
QjVBNzE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAv
KiBKU1N0cmluZ0pvaW5lci5oICovOyB9OwogCQkyNjJEODVCNjFDMEQ2NTBGMDA2QUNCNjEgLyog
QWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MkQ4NUI0MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQ
YXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovOyB9OwpAQCAtMzI3Miw2ICszMjczLDcgQEAKIAkJ
MUM5MDUxNDUwQkE5RThBNzAwODFFOUQwIC8qIEJhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUNBQThCNEEwRDMyQzM5QTAwNDFCQ0ZGIC8qIEphdmFTY3JpcHQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNjcmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQ0FBOEI0QjBEMzJDMzlBMDA0MUJDRkYgLyogSmF2YVNjcmlwdENvcmUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNjcmlwdENvcmUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFr
aW5nUnVsZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBmb2xkZXI7IG5hbWUgPSBCcmVha2luZ1J1bGVzOyBwYXRoID0gLi4vV1RGL0JyZWFraW5nUnVs
ZXM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1
RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1N0cmluZ0pvaW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2
MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0cmluZ0pvaW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyNjJEODVCNDFDMEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lz
dGVyU3RhbGxzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFpckZp
eFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRml4UGFydGlhbFJl
Z2lzdGVyU3RhbGxzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU0MzgsNiAr
NTQ0MCw3IEBACiAJCTY1MEZERjhEMDlEMEZDQTcwMDc2OUU1NCAvKiBEZXJpdmVkIFNvdXJjZXMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzhG
MUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovLAogCQkJCTBGNjE4MzMyMUM0NUYz
NUMwMDcyNDUwQiAvKiBBaXJPcGNvZGUuaCAqLywKIAkJCQkwRjYxODMzNDFDNDVGM0I2MDA3MjQ1
MEIgLyogQWlyT3Bjb2RlR2VuZXJhdGVkLmggKi8sCiAJCQkJMEY2MTgzMzUxQzQ1RjNCNjAwNzI0
NTBCIC8qIEFpck9wY29kZVV0aWxzLmggKi8sCkBAIC04NDU3LDYgKzg0NjAsNyBAQAogCQkJYnVp
bGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUE1M0YxQUMwMThD
OTBGOEYwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgaW4gUmVzb3VyY2VzICovLAorCQkJCTFDRDE4
NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGluIFJlc291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiYTgwNDA2YjY4Nzg3
MmNkYzJlM2U4MTZiZWIwMDQzYTkzOWMyNzAuLjBjMzhhMjcxNmUyNzI3ZmI5Yzk3YjBiMjNhYjQ2
NzdiNDlmY2QxZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNyw2ICs3LDE4IEBACiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQWdncmVnYXRlVGFy
Z2V0IHNlY3Rpb24gKi8KKwkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291
cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmln
dXJhdGlvbkxpc3QgPSAxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJh
dGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi87CisJ
CQlidWlsZFBoYXNlcyA9ICgKKwkJCQkxQ0QxODc4MjFENTU2OTVDMDBDQzdERUMgLyogR2VuZXJh
dGUgRGVyaXZlZCBTb3VyY2VzICovLAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCQlD
MkJBNTQzQjFENTcyQkVCMDAwQTMzMzIgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKKwkJCSk7
CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwcm9kdWN0TmFtZSA9ICJDb3B5IFdU
RiBIZWFkZXJzIjsKKwkJfTsKIAkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RG
IEhlYWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CiAJCQlidWlsZENv
bmZpZ3VyYXRpb25MaXN0ID0gNjVBRkEyODgxNjMwQjk3NzAwM0Q3MjNDIC8qIEJ1aWxkIGNvbmZp
Z3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJDb3B5IFdURiBIZWFkZXJzIiAq
LzsKQEAgLTMxMiw2ICszMjQsMjAgQEAKIAkJQThBNDc0ODcxNTFBODI1QjAwNDEyM0ZGIC8qIFdU
RlRocmVhZERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QTQ3MzdCMTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggKi87IH07CiAJ
CUE4QTQ3NDhDMTUxQTgyNjQwMDQxMjNGRiAvKiBjb25maWcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAvKiBj
b25maWcuaCAqLzsgfTsKIAkJQjM4RkQ3QkQxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZp
bmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMzhG
RDdCQzE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCAqLzsgfTsKKwkJQzJCQTU0
MjUxRDU3MjVDNDAwMEEzMzMyIC8qIGdlbmJyay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkJBNTQxODFENTcyNTkwMDAwQTMzMzIgLyogZ2VuYnJr
LmNwcCAqLzsgfTsKKwkJQzJCQTU0MzMxRDU3MjkzODAwMEEzMzMyIC8qIHVvcHRpb25zLmMgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkJBNTQzMjFENTcy
OTM4MDAwQTMzMzIgLyogdW9wdGlvbnMuYyAqLzsgfTsKKwkJQzJCQTU0MzYxRDU3MjlGRjAwMEEz
MzMyIC8qIHVuZXdkYXRhLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMkJBNTQzNTFENTcyOUZGMDAwQTMzMzIgLyogdW5ld2RhdGEuYyAqLzsgfTsKKwkJ
QzJCQTU0MzkxRDU3MkFGODAwMEEzMzMyIC8qIGZpbGVzdHJtLmMgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkJBNTQzODFENTcyQUY4MDAwQTMzMzIgLyog
ZmlsZXN0cm0uYyAqLzsgfTsKKwkJQzJCQTU0M0UxRDU4NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNv
cmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLzsgfTsKKwkJ
QzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdF
MDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLzsg
fTsKKwkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJD
QTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwICov
OyB9OworCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VDSksuY3BwICovOyB9OworCQlDMkNBMzdFQzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovOyB9OworCQlDMkNBMzdFRDFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNDFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VFMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U1MUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLzsgfTsK
KwkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksuY3BwICovOyB9OworCQlDMkNBMzdGMDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YxMUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U4MUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLzsgfTsKIAkJ
QzRGOEE5MzcxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzRGOEE5MzYxOUM2NUVCNDAwQjJCMTVEIC8q
IFN0b3B3YXRjaC5oICovOyB9OwogCQlDRDU0OTdBQzE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFU
aW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovOyB9OwogCQlDRDU0OTdB
RDE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU0OTdBQjE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFU
aW1lLmggKi87IH07CkBAIC0zNDQsNiArMzcwLDEzIEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmlu
ZyA9IDVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NjsKIAkJCXJlbW90ZUluZm8gPSBXVEY7CiAJCX07
CisJCTFDRDE4Nzg3MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8g
PSB7CisJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250YWluZXJQb3J0YWwg
PSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94
eVR5cGUgPSAxOworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSAxQ0QxODc4MTFENTU2OTVDMDBD
QzdERUM7CisJCQlyZW1vdGVJbmZvID0gIkRlcml2ZWQgU291cmNlcyI7CisJCX07CiAJCTY1QUZB
MjhEMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlp
c2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CiAJCQljb250YWluZXJQb3J0YWwgPSA1RDI0N0I1
OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBvYmplY3QgKi87CkBAIC0zNTEsOCArMzg0LDI3
IEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQzsK
IAkJCXJlbW90ZUluZm8gPSAiQ29weSBIZWFkZXJzIjsKIAkJfTsKKwkJQzJCQTU0M0ExRDU3MkJF
QjAwMEEzMzMyIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENv
bnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYw
MEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1v
dGVHbG9iYWxJRFN0cmluZyA9IEMyQkE1NDFDMUQ1NzI1QjQwMDBBMzMzMjsKKwkJCXJlbW90ZUlu
Zm8gPSBnZW5icms7CisJCX07CiAvKiBFbmQgUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24g
Ki8KIAorLyogQmVnaW4gUEJYQ29weUZpbGVzQnVpbGRQaGFzZSBzZWN0aW9uICovCisJCUMyQkE1
NDFCMUQ1NzI1QjQwMDBBMzMzMiAvKiBDb3B5RmlsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhDb3B5
RmlsZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWRz
dFBhdGggPSAvdXNyL3NoYXJlL21hbi9tYW4xLzsKKwkJCWRzdFN1YmZvbGRlclNwZWMgPSAwOwor
CQkJZmlsZXMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDE7CisJCX07CisvKiBFbmQgUEJYQ29weUZpbGVzQnVpbGRQaGFzZSBzZWN0aW9uICovCisK
IC8qIEJlZ2luIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCQkwRjBEODVCMzE3MjM0Q0Ix
MDAzMzgyMTAgLyogTm9Mb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vTG9jay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjJCNjZBNDE3QjZCNEY3MDBBN0FFM0YgLyogRGVmZXJyYWJs
ZVJlZkNvdW50ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVmZXJyYWJsZVJlZkNvdW50ZWQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzNiw2ICs0ODgsMTggQEAKIAkJMUMxODFDOEQx
RDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM4RTFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92
aWRlclVURjE2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlk
ZXJVVEYxNi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM5NTFEMzA4MDBB
MDBGNUZBMTYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJ
Q1VNYWMubW07IHBhdGggPSBtYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQ0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
Sy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
Sy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5
RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDQjRGQjk4MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkx
RDU1OUFFRjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25D
SksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUNCNEZCOUMxRDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9y
RXBpbG9ndWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBp
bG9ndWUudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQz
MDBDQzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMu
bWFrZTsgcGF0aCA9IHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB1c2VzVGFicyA9IDE7IH07CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUw
MENDN0RFQyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUZBNDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAv
KiBXZWJDb3JlVGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNv
cmVUaHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NE
QzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNjU4LDYgKzcyMiwzMyBAQAogCQlBOEE0NzM3QjE1MUE4MjVC
MDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXVEZUaHJlYWREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3
NDhCMTUxQTgyNjQwMDQxMjNGRiAvKiBjb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JD
MTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMkJBNTQxODFENTcyNTkwMDAwQTMzMzIgLyogZ2VuYnJrLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IGdlbmJyay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDFE
MUQ1NzI1QjQwMDBBMzMzMiAvKiBnZW5icmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgcGF0aCA9IGdlbmJyazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKKwkJQzJCQTU0MjYxRDU3MjY3QzAwMEEzMzMyIC8qIHVvcHRpb25zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVvcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQkE1NDI3MUQ1NzI2ODkwMDBBMzMzMiAvKiB1bmV3ZGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1bmV3ZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDMkJBNTQyODFENTcyNkIwMDAwQTMzMzIgLyogdWNtbmRhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdWNtbmRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzJCQTU0MjkxRDU3MjZCQzAwMEEzMzMyIC8qIHJiYmlkYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHJiYmlkYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUMyQkE1NDJBMUQ1NzI2QzUwMDBBMzMzMiAvKiBjbWVtb3J5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNtZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzJCQTU0MkIxRDU3MjZFODAwMEEzMzMyIC8qIHVtYXBmaWxlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVtYXBmaWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUMyQkE1NDJDMUQ1NzI3MDkwMDBBMzMzMiAvKiBwdXRpbGltcC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwdXRpbGltcC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDMkJBNTQyRDFENTcyNzI0MDAwQTMzMzIgLyogdWRhdGFzd3AuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdWRhdGFzd3AuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MkUxRDU3MjczQjAwMEEzMzMyIC8qIHVtdXRleC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1bXV0ZXguaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzJCQTU0MkYxRDU3Mjc0QzAwMEEzMzMyIC8qIHV0cmllLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHV0cmllLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUMyQkE1NDMyMUQ1NzI5MzgwMDBBMzMzMiAvKiB1b3B0aW9ucy5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IHBhdGggPSB1b3B0aW9ucy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMkJBNTQzNDFENTcyOUE5MDAwQTMzMzIgLyogY3N0cmluZy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBjc3RyaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUMyQkE1NDM1MUQ1NzI5RkYwMDBBMzMzMiAvKiB1bmV3ZGF0YS5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IHBhdGggPSB1bmV3ZGF0YS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMkJBNTQzNzFENTcyQTJEMDAwQTMzMzIgLyogZmlsZXN0cm0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gZmlsZXN0cm0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJCQTU0MzgxRDU3MkFGODAwMEEzMzMyIC8qIGZpbGVzdHJtLmMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IGZpbGVzdHJtLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQkE1NDNGMUQ1ODc0RTYwMDBBMzMzMiAvKiBHZW5lcmF0ZUJyZWFraW5nUnVs
ZVN0cmluZ3MucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmlu
Z3MucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UwMUQ1NUM5NzEwMDQ4
NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgcGF0
aCA9IEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VO
b25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNB
MzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0Ez
N0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3RDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDMkNBMzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlh
VGltZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRpbWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY4OCw3ICs3NzksNyBAQAogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTE0NDdBRUM2MThGQ0U1Nzcw
MEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTE0
NDdBRUNCMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3Mg
Ki8sCisJCQkJQzJCQTU0M0UxRDU4NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4g
RnJhbWV3b3JrcyAqLywKIAkJCQkxNDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEg
aW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKQEAgLTcwMSw2ICs3OTIsMTQgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJQzJCQTU0MUExRDU3MjVCNDAwMEEz
MzMyIC8qIEZyYW1ld29ya3MgKi8gPSB7CisJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFz
ZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQkx
NDQ3QUVDQjE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtz
ICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwor
CQl9OwogLyogRW5kIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAogLyogQmVn
aW4gUEJYR3JvdXAgc2VjdGlvbiAqLwpAQCAtNzI1LDYgKzgyNCwyNSBAQAogCQkJcGF0aCA9IGlj
dTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTFDRDE4NzkxMUQ1NTk4RTEw
MENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQlDMkJBNTQzRjFENTg3NEU2MDAwQTMzMzIgLyogR2VuZXJhdGVCcmVh
a2luZ1J1bGVTdHJpbmdzLnB5ICovLAorCQkJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBD
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFDRDE4NzkzMUQ1NTk5NjUw
MENDN0RFQyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLywKKwkJCQkxQ0I0RkI5
NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8sCisJ
CQkJMUNCNEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25D
SksudHh0ICovLAorCQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk4
MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCAq
LywKKwkJCQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJCTFDQjRGQjlCMUQ1NTlC
M0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLywK
KwkJCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1
ZS50eHQgKi8sCisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTc0NiwxMCArODY0
LDEyIEBACiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2
ZWRTb3VyY2VzLm1ha2UgKi8sCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAwRTc4Qjc2IC8qIENvbmZp
Z3VyYXRpb25zICovLAogCQkJCTE0MDIyRjNGMThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMg
Ki8sCiAJCQkJNUQyNDdCNjMxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2R1Y3RzICovLAogCQkJCTVE
MjQ3Qjc2MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJCQkJQzJDQTM3REYxRDU1QzhE
ODAwNDg2Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3MDBC
M0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVCOTAw
QjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtNzYwLDYgKzg4MCw3IEBA
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxNDQ3QUVCRTE4RkNFNTY5MDBCM0Q3RkYgLyogbGlibWJt
YWxsb2MuZHlsaWIgKi8sCiAJCQkJNUQyNDdCNjIxNDY4OUI4NjAwRTc4Qjc2IC8qIGxpYldURi5h
ICovLAorCQkJCUMyQkE1NDFEMUQ1NzI1QjQwMDBBMzMzMiAvKiBnZW5icmsgKi8sCiAJCQkpOwog
CQkJbmFtZSA9IFByb2R1Y3RzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEwODMs
NiArMTIwNCw4IEBACiAJCUE4QTQ3MzFCMTUxQTgyNUIwMDQxMjNGRiAvKiB0ZXh0ICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDMkJBNTQxNzFENTcyNTkw
MDAwQTMzMzIgLyogZ2VuYnJrICovLAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBC
cmVha2luZ1J1bGVzICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3UgKi8s
CiAJCQkJQTVCQTE1RjYxODI0MzU5RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCUE1QkExNUYxMTgy
NDMzOUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMTU4LDYgKzEyODEsNDcgQEAKIAkJCXBhdGgg
PSBpY3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkJBNTQxNzFENTcy
NTkwMDAwQTMzMzIgLyogZ2VuYnJrICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGls
ZHJlbiA9ICgKKwkJCQlDMkJBNTQxODFENTcyNTkwMDAwQTMzMzIgLyogZ2VuYnJrLmNwcCAqLywK
KwkJCQlDMkJBNTQzMjFENTcyOTM4MDAwQTMzMzIgLyogdW9wdGlvbnMuYyAqLywKKwkJCQlDMkJB
NTQzNTFENTcyOUZGMDAwQTMzMzIgLyogdW5ld2RhdGEuYyAqLywKKwkJCQlDMkJBNTQzODFENTcy
QUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyAqLywKKwkJCQlDMkJBNTQyNjFENTcyNjdDMDAwQTMz
MzIgLyogdW9wdGlvbnMuaCAqLywKKwkJCQlDMkJBNTQyNzFENTcyNjg5MDAwQTMzMzIgLyogdW5l
d2RhdGEuaCAqLywKKwkJCQlDMkJBNTQyODFENTcyNkIwMDAwQTMzMzIgLyogdWNtbmRhdGEuaCAq
LywKKwkJCQlDMkJBNTQyOTFENTcyNkJDMDAwQTMzMzIgLyogcmJiaWRhdGEuaCAqLywKKwkJCQlD
MkJBNTQyQTFENTcyNkM1MDAwQTMzMzIgLyogY21lbW9yeS5oICovLAorCQkJCUMyQkE1NDJCMUQ1
NzI2RTgwMDBBMzMzMiAvKiB1bWFwZmlsZS5oICovLAorCQkJCUMyQkE1NDJDMUQ1NzI3MDkwMDBB
MzMzMiAvKiBwdXRpbGltcC5oICovLAorCQkJCUMyQkE1NDJEMUQ1NzI3MjQwMDBBMzMzMiAvKiB1
ZGF0YXN3cC5oICovLAorCQkJCUMyQkE1NDJFMUQ1NzI3M0IwMDBBMzMzMiAvKiB1bXV0ZXguaCAq
LywKKwkJCQlDMkJBNTQyRjFENTcyNzRDMDAwQTMzMzIgLyogdXRyaWUuaCAqLywKKwkJCQlDMkJB
NTQzNDFENTcyOUE5MDAwQTMzMzIgLyogY3N0cmluZy5oICovLAorCQkJCUMyQkE1NDM3MUQ1NzJB
MkQwMDBBMzMzMiAvKiBmaWxlc3RybS5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBnZW5icms7CisJ
CQlwYXRoID0gQnJlYWtpbmdSdWxlcy9nZW5icms7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OworCQlDMkNBMzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFE
NTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJ
CQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5j
cHAgKi8sCisJCQkJQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTQxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwICovLAorCQkJ
CUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwICovLAorCQkJCUMyQ0Ez
N0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV1RGOworCQkJc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsK
KwkJfTsKIAkJQ0U0NjUxNkMxOURCMUZCNDAwM0VDQTA1IC8qIGNvY29hICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE0NzAsNiArMTYzNCw3IEBACiAJCQli
dWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCQkxQ0QxODc4ODFE
NTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2
MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1l
ID0gV1RGOwpAQCAtMTQ3Nyw2ICsxNjQyLDIzIEBACiAJCQlwcm9kdWN0UmVmZXJlbmNlID0gNUQy
NDdCNjIxNDY4OUI4NjAwRTc4Qjc2IC8qIGxpYldURi5hICovOwogCQkJcHJvZHVjdFR5cGUgPSAi
Y29tLmFwcGxlLnByb2R1Y3QtdHlwZS5saWJyYXJ5LnN0YXRpYyI7CiAJCX07CisJCUMyQkE1NDFD
MUQ1NzI1QjQwMDBBMzMzMiAvKiBnZW5icmsgKi8gPSB7CisJCQlpc2EgPSBQQlhOYXRpdmVUYXJn
ZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gQzJCQTU0MjExRDU3MjVCNDAwMEEzMzMy
IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJnZW5icmsi
ICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJCQkJQzJCQTU0MTkxRDU3MjVCNDAwMEEzMzMyIC8q
IFNvdXJjZXMgKi8sCisJCQkJQzJCQTU0MUExRDU3MjVCNDAwMEEzMzMyIC8qIEZyYW1ld29ya3Mg
Ki8sCisJCQkJQzJCQTU0MUIxRDU3MjVCNDAwMEEzMzMyIC8qIENvcHlGaWxlcyAqLywKKwkJCSk7
CisJCQlidWlsZFJ1bGVzID0gKAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJ
CQluYW1lID0gZ2VuYnJrOworCQkJcHJvZHVjdE5hbWUgPSBnZW5icms7CisJCQlwcm9kdWN0UmVm
ZXJlbmNlID0gQzJCQTU0MUQxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLzsKKwkJCXByb2R1
Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUudG9vbCI7CisJCX07CiAvKiBFbmQgUEJY
TmF0aXZlVGFyZ2V0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYUHJvamVjdCBzZWN0aW9uICov
CkBAIC0xNDg1LDYgKzE2NjcsMTEgQEAKIAkJCWF0dHJpYnV0ZXMgPSB7CiAJCQkJTGFzdFN3aWZ0
VXBkYXRlQ2hlY2sgPSAwNzAwOwogCQkJCUxhc3RVcGdyYWRlQ2hlY2sgPSAwNzAwOworCQkJCVRh
cmdldEF0dHJpYnV0ZXMgPSB7CisJCQkJCUMyQkE1NDFDMUQ1NzI1QjQwMDBBMzMzMiA9IHsKKwkJ
CQkJCUNyZWF0ZWRPblRvb2xzVmVyc2lvbiA9IDcuMy4xOworCQkJCQl9OworCQkJCX07CiAJCQl9
OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDVEMjQ3QjVDMTQ2ODlCODYwMEU3OEI3NiAv
KiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldURiIgKi87CiAJCQlj
b21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAzLjIiOwpAQCAtMTUwMCwxMiArMTY4NywyOCBA
QAogCQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICov
LAogCQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovLAor
CQkJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJ
MTQ0N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFsbG9jICovLAorCQkJCUMyQkE1NDFDMUQ1
NzI1QjQwMDBBMzMzMiAvKiBnZW5icmsgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2pl
Y3Qgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlv
biAqLworCQkxQ0QxODc4MjFENTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3Vy
Y2VzICovID0geworCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0
aHMgPSAoCisJCQkpOworCQkJbmFtZSA9ICJHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMiOworCQkJ
b3V0cHV0UGF0aHMgPSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CisJCQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAibWtk
aXIgLXAgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcbmNkIFwi
JHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURlwiXG5cbi9iaW4vbG4gLXNm
aCBcIiR7U1JDUk9PVH1cIiBXVEZcbmV4cG9ydCBXVEY9XCJXVEZcIlxuXG5pZiBbICEgLWQgQnJl
YWtpbmdSdWxlcyBdOyB0aGVuXG4gICAgbWtkaXIgQnJlYWtpbmdSdWxlc1xuZmlcblxuaWYgWyBc
IiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEwLjEwXCIgXTsgdGhlblxuICAgIGV4
cG9ydCBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9MFxuZWxzZVxuICAgIGV4cG9ydCBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQ9MVxuZmlcblxuaWYgWyBcIiR7QUNUSU9OfVwiID0gXCJidWlsZFwi
IC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0
YWxsaGRyc1wiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxhcGlcIiBdOyB0aGVuXG5tYWtl
IC0tbm8tYnVpbHRpbi1ydWxlcyAtZiBcIldURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1q
IGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9PVD1cIiR7U0RLUk9PVH1c
IlxuZmkiOworCQl9OwogCQk2NUFGQTE3MDE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVh
ZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKIAkJCWJ1aWxk
QWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNTM2LDYgKzE3MzksOCBAQAogCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCUE4QTQ3Mzg2MTUxQTgy
NUIwMDQxMjNGRiAvKiBBc3NlcnRpb25zLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0Yx
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3
NDM1MTUxQTgyNUIwMDQxMjNGRiAvKiBBdG9taWNTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNzBFQ0E2MEQxQjAyNDI2ODAwNDQ5NzM5IC8qIEF0b21pY1N0cmluZ0ltcGwuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTVCQTE1RkExODI0MzVBNjAwQTgyRTY5IC8qIEF0b21pY1N0cmluZ0lt
cGxDRi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1NjMsNiArMTc2OCw3IEBACiAJCQkJQThBNDcz
QjAxNTFBODI1QjAwNDEyM0ZGIC8qIGRvdWJsZS1jb252ZXJzaW9uLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDczQkExNTFBODI1QjAwNDEyM0ZGIC8qIGR0b2EuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDczQjMxNTFBODI1QjAwNDEyM0ZGIC8qIGZhc3QtZHRvYS5jYyBpbiBTb3VyY2Vz
ICovLAorCQkJCUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGODg1RTBGMTg0NUFFQTkwMEYxRTNG
QSAvKiBGYXN0Qml0VmVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0MzMTUxQTgy
NUIwMDQxMjNGRiAvKiBGYXN0TWFsbG9jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDRUUyMjAx
MUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRpb25zLm1tIGluIFNvdXJjZXMgKi8s
CkBAIC0xNTc4LDYgKzE3ODQsNyBAQAogCQkJCUE4QTQ3M0U5MTUxQTgyNUIwMDQxMjNGRiAvKiBN
RDUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1NDk3QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1l
ZGlhVGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNFQzE1MUE4MjVCMDA0MTIzRkYg
LyogTWV0YUFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdGMDFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBOEE0NzNGNDE1MUE4MjVCMDA0MTIzRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGNzE1MUE4MjVCMDA0MTIzRkYgLyogT1NBbGxvY2F0
b3JQb3NpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGOTE1MUE4MjVCMDA0MTIzRkYg
LyogT1NSYW5kb21Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNTg1LDYgKzE3OTIsNyBA
QAogCQkJCTFDMTgxQzkzMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGRjE5REMxQkIzMzRFQjAwODg2RDkxIC8qIFBhcmFsbGVs
SGVscGVyUG9vbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjgyNEE2ODFCNzQ0M0EwMDAyRTM0
NUQgLyogUGFya2luZ0xvdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRTFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjlEMzM2MjE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MTQxNTFBODI1QjAwNDEyM0ZGIC8qIFJhbmRvbU51
bWJlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE2MTksOSArMTgyNywxMyBAQAogCQkJCUE4QTQ3
NDRBMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QThBNDc0NEUxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZGluZ1B0aHJlYWRzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4QTQ3NDY5MTUxQTgyNUIwMDQxMjNGRiAvKiBVVEY4LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUZBNDdDOEExNTI1MDJE
QTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFNDQ3
OUMxQjdBQUEwMzAwOTQ5OEVCIC8qIFdvcmRMb2NrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMy
Q0EzN0U5MUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEQ0VFMjIwMzFD
RUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBMEFEMzkxQTk2MjQ1NTAw
NTM2REY2IC8qIFdvcmtRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzRDFBOTYy
NTNDMDA1MzZERjYgLyogV29ya1F1ZXVlQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDc0NDUxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTE2MjksNiArMTg0MSwxNyBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OworCQlDMkJBNTQxOTFENTcyNUI0MDAwQTMzMzIgLyogU291cmNl
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25N
YXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCUMyQkE1NDMzMUQ1NzI5MzgwMDBB
MzMzMiAvKiB1b3B0aW9ucy5jIGluIFNvdXJjZXMgKi8sCisJCQkJQzJCQTU0MzkxRDU3MkFGODAw
MEEzMzMyIC8qIGZpbGVzdHJtLmMgaW4gU291cmNlcyAqLywKKwkJCQlDMkJBNTQyNTFENTcyNUM0
MDAwQTMzMzIgLyogZ2VuYnJrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQkE1NDM2MUQ1NzI5
RkYwMDBBMzMzMiAvKiB1bmV3ZGF0YS5jIGluIFNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAvKiBFbmQgUEJYU291cmNl
c0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhUYXJnZXREZXBlbmRlbmN5IHNl
Y3Rpb24gKi8KQEAgLTE2MzcsMTEgKzE4NjAsMjEgQEAKIAkJCXRhcmdldCA9IDVEMjQ3QjYxMTQ2
ODlCODYwMEU3OEI3NiAvKiBXVEYgKi87CiAJCQl0YXJnZXRQcm94eSA9IDE0NDdBRUMzMThGQ0U1
NzAwMEIzRDdGRiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJCTFDRDE4Nzg4
MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0g
UEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RF
QyAvKiBEZXJpdmVkIFNvdXJjZXMgKi87CisJCQl0YXJnZXRQcm94eSA9IDFDRDE4Nzg3MUQ1NTY5
ODgwMENDN0RFQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CisJCX07CiAJCTY1QUZBMjhF
MTYzMEI5OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewogCQkJaXNhID0g
UEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9IDY1QUZBMTZGMTYzMEI5NzcwMDNENzIz
QyAvKiBDb3B5IFdURiBIZWFkZXJzICovOwogCQkJdGFyZ2V0UHJveHkgPSA2NUFGQTI4RDE2MzBC
OTlFMDAzRDcyM0MgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9OworCQlDMkJBNTQz
QjFENTcyQkVCMDAwQTMzMzIgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9
IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQgPSBDMkJBNTQxQzFENTcyNUI0MDAwQTMz
MzIgLyogZ2VuYnJrICovOworCQkJdGFyZ2V0UHJveHkgPSBDMkJBNTQzQTFENTcyQkVCMDAwQTMz
MzIgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9OwogLyogRW5kIFBCWFRhcmdldERl
cGVuZGVuY3kgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0
aW9uICovCkBAIC0xNjY2LDYgKzE4OTksMzAgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlv
bjsKIAkJfTsKKwkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICovID0geworCQkJ
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5j
ZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87
CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1F
KSI7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQkxQ0QxODc4NTFENTU2OTVDMDBD
QzdERUMgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwor
CQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYg
LyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQ
Uk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNl
OworCQl9OworCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJvZHVjdGlvbiAqLyA9IHsK
KwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZl
cmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmln
ICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRf
TkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDI0N0I2NDE0
Njg5Qjg2MDBFNzhCNzYgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJh
dGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAw
RTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKQEAgLTE3MzYsNiArMTk5MywyMDQg
QEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJQzJCQTU0MjIxRDU3MjVC
NDAwMEEzMzMyIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3
NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJ
CUFMV0FZU19TRUFSQ0hfVVNFUl9QQVRIUyA9IE5POworCQkJCUNMQU5HX0FOQUxZWkVSX05PTk5V
TEwgPSBZRVM7CisJCQkJQ0xBTkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJEID0gImdudSsrMHgiOwor
CQkJCUNMQU5HX0NYWF9MSUJSQVJZID0gImxpYmMrKyI7CisJCQkJQ0xBTkdfRU5BQkxFX01PRFVM
RVMgPSBZRVM7CisJCQkJQ0xBTkdfRU5BQkxFX09CSkNfQVJDID0gWUVTOworCQkJCUNMQU5HX1dB
Uk5fQk9PTF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQ09OU1RBTlRfQ09OVkVS
U0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0RJUkVDVF9PQkpDX0lTQV9VU0FHRSA9IFlFU19F
UlJPUjsKKwkJCQlDTEFOR19XQVJOX0VNUFRZX0JPRFkgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9F
TlVNX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9JTlRfQ09OVkVSU0lPTiA9IFlF
UzsKKwkJCQlDTEFOR19XQVJOX09CSkNfUk9PVF9DTEFTUyA9IFlFU19FUlJPUjsKKwkJCQlDTEFO
R19XQVJOX1VOUkVBQ0hBQkxFX0NPREUgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9fRFVQTElDQVRF
X01FVEhPRF9NQVRDSCA9IFlFUzsKKwkJCQlDT0RFX1NJR05fSURFTlRJVFkgPSAiLSI7CisJCQkJ
Q09QWV9QSEFTRV9TVFJJUCA9IE5POworCQkJCURFQlVHX0lORk9STUFUSU9OX0ZPUk1BVCA9IGR3
YXJmOworCQkJCUVOQUJMRV9TVFJJQ1RfT0JKQ19NU0dTRU5EID0gWUVTOworCQkJCUVOQUJMRV9U
RVNUQUJJTElUWSA9IFlFUzsKKwkJCQlHQ0NfQ19MQU5HVUFHRV9TVEFOREFSRCA9IGdudTk5Owor
CQkJCUdDQ19EWU5BTUlDX05PX1BJQyA9IE5POworCQkJCUdDQ19OT19DT01NT05fQkxPQ0tTID0g
WUVTOworCQkJCUdDQ19PUFRJTUlaQVRJT05fTEVWRUwgPSAwOworCQkJCUdDQ19QUkVQUk9DRVNT
T1JfREVGSU5JVElPTlMgPSAoCisJCQkJCSJERUJVRz0xIiwKKwkJCQkJIlVfU0hPV19DUExVU1BM
VVNfQVBJPTEiLAorCQkJCQkiJChpbmhlcml0ZWQpIiwKKwkJCQkpOworCQkJCUdDQ19XQVJOXzY0
X1RPXzMyX0JJVF9DT05WRVJTSU9OID0gTk87CisJCQkJR0NDX1dBUk5fQUJPVVRfTUlTU0lOR19Q
Uk9UT1RZUEVTID0gTk87CisJCQkJR0NDX1dBUk5fQUJPVVRfUkVUVVJOX1RZUEUgPSBZRVNfRVJS
T1I7CisJCQkJR0NDX1dBUk5fU0lHTl9DT01QQVJFID0gTk87CisJCQkJR0NDX1dBUk5fVU5ERUNM
QVJFRF9TRUxFQ1RPUiA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0g
WUVTX0FHR1JFU1NJVkU7CisJCQkJR0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVTOworCQkJ
CUdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKKwkJCQlNQUNPU1hfREVQTE9ZTUVOVF9U
QVJHRVQgPSAxMC4xMTsKKwkJCQlNVExfRU5BQkxFX0RFQlVHX0lORk8gPSBZRVM7CisJCQkJT05M
WV9BQ1RJVkVfQVJDSCA9IFlFUzsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSki
OworCQkJCVdBUk5JTkdfQ0ZMQUdTID0gKAorCQkJCQkiLVdhbGwiLAorCQkJCQkiLVdleHRyYSIs
CisJCQkJCSItV2Nhc3QtcXVhbCIsCisJCQkJCSItV2NoYXItc3Vic2NyaXB0cyIsCisJCQkJCSIt
V2V4dHJhLXRva2VucyIsCisJCQkJCSItV2Zvcm1hdD0yIiwKKwkJCQkJIi1XaW5pdC1zZWxmIiwK
KwkJCQkJIi1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIiwKKwkJCQkJIi1XcGFja2VkIiwKKwkJ
CQkJIi1XcG9pbnRlci1hcml0aCIsCisJCQkJCSItV3JlZHVuZGFudC1kZWNscyIsCisJCQkJCSIt
V3VuZGVmIiwKKwkJCQkJIi1Xd3JpdGUtc3RyaW5ncyIsCisJCQkJCSItV2V4aXQtdGltZS1kZXN0
cnVjdG9ycyIsCisJCQkJCSItV2dsb2JhbC1jb25zdHJ1Y3RvcnMiLAorCQkJCQkiLVd0YXV0b2xv
Z2ljYWwtY29tcGFyZSIsCisJCQkJCSItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIiwKKwkJCQkJIi1X
bm8tc2lnbi1jb21wYXJlIiwKKwkJCQkpOworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsK
KwkJQzJCQTU0MjMxRDU3MjVCNDAwMEEzMzMyIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBY
Q0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQy
NDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1
aWxkU2V0dGluZ3MgPSB7CisJCQkJQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87CisJCQkJ
Q0xBTkdfQU5BTFlaRVJfTk9OTlVMTCA9IFlFUzsKKwkJCQlDTEFOR19DWFhfTEFOR1VBR0VfU1RB
TkRBUkQgPSAiZ251KysweCI7CisJCQkJQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKKwkJ
CQlDTEFOR19FTkFCTEVfTU9EVUxFUyA9IFlFUzsKKwkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMg
PSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdf
V0FSTl9DT05TVEFOVF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRElSRUNUX09C
SkNfSVNBX1VTQUdFID0gWUVTX0VSUk9SOworCQkJCUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlF
UzsKKwkJCQlDTEFOR19XQVJOX0VOVU1fQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJO
X0lOVF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0g
WUVTX0VSUk9SOworCQkJCUNMQU5HX1dBUk5fVU5SRUFDSEFCTEVfQ09ERSA9IFlFUzsKKwkJCQlD
TEFOR19XQVJOX19EVVBMSUNBVEVfTUVUSE9EX01BVENIID0gWUVTOworCQkJCUNPREVfU0lHTl9J
REVOVElUWSA9ICItIjsKKwkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87CisJCQkJREVCVUdfSU5G
T1JNQVRJT05fRk9STUFUID0gImR3YXJmLXdpdGgtZHN5bSI7CisJCQkJRU5BQkxFX05TX0FTU0VS
VElPTlMgPSBOTzsKKwkJCQlFTkFCTEVfU1RSSUNUX09CSkNfTVNHU0VORCA9IFlFUzsKKwkJCQlH
Q0NfQ19MQU5HVUFHRV9TVEFOREFSRCA9IGdudTk5OworCQkJCUdDQ19OT19DT01NT05fQkxPQ0tT
ID0gWUVTOworCQkJCUdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlMgPSAoCisJCQkJCSJVX1NI
T1dfQ1BMVVNQTFVTX0FQST0xIiwKKwkJCQkJIiQoREVCVUdfREVGSU5FUykiLAorCQkJCQkiJChp
bmhlcml0ZWQpIiwKKwkJCQkpOworCQkJCUdDQ19XQVJOXzY0X1RPXzMyX0JJVF9DT05WRVJTSU9O
ID0gTk87CisJCQkJR0NDX1dBUk5fQUJPVVRfTUlTU0lOR19QUk9UT1RZUEVTID0gTk87CisJCQkJ
R0NDX1dBUk5fQUJPVVRfUkVUVVJOX1RZUEUgPSBZRVNfRVJST1I7CisJCQkJR0NDX1dBUk5fU0lH
Tl9DT01QQVJFID0gTk87CisJCQkJR0NDX1dBUk5fVU5ERUNMQVJFRF9TRUxFQ1RPUiA9IFlFUzsK
KwkJCQlHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTX0FHR1JFU1NJVkU7CisJCQkJ
R0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVTOworCQkJCUdDQ19XQVJOX1VOVVNFRF9WQVJJ
QUJMRSA9IFlFUzsKKwkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xMTsKKwkJCQlN
VExfRU5BQkxFX0RFQlVHX0lORk8gPSBOTzsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRf
TkFNRSkiOworCQkJCVdBUk5JTkdfQ0ZMQUdTID0gKAorCQkJCQkiLVdhbGwiLAorCQkJCQkiLVdl
eHRyYSIsCisJCQkJCSItV2Nhc3QtcXVhbCIsCisJCQkJCSItV2NoYXItc3Vic2NyaXB0cyIsCisJ
CQkJCSItV2V4dHJhLXRva2VucyIsCisJCQkJCSItV2Zvcm1hdD0yIiwKKwkJCQkJIi1XaW5pdC1z
ZWxmIiwKKwkJCQkJIi1XbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlIiwKKwkJCQkJIi1XcGFja2Vk
IiwKKwkJCQkJIi1XcG9pbnRlci1hcml0aCIsCisJCQkJCSItV3JlZHVuZGFudC1kZWNscyIsCisJ
CQkJCSItV3VuZGVmIiwKKwkJCQkJIi1Xd3JpdGUtc3RyaW5ncyIsCisJCQkJCSItV2V4aXQtdGlt
ZS1kZXN0cnVjdG9ycyIsCisJCQkJCSItV2dsb2JhbC1jb25zdHJ1Y3RvcnMiLAorCQkJCQkiLVd0
YXV0b2xvZ2ljYWwtY29tcGFyZSIsCisJCQkJCSItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIiwKKwkJ
CQkJIi1Xbm8tc2lnbi1jb21wYXJlIiwKKwkJCQkpOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNl
OworCQl9OworCQlDMkJBNTQyNDFENTcyNUI0MDAwQTMzMzIgLyogUHJvZHVjdGlvbiAqLyA9IHsK
KwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZl
cmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmln
ICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlBTFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMg
PSBOTzsKKwkJCQlDTEFOR19BTkFMWVpFUl9OT05OVUxMID0gWUVTOworCQkJCUNMQU5HX0NYWF9M
QU5HVUFHRV9TVEFOREFSRCA9ICJnbnUrKzB4IjsKKwkJCQlDTEFOR19DWFhfTElCUkFSWSA9ICJs
aWJjKysiOworCQkJCUNMQU5HX0VOQUJMRV9NT0RVTEVTID0gWUVTOworCQkJCUNMQU5HX0VOQUJM
RV9PQkpDX0FSQyA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0JPT0xfQ09OVkVSU0lPTiA9IFlFUzsK
KwkJCQlDTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FS
Tl9ESVJFQ1RfT0JKQ19JU0FfVVNBR0UgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9FTVBU
WV9CT0RZID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRU5VTV9DT05WRVJTSU9OID0gWUVTOworCQkJ
CUNMQU5HX1dBUk5fSU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9PQkpDX1JP
T1RfQ0xBU1MgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9VTlJFQUNIQUJMRV9DT0RFID0g
WUVTOworCQkJCUNMQU5HX1dBUk5fX0RVUExJQ0FURV9NRVRIT0RfTUFUQ0ggPSBZRVM7CisJCQkJ
Q09ERV9TSUdOX0lERU5USVRZID0gIi0iOworCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBOTzsKKwkJ
CQlERUJVR19JTkZPUk1BVElPTl9GT1JNQVQgPSAiZHdhcmYtd2l0aC1kc3ltIjsKKwkJCQlFTkFC
TEVfTlNfQVNTRVJUSU9OUyA9IE5POworCQkJCUVOQUJMRV9TVFJJQ1RfT0JKQ19NU0dTRU5EID0g
WUVTOworCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251OTk7CisJCQkJR0NDX05PX0NP
TU1PTl9CTE9DS1MgPSBZRVM7CisJCQkJR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgK
KwkJCQkJIlVfU0hPV19DUExVU1BMVVNfQVBJPTEiLAorCQkJCQkiJChERUJVR19ERUZJTkVTKSIs
CisJCQkJCSIkKGluaGVyaXRlZCkiLAorCQkJCSk7CisJCQkJR0NDX1dBUk5fNjRfVE9fMzJfQklU
X0NPTlZFUlNJT04gPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9NSVNTSU5HX1BST1RPVFlQRVMg
PSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9IFlFU19FUlJPUjsKKwkJCQlH
Q0NfV0FSTl9TSUdOX0NPTVBBUkUgPSBOTzsKKwkJCQlHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVD
VE9SID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVNfQUdHUkVT
U0lWRTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CisJCQkJR0NDX1dBUk5f
VU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEw
LjExOworCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IE5POworCQkJCVBST0RVQ1RfTkFNRSA9
ICIkKFRBUkdFVF9OQU1FKSI7CisJCQkJV0FSTklOR19DRkxBR1MgPSAoCisJCQkJCSItV2FsbCIs
CisJCQkJCSItV2V4dHJhIiwKKwkJCQkJIi1XY2FzdC1xdWFsIiwKKwkJCQkJIi1XY2hhci1zdWJz
Y3JpcHRzIiwKKwkJCQkJIi1XZXh0cmEtdG9rZW5zIiwKKwkJCQkJIi1XZm9ybWF0PTIiLAorCQkJ
CQkiLVdpbml0LXNlbGYiLAorCQkJCQkiLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUiLAorCQkJ
CQkiLVdwYWNrZWQiLAorCQkJCQkiLVdwb2ludGVyLWFyaXRoIiwKKwkJCQkJIi1XcmVkdW5kYW50
LWRlY2xzIiwKKwkJCQkJIi1XdW5kZWYiLAorCQkJCQkiLVd3cml0ZS1zdHJpbmdzIiwKKwkJCQkJ
Ii1XZXhpdC10aW1lLWRlc3RydWN0b3JzIiwKKwkJCQkJIi1XZ2xvYmFsLWNvbnN0cnVjdG9ycyIs
CisJCQkJCSItV3RhdXRvbG9naWNhbC1jb21wYXJlIiwKKwkJCQkJIi1XaW1wbGljaXQtZmFsbHRo
cm91Z2giLAorCQkJCQkiLVduby1zaWduLWNvbXBhcmUiLAorCQkJCSk7CisJCQl9OworCQkJbmFt
ZSA9IFByb2R1Y3Rpb247CisJCX07CiAvKiBFbmQgWENCdWlsZENvbmZpZ3VyYXRpb24gc2VjdGlv
biAqLwogCiAvKiBCZWdpbiBYQ0NvbmZpZ3VyYXRpb25MaXN0IHNlY3Rpb24gKi8KQEAgLTE3NDks
NiArMjIwNCwxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJ
ZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODMx
RDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVn
YXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0
aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJMUNEMTg3ODQxRDU1Njk1
QzAwQ0M3REVDIC8qIERlYnVnICovLAorCQkJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBS
ZWxlYXNlICovLAorCQkJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICov
LAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1
bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjVDMTQ2ODlC
ODYwMEU3OEI3NiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldU
RiIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1
cmF0aW9ucyA9ICgKQEAgLTE3NzksNiArMjI0NCwxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRp
b25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlv
bjsKIAkJfTsKKwkJQzJCQTU0MjExRDU3MjVCNDAwMEEzMzMyIC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJnZW5icmsiICovID0geworCQkJaXNhID0gWEND
b25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJQzJCQTU0
MjIxRDU3MjVCNDAwMEEzMzMyIC8qIERlYnVnICovLAorCQkJCUMyQkE1NDIzMUQ1NzI1QjQwMDBB
MzMzMiAvKiBSZWxlYXNlICovLAorCQkJCUMyQkE1NDI0MUQ1NzI1QjQwMDBBMzMzMiAvKiBQcm9k
dWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsK
KwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAvKiBFbmQg
WENDb25maWd1cmF0aW9uTGlzdCBzZWN0aW9uICovCiAJfTsKIAlyb290T2JqZWN0ID0gNUQyNDdC
NTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jy
a2l0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40YWE1ZTU1Mjc5NjA5MGVhZWJjZDdjZTdiN2QyNzVhYThiMzc3
NWI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmgK
QEAgLTAsMCArMSw2NTUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHly
aWdodCAoQykgMTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAg
Q29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorKgorKiBGaWxlIGJya2l0ZXIuaAorKgorKiBNb2RpZmljYXRpb24gSGlz
dG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAy
LzE4Lzk3ICAgIGFsaXUgICAgICAgIEFkZGVkIHR5cGVkZWYgZm9yIFRleHRDb3VudC4gIE1hZGUg
RE9ORSBjb25zdC4KKyogICAwNS8wNy85NyAgICBhbGl1ICAgICAgICBGaXhlZCBETEwgZGVjbGFy
YXRpb24uCisqICAgMDcvMDkvOTcgICAgamZpdHogICAgICAgUmVuYW1lZCBCcmVha0l0ZXJhdG9y
IGFuZCBpbnRlcmZhY2Ugc3luY2VkIHdpdGggSkRLCisqICAgMDgvMTEvOTggICAgaGVsZW5hICAg
ICAgU3luYy11cCBKREsxLjIuCisqICAgMDEvMTMvMjAwMCAgaGVsZW5hICAgICAgQWRkZWQgVUVy
cm9yQ29kZSBwYXJhbWV0ZXIgdG8gY3JlYXRlWFhYSW5zdGFuY2UgbWV0aG9kcy4KKyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIEJSS0lURVJfSAorI2RlZmluZSBCUktJVEVS
X0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxi
cmllZiBDKysgQVBJOiBCcmVhayBJdGVyYXRvci4KKyAqLworCisjaWYgVUNPTkZJR19OT19CUkVB
S19JVEVSQVRJT04KKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoKKyAqIEFsbG93IHRoZSBkZWNs
YXJhdGlvbiBvZiBBUElzIHdpdGggcG9pbnRlcnMgdG8gQnJlYWtJdGVyYXRvcgorICogZXZlbiB3
aGVuIGJyZWFrIGl0ZXJhdGlvbiBpcyByZW1vdmVkIGZyb20gdGhlIGJ1aWxkLgorICovCitjbGFz
cyBCcmVha0l0ZXJhdG9yOworCitVX05BTUVTUEFDRV9FTkQKKworI2Vsc2UKKworI2luY2x1ZGUg
InVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisjaW5jbHVk
ZSAidW5pY29kZS9jaGFyaXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9jaWQuaCIKKyNpbmNs
dWRlICJ1bmljb2RlL3VicmsuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVudW0uaCIKKyNpbmNs
dWRlICJ1bmljb2RlL3V0ZXh0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bWlzYy5oIgorCitVX05B
TUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFRoZSBCcmVha0l0ZXJhdG9yIGNsYXNzIGltcGxlbWVu
dHMgbWV0aG9kcyBmb3IgZmluZGluZyB0aGUgbG9jYXRpb24KKyAqIG9mIGJvdW5kYXJpZXMgaW4g
dGV4dC4gQnJlYWtJdGVyYXRvciBpcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzLgorICogSW5zdGFu
Y2VzIG9mIEJyZWFrSXRlcmF0b3IgbWFpbnRhaW4gYSBjdXJyZW50IHBvc2l0aW9uIGFuZCBzY2Fu
IG92ZXIKKyAqIHRleHQgcmV0dXJuaW5nIHRoZSBpbmRleCBvZiBjaGFyYWN0ZXJzIHdoZXJlIGJv
dW5kYXJpZXMgb2NjdXIuCisgKiA8cD4KKyAqIExpbmUgYm91bmRhcnkgYW5hbHlzaXMgZGV0ZXJt
aW5lcyB3aGVyZSBhIHRleHQgc3RyaW5nIGNhbiBiZSBicm9rZW4KKyAqIHdoZW4gbGluZS13cmFw
cGluZy4gVGhlIG1lY2hhbmlzbSBjb3JyZWN0bHkgaGFuZGxlcyBwdW5jdHVhdGlvbiBhbmQKKyAq
IGh5cGhlbmF0ZWQgd29yZHMuCisgKiA8cD4KKyAqIFNlbnRlbmNlIGJvdW5kYXJ5IGFuYWx5c2lz
IGFsbG93cyBzZWxlY3Rpb24gd2l0aCBjb3JyZWN0CisgKiBpbnRlcnByZXRhdGlvbiBvZiBwZXJp
b2RzIHdpdGhpbiBudW1iZXJzIGFuZCBhYmJyZXZpYXRpb25zLCBhbmQKKyAqIHRyYWlsaW5nIHB1
bmN0dWF0aW9uIG1hcmtzIHN1Y2ggYXMgcXVvdGF0aW9uIG1hcmtzIGFuZCBwYXJlbnRoZXNlcy4K
KyAqIDxwPgorICogV29yZCBib3VuZGFyeSBhbmFseXNpcyBpcyB1c2VkIGJ5IHNlYXJjaCBhbmQg
cmVwbGFjZSBmdW5jdGlvbnMsIGFzCisgKiB3ZWxsIGFzIHdpdGhpbiB0ZXh0IGVkaXRpbmcgYXBw
bGljYXRpb25zIHRoYXQgYWxsb3cgdGhlIHVzZXIgdG8KKyAqIHNlbGVjdCB3b3JkcyB3aXRoIGEg
ZG91YmxlIGNsaWNrLiBXb3JkIHNlbGVjdGlvbiBwcm92aWRlcyBjb3JyZWN0CisgKiBpbnRlcnBy
ZXRhdGlvbiBvZiBwdW5jdHVhdGlvbiBtYXJrcyB3aXRoaW4gYW5kIGZvbGxvd2luZworICogd29y
ZHMuIENoYXJhY3RlcnMgdGhhdCBhcmUgbm90IHBhcnQgb2YgYSB3b3JkLCBzdWNoIGFzIHN5bWJv
bHMgb3IKKyAqIHB1bmN0dWF0aW9uIG1hcmtzLCBoYXZlIHdvcmQtYnJlYWtzIG9uIGJvdGggc2lk
ZXMuCisgKiA8cD4KKyAqIENoYXJhY3RlciBib3VuZGFyeSBhbmFseXNpcyBhbGxvd3MgdXNlcnMg
dG8gaW50ZXJhY3Qgd2l0aAorICogY2hhcmFjdGVycyBhcyB0aGV5IGV4cGVjdCB0bywgZm9yIGV4
YW1wbGUsIHdoZW4gbW92aW5nIHRoZSBjdXJzb3IKKyAqIHRocm91Z2ggYSB0ZXh0IHN0cmluZy4g
Q2hhcmFjdGVyIGJvdW5kYXJ5IGFuYWx5c2lzIHByb3ZpZGVzIGNvcnJlY3QKKyAqIG5hdmlnYXRp
b24gb2YgdGhyb3VnaCBjaGFyYWN0ZXIgc3RyaW5ncywgcmVnYXJkbGVzcyBvZiBob3cgdGhlCisg
KiBjaGFyYWN0ZXIgaXMgc3RvcmVkLiAgRm9yIGV4YW1wbGUsIGFuIGFjY2VudGVkIGNoYXJhY3Rl
ciBtaWdodCBiZQorICogc3RvcmVkIGFzIGEgYmFzZSBjaGFyYWN0ZXIgYW5kIGEgZGlhY3JpdGlj
YWwgbWFyay4gV2hhdCB1c2VycworICogY29uc2lkZXIgdG8gYmUgYSBjaGFyYWN0ZXIgY2FuIGRp
ZmZlciBiZXR3ZWVuIGxhbmd1YWdlcy4KKyAqIDxwPgorICogVGhlIHRleHQgYm91bmRhcnkgcG9z
aXRpb25zIGFyZSBmb3VuZCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzCisgKiBkZXNjcmliZWQgaW4g
VW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMjksIFRleHQgQm91bmRhcmllcywgYW5kCisgKiBVbmlj
b2RlIFN0YW5kYXJkIEFubmV4ICMxNCwgTGluZSBCcmVha2luZyBQcm9wZXJ0aWVzLiAgVGhlc2UK
KyAqIGFyZSBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMTQv
IGFuZAorICogaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkvLgorICogPHA+Cisg
KiBJbiBhZGRpdGlvbiB0byB0aGUgQysrIEFQSSBkZWZpbmVkIGluIHRoaXMgaGVhZGVyIGZpbGUs
IGEKKyAqIHBsYWluIEMgQVBJIHdpdGggZXF1aXZhbGVudCBmdW5jdGlvbmFsaXR5IGlzIGRlZmlu
ZWQgaW4gdGhlCisgKiBmaWxlIHVicmsuaAorICogPHA+CisgKiBDb2RlIHNuaXBwZXRzIGlsbHVz
dHJhdGluZyB0aGUgdXNlIG9mIHRoZSBCcmVhayBJdGVyYXRvciBBUElzCisgKiBhcmUgYXZhaWxh
YmxlIGluIHRoZSBJQ1UgVXNlciBHdWlkZSwKKyAqIGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNl
cmd1aWRlL2JvdW5kYXJ5QW5hbHlzaXMuaHRtbAorICogYW5kIGluIHRoZSBzYW1wbGUgcHJvZ3Jh
bSBpY3Uvc291cmNlL3NhbXBsZXMvYnJlYWsvYnJlYWsuY3BwCisgKgorICovCitjbGFzcyBVX0NP
TU1PTl9BUEkgQnJlYWtJdGVyYXRvciA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1YmxpYzoKKyAgICAv
KioKKyAgICAgKiAgZGVzdHJ1Y3RvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIH5CcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4g
dHJ1ZSBpZiBhbm90aGVyIG9iamVjdCBpcyBzZW1hbnRpY2FsbHkgZXF1YWwgdG8gdGhpcworICAg
ICAqIG9uZS4gVGhlIG90aGVyIG9iamVjdCBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2YgdGhlIHNh
bWUgc3ViY2xhc3Mgb2YKKyAgICAgKiBCcmVha0l0ZXJhdG9yLiBPYmplY3RzIG9mIGRpZmZlcmVu
dCBzdWJjbGFzc2VzIGFyZSBjb25zaWRlcmVkCisgICAgICogdW5lcXVhbC4KKyAgICAgKiA8UD4K
KyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIEJyZWFrSXRlcmF0b3IgaXMgYXQgdGhlIHNhbWUg
cG9zaXRpb24gaW4gdGhlCisgICAgICogc2FtZSB0ZXh0LCBhbmQgaXMgdGhlIHNhbWUgY2xhc3Mg
YW5kIHR5cGUgKHdvcmQsIGxpbmUsIGV0Yy4pIG9mCisgICAgICogQnJlYWtJdGVyYXRvciwgYXMg
dGhlIGFyZ3VtZW50LiAgVGV4dCBpcyBjb25zaWRlcmVkIHRoZSBzYW1lIGlmCisgICAgICogaXQg
Y29udGFpbnMgdGhlIHNhbWUgY2hhcmFjdGVycywgaXQgbmVlZCBub3QgYmUgdGhlIHNhbWUKKyAg
ICAgKiBvYmplY3QsIGFuZCBzdHlsZXMgYXJlIG5vdCBjb25zaWRlcmVkLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBC
cmVha0l0ZXJhdG9yJikgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUg
Y29tcGxlbWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJhdG9yPT0KKyAgICAgKiBAcGFyYW0gcmhz
IFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5CisgICAgICog
QHJldHVybiB0aGUgY29tcGxlbWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJhdG9yPT0KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEJy
ZWFrSXRlcmF0b3ImIHJocykgY29uc3QgeyByZXR1cm4gIW9wZXJhdG9yPT0ocmhzKTsgfQorCisg
ICAgLyoqCisgICAgICogUmV0dXJuIGEgcG9seW1vcnBoaWMgY29weSBvZiB0aGlzIG9iamVjdC4g
IFRoaXMgaXMgYW4gYWJzdHJhY3QKKyAgICAgKiBtZXRob2Qgd2hpY2ggc3ViY2xhc3NlcyBpbXBs
ZW1lbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBCcmVh
a0l0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm4gYSBwb2x5bW9ycGhpYyBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuIERpZmZlcmVudCBzdWJj
bGFzc2VzCisgICAgICogd2lsbCByZXR1cm4gZGlzdGluY3QgdW5lcXVhbCB2YWx1ZXMuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5h
bWljQ2xhc3NJRCh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBD
aGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3ImIGdl
dFRleHQodm9pZCkgY29uc3QgPSAwOworCisKKyAgICAvKioKKyAgICAgICogIEdldCBhIFVUZXh0
IGZvciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgICogIFRoZSByZXR1cm5lZCBVVGV4
dCBpcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIFVUZXh0IHVzZWQgaW50ZXJuYWxseQorICAgICAg
KiAgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uLiAgSXQgY2FuIHNhZmVseSBi
ZSB1c2VkIHRvCisgICAgICAqICBhY2Nlc3MgdGhlIHRleHQgd2l0aG91dCBpbXBhY3RpbmcgYW55
IGJyZWFrIGl0ZXJhdG9yIG9wZXJhdGlvbnMsCisgICAgICAqICBidXQgdGhlIHVuZGVybHlpbmcg
dGV4dCBpdHNlbGYgbXVzdCBub3QgYmUgYWx0ZXJlZC4KKyAgICAgICoKKyAgICAgICogQHBhcmFt
IGZpbGxJbiBBIFVUZXh0IHRvIGJlIGZpbGxlZCBpbi4gIElmIE5VTEwsIGEgbmV3IFVUZXh0IHdp
bGwgYmUKKyAgICAgICogICAgICAgICAgIGFsbG9jYXRlZCB0byBob2xkIHRoZSByZXN1bHQuCisg
ICAgICAqIEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAgKiBA
cmV0dXJuICAgVGhlIGN1cnJlbnQgVVRleHQgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuICBJZiBh
biBpbnB1dAorICAgICAgKiAgICAgICAgICAgVVRleHQgd2FzIHByb3ZpZGVkLCBpdCB3aWxsIGFs
d2F5cyBiZSByZXR1cm5lZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICAqLworICAg
ICB2aXJ0dWFsIFVUZXh0ICpnZXRVVGV4dChVVGV4dCAqZmlsbEluLCBVRXJyb3JDb2RlICZzdGF0
dXMpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIENoYW5nZSB0aGUgdGV4dCBvdmVyIHdo
aWNoIHRoaXMgb3BlcmF0ZXMuIFRoZSB0ZXh0IGJvdW5kYXJ5IGlzCisgICAgICogcmVzZXQgdG8g
dGhlIHN0YXJ0LgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBVbmljb2RlU3RyaW5nIHVzZWQgdG8g
Y2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgdm9pZCAgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nICZ0ZXh0KSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBSZXNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdG8gb3BlcmF0ZSBvdmVyIHRo
ZSB0ZXh0IHJlcHJlc2VudGVkIGJ5CisgICAgICogdGhlIFVUZXh0LiAgVGhlIGl0ZXJhdG9yIHBv
c2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rp
b24gbWFrZXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBzdXBwbGllZCBVVGV4dC4gIFRoaXMgbWVh
bnMKKyAgICAgKiB0aGF0IHRoZSBjYWxsZXIgaXMgZnJlZSB0byBpbW1lZGlhdGVseSBjbG9zZSBv
ciBvdGhlcndpc2UgcmV1c2UgdGhlCisgICAgICogVXRleHQgdGhhdCB3YXMgcGFzc2VkIGFzIGEg
cGFyYW1ldGVyLCBidXQgdGhhdCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2VsZgorICAgICAqIG11
c3Qgbm90IGJlIGFsdGVyZWQgd2hpbGUgYmVpbmcgcmVmZXJlbmNlZCBieSB0aGUgYnJlYWsgaXRl
cmF0b3IuCisgICAgICoKKyAgICAgKiBBbGwgaW5kZXggcG9zaXRpb25zIHJldHVybmVkIGJ5IGJy
ZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyBhcmUKKyAgICAgKiBuYXRpdmUgaW5kaWNlcyBmcm9tIHRo
ZSBVVGV4dC4gRm9yIGV4YW1wbGUsIHdoZW4gYnJlYWtpbmcgVVRGLTgKKyAgICAgKiBlbmNvZGVk
IHRleHQsIHRoZSBicmVhayBwb3NpdGlvbnMgcmV0dXJuZWQgYnkgbmV4dCgpLCBwcmV2aW91cygp
LCBldGMuCisgICAgICogd2lsbCBiZSBVVEYtOCBzdHJpbmcgaW5kaWNlcywgbm90IFVURi0xNiBw
b3NpdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgVVRleHQgdXNlZCB0byBj
aGFuZ2UgdGhlIHRleHQuCisgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3Ig
Y29kZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICovCisgICAgdmlydHVhbCB2b2lk
ICBzZXRUZXh0KFVUZXh0ICp0ZXh0LCBVRXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKworICAgIC8q
KgorICAgICAqIENoYW5nZSB0aGUgdGV4dCBvdmVyIHdoaWNoIHRoaXMgb3BlcmF0ZXMuIFRoZSB0
ZXh0IGJvdW5kYXJ5IGlzCisgICAgICogcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqIE5vdGUg
dGhhdCBzZXRUZXh0KFVUZXh0ICopIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSB0byB0
aGlzIGZ1bmN0aW9uLAorICAgICAqIGFuZCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICAgKiBAcGFy
YW0gaXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgYWRvcHRUZXh0
KENoYXJhY3Rlckl0ZXJhdG9yKiBpdCkgPSAwOworCisgICAgZW51bSB7CisgICAgICAgIC8qKgor
ICAgICAgICAgKiBET05FIGlzIHJldHVybmVkIGJ5IHByZXZpb3VzKCkgYW5kIG5leHQoKSBhZnRl
ciBhbGwgdmFsaWQKKyAgICAgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQuCisg
ICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgRE9ORSA9IChp
bnQzMl90KS0xCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaXRl
cmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHBvc2l0aW9uIHpl
cm8uCisgICAgICogQHJldHVybiBUaGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRl
eHQsIHplcm8uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBp
bnQzMl90IGZpcnN0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0
b3IgcG9zaXRpb24gdG8gdGhlIGluZGV4IGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgbGFzdCBjaGFy
YWN0ZXIgaW4gdGhlIHRleHQgYmVpbmcgc2Nhbm5lZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBpbmRl
eCBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJlaW5n
IHNjYW5uZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBp
bnQzMl90IGxhc3Qodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRv
ciBwb3NpdGlvbiB0byB0aGUgYm91bmRhcnkgcHJlY2VkaW5nIHRoZSBjdXJyZW50IGJvdW5kYXJ5
LgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgcHJldmlvdXMgdGV4
dCBib3VuZGFyeSBvciBET05FIGlmIGFsbAorICAgICAqIGJvdW5kYXJpZXMgaGF2ZSBiZWVuIHJl
dHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50
MzJfdCBwcmV2aW91cyh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlIHRoZSBp
dGVyYXRvciB0byB0aGUgYm91bmRhcnkgZm9sbG93aW5nIHRoZSBjdXJyZW50IGJvdW5kYXJ5Lgor
ICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgbmV4dCB0ZXh0IGJvdW5k
YXJ5IG9yIERPTkUgaWYgYWxsCisgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IG5l
eHQodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGNoYXJhY3RlciBpbmRleCBv
ZiB0aGUgY3VycmVudCBpbnRlcmF0b3IgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LgorICAgICAq
IEByZXR1cm4gVGhlIGJvdW5kYXJ5IG1vc3QgcmVjZW50bHkgcmV0dXJuZWQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGN1cnJlbnQodm9pZCkg
Y29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogQWR2YW5jZSB0aGUgaXRlcmF0b3IgdG8gdGhl
IGZpcnN0IGJvdW5kYXJ5IGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBU
aGUgdmFsdWUgcmV0dXJuZWQgaXMgYWx3YXlzIGdyZWF0ZXIgdGhhbiB0aGUgb2Zmc2V0IG9yCisg
ICAgICogdGhlIHZhbHVlIEJyZWFrSXRlcmF0b3IuRE9ORQorICAgICAqIEBwYXJhbSBvZmZzZXQg
dGhlIG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KKyAgICAgKiBAcmV0dXJuIFRoZSBmaXJzdCBi
b3VuZGFyeSBhZnRlciB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZm9sbG93aW5nKGludDMyX3Qgb2Zmc2V0
KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRo
ZSBmaXJzdCBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICog
VGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5cyBzbWFsbGVyIHRoYW4gdGhlIG9mZnNldCBvcgor
ICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0ZXJhdG9yLkRPTkUKKyAgICAgKiBAcGFyYW0gb2Zmc2V0
IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nhbm5pbmcuCisgICAgICogQHJldHVybiBUaGUgZmlyc3Qg
Ym91bmRhcnkgYmVmb3JlIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmcoaW50MzJfdCBvZmZz
ZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBzcGVjZmllZCBw
b3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEFzIGEgc2lkZSBlZmZlY3Qs
IHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRvciBpcyBzZXQKKyAgICAgKiB0byB0
aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gYXQgb3IgZm9sbG93aW5nIHRoZSBzcGVjaWZpZWQg
b2Zmc2V0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBjaGVjay4KKyAgICAg
KiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIGlzQm91bmRhcnko
aW50MzJfdCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3Ig
cG9zaXRpb24gdG8gdGhlIG50aCBib3VuZGFyeSBmcm9tIHRoZSBjdXJyZW50IGJvdW5kYXJ5Cisg
ICAgICogQHBhcmFtIG4gdGhlIG51bWJlciBvZiBib3VuZGFyaWVzIHRvIG1vdmUgYnkuICBBIHZh
bHVlIG9mIDAKKyAgICAgKiBkb2VzIG5vdGhpbmcuICBOZWdhdGl2ZSB2YWx1ZXMgbW92ZSB0byBw
cmV2aW91cyBib3VuZGFyaWVzCisgICAgICogYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3ZlIHRvIGxh
dGVyIGJvdW5kYXJpZXMuCisgICAgICogQHJldHVybiBUaGUgbmV3IGl0ZXJhdG9yIHBvc2l0aW9u
LCBvcgorICAgICAqIERPTkUgaWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gfG58IGJvdW5kYXJpZXMg
aW4gdGhlIHNwZWNmaWVkIGRpcmVjdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dChpbnQzMl90IG4pID0gMDsKKworICAgLyoqCisg
ICAgICogRm9yIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JzLCByZXR1cm4gdGhlIHN0YXR1cyB0YWcg
ZnJvbSB0aGUgCisgICAgICogYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVj
ZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAg
KiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBhIHJ1bGUgc3Rh
dHVzLAorICAgICAqIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVkLgorICAgICAqIDxw
PgorICAgICAqIEByZXR1cm4gdGhlIHN0YXR1cyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0
ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqICAgICAgICAgcmV0dXJuZWQgYnJlYWsg
cG9zaXRpb24uCisgICAgICogQHNlZSBSdWxlQmFzZUJyZWFrSXRlcmF0b3I6OmdldFJ1bGVTdGF0
dXMoKQorICAgICAqIEBzZWUgVVdvcmRCcmVhaworICAgICAqIEBzdGFibGUgSUNVIDUyCisgICAg
ICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXMoKSBjb25zdDsKKworICAgLyoq
CisgICAgKiBGb3IgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcnMsIGdldCB0aGUgc3RhdHVzICh0YWcp
IHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIAorICAgICogdGhhdCBkZXRlcm1pbmVkIHRo
ZSBtb3N0IHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICogPHA+CisgICAg
KiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBydWxlIHN0YXR1
cywKKyAgICAqIG5vIHZhbHVlcyBhcmUgcmV0dXJuZWQuCisgICAgKiA8cD4KKyAgICAqIFRoZSBy
ZXR1cm5lZCBzdGF0dXMgdmFsdWUocykgYXJlIHN0b3JlZCBpbnRvIGFuIGFycmF5IHByb3ZpZGVk
IGJ5IHRoZSBjYWxsZXIuCisgICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gc29ydGVkIChh
c2NlbmRpbmcpIG9yZGVyLgorICAgICogSWYgdGhlIGNhcGFjaXR5IG9mIHRoZSBvdXRwdXQgYXJy
YXkgaXMgaW5zdWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgICAgKiAgdGhlIG91dHB1dCB3
aWxsIGJlIHRydW5jYXRlZCB0byB0aGUgYXZhaWxhYmxlIGxlbmd0aCwgYW5kIGEKKyAgICAqICBV
X0JVRkZFUl9PVkVSRkxPV19FUlJPUiB3aWxsIGJlIHNpZ25hbGVkLgorICAgICogPHA+CisgICAg
KiBAc2VlIFJ1bGVCYXNlQnJlYWtJdGVyYXRvcjo6Z2V0UnVsZVN0YXR1c1ZlYworICAgICoKKyAg
ICAqIEBwYXJhbSBmaWxsSW5WZWMgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGluIHdpdGggdGhlIHN0
YXR1cyB2YWx1ZXMuCisgICAgKiBAcGFyYW0gY2FwYWNpdHkgIHRoZSBsZW5ndGggb2YgdGhlIHN1
cHBsaWVkIHZlY3Rvci4gIEEgbGVuZ3RoIG9mIHplcm8gY2F1c2VzCisgICAgKiAgICAgICAgICAg
ICAgICAgIHRoZSBmdW5jdGlvbiB0byByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0dXMgdmFsdWVz
LCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgbm9ybWFsIHdheSwgd2l0aG91dCBhdHRl
bXRwaW5nIHRvIHN0b3JlIGFueSB2YWx1ZXMuCisgICAgKiBAcGFyYW0gc3RhdHVzICAgIHJlY2Vp
dmVzIGVycm9yIGNvZGVzLgorICAgICogQHJldHVybiAgICAgICAgICBUaGUgbnVtYmVyIG9mIHJ1
bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZAorICAgICogICAgICAg
ICAgICAgICAgICB0aGUgbW9zdCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQgYnkgdGhlIGJyZWFr
IGl0ZXJhdG9yLgorICAgICogICAgICAgICAgICAgICAgICBJbiB0aGUgZXZlbnQgb2YgYSBVX0JV
RkZFUl9PVkVSRkxPV19FUlJPUiwgdGhlIHJldHVybiB2YWx1ZQorICAgICogICAgICAgICAgICAg
ICAgICBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCB3ZXJlIGF2YWls
YWJsZSwKKyAgICAqICAgICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2VkIG51bWJlciB0aGF0
IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQuCisgICAgKiBAc2VlIGdldFJ1bGVTdGF0dXMKKyAgICAq
IEBzdGFibGUgSUNVIDUyCisgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1
c1ZlYyhpbnQzMl90ICpmaWxsSW5WZWMsIGludDMyX3QgY2FwYWNpdHksIFVFcnJvckNvZGUgJnN0
YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3Igd29yZC1i
cmVha3MgdXNpbmcgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNl
IG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgd29yZCBicmVha3MuCisgICAgICogV29y
ZEJyZWFrIGlzIHVzZWZ1bCBmb3Igd29yZCBzZWxlY3Rpb24gKGV4LiBkb3VibGUgY2xpY2spCisg
ICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyB0aGUg
ZXJyb3IgY29kZQorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciB3b3JkLWJyZWFr
cy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byBy
ZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdo
ZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNr
CisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBk
ZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlv
bmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBV
X1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxl
IHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBi
dXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVf
VVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBk
YXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFu
eSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAg
KiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUg
Zm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0
YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVXb3JkSW5zdGFuY2UoY29u
c3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAq
IENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBsaW5lLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9j
YWxlLgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxl
bWVudGluZyBsaW5lIGJyZWFrcy4gTGluZQorICAgICAqIGJyZWFrcyBhcmUgbG9naWNhbGx5IHBv
c3NpYmxlIGxpbmUgYnJlYWtzLCBhY3R1YWwgbGluZSBicmVha3MgYXJlCisgICAgICogdXN1YWxs
eSBkZXRlcm1pbmVkIGJhc2VkIG9uIGRpc3BsYXkgd2lkdGguCisgICAgICogTGluZUJyZWFrIGlz
IHVzZWZ1bCBmb3Igd29yZCB3cmFwcGluZyB0ZXh0LgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUg
bG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHJl
dHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIGxpbmUtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0
YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRp
b24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9u
IHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2Yg
VV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5
b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGlj
aCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklO
RyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAg
KiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0
aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcg
aW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsg
bmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9j
YWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUg
cmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVf
RVhQT1JUMgorICAgIGNyZWF0ZUxpbmVJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJy
b3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3Ig
Zm9yIGNoYXJhY3Rlci1icmVha3MgdXNpbmcgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVy
bnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyBjaGFyYWN0ZXIg
YnJlYWtzLgorICAgICAqIENoYXJhY3RlciBicmVha3MgYXJlIGJvdW5kYXJpZXMgb2YgY29tYmlu
aW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMuCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUu
CisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJuIEEg
QnJlYWtJdGVyYXRvciBmb3IgY2hhcmFjdGVyLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0
dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9u
IHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBz
dWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVf
U1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91
CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2gg
c3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcg
aW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICog
ZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhl
cmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGlu
ZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5l
aXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2Fs
ZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJl
dHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VY
UE9SVDIKKyAgICBjcmVhdGVDaGFyYWN0ZXJJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBV
RXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0
b3IgZm9yIHNlbnRlbmNlLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxlCisgICAgICogUmV0
dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIHNlbnRlbmNl
IGJyZWFrcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0g
c3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZv
ciBzZW50ZW5jZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1l
dGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAg
ICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwg
eW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElm
IHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVj
ayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1
Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEg
ZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcg
d2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcwor
ICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUg
ZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0
ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQg
YmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5k
IGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRl
U2VudGVuY2VJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMp
OworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIHRpdGxlLWNhc2lu
ZyBicmVha3MgdXNpbmcgdGhlIHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBSZXR1cm5zIGFuIGlu
c3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgdGl0bGUgYnJlYWtzLgorICAg
ICAqIFRoZSBpdGVyYXRvciByZXR1cm5lZCBsb2NhdGVzIHRpdGxlIGJvdW5kYXJpZXMgYXMgZGVz
Y3JpYmVkIGZvcgorICAgICAqIFVuaWNvZGUgMy4yIG9ubHkuIEZvciBVbmljb2RlIDQuMCBhbmQg
YWJvdmUgdGl0bGUgYm91bmRhcnkgaXRlcmF0aW9uLAorICAgICAqIHBsZWFzZSB1c2UgV29yZCBC
b3VuZGFyeSBpdGVyYXRvci57QGxpbmsgI2NyZWF0ZVdvcmRJbnN0YW5jZSB9CisgICAgICoKKyAg
ICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBl
cnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciB0aXRsZS1icmVh
a3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8g
cmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3
aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVj
aworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUg
ZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRp
b25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICog
VV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2Fs
ZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwg
YnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBV
X1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUg
ZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBh
bnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAg
ICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxl
IGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBz
dGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlVGl0bGVJbnN0YW5jZShj
b25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAg
ICogR2V0IHRoZSBzZXQgb2YgTG9jYWxlcyBmb3Igd2hpY2ggVGV4dEJvdW5kYXJpZXMgYXJlIGlu
c3RhbGxlZC4KKyAgICAgKiA8cD48Yj5Ob3RlOjwvYj4gdGhpcyB3aWxsIG5vdCByZXR1cm4gbG9j
YWxlcyBhZGRlZCB0aHJvdWdoIHRoZSByZWdpc3RlcgorICAgICAqIGNhbGwuIFRvIHNlZSB0aGUg
cmVnaXN0ZXJlZCBsb2NhbGVzIHRvbywgdXNlIHRoZSBnZXRBdmFpbGFibGVMb2NhbGVzCisgICAg
ICogZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgU3RyaW5nRW51bWVyYXRpb24gb2JqZWN0IDwvcD4K
KyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG91dHB1dCBwYXJhbWV0ZXIgb2YgbnVtYmVyIG9mIGVs
ZW1lbnRzIGluIHRoZSBsb2NhbGUgbGlzdAorICAgICAqIEByZXR1cm4gYXZhaWxhYmxlIGxvY2Fs
ZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9j
YWxlKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxlTG9jYWxlcyhpbnQzMl90JiBjb3VudCk7CisKKyAg
ICAvKioKKyAgICAgKiBHZXQgbmFtZSBvZiB0aGUgb2JqZWN0IGZvciB0aGUgZGVzaXJlZCBMb2Nh
bGUsIGluIHRoZSBkZXNpcmVkIGxhbmdhdWdlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUg
bXVzdCBiZSBmcm9tIGdldEF2YWlsYWJsZUxvY2FsZXMuCisgICAgICogQHBhcmFtIGRpc3BsYXlM
b2NhbGUgc3BlY2lmaWVzIHRoZSBkZXNpcmVkIGxvY2FsZSBmb3Igb3V0cHV0LgorICAgICAqIEBw
YXJhbSBuYW1lIHRoZSBmaWxsLWluIHBhcmFtZXRlciBvZiB0aGUgcmV0dXJuIHZhbHVlCisgICAg
ICogVXNlcyBiZXN0IG1hdGNoLgorICAgICAqIEByZXR1cm4gdXNlci1kaXNwbGF5YWJsZSBuYW1l
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVuaWNvZGVTdHJp
bmcmIFVfRVhQT1JUMiBnZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmIG9iamVjdExvY2FsZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxlJiBk
aXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBV
bmljb2RlU3RyaW5nJiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIEdldCBuYW1lIG9mIHRoZSBv
YmplY3QgZm9yIHRoZSBkZXNpcmVkIExvY2FsZSwgaW4gdGhlIGxhbmdhdWdlIG9mIHRoZQorICAg
ICAqIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUgbXVzdCBiZSBm
cm9tIGdldE1hdGNoaW5nTG9jYWxlcworICAgICAqIEBwYXJhbSBuYW1lIHRoZSBmaWxsLWluIHBh
cmFtZXRlciBvZiB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogQHJldHVybiB1c2VyLWRpc3BsYXlh
YmxlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgVW5p
Y29kZVN0cmluZyYgVV9FWFBPUlQyIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgb2JqZWN0
TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2Rl
U3RyaW5nJiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIERlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0
eS4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIFRocmVhZCBzYWZlIGNsaWVu
dC1idWZmZXItYmFzZWQgY2xvbmluZyBvcGVyYXRpb24KKyAgICAgKiAgICBEbyBOT1QgY2FsbCBk
ZWxldGUgb24gYSBzYWZlY2xvbmUsIHNpbmNlICduZXcnIGlzIG5vdCB1c2VkIHRvIGNyZWF0ZSBp
dC4KKyAgICAgKiBAcGFyYW0gc3RhY2tCdWZmZXIgdXNlciBhbGxvY2F0ZWQgc3BhY2UgZm9yIHRo
ZSBuZXcgY2xvbmUuIElmIE5VTEwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4KKyAgICAg
KiBJZiBidWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaCwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9j
YXRlZC4KKyAgICAgKiBAcGFyYW0gQnVmZmVyU2l6ZSByZWZlcmVuY2UgdG8gc2l6ZSBvZiBhbGxv
Y2F0ZWQgc3BhY2UuCisgICAgICogSWYgQnVmZmVyU2l6ZSA9PSAwLCBhIHN1ZmZpY2llbnQgc2l6
ZSBmb3IgdXNlIGluIGNsb25pbmcgd2lsbAorICAgICAqIGJlIHJldHVybmVkICgncHJlLWZsaWdo
dGluZycpCisgICAgICogSWYgQnVmZmVyU2l6ZSBpcyBub3QgZW5vdWdoIGZvciBhIHN0YWNrLWJh
c2VkIHNhZmUgY2xvbmUsCisgICAgICogbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4KKyAg
ICAgKiBAcGFyYW0gc3RhdHVzIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIG9wZXJhdGlvbiB3ZW50
IG9uIHNtb290aGx5IG9yIHRoZXJlIHdlcmUgZXJyb3JzCisgICAgICogIEFuIGluZm9ybWF0aW9u
YWwgc3RhdHVzIHZhbHVlLCBVX1NBRkVDTE9ORV9BTExPQ0FURURfRVJST1IsIGlzIHVzZWQgaWYg
YW55IGFsbG9jYXRpb25zIHdlcmUKKyAgICAgKiAgbmVjZXNzYXJ5LgorICAgICAqIEByZXR1cm4g
cG9pbnRlciB0byB0aGUgbmV3IGNsb25lCisgICAgICoKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1Ug
NTIuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJh
dG9yICogIGNyZWF0ZUJ1ZmZlckNsb25lKHZvaWQgKnN0YWNrQnVmZmVyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICZCdWZmZXJTaXplLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2Rl
ICZzdGF0dXMpID0gMDsKKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworICAgIC8q
KgorICAgICAqICAgRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIEJyZWFrSXRlcmF0b3Igd2FzIGNyZWF0
ZWQgaW4gdXNlciBtZW1vcnkgYnkKKyAgICAgKiAgIGNyZWF0ZUJ1ZmZlckNsb25lKCksIGFuZCB0
aHVzIHNob3VsZCBub3QgYmUgZGVsZXRlZC4gIFN1Y2ggb2JqZWN0cworICAgICAqICAgbXVzdCBi
ZSBjbG9zZWQgYnkgYW4gZXhwbGljaXQgY2FsbCB0byB0aGUgZGVzdHJ1Y3RvciAobm90IGRlbGV0
ZSkuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBBbHdheXMgZGVsZXRlIHRoZSBCcmVha0l0
ZXJhdG9yLgorICAgICAqLworICAgIGlubGluZSBVQm9vbCBpc0J1ZmZlckNsb25lKHZvaWQpOwor
CisjZW5kaWYgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisKKyNpZiAhVUNPTkZJR19OT19T
RVJWSUNFCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBuZXcgYnJlYWsgaXRlcmF0b3Igb2Yg
dGhlIGluZGljYXRlZCBraW5kLCB0byB1c2UgaW4gdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBU
aGUgYnJlYWsgaXRlcmF0b3Igd2lsbCBiZSBhZG9wdGVkLiAgQ2xvbmVzIG9mIHRoZSBpdGVyYXRv
ciB3aWxsIGJlIHJldHVybmVkCisgICAgICogaWYgYSByZXF1ZXN0IGZvciBhIGJyZWFrIGl0ZXJh
dG9yIG9mIHRoZSBnaXZlbiBraW5kIG1hdGNoZXMgb3IgZmFsbHMgYmFjayB0bworICAgICAqIHRo
aXMgbG9jYWxlLgorICAgICAqIEJlY2F1c2UgSUNVIG1heSBjaG9vc2UgdG8gY2FjaGUgQnJlYWtJ
dGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBtdXN0CisgICAgICogYmUgY2FsbGVkIGF0IGFwcGxp
Y2F0aW9uIHN0YXJ0dXAsIHByaW9yIHRvIGFueSBjYWxscyB0bworICAgICAqIEJyZWFrSXRlcmF0
b3I6OmNyZWF0ZVhYWEluc3RhbmNlIHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhhdmlvci4KKyAgICAg
KiBAcGFyYW0gdG9BZG9wdCB0aGUgQnJlYWtJdGVyYXRvciBpbnN0YW5jZSB0byBiZSBhZG9wdGVk
CisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgTG9jYWxlIGZvciB3aGljaCB0aGlzIGluc3RhbmNl
IGlzIHRvIGJlIHJlZ2lzdGVyZWQKKyAgICAgKiBAcGFyYW0ga2luZCB0aGUgdHlwZSBvZiBpdGVy
YXRvciBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAgICog
QHBhcmFtIHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVjaWFsIG1lYW5pbmdz
IGFyZSBhc3NpZ25lZAorICAgICAqIEByZXR1cm4gYSByZWdpc3RyeSBrZXkgdGhhdCBjYW4gYmUg
dXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQK
KyAgICAgKi8KKyAgICBzdGF0aWMgVVJlZ2lzdHJ5S2V5IFVfRVhQT1JUMiByZWdpc3Rlckluc3Rh
bmNlKEJyZWFrSXRlcmF0b3IqIHRvQWRvcHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgTG9jYWxlJiBsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVUJyZWFrSXRlcmF0b3JUeXBlIGtpbmQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8q
KgorICAgICAqIFVucmVnaXN0ZXIgYSBwcmV2aW91c2x5LXJlZ2lzdGVyZWQgQnJlYWtJdGVyYXRv
ciB1c2luZyB0aGUga2V5IHJldHVybmVkIGZyb20gdGhlCisgICAgICogcmVnaXN0ZXIgY2FsbC4g
IEtleSBiZWNvbWVzIGludmFsaWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgYW5kIHNob3VsZCBu
b3QgYmUgdXNlZCBhZ2Fpbi4KKyAgICAgKiBUaGUgQnJlYWtJdGVyYXRvciBjb3JyZXNwb25kaW5n
IHRvIHRoZSBrZXkgd2lsbCBiZSBkZWxldGVkLgorICAgICAqIEJlY2F1c2UgSUNVIG1heSBjaG9v
c2UgdG8gY2FjaGUgQnJlYWtJdGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBzaG91bGQKKyAgICAg
KiBiZSBjYWxsZWQgZHVyaW5nIGFwcGxpY2F0aW9uIHNodXRkb3duLCBhZnRlciBhbGwgY2FsbHMg
dG8KKyAgICAgKiBCcmVha0l0ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0byBhdm9pZCB1bmRl
ZmluZWQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIGtleSB0aGUgcmVnaXN0cnkga2V5IHJldHVy
bmVkIGJ5IGEgcHJldmlvdXMgY2FsbCB0byByZWdpc3Rlckluc3RhbmNlCisgICAgICogQHBhcmFt
IHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVjaWFsIG1lYW5pbmdzIGFyZSBh
c3NpZ25lZAorICAgICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgaXRlcmF0b3IgZm9yIHRoZSBrZXkg
d2FzIHN1Y2Nlc3NmdWxseSB1bnJlZ2lzdGVyZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAg
ICAgKi8KKyAgICBzdGF0aWMgVUJvb2wgVV9FWFBPUlQyIHVucmVnaXN0ZXIoVVJlZ2lzdHJ5S2V5
IGtleSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIFN0
cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMgYXZhaWxhYmxlIGF0IHRoZSB0aW1lIG9m
IHRoZSBjYWxsLAorICAgICAqIGluY2x1ZGluZyByZWdpc3RlcmVkIGxvY2FsZXMuCisgICAgICog
QHJldHVybiBhIFN0cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMgYXZhaWxhYmxlIGF0
IHRoZSB0aW1lIG9mIHRoZSBjYWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisg
ICAgc3RhdGljIFN0cmluZ0VudW1lcmF0aW9uKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxlTG9jYWxl
cyh2b2lkKTsKKyNlbmRpZgorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlIGZv
ciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiBUd28gZmxhdm9ycyBhcmUgYXZhaWxhYmxlOiB2YWxpZCBh
bmQKKyAgICAgKiBhY3R1YWwgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAq
LworICAgIExvY2FsZSBnZXRMb2NhbGUoVUxvY0RhdGFMb2NhbGVUeXBlIHR5cGUsIFVFcnJvckNv
ZGUmIHN0YXR1cykgY29uc3Q7CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8q
KiBHZXQgdGhlIGxvY2FsZSBmb3IgdGhpcyBicmVhayBpdGVyYXRvciBvYmplY3QuIFlvdSBjYW4g
Y2hvb3NlIGJldHdlZW4gdmFsaWQgYW5kIGFjdHVhbCBsb2NhbGUuCisgICAgICogIEBwYXJhbSB0
eXBlIHR5cGUgb2YgdGhlIGxvY2FsZSB3ZSdyZSBsb29raW5nIGZvciAodmFsaWQgb3IgYWN0dWFs
KQorICAgICAqICBAcGFyYW0gc3RhdHVzIGVycm9yIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24KKyAg
ICAgKiAgQHJldHVybiB0aGUgbG9jYWxlCisgICAgICogIEBpbnRlcm5hbAorICAgICAqLworICAg
IGNvbnN0IGNoYXIgKmdldExvY2FsZUlEKFVMb2NEYXRhTG9jYWxlVHlwZSB0eXBlLCBVRXJyb3JD
b2RlJiBzdGF0dXMpIGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisK
KyAgICAvKioKKyAgICAgKiAgU2V0IHRoZSBzdWJqZWN0IHRleHQgc3RyaW5nIHVwb24gd2hpY2gg
dGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9wZXJhdGluZworICAgICAqICB3aXRob3V0IGNoYW5naW5n
IGFueSBvdGhlciBhc3BlY3Qgb2YgdGhlIG1hdGNoaW5nIHN0YXRlLgorICAgICAqICBUaGUgbmV3
IGFuZCBwcmV2aW91cyB0ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCisg
ICAgICoKKyAgICAgKiAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGluIGVudmly
b25tZW50cyB3aGVyZSBJQ1UgaXMgb3BlcmF0aW5nIG9uCisgICAgICogIHN0cmluZ3MgdGhhdCBt
YXkgbW92ZSBhcm91bmQgaW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIG5v
dGlmeWluZworICAgICAqICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVuIHJlbG9jYXRlZCwg
YW5kIHByb3ZpZGluZyBhIG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICAgICogIHN0cmluZyBp
biBpdHMgbmV3IHBvc2l0aW9uLgorICAgICAqCisgICAgICogIE5vdGUgdGhhdCB0aGUgYnJlYWsg
aXRlcmF0b3IgaW1wbGVtZW50YXRpb24gbmV2ZXIgY29waWVzIHRoZSB1bmRlcmx5aW5nIHRleHQK
KyAgICAgKiAgb2YgYSBzdHJpbmcgYmVpbmcgcHJvY2Vzc2VkLCBidXQgYWx3YXlzIG9wZXJhdGVz
IGRpcmVjdGx5IG9uIHRoZSBvcmlnaW5hbCB0ZXh0CisgICAgICogIHByb3ZpZGVkIGJ5IHRoZSB1
c2VyLiBSZWZyZXNoaW5nIHNpbXBseSBkcm9wcyB0aGUgcmVmZXJlbmNlcyB0byB0aGUgb2xkIHRl
eHQKKyAgICAgKiAgYW5kIHJlcGxhY2VzIHRoZW0gd2l0aCByZWZlcmVuY2VzIHRvIHRoZSBuZXcu
CisgICAgICoKKyAgICAgKiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rpb24gaXMgbm9ybWFsbHkgdXNl
ZCBvbmx5IGJ5IHZlcnkgc3BlY2lhbGl6ZWQsCisgICAgICogIHN5c3RlbS1sZXZlbCBjb2RlLiAg
T25lIGV4YW1wbGUgdXNlIGNhc2UgaXMgd2l0aCBnYXJiYWdlIGNvbGxlY3Rpb24gdGhhdCBtb3Zl
cworICAgICAqICB0aGUgdGV4dCBpbiBtZW1vcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5w
dXQgICAgICBUaGUgbmV3IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisgICAgICogQHBhcmFtIHN0YXR1
cyAgICAgUmVjZWl2ZXMgZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCisgICAgICog
QHJldHVybiAgICAgICAgICAgKnRoaXMKKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDQ5Cisg
ICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yICZyZWZyZXNoSW5wdXRUZXh0KFVUZXh0
ICppbnB1dCwgVUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyBwcml2YXRlOgorICAgIHN0YXRp
YyBCcmVha0l0ZXJhdG9yKiBidWlsZEluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBjb25zdCBj
aGFyICp0eXBlLCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisgICAgc3RhdGlj
IEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBpbnQzMl90
IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIG1h
a2VJbnN0YW5jZShjb25zdCBMb2NhbGUmIGxvYywgaW50MzJfdCBraW5kLCBVRXJyb3JDb2RlJiBz
dGF0dXMpOworCisgICAgZnJpZW5kIGNsYXNzIElDVUJyZWFrSXRlcmF0b3JGYWN0b3J5OworICAg
IGZyaWVuZCBjbGFzcyBJQ1VCcmVha0l0ZXJhdG9yU2VydmljZTsKKworcHJvdGVjdGVkOgorICAg
IC8vIERvIG5vdCBlbmNsb3NlIHByb3RlY3RlZCBkZWZhdWx0L2NvcHkgY29uc3RydWN0b3JzIHdp
dGggI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLy8gb3IgZWxzZSB0aGUgY29tcGls
ZXIgd2lsbCBjcmVhdGUgYSBwdWJsaWMgb25lcy4KKyAgICAvKiogQGludGVybmFsICovCisgICAg
QnJlYWtJdGVyYXRvcigpOworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJhdG9y
IChjb25zdCBCcmVha0l0ZXJhdG9yICZvdGhlcikgOiBVT2JqZWN0KG90aGVyKSB7fQorICAgIC8q
KiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJhdG9yIChjb25zdCBMb2NhbGUmIHZhbGlkLCBj
b25zdCBMb2NhbGUmIGFjdHVhbCk7Citwcml2YXRlOgorCisgICAgLyoqIEBpbnRlcm5hbCAqLwor
ICAgIGNoYXIgYWN0dWFsTG9jYWxlW1VMT0NfRlVMTE5BTUVfQ0FQQUNJVFldOworICAgIGNoYXIg
dmFsaWRMb2NhbGVbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07CisKKyAgICAvKioKKyAgICAgKiBU
aGUgYXNzaWdubWVudCBvcGVyYXRvciBoYXMgbm8gcmVhbCBpbXBsZW1lbnRhdGlvbi4KKyAgICAg
KiBJdCdzIHByb3ZpZGVkIHRvIG1ha2UgdGhlIGNvbXBpbGVyIGhhcHB5LiBEbyBub3QgY2FsbC4K
KyAgICAgKi8KKyAgICBCcmVha0l0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3QgQnJlYWtJdGVyYXRv
ciYpOworfTsKKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworaW5saW5lIFVCb29s
IEJyZWFrSXRlcmF0b3I6OmlzQnVmZmVyQ2xvbmUoKQoreworICAgIHJldHVybiBGQUxTRTsKK30K
KworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLworCitVX05BTUVTUEFDRV9FTkQK
KworI2VuZGlmIC8qICNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gKi8KKworI2VuZGlm
IC8vIF9CUktJVEVSCisvL2VvZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9j
aGFyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9jaGFyaXRlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU4ZDY1MDkwYTQwYTYwODU5NTFjNzMzMDdmNzRhY2Y4M2JhMWJiYzgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmgKQEAgLTAsMCArMSw3MjIgQEAK
Ky8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDExLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBDSEFSSVRF
Ul9ICisjZGVmaW5lIENIQVJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisj
aW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIK
Ky8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAq
LworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhhdCBkZWZp
bmVzIGFuIEFQSSBmb3IgZm9yd2FyZC1vbmx5IGl0ZXJhdGlvbgorICogb24gdGV4dCBvYmplY3Rz
LgorICogVGhpcyBpcyBhIG1pbmltYWwgaW50ZXJmYWNlIGZvciBpdGVyYXRpb24gd2l0aG91dCBy
YW5kb20gYWNjZXNzCisgKiBvciBiYWNrd2FyZHMgaXRlcmF0aW9uLiBJdCBpcyBlc3BlY2lhbGx5
IHVzZWZ1bCBmb3Igd3JhcHBpbmcKKyAqIHN0cmVhbXMgd2l0aCBjb252ZXJ0ZXJzIGludG8gYW4g
b2JqZWN0IGZvciBjb2xsYXRpb24gb3IKKyAqIG5vcm1hbGl6YXRpb24uCisgKgorICogPHA+Q2hh
cmFjdGVycyBjYW4gYmUgYWNjZXNzZWQgaW4gdHdvIHdheXM6IGFzIGNvZGUgdW5pdHMgb3IgYXMK
KyAqIGNvZGUgcG9pbnRzLgorICogVW5pY29kZSBjb2RlIHBvaW50cyBhcmUgMjEtYml0IGludGVn
ZXJzIGFuZCBhcmUgdGhlIHNjYWxhciB2YWx1ZXMKKyAqIG9mIFVuaWNvZGUgY2hhcmFjdGVycy4g
SUNVIHVzZXMgdGhlIHR5cGUgVUNoYXIzMiBmb3IgdGhlbS4KKyAqIFVuaWNvZGUgY29kZSB1bml0
cyBhcmUgdGhlIHN0b3JhZ2UgdW5pdHMgb2YgYSBnaXZlbgorICogVW5pY29kZS9VQ1MgVHJhbnNm
b3JtYXRpb24gRm9ybWF0IChhIGNoYXJhY3RlciBlbmNvZGluZyBzY2hlbWUpLgorICogV2l0aCBV
VEYtMTYsIGFsbCBjb2RlIHBvaW50cyBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aCBlaXRoZXIgb25l
CisgKiBvciB0d28gY29kZSB1bml0cyAoInN1cnJvZ2F0ZXMiKS4KKyAqIFN0cmluZyBzdG9yYWdl
IGlzIHR5cGljYWxseSBiYXNlZCBvbiBjb2RlIHVuaXRzLCB3aGlsZSBwcm9wZXJ0aWVzCisgKiBv
ZiBjaGFyYWN0ZXJzIGFyZSB0eXBpY2FsbHkgZGV0ZXJtaW5lZCB1c2luZyBjb2RlIHBvaW50IHZh
bHVlcy4KKyAqIFNvbWUgcHJvY2Vzc2VzIG1heSBiZSBkZXNpZ25lZCB0byB3b3JrIHdpdGggc2Vx
dWVuY2VzIG9mIGNvZGUgdW5pdHMsCisgKiBvciBpdCBtYXkgYmUga25vd24gdGhhdCBhbGwgY2hh
cmFjdGVycyB0aGF0IGFyZSBpbXBvcnRhbnQgdG8gYW4KKyAqIGFsZ29yaXRobSBjYW4gYmUgcmVw
cmVzZW50ZWQgd2l0aCBzaW5nbGUgY29kZSB1bml0cy4KKyAqIE90aGVyIHByb2Nlc3NlcyB3aWxs
IG5lZWQgdG8gdXNlIHRoZSBjb2RlIHBvaW50IGFjY2VzcyBmdW5jdGlvbnMuPC9wPgorICoKKyAq
IDxwPkZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciBwcm92aWRlcyBuZXh0UG9zdEluYygpIHRvIGFj
Y2VzcworICogYSBjb2RlIHVuaXQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwgcG9zaXRpb24gaW50
byB0aGUgdGV4dCBvYmplY3QsCisgKiBzaW1pbGFyIHRvIGEgPGNvZGU+cmV0dXJuIHRleHRbcG9z
aXRpb24rK108L2NvZGU+Ljxicj4KKyAqIEl0IHByb3ZpZGVzIG5leHQzMlBvc3RJbmMoKSB0byBh
Y2Nlc3MgYSBjb2RlIHBvaW50IGFuZCBhZHZhbmNlIGFuIGludGVybmFsCisgKiBwb3NpdGlvbi48
L3A+CisgKgorICogPHA+bmV4dDMyUG9zdEluYygpIGFzc3VtZXMgdGhhdCB0aGUgY3VycmVudCBw
b3NpdGlvbiBpcyB0aGF0IG9mCisgKiB0aGUgYmVnaW5uaW5nIG9mIGEgY29kZSBwb2ludCwgaS5l
Liwgb2YgaXRzIGZpcnN0IGNvZGUgdW5pdC4KKyAqIEFmdGVyIG5leHQzMlBvc3RJbmMoKSwgdGhp
cyB3aWxsIGJlIHRydWUgYWdhaW4uCisgKiBJbiBnZW5lcmFsLCBhY2Nlc3MgdG8gY29kZSB1bml0
cyBhbmQgY29kZSBwb2ludHMgaW4gdGhlIHNhbWUKKyAqIGl0ZXJhdGlvbiBsb29wIHNob3VsZCBu
b3QgYmUgbWl4ZWQuIEluIFVURi0xNiwgaWYgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAqIGlzIG9u
IGEgc2Vjb25kIGNvZGUgdW5pdCAoTG93IFN1cnJvZ2F0ZSksIHRoZW4gb25seSB0aGF0IGNvZGUg
dW5pdAorICogaXMgcmV0dXJuZWQgZXZlbiBieSBuZXh0MzJQb3N0SW5jKCkuPC9wPgorICoKKyAq
IDxwPkZvciBpdGVyYXRpb24gd2l0aCBlaXRoZXIgZnVuY3Rpb24sIHRoZXJlIGFyZSB0d28gd2F5
cyB0bworICogY2hlY2sgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbi4gV2hlbiB0aGVyZSBh
cmUgbm8gbW9yZQorICogY2hhcmFjdGVycyBpbiB0aGUgdGV4dCBvYmplY3Q6CisgKiA8dWw+Cisg
KiA8bGk+VGhlIGhhc05leHQoKSBmdW5jdGlvbiByZXR1cm5zIEZBTFNFLjwvbGk+CisgKiA8bGk+
bmV4dFBvc3RJbmMoKSBhbmQgbmV4dDMyUG9zdEluYygpIHJldHVybiBET05FCisgKiAgICAgd2hl
biBvbmUgYXR0ZW1wdHMgdG8gcmVhZCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgdGV4dCBvYmplY3Qu
PC9saT4KKyAqIDwvdWw+CisgKgorICogRXhhbXBsZToKKyAqIFxjb2RlIAorICogdm9pZCBmdW5j
dGlvbjEoRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyMzIgYzsK
KyAqICAgICB3aGlsZShpdC5oYXNOZXh0KCkpIHsKKyAqICAgICAgICAgYz1pdC5uZXh0MzJQb3N0
SW5jKCk7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgfQorICogfQorICoKKyAqIHZvaWQg
ZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhciBj
OworICogICAgIHdoaWxlKChjPWl0Lm5leHRQb3N0SW5jKCkpIT1Gb3J3YXJkQ2hhcmFjdGVySXRl
cmF0b3I6OkRPTkUpIHsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICogIH0KKyAq
IFxlbmRjb2RlCisgKiA8L3A+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVf
Q09NTU9OX0FQSSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgVU9iamVjdCB7Citw
dWJsaWM6CisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgbW9zdCBvZiBGb3J3YXJk
Q2hhcmFjdGVySXRlcmF0b3IncyBmdW5jdGlvbnMKKyAgICAgKiB3aGVuIHRoZSBpdGVyYXRvciBo
YXMgcmVhY2hlZCB0aGUgbGltaXRzIG9mIGl0cyBpdGVyYXRpb24uCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgZW51bSB7IERPTkUgPSAweGZmZmYgfTsKKyAgICAKKyAgICAv
KioKKyAgICAgKiBEZXN0cnVjdG9yLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCB+Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgCisgICAgLyoq
CisgICAgICogUmV0dXJucyB0cnVlIHdoZW4gYm90aCBpdGVyYXRvcnMgcmVmZXIgdG8gdGhlIHNh
bWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgY2hhcmFjdGVyLXN0b3JhZ2Ugb2JqZWN0
LiAgCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0byBi
ZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRydWUgd2hlbiBib3RoIGl0
ZXJhdG9ycyByZWZlciB0byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSBj
aGFyYWN0ZXItc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yJiB0aGF0KSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVl
IHdoZW4gdGhlIGl0ZXJhdG9ycyByZWZlciB0byBkaWZmZXJlbnQKKyAgICAgKiB0ZXh0LXN0b3Jh
Z2Ugb2JqZWN0cywgb3IgdG8gZGlmZmVyZW50IGNoYXJhY3RlcnMgaW4gdGhlCisgICAgICogc2Ft
ZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LiAgCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRD
aGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgaW5lcXVhbGl0eQorICAgICAqIEBy
ZXR1cm4gdHJ1ZSB3aGVuIHRoZSBpdGVyYXRvcnMgcmVmZXIgdG8gZGlmZmVyZW50CisgICAgICog
dGV4dC1zdG9yYWdlIG9iamVjdHMsIG9yIHRvIGRpZmZlcmVudCBjaGFyYWN0ZXJzIGluIHRoZQor
ICAgICAqIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIGlubGluZSBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEZvcndhcmRDaGFyYWN0
ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisgICAgCisgICAgLyoqCisgICAgICogR2VuZXJhdGVz
IGEgaGFzaCBjb2RlIGZvciB0aGlzIGl0ZXJhdG9yLiAgCisgICAgICogQHJldHVybiB0aGUgaGFz
aCBjb2RlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50
MzJfdCBoYXNoQ29kZSh2b2lkKSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0
dXJucyBhIFVDbGFzc0lEIGZvciB0aGlzIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAoInBvb3Ig
bWFuJ3MKKyAgICAgKiBSVFRJIikuPFA+IERlc3BpdGUgdGhlIGZhY3QgdGhhdCB0aGlzIGZ1bmN0
aW9uIGlzIHB1YmxpYywKKyAgICAgKiBETyBOT1QgQ09OU0lERVIgSVQgUEFSVCBPRiBDSEFSQUNU
RVJJVEVSQVRPUidTIEFQSSEgCisgICAgICogQHJldHVybiBhIFVDbGFzc0lEIGZvciB0aGlzIEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0ID0gMDsK
KyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgdW5pdCBmb3IgcmV0
dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0aGUg
aXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFy
ZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAg
ICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dFBvc3RJbmModm9pZCkg
PSAwOworICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSBwb2ludCBm
b3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAgICog
aW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0
aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBE
T05FLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSBwb2ludC4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyUG9z
dEluYyh2b2lkKSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBGQUxTRSBpZiB0
aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYXQgb3Ig
YWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAg
KiBUaGlzIGlzIHVzZWQgd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMoKSBpbiBm
b3J3YXJkCisgICAgICogaXRlcmF0aW9uLgorICAgICAqIEByZXR1cm5zIEZBTFNFIGlmIHRoZXJl
IGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAgKiBhdCBvciBhZnRl
ciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc05leHQo
KSA9IDA7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgLyoqIERlZmF1bHQgY29uc3RydWN0b3IgdG8g
YmUgb3ZlcnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLiBAc3RhYmxlIElDVSAyLjAq
LworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgIAorICAgIC8qKiBDb3B5IGNv
bnN0cnVjdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGluZyBjbGFzcy4gQHN0
YWJsZSBJQ1UgMi4wKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yICZvdGhlcik7CisgICAgCisgICAgLyoqCisgICAgICogQXNzaWdu
bWVudCBvcGVyYXRvciB0byBiZSBvdmVycmlkZGVuIGluIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3Mu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgRm9yd2FyZENoYXJhY3Rlckl0
ZXJhdG9yICZvcGVyYXRvcj0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJikgeyByZXR1
cm4gKnRoaXM7IH0KK307CisKKy8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhhdCBkZWZpbmVzIGFu
IEFQSSBmb3IgaXRlcmF0aW9uCisgKiBvbiB0ZXh0IG9iamVjdHMuCisgKiBUaGlzIGlzIGFuIGlu
dGVyZmFjZSBmb3IgZm9yd2FyZCBhbmQgYmFja3dhcmQgaXRlcmF0aW9uCisgKiBhbmQgcmFuZG9t
IGFjY2VzcyBpbnRvIGEgdGV4dCBvYmplY3QuCisgKgorICogPHA+VGhlIEFQSSBwcm92aWRlcyBi
YWNrd2FyZCBjb21wYXRpYmlsaXR5IHRvIHRoZSBKYXZhIGFuZCBvbGRlciBJQ1UKKyAqIENoYXJh
Y3Rlckl0ZXJhdG9yIGNsYXNzZXMgYnV0IGV4dGVuZHMgdGhlbSBzaWduaWZpY2FudGx5OgorICog
PG9sPgorICogPGxpPkNoYXJhY3Rlckl0ZXJhdG9yIGlzIG5vdyBhIHN1YmNsYXNzIG9mIEZvcndh
cmRDaGFyYWN0ZXJJdGVyYXRvci48L2xpPgorICogPGxpPldoaWxlIHRoZSBvbGQgQVBJIGZ1bmN0
aW9ucyBwcm92aWRlZCBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoCisgKiAgICAgInByZS1pbmNyZW1l
bnQiIHNlbWFudGljcywgdGhlIG5ldyBvbmUgYWxzbyBwcm92aWRlcyBmdW5jdGlvbnMKKyAqICAg
ICB3aXRoICJwb3N0LWluY3JlbWVudCIgc2VtYW50aWNzLiBUaGV5IGFyZSBtb3JlIGVmZmljaWVu
dCBhbmQgc2hvdWxkCisgKiAgICAgYmUgdGhlIHByZWZlcnJlZCBpdGVyYXRvciBmdW5jdGlvbnMg
Zm9yIG5ldyBpbXBsZW1lbnRhdGlvbnMuCisgKiAgICAgVGhlIGJhY2t3YXJkIGl0ZXJhdGlvbiBh
bHdheXMgaGFkICJwcmUtZGVjcmVtZW50IiBzZW1hbnRpY3MsIHdoaWNoCisgKiAgICAgYXJlIGVm
ZmljaWVudC48L2xpPgorICogPGxpPkp1c3QgbGlrZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Is
IGl0IHByb3ZpZGVzIGFjY2VzcyB0bworICogICAgIGJvdGggY29kZSB1bml0cyBhbmQgY29kZSBw
b2ludHMuIENvZGUgcG9pbnQgYWNjZXNzIHZlcnNpb25zIGFyZSBhdmFpbGFibGUKKyAqICAgICBm
b3IgdGhlIG9sZCBhbmQgdGhlIG5ldyBpdGVyYXRpb24gc2VtYW50aWNzLjwvbGk+CisgKiA8bGk+
VGhlcmUgYXJlIG5ldyBmdW5jdGlvbnMgZm9yIHNldHRpbmcgYW5kIG1vdmluZyB0aGUgY3VycmVu
dCBwb3NpdGlvbgorICogICAgIHdpdGhvdXQgcmV0dXJuaW5nIGEgY2hhcmFjdGVyLCBmb3IgZWZm
aWNpZW5jeS48L2xpPgorICogPC9vbD4KKyAqCisgKiBTZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yIGZvciBleGFtcGxlcyBmb3IgdXNpbmcgdGhlIG5ldyBmb3J3YXJkIGl0ZXJhdGlvbgorICog
ZnVuY3Rpb25zLiBGb3IgYmFja3dhcmQgaXRlcmF0aW9uLCB0aGVyZSBpcyBhbHNvIGEgaGFzUHJl
dmlvdXMoKSBmdW5jdGlvbgorICogdGhhdCBjYW4gYmUgdXNlZCBhbmFsb2dvdXNseSB0byBoYXNO
ZXh0KCkuCisgKiBUaGUgb2xkIGZ1bmN0aW9ucyB3b3JrIGFzIGJlZm9yZSBhbmQgYXJlIHNob3du
IGJlbG93LjwvcD4KKyAqCisgKiA8cD5FeGFtcGxlcyBmb3Igc29tZSBvZiB0aGUgbmV3IGZ1bmN0
aW9uczo8L3A+CisgKgorICogRm9yd2FyZCBpdGVyYXRpb24gd2l0aCBoYXNOZXh0KCk6CisgKiBc
Y29kZQorICogdm9pZCBmb3J3YXJkMShDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBV
Q2hhcjMyIGM7CisgKiAgICAgZm9yKGl0LnNldFRvU3RhcnQoKTsgaXQuaGFzTmV4dCgpOykgewor
ICogICAgICAgICBjPWl0Lm5leHQzMlBvc3RJbmMoKTsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAq
ICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIEZvcndhcmQgaXRlcmF0aW9uIG1vcmUgc2lt
aWxhciB0byBsb29wcyB3aXRoIHRoZSBvbGQgZm9yd2FyZCBpdGVyYXRpb24sCisgKiBzaG93aW5n
IGEgd2F5IHRvIGNvbnZlcnQgc2ltcGxlIGZvcigpIGxvb3BzOgorICogXGNvZGUKKyAqIHZvaWQg
Zm9yd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAg
ICBmb3IoYz1pdC5maXJzdFBvc3RJbmMoKTsgYyE9Q2hhcmFjdGVySXRlcmF0b3I6OkRPTkU7IGM9
aXQubmV4dFBvc3RJbmMoKSkgeworICogICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICog
fQorICogXGVuZGNvZGUKKyAqIEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIHNldFRvRW5kKCkgYW5k
IGhhc1ByZXZpb3VzKCk6CisgKiBcY29kZQorICogIHZvaWQgYmFja3dhcmQxKENoYXJhY3Rlckl0
ZXJhdG9yICZpdCkgeworICogICAgICBVQ2hhcjMyIGM7CisgKiAgICAgIGZvcihpdC5zZXRUb0Vu
ZCgpOyBpdC5oYXNQcmV2aW91cygpOykgeworICogICAgICAgICBjPWl0LnByZXZpb3VzMzIoKTsK
KyAqICAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICog
QmFja3dhcmQgaXRlcmF0aW9uIHdpdGggYSBtb3JlIHRyYWRpdGlvbmFsIGZvcigpIGxvb3A6Cisg
KiBcY29kZQorICogdm9pZCBiYWNrd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAg
ICAgVUNoYXIgYzsKKyAqICAgICBmb3IoYz1pdC5sYXN0KCk7IGMhPUNoYXJhY3Rlckl0ZXJhdG9y
OjpET05FOyBjPWl0LnByZXZpb3VzKCkpIHsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAg
fQorICogIH0KKyAqIFxlbmRjb2RlCisgKgorICogRXhhbXBsZSBmb3IgcmFuZG9tIGFjY2VzczoK
KyAqIFxjb2RlCisgKiAgdm9pZCByYW5kb20oQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAg
ICAgIC8vIHNldCB0byB0aGUgdGhpcmQgY29kZSBwb2ludCBmcm9tIHRoZSBiZWdpbm5pbmcKKyAq
ICAgICAgaXQubW92ZTMyKDMsIENoYXJhY3Rlckl0ZXJhdG9yOjprU3RhcnQpOworICogICAgICAv
LyBnZXQgYSBjb2RlIHBvaW50IGZyb20gaGVyZSB3aXRob3V0IG1vdmluZyB0aGUgcG9zaXRpb24K
KyAqICAgICAgVUNoYXIzMiBjPWl0LmN1cnJlbnQzMigpOworICogICAgICAvLyBnZXQgdGhlIHBv
c2l0aW9uCisgKiAgICAgIGludDMyX3QgcG9zPWl0LmdldEluZGV4KCk7CisgKiAgICAgIC8vIGdl
dCB0aGUgcHJldmlvdXMgY29kZSB1bml0CisgKiAgICAgIFVDaGFyIHU9aXQucHJldmlvdXMoKTsK
KyAqICAgICAgLy8gbW92ZSBiYWNrIG9uZSBtb3JlIGNvZGUgdW5pdAorICogICAgICBpdC5tb3Zl
KC0xLCBDaGFyYWN0ZXJJdGVyYXRvcjo6a0N1cnJlbnQpOworICogICAgICAvLyBzZXQgdGhlIHBv
c2l0aW9uIGJhY2sgdG8gd2hlcmUgaXQgd2FzCisgKiAgICAgIC8vIGFuZCByZWFkIHRoZSBzYW1l
IGNvZGUgcG9pbnQgYyBhbmQgbW92ZSBiZXlvbmQgaXQKKyAqICAgICAgaXQuc2V0SW5kZXgocG9z
KTsKKyAqICAgICAgaWYoYyE9aXQubmV4dDMyUG9zdEluYygpKSB7CisgKiAgICAgICAgICBleGl0
KDEpOyAvLyBDaGFyYWN0ZXJJdGVyYXRvciBpbmNvbnNpc3RlbnQKKyAqICAgICAgfQorICogIH0K
KyAqIFxlbmRjb2RlCisgKgorICogPHA+RXhhbXBsZXMsIGVzcGVjaWFsbHkgZm9yIHRoZSBvbGQg
QVBJOjwvcD4KKyAqCisgKiBGdW5jdGlvbiBwcm9jZXNzaW5nIGNoYXJhY3RlcnMsIGluIHRoaXMg
ZXhhbXBsZSBzaW1wbGUgb3V0cHV0CisgKiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIHByb2Nl
c3NDaGFyKCBVQ2hhciBjICkKKyAqICB7CisgKiAgICAgIGNvdXQgPDwgIiAiIDw8IGM7CisgKiAg
fQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgdGhlIHRleHQgZnJvbSBzdGFy
dCB0byBmaW5pc2gKKyAqIDxwcmU+IAorICogXGNvZGUKKyAqICB2b2lkIHRyYXZlcnNlRm9yd2Fy
ZChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlcikKKyAqICB7CisgKiAgICAgIGZvcihVQ2hhciBjID0g
aXRlci5maXJzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMgPSBpdGVyLm5leHQo
KSkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgIH0KKyAqICB9CisgKiBc
ZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSB0aGUgdGV4dCBiYWNrd2FyZHMsIGZyb20g
ZW5kIHRvIHN0YXJ0CisgKiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIHRyYXZlcnNlQmFja3dh
cmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIpCisgKiAgeworICogICAgICBmb3IoVUNoYXIgYyA9
IGl0ZXIubGFzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMgPSBpdGVyLnByZXZp
b3VzKCkpIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMpOworICogICAgICB9CisgKiAgfQor
ICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgYm90aCBmb3J3YXJkIGFuZCBiYWNr
d2FyZCBmcm9tIGEgZ2l2ZW4gcG9zaXRpb24gaW4gdGhlIHRleHQuIAorICogQ2FsbHMgdG8gbm90
Qm91bmRhcnkoKSBpbiB0aGlzIGV4YW1wbGUgcmVwcmVzZW50cyBzb21lIGFkZGl0aW9uYWwgc3Rv
cHBpbmcgY3JpdGVyaWEuCisgKiA8cHJlPgorICogXGNvZGUKKyAqIHZvaWQgdHJhdmVyc2VPdXQo
Q2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIsIGludDMyX3QgcG9zKQorICogeworICogICAgICBVQ2hh
ciBjOworICogICAgICBmb3IgKGMgPSBpdGVyLnNldEluZGV4KHBvcyk7CisgKiAgICAgIGMgIT0g
Q2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJiAoVW5pY29kZTo6aXNMZXR0ZXIoYykgfHwgVW5pY29k
ZTo6aXNEaWdpdChjKSk7CisgKiAgICAgICAgICBjID0gaXRlci5uZXh0KCkpIHt9CisgKiAgICAg
IGludDMyX3QgZW5kID0gaXRlci5nZXRJbmRleCgpOworICogICAgICBmb3IgKGMgPSBpdGVyLnNl
dEluZGV4KHBvcyk7CisgKiAgICAgICAgICBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYg
KFVuaWNvZGU6OmlzTGV0dGVyKGMpIHx8IFVuaWNvZGU6OmlzRGlnaXQoYykpOworICogICAgICAg
ICAgYyA9IGl0ZXIucHJldmlvdXMoKSkge30KKyAqICAgICAgaW50MzJfdCBzdGFydCA9IGl0ZXIu
Z2V0SW5kZXgoKSArIDE7CisgKiAgCisgKiAgICAgIGNvdXQgPDwgInN0YXJ0OiAiIDw8IHN0YXJ0
IDw8ICIgZW5kOiAiIDw8IGVuZCA8PCBlbmRsOworICogICAgICBmb3IgKGMgPSBpdGVyLnNldElu
ZGV4KHN0YXJ0KTsgaXRlci5nZXRJbmRleCgpIDwgZW5kOyBjID0gaXRlci5uZXh0KCkgKSB7Cisg
KiAgICAgICAgICBwcm9jZXNzQ2hhcihjKTsKKyAqICAgICB9CisgKiAgfQorICogXGVuZGNvZGUK
KyAqIDwvcHJlPgorICogQ3JlYXRpbmcgYSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBhbmQgY2Fs
bGluZyB0aGUgdGVzdCBmdW5jdGlvbnMKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZvaWQgQ2hh
cmFjdGVySXRlcmF0b3JfRXhhbXBsZSggdm9pZCApCisgKiAgIHsKKyAqICAgICAgIGNvdXQgPDwg
ZW5kbCA8PCAiPT09PT0gQ2hhcmFjdGVySXRlcmF0b3JfRXhhbXBsZTogPT09PT0iIDw8IGVuZGw7
CisgKiAgICAgICBVbmljb2RlU3RyaW5nIHRleHQoIkVpbiBrbGVpbmVyIFNhdHouIik7CisgKiAg
ICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvcih0ZXh0KTsKKyAqICAgICAgIGNv
dXQgPDwgIi0tLS0tIHRyYXZlcnNlRm9yd2FyZDogLS0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAg
ICAgICB0cmF2ZXJzZUZvcndhcmQoIGl0ZXJhdG9yICk7CisgKiAgICAgICBjb3V0IDw8IGVuZGwg
PDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVyc2VCYWNrd2FyZDogLS0tLS0tLS0tLSIgPDwgZW5kbDsK
KyAqICAgICAgIHRyYXZlcnNlQmFja3dhcmQoIGl0ZXJhdG9yICk7CisgKiAgICAgICBjb3V0IDw8
IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVyc2VPdXQ6IC0tLS0tLS0tLS0tLS0tLSIgPDwg
ZW5kbDsKKyAqICAgICAgIHRyYXZlcnNlT3V0KCBpdGVyYXRvciwgNyApOworICogICAgICAgY291
dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIiA8PCBlbmRsOworICogICB9CisgKiBcZW5kY29k
ZQorICogPC9wcmU+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9O
X0FQSSBDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Ig
eworcHVibGljOgorICAgIC8qKgorICAgICAqIE9yaWdpbiBlbnVtZXJhdGlvbiBmb3IgdGhlIG1v
dmUoKSBhbmQgbW92ZTMyKCkgZnVuY3Rpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIGVudW0gRU9yaWdpbiB7IGtTdGFydCwga0N1cnJlbnQsIGtFbmQgfTsKKworICAg
IC8qKgorICAgICAqIERlc3RydWN0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCB+Q2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAqIFJl
dHVybnMgYSBwb2ludGVyIHRvIGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yIG9mIHRoZSBzYW1lCisg
ICAgICogY29uY3JldGUgY2xhc3MgYXMgdGhpcyBvbmUsIGFuZCByZWZlcnJpbmcgdG8gdGhlIHNh
bWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdCBhcyB0
aGlzIG9uZS4gIFRoZQorICAgICAqIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcg
dGhlIG5ldyBjbG9uZS4gIAorICAgICAqIEByZXR1cm4gYSBwb2ludGVyIHRvIGEgbmV3IENoYXJh
Y3Rlckl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3QgPSAwOworCisgICAgLyoqCisg
ICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBp
biBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0
LgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4
dCgpLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9u
IHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNo
YXIgICAgICAgICBmaXJzdCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBp
dGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAgICAqIGl0
ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1vdmVzIHRoZSBwb3Np
dGlvbgorICAgICAqIHRvIHRoZSBzZWNvbmQgY29kZSB1bml0LiBUaGlzIGlzIGFuIGFsdGVybmF0
aXZlIHRvIHNldFRvU3RhcnQoKQorICAgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5l
eHRQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBp
dGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBVQ2hhciAgICAgICAgIGZpcnN0UG9zdEluYyh2b2lkKTsKKworICAgIC8qKgorICAgICAq
IFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0
cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsCisg
ICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzIo
KS4KKyAgICAgKiBOb3RlIHRoYXQgYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLCBi
ZWdpbm5pbmcgd2l0aCwKKyAgICAgKiBlLmcuLCBzZXRUb1N0YXJ0KCkgb3IgZmlyc3RQb3N0SW5j
KCksIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9p
bnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmlyc3QzMih2b2lkKSA9IDA7CisKKyAgICAv
KioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSBw
b2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHBv
aW50LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAgICogdG8gdGhlIHNlY29uZCBjb2RlIHBv
aW50LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAgICAqIGZvciBm
b3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRo
ZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzJQb3N0
SW5jKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIg
dG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvciBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0ZXJh
dGlvbiByYW5nZS4gVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhIGZvcndhcmQKKyAgICAgKiBp
dGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMoKS4KKyAgICAgKiBA
cmV0dXJuIHRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgc2V0VG9TdGFy
dCgpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhl
IGxhc3QgY29kZSB1bml0IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVy
bnMgdGhhdCBjb2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBp
dGVyYXRpb24gd2l0aCBwcmV2aW91cygpLgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSB1
bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIg
ICAgICAgICBsYXN0KHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0
aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAg
KiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgICAqIFRo
aXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMzMigpLgor
ICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMyKHZvaWQpID0gMDsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBlbmQgb2YgaXRzIGl0
ZXJhdGlvbiByYW5nZSwganVzdCBiZWhpbmQKKyAgICAgKiB0aGUgbGFzdCBjb2RlIHVuaXQgb3Ig
Y29kZSBwb2ludC4gVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhIGJhY2t3YXJkCisgICAgICog
aXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkuCisgICAgICogQHJldHVy
biB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICBzZXRUb0VuZCgpOworCisg
ICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlICJwb3NpdGlv
biItdGggY29kZSB1bml0CisgICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0
ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAgICogcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4gIAor
ICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQgaW4gdGhl
IHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAcmV0dXJuIHRoZSAicG9zaXRpb24iLXRoIGNv
ZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVD
aGFyICAgICAgICAgc2V0SW5kZXgoaW50MzJfdCBwb3NpdGlvbikgPSAwOworCisgICAgLyoqCisg
ICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUg
Y29kZSBwb2ludAorICAgICAqIHRoYXQgY29udGFpbnMgdGhlICJwb3NpdGlvbiItdGggY29kZSB1
bml0CisgICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVy
cyB0bywgYW5kCisgICAgICogcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisgICAgICogVGhlIGN1
cnJlbnQgcG9zaXRpb24gaXMgYWRqdXN0ZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29kZSBw
b2ludAorICAgICAqIChpdHMgZmlyc3QgY29kZSB1bml0KS4KKyAgICAgKiBAcGFyYW0gcG9zaXRp
b24gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0
CisgICAgICogQHJldHVybiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHBvaW50LgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBzZXRJbmRl
eDMyKGludDMyX3QgcG9zaXRpb24pID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhl
IGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4gCisgICAgICogQHJl
dHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBjdXJyZW50KHZvaWQpIGNvbnN0ID0gMDsK
KyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29kZSBwb2ludCB0aGUgaXRl
cmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4gIAorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQg
Y29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IFVDaGFyMzIgICAgICAgY3VycmVudDMyKHZvaWQpIGNvbnN0ID0gMDsKKyAgICAgICAgCisgICAg
LyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNv
ZGUgdW5pdC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1
cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgdW5pdC4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAg
bmV4dCh2b2lkKSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRo
ZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQg
ZW5kSW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZQor
ICAgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAg
ICogTm90ZSB0aGF0IGl0ZXJhdGlvbiB3aXRoICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MgaXMg
bGVzcworICAgICAqIGVmZmljaWVudCB0aGFuIGl0ZXJhdGlvbiB3aXRoICJwb3N0LWluY3JlbWVu
dCIgc2VtYW50aWNzCisgICAgICogdGhhdCBpcyBwcm92aWRlZCBieSBuZXh0MzJQb3N0SW5jKCku
CisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzIodm9pZCkgPSAw
OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29k
ZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIHN0YXJ0SW5kZXgo
KSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8g
bW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLiAgCisgICAgICogQHJldHVy
biB0aGUgcHJldmlvdXMgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBwcmV2aW91cyh2b2lkKSA9IDA7CisKKyAgICAv
KioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0
aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLiAKKyAgICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBj
b2RlIHBvaW50LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IFVDaGFyMzIgICAgICAgcHJldmlvdXMzMih2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBS
ZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2lu
dHMKKyAgICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiBy
YW5nZS4KKyAgICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIo
KSBpbiBiYWNrd2FyZAorICAgICAqIGl0ZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIEZBTFNFIGlm
IHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAgKiBiZWZv
cmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJuIFRS
VUUgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgVUJvb2wgICAgICAgIGhhc1ByZXZpb3VzKCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0
dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAg
ICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBmaXJzdCgpLiAgU2luY2Ug
aXQncworICAgICAqIHBvc3NpYmxlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVz
IGFjcm9zcyBvbmx5CisgICAgICogcGFydCBvZiBhIHRleHQtc3RvcmFnZSBvYmplY3QsIHRoaXMg
bnVtYmVyIGlzbid0CisgICAgICogbmVjZXNzYXJpbHkgMC4gIAorICAgICAqIEByZXR1cm5zIHRo
ZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9i
amVjdCBvZiB0aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGZpcnN0KCkuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAgc3RhcnRJbmRleCh2
b2lkKSBjb25zdDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtZXJp
YyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2Yg
dGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVyCisgICAgICogcmV0
dXJuZWQgYnkgbGFzdCgpLiAgCisgICAgICogQHJldHVybiB0aGUgbnVtZXJpYyBpbmRleCBpbiB0
aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIHBvc2l0aW9u
IGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVyCisgICAgICogcmV0dXJuZWQgYnkgbGFz
dCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90
ICAgICAgIGVuZEluZGV4KHZvaWQpIGNvbnN0OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBS
ZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQor
ICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVm
ZXJzIHRvCisgICAgICogKGkuZS4sIHRoZSBjaGFyYWN0ZXIgcmV0dXJuZWQgYnkgY3VycmVudCgp
KS4gIAorICAgICAqIEByZXR1cm4gdGhlIG51bWJlcmljIGluZGV4IGluIHRoZSB0ZXh0LXN0b3Jh
Z2Ugb2JqZWN0IG9mIAorICAgICAqIHRoZSBjaGFyYWN0ZXIgdGhlIGl0ZXJhdG9yIGN1cnJlbnRs
eSByZWZlcnMgdG8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUg
aW50MzJfdCAgICAgICBnZXRJbmRleCh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJl
dHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgZW50aXJlIHRleHQgaW4gdGhlIHVuZGVybHlpbmcKKyAg
ICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0
aGUgZW50aXJlIHRleHQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICAgICAgZ2V0TGVuZ3Ro
KCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiBy
ZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgICAqIGl0ZXJhdGlvbiByYW5n
ZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgICAqIFRo
ZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHVuaXRzIGZvcndhcmQK
KyAgICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUg
ZGVsdGEuCisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmln
aW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBhIG5lZ2F0aXZlIGRl
bHRhIG1lYW5zIGJhY2t3YXJkLgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0
aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBwb3Np
dGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJf
dCAgICAgIG1vdmUoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pID0gMDsKKworICAgIC8q
KgorICAgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFy
dCBvciBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0
aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJl
c3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgcG9pbnRzIGZvcndhcmQKKyAgICAgKiBvciBiYWNrd2Fy
ZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAgICogQHBh
cmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVs
dGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJk
LgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJy
ZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUzMihpbnQz
Ml90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbikgPSAwOworCisgICAgLyoqCisgICAgICogQ29waWVz
IHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBVbmljb2RlU3RyaW5nCisgICAgICog
cmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICAKKyAgICAgKiBAcGFyYW0gcmVzdWx0IFJlY2VpdmVz
IGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uICAKKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNv
ZGVTdHJpbmcmICByZXN1bHQpID0gMDsKKworcHJvdGVjdGVkOgorICAgIC8qKgorICAgICAqIEVt
cHR5IGNvbnN0cnVjdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENo
YXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciwganVzdCBz
ZXR0aW5nIHRoZSBsZW5ndGggZmllbGQgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3QgbGVuZ3Ro
KTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0
aCBhbmQgcG9zaXRpb24gZmllbGRzIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0aCwg
aW50MzJfdCBwb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciwganVzdCBz
ZXR0aW5nIHRoZSBsZW5ndGgsIHN0YXJ0LCBlbmQsIGFuZCBwb3NpdGlvbiBmaWVsZHMgaW4gdGhp
cyBiYXNlIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJh
Y3Rlckl0ZXJhdG9yKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90IHRleHRCZWdpbiwgaW50MzJfdCB0
ZXh0RW5kLCBpbnQzMl90IHBvc2l0aW9uKTsKKyAgCisgICAgLyoqCisgICAgICogQ29weSBjb25z
dHJ1Y3Rvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBDaGFyYWN0ZXJJdGVyYXRv
ciB0byBiZSBjb3BpZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFy
YWN0ZXJJdGVyYXRvcihjb25zdCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7CisKKyAgICAvKioK
KyAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgU2V0cyB0aGlzIENoYXJhY3Rlckl0ZXJhdG9y
IHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsCisgICAgICogYXMgdGhlIG9uZSBwYXNzZWQgaW4u
CisgICAgICogQHBhcmFtIHRoYXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHBhc3NlZCBpbi4KKyAg
ICAgKiBAcmV0dXJuIHRoZSBuZXdseSBzZXQgQ2hhcmFjdGVySXRlcmF0b3IuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IgJm9wZXJhdG9yPShj
b25zdCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNs
YXNzIHRleHQgbGVuZ3RoIGZpZWxkLgorICAgICAqIE5lY2Vzc2FyeSB0aGlzIGZvciBjb3JyZWN0
IGdldFRleHQoKSBhbmQgaGFzaENvZGUoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBpbnQzMl90IHRleHRMZW5ndGg7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNz
IGZpZWxkIGZvciB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBpbnQzMl90ICBwb3M7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNz
IGZpZWxkIGZvciB0aGUgc3RhcnQgb2YgdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBiZWdpbjsKKworICAgIC8qKgorICAg
ICAqIEJhc2UgY2xhc3MgZmllbGQgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiByYW5nZS4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBlbmQ7Cit9Owor
CitpbmxpbmUgVUJvb2wKK0ZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjo6b3BlcmF0b3IhPShjb25z
dCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0IHsKKyAgICByZXR1cm4gIW9w
ZXJhdG9yPT0odGhhdCk7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6
c2V0VG9TdGFydCgpIHsKKyAgICByZXR1cm4gbW92ZSgwLCBrU3RhcnQpOworfQorCitpbmxpbmUg
aW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvRW5kKCkgeworICAgIHJldHVybiBtb3Zl
KDAsIGtFbmQpOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnN0YXJ0
SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBiZWdpbjsKK30KKworaW5saW5lIGludDMy
X3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjplbmRJbmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJu
IGVuZDsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpnZXRJbmRleCh2
b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIHBvczsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJh
Y3Rlckl0ZXJhdG9yOjpnZXRMZW5ndGgodm9pZCkgY29uc3QgeworICAgIHJldHVybiB0ZXh0TGVu
Z3RoOworfQorCitVX05BTUVTUEFDRV9FTkQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9pY3UvdW5pY29kZS9sb2NpZC5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9sb2NpZC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFhZDVjYjU0NmViZTM5N2VmNDM2ZGYzNjUwM2ViNDM3MWMzODY2OTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmgKQEAgLTAsMCArMSw4
MTQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5
OTYtMjAxNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9u
IGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqCisqIEZpbGUgbG9jaWQuaAorKgorKiBDcmVhdGVkIGJ5OiBIZWxlbmEgU2hpaAorKgor
KiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBE
ZXNjcmlwdGlvbgorKiAgIDAyLzExLzk3ICAgIGFsaXUgICAgICAgIENoYW5nZWQgZ0xvY1BhdGgg
dG8gZmdMb2NQYXRoIGFuZCBhZGRlZCBtZXRob2RzIHRvCisqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2V0IGFuZCBzZXQgaXQuCisqICAgMDQvMDIvOTcgICAgYWxpdSAgICAgICAgTWFkZSBv
cGVyYXRvciE9IGlubGluZTsgZml4ZWQgcmV0dXJuIHZhbHVlIG9mIGdldE5hbWUoKS4KKyogICAw
NC8xNS85NyAgICBhbGl1ICAgICAgICBDbGVhbnVwIGZvciBBSVgvV2luMzIuCisqICAgMDQvMjQv
OTcgICAgYWxpdSAgICAgICAgTnVtZXJvdXMgY2hhbmdlcyBwZXIgY29kZSByZXZpZXcuCisqICAg
MDgvMTgvOTggICAgc3RlcGhlbiAgICAgQWRkZWQgdG9rZW5pemVTdHJpbmcoKSxjaGFuZ2VkIGdl
dERpc3BsYXlOYW1lKCkKKyogICAwOS8wOC85OCAgICBzdGVwaGVuICAgICBNb3ZlZCBkZWZpbml0
aW9uIG9mIGtFbXB0eVN0cmluZyBmb3IgTWFjIFBvcnQKKyogICAxMS8wOS85OSAgICB3ZWl2ICAg
ICAgICBBZGRlZCBjb25zdCBjaGFyICogZ2V0TmFtZSgpIGNvbnN0OworKiAgIDA0LzEyLzAwICAg
IHNybCAgICAgICAgIHJlbW92aW5nIHVuaWNvZGVzdHJpbmcgYXBpJ3MgYW5kIGNhY2hlZCBoYXNo
IGNvZGUKKyogICAwOC8xMC8wMSAgICBncmhvdGVuICAgICBDaGFuZ2UgdGhlIHN0YXRpYyBMb2Nh
bGVzIHRvIGFjY2Vzc29yIGZ1bmN0aW9ucworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisj
aWZuZGVmIExPQ0lEX0gKKyNkZWZpbmUgTE9DSURfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlw
ZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3Vu
aXN0ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3Vs
b2MuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVudW0uaCIKKworLyoqCisgKiBcZmlsZQorICog
XGJyaWVmIEMrKyBBUEk6IExvY2FsZSBJRCBvYmplY3QuCisgKi8KKworVV9OQU1FU1BBQ0VfQkVH
SU4KKworLy8gRm9yd2FyZCBEZWNsYXJhdGlvbnMKK3ZvaWQgVV9DQUxMQ09OViBsb2NhbGVfYXZh
aWxhYmxlX2luaXQoKTsgLyoqPCBAaW50ZXJuYWwgKi8KKworLyoqCisgKiBBIDxjb2RlPkxvY2Fs
ZTwvY29kZT4gb2JqZWN0IHJlcHJlc2VudHMgYSBzcGVjaWZpYyBnZW9ncmFwaGljYWwsIHBvbGl0
aWNhbCwKKyAqIG9yIGN1bHR1cmFsIHJlZ2lvbi4gQW4gb3BlcmF0aW9uIHRoYXQgcmVxdWlyZXMg
YSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHRvIHBlcmZvcm0KKyAqIGl0cyB0YXNrIGlzIGNhbGxlZCA8
ZW0+bG9jYWxlLXNlbnNpdGl2ZTwvZW0+IGFuZCB1c2VzIHRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+
CisgKiB0byB0YWlsb3IgaW5mb3JtYXRpb24gZm9yIHRoZSB1c2VyLiBGb3IgZXhhbXBsZSwgZGlz
cGxheWluZyBhIG51bWJlcgorICogaXMgYSBsb2NhbGUtc2Vuc2l0aXZlIG9wZXJhdGlvbi0tdGhl
IG51bWJlciBzaG91bGQgYmUgZm9ybWF0dGVkCisgKiBhY2NvcmRpbmcgdG8gdGhlIGN1c3RvbXMv
Y29udmVudGlvbnMgb2YgdGhlIHVzZXIncyBuYXRpdmUgY291bnRyeSwKKyAqIHJlZ2lvbiwgb3Ig
Y3VsdHVyZS4KKyAqCisgKiBUaGUgTG9jYWxlIGNsYXNzIGlzIG5vdCBzdWl0YWJsZSBmb3Igc3Vi
Y2xhc3NpbmcuCisgKgorICogPFA+CisgKiBZb3UgY2FuIGNyZWF0ZSBhIDxjb2RlPkxvY2FsZTwv
Y29kZT4gb2JqZWN0IHVzaW5nIHRoZSBjb25zdHJ1Y3RvciBpbgorICogdGhpcyBjbGFzczoKKyAq
IFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICAgIExv
Y2FsZSggY29uc3QgICBjaGFyKiAgbGFuZ3VhZ2UsCisgKiAgICAgICAgICAgICAgIGNvbnN0ICAg
Y2hhciogIGNvdW50cnksCisgKiAgICAgICAgICAgICAgIGNvbnN0ICAgY2hhciogIHZhcmlhbnQp
OworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBU
aGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZhbGlkIDxTVFJPTkc+
SVNPCisgKiBMYW5ndWFnZSBDb2RlLjwvU1RST05HPiBUaGVzZSBjb2RlcyBhcmUgdGhlIGxvd2Vy
LWNhc2UgdHdvLWxldHRlcgorICogY29kZXMgYXMgZGVmaW5lZCBieSBJU08tNjM5LgorICogWW91
IGNhbiBmaW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNlIGNvZGVzIGF0OgorICogPEJSPjxhIGhyZWYg
PSJodHRwOi8vd3d3LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLyI+CisgKiBodHRwOi8vd3d3
LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLzwvYT4KKyAqCisgKiA8UD4KKyAqIFRoZSBzZWNv
bmQgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZhbGlkIDxTVFJPTkc+SVNPIENv
dW50cnkKKyAqIENvZGUuPC9TVFJPTkc+IFRoZXNlIGNvZGVzIGFyZSB0aGUgdXBwZXItY2FzZSB0
d28tbGV0dGVyIGNvZGVzCisgKiBhcyBkZWZpbmVkIGJ5IElTTy0zMTY2LgorICogWW91IGNhbiBm
aW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNlIGNvZGVzIGF0IGEgbnVtYmVyIG9mIHNpdGVzLCBzdWNo
IGFzOgorICogPEJSPjxhIGhyZWY9Imh0dHA6Ly93d3cuaXNvLm9yZy9pc28vZW4vcHJvZHMtc2Vy
dmljZXMvaXNvMzE2Nm1hL2luZGV4Lmh0bWwiPgorICogaHR0cDovL3d3dy5pc28ub3JnL2lzby9l
bi9wcm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEvaW5kZXguaHRtbDwvYT4KKyAqCisgKiA8UD4KKyAq
IFRoZSB0aGlyZCBjb25zdHJ1Y3RvciByZXF1aXJlcyBhIHRoaXJkIGFyZ3VtZW50LS10aGUgPFNU
Uk9ORz5WYXJpYW50LjwvU1RST05HPgorICogVGhlIFZhcmlhbnQgY29kZXMgYXJlIHZlbmRvciBh
bmQgYnJvd3Nlci1zcGVjaWZpYy4KKyAqIEZvciBleGFtcGxlLCB1c2UgUkVWSVNFRCBmb3IgYSBs
YW5nYXVnZSdzIHJldmlzZWQgc2NyaXB0IG9ydGhvZ3JhcGh5LCBhbmQgUE9TSVggZm9yIFBPU0lY
LgorICogV2hlcmUgdGhlcmUgYXJlIHR3byB2YXJpYW50cywgc2VwYXJhdGUgdGhlbSB3aXRoIGFu
IHVuZGVyc2NvcmUsIGFuZAorICogcHV0IHRoZSBtb3N0IGltcG9ydGFudCBvbmUgZmlyc3QuIEZv
cgorICogZXhhbXBsZSwgYSBUcmFkaXRpb25hbCBTcGFuaXNoIGNvbGxhdGlvbiBtaWdodCBiZSBy
ZWZlcmVuY2VkLCB3aXRoCisgKiAiRVMiLCAiRVMiLCAiVHJhZGl0aW9uYWxfUE9TSVgiLgorICoK
KyAqIDxQPgorICogQmVjYXVzZSBhIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IGlzIGp1c3Qg
YW4gaWRlbnRpZmllciBmb3IgYSByZWdpb24sCisgKiBubyB2YWxpZGl0eSBjaGVjayBpcyBwZXJm
b3JtZWQgd2hlbiB5b3UgY29uc3RydWN0IGEgPGNvZGU+TG9jYWxlPC9jb2RlPi4KKyAqIElmIHlv
dSB3YW50IHRvIHNlZSB3aGV0aGVyIHBhcnRpY3VsYXIgcmVzb3VyY2VzIGFyZSBhdmFpbGFibGUg
Zm9yIHRoZQorICogPGNvZGU+TG9jYWxlPC9jb2RlPiB5b3UgY29uc3RydWN0LCB5b3UgbXVzdCBx
dWVyeSB0aG9zZSByZXNvdXJjZXMuIEZvcgorICogZXhhbXBsZSwgYXNrIHRoZSA8Y29kZT5OdW1i
ZXJGb3JtYXQ8L2NvZGU+IGZvciB0aGUgbG9jYWxlcyBpdCBzdXBwb3J0cworICogdXNpbmcgaXRz
IDxjb2RlPmdldEF2YWlsYWJsZUxvY2FsZXM8L2NvZGU+IG1ldGhvZC4KKyAqIDxCUj48U1RST05H
Pk5vdGU6PC9TVFJPTkc+IFdoZW4geW91IGFzayBmb3IgYSByZXNvdXJjZSBmb3IgYSBwYXJ0aWN1
bGFyCisgKiBsb2NhbGUsIHlvdSBnZXQgYmFjayB0aGUgYmVzdCBhdmFpbGFibGUgbWF0Y2gsIG5v
dCBuZWNlc3NhcmlseQorICogcHJlY2lzZWx5IHdoYXQgeW91IGFza2VkIGZvci4gRm9yIG1vcmUg
aW5mb3JtYXRpb24sIGxvb2sgYXQKKyAqIDxjb2RlPlJlc291cmNlQnVuZGxlPC9jb2RlPi4KKyAq
CisgKiA8UD4KKyAqIFRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGNsYXNzIHByb3ZpZGVzIGEgbnVt
YmVyIG9mIGNvbnZlbmllbnQgY29uc3RhbnRzCisgKiB0aGF0IHlvdSBjYW4gdXNlIHRvIGNyZWF0
ZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdHMgZm9yIGNvbW1vbmx5IHVzZWQKKyAqIGxvY2Fs
ZXMuIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHJlZmVycyB0byBhIDxjb2RlPkxvY2FsZTwv
Y29kZT4gb2JqZWN0CisgKiBmb3IgdGhlIFVuaXRlZCBTdGF0ZXM6CisgKiBcaHRtbG9ubHk8Ymxv
Y2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgICBMb2NhbGU6OmdldFVTKCkK
KyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICoKKyAq
IDxQPgorICogT25jZSB5b3UndmUgY3JlYXRlZCBhIDxjb2RlPkxvY2FsZTwvY29kZT4geW91IGNh
biBxdWVyeSBpdCBmb3IgaW5mb3JtYXRpb24gYWJvdXQKKyAqIGl0c2VsZi4gVXNlIDxjb2RlPmdl
dENvdW50cnk8L2NvZGU+IHRvIGdldCB0aGUgSVNPIENvdW50cnkgQ29kZSBhbmQKKyAqIDxjb2Rl
PmdldExhbmd1YWdlPC9jb2RlPiB0byBnZXQgdGhlIElTTyBMYW5ndWFnZSBDb2RlLiBZb3UgY2Fu
CisgKiB1c2UgPGNvZGU+Z2V0RGlzcGxheUNvdW50cnk8L2NvZGU+IHRvIGdldCB0aGUKKyAqIG5h
bWUgb2YgdGhlIGNvdW50cnkgc3VpdGFibGUgZm9yIGRpc3BsYXlpbmcgdG8gdGhlIHVzZXIuIFNp
bWlsYXJseSwKKyAqIHlvdSBjYW4gdXNlIDxjb2RlPmdldERpc3BsYXlMYW5ndWFnZTwvY29kZT4g
dG8gZ2V0IHRoZSBuYW1lIG9mCisgKiB0aGUgbGFuZ3VhZ2Ugc3VpdGFibGUgZm9yIGRpc3BsYXlp
bmcgdG8gdGhlIHVzZXIuIEludGVyZXN0aW5nbHksCisgKiB0aGUgPGNvZGU+Z2V0RGlzcGxheVhY
WDwvY29kZT4gbWV0aG9kcyBhcmUgdGhlbXNlbHZlcyBsb2NhbGUtc2Vuc2l0aXZlCisgKiBhbmQg
aGF2ZSB0d28gdmVyc2lvbnM6IG9uZSB0aGF0IHVzZXMgdGhlIGRlZmF1bHQgbG9jYWxlIGFuZCBv
bmUKKyAqIHRoYXQgdGFrZXMgYSBsb2NhbGUgYXMgYW4gYXJndW1lbnQgYW5kIGRpc3BsYXlzIHRo
ZSBuYW1lIG9yIGNvdW50cnkgaW4KKyAqIGEgbGFuZ3VhZ2UgYXBwcm9wcmlhdGUgdG8gdGhhdCBs
b2NhbGUuCisgKgorICogPFA+CisgKiBJQ1UgcHJvdmlkZXMgYSBudW1iZXIgb2YgY2xhc3NlcyB0
aGF0IHBlcmZvcm0gbG9jYWxlLXNlbnNpdGl2ZQorICogb3BlcmF0aW9ucy4gRm9yIGV4YW1wbGUs
IHRoZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGNsYXNzIGZvcm1hdHMKKyAqIG51bWJlcnMs
IGN1cnJlbmN5LCBvciBwZXJjZW50YWdlcyBpbiBhIGxvY2FsZS1zZW5zaXRpdmUgbWFubmVyLiBD
bGFzc2VzCisgKiBzdWNoIGFzIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gaGF2ZSBhIG51bWJl
ciBvZiBjb252ZW5pZW5jZSBtZXRob2RzCisgKiBmb3IgY3JlYXRpbmcgYSBkZWZhdWx0IG9iamVj
dCBvZiB0aGF0IHR5cGUuIEZvciBleGFtcGxlLCB0aGUKKyAqIDxjb2RlPk51bWJlckZvcm1hdDwv
Y29kZT4gY2xhc3MgcHJvdmlkZXMgdGhlc2UgdGhyZWUgY29udmVuaWVuY2UgbWV0aG9kcworICog
Zm9yIGNyZWF0aW5nIGEgZGVmYXVsdCA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IG9iamVjdDoK
KyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICBV
RXJyb3JDb2RlIHN1Y2Nlc3MgPSBVX1pFUk9fRVJST1I7CisgKiAgICAgTG9jYWxlIG15TG9jYWxl
OworICogICAgIE51bWJlckZvcm1hdCAqbmY7CisgKgorICogICAgIG5mID0gTnVtYmVyRm9ybWF0
OjpjcmVhdGVJbnN0YW5jZSggc3VjY2VzcyApOyAgICAgICAgICBkZWxldGUgbmY7CisgKiAgICAg
bmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUN1cnJlbmN5SW5zdGFuY2UoIHN1Y2Nlc3MgKTsgIGRl
bGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlUGVyY2VudEluc3RhbmNl
KCBzdWNjZXNzICk7ICAgZGVsZXRlIG5mOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2Nr
cXVvdGU+XGVuZGh0bWxvbmx5CisgKiBFYWNoIG9mIHRoZXNlIG1ldGhvZHMgaGFzIHR3byB2YXJp
YW50czsgb25lIHdpdGggYW4gZXhwbGljaXQgbG9jYWxlCisgKiBhbmQgb25lIHdpdGhvdXQ7IHRo
ZSBsYXR0ZXIgdXNpbmcgdGhlIGRlZmF1bHQgbG9jYWxlLgorICogXGh0bWxvbmx5PGJsb2NrcXVv
dGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVh
dGVJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgICAgICAgICAgZGVsZXRlIG5mOworICog
ICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVDdXJyZW5jeUluc3RhbmNlKCBteUxvY2FsZSwg
c3VjY2VzcyApOyAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVQ
ZXJjZW50SW5zdGFuY2UoIG15TG9jYWxlLCBzdWNjZXNzICk7ICAgZGVsZXRlIG5mOworICogPC9w
cmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBBIDxjb2RlPkxv
Y2FsZTwvY29kZT4gaXMgdGhlIG1lY2hhbmlzbSBmb3IgaWRlbnRpZnlpbmcgdGhlIGtpbmQgb2Yg
b2JqZWN0CisgKiAoPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPikgdGhhdCB5b3Ugd291bGQgbGlr
ZSB0byBnZXQuIFRoZSBsb2NhbGUgaXMKKyAqIDxTVFJPTkc+anVzdDwvU1RST05HPiBhIG1lY2hh
bmlzbSBmb3IgaWRlbnRpZnlpbmcgb2JqZWN0cywKKyAqIDxTVFJPTkc+bm90PC9TVFJPTkc+IGEg
Y29udGFpbmVyIGZvciB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgorICoKKyAqIDxQPgorICogRWFj
aCBjbGFzcyB0aGF0IHBlcmZvcm1zIGxvY2FsZS1zZW5zaXRpdmUgb3BlcmF0aW9ucyBhbGxvd3Mg
eW91CisgKiB0byBnZXQgYWxsIHRoZSBhdmFpbGFibGUgb2JqZWN0cyBvZiB0aGF0IHR5cGUuIFlv
dSBjYW4gc2lmdAorICogdGhyb3VnaCB0aGVzZSBvYmplY3RzIGJ5IGxhbmd1YWdlLCBjb3VudHJ5
LCBvciB2YXJpYW50LAorICogYW5kIHVzZSB0aGUgZGlzcGxheSBuYW1lcyB0byBwcmVzZW50IGEg
bWVudSB0byB0aGUgdXNlci4KKyAqIEZvciBleGFtcGxlLCB5b3UgY2FuIGNyZWF0ZSBhIG1lbnUg
b2YgYWxsIHRoZSBjb2xsYXRpb24gb2JqZWN0cworICogc3VpdGFibGUgZm9yIGEgZ2l2ZW4gbGFu
Z3VhZ2UuIFN1Y2ggY2xhc3NlcyBpbXBsZW1lbnQgdGhlc2UKKyAqIHRocmVlIGNsYXNzIG1ldGhv
ZHM6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAg
ICAgICBzdGF0aWMgTG9jYWxlKiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIG51bUxvY2Fs
ZXMpCisgKiAgICAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxheU5hbWUoY29uc3Qg
TG9jYWxlJiAgb2JqZWN0TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYgIGRpc3BsYXlMb2NhbGUsCisgKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcGxheU5h
bWUpCisgKiAgICAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxheU5hbWUoY29uc3Qg
TG9jYWxlJiAgb2JqZWN0TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BsYXlOYW1lKQorICogPC9wcmU+CisgKiBc
aHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKgorICogQHN0YWJsZSBJQ1UgMi4w
CisgKiBAc2VlIFJlc291cmNlQnVuZGxlCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBMb2NhbGUg
OiBwdWJsaWMgVU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3Ig
dGhlIFJvb3QgbG9jYWxlLiBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9j
YWxlICZVX0VYUE9SVDIgZ2V0Um9vdCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZv
ciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9j
YWxlICZVX0VYUE9SVDIgZ2V0RW5nbGlzaCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50
IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3Qg
TG9jYWxlICZVX0VYUE9SVDIgZ2V0RnJlbmNoKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3Rh
bnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25z
dCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRHZXJtYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25z
dGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNv
bnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEl0YWxpYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBj
b25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEphcGFuZXNlKHZvaWQpOworICAgIC8qKiBVc2Vm
dWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRLb3JlYW4odm9pZCk7CisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAg
c3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENoaW5lc2Uodm9pZCk7CisgICAgLyoq
IFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisg
ICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFNpbXBsaWZpZWRDaGluZXNlKHZv
aWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUg
SUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRUcmFkaXRp
b25hbENoaW5lc2Uodm9pZCk7CisKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNv
dW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxl
ICZVX0VYUE9SVDIgZ2V0RnJhbmNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9y
IHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25z
dCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRHZXJtYW55KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRJdGFseSh2b2lkKTsKKyAgICAvKiogVXNl
ZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8K
KyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SmFwYW4odm9pZCk7CisgICAg
LyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1Ug
Mi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEtvcmVhKHZvaWQp
OworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFi
bGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDaGlu
YSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9u
LiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIg
Z2V0UFJDKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9y
ZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQ
T1JUMiBnZXRUYWl3YW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBj
b3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2Fs
ZSAmVV9FWFBPUlQyIGdldFVLKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRo
aXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBM
b2NhbGUgJlVfRVhQT1JUMiBnZXRVUyh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZv
ciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2FuYWRhKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDYW5hZGFGcmVuY2godm9pZCk7CisKKwor
ICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIGRlZmF1bHQgbG9jYWxlIG9iamVjdCwgYSBMb2Nh
bGUgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBJRC4KKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RGVm
YXVsdAorICAgICAqIEBzZWUgdWxvY19nZXREZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgTG9jYWxlKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBs
b2NhbGUgZnJvbSBsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudC4KKyAgICAgKiBJZiBhbiBlcnJv
ciBvY2N1cnMsIHRoZW4gdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlICJib2d1cyIKKyAg
ICAgKiAoaXNCb2d1cygpIHdpbGwgcmV0dXJuIFRSVUUpLgorICAgICAqCisgICAgICogQHBhcmFt
IGxhbmd1YWdlIExvd2VyY2FzZSB0d28tbGV0dGVyIG9yIHRocmVlLWxldHRlciBJU08tNjM5IGNv
ZGUuCisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNhbiBpbnN0ZWFkIGJlIGFuIElDVSBzdHlsZSBD
IGxvY2FsZSAoZS5nLiAiZW5fVVMiKSwKKyAgICAgKiAgYnV0IHRoZSBvdGhlciBwYXJhbWV0ZXJz
IG11c3Qgbm90IGJlIHVzZWQuCisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSBOVUxMOyBp
ZiBzbywKKyAgICAgKiAgdGhlIGxvY2FsZSBpcyBpbml0aWFsaXplZCB0byBtYXRjaCB0aGUgY3Vy
cmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiAgKFRoaXMgaXMgdGhlIHNhbWUgYXMgdXNpbmcg
dGhlIGRlZmF1bHQgY29uc3RydWN0b3IuKQorICAgICAqICBQbGVhc2Ugbm90ZTogVGhlIEphdmEg
TG9jYWxlIGNsYXNzIGRvZXMgTk9UIGFjY2VwdCB0aGUgZm9ybQorICAgICAqICAnbmV3IExvY2Fs
ZSgiZW5fVVMiKScgYnV0IG9ubHkgJ25ldyBMb2NhbGUoImVuIiwiVVMiKScKKyAgICAgKgorICAg
ICAqIEBwYXJhbSBjb3VudHJ5ICBVcHBlcmNhc2UgdHdvLWxldHRlciBJU08tMzE2NiBjb2RlLiAo
b3B0aW9uYWwpCisgICAgICogQHBhcmFtIHZhcmlhbnQgIFVwcGVyY2FzZSB2ZW5kb3IgYW5kIGJy
b3dzZXIgc3BlY2lmaWMgY29kZS4gU2VlIGNsYXNzCisgICAgICogICAgICAgICAgICAgICAgIGRl
c2NyaXB0aW9uLiAob3B0aW9uYWwpCisgICAgICogQHBhcmFtIGtleXdvcmRzQW5kVmFsdWVzIEEg
c3RyaW5nIGNvbnNpc3Rpbmcgb2Yga2V5d29yZC92YWx1ZXMgcGFpcnMsIHN1Y2ggYXMKKyAgICAg
KiAgICAgICAgICAgICAgICAgImNvbGxhdGlvbj1waG9uZWJvb2s7Y3VycmVuY3k9ZXVybyIKKyAg
ICAgKgorICAgICAqIEBzZWUgZ2V0RGVmYXVsdAorICAgICAqIEBzZWUgdWxvY19nZXREZWZhdWx0
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxlKCBjb25zdCAgIGNo
YXIgKiBsYW5ndWFnZSwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIGNvdW50cnkgID0gMCwK
KyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIHZhcmlhbnQgID0gMCwKKyAgICAgICAgICAgIGNv
bnN0ICAgY2hhciAqIGtleXdvcmRzQW5kVmFsdWVzID0gMCk7CisKKyAgICAvKioKKyAgICAgKiBJ
bml0aWFsaXplcyBhIExvY2FsZSBvYmplY3QgZnJvbSBhbm90aGVyIExvY2FsZSBvYmplY3QuCisg
ICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIExvY2FsZSBvYmplY3QgYmVpbmcgY29waWVk
IGluLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZShjb25zdCAg
ICBMb2NhbGUmIG90aGVyKTsKKworCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3RvcgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkxvY2FsZSgpIDsKKworICAg
IC8qKgorICAgICAqIFJlcGxhY2VzIHRoZSBlbnRpcmUgY29udGVudHMgb2YgKnRoaXMgd2l0aCB0
aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBMb2Nh
bGUgb2JqZWN0IGJlaW5nIGNvcGllZCBpbi4KKyAgICAgKiBAcmV0dXJuICAgICAgKnRoaXMKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUmIG9wZXJhdG9yPShjb25z
dCBMb2NhbGUmIG90aGVyKTsKKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0d28gbG9jYWxl
IGtleXMgYXJlIHRoZSBzYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBsb2Nh
bGUga2V5IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAgICogQHJldHVybiAg
ICAgIFRydWUgaWYgdGhlIHR3byBsb2NhbGUga2V5cyBhcmUgdGhlIHNhbWUsIGZhbHNlIG90aGVy
d2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCAgIG9wZXJh
dG9yPT0oY29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0OworCisgICAgLyoqCisgICAg
ICogQ2hlY2tzIGlmIHR3byBsb2NhbGUga2V5cyBhcmUgbm90IHRoZSBzYW1lLgorICAgICAqCisg
ICAgICogQHBhcmFtIG90aGVyIFRoZSBsb2NhbGUga2V5IG9iamVjdCB0byBiZSBjb21wYXJlZCB3
aXRoIHRoaXMuCisgICAgICogQHJldHVybiAgICAgIFRydWUgaWYgdGhlIHR3byBsb2NhbGUga2V5
cyBhcmUgbm90IHRoZSBzYW1lLCBmYWxzZQorICAgICAqICAgICAgICAgICAgICBvdGhlcndpc2Uu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVUJvb2wgICBvcGVyYXRvciE9
KGNvbnN0ICAgIExvY2FsZSYgICAgIG90aGVyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENs
b25lIHRoaXMgb2JqZWN0LgorICAgICAqIENsb25lcyBjYW4gYmUgdXNlZCBjb25jdXJyZW50bHkg
aW4gbXVsdGlwbGUgdGhyZWFkcy4KKyAgICAgKiBJZiBhbiBlcnJvciBvY2N1cnMsIHRoZW4gTlVM
TCBpcyByZXR1cm5lZC4KKyAgICAgKiBUaGUgY2FsbGVyIG11c3QgZGVsZXRlIHRoZSBjbG9uZS4K
KyAgICAgKgorICAgICAqIEByZXR1cm4gYSBjbG9uZSBvZiB0aGlzIG9iamVjdAorICAgICAqCisg
ICAgICogQHNlZSBnZXREeW5hbWljQ2xhc3NJRAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAg
ICAqLworICAgIExvY2FsZSAqY2xvbmUoKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfU1lTVEVN
X0FQSQorICAgIC8qKgorICAgICAqIENvbW1vbiBtZXRob2RzIG9mIGdldHRpbmcgdGhlIGN1cnJl
bnQgZGVmYXVsdCBMb2NhbGUuIFVzZWQgZm9yIHRoZQorICAgICAqIHByZXNlbnRhdGlvbjogbWVu
dXMsIGRpYWxvZ3MsIGV0Yy4gR2VuZXJhbGx5IHNldCBvbmNlIHdoZW4geW91ciBhcHBsZXQgb3IK
KyAgICAgKiBhcHBsaWNhdGlvbiBpcyBpbml0aWFsaXplZCwgdGhlbiBuZXZlciByZXNldC4gKElm
IHlvdSBkbyByZXNldCB0aGUKKyAgICAgKiBkZWZhdWx0IGxvY2FsZSwgeW91IHByb2JhYmx5IHdh
bnQgdG8gcmVsb2FkIHlvdXIgR1VJLCBzbyB0aGF0IHRoZSBjaGFuZ2UKKyAgICAgKiBpcyByZWZs
ZWN0ZWQgaW4geW91ciBpbnRlcmZhY2UuKQorICAgICAqCisgICAgICogTW9yZSBhZHZhbmNlZCBw
cm9ncmFtcyB3aWxsIGFsbG93IHVzZXJzIHRvIHVzZSBkaWZmZXJlbnQgbG9jYWxlcyBmb3IKKyAg
ICAgKiBkaWZmZXJlbnQgZmllbGRzLCBlLmcuIGluIGEgc3ByZWFkc2hlZXQuCisgICAgICoKKyAg
ICAgKiBOb3RlIHRoYXQgdGhlIGluaXRpYWwgc2V0dGluZyB3aWxsIG1hdGNoIHRoZSBob3N0IHN5
c3RlbS4KKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSBMb2NhbGUgb2JqZWN0IGZv
ciB0aGUgZGVmYXVsdCBsb2NhbGUgSUQKKyAgICAgKiBAc3lzdGVtCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSYgVV9FWFBPUlQyIGdldERl
ZmF1bHQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWZhdWx0LiBOb3JtYWxs
eSBzZXQgb25jZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgcHJvY2VzcywKKyAgICAgKiB0aGVuIG5l
dmVyIHJlc2V0LgorICAgICAqIHNldERlZmF1bHQoKSBvbmx5IGNoYW5nZXMgSUNVJ3MgZGVmYXVs
dCBsb2NhbGUgSUQsIDxzdHJvbmc+bm90PC9zdHJvbmc+CisgICAgICogdGhlIGRlZmF1bHQgbG9j
YWxlIElEIG9mIHRoZSBydW50aW1lIGVudmlyb25tZW50LgorICAgICAqCisgICAgICogQHBhcmFt
IG5ld0xvY2FsZSBMb2NhbGUgdG8gc2V0IHRvLiAgSWYgTlVMTCwgc2V0IHRvIHRoZSB2YWx1ZSBv
YnRhaW5lZAorICAgICAqICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgcnVudGltZSBlbnZpcm9u
ZW1lbnQuCisgICAgICogQHBhcmFtIHN1Y2Nlc3MgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHN5
c3RlbQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyB2b2lkIFVf
RVhQT1JUMiBzZXREZWZhdWx0KGNvbnN0IExvY2FsZSYgbmV3TG9jYWxlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUmICAgc3VjY2Vzcyk7CisjZW5kaWYg
IC8qIFVfSElERV9TWVNURU1fQVBJICovCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbG9j
YWxlIHdoaWNoIGhhcyBoYWQgbWluaW1hbCBjYW5vbmljYWxpemF0aW9uCisgICAgICogYXMgcGVy
IHVsb2NfZ2V0TmFtZSgpLgorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIHRvIGNyZWF0ZSBm
cm9tLiAgSWYgbmFtZSBpcyBudWxsLAorICAgICAqICB0aGUgZGVmYXVsdCBMb2NhbGUgaXMgdXNl
ZC4KKyAgICAgKiBAcmV0dXJuIG5ldyBsb2NhbGUgb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICogQHNlZSB1bG9jX2dldE5hbWUKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9jYWxl
IFVfRVhQT1JUMiBjcmVhdGVGcm9tTmFtZShjb25zdCBjaGFyICpuYW1lKTsKKworICAgIC8qKgor
ICAgICAqIENyZWF0ZXMgYSBsb2NhbGUgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nIGFmdGVyIGNhbm9u
aWNhbGl6aW5nCisgICAgICogdGhlIHN0cmluZyBieSBjYWxsaW5nIHVsb2NfY2Fub25pY2FsaXpl
KCkuCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGxvY2FsZSBJRCB0byBjcmVhdGUgZnJvbS4gIE11
c3Qgbm90IGJlIE5VTEwuCisgICAgICogQHJldHVybiBhIG5ldyBsb2NhbGUgb2JqZWN0IGNvcnJl
c3BvbmRpbmcgdG8gdGhlIGdpdmVuIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAg
KiBAc2VlIHVsb2NfY2Fub25pY2FsaXplCisgICAgICovCisgICAgc3RhdGljIExvY2FsZSBVX0VY
UE9SVDIgY3JlYXRlQ2Fub25pY2FsKGNvbnN0IGNoYXIqIG5hbWUpOworCisgICAgLyoqCisgICAg
ICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTYzOSBsYW5ndWFnZSBjb2RlLgorICAgICAqIEBy
ZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldExhbmd1YWdlKCApIGNvbnN0Owor
CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTE1OTI0IGFiYnJldmlh
dGlvbiBzY3JpcHQgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNv
ZGUKKyAgICAgKiBAc2VlIHVzY3JpcHRfZ2V0U2hvcnROYW1lCisgICAgICogQHNlZSB1c2NyaXB0
X2dldENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBpbmxpbmUgY29u
c3QgY2hhciAqICBnZXRTY3JpcHQoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5z
IHRoZSBsb2NhbGUncyBJU08tMzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICogQHJldHVybiAgICAg
IEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0Q291bnRyeSggKSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIHZhcmlhbnQgY29kZS4KKyAgICAgKiBAcmV0dXJu
ICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRWYXJpYW50KCApIGNvbnN0OworCisgICAg
LyoqCisgICAgICogUmV0dXJucyB0aGUgcHJvZ3JhbW1hdGljIG5hbWUgb2YgdGhlIGVudGlyZSBs
b2NhbGUsIHdpdGggdGhlIGxhbmd1YWdlLAorICAgICAqIGNvdW50cnkgYW5kIHZhcmlhbnQgc2Vw
YXJhdGVkIGJ5IHVuZGVyYmFycy4gSWYgYSBmaWVsZCBpcyBtaXNzaW5nLCB1cAorICAgICAqIHRv
IHR3byBsZWFkaW5nIHVuZGVyYmFycyB3aWxsIG9jY3VyLiBFeGFtcGxlOiAiZW4iLCAiZGVfREUi
LCAiZW5fVVNfV0lOIiwKKyAgICAgKiAiZGVfX1BPU0lYIiwgImZyX19NQUMiLCAiX19NQUMiLCAi
X01UIiwgIl9GUl9FVVJPIgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8gIm5hbWUi
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFy
ICogZ2V0TmFtZSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcHJvZ3Jh
bW1hdGljIG5hbWUgb2YgdGhlIGVudGlyZSBsb2NhbGUgYXMgZ2V0TmFtZSgpIHdvdWxkIHJldHVy
biwKKyAgICAgKiBidXQgd2l0aG91dCBrZXl3b3Jkcy4KKyAgICAgKiBAcmV0dXJuICAgICAgQSBw
b2ludGVyIHRvICJuYW1lIi4KKyAgICAgKiBAc2VlIGdldE5hbWUKKyAgICAgKiBAc3RhYmxlIElD
VSAyLjgKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0QmFzZU5hbWUoKSBjb25zdDsKKwor
CisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGlzdCBvZiBrZXl3b3JkcyBmb3IgdGhlIHNwZWNp
ZmllZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBzdGF0dXMgY29k
ZQorICAgICAqIEByZXR1cm4gcG9pbnRlciB0byBTdHJpbmdFbnVtZXJhdGlvbiBjbGFzcywgb3Ig
TlVMTCBpZiB0aGVyZSBhcmUgbm8ga2V5d29yZHMuIAorICAgICAqIENsaWVudCBtdXN0IGRpc3Bv
c2Ugb2YgaXQgYnkgY2FsbGluZyBkZWxldGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAg
ICovCisgICAgU3RyaW5nRW51bWVyYXRpb24gKiBjcmVhdGVLZXl3b3JkcyhVRXJyb3JDb2RlICZz
dGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdmFsdWUgZm9yIGEga2V5
d29yZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3
b3JkIGZvciB3aGljaCB3ZSB3YW50IHRoZSB2YWx1ZS4gQ2FzZSBpbnNlbnNpdGl2ZS4KKyAgICAg
KiBAcGFyYW0gYnVmZmVyIFRoZSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUga2V5d29yZCB2YWx1ZS4K
KyAgICAgKiBAcGFyYW0gYnVmZmVyQ2FwYWNpdHkgVGhlIGNhcGFjaXR5IG9mIHJlY2VpdmluZyBi
dWZmZXIKKyAgICAgKiBAcGFyYW0gc3RhdHVzIFJldHVybnMgYW55IGVycm9yIGluZm9ybWF0aW9u
IHdoaWxlIHBlcmZvcm1pbmcgdGhpcyBvcGVyYXRpb24uCisgICAgICogQHJldHVybiB0aGUgbGVu
Z3RoIG9mIHRoZSBrZXl3b3JkIHZhbHVlCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgK
KyAgICAgKi8KKyAgICBpbnQzMl90IGdldEtleXdvcmRWYWx1ZShjb25zdCBjaGFyKiBrZXl3b3Jk
TmFtZSwgY2hhciAqYnVmZmVyLCBpbnQzMl90IGJ1ZmZlckNhcGFjaXR5LCBVRXJyb3JDb2RlICZz
dGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogU2V0cyBvciByZW1vdmVzIHRoZSB2YWx1
ZSBmb3IgYSBrZXl3b3JkLgorICAgICAqCisgICAgICogRm9yIHJlbW92aW5nIGFsbCBrZXl3b3Jk
cywgdXNlIGdldEJhc2VOYW1lKCksCisgICAgICogYW5kIGNvbnN0cnVjdCBhIG5ldyBMb2NhbGUg
aWYgaXQgZGlmZmVycyBmcm9tIGdldE5hbWUoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXl3
b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3JkIHRvIGJlIHNldC4gQ2FzZSBpbnNlbnNpdGl2ZS4K
KyAgICAgKiBAcGFyYW0ga2V5d29yZFZhbHVlIHZhbHVlIG9mIHRoZSBrZXl3b3JkIHRvIGJlIHNl
dC4gSWYgMC1sZW5ndGggb3IKKyAgICAgKiAgTlVMTCwgd2lsbCByZXN1bHQgaW4gdGhlIGtleXdv
cmQgYmVpbmcgcmVtb3ZlZC4gTm8gZXJyb3IgaXMgZ2l2ZW4gaWYKKyAgICAgKiAgdGhhdCBrZXl3
b3JkIGRvZXMgbm90IGV4aXN0LgorICAgICAqIEBwYXJhbSBzdGF0dXMgUmV0dXJucyBhbnkgZXJy
b3IgaW5mb3JtYXRpb24gd2hpbGUgcGVyZm9ybWluZyB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKgor
ICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdm9pZCBzZXRLZXl3b3JkVmFsdWUo
Y29uc3QgY2hhcioga2V5d29yZE5hbWUsIGNvbnN0IGNoYXIqIGtleXdvcmRWYWx1ZSwgVUVycm9y
Q29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIHJldHVybnMgdGhlIGxvY2FsZSdzIHRo
cmVlLWxldHRlciBsYW5ndWFnZSBjb2RlLCBhcyBzcGVjaWZpZWQKKyAgICAgKiBpbiBJU08gZHJh
ZnQgc3RhbmRhcmQgSVNPLTYzOS0yLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0
aGUgY29kZSwgb3IgYW4gZW1wdHkgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgY29uc3QgY2hhciAqIGdldElTTzNMYW5ndWFnZSgpIGNvbnN0OworCisgICAgLyoq
CisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIGxvY2FsZSdzIHRocmVlLWxldHRlciBJ
U08tMzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRo
ZSBjb2RlLCBvciBhbiBlbXB0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBjb25zdCBjaGFyICogZ2V0SVNPM0NvdW50cnkoKSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIFdpbmRvd3MgTENJRCB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRo
aXMgbG9jYWxlLgorICAgICAqIFRoaXMgdmFsdWUgaXMgc3RvcmVkIGluIHRoZSByZXNvdXJjZSBk
YXRhIGZvciB0aGUgbG9jYWxlIGFzIGEgb25lLXRvLWZvdXItZGlnaXQKKyAgICAgKiBoZXhhZGVj
aW1hbCBudW1iZXIuICBJZiB0aGUgcmVzb3VyY2UgaXMgbWlzc2luZywgaW4gdGhlIHdyb25nIGZv
cm1hdCwgb3IKKyAgICAgKiB0aGVyZSBpcyBubyBXaW5kb3dzIExDSUQgdmFsdWUgdGhhdCBjb3Jy
ZXNwb25kcyB0byB0aGlzIGxvY2FsZSwgcmV0dXJucyAwLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICBnZXRMQ0lEKHZvaWQpIGNvbnN0OworCisj
aWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHdoZXRoZXIg
dGhpcyBsb2NhbGUncyBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0LgorICAgICAqIElm
IHRoZXJlIGlzIG5vIHNjcmlwdCBzdWJ0YWcsIHRoZW4gdGhlIGxpa2VseSBzY3JpcHQgaXMgdXNl
ZCwgc2VlIHVsb2NfYWRkTGlrZWx5U3VidGFncygpLgorICAgICAqIElmIG5vIGxpa2VseSBzY3Jp
cHQgaXMga25vd24sIHRoZW4gRkFMU0UgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBBIHNj
cmlwdCBpcyByaWdodC10by1sZWZ0IGFjY29yZGluZyB0byB0aGUgQ0xEUiBzY3JpcHQgbWV0YWRh
dGEKKyAgICAgKiB3aGljaCBjb3JyZXNwb25kcyB0byB3aGV0aGVyIHRoZSBzY3JpcHQncyBsZXR0
ZXJzIGhhdmUgQmlkaV9DbGFzcz1SIG9yIEFMLgorICAgICAqCisgICAgICogUmV0dXJucyBUUlVF
IGZvciAiYXIiIGFuZCAiZW4tSGViciIsIEZBTFNFIGZvciAiemgiIGFuZCAiZmEtQ3lybCIuCisg
ICAgICoKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIGxvY2FsZSdzIHNjcmlwdCBpcyB3cml0
dGVuIHJpZ2h0LXRvLWxlZnQKKyAgICAgKiBAZHJhZnQgSUNVIDU0CisgICAgICovCisgICAgVUJv
b2wgaXNSaWdodFRvTGVmdCgpIGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJICov
CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcExhbmciIHdpdGggdGhlIG5hbWUgb2Yg
dGhpcyBsb2NhbGUncyBsYW5ndWFnZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IKKyAgICAgKiB1
c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBs
b2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzCisgICAgICogImZyIiBhbmQgdGhlIGRlZmF1bHQgbG9j
YWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAg
ICAqIGRpc3BMYW5nIHRvICJGcmVuY2giLgorICAgICAqIEBwYXJhbSBkaXNwTGFuZyAgUmVjZWl2
ZXMgdGhlIGxhbmd1YWdlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAg
QSByZWZlcmVuY2UgdG8gImRpc3BMYW5nIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUxhbmd1YWdlKFVuaWNvZGVTdHJpbmcm
ICAgZGlzcExhbmcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BMYW5n
IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgaW4gYSBmb3JtYXQgc3Vp
dGFibGUgZm9yCisgICAgICogdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5
ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBs
YW5ndWFnZSBjb2RlIGlzICJlbiIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlz
ICJmciIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcExhbmcgdG8gIkFuZ2xh
aXMiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0
byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlciB3b3JkcywKKyAgICAgKiAg
ICAgICAgICAgICAgICAgIGlmIHRoZSBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHBh
c3NpbmcgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgIGRp
c3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICJBbmdsYWlzIiwgd2hpbGUgcGFzc2luZyBMb2Nh
bGU6OmdldEdlcm1hbigpCisgICAgICogICAgICAgICAgICAgICAgICBmb3IgZGlzcGxheUxvY2Fs
ZSB3b3VsZCByZXN1bHQgaW4gIkVuZ2xpc2NoIi4KKyAgICAgKiBAcGFyYW0gZGlzcExhbmcgIFJl
Y2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAg
ICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwTGFuZyIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlMYW5ndWFnZSggY29uc3QgICBM
b2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwTGFuZykgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFNjcmlwdCIgd2l0aCB0aGUgbmFtZSBvZiB0
aGlzIGxvY2FsZSdzIHNjcmlwdCBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2Vy
IGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2Nh
bGUncyBzY3JpcHQgY29kZQorICAgICAqIGlzICJMQVROIiBhbmQgdGhlIGRlZmF1bHQgbG9jYWxl
J3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAq
IGRpc3BTY3JpcHQgdG8gIkxhdGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcFNjcmlwdCAgICBSZWNl
aXZlcyB0aGUgc2NyaXB0cydzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAg
ICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFNjcmlwdCIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44
CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlTY3JpcHQoICAgICAgICAg
IFVuaWNvZGVTdHJpbmcmIGRpc3BTY3JpcHQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmls
bHMgaW4gImRpc3BTY3JpcHQiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5
IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgbG9j
YWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxv
Y2FsZSdzCisgICAgICogc2NyaXB0IGNvZGUgaXMgIkxBVE4iIGFuZCBkaXNwbGF5TG9jYWxlJ3Mg
bGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRp
c3BTY3JpcHQgdG8gIkxhdGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgICAgIFNw
ZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIEluIG90
aGVyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd29yZHMsIGlmIHRoZSBsb2NhbGUncyBz
Y3JpcHQgY29kZSBpcyAiTEFUTiIsIHBhc3NpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbGU6OmdldEZyZW5jaCgpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAi
Iiwgd2hpbGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBwYXNzaW5nIExvY2FsZTo6Z2V0
R2VybWFuKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluCisgICAgICogICAgICAg
ICAgICAgICAgICAgICAgIiIuCisgICAgICogQHBhcmFtIGRpc3BTY3JpcHQgICAgUmVjZWl2ZXMg
dGhlIHNjcmlwdHMncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAg
QSByZWZlcmVuY2UgdG8gImRpc3BTY3JpcHQiLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAg
ICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5U2NyaXB0KCAgY29uc3QgICBMb2Nh
bGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BTY3JpcHQpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BDb3VudHJ5IiB3aXRoIHRoZSBuYW1lIG9mIHRo
aXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2Vy
IGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2Nh
bGUncyBjb3VudHJ5IGNvZGUKKyAgICAgKiBpcyAiRlIiIGFuZCB0aGUgZGVmYXVsdCBsb2NhbGUn
cyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICog
ZGlzcENvdW50cnkgdG8gIkZyYW5jZSIuCisgICAgICogQHBhcmFtIGRpc3BDb3VudHJ5ICAgUmVj
ZWl2ZXMgdGhlIGNvdW50cnkncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAg
ICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNvdW50cnkoICAgICAg
ICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BDb3VudHJ5KSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IEZpbGxzIGluICJkaXNwQ291bnRyeSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGNv
dW50cnkgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRo
ZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBpZiB0
aGUgbG9jYWxlJ3MKKyAgICAgKiBjb3VudHJ5IGNvZGUgaXMgIlVTIiBhbmQgZGlzcGxheUxvY2Fs
ZSdzIGxhbmd1YWdlIGNvZGUgaXMgImZyIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAg
KiBkaXNwQ291bnRyeSB0byAiJkVhY3V0ZTt0YXRzLVVuaXMiLgorICAgICAqIEBwYXJhbSBkaXNw
bGF5TG9jYWxlICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5
IHRoZSBuYW1lLiAgSW4gb3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB3b3Jkcywg
aWYgdGhlIGxvY2FsZSdzIGNvdW50cnkgY29kZSBpcyAiVVMiLCBwYXNzaW5nCisgICAgICogICAg
ICAgICAgICAgICAgICAgICAgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IgZGlzcGxheUxvY2FsZSB3
b3VsZCByZXN1bHQgaW4gIiZFYWN1dGU7dGF0cy1VbmlzIiwgd2hpbGUKKyAgICAgKiAgICAgICAg
ICAgICAgICAgICAgICBwYXNzaW5nIExvY2FsZTo6Z2V0R2VybWFuKCkgZm9yIGRpc3BsYXlMb2Nh
bGUgd291bGQgcmVzdWx0IGluCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIlZlcmVpbmln
dGUgU3RhYXRlbiIuCisgICAgICogQHBhcmFtIGRpc3BDb3VudHJ5ICAgUmVjZWl2ZXMgdGhlIGNv
dW50cnkncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgQSByZWZl
cmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNvdW50cnkoICBjb25zdCAgIExvY2FsZSYg
ICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BDb3VudHJ5KSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwVmFyIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9j
YWxlJ3MgdmFyaWFudCBjb2RlIGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIg
ZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BWYXIgICBS
ZWNlaXZlcyB0aGUgdmFyaWFudCdzIG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJl
ZmVyZW5jZSB0byAiZGlzcFZhciIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlWYXJpYW50KCAgICAgIFVuaWNvZGVTdHJpbmcm
IGRpc3BWYXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BWYXIiIHdp
dGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyB2YXJpYW50IGNvZGUgaW4gYSBmb3JtYXQKKyAg
ICAgKiBzdWl0YWJsZSBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5
ICJkaXNwbGF5TG9jYWxlIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgU3BlY2lmaWVz
IHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEBwYXJh
bSBkaXNwVmFyICAgUmVjZWl2ZXMgdGhlIHZhcmlhbnQncyBkaXNwbGF5IG5hbWUuCisgICAgICog
QHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFZhciIuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlWYXJpYW50
KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwVmFy
KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRoZSBuYW1l
IG9mIHRoaXMgbG9jYWxlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkKKyAg
ICAgKiBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBUaGlzIGZ1bmN0aW9uIHVzZXMgZ2V0RGlzcGxh
eUxhbmd1YWdlKCksIGdldERpc3BsYXlDb3VudHJ5KCksCisgICAgICogYW5kIGdldERpc3BsYXlW
YXJpYW50KCkgdG8gZG8gaXRzIHdvcmssIGFuZCBvdXRwdXRzIHRoZSBkaXNwbGF5IG5hbWUgaW4g
dGhlIGZvcm1hdAorICAgICAqICJsYW5ndWFnZSAoY291bnRyeVssdmFyaWFudF0pIi4gIEZvciBl
eGFtcGxlLCBpZiB0aGUgZGVmYXVsdCBsb2NhbGUgaXMgZW5fVVMsIHRoZW4KKyAgICAgKiBmcl9G
UidzIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAiRnJlbmNoIChGcmFuY2UpIiwgYW5kIGVzX01YX1Ry
YWRpdGlvbmFsJ3MgZGlzcGxheSBuYW1lCisgICAgICogd291bGQgYmUgIlNwYW5pc2ggKE1leGlj
byxUcmFkaXRpb25hbCkiLgorICAgICAqIEBwYXJhbSBuYW1lICBSZWNlaXZlcyB0aGUgbG9jYWxl
J3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICBBIHJlZmVyZW5jZSB0byAibmFt
ZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYg
IGdldERpc3BsYXlOYW1lKCAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBuYW1lKSBjb25zdDsKKwor
ICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9j
YWxlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkKKyAgICAgKiBpbiB0aGUg
bG9jYWxlIHNwZWNmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIFRoaXMgZnVuY3Rpb24gdXNlcyBn
ZXREaXNwbGF5TGFuZ3VhZ2UoKSwKKyAgICAgKiBnZXREaXNwbGF5Q291bnRyeSgpLCBhbmQgZ2V0
RGlzcGxheVZhcmlhbnQoKSB0byBkbyBpdHMgd29yaywgYW5kIG91dHB1dHMgdGhlIGRpc3BsYXkK
KyAgICAgKiBuYW1lIGluIHRoZSBmb3JtYXQgImxhbmd1YWdlIChjb3VudHJ5Wyx2YXJpYW50XSki
LiAgRm9yIGV4YW1wbGUsIGlmIGRpc3BsYXlMb2NhbGUgaXMKKyAgICAgKiBmcl9GUiwgdGhlbiBl
bl9VUydzIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAiQW5nbGFpcyAoJkVhY3V0ZTt0YXRzLVVuaXMp
IiwgYW5kIG5vX05PX05ZJ3MKKyAgICAgKiBkaXNwbGF5IG5hbWUgd291bGQgYmUgIm5vcnYmZWFj
dXRlO2dpZW4gKE5vcnYmZWdyYXZlO2dlLE5ZKSIuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2Nh
bGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4K
KyAgICAgKiBAcGFyYW0gbmFtZSAgICAgIFJlY2VpdmVzIHRoZSBsb2NhbGUncyBkaXNwbGF5IG5h
bWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAibmFtZSIuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3Bs
YXlOYW1lKCBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgbmFtZSkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoZSBs
b2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCAgICAg
ICAgIGhhc2hDb2RlKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbG9j
YWxlIHRvIGJvZ3VzCisgICAgICogQSBib2d1cyBsb2NhbGUgcmVwcmVzZW50cyBhIG5vbi1leGlz
dGluZyBsb2NhbGUgYXNzb2NpYXRlZAorICAgICAqIHdpdGggc2VydmljZXMgdGhhdCBjYW4gYmUg
aW5zdGFudGlhdGVkIGZyb20gbm9uLWxvY2FsZSBkYXRhCisgICAgICogaW4gYWRkaXRpb24gdG8g
bG9jYWxlIChmb3IgZXhhbXBsZSwgY29sbGF0aW9uIGNhbiBiZQorICAgICAqIGluc3RhbnRpYXRl
ZCBmcm9tIGEgbG9jYWxlIGFuZCBmcm9tIGEgcnVsZSBzZXQpLgorICAgICAqIEBzdGFibGUgSUNV
IDIuMQorICAgICAqLworICAgIHZvaWQgc2V0VG9Cb2d1cygpOworCisgICAgLyoqCisgICAgICog
R2V0cyB0aGUgYm9ndXMgc3RhdGUuIExvY2FsZSBvYmplY3QgY2FuIGJlIGJvZ3VzIGlmIGl0IGRv
ZXNuJ3QgZXhpc3QKKyAgICAgKiBAcmV0dXJuIEZBTFNFIGlmIGl0IGlzIGEgcmVhbCBsb2NhbGUs
IFRSVUUgaWYgaXQgaXMgYSBib2d1cyBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAg
ICAgKi8KKyAgICBVQm9vbCBpc0JvZ3VzKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICog
UmV0dXJucyBhIGxpc3Qgb2YgYWxsIGluc3RhbGxlZCBsb2NhbGVzLgorICAgICAqIEBwYXJhbSBj
b3VudCBSZWNlaXZlcyB0aGUgbnVtYmVyIG9mIGxvY2FsZXMgaW4gdGhlIGxpc3QuCisgICAgICog
QHJldHVybiAgICAgIEEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBMb2NhbGUgb2JqZWN0cy4gIFRo
aXMgYXJyYXkgaXMgdGhlIGxpc3QKKyAgICAgKiAgICAgICAgICAgICAgb2YgYWxsIGxvY2FsZXMg
d2l0aCBpbnN0YWxsZWQgcmVzb3VyY2UgZmlsZXMuICBUaGUgY2FsbGVkIGRvZXMgTk9UCisgICAg
ICogICAgICAgICAgICAgIGdldCBvd25lcnNoaXAgb2YgdGhpcyBsaXN0LCBhbmQgbXVzdCBOT1Qg
ZGVsZXRlIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUqIFVfRVhQT1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIGNvdW50
KTsKKworICAgIC8qKgorICAgICAqIEdldHMgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgMi1sZXR0
ZXIgY291bnRyeSBjb2RlcyBkZWZpbmVkIGluIElTTyAzMTY2LiAgVGhpcyBpcyBhCisgICAgICog
cG9pbnRlciB0byBhbiBhcnJheSBvZiBwb2ludGVycyB0byBhcnJheXMgb2YgY2hhci4gIEFsbCBv
ZiB0aGVzZSBwb2ludGVycyBhcmUKKyAgICAgKiBvd25lZCBieSBJQ1UtLSBkbyBub3QgZGVsZXRl
IHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0aGVtLiAgVGhlIGFycmF5IGlzCisgICAg
ICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBwb2ludGVyLgorICAgICAqIEByZXR1cm4gYSBsaXN0
IG9mIGFsbCBhdmFpbGFibGUgY291bnRyeSBjb2RlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBPUlQyIGdldElTT0Nv
dW50cmllcygpOworCisgICAgLyoqCisgICAgICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJs
ZSBsYW5ndWFnZSBjb2RlcyBkZWZpbmVkIGluIElTTyA2MzkuICBUaGlzIGlzIGEgcG9pbnRlcgor
ICAgICAqIHRvIGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBvZiBjaGFyLiAgQWxsIG9m
IHRoZXNlIHBvaW50ZXJzIGFyZSBvd25lZAorICAgICAqIGJ5IElDVS0tIGRvIG5vdCBkZWxldGUg
dGhlbSwgYW5kIGRvIG5vdCB3cml0ZSB0aHJvdWdoIHRoZW0uICBUaGUgYXJyYXkgaXMKKyAgICAg
KiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCisgICAgICogQHJldHVybiBhIGxpc3Qg
b2YgYWxsIGF2YWlsYWJsZSBsYW5ndWFnZSBjb2RlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBPUlQyIGdldElTT0xh
bmd1YWdlcygpOworCisgICAgLyoqCisgICAgICogSUNVICJwb29yIG1hbidzIFJUVEkiLCByZXR1
cm5zIGEgVUNsYXNzSUQgZm9yIHRoaXMgY2xhc3MuCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElD
VSAyLjIKKyAgICAgKi8KKyAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQyIGdldFN0YXRpY0Ns
YXNzSUQoKTsKKworICAgIC8qKgorICAgICAqIElDVSAicG9vciBtYW4ncyBSVFRJIiwgcmV0dXJu
cyBhIFVDbGFzc0lEIGZvciB0aGUgYWN0dWFsIGNsYXNzLgorICAgICAqCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4yCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJ
RCgpIGNvbnN0OworCitwcm90ZWN0ZWQ6IC8qIG9ubHkgcHJvdGVjdGVkIGZvciB0ZXN0aW5nIHB1
cnBvc2VzLiBETyBOT1QgVVNFLiAqLworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAg
LyoqCisgICAgICogU2V0IHRoaXMgZnJvbSBhIHNpbmdsZSBQT1NJWCBzdHlsZSBsb2NhbGUgc3Ry
aW5nLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHZvaWQgc2V0RnJvbVBPU0lYSUQo
Y29uc3QgY2hhciAqcG9zaXhJRCk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8K
KworcHJpdmF0ZToKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHRoZSBsb2NhbGUgb2JqZWN0
IHdpdGggYSBuZXcgbmFtZS4KKyAgICAgKiBXYXMgZGVwcmVjYXRlZCAtIHVzZWQgaW4gaW1wbGVt
ZW50YXRpb24gLSBtb3ZlZCBpbnRlcm5hbAorICAgICAqCisgICAgICogQHBhcmFtIGNMb2NhbGVJ
RCBUaGUgbmV3IGxvY2FsZSBuYW1lLgorICAgICAqIEBwYXJhbSBjYW5vbmljYWxpemUgd2hldGhl
ciB0byBjYWxsIHVsb2NfY2Fub25pY2FsaXplIG9uIGNMb2NhbGVJRAorICAgICAqLworICAgIExv
Y2FsZSYgaW5pdChjb25zdCBjaGFyKiBjTG9jYWxlSUQsIFVCb29sIGNhbm9uaWNhbGl6ZSk7CisK
KyAgICAvKgorICAgICAqIEludGVybmFsIGNvbnN0cnVjdG9yIHRvIGFsbG93IGNvbnN0cnVjdGlv
biBvZiBhIGxvY2FsZSBvYmplY3Qgd2l0aAorICAgICAqICAgTk8gc2lkZSBlZmZlY3RzLiAgIChE
ZWZhdWx0IGNvbnN0cnVjdG9yIHRyaWVzIHRvIGdldAorICAgICAqICAgdGhlIGRlZmF1bHQgbG9j
YWxlLikKKyAgICAgKi8KKyAgICBlbnVtIEVMb2NhbGVUeXBlIHsKKyAgICAgICAgZUJPR1VTCisg
ICAgfTsKKyAgICBMb2NhbGUoRUxvY2FsZVR5cGUpOworCisgICAgLyoqCisgICAgICogSW5pdGlh
bGl6ZSB0aGUgbG9jYWxlIGNhY2hlIGZvciBjb21tb25seSB1c2VkIGxvY2FsZXMKKyAgICAgKi8K
KyAgICBzdGF0aWMgTG9jYWxlICpnZXRMb2NhbGVDYWNoZSh2b2lkKTsKKworICAgIGNoYXIgbGFu
Z3VhZ2VbVUxPQ19MQU5HX0NBUEFDSVRZXTsKKyAgICBjaGFyIHNjcmlwdFtVTE9DX1NDUklQVF9D
QVBBQ0lUWV07CisgICAgY2hhciBjb3VudHJ5W1VMT0NfQ09VTlRSWV9DQVBBQ0lUWV07CisgICAg
aW50MzJfdCB2YXJpYW50QmVnaW47CisgICAgY2hhciogZnVsbE5hbWU7CisgICAgY2hhciBmdWxs
TmFtZUJ1ZmZlcltVTE9DX0ZVTExOQU1FX0NBUEFDSVRZXTsKKyAgICAvLyBuYW1lIHdpdGhvdXQg
a2V5d29yZHMKKyAgICBjaGFyKiBiYXNlTmFtZTsKKyAgICB2b2lkIGluaXRCYXNlTmFtZShVRXJy
b3JDb2RlJiBzdGF0dXMpOworCisgICAgVUJvb2wgZklzQm9ndXM7CisKKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZnZXRMb2NhbGUoaW50IGxvY2lkKTsKKworICAgIC8qKgorICAgICAqIEEgZnJp
ZW5kIHRvIGFsbG93IHRoZSBkZWZhdWx0IGxvY2FsZSB0byBiZSBzZXQgYnkgZWl0aGVyIHRoZSBD
IG9yIEMrKyBBUEkuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgZnJpZW5kIExvY2Fs
ZSAqbG9jYWxlX3NldF9kZWZhdWx0X2ludGVybmFsKGNvbnN0IGNoYXIgKiwgVUVycm9yQ29kZSYg
c3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGZyaWVu
ZCB2b2lkIFVfQ0FMTENPTlYgbG9jYWxlX2F2YWlsYWJsZV9pbml0KCk7Cit9OworCitpbmxpbmUg
VUJvb2wKK0xvY2FsZTo6b3BlcmF0b3IhPShjb25zdCAgICBMb2NhbGUmICAgICBvdGhlcikgY29u
c3QKK3sKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0ob3RoZXIpOworfQorCitpbmxpbmUgY29uc3Qg
Y2hhciAqCitMb2NhbGU6OmdldENvdW50cnkoKSBjb25zdAoreworICAgIHJldHVybiBjb3VudHJ5
OworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldExhbmd1YWdlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbGFuZ3VhZ2U7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2Fs
ZTo6Z2V0U2NyaXB0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2NyaXB0OworfQorCitpbmxpbmUg
Y29uc3QgY2hhciAqCitMb2NhbGU6OmdldFZhcmlhbnQoKSBjb25zdAoreworICAgIHJldHVybiAm
YmFzZU5hbWVbdmFyaWFudEJlZ2luXTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxl
OjpnZXROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnVsbE5hbWU7Cit9CisKK2lubGluZSBV
Qm9vbAorTG9jYWxlOjppc0JvZ3VzKHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gZklzQm9ndXM7
Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvcmJiaS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDQ3NTk4YTUwZTZmYTNiYWIyYWQ0OWUwMjJhYWYzOTZjYWMzMjllNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oCkBAIC0wLDAgKzEsNzgyIEBA
CisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiAgICoKKyogICBhbmQgb3Ro
ZXJzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAg
ICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDEwLzIyLzk5ICAgIGFsYW4gICAgICAg
IENyZWF0aW9uLgorKiAgIDExLzExLzk5ICAgIHJnaWxsYW0gICAgIENvbXBsZXRlIHBvcnQgZnJv
bSBKYXZhLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBSQkJJX0gKKyNkZWZpbmUgUkJC
SV9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisvKioKKyAqIFxmaWxlCisgKiBc
YnJpZWYgQysrIEFQSTogUnVsZSBCYXNlZCBCcmVhayBJdGVyYXRvcgorICovCisKKyNpZiAhVUNP
TkZJR19OT19CUkVBS19JVEVSQVRJT04KKworI2luY2x1ZGUgInVuaWNvZGUvYnJraXRlci5oIgor
I2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3BhcnNlZXJyLmgi
CisjaW5jbHVkZSAidW5pY29kZS9zY2hyaXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWNocml0
ZXIuaCIKKworCitzdHJ1Y3QgVVRyaWU7CisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKiBAaW50
ZXJuYWwgKi8KK3N0cnVjdCBSQkJJRGF0YUhlYWRlcjsKK2NsYXNzICBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yVGFibGVzOworY2xhc3MgIEJyZWFrSXRlcmF0b3I7CitjbGFzcyAgUkJCSURhdGFXcmFw
cGVyOworY2xhc3MgIFVTdGFjazsKK2NsYXNzICBMYW5ndWFnZUJyZWFrRW5naW5lOworY2xhc3Mg
IFVuaGFuZGxlZEVuZ2luZTsKK3N0cnVjdCBSQkJJU3RhdGVUYWJsZTsKKworCisKKworLyoqCisg
KgorICogQSBzdWJjbGFzcyBvZiBCcmVha0l0ZXJhdG9yIHdob3NlIGJlaGF2aW9yIGlzIHNwZWNp
ZmllZCB1c2luZyBhIGxpc3Qgb2YgcnVsZXMuCisgKiA8cD5JbnN0YW5jZXMgb2YgdGhpcyBjbGFz
cyBhcmUgbW9zdCBjb21tb25seSBjcmVhdGVkIGJ5IHRoZSBmYWN0b3J5IG1ldGhvZHMgb2YKKyAq
ICBCcmVha0l0ZXJhdG9yOjpjcmVhdGVXb3JkSW5zdGFuY2UoKSwgQnJlYWtJdGVyYXRvcjo6Y3Jl
YXRlTGluZUluc3RhbmNlKCksIGV0Yy4sCisgKiAgYW5kIHRoZW4gdXNlZCB2aWEgdGhlIGFic3Ry
YWN0IEFQSSBpbiBjbGFzcyBCcmVha0l0ZXJhdG9yPC9wPgorICoKKyAqIDxwPlNlZSB0aGUgSUNV
IFVzZXIgR3VpZGUgZm9yIGluZm9ybWF0aW9uIG9uIEJyZWFrIEl0ZXJhdG9yIFJ1bGVzLjwvcD4K
KyAqCisgKiA8cD5UaGlzIGNsYXNzIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBzdWJjbGFzc2VkLiAg
KENsYXNzIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IKKyAqICAgIGlzIGEgc3ViY2xhc3Ms
IGJ1dCB0aGF0IHJlbGF0aW9uc2hpcCBpcyBlZmZlY3RpdmVseSBpbnRlcm5hbCB0byB0aGUgSUNV
CisgKiAgICBpbXBsZW1lbnRhdGlvbi4gIFRoZSBzdWJjbGFzc2luZyBpbnRlcmZhY2UgdG8gUnVs
ZXNCYXNlZEJyZWFrSXRlcmF0b3IgaXMKKyAqICAgIG5vdCBwYXJ0IG9mIHRoZSBJQ1UgQVBJLCBh
bmQgbWF5IG5vdCByZW1haW4gc3RhYmxlLjwvcD4KKyAqCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQ
SSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIC8qVV9GSU5BTCovIDogcHVibGljIEJyZWFrSXRlcmF0
b3IgeworCitwcm90ZWN0ZWQ6CisgICAgLyoqCisgICAgICogVGhlIFVUZXh0IHRocm91Z2ggd2hp
Y2ggdGhpcyBCcmVha0l0ZXJhdG9yIGFjY2Vzc2VzIHRoZSB0ZXh0CisgICAgICogQGludGVybmFs
CisgICAgICovCisgICAgVVRleHQgICpmVGV4dDsKKworICAgIC8qKgorICAgICAqICAgQSBjaGFy
YWN0ZXIgaXRlcmF0b3IgdGhhdCByZWZlcnMgdG8gdGhlIHNhbWUgdGV4dCBhcyB0aGUgVVRleHQs
IGFib3ZlLgorICAgICAqICAgT25seSBpbmNsdWRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9s
ZCBBUEksIHdoaWNoIHdhcyBiYXNlZCBvbiBDaGFyYWN0ZXJJdGVyYXRvcnMuCisgICAgICogICBW
YWx1ZSBtYXkgYmUgYWRvcHRlZCBmcm9tIG91dHNpZGUsIG9yIG9uZSBvZiBmU0NoYXJJdGVyIG9y
IGZEQ2hhckl0ZXIsIGJlbG93LgorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yICAqZkNo
YXJJdGVyOworCisgICAgLyoqCisgICAgICogICBXaGVuIHRoZSBpbnB1dCB0ZXh0IGlzIHByb3Zp
ZGVkIGJ5IGEgVW5pY29kZVN0cmluZywgdGhpcyB3aWxsIHBvaW50IHRvCisgICAgICogICAgYSBj
aGFyYWN0ZXJJdGVyYXRvciB0aGF0IHdyYXBzIHRoYXQgZGF0YS4gIE5lZWRlZCBvbmx5IGZvciB0
aGUKKyAgICAgKiAgICBpbXBsZW1lbnRhdGlvbiBvZiBnZXRUZXh0KCksIGEgYmFja3dhcmRzIGNv
bXBhdGliaWxpdHkgaXNzdWUuCisgICAgICovCisgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Ig
KmZTQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiAgV2hlbiB0aGUgaW5wdXQgdGV4dCBpcyBw
cm92aWRlZCBieSBhIFVUZXh0LCB0aGlzCisgICAgICogICAgZHVtbXkgQ2hhcmFjdGVySXRlcmF0
b3Igb3ZlciBhbiBlbXB0eSBzdHJpbmcgd2lsbAorICAgICAqICAgIGJlIHJldHVybmVkIGZyb20g
Z2V0VGV4dCgpCisgICAgICovCisgICAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciAqZkRDaGFySXRl
cjsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlIGRhdGEgZm9yIHRoaXMgQnJlYWtJdGVyYXRv
ciBpbnN0YW5jZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJCQklEYXRhV3JhcHBl
ciAgICAqZkRhdGE7CisKKyAgICAvKiogSW5kZXggb2YgdGhlIFJ1bGUge3RhZ30gdmFsdWVzIGZv
ciB0aGUgbW9zdCByZWNlbnQgbWF0Y2guCisgICAgICogIEBpbnRlcm5hbAorICAgICovCisgICAg
aW50MzJfdCAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleDsKKworICAgIC8qKgorICAg
ICAqIFJ1bGUgdGFnIHZhbHVlIHZhbGlkIGZsYWcuCisgICAgICogU29tZSBpdGVyYXRvciBvcGVy
YXRpb25zIGRvbid0IGludHJpbnNpY2FsbHkgc2V0IHRoZSBjb3JyZWN0IHRhZyB2YWx1ZS4KKyAg
ICAgKiBUaGlzIGZsYWcgbGV0cyB1cyBsYXppbHkgY29tcHV0ZSB0aGUgdmFsdWUgaWYgd2UgYXJl
IGV2ZXIgYXNrZWQgZm9yIGl0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVCb29s
ICAgICAgICAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkOworCisgICAgLyoqCisgICAgICog
Q291bnRlciBmb3IgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGVuY291bnRlcmVkIHdpdGggdGhl
ICJkaWN0aW9uYXJ5IgorICAgICAqICAgZmxhZyBzZXQuCisgICAgICogQGludGVybmFsCisgICAg
ICovCisgICAgdWludDMyX3QgICAgICAgICAgICBmRGljdGlvbmFyeUNoYXJDb3VudDsKKworICAg
IC8qKgorICAgICAqIFdoZW4gYSByYW5nZSBvZiBjaGFyYWN0ZXJzIGlzIGRpdmlkZWQgdXAgdXNp
bmcgdGhlIGRpY3Rpb25hcnksIHRoZSBicmVhaworICAgICAqIHBvc2l0aW9ucyB0aGF0IGFyZSBk
aXNjb3ZlcmVkIGFyZSBzdG9yZWQgaGVyZSwgcHJldmVudGluZyB1cyBmcm9tIGhhdmluZworICAg
ICAqIHRvIHVzZSBlaXRoZXIgdGhlIGRpY3Rpb25hcnkgb3IgdGhlIHN0YXRlIHRhYmxlIGFnYWlu
IHVudGlsIHRoZSBpdGVyYXRvcgorICAgICAqIGxlYXZlcyB0aGlzIHJhbmdlIG9mIHRleHQuIEhh
cyB0aGUgbW9zdCBpbXBhY3QgZm9yIGxpbmUgYnJlYWtpbmcuCisgICAgICogQGludGVybmFsCisg
ICAgICovCisgICAgaW50MzJfdCogICAgICAgICAgICBmQ2FjaGVkQnJlYWtQb3NpdGlvbnM7CisK
KyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGZDYWNoZWRCcmVha1Bv
c2l0aW9ucworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICAg
ICAgZk51bUNhY2hlZEJyZWFrUG9zaXRpb25zOworCisgICAgLyoqCisgICAgICogaWYgZkNhY2hl
ZEJyZWFrUG9zaXRpb25zIGlzIG5vdCBudWxsLCB0aGlzIGluZGljYXRlcyB3aGljaCBpdGVtIGlu
IHRoZQorICAgICAqIGNhY2hlIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiByZWZlcnMg
dG8KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZQ
b3NpdGlvbkluQ2FjaGU7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAgKiBJZiBwcmVzZW50
LCBVU3RhY2sgb2YgTGFuZ3VhZ2VCcmVha0VuZ2luZSBvYmplY3RzIHRoYXQgbWlnaHQgaGFuZGxl
CisgICAgICogZGljdGlvbmFyeSBjaGFyYWN0ZXJzLiBTZWFyY2hlZCBmcm9tIHRvcCB0byBib3R0
b20gdG8gZmluZCBhbiBvYmplY3QgdG8KKyAgICAgKiBoYW5kbGUgYSBnaXZlbiBjaGFyYWN0ZXIu
CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVVN0YWNrICAgICAgICAgICAgICAqZkxh
bmd1YWdlQnJlYWtFbmdpbmVzOworICAgIAorICAgIC8qKgorICAgICAqCisgICAgICogSWYgcHJl
c2VudCwgdGhlIHNwZWNpYWwgTGFuZ3VhZ2VCcmVha0VuZ2luZSB1c2VkIGZvciBoYW5kbGluZwor
ICAgICAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW4gdGhlIGRpY3Rpb25hcnkgc2V0LCBidXQgbm90
IGhhbmRsZWQgYnkgYW55CisgICAgICogTGFuZ3VnYWdlQnJlYWtFbmdpbmUuCisgICAgICogQGlu
dGVybmFsCisgICAgICovCisgICAgVW5oYW5kbGVkRW5naW5lICAgICAqZlVuaGFuZGxlZEJyZWFr
RW5naW5lOworICAgIAorICAgIC8qKgorICAgICAqCisgICAgICogVGhlIHR5cGUgb2YgdGhlIGJy
ZWFrIGl0ZXJhdG9yLCBvciAtMSBpZiBpdCBoYXMgbm90IGJlZW4gc2V0LgorICAgICAqIEBpbnRl
cm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZkJyZWFrVHlwZTsKKyAgICAK
K3Byb3RlY3RlZDoKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gY29uc3RydWN0b3JzCisg
ICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAv
KioKKyAgICAgKiBDb25zdGFudCB0byBiZSB1c2VkIGluIHRoZSBjb25zdHJ1Y3RvcgorICAgICAq
IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoUkJCSURhdGFIZWFkZXIqLCBFRG9udEFkb3B0LCBVRXJy
b3JDb2RlICYpOworICAgICAqIHdoaWNoIGRvZXMgbm90IGFkb3B0IHRoZSBtZW1vcnkgaW5kaWNh
dGVkIGJ5IHRoZSBSQkJJRGF0YUhlYWRlcioKKyAgICAgKiBwYXJhbWV0ZXIuCisgICAgICoKKyAg
ICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBlbnVtIEVEb250QWRvcHQgeworICAgICAgICBr
RG9udEFkb3B0CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZyb20gYSBm
bGF0dGVuZWQgc2V0IG9mIFJCQkkgZGF0YSBpbiBtYWxsb2NlZCBtZW1vcnkuCisgICAgICogICAg
ICAgICAgICAgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3JzIGJ1aWx0IGZyb20gYSBjdXN0b20gc2V0
IG9mIHJ1bGVzCisgICAgICogICAgICAgICAgICAgYXJlIGNyZWF0ZWQgdmlhIHRoaXMgY29uc3Ry
dWN0b3I7IHRoZSBydWxlcyBhcmUgY29tcGlsZWQKKyAgICAgKiAgICAgICAgICAgICBpbnRvIG1l
bW9yeSwgdGhlbiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgY29uc3RydWN0ZWQgaGVyZS4KKyAgICAg
KgorICAgICAqICAgICAgICAgICAgIFRoZSBicmVhayBpdGVyYXRvciBhZG9wdHMgdGhlIG1lbW9y
eSwgYW5kIHdpbGwKKyAgICAgKiAgICAgICAgICAgICBmcmVlIGl0IHdoZW4gZG9uZS4KKyAgICAg
KiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFJCQklEYXRh
SGVhZGVyKiBkYXRhLCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ29u
c3RydWN0b3IgZnJvbSBhIGZsYXR0ZW5lZCBzZXQgb2YgUkJCSSBkYXRhIGluIG1lbW9yeSB3aGlj
aCBuZWVkIG5vdAorICAgICAqICAgICAgICAgICAgIGJlIG1hbGxvY2VkIChlLmcuIGl0IG1heSBi
ZSBhIG1lbW9yeS1tYXBwZWQgZmlsZSwgZXRjLikuCisgICAgICoKKyAgICAgKiAgICAgICAgICAg
ICBUaGlzIHZlcnNpb24gZG9lcyBub3QgYWRvcHQgdGhlIG1lbW9yeSwgYW5kIGRvZXMgbm90Cisg
ICAgICogICAgICAgICAgICAgZnJlZSBpdCB3aGVuIGRvbmUuCisgICAgICogQGludGVybmFsCisg
ICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCBSQkJJRGF0YUhlYWRlciog
ZGF0YSwgZW51bSBFRG9udEFkb3B0IGRvbnRBZG9wdCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyNl
bmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisKKyAgICBmcmllbmQgY2xhc3MgUkJC
SVJ1bGVCdWlsZGVyOworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBmcmllbmQgY2xhc3MgQnJl
YWtJdGVyYXRvcjsKKworCisKK3B1YmxpYzoKKworICAgIC8qKiBEZWZhdWx0IGNvbnN0cnVjdG9y
LiAgQ3JlYXRlcyBhbiBlbXB0eSBzaGVsbCBvZiBhbiBpdGVyYXRvciwgd2l0aCBubworICAgICAq
ICBydWxlcyBvciB0ZXh0IHRvIGl0ZXJhdGUgb3Zlci4gICBPYmplY3QgY2FuIHN1YnNlcXVlbnRs
eSBiZSBhc3NpZ25lZCB0by4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAg
UnVsZUJhc2VkQnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICogQ29weSBjb25zdHJ1
Y3Rvci4gIFdpbGwgcHJvZHVjZSBhIGJyZWFrIGl0ZXJhdG9yIHdpdGggdGhlIHNhbWUgYmVoYXZp
b3IsCisgICAgICogYW5kIHdoaWNoIGl0ZXJhdGVzIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhl
IG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVCYXNlZEJyZWFrSXRl
cmF0b3IgcGFzc2VkIHRvIGJlIGNvcGllZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoY29uc3QgUnVsZUJhc2VkQnJlYWtJdGVyYXRv
ciYgdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yIGZyb20gYSBzZXQgb2YgcnVsZXMgc3VwcGxpZWQgYXMgYSBzdHJpbmcuCisgICAgICog
QHBhcmFtIHJ1bGVzIFRoZSBicmVhayBydWxlcyB0byBiZSB1c2VkLgorICAgICAqIEBwYXJhbSBw
YXJzZUVycm9yICBJbiB0aGUgZXZlbnQgb2YgYSBzeW50YXggZXJyb3IgaW4gdGhlIHJ1bGVzLCBw
cm92aWRlcyB0aGUgbG9jYXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgd2l0aGluIHRo
ZSBydWxlcyBvZiB0aGUgcHJvYmxlbS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIEluZm9ybWF0aW9u
IG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAg
ICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciggY29uc3QgVW5pY29kZVN0cmluZyAgICAm
cnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQYXJzZUVycm9yICAgICAgICAg
ICAmcGFyc2VFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAg
ICAgICAgICAgICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ29udHJ1Y3QgYSBSdWxlQmFz
ZWRCcmVha0l0ZXJhdG9yIGZyb20gYSBzZXQgb2YgcHJlY29tcGlsZWQgYmluYXJ5IHJ1bGVzLgor
ICAgICAqIEJpbmFyeSBydWxlcyBhcmUgb2J0YWluZWQgZnJvbSBSdWxlc0Jhc2VkQnJlYWtJdGVy
YXRvcjo6Z2V0QmluYXJ5UnVsZXMoKS4KKyAgICAgKiBDb25zdHJ1Y3Rpb24gb2YgYSBicmVhayBp
dGVyYXRvciBpbiB0aGlzIHdheSBpcyBzdWJzdGFudGlhbGx5IGZhc3RlciB0aGFuCisgICAgICog
Y29uc3R1Y3Rpb24gZnJvbSBzb3VyY2UgcnVsZXMuCisgICAgICoKKyAgICAgKiBPd25lcnNoaXAg
b2YgdGhlIHN0b3JhZ2UgY29udGFpbmluZyB0aGUgY29tcGlsZWQgcnVsZXMgcmVtYWlucyB3aXRo
IHRoZQorICAgICAqIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uLiAgVGhlIGNvbXBpbGVkIHJ1bGVz
IG11c3Qgbm90IGJlICBtb2RpZmllZCBvciAKKyAgICAgKiBkZWxldGVkIGR1cmluZyB0aGUgbGlm
ZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBUaGUgY29tcGlsZWQgcnVs
ZXMgYXJlIG5vdCBjb21wYXRpYmxlIGFjcm9zcyBkaWZmZXJlbnQgbWFqb3IgdmVyc2lvbnMgb2Yg
SUNVLgorICAgICAqIFRoZSBjb21waWxlZCBydWxlcyBhcmUgY29tYXB0aWJsZSBvbmx5IGJldHdl
ZW4gbWFjaGluZXMgd2l0aCB0aGUgc2FtZQorICAgICAqIGJ5dGUgb3JkZXJpbmcgKGxpdHRsZSBv
ciBiaWcgZW5kaWFuKSBhbmQgdGhlIHNhbWUgYmFzZSBjaGFyYWN0ZXIgc2V0IGZhbWlseQorICAg
ICAqIChBU0NJSSBvciBFQkNESUMpLgorICAgICAqCisgICAgICogQHNlZSAjZ2V0QmluYXJ5UnVs
ZXMKKyAgICAgKiBAcGFyYW0gY29tcGlsZWRSdWxlcyBBIHBvaW50ZXIgdG8gdGhlIGNvbXBpbGVk
IGJyZWFrIHJ1bGVzIHRvIGJlIHVzZWQuCisgICAgICogQHBhcmFtIHJ1bGVMZW5ndGggVGhlIGxl
bmd0aCBvZiB0aGUgY29tcGlsZWQgYnJlYWsgcnVsZXMsIGluIGJ5dGVzLiAgVGhpcworICAgICAq
ICAgY29ycmVzcG9uZHMgdG8gdGhlIGxlbmd0aCB2YWx1ZSBwcm9kdWNlZCBieSBnZXRCaW5hcnlS
dWxlcygpLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24gYW55IGVycm9ycyBl
bmNvdW50ZXJlZCwgaW5jbHVkaW5nIGludmFsaWQKKyAgICAgKiAgIGJpbmFyeSBydWxlcy4KKyAg
ICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
KGNvbnN0IHVpbnQ4X3QgKmNvbXBpbGVkUnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1aW50MzJfdCAgICAgICBydWxlTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
VUVycm9yQ29kZSAgICAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgY29uc3RydWN0
b3IgdXNlcyB0aGUgdWRhdGEgaW50ZXJmYWNlIHRvIGNyZWF0ZSBhIEJyZWFrSXRlcmF0b3IKKyAg
ICAgKiB3aG9zZSBpbnRlcm5hbCB0YWJsZXMgbGl2ZSBpbiBhIG1lbW9yeS1tYXBwZWQgZmlsZS4g
ICJpbWFnZSIgaXMgYW4KKyAgICAgKiBJQ1UgVURhdGFNZW1vcnkgaGFuZGxlIGZvciB0aGUgcHJl
LWNvbXBpbGVkIGJyZWFrIGl0ZXJhdG9yIHRhYmxlcy4KKyAgICAgKiBAcGFyYW0gaW1hZ2UgaGFu
ZGxlIHRvIHRoZSBtZW1vcnkgaW1hZ2UgZm9yIHRoZSBicmVhayBpdGVyYXRvciBkYXRhLgorICAg
ICAqICAgICAgICBPd25lcnNoaXAgb2YgdGhlIFVEYXRhTWVtb3J5IGhhbmRsZSBwYXNzZXMgdG8g
dGhlIEJyZWFrIEl0ZXJhdG9yLAorICAgICAqICAgICAgICB3aGljaCB3aWxsIGJlIHJlc3BvbnNp
YmxlIGZvciBjbG9zaW5nIGl0IHdoZW4gaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgKiBA
cGFyYW0gc3RhdHVzIEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQuCisgICAg
ICogQHNlZSB1ZGF0YV9vcGVuCisgICAgICogQHNlZSAjZ2V0QmluYXJ5UnVsZXMKKyAgICAgKiBA
c3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFVEYXRh
TWVtb3J5KiBpbWFnZSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIERl
c3RydWN0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+
UnVsZUJhc2VkQnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICogQXNzaWdubWVudCBv
cGVyYXRvci4gIFNldHMgdGhpcyBpdGVyYXRvciB0byBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLAor
ICAgICAqIGFuZCBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhlIG9uZSBwYXNzZWQg
aW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVCYXNlZEJyZWFrSXRlcnRvciBwYXNzZWQg
aW4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJ
dGVyYXRvciYgb3BlcmF0b3I9KGNvbnN0IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIHRoYXQpOwor
CisgICAgLyoqCisgICAgICogRXF1YWxpdHkgb3BlcmF0b3IuICBSZXR1cm5zIFRSVUUgaWYgYm90
aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhlCisgICAgICogc2FtZSBjbGFzcywgaGF2ZSB0aGUg
c2FtZSBiZWhhdmlvciwgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAqIEBw
YXJhbSB0aGF0IFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQor
ICAgICAqIEByZXR1cm4gVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBvZiB0aGUKKyAg
ICAgKiBzYW1lIGNsYXNzLCBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLCBhbmQgaXRlcmF0ZSBvdmVy
IHRoZSBzYW1lIHRleHQuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIE5vdC1lcXVhbCBvcGVyYXRvci4gIElmIG9wZXJhdG9yPT0gcmV0
dXJucyBUUlVFLCB0aGlzIHJldHVybnMgRkFMU0UsCisgICAgICogYW5kIHZpY2UgdmVyc2EuCisg
ICAgICogQHBhcmFtIHRoYXQgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGlu
ZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBhcmUg
bm90IHNhbWUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29sIG9w
ZXJhdG9yIT0oY29uc3QgQnJlYWtJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3
aXRoIHRoZSBzYW1lCisgICAgICogYmVoYXZpb3IsIGFuZCBpdGVyYXRpbmcgb3ZlciB0aGUgc2Ft
ZSB0ZXh0LCBhcyB0aGlzIG9uZS4KKyAgICAgKiBEaWZmZXJzIGZyb20gdGhlIGNvcHkgY29uc3Ry
dWN0b3IgaW4gdGhhdCBpdCBpcyBwb2x5bW9ycGhpYywgYW5kCisgICAgICogd2lsbCBjb3JyZWN0
bHkgY2xvbmUgKGNvcHkpIGEgZGVyaXZlZCBjbGFzcy4KKyAgICAgKiBjbG9uZSgpIGlzIHRocmVh
ZCBzYWZlLiAgTXVsdGlwbGUgdGhyZWFkcyBtYXkgc2ltdWx0YWVuZW91c2x5CisgICAgICogY2xv
bmUgdGhlIHNhbWUgc291cmNlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gYSBuZXds
eS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yKiBjbG9uZSgpIGNvbnN0Owor
CisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIGhhc2ggY29kZSBmb3IgdGhpcyBCcmVha0l0ZXJh
dG9yCisgICAgICogQHJldHVybiBBIGhhc2ggY29kZQorICAgICAqICBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgaGFzaENvZGUodm9pZCkgY29uc3Q7CisKKyAg
ICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZXNjcmlwdGlvbiB1c2VkIHRvIGNyZWF0ZSB0aGlz
IGl0ZXJhdG9yCisgICAgICogQHJldHVybiB0aGUgZGVzY3JpcHRpb24gdXNlZCB0byBjcmVhdGUg
dGhpcyBpdGVyYXRvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIGNvbnN0IFVuaWNvZGVTdHJpbmcmIGdldFJ1bGVzKHZvaWQpIGNvbnN0OworCisgICAgLy89
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorICAgIC8vIEJyZWFrSXRlcmF0b3Igb3ZlcnJpZGVzCisgICAgLy89PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogUmV0dXJuIGEgQ2hhcmFj
dGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBUaGUgcmV0
dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIGlzIG93bmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvciwg
YW5kIG11c3QKKyAgICAgKiBub3QgYmUgZGVsZXRlZCBieSB0aGUgY2FsbGVyLiAgUmVwZWF0ZWQg
Y2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBtYXkKKyAgICAgKiByZXR1cm4gdGhlIHNhbWUgQ2hhcmFj
dGVySXRlcmF0b3IuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoZSByZXR1cm5l
ZCBjaGFyYWN0ZXIgaXRlcmF0b3IgbXVzdCBub3QgYmUgdXNlZCBjb25jdXJyZW50bHkgd2l0aAor
ICAgICAqIHRoZSBicmVhayBpdGVyYXRvci4gIElmIGNvbmN1cnJlbnQgb3BlcmF0aW9uIGlzIG5l
ZWRlZCwgY2xvbmUgdGhlCisgICAgICogcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIGZpcnN0
IGFuZCBvcGVyYXRlIG9uIHRoZSBjbG9uZS4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAg
ICogV2hlbiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nIG9uIHRleHQgc3VwcGxpZWQg
dmlhIGEgVVRleHQsCisgICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIGZhaWwuICBMYWNraW5nIGFu
eSB3YXkgdG8gc2lnbmFsIGZhaWx1cmVzLCBpdAorICAgICAqIHJldHVybnMgYW4gQ2hhcmFjdGVy
SXRlcmF0b3IgY29udGFpbmluZyBubyB0ZXh0LgorICAgICAqIFRoZSBmdW5jdGlvbiBnZXRVVGV4
dCgpIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSwKKyAgICAgKiBpcyByZWxpYWJsZSwg
YW5kIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIFRPRE86
ICBkZXByZWNhdGUgdGhpcyBmdW5jdGlvbj8KKyAgICAgKgorICAgICAqIEByZXR1cm4gQW4gaXRl
cmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsICBDaGFyYWN0ZXJJdGVyYXRvciYgZ2V0VGV4dCh2b2lk
KSBjb25zdDsKKworCisgICAgLyoqCisgICAgICAqICBHZXQgYSBVVGV4dCBmb3IgdGhlIHRleHQg
YmVpbmcgYW5hbHl6ZWQuCisgICAgICAqICBUaGUgcmV0dXJuZWQgVVRleHQgaXMgYSBzaGFsbG93
IGNsb25lIG9mIHRoZSBVVGV4dCB1c2VkIGludGVybmFsbHkKKyAgICAgICogIGJ5IHRoZSBicmVh
ayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbi4gIEl0IGNhbiBzYWZlbHkgYmUgdXNlZCB0bworICAg
ICAgKiAgYWNjZXNzIHRoZSB0ZXh0IHdpdGhvdXQgaW1wYWN0aW5nIGFueSBicmVhayBpdGVyYXRv
ciBvcGVyYXRpb25zLAorICAgICAgKiAgYnV0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmIG11
c3Qgbm90IGJlIGFsdGVyZWQuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBmaWxsSW4gQSBVVGV4
dCB0byBiZSBmaWxsZWQgaW4uICBJZiBOVUxMLCBhIG5ldyBVVGV4dCB3aWxsIGJlCisgICAgICAq
ICAgICAgICAgICBhbGxvY2F0ZWQgdG8gaG9sZCB0aGUgcmVzdWx0LgorICAgICAgKiBAcGFyYW0g
c3RhdHVzIHJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgICogQHJldHVybiAgIFRoZSBj
dXJyZW50IFVUZXh0IGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiAgSWYgYW4gaW5wdXQKKyAgICAg
ICogICAgICAgICAgIFVUZXh0IHdhcyBwcm92aWRlZCwgaXQgd2lsbCBhbHdheXMgYmUgcmV0dXJu
ZWQuCisgICAgICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAgKi8KKyAgICAgdmlydHVhbCBVVGV4
dCAqZ2V0VVRleHQoVVRleHQgKmZpbGxJbiwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKwor
ICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBv
ZiB0ZXh0LiAgVGhpcyBmdW5jdGlvbiByZXNldHMKKyAgICAgKiB0aGUgY3VycmVudCBpdGVyYXRp
b24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0g
bmV3VGV4dCBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IHRvIGFuYWx5emUuICBUaGUgQnJlYWtJ
dGVyYXRvcgorICAgICAqIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgY2hhcmFjdGVyIGl0ZXJhdG9y
LiAgVGhlIGNhbGxlciBNVVNUIE5PVCBkZWxldGUgaXQhCisgICAgICogIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBhZG9wdFRleHQoQ2hhcmFjdGVySXRlcmF0b3Iq
IG5ld1RleHQpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXpl
IGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBj
dXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0Lgor
ICAgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSB0ZXh0IHRvIGFuYWx5emUuCisgICAgICogIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0KGNvbnN0IFVuaWNv
ZGVTdHJpbmcmIG5ld1RleHQpOworCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGJyZWFrIGl0
ZXJhdG9yIHRvIG9wZXJhdGUgb3ZlciB0aGUgdGV4dCByZXByZXNlbnRlZCBieQorICAgICAqIHRo
ZSBVVGV4dC4gIFRoZSBpdGVyYXRvciBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgc3RhcnQuCisg
ICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUg
c3VwcGxpZWQgVVRleHQuICBUaGlzIG1lYW5zCisgICAgICogdGhhdCB0aGUgY2FsbGVyIGlzIGZy
ZWUgdG8gaW1tZWRpYXRlbHkgY2xvc2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRoZQorICAgICAqIFV0
ZXh0IHRoYXQgd2FzIHBhc3NlZCBhcyBhIHBhcmFtZXRlciwgYnV0IHRoYXQgdGhlIHVuZGVybHlp
bmcgdGV4dCBpdHNlbGYKKyAgICAgKiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdoaWxlIGJlaW5nIHJl
ZmVyZW5jZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIHRl
eHQgICAgVGhlIFVUZXh0IHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBz
dGF0dXMgIFJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoVVRleHQgKnRleHQsIFVFcnJvckNv
ZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlv
biBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCBwb3NpdGlvbiB6ZXJvLgor
ICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCB6
ZXJvLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMy
X3QgZmlyc3Qodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJh
dGlvbiBwb3NpdGlvbiB0byB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gVGhl
IHRleHQncyBwYXN0LXRoZS1lbmQgb2Zmc2V0LgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbGFzdCh2b2lkKTsKKworICAgIC8qKgorICAgICAq
IEFkdmFuY2VzIHRoZSBpdGVyYXRvciBlaXRoZXIgZm9yd2FyZCBvciBiYWNrd2FyZCB0aGUgc3Bl
Y2lmaWVkIG51bWJlciBvZiBzdGVwcy4KKyAgICAgKiBOZWdhdGl2ZSB2YWx1ZXMgbW92ZSBiYWNr
d2FyZCwgYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3ZlIGZvcndhcmQuICBUaGlzIGlzCisgICAgICog
ZXF1aXZhbGVudCB0byByZXBlYXRlZGx5IGNhbGxpbmcgbmV4dCgpIG9yIHByZXZpb3VzKCkuCisg
ICAgICogQHBhcmFtIG4gVGhlIG51bWJlciBvZiBzdGVwcyB0byBtb3ZlLiAgVGhlIHNpZ24gaW5k
aWNhdGVzIHRoZSBkaXJlY3Rpb24KKyAgICAgKiAobmVnYXRpdmUgaXMgYmFja3dhcmRzLCBhbmQg
cG9zaXRpdmUgaXMgZm9yd2FyZHMpLgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBvZmZz
ZXQgb2YgdGhlIGJvdW5kYXJ5IHBvc2l0aW9uIG4gYm91bmRhcmllcyBhd2F5IGZyb20KKyAgICAg
KiB0aGUgY3VycmVudCBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBuZXh0KGludDMyX3Qgbik7CisKKyAgICAvKioKKyAgICAgKiBBZHZh
bmNlcyB0aGUgaXRlcmF0b3IgdG8gdGhlIG5leHQgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICog
QHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRoaXMgb25l
LgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3Qg
bmV4dCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBpdGVyYXRvciBiYWNrd2Fy
ZHMsIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHByZWNlZGluZyB0aGlzIG9uZS4KKyAgICAgKiBAcmV0
dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcg
dGhpcyBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
aW50MzJfdCBwcmV2aW91cyh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJh
dG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBmb2xsb3dpbmcKKyAg
ICAgKiB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBv
c2l0aW9uIGZyb20gd2hpY2ggdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBhIGJyZWFrIHBvc2l0aW9u
LgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBicmVhayBhZnRlciB0
aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBpbnQzMl90IGZvbGxvd2luZyhpbnQzMl90IG9mZnNldCk7CisKKyAgICAvKioK
KyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBib3VuZGFyeSBw
b3NpdGlvbiBiZWZvcmUgdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBw
YXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIHRvIGJlZ2luIHNlYXJjaGluZyBmb3IgYSBicmVhayBm
cm9tLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IGJl
Zm9yZSB0aGUgc3RhcnRpbmcgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmcoaW50MzJfdCBvZmZzZXQpOworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjZmllZCBwb3NpdGlvbiBpcyBh
IGJvdW5kYXJ5IHBvc2l0aW9uLiAgQXMgYSBzaWRlCisgICAgICogZWZmZWN0LCBsZWF2ZXMgdGhl
IGl0ZXJhdG9yIHBvaW50aW5nIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBhdAorICAg
ICAqIG9yIGFmdGVyICJvZmZzZXQiLgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0
byBjaGVjay4KKyAgICAgKiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMgYSBib3VuZGFyeSBw
b3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBV
Qm9vbCBpc0JvdW5kYXJ5KGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVy
bnMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIGN1
cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgaW50MzJfdCBjdXJyZW50KHZvaWQpIGNvbnN0OworCisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm4gdGhlIHN0YXR1cyB0YWcgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRl
dGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlv
bi4gIEZvciBicmVhayBydWxlcyB0aGF0IGRvIG5vdCBzcGVjaWZ5IGEKKyAgICAgKiBzdGF0dXMs
IGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVkLiAgSWYgbW9yZSB0aGFuIG9uZSBicmVh
ayBydWxlCisgICAgICogd291bGQgY2F1c2UgYSBib3VuZGFyeSB0byBiZSBsb2NhdGVkIGF0IHNv
bWUgcG9zaXRpb24gaW4gdGhlIHRleHQsCisgICAgICogdGhlIG51bWVyaWNhbGx5IGxhcmdlc3Qg
b2YgdGhlIGFwcGxpY2FibGUgc3RhdHVzIHZhbHVlcyBpcyByZXR1cm5lZC4KKyAgICAgKiA8cD4K
KyAgICAgKiBPZiB0aGUgc3RhbmRhcmQgdHlwZXMgb2YgSUNVIGJyZWFrIGl0ZXJhdG9ycywgb25s
eSB3b3JkIGJyZWFrIGFuZAorICAgICAqIGxpbmUgYnJlYWsgcHJvdmlkZSBzdGF0dXMgdmFsdWVz
LiAgVGhlIHZhbHVlcyBhcmUgZGVmaW5lZCBpbgorICAgICAqIHRoZSBoZWFkZXIgZmlsZSB1YnJr
LmguICBGb3IgV29yZCBicmVha3MsIHRoZSBzdGF0dXMgYWxsb3dzIGRpc3Rpbmd1aXNoaW5nIGJl
dHdlZW4gd29yZHMKKyAgICAgKiB0aGF0IGNvbnRhaW4gYWxwaGFiZXRpYyBsZXR0ZXJzLCAid29y
ZHMiIHRoYXQgYXBwZWFyIHRvIGJlIG51bWJlcnMsCisgICAgICogcHVuY3R1YXRpb24gYW5kIHNw
YWNlcywgd29yZHMgY29udGFpbmluZyBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzLCBhbmQKKyAgICAg
KiBtb3JlLiAgRm9yIExpbmUgQnJlYWssIHRoZSBzdGF0dXMgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVu
IGhhcmQgKG1hbmRhdG9yeSkgYnJlYWtzCisgICAgICogYW5kIHNvZnQgKHBvdGVudGlhbCkgYnJl
YWsgcG9zaXRpb25zLgorICAgICAqIDxwPgorICAgICAqIDxjb2RlPmdldFJ1bGVTdGF0dXMoKTwv
Y29kZT4gY2FuIGJlIGNhbGxlZCBhZnRlciBvYnRhaW5pbmcgYSBib3VuZGFyeQorICAgICAqIHBv
c2l0aW9uIGZyb20gPGNvZGU+bmV4dCgpPC9jb2RlPiwgPGNvZGU+cHJldmlvdXMoKTwvY29kZT4s
IG9yCisgICAgICogYW55IG90aGVyIGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyB0aGF0IHJldHVy
bnMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIGNyZWF0aW5n
IGN1c3RvbSBicmVhayBydWxlcywgb25lIGlzIGZyZWUgdG8gZGVmaW5lIHdoYXRldmVyCisgICAg
ICogc3RhdHVzIHZhbHVlcyBtYXkgYmUgY29udmVuaWVudCBmb3IgdGhlIGFwcGxpY2F0aW9uLgor
ICAgICAqIDxwPgorICAgICAqIE5vdGU6IHRoaXMgZnVuY3Rpb24gaXMgbm90IHRocmVhZCBzYWZl
LiAgSXQgc2hvdWxkIG5vdCBoYXZlIGJlZW4KKyAgICAgKiAgICAgICBkZWNsYXJlZCBjb25zdCwg
YW5kIHRoZSBjb25zdCByZW1haW5zIG9ubHkgZm9yIGNvbXBhdGliaWxpdHkKKyAgICAgKiAgICAg
ICByZWFzb25zLiAgKFRoZSBmdW5jdGlvbiBpcyBsb2dpY2FsbHkgY29uc3QsIGJ1dCBub3QgYml0
LXdpc2UgY29uc3QpLgorICAgICAqIDxwPgorICAgICAqIEByZXR1cm4gdGhlIHN0YXR1cyBmcm9t
IHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAq
IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqCisgICAgICogQHNlZSBVV29yZEJyZWFr
CisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdl
dFJ1bGVTdGF0dXMoKSBjb25zdDsKKworICAgLyoqCisgICAgKiBHZXQgdGhlIHN0YXR1cyAodGFn
KSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsgcnVsZShzKSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QK
KyAgICAqIHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICogPHA+CisgICAg
KiBUaGUgcmV0dXJuZWQgc3RhdHVzIHZhbHVlKHMpIGFyZSBzdG9yZWQgaW50byBhbiBhcnJheSBw
cm92aWRlZCBieSB0aGUgY2FsbGVyLgorICAgICogVGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHNv
cnRlZCAoYXNjZW5kaW5nKSBvcmRlci4KKyAgICAqIElmIHRoZSBjYXBhY2l0eSBvZiB0aGUgb3V0
cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xkIHRoZSBkYXRhLAorICAgICogIHRoZSBv
dXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2YWlsYWJsZSBsZW5ndGgsIGFuZCBhCisg
ICAgKiAgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1Igd2lsbCBiZSBzaWduYWxlZC4KKyAgICAqCisg
ICAgKiBAcGFyYW0gZmlsbEluVmVjIGFuIGFycmF5IHRvIGJlIGZpbGxlZCBpbiB3aXRoIHRoZSBz
dGF0dXMgdmFsdWVzLgorICAgICogQHBhcmFtIGNhcGFjaXR5ICB0aGUgbGVuZ3RoIG9mIHRoZSBz
dXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0aCBvZiB6ZXJvIGNhdXNlcworICAgICogICAgICAgICAg
ICAgICAgICB0aGUgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSBudW1iZXIgb2Ygc3RhdHVzIHZhbHVl
cywgaW4gdGhlCisgICAgKiAgICAgICAgICAgICAgICAgIG5vcm1hbCB3YXksIHdpdGhvdXQgYXR0
ZW10cGluZyB0byBzdG9yZSBhbnkgdmFsdWVzLgorICAgICogQHBhcmFtIHN0YXR1cyAgICByZWNl
aXZlcyBlcnJvciBjb2Rlcy4KKyAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIG51bWJlciBvZiBy
dWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxlcyB0aGF0IGRldGVybWluZWQKKyAgICAqICAgICAg
ICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50IGJvdW5kYXJ5IHJldHVybmVkIGJ5IHRoZSBicmVh
ayBpdGVyYXRvci4KKyAgICAqICAgICAgICAgICAgICAgICAgSW4gdGhlIGV2ZW50IG9mIGEgVV9C
VUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRoZSByZXR1cm4gdmFsdWUKKyAgICAqICAgICAgICAgICAg
ICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzIHRoYXQgd2VyZSBhdmFp
bGFibGUsCisgICAgKiAgICAgICAgICAgICAgICAgIG5vdCB0aGUgcmVkdWNlZCBudW1iZXIgdGhh
dCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgorICAgICogQHNlZSBnZXRSdWxlU3RhdHVzCisgICAg
KiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3Rh
dHVzVmVjKGludDMyX3QgKmZpbGxJblZlYywgaW50MzJfdCBjYXBhY2l0eSwgVUVycm9yQ29kZSAm
c3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB1bmlxdWUgY2xhc3MgSUQgUE9M
WU1PUlBISUNBTExZLiAgUHVyZSB2aXJ0dWFsIG92ZXJyaWRlLgorICAgICAqIFRoaXMgbWV0aG9k
IGlzIHRvIGltcGxlbWVudCBhIHNpbXBsZSB2ZXJzaW9uIG9mIFJUVEksIHNpbmNlIG5vdCBhbGwK
KyAgICAgKiBDKysgY29tcGlsZXJzIHN1cHBvcnQgZ2VudWluZSBSVFRJLiAgUG9seW1vcnBoaWMg
b3BlcmF0b3I9PSgpIGFuZAorICAgICAqIGNsb25lKCkgbWV0aG9kcyBjYWxsIHRoaXMgbWV0aG9k
LgorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICBUaGUgY2xhc3MgSUQgZm9yIHRoaXMg
b2JqZWN0LiBBbGwgb2JqZWN0cyBvZiBhCisgICAgICogICAgICAgICAgICAgICAgICBnaXZlbiBj
bGFzcyBoYXZlIHRoZSBzYW1lIGNsYXNzIElELiAgT2JqZWN0cyBvZgorICAgICAqICAgICAgICAg
ICAgICAgICAgb3RoZXIgY2xhc3NlcyBoYXZlIGRpZmZlcmVudCBjbGFzcyBJRHMuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWlj
Q2xhc3NJRCh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNsYXNz
IElEIGZvciB0aGlzIGNsYXNzLiAgVGhpcyBpcyB1c2VmdWwgb25seSBmb3IKKyAgICAgKiBjb21w
YXJpbmcgdG8gYSByZXR1cm4gdmFsdWUgZnJvbSBnZXREeW5hbWljQ2xhc3NJRCgpLiAgRm9yIGV4
YW1wbGU6CisgICAgICoKKyAgICAgKiAgICAgIEJhc2UqIHBvbHltb3JwaGljX3BvaW50ZXIgPSBj
cmVhdGVQb2x5bW9ycGhpY09iamVjdCgpOworICAgICAqICAgICAgaWYgKHBvbHltb3JwaGljX3Bv
aW50ZXItPmdldER5bmFtaWNDbGFzc0lEKCkgPT0KKyAgICAgKiAgICAgICAgICBEZXJpdmVkOjpn
ZXRTdGF0aWNDbGFzc0lEKCkpIC4uLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICBU
aGUgY2xhc3MgSUQgZm9yIGFsbCBvYmplY3RzIG9mIHRoaXMgY2xhc3MuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRTdGF0
aWNDbGFzc0lEKHZvaWQpOworCisgICAgLyoqCisgICAgICogRGVwcmVjYXRlZCBmdW5jdGlvbmFs
aXR5LiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisgICAgICogQ3JlYXRlIGEgY2xvbmUg
KGNvcHkpIG9mIHRoaXMgYnJlYWsgaXRlcmF0b3IgaW4gbWVtb3J5IHByb3ZpZGVkCisgICAgICog
IGJ5IHRoZSBjYWxsZXIuICBUaGUgaWRlYSBpcyB0byBpbmNyZWFzZSBwZXJmb3JtYW5jZSBieSBh
dm9pZGluZworICAgICAqICBhIHN0b3JhZ2UgYWxsb2NhdGlvbi4gIFVzZSBvZiB0aGlzIGZ1bmN0
b2luIGlzIE5PVCBSRUNPTU1FTkRFRC4KKyAgICAgKiAgUGVyZm9ybWFuY2UgZ2FpbnMgYXJlIG1p
bmltYWwsIGFuZCBjb3JyZWN0IGJ1ZmZlciBtYW5hZ2VtZW50IGlzCisgICAgICogIHRyaWNreS4g
IFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhY2tCdWZmZXIg
IFRoZSBwb2ludGVyIHRvIHRoZSBtZW1vcnkgaW50byB3aGljaCB0aGUgY2xvbmVkIG9iamVjdAor
ICAgICAqICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGJlIHBsYWNlZC4gIElmIE5VTEwsICBh
bGxvY2F0ZSBoZWFwIG1lbW9yeQorICAgICAqICAgICAgICAgICAgICAgICAgICAgZm9yIHRoZSBj
bG9uZWQgb2JqZWN0LgorICAgICAqIEBwYXJhbSBCdWZmZXJTaXplICAgVGhlIHNpemUgb2YgdGhl
IGJ1ZmZlci4gIElmIHplcm8sIHJldHVybiB0aGUgcmVxdWlyZWQKKyAgICAgKiAgICAgICAgICAg
ICAgICAgICAgIGJ1ZmZlciBzaXplLCBidXQgZG8gbm90IGNsb25lIHRoZSBvYmplY3QuICBJZiB0
aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHNpemUgd2FzIHRvbyBzbWFsbCAoYnV0IG5v
dCB6ZXJvKSwgYWxsb2NhdGUgaGVhcAorICAgICAqICAgICAgICAgICAgICAgICAgICAgc3RvcmFn
ZSBmb3IgdGhlIGNsb25lZCBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzICAg
ICAgIEVycm9yIHN0YXR1cy4gIFVfU0FGRUNMT05FX0FMTE9DQVRFRF9XQVJOSU5HIHdpbGwgYmUK
KyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHJldHVybmVkIGlmIHRoZSB0aGUgcHJvdmlkZWQg
YnVmZmVyIHdhcyB0b28gc21hbGwsIGFuZAorICAgICAqICAgICAgICAgICAgICAgICAgICAgdGhl
IGNsb25lIHdhcyB0aGVyZWZvcmUgcHV0IG9uIHRoZSBoZWFwLgorICAgICAqCisgICAgICogQHJl
dHVybiAgUG9pbnRlciB0byB0aGUgY2xvbmUgb2JqZWN0LiAgVGhpcyBtYXkgZGlmZmVyIGZyb20g
dGhlIHN0YWNrQnVmZmVyCisgICAgICogICAgICAgICAgYWRkcmVzcyBpZiB0aGUgYnl0ZSBhbGln
bm1lbnQgb2YgdGhlIHN0YWNrIGJ1ZmZlciB3YXMgbm90IHN1aXRhYmxlCisgICAgICogICAgICAg
ICAgb3IgaWYgdGhlIHN0YWNrQnVmZmVyIHdhcyB0b28gc21hbGwgdG8gaG9sZCB0aGUgY2xvbmUu
CisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAq
LworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciAqICBjcmVhdGVCdWZmZXJDbG9uZSh2b2lkICpz
dGFja0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50MzJfdCAmQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworCisgICAgLyoqCisgICAgICog
UmV0dXJuIHRoZSBiaW5hcnkgZm9ybSBvZiBjb21waWxlZCBicmVhayBydWxlcywKKyAgICAgKiB3
aGljaCBjYW4gdGhlbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5ldyBicmVhayBpdGVyYXRvciBhdCBz
b21lCisgICAgICogdGltZSBpbiB0aGUgZnV0dXJlLiAgQ3JlYXRpbmcgYSBicmVhayBpdGVyYXRv
ciBmcm9tIHByZS1jb21waWxlZCBydWxlcworICAgICAqIGlzIG11Y2ggZmFzdGVyIHRoYW4gYnVp
bGRpbmcgb25lIGZyb20gdGhlIHNvdXJjZSBmb3JtIG9mIHRoZQorICAgICAqIGJyZWFrIHJ1bGVz
LgorICAgICAqCisgICAgICogVGhlIGJpbmFyeSBkYXRhIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCB0
aGUgc2FtZSB2ZXJzaW9uIG9mIElDVQorICAgICAqICBhbmQgb24gdGhlIHNhbWUgcGxhdGZvcm0g
dHlwZSAocHJvY2Vzc29yIGVuZGlhbi1uZXNzKQorICAgICAqCisgICAgICogQHBhcmFtIGxlbmd0
aCBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGJpbmFyeSBkYXRhLiAgKE91dCBwYXJhbXRlci4p
CisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgQSBwb2ludGVyIHRvIHRoZSBiaW5hcnkgKGNvbXBp
bGVkKSBydWxlIGRhdGEuICBUaGUgc3RvcmFnZQorICAgICAqICAgICAgICAgICBiZWxvbmdzIHRv
IHRoZSBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvciBvYmplY3QsIG5vdCB0aGUKKyAgICAgKiAgICAg
ICAgICAgY2FsbGVyLCBhbmQgbXVzdCBub3QgYmUgbW9kaWZpZWQgb3IgZGVsZXRlZC4KKyAgICAg
KiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGNvbnN0IHVpbnQ4X3QgKmdl
dEJpbmFyeVJ1bGVzKHVpbnQzMl90ICZsZW5ndGgpOworCisgICAgLyoqCisgICAgICogIFNldCB0
aGUgc3ViamVjdCB0ZXh0IHN0cmluZyB1cG9uIHdoaWNoIHRoZSBicmVhayBpdGVyYXRvciBpcyBv
cGVyYXRpbmcKKyAgICAgKiAgd2l0aG91dCBjaGFuZ2luZyBhbnkgb3RoZXIgYXNwZWN0IG9mIHRo
ZSBtYXRjaGluZyBzdGF0ZS4KKyAgICAgKiAgVGhlIG5ldyBhbmQgcHJldmlvdXMgdGV4dCBzdHJp
bmdzIG11c3QgaGF2ZSB0aGUgc2FtZSBjb250ZW50LgorICAgICAqCisgICAgICogIFRoaXMgZnVu
Y3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBpbiBlbnZpcm9ubWVudHMgd2hlcmUgSUNVIGlzIG9w
ZXJhdGluZyBvbgorICAgICAqICBzdHJpbmdzIHRoYXQgbWF5IG1vdmUgYXJvdW5kIGluIG1lbW9y
eS4gIEl0IHByb3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBub3RpZnlpbmcKKyAgICAgKiAgSUNVIHRo
YXQgdGhlIHN0cmluZyBoYXMgYmVlbiByZWxvY2F0ZWQsIGFuZCBwcm92aWRpbmcgYSBuZXcgVVRl
eHQgdG8gYWNjZXNzIHRoZQorICAgICAqICBzdHJpbmcgaW4gaXRzIG5ldyBwb3NpdGlvbi4KKyAg
ICAgKgorICAgICAqICBOb3RlIHRoYXQgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9u
IG5ldmVyIGNvcGllcyB0aGUgdW5kZXJseWluZyB0ZXh0CisgICAgICogIG9mIGEgc3RyaW5nIGJl
aW5nIHByb2Nlc3NlZCwgYnV0IGFsd2F5cyBvcGVyYXRlcyBkaXJlY3RseSBvbiB0aGUgb3JpZ2lu
YWwgdGV4dAorICAgICAqICBwcm92aWRlZCBieSB0aGUgdXNlci4gUmVmcmVzaGluZyBzaW1wbHkg
ZHJvcHMgdGhlIHJlZmVyZW5jZXMgdG8gdGhlIG9sZCB0ZXh0CisgICAgICogIGFuZCByZXBsYWNl
cyB0aGVtIHdpdGggcmVmZXJlbmNlcyB0byB0aGUgbmV3LgorICAgICAqCisgICAgICogIENhdXRp
b246ICB0aGlzIGZ1bmN0aW9uIGlzIG5vcm1hbGx5IHVzZWQgb25seSBieSB2ZXJ5IHNwZWNpYWxp
emVkLAorICAgICAqICBzeXN0ZW0tbGV2ZWwgY29kZS4gIE9uZSBleGFtcGxlIHVzZSBjYXNlIGlz
IHdpdGggZ2FyYmFnZSBjb2xsZWN0aW9uIHRoYXQgbW92ZXMKKyAgICAgKiAgdGhlIHRleHQgaW4g
bWVtb3J5LgorICAgICAqCisgICAgICogQHBhcmFtIGlucHV0ICAgICAgVGhlIG5ldyAobW92ZWQp
IHRleHQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgIFJlY2VpdmVzIGVycm9ycyBk
ZXRlY3RlZCBieSB0aGlzIGZ1bmN0aW9uLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICp0aGlz
CisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAgIHZpcnR1YWwgUnVs
ZUJhc2VkQnJlYWtJdGVyYXRvciAmcmVmcmVzaElucHV0VGV4dChVVGV4dCAqaW5wdXQsIFVFcnJv
ckNvZGUgJnN0YXR1cyk7CisKKworcHJvdGVjdGVkOgorICAgIC8vPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAg
ICAvLyBpbXBsZW1lbnRhdGlvbgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvKioKKyAgICAg
KiBEdW1wcyBjYWNoZXMgYW5kIHBlcmZvcm1zIG90aGVyIGFjdGlvbnMgYXNzb2NpYXRlZCB3aXRo
IGEgY29tcGxldGUgY2hhbmdlCisgICAgICogaW4gdGV4dCBvciBpdGVyYXRpb24gcG9zaXRpb24u
CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgdmlydHVhbCB2b2lkIHJlc2V0KHZvaWQp
OworCisjaWYgMAorICAgIC8qKgorICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2F0ZWdvcnkg
bG9va3VwIGZvciB0aGlzIGNoYXIKKyAgICAgICogaW5kaWNhdGVzIHRoYXQgaXQgaXMgaW4gdGhl
IHNldCBvZiBkaWN0aW9uYXJ5IGxvb2t1cCBjaGFycy4KKyAgICAgICogVGhpcyBmdW5jdGlvbiBp
cyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGRpY3Rpb25hcnkgYmFzZWQgYnJlYWsgaXRlcmF0b3JzLgor
ICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBmb3IgdGhpcyBjaGFy
CisgICAgICAqIGluZGljYXRlcyB0aGF0IGl0IGlzIGluIHRoZSBzZXQgb2YgZGljdGlvbmFyeSBs
b29rdXAgY2hhcnMuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIFVC
b29sIGlzRGljdGlvbmFyeUNoYXIoVUNoYXIzMik7CisKKyAgICAvKioKKyAgICAgICogR2V0IHRo
ZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgICogQGludGVybmFsCisgICAgICAq
LworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRCcmVha1R5cGUoKSBjb25zdDsKKyNlbmRpZgorCisg
ICAgLyoqCisgICAgICAqIFNldCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAg
ICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgc2V0QnJlYWtUeXBlKGlu
dDMyX3QgdHlwZSk7CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAg
ICAgKiBDb21tb24gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24sIHVzZWQgYnkgY29uc3RydWN0b3Jz
IGFuZCBidWZmZXJDbG9uZS4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZvaWQg
aW5pdCgpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKK3ByaXZhdGU6CisK
KyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBiYWNrcyB0aGUgaXRlcmF0b3IgYmFjayB1cCB0
byBhICJzYWZlIHBvc2l0aW9uIiBpbiB0aGUgdGV4dC4KKyAgICAgKiBUaGlzIGlzIGEgcG9zaXRp
b24gdGhhdCB3ZSBrbm93LCB3aXRob3V0IGFueSBjb250ZXh0LCBtdXN0IGJlIGEgYnJlYWsgcG9z
aXRpb24uCisgICAgICogVGhlIHZhcmlvdXMgY2FsbGluZyBtZXRob2RzIHRoZW4gaXRlcmF0ZSBm
b3J3YXJkIGZyb20gdGhpcyBzYWZlIHBvc2l0aW9uIHRvCisgICAgICogdGhlIGFwcHJvcHJpYXRl
IHBvc2l0aW9uIHRvIHJldHVybi4gIChGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkZXNj
cmlwdGlvbgorICAgICAqIG9mIGJ1aWxkQmFja3dhcmRzU3RhdGVUYWJsZSgpIGluIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3IuQnVpbGRlci4pCisgICAgICogQHBhcmFtIHN0YXRldGFibGUgc3RhdGUg
dGFibGUgdXNlZCBvZiBtb3ZpbmcgYmFja3dhcmRzCisgICAgICogQGludGVybmFsCisgICAgICov
CisgICAgaW50MzJfdCBoYW5kbGVQcmV2aW91cyhjb25zdCBSQkJJU3RhdGVUYWJsZSAqc3RhdGV0
YWJsZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUgYWN0dWFsIGltcGxl
bWVudGF0aW9uIG9mIHRoZSBuZXh0KCkgbWV0aG9kLiAgQWxsIGl0ZXJhdGlvbgorICAgICAqIHZl
Y3RvcnMgdGhyb3VnaCBoZXJlLiAgVGhpcyBtZXRob2QgaW5pdGlhbGl6ZXMgdGhlIHN0YXRlIG1h
Y2hpbmUgdG8gc3RhdGUgMQorICAgICAqIGFuZCBhZHZhbmNlcyB0aHJvdWdoIHRoZSB0ZXh0IGNo
YXJhY3RlciBieSBjaGFyYWN0ZXIgdW50aWwgd2UgcmVhY2ggdGhlIGVuZAorICAgICAqIG9mIHRo
ZSB0ZXh0IG9yIHRoZSBzdGF0ZSBtYWNoaW5lIHRyYW5zaXRpb25zIHRvIHN0YXRlIDAuICBXZSB1
cGRhdGUgb3VyIHJldHVybgorICAgICAqIHZhbHVlIGV2ZXJ5IHRpbWUgdGhlIHN0YXRlIG1hY2hp
bmUgcGFzc2VzIHRocm91Z2ggYSBwb3NzaWJsZSBlbmQgc3RhdGUuCisgICAgICogQHBhcmFtIHN0
YXRldGFibGUgc3RhdGUgdGFibGUgdXNlZCBvZiBtb3ZpbmcgZm9yd2FyZHMKKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGhhbmRsZU5leHQoY29uc3QgUkJCSVN0YXRlVGFi
bGUgKnN0YXRldGFibGUpOworCitwcm90ZWN0ZWQ6CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFM
X0FQSQorICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkg
aW1wbGVtZW50cyBkaWN0aW9uYXJ5LWJhc2VkCisgICAgICogYnJlYWtpbmcuICBDb3ZlcmluZyBh
dCBsZWFzdCB0aGUgcmFuZ2UgZnJvbSBzdGFydFBvcyB0byBlbmRQb3MsCisgICAgICogaXQgY2hl
Y2tzIGZvciBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMsIGFuZCBpZiBpdCBmaW5kcyB0aGVtIGRldGVy
bWluZXMKKyAgICAgKiB0aGUgYXBwcm9wcmlhdGUgb2JqZWN0IHRvIGRlYWwgd2l0aCB0aGVtLiBJ
dCBtYXkgY2FjaGUgZm91bmQgYnJlYWtzIGluCisgICAgICogZkNhY2hlZEJyZWFrUG9zaXRpb25z
IGFzIGl0IGdvZXMuIEl0IG1heSB3ZWxsIGFsc28gbG9vayBhdCB0ZXh0IG91dHNpZGUKKyAgICAg
KiB0aGUgcmFuZ2Ugc3RhcnRQb3MgdG8gZW5kUG9zLgorICAgICAqIElmIGdvaW5nIGZvcndhcmQs
IGVuZFBvcyBpcyB0aGUgbm9ybWFsIFVuaWNvZGUgYnJlYWsgcmVzdWx0LCBhbmQKKyAgICAgKiBp
ZiBnb2luZCBpbiByZXZlcnNlLCBzdGFydFBvcyBpcyB0aGUgbm9ybWFsIFVuaWNvZGUgYnJlYWsg
cmVzdWx0CisgICAgICogQHBhcmFtIHN0YXJ0UG9zICBUaGUgc3RhcnQgcG9zaXRpb24gb2YgYSBy
YW5nZSBvZiB0ZXh0CisgICAgICogQHBhcmFtIGVuZFBvcyAgICBUaGUgZW5kIHBvc2l0aW9uIG9m
IGEgcmFuZ2Ugb2YgdGV4dAorICAgICAqIEBwYXJhbSByZXZlcnNlICAgVGhlIGNhbGwgaXMgZm9y
IHRoZSByZXZlcnNlIGRpcmVjdGlvbgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGlu
dDMyX3QgY2hlY2tEaWN0aW9uYXJ5KGludDMyX3Qgc3RhcnRQb3MsIGludDMyX3QgZW5kUG9zLCBV
Qm9vbCByZXZlcnNlKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCitwcml2
YXRlOgorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBhcHByb3By
aWF0ZSBMYW5ndWFnZUJyZWFrRW5naW5lIGZvciBhCisgICAgICogZ2l2ZW4gY2hhcmFjdGVyIGMu
CisgICAgICogQHBhcmFtIGMgICAgICAgICBBIGNoYXJhY3RlciBpbiB0aGUgZGljdGlvbmFyeSBz
ZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBjb25zdCBMYW5ndWFnZUJyZWFrRW5n
aW5lICpnZXRMYW5ndWFnZUJyZWFrRW5naW5lKFVDaGFyMzIgYyk7CisKKyAgICAvKioKKyAgICAg
KiAgQGludGVybmFsCisgICAgICovCisgICAgdm9pZCBtYWtlUnVsZVN0YXR1c1ZhbGlkKCk7CisK
K307CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICBJbmxpbmUgRnVuY3Rpb25z
IERlZmluaXRpb25zIC4uLgorLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lubGluZSBV
Qm9vbCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yOjpvcGVyYXRvciE9KGNvbnN0IEJyZWFrSXRlcmF0
b3ImIHRoYXQpIGNvbnN0IHsKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0odGhhdCk7Cit9CisKK1Vf
TkFNRVNQQUNFX0VORAorCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElP
TiAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0
ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0ZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGI1
ZTIyNTAzY2ZmMjYxZDJjZDI0MGZmMTIwMDdmOTM3Zjc4M2IyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oCkBAIC0wLDAgKzEsMTg3IEBACisvKgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDUsIElu
dGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJz
LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBG
aWxlIHNjaHJpdGVyLmgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAg
ICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogIDA1LzA1Lzk5ICAgICBzdGVwaGVuICAg
ICBDbGVhbmVkIHVwLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIFNDSFJJ
VEVSX0gKKyNkZWZpbmUgU0NIUklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIK
KyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2hyaXRl
ci5oIgorCisvKioKKyAqIFxmaWxlIAorICogXGJyaWVmIEMrKyBBUEk6IFN0cmluZyBDaGFyYWN0
ZXIgSXRlcmF0b3IKKyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgorICogQSBjb25jcmV0
ZSBzdWJjbGFzcyBvZiBDaGFyYWN0ZXJJdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgdGhlCisg
KiBjaGFyYWN0ZXJzIChjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzKSBpbiBhIFVuaWNvZGVTdHJp
bmcuCisgKiBJdCdzIHBvc3NpYmxlIG5vdCBvbmx5IHRvIGNyZWF0ZSBhbgorICogaXRlcmF0b3Ig
dGhhdCBpdGVyYXRlcyBvdmVyIGFuIGVudGlyZSBVbmljb2RlU3RyaW5nLCBidXQgYWxzbyB0bwor
ICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25seSBhIHN1YnJhbmdlIG9mIGEgVW5p
Y29kZVN0cmluZworICogKGl0ZXJhdG9ycyBvdmVyIGRpZmZlcmVudCBzdWJyYW5nZXMgb2YgdGhl
IHNhbWUgVW5pY29kZVN0cmluZyBkb24ndAorICogY29tcGFyZSBlcXVhbCkuCisgKiBAc2VlIENo
YXJhY3Rlckl0ZXJhdG9yCisgKiBAc2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcgorICogQHN0
YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBTdHJpbmdDaGFyYWN0ZXJJdGVy
YXRvciA6IHB1YmxpYyBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgLyoqCisg
ICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJlZmVycmVkIHRv
IGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlzIGNvcGllZC4K
KyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyB0aGUgd2hvbGUgc3RyaW5nLCBhbmQgdGhlIHN0
YXJ0aW5nIHBvc2l0aW9uIGlzIDAuCisgICAqIEBwYXJhbSB0ZXh0U3RyIFRoZSB1bmljb2RlIHN0
cmluZyB1c2VkIHRvIGNyZWF0ZSBhbiBpdGVyYXRvcgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVuaWNvZGVTdHJpbmcmIHRleHRT
dHIpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVW5pY29kZVN0
cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2Ug
aXMgdGhlIHdob2xlIHN0cmluZywgYW5kIHRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBz
cGVjaWZpZWQgYnkgInRleHRQb3MiLiAgSWYgInRleHRQb3MiIGlzIG91dHNpZGUgdGhlIHZhbGlk
CisgICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVu
ZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRTdHIgVGhlIHVuaWNvZGUgc3RyaW5nIHVzZWQgdG8g
Y3JlYXRlIGFuIGl0ZXJhdG9yCisgICAqIEBwYXJhbSB0ZXh0UG9zIFRoZSBzdGFydGluZyBwb3Np
dGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3Ry
aW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYgICAgdGV4dFN0ciwKKyAg
ICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dFBvcyk7CisKKyAgLyoqCisgICAq
IENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJlZmVycmVkIHRvIGJ5
ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlzIGNvcGllZC4KKyAg
ICogVGhlIGl0ZXJhdGlvbiByYW5nZSBiZWdpbnMgd2l0aCB0aGUgY29kZSB1bml0IHNwZWNpZmll
ZCBieQorICAgKiAidGV4dEJlZ2luIiBhbmQgZW5kcyB3aXRoIHRoZSBjb2RlIHVuaXQgQkVGT1JF
IHRoZSBjb2RlIHVuaXQgc3BlY2ZpZWQKKyAgICogYnkgInRleHRFbmQiLiAgVGhlIHN0YXJ0aW5n
IHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAidGV4dFBvcyIuICBJZgorICAgKiAidGV4dEJlZ2lu
IiBhbmQgInRleHRFbmQiIGRvbid0IGZvcm0gYSB2YWxpZCByYW5nZSBvbiAidGV4dCIgKGkuZS4s
CisgICAqIHRleHRCZWdpbiA+PSB0ZXh0RW5kIG9yIGVpdGhlciBpcyBuZWdhdGl2ZSBvciBncmVh
dGVyIHRoYW4gdGV4dC5zaXplKCkpLAorICAgKiBvciAidGV4dFBvcyIgaXMgb3V0c2lkZSB0aGUg
cmFuZ2UgZGVmaW5lZCBieSAidGV4dEJlZ2luIiBhbmQgInRleHRFbmQiLAorICAgKiB0aGUgYmVo
YXZpb3Igb2YgdGhpcyBpdGVyYXRvciBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0U3Ry
ICAgIFRoZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSB0aGUgU3RyaW5nQ2hhcmFjdGVy
SXRlcmF0b3IKKyAgICogQHBhcmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBvc2l0aW9uIG9mIHRo
ZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhlIGVuZCBwb3NpdGlv
biBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0UG9zICAgIFRoZSBzdGFy
dGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYgICAgdGV4
dFN0ciwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dEJlZ2luLAorICAg
ICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0RW5kLAorICAgICAgICAgICAgICBp
bnQzMl90ICAgICAgICAgICAgICB0ZXh0UG9zKTsKKworICAvKioKKyAgICogQ29weSBjb25zdHJ1
Y3Rvci4gIFRoZSBuZXcgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSByYW5nZQorICAg
KiBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRpYWwgcG9zaXRpb24g
aXMgdGhlCisgICAqIHNhbWUgYXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICogVGhl
IFVuaWNvZGVTdHJpbmcgb2JqZWN0IGluICJ0aGF0IiBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSB0
aGF0IFRoZSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBTdHJpbmdD
aGFyYWN0ZXJJdGVyYXRvciYgIHRoYXQpOworCisgIC8qKgorICAgKiBEZXN0cnVjdG9yLgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgflN0cmluZ0NoYXJhY3Rlckl0ZXJh
dG9yKCk7CisKKyAgLyoqCisgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICAqdGhpcyBpcyBhbHRl
cmVkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZQorICAgKiByYW5nZSBvZiB0aGUgc2FtZSBzdHJp
bmcgYXMgInRoYXQiLCBhbmQgcmVmZXJzIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciB3aXRo
aW4gdGhhdCBzdHJpbmcgYXMgInRoYXQiIGRvZXMuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBvYmpl
Y3QgdG8gYmUgY29waWVkLgorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4K
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciYK
KyAgb3BlcmF0b3I9KGNvbnN0IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJiAgICB0aGF0KTsKKwor
ICAvKioKKyAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRo
ZSBzYW1lIHJhbmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0
IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0
ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICogQHJldHVybiB0cnVl
IGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQorICAg
KiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICAgIG9wZXJh
dG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKworICAv
KioKKyAgICogUmV0dXJucyBhIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciByZWZlcnJpbmcg
dG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHJhbmdlIG9mIHRoZSBzYW1l
IHN0cmluZyBhcyB0aGlzIG9uZS4gIFRoZQorICAgKiBjYWxsZXIgbXVzdCBkZWxldGUgdGhlIG5l
dyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0aGUgbmV3bHkgY2xvbmVkIG9iamVjdC4KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9u
ZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0
ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSBzdHJp
bmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZv
aWQgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKworICAvKioKKyAgICog
Q29waWVzIHRoZSBVbmljb2RlU3RyaW5nIHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBVbmljb2Rl
U3RyaW5nCisgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZlbiBpZiB0aGlzIGl0ZXJh
dG9yIGl0ZXJhdGVzIGFjcm9zcworICAgKiBvbmx5IGEgcGFydCBvZiB0aGlzIHN0cmluZywgdGhl
IHdob2xlIHN0cmluZyBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSByZXN1bHQgUmVjZWl2ZXMgYSBj
b3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAqLworICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNvZGVTdHJpbmcmIHJl
c3VsdCk7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdCAo
bm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmpl
Y3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2xhc3NJRCAgICAg
ICAgIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1cm4g
YSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcyAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1
cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIHN0YXRpYyBVQ2xhc3NJRCAgIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKHZvaWQpOwor
Citwcm90ZWN0ZWQ6CisgIC8qKgorICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yLCBpdGVyYXRpb24g
b3ZlciBlbXB0eSBzdHJpbmcuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5n
Q2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8g
aXRlcmF0ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJhbSBuZXdUZXh0IFRo
ZSBzdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbmV3VGV4dExlbmd0aCBU
aGUgbGVuZ3RoIG9mIHRoZSBTdHJpbmcKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2
b2lkIHNldFRleHQoY29uc3QgVUNoYXIqIG5ld1RleHQsIGludDMyX3QgbmV3VGV4dExlbmd0aCk7
CisKKyAgLyoqCisgICAqIENvcHkgb2YgdGhlIGl0ZXJhdGVkIHN0cmluZyBvYmplY3QuCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVW5pY29kZVN0cmluZyAgICAgICAgICAgIHRleHQ7
CisKK307CisKK1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L2ljdS91bmljb2RlL3VjYXNlbWFwLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjYXNlbWFw
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjM3ZTE2NTg4Njk3ZjFhOTMwMTkxZWUzZGY4MTZjNjNiN2JkMzhjMQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNhc2VtYXAuaApAQCAt
MCwwICsxLDQyMyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmln
aHQgKEMpIDIwMDUtMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENv
cnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVjYXNlbWFwLmgKKyogICBlbmNvZGluZzog
ICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9u
OjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDA1bWF5MDYKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMg
Vy4gU2NoZXJlcgorKgorKiAgIENhc2UgbWFwcGluZyBzZXJ2aWNlIG9iamVjdCBhbmQgZnVuY3Rp
b25zIHVzaW5nIGl0LgorKi8KKworI2lmbmRlZiBfX1VDQVNFTUFQX0hfXworI2RlZmluZSBfX1VD
QVNFTUFQX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmlj
b2RlL3VzdHJpbmcuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCisvKioK
KyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IFVuaWNvZGUgY2FzZSBtYXBwaW5nIGZ1bmN0aW9u
cyB1c2luZyBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICoKKyAqIFRoZSBzZXJ2aWNlIG9i
amVjdCB0YWtlcyBjYXJlIG9mIG1lbW9yeSBhbGxvY2F0aW9ucywgZGF0YSBsb2FkaW5nLCBhbmQg
c2V0dXAKKyAqIGZvciB0aGUgYXR0cmlidXRlcywgYXMgdXN1YWwuCisgKgorICogQ3VycmVudGx5
LCB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBoZXJlIGRvZXMgbm90IG92ZXJsYXAgd2l0aCB1
Y2hhci5oCisgKiBhbmQgdXN0cmluZy5oLCBleGNlcHQgZm9yIHVjYXNlbWFwX3RvVGl0bGUoKS4K
KyAqCisgKiB1Y2FzZW1hcF91dGY4WFlaKCkgZnVuY3Rpb25zIG9wZXJhdGUgZGlyZWN0bHkgb24g
VVRGLTggc3RyaW5ncy4KKyAqLworCisvKioKKyAqIFVDYXNlTWFwIGlzIGFuIG9wYXF1ZSBzZXJ2
aWNlIG9iamVjdCBmb3IgbmV3ZXIgSUNVIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMuCisgKiBPbGRl
ciBmdW5jdGlvbnMgZGlkIG5vdCB1c2UgYSBzZXJ2aWNlIG9iamVjdC4KKyAqIEBzdGFibGUgSUNV
IDMuNAorICovCitzdHJ1Y3QgVUNhc2VNYXA7Cit0eXBlZGVmIHN0cnVjdCBVQ2FzZU1hcCBVQ2Fz
ZU1hcDsgLyoqPCBDIHR5cGVkZWYgZm9yIHN0cnVjdCBVQ2FzZU1hcC4gQHN0YWJsZSBJQ1UgMy40
ICovCisKKy8qKgorICogT3BlbiBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0IGZvciBhIGxvY2Fs
ZSBhbmQgYSBzZXQgb2Ygb3B0aW9ucy4KKyAqIFRoZSBsb2NhbGUgSUQgYW5kIG9wdGlvbnMgYXJl
IHByZXByb2Nlc3NlZCBzbyB0aGF0IGZ1bmN0aW9ucyB1c2luZyB0aGUKKyAqIHNlcnZpY2Ugb2Jq
ZWN0IG5lZWQgbm90IHByb2Nlc3MgdGhlbSBpbiBlYWNoIGNhbGwuCisgKgorICogQHBhcmFtIGxv
Y2FsZSBJQ1UgbG9jYWxlIElELCB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQKKyAqICAgICAg
ICAgICAgICAgdXBwZXItL2xvd2VyLS90aXRsZS1jYXNpbmcgYWNjb3JkaW5nIHRvIHRoZSBVbmlj
b2RlIHN0YW5kYXJkLgorICogICAgICAgICAgICAgICBVc3VhbCBzZW1hbnRpY3M6ICIiPXJvb3Qs
IE5VTEw9ZGVmYXVsdCBsb2NhbGUsIGV0Yy4KKyAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgYml0
IHNldCwgdXNlZCBmb3IgY2FzZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKiAg
ICAgICAgICAgICAgICBTYW1lIGZsYWdzIGFzIGZvciB1X2ZvbGRDYXNlKCksIHVfc3RyRm9sZENh
c2UoKSwKKyAqICAgICAgICAgICAgICAgIHVfc3RyQ2FzZUNvbXBhcmUoKSwgZXRjLgorICogICAg
ICAgICAgICAgICAgVXNlIDAgb3IgVV9GT0xEX0NBU0VfREVGQVVMVCBmb3IgZGVmYXVsdCBiZWhh
dmlvci4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFu
IGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBp
bmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBQ
b2ludGVyIHRvIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QsIGlmIHN1Y2Nlc3NmdWwuCisgKgor
ICogQHNlZSBVX0ZPTERfQ0FTRV9ERUZBVUxUCisgKiBAc2VlIFVfRk9MRF9DQVNFX0VYQ0xVREVf
U1BFQ0lBTF9JCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHNlZSBVX1RJ
VExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5UCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9T
VEFCTEUgVUNhc2VNYXAgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX29wZW4oY29uc3QgY2hhciAqbG9j
YWxlLCB1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisg
KiBDbG9zZSBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGNzbSBPYmplY3Qg
dG8gYmUgY2xvc2VkLgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9F
WFBPUlQyCit1Y2FzZW1hcF9jbG9zZShVQ2FzZU1hcCAqY3NtKTsKKworI2lmIFVfU0hPV19DUExV
U1BMVVNfQVBJCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogXGNsYXNzIExvY2FsVUNh
c2VNYXBQb2ludGVyCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGNsb3NlcyBhIFVDYXNlTWFw
IHZpYSB1Y2FzZW1hcF9jbG9zZSgpLgorICogRm9yIG1vc3QgbWV0aG9kcyBzZWUgdGhlIExvY2Fs
UG9pbnRlckJhc2UgYmFzZSBjbGFzcy4KKyAqCisgKiBAc2VlIExvY2FsUG9pbnRlckJhc2UKKyAq
IEBzZWUgTG9jYWxQb2ludGVyCisgKiBAc3RhYmxlIElDVSA0LjQKKyAqLworVV9ERUZJTkVfTE9D
QUxfT1BFTl9QT0lOVEVSKExvY2FsVUNhc2VNYXBQb2ludGVyLCBVQ2FzZU1hcCwgdWNhc2VtYXBf
Y2xvc2UpOworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmCisKKy8qKgorICogR2V0IHRoZSBs
b2NhbGUgSUQgdGhhdCBpcyB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQgY2FzZSBtYXBwaW5n
cy4KKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIGxv
Y2FsZSBJRAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGNvbnN0IGNoYXIgKiBV
X0VYUE9SVDIKK3VjYXNlbWFwX2dldExvY2FsZShjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoq
CisgKiBHZXQgdGhlIG9wdGlvbnMgYml0IHNldCB0aGF0IGlzIHVzZWQgZm9yIGNhc2UgZm9sZGlu
ZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNl
IG9iamVjdC4KKyAqIEByZXR1cm4gb3B0aW9ucyBiaXQgc2V0CisgKiBAc3RhYmxlIElDVSAzLjQK
KyAqLworVV9TVEFCTEUgdWludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRPcHRpb25zKGNv
bnN0IFVDYXNlTWFwICpjc20pOworCisvKioKKyAqIFNldCB0aGUgbG9jYWxlIElEIHRoYXQgaXMg
dXNlZCBmb3IgbGFuZ3VhZ2UtZGVwZW5kZW50IGNhc2UgbWFwcGluZ3MuCisgKgorICogQHBhcmFt
IGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBsb2NhbGUgTG9jYWxlIElE
LCBzZWUgdWNhc2VtYXBfb3BlbigpLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZh
bGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAg
IHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNh
bGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF9vcGVuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLwor
VV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldExvY2FsZShVQ2FzZU1hcCAqY3Nt
LCBjb25zdCBjaGFyICpsb2NhbGUsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAq
IFNldCB0aGUgb3B0aW9ucyBiaXQgc2V0IHRoYXQgaXMgdXNlZCBmb3IgY2FzZSBmb2xkaW5nIGFu
ZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNl
IG9iamVjdC4KKyAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgYml0IHNldCwgc2VlIHVjYXNlbWFw
X29wZW4oKS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRv
IGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5v
dCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAqIEBz
ZWUgdWNhc2VtYXBfb3BlbgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQg
VV9FWFBPUlQyCit1Y2FzZW1hcF9zZXRPcHRpb25zKFVDYXNlTWFwICpjc20sIHVpbnQzMl90IG9w
dGlvbnMsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIERvIG5vdCBsb3dlcmNh
c2Ugbm9uLWluaXRpYWwgcGFydHMgb2Ygd29yZHMgd2hlbiB0aXRsZWNhc2luZy4KKyAqIE9wdGlv
biBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQSXMgdGhhdCB0YWtlIGFuIG9wdGlvbnMgYml0IHNldC4K
KyAqCisgKiBCeSBkZWZhdWx0LCB0aXRsZWNhc2luZyB3aWxsIHRpdGxlY2FzZSB0aGUgZmlyc3Qg
Y2FzZWQgY2hhcmFjdGVyCisgKiBvZiBhIHdvcmQgYW5kIGxvd2VyY2FzZSBhbGwgb3RoZXIgY2hh
cmFjdGVycy4KKyAqIFdpdGggdGhpcyBvcHRpb24sIHRoZSBvdGhlciBjaGFyYWN0ZXJzIHdpbGwg
bm90IGJlIG1vZGlmaWVkLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNl
ZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc2Vl
IFVuaWNvZGVTdHJpbmc6OnRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCisjZGVmaW5l
IFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRSAweDEwMAorCisvKioKKyAqIERvIG5vdCBhZGp1c3Qg
dGhlIHRpdGxlY2FzaW5nIGluZGV4ZXMgZnJvbSBCcmVha0l0ZXJhdG9yOjpuZXh0KCkgaW5kZXhl
czsKKyAqIHRpdGxlY2FzZSBleGFjdGx5IHRoZSBjaGFyYWN0ZXJzIGF0IGJyZWFrcyBmcm9tIHRo
ZSBpdGVyYXRvci4KKyAqIE9wdGlvbiBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQSXMgdGhhdCB0YWtl
IGFuIG9wdGlvbnMgYml0IHNldC4KKyAqCisgKiBCeSBkZWZhdWx0LCB0aXRsZWNhc2luZyB3aWxs
IHRha2UgZWFjaCBicmVhayBpdGVyYXRvciBpbmRleCwKKyAqIGFkanVzdCBpdCBieSBsb29raW5n
IGZvciB0aGUgbmV4dCBjYXNlZCBjaGFyYWN0ZXIsIGFuZCB0aXRsZWNhc2UgdGhhdCBvbmUuCisg
KiBPdGhlciBjaGFyYWN0ZXJzIGFyZSBsb3dlcmNhc2VkLgorICoKKyAqIFRoaXMgZm9sbG93cyBV
bmljb2RlIDQgJiA1IHNlY3Rpb24gMy4xMyBEZWZhdWx0IENhc2UgT3BlcmF0aW9uczoKKyAqCisg
KiBSMyAgdG9UaXRsZWNhc2UoWCk6IEZpbmQgdGhlIHdvcmQgYm91bmRhcmllcyBiYXNlZCBvbiBV
bmljb2RlIFN0YW5kYXJkIEFubmV4CisgKiAjMjksICJUZXh0IEJvdW5kYXJpZXMuIiBCZXR3ZWVu
IGVhY2ggcGFpciBvZiB3b3JkIGJvdW5kYXJpZXMsIGZpbmQgdGhlIGZpcnN0CisgKiBjYXNlZCBj
aGFyYWN0ZXIgRi4gSWYgRiBleGlzdHMsIG1hcCBGIHRvIGRlZmF1bHRfdGl0bGUoRik7IHRoZW4g
bWFwIGVhY2gKKyAqIHN1YnNlcXVlbnQgY2hhcmFjdGVyIEMgdG8gZGVmYXVsdF9sb3dlcihDKS4K
KyAqCisgKiBAc2VlIHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgdWNhc2VtYXBfdG9UaXRs
ZQorICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICogQHNlZSBVbmljb2RlU3RyaW5nOjp0
b1RpdGxlCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHN0YWJsZSBJQ1Ug
My44CisgKi8KKyNkZWZpbmUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVCAweDIwMAor
CisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKKy8qKgorICogR2V0IHRoZSBicmVh
ayBpdGVyYXRvciB0aGF0IGlzIHVzZWQgZm9yIHRpdGxlY2FzaW5nLgorICogRG8gbm90IG1vZGlm
eSB0aGUgcmV0dXJuZWQgYnJlYWsgaXRlcmF0b3IuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNl
cnZpY2Ugb2JqZWN0LgorICogQHJldHVybiB0aXRsZWNhc2luZyBicmVhayBpdGVyYXRvcgorICog
QHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIGNvbnN0IFVCcmVha0l0ZXJhdG9yICogVV9F
WFBPUlQyCit1Y2FzZW1hcF9nZXRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDYXNlTWFwICpjc20pOwor
CisvKioKKyAqIFNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2VkIGZvciB0aXRsZWNh
c2luZy4KKyAqIFRoZSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdCByZWxlYXNlcyBhIHByZXZpb3Vz
bHkgc2V0IGJyZWFrIGl0ZXJhdG9yCisgKiBhbmQgImFkb3B0cyIgdGhpcyBuZXcgb25lLCB0YWtp
bmcgb3duZXJzaGlwIG9mIGl0LgorICogSXQgd2lsbCBiZSByZWxlYXNlZCBpbiBhIHN1YnNlcXVl
bnQgY2FsbCB0byB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCkKKyAqIG9yIHVjYXNlbWFwX2Ns
b3NlKCkuCisgKgorICogQnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucyBhcmUgbm90IHRocmVhZC1z
YWZlLiBUaGVyZWZvcmUsIHRpdGxlY2FzaW5nCisgKiBmdW5jdGlvbnMgdXNlIG5vbi1jb25zdCBV
Q2FzZU1hcCBvYmplY3RzLiBJdCBpcyBub3QgcG9zc2libGUgdG8gdGl0bGVjYXNlCisgKiBzdHJp
bmdzIGNvbmN1cnJlbnRseSB1c2luZyB0aGUgc2FtZSBVQ2FzZU1hcC4KKyAqCisgKiBAcGFyYW0g
Y3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGl0ZXJUb0Fkb3B0IEJyZWFr
IGl0ZXJhdG9yIHRvIGJlIGFkb3B0ZWQgZm9yIHRpdGxlY2FzaW5nLgorICogQHBhcmFtIHBFcnJv
ckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAq
ICAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZv
cmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBA
c2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFC
TEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoVUNhc2VNYXAgKmNz
bSwgVUJyZWFrSXRlcmF0b3IgKml0ZXJUb0Fkb3B0LCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsK
KworLyoqCisgKiBUaXRsZWNhc2UgYSBVVEYtMTYgc3RyaW5nLiBUaGlzIGZ1bmN0aW9uIGlzIGFs
bW9zdCBhIGR1cGxpY2F0ZSBvZiB1X3N0clRvVGl0bGUoKSwKKyAqIGV4Y2VwdCB0aGF0IGl0IHRh
a2VzIHVjYXNlbWFwX3NldE9wdGlvbnMoKSBpbnRvIGFjY291bnQgYW5kIGhhcyBwZXJmb3JtYW5j
ZQorICogYWR2YW50YWdlcyBmcm9tIGJlaW5nIGFibGUgdG8gdXNlIGEgVUNhc2VNYXAgb2JqZWN0
IGZvciBtdWx0aXBsZSBjYXNlIG1hcHBpbmcKKyAqIG9wZXJhdGlvbnMsIHNhdmluZyBzZXR1cCB0
aW1lLgorICoKKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNlbnNp
dGl2ZS4KKyAqIFRpdGxlY2FzaW5nIHVzZXMgYSBicmVhayBpdGVyYXRvciB0byBmaW5kIHRoZSBm
aXJzdCBjaGFyYWN0ZXJzIG9mIHdvcmRzCisgKiB0aGF0IGFyZSB0byBiZSB0aXRsZWNhc2VkLiBJ
dCB0aXRsZWNhc2VzIHRob3NlIGNoYXJhY3RlcnMgYW5kIGxvd2VyY2FzZXMKKyAqIGFsbCBvdGhl
cnMuIChUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHVjYXNlbWFwX3NldE9wdGlvbnMoKS4pCisg
KgorICogTm90ZTogVGhpcyBmdW5jdGlvbiB0YWtlcyBhIG5vbi1jb25zdCBVQ2FzZU1hcCBwb2lu
dGVyIGJlY2F1c2UgaXQgd2lsbAorICogb3BlbiBhIGRlZmF1bHQgYnJlYWsgaXRlcmF0b3IgaWYg
bm8gYnJlYWsgaXRlcmF0b3Igd2FzIHNldCB5ZXQsCisgKiBhbmQgZWZmZWN0aXZlbHkgY2FsbCB1
Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCk7CisgKiBhbHNvIGJlY2F1c2UgdGhlIGJyZWFrIGl0
ZXJhdG9yIGlzIHN0YXRlZnVsIGFuZCB3aWxsIGJlIG1vZGlmaWVkIGR1cmluZworICogdGhlIGl0
ZXJhdGlvbi4KKyAqCisgKiBUaGUgdGl0bGVjYXNlIGJyZWFrIGl0ZXJhdG9yIGNhbiBiZSBwcm92
aWRlZCB0byBjdXN0b21pemUgZm9yIGFyYml0cmFyeQorICogc3R5bGVzLCB1c2luZyBydWxlcyBh
bmQgZGljdGlvbmFyaWVzIGJleW9uZCB0aGUgc3RhbmRhcmQgaXRlcmF0b3JzLgorICogVGhlIHN0
YW5kYXJkIHRpdGxlY2FzZSBpdGVyYXRvciBmb3IgdGhlIHJvb3QgbG9jYWxlIGltcGxlbWVudHMg
dGhlCisgKiBhbGdvcml0aG0gb2YgVW5pY29kZSBUUiAyMS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9u
IHVzZXMgb25seSB0aGUgc2V0VVRleHQoKSwgZmlyc3QoKSwgbmV4dCgpIGFuZCBjbG9zZSgpIG1l
dGhvZHMgb2YgdGhlCisgKiBwcm92aWRlZCBicmVhayBpdGVyYXRvci4KKyAqCisgKiBUaGUgcmVz
dWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBz
b3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAu
CisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4gVGhpcyBw
b2ludGVyIGlzIG5vbi1jb25zdCEKKyAqICAgICAgICAgICAgICAgICAgU2VlIHRoZSBub3RlIGFi
b3ZlIGZvciBkZXRhaWxzLgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJl
c3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAg
ICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAg
ICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBA
cGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRl
cykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVM
TCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVz
dWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3Vs
dCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBA
cGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEs
IHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBN
dXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAg
ICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBm
dW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5n
LCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAg
ICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHku
CisgKgorICogQHNlZSB1X3N0clRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NU
QUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdG9UaXRsZShVQ2FzZU1hcCAqY3NtLAor
ICAgICAgICAgICAgICAgICBVQ2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAg
ICAgICAgICAgICAgIGNvbnN0IFVDaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCisKKy8qKgorICog
TG93ZXJjYXNlIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICogQ2FzaW5nIGlz
IGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGhlIHJlc3VsdCBt
YXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNl
IHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoK
KyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0g
ZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxs
IGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMg
bGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZp
bmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUg
b2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAg
ICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5
IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0
aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAg
ICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBv
ZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWlu
YXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFu
IGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGlu
ZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRo
ZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNl
IG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwg
YmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9Mb3dlcgor
ICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2Fz
ZW1hcF91dGY4VG9Mb3dlcihjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAg
ICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAg
ICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogVXBwZXJjYXNlIHRoZSBjaGFy
YWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQg
YW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNo
b3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRl
c3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAg
ICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVy
IGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVk
IGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICog
ICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFp
bHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVt
YmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0
IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3Ro
IG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBv
ZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0
cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3Ry
aW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBw
RXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUs
CisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBi
ZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJl
c3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJm
bG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRl
c3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9VcHBlcgorICogQHN0YWJsZSBJQ1UgMy40
CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4VG9VcHBlcihj
b25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50
MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMs
IGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVy
cm9yQ29kZSk7CisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworLyoqCisgKiBU
aXRsZWNhc2UgYSBVVEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVudCBh
bmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaXRsZWNhc2luZyB1c2VzIGEgYnJlYWsgaXRlcmF0
b3IgdG8gZmluZCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiB3b3JkcworICogdGhhdCBhcmUgdG8g
YmUgdGl0bGVjYXNlZC4gSXQgdGl0bGVjYXNlcyB0aG9zZSBjaGFyYWN0ZXJzIGFuZCBsb3dlcmNh
c2VzCisgKiBhbGwgb3RoZXJzLiAoVGhpcyBjYW4gYmUgbW9kaWZpZWQgd2l0aCB1Y2FzZW1hcF9z
ZXRPcHRpb25zKCkuKQorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBub24tY29u
c3QgVUNhc2VNYXAgcG9pbnRlciBiZWNhdXNlIGl0IHdpbGwKKyAqIG9wZW4gYSBkZWZhdWx0IGJy
ZWFrIGl0ZXJhdG9yIGlmIG5vIGJyZWFrIGl0ZXJhdG9yIHdhcyBzZXQgeWV0LAorICogYW5kIGVm
ZmVjdGl2ZWx5IGNhbGwgdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigpOworICogYWxzbyBiZWNh
dXNlIHRoZSBicmVhayBpdGVyYXRvciBpcyBzdGF0ZWZ1bCBhbmQgd2lsbCBiZSBtb2RpZmllZCBk
dXJpbmcKKyAqIHRoZSBpdGVyYXRpb24uCisgKgorICogVGhlIHRpdGxlY2FzZSBicmVhayBpdGVy
YXRvciBjYW4gYmUgcHJvdmlkZWQgdG8gY3VzdG9taXplIGZvciBhcmJpdHJhcnkKKyAqIHN0eWxl
cywgdXNpbmcgcnVsZXMgYW5kIGRpY3Rpb25hcmllcyBiZXlvbmQgdGhlIHN0YW5kYXJkIGl0ZXJh
dG9ycy4KKyAqIFRoZSBzdGFuZGFyZCB0aXRsZWNhc2UgaXRlcmF0b3IgZm9yIHRoZSByb290IGxv
Y2FsZSBpbXBsZW1lbnRzIHRoZQorICogYWxnb3JpdGhtIG9mIFVuaWNvZGUgVFIgMjEuCisgKgor
ICogVGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHNldFVUZXh0KCksIGZpcnN0KCksIG5leHQo
KSBhbmQgY2xvc2UoKSBtZXRob2RzIG9mIHRoZQorICogcHJvdmlkZWQgYnJlYWsgaXRlcmF0b3Iu
CisgKgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3Jp
Z2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBt
dXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2Vydmlj
ZSBvYmplY3QuIFRoaXMgcG9pbnRlciBpcyBub24tY29uc3QhCisgKiAgICAgICAgICAgICAgICAg
IFNlZSB0aGUgbm90ZSBhYm92ZSBmb3IgZGV0YWlscy4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBi
dWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1p
bmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2gu
CisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBv
ZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVy
IChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAg
IGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBs
ZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcg
YW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2lu
YWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5h
bCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBh
cmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2
YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWls
dXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0
aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIg
b3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRo
YW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1RpdGxlCisgKiBAc2VlIFVfVElU
TEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RN
RU5UCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIK
K3VjYXNlbWFwX3V0ZjhUb1RpdGxlKFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgICAg
IGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICBV
RXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCisKKy8qKgorICogQ2FzZS1mb2xkcyB0
aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmluZy4KKyAqCisgKiBDYXNlLWZvbGRpbmcgaXMg
bG9jYWxlLWluZGVwZW5kZW50IGFuZCBub3QgY29udGV4dC1zZW5zaXRpdmUsCisgKiBidXQgdGhl
cmUgaXMgYW4gb3B0aW9uIGZvciB3aGV0aGVyIHRvIGluY2x1ZGUgb3IgZXhjbHVkZSBtYXBwaW5n
cyBmb3IgZG90dGVkIEkKKyAqIGFuZCBkb3RsZXNzIGkgdGhhdCBhcmUgbWFya2VkIHdpdGggJ1Qn
IGluIENhc2VGb2xkaW5nLnR4dC4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Ig
c2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUg
ZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAg
ICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBidWZm
ZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0
ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2guCisg
KiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBvZiBm
YWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChu
dW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAgIGRl
c3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5n
dGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcgYW55
IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2luYWwg
c3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBz
dHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBhcmFt
IHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1
ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJl
IGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUg
cmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIgb3Zl
cmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRoYW4g
ZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJGb2xkQ2FzZQorICogQHNlZSB1Y2FzZW1h
cF9zZXRPcHRpb25zCisgKiBAc2VlIFVfRk9MRF9DQVNFX0RFRkFVTFQKKyAqIEBzZWUgVV9GT0xE
X0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJM
RSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOEZvbGRDYXNlKGNvbnN0IFVDYXNlTWFw
ICpjc20sCisgICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2Fw
YWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNy
Y0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmgg
Yi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ1YTk5MGY3
YjdlZDNkNWJhY2YyZGE4NDcxZWY4ZmY5NDIyZjk5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0ZXIuaApAQCAtMCwwICsxLDM4MSBAQAorLyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNp
bmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJl
c2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBVQ0hSSVRFUl9ICisjZGVmaW5l
IFVDSFJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5p
Y29kZS9jaGFyaXRlci5oIgorCisvKioKKyAqIFxmaWxlIAorICogXGJyaWVmIEMrKyBBUEk6IFVD
aGFyIENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioK
KyAqIEEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ2hhcmFjdGVySXRlcmF0b3IgdGhhdCBpdGVyYXRl
cyBvdmVyIHRoZQorICogY2hhcmFjdGVycyAoY29kZSB1bml0cyBvciBjb2RlIHBvaW50cykgaW4g
YSBVQ2hhciBhcnJheS4KKyAqIEl0J3MgcG9zc2libGUgbm90IG9ubHkgdG8gY3JlYXRlIGFuCisg
KiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgYW4gZW50aXJlIFVDaGFyIGFycmF5LCBidXQg
YWxzbyB0bworICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25seSBhIHN1YnJhbmdl
IG9mIGEgVUNoYXIgYXJyYXkKKyAqIChpdGVyYXRvcnMgb3ZlciBkaWZmZXJlbnQgc3VicmFuZ2Vz
IG9mIHRoZSBzYW1lIFVDaGFyIGFycmF5IGRvbid0CisgKiBjb21wYXJlIGVxdWFsKS4KKyAqIEBz
ZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yCisg
KiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIFVDaGFyQ2hhcmFjdGVy
SXRlcmF0b3IgOiBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGljOgorICAvKioKKyAg
ICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5
ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmxlbmd0
aC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUK
KyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBAcGFyYW0gdGV4dFB0
ciBUaGUgVUNoYXIgYXJyYXkgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbGVuZ3Ro
IFRoZSBsZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJf
dCBsZW5ndGgpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVUNo
YXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJh
bmdlIGlzIDAgdG8gPGNvZGU+bGVuZ3RoLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlzIG9ubHkgYWxp
YXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90IGRlbGV0ZSBp
dCkuCisgICAqIFRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInBv
c2l0aW9uIi4gSWYgInBvc2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVyYXRp
b24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisgICAq
IEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRkIG92ZXIKKyAgICog
QHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQorICAgKiBAcGFyYW0g
cG9zaXRpb24gVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFy
KiB0ZXh0UHRyLCBpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQz
Ml90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhl
IFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlv
biByYW5nZSBpcyAwIHRvIDxjb2RlPmVuZC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5IGFs
aWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUg
aXQpLgorICAgKiBUaGUgc3RhcnRpbmcKKyAgICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJw
b3NpdGlvbiIuIElmIGJlZ2luIGFuZCBlbmQgZG8gbm90CisgICAqIGZvcm0gYSB2YWxpZCBpdGVy
YXRpb24gcmFuZ2Ugb3IgInBvc2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVy
YXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisg
ICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRlZCBvdmVyCisg
ICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIgYXJyYXkKKyAgICogQHBh
cmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UK
KyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9u
IHJhbmdlCisgICAqIEBwYXJhbSBwb3NpdGlvbiAgICBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2Yg
dGhlIGl0ZXJhdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFj
dGVySXRlcmF0b3IoY29uc3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGV4dEJlZ2luLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIGludDMyX3QgdGV4dEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90
IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogQ29weSBjb25zdHJ1Y3Rvci4gIFRoZSBuZXcgaXRl
cmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSByYW5nZQorICAgKiBvZiB0aGUgc2FtZSBzdHJp
bmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRpYWwgcG9zaXRpb24gaXMgdGhlCisgICAqIHNhbWUg
YXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICogQHBhcmFtIHRoYXQgVGhlIFVDaGFy
Q2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9y
JiAgdGhhdCk7CisKKyAgLyoqCisgICAqIERlc3RydWN0b3IuCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCB+VUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8qKgor
ICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgKnRoaXMgaXMgYWx0ZXJlZCB0byBpdGVyYXRlIG92
ZXIgdGhlIHNhbmUKKyAgICogcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5k
IHJlZmVycyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgd2l0aGluIHRoYXQgc3RyaW5nIGFz
ICJ0aGF0IiBkb2VzLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgb2JqZWN0IHRvIGJlIGNvcGllZAor
ICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdAorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImCisgIG9wZXJhdG9yPShjb25zdCBV
Q2hhckNoYXJhY3Rlckl0ZXJhdG9yJiAgICB0aGF0KTsKKworICAvKioKKyAgICogUmV0dXJucyB0
cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQor
ICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4K
KyAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB1c2VkIHRvIGJl
IGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGl0ZXJhdG9y
cyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFu
ZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgICAgb3BlcmF0b3I9PShjb25zdCBGb3J3
YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0OworCisgIC8qKgorICAgKiBHZW5lcmF0
ZXMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgaXRlcmF0b3IuCisgICAqIEByZXR1cm4gdGhlIGhhc2gg
Y29kZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIGludDMyX3QgICAg
ICAgICBoYXNoQ29kZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogUmV0dXJucyBhIG5ldyBV
Q2hhckNoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0
ZXIgaW4gdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzIHRoaXMgb25lLiAgVGhl
CisgICAqIGNhbGxlciBtdXN0IGRlbGV0ZSB0aGUgbmV3IGl0ZXJhdG9yLgorICAgKiBAcmV0dXJu
IHRoZSBDaGFyYWN0ZXJJdGVyYXRvciBuZXdseSBjcmVhdGVkCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3Q7
CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBj
b2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBj
b2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdp
dGggbmV4dCgpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJh
dGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFy
ICAgICAgICAgZmlyc3Qodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5n
ZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgKiB0
byB0aGUgc2Vjb25kIGNvZGUgdW5pdC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0
YXJ0KCkKKyAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMoKS4KKyAg
ICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UKKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3RQ
b3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0
byB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQg
cmV0dXJucyB0aGF0IGNvZGUgdW5pdCwKKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBh
biBpdGVyYXRpb24gd2l0aCBuZXh0MzIoKS4KKyAgICogTm90ZSB0aGF0IGFuIGl0ZXJhdGlvbiB3
aXRoIG5leHQzMlBvc3RJbmMoKSwgYmVnaW5uaW5nIHdpdGgsCisgICAqIGUuZy4sIHNldFRvU3Rh
cnQoKSBvciBmaXJzdFBvc3RJbmMoKSwgaXMgbW9yZSBlZmZpY2llbnQuCisgICAqIEByZXR1cm4g
dGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyKHZvaWQpOwor
CisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29k
ZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSBw
b2ludCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgKiB0byB0aGUgc2Vjb25kIGNvZGUgcG9p
bnQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAqIGZvciBmb3J3
YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUgZmly
c3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyUG9zdEluYyh2b2lkKTsK
KworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29k
ZSB1bml0IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29k
ZSB1bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRo
IHByZXZpb3VzKCkuCisgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSB1bml0IGluIGl0cyBpdGVy
YXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hh
ciAgICAgICAgIGxhc3Qodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5n
ZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8g
YmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMzMigpLgorICAgKiBAcmV0dXJuIHRoZSBs
YXN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMyKHZvaWQpOworCisgIC8q
KgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgInBvc2l0aW9uIi10aCBj
b2RlIHVuaXQKKyAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJl
ZmVycyB0bywgYW5kCisgICAqIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIEBwYXJhbSBw
b3NpdGlvbiB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAq
IEByZXR1cm4gdGhlIGNvZGUgdW5pdAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZp
cnR1YWwgVUNoYXIgICAgICAgICBzZXRJbmRleChpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioK
KyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUg
Y29kZSBwb2ludAorICAgKiB0aGF0IGNvbnRhaW5zIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5p
dAorICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRv
LCBhbmQKKyAgICogcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisgICAqIFRoZSBjdXJyZW50IHBv
c2l0aW9uIGlzIGFkanVzdGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAg
ICogKGl0cyBmaXJzdCBjb2RlIHVuaXQpLgorICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0
aW9uIHdpdGhpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgKiBAcmV0dXJuIHRoZSBjb2Rl
IHVuaXQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAg
ICAgc2V0SW5kZXgzMihpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogUmV0dXJucyB0
aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAgKiBAcmV0
dXJuIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGN1cnJlbnQo
dm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgdGhlIGNvZGUgcG9pbnQgdGhlIGl0
ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEByZXR1cm4gdGhlIGNvZGUgcG9pbnQg
dGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGN1cnJlbnQzMih2b2lkKSBjb25zdDsKKwor
ICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UgKHRvd2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2Rl
IHVuaXQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRzIHRvIHJldHVybiwg
cmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgdW5pdCBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNo
YXIgICAgICAgICBuZXh0KHZvaWQpOworCisgIC8qKgorICAgKiBHZXRzIHRoZSBjdXJyZW50IGNv
ZGUgdW5pdCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQK
KyAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAg
SWYgdGhlcmUgYXJlCisgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMg
RE9ORS4KKyAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHRQb3N0SW5jKHZvaWQp
OworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRoZSBp
dGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhh
dCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSBwb2ludHMgdG8g
cmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIE5vdGUgdGhhdCBpdGVyYXRpb24gd2l0aCAicHJl
LWluY3JlbWVudCIgc2VtYW50aWNzIGlzIGxlc3MKKyAgICogZWZmaWNpZW50IHRoYW4gaXRlcmF0
aW9uIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1hbnRpY3MKKyAgICogdGhhdCBpcyBwcm92aWRl
ZCBieSBuZXh0MzJQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSBwb2ludCBp
biB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZp
cnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzIodm9pZCk7CisKKyAgLyoqCisgICAqIEdldHMgdGhl
IGN1cnJlbnQgY29kZSBwb2ludCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4
dCBjb2RlIHBvaW50CisgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogKHRvd2FyZCBl
bmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJl
dHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHBvaW50LgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzJQ
b3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBu
byBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1
cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogVGhpcyBpcyB1c2Vk
IHdpdGggbmV4dFBvc3RJbmMoKSBvciBuZXh0MzJQb3N0SW5jKCkgaW4gZm9yd2FyZAorICAgKiBp
dGVyYXRpb24uCisgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1
bml0cyBvciBjb2RlIHBvaW50cworICAgKiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlv
biBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc05leHQoKTsKKworICAvKioKKyAgICogQWR2YW5jZXMg
dG8gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQK
KyAgICogc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVy
ZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgor
ICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5n
ZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAg
cHJldmlvdXModm9pZCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBj
b2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBzdGFydEluZGV4
KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQor
ICAgKiBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0
aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBwcmV2aW91czMyKHZv
aWQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNv
ZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9u
IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIFRoaXMgaXMgdXNlZCB3aXRoIHByZXZpb3Vz
KCkgb3IgcHJldmlvdXMzMigpIGluIGJhY2t3YXJkCisgICAqIGl0ZXJhdGlvbi4KKyAgICogQHJl
dHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRz
CisgICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhh
c1ByZXZpb3VzKCk7CisKKyAgLyoqCisgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJl
bGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAqIGl0ZXJhdGlvbiByYW5nZSwg
b3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgKiBUaGUgbW92
ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSB1bml0cyBmb3J3YXJkCisgICAq
IG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4K
KyAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9z
aXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBi
YWNrd2FyZC4KKyAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwg
a0N1cnJlbnQsIGtFbmR9CisgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUoaW50MzJfdCBk
ZWx0YSwgRU9yaWdpbiBvcmlnaW4pOworCisgIC8qKgorICAgKiBNb3ZlcyB0aGUgY3VycmVudCBw
b3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgKiBpdGVyYXRp
b24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGl0c2VsZi4KKyAg
ICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgcG9pbnRzIGZv
cndhcmQKKyAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0
aXZlIGRlbHRhLgorICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9y
aWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgKiBhIG5lZ2F0aXZlIGRl
bHRhIG1lYW5zIGJhY2t3YXJkLgorICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlv
biB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9u
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92
ZTMyKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKTsKKworICAvKioKKyAgICogU2V0cyB0
aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIGEgbmV3IHJhbmdlIG9mIHRleHQKKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVUNoYXIqIG5ld1RleHQs
IGludDMyX3QgbmV3VGV4dExlbmd0aCk7CisKKyAgLyoqCisgICAqIENvcGllcyB0aGUgVUNoYXIg
YXJyYXkgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcKKyAgICogcmVmZXJy
ZWQgdG8gYnkgInJlc3VsdCIuICBFdmVuIGlmIHRoaXMgaXRlcmF0b3IgaXRlcmF0ZXMgYWNyb3Nz
CisgICAqIG9ubHkgYSBwYXJ0IG9mIHRoaXMgc3RyaW5nLCB0aGUgd2hvbGUgc3RyaW5nIGlzIGNv
cGllZC4KKyAgICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5k
ZXIgaXRlcmF0aW9uLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgdm9p
ZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0cmluZyYgcmVzdWx0KTsKKworICAvKioKKyAg
ICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MgKG5vdCByZWFsbHkgcHVibGljKQor
ICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MKKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBzdGF0aWMgVUNsYXNzSUQgICAgICAgICBVX0VYUE9SVDIgZ2V0U3RhdGlj
Q2xhc3NJRCh2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMg
b2JqZWN0IChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0
aGlzIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDbGFz
c0lEICAgICAgICBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKworcHJvdGVjdGVkOgor
ICAvKioKKyAgICogUHJvdGVjdGVkIGNvbnN0cnVjdG9yCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigpOworICAvKioKKyAgICogUHJvdGVjdGVk
IG1lbWJlciB0ZXh0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgY29uc3QgVUNoYXIq
ICAgICAgICAgICAgdGV4dDsKKworfTsKKworVV9OQU1FU1BBQ0VfRU5ECisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNsZWFuLmggYi9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3VjbGVhbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5YTFlNTM5MDU4Y2RlODVlZmQyYWE4NGNiNzA3
ZDM3NDE3NDI1ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Vj
bGVhbi5oCkBAIC0wLDAgKzEsMjU4IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENv
cHlyaWdodCAoQykgMjAwMS0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisq
ICAgICAgICAgICAgICAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1Y2xlYW4uaAorKiAg
IGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAg
aW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDIwMDFKdWx5MDUKKyogICBjcmVhdGVk
IGJ5OiBHZW9yZ2UgUmhvdGVuCisqLworCisjaWZuZGVmIF9fVUNMRUFOX0hfXworI2RlZmluZSBf
X1VDTEVBTl9IX18KKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisvKioKKyAqIFxmaWxl
CisgKiBcYnJpZWYgQyBBUEk6IEluaXRpYWxpemUgYW5kIGNsZWFuIHVwIElDVQorICovCisgCisv
KioKKyAqICBJbml0aWFsaXplIElDVS4KKyAqCisgKiAgVXNlIG9mIHRoaXMgZnVuY3Rpb24gaXMg
b3B0aW9uYWwuICBJdCBpcyBPSyB0byBzaW1wbHkgdXNlIElDVQorICogIHNlcnZpY2VzIGFuZCBm
dW5jdGlvbnMgd2l0aG91dCBmaXJzdCBoYXZpbmcgaW5pdGlhbGl6ZWQKKyAqICBJQ1UgYnkgY2Fs
bGluZyB1X2luaXQoKS4KKyAqCisgKiAgdV9pbml0KCkgd2lsbCBhdHRlbXB0IHRvIGxvYWQgc29t
ZSBwYXJ0IG9mIElDVSdzIGRhdGEsIGFuZCBpcworICogIHVzZWZ1bCBhcyBhIHRlc3QgZm9yIGNv
bmZpZ3VyYXRpb24gb3IgaW5zdGFsbGF0aW9uIHByb2JsZW1zIHRoYXQKKyAqICBsZWF2ZSB0aGUg
SUNVIGRhdGEgaW5hY2Nlc3NpYmxlLiAgQSBzdWNjZXNzZnVsIGludm9jYXRpb24gb2YgdV9pbml0
KCkKKyAqICBkb2VzIG5vdCwgaG93ZXZlciwgZ3VhcmFudGVlIHRoYXQgYWxsIElDVSBkYXRhIGlz
IGFjY2Vzc2libGUuCisgKgorICogIE11bHRpcGxlIGNhbGxzIHRvIHVfaW5pdCgpIGNhdXNlIG5v
IGhhcm0sIGFzaWRlIGZyb20gdGhlIHNtYWxsIGFtb3VudAorICogIG9mIHRpbWUgcmVxdWlyZWQu
CisgKgorICogIEluIG9sZCB2ZXJzaW9ucyBvZiBJQ1UsIHVfaW5pdCgpIHdhcyByZXF1aXJlZCBp
biBtdWx0aS10aHJlYWRlZCBhcHBsaWNhdGlvbnMKKyAqICB0byBlbnN1cmUgdGhlIHRocmVhZCBz
YWZldHkgb2YgSUNVLiAgdV9pbml0KCkgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgdGhpcyBwdXJw
b3NlLgorICoKKyAqIEBwYXJhbSBzdGF0dXMgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJ
dCBtdXN0IG5vdCBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqICAgIEFuIEVycm9yIHdpbGwgYmUg
cmV0dXJuZWQgaWYgc29tZSByZXF1aXJlZCBwYXJ0IG9mIElDVSBkYXRhIGNhbiBub3QKKyAqICAg
IGJlIGxvYWRlZCBvciBpbml0aWFsaXplZC4KKyAqICAgIFRoZSBmdW5jdGlvbiByZXR1cm5zIGlt
bWVkaWF0ZWx5IGlmIHRoZSBpbnB1dCBlcnJvciBjb2RlIGluZGljYXRlcyBhCisgKiAgICBmYWls
dXJlLCBhcyB1c3VhbC4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjYKKyAqLyAgCitVX1NUQUJMRSB2
b2lkIFVfRVhQT1JUMiAKK3VfaW5pdChVRXJyb3JDb2RlICpzdGF0dXMpOworCisjaWZuZGVmIFVf
SElERV9TWVNURU1fQVBJCisvKioKKyAqIENsZWFuIHVwIHRoZSBzeXN0ZW0gcmVzb3VyY2VzLCBz
dWNoIGFzIGFsbG9jYXRlZCBtZW1vcnkgb3Igb3BlbiBmaWxlcywKKyAqIHVzZWQgaW4gYWxsIElD
VSBsaWJyYXJpZXMuIFRoaXMgd2lsbCBmcmVlL2RlbGV0ZSBhbGwgbWVtb3J5IG93bmVkIGJ5IHRo
ZQorICogSUNVIGxpYnJhcmllcywgYW5kIHJldHVybiB0aGVtIHRvIHRoZWlyIG9yaWdpbmFsIGxv
YWQgc3RhdGUuIEFsbCBvcGVuIElDVQorICogaXRlbXMgKGNvbGxhdG9ycywgcmVzb3VyY2UgYnVu
ZGxlcywgY29udmVydGVycywgZXRjLikgbXVzdCBiZSBjbG9zZWQgYmVmb3JlCisgKiBjYWxsaW5n
IHRoaXMgZnVuY3Rpb24sIG90aGVyd2lzZSBJQ1UgbWF5IG5vdCBmcmVlIGl0cyBhbGxvY2F0ZWQg
bWVtb3J5CisgKiAoZS5nLiBjbG9zZSB5b3VyIGNvbnZlcnRlcnMgYW5kIHJlc291cmNlIGJ1bmRs
ZXMgYmVmb3JlIGNhbGxpbmcgdGhpcworICogZnVuY3Rpb24pLiBHZW5lcmFsbHksIHRoaXMgZnVu
Y3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBvbmNlIGp1c3QgYmVmb3JlCisgKiBhbiBhcHBsaWNhdGlv
biBleGl0cy4gRm9yIGFwcGxpY2F0aW9ucyB0aGF0IGR5bmFtaWNhbGx5IGxvYWQgYW5kIHVubG9h
ZAorICogdGhlIElDVSBsaWJyYXJpZXMgKHJlbGF0aXZlbHkgdW5jb21tb24pLCB1X2NsZWFudXAo
KSBzaG91bGQgYmUgY2FsbGVkCisgKiBqdXN0IGJlZm9yZSB0aGUgbGlicmFyeSB1bmxvYWQuCisg
KiA8cD4KKyAqIHVfY2xlYW51cCgpIGFsc28gY2xlYXJzIGFueSBJQ1UgaGVhcCBmdW5jdGlvbnMs
IG11dGV4IGZ1bmN0aW9ucyBvcgorICogdHJhY2UgZnVuY3Rpb25zIHRoYXQgbWF5IGhhdmUgYmVl
biBzZXQgZm9yIHRoZSBwcm9jZXNzLiAgCisgKiBUaGlzIGhhcyB0aGUgZWZmZWN0IG9mIHJlc3Rv
cmluZyBJQ1UgdG8gaXRzIGluaXRpYWwgY29uZGl0aW9uLCBiZWZvcmUKKyAqIGFueSBvZiB0aGVz
ZSBvdmVycmlkZSBmdW5jdGlvbnMgd2VyZSBpbnN0YWxsZWQuICBSZWZlciB0bworICogdV9zZXRN
ZW1vcnlGdW5jdGlvbnMoKSwgdV9zZXRNdXRleEZ1bmN0aW9ucyBhbmQgCisgKiB1dHJhY2Vfc2V0
RnVuY3Rpb25zKCkuICBJZiBJQ1UgaXMgdG8gYmUgcmVpbml0aWFsaXplZCBhZnRlciBhZnRlcgor
ICogY2FsbGluZyB1X2NsZWFudXAoKSwgdGhlc2UgcnVudGltZSBvdmVycmlkZSBmdW5jdGlvbnMg
d2lsbCBuZWVkIHRvCisgKiBiZSBzZXQgdXAgYWdhaW4gaWYgdGhleSBhcmUgc3RpbGwgcmVxdWly
ZWQuCisgKiA8cD4KKyAqIHVfY2xlYW51cCgpIGlzIG5vdCB0aHJlYWQgc2FmZS4gIEFsbCBvdGhl
ciB0aHJlYWRzIHNob3VsZCBzdG9wIHVzaW5nIElDVQorICogYmVmb3JlIGNhbGxpbmcgdGhpcyBm
dW5jdGlvbi4KKyAqIDxwPgorICogQW55IG9wZW4gSUNVIGl0ZW1zIHdpbGwgYmUgbGVmdCBpbiBh
biB1bmRlZmluZWQgc3RhdGUgYnkgdV9jbGVhbnVwKCksCisgKiBhbmQgYW55IHN1YnNlcXVlbnQg
YXR0ZW1wdCB0byB1c2Ugc3VjaCBhbiBpdGVtIHdpbGwgZ2l2ZSB1bnByZWRpY3RhYmxlCisgKiBy
ZXN1bHRzLgorICogPHA+CisgKiBBZnRlciBjYWxsaW5nIHVfY2xlYW51cCgpLCBhbiBhcHBsaWNh
dGlvbiBtYXkgY29udGludWUgdG8gdXNlIElDVSBieQorICogY2FsbGluZyB1X2luaXQoKS4gIEFu
IGFwcGxpY2F0aW9uIG11c3QgaW52b2tlIHVfaW5pdCgpIGZpcnN0IGZyb20gb25lIHNpbmdsZQor
ICogdGhyZWFkIGJlZm9yZSBhbGxvd2luZyBvdGhlciB0aHJlYWRzIGNhbGwgdV9pbml0KCkuICBB
bGwgdGhyZWFkcyBleGlzdGluZworICogYXQgdGhlIHRpbWUgb2YgdGhlIGZpcnN0IHRocmVhZCdz
IGNhbGwgdG8gdV9pbml0KCkgbXVzdCBhbHNvIGNhbGwKKyAqIHVfaW5pdCgpIHRoZW1zZWx2ZXMg
YmVmb3JlIGNvbnRpbnVpbmcgd2l0aCBvdGhlciBJQ1Ugb3BlcmF0aW9ucy4gIAorICogPHA+Cisg
KiBUaGUgdXNlIG9mIHVfY2xlYW51cCgpIGp1c3QgYmVmb3JlIGFuIGFwcGxpY2F0aW9uIHRlcm1p
bmF0ZXMgaXMgb3B0aW9uYWwsCisgKiBidXQgaXQgc2hvdWxkIGJlIGNhbGxlZCBvbmx5IG9uY2Ug
Zm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuIFRoZSBwcmltYXJ5CisgKiBiZW5lZml0IGlzIHRvIGVs
aW1pbmF0ZSByZXBvcnRzIG9mIG1lbW9yeSBvciByZXNvdXJjZSBsZWFrcyBvcmlnaW5hdGluZwor
ICogaW4gSUNVIGNvZGUgZnJvbSB0aGUgcmVzdWx0cyBnZW5lcmF0ZWQgYnkgaGVhcCBhbmFseXNp
cyB0b29scy4KKyAqIDxwPgorICogPHN0cm9uZz5Vc2UgdGhpcyBmdW5jdGlvbiB3aXRoIGdyZWF0
IGNhcmUhPC9zdHJvbmc+CisgKiA8L3A+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKiBAc3lz
dGVtCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyIAordV9jbGVhbnVwKHZvaWQpOworCisK
Ky8qKgorICAqICBQb2ludGVyIHR5cGUgZm9yIGEgdXNlciBzdXBwbGllZCBtZW1vcnkgYWxsb2Nh
dGlvbiBmdW5jdGlvbi4KKyAgKiAgQHBhcmFtIGNvbnRleHQgdXNlciBzdXBwbGllZCB2YWx1ZSwg
b2J0YWluZWQgZnJvbSBmcm9tIHVfc2V0TWVtb3J5RnVuY3Rpb25zKCkuCisgICogIEBwYXJhbSBz
aXplICAgIFRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gYmUgYWxsb2NhdGVkCisgICogIEByZXR1cm4g
ICAgICAgIFBvaW50ZXIgdG8gdGhlIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnksIG9yIE5VTEwgaWYg
dGhlIGFsbG9jYXRpb24gZmFpbGVkLgorICAqICBAc3RhYmxlIElDVSAyLjgKKyAgKiAgQHN5c3Rl
bQorICAqLwordHlwZWRlZiB2b2lkICpVX0NBTExDT05WIFVNZW1BbGxvY0ZuKGNvbnN0IHZvaWQg
KmNvbnRleHQsIHNpemVfdCBzaXplKTsKKy8qKgorICAqICBQb2ludGVyIHR5cGUgZm9yIGEgdXNl
ciBzdXBwbGllZCBtZW1vcnkgcmUtYWxsb2NhdGlvbiBmdW5jdGlvbi4KKyAgKiAgQHBhcmFtIGNv
bnRleHQgdXNlciBzdXBwbGllZCB2YWx1ZSwgb2J0YWluZWQgZnJvbSBmcm9tIHVfc2V0TWVtb3J5
RnVuY3Rpb25zKCkuCisgICogIEBwYXJhbSBzaXplICAgIFRoZSBudW1iZXIgb2YgYnl0ZXMgdG8g
YmUgYWxsb2NhdGVkCisgICogIEByZXR1cm4gICAgICAgIFBvaW50ZXIgdG8gdGhlIG5ld2x5IGFs
bG9jYXRlZCBtZW1vcnksIG9yIE5VTEwgaWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkLgorICAqICBA
c3RhYmxlIElDVSAyLjgKKyAgKiAgQHN5c3RlbQorICAqLwordHlwZWRlZiB2b2lkICpVX0NBTExD
T05WIFVNZW1SZWFsbG9jRm4oY29uc3Qgdm9pZCAqY29udGV4dCwgdm9pZCAqbWVtLCBzaXplX3Qg
c2l6ZSk7CisvKioKKyAgKiAgUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3VwcGxpZWQgbWVtb3J5
IGZyZWUgIGZ1bmN0aW9uLiAgQmVoYXZpb3Igc2hvdWxkIGJlCisgICogIHNpbWlsYXIgdGhlIHN0
YW5kYXJkIEMgbGlicmFyeSBmcmVlKCkuCisgICogIEBwYXJhbSBjb250ZXh0IHVzZXIgc3VwcGxp
ZWQgdmFsdWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3NldE1lbW9yeUZ1bmN0aW9ucygpLgorICAq
ICBAcGFyYW0gbWVtICAgICBQb2ludGVyIHRvIHRoZSBtZW1vcnkgYmxvY2sgdG8gYmUgcmVzaXpl
ZAorICAqICBAcGFyYW0gc2l6ZSAgICBUaGUgbmV3IHNpemUgZm9yIHRoZSBibG9jaworICAqICBA
cmV0dXJuICAgICAgICBQb2ludGVyIHRvIHRoZSByZXNpemVkIG1lbW9yeSBibG9jaywgb3IgTlVM
TCBpZiB0aGUgcmVzaXppbmcgZmFpbGVkLgorICAqICBAc3RhYmxlIElDVSAyLjgKKyAgKiAgQHN5
c3RlbQorICAqLwordHlwZWRlZiB2b2lkICBVX0NBTExDT05WIFVNZW1GcmVlRm4gKGNvbnN0IHZv
aWQgKmNvbnRleHQsIHZvaWQgKm1lbSk7CisKKy8qKgorICogIFNldCB0aGUgZnVuY3Rpb25zIHRo
YXQgSUNVIHdpbGwgdXNlIGZvciBtZW1vcnkgYWxsb2NhdGlvbi4KKyAqICBVc2Ugb2YgdGhpcyBm
dW5jdGlvbiBpcyBvcHRpb25hbDsgYnkgZGVmYXVsdCAod2l0aG91dCB0aGlzIGZ1bmN0aW9uKSwg
SUNVIHdpbGwKKyAqICB1c2UgdGhlIHN0YW5kYXJkIEMgbGlicmFyeSBtYWxsb2MoKSBhbmQgZnJl
ZSgpIGZ1bmN0aW9ucy4KKyAqICBUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5IGJlIHVzZWQgd2hlbiBJ
Q1UgaXMgaW4gYW4gaW5pdGlhbCwgdW51c2VkIHN0YXRlLCBiZWZvcmUKKyAqICB1X2luaXQoKSBo
YXMgYmVlbiBjYWxsZWQuCisgKiAgQHBhcmFtIGNvbnRleHQgVGhpcyBwb2ludGVyIHZhbHVlIHdp
bGwgYmUgc2F2ZWQsIGFuZCB0aGVuIChsYXRlcikgcGFzc2VkIGFzCisgKiAgICAgICAgICAgICAg
ICAgYSBwYXJhbWV0ZXIgdG8gdGhlIG1lbW9yeSBmdW5jdGlvbnMgZWFjaCB0aW1lIHRoZXkKKyAq
ICAgICAgICAgICAgICAgICBhcmUgY2FsbGVkLgorICogIEBwYXJhbSBhICAgICAgIFBvaW50ZXIg
dG8gYSB1c2VyLXN1cHBsaWVkIG1hbGxvYyBmdW5jdGlvbi4KKyAqICBAcGFyYW0gciAgICAgICBQ
b2ludGVyIHRvIGEgdXNlci1zdXBwbGllZCByZWFsbG9jIGZ1bmN0aW9uLgorICogIEBwYXJhbSBm
ICAgICAgIFBvaW50ZXIgdG8gYSB1c2VyLXN1cHBsaWVkIGZyZWUgZnVuY3Rpb24uCisgKiAgQHBh
cmFtIHN0YXR1cyAgUmVjZWl2ZXMgZXJyb3IgdmFsdWVzLgorICogIEBzdGFibGUgSUNVIDIuOAor
ICogIEBzeXN0ZW0KKyAqLyAgCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMiAKK3Vfc2V0TWVtb3J5
RnVuY3Rpb25zKGNvbnN0IHZvaWQgKmNvbnRleHQsIFVNZW1BbGxvY0ZuICphLCBVTWVtUmVhbGxv
Y0ZuICpyLCBVTWVtRnJlZUZuICpmLCAKKyAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAq
c3RhdHVzKTsKKworCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQorLyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorICoKKyAqIERlcHJlY2F0ZWQgRnVuY3Rpb25zCisgKgorICogICAgVGhl
IGZvbGxvd2luZyBmdW5jdGlvbnMgZm9yIHVzZXIgc3VwcGxpZWQgbXV0ZXhlcyBhcmUgbm8gbG9u
Z2VyIHN1cHBvcnRlZC4KKyAqICAgIEFueSBhdHRlbXB0IHRvIHVzZSB0aGVtIHdpbGwgcmV0dXJu
IGEgVV9VTlNVUFBPUlRFRF9FUlJPUi4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K
KworLyoqCisgICogQW4gb3BhcXVlIHBvaW50ZXIgdHlwZSB0aGF0IHJlcHJlc2VudHMgYW4gSUNV
IG11dGV4LgorICAqIEZvciB1c2VyLWltcGxlbWVudGVkIG11dGV4ZXMsIHRoZSB2YWx1ZSB3aWxs
IHR5cGljYWxseSBwb2ludCB0byBhCisgICogIHN0cnVjdCBvciBvYmplY3QgdGhhdCBpbXBsZW1l
bnRzIHRoZSBtdXRleC4KKyAgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIFRoaXMgdHlwZSBpcyBubyBs
b25nZXIgc3VwcG9ydGVkLgorICAqIEBzeXN0ZW0KKyAgKi8KK3R5cGVkZWYgdm9pZCAqVU1UWDsK
KworLyoqCisgICogIEZ1bmN0aW9uIFBvaW50ZXIgdHlwZSBmb3IgYSB1c2VyIHN1cHBsaWVkIG11
dGV4IGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLgorICAqICBUaGUgdXNlci1zdXBwbGllZCBmdW5j
dGlvbiB3aWxsIGJlIGNhbGxlZCBieSBJQ1Ugd2hlbmV2ZXIgSUNVIG5lZWRzIHRvIGNyZWF0ZSBh
CisgICogIG5ldyBtdXRleC4gIFRoZSBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbiBzaG91bGQgY3Jl
YXRlIGEgbXV0ZXgsIGFuZCBzdG9yZSBhIHBvaW50ZXIKKyAgKiAgdG8gc29tZXRoaW5nIHRoYXQg
dW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgbXV0ZXggaW50byB0aGUgVU1UWCB0aGF0IGlzIHN1cHBs
aWVkCisgICogIGFzIGEgcGFyYW10ZXIuCisgICogIEBwYXJhbSBjb250ZXh0IHVzZXIgc3VwcGxp
ZWQgdmFsdWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3NldE11dGV4RnVuY3Rpb25zKCkuCisgICog
IEBwYXJhbSBtdXRleCAgIFJlY2VpdmVzIGEgcG9pbnRlciB0aGF0IGlkZW50aWZpZXMgdGhlIG5l
dyBtdXRleC4KKyAgKiAgICAgICAgICAgICAgICAgVGhlIG11dGV4IGluaXQgZnVuY3Rpb24gbXVz
dCBzZXQgdGhlIFVNVFggdG8gYSBub24tbnVsbCB2YWx1ZS4gICAKKyAgKiAgICAgICAgICAgICAg
ICAgU3Vic2VxdWVudCBjYWxscyBieSBJQ1UgdG8gbG9jaywgdW5sb2NrLCBvciBkZXN0cm95IGEg
bXV0ZXggd2lsbCAKKyAgKiAgICAgICAgICAgICAgICAgaWRlbnRpZnkgdGhlIG11dGV4IGJ5IHRo
ZSBVTVRYIHZhbHVlLgorICAqICBAcGFyYW0gc3RhdHVzICBFcnJvciBzdGF0dXMuICBSZXBvcnQg
ZXJyb3JzIGJhY2sgdG8gSUNVIGJ5IHNldHRpbmcgdGhpcyB2YXJpYWJsZQorICAqICAgICAgICAg
ICAgICAgICB3aXRoIGFuIGVycm9yIGNvZGUuCisgICogIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhp
cyBmdW5jdGlvbiBpcyBubyBsb25nZXIgc3VwcG9ydGVkLgorICAqICBAc3lzdGVtCisgICovCit0
eXBlZGVmIHZvaWQgVV9DQUxMQ09OViBVTXR4SW5pdEZuIChjb25zdCB2b2lkICpjb250ZXh0LCBV
TVRYICAqbXV0ZXgsIFVFcnJvckNvZGUqIHN0YXR1cyk7CisKKworLyoqCisgICogIEZ1bmN0aW9u
IFBvaW50ZXIgdHlwZSBmb3IgYSB1c2VyIHN1cHBsaWVkIG11dGV4IGZ1bmN0aW9ucy4KKyAgKiAg
T25lIG9mIHRoZSAgdXNlci1zdXBwbGllZCBmdW5jdGlvbnMgd2l0aCB0aGlzIHNpZ25hdHVyZSB3
aWxsIGJlIGNhbGxlZCBieSBJQ1UKKyAgKiAgd2hlbmV2ZXIgSUNVIG5lZWRzIHRvIGxvY2ssIHVu
bG9jaywgb3IgZGVzdHJveSBhIG11dGV4LgorICAqICBAcGFyYW0gY29udGV4dCB1c2VyIHN1cHBs
aWVkIHZhbHVlLCBvYnRhaW5lZCBmcm9tIGZyb20gdV9zZXRNdXRleEZ1bmN0aW9ucygpLgorICAq
ICBAcGFyYW0gbXV0ZXggICBzcGVjaWZ5IHRoZSBtdXRleCBvbiB3aGljaCB0byBvcGVyYXRlLgor
ICAqICBAZGVwcmVjYXRlZCBJQ1UgNTIuIFRoaXMgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyIHN1cHBv
cnRlZC4KKyAgKiAgQHN5c3RlbQorICAqLwordHlwZWRlZiB2b2lkIFVfQ0FMTENPTlYgVU10eEZu
ICAgKGNvbnN0IHZvaWQgKmNvbnRleHQsIFVNVFggICptdXRleCk7CisKKworLyoqCisgICogIFNl
dCB0aGUgZnVuY3Rpb25zIHRoYXQgSUNVIHdpbGwgdXNlIGZvciBtdXRleCBvcGVyYXRpb25zCisg
ICogIFVzZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIG9wdGlvbmFsOyBieSBkZWZhdWx0ICh3aXRob3V0
IHRoaXMgZnVuY3Rpb24pLCBJQ1Ugd2lsbAorICAqICBkaXJlY3RseSBhY2Nlc3Mgc3lzdGVtIGZ1
bmN0aW9ucyBmb3IgbXV0ZXggb3BlcmF0aW9ucworICAqICBUaGlzIGZ1bmN0aW9uIGNhbiBvbmx5
IGJlIHVzZWQgd2hlbiBJQ1UgaXMgaW4gYW4gaW5pdGlhbCwgdW51c2VkIHN0YXRlLCBiZWZvcmUK
KyAgKiAgdV9pbml0KCkgaGFzIGJlZW4gY2FsbGVkLgorICAqICBAcGFyYW0gY29udGV4dCBUaGlz
IHBvaW50ZXIgdmFsdWUgd2lsbCBiZSBzYXZlZCwgYW5kIHRoZW4gKGxhdGVyKSBwYXNzZWQgYXMK
KyAgKiAgICAgICAgICAgICAgICAgYSBwYXJhbWV0ZXIgdG8gdGhlIHVzZXItc3VwcGxpZWQgbXV0
ZXggZnVuY3Rpb25zIGVhY2ggdGltZSB0aGV5CisgICogICAgICAgICAgICAgICAgIGFyZSBjYWxs
ZWQuIAorICAqICBAcGFyYW0gaW5pdCAgICBQb2ludGVyIHRvIGEgbXV0ZXggaW5pdGlhbGl6YXRp
b24gZnVuY3Rpb24uICBNdXN0IGJlIG5vbi1udWxsLgorICAqICBAcGFyYW0gZGVzdHJveSBQb2lu
dGVyIHRvIHRoZSBtdXRleCBkZXN0cm95IGZ1bmN0aW9uLiAgTXVzdCBiZSBub24tbnVsbC4KKyAg
KiAgQHBhcmFtIGxvY2sgICAgcG9pbnRlciB0byB0aGUgbXV0ZXggbG9jayBmdW5jdGlvbi4gIE11
c3QgYmUgbm9uLW51bGwuCisgICogIEBwYXJhbSB1bmxvY2sgIFBvaW50ZXIgdG8gdGhlIG11dGV4
IHVubG9jayBmdW5jdGlvbi4gIE11c3QgYmUgbm9uLW51bGwuCisgICogIEBwYXJhbSBzdGF0dXMg
IFJlY2VpdmVzIGVycm9yIHZhbHVlcy4KKyAgKiAgQGRlcHJlY2F0ZWQgSUNVIDUyLiBUaGlzIGZ1
bmN0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICogIEBzeXN0ZW0KKyAgKi8gIAorVV9E
RVBSRUNBVEVEIHZvaWQgVV9FWFBPUlQyIAordV9zZXRNdXRleEZ1bmN0aW9ucyhjb25zdCB2b2lk
ICpjb250ZXh0LCBVTXR4SW5pdEZuICppbml0LCBVTXR4Rm4gKmRlc3Ryb3ksIFVNdHhGbiAqbG9j
aywgVU10eEZuICp1bmxvY2ssCisgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnN0YXR1
cyk7CisKKworLyoqCisgICogIFBvaW50ZXIgdHlwZSBmb3IgYSB1c2VyIHN1cHBsaWVkIGF0b21p
YyBpbmNyZW1lbnQgb3IgZGVjcmVtZW50IGZ1bmN0aW9uLgorICAqICBAcGFyYW0gY29udGV4dCB1
c2VyIHN1cHBsaWVkIHZhbHVlLCBvYnRhaW5lZCBmcm9tIGZyb20gdV9zZXRBdG9taWNJbmNEZWNG
dW5jdGlvbnMoKS4KKyAgKiAgQHBhcmFtIHAgICBQb2ludGVyIHRvIGEgMzIgYml0IGludCB0byBi
ZSBpbmNyZW1lbnRlZCBvciBkZWNyZW1lbnRlZAorICAqICBAcmV0dXJuICAgIFRoZSB2YWx1ZSBv
ZiB0aGUgdmFyaWFibGUgYWZ0ZXIgdGhlIGluYyBvciBkZWMgb3BlcmF0aW9uLgorICAqICBAZGVw
cmVjYXRlZCBJQ1UgNTIuIFRoaXMgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KKyAg
KiAgQHN5c3RlbQorICAqLwordHlwZWRlZiBpbnQzMl90IFVfQ0FMTENPTlYgVU10eEF0b21pY0Zu
KGNvbnN0IHZvaWQgKmNvbnRleHQsIGludDMyX3QgKnApOworCisvKioKKyAqICBTZXQgdGhlIGZ1
bmN0aW9ucyB0aGF0IElDVSB3aWxsIHVzZSBmb3IgYXRvbWljIGluY3JlbWVudCBhbmQgZGVjcmVt
ZW50IG9mIGludDMyX3QgdmFsdWVzLgorICogIFVzZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIG9wdGlv
bmFsOyBieSBkZWZhdWx0ICh3aXRob3V0IHRoaXMgZnVuY3Rpb24pLCBJQ1Ugd2lsbAorICogIHVz
ZSBpdHMgb3duIGludGVybmFsIGltcGxlbWVudGF0aW9uIG9mIGF0b21pYyBpbmNyZW1lbnQvZGVj
cmVtZW50LgorICogIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgdXNlZCB3aGVuIElDVSBpcyBp
biBhbiBpbml0aWFsLCB1bnVzZWQgc3RhdGUsIGJlZm9yZQorICogIHVfaW5pdCgpIGhhcyBiZWVu
IGNhbGxlZC4KKyAqICBAcGFyYW0gY29udGV4dCBUaGlzIHBvaW50ZXIgdmFsdWUgd2lsbCBiZSBz
YXZlZCwgYW5kIHRoZW4gKGxhdGVyKSBwYXNzZWQgYXMKKyAqICAgICAgICAgICAgICAgICBhIHBh
cmFtZXRlciB0byB0aGUgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgZnVuY3Rpb25zIGVhY2ggdGlt
ZSB0aGV5CisgKiAgICAgICAgICAgICAgICAgYXJlIGNhbGxlZC4gIFRoaXMgZnVuY3Rpb24gY2Fu
IG9ubHkgYmUgY2FsbGVkIAorICogIEBwYXJhbSBpbmMgICAgIFBvaW50ZXIgdG8gYSBmdW5jdGlv
biB0byBkbyBhbiBhdG9taWMgaW5jcmVtZW50IG9wZXJhdGlvbi4gIE11c3QgYmUgbm9uLW51bGwu
CisgKiAgQHBhcmFtIGRlYyAgICAgUG9pbnRlciB0byBhIGZ1bmN0aW9uIHRvIGRvIGFuIGF0b21p
YyBkZWNyZW1lbnQgb3BlcmF0aW9uLiAgTXVzdCBiZSBub24tbnVsbC4KKyAqICBAcGFyYW0gc3Rh
dHVzICBSZWNlaXZlcyBlcnJvciB2YWx1ZXMuCisgKiAgQGRlcHJlY2F0ZWQgSUNVIDUyLiBUaGlz
IGZ1bmN0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgKiAgQHN5c3RlbQorICovICAKK1Vf
REVQUkVDQVRFRCB2b2lkIFVfRVhQT1JUMiAKK3Vfc2V0QXRvbWljSW5jRGVjRnVuY3Rpb25zKGNv
bnN0IHZvaWQgKmNvbnRleHQsIFVNdHhBdG9taWNGbiAqaW5jLCBVTXR4QXRvbWljRm4gKmRlYywK
KyAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworI2VuZGlmICAvKiBV
X0hJREVfREVQUkVDQVRFRF9BUEkgKi8KKyNlbmRpZiAgLyogVV9ISURFX1NZU1RFTV9BUEkgKi8K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VkYXRhLmggYi9T
b3VyY2UvV1RGL2ljdS91bmljb2RlL3VkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjllNDY2MzBkNTM5OGQ4
MjczOGQxZDYxZmZjNGQyYzkxNGU4YzY4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvdWRhdGEuaApAQCAtMCwwICsxLDQzMCBAQAorLyoKKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1
c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1ZGF0
YS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNl
ZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMTk5OW9jdDI1CisqICAg
Y3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisKKyNpZm5kZWYgX19VREFUQV9IX18K
KyNkZWZpbmUgX19VREFUQV9IX18KKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5j
bHVkZSAidW5pY29kZS9sb2NhbHBvaW50ZXIuaCIKKworVV9DREVDTF9CRUdJTgorCisvKioKKyAq
IFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IERhdGEgbG9hZGluZyBpbnRlcmZhY2UKKyAqCisgKiA8
aDI+SW5mb3JtYXRpb24gYWJvdXQgZGF0YSBsb2FkaW5nIGludGVyZmFjZTwvaDI+CisgKgorICog
VGhpcyBBUEkgaXMgdXNlZCB0byBmaW5kIGFuZCBlZmZpY2llbnRseSBsb2FkIGRhdGEgZm9yIElD
VSBhbmQgYXBwbGljYXRpb25zCisgKiB1c2luZyBJQ1UuIEl0IHByb3ZpZGVzIGFuIGFic3RyYWN0
IGludGVyZmFjZSB0aGF0IHNwZWNpZmllcyBhIGRhdGEgdHlwZSBhbmQKKyAqIG5hbWUgdG8gZmlu
ZCBhbmQgbG9hZCB0aGUgZGF0YS4gTm9ybWFsbHkgdGhpcyBBUEkgaXMgdXNlZCBieSBvdGhlciBJ
Q1UgQVBJcworICogdG8gbG9hZCByZXF1aXJlZCBkYXRhIG91dCBvZiB0aGUgSUNVIGRhdGEgbGli
cmFyeSwgYnV0IGl0IGNhbiBiZSB1c2VkIHRvCisgKiBsb2FkIGRhdGEgb3V0IG9mIG90aGVyIHBs
YWNlcy4KKyAqCisgKiBTZWUgdGhlIFVzZXIgR3VpZGUgRGF0YSBNYW5hZ2VtZW50IGNoYXB0ZXIu
CisgKi8KKyAKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorLyoqCisgKiBDaGFyYWN0ZXIg
dXNlZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZyb20gdHJlZSBuYW1lcyAKKyAqIEBpbnRl
cm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX1NFUEFSQVRPUiAnLScKKworLyoqCisg
KiBTdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZyb20gdHJlZSBuYW1lcyAK
KyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX1NFUEFSQVRPUl9TVFJJ
TkcgIi0iCisKKy8qKgorICogQ2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgcGFydHMgb2YgZW50
cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX0VOVFJZ
X1NFUF9DSEFSICcvJworCisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhcnRzIG9m
IGVudHJ5IG5hbWVzCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisjZGVmaW5lIFVfVFJFRV9F
TlRSWV9TRVBfU1RSSU5HICIvIgorCisvKioKKyAqIEFsaWFzIGZvciBzdGFuZGFyZCBJQ1UgZGF0
YSAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9JQ1VEQVRBX0FMSUFTICJJ
Q1VEQVRBIgorCisjZW5kaWYgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisvKioKKyAqIFVE
YXRhSW5mbyBjb250YWlucyB0aGUgcHJvcGVydGllcyBhYm91dCB0aGUgcmVxdWVzdGVkIGRhdGEu
CisgKiBUaGlzIGlzIG1ldGEgZGF0YS4KKyAqCisgKiA8cD5UaGlzIHN0cnVjdHVyZSBtYXkgZ3Jv
dyBpbiB0aGUgZnV0dXJlLCBpbmRpY2F0ZWQgYnkgdGhlCisgKiA8Y29kZT5zaXplPC9jb2RlPiBm
aWVsZC48L3A+CisgKgorICogPHA+SUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQs
IGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFRoZSBVRGF0YUluZm8gc3RydWN0IGJlZ2lu
cyA0IGJ5dGVzIGFmdGVyIHRoZSBzdGFydCBvZiB0aGUgZGF0YSBpdGVtLAorICogc28gaXQgaXMg
NC1hbGlnbmVkLgorICoKKyAqIDxwPlRoZSBwbGF0Zm9ybSBkYXRhIHByb3BlcnR5IGZpZWxkcyBo
ZWxwIGRldGVybWluZSBpZiBhIGRhdGEKKyAqIGZpbGUgY2FuIGJlIGVmZmljaWVudGx5IHVzZWQg
b24gYSBnaXZlbiBtYWNoaW5lLgorICogVGhlIHBhcnRpY3VsYXIgZmllbGRzIGFyZSBvZiBpbXBv
cnRhbmNlIG9ubHkgaWYgdGhlIGRhdGEKKyAqIGlzIGFmZmVjdGVkIGJ5IHRoZSBwcm9wZXJ0aWVz
IC0gaWYgdGhlcmUgaXMgaW50ZWdlciBkYXRhCisgKiB3aXRoIHdvcmQgc2l6ZXMgPiAxIGJ5dGUs
IGNoYXIqIHRleHQsIG9yIFVDaGFyKiB0ZXh0LjwvcD4KKyAqCisgKiA8cD5UaGUgaW1wbGVtZW50
YXRpb24gZm9yIHRoZSA8Y29kZT51ZGF0YV9vcGVuW0Nob2ljZV0oKTwvY29kZT4KKyAqIGZ1bmN0
aW9ucyBtYXkgcmVqZWN0IGRhdGEgYmFzZWQgb24gdGhlIHZhbHVlIGluIDxjb2RlPmlzQmlnRW5k
aWFuPC9jb2RlPi4KKyAqIE5vIG90aGVyIGZpZWxkIGlzIHVzZWQgYnkgdGhlIDxjb2RlPnVkYXRh
PC9jb2RlPiBBUEkgaW1wbGVtZW50YXRpb24uPC9wPgorICoKKyAqIDxwPlRoZSA8Y29kZT5kYXRh
Rm9ybWF0PC9jb2RlPiBtYXkgYmUgdXNlZCB0byBpZGVudGlmeQorICogdGhlIGtpbmQgb2YgZGF0
YSwgZS5nLiBhIGNvbnZlcnRlciB0YWJsZS48L3A+CisgKgorICogPHA+VGhlIDxjb2RlPmZvcm1h
dFZlcnNpb248L2NvZGU+IGZpZWxkIHNob3VsZCBiZSB1c2VkIHRvCisgKiBtYWtlIHN1cmUgdGhh
dCB0aGUgZm9ybWF0IGNhbiBiZSBpbnRlcnByZXRlZC4KKyAqIEl0IG1heSBiZSBhIGdvb2QgaWRl
YSB0byBjaGVjayBvbmx5IGZvciB0aGUgb25lIG9yIHR3byBoaWdoZXN0CisgKiBvZiB0aGUgdmVy
c2lvbiBlbGVtZW50cyB0byBhbGxvdyB0aGUgZGF0YSBtZW1vcnkgdG8KKyAqIGdldCBtb3JlIG9y
IHNvbWV3aGF0IHJlYXJyYW5nZWQgY29udGVudHMsIGZvciBhcyBsb25nCisgKiBhcyB0aGUgdXNp
bmcgY29kZSBjYW4gc3RpbGwgaW50ZXJwcmV0IHRoZSBvbGRlciBjb250ZW50cy48L3A+CisgKgor
ICogPHA+VGhlIDxjb2RlPmRhdGFWZXJzaW9uPC9jb2RlPiBmaWVsZCBpcyBpbnRlbmRlZCB0byBi
ZSBhCisgKiBjb21tb24gcGxhY2UgdG8gc3RvcmUgdGhlIHNvdXJjZSB2ZXJzaW9uIG9mIHRoZSBk
YXRhOworICogZm9yIGRhdGEgZnJvbSB0aGUgVW5pY29kZSBjaGFyYWN0ZXIgZGF0YWJhc2UsIHRo
aXMgY291bGQKKyAqIHJlZmxlY3QgdGhlIFVuaWNvZGUgdmVyc2lvbi48L3A+CisgKgorICogQHN0
YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICAvKiogc2l6ZW9mKFVEYXRh
SW5mbykKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWludDE2X3Qgc2l6ZTsKKwor
ICAgIC8qKiB1bnVzZWQsIHNldCB0byAwIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAg
IHVpbnQxNl90IHJlc2VydmVkV29yZDsKKworICAgIC8qIHBsYXRmb3JtIGRhdGEgcHJvcGVydGll
cyAqLworICAgIC8qKiAwIGZvciBsaXR0bGUtZW5kaWFuIG1hY2hpbmUsIDEgZm9yIGJpZy1lbmRp
YW4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWludDhfdCBpc0JpZ0VuZGlhbjsK
KworICAgIC8qKiBzZWUgVV9DSEFSU0VUX0ZBTUlMWSB2YWx1ZXMgaW4gdXR5cGVzLmggCisgICAg
ICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBjaGFyc2V0RmFtaWx5OworCisgICAg
LyoqIHNpemVvZihVQ2hhciksIG9uZSBvZiB7IDEsIDIsIDQgfSAKKyAgICAgKiAgQHN0YWJsZSBJ
Q1UgMi4wKi8KKyAgICB1aW50OF90IHNpemVvZlVDaGFyOworCisgICAgLyoqIHVudXNlZCwgc2V0
IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCByZXNlcnZlZEJ5
dGU7CisKKyAgICAvKiogZGF0YSBmb3JtYXQgaWRlbnRpZmllciAKKyAgICAgKiAgQHN0YWJsZSBJ
Q1UgMi4wKi8KKyAgICB1aW50OF90IGRhdGFGb3JtYXRbNF07CisKKyAgICAvKiogdmVyc2lvbnM6
IFswXSBtYWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBtaWNybyAKKyAgICAgKiAgQHN0YWJs
ZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGZvcm1hdFZlcnNpb25bNF07CisKKyAgICAvKiogdmVy
c2lvbnM6IFswXSBtYWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBtaWNybyAKKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGRhdGFWZXJzaW9uWzRdOworfSBVRGF0YUlu
Zm87CisKKy8qIEFQSSBmb3IgcmVhZGluZyBkYXRhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBGb3J3YXJkIGRlY2xhcmF0
aW9uIG9mIHRoZSBkYXRhIG1lbW9yeSB0eXBlLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5
cGVkZWYgc3RydWN0IFVEYXRhTWVtb3J5IFVEYXRhTWVtb3J5OworCisvKioKKyAqIENhbGxiYWNr
IGZ1bmN0aW9uIGZvciB1ZGF0YV9vcGVuQ2hvaWNlKCkuCisgKiBAcGFyYW0gY29udGV4dCBwYXJh
bWV0ZXIgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPi4KKyAqIEBw
YXJhbSB0eXBlIFRoZSB0eXBlIG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBpbnRvIDxjb2RlPnVkYXRh
X29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiAgICAgICAgICAgICBJdCBtYXkgYmUgPGNvZGU+TlVM
TDwvY29kZT4uCisgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgZGF0YSBhcyBwYXNzZWQg
aW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICogQHBhcmFtIHBJbmZvIEEg
cG9pbnRlciB0byB0aGUgPGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1Y3R1cmUKKyAqICAgICAg
ICAgICAgICBvZiBkYXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVkIGFuZCB3aWxsIGJlIHJldHVybmVk
CisgKiAgICAgICAgICAgICAgYnkgPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPiBpZiB0
aGlzIGZ1bmN0aW9uCisgKiAgICAgICAgICAgICAgcmV0dXJucyA8Y29kZT5UUlVFPC9jb2RlPi4K
KyAqIEByZXR1cm4gVFJVRSBpZiB0aGUgY3VycmVudCBkYXRhIG1lbW9yeSBpcyBhY2NlcHRhYmxl
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBVQm9vbCBVX0NBTExDT05WCitVRGF0
YU1lbW9yeUlzQWNjZXB0YWJsZSh2b2lkICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFVEYXRhSW5mbyAqcEluZm8pOworCisKKy8qKgorICogQ29udmVuaWVuY2Ug
ZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIHdvcmtzIHRoZSBzYW1lIGFzIDxjb2RlPnVkYXRh
X29wZW5DaG9pY2U8L2NvZGU+CisgKiBleGNlcHQgdGhhdCBhbnkgZGF0YSB0aGF0IG1hdGNoZXMg
dGhlIHR5cGUgYW5kIG5hbWUKKyAqIGlzIGFzc3VtZWQgdG8gYmUgYWNjZXB0YWJsZS4KKyAqIEBw
YXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0ZSBwYXRoIGFuZC9vciBhIGJhc2VuYW1lIGZv
ciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcgb2YgdGhlIGRhdGEgaW4gdGhlIGZpbGUgc3lz
dGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVMTDwvY29kZT4gZm9yIElDVSBkYXRhLgorICog
QHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgZGF0YSB0byBi
ZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVzb3VyY2UgYnVuZGxlcyBh
cmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAqICAgICAgICAgICAgIGNvbnZlcnNpb24gdGFi
bGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAgICAgICAgIFRoaXMgbWF5IGJlIDxjb2RlPk5V
TEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFtIG5hbWUgQSBzdHJpbmcgdGhhdCBzcGVjaWZp
ZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBBbiBJQ1UgVUVy
cm9yQ29kZSBwYXJhbWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICog
QHJldHVybiBBIHBvaW50ZXIgKGhhbmRsZSkgdG8gYSBkYXRhIG1lbW9yeSBvYmplY3QsIG9yIDxj
b2RlPk5VTEw8L2NvZGU+CisgKiAgICAgICAgIGlmIGFuIGVycm9yIG9jY3Vycy4gQ2FsbCA8Y29k
ZT51ZGF0YV9nZXRNZW1vcnkoKTwvY29kZT4KKyAqICAgICAgICAgdG8gZ2V0IGEgcG9pbnRlciB0
byB0aGUgYWN0dWFsIGRhdGEuCisgKgorICogQHNlZSB1ZGF0YV9vcGVuQ2hvaWNlCisgKiBAc3Rh
YmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgVURhdGFNZW1vcnkgKiBVX0VYUE9SVDIKK3VkYXRh
X29wZW4oY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFt
ZSwKKyAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogRGF0YSBs
b2FkaW5nIGZ1bmN0aW9uLgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGZpbmQgYW5kIGxv
YWQgZWZmaWNpZW50bHkgZGF0YSBmb3IKKyAqIElDVSBhbmQgYXBwbGljYXRpb25zIHVzaW5nIElD
VS4KKyAqIEl0IHByb3ZpZGVzIGFuIGFic3RyYWN0IGludGVyZmFjZSB0aGF0IGFsbG93cyB0byBz
cGVjaWZ5IGEgZGF0YQorICogdHlwZSBhbmQgbmFtZSB0byBmaW5kIGFuZCBsb2FkIHRoZSBkYXRh
LgorICoKKyAqIDxwPlRoZSBpbXBsZW1lbnRhdGlvbiBkZXBlbmRzIG9uIHBsYXRmb3JtIHByb3Bl
cnRpZXMgYW5kIHVzZXIgcHJlZmVyZW5jZXMKKyAqIGFuZCBtYXkgaW52b2x2ZSBsb2FkaW5nIHNo
YXJlZCBsaWJyYXJpZXMgKERMTHMpLCBtYXBwaW5nCisgKiBmaWxlcyBpbnRvIG1lbW9yeSwgb3Ig
Zm9wZW4oKS9mcmVhZCgpIGZpbGVzLgorICogSXQgbWF5IGFsc28gaW52b2x2ZSB1c2luZyBzdGF0
aWMgbWVtb3J5IG9yIGRhdGFiYXNlIHF1ZXJpZXMgZXRjLgorICogU2V2ZXJhbCBvciBhbGwgZGF0
YSBpdGVtcyBtYXkgYmUgY29tYmluZWQgaW50byBvbmUgZW50aXR5CisgKiAoRExMLCBtZW1vcnkt
bWFwcGFibGUgZmlsZSkuPC9wPgorICoKKyAqIDxwPlRoZSBkYXRhIGlzIGFsd2F5cyBwcmVjZWRl
ZCBieSBhIGhlYWRlciB0aGF0IGluY2x1ZGVzCisgKiBhIDxjb2RlPlVEYXRhSW5mbzwvY29kZT4g
c3RydWN0dXJlLgorICogVGhlIGNhbGxlcidzIDxjb2RlPmlzQWNjZXB0YWJsZSgpPC9jb2RlPiBm
dW5jdGlvbiBpcyBjYWxsZWQgdG8gbWFrZQorICogc3VyZSB0aGF0IHRoZSBkYXRhIGlzIHVzZWZ1
bC4gSXQgbWF5IGJlIGNhbGxlZCBzZXZlcmFsIHRpbWVzIGlmIGl0CisgKiByZWplY3RzIHRoZSBk
YXRhIGFuZCB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGxvY2F0aW9uIHdpdGggZGF0YQorICogbWF0
Y2hpbmcgdGhlIHR5cGUgYW5kIG5hbWUuPC9wPgorICoKKyAqIDxwPklmIDxjb2RlPnBhdGg9PU5V
TEw8L2NvZGU+LCB0aGVuIElDVSBkYXRhIGlzIGxvYWRlZC4KKyAqIE90aGVyd2lzZSwgaXQgaXMg
c2VwYXJhdGVkIGludG8gYSBiYXNlbmFtZSBhbmQgYSBiYXNlbmFtZS1sZXNzIGRpcmVjdG9yeSBz
dHJpbmcuCisgKiBUaGUgYmFzZW5hbWUgaXMgdXNlZCBhcyB0aGUgZGF0YSBwYWNrYWdlIG5hbWUs
IGFuZCB0aGUgZGlyZWN0b3J5IGlzCisgKiBsb2dpY2FsbHkgcHJlcGVuZGVkIHRvIHRoZSBJQ1Ug
ZGF0YSBkaXJlY3Rvcnkgc3RyaW5nLjwvcD4KKyAqCisgKiA8cD5Gb3IgZGV0YWlscyBhYm91dCBJ
Q1UgZGF0YSBsb2FkaW5nIHNlZSB0aGUgVXNlciBHdWlkZQorICogRGF0YSBNYW5hZ2VtZW50IGNo
YXB0ZXIuIChodHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9pY3VkYXRhLmh0bWwpPC9w
PgorICoKKyAqIEBwYXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0ZSBwYXRoIGFuZC9vciBh
IGJhc2VuYW1lIGZvciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcgb2YgdGhlIGRhdGEgaW4g
dGhlIGZpbGUgc3lzdGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVMTDwvY29kZT4gZm9yIElD
VSBkYXRhLgorICogQHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHR5cGUg
b2YgZGF0YSB0byBiZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVzb3Vy
Y2UgYnVuZGxlcyBhcmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAqICAgICAgICAgICAgIGNv
bnZlcnNpb24gdGFibGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAgICAgICAgIFRoaXMgbWF5
IGJlIDxjb2RlPk5VTEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFtIG5hbWUgQSBzdHJpbmcg
dGhhdCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBAcGFyYW0gaXNBY2NlcHRh
YmxlIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIHZlcmlmeSB0aGF0IGxvYWRlZCBkYXRhCisg
KiAgICAgICAgICAgICAgICAgICAgIGlzIHVzZWZ1bCBmb3IgdGhlIGNsaWVudCBjb2RlLiBJZiBp
dCByZXR1cm5zIEZBTFNFCisgKiAgICAgICAgICAgICAgICAgICAgIGZvciBhbGwgZGF0YSBpdGVt
cywgdGhlbiA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+CisgKiAgICAgICAgICAgICAg
ICAgICAgIHdpbGwgcmV0dXJuIHdpdGggYW4gZXJyb3IuCisgKiBAcGFyYW0gY29udGV4dCBBcmJp
dHJhcnkgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCBpbnRvIGlzQWNjZXB0YWJsZS4KKyAqIEBwYXJh
bSBwRXJyb3JDb2RlIEFuIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUg
PGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAoaGFuZGxlKSB0byBhIGRh
dGEgbWVtb3J5IG9iamVjdCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAqICAgICAgICAgaWYgYW4g
ZXJyb3Igb2NjdXJzLiBDYWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPgorICogICAg
ICAgICB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4KKyAqIEBzdGFibGUgSUNV
IDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRhdGFfb3BlbkNo
b2ljZShjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1l
LAorICAgICAgICAgICAgICAgICBVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSAqaXNBY2NlcHRhYmxl
LCB2b2lkICpjb250ZXh0LAorICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2Rl
KTsKKworLyoqCisgKiBDbG9zZSB0aGUgZGF0YSBtZW1vcnkuCisgKiBUaGlzIGZ1bmN0aW9uIG11
c3QgYmUgY2FsbGVkIHRvIGFsbG93IHRoZSBzeXN0ZW0gdG8KKyAqIHJlbGVhc2UgcmVzb3VyY2Vz
IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRhdGEgbWVtb3J5LgorICogQHBhcmFtIHBEYXRhIFRoZSBw
b2ludGVyIHRvIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1Vf
U1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9jbG9zZShVRGF0YU1lbW9yeSAqcERhdGEpOwor
CisjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisg
KiBcY2xhc3MgTG9jYWxVRGF0YU1lbW9yeVBvaW50ZXIKKyAqICJTbWFydCBwb2ludGVyIiBjbGFz
cywgY2xvc2VzIGEgVURhdGFNZW1vcnkgdmlhIHVkYXRhX2Nsb3NlKCkuCisgKiBGb3IgbW9zdCBt
ZXRob2RzIHNlZSB0aGUgTG9jYWxQb2ludGVyQmFzZSBiYXNlIGNsYXNzLgorICoKKyAqIEBzZWUg
TG9jYWxQb2ludGVyQmFzZQorICogQHNlZSBMb2NhbFBvaW50ZXIKKyAqIEBzdGFibGUgSUNVIDQu
NAorICovCitVX0RFRklORV9MT0NBTF9PUEVOX1BPSU5URVIoTG9jYWxVRGF0YU1lbW9yeVBvaW50
ZXIsIFVEYXRhTWVtb3J5LCB1ZGF0YV9jbG9zZSk7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5k
aWYKKworLyoqCisgKiBHZXQgdGhlIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhIGluc2lkZSB0
aGUgZGF0YSBtZW1vcnkuCisgKiBUaGUgZGF0YSBpcyByZWFkLW9ubHkuCisgKgorICogSUNVIGRh
dGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4K
KyAqCisgKiBAcGFyYW0gcERhdGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBtZW1vcnkgb2JqZWN0Cisg
KiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgY29uc3Qgdm9pZCAqIFVfRVhQT1JUMgor
dWRhdGFfZ2V0TWVtb3J5KFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKy8qKgorICogR2V0IHRoZSBp
bmZvcm1hdGlvbiBmcm9tIHRoZSBkYXRhIG1lbW9yeSBoZWFkZXIuCisgKiBUaGlzIGFsbG93cyB0
byBnZXQgYWNjZXNzIHRvIHRoZSBoZWFkZXIgY29udGFpbmluZworICogcGxhdGZvcm0gZGF0YSBw
cm9wZXJ0aWVzIGV0Yy4gd2hpY2ggaXMgbm90IHBhcnQgb2YKKyAqIHRoZSBkYXRhIGl0c2VsZiBh
bmQgY2FuIHRoZXJlZm9yZSBub3QgYmUgYWNjZXNzZWQKKyAqIHZpYSB0aGUgcG9pbnRlciB0aGF0
IDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPiByZXR1cm5zLgorICoKKyAqIEBwYXJhbSBw
RGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QKKyAqIEBwYXJhbSBwSW5mbyBw
b2ludGVyIHRvIGEgVURhdGFJbmZvIG9iamVjdDsKKyAqICAgICAgICAgICAgICBpdHMgPGNvZGU+
c2l6ZTwvY29kZT4gZmllbGQgbXVzdCBiZSBzZXQgY29ycmVjdGx5LAorICogICAgICAgICAgICAg
IHR5cGljYWxseSB0byA8Y29kZT5zaXplb2YoVURhdGFJbmZvKTwvY29kZT4uCisgKgorICogPGNv
ZGU+KnBJbmZvPC9jb2RlPiB3aWxsIGJlIGZpbGxlZCB3aXRoIHRoZSBVRGF0YUluZm8gc3RydWN0
dXJlCisgKiBpbiB0aGUgZGF0YSBtZW1vcnkgb2JqZWN0LiBJZiB0aGlzIHN0cnVjdHVyZSBpcyBz
bWFsbGVyIHRoYW4KKyAqIDxjb2RlPnBJbmZvLT5zaXplPC9jb2RlPiwgdGhlbiB0aGUgPGNvZGU+
c2l6ZTwvY29kZT4gd2lsbCBiZQorICogYWRqdXN0ZWQgYW5kIG9ubHkgcGFydCBvZiB0aGUgc3Ry
dWN0dXJlIHdpbGwgYmUgZmlsbGVkLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxF
IHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9nZXRJbmZvKFVEYXRhTWVtb3J5ICpwRGF0YSwgVURhdGFJ
bmZvICpwSW5mbyk7CisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgbm9ybWFs
IElDVSBkYXRhIGxvYWRpbmcgcHJvY2VzcyBhbmQKKyAqIGFsbG93cyB5b3UgdG8gZm9yY2UgSUNV
J3Mgc3lzdGVtIGRhdGEgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNpZmllZAorICogYXJlYSBp
biBtZW1vcnkuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQsIGFu
ZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9q
ZWN0Lm9yZy9pY3VkYXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlzIGRhdGEgaXMgdGhhdCBv
ZiB0aGUgaWN1IGNvbW1vbiBkYXRhIGZpbGUsIGFzIGlzCisgKiBnZW5lcmF0ZWQgYnkgdGhlIHBr
Z2RhdGEgdG9vbCB3aXRoIG1vZGU9Y29tbW9uIG9yIG1vZGU9ZGxsLgorICogWW91IGNhbiByZWFk
IGluIGEgd2hvbGUgY29tbW9uIG1vZGUgZmlsZSBhbmQgcGFzcyB0aGUgYWRkcmVzcyB0byB0aGUg
c3RhcnQgb2YgdGhlCisgKiBkYXRhLCBvciAod2l0aCB0aGUgYXBwcm9wcmlhdGUgbGluayBvcHRp
b25zKSBwYXNzIGluIHRoZSBwb2ludGVyIHRvCisgKiB0aGUgZGF0YSB0aGF0IGhhcyBiZWVuIGxv
YWRlZCBmcm9tIGEgZGxsIGJ5IHRoZSBvcGVyYXRpbmcgc3lzdGVtLAorICogYXMgc2hvd24gaW4g
dGhpcyBjb2RlOgorICoKKyAqICAgICAgIGV4dGVybiBjb25zdCBjaGFyIFVfSU1QT1JUIFVfSUNV
REFUQV9FTlRSWV9QT0lOVCBbXTsKKyAqICAgICAgICAvLyBVX0lDVURBVEFfRU5UUllfUE9JTlQg
aXMgc2FtZSBhcyBlbnRyeSBwb2ludCBzcGVjaWZpZWQgdG8gcGtnZGF0YSB0b29sCisgKiAgICAg
ICBVRXJyb3JDb2RlICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgKgorICogICAgICAgdWRhdGFf
c2V0Q29tbW9uRGF0YSgmVV9JQ1VEQVRBX0VOVFJZX1BPSU5ULCAmc3RhdHVzKTsKKyAqCisgKiBJ
dCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgZGVjbGFyYXRpb24gYmUgYXMgYWJvdmUuIFRoZSBlbnRy
eSBwb2ludAorICogbXVzdCBub3QgYmUgZGVjbGFyZWQgYXMgYW4gZXh0ZXJuIHZvaWQqLgorICoK
KyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQuNCwgaXQgaXMgcG9zc2libGUgdG8gc2V0IHNldmVyYWwg
ZGF0YSBwYWNrYWdlcywKKyAqIG9uZSBwZXIgY2FsbCB0byB0aGlzIGZ1bmN0aW9uLgorICogdWRh
dGFfb3BlbigpIHdpbGwgbG9vayBmb3IgZGF0YSBpbiB0aGUgbXVsdGlwbGUgZGF0YSBwYWNrYWdl
cyBpbiB0aGUgb3JkZXIKKyAqIGluIHdoaWNoIHRoZXkgd2VyZSBzZXQuCisgKiBUaGUgcG9zaXRp
b24gb2YgdGhlIGxpbmtlZC1pbiBvciBkZWZhdWx0LW5hbWUgSUNVIC5kYXRhIHBhY2thZ2UgaW4g
dGhlCisgKiBzZWFyY2ggbGlzdCBkZXBlbmRzIG9uIHdoZW4gdGhlIGZpcnN0IGRhdGEgaXRlbSBp
cyBsb2FkZWQgdGhhdCBpcyBub3QgY29udGFpbmVkCisgKiBpbiB0aGUgYWxyZWFkeSBleHBsaWNp
dGx5IHNldCBwYWNrYWdlcy4KKyAqIElmIGRhdGEgd2FzIGxvYWRlZCBpbXBsaWNpdGx5IGJlZm9y
ZSB0aGUgZmlyc3QgY2FsbCB0byB0aGlzIGZ1bmN0aW9uCisgKiAoZm9yIGV4YW1wbGUsIHZpYSBv
cGVuaW5nIGEgY29udmVydGVyLCBjb25zdHJ1Y3RpbmcgYSBVbmljb2RlU3RyaW5nCisgKiBmcm9t
IGRlZmF1bHQtY29kZXBhZ2UgZGF0YSwgdXNpbmcgZm9ybWF0dGluZyBvciBjb2xsYXRpb24gQVBJ
cywgZXRjLiksCisgKiB0aGVuIHRoZSBkZWZhdWx0IGRhdGEgd2lsbCBiZSBmaXJzdCBpbiB0aGUg
bGlzdC4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGhhcyBubyBlZmZlY3Qgb24gYXBwbGljYXRpb24g
KG5vbiBJQ1UpIGRhdGEuICBTZWUgdWRhdGFfc2V0QXBwRGF0YSgpCisgKiBmb3Igc2ltaWxhciBm
dW5jdGlvbmFsaXR5IGZvciBhcHBsaWNhdGlvbiBkYXRhLgorICoKKyAqIEBwYXJhbSBkYXRhIHBv
aW50ZXIgdG8gSUNVIGNvbW1vbiBkYXRhCisgKiBAcGFyYW0gZXJyIG91dGdvaW5nIGVycm9yIHN0
YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9VTlNVUFBPUlRFRF9FUlJPUjwv
Y29kZT4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgor
dWRhdGFfc2V0Q29tbW9uRGF0YShjb25zdCB2b2lkICpkYXRhLCBVRXJyb3JDb2RlICplcnIpOwor
CisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgbm9ybWFsIElDVSBkYXRhIGxv
YWRpbmcgcHJvY2VzcyBmb3IgYXBwbGljYXRpb24tc3BlY2lmaWMKKyAqIGRhdGEgYW5kIGFsbG93
cyB5b3UgdG8gZm9yY2UgdGhlIGl0IHRvIGNvbWUgb3V0IG9mIGEgdXNlci1zcGVjaWZpZWQKKyAq
IHBvaW50ZXIuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQsIGFu
ZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNlcmd1aWRlLmljdS1wcm9q
ZWN0Lm9yZy9pY3VkYXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlzIGRhdGEgaXMgdGhhdCBv
ZiB0aGUgaWN1IGNvbW1vbiBkYXRhIGZpbGUsIGxpa2UgJ2ljdWR0MjZsLmRhdCcKKyAqIG9yIHRo
ZSBjb3JyZXNwb25kaW5nIHNoYXJlZCBsaWJyYXJ5IChETEwpIGZpbGUuCisgKiBUaGUgYXBwbGlj
YXRpb24gbXVzdCByZWFkIGluIG9yIG90aGVyd2lzZSBjb25zdHJ1Y3QgYW4gaW1hZ2Ugb2YgdGhl
IGRhdGEgYW5kIHRoZW4KKyAqIHBhc3MgdGhlIGFkZHJlc3Mgb2YgaXQgdG8gdGhpcyBmdW5jdGlv
bi4KKyAqCisgKgorICogV2FybmluZzogIHNldEFwcERhdGEgd2lsbCBzZXQgYSBVX1VTSU5HX0RF
RkFVTFRfV0FSTklORyBjb2RlIGlmCisgKiAgICAgICAgICAgZGF0YSB3aXRoIHRoZSBzcGVjaWZl
ZCBwYXRoIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBvcGVuZWQsIG9yCisgKiAgICAgICAgICAgaWYg
c2V0QXBwRGF0YSB3aXRoIHRoZSBzYW1lIHBhdGggaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQuCisg
KiAgICAgICAgICAgQW55IHN1Y2ggY2FsbHMgdG8gc2V0QXBwRGF0YSB3aWxsIGhhdmUgbm8gZWZm
ZWN0LgorICoKKyAqCisgKiBAcGFyYW0gcGFja2FnZU5hbWUgdGhlIHBhY2thZ2UgbmFtZSBieSB3
aGljaCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWZlcgorICogICAgICAgICAgICAgdG8gKG9wZW4p
IHRoaXMgZGF0YQorICogQHBhcmFtIGRhdGEgcG9pbnRlciB0byB0aGUgZGF0YQorICogQHBhcmFt
IGVyciBvdXRnb2luZyBlcnJvciBzdGF0dXMgPGNvZGU+VV9VU0lOR19ERUZBVUxUX1dBUk5JTkcs
IFVfVU5TVVBQT1JURURfRVJST1I8L2NvZGU+CisgKiBAc2VlIHVkYXRhX3NldENvbW1vbkRhdGEK
KyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWRhdGFf
c2V0QXBwRGF0YShjb25zdCBjaGFyICpwYWNrYWdlTmFtZSwgY29uc3Qgdm9pZCAqZGF0YSwgVUVy
cm9yQ29kZSAqZXJyKTsKKworLyoqCisgKiBQb3NzaWJsZSBzZXR0aW5ncyBmb3IgdWRhdGFfc2V0
RmlsZUFjY2VzcygpCisgKiBAc2VlIHVkYXRhX3NldEZpbGVBY2Nlc3MKKyAqIEBzdGFibGUgSUNV
IDMuNAorICovCit0eXBlZGVmIGVudW0gVURhdGFGaWxlQWNjZXNzIHsKKyAgICAvKiogSUNVIGxv
b2tzIGZvciBkYXRhIGluIHNpbmdsZSBmaWxlcyBmaXJzdCwgdGhlbiBpbiBwYWNrYWdlcy4gKGRl
ZmF1bHQpIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX0ZJTEVTX0ZJUlNULAorICAgIC8q
KiBBbiBhbGlhcyBmb3IgdGhlIGRlZmF1bHQgYWNjZXNzIG1vZGUuIEBzdGFibGUgSUNVIDMuNCAq
LworICAgIFVEQVRBX0RFRkFVTFRfQUNDRVNTID0gVURBVEFfRklMRVNfRklSU1QsCisgICAgLyoq
IElDVSBvbmx5IGxvYWRzIGRhdGEgZnJvbSBwYWNrYWdlcywgbm90IGZyb20gc2luZ2xlIGZpbGVz
LiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9PTkxZX1BBQ0tBR0VTLAorICAgIC8qKiBJ
Q1UgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzIGZpcnN0LCBhbmQgb25seSBmcm9tIHNpbmdsZSBm
aWxlcworICAgICAgICBpZiB0aGUgZGF0YSBjYW5ub3QgYmUgZm91bmQgaW4gYSBwYWNrYWdlLiBA
c3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9QQUNLQUdFU19GSVJTVCwKKyAgICAvKiogSUNV
IGRvZXMgbm90IGFjY2VzcyB0aGUgZmlsZSBzeXN0ZW0gZm9yIGRhdGEgbG9hZGluZy4gQHN0YWJs
ZSBJQ1UgMy40ICovCisgICAgVURBVEFfTk9fRklMRVMsCisgICAgLyoqIE51bWJlciBvZiByZWFs
IFVEYXRhRmlsZUFjY2VzcyB2YWx1ZXMuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX0ZJ
TEVfQUNDRVNTX0NPVU5UCit9IFVEYXRhRmlsZUFjY2VzczsKKworLyoqCisgKiBUaGlzIGZ1bmN0
aW9uIG1heSBiZSBjYWxsZWQgdG8gY29udHJvbCBob3cgSUNVIGxvYWRzIGRhdGEuIEl0IG11c3Qg
YmUgY2FsbGVkCisgKiBiZWZvcmUgYW55IElDVSBkYXRhIGlzIGxvYWRlZCwgaW5jbHVkaW5nIGFw
cGxpY2F0aW9uIGRhdGEgbG9hZGVkIHdpdGggCisgKiB1cmVzL1Jlc291cmNlQnVuZGxlIG9yIHVk
YXRhIEFQSXMuIFRoaXMgZnVuY3Rpb24gaXMgbm90IG11bHRpdGhyZWFkIHNhZmUuICAKKyAqIFRo
ZSByZXN1bHRzIG9mIGNhbGxpbmcgaXQgd2hpbGUgb3RoZXIgdGhyZWFkcyBhcmUgbG9hZGluZyBk
YXRhIGFyZSB1bmRlZmluZWQuCisgKiBAcGFyYW0gYWNjZXNzIFRoZSB0eXBlIG9mIGZpbGUgYWNj
ZXNzIHRvIGJlIHVzZWQKKyAqIEBwYXJhbSBzdGF0dXMgRXJyb3IgY29kZS4KKyAqIEBzZWUgVURh
dGFGaWxlQWNjZXNzCisgKiBAc3RhYmxlIElDVSAzLjQgCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9F
WFBPUlQyCit1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEYXRhRmlsZUFjY2VzcyBhY2Nlc3MsIFVFcnJv
ckNvZGUgKnN0YXR1cyk7CisKK1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9pY3UvdW5pY29kZS91bWlzYy5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91bWlz
Yy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ4NTQ1MWZjNzY3YzA1ODM1ZjZjMTVmNTY2ZjM1NjJlMmQ0YWY4MzQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmgKQEAgLTAs
MCArMSw2MCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAw
NiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBv
dGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFt
ZTogIHVtaXNjLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDgg
KG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0
MTUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBVTUlT
Q19ICisjZGVmaW5lIFVNSVNDX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8q
KgorICogXGZpbGUKKyAqIFxicmllZiAgQyBBUEk6bWlzYyBkZWZpbml0aW9ucyAKKyAqCisgKiAg
VGhpcyBmaWxlIGNvbnRhaW5zIG1pc2NlbGxhbmVvdXMgZGVmaW5pdGlvbnMgZm9yIHRoZSBDIEFQ
SXMuIAorICovCisKK1VfQ0RFQ0xfQkVHSU4KKworLyoqIEEgc3RydWN0IHJlcHJlc2VudGluZyBh
IHJhbmdlIG9mIHRleHQgY29udGFpbmluZyBhIHNwZWNpZmljIGZpZWxkIAorICogIEBzdGFibGUg
SUNVIDIuMAorICovCit0eXBlZGVmIHN0cnVjdCBVRmllbGRQb3NpdGlvbiB7CisgIC8qKgorICAg
KiBUaGUgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBmaWVs
ZDsKKyAgLyoqCisgICAqIFRoZSBzdGFydCBvZiB0aGUgdGV4dCByYW5nZSBjb250YWluaW5nIGZp
ZWxkIAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgYmVnaW5JbmRleDsK
KyAgLyoqIAorICAgKiBUaGUgbGltaXQgb2YgdGhlIHRleHQgcmFuZ2UgY29udGFpbmluZyBmaWVs
ZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90IGVuZEluZGV4OworfSBV
RmllbGRQb3NpdGlvbjsKKworI2lmICFVQ09ORklHX05PX1NFUlZJQ0UKKy8qKgorICogT3BhcXVl
IHR5cGUgcmV0dXJuZWQgYnkgcmVnaXN0ZXJJbnN0YW5jZSwgcmVnaXN0ZXJGYWN0b3J5IGFuZCB1
bnJlZ2lzdGVyIGZvciBzZXJ2aWNlIHJlZ2lzdHJhdGlvbi4KKyAqIEBzdGFibGUgSUNVIDIuNgor
ICovCit0eXBlZGVmIGNvbnN0IHZvaWQqIFVSZWdpc3RyeUtleTsKKyNlbmRpZgorCitVX0NERUNM
X0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMDk5N2Q5ZWFjNDc5NTgxZmYx
ZmQ0NzY5Y2NjNGI1NDY2MmVmZDcxNC4uYWMwYTExMDNlNzUwYTFkMjUzY2NhYzQ1YmRkOGY0M2U0
ZjhkZDBjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTI3Miw2ICsyNzIsNDMgQEAgaWYgKE5P
VCBVU0VfU1lTVEVNX01BTExPQykKICAgICBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTIGJtYWxs
b2MpCiBlbmRpZiAoKQogCitzZXQoV1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVMKKyAgICB0ZXh0
L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorICAgIHRleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dAorICAgIHRleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0CisgICAgdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQKKyAgICB0
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKKyAgICB0
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKKyAg
ICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50
eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENK
Sy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKSy50eHQKKykKKworbWFjcm8oR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMgX2lucHV0IF9v
dXRwdXQpCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgJHtfb3V0cHV0
fQorICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQorICAgICAgICBERVBFTkRTICR7Q01B
S0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKKyAgICAgICAgQ09N
TUFORCBjYXQgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAke19pbnB1dH0gJHtDTUFLRV9DVVJSRU5UX1NP
VVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4
dCB8IHVuaWZkZWYgLVVBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQgLVVIQVZFX0VYVFJBX0lDVV9O
QU1FRF9TRVRTIHwgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZfRElSfS93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSA+ICR7X291dHB1dH0KKyAg
ICAgICAgVkVSQkFUSU0pCisgICAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMgJHtfb3V0cHV0fSkK
KyAgICBBRERfU09VUkNFX0RFUEVOREVOQ0lFUygke19pbnB1dH0gJHtfb3V0cHV0fSkKK2VuZG1h
Y3JvKCkKKworZm9yZWFjaCAoX2ZpbGUgJHtXVEZfQlJFQUtJTkdfUlVMRVNfU09VUkNFU30pCisg
ICAgZ2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfbmFtZSAke19maWxlfSBOQU1FX1dFKQorICAgIEdF
TkVSQVRFX0JSRUFLSU5HX1JVTEVTKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8ke19maWxl
fSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzLyR7X25hbWV9LmNwcCkK
K2VuZGZvcmVhY2ggKCkKKworYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklW
RURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAKKyAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQorICAgIERFUEVORFMgJHtDTUFL
RV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMudHh0CisgICAgQ09NTUFORCB1bmlmZGVmIC1VQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUIC1VSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyAke0NNQUtFX0NVUlJFTlRfU09VUkNF
X0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQg
fCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dURl9ESVJ9L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
R2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ID4gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJ
Un0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgVkVS
QkFUSU0pCitsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XVEZfRElS
fS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHApCitBRERfU09V
UkNFX0RFUEVOREVOQ0lFUygke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2lu
Z1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgJHtERVJJVkVEX1NPVVJDRVNf
V1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwKQor
CiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNw
cAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRkNjhiZWE4MGM4
ZjJjNzNhMWUwNWZlMWY5YmJhN2VjZDQ1NjNlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTAsMCArMSw4MSBAQAorIyBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworQlJFQUtJTkdfUlVMRVNfRklMRVMgPSBcCisgICAg
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuYnJrIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmJyayBcCisgICAgQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmJyaworCitCUkVBS0lOR19S
VUxFU19ERUZJTklUSU9OUyA9IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NENKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
Sy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pL
LmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25D
SksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxO
b25DSksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3RDSksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksuY3BwCisKK2lmZXEgKCQoc2hlbGwgJChDQykgLXN0ZD1nbnUrKzExIC14IGMrKyAt
RSAtUCAtZE0gJChTREtfRkxBR1MpICQoRlJBTUVXT1JLX0ZMQUdTKSAkKEhFQURFUl9GTEFHUykg
LUkgJChXVEYpIC1pbmNsdWRlICIkKFdURikvd3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8IGdy
ZXAgJyBXVEZfUExBVEZPUk1fSU9TICcgfCBjdXQgLWQnICcgLWYzKSwgMSkKKyAgICBXVEZfUExB
VEZPUk1fSU9TID0gMQorZWxzZQorICAgIFdURl9QTEFURk9STV9JT1MgPSAwCitlbmRpZgorCitp
ZmVxICgkKFdURl9QTEFURk9STV9JT1MpLCAxKQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9G
T1JfQ1VSU09SX01PVkVNRU5UID0gMAorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAwCitl
bHNlCisJQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQgPSAkKEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVCkKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMQor
ZW5kaWYKKworREVQRU5ERU5DSUVTID0gJChCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUykKKwor
aWZlcSAoJChPUyksTUFDT1MpCitERVBFTkRFTkNJRVMgKz0gJChCUkVBS0lOR19SVUxFU19GSUxF
UykKK2VuZGlmCisKK2FsbCA6ICQoREVQRU5ERU5DSUVTKQorCitCcmVha2luZ1J1bGVzLyUuYnJr
IDogQnJlYWtpbmdSdWxlcy8lLnBwCisJLi4vLi4vZ2VuYnJrIC1jIC1yICQ8IC1vICRACisKK0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCA6IEJyZWFraW5nUnVs
ZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwCisJcHl0aG9uICQoV1RGKS93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBjdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMgPCAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3IlLmNwcCA6IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwCisJcHl0aG9u
ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5n
cy5weSBsaW5lQnJlYWtJdGVyYXRvciQqUnVsZXMgPCAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMv
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1Jf
TU9WRU1FTlQpIC1ESEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05B
TUVEX1NFVFMpIC1vICRAICQ8CisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBw
IDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1
ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnR4
dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3Vl
LnR4dAorCS1jYXQgJD8gfCB1bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZF
X0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jNTkxMGJmYTVlMGU2MzNkYmQ3MjU5M2FjMWYzMzBhZjNlZTQzZGRk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKQEAgLTAsMCArMSwxNzQgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBydWxlIHNldCBpcyBiYXNlZCBv
biBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRwOi8vc291
cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3NvdXJj
ZS9kYXRhL2Jya2l0ci8+LgorIyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2lu
YWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0g
U3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOworIyAqIFJl
bW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHByZXBl
bmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQg
YSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdl
cyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHBy
ZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0
YWthcmEgdm9pY2VkIG1hcmtzLgorIyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0
b3Igc3ltYm9scy4KKworJENSICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENS
fV07CiskTEYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsKKyRDb250
cm9sID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9pY2VNYXJr
cyA9IFtcdUZGOUVcdUZGOUZdOyAjIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2Vk
IG1hcmtzCiskRXh0ZW5kICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSAk
Vm9pY2VNYXJrcyAtIFtcdTBFMzAgXHUwRTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07CiskU3Bh
Y2luZ01hcmsgPSBbW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRl
bmRdOworJEwgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsKKyRWICAg
ICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9IFtccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOworJExWICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IExWfV07CiskTFZUICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gTFZUfV07CiskSGluMCAgICA9IFtcdTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRl
ciBBLC4uLixIYQorJEhpblYgICAgPSBcdTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQor
JEhpbjEgICAgPSBbXHUwOTE1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhh
CiskQmVuMCAgICA9IFtcdTA5ODUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4uLixIYQor
JEJlblYgICAgPSBcdTA5Q0Q7ICMgQmVuZ2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAgPSBbXHUw
OTk1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9IFtcdTBB
MDUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0gXHUwQTRE
OyAjIEd1cm11a2hpIFNpZ24gVmlyYW1hCiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5XTsgIyBH
dXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5XTsgIyBH
dWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKKyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFyYXRpIFNp
Z24gVmlyYW1hCiskR3VqMSAgICA9IFtcdTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIg
S2EsLi4uLEhhCiskT3JpMCAgICA9IFtcdTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgQSwu
Li4sSGEKKyRPcmlWICAgID0gXHUwQjREOyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3JpMSAgICA9
IFtcdTBCMTUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAgICA9IFtc
dTBDMDUtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9IFx1MEM0
RDsgIyBUZWx1Z3UgU2lnbiBWaXJhbWEKKyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzldOyAjIFRl
bHVndSBMZXR0ZXIgS2EsLi4uLEhhCiskS2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsgIyBLYW5u
YWRhIExldHRlciBBLC4uLixIYQorJEthblYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBTaWduIFZp
cmFtYQorJEthbjEgICAgPSBbXHUwQzk1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4s
SGEKKyRNYWwwICAgID0gW1x1MEQwNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4s
SGEgCiskTWFsViAgICA9IFx1MEQ0RDsgIyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRNYWwxICAg
ID0gW1x1MEQxNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRSSSAgICAg
ID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycwor
JFpXSiAgICAgPSBcdTIwMEQ7ICMgWmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9IFtcdUZF
MEZdOyAjIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgorCisjaWYgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5
IFx1Mjc2NCBcVTAwMDFGMzA4IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAw
MUYzQ0MgXFUwMDAxRjNGMyBcVTAwMDFGNDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFG
NDZFLVxVMDAwMUY0NkYgXFUwMDAxRjQ3MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4
MS1cVTAwMDFGNDgyIFxVMDAwMUY0ODYtXFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUg
XFUwMDAxRjVFOCBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxV
MDAwMUY2NEUgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjZdOyAjIEVtb2ppIHRoYXQg
cGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFE
IFx1MjZGOSBcdTI3MEEtXHUyNzBEIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxV
MDAwMUYzQ0EgXFUwMDAxRjNDQiBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAw
MDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAx
RjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0
QUEgXFUwMDAxRjU3NSBcVTAwMDFGNTkwIFxVMDAwMUY1OTUgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1
LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1c
VTAwMDFGNkI2IFxVMDAwMUY2QzAgXFUwMDAxRjkxOF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6
cGF0cmljayBtb2RpZmllcnMKKworI2Vsc2UKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNzY0
IFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDhCXTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lw
YXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI3MEEt
XHUyNzBDIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcgXFUwMDAx
RjNDQSBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0
NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgx
LVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU5NiBc
VTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUw
MDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBh
dHJpY2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUw
MDAxRjNGRl07ICMgRml0enBhdHJpY2sgbW9kaWZpZXJzCishIWNoYWluOworCisjaWYgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIVJJTm9DaGFpbjsKKworI2VuZGlmCisKKyEhZm9y
d2FyZDsKKyRDUiAkTEY7CiskTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8ICRWKSAo
JFYgfCAkVCk7CisoJExWVCB8ICRUKSAkVDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAorCisgICAgJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsKKyAgICAkUkkgJFJJICRFeHRlbmQqOwor
ICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZd
ICRTcGFjaW5nTWFyazsKKworI2Vsc2UKKworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVu
ZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKyAgICAkUkkgJFJJIC8g
JFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMCAkSGluViAkSGluMTsgIyBEZXZh
bmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKKyRCZW4wICRCZW5WICRCZW4xOyAjIEJlbmdhbGkgVmly
YW1hIChmb3J3YXJkKQorJFBhbjAgJFBhblYgJFBhbjE7ICMgR3VybXVraGkgVmlyYW1hIChmb3J3
YXJkKQorJEd1ajAgJEd1alYgJEd1ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQorJE9y
aTAgJE9yaVYgJE9yaTE7ICMgT3JpeWEgVmlyYW1hIChmb3J3YXJkKQorJFRlbDAgJFRlbFYgJFRl
bDE7ICMgVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKKyRLYW4wICRLYW5WICRLYW4xOyAjIEthbm5h
ZGEgVmlyYW1hIChmb3J3YXJkKQorJE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFsYXlhbGFtIFZpcmFt
YSAoZm9yd2FyZCkKKyRaV0ogJEVtb2ppRm9yU2VxczsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpX
SiBzZXF1ZW5jZXMKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyAjIERvbnQg
YnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2Vs
ZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorISFyZXZlcnNlOworJExGICRDUjsKKygk
TCB8ICRWIHwgJExWIHwgJExWVCkgJEw7CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRUICgkTFZU
IHwgJFQpOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRXh0ZW5kKiAk
UkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRF
eHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250
cm9sICRDUiAkTEZdOworCisjZWxzZQorCisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENS
ICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFJJICRS
SSAvICRSSSAkUkk7CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4xICRIaW5WICRIaW4w
OyAjIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKKyRCZW4xICRCZW5WICRCZW4wOyAjIEJl
bmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKKyRQYW4xICRQYW5WICRQYW4wOyAjIEd1cm11a2hpIFZp
cmFtYSAoYmFja3dhcmQpCiskR3VqMSAkR3VqViAkR3VqMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJh
Y2t3YXJkKQorJE9yaTEgJE9yaVYgJE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkK
KyRUZWwxICRUZWxWICRUZWwwOyAjIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQorJEthbjEgJEth
blYgJEthbjA7ICMgS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQorJE1hbDEgJE1hbFYgJE1hbDA7
ICMgTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCiskRW1vamlGb3JTZXFzICRaV0o7ICMgRG9u
dCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVt
b2ppRm9yTW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5
IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKworI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgISFzYWZlX3JldmVyc2U7CisgICAgJFJJ
ICRSSSs7CisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAh
IXNhZmVfZm9yd2FyZDsKKyAgICAkUkkgJFJJKzsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlW
YXIgJEVtb2ppTW9kc10rOworCisjZWxzZQorCisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsg
JEVtb2ppRm9yTW9kczsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10r
OworICAgICEhc2FmZV9yZXZlcnNlOworICAgICEhc2FmZV9mb3J3YXJkOworCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFr
aW5nUnVsZVN0cmluZ3MucHkgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2Vu
ZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NTgxNWVjYjQwYzMwZTli
NTNhMWNlOTNjZjIxNzE2M2M1NTQ3MjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CkBAIC0w
LDAgKzEsOTYgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5cworaW1wb3J0IHJlCisKK2hlYWRlciA9ICIi
Ii8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLyIiIgorCisKK2RlZiBtYWluKGFyZ3Y9Tm9uZSk6CisgICAgaWYgbm90IGFyZ3Y6
CisgICAgICAgIGFyZ3YgPSBzeXMuYXJndgorICAgIHN5bWJvbE5hbWUgPSBhcmd2WzFdCisKKyAg
ICBwcmludChoZWFkZXIpCisgICAgcHJpbnQoIiIpCisgICAgcHJpbnQoIi8vIERPIE5PVCBFRElU
IFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIHNjcmlwdCIp
CisgICAgcHJpbnQoIi8vIFdURi93dGYvdGV4dC9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3Mu
cHkiKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCIjaW5jbHVkZSBcImNvbmZpZy5oXCIiKQor
ICAgIHByaW50KCIjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+IikKKyAgICBwcmludCgiIikK
KyAgICBwcmludCgibmFtZXNwYWNlIFdURiB7IikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgi
Y29uc3QgY2hhciogIiArIHN5bWJvbE5hbWUgKyAiID0gIikKKworICAgIGZvciBsIGluIHN5cy5z
dGRpbjoKKyAgICAgICAgbGluZSA9IGwucnN0cmlwKCkKKyAgICAgICAgaWYgcmUubWF0Y2goIl5c
cyokIiwgbGluZSk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsaWYgbGluZS5zdGFydHN3
aXRoKCIjICIpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgor
ICAgICAgICAgICAgcGFzcworICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyIpOgorICAg
ICAgICAgICAgcHJpbnQobGluZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1hdGNoID0g
cmUubWF0Y2goIl4oLiopOyggIyAuKik/JCIsIGxpbmUpCisgICAgICAgICAgICBpZiBtYXRjaDoK
KyAgICAgICAgICAgICAgICByZXN1bHQgPSAiXCIiICsgbWF0Y2guZ3JvdXAoMSkucmVwbGFjZSgi
XFwiLCAiXFxcXCIpICsgIjtcIiIKKyAgICAgICAgICAgICAgICBpZiBtYXRjaC5ncm91cCgyKToK
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIpWzM6
XQorICAgICAgICAgICAgICAgIHByaW50KHJlc3VsdCkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAgIHByaW50KCJ9IikKKwor
aWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvckVwaWxvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTg1ZDNjMWE2ZWUyMTc2
MmY2NGNhZDI5ZjdhY2VmNGIyOGEzZWFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0w
LDAgKzEsMzcwIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQUkg
PSBbOkxpbmVCcmVhayA9IEFtYmlndW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJl
dGljOl07CiskQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07Cisk
QkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBN
YW5kYXRvcnlfQnJlYWs6XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENC
ID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9
IENsb3NlX1B1bmN0dWF0aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJr
Ol07CiskQ1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxp
bmVCcmVhayA9IENhcnJpYWdlX1JldHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFt
YXRpb246XSAtICRFWF9TVUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBI
QVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJl
d19MZXR0ZXI6XTsKKworI2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6
XV07CisKKyNlbmRpZgorCiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpM
aW5lQnJlYWsgPSBIMjpdOworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpM
aW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElO
ID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGlu
ZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9
IEpMOl07CiskSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpU
Ol07CiskTEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsg
PSBOZXh0X0xpbmU6XTsKKyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENK
XSAkTlNfQUREXSAtICROU19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07Cisk
T1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVh
ayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQ
cmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlv
bjpdOworJFJJID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9
IENvbXBsZXhfQ29udGV4dDpdOworJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRT
UCA9IFs6TGluZUJyZWFrID0gU3BhY2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3lt
Ym9sczpdOworJFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5l
QnJlYWsgPSBVbmtub3duOl07CiskWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0og
PSBcdTIwMEQ7CiskRW1vamlWYXIgPSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0
IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBc
VTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUw
MDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAw
MUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFG
NUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0
RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNp
cGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5
IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjND
QSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAg
XFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxV
MDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAw
MDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAx
RjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2
QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNr
IG1vZGlmaWVycworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAx
RjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFE
IFx1MjcwQS1cdTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjND
NyBcVTAwMDFGM0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAg
XFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxV
MDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAw
MDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAx
RjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFr
ZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAx
RjNGQi1cVTAwMDFGM0ZGXTsKKyRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0Nv
bnRleHQ6XTsKKyRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07CiskQUxjbSA9ICRBTFBs
dXMgJENNKjsKKyRCQWNtID0gJEJBICRDTSo7CiskQkJjbSA9ICRCQiAkQ00qOworJEIyY20gPSAk
QjIgJENNKjsKKyRDTGNtID0gJENMICRDTSo7CiskQ1BjbSA9ICRDUCAkQ00qOworJEVYY20gPSAk
RVggJENNKjsKKyRHTGNtID0gJEdMICRDTSo7CiskSExjbSA9ICRITCAkQ00qOworJEhZY20gPSAk
SFkgJENNKjsKKyRIMmNtID0gJEgyICRDTSo7CiskSDNjbSA9ICRIMyAkQ00qOworJElEY20gPSAk
SUQgJENNKjsKKyRJTmNtID0gJElOICRDTSo7CiskSVNjbSA9ICRJUyAkQ00qOworJEpMY20gPSAk
SkwgJENNKjsKKyRKVmNtID0gJEpWICRDTSo7CiskSlRjbSA9ICRKVCAkQ00qOworJE5TY20gPSAk
TlMgJENNKjsKKyROVWNtID0gJE5VICRDTSo7CiskT1BjbSA9ICRPUCAkQ00qOworJFBPY20gPSAk
UE8gJENNKjsKKyRQUmNtID0gJFBSICRDTSo7CiskUVVjbSA9ICRRVSAkQ00qOworJFJJY20gPSAk
UkkgJENNKjsKKyRTWWNtID0gJFNZICRDTSo7CiskV0pjbSA9ICRXSiAkQ00qOworCishIWZvcndh
cmQ7CiskQ0FOX0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJENBTlRfQ00g
PSBbJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRBTF9GT0xMT1dfTk9DTSA9IFskQksg
JENSICRMRiAkTkwgJFpXICRTUF07CiskQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAk
SVMgJFNZICRXSiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOworJEFM
X0ZPTExPVyA9IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07CiskTEI0QnJlYWtzID0g
WyRCSyAkQ1IgJExGICROTF07CiskTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOwor
JExCOEJyZWFrcyA9IFskTEI0QnJlYWtzICRaV107CiskTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9u
QnJlYWtzXSAtIFskWlddXTsKKyRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQ
XV07CiskTEIxOEJyZWFrcyA9IFskTEI4QnJlYWtzICRTUF07CiskTEIyME5vbkJyZWFrcyA9IFsk
TEIxOE5vbkJyZWFrcyAtICRDQl07CiskQUxQbHVzICRDTSs7CiskQkEgJENNKzsKKyRCQiAkQ00r
OworJEIyICRDTSs7CiskQ0wgJENNKzsKKyRDUCAkQ00rOworJEVYICRDTSs7CiskR0wgJENNKzsK
KyRITCAkQ00rOworJEhZICRDTSs7CiskSDIgJENNKzsKKyRIMyAkQ00rOworJElEICRDTSs7Cisk
SU4gJENNKzsKKyRJUyAkQ00rOworJEpMICRDTSs7CiskSlYgJENNKzsKKyRKVCAkQ00rOworJE5T
ICRDTSs7CiskTlUgJENNKzsKKyRPUCAkQ00rOworJFBPICRDTSs7CiskUFIgJENNKzsKKyRRVSAk
Q00rOworJFJJICRDTSs7CiskU1kgJENNKzsKKyRXSiAkQ00rOworJENSICRMRiB7MTAwfTsKKyRM
QjROb25CcmVha3M/ICRMQjRCcmVha3MgezEwMH07CiskQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7
MTAwfTsKKyRDTSsgJExCNEJyZWFrcyB7MTAwfTsKKyRMQjROb25CcmVha3MgWyRTUCAkWlddOwor
JENBTl9DTSAkQ00qIFskU1AgJFpXXTsKKyRDTSsgWyRTUCAkWlddOworJEVtb2ppRm9yU2VxcyAk
RW1vamlWYXI/ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsKKyRDQU5fQ00gJENNKzsK
KyRDTSs7CiskQ0FOX0NNICRDTSogJFdKY207CiskTEI4Tm9uQnJlYWtzICRXSmNtOworJENNKyAk
V0pjbTsKKyRXSmNtICRDQU5UX0NNOworJFdKY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTl9D
TSAkQ00qOworJEdMY20gJENBTlRfQ007CitbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZ
XV0gJENNKiAkR0xjbTsKKyRDTSsgR0xjbTsKKyRMQjhOb25CcmVha3MgJENMOworJENBTl9DTSAk
Q00qICRDTDsKKyRDTSsgJENMOworJExCOE5vbkJyZWFrcyAkQ1A7CiskQ0FOX0NNICRDTSogJENQ
OworJENNKyAkQ1A7CiskTEI4Tm9uQnJlYWtzICRFWDsKKyRDQU5fQ00gJENNKiAkRVg7CiskQ00r
ICRFWDsKKyRMQjhOb25CcmVha3MgJElTOworJENBTl9DTSAkQ00qICRJUzsKKyRDTSsgJElTOwor
JExCOE5vbkJyZWFrcyAkU1k7CiskQ0FOX0NNICRDTSogJFNZOworJENNKyAkU1k7CiskT1BjbSAk
U1AqICRDQU5fQ00gJENNKjsKKyRPUGNtICRTUCogJENBTlRfQ007CiskT1BjbSAkU1ArICRDTSsg
JEFMX0ZPTExPVz87CiskUVVjbSAkU1AqICRPUGNtOworKCRDTGNtIHwgJENQY20pICRTUCogJE5T
Y207CiskQjJjbSAkU1AqICRCMmNtOworJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsKKyRDTSsg
JFFVY207CiskUVVjbSAuPzsKKyRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7CiskTEIyME5vbkJy
ZWFrcyAkQ00qICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAKKyRCQmNtIFteJENCXTsKKyRCQmNt
ICRMQjIwTm9uQnJlYWtzICRDTSo7CiskSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsKKyRT
WWNtICRITGNtOworKCRBTGNtIHwgJEhMY20pICRJTmNtOworJENNKyAkSU5jbTsKKyRFWGNtICRJ
TmNtOworJElEY20gJElOY207CiskSU5jbSAkSU5jbTsKKyROVWNtICRJTmNtOworJElEY20gJFBP
Y207CiskQUxjbSAkTlVjbTsKKyRITGNtICROVWNtOworJENNKyAkTlVjbTsKKyROVWNtICRBTGNt
OworJE5VY20gJEhMY207CiskUFJjbSAkSURjbTsKKyRQUmNtICgkQUxjbSB8ICRITGNtKTsKKyRQ
T2NtICgkQUxjbSB8ICRITGNtKTsKKygkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAk
TlVjbSAoJE5VY20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAk
UE9jbSk/OworJEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkSlZjbSB8
ICRIMmNtKSAoJEpWY20gfCAkSlRjbSk7CisoJEpUY20gfCAkSDNjbSkgJEpUY207CisoJEpMY20g
fCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207CisoJEpMY20gfCAkSlZjbSB8
ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJFBPY207CiskUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRK
VGNtIHwgJEgyY20gfCAkSDNjbSk7CisoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOwor
JENNKyAoJEFMY20gfCAkSExjbSk7CiskSVNjbSAoJEFMY20gfCAkSExjbSk7CisoJEFMY20gfCAk
SExjbSB8ICROVWNtKSAkT1BjbTsKKyRDTSsgJE9QY207CiskQ1BjbSAoJEFMY20gfCAkSExjbSB8
ICROVWNtKTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJY20gJFJJ
Y207CisKKyNlbmRpZgorCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsKKwor
ISFyZXZlcnNlOworJENNKyAkQUxQbHVzOworJENNKyAkQkE7CiskQ00rICRCQjsKKyRDTSsgJEIy
OworJENNKyAkQ0w7CiskQ00rICRDUDsKKyRDTSsgJEVYOworJENNKyAkR0w7CiskQ00rICRITDsK
KyRDTSsgJEhZOworJENNKyAkSDI7CiskQ00rICRIMzsKKyRDTSsgJElEOworJENNKyAkSU47Cisk
Q00rICRJUzsKKyRDTSsgJEpMOworJENNKyAkSlY7CiskQ00rICRKVDsKKyRDTSsgJE5TOworJENN
KyAkTlU7CiskQ00rICRPUDsKKyRDTSsgJFBPOworJENNKyAkUFI7CiskQ00rICRRVTsKKworI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKyAkUkk7CisKKyNlbmRpZgorCisk
Q00rICRTWTsKKyRDTSsgJFdKOworJENNKzsKKyRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAk
TEYgJE5MICRaVyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00g
JFNQXSB8IFskQUwge2VvZn1dKSk7CitbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcg
JFNQIHtlb2Z9XTsKKyRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENNXTsKKyRMQjRCcmVha3Mg
JENNKyAkQ0FOX0NNOworJExGICRDUjsKK1skU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOwor
WyRTUCAkWlddICRDTSsgJENBTl9DTTsKKyRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAk
RW1vamlWYXI/ICRFbW9qaUZvclNlcXM7CiskQ00rICRDQU5fQ007CiskQ00qICRXSiAkQ00qICRD
QU5fQ007CiskQ00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOworJENBTlRfQ00gJENNKiAkV0o7
CiskQ00qICRDQU5fQ00gJENNKiAkV0o7CiskQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVsk
Q00gJFNQICRCQSAkSFldXTsKKyRDQU5UX0NNICRDTSogJEdMOworJENNKiAkQ0FOX0NNICRDTSog
JEdMOworJENMICRDTSsgJENBTl9DTTsKKyRDUCAkQ00rICRDQU5fQ007CiskRVggJENNKyAkQ0FO
X0NNOworJElTICRDTSsgJENBTl9DTTsKKyRTWSAkQ00rICRDQU5fQ007CiskQ0wgWyRMQjhOb25C
cmVha3MtJENNXTsKKyRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOworJEVYIFskTEI4Tm9uQnJlYWtz
LSRDTV07CiskSVMgWyRMQjhOb25CcmVha3MtJENNXTsKKyRTWSBbJExCOE5vbkJyZWFrcy0kQ01d
OworWyRDTCAkQ1AgJEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgCiskQ00qICRDQU5f
Q00gJFNQKiAkQ00qICRPUDsKKyRDQU5UX0NNICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XPyAk
Q00rICRTUCAkU1AqICRDTSogJE9QOworJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRP
UDsKKyRDTSogJEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskU1kgJENNICRTUCsg
JE9QOworJENNKiAkT1AgJFNQKiAkQ00qICRRVTsKKyRDTSogJE5TICRTUCogJENNKiAoJENMIHwg
JENQKTsKKyRDTSogJEIyICRTUCogJENNKiAkQjI7CiskQ00qICRRVSAkQ00qICRDQU5fQ007Cisk
Q00qICRRVSAkTEIxOE5vbkJyZWFrczsKKyRDTSogJENBTl9DTSAkQ00qICRRVTsKKyRDQU5UX0NN
ICRDTSogJFFVOworJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0k
Q01dOworJENNKiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICRC
QjsKK1teJENCXSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworJENNKiAkSEwgJENNKiAkU1k7
CiskQ00qICRJTiAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogJElOICRDTSogJEVYOworJENN
KiAkSU4gJENNKiAkSUQ7CiskQ00qICRJTiAkQ00qICRJTjsKKyRDTSogJElOICRDTSogJE5VOwor
JENNKiAkUE8gJENNKiAkSUQ7CiskQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSog
KCRBTFBsdXMgfCAkSEwpICRDTSogJE5VOworJENNKiAkSUQgJENNKiAkUFI7CiskQ00qICgkQUxQ
bHVzIHwgJEhMKSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOworKCRD
TSogKCRQUiB8ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAk
U1kpKSogJENNKiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/Owor
JENNKiAoJEgzIHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsKKyRDTSogKCRKVCB8ICRKVikg
JENNKiAoJEgyIHwgJEpWKTsKKyRDTSogJEpUICRDTSogKCRIMyB8ICRKVCk7CiskQ00qICRJTiAk
Q00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAkUE8gJENNKiAoJEgzIHwg
JEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsKKyRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRK
TCkgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsK
KyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJElTOworJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8
ICRITCB8ICROVSk7CiskQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsKKworI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKiAkUkkgJENNKiAkUkk7CisKKyNl
bmRpZgorCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsKKworISFzYWZlX2Zv
cndhcmQ7CitbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9u
YXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07
CiskZGljdGlvbmFyeSAkZGljdGlvbmFyeTsKKyAgICAKKyEhc2FmZV9yZXZlcnNlOworJENNKyBb
XiRDTSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07CiskQ00rICRTUCAvIC47CiskU1ArICRDTSog
JE9QOworJFNQKyAkQ00qICRRVTsKKyRTUCsgJENNKiAoJENMIHwgJENQKTsKKyRTUCsgJENNKiAk
QjI7CiskQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00q
ICROVTsKKygkQ0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7CiskZGljdGlvbmFyeSAk
ZGljdGlvbmFyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjg4
MzU1NjMxZTQzNzkyZDNmM2M5MjMzMzcyNzY2YWNkZWMxYjQyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9n
dWUudHh0CkBAIC0wLDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyEhY2hhaW47CishIUxCQ01Ob0NoYWluOworISFsb29rQWhlYWRIYXJkQnJlYWs7CisK
KyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkQ0ogPSBbOkxpbmVCcmVhaz1D
b25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOl07CisKKyNlbHNlCisKKyAgICAkQ0ogPSBbXHUz
MDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhF
XHUzMDk1XHUzMDk2XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3XHUzMEE5XHUzMEMzXHUzMEUzXHUz
MEU1XHUzMEU3XHUzMEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYwXHUzMUYxXHUzMUYyXHUzMUYz
XHUzMUY0XHUzMUY1XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUzMUZBXHUzMUZCXHUzMUZDXHUz
MUZEXHUzMUZFXHUzMUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZBXHVGRjZCXHVGRjZDXHVGRjZE
XHVGRjZFXHVGRjZGXHVGRjcwXTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzBiY2U1ZWU5ZTY3OTY5YmM4NmIwODc1MDY2MTU0ZjdmYzM5MzE2MQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisj
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhf
U1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7Cisk
TlNfU1VCID0gW1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7Cisk
SURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTAzZTUxMWViOTg0ZmNh
YTY0ODU0NGFjY2VlZjZlNzgxNTg4MDFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQK
QEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
JEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9IFtcdTAwMjFcdTAwM0ZcdUZGMDFc
dUZGMUZdOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NV
QiA9IFtcdTAwM0FcdTAwM0JdOworJE5TX1NVQiA9IFtcdTIwM0NcdTIwNDdcdTIwNDhcdTIwNDlc
dTMwMDVcdTMwMUNcdTMwM0JcdTMwOURcdTMwOUVcdTMwQTBcdTMwRkJcdTMwRkRcdTMwRkVcdUZG
MUFcdUZGMUJcdUZGNjVdOworJFBPX1NVQiA9IFtcdTAwMjVcdTAwQTJcdTAwQjBcdTIwMzBcdTIw
MzJcdTIwMzNcdTIxMDNcdUZGMDVcdUZGRTBdOworJFBSX1NVQiA9IFtcdTAwMjRcdTAwQTNcdTAw
QTVcdTIwQUNcdTIxMTZcdUZGMDRcdUZGRTFcdUZGRTVdOworJElEX0FERCA9IFskQ0ogJEJBX1NV
QiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07CiskTlNf
QUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZmOGU4ZTFiNWI2NWJjNjM0M2I1MDEyZDhmOTlkODQ0YTQwNGFkZGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7
CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gJyc7
CiskTlNfU1VCID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBGRFx1MzBGRV07CiskUE9f
U1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJd
OworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0IGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ2ZWFiNjk0OTg2ZWY4MmQ5YWI5NWZiMTliNDM1MmI2NjJkMjYzZGIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vbkNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NV
QiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBP
X1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pd
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMw
YmNlNWVlOWU2Nzk2OWJjODZiMDg3NTA2NjE1NGY3ZmMzOTMxNjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbENKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOwor
JElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtc
dTMwMUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFsk
Q0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9u
Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDk0NTgyY2NlOWZkNGQwN2Q5
ODdlMzk5ZWM5NzUyMjczYjRkYmU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0
CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAn
JzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIg
PSAnJzsKKyRJRF9BREQgPSBbJENKXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5NDk4NmVmODJkOWFiOTVm
YjE5YjQzNTJiNjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CkBAIC0w
LDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
IyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9T
VUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJ
U19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsK
KyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5NDk4NmVmODJkOWFiOTVm
YjE5YjQzNTJiNjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CkBA
IC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRC
QV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsK
KyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAn
JzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvY21lbW9yeS5oIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9jbWVtb3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE4MmI1
YWE3ZDE2NjkzMDA2OWQ1MjQyM2M3YTM3M2U3MmNlYjUyNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvY21lbW9yeS5oCkBAIC0wLDAg
KzEsNjAwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChD
KSAxOTk3LTIwMTUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3Jh
dGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorKgorKiBGaWxlIENNRU1PUlkuSAorKgorKiAgQ29udGFpbnMgc3RkbGliLmgvc3Ry
aW5nLmggbWVtb3J5IGZ1bmN0aW9ucworKgorKiBAYXV0aG9yICAgICAgIEJlcnRyYW5kIEEuIERh
bWliYQorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1l
ICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDYvMjAvOTggICAgIEJlcnRyYW5kICAgIENyZWF0ZWQu
CisqICAwNS8wMy85OSAgICAgc3RlcGhlbiAgICAgQ2hhbmdlZCBmcm9tIGZ1bmN0aW9ucyB0byBt
YWNyb3MuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgQ01FTU9SWV9I
CisjZGVmaW5lIENNRU1PUllfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworI2lu
Y2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgInVuaWNvZGUv
bG9jYWxwb2ludGVyLmgiCisKKyNpZiBVX0RFQlVHICYmIGRlZmluZWQoVVBSVl9NQUxMT0NfQ09V
TlQpCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRpZgorCisjaWYgVV9ERUJVRworCisvKgorICog
VGhlIEMrKyBzdGFuZGFyZCByZXF1aXJlcyB0aGF0IHRoZSBzb3VyY2UgcG9pbnRlciBmb3IgbWVt
Y3B5KCkgJiBtZW1tb3ZlKCkKKyAqIGlzIHZhbGlkLCBub3QgTlVMTCwgYW5kIG5vdCBhdCB0aGUg
ZW5kIG9mIGFuIGFsbG9jYXRlZCBtZW1vcnkgYmxvY2suCisgKiBJbiBkZWJ1ZyBtb2RlLCB3ZSBy
ZWFkIG9uZSBieXRlIGZyb20gdGhlIHNvdXJjZSBwb2ludCB0byB2ZXJpZnkgdGhhdCBpdCdzCisg
KiBhIHZhbGlkLCByZWFkYWJsZSBwb2ludGVyLgorICovCisKK1VfQ0FQSSB2b2lkIHVwcnZfY2hl
Y2tWYWxpZE1lbW9yeShjb25zdCB2b2lkICpwLCBzaXplX3Qgbik7CisKKyNkZWZpbmUgdXBydl9t
ZW1jcHkoZHN0LCBzcmMsIHNpemUpICggXAorICAgIHVwcnZfY2hlY2tWYWxpZE1lbW9yeShzcmMs
IDEpLCBcCisgICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIG1lbWNweShkc3QsIHNyYywgc2l6
ZSkpCisjZGVmaW5lIHVwcnZfbWVtbW92ZShkc3QsIHNyYywgc2l6ZSkgKCBcCisgICAgdXBydl9j
aGVja1ZhbGlkTWVtb3J5KHNyYywgMSksIFwKKyAgICBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ug
bWVtbW92ZShkc3QsIHNyYywgc2l6ZSkpCisKKyNlbHNlCisKKyNkZWZpbmUgdXBydl9tZW1jcHko
ZHN0LCBzcmMsIHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBtZW1jcHkoZHN0LCBzcmMs
IHNpemUpCisjZGVmaW5lIHVwcnZfbWVtbW92ZShkc3QsIHNyYywgc2l6ZSkgVV9TVEFOREFSRF9D
UFBfTkFNRVNQQUNFIG1lbW1vdmUoZHN0LCBzcmMsIHNpemUpCisKKyNlbmRpZiAgLyogVV9ERUJV
RyAqLworCisvKioKKyAqIFxkZWYgVVBSVl9MRU5HVEhPRgorICogQ29udmVuaWVuY2UgbWFjcm8g
dG8gZGV0ZXJtaW5lIHRoZSBsZW5ndGggb2YgYSBmaXhlZCBhcnJheSBhdCBjb21waWxlLXRpbWUu
CisgKiBAcGFyYW0gYXJyYXkgQSBmaXhlZCBsZW5ndGggYXJyYXkKKyAqIEByZXR1cm4gVGhlIGxl
bmd0aCBvZiB0aGUgYXJyYXksIGluIGVsZW1lbnRzCisgKiBAaW50ZXJuYWwKKyAqLworI2RlZmlu
ZSBVUFJWX0xFTkdUSE9GKGFycmF5KSAoaW50MzJfdCkoc2l6ZW9mKGFycmF5KS9zaXplb2YoKGFy
cmF5KVswXSkpCisjZGVmaW5lIHVwcnZfbWVtc2V0KGJ1ZmZlciwgbWFyaywgc2l6ZSkgVV9TVEFO
REFSRF9DUFBfTkFNRVNQQUNFIG1lbXNldChidWZmZXIsIG1hcmssIHNpemUpCisjZGVmaW5lIHVw
cnZfbWVtY21wKGJ1ZmZlcjEsIGJ1ZmZlcjIsIHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFD
RSBtZW1jbXAoYnVmZmVyMSwgYnVmZmVyMixzaXplKQorCitVX0NBUEkgdm9pZCAqIFVfRVhQT1JU
MgordXBydl9tYWxsb2Moc2l6ZV90IHMpIFVfTUFMTE9DX0FUVFIgVV9BTExPQ19TSVpFX0FUVFIo
MSk7CisKK1VfQ0FQSSB2b2lkICogVV9FWFBPUlQyCit1cHJ2X3JlYWxsb2Modm9pZCAqbWVtLCBz
aXplX3Qgc2l6ZSkgVV9BTExPQ19TSVpFX0FUVFIoMik7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JU
MgordXBydl9mcmVlKHZvaWQgKm1lbSk7CisKK1VfQ0FQSSB2b2lkICogVV9FWFBPUlQyCit1cHJ2
X2NhbGxvYyhzaXplX3QgbnVtLCBzaXplX3Qgc2l6ZSkgVV9NQUxMT0NfQVRUUiBVX0FMTE9DX1NJ
WkVfQVRUUjIoMSwyKTsKKworLyoqCisgKiBUaGlzIHNob3VsZCBhbGlnbiB0aGUgbWVtb3J5IHBy
b3Blcmx5IG9uIGFueSBtYWNoaW5lLgorICogVGhpcyBpcyB2ZXJ5IHVzZWZ1bCBmb3IgdGhlIHNh
ZmVDbG9uZSBmdW5jdGlvbnMuCisgKi8KK3R5cGVkZWYgdW5pb24geworICAgIGxvbmcgICAgdDE7
CisgICAgZG91YmxlICB0MjsKKyAgICB2b2lkICAgKnQzOworfSBVQWxpZ25lZE1lbW9yeTsKKwor
LyoqCisgKiBHZXQgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2YgYSBwb2ludGVyIChhIG1l
bW9yeSBhZGRyZXNzKS4KKyAqIEZvciBleGFtcGxlLCB3aXRoIGEgbWFzayBvZiAzLCB0aGUgbWFj
cm8gZ2V0cyB0aGUgMiBsZWFzdCBzaWduaWZpY2FudCBiaXRzLAorICogd2hpY2ggd2lsbCBiZSAw
IGlmIHRoZSBwb2ludGVyIGlzIDMyLWJpdCAoNC1ieXRlKSBhbGlnbmVkLgorICoKKyAqIHB0cmRp
ZmZfdCBpcyB0aGUgbW9zdCBhcHByb3ByaWF0ZSBpbnRlZ2VyIHR5cGUgdG8gY2FzdCB0by4KKyAq
IHNpemVfdCBzaG91bGQgd29yayB0b28sIHNpbmNlIG9uIG1vc3QgKG9yIGFsbD8pIHBsYXRmb3Jt
cyBpdCBoYXMgdGhlIHNhbWUKKyAqIHdpZHRoIGFzIHB0cmRpZmZfdC4KKyAqLworI2RlZmluZSBV
X1BPSU5URVJfTUFTS19MU0IocHRyLCBtYXNrKSAoKChwdHJkaWZmX3QpKGNoYXIgKikocHRyKSkg
JiAobWFzaykpCisKKy8qKgorICogR2V0IHRoZSBhbW91bnQgb2YgYnl0ZXMgdGhhdCBhIHBvaW50
ZXIgaXMgb2ZmIGJ5IGZyb20KKyAqIHRoZSBwcmV2aW91cyBVQWxpZ25lZE1lbW9yeS1hbGlnbmVk
IHBvaW50ZXIuCisgKi8KKyNkZWZpbmUgVV9BTElHTk1FTlRfT0ZGU0VUKHB0cikgVV9QT0lOVEVS
X01BU0tfTFNCKHB0ciwgc2l6ZW9mKFVBbGlnbmVkTWVtb3J5KSAtIDEpCisKKy8qKgorICogR2V0
IHRoZSBhbW91bnQgb2YgYnl0ZXMgdG8gYWRkIHRvIGEgcG9pbnRlcgorICogaW4gb3JkZXIgdG8g
Z2V0IHRoZSBuZXh0IFVBbGlnbmVkTWVtb3J5LWFsaWduZWQgYWRkcmVzcy4KKyAqLworI2RlZmlu
ZSBVX0FMSUdOTUVOVF9PRkZTRVRfVVAocHRyKSAoc2l6ZW9mKFVBbGlnbmVkTWVtb3J5KSAtIFVf
QUxJR05NRU5UX09GRlNFVChwdHIpKQorCisvKioKKyAgKiAgSGVhcCBjbGVhbiB1cCBmdW5jdGlv
biwgY2FsbGVkIGZyb20gdV9jbGVhbnVwKCkKKyAgKiAgICBDbGVhcnMgYW55IHVzZXIgaGVhcCBm
dW5jdGlvbnMgZnJvbSB1X3NldE1lbW9yeUZ1bmN0aW9ucygpCisgICogICAgRG9lcyBOT1QgZGVh
bGxvY2F0ZSBhbnkgcmVtYWluaW5nIGFsbG9jYXRlZCBtZW1vcnkuCisgICovCitVX0NGVU5DIFVC
b29sIAorY21lbW9yeV9jbGVhbnVwKHZvaWQpOworCisvKioKKyAqIEEgZnVuY3Rpb24gY2FsbGVk
IGJ5IDxUVD51aGFzaF9yZW1vdmU8L1RUPiwKKyAqIDxUVD51aGFzaF9jbG9zZTwvVFQ+LCBvciA8
VFQ+dWhhc2hfcHV0PC9UVD4gdG8gZGVsZXRlCisgKiBhbiBleGlzdGluZyBrZXkgb3IgdmFsdWUu
CisgKiBAcGFyYW0gb2JqIEEga2V5IG9yIHZhbHVlIHN0b3JlZCBpbiBhIGhhc2h0YWJsZQorICog
QHNlZSB1cHJ2X2RlbGV0ZVVPYmplY3QKKyAqLwordHlwZWRlZiB2b2lkIFVfQ0FMTENPTlYgVU9i
amVjdERlbGV0ZXIodm9pZCogb2JqKTsKKworLyoqCisgKiBEZWxldGVyIGZvciBVT2JqZWN0IGlu
c3RhbmNlcy4KKyAqIFdvcmtzIGZvciBhbGwgc3ViY2xhc3NlcyBvZiBVT2JqZWN0IGJlY2F1c2Ug
aXQgaGFzIGEgdmlydHVhbCBkZXN0cnVjdG9yLgorICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIK
K3VwcnZfZGVsZXRlVU9iamVjdCh2b2lkICpvYmopOworCisjaWZkZWYgX19jcGx1c3BsdXMKKwor
VV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGRlbGV0
ZXMgbWVtb3J5IHZpYSB1cHJ2X2ZyZWUoKS4KKyAqIEZvciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBM
b2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKiBBZGRzIG9wZXJhdG9yW10gZm9yIGFycmF5
IGl0ZW0gYWNjZXNzLgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVyQmFzZQorICovCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgorY2xhc3MgTG9jYWxNZW1vcnkgOiBwdWJsaWMgTG9jYWxQb2ludGVyQmFz
ZTxUPiB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgdGFrZXMgb3duZXJz
aGlwLgorICAgICAqIEBwYXJhbSBwIHNpbXBsZSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFQgaXRl
bXMgdGhhdCBpcyBhZG9wdGVkCisgICAgICovCisgICAgZXhwbGljaXQgTG9jYWxNZW1vcnkoVCAq
cD1OVUxMKSA6IExvY2FsUG9pbnRlckJhc2U8VD4ocCkge30KKyAgICAvKioKKyAgICAgKiBEZXN0
cnVjdG9yIGRlbGV0ZXMgdGhlIG1lbW9yeSBpdCBvd25zLgorICAgICAqLworICAgIH5Mb2NhbE1l
bW9yeSgpIHsKKyAgICAgICAgdXBydl9mcmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7Cisg
ICAgfQorICAgIC8qKgorICAgICAqIERlbGV0ZXMgdGhlIGFycmF5IGl0IG93bnMsCisgICAgICog
YW5kIGFkb3B0cyAodGFrZXMgb3duZXJzaGlwIG9mKSB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAg
KiBAcGFyYW0gcCBzaW1wbGUgcG9pbnRlciB0byBhbiBhcnJheSBvZiBUIGl0ZW1zIHRoYXQgaXMg
YWRvcHRlZAorICAgICAqLworICAgIHZvaWQgYWRvcHRJbnN0ZWFkKFQgKnApIHsKKyAgICAgICAg
dXBydl9mcmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7CisgICAgICAgIExvY2FsUG9pbnRl
ckJhc2U8VD46OnB0cj1wOworICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJh
eSBpdCBvd25zLCBhbGxvY2F0ZXMgYSBuZXcgb25lIGFuZCByZXNldCBpdHMgYnl0ZXMgdG8gMC4K
KyAgICAgKiBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgcG9pbnRlci4KKyAgICAgKiBJZiB0aGUgYWxs
b2NhdGlvbiBmYWlscywgdGhlbiB0aGUgY3VycmVudCBhcnJheSBpcyB1bmNoYW5nZWQgYW5kCisg
ICAgICogdGhpcyBtZXRob2QgcmV0dXJucyBOVUxMLgorICAgICAqIEBwYXJhbSBuZXdDYXBhY2l0
eSBtdXN0IGJlID4wCisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIGFycmF5IHBvaW50ZXIs
IG9yIE5VTEwgaWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIFQg
KmFsbG9jYXRlSW5zdGVhZEFuZFJlc2V0KGludDMyX3QgbmV3Q2FwYWNpdHk9MSk7CisgICAgLyoq
CisgICAgICogRGVsZXRlcyB0aGUgYXJyYXkgaXQgb3ducyBhbmQgYWxsb2NhdGVzIGEgbmV3IG9u
ZSwgY29weWluZyBsZW5ndGggVCBpdGVtcy4KKyAgICAgKiBSZXR1cm5zIHRoZSBuZXcgYXJyYXkg
cG9pbnRlci4KKyAgICAgKiBJZiB0aGUgYWxsb2NhdGlvbiBmYWlscywgdGhlbiB0aGUgY3VycmVu
dCBhcnJheSBpcyB1bmNoYW5nZWQgYW5kCisgICAgICogdGhpcyBtZXRob2QgcmV0dXJucyBOVUxM
LgorICAgICAqIEBwYXJhbSBuZXdDYXBhY2l0eSBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxl
bmd0aCBudW1iZXIgb2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRv
IHRoZSBuZXcgb25lOworICAgICAqICAgICAgICAgICAgICAgbXVzdCBiZSBubyBtb3JlIHRoYW4g
dGhlIGNhcGFjaXR5IG9mIHRoZSBvbGQgYXJyYXksCisgICAgICogICAgICAgICAgICAgICB3aGlj
aCB0aGUgY2FsbGVyIG11c3QgdHJhY2sgYmVjYXVzZSB0aGUgTG9jYWxNZW1vcnkgZG9lcyBub3Qg
dHJhY2sgaXQKKyAgICAgKiBAcmV0dXJuIHRoZSBhbGxvY2F0ZWQgYXJyYXkgcG9pbnRlciwgb3Ig
TlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQKKyAgICAgKi8KKyAgICBpbmxpbmUgVCAqYWxs
b2NhdGVJbnN0ZWFkQW5kQ29weShpbnQzMl90IG5ld0NhcGFjaXR5PTEsIGludDMyX3QgbGVuZ3Ro
PTApOworICAgIC8qKgorICAgICAqIEFycmF5IGl0ZW0gYWNjZXNzICh3cml0YWJsZSkuCisgICAg
ICogTm8gaW5kZXggYm91bmRzIGNoZWNrLgorICAgICAqIEBwYXJhbSBpIGFycmF5IGluZGV4Cisg
ICAgICogQHJldHVybiByZWZlcmVuY2UgdG8gdGhlIGFycmF5IGl0ZW0KKyAgICAgKi8KKyAgICBU
ICZvcGVyYXRvcltdKHB0cmRpZmZfdCBpKSBjb25zdCB7IHJldHVybiBMb2NhbFBvaW50ZXJCYXNl
PFQ+OjpwdHJbaV07IH0KK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgVCAqTG9j
YWxNZW1vcnk8VD46OmFsbG9jYXRlSW5zdGVhZEFuZFJlc2V0KGludDMyX3QgbmV3Q2FwYWNpdHkp
IHsKKyAgICBpZihuZXdDYXBhY2l0eT4wKSB7CisgICAgICAgIFQgKnA9KFQgKil1cHJ2X21hbGxv
YyhuZXdDYXBhY2l0eSpzaXplb2YoVCkpOworICAgICAgICBpZihwIT1OVUxMKSB7CisgICAgICAg
ICAgICB1cHJ2X21lbXNldChwLCAwLCBuZXdDYXBhY2l0eSpzaXplb2YoVCkpOworICAgICAgICAg
ICAgdXBydl9mcmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7CisgICAgICAgICAgICBMb2Nh
bFBvaW50ZXJCYXNlPFQ+OjpwdHI9cDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcDsKKyAg
ICB9IGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKwordGVtcGxhdGU8
dHlwZW5hbWUgVD4KK2lubGluZSBUICpMb2NhbE1lbW9yeTxUPjo6YWxsb2NhdGVJbnN0ZWFkQW5k
Q29weShpbnQzMl90IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aCkgeworICAgIGlmKG5ld0Nh
cGFjaXR5PjApIHsKKyAgICAgICAgVCAqcD0oVCAqKXVwcnZfbWFsbG9jKG5ld0NhcGFjaXR5KnNp
emVvZihUKSk7CisgICAgICAgIGlmKHAhPU5VTEwpIHsKKyAgICAgICAgICAgIGlmKGxlbmd0aD4w
KSB7CisgICAgICAgICAgICAgICAgaWYobGVuZ3RoPm5ld0NhcGFjaXR5KSB7CisgICAgICAgICAg
ICAgICAgICAgIGxlbmd0aD1uZXdDYXBhY2l0eTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgdXBydl9tZW1jcHkocCwgTG9jYWxQb2ludGVyQmFzZTxUPjo6cHRyLCBsZW5ndGgq
c2l6ZW9mKFQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHVwcnZfZnJlZShMb2NhbFBv
aW50ZXJCYXNlPFQ+OjpwdHIpOworICAgICAgICAgICAgTG9jYWxQb2ludGVyQmFzZTxUPjo6cHRy
PXA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHA7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
cmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKioKKyAqIFNpbXBsZSBhcnJheS9idWZmZXIgbWFu
YWdlbWVudCBjbGFzcyB1c2luZyB1cHJ2X21hbGxvYygpIGFuZCB1cHJ2X2ZyZWUoKS4KKyAqIFBy
b3ZpZGVzIGFuIGludGVybmFsIGFycmF5IHdpdGggZml4ZWQgY2FwYWNpdHkuIENhbiBhbGlhcyBh
bm90aGVyIGFycmF5CisgKiBvciBhbGxvY2F0ZSBvbmUuCisgKgorICogVGhlIGFycmF5IGFkZHJl
c3MgaXMgcHJvcGVybHkgYWxpZ25lZCBmb3IgdHlwZSBULiBJdCBtaWdodCBub3QgYmUgcHJvcGVy
bHkKKyAqIGFsaWduZWQgZm9yIHR5cGVzIGxhcmdlciB0aGFuIFQgKG9yIGxhcmdlciB0aGFuIHRo
ZSBsYXJnZXN0IHN1YnR5cGUgb2YgVCkuCisgKgorICogVW5saWtlIExvY2FsTWVtb3J5IGFuZCBM
b2NhbEFycmF5LCB0aGlzIGNsYXNzIG5ldmVyIGFkb3B0cworICogKHRha2VzIG93bmVyc2hpcCBv
ZikgYW5vdGhlciBhcnJheS4KKyAqLwordGVtcGxhdGU8dHlwZW5hbWUgVCwgaW50MzJfdCBzdGFj
a0NhcGFjaXR5PgorY2xhc3MgTWF5YmVTdGFja0FycmF5IHsKK3B1YmxpYzoKKyAgICAvKioKKyAg
ICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yIGluaXRpYWxpemVzIHdpdGggaW50ZXJuYWwgVFtzdGFj
a0NhcGFjaXR5XSBidWZmZXIuCisgICAgICovCisgICAgTWF5YmVTdGFja0FycmF5KCkgOiBwdHIo
c3RhY2tBcnJheSksIGNhcGFjaXR5KHN0YWNrQ2FwYWNpdHkpLCBuZWVkVG9SZWxlYXNlKEZBTFNF
KSB7fQorICAgIC8qKgorICAgICAqIERlc3RydWN0b3IgZGVsZXRlcyB0aGUgYXJyYXkgKGlmIG93
bmVkKS4KKyAgICAgKi8KKyAgICB+TWF5YmVTdGFja0FycmF5KCkgeyByZWxlYXNlQXJyYXkoKTsg
fQorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGFycmF5IGNhcGFjaXR5IChudW1iZXIgb2Yg
VCBpdGVtcykuCisgICAgICogQHJldHVybiBhcnJheSBjYXBhY2l0eQorICAgICAqLworICAgIGlu
dDMyX3QgZ2V0Q2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBjYXBhY2l0eTsgfQorICAgIC8qKgor
ICAgICAqIEFjY2VzcyB3aXRob3V0IG93bmVyc2hpcCBjaGFuZ2UuCisgICAgICogQHJldHVybiB0
aGUgYXJyYXkgcG9pbnRlcgorICAgICAqLworICAgIFQgKmdldEFsaWFzKCkgY29uc3QgeyByZXR1
cm4gcHRyOyB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYXJyYXkgbGltaXQuIFNpbXBs
ZSBjb252ZW5pZW5jZSBtZXRob2QuCisgICAgICogQHJldHVybiBnZXRBbGlhcygpK2dldENhcGFj
aXR5KCkKKyAgICAgKi8KKyAgICBUICpnZXRBcnJheUxpbWl0KCkgY29uc3QgeyByZXR1cm4gZ2V0
QWxpYXMoKStjYXBhY2l0eTsgfQorICAgIC8vIE5vICJvcGVyYXRvciBUICooKSBjb25zdCIgYmVj
YXVzZSB0aGF0IGNhbiBtYWtlCisgICAgLy8gZXhwcmVzc2lvbnMgbGlrZSBtYnNbaW5kZXhdIGFt
YmlndW91cyBmb3Igc29tZSBjb21waWxlcnMuCisgICAgLyoqCisgICAgICogQXJyYXkgaXRlbSBh
Y2Nlc3MgKGNvbnN0KS4KKyAgICAgKiBObyBpbmRleCBib3VuZHMgY2hlY2suCisgICAgICogQHBh
cmFtIGkgYXJyYXkgaW5kZXgKKyAgICAgKiBAcmV0dXJuIHJlZmVyZW5jZSB0byB0aGUgYXJyYXkg
aXRlbQorICAgICAqLworICAgIGNvbnN0IFQgJm9wZXJhdG9yW10ocHRyZGlmZl90IGkpIGNvbnN0
IHsgcmV0dXJuIHB0cltpXTsgfQorICAgIC8qKgorICAgICAqIEFycmF5IGl0ZW0gYWNjZXNzICh3
cml0YWJsZSkuCisgICAgICogTm8gaW5kZXggYm91bmRzIGNoZWNrLgorICAgICAqIEBwYXJhbSBp
IGFycmF5IGluZGV4CisgICAgICogQHJldHVybiByZWZlcmVuY2UgdG8gdGhlIGFycmF5IGl0ZW0K
KyAgICAgKi8KKyAgICBUICZvcGVyYXRvcltdKHB0cmRpZmZfdCBpKSB7IHJldHVybiBwdHJbaV07
IH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSAoaWYgb3duZWQpIGFuZCBhbGlh
c2VzIGFub3RoZXIgb25lLCBubyB0cmFuc2ZlciBvZiBvd25lcnNoaXAuCisgICAgICogSWYgdGhl
IGFyZ3VtZW50cyBhcmUgaWxsZWdhbCwgdGhlbiB0aGUgY3VycmVudCBhcnJheSBpcyB1bmNoYW5n
ZWQuCisgICAgICogQHBhcmFtIG90aGVyQXJyYXkgbXVzdCBub3QgYmUgTlVMTAorICAgICAqIEBw
YXJhbSBvdGhlckNhcGFjaXR5IG11c3QgYmUgPjAKKyAgICAgKi8KKyAgICB2b2lkIGFsaWFzSW5z
dGVhZChUICpvdGhlckFycmF5LCBpbnQzMl90IG90aGVyQ2FwYWNpdHkpIHsKKyAgICAgICAgaWYo
b3RoZXJBcnJheSE9TlVMTCAmJiBvdGhlckNhcGFjaXR5PjApIHsKKyAgICAgICAgICAgIHJlbGVh
c2VBcnJheSgpOworICAgICAgICAgICAgcHRyPW90aGVyQXJyYXk7CisgICAgICAgICAgICBjYXBh
Y2l0eT1vdGhlckNhcGFjaXR5OworICAgICAgICAgICAgbmVlZFRvUmVsZWFzZT1GQUxTRTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSAoaWYgb3du
ZWQpIGFuZCBhbGxvY2F0ZXMgYSBuZXcgb25lLCBjb3B5aW5nIGxlbmd0aCBUIGl0ZW1zLgorICAg
ICAqIFJldHVybnMgdGhlIG5ldyBhcnJheSBwb2ludGVyLgorICAgICAqIElmIHRoZSBhbGxvY2F0
aW9uIGZhaWxzLCB0aGVuIHRoZSBjdXJyZW50IGFycmF5IGlzIHVuY2hhbmdlZCBhbmQKKyAgICAg
KiB0aGlzIG1ldGhvZCByZXR1cm5zIE5VTEwuCisgICAgICogQHBhcmFtIG5ld0NhcGFjaXR5IGNh
biBiZSBsZXNzIHRoYW4gb3IgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGNhcGFjaXR5OworICAg
ICAqICAgICAgICAgICAgICAgICAgICBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxlbmd0aCBu
dW1iZXIgb2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRvIHRoZSBu
ZXcgb25lCisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIGFycmF5IHBvaW50ZXIsIG9yIE5V
TEwgaWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIFQgKnJlc2l6
ZShpbnQzMl90IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aD0wKTsKKyAgICAvKioKKyAgICAg
KiBHaXZlcyB1cCBvd25lcnNoaXAgb2YgdGhlIGFycmF5IGlmIG93bmVkLCBvciBlbHNlIGNsb25l
cyBpdCwKKyAgICAgKiBjb3B5aW5nIGxlbmd0aCBUIGl0ZW1zOyByZXNldHMgaXRzZWxmIHRvIHRo
ZSBpbnRlcm5hbCBzdGFjayBhcnJheS4KKyAgICAgKiBSZXR1cm5zIE5VTEwgaWYgdGhlIGFsbG9j
YXRpb24gZmFpbGVkLgorICAgICAqIEBwYXJhbSBsZW5ndGggbnVtYmVyIG9mIFQgaXRlbXMgdG8g
Y29weSB3aGVuIGNsb25pbmcsCisgICAgICogICAgICAgIGFuZCBjYXBhY2l0eSBvZiB0aGUgY2xv
bmUgd2hlbiBjbG9uaW5nCisgICAgICogQHBhcmFtIHJlc3VsdENhcGFjaXR5IHdpbGwgYmUgc2V0
IHRvIHRoZSByZXR1cm5lZCBhcnJheSdzIGNhcGFjaXR5IChvdXRwdXQtb25seSkKKyAgICAgKiBA
cmV0dXJuIHRoZSBhcnJheSBwb2ludGVyOworICAgICAqICAgICAgICAgY2FsbGVyIGJlY29tZXMg
cmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSBhcnJheQorICAgICAqLworICAgIGlubGluZSBU
ICpvcnBoYW5PckNsb25lKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90ICZyZXN1bHRDYXBhY2l0eSk7
Citwcml2YXRlOgorICAgIFQgKnB0cjsKKyAgICBpbnQzMl90IGNhcGFjaXR5OworICAgIFVCb29s
IG5lZWRUb1JlbGVhc2U7CisgICAgVCBzdGFja0FycmF5W3N0YWNrQ2FwYWNpdHldOworICAgIHZv
aWQgcmVsZWFzZUFycmF5KCkgeworICAgICAgICBpZihuZWVkVG9SZWxlYXNlKSB7CisgICAgICAg
ICAgICB1cHJ2X2ZyZWUocHRyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBObyBjb21wYXJp
c29uIG9wZXJhdG9ycyB3aXRoIG90aGVyIE1heWJlU3RhY2tBcnJheSdzLiAqLworICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1cm4gRkFM
U0U7fQorICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVy
Ki8pIHtyZXR1cm4gVFJVRTt9CisgICAgLyogTm8gb3duZXJzaGlwIHRyYW5zZmVyOiBObyBjb3B5
IGNvbnN0cnVjdG9yLCBubyBhc3NpZ25tZW50IG9wZXJhdG9yLiAqLworICAgIE1heWJlU3RhY2tB
cnJheShjb25zdCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVyKi8pIHt9CisgICAgdm9pZCBvcGVy
YXRvcj0oY29uc3QgTWF5YmVTdGFja0FycmF5ICYgLypvdGhlciovKSB7fQorCisgICAgLy8gTm8g
aGVhcCBhbGxvY2F0aW9uLiBVc2Ugb25seSBvbiB0aGUgc3RhY2suCisgICAgLy8gICAoRGVjbGFy
aW5nIHRoZXNlIGZ1bmN0aW9ucyBwcml2YXRlIHRyaWdnZXJzIGEgY2FzY2FkZSBvZiBwcm9ibGVt
czoKKyAgICAvLyAgICAgIE1TVkMgaW5zaXN0cyBvbiBleHBvcnRpbmcgYW4gaW5zdGFudGlhdGlv
biBvZiBNYXliZVN0YWNrQXJyYXksIHdoaWNoCisgICAgLy8gICAgICByZXF1aXJlcyB0aGF0IGFs
bCBmdW5jdGlvbnMgYmUgZGVmaW5lZC4KKyAgICAvLyAgICAgIEFuIGVtcHR5IGltcGxlbWVudGF0
aW9uIG9mIG5ldygpIGlzIHJlamVjdGVkLCBpdCBtdXN0IHJldHVybiBhIHZhbHVlLgorICAgIC8v
ICAgICAgUmV0dXJuaW5nIE5VTEwgaXMgcmVqZWN0ZWQgYnkgZ2NjIGZvciBvcGVyYXRvciBuZXcu
CisgICAgLy8gICAgICBUaGUgZXhwZWRpZW50IHRoaW5nIGlzIGp1c3Qgbm90IHRvIG92ZXJyaWRl
IG9wZXJhdG9yIG5ldy4KKyAgICAvLyAgICAgIFdoaWxlIHJlbGF0aXZlbHkgcG9pbnRsZXNzLCBo
ZWFwIGFsbG9jYXRlZCBpbnN0YW5jZXMgd2lsbCBmdW5jdGlvbi4KKyAgICAvLyBzdGF0aWMgdm9p
ZCAqIFVfRVhQT1JUMiBvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpOyAKKyAgICAvLyBzdGF0aWMg
dm9pZCAqIFVfRVhQT1JUMiBvcGVyYXRvciBuZXdbXShzaXplX3Qgc2l6ZSk7CisjaWYgVV9IQVZF
X1BMQUNFTUVOVF9ORVcKKyAgICAvLyBzdGF0aWMgdm9pZCAqIFVfRVhQT1JUMiBvcGVyYXRvciBu
ZXcoc2l6ZV90LCB2b2lkICpwdHIpOworI2VuZGlmCit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBpbnQzMl90IHN0YWNrQ2FwYWNpdHk+CitpbmxpbmUgVCAqTWF5YmVTdGFja0FycmF5PFQsIHN0
YWNrQ2FwYWNpdHk+OjpyZXNpemUoaW50MzJfdCBuZXdDYXBhY2l0eSwgaW50MzJfdCBsZW5ndGgp
IHsKKyAgICBpZihuZXdDYXBhY2l0eT4wKSB7CisjaWYgVV9ERUJVRyAmJiBkZWZpbmVkKFVQUlZf
TUFMTE9DX0NPVU5UKQorICAgICAgOjpmcHJpbnRmKDo6c3RkZXJyLCJNYXliZVN0YWNBcnJheSAo
cmVzaXplKSBhbGxvYyAlZCAqICVsdVxuIiwgbmV3Q2FwYWNpdHksc2l6ZW9mKFQpKTsKKyNlbmRp
ZgorICAgICAgICBUICpwPShUICopdXBydl9tYWxsb2MobmV3Q2FwYWNpdHkqc2l6ZW9mKFQpKTsK
KyAgICAgICAgaWYocCE9TlVMTCkgeworICAgICAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAg
ICAgICAgICAgICBpZihsZW5ndGg+Y2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVu
Z3RoPWNhcGFjaXR5OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihsZW5n
dGg+bmV3Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPW5ld0NhcGFjaXR5
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1cHJ2X21lbWNweShwLCBwdHIs
IGxlbmd0aCpzaXplb2YoVCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVsZWFzZUFy
cmF5KCk7CisgICAgICAgICAgICBwdHI9cDsKKyAgICAgICAgICAgIGNhcGFjaXR5PW5ld0NhcGFj
aXR5OworICAgICAgICAgICAgbmVlZFRvUmVsZWFzZT1UUlVFOworICAgICAgICB9CisgICAgICAg
IHJldHVybiBwOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30K
KwordGVtcGxhdGU8dHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5PgoraW5saW5lIFQg
Kk1heWJlU3RhY2tBcnJheTxULCBzdGFja0NhcGFjaXR5Pjo6b3JwaGFuT3JDbG9uZShpbnQzMl90
IGxlbmd0aCwgaW50MzJfdCAmcmVzdWx0Q2FwYWNpdHkpIHsKKyAgICBUICpwOworICAgIGlmKG5l
ZWRUb1JlbGVhc2UpIHsKKyAgICAgICAgcD1wdHI7CisgICAgfSBlbHNlIGlmKGxlbmd0aDw9MCkg
eworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9IGVsc2UgeworICAgICAgICBpZihsZW5ndGg+
Y2FwYWNpdHkpIHsKKyAgICAgICAgICAgIGxlbmd0aD1jYXBhY2l0eTsKKyAgICAgICAgfQorICAg
ICAgICBwPShUICopdXBydl9tYWxsb2MobGVuZ3RoKnNpemVvZihUKSk7CisjaWYgVV9ERUJVRyAm
JiBkZWZpbmVkKFVQUlZfTUFMTE9DX0NPVU5UKQorICAgICAgOjpmcHJpbnRmKDo6c3RkZXJyLCJN
YXliZVN0YWNBcnJheSAob3JwaGFuKSBhbGxvYyAlZCAqICVsdVxuIiwgbGVuZ3RoLHNpemVvZihU
KSk7CisjZW5kaWYKKyAgICAgICAgaWYocD09TlVMTCkgeworICAgICAgICAgICAgcmV0dXJuIE5V
TEw7CisgICAgICAgIH0KKyAgICAgICAgdXBydl9tZW1jcHkocCwgcHRyLCBsZW5ndGgqc2l6ZW9m
KFQpKTsKKyAgICB9CisgICAgcmVzdWx0Q2FwYWNpdHk9bGVuZ3RoOworICAgIHB0cj1zdGFja0Fy
cmF5OworICAgIGNhcGFjaXR5PXN0YWNrQ2FwYWNpdHk7CisgICAgbmVlZFRvUmVsZWFzZT1GQUxT
RTsKKyAgICByZXR1cm4gcDsKK30KKworLyoqCisgKiBWYXJpYW50IG9mIE1heWJlU3RhY2tBcnJh
eSB0aGF0IGFsbG9jYXRlcyBhIGhlYWRlciBzdHJ1Y3QgYW5kIGFuIGFycmF5CisgKiBpbiBvbmUg
Y29udGlndW91cyBtZW1vcnkgYmxvY2ssIHVzaW5nIHVwcnZfbWFsbG9jKCkgYW5kIHVwcnZfZnJl
ZSgpLgorICogUHJvdmlkZXMgaW50ZXJuYWwgbWVtb3J5IHdpdGggZml4ZWQgYXJyYXkgY2FwYWNp
dHkuIENhbiBhbGlhcyBhbm90aGVyIG1lbW9yeQorICogYmxvY2sgb3IgYWxsb2NhdGUgb25lLgor
ICogVGhlIHN0YWNrQ2FwYWNpdHkgaXMgdGhlIG51bWJlciBvZiBUIGl0ZW1zIGluIHRoZSBpbnRl
cm5hbCBtZW1vcnksCisgKiBub3QgY291bnRpbmcgdGhlIEggaGVhZGVyLgorICogVW5saWtlIExv
Y2FsTWVtb3J5IGFuZCBMb2NhbEFycmF5LCB0aGlzIGNsYXNzIG5ldmVyIGFkb3B0cworICogKHRh
a2VzIG93bmVyc2hpcCBvZikgYW5vdGhlciBtZW1vcnkgYmxvY2suCisgKi8KK3RlbXBsYXRlPHR5
cGVuYW1lIEgsIHR5cGVuYW1lIFQsIGludDMyX3Qgc3RhY2tDYXBhY2l0eT4KK2NsYXNzIE1heWJl
U3RhY2tIZWFkZXJBbmRBcnJheSB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogRGVmYXVsdCBj
b25zdHJ1Y3RvciBpbml0aWFsaXplcyB3aXRoIGludGVybmFsIEgrVFtzdGFja0NhcGFjaXR5XSBi
dWZmZXIuCisgICAgICovCisgICAgTWF5YmVTdGFja0hlYWRlckFuZEFycmF5KCkgOiBwdHIoJnN0
YWNrSGVhZGVyKSwgY2FwYWNpdHkoc3RhY2tDYXBhY2l0eSksIG5lZWRUb1JlbGVhc2UoRkFMU0Up
IHt9CisgICAgLyoqCisgICAgICogRGVzdHJ1Y3RvciBkZWxldGVzIHRoZSBtZW1vcnkgKGlmIG93
bmVkKS4KKyAgICAgKi8KKyAgICB+TWF5YmVTdGFja0hlYWRlckFuZEFycmF5KCkgeyByZWxlYXNl
TWVtb3J5KCk7IH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhcnJheSBjYXBhY2l0eSAo
bnVtYmVyIG9mIFQgaXRlbXMpLgorICAgICAqIEByZXR1cm4gYXJyYXkgY2FwYWNpdHkKKyAgICAg
Ki8KKyAgICBpbnQzMl90IGdldENhcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gY2FwYWNpdHk7IH0K
KyAgICAvKioKKyAgICAgKiBBY2Nlc3Mgd2l0aG91dCBvd25lcnNoaXAgY2hhbmdlLgorICAgICAq
IEByZXR1cm4gdGhlIGhlYWRlciBwb2ludGVyCisgICAgICovCisgICAgSCAqZ2V0QWxpYXMoKSBj
b25zdCB7IHJldHVybiBwdHI7IH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhcnJheSBz
dGFydC4KKyAgICAgKiBAcmV0dXJuIGFycmF5IHN0YXJ0LCBzYW1lIGFkZHJlc3MgYXMgZ2V0QWxp
YXMoKSsxCisgICAgICovCisgICAgVCAqZ2V0QXJyYXlTdGFydCgpIGNvbnN0IHsgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8VCAqPihnZXRBbGlhcygpKzEpOyB9CisgICAgLyoqCisgICAgICogUmV0
dXJucyB0aGUgYXJyYXkgbGltaXQuCisgICAgICogQHJldHVybiBhcnJheSBsaW1pdAorICAgICAq
LworICAgIFQgKmdldEFycmF5TGltaXQoKSBjb25zdCB7IHJldHVybiBnZXRBcnJheVN0YXJ0KCkr
Y2FwYWNpdHk7IH0KKyAgICAvKioKKyAgICAgKiBBY2Nlc3Mgd2l0aG91dCBvd25lcnNoaXAgY2hh
bmdlLiBTYW1lIGFzIGdldEFsaWFzKCkuCisgICAgICogQSBjbGFzcyBpbnN0YW5jZSBjYW4gYmUg
dXNlZCBkaXJlY3RseSBpbiBleHByZXNzaW9ucyB0aGF0IHRha2UgYSBUICouCisgICAgICogQHJl
dHVybiB0aGUgaGVhZGVyIHBvaW50ZXIKKyAgICAgKi8KKyAgICBvcGVyYXRvciBIICooKSBjb25z
dCB7IHJldHVybiBwdHI7IH0KKyAgICAvKioKKyAgICAgKiBBcnJheSBpdGVtIGFjY2VzcyAod3Jp
dGFibGUpLgorICAgICAqIE5vIGluZGV4IGJvdW5kcyBjaGVjay4KKyAgICAgKiBAcGFyYW0gaSBh
cnJheSBpbmRleAorICAgICAqIEByZXR1cm4gcmVmZXJlbmNlIHRvIHRoZSBhcnJheSBpdGVtCisg
ICAgICovCisgICAgVCAmb3BlcmF0b3JbXShwdHJkaWZmX3QgaSkgeyByZXR1cm4gZ2V0QXJyYXlT
dGFydCgpW2ldOyB9CisgICAgLyoqCisgICAgICogRGVsZXRlcyB0aGUgbWVtb3J5IGJsb2NrIChp
ZiBvd25lZCkgYW5kIGFsaWFzZXMgYW5vdGhlciBvbmUsIG5vIHRyYW5zZmVyIG9mIG93bmVyc2hp
cC4KKyAgICAgKiBJZiB0aGUgYXJndW1lbnRzIGFyZSBpbGxlZ2FsLCB0aGVuIHRoZSBjdXJyZW50
IG1lbW9yeSBpcyB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIG90aGVyQXJyYXkgbXVzdCBub3Qg
YmUgTlVMTAorICAgICAqIEBwYXJhbSBvdGhlckNhcGFjaXR5IG11c3QgYmUgPjAKKyAgICAgKi8K
KyAgICB2b2lkIGFsaWFzSW5zdGVhZChIICpvdGhlck1lbW9yeSwgaW50MzJfdCBvdGhlckNhcGFj
aXR5KSB7CisgICAgICAgIGlmKG90aGVyTWVtb3J5IT1OVUxMICYmIG90aGVyQ2FwYWNpdHk+MCkg
eworICAgICAgICAgICAgcmVsZWFzZU1lbW9yeSgpOworICAgICAgICAgICAgcHRyPW90aGVyTWVt
b3J5OworICAgICAgICAgICAgY2FwYWNpdHk9b3RoZXJDYXBhY2l0eTsKKyAgICAgICAgICAgIG5l
ZWRUb1JlbGVhc2U9RkFMU0U7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogRGVs
ZXRlcyB0aGUgbWVtb3J5IGJsb2NrIChpZiBvd25lZCkgYW5kIGFsbG9jYXRlcyBhIG5ldyBvbmUs
CisgICAgICogY29weWluZyB0aGUgaGVhZGVyIGFuZCBsZW5ndGggVCBhcnJheSBpdGVtcy4KKyAg
ICAgKiBSZXR1cm5zIHRoZSBuZXcgaGVhZGVyIHBvaW50ZXIuCisgICAgICogSWYgdGhlIGFsbG9j
YXRpb24gZmFpbHMsIHRoZW4gdGhlIGN1cnJlbnQgbWVtb3J5IGlzIHVuY2hhbmdlZCBhbmQKKyAg
ICAgKiB0aGlzIG1ldGhvZCByZXR1cm5zIE5VTEwuCisgICAgICogQHBhcmFtIG5ld0NhcGFjaXR5
IGNhbiBiZSBsZXNzIHRoYW4gb3IgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGNhcGFjaXR5Owor
ICAgICAqICAgICAgICAgICAgICAgICAgICBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxlbmd0
aCBudW1iZXIgb2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRvIHRo
ZSBuZXcgb25lCisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIHBvaW50ZXIsIG9yIE5VTEwg
aWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIEggKnJlc2l6ZShp
bnQzMl90IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aD0wKTsKKyAgICAvKioKKyAgICAgKiBH
aXZlcyB1cCBvd25lcnNoaXAgb2YgdGhlIG1lbW9yeSBpZiBvd25lZCwgb3IgZWxzZSBjbG9uZXMg
aXQsCisgICAgICogY29weWluZyB0aGUgaGVhZGVyIGFuZCBsZW5ndGggVCBhcnJheSBpdGVtczsg
cmVzZXRzIGl0c2VsZiB0byB0aGUgaW50ZXJuYWwgbWVtb3J5LgorICAgICAqIFJldHVybnMgTlVM
TCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQuCisgICAgICogQHBhcmFtIGxlbmd0aCBudW1iZXIg
b2YgVCBpdGVtcyB0byBjb3B5IHdoZW4gY2xvbmluZywKKyAgICAgKiAgICAgICAgYW5kIGFycmF5
IGNhcGFjaXR5IG9mIHRoZSBjbG9uZSB3aGVuIGNsb25pbmcKKyAgICAgKiBAcGFyYW0gcmVzdWx0
Q2FwYWNpdHkgd2lsbCBiZSBzZXQgdG8gdGhlIHJldHVybmVkIGFycmF5J3MgY2FwYWNpdHkgKG91
dHB1dC1vbmx5KQorICAgICAqIEByZXR1cm4gdGhlIGhlYWRlciBwb2ludGVyOworICAgICAqICAg
ICAgICAgY2FsbGVyIGJlY29tZXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSBhcnJheQor
ICAgICAqLworICAgIGlubGluZSBIICpvcnBoYW5PckNsb25lKGludDMyX3QgbGVuZ3RoLCBpbnQz
Ml90ICZyZXN1bHRDYXBhY2l0eSk7Citwcml2YXRlOgorICAgIEggKnB0cjsKKyAgICBpbnQzMl90
IGNhcGFjaXR5OworICAgIFVCb29sIG5lZWRUb1JlbGVhc2U7CisgICAgLy8gc3RhY2tIZWFkZXIg
bXVzdCBwcmVjZWRlIHN0YWNrQXJyYXkgaW1tZWRpYXRlbHkuCisgICAgSCBzdGFja0hlYWRlcjsK
KyAgICBUIHN0YWNrQXJyYXlbc3RhY2tDYXBhY2l0eV07CisgICAgdm9pZCByZWxlYXNlTWVtb3J5
KCkgeworICAgICAgICBpZihuZWVkVG9SZWxlYXNlKSB7CisgICAgICAgICAgICB1cHJ2X2ZyZWUo
cHRyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBObyBjb21wYXJpc29uIG9wZXJhdG9ycyB3
aXRoIG90aGVyIE1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSdzLiAqLworICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1cm4g
RkFMU0U7fQorICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBNYXliZVN0YWNrSGVhZGVyQW5kQXJy
YXkgJiAvKm90aGVyKi8pIHtyZXR1cm4gVFJVRTt9CisgICAgLyogTm8gb3duZXJzaGlwIHRyYW5z
ZmVyOiBObyBjb3B5IGNvbnN0cnVjdG9yLCBubyBhc3NpZ25tZW50IG9wZXJhdG9yLiAqLworICAg
IE1heWJlU3RhY2tIZWFkZXJBbmRBcnJheShjb25zdCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkg
JiAvKm90aGVyKi8pIHt9CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgTWF5YmVTdGFja0hlYWRl
ckFuZEFycmF5ICYgLypvdGhlciovKSB7fQorCisgICAgLy8gTm8gaGVhcCBhbGxvY2F0aW9uLiBV
c2Ugb25seSBvbiB0aGUgc3RhY2suCisgICAgLy8gICAoRGVjbGFyaW5nIHRoZXNlIGZ1bmN0aW9u
cyBwcml2YXRlIHRyaWdnZXJzIGEgY2FzY2FkZSBvZiBwcm9ibGVtczsKKyAgICAvLyAgICBzZWUg
dGhlIE1heWJlU3RhY2tBcnJheSBjbGFzcyBmb3IgZGV0YWlscy4pCisgICAgLy8gc3RhdGljIHZv
aWQgKiBVX0VYUE9SVDIgb3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKTsgCisgICAgLy8gc3RhdGlj
IHZvaWQgKiBVX0VYUE9SVDIgb3BlcmF0b3IgbmV3W10oc2l6ZV90IHNpemUpOworI2lmIFVfSEFW
RV9QTEFDRU1FTlRfTkVXCisgICAgLy8gc3RhdGljIHZvaWQgKiBVX0VYUE9SVDIgb3BlcmF0b3Ig
bmV3KHNpemVfdCwgdm9pZCAqcHRyKTsKKyNlbmRpZgorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUg
SCwgdHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5PgoraW5saW5lIEggKk1heWJlU3Rh
Y2tIZWFkZXJBbmRBcnJheTxILCBULCBzdGFja0NhcGFjaXR5Pjo6cmVzaXplKGludDMyX3QgbmV3
Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50MzJfdCBsZW5ndGgpIHsKKyAgICBpZihuZXdDYXBhY2l0eT49
MCkgeworI2lmIFVfREVCVUcgJiYgZGVmaW5lZChVUFJWX01BTExPQ19DT1VOVCkKKyAgICAgIDo6
ZnByaW50Zig6OnN0ZGVyciwiTWF5YmVTdGFja0hlYWRlckFuZEFycmF5IGFsbG9jICVkICsgJWQg
KiAldWxcbiIsIHNpemVvZihIKSxuZXdDYXBhY2l0eSxzaXplb2YoVCkpOworI2VuZGlmCisgICAg
ICAgIEggKnA9KEggKil1cHJ2X21hbGxvYyhzaXplb2YoSCkrbmV3Q2FwYWNpdHkqc2l6ZW9mKFQp
KTsKKyAgICAgICAgaWYocCE9TlVMTCkgeworICAgICAgICAgICAgaWYobGVuZ3RoPDApIHsKKyAg
ICAgICAgICAgICAgICBsZW5ndGg9MDsKKyAgICAgICAgICAgIH0gZWxzZSBpZihsZW5ndGg+MCkg
eworICAgICAgICAgICAgICAgIGlmKGxlbmd0aD5jYXBhY2l0eSkgeworICAgICAgICAgICAgICAg
ICAgICBsZW5ndGg9Y2FwYWNpdHk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGlmKGxlbmd0aD5uZXdDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBsZW5ndGg9bmV3
Q2FwYWNpdHk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAg
dXBydl9tZW1jcHkocCwgcHRyLCBzaXplb2YoSCkrbGVuZ3RoKnNpemVvZihUKSk7CisgICAgICAg
ICAgICByZWxlYXNlTWVtb3J5KCk7CisgICAgICAgICAgICBwdHI9cDsKKyAgICAgICAgICAgIGNh
cGFjaXR5PW5ld0NhcGFjaXR5OworICAgICAgICAgICAgbmVlZFRvUmVsZWFzZT1UUlVFOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBwOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBO
VUxMOworICAgIH0KK30KKwordGVtcGxhdGU8dHlwZW5hbWUgSCwgdHlwZW5hbWUgVCwgaW50MzJf
dCBzdGFja0NhcGFjaXR5PgoraW5saW5lIEggKk1heWJlU3RhY2tIZWFkZXJBbmRBcnJheTxILCBU
LCBzdGFja0NhcGFjaXR5Pjo6b3JwaGFuT3JDbG9uZShpbnQzMl90IGxlbmd0aCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50MzJfdCAmcmVzdWx0Q2FwYWNpdHkpIHsKKyAgICBIICpwOworICAgIGlmKG5lZWRU
b1JlbGVhc2UpIHsKKyAgICAgICAgcD1wdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYobGVu
Z3RoPDApIHsKKyAgICAgICAgICAgIGxlbmd0aD0wOworICAgICAgICB9IGVsc2UgaWYobGVuZ3Ro
PmNhcGFjaXR5KSB7CisgICAgICAgICAgICBsZW5ndGg9Y2FwYWNpdHk7CisgICAgICAgIH0KKyNp
ZiBVX0RFQlVHICYmIGRlZmluZWQoVVBSVl9NQUxMT0NfQ09VTlQpCisgICAgICA6OmZwcmludGYo
OjpzdGRlcnIsIk1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSAob3JwaGFuKSBhbGxvYyAldWwgKyAl
ZCAqICVsdVxuIiwgc2l6ZW9mKEgpLGxlbmd0aCxzaXplb2YoVCkpOworI2VuZGlmCisgICAgICAg
IHA9KEggKil1cHJ2X21hbGxvYyhzaXplb2YoSCkrbGVuZ3RoKnNpemVvZihUKSk7CisgICAgICAg
IGlmKHA9PU5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAg
ICAgIHVwcnZfbWVtY3B5KHAsIHB0ciwgc2l6ZW9mKEgpK2xlbmd0aCpzaXplb2YoVCkpOworICAg
IH0KKyAgICByZXN1bHRDYXBhY2l0eT1sZW5ndGg7CisgICAgcHRyPSZzdGFja0hlYWRlcjsKKyAg
ICBjYXBhY2l0eT1zdGFja0NhcGFjaXR5OworICAgIG5lZWRUb1JlbGVhc2U9RkFMU0U7CisgICAg
cmV0dXJuIHA7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYgIC8qIF9fY3BsdXNwbHVz
ICovCisjZW5kaWYgIC8qIENNRU1PUllfSCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9jc3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2NzdHJpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGI2OGZmYWJiMjZi
Y2I5MTU2MjZlZDRkMTE1ZTk0MmQzN2JiNzcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9jc3RyaW5nLmgKQEAgLTAsMCArMSwxNDAg
QEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTct
MjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFu
ZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqCisqIEZpbGUgQ1NUUklORy5ICisqCisqIENvbnRhaW5zIENTdHJpbmcgaW50ZXJmYWNlCisq
CisqIEBhdXRob3IgICAgICAgSGVsZW5hIFNoaWgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6
CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICA2LzE3Lzk4
ICAgICBoc2hpaCAgICAgICBDcmVhdGVkLgorKiAgMDUvMDMvOTkgICAgIHN0ZXBoZW4gICAgIENo
YW5nZWQgZnJvbSBmdW5jdGlvbnMgdG8gbWFjcm9zLgorKiAgMDYvMTQvOTkgICAgIHN0ZXBoZW4g
ICAgIEFkZGVkIGljdV9zdHJuY2F0LCBpY3Vfc3RybmNtcCwgaWN1X3RvbG93ZXIKKyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBDU1RSSU5HX0gKKyNkZWZpbmUgQ1NUUklO
R19IIDEKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAiY21lbW9yeS5o
IgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGN0
eXBlLmg+CisKKyNkZWZpbmUgdXBydl9zdHJjcHkoZHN0LCBzcmMpIFVfU1RBTkRBUkRfQ1BQX05B
TUVTUEFDRSAgc3RyY3B5KGRzdCwgc3JjKQorI2RlZmluZSB1cHJ2X3N0cmxlbihzdHIpIFVfU1RB
TkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJsZW4oc3RyKQorI2RlZmluZSB1cHJ2X3N0cmNtcChzMSwg
czIpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJjbXAoczEsIHMyKQorI2RlZmluZSB1cHJ2
X3N0cmNhdChkc3QsIHNyYykgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cmNhdChkc3QsIHNy
YykKKyNkZWZpbmUgdXBydl9zdHJjaHIocywgYykgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0
cmNocihzLCBjKQorI2RlZmluZSB1cHJ2X3N0cnN0cihzLCBjKSBVX1NUQU5EQVJEX0NQUF9OQU1F
U1BBQ0Ugc3Ryc3RyKHMsIGMpCisjZGVmaW5lIHVwcnZfc3RycmNocihzLCBjKSBVX1NUQU5EQVJE
X0NQUF9OQU1FU1BBQ0Ugc3RycmNocihzLCBjKQorCisjaWYgVV9ERUJVRworCisjZGVmaW5lIHVw
cnZfc3RybmNweShkc3QsIHNyYywgc2l6ZSkgKCBcCisgICAgdXBydl9jaGVja1ZhbGlkTWVtb3J5
KHNyYywgMSksIFwKKyAgICBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RybmNweShkc3QsIHNy
Yywgc2l6ZSkpCisjZGVmaW5lIHVwcnZfc3RybmNtcChzMSwgczIsIG4pICggXAorICAgIHVwcnZf
Y2hlY2tWYWxpZE1lbW9yeShzMSwgMSksIFwKKyAgICB1cHJ2X2NoZWNrVmFsaWRNZW1vcnkoczIs
IDEpLCBcCisgICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cm5jbXAoczEsIHMyLCBuKSkK
KyNkZWZpbmUgdXBydl9zdHJuY2F0KGRzdCwgc3JjLCBuKSAoIFwKKyAgICB1cHJ2X2NoZWNrVmFs
aWRNZW1vcnkoc3JjLCAxKSwgXAorICAgIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJuY2F0
KGRzdCwgc3JjLCBuKSkKKworI2Vsc2UKKworI2RlZmluZSB1cHJ2X3N0cm5jcHkoZHN0LCBzcmMs
IHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJuY3B5KGRzdCwgc3JjLCBzaXplKQor
I2RlZmluZSB1cHJ2X3N0cm5jbXAoczEsIHMyLCBuKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ug
c3RybmNtcChzMSwgczIsIG4pCisjZGVmaW5lIHVwcnZfc3RybmNhdChkc3QsIHNyYywgbikgVV9T
VEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cm5jYXQoZHN0LCBzcmMsIG4pCisKKyNlbmRpZiAgLyog
VV9ERUJVRyAqLworCisvKioKKyAqIElzIGMgYW4gQVNDSUktcmVwZXJ0b2lyZSBsZXR0ZXIgYS16
IG9yIEEtWj8KKyAqIE5vdGU6IFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBzcGVjaWZpYyB0byB3aGV0
aGVyIElDVSBpcyBjb21waWxlZCBmb3IKKyAqIGFuIEFTQ0lJLWJhc2VkIG9yIEVCQ0RJQy1iYXNl
ZCBtYWNoaW5lLiBUaGVyZSBqdXN0IGRvZXMgbm90IHNlZW0gdG8gYmUgYSBiZXR0ZXIgbmFtZSBm
b3IgdGhpcy4KKyAqLworVV9DQVBJIFVCb29sIFVfRVhQT1JUMgordXBydl9pc0FTQ0lJTGV0dGVy
KGNoYXIgYyk7CisKK1VfQ0FQSSBjaGFyIFVfRVhQT1JUMgordXBydl90b3VwcGVyKGNoYXIgYyk7
CisKKworVV9DQVBJIGNoYXIgVV9FWFBPUlQyCit1cHJ2X2FzY2lpdG9sb3dlcihjaGFyIGMpOwor
CitVX0NBUEkgY2hhciBVX0VYUE9SVDIKK3VwcnZfZWJjZGljdG9sb3dlcihjaGFyIGMpOworCisj
aWYgVV9DSEFSU0VUX0ZBTUlMWT09VV9BU0NJSV9GQU1JTFkKKyMgICBkZWZpbmUgdXBydl90b2xv
d2VyIHVwcnZfYXNjaWl0b2xvd2VyCisjZWxpZiBVX0NIQVJTRVRfRkFNSUxZPT1VX0VCQ0RJQ19G
QU1JTFkKKyMgICBkZWZpbmUgdXBydl90b2xvd2VyIHVwcnZfZWJjZGljdG9sb3dlcgorI2Vsc2UK
KyMgICBlcnJvciBVX0NIQVJTRVRfRkFNSUxZIGlzIG5vdCB2YWxpZAorI2VuZGlmCisKKyNkZWZp
bmUgdXBydl9zdHJ0b2Qoc291cmNlLCBlbmQpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJ0
b2Qoc291cmNlLCBlbmQpCisjZGVmaW5lIHVwcnZfc3RydG91bChzdHIsIGVuZCwgYmFzZSkgVV9T
VEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cnRvdWwoc3RyLCBlbmQsIGJhc2UpCisjZGVmaW5lIHVw
cnZfc3RydG9sKHN0ciwgZW5kLCBiYXNlKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RydG9s
KHN0ciwgZW5kLCBiYXNlKQorCisvKiBDb252ZXJzaW9uIGZyb20gYSBkaWdpdCB0byB0aGUgY2hh
cmFjdGVyIHdpdGggcmFkaXggYmFzZSBmcm9tIDItMTkgKi8KKy8qIE1heSBuZWVkIHRvIHVzZSBV
X1VQUEVSX09SRElOQUwqLworI2RlZmluZSBUX0NTdHJpbmdfaXRvc09mZnNldChhKSAoKGEpPD05
PygnMCcrKGEpKTooJ0EnKyhhKS0xMCkpCisKK1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK3VwcnZf
c3RyZHVwKGNvbnN0IGNoYXIgKnNyYyk7CisKKy8qKgorICogdXBydl9tYWxsb2MgbisxIGJ5dGVz
LCBhbmQgY29weSBuIGJ5dGVzIGZyb20gc3JjIGludG8gdGhlIG5ldyBzdHJpbmcuCisgKiBUZXJt
aW5hdGUgd2l0aCBhIG51bGwgYXQgb2Zmc2V0IG4uICAgSWYgbiBpcyAtMSwgd29ya3MgbGlrZSB1
cHJ2X3N0cmR1cAorICogQHBhcmFtIHNyYworICogQHBhcmFtIG4gbGVuZ3RoIG9mIHRoZSBpbnB1
dCBzdHJpbmcsIG5vdCBpbmNsdWRpbmcgbnVsbC4KKyAqIEByZXR1cm4gbmV3IHN0cmluZyAob3du
ZWQgYnkgY2FsbGVyLCB1c2UgdXBydl9mcmVlIHRvIGZyZWUpLgorICogQGludGVybmFsCisgKi8K
K1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK3VwcnZfc3RybmR1cChjb25zdCBjaGFyICpzcmMsIGlu
dDMyX3Qgbik7CisKK1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK1RfQ1N0cmluZ190b0xvd2VyQ2Fz
ZShjaGFyKiBzdHIpOworCitVX0NBUEkgY2hhciogVV9FWFBPUlQyCitUX0NTdHJpbmdfdG9VcHBl
ckNhc2UoY2hhciogc3RyKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0NTdHJpbmdf
aW50ZWdlclRvU3RyaW5nKGNoYXIgKmJ1ZmZlciwgaW50MzJfdCBuLCBpbnQzMl90IHJhZGl4KTsK
KworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0NTdHJpbmdfaW50NjRUb1N0cmluZyhjaGFy
ICpidWZmZXIsIGludDY0X3QgbiwgdWludDMyX3QgcmFkaXgpOworCitVX0NBUEkgaW50MzJfdCBV
X0VYUE9SVDIKK1RfQ1N0cmluZ19zdHJpbmdUb0ludGVnZXIoY29uc3QgY2hhciAqaW50ZWdlclN0
cmluZywgaW50MzJfdCByYWRpeCk7CisKKy8qKgorICogQ2FzZS1pbnNlbnNpdGl2ZSwgbGFuZ3Vh
Z2UtaW5kZXBlbmRlbnQgc3RyaW5nIGNvbXBhcmlzb24KKyAqIGxpbWl0ZWQgdG8gdGhlIEFTQ0lJ
IGNoYXJhY3RlciByZXBlcnRvaXJlLgorICovCitVX0NBUEkgaW50IFVfRVhQT1JUMgordXBydl9z
dHJpY21wKGNvbnN0IGNoYXIgKnN0cjEsIGNvbnN0IGNoYXIgKnN0cjIpOworCisvKioKKyAqIENh
c2UtaW5zZW5zaXRpdmUsIGxhbmd1YWdlLWluZGVwZW5kZW50IHN0cmluZyBjb21wYXJpc29uCisg
KiBsaW1pdGVkIHRvIHRoZSBBU0NJSSBjaGFyYWN0ZXIgcmVwZXJ0b2lyZS4KKyAqLworVV9DQVBJ
IGludCBVX0VYUE9SVDIKK3VwcnZfc3RybmljbXAoY29uc3QgY2hhciAqc3RyMSwgY29uc3QgY2hh
ciAqc3RyMiwgdWludDMyX3Qgbik7CisKKyNlbmRpZiAvKiAhIENTVFJJTkdfSCAqLwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9maWxlc3RybS5j
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9maWxlc3RybS5jCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjczMDk3NDdjNzA1YmQxMzc2NWEzYzViNzFlN2E4YmJkNDgxMTRjYWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2Zp
bGVzdHJtLmMKQEAgLTAsMCArMSwyMjUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoK
KyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNo
aW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgor
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgRklMRVNUUk0uQworKgorKiBAYXV0
aG9yICAgICAgIEdsZW5uIE1hcmN5CisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAg
IERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgNS84Lzk4ICAgICAgZ20g
ICAgICAgICAgQ3JlYXRlZAorKiAgMDMvMDIvOTkgICAgIHN0ZXBoZW4gICAgIFJlb3JkZXJlZCBw
YXJhbXMgaW4gdW5nZXRjIHRvIG1hdGNoIHN0ZGlvCisqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWRkZWQgd29wZW4KKyogICAzLzI5Lzk5ICAgICBoZWxlbmEgICAgICBNZXJnZWQgU3RlcGhl
biBhbmQgQmVydHJhbmQncyBjaGFuZ2VzLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLwor
CisjaW5jbHVkZSAiZmlsZXN0cm0uaCIKKworI2luY2x1ZGUgImNtZW1vcnkuaCIKKworI2luY2x1
ZGUgPHN0ZGlvLmg+CisKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVh
bV9vcGVuKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFyKiBtb2RlKQoreworICAgIGlm
KGZpbGVuYW1lICE9IE5VTEwgJiYgKmZpbGVuYW1lICE9IDAgJiYgbW9kZSAhPSBOVUxMICYmICpt
b2RlICE9IDApIHsKKyAgICAgICAgRklMRSAqZmlsZSA9IGZvcGVuKGZpbGVuYW1lLCBtb2RlKTsK
KyAgICAgICAgcmV0dXJuIChGaWxlU3RyZWFtKilmaWxlOworICAgIH0gZWxzZSB7CisgICAgICAg
IHJldHVybiBOVUxMOworICAgIH0KK30KKworLyoKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9S
VDIKK1RfRmlsZVN0cmVhbV93b3Blbihjb25zdCB3Y2hhcl90KiBmaWxlbmFtZSwgY29uc3Qgd2No
YXJfdCogbW9kZSkKK3sKKyAgIC8vIFRCRDogX3dmb3BlbiBpcyBiZWxpZXZlZCB0byBiZSBNUy1z
cGVjaWZpYz8gCisjaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisgICAgRklMRSog
cmVzdWx0ID0gX3dmb3BlbihmaWxlbmFtZSwgbW9kZSk7CisgICAgcmV0dXJuIChGaWxlU3RyZWFt
KilyZXN1bHQ7CisjZWxzZQorICAgIHNpemVfdCBmbk1ic1NpemUsIG1kTWJzU2l6ZTsKKyAgICBj
aGFyICpmbiwgKm1kOworICAgIEZJTEUgKnJlc3VsdDsKKworICAgIC8vIGNvbnZlcnQgZnJvbSB3
Y2hhcl90IHRvIGNoYXIgCisgICAgZm5NYnNTaXplID0gd2NzdG9tYnMoTlVMTCwgZmlsZW5hbWUs
ICgoc2l6ZV90KS0xKSA+PiAxKTsKKyAgICBmbiA9IChjaGFyKil1cHJ2X21hbGxvYyhmbk1ic1Np
emUrMik7CisgICAgd2NzdG9tYnMoZm4sIGZpbGVuYW1lLCBmbk1ic1NpemUpOworICAgIGZuW2Zu
TWJzU2l6ZV0gPSAwOworCisgICAgbWRNYnNTaXplID0gd2NzdG9tYnMoTlVMTCwgbW9kZSwgKChz
aXplX3QpLTEpID4+IDEpOworICAgIG1kID0gKGNoYXIqKXVwcnZfbWFsbG9jKG1kTWJzU2l6ZSsy
KTsKKyAgICB3Y3N0b21icyhtZCwgbW9kZSwgbWRNYnNTaXplKTsKKyAgICBtZFttZE1ic1NpemVd
ID0gMDsKKworICAgIHJlc3VsdCA9IGZvcGVuKGZuLCBtZCk7CisgICAgdXBydl9mcmVlKGZuKTsK
KyAgICB1cHJ2X2ZyZWUobWQpOworICAgIHJldHVybiAoRmlsZVN0cmVhbSopcmVzdWx0OworI2Vu
ZGlmCit9CisqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fY2xvc2UoRmls
ZVN0cmVhbSogZmlsZVN0cmVhbSkKK3sKKyAgICBpZiAoZmlsZVN0cmVhbSAhPSAwKQorICAgICAg
ICBmY2xvc2UoKEZJTEUqKWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQy
CitUX0ZpbGVTdHJlYW1fZmlsZV9leGlzdHMoY29uc3QgY2hhciogZmlsZW5hbWUpCit7CisgICAg
RklMRSogdGVtcCA9IGZvcGVuKGZpbGVuYW1lLCAiciIpOworICAgIGlmICh0ZW1wKSB7CisgICAg
ICAgIGZjbG9zZSh0ZW1wKTsKKyAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgfSBlbHNlCisgICAg
ICAgIHJldHVybiBGQUxTRTsKK30KKworLypzdGF0aWMgY29uc3QgaW50MzJfdCBrRU9GOworY29u
c3QgaW50MzJfdCBGaWxlU3RyZWFtOjprRU9GID0gRU9GOyovCisKKy8qCitVX0NBUEkgRmlsZVN0
cmVhbSoKK1RfRmlsZVN0cmVhbV90bXBmaWxlKCkKK3sKKyAgICBGSUxFKiBmaWxlID0gdG1wZmls
ZSgpOworICAgIHJldHVybiAoRmlsZVN0cmVhbSopZmlsZTsKK30KKyovCisKK1VfQ0FQSSBpbnQz
Ml90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3JlYWQoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwg
dm9pZCogYWRkciwgaW50MzJfdCBsZW4pCit7CisgICAgcmV0dXJuIGZyZWFkKGFkZHIsIDEsIGxl
biwgKEZJTEUqKWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1Rf
RmlsZVN0cmVhbV93cml0ZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCB2b2lkKiBhZGRy
LCBpbnQzMl90IGxlbikKK3sKKworICAgIHJldHVybiBmd3JpdGUoYWRkciwgMSwgbGVuLCAoRklM
RSopZmlsZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFt
X3Jld2luZChGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIHJld2luZCgoRklMRSopZmls
ZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3B1
dGMoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgaW50MzJfdCBjaCkKK3sKKyAgICBpbnQzMl90IGMg
PSBmcHV0YyhjaCwgKEZJTEUqKWZpbGVTdHJlYW0pOworICAgIHJldHVybiBjOworfQorCitVX0NB
UEkgaW50IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX2dldGMoRmlsZVN0cmVhbSogZmlsZVN0cmVh
bSkKK3sKKyAgICBpbnQgYyA9IGZnZXRjKChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4g
YzsKK30KKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fdW5nZXRjKGlu
dDMyX3QgY2gsIEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisKKyAgICBpbnQzMl90IGMgPSB1
bmdldGMoY2gsIChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4gYzsKK30KKworVV9DQVBJ
IGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcGVlayhGaWxlU3RyZWFtKiBmaWxlU3Ry
ZWFtKQoreworICAgIGludDMyX3QgYyA9IGZnZXRjKChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICBy
ZXR1cm4gdW5nZXRjKGMsIChGSUxFKilmaWxlU3RyZWFtKTsKK30KKworVV9DQVBJIGNoYXIqIFVf
RVhQT1JUMgorVF9GaWxlU3RyZWFtX3JlYWRMaW5lKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0sIGNo
YXIqIGJ1ZmZlciwgaW50MzJfdCBsZW5ndGgpCit7CisgICAgcmV0dXJuIGZnZXRzKGJ1ZmZlciwg
bGVuZ3RoLCAoRklMRSopZmlsZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JU
MgorVF9GaWxlU3RyZWFtX3dyaXRlTGluZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCBj
aGFyKiBidWZmZXIpCit7CisgICAgcmV0dXJuIGZwdXRzKGJ1ZmZlciwgKEZJTEUqKWZpbGVTdHJl
YW0pOworfQorCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9zaXplKEZp
bGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisgICAgaW50MzJfdCBzYXZlZFBvcyA9IGZ0ZWxsKChG
SUxFKilmaWxlU3RyZWFtKTsKKyAgICBpbnQzMl90IHNpemUgPSAwOworCisgICAgLypDaGFuZ2Vz
IGJ5IEJlcnRyYW5kIEEuIEQuIGRvZXNuJ3QgYWZmZWN0IHRoZSBjdXJyZW50IHBvc2l0aW9uCisg
ICAgZ29lcyB0byB0aGUgZW5kIG9mIHRoZSBmaWxlIGJlZm9yZSBmdGVsbCovCisgICAgZnNlZWso
KEZJTEUqKWZpbGVTdHJlYW0sIDAsIFNFRUtfRU5EKTsKKyAgICBzaXplID0gKGludDMyX3QpZnRl
bGwoKEZJTEUqKWZpbGVTdHJlYW0pOworICAgIGZzZWVrKChGSUxFKilmaWxlU3RyZWFtLCBzYXZl
ZFBvcywgU0VFS19TRVQpOworICAgIHJldHVybiBzaXplOworfQorCitVX0NBUEkgaW50IFVfRVhQ
T1JUMgorVF9GaWxlU3RyZWFtX2VvZihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIHJl
dHVybiBmZW9mKChGSUxFKilmaWxlU3RyZWFtKTsKK30KKworLyoKKyBXYXJuaW5nIAorIFRoaXMg
ZnVuY3Rpb24gbWF5IG5vdCB3b3JrIGNvbnNpc3RlbnRseSBvbiBhbGwgcGxhdGZvcm1zCisgKGUu
Zy4gSFAtVVgsIEZyZWVCU0QgYW5kIE1hY09TWCBkb24ndCByZXR1cm4gYW4gZXJyb3Igd2hlbgor
IHB1dGMgaXMgdXNlZCBvbiBhIGZpbGUgb3BlbmVkIGFzIHJlYWRvbmx5KQorKi8KK1VfQ0FQSSBp
bnQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fZXJyb3IoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSkK
K3sKKyAgICByZXR1cm4gKGZpbGVTdHJlYW0gPT0gMCB8fCBmZXJyb3IoKEZJTEUqKWZpbGVTdHJl
YW0pKTsKK30KKworLyogVGhpcyBmdW5jdGlvbiBkb2Vzbid0IHdvcmsuICovCisvKiBmb3JjZSB0
aGUgc3RyZWFtIHRvIHNldCBpdHMgZXJyb3IgZmxhZyovCisvKlVfQ0FQSSB2b2lkIFVfRVhQT1JU
MgorVF9GaWxlU3RyZWFtX3NldEVycm9yKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisgICAg
ZnNlZWsoKEZJTEUqKWZpbGVTdHJlYW0sIDk5OTk5LCBTRUVLX1NFVCk7Cit9CisqLworCitVX0NB
UEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3RkaW4odm9pZCkKK3sKKyAg
ICByZXR1cm4gKEZpbGVTdHJlYW0qKXN0ZGluOworfQorCitVX0NBUEkgRmlsZVN0cmVhbSogVV9F
WFBPUlQyCitUX0ZpbGVTdHJlYW1fc3Rkb3V0KHZvaWQpCit7CisgICAgcmV0dXJuIChGaWxlU3Ry
ZWFtKilzdGRvdXQ7Cit9CisKKworVV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxl
U3RyZWFtX3N0ZGVycih2b2lkKQoreworICAgIHJldHVybiAoRmlsZVN0cmVhbSopc3RkZXJyOwor
fQorCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcmVtb3ZlKGNvbnN0IGNo
YXIqIGZpbGVOYW1lKXsKKyAgICByZXR1cm4gKHJlbW92ZShmaWxlTmFtZSkgPT0gMCk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVz
dHJtLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVzdHJt
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGVlYmE5OGI2NjFmZDYxNzgxMTFiMGJlMDllOTMxOWViOWYxMWEwMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5i
cmsvZmlsZXN0cm0uaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBGSUxFU1RSTS5ICisqCisq
IENvbnRhaW5zIEZpbGVTdHJlYW0gaW50ZXJmYWNlCisqCisqIEBhdXRob3IgICAgICAgR2xlbm4g
TWFyY3kKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFt
ZSAgICAgICAgRGVzY3JpcHRpb24KKyogICA1LzgvOTggICAgICBnbSAgICAgICAgICBDcmVhdGVk
LgorKiAgMDMvMDIvOTkgICAgIHN0ZXBoZW4gICAgIFJlb3JkZXJlZCBwYXJhbXMgaW4gdW5nZXRj
IHRvIG1hdGNoIHN0ZGlvCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgd29wZW4K
KyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBGSUxFU1RSTV9ICisjZGVm
aW5lIEZJTEVTVFJNX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKK3R5cGVkZWYg
c3RydWN0IF9GaWxlU3RyZWFtIEZpbGVTdHJlYW07CisKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VY
UE9SVDIKK1RfRmlsZVN0cmVhbV9vcGVuKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFy
KiBtb2RlKTsKKworLyoKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVh
bV93b3Blbihjb25zdCB3Y2hhcl90KiBmaWxlbmFtZSwgY29uc3Qgd2NoYXJfdCogbW9kZSk7Cisq
LworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fY2xvc2UoRmlsZVN0cmVhbSog
ZmlsZVN0cmVhbSk7CisKK1VfQ0FQSSBVQm9vbCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9maWxl
X2V4aXN0cyhjb25zdCBjaGFyKiBmaWxlbmFtZSk7CisKKy8qCitVX0NBUEkgRmlsZVN0cmVhbSog
VV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fdG1wZmlsZSh2b2lkKTsKKyovCisKK1VfQ0FQSSBpbnQz
Ml90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3JlYWQoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwg
dm9pZCogYWRkciwgaW50MzJfdCBsZW4pOworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1Rf
RmlsZVN0cmVhbV93cml0ZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCB2b2lkKiBhZGRy
LCBpbnQzMl90IGxlbik7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3Jl
d2luZChGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKworLypBZGRlZCBieSBCZXJ0cmFuZCBBLiBE
LiAqLworVV9DQVBJIGNoYXIgKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9yZWFkTGluZShGaWxl
U3RyZWFtKiBmaWxlU3RyZWFtLCBjaGFyKiBidWZmZXIsIGludDMyX3QgbGVuZ3RoKTsKKworVV9D
QVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fd3JpdGVMaW5lKEZpbGVTdHJlYW0q
IGZpbGVTdHJlYW0sIGNvbnN0IGNoYXIqIGJ1ZmZlcik7CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQ
T1JUMgorVF9GaWxlU3RyZWFtX3B1dGMoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgaW50MzJfdCBj
aCk7CisKK1VfQ0FQSSBpbnQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fZ2V0YyhGaWxlU3RyZWFt
KiBmaWxlU3RyZWFtKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1f
dW5nZXRjKGludDMyX3QgY2gsIEZpbGVTdHJlYW0gKmZpbGVTdHJlYW0pOworCitVX0NBUEkgaW50
MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9wZWVrKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0p
OworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9zaXplKEZpbGVTdHJl
YW0qIGZpbGVTdHJlYW0pOworCitVX0NBUEkgaW50IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX2Vv
ZihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKworVV9DQVBJIGludCBVX0VYUE9SVDIKK1RfRmls
ZVN0cmVhbV9lcnJvcihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKworLyoKK1VfQ0FQSSB2b2lk
IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3NldEVycm9yKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0p
OworKi8KKworVV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3N0ZGlu
KHZvaWQpOworCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3Rk
b3V0KHZvaWQpOworCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1f
c3RkZXJyKHZvaWQpOworCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcmVt
b3ZlKGNvbnN0IGNoYXIqIGZpbGVOYW1lKTsKKworI2VuZGlmIC8qIF9GSUxFU1RSTSovCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2dlbmJyay5j
cHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2dlbmJyay5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzJjNmNmZmU3YjUyOTZkZTg2NzhlZmFlMDRiNDc1OTc0MDhmNmEwNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsv
Z2VuYnJrLmNwcApAQCAtMCwwICsxLDM0NiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5
cmlnaHQgKEMpIDIwMDItMjAwOSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorKgorKiBGaWxlIGdlbmJyay5jCisqLworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICBU
b29sIGZvciBnZW5lcmF0aW5nIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZGF0YSBmaWxlcyAoLmJy
ayBmaWxlcykuCisvLyAgIC5icmsgZmlsZXMgY29udGFpbiB0aGUgcHJlY29tcGlsZWQgcnVsZXMg
Zm9yIHN0YW5kYXJkIHR5cGVzCisvLyAgIG9mIGl0ZXJhdG9ycyAtIHdvcmQsIGxpbmUsIHNlbnRl
bmNlLCBldGMuCisvLworLy8gICBVc2FnZTogIGdlbmJyayBbb3B0aW9uc10gLXIgcnVsZS1maWxl
LnR4dCAgLW8gb3V0cHV0LWZpbGUuYnJrCisvLworLy8gICAgICAgb3B0aW9uczogICAtdiAgICAg
ICAgIHZlcmJvc2UKKy8vICAgICAgICAgICAgICAgICAgLT8gb3IgLWggICBoZWxwCisvLworLy8g
ICBUaGUgaW5wdXQgcnVsZSBmaWxlIGlzIGEgcGxhaW4gdGV4dCBmaWxlIGNvbnRhaW5pbmcgYnJl
YWsgcnVsZXMKKy8vICAgIGluIHRoZSBpbnB1dCBmb3JtYXQgYWNjZXB0ZWQgYnkgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvcnMuICBUaGUKKy8vICAgIGZpbGUgY2FuIGJlIGVuY29kZWQgYXMgdXRmLTgs
IG9yIHV0Zi0xNiAoZWl0aGVyIGVuZGlhbiksIG9yCisvLyAgICBpbiB0aGUgZGVmYXVsdCBjb2Rl
IHBhZ2UgKHBsYXRmb3JtIGRlcGVuZGVudC4pLiAgdXRmIGVuY29kZWQKKy8vICAgIGZpbGVzIG11
c3QgaW5jbHVkZSBhIEJPTS4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpbmNsdWRlICJ1bmljb2Rl
L3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWNudi5oIgorI2luY2x1ZGUgInVuaWNvZGUv
dW5pc3RyLmgiCisjaW5jbHVkZSAidW5pY29kZS9yYmJpLmgiCisjaW5jbHVkZSAidW5pY29kZS91
Y2xlYW4uaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisjaW5jbHVkZSAidW5pY29kZS9w
dXRpbC5oIgorCisjaW5jbHVkZSAidW9wdGlvbnMuaCIKKyNpbmNsdWRlICJ1bmV3ZGF0YS5oIgor
I2luY2x1ZGUgInVjbW5kYXRhLmgiCisjaW5jbHVkZSAicmJiaWRhdGEuaCIKKyNpbmNsdWRlICJj
bWVtb3J5LmgiCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2lu
Y2x1ZGUgPHN0cmluZy5oPgorCitVX05BTUVTUEFDRV9VU0UKKworc3RhdGljIGNoYXIgKnByb2dO
YW1lOworc3RhdGljIFVPcHRpb24gb3B0aW9uc1tdPXsKKyAgICBVT1BUSU9OX0hFTFBfSCwgICAg
ICAgICAgICAgLyogMCAqLworICAgIFVPUFRJT05fSEVMUF9RVUVTVElPTl9NQVJLLCAvKiAxICov
CisgICAgVU9QVElPTl9WRVJCT1NFLCAgICAgICAgICAgIC8qIDIgKi8KKyAgICB7ICJydWxlcyIs
IE5VTEwsIE5VTEwsIE5VTEwsICdyJywgVU9QVF9SRVFVSVJFU19BUkcsIDAgfSwgICAvKiAzICov
CisgICAgeyAib3V0IiwgICBOVUxMLCBOVUxMLCBOVUxMLCAnbycsIFVPUFRfUkVRVUlSRVNfQVJH
LCAwIH0sICAgLyogNCAqLworICAgIFVPUFRJT05fSUNVREFUQURJUiwgICAgICAgICAvKiA1ICov
CisgICAgVU9QVElPTl9ERVNURElSLCAgICAgICAgICAgIC8qIDYgKi8KKyAgICBVT1BUSU9OX0NP
UFlSSUdIVCwgICAgICAgICAgLyogNyAqLworfTsKKwordm9pZCB1c2FnZUFuZERpZShpbnQgcmV0
Q29kZSkgeworICAgICAgICBwcmludGYoIlVzYWdlOiAlcyBbLXZdIFstb3B0aW9uc10gLXIgcnVs
ZS1maWxlIC1vIG91dHB1dC1maWxlXG4iLCBwcm9nTmFtZSk7CisgICAgICAgIHByaW50ZigiXHRS
ZWFkIGluIGJyZWFrIGl0ZXJhdGlvbiBydWxlcyB0ZXh0IGFuZCB3cml0ZSBvdXQgdGhlIGJpbmFy
eSBkYXRhXG4iCisgICAgICAgICAgICAib3B0aW9uczpcbiIKKyAgICAgICAgICAgICJcdC1oIG9y
IC0/IG9yIC0taGVscCAgdGhpcyB1c2FnZSB0ZXh0XG4iCisgICAgICAgICAgICAiXHQtViBvciAt
LXZlcnNpb24gICAgIHNob3cgYSB2ZXJzaW9uIG1lc3NhZ2VcbiIKKyAgICAgICAgICAgICJcdC1j
IG9yIC0tY29weXJpZ2h0ICAgaW5jbHVkZSBhIGNvcHlyaWdodCBub3RpY2VcbiIKKyAgICAgICAg
ICAgICJcdC12IG9yIC0tdmVyYm9zZSAgICAgdHVybiBvbiB2ZXJib3NlIG91dHB1dFxuIgorICAg
ICAgICAgICAgIlx0LWkgb3IgLS1pY3VkYXRhZGlyICBkaXJlY3RvcnkgZm9yIGxvY2F0aW5nIGFu
eSBuZWVkZWQgaW50ZXJtZWRpYXRlIGRhdGEgZmlsZXMsXG4iCisgICAgICAgICAgICAiXHQgICAg
ICAgICAgICAgICAgICAgIGZvbGxvd2VkIGJ5IHBhdGgsIGRlZmF1bHRzIHRvICVzXG4iCisgICAg
ICAgICAgICAiXHQtZCBvciAtLWRlc3RkaXIgICAgIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSwgZm9s
bG93ZWQgYnkgdGhlIHBhdGhcbiIsCisgICAgICAgICAgICB1X2dldERhdGFEaXJlY3RvcnkoKSk7
CisgICAgICAgIGV4aXQgKHJldENvZGUpOworfQorCisKKyNpZiBVQ09ORklHX05PX0JSRUFLX0lU
RVJBVElPTiB8fCBVQ09ORklHX05PX0ZJTEVfSU8KKworLyogZHVtbXkgVURhdGFJbmZvIGNmLiB1
ZGF0YS5oICovCitzdGF0aWMgVURhdGFJbmZvIGR1bW15RGF0YUluZm8gPSB7CisgICAgc2l6ZW9m
KFVEYXRhSW5mbyksCisgICAgMCwKKworICAgIFVfSVNfQklHX0VORElBTiwKKyAgICBVX0NIQVJT
RVRfRkFNSUxZLAorICAgIFVfU0laRU9GX1VDSEFSLAorICAgIDAsCisKKyAgICB7IDAsIDAsIDAs
IDAgfSwgICAgICAgICAgICAgICAgIC8qIGR1bW15IGRhdGFGb3JtYXQgKi8KKyAgICB7IDAsIDAs
IDAsIDAgfSwgICAgICAgICAgICAgICAgIC8qIGR1bW15IGZvcm1hdFZlcnNpb24gKi8KKyAgICB7
IDAsIDAsIDAsIDAgfSAgICAgICAgICAgICAgICAgIC8qIGR1bW15IGRhdGFWZXJzaW9uICovCit9
OworCisjZWxzZQorCisvLworLy8gIFNldCB1cCB0aGUgSUNVIGRhdGEgaGVhZGVyLCBkZWZpbmVk
IGluIHVjbW5kYXRhLmgKKy8vCitEYXRhSGVhZGVyIGRoID17CisgICAge3NpemVvZihEYXRhSGVh
ZGVyKSwgICAgICAgICAgIC8vIFN0cnVjdCBNYXBwZWREYXRhCisgICAgICAgIDB4ZGEsCisgICAg
ICAgIDB4Mjd9LAorCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdHJ1
Y3QgVURhdGFJbmZvCisgICAgICAgIHNpemVvZihVRGF0YUluZm8pLCAgICAgICAgICAvLyAgICAg
c2l6ZQorICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIHJlc2VydmVk
CisgICAgICAgIFVfSVNfQklHX0VORElBTiwKKyAgICAgICAgVV9DSEFSU0VUX0ZBTUlMWSwKKyAg
ICAgICAgVV9TSVpFT0ZfVUNIQVIsCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyAgICAgcmVzZXJ2ZWQKKworICAgIHsgMHg0MiwgMHg3MiwgMHg2YiwgMHgyMCB9LCAgICAg
Ly8gICAgIGRhdGFGb3JtYXQ9IkJyayAiCisgICAgeyAweGZmLCAwLCAwLCAwIH0sICAgICAgICAg
ICAgICAvLyAgICAgZm9ybWF0VmVyc2lvbi4gIEZpbGxlZCBpbiBsYXRlciB3aXRoIHZhbHVlcwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICBmcm9tIHRoZSBSQkJJ
IHJ1bGUgYnVpbGRlci4gIFRoZSAgdmFsdWVzIGRlY2xhcmVkCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAgICAgIGhlcmUgc2hvdWxkIG5ldmVyIGFwcGVhciBpbiBhbnkg
cmVhbCBSQkJJIGRhdGEuCisgICAgICAgIHsgNCwgMSwgMCwgMCB9ICAgICAgICAgICAgICAvLyAg
IGRhdGFWZXJzaW9uIChVbmljb2RlIHZlcnNpb24pCisgICAgfX07CisKKyNlbmRpZgorCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgbWFpbiAgICAgIGZvciBnZW5icmsKKy8vCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK2ludCAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAg
ICBVRXJyb3JDb2RlICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgY29uc3QgY2hhciAqcnVs
ZUZpbGVOYW1lOworICAgIGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lOworICAgIGNvbnN0IGNoYXIg
Km91dERpciA9IE5VTEw7CisgICAgY29uc3QgY2hhciAqY29weXJpZ2h0ID0gTlVMTDsKKworICAg
IC8vCisgICAgLy8gUGljayB1cCBhbmQgY2hlY2sgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMs
CisgICAgLy8gICAgdXNpbmcgdGhlIHN0YW5kYXJkIElDVSB0b29sIHV0aWxzIG9wdGlvbiBoYW5k
bGluZy4KKyAgICAvLworICAgIFVfTUFJTl9JTklUX0FSR1MoYXJnYywgYXJndik7CisgICAgcHJv
Z05hbWUgPSBhcmd2WzBdOworICAgIGFyZ2M9dV9wYXJzZUFyZ3MoYXJnYywgYXJndiwgc2l6ZW9m
KG9wdGlvbnMpL3NpemVvZihvcHRpb25zWzBdKSwgb3B0aW9ucyk7CisgICAgaWYoYXJnYzwwKSB7
CisgICAgICAgIC8vIFVucmVjb2duaXplZCBvcHRpb24KKyAgICAgICAgZnByaW50ZihzdGRlcnIs
ICJlcnJvciBpbiBjb21tYW5kIGxpbmUgYXJndW1lbnQgXCIlc1wiXG4iLCBhcmd2Wy1hcmdjXSk7
CisgICAgICAgIHVzYWdlQW5kRGllKFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUik7CisgICAgfQor
CisgICAgaWYob3B0aW9uc1swXS5kb2VzT2NjdXIgfHwgb3B0aW9uc1sxXS5kb2VzT2NjdXIpIHsK
KyAgICAgICAgLy8gIC0/IG9yIC1oIGZvciBoZWxwLgorICAgICAgICB1c2FnZUFuZERpZSgwKTsK
KyAgICB9CisKKyAgICBpZiAoIShvcHRpb25zWzNdLmRvZXNPY2N1ciAmJiBvcHRpb25zWzRdLmRv
ZXNPY2N1cikpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJydWxlIGZpbGUgYW5kIG91dHB1
dCBmaWxlIG11c3QgYm90aCBiZSBzcGVjaWZpZWQuXG4iKTsKKyAgICAgICAgdXNhZ2VBbmREaWUo
VV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SKTsKKyAgICB9CisgICAgcnVsZUZpbGVOYW1lID0gb3B0
aW9uc1szXS52YWx1ZTsKKyAgICBvdXRGaWxlTmFtZSAgPSBvcHRpb25zWzRdLnZhbHVlOworCisg
ICAgaWYgKG9wdGlvbnNbNV0uZG9lc09jY3VyKSB7CisgICAgICAgIHVfc2V0RGF0YURpcmVjdG9y
eShvcHRpb25zWzVdLnZhbHVlKTsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7
CisKKyAgICAvKiBDb21iaW5lIHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUgZmlsZSBuYW1lICovCisg
ICAgaWYob3B0aW9uc1s2XS5kb2VzT2NjdXIpIHsKKyAgICAgICAgb3V0RGlyID0gb3B0aW9uc1s2
XS52YWx1ZTsKKyAgICB9CisgICAgaWYgKG9wdGlvbnNbN10uZG9lc09jY3VyKSB7CisgICAgICAg
IGNvcHlyaWdodCA9IFVfQ09QWVJJR0hUX1NUUklORzsKKyAgICB9CisKKyNpZiBVQ09ORklHX05P
X0JSRUFLX0lURVJBVElPTiB8fCBVQ09ORklHX05PX0ZJTEVfSU8KKworICAgIFVOZXdEYXRhTWVt
b3J5ICpwRGF0YTsKKyAgICBjaGFyIG1zZ1sxMDI0XTsKKworICAgIC8qIHdyaXRlIG1lc3NhZ2Ug
d2l0aCBqdXN0IHRoZSBuYW1lICovCisgICAgc3ByaW50Zihtc2csICJnZW5icmsgd3JpdGVzIGR1
bW15ICVzIGJlY2F1c2Ugb2YgVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gYW5kL29yIFVDT05G
SUdfTk9fRklMRV9JTywgc2VlIHVjb25maWcuaCIsIG91dEZpbGVOYW1lKTsKKyAgICBmcHJpbnRm
KHN0ZGVyciwgIiVzXG4iLCBtc2cpOworCisgICAgLyogd3JpdGUgdGhlIGR1bW15IGRhdGEgZmls
ZSAqLworICAgIHBEYXRhID0gdWRhdGFfY3JlYXRlKG91dERpciwgTlVMTCwgb3V0RmlsZU5hbWUs
ICZkdW1teURhdGFJbmZvLCBOVUxMLCAmc3RhdHVzKTsKKyAgICB1ZGF0YV93cml0ZUJsb2NrKHBE
YXRhLCBtc2csIHN0cmxlbihtc2cpKTsKKyAgICB1ZGF0YV9maW5pc2gocERhdGEsICZzdGF0dXMp
OworICAgIHJldHVybiAoaW50KXN0YXR1czsKKworI2Vsc2UKKyAgICAvKiBJbml0aWFsaXplIElD
VSAqLworICAgIHVfaW5pdCgmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsK
KyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczogY2FuIG5vdCBpbml0aWFsaXplIElDVS4gIHN0
YXR1cyA9ICVzXG4iLAorICAgICAgICAgICAgYXJndlswXSwgdV9lcnJvck5hbWUoc3RhdHVzKSk7
CisgICAgICAgIGV4aXQoMSk7CisgICAgfQorICAgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKwor
ICAgIC8vCisgICAgLy8gIFJlYWQgaW4gdGhlIHJ1bGUgc291cmNlIGZpbGUKKyAgICAvLworICAg
IGxvbmcgICAgICAgIHJlc3VsdDsKKyAgICBsb25nICAgICAgICBydWxlRmlsZVNpemU7CisgICAg
RklMRSAgICAgICAgKmZpbGU7CisgICAgY2hhciAgICAgICAgKnJ1bGVCdWZmZXJDOworCisgICAg
ZmlsZSA9IGZvcGVuKHJ1bGVGaWxlTmFtZSwgInJiIik7CisgICAgaWYoIGZpbGUgPT0gMCApIHsK
KyAgICAgICAgZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIlxuIiwg
cnVsZUZpbGVOYW1lKTsKKyAgICAgICAgZXhpdCgtMSk7CisgICAgfQorICAgIGZzZWVrKGZpbGUs
IDAsIFNFRUtfRU5EKTsKKyAgICBydWxlRmlsZVNpemUgPSBmdGVsbChmaWxlKTsKKyAgICBmc2Vl
ayhmaWxlLCAwLCBTRUVLX1NFVCk7CisgICAgcnVsZUJ1ZmZlckMgPSBuZXcgY2hhcltydWxlRmls
ZVNpemUrMTBdOworCisgICAgcmVzdWx0ID0gKGxvbmcpZnJlYWQocnVsZUJ1ZmZlckMsIDEsIHJ1
bGVGaWxlU2l6ZSwgZmlsZSk7CisgICAgaWYgKHJlc3VsdCAhPSBydWxlRmlsZVNpemUpICB7Cisg
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3IgcmVhZGluZyBmaWxlIFwiJXNcIlxuIiwgcnVs
ZUZpbGVOYW1lKTsKKyAgICAgICAgZXhpdCAoLTEpOworICAgIH0KKyAgICBydWxlQnVmZmVyQ1ty
dWxlRmlsZVNpemVdPTA7CisgICAgZmNsb3NlKGZpbGUpOworCisgICAgLy8KKyAgICAvLyBMb29r
IGZvciBhIFVuaWNvZGUgU2lnbmF0dXJlIChCT00pIG9uIHRoZSBydWxlIGZpbGUKKyAgICAvLwor
ICAgIGludDMyX3QgICAgICAgIHNpZ25hdHVyZUxlbmd0aDsKKyAgICBjb25zdCBjaGFyICogICBy
dWxlU291cmNlQyA9IHJ1bGVCdWZmZXJDOworICAgIGNvbnN0IGNoYXIqICAgIGVuY29kaW5nID0g
dWNudl9kZXRlY3RVbmljb2RlU2lnbmF0dXJlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
cnVsZVNvdXJjZUMsIHJ1bGVGaWxlU2l6ZSwgJnNpZ25hdHVyZUxlbmd0aCwgJnN0YXR1cyk7Cisg
ICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9
CisgICAgaWYoZW5jb2RpbmchPU5VTEwgKXsKKyAgICAgICAgcnVsZVNvdXJjZUMgICs9IHNpZ25h
dHVyZUxlbmd0aDsKKyAgICAgICAgcnVsZUZpbGVTaXplIC09IHNpZ25hdHVyZUxlbmd0aDsKKyAg
ICB9CisKKyAgICAvLworICAgIC8vIE9wZW4gYSBjb252ZXJ0ZXIgdG8gdGFrZSB0aGUgcnVsZSBm
aWxlIHRvIFVURi0xNgorICAgIC8vCisgICAgVUNvbnZlcnRlciogY29udjsKKyAgICBjb252ID0g
dWNudl9vcGVuKGVuY29kaW5nLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykp
IHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1Y252X29wZW46IElDVSBFcnJvciBcIiVzXCJc
biIsIHVfZXJyb3JOYW1lKHN0YXR1cykpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfQor
CisgICAgLy8KKyAgICAvLyBDb252ZXJ0IHRoZSBydWxlcyB0byBVQ2hhci4KKyAgICAvLyAgUHJl
ZmxpZ2h0IGZpcnN0IHRvIGRldGVybWluZSByZXF1aXJlZCBidWZmZXIgc2l6ZS4KKyAgICAvLwor
ICAgIHVpbnQzMl90IGRlc3RDYXAgPSB1Y252X3RvVUNoYXJzKGNvbnYsCisgICAgICAgICAgICAg
ICAgICAgICAgIE5VTEwsICAgICAgICAgICAvLyAgZGVzdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgMCwgICAgICAgICAgICAgIC8vICBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAg
ICAgIHJ1bGVTb3VyY2VDLAorICAgICAgICAgICAgICAgICAgICAgICBydWxlRmlsZVNpemUsCisg
ICAgICAgICAgICAgICAgICAgICAgICZzdGF0dXMpOworICAgIGlmIChzdGF0dXMgIT0gVV9CVUZG
RVJfT1ZFUkZMT1dfRVJST1IpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1Y252X3RvVUNo
YXJzOiBJQ1UgRXJyb3IgXCIlc1wiXG4iLCB1X2Vycm9yTmFtZShzdGF0dXMpKTsKKyAgICAgICAg
ZXhpdChzdGF0dXMpOworICAgIH07CisKKyAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAg
VUNoYXIgKnJ1bGVTb3VyY2VVID0gbmV3IFVDaGFyW2Rlc3RDYXArMV07CisgICAgdWNudl90b1VD
aGFycyhjb252LAorICAgICAgICAgICAgICAgICAgcnVsZVNvdXJjZVUsICAgICAvLyAgZGVzdCwK
KyAgICAgICAgICAgICAgICAgIGRlc3RDYXArMSwKKyAgICAgICAgICAgICAgICAgIHJ1bGVTb3Vy
Y2VDLAorICAgICAgICAgICAgICAgICAgcnVsZUZpbGVTaXplLAorICAgICAgICAgICAgICAgICAg
JnN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGZwcmludGYo
c3RkZXJyLCAidWNudl90b1VDaGFyczogSUNVIEVycm9yIFwiJXNcIlxuIiwgdV9lcnJvck5hbWUo
c3RhdHVzKSk7CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9OworICAgIHVjbnZfY2xvc2Uo
Y29udik7CisKKworICAgIC8vCisgICAgLy8gIFB1dCB0aGUgc291cmNlIHJ1bGVzIGludG8gYSBV
bmljb2RlU3RyaW5nCisgICAgLy8KKyAgICBVbmljb2RlU3RyaW5nIHJ1bGVTb3VyY2VTKEZBTFNF
LCBydWxlU291cmNlVSwgZGVzdENhcCk7CisKKyAgICAvLworICAgIC8vICBDcmVhdGUgdGhlIGJy
ZWFrIGl0ZXJhdG9yIGZyb20gdGhlIHJ1bGVzCisgICAgLy8gICAgIFRoaXMgd2lsbCBjb21waWxl
IHRoZSBydWxlcy4KKyAgICAvLworICAgIFVQYXJzZUVycm9yIHBhcnNlRXJyb3I7CisgICAgcGFy
c2VFcnJvci5saW5lID0gMDsKKyAgICBwYXJzZUVycm9yLm9mZnNldCA9IDA7CisgICAgUnVsZUJh
c2VkQnJlYWtJdGVyYXRvciAqYmkgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihydWxlU291
cmNlUywgcGFyc2VFcnJvciwgc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsK
KyAgICAgICAgZnByaW50ZihzdGRlcnIsICJjcmVhdGVSdWxlQmFzZWRCcmVha0l0ZXJhdG9yOiBJ
Q1UgRXJyb3IgXCIlc1wiICBhdCBsaW5lICVkLCBjb2x1bW4gJWRcbiIsCisgICAgICAgICAgICAg
ICAgdV9lcnJvck5hbWUoc3RhdHVzKSwgKGludClwYXJzZUVycm9yLmxpbmUsIChpbnQpcGFyc2VF
cnJvci5vZmZzZXQpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfTsKKworCisgICAgLy8K
KyAgICAvLyAgR2V0IHRoZSBjb21waWxlZCBydWxlIGRhdGEgZnJvbSB0aGUgYnJlYWsgaXRlcmF0
b3IuCisgICAgLy8KKyAgICB1aW50MzJfdCAgICAgICAgb3V0RGF0YVNpemU7CisgICAgY29uc3Qg
dWludDhfdCAgKm91dERhdGE7CisgICAgb3V0RGF0YSA9IGJpLT5nZXRCaW5hcnlSdWxlcyhvdXRE
YXRhU2l6ZSk7CisKKyAgICAvLyBDb3B5IHRoZSBkYXRhIGZvcm1hdCB2ZXJzaW9uIG51bWJlcnMg
ZnJvbSB0aGUgUkJCSSBkYXRhIGhlYWRlciBpbnRvIHRoZSBVRGF0YU1lbW9yeSBoZWFkZXIuCisg
ICAgdXBydl9tZW1jcHkoZGguaW5mby5mb3JtYXRWZXJzaW9uLCAoKFJCQklEYXRhSGVhZGVyICop
b3V0RGF0YSktPmZGb3JtYXRWZXJzaW9uLCBzaXplb2YoZGguaW5mby5mb3JtYXRWZXJzaW9uKSk7
CisKKyAgICAvLworICAgIC8vICBDcmVhdGUgdGhlIG91dHB1dCBmaWxlCisgICAgLy8KKyAgICBz
aXplX3QgYnl0ZXNXcml0dGVuOworICAgIFVOZXdEYXRhTWVtb3J5ICpwRGF0YTsKKyAgICBwRGF0
YSA9IHVkYXRhX2NyZWF0ZShvdXREaXIsIE5VTEwsIG91dEZpbGVOYW1lLCAmKGRoLmluZm8pLCBj
b3B5cmlnaHQsICZzdGF0dXMpOworICAgIGlmKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAg
IGZwcmludGYoc3RkZXJyLCAiZ2VuYnJrOiBDb3VsZCBub3Qgb3BlbiBvdXRwdXQgZmlsZSBcIiVz
XCIsIFwiJXNcIlxuIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgb3V0RmlsZU5hbWUsIHVf
ZXJyb3JOYW1lKHN0YXR1cykpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfQorCisKKyAg
ICAvLyAgV3JpdGUgdGhlIGRhdGEgaXRzZWxmLgorICAgIHVkYXRhX3dyaXRlQmxvY2socERhdGEs
IG91dERhdGEsIG91dERhdGFTaXplKTsKKyAgICAvLyBmaW5pc2ggdXAgCisgICAgYnl0ZXNXcml0
dGVuID0gdWRhdGFfZmluaXNoKHBEYXRhLCAmc3RhdHVzKTsKKyAgICBpZihVX0ZBSUxVUkUoc3Rh
dHVzKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImdlbmJyazogZXJyb3IgJWQgd3JpdGlu
ZyB0aGUgb3V0cHV0IGZpbGVcbiIsIHN0YXR1cyk7CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAg
ICB9CisgICAgCisgICAgaWYgKGJ5dGVzV3JpdHRlbiAhPSBvdXREYXRhU2l6ZSkgeworICAgICAg
ICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yIHdyaXRpbmcgdG8gb3V0cHV0IGZpbGUgXCIlc1wiXG4i
LCBvdXRGaWxlTmFtZSk7CisgICAgICAgIGV4aXQoLTEpOworICAgIH0KKworICAgIGRlbGV0ZSBi
aTsKKyAgICBkZWxldGVbXSBydWxlU291cmNlVTsKKyAgICBkZWxldGVbXSBydWxlQnVmZmVyQzsK
KyAgICB1X2NsZWFudXAoKTsKKworCisgICAgcHJpbnRmKCJnZW5icms6IHRvb2wgY29tcGxldGVk
IHN1Y2Nlc3NmdWxseS5cbiIpOworICAgIHJldHVybiAwOworCisjZW5kaWYgLyogI2lmICFVQ09O
RklHX05PX0JSRUFLX0lURVJBVElPTiAqLworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3B1dGlsaW1wLmggYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3B1dGlsaW1wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDJjMWM2NmYx
NzAxNDVjM2QwYmMwMjNiNjE3MDk1NzMzNDAyMDViNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvcHV0aWxpbXAuaApAQCAtMCwwICsx
LDYxMSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykg
MTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRp
b24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKyoKKyogIEZJTEUgTkFNRSA6IHB1dGlsaW1wLmgKKyoKKyogICBEYXRlICAgICAgICBO
YW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDEwLzE3LzA0ICAgIGdyaG90ZW4gICAgIE1vdmUg
aW50ZXJuYWwgZnVuY3Rpb25zIGZyb20gcHV0aWwuaCB0byB0aGlzIGZpbGUuCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyovCisKKyNpZm5kZWYgUFVUSUxJTVBfSAorI2RlZmluZSBQVVRJTElNUF9I
CisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwu
aCIKKworLyoqCisgKiBcZGVmIFVfU0lHTkVEX1JJR0hUX1NISUZUX0lTX0FSSVRITUVUSUMKKyAq
IE5lYXJseSBhbGwgQ1BVcyBhbmQgY29tcGlsZXJzIGltcGxlbWVudCBhIHJpZ2h0LXNoaWZ0IG9m
IGEgc2lnbmVkIGludGVnZXIKKyAqIGFzIGFuIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgd2hpY2gg
Y29waWVzIHRoZSBzaWduIGJpdCAodGhlIE1vc3QgU2lnbmlmaWNhbnQgQml0IChNU0IpKQorICog
aW50byB0aGUgdmFjYXRlZCBiaXRzIChzaWduIGV4dGVuc2lvbikuCisgKiBGb3IgZXhhbXBsZSwg
KGludDMyX3QpMHhmZmY1ZmZmMz4+NCBiZWNvbWVzIDB4ZmZmZjVmZmYgYW5kIC0xPj4xPS0xLgor
ICoKKyAqIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3Igc3RvcmluZyBhIHNpZ25lZCB2YWx1ZSBpbiB0
aGUgdXBwZXIgYml0cworICogYW5kIGFub3RoZXIgYml0IGZpZWxkIGluIHRoZSBsb3dlciBiaXRz
LgorICogVGhlIHNpZ25lZCB2YWx1ZSBjYW4gYmUgcmV0cmlldmVkIGJ5IHNpbXBsZSByaWdodC1z
aGlmdGluZy4KKyAqCisgKiBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgSmF2YSBsYW5ndWFn
ZS4KKyAqCisgKiBIb3dldmVyLCB0aGUgQyBzdGFuZGFyZCBhbGxvd3MgY29tcGlsZXJzIHRvIGlt
cGxlbWVudCBhIHJpZ2h0LXNoaWZ0IG9mIGEgc2lnbmVkIGludGVnZXIKKyAqIGFzIGEgTG9naWNh
bCBTaGlmdCBSaWdodCB3aGljaCBjb3BpZXMgYSAwIGludG8gdGhlIHZhY2F0ZWQgYml0cy4KKyAq
IEZvciBleGFtcGxlLCAoaW50MzJfdCkweGZmZjVmZmYzPj40IGJlY29tZXMgMHgwZmZmNWZmZiBh
bmQgLTE+PjE9MHg3ZmZmZmZmZi4KKyAqCisgKiBDb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgbmF0
dXJhbCBiZWhhdmlvciBzaG91bGQgYmUgZ3VhcmRlZCB3aXRoIHRoaXMgbWFjcm8sCisgKiB3aXRo
IGFuIGFsdGVybmF0ZSBwYXRoIGZvciB1bnVzdWFsIHBsYXRmb3Jtcy4KKyAqIEBpbnRlcm5hbAor
ICovCisjaWZkZWYgVV9TSUdORURfUklHSFRfU0hJRlRfSVNfQVJJVEhNRVRJQworICAgIC8qIFVz
ZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbHNlCisgICAgLyoKKyAgICAgKiBOZWFybHkg
YWxsIENQVXMgJiBjb21waWxlcnMgaW1wbGVtZW50IGEgcmlnaHQtc2hpZnQgb2YgYSBzaWduZWQg
aW50ZWdlcgorICAgICAqIGFzIGFuIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgKHdpdGggc2lnbiBl
eHRlbnNpb24pLgorICAgICAqLworIyAgIGRlZmluZSBVX1NJR05FRF9SSUdIVF9TSElGVF9JU19B
UklUSE1FVElDIDEKKyNlbmRpZgorCisvKiogRGVmaW5lIHRoaXMgdG8gMSBpZiB5b3VyIHBsYXRm
b3JtIHN1cHBvcnRzIElFRUUgNzU0IGZsb2F0aW5nIHBvaW50LAorICAgdG8gMCBpZiBpdCBkb2Vz
IG5vdC4gKi8KKyNpZm5kZWYgSUVFRV83NTQKKyMgICBkZWZpbmUgSUVFRV83NTQgMQorI2VuZGlm
CisKKy8qKgorICogdWludHB0cl90IGlzIGFuIG9wdGlvbmFsIHBhcnQgb2YgdGhlIHN0YW5kYXJk
IGRlZmluaXRpb25zIGluIHN0ZGludC5oLgorICogVGhlIG9wZW5ncm91cC5vcmcgZG9jdW1lbnRh
dGlvbiBmb3Igc3RkaW50Lmggc2F5cworICogIk9uIFhTSS1jb25mb3JtYW50IHN5c3RlbXMsIHRo
ZSBpbnRwdHJfdCBhbmQgdWludHB0cl90IHR5cGVzIGFyZSByZXF1aXJlZDsKKyAqIG90aGVyd2lz
ZSwgdGhleSBhcmUgb3B0aW9uYWwuIgorICogV2UgYXNzdW1lIHRoYXQgd2hlbiB1aW50cHRyX3Qg
aXMgZGVmaW5lZCwgVUlOVFBUUl9NQVggaXMgZGVmaW5lZCBhcyB3ZWxsLgorICoKKyAqIERvIG5v
dCB1c2UgcHRyZGlmZl90IHNpbmNlIGl0IGlzIHNpZ25lZC4gc2l6ZV90IGlzIHVuc2lnbmVkLgor
ICovCisvKiBUT0RPOiBUaGlzIGNoZWNrIGZhaWxzIG9uIHNvbWUgeiBlbnZpcm9ubWVudHMuIEZp
bGVkIGEgdGlja2V0ICM5MzU3IGZvciB0aGlzLiAqLworI2lmICFkZWZpbmVkKF9faW50cHRyX3Rf
ZGVmaW5lZCkgJiYgIWRlZmluZWQoVUlOVFBUUl9NQVgpICYmIChVX1BMQVRGT1JNICE9IFVfUEZf
T1MzOTApCit0eXBlZGVmIHNpemVfdCB1aW50cHRyX3Q7CisjZW5kaWYKKworLyoqCisgKiBcZGVm
IFVfSEFWRV9NU1ZDXzIwMDNfT1JfRUFSTElFUgorICogRmxhZyBmb3Igd29ya2Fyb3VuZCBvZiBN
U1ZDIDIwMDMgb3B0aW1pemF0aW9uIGJ1Z3MKKyAqIEBpbnRlcm5hbAorICovCisjaWYgIWRlZmlu
ZWQoVV9IQVZFX01TVkNfMjAwM19PUl9FQVJMSUVSKSAmJiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAo
X01TQ19WRVIgPCAxNDAwKQorI2RlZmluZSBVX0hBVkVfTVNWQ18yMDAzX09SX0VBUkxJRVIKKyNl
bmRpZgorCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCisvKiogQHsgSW5mb3JtYXRpb24gYWJvdXQg
UE9TSVggc3VwcG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSovCisKKyNpZmRlZiBVX0hBVkVfTkxfTEFOR0lORk9fQ09ERVNF
VAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1f
SEFTX1dJTjMyX0FQSSB8fCBVX1BMQVRGT1JNID09IFVfUEZfQU5EUk9JRCB8fCBVX1BMQVRGT1JN
ID09IFVfUEZfUU5YCisjICAgZGVmaW5lIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUIDAKKyNl
bHNlCisjICAgZGVmaW5lIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUIDEKKyNlbmRpZgorCisj
aWZkZWYgVV9OTF9MQU5HSU5GT19DT0RFU0VUCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgIVVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUCisjICAgZGVmaW5lIFVf
TkxfTEFOR0lORk9fQ09ERVNFVCAtMQorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisg
ICAvKiBub3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9OTF9MQU5HSU5GT19DT0RF
U0VUIENPREVTRVQKKyNlbmRpZgorCisjaWZkZWYgVV9UWlNFVAorICAgIC8qIFVzZSB0aGUgcHJl
ZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSQor
IyAgIGRlZmluZSBVX1RaU0VUIF90enNldAorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAw
CisgICAvKiBub3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9UWlNFVCB0enNldAor
I2VuZGlmCisKKyNpZiBkZWZpbmVkKFVfVElNRVpPTkUpIHx8IGRlZmluZWQoVV9IQVZFX1RJTUVa
T05FKQorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZP
Uk0gPT0gVV9QRl9BTkRST0lECisjICAgZGVmaW5lIFVfVElNRVpPTkUgdGltZXpvbmUKKyNlbGlm
IFVfUExBVEZPUk1fSVNfTElOVVhfQkFTRUQKKyMgICBpZiBkZWZpbmVkKF9fVUNMSUJDX18pCisg
ICAgICAgLyogdUNsaWJjIGRvZXMgbm90IGhhdmUgX190aW1lem9uZSBvciBfdGltZXpvbmUuICov
CisjICAgZWxpZiBkZWZpbmVkKF9ORVdMSUJfVkVSU0lPTikKKyMgICAgICBkZWZpbmUgVV9USU1F
Wk9ORSAgICAgIF90aW1lem9uZQorIyAgIGVsaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICAgICAg
LyogZ2xpYmMgKi8KKyMgICAgICBkZWZpbmUgVV9USU1FWk9ORSAgICAgIF9fdGltZXpvbmUKKyMg
ICBlbmRpZgorI2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5l
IFVfVElNRVpPTkUgX3RpbWV6b25lCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQlNEICYmICFk
ZWZpbmVkKF9fTmV0QlNEX18pCisgICAvKiBub3QgZGVmaW5lZCAqLworI2VsaWYgVV9QTEFURk9S
TSA9PSBVX1BGX09TNDAwCisgICAvKiBub3QgZGVmaW5lZCAqLworI2VsaWYgVV9QTEFURk9STSA9
PSBVX1BGX0lQSE9ORQorICAgLyogbm90IGRlZmluZWQgKi8KKyNlbHNlCisjICAgZGVmaW5lIFVf
VElNRVpPTkUgdGltZXpvbmUKKyNlbmRpZgorCisjaWZkZWYgVV9UWk5BTUUKKyAgICAvKiBVc2Ug
dGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4z
Ml9BUEkKKyMgICBkZWZpbmUgVV9UWk5BTUUgX3R6bmFtZQorI2VsaWYgVV9QTEFURk9STSA9PSBV
X1BGX09TNDAwCisgICAvKiBub3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9UWk5B
TUUgdHpuYW1lCisjZW5kaWYKKworI2lmZGVmIFVfSEFWRV9NTUFQCisgICAgLyogVXNlIHRoZSBw
cmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisjICAg
ZGVmaW5lIFVfSEFWRV9NTUFQIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9NTUFQIDEKKyNl
bmRpZgorCisjaWZkZWYgVV9IQVZFX1BPUEVOCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5l
IFVfSEFWRV9QT1BFTiAwCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAKKyMgICBkZWZp
bmUgVV9IQVZFX1BPUEVOIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9QT1BFTiAxCisjZW5k
aWYKKworLyoqCisgKiBcZGVmIFVfSEFWRV9ESVJFTlRfSAorICogRGVmaW5lcyB3aGV0aGVyIGRp
cmVudC5oIGlzIGF2YWlsYWJsZS4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX0RJ
UkVOVF9ICisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFU
Rk9STV9IQVNfV0lOMzJfQVBJCisjICAgZGVmaW5lIFVfSEFWRV9ESVJFTlRfSCAwCisjZWxzZQor
IyAgIGRlZmluZSBVX0hBVkVfRElSRU5UX0ggMQorI2VuZGlmCisKKy8qKiBAfSAqLworCisvKj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSovCisvKiogQHsgR0NDIGJ1aWx0IGluIGZ1bmN0aW9ucyBmb3IgYXRv
bWljIG1lbW9yeSBvcGVyYXRpb25zICAgICAgICAgICAgICAgICAgICovCisvKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCisKKy8qKgorICogXGRlZiBVX0hBVkVfR0NDX0FUT01JQ1MKKyAqIEBpbnRlcm5h
bAorICovCisjaWZkZWYgVV9IQVZFX0dDQ19BVE9NSUNTCisgICAgLyogVXNlIHRoZSBwcmVkZWZp
bmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX01JTkdXCisgICAgI2RlZmlu
ZSBVX0hBVkVfR0NDX0FUT01JQ1MgMAorI2VsaWYgVV9HQ0NfTUFKT1JfTUlOT1IgPj0gNDA0IHx8
IGRlZmluZWQoX19jbGFuZ19fKQorICAgIC8qIFRPRE86IEludGVsIGljYyBhbmQgSUJNIHhsYyBv
biBBSVggYWxzbyBzdXBwb3J0IGdjYyBhdG9taWNzLiAgKEludGVsIG9yaWdpbmF0ZWQgdGhlbS4p
CisgICAgICogICAgICAgQWRkIHRoZW0gZm9yIHRoZXNlIGNvbXBpbGVycy4KKyAgICAgKiBOb3Rl
OiBDbGFuZyBzZXRzIF9fR05VQ19fIGRlZmluZXMgZm9yIHZlcnNpb24gNC4yLCBzbyBtaXNzZXMg
dGhlIDQuNCB0ZXN0IGhlcmUuCisgICAgICovCisjICAgZGVmaW5lIFVfSEFWRV9HQ0NfQVRPTUlD
UyAxCisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfR0NDX0FUT01JQ1MgMAorI2VuZGlmCisKKy8q
KiBAfSAqLworCisvKioKKyAqIFxkZWYgVV9IQVZFX1NURF9BVE9NSUNTCisgKiBEZWZpbmVzIHdo
ZXRoZXIgdGhlIHN0YW5kYXJkIEMrKzExIDxhdG9taWM+IGlzIGF2YWlsYWJsZS4KKyAqIElDVSB3
aWxsIHVzZSB0aGlzIHdoZW4gYXZpYWxhYmxlLAorICogb3RoZXJ3aXNlIHdpbGwgZmFsbCBiYWNr
IHRvIGNvbXBpbGVyIG9yIHBsYXRmb3JtIHNwZWNpZmljIGFsdGVybmF0aXZlcy4KKyAqIEBpbnRl
cm5hbAorICovCisjaWZkZWYgVV9IQVZFX1NURF9BVE9NSUNTCisgICAgLyogVXNlIHRoZSBwcmVk
ZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgIWRlZmluZWQoX19jcGx1c3BsdXMpIHx8IF9fY3BsdXNw
bHVzPDIwMTEwM0wKKyAgICAvKiBOb3QgQysrMTEsIGRpc2FibGUgdXNlIG9mIGF0b21pY3MgKi8K
KyMgICBkZWZpbmUgVV9IQVZFX1NURF9BVE9NSUNTIDAKKyNlbGlmIF9fY2xhbmdfXyAmJiBfX2Ns
YW5nX21ham9yX189PTMgJiYgX19jbGFuZ19taW5vcl9fPD0xCisgICAgLyogQ2xhbmcgMy4xLCBo
YXMgYXRvbWljIHZhcmlhYmxlIGluaXRpYWxpemVyIGJ1Zy4gKi8KKyMgICBkZWZpbmUgVV9IQVZF
X1NURF9BVE9NSUNTIDAKKyNlbHNlIAorICAgIC8qIFVfSEFWRV9BVE9NSUMgaXMgdHlwaWNhbGx5
IHNldCBieSBhbiBhdXRvY29uZiB0ZXN0IG9mICNpbmNsdWRlIDxhdG9taWM+ICAqLworICAgIC8q
ICAgQ2FuIGJlIHNldCBtYW51YWxseSwgb3IgbGVmdCB1bmRlZmluZWQsIG9uIHBsYXRmb3JtcyB3
aXRob3V0IGF1dG9jb25mLiAqLworIyAgIGlmIGRlZmluZWQoVV9IQVZFX0FUT01JQykgJiYgIFVf
SEFWRV9BVE9NSUMgCisjICAgICAgZGVmaW5lIFVfSEFWRV9TVERfQVRPTUlDUyAxCisjICAgZWxz
ZQorIyAgICAgIGRlZmluZSBVX0hBVkVfU1REX0FUT01JQ1MgMAorIyAgIGVuZGlmCisjZW5kaWYK
KworCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSovCisvKiogQHsgQ29kZSBhbGlnbm1lbnQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSovCisKKy8qKgorICogXGRlZiBVX0FMSUdOX0NPREUKKyAqIFRoaXMg
aXMgdXNlZCB0byBhbGlnbiBjb2RlIGZyYWdtZW50cyB0byBhIHNwZWNpZmljIGJ5dGUgYm91bmRh
cnkuCisgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2V0dGluZyBjb25zaXN0ZW50IHBlcmZvcm1hbmNl
IHRlc3QgcmVzdWx0cy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9BTElHTl9DT0RFCisg
ICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChfTVNDX1ZF
UikgJiYgZGVmaW5lZChfTV9JWDg2KSAmJiAhZGVmaW5lZChfTUFOQUdFRCkKKyMgICBkZWZpbmUg
VV9BTElHTl9DT0RFKGJvdW5kYXJ5U2l6ZSkgX19hc20gIGFsaWduIGJvdW5kYXJ5U2l6ZQorI2Vs
c2UKKyMgICBkZWZpbmUgVV9BTElHTl9DT0RFKGJvdW5kYXJ5U2l6ZSkgCisjZW5kaWYKKworLyoq
IEB9ICovCisKKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKy8qKiBAeyBQcm9ncmFtcyB1c2VkIGJ5
IElDVSBjb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
Ky8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ki8KKworLyoqCisgKiBcZGVmIFVfTUFLRV9JU19OTUFLRQor
ICogRGVmaW5lcyB3aGV0aGVyIHRoZSAibWFrZSIgcHJvZ3JhbSBpcyBXaW5kb3dzIG5tYWtlLgor
ICovCisjaWZkZWYgVV9NQUtFX0lTX05NQUtFCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX1dJTkRPV1MKKyMgICBkZWZpbmUgVV9N
QUtFX0lTX05NQUtFIDEKKyNlbHNlCisjICAgZGVmaW5lIFVfTUFLRV9JU19OTUFLRSAwCisjZW5k
aWYKKworLyoqIEB9ICovCisKKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworLyogUGxhdGZvcm0gdXRp
bGl0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICovCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKworLyoqCisgKiBQbGF0Zm9ybSB1dGlsaXRp
ZXMgaXNvbGF0ZXMgdGhlIHBsYXRmb3JtIGRlcGVuZGVuY2llcyBvZiB0aGUKKyAqIGxpYmFyYXJ5
LiAgRm9yIGVhY2ggcGxhdGZvcm0gd2hpY2ggdGhpcyBjb2RlIGlzIHBvcnRlZCB0bywgdGhlc2UK
KyAqIGZ1bmN0aW9ucyBtYXkgaGF2ZSB0byBiZSByZS1pbXBsZW1lbnRlZC4KKyAqLworCisvKioK
KyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gZGV0ZXJtaW5lIGlmIGEgZG91YmxlIGlzIE5v
dCBhIE51bWJlciAoTmFOKS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIFVCb29sICAg
VV9FWFBPUlQyIHVwcnZfaXNOYU4oZG91YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1
dGlsaXR5IHRvIGRldGVybWluZSBpZiBhIGRvdWJsZSBoYXMgYW4gaW5maW5pdGUgdmFsdWUuCisg
KiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBVQm9vbCAgIFVfRVhQT1JUMiB1cHJ2X2lzSW5m
aW5pdGUoZG91YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGRldGVy
bWluZSBpZiBhIGRvdWJsZSBoYXMgYSBwb3NpdGl2ZSBpbmZpbml0ZSB2YWx1ZS4KKyAqIEBpbnRl
cm5hbAorICovCitVX0lOVEVSTkFMIFVCb29sICAgVV9FWFBPUlQyIHVwcnZfaXNQb3NpdGl2ZUlu
ZmluaXR5KGRvdWJsZSBkKTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBkZXRl
cm1pbmUgaWYgYSBkb3VibGUgaGFzIGEgbmVnYXRpdmUgaW5maW5pdGUgdmFsdWUuCisgKiBAaW50
ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBVQm9vbCAgIFVfRVhQT1JUMiB1cHJ2X2lzTmVnYXRpdmVJ
bmZpbml0eShkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdGhhdCBy
ZXR1cm5zIGEgTm90IGEgTnVtYmVyIChOYU4pIHZhbHVlLgorICogQGludGVybmFsCisgKi8KK1Vf
SU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9nZXROYU4odm9pZCk7CisvKioKKyAqIEZs
b2F0aW5nIHBvaW50IHV0aWxpdHkgdGhhdCByZXR1cm5zIGFuIGluZmluaXRlIHZhbHVlLgorICog
QGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9nZXRJbmZp
bml0eSh2b2lkKTsKKworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIHRydW5jYXRl
IGEgZG91YmxlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9S
VDIgdXBydl90cnVuYyhkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkg
dG8gY2FsY3VsYXRlIHRoZSBmbG9vciBvZiBhIGRvdWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitV
X0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfZmxvb3IoZG91YmxlIGQpOworLyoqCisg
KiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSB0aGUgY2VpbGluZyBvZiBhIGRv
dWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVw
cnZfY2VpbChkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2Fs
Y3VsYXRlIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiBhIGRvdWJsZS4KKyAqIEBpbnRlcm5hbAorICov
CitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfZmFicyhkb3VibGUgZCk7CisvKioK
KyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBmcmFjdGlvbmFsIGFu
ZCBpbnRlZ2VyIHBhcnRzIG9mIGEgZG91YmxlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJO
QUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9tb2RmKGRvdWJsZSBkLCBkb3VibGUqIHBpbnRlZ2Vy
KTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIHJlbWFp
bmRlciBvZiBhIGRvdWJsZSBkaXZpZGVkIGJ5IGFub3RoZXIgZG91YmxlLgorICogQGludGVybmFs
CisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9mbW9kKGRvdWJsZSBkLCBk
b3VibGUgeSk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIGQg
dG8gdGhlIHBvd2VyIG9mIGV4cG9uZW50IChkXmV4cG9uZW50KS4KKyAqIEBpbnRlcm5hbAorICov
CitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfcG93KGRvdWJsZSBkLCBkb3VibGUg
ZXhwb25lbnQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSAx
MCB0byB0aGUgcG93ZXIgb2YgZXhwb25lbnQgKDEwXmV4cG9uZW50KS4KKyAqIEBpbnRlcm5hbAor
ICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfcG93MTAoaW50MzJfdCBleHBv
bmVudCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBt
YXhpbXVtIHZhbHVlIG9mIHR3byBkb3VibGVzLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJO
QUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9mbWF4KGRvdWJsZSBkLCBkb3VibGUgeSk7CisvKioK
KyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBtaW5pbXVtIHZhbHVl
IG9mIHR3byBkb3VibGVzLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBV
X0VYUE9SVDIgdXBydl9mbWluKGRvdWJsZSBkLCBkb3VibGUgeSk7CisvKioKKyAqIFByaXZhdGUg
dXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIG1heGltdW0gdmFsdWUgb2YgdHdvIGludGVnZXJzLgor
ICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgaW50MzJfdCBVX0VYUE9SVDIgdXBydl9tYXgo
aW50MzJfdCBkLCBpbnQzMl90IHkpOworLyoqCisgKiBQcml2YXRlIHV0aWxpdHkgdG8gY2FsY3Vs
YXRlIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHR3byBpbnRlZ2Vycy4KKyAqIEBpbnRlcm5hbAorICov
CitVX0lOVEVSTkFMIGludDMyX3QgVV9FWFBPUlQyIHVwcnZfbWluKGludDMyX3QgZCwgaW50MzJf
dCB5KTsKKworI2lmIFVfSVNfQklHX0VORElBTgorIyAgIGRlZmluZSB1cHJ2X2lzTmVnYXRpdmUo
bnVtYmVyKSAoKigoc2lnbmVkIGNoYXIgKikmKG51bWJlcikpPDApCisjZWxzZQorIyAgIGRlZmlu
ZSB1cHJ2X2lzTmVnYXRpdmUobnVtYmVyKSAoKigoc2lnbmVkIGNoYXIgKikmKG51bWJlcikrc2l6
ZW9mKG51bWJlciktMSk8MCkKKyNlbmRpZgorCisvKioKKyAqIFJldHVybiB0aGUgbGFyZ2VzdCBw
b3NpdGl2ZSBudW1iZXIgdGhhdCBjYW4gYmUgcmVwcmVzZW50ZWQgYnkgYW4gaW50ZWdlcgorICog
dHlwZSBvZiBhcmJpdHJhcnkgYml0IGxlbmd0aC4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVS
TkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfbWF4TWFudGlzc2Eodm9pZCk7CisKKy8qKgorICog
RmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIGxvZ2FyaXRobSBvZiBhIGRv
dWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVw
cnZfbG9nKGRvdWJsZSBkKTsKKworLyoqCisgKiBEb2VzIGNvbW1vbiBub3Rpb24gb2Ygcm91bmRp
bmcgZS5nLiB1cHJ2X2Zsb29yKHggKyAwLjUpOworICogQHBhcmFtIHggdGhlIGRvdWJsZSBudW1i
ZXIKKyAqIEByZXR1cm4gdGhlIHJvdW5kZWQgZG91YmxlCisgKiBAaW50ZXJuYWwKKyAqLworVV9J
TlRFUk5BTCBkb3VibGUgIFVfRVhQT1JUMiB1cHJ2X3JvdW5kKGRvdWJsZSB4KTsKKworI2lmIDAK
Ky8qKgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBw
b2ludCBpbiBhIGRvdWJsZSBudW1iZXIgeC4KKyAqCisgKiBAcGFyYW0geCB0aGUgZG91YmxlIG51
bWJlcgorICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBw
b2ludCBpbiBhIGRvdWJsZSBudW1iZXIgeC4KKyAqIEBpbnRlcm5hbAorICovCisvKlVfSU5URVJO
QUwgaW50MzJfdCAgVV9FWFBPUlQyIHVwcnZfZGlnaXRzQWZ0ZXJEZWNpbWFsKGRvdWJsZSB4KTsq
LworI2VuZGlmCisKKyNpZiAhVV9DSEFSU0VUX0lTX1VURjgKKy8qKgorICogUGxlYXNlIHVzZSB1
Y252X2dldERlZmF1bHROYW1lKCkgaW5zdGVhZC4KKyAqIFJldHVybiB0aGUgZGVmYXVsdCBjb2Rl
cGFnZSBmb3IgdGhpcyBwbGF0Zm9ybSBhbmQgbG9jYWxlLgorICogVGhpcyBmdW5jdGlvbiBjYW4g
Y2FsbCBzZXRsb2NhbGUoKSBvbiBVbml4IHBsYXRmb3Jtcy4gUGxlYXNlIHJlYWQgdGhlCisgKiBw
bGF0Zm9ybSBkb2N1bWVudGF0aW9uIG9uIHNldGxvY2FsZSgpIGJlZm9yZSBjYWxsaW5nIHRoaXMg
ZnVuY3Rpb24uCisgKiBAcmV0dXJuIHRoZSBkZWZhdWx0IGNvZGVwYWdlIGZvciB0aGlzIHBsYXRm
b3JtIAorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgY29uc3QgY2hhciogIFVfRVhQT1JU
MiB1cHJ2X2dldERlZmF1bHRDb2RlcGFnZSh2b2lkKTsKKyNlbmRpZgorCisvKioKKyAqIFBsZWFz
ZSB1c2UgdWxvY19nZXREZWZhdWx0KCkgaW5zdGVhZC4KKyAqIFJldHVybiB0aGUgZGVmYXVsdCBs
b2NhbGUgSUQgc3RyaW5nIGJ5IHF1ZXJ5aW5nIHRocyBzeXN0ZW0sIG9yCisgKiAgICAgemVybyBp
ZiBvbmUgY2Fubm90IGJlIGZvdW5kLiAKKyAqIFRoaXMgZnVuY3Rpb24gY2FuIGNhbGwgc2V0bG9j
YWxlKCkgb24gVW5peCBwbGF0Zm9ybXMuIFBsZWFzZSByZWFkIHRoZQorICogcGxhdGZvcm0gZG9j
dW1lbnRhdGlvbiBvbiBzZXRsb2NhbGUoKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgor
ICogQHJldHVybiB0aGUgZGVmYXVsdCBsb2NhbGUgSUQgc3RyaW5nCisgKiBAaW50ZXJuYWwKKyAq
LworVV9JTlRFUk5BTCBjb25zdCBjaGFyKiAgVV9FWFBPUlQyIHVwcnZfZ2V0RGVmYXVsdExvY2Fs
ZUlEKHZvaWQpOworCisvKioKKyAqIFRpbWUgem9uZSB1dGlsaXRpZXMKKyAqCisgKiBXcmFwcGVy
cyBmb3IgQyBydW50aW1lIGxpYnJhcnkgZnVuY3Rpb25zIHJlbGF0aW5nIHRvIHRpbWV6b25lcy4K
KyAqIFRoZSB0X3R6c2V0KCkgZnVuY3Rpb24gKHNpbWlsYXIgdG8gdHpzZXQpIHVzZXMgdGhlIGN1
cnJlbnQgc2V0dGluZworICogb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIFRaIHRvIGFzc2ln
biB2YWx1ZXMgdG8gdGhyZWUgZ2xvYmFsCisgKiB2YXJpYWJsZXM6IGRheWxpZ2h0LCB0aW1lem9u
ZSwgYW5kIHR6bmFtZS4gVGhlc2UgdmFyaWFibGVzIGhhdmUgdGhlCisgKiBmb2xsb3dpbmcgbWVh
bmluZ3MsIGFuZCBhcmUgZGVjbGFyZWQgaW4gJmx0O3RpbWUuaCZndDsuCisgKgorICogICBkYXls
aWdodCAgIE5vbnplcm8gaWYgZGF5bGlnaHQtc2F2aW5nLXRpbWUgem9uZSAoRFNUKSBpcyBzcGVj
aWZpZWQKKyAqICAgICAgICAgICAgICBpbiBUWjsgb3RoZXJ3aXNlLCAwLiBEZWZhdWx0IHZhbHVl
IGlzIDEuCisgKiAgIHRpbWV6b25lICAgRGlmZmVyZW5jZSBpbiBzZWNvbmRzIGJldHdlZW4gY29v
cmRpbmF0ZWQgdW5pdmVyc2FsCisgKiAgICAgICAgICAgICAgdGltZSBhbmQgbG9jYWwgdGltZS4g
RS5nLiwgLTI4LDgwMCBmb3IgUFNUIChHTVQtOGhycykKKyAqICAgdHpuYW1lKDApICBUaHJlZS1s
ZXR0ZXIgdGltZS16b25lIG5hbWUgZGVyaXZlZCBmcm9tIFRaIGVudmlyb25tZW50CisgKiAgICAg
ICAgICAgICAgdmFyaWFibGUuIEUuZy4sICJQU1QiLgorICogICB0em5hbWUoMSkgIFRocmVlLWxl
dHRlciBEU1Qgem9uZSBuYW1lIGRlcml2ZWQgZnJvbSBUWiBlbnZpcm9ubWVudAorICogICAgICAg
ICAgICAgIHZhcmlhYmxlLiAgRS5nLiwgIlBEVCIuIElmIERTVCB6b25lIGlzIG9taXR0ZWQgZnJv
bSBUWiwKKyAqICAgICAgICAgICAgICB0em5hbWUoMSkgaXMgYW4gZW1wdHkgc3RyaW5nLgorICoK
KyAqIE5vdGVzOiBGb3IgZXhhbXBsZSwgdG8gc2V0IHRoZSBUWiBlbnZpcm9ubWVudCB2YXJpYWJs
ZSB0byBjb3JyZXNwb25kCisgKiB0byB0aGUgY3VycmVudCB0aW1lIHpvbmUgaW4gR2VybWFueSwg
eW91IGNhbiB1c2Ugb25lIG9mIHRoZQorICogZm9sbG93aW5nIHN0YXRlbWVudHM6CisgKgorICog
ICBzZXQgVFo9R1NUMUdEVAorICogICBzZXQgVFo9R1NUKzFHRFQKKyAqCisgKiBJZiB0aGUgVFog
dmFsdWUgaXMgbm90IHNldCwgdF90enNldCgpIGF0dGVtcHRzIHRvIHVzZSB0aGUgdGltZSB6b25l
CisgKiBpbmZvcm1hdGlvbiBzcGVjaWZpZWQgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0uIFVuZGVy
IFdpbmRvd3MgTlQKKyAqIGFuZCBXaW5kb3dzIDk1LCB0aGlzIGluZm9ybWF0aW9uIGlzIHNwZWNp
ZmllZCBpbiB0aGUgQ29udHJvbCBQYW5lbCdzCisgKiBEYXRlL1RpbWUgYXBwbGljYXRpb24uCisg
KiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCB2b2lkICAgICBVX0VYUE9SVDIgdXBydl90enNl
dCh2b2lkKTsKKworLyoqCisgKiBEaWZmZXJlbmNlIGluIHNlY29uZHMgYmV0d2VlbiBjb29yZGlu
YXRlZCB1bml2ZXJzYWwKKyAqIHRpbWUgYW5kIGxvY2FsIHRpbWUuIEUuZy4sIC0yOCw4MDAgZm9y
IFBTVCAoR01ULThocnMpCisgKiBAcmV0dXJuIHRoZSBkaWZmZXJlbmNlIGluIHNlY29uZHMgYmV0
d2VlbiBjb29yZGluYXRlZCB1bml2ZXJzYWwgdGltZSBhbmQgbG9jYWwgdGltZS4KKyAqIEBpbnRl
cm5hbAorICovCitVX0lOVEVSTkFMIGludDMyX3QgIFVfRVhQT1JUMiB1cHJ2X3RpbWV6b25lKHZv
aWQpOworCisvKioKKyAqICAgdHpuYW1lKDApICBUaHJlZS1sZXR0ZXIgdGltZS16b25lIG5hbWUg
ZGVyaXZlZCBmcm9tIFRaIGVudmlyb25tZW50CisgKiAgICAgICAgICAgICAgdmFyaWFibGUuIEUu
Zy4sICJQU1QiLgorICogICB0em5hbWUoMSkgIFRocmVlLWxldHRlciBEU1Qgem9uZSBuYW1lIGRl
cml2ZWQgZnJvbSBUWiBlbnZpcm9ubWVudAorICogICAgICAgICAgICAgIHZhcmlhYmxlLiAgRS5n
LiwgIlBEVCIuIElmIERTVCB6b25lIGlzIG9taXR0ZWQgZnJvbSBUWiwKKyAqICAgICAgICAgICAg
ICB0em5hbWUoMSkgaXMgYW4gZW1wdHkgc3RyaW5nLgorICogQGludGVybmFsCisgKi8KK1VfSU5U
RVJOQUwgY29uc3QgY2hhciogVV9FWFBPUlQyIHVwcnZfdHpuYW1lKGludCBuKTsKKworLyoqCisg
KiBHZXQgVVRDIChHTVQpIHRpbWUgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIDA6MDAg
b24gMS8xLzE5NzAuCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGFmZmVjdGVkIGJ5ICdmYWtldGltZScg
YW5kIHNob3VsZCBiZSB0aGUgYm90dGxlbmVjayBmb3IgYWxsIHVzZXItdmlzaWJsZSBJQ1UgdGlt
ZSBmdW5jdGlvbnMuCisgKiBAcmV0dXJuIHRoZSBVVEMgdGltZSBtZWFzdXJlZCBpbiBtaWxsaXNl
Y29uZHMKKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIFVEYXRlIFVfRVhQT1JUMiB1cHJ2
X2dldFVUQ3RpbWUodm9pZCk7CisKKy8qKgorICogR2V0IFVUQyAoR01UKSB0aW1lIG1lYXN1cmVk
IGluIG1pbGxpc2Vjb25kcyBzaW5jZSAwOjAwIG9uIDEvMS8xOTcwLgorICogVGhpcyBmdW5jdGlv
biBpcyBub3QgYWZmZWN0ZWQgYnkgJ2Zha2V0aW1lJywgc28gaXQgc2hvdWxkIG9ubHkgYmUgdXNl
ZCBieSBsb3cgbGV2ZWwgdGVzdCBmdW5jdGlvbnMtIG5vdCBieSBhbnl0aGluZyB0aGF0CisgKiBl
eHBvc2VzIHRpbWUgdG8gdGhlIGVuZCB1c2VyLgorICogQHJldHVybiB0aGUgVVRDIHRpbWUgbWVh
c3VyZWQgaW4gbWlsbGlzZWNvbmRzCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBVRGF0
ZSBVX0VYUE9SVDIgdXBydl9nZXRSYXdVVEN0aW1lKHZvaWQpOworCisvKioKKyAqIERldGVybWlu
ZSB3aGV0aGVyIGEgcGF0aG5hbWUgaXMgYWJzb2x1dGUgb3Igbm90LCBhcyBkZWZpbmVkIGJ5IHRo
ZSBwbGF0Zm9ybS4KKyAqIEBwYXJhbSBwYXRoIFBhdGhuYW1lIHRvIHRlc3QKKyAqIEByZXR1cm4g
VFJVRSBpZiB0aGUgcGF0aCBpcyBhYnNvbHV0ZQorICogQGludGVybmFsIChJQ1UgMy4wKQorICov
CitVX0lOVEVSTkFMIFVCb29sIFVfRVhQT1JUMiB1cHJ2X3BhdGhJc0Fic29sdXRlKGNvbnN0IGNo
YXIgKnBhdGgpOworCisvKioKKyAqIFVzZSBVX01BWF9QVFIgaW5zdGVhZCBvZiB0aGlzIGZ1bmN0
aW9uLgorICogQHBhcmFtIHZvaWQgcG9pbnRlciB0byB0ZXN0CisgKiBAcmV0dXJuIHRoZSBsYXJn
ZXN0IHBvc3NpYmxlIHBvaW50ZXIgZ3JlYXRlciB0aGFuIHRoZSBiYXNlCisgKiBAaW50ZXJuYWwg
KElDVSAzLjgpCisgKi8KK1VfSU5URVJOQUwgdm9pZCAqIFVfRVhQT1JUMiB1cHJ2X21heGltdW1Q
dHIodm9pZCAqYmFzZSk7CisKKy8qKgorICogTWF4aW11bSB2YWx1ZSBvZiBhICh2b2lkKikgLSB1
c2UgdG8gaW5kaWNhdGUgdGhlIGxpbWl0IG9mIGFuICdpbmZpbml0ZScgYnVmZmVyLgorICogSW4g
ZmFjdCwgYnVmZmVyIHNpemVzIG11c3Qgbm90IGV4Y2VlZCAyR0Igc28gdGhhdCB0aGUgZGlmZmVy
ZW5jZSBiZXR3ZWVuCisgKiB0aGUgYnVmZmVyIGxpbWl0IGFuZCB0aGUgYnVmZmVyIHN0YXJ0IGNh
biBiZSBleHByZXNzZWQgaW4gYW4gaW50MzJfdC4KKyAqCisgKiBUaGUgZGVmaW5pdGlvbiBvZiBV
X01BWF9QVFIgbXVzdCBmdWxmaWxsIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqIC0gcmV0
dXJuIHRoZSBsYXJnZXN0IHBvc3NpYmxlIHBvaW50ZXIgZ3JlYXRlciB0aGFuIGJhc2UKKyAqIC0g
cmV0dXJuIGEgdmFsaWQgcG9pbnRlciBhY2NvcmRpbmcgdG8gdGhlIG1hY2hpbmUgYXJjaGl0ZWN0
dXJlIChBUy80MDAsIDY0LWJpdCwgZXRjLikKKyAqIC0gYXZvaWQgd3JhcHBpbmcgYXJvdW5kIGF0
IGhpZ2ggYWRkcmVzc2VzCisgKiAtIG1ha2Ugc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBwb2ludGVy
IGlzIG5vdCBmYXJ0aGVyIGZyb20gYmFzZSB0aGFuIDB4N2ZmZmZmZmYgYnl0ZXMKKyAqCisgKiBA
cGFyYW0gYmFzZSBUaGUgYmVnaW5uaW5nIG9mIGEgYnVmZmVyIHRvIGZpbmQgdGhlIG1heGltdW0g
b2Zmc2V0IGZyb20KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfTUFYX1BUUgorIyAgaWYg
VV9QTEFURk9STSA9PSBVX1BGX09TMzkwICYmICFkZWZpbmVkKF9MUDY0KQorICAgIC8qIFdlIGhh
dmUgMzEtYml0IHBvaW50ZXJzLiAqLworIyAgICBkZWZpbmUgVV9NQVhfUFRSKGJhc2UpICgodm9p
ZCAqKTB4N2ZmZmZmZmYpCisjICBlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMAorIyAgICBk
ZWZpbmUgVV9NQVhfUFRSKGJhc2UpIHVwcnZfbWF4aW11bVB0cigodm9pZCAqKWJhc2UpCisjICBl
bGlmIDAKKyAgICAvKgorICAgICAqIEZvciBwbGF0Zm9ybXMgd2hlcmUgcG9pbnRlcnMgYXJlIHNj
YWxhciB2YWx1ZXMgKHdoaWNoIGlzIG5vcm1hbCwgYnV0IHVubGlrZSBpNS9PUykKKyAgICAgKiBi
dXQgdGhhdCBkbyBub3QgZGVmaW5lIHVpbnRwdHJfdC4KKyAgICAgKgorICAgICAqIEhvd2V2ZXIs
IHRoaXMgZG9lcyBub3Qgd29yayBvbiBtb2Rlcm4gY29tcGlsZXJzOgorICAgICAqIFRoZSBDKysg
c3RhbmRhcmQgZG9lcyBub3QgZGVmaW5lIHBvaW50ZXIgb3ZlcmZsb3csIGFuZCBhbGxvd3MgY29t
cGlsZXJzIHRvCisgICAgICogYXNzdW1lIHRoYXQgcCt1PnAgZm9yIGFueSBwb2ludGVyIHAgYW5k
IGFueSBpbnRlZ2VyIHU+MC4KKyAgICAgKiBUaHVzLCBtb2Rlcm4gY29tcGlsZXJzIG9wdGltaXpl
IGF3YXkgdGhlICI+IiBjb21wYXJpc29uLgorICAgICAqIChTZWUgSUNVIHRpY2tldHMgIzcxODcg
YW5kICM4MDk2LikKKyAgICAgKi8KKyMgICAgZGVmaW5lIFVfTUFYX1BUUihiYXNlKSBcCisgICAg
KCh2b2lkICopKCgoY2hhciAqKShiYXNlKSsweDdmZmZmZmZmdSkgPiAoY2hhciAqKShiYXNlKSBc
CisgICAgICAgID8gKChjaGFyICopKGJhc2UpKzB4N2ZmZmZmZmZ1KSBcCisgICAgICAgIDogKGNo
YXIgKiktMSkpCisjICBlbHNlCisgICAgLyogRGVmYXVsdCB2ZXJzaW9uLiBDKysgc3RhbmRhcmQg
Y29tcGxpYW50IGZvciBzY2FsYXIgcG9pbnRlcnMuICovCisjICAgIGRlZmluZSBVX01BWF9QVFIo
YmFzZSkgXAorICAgICgodm9pZCAqKSgoKHVpbnRwdHJfdCkoYmFzZSkrMHg3ZmZmZmZmZnUpID4g
KHVpbnRwdHJfdCkoYmFzZSkgXAorICAgICAgICA/ICgodWludHB0cl90KShiYXNlKSsweDdmZmZm
ZmZmdSkgXAorICAgICAgICA6ICh1aW50cHRyX3QpLTEpKQorIyAgZW5kaWYKKyNlbmRpZgorCisv
KiAgRHluYW1pYyBMaWJyYXJ5IEZ1bmN0aW9ucyAqLworCit0eXBlZGVmIHZvaWQgKFVWb2lkRnVu
Y3Rpb24pKHZvaWQpOworCisjaWYgVV9FTkFCTEVfRFlMT0FECisvKioKKyAqIExvYWQgYSBsaWJy
YXJ5CisgKiBAaW50ZXJuYWwgKElDVSA0LjQpCisgKi8KK1VfSU5URVJOQUwgdm9pZCAqIFVfRVhQ
T1JUMiB1cHJ2X2RsX29wZW4oY29uc3QgY2hhciAqbGliTmFtZSwgVUVycm9yQ29kZSAqc3RhdHVz
KTsKKworLyoqCisgKiBDbG9zZSBhIGxpYnJhcnkKKyAqIEBpbnRlcm5hbCAoSUNVIDQuNCkKKyAq
LworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JUMiB1cHJ2X2RsX2Nsb3NlKCB2b2lkICpsaWIsIFVF
cnJvckNvZGUgKnN0YXR1cyk7CisKKy8qKgorICogRXh0cmFjdCBhIHN5bWJvbCBmcm9tIGEgbGli
cmFyeSAoZnVuY3Rpb24pCisgKiBAaW50ZXJuYWwgKElDVSA0LjgpCisgKi8KK1VfSU5URVJOQUwg
VVZvaWRGdW5jdGlvbiogVV9FWFBPUlQyIHVwcnZfZGxzeW1fZnVuYyggdm9pZCAqbGliLCBjb25z
dCBjaGFyICpzeW1ib2xOYW1lLCBVRXJyb3JDb2RlICpzdGF0dXMpOworCisvKioKKyAqIEV4dHJh
Y3QgYSBzeW1ib2wgZnJvbSBhIGxpYnJhcnkgKGZ1bmN0aW9uKQorICogTm90IGltcGxlbWVudGVk
LCBubyBjbGllbnRzLgorICogQGludGVybmFsCisgKi8KKy8qIFVfSU5URVJOQUwgdm9pZCAqIFVf
RVhQT1JUMiB1cHJ2X2Rsc3ltX2RhdGEoIHZvaWQgKmxpYiwgY29uc3QgY2hhciAqc3ltYm9sTmFt
ZSwgVUVycm9yQ29kZSAqc3RhdHVzKTsgKi8KKworI2VuZGlmCisKKy8qKgorICogRGVmaW5lIG1h
bGxvYyBhbmQgcmVsYXRlZCBmdW5jdGlvbnMKKyAqIEBpbnRlcm5hbAorICovCisjaWYgVV9QTEFU
Rk9STSA9PSBVX1BGX09TNDAwCisjIGRlZmluZSB1cHJ2X2RlZmF1bHRfbWFsbG9jKHgpIF9DX1RT
X21hbGxvYyh4KQorIyBkZWZpbmUgdXBydl9kZWZhdWx0X3JlYWxsb2MoeCx5KSBfQ19UU19yZWFs
bG9jKHgseSkKKyMgZGVmaW5lIHVwcnZfZGVmYXVsdF9mcmVlKHgpIF9DX1RTX2ZyZWUoeCkKKy8q
IGFsc28gX0NfVFNfY2FsbG9jKHgpICovCisjZWxzZQorLyogQyBkZWZhdWx0cyAqLworIyBkZWZp
bmUgdXBydl9kZWZhdWx0X21hbGxvYyh4KSBtYWxsb2MoeCkKKyMgZGVmaW5lIHVwcnZfZGVmYXVs
dF9yZWFsbG9jKHgseSkgcmVhbGxvYyh4LHkpCisjIGRlZmluZSB1cHJ2X2RlZmF1bHRfZnJlZSh4
KSBmcmVlKHgpCisjZW5kaWYKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvcmJiaWRhdGEuaCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvcmJiaWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTI3NGMzYWRi
YmY0OTI1NzFlNzIxM2NjNTIyNGQ0YjExY2VkMzNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9yYmJpZGF0YS5oCkBAIC0wLDAgKzEs
MjAwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykg
MTk5OS0yMDE0IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlv
biBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKyogICBmaWxlIG5hbWU6ICByYmJpZGF0YS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVND
SUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisq
ICAgUkJCSSBkYXRhIGZvcm1hdHMgIEluY2x1ZGVzCisqCisqICAgICAgICAgICAgICAgICAgICAg
ICAgICBTdHJ1Y3RzIHRoYXQgZGVzY3JpYmVzIHRoZSBmb3JtYXQgb2YgdGhlIEJpbmFyeSBSQkJJ
IGRhdGEsCisqICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBpdCBpcyBzdG9yZWQgaW4gSUNV
J3MgZGF0YSBmaWxlLgorKgorKiAgICAgIFJCQklEYXRhV3JhcHBlciAgLSAgSW5zdGFuY2VzIG9m
IHRoaXMgY2xhc3Mgc2l0IGJldHdlZW4gdGhlCisqICAgICAgICAgICAgICAgICAgICAgICAgICBy
YXcgZGF0YSBzdHJ1Y3RzIGFuZCB0aGUgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3Igb2JqZWN0cwor
KiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBhcmUgY3JlYXRlZCBieSBhcHBsaWNhdGlv
bnMuICBUaGUgd3JhcHBlciBjbGFzcworKiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlk
ZXMgcmVmZXJlbmNlIGNvdW50aW5nIGZvciB0aGUgdW5kZXJseWluZyBkYXRhLAorKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgYW5kIGRpcmVjdCBwb2ludGVycyB0byBkYXRhIHRoYXQgd291bGQg
bm90IG90aGVyd2lzZQorKiAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgYWNjZXNzaWJsZSB3
aXRob3V0IHVnbHkgcG9pbnRlciBhcml0aG1ldGljLiAgVGhlCisqICAgICAgICAgICAgICAgICAg
ICAgICAgICB3cmFwcGVyIGRvZXMgbm90IGF0dGVtcHQgdG8gcHJvdmlkZSBhbnkgaGlnaGVyIGxl
dmVsCisqICAgICAgICAgICAgICAgICAgICAgICAgICBhYnN0cmFjdGlvbnMgZm9yIHRoZSBkYXRh
IGl0c2VsZi4KKyoKKyogICAgICAgICAgICAgICAgICAgICAgICAgIFRoZXJlIHdpbGwgYmUgb25s
eSBvbmUgaW5zdGFuY2Ugb2YgUkJCSURhdGFXcmFwcGVyIGZvciBhbnkKKyogICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldCBvZiBSQkJJIHJ1biB0aW1lIGRhdGEgYmVpbmcgc2hhcmVkIGJ5IGlu
c3RhbmNlcworKiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb25lcykgb2YgUnVsZXNCYXNl
ZEJyZWFrSXRlcmF0b3IuCisqLworCisjaWZuZGVmIF9fUkJCSURBVEFfSF9fCisjZGVmaW5lIF9f
UkJCSURBVEFfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdWRhdGEuaCIKKyNpbmNsdWRlICJ1ZGF0YXN3cC5oIgorCisvKioKKyAqIFN3YXAgUkJC
SSBkYXRhLiBTZWUgdWRhdGFzd3AuaC4KKyAqIEBpbnRlcm5hbAorICovCitVX0NBUEkgaW50MzJf
dCBVX0VYUE9SVDIKK3Vicmtfc3dhcChjb25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAg
IGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAg
ICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworCisj
aW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIK
KyNpbmNsdWRlICJ1bXV0ZXguaCIKKyNpbmNsdWRlICJ1dHJpZS5oIgorCitVX05BTUVTUEFDRV9C
RUdJTgorCisvKiAgCisgKiAgIFRoZSBmb2xsb3dpbmcgc3RydWN0cyBtYXAgZXhhY3RseSBvbnRv
IHRoZSByYXcgZGF0YSBmcm9tIElDVSBjb21tb24gZGF0YSBmaWxlLiAKKyAqLworc3RydWN0IFJC
QklEYXRhSGVhZGVyIHsKKyAgICB1aW50MzJfdCAgICAgICAgIGZNYWdpYzsgICAgICAgICAgIC8q
ICA9PSAweGJsYTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICovCisgICAgdWludDhfdCAgICAgICAgICBmRm9ybWF0VmVyc2lvbls0XTsgLyogRGF0YSBGb3Jt
YXQuICBTYW1lIGFzIHRoZSB2YWx1ZSBpbiBzdHJ1Y3QgVURhdGFJbmZvICAgICAgKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgaWYgdGhlcmUgaXMgb25lIGFz
c29jaWF0ZWQgd2l0aCB0aGlzIGRhdGEuICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgKHZlcnNpb24gb3JpZ2luYXRlcyBpbiByYmJp
LCBpcyBjb3BpZWQgdG8gVURhdGFJbmZvKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLyogICBGb3IgSUNVIDMuMiBhbmQgZWFybGllciwgdGhpcyBmaWVsZCB3YXMg
ICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qICAgICAgIHVpbnQzMl90ICBmVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIHdpdGgg
YSB2YWx1ZSBvZiAxLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAg
IHVpbnQzMl90ICAgICAgICAgZkxlbmd0aDsgICAgICAgICAgLyogIFRvdGFsIGxlbmd0aCBpbiBi
eXRlcyBvZiB0aGlzIFJCQkkgRGF0YSwgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgaW5jbHVkaW5nIGFsbCBzZWN0aW9ucywg
bm90IGp1c3QgdGhlIGhlYWRlci4gICAgICAgICovCisgICAgdWludDMyX3QgICAgICAgICBmQ2F0
Q291bnQ7ICAgICAgICAvKiAgTnVtYmVyIG9mIGNoYXJhY3RlciBjYXRlZ29yaWVzLiAgICAgICAg
ICAgICAgICAgICAgICAgICAqLworCisgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIC8qICBP
ZmZzZXRzIGFuZCBzaXplcyBvZiBlYWNoIG9mIHRoZSBzdWJzZWN0aW9ucyB3aXRoaW4gdGhlIFJC
QkkgZGF0YS4gICAgKi8KKyAgICAvKiAgQWxsIG9mZnNldHMgYXJlIGJ5dGVzIGZyb20gdGhlIHN0
YXJ0IG9mIHRoZSBSQkJJRGF0YUhlYWRlci4gICAgICAgICAgICovCisgICAgLyogIEFsbCBzaXpl
cyBhcmUgaW4gYnl0ZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqLworICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZG
VGFibGU7ICAgICAgICAgLyogIGZvcndhcmQgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS4gKi8KKyAg
ICB1aW50MzJfdCAgICAgICAgIGZGVGFibGVMZW47CisgICAgdWludDMyX3QgICAgICAgICBmUlRh
YmxlOyAgICAgICAgIC8qICBPZmZzZXQgdG8gdGhlIHJldmVyc2Ugc3RhdGUgdHJhbnNpdGlvbiB0
YWJsZS4gKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZSVGFibGVMZW47CisgICAgdWludDMyX3Qg
ICAgICAgICBmU0ZUYWJsZTsgICAgICAgIC8qICBzYWZlIHBvaW50IGZvcndhcmQgdHJhbnNpdGlv
biB0YWJsZSAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlNGVGFibGVMZW47CisgICAgdWludDMy
X3QgICAgICAgICBmU1JUYWJsZTsgICAgICAgIC8qICBzYWZlIHBvaW50IHJldmVyc2UgdHJhbnNp
dGlvbiB0YWJsZSAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlNSVGFibGVMZW47CisgICAgdWlu
dDMyX3QgICAgICAgICBmVHJpZTsgICAgICAgICAgIC8qICBPZmZzZXQgdG8gVHJpZSBkYXRhIGZv
ciBjaGFyYWN0ZXIgY2F0ZWdvcmllcyAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlRyaWVMZW47
CisgICAgdWludDMyX3QgICAgICAgICBmUnVsZVNvdXJjZTsgICAgIC8qICBPZmZzZXQgdG8gdGhl
IHNvdXJjZSBmb3IgZm9yIHRoZSBicmVhayAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlJ1bGVT
b3VyY2VMZW47ICAvKiAgICBydWxlcy4gIFN0b3JlZCBVQ2hhciAqLiAqLworICAgIHVpbnQzMl90
ICAgICAgICAgZlN0YXR1c1RhYmxlOyAgICAvKiBPZmZzZXQgdG8gdGhlIHRhYmxlIG9mIHJ1bGUg
c3RhdHVzIHZhbHVlcyAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlN0YXR1c1RhYmxlTGVuOwor
CisgICAgdWludDMyX3QgICAgICAgICBmUmVzZXJ2ZWRbNl07ICAgIC8qICBSZXNlcnZlZCBmb3Ig
ZXhwYW5zaW9uICovCisKK307CisKKworCitzdHJ1Y3QgIFJCQklTdGF0ZVRhYmxlUm93IHsKKyAg
ICBpbnQxNl90ICAgICAgICAgIGZBY2NlcHRpbmc7ICAgIC8qICBOb24temVybyBpZiB0aGlzIHJv
dyBpcyBmb3IgYW4gYWNjZXB0aW5nIHN0YXRlLiAgICovCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiAgVmFsdWUgMDogbm90IGFuIGFjY2VwdGluZyBzdGF0ZS4gICAgICAg
ICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAg
ICAgLTE6IFVuY29uZGl0aW9uYWwgQWNjZXB0aW5nIHN0YXRlLiAgICAgICAgICAgKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIHBvc2l0aXZlOiAgTG9vay1haGVh
ZCBtYXRjaCBoYXMgY29tcGxldGVkLiAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiAgICAgICAgICAgQWN0dWFsIGJvdW5kYXJ5IHBvc2l0aW9uIGhhcHBlbmVk
IGVhcmxpZXIgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAg
ICAgICBWYWx1ZSBoZXJlID09IGZMb29rQWhlYWQgaW4gZWFybGllciAgICAgICovCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgc3RhdGUsIGF0IGFj
dHVhbCBib3VuZGFyeSBwb3MuICAgICAgICAqLworICAgIGludDE2X3QgICAgICAgICAgZkxvb2tB
aGVhZDsgICAgLyogIE5vbi16ZXJvIGlmIHRoaXMgcm93IGlzIGZvciBhIHN0YXRlIHRoYXQgICAg
ICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIGNvcnJl
c3BvbmRzIHRvIGEgJy8nIGluIHRoZSBydWxlIHNvdXJjZS4gICAgICAgICovCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICBWYWx1ZSBpcyB0aGUgc2FtZSBhcyB0aGUg
ZkFjY2VwdGluZyAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLyogICAgICB2YWx1ZSBmb3IgdGhlIHJ1bGUgKHdoaWNoIHdpbGwgYXBwZWFyICAgICAg
ICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgaW4gYSBk
aWZmZXJlbnQgc3RhdGUuICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgaW50MTZfdCAg
ICAgICAgICBmVGFnSWR4OyAgICAgICAvKiAgTm9uLXplcm8gaWYgdGhpcyByb3cgY292ZXJzIGEg
e3RhZ2dlZH0gcG9zaXRpb24gICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogICAgIGZyb20gYSBydWxlLiAgVmFsdWUgaXMgdGhlIGluZGV4IGluIHRoZSAgICAgICAg
Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICBTdGF0dXNUYWJs
ZSBvZiB0aGUgc2V0IG9mIG1hdGNoaW5nICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKiAgICAgdGFncyAocnVsZSBzdGF0dXMgdmFsdWVzKSAgICAg
ICAgICAgICAgICAgICAgICAqLworICAgIGludDE2X3QgICAgICAgICAgZlJlc2VydmVkOworICAg
IHVpbnQxNl90ICAgICAgICAgZk5leHRTdGF0ZVsyXTsgLyogIE5leHQgU3RhdGUsIGluZGV4ZWQg
YnkgY2hhciBjYXRlZ29yeS4gICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8qICBUaGlzIGFycmF5IGRvZXMgbm90IGhhdmUgdHdvIGVsZW1lbnRzICAg
ICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICBB
cnJheSBTaXplIGlzIGFjdHVhbGx5IGZEYXRhLT5mSGVhZGVyLT5mQ2F0Q291bnQgICAgICAgICAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgQ0FVVElPTjogIHNl
ZSBSQkJJVGFibGVCdWlsZGVyOjpnZXRUYWJsZVNpemUoKSAgKi8KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICBiZWZvcmUgY2hhbmdpbmcgYW55dGhp
bmcgaGVyZS4gICAgICAgICovCit9OworCisKK3N0cnVjdCBSQkJJU3RhdGVUYWJsZSB7CisgICAg
dWludDMyX3QgICAgICAgICBmTnVtU3RhdGVzOyAgICAvKiAgTnVtYmVyIG9mIHN0YXRlcy4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlJv
d0xlbjsgICAgICAgLyogIExlbmd0aCBvZiBhIHN0YXRlIHRhYmxlIHJvdywgaW4gYnl0ZXMuICAg
ICAgICAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZGbGFnczsgICAgICAgIC8qICBPcHRp
b24gRmxhZ3MgZm9yIHRoaXMgc3RhdGUgdGFibGUgICAgICAgICAgICAgICAgICovCisgICAgdWlu
dDMyX3QgICAgICAgICBmUmVzZXJ2ZWQ7ICAgICAvKiAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIGNoYXIgICAgICAgICAgICAgZlRhYmxl
RGF0YVs0XTsgLyogIEZpcnN0IFJCQklTdGF0ZVRhYmxlUm93IGJlZ2lucyBoZXJlLiAgICAgICAg
ICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIChtYWtp
bmcgaXQgY2hhcltdIHNpbXBsaWZpZXMgdWdseSBhZGRyZXNzICAgICAgICovCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgYXJpdGhtZXRpYyBmb3IgaW5kZXhpbmcg
dmFyaWFibGUgbGVuZ3RoIHJvd3MuKSAqLworfTsKKwordHlwZWRlZiBlbnVtIHsKKyAgICBSQkJJ
X0xPT0tBSEVBRF9IQVJEX0JSRUFLID0gMSwKKyAgICBSQkJJX0JPRl9SRVFVSVJFRCA9IDIKK30g
UkJCSVN0YXRlVGFibGVGbGFnczsKKworCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqLworLyogICBUaGUgcmVmZXJlbmNlIGNvdW50aW5nIHdyYXBwZXIgY2xhc3Mg
Ki8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCitjbGFzcyBS
QkJJRGF0YVdyYXBwZXIgOiBwdWJsaWMgVU1lbW9yeSB7CitwdWJsaWM6CisgICAgZW51bSBFRG9u
dEFkb3B0IHsKKyAgICAgICAga0RvbnRBZG9wdAorICAgIH07CisgICAgUkJCSURhdGFXcmFwcGVy
KGNvbnN0IFJCQklEYXRhSGVhZGVyICpkYXRhLCBVRXJyb3JDb2RlICZzdGF0dXMpOworICAgIFJC
QklEYXRhV3JhcHBlcihjb25zdCBSQkJJRGF0YUhlYWRlciAqZGF0YSwgZW51bSBFRG9udEFkb3B0
IGRvbnRBZG9wdCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyAgICBSQkJJRGF0YVdyYXBwZXIoVURh
dGFNZW1vcnkqIHVkbSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyAgICB+UkJCSURhdGFXcmFwcGVy
KCk7CisKKyAgICB2b2lkICAgICAgICAgICAgICAgICAgaW5pdDAoKTsKKyAgICB2b2lkICAgICAg
ICAgICAgICAgICAgaW5pdChjb25zdCBSQkJJRGF0YUhlYWRlciAqZGF0YSwgVUVycm9yQ29kZSAm
c3RhdHVzKTsKKyAgICBSQkJJRGF0YVdyYXBwZXIgICAgICAqYWRkUmVmZXJlbmNlKCk7CisgICAg
dm9pZCAgICAgICAgICAgICAgICAgIHJlbW92ZVJlZmVyZW5jZSgpOworICAgIFVCb29sICAgICAg
ICAgICAgICAgICBvcGVyYXRvciA9PShjb25zdCBSQkJJRGF0YVdyYXBwZXIgJm90aGVyKSBjb25z
dDsKKyAgICBpbnQzMl90ICAgICAgICAgICAgICAgaGFzaENvZGUoKTsKKyAgICBjb25zdCBVbmlj
b2RlU3RyaW5nICAmZ2V0UnVsZVNvdXJjZVN0cmluZygpIGNvbnN0OworI2lmZGVmIFJCQklfREVC
VUcKKyAgICB2b2lkICAgICAgICAgICAgICAgICAgcHJpbnREYXRhKCk7CisgICAgdm9pZCAgICAg
ICAgICAgICAgICAgIHByaW50VGFibGUoY29uc3QgY2hhciAqaGVhZGluZywgY29uc3QgUkJCSVN0
YXRlVGFibGUgKnRhYmxlKTsKKyNlbHNlCisgICAgI2RlZmluZSBwcmludERhdGEoKQorICAgICNk
ZWZpbmUgcHJpbnRUYWJsZShoZWFkaW5nLCB0YWJsZSkKKyNlbmRpZgorCisgICAgLyogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAvKiAgIFBvaW50ZXJzIHRvIGl0
ZW1zIHdpdGhpbiB0aGUgZGF0YSAqLworICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICovCisgICAgY29uc3QgUkJCSURhdGFIZWFkZXIgICAgICpmSGVhZGVyOworICAg
IGNvbnN0IFJCQklTdGF0ZVRhYmxlICAgICAqZkZvcndhcmRUYWJsZTsKKyAgICBjb25zdCBSQkJJ
U3RhdGVUYWJsZSAgICAgKmZSZXZlcnNlVGFibGU7CisgICAgY29uc3QgUkJCSVN0YXRlVGFibGUg
ICAgICpmU2FmZUZ3ZFRhYmxlOworICAgIGNvbnN0IFJCQklTdGF0ZVRhYmxlICAgICAqZlNhZmVS
ZXZUYWJsZTsKKyAgICBjb25zdCBVQ2hhciAgICAgICAgICAgICAgKmZSdWxlU291cmNlOworICAg
IGNvbnN0IGludDMyX3QgICAgICAgICAgICAqZlJ1bGVTdGF0dXNUYWJsZTsgCisKKyAgICAvKiBu
dW1iZXIgb2YgaW50MzJfdCB2YWx1ZXMgaW4gdGhlIHJ1bGUgc3RhdHVzIHRhYmxlLiAgIFVzZWQg
dG8gc2FuaXR5IGNoZWNrIGluZGV4aW5nICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmU3Rh
dHVzTWF4SWR4OworCisgICAgVVRyaWUgICAgICAgICAgICAgICBmVHJpZTsKKworcHJpdmF0ZToK
KyAgICB1X2F0b21pY19pbnQzMl90ICAgIGZSZWZDb3VudDsKKyAgICBVRGF0YU1lbW9yeSAgKmZV
RGF0YU1lbTsKKyAgICBVbmljb2RlU3RyaW5nICAgICAgIGZSdWxlU3RyaW5nOworICAgIFVCb29s
ICAgICAgICAgICAgICAgZkRvbnRGcmVlRGF0YTsKKworICAgIFJCQklEYXRhV3JhcHBlcihjb25z
dCBSQkJJRGF0YVdyYXBwZXIgJm90aGVyKTsgLyogIGZvcmJpZCBjb3B5aW5nIG9mIHRoaXMgY2xh
c3MgKi8KKyAgICBSQkJJRGF0YVdyYXBwZXIgJm9wZXJhdG9yPShjb25zdCBSQkJJRGF0YVdyYXBw
ZXIgJm90aGVyKTsgLyogIGZvcmJpZCBjb3B5aW5nIG9mIHRoaXMgY2xhc3MgKi8KK307CisKKwor
CitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmIC8qIEMrKyAqLworCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWNtbmRhdGEuaCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWNtbmRhdGEuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zNjE2M2M1MDhiOTc3NGI4ZjlkMmJiNGFiZTIyYzM0MTQxODI1NGVkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91Y21u
ZGF0YS5oCkBAIC0wLDAgKzEsMTExIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisq
ICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoK
KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAqCisgKiAgIFVDb21tb25EYXRhICAgQW4gYWJzdHJhY3QgaW50ZXJmYWNlIGZvciBkZWFsaW5n
IHdpdGggSUNVIENvbW1vbiBEYXRhIEZpbGVzLgorICogICAgICAgICAgICAgICAgIElDVSBDb21t
b24gRGF0YSBGaWxlcyBhcmUgYSBncm91cGluZyBvZiBhIG51bWJlciBvZiBpbmRpdmlkdWFsCisg
KiAgICAgICAgICAgICAgICAgZGF0YSBpdGVtcyAocmVzb3VyY2VzLCBjb252ZXJ0ZXJzLCB0YWJs
ZXMsIGFueXRoaW5nKSBpbnRvIGEKKyAqICAgICAgICAgICAgICAgICBzaW5nbGUgZmlsZSBvciBk
bGwuICBUaGUgY29tYmluZWQgZm9ybWF0IGluY2x1ZGVzIGEgdGFibGUgb2YKKyAqICAgICAgICAg
ICAgICAgICBjb250ZW50cyBmb3IgbG9jYXRpbmcgdGhlIGluZGl2aWR1YWwgaXRlbXMgYnkgbmFt
ZS4KKyAqCisgKiAgICAgICAgICAgICAgICAgVHdvIGZvcm1hdHMgZm9yIHRoZSB0YWJsZSBvZiBj
b250ZW50cyBhcmUgc3VwcG9ydGVkLCB3aGljaCBpcworICogICAgICAgICAgICAgICAgIHdoeSB0
aGVyZSBpcyBhbiBhYnN0cmFjdCBpbnRlZmFjZSBpbnZvbHZlZC4KKyAqCisgKiAgICAgICAgICAg
ICAgICAgVGhlc2UgZnVuY3Rpb25zIGFyZSBwYXJ0IG9mIHRoZSBJQ1UgaW50ZXJuYWwgaW1wbGVt
ZW50YXRpb24sIGFuZAorICogICAgICAgICAgICAgICAgIGFyZSBub3QgaW50ZWRlZCB0byBiZSB1
c2VkIGRpcmVjdGx5IGJ5IGFwcGxpY2F0aW9ucy4KKyAqLworCisjaWZuZGVmIF9fVUNNTkRBVEFf
SF9fCisjZGVmaW5lIF9fVUNNTkRBVEFfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgi
CisjaW5jbHVkZSAidW1hcGZpbGUuaCIKKworCisjZGVmaW5lIENPTU1PTl9EQVRBX05BTUUgVV9J
Q1VEQVRBX05BTUUKKwordHlwZWRlZiBzdHJ1Y3QgIHsKKyAgICB1aW50MTZfdCAgICBoZWFkZXJT
aXplOworICAgIHVpbnQ4X3QgICAgIG1hZ2ljMTsKKyAgICB1aW50OF90ICAgICBtYWdpYzI7Cit9
IE1hcHBlZERhdGE7CisKKwordHlwZWRlZiBzdHJ1Y3QgIHsKKyAgICBNYXBwZWREYXRhICBkYXRh
SGVhZGVyOworICAgIFVEYXRhSW5mbyAgIGluZm87Cit9IERhdGFIZWFkZXI7CisKK3R5cGVkZWYg
c3RydWN0IHsKKyAgICB1aW50MzJfdCBuYW1lT2Zmc2V0OworICAgIHVpbnQzMl90IGRhdGFPZmZz
ZXQ7Cit9IFVEYXRhT2Zmc2V0VE9DRW50cnk7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1aW50
MzJfdCBjb3VudDsKKyAgICBVRGF0YU9mZnNldFRPQ0VudHJ5IGVudHJ5WzJdOyAgICAvKiBBY3R1
YWwgc2l6ZSBvZiBhcnJheSBpcyBmcm9tIGNvdW50LiAqLworfSBVRGF0YU9mZnNldFRPQzsKKwor
LyoqCisgKiBHZXQgdGhlIGhlYWRlciBzaXplIGZyb20gYSBjb25zdCBEYXRhSGVhZGVyICp1ZGgu
CisgKiBIYW5kbGVzIG9wcG9zaXRlLWVuZGlhbiBkYXRhLgorICoKKyAqIEBpbnRlcm5hbAorICov
CitVX0NGVU5DIHVpbnQxNl90Cit1ZGF0YV9nZXRIZWFkZXJTaXplKGNvbnN0IERhdGFIZWFkZXIg
KnVkaCk7CisKKy8qKgorICogR2V0IHRoZSBVRGF0YUluZm8uc2l6ZSBmcm9tIGEgY29uc3QgVURh
dGFJbmZvICppbmZvLgorICogSGFuZGxlcyBvcHBvc2l0ZS1lbmRpYW4gZGF0YS4KKyAqCisgKiBA
aW50ZXJuYWwKKyAqLworVV9DRlVOQyB1aW50MTZfdAordWRhdGFfZ2V0SW5mb1NpemUoY29uc3Qg
VURhdGFJbmZvICppbmZvKTsKKworVV9DREVDTF9CRUdJTgorLyoKKyAqICAiVmlydHVhbCIgZnVu
Y3Rpb25zIGZvciBkYXRhIGxvb2t1cC4KKyAqICBUbyBjYWxsIG9uZSwgZ2l2ZW4gYSBVRGF0YU1l
bW9yeSAqcCwgdGhlIGNvZGUgbG9va3MgbGlrZSB0aGlzOgorICogICAgIHAtPnZGdW5jcy5Mb29r
dXAocCwgdG9jRW50cnlOYW1lLCBwRXJyb3JDb2RlKTsKKyAqICAgICAgICAgIChJIHN1cmUgZG8g
d2lzaCB0aGlzIHdhcyB3cml0dGVuIGluIEMrKywgbm90IEMpCisgKi8KKwordHlwZWRlZiBjb25z
dCBEYXRhSGVhZGVyICoKKyhVX0NBTExDT05WICogTG9va3VwRm4pKGNvbnN0IFVEYXRhTWVtb3J5
ICpwRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnRvY0VudHJ5TmFt
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgKnBMZW5ndGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKwordHlwZWRlZiB1aW50MzJf
dAorKFVfQ0FMTENPTlYgKiBOdW1FbnRyaWVzRm4pKGNvbnN0IFVEYXRhTWVtb3J5ICpwRGF0YSk7
CisKK1VfQ0RFQ0xfRU5ECisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBMb29rdXBGbiAgICAgIExv
b2t1cDsKKyAgICBOdW1FbnRyaWVzRm4gIE51bUVudHJpZXM7IAorfSBjb21tb25EYXRhRnVuY3M7
CisKKworLyoKKyAqICBGdW5jdGlvbnMgdG8gY2hlY2sgd2hldGhlciBhIFVEYXRhTWVtb3J5IHJl
ZmVycyB0byBtZW1vcnkgY29udGFpbmluZyAKKyAqICAgICBhIHJlY29nbml6YWJsZSBoZWFkZXIg
YW5kIHRhYmxlIG9mIGNvbnRlbnRzIGEgQ29tbW9uIERhdGEgRm9ybWF0CisgKgorICogICAgIElm
IGEgdmFsaWQgaGVhZGVyIGFuZCBUT0MgYXJlIGZvdW5kLAorICogICAgICAgICBzZXQgdGhlIENv
bW1vbkRhdGFGdW5jcyBmdW5jdGlvbiBkaXNwYXRjaCB2ZWN0b3IgaW4gdGhlIFVEYXRhTWVtb3J5
CisgKiAgICAgICAgICAgICB0byBwb2ludCB0byB0aGUgcmlnaHQgZnVuY3Rpb25zIGZvciB0aGUg
VE9DIHR5cGUuCisgKiAgICAgb3RoZXJ3aXNlCisgKiAgICAgICAgIHNldCBhbiBlcnJvcmNvZGUu
CisgKi8KK1VfQ0ZVTkMgdm9pZCB1ZGF0YV9jaGVja0NvbW1vbkRhdGEoVURhdGFNZW1vcnkgKnBE
YXRhLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VkYXRhc3dwLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VkYXRhc3dwLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjZjODQ5NTU2NzY3MDg2ZWFiMWI1ZmI5YjAzMmVmNTA2NzAwZGM3MQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWRhdGFzd3AuaApA
QCAtMCwwICsxLDM1MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5
cmlnaHQgKEMpIDIwMDMtMjAxNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVkYXRhc3dwLmgKKyogICBlbmNvZGlu
ZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0
aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDAzanVuMDUKKyogICBjcmVhdGVkIGJ5OiBNYXJr
dXMgVy4gU2NoZXJlcgorKgorKiAgIERlZmluaXRpb25zIGZvciBJQ1UgZGF0YSB0cmFuc2Zvcm1h
dGlvbnMgZm9yIGRpZmZlcmVudCBwbGF0Zm9ybXMsCisqICAgY2hhbmdpbmcgYmV0d2VlbiBiaWct
IGFuZCBsaXR0bGUtZW5kaWFuIGRhdGEgYW5kL29yIGJldHdlZW4KKyogICBjaGFyc2V0IGZhbWls
aWVzIChBU0NJSTwtPkVCQ0RJQykuCisqLworCisjaWZuZGVmIF9fVURBVEFTV1BfSF9fCisjZGVm
aW5lIF9fVURBVEFTV1BfSF9fCisKKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlICJ1bmlj
b2RlL3V0eXBlcy5oIgorCisvKiBmb3J3YXJkIGRlY2xhcmF0aW9uICovCisKK1VfQ0RFQ0xfQkVH
SU4KKworc3RydWN0IFVEYXRhU3dhcHBlcjsKK3R5cGVkZWYgc3RydWN0IFVEYXRhU3dhcHBlciBV
RGF0YVN3YXBwZXI7CisKKy8qKgorICogRnVuY3Rpb24gdHlwZSBmb3IgZGF0YSB0cmFuc2Zvcm1h
dGlvbi4KKyAqIFRyYW5zZm9ybXMgZGF0YSwgb3IganVzdCByZXR1cm5zIHRoZSBsZW5ndGggb2Yg
dGhlIGRhdGEgaWYKKyAqIHRoZSBpbnB1dCBsZW5ndGggaXMgLTEuCisgKiBTd2FwIGZ1bmN0aW9u
cyBhc3N1bWUgdGhhdCB0aGVpciBkYXRhIHBvaW50ZXJzIGFyZSBhbGlnbmVkIHByb3Blcmx5Lgor
ICoKKyAqIFF1aWNrIGltcGxlbWVudGF0aW9uIG91dGxpbmU6CisgKiAoYmVzdCB0byBjb3B5IGFu
ZCBhZGFwdCBhbmQgZXhpc3Rpbmcgc3dhcHBlciBpbXBsZW1lbnRhdGlvbikKKyAqIGNoZWNrIHRo
YXQgdGhlIGRhdGEgbG9va3MgbGlrZSB0aGUgZXhwZWN0ZWQgZm9ybWF0CisgKiBpZihsZW5ndGg8
MCkgeworICogICBwcmVmbGlnaHQ6CisgKiAgIG5ldmVyIGRlcmVmZXJlbmNlIG91dERhdGEKKyAq
ICAgcmVhZCBpbkRhdGEgYW5kIGRldGVybWluZSB0aGUgZGF0YSBzaXplCisgKiAgIGFzc3VtZSB0
aGF0IGluRGF0YSBpcyBsb25nIGVub3VnaCBmb3IgdGhpcworICogfSBlbHNlIHsKKyAqICAgb3V0
RGF0YSBjYW4gYmUgTlVMTCBpZiBsZW5ndGg9PTAKKyAqICAgaW5EYXRhPT1vdXREYXRhIChpbi1w
bGFjZSBzd2FwcGluZykgcG9zc2libGUgYnV0IG5vdCByZXF1aXJlZCEKKyAqICAgdmVyaWZ5IHRo
YXQgbGVuZ3RoPj0oYWN0dWFsIHNpemUpCisgKiAgIGlmIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQg
bm90IGV2ZXJ5IGJ5dGUgdXAgdG8gc2l6ZSBpcyByZWFjaGVkCisgKiAgICAgZHVlIHRvIHBhZGRp
bmcgZXRjLjoKKyAqICAgaWYoaW5EYXRhIT1vdXREYXRhKSB7CisgKiAgICAgbWVtY3B5KG91dERh
dGEsIGluRGF0YSwgYWN0dWFsIHNpemUpOworICogICB9CisgKiAgIHN3YXAgY29udGVudHMKKyAq
IH0KKyAqIHJldHVybiBhY3R1YWwgc2l6ZQorICoKKyAqIEZ1cnRoZXIgaW1wbGVtZW50YXRpb24g
bm90ZXM6CisgKiAtIHJlYWQgaW50ZWdlcnMgZnJvbSBpbkRhdGEgYmVmb3JlIHN3YXBwaW5nIHRo
ZW0KKyAqICAgYmVjYXVzZSBpbi1wbGFjZSBzd2FwcGluZyBjYW4gbWFrZSB0aGVtIHVucmVhZGFi
bGUKKyAqIC0gY29tcGFyZUludkNoYXJzIGNvbXBhcmVzIGEgbG9jYWwgVW5pY29kZSBzdHJpbmcg
d2l0aCBhbHJlYWR5LXN3YXBwZWQKKyAqICAgb3V0cHV0IGNoYXJzZXQgc3RyaW5ncworICoKKyAq
IEBwYXJhbSBkcyBQb2ludGVyIHRvIFVEYXRhU3dhcHBlciBjb250YWluaW5nIGdsb2JhbCBkYXRh
IGFib3V0IHRoZQorICogICAgICAgICAgIHRyYW5zZm9ybWF0aW9uIGFuZCBmdW5jdGlvbiBwb2lu
dGVycyBmb3IgaGFuZGxpbmcgcHJpbWl0aXZlCisgKiAgICAgICAgICAgdHlwZXMuCisgKiBAcGFy
YW0gaW5EYXRhIFBvaW50ZXIgdG8gdGhlIGlucHV0IGRhdGEgdG8gYmUgdHJhbnNmb3JtZWQgb3Ig
ZXhhbWluZWQuCisgKiBAcGFyYW0gbGVuZ3RoIExlbmd0aCBvZiB0aGUgZGF0YSwgY291bnRpbmcg
Ynl0ZXMuIE1heSBiZSAtMSBmb3IgcHJlZmxpZ2h0aW5nLgorICogICAgICAgICAgICAgICBJZiBs
ZW5ndGg+PTAsIHRoZW4gdHJhbnNmb3JtIHRoZSBkYXRhLgorICogICAgICAgICAgICAgICBJZiBs
ZW5ndGg9PS0xLCB0aGVuIG9ubHkgZGV0ZXJtaW5lIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEuCisg
KiAgICAgICAgICAgICAgIFRoZSBsZW5ndGggY2Fubm90IGJlIGRldGVybWluZWQgZnJvbSB0aGUg
ZGF0YSBpdHNlbGYgZm9yIGFsbAorICogICAgICAgICAgICAgICB0eXBlcyBvZiBkYXRhIChlLmcu
LCBub3QgZm9yIHNpbXBsZSBhcnJheXMgb2YgaW50ZWdlcnMpLgorICogQHBhcmFtIG91dERhdGEg
UG9pbnRlciB0byB0aGUgb3V0cHV0IGRhdGEgYnVmZmVyLgorICogICAgICAgICAgICAgICAgSWYg
bGVuZ3RoPj0wICh0cmFuc2Zvcm1hdGlvbiksIHRoZW4gdGhlIG91dHB1dCBidWZmZXIgbXVzdAor
ICogICAgICAgICAgICAgICAgaGF2ZSBhIGNhcGFjaXR5IG9mIGF0IGxlYXN0IGxlbmd0aC4KKyAq
ICAgICAgICAgICAgICAgIElmIGxlbmd0aD09LTEsIHRoZW4gb3V0RGF0YSB3aWxsIG5vdCBiZSB1
c2VkIGFuZCBjYW4gYmUgTlVMTC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIElDVSBVRXJyb3JDb2Rl
IHBhcmFtZXRlciwgbXVzdCBub3QgYmUgTlVMTCBhbmQgbXVzdAorICogICAgICAgICAgICAgICAg
ICAgZnVsZmlsbCBVX1NVQ0NFU1Mgb24gaW5wdXQuCisgKiBAcmV0dXJuIFRoZSBhY3R1YWwgbGVu
Z3RoIG9mIHRoZSBkYXRhLgorICoKKyAqIEBzZWUgVURhdGFTd2FwcGVyCisgKiBAaW50ZXJuYWwg
SUNVIDIuOAorICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgorVURhdGFTd2FwRm4oY29u
c3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50
MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJy
b3JDb2RlKTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIGlucHV0IHRvIHBs
YXRmb3JtIGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHVp
bnQxNl90IFVfQ0FMTENPTlYKK1VEYXRhUmVhZFVJbnQxNih1aW50MTZfdCB4KTsKKworLyoqCisg
KiBDb252ZXJ0IG9uZSB1aW50MzJfdCBmcm9tIGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3Mu
CisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHVpbnQzMl90IFVfQ0FMTENPTlYK
K1VEYXRhUmVhZFVJbnQzMih1aW50MzJfdCB4KTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSB1aW50
MTZfdCBmcm9tIHBsYXRmb3JtIHRvIGlucHV0IGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNV
IDIuOAorICovCit0eXBlZGVmIHZvaWQgVV9DQUxMQ09OVgorVURhdGFXcml0ZVVJbnQxNih1aW50
MTZfdCAqcCwgdWludDE2X3QgeCk7CisKKy8qKgorICogQ29udmVydCBvbmUgdWludDMyX3QgZnJv
bSBwbGF0Zm9ybSB0byBpbnB1dCBlbmRpYW5uZXNzLgorICogQGludGVybmFsIElDVSAyLjgKKyAq
LwordHlwZWRlZiB2b2lkIFVfQ0FMTENPTlYKK1VEYXRhV3JpdGVVSW50MzIodWludDMyX3QgKnAs
IHVpbnQzMl90IHgpOworCisvKioKKyAqIENvbXBhcmUgaW52YXJpYW50LWNoYXJhY3RlciBzdHJp
bmdzLCBvbmUgaW4gdGhlIG91dHB1dCBkYXRhIGFuZCB0aGUKKyAqIG90aGVyIG9uZSBjYWxsZXIt
cHJvdmlkZWQgaW4gVW5pY29kZS4KKyAqIEFuIG91dHB1dCBkYXRhIHN0cmluZyBpcyBjb21wYXJl
ZCBiZWNhdXNlIHN0cmluZ3MgYXJlIHVzdWFsbHkgc3dhcHBlZAorICogYmVmb3JlIHRoZSByZXN0
IG9mIHRoZSBkYXRhLCB0byBhbGxvdyBmb3Igc29ydGluZyBvZiBzdHJpbmcgdGFibGVzCisgKiBh
Y2NvcmRpbmcgdG8gdGhlIG91dHB1dCBjaGFyc2V0LgorICogWW91IGNhbiB1c2UgLTEgZm9yIHRo
ZSBsZW5ndGggcGFyYW1ldGVycyBvZiBOVUwtdGVybWluYXRlZCBzdHJpbmdzIGFzIHVzdWFsLgor
ICogUmV0dXJucyBVbmljb2RlIGNvZGUgcG9pbnQgb3JkZXIgZm9yIGludmFyaWFudCBjaGFyYWN0
ZXJzLgorICogQGludGVybmFsIElDVSAyLjgKKyAqLwordHlwZWRlZiBpbnQzMl90IFVfQ0FMTENP
TlYKK1VEYXRhQ29tcGFyZUludkNoYXJzKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyICpvdXRTdHJpbmcsIGludDMyX3Qgb3V0TGVuZ3RoLAor
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxvY2FsU3RyaW5nLCBpbnQzMl90IGxv
Y2FsTGVuZ3RoKTsKKworLyoqCisgKiBGdW5jdGlvbiBmb3IgbWVzc2FnZSBvdXRwdXQgd2hlbiBh
biBlcnJvciBvY2N1cnMgZHVyaW5nIGRhdGEgc3dhcHBpbmcuCisgKiBBIGZvcm1hdCBzdHJpbmcg
YW5kIHZhcmlhYmxlIG51bWJlciBvZiBhcmd1bWVudHMgYXJlIHBhc3NlZAorICogbGlrZSBmb3Ig
dnByaW50ZigpLgorICoKKyAqIEBwYXJhbSBjb250ZXh0IEEgZnVuY3Rpb24tc3BlY2lmaWMgY29u
dGV4dCBwb2ludGVyLgorICogQHBhcmFtIGZtdCBUaGUgZm9ybWF0IHN0cmluZy4KKyAqIEBwYXJh
bSBhcmdzIFRoZSBhcmd1bWVudHMgZm9yIGZvcm1hdCBzdHJpbmcgaW5zZXJ0cy4KKyAqCisgKiBA
aW50ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHZvaWQgVV9DQUxMQ09OVgorVURhdGFQcmlu
dEVycm9yKHZvaWQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKTsKKwor
c3RydWN0IFVEYXRhU3dhcHBlciB7CisgICAgLyoqIElucHV0IGVuZGlhbm5lc3MuIEBpbnRlcm5h
bCBJQ1UgMi44ICovCisgICAgVUJvb2wgaW5Jc0JpZ0VuZGlhbjsKKyAgICAvKiogSW5wdXQgY2hh
cnNldCBmYW1pbHkuIEBzZWUgVV9DSEFSU0VUX0ZBTUlMWSBAaW50ZXJuYWwgSUNVIDIuOCAqLwor
ICAgIHVpbnQ4X3QgaW5DaGFyc2V0OworICAgIC8qKiBPdXRwdXQgZW5kaWFubmVzcy4gQGludGVy
bmFsIElDVSAyLjggKi8KKyAgICBVQm9vbCBvdXRJc0JpZ0VuZGlhbjsKKyAgICAvKiogT3V0cHV0
IGNoYXJzZXQgZmFtaWx5LiBAc2VlIFVfQ0hBUlNFVF9GQU1JTFkgQGludGVybmFsIElDVSAyLjgg
Ki8KKyAgICB1aW50OF90IG91dENoYXJzZXQ7CisKKyAgICAvKiBiYXNpYyBmdW5jdGlvbnMgZm9y
IHJlYWRpbmcgZGF0YSB2YWx1ZXMgKi8KKworICAgIC8qKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBm
cm9tIGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisg
ICAgVURhdGFSZWFkVUludDE2ICpyZWFkVUludDE2OworICAgIC8qKiBDb252ZXJ0IG9uZSB1aW50
MzJfdCBmcm9tIGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44
ICovCisgICAgVURhdGFSZWFkVUludDMyICpyZWFkVUludDMyOworICAgIC8qKiBDb21wYXJlIGFu
IGludmFyaWFudC1jaGFyYWN0ZXIgb3V0cHV0IHN0cmluZyB3aXRoIGEgbG9jYWwgb25lLiBAaW50
ZXJuYWwgSUNVIDIuOCAqLworICAgIFVEYXRhQ29tcGFyZUludkNoYXJzICpjb21wYXJlSW52Q2hh
cnM7CisKKyAgICAvKiBiYXNpYyBmdW5jdGlvbnMgZm9yIHdyaXRpbmcgZGF0YSB2YWx1ZXMgKi8K
KworICAgIC8qKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIHBsYXRmb3JtIHRvIGlucHV0IGVu
ZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgVURhdGFXcml0ZVVJbnQxNiAqd3Jp
dGVVSW50MTY7CisgICAgLyoqIENvbnZlcnQgb25lIHVpbnQzMl90IGZyb20gcGxhdGZvcm0gdG8g
aW5wdXQgZW5kaWFubmVzcy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVdyaXRlVUlu
dDMyICp3cml0ZVVJbnQzMjsKKworICAgIC8qIGJhc2ljIGZ1bmN0aW9ucyBmb3IgZGF0YSB0cmFu
c2Zvcm1hdGlvbnMgKi8KKworICAgIC8qKiBUcmFuc2Zvcm0gYW4gYXJyYXkgb2YgMTYtYml0IGlu
dGVnZXJzLiBAaW50ZXJuYWwgSUNVIDIuOCAqLworICAgIFVEYXRhU3dhcEZuICpzd2FwQXJyYXkx
NjsKKyAgICAvKiogVHJhbnNmb3JtIGFuIGFycmF5IG9mIDMyLWJpdCBpbnRlZ2Vycy4gQGludGVy
bmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVN3YXBGbiAqc3dhcEFycmF5MzI7CisgICAgLyoqIFRy
YW5zZm9ybSBhbiBhcnJheSBvZiA2NC1iaXQgaW50ZWdlcnMuIEBpbnRlcm5hbCBJQ1UgNTMgKi8K
KyAgICBVRGF0YVN3YXBGbiAqc3dhcEFycmF5NjQ7CisgICAgLyoqIFRyYW5zZm9ybSBhbiBpbnZh
cmlhbnQtY2hhcmFjdGVyIHN0cmluZy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVN3
YXBGbiAqc3dhcEludkNoYXJzOworCisgICAgLyoqCisgICAgICogRnVuY3Rpb24gZm9yIG1lc3Nh
Z2Ugb3V0cHV0IHdoZW4gYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBkYXRhIHN3YXBwaW5nLgorICAg
ICAqIENhbiBiZSBOVUxMLgorICAgICAqIEBpbnRlcm5hbCBJQ1UgMi44CisgICAgICovCisgICAg
VURhdGFQcmludEVycm9yICpwcmludEVycm9yOworICAgIC8qKiBDb250ZXh0IHBvaW50ZXIgZm9y
IHByaW50RXJyb3IuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgdm9pZCAqcHJpbnRFcnJvckNv
bnRleHQ7Cit9OworCitVX0NERUNMX0VORAorCitVX0NBUEkgVURhdGFTd2FwcGVyICogVV9FWFBP
UlQyCit1ZGF0YV9vcGVuU3dhcHBlcihVQm9vbCBpbklzQmlnRW5kaWFuLCB1aW50OF90IGluQ2hh
cnNldCwKKyAgICAgICAgICAgICAgICAgIFVCb29sIG91dElzQmlnRW5kaWFuLCB1aW50OF90IG91
dENoYXJzZXQsCisgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKwor
LyoqCisgKiBPcGVuIGEgVURhdGFTd2FwcGVyIGZvciB0aGUgZ2l2ZW4gaW5wdXQgZGF0YSBhbmQg
dGhlIHNwZWNpZmllZCBvdXRwdXQKKyAqIGNoYXJhY3RlcmlzdGljcy4KKyAqIFZhbHVlcyBvZiAt
MSBmb3IgYW55IG9mIHRoZSBjaGFyYWN0ZXJpc3RpY3MgbWVhbiB0aGUgbG9jYWwgcGxhdGZvcm0n
cworICogY2hhcmFjdGVyaXN0aWNzLgorICoKKyAqIEBzZWUgdWRhdGFfc3dhcAorICogQGludGVy
bmFsIElDVSAyLjgKKyAqLworVV9DQVBJIFVEYXRhU3dhcHBlciAqIFVfRVhQT1JUMgordWRhdGFf
b3BlblN3YXBwZXJGb3JJbnB1dERhdGEoY29uc3Qgdm9pZCAqZGF0YSwgaW50MzJfdCBsZW5ndGgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQm9vbCBvdXRJc0JpZ0VuZGlhbiwgdWlu
dDhfdCBvdXRDaGFyc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29k
ZSAqcEVycm9yQ29kZSk7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfY2xvc2VTd2Fw
cGVyKFVEYXRhU3dhcHBlciAqZHMpOworCisvKioKKyAqIFJlYWQgdGhlIGJlZ2lubmluZyBvZiBh
biBJQ1UgZGF0YSBwaWVjZSwgcmVjb2duaXplIG1hZ2ljIGJ5dGVzLAorICogc3dhcCB0aGUgc3Ry
dWN0dXJlLgorICogU2V0IGEgVV9VTlNVUFBPUlRFRF9FUlJPUiBpZiBpdCBkb2VzIG5vdCBsb29r
IGxpa2UgYW4gSUNVIGRhdGEgcGllY2UuCisgKgorICogQHJldHVybiBUaGUgc2l6ZSBvZiB0aGUg
ZGF0YSBoZWFkZXIsIGluIGJ5dGVzLgorICoKKyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK1Vf
Q0FQSSBpbnQzMl90IFVfRVhQT1JUMgordWRhdGFfc3dhcERhdGFIZWFkZXIoY29uc3QgVURhdGFT
d2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50
MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSBpbnQxNl90IGZyb20gaW5w
dXQgdG8gcGxhdGZvcm0gZW5kaWFubmVzcy4KKyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK1Vf
Q0FQSSBpbnQxNl90IFVfRVhQT1JUMgordWRhdGFfcmVhZEludDE2KGNvbnN0IFVEYXRhU3dhcHBl
ciAqZHMsIGludDE2X3QgeCk7CisKKy8qKgorICogQ29udmVydCBvbmUgaW50MzJfdCBmcm9tIGlu
cHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCitV
X0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3VkYXRhX3JlYWRJbnQzMihjb25zdCBVRGF0YVN3YXBw
ZXIgKmRzLCBpbnQzMl90IHgpOworCisvKioKKyAqIFN3YXAgYSBibG9jayBvZiBpbnZhcmlhbnQs
IE5VTC10ZXJtaW5hdGVkIHN0cmluZ3MsIGJ1dCBub3QgcGFkZGluZworICogYnl0ZXMgYWZ0ZXIg
dGhlIGxhc3Qgc3RyaW5nLgorICogQGludGVybmFsCisgKi8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQ
T1JUMgordWRhdGFfc3dhcEludlN0cmluZ0Jsb2NrKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW5EYXRhLCBpbnQzMl90IGxlbmd0
aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9wcmludEVycm9yKGNv
bnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZtdCwK
KyAgICAgICAgICAgICAgICAgLi4uKTsKKworLyogaW50ZXJuYWwgZXhwb3J0cyBmcm9tIHB1dGls
LmMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyog
ZGVjbGFyZWQgaGVyZSB0byBrZWVwIHRoZW0gb3V0IG9mIHRoZSBwdWJsaWMgcHV0aWwuaCAqLwor
CisvKioKKyAqIFN3YXAgaW52YXJpYW50IGNoYXIgKiBzdHJpbmdzIEFTQ0lJLT5FQkNESUMuCisg
KiBAaW50ZXJuYWwKKyAqLworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCit1cHJ2X2ViY2RpY0Zy
b21Bc2NpaShjb25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAgICAgICAgICAgICAgY29u
c3Qgdm9pZCAqaW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAg
ICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENvcHkgaW52
YXJpYW50IEFTQ0lJIGNoYXIgKiBzdHJpbmdzIGFuZCB2ZXJpZnkgdGhleSBhcmUgaW52YXJpYW50
LgorICogQGludGVybmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBydl9jb3B5QXNjaWkoY29u
c3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwg
aW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICAgICBVRXJyb3JDb2Rl
ICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBTd2FwIGludmFyaWFudCBjaGFyICogc3RyaW5ncyBF
QkNESUMtPkFTQ0lJLgorICogQGludGVybmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBydl9h
c2NpaUZyb21FYmNkaWMoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisg
ICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBD
b3B5IGludmFyaWFudCBFQkNESUMgY2hhciAqIHN0cmluZ3MgYW5kIHZlcmlmeSB0aGV5IGFyZSBp
bnZhcmlhbnQuCisgKiBAaW50ZXJuYWwKKyAqLworVV9DRlVOQyBpbnQzMl90Cit1cHJ2X2NvcHlF
YmNkaWMoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICBjb25zdCB2b2lk
ICppbkRhdGEsIGludDMyX3QgbGVuZ3RoLCB2b2lkICpvdXREYXRhLAorICAgICAgICAgICAgICAg
IFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENvbXBhcmUgQVNDSUkgaW52YXJp
YW50IGNoYXIgKiB3aXRoIFVuaWNvZGUgaW52YXJpYW50IFVDaGFyICoKKyAqIEBpbnRlcm5hbAor
ICovCitVX0NGVU5DIGludDMyX3QKK3VwcnZfY29tcGFyZUludkFzY2lpKGNvbnN0IFVEYXRhU3dh
cHBlciAqZHMsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpvdXRTdHJpbmcsIGlu
dDMyX3Qgb3V0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxvY2Fs
U3RyaW5nLCBpbnQzMl90IGxvY2FsTGVuZ3RoKTsKKworLyoqCisgKiBDb21wYXJlIEVCQ0RJQyBp
bnZhcmlhbnQgY2hhciAqIHdpdGggVW5pY29kZSBpbnZhcmlhbnQgVUNoYXIgKgorICogQGludGVy
bmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBydl9jb21wYXJlSW52RWJjZGljKGNvbnN0IFVE
YXRhU3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqb3V0U3Ry
aW5nLCBpbnQzMl90IG91dExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hh
ciAqbG9jYWxTdHJpbmcsIGludDMyX3QgbG9jYWxMZW5ndGgpOworCisvKiBtYXRlcmlhbC4uLiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAqLworCisjaWYgMAorCisvKiB1ZGF0YS5oICovCisKKy8qKgorICogUHVibGljIEFQSSBm
dW5jdGlvbiBpbiB1ZGF0YS5jCisgKgorICogU2FtZSBhcyB1ZGF0YV9vcGVuQ2hvaWNlKCkgYnV0
IGF1dG9tYXRpY2FsbHkgc3dhcHMgdGhlIGRhdGEuCisgKiBpc0FjY2VwdGFibGUsIGlmIG5vdCBO
VUxMLCBtYXkgYWNjZXB0IGRhdGEgd2l0aCBlbmRpYW5uZXNzIGFuZCBjaGFyc2V0IGZhbWlseQor
ICogZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgcGxhdGZvcm0ncyBwcm9wZXJ0aWVzLgorICog
SWYgdGhlIGRhdGEgaXMgYWNjZXB0YWJsZSBhbmQgdGhlIHBsYXRmb3JtIHByb3BlcnRpZXMgZG8g
bm90IG1hdGNoLCB0aGVuCisgKiB0aGUgc3dhcCBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gc3dhcCBh
biBhbGxvY2F0ZWQgdmVyc2lvbiBvZiB0aGUgZGF0YS4KKyAqIFByZWZsaWdodGluZyBtYXkgb3Ig
bWF5IG5vdCBiZSBwZXJmb3JtZWQgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHNpemUgb2YKKyAq
IHRoZSBsb2FkZWQgZGF0YSBpdGVtIGlzIGtub3duLgorICoKKyAqIEBwYXJhbSBpc0FjY2VwdGFi
bGUgU2FtZSBhcyBmb3IgdWRhdGFfb3BlbkNob2ljZSgpLiBNYXkgYmUgTlVMTC4KKyAqCisgKiBA
aW50ZXJuYWwgSUNVIDIuOAorICovCitVX0NBUEkgVURhdGFNZW1vcnkgKiBVX0VYUE9SVDIKK3Vk
YXRhX29wZW5Td2FwKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNo
YXIgKm5hbWUsCisgICAgICAgICAgICAgICBVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSAqaXNBY2Nl
cHRhYmxlLCB2b2lkICppc0FjY2VwdGFibGVDb250ZXh0LAorICAgICAgICAgICAgICAgVURhdGFT
d2FwRm4gKnN3YXAsCisgICAgICAgICAgICAgICBVRGF0YVByaW50RXJyb3IgKnByaW50RXJyb3Is
IHZvaWQgKnByaW50RXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVy
cm9yQ29kZSk7CisKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW1hcGZpbGUuaCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW1hcGZpbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTk1ZTM4MWVk
MzBjMGI5MDMyNmIyNGVjZGYxMjI0OWZkNDM0NTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bWFwZmlsZS5oCkBAIC0wLDAgKzEs
NTUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5
OTktMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9u
IGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqLworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAgICAgICBNZW1vcnkg
bWFwcGVkIGZpbGUgd3JhcHBlcnMgZm9yIHVzZSBieSB0aGUgSUNVIERhdGEgSW1wbGVtZW50YXRp
b24KKyAqCisgKiAgICAgICAgICAgUG9ydGluZyBub3RlOiAgVGhlIGltcGxlbWVudGF0aW9uIG9m
IHRoZXNlIGZ1bmN0aW9ucyBpcyB2ZXJ5IHBsYXRmb3JtIHNwZWNpZmljLgorICogICAgICAgICAg
ICAgTm90IGFsbCBwbGF0Zm9ybXMgY2FuIGRvIHJlYWwgbWVtb3J5IG1hcHBpbmcuICBUaG9zZSB0
aGF0IGNhbid0CisgKiAgICAgICAgICAgICBzdGlsbCBtdXN0IGltcGxlbWVudCB0aGVzZSBmdW5j
dGlvbnMsIGdldHRpbmcgdGhlIGRhdGEgaW50byBtZW1vcnkgdXNpbmcKKyAqICAgICAgICAgICAg
IHdoYXRldmVyIG1lYW5zIGFyZSBhdmFpbGFibGUuCisgKgorICogICAgICAgICAgICBUaGVzZSBm
dW5jdGlvbnMgYXJlIHBhcnQgb2YgdGhlIElDVSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiwgYW5k
CisgKiAgICAgICAgICAgIGFyZSBub3QgaW50ZWRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGJ5IGFw
cGxpY2F0aW9ucy4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisjaWZuZGVm
IF9fVU1BUEZJTEVfSF9fCisjZGVmaW5lIF9fVU1BUEZJTEVfSF9fCisKKyNpbmNsdWRlICJ1bmlj
b2RlL3B1dGlsLmgiCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgorI2luY2x1ZGUgInB1dGls
aW1wLmgiCisKK1VfQ0ZVTkMgVUJvb2wgdXBydl9tYXBGaWxlKFVEYXRhTWVtb3J5ICpwZG0sIGNv
bnN0IGNoYXIgKnBhdGgpOworVV9DRlVOQyB2b2lkICB1cHJ2X3VubWFwRmlsZShVRGF0YU1lbW9y
eSAqcERhdGEpOworCisvKiBNQVBfTk9ORTogbm8gbWVtb3J5IG1hcHBpbmcsIG5vIGZpbGUgYWNj
ZXNzIGF0IGFsbCAqLworI2RlZmluZSBNQVBfTk9ORSAgICAgICAgMAorI2RlZmluZSBNQVBfV0lO
MzIgICAgICAgMQorI2RlZmluZSBNQVBfUE9TSVggICAgICAgMgorI2RlZmluZSBNQVBfU1RESU8g
ICAgICAgMworI2RlZmluZSBNQVBfMzkwRExMICAgICAgNAorCisjaWYgVUNPTkZJR19OT19GSUxF
X0lPCisjICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfTk9ORQorI2VsaWYgVV9QTEFU
Rk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBN
QVBfV0lOMzIKKyNlbGlmIFVfSEFWRV9NTUFQIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MAor
IyAgIGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MCAmJiBkZWZpbmVkIChPUzM5MF9TVFVCREFU
QSkKKyAgICAgICAgLyogICBObyBtZW1vcnkgbWFwcGluZyBmb3IgMzkwIGJhdGNoIG1vZGUuICBG
YWtlIGl0IHVzaW5nIGRsbCBsb2FkaW5nLiAgKi8KKyMgICAgICAgZGVmaW5lIE1BUF9JTVBMRU1F
TlRBVElPTiBNQVBfMzkwRExMCisjICAgZWxzZQorIyAgICAgICBkZWZpbmUgTUFQX0lNUExFTUVO
VEFUSU9OIE1BUF9QT1NJWAorIyAgIGVuZGlmCisjZWxzZSAvKiB1bmtub3duIHBsYXRmb3JtLCBu
byBtZW1vcnkgbWFwIGltcGxlbWVudGF0aW9uOiB1c2Ugc3RkaW8uaCBhbmQgdXBydl9tYWxsb2Mo
KSBpbnN0ZWFkICovCisjICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfU1RESU8KKyNl
bmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9nZW5icmsvdW11dGV4LmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Z2VuYnJrL3VtdXRleC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwYWQwZDNjMDM2NTRkNjFhMDIzYTA4MjU0ODU2
M2Q4ZDRjMDNjNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvZ2VuYnJrL3VtdXRleC5oCkBAIC0wLDAgKzEsNDI0IEBACisvKgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNz
IE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgVU1VVEVYLkgKKyoKKyogTW9kaWZpY2F0aW9u
IEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyog
ICAwNC8wMi85NyAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqICAgMDQvMDcvOTkgIHNybCAgICAg
ICAgIHJld3JpdGUgLSBDIGludGVyZmFjZSwgbXVsdGlwbGUgbXV0aWNlcworKiAgIDA1LzEzLzk5
ICBzdGVwaGVuICAgICBDaGFuZ2VkIHRvIHVtdXRleCAoZnJvbSBjbXV0ZXgpCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyovCisKKyNpZm5kZWYgVU1VVEVYX0gKKyNkZWZpbmUgVU1VVEVYX0gKKwor
I2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2xlYW4uaCIK
KyNpbmNsdWRlICJwdXRpbGltcC5oIgorCisKKworLy8gRm9yd2FyZCBEZWNsYXJhdGlvbnMuIFVN
dXRleCBpcyBub3QgaW4gdGhlIElDVSBuYW1lc3BhY2UgKHlldCkgYmVjYXVzZQorLy8gICAgICAg
ICAgICAgICAgICAgICAgIHRoZXJlIGFyZSBzb21lIHJlbWFpbmluZyByZWZlcmVuY2VzIGZyb20g
cGxhaW4gQy4KK3N0cnVjdCBVTXV0ZXg7CitzdHJ1Y3QgVUNvbmRpdGlvblZhcjsKKworVV9OQU1F
U1BBQ0VfQkVHSU4KK3N0cnVjdCBVSW5pdE9uY2U7CitVX05BTUVTUEFDRV9FTkQKKworLy8gU3Ry
aW5naWZ5IG1hY3JvcywgdG8gYWxsb3cgI2luY2x1ZGUgb2YgdXNlciBzdXBwbGllZCBhdG9taWMg
JiBtdXRleCBmaWxlcy4KKyNkZWZpbmUgVV9NVVRFWF9TVFIocykgI3MKKyNkZWZpbmUgVV9NVVRF
WF9YU1RSKHMpIFVfTVVURVhfU1RSKHMpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICog
ICBMb3cgTGV2ZWwgQXRvbWljIE9wZXJhdGlvbnMuCisgKiAgICAgIENvbXBpbGVyIGRlcGVuZGVu
dC4gTm90IG9wZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50LgorICoKKyAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqLworI2lmIGRlZmluZWQgKFVfVVNFUl9BVE9NSUNTX0gpCisjaW5jbHVkZSBVX01VVEVYX1hT
VFIoVV9VU0VSX0FUT01JQ1NfSCkKKworI2VsaWYgVV9IQVZFX1NURF9BVE9NSUNTCisKKy8vICBD
KysxMSBhdG9taWNzIGFyZSBhdmFpbGFibGUuCisKKyNpbmNsdWRlIDxhdG9taWM+CisKK1VfTkFN
RVNQQUNFX0JFR0lOCisKK3R5cGVkZWYgc3RkOjphdG9taWM8aW50MzJfdD4gdV9hdG9taWNfaW50
MzJfdDsKKyNkZWZpbmUgQVRPTUlDX0lOVDMyX1RfSU5JVElBTElaRVIodmFsKSBBVE9NSUNfVkFS
X0lOSVQodmFsKQorCitpbmxpbmUgaW50MzJfdCB1bXR4X2xvYWRBY3F1aXJlKHVfYXRvbWljX2lu
dDMyX3QgJnZhcikgeworICAgIHJldHVybiB2YXIubG9hZChzdGQ6Om1lbW9yeV9vcmRlcl9hY3F1
aXJlKTsKK30KKworaW5saW5lIHZvaWQgdW10eF9zdG9yZVJlbGVhc2UodV9hdG9taWNfaW50MzJf
dCAmdmFyLCBpbnQzMl90IHZhbCkgeworICAgIHZhci5zdG9yZSh2YWwsIHN0ZDo6bWVtb3J5X29y
ZGVyX3JlbGVhc2UpOworfQorCitpbmxpbmUgaW50MzJfdCB1bXR4X2F0b21pY19pbmModV9hdG9t
aWNfaW50MzJfdCAqdmFyKSB7CisgICAgcmV0dXJuIHZhci0+ZmV0Y2hfYWRkKDEpICsgMTsKK30K
KworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfZGVjKHVfYXRvbWljX2ludDMyX3QgKnZhcikg
eworICAgIHJldHVybiB2YXItPmZldGNoX3N1YigxKSAtIDE7Cit9CitVX05BTUVTUEFDRV9FTkQK
KworI2VsaWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisKKy8vIE1TVkMgY29tcGlsZXIuIFJl
YWRzIGFuZCB3cml0ZXMgb2Ygdm9sYXRpbGUgdmFyaWFibGVzIGhhdmUKKy8vICAgICAgICAgICAg
ICAgIGFjcXVpcmUgYW5kIHJlbGVhc2UgbWVtb3J5IHNlbWFudGljcywgcmVzcGVjdGl2ZWx5Lgor
Ly8gICAgICAgICAgICAgICAgVGhpcyBpcyBhIE1pY3Jvc29mdCBleHRlbnNpb24sIG5vdCBzdGFu
ZGFyZCBDKysgYmVoYXZpb3IuCisvLworLy8gICBVcGRhdGU6ICAgICAgY2FuJ3QgdXNlIHRoaXMg
YmVjYXVzZSBvZiBNaW5HVywgYnVpbHQgd2l0aCBnY2MuCisvLyAgICAgICAgICAgICAgICBPcmln
aW5hbCBwbGFuIHdhcyB0byB1c2UgZ2NjIGF0b21pY3MgZm9yIE1pbkdXLCBidXQgdGhleQorLy8g
ICAgICAgICAgICAgICAgYXJlbid0IHN1cHBvcnRlZCwgc28gd2UgZm9sZCBNaW5HVyBpbnRvIHRo
aXMgcGF0aC4KKworIyBkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgorIyBkZWZpbmUgVkNfRVhU
UkFMRUFOCisjIGRlZmluZSBOT1VTRVIKKyMgZGVmaW5lIE5PU0VSVklDRQorIyBkZWZpbmUgTk9J
TUUKKyMgZGVmaW5lIE5PTUNYCisjIGlmbmRlZiBOT01JTk1BWAorIyBkZWZpbmUgTk9NSU5NQVgK
KyMgZW5kaWYKKyMgaW5jbHVkZSA8d2luZG93cy5oPgorCitVX05BTUVTUEFDRV9CRUdJTgordHlw
ZWRlZiB2b2xhdGlsZSBMT05HIHVfYXRvbWljX2ludDMyX3Q7CisjZGVmaW5lIEFUT01JQ19JTlQz
Ml9UX0lOSVRJQUxJWkVSKHZhbCkgdmFsCisKK2lubGluZSBpbnQzMl90IHVtdHhfbG9hZEFjcXVp
cmUodV9hdG9taWNfaW50MzJfdCAmdmFyKSB7CisgICAgcmV0dXJuIEludGVybG9ja2VkQ29tcGFy
ZUV4Y2hhbmdlKCZ2YXIsIDAsIDApOworfQorCitpbmxpbmUgdm9pZCB1bXR4X3N0b3JlUmVsZWFz
ZSh1X2F0b21pY19pbnQzMl90ICZ2YXIsIGludDMyX3QgdmFsKSB7CisgICAgSW50ZXJsb2NrZWRF
eGNoYW5nZSgmdmFyLCB2YWwpOworfQorCisKK2lubGluZSBpbnQzMl90IHVtdHhfYXRvbWljX2lu
Yyh1X2F0b21pY19pbnQzMl90ICp2YXIpIHsKKyAgICByZXR1cm4gSW50ZXJsb2NrZWRJbmNyZW1l
bnQodmFyKTsKK30KKworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfZGVjKHVfYXRvbWljX2lu
dDMyX3QgKnZhcikgeworICAgIHJldHVybiBJbnRlcmxvY2tlZERlY3JlbWVudCh2YXIpOworfQor
VV9OQU1FU1BBQ0VfRU5ECisKKworI2VsaWYgVV9IQVZFX0dDQ19BVE9NSUNTCisvKgorICogZ2Nj
IGF0b21pYyBvcHMuIFRoZXNlIGFyZSBhdmFpbGFibGUgb24gc2V2ZXJhbCBvdGhlciBjb21waWxl
cnMgYXMgd2VsbC4KKyAqLworCitVX05BTUVTUEFDRV9CRUdJTgordHlwZWRlZiBpbnQzMl90IHVf
YXRvbWljX2ludDMyX3Q7CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJQUxJWkVSKHZhbCkg
dmFsCisKK2lubGluZSBpbnQzMl90IHVtdHhfbG9hZEFjcXVpcmUodV9hdG9taWNfaW50MzJfdCAm
dmFyKSB7CisgICAgaW50MzJfdCB2YWwgPSB2YXI7CisgICAgX19zeW5jX3N5bmNocm9uaXplKCk7
CisgICAgcmV0dXJuIHZhbDsKK30KKworaW5saW5lIHZvaWQgdW10eF9zdG9yZVJlbGVhc2UodV9h
dG9taWNfaW50MzJfdCAmdmFyLCBpbnQzMl90IHZhbCkgeworICAgIF9fc3luY19zeW5jaHJvbml6
ZSgpOworICAgIHZhciA9IHZhbDsKK30KKworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfaW5j
KHVfYXRvbWljX2ludDMyX3QgKnApICB7CisgICByZXR1cm4gX19zeW5jX2FkZF9hbmRfZmV0Y2go
cCwgMSk7Cit9CisKK2lubGluZSBpbnQzMl90IHVtdHhfYXRvbWljX2RlYyh1X2F0b21pY19pbnQz
Ml90ICpwKSAgeworICAgcmV0dXJuIF9fc3luY19zdWJfYW5kX2ZldGNoKHAsIDEpOworfQorVV9O
QU1FU1BBQ0VfRU5ECisKKyNlbHNlCisKKy8qCisgKiBVbmtub3duIFBsYXRmb3JtLiBVc2Ugb3V0
LW9mLWxpbmUgZnVuY3Rpb25zLCB3aGljaCBpbiB0dXJuIHVzZSBtdXRleGVzLgorICogICAgICAg
ICAgICAgICAgICAgU2xvdyBidXQgY29ycmVjdC4KKyAqLworCisjZGVmaW5lIFVfTk9fUExBVEZP
Uk1fQVRPTUlDUworCitVX05BTUVTUEFDRV9CRUdJTgordHlwZWRlZiBpbnQzMl90IHVfYXRvbWlj
X2ludDMyX3Q7CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJQUxJWkVSKHZhbCkgdmFsCisK
K1VfQ09NTU9OX0FQSSBpbnQzMl90IFVfRVhQT1JUMiAKK3VtdHhfbG9hZEFjcXVpcmUodV9hdG9t
aWNfaW50MzJfdCAmdmFyKTsKKworVV9DT01NT05fQVBJIHZvaWQgVV9FWFBPUlQyIAordW10eF9z
dG9yZVJlbGVhc2UodV9hdG9taWNfaW50MzJfdCAmdmFyLCBpbnQzMl90IHZhbCk7CisKK1VfQ09N
TU9OX0FQSSBpbnQzMl90IFVfRVhQT1JUMiAKK3VtdHhfYXRvbWljX2luYyh1X2F0b21pY19pbnQz
Ml90ICpwKTsKKworVV9DT01NT05fQVBJIGludDMyX3QgVV9FWFBPUlQyIAordW10eF9hdG9taWNf
ZGVjKHVfYXRvbWljX2ludDMyX3QgKnApOworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmICAv
KiBMb3cgTGV2ZWwgQXRvbWljIE9wcyBQbGF0ZnJvbSBDaGFpbiAqLworCisKKworLyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgVUluaXRPbmNlIERlZmlu
aXRpb25zLgorICogICAgIFRoZXNlIGFyZSBwbGF0Zm9ybSBuZXV0cmFsLgorICoKKyAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitVX05BTUVTUEFDRV9CRUdJTgor
CitzdHJ1Y3QgVUluaXRPbmNlIHsKKyAgICB1X2F0b21pY19pbnQzMl90ICAgZlN0YXRlOworICAg
IFVFcnJvckNvZGUgICAgICAgZkVyckNvZGU7CisgICAgdm9pZCByZXNldCgpIHtmU3RhdGUgPSAw
O307CisgICAgVUJvb2wgaXNSZXNldCgpIHtyZXR1cm4gdW10eF9sb2FkQWNxdWlyZShmU3RhdGUp
ID09IDA7fTsKKy8vIE5vdGU6IGlzUmVzZXQoKSBpcyB1c2VkIGJ5IHNlcnZpY2UgcmVnaXN0cmF0
aW9uIGNvZGUuCisvLyAgICAgICAgICAgICAgICAgVGhyZWFkIHNhZmV0eSBvZiB0aGlzIHVzYWdl
IG5lZWRzIHJldmlldy4KK307CisKKyNkZWZpbmUgVV9JTklUT05DRV9JTklUSUFMSVpFUiB7QVRP
TUlDX0lOVDMyX1RfSU5JVElBTElaRVIoMCksIFVfWkVST19FUlJPUn0KKworCitVX0NPTU1PTl9B
UEkgVUJvb2wgVV9FWFBPUlQyIHVtdHhfaW5pdEltcGxQcmVJbml0KFVJbml0T25jZSAmKTsKK1Vf
Q09NTU9OX0FQSSB2b2lkICBVX0VYUE9SVDIgdW10eF9pbml0SW1wbFBvc3RJbml0KFVJbml0T25j
ZSAmKTsKKwordGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCB1bXR4X2luaXRPbmNlKFVJbml0T25jZSAm
dWlvLCBUICpvYmosIHZvaWQgKFQ6OipmcCkoKSkgeworICAgIGlmICh1bXR4X2xvYWRBY3F1aXJl
KHVpby5mU3RhdGUpID09IDIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAodW10
eF9pbml0SW1wbFByZUluaXQodWlvKSkgeworICAgICAgICAob2JqLT4qZnApKCk7CisgICAgICAg
IHVtdHhfaW5pdEltcGxQb3N0SW5pdCh1aW8pOworICAgIH0KK30KKworCisvLyB1bXR4X2luaXRP
bmNlIHZhcmlhbnQgZm9yIHBsYWluIGZ1bmN0aW9ucywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9u
cy4KKy8vICAgICAgICAgICAgICAgTm8gY29udGV4dCBwYXJhbWV0ZXIuCitpbmxpbmUgdm9pZCB1
bXR4X2luaXRPbmNlKFVJbml0T25jZSAmdWlvLCB2b2lkICgqZnApKCkpIHsKKyAgICBpZiAodW10
eF9sb2FkQWNxdWlyZSh1aW8uZlN0YXRlKSA9PSAyKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgaWYgKHVtdHhfaW5pdEltcGxQcmVJbml0KHVpbykpIHsKKyAgICAgICAgKCpmcCkoKTsK
KyAgICAgICAgdW10eF9pbml0SW1wbFBvc3RJbml0KHVpbyk7CisgICAgfQorfQorCisvLyB1bXR4
X2luaXRPbmNlIHZhcmlhbnQgZm9yIHBsYWluIGZ1bmN0aW9ucywgb3Igc3RhdGljIGNsYXNzIGZ1
bmN0aW9ucy4KKy8vICAgICAgICAgICAgICAgV2l0aCBFcnJvckNvZGUsIE5vIGNvbnRleHQgcGFy
YW1ldGVyLgoraW5saW5lIHZvaWQgdW10eF9pbml0T25jZShVSW5pdE9uY2UgJnVpbywgdm9pZCAo
KmZwKShVRXJyb3JDb2RlICYpLCBVRXJyb3JDb2RlICZlcnJDb2RlKSB7CisgICAgaWYgKFVfRkFJ
TFVSRShlcnJDb2RlKSkgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICh1bXR4X2xv
YWRBY3F1aXJlKHVpby5mU3RhdGUpICE9IDIgJiYgdW10eF9pbml0SW1wbFByZUluaXQodWlvKSkg
eworICAgICAgICAvLyBXZSBydW4gdGhlIGluaXRpYWxpemF0aW9uLgorICAgICAgICAoKmZwKShl
cnJDb2RlKTsKKyAgICAgICAgdWlvLmZFcnJDb2RlID0gZXJyQ29kZTsKKyAgICAgICAgdW10eF9p
bml0SW1wbFBvc3RJbml0KHVpbyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gU29tZW9uZSBl
bHNlIGFscmVhZHkgcmFuIHRoZSBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgaWYgKFVfRkFJTFVS
RSh1aW8uZkVyckNvZGUpKSB7CisgICAgICAgICAgICBlcnJDb2RlID0gdWlvLmZFcnJDb2RlOwor
ICAgICAgICB9CisgICAgfQorfQorCisvLyB1bXR4X2luaXRPbmNlIHZhcmlhbnQgZm9yIHBsYWlu
IGZ1bmN0aW9ucywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9ucywKKy8vICAgICAgICAgICAgICAg
d2l0aCBhIGNvbnRleHQgcGFyYW1ldGVyLgordGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCB1bXR4X2lu
aXRPbmNlKFVJbml0T25jZSAmdWlvLCB2b2lkICgqZnApKFQpLCBUIGNvbnRleHQpIHsKKyAgICBp
ZiAodW10eF9sb2FkQWNxdWlyZSh1aW8uZlN0YXRlKSA9PSAyKSB7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgaWYgKHVtdHhfaW5pdEltcGxQcmVJbml0KHVpbykpIHsKKyAgICAgICAgKCpm
cCkoY29udGV4dCk7CisgICAgICAgIHVtdHhfaW5pdEltcGxQb3N0SW5pdCh1aW8pOworICAgIH0K
K30KKworLy8gdW10eF9pbml0T25jZSB2YXJpYW50IGZvciBwbGFpbiBmdW5jdGlvbnMsIG9yIHN0
YXRpYyBjbGFzcyBmdW5jdGlvbnMsCisvLyAgICAgICAgICAgICAgIHdpdGggYSBjb250ZXh0IHBh
cmFtZXRlciBhbmQgYW4gZXJyb3IgY29kZS4KK3RlbXBsYXRlPGNsYXNzIFQ+IHZvaWQgdW10eF9p
bml0T25jZShVSW5pdE9uY2UgJnVpbywgdm9pZCAoKmZwKShULCBVRXJyb3JDb2RlICYpLCBUIGNv
bnRleHQsIFVFcnJvckNvZGUgJmVyckNvZGUpIHsKKyAgICBpZiAoVV9GQUlMVVJFKGVyckNvZGUp
KSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHVtdHhfbG9hZEFjcXVpcmUodWlv
LmZTdGF0ZSkgIT0gMiAmJiB1bXR4X2luaXRJbXBsUHJlSW5pdCh1aW8pKSB7CisgICAgICAgIC8v
IFdlIHJ1biB0aGUgaW5pdGlhbGl6YXRpb24uCisgICAgICAgICgqZnApKGNvbnRleHQsIGVyckNv
ZGUpOworICAgICAgICB1aW8uZkVyckNvZGUgPSBlcnJDb2RlOworICAgICAgICB1bXR4X2luaXRJ
bXBsUG9zdEluaXQodWlvKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBTb21lb25lIGVsc2Ug
YWxyZWFkeSByYW4gdGhlIGluaXRpYWxpemF0aW9uLgorICAgICAgICBpZiAoVV9GQUlMVVJFKHVp
by5mRXJyQ29kZSkpIHsKKyAgICAgICAgICAgIGVyckNvZGUgPSB1aW8uZkVyckNvZGU7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisKKworLyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgTXV0ZXggRGVmaW5pdGlvbnMuIFBs
YXRmb3JtIERlcGVuZGVudCwgI2lmIHBsYXRmb3JtIGNoYWluIGZvbGxvd3MuCisgKiAgICAgICAg
IFRPRE86ICBBZGQgYSBDKysxMSB2ZXJzaW9uLgorICogICAgICAgICAgICAgICAgTmVlZCB0byBj
b252ZXJ0IGFsbCBtdXRleCB1c2luZyBmaWxlcyB0byBDKysgZmlyc3QuCisgKgorICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZiBkZWZpbmVkKFVfVVNFUl9N
VVRFWF9IKQorLy8gI2lubGN1ZGUgIlVfVVNFUl9NVVRFWF9IIgorI2luY2x1ZGUgVV9NVVRFWF9Y
U1RSKFVfVVNFUl9NVVRFWF9IKQorCisjZWxpZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkKKwor
LyogV2luZG93cyBEZWZpbml0aW9ucy4KKyAqICAgIFdpbmRvd3MgY29tZXMgZmlyc3QgaW4gdGhl
IHBsYXRmb3JtIGNoYWluLgorICogICAgQ3lnd2luIChhbmQgcG9zc2libHkgb3RoZXJzKSBoYXZl
IGJvdGggV0lOMzIgYW5kIFBPU0lYIEFQSXMuIFByZWZlciBXaW4zMiBpbiB0aGlzIGNhc2UuCisg
Ki8KKworCisvKiBGb3IgQ1JJVElDQUxfU0VDVElPTiAqLworCisvKgorICogICBOb3RlOiB0aGVy
ZSBpcyBhbiBlYXJsaWVyIGluY2x1ZGUgb2Ygd2luZG93cy5oIGluIHRoaXMgZmlsZSwgYnV0IGl0
IGlzIGluCisgKiAgICAgICAgIGRpZmZlcmVudCBjb25kaXRpb25hbHMuCisgKiAgICAgICAgIFRo
aXMgb25lIGlzIG5lZWRlZCBpZiB3ZSBhcmUgdXNpbmcgQysrMTEgZm9yIGF0b21pYyBvcHMsIGJ1
dAorICogICAgICAgICB3aW4zMiBBUElzIGZvciBDcml0aWNhbCBTZWN0aW9ucy4KKyAqLworCisj
IGRlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCisjIGRlZmluZSBWQ19FWFRSQUxFQU4KKyMgZGVm
aW5lIE5PVVNFUgorIyBkZWZpbmUgTk9TRVJWSUNFCisjIGRlZmluZSBOT0lNRQorIyBkZWZpbmUg
Tk9NQ1gKKyMgaWZuZGVmIE5PTUlOTUFYCisjIGRlZmluZSBOT01JTk1BWAorIyBlbmRpZgorIyBp
bmNsdWRlIDx3aW5kb3dzLmg+CisKKwordHlwZWRlZiBzdHJ1Y3QgVU11dGV4IHsKKyAgICBpY3U6
OlVJbml0T25jZSAgICBmSW5pdE9uY2U7CisgICAgQ1JJVElDQUxfU0VDVElPTiAgZkNTOworfSBV
TXV0ZXg7CisKKy8qIEluaXRpYWxpemVyIGZvciBhIHN0YXRpYyBVTVVURVguIERlbGliZXJhdGVs
eSBjb250YWlucyBubyB2YWx1ZSBmb3IgdGhlCisgKiAgQ1JJVElDQUxfU0VDVElPTi4KKyAqLwor
I2RlZmluZSBVX01VVEVYX0lOSVRJQUxJWkVSIHtVX0lOSVRPTkNFX0lOSVRJQUxJWkVSfQorCitz
dHJ1Y3QgVUNvbmRpdGlvblZhciB7CisgICAgSEFORExFICAgICAgICAgICBmRW50cnlHYXRlOwor
ICAgIEhBTkRMRSAgICAgICAgICAgZkV4aXRHYXRlOworICAgIGludDMyX3QgICAgICAgICAgZldh
aXRDb3VudDsKK307CisKKyNkZWZpbmUgVV9DT05ESVRJT05fSU5JVElBTElaRVIge05VTEwsIE5V
TEwsIDB9CisgICAgCisKKworI2VsaWYgVV9QTEFURk9STV9JTVBMRU1FTlRTX1BPU0lYCisKKy8q
CisgKiAgUE9TSVggcGxhdGZvcm0KKyAqLworCisjaW5jbHVkZSA8cHRocmVhZC5oPgorCitzdHJ1
Y3QgVU11dGV4IHsKKyAgICBwdGhyZWFkX211dGV4X3QgIGZNdXRleDsKK307Cit0eXBlZGVmIHN0
cnVjdCBVTXV0ZXggVU11dGV4OworI2RlZmluZSBVX01VVEVYX0lOSVRJQUxJWkVSICB7UFRIUkVB
RF9NVVRFWF9JTklUSUFMSVpFUn0KKworc3RydWN0IFVDb25kaXRpb25WYXIgeworICAgIHB0aHJl
YWRfY29uZF90ICAgZkNvbmRpdGlvbjsKK307CisjZGVmaW5lIFVfQ09ORElUSU9OX0lOSVRJQUxJ
WkVSIHtQVEhSRUFEX0NPTkRfSU5JVElBTElaRVJ9CisKKyNlbHNlCisKKy8qCisgKiAgVW5rbm93
IHBsYXRmb3JtIHR5cGUuCisgKiAgICAgIFRoaXMgaXMgYW4gZXJyb3IgY29uZGl0aW9uLiBJQ1Ug
cmVxdWlyZXMgbXV0ZXhlcy4KKyAqLworCisjZXJyb3IgVW5rbm93biBQbGF0Zm9ybS4KKworI2Vu
ZGlmCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgTXV0ZXgg
SW1wbGVtZW50YXRpb24gZnVuY3Rpb24gZGVjbGFyYXRhdGlvbnMuCisgKiAgICAgRGVjbGFyYXRp
b25zIGFyZSBwbGF0Zm9ybSBuZXV0cmFsLgorICogICAgIEltcGxlbWVudGF0aW9ucywgaW4gdW11
dGV4LmNwcCwgYXJlIHBsYXRmb3JtIHNwZWNpZmljLgorICoKKyAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKiovCisKKy8qIExvY2sgYSBtdXRleC4KKyAqIEBwYXJhbSBtdXRleCBUaGUgZ2l2ZW4g
bXV0ZXggdG8gYmUgbG9ja2VkLiAgUGFzcyBOVUxMIHRvIHNwZWNpZnkKKyAqICAgICAgICAgICAg
ICB0aGUgZ2xvYmFsIElDVSBtdXRleC4gIFJlY3Vyc2l2ZSBsb2NrcyBhcmUgYW4gZXJyb3IKKyAq
ICAgICAgICAgICAgICBhbmQgbWF5IGNhdXNlIGEgZGVhZGxvY2sgb24gc29tZSBwbGF0Zm9ybXMu
CisgKi8KK1VfSU5URVJOQUwgdm9pZCBVX0VYUE9SVDIgdW10eF9sb2NrKFVNdXRleCogbXV0ZXgp
OworCisvKiBVbmxvY2sgYSBtdXRleC4KKyAqIEBwYXJhbSBtdXRleCBUaGUgZ2l2ZW4gbXV0ZXgg
dG8gYmUgdW5sb2NrZWQuICBQYXNzIE5VTEwgdG8gc3BlY2lmeQorICogICAgICAgICAgICAgIHRo
ZSBnbG9iYWwgSUNVIG11dGV4LgorICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyIHVtdHhf
dW5sb2NrIChVTXV0ZXgqIG11dGV4KTsKKworLyoKKyAqIFdhaXQgb24gYSBjb25kaXRpb24gdmFy
aWFibGUuCisgKiBUaGUgY2FsbGluZyB0aHJlYWQgd2lsbCB1bmxvY2sgdGhlIG11dGV4IGFuZCB3
YWl0IG9uIHRoZSBjb25kaXRpb24gdmFyaWFibGUuCisgKiBUaGUgbXV0ZXggbXVzdCBiZSBsb2Nr
ZWQgYnkgdGhlIGNhbGxpbmcgdGhyZWFkIHdoZW4gaW52b2tpbmcgdGhpcyBmdW5jdGlvbi4KKyAq
CisgKiBAcGFyYW0gY29uZCB0aGUgY29uZGl0aW9uIHZhcmlhYmxlIHRvIHdhaXQgb24uCisgKiBA
cGFyYW0gbXV0ZXggdGhlIGFzc29jaWF0ZWQgbXV0ZXguCisgKi8KKworVV9JTlRFUk5BTCB2b2lk
IFVfRVhQT1JUMiB1bXR4X2NvbmRXYWl0KFVDb25kaXRpb25WYXIgKmNvbmQsIFVNdXRleCAqbXV0
ZXgpOworCisKKy8qCisgKiBCcm9hZGNhc3Qgd2FrZXVwIG9mIGFsbCB0aHJlYWRzIHdhaXRpbmcg
b24gYSBDb25kaXRpb24uCisgKiBUaGUgYXNzb2NpYXRlZCBtdXRleCBtdXN0IGJlIGxvY2tlZCBi
eSB0aGUgY2FsbGluZyB0aHJlYWQgd2hlbiBjYWxsaW5nCisgKiB0aGlzIGZ1bmN0aW9uOyB0aGlz
IGlzIGEgdGVtcG9yYXJ5IElDVSByZXN0cmljdGlvbi4KKyAqIAorICogQHBhcmFtIGNvbmQgdGhl
IGNvbmRpdGlvbiB2YXJpYWJsZS4KKyAqLworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JUMiB1bXR4
X2NvbmRCcm9hZGNhc3QoVUNvbmRpdGlvblZhciAqY29uZCk7CisKKy8qCisgKiBTaWduYWwgYSBj
b25kaXRpb24gdmFyaWFibGUsIHdha2luZyB1cCBvbmUgd2FpdGluZyB0aHJlYWQuCisgKiBDQVVU
SU9OOiBEbyBub3QgdXNlLiBQbGFjZSBob2xkZXIgb25seS4gTm90IGltcGxlbWVudGVkIGZvciBX
aW5kb3dzLgorICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyIHVtdHhfY29uZFNpZ25hbChV
Q29uZGl0aW9uVmFyICpjb25kKTsKKworI2VuZGlmIC8qIFVNVVRFWF9IICovCisvKmVvZiovCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VuZXdk
YXRhLmMgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VuZXdkYXRh
LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWVhNjBkNTY2ODM5NjQwMzdiYjM2ZGU3MjhiNTJmMWJjNDFmZWM2Ngot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5i
cmsvdW5ld2RhdGEuYwpAQCAtMCwwICsxLDI3NCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVz
cyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVuZXdkYXRh
LmMKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2Vk
KQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0MjUKKyogICBj
cmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+Cisj
aW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3B1dGlsLmgiCisj
aW5jbHVkZSAidW5pY29kZS91c3RyaW5nLmgiCisjaW5jbHVkZSAiY21lbW9yeS5oIgorI2luY2x1
ZGUgImNzdHJpbmcuaCIKKyNpbmNsdWRlICJmaWxlc3RybS5oIgorI2luY2x1ZGUgInVuaWNvZGUv
dWRhdGEuaCIKKyNpbmNsdWRlICJ1bmV3ZGF0YS5oIgorCitzdHJ1Y3QgVU5ld0RhdGFNZW1vcnkg
eworICAgIEZpbGVTdHJlYW0gKmZpbGU7CisgICAgdWludDE2X3QgaGVhZGVyU2l6ZTsKKyAgICB1
aW50OF90IG1hZ2ljMSwgbWFnaWMyOworfTsKKworVV9DQVBJIFVOZXdEYXRhTWVtb3J5ICogVV9F
WFBPUlQyCit1ZGF0YV9jcmVhdGUoY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBj
b25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgIGNvbnN0IFVEYXRhSW5mbyAqcEluZm8sCisg
ICAgICAgICAgICAgY29uc3QgY2hhciAqY29tbWVudCwKKyAgICAgICAgICAgICBVRXJyb3JDb2Rl
ICpwRXJyb3JDb2RlKSB7CisgICAgVU5ld0RhdGFNZW1vcnkgKnBEYXRhOworICAgIHVpbnQxNl90
IGhlYWRlclNpemUsIGNvbW1lbnRMZW5ndGg7CisgICAgY2hhciBmaWxlbmFtZVs1MTJdOworICAg
IHVpbnQ4X3QgYnl0ZXNbMTZdOworICAgIGludCBsZW5ndGg7CisKKyAgICBpZihwRXJyb3JDb2Rl
PT1OVUxMIHx8IFVfRkFJTFVSRSgqcEVycm9yQ29kZSkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7
CisgICAgfSBlbHNlIGlmKG5hbWU9PU5VTEwgfHwgKm5hbWU9PTAgfHwgcEluZm89PU5VTEwpIHsK
KyAgICAgICAgKnBFcnJvckNvZGU9VV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SOworICAgICAgICBy
ZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiBhbGxvY2F0ZSB0aGUgZGF0YSBzdHJ1Y3R1cmUg
Ki8KKyAgICBwRGF0YT0oVU5ld0RhdGFNZW1vcnkgKil1cHJ2X21hbGxvYyhzaXplb2YoVU5ld0Rh
dGFNZW1vcnkpKTsKKyAgICBpZihwRGF0YT09TlVMTCkgeworICAgICAgICAqcEVycm9yQ29kZT1V
X01FTU9SWV9BTExPQ0FUSU9OX0VSUk9SOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cisg
ICAgCisgICAgLyogQ2hlY2sgdGhhdCB0aGUgZnVsbCBwYXRoIHdvbid0IGJlIHRvbyBsb25nICov
CisgICAgbGVuZ3RoID0gMDsJCQkJCS8qIFN0YXJ0IHdpdGggbm90aGluZyAqLworICAgIGlmKGRp
ciAhPSBOVUxMICAmJiAqZGlyICE9MCkJLyogQWRkIGRpcmVjdG9yeSBsZW5ndGggaWYgb25lIHdh
cyBnaXZlbiAqLworICAgIHsKKyAgICAJbGVuZ3RoICs9IHN0cmxlbihkaXIpOworCQorICAgIAkv
KiBBZGQgMSBpZiBkaXIgZG9lc24ndCBlbmQgd2l0aCBwYXRoIHNlcCAqLworICAgICAgICBpZiAo
ZGlyW3N0cmxlbihkaXIpIC0gMV0hPSBVX0ZJTEVfU0VQX0NIQVIpIHsKKyAgICAgICAgICAgIGxl
bmd0aCsrOworICAgICAgICB9CisJfQorICAgIGxlbmd0aCArPSBzdHJsZW4obmFtZSk7CQkvKiBB
ZGQgdGhlIGZpbGVuYW1lIGxlbmd0aCAqLworCisgICAgaWYodHlwZSAhPSBOVUxMICAmJiAqdHlw
ZSAhPTApIHsgLyogQWRkIGRpcmVjdG9yeSBsZW5ndGggaWYgIGdpdmVuICovCisgICAgICAgIGxl
bmd0aCArPSBzdHJsZW4odHlwZSk7CisgICAgfQorCisgICAgICAgIAorICAgICAvKiBMREggYnVm
ZmVyIExlbmd0aCBlcnJvciBjaGVjayAqLworICAgIGlmKGxlbmd0aCAgPiAoc2l6ZW9mKGZpbGVu
YW1lKSAtIDEpKQorICAgIHsKKyAgIAkgICAgKnBFcnJvckNvZGUgPSBVX0JVRkZFUl9PVkVSRkxP
V19FUlJPUjsKKyAgIAkgICAgdXBydl9mcmVlKHBEYXRhKTsKKwkgICAgcmV0dXJuIE5VTEw7Cisg
ICAgfQorICAgCisgICAgLyogb3BlbiB0aGUgb3V0cHV0IGZpbGUgKi8KKyAgICBpZihkaXIhPU5V
TEwgJiYgKmRpciE9MCkgeyAvKiBpZiBkaXIgaGFzIGEgdmFsdWUsIHdlIHByZXBlbmQgaXQgdG8g
dGhlIGZpbGVuYW1lICovCisgICAgICAgIGNoYXIgKnA9ZmlsZW5hbWUrc3RybGVuKGRpcik7Cisg
ICAgICAgIHVwcnZfc3RyY3B5KGZpbGVuYW1lLCBkaXIpOworICAgICAgICBpZiAoKihwLTEpIT1V
X0ZJTEVfU0VQX0NIQVIpIHsKKyAgICAgICAgICAgICpwKys9VV9GSUxFX1NFUF9DSEFSOworICAg
ICAgICAgICAgKnA9MDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7IC8qIG90aGVyd2lzZSwgd2Un
bGwgb3V0cHV0IHRvIHRoZSBjdXJyZW50IGRpciAqLworICAgICAgICBmaWxlbmFtZVswXT0wOwor
ICAgIH0KKyAgICB1cHJ2X3N0cmNhdChmaWxlbmFtZSwgbmFtZSk7CisgICAgaWYodHlwZSE9TlVM
TCAmJiAqdHlwZSE9MCkgeworICAgICAgICB1cHJ2X3N0cmNhdChmaWxlbmFtZSwgIi4iKTsKKyAg
ICAgICAgdXBydl9zdHJjYXQoZmlsZW5hbWUsIHR5cGUpOworICAgIH0KKyAgICBwRGF0YS0+Zmls
ZT1UX0ZpbGVTdHJlYW1fb3BlbihmaWxlbmFtZSwgIndiIik7CisgICAgaWYocERhdGEtPmZpbGU9
PU5VTEwpIHsKKyAgICAgICAgdXBydl9mcmVlKHBEYXRhKTsKKyAgICAgICAgKnBFcnJvckNvZGU9
VV9GSUxFX0FDQ0VTU19FUlJPUjsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAg
Lyogd3JpdGUgdGhlIGhlYWRlciBpbmZvcm1hdGlvbiAqLworICAgIGhlYWRlclNpemU9KHVpbnQx
Nl90KShwSW5mby0+c2l6ZSs0KTsKKyAgICBpZihjb21tZW50IT1OVUxMICYmICpjb21tZW50IT0w
KSB7CisgICAgICAgIGNvbW1lbnRMZW5ndGg9KHVpbnQxNl90KSh1cHJ2X3N0cmxlbihjb21tZW50
KSsxKTsKKyAgICAgICAgaGVhZGVyU2l6ZSs9Y29tbWVudExlbmd0aDsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBjb21tZW50TGVuZ3RoPTA7CisgICAgfQorCisgICAgLyogd3JpdGUgdGhlIHNpemUg
b2YgdGhlIGhlYWRlciwgdGFrZSBwYWRkaW5nIGludG8gYWNjb3VudCAqLworICAgIHBEYXRhLT5o
ZWFkZXJTaXplPSh1aW50MTZfdCkoKGhlYWRlclNpemUrMTUpJn4weGYpOworICAgIHBEYXRhLT5t
YWdpYzE9MHhkYTsKKyAgICBwRGF0YS0+bWFnaWMyPTB4Mjc7CisgICAgVF9GaWxlU3RyZWFtX3dy
aXRlKHBEYXRhLT5maWxlLCAmcERhdGEtPmhlYWRlclNpemUsIDQpOworCisgICAgLyogd3JpdGUg
dGhlIGluZm9ybWF0aW9uIGRhdGEgKi8KKyAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZp
bGUsIHBJbmZvLCBwSW5mby0+c2l6ZSk7CisKKyAgICAvKiB3cml0ZSB0aGUgY29tbWVudCAqLwor
ICAgIGlmKGNvbW1lbnRMZW5ndGg+MCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERh
dGEtPmZpbGUsIGNvbW1lbnQsIGNvbW1lbnRMZW5ndGgpOworICAgIH0KKworICAgIC8qIHdyaXRl
IHBhZGRpbmcgYnl0ZXMgdG8gYWxpZ24gdGhlIGRhdGEgc2VjdGlvbiB0byAxNiBieXRlcyAqLwor
ICAgIGhlYWRlclNpemUmPTB4ZjsKKyAgICBpZihoZWFkZXJTaXplIT0wKSB7CisgICAgICAgIGhl
YWRlclNpemU9KHVpbnQxNl90KSgxNi1oZWFkZXJTaXplKTsKKyAgICAgICAgdXBydl9tZW1zZXQo
Ynl0ZXMsIDAsIGhlYWRlclNpemUpOworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEt
PmZpbGUsIGJ5dGVzLCBoZWFkZXJTaXplKTsKKyAgICB9CisKKyAgICByZXR1cm4gcERhdGE7Cit9
CisKK1VfQ0FQSSB1aW50MzJfdCBVX0VYUE9SVDIKK3VkYXRhX2ZpbmlzaChVTmV3RGF0YU1lbW9y
eSAqcERhdGEsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpIHsKKyAgICB1aW50MzJfdCBmaWxlTGVu
Z3RoPTA7CisKKyAgICBpZihwRXJyb3JDb2RlPT1OVUxMIHx8IFVfRkFJTFVSRSgqcEVycm9yQ29k
ZSkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYocERhdGEhPU5VTEwpIHsK
KyAgICAgICAgaWYocERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgICAgIC8qIGZmbHVzaChw
RGF0YS0+ZmlsZSk7Ki8KKyAgICAgICAgICAgIGZpbGVMZW5ndGg9VF9GaWxlU3RyZWFtX3NpemUo
cERhdGEtPmZpbGUpOworICAgICAgICAgICAgaWYoVF9GaWxlU3RyZWFtX2Vycm9yKHBEYXRhLT5m
aWxlKSkgeworICAgICAgICAgICAgICAgICpwRXJyb3JDb2RlPVVfRklMRV9BQ0NFU1NfRVJST1I7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZpbGVMZW5ndGgtPXBEYXRh
LT5oZWFkZXJTaXplOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVF9GaWxlU3RyZWFtX2Ns
b3NlKHBEYXRhLT5maWxlKTsKKyAgICAgICAgfQorICAgICAgICB1cHJ2X2ZyZWUocERhdGEpOwor
ICAgIH0KKworICAgIHJldHVybiBmaWxlTGVuZ3RoOworfQorCisvKiBkdW1teSBVRGF0YUluZm8g
Y2YuIHVkYXRhLmggKi8KK3N0YXRpYyBjb25zdCBVRGF0YUluZm8gZHVtbXlEYXRhSW5mbyA9IHsK
KyAgICBzaXplb2YoVURhdGFJbmZvKSwKKyAgICAwLAorCisgICAgVV9JU19CSUdfRU5ESUFOLAor
ICAgIFVfQ0hBUlNFVF9GQU1JTFksCisgICAgVV9TSVpFT0ZfVUNIQVIsCisgICAgMCwKKworICAg
IHsgMCwgMCwgMCwgMCB9LCAgICAgICAgICAgICAgICAgLyogZHVtbXkgZGF0YUZvcm1hdCAqLwor
ICAgIHsgMCwgMCwgMCwgMCB9LCAgICAgICAgICAgICAgICAgLyogZHVtbXkgZm9ybWF0VmVyc2lv
biAqLworICAgIHsgMCwgMCwgMCwgMCB9ICAgICAgICAgICAgICAgICAgLyogZHVtbXkgZGF0YVZl
cnNpb24gKi8KK307CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfY3JlYXRlRHVtbXko
Y29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLCBVRXJy
b3JDb2RlICpwRXJyb3JDb2RlKSB7CisgICAgaWYoVV9TVUNDRVNTKCpwRXJyb3JDb2RlKSkgewor
ICAgICAgICB1ZGF0YV9maW5pc2godWRhdGFfY3JlYXRlKGRpciwgdHlwZSwgbmFtZSwgJmR1bW15
RGF0YUluZm8sIE5VTEwsIHBFcnJvckNvZGUpLCBwRXJyb3JDb2RlKTsKKyAgICAgICAgaWYoVV9G
QUlMVVJFKCpwRXJyb3JDb2RlKSkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJv
ciAlcyB3cml0aW5nIGR1bW15IGRhdGEgZmlsZSAlcyIgVV9GSUxFX1NFUF9TVFJJTkcgIiVzLiVz
XG4iLAorICAgICAgICAgICAgICAgICAgICB1X2Vycm9yTmFtZSgqcEVycm9yQ29kZSksIGRpciwg
bmFtZSwgdHlwZSk7CisgICAgICAgICAgICBleGl0KCpwRXJyb3JDb2RlKTsKKyAgICAgICAgfQor
ICAgIH0KK30KKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZTgoVU5ld0RhdGFN
ZW1vcnkgKnBEYXRhLCB1aW50OF90IGJ5dGUpIHsKKyAgICBpZihwRGF0YSE9TlVMTCAmJiBwRGF0
YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUs
ICZieXRlLCAxKTsKKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3Jp
dGUxNihVTmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQxNl90IHdvcmQpIHsKKyAgICBpZihwRGF0
YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3Jp
dGUocERhdGEtPmZpbGUsICZ3b3JkLCAyKTsKKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQ
T1JUMgordWRhdGFfd3JpdGUzMihVTmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQzMl90IHd5ZGUp
IHsKKyAgICBpZihwRGF0YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBU
X0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsICZ3eWRlLCA0KTsKKyAgICB9Cit9CisKK1Vf
Q0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGVCbG9jayhVTmV3RGF0YU1lbW9yeSAqcERh
dGEsIGNvbnN0IHZvaWQgKnMsIGludDMyX3QgbGVuZ3RoKSB7CisgICAgaWYocERhdGEhPU5VTEwg
JiYgcERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAg
ICAgIFRfRmlsZVN0cmVhbV93cml0ZShwRGF0YS0+ZmlsZSwgcywgbGVuZ3RoKTsKKyAgICAgICAg
fQorICAgIH0KK30KKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZVBhZGRpbmco
VU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBpbnQzMl90IGxlbmd0aCkgeworICAgIHN0YXRpYyBjb25z
dCB1aW50OF90IHBhZGRpbmdbMTZdPXsKKyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwK
KyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwKKyAgICAgICAgMHhhYSwgMHhhYSwgMHhh
YSwgMHhhYSwKKyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYQorICAgIH07CisgICAgaWYo
cERhdGEhPU5VTEwgJiYgcERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgd2hpbGUobGVuZ3Ro
Pj0xNikgeworICAgICAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBwYWRk
aW5nLCAxNik7CisgICAgICAgICAgICBsZW5ndGgtPTE2OworICAgICAgICB9CisgICAgICAgIGlm
KGxlbmd0aD4wKSB7CisgICAgICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUs
IHBhZGRpbmcsIGxlbmd0aCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVf
RVhQT1JUMgordWRhdGFfd3JpdGVTdHJpbmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBjb25zdCBj
aGFyICpzLCBpbnQzMl90IGxlbmd0aCkgeworICAgIGlmKHBEYXRhIT1OVUxMICYmIHBEYXRhLT5m
aWxlIT1OVUxMKSB7CisgICAgICAgIGlmKGxlbmd0aD09LTEpIHsKKyAgICAgICAgICAgIGxlbmd0
aD0oaW50MzJfdCl1cHJ2X3N0cmxlbihzKTsKKyAgICAgICAgfQorICAgICAgICBpZihsZW5ndGg+
MCkgeworICAgICAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBzLCBsZW5n
dGgpOworICAgICAgICB9CisgICAgfQorfQorCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRh
X3dyaXRlVVN0cmluZyhVTmV3RGF0YU1lbW9yeSAqcERhdGEsIGNvbnN0IFVDaGFyICpzLCBpbnQz
Ml90IGxlbmd0aCkgeworICAgIGlmKHBEYXRhIT1OVUxMICYmIHBEYXRhLT5maWxlIT1OVUxMKSB7
CisgICAgICAgIGlmKGxlbmd0aD09LTEpIHsKKyAgICAgICAgICAgIGxlbmd0aD11X3N0cmxlbihz
KTsKKyAgICAgICAgfQorICAgICAgICBpZihsZW5ndGg+MCkgeworICAgICAgICAgICAgVF9GaWxl
U3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBzLCBsZW5ndGgqc2l6ZW9mKFVDaGFyKSk7CisgICAg
ICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiBIZXksIEVtYWNzLCBwbGVhc2Ugc2V0IHRoZSBmb2xs
b3dpbmc6CisgKgorICogTG9jYWwgVmFyaWFibGVzOgorICogaW5kZW50LXRhYnMtbW9kZTogbmls
CisgKiBFbmQ6CisgKgorICovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9nZW5icmsvdW5ld2RhdGEuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9nZW5icmsvdW5ld2RhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjViOGU5Zjc0OTg0NzQyN2Qx
MGFiY2ViZTJiNDNhZWI4NzAzZjc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bmV3ZGF0YS5oCkBAIC0wLDAgKzEsMTExIEBACisv
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEw
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
ICAgZmlsZSBuYW1lOiAgdW5ld2RhdGEuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAg
dGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0
ZWQgb246IDE5OTlvY3QyNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLwor
CisjaWZuZGVmIF9fVU5FV0RBVEFfSF9fCisjZGVmaW5lIF9fVU5FV0RBVEFfSF9fCisKKyNpbmNs
dWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKworLyog
QVBJIGZvciB3cml0aW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiogQG1lbW8gRm9yd2FyZCBkZWNsYXJhdGlvbiBvZiB0
aGUgZGF0YSBtZW1vcnkgY3JlYXRpb24gdHlwZS4gKi8KK3R5cGVkZWYgc3RydWN0IFVOZXdEYXRh
TWVtb3J5IFVOZXdEYXRhTWVtb3J5OworCisvKioKKyAqIENyZWF0ZSBhIG5ldyBiaW5hcnkgZGF0
YSBmaWxlLgorICogVGhlIGZpbGUtd3JpdGluZyA8Y29kZT51ZGF0YV88L2NvZGU+IGZ1bmN0aW9u
cyBmYWNpbGl0YXRlIHdyaXRpbmcKKyAqIGJpbmFyeSBkYXRhIGZpbGVzIHRoYXQgY2FuIGJlIHJl
YWQgYnkgSUNVJ3MgPGNvZGU+dWRhdGE8L2NvZGU+IEFQSS4KKyAqIFRoaXMgZnVuY3Rpb24gb3Bl
bnMgYSBuZXcgZmlsZSB3aXRoIGEgZmlsZW5hbWUgZGV0ZXJtaW5lZCBmcm9tIGl0cworICogcGFy
YW1ldGVycyAtIG9mIHRoZSBmb3JtICJuYW1lLnR5cGUiLgorICogSXQgdGhlbiB3cml0ZXMgYSBz
aG9ydCBoZWFkZXIsIGZvbGxvd2VkIGJ5IHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+CisgKiBz
dHJ1Y3R1cmUgYW5kLCBvcHRpb25hbGx5LCBieSB0aGUgY29tbWVudCBzdHJpbmcuCisgKiBJdCB0
aGVuIHdyaXRlcyBwYWRkaW5nIGJ5dGVzIHRvIHJvdW5kIHVwIHRvIGEgbXVsdGlwbGUgb2YgMTYg
Ynl0ZXMuCisgKiBTdWJzZXF1ZW50IHdyaXRlIG9wZXJhdGlvbnMgd2lsbCB0aHVzIHN0YXJ0IGF0
IGFuIG9mZnNldCBpbiB0aGUgZmlsZQorICogdGhhdCBpcyBhIG11bHRpcGxlIG9mIDE2LiA8Y29k
ZT51ZGF0YV9nZXRNZW1vcnkoKTwvY29kZT4gd2lsbCByZXR1cm4KKyAqIGEgcG9pbnRlciB0byB0
aGlzIHNhbWUgc3RhcnRpbmcgb2Zmc2V0LgorICoKKyAqIFNlZSB1ZGF0YS5oIC4KKyAqCisgKiBA
cGFyYW0gZGlyIEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhl
IGRhdGEgd2lsbCBiZQorICogICAgICAgICAgICB3cml0dGVuLiBJZiA8Y29kZT5OVUxMPC9jb2Rl
PiwgdGhlbgorICogICAgICAgICAgICA8Y29kZT51X2dldERhdGFEaXJlY3Rvcnk8L2NvZGU+IGlz
IHVzZWQuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBv
ZiBkYXRhIHRvIGJlIHdyaXR0ZW4uCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVzb3Vy
Y2UgYnVuZGxlcyBhcmUgd3JpdHRlbiB3aXRoIHR5cGUgInJlcyIsCisgKiAgICAgICAgICAgICBj
b252ZXJzaW9uIHRhYmxlcyB3aXRoIHR5cGUgImNudiIuCisgKiAgICAgICAgICAgICBUaGlzIG1h
eSBiZSA8Y29kZT5OVUxMPC9jb2RlPiBvciBlbXB0eS4KKyAqIEBwYXJhbSBuYW1lIEEgc3RyaW5n
IHRoYXQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBkYXRhLgorICogQHBhcmFtIHBJbmZvIEEg
cG9pbnRlciB0byBhIGNvcnJlY3RseSBmaWxsZWQgPGNvZGU+VURhdGFJbmZvPC9jb2RlPgorICog
ICAgICAgICAgICAgIHN0cnVjdHVyZSB0aGF0IHdpbGwgYmUgY29waWVkIGludG8gdGhlIGZpbGUu
CisgKiBAcGFyYW0gY29tbWVudCBBIHN0cmluZyAoZS5nLiwgYSBjb3B5cmlnaHQgc3RhdGVtZW50
KSB0aGF0IHdpbGwgYmUKKyAqICAgICAgICAgICAgICAgIGNvcGllZCBpbnRvIHRoZSBmaWxlIGlm
IGl0IGlzIG5vdCA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAgICAgICAgICAgb3IgZW1wdHku
IFRoaXMgc3RyaW5nIHNlcnZlcyBvbmx5IGFzIGEgY29tbWVudCBpbiB0aGUgYmluYXJ5CisgKiAg
ICAgICAgICAgICAgICBmaWxlLiBJdCB3aWxsIG5vdCBiZSBhY2Nlc3NpYmxlIGJ5IGFueSBBUEku
CisgKiBAcGFyYW0gcEVycm9yQ29kZSBBbiBJQ1UgVUVycm9yQ29kZSBwYXJhbWV0ZXIuIEl0IG11
c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICovCitVX0NBUEkgVU5ld0RhdGFNZW1vcnkg
KiBVX0VYUE9SVDIKK3VkYXRhX2NyZWF0ZShjb25zdCBjaGFyICpkaXIsIGNvbnN0IGNoYXIgKnR5
cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgY29uc3QgVURhdGFJbmZvICpwSW5m
bywKKyAgICAgICAgICAgICBjb25zdCBjaGFyICpjb21tZW50LAorICAgICAgICAgICAgIFVFcnJv
ckNvZGUgKnBFcnJvckNvZGUpOworCisvKiogQG1lbW8gQ2xvc2UgYSBuZXdseSB3cml0dGVuIGJp
bmFyeSBmaWxlLiAqLworVV9DQVBJIHVpbnQzMl90IFVfRVhQT1JUMgordWRhdGFfZmluaXNoKFVO
ZXdEYXRhTWVtb3J5ICpwRGF0YSwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKiBAbWVt
byBXcml0ZSBhIGR1bW15IGRhdGEgZmlsZS4gKi8KK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRh
dGFfY3JlYXRlRHVtbXkoY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBj
aGFyICpuYW1lLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqIEBtZW1vIFdyaXRlIGFu
IDgtYml0IGJ5dGUgdG8gdGhlIGZpbGUuICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRh
X3dyaXRlOChVTmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQ4X3QgYnl0ZSk7CisKKy8qKiBAbWVt
byBXcml0ZSBhIDE2LWJpdCB3b3JkIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBP
UlQyCit1ZGF0YV93cml0ZTE2KFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgdWludDE2X3Qgd29yZCk7
CisKKy8qKiBAbWVtbyBXcml0ZSBhIDMyLWJpdCB3b3JkIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJ
IHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZTMyKFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgdWlu
dDMyX3Qgd3lkZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBhIGJsb2NrIG9mIGJ5dGVzIHRvIHRoZSBm
aWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZUJsb2NrKFVOZXdEYXRh
TWVtb3J5ICpwRGF0YSwgY29uc3Qgdm9pZCAqcywgaW50MzJfdCBsZW5ndGgpOworCisvKiogQG1l
bW8gV3JpdGUgYSBibG9jayBvZiBhcmJpdHJhcnkgcGFkZGluZyBieXRlcyB0byB0aGUgZmlsZS4g
Ki8KK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGVQYWRkaW5nKFVOZXdEYXRhTWVt
b3J5ICpwRGF0YSwgaW50MzJfdCBsZW5ndGgpOworCisvKiogQG1lbW8gV3JpdGUgYSA8Y29kZT5j
aGFyKjwvY29kZT4gc3RyaW5nIG9mIHBsYXRmb3JtICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgdG8g
dGhlIGZpbGUuICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlU3RyaW5nKFVO
ZXdEYXRhTWVtb3J5ICpwRGF0YSwgY29uc3QgY2hhciAqcywgaW50MzJfdCBsZW5ndGgpOworCisv
KiogQG1lbW8gV3JpdGUgYSA8Y29kZT5VQ2hhcio8L2NvZGU+IHN0cmluZyBvZiBVbmljb2RlIGNo
YXJhY3RlciBjb2RlIHVuaXRzIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQy
Cit1ZGF0YV93cml0ZVVTdHJpbmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBjb25zdCBVQ2hhciAq
cywgaW50MzJfdCBsZW5ndGgpOworCisKKy8qCisgKiBIZXksIEVtYWNzLCBwbGVhc2Ugc2V0IHRo
ZSBmb2xsb3dpbmc6CisgKgorICogTG9jYWwgVmFyaWFibGVzOgorICogaW5kZW50LXRhYnMtbW9k
ZTogbmlsCisgKiBFbmQ6CisgKgorICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5jIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5jCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1ZWZj
MTcwY2JkZjc1MTNkZDU3ZWJmNzc3OWI5ODJlOTdhMjFkOTQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25zLmMKQEAgLTAs
MCArMSwxMjIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0
IChDKSAyMDAwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRp
b24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqICAgZmlsZSBuYW1lOiAgdW9wdGlvbnMuYworKiAgIGVuY29kaW5nOiAgIFVTLUFT
Q0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgor
KiAgIGNyZWF0ZWQgb246IDIwMDBhcHIxNworKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hl
cmVyCisqCisqICAgVGhpcyBmaWxlIHByb3ZpZGVzIGEgY29tbWFuZCBsaW5lIGFyZ3VtZW50IHBh
cnNlci4KKyovCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgImNzdHJp
bmcuaCIKKyNpbmNsdWRlICJ1b3B0aW9ucy5oIgorCitVX0NBUEkgaW50IFVfRVhQT1JUMgordV9w
YXJzZUFyZ3MoaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSwKKyAgICAgICAgICAgIGludCBvcHRpb25D
b3VudCwgVU9wdGlvbiBvcHRpb25zW10pIHsKKyAgICBjaGFyICphcmc7CisgICAgaW50IGk9MSwg
cmVtYWluaW5nPTE7CisgICAgY2hhciBjLCBzdG9wT3B0aW9ucz0wOworCisgICAgd2hpbGUoaTxh
cmdjKSB7CisgICAgICAgIGFyZz1hcmd2W2ldOworICAgICAgICBpZighc3RvcE9wdGlvbnMgJiYg
KmFyZz09Jy0nICYmIChjPWFyZ1sxXSkhPTApIHsKKyAgICAgICAgICAgIC8qIHByb2Nlc3MgYW4g
b3B0aW9uICovCisgICAgICAgICAgICBVT3B0aW9uICpvcHRpb249TlVMTDsKKyAgICAgICAgICAg
IGFyZys9MjsKKyAgICAgICAgICAgIGlmKGM9PSctJykgeworICAgICAgICAgICAgICAgIC8qIHBy
b2Nlc3MgYSBsb25nIG9wdGlvbiAqLworICAgICAgICAgICAgICAgIGlmKCphcmc9PTApIHsKKyAg
ICAgICAgICAgICAgICAgICAgLyogc3RvcCBwcm9jZXNzaW5nIG9wdGlvbnMgYWZ0ZXIgIi0tIiAq
LworICAgICAgICAgICAgICAgICAgICBzdG9wT3B0aW9ucz0xOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHNlYXJjaCBmb3IgdGhlIG9wdGlvbiBzdHJp
bmcgKi8KKyAgICAgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgIGZv
cihqPTA7IGo8b3B0aW9uQ291bnQ7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYo
b3B0aW9uc1tqXS5sb25nTmFtZSAmJiB1cHJ2X3N0cmNtcChhcmcsIG9wdGlvbnNbal0ubG9uZ05h
bWUpPT0wKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPW9wdGlvbnMrajsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZihvcHRp
b249PU5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vIG9wdGlvbiBtYXRjaGVz
ICovCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLWk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgb3B0aW9uLT5kb2VzT2NjdXI9MTsKKworICAgICAg
ICAgICAgICAgICAgICBpZihvcHRpb24tPmhhc0FyZyE9VU9QVF9OT19BUkcpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIHBhcnNlIHRoZSBhcmd1bWVudCBmb3IgdGhlIG9wdGlvbiwgaWYg
YW55ICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZihpKzE8YXJnYyAmJiAhKGFyZ3ZbaSsx
XVswXT09Jy0nICYmIGFyZ3ZbaSsxXVsxXSE9MCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBhcmd2W10sIGFuZCB0aGVyZSBpcyBub3QgYW4g
b3B0aW9uIGluIHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLT52
YWx1ZT1hcmd2WysraV07CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYob3B0aW9u
LT5oYXNBcmc9PVVPUFRfUkVRVUlSRVNfQVJHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogdGhlcmUgaXMgbm8gYXJndW1lbnQsIGJ1dCBvbmUgaXMgcmVxdWlyZWQ6IHJldHVybiB3
aXRoIGVycm9yICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1pOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBwcm9jZXNz
IG9uZSBvciBtb3JlIHNob3J0IG9wdGlvbnMgKi8KKyAgICAgICAgICAgICAgICBkbyB7CisgICAg
ICAgICAgICAgICAgICAgIC8qIHNlYXJjaCBmb3IgdGhlIG9wdGlvbiBsZXR0ZXIgKi8KKyAgICAg
ICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8b3B0
aW9uQ291bnQ7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoYz09b3B0aW9uc1tq
XS5zaG9ydE5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb249b3B0aW9u
cytqOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlm
KG9wdGlvbj09TlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogbm8gb3B0aW9uIG1h
dGNoZXMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBvcHRpb24tPmRvZXNPY2N1cj0xOworCisg
ICAgICAgICAgICAgICAgICAgIGlmKG9wdGlvbi0+aGFzQXJnIT1VT1BUX05PX0FSRykgeworICAg
ICAgICAgICAgICAgICAgICAgICAgLyogcGFyc2UgdGhlIGFyZ3VtZW50IGZvciB0aGUgb3B0aW9u
LCBpZiBhbnkgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCphcmchPTApIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiBhcmd1bWVudCBmb2xsb3dpbmcgaW4gdGhlIHNhbWUg
YXJndltdICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLT52YWx1ZT1hcmc7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZG8gbm90IHByb2Nlc3MgdGhlIHJlc3Qg
b2YgdGhpcyBhcmcgYXMgb3B0aW9uIGxldHRlcnMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihpKzE8YXJnYyAm
JiAhKGFyZ3ZbaSsxXVswXT09Jy0nICYmIGFyZ3ZbaSsxXVsxXSE9MCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBhcmd2W10sIGFuZCB0aGVy
ZSBpcyBub3QgYW4gb3B0aW9uIGluIHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3B0aW9uLT52YWx1ZT1hcmd2WysraV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyogdGhpcyBicmVhayBpcyByZWR1bmRhbnQgYmVjYXVzZSB3ZSBrbm93IHRoYXQgKmFyZz09MCAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmKG9wdGlvbi0+aGFzQXJnPT1VT1BUX1JFUVVJUkVTX0FSRykgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZXJlIGlzIG5vIGFyZ3VtZW50LCBidXQgb25l
IGlzIHJlcXVpcmVkOiByZXR1cm4gd2l0aCBlcnJvciAqLworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIC8qIGdldCB0aGUgbmV4dCBvcHRpb24g
bGV0dGVyICovCisgICAgICAgICAgICAgICAgICAgIG9wdGlvbj1OVUxMOworICAgICAgICAgICAg
ICAgICAgICBjPSphcmcrKzsKKyAgICAgICAgICAgICAgICB9IHdoaWxlKGMhPTApOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBpZihvcHRpb24hPTAgJiYgb3B0aW9uLT5vcHRpb25GbiE9
MCAmJiBvcHRpb24tPm9wdGlvbkZuKG9wdGlvbi0+Y29udGV4dCwgb3B0aW9uKTwwKSB7CisgICAg
ICAgICAgICAgICAgLyogdGhlIG9wdGlvbiBmdW5jdGlvbiB3YXMgY2FsbGVkIGFuZCByZXR1cm5l
ZCBhbiBlcnJvciAqLworICAgICAgICAgICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgLyogZ28gdG8gbmV4dCBhcmd2W10gKi8KKyAgICAgICAgICAgICsraTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIG1vdmUgYSBub24tb3B0aW9uIHVwIGlu
IGFyZ3ZbXSAqLworICAgICAgICAgICAgYXJndltyZW1haW5pbmcrK109YXJnOworICAgICAgICAg
ICAgKytpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZW1haW5pbmc7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25z
LmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25zLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDNkYjY1ZjI4MWZjMTkzNGNiODg4MzYzNjYwY2IzMzE3NTUzNGFjMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsv
dW9wdGlvbnMuaApAQCAtMCwwICsxLDE0MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyoKKyogICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBN
YWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVk
LgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVvcHRpb25zLmgK
KyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQor
KiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDAwYXByMTcKKyogICBjcmVh
dGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIFRoaXMgZmlsZSBwcm92aWRlcyBhIGNv
bW1hbmQgbGluZSBhcmd1bWVudCBwYXJzZXIuCisqLworCisjaWZuZGVmIF9fVU9QVElPTlNfSF9f
CisjZGVmaW5lIF9fVU9QVElPTlNfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgor
CisvKiBUaGlzIHNob3VsZCB1c3VhbGx5IGJlIGNhbGxlZCBiZWZvcmUgY2FsbGluZyB1X3BhcnNl
QXJncyAqLworLyojaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwICYmIChVX0NIQVJTRVRfRkFN
SUxZID09IFVfQVNDSUlfRkFNSUxZKSovCisgICAgLyogdHJhbnNsYXRlIGFyZ3MgZnJvbSBFQkNE
SUMgdG8gQVNDSUkgKi8KKy8qIyAgIGRlZmluZSBVX01BSU5fSU5JVF9BUkdTKGFyZ2MsIGFyZ3Yp
IF9fYXJndnRvYXNjaWlfYShhcmdjLCBhcmd2KSovCisvKiNlbGlmIGRlZmluZWQoWFBfTUFDX0NP
TlNPTEUpKi8KKyNpZiBkZWZpbmVkKFhQX01BQ19DT05TT0xFKQorIyAgIGluY2x1ZGUgPGNvbnNv
bGUuaD4KKyAgICAvKiBHZXQgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBHVUksIHNpbmNlIG9sZCBN
YWNzIGRvbid0IGhhdmUgYSBjb25zb2xlIFdpbmRvdy4gKi8KKyMgICBkZWZpbmUgVV9NQUlOX0lO
SVRfQVJHUyhhcmdjLCBhcmd2KSBhcmdjID0gY2NvbW1hbmQoKGNoYXIqKiopJmFyZ3YpCisjZWxz
ZQorICAgIC8qIE5vcm1hbGx5IHdlIGRvIG5vdGhpbmcuICovCisjICAgZGVmaW5lIFVfTUFJTl9J
TklUX0FSR1MoYXJnYywgYXJndikKKyNlbmRpZgorCisKKworLyogZm9yd2FyZCBkZWNsYXJhdGlv
bnMgZm9yIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiAqLworc3RydWN0IFVPcHRpb247Cit0eXBl
ZGVmIHN0cnVjdCBVT3B0aW9uIFVPcHRpb247CisKKy8qIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBm
b3IgYSBjb21tYW5kIGxpbmUgb3B0aW9uICovCit0eXBlZGVmIGludCBVT3B0aW9uRm4odm9pZCAq
Y29udGV4dCwgVU9wdGlvbiAqb3B0aW9uKTsKKworLyogdmFsdWVzIG9mIFVPcHRpb24uaGFzQXJn
ICovCitlbnVtIHsgVU9QVF9OT19BUkcsIFVPUFRfUkVRVUlSRVNfQVJHLCBVT1BUX09QVElPTkFM
X0FSRyB9OworCisvKiBzdHJ1Y3R1cmUgZGVzY3JpYmluZyBhIGNvbW1hbmQgbGluZSBvcHRpb24g
Ki8KK3N0cnVjdCBVT3B0aW9uIHsKKyAgICBjb25zdCBjaGFyICpsb25nTmFtZTsgICAvKiAiZm9v
IiBmb3IgLS1mb28gKi8KKyAgICBjb25zdCBjaGFyICp2YWx1ZTsgICAgICAvKiBvdXRwdXQgcGxh
Y2Vob2xkZXIsIHdpbGwgcG9pbnQgdG8gdGhlIGFyZ3VtZW50IHN0cmluZywgaWYgYW55ICovCisg
ICAgVU9wdGlvbkZuICpvcHRpb25GbjsgICAgLyogZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4g
dGhpcyBvcHRpb24gb2NjdXJzICovCisgICAgdm9pZCAqY29udGV4dDsgICAgICAgICAgLyogcGFy
YW1ldGVyIGZvciB0aGUgZnVuY3Rpb24gKi8KKyAgICBjaGFyIHNob3J0TmFtZTsgICAgICAgICAv
KiAnZicgZm9yIC1mICovCisgICAgY2hhciBoYXNBcmc7ICAgICAgICAgICAgLyogZW51bSB2YWx1
ZTogb3B0aW9uIHRha2VzIG5vL3JlcXVpcmVzL21heSBoYXZlIGFyZ3VtZW50ICovCisgICAgY2hh
ciBkb2VzT2NjdXI7ICAgICAgICAgLyogYm9vbGVhbiBmb3IgInRoaXMgb25lIG9jY3VyZWQiICov
Cit9OworCisvKiBtYWNybyBmb3IgYW4gZW50cnkgaW4gYSBkZWNsYXJhdGlvbiBvZiBVT3B0aW9u
W10gKi8KKyNkZWZpbmUgVU9QVElPTl9ERUYobG9uZ05hbWUsIHNob3J0TmFtZSwgaGFzQXJnKSBc
CisgICAgeyBsb25nTmFtZSwgTlVMTCwgTlVMTCwgTlVMTCwgc2hvcnROYW1lLCBoYXNBcmcsIDAg
fQorCisvKiBJQ1UgVG9vbHMgb3B0aW9uIGRlZmluaXRpb25zICovCisjZGVmaW5lIFVPUFRJT05f
SEVMUF9IICAgICAgICAgICAgICBVT1BUSU9OX0RFRigiaGVscCIsICdoJywgVU9QVF9OT19BUkcp
CisjZGVmaW5lIFVPUFRJT05fSEVMUF9RVUVTVElPTl9NQVJLICBVT1BUSU9OX0RFRigiaGVscCIs
ICc/JywgVU9QVF9OT19BUkcpCisjZGVmaW5lIFVPUFRJT05fVkVSQk9TRSAgICAgICAgICAgICBV
T1BUSU9OX0RFRigidmVyYm9zZSIsICd2JywgVU9QVF9OT19BUkcpCisjZGVmaW5lIFVPUFRJT05f
UVVJRVQgICAgICAgICAgICAgICBVT1BUSU9OX0RFRigicXVpZXQiLCAncScsIFVPUFRfTk9fQVJH
KQorI2RlZmluZSBVT1BUSU9OX1ZFUlNJT04gICAgICAgICAgICAgVU9QVElPTl9ERUYoInZlcnNp
b24iLCAnVicsIFVPUFRfTk9fQVJHKQorI2RlZmluZSBVT1BUSU9OX0NPUFlSSUdIVCAgICAgICAg
ICAgVU9QVElPTl9ERUYoImNvcHlyaWdodCIsICdjJywgVU9QVF9OT19BUkcpCisKKyNkZWZpbmUg
VU9QVElPTl9ERVNURElSICAgICAgICAgICAgIFVPUFRJT05fREVGKCJkZXN0ZGlyIiwgJ2QnLCBV
T1BUX1JFUVVJUkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9TT1VSQ0VESVIgICAgICAgICAgIFVP
UFRJT05fREVGKCJzb3VyY2VkaXIiLCAncycsIFVPUFRfUkVRVUlSRVNfQVJHKQorI2RlZmluZSBV
T1BUSU9OX0VOQ09ESU5HICAgICAgICAgICAgVU9QVElPTl9ERUYoImVuY29kaW5nIiwgJ2UnLCBV
T1BUX1JFUVVJUkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9JQ1VEQVRBRElSICAgICAgICAgIFVP
UFRJT05fREVGKCJpY3VkYXRhZGlyIiwgJ2knLCBVT1BUX1JFUVVJUkVTX0FSRykKKyNkZWZpbmUg
VU9QVElPTl9XUklURV9KQVZBICAgICAgICAgIFVPUFRJT05fREVGKCJ3cml0ZS1qYXZhIiwgJ2on
LCBVT1BUX09QVElPTkFMX0FSRykKKyNkZWZpbmUgVU9QVElPTl9QQUNLQUdFX05BTUUgICAgICAg
IFVPUFRJT05fREVGKCJwYWNrYWdlLW5hbWUiLCAncCcsIFVPUFRfUkVRVUlSRVNfQVJHKQorI2Rl
ZmluZSBVT1BUSU9OX0JVTkRMRV9OQU1FICAgICAgICAgVU9QVElPTl9ERUYoImJ1bmRsZS1uYW1l
IiwgJ2InLCBVT1BUX1JFUVVJUkVTX0FSRykKKworLyoqCisgKiBDIENvbW1hbmQgbGluZSBhcmd1
bWVudCBwYXJzZXIuCisgKgorICogVGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgYXJndlthcmdjXSBj
b21tYW5kIGxpbmUgYW5kIGEgZGVzY3JpcHRpb24gb2YKKyAqIHRoZSBwcm9ncmFtJ3Mgb3B0aW9u
cyBpbiBmb3JtIG9mIGFuIGFycmF5IG9mIFVPcHRpb24gc3RydWN0dXJlcy4KKyAqIEVhY2ggVU9w
dGlvbiBkZWZpbmVzIGEgbG9uZyBhbmQgYSBzaG9ydCBuYW1lIChhIHN0cmluZyBhbmQgYSBjaGFy
YWN0ZXIpCisgKiBmb3Igb3B0aW9ucyBsaWtlICItLWZvbyIgYW5kICItZiIuCisgKgorICogRWFj
aCBvcHRpb24gaXMgbWFya2VkIHdpdGggd2hldGhlciBpdCBkb2VzIG5vdCB0YWtlIGFuIGFyZ3Vt
ZW50LAorICogcmVxdWlyZXMgb25lLCBvciBvcHRpb25hbGx5IHRha2VzIG9uZS4gVGhlIGFyZ3Vt
ZW50IG1heSBmb2xsb3cgaW4KKyAqIHRoZSBzYW1lIGFyZ3ZbXSBlbnRyeSBmb3Igc2hvcnQgb3B0
aW9ucywgb3IgaXQgbWF5IGFsd2F5cyBmb2xsb3cKKyAqIGluIHRoZSBuZXh0IGFyZ3ZbXSBlbnRy
eS4KKyAqCisgKiBBbiBhcmd1bWVudCBpcyBpbiB0aGUgbmV4dCBhcmd2W10gZW50cnkgZm9yIGJv
dGggbG9uZyBhbmQgc2hvcnQgbmFtZQorICogb3B0aW9ucywgZXhjZXB0IGl0IGlzIHRha2VuIGZy
b20gZGlyZWN0bHkgYmVoaW5kIHRoZSBzaG9ydCBuYW1lIGluCisgKiBpdHMgb3duIGFyZ3ZbXSBl
bnRyeSBpZiB0aGVyZSBhcmUgY2hhcmFjdGVycyBmb2xsb3dpbmcgdGhlIG9wdGlvbiBsZXR0ZXIu
CisgKiBBbiBhcmd1bWVudCBpbiBpdHMgb3duIGFyZ3ZbXSBlbnRyeSBtdXN0IG5vdCBiZWdpbiB3
aXRoIGEgJy0nCisgKiB1bmxlc3MgaXQgaXMgb25seSB0aGUgJy0nIGl0c2VsZi4gVGhlcmUgaXMg
bm8gcmVzdHJpY3Rpb24gb2YgdGhlCisgKiBhcmd1bWVudCBmb3JtYXQgaWYgaXQgaXMgcGFydCBv
ZiB0aGUgc2hvcnQgbmFtZSBvcHRpb25zJ3MgYXJndltdIGVudHJ5LgorICoKKyAqIFRoZSBhcmd1
bWVudCBpcyBzdG9yZWQgaW4gdGhlIHZhbHVlIGZpZWxkIG9mIHRoZSBjb3JyZXNwb25kaW5nCisg
KiBVT3B0aW9uIGVudHJ5LCBhbmQgdGhlIGRvZXNPY2N1ciBmaWVsZCBpcyBzZXQgdG8gMSBpZiB0
aGUgb3B0aW9uCisgKiBpcyBmb3VuZCBhdCBhbGwuCisgKgorICogU2hvcnQgbmFtZSBvcHRpb25z
IHdpdGhvdXQgYXJndW1lbnRzIGNhbiBiZSBjb2xsYXBzZWQgaW50byBhIHNpbmdsZQorICogYXJn
dltdIGVudHJ5LiBBZnRlciBhbiBvcHRpb24gbGV0dGVyIHRha2VzIGFuIGFyZ3VtZW50LCBmb2xs
b3dpbmcKKyAqIGxldHRlcnMgd2lsbCBiZSB0YWtlbiBhcyBpdHMgYXJndW1lbnQuCisgKgorICog
SWYgdGhlIHNhbWUgb3B0aW9uIGlzIGZvdW5kIHNldmVyYWwgdGltZXMsIHRoZW4gdGhlIGxhc3QK
KyAqIGFyZ3VtZW50IHZhbHVlIHdpbGwgYmUgc3RvcmVkIGluIHRoZSB2YWx1ZSBmaWVsZC4KKyAq
CisgKiBGb3IgZWFjaCBvcHRpb24sIGEgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZC4gVGhpcyBjb3Vs
ZCBiZSB1c2VkCisgKiBmb3Igb3B0aW9ucyB0aGF0IG9jY3VyIG11bHRpcGxlIHRpbWVzIGFuZCBh
bGwgYXJndW1lbnRzIGFyZSB0bworICogYmUgY29sbGVjdGVkLgorICoKKyAqIEFsbCBvcHRpb25z
IGFyZSByZW1vdmVkIGZyb20gdGhlIGFyZ3ZbXSBhcnJheSBpdHNlbGYuIElmIHRoZSBwYXJzZXIK
KyAqIGlzIHN1Y2Nlc3NmdWwsIHRoZW4gaXQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlbWFpbmlu
ZyBub24tb3B0aW9uCisgKiBzdHJpbmdzIChpbmNsdWRpbmcgYXJndlswXSkuCisgKiBhcmd2WzBd
LCB0aGUgcHJvZ3JhbSBuYW1lLCBpcyBuZXZlciByZWFkIG9yIG1vZGlmaWVkLgorICoKKyAqIEFu
IG9wdGlvbiAiLS0iIGVuZHMgb3B0aW9uIHByb2Nlc3Npbmc7IGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhp
cworICogcmVtYWlucyBpbiB0aGUgYXJndltdIGFycmF5LgorICoKKyAqIEFuIG9wdGlvbiBzdHJp
bmcgIi0iIGFsb25lIGlzIHRyZWF0ZWQgYXMgYSBub24tb3B0aW9uLgorICoKKyAqIElmIGFuIG9w
dGlvbiBpcyBub3QgcmVjb2duaXplZCBvciBhbiBhcmd1bWVudCBtaXNzaW5nLCB0aGVuCisgKiB0
aGUgcGFyc2VyIHJldHVybnMgd2l0aCB0aGUgbmVnYXRpdmUgaW5kZXggb2YgdGhlIGFyZ3ZbXSBl
bnRyeQorICogd2hlcmUgdGhlIGVycm9yIHdhcyBkZXRlY3RlZC4KKyAqCisgKiBUaGUgT1MvNDAw
IGNvbXBpbGVyIHJlcXVpcmVzIHRoYXQgYXJndiBlaXRoZXIgYmUgImNoYXIqIGFyZ3ZbXSIsCisg
KiBvciAiY29uc3QgY2hhciogY29uc3QgYXJndltdIiwgYW5kIGl0IHdpbGwgbm90IGFjY2VwdCwg
CisgKiAiY29uc3QgY2hhciogYXJndltdIiBhcyBhIGRlZmluaXRpb24gZm9yIG1haW4oKS4KKyAq
CisgKiBAcGFyYW0gYXJndiBUaGlzIHBhcmFtZXRlciBpcyBtb2RpZmllZAorICogQHBhcmFtIG9w
dGlvbnMgVGhpcyBwYXJhbWV0ZXIgaXMgbW9kaWZpZWQKKyAqLworVV9DQVBJIGludCBVX0VYUE9S
VDIKK3VfcGFyc2VBcmdzKGludCBhcmdjLCBjaGFyKiBhcmd2W10sCisgICAgICAgICAgICBpbnQg
b3B0aW9uQ291bnQsIFVPcHRpb24gb3B0aW9uc1tdKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3V0cmllLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3V0cmllLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Nl
YzAyN2ZlMzQ1OTVlNWI3NWUxZjI4NTBkMjA2YjYyYTk0ZWY4NwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdXRyaWUuaApAQCAtMCww
ICsxLDc5NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAo
QykgMjAwMS0yMDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9y
YXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1dHJpZS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVND
SUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisq
ICAgY3JlYXRlZCBvbjogMjAwMW5vdjA4CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVy
ZXIKKyovCisKKyNpZm5kZWYgX19VVFJJRV9IX18KKyNkZWZpbmUgX19VVFJJRV9IX18KKworI2lu
Y2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91dGYxNi5oIgorI2lu
Y2x1ZGUgInVkYXRhc3dwLmgiCisKK1VfQ0RFQ0xfQkVHSU4KKworLyoqCisgKiBcZmlsZQorICoK
KyAqIFRoaXMgaXMgYSBjb21tb24gaW1wbGVtZW50YXRpb24gb2YgYSAiZm9sZGVkIiB0cmllLgor
ICogSXQgaXMgYSBraW5kIG9mIGNvbXByZXNzZWQsIHNlcmlhbGl6YWJsZSB0YWJsZSBvZiAxNi0g
b3IgMzItYml0IHZhbHVlcyBhc3NvY2lhdGVkIHdpdGgKKyAqIFVuaWNvZGUgY29kZSBwb2ludHMg
KDAuLjB4MTBmZmZmKS4KKyAqCisgKiBUaGlzIGltcGxlbWVudGF0aW9uIGlzIG9wdGltaXplZCBm
b3IgZ2V0dGluZyB2YWx1ZXMgd2hpbGUgd2Fsa2luZyBmb3J3YXJkCisgKiB0aHJvdWdoIGEgVVRG
LTE2IHN0cmluZy4KKyAqIFRoZXJlZm9yZSwgdGhlIHNpbXBsZXN0IGFuZCBmYXN0ZXN0IGFjY2Vz
cyBtYWNyb3MgYXJlIHRoZQorICogX0ZST01fTEVBRCgpIGFuZCBfRlJPTV9PRkZTRVRfVFJBSUwo
KSBtYWNyb3MuCisgKgorICogVGhlIF9GUk9NX0JNUCgpIG1hY3JvcyBhcmUgYSBsaXR0bGUgbW9y
ZSBjb21wbGljYXRlZDsgdGhleSBnZXQgdmFsdWVzCisgKiBldmVuIGZvciBsZWFkIHN1cnJvZ2F0
ZSBjb2RlIF9wb2ludHNfLCB3aGlsZSB0aGUgX0ZST01fTEVBRCgpIG1hY3JvcworICogZ2V0IHNw
ZWNpYWwgImZvbGRlZCIgdmFsdWVzIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gaWYK
KyAqIHRoZXJlIGlzIHJlbGV2YW50IGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZW0uCisgKiBGcm9t
IHN1Y2ggYSBmb2xkZWQgdmFsdWUsIGFuIG9mZnNldCBuZWVkcyB0byBiZSBleHRyYWN0ZWQgdG8g
c3VwcGx5CisgKiB0byB0aGUgX0ZST01fT0ZGU0VUX1RSQUlMKCkgbWFjcm9zLgorICoKKyAqIE1v
c3Qgb2YgdGhlIG1vcmUgY29tcGxleCAoYW5kIG1vcmUgY29udmVuaWVudCkgZnVuY3Rpb25zL21h
Y3JvcyBjYWxsIGEgY2FsbGJhY2sgZnVuY3Rpb24KKyAqIHRvIGdldCB0aGF0IG9mZnNldCBmcm9t
IHRoZSBmb2xkZWQgdmFsdWUgZm9yIGEgbGVhZCBzdXJyb2dhdGUgdW5pdC4KKyAqLworCisvKioK
KyAqIFRyaWUgY29uc3RhbnRzLCBkZWZpbmluZyBzaGlmdCB3aWR0aHMsIGluZGV4IGFycmF5IGxl
bmd0aHMsIGV0Yy4KKyAqLworZW51bSB7CisgICAgLyoqIFNoaWZ0IHNpemUgZm9yIHNoaWZ0aW5n
IHJpZ2h0IHRoZSBpbnB1dCBpbmRleC4gMS4uOSAqLworICAgIFVUUklFX1NISUZUPTUsCisKKyAg
ICAvKiogTnVtYmVyIG9mIGRhdGEgdmFsdWVzIGluIGEgc3RhZ2UgMiAoZGF0YSBhcnJheSkgYmxv
Y2suIDIsIDQsIDgsIC4uLCAweDIwMCAqLworICAgIFVUUklFX0RBVEFfQkxPQ0tfTEVOR1RIPTE8
PFVUUklFX1NISUZULAorCisgICAgLyoqIE1hc2sgZm9yIGdldHRpbmcgdGhlIGxvd2VyIGJpdHMg
ZnJvbSB0aGUgaW5wdXQgaW5kZXguICovCisgICAgVVRSSUVfTUFTSz1VVFJJRV9EQVRBX0JMT0NL
X0xFTkdUSC0xLAorCisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMn
IGluZGV4IGRpc3BsYWNlbWVudCBpbiB0aGUgaW5kZXggYXJyYXkuCisgICAgICogMHgxMDAwMC0w
eGQ4MDA9MHgyODAwCisgICAgICovCisgICAgVVRSSUVfTEVBRF9JTkRFWF9ESVNQPTB4MjgwMD4+
VVRSSUVfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBTaGlmdCBzaXplIGZvciBzaGlmdGluZyBs
ZWZ0IHRoZSBpbmRleCBhcnJheSB2YWx1ZXMuCisgICAgICogSW5jcmVhc2VzIHBvc3NpYmxlIGRh
dGEgc2l6ZSB3aXRoIDE2LWJpdCBpbmRleCB2YWx1ZXMgYXQgdGhlIGNvc3QKKyAgICAgKiBvZiBj
b21wYWN0YWJpbGl0eS4KKyAgICAgKiBUaGlzIHJlcXVpcmVzIGJsb2NrcyBvZiBzdGFnZSAyIGRh
dGEgdG8gYmUgYWxpZ25lZCBieSBVVFJJRV9EQVRBX0dSQU5VTEFSSVRZLgorICAgICAqIDAuLlVU
UklFX1NISUZUCisgICAgICovCisgICAgVVRSSUVfSU5ERVhfU0hJRlQ9MiwKKworICAgIC8qKiBU
aGUgYWxpZ25tZW50IHNpemUgb2YgYSBzdGFnZSAyIGRhdGEgYmxvY2suIEFsc28gdGhlIGdyYW51
bGFyaXR5IGZvciBjb21wYWN0aW9uLiAqLworICAgIFVUUklFX0RBVEFfR1JBTlVMQVJJVFk9MTw8
VVRSSUVfSU5ERVhfU0hJRlQsCisKKyAgICAvKiogTnVtYmVyIG9mIGJpdHMgb2YgYSB0cmFpbCBz
dXJyb2dhdGUgdGhhdCBhcmUgdXNlZCBpbiBpbmRleCB0YWJsZSBsb29rdXBzLiAqLworICAgIFVU
UklFX1NVUlJPR0FURV9CTE9DS19CSVRTPTEwLVVUUklFX1NISUZULAorCisgICAgLyoqCisgICAg
ICogTnVtYmVyIG9mIGluZGV4IChzdGFnZSAxKSBlbnRyaWVzIHBlciBsZWFkIHN1cnJvZ2F0ZS4K
KyAgICAgKiBTYW1lIGFzIG51bWJlciBvZiBpbmRleCBlbnRyaWVzIGZvciAxMDI0IHRyYWlsIHN1
cnJvZ2F0ZXMsCisgICAgICogPT0weDQwMD4+VVRSSUVfU0hJRlQKKyAgICAgKi8KKyAgICBVVFJJ
RV9TVVJST0dBVEVfQkxPQ0tfQ09VTlQ9KDE8PFVUUklFX1NVUlJPR0FURV9CTE9DS19CSVRTKSwK
KworICAgIC8qKiBMZW5ndGggb2YgdGhlIEJNUCBwb3J0aW9uIG9mIHRoZSBpbmRleCAoc3RhZ2Ug
MSkgYXJyYXkuICovCisgICAgVVRSSUVfQk1QX0lOREVYX0xFTkdUSD0weDEwMDAwPj5VVFJJRV9T
SElGVAorfTsKKworLyoqCisgKiBMZW5ndGggb2YgdGhlIGluZGV4IChzdGFnZSAxKSBhcnJheSBi
ZWZvcmUgZm9sZGluZy4KKyAqIE1heGltdW0gbnVtYmVyIG9mIFVuaWNvZGUgY29kZSBwb2ludHMg
KDB4MTEwMDAwKSBzaGlmdGVkIHJpZ2h0IGJ5IFVUUklFX1NISUZULgorICovCisjZGVmaW5lIFVU
UklFX01BWF9JTkRFWF9MRU5HVEggKDB4MTEwMDAwPj5VVFJJRV9TSElGVCkKKworLyoqCisgKiBN
YXhpbXVtIGxlbmd0aCBvZiB0aGUgcnVudGltZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKyAqIExp
bWl0ZWQgYnkgMTYtYml0IGluZGV4IHZhbHVlcyB0aGF0IGFyZSBsZWZ0LXNoaWZ0ZWQgYnkgVVRS
SUVfSU5ERVhfU0hJRlQuCisgKi8KKyNkZWZpbmUgVVRSSUVfTUFYX0RBVEFfTEVOR1RIICgweDEw
MDAwPDxVVFJJRV9JTkRFWF9TSElGVCkKKworLyoqCisgKiBNYXhpbXVtIGxlbmd0aCBvZiB0aGUg
YnVpbGQtdGltZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKyAqIFRoZSBtYXhpbXVtIGxlbmd0aCBp
cyAweDExMDAwMCtVVFJJRV9EQVRBX0JMT0NLX0xFTkdUSCsweDQwMC4KKyAqIChOdW1iZXIgb2Yg
VW5pY29kZSBjb2RlIHBvaW50cyArIG9uZSBhbGwtaW5pdGlhbC12YWx1ZSBibG9jayArCisgKiAg
cG9zc2libGUgZHVwbGljYXRlIGVudHJpZXMgZm9yIDEwMjQgbGVhZCBzdXJyb2dhdGVzLikKKyAq
LworI2RlZmluZSBVVFJJRV9NQVhfQlVJTERfVElNRV9EQVRBX0xFTkdUSCAoMHgxMTAwMDArVVRS
SUVfREFUQV9CTE9DS19MRU5HVEgrMHg0MDApCisKKy8qKgorICogTnVtYmVyIG9mIGJ5dGVzIGZv
ciBhIGR1bW15IHRyaWUuCisgKiBBIGR1bW15IHRyaWUgaXMgYW4gZW1wdHkgcnVudGltZSB0cmll
LCB1c2VkIHdoZW4gYSByZWFsIGRhdGEgdHJpZSBjYW5ub3QKKyAqIGJlIGxvYWRlZC4KKyAqIFRo
ZSBudW1iZXIgb2YgYnl0ZXMgd29ya3MgZm9yIExhdGluLTEtbGluZWFyIHRyaWVzIHdpdGggMzIt
Yml0IGRhdGEKKyAqICh3b3JzdCBjYXNlKS4KKyAqCisgKiBDYWxjdWxhdGlvbjoKKyAqICAgQk1Q
IGluZGV4ICsgMSBpbmRleCBibG9jayBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMgKwor
ICogICBMYXRpbi0xLWxpbmVhciBhcnJheSArIDEgZGF0YSBibG9jayBmb3IgbGVhZCBzdXJyb2dh
dGUgY29kZSBwb2ludHMKKyAqCisgKiBMYXRpbi0xOiBpZihVVFJJRV9TSElGVDw9OCkgeyAyNTYg
fSBlbHNlIHsgaW5jbHVkZWQgaW4gZmlyc3QgZGF0YSBibG9jayB9CisgKgorICogQHNlZSB1dHJp
ZV91bnNlcmlhbGl6ZUR1bW15CisgKi8KKyNkZWZpbmUgVVRSSUVfRFVNTVlfU0laRSAoKFVUUklF
X0JNUF9JTkRFWF9MRU5HVEgrVVRSSUVfU1VSUk9HQVRFX0JMT0NLX0NPVU5UKSoyKyhVVFJJRV9T
SElGVDw9OD8yNTY6VVRSSUVfREFUQV9CTE9DS19MRU5HVEgpKjQrVVRSSUVfREFUQV9CTE9DS19M
RU5HVEgqNCkKKworLyoqCisgKiBSdW50aW1lIFVUcmllIGNhbGxiYWNrIGZ1bmN0aW9uLgorICog
RXh0cmFjdCBmcm9tIGEgbGVhZCBzdXJyb2dhdGUncyBkYXRhIHRoZQorICogaW5kZXggYXJyYXkg
b2Zmc2V0IG9mIHRoZSBpbmRleGVzIGZvciB0aGF0IGxlYWQgc3Vycm9nYXRlLgorICoKKyAqIEBw
YXJhbSBkYXRhIGRhdGEgdmFsdWUgZm9yIGEgc3Vycm9nYXRlIGZyb20gdGhlIHRyaWUsIGluY2x1
ZGluZyB0aGUgZm9sZGluZyBvZmZzZXQKKyAqIEByZXR1cm4gb2Zmc2V0Pj1VVFJJRV9CTVBfSU5E
RVhfTEVOR1RILCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0
ZQorICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgorVVRyaWVHZXRGb2xkaW5nT2Zmc2V0
KHVpbnQzMl90IGRhdGEpOworCisvKioKKyAqIFJ1bi10aW1lIFRyaWUgc3RydWN0dXJlLgorICoK
KyAqIEVpdGhlciB0aGUgZGF0YSB0YWJsZSBpcyAxNiBiaXRzIHdpZGUgYW5kIGFjY2Vzc2VkIHZp
YSB0aGUgaW5kZXgKKyAqIHBvaW50ZXIsIHdpdGggZWFjaCBpbmRleCBpdGVtIGluY3JlYXNlZCBi
eSBpbmRleExlbmd0aDsKKyAqIGluIHRoaXMgY2FzZSwgZGF0YTMyPT1OVUxMLgorICoKKyAqIE9y
IHRoZSBkYXRhIHRhYmxlIGlzIDMyIGJpdHMgd2lkZSBhbmQgYWNjZXNzZWQgdmlhIHRoZSBkYXRh
MzIgcG9pbnRlci4KKyAqLworc3RydWN0IFVUcmllIHsKKyAgICBjb25zdCB1aW50MTZfdCAqaW5k
ZXg7CisgICAgY29uc3QgdWludDMyX3QgKmRhdGEzMjsgLyogTlVMTCBpZiAxNmIgZGF0YSBpcyB1
c2VkIHZpYSBpbmRleCAqLworCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyBub3Qg
dXNlZCBpbiBfRlJPTV9MRUFELCBfRlJPTV9CTVAsIGFuZCBfRlJPTV9PRkZTRVRfVFJBSUwgbWFj
cm9zLgorICAgICAqIElmIGNvbnZlbmllbmNlIG1hY3JvcyBsaWtlIF9HRVQxNiBvciBfTkVYVDMy
IGFyZSB1c2VkLCB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgc2V0LgorICAgICAqCisgICAgICogdXRy
aWVfdW5zZXJpYWxpemUoKSBzZXRzIGEgZGVmYXVsdCBmdW5jdGlvbiB3aGljaCBzaW1wbHkgcmV0
dXJucworICAgICAqIHRoZSBsZWFkIHN1cnJvZ2F0ZSdzIHZhbHVlIGl0c2VsZiAtIHdoaWNoIGlz
IHRoZSBpbnZlcnNlIG9mIHRoZSBkZWZhdWx0CisgICAgICogZm9sZGluZyBmdW5jdGlvbiB1c2Vk
IGJ5IHV0cmllX3NlcmlhbGl6ZSgpLgorICAgICAqCisgICAgICogQHNlZSBVVHJpZUdldEZvbGRp
bmdPZmZzZXQKKyAgICAgKi8KKyAgICBVVHJpZUdldEZvbGRpbmdPZmZzZXQgKmdldEZvbGRpbmdP
ZmZzZXQ7CisKKyAgICBpbnQzMl90IGluZGV4TGVuZ3RoLCBkYXRhTGVuZ3RoOworICAgIHVpbnQz
Ml90IGluaXRpYWxWYWx1ZTsKKyAgICBVQm9vbCBpc0xhdGluMUxpbmVhcjsKK307CisKKyNpZm5k
ZWYgX19VVFJJRTJfSF9fCit0eXBlZGVmIHN0cnVjdCBVVHJpZSBVVHJpZTsKKyNlbmRpZgorCisv
KiogSW50ZXJuYWwgdHJpZSBnZXR0ZXIgZnJvbSBhbiBvZmZzZXQgKDAgaWYgYzE2IGlzIGEgQk1Q
L2xlYWQgdW5pdHMpIGFuZCBhIDE2LWJpdCB1bml0ICovCisjZGVmaW5lIF9VVFJJRV9HRVRfUkFX
KHRyaWUsIGRhdGEsIG9mZnNldCwgYzE2KSBcCisgICAgKHRyaWUpLT5kYXRhWyBcCisgICAgICAg
ICgoaW50MzJfdCkoKHRyaWUpLT5pbmRleFsob2Zmc2V0KSsoKGMxNik+PlVUUklFX1NISUZUKV0p
PDxVVFJJRV9JTkRFWF9TSElGVCkrIFwKKyAgICAgICAgKChjMTYpJlVUUklFX01BU0spIFwKKyAg
ICBdCisKKy8qKiBJbnRlcm5hbCB0cmllIGdldHRlciBmcm9tIGEgcGFpciBvZiBzdXJyb2dhdGVz
ICovCisjZGVmaW5lIF9VVFJJRV9HRVRfRlJPTV9QQUlSKHRyaWUsIGRhdGEsIGMsIGMyLCByZXN1
bHQsIHJlc3VsdFR5cGUpIHsgXAorICAgIGludDMyX3QgX19vZmZzZXQ7IFwKK1wKKyAgICAvKiBn
ZXQgZGF0YSBmb3IgbGVhZCBzdXJyb2dhdGUgKi8gXAorICAgIChyZXN1bHQpPV9VVFJJRV9HRVRf
UkFXKCh0cmllKSwgZGF0YSwgMCwgKGMpKTsgXAorICAgIF9fb2Zmc2V0PSh0cmllKS0+Z2V0Rm9s
ZGluZ09mZnNldChyZXN1bHQpOyBcCitcCisgICAgLyogZ2V0IHRoZSByZWFsIGRhdGEgZnJvbSB0
aGUgZm9sZGVkIGxlYWQvdHJhaWwgdW5pdHMgKi8gXAorICAgIGlmKF9fb2Zmc2V0PjApIHsgXAor
ICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEsIF9fb2Zmc2V0LCAo
YzIpJjB4M2ZmKTsgXAorICAgIH0gZWxzZSB7IFwKKyAgICAgICAgKHJlc3VsdCk9KHJlc3VsdFR5
cGUpKCh0cmllKS0+aW5pdGlhbFZhbHVlKTsgXAorICAgIH0gXAorfQorCisvKiogSW50ZXJuYWwg
dHJpZSBnZXR0ZXIgZnJvbSBhIEJNUCBjb2RlIHBvaW50LCB0cmVhdGluZyBhIGxlYWQgc3Vycm9n
YXRlIGFzIGEgbm9ybWFsIGNvZGUgcG9pbnQgKi8KKyNkZWZpbmUgX1VUUklFX0dFVF9GUk9NX0JN
UCh0cmllLCBkYXRhLCBjMTYpIFwKKyAgICBfVVRSSUVfR0VUX1JBVyh0cmllLCBkYXRhLCAweGQ4
MDA8PShjMTYpICYmIChjMTYpPD0weGRiZmYgPyBVVFJJRV9MRUFEX0lOREVYX0RJU1AgOiAwLCBj
MTYpOworCisvKioKKyAqIEludGVybmFsIHRyaWUgZ2V0dGVyIGZyb20gYSBjb2RlIHBvaW50Lgor
ICogQ291bGQgYmUgZmFzdGVyKD8pIGJ1dCBsb25nZXIgd2l0aAorICogICBpZigoYzMyKTw9MHhk
N2ZmKSB7IChyZXN1bHQpPV9VVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEsIDAsIGMzMik7IH0KKyAq
LworI2RlZmluZSBfVVRSSUVfR0VUKHRyaWUsIGRhdGEsIGMzMiwgcmVzdWx0LCByZXN1bHRUeXBl
KSBcCisgICAgaWYoKHVpbnQzMl90KShjMzIpPD0weGZmZmYpIHsgXAorICAgICAgICAvKiBCTVAg
Y29kZSBwb2ludHMgKi8gXAorICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX0ZST01fQk1QKHRy
aWUsIGRhdGEsIGMzMik7IFwKKyAgICB9IGVsc2UgaWYoKHVpbnQzMl90KShjMzIpPD0weDEwZmZm
ZikgeyBcCisgICAgICAgIC8qIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCAqLyBcCisgICAgICAg
IFVDaGFyIF9fbGVhZDE2PVUxNl9MRUFEKGMzMik7IFwKKyAgICAgICAgX1VUUklFX0dFVF9GUk9N
X1BBSVIodHJpZSwgZGF0YSwgX19sZWFkMTYsIGMzMiwgcmVzdWx0LCByZXN1bHRUeXBlKTsgXAor
ICAgIH0gZWxzZSB7IFwKKyAgICAgICAgLyogb3V0IG9mIHJhbmdlICovIFwKKyAgICAgICAgKHJl
c3VsdCk9KHJlc3VsdFR5cGUpKCh0cmllKS0+aW5pdGlhbFZhbHVlKTsgXAorICAgIH0KKworLyoq
IEludGVybmFsIG5leHQtcG9zdC1pbmNyZW1lbnQ6IGdldCB0aGUgbmV4dCBjb2RlIHBvaW50IChj
LCBjMikgYW5kIGl0cyBkYXRhICovCisjZGVmaW5lIF9VVFJJRV9ORVhUKHRyaWUsIGRhdGEsIHNy
YywgbGltaXQsIGMsIGMyLCByZXN1bHQsIHJlc3VsdFR5cGUpIHsgXAorICAgIChjKT0qKHNyYykr
KzsgXAorICAgIGlmKCFVMTZfSVNfTEVBRChjKSkgeyBcCisgICAgICAgIChjMik9MDsgXAorICAg
ICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEsIDAsIChjKSk7IFwKKyAg
ICB9IGVsc2UgaWYoKHNyYykhPShsaW1pdCkgJiYgVTE2X0lTX1RSQUlMKChjMik9KihzcmMpKSkg
eyBcCisgICAgICAgICsrKHNyYyk7IFwKKyAgICAgICAgX1VUUklFX0dFVF9GUk9NX1BBSVIoKHRy
aWUpLCBkYXRhLCAoYyksIChjMiksIChyZXN1bHQpLCByZXN1bHRUeXBlKTsgXAorICAgIH0gZWxz
ZSB7IFwKKyAgICAgICAgLyogdW5wYWlyZWQgbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludCAqLyBc
CisgICAgICAgIChjMik9MDsgXAorICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJp
ZSksIGRhdGEsIFVUUklFX0xFQURfSU5ERVhfRElTUCwgKGMpKTsgXAorICAgIH0gXAorfQorCisv
KiogSW50ZXJuYWwgcHJldmlvdXM6IGdldCB0aGUgcHJldmlvdXMgY29kZSBwb2ludCAoYywgYzIp
IGFuZCBpdHMgZGF0YSAqLworI2RlZmluZSBfVVRSSUVfUFJFVklPVVModHJpZSwgZGF0YSwgc3Rh
cnQsIHNyYywgYywgYzIsIHJlc3VsdCwgcmVzdWx0VHlwZSkgeyBcCisgICAgKGMpPSotLShzcmMp
OyBcCisgICAgaWYoIVUxNl9JU19TVVJST0dBVEUoYykpIHsgXAorICAgICAgICAoYzIpPTA7IFwK
KyAgICAgICAgKHJlc3VsdCk9X1VUUklFX0dFVF9SQVcoKHRyaWUpLCBkYXRhLCAwLCAoYykpOyBc
CisgICAgfSBlbHNlIGlmKCFVMTZfSVNfU1VSUk9HQVRFX0xFQUQoYykpIHsgXAorICAgICAgICAv
KiB0cmFpbCBzdXJyb2dhdGUgKi8gXAorICAgICAgICBpZigoc3RhcnQpIT0oc3JjKSAmJiBVMTZf
SVNfTEVBRCgoYzIpPSooKHNyYyktMSkpKSB7IFwKKyAgICAgICAgICAgIC0tKHNyYyk7IFwKKyAg
ICAgICAgICAgIChyZXN1bHQpPShjKTsgKGMpPShjMik7IChjMik9KFVDaGFyKShyZXN1bHQpOyAv
KiBzd2FwIGMsIGMyICovIFwKKyAgICAgICAgICAgIF9VVFJJRV9HRVRfRlJPTV9QQUlSKCh0cmll
KSwgZGF0YSwgKGMpLCAoYzIpLCAocmVzdWx0KSwgcmVzdWx0VHlwZSk7IFwKKyAgICAgICAgfSBl
bHNlIHsgXAorICAgICAgICAgICAgLyogdW5wYWlyZWQgdHJhaWwgc3Vycm9nYXRlIGNvZGUgcG9p
bnQgKi8gXAorICAgICAgICAgICAgKGMyKT0wOyBcCisgICAgICAgICAgICAocmVzdWx0KT1fVVRS
SUVfR0VUX1JBVygodHJpZSksIGRhdGEsIDAsIChjKSk7IFwKKyAgICAgICAgfSBcCisgICAgfSBl
bHNlIHsgXAorICAgICAgICAvKiB1bnBhaXJlZCBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50ICov
IFwKKyAgICAgICAgKGMyKT0wOyBcCisgICAgICAgIChyZXN1bHQpPV9VVFJJRV9HRVRfUkFXKCh0
cmllKSwgZGF0YSwgVVRSSUVfTEVBRF9JTkRFWF9ESVNQLCAoYykpOyBcCisgICAgfSBcCit9CisK
Ky8qIFB1YmxpYyBVVHJpZSBBUEkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBHZXQgYSBwb2ludGVyIHRvIHRoZSBj
b250aWd1b3VzIHBhcnQgb2YgdGhlIGRhdGEgYXJyYXkKKyAqIGZvciB0aGUgTGF0aW4tMSByYW5n
ZSAoVSswMDAwLi5VKzAwZmYpLgorICogTXVzdCBiZSB1c2VkIG9ubHkgaWYgdGhlIExhdGluLTEg
cmFuZ2UgaXMgaW4gZmFjdCBsaW5lYXIKKyAqICh0cmllLT5pc0xhdGluMUxpbmVhcikuCisgKgor
ICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRp
bWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEByZXR1cm4gKGNvbnN0IHVpbnQxNl90ICopIHBvaW50ZXIg
dG8gdmFsdWVzIGZvciBMYXRpbi0xIGNvZGUgcG9pbnRzCisgKi8KKyNkZWZpbmUgVVRSSUVfR0VU
MTZfTEFUSU4xKHRyaWUpICgodHJpZSktPmluZGV4Kyh0cmllKS0+aW5kZXhMZW5ndGgrVVRSSUVf
REFUQV9CTE9DS19MRU5HVEgpCisKKy8qKgorICogR2V0IGEgcG9pbnRlciB0byB0aGUgY29udGln
dW91cyBwYXJ0IG9mIHRoZSBkYXRhIGFycmF5CisgKiBmb3IgdGhlIExhdGluLTEgcmFuZ2UgKFUr
MDAwMC4uVSswMGZmKS4KKyAqIE11c3QgYmUgdXNlZCBvbmx5IGlmIHRoZSBMYXRpbi0xIHJhbmdl
IGlzIGluIGZhY3QgbGluZWFyCisgKiAodHJpZS0+aXNMYXRpbjFMaW5lYXIpLgorICoKKyAqIEBw
YXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRy
aWUgc3RydWN0dXJlCisgKiBAcmV0dXJuIChjb25zdCB1aW50MzJfdCAqKSBwb2ludGVyIHRvIHZh
bHVlcyBmb3IgTGF0aW4tMSBjb2RlIHBvaW50cworICovCisjZGVmaW5lIFVUUklFX0dFVDMyX0xB
VElOMSh0cmllKSAoKHRyaWUpLT5kYXRhMzIrVVRSSUVfREFUQV9CTE9DS19MRU5HVEgpCisKKy8q
KgorICogR2V0IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJNUCBjb2RlIHBvaW50IChVQ2hh
ciwgPD1VK2ZmZmYpLgorICogYzE2IG1heSBiZSBhIGxlYWQgc3Vycm9nYXRlLCB3aGljaCBtYXkg
aGF2ZSBhIHZhbHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0LgorICoKKyAqIEBwYXJhbSB0
cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3Ry
dWN0dXJlCisgKiBAcGFyYW0gYzE2IChVQ2hhciwgaW4pIHRoZSBpbnB1dCBCTVAgY29kZSBwb2lu
dAorICogQHJldHVybiAodWludDE2X3QpIHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5l
IFVUUklFX0dFVDE2X0ZST01fTEVBRCh0cmllLCBjMTYpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGlu
ZGV4LCAwLCBjMTYpCisKKy8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJN
UCBjb2RlIHBvaW50IChVQ2hhciwgPD1VK2ZmZmYpLgorICogYzE2IG1heSBiZSBhIGxlYWQgc3Vy
cm9nYXRlLCB3aGljaCBtYXkgaGF2ZSBhIHZhbHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0
LgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRo
ZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYzE2IChVQ2hhciwgaW4pIHRoZSBp
bnB1dCBCTVAgY29kZSBwb2ludAorICogQHJldHVybiAodWludDMyX3QpIHRyaWUgbG9va3VwIHJl
c3VsdAorICovCisjZGVmaW5lIFVUUklFX0dFVDMyX0ZST01fTEVBRCh0cmllLCBjMTYpIF9VVFJJ
RV9HRVRfUkFXKHRyaWUsIGRhdGEzMiwgMCwgYzE2KQorCisvKioKKyAqIEdldCBhIDE2LWJpdCB0
cmllIHZhbHVlIGZyb20gYSBCTVAgY29kZSBwb2ludCAoVUNoYXIsIDw9VStmZmZmKS4KKyAqIEV2
ZW4gbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIGNvZGUg
cG9pbnRzLAorICogd2l0aCB1bmZvbGRlZCB2YWx1ZXMgdGhhdCBtYXkgZGlmZmVyIGZyb20gX0ZS
T01fTEVBRCgpIG1hY3JvIHJlc3VsdHMgZm9yIHRoZW0uCisgKgorICogQHBhcmFtIHRyaWUgKGNv
bnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUK
KyAqIEBwYXJhbSBjMTYgKFVDaGFyLCBpbikgdGhlIGlucHV0IEJNUCBjb2RlIHBvaW50CisgKiBA
cmV0dXJuICh1aW50MTZfdCkgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVf
R0VUMTZfRlJPTV9CTVAodHJpZSwgYzE2KSBfVVRSSUVfR0VUX0ZST01fQk1QKHRyaWUsIGluZGV4
LCBjMTYpCisKKy8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJNUCBjb2Rl
IHBvaW50IChVQ2hhciwgPD1VK2ZmZmYpLgorICogRXZlbiBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBv
aW50cyBhcmUgdHJlYXRlZCBhcyBub3JtYWwgY29kZSBwb2ludHMsCisgKiB3aXRoIHVuZm9sZGVk
IHZhbHVlcyB0aGF0IG1heSBkaWZmZXIgZnJvbSBfRlJPTV9MRUFEKCkgbWFjcm8gcmVzdWx0cyBm
b3IgdGhlbS4KKyAqCisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRl
ciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIGMxNiAoVUNoYXIsIGlu
KSB0aGUgaW5wdXQgQk1QIGNvZGUgcG9pbnQKKyAqIEByZXR1cm4gKHVpbnQzMl90KSB0cmllIGxv
b2t1cCByZXN1bHQKKyAqLworI2RlZmluZSBVVFJJRV9HRVQzMl9GUk9NX0JNUCh0cmllLCBjMTYp
IF9VVFJJRV9HRVRfRlJPTV9CTVAodHJpZSwgZGF0YTMyLCBjMTYpCisKKy8qKgorICogR2V0IGEg
MTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIGNvZGUgcG9pbnQuCisgKiBFdmVuIGxlYWQgc3Vycm9n
YXRlIGNvZGUgcG9pbnRzIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBjb2RlIHBvaW50cywKKyAqIHdp
dGggdW5mb2xkZWQgdmFsdWVzIHRoYXQgbWF5IGRpZmZlciBmcm9tIF9GUk9NX0xFQUQoKSBtYWNy
byByZXN1bHRzIGZvciB0aGVtLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBp
bikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYzMy
IChVQ2hhcjMyLCBpbikgdGhlIGlucHV0IGNvZGUgcG9pbnQKKyAqIEBwYXJhbSByZXN1bHQgKHVp
bnQxNl90LCBvdXQpIHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0
CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTYodHJpZSwgYzMyLCByZXN1bHQpIF9VVFJJRV9HRVQo
dHJpZSwgaW5kZXgsIGMzMiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgYSAzMi1i
aXQgdHJpZSB2YWx1ZSBmcm9tIGEgY29kZSBwb2ludC4KKyAqIEV2ZW4gbGVhZCBzdXJyb2dhdGUg
Y29kZSBwb2ludHMgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIGNvZGUgcG9pbnRzLAorICogd2l0aCB1
bmZvbGRlZCB2YWx1ZXMgdGhhdCBtYXkgZGlmZmVyIGZyb20gX0ZST01fTEVBRCgpIG1hY3JvIHJl
c3VsdHMgZm9yIHRoZW0uCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBh
IHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBjMzIgKFVD
aGFyMzIsIGluKSB0aGUgaW5wdXQgY29kZSBwb2ludAorICogQHBhcmFtIHJlc3VsdCAodWludDMy
X3QsIG91dCkgdWludDMyX3QgdmFyaWFibGUgZm9yIHRoZSB0cmllIGxvb2t1cCByZXN1bHQKKyAq
LworI2RlZmluZSBVVFJJRV9HRVQzMih0cmllLCBjMzIsIHJlc3VsdCkgX1VUUklFX0dFVCh0cmll
LCBkYXRhMzIsIGMzMiwgcmVzdWx0LCB1aW50MzJfdCkKKworLyoqCisgKiBHZXQgdGhlIG5leHQg
Y29kZSBwb2ludCAoYywgYzIpLCBwb3N0LWluY3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0IGEgMTYt
Yml0IHZhbHVlIGZyb20gdGhlIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmll
ICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJh
bSBzcmMgKGNvbnN0IFVDaGFyICosIGluL291dCkgdGhlIHNvdXJjZSB0ZXh0IHBvaW50ZXIKKyAq
IEBwYXJhbSBsaW1pdCAoY29uc3QgVUNoYXIgKiwgaW4pIHRoZSBsaW1pdCBwb2ludGVyIGZvciB0
aGUgdGV4dCwgb3IgTlVMTAorICogQHBhcmFtIGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciB0
aGUgQk1QIG9yIGxlYWQgY29kZSB1bml0CisgKiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQpIHZhcmlh
YmxlIGZvciAwIG9yIHRoZSB0cmFpbCBjb2RlIHVuaXQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQx
Nl90LCBvdXQpIHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0Cisg
Ki8KKyNkZWZpbmUgVVRSSUVfTkVYVDE2KHRyaWUsIHNyYywgbGltaXQsIGMsIGMyLCByZXN1bHQp
IF9VVFJJRV9ORVhUKHRyaWUsIGluZGV4LCBzcmMsIGxpbWl0LCBjLCBjMiwgcmVzdWx0LCB1aW50
MTZfdCkKKworLyoqCisgKiBHZXQgdGhlIG5leHQgY29kZSBwb2ludCAoYywgYzIpLCBwb3N0LWlu
Y3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0IGEgMzItYml0IHZhbHVlIGZyb20gdGhlIHRyaWUuCisg
KgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1
bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzcmMgKGNvbnN0IFVDaGFyICosIGluL291
dCkgdGhlIHNvdXJjZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBsaW1pdCAoY29uc3QgVUNoYXIg
KiwgaW4pIHRoZSBsaW1pdCBwb2ludGVyIGZvciB0aGUgdGV4dCwgb3IgTlVMTAorICogQHBhcmFt
IGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9yIGxlYWQgY29kZSB1bml0Cisg
KiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAwIG9yIHRoZSB0cmFpbCBjb2Rl
IHVuaXQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQpIHVpbnQzMl90IHZhcmlhYmxl
IGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfTkVYVDMyKHRy
aWUsIHNyYywgbGltaXQsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9ORVhUKHRyaWUsIGRhdGEzMiwg
c3JjLCBsaW1pdCwgYywgYzIsIHJlc3VsdCwgdWludDMyX3QpCisKKy8qKgorICogR2V0IHRoZSBw
cmV2aW91cyBjb2RlIHBvaW50IChjLCBjMiksIHByZS1kZWNyZW1lbnQgc3JjLAorICogYW5kIGdl
dCBhIDE2LWJpdCB2YWx1ZSBmcm9tIHRoZSB0cmllLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25z
dCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisg
KiBAcGFyYW0gc3RhcnQgKGNvbnN0IFVDaGFyICosIGluKSB0aGUgc3RhcnQgcG9pbnRlciBmb3Ig
dGhlIHRleHQsIG9yIE5VTEwKKyAqIEBwYXJhbSBzcmMgKGNvbnN0IFVDaGFyICosIGluL291dCkg
dGhlIHNvdXJjZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBjIChVQ2hhciwgb3V0KSB2YXJpYWJs
ZSBmb3IgdGhlIEJNUCBvciBsZWFkIGNvZGUgdW5pdAorICogQHBhcmFtIGMyIChVQ2hhciwgb3V0
KSB2YXJpYWJsZSBmb3IgMCBvciB0aGUgdHJhaWwgY29kZSB1bml0CisgKiBAcGFyYW0gcmVzdWx0
ICh1aW50MTZfdCwgb3V0KSB1aW50MTZfdCB2YXJpYWJsZSBmb3IgdGhlIHRyaWUgbG9va3VwIHJl
c3VsdAorICovCisjZGVmaW5lIFVUUklFX1BSRVZJT1VTMTYodHJpZSwgc3RhcnQsIHNyYywgYywg
YzIsIHJlc3VsdCkgX1VUUklFX1BSRVZJT1VTKHRyaWUsIGluZGV4LCBzdGFydCwgc3JjLCBjLCBj
MiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgdGhlIHByZXZpb3VzIGNvZGUgcG9p
bnQgKGMsIGMyKSwgcHJlLWRlY3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0IGEgMzItYml0IHZhbHVl
IGZyb20gdGhlIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBh
IHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzdGFydCAo
Y29uc3QgVUNoYXIgKiwgaW4pIHRoZSBzdGFydCBwb2ludGVyIGZvciB0aGUgdGV4dCwgb3IgTlVM
TAorICogQHBhcmFtIHNyYyAoY29uc3QgVUNoYXIgKiwgaW4vb3V0KSB0aGUgc291cmNlIHRleHQg
cG9pbnRlcgorICogQHBhcmFtIGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9y
IGxlYWQgY29kZSB1bml0CisgKiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAw
IG9yIHRoZSB0cmFpbCBjb2RlIHVuaXQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQp
IHVpbnQzMl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZp
bmUgVVRSSUVfUFJFVklPVVMzMih0cmllLCBzdGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0KSBfVVRS
SUVfUFJFVklPVVModHJpZSwgZGF0YTMyLCBzdGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0LCB1aW50
MzJfdCkKKworLyoqCisgKiBHZXQgYSAxNi1iaXQgdHJpZSB2YWx1ZSBmcm9tIGEgcGFpciBvZiBz
dXJyb2dhdGVzLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2lu
dGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYyAoVUNoYXIsIGlu
KSBhIGxlYWQgc3Vycm9nYXRlCisgKiBAcGFyYW0gYzIgKFVDaGFyLCBpbikgYSB0cmFpbCBzdXJy
b2dhdGUKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQxNl90LCBvdXQpIHVpbnQxNl90IHZhcmlhYmxl
IGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTZfRlJP
TV9QQUlSKHRyaWUsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9HRVRfRlJPTV9QQUlSKHRyaWUsIGlu
ZGV4LCBjLCBjMiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgYSAzMi1iaXQgdHJp
ZSB2YWx1ZSBmcm9tIGEgcGFpciBvZiBzdXJyb2dhdGVzLgorICoKKyAqIEBwYXJhbSB0cmllIChj
b25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJl
CisgKiBAcGFyYW0gYyAoVUNoYXIsIGluKSBhIGxlYWQgc3Vycm9nYXRlCisgKiBAcGFyYW0gYzIg
KFVDaGFyLCBpbikgYSB0cmFpbCBzdXJyb2dhdGUKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQzMl90
LCBvdXQpIHVpbnQzMl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8K
KyNkZWZpbmUgVVRSSUVfR0VUMzJfRlJPTV9QQUlSKHRyaWUsIGMsIGMyLCByZXN1bHQpIF9VVFJJ
RV9HRVRfRlJPTV9QQUlSKHRyaWUsIGRhdGEzMiwgYywgYzIsIHJlc3VsdCwgdWludDMyX3QpCisK
Ky8qKgorICogR2V0IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIGZvbGRpbmcgb2Zmc2V0IChm
cm9tIHRoZSB2YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRlKQorICogYW5kIGEgdHJhaWwgc3Vycm9n
YXRlLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRv
IHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gb2Zmc2V0IChpbnQzMl90LCBp
bikgdGhlIGZvbGRpbmcgb2Zmc2V0IGZyb20gdGhlIHZhbHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUK
KyAqIEBwYXJhbSBjMiAoVUNoYXIsIGluKSBhIHRyYWlsIHN1cnJvZ2F0ZSAob25seSB0aGUgMTAg
bG93IGJpdHMgYXJlIHNpZ25pZmljYW50KQorICogQHJldHVybiAodWludDE2X3QpIHRyaWUgbG9v
a3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dFVDE2X0ZST01fT0ZGU0VUX1RSQUlMKHRy
aWUsIG9mZnNldCwgYzIpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGluZGV4LCBvZmZzZXQsIChjMikm
MHgzZmYpCisKKy8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIGZvbGRpbmcg
b2Zmc2V0IChmcm9tIHRoZSB2YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRlKQorICogYW5kIGEgdHJh
aWwgc3Vycm9nYXRlLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBw
b2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gb2Zmc2V0IChp
bnQzMl90LCBpbikgdGhlIGZvbGRpbmcgb2Zmc2V0IGZyb20gdGhlIHZhbHVlIG9mIGEgbGVhZCBz
dXJyb2dhdGUKKyAqIEBwYXJhbSBjMiAoVUNoYXIsIGluKSBhIHRyYWlsIHN1cnJvZ2F0ZSAob25s
eSB0aGUgMTAgbG93IGJpdHMgYXJlIHNpZ25pZmljYW50KQorICogQHJldHVybiAodWludDMyX3Qp
IHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dFVDMyX0ZST01fT0ZGU0VU
X1RSQUlMKHRyaWUsIG9mZnNldCwgYzIpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEzMiwgb2Zm
c2V0LCAoYzIpJjB4M2ZmKQorCisvKiBlbnVtZXJhdGlvbiBjYWxsYmFjayB0eXBlcyAqLworCisv
KioKKyAqIENhbGxiYWNrIGZyb20gdXRyaWVfZW51bSgpLCBleHRyYWN0cyBhIHVpbnQzMl90IHZh
bHVlIGZyb20gYQorICogdHJpZSB2YWx1ZS4gVGhpcyB2YWx1ZSB3aWxsIGJlIHBhc3NlZCBvbiB0
byB0aGUgVVRyaWVFbnVtUmFuZ2UgZnVuY3Rpb24uCisgKgorICogQHBhcmFtIGNvbnRleHQgYW4g
b3BhcXVlIHBvaW50ZXIsIGFzIHBhc3NlZCBpbnRvIHV0cmllX2VudW0oKQorICogQHBhcmFtIHZh
bHVlIGEgdmFsdWUgZnJvbSB0aGUgdHJpZQorICogQHJldHVybiB0aGUgdmFsdWUgdGhhdCBpcyB0
byBiZSBwYXNzZWQgb24gdG8gdGhlIFVUcmllRW51bVJhbmdlIGZ1bmN0aW9uCisgKi8KK3R5cGVk
ZWYgdWludDMyX3QgVV9DQUxMQ09OVgorVVRyaWVFbnVtVmFsdWUoY29uc3Qgdm9pZCAqY29udGV4
dCwgdWludDMyX3QgdmFsdWUpOworCisvKioKKyAqIENhbGxiYWNrIGZyb20gdXRyaWVfZW51bSgp
LCBpcyBjYWxsZWQgZm9yIGVhY2ggY29udGlndW91cyByYW5nZQorICogb2YgY29kZSBwb2ludHMg
d2l0aCB0aGUgc2FtZSB2YWx1ZSBhcyByZXRyaWV2ZWQgZnJvbSB0aGUgdHJpZSBhbmQKKyAqIHRy
YW5zZm9ybWVkIGJ5IHRoZSBVVHJpZUVudW1WYWx1ZSBmdW5jdGlvbi4KKyAqCisgKiBUaGUgY2Fs
bGJhY2sgZnVuY3Rpb24gY2FuIHN0b3AgdGhlIGVudW1lcmF0aW9uIGJ5IHJldHVybmluZyBGQUxT
RS4KKyAqCisgKiBAcGFyYW0gY29udGV4dCBhbiBvcGFxdWUgcG9pbnRlciwgYXMgcGFzc2VkIGlu
dG8gdXRyaWVfZW51bSgpCisgKiBAcGFyYW0gc3RhcnQgdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4g
YSBjb250aWd1b3VzIHJhbmdlIHdpdGggdmFsdWUKKyAqIEBwYXJhbSBsaW1pdCBvbmUgcGFzdCB0
aGUgbGFzdCBjb2RlIHBvaW50IGluIGEgY29udGlndW91cyByYW5nZSB3aXRoIHZhbHVlCisgKiBA
cGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRoYXQgaXMgc2V0IGZvciBhbGwgY29kZSBwb2ludHMgaW4g
W3N0YXJ0Li5saW1pdFsKKyAqIEByZXR1cm4gRkFMU0UgdG8gc3RvcCB0aGUgZW51bWVyYXRpb24K
KyAqLwordHlwZWRlZiBVQm9vbCBVX0NBTExDT05WCitVVHJpZUVudW1SYW5nZShjb25zdCB2b2lk
ICpjb250ZXh0LCBVQ2hhcjMyIHN0YXJ0LCBVQ2hhcjMyIGxpbWl0LCB1aW50MzJfdCB2YWx1ZSk7
CisKKy8qKgorICogRW51bWVyYXRlIGVmZmljaWVudGx5IGFsbCB2YWx1ZXMgaW4gYSB0cmllLgor
ICogRm9yIGVhY2ggZW50cnkgaW4gdGhlIHRyaWUsIHRoZSB2YWx1ZSB0byBiZSBkZWxpdmVyZWQg
aXMgcGFzc2VkIHRocm91Z2gKKyAqIHRoZSBVVHJpZUVudW1WYWx1ZSBmdW5jdGlvbi4KKyAqIFRo
ZSB2YWx1ZSBpcyB1bmNoYW5nZWQgaWYgdGhhdCBmdW5jdGlvbiBwb2ludGVyIGlzIE5VTEwuCisg
KgorICogRm9yIGVhY2ggY29udGlndW91cyByYW5nZSBvZiBjb2RlIHBvaW50cyB3aXRoIGEgZ2l2
ZW4gdmFsdWUsCisgKiB0aGUgVVRyaWVFbnVtUmFuZ2UgZnVuY3Rpb24gaXMgY2FsbGVkLgorICoK
KyAqIEBwYXJhbSB0cmllIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQor
ICogQHBhcmFtIGVudW1WYWx1ZSBhIHBvaW50ZXIgdG8gYSBmdW5jdGlvbiB0aGF0IG1heSB0cmFu
c2Zvcm0gdGhlIHRyaWUgZW50cnkgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIG9yIE5VTEwg
aWYgdGhlIHZhbHVlcyBmcm9tIHRoZSB0cmllIGFyZSB0byBiZSB1c2VkIGRpcmVjdGx5CisgKiBA
cGFyYW0gZW51bVJhbmdlIGEgcG9pbnRlciB0byBhIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGZv
ciBlYWNoIGNvbnRpZ3VvdXMgcmFuZ2UKKyAqICAgICAgICAgICAgICAgICAgb2YgY29kZSBwb2lu
dHMgd2l0aCB0aGUgc2FtZSB2YWx1ZQorICogQHBhcmFtIGNvbnRleHQgYW4gb3BhcXVlIHBvaW50
ZXIgdGhhdCBpcyBwYXNzZWQgb24gdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9ucworICovCitVX0NB
UEkgdm9pZCBVX0VYUE9SVDIKK3V0cmllX2VudW0oY29uc3QgVVRyaWUgKnRyaWUsCisgICAgICAg
ICAgIFVUcmllRW51bVZhbHVlICplbnVtVmFsdWUsIFVUcmllRW51bVJhbmdlICplbnVtUmFuZ2Us
IGNvbnN0IHZvaWQgKmNvbnRleHQpOworCisvKioKKyAqIFVuc2VyaWFsaXplIGEgdHJpZSBmcm9t
IDMyLWJpdC1hbGlnbmVkIG1lbW9yeS4KKyAqIEludmVyc2Ugb2YgdXRyaWVfc2VyaWFsaXplKCku
CisgKiBGaWxscyB0aGUgVVRyaWUgcnVudGltZSB0cmllIHN0cnVjdHVyZSB3aXRoIHRoZSBzZXR0
aW5ncyBmb3IgdGhlIHRyaWUgZGF0YS4KKyAqCisgKiBAcGFyYW0gdHJpZSBhIHBvaW50ZXIgdG8g
dGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBkYXRhIGEgcG9pbnRlciB0byAz
Mi1iaXQtYWxpZ25lZCBtZW1vcnkgY29udGFpbmluZyB0cmllIGRhdGEKKyAqIEBwYXJhbSBsZW5n
dGggdGhlIG51bWJlciBvZiBieXRlcyBhdmFpbGFibGUgYXQgZGF0YQorICogQHBhcmFtIHBFcnJv
ckNvZGUgYW4gaW4vb3V0IElDVSBVRXJyb3JDb2RlCisgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2Yg
Ynl0ZXMgYXQgZGF0YSB0YWtlbiB1cCBieSB0aGUgdHJpZSBkYXRhCisgKi8KK1VfQ0FQSSBpbnQz
Ml90IFVfRVhQT1JUMgordXRyaWVfdW5zZXJpYWxpemUoVVRyaWUgKnRyaWUsIGNvbnN0IHZvaWQg
KmRhdGEsIGludDMyX3QgbGVuZ3RoLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisg
KiAiVW5zZXJpYWxpemUiIGEgZHVtbXkgdHJpZS4KKyAqIEEgZHVtbXkgdHJpZSBpcyBhbiBlbXB0
eSBydW50aW1lIHRyaWUsIHVzZWQgd2hlbiBhIHJlYWwgZGF0YSB0cmllIGNhbm5vdAorICogYmUg
bG9hZGVkLgorICoKKyAqIFRoZSBpbnB1dCBtZW1vcnkgaXMgZmlsbGVkIHNvIHRoYXQgdGhlIHRy
aWUgYWx3YXlzIHJldHVybnMgdGhlIGluaXRpYWxWYWx1ZSwKKyAqIG9yIHRoZSBsZWFkVW5pdFZh
bHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cy4KKyAqIFRoZSBMYXRpbi0xIHBhcnQg
aXMgYWx3YXlzIHNldCB1cCB0byBiZSBsaW5lYXIuCisgKgorICogQHBhcmFtIHRyaWUgYSBwb2lu
dGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gZGF0YSBhIHBvaW50
ZXIgdG8gMzItYml0LWFsaWduZWQgbWVtb3J5IHRvIGJlIGZpbGxlZCB3aXRoIHRoZSBkdW1teSB0
cmllIGRhdGEKKyAqIEBwYXJhbSBsZW5ndGggdGhlIG51bWJlciBvZiBieXRlcyBhdmFpbGFibGUg
YXQgZGF0YSAocmVjb21tZW5kZWQgdG8gdXNlIFVUUklFX0RVTU1ZX1NJWkUpCisgKiBAcGFyYW0g
aW5pdGlhbFZhbHVlIHRoZSBpbml0aWFsIHZhbHVlIHRoYXQgaXMgc2V0IGZvciBhbGwgY29kZSBw
b2ludHMKKyAqIEBwYXJhbSBsZWFkVW5pdFZhbHVlIHRoZSB2YWx1ZSBmb3IgbGVhZCBzdXJyb2dh
dGUgY29kZSBfdW5pdHNfIHRoYXQgZG8gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICBoYXZl
IGFzc29jaWF0ZWQgc3VwcGxlbWVudGFyeSBkYXRhCisgKiBAcGFyYW0gcEVycm9yQ29kZSBhbiBp
bi9vdXQgSUNVIFVFcnJvckNvZGUKKyAqCisgKiBAc2VlIFVUUklFX0RVTU1ZX1NJWkUKKyAqIEBz
ZWUgdXRyaWVfb3BlbgorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0cmllX3Vuc2Vy
aWFsaXplRHVtbXkoVVRyaWUgKnRyaWUsCisgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRh
dGEsIGludDMyX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpbml0
aWFsVmFsdWUsIHVpbnQzMl90IGxlYWRVbml0VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAg
IFVCb29sIG1ha2UxNkJpdFRyaWUsCisgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUg
KnBFcnJvckNvZGUpOworCisvKioKKyAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIFVUcmll
LmdldEZvbGRpbmdPZmZzZXQsIHNldCBhdXRvbWF0aWNhbGx5IGJ5CisgKiB1dHJpZV91bnNlcmlh
bGl6ZSgpLgorICogU2ltcGx5IHJldHVybnMgdGhlIGxlYWQgc3Vycm9nYXRlJ3MgdmFsdWUgaXRz
ZWxmIC0gd2hpY2ggaXMgdGhlIGludmVyc2UKKyAqIG9mIHRoZSBkZWZhdWx0IGZvbGRpbmcgZnVu
Y3Rpb24gdXNlZCBieSB1dHJpZV9zZXJpYWxpemUoKS4KKyAqIEV4cG9ydGVkIGZvciBzdGF0aWMg
Y29uc3QgVVRyaWUgc3RydWN0dXJlcy4KKyAqCisgKiBAc2VlIFVUcmllR2V0Rm9sZGluZ09mZnNl
dAorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0cmllX2RlZmF1bHRHZXRGb2xkaW5n
T2Zmc2V0KHVpbnQzMl90IGRhdGEpOworCisvKiBCdWlsZGluZyBhIHRyaWUgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qKgor
ICogQnVpbGQtdGltZSB0cmllIHN0cnVjdHVyZS4KKyAqIE9wYXF1ZSBkZWZpbml0aW9uLCBoZXJl
IG9ubHkgdG8gbWFrZSBmaWxsSW4gcGFyYW1ldGVycyBwb3NzaWJsZQorICogZm9yIHV0cmllX29w
ZW4oKSBhbmQgdXRyaWVfY2xvbmUoKS4KKyAqLworc3RydWN0IFVOZXdUcmllIHsKKyAgICAvKioK
KyAgICAgKiBJbmRleCB2YWx1ZXMgYXQgYnVpbGQtdGltZSBhcmUgMzIgYml0cyB3aWRlIGZvciBl
YXNpZXIgcHJvY2Vzc2luZy4KKyAgICAgKiBCaXQgMzEgaXMgc2V0IGlmIHRoZSBkYXRhIGJsb2Nr
IGlzIHVzZWQgYnkgbXVsdGlwbGUgaW5kZXggdmFsdWVzIChmcm9tIHV0cmllX3NldFJhbmdlKCkp
LgorICAgICAqLworICAgIGludDMyX3QgaW5kZXhbVVRSSUVfTUFYX0lOREVYX0xFTkdUSF07Cisg
ICAgdWludDMyX3QgKmRhdGE7CisKKyAgICB1aW50MzJfdCBsZWFkVW5pdFZhbHVlOworICAgIGlu
dDMyX3QgaW5kZXhMZW5ndGgsIGRhdGFDYXBhY2l0eSwgZGF0YUxlbmd0aDsKKyAgICBVQm9vbCBp
c0FsbG9jYXRlZCwgaXNEYXRhQWxsb2NhdGVkOworICAgIFVCb29sIGlzTGF0aW4xTGluZWFyLCBp
c0NvbXBhY3RlZDsKKworICAgIC8qKgorICAgICAqIE1hcCBvZiBhZGp1c3RlZCBpbmRleGVzLCB1
c2VkIGluIHV0cmllX2NvbXBhY3QoKS4KKyAgICAgKiBNYXBzIGZyb20gb3JpZ2luYWwgaW5kZXhl
cyB0byBuZXcgb25lcy4KKyAgICAgKi8KKyAgICBpbnQzMl90IG1hcFtVVFJJRV9NQVhfQlVJTERf
VElNRV9EQVRBX0xFTkdUSD4+VVRSSUVfU0hJRlRdOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgVU5l
d1RyaWUgVU5ld1RyaWU7CisKKy8qKgorICogQnVpbGQtdGltZSB0cmllIGNhbGxiYWNrIGZ1bmN0
aW9uLCB1c2VkIHdpdGggdXRyaWVfc2VyaWFsaXplKCkuCisgKiBUaGlzIGZ1bmN0aW9uIGNhbGN1
bGF0ZXMgYSBsZWFkIHN1cnJvZ2F0ZSdzIHZhbHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0
CisgKiBmcm9tIHRoZSAxMDI0IHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgW3N0YXJ0Li5zdGFy
dCsxMDI0WyAuCisgKiBJdCBpcyBVKzEwMDAwIDw9IHN0YXJ0IDw9IFUrMTBmYzAwIGFuZCAoc3Rh
cnQmMHgzZmYpPT0wLgorICoKKyAqIFRoZSBmb2xkaW5nIG9mZnNldCBpcyBwcm92aWRlZCBieSB0
aGUgY2FsbGVyLgorICogSXQgaXMgb2Zmc2V0PVVUUklFX0JNUF9JTkRFWF9MRU5HVEgrbipVVFJJ
RV9TVVJST0dBVEVfQkxPQ0tfQ09VTlQgd2l0aCBuPTAuLjEwMjMuCisgKiBJbnN0ZWFkIG9mIHRo
ZSBvZmZzZXQgaXRzZWxmLCBuIGNhbiBiZSBzdG9yZWQgaW4gMTAgYml0cyAtCisgKiBvciBmZXdl
ciBpZiBpdCBjYW4gYmUgYXNzdW1lZCB0aGF0IGZldyBsZWFkIHN1cnJvZ2F0ZXMgaGF2ZSBhc3Nv
Y2lhdGVkIGRhdGEuCisgKgorICogVGhlIHJldHVybmVkIHZhbHVlIG11c3QgYmUKKyAqIC0gbm90
IHplcm8gaWYgYW5kIG9ubHkgaWYgdGhlcmUgaXMgcmVsZXZhbnQgZGF0YQorICogICBmb3IgdGhl
IGNvcnJlc3BvbmRpbmcgMTAyNCBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzCisgKiAtIHN1Y2gg
dGhhdCBVVHJpZS5nZXRGb2xkaW5nT2Zmc2V0KFVOZXdUcmllR2V0Rm9sZGVkVmFsdWUoLi4uLCBv
ZmZzZXQpKT09b2Zmc2V0CisgKgorICogQHJldHVybiBhIGZvbGRlZCB2YWx1ZSwgb3IgMCBpZiB0
aGVyZSBpcyBubyByZWxldmFudCBkYXRhIGZvciB0aGUgbGVhZCBzdXJyb2dhdGUuCisgKi8KK3R5
cGVkZWYgdWludDMyX3QgVV9DQUxMQ09OVgorVU5ld1RyaWVHZXRGb2xkZWRWYWx1ZShVTmV3VHJp
ZSAqdHJpZSwgVUNoYXIzMiBzdGFydCwgaW50MzJfdCBvZmZzZXQpOworCisvKioKKyAqIE9wZW4g
YSBidWlsZC10aW1lIHRyaWUgc3RydWN0dXJlLgorICogVGhlIHNpemUgb2YgdGhlIGJ1aWxkLXRp
bWUgZGF0YSBhcnJheSBpcyBzcGVjaWZpZWQgdG8gYXZvaWQgYWxsb2NhdGluZyBhIGxhcmdlCisg
KiBhcnJheSBpbiBhbGwgY2FzZXMuIFRoZSBhcnJheSBpdHNlbGYgY2FuIGFsc28gYmUgcGFzc2Vk
IGluLgorICoKKyAqIEFsdGhvdWdoIHRoZSB0cmllIGlzIG5ldmVyIGZ1bGx5IGV4cGFuZGVkIHRv
IGEgbGluZWFyIGFycmF5LCBlc3BlY2lhbGx5IHdoZW4KKyAqIHV0cmllX3NldFJhbmdlMzIoKSBp
cyB1c2VkLCB0aGUgZGF0YSBhcnJheSBjb3VsZCBiZSBsYXJnZSBkdXJpbmcgYnVpbGQgdGltZS4K
KyAqIFRoZSBtYXhpbXVtIGxlbmd0aCBpcworICogVVRSSUVfTUFYX0JVSUxEX1RJTUVfREFUQV9M
RU5HVEg9MHgxMTAwMDArVVRSSUVfREFUQV9CTE9DS19MRU5HVEgrMHg0MDAuCisgKiAoTnVtYmVy
IG9mIFVuaWNvZGUgY29kZSBwb2ludHMgKyBvbmUgYWxsLWluaXRpYWwtdmFsdWUgYmxvY2sgKwor
ICogIHBvc3NpYmxlIGR1cGxpY2F0ZSBlbnRyaWVzIGZvciAxMDI0IGxlYWQgc3Vycm9nYXRlcy4p
CisgKiAoVVRSSUVfREFUQV9CTE9DS19MRU5HVEg8PTB4MjAwIGluIGFsbCBjYXNlcy4pCisgKgor
ICogQHBhcmFtIGZpbGxJbiBhIHBvaW50ZXIgdG8gYSBVTmV3VHJpZSBzdHJ1Y3R1cmUgdG8gYmUg
aW5pdGlhbGl6ZWQgKHdpbGwgbm90IGJlIHJlbGVhc2VkKSwgb3IKKyAqICAgICAgICAgICAgICAg
TlVMTCBpZiBvbmUgaXMgdG8gYmUgYWxsb2NhdGVkCisgKiBAcGFyYW0gYWxpYXNEYXRhIGEgcG9p
bnRlciB0byBhIGRhdGEgYXJyYXkgdG8gYmUgdXNlZCAod2lsbCBub3QgYmUgcmVsZWFzZWQpLCBv
cgorICogICAgICAgICAgICAgICAgICBOVUxMIGlmIG9uZSBpcyB0byBiZSBhbGxvY2F0ZWQKKyAq
IEBwYXJhbSBtYXhEYXRhTGVuZ3RoIHRoZSBjYXBhY2l0eSBvZiBhbGlhc0RhdGEgKGlmIG5vdCBO
VUxMKSBvcgorICogICAgICAgICAgICAgICAgICAgICAgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YSBh
cnJheSB0byBiZSBhbGxvY2F0ZWQKKyAqIEBwYXJhbSBpbml0aWFsVmFsdWUgdGhlIGluaXRpYWwg
dmFsdWUgdGhhdCBpcyBzZXQgZm9yIGFsbCBjb2RlIHBvaW50cworICogQHBhcmFtIGxlYWRVbml0
VmFsdWUgdGhlIHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gdGhhdCBkbyBu
b3QKKyAqICAgICAgICAgICAgICAgICAgICAgIGhhdmUgYXNzb2NpYXRlZCBzdXBwbGVtZW50YXJ5
IGRhdGEKKyAqIEBwYXJhbSBsYXRpbjFMaW5lYXIgYSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0
aGUgTGF0aW4tMSByYW5nZSBpcyB0byBiZSBhbGxvY2F0ZWQgYW5kCisgKiAgICAgICAgICAgICAg
ICAgICAgIGtlcHQgaW4gYSBsaW5lYXIsIGNvbnRpZ3VvdXMgcGFydCBvZiB0aGUgZGF0YSBhcnJh
eQorICogQHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIGluaXRpYWxpemVkIGZpbGxJbiBvciB0aGUg
YWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBuZXcgVU5ld1RyaWUKKyAqLworVV9DQVBJIFVOZXdU
cmllICogVV9FWFBPUlQyCit1dHJpZV9vcGVuKFVOZXdUcmllICpmaWxsSW4sCisgICAgICAgICAg
IHVpbnQzMl90ICphbGlhc0RhdGEsIGludDMyX3QgbWF4RGF0YUxlbmd0aCwKKyAgICAgICAgICAg
dWludDMyX3QgaW5pdGlhbFZhbHVlLCB1aW50MzJfdCBsZWFkVW5pdFZhbHVlLAorICAgICAgICAg
ICBVQm9vbCBsYXRpbjFMaW5lYXIpOworCisvKioKKyAqIENsb25lIGEgYnVpbGQtdGltZSB0cmll
IHN0cnVjdHVyZSB3aXRoIGFsbCBlbnRyaWVzLgorICoKKyAqIEBwYXJhbSBmaWxsSW4gbGlrZSBp
biB1dHJpZV9vcGVuKCkKKyAqIEBwYXJhbSBvdGhlciB0aGUgYnVpbGQtdGltZSB0cmllIHN0cnVj
dHVyZSB0byBjbG9uZQorICogQHBhcmFtIGFsaWFzRGF0YSBsaWtlIGluIHV0cmllX29wZW4oKSwK
KyAqICAgICAgICAgICAgICAgICAgdXNlZCBpZiBhbGlhc0RhdGFMZW5ndGg+PShjYXBhY2l0eSBv
ZiBvdGhlcidzIGRhdGEgYXJyYXkpCisgKiBAcGFyYW0gYWxpYXNEYXRhTGVuZ3RoIHRoZSBsZW5n
dGggb2YgYWxpYXNEYXRhCisgKiBAcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgaW5pdGlhbGl6ZWQg
ZmlsbEluIG9yIHRoZSBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkIG5ldyBVTmV3VHJpZQorICov
CitVX0NBUEkgVU5ld1RyaWUgKiBVX0VYUE9SVDIKK3V0cmllX2Nsb25lKFVOZXdUcmllICpmaWxs
SW4sIGNvbnN0IFVOZXdUcmllICpvdGhlciwgdWludDMyX3QgKmFsaWFzRGF0YSwgaW50MzJfdCBh
bGlhc0RhdGFMZW5ndGgpOworCisvKioKKyAqIENsb3NlIGEgYnVpbGQtdGltZSB0cmllIHN0cnVj
dHVyZSwgYW5kIHJlbGVhc2UgbWVtb3J5CisgKiB0aGF0IHdhcyBhbGxvY2F0ZWQgYnkgdXRyaWVf
b3BlbigpIG9yIHV0cmllX2Nsb25lKCkuCisgKgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRp
bWUgdHJpZQorICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3V0cmllX2Nsb3NlKFVOZXdUcmll
ICp0cmllKTsKKworLyoqCisgKiBHZXQgdGhlIGRhdGEgYXJyYXkgb2YgYSBidWlsZC10aW1lIHRy
aWUuCisgKiBUaGUgZGF0YSBtYXkgYmUgbW9kaWZpZWQsIGJ1dCBlbnRyaWVzIHRoYXQgYXJlIGVx
dWFsIGJlZm9yZQorICogbXVzdCBzdGlsbCBiZSBlcXVhbCBhZnRlciBtb2RpZmljYXRpb24uCisg
KgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQorICogQHBhcmFtIHBMZW5ndGgg
KG91dCkgYSBwb2ludGVyIHRvIGEgdmFyaWFibGUgdGhhdCByZWNlaXZlcyB0aGUgbnVtYmVyCisg
KiAgICAgICAgICAgICAgICBvZiBlbnRyaWVzIGluIHRoZSBkYXRhIGFycmF5CisgKiBAcmV0dXJu
IHRoZSBkYXRhIGFycmF5CisgKi8KK1VfQ0FQSSB1aW50MzJfdCAqIFVfRVhQT1JUMgordXRyaWVf
Z2V0RGF0YShVTmV3VHJpZSAqdHJpZSwgaW50MzJfdCAqcExlbmd0aCk7CisKKy8qKgorICogU2V0
IGEgdmFsdWUgZm9yIGEgY29kZSBwb2ludC4KKyAqCisgKiBAcGFyYW0gdHJpZSB0aGUgYnVpbGQt
dGltZSB0cmllCisgKiBAcGFyYW0gYyB0aGUgY29kZSBwb2ludAorICogQHBhcmFtIHZhbHVlIHRo
ZSB2YWx1ZQorICogQHJldHVybiBGQUxTRSBpZiBhIGZhaWx1cmUgb2NjdXJyZWQgKGlsbGVnYWwg
YXJndW1lbnQgb3IgZGF0YSBhcnJheSBvdmVycnVuKQorICovCitVX0NBUEkgVUJvb2wgVV9FWFBP
UlQyCit1dHJpZV9zZXQzMihVTmV3VHJpZSAqdHJpZSwgVUNoYXIzMiBjLCB1aW50MzJfdCB2YWx1
ZSk7CisKKy8qKgorICogR2V0IGEgdmFsdWUgZnJvbSBhIGNvZGUgcG9pbnQgYXMgc3RvcmVkIGlu
IHRoZSBidWlsZC10aW1lIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUg
dHJpZQorICogQHBhcmFtIGMgdGhlIGNvZGUgcG9pbnQKKyAqIEBwYXJhbSBwSW5CbG9ja1plcm8g
aWYgbm90IE5VTEwsIHRoZW4gKnBJbkJsb2NrWmVybyBpcyBzZXQgdG8gVFJVRQorICogICAgICAg
ICAgICAgICAgICAgICBpZmYgdGhlIHZhbHVlIGlzIHJldHJpZXZlZCBmcm9tIGJsb2NrIDA7Cisg
KiAgICAgICAgICAgICAgICAgICAgIGJsb2NrIDAgaXMgdGhlIGFsbC1pbml0aWFsLXZhbHVlIGlu
aXRpYWwgYmxvY2sKKyAqIEByZXR1cm4gdGhlIHZhbHVlCisgKi8KK1VfQ0FQSSB1aW50MzJfdCBV
X0VYUE9SVDIKK3V0cmllX2dldDMyKFVOZXdUcmllICp0cmllLCBVQ2hhcjMyIGMsIFVCb29sICpw
SW5CbG9ja1plcm8pOworCisvKioKKyAqIFNldCBhIHZhbHVlIGluIGEgcmFuZ2Ugb2YgY29kZSBw
b2ludHMgW3N0YXJ0Li5saW1pdFsuCisgKiBBbGwgY29kZSBwb2ludHMgYyB3aXRoIHN0YXJ0PD1j
PGxpbWl0IHdpbGwgZ2V0IHRoZSB2YWx1ZSBpZgorICogb3ZlcndyaXRlIGlzIFRSVUUgb3IgaWYg
dGhlIG9sZCB2YWx1ZSBpcyAwLgorICoKKyAqIEBwYXJhbSB0cmllIHRoZSBidWlsZC10aW1lIHRy
aWUKKyAqIEBwYXJhbSBzdGFydCB0aGUgZmlyc3QgY29kZSBwb2ludCB0byBnZXQgdGhlIHZhbHVl
CisgKiBAcGFyYW0gbGltaXQgb25lIHBhc3QgdGhlIGxhc3QgY29kZSBwb2ludCB0byBnZXQgdGhl
IHZhbHVlCisgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlCisgKiBAcGFyYW0gb3ZlcndyaXRlIGZs
YWcgZm9yIHdoZXRoZXIgb2xkIG5vbi1pbml0aWFsIHZhbHVlcyBhcmUgdG8gYmUgb3ZlcndyaXR0
ZW4KKyAqIEByZXR1cm4gRkFMU0UgaWYgYSBmYWlsdXJlIG9jY3VycmVkIChpbGxlZ2FsIGFyZ3Vt
ZW50IG9yIGRhdGEgYXJyYXkgb3ZlcnJ1bikKKyAqLworVV9DQVBJIFVCb29sIFVfRVhQT1JUMgor
dXRyaWVfc2V0UmFuZ2UzMihVTmV3VHJpZSAqdHJpZSwgVUNoYXIzMiBzdGFydCwgVUNoYXIzMiBs
aW1pdCwgdWludDMyX3QgdmFsdWUsIFVCb29sIG92ZXJ3cml0ZSk7CisKKy8qKgorICogQ29tcGFj
dCB0aGUgYnVpbGQtdGltZSB0cmllIGFmdGVyIGFsbCB2YWx1ZXMgYXJlIHNldCwgYW5kIHRoZW4K
KyAqIHNlcmlhbGl6ZSBpdCBpbnRvIDMyLWJpdCBhbGlnbmVkIG1lbW9yeS4KKyAqCisgKiBBZnRl
ciB0aGlzLCB0aGUgdHJpZSBjYW4gb25seSBiZSBzZXJpemFsaXplZCBhZ2FpbiBhbmQvb3IgY2xv
c2VkOworICogbm8gZnVydGhlciB2YWx1ZXMgY2FuIGJlIGFkZGVkLgorICoKKyAqIEBzZWUgdXRy
aWVfdW5zZXJpYWxpemUoKQorICoKKyAqIEBwYXJhbSB0cmllIHRoZSBidWlsZC10aW1lIHRyaWUK
KyAqIEBwYXJhbSBkYXRhIGEgcG9pbnRlciB0byAzMi1iaXQtYWxpZ25lZCBtZW1vcnkgZm9yIHRo
ZSB0cmllIGRhdGEKKyAqIEBwYXJhbSBjYXBhY2l0eSB0aGUgbnVtYmVyIG9mIGJ5dGVzIGF2YWls
YWJsZSBhdCBkYXRhCisgKiBAcGFyYW0gZ2V0Rm9sZGVkVmFsdWUgYSBjYWxsYmFjayBmdW5jdGlv
biB0aGF0IGNhbGN1bGF0ZXMgdGhlIHZhbHVlIGZvcgorICogICAgICAgICAgICAgICAgICAgICAg
IGEgbGVhZCBzdXJyb2dhdGUgZnJvbSBhbGwgb2YgaXRzIHN1cHBsZW1lbnRhcnkgY29kZSBwb2lu
dHMKKyAqICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhlIGZvbGRpbmcgb2Zmc2V0OworICog
ICAgICAgICAgICAgICAgICAgICAgIGlmIE5VTEwsIHRoZW4gYSBkZWZhdWx0IGZ1bmN0aW9uIGlz
IHVzZWQgd2hpY2ggcmV0dXJucyBqdXN0CisgKiAgICAgICAgICAgICAgICAgICAgICAgdGhlIGlu
cHV0IG9mZnNldCB3aGVuIHRoZXJlIGFyZSBhbnkgbm9uLWluaXRpYWwtdmFsdWUgZW50cmllcwor
ICogQHBhcmFtIHJlZHVjZVRvMTZCaXRzIGZsYWcgZm9yIHdoZXRoZXIgdGhlIHZhbHVlcyBhcmUg
dG8gYmUgcmVkdWNlZCB0byBhCisgKiAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggb2YgMTYg
Yml0cyBmb3Igc2VyaWFsaXphdGlvbiBhbmQgcnVudGltZQorICogQHBhcmFtIHBFcnJvckNvZGUg
YSBVRXJyb3JDb2RlIGFyZ3VtZW50OyBhbW9uZyBvdGhlciBwb3NzaWJsZSBlcnJvciBjb2RlczoK
KyAqIC0gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IgaWYgdGhlIGRhdGEgc3RvcmFnZSBibG9jayBp
cyB0b28gc21hbGwgZm9yIHNlcmlhbGl6YXRpb24KKyAqIC0gVV9NRU1PUllfQUxMT0NBVElPTl9F
UlJPUiBpZiB0aGUgdHJpZSBkYXRhIGFycmF5IGlzIHRvbyBzbWFsbAorICogLSBVX0lOREVYX09V
VE9GQk9VTkRTX0VSUk9SIGlmIHRoZSBpbmRleCBvciBkYXRhIGFycmF5cyBhcmUgdG9vIGxvbmcg
YWZ0ZXIgY29tcGFjdGlvbiBmb3Igc2VyaWFsaXphdGlvbgorICoKKyAqIEByZXR1cm4gdGhlIG51
bWJlciBvZiBieXRlcyB3cml0dGVuIGZvciB0aGUgdHJpZQorICovCitVX0NBUEkgaW50MzJfdCBV
X0VYUE9SVDIKK3V0cmllX3NlcmlhbGl6ZShVTmV3VHJpZSAqdHJpZSwgdm9pZCAqZGF0YSwgaW50
MzJfdCBjYXBhY2l0eSwKKyAgICAgICAgICAgICAgICBVTmV3VHJpZUdldEZvbGRlZFZhbHVlICpn
ZXRGb2xkZWRWYWx1ZSwKKyAgICAgICAgICAgICAgICBVQm9vbCByZWR1Y2VUbzE2Qml0cywKKyAg
ICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBTd2FwIGEg
c2VyaWFsaXplZCBVVHJpZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0NBUEkgaW50MzJfdCBVX0VY
UE9SVDIKK3V0cmllX3N3YXAoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgY29u
c3Qgdm9pZCAqaW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAg
ICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qIHNlcmlhbGl6YXRpb24gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisK
Ky8qKgorICogVHJpZSBkYXRhIHN0cnVjdHVyZSBpbiBzZXJpYWxpemVkIGZvcm06CisgKgorICog
VVRyaWVIZWFkZXIgaGVhZGVyOworICogdWludDE2X3QgaW5kZXhbaGVhZGVyLmluZGV4TGVuZ3Ro
XTsKKyAqIHVpbnQxNl90IGRhdGFbaGVhZGVyLmRhdGFMZW5ndGhdOworICogQGludGVybmFsCisg
Ki8KK3R5cGVkZWYgc3RydWN0IFVUcmllSGVhZGVyIHsKKyAgICAvKiogIlRyaWUiIGluIGJpZy1l
bmRpYW4gVVMtQVNDSUkgKDB4NTQ3MjY5NjUpICovCisgICAgdWludDMyX3Qgc2lnbmF0dXJlOwor
CisgICAgLyoqCisgICAgICogb3B0aW9ucyBiaXQgZmllbGQ6CisgICAgICogICAgIDkgICAgMT1M
YXRpbi0xIGRhdGEgaXMgc3RvcmVkIGxpbmVhcmx5IGF0IGRhdGErVVRSSUVfREFUQV9CTE9DS19M
RU5HVEgKKyAgICAgKiAgICAgOCAgICAwPTE2LWJpdCBkYXRhLCAxPTMyLWJpdCBkYXRhCisgICAg
ICogIDcuLjQgICAgVVRSSUVfSU5ERVhfU0hJRlQgICAvLyAwLi5VVFJJRV9TSElGVAorICAgICAq
ICAzLi4wICAgIFVUUklFX1NISUZUICAgICAgICAgLy8gMS4uOQorICAgICAqLworICAgIHVpbnQz
Ml90IG9wdGlvbnM7CisKKyAgICAvKiogaW5kZXhMZW5ndGggaXMgYSBtdWx0aXBsZSBvZiBVVFJJ
RV9TVVJST0dBVEVfQkxPQ0tfQ09VTlQgKi8KKyAgICBpbnQzMl90IGluZGV4TGVuZ3RoOworCisg
ICAgLyoqIGRhdGFMZW5ndGg+PVVUUklFX0RBVEFfQkxPQ0tfTEVOR1RIICovCisgICAgaW50MzJf
dCBkYXRhTGVuZ3RoOworfSBVVHJpZUhlYWRlcjsKKworLyoqCisgKiBDb25zdGFudHMgZm9yIHVz
ZSB3aXRoIFVUcmllSGVhZGVyLm9wdGlvbnMuCisgKiBAaW50ZXJuYWwKKyAqLworZW51bSB7Cisg
ICAgLyoqIE1hc2sgdG8gZ2V0IHRoZSBVVFJJRV9TSElGVCB2YWx1ZSBmcm9tIG9wdGlvbnMuICov
CisgICAgVVRSSUVfT1BUSU9OU19TSElGVF9NQVNLPTB4ZiwKKworICAgIC8qKiBTaGlmdCBvcHRp
b25zIHJpZ2h0IHRoaXMgbXVjaCB0byBnZXQgdGhlIFVUUklFX0lOREVYX1NISUZUIHZhbHVlLiAq
LworICAgIFVUUklFX09QVElPTlNfSU5ERVhfU0hJRlQ9NCwKKworICAgIC8qKiBJZiBzZXQsIHRo
ZW4gdGhlIGRhdGEgKHN0YWdlIDIpIGFycmF5IGlzIDMyIGJpdHMgd2lkZS4gKi8KKyAgICBVVFJJ
RV9PUFRJT05TX0RBVEFfSVNfMzJfQklUPTB4MTAwLAorCisgICAgLyoqCisgICAgICogSWYgc2V0
LCB0aGVuIExhdGluLTEgZGF0YSAoZm9yIFUrMDAwMC4uVSswMGZmKSBpcyBzdG9yZWQgaW4gdGhl
IGRhdGEgKHN0YWdlIDIpIGFycmF5CisgICAgICogYXMgYSBzaW1wbGUsIGxpbmVhciBhcnJheSBh
dCBkYXRhK1VUUklFX0RBVEFfQkxPQ0tfTEVOR1RILgorICAgICAqLworICAgIFVUUklFX09QVElP
TlNfTEFUSU4xX0lTX0xJTkVBUj0weDIwMAorfTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IDMxYTNmMDJiM2Vj
YThlMDUzZGQ1MjUyNTA1MTI1MzVmZTEwYmJiM2IuLmY0ODU0M2ZlODYxYzE3NmM1NGJkMmM2ZDIz
YWI4Mzk0ODA4ZDBkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFr
SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
Y3BwCkBAIC0yOSw5ICsyOSw2IEBACiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKLS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0dGVy
IG5hbWUKLSNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8
IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MTAwKSkKLQogbmFtZXNwYWNlIFdURiB7CiAKIC8vIEl0ZXJhdG9yIGluaXRpYWxpemF0aW9uCkBA
IC01OSw2ICs1NiwxMiBAQCBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIGluaXRpYWxpemVJdGVy
YXRvcldpdGhSdWxlcyhjb25zdCBjaGFyKiBicmVha1J1bGVzKQogCiAjZW5kaWYKIAorI2lmICFQ
TEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRl
SXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCBydWxlU2V0KQoreworICAgIHJldHVy
biBudWxscHRyOworfQorI2VuZGlmCiAKIC8vIEl0ZXJhdG9yIHRleHQgc2V0dGluZwogCkBAIC0x
NjIsMTM1ICsxNjUsMjAgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRv
cihTdHJpbmdWaWV3IHN0cmluZykKICAgICByZXR1cm4gc2V0VGV4dEZvckl0ZXJhdG9yKCpzdGF0
aWNTZW50ZW5jZUJyZWFrSXRlcmF0b3IsIHN0cmluZyk7CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9T
KQorc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBjcmVhdGVDdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
V2l0aEZhbGxiYWNrKCkKK3sKKyAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBjcmVhdGVJdGVyYXRv
ckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0OjpDdXJzb3JNb3ZlbWVudCkpCisgICAgICAgIHJl
dHVybiBpdGVyYXRvcjsKKyAgICByZXR1cm4gaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGN1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyk7Cit9CisjZW5kaWYKKwogVGV4dEJyZWFrSXRlcmF0
b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiB7CiAjaWYgIVBM
QVRGT1JNKElPUykKLSAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1i
cmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKLSAgICAvLyA8aHR0cDovL3NvdXJjZS5pY3Ut
cHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9i
cmtpdHIvPi4KLSAgICAvLyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwg
b25lcyBhcmUgbGlzdGVkIGJlbG93OgotICAgIC8vICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9D
bHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkg
PSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7Ci0gICAg
Ly8gKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRl
ciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0
aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIElu
ZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKLSAgICAvLyAqIEFk
ZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5l
c2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0gICAgLy8gKiBBZGRlZCBydWxl
cyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCi0gICAgc3RhdGljIGNvbnN0IGNoYXIq
IGtSdWxlcyA9Ci0gICAgICAgICIkQ1IgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVh
ayA9IENSfV07IgotICAgICAgICAiJExGICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJl
YWsgPSBMRn1dOyIKLSAgICAgICAgIiRDb250cm9sID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gQ29udHJvbH1dOyIKLSAgICAgICAgIiRWb2ljZU1hcmtzID0gW1xcdUZGOUVcXHVGRjlG
XTsiIC8vIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCi0gICAgICAg
ICIkRXh0ZW5kICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNl
TWFya3MgLSBbXFx1MEUzMCBcXHUwRTMyIFxcdTBFNDUgXFx1MEVCMCBcXHUwRUIyXV07IgotICAg
ICAgICAiJFNwYWNpbmdNYXJrID0gW1tcXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFy
a31dIC0gJEV4dGVuZF07IgotICAgICAgICAiJEwgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBMfV07IgotICAgICAgICAiJFYgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBWfV07IgotICAgICAgICAiJFQgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBUfV07IgotICAgICAgICAiJExWICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBMVn1dOyIKLSAgICAgICAgIiRMVlQgICAgID0gW1xccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gTFZUfV07IgotICAgICAgICAiJEhpbjAgICAgPSBbXFx1MDkwNS1cXHUwOTM5
XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkSGluViAgICA9IFxc
dTA5NEQ7IiAvLyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkSGluMSAgICA9IFtc
XHUwOTE1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAg
ICIkQmVuMCAgICA9IFtcXHUwOTg1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgQSwuLi4s
SGEKLSAgICAgICAgIiRCZW5WICAgID0gXFx1MDlDRDsiIC8vIEJlbmdhbGkgU2lnbiBWaXJhbWEK
LSAgICAgICAgIiRCZW4xICAgID0gW1xcdTA5OTUtXFx1MDlCOV07IiAvLyBCZW5nYWxpIExldHRl
ciBLYSwuLi4sSGEKLSAgICAgICAgIiRQYW4wICAgID0gW1xcdTBBMDUtXFx1MEEzOV07IiAvLyBH
dXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRQYW5WICAgID0gXFx1MEE0RDsiIC8v
IEd1cm11a2hpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkUGFuMSAgICA9IFtcXHUwQTE1LVxcdTBB
MzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEd1ajAgICAgPSBb
XFx1MEE4NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBBLC4uLixIYQotICAgICAgICAi
JEd1alYgICAgPSBcXHUwQUNEOyIgLy8gR3VqYXJhdGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRH
dWoxICAgID0gW1xcdTBBOTUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhh
Ci0gICAgICAgICIkT3JpMCAgICA9IFtcXHUwQjA1LVxcdTBCMzldOyIgLy8gT3JpeWEgTGV0dGVy
IEEsLi4uLEhhCi0gICAgICAgICIkT3JpViAgICA9IFxcdTBCNEQ7IiAvLyBPcml5YSBTaWduIFZp
cmFtYQotICAgICAgICAiJE9yaTEgICAgPSBbXFx1MEIxNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExl
dHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRUZWwwICAgID0gW1xcdTBDMDUtXFx1MEMzOV07IiAv
LyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkVGVsViAgICA9IFxcdTBDNEQ7IiAv
LyBUZWx1Z3UgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRUZWwxICAgID0gW1xcdTBDMTQtXFx1MEMz
OV07IiAvLyBUZWx1Z3UgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEthbjAgICAgPSBbXFx1
MEM4NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkS2Fu
ViAgICA9IFxcdTBDQ0Q7IiAvLyBLYW5uYWRhIFNpZ24gVmlyYW1hCi0gICAgICAgICIkS2FuMSAg
ICA9IFtcXHUwQzk1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAg
ICAgIiRNYWwwICAgID0gW1xcdTBEMDUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkTWFsViAgICA9IFxcdTBENEQ7IiAvLyBNYWxheWFsYW0gU2lnbiBW
aXJhbWEKLSAgICAgICAgIiRNYWwxICAgID0gW1xcdTBEMTUtXFx1MEQzOV07IiAvLyBNYWxheWFs
YW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUkkgICAgICA9IFtcXFUwMDAxRjFFNi1cXFUw
MDAxRjFGRl07IiAvLyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCi0gICAgICAgICIkWldKICAg
ICA9IFxcdTIwMEQ7IiAvLyBaZXJvIHdpZHRoIGpvaW5lcgotICAgICAgICAiJEVtb2ppVmFyID0g
W1xcdUZFMEZdOyIgLy8gRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCi0jaWYgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1
MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQg
XFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0
NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAw
MUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxV
MDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUt
XFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2
QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjZdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBp
biBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZG
OSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxV
MDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYt
XFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0
NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAw
MUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxV
MDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYg
XFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5
MThdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNlCi0g
ICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0Njkg
XFxVMDAwMUY0OEJdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2Vz
Ci0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAw
MDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxc
VTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2
LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFG
NDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAw
MDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxc
VTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9q
aSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAgICAgICAgIiRFbW9q
aU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIgLy8gRml0enBhdHJpY2sgbW9kaWZp
ZXJzCi0gICAgICAgICIhIWNoYWluOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAg
ICAgICAgIiEhUklOb0NoYWluOyIKLSNlbmRpZgotICAgICAgICAiISFmb3J3YXJkOyIKLSAgICAg
ICAgIiRDUiAkTEY7IgotICAgICAgICAiJEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsiCi0gICAg
ICAgICIoJExWIHwgJFYpICgkViB8ICRUKTsiCi0gICAgICAgICIoJExWVCB8ICRUKSAkVDsiCi0j
aWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqIC8g
JFJJOyIKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCo7IgotICAgICAgICAiW14kQ29udHJvbCAk
Q1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdN
YXJrOyIKLSNlbHNlCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAg
ICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotICAgICAgICAiJFJJICRS
SSAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAiJEhpbjAgJEhp
blYgJEhpbjE7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRCZW4w
ICRCZW5WICRCZW4xOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkUGFu
MCAkUGFuViAkUGFuMTsiIC8vIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRH
dWowICRHdWpWICRHdWoxOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAi
JE9yaTAgJE9yaVYgJE9yaTE7IiAvLyBPcml5YSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIk
VGVsMCAkVGVsViAkVGVsMTsiIC8vIFRlbHVndSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIk
S2FuMCAkS2FuViAkS2FuMTsiIC8vIEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAi
JE1hbDAgJE1hbFYgJE1hbDE7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChmb3J3YXJkKQotICAgICAg
ICAiJFpXSiAkRW1vamlGb3JTZXFzOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVl
bmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IiAvLyBE
b24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlv
biBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0gICAgICAgICIhIXJldmVyc2U7
IgotICAgICAgICAiJExGICRDUjsiCi0gICAgICAgICIoJEwgfCAkViB8ICRMViB8ICRMVlQpICRM
OyIKLSAgICAgICAgIigkViB8ICRUKSAoJExWIHwgJFYpOyIKLSAgICAgICAgIiRUICgkTFZUIHwg
JFQpOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFeHRlbmQqICRS
SSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkk7Igot
ICAgICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNw
YWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07IgotI2Vsc2UKLSAgICAgICAgIiRFeHRlbmQg
ICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250
cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkkgJFJJOyIKLSAgICAgICAgIiRS
SSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIkSGluMSAkSGluViAkSGluMDsiIC8vIERldmFuYWdh
cmkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRCZW4xICRCZW5WICRCZW4wOyIgLy8gQmVu
Z2FsaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFBhbjEgJFBhblYgJFBhbjA7IiAvLyBH
dXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEd1ajEgJEd1alYgJEd1ajA7IiAv
LyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE9yaTEgJE9yaVYgJE9yaTA7
IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFRlbDEgJFRlbFYgJFRl
bDA7IiAvLyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRLYW4xICRLYW5WICRL
YW4wOyIgLy8gS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE1hbDEgJE1hbFYg
JE1hbDA7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRFbW9qaUZv
clNlcXMgJFpXSjsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAg
ICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyIgLy8gRG9uJ3QgYnJlYWsg
YmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3Ip
IGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAot
ICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAi
WyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIhIXNhZmVf
Zm9yd2FyZDsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0gICAgICAgICIkRW1vamlGb3JNb2RzIFsk
RW1vamlWYXIgJEVtb2ppTW9kc10rOyI7CisgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBz
dGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gY3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
cldpdGhGYWxsYmFjaygpOwogI2Vsc2UKLSAgICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10r
ICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9q
aU1vZHNdKzsiCi0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgICAgICIhIXNhZmVfZm9y
d2FyZDsiOwotI2VuZGlmCi0gICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGtSdWxlcyk7
Ci0jZWxzZSAvLyBQTEFURk9STShJT1MpCiAgICAgLy8gVXNlIHRoZSBzcGVjaWFsIFRoYWkgY2hh
cmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGZvciBhbGwgbG9jYWxlcwogICAgIHN0YXRpYyBUZXh0QnJl
YWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVy
YXRvcihVQlJLX0NIQVJBQ1RFUiwgInRoIik7CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKQEAg
LTMxNyw0NDIgKzIwNSwyMCBAQCB2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJl
YWtJdGVyYXRvciogaXRlcmF0b3IpCiAgICAgTGluZUJyZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQ
b29sKCkucHV0KGl0ZXJhdG9yKTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UHJvbG9n
dWUgPQotICAgICIhIWNoYWluOyIKLSAgICAiISFMQkNNTm9DaGFpbjsiCi0gICAgIiEhbG9va0Fo
ZWFkSGFyZEJyZWFrOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQmVm
b3JlID0KLSAgICAvLyBleHBsaWNpdGx5IGVudW1lcmF0ZSAkQ0ogc2luY2UgSUNVIHZlcnNpb25z
IHByaW9yIHRvIDQ5IGRvbid0IHN1cHBvcnQgOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVz
ZV9TdGFydGVyOgotICAgICIkQ0ogPSBbIgotI2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+
PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAgICAiOkxpbmVCcmVhaz1D
b25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOiIKLSNlbHNlCi0gICAgIlxcdTMwNDFcXHUzMDQz
XFx1MzA0NVxcdTMwNDdcXHUzMDQ5XFx1MzA2M1xcdTMwODNcXHUzMDg1XFx1MzA4N1xcdTMwOEVc
XHUzMDk1XFx1MzA5NlxcdTMwQTFcXHUzMEEzXFx1MzBBNVxcdTMwQTciCi0gICAgIlxcdTMwQTlc
XHUzMEMzXFx1MzBFM1xcdTMwRTVcXHUzMEU3XFx1MzBFRVxcdTMwRjVcXHUzMEY2XFx1MzBGQyIK
LSAgICAiXFx1MzFGMFxcdTMxRjFcXHUzMUYyXFx1MzFGM1xcdTMxRjRcXHUzMUY1XFx1MzFGNlxc
dTMxRjdcXHUzMUY4XFx1MzFGOVxcdTMxRkFcXHUzMUZCXFx1MzFGQ1xcdTMxRkRcXHUzMUZFXFx1
MzFGRiIKLSAgICAiXFx1RkY2N1xcdUZGNjhcXHVGRjY5XFx1RkY2QVxcdUZGNkJcXHVGRjZDXFx1
RkY2RFxcdUZGNkVcXHVGRjZGXFx1RkY3MCIKLSNlbmRpZgotICAgICJdOyI7Ci0KLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgPQotICAgICIkQkFfU1VC
ID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRFWF9TVUIgPSBbXFx1MDAyMVxcdTAwM0ZcXHVG
RjAxXFx1RkYxRl07IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIw
MjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSBbXFx1MDAzQVxcdTAwM0JdOyIKLSAgICAiJE5T
X1NVQiA9IFtcXHUyMDNDXFx1MjA0N1xcdTIwNDhcXHUyMDQ5XFx1MzAwNVxcdTMwMUNcXHUzMDNC
XFx1MzA5RFxcdTMwOUVcXHUzMEEwXFx1MzBGQlxcdTMwRkRcXHUzMEZFXFx1RkYxQVxcdUZGMUJc
XHVGRjY1XTsiCi0gICAgIiRQT19TVUIgPSBbXFx1MDAyNVxcdTAwQTJcXHUwMEIwXFx1MjAzMFxc
dTIwMzJcXHUyMDMzXFx1MjEwM1xcdUZGMDVcXHVGRkUwXTsiCi0gICAgIiRQUl9TVUIgPSBbXFx1
MDAyNFxcdTAwQTNcXHUwMEE1XFx1MjBBQ1xcdTIxMTZcXHVGRjA0XFx1RkZFMVxcdUZGRTVdOyIK
LSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNf
U1VCICRQT19TVUIgJFBSX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNv
bnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZU5vbkNKSyA9Ci0gICAgIiRCQV9T
VUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAg
IiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAi
JE5TX1NVQiA9IFtcXHUzMDA1XFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBGRFxcdTMwRkVdOyIK
LSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9
IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMg
Y29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA9Ci0gICAgIiRCQV9T
VUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElOX1NV
QiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAi
JE5TX1NVQiA9IFtcXHUzMDFDXFx1MzBBMF07IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIk
UFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOyIKLSAg
ICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tTm9ybWFsTm9uQ0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9
ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElT
X1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAg
ICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0pdOyIKLSAgICAiJE5TX0FERCA9
ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0
Q0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElE
X1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAg
ICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcn
OyIKLSAgICAiJElEX0FERCA9ICcnOyIKLSAgICAiJE5TX0FERCA9IFskQ0pdOyI7Ci0KLSNkZWZp
bmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyAgICAgIHVheDE0QXNzaWdubWVu
dHNDdXN0b21TdHJpY3RDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHRD
SksgICAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksKLSNkZWZpbmUgdWF4MTRB
c3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25DSksgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21T
dHJpY3ROb25DSksKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNBZnRlciA9
Ci0gICAgIiRBSSA9IFs6TGluZUJyZWFrID0gQW1iaWd1b3VzOl07IgotICAgICIkQUwgPSBbOkxp
bmVCcmVhayA9IEFscGhhYmV0aWM6XTsiCi0gICAgIiRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFr
X0FmdGVyOl0gLSAkQkFfU1VCXTsiCi0gICAgIiRCQiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVm
b3JlOl07IgotICAgICIkQksgPSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOyIKLSAg
ICAiJEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19Cb3RoOl07IgotICAgICIkQ0IgPSBbOkxpbmVC
cmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsiCi0gICAgIiRDTCA9IFs6TGluZUJyZWFrID0gQ2xv
c2VfUHVuY3R1YXRpb246XTsiCi0gICAgIiRDTSA9IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01h
cms6XTsiCi0gICAgIiRDUCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsiCi0g
ICAgIiRDUiA9IFs6TGluZUJyZWFrID0gQ2FycmlhZ2VfUmV0dXJuOl07IgotICAgICIkRVggPSBb
WzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0gJEVYX1NVQl07IgotICAgICIkR0wgPSBbOkxp
bmVCcmVhayA9IEdsdWU6XTsiCi0jaWYgKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYm
IChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KQotICAgICIkSEwgPSBbOkxpbmVCcmVhayA9
IEhlYnJld19MZXR0ZXI6XTsiCi0jZWxzZQotICAgICIkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0
dGVyOl1dOyIKLSNlbmRpZgotICAgICIkSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOyIKLSAg
ICAiJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOyIKLSAgICAiJEgzID0gWzpMaW5lQnJlYWsgPSBI
MzpdOyIKLSAgICAiJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAk
SURfQUREXSAtICRJRF9TVUJdOyIKLSAgICAiJElOID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFi
bGU6XSAtICRJTl9TVUJdOyIKLSAgICAiJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJp
YzpdIC0gJElTX1NVQl07IgotICAgICIkSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07IgotICAgICIk
SlYgPSBbOkxpbmVCcmVhayA9IEpWOl07IgotICAgICIkSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07
IgotICAgICIkTEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOyIKLSAgICAiJE5MID0gWzpM
aW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsiCi0gICAgIiROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9u
c3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICROU19TVUJdOyIKLSAgICAiJE5VID0gWzpMaW5l
QnJlYWsgPSBOdW1lcmljOl07IgotICAgICIkT1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1
YXRpb246XTsiCi0gICAgIiRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0g
JFBPX1NVQl07IgotICAgICIkUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0g
JFBSX1NVQl07IgotICAgICIkUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOyIKLSAgICAi
JFJJID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsiCi0gICAgIiRTQSA9IFs6TGluZUJyZWFr
ID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIkU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0
ZTpdOyIKLSAgICAiJFNQID0gWzpMaW5lQnJlYWsgPSBTcGFjZTpdOyIKLSAgICAiJFNZID0gWzpM
aW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07IgotICAgICIkV0ogPSBbOkxpbmVCcmVhayA9IFdv
cmRfSm9pbmVyOl07IgotICAgICIkWFggPSBbOkxpbmVCcmVhayA9IFVua25vd246XTsiCi0gICAg
IiRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpdOyIKLSAgICAiJFpXSiA9IFxcdTIwMEQ7Igot
ICAgICIkRW1vamlWYXIgPSBcXHVGRTBGOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQK
LSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxc
VTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0ND
IFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFG
NDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAw
MDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxc
VTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRC
IFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFG
NkI2XTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICIk
RW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYz
ODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAw
MUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxV
MDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEt
XFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1
NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAw
MUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxV
MDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MThdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBG
aXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNlCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2
NCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IgotICAgICIkRW1vamlGb3JN
b2RzID0gW1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxc
VTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQz
IFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFG
NDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAw
MDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxc
VTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0
LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJp
Y2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUw
MDAxRjNGRl07IgotICAgICIkZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250
ZXh0Ol07IgotICAgICIkQUxQbHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOyIKLSAgICAiJEFM
Y20gPSAkQUxQbHVzICRDTSo7IgotICAgICIkQkFjbSA9ICRCQSAkQ00qOyIKLSAgICAiJEJCY20g
PSAkQkIgJENNKjsiCi0gICAgIiRCMmNtID0gJEIyICRDTSo7IgotICAgICIkQ0xjbSA9ICRDTCAk
Q00qOyIKLSAgICAiJENQY20gPSAkQ1AgJENNKjsiCi0gICAgIiRFWGNtID0gJEVYICRDTSo7Igot
ICAgICIkR0xjbSA9ICRHTCAkQ00qOyIKLSAgICAiJEhMY20gPSAkSEwgJENNKjsiCi0gICAgIiRI
WWNtID0gJEhZICRDTSo7IgotICAgICIkSDJjbSA9ICRIMiAkQ00qOyIKLSAgICAiJEgzY20gPSAk
SDMgJENNKjsiCi0gICAgIiRJRGNtID0gJElEICRDTSo7IgotICAgICIkSU5jbSA9ICRJTiAkQ00q
OyIKLSAgICAiJElTY20gPSAkSVMgJENNKjsiCi0gICAgIiRKTGNtID0gJEpMICRDTSo7IgotICAg
ICIkSlZjbSA9ICRKViAkQ00qOyIKLSAgICAiJEpUY20gPSAkSlQgJENNKjsiCi0gICAgIiROU2Nt
ID0gJE5TICRDTSo7IgotICAgICIkTlVjbSA9ICROVSAkQ00qOyIKLSAgICAiJE9QY20gPSAkT1Ag
JENNKjsiCi0gICAgIiRQT2NtID0gJFBPICRDTSo7IgotICAgICIkUFJjbSA9ICRQUiAkQ00qOyIK
LSAgICAiJFFVY20gPSAkUVUgJENNKjsiCi0gICAgIiRSSWNtID0gJFJJICRDTSo7IgotICAgICIk
U1ljbSA9ICRTWSAkQ00qOyIKLSAgICAiJFdKY20gPSAkV0ogJENNKjsiOwotCi1zdGF0aWMgY29u
c3QgY2hhciogdWF4MTRGb3J3YXJkID0KLSAgICAiISFmb3J3YXJkOyIKLSAgICAiJENBTl9DTSA9
IFteJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsiCi0gICAgIiRDQU5UX0NNID0gWyRTUCAk
QksgJENSICRMRiAkTkwgJFpXICRDTV07IgotICAgICIkQUxfRk9MTE9XX05PQ00gPSBbJEJLICRD
UiAkTEYgJE5MICRaVyAkU1BdOyIKLSAgICAiJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAk
SEwgJElTICRTWSAkV0ogJEdMICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsi
Ci0gICAgIiRBTF9GT0xMT1cgPSBbJEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOyIKLSAg
ICAiJExCNEJyZWFrcyA9IFskQksgJENSICRMRiAkTkxdOyIKLSAgICAiJExCNE5vbkJyZWFrcyA9
IFteJEJLICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWldd
OyIKLSAgICAiJExCOE5vbkJyZWFrcyA9IFtbJExCNE5vbkJyZWFrc10gLSBbJFpXXV07IgotICAg
ICIkTEIxOE5vbkJyZWFrcyA9IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOyIKLSAgICAiJExCMThC
cmVha3MgPSBbJExCOEJyZWFrcyAkU1BdOyIKLSAgICAiJExCMjBOb25CcmVha3MgPSBbJExCMThO
b25CcmVha3MgLSAkQ0JdOyIKLSAgICAiJEFMUGx1cyAkQ00rOyIKLSAgICAiJEJBICRDTSs7Igot
ICAgICIkQkIgJENNKzsiCi0gICAgIiRCMiAkQ00rOyIKLSAgICAiJENMICRDTSs7IgotICAgICIk
Q1AgJENNKzsiCi0gICAgIiRFWCAkQ00rOyIKLSAgICAiJEdMICRDTSs7IgotICAgICIkSEwgJENN
KzsiCi0gICAgIiRIWSAkQ00rOyIKLSAgICAiJEgyICRDTSs7IgotICAgICIkSDMgJENNKzsiCi0g
ICAgIiRJRCAkQ00rOyIKLSAgICAiJElOICRDTSs7IgotICAgICIkSVMgJENNKzsiCi0gICAgIiRK
TCAkQ00rOyIKLSAgICAiJEpWICRDTSs7IgotICAgICIkSlQgJENNKzsiCi0gICAgIiROUyAkQ00r
OyIKLSAgICAiJE5VICRDTSs7IgotICAgICIkT1AgJENNKzsiCi0gICAgIiRQTyAkQ00rOyIKLSAg
ICAiJFBSICRDTSs7IgotICAgICIkUVUgJENNKzsiCi0gICAgIiRSSSAkQ00rOyIKLSAgICAiJFNZ
ICRDTSs7IgotICAgICIkV0ogJENNKzsiCi0gICAgIiRDUiAkTEYgezEwMH07IgotICAgICIkTEI0
Tm9uQnJlYWtzPyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJENBTl9DTSAkQ00qICRMQjRCcmVh
a3MgezEwMH07IgotICAgICIkQ00rICRMQjRCcmVha3MgezEwMH07IgotICAgICIkTEI0Tm9uQnJl
YWtzIFskU1AgJFpXXTsiCi0gICAgIiRDQU5fQ00gJENNKiBbJFNQICRaV107IgotICAgICIkQ00r
IFskU1AgJFpXXTsiCi0gICAgIiRFbW9qaUZvclNlcXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAk
WldKICRFbW9qaUZvclNlcXM7IgotICAgICIkQ0FOX0NNICRDTSs7IgotICAgICIkQ00rOyIKLSAg
ICAiJENBTl9DTSAkQ00qICRXSmNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkV0pjbTsiCi0gICAg
IiRDTSsgJFdKY207IgotICAgICIkV0pjbSAkQ0FOVF9DTTsiCi0gICAgIiRXSmNtICRDQU5fQ00g
JENNKjsiCi0gICAgIiRHTGNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5UX0NNOyIK
LSAgICAiW1skTEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSogJEdMY207IgotICAg
ICIkQ00rIEdMY207IgotICAgICIkTEI4Tm9uQnJlYWtzICRDTDsiCi0gICAgIiRDQU5fQ00gJENN
KiAkQ0w7IgotICAgICIkQ00rICRDTDsiCi0gICAgIiRMQjhOb25CcmVha3MgJENQOyIKLSAgICAi
JENBTl9DTSAkQ00qICRDUDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJExCOE5vbkJyZWFrcyAk
RVg7IgotICAgICIkQ0FOX0NNICRDTSogJEVYOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkTEI4
Tm9uQnJlYWtzICRJUzsiCi0gICAgIiRDQU5fQ00gJENNKiAkSVM7IgotICAgICIkQ00rICRJUzsi
Ci0gICAgIiRMQjhOb25CcmVha3MgJFNZOyIKLSAgICAiJENBTl9DTSAkQ00qICRTWTsiCi0gICAg
IiRDTSsgJFNZOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOX0NNICRDTSo7IgotICAgICIkT1BjbSAk
U1AqICRDQU5UX0NNOyIKLSAgICAiJE9QY20gJFNQKyAkQ00rICRBTF9GT0xMT1c/OyIKLSAgICAi
JFFVY20gJFNQKiAkT1BjbTsiCi0gICAgIigkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOyIKLSAg
ICAiJEIyY20gJFNQKiAkQjJjbTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207Igot
ICAgICIkQ00rICRRVWNtOyIKLSAgICAiJFFVY20gLj87IgotICAgICIkUVVjbSAkTEIxOE5vbkJy
ZWFrcyAkQ00qOyIKLSAgICAiJExCMjBOb25CcmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICRO
U2NtKTsgIgotICAgICIkQkJjbSBbXiRDQl07IgotICAgICIkQkJjbSAkTEIyME5vbkJyZWFrcyAk
Q00qOyIKLSAgICAiJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87IgotICAgICIkU1ljbSAk
SExjbTsiCi0gICAgIigkQUxjbSB8ICRITGNtKSAkSU5jbTsiCi0gICAgIiRDTSsgJElOY207Igot
ICAgICIkRVhjbSAkSU5jbTsiCi0gICAgIiRJRGNtICRJTmNtOyIKLSAgICAiJElOY20gJElOY207
IgotICAgICIkTlVjbSAkSU5jbTsiCi0gICAgIiRJRGNtICRQT2NtOyIKLSAgICAiJEFMY20gJE5V
Y207IgotICAgICIkSExjbSAkTlVjbTsiCi0gICAgIiRDTSsgJE5VY207IgotICAgICIkTlVjbSAk
QUxjbTsiCi0gICAgIiROVWNtICRITGNtOyIKLSAgICAiJFBSY20gJElEY207IgotICAgICIkUFJj
bSAoJEFMY20gfCAkSExjbSk7IgotICAgICIkUE9jbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIo
JFBSY20gfCAkUE9jbSk/ICgkT1BjbSB8ICRIWWNtKT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAk
SVNjbSkqICgkQ0xjbSB8ICRDUGNtKT8gKCRQUmNtIHwgJFBPY20pPzsiCi0gICAgIiRKTGNtICgk
SkxjbSB8ICRKVmNtIHwgJEgyY20gfCAkSDNjbSk7IgotICAgICIoJEpWY20gfCAkSDJjbSkgKCRK
VmNtIHwgJEpUY20pOyIKLSAgICAiKCRKVGNtIHwgJEgzY20pICRKVGNtOyIKLSAgICAiKCRKTGNt
IHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOyIKLSAgICAiKCRKTGNtIHwg
JEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRQT2NtOyIKLSAgICAiJFBSY20gKCRKTGNt
IHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20p
ICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRDTSsgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJElT
Y20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207
IgotICAgICIkQ00rICRPUGNtOyIKLSAgICAiJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7
IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkUkljbSAkUkljbTsiCi0jZW5k
aWYKLSAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IjsKLQotc3RhdGlj
IGNvbnN0IGNoYXIqIHVheDE0UmV2ZXJzZSA9Ci0gICAgIiEhcmV2ZXJzZTsiCi0gICAgIiRDTSsg
JEFMUGx1czsiCi0gICAgIiRDTSsgJEJBOyIKLSAgICAiJENNKyAkQkI7IgotICAgICIkQ00rICRC
MjsiCi0gICAgIiRDTSsgJENMOyIKLSAgICAiJENNKyAkQ1A7IgotICAgICIkQ00rICRFWDsiCi0g
ICAgIiRDTSsgJEdMOyIKLSAgICAiJENNKyAkSEw7IgotICAgICIkQ00rICRIWTsiCi0gICAgIiRD
TSsgJEgyOyIKLSAgICAiJENNKyAkSDM7IgotICAgICIkQ00rICRJRDsiCi0gICAgIiRDTSsgJElO
OyIKLSAgICAiJENNKyAkSVM7IgotICAgICIkQ00rICRKTDsiCi0gICAgIiRDTSsgJEpWOyIKLSAg
ICAiJENNKyAkSlQ7IgotICAgICIkQ00rICROUzsiCi0gICAgIiRDTSsgJE5VOyIKLSAgICAiJENN
KyAkT1A7IgotICAgICIkQ00rICRQTzsiCi0gICAgIiRDTSsgJFBSOyIKLSAgICAiJENNKyAkUVU7
IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00rICRSSTsiCi0jZW5kaWYK
LSAgICAiJENNKyAkU1k7IgotICAgICIkQ00rICRXSjsiCi0gICAgIiRDTSs7IgotICAgICIkQUxf
Rk9MTE9XICRDTSsgLyAoWyRCSyAkQ1IgJExGICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRT
UCB8ICRTUCsgJENNKiAoW14kT1AgJENNICRTUF0gfCBbJEFMIHtlb2Z9XSkpOyIKLSAgICAiWyRQ
Ul0gLyAkQ00rIFskQksgJENSICRMRiAkTkwgJFpXICRTUCB7ZW9mfV07IgotICAgICIkTEI0QnJl
YWtzIFskTEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICIkTEI0QnJlYWtzICRDTSsgJENBTl9DTTsi
Ci0gICAgIiRMRiAkQ1I7IgotICAgICJbJFNQICRaV10gWyRMQjROb25CcmVha3MtJENNXTsiCi0g
ICAgIlskU1AgJFpXXSAkQ00rICRDQU5fQ007IgotICAgICIkRW1vamlGb3JTZXFzICRaV0ogJEVt
b2ppTW9kcz8gJEVtb2ppVmFyPyAkRW1vamlGb3JTZXFzOyIKLSAgICAiJENNKyAkQ0FOX0NNOyIK
LSAgICAiJENNKiAkV0ogJENNKiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogWyRMQjhOb25CcmVh
a3MtJENNXTsiCi0gICAgIiRDQU5UX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkQ0FOX0NNICRD
TSogJFdKOyIKLSAgICAiJENNKiAkR0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEg
JEhZXV07IgotICAgICIkQ0FOVF9DTSAkQ00qICRHTDsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00q
ICRHTDsiCi0gICAgIiRDTCAkQ00rICRDQU5fQ007IgotICAgICIkQ1AgJENNKyAkQ0FOX0NNOyIK
LSAgICAiJEVYICRDTSsgJENBTl9DTTsiCi0gICAgIiRJUyAkQ00rICRDQU5fQ007IgotICAgICIk
U1kgJENNKyAkQ0FOX0NNOyIKLSAgICAiJENMIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIk
Q1AgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOyIK
LSAgICAiJElTIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkU1kgWyRMQjhOb25CcmVha3Mt
JENNXTsiCi0gICAgIlskQ0wgJENQICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7ICIK
LSAgICAiJENNKiAkQ0FOX0NNICRTUCogJENNKiAkT1A7IgotICAgICIkQ0FOVF9DTSAkU1AqICRD
TSogJE9QOyIKLSAgICAiJEFMX0ZPTExPVz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsiCi0gICAg
IiRBTF9GT0xMT1dfTk9DTSAkQ00rICRTUCsgJENNKiAkT1A7IgotICAgICIkQ00qICRBTF9GT0xM
T1dfQ00gJENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJFNZICRDTSAkU1ArICRPUDsiCi0gICAg
IiRDTSogJE9QICRTUCogJENNKiAkUVU7IgotICAgICIkQ00qICROUyAkU1AqICRDTSogKCRDTCB8
ICRDUCk7IgotICAgICIkQ00qICRCMiAkU1AqICRDTSogJEIyOyIKLSAgICAiJENNKiAkUVUgJENN
KiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkUVUgJExCMThOb25CcmVha3M7IgotICAgICIkQ00qICRD
QU5fQ00gJENNKiAkUVU7IgotICAgICIkQ0FOVF9DTSAkQ00qICRRVTsiCi0gICAgIiRDTSogKCRC
QSB8ICRIWSB8ICROUykgJENNKiBbJExCMjBOb25CcmVha3MtJENNXTsiCi0gICAgIiRDTSogWyRM
QjIwTm9uQnJlYWtzLSRDTV0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAkQkI7IgotICAg
ICJbXiRDQl0gJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsiCi0gICAgIiRDTSogJEhMICRDTSog
JFNZOyIKLSAgICAiJENNKiAkSU4gJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICRJ
TiAkQ00qICRFWDsiCi0gICAgIiRDTSogJElOICRDTSogJElEOyIKLSAgICAiJENNKiAkSU4gJENN
KiAkSU47IgotICAgICIkQ00qICRJTiAkQ00qICROVTsiCi0gICAgIiRDTSogJFBPICRDTSogJElE
OyIKLSAgICAiJENNKiAkTlUgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQ
bHVzIHwgJEhMKSAkQ00qICROVTsiCi0gICAgIiRDTSogJElEICRDTSogJFBSOyIKLSAgICAiJENN
KiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAk
Q00qICRQTzsiCi0gICAgIigkQ00qICgkUFIgfCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAo
JENNKiAoJE5VIHwgJElTIHwgJFNZKSkqICRDTSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRD
TSogKCRQUiB8ICRQTykpPzsiCi0gICAgIiRDTSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENN
KiAkSkw7IgotICAgICIkQ00qICgkSlQgfCAkSlYpICRDTSogKCRIMiB8ICRKVik7IgotICAgICIk
Q00qICRKVCAkQ00qICgkSDMgfCAkSlQpOyIKLSAgICAiJENNKiAkSU4gJENNKiAoJEgzIHwgJEgy
IHwgJEpUIHwgJEpWIHwgJEpMKTsiCi0gICAgIiRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRK
VCB8ICRKViB8ICRKTCk7IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwp
ICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRI
TCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRJUzsiCi0gICAgIiRDTSogJE9Q
ICRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCB8
ICROVSkgJENNKiAkQ1A7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00q
ICRSSSAkQ00qICRSSTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9q
aUZvck1vZHM7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0U2FmZUZvcndhcmQgPQotICAg
ICIhIXNhZmVfZm9yd2FyZDsiCi0gICAgIlskQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZ
ICRCQSAkU1AgJGRpY3Rpb25hcnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkg
JEJBICRkaWN0aW9uYXJ5XTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KLXN0
YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVSZXZlcnNlID0KLSAgICAiISFzYWZlX3JldmVyc2U7
IgotICAgICIkQ00rIFteJENNICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRDTSsg
JFNQIC8gLjsiCi0gICAgIiRTUCsgJENNKiAkT1A7IgotICAgICIkU1ArICRDTSogJFFVOyIKLSAg
ICAiJFNQKyAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJFNQKyAkQ00qICRCMjsiCi0gICAgIiRD
TSogKCRIWSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIoJENNKiAoJElTIHwgJFNZKSkrICRDTSog
JE5VOyIKLSAgICAiKCRDTCB8ICRDUCkgJENNKiAoJE5VIHwgJElTIHwgJFNZKTsiCi0gICAgIiRk
aWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KIHN0YXRpYyBTdHJpbmcgbWFwTGluZUl0ZXJhdG9y
TW9kZVRvUnVsZXMoTGluZUJyZWFrSXRlcmF0b3JNb2RlIG1vZGUsIGJvb2wgaXNDSkspCiB7Ci0g
ICAgU3RyaW5nQnVpbGRlciBydWxlc0J1aWxkZXI7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1
YXgxNFByb2xvZ3VlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNC
ZWZvcmUpOwogICAgIHN3aXRjaCAobW9kZSkgewogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JN
b2RlVUFYMTQ6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2ln
bm1lbnRzQ3VzdG9tRGVmYXVsdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9u
Q0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxlczsK
ICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0TG9vc2U6Ci0gICAgICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgOiB1
YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAg
ICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLUnVsZXMgOiBs
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVh
a0l0ZXJhdG9yTW9kZVVBWDE0Tm9ybWFsOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlz
Q0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA6IHVheDE0QXNzaWdubWVudHND
dXN0b21Ob3JtYWxOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pL
ID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2Rl
VUFYMTRTdHJpY3Q6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5v
bkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLUnVsZXM7CiAgICAgfQotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25t
ZW50c0FmdGVyKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0Rm9yd2FyZCk7Ci0gICAg
cnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFJldmVyc2UpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBl
bmQodWF4MTRTYWZlRm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVS
ZXZlcnNlKTsKLSAgICByZXR1cm4gcnVsZXNCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICIiOwogfQogCiAvLyBSZWNvZ25pemUgQkNQNDcg
Y29tcGxpYW50IHByaW1hcnkgbGFuZ3VhZ2UgdmFsdWVzIG9mICd6aCcsICdqYScsICdrbycKQEAg
LTc4Niw5ICsyNTIsMjkgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIG9wZW5MaW5lQnJlYWtJdGVyYXRv
cihjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSwgTGluZUJyZWFrSXQKICAgICBpZiAobW9kZSA9
PSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNCkKICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29w
ZW4oVUJSS19MSU5FLCBsb2NhbGVJc0VtcHR5ID8gY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkg
OiBsb2NhbGUuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOwogICAg
IGVsc2UgewotICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKLSAgICAgICAgYXV0byBy
dWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsKLSAgICAgICAg
dWJya0l0ZXIgPSB1YnJrX29wZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRlZENo
YXJhY3RlcnMoKSwgcnVsZXMubGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0
dXMpOworICAgICAgICBCcmVha2luZ1J1bGVTZXQgcnVsZVNldDsKKyAgICAgICAgc3dpdGNoICht
b2RlKSB7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTQ6CisgICAgICAg
ICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLIDogQnJlYWtp
bmdSdWxlU2V0OjpVQVgxNE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0TG9vc2U6CisgICAgICAgICAgICBydWxlU2V0ID0g
aXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VDSksgOiBCcmVha2luZ1J1bGVTZXQ6
OlVBWDE0TG9vc2VOb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5l
QnJlYWtJdGVyYXRvck1vZGVVQVgxNE5vcm1hbDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NK
SyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVB
WDE0Tm9ybWFsTm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJy
ZWFrSXRlcmF0b3JNb2RlVUFYMTRTdHJpY3Q6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksg
PyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgx
NFN0cmljdE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKGF1dG8qIGl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KHJ1bGVTZXQpKQor
ICAgICAgICAgICAgdWJya0l0ZXIgPSByZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4o
aXRlcmF0b3IpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFVQYXJzZUVycm9yIHBhcnNl
U3RhdHVzOworICAgICAgICAgICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1
bGVzKG1vZGUsIGlzQ0pLKTsKKyAgICAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuUnVsZXMo
U3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHJ1bGVzLmxlbmd0aCgp
LCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVzKTsKKyAgICAgICAgfQogICAgIH0KICAg
ICAvLyBsb2NhbGUgY29tZXMgZnJvbSBhIHdlYiBwYWdlIGFuZCBpdCBjYW4gYmUgaW52YWxpZCwg
bGVhZGluZyBJQ1UKICAgICAvLyB0byBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIGZhbGwgYmFjayB0
byB0aGUgZGVmYXVsdCBsb2NhbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1Rl
eHRCcmVha0l0ZXJhdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9y
LmgKaW5kZXggZDkwMzIxNWFlNDEzN2U0YzNhOWVhMzViM2QwMjViZjUyZTQ1MThlYy4uZDgyMWIz
MTY3OTE5YjQ0MjlmYTU0YzFlNWIzZjQ2N2M1MjA2MTM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3IuaApAQCAtMzgsNiArMzgsMzAgQEAgZW51bSBMaW5lQnJlYWtJdGVy
YXRvck1vZGUgewogICAgIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0U3RyaWN0LAogfTsKIAor
ZW51bSBjbGFzcyBCcmVha2luZ1J1bGVTZXQgeworICAgIEN1cnNvck1vdmVtZW50LAorICAgIFVB
WDE0Q0pLLAorICAgIFVBWDE0Tm9uQ0pLLAorICAgIFVBWDE0TG9vc2VDSkssCisgICAgVUFYMTRM
b29zZU5vbkNKSywKKyAgICBVQVgxNE5vcm1hbENKSywKKyAgICBVQVgxNE5vcm1hbE5vbkNKSywK
KyAgICBVQVgxNFN0cmljdENKSywKKyAgICBVQVgxNFN0cmljdE5vbkNKSworfTsKKworZXh0ZXJu
IGNvbnN0IGNoYXIqIGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlczsKK2V4dGVybiBjb25zdCBj
aGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciog
bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIq
IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFy
KiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3Qg
Y2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKS1J1bGVzOworZXh0ZXJuIGNvbnN0
IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsKKworVGV4dEJy
ZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpOwor
CiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGluIG1vc3Qg
Y2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRvCiAvLyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4gT25l
IG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0aGlzIGNhbiBiZSBkaWZmZXJlbnQKIC8vIGZyb20gY2hh
cmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlzIFRoYWkgcHJlcGVuZCBjaGFyYWN0ZXJzLCBzZWUgYnVn
IDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRl
cmF0b3JJbnRlcm5hbElDVU1hYy5tbSBiL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVh
a0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KaW5kZXggYmVmNWRhYTY0Mjg4ODIxZTIwZjI2Mjhj
Njg1NWVlOGU4OGEzODkyYy4uMmFlY2YwOWU4MjU0NGM2NmI3ZDFjMWU1YWFhYzY0ZjVmZmYzMDJi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVU1hYy5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJ
dGVyYXRvckludGVybmFsSUNVTWFjLm1tCkBAIC0yMSwxMiArMjEsMTIwIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgogCisj
aW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKKworI2lmIGRlZmluZWQoVV9TSE9XX0NQTFVT
UExVU19BUEkpCisjdW5kZWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKyNlbmRpZgorI2RlZmluZSBV
X1NIT1dfQ1BMVVNQTFVTX0FQSSAxCisKKyNpbmNsdWRlIDx1bmljb2RlL3JiYmkuaD4KKyNpbmNs
dWRlIDx1bmljb2RlL3VkYXRhLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Cisj
aW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCitA
aW50ZXJmYWNlIFdURkJ1bmRsZUZpbmRlciA6IE5TT2JqZWN0CitAZW5kCisKK0BpbXBsZW1lbnRh
dGlvbiBXVEZCdW5kbGVGaW5kZXIKK0BlbmQKKwogbmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBj
b25zdCBpbnQgbWF4TG9jYWxlU3RyaW5nTGVuZ3RoID0gMzI7CiAKK3N0cnVjdCBSdWxlQ2FjaGUg
eworICAgIHN0ZDo6dW5pcXVlX3B0cjxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPiBpdGVyYXRvcjsK
KyAgICBib29sIGZhaWxlZCB7IGZhbHNlIH07Cit9OworCitUZXh0QnJlYWtJdGVyYXRvciogY3Jl
YXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCBydWxlU2V0KQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGN1cnNvck1vdmVtZW50SXRlcmF0b3I7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTRDSktJdGVy
YXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgx
NE5vbkNKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxp
bmVCcmVha1VBWDE0TG9vc2VDSktJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNExvb3NlTm9uQ0pLSXRlcmF0b3I7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTROb3JtYWxDSktJdGVyYXRv
cjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNE5v
cm1hbE5vbkNKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+
IGxpbmVCcmVha1VBWDE0U3RyaWN0Q0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTRTdHJpY3ROb25DSktJdGVyYXRvcjsKKworICAg
IE5TU3RyaW5nICpmaWxlTmFtZUJhc2U7CisgICAgUnVsZUNhY2hlKiBjYWNoZSA9IG51bGxwdHI7
CisKKyAgICBzd2l0Y2ggKHJ1bGVTZXQpIHsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6Q3Vy
c29yTW92ZW1lbnQ6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzIjsKKyAgICAgICAgY2FjaGUgPSAmY3Vyc29yTW92ZW1lbnRJdGVyYXRvci5nZXQo
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLOgor
ICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksiOworICAg
ICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNENKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks6CisgICAgICAgIGZp
bGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSyI7CisgICAgICAgIGNh
Y2hlID0gJmxpbmVCcmVha1VBWDE0Tm9uQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLOgorICAgICAgICBmaWxl
TmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSyI7CisgICAgICAgIGNh
Y2hlID0gJmxpbmVCcmVha1VBWDE0TG9vc2VDSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks6CisgICAgICAg
IGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLIjsKKyAg
ICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTRMb29zZU5vbkNKS0l0ZXJhdG9yLmdldCgpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSks6
CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
SyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0Tm9ybWFsQ0pLSXRlcmF0b3IuZ2V0
KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1h
bE5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsTm9uQ0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTROb3JtYWxOb25D
SktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVT
ZXQ6OlVBWDE0U3RyaWN0Q0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3RDSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNFN0
cmljdENKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5n
UnVsZVNldDo6VUFYMTRTdHJpY3ROb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVC
cmVha1VBWDE0U3RyaWN0Tm9uQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAg
IH0KKworICAgIEFTU0VSVChjYWNoZSk7CisKKyAgICBpZiAoY2FjaGUtPmZhaWxlZCkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIWNhY2hlLT5pdGVyYXRvcikgeworICAgICAg
ICBOU0J1bmRsZSAqYnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXVEZCdW5kbGVG
aW5kZXIgY2xhc3NdXTsKKyAgICAgICAgTlNTdHJpbmcgKnBhdGggPSBbYnVuZGxlIHBhdGhGb3JS
ZXNvdXJjZTpmaWxlTmFtZUJhc2Ugb2ZUeXBlOkAiYnJrIiBpbkRpcmVjdG9yeTpAIkJyZWFraW5n
UnVsZXMiXTsKKyAgICAgICAgaWYgKCFwYXRoKSB7CisgICAgICAgICAgICBjYWNoZS0+ZmFpbGVk
ID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAg
ICAgTlNTdHJpbmcgKmRpcmVjdG9yeSA9IFtwYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENv
bXBvbmVudF07CisgICAgICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOwor
ICAgICAgICBMb2NhbFVEYXRhTWVtb3J5UG9pbnRlciBkYXRhKHVkYXRhX29wZW4oW2RpcmVjdG9y
eSBVVEY4U3RyaW5nXSwgImJyayIsIFtmaWxlTmFtZUJhc2UgVVRGOFN0cmluZ10sICZlcnJvckNv
ZGUpKTsKKyAgICAgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJST1IpIHsKKyAgICAgICAg
ICAgIGNhY2hlLT5mYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgIH0KKworICAgICAgICBjYWNoZS0+aXRlcmF0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPFJ1
bGVCYXNlZEJyZWFrSXRlcmF0b3I+KGRhdGEub3JwaGFuKCksIGVycm9yQ29kZSk7CisgICAgICAg
IGlmIChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKSB7CisgICAgICAgICAgICBjYWNoZS0+ZmFp
bGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGNhY2hlLT5pdGVyYXRvciA9IG51bGxwdHI7CisgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBy
ZWludGVycHJldF9jYXN0PFRleHRCcmVha0l0ZXJhdG9yKj4oc3RkOjptYWtlX3VuaXF1ZTxSdWxl
QmFzZWRCcmVha0l0ZXJhdG9yPigqY2FjaGUtPml0ZXJhdG9yKS5yZWxlYXNlKCkpOworfQorCiBz
dGF0aWMgaW5saW5lIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gdGV4dEJyZWFrTG9jYWxlUHJlZmVy
ZW5jZSgpCiB7CiAgICAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBsb2NhbGUgPSBhZG9w
dENGKENGUHJlZmVyZW5jZXNDb3B5VmFsdWUoQ0ZTVFIoIkFwcGxlVGV4dEJyZWFrTG9jYWxlIiks
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UgYi9Tb3VyY2UvY21ha2Uv
V2ViS2l0RlMuY21ha2UKaW5kZXggMjlhMDk2OTAzOGZhYTc0NGUxYThjNThmMzU2YWQwNzNmMDA1
MjViZC4uODFmNTRhNTZhZDY5NTNkN2IxZTIwYzg4ZmE4NWJiZGRkMWYwN2U4YyAxMDA2NDQKLS0t
IGEvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRG
Uy5jbWFrZQpAQCAtMjQsNiArMjQsNyBAQCBpZiAoTk9UIFRPT0xTX0RJUikKIGVuZGlmICgpCiAK
IHNldChERVJJVkVEX1NPVVJDRVNfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzIikKK3NldChERVJJVkVEX1NPVVJDRVNfV1RGX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9E
ZXJpdmVkU291cmNlcy9XVEYiKQogc2V0KERFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9E
SVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUiKQog
c2V0KERFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUTEVHQUNZX0RJ
UiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3kiKQpAQCAt
MzIsNiArMzMsOCBAQCBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSICIke0NNQUtFX0JJ
TkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIiKQogc2V0KERFUklWRURfU09VUkNFU19X
RUJJTlNQRUNUT1JVSV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2Vi
SW5zcGVjdG9yVUkiKQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX0pB
VkFTQ1JJUFRDT1JFX0RJUn0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VT
X1dURl9ESVJ9KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XVEZfRElS
fS9CcmVha2luZ1J1bGVzKQogZmlsZShNQUtFX0RJUkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lKQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7
REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285604</attachid>
            <date>2016-08-08 16:29:03 -0700</date>
            <delta_ts>2016-08-08 16:56:41 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160808162731.patch</filename>
            <type>text/plain</type>
            <size>475678</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NzcxNGM0YjVjNmE4NTg2MzVjMTQ0ZmIyNDIxOGQ4NDU0ZWU3MTA1Li4wYzE0ZjAwOGMwM2E3YmYy
M2EwZWJjMWRhYjJkM2MzYjc4ZDljMmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDggIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IGhhc0lubGluZVN0b3JhZ2UoKSBpbiBKU0ZpbmFsT2Jq
ZWN0Ojp2aXNpdENoaWxkcmVuKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyNmIyZWJmZmUyY2FkYTM3Y2NkYWUzY2VkZjZl
ZmM4NTNiNjE2YjEuLjgwMGYyN2IwMTk1NzViNTkwYjliOTM5OGY1YjAwY2ZhZGEzODliYzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgtMDggIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZp
ZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMg
YXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkZWQuCisgICAgICAgICog
d3RmL2dlbmJyazogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dDogQWRkZWQuCisgICAgICAg
ICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9u
Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDogQWRk
ZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwOgorICAgICAgICAo
V1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RGOjpjdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAg
KiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAgICAqIHd0Zi90ZXh0L21hYy9U
ZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAgICAgICAoV1RGOjppdGVyYXRv
ckZvclJ1bGVTZXQpOgorCiAyMDE2LTA4LTA2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgV1RGIG5lZWRzIGEgdmFyaWFudCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBlMzBkYzllNGQwMjAzNjIwYjE0Y2EyMjhiNGViMmJiNGZk
ZWNlZjBkLi4xYWJlNDdjMjQ2NGRhODk4ZmFkNTMwYWNjMzI2MzdjOGJkYTYyYzdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOSw2ICsxMTA5LDcgQEAKIAkJMTRGOTc0NDcx
MzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhDODUzRTAwREExQzY3IC8qIEhl
YXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjhENEE3
MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNGNzM3NzE3MUNBNkZCMDBDOUJC
MUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgKi87IH07CisJCTFDRDE4
NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyog
QnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi87IH07
CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1QTUxNTJCQUFBNzAw
OTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2MkQ4NUI2MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQxQzBENjUwRjAwNkFDQjYxIC8q
IEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07CkBAIC0zMjcyLDYgKzMyNzMs
NyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFzZS54Y2NvbmZpZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYgLyogSmF2YVNjcmlwdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQxQkNGRiAvKiBKYXZhU2NyaXB0
Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Q29yZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMg
LyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7IHBhdGggPSAuLi9XVEYvQnJl
YWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTQxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0
aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0aCA9IGIzL2Fpci9BaXJGaXhQ
YXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NTQzOCw2ICs1NDQwLDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAwNzY5RTU0IC8qIERlcml2ZWQg
U291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
MUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJMEY2MTgz
MzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAogCQkJCTBGNjE4MzM0MUM0NUYz
QjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywKIAkJCQkwRjYxODMzNTFDNDVG
M0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAgLTg0NTcsNiArODQ2MCw3IEBA
CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQTUz
RjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8sCisJ
CQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2JhODA0
MDZiNjg3ODcyY2RjMmUzZTgxNmJlYjAwNDNhOTM5YzI3MC4uMGMzOGEyNzE2ZTI3MjdmYjljOTdi
MGIyM2FiNDY3N2I0OWZjZDFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC03LDYgKzcsMTggQEAKIAlvYmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhBZ2dy
ZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVy
aXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OworCQkJYnVp
bGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMwMENDN0RFQyAvKiBCdWlsZCBj
b25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2Vz
IiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAv
KiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0g
KAorCQkJCUMyQkE1NDNCMUQ1NzJCRUIwMDBBMzMzMiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICov
LAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXByb2R1Y3ROYW1lID0g
IkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyog
Q29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKIAkJ
CWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyogQnVp
bGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RGIEhl
YWRlcnMiICovOwpAQCAtMzEyLDYgKzMyNCwyMCBAQAogCQlBOEE0NzQ4NzE1MUE4MjVCMDA0MTIz
RkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCAq
LzsgfTsKIAkJQThBNDc0OEMxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDc0OEIxNTFBODI2NDAwNDEy
M0ZGIC8qIGNvbmZpZy5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1M0U4MDA2NUM5NjkgLyogRmVh
dHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovOyB9Owor
CQlDMkJBNTQyNTFENTcyNUM0MDAwQTMzMzIgLyogZ2VuYnJrLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1NDE4MUQ1NzI1OTAwMDBBMzMzMiAv
KiBnZW5icmsuY3BwICovOyB9OworCQlDMkJBNTQzMzFENTcyOTM4MDAwQTMzMzIgLyogdW9wdGlv
bnMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1
NDMyMUQ1NzI5MzgwMDBBMzMzMiAvKiB1b3B0aW9ucy5jICovOyB9OworCQlDMkJBNTQzNjFENTcy
OUZGMDAwQTMzMzIgLyogdW5ld2RhdGEuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyQkE1NDM1MUQ1NzI5RkYwMDBBMzMzMiAvKiB1bmV3ZGF0YS5jICov
OyB9OworCQlDMkJBNTQzOTFENTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1NDM4MUQ1NzJBRjgwMDBB
MzMzMiAvKiBmaWxlc3RybS5jICovOyB9OworCQlDMkJBNTQzRTFENTg2QUY0MDAwQTMzMzIgLyog
bGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICov
OyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
Sy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VEMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U0MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJD
QTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3
RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3Bw
ICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RjExRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTgxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICov
OyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkzNjE5QzY1RUI0MDBC
MkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMzMCAv
KiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87IH07CiAJ
CUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAv
KiBNZWRpYVRpbWUuaCAqLzsgfTsKQEAgLTM0NCw2ICszNzAsMTMgQEAKIAkJCXJlbW90ZUdsb2Jh
bElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdU
RjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Q
cm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5l
clBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsK
KwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1
NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsK
IAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9
IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9
IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTM1MSw4
ICszODQsMjcgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNjVBRkExNkYxNjMwQjk3NzAw
M0Q3MjNDOwogCQkJcmVtb3RlSW5mbyA9ICJDb3B5IEhlYWRlcnMiOwogCQl9OworCQlDMkJBNTQz
QTFENTcyQkVCMDAwQTMzMzIgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNh
ID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gNUQyNDdCNTkx
NDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsK
KwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMyOworCQkJ
cmVtb3RlSW5mbyA9IGdlbmJyazsKKwkJfTsKIC8qIEVuZCBQQlhDb250YWluZXJJdGVtUHJveHkg
c2VjdGlvbiAqLwogCisvKiBCZWdpbiBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8K
KwkJQzJCQTU0MUIxRDU3MjVCNDAwMEEzMzMyIC8qIENvcHlGaWxlcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWENvcHlGaWxlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OworCQkJZHN0UGF0aCA9IC91c3Ivc2hhcmUvbWFuL21hbjEvOworCQkJZHN0U3ViZm9sZGVyU3Bl
YyA9IDA7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMTsKKwkJfTsKKy8qIEVuZCBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rp
b24gKi8KKwogLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAJCTBGMEQ4NUIz
MTcyMzRDQjEwMDMzODIxMCAvKiBOb0xvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9Mb2NrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkI2NkE0MTdCNkI0RjcwMEE3QUUzRiAvKiBE
ZWZlcnJhYmxlUmVmQ291bnRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWZlcnJhYmxlUmVmQ291bnRl
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDM2LDYgKzQ4OCwxOCBAQAogCQkx
QzE4MUM4RDFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzhFMUQzMDdBQjgwMEY1RkExNiAvKiBV
VGV4dFByb3ZpZGVyVVRGMTYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRl
eHRQcm92aWRlclVURjE2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzk1
MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVU1hYy5tbTsgcGF0aCA9IG1hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNV
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NDFENTU5QTBEMDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDQjRGQjk1MUQ1NTlBNjkwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTYxRDU1
OUE5MDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Q0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlBMUQ1
NTlCMjMwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFr
SXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRl
cmF0b3JFcGlsb2d1ZS50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhB
MUQ1NThBRDMwMENDN0RFQyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IG5hbWUgPSBEZXJpdmVk
U291cmNlcy5tYWtlOyBwYXRoID0gd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHVzZXNUYWJzID0gMTsgfTsKKwkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVD
IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OTMx
RDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRo
cmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGhy
ZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODkxNTI1MDJEQTAw
NTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQ29yZVRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjE0N0Iw
ODE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTgsNiArNzIyLDMzIEBACiAJCUE4QTQ3MzdC
MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdURlRocmVhZERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQThBNDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUMyQkE1NDE4MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gZ2VuYnJrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzJCQTU0MUQxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsg
aW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gZ2VuYnJrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OworCQlDMkJBNTQyNjFENTcyNjdDMDAwQTMzMzIgLyogdW9wdGlvbnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdW9wdGlvbnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MjcxRDU3MjY4OTAwMEEzMzMyIC8qIHVuZXdkYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVuZXdkYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDI4MUQ1NzI2QjAwMDBBMzMzMiAvKiB1Y21uZGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1Y21uZGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyOTFENTcyNkJDMDAwQTMzMzIgLyogcmJiaWRhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcmJiaWRhdGEuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MkExRDU3MjZDNTAwMEEzMzMyIC8qIGNtZW1vcnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY21lbW9yeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyQjFENTcyNkU4MDAwQTMzMzIgLyogdW1hcGZpbGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdW1hcGZpbGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MkMxRDU3MjcwOTAwMEEzMzMyIC8qIHB1dGlsaW1w
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHB1dGlsaW1wLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDJEMUQ1NzI3MjQwMDBBMzMzMiAvKiB1ZGF0YXN3
cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1ZGF0YXN3cC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyRTFENTcyNzNCMDAwQTMzMzIgLyogdW11dGV4
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVtdXRleC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyRjFENTcyNzRDMDAwQTMzMzIgLyogdXRyaWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdXRyaWUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MzIxRDU3MjkzODAwMEEzMzMyIC8qIHVvcHRpb25zLmMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHVvcHRpb25zLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUMyQkE1NDM0MUQ1NzI5QTkwMDBBMzMzMiAvKiBjc3RyaW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNzdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MzUxRDU3MjlGRjAwMEEzMzMyIC8qIHVuZXdkYXRhLmMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHVuZXdkYXRhLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUMyQkE1NDM3MUQ1NzJBMkQwMDBBMzMzMiAvKiBmaWxlc3RybS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBmaWxlc3RybS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDMkJBNTQzODFENTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gZmlsZXN0cm0uYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0M0YxRDU4NzRFNjAwMEEzMzMyIC8qIEdlbmVyYXRlQnJl
YWtpbmdSdWxlU3RyaW5ncy5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IEdlbmVyYXRlQnJlYWtpbmdS
dWxlU3RyaW5ncy5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTAxRDU1
Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcDsgcGF0aCA9IEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDMkNBMzdFNDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzRGOEE5MzYxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9wd2F0Y2guaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGlt
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQjE1ODU3RDAzMDBCNUJDMzAg
LyogTWVkaWFUaW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVGlt
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjg4LDcgKzc3OSw3IEBACiAJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJMTQ0N0FFQzYx
OEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8s
Ci0JCQkJMTQ0N0FFQ0IxOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJh
bWV3b3JrcyAqLywKKwkJCQlDMkJBNTQzRTFENTg2QUY0MDAwQTMzMzIgLyogbGliaWN1Y29yZS5k
eWxpYiBpbiBGcmFtZXdvcmtzICovLAogCQkJCTE0NDdBRUM3MThGQ0U1ODAwMEIzRDdGRiAvKiBs
aWJXVEYuYSBpbiBGcmFtZXdvcmtzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtNzAxLDYgKzc5MiwxNCBAQAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQlDMkJBNTQxQTFENTcy
NUI0MDAwQTMzMzIgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NC
dWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0g
KAorCQkJCTE0NDdBRUNCMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZy
YW1ld29ya3MgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CisJCX07CiAvKiBFbmQgUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwog
CiAvKiBCZWdpbiBQQlhHcm91cCBzZWN0aW9uICovCkBAIC03MjUsNiArODI0LDI1IEBACiAJCQlw
YXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUNEMTg3OTEx
RDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDNGMUQ1ODc0RTYwMDBBMzMzMiAvKiBHZW5l
cmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8sCisJCQkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3
REVDIC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8sCisJCQkJMUNEMTg3OTMx
RDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovLAorCQkJ
CTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4
dCAqLywKKwkJCQkxQ0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTcxRDU1OUFBODAw
RjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgKi8sCisJCQkJ
MUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksudHh0ICovLAorCQkJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZF
MzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8sCisJCQkJMUNCNEZC
OUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksu
dHh0ICovLAorCQkJCTFDQjRGQjlDMUQ1NTlCNjcwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
ckVwaWxvZ3VlLnR4dCAqLywKKwkJCSk7CisJCQlwYXRoID0gQnJlYWtpbmdSdWxlczsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2OEQxQiAv
KiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNzQ2
LDEwICs4NjQsMTIgQEAKIAkJNUQyNDdCNTcxNDY4OUI4NjAwRTc4Qjc2ID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMg
LyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKIAkJCQk1RDI0N0I2RDE0Njg5QzQ3MDBFNzhCNzYg
LyogQ29uZmlndXJhdGlvbnMgKi8sCiAJCQkJMTQwMjJGM0YxOEY1QzNFNTAwN0ZGMEVCIC8qIExp
YnJhcmllcyAqLywKIAkJCQk1RDI0N0I2MzE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvZHVjdHMgKi8s
CiAJCQkJNUQyNDdCNzYxNDY4OUQ3NjAwRTc4Qjc2IC8qIFNvdXJjZSAqLywKKwkJCQlDMkNBMzdE
RjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0NDdBRUM1MThG
Q0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKIAkJCQkxNDQ3QUVDQTE4
RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLywKIAkJCSk7CkBAIC03NjAsNiAr
ODgwLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTE0NDdBRUJFMThGQ0U1NjkwMEIzRDdGRiAv
KiBsaWJtYm1hbGxvYy5keWxpYiAqLywKIAkJCQk1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyog
bGliV1RGLmEgKi8sCisJCQkJQzJCQTU0MUQxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLywK
IAkJCSk7CiAJCQluYW1lID0gUHJvZHVjdHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMTA4Myw2ICsxMjA0LDggQEAKIAkJQThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDE3
MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsgKi8sCisJCQkJMUNEMTg3OTExRDU1OThFMTAwQ0M3
REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJMUMxODFDODgxRDMwN0FCODAwRjVGQTE2IC8q
IGljdSAqLywKIAkJCQlBNUJBMTVGNjE4MjQzNTlFMDBBODJFNjkgLyogY2YgKi8sCiAJCQkJQTVC
QTE1RjExODI0MzM5RjAwQTgyRTY5IC8qIG1hYyAqLywKQEAgLTExNTgsNiArMTI4MSw0NyBAQAog
CQkJcGF0aCA9IGljdTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUMyQkE1
NDE3MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDE4MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsu
Y3BwICovLAorCQkJCUMyQkE1NDMyMUQ1NzI5MzgwMDBBMzMzMiAvKiB1b3B0aW9ucy5jICovLAor
CQkJCUMyQkE1NDM1MUQ1NzI5RkYwMDBBMzMzMiAvKiB1bmV3ZGF0YS5jICovLAorCQkJCUMyQkE1
NDM4MUQ1NzJBRjgwMDBBMzMzMiAvKiBmaWxlc3RybS5jICovLAorCQkJCUMyQkE1NDI2MUQ1NzI2
N0MwMDBBMzMzMiAvKiB1b3B0aW9ucy5oICovLAorCQkJCUMyQkE1NDI3MUQ1NzI2ODkwMDBBMzMz
MiAvKiB1bmV3ZGF0YS5oICovLAorCQkJCUMyQkE1NDI4MUQ1NzI2QjAwMDBBMzMzMiAvKiB1Y21u
ZGF0YS5oICovLAorCQkJCUMyQkE1NDI5MUQ1NzI2QkMwMDBBMzMzMiAvKiByYmJpZGF0YS5oICov
LAorCQkJCUMyQkE1NDJBMUQ1NzI2QzUwMDBBMzMzMiAvKiBjbWVtb3J5LmggKi8sCisJCQkJQzJC
QTU0MkIxRDU3MjZFODAwMEEzMzMyIC8qIHVtYXBmaWxlLmggKi8sCisJCQkJQzJCQTU0MkMxRDU3
MjcwOTAwMEEzMzMyIC8qIHB1dGlsaW1wLmggKi8sCisJCQkJQzJCQTU0MkQxRDU3MjcyNDAwMEEz
MzMyIC8qIHVkYXRhc3dwLmggKi8sCisJCQkJQzJCQTU0MkUxRDU3MjczQjAwMEEzMzMyIC8qIHVt
dXRleC5oICovLAorCQkJCUMyQkE1NDJGMUQ1NzI3NEMwMDBBMzMzMiAvKiB1dHJpZS5oICovLAor
CQkJCUMyQkE1NDM0MUQ1NzI5QTkwMDBBMzMzMiAvKiBjc3RyaW5nLmggKi8sCisJCQkJQzJCQTU0
MzcxRDU3MkEyRDAwMEEzMzMyIC8qIGZpbGVzdHJtLmggKi8sCisJCQkpOworCQkJbmFtZSA9IGdl
bmJyazsKKwkJCXBhdGggPSBCcmVha2luZ1J1bGVzL2dlbmJyazsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CisJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNv
dXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMy
Q0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
ICovLAorCQkJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Q0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNB
MzdFNDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAg
Ki8sCisJCQkJQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksuY3BwICovLAorCQkJCUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNzFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8sCisJ
CQkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksuY3BwICovLAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJ
CXBhdGggPSBEZXJpdmVkU291cmNlcy9XVEY7CisJCQlzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOworCQl9OwogCQlDRTQ2NTE2QzE5REIxRkI0MDAzRUNBMDUgLyogY29jb2EgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTQ3MCw2ICsxNjM0LDcg
QEAKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTFD
RDE4Nzg4MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTY1
QUZBMjhFMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsK
IAkJCW5hbWUgPSBXVEY7CkBAIC0xNDc3LDYgKzE2NDIsMjMgQEAKIAkJCXByb2R1Y3RSZWZlcmVu
Y2UgPSA1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi87CiAJCQlwcm9kdWN0
VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLmxpYnJhcnkuc3RhdGljIjsKIAkJfTsKKwkJ
QzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLyA9IHsKKwkJCWlzYSA9IFBCWE5h
dGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBDMkJBNTQyMTFENTcyNUI0
MDAwQTMzMzIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQg
ImdlbmJyayIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQlDMkJBNTQxOTFENTcyNUI0MDAw
QTMzMzIgLyogU291cmNlcyAqLywKKwkJCQlDMkJBNTQxQTFENTcyNUI0MDAwQTMzMzIgLyogRnJh
bWV3b3JrcyAqLywKKwkJCQlDMkJBNTQxQjFENTcyNUI0MDAwQTMzMzIgLyogQ29weUZpbGVzICov
LAorCQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAor
CQkJKTsKKwkJCW5hbWUgPSBnZW5icms7CisJCQlwcm9kdWN0TmFtZSA9IGdlbmJyazsKKwkJCXBy
b2R1Y3RSZWZlcmVuY2UgPSBDMkJBNTQxRDFENTcyNUI0MDAwQTMzMzIgLyogZ2VuYnJrICovOwor
CQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS50b29sIjsKKwkJfTsKIC8q
IEVuZCBQQlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhQcm9qZWN0IHNl
Y3Rpb24gKi8KQEAgLTE0ODUsNiArMTY2NywxMSBAQAogCQkJYXR0cmlidXRlcyA9IHsKIAkJCQlM
YXN0U3dpZnRVcGRhdGVDaGVjayA9IDA3MDA7CiAJCQkJTGFzdFVwZ3JhZGVDaGVjayA9IDA3MDA7
CisJCQkJVGFyZ2V0QXR0cmlidXRlcyA9IHsKKwkJCQkJQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMy
ID0geworCQkJCQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gNy4zLjE7CisJCQkJCX07CisJCQkJ
fTsKIAkJCX07CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNUQyNDdCNUMxNDY4OUI4NjAw
RTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV1RGIiAq
LzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDMuMiI7CkBAIC0xNTAwLDEyICsx
Njg3LDI4IEBACiAJCQl0YXJnZXRzID0gKAogCQkJCTVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NiAv
KiBXVEYgKi8sCiAJCQkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRl
cnMgKi8sCisJCQkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAq
LywKIAkJCQkxNDQ3QUVCRDE4RkNFNTY5MDBCM0Q3RkYgLyogbWJtYWxsb2MgKi8sCisJCQkJQzJC
QTU0MUMxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQg
UEJYUHJvamVjdCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFz
ZSBzZWN0aW9uICovCisJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJp
dmVkIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJ
aW5wdXRQYXRocyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNl
cyI7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlw
dCA9ICJta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZc
IlxuY2QgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcblxuL2Jp
bi9sbiAtc2ZoIFwiJHtTUkNST09UfVwiIFdURlxuZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsg
ISAtZCBCcmVha2luZ1J1bGVzIF07IHRoZW5cbiAgICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxu
XG5pZiBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdOyB0aGVu
XG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0wXG5lbHNlXG4gICAgZXhwb3J0
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0xXG5maVxuXG5pZiBbIFwiJHtBQ1RJT059XCIgPSBc
ImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtBQ1RJT059XCIg
PSBcImluc3RhbGxoZHJzXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGFwaVwiIF07IHRo
ZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwiV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5t
YWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCBTREtST09UPVwiJHtT
REtST09UfVwiXG5maSI7CisJCX07CiAJCTY1QUZBMTcwMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5
IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE1MzYsNiArMTczOSw4IEBACiAJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQThBNDcz
ODYxNTFBODI1QjAwNDEyM0ZGIC8qIEFzc2VydGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDc0MzUxNTFBODI1QjAwNDEyM0ZGIC8qIEF0b21pY1N0cmluZy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3MEVDQTYwRDFCMDI0MjY4MDA0NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUJBMTVGQTE4MjQzNUE2MDBBODJFNjkgLyogQXRvbWlj
U3RyaW5nSW1wbENGLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU2Myw2ICsxNzY4LDcgQEAKIAkJ
CQlBOEE0NzNCMDE1MUE4MjVCMDA0MTIzRkYgLyogZG91YmxlLWNvbnZlcnNpb24uY2MgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzNCQTE1MUE4MjVCMDA0MTIzRkYgLyogZHRvYS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzNCMzE1MUE4MjVCMDA0MTIzRkYgLyogZmFzdC1kdG9hLmNjIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4ODVFMEYxODQ1QUVB
OTAwRjFFM0ZBIC8qIEZhc3RCaXRWZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDcz
QzMxNTFBODI1QjAwNDEyM0ZGIC8qIEZhc3RNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RENFRTIyMDExQ0VBNzU1MTAwMEMyMzk2IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0gaW4gU291
cmNlcyAqLywKQEAgLTE1NzgsNiArMTc4NCw3IEBACiAJCQkJQThBNDczRTkxNTFBODI1QjAwNDEy
M0ZGIC8qIE1ENS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDU0OTdBQzE1ODU3RDAzMDBCNUJD
MzAgLyogTWVkaWFUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0VDMTUxQTgyNUIw
MDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0Yw
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y0MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNv
cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y3MTUxQTgyNUIwMDQxMjNGRiAvKiBP
U0FsbG9jYXRvclBvc2l4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y5MTUxQTgyNUIw
MDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1ODUsNiAr
MTc5Miw3IEBACiAJCQkJMUMxODFDOTMxRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJV
VEYxNi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkZGMTlEQzFCQjMzNEVCMDA4ODZEOTEgLyog
UGFyYWxsZWxIZWxwZXJQb29sLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGODI0QTY4MUI3NDQz
QTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VF
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGOUQzMzYyMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVh
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDNGNjExRjE1NjVGMEY5MDBEQjUxNEEgLyogUkFN
U2l6ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyog
UmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTYxOSw5ICsxODI3LDEzIEBACiAJ
CQkJQThBNDc0NEExNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZGluZy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzQ0RTE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkaW5nUHRocmVhZHMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0NjkxNTFBODI1QjAwNDEyM0ZGIC8qIFVURjguY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRkE0N0M4
QTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkU0NDc5QzFCN0FBQTAzMDA5NDk4RUIgLyogV29yZExvY2suY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURD
RUUyMjAzMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNN
YWMubW0gaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzOTFB
OTYyNDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0QTBB
RDNEMUE5NjI1M0MwMDUzNkRGNiAvKiBXb3JrUXVldWVDb2NvYS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEE0NzQ0NTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMTYyOSw2ICsxODQxLDE3IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CisJCUMyQkE1NDE5MUQ1NzI1QjQwMDBBMzMzMiAv
KiBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CisJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJQzJCQTU0MzMxRDU3
MjkzODAwMEEzMzMyIC8qIHVvcHRpb25zLmMgaW4gU291cmNlcyAqLywKKwkJCQlDMkJBNTQzOTFE
NTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyBpbiBTb3VyY2VzICovLAorCQkJCUMyQkE1NDI1
MUQ1NzI1QzQwMDBBMzMzMiAvKiBnZW5icmsuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJCQTU0
MzYxRDU3MjlGRjAwMEEzMzMyIC8qIHVuZXdkYXRhLmMgaW4gU291cmNlcyAqLywKKwkJCSk7CisJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIC8qIEVuZCBQ
QlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFRhcmdldERlcGVu
ZGVuY3kgc2VjdGlvbiAqLwpAQCAtMTYzNywxMSArMTg2MCwyMSBAQAogCQkJdGFyZ2V0ID0gNUQy
NDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FF
QzMxOEZDRTU3MDAwQjNEN0ZGIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJ
MUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJ
CQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1
QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3
ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJ
NjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3
NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi87CiAJCQl0YXJnZXRQcm94eSA9IDY1QUZB
MjhEMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJ
CUMyQkE1NDNCMUQ1NzJCRUIwMDBBMzMzMiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewor
CQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IEMyQkE1NDFDMUQ1NzI1
QjQwMDBBMzMzMiAvKiBnZW5icmsgKi87CisJCQl0YXJnZXRQcm94eSA9IEMyQkE1NDNBMUQ1NzJC
RUIwMDBBMzMzMiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CisJCX07CiAvKiBFbmQgUEJY
VGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFhDQnVpbGRDb25maWd1cmF0
aW9uIHNlY3Rpb24gKi8KQEAgLTE2NjYsNiArMTg5OSwzMCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQ
cm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8g
PSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9u
UmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2Nv
bmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFS
R0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTFDRDE4Nzg1MUQ1
NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcw
MEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0g
eworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9
IFJlbGVhc2U7CisJCX07CisJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9u
ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJh
dGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2Uu
eGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIk
KFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVE
MjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRD
b25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0
Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOwpAQCAtMTczNiw2ICsx
OTkzLDIwNCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQlDMkJBNTQy
MjFENTcyNUI0MDAwQTMzMzIgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmln
dXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0
NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3Mg
PSB7CisJCQkJQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87CisJCQkJQ0xBTkdfQU5BTFla
RVJfTk9OTlVMTCA9IFlFUzsKKwkJCQlDTEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251
KysweCI7CisJCQkJQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKKwkJCQlDTEFOR19FTkFC
TEVfTU9EVUxFUyA9IFlFUzsKKwkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZRVM7CisJCQkJ
Q0xBTkdfV0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9DT05TVEFO
VF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRElSRUNUX09CSkNfSVNBX1VTQUdF
ID0gWUVTX0VSUk9SOworCQkJCUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKKwkJCQlDTEFO
R19XQVJOX0VOVU1fQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0lOVF9DT05WRVJT
SU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVTX0VSUk9SOwor
CQkJCUNMQU5HX1dBUk5fVU5SRUFDSEFCTEVfQ09ERSA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX19E
VVBMSUNBVEVfTUVUSE9EX01BVENIID0gWUVTOworCQkJCUNPREVfU0lHTl9JREVOVElUWSA9ICIt
IjsKKwkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87CisJCQkJREVCVUdfSU5GT1JNQVRJT05fRk9S
TUFUID0gZHdhcmY7CisJCQkJRU5BQkxFX1NUUklDVF9PQkpDX01TR1NFTkQgPSBZRVM7CisJCQkJ
RU5BQkxFX1RFU1RBQklMSVRZID0gWUVTOworCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0g
Z251OTk7CisJCQkJR0NDX0RZTkFNSUNfTk9fUElDID0gTk87CisJCQkJR0NDX05PX0NPTU1PTl9C
TE9DS1MgPSBZRVM7CisJCQkJR0NDX09QVElNSVpBVElPTl9MRVZFTCA9IDA7CisJCQkJR0NDX1BS
RVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKKwkJCQkJIkRFQlVHPTEiLAorCQkJCQkiVV9TSE9X
X0NQTFVTUExVU19BUEk9MSIsCisJCQkJCSIkKGluaGVyaXRlZCkiLAorCQkJCSk7CisJCQkJR0ND
X1dBUk5fNjRfVE9fMzJfQklUX0NPTlZFUlNJT04gPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9N
SVNTSU5HX1BST1RPVFlQRVMgPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9
IFlFU19FUlJPUjsKKwkJCQlHQ0NfV0FSTl9TSUdOX0NPTVBBUkUgPSBOTzsKKwkJCQlHQ0NfV0FS
Tl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURf
QVVUT1MgPSBZRVNfQUdHUkVTU0lWRTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZ
RVM7CisJCQkJR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU1BQ09TWF9ERVBM
T1lNRU5UX1RBUkdFVCA9IDEwLjExOworCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IFlFUzsK
KwkJCQlPTkxZX0FDVElWRV9BUkNIID0gWUVTOworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdF
VF9OQU1FKSI7CisJCQkJV0FSTklOR19DRkxBR1MgPSAoCisJCQkJCSItV2FsbCIsCisJCQkJCSIt
V2V4dHJhIiwKKwkJCQkJIi1XY2FzdC1xdWFsIiwKKwkJCQkJIi1XY2hhci1zdWJzY3JpcHRzIiwK
KwkJCQkJIi1XZXh0cmEtdG9rZW5zIiwKKwkJCQkJIi1XZm9ybWF0PTIiLAorCQkJCQkiLVdpbml0
LXNlbGYiLAorCQkJCQkiLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUiLAorCQkJCQkiLVdwYWNr
ZWQiLAorCQkJCQkiLVdwb2ludGVyLWFyaXRoIiwKKwkJCQkJIi1XcmVkdW5kYW50LWRlY2xzIiwK
KwkJCQkJIi1XdW5kZWYiLAorCQkJCQkiLVd3cml0ZS1zdHJpbmdzIiwKKwkJCQkJIi1XZXhpdC10
aW1lLWRlc3RydWN0b3JzIiwKKwkJCQkJIi1XZ2xvYmFsLWNvbnN0cnVjdG9ycyIsCisJCQkJCSIt
V3RhdXRvbG9naWNhbC1jb21wYXJlIiwKKwkJCQkJIi1XaW1wbGljaXQtZmFsbHRocm91Z2giLAor
CQkJCQkiLVduby1zaWduLWNvbXBhcmUiLAorCQkJCSk7CisJCQl9OworCQkJbmFtZSA9IERlYnVn
OworCQl9OworCQlDMkJBNTQyMzFENTcyNUI0MDAwQTMzMzIgLyogUmVsZWFzZSAqLyA9IHsKKwkJ
CWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVu
Y2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICov
OworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlBTFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMgPSBO
TzsKKwkJCQlDTEFOR19BTkFMWVpFUl9OT05OVUxMID0gWUVTOworCQkJCUNMQU5HX0NYWF9MQU5H
VUFHRV9TVEFOREFSRCA9ICJnbnUrKzB4IjsKKwkJCQlDTEFOR19DWFhfTElCUkFSWSA9ICJsaWJj
KysiOworCQkJCUNMQU5HX0VOQUJMRV9NT0RVTEVTID0gWUVTOworCQkJCUNMQU5HX0VOQUJMRV9P
QkpDX0FSQyA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0JPT0xfQ09OVkVSU0lPTiA9IFlFUzsKKwkJ
CQlDTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9E
SVJFQ1RfT0JKQ19JU0FfVVNBR0UgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9FTVBUWV9C
T0RZID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRU5VTV9DT05WRVJTSU9OID0gWUVTOworCQkJCUNM
QU5HX1dBUk5fSU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9PQkpDX1JPT1Rf
Q0xBU1MgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9VTlJFQUNIQUJMRV9DT0RFID0gWUVT
OworCQkJCUNMQU5HX1dBUk5fX0RVUExJQ0FURV9NRVRIT0RfTUFUQ0ggPSBZRVM7CisJCQkJQ09E
RV9TSUdOX0lERU5USVRZID0gIi0iOworCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBOTzsKKwkJCQlE
RUJVR19JTkZPUk1BVElPTl9GT1JNQVQgPSAiZHdhcmYtd2l0aC1kc3ltIjsKKwkJCQlFTkFCTEVf
TlNfQVNTRVJUSU9OUyA9IE5POworCQkJCUVOQUJMRV9TVFJJQ1RfT0JKQ19NU0dTRU5EID0gWUVT
OworCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251OTk7CisJCQkJR0NDX05PX0NPTU1P
Tl9CTE9DS1MgPSBZRVM7CisJCQkJR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKKwkJ
CQkJIlVfU0hPV19DUExVU1BMVVNfQVBJPTEiLAorCQkJCQkiJChERUJVR19ERUZJTkVTKSIsCisJ
CQkJCSIkKGluaGVyaXRlZCkiLAorCQkJCSk7CisJCQkJR0NDX1dBUk5fNjRfVE9fMzJfQklUX0NP
TlZFUlNJT04gPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9NSVNTSU5HX1BST1RPVFlQRVMgPSBO
TzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9IFlFU19FUlJPUjsKKwkJCQlHQ0Nf
V0FSTl9TSUdOX0NPTVBBUkUgPSBOTzsKKwkJCQlHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9S
ID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVNfQUdHUkVTU0lW
RTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5V
U0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjEx
OworCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IE5POworCQkJCVBST0RVQ1RfTkFNRSA9ICIk
KFRBUkdFVF9OQU1FKSI7CisJCQkJV0FSTklOR19DRkxBR1MgPSAoCisJCQkJCSItV2FsbCIsCisJ
CQkJCSItV2V4dHJhIiwKKwkJCQkJIi1XY2FzdC1xdWFsIiwKKwkJCQkJIi1XY2hhci1zdWJzY3Jp
cHRzIiwKKwkJCQkJIi1XZXh0cmEtdG9rZW5zIiwKKwkJCQkJIi1XZm9ybWF0PTIiLAorCQkJCQki
LVdpbml0LXNlbGYiLAorCQkJCQkiLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUiLAorCQkJCQki
LVdwYWNrZWQiLAorCQkJCQkiLVdwb2ludGVyLWFyaXRoIiwKKwkJCQkJIi1XcmVkdW5kYW50LWRl
Y2xzIiwKKwkJCQkJIi1XdW5kZWYiLAorCQkJCQkiLVd3cml0ZS1zdHJpbmdzIiwKKwkJCQkJIi1X
ZXhpdC10aW1lLWRlc3RydWN0b3JzIiwKKwkJCQkJIi1XZ2xvYmFsLWNvbnN0cnVjdG9ycyIsCisJ
CQkJCSItV3RhdXRvbG9naWNhbC1jb21wYXJlIiwKKwkJCQkJIi1XaW1wbGljaXQtZmFsbHRocm91
Z2giLAorCQkJCQkiLVduby1zaWduLWNvbXBhcmUiLAorCQkJCSk7CisJCQl9OworCQkJbmFtZSA9
IFJlbGVhc2U7CisJCX07CisJCUMyQkE1NDI0MUQ1NzI1QjQwMDBBMzMzMiAvKiBQcm9kdWN0aW9u
ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJh
dGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2Uu
eGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUFMV0FZU19TRUFSQ0hfVVNF
Ul9QQVRIUyA9IE5POworCQkJCUNMQU5HX0FOQUxZWkVSX05PTk5VTEwgPSBZRVM7CisJCQkJQ0xB
TkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJEID0gImdudSsrMHgiOworCQkJCUNMQU5HX0NYWF9MSUJS
QVJZID0gImxpYmMrKyI7CisJCQkJQ0xBTkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisJCQkJQ0xB
TkdfRU5BQkxFX09CSkNfQVJDID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQk9PTF9DT05WRVJTSU9O
ID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQ09OU1RBTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlD
TEFOR19XQVJOX0RJUkVDVF9PQkpDX0lTQV9VU0FHRSA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19X
QVJOX0VNUFRZX0JPRFkgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9FTlVNX0NPTlZFUlNJT04gPSBZ
RVM7CisJCQkJQ0xBTkdfV0FSTl9JTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJO
X09CSkNfUk9PVF9DTEFTUyA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX1VOUkVBQ0hBQkxF
X0NPREUgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9fRFVQTElDQVRFX01FVEhPRF9NQVRDSCA9IFlF
UzsKKwkJCQlDT0RFX1NJR05fSURFTlRJVFkgPSAiLSI7CisJCQkJQ09QWV9QSEFTRV9TVFJJUCA9
IE5POworCQkJCURFQlVHX0lORk9STUFUSU9OX0ZPUk1BVCA9ICJkd2FyZi13aXRoLWRzeW0iOwor
CQkJCUVOQUJMRV9OU19BU1NFUlRJT05TID0gTk87CisJCQkJRU5BQkxFX1NUUklDVF9PQkpDX01T
R1NFTkQgPSBZRVM7CisJCQkJR0NDX0NfTEFOR1VBR0VfU1RBTkRBUkQgPSBnbnU5OTsKKwkJCQlH
Q0NfTk9fQ09NTU9OX0JMT0NLUyA9IFlFUzsKKwkJCQlHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJ
T05TID0gKAorCQkJCQkiVV9TSE9XX0NQTFVTUExVU19BUEk9MSIsCisJCQkJCSIkKERFQlVHX0RF
RklORVMpIiwKKwkJCQkJIiQoaW5oZXJpdGVkKSIsCisJCQkJKTsKKwkJCQlHQ0NfV0FSTl82NF9U
T18zMl9CSVRfQ09OVkVSU0lPTiA9IE5POworCQkJCUdDQ19XQVJOX0FCT1VUX01JU1NJTkdfUFJP
VE9UWVBFUyA9IE5POworCQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9S
OworCQkJCUdDQ19XQVJOX1NJR05fQ09NUEFSRSA9IE5POworCQkJCUdDQ19XQVJOX1VOREVDTEFS
RURfU0VMRUNUT1IgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlF
U19BR0dSRVNTSVZFOworCQkJCUdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKKwkJCQlH
Q0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUID0gMTAuMTE7CisJCQkJTVRMX0VOQUJMRV9ERUJVR19JTkZPID0gTk87CisJCQkJUFJPRFVD
VF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCQlXQVJOSU5HX0NGTEFHUyA9ICgKKwkJCQkJ
Ii1XYWxsIiwKKwkJCQkJIi1XZXh0cmEiLAorCQkJCQkiLVdjYXN0LXF1YWwiLAorCQkJCQkiLVdj
aGFyLXN1YnNjcmlwdHMiLAorCQkJCQkiLVdleHRyYS10b2tlbnMiLAorCQkJCQkiLVdmb3JtYXQ9
MiIsCisJCQkJCSItV2luaXQtc2VsZiIsCisJCQkJCSItV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0
ZSIsCisJCQkJCSItV3BhY2tlZCIsCisJCQkJCSItV3BvaW50ZXItYXJpdGgiLAorCQkJCQkiLVdy
ZWR1bmRhbnQtZGVjbHMiLAorCQkJCQkiLVd1bmRlZiIsCisJCQkJCSItV3dyaXRlLXN0cmluZ3Mi
LAorCQkJCQkiLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMiLAorCQkJCQkiLVdnbG9iYWwtY29uc3Ry
dWN0b3JzIiwKKwkJCQkJIi1XdGF1dG9sb2dpY2FsLWNvbXBhcmUiLAorCQkJCQkiLVdpbXBsaWNp
dC1mYWxsdGhyb3VnaCIsCisJCQkJCSItV25vLXNpZ24tY29tcGFyZSIsCisJCQkJKTsKKwkJCX07
CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIC8qIEVuZCBYQ0J1aWxkQ29uZmlndXJhdGlv
biBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFhDQ29uZmlndXJhdGlvbkxpc3Qgc2VjdGlvbiAqLwpA
QCAtMTc0OSw2ICsyMjA0LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9
IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkx
Q0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQ
QlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0Nv
bmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkxQ0QxODc4
NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3
REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1
Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwor
CQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdC
NUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJv
amVjdCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWls
ZENvbmZpZ3VyYXRpb25zID0gKApAQCAtMTc3OSw2ICsyMjQ0LDE2IEBACiAJCQlkZWZhdWx0Q29u
ZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQ
cm9kdWN0aW9uOwogCQl9OworCQlDMkJBNTQyMTFENTcyNUI0MDAwQTMzMzIgLyogQnVpbGQgY29u
ZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgImdlbmJyayIgKi8gPSB7CisJCQlp
c2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJ
CQlDMkJBNTQyMjFENTcyNUI0MDAwQTMzMzIgLyogRGVidWcgKi8sCisJCQkJQzJCQTU0MjMxRDU3
MjVCNDAwMEEzMzMyIC8qIFJlbGVhc2UgKi8sCisJCQkJQzJCQTU0MjQxRDU3MjVCNDAwMEEzMzMy
IC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2li
bGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsK
IC8qIEVuZCBYQ0NvbmZpZ3VyYXRpb25MaXN0IHNlY3Rpb24gKi8KIAl9OwogCXJvb3RPYmplY3Qg
PSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBvYmplY3QgKi87CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jya2l0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvYnJraXRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhYTVlNTUyNzk2MDkwZWFlYmNkN2NlN2I3ZDI3
NWFhOGIzNzc1YjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jy
a2l0ZXIuaApAQCAtMCwwICsxLDY1NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
ICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgYnJraXRlci5oCisqCisqIE1vZGlmaWNh
dGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9u
CisqICAgMDIvMTgvOTcgICAgYWxpdSAgICAgICAgQWRkZWQgdHlwZWRlZiBmb3IgVGV4dENvdW50
LiAgTWFkZSBET05FIGNvbnN0LgorKiAgIDA1LzA3Lzk3ICAgIGFsaXUgICAgICAgIEZpeGVkIERM
TCBkZWNsYXJhdGlvbi4KKyogICAwNy8wOS85NyAgICBqZml0eiAgICAgICBSZW5hbWVkIEJyZWFr
SXRlcmF0b3IgYW5kIGludGVyZmFjZSBzeW5jZWQgd2l0aCBKREsKKyogICAwOC8xMS85OCAgICBo
ZWxlbmEgICAgICBTeW5jLXVwIEpESzEuMi4KKyogICAwMS8xMy8yMDAwICBoZWxlbmEgICAgICBB
ZGRlZCBVRXJyb3JDb2RlIHBhcmFtZXRlciB0byBjcmVhdGVYWFhJbnN0YW5jZSBtZXRob2RzLgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgQlJLSVRFUl9ICisjZGVmaW5l
IEJSS0lURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworLyoqCisgKiBcZmls
ZQorICogXGJyaWVmIEMrKyBBUEk6IEJyZWFrIEl0ZXJhdG9yLgorICovCisKKyNpZiBVQ09ORklH
X05PX0JSRUFLX0lURVJBVElPTgorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKgorICogQWxsb3cg
dGhlIGRlY2xhcmF0aW9uIG9mIEFQSXMgd2l0aCBwb2ludGVycyB0byBCcmVha0l0ZXJhdG9yCisg
KiBldmVuIHdoZW4gYnJlYWsgaXRlcmF0aW9uIGlzIHJlbW92ZWQgZnJvbSB0aGUgYnVpbGQuCisg
Ki8KK2NsYXNzIEJyZWFrSXRlcmF0b3I7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZWxzZQorCisj
aW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIK
KyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS9sb2NpZC5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdWJyay5oIgorI2luY2x1ZGUgInVuaWNvZGUvc3RyZW51bS5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdXRleHQuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VtaXNjLmgi
CisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogVGhlIEJyZWFrSXRlcmF0b3IgY2xhc3Mg
aW1wbGVtZW50cyBtZXRob2RzIGZvciBmaW5kaW5nIHRoZSBsb2NhdGlvbgorICogb2YgYm91bmRh
cmllcyBpbiB0ZXh0LiBCcmVha0l0ZXJhdG9yIGlzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MuCisg
KiBJbnN0YW5jZXMgb2YgQnJlYWtJdGVyYXRvciBtYWludGFpbiBhIGN1cnJlbnQgcG9zaXRpb24g
YW5kIHNjYW4gb3ZlcgorICogdGV4dCByZXR1cm5pbmcgdGhlIGluZGV4IG9mIGNoYXJhY3RlcnMg
d2hlcmUgYm91bmRhcmllcyBvY2N1ci4KKyAqIDxwPgorICogTGluZSBib3VuZGFyeSBhbmFseXNp
cyBkZXRlcm1pbmVzIHdoZXJlIGEgdGV4dCBzdHJpbmcgY2FuIGJlIGJyb2tlbgorICogd2hlbiBs
aW5lLXdyYXBwaW5nLiBUaGUgbWVjaGFuaXNtIGNvcnJlY3RseSBoYW5kbGVzIHB1bmN0dWF0aW9u
IGFuZAorICogaHlwaGVuYXRlZCB3b3Jkcy4KKyAqIDxwPgorICogU2VudGVuY2UgYm91bmRhcnkg
YW5hbHlzaXMgYWxsb3dzIHNlbGVjdGlvbiB3aXRoIGNvcnJlY3QKKyAqIGludGVycHJldGF0aW9u
IG9mIHBlcmlvZHMgd2l0aGluIG51bWJlcnMgYW5kIGFiYnJldmlhdGlvbnMsIGFuZAorICogdHJh
aWxpbmcgcHVuY3R1YXRpb24gbWFya3Mgc3VjaCBhcyBxdW90YXRpb24gbWFya3MgYW5kIHBhcmVu
dGhlc2VzLgorICogPHA+CisgKiBXb3JkIGJvdW5kYXJ5IGFuYWx5c2lzIGlzIHVzZWQgYnkgc2Vh
cmNoIGFuZCByZXBsYWNlIGZ1bmN0aW9ucywgYXMKKyAqIHdlbGwgYXMgd2l0aGluIHRleHQgZWRp
dGluZyBhcHBsaWNhdGlvbnMgdGhhdCBhbGxvdyB0aGUgdXNlciB0bworICogc2VsZWN0IHdvcmRz
IHdpdGggYSBkb3VibGUgY2xpY2suIFdvcmQgc2VsZWN0aW9uIHByb3ZpZGVzIGNvcnJlY3QKKyAq
IGludGVycHJldGF0aW9uIG9mIHB1bmN0dWF0aW9uIG1hcmtzIHdpdGhpbiBhbmQgZm9sbG93aW5n
CisgKiB3b3Jkcy4gQ2hhcmFjdGVycyB0aGF0IGFyZSBub3QgcGFydCBvZiBhIHdvcmQsIHN1Y2gg
YXMgc3ltYm9scyBvcgorICogcHVuY3R1YXRpb24gbWFya3MsIGhhdmUgd29yZC1icmVha3Mgb24g
Ym90aCBzaWRlcy4KKyAqIDxwPgorICogQ2hhcmFjdGVyIGJvdW5kYXJ5IGFuYWx5c2lzIGFsbG93
cyB1c2VycyB0byBpbnRlcmFjdCB3aXRoCisgKiBjaGFyYWN0ZXJzIGFzIHRoZXkgZXhwZWN0IHRv
LCBmb3IgZXhhbXBsZSwgd2hlbiBtb3ZpbmcgdGhlIGN1cnNvcgorICogdGhyb3VnaCBhIHRleHQg
c3RyaW5nLiBDaGFyYWN0ZXIgYm91bmRhcnkgYW5hbHlzaXMgcHJvdmlkZXMgY29ycmVjdAorICog
bmF2aWdhdGlvbiBvZiB0aHJvdWdoIGNoYXJhY3RlciBzdHJpbmdzLCByZWdhcmRsZXNzIG9mIGhv
dyB0aGUKKyAqIGNoYXJhY3RlciBpcyBzdG9yZWQuICBGb3IgZXhhbXBsZSwgYW4gYWNjZW50ZWQg
Y2hhcmFjdGVyIG1pZ2h0IGJlCisgKiBzdG9yZWQgYXMgYSBiYXNlIGNoYXJhY3RlciBhbmQgYSBk
aWFjcml0aWNhbCBtYXJrLiBXaGF0IHVzZXJzCisgKiBjb25zaWRlciB0byBiZSBhIGNoYXJhY3Rl
ciBjYW4gZGlmZmVyIGJldHdlZW4gbGFuZ3VhZ2VzLgorICogPHA+CisgKiBUaGUgdGV4dCBib3Vu
ZGFyeSBwb3NpdGlvbnMgYXJlIGZvdW5kIGFjY29yZGluZyB0byB0aGUgcnVsZXMKKyAqIGRlc2Ny
aWJlZCBpbiBVbmljb2RlIFN0YW5kYXJkIEFubmV4ICMyOSwgVGV4dCBCb3VuZGFyaWVzLCBhbmQK
KyAqIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXggIzE0LCBMaW5lIEJyZWFraW5nIFByb3BlcnRpZXMu
ICBUaGVzZQorICogYXJlIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9y
dHMvdHIxNC8gYW5kCisgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIyOS8uCisg
KiA8cD4KKyAqIEluIGFkZGl0aW9uIHRvIHRoZSBDKysgQVBJIGRlZmluZWQgaW4gdGhpcyBoZWFk
ZXIgZmlsZSwgYQorICogcGxhaW4gQyBBUEkgd2l0aCBlcXVpdmFsZW50IGZ1bmN0aW9uYWxpdHkg
aXMgZGVmaW5lZCBpbiB0aGUKKyAqIGZpbGUgdWJyay5oCisgKiA8cD4KKyAqIENvZGUgc25pcHBl
dHMgaWxsdXN0cmF0aW5nIHRoZSB1c2Ugb2YgdGhlIEJyZWFrIEl0ZXJhdG9yIEFQSXMKKyAqIGFy
ZSBhdmFpbGFibGUgaW4gdGhlIElDVSBVc2VyIEd1aWRlLAorICogaHR0cDovL2ljdS1wcm9qZWN0
Lm9yZy91c2VyZ3VpZGUvYm91bmRhcnlBbmFseXNpcy5odG1sCisgKiBhbmQgaW4gdGhlIHNhbXBs
ZSBwcm9ncmFtIGljdS9zb3VyY2Uvc2FtcGxlcy9icmVhay9icmVhay5jcHAKKyAqCisgKi8KK2Ns
YXNzIFVfQ09NTU9OX0FQSSBCcmVha0l0ZXJhdG9yIDogcHVibGljIFVPYmplY3QgeworcHVibGlj
OgorICAgIC8qKgorICAgICAqICBkZXN0cnVjdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgfkJyZWFrSXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAq
IFJldHVybiB0cnVlIGlmIGFub3RoZXIgb2JqZWN0IGlzIHNlbWFudGljYWxseSBlcXVhbCB0byB0
aGlzCisgICAgICogb25lLiBUaGUgb3RoZXIgb2JqZWN0IHNob3VsZCBiZSBhbiBpbnN0YW5jZSBv
ZiB0aGUgc2FtZSBzdWJjbGFzcyBvZgorICAgICAqIEJyZWFrSXRlcmF0b3IuIE9iamVjdHMgb2Yg
ZGlmZmVyZW50IHN1YmNsYXNzZXMgYXJlIGNvbnNpZGVyZWQKKyAgICAgKiB1bmVxdWFsLgorICAg
ICAqIDxQPgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgQnJlYWtJdGVyYXRvciBpcyBhdCB0
aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUKKyAgICAgKiBzYW1lIHRleHQsIGFuZCBpcyB0aGUgc2Ft
ZSBjbGFzcyBhbmQgdHlwZSAod29yZCwgbGluZSwgZXRjLikgb2YKKyAgICAgKiBCcmVha0l0ZXJh
dG9yLCBhcyB0aGUgYXJndW1lbnQuICBUZXh0IGlzIGNvbnNpZGVyZWQgdGhlIHNhbWUgaWYKKyAg
ICAgKiBpdCBjb250YWlucyB0aGUgc2FtZSBjaGFyYWN0ZXJzLCBpdCBuZWVkIG5vdCBiZSB0aGUg
c2FtZQorICAgICAqIG9iamVjdCwgYW5kIHN0eWxlcyBhcmUgbm90IGNvbnNpZGVyZWQuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09
KGNvbnN0IEJyZWFrSXRlcmF0b3ImKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHRoZSBjb21wbGVtZW50IG9mIHRoZSByZXN1bHQgb2Ygb3BlcmF0b3I9PQorICAgICAqIEBw
YXJhbSByaHMgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGluZXF1YWxpdHkK
KyAgICAgKiBAcmV0dXJuIHRoZSBjb21wbGVtZW50IG9mIHRoZSByZXN1bHQgb2Ygb3BlcmF0b3I9
PQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29sIG9wZXJhdG9yIT0o
Y29uc3QgQnJlYWtJdGVyYXRvciYgcmhzKSBjb25zdCB7IHJldHVybiAhb3BlcmF0b3I9PShyaHMp
OyB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBwb2x5bW9ycGhpYyBjb3B5IG9mIHRoaXMg
b2JqZWN0LiAgVGhpcyBpcyBhbiBhYnN0cmFjdAorICAgICAqIG1ldGhvZCB3aGljaCBzdWJjbGFz
c2VzIGltcGxlbWVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIEJyZWFrSXRlcmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAg
ICAqIFJldHVybiBhIHBvbHltb3JwaGljIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4gRGlmZmVy
ZW50IHN1YmNsYXNzZXMKKyAgICAgKiB3aWxsIHJldHVybiBkaXN0aW5jdCB1bmVxdWFsIHZhbHVl
cy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lE
IGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFJl
dHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBDaGFyYWN0ZXJJdGVy
YXRvciYgZ2V0VGV4dCh2b2lkKSBjb25zdCA9IDA7CisKKworICAgIC8qKgorICAgICAgKiAgR2V0
IGEgVVRleHQgZm9yIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAgKiAgVGhlIHJldHVy
bmVkIFVUZXh0IGlzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgVVRleHQgdXNlZCBpbnRlcm5hbGx5
CisgICAgICAqICBieSB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24uICBJdCBjYW4g
c2FmZWx5IGJlIHVzZWQgdG8KKyAgICAgICogIGFjY2VzcyB0aGUgdGV4dCB3aXRob3V0IGltcGFj
dGluZyBhbnkgYnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucywKKyAgICAgICogIGJ1dCB0aGUgdW5k
ZXJseWluZyB0ZXh0IGl0c2VsZiBtdXN0IG5vdCBiZSBhbHRlcmVkLgorICAgICAgKgorICAgICAg
KiBAcGFyYW0gZmlsbEluIEEgVVRleHQgdG8gYmUgZmlsbGVkIGluLiAgSWYgTlVMTCwgYSBuZXcg
VVRleHQgd2lsbCBiZQorICAgICAgKiAgICAgICAgICAgYWxsb2NhdGVkIHRvIGhvbGQgdGhlIHJl
c3VsdC4KKyAgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMuCisg
ICAgICAqIEByZXR1cm4gICBUaGUgY3VycmVudCBVVGV4dCBmb3IgdGhpcyBicmVhayBpdGVyYXRv
ci4gIElmIGFuIGlucHV0CisgICAgICAqICAgICAgICAgICBVVGV4dCB3YXMgcHJvdmlkZWQsIGl0
IHdpbGwgYWx3YXlzIGJlIHJldHVybmVkLgorICAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAg
ICovCisgICAgIHZpcnR1YWwgVVRleHQgKmdldFVUZXh0KFVUZXh0ICpmaWxsSW4sIFVFcnJvckNv
ZGUgJnN0YXR1cykgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogQ2hhbmdlIHRoZSB0ZXh0
IG92ZXIgd2hpY2ggdGhpcyBvcGVyYXRlcy4gVGhlIHRleHQgYm91bmRhcnkgaXMKKyAgICAgKiBy
ZXNldCB0byB0aGUgc3RhcnQuCisgICAgICogQHBhcmFtIHRleHQgVGhlIFVuaWNvZGVTdHJpbmcg
dXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCB2b2lkICBzZXRUZXh0KGNvbnN0IFVuaWNvZGVTdHJpbmcgJnRleHQpID0g
MDsKKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBicmVhayBpdGVyYXRvciB0byBvcGVyYXRl
IG92ZXIgdGhlIHRleHQgcmVwcmVzZW50ZWQgYnkKKyAgICAgKiB0aGUgVVRleHQuICBUaGUgaXRl
cmF0b3IgcG9zaXRpb24gaXMgcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqCisgICAgICogVGhp
cyBmdW5jdGlvbiBtYWtlcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIHN1cHBsaWVkIFVUZXh0LiAg
VGhpcyBtZWFucworICAgICAqIHRoYXQgdGhlIGNhbGxlciBpcyBmcmVlIHRvIGltbWVkaWF0ZWx5
IGNsb3NlIG9yIG90aGVyd2lzZSByZXVzZSB0aGUKKyAgICAgKiBVdGV4dCB0aGF0IHdhcyBwYXNz
ZWQgYXMgYSBwYXJhbWV0ZXIsIGJ1dCB0aGF0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmCisg
ICAgICogbXVzdCBub3QgYmUgYWx0ZXJlZCB3aGlsZSBiZWluZyByZWZlcmVuY2VkIGJ5IHRoZSBi
cmVhayBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIEFsbCBpbmRleCBwb3NpdGlvbnMgcmV0dXJu
ZWQgYnkgYnJlYWsgaXRlcmF0b3IgZnVuY3Rpb25zIGFyZQorICAgICAqIG5hdGl2ZSBpbmRpY2Vz
IGZyb20gdGhlIFVUZXh0LiBGb3IgZXhhbXBsZSwgd2hlbiBicmVha2luZyBVVEYtOAorICAgICAq
IGVuY29kZWQgdGV4dCwgdGhlIGJyZWFrIHBvc2l0aW9ucyByZXR1cm5lZCBieSBuZXh0KCksIHBy
ZXZpb3VzKCksIGV0Yy4KKyAgICAgKiB3aWxsIGJlIFVURi04IHN0cmluZyBpbmRpY2VzLCBub3Qg
VVRGLTE2IHBvc2l0aW9ucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBVVGV4dCB1
c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFu
eSBlcnJvciBjb2Rlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIHZvaWQgIHNldFRleHQoVVRleHQgKnRleHQsIFVFcnJvckNvZGUgJnN0YXR1cykgPSAwOwor
CisgICAgLyoqCisgICAgICogQ2hhbmdlIHRoZSB0ZXh0IG92ZXIgd2hpY2ggdGhpcyBvcGVyYXRl
cy4gVGhlIHRleHQgYm91bmRhcnkgaXMKKyAgICAgKiByZXNldCB0byB0aGUgc3RhcnQuCisgICAg
ICogTm90ZSB0aGF0IHNldFRleHQoVVRleHQgKikgcHJvdmlkZXMgc2ltaWxhciBmdW5jdGlvbmFs
aXR5IHRvIHRoaXMgZnVuY3Rpb24sCisgICAgICogYW5kIGlzIG1vcmUgZWZmaWNpZW50LgorICAg
ICAqIEBwYXJhbSBpdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgdXNlZCB0byBjaGFuZ2UgdGhlIHRl
eHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBh
ZG9wdFRleHQoQ2hhcmFjdGVySXRlcmF0b3IqIGl0KSA9IDA7CisKKyAgICBlbnVtIHsKKyAgICAg
ICAgLyoqCisgICAgICAgICAqIERPTkUgaXMgcmV0dXJuZWQgYnkgcHJldmlvdXMoKSBhbmQgbmV4
dCgpIGFmdGVyIGFsbCB2YWxpZAorICAgICAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1
cm5lZC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBE
T05FID0gKGludDMyX3QpLTEKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3Vy
cmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgcG9z
aXRpb24gemVyby4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZzZXQgb2YgdGhlIGJlZ2lubmluZyBv
ZiB0aGUgdGV4dCwgemVyby4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgZmlyc3Qodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRo
ZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgaW5kZXggaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBs
YXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCBiZWluZyBzY2FubmVkLgorICAgICAqIEByZXR1cm4g
VGhlIGluZGV4IGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRl
eHQgYmVpbmcgc2Nhbm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgbGFzdCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhl
IGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIGN1cnJlbnQg
Ym91bmRhcnkuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBwcmV2
aW91cyB0ZXh0IGJvdW5kYXJ5IG9yIERPTkUgaWYgYWxsCisgICAgICogYm91bmRhcmllcyBoYXZl
IGJlZW4gcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBpbnQzMl90IHByZXZpb3VzKHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIEFkdmFu
Y2UgdGhlIGl0ZXJhdG9yIHRvIHRoZSBib3VuZGFyeSBmb2xsb3dpbmcgdGhlIGN1cnJlbnQgYm91
bmRhcnkuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBuZXh0IHRl
eHQgYm91bmRhcnkgb3IgRE9ORSBpZiBhbGwKKyAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiBy
ZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGlu
dDMyX3QgbmV4dCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gY2hhcmFjdGVy
IGluZGV4IG9mIHRoZSBjdXJyZW50IGludGVyYXRvciBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQu
CisgICAgICogQHJldHVybiBUaGUgYm91bmRhcnkgbW9zdCByZWNlbnRseSByZXR1cm5lZC4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgY3VycmVu
dCh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlIHRoZSBpdGVyYXRv
ciB0byB0aGUgZmlyc3QgYm91bmRhcnkgZm9sbG93aW5nIHRoZSBzcGVjaWZpZWQgb2Zmc2V0Lgor
ICAgICAqIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhbHdheXMgZ3JlYXRlciB0aGFuIHRoZSBvZmZz
ZXQgb3IKKyAgICAgKiB0aGUgdmFsdWUgQnJlYWtJdGVyYXRvci5ET05FCisgICAgICogQHBhcmFt
IG9mZnNldCB0aGUgb2Zmc2V0IHRvIGJlZ2luIHNjYW5uaW5nLgorICAgICAqIEByZXR1cm4gVGhl
IGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmb2xsb3dpbmcoaW50MzJf
dCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRp
b24gdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHByZWNlZGluZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4K
KyAgICAgKiBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgYWx3YXlzIHNtYWxsZXIgdGhhbiB0aGUgb2Zm
c2V0IG9yCisgICAgICogdGhlIHZhbHVlIEJyZWFrSXRlcmF0b3IuRE9ORQorICAgICAqIEBwYXJh
bSBvZmZzZXQgdGhlIG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KKyAgICAgKiBAcmV0dXJuIFRo
ZSBmaXJzdCBib3VuZGFyeSBiZWZvcmUgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHByZWNlZGluZyhpbnQz
Ml90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHNw
ZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogQXMgYSBzaWRl
IGVmZmVjdCwgdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdG9yIGlzIHNldAorICAg
ICAqIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBhdCBvciBmb2xsb3dpbmcgdGhlIHNw
ZWNpZmllZCBvZmZzZXQuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNr
LgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9u
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNC
b3VuZGFyeShpbnQzMl90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBp
dGVyYXRvciBwb3NpdGlvbiB0byB0aGUgbnRoIGJvdW5kYXJ5IGZyb20gdGhlIGN1cnJlbnQgYm91
bmRhcnkKKyAgICAgKiBAcGFyYW0gbiB0aGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgdG8gbW92ZSBi
eS4gIEEgdmFsdWUgb2YgMAorICAgICAqIGRvZXMgbm90aGluZy4gIE5lZ2F0aXZlIHZhbHVlcyBt
b3ZlIHRvIHByZXZpb3VzIGJvdW5kYXJpZXMKKyAgICAgKiBhbmQgcG9zaXRpdmUgdmFsdWVzIG1v
dmUgdG8gbGF0ZXIgYm91bmRhcmllcy4KKyAgICAgKiBAcmV0dXJuIFRoZSBuZXcgaXRlcmF0b3Ig
cG9zaXRpb24sIG9yCisgICAgICogRE9ORSBpZiB0aGVyZSBhcmUgZmV3ZXIgdGhhbiB8bnwgYm91
bmRhcmllcyBpbiB0aGUgc3BlY2ZpZWQgZGlyZWN0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KGludDMyX3QgbikgPSAwOworCisg
ICAvKioKKyAgICAgKiBGb3IgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcnMsIHJldHVybiB0aGUgc3Rh
dHVzIHRhZyBmcm9tIHRoZSAKKyAgICAgKiBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUg
bW9zdCByZWNlbnRseQorICAgICAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIDxw
PgorICAgICAqIEZvciBicmVhayBpdGVyYXRvciB0eXBlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IGEg
cnVsZSBzdGF0dXMsCisgICAgICogYSBkZWZhdWx0IHZhbHVlIG9mIDAgaXMgcmV0dXJuZWQuCisg
ICAgICogPHA+CisgICAgICogQHJldHVybiB0aGUgc3RhdHVzIGZyb20gdGhlIGJyZWFrIHJ1bGUg
dGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogICAgICAgICByZXR1cm5l
ZCBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAc2VlIFJ1bGVCYXNlQnJlYWtJdGVyYXRvcjo6Z2V0
UnVsZVN0YXR1cygpCisgICAgICogQHNlZSBVV29yZEJyZWFrCisgICAgICogQHN0YWJsZSBJQ1Ug
NTIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1cygpIGNvbnN0Owor
CisgICAvKioKKyAgICAqIEZvciBSdWxlQmFzZWRCcmVha0l0ZXJhdG9ycywgZ2V0IHRoZSBzdGF0
dXMgKHRhZykgdmFsdWVzIGZyb20gdGhlIGJyZWFrIHJ1bGUocykgCisgICAgKiB0aGF0IGRldGVy
bWluZWQgdGhlIG1vc3QgcmVjZW50bHkgcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgKiA8
cD4KKyAgICAqIEZvciBicmVhayBpdGVyYXRvciB0eXBlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IHJ1
bGUgc3RhdHVzLAorICAgICogbm8gdmFsdWVzIGFyZSByZXR1cm5lZC4KKyAgICAqIDxwPgorICAg
ICogVGhlIHJldHVybmVkIHN0YXR1cyB2YWx1ZShzKSBhcmUgc3RvcmVkIGludG8gYW4gYXJyYXkg
cHJvdmlkZWQgYnkgdGhlIGNhbGxlci4KKyAgICAqIFRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiBz
b3J0ZWQgKGFzY2VuZGluZykgb3JkZXIuCisgICAgKiBJZiB0aGUgY2FwYWNpdHkgb2YgdGhlIG91
dHB1dCBhcnJheSBpcyBpbnN1ZmZpY2llbnQgdG8gaG9sZCB0aGUgZGF0YSwKKyAgICAqICB0aGUg
b3V0cHV0IHdpbGwgYmUgdHJ1bmNhdGVkIHRvIHRoZSBhdmFpbGFibGUgbGVuZ3RoLCBhbmQgYQor
ICAgICogIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SIHdpbGwgYmUgc2lnbmFsZWQuCisgICAgKiA8
cD4KKyAgICAqIEBzZWUgUnVsZUJhc2VCcmVha0l0ZXJhdG9yOjpnZXRSdWxlU3RhdHVzVmVjCisg
ICAgKgorICAgICogQHBhcmFtIGZpbGxJblZlYyBhbiBhcnJheSB0byBiZSBmaWxsZWQgaW4gd2l0
aCB0aGUgc3RhdHVzIHZhbHVlcy4KKyAgICAqIEBwYXJhbSBjYXBhY2l0eSAgdGhlIGxlbmd0aCBv
ZiB0aGUgc3VwcGxpZWQgdmVjdG9yLiAgQSBsZW5ndGggb2YgemVybyBjYXVzZXMKKyAgICAqICAg
ICAgICAgICAgICAgICAgdGhlIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXR1
cyB2YWx1ZXMsIGluIHRoZQorICAgICogICAgICAgICAgICAgICAgICBub3JtYWwgd2F5LCB3aXRo
b3V0IGF0dGVtdHBpbmcgdG8gc3RvcmUgYW55IHZhbHVlcy4KKyAgICAqIEBwYXJhbSBzdGF0dXMg
ICAgcmVjZWl2ZXMgZXJyb3IgY29kZXMuCisgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBudW1i
ZXIgb2YgcnVsZSBzdGF0dXMgdmFsdWVzIGZyb20gcnVsZXMgdGhhdCBkZXRlcm1pbmVkCisgICAg
KiAgICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJlY2VudCBib3VuZGFyeSByZXR1cm5lZCBieSB0
aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgKiAgICAgICAgICAgICAgICAgIEluIHRoZSBldmVudCBv
ZiBhIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SLCB0aGUgcmV0dXJuIHZhbHVlCisgICAgKiAgICAg
ICAgICAgICAgICAgIGlzIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcyB0aGF0IHdl
cmUgYXZhaWxhYmxlLAorICAgICogICAgICAgICAgICAgICAgICBub3QgdGhlIHJlZHVjZWQgbnVt
YmVyIHRoYXQgd2VyZSBhY3R1YWxseSByZXR1cm5lZC4KKyAgICAqIEBzZWUgZ2V0UnVsZVN0YXR1
cworICAgICogQHN0YWJsZSBJQ1UgNTIKKyAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRS
dWxlU3RhdHVzVmVjKGludDMyX3QgKmZpbGxJblZlYywgaW50MzJfdCBjYXBhY2l0eSwgVUVycm9y
Q29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZv
ciB3b3JkLWJyZWFrcyB1c2luZyB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIFJldHVybnMgYW4g
aW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyB3b3JkIGJyZWFrcy4KKyAg
ICAgKiBXb3JkQnJlYWsgaXMgdXNlZnVsIGZvciB3b3JkIHNlbGVjdGlvbiAoZXguIGRvdWJsZSBj
bGljaykKKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3Rh
dHVzIHRoZSBlcnJvciBjb2RlCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHdv
cmQtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1
c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8g
Y2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91
bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lz
aCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGlu
Zm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgor
ICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFj
ayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1
ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1
c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQg
bG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2Fs
ZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5k
LgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNw
b25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZVdvcmRJbnN0
YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoq
CisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIGxpbmUtYnJlYWtzIHVzaW5nIHNwZWNp
ZmllZCBsb2NhbGUuCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0
b3IgaW1wbGVtZW50aW5nIGxpbmUgYnJlYWtzLiBMaW5lCisgICAgICogYnJlYWtzIGFyZSBsb2dp
Y2FsbHkgcG9zc2libGUgbGluZSBicmVha3MsIGFjdHVhbCBsaW5lIGJyZWFrcyBhcmUKKyAgICAg
KiB1c3VhbGx5IGRldGVybWluZWQgYmFzZWQgb24gZGlzcGxheSB3aWR0aC4KKyAgICAgKiBMaW5l
QnJlYWsgaXMgdXNlZnVsIGZvciB3b3JkIHdyYXBwaW5nIHRleHQuCisgICAgICogQHBhcmFtIHdo
ZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAg
ICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3IgbGluZS1icmVha3MuICBUaGUgVUVycm9y
Q29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBp
bmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25z
dHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2
YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3Jt
YXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1
bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFD
S19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZv
cgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2Fz
IGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRf
V0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAg
KiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwg
YmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBv
d25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBp
dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVy
YXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlTGluZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hl
cmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJ
dGVyYXRvciBmb3IgY2hhcmFjdGVyLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxlCisgICAg
ICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIGNo
YXJhY3RlciBicmVha3MuCisgICAgICogQ2hhcmFjdGVyIGJyZWFrcyBhcmUgYm91bmRhcmllcyBv
ZiBjb21iaW5pbmcgY2hhcmFjdGVyIHNlcXVlbmNlcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhl
IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEBy
ZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciBjaGFyYWN0ZXItYnJlYWtzLiAgVGhlIFVFcnJvckNv
ZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5m
b3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3Ry
dWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFs
dWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0
aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0
cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tf
V0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IK
KyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBm
b3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dB
Uk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICog
dXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJh
Y2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3du
cyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0
b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZUNoYXJhY3Rlckluc3RhbmNlKGNvbnN0IExvY2FsZSYg
d2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJl
YWtJdGVyYXRvciBmb3Igc2VudGVuY2UtYnJlYWtzIHVzaW5nIHNwZWNpZmllZCBsb2NhbGUKKyAg
ICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcg
c2VudGVuY2UgYnJlYWtzLgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAq
IEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRl
cmF0b3IgZm9yIHNlbnRlbmNlLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAg
KiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1
c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQg
b3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhl
cnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICog
Y2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5k
aWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVz
IHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwg
J2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdk
ZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0
aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhl
IHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAg
KiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9i
amVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAg
ICBjcmVhdGVTZW50ZW5jZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUm
IHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3IgdGl0
bGUtY2FzaW5nIGJyZWFrcyB1c2luZyB0aGUgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVy
bnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyB0aXRsZSBicmVh
a3MuCisgICAgICogVGhlIGl0ZXJhdG9yIHJldHVybmVkIGxvY2F0ZXMgdGl0bGUgYm91bmRhcmll
cyBhcyBkZXNjcmliZWQgZm9yCisgICAgICogVW5pY29kZSAzLjIgb25seS4gRm9yIFVuaWNvZGUg
NC4wIGFuZCBhYm92ZSB0aXRsZSBib3VuZGFyeSBpdGVyYXRpb24sCisgICAgICogcGxlYXNlIHVz
ZSBXb3JkIEJvdW5kYXJ5IGl0ZXJhdG9yLntAbGluayAjY3JlYXRlV29yZEluc3RhbmNlIH0KKyAg
ICAgKgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0
dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHRp
dGxlLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMg
dXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRv
IGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hv
dWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdp
c2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBp
bmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4K
KyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJh
Y2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVx
dWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICog
dXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0
IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2Nh
bGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3Vu
ZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVz
cG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAq
LworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVUaXRsZUlu
c3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAv
KioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBMb2NhbGVzIGZvciB3aGljaCBUZXh0Qm91bmRhcmll
cyBhcmUgaW5zdGFsbGVkLgorICAgICAqIDxwPjxiPk5vdGU6PC9iPiB0aGlzIHdpbGwgbm90IHJl
dHVybiBsb2NhbGVzIGFkZGVkIHRocm91Z2ggdGhlIHJlZ2lzdGVyCisgICAgICogY2FsbC4gVG8g
c2VlIHRoZSByZWdpc3RlcmVkIGxvY2FsZXMgdG9vLCB1c2UgdGhlIGdldEF2YWlsYWJsZUxvY2Fs
ZXMKKyAgICAgKiBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBTdHJpbmdFbnVtZXJhdGlvbiBvYmpl
Y3QgPC9wPgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgb3V0cHV0IHBhcmFtZXRlciBvZiBudW1i
ZXIgb2YgZWxlbWVudHMgaW4gdGhlIGxvY2FsZSBsaXN0CisgICAgICogQHJldHVybiBhdmFpbGFi
bGUgbG9jYWxlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUqIFVfRVhQT1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIGNvdW50
KTsKKworICAgIC8qKgorICAgICAqIEdldCBuYW1lIG9mIHRoZSBvYmplY3QgZm9yIHRoZSBkZXNp
cmVkIExvY2FsZSwgaW4gdGhlIGRlc2lyZWQgbGFuZ2F1Z2UuCisgICAgICogQHBhcmFtIG9iamVj
dExvY2FsZSBtdXN0IGJlIGZyb20gZ2V0QXZhaWxhYmxlTG9jYWxlcy4KKyAgICAgKiBAcGFyYW0g
ZGlzcGxheUxvY2FsZSBzcGVjaWZpZXMgdGhlIGRlc2lyZWQgbG9jYWxlIGZvciBvdXRwdXQuCisg
ICAgICogQHBhcmFtIG5hbWUgdGhlIGZpbGwtaW4gcGFyYW1ldGVyIG9mIHRoZSByZXR1cm4gdmFs
dWUKKyAgICAgKiBVc2VzIGJlc3QgbWF0Y2guCisgICAgICogQHJldHVybiB1c2VyLWRpc3BsYXlh
YmxlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgVW5p
Y29kZVN0cmluZyYgVV9FWFBPUlQyIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgb2JqZWN0
TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBM
b2NhbGUmIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVuaWNvZGVTdHJpbmcmIG5hbWUpOworCisgICAgLyoqCisgICAgICogR2V0IG5hbWUg
b2YgdGhlIG9iamVjdCBmb3IgdGhlIGRlc2lyZWQgTG9jYWxlLCBpbiB0aGUgbGFuZ2F1Z2Ugb2Yg
dGhlCisgICAgICogZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSBt
dXN0IGJlIGZyb20gZ2V0TWF0Y2hpbmdMb2NhbGVzCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGZp
bGwtaW4gcGFyYW1ldGVyIG9mIHRoZSByZXR1cm4gdmFsdWUKKyAgICAgKiBAcmV0dXJuIHVzZXIt
ZGlzcGxheWFibGUgbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0
YXRpYyBVbmljb2RlU3RyaW5nJiBVX0VYUE9SVDIgZ2V0RGlzcGxheU5hbWUoY29uc3QgTG9jYWxl
JiBvYmplY3RMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVuaWNvZGVTdHJpbmcmIG5hbWUpOworCisgICAgLyoqCisgICAgICogRGVwcmVjYXRlZCBmdW5j
dGlvbmFsaXR5LiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisgICAgICogVGhyZWFkIHNh
ZmUgY2xpZW50LWJ1ZmZlci1iYXNlZCBjbG9uaW5nIG9wZXJhdGlvbgorICAgICAqICAgIERvIE5P
VCBjYWxsIGRlbGV0ZSBvbiBhIHNhZmVjbG9uZSwgc2luY2UgJ25ldycgaXMgbm90IHVzZWQgdG8g
Y3JlYXRlIGl0LgorICAgICAqIEBwYXJhbSBzdGFja0J1ZmZlciB1c2VyIGFsbG9jYXRlZCBzcGFj
ZSBmb3IgdGhlIG5ldyBjbG9uZS4gSWYgTlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVk
LgorICAgICAqIElmIGJ1ZmZlciBpcyBub3QgbGFyZ2UgZW5vdWdoLCBuZXcgbWVtb3J5IHdpbGwg
YmUgYWxsb2NhdGVkLgorICAgICAqIEBwYXJhbSBCdWZmZXJTaXplIHJlZmVyZW5jZSB0byBzaXpl
IG9mIGFsbG9jYXRlZCBzcGFjZS4KKyAgICAgKiBJZiBCdWZmZXJTaXplID09IDAsIGEgc3VmZmlj
aWVudCBzaXplIGZvciB1c2UgaW4gY2xvbmluZyB3aWxsCisgICAgICogYmUgcmV0dXJuZWQgKCdw
cmUtZmxpZ2h0aW5nJykKKyAgICAgKiBJZiBCdWZmZXJTaXplIGlzIG5vdCBlbm91Z2ggZm9yIGEg
c3RhY2stYmFzZWQgc2FmZSBjbG9uZSwKKyAgICAgKiBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2Nh
dGVkLgorICAgICAqIEBwYXJhbSBzdGF0dXMgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgb3BlcmF0
aW9uIHdlbnQgb24gc21vb3RobHkgb3IgdGhlcmUgd2VyZSBlcnJvcnMKKyAgICAgKiAgQW4gaW5m
b3JtYXRpb25hbCBzdGF0dXMgdmFsdWUsIFVfU0FGRUNMT05FX0FMTE9DQVRFRF9FUlJPUiwgaXMg
dXNlZCBpZiBhbnkgYWxsb2NhdGlvbnMgd2VyZQorICAgICAqICBuZWNlc3NhcnkuCisgICAgICog
QHJldHVybiBwb2ludGVyIHRvIHRoZSBuZXcgY2xvbmUKKyAgICAgKgorICAgICAqIEBkZXByZWNh
dGVkIElDVSA1Mi4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJy
ZWFrSXRlcmF0b3IgKiAgY3JlYXRlQnVmZmVyQ2xvbmUodm9pZCAqc3RhY2tCdWZmZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgJkJ1ZmZl
clNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVF
cnJvckNvZGUgJnN0YXR1cykgPSAwOworCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQor
CisgICAgLyoqCisgICAgICogICBEZXRlcm1pbmUgd2hldGhlciB0aGUgQnJlYWtJdGVyYXRvciB3
YXMgY3JlYXRlZCBpbiB1c2VyIG1lbW9yeSBieQorICAgICAqICAgY3JlYXRlQnVmZmVyQ2xvbmUo
KSwgYW5kIHRodXMgc2hvdWxkIG5vdCBiZSBkZWxldGVkLiAgU3VjaCBvYmplY3RzCisgICAgICog
ICBtdXN0IGJlIGNsb3NlZCBieSBhbiBleHBsaWNpdCBjYWxsIHRvIHRoZSBkZXN0cnVjdG9yIChu
b3QgZGVsZXRlKS4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIEFsd2F5cyBkZWxldGUgdGhl
IEJyZWFrSXRlcmF0b3IuCisgICAgICovCisgICAgaW5saW5lIFVCb29sIGlzQnVmZmVyQ2xvbmUo
dm9pZCk7CisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KKworI2lmICFVQ09O
RklHX05PX1NFUlZJQ0UKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIG5ldyBicmVhayBpdGVy
YXRvciBvZiB0aGUgaW5kaWNhdGVkIGtpbmQsIHRvIHVzZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlLgor
ICAgICAqIFRoZSBicmVhayBpdGVyYXRvciB3aWxsIGJlIGFkb3B0ZWQuICBDbG9uZXMgb2YgdGhl
IGl0ZXJhdG9yIHdpbGwgYmUgcmV0dXJuZWQKKyAgICAgKiBpZiBhIHJlcXVlc3QgZm9yIGEgYnJl
YWsgaXRlcmF0b3Igb2YgdGhlIGdpdmVuIGtpbmQgbWF0Y2hlcyBvciBmYWxscyBiYWNrIHRvCisg
ICAgICogdGhpcyBsb2NhbGUuCisgICAgICogQmVjYXVzZSBJQ1UgbWF5IGNob29zZSB0byBjYWNo
ZSBCcmVha0l0ZXJhdG9ycyBpbnRlcm5hbGx5LCB0aGlzIG11c3QKKyAgICAgKiBiZSBjYWxsZWQg
YXQgYXBwbGljYXRpb24gc3RhcnR1cCwgcHJpb3IgdG8gYW55IGNhbGxzIHRvCisgICAgICogQnJl
YWtJdGVyYXRvcjo6Y3JlYXRlWFhYSW5zdGFuY2UgdG8gYXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9y
LgorICAgICAqIEBwYXJhbSB0b0Fkb3B0IHRoZSBCcmVha0l0ZXJhdG9yIGluc3RhbmNlIHRvIGJl
IGFkb3B0ZWQKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBMb2NhbGUgZm9yIHdoaWNoIHRoaXMg
aW5zdGFuY2UgaXMgdG8gYmUgcmVnaXN0ZXJlZAorICAgICAqIEBwYXJhbSBraW5kIHRoZSB0eXBl
IG9mIGl0ZXJhdG9yIGZvciB3aGljaCB0aGlzIGluc3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQK
KyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBpbi9vdXQgc3RhdHVzIGNvZGUsIG5vIHNwZWNpYWwg
bWVhbmluZ3MgYXJlIGFzc2lnbmVkCisgICAgICogQHJldHVybiBhIHJlZ2lzdHJ5IGtleSB0aGF0
IGNhbiBiZSB1c2VkIHRvIHVucmVnaXN0ZXIgdGhpcyBpbnN0YW5jZQorICAgICAqIEBzdGFibGUg
SUNVIDIuNAorICAgICAqLworICAgIHN0YXRpYyBVUmVnaXN0cnlLZXkgVV9FWFBPUlQyIHJlZ2lz
dGVySW5zdGFuY2UoQnJlYWtJdGVyYXRvciogdG9BZG9wdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBMb2NhbGUmIGxvY2FsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVQnJlYWtJdGVyYXRvclR5cGUga2luZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlJiBzdGF0dXMpOwor
CisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciBhIHByZXZpb3VzbHktcmVnaXN0ZXJlZCBCcmVh
a0l0ZXJhdG9yIHVzaW5nIHRoZSBrZXkgcmV0dXJuZWQgZnJvbSB0aGUKKyAgICAgKiByZWdpc3Rl
ciBjYWxsLiAgS2V5IGJlY29tZXMgaW52YWxpZCBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCBhbmQg
c2hvdWxkIG5vdCBiZSB1c2VkIGFnYWluLgorICAgICAqIFRoZSBCcmVha0l0ZXJhdG9yIGNvcnJl
c3BvbmRpbmcgdG8gdGhlIGtleSB3aWxsIGJlIGRlbGV0ZWQuCisgICAgICogQmVjYXVzZSBJQ1Ug
bWF5IGNob29zZSB0byBjYWNoZSBCcmVha0l0ZXJhdG9ycyBpbnRlcm5hbGx5LCB0aGlzIHNob3Vs
ZAorICAgICAqIGJlIGNhbGxlZCBkdXJpbmcgYXBwbGljYXRpb24gc2h1dGRvd24sIGFmdGVyIGFs
bCBjYWxscyB0bworICAgICAqIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZVhYWEluc3RhbmNlIHRvIGF2
b2lkIHVuZGVmaW5lZCBiZWhhdmlvci4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSByZWdpc3RyeSBr
ZXkgcmV0dXJuZWQgYnkgYSBwcmV2aW91cyBjYWxsIHRvIHJlZ2lzdGVySW5zdGFuY2UKKyAgICAg
KiBAcGFyYW0gc3RhdHVzIHRoZSBpbi9vdXQgc3RhdHVzIGNvZGUsIG5vIHNwZWNpYWwgbWVhbmlu
Z3MgYXJlIGFzc2lnbmVkCisgICAgICogQHJldHVybiBUUlVFIGlmIHRoZSBpdGVyYXRvciBmb3Ig
dGhlIGtleSB3YXMgc3VjY2Vzc2Z1bGx5IHVucmVnaXN0ZXJlZAorICAgICAqIEBzdGFibGUgSUNV
IDIuNAorICAgICAqLworICAgIHN0YXRpYyBVQm9vbCBVX0VYUE9SVDIgdW5yZWdpc3RlcihVUmVn
aXN0cnlLZXkga2V5LCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogUmV0
dXJuIGEgU3RyaW5nRW51bWVyYXRpb24gb3ZlciB0aGUgbG9jYWxlcyBhdmFpbGFibGUgYXQgdGhl
IHRpbWUgb2YgdGhlIGNhbGwsCisgICAgICogaW5jbHVkaW5nIHJlZ2lzdGVyZWQgbG9jYWxlcy4K
KyAgICAgKiBAcmV0dXJuIGEgU3RyaW5nRW51bWVyYXRpb24gb3ZlciB0aGUgbG9jYWxlcyBhdmFp
bGFibGUgYXQgdGhlIHRpbWUgb2YgdGhlIGNhbGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAg
ICAgKi8KKyAgICBzdGF0aWMgU3RyaW5nRW51bWVyYXRpb24qIFVfRVhQT1JUMiBnZXRBdmFpbGFi
bGVMb2NhbGVzKHZvaWQpOworI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBs
b2NhbGUgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuIFR3byBmbGF2b3JzIGFyZSBhdmFpbGFibGU6
IHZhbGlkIGFuZAorICAgICAqIGFjdHVhbCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44
CisgICAgICovCisgICAgTG9jYWxlIGdldExvY2FsZShVTG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwg
VUVycm9yQ29kZSYgc3RhdHVzKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJ
CisgICAgLyoqIEdldCB0aGUgbG9jYWxlIGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yIG9iamVjdC4g
WW91IGNhbiBjaG9vc2UgYmV0d2VlbiB2YWxpZCBhbmQgYWN0dWFsIGxvY2FsZS4KKyAgICAgKiAg
QHBhcmFtIHR5cGUgdHlwZSBvZiB0aGUgbG9jYWxlIHdlJ3JlIGxvb2tpbmcgZm9yICh2YWxpZCBv
ciBhY3R1YWwpCisgICAgICogIEBwYXJhbSBzdGF0dXMgZXJyb3IgY29kZSBmb3IgdGhlIG9wZXJh
dGlvbgorICAgICAqICBAcmV0dXJuIHRoZSBsb2NhbGUKKyAgICAgKiAgQGludGVybmFsCisgICAg
ICovCisgICAgY29uc3QgY2hhciAqZ2V0TG9jYWxlSUQoVUxvY0RhdGFMb2NhbGVUeXBlIHR5cGUs
IFVFcnJvckNvZGUmIHN0YXR1cykgY29uc3Q7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9B
UEkgKi8KKworICAgIC8qKgorICAgICAqICBTZXQgdGhlIHN1YmplY3QgdGV4dCBzdHJpbmcgdXBv
biB3aGljaCB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nCisgICAgICogIHdpdGhvdXQg
Y2hhbmdpbmcgYW55IG90aGVyIGFzcGVjdCBvZiB0aGUgbWF0Y2hpbmcgc3RhdGUuCisgICAgICog
IFRoZSBuZXcgYW5kIHByZXZpb3VzIHRleHQgc3RyaW5ncyBtdXN0IGhhdmUgdGhlIHNhbWUgY29u
dGVudC4KKyAgICAgKgorICAgICAqICBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2Ug
aW4gZW52aXJvbm1lbnRzIHdoZXJlIElDVSBpcyBvcGVyYXRpbmcgb24KKyAgICAgKiAgc3RyaW5n
cyB0aGF0IG1heSBtb3ZlIGFyb3VuZCBpbiBtZW1vcnkuICBJdCBwcm92aWRlcyBhIG1lY2hhbmlz
bSBmb3Igbm90aWZ5aW5nCisgICAgICogIElDVSB0aGF0IHRoZSBzdHJpbmcgaGFzIGJlZW4gcmVs
b2NhdGVkLCBhbmQgcHJvdmlkaW5nIGEgbmV3IFVUZXh0IHRvIGFjY2VzcyB0aGUKKyAgICAgKiAg
c3RyaW5nIGluIGl0cyBuZXcgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiAgTm90ZSB0aGF0IHRo
ZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbiBuZXZlciBjb3BpZXMgdGhlIHVuZGVybHlp
bmcgdGV4dAorICAgICAqICBvZiBhIHN0cmluZyBiZWluZyBwcm9jZXNzZWQsIGJ1dCBhbHdheXMg
b3BlcmF0ZXMgZGlyZWN0bHkgb24gdGhlIG9yaWdpbmFsIHRleHQKKyAgICAgKiAgcHJvdmlkZWQg
YnkgdGhlIHVzZXIuIFJlZnJlc2hpbmcgc2ltcGx5IGRyb3BzIHRoZSByZWZlcmVuY2VzIHRvIHRo
ZSBvbGQgdGV4dAorICAgICAqICBhbmQgcmVwbGFjZXMgdGhlbSB3aXRoIHJlZmVyZW5jZXMgdG8g
dGhlIG5ldy4KKyAgICAgKgorICAgICAqICBDYXV0aW9uOiAgdGhpcyBmdW5jdGlvbiBpcyBub3Jt
YWxseSB1c2VkIG9ubHkgYnkgdmVyeSBzcGVjaWFsaXplZCwKKyAgICAgKiAgc3lzdGVtLWxldmVs
IGNvZGUuICBPbmUgZXhhbXBsZSB1c2UgY2FzZSBpcyB3aXRoIGdhcmJhZ2UgY29sbGVjdGlvbiB0
aGF0IG1vdmVzCisgICAgICogIHRoZSB0ZXh0IGluIG1lbW9yeS4KKyAgICAgKgorICAgICAqIEBw
YXJhbSBpbnB1dCAgICAgIFRoZSBuZXcgKG1vdmVkKSB0ZXh0IHN0cmluZy4KKyAgICAgKiBAcGFy
YW0gc3RhdHVzICAgICBSZWNlaXZlcyBlcnJvcnMgZGV0ZWN0ZWQgYnkgdGhpcyBmdW5jdGlvbi4K
KyAgICAgKiBAcmV0dXJuICAgICAgICAgICAqdGhpcworICAgICAqCisgICAgICogQHN0YWJsZSBJ
Q1UgNDkKKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IgJnJlZnJlc2hJbnB1dFRl
eHQoVVRleHQgKmlucHV0LCBVRXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKworIHByaXZhdGU6Cisg
ICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIGJ1aWxkSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2Ms
IGNvbnN0IGNoYXIgKnR5cGUsIGludDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKyAg
ICBzdGF0aWMgQnJlYWtJdGVyYXRvciogY3JlYXRlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2Ms
IGludDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKyAgICBzdGF0aWMgQnJlYWtJdGVy
YXRvciogbWFrZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBpbnQzMl90IGtpbmQsIFVFcnJv
ckNvZGUmIHN0YXR1cyk7CisKKyAgICBmcmllbmQgY2xhc3MgSUNVQnJlYWtJdGVyYXRvckZhY3Rv
cnk7CisgICAgZnJpZW5kIGNsYXNzIElDVUJyZWFrSXRlcmF0b3JTZXJ2aWNlOworCitwcm90ZWN0
ZWQ6CisgICAgLy8gRG8gbm90IGVuY2xvc2UgcHJvdGVjdGVkIGRlZmF1bHQvY29weSBjb25zdHJ1
Y3RvcnMgd2l0aCAjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvLyBvciBlbHNlIHRo
ZSBjb21waWxlciB3aWxsIGNyZWF0ZSBhIHB1YmxpYyBvbmVzLgorICAgIC8qKiBAaW50ZXJuYWwg
Ki8KKyAgICBCcmVha0l0ZXJhdG9yKCk7CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFr
SXRlcmF0b3IgKGNvbnN0IEJyZWFrSXRlcmF0b3IgJm90aGVyKSA6IFVPYmplY3Qob3RoZXIpIHt9
CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFrSXRlcmF0b3IgKGNvbnN0IExvY2FsZSYg
dmFsaWQsIGNvbnN0IExvY2FsZSYgYWN0dWFsKTsKK3ByaXZhdGU6CisKKyAgICAvKiogQGludGVy
bmFsICovCisgICAgY2hhciBhY3R1YWxMb2NhbGVbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07Cisg
ICAgY2hhciB2YWxpZExvY2FsZVtVTE9DX0ZVTExOQU1FX0NBUEFDSVRZXTsKKworICAgIC8qKgor
ICAgICAqIFRoZSBhc3NpZ25tZW50IG9wZXJhdG9yIGhhcyBubyByZWFsIGltcGxlbWVudGF0aW9u
LgorICAgICAqIEl0J3MgcHJvdmlkZWQgdG8gbWFrZSB0aGUgY29tcGlsZXIgaGFwcHkuIERvIG5v
dCBjYWxsLgorICAgICAqLworICAgIEJyZWFrSXRlcmF0b3ImIG9wZXJhdG9yPShjb25zdCBCcmVh
a0l0ZXJhdG9yJik7Cit9OworCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQorCitpbmxp
bmUgVUJvb2wgQnJlYWtJdGVyYXRvcjo6aXNCdWZmZXJDbG9uZSgpCit7CisgICAgcmV0dXJuIEZB
TFNFOworfQorCisjZW5kaWYgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisKK1VfTkFNRVNQ
QUNFX0VORAorCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiAqLwor
CisjZW5kaWYgLy8gX0JSS0lURVIKKy8vZW9mCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL2NoYXJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZThkNjUwOTBhNDBhNjA4NTk1MWM3MzMwN2Y3NGFjZjgzYmExYmJjOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaApAQCAtMCwwICsx
LDcyMiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTEs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3Ro
ZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVm
IENIQVJJVEVSX0gKKyNkZWZpbmUgQ0hBUklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlw
ZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3Vu
aXN0ci5oIgorLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IENoYXJhY3RlciBJdGVy
YXRvcgorICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorLyoqCisgKiBBYnN0cmFjdCBjbGFzcyB0
aGF0IGRlZmluZXMgYW4gQVBJIGZvciBmb3J3YXJkLW9ubHkgaXRlcmF0aW9uCisgKiBvbiB0ZXh0
IG9iamVjdHMuCisgKiBUaGlzIGlzIGEgbWluaW1hbCBpbnRlcmZhY2UgZm9yIGl0ZXJhdGlvbiB3
aXRob3V0IHJhbmRvbSBhY2Nlc3MKKyAqIG9yIGJhY2t3YXJkcyBpdGVyYXRpb24uIEl0IGlzIGVz
cGVjaWFsbHkgdXNlZnVsIGZvciB3cmFwcGluZworICogc3RyZWFtcyB3aXRoIGNvbnZlcnRlcnMg
aW50byBhbiBvYmplY3QgZm9yIGNvbGxhdGlvbiBvcgorICogbm9ybWFsaXphdGlvbi4KKyAqCisg
KiA8cD5DaGFyYWN0ZXJzIGNhbiBiZSBhY2Nlc3NlZCBpbiB0d28gd2F5czogYXMgY29kZSB1bml0
cyBvciBhcworICogY29kZSBwb2ludHMuCisgKiBVbmljb2RlIGNvZGUgcG9pbnRzIGFyZSAyMS1i
aXQgaW50ZWdlcnMgYW5kIGFyZSB0aGUgc2NhbGFyIHZhbHVlcworICogb2YgVW5pY29kZSBjaGFy
YWN0ZXJzLiBJQ1UgdXNlcyB0aGUgdHlwZSBVQ2hhcjMyIGZvciB0aGVtLgorICogVW5pY29kZSBj
b2RlIHVuaXRzIGFyZSB0aGUgc3RvcmFnZSB1bml0cyBvZiBhIGdpdmVuCisgKiBVbmljb2RlL1VD
UyBUcmFuc2Zvcm1hdGlvbiBGb3JtYXQgKGEgY2hhcmFjdGVyIGVuY29kaW5nIHNjaGVtZSkuCisg
KiBXaXRoIFVURi0xNiwgYWxsIGNvZGUgcG9pbnRzIGNhbiBiZSByZXByZXNlbnRlZCB3aXRoIGVp
dGhlciBvbmUKKyAqIG9yIHR3byBjb2RlIHVuaXRzICgic3Vycm9nYXRlcyIpLgorICogU3RyaW5n
IHN0b3JhZ2UgaXMgdHlwaWNhbGx5IGJhc2VkIG9uIGNvZGUgdW5pdHMsIHdoaWxlIHByb3BlcnRp
ZXMKKyAqIG9mIGNoYXJhY3RlcnMgYXJlIHR5cGljYWxseSBkZXRlcm1pbmVkIHVzaW5nIGNvZGUg
cG9pbnQgdmFsdWVzLgorICogU29tZSBwcm9jZXNzZXMgbWF5IGJlIGRlc2lnbmVkIHRvIHdvcmsg
d2l0aCBzZXF1ZW5jZXMgb2YgY29kZSB1bml0cywKKyAqIG9yIGl0IG1heSBiZSBrbm93biB0aGF0
IGFsbCBjaGFyYWN0ZXJzIHRoYXQgYXJlIGltcG9ydGFudCB0byBhbgorICogYWxnb3JpdGhtIGNh
biBiZSByZXByZXNlbnRlZCB3aXRoIHNpbmdsZSBjb2RlIHVuaXRzLgorICogT3RoZXIgcHJvY2Vz
c2VzIHdpbGwgbmVlZCB0byB1c2UgdGhlIGNvZGUgcG9pbnQgYWNjZXNzIGZ1bmN0aW9ucy48L3A+
CisgKgorICogPHA+Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHByb3ZpZGVzIG5leHRQb3N0SW5j
KCkgdG8gYWNjZXNzCisgKiBhIGNvZGUgdW5pdCBhbmQgYWR2YW5jZSBhbiBpbnRlcm5hbCBwb3Np
dGlvbiBpbnRvIHRoZSB0ZXh0IG9iamVjdCwKKyAqIHNpbWlsYXIgdG8gYSA8Y29kZT5yZXR1cm4g
dGV4dFtwb3NpdGlvbisrXTwvY29kZT4uPGJyPgorICogSXQgcHJvdmlkZXMgbmV4dDMyUG9zdElu
YygpIHRvIGFjY2VzcyBhIGNvZGUgcG9pbnQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwKKyAqIHBv
c2l0aW9uLjwvcD4KKyAqCisgKiA8cD5uZXh0MzJQb3N0SW5jKCkgYXNzdW1lcyB0aGF0IHRoZSBj
dXJyZW50IHBvc2l0aW9uIGlzIHRoYXQgb2YKKyAqIHRoZSBiZWdpbm5pbmcgb2YgYSBjb2RlIHBv
aW50LCBpLmUuLCBvZiBpdHMgZmlyc3QgY29kZSB1bml0LgorICogQWZ0ZXIgbmV4dDMyUG9zdElu
YygpLCB0aGlzIHdpbGwgYmUgdHJ1ZSBhZ2Fpbi4KKyAqIEluIGdlbmVyYWwsIGFjY2VzcyB0byBj
b2RlIHVuaXRzIGFuZCBjb2RlIHBvaW50cyBpbiB0aGUgc2FtZQorICogaXRlcmF0aW9uIGxvb3Ag
c2hvdWxkIG5vdCBiZSBtaXhlZC4gSW4gVVRGLTE2LCBpZiB0aGUgY3VycmVudCBwb3NpdGlvbgor
ICogaXMgb24gYSBzZWNvbmQgY29kZSB1bml0IChMb3cgU3Vycm9nYXRlKSwgdGhlbiBvbmx5IHRo
YXQgY29kZSB1bml0CisgKiBpcyByZXR1cm5lZCBldmVuIGJ5IG5leHQzMlBvc3RJbmMoKS48L3A+
CisgKgorICogPHA+Rm9yIGl0ZXJhdGlvbiB3aXRoIGVpdGhlciBmdW5jdGlvbiwgdGhlcmUgYXJl
IHR3byB3YXlzIHRvCisgKiBjaGVjayBmb3IgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLiBXaGVu
IHRoZXJlIGFyZSBubyBtb3JlCisgKiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0IG9iamVjdDoKKyAq
IDx1bD4KKyAqIDxsaT5UaGUgaGFzTmV4dCgpIGZ1bmN0aW9uIHJldHVybnMgRkFMU0UuPC9saT4K
KyAqIDxsaT5uZXh0UG9zdEluYygpIGFuZCBuZXh0MzJQb3N0SW5jKCkgcmV0dXJuIERPTkUKKyAq
ICAgICB3aGVuIG9uZSBhdHRlbXB0cyB0byByZWFkIGJleW9uZCB0aGUgZW5kIG9mIHRoZSB0ZXh0
IG9iamVjdC48L2xpPgorICogPC91bD4KKyAqCisgKiBFeGFtcGxlOgorICogXGNvZGUgCisgKiB2
b2lkIGZ1bmN0aW9uMShGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNo
YXIzMiBjOworICogICAgIHdoaWxlKGl0Lmhhc05leHQoKSkgeworICogICAgICAgICBjPWl0Lm5l
eHQzMlBvc3RJbmMoKTsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICB9CisgKiB9CisgKgor
ICogdm9pZCBmdW5jdGlvbjEoRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAg
IFVDaGFyIGM7CisgKiAgICAgd2hpbGUoKGM9aXQubmV4dFBvc3RJbmMoKSkhPUZvcndhcmRDaGFy
YWN0ZXJJdGVyYXRvcjo6RE9ORSkgeworICogICAgICAgICAvLyB1c2UgYworICogICAgICB9Cisg
KiAgfQorICogXGVuZGNvZGUKKyAqIDwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwor
Y2xhc3MgVV9DT01NT05fQVBJIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBVT2Jq
ZWN0IHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBtb3N0IG9m
IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcidzIGZ1bmN0aW9ucworICAgICAqIHdoZW4gdGhlIGl0
ZXJhdG9yIGhhcyByZWFjaGVkIHRoZSBsaW1pdHMgb2YgaXRzIGl0ZXJhdGlvbi4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBlbnVtIHsgRE9ORSA9IDB4ZmZmZiB9OworICAg
IAorICAgIC8qKgorICAgICAqIERlc3RydWN0b3IuICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIH5Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAK
KyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgd2hlbiBib3RoIGl0ZXJhdG9ycyByZWZlciB0
byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSBjaGFyYWN0ZXItc3RvcmFn
ZSBvYmplY3QuICAKKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgICAqIEByZXR1cm4gdHJ1ZSB3aGVu
IGJvdGggaXRlcmF0b3JzIHJlZmVyIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRo
ZSBzYW1lIGNoYXJhY3Rlci1zdG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHRydWUgd2hlbiB0aGUgaXRlcmF0b3JzIHJlZmVyIHRvIGRpZmZlcmVudAorICAgICAqIHRl
eHQtc3RvcmFnZSBvYmplY3RzLCBvciB0byBkaWZmZXJlbnQgY2hhcmFjdGVycyBpbiB0aGUKKyAg
ICAgKiBzYW1lIHRleHQtc3RvcmFnZSBvYmplY3QuICAKKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUg
Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5Cisg
ICAgICogQHJldHVybiB0cnVlIHdoZW4gdGhlIGl0ZXJhdG9ycyByZWZlciB0byBkaWZmZXJlbnQK
KyAgICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0cywgb3IgdG8gZGlmZmVyZW50IGNoYXJhY3RlcnMg
aW4gdGhlCisgICAgICogc2FtZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgaW5saW5lIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBH
ZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgaXRlcmF0b3IuICAKKyAgICAgKiBAcmV0dXJu
IHRoZSBoYXNoIGNvZGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBpbnQzMl90IGhhc2hDb2RlKHZvaWQpIGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoaXMgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
ICgicG9vciBtYW4ncworICAgICAqIFJUVEkiKS48UD4gRGVzcGl0ZSB0aGUgZmFjdCB0aGF0IHRo
aXMgZnVuY3Rpb24gaXMgcHVibGljLAorICAgICAqIERPIE5PVCBDT05TSURFUiBJVCBQQVJUIE9G
IENIQVJBQ1RFUklURVJBVE9SJ1MgQVBJISAKKyAgICAgKiBAcmV0dXJuIGEgVUNsYXNzSUQgZm9y
IHRoaXMgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29u
c3QgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSB1bml0
IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgdW5pdAorICAgICAq
IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAgSWYg
dGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBE
T05FLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSB1bml0LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0UG9zdElu
Yyh2b2lkKSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBjb2Rl
IHBvaW50IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQK
KyAgICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgp
KS4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCBy
ZXR1cm5zIERPTkUuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHBvaW50LgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBu
ZXh0MzJQb3N0SW5jKHZvaWQpID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIEZB
TFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAg
KiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
LgorICAgICAqIFRoaXMgaXMgdXNlZCB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9zdElu
YygpIGluIGZvcndhcmQKKyAgICAgKiBpdGVyYXRpb24uCisgICAgICogQHJldHVybnMgRkFMU0Ug
aWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgICAqIGF0
IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCAgICAgICAg
aGFzTmV4dCgpID0gMDsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICAvKiogRGVmYXVsdCBjb25zdHJ1
Y3RvciB0byBiZSBvdmVycmlkZGVuIGluIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3MuIEBzdGFibGUg
SUNVIDIuMCovCisgICAgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgCisgICAgLyoq
IENvcHkgY29uc3RydWN0b3IgdG8gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNs
YXNzLiBAc3RhYmxlIElDVSAyLjAqLworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcihjb25z
dCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgJm90aGVyKTsKKyAgICAKKyAgICAvKioKKyAgICAg
KiBBc3NpZ25tZW50IG9wZXJhdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGlu
ZyBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBGb3J3YXJkQ2hh
cmFjdGVySXRlcmF0b3IgJm9wZXJhdG9yPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Im
KSB7IHJldHVybiAqdGhpczsgfQorfTsKKworLyoqCisgKiBBYnN0cmFjdCBjbGFzcyB0aGF0IGRl
ZmluZXMgYW4gQVBJIGZvciBpdGVyYXRpb24KKyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMg
aXMgYW4gaW50ZXJmYWNlIGZvciBmb3J3YXJkIGFuZCBiYWNrd2FyZCBpdGVyYXRpb24KKyAqIGFu
ZCByYW5kb20gYWNjZXNzIGludG8gYSB0ZXh0IG9iamVjdC4KKyAqCisgKiA8cD5UaGUgQVBJIHBy
b3ZpZGVzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgdG8gdGhlIEphdmEgYW5kIG9sZGVyIElDVQor
ICogQ2hhcmFjdGVySXRlcmF0b3IgY2xhc3NlcyBidXQgZXh0ZW5kcyB0aGVtIHNpZ25pZmljYW50
bHk6CisgKiA8b2w+CisgKiA8bGk+Q2hhcmFjdGVySXRlcmF0b3IgaXMgbm93IGEgc3ViY2xhc3Mg
b2YgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLjwvbGk+CisgKiA8bGk+V2hpbGUgdGhlIG9sZCBB
UEkgZnVuY3Rpb25zIHByb3ZpZGVkIGZvcndhcmQgaXRlcmF0aW9uIHdpdGgKKyAqICAgICAicHJl
LWluY3JlbWVudCIgc2VtYW50aWNzLCB0aGUgbmV3IG9uZSBhbHNvIHByb3ZpZGVzIGZ1bmN0aW9u
cworICogICAgIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1hbnRpY3MuIFRoZXkgYXJlIG1vcmUg
ZWZmaWNpZW50IGFuZCBzaG91bGQKKyAqICAgICBiZSB0aGUgcHJlZmVycmVkIGl0ZXJhdG9yIGZ1
bmN0aW9ucyBmb3IgbmV3IGltcGxlbWVudGF0aW9ucy4KKyAqICAgICBUaGUgYmFja3dhcmQgaXRl
cmF0aW9uIGFsd2F5cyBoYWQgInByZS1kZWNyZW1lbnQiIHNlbWFudGljcywgd2hpY2gKKyAqICAg
ICBhcmUgZWZmaWNpZW50LjwvbGk+CisgKiA8bGk+SnVzdCBsaWtlIEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciwgaXQgcHJvdmlkZXMgYWNjZXNzIHRvCisgKiAgICAgYm90aCBjb2RlIHVuaXRzIGFu
ZCBjb2RlIHBvaW50cy4gQ29kZSBwb2ludCBhY2Nlc3MgdmVyc2lvbnMgYXJlIGF2YWlsYWJsZQor
ICogICAgIGZvciB0aGUgb2xkIGFuZCB0aGUgbmV3IGl0ZXJhdGlvbiBzZW1hbnRpY3MuPC9saT4K
KyAqIDxsaT5UaGVyZSBhcmUgbmV3IGZ1bmN0aW9ucyBmb3Igc2V0dGluZyBhbmQgbW92aW5nIHRo
ZSBjdXJyZW50IHBvc2l0aW9uCisgKiAgICAgd2l0aG91dCByZXR1cm5pbmcgYSBjaGFyYWN0ZXIs
IGZvciBlZmZpY2llbmN5LjwvbGk+CisgKiA8L29sPgorICoKKyAqIFNlZSBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IgZm9yIGV4YW1wbGVzIGZvciB1c2luZyB0aGUgbmV3IGZvcndhcmQgaXRlcmF0
aW9uCisgKiBmdW5jdGlvbnMuIEZvciBiYWNrd2FyZCBpdGVyYXRpb24sIHRoZXJlIGlzIGFsc28g
YSBoYXNQcmV2aW91cygpIGZ1bmN0aW9uCisgKiB0aGF0IGNhbiBiZSB1c2VkIGFuYWxvZ291c2x5
IHRvIGhhc05leHQoKS4KKyAqIFRoZSBvbGQgZnVuY3Rpb25zIHdvcmsgYXMgYmVmb3JlIGFuZCBh
cmUgc2hvd24gYmVsb3cuPC9wPgorICoKKyAqIDxwPkV4YW1wbGVzIGZvciBzb21lIG9mIHRoZSBu
ZXcgZnVuY3Rpb25zOjwvcD4KKyAqCisgKiBGb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIGhhc05leHQo
KToKKyAqIFxjb2RlCisgKiB2b2lkIGZvcndhcmQxKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgewor
ICogICAgIFVDaGFyMzIgYzsKKyAqICAgICBmb3IoaXQuc2V0VG9TdGFydCgpOyBpdC5oYXNOZXh0
KCk7KSB7CisgKiAgICAgICAgIGM9aXQubmV4dDMyUG9zdEluYygpOworICogICAgICAgICAvLyB1
c2UgYworICogICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogRm9yd2FyZCBpdGVyYXRpb24g
bW9yZSBzaW1pbGFyIHRvIGxvb3BzIHdpdGggdGhlIG9sZCBmb3J3YXJkIGl0ZXJhdGlvbiwKKyAq
IHNob3dpbmcgYSB3YXkgdG8gY29udmVydCBzaW1wbGUgZm9yKCkgbG9vcHM6CisgKiBcY29kZQor
ICogdm9pZCBmb3J3YXJkMihDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhciBj
OworICogICAgIGZvcihjPWl0LmZpcnN0UG9zdEluYygpOyBjIT1DaGFyYWN0ZXJJdGVyYXRvcjo6
RE9ORTsgYz1pdC5uZXh0UG9zdEluYygpKSB7CisgKiAgICAgICAgICAvLyB1c2UgYworICogICAg
ICB9CisgKiB9CisgKiBcZW5kY29kZQorICogQmFja3dhcmQgaXRlcmF0aW9uIHdpdGggc2V0VG9F
bmQoKSBhbmQgaGFzUHJldmlvdXMoKToKKyAqIFxjb2RlCisgKiAgdm9pZCBiYWNrd2FyZDEoQ2hh
cmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgIFVDaGFyMzIgYzsKKyAqICAgICAgZm9yKGl0
LnNldFRvRW5kKCk7IGl0Lmhhc1ByZXZpb3VzKCk7KSB7CisgKiAgICAgICAgIGM9aXQucHJldmlv
dXMzMigpOworICogICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRj
b2RlCisgKiBCYWNrd2FyZCBpdGVyYXRpb24gd2l0aCBhIG1vcmUgdHJhZGl0aW9uYWwgZm9yKCkg
bG9vcDoKKyAqIFxjb2RlCisgKiB2b2lkIGJhY2t3YXJkMihDaGFyYWN0ZXJJdGVyYXRvciAmaXQp
IHsKKyAqICAgICBVQ2hhciBjOworICogICAgIGZvcihjPWl0Lmxhc3QoKTsgYyE9Q2hhcmFjdGVy
SXRlcmF0b3I6OkRPTkU7IGM9aXQucHJldmlvdXMoKSkgeworICogICAgICAgICAvLyB1c2UgYwor
ICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqCisgKiBFeGFtcGxlIGZvciByYW5kb20g
YWNjZXNzOgorICogXGNvZGUKKyAqICB2b2lkIHJhbmRvbShDaGFyYWN0ZXJJdGVyYXRvciAmaXQp
IHsKKyAqICAgICAgLy8gc2V0IHRvIHRoZSB0aGlyZCBjb2RlIHBvaW50IGZyb20gdGhlIGJlZ2lu
bmluZworICogICAgICBpdC5tb3ZlMzIoMywgQ2hhcmFjdGVySXRlcmF0b3I6OmtTdGFydCk7Cisg
KiAgICAgIC8vIGdldCBhIGNvZGUgcG9pbnQgZnJvbSBoZXJlIHdpdGhvdXQgbW92aW5nIHRoZSBw
b3NpdGlvbgorICogICAgICBVQ2hhcjMyIGM9aXQuY3VycmVudDMyKCk7CisgKiAgICAgIC8vIGdl
dCB0aGUgcG9zaXRpb24KKyAqICAgICAgaW50MzJfdCBwb3M9aXQuZ2V0SW5kZXgoKTsKKyAqICAg
ICAgLy8gZ2V0IHRoZSBwcmV2aW91cyBjb2RlIHVuaXQKKyAqICAgICAgVUNoYXIgdT1pdC5wcmV2
aW91cygpOworICogICAgICAvLyBtb3ZlIGJhY2sgb25lIG1vcmUgY29kZSB1bml0CisgKiAgICAg
IGl0Lm1vdmUoLTEsIENoYXJhY3Rlckl0ZXJhdG9yOjprQ3VycmVudCk7CisgKiAgICAgIC8vIHNl
dCB0aGUgcG9zaXRpb24gYmFjayB0byB3aGVyZSBpdCB3YXMKKyAqICAgICAgLy8gYW5kIHJlYWQg
dGhlIHNhbWUgY29kZSBwb2ludCBjIGFuZCBtb3ZlIGJleW9uZCBpdAorICogICAgICBpdC5zZXRJ
bmRleChwb3MpOworICogICAgICBpZihjIT1pdC5uZXh0MzJQb3N0SW5jKCkpIHsKKyAqICAgICAg
ICAgIGV4aXQoMSk7IC8vIENoYXJhY3Rlckl0ZXJhdG9yIGluY29uc2lzdGVudAorICogICAgICB9
CisgKiAgfQorICogXGVuZGNvZGUKKyAqCisgKiA8cD5FeGFtcGxlcywgZXNwZWNpYWxseSBmb3Ig
dGhlIG9sZCBBUEk6PC9wPgorICoKKyAqIEZ1bmN0aW9uIHByb2Nlc3NpbmcgY2hhcmFjdGVycywg
aW4gdGhpcyBleGFtcGxlIHNpbXBsZSBvdXRwdXQKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZv
aWQgcHJvY2Vzc0NoYXIoIFVDaGFyIGMgKQorICogIHsKKyAqICAgICAgY291dCA8PCAiICIgPDwg
YzsKKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSB0aGUgdGV4dCBm
cm9tIHN0YXJ0IHRvIGZpbmlzaAorICogPHByZT4gCisgKiBcY29kZQorICogIHZvaWQgdHJhdmVy
c2VGb3J3YXJkKENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyKQorICogIHsKKyAqICAgICAgZm9yKFVD
aGFyIGMgPSBpdGVyLmZpcnN0KCk7IGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgYyA9IGl0
ZXIubmV4dCgpKSB7CisgKiAgICAgICAgICBwcm9jZXNzQ2hhcihjKTsKKyAqICAgICAgfQorICog
IH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIFRyYXZlcnNlIHRoZSB0ZXh0IGJhY2t3YXJk
cywgZnJvbSBlbmQgdG8gc3RhcnQKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZvaWQgdHJhdmVy
c2VCYWNrd2FyZChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlcikKKyAqICB7CisgKiAgICAgIGZvcihV
Q2hhciBjID0gaXRlci5sYXN0KCk7IGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgYyA9IGl0
ZXIucHJldmlvdXMoKSkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgIH0K
KyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSBib3RoIGZvcndhcmQg
YW5kIGJhY2t3YXJkIGZyb20gYSBnaXZlbiBwb3NpdGlvbiBpbiB0aGUgdGV4dC4gCisgKiBDYWxs
cyB0byBub3RCb3VuZGFyeSgpIGluIHRoaXMgZXhhbXBsZSByZXByZXNlbnRzIHNvbWUgYWRkaXRp
b25hbCBzdG9wcGluZyBjcml0ZXJpYS4KKyAqIDxwcmU+CisgKiBcY29kZQorICogdm9pZCB0cmF2
ZXJzZU91dChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlciwgaW50MzJfdCBwb3MpCisgKiB7CisgKiAg
ICAgIFVDaGFyIGM7CisgKiAgICAgIGZvciAoYyA9IGl0ZXIuc2V0SW5kZXgocG9zKTsKKyAqICAg
ICAgYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIChVbmljb2RlOjppc0xldHRlcihjKSB8
fCBVbmljb2RlOjppc0RpZ2l0KGMpKTsKKyAqICAgICAgICAgIGMgPSBpdGVyLm5leHQoKSkge30K
KyAqICAgICAgaW50MzJfdCBlbmQgPSBpdGVyLmdldEluZGV4KCk7CisgKiAgICAgIGZvciAoYyA9
IGl0ZXIuc2V0SW5kZXgocG9zKTsKKyAqICAgICAgICAgIGMgIT0gQ2hhcmFjdGVySXRlcmF0b3Iu
RE9ORSAmJiAoVW5pY29kZTo6aXNMZXR0ZXIoYykgfHwgVW5pY29kZTo6aXNEaWdpdChjKSk7Cisg
KiAgICAgICAgICBjID0gaXRlci5wcmV2aW91cygpKSB7fQorICogICAgICBpbnQzMl90IHN0YXJ0
ID0gaXRlci5nZXRJbmRleCgpICsgMTsKKyAqICAKKyAqICAgICAgY291dCA8PCAic3RhcnQ6ICIg
PDwgc3RhcnQgPDwgIiBlbmQ6ICIgPDwgZW5kIDw8IGVuZGw7CisgKiAgICAgIGZvciAoYyA9IGl0
ZXIuc2V0SW5kZXgoc3RhcnQpOyBpdGVyLmdldEluZGV4KCkgPCBlbmQ7IGMgPSBpdGVyLm5leHQo
KSApIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMpOworICogICAgIH0KKyAqICB9CisgKiBc
ZW5kY29kZQorICogPC9wcmU+CisgKiBDcmVhdGluZyBhIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9y
IGFuZCBjYWxsaW5nIHRoZSB0ZXN0IGZ1bmN0aW9ucworICogPHByZT4KKyAqIFxjb2RlCisgKiAg
dm9pZCBDaGFyYWN0ZXJJdGVyYXRvcl9FeGFtcGxlKCB2b2lkICkKKyAqICAgeworICogICAgICAg
Y291dCA8PCBlbmRsIDw8ICI9PT09PSBDaGFyYWN0ZXJJdGVyYXRvcl9FeGFtcGxlOiA9PT09PSIg
PDwgZW5kbDsKKyAqICAgICAgIFVuaWNvZGVTdHJpbmcgdGV4dCgiRWluIGtsZWluZXIgU2F0ei4i
KTsKKyAqICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yKHRleHQpOworICog
ICAgICAgY291dCA8PCAiLS0tLS0gdHJhdmVyc2VGb3J3YXJkOiAtLS0tLS0tLS0tLSIgPDwgZW5k
bDsKKyAqICAgICAgIHRyYXZlcnNlRm9yd2FyZCggaXRlcmF0b3IgKTsKKyAqICAgICAgIGNvdXQg
PDwgZW5kbCA8PCBlbmRsIDw8ICItLS0tLSB0cmF2ZXJzZUJhY2t3YXJkOiAtLS0tLS0tLS0tIiA8
PCBlbmRsOworICogICAgICAgdHJhdmVyc2VCYWNrd2FyZCggaXRlcmF0b3IgKTsKKyAqICAgICAg
IGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICItLS0tLSB0cmF2ZXJzZU91dDogLS0tLS0tLS0tLS0t
LS0tIiA8PCBlbmRsOworICogICAgICAgdHJhdmVyc2VPdXQoIGl0ZXJhdG9yLCA3ICk7CisgKiAg
ICAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0iIDw8IGVuZGw7CisgKiAgIH0KKyAq
IFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3Mg
VV9DT01NT05fQVBJIENoYXJhY3Rlckl0ZXJhdG9yIDogcHVibGljIEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogT3JpZ2luIGVudW1lcmF0aW9uIGZv
ciB0aGUgbW92ZSgpIGFuZCBtb3ZlMzIoKSBmdW5jdGlvbnMuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgZW51bSBFT3JpZ2luIHsga1N0YXJ0LCBrQ3VycmVudCwga0VuZCB9
OworCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3Rvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIH5DaGFyYWN0ZXJJdGVyYXRvcigpOworCisgICAgLyoqCisg
ICAgICogUmV0dXJucyBhIHBvaW50ZXIgdG8gYSBuZXcgQ2hhcmFjdGVySXRlcmF0b3Igb2YgdGhl
IHNhbWUKKyAgICAgKiBjb25jcmV0ZSBjbGFzcyBhcyB0aGlzIG9uZSwgYW5kIHJlZmVycmluZyB0
byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSB0ZXh0LXN0b3JhZ2Ugb2Jq
ZWN0IGFzIHRoaXMgb25lLiAgVGhlCisgICAgICogY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBk
ZWxldGluZyB0aGUgbmV3IGNsb25lLiAgCisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBu
ZXcgQ2hhcmFjdGVySXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdCA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29k
ZSB1bml0IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBj
b2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24g
d2l0aCBuZXh0KCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBp
dGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBVQ2hhciAgICAgICAgIGZpcnN0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisg
ICAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSB1bml0LCBhbmQgbW92ZXMg
dGhlIHBvc2l0aW9uCisgICAgICogdG8gdGhlIHNlY29uZCBjb2RlIHVuaXQuIFRoaXMgaXMgYW4g
YWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9u
IHdpdGggbmV4dFBvc3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQg
aW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3RQb3N0SW5jKHZvaWQpOworCisgICAgLyoq
CisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9p
bnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUg
dW5pdCwKKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRo
IG5leHQzMigpLgorICAgICAqIE5vdGUgdGhhdCBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0
SW5jKCksIGJlZ2lubmluZyB3aXRoLAorICAgICAqIGUuZy4sIHNldFRvU3RhcnQoKSBvciBmaXJz
dFBvc3RJbmMoKSwgaXMgbW9yZSBlZmZpY2llbnQuCisgICAgICogQHJldHVybiB0aGUgZmlyc3Qg
Y29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyKHZvaWQpID0gMDsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJz
dCBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0
IGNvZGUgcG9pbnQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICAgKiB0byB0aGUgc2Vjb25k
IGNvZGUgcG9pbnQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAg
ICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLgorICAgICAqIEBy
ZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmly
c3QzMlBvc3RJbmModm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0
byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IG9yIGNvZGUgcG9pbnQgaW4gaXRzCisgICAg
ICogaXRlcmF0aW9uIHJhbmdlLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGEgZm9yd2FyZAor
ICAgICAqIGl0ZXJhdGlvbiB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9zdEluYygpLgor
ICAgICAqIEByZXR1cm4gdGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICBz
ZXRUb1N0YXJ0KCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZl
ciB0byB0aGUgbGFzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBh
bmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJl
Z2luIGFuIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkuCisgICAgICogQHJldHVybiB0aGUgbGFz
dCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBVQ2hhciAgICAgICAgIGxhc3Qodm9pZCkgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0
cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisg
ICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91
czMyKCkuCisgICAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBsYXN0MzIodm9p
ZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gdGhlIGVuZCBv
ZiBpdHMgaXRlcmF0aW9uIHJhbmdlLCBqdXN0IGJlaGluZAorICAgICAqIHRoZSBsYXN0IGNvZGUg
dW5pdCBvciBjb2RlIHBvaW50LiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGEgYmFja3dhcmQK
KyAgICAgKiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIoKS4KKyAgICAg
KiBAcmV0dXJuIHRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgIHNldFRvRW5k
KCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUg
InBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVj
dCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAgICAgKiByZXR1cm5zIHRoYXQgY29kZSB1
bml0LiAgCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5p
dCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlICJwb3NpdGlv
biItdGggY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUNoYXIgICAgICAgICBzZXRJbmRleChpbnQzMl90IHBvc2l0aW9uKSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgYmVnaW5uaW5n
IG9mIHRoZSBjb2RlIHBvaW50CisgICAgICogdGhhdCBjb250YWlucyB0aGUgInBvc2l0aW9uIi10
aCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0
b3IgcmVmZXJzIHRvLCBhbmQKKyAgICAgKiByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4KKyAgICAg
KiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyBhZGp1c3RlZCB0byB0aGUgYmVnaW5uaW5nIG9mIHRo
ZSBjb2RlIHBvaW50CisgICAgICogKGl0cyBmaXJzdCBjb2RlIHVuaXQpLgorICAgICAqIEBwYXJh
bSBwb3NpdGlvbiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQgaW4gdGhlIHRleHQtc3RvcmFn
ZSBvYmplY3QKKyAgICAgKiBAcmV0dXJuIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgcG9pbnQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAg
IHNldEluZGV4MzIoaW50MzJfdCBwb3NpdGlvbikgPSAwOworCisgICAgLyoqCisgICAgICogUmV0
dXJucyB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLiAKKyAg
ICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4gCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGN1cnJlbnQodm9pZCkgY29u
c3QgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50
IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLiAgCisgICAgICogQHJldHVybiB0aGUg
Y3VycmVudCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIzMiAgICAgICBjdXJyZW50MzIodm9pZCkgY29uc3QgPSAwOworICAgICAg
ICAKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5kZXgoKSksIGFuZCByZXR1cm5z
IHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSB1
bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIg
ICAgICAgICBuZXh0KHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5j
ZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICog
KHRvd2FyZCBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhl
cmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9O
RS4KKyAgICAgKiBOb3RlIHRoYXQgaXRlcmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIHNlbWFu
dGljcyBpcyBsZXNzCisgICAgICogZWZmaWNpZW50IHRoYW4gaXRlcmF0aW9uIHdpdGggInBvc3Qt
aW5jcmVtZW50IiBzZW1hbnRpY3MKKyAgICAgKiB0aGF0IGlzIHByb3ZpZGVkIGJ5IG5leHQzMlBv
c3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgcG9pbnQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMih2
b2lkKSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2
aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgc3Rh
cnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUKKyAg
ICAgKiBubyBtb3JlIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuICAKKyAgICAg
KiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIHByZXZpb3VzKHZvaWQpID0gMDsK
KworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIHN0YXJ0SW5kZXgoKSksIGFuZCBy
ZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29k
ZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuIAorICAgICAqIEByZXR1cm4gdGhlIHBy
ZXZpb3VzIGNvZGUgcG9pbnQuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIzMiAgICAgICBwcmV2aW91czMyKHZvaWQpID0gMDsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBj
b2RlIHBvaW50cworICAgICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlLgorICAgICAqIFRoaXMgaXMgdXNlZCB3aXRoIHByZXZpb3VzKCkgb3IgcHJl
dmlvdXMzMigpIGluIGJhY2t3YXJkCisgICAgICogaXRlcmF0aW9uLgorICAgICAqIEByZXR1cm4g
RkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAg
ICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLCBy
ZXR1cm4gVFJVRSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzUHJldmlvdXMoKSA9IDA7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3Rv
cmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGZpcnN0KCku
ICBTaW5jZSBpdCdzCisgICAgICogcG9zc2libGUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yIHRoYXQg
aXRlcmF0ZXMgYWNyb3NzIG9ubHkKKyAgICAgKiBwYXJ0IG9mIGEgdGV4dC1zdG9yYWdlIG9iamVj
dCwgdGhpcyBudW1iZXIgaXNuJ3QKKyAgICAgKiBuZWNlc3NhcmlseSAwLiAgCisgICAgICogQHJl
dHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisg
ICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0ZXIgcmV0dXJuZWQgYnkgZmlyc3QoKS4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBzdGFy
dEluZGV4KHZvaWQpIGNvbnN0OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRo
ZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9i
amVjdCBvZiB0aGUgcG9zaXRpb24gaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBjaGFyYWN0ZXIKKyAg
ICAgKiByZXR1cm5lZCBieSBsYXN0KCkuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1lcmljIGlu
ZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUg
cG9zaXRpb24gaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiByZXR1cm5l
ZCBieSBsYXN0KCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5l
IGludDMyX3QgICAgICAgZW5kSW5kZXgodm9pZCkgY29uc3Q7CisgICAgICAgIAorICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1z
dG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0ZXIgdGhlIGl0ZXJhdG9yIGN1cnJl
bnRseSByZWZlcnMgdG8KKyAgICAgKiAoaS5lLiwgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBj
dXJyZW50KCkpLiAgCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyaWMgaW5kZXggaW4gdGhlIHRl
eHQtc3RvcmFnZSBvYmplY3Qgb2YgCisgICAgICogdGhlIGNoYXJhY3RlciB0aGUgaXRlcmF0b3Ig
Y3VycmVudGx5IHJlZmVycyB0bworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IGlubGluZSBpbnQzMl90ICAgICAgIGdldEluZGV4KHZvaWQpIGNvbnN0OworCisgICAgLyoqCisg
ICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBlbnRpcmUgdGV4dCBpbiB0aGUgdW5kZXJs
eWluZworICAgICAqIHRleHQtc3RvcmFnZSBvYmplY3QuCisgICAgICogQHJldHVybiB0aGUgbGVu
Z3RoIG9mIHRoZSBlbnRpcmUgdGV4dCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgICAgICAgICBn
ZXRMZW5ndGgoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBv
c2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0
aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisg
ICAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgdW5pdHMg
Zm9yd2FyZAorICAgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBu
ZWdhdGl2ZSBkZWx0YS4KKyAgICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZl
IHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgICAqIGEgbmVn
YXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4g
ZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAgICogQHJldHVybiB0aGUg
bmV3IHBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90ICAgICAgbW92ZShpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbikgPSAwOwor
CisgICAgLyoqCisgICAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8g
dGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0
aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGl0c2VsZi4KKyAgICAgKiBUaGUgbW92ZW1lbnQg
aXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSBwb2ludHMgZm9yd2FyZAorICAgICAqIG9y
IGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAg
ICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdpbi4gQSBwb3Np
dGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMg
YmFja3dhcmQuCisgICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFy
dCwga0N1cnJlbnQsIGtFbmR9CisgICAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92
ZTMyKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKSA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBDb3BpZXMgdGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcK
KyAgICAgKiByZWZlcnJlZCB0byBieSAicmVzdWx0Ii4gIAorICAgICAqIEBwYXJhbSByZXN1bHQg
UmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4gIAorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRl
eHQoVW5pY29kZVN0cmluZyYgIHJlc3VsdCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgLyoqCisg
ICAgICogRW1wdHkgY29uc3RydWN0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9y
LCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0aCBmaWVsZCBpbiB0aGlzIGJhc2UgY2xhc3MuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoaW50MzJf
dCBsZW5ndGgpOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0
aGUgbGVuZ3RoIGFuZCBwb3NpdGlvbiBmaWVsZHMgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3Qg
bGVuZ3RoLCBpbnQzMl90IHBvc2l0aW9uKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9y
LCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0aCwgc3RhcnQsIGVuZCwgYW5kIHBvc2l0aW9uIGZpZWxk
cyBpbiB0aGlzIGJhc2UgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgQ2hhcmFjdGVySXRlcmF0b3IoaW50MzJfdCBsZW5ndGgsIGludDMyX3QgdGV4dEJlZ2luLCBp
bnQzMl90IHRleHRFbmQsIGludDMyX3QgcG9zaXRpb24pOworICAKKyAgICAvKioKKyAgICAgKiBD
b3B5IGNvbnN0cnVjdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIHRoYXQgVGhlIENoYXJhY3Rl
ckl0ZXJhdG9yIHRvIGJlIGNvcGllZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIENoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IENoYXJhY3Rlckl0ZXJhdG9yICZ0aGF0KTsKKwor
ICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICBTZXRzIHRoaXMgQ2hhcmFjdGVy
SXRlcmF0b3IgdG8gaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwKKyAgICAgKiBhcyB0aGUgb25lIHBh
c3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgcGFzc2Vk
IGluLgorICAgICAqIEByZXR1cm4gdGhlIG5ld2x5IHNldCBDaGFyYWN0ZXJJdGVyYXRvci4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvciAmb3Bl
cmF0b3I9KGNvbnN0IENoYXJhY3Rlckl0ZXJhdG9yICZ0aGF0KTsKKworICAgIC8qKgorICAgICAq
IEJhc2UgY2xhc3MgdGV4dCBsZW5ndGggZmllbGQuCisgICAgICogTmVjZXNzYXJ5IHRoaXMgZm9y
IGNvcnJlY3QgZ2V0VGV4dCgpIGFuZCBoYXNoQ29kZSgpLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGludDMyX3QgdGV4dExlbmd0aDsKKworICAgIC8qKgorICAgICAqIEJh
c2UgY2xhc3MgZmllbGQgZm9yIHRoZSBjdXJyZW50IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIHBvczsKKworICAgIC8qKgorICAgICAqIEJh
c2UgY2xhc3MgZmllbGQgZm9yIHRoZSBzdGFydCBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIGJlZ2luOworCisgICAg
LyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9u
IHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIGVu
ZDsKK307CisKK2lubGluZSBVQm9vbAorRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yOjpvcGVyYXRv
ciE9KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3QgeworICAgIHJl
dHVybiAhb3BlcmF0b3I9PSh0aGF0KTsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0
ZXJhdG9yOjpzZXRUb1N0YXJ0KCkgeworICAgIHJldHVybiBtb3ZlKDAsIGtTdGFydCk7Cit9CisK
K2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6c2V0VG9FbmQoKSB7CisgICAgcmV0
dXJuIG1vdmUoMCwga0VuZCk7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRv
cjo6c3RhcnRJbmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIGJlZ2luOworfQorCitpbmxp
bmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OmVuZEluZGV4KHZvaWQpIGNvbnN0IHsKKyAg
ICByZXR1cm4gZW5kOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6Omdl
dEluZGV4KHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gcG9zOworfQorCitpbmxpbmUgaW50MzJf
dAorQ2hhcmFjdGVySXRlcmF0b3I6OmdldExlbmd0aCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJu
IHRleHRMZW5ndGg7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xv
Y2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWFkNWNiNTQ2ZWJlMzk3ZWY0MzZkZjM2NTAzZWI0MzcxYzM4NjY5
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaApAQCAt
MCwwICsxLDgxNCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdo
dCAoQykgMTk5Ni0yMDE1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29y
cG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyoKKyogRmlsZSBsb2NpZC5oCisqCisqIENyZWF0ZWQgYnk6IEhlbGVuYSBT
aGloCisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUg
ICAgICAgIERlc2NyaXB0aW9uCisqICAgMDIvMTEvOTcgICAgYWxpdSAgICAgICAgQ2hhbmdlZCBn
TG9jUGF0aCB0byBmZ0xvY1BhdGggYW5kIGFkZGVkIG1ldGhvZHMgdG8KKyogICAgICAgICAgICAg
ICAgICAgICAgICAgICBnZXQgYW5kIHNldCBpdC4KKyogICAwNC8wMi85NyAgICBhbGl1ICAgICAg
ICBNYWRlIG9wZXJhdG9yIT0gaW5saW5lOyBmaXhlZCByZXR1cm4gdmFsdWUgb2YgZ2V0TmFtZSgp
LgorKiAgIDA0LzE1Lzk3ICAgIGFsaXUgICAgICAgIENsZWFudXAgZm9yIEFJWC9XaW4zMi4KKyog
ICAwNC8yNC85NyAgICBhbGl1ICAgICAgICBOdW1lcm91cyBjaGFuZ2VzIHBlciBjb2RlIHJldmll
dy4KKyogICAwOC8xOC85OCAgICBzdGVwaGVuICAgICBBZGRlZCB0b2tlbml6ZVN0cmluZygpLGNo
YW5nZWQgZ2V0RGlzcGxheU5hbWUoKQorKiAgIDA5LzA4Lzk4ICAgIHN0ZXBoZW4gICAgIE1vdmVk
IGRlZmluaXRpb24gb2Yga0VtcHR5U3RyaW5nIGZvciBNYWMgUG9ydAorKiAgIDExLzA5Lzk5ICAg
IHdlaXYgICAgICAgIEFkZGVkIGNvbnN0IGNoYXIgKiBnZXROYW1lKCkgY29uc3Q7CisqICAgMDQv
MTIvMDAgICAgc3JsICAgICAgICAgcmVtb3ZpbmcgdW5pY29kZXN0cmluZyBhcGkncyBhbmQgY2Fj
aGVkIGhhc2ggY29kZQorKiAgIDA4LzEwLzAxICAgIGdyaG90ZW4gICAgIENoYW5nZSB0aGUgc3Rh
dGljIExvY2FsZXMgdG8gYWNjZXNzb3IgZnVuY3Rpb25zCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyovCisKKyNpZm5kZWYgTE9DSURfSAorI2RlZmluZSBMT0NJRF9ICisKKyNpbmNsdWRlICJ1bmlj
b2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdW5pc3RyLmgiCisjaW5jbHVkZSAidW5pY29kZS9wdXRpbC5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdWxvYy5oIgorI2luY2x1ZGUgInVuaWNvZGUvc3RyZW51bS5oIgorCisvKioKKyAqIFxm
aWxlCisgKiBcYnJpZWYgQysrIEFQSTogTG9jYWxlIElEIG9iamVjdC4KKyAqLworCitVX05BTUVT
UEFDRV9CRUdJTgorCisvLyBGb3J3YXJkIERlY2xhcmF0aW9ucwordm9pZCBVX0NBTExDT05WIGxv
Y2FsZV9hdmFpbGFibGVfaW5pdCgpOyAvKio8IEBpbnRlcm5hbCAqLworCisvKioKKyAqIEEgPGNv
ZGU+TG9jYWxlPC9jb2RlPiBvYmplY3QgcmVwcmVzZW50cyBhIHNwZWNpZmljIGdlb2dyYXBoaWNh
bCwgcG9saXRpY2FsLAorICogb3IgY3VsdHVyYWwgcmVnaW9uLiBBbiBvcGVyYXRpb24gdGhhdCBy
ZXF1aXJlcyBhIDxjb2RlPkxvY2FsZTwvY29kZT4gdG8gcGVyZm9ybQorICogaXRzIHRhc2sgaXMg
Y2FsbGVkIDxlbT5sb2NhbGUtc2Vuc2l0aXZlPC9lbT4gYW5kIHVzZXMgdGhlIDxjb2RlPkxvY2Fs
ZTwvY29kZT4KKyAqIHRvIHRhaWxvciBpbmZvcm1hdGlvbiBmb3IgdGhlIHVzZXIuIEZvciBleGFt
cGxlLCBkaXNwbGF5aW5nIGEgbnVtYmVyCisgKiBpcyBhIGxvY2FsZS1zZW5zaXRpdmUgb3BlcmF0
aW9uLS10aGUgbnVtYmVyIHNob3VsZCBiZSBmb3JtYXR0ZWQKKyAqIGFjY29yZGluZyB0byB0aGUg
Y3VzdG9tcy9jb252ZW50aW9ucyBvZiB0aGUgdXNlcidzIG5hdGl2ZSBjb3VudHJ5LAorICogcmVn
aW9uLCBvciBjdWx0dXJlLgorICoKKyAqIFRoZSBMb2NhbGUgY2xhc3MgaXMgbm90IHN1aXRhYmxl
IGZvciBzdWJjbGFzc2luZy4KKyAqCisgKiA8UD4KKyAqIFlvdSBjYW4gY3JlYXRlIGEgPGNvZGU+
TG9jYWxlPC9jb2RlPiBvYmplY3QgdXNpbmcgdGhlIGNvbnN0cnVjdG9yIGluCisgKiB0aGlzIGNs
YXNzOgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICog
ICAgICAgTG9jYWxlKCBjb25zdCAgIGNoYXIqICBsYW5ndWFnZSwKKyAqICAgICAgICAgICAgICAg
Y29uc3QgICBjaGFyKiAgY291bnRyeSwKKyAqICAgICAgICAgICAgICAgY29uc3QgICBjaGFyKiAg
dmFyaWFudCk7CisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9u
bHkKKyAqIFRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JzIGlzIGEgdmFsaWQg
PFNUUk9ORz5JU08KKyAqIExhbmd1YWdlIENvZGUuPC9TVFJPTkc+IFRoZXNlIGNvZGVzIGFyZSB0
aGUgbG93ZXItY2FzZSB0d28tbGV0dGVyCisgKiBjb2RlcyBhcyBkZWZpbmVkIGJ5IElTTy02Mzku
CisgKiBZb3UgY2FuIGZpbmQgYSBmdWxsIGxpc3Qgb2YgdGhlc2UgY29kZXMgYXQ6CisgKiA8QlI+
PGEgaHJlZiA9Imh0dHA6Ly93d3cubG9jLmdvdi9zdGFuZGFyZHMvaXNvNjM5LTIvIj4KKyAqIGh0
dHA6Ly93d3cubG9jLmdvdi9zdGFuZGFyZHMvaXNvNjM5LTIvPC9hPgorICoKKyAqIDxQPgorICog
VGhlIHNlY29uZCBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JzIGlzIGEgdmFsaWQgPFNUUk9O
Rz5JU08gQ291bnRyeQorICogQ29kZS48L1NUUk9ORz4gVGhlc2UgY29kZXMgYXJlIHRoZSB1cHBl
ci1jYXNlIHR3by1sZXR0ZXIgY29kZXMKKyAqIGFzIGRlZmluZWQgYnkgSVNPLTMxNjYuCisgKiBZ
b3UgY2FuIGZpbmQgYSBmdWxsIGxpc3Qgb2YgdGhlc2UgY29kZXMgYXQgYSBudW1iZXIgb2Ygc2l0
ZXMsIHN1Y2ggYXM6CisgKiA8QlI+PGEgaHJlZj0iaHR0cDovL3d3dy5pc28ub3JnL2lzby9lbi9w
cm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEvaW5kZXguaHRtbCI+CisgKiBodHRwOi8vd3d3Lmlzby5v
cmcvaXNvL2VuL3Byb2RzLXNlcnZpY2VzL2lzbzMxNjZtYS9pbmRleC5odG1sPC9hPgorICoKKyAq
IDxQPgorICogVGhlIHRoaXJkIGNvbnN0cnVjdG9yIHJlcXVpcmVzIGEgdGhpcmQgYXJndW1lbnQt
LXRoZSA8U1RST05HPlZhcmlhbnQuPC9TVFJPTkc+CisgKiBUaGUgVmFyaWFudCBjb2RlcyBhcmUg
dmVuZG9yIGFuZCBicm93c2VyLXNwZWNpZmljLgorICogRm9yIGV4YW1wbGUsIHVzZSBSRVZJU0VE
IGZvciBhIGxhbmdhdWdlJ3MgcmV2aXNlZCBzY3JpcHQgb3J0aG9ncmFwaHksIGFuZCBQT1NJWCBm
b3IgUE9TSVguCisgKiBXaGVyZSB0aGVyZSBhcmUgdHdvIHZhcmlhbnRzLCBzZXBhcmF0ZSB0aGVt
IHdpdGggYW4gdW5kZXJzY29yZSwgYW5kCisgKiBwdXQgdGhlIG1vc3QgaW1wb3J0YW50IG9uZSBm
aXJzdC4gRm9yCisgKiBleGFtcGxlLCBhIFRyYWRpdGlvbmFsIFNwYW5pc2ggY29sbGF0aW9uIG1p
Z2h0IGJlIHJlZmVyZW5jZWQsIHdpdGgKKyAqICJFUyIsICJFUyIsICJUcmFkaXRpb25hbF9QT1NJ
WCIuCisgKgorICogPFA+CisgKiBCZWNhdXNlIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3Qg
aXMganVzdCBhbiBpZGVudGlmaWVyIGZvciBhIHJlZ2lvbiwKKyAqIG5vIHZhbGlkaXR5IGNoZWNr
IGlzIHBlcmZvcm1lZCB3aGVuIHlvdSBjb25zdHJ1Y3QgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+Lgor
ICogSWYgeW91IHdhbnQgdG8gc2VlIHdoZXRoZXIgcGFydGljdWxhciByZXNvdXJjZXMgYXJlIGF2
YWlsYWJsZSBmb3IgdGhlCisgKiA8Y29kZT5Mb2NhbGU8L2NvZGU+IHlvdSBjb25zdHJ1Y3QsIHlv
dSBtdXN0IHF1ZXJ5IHRob3NlIHJlc291cmNlcy4gRm9yCisgKiBleGFtcGxlLCBhc2sgdGhlIDxj
b2RlPk51bWJlckZvcm1hdDwvY29kZT4gZm9yIHRoZSBsb2NhbGVzIGl0IHN1cHBvcnRzCisgKiB1
c2luZyBpdHMgPGNvZGU+Z2V0QXZhaWxhYmxlTG9jYWxlczwvY29kZT4gbWV0aG9kLgorICogPEJS
PjxTVFJPTkc+Tm90ZTo8L1NUUk9ORz4gV2hlbiB5b3UgYXNrIGZvciBhIHJlc291cmNlIGZvciBh
IHBhcnRpY3VsYXIKKyAqIGxvY2FsZSwgeW91IGdldCBiYWNrIHRoZSBiZXN0IGF2YWlsYWJsZSBt
YXRjaCwgbm90IG5lY2Vzc2FyaWx5CisgKiBwcmVjaXNlbHkgd2hhdCB5b3UgYXNrZWQgZm9yLiBG
b3IgbW9yZSBpbmZvcm1hdGlvbiwgbG9vayBhdAorICogPGNvZGU+UmVzb3VyY2VCdW5kbGU8L2Nv
ZGU+LgorICoKKyAqIDxQPgorICogVGhlIDxjb2RlPkxvY2FsZTwvY29kZT4gY2xhc3MgcHJvdmlk
ZXMgYSBudW1iZXIgb2YgY29udmVuaWVudCBjb25zdGFudHMKKyAqIHRoYXQgeW91IGNhbiB1c2Ug
dG8gY3JlYXRlIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0cyBmb3IgY29tbW9ubHkgdXNlZAor
ICogbG9jYWxlcy4gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgcmVmZXJzIHRvIGEgPGNvZGU+
TG9jYWxlPC9jb2RlPiBvYmplY3QKKyAqIGZvciB0aGUgVW5pdGVkIFN0YXRlczoKKyAqIFxodG1s
b25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICAgIExvY2FsZTo6
Z2V0VVMoKQorICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5
CisgKgorICogPFA+CisgKiBPbmNlIHlvdSd2ZSBjcmVhdGVkIGEgPGNvZGU+TG9jYWxlPC9jb2Rl
PiB5b3UgY2FuIHF1ZXJ5IGl0IGZvciBpbmZvcm1hdGlvbiBhYm91dAorICogaXRzZWxmLiBVc2Ug
PGNvZGU+Z2V0Q291bnRyeTwvY29kZT4gdG8gZ2V0IHRoZSBJU08gQ291bnRyeSBDb2RlIGFuZAor
ICogPGNvZGU+Z2V0TGFuZ3VhZ2U8L2NvZGU+IHRvIGdldCB0aGUgSVNPIExhbmd1YWdlIENvZGUu
IFlvdSBjYW4KKyAqIHVzZSA8Y29kZT5nZXREaXNwbGF5Q291bnRyeTwvY29kZT4gdG8gZ2V0IHRo
ZQorICogbmFtZSBvZiB0aGUgY291bnRyeSBzdWl0YWJsZSBmb3IgZGlzcGxheWluZyB0byB0aGUg
dXNlci4gU2ltaWxhcmx5LAorICogeW91IGNhbiB1c2UgPGNvZGU+Z2V0RGlzcGxheUxhbmd1YWdl
PC9jb2RlPiB0byBnZXQgdGhlIG5hbWUgb2YKKyAqIHRoZSBsYW5ndWFnZSBzdWl0YWJsZSBmb3Ig
ZGlzcGxheWluZyB0byB0aGUgdXNlci4gSW50ZXJlc3RpbmdseSwKKyAqIHRoZSA8Y29kZT5nZXRE
aXNwbGF5WFhYPC9jb2RlPiBtZXRob2RzIGFyZSB0aGVtc2VsdmVzIGxvY2FsZS1zZW5zaXRpdmUK
KyAqIGFuZCBoYXZlIHR3byB2ZXJzaW9uczogb25lIHRoYXQgdXNlcyB0aGUgZGVmYXVsdCBsb2Nh
bGUgYW5kIG9uZQorICogdGhhdCB0YWtlcyBhIGxvY2FsZSBhcyBhbiBhcmd1bWVudCBhbmQgZGlz
cGxheXMgdGhlIG5hbWUgb3IgY291bnRyeSBpbgorICogYSBsYW5ndWFnZSBhcHByb3ByaWF0ZSB0
byB0aGF0IGxvY2FsZS4KKyAqCisgKiA8UD4KKyAqIElDVSBwcm92aWRlcyBhIG51bWJlciBvZiBj
bGFzc2VzIHRoYXQgcGVyZm9ybSBsb2NhbGUtc2Vuc2l0aXZlCisgKiBvcGVyYXRpb25zLiBGb3Ig
ZXhhbXBsZSwgdGhlIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gY2xhc3MgZm9ybWF0cworICog
bnVtYmVycywgY3VycmVuY3ksIG9yIHBlcmNlbnRhZ2VzIGluIGEgbG9jYWxlLXNlbnNpdGl2ZSBt
YW5uZXIuIENsYXNzZXMKKyAqIHN1Y2ggYXMgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBoYXZl
IGEgbnVtYmVyIG9mIGNvbnZlbmllbmNlIG1ldGhvZHMKKyAqIGZvciBjcmVhdGluZyBhIGRlZmF1
bHQgb2JqZWN0IG9mIHRoYXQgdHlwZS4gRm9yIGV4YW1wbGUsIHRoZQorICogPGNvZGU+TnVtYmVy
Rm9ybWF0PC9jb2RlPiBjbGFzcyBwcm92aWRlcyB0aGVzZSB0aHJlZSBjb252ZW5pZW5jZSBtZXRo
b2RzCisgKiBmb3IgY3JlYXRpbmcgYSBkZWZhdWx0IDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4g
b2JqZWN0OgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgor
ICogICAgIFVFcnJvckNvZGUgc3VjY2VzcyA9IFVfWkVST19FUlJPUjsKKyAqICAgICBMb2NhbGUg
bXlMb2NhbGU7CisgKiAgICAgTnVtYmVyRm9ybWF0ICpuZjsKKyAqCisgKiAgICAgbmYgPSBOdW1i
ZXJGb3JtYXQ6OmNyZWF0ZUluc3RhbmNlKCBzdWNjZXNzICk7ICAgICAgICAgIGRlbGV0ZSBuZjsK
KyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlQ3VycmVuY3lJbnN0YW5jZSggc3VjY2Vz
cyApOyAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVQZXJjZW50
SW5zdGFuY2UoIHN1Y2Nlc3MgKTsgICBkZWxldGUgbmY7CisgKiA8L3ByZT4KKyAqIFxodG1sb25s
eTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIEVhY2ggb2YgdGhlc2UgbWV0aG9kcyBoYXMg
dHdvIHZhcmlhbnRzOyBvbmUgd2l0aCBhbiBleHBsaWNpdCBsb2NhbGUKKyAqIGFuZCBvbmUgd2l0
aG91dDsgdGhlIGxhdHRlciB1c2luZyB0aGUgZGVmYXVsdCBsb2NhbGUuCisgKiBcaHRtbG9ubHk8
YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgbmYgPSBOdW1iZXJGb3Jt
YXQ6OmNyZWF0ZUluc3RhbmNlKCBteUxvY2FsZSwgc3VjY2VzcyApOyAgICAgICAgICBkZWxldGUg
bmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUN1cnJlbmN5SW5zdGFuY2UoIG15
TG9jYWxlLCBzdWNjZXNzICk7ICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6
OmNyZWF0ZVBlcmNlbnRJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgICBkZWxldGUgbmY7
CisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIEEg
PGNvZGU+TG9jYWxlPC9jb2RlPiBpcyB0aGUgbWVjaGFuaXNtIGZvciBpZGVudGlmeWluZyB0aGUg
a2luZCBvZiBvYmplY3QKKyAqICg8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+KSB0aGF0IHlvdSB3
b3VsZCBsaWtlIHRvIGdldC4gVGhlIGxvY2FsZSBpcworICogPFNUUk9ORz5qdXN0PC9TVFJPTkc+
IGEgbWVjaGFuaXNtIGZvciBpZGVudGlmeWluZyBvYmplY3RzLAorICogPFNUUk9ORz5ub3Q8L1NU
Uk9ORz4gYSBjb250YWluZXIgZm9yIHRoZSBvYmplY3RzIHRoZW1zZWx2ZXMuCisgKgorICogPFA+
CisgKiBFYWNoIGNsYXNzIHRoYXQgcGVyZm9ybXMgbG9jYWxlLXNlbnNpdGl2ZSBvcGVyYXRpb25z
IGFsbG93cyB5b3UKKyAqIHRvIGdldCBhbGwgdGhlIGF2YWlsYWJsZSBvYmplY3RzIG9mIHRoYXQg
dHlwZS4gWW91IGNhbiBzaWZ0CisgKiB0aHJvdWdoIHRoZXNlIG9iamVjdHMgYnkgbGFuZ3VhZ2Us
IGNvdW50cnksIG9yIHZhcmlhbnQsCisgKiBhbmQgdXNlIHRoZSBkaXNwbGF5IG5hbWVzIHRvIHBy
ZXNlbnQgYSBtZW51IHRvIHRoZSB1c2VyLgorICogRm9yIGV4YW1wbGUsIHlvdSBjYW4gY3JlYXRl
IGEgbWVudSBvZiBhbGwgdGhlIGNvbGxhdGlvbiBvYmplY3RzCisgKiBzdWl0YWJsZSBmb3IgYSBn
aXZlbiBsYW5ndWFnZS4gU3VjaCBjbGFzc2VzIGltcGxlbWVudCB0aGVzZQorICogdGhyZWUgY2xh
c3MgbWV0aG9kczoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHBy
ZT4KKyAqICAgICAgIHN0YXRpYyBMb2NhbGUqIGdldEF2YWlsYWJsZUxvY2FsZXMoaW50MzJfdCYg
bnVtTG9jYWxlcykKKyAqICAgICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBnZXREaXNwbGF5TmFt
ZShjb25zdCBMb2NhbGUmICBvYmplY3RMb2NhbGUsCisgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxlJiAgZGlzcGxheUxvY2FsZSwKKyAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBk
aXNwbGF5TmFtZSkKKyAqICAgICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBnZXREaXNwbGF5TmFt
ZShjb25zdCBMb2NhbGUmICBvYmplY3RMb2NhbGUsCisgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcGxheU5hbWUpCisgKiA8L3By
ZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqCisgKiBAc3RhYmxl
IElDVSAyLjAKKyAqIEBzZWUgUmVzb3VyY2VCdW5kbGUKKyAqLworY2xhc3MgVV9DT01NT05fQVBJ
IExvY2FsZSA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1YmxpYzoKKyAgICAvKiogVXNlZnVsIGNvbnN0
YW50IGZvciB0aGUgUm9vdCBsb2NhbGUuIEBzdGFibGUgSUNVIDQuNCAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRSb290KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRFbmdsaXNoKHZvaWQpOworICAgIC8qKiBVc2VmdWwg
Y29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRp
YyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRGcmVuY2godm9pZCk7CisgICAgLyoqIFVzZWZ1
bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3Rh
dGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEdlcm1hbih2b2lkKTsKKyAgICAvKiogVXNl
ZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBz
dGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SXRhbGlhbih2b2lkKTsKKyAgICAvKiog
VXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAg
ICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SmFwYW5lc2Uodm9pZCk7CisgICAg
LyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEtvcmVhbih2b2lkKTsKKyAg
ICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAg
Ki8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2hpbmVzZSh2b2lkKTsK
KyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAy
LjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0U2ltcGxpZmllZENo
aW5lc2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4g
QHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdl
dFRyYWRpdGlvbmFsQ2hpbmVzZSh2b2lkKTsKKworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9y
IHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25z
dCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRGcmFuY2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25z
dGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3Rh
dGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEdlcm1hbnkodm9pZCk7CisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEl0YWx5KHZvaWQpOworICAg
IC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNV
IDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRKYXBhbih2b2lk
KTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3Rh
YmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0S29y
ZWEodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lv
bi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQy
IGdldENoaW5hKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRy
eS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVf
RVhQT1JUMiBnZXRQUkModm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBj
b3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2Fs
ZSAmVV9FWFBPUlQyIGdldFRhaXdhbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZv
ciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VUsodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFu
dCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFVTKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDYW5hZGEodm9pZCk7CisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENhbmFkYUZyZW5jaCh2b2lk
KTsKKworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgZGVmYXVsdCBsb2NhbGUgb2JqZWN0
LCBhIExvY2FsZSBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIElELgorICAgICAqCisgICAgICogQHNl
ZSBnZXREZWZhdWx0CisgICAgICogQHNlZSB1bG9jX2dldERlZmF1bHQKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0
cnVjdCBhIGxvY2FsZSBmcm9tIGxhbmd1YWdlLCBjb3VudHJ5LCB2YXJpYW50LgorICAgICAqIElm
IGFuIGVycm9yIG9jY3VycywgdGhlbiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgImJv
Z3VzIgorICAgICAqIChpc0JvZ3VzKCkgd2lsbCByZXR1cm4gVFJVRSkuCisgICAgICoKKyAgICAg
KiBAcGFyYW0gbGFuZ3VhZ2UgTG93ZXJjYXNlIHR3by1sZXR0ZXIgb3IgdGhyZWUtbGV0dGVyIElT
Ty02MzkgY29kZS4KKyAgICAgKiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGluc3RlYWQgYmUgYW4gSUNV
IHN0eWxlIEMgbG9jYWxlIChlLmcuICJlbl9VUyIpLAorICAgICAqICBidXQgdGhlIG90aGVyIHBh
cmFtZXRlcnMgbXVzdCBub3QgYmUgdXNlZC4KKyAgICAgKiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGJl
IE5VTEw7IGlmIHNvLAorICAgICAqICB0aGUgbG9jYWxlIGlzIGluaXRpYWxpemVkIHRvIG1hdGNo
IHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqICAoVGhpcyBpcyB0aGUgc2FtZSBh
cyB1c2luZyB0aGUgZGVmYXVsdCBjb25zdHJ1Y3Rvci4pCisgICAgICogIFBsZWFzZSBub3RlOiBU
aGUgSmF2YSBMb2NhbGUgY2xhc3MgZG9lcyBOT1QgYWNjZXB0IHRoZSBmb3JtCisgICAgICogICdu
ZXcgTG9jYWxlKCJlbl9VUyIpJyBidXQgb25seSAnbmV3IExvY2FsZSgiZW4iLCJVUyIpJworICAg
ICAqCisgICAgICogQHBhcmFtIGNvdW50cnkgIFVwcGVyY2FzZSB0d28tbGV0dGVyIElTTy0zMTY2
IGNvZGUuIChvcHRpb25hbCkKKyAgICAgKiBAcGFyYW0gdmFyaWFudCAgVXBwZXJjYXNlIHZlbmRv
ciBhbmQgYnJvd3NlciBzcGVjaWZpYyBjb2RlLiBTZWUgY2xhc3MKKyAgICAgKiAgICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb24uIChvcHRpb25hbCkKKyAgICAgKiBAcGFyYW0ga2V5d29yZHNBbmRW
YWx1ZXMgQSBzdHJpbmcgY29uc2lzdGluZyBvZiBrZXl3b3JkL3ZhbHVlcyBwYWlycywgc3VjaCBh
cworICAgICAqICAgICAgICAgICAgICAgICAiY29sbGF0aW9uPXBob25lYm9vaztjdXJyZW5jeT1l
dXJvIgorICAgICAqCisgICAgICogQHNlZSBnZXREZWZhdWx0CisgICAgICogQHNlZSB1bG9jX2dl
dERlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUoIGNv
bnN0ICAgY2hhciAqIGxhbmd1YWdlLAorICAgICAgICAgICAgY29uc3QgICBjaGFyICogY291bnRy
eSAgPSAwLAorICAgICAgICAgICAgY29uc3QgICBjaGFyICogdmFyaWFudCAgPSAwLAorICAgICAg
ICAgICAgY29uc3QgICBjaGFyICoga2V5d29yZHNBbmRWYWx1ZXMgPSAwKTsKKworICAgIC8qKgor
ICAgICAqIEluaXRpYWxpemVzIGEgTG9jYWxlIG9iamVjdCBmcm9tIGFub3RoZXIgTG9jYWxlIG9i
amVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgTG9jYWxlIG9iamVjdCBiZWlu
ZyBjb3BpZWQgaW4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxl
KGNvbnN0ICAgIExvY2FsZSYgb3RoZXIpOworCisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9y
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+TG9jYWxlKCkg
OworCisgICAgLyoqCisgICAgICogUmVwbGFjZXMgdGhlIGVudGlyZSBjb250ZW50cyBvZiAqdGhp
cyB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIg
VGhlIExvY2FsZSBvYmplY3QgYmVpbmcgY29waWVkIGluLgorICAgICAqIEByZXR1cm4gICAgICAq
dGhpcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZSYgb3BlcmF0
b3I9KGNvbnN0IExvY2FsZSYgb3RoZXIpOworCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHR3
byBsb2NhbGUga2V5cyBhcmUgdGhlIHNhbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIg
VGhlIGxvY2FsZSBrZXkgb2JqZWN0IHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcy4KKyAgICAgKiBA
cmV0dXJuICAgICAgVHJ1ZSBpZiB0aGUgdHdvIGxvY2FsZSBrZXlzIGFyZSB0aGUgc2FtZSwgZmFs
c2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29s
ICAgb3BlcmF0b3I9PShjb25zdCAgICBMb2NhbGUmICAgICBvdGhlcikgY29uc3Q7CisKKyAgICAv
KioKKyAgICAgKiBDaGVja3MgaWYgdHdvIGxvY2FsZSBrZXlzIGFyZSBub3QgdGhlIHNhbWUuCisg
ICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIGxvY2FsZSBrZXkgb2JqZWN0IHRvIGJlIGNv
bXBhcmVkIHdpdGggdGhpcy4KKyAgICAgKiBAcmV0dXJuICAgICAgVHJ1ZSBpZiB0aGUgdHdvIGxv
Y2FsZSBrZXlzIGFyZSBub3QgdGhlIHNhbWUsIGZhbHNlCisgICAgICogICAgICAgICAgICAgIG90
aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCAgIG9w
ZXJhdG9yIT0oY29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0OworCisgICAgLyoqCisg
ICAgICogQ2xvbmUgdGhpcyBvYmplY3QuCisgICAgICogQ2xvbmVzIGNhbiBiZSB1c2VkIGNvbmN1
cnJlbnRseSBpbiBtdWx0aXBsZSB0aHJlYWRzLgorICAgICAqIElmIGFuIGVycm9yIG9jY3Vycywg
dGhlbiBOVUxMIGlzIHJldHVybmVkLgorICAgICAqIFRoZSBjYWxsZXIgbXVzdCBkZWxldGUgdGhl
IGNsb25lLgorICAgICAqCisgICAgICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgb2JqZWN0Cisg
ICAgICoKKyAgICAgKiBAc2VlIGdldER5bmFtaWNDbGFzc0lECisgICAgICogQHN0YWJsZSBJQ1Ug
Mi44CisgICAgICovCisgICAgTG9jYWxlICpjbG9uZSgpIGNvbnN0OworCisjaWZuZGVmIFVfSElE
RV9TWVNURU1fQVBJCisgICAgLyoqCisgICAgICogQ29tbW9uIG1ldGhvZHMgb2YgZ2V0dGluZyB0
aGUgY3VycmVudCBkZWZhdWx0IExvY2FsZS4gVXNlZCBmb3IgdGhlCisgICAgICogcHJlc2VudGF0
aW9uOiBtZW51cywgZGlhbG9ncywgZXRjLiBHZW5lcmFsbHkgc2V0IG9uY2Ugd2hlbiB5b3VyIGFw
cGxldCBvcgorICAgICAqIGFwcGxpY2F0aW9uIGlzIGluaXRpYWxpemVkLCB0aGVuIG5ldmVyIHJl
c2V0LiAoSWYgeW91IGRvIHJlc2V0IHRoZQorICAgICAqIGRlZmF1bHQgbG9jYWxlLCB5b3UgcHJv
YmFibHkgd2FudCB0byByZWxvYWQgeW91ciBHVUksIHNvIHRoYXQgdGhlIGNoYW5nZQorICAgICAq
IGlzIHJlZmxlY3RlZCBpbiB5b3VyIGludGVyZmFjZS4pCisgICAgICoKKyAgICAgKiBNb3JlIGFk
dmFuY2VkIHByb2dyYW1zIHdpbGwgYWxsb3cgdXNlcnMgdG8gdXNlIGRpZmZlcmVudCBsb2NhbGVz
IGZvcgorICAgICAqIGRpZmZlcmVudCBmaWVsZHMsIGUuZy4gaW4gYSBzcHJlYWRzaGVldC4KKyAg
ICAgKgorICAgICAqIE5vdGUgdGhhdCB0aGUgaW5pdGlhbCBzZXR0aW5nIHdpbGwgbWF0Y2ggdGhl
IGhvc3Qgc3lzdGVtLgorICAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhlIExvY2FsZSBv
YmplY3QgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBJRAorICAgICAqIEBzeXN0ZW0KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlJiBVX0VYUE9S
VDIgZ2V0RGVmYXVsdCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRlZmF1bHQu
IE5vcm1hbGx5IHNldCBvbmNlIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBwcm9jZXNzLAorICAgICAq
IHRoZW4gbmV2ZXIgcmVzZXQuCisgICAgICogc2V0RGVmYXVsdCgpIG9ubHkgY2hhbmdlcyBJQ1Un
cyBkZWZhdWx0IGxvY2FsZSBJRCwgPHN0cm9uZz5ub3Q8L3N0cm9uZz4KKyAgICAgKiB0aGUgZGVm
YXVsdCBsb2NhbGUgSUQgb2YgdGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQuCisgICAgICoKKyAgICAg
KiBAcGFyYW0gbmV3TG9jYWxlIExvY2FsZSB0byBzZXQgdG8uICBJZiBOVUxMLCBzZXQgdG8gdGhl
IHZhbHVlIG9idGFpbmVkCisgICAgICogICAgICAgICAgICAgICAgICBmcm9tIHRoZSBydW50aW1l
IGVudmlyb25lbWVudC4KKyAgICAgKiBAcGFyYW0gc3VjY2VzcyBUaGUgZXJyb3IgY29kZS4KKyAg
ICAgKiBAc3lzdGVtCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGlj
IHZvaWQgVV9FWFBPUlQyIHNldERlZmF1bHQoY29uc3QgTG9jYWxlJiBuZXdMb2NhbGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSYgICBzdWNjZXNzKTsK
KyNlbmRpZiAgLyogVV9ISURFX1NZU1RFTV9BUEkgKi8KKworICAgIC8qKgorICAgICAqIENyZWF0
ZXMgYSBsb2NhbGUgd2hpY2ggaGFzIGhhZCBtaW5pbWFsIGNhbm9uaWNhbGl6YXRpb24KKyAgICAg
KiBhcyBwZXIgdWxvY19nZXROYW1lKCkuCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgdG8g
Y3JlYXRlIGZyb20uICBJZiBuYW1lIGlzIG51bGwsCisgICAgICogIHRoZSBkZWZhdWx0IExvY2Fs
ZSBpcyB1c2VkLgorICAgICAqIEByZXR1cm4gbmV3IGxvY2FsZSBvYmplY3QKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKiBAc2VlIHVsb2NfZ2V0TmFtZQorICAgICAqLworICAgIHN0YXRp
YyBMb2NhbGUgVV9FWFBPUlQyIGNyZWF0ZUZyb21OYW1lKGNvbnN0IGNoYXIgKm5hbWUpOworCisg
ICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGxvY2FsZSBmcm9tIHRoZSBnaXZlbiBzdHJpbmcgYWZ0
ZXIgY2Fub25pY2FsaXppbmcKKyAgICAgKiB0aGUgc3RyaW5nIGJ5IGNhbGxpbmcgdWxvY19jYW5v
bmljYWxpemUoKS4KKyAgICAgKiBAcGFyYW0gbmFtZSB0aGUgbG9jYWxlIElEIHRvIGNyZWF0ZSBm
cm9tLiAgTXVzdCBub3QgYmUgTlVMTC4KKyAgICAgKiBAcmV0dXJuIGEgbmV3IGxvY2FsZSBvYmpl
Y3QgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDMu
MAorICAgICAqIEBzZWUgdWxvY19jYW5vbmljYWxpemUKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9j
YWxlIFVfRVhQT1JUMiBjcmVhdGVDYW5vbmljYWwoY29uc3QgY2hhciogbmFtZSk7CisKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tNjM5IGxhbmd1YWdlIGNvZGUuCisg
ICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0TGFuZ3VhZ2UoICkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tMTU5MjQg
YWJicmV2aWF0aW9uIHNjcmlwdCBjb2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0
byB0aGUgY29kZQorICAgICAqIEBzZWUgdXNjcmlwdF9nZXRTaG9ydE5hbWUKKyAgICAgKiBAc2Vl
IHVzY3JpcHRfZ2V0Q29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIGlu
bGluZSBjb25zdCBjaGFyICogIGdldFNjcmlwdCggKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIGxvY2FsZSdzIElTTy0zMTY2IGNvdW50cnkgY29kZS4KKyAgICAgKiBAcmV0
dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRDb3VudHJ5KCApIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgdmFyaWFudCBjb2RlLgorICAgICAq
IEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldFZhcmlhbnQoICkgY29uc3Q7
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBwcm9ncmFtbWF0aWMgbmFtZSBvZiB0aGUg
ZW50aXJlIGxvY2FsZSwgd2l0aCB0aGUgbGFuZ3VhZ2UsCisgICAgICogY291bnRyeSBhbmQgdmFy
aWFudCBzZXBhcmF0ZWQgYnkgdW5kZXJiYXJzLiBJZiBhIGZpZWxkIGlzIG1pc3NpbmcsIHVwCisg
ICAgICogdG8gdHdvIGxlYWRpbmcgdW5kZXJiYXJzIHdpbGwgb2NjdXIuIEV4YW1wbGU6ICJlbiIs
ICJkZV9ERSIsICJlbl9VU19XSU4iLAorICAgICAqICJkZV9fUE9TSVgiLCAiZnJfX01BQyIsICJf
X01BQyIsICJfTVQiLCAiX0ZSX0VVUk8iCisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0
byAibmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNv
bnN0IGNoYXIgKiBnZXROYW1lKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRo
ZSBwcm9ncmFtbWF0aWMgbmFtZSBvZiB0aGUgZW50aXJlIGxvY2FsZSBhcyBnZXROYW1lKCkgd291
bGQgcmV0dXJuLAorICAgICAqIGJ1dCB3aXRob3V0IGtleXdvcmRzLgorICAgICAqIEByZXR1cm4g
ICAgICBBIHBvaW50ZXIgdG8gIm5hbWUiLgorICAgICAqIEBzZWUgZ2V0TmFtZQorICAgICAqIEBz
dGFibGUgSUNVIDIuOAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRCYXNlTmFtZSgpIGNv
bnN0OworCisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsaXN0IG9mIGtleXdvcmRzIGZvciB0
aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIHN0
YXR1cyBjb2RlCisgICAgICogQHJldHVybiBwb2ludGVyIHRvIFN0cmluZ0VudW1lcmF0aW9uIGNs
YXNzLCBvciBOVUxMIGlmIHRoZXJlIGFyZSBubyBrZXl3b3Jkcy4gCisgICAgICogQ2xpZW50IG11
c3QgZGlzcG9zZSBvZiBpdCBieSBjYWxsaW5nIGRlbGV0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjgKKyAgICAgKi8KKyAgICBTdHJpbmdFbnVtZXJhdGlvbiAqIGNyZWF0ZUtleXdvcmRzKFVFcnJv
ckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB2YWx1ZSBm
b3IgYSBrZXl3b3JkLgorICAgICAqCisgICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2Yg
dGhlIGtleXdvcmQgZm9yIHdoaWNoIHdlIHdhbnQgdGhlIHZhbHVlLiBDYXNlIGluc2Vuc2l0aXZl
LgorICAgICAqIEBwYXJhbSBidWZmZXIgVGhlIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBrZXl3b3Jk
IHZhbHVlLgorICAgICAqIEBwYXJhbSBidWZmZXJDYXBhY2l0eSBUaGUgY2FwYWNpdHkgb2YgcmVj
ZWl2aW5nIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBzdGF0dXMgUmV0dXJucyBhbnkgZXJyb3IgaW5m
b3JtYXRpb24gd2hpbGUgcGVyZm9ybWluZyB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJu
IHRoZSBsZW5ndGggb2YgdGhlIGtleXdvcmQgdmFsdWUKKyAgICAgKgorICAgICAqIEBzdGFibGUg
SUNVIDIuOAorICAgICAqLworICAgIGludDMyX3QgZ2V0S2V5d29yZFZhbHVlKGNvbnN0IGNoYXIq
IGtleXdvcmROYW1lLCBjaGFyICpidWZmZXIsIGludDMyX3QgYnVmZmVyQ2FwYWNpdHksIFVFcnJv
ckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIG9yIHJlbW92ZXMg
dGhlIHZhbHVlIGZvciBhIGtleXdvcmQuCisgICAgICoKKyAgICAgKiBGb3IgcmVtb3ZpbmcgYWxs
IGtleXdvcmRzLCB1c2UgZ2V0QmFzZU5hbWUoKSwKKyAgICAgKiBhbmQgY29uc3RydWN0IGEgbmV3
IExvY2FsZSBpZiBpdCBkaWZmZXJzIGZyb20gZ2V0TmFtZSgpLgorICAgICAqCisgICAgICogQHBh
cmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgdG8gYmUgc2V0LiBDYXNlIGluc2Vu
c2l0aXZlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkVmFsdWUgdmFsdWUgb2YgdGhlIGtleXdvcmQg
dG8gYmUgc2V0LiBJZiAwLWxlbmd0aCBvcgorICAgICAqICBOVUxMLCB3aWxsIHJlc3VsdCBpbiB0
aGUga2V5d29yZCBiZWluZyByZW1vdmVkLiBObyBlcnJvciBpcyBnaXZlbiBpZgorICAgICAqICB0
aGF0IGtleXdvcmQgZG9lcyBub3QgZXhpc3QuCisgICAgICogQHBhcmFtIHN0YXR1cyBSZXR1cm5z
IGFueSBlcnJvciBpbmZvcm1hdGlvbiB3aGlsZSBwZXJmb3JtaW5nIHRoaXMgb3BlcmF0aW9uLgor
ICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgNDkKKyAgICAgKi8KKyAgICB2b2lkIHNldEtleXdv
cmRWYWx1ZShjb25zdCBjaGFyKiBrZXl3b3JkTmFtZSwgY29uc3QgY2hhcioga2V5d29yZFZhbHVl
LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogcmV0dXJucyB0aGUgbG9j
YWxlJ3MgdGhyZWUtbGV0dGVyIGxhbmd1YWdlIGNvZGUsIGFzIHNwZWNpZmllZAorICAgICAqIGlu
IElTTyBkcmFmdCBzdGFuZGFyZCBJU08tNjM5LTIuCisgICAgICogQHJldHVybiAgICAgIEFuIGFs
aWFzIHRvIHRoZSBjb2RlLCBvciBhbiBlbXB0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0SVNPM0xhbmd1YWdlKCkgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAibmFtZSIgd2l0aCB0aGUgbG9jYWxlJ3MgdGhyZWUt
bGV0dGVyIElTTy0zMTY2IGNvdW50cnkgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxp
YXMgdG8gdGhlIGNvZGUsIG9yIGFuIGVtcHR5IHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRJU08zQ291bnRyeSgpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgV2luZG93cyBMQ0lEIHZhbHVlIGNvcnJlc3BvbmRp
bmcgdG8gdGhpcyBsb2NhbGUuCisgICAgICogVGhpcyB2YWx1ZSBpcyBzdG9yZWQgaW4gdGhlIHJl
c291cmNlIGRhdGEgZm9yIHRoZSBsb2NhbGUgYXMgYSBvbmUtdG8tZm91ci1kaWdpdAorICAgICAq
IGhleGFkZWNpbWFsIG51bWJlci4gIElmIHRoZSByZXNvdXJjZSBpcyBtaXNzaW5nLCBpbiB0aGUg
d3JvbmcgZm9ybWF0LCBvcgorICAgICAqIHRoZXJlIGlzIG5vIFdpbmRvd3MgTENJRCB2YWx1ZSB0
aGF0IGNvcnJlc3BvbmRzIHRvIHRoaXMgbG9jYWxlLCByZXR1cm5zIDAuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdWludDMyX3QgICAgICAgIGdldExDSUQodm9pZCkgY29u
c3Q7CisKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorICAgIC8qKgorICAgICAqIFJldHVybnMg
d2hldGhlciB0aGlzIGxvY2FsZSdzIHNjcmlwdCBpcyB3cml0dGVuIHJpZ2h0LXRvLWxlZnQuCisg
ICAgICogSWYgdGhlcmUgaXMgbm8gc2NyaXB0IHN1YnRhZywgdGhlbiB0aGUgbGlrZWx5IHNjcmlw
dCBpcyB1c2VkLCBzZWUgdWxvY19hZGRMaWtlbHlTdWJ0YWdzKCkuCisgICAgICogSWYgbm8gbGlr
ZWx5IHNjcmlwdCBpcyBrbm93biwgdGhlbiBGQUxTRSBpcyByZXR1cm5lZC4KKyAgICAgKgorICAg
ICAqIEEgc2NyaXB0IGlzIHJpZ2h0LXRvLWxlZnQgYWNjb3JkaW5nIHRvIHRoZSBDTERSIHNjcmlw
dCBtZXRhZGF0YQorICAgICAqIHdoaWNoIGNvcnJlc3BvbmRzIHRvIHdoZXRoZXIgdGhlIHNjcmlw
dCdzIGxldHRlcnMgaGF2ZSBCaWRpX0NsYXNzPVIgb3IgQUwuCisgICAgICoKKyAgICAgKiBSZXR1
cm5zIFRSVUUgZm9yICJhciIgYW5kICJlbi1IZWJyIiwgRkFMU0UgZm9yICJ6aCIgYW5kICJmYS1D
eXJsIi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0
IGlzIHdyaXR0ZW4gcmlnaHQtdG8tbGVmdAorICAgICAqIEBkcmFmdCBJQ1UgNTQKKyAgICAgKi8K
KyAgICBVQm9vbCBpc1JpZ2h0VG9MZWZ0KCkgY29uc3Q7CisjZW5kaWYgIC8qIFVfSElERV9EUkFG
VF9BUEkgKi8KKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwTGFuZyIgd2l0aCB0aGUg
bmFtZSBvZiB0aGlzIGxvY2FsZSdzIGxhbmd1YWdlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvcgor
ICAgICAqIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwg
aWYgdGhlIGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMKKyAgICAgKiAiZnIiIGFuZCB0aGUgZGVm
YXVsdCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQg
c2V0CisgICAgICogZGlzcExhbmcgdG8gIkZyZW5jaCIuCisgICAgICogQHBhcmFtIGRpc3BMYW5n
ICBSZWNlaXZlcyB0aGUgbGFuZ3VhZ2UncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAg
ICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcExhbmciLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TGFuZ3VhZ2UoVW5pY29k
ZVN0cmluZyYgICBkaXNwTGFuZykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAi
ZGlzcExhbmciIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBpbiBhIGZv
cm1hdCBzdWl0YWJsZSBmb3IKKyAgICAgKiB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVj
aWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncwor
ICAgICAqIGxhbmd1YWdlIGNvZGUgaXMgImVuIiBhbmQgZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdl
IGNvZGUgaXMgImZyIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwTGFuZyB0
byAiQW5nbGFpcyIuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUg
bG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIEluIG90aGVyIHdvcmRzLAor
ICAgICAqICAgICAgICAgICAgICAgICAgaWYgdGhlIGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMg
ImVuIiwgcGFzc2luZyBMb2NhbGU6OmdldEZyZW5jaCgpIGZvcgorICAgICAqICAgICAgICAgICAg
ICAgICAgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIkFuZ2xhaXMiLCB3aGlsZSBwYXNz
aW5nIExvY2FsZTo6Z2V0R2VybWFuKCkKKyAgICAgKiAgICAgICAgICAgICAgICAgIGZvciBkaXNw
bGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiRW5nbGlzY2giLgorICAgICAqIEBwYXJhbSBkaXNw
TGFuZyAgUmVjZWl2ZXMgdGhlIGxhbmd1YWdlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1
cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BMYW5nIi4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUxhbmd1YWdlKCBj
b25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BMYW5nKSBj
b25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwU2NyaXB0IiB3aXRoIHRoZSBu
YW1lIG9mIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICog
Zm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwgaWYg
dGhlIGxvY2FsZSdzIHNjcmlwdCBjb2RlCisgICAgICogaXMgIkxBVE4iIGFuZCB0aGUgZGVmYXVs
dCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0
CisgICAgICogZGlzcFNjcmlwdCB0byAiTGF0aW4iLgorICAgICAqIEBwYXJhbSBkaXNwU2NyaXB0
ICAgIFJlY2VpdmVzIHRoZSBzY3JpcHRzJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4g
ICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwU2NyaXB0Ii4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjgKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheVNjcmlwdCgg
ICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcFNjcmlwdCkgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBGaWxscyBpbiAiZGlzcFNjcmlwdCIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdz
IGNvdW50cnkgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGlu
IHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBp
ZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBzY3JpcHQgY29kZSBpcyAiTEFUTiIgYW5kIGRpc3BsYXlM
b2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0Cisg
ICAgICogZGlzcFNjcmlwdCB0byAiTGF0aW4iLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxl
ICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1l
LiAgSW4gb3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB3b3JkcywgaWYgdGhlIGxv
Y2FsZSdzIHNjcmlwdCBjb2RlIGlzICJMQVROIiwgcGFzc2luZworICAgICAqICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsZTo6Z2V0RnJlbmNoKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVz
dWx0IGluICIiLCB3aGlsZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHBhc3NpbmcgTG9j
YWxlOjpnZXRHZXJtYW4oKSBmb3IgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4KKyAgICAg
KiAgICAgICAgICAgICAgICAgICAgICAiIi4KKyAgICAgKiBAcGFyYW0gZGlzcFNjcmlwdCAgICBS
ZWNlaXZlcyB0aGUgc2NyaXB0cydzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAg
ICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFNjcmlwdCIuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi44CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlTY3JpcHQoICBjb25z
dCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgZGlzcFNjcmlwdCkgY29u
c3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcENvdW50cnkiIHdpdGggdGhlIG5h
bWUgb2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICog
Zm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwgaWYg
dGhlIGxvY2FsZSdzIGNvdW50cnkgY29kZQorICAgICAqIGlzICJGUiIgYW5kIHRoZSBkZWZhdWx0
IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQK
KyAgICAgKiBkaXNwQ291bnRyeSB0byAiRnJhbmNlIi4KKyAgICAgKiBAcGFyYW0gZGlzcENvdW50
cnkgICBSZWNlaXZlcyB0aGUgY291bnRyeSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJu
ICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcENvdW50cnkiLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5Q291bnRy
eSggICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcENvdW50cnkpIGNvbnN0OworCisgICAgLyoq
CisgICAgICogRmlsbHMgaW4gImRpc3BDb3VudHJ5IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9j
YWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3Bs
YXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgRm9yIGV4YW1w
bGUsIGlmIHRoZSBsb2NhbGUncworICAgICAqIGNvdW50cnkgY29kZSBpcyAiVVMiIGFuZCBkaXNw
bGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZnIiLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNl
dAorICAgICAqIGRpc3BDb3VudHJ5IHRvICImRWFjdXRlO3RhdHMtVW5pcyIuCisgICAgICogQHBh
cmFtIGRpc3BsYXlMb2NhbGUgICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRv
IGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAg
IHdvcmRzLCBpZiB0aGUgbG9jYWxlJ3MgY291bnRyeSBjb2RlIGlzICJVUyIsIHBhc3NpbmcKKyAg
ICAgKiAgICAgICAgICAgICAgICAgICAgICBMb2NhbGU6OmdldEZyZW5jaCgpIGZvciBkaXNwbGF5
TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiJkVhY3V0ZTt0YXRzLVVuaXMiLCB3aGlsZQorICAgICAq
ICAgICAgICAgICAgICAgICAgICAgIHBhc3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKSBmb3IgZGlz
cGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAi
VmVyZWluaWd0ZSBTdGFhdGVuIi4KKyAgICAgKiBAcGFyYW0gZGlzcENvdW50cnkgICBSZWNlaXZl
cyB0aGUgY291bnRyeSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAg
ICBBIHJlZmVyZW5jZSB0byAiZGlzcENvdW50cnkiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5Q291bnRyeSggIGNvbnN0ICAg
TG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgZGlzcENvdW50cnkpIGNvbnN0
OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BWYXIiIHdpdGggdGhlIG5hbWUgb2Yg
dGhpcyBsb2NhbGUncyB2YXJpYW50IGNvZGUgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBm
b3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlz
cFZhciAgIFJlY2VpdmVzIHRoZSB2YXJpYW50J3MgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAg
ICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwVmFyIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheVZhcmlhbnQoICAgICAgVW5pY29k
ZVN0cmluZyYgZGlzcFZhcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlz
cFZhciIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgY29kZSBpbiBhIGZv
cm1hdAorICAgICAqIHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVj
aWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBT
cGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAg
ICogQHBhcmFtIGRpc3BWYXIgICBSZWNlaXZlcyB0aGUgdmFyaWFudCdzIGRpc3BsYXkgbmFtZS4K
KyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwVmFyIi4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxh
eVZhcmlhbnQoICBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYg
IGRpc3BWYXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGgg
dGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIHVzZXIgZGlz
cGxheQorICAgICAqIGluIHRoZSBkZWZhdWx0IGxvY2FsZS4gIFRoaXMgZnVuY3Rpb24gdXNlcyBn
ZXREaXNwbGF5TGFuZ3VhZ2UoKSwgZ2V0RGlzcGxheUNvdW50cnkoKSwKKyAgICAgKiBhbmQgZ2V0
RGlzcGxheVZhcmlhbnQoKSB0byBkbyBpdHMgd29yaywgYW5kIG91dHB1dHMgdGhlIGRpc3BsYXkg
bmFtZSBpbiB0aGUgZm9ybWF0CisgICAgICogImxhbmd1YWdlIChjb3VudHJ5Wyx2YXJpYW50XSki
LiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBkZWZhdWx0IGxvY2FsZSBpcyBlbl9VUywgdGhlbgorICAg
ICAqIGZyX0ZSJ3MgZGlzcGxheSBuYW1lIHdvdWxkIGJlICJGcmVuY2ggKEZyYW5jZSkiLCBhbmQg
ZXNfTVhfVHJhZGl0aW9uYWwncyBkaXNwbGF5IG5hbWUKKyAgICAgKiB3b3VsZCBiZSAiU3Bhbmlz
aCAoTWV4aWNvLFRyYWRpdGlvbmFsKSIuCisgICAgICogQHBhcmFtIG5hbWUgIFJlY2VpdmVzIHRo
ZSBsb2NhbGUncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgIEEgcmVmZXJlbmNl
IHRvICJuYW1lIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2Rl
U3RyaW5nJiAgZ2V0RGlzcGxheU5hbWUoICAgICAgICAgVW5pY29kZVN0cmluZyYgIG5hbWUpIGNv
bnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIG5hbWUgb2Yg
dGhpcyBsb2NhbGUgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIHVzZXIgZGlzcGxheQorICAgICAq
IGluIHRoZSBsb2NhbGUgc3BlY2ZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgVGhpcyBmdW5jdGlv
biB1c2VzIGdldERpc3BsYXlMYW5ndWFnZSgpLAorICAgICAqIGdldERpc3BsYXlDb3VudHJ5KCks
IGFuZCBnZXREaXNwbGF5VmFyaWFudCgpIHRvIGRvIGl0cyB3b3JrLCBhbmQgb3V0cHV0cyB0aGUg
ZGlzcGxheQorICAgICAqIG5hbWUgaW4gdGhlIGZvcm1hdCAibGFuZ3VhZ2UgKGNvdW50cnlbLHZh
cmlhbnRdKSIuICBGb3IgZXhhbXBsZSwgaWYgZGlzcGxheUxvY2FsZSBpcworICAgICAqIGZyX0ZS
LCB0aGVuIGVuX1VTJ3MgZGlzcGxheSBuYW1lIHdvdWxkIGJlICJBbmdsYWlzICgmRWFjdXRlO3Rh
dHMtVW5pcykiLCBhbmQgbm9fTk9fTlkncworICAgICAqIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAi
bm9ydiZlYWN1dGU7Z2llbiAoTm9ydiZlZ3JhdmU7Z2UsTlkpIi4KKyAgICAgKiBAcGFyYW0gZGlz
cGxheUxvY2FsZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRo
ZSBuYW1lLgorICAgICAqIEBwYXJhbSBuYW1lICAgICAgUmVjZWl2ZXMgdGhlIGxvY2FsZSdzIGRp
c3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJuYW1l
Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAg
Z2V0RGlzcGxheU5hbWUoIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcm
ICBuYW1lKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBm
b3IgdGhlIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQz
Ml90ICAgICAgICAgaGFzaENvZGUodm9pZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXRz
IHRoZSBsb2NhbGUgdG8gYm9ndXMKKyAgICAgKiBBIGJvZ3VzIGxvY2FsZSByZXByZXNlbnRzIGEg
bm9uLWV4aXN0aW5nIGxvY2FsZSBhc3NvY2lhdGVkCisgICAgICogd2l0aCBzZXJ2aWNlcyB0aGF0
IGNhbiBiZSBpbnN0YW50aWF0ZWQgZnJvbSBub24tbG9jYWxlIGRhdGEKKyAgICAgKiBpbiBhZGRp
dGlvbiB0byBsb2NhbGUgKGZvciBleGFtcGxlLCBjb2xsYXRpb24gY2FuIGJlCisgICAgICogaW5z
dGFudGlhdGVkIGZyb20gYSBsb2NhbGUgYW5kIGZyb20gYSBydWxlIHNldCkuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgdm9pZCBzZXRUb0JvZ3VzKCk7CisKKyAgICAvKioK
KyAgICAgKiBHZXRzIHRoZSBib2d1cyBzdGF0ZS4gTG9jYWxlIG9iamVjdCBjYW4gYmUgYm9ndXMg
aWYgaXQgZG9lc24ndCBleGlzdAorICAgICAqIEByZXR1cm4gRkFMU0UgaWYgaXQgaXMgYSByZWFs
IGxvY2FsZSwgVFJVRSBpZiBpdCBpcyBhIGJvZ3VzIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNV
IDIuMQorICAgICAqLworICAgIFVCb29sIGlzQm9ndXModm9pZCkgY29uc3Q7CisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgaW5zdGFsbGVkIGxvY2FsZXMuCisgICAgICog
QHBhcmFtIGNvdW50IFJlY2VpdmVzIHRoZSBudW1iZXIgb2YgbG9jYWxlcyBpbiB0aGUgbGlzdC4K
KyAgICAgKiBAcmV0dXJuICAgICAgQSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIExvY2FsZSBvYmpl
Y3RzLiAgVGhpcyBhcnJheSBpcyB0aGUgbGlzdAorICAgICAqICAgICAgICAgICAgICBvZiBhbGwg
bG9jYWxlcyB3aXRoIGluc3RhbGxlZCByZXNvdXJjZSBmaWxlcy4gIFRoZSBjYWxsZWQgZG9lcyBO
T1QKKyAgICAgKiAgICAgICAgICAgICAgZ2V0IG93bmVyc2hpcCBvZiB0aGlzIGxpc3QsIGFuZCBt
dXN0IE5PVCBkZWxldGUgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
c3RhdGljIGNvbnN0IExvY2FsZSogVV9FWFBPUlQyIGdldEF2YWlsYWJsZUxvY2FsZXMoaW50MzJf
dCYgY291bnQpOworCisgICAgLyoqCisgICAgICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJs
ZSAyLWxldHRlciBjb3VudHJ5IGNvZGVzIGRlZmluZWQgaW4gSVNPIDMxNjYuICBUaGlzIGlzIGEK
KyAgICAgKiBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBvZiBjaGFy
LiAgQWxsIG9mIHRoZXNlIHBvaW50ZXJzIGFyZQorICAgICAqIG93bmVkIGJ5IElDVS0tIGRvIG5v
dCBkZWxldGUgdGhlbSwgYW5kIGRvIG5vdCB3cml0ZSB0aHJvdWdoIHRoZW0uICBUaGUgYXJyYXkg
aXMKKyAgICAgKiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCisgICAgICogQHJldHVy
biBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBjb3VudHJ5IGNvZGVzCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0KiBVX0VYUE9SVDIg
Z2V0SVNPQ291bnRyaWVzKCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgbGlzdCBvZiBhbGwg
YXZhaWxhYmxlIGxhbmd1YWdlIGNvZGVzIGRlZmluZWQgaW4gSVNPIDYzOS4gIFRoaXMgaXMgYSBw
b2ludGVyCisgICAgICogdG8gYW4gYXJyYXkgb2YgcG9pbnRlcnMgdG8gYXJyYXlzIG9mIGNoYXIu
ICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlIG93bmVkCisgICAgICogYnkgSUNVLS0gZG8gbm90
IGRlbGV0ZSB0aGVtLCBhbmQgZG8gbm90IHdyaXRlIHRocm91Z2ggdGhlbS4gIFRoZSBhcnJheSBp
cworICAgICAqIHRlcm1pbmF0ZWQgd2l0aCBhIG51bGwgcG9pbnRlci4KKyAgICAgKiBAcmV0dXJu
IGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGxhbmd1YWdlIGNvZGVzCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0KiBVX0VYUE9SVDIg
Z2V0SVNPTGFuZ3VhZ2VzKCk7CisKKyAgICAvKioKKyAgICAgKiBJQ1UgInBvb3IgbWFuJ3MgUlRU
SSIsIHJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhpcyBjbGFzcy4KKyAgICAgKgorICAgICAqIEBz
dGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHN0YXRpYyBVQ2xhc3NJRCBVX0VYUE9SVDIgZ2V0
U3RhdGljQ2xhc3NJRCgpOworCisgICAgLyoqCisgICAgICogSUNVICJwb29yIG1hbidzIFJUVEki
LCByZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoZSBhY3R1YWwgY2xhc3MuCisgICAgICoKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFt
aWNDbGFzc0lEKCkgY29uc3Q7CisKK3Byb3RlY3RlZDogLyogb25seSBwcm90ZWN0ZWQgZm9yIHRl
c3RpbmcgcHVycG9zZXMuIERPIE5PVCBVU0UuICovCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9B
UEkKKyAgICAvKioKKyAgICAgKiBTZXQgdGhpcyBmcm9tIGEgc2luZ2xlIFBPU0lYIHN0eWxlIGxv
Y2FsZSBzdHJpbmcuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgdm9pZCBzZXRGcm9t
UE9TSVhJRChjb25zdCBjaGFyICpwb3NpeElEKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFM
X0FQSSAqLworCitwcml2YXRlOgorICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgdGhlIGxvY2Fs
ZSBvYmplY3Qgd2l0aCBhIG5ldyBuYW1lLgorICAgICAqIFdhcyBkZXByZWNhdGVkIC0gdXNlZCBp
biBpbXBsZW1lbnRhdGlvbiAtIG1vdmVkIGludGVybmFsCisgICAgICoKKyAgICAgKiBAcGFyYW0g
Y0xvY2FsZUlEIFRoZSBuZXcgbG9jYWxlIG5hbWUuCisgICAgICogQHBhcmFtIGNhbm9uaWNhbGl6
ZSB3aGV0aGVyIHRvIGNhbGwgdWxvY19jYW5vbmljYWxpemUgb24gY0xvY2FsZUlECisgICAgICov
CisgICAgTG9jYWxlJiBpbml0KGNvbnN0IGNoYXIqIGNMb2NhbGVJRCwgVUJvb2wgY2Fub25pY2Fs
aXplKTsKKworICAgIC8qCisgICAgICogSW50ZXJuYWwgY29uc3RydWN0b3IgdG8gYWxsb3cgY29u
c3RydWN0aW9uIG9mIGEgbG9jYWxlIG9iamVjdCB3aXRoCisgICAgICogICBOTyBzaWRlIGVmZmVj
dHMuICAgKERlZmF1bHQgY29uc3RydWN0b3IgdHJpZXMgdG8gZ2V0CisgICAgICogICB0aGUgZGVm
YXVsdCBsb2NhbGUuKQorICAgICAqLworICAgIGVudW0gRUxvY2FsZVR5cGUgeworICAgICAgICBl
Qk9HVVMKKyAgICB9OworICAgIExvY2FsZShFTG9jYWxlVHlwZSk7CisKKyAgICAvKioKKyAgICAg
KiBJbml0aWFsaXplIHRoZSBsb2NhbGUgY2FjaGUgZm9yIGNvbW1vbmx5IHVzZWQgbG9jYWxlcwor
ICAgICAqLworICAgIHN0YXRpYyBMb2NhbGUgKmdldExvY2FsZUNhY2hlKHZvaWQpOworCisgICAg
Y2hhciBsYW5ndWFnZVtVTE9DX0xBTkdfQ0FQQUNJVFldOworICAgIGNoYXIgc2NyaXB0W1VMT0Nf
U0NSSVBUX0NBUEFDSVRZXTsKKyAgICBjaGFyIGNvdW50cnlbVUxPQ19DT1VOVFJZX0NBUEFDSVRZ
XTsKKyAgICBpbnQzMl90IHZhcmlhbnRCZWdpbjsKKyAgICBjaGFyKiBmdWxsTmFtZTsKKyAgICBj
aGFyIGZ1bGxOYW1lQnVmZmVyW1VMT0NfRlVMTE5BTUVfQ0FQQUNJVFldOworICAgIC8vIG5hbWUg
d2l0aG91dCBrZXl3b3JkcworICAgIGNoYXIqIGJhc2VOYW1lOworICAgIHZvaWQgaW5pdEJhc2VO
YW1lKFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICBVQm9vbCBmSXNCb2d1czsKKworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJmdldExvY2FsZShpbnQgbG9jaWQpOworCisgICAgLyoqCisgICAg
ICogQSBmcmllbmQgdG8gYWxsb3cgdGhlIGRlZmF1bHQgbG9jYWxlIHRvIGJlIHNldCBieSBlaXRo
ZXIgdGhlIEMgb3IgQysrIEFQSS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBmcmll
bmQgTG9jYWxlICpsb2NhbGVfc2V0X2RlZmF1bHRfaW50ZXJuYWwoY29uc3QgY2hhciAqLCBVRXJy
b3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgZnJpZW5kIHZvaWQgVV9DQUxMQ09OViBsb2NhbGVfYXZhaWxhYmxlX2luaXQoKTsKK307CisK
K2lubGluZSBVQm9vbAorTG9jYWxlOjpvcGVyYXRvciE9KGNvbnN0ICAgIExvY2FsZSYgICAgIG90
aGVyKSBjb25zdAoreworICAgIHJldHVybiAhb3BlcmF0b3I9PShvdGhlcik7Cit9CisKK2lubGlu
ZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0Q291bnRyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGNvdW50cnk7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0TGFuZ3VhZ2Uo
KSBjb25zdAoreworICAgIHJldHVybiBsYW5ndWFnZTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIg
KgorTG9jYWxlOjpnZXRTY3JpcHQoKSBjb25zdAoreworICAgIHJldHVybiBzY3JpcHQ7Cit9CisK
K2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0VmFyaWFudCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuICZiYXNlTmFtZVt2YXJpYW50QmVnaW5dOworfQorCitpbmxpbmUgY29uc3QgY2hhciAq
CitMb2NhbGU6OmdldE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBmdWxsTmFtZTsKK30KKwor
aW5saW5lIFVCb29sCitMb2NhbGU6OmlzQm9ndXModm9pZCkgY29uc3QgeworICAgIHJldHVybiBm
SXNCb2d1czsKK30KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JiYmku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kNDc1OThhNTBlNmZhM2JhYjJhZDQ5ZTAyMmFhZjM5NmNhYzMyOWU1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmgKQEAgLTAsMCAr
MSw3ODIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTkt
MjAxNCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uICAgKgorKiAg
IGFuZCBvdGhlcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMTAvMjIvOTkgICAgYWxh
biAgICAgICAgQ3JlYXRpb24uCisqICAgMTEvMTEvOTkgICAgcmdpbGxhbSAgICAgQ29tcGxldGUg
cG9ydCBmcm9tIEphdmEuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIFJCQklfSAorI2Rl
ZmluZSBSQkJJX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICogXGZp
bGUKKyAqIFxicmllZiBDKysgQVBJOiBSdWxlIEJhc2VkIEJyZWFrIEl0ZXJhdG9yCisgKi8KKwor
I2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCisjaW5jbHVkZSAidW5pY29kZS9icmtp
dGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgorI2luY2x1ZGUgInVuaWNvZGUvcGFy
c2VlcnIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3NjaHJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29k
ZS91Y2hyaXRlci5oIgorCisKK3N0cnVjdCBVVHJpZTsKKworVV9OQU1FU1BBQ0VfQkVHSU4KKwor
LyoqIEBpbnRlcm5hbCAqLworc3RydWN0IFJCQklEYXRhSGVhZGVyOworY2xhc3MgIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3JUYWJsZXM7CitjbGFzcyAgQnJlYWtJdGVyYXRvcjsKK2NsYXNzICBSQkJJ
RGF0YVdyYXBwZXI7CitjbGFzcyAgVVN0YWNrOworY2xhc3MgIExhbmd1YWdlQnJlYWtFbmdpbmU7
CitjbGFzcyAgVW5oYW5kbGVkRW5naW5lOworc3RydWN0IFJCQklTdGF0ZVRhYmxlOworCisKKwor
CisvKioKKyAqCisgKiBBIHN1YmNsYXNzIG9mIEJyZWFrSXRlcmF0b3Igd2hvc2UgYmVoYXZpb3Ig
aXMgc3BlY2lmaWVkIHVzaW5nIGEgbGlzdCBvZiBydWxlcy4KKyAqIDxwPkluc3RhbmNlcyBvZiB0
aGlzIGNsYXNzIGFyZSBtb3N0IGNvbW1vbmx5IGNyZWF0ZWQgYnkgdGhlIGZhY3RvcnkgbWV0aG9k
cyBvZgorICogIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZVdvcmRJbnN0YW5jZSgpLCBCcmVha0l0ZXJh
dG9yOjpjcmVhdGVMaW5lSW5zdGFuY2UoKSwgZXRjLiwKKyAqICBhbmQgdGhlbiB1c2VkIHZpYSB0
aGUgYWJzdHJhY3QgQVBJIGluIGNsYXNzIEJyZWFrSXRlcmF0b3I8L3A+CisgKgorICogPHA+U2Vl
IHRoZSBJQ1UgVXNlciBHdWlkZSBmb3IgaW5mb3JtYXRpb24gb24gQnJlYWsgSXRlcmF0b3IgUnVs
ZXMuPC9wPgorICoKKyAqIDxwPlRoaXMgY2xhc3MgaXMgbm90IGludGVuZGVkIHRvIGJlIHN1YmNs
YXNzZWQuICAoQ2xhc3MgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcgorICogICAgaXMgYSBz
dWJjbGFzcywgYnV0IHRoYXQgcmVsYXRpb25zaGlwIGlzIGVmZmVjdGl2ZWx5IGludGVybmFsIHRv
IHRoZSBJQ1UKKyAqICAgIGltcGxlbWVudGF0aW9uLiAgVGhlIHN1YmNsYXNzaW5nIGludGVyZmFj
ZSB0byBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvciBpcworICogICAgbm90IHBhcnQgb2YgdGhlIElD
VSBBUEksIGFuZCBtYXkgbm90IHJlbWFpbiBzdGFibGUuPC9wPgorICoKKyAqLworY2xhc3MgVV9D
T01NT05fQVBJIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgLypVX0ZJTkFMKi8gOiBwdWJsaWMgQnJl
YWtJdGVyYXRvciB7CisKK3Byb3RlY3RlZDoKKyAgICAvKioKKyAgICAgKiBUaGUgVVRleHQgdGhy
b3VnaCB3aGljaCB0aGlzIEJyZWFrSXRlcmF0b3IgYWNjZXNzZXMgdGhlIHRleHQKKyAgICAgKiBA
aW50ZXJuYWwKKyAgICAgKi8KKyAgICBVVGV4dCAgKmZUZXh0OworCisgICAgLyoqCisgICAgICog
ICBBIGNoYXJhY3RlciBpdGVyYXRvciB0aGF0IHJlZmVycyB0byB0aGUgc2FtZSB0ZXh0IGFzIHRo
ZSBVVGV4dCwgYWJvdmUuCisgICAgICogICBPbmx5IGluY2x1ZGVkIGZvciBjb21wYXRpYmlsaXR5
IHdpdGggb2xkIEFQSSwgd2hpY2ggd2FzIGJhc2VkIG9uIENoYXJhY3Rlckl0ZXJhdG9ycy4KKyAg
ICAgKiAgIFZhbHVlIG1heSBiZSBhZG9wdGVkIGZyb20gb3V0c2lkZSwgb3Igb25lIG9mIGZTQ2hh
ckl0ZXIgb3IgZkRDaGFySXRlciwgYmVsb3cuCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0
b3IgICpmQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiAgIFdoZW4gdGhlIGlucHV0IHRleHQg
aXMgcHJvdmlkZWQgYnkgYSBVbmljb2RlU3RyaW5nLCB0aGlzIHdpbGwgcG9pbnQgdG8KKyAgICAg
KiAgICBhIGNoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgd3JhcHMgdGhhdCBkYXRhLiAgTmVlZGVkIG9u
bHkgZm9yIHRoZQorICAgICAqICAgIGltcGxlbWVudGF0aW9uIG9mIGdldFRleHQoKSwgYSBiYWNr
d2FyZHMgY29tcGF0aWJpbGl0eSBpc3N1ZS4KKyAgICAgKi8KKyAgICBTdHJpbmdDaGFyYWN0ZXJJ
dGVyYXRvciAqZlNDaGFySXRlcjsKKworICAgIC8qKgorICAgICAqICBXaGVuIHRoZSBpbnB1dCB0
ZXh0IGlzIHByb3ZpZGVkIGJ5IGEgVVRleHQsIHRoaXMKKyAgICAgKiAgICBkdW1teSBDaGFyYWN0
ZXJJdGVyYXRvciBvdmVyIGFuIGVtcHR5IHN0cmluZyB3aWxsCisgICAgICogICAgYmUgcmV0dXJu
ZWQgZnJvbSBnZXRUZXh0KCkKKyAgICAgKi8KKyAgICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yICpm
RENoYXJJdGVyOworCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUgZGF0YSBmb3IgdGhpcyBCcmVh
a0l0ZXJhdG9yIGluc3RhbmNlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgUkJCSURh
dGFXcmFwcGVyICAgICpmRGF0YTsKKworICAgIC8qKiBJbmRleCBvZiB0aGUgUnVsZSB7dGFnfSB2
YWx1ZXMgZm9yIHRoZSBtb3N0IHJlY2VudCBtYXRjaC4KKyAgICAgKiAgQGludGVybmFsCisgICAg
Ki8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4OworCisgICAg
LyoqCisgICAgICogUnVsZSB0YWcgdmFsdWUgdmFsaWQgZmxhZy4KKyAgICAgKiBTb21lIGl0ZXJh
dG9yIG9wZXJhdGlvbnMgZG9uJ3QgaW50cmluc2ljYWxseSBzZXQgdGhlIGNvcnJlY3QgdGFnIHZh
bHVlLgorICAgICAqIFRoaXMgZmxhZyBsZXRzIHVzIGxhemlseSBjb21wdXRlIHRoZSB2YWx1ZSBp
ZiB3ZSBhcmUgZXZlciBhc2tlZCBmb3IgaXQuCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgVUJvb2wgICAgICAgICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQ7CisKKyAgICAvKioK
KyAgICAgKiBDb3VudGVyIGZvciB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgZW5jb3VudGVyZWQg
d2l0aCB0aGUgImRpY3Rpb25hcnkiCisgICAgICogICBmbGFnIHNldC4KKyAgICAgKiBAaW50ZXJu
YWwKKyAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgICAgIGZEaWN0aW9uYXJ5Q2hhckNvdW50
OworCisgICAgLyoqCisgICAgICogV2hlbiBhIHJhbmdlIG9mIGNoYXJhY3RlcnMgaXMgZGl2aWRl
ZCB1cCB1c2luZyB0aGUgZGljdGlvbmFyeSwgdGhlIGJyZWFrCisgICAgICogcG9zaXRpb25zIHRo
YXQgYXJlIGRpc2NvdmVyZWQgYXJlIHN0b3JlZCBoZXJlLCBwcmV2ZW50aW5nIHVzIGZyb20gaGF2
aW5nCisgICAgICogdG8gdXNlIGVpdGhlciB0aGUgZGljdGlvbmFyeSBvciB0aGUgc3RhdGUgdGFi
bGUgYWdhaW4gdW50aWwgdGhlIGl0ZXJhdG9yCisgICAgICogbGVhdmVzIHRoaXMgcmFuZ2Ugb2Yg
dGV4dC4gSGFzIHRoZSBtb3N0IGltcGFjdCBmb3IgbGluZSBicmVha2luZy4KKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90KiAgICAgICAgICAgIGZDYWNoZWRCcmVha1Bvc2l0
aW9uczsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gZkNhY2hl
ZEJyZWFrUG9zaXRpb25zCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCAg
ICAgICAgICAgICBmTnVtQ2FjaGVkQnJlYWtQb3NpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBp
ZiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMgaXMgbm90IG51bGwsIHRoaXMgaW5kaWNhdGVzIHdoaWNo
IGl0ZW0gaW4gdGhlCisgICAgICogY2FjaGUgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9u
IHJlZmVycyB0bworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAg
ICAgICAgZlBvc2l0aW9uSW5DYWNoZTsKKyAgICAKKyAgICAvKioKKyAgICAgKgorICAgICAqIElm
IHByZXNlbnQsIFVTdGFjayBvZiBMYW5ndWFnZUJyZWFrRW5naW5lIG9iamVjdHMgdGhhdCBtaWdo
dCBoYW5kbGUKKyAgICAgKiBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMuIFNlYXJjaGVkIGZyb20gdG9w
IHRvIGJvdHRvbSB0byBmaW5kIGFuIG9iamVjdCB0bworICAgICAqIGhhbmRsZSBhIGdpdmVuIGNo
YXJhY3Rlci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBVU3RhY2sgICAgICAgICAg
ICAgICpmTGFuZ3VhZ2VCcmVha0VuZ2luZXM7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAg
KiBJZiBwcmVzZW50LCB0aGUgc3BlY2lhbCBMYW5ndWFnZUJyZWFrRW5naW5lIHVzZWQgZm9yIGhh
bmRsaW5nCisgICAgICogY2hhcmFjdGVycyB0aGF0IGFyZSBpbiB0aGUgZGljdGlvbmFyeSBzZXQs
IGJ1dCBub3QgaGFuZGxlZCBieSBhbnkKKyAgICAgKiBMYW5ndWdhZ2VCcmVha0VuZ2luZS4KKyAg
ICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBVbmhhbmRsZWRFbmdpbmUgICAgICpmVW5oYW5k
bGVkQnJlYWtFbmdpbmU7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAgKiBUaGUgdHlwZSBv
ZiB0aGUgYnJlYWsgaXRlcmF0b3IsIG9yIC0xIGlmIGl0IGhhcyBub3QgYmVlbiBzZXQuCisgICAg
ICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmQnJlYWtUeXBl
OworICAgIAorcHJvdGVjdGVkOgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBjb25zdHJ1
Y3RvcnMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQ
SQorICAgIC8qKgorICAgICAqIENvbnN0YW50IHRvIGJlIHVzZWQgaW4gdGhlIGNvbnN0cnVjdG9y
CisgICAgICogUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihSQkJJRGF0YUhlYWRlciosIEVEb250QWRv
cHQsIFVFcnJvckNvZGUgJik7CisgICAgICogd2hpY2ggZG9lcyBub3QgYWRvcHQgdGhlIG1lbW9y
eSBpbmRpY2F0ZWQgYnkgdGhlIFJCQklEYXRhSGVhZGVyKgorICAgICAqIHBhcmFtZXRlci4KKyAg
ICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGVudW0gRURvbnRBZG9wdCB7Cisg
ICAgICAgIGtEb250QWRvcHQKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3Ig
ZnJvbSBhIGZsYXR0ZW5lZCBzZXQgb2YgUkJCSSBkYXRhIGluIG1hbGxvY2VkIG1lbW9yeS4KKyAg
ICAgKiAgICAgICAgICAgICBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvcnMgYnVpbHQgZnJvbSBhIGN1
c3RvbSBzZXQgb2YgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICBhcmUgY3JlYXRlZCB2aWEgdGhp
cyBjb25zdHJ1Y3RvcjsgdGhlIHJ1bGVzIGFyZSBjb21waWxlZAorICAgICAqICAgICAgICAgICAg
IGludG8gbWVtb3J5LCB0aGVuIHRoZSBicmVhayBpdGVyYXRvciBpcyBjb25zdHJ1Y3RlZCBoZXJl
LgorICAgICAqCisgICAgICogICAgICAgICAgICAgVGhlIGJyZWFrIGl0ZXJhdG9yIGFkb3B0cyB0
aGUgbWVtb3J5LCBhbmQgd2lsbAorICAgICAqICAgICAgICAgICAgIGZyZWUgaXQgd2hlbiBkb25l
LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Io
UkJCSURhdGFIZWFkZXIqIGRhdGEsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAg
ICAgKiBDb25zdHJ1Y3RvciBmcm9tIGEgZmxhdHRlbmVkIHNldCBvZiBSQkJJIGRhdGEgaW4gbWVt
b3J5IHdoaWNoIG5lZWQgbm90CisgICAgICogICAgICAgICAgICAgYmUgbWFsbG9jZWQgKGUuZy4g
aXQgbWF5IGJlIGEgbWVtb3J5LW1hcHBlZCBmaWxlLCBldGMuKS4KKyAgICAgKgorICAgICAqICAg
ICAgICAgICAgIFRoaXMgdmVyc2lvbiBkb2VzIG5vdCBhZG9wdCB0aGUgbWVtb3J5LCBhbmQgZG9l
cyBub3QKKyAgICAgKiAgICAgICAgICAgICBmcmVlIGl0IHdoZW4gZG9uZS4KKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGNvbnN0IFJCQklEYXRh
SGVhZGVyKiBkYXRhLCBlbnVtIEVEb250QWRvcHQgZG9udEFkb3B0LCBVRXJyb3JDb2RlICZzdGF0
dXMpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKworICAgIGZyaWVuZCBj
bGFzcyBSQkJJUnVsZUJ1aWxkZXI7CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIGZyaWVuZCBj
bGFzcyBCcmVha0l0ZXJhdG9yOworCisKKworcHVibGljOgorCisgICAgLyoqIERlZmF1bHQgY29u
c3RydWN0b3IuICBDcmVhdGVzIGFuIGVtcHR5IHNoZWxsIG9mIGFuIGl0ZXJhdG9yLCB3aXRoIG5v
CisgICAgICogIHJ1bGVzIG9yIHRleHQgdG8gaXRlcmF0ZSBvdmVyLiAgIE9iamVjdCBjYW4gc3Vi
c2VxdWVudGx5IGJlIGFzc2lnbmVkIHRvLgorICAgICAqICBAc3RhYmxlIElDVSAyLjIKKyAgICAg
Ki8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBDb3B5
IGNvbnN0cnVjdG9yLiAgV2lsbCBwcm9kdWNlIGEgYnJlYWsgaXRlcmF0b3Igd2l0aCB0aGUgc2Ft
ZSBiZWhhdmlvciwKKyAgICAgKiBhbmQgd2hpY2ggaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSB0ZXh0
LCBhcyB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvciBwYXNzZWQgdG8gYmUgY29waWVkCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCBSdWxlQmFzZWRCcmVh
a0l0ZXJhdG9yJiB0aGF0KTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3IgZnJvbSBhIHNldCBvZiBydWxlcyBzdXBwbGllZCBhcyBhIHN0cmluZy4K
KyAgICAgKiBAcGFyYW0gcnVsZXMgVGhlIGJyZWFrIHJ1bGVzIHRvIGJlIHVzZWQuCisgICAgICog
QHBhcmFtIHBhcnNlRXJyb3IgIEluIHRoZSBldmVudCBvZiBhIHN5bnRheCBlcnJvciBpbiB0aGUg
cnVsZXMsIHByb3ZpZGVzIHRoZSBsb2NhdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICB3
aXRoaW4gdGhlIHJ1bGVzIG9mIHRoZSBwcm9ibGVtLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5m
b3JtYXRpb24gb24gYW55IGVycm9ycyBlbmNvdW50ZXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjIKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCBjb25zdCBVbmljb2RlU3Ry
aW5nICAgICZydWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBhcnNlRXJyb3Ig
ICAgICAgICAgICZwYXJzZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJy
b3JDb2RlICAgICAgICAgICAgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDb250cnVjdCBh
IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZnJvbSBhIHNldCBvZiBwcmVjb21waWxlZCBiaW5hcnkg
cnVsZXMuCisgICAgICogQmluYXJ5IHJ1bGVzIGFyZSBvYnRhaW5lZCBmcm9tIFJ1bGVzQmFzZWRC
cmVha0l0ZXJhdG9yOjpnZXRCaW5hcnlSdWxlcygpLgorICAgICAqIENvbnN0cnVjdGlvbiBvZiBh
IGJyZWFrIGl0ZXJhdG9yIGluIHRoaXMgd2F5IGlzIHN1YnN0YW50aWFsbHkgZmFzdGVyIHRoYW4K
KyAgICAgKiBjb25zdHVjdGlvbiBmcm9tIHNvdXJjZSBydWxlcy4KKyAgICAgKgorICAgICAqIE93
bmVyc2hpcCBvZiB0aGUgc3RvcmFnZSBjb250YWluaW5nIHRoZSBjb21waWxlZCBydWxlcyByZW1h
aW5zIHdpdGggdGhlCisgICAgICogY2FsbGVyIG9mIHRoaXMgZnVuY3Rpb24uICBUaGUgY29tcGls
ZWQgcnVsZXMgbXVzdCBub3QgYmUgIG1vZGlmaWVkIG9yIAorICAgICAqIGRlbGV0ZWQgZHVyaW5n
IHRoZSBsaWZlIG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIFRoZSBjb21w
aWxlZCBydWxlcyBhcmUgbm90IGNvbXBhdGlibGUgYWNyb3NzIGRpZmZlcmVudCBtYWpvciB2ZXJz
aW9ucyBvZiBJQ1UuCisgICAgICogVGhlIGNvbXBpbGVkIHJ1bGVzIGFyZSBjb21hcHRpYmxlIG9u
bHkgYmV0d2VlbiBtYWNoaW5lcyB3aXRoIHRoZSBzYW1lCisgICAgICogYnl0ZSBvcmRlcmluZyAo
bGl0dGxlIG9yIGJpZyBlbmRpYW4pIGFuZCB0aGUgc2FtZSBiYXNlIGNoYXJhY3RlciBzZXQgZmFt
aWx5CisgICAgICogKEFTQ0lJIG9yIEVCQ0RJQykuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRC
aW5hcnlSdWxlcworICAgICAqIEBwYXJhbSBjb21waWxlZFJ1bGVzIEEgcG9pbnRlciB0byB0aGUg
Y29tcGlsZWQgYnJlYWsgcnVsZXMgdG8gYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gcnVsZUxlbmd0
aCBUaGUgbGVuZ3RoIG9mIHRoZSBjb21waWxlZCBicmVhayBydWxlcywgaW4gYnl0ZXMuICBUaGlz
CisgICAgICogICBjb3JyZXNwb25kcyB0byB0aGUgbGVuZ3RoIHZhbHVlIHByb2R1Y2VkIGJ5IGdl
dEJpbmFyeVJ1bGVzKCkuCisgICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkg
ZXJyb3JzIGVuY291bnRlcmVkLCBpbmNsdWRpbmcgaW52YWxpZAorICAgICAqICAgYmluYXJ5IHJ1
bGVzLgorICAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IoY29uc3QgdWludDhfdCAqY29tcGlsZWRSdWxlcywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90ICAgICAgIHJ1bGVMZW5ndGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBVRXJyb3JDb2RlICAgICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVGhpcyBj
b25zdHJ1Y3RvciB1c2VzIHRoZSB1ZGF0YSBpbnRlcmZhY2UgdG8gY3JlYXRlIGEgQnJlYWtJdGVy
YXRvcgorICAgICAqIHdob3NlIGludGVybmFsIHRhYmxlcyBsaXZlIGluIGEgbWVtb3J5LW1hcHBl
ZCBmaWxlLiAgImltYWdlIiBpcyBhbgorICAgICAqIElDVSBVRGF0YU1lbW9yeSBoYW5kbGUgZm9y
IHRoZSBwcmUtY29tcGlsZWQgYnJlYWsgaXRlcmF0b3IgdGFibGVzLgorICAgICAqIEBwYXJhbSBp
bWFnZSBoYW5kbGUgdG8gdGhlIG1lbW9yeSBpbWFnZSBmb3IgdGhlIGJyZWFrIGl0ZXJhdG9yIGRh
dGEuCisgICAgICogICAgICAgIE93bmVyc2hpcCBvZiB0aGUgVURhdGFNZW1vcnkgaGFuZGxlIHBh
c3NlcyB0byB0aGUgQnJlYWsgSXRlcmF0b3IsCisgICAgICogICAgICAgIHdoaWNoIHdpbGwgYmUg
cmVzcG9uc2libGUgZm9yIGNsb3NpbmcgaXQgd2hlbiBpdCBpcyBubyBsb25nZXIgbmVlZGVkLgor
ICAgICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24gYW55IGVycm9ycyBlbmNvdW50ZXJl
ZC4KKyAgICAgKiBAc2VlIHVkYXRhX29wZW4KKyAgICAgKiBAc2VlICNnZXRCaW5hcnlSdWxlcwor
ICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3IoVURhdGFNZW1vcnkqIGltYWdlLCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisg
ICAgICogRGVzdHJ1Y3RvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIH5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBBc3Np
Z25tZW50IG9wZXJhdG9yLiAgU2V0cyB0aGlzIGl0ZXJhdG9yIHRvIGhhdmUgdGhlIHNhbWUgYmVo
YXZpb3IsCisgICAgICogYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LCBhcyB0aGUgb25l
IHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgUnVsZUJhc2VkQnJlYWtJdGVydG9y
IHBhc3NlZCBpbgorICAgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBSdWxlQmFz
ZWRCcmVha0l0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3QgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciYg
dGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBFcXVhbGl0eSBvcGVyYXRvci4gIFJldHVybnMgVFJV
RSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBvZiB0aGUKKyAgICAgKiBzYW1lIGNsYXNzLCBo
YXZlIHRoZSBzYW1lIGJlaGF2aW9yLCBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHRleHQuCisg
ICAgICogQHBhcmFtIHRoYXQgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVx
dWFsaXR5CisgICAgICogQHJldHVybiBUUlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG9m
IHRoZQorICAgICAqIHNhbWUgY2xhc3MsIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsIGFuZCBpdGVy
YXRlIG92ZXIgdGhlIHNhbWUgdGV4dC4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHRoYXQp
IGNvbnN0OworCisgICAgLyoqCisgICAgICogTm90LWVxdWFsIG9wZXJhdG9yLiAgSWYgb3BlcmF0
b3I9PSByZXR1cm5zIFRSVUUsIHRoaXMgcmV0dXJucyBGQUxTRSwKKyAgICAgKiBhbmQgdmljZSB2
ZXJzYS4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQnJlYWtJdGVyYXRvciB0byBiZSBjb21wYXJl
ZCBmb3IgaW5lcXVhbGl0eQorICAgICAqIEByZXR1cm4gVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0
b3JzIGFyZSBub3Qgc2FtZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
VUJvb2wgb3BlcmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yIHdpdGggdGhlIHNhbWUKKyAgICAgKiBiZWhhdmlvciwgYW5kIGl0ZXJhdGluZyBvdmVy
IHRoZSBzYW1lIHRleHQsIGFzIHRoaXMgb25lLgorICAgICAqIERpZmZlcnMgZnJvbSB0aGUgY29w
eSBjb25zdHJ1Y3RvciBpbiB0aGF0IGl0IGlzIHBvbHltb3JwaGljLCBhbmQKKyAgICAgKiB3aWxs
IGNvcnJlY3RseSBjbG9uZSAoY29weSkgYSBkZXJpdmVkIGNsYXNzLgorICAgICAqIGNsb25lKCkg
aXMgdGhyZWFkIHNhZmUuICBNdWx0aXBsZSB0aHJlYWRzIG1heSBzaW11bHRhZW5lb3VzbHkKKyAg
ICAgKiBjbG9uZSB0aGUgc2FtZSBzb3VyY2UgYnJlYWsgaXRlcmF0b3IuCisgICAgICogQHJldHVy
biBhIG5ld2x5LWNvbnN0cnVjdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IqIGNsb25lKCkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGEgaGFzaCBjb2RlIGZvciB0aGlzIEJy
ZWFrSXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIEEgaGFzaCBjb2RlCisgICAgICogIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBoYXNoQ29kZSh2b2lkKSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlc2NyaXB0aW9uIHVzZWQgdG8gY3Jl
YXRlIHRoaXMgaXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIHRoZSBkZXNjcmlwdGlvbiB1c2VkIHRv
IGNyZWF0ZSB0aGlzIGl0ZXJhdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgY29uc3QgVW5pY29kZVN0cmluZyYgZ2V0UnVsZXModm9pZCkgY29uc3Q7CisK
KyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQnJlYWtJdGVyYXRvciBvdmVycmlkZXMKKyAg
ICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBSZXR1cm4g
YSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAq
IFRoZSByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0b3IgaXMgb3duZWQgYnkgdGhlIGJyZWFrIGl0
ZXJhdG9yLCBhbmQgbXVzdAorICAgICAqIG5vdCBiZSBkZWxldGVkIGJ5IHRoZSBjYWxsZXIuICBS
ZXBlYXRlZCBjYWxscyB0byB0aGlzIGZ1bmN0aW9uIG1heQorICAgICAqIHJldHVybiB0aGUgc2Ft
ZSBDaGFyYWN0ZXJJdGVyYXRvci4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhl
IHJldHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBtdXN0IG5vdCBiZSB1c2VkIGNvbmN1cnJlbnRs
eSB3aXRoCisgICAgICogdGhlIGJyZWFrIGl0ZXJhdG9yLiAgSWYgY29uY3VycmVudCBvcGVyYXRp
b24gaXMgbmVlZGVkLCBjbG9uZSB0aGUKKyAgICAgKiByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0
b3IgZmlyc3QgYW5kIG9wZXJhdGUgb24gdGhlIGNsb25lLgorICAgICAqIDwvcD4KKyAgICAgKiA8
cD4KKyAgICAgKiBXaGVuIHRoZSBicmVhayBpdGVyYXRvciBpcyBvcGVyYXRpbmcgb24gdGV4dCBz
dXBwbGllZCB2aWEgYSBVVGV4dCwKKyAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgZmFpbC4gIExh
Y2tpbmcgYW55IHdheSB0byBzaWduYWwgZmFpbHVyZXMsIGl0CisgICAgICogcmV0dXJucyBhbiBD
aGFyYWN0ZXJJdGVyYXRvciBjb250YWluaW5nIG5vIHRleHQuCisgICAgICogVGhlIGZ1bmN0aW9u
IGdldFVUZXh0KCkgcHJvdmlkZXMgc2ltaWxhciBmdW5jdGlvbmFsaXR5LAorICAgICAqIGlzIHJl
bGlhYmxlLCBhbmQgaXMgbW9yZSBlZmZpY2llbnQuCisgICAgICogPC9wPgorICAgICAqCisgICAg
ICogVE9ETzogIGRlcHJlY2F0ZSB0aGlzIGZ1bmN0aW9uPworICAgICAqCisgICAgICogQHJldHVy
biBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgIENoYXJhY3Rlckl0ZXJhdG9yJiBnZXRU
ZXh0KHZvaWQpIGNvbnN0OworCisKKyAgICAvKioKKyAgICAgICogIEdldCBhIFVUZXh0IGZvciB0
aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgICogIFRoZSByZXR1cm5lZCBVVGV4dCBpcyBh
IHNoYWxsb3cgY2xvbmUgb2YgdGhlIFVUZXh0IHVzZWQgaW50ZXJuYWxseQorICAgICAgKiAgYnkg
dGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uLiAgSXQgY2FuIHNhZmVseSBiZSB1c2Vk
IHRvCisgICAgICAqICBhY2Nlc3MgdGhlIHRleHQgd2l0aG91dCBpbXBhY3RpbmcgYW55IGJyZWFr
IGl0ZXJhdG9yIG9wZXJhdGlvbnMsCisgICAgICAqICBidXQgdGhlIHVuZGVybHlpbmcgdGV4dCBp
dHNlbGYgbXVzdCBub3QgYmUgYWx0ZXJlZC4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGZpbGxJ
biBBIFVUZXh0IHRvIGJlIGZpbGxlZCBpbi4gIElmIE5VTEwsIGEgbmV3IFVUZXh0IHdpbGwgYmUK
KyAgICAgICogICAgICAgICAgIGFsbG9jYXRlZCB0byBob2xkIHRoZSByZXN1bHQuCisgICAgICAq
IEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAgKiBAcmV0dXJu
ICAgVGhlIGN1cnJlbnQgVVRleHQgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuICBJZiBhbiBpbnB1
dAorICAgICAgKiAgICAgICAgICAgVVRleHQgd2FzIHByb3ZpZGVkLCBpdCB3aWxsIGFsd2F5cyBi
ZSByZXR1cm5lZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICAqLworICAgICB2aXJ0
dWFsIFVUZXh0ICpnZXRVVGV4dChVVGV4dCAqZmlsbEluLCBVRXJyb3JDb2RlICZzdGF0dXMpIGNv
bnN0OworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3
IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBjdXJyZW50
IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAq
IEBwYXJhbSBuZXdUZXh0IEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgdG8gYW5hbHl6ZS4gIFRo
ZSBCcmVha0l0ZXJhdG9yCisgICAgICogdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBjaGFyYWN0ZXIg
aXRlcmF0b3IuICBUaGUgY2FsbGVyIE1VU1QgTk9UIGRlbGV0ZSBpdCEKKyAgICAgKiAgQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkIGFkb3B0VGV4dChDaGFyYWN0ZXJJ
dGVyYXRvciogbmV3VGV4dCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHRv
IGFuYWx5emUgYSBuZXcgcGllY2Ugb2YgdGV4dC4gIFRoaXMgZnVuY3Rpb24gcmVzZXRzCisgICAg
ICogdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhl
IHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgVGhlIHRleHQgdG8gYW5hbHl6ZS4KKyAgICAg
KiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkIHNldFRleHQoY29u
c3QgVW5pY29kZVN0cmluZyYgbmV3VGV4dCk7CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUg
YnJlYWsgaXRlcmF0b3IgdG8gb3BlcmF0ZSBvdmVyIHRoZSB0ZXh0IHJlcHJlc2VudGVkIGJ5Cisg
ICAgICogdGhlIFVUZXh0LiAgVGhlIGl0ZXJhdG9yIHBvc2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBz
dGFydC4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gbWFrZXMgYSBzaGFsbG93IGNsb25l
IG9mIHRoZSBzdXBwbGllZCBVVGV4dC4gIFRoaXMgbWVhbnMKKyAgICAgKiB0aGF0IHRoZSBjYWxs
ZXIgaXMgZnJlZSB0byBpbW1lZGlhdGVseSBjbG9zZSBvciBvdGhlcndpc2UgcmV1c2UgdGhlCisg
ICAgICogVXRleHQgdGhhdCB3YXMgcGFzc2VkIGFzIGEgcGFyYW1ldGVyLCBidXQgdGhhdCB0aGUg
dW5kZXJseWluZyB0ZXh0IGl0c2VsZgorICAgICAqIG11c3Qgbm90IGJlIGFsdGVyZWQgd2hpbGUg
YmVpbmcgcmVmZXJlbmNlZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBA
cGFyYW0gdGV4dCAgICBUaGUgVVRleHQgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICog
QHBhcmFtIHN0YXR1cyAgUmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAqIEBzdGFibGUg
SUNVIDMuNAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChVVGV4dCAqdGV4dCwg
VUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQg
aXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHBvc2l0aW9u
IHplcm8uCisgICAgICogQHJldHVybiBUaGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhl
IHRleHQsIHplcm8uCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgaW50MzJfdCBmaXJzdCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJl
bnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHJl
dHVybiBUaGUgdGV4dCdzIHBhc3QtdGhlLWVuZCBvZmZzZXQuCisgICAgICogIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBsYXN0KHZvaWQpOworCisgICAgLyoq
CisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGVpdGhlciBmb3J3YXJkIG9yIGJhY2t3YXJk
IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHN0ZXBzLgorICAgICAqIE5lZ2F0aXZlIHZhbHVlcyBt
b3ZlIGJhY2t3YXJkLCBhbmQgcG9zaXRpdmUgdmFsdWVzIG1vdmUgZm9yd2FyZC4gIFRoaXMgaXMK
KyAgICAgKiBlcXVpdmFsZW50IHRvIHJlcGVhdGVkbHkgY2FsbGluZyBuZXh0KCkgb3IgcHJldmlv
dXMoKS4KKyAgICAgKiBAcGFyYW0gbiBUaGUgbnVtYmVyIG9mIHN0ZXBzIHRvIG1vdmUuICBUaGUg
c2lnbiBpbmRpY2F0ZXMgdGhlIGRpcmVjdGlvbgorICAgICAqIChuZWdhdGl2ZSBpcyBiYWNrd2Fy
ZHMsIGFuZCBwb3NpdGl2ZSBpcyBmb3J3YXJkcykuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFj
dGVyIG9mZnNldCBvZiB0aGUgYm91bmRhcnkgcG9zaXRpb24gbiBib3VuZGFyaWVzIGF3YXkgZnJv
bQorICAgICAqIHRoZSBjdXJyZW50IG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQoaW50MzJfdCBuKTsKKworICAgIC8qKgorICAg
ICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbi4K
KyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIg
dGhpcyBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
aW50MzJfdCBuZXh0KHZvaWQpOworCisgICAgLyoqCisgICAgICogTW92ZXMgdGhlIGl0ZXJhdG9y
IGJhY2t3YXJkcywgdG8gdGhlIGxhc3QgYm91bmRhcnkgcHJlY2VkaW5nIHRoaXMgb25lLgorICAg
ICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIHBy
ZWNlZGluZyB0aGlzIG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBpbnQzMl90IHByZXZpb3VzKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0
aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGZvbGxv
d2luZworICAgICAqIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNl
dCBUaGUgcG9zaXRpb24gZnJvbSB3aGljaCB0byBiZWdpbiBzZWFyY2hpbmcgZm9yIGEgYnJlYWsg
cG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJyZWFr
IGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZm9sbG93aW5nKGludDMyX3Qgb2Zmc2V0KTsKKwor
ICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGJv
dW5kYXJ5IHBvc2l0aW9uIGJlZm9yZSB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24uCisg
ICAgICogQHBhcmFtIG9mZnNldCBUaGUgcG9zaXRpb24gdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBh
IGJyZWFrIGZyb20uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91
bmRhcnkgYmVmb3JlIHRoZSBzdGFydGluZyBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHByZWNlZGluZyhpbnQzMl90IG9mZnNl
dCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0
aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uICBBcyBhIHNpZGUKKyAgICAgKiBlZmZlY3QsIGxl
YXZlcyB0aGUgaXRlcmF0b3IgcG9pbnRpbmcgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9u
IGF0CisgICAgICogb3IgYWZ0ZXIgIm9mZnNldCIuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUg
b2Zmc2V0IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJv
dW5kYXJ5IHBvc2l0aW9uLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIFVCb29sIGlzQm91bmRhcnkoaW50MzJfdCBvZmZzZXQpOworCisgICAgLyoqCisgICAg
ICogUmV0dXJucyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHJldHVy
biBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGN1cnJlbnQodm9pZCkgY29uc3Q7CisKKwor
ICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc3RhdHVzIHRhZyBmcm9tIHRoZSBicmVhayBydWxl
IHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqIHJldHVybmVkIGJyZWFr
IHBvc2l0aW9uLiAgRm9yIGJyZWFrIHJ1bGVzIHRoYXQgZG8gbm90IHNwZWNpZnkgYQorICAgICAq
IHN0YXR1cywgYSBkZWZhdWx0IHZhbHVlIG9mIDAgaXMgcmV0dXJuZWQuICBJZiBtb3JlIHRoYW4g
b25lIGJyZWFrIHJ1bGUKKyAgICAgKiB3b3VsZCBjYXVzZSBhIGJvdW5kYXJ5IHRvIGJlIGxvY2F0
ZWQgYXQgc29tZSBwb3NpdGlvbiBpbiB0aGUgdGV4dCwKKyAgICAgKiB0aGUgbnVtZXJpY2FsbHkg
bGFyZ2VzdCBvZiB0aGUgYXBwbGljYWJsZSBzdGF0dXMgdmFsdWVzIGlzIHJldHVybmVkLgorICAg
ICAqIDxwPgorICAgICAqIE9mIHRoZSBzdGFuZGFyZCB0eXBlcyBvZiBJQ1UgYnJlYWsgaXRlcmF0
b3JzLCBvbmx5IHdvcmQgYnJlYWsgYW5kCisgICAgICogbGluZSBicmVhayBwcm92aWRlIHN0YXR1
cyB2YWx1ZXMuICBUaGUgdmFsdWVzIGFyZSBkZWZpbmVkIGluCisgICAgICogdGhlIGhlYWRlciBm
aWxlIHVicmsuaC4gIEZvciBXb3JkIGJyZWFrcywgdGhlIHN0YXR1cyBhbGxvd3MgZGlzdGluZ3Vp
c2hpbmcgYmV0d2VlbiB3b3JkcworICAgICAqIHRoYXQgY29udGFpbiBhbHBoYWJldGljIGxldHRl
cnMsICJ3b3JkcyIgdGhhdCBhcHBlYXIgdG8gYmUgbnVtYmVycywKKyAgICAgKiBwdW5jdHVhdGlv
biBhbmQgc3BhY2VzLCB3b3JkcyBjb250YWluaW5nIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMsIGFu
ZAorICAgICAqIG1vcmUuICBGb3IgTGluZSBCcmVhaywgdGhlIHN0YXR1cyBkaXN0aW5ndWlzaGVz
IGJldHdlZW4gaGFyZCAobWFuZGF0b3J5KSBicmVha3MKKyAgICAgKiBhbmQgc29mdCAocG90ZW50
aWFsKSBicmVhayBwb3NpdGlvbnMuCisgICAgICogPHA+CisgICAgICogPGNvZGU+Z2V0UnVsZVN0
YXR1cygpPC9jb2RlPiBjYW4gYmUgY2FsbGVkIGFmdGVyIG9idGFpbmluZyBhIGJvdW5kYXJ5Cisg
ICAgICogcG9zaXRpb24gZnJvbSA8Y29kZT5uZXh0KCk8L2NvZGU+LCA8Y29kZT5wcmV2aW91cygp
PC9jb2RlPiwgb3IKKyAgICAgKiBhbnkgb3RoZXIgYnJlYWsgaXRlcmF0b3IgZnVuY3Rpb25zIHRo
YXQgcmV0dXJucyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIDxwPgorICAgICAqIFdoZW4g
Y3JlYXRpbmcgY3VzdG9tIGJyZWFrIHJ1bGVzLCBvbmUgaXMgZnJlZSB0byBkZWZpbmUgd2hhdGV2
ZXIKKyAgICAgKiBzdGF0dXMgdmFsdWVzIG1heSBiZSBjb252ZW5pZW50IGZvciB0aGUgYXBwbGlj
YXRpb24uCisgICAgICogPHA+CisgICAgICogTm90ZTogdGhpcyBmdW5jdGlvbiBpcyBub3QgdGhy
ZWFkIHNhZmUuICBJdCBzaG91bGQgbm90IGhhdmUgYmVlbgorICAgICAqICAgICAgIGRlY2xhcmVk
IGNvbnN0LCBhbmQgdGhlIGNvbnN0IHJlbWFpbnMgb25seSBmb3IgY29tcGF0aWJpbGl0eQorICAg
ICAqICAgICAgIHJlYXNvbnMuICAoVGhlIGZ1bmN0aW9uIGlzIGxvZ2ljYWxseSBjb25zdCwgYnV0
IG5vdCBiaXQtd2lzZSBjb25zdCkuCisgICAgICogPHA+CisgICAgICogQHJldHVybiB0aGUgc3Rh
dHVzIGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5
CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBAc2VlIFVX
b3JkQnJlYWsKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGlu
dDMyX3QgZ2V0UnVsZVN0YXR1cygpIGNvbnN0OworCisgICAvKioKKyAgICAqIEdldCB0aGUgc3Rh
dHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIHRoYXQgZGV0ZXJtaW5lZCB0
aGUgbW9zdAorICAgICogcmVjZW50bHkgcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgKiA8
cD4KKyAgICAqIFRoZSByZXR1cm5lZCBzdGF0dXMgdmFsdWUocykgYXJlIHN0b3JlZCBpbnRvIGFu
IGFycmF5IHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9y
ZWQgaW4gc29ydGVkIChhc2NlbmRpbmcpIG9yZGVyLgorICAgICogSWYgdGhlIGNhcGFjaXR5IG9m
IHRoZSBvdXRwdXQgYXJyYXkgaXMgaW5zdWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgICAg
KiAgdGhlIG91dHB1dCB3aWxsIGJlIHRydW5jYXRlZCB0byB0aGUgYXZhaWxhYmxlIGxlbmd0aCwg
YW5kIGEKKyAgICAqICBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiB3aWxsIGJlIHNpZ25hbGVkLgor
ICAgICoKKyAgICAqIEBwYXJhbSBmaWxsSW5WZWMgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGluIHdp
dGggdGhlIHN0YXR1cyB2YWx1ZXMuCisgICAgKiBAcGFyYW0gY2FwYWNpdHkgIHRoZSBsZW5ndGgg
b2YgdGhlIHN1cHBsaWVkIHZlY3Rvci4gIEEgbGVuZ3RoIG9mIHplcm8gY2F1c2VzCisgICAgKiAg
ICAgICAgICAgICAgICAgIHRoZSBmdW5jdGlvbiB0byByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0
dXMgdmFsdWVzLCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgbm9ybWFsIHdheSwgd2l0
aG91dCBhdHRlbXRwaW5nIHRvIHN0b3JlIGFueSB2YWx1ZXMuCisgICAgKiBAcGFyYW0gc3RhdHVz
ICAgIHJlY2VpdmVzIGVycm9yIGNvZGVzLgorICAgICogQHJldHVybiAgICAgICAgICBUaGUgbnVt
YmVyIG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZAorICAg
ICogICAgICAgICAgICAgICAgICB0aGUgbW9zdCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQgYnkg
dGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICogICAgICAgICAgICAgICAgICBJbiB0aGUgZXZlbnQg
b2YgYSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdGhlIHJldHVybiB2YWx1ZQorICAgICogICAg
ICAgICAgICAgICAgICBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCB3
ZXJlIGF2YWlsYWJsZSwKKyAgICAqICAgICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2VkIG51
bWJlciB0aGF0IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQuCisgICAgKiBAc2VlIGdldFJ1bGVTdGF0
dXMKKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdl
dFJ1bGVTdGF0dXNWZWMoaW50MzJfdCAqZmlsbEluVmVjLCBpbnQzMl90IGNhcGFjaXR5LCBVRXJy
b3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHVuaXF1ZSBjbGFz
cyBJRCBQT0xZTU9SUEhJQ0FMTFkuICBQdXJlIHZpcnR1YWwgb3ZlcnJpZGUuCisgICAgICogVGhp
cyBtZXRob2QgaXMgdG8gaW1wbGVtZW50IGEgc2ltcGxlIHZlcnNpb24gb2YgUlRUSSwgc2luY2Ug
bm90IGFsbAorICAgICAqIEMrKyBjb21waWxlcnMgc3VwcG9ydCBnZW51aW5lIFJUVEkuICBQb2x5
bW9ycGhpYyBvcGVyYXRvcj09KCkgYW5kCisgICAgICogY2xvbmUoKSBtZXRob2RzIGNhbGwgdGhp
cyBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBjbGFzcyBJRCBm
b3IgdGhpcyBvYmplY3QuIEFsbCBvYmplY3RzIG9mIGEKKyAgICAgKiAgICAgICAgICAgICAgICAg
IGdpdmVuIGNsYXNzIGhhdmUgdGhlIHNhbWUgY2xhc3MgSUQuICBPYmplY3RzIG9mCisgICAgICog
ICAgICAgICAgICAgICAgICBvdGhlciBjbGFzc2VzIGhhdmUgZGlmZmVyZW50IGNsYXNzIElEcy4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdl
dER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0
aGUgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MuICBUaGlzIGlzIHVzZWZ1bCBvbmx5IGZvcgorICAg
ICAqIGNvbXBhcmluZyB0byBhIHJldHVybiB2YWx1ZSBmcm9tIGdldER5bmFtaWNDbGFzc0lEKCku
ICBGb3IgZXhhbXBsZToKKyAgICAgKgorICAgICAqICAgICAgQmFzZSogcG9seW1vcnBoaWNfcG9p
bnRlciA9IGNyZWF0ZVBvbHltb3JwaGljT2JqZWN0KCk7CisgICAgICogICAgICBpZiAocG9seW1v
cnBoaWNfcG9pbnRlci0+Z2V0RHluYW1pY0NsYXNzSUQoKSA9PQorICAgICAqICAgICAgICAgIERl
cml2ZWQ6OmdldFN0YXRpY0NsYXNzSUQoKSkgLi4uCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAg
ICAgICAgIFRoZSBjbGFzcyBJRCBmb3IgYWxsIG9iamVjdHMgb2YgdGhpcyBjbGFzcy4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQy
IGdldFN0YXRpY0NsYXNzSUQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBEZXByZWNhdGVkIGZ1
bmN0aW9uYWxpdHkuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBDcmVhdGUg
YSBjbG9uZSAoY29weSkgb2YgdGhpcyBicmVhayBpdGVyYXRvciBpbiBtZW1vcnkgcHJvdmlkZWQK
KyAgICAgKiAgYnkgdGhlIGNhbGxlci4gIFRoZSBpZGVhIGlzIHRvIGluY3JlYXNlIHBlcmZvcm1h
bmNlIGJ5IGF2b2lkaW5nCisgICAgICogIGEgc3RvcmFnZSBhbGxvY2F0aW9uLiAgVXNlIG9mIHRo
aXMgZnVuY3RvaW4gaXMgTk9UIFJFQ09NTUVOREVELgorICAgICAqICBQZXJmb3JtYW5jZSBnYWlu
cyBhcmUgbWluaW1hbCwgYW5kIGNvcnJlY3QgYnVmZmVyIG1hbmFnZW1lbnQgaXMKKyAgICAgKiAg
dHJpY2t5LiAgVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFj
a0J1ZmZlciAgVGhlIHBvaW50ZXIgdG8gdGhlIG1lbW9yeSBpbnRvIHdoaWNoIHRoZSBjbG9uZWQg
b2JqZWN0CisgICAgICogICAgICAgICAgICAgICAgICAgICBzaG91bGQgYmUgcGxhY2VkLiAgSWYg
TlVMTCwgIGFsbG9jYXRlIGhlYXAgbWVtb3J5CisgICAgICogICAgICAgICAgICAgICAgICAgICBm
b3IgdGhlIGNsb25lZCBvYmplY3QuCisgICAgICogQHBhcmFtIEJ1ZmZlclNpemUgICBUaGUgc2l6
ZSBvZiB0aGUgYnVmZmVyLiAgSWYgemVybywgcmV0dXJuIHRoZSByZXF1aXJlZAorICAgICAqICAg
ICAgICAgICAgICAgICAgICAgYnVmZmVyIHNpemUsIGJ1dCBkbyBub3QgY2xvbmUgdGhlIG9iamVj
dC4gIElmIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgc2l6ZSB3YXMgdG9vIHNtYWxs
IChidXQgbm90IHplcm8pLCBhbGxvY2F0ZSBoZWFwCisgICAgICogICAgICAgICAgICAgICAgICAg
ICBzdG9yYWdlIGZvciB0aGUgY2xvbmVkIG9iamVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBz
dGF0dXMgICAgICAgRXJyb3Igc3RhdHVzLiAgVV9TQUZFQ0xPTkVfQUxMT0NBVEVEX1dBUk5JTkcg
d2lsbCBiZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgcmV0dXJuZWQgaWYgdGhlIHRoZSBw
cm92aWRlZCBidWZmZXIgd2FzIHRvbyBzbWFsbCwgYW5kCisgICAgICogICAgICAgICAgICAgICAg
ICAgICB0aGUgY2xvbmUgd2FzIHRoZXJlZm9yZSBwdXQgb24gdGhlIGhlYXAuCisgICAgICoKKyAg
ICAgKiBAcmV0dXJuICBQb2ludGVyIHRvIHRoZSBjbG9uZSBvYmplY3QuICBUaGlzIG1heSBkaWZm
ZXIgZnJvbSB0aGUgc3RhY2tCdWZmZXIKKyAgICAgKiAgICAgICAgICBhZGRyZXNzIGlmIHRoZSBi
eXRlIGFsaWdubWVudCBvZiB0aGUgc3RhY2sgYnVmZmVyIHdhcyBub3Qgc3VpdGFibGUKKyAgICAg
KiAgICAgICAgICBvciBpZiB0aGUgc3RhY2tCdWZmZXIgd2FzIHRvbyBzbWFsbCB0byBob2xkIHRo
ZSBjbG9uZS4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIFVzZSBjbG9uZSgpIGluc3RlYWQu
CisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yICogIGNyZWF0ZUJ1ZmZlckNsb25l
KHZvaWQgKnN0YWNrQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQzMl90ICZCdWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICZzdGF0dXMpOworCisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm4gdGhlIGJpbmFyeSBmb3JtIG9mIGNvbXBpbGVkIGJyZWFrIHJ1bGVzLAor
ICAgICAqIHdoaWNoIGNhbiB0aGVuIGJlIHVzZWQgdG8gY3JlYXRlIGEgbmV3IGJyZWFrIGl0ZXJh
dG9yIGF0IHNvbWUKKyAgICAgKiB0aW1lIGluIHRoZSBmdXR1cmUuICBDcmVhdGluZyBhIGJyZWFr
IGl0ZXJhdG9yIGZyb20gcHJlLWNvbXBpbGVkIHJ1bGVzCisgICAgICogaXMgbXVjaCBmYXN0ZXIg
dGhhbiBidWlsZGluZyBvbmUgZnJvbSB0aGUgc291cmNlIGZvcm0gb2YgdGhlCisgICAgICogYnJl
YWsgcnVsZXMuCisgICAgICoKKyAgICAgKiBUaGUgYmluYXJ5IGRhdGEgY2FuIG9ubHkgYmUgdXNl
ZCB3aXRoIHRoZSBzYW1lIHZlcnNpb24gb2YgSUNVCisgICAgICogIGFuZCBvbiB0aGUgc2FtZSBw
bGF0Zm9ybSB0eXBlIChwcm9jZXNzb3IgZW5kaWFuLW5lc3MpCisgICAgICoKKyAgICAgKiBAcGFy
YW0gbGVuZ3RoIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgYmluYXJ5IGRhdGEuICAoT3V0IHBh
cmFtdGVyLikKKyAgICAgKgorICAgICAqIEByZXR1cm4gICBBIHBvaW50ZXIgdG8gdGhlIGJpbmFy
eSAoY29tcGlsZWQpIHJ1bGUgZGF0YS4gIFRoZSBzdG9yYWdlCisgICAgICogICAgICAgICAgIGJl
bG9uZ3MgdG8gdGhlIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yIG9iamVjdCwgbm90IHRoZQorICAg
ICAqICAgICAgICAgICBjYWxsZXIsIGFuZCBtdXN0IG5vdCBiZSBtb2RpZmllZCBvciBkZWxldGVk
LgorICAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICAqLworICAgIHZpcnR1YWwgY29uc3QgdWlu
dDhfdCAqZ2V0QmluYXJ5UnVsZXModWludDMyX3QgJmxlbmd0aCk7CisKKyAgICAvKioKKyAgICAg
KiAgU2V0IHRoZSBzdWJqZWN0IHRleHQgc3RyaW5nIHVwb24gd2hpY2ggdGhlIGJyZWFrIGl0ZXJh
dG9yIGlzIG9wZXJhdGluZworICAgICAqICB3aXRob3V0IGNoYW5naW5nIGFueSBvdGhlciBhc3Bl
Y3Qgb2YgdGhlIG1hdGNoaW5nIHN0YXRlLgorICAgICAqICBUaGUgbmV3IGFuZCBwcmV2aW91cyB0
ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCisgICAgICoKKyAgICAgKiAg
VGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGluIGVudmlyb25tZW50cyB3aGVyZSBJ
Q1UgaXMgb3BlcmF0aW5nIG9uCisgICAgICogIHN0cmluZ3MgdGhhdCBtYXkgbW92ZSBhcm91bmQg
aW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIG5vdGlmeWluZworICAgICAq
ICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVuIHJlbG9jYXRlZCwgYW5kIHByb3ZpZGluZyBh
IG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICAgICogIHN0cmluZyBpbiBpdHMgbmV3IHBvc2l0
aW9uLgorICAgICAqCisgICAgICogIE5vdGUgdGhhdCB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVt
ZW50YXRpb24gbmV2ZXIgY29waWVzIHRoZSB1bmRlcmx5aW5nIHRleHQKKyAgICAgKiAgb2YgYSBz
dHJpbmcgYmVpbmcgcHJvY2Vzc2VkLCBidXQgYWx3YXlzIG9wZXJhdGVzIGRpcmVjdGx5IG9uIHRo
ZSBvcmlnaW5hbCB0ZXh0CisgICAgICogIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiBSZWZyZXNoaW5n
IHNpbXBseSBkcm9wcyB0aGUgcmVmZXJlbmNlcyB0byB0aGUgb2xkIHRleHQKKyAgICAgKiAgYW5k
IHJlcGxhY2VzIHRoZW0gd2l0aCByZWZlcmVuY2VzIHRvIHRoZSBuZXcuCisgICAgICoKKyAgICAg
KiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rpb24gaXMgbm9ybWFsbHkgdXNlZCBvbmx5IGJ5IHZlcnkg
c3BlY2lhbGl6ZWQsCisgICAgICogIHN5c3RlbS1sZXZlbCBjb2RlLiAgT25lIGV4YW1wbGUgdXNl
IGNhc2UgaXMgd2l0aCBnYXJiYWdlIGNvbGxlY3Rpb24gdGhhdCBtb3ZlcworICAgICAqICB0aGUg
dGV4dCBpbiBtZW1vcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5wdXQgICAgICBUaGUgbmV3
IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisgICAgICogQHBhcmFtIHN0YXR1cyAgICAgUmVjZWl2ZXMg
ZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCisgICAgICogQHJldHVybiAgICAgICAg
ICAgKnRoaXMKKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdmly
dHVhbCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yICZyZWZyZXNoSW5wdXRUZXh0KFVUZXh0ICppbnB1
dCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworCitwcm90ZWN0ZWQ6CisgICAgLy89PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorICAgIC8vIGltcGxlbWVudGF0aW9uCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8q
KgorICAgICAqIER1bXBzIGNhY2hlcyBhbmQgcGVyZm9ybXMgb3RoZXIgYWN0aW9ucyBhc3NvY2lh
dGVkIHdpdGggYSBjb21wbGV0ZSBjaGFuZ2UKKyAgICAgKiBpbiB0ZXh0IG9yIGl0ZXJhdGlvbiBw
b3NpdGlvbi4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgcmVz
ZXQodm9pZCk7CisKKyNpZiAwCisgICAgLyoqCisgICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBj
YXRlZ29yeSBsb29rdXAgZm9yIHRoaXMgY2hhcgorICAgICAgKiBpbmRpY2F0ZXMgdGhhdCBpdCBp
cyBpbiB0aGUgc2V0IG9mIGRpY3Rpb25hcnkgbG9va3VwIGNoYXJzLgorICAgICAgKiBUaGlzIGZ1
bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZGljdGlvbmFyeSBiYXNlZCBicmVhayBpdGVy
YXRvcnMuCisgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY2F0ZWdvcnkgbG9va3VwIGZvciB0
aGlzIGNoYXIKKyAgICAgICogaW5kaWNhdGVzIHRoYXQgaXQgaXMgaW4gdGhlIHNldCBvZiBkaWN0
aW9uYXJ5IGxvb2t1cCBjaGFycy4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZp
cnR1YWwgVUJvb2wgaXNEaWN0aW9uYXJ5Q2hhcihVQ2hhcjMyKTsKKworICAgIC8qKgorICAgICAg
KiBHZXQgdGhlIHR5cGUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAgKiBAaW50ZXJuYWwK
KyAgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldEJyZWFrVHlwZSgpIGNvbnN0OworI2Vu
ZGlmCisKKyAgICAvKioKKyAgICAgICogU2V0IHRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRv
ci4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzZXRCcmVh
a1R5cGUoaW50MzJfdCB0eXBlKTsKKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAg
LyoqCisgICAgICAqIENvbW1vbiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgdXNlZCBieSBjb25z
dHJ1Y3RvcnMgYW5kIGJ1ZmZlckNsb25lLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisg
ICAgdm9pZCBpbml0KCk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworcHJp
dmF0ZToKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGJhY2tzIHRoZSBpdGVyYXRvciBi
YWNrIHVwIHRvIGEgInNhZmUgcG9zaXRpb24iIGluIHRoZSB0ZXh0LgorICAgICAqIFRoaXMgaXMg
YSBwb3NpdGlvbiB0aGF0IHdlIGtub3csIHdpdGhvdXQgYW55IGNvbnRleHQsIG11c3QgYmUgYSBi
cmVhayBwb3NpdGlvbi4KKyAgICAgKiBUaGUgdmFyaW91cyBjYWxsaW5nIG1ldGhvZHMgdGhlbiBp
dGVyYXRlIGZvcndhcmQgZnJvbSB0aGlzIHNhZmUgcG9zaXRpb24gdG8KKyAgICAgKiB0aGUgYXBw
cm9wcmlhdGUgcG9zaXRpb24gdG8gcmV0dXJuLiAgKEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUg
dGhlIGRlc2NyaXB0aW9uCisgICAgICogb2YgYnVpbGRCYWNrd2FyZHNTdGF0ZVRhYmxlKCkgaW4g
UnVsZUJhc2VkQnJlYWtJdGVyYXRvci5CdWlsZGVyLikKKyAgICAgKiBAcGFyYW0gc3RhdGV0YWJs
ZSBzdGF0ZSB0YWJsZSB1c2VkIG9mIG1vdmluZyBiYWNrd2FyZHMKKyAgICAgKiBAaW50ZXJuYWwK
KyAgICAgKi8KKyAgICBpbnQzMl90IGhhbmRsZVByZXZpb3VzKGNvbnN0IFJCQklTdGF0ZVRhYmxl
ICpzdGF0ZXRhYmxlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRoZSBhY3R1
YWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5leHQoKSBtZXRob2QuICBBbGwgaXRlcmF0aW9uCisg
ICAgICogdmVjdG9ycyB0aHJvdWdoIGhlcmUuICBUaGlzIG1ldGhvZCBpbml0aWFsaXplcyB0aGUg
c3RhdGUgbWFjaGluZSB0byBzdGF0ZSAxCisgICAgICogYW5kIGFkdmFuY2VzIHRocm91Z2ggdGhl
IHRleHQgY2hhcmFjdGVyIGJ5IGNoYXJhY3RlciB1bnRpbCB3ZSByZWFjaCB0aGUgZW5kCisgICAg
ICogb2YgdGhlIHRleHQgb3IgdGhlIHN0YXRlIG1hY2hpbmUgdHJhbnNpdGlvbnMgdG8gc3RhdGUg
MC4gIFdlIHVwZGF0ZSBvdXIgcmV0dXJuCisgICAgICogdmFsdWUgZXZlcnkgdGltZSB0aGUgc3Rh
dGUgbWFjaGluZSBwYXNzZXMgdGhyb3VnaCBhIHBvc3NpYmxlIGVuZCBzdGF0ZS4KKyAgICAgKiBA
cGFyYW0gc3RhdGV0YWJsZSBzdGF0ZSB0YWJsZSB1c2VkIG9mIG1vdmluZyBmb3J3YXJkcworICAg
ICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgaGFuZGxlTmV4dChjb25zdCBSQkJJ
U3RhdGVUYWJsZSAqc3RhdGV0YWJsZSk7CisKK3Byb3RlY3RlZDoKKworI2lmbmRlZiBVX0hJREVf
SU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICogVGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBh
Y3R1YWxseSBpbXBsZW1lbnRzIGRpY3Rpb25hcnktYmFzZWQKKyAgICAgKiBicmVha2luZy4gIENv
dmVyaW5nIGF0IGxlYXN0IHRoZSByYW5nZSBmcm9tIHN0YXJ0UG9zIHRvIGVuZFBvcywKKyAgICAg
KiBpdCBjaGVja3MgZm9yIGRpY3Rpb25hcnkgY2hhcmFjdGVycywgYW5kIGlmIGl0IGZpbmRzIHRo
ZW0gZGV0ZXJtaW5lcworICAgICAqIHRoZSBhcHByb3ByaWF0ZSBvYmplY3QgdG8gZGVhbCB3aXRo
IHRoZW0uIEl0IG1heSBjYWNoZSBmb3VuZCBicmVha3MgaW4KKyAgICAgKiBmQ2FjaGVkQnJlYWtQ
b3NpdGlvbnMgYXMgaXQgZ29lcy4gSXQgbWF5IHdlbGwgYWxzbyBsb29rIGF0IHRleHQgb3V0c2lk
ZQorICAgICAqIHRoZSByYW5nZSBzdGFydFBvcyB0byBlbmRQb3MuCisgICAgICogSWYgZ29pbmcg
Zm9yd2FyZCwgZW5kUG9zIGlzIHRoZSBub3JtYWwgVW5pY29kZSBicmVhayByZXN1bHQsIGFuZAor
ICAgICAqIGlmIGdvaW5kIGluIHJldmVyc2UsIHN0YXJ0UG9zIGlzIHRoZSBub3JtYWwgVW5pY29k
ZSBicmVhayByZXN1bHQKKyAgICAgKiBAcGFyYW0gc3RhcnRQb3MgIFRoZSBzdGFydCBwb3NpdGlv
biBvZiBhIHJhbmdlIG9mIHRleHQKKyAgICAgKiBAcGFyYW0gZW5kUG9zICAgIFRoZSBlbmQgcG9z
aXRpb24gb2YgYSByYW5nZSBvZiB0ZXh0CisgICAgICogQHBhcmFtIHJldmVyc2UgICBUaGUgY2Fs
bCBpcyBmb3IgdGhlIHJldmVyc2UgZGlyZWN0aW9uCisgICAgICogQGludGVybmFsCisgICAgICov
CisgICAgaW50MzJfdCBjaGVja0RpY3Rpb25hcnkoaW50MzJfdCBzdGFydFBvcywgaW50MzJfdCBl
bmRQb3MsIFVCb29sIHJldmVyc2UpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICov
CisKK3ByaXZhdGU6CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhl
IGFwcHJvcHJpYXRlIExhbmd1YWdlQnJlYWtFbmdpbmUgZm9yIGEKKyAgICAgKiBnaXZlbiBjaGFy
YWN0ZXIgYy4KKyAgICAgKiBAcGFyYW0gYyAgICAgICAgIEEgY2hhcmFjdGVyIGluIHRoZSBkaWN0
aW9uYXJ5IHNldAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGNvbnN0IExhbmd1YWdl
QnJlYWtFbmdpbmUgKmdldExhbmd1YWdlQnJlYWtFbmdpbmUoVUNoYXIzMiBjKTsKKworICAgIC8q
KgorICAgICAqICBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB2b2lkIG1ha2VSdWxlU3RhdHVzVmFs
aWQoKTsKKworfTsKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgIElubGluZSBG
dW5jdGlvbnMgRGVmaW5pdGlvbnMgLi4uCisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
aW5saW5lIFVCb29sIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I6Om9wZXJhdG9yIT0oY29uc3QgQnJl
YWtJdGVyYXRvciYgdGhhdCkgY29uc3QgeworICAgIHJldHVybiAhb3BlcmF0b3I9PSh0aGF0KTsK
K30KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZiAvKiAjaWYgIVVDT05GSUdfTk9fQlJFQUtf
SVRFUkFUSU9OICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9zY2hyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQwYjVlMjI1MDNjZmYyNjFkMmNkMjQwZmYxMjAwN2Y5MzdmNzgzYjIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3NjaHJpdGVyLmgKQEAgLTAsMCArMSwxODcg
QEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgt
MjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFu
ZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqCisqIEZpbGUgc2Nocml0ZXIuaAorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyog
ICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgMDUvMDUvOTkgICAgIHN0
ZXBoZW4gICAgIENsZWFuZWQgdXAuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5k
ZWYgU0NIUklURVJfSAorI2RlZmluZSBTQ0hSSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0
eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3VjaHJpdGVyLmgiCisKKy8qKgorICogXGZpbGUgCisgKiBcYnJpZWYgQysrIEFQSTogU3RyaW5n
IENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorLyoqCisgKiBB
IGNvbmNyZXRlIHN1YmNsYXNzIG9mIENoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3Zl
ciB0aGUKKyAqIGNoYXJhY3RlcnMgKGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMpIGluIGEgVW5p
Y29kZVN0cmluZy4KKyAqIEl0J3MgcG9zc2libGUgbm90IG9ubHkgdG8gY3JlYXRlIGFuCisgKiBp
dGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgYW4gZW50aXJlIFVuaWNvZGVTdHJpbmcsIGJ1dCBh
bHNvIHRvCisgKiBjcmVhdGUgb25lIHRoYXQgaXRlcmF0ZXMgb3ZlciBvbmx5IGEgc3VicmFuZ2Ug
b2YgYSBVbmljb2RlU3RyaW5nCisgKiAoaXRlcmF0b3JzIG92ZXIgZGlmZmVyZW50IHN1YnJhbmdl
cyBvZiB0aGUgc2FtZSBVbmljb2RlU3RyaW5nIGRvbid0CisgKiBjb21wYXJlIGVxdWFsKS4KKyAq
IEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIFN0cmluZ0NoYXJh
Y3Rlckl0ZXJhdG9yIDogcHVibGljIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGljOgor
ICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVm
ZXJyZWQgdG8gYnkgInRleHRTdHIiLgorICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaXMg
Y29waWVkLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIHRoZSB3aG9sZSBzdHJpbmcsIGFu
ZCB0aGUgc3RhcnRpbmcgcG9zaXRpb24gaXMgMC4KKyAgICogQHBhcmFtIHRleHRTdHIgVGhlIHVu
aWNvZGUgc3RyaW5nIHVzZWQgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yCisgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmlu
ZyYgdGV4dFN0cik7CisKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBV
bmljb2RlU3RyaW5nIHJlZmVycmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIGl0ZXJhdGlv
biByYW5nZSBpcyB0aGUgd2hvbGUgc3RyaW5nLCBhbmQgdGhlIHN0YXJ0aW5nCisgICAqIHBvc2l0
aW9uIGlzIHNwZWNpZmllZCBieSAidGV4dFBvcyIuICBJZiAidGV4dFBvcyIgaXMgb3V0c2lkZSB0
aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2YgdGhpcyBvYmpl
Y3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFN0ciBUaGUgdW5pY29kZSBzdHJpbmcg
dXNlZCB0byBjcmVhdGUgYW4gaXRlcmF0b3IKKyAgICogQHBhcmFtIHRleHRQb3MgVGhlIHN0YXJ0
aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVbmljb2RlU3RyaW5nJiAgICB0ZXh0
U3RyLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0UG9zKTsKKworICAv
KioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJy
ZWQgdG8gYnkgInRleHRTdHIiLgorICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaXMgY29w
aWVkLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGJlZ2lucyB3aXRoIHRoZSBjb2RlIHVuaXQg
c3BlY2lmaWVkIGJ5CisgICAqICJ0ZXh0QmVnaW4iIGFuZCBlbmRzIHdpdGggdGhlIGNvZGUgdW5p
dCBCRUZPUkUgdGhlIGNvZGUgdW5pdCBzcGVjZmllZAorICAgKiBieSAidGV4dEVuZCIuICBUaGUg
c3RhcnRpbmcgcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJ0ZXh0UG9zIi4gIElmCisgICAqICJ0
ZXh0QmVnaW4iIGFuZCAidGV4dEVuZCIgZG9uJ3QgZm9ybSBhIHZhbGlkIHJhbmdlIG9uICJ0ZXh0
IiAoaS5lLiwKKyAgICogdGV4dEJlZ2luID49IHRleHRFbmQgb3IgZWl0aGVyIGlzIG5lZ2F0aXZl
IG9yIGdyZWF0ZXIgdGhhbiB0ZXh0LnNpemUoKSksCisgICAqIG9yICJ0ZXh0UG9zIiBpcyBvdXRz
aWRlIHRoZSByYW5nZSBkZWZpbmVkIGJ5ICJ0ZXh0QmVnaW4iIGFuZCAidGV4dEVuZCIsCisgICAq
IHRoZSBiZWhhdmlvciBvZiB0aGlzIGl0ZXJhdG9yIGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFt
IHRleHRTdHIgICAgVGhlIHVuaWNvZGUgc3RyaW5nIHVzZWQgdG8gY3JlYXRlIHRoZSBTdHJpbmdD
aGFyYWN0ZXJJdGVyYXRvcgorICAgKiBAcGFyYW0gdGV4dEJlZ2luICBUaGUgYmVnaW4gcG9zaXRp
b24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0gdGV4dEVuZCAgICBUaGUgZW5k
IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRQb3MgICAg
VGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVbmljb2RlU3RyaW5n
JiAgICB0ZXh0U3RyLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0QmVn
aW4sCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAgICAgIHRleHRFbmQsCisgICAgICAg
ICAgICAgIGludDMyX3QgICAgICAgICAgICAgIHRleHRQb3MpOworCisgIC8qKgorICAgKiBDb3B5
IGNvbnN0cnVjdG9yLiAgVGhlIG5ldyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIHRoZSBzYW1lIHJh
bmdlCisgICAqIG9mIHRoZSBzYW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCBpdHMgaW5pdGlhbCBw
b3NpdGlvbiBpcyB0aGUKKyAgICogc2FtZSBhcyAidGhhdCIncyBjdXJyZW50IHBvc2l0aW9uLgor
ICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaW4gInRoYXQiIGlzIGNvcGllZC4KKyAgICog
QHBhcmFtIHRoYXQgVGhlIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvcGllZAorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0
IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJiAgdGhhdCk7CisKKyAgLyoqCisgICAqIERlc3RydWN0
b3IuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB+U3RyaW5nQ2hhcmFj
dGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogQXNzaWdubWVudCBvcGVyYXRvci4gICp0aGlz
IGlzIGFsdGVyZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBzYW1lCisgICAqIHJhbmdlIG9mIHRoZSBz
YW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCByZWZlcnMgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFj
dGVyIHdpdGhpbiB0aGF0IHN0cmluZyBhcyAidGhhdCIgZG9lcy4KKyAgICogQHBhcmFtIHRoYXQg
VGhlIG9iamVjdCB0byBiZSBjb3BpZWQuCisgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQg
b2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0
ZXJhdG9yJgorICBvcGVyYXRvcj0oY29uc3QgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImICAgIHRo
YXQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRl
IG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9p
bnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgKiBAcmV0
dXJuIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2Yg
dGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFj
dGVyLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAg
ICAgb3BlcmF0b3I9PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0
OworCisgIC8qKgorICAgKiBSZXR1cm5zIGEgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHJl
ZmVycmluZyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgcmFuZ2Ugb2Yg
dGhlIHNhbWUgc3RyaW5nIGFzIHRoaXMgb25lLiAgVGhlCisgICAqIGNhbGxlciBtdXN0IGRlbGV0
ZSB0aGUgbmV3IGl0ZXJhdG9yLgorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjbG9uZWQgb2JqZWN0
LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0
b3IqIGNsb25lKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0
byBpdGVyYXRlIG92ZXIgdGhlIHByb3ZpZGVkIHN0cmluZy4KKyAgICogQHBhcmFtIG5ld1RleHQg
VGhlIHN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdm9pZCBzZXRUZXh0KGNvbnN0IFVuaWNvZGVTdHJpbmcmIG5ld1RleHQpOworCisgIC8q
KgorICAgKiBDb3BpZXMgdGhlIFVuaWNvZGVTdHJpbmcgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhl
IFVuaWNvZGVTdHJpbmcKKyAgICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICBFdmVuIGlmIHRo
aXMgaXRlcmF0b3IgaXRlcmF0ZXMgYWNyb3NzCisgICAqIG9ubHkgYSBwYXJ0IG9mIHRoaXMgc3Ry
aW5nLCB0aGUgd2hvbGUgc3RyaW5nIGlzIGNvcGllZC4KKyAgICogQHBhcmFtIHJlc3VsdCBSZWNl
aXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uLgorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0
cmluZyYgcmVzdWx0KTsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMg
b2JqZWN0IChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0
aGlzIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDbGFz
c0lEICAgICAgICAgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAq
IFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzIChub3QgcmVhbGx5IHB1YmxpYykKKyAg
ICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgc3RhdGljIFVDbGFzc0lEICAgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQo
dm9pZCk7CisKK3Byb3RlY3RlZDoKKyAgLyoqCisgICAqIERlZmF1bHQgY29uc3RydWN0b3IsIGl0
ZXJhdGlvbiBvdmVyIGVtcHR5IHN0cmluZy4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVy
YXRvciB0byBpdGVyYXRlIG92ZXIgdGhlIHByb3ZpZGVkIHN0cmluZy4KKyAgICogQHBhcmFtIG5l
d1RleHQgVGhlIHN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBwYXJhbSBuZXdUZXh0
TGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFN0cmluZworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVQ2hhciogbmV3VGV4dCwgaW50MzJfdCBuZXdUZXh0
TGVuZ3RoKTsKKworICAvKioKKyAgICogQ29weSBvZiB0aGUgaXRlcmF0ZWQgc3RyaW5nIG9iamVj
dC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVbmljb2RlU3RyaW5nICAgICAgICAg
ICAgdGV4dDsKKworfTsKKworVV9OQU1FU1BBQ0VfRU5ECisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNhc2VtYXAuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUv
dWNhc2VtYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzdlMTY1ODg2OTdmMWE5MzAxOTFlZTNkZjgxNmM2M2I3
YmQzOGMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1h
cC5oCkBAIC0wLDAgKzEsNDIzIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAg
IENvcHlyaWdodCAoQykgMjAwNS0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdWNhc2VtYXAuaAorKiAgIGVu
Y29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5k
ZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDIwMDVtYXkwNgorKiAgIGNyZWF0ZWQgYnk6
IE1hcmt1cyBXLiBTY2hlcmVyCisqCisqICAgQ2FzZSBtYXBwaW5nIHNlcnZpY2Ugb2JqZWN0IGFu
ZCBmdW5jdGlvbnMgdXNpbmcgaXQuCisqLworCisjaWZuZGVmIF9fVUNBU0VNQVBfSF9fCisjZGVm
aW5lIF9fVUNBU0VNQVBfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1
ZGUgInVuaWNvZGUvdXN0cmluZy5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9jYWxwb2ludGVyLmgi
CisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogVW5pY29kZSBjYXNlIG1hcHBpbmcg
ZnVuY3Rpb25zIHVzaW5nIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKgorICogVGhlIHNl
cnZpY2Ugb2JqZWN0IHRha2VzIGNhcmUgb2YgbWVtb3J5IGFsbG9jYXRpb25zLCBkYXRhIGxvYWRp
bmcsIGFuZCBzZXR1cAorICogZm9yIHRoZSBhdHRyaWJ1dGVzLCBhcyB1c3VhbC4KKyAqCisgKiBD
dXJyZW50bHksIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGhlcmUgZG9lcyBub3Qgb3Zlcmxh
cCB3aXRoIHVjaGFyLmgKKyAqIGFuZCB1c3RyaW5nLmgsIGV4Y2VwdCBmb3IgdWNhc2VtYXBfdG9U
aXRsZSgpLgorICoKKyAqIHVjYXNlbWFwX3V0ZjhYWVooKSBmdW5jdGlvbnMgb3BlcmF0ZSBkaXJl
Y3RseSBvbiBVVEYtOCBzdHJpbmdzLgorICovCisKKy8qKgorICogVUNhc2VNYXAgaXMgYW4gb3Bh
cXVlIHNlcnZpY2Ugb2JqZWN0IGZvciBuZXdlciBJQ1UgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucy4K
KyAqIE9sZGVyIGZ1bmN0aW9ucyBkaWQgbm90IHVzZSBhIHNlcnZpY2Ugb2JqZWN0LgorICogQHN0
YWJsZSBJQ1UgMy40CisgKi8KK3N0cnVjdCBVQ2FzZU1hcDsKK3R5cGVkZWYgc3RydWN0IFVDYXNl
TWFwIFVDYXNlTWFwOyAvKio8IEMgdHlwZWRlZiBmb3Igc3RydWN0IFVDYXNlTWFwLiBAc3RhYmxl
IElDVSAzLjQgKi8KKworLyoqCisgKiBPcGVuIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QgZm9y
IGEgbG9jYWxlIGFuZCBhIHNldCBvZiBvcHRpb25zLgorICogVGhlIGxvY2FsZSBJRCBhbmQgb3B0
aW9ucyBhcmUgcHJlcHJvY2Vzc2VkIHNvIHRoYXQgZnVuY3Rpb25zIHVzaW5nIHRoZQorICogc2Vy
dmljZSBvYmplY3QgbmVlZCBub3QgcHJvY2VzcyB0aGVtIGluIGVhY2ggY2FsbC4KKyAqCisgKiBA
cGFyYW0gbG9jYWxlIElDVSBsb2NhbGUgSUQsIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudAor
ICogICAgICAgICAgICAgICB1cHBlci0vbG93ZXItL3RpdGxlLWNhc2luZyBhY2NvcmRpbmcgdG8g
dGhlIFVuaWNvZGUgc3RhbmRhcmQuCisgKiAgICAgICAgICAgICAgIFVzdWFsIHNlbWFudGljczog
IiI9cm9vdCwgTlVMTD1kZWZhdWx0IGxvY2FsZSwgZXRjLgorICogQHBhcmFtIG9wdGlvbnMgT3B0
aW9ucyBiaXQgc2V0LCB1c2VkIGZvciBjYXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29u
cy4KKyAqICAgICAgICAgICAgICAgIFNhbWUgZmxhZ3MgYXMgZm9yIHVfZm9sZENhc2UoKSwgdV9z
dHJGb2xkQ2FzZSgpLAorICogICAgICAgICAgICAgICAgdV9zdHJDYXNlQ29tcGFyZSgpLCBldGMu
CisgKiAgICAgICAgICAgICAgICBVc2UgMCBvciBVX0ZPTERfQ0FTRV9ERUZBVUxUIGZvciBkZWZh
dWx0IGJlaGF2aW9yLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50
ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11
c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBA
cmV0dXJuIFBvaW50ZXIgdG8gYSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdCwgaWYgc3VjY2Vzc2Z1
bC4KKyAqCisgKiBAc2VlIFVfRk9MRF9DQVNFX0RFRkFVTFQKKyAqIEBzZWUgVV9GT0xEX0NBU0Vf
RVhDTFVERV9TUEVDSUFMX0kKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBA
c2VlIFVfVElUTEVDQVNFX05PX0JSRUFLX0FESlVTVE1FTlQKKyAqIEBzdGFibGUgSUNVIDMuNAor
ICovCitVX1NUQUJMRSBVQ2FzZU1hcCAqIFVfRVhQT1JUMgordWNhc2VtYXBfb3Blbihjb25zdCBj
aGFyICpsb2NhbGUsIHVpbnQzMl90IG9wdGlvbnMsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwor
CisvKioKKyAqIENsb3NlIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gY3Nt
IE9iamVjdCB0byBiZSBjbG9zZWQuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUg
dm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX2Nsb3NlKFVDYXNlTWFwICpjc20pOworCisjaWYgVV9T
SE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBcY2xhc3Mg
TG9jYWxVQ2FzZU1hcFBvaW50ZXIKKyAqICJTbWFydCBwb2ludGVyIiBjbGFzcywgY2xvc2VzIGEg
VUNhc2VNYXAgdmlhIHVjYXNlbWFwX2Nsb3NlKCkuCisgKiBGb3IgbW9zdCBtZXRob2RzIHNlZSB0
aGUgTG9jYWxQb2ludGVyQmFzZSBiYXNlIGNsYXNzLgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVy
QmFzZQorICogQHNlZSBMb2NhbFBvaW50ZXIKKyAqIEBzdGFibGUgSUNVIDQuNAorICovCitVX0RF
RklORV9MT0NBTF9PUEVOX1BPSU5URVIoTG9jYWxVQ2FzZU1hcFBvaW50ZXIsIFVDYXNlTWFwLCB1
Y2FzZW1hcF9jbG9zZSk7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYKKworLyoqCisgKiBH
ZXQgdGhlIGxvY2FsZSBJRCB0aGF0IGlzIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudCBjYXNl
IG1hcHBpbmdzLgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBy
ZXR1cm4gbG9jYWxlIElECisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgY29uc3Qg
Y2hhciAqIFVfRVhQT1JUMgordWNhc2VtYXBfZ2V0TG9jYWxlKGNvbnN0IFVDYXNlTWFwICpjc20p
OworCisvKioKKyAqIEdldCB0aGUgb3B0aW9ucyBiaXQgc2V0IHRoYXQgaXMgdXNlZCBmb3IgY2Fz
ZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVybiBvcHRpb25zIGJpdCBzZXQKKyAqIEBzdGFibGUg
SUNVIDMuNAorICovCitVX1NUQUJMRSB1aW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldE9w
dGlvbnMoY29uc3QgVUNhc2VNYXAgKmNzbSk7CisKKy8qKgorICogU2V0IHRoZSBsb2NhbGUgSUQg
dGhhdCBpcyB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQgY2FzZSBtYXBwaW5ncy4KKyAqCisg
KiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGxvY2FsZSBM
b2NhbGUgSUQsIHNlZSB1Y2FzZW1hcF9vcGVuKCkuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0
IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAg
ICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVu
Y3Rpb24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX29wZW4KKyAqIEBzdGFibGUgSUNVIDMu
NAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0TG9jYWxlKFVDYXNl
TWFwICpjc20sIGNvbnN0IGNoYXIgKmxvY2FsZSwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisK
Ky8qKgorICogU2V0IHRoZSBvcHRpb25zIGJpdCBzZXQgdGhhdCBpcyB1c2VkIGZvciBjYXNlIGZv
bGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29ucy4KKyAqCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBiaXQgc2V0LCBzZWUg
dWNhc2VtYXBfb3BlbigpLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBv
aW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNo
IG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisg
KgorICogQHNlZSB1Y2FzZW1hcF9vcGVuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFC
TEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldE9wdGlvbnMoVUNhc2VNYXAgKmNzbSwgdWlu
dDMyX3Qgb3B0aW9ucywgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogRG8gbm90
IGxvd2VyY2FzZSBub24taW5pdGlhbCBwYXJ0cyBvZiB3b3JkcyB3aGVuIHRpdGxlY2FzaW5nLgor
ICogT3B0aW9uIGJpdCBmb3IgdGl0bGVjYXNpbmcgQVBJcyB0aGF0IHRha2UgYW4gb3B0aW9ucyBi
aXQgc2V0LgorICoKKyAqIEJ5IGRlZmF1bHQsIHRpdGxlY2FzaW5nIHdpbGwgdGl0bGVjYXNlIHRo
ZSBmaXJzdCBjYXNlZCBjaGFyYWN0ZXIKKyAqIG9mIGEgd29yZCBhbmQgbG93ZXJjYXNlIGFsbCBv
dGhlciBjaGFyYWN0ZXJzLgorICogV2l0aCB0aGlzIG9wdGlvbiwgdGhlIG90aGVyIGNoYXJhY3Rl
cnMgd2lsbCBub3QgYmUgbW9kaWZpZWQuCisgKgorICogQHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25z
CisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUK
KyAqIEBzZWUgVW5pY29kZVN0cmluZzo6dG9UaXRsZQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8K
KyNkZWZpbmUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFIDB4MTAwCisKKy8qKgorICogRG8gbm90
IGFkanVzdCB0aGUgdGl0bGVjYXNpbmcgaW5kZXhlcyBmcm9tIEJyZWFrSXRlcmF0b3I6Om5leHQo
KSBpbmRleGVzOworICogdGl0bGVjYXNlIGV4YWN0bHkgdGhlIGNoYXJhY3RlcnMgYXQgYnJlYWtz
IGZyb20gdGhlIGl0ZXJhdG9yLgorICogT3B0aW9uIGJpdCBmb3IgdGl0bGVjYXNpbmcgQVBJcyB0
aGF0IHRha2UgYW4gb3B0aW9ucyBiaXQgc2V0LgorICoKKyAqIEJ5IGRlZmF1bHQsIHRpdGxlY2Fz
aW5nIHdpbGwgdGFrZSBlYWNoIGJyZWFrIGl0ZXJhdG9yIGluZGV4LAorICogYWRqdXN0IGl0IGJ5
IGxvb2tpbmcgZm9yIHRoZSBuZXh0IGNhc2VkIGNoYXJhY3RlciwgYW5kIHRpdGxlY2FzZSB0aGF0
IG9uZS4KKyAqIE90aGVyIGNoYXJhY3RlcnMgYXJlIGxvd2VyY2FzZWQuCisgKgorICogVGhpcyBm
b2xsb3dzIFVuaWNvZGUgNCAmIDUgc2VjdGlvbiAzLjEzIERlZmF1bHQgQ2FzZSBPcGVyYXRpb25z
OgorICoKKyAqIFIzICB0b1RpdGxlY2FzZShYKTogRmluZCB0aGUgd29yZCBib3VuZGFyaWVzIGJh
c2VkIG9uIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXgKKyAqICMyOSwgIlRleHQgQm91bmRhcmllcy4i
IEJldHdlZW4gZWFjaCBwYWlyIG9mIHdvcmQgYm91bmRhcmllcywgZmluZCB0aGUgZmlyc3QKKyAq
IGNhc2VkIGNoYXJhY3RlciBGLiBJZiBGIGV4aXN0cywgbWFwIEYgdG8gZGVmYXVsdF90aXRsZShG
KTsgdGhlbiBtYXAgZWFjaAorICogc3Vic2VxdWVudCBjaGFyYWN0ZXIgQyB0byBkZWZhdWx0X2xv
d2VyKEMpLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNlZSB1Y2FzZW1h
cF90b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc2VlIFVuaWNvZGVT
dHJpbmc6OnRvVGl0bGUKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBAc3Rh
YmxlIElDVSAzLjgKKyAqLworI2RlZmluZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5U
IDB4MjAwCisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworLyoqCisgKiBHZXQg
dGhlIGJyZWFrIGl0ZXJhdG9yIHRoYXQgaXMgdXNlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBEbyBu
b3QgbW9kaWZ5IHRoZSByZXR1cm5lZCBicmVhayBpdGVyYXRvci4KKyAqIEBwYXJhbSBjc20gVUNh
c2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIHRpdGxlY2FzaW5nIGJyZWFrIGl0ZXJh
dG9yCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgY29uc3QgVUJyZWFrSXRlcmF0
b3IgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldEJyZWFrSXRlcmF0b3IoY29uc3QgVUNhc2VNYXAg
KmNzbSk7CisKKy8qKgorICogU2V0IHRoZSBicmVhayBpdGVyYXRvciB0aGF0IGlzIHVzZWQgZm9y
IHRpdGxlY2FzaW5nLgorICogVGhlIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0IHJlbGVhc2VzIGEg
cHJldmlvdXNseSBzZXQgYnJlYWsgaXRlcmF0b3IKKyAqIGFuZCAiYWRvcHRzIiB0aGlzIG5ldyBv
bmUsIHRha2luZyBvd25lcnNoaXAgb2YgaXQuCisgKiBJdCB3aWxsIGJlIHJlbGVhc2VkIGluIGEg
c3Vic2VxdWVudCBjYWxsIHRvIHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoKQorICogb3IgdWNh
c2VtYXBfY2xvc2UoKS4KKyAqCisgKiBCcmVhayBpdGVyYXRvciBvcGVyYXRpb25zIGFyZSBub3Qg
dGhyZWFkLXNhZmUuIFRoZXJlZm9yZSwgdGl0bGVjYXNpbmcKKyAqIGZ1bmN0aW9ucyB1c2Ugbm9u
LWNvbnN0IFVDYXNlTWFwIG9iamVjdHMuIEl0IGlzIG5vdCBwb3NzaWJsZSB0byB0aXRsZWNhc2UK
KyAqIHN0cmluZ3MgY29uY3VycmVudGx5IHVzaW5nIHRoZSBzYW1lIFVDYXNlTWFwLgorICoKKyAq
IEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gaXRlclRvQWRv
cHQgQnJlYWsgaXRlcmF0b3IgdG8gYmUgYWRvcHRlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBAcGFy
YW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZh
bHVlLAorICogICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWls
dXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0
bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICov
CitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcihVQ2Fz
ZU1hcCAqY3NtLCBVQnJlYWtJdGVyYXRvciAqaXRlclRvQWRvcHQsIFVFcnJvckNvZGUgKnBFcnJv
ckNvZGUpOworCisvKioKKyAqIFRpdGxlY2FzZSBhIFVURi0xNiBzdHJpbmcuIFRoaXMgZnVuY3Rp
b24gaXMgYWxtb3N0IGEgZHVwbGljYXRlIG9mIHVfc3RyVG9UaXRsZSgpLAorICogZXhjZXB0IHRo
YXQgaXQgdGFrZXMgdWNhc2VtYXBfc2V0T3B0aW9ucygpIGludG8gYWNjb3VudCBhbmQgaGFzIHBl
cmZvcm1hbmNlCisgKiBhZHZhbnRhZ2VzIGZyb20gYmVpbmcgYWJsZSB0byB1c2UgYSBVQ2FzZU1h
cCBvYmplY3QgZm9yIG11bHRpcGxlIGNhc2UgbWFwcGluZworICogb3BlcmF0aW9ucywgc2F2aW5n
IHNldHVwIHRpbWUuCisgKgorICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRl
eHQtc2Vuc2l0aXZlLgorICogVGl0bGVjYXNpbmcgdXNlcyBhIGJyZWFrIGl0ZXJhdG9yIHRvIGZp
bmQgdGhlIGZpcnN0IGNoYXJhY3RlcnMgb2Ygd29yZHMKKyAqIHRoYXQgYXJlIHRvIGJlIHRpdGxl
Y2FzZWQuIEl0IHRpdGxlY2FzZXMgdGhvc2UgY2hhcmFjdGVycyBhbmQgbG93ZXJjYXNlcworICog
YWxsIG90aGVycy4gKFRoaXMgY2FuIGJlIG1vZGlmaWVkIHdpdGggdWNhc2VtYXBfc2V0T3B0aW9u
cygpLikKKyAqCisgKiBOb3RlOiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgbm9uLWNvbnN0IFVDYXNl
TWFwIHBvaW50ZXIgYmVjYXVzZSBpdCB3aWxsCisgKiBvcGVuIGEgZGVmYXVsdCBicmVhayBpdGVy
YXRvciBpZiBubyBicmVhayBpdGVyYXRvciB3YXMgc2V0IHlldCwKKyAqIGFuZCBlZmZlY3RpdmVs
eSBjYWxsIHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoKTsKKyAqIGFsc28gYmVjYXVzZSB0aGUg
YnJlYWsgaXRlcmF0b3IgaXMgc3RhdGVmdWwgYW5kIHdpbGwgYmUgbW9kaWZpZWQgZHVyaW5nCisg
KiB0aGUgaXRlcmF0aW9uLgorICoKKyAqIFRoZSB0aXRsZWNhc2UgYnJlYWsgaXRlcmF0b3IgY2Fu
IGJlIHByb3ZpZGVkIHRvIGN1c3RvbWl6ZSBmb3IgYXJiaXRyYXJ5CisgKiBzdHlsZXMsIHVzaW5n
IHJ1bGVzIGFuZCBkaWN0aW9uYXJpZXMgYmV5b25kIHRoZSBzdGFuZGFyZCBpdGVyYXRvcnMuCisg
KiBUaGUgc3RhbmRhcmQgdGl0bGVjYXNlIGl0ZXJhdG9yIGZvciB0aGUgcm9vdCBsb2NhbGUgaW1w
bGVtZW50cyB0aGUKKyAqIGFsZ29yaXRobSBvZiBVbmljb2RlIFRSIDIxLgorICoKKyAqIFRoaXMg
ZnVuY3Rpb24gdXNlcyBvbmx5IHRoZSBzZXRVVGV4dCgpLCBmaXJzdCgpLCBuZXh0KCkgYW5kIGNs
b3NlKCkgbWV0aG9kcyBvZiB0aGUKKyAqIHByb3ZpZGVkIGJyZWFrIGl0ZXJhdG9yLgorICoKKyAq
IFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgor
ICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qg
b3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0
LiBUaGlzIHBvaW50ZXIgaXMgbm9uLWNvbnN0IQorICogICAgICAgICAgICAgICAgICBTZWUgdGhl
IG5vdGUgYWJvdmUgZm9yIGRldGFpbHMuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZv
ciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlm
CisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAg
ICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVy
ZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVy
IG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1h
eSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9m
IHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0
aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmlu
Zy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5n
LiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJy
b3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisg
KiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZv
cmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3Vs
dCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93
LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RD
YXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9UaXRsZQorICogQHN0YWJsZSBJQ1UgMy44Cisg
Ki8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF90b1RpdGxlKFVDYXNlTWFw
ICpjc20sCisgICAgICAgICAgICAgICAgIFVDaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0
eSwKKyAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgs
CisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYKKwor
LyoqCisgKiBMb3dlcmNhc2UgdGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcuCisgKiBD
YXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaGUg
cmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRo
ZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJs
YXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAq
IEBwYXJhbSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVz
dWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1
ZmZlciBpcyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBp
cyB1bmRlZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBU
aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVu
CisgKiAgICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3
aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAg
ICAgICB3aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFt
IHNyYyAgICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUg
bGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5V
TC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50
ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVz
dCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEBy
ZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9y
IGluIGNhc2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2Ug
aXQgd2lsbCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJU
b0xvd2VyCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9S
VDIKK3VjYXNlbWFwX3V0ZjhUb0xvd2VyKGNvbnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAg
ICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBVcHBlcmNhc2Ug
dGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRl
cGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25n
ZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFu
ZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFt
IGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAg
QSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRl
cm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91
Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2Fz
ZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVm
ZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAg
ICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRo
ZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRp
bmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3Jp
Z2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmln
aW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICog
QHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29k
ZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBm
YWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBv
ZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZm
ZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVy
IHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1VwcGVyCisgKiBAc3RhYmxl
IElDVSAzLjQKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhU
b1VwcGVyKGNvbnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgICAgICBjaGFyICpk
ZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlICpwRXJyb3JDb2RlKTsKKworI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCisv
KioKKyAqIFRpdGxlY2FzZSBhIFVURi04IHN0cmluZy4KKyAqIENhc2luZyBpcyBsb2NhbGUtZGVw
ZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRpdGxlY2FzaW5nIHVzZXMgYSBicmVh
ayBpdGVyYXRvciB0byBmaW5kIHRoZSBmaXJzdCBjaGFyYWN0ZXJzIG9mIHdvcmRzCisgKiB0aGF0
IGFyZSB0byBiZSB0aXRsZWNhc2VkLiBJdCB0aXRsZWNhc2VzIHRob3NlIGNoYXJhY3RlcnMgYW5k
IGxvd2VyY2FzZXMKKyAqIGFsbCBvdGhlcnMuIChUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHVj
YXNlbWFwX3NldE9wdGlvbnMoKS4pCisgKgorICogTm90ZTogVGhpcyBmdW5jdGlvbiB0YWtlcyBh
IG5vbi1jb25zdCBVQ2FzZU1hcCBwb2ludGVyIGJlY2F1c2UgaXQgd2lsbAorICogb3BlbiBhIGRl
ZmF1bHQgYnJlYWsgaXRlcmF0b3IgaWYgbm8gYnJlYWsgaXRlcmF0b3Igd2FzIHNldCB5ZXQsCisg
KiBhbmQgZWZmZWN0aXZlbHkgY2FsbCB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCk7CisgKiBh
bHNvIGJlY2F1c2UgdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIHN0YXRlZnVsIGFuZCB3aWxsIGJlIG1v
ZGlmaWVkIGR1cmluZworICogdGhlIGl0ZXJhdGlvbi4KKyAqCisgKiBUaGUgdGl0bGVjYXNlIGJy
ZWFrIGl0ZXJhdG9yIGNhbiBiZSBwcm92aWRlZCB0byBjdXN0b21pemUgZm9yIGFyYml0cmFyeQor
ICogc3R5bGVzLCB1c2luZyBydWxlcyBhbmQgZGljdGlvbmFyaWVzIGJleW9uZCB0aGUgc3RhbmRh
cmQgaXRlcmF0b3JzLgorICogVGhlIHN0YW5kYXJkIHRpdGxlY2FzZSBpdGVyYXRvciBmb3IgdGhl
IHJvb3QgbG9jYWxlIGltcGxlbWVudHMgdGhlCisgKiBhbGdvcml0aG0gb2YgVW5pY29kZSBUUiAy
MS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHVzZXMgb25seSB0aGUgc2V0VVRleHQoKSwgZmlyc3Qo
KSwgbmV4dCgpIGFuZCBjbG9zZSgpIG1ldGhvZHMgb2YgdGhlCisgKiBwcm92aWRlZCBicmVhayBp
dGVyYXRvci4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFu
IHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24g
YnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1h
cCBzZXJ2aWNlIG9iamVjdC4gVGhpcyBwb2ludGVyIGlzIG5vbi1jb25zdCEKKyAqICAgICAgICAg
ICAgICAgICAgU2VlIHRoZSBub3RlIGFib3ZlIGZvciBkZXRhaWxzLgorICogQHBhcmFtIGRlc3Qg
ICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBO
VUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdl
IGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBp
biBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRo
ZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAg
ICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1
cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQg
d3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRo
ZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhl
IG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQu
CisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJv
ciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0
ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVu
Z3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBh
IGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdy
ZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0clRvVGl0bGUKKyAqIEBz
ZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0JSRUFL
X0FESlVTVE1FTlQKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSBpbnQzMl90IFVf
RVhQT1JUMgordWNhc2VtYXBfdXRmOFRvVGl0bGUoVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAg
ICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAg
ICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYKKworLyoqCisgKiBDYXNl
LWZvbGRzIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICoKKyAqIENhc2UtZm9s
ZGluZyBpcyBsb2NhbGUtaW5kZXBlbmRlbnQgYW5kIG5vdCBjb250ZXh0LXNlbnNpdGl2ZSwKKyAq
IGJ1dCB0aGVyZSBpcyBhbiBvcHRpb24gZm9yIHdoZXRoZXIgdG8gaW5jbHVkZSBvciBleGNsdWRl
IG1hcHBpbmdzIGZvciBkb3R0ZWQgSQorICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQg
d2l0aCAnVCcgaW4gQ2FzZUZvbGRpbmcudHh0LgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxv
bmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcg
YW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFy
YW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGRlc3QgICAg
ICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwt
dGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVu
b3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBj
YXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBi
dWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAg
ICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4g
dGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3Jp
dGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBv
cmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9y
aWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisg
KiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBj
b2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBh
IGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3Ro
IG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1
ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0
ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0ckZvbGRDYXNlCisgKiBAc2Vl
IHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgVV9GT0xEX0NBU0VfREVGQVVMVAorICogQHNl
ZSBVX0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8K
K1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4Rm9sZENhc2UoY29uc3Qg
VUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90
IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGlu
dDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJv
ckNvZGUpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNo
cml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0ZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
ZDVhOTkwZjdiN2VkM2Q1YmFjZjJkYTg0NzFlZjhmZjk0MjJmOTljCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2hyaXRlci5oCkBAIC0wLDAgKzEsMzgxIEBACisv
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIFVDSFJJVEVSX0gK
KyNkZWZpbmUgVUNIUklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNs
dWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisKKy8qKgorICogXGZpbGUgCisgKiBcYnJpZWYgQysr
IEFQSTogVUNoYXIgQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lO
CisKKy8qKgorICogQSBjb25jcmV0ZSBzdWJjbGFzcyBvZiBDaGFyYWN0ZXJJdGVyYXRvciB0aGF0
IGl0ZXJhdGVzIG92ZXIgdGhlCisgKiBjaGFyYWN0ZXJzIChjb2RlIHVuaXRzIG9yIGNvZGUgcG9p
bnRzKSBpbiBhIFVDaGFyIGFycmF5LgorICogSXQncyBwb3NzaWJsZSBub3Qgb25seSB0byBjcmVh
dGUgYW4KKyAqIGl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciBhbiBlbnRpcmUgVUNoYXIgYXJy
YXksIGJ1dCBhbHNvIHRvCisgKiBjcmVhdGUgb25lIHRoYXQgaXRlcmF0ZXMgb3ZlciBvbmx5IGEg
c3VicmFuZ2Ugb2YgYSBVQ2hhciBhcnJheQorICogKGl0ZXJhdG9ycyBvdmVyIGRpZmZlcmVudCBz
dWJyYW5nZXMgb2YgdGhlIHNhbWUgVUNoYXIgYXJyYXkgZG9uJ3QKKyAqIGNvbXBhcmUgZXF1YWwp
LgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQHNlZSBGb3J3YXJkQ2hhcmFjdGVySXRl
cmF0b3IKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgVUNoYXJD
aGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBDaGFyYWN0ZXJJdGVyYXRvciB7CitwdWJsaWM6Cisg
IC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJy
ZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNv
ZGU+bGVuZ3RoLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlzIG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0
ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90IGRlbGV0ZSBpdCkuCisgICAqIEBwYXJh
bSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBwYXJh
bSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIgYXJyYXkKKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyKiB0ZXh0UHRy
LCBpbnQzMl90IGxlbmd0aCk7CisKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVy
IHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVy
YXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5sZW5ndGgtMTwvY29kZT4uCisgICAqIHRleHQgaXMg
b25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisgICAqIGRlc3RydWN0b3Igd2lsbCBub3Qg
ZGVsZXRlIGl0KS4KKyAgICogVGhlIHN0YXJ0aW5nCisgICAqIHBvc2l0aW9uIGlzIHNwZWNpZmll
ZCBieSAicG9zaXRpb24iLiBJZiAicG9zaXRpb24iIGlzIG91dHNpZGUgdGhlIHZhbGlkCisgICAq
IGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVuZGVmaW5l
ZC4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGQgb3Zl
cgorICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAq
IEBwYXJhbSBwb3NpdGlvbiBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29u
c3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Ig
b3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUg
aXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNvZGU+ZW5kLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlz
IG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90
IGRlbGV0ZSBpdCkuCisgICAqIFRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVjaWZp
ZWQgYnkgInBvc2l0aW9uIi4gSWYgYmVnaW4gYW5kIGVuZCBkbyBub3QKKyAgICogZm9ybSBhIHZh
bGlkIGl0ZXJhdGlvbiByYW5nZSBvciAicG9zaXRpb24iIGlzIG91dHNpZGUgdGhlIHZhbGlkCisg
ICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVuZGVm
aW5lZC4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGVk
IG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQor
ICAgKiBAcGFyYW0gdGV4dEJlZ2luICBUaGUgYmVnaW4gcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlv
biByYW5nZQorICAgKiBAcGFyYW0gdGV4dEVuZCAgICBUaGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBp
dGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHBvc2l0aW9uICAgIFRoZSBzdGFydGluZyBwb3Np
dGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNo
YXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5ndGgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCB0ZXh0QmVnaW4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50MzJfdCB0ZXh0RW5kLAorICAgICAgICAgICAgICAgICAgICAgICAg
IGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBDb3B5IGNvbnN0cnVjdG9yLiAgVGhl
IG5ldyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIHRoZSBzYW1lIHJhbmdlCisgICAqIG9mIHRoZSBz
YW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCBpdHMgaW5pdGlhbCBwb3NpdGlvbiBpcyB0aGUKKyAg
ICogc2FtZSBhcyAidGhhdCIncyBjdXJyZW50IHBvc2l0aW9uLgorICAgKiBAcGFyYW0gdGhhdCBU
aGUgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyQ2hhcmFjdGVy
SXRlcmF0b3ImICB0aGF0KTsKKworICAvKioKKyAgICogRGVzdHJ1Y3Rvci4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIH5VQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKCk7CisK
KyAgLyoqCisgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICAqdGhpcyBpcyBhbHRlcmVkIHRvIGl0
ZXJhdGUgb3ZlciB0aGUgc2FuZQorICAgKiByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRo
YXQiLCBhbmQgcmVmZXJzIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciB3aXRoaW4gdGhhdCBz
dHJpbmcgYXMgInRoYXQiIGRvZXMuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBvYmplY3QgdG8gYmUg
Y29waWVkCisgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0CisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYKKyAgb3BlcmF0b3I9
KGNvbnN0IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImICAgIHRoYXQpOworCisgIC8qKgorICAgKiBS
ZXR1cm5zIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ug
b2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hh
cmFjdGVyLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHVz
ZWQgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5CisgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUg
aXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBz
dHJpbmcgYW5kIGFyZSBwb2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9vbCAgICAgICAgICBvcGVyYXRvcj09KGNv
bnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgLyoqCisgICAq
IEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhpcyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0
aGUgaGFzaCBjb2RlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgaW50
MzJfdCAgICAgICAgIGhhc2hDb2RlKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1cm5z
IGEgbmV3IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAq
IGNoYXJhY3RlciBpbiB0aGUgc2FtZSByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgdGhpcyBv
bmUuICBUaGUKKyAgICogY2FsbGVyIG11c3QgZGVsZXRlIHRoZSBuZXcgaXRlcmF0b3IuCisgICAq
IEByZXR1cm4gdGhlIENoYXJhY3Rlckl0ZXJhdG9yIG5ld2x5IGNyZWF0ZWQKKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9uZSh2b2lk
KSBjb25zdDsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhl
IGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJu
cyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVy
YXRpb24gd2l0aCBuZXh0KCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBp
dHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUNoYXIgICAgICAgICBmaXJzdCh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0
aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSB1bml0LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9u
CisgICAqIHRvIHRoZSBzZWNvbmQgY29kZSB1bml0LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRv
IHNldFRvU3RhcnQoKQorICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdElu
YygpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiBy
YW5nZQorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAg
ICBmaXJzdFBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFu
Z2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LAorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRv
IGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQzMigpLgorICAgKiBOb3RlIHRoYXQgYW4gaXRl
cmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLCBiZWdpbm5pbmcgd2l0aCwKKyAgICogZS5nLiwg
c2V0VG9TdGFydCgpIG9yIGZpcnN0UG9zdEluYygpLCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICog
QHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzIo
dm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBm
aXJzdCBjb2RlIHBvaW50IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhh
dCBjb2RlIHBvaW50LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAqIHRvIHRoZSBzZWNvbmQg
Y29kZSBwb2ludC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICog
Zm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLgorICAgKiBAcmV0dXJu
IHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzJQb3N0SW5j
KHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUg
bGFzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMg
dGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0
aW9uIHdpdGggcHJldmlvdXMoKS4KKyAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHVuaXQgaW4g
aXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIFVDaGFyICAgICAgICAgbGFzdCh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0
aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUg
dXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91czMyKCkuCisgICAqIEByZXR1
cm4gdGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBsYXN0MzIodm9pZCk7
CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSAicG9zaXRp
b24iLXRoIGNvZGUgdW5pdAorICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRl
cmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAgICogcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICog
QHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQtc3RvcmFnZSBvYmpl
Y3QKKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIHNldEluZGV4KGludDMyX3QgcG9zaXRpb24pOwor
CisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgYmVnaW5uaW5n
IG9mIHRoZSBjb2RlIHBvaW50CisgICAqIHRoYXQgY29udGFpbnMgdGhlICJwb3NpdGlvbiItdGgg
Y29kZSB1bml0CisgICAqIGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciBy
ZWZlcnMgdG8sIGFuZAorICAgKiByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4KKyAgICogVGhlIGN1
cnJlbnQgcG9zaXRpb24gaXMgYWRqdXN0ZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29kZSBw
b2ludAorICAgKiAoaXRzIGZpcnN0IGNvZGUgdW5pdCkuCisgICAqIEBwYXJhbSBwb3NpdGlvbiB0
aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAqIEByZXR1cm4g
dGhlIGNvZGUgdW5pdAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNo
YXIzMiAgICAgICBzZXRJbmRleDMyKGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBS
ZXR1cm5zIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisg
ICAqIEByZXR1cm4gdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0
by4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAg
Y3VycmVudCh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogUmV0dXJucyB0aGUgY29kZSBwb2lu
dCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHJldHVybiB0aGUgY29k
ZSBwb2ludCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgY3VycmVudDMyKHZvaWQpIGNv
bnN0OworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0
aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZSBubyBtb3JlCisgICAqIGNvZGUgdW5pdHMgdG8g
cmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSB1bml0IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCBVQ2hhciAgICAgICAgIG5leHQodm9pZCk7CisKKyAgLyoqCisgICAqIEdldHMgdGhlIGN1
cnJlbnQgY29kZSB1bml0IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNv
ZGUgdW5pdAorICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqICh0b3dhcmQgZW5kSW5k
ZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwg
cmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dFBvc3RJ
bmModm9pZCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQg
aW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIGVuZEluZGV4KCkpLCBhbmQgcmV0
dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHBv
aW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogTm90ZSB0aGF0IGl0ZXJhdGlvbiB3
aXRoICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MgaXMgbGVzcworICAgKiBlZmZpY2llbnQgdGhh
biBpdGVyYXRpb24gd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNlbWFudGljcworICAgKiB0aGF0IGlz
IHByb3ZpZGVkIGJ5IG5leHQzMlBvc3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUgbmV4dCBjb2Rl
IHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMih2b2lkKTsKKworICAvKioKKyAgICog
R2V0cyB0aGUgY3VycmVudCBjb2RlIHBvaW50IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRv
IHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiAo
dG93YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAqIG5vIG1vcmUgY29kZSBwb2lu
dHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgcG9p
bnQuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAg
IG5leHQzMlBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgRkFMU0UgaWYgdGhl
cmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBhdCBvciBhZnRl
ciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBUaGlz
IGlzIHVzZWQgd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMoKSBpbiBmb3J3YXJk
CisgICAqIGl0ZXJhdGlvbi4KKyAgICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9y
ZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50
IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzTmV4dCgpOworCisgIC8qKgorICAgKiBB
ZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2Ug
KHRvd2FyZAorICAgKiBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4g
IElmIHRoZXJlIGFyZSBubyBtb3JlCisgICAqIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5z
IERPTkUuCisgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0
aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIg
ICAgICAgICBwcmV2aW91cyh2b2lkKTsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIHBy
ZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIHN0
YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZSBu
byBtb3JlCisgICAqIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBA
cmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHByZXZp
b3VzMzIodm9pZCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5v
IG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQg
cG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogVGhpcyBpcyB1c2VkIHdpdGgg
cHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkgaW4gYmFja3dhcmQKKyAgICogaXRlcmF0aW9uLgor
ICAgKiBAcmV0dXJuIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29k
ZSBwb2ludHMKKyAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9vbCAg
ICAgICAgaGFzUHJldmlvdXMoKTsKKworICAvKioKKyAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9z
aXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICogaXRlcmF0aW9u
IHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAq
IFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHVuaXRzIGZvcndh
cmQKKyAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZl
IGRlbHRhLgorICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdp
bi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgKiBhIG5lZ2F0aXZlIGRlbHRh
IG1lYW5zIGJhY2t3YXJkLgorICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7
a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92ZShp
bnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbik7CisKKyAgLyoqCisgICAqIE1vdmVzIHRoZSBj
dXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAq
IGl0ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRz
ZWxmLgorICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSBw
b2ludHMgZm9yd2FyZAorICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUg
b3IgbmVnYXRpdmUgZGVsdGEuCisgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVsYXRp
dmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAqIGEgbmVn
YXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVu
dW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgKiBAcmV0dXJuIHRoZSBuZXcg
cG9zaXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIGludDMyX3Qg
ICAgICBtb3ZlMzIoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pOworCisgIC8qKgorICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgYSBuZXcgcmFuZ2Ugb2YgdGV4dAor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVQ2hhciog
bmV3VGV4dCwgaW50MzJfdCBuZXdUZXh0TGVuZ3RoKTsKKworICAvKioKKyAgICogQ29waWVzIHRo
ZSBVQ2hhciBhcnJheSB1bmRlciBpdGVyYXRpb24gaW50byB0aGUgVW5pY29kZVN0cmluZworICAg
KiByZWZlcnJlZCB0byBieSAicmVzdWx0Ii4gIEV2ZW4gaWYgdGhpcyBpdGVyYXRvciBpdGVyYXRl
cyBhY3Jvc3MKKyAgICogb25seSBhIHBhcnQgb2YgdGhpcyBzdHJpbmcsIHRoZSB3aG9sZSBzdHJp
bmcgaXMgY29waWVkLgorICAgKiBAcGFyYW0gcmVzdWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUg
dGV4dCB1bmRlciBpdGVyYXRpb24uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCB2b2lkICAgICAgICAgICAgZ2V0VGV4dChVbmljb2RlU3RyaW5nJiByZXN1bHQpOworCisg
IC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcyAobm90IHJlYWxseSBw
dWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcworICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHN0YXRpYyBVQ2xhc3NJRCAgICAgICAgIFVfRVhQT1JUMiBn
ZXRTdGF0aWNDbGFzc0lEKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBm
b3IgdGhpcyBvYmplY3QgKG5vdCByZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3Mg
SUQgZm9yIHRoaXMgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUNsYXNzSUQgICAgICAgIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCitwcm90
ZWN0ZWQ6CisgIC8qKgorICAgKiBQcm90ZWN0ZWQgY29uc3RydWN0b3IKKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKCk7CisgIC8qKgorICAgKiBQ
cm90ZWN0ZWQgbWVtYmVyIHRleHQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBjb25z
dCBVQ2hhciogICAgICAgICAgICB0ZXh0OworCit9OworCitVX05BTUVTUEFDRV9FTkQKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2xlYW4uaCBiL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvdWNsZWFuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDlhMWU1MzkwNThjZGU4NWVmZDJh
YTg0Y2I3MDdkMzc0MTc0MjVmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvdWNsZWFuLmgKQEAgLTAsMCArMSwyNTggQEAKKy8qCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyogQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKKyogICAgICAgICAgICAgICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVjbGVh
bi5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNl
ZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwMUp1bHkwNQorKiAg
IGNyZWF0ZWQgYnk6IEdlb3JnZSBSaG90ZW4KKyovCisKKyNpZm5kZWYgX19VQ0xFQU5fSF9fCisj
ZGVmaW5lIF9fVUNMRUFOX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKy8qKgor
ICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogSW5pdGlhbGl6ZSBhbmQgY2xlYW4gdXAgSUNVCisg
Ki8KKyAKKy8qKgorICogIEluaXRpYWxpemUgSUNVLgorICoKKyAqICBVc2Ugb2YgdGhpcyBmdW5j
dGlvbiBpcyBvcHRpb25hbC4gIEl0IGlzIE9LIHRvIHNpbXBseSB1c2UgSUNVCisgKiAgc2Vydmlj
ZXMgYW5kIGZ1bmN0aW9ucyB3aXRob3V0IGZpcnN0IGhhdmluZyBpbml0aWFsaXplZAorICogIElD
VSBieSBjYWxsaW5nIHVfaW5pdCgpLgorICoKKyAqICB1X2luaXQoKSB3aWxsIGF0dGVtcHQgdG8g
bG9hZCBzb21lIHBhcnQgb2YgSUNVJ3MgZGF0YSwgYW5kIGlzCisgKiAgdXNlZnVsIGFzIGEgdGVz
dCBmb3IgY29uZmlndXJhdGlvbiBvciBpbnN0YWxsYXRpb24gcHJvYmxlbXMgdGhhdAorICogIGxl
YXZlIHRoZSBJQ1UgZGF0YSBpbmFjY2Vzc2libGUuICBBIHN1Y2Nlc3NmdWwgaW52b2NhdGlvbiBv
ZiB1X2luaXQoKQorICogIGRvZXMgbm90LCBob3dldmVyLCBndWFyYW50ZWUgdGhhdCBhbGwgSUNV
IGRhdGEgaXMgYWNjZXNzaWJsZS4KKyAqCisgKiAgTXVsdGlwbGUgY2FsbHMgdG8gdV9pbml0KCkg
Y2F1c2Ugbm8gaGFybSwgYXNpZGUgZnJvbSB0aGUgc21hbGwgYW1vdW50CisgKiAgb2YgdGltZSBy
ZXF1aXJlZC4KKyAqCisgKiAgSW4gb2xkIHZlcnNpb25zIG9mIElDVSwgdV9pbml0KCkgd2FzIHJl
cXVpcmVkIGluIG11bHRpLXRocmVhZGVkIGFwcGxpY2F0aW9ucworICogIHRvIGVuc3VyZSB0aGUg
dGhyZWFkIHNhZmV0eSBvZiBJQ1UuICB1X2luaXQoKSBpcyBubyBsb25nZXIgbmVlZGVkIGZvciB0
aGlzIHB1cnBvc2UuCisgKgorICogQHBhcmFtIHN0YXR1cyBBbiBJQ1UgVUVycm9yQ29kZSBwYXJh
bWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICogICAgQW4gRXJyb3Ig
d2lsbCBiZSByZXR1cm5lZCBpZiBzb21lIHJlcXVpcmVkIHBhcnQgb2YgSUNVIGRhdGEgY2FuIG5v
dAorICogICAgYmUgbG9hZGVkIG9yIGluaXRpYWxpemVkLgorICogICAgVGhlIGZ1bmN0aW9uIHJl
dHVybnMgaW1tZWRpYXRlbHkgaWYgdGhlIGlucHV0IGVycm9yIGNvZGUgaW5kaWNhdGVzIGEKKyAq
ICAgIGZhaWx1cmUsIGFzIHVzdWFsLgorICoKKyAqIEBzdGFibGUgSUNVIDIuNgorICovICAKK1Vf
U1RBQkxFIHZvaWQgVV9FWFBPUlQyIAordV9pbml0KFVFcnJvckNvZGUgKnN0YXR1cyk7CisKKyNp
Zm5kZWYgVV9ISURFX1NZU1RFTV9BUEkKKy8qKgorICogQ2xlYW4gdXAgdGhlIHN5c3RlbSByZXNv
dXJjZXMsIHN1Y2ggYXMgYWxsb2NhdGVkIG1lbW9yeSBvciBvcGVuIGZpbGVzLAorICogdXNlZCBp
biBhbGwgSUNVIGxpYnJhcmllcy4gVGhpcyB3aWxsIGZyZWUvZGVsZXRlIGFsbCBtZW1vcnkgb3du
ZWQgYnkgdGhlCisgKiBJQ1UgbGlicmFyaWVzLCBhbmQgcmV0dXJuIHRoZW0gdG8gdGhlaXIgb3Jp
Z2luYWwgbG9hZCBzdGF0ZS4gQWxsIG9wZW4gSUNVCisgKiBpdGVtcyAoY29sbGF0b3JzLCByZXNv
dXJjZSBidW5kbGVzLCBjb252ZXJ0ZXJzLCBldGMuKSBtdXN0IGJlIGNsb3NlZCBiZWZvcmUKKyAq
IGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgb3RoZXJ3aXNlIElDVSBtYXkgbm90IGZyZWUgaXRzIGFs
bG9jYXRlZCBtZW1vcnkKKyAqIChlLmcuIGNsb3NlIHlvdXIgY29udmVydGVycyBhbmQgcmVzb3Vy
Y2UgYnVuZGxlcyBiZWZvcmUgY2FsbGluZyB0aGlzCisgKiBmdW5jdGlvbikuIEdlbmVyYWxseSwg
dGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uY2UganVzdCBiZWZvcmUKKyAqIGFuIGFw
cGxpY2F0aW9uIGV4aXRzLiBGb3IgYXBwbGljYXRpb25zIHRoYXQgZHluYW1pY2FsbHkgbG9hZCBh
bmQgdW5sb2FkCisgKiB0aGUgSUNVIGxpYnJhcmllcyAocmVsYXRpdmVseSB1bmNvbW1vbiksIHVf
Y2xlYW51cCgpIHNob3VsZCBiZSBjYWxsZWQKKyAqIGp1c3QgYmVmb3JlIHRoZSBsaWJyYXJ5IHVu
bG9hZC4KKyAqIDxwPgorICogdV9jbGVhbnVwKCkgYWxzbyBjbGVhcnMgYW55IElDVSBoZWFwIGZ1
bmN0aW9ucywgbXV0ZXggZnVuY3Rpb25zIG9yCisgKiB0cmFjZSBmdW5jdGlvbnMgdGhhdCBtYXkg
aGF2ZSBiZWVuIHNldCBmb3IgdGhlIHByb2Nlc3MuICAKKyAqIFRoaXMgaGFzIHRoZSBlZmZlY3Qg
b2YgcmVzdG9yaW5nIElDVSB0byBpdHMgaW5pdGlhbCBjb25kaXRpb24sIGJlZm9yZQorICogYW55
IG9mIHRoZXNlIG92ZXJyaWRlIGZ1bmN0aW9ucyB3ZXJlIGluc3RhbGxlZC4gIFJlZmVyIHRvCisg
KiB1X3NldE1lbW9yeUZ1bmN0aW9ucygpLCB1X3NldE11dGV4RnVuY3Rpb25zIGFuZCAKKyAqIHV0
cmFjZV9zZXRGdW5jdGlvbnMoKS4gIElmIElDVSBpcyB0byBiZSByZWluaXRpYWxpemVkIGFmdGVy
IGFmdGVyCisgKiBjYWxsaW5nIHVfY2xlYW51cCgpLCB0aGVzZSBydW50aW1lIG92ZXJyaWRlIGZ1
bmN0aW9ucyB3aWxsIG5lZWQgdG8KKyAqIGJlIHNldCB1cCBhZ2FpbiBpZiB0aGV5IGFyZSBzdGls
bCByZXF1aXJlZC4KKyAqIDxwPgorICogdV9jbGVhbnVwKCkgaXMgbm90IHRocmVhZCBzYWZlLiAg
QWxsIG90aGVyIHRocmVhZHMgc2hvdWxkIHN0b3AgdXNpbmcgSUNVCisgKiBiZWZvcmUgY2FsbGlu
ZyB0aGlzIGZ1bmN0aW9uLgorICogPHA+CisgKiBBbnkgb3BlbiBJQ1UgaXRlbXMgd2lsbCBiZSBs
ZWZ0IGluIGFuIHVuZGVmaW5lZCBzdGF0ZSBieSB1X2NsZWFudXAoKSwKKyAqIGFuZCBhbnkgc3Vi
c2VxdWVudCBhdHRlbXB0IHRvIHVzZSBzdWNoIGFuIGl0ZW0gd2lsbCBnaXZlIHVucHJlZGljdGFi
bGUKKyAqIHJlc3VsdHMuCisgKiA8cD4KKyAqIEFmdGVyIGNhbGxpbmcgdV9jbGVhbnVwKCksIGFu
IGFwcGxpY2F0aW9uIG1heSBjb250aW51ZSB0byB1c2UgSUNVIGJ5CisgKiBjYWxsaW5nIHVfaW5p
dCgpLiAgQW4gYXBwbGljYXRpb24gbXVzdCBpbnZva2UgdV9pbml0KCkgZmlyc3QgZnJvbSBvbmUg
c2luZ2xlCisgKiB0aHJlYWQgYmVmb3JlIGFsbG93aW5nIG90aGVyIHRocmVhZHMgY2FsbCB1X2lu
aXQoKS4gIEFsbCB0aHJlYWRzIGV4aXN0aW5nCisgKiBhdCB0aGUgdGltZSBvZiB0aGUgZmlyc3Qg
dGhyZWFkJ3MgY2FsbCB0byB1X2luaXQoKSBtdXN0IGFsc28gY2FsbAorICogdV9pbml0KCkgdGhl
bXNlbHZlcyBiZWZvcmUgY29udGludWluZyB3aXRoIG90aGVyIElDVSBvcGVyYXRpb25zLiAgCisg
KiA8cD4KKyAqIFRoZSB1c2Ugb2YgdV9jbGVhbnVwKCkganVzdCBiZWZvcmUgYW4gYXBwbGljYXRp
b24gdGVybWluYXRlcyBpcyBvcHRpb25hbCwKKyAqIGJ1dCBpdCBzaG91bGQgYmUgY2FsbGVkIG9u
bHkgb25jZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4gVGhlIHByaW1hcnkKKyAqIGJlbmVmaXQg
aXMgdG8gZWxpbWluYXRlIHJlcG9ydHMgb2YgbWVtb3J5IG9yIHJlc291cmNlIGxlYWtzIG9yaWdp
bmF0aW5nCisgKiBpbiBJQ1UgY29kZSBmcm9tIHRoZSByZXN1bHRzIGdlbmVyYXRlZCBieSBoZWFw
IGFuYWx5c2lzIHRvb2xzLgorICogPHA+CisgKiA8c3Ryb25nPlVzZSB0aGlzIGZ1bmN0aW9uIHdp
dGggZ3JlYXQgY2FyZSE8L3N0cm9uZz4KKyAqIDwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqIEBzeXN0ZW0KKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIgCit1X2NsZWFudXAodm9p
ZCk7CisKKworLyoqCisgICogIFBvaW50ZXIgdHlwZSBmb3IgYSB1c2VyIHN1cHBsaWVkIG1lbW9y
eSBhbGxvY2F0aW9uIGZ1bmN0aW9uLgorICAqICBAcGFyYW0gY29udGV4dCB1c2VyIHN1cHBsaWVk
IHZhbHVlLCBvYnRhaW5lZCBmcm9tIGZyb20gdV9zZXRNZW1vcnlGdW5jdGlvbnMoKS4KKyAgKiAg
QHBhcmFtIHNpemUgICAgVGhlIG51bWJlciBvZiBieXRlcyB0byBiZSBhbGxvY2F0ZWQKKyAgKiAg
QHJldHVybiAgICAgICAgUG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIG1lbW9yeSwgb3Ig
TlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQuCisgICogIEBzdGFibGUgSUNVIDIuOAorICAq
ICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQgKlVfQ0FMTENPTlYgVU1lbUFsbG9jRm4oY29u
c3Qgdm9pZCAqY29udGV4dCwgc2l6ZV90IHNpemUpOworLyoqCisgICogIFBvaW50ZXIgdHlwZSBm
b3IgYSB1c2VyIHN1cHBsaWVkIG1lbW9yeSByZS1hbGxvY2F0aW9uIGZ1bmN0aW9uLgorICAqICBA
cGFyYW0gY29udGV4dCB1c2VyIHN1cHBsaWVkIHZhbHVlLCBvYnRhaW5lZCBmcm9tIGZyb20gdV9z
ZXRNZW1vcnlGdW5jdGlvbnMoKS4KKyAgKiAgQHBhcmFtIHNpemUgICAgVGhlIG51bWJlciBvZiBi
eXRlcyB0byBiZSBhbGxvY2F0ZWQKKyAgKiAgQHJldHVybiAgICAgICAgUG9pbnRlciB0byB0aGUg
bmV3bHkgYWxsb2NhdGVkIG1lbW9yeSwgb3IgTlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQu
CisgICogIEBzdGFibGUgSUNVIDIuOAorICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQg
KlVfQ0FMTENPTlYgVU1lbVJlYWxsb2NGbihjb25zdCB2b2lkICpjb250ZXh0LCB2b2lkICptZW0s
IHNpemVfdCBzaXplKTsKKy8qKgorICAqICBQb2ludGVyIHR5cGUgZm9yIGEgdXNlciBzdXBwbGll
ZCBtZW1vcnkgZnJlZSAgZnVuY3Rpb24uICBCZWhhdmlvciBzaG91bGQgYmUKKyAgKiAgc2ltaWxh
ciB0aGUgc3RhbmRhcmQgQyBsaWJyYXJ5IGZyZWUoKS4KKyAgKiAgQHBhcmFtIGNvbnRleHQgdXNl
ciBzdXBwbGllZCB2YWx1ZSwgb2J0YWluZWQgZnJvbSBmcm9tIHVfc2V0TWVtb3J5RnVuY3Rpb25z
KCkuCisgICogIEBwYXJhbSBtZW0gICAgIFBvaW50ZXIgdG8gdGhlIG1lbW9yeSBibG9jayB0byBi
ZSByZXNpemVkCisgICogIEBwYXJhbSBzaXplICAgIFRoZSBuZXcgc2l6ZSBmb3IgdGhlIGJsb2Nr
CisgICogIEByZXR1cm4gICAgICAgIFBvaW50ZXIgdG8gdGhlIHJlc2l6ZWQgbWVtb3J5IGJsb2Nr
LCBvciBOVUxMIGlmIHRoZSByZXNpemluZyBmYWlsZWQuCisgICogIEBzdGFibGUgSUNVIDIuOAor
ICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQgIFVfQ0FMTENPTlYgVU1lbUZyZWVGbiAo
Y29uc3Qgdm9pZCAqY29udGV4dCwgdm9pZCAqbWVtKTsKKworLyoqCisgKiAgU2V0IHRoZSBmdW5j
dGlvbnMgdGhhdCBJQ1Ugd2lsbCB1c2UgZm9yIG1lbW9yeSBhbGxvY2F0aW9uLgorICogIFVzZSBv
ZiB0aGlzIGZ1bmN0aW9uIGlzIG9wdGlvbmFsOyBieSBkZWZhdWx0ICh3aXRob3V0IHRoaXMgZnVu
Y3Rpb24pLCBJQ1Ugd2lsbAorICogIHVzZSB0aGUgc3RhbmRhcmQgQyBsaWJyYXJ5IG1hbGxvYygp
IGFuZCBmcmVlKCkgZnVuY3Rpb25zLgorICogIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgdXNl
ZCB3aGVuIElDVSBpcyBpbiBhbiBpbml0aWFsLCB1bnVzZWQgc3RhdGUsIGJlZm9yZQorICogIHVf
aW5pdCgpIGhhcyBiZWVuIGNhbGxlZC4KKyAqICBAcGFyYW0gY29udGV4dCBUaGlzIHBvaW50ZXIg
dmFsdWUgd2lsbCBiZSBzYXZlZCwgYW5kIHRoZW4gKGxhdGVyKSBwYXNzZWQgYXMKKyAqICAgICAg
ICAgICAgICAgICBhIHBhcmFtZXRlciB0byB0aGUgbWVtb3J5IGZ1bmN0aW9ucyBlYWNoIHRpbWUg
dGhleQorICogICAgICAgICAgICAgICAgIGFyZSBjYWxsZWQuCisgKiAgQHBhcmFtIGEgICAgICAg
UG9pbnRlciB0byBhIHVzZXItc3VwcGxpZWQgbWFsbG9jIGZ1bmN0aW9uLgorICogIEBwYXJhbSBy
ICAgICAgIFBvaW50ZXIgdG8gYSB1c2VyLXN1cHBsaWVkIHJlYWxsb2MgZnVuY3Rpb24uCisgKiAg
QHBhcmFtIGYgICAgICAgUG9pbnRlciB0byBhIHVzZXItc3VwcGxpZWQgZnJlZSBmdW5jdGlvbi4K
KyAqICBAcGFyYW0gc3RhdHVzICBSZWNlaXZlcyBlcnJvciB2YWx1ZXMuCisgKiAgQHN0YWJsZSBJ
Q1UgMi44CisgKiAgQHN5c3RlbQorICovICAKK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyIAordV9z
ZXRNZW1vcnlGdW5jdGlvbnMoY29uc3Qgdm9pZCAqY29udGV4dCwgVU1lbUFsbG9jRm4gKmEsIFVN
ZW1SZWFsbG9jRm4gKnIsIFVNZW1GcmVlRm4gKmYsIAorICAgICAgICAgICAgICAgICAgICBVRXJy
b3JDb2RlICpzdGF0dXMpOworCisKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisvKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisgKgorICogRGVwcmVjYXRlZCBGdW5jdGlvbnMKKyAqCisg
KiAgICBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBmb3IgdXNlciBzdXBwbGllZCBtdXRleGVzIGFy
ZSBubyBsb25nZXIgc3VwcG9ydGVkLgorICogICAgQW55IGF0dGVtcHQgdG8gdXNlIHRoZW0gd2ls
bCByZXR1cm4gYSBVX1VOU1VQUE9SVEVEX0VSUk9SLgorICoKKyAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqLworCisvKioKKyAgKiBBbiBvcGFxdWUgcG9pbnRlciB0eXBlIHRoYXQgcmVwcmVzZW50
cyBhbiBJQ1UgbXV0ZXguCisgICogRm9yIHVzZXItaW1wbGVtZW50ZWQgbXV0ZXhlcywgdGhlIHZh
bHVlIHdpbGwgdHlwaWNhbGx5IHBvaW50IHRvIGEKKyAgKiAgc3RydWN0IG9yIG9iamVjdCB0aGF0
IGltcGxlbWVudHMgdGhlIG11dGV4LgorICAqIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyB0eXBl
IGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICogQHN5c3RlbQorICAqLwordHlwZWRlZiB2b2lk
ICpVTVRYOworCisvKioKKyAgKiAgRnVuY3Rpb24gUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3Vw
cGxpZWQgbXV0ZXggaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uCisgICogIFRoZSB1c2VyLXN1cHBs
aWVkIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGJ5IElDVSB3aGVuZXZlciBJQ1UgbmVlZHMgdG8g
Y3JlYXRlIGEKKyAgKiAgbmV3IG11dGV4LiAgVGhlIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uIHNo
b3VsZCBjcmVhdGUgYSBtdXRleCwgYW5kIHN0b3JlIGEgcG9pbnRlcgorICAqICB0byBzb21ldGhp
bmcgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBtdXRleCBpbnRvIHRoZSBVTVRYIHRoYXQg
aXMgc3VwcGxpZWQKKyAgKiAgYXMgYSBwYXJhbXRlci4KKyAgKiAgQHBhcmFtIGNvbnRleHQgdXNl
ciBzdXBwbGllZCB2YWx1ZSwgb2J0YWluZWQgZnJvbSBmcm9tIHVfc2V0TXV0ZXhGdW5jdGlvbnMo
KS4KKyAgKiAgQHBhcmFtIG11dGV4ICAgUmVjZWl2ZXMgYSBwb2ludGVyIHRoYXQgaWRlbnRpZmll
cyB0aGUgbmV3IG11dGV4LgorICAqICAgICAgICAgICAgICAgICBUaGUgbXV0ZXggaW5pdCBmdW5j
dGlvbiBtdXN0IHNldCB0aGUgVU1UWCB0byBhIG5vbi1udWxsIHZhbHVlLiAgIAorICAqICAgICAg
ICAgICAgICAgICBTdWJzZXF1ZW50IGNhbGxzIGJ5IElDVSB0byBsb2NrLCB1bmxvY2ssIG9yIGRl
c3Ryb3kgYSBtdXRleCB3aWxsIAorICAqICAgICAgICAgICAgICAgICBpZGVudGlmeSB0aGUgbXV0
ZXggYnkgdGhlIFVNVFggdmFsdWUuCisgICogIEBwYXJhbSBzdGF0dXMgIEVycm9yIHN0YXR1cy4g
IFJlcG9ydCBlcnJvcnMgYmFjayB0byBJQ1UgYnkgc2V0dGluZyB0aGlzIHZhcmlhYmxlCisgICog
ICAgICAgICAgICAgICAgIHdpdGggYW4gZXJyb3IgY29kZS4KKyAgKiAgQGRlcHJlY2F0ZWQgSUNV
IDUyLiBUaGlzIGZ1bmN0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICogIEBzeXN0ZW0K
KyAgKi8KK3R5cGVkZWYgdm9pZCBVX0NBTExDT05WIFVNdHhJbml0Rm4gKGNvbnN0IHZvaWQgKmNv
bnRleHQsIFVNVFggICptdXRleCwgVUVycm9yQ29kZSogc3RhdHVzKTsKKworCisvKioKKyAgKiAg
RnVuY3Rpb24gUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3VwcGxpZWQgbXV0ZXggZnVuY3Rpb25z
LgorICAqICBPbmUgb2YgdGhlICB1c2VyLXN1cHBsaWVkIGZ1bmN0aW9ucyB3aXRoIHRoaXMgc2ln
bmF0dXJlIHdpbGwgYmUgY2FsbGVkIGJ5IElDVQorICAqICB3aGVuZXZlciBJQ1UgbmVlZHMgdG8g
bG9jaywgdW5sb2NrLCBvciBkZXN0cm95IGEgbXV0ZXguCisgICogIEBwYXJhbSBjb250ZXh0IHVz
ZXIgc3VwcGxpZWQgdmFsdWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3NldE11dGV4RnVuY3Rpb25z
KCkuCisgICogIEBwYXJhbSBtdXRleCAgIHNwZWNpZnkgdGhlIG11dGV4IG9uIHdoaWNoIHRvIG9w
ZXJhdGUuCisgICogIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyBmdW5jdGlvbiBpcyBubyBsb25n
ZXIgc3VwcG9ydGVkLgorICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQgVV9DQUxMQ09O
ViBVTXR4Rm4gICAoY29uc3Qgdm9pZCAqY29udGV4dCwgVU1UWCAgKm11dGV4KTsKKworCisvKioK
KyAgKiAgU2V0IHRoZSBmdW5jdGlvbnMgdGhhdCBJQ1Ugd2lsbCB1c2UgZm9yIG11dGV4IG9wZXJh
dGlvbnMKKyAgKiAgVXNlIG9mIHRoaXMgZnVuY3Rpb24gaXMgb3B0aW9uYWw7IGJ5IGRlZmF1bHQg
KHdpdGhvdXQgdGhpcyBmdW5jdGlvbiksIElDVSB3aWxsCisgICogIGRpcmVjdGx5IGFjY2VzcyBz
eXN0ZW0gZnVuY3Rpb25zIGZvciBtdXRleCBvcGVyYXRpb25zCisgICogIFRoaXMgZnVuY3Rpb24g
Y2FuIG9ubHkgYmUgdXNlZCB3aGVuIElDVSBpcyBpbiBhbiBpbml0aWFsLCB1bnVzZWQgc3RhdGUs
IGJlZm9yZQorICAqICB1X2luaXQoKSBoYXMgYmVlbiBjYWxsZWQuCisgICogIEBwYXJhbSBjb250
ZXh0IFRoaXMgcG9pbnRlciB2YWx1ZSB3aWxsIGJlIHNhdmVkLCBhbmQgdGhlbiAobGF0ZXIpIHBh
c3NlZCBhcworICAqICAgICAgICAgICAgICAgICBhIHBhcmFtZXRlciB0byB0aGUgdXNlci1zdXBw
bGllZCBtdXRleCBmdW5jdGlvbnMgZWFjaCB0aW1lIHRoZXkKKyAgKiAgICAgICAgICAgICAgICAg
YXJlIGNhbGxlZC4gCisgICogIEBwYXJhbSBpbml0ICAgIFBvaW50ZXIgdG8gYSBtdXRleCBpbml0
aWFsaXphdGlvbiBmdW5jdGlvbi4gIE11c3QgYmUgbm9uLW51bGwuCisgICogIEBwYXJhbSBkZXN0
cm95IFBvaW50ZXIgdG8gdGhlIG11dGV4IGRlc3Ryb3kgZnVuY3Rpb24uICBNdXN0IGJlIG5vbi1u
dWxsLgorICAqICBAcGFyYW0gbG9jayAgICBwb2ludGVyIHRvIHRoZSBtdXRleCBsb2NrIGZ1bmN0
aW9uLiAgTXVzdCBiZSBub24tbnVsbC4KKyAgKiAgQHBhcmFtIHVubG9jayAgUG9pbnRlciB0byB0
aGUgbXV0ZXggdW5sb2NrIGZ1bmN0aW9uLiAgTXVzdCBiZSBub24tbnVsbC4KKyAgKiAgQHBhcmFt
IHN0YXR1cyAgUmVjZWl2ZXMgZXJyb3IgdmFsdWVzLgorICAqICBAZGVwcmVjYXRlZCBJQ1UgNTIu
IFRoaXMgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KKyAgKiAgQHN5c3RlbQorICAq
LyAgCitVX0RFUFJFQ0FURUQgdm9pZCBVX0VYUE9SVDIgCit1X3NldE11dGV4RnVuY3Rpb25zKGNv
bnN0IHZvaWQgKmNvbnRleHQsIFVNdHhJbml0Rm4gKmluaXQsIFVNdHhGbiAqZGVzdHJveSwgVU10
eEZuICpsb2NrLCBVTXR4Rm4gKnVubG9jaywKKyAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29k
ZSAqc3RhdHVzKTsKKworCisvKioKKyAgKiAgUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3VwcGxp
ZWQgYXRvbWljIGluY3JlbWVudCBvciBkZWNyZW1lbnQgZnVuY3Rpb24uCisgICogIEBwYXJhbSBj
b250ZXh0IHVzZXIgc3VwcGxpZWQgdmFsdWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3NldEF0b21p
Y0luY0RlY0Z1bmN0aW9ucygpLgorICAqICBAcGFyYW0gcCAgIFBvaW50ZXIgdG8gYSAzMiBiaXQg
aW50IHRvIGJlIGluY3JlbWVudGVkIG9yIGRlY3JlbWVudGVkCisgICogIEByZXR1cm4gICAgVGhl
IHZhbHVlIG9mIHRoZSB2YXJpYWJsZSBhZnRlciB0aGUgaW5jIG9yIGRlYyBvcGVyYXRpb24uCisg
ICogIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyBmdW5jdGlvbiBpcyBubyBsb25nZXIgc3VwcG9y
dGVkLgorICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OViBVTXR4
QXRvbWljRm4oY29uc3Qgdm9pZCAqY29udGV4dCwgaW50MzJfdCAqcCk7CisKKy8qKgorICogIFNl
dCB0aGUgZnVuY3Rpb25zIHRoYXQgSUNVIHdpbGwgdXNlIGZvciBhdG9taWMgaW5jcmVtZW50IGFu
ZCBkZWNyZW1lbnQgb2YgaW50MzJfdCB2YWx1ZXMuCisgKiAgVXNlIG9mIHRoaXMgZnVuY3Rpb24g
aXMgb3B0aW9uYWw7IGJ5IGRlZmF1bHQgKHdpdGhvdXQgdGhpcyBmdW5jdGlvbiksIElDVSB3aWxs
CisgKiAgdXNlIGl0cyBvd24gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb2YgYXRvbWljIGluY3Jl
bWVudC9kZWNyZW1lbnQuCisgKiAgVGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSB1c2VkIHdoZW4g
SUNVIGlzIGluIGFuIGluaXRpYWwsIHVudXNlZCBzdGF0ZSwgYmVmb3JlCisgKiAgdV9pbml0KCkg
aGFzIGJlZW4gY2FsbGVkLgorICogIEBwYXJhbSBjb250ZXh0IFRoaXMgcG9pbnRlciB2YWx1ZSB3
aWxsIGJlIHNhdmVkLCBhbmQgdGhlbiAobGF0ZXIpIHBhc3NlZCBhcworICogICAgICAgICAgICAg
ICAgIGEgcGFyYW1ldGVyIHRvIHRoZSBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBmdW5jdGlvbnMg
ZWFjaCB0aW1lIHRoZXkKKyAqICAgICAgICAgICAgICAgICBhcmUgY2FsbGVkLiAgVGhpcyBmdW5j
dGlvbiBjYW4gb25seSBiZSBjYWxsZWQgCisgKiAgQHBhcmFtIGluYyAgICAgUG9pbnRlciB0byBh
IGZ1bmN0aW9uIHRvIGRvIGFuIGF0b21pYyBpbmNyZW1lbnQgb3BlcmF0aW9uLiAgTXVzdCBiZSBu
b24tbnVsbC4KKyAqICBAcGFyYW0gZGVjICAgICBQb2ludGVyIHRvIGEgZnVuY3Rpb24gdG8gZG8g
YW4gYXRvbWljIGRlY3JlbWVudCBvcGVyYXRpb24uICBNdXN0IGJlIG5vbi1udWxsLgorICogIEBw
YXJhbSBzdGF0dXMgIFJlY2VpdmVzIGVycm9yIHZhbHVlcy4KKyAqICBAZGVwcmVjYXRlZCBJQ1Ug
NTIuIFRoaXMgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KKyAqICBAc3lzdGVtCisg
Ki8gIAorVV9ERVBSRUNBVEVEIHZvaWQgVV9FWFBPUlQyIAordV9zZXRBdG9taWNJbmNEZWNGdW5j
dGlvbnMoY29uc3Qgdm9pZCAqY29udGV4dCwgVU10eEF0b21pY0ZuICppbmMsIFVNdHhBdG9taWNG
biAqZGVjLAorICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOworCisjZW5k
aWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLworI2VuZGlmICAvKiBVX0hJREVfU1lTVEVN
X0FQSSAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRh
dGEuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWU0NjYz
MGQ1Mzk4ZDgyNzM4ZDFkNjFmZmM0ZDJjOTE0ZThjNjhiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi9pY3UvdW5pY29kZS91ZGF0YS5oCkBAIC0wLDAgKzEsNDMwIEBACisvKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQsIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFt
ZTogIHVkYXRhLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDgg
KG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0
MjUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBfX1VE
QVRBX0hfXworI2RlZmluZSBfX1VEQVRBX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMu
aCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCitVX0NERUNMX0JFR0lOCisK
Ky8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogRGF0YSBsb2FkaW5nIGludGVyZmFjZQor
ICoKKyAqIDxoMj5JbmZvcm1hdGlvbiBhYm91dCBkYXRhIGxvYWRpbmcgaW50ZXJmYWNlPC9oMj4K
KyAqCisgKiBUaGlzIEFQSSBpcyB1c2VkIHRvIGZpbmQgYW5kIGVmZmljaWVudGx5IGxvYWQgZGF0
YSBmb3IgSUNVIGFuZCBhcHBsaWNhdGlvbnMKKyAqIHVzaW5nIElDVS4gSXQgcHJvdmlkZXMgYW4g
YWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgc3BlY2lmaWVzIGEgZGF0YSB0eXBlIGFuZAorICogbmFt
ZSB0byBmaW5kIGFuZCBsb2FkIHRoZSBkYXRhLiBOb3JtYWxseSB0aGlzIEFQSSBpcyB1c2VkIGJ5
IG90aGVyIElDVSBBUElzCisgKiB0byBsb2FkIHJlcXVpcmVkIGRhdGEgb3V0IG9mIHRoZSBJQ1Ug
ZGF0YSBsaWJyYXJ5LCBidXQgaXQgY2FuIGJlIHVzZWQgdG8KKyAqIGxvYWQgZGF0YSBvdXQgb2Yg
b3RoZXIgcGxhY2VzLgorICoKKyAqIFNlZSB0aGUgVXNlciBHdWlkZSBEYXRhIE1hbmFnZW1lbnQg
Y2hhcHRlci4KKyAqLworIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisvKioKKyAqIENo
YXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAor
ICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SICctJwor
CisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVl
IG5hbWVzIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJB
VE9SX1NUUklORyAiLSIKKworLyoqCisgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYXJ0
cyBvZiBlbnRyeSBuYW1lcworICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RS
RUVfRU5UUllfU0VQX0NIQVIgJy8nCisKKy8qKgorICogU3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUg
cGFydHMgb2YgZW50cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUg
VV9UUkVFX0VOVFJZX1NFUF9TVFJJTkcgIi8iCisKKy8qKgorICogQWxpYXMgZm9yIHN0YW5kYXJk
IElDVSBkYXRhIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX0lDVURBVEFf
QUxJQVMgIklDVURBVEEiCisKKyNlbmRpZiAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKy8q
KgorICogVURhdGFJbmZvIGNvbnRhaW5zIHRoZSBwcm9wZXJ0aWVzIGFib3V0IHRoZSByZXF1ZXN0
ZWQgZGF0YS4KKyAqIFRoaXMgaXMgbWV0YSBkYXRhLgorICoKKyAqIDxwPlRoaXMgc3RydWN0dXJl
IG1heSBncm93IGluIHRoZSBmdXR1cmUsIGluZGljYXRlZCBieSB0aGUKKyAqIDxjb2RlPnNpemU8
L2NvZGU+IGZpZWxkLjwvcD4KKyAqCisgKiA8cD5JQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgt
YWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogVGhlIFVEYXRhSW5mbyBzdHJ1
Y3QgYmVnaW5zIDQgYnl0ZXMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIHRoZSBkYXRhIGl0ZW0sCisgKiBz
byBpdCBpcyA0LWFsaWduZWQuCisgKgorICogPHA+VGhlIHBsYXRmb3JtIGRhdGEgcHJvcGVydHkg
ZmllbGRzIGhlbHAgZGV0ZXJtaW5lIGlmIGEgZGF0YQorICogZmlsZSBjYW4gYmUgZWZmaWNpZW50
bHkgdXNlZCBvbiBhIGdpdmVuIG1hY2hpbmUuCisgKiBUaGUgcGFydGljdWxhciBmaWVsZHMgYXJl
IG9mIGltcG9ydGFuY2Ugb25seSBpZiB0aGUgZGF0YQorICogaXMgYWZmZWN0ZWQgYnkgdGhlIHBy
b3BlcnRpZXMgLSBpZiB0aGVyZSBpcyBpbnRlZ2VyIGRhdGEKKyAqIHdpdGggd29yZCBzaXplcyA+
IDEgYnl0ZSwgY2hhciogdGV4dCwgb3IgVUNoYXIqIHRleHQuPC9wPgorICoKKyAqIDxwPlRoZSBp
bXBsZW1lbnRhdGlvbiBmb3IgdGhlIDxjb2RlPnVkYXRhX29wZW5bQ2hvaWNlXSgpPC9jb2RlPgor
ICogZnVuY3Rpb25zIG1heSByZWplY3QgZGF0YSBiYXNlZCBvbiB0aGUgdmFsdWUgaW4gPGNvZGU+
aXNCaWdFbmRpYW48L2NvZGU+LgorICogTm8gb3RoZXIgZmllbGQgaXMgdXNlZCBieSB0aGUgPGNv
ZGU+dWRhdGE8L2NvZGU+IEFQSSBpbXBsZW1lbnRhdGlvbi48L3A+CisgKgorICogPHA+VGhlIDxj
b2RlPmRhdGFGb3JtYXQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIGlkZW50aWZ5CisgKiB0aGUga2lu
ZCBvZiBkYXRhLCBlLmcuIGEgY29udmVydGVyIHRhYmxlLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNv
ZGU+Zm9ybWF0VmVyc2lvbjwvY29kZT4gZmllbGQgc2hvdWxkIGJlIHVzZWQgdG8KKyAqIG1ha2Ug
c3VyZSB0aGF0IHRoZSBmb3JtYXQgY2FuIGJlIGludGVycHJldGVkLgorICogSXQgbWF5IGJlIGEg
Z29vZCBpZGVhIHRvIGNoZWNrIG9ubHkgZm9yIHRoZSBvbmUgb3IgdHdvIGhpZ2hlc3QKKyAqIG9m
IHRoZSB2ZXJzaW9uIGVsZW1lbnRzIHRvIGFsbG93IHRoZSBkYXRhIG1lbW9yeSB0bworICogZ2V0
IG1vcmUgb3Igc29tZXdoYXQgcmVhcnJhbmdlZCBjb250ZW50cywgZm9yIGFzIGxvbmcKKyAqIGFz
IHRoZSB1c2luZyBjb2RlIGNhbiBzdGlsbCBpbnRlcnByZXQgdGhlIG9sZGVyIGNvbnRlbnRzLjwv
cD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+ZGF0YVZlcnNpb248L2NvZGU+IGZpZWxkIGlzIGludGVu
ZGVkIHRvIGJlIGEKKyAqIGNvbW1vbiBwbGFjZSB0byBzdG9yZSB0aGUgc291cmNlIHZlcnNpb24g
b2YgdGhlIGRhdGE7CisgKiBmb3IgZGF0YSBmcm9tIHRoZSBVbmljb2RlIGNoYXJhY3RlciBkYXRh
YmFzZSwgdGhpcyBjb3VsZAorICogcmVmbGVjdCB0aGUgVW5pY29kZSB2ZXJzaW9uLjwvcD4KKyAq
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIC8qKiBzaXpl
b2YoVURhdGFJbmZvKQorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50MTZfdCBz
aXplOworCisgICAgLyoqIHVudXNlZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIu
MCovCisgICAgdWludDE2X3QgcmVzZXJ2ZWRXb3JkOworCisgICAgLyogcGxhdGZvcm0gZGF0YSBw
cm9wZXJ0aWVzICovCisgICAgLyoqIDAgZm9yIGxpdHRsZS1lbmRpYW4gbWFjaGluZSwgMSBmb3Ig
YmlnLWVuZGlhbgorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50OF90IGlzQmln
RW5kaWFuOworCisgICAgLyoqIHNlZSBVX0NIQVJTRVRfRkFNSUxZIHZhbHVlcyBpbiB1dHlwZXMu
aCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGNoYXJzZXRGYW1pbHk7
CisKKyAgICAvKiogc2l6ZW9mKFVDaGFyKSwgb25lIG9mIHsgMSwgMiwgNCB9IAorICAgICAqICBA
c3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3Qgc2l6ZW9mVUNoYXI7CisKKyAgICAvKiogdW51
c2VkLCBzZXQgdG8gMCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHJl
c2VydmVkQnl0ZTsKKworICAgIC8qKiBkYXRhIGZvcm1hdCBpZGVudGlmaWVyIAorICAgICAqICBA
c3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YUZvcm1hdFs0XTsKKworICAgIC8qKiB2
ZXJzaW9uczogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAq
ICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZm9ybWF0VmVyc2lvbls0XTsKKworICAg
IC8qKiB2ZXJzaW9uczogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAor
ICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YVZlcnNpb25bNF07Cit9
IFVEYXRhSW5mbzsKKworLyogQVBJIGZvciByZWFkaW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKioKKyAqIEZvcndhcmQg
ZGVjbGFyYXRpb24gb2YgdGhlIGRhdGEgbWVtb3J5IHR5cGUuCisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqLwordHlwZWRlZiBzdHJ1Y3QgVURhdGFNZW1vcnkgVURhdGFNZW1vcnk7CisKKy8qKgorICog
Q2FsbGJhY2sgZnVuY3Rpb24gZm9yIHVkYXRhX29wZW5DaG9pY2UoKS4KKyAqIEBwYXJhbSBjb250
ZXh0IHBhcmFtZXRlciBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+
LgorICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIGRhdGEgYXMgcGFzc2VkIGludG8gPGNv
ZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPi4KKyAqICAgICAgICAgICAgIEl0IG1heSBiZSA8
Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGFz
IHBhc3NlZCBpbnRvIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiBAcGFyYW0g
cEluZm8gQSBwb2ludGVyIHRvIHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+IHN0cnVjdHVyZQor
ICogICAgICAgICAgICAgIG9mIGRhdGEgdGhhdCBoYXMgYmVlbiBsb2FkZWQgYW5kIHdpbGwgYmUg
cmV0dXJuZWQKKyAqICAgICAgICAgICAgICBieSA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2Nv
ZGU+IGlmIHRoaXMgZnVuY3Rpb24KKyAqICAgICAgICAgICAgICByZXR1cm5zIDxjb2RlPlRSVUU8
L2NvZGU+LgorICogQHJldHVybiBUUlVFIGlmIHRoZSBjdXJyZW50IGRhdGEgbWVtb3J5IGlzIGFj
Y2VwdGFibGUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIFVCb29sIFVfQ0FMTENP
TlYKK1VEYXRhTWVtb3J5SXNBY2NlcHRhYmxlKHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgVURhdGFJbmZvICpwSW5mbyk7CisKKworLyoqCisgKiBDb252
ZW5pZW5jZSBmdW5jdGlvbi4KKyAqIFRoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgYXMgPGNv
ZGU+dWRhdGFfb3BlbkNob2ljZTwvY29kZT4KKyAqIGV4Y2VwdCB0aGF0IGFueSBkYXRhIHRoYXQg
bWF0Y2hlcyB0aGUgdHlwZSBhbmQgbmFtZQorICogaXMgYXNzdW1lZCB0byBiZSBhY2NlcHRhYmxl
LgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFz
ZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUg
ZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRh
dGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBk
YXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBi
dW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVy
c2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUg
PGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0
IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIEFu
IElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+TlVMTDwvY29k
ZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAoaGFuZGxlKSB0byBhIGRhdGEgbWVtb3J5IG9iamVj
dCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAqICAgICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzLiBD
YWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPgorICogICAgICAgICB0byBnZXQgYSBw
b2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4KKyAqCisgKiBAc2VlIHVkYXRhX29wZW5DaG9pY2UK
KyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JU
MgordWRhdGFfb3Blbihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBj
aGFyICpuYW1lLAorICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisg
KiBEYXRhIGxvYWRpbmcgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZmlu
ZCBhbmQgbG9hZCBlZmZpY2llbnRseSBkYXRhIGZvcgorICogSUNVIGFuZCBhcHBsaWNhdGlvbnMg
dXNpbmcgSUNVLgorICogSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgYWxs
b3dzIHRvIHNwZWNpZnkgYSBkYXRhCisgKiB0eXBlIGFuZCBuYW1lIHRvIGZpbmQgYW5kIGxvYWQg
dGhlIGRhdGEuCisgKgorICogPHA+VGhlIGltcGxlbWVudGF0aW9uIGRlcGVuZHMgb24gcGxhdGZv
cm0gcHJvcGVydGllcyBhbmQgdXNlciBwcmVmZXJlbmNlcworICogYW5kIG1heSBpbnZvbHZlIGxv
YWRpbmcgc2hhcmVkIGxpYnJhcmllcyAoRExMcyksIG1hcHBpbmcKKyAqIGZpbGVzIGludG8gbWVt
b3J5LCBvciBmb3BlbigpL2ZyZWFkKCkgZmlsZXMuCisgKiBJdCBtYXkgYWxzbyBpbnZvbHZlIHVz
aW5nIHN0YXRpYyBtZW1vcnkgb3IgZGF0YWJhc2UgcXVlcmllcyBldGMuCisgKiBTZXZlcmFsIG9y
IGFsbCBkYXRhIGl0ZW1zIG1heSBiZSBjb21iaW5lZCBpbnRvIG9uZSBlbnRpdHkKKyAqIChETEws
IG1lbW9yeS1tYXBwYWJsZSBmaWxlKS48L3A+CisgKgorICogPHA+VGhlIGRhdGEgaXMgYWx3YXlz
IHByZWNlZGVkIGJ5IGEgaGVhZGVyIHRoYXQgaW5jbHVkZXMKKyAqIGEgPGNvZGU+VURhdGFJbmZv
PC9jb2RlPiBzdHJ1Y3R1cmUuCisgKiBUaGUgY2FsbGVyJ3MgPGNvZGU+aXNBY2NlcHRhYmxlKCk8
L2NvZGU+IGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBtYWtlCisgKiBzdXJlIHRoYXQgdGhlIGRhdGEg
aXMgdXNlZnVsLiBJdCBtYXkgYmUgY2FsbGVkIHNldmVyYWwgdGltZXMgaWYgaXQKKyAqIHJlamVj
dHMgdGhlIGRhdGEgYW5kIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgbG9jYXRpb24gd2l0aCBkYXRh
CisgKiBtYXRjaGluZyB0aGUgdHlwZSBhbmQgbmFtZS48L3A+CisgKgorICogPHA+SWYgPGNvZGU+
cGF0aD09TlVMTDwvY29kZT4sIHRoZW4gSUNVIGRhdGEgaXMgbG9hZGVkLgorICogT3RoZXJ3aXNl
LCBpdCBpcyBzZXBhcmF0ZWQgaW50byBhIGJhc2VuYW1lIGFuZCBhIGJhc2VuYW1lLWxlc3MgZGly
ZWN0b3J5IHN0cmluZy4KKyAqIFRoZSBiYXNlbmFtZSBpcyB1c2VkIGFzIHRoZSBkYXRhIHBhY2th
Z2UgbmFtZSwgYW5kIHRoZSBkaXJlY3RvcnkgaXMKKyAqIGxvZ2ljYWxseSBwcmVwZW5kZWQgdG8g
dGhlIElDVSBkYXRhIGRpcmVjdG9yeSBzdHJpbmcuPC9wPgorICoKKyAqIDxwPkZvciBkZXRhaWxz
IGFib3V0IElDVSBkYXRhIGxvYWRpbmcgc2VlIHRoZSBVc2VyIEd1aWRlCisgKiBEYXRhIE1hbmFn
ZW1lbnQgY2hhcHRlci4gKGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL2ljdWRhdGEu
aHRtbCk8L3A+CisgKgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGgg
YW5kL29yIGEgYmFzZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUg
ZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2Rl
PiBmb3IgSUNVIGRhdGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0
aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxl
LCByZXNvdXJjZSBidW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAg
ICAgICAgY29udmVyc2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAg
VGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBB
IHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBp
c0FjY2VwdGFibGUgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRoYXQgbG9hZGVk
IGRhdGEKKyAqICAgICAgICAgICAgICAgICAgICAgaXMgdXNlZnVsIGZvciB0aGUgY2xpZW50IGNv
ZGUuIElmIGl0IHJldHVybnMgRkFMU0UKKyAqICAgICAgICAgICAgICAgICAgICAgZm9yIGFsbCBk
YXRhIGl0ZW1zLCB0aGVuIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4KKyAqICAgICAg
ICAgICAgICAgICAgICAgd2lsbCByZXR1cm4gd2l0aCBhbiBlcnJvci4KKyAqIEBwYXJhbSBjb250
ZXh0IEFyYml0cmFyeSBwYXJhbWV0ZXIgdG8gYmUgcGFzc2VkIGludG8gaXNBY2NlcHRhYmxlLgor
ICogQHBhcmFtIHBFcnJvckNvZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJdCBtdXN0
IG5vdCBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEByZXR1cm4gQSBwb2ludGVyIChoYW5kbGUp
IHRvIGEgZGF0YSBtZW1vcnkgb2JqZWN0LCBvciA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAg
ICBpZiBhbiBlcnJvciBvY2N1cnMuIENhbGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+
CisgKiAgICAgICAgIHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhLgorICogQHN0
YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIFVEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1ZGF0
YV9vcGVuQ2hvaWNlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNo
YXIgKm5hbWUsCisgICAgICAgICAgICAgICAgIFVEYXRhTWVtb3J5SXNBY2NlcHRhYmxlICppc0Fj
Y2VwdGFibGUsIHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBF
cnJvckNvZGUpOworCisvKioKKyAqIENsb3NlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoaXMgZnVu
Y3Rpb24gbXVzdCBiZSBjYWxsZWQgdG8gYWxsb3cgdGhlIHN5c3RlbSB0bworICogcmVsZWFzZSBy
ZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGF0YSBtZW1vcnkuCisgKiBAcGFyYW0gcERh
dGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBtZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2Nsb3NlKFVEYXRhTWVtb3J5ICpw
RGF0YSk7CisKKyNpZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgor
CisvKioKKyAqIFxjbGFzcyBMb2NhbFVEYXRhTWVtb3J5UG9pbnRlcgorICogIlNtYXJ0IHBvaW50
ZXIiIGNsYXNzLCBjbG9zZXMgYSBVRGF0YU1lbW9yeSB2aWEgdWRhdGFfY2xvc2UoKS4KKyAqIEZv
ciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKgor
ICogQHNlZSBMb2NhbFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0YWJs
ZSBJQ1UgNC40CisgKi8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVEYXRhTWVt
b3J5UG9pbnRlciwgVURhdGFNZW1vcnksIHVkYXRhX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5E
CisKKyNlbmRpZgorCisvKioKKyAqIEdldCB0aGUgcG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEg
aW5zaWRlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoZSBkYXRhIGlzIHJlYWQtb25seS4KKyAqCisg
KiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1h
bGlnbmVkLgorICoKKyAqIEBwYXJhbSBwRGF0YSBUaGUgcG9pbnRlciB0byBkYXRhIG1lbW9yeSBv
YmplY3QKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBjb25zdCB2b2lkICogVV9F
WFBPUlQyCit1ZGF0YV9nZXRNZW1vcnkoVURhdGFNZW1vcnkgKnBEYXRhKTsKKworLyoqCisgKiBH
ZXQgdGhlIGluZm9ybWF0aW9uIGZyb20gdGhlIGRhdGEgbWVtb3J5IGhlYWRlci4KKyAqIFRoaXMg
YWxsb3dzIHRvIGdldCBhY2Nlc3MgdG8gdGhlIGhlYWRlciBjb250YWluaW5nCisgKiBwbGF0Zm9y
bSBkYXRhIHByb3BlcnRpZXMgZXRjLiB3aGljaCBpcyBub3QgcGFydCBvZgorICogdGhlIGRhdGEg
aXRzZWxmIGFuZCBjYW4gdGhlcmVmb3JlIG5vdCBiZSBhY2Nlc3NlZAorICogdmlhIHRoZSBwb2lu
dGVyIHRoYXQgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+IHJldHVybnMuCisgKgorICog
QHBhcmFtIHBEYXRhIHBvaW50ZXIgdG8gdGhlIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHBhcmFt
IHBJbmZvIHBvaW50ZXIgdG8gYSBVRGF0YUluZm8gb2JqZWN0OworICogICAgICAgICAgICAgIGl0
cyA8Y29kZT5zaXplPC9jb2RlPiBmaWVsZCBtdXN0IGJlIHNldCBjb3JyZWN0bHksCisgKiAgICAg
ICAgICAgICAgdHlwaWNhbGx5IHRvIDxjb2RlPnNpemVvZihVRGF0YUluZm8pPC9jb2RlPi4KKyAq
CisgKiA8Y29kZT4qcEluZm88L2NvZGU+IHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIFVEYXRhSW5m
byBzdHJ1Y3R1cmUKKyAqIGluIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QuIElmIHRoaXMgc3RydWN0
dXJlIGlzIHNtYWxsZXIgdGhhbgorICogPGNvZGU+cEluZm8tPnNpemU8L2NvZGU+LCB0aGVuIHRo
ZSA8Y29kZT5zaXplPC9jb2RlPiB3aWxsIGJlCisgKiBhZGp1c3RlZCBhbmQgb25seSBwYXJ0IG9m
IHRoZSBzdHJ1Y3R1cmUgd2lsbCBiZSBmaWxsZWQuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwor
VV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2dldEluZm8oVURhdGFNZW1vcnkgKnBEYXRh
LCBVRGF0YUluZm8gKnBJbmZvKTsKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRo
ZSBub3JtYWwgSUNVIGRhdGEgbG9hZGluZyBwcm9jZXNzIGFuZAorICogYWxsb3dzIHlvdSB0byBm
b3JjZSBJQ1UncyBzeXN0ZW0gZGF0YSB0byBjb21lIG91dCBvZiBhIHVzZXItc3BlY2lmaWVkCisg
KiBhcmVhIGluIG1lbW9yeS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxp
Z25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUu
aWN1LXByb2plY3Qub3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBp
cyB0aGF0IG9mIHRoZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgYXMgaXMKKyAqIGdlbmVyYXRlZCBi
eSB0aGUgcGtnZGF0YSB0b29sIHdpdGggbW9kZT1jb21tb24gb3IgbW9kZT1kbGwuCisgKiBZb3Ug
Y2FuIHJlYWQgaW4gYSB3aG9sZSBjb21tb24gbW9kZSBmaWxlIGFuZCBwYXNzIHRoZSBhZGRyZXNz
IHRvIHRoZSBzdGFydCBvZiB0aGUKKyAqIGRhdGEsIG9yICh3aXRoIHRoZSBhcHByb3ByaWF0ZSBs
aW5rIG9wdGlvbnMpIHBhc3MgaW4gdGhlIHBvaW50ZXIgdG8KKyAqIHRoZSBkYXRhIHRoYXQgaGFz
IGJlZW4gbG9hZGVkIGZyb20gYSBkbGwgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0sCisgKiBhcyBz
aG93biBpbiB0aGlzIGNvZGU6CisgKgorICogICAgICAgZXh0ZXJuIGNvbnN0IGNoYXIgVV9JTVBP
UlQgVV9JQ1VEQVRBX0VOVFJZX1BPSU5UIFtdOworICogICAgICAgIC8vIFVfSUNVREFUQV9FTlRS
WV9QT0lOVCBpcyBzYW1lIGFzIGVudHJ5IHBvaW50IHNwZWNpZmllZCB0byBwa2dkYXRhIHRvb2wK
KyAqICAgICAgIFVFcnJvckNvZGUgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAqCisgKiAgICAg
ICB1ZGF0YV9zZXRDb21tb25EYXRhKCZVX0lDVURBVEFfRU5UUllfUE9JTlQsICZzdGF0dXMpOwor
ICoKKyAqIEl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBkZWNsYXJhdGlvbiBiZSBhcyBhYm92ZS4g
VGhlIGVudHJ5IHBvaW50CisgKiBtdXN0IG5vdCBiZSBkZWNsYXJlZCBhcyBhbiBleHRlcm4gdm9p
ZCouCisgKgorICogU3RhcnRpbmcgd2l0aCBJQ1UgNC40LCBpdCBpcyBwb3NzaWJsZSB0byBzZXQg
c2V2ZXJhbCBkYXRhIHBhY2thZ2VzLAorICogb25lIHBlciBjYWxsIHRvIHRoaXMgZnVuY3Rpb24u
CisgKiB1ZGF0YV9vcGVuKCkgd2lsbCBsb29rIGZvciBkYXRhIGluIHRoZSBtdWx0aXBsZSBkYXRh
IHBhY2thZ2VzIGluIHRoZSBvcmRlcgorICogaW4gd2hpY2ggdGhleSB3ZXJlIHNldC4KKyAqIFRo
ZSBwb3NpdGlvbiBvZiB0aGUgbGlua2VkLWluIG9yIGRlZmF1bHQtbmFtZSBJQ1UgLmRhdGEgcGFj
a2FnZSBpbiB0aGUKKyAqIHNlYXJjaCBsaXN0IGRlcGVuZHMgb24gd2hlbiB0aGUgZmlyc3QgZGF0
YSBpdGVtIGlzIGxvYWRlZCB0aGF0IGlzIG5vdCBjb250YWluZWQKKyAqIGluIHRoZSBhbHJlYWR5
IGV4cGxpY2l0bHkgc2V0IHBhY2thZ2VzLgorICogSWYgZGF0YSB3YXMgbG9hZGVkIGltcGxpY2l0
bHkgYmVmb3JlIHRoZSBmaXJzdCBjYWxsIHRvIHRoaXMgZnVuY3Rpb24KKyAqIChmb3IgZXhhbXBs
ZSwgdmlhIG9wZW5pbmcgYSBjb252ZXJ0ZXIsIGNvbnN0cnVjdGluZyBhIFVuaWNvZGVTdHJpbmcK
KyAqIGZyb20gZGVmYXVsdC1jb2RlcGFnZSBkYXRhLCB1c2luZyBmb3JtYXR0aW5nIG9yIGNvbGxh
dGlvbiBBUElzLCBldGMuKSwKKyAqIHRoZW4gdGhlIGRlZmF1bHQgZGF0YSB3aWxsIGJlIGZpcnN0
IGluIHRoZSBsaXN0LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVjdCBvbiBhcHBs
aWNhdGlvbiAobm9uIElDVSkgZGF0YS4gIFNlZSB1ZGF0YV9zZXRBcHBEYXRhKCkKKyAqIGZvciBz
aW1pbGFyIGZ1bmN0aW9uYWxpdHkgZm9yIGFwcGxpY2F0aW9uIGRhdGEuCisgKgorICogQHBhcmFt
IGRhdGEgcG9pbnRlciB0byBJQ1UgY29tbW9uIGRhdGEKKyAqIEBwYXJhbSBlcnIgb3V0Z29pbmcg
ZXJyb3Igc3RhdHVzIDxjb2RlPlVfVVNJTkdfREVGQVVMVF9XQVJOSU5HLCBVX1VOU1VQUE9SVEVE
X0VSUk9SPC9jb2RlPgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9F
WFBPUlQyCit1ZGF0YV9zZXRDb21tb25EYXRhKGNvbnN0IHZvaWQgKmRhdGEsIFVFcnJvckNvZGUg
KmVycik7CisKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNV
IGRhdGEgbG9hZGluZyBwcm9jZXNzIGZvciBhcHBsaWNhdGlvbi1zcGVjaWZpYworICogZGF0YSBh
bmQgYWxsb3dzIHlvdSB0byBmb3JjZSB0aGUgaXQgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNp
ZmllZAorICogcG9pbnRlci4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxp
Z25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUu
aWN1LXByb2plY3Qub3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBp
cyB0aGF0IG9mIHRoZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgbGlrZSAnaWN1ZHQyNmwuZGF0Jwor
ICogb3IgdGhlIGNvcnJlc3BvbmRpbmcgc2hhcmVkIGxpYnJhcnkgKERMTCkgZmlsZS4KKyAqIFRo
ZSBhcHBsaWNhdGlvbiBtdXN0IHJlYWQgaW4gb3Igb3RoZXJ3aXNlIGNvbnN0cnVjdCBhbiBpbWFn
ZSBvZiB0aGUgZGF0YSBhbmQgdGhlbgorICogcGFzcyB0aGUgYWRkcmVzcyBvZiBpdCB0byB0aGlz
IGZ1bmN0aW9uLgorICoKKyAqCisgKiBXYXJuaW5nOiAgc2V0QXBwRGF0YSB3aWxsIHNldCBhIFVf
VVNJTkdfREVGQVVMVF9XQVJOSU5HIGNvZGUgaWYKKyAqICAgICAgICAgICBkYXRhIHdpdGggdGhl
IHNwZWNpZmVkIHBhdGggdGhhdCBoYXMgYWxyZWFkeSBiZWVuIG9wZW5lZCwgb3IKKyAqICAgICAg
ICAgICBpZiBzZXRBcHBEYXRhIHdpdGggdGhlIHNhbWUgcGF0aCBoYXMgYWxyZWFkeSBiZWVuIGNh
bGxlZC4KKyAqICAgICAgICAgICBBbnkgc3VjaCBjYWxscyB0byBzZXRBcHBEYXRhIHdpbGwgaGF2
ZSBubyBlZmZlY3QuCisgKgorICoKKyAqIEBwYXJhbSBwYWNrYWdlTmFtZSB0aGUgcGFja2FnZSBu
YW1lIGJ5IHdoaWNoIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZmVyCisgKiAgICAgICAgICAgICB0
byAob3BlbikgdGhpcyBkYXRhCisgKiBAcGFyYW0gZGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhCisg
KiBAcGFyYW0gZXJyIG91dGdvaW5nIGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRf
V0FSTklORywgVV9VTlNVUFBPUlRFRF9FUlJPUjwvY29kZT4KKyAqIEBzZWUgdWRhdGFfc2V0Q29t
bW9uRGF0YQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQy
Cit1ZGF0YV9zZXRBcHBEYXRhKGNvbnN0IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25zdCB2b2lkICpk
YXRhLCBVRXJyb3JDb2RlICplcnIpOworCisvKioKKyAqIFBvc3NpYmxlIHNldHRpbmdzIGZvciB1
ZGF0YV9zZXRGaWxlQWNjZXNzKCkKKyAqIEBzZWUgdWRhdGFfc2V0RmlsZUFjY2VzcworICogQHN0
YWJsZSBJQ1UgMy40CisgKi8KK3R5cGVkZWYgZW51bSBVRGF0YUZpbGVBY2Nlc3MgeworICAgIC8q
KiBJQ1UgbG9va3MgZm9yIGRhdGEgaW4gc2luZ2xlIGZpbGVzIGZpcnN0LCB0aGVuIGluIHBhY2th
Z2VzLiAoZGVmYXVsdCkgQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRVNfRklSU1Qs
CisgICAgLyoqIEFuIGFsaWFzIGZvciB0aGUgZGVmYXVsdCBhY2Nlc3MgbW9kZS4gQHN0YWJsZSBJ
Q1UgMy40ICovCisgICAgVURBVEFfREVGQVVMVF9BQ0NFU1MgPSBVREFUQV9GSUxFU19GSVJTVCwK
KyAgICAvKiogSUNVIG9ubHkgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzLCBub3QgZnJvbSBzaW5n
bGUgZmlsZXMuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX09OTFlfUEFDS0FHRVMsCisg
ICAgLyoqIElDVSBsb2FkcyBkYXRhIGZyb20gcGFja2FnZXMgZmlyc3QsIGFuZCBvbmx5IGZyb20g
c2luZ2xlIGZpbGVzCisgICAgICAgIGlmIHRoZSBkYXRhIGNhbm5vdCBiZSBmb3VuZCBpbiBhIHBh
Y2thZ2UuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX1BBQ0tBR0VTX0ZJUlNULAorICAg
IC8qKiBJQ1UgZG9lcyBub3QgYWNjZXNzIHRoZSBmaWxlIHN5c3RlbSBmb3IgZGF0YSBsb2FkaW5n
LiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9OT19GSUxFUywKKyAgICAvKiogTnVtYmVy
IG9mIHJlYWwgVURhdGFGaWxlQWNjZXNzIHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAg
VURBVEFfRklMRV9BQ0NFU1NfQ09VTlQKK30gVURhdGFGaWxlQWNjZXNzOworCisvKioKKyAqIFRo
aXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCB0byBjb250cm9sIGhvdyBJQ1UgbG9hZHMgZGF0YS4g
SXQgbXVzdCBiZSBjYWxsZWQKKyAqIGJlZm9yZSBhbnkgSUNVIGRhdGEgaXMgbG9hZGVkLCBpbmNs
dWRpbmcgYXBwbGljYXRpb24gZGF0YSBsb2FkZWQgd2l0aCAKKyAqIHVyZXMvUmVzb3VyY2VCdW5k
bGUgb3IgdWRhdGEgQVBJcy4gVGhpcyBmdW5jdGlvbiBpcyBub3QgbXVsdGl0aHJlYWQgc2FmZS4g
IAorICogVGhlIHJlc3VsdHMgb2YgY2FsbGluZyBpdCB3aGlsZSBvdGhlciB0aHJlYWRzIGFyZSBs
b2FkaW5nIGRhdGEgYXJlIHVuZGVmaW5lZC4KKyAqIEBwYXJhbSBhY2Nlc3MgVGhlIHR5cGUgb2Yg
ZmlsZSBhY2Nlc3MgdG8gYmUgdXNlZAorICogQHBhcmFtIHN0YXR1cyBFcnJvciBjb2RlLgorICog
QHNlZSBVRGF0YUZpbGVBY2Nlc3MKKyAqIEBzdGFibGUgSUNVIDMuNCAKKyAqLworVV9TVEFCTEUg
dm9pZCBVX0VYUE9SVDIKK3VkYXRhX3NldEZpbGVBY2Nlc3MoVURhdGFGaWxlQWNjZXNzIGFjY2Vz
cywgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmggYi9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3VtaXNjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg1NDUxZmM3NjdjMDU4MzVmNmMxNWY1NjZmMzU2MmUy
ZDRhZjgzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1pc2Mu
aApAQCAtMCwwICsxLDYwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykg
MTk5OS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRp
b24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAg
ZmlsZSBuYW1lOiAgdW1pc2MuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNp
emU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246
IDE5OTlvY3QxNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisjaWZu
ZGVmIFVNSVNDX0gKKyNkZWZpbmUgVU1JU0NfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMu
aCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmICBDIEFQSTptaXNjIGRlZmluaXRpb25zIAor
ICoKKyAqICBUaGlzIGZpbGUgY29udGFpbnMgbWlzY2VsbGFuZW91cyBkZWZpbml0aW9ucyBmb3Ig
dGhlIEMgQVBJcy4gCisgKi8KKworVV9DREVDTF9CRUdJTgorCisvKiogQSBzdHJ1Y3QgcmVwcmVz
ZW50aW5nIGEgcmFuZ2Ugb2YgdGV4dCBjb250YWluaW5nIGEgc3BlY2lmaWMgZmllbGQgCisgKiAg
QHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IFVGaWVsZFBvc2l0aW9uIHsKKyAg
LyoqCisgICAqIFRoZSBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQz
Ml90IGZpZWxkOworICAvKioKKyAgICogVGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHJhbmdlIGNvbnRh
aW5pbmcgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBiZWdp
bkluZGV4OworICAvKiogCisgICAqIFRoZSBsaW1pdCBvZiB0aGUgdGV4dCByYW5nZSBjb250YWlu
aW5nIGZpZWxkIAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgZW5kSW5k
ZXg7Cit9IFVGaWVsZFBvc2l0aW9uOworCisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorLyoqCisg
KiBPcGFxdWUgdHlwZSByZXR1cm5lZCBieSByZWdpc3Rlckluc3RhbmNlLCByZWdpc3RlckZhY3Rv
cnkgYW5kIHVucmVnaXN0ZXIgZm9yIHNlcnZpY2UgcmVnaXN0cmF0aW9uLgorICogQHN0YWJsZSBJ
Q1UgMi42CisgKi8KK3R5cGVkZWYgY29uc3Qgdm9pZCogVVJlZ2lzdHJ5S2V5OworI2VuZGlmCisK
K1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAwOTk3ZDllYWM0
Nzk1ODFmZjFmZDQ3NjljY2M0YjU0NjYyZWZkNzE0Li4xMTEzYjhjYjFiZjNiNTBiNmVlNTQ2MzMw
MmNlOWFjMzQ2YjExMWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMjcyLDYgKzI3Miw0MiBA
QCBpZiAoTk9UIFVTRV9TWVNURU1fTUFMTE9DKQogICAgIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJ
RVMgYm1hbGxvYykKIGVuZGlmICgpCiAKK3NldChXVEZfQlJFQUtJTkdfUlVMRVNfU09VUkNFUwor
ICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dAorICAg
IHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0Cisg
ICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50
eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50
eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKSy50eHQKKykKKworbWFjcm8oR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMg
X2lucHV0IF9zeW1ib2xOYW1lIF9vdXRwdXQpCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAg
ICAgICBPVVRQVVQgJHtfb3V0cHV0fQorICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElS
fS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQor
ICAgICAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGls
b2d1ZS50eHQKKyAgICAgICAgQ09NTUFORCBjYXQgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAke19pbnB1
dH0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvckVwaWxvZ3VlLnR4dCB8IHVuaWZkZWYgLVVBRERJVElPTkFMX0VNT0pJX1NVUFBP
UlQgLVVIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTIHwgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtX
VEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5n
cy5weSAke19zeW1ib2xOYW1lfVJ1bGVzID4gJHtfb3V0cHV0fQorICAgICAgICBWRVJCQVRJTSkK
KyAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke19vdXRwdXR9KQorICAgIEFERF9TT1VSQ0Vf
REVQRU5ERU5DSUVTKCR7X2lucHV0fSAke19vdXRwdXR9KQorZW5kbWFjcm8oKQorCitmb3JlYWNo
IChfZmlsZSAke1dURl9CUkVBS0lOR19SVUxFU19TT1VSQ0VTfSkKKyAgICBnZXRfZmlsZW5hbWVf
Y29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCisgICAgR0VORVJBVEVfQlJFQUtJTkdf
UlVMRVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7X2ZpbGV9ICR7X25hbWV9ICR7REVS
SVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvJHtfbmFtZX0uY3BwKQorZW5kZm9y
ZWFjaCAoKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VS
Q0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNw
cAorICAgIE1BSU5fREVQRU5ERU5DWSAke1dURl9ESVJ9L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
R2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CisgICAgREVQRU5EUyAke0NNQUtFX0NVUlJF
TlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy50eHQKKyAgICBDT01NQU5EIHVuaWZkZWYgLVVBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQg
LVVIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90
ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCB8ICR7UFlU
SE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0
ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzID4gJHtE
RVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMuY3BwCisgICAgVkVSQkFUSU0pCitsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke0RF
UklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy5jcHApCitBRERfU09VUkNFX0RFUEVOREVOQ0lFUygke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50
eHQgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMuY3BwKQorCiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHVuaWNv
ZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWRkNjhiZWE4MGM4ZjJjNzNhMWUwNWZlMWY5YmJhN2VjZDQ1NjNlMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTAsMCAr
MSw4MSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworQlJFQUtJTkdf
UlVMRVNfRklMRVMgPSBcCisgICAgQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksu
YnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuYnJr
IFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5icmsg
XAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmJy
ayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmJy
ayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
LmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9u
Q0pLLmJyaworCitCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUyA9IFwKKyAgICBCcmVha2luZ1J1
bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwCisKK2lmZXEgKCQoc2hlbGwgJChDQykg
LXN0ZD1nbnUrKzExIC14IGMrKyAtRSAtUCAtZE0gJChTREtfRkxBR1MpICQoRlJBTUVXT1JLX0ZM
QUdTKSAkKEhFQURFUl9GTEFHUykgLUkgJChXVEYpIC1pbmNsdWRlICIkKFdURikvd3RmL1BsYXRm
b3JtLmgiIC9kZXYvbnVsbCB8IGdyZXAgJyBXVEZfUExBVEZPUk1fSU9TICcgfCBjdXQgLWQnICcg
LWYzKSwgMSkKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMQorZWxzZQorICAgIFdURl9QTEFURk9S
TV9JT1MgPSAwCitlbmRpZgorCitpZmVxICgkKFdURl9QTEFURk9STV9JT1MpLCAxKQorCUFERElU
SU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5UID0gMAorCUhBVkVfRVhUUkFf
SUNVX05BTUVEX1NFVFMgPSAwCitlbHNlCisJQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9D
VVJTT1JfTU9WRU1FTlQgPSAkKEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCkKKwlIQVZFX0VYVFJB
X0lDVV9OQU1FRF9TRVRTID0gMQorZW5kaWYKKworREVQRU5ERU5DSUVTID0gJChCUkVBS0lOR19S
VUxFU19ERUZJTklUSU9OUykKKworaWZlcSAoJChPUyksTUFDT1MpCitERVBFTkRFTkNJRVMgKz0g
JChCUkVBS0lOR19SVUxFU19GSUxFUykKK2VuZGlmCisKK2FsbCA6ICQoREVQRU5ERU5DSUVTKQor
CitCcmVha2luZ1J1bGVzLyUuYnJrIDogQnJlYWtpbmdSdWxlcy8lLnBwCisJLi4vLi4vZ2VuYnJr
IC1jIC1yICQ8IC1vICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLmNwcCA6IEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwCisJ
cHl0aG9uICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxl
U3RyaW5ncy5weSBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMgPCAkPCA+ICRACisKK0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLmNwcCA6IEJyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3IlLnBwCisJcHl0aG9uICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVy
YXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBsaW5lQnJlYWtJdGVyYXRvciQqUnVsZXMgPCAkPCA+
ICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwIDogJChX
VEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4
dAorCS11bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQpIC1ESEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VU
Uz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRAICQ8CisKK0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3IlLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCS1jYXQgJD8gfCB1bmlmZGVmIC1EQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhUUkFf
SUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTkxMGJmYTVlMGU2MzNkYmQ3
MjU5M2FjMWYzMzBhZjNlZTQzZGRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKQEAgLTAs
MCArMSwxNzQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
IyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhp
cyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2Yg
SUNVIDU3CisjIDxodHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3Rh
Z3MvcmVsZWFzZS01Ny0xL3NvdXJjZS9kYXRhL2Jya2l0ci8+LgorIyBUaGUgbWFqb3IgZGlmZmVy
ZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgorIyAqIFJlcGxh
Y2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tc
cHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMu
OCBvciBlYXJsaWVyOworIyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZy
b20gbW92aW5nIGFmdGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKKyMgKiBBZGRl
ZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNp
Z25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKKyMg
KiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEph
cGFuZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgorIyAqIEFkZGVkIHJ1bGVz
IGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4KKworJENSICAgICAgPSBbXHB7R3JhcGhl
bWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07CiskTEYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVy
X0JyZWFrID0gTEZ9XTsKKyRDb250cm9sID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBD
b250cm9sfV07CiskVm9pY2VNYXJrcyA9IFtcdUZGOUVcdUZGOUZdOyAjIEphcGFuZXNlIGhhbGYt
d2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCiskRXh0ZW5kICA9IFtccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gRXh0ZW5kfSAkVm9pY2VNYXJrcyAtIFtcdTBFMzAgXHUwRTMyIFx1MEU0NSBc
dTBFQjAgXHUwRUIyXV07CiskU3BhY2luZ01hcmsgPSBbW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBT
cGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOworJEwgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rl
cl9CcmVhayA9IEx9XTsKKyRWICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBW
fV07CiskVCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOworJExWICAg
ICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07CiskTFZUICAgICA9IFtccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07CiskSGluMCAgICA9IFtcdTA5MDUtXHUwOTM5
XTsgIyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQorJEhpblYgICAgPSBcdTA5NEQ7ICMgRGV2
YW5hZ2FyaSBTaWduIFZpcmFtYQorJEhpbjEgICAgPSBbXHUwOTE1LVx1MDkzOV07ICMgRGV2YW5h
Z2FyaSBMZXR0ZXIgS2EsLi4uLEhhCiskQmVuMCAgICA9IFtcdTA5ODUtXHUwOUI5XTsgIyBCZW5n
YWxpIExldHRlciBBLC4uLixIYQorJEJlblYgICAgPSBcdTA5Q0Q7ICMgQmVuZ2FsaSBTaWduIFZp
cmFtYQorJEJlbjEgICAgPSBbXHUwOTk1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgS2EsLi4u
LEhhCiskUGFuMCAgICA9IFtcdTBBMDUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4s
SGEKKyRQYW5WICAgID0gXHUwQTREOyAjIEd1cm11a2hpIFNpZ24gVmlyYW1hCiskUGFuMSAgICA9
IFtcdTBBMTUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCiskR3VqMCAgICA9
IFtcdTBBODUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKKyRHdWpWICAgID0g
XHUwQUNEOyAjIEd1amFyYXRpIFNpZ24gVmlyYW1hCiskR3VqMSAgICA9IFtcdTBBOTUtXHUwQUI5
XTsgIyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCiskT3JpMCAgICA9IFtcdTBCMDUtXHUwQjM5
XTsgIyBPcml5YSBMZXR0ZXIgQSwuLi4sSGEKKyRPcmlWICAgID0gXHUwQjREOyAjIE9yaXlhIFNp
Z24gVmlyYW1hCiskT3JpMSAgICA9IFtcdTBCMTUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgS2Es
Li4uLEhhCiskVGVsMCAgICA9IFtcdTBDMDUtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEEsLi4u
LEhhCiskVGVsViAgICA9IFx1MEM0RDsgIyBUZWx1Z3UgU2lnbiBWaXJhbWEKKyRUZWwxICAgID0g
W1x1MEMxNC1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCiskS2FuMCAgICA9IFtc
dTBDODUtXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4uLixIYQorJEthblYgICAgPSBcdTBD
Q0Q7ICMgS2FubmFkYSBTaWduIFZpcmFtYQorJEthbjEgICAgPSBbXHUwQzk1LVx1MENCOV07ICMg
S2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKKyRNYWwwICAgID0gW1x1MEQwNS1cdTBEMzldOyAjIE1h
bGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEgCiskTWFsViAgICA9IFx1MEQ0RDsgIyBNYWxheWFsYW0g
U2lnbiBWaXJhbWEKKyRNYWwxICAgID0gW1x1MEQxNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0
ZXIgQSwuLi4sSGEKKyRSSSAgICAgID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07ICMgRW1vamkg
cmVnaW9uYWwgaW5kaWNhdG9ycworJFpXSiAgICAgPSBcdTIwMEQ7ICMgWmVybyB3aWR0aCBqb2lu
ZXIKKyRFbW9qaVZhciA9IFtcdUZFMEZdOyAjIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3Rv
cgorCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0g
W1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBcVTAwMDFGMzA4IFxVMDAwMUYzQzMtXFUwMDAx
RjNDNCBcVTAwMDFGM0NBLVxVMDAwMUYzQ0MgXFUwMDAxRjNGMyBcVTAwMDFGNDQxIFxVMDAwMUY0
NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NkYgXFUwMDAxRjQ3MSBcVTAwMDFGNDcz
IFxVMDAwMUY0NzcgXFUwMDAxRjQ4MS1cVTAwMDFGNDgyIFxVMDAwMUY0ODYtXFUwMDAxRjQ4NyBc
VTAwMDFGNDhCIFxVMDAwMUY1NzUgXFUwMDAxRjVFOCBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUw
MDAxRjY0QiBcVTAwMDFGNjRELVxVMDAwMUY2NEUgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAw
MUY2QjZdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRF
bW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUyNzBEIFxVMDAwMUYzODUgXFUw
MDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EgXFUwMDAxRjNDQiBcVTAwMDFGNDQyLVxVMDAw
MUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFG
NDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4
NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU3NSBcVTAwMDFGNTkwIFxVMDAwMUY1OTUg
XFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxV
MDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzAgXFUwMDAxRjkxOF0gOyAj
IEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2Vsc2UKKworICAgICRF
bW9qaUZvclNlcXMgPSBbXHUyNzY0IFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDhCXTsg
IyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JN
b2RzID0gW1x1MjYxRCBcdTI3MEEtXHUyNzBDIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFG
M0M0IFxVMDAwMUYzQzcgXFUwMDAxRjNDQSBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0
Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0Nzgg
XFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxV
MDAwMUY0QUEgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAw
MDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzBdIDsgIyBF
bW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlN
b2RzID0gW1xVMDAwMUYzRkItXFUwMDAxRjNGRl07ICMgRml0enBhdHJpY2sgbW9kaWZpZXJzCish
IWNoYWluOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIVJJTm9DaGFp
bjsKKworI2VuZGlmCisKKyEhZm9yd2FyZDsKKyRDUiAkTEY7CiskTCAoJEwgfCAkViB8ICRMViB8
ICRMVlQpOworKCRMViB8ICRWKSAoJFYgfCAkVCk7CisoJExWVCB8ICRUKSAkVDsKKworI2lmIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsKKyAg
ICAkUkkgJFJJICRFeHRlbmQqOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAg
ICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKworI2Vsc2UKKworICAgIFteJENv
bnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5n
TWFyazsKKyAgICAkUkkgJFJJIC8gJFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGlu
MCAkSGluViAkSGluMTsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKKyRCZW4wICRCZW5W
ICRCZW4xOyAjIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQorJFBhbjAgJFBhblYgJFBhbjE7ICMg
R3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQorJEd1ajAgJEd1alYgJEd1ajE7ICMgR3VqYXJhdGkg
VmlyYW1hIChmb3J3YXJkKQorJE9yaTAgJE9yaVYgJE9yaTE7ICMgT3JpeWEgVmlyYW1hIChmb3J3
YXJkKQorJFRlbDAgJFRlbFYgJFRlbDE7ICMgVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKKyRLYW4w
ICRLYW5WICRLYW4xOyAjIEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQorJE1hbDAgJE1hbFYgJE1h
bDE7ICMgTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKKyRaV0ogJEVtb2ppRm9yU2VxczsgIyBE
b250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFy
PyAkRW1vamlNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2li
bHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorISFy
ZXZlcnNlOworJExGICRDUjsKKygkTCB8ICRWIHwgJExWIHwgJExWVCkgJEw7CisoJFYgfCAkVCkg
KCRMViB8ICRWKTsKKyRUICgkTFZUIHwgJFQpOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUCisKKyAgICAkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0
ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworICAg
ICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOworCisjZWxzZQorCisgICAgJEV4dGVu
ZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wg
JENSICRMRl07CisgICAgJFJJICRSSSAvICRSSSAkUkk7CisgICAgJFJJICRSSTsKKworI2VuZGlm
CisKKyRIaW4xICRIaW5WICRIaW4wOyAjIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKKyRC
ZW4xICRCZW5WICRCZW4wOyAjIEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKKyRQYW4xICRQYW5W
ICRQYW4wOyAjIEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCiskR3VqMSAkR3VqViAkR3VqMDsg
IyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJE9yaTEgJE9yaVYgJE9yaTA7ICMgR3VqYXJh
dGkgVmlyYW1hIChiYWNrd2FyZCkKKyRUZWwxICRUZWxWICRUZWwwOyAjIFRlbHVndSBWaXJhbWEg
KGJhY2t3YXJkKQorJEthbjEgJEthblYgJEthbjA7ICMgS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJk
KQorJE1hbDEgJE1hbFYgJE1hbDA7ICMgTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCiskRW1v
amlGb3JTZXFzICRaV0o7ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1v
amlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVs
ZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBh
dHJpY2sgbW9kaWZpZXIKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgISFz
YWZlX3JldmVyc2U7CisgICAgJFJJICRSSSs7CisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsg
JEVtb2ppRm9yTW9kczsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKyAgICAkUkkgJFJJKzsKKyAgICAk
RW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOworCisjZWxzZQorCisgICAgWyRF
bW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAkRW1vamlGb3JNb2RzIFsk
RW1vamlWYXIgJEVtb2ppTW9kc10rOworICAgICEhc2FmZV9yZXZlcnNlOworICAgICEhc2FmZV9m
b3J3YXJkOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk2ZjAyNmQ5ZTg3ZjY1Mjg0MGZiNDcyYzk1MzA2YjlkMTA2OTYzN2IKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2lu
Z1J1bGVTdHJpbmdzLnB5CkBAIC0wLDAgKzEsOTYgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgor
IworIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5cworaW1w
b3J0IHJlCisKK2hlYWRlciA9ICIiIi8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLyIiIgorCisKK2RlZiBtYWluKGFyZ3Y9Tm9u
ZSk6CisgICAgaWYgbm90IGFyZ3Y6CisgICAgICAgIGFyZ3YgPSBzeXMuYXJndgorICAgIHN5bWJv
bE5hbWUgPSBhcmd2WzFdWzBdLmxvd2VyKCkgKyBhcmd2WzFdWzE6XQorCisgICAgcHJpbnQoaGVh
ZGVyKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCIvLyBETyBOT1QgRURJVCBUSElTIEZJTEUu
IEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHRoZSBzY3JpcHQiKQorICAgIHByaW50
KCIvLyBXVEYvd3RmL3RleHQvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IikKKyAgICBw
cmludCgiIikKKyAgICBwcmludCgiI2luY2x1ZGUgXCJjb25maWcuaFwiIikKKyAgICBwcmludCgi
I2luY2x1ZGUgPHVuaWNvZGUvdXZlcm51bS5oPiIpCisgICAgcHJpbnQoIiIpCisgICAgcHJpbnQo
Im5hbWVzcGFjZSBXVEYgeyIpCisgICAgcHJpbnQoIiIpCisgICAgcHJpbnQoImNvbnN0IGNoYXIq
ICIgKyBzeW1ib2xOYW1lICsgIiA9ICIpCisKKyAgICBmb3IgbCBpbiBzeXMuc3RkaW46CisgICAg
ICAgIGxpbmUgPSBsLnJzdHJpcCgpCisgICAgICAgIGlmIHJlLm1hdGNoKCJeXHMqJCIsIGxpbmUp
OgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyAiKToK
KyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxpZiBsaW5lID09ICIjIjoKKyAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoIiMiKToKKyAgICAgICAgICAgIHBy
aW50KGxpbmUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtYXRjaCA9IHJlLm1hdGNoKCJe
KC4qKTsoICMgLiopPyQiLCBsaW5lKQorICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAg
ICAgICAgcmVzdWx0ID0gIlwiIiArIG1hdGNoLmdyb3VwKDEpLnJlcGxhY2UoIlxcIiwgIlxcXFwi
KSArICI7XCIiCisgICAgICAgICAgICAgICAgaWYgbWF0Y2guZ3JvdXAoMik6CisgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdCArPSAiIC8vICIgKyBtYXRjaC5ncm91cCgyKVszOl0KKyAgICAgICAg
ICAgICAgICBwcmludChyZXN1bHQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IGV4aXQoMSkKKworICAgIHByaW50KCI7IikKKyAgICBwcmludCgifSIpCisKK2lmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6CisgICAgc3lzLmV4aXQobWFpbihzeXMuYXJndikpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGls
b2d1ZS50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JFcGlsb2d1ZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE4NWQzYzFhNmVlMjE3NjJmNjRjYWQyOWY3
YWNlZjRiMjhhM2VhYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApAQCAtMCwwICsxLDM3MCBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEFJID0gWzpMaW5lQnJl
YWsgPSBBbWJpZ3VvdXM6XTsKKyRBTCA9IFs6TGluZUJyZWFrID0gQWxwaGFiZXRpYzpdOworJEJB
ID0gW1s6TGluZUJyZWFrID0gQnJlYWtfQWZ0ZXI6XSAtICRCQV9TVUJdOworJEJCID0gWzpMaW5l
QnJlYWsgPSBCcmVha19CZWZvcmU6XTsKKyRCSyA9IFs6TGluZUJyZWFrID0gTWFuZGF0b3J5X0Jy
ZWFrOl07CiskQjIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JvdGg6XTsKKyRDQiA9IFs6TGluZUJy
ZWFrID0gQ29udGluZ2VudF9CcmVhazpdOworJENMID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QdW5j
dHVhdGlvbjpdOworJENNID0gWzpMaW5lQnJlYWsgPSBDb21iaW5pbmdfTWFyazpdOworJENQID0g
WzpMaW5lQnJlYWsgPSBDbG9zZV9QYXJlbnRoZXNpczpdOworJENSID0gWzpMaW5lQnJlYWsgPSBD
YXJyaWFnZV9SZXR1cm46XTsKKyRFWCA9IFtbOkxpbmVCcmVhayA9IEV4Y2xhbWF0aW9uOl0gLSAk
RVhfU1VCXTsKKyRHTCA9IFs6TGluZUJyZWFrID0gR2x1ZTpdOworCisjaWYgSEFWRV9FWFRSQV9J
Q1VfTkFNRURfU0VUUworCisgICAgJEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdfTGV0dGVyOl07
CisKKyNlbHNlCisKKyAgICAkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1dOworCisjZW5k
aWYKKworJEhZID0gWzpMaW5lQnJlYWsgPSBIeXBoZW46XTsKKyRIMiA9IFs6TGluZUJyZWFrID0g
SDI6XTsKKyRIMyA9IFs6TGluZUJyZWFrID0gSDM6XTsKKyRJRCA9IFtbW1s6TGluZUJyZWFrID0g
SWRlb2dyYXBoaWM6XSAtICRDSl0gJElEX0FERF0gLSAkSURfU1VCXTsKKyRJTiA9IFtbOkxpbmVC
cmVhayA9IEluc2VwYXJhYmxlOl0gLSAkSU5fU1VCXTsKKyRJUyA9IFtbOkxpbmVCcmVhayA9IElu
Zml4X051bWVyaWM6XSAtICRJU19TVUJdOworJEpMID0gWzpMaW5lQnJlYWsgPSBKTDpdOworJEpW
ID0gWzpMaW5lQnJlYWsgPSBKVjpdOworJEpUID0gWzpMaW5lQnJlYWsgPSBKVDpdOworJExGID0g
WzpMaW5lQnJlYWsgPSBMaW5lX0ZlZWQ6XTsKKyROTCA9IFs6TGluZUJyZWFrID0gTmV4dF9MaW5l
Ol07CiskTlMgPSBbW1tbOkxpbmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRDSl0gJE5TX0FERF0g
LSAkTlNfU1VCXTsKKyROVSA9IFs6TGluZUJyZWFrID0gTnVtZXJpYzpdOworJE9QID0gWzpMaW5l
QnJlYWsgPSBPcGVuX1B1bmN0dWF0aW9uOl07CiskUE8gPSBbWzpMaW5lQnJlYWsgPSBQb3N0Zml4
X051bWVyaWM6XSAtICRQT19TVUJdOworJFBSID0gW1s6TGluZUJyZWFrID0gUHJlZml4X051bWVy
aWM6XSAtICRQUl9TVUJdOworJFFVID0gWzpMaW5lQnJlYWsgPSBRdW90YXRpb246XTsKKyRSSSA9
IFtcVTAwMDFGMUU2LVxVMDAwMUYxRkZdOworJFNBID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0Nv
bnRleHQ6XTsKKyRTRyA9IFs6TGluZUJyZWFrID0gU3Vycm9nYXRlOl07CiskU1AgPSBbOkxpbmVC
cmVhayA9IFNwYWNlOl07CiskU1kgPSBbOkxpbmVCcmVhayA9IEJyZWFrX1N5bWJvbHM6XTsKKyRX
SiA9IFs6TGluZUJyZWFrID0gV29yZF9Kb2luZXI6XTsKKyRYWCA9IFs6TGluZUJyZWFrID0gVW5r
bm93bjpdOworJFpXID0gWzpMaW5lQnJlYWsgPSBaV1NwYWNlOl07CiskWldKID0gXHUyMDBEOwor
JEVtb2ppVmFyID0gXHVGRTBGOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAg
ICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBcVTAwMDFGMzA4
IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAwMUYzQ0MgXFUwMDAxRjNGMyBc
VTAwMDFGNDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NkYgXFUw
MDAxRjQ3MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4MS1cVTAwMDFGNDgyIFxVMDAw
MUY0ODYtXFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUgXFUwMDAxRjVFOCBcVTAwMDFG
NjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxVMDAwMUY2NEUgXFUwMDAxRjZB
MyBcVTAwMDFGNkI0LVxVMDAwMUY2QjZdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldK
IHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUy
NzBEIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EgXFUwMDAxRjND
QiBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYt
XFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxV
MDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU3NSBcVTAw
MDFGNTkwIFxVMDAwMUY1OTUgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAx
RjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2
QzAgXFUwMDAxRjkxOF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMK
KworI2Vsc2UKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNzY0IFxVMDAwMUY0NjYtXFUwMDAx
RjQ2OSBcVTAwMDFGNDhCXTsKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI3MEEtXHUy
NzBDIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcgXFUwMDAxRjND
QSBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYt
XFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxV
MDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU5NiBcVTAw
MDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAx
RjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJp
Y2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUwMDAx
RjNGRl07CiskZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07Cisk
QUxQbHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOworJEFMY20gPSAkQUxQbHVzICRDTSo7Cisk
QkFjbSA9ICRCQSAkQ00qOworJEJCY20gPSAkQkIgJENNKjsKKyRCMmNtID0gJEIyICRDTSo7Cisk
Q0xjbSA9ICRDTCAkQ00qOworJENQY20gPSAkQ1AgJENNKjsKKyRFWGNtID0gJEVYICRDTSo7Cisk
R0xjbSA9ICRHTCAkQ00qOworJEhMY20gPSAkSEwgJENNKjsKKyRIWWNtID0gJEhZICRDTSo7Cisk
SDJjbSA9ICRIMiAkQ00qOworJEgzY20gPSAkSDMgJENNKjsKKyRJRGNtID0gJElEICRDTSo7Cisk
SU5jbSA9ICRJTiAkQ00qOworJElTY20gPSAkSVMgJENNKjsKKyRKTGNtID0gJEpMICRDTSo7Cisk
SlZjbSA9ICRKViAkQ00qOworJEpUY20gPSAkSlQgJENNKjsKKyROU2NtID0gJE5TICRDTSo7Cisk
TlVjbSA9ICROVSAkQ00qOworJE9QY20gPSAkT1AgJENNKjsKKyRQT2NtID0gJFBPICRDTSo7Cisk
UFJjbSA9ICRQUiAkQ00qOworJFFVY20gPSAkUVUgJENNKjsKKyRSSWNtID0gJFJJICRDTSo7Cisk
U1ljbSA9ICRTWSAkQ00qOworJFdKY20gPSAkV0ogJENNKjsKKworISFmb3J3YXJkOworJENBTl9D
TSA9IFteJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRDQU5UX0NNID0gWyRTUCAkQksg
JENSICRMRiAkTkwgJFpXICRDTV07CiskQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYgJE5M
ICRaVyAkU1BdOworJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRTWSAkV0og
JEdMICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsKKyRBTF9GT0xMT1cgPSBb
JEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOworJExCNEJyZWFrcyA9IFskQksgJENSICRM
RiAkTkxdOworJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5MXTsKKyRMQjhCcmVha3Mg
PSBbJExCNEJyZWFrcyAkWlddOworJExCOE5vbkJyZWFrcyA9IFtbJExCNE5vbkJyZWFrc10gLSBb
JFpXXV07CiskTEIxOE5vbkJyZWFrcyA9IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOworJExCMThC
cmVha3MgPSBbJExCOEJyZWFrcyAkU1BdOworJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVh
a3MgLSAkQ0JdOworJEFMUGx1cyAkQ00rOworJEJBICRDTSs7CiskQkIgJENNKzsKKyRCMiAkQ00r
OworJENMICRDTSs7CiskQ1AgJENNKzsKKyRFWCAkQ00rOworJEdMICRDTSs7CiskSEwgJENNKzsK
KyRIWSAkQ00rOworJEgyICRDTSs7CiskSDMgJENNKzsKKyRJRCAkQ00rOworJElOICRDTSs7Cisk
SVMgJENNKzsKKyRKTCAkQ00rOworJEpWICRDTSs7CiskSlQgJENNKzsKKyROUyAkQ00rOworJE5V
ICRDTSs7CiskT1AgJENNKzsKKyRQTyAkQ00rOworJFBSICRDTSs7CiskUVUgJENNKzsKKyRSSSAk
Q00rOworJFNZICRDTSs7CiskV0ogJENNKzsKKyRDUiAkTEYgezEwMH07CiskTEI0Tm9uQnJlYWtz
PyAkTEI0QnJlYWtzIHsxMDB9OworJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEwMH07CiskQ00r
ICRMQjRCcmVha3MgezEwMH07CiskTEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsKKyRDQU5fQ00gJENN
KiBbJFNQICRaV107CiskQ00rIFskU1AgJFpXXTsKKyRFbW9qaUZvclNlcXMgJEVtb2ppVmFyPyAk
RW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7CiskQ0FOX0NNICRDTSs7CiskQ00rOworJENB
Tl9DTSAkQ00qICRXSmNtOworJExCOE5vbkJyZWFrcyAkV0pjbTsKKyRDTSsgJFdKY207CiskV0pj
bSAkQ0FOVF9DTTsKKyRXSmNtICRDQU5fQ00gJENNKjsKKyRHTGNtICRDQU5fQ00gJENNKjsKKyRH
TGNtICRDQU5UX0NNOworW1skTEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSogJEdM
Y207CiskQ00rIEdMY207CiskTEI4Tm9uQnJlYWtzICRDTDsKKyRDQU5fQ00gJENNKiAkQ0w7Cisk
Q00rICRDTDsKKyRMQjhOb25CcmVha3MgJENQOworJENBTl9DTSAkQ00qICRDUDsKKyRDTSsgJENQ
OworJExCOE5vbkJyZWFrcyAkRVg7CiskQ0FOX0NNICRDTSogJEVYOworJENNKyAkRVg7CiskTEI4
Tm9uQnJlYWtzICRJUzsKKyRDQU5fQ00gJENNKiAkSVM7CiskQ00rICRJUzsKKyRMQjhOb25CcmVh
a3MgJFNZOworJENBTl9DTSAkQ00qICRTWTsKKyRDTSsgJFNZOworJE9QY20gJFNQKiAkQ0FOX0NN
ICRDTSo7CiskT1BjbSAkU1AqICRDQU5UX0NNOworJE9QY20gJFNQKyAkQ00rICRBTF9GT0xMT1c/
OworJFFVY20gJFNQKiAkT1BjbTsKKygkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOworJEIyY20g
JFNQKiAkQjJjbTsKKyRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207CiskQ00rICRRVWNtOworJFFV
Y20gLj87CiskUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00qOworJExCMjBOb25CcmVha3MgJENNKiAo
JEJBY20gfCAkSFljbSB8ICROU2NtKTsgCiskQkJjbSBbXiRDQl07CiskQkJjbSAkTEIyME5vbkJy
ZWFrcyAkQ00qOworJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87CiskU1ljbSAkSExjbTsK
KygkQUxjbSB8ICRITGNtKSAkSU5jbTsKKyRDTSsgJElOY207CiskRVhjbSAkSU5jbTsKKyRJRGNt
ICRJTmNtOworJElOY20gJElOY207CiskTlVjbSAkSU5jbTsKKyRJRGNtICRQT2NtOworJEFMY20g
JE5VY207CiskSExjbSAkTlVjbTsKKyRDTSsgJE5VY207CiskTlVjbSAkQUxjbTsKKyROVWNtICRI
TGNtOworJFBSY20gJElEY207CiskUFJjbSAoJEFMY20gfCAkSExjbSk7CiskUE9jbSAoJEFMY20g
fCAkSExjbSk7CisoJFBSY20gfCAkUE9jbSk/ICgkT1BjbSB8ICRIWWNtKT8gJE5VY20gKCROVWNt
IHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRDUGNtKT8gKCRQUmNtIHwgJFBPY20pPzsKKyRK
TGNtICgkSkxjbSB8ICRKVmNtIHwgJEgyY20gfCAkSDNjbSk7CisoJEpWY20gfCAkSDJjbSkgKCRK
VmNtIHwgJEpUY20pOworKCRKVGNtIHwgJEgzY20pICRKVGNtOworKCRKTGNtIHwgJEpWY20gfCAk
SlRjbSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOworKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRI
MmNtIHwgJEgzY20pICRQT2NtOworJFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNt
IHwgJEgzY20pOworKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNtKTsKKyRDTSsgKCRBTGNt
IHwgJEhMY20pOworJElTY20gKCRBTGNtIHwgJEhMY20pOworKCRBTGNtIHwgJEhMY20gfCAkTlVj
bSkgJE9QY207CiskQ00rICRPUGNtOworJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7CisK
KyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRSSWNtICRSSWNtOworCisjZW5k
aWYKKworJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7CisKKyEhcmV2ZXJzZTsK
KyRDTSsgJEFMUGx1czsKKyRDTSsgJEJBOworJENNKyAkQkI7CiskQ00rICRCMjsKKyRDTSsgJENM
OworJENNKyAkQ1A7CiskQ00rICRFWDsKKyRDTSsgJEdMOworJENNKyAkSEw7CiskQ00rICRIWTsK
KyRDTSsgJEgyOworJENNKyAkSDM7CiskQ00rICRJRDsKKyRDTSsgJElOOworJENNKyAkSVM7Cisk
Q00rICRKTDsKKyRDTSsgJEpWOworJENNKyAkSlQ7CiskQ00rICROUzsKKyRDTSsgJE5VOworJENN
KyAkT1A7CiskQ00rICRQTzsKKyRDTSsgJFBSOworJENNKyAkUVU7CisKKyNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKKworICAgICRDTSsgJFJJOworCisjZW5kaWYKKworJENNKyAkU1k7Cisk
Q00rICRXSjsKKyRDTSs7CiskQUxfRk9MTE9XICRDTSsgLyAoWyRCSyAkQ1IgJExGICROTCAkWlcg
e2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14kT1AgJENNICRTUF0gfCBbJEFM
IHtlb2Z9XSkpOworWyRQUl0gLyAkQ00rIFskQksgJENSICRMRiAkTkwgJFpXICRTUCB7ZW9mfV07
CiskTEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtzLSRDTV07CiskTEI0QnJlYWtzICRDTSsgJENBTl9D
TTsKKyRMRiAkQ1I7CitbJFNQICRaV10gWyRMQjROb25CcmVha3MtJENNXTsKK1skU1AgJFpXXSAk
Q00rICRDQU5fQ007CiskRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2ppVmFyPyAk
RW1vamlGb3JTZXFzOworJENNKyAkQ0FOX0NNOworJENNKiAkV0ogJENNKiAkQ0FOX0NNOworJENN
KiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsKKyRDQU5UX0NNICRDTSogJFdKOworJENNKiAkQ0FO
X0NNICRDTSogJFdKOworJENNKiAkR0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEg
JEhZXV07CiskQ0FOVF9DTSAkQ00qICRHTDsKKyRDTSogJENBTl9DTSAkQ00qICRHTDsKKyRDTCAk
Q00rICRDQU5fQ007CiskQ1AgJENNKyAkQ0FOX0NNOworJEVYICRDTSsgJENBTl9DTTsKKyRJUyAk
Q00rICRDQU5fQ007CiskU1kgJENNKyAkQ0FOX0NNOworJENMIFskTEI4Tm9uQnJlYWtzLSRDTV07
CiskQ1AgWyRMQjhOb25CcmVha3MtJENNXTsKKyRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOworJElT
IFskTEI4Tm9uQnJlYWtzLSRDTV07CiskU1kgWyRMQjhOb25CcmVha3MtJENNXTsKK1skQ0wgJENQ
ICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7IAorJENNKiAkQ0FOX0NNICRTUCogJENN
KiAkT1A7CiskQ0FOVF9DTSAkU1AqICRDTSogJE9QOworJEFMX0ZPTExPVz8gJENNKyAkU1AgJFNQ
KiAkQ00qICRPUDsKKyRBTF9GT0xMT1dfTk9DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskQ00qICRB
TF9GT0xMT1dfQ00gJENNKyAkU1ArICRDTSogJE9QOworJFNZICRDTSAkU1ArICRPUDsKKyRDTSog
JE9QICRTUCogJENNKiAkUVU7CiskQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7CiskQ00q
ICRCMiAkU1AqICRDTSogJEIyOworJENNKiAkUVUgJENNKiAkQ0FOX0NNOworJENNKiAkUVUgJExC
MThOb25CcmVha3M7CiskQ00qICRDQU5fQ00gJENNKiAkUVU7CiskQ0FOVF9DTSAkQ00qICRRVTsK
KyRDTSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBbJExCMjBOb25CcmVha3MtJENNXTsKKyRDTSog
WyRMQjIwTm9uQnJlYWtzLSRDTV0gJENNKiAkQkI7CitbXiRDQl0gJENNKiAkQkI7CitbXiRDQl0g
JENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsKKyRDTSogJEhMICRDTSogJFNZOworJENNKiAkSU4g
JENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICRJTiAkQ00qICRFWDsKKyRDTSogJElOICRDTSog
JElEOworJENNKiAkSU4gJENNKiAkSU47CiskQ00qICRJTiAkQ00qICROVTsKKyRDTSogJFBPICRD
TSogJElEOworJENNKiAkTlUgJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICgkQUxQbHVzIHwg
JEhMKSAkQ00qICROVTsKKyRDTSogJElEICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRITCkg
JENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQTzsKKygkQ00qICgkUFIgfCAk
UE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElTIHwgJFNZKSkqICRDTSog
JE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykpPzsKKyRDTSogKCRIMyB8
ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7CiskQ00qICgkSlQgfCAkSlYpICRDTSogKCRIMiB8
ICRKVik7CiskQ00qICRKVCAkQ00qICgkSDMgfCAkSlQpOworJENNKiAkSU4gJENNKiAoJEgzIHwg
JEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsKKyRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8
ICRKViB8ICRKTCk7CiskQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSogJFBS
OworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICgkQUxQ
bHVzIHwgJEhMKSAkQ00qICRJUzsKKyRDTSogJE9QICRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUp
OworJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7CisKKyNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKKworICAgICRDTSogJFJJICRDTSogJFJJOworCisjZW5kaWYKKworJEVt
b2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7CisKKyEhc2FmZV9mb3J3YXJkOworWyRD
TSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRTUCAkZGljdGlvbmFyeV0rIFteJENN
ICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJGRpY3Rpb25hcnldOworJGRpY3Rpb25h
cnkgJGRpY3Rpb25hcnk7CisgICAgCishIXNhZmVfcmV2ZXJzZTsKKyRDTSsgW14kQ00gJEJLICRD
UiAkTEYgJE5MICRaVyAkU1BdOworJENNKyAkU1AgLyAuOworJFNQKyAkQ00qICRPUDsKKyRTUCsg
JENNKiAkUVU7CiskU1ArICRDTSogKCRDTCB8ICRDUCk7CiskU1ArICRDTSogJEIyOworJENNKiAo
JEhZIHwgJEJBKSAkQ00qICRITDsKKygkQ00qICgkSVMgfCAkU1kpKSsgJENNKiAkTlU7CisoJENM
IHwgJENQKSAkQ00qICgkTlUgfCAkSVMgfCAkU1kpOworJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JQcm9sb2d1ZS50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzI4ODM1NTYzMWU0Mzc5
MmQzZjNjOTIzMzM3Mjc2NmFjZGVjMWI0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApAQCAt
MCwwICsxLDM2IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCishIWNo
YWluOworISFMQkNNTm9DaGFpbjsKKyEhbG9va0FoZWFkSGFyZEJyZWFrOworCisjaWYgSEFWRV9F
WFRSQV9JQ1VfTkFNRURfU0VUUworCisgICAgJENKID0gWzpMaW5lQnJlYWs9Q29uZGl0aW9uYWxf
SmFwYW5lc2VfU3RhcnRlcjpdOworCisjZWxzZQorCisgICAgJENKID0gW1x1MzA0MVx1MzA0M1x1
MzA0NVx1MzA0N1x1MzA0OVx1MzA2M1x1MzA4M1x1MzA4NVx1MzA4N1x1MzA4RVx1MzA5NVx1MzA5
Nlx1MzBBMVx1MzBBM1x1MzBBNVx1MzBBN1x1MzBBOVx1MzBDM1x1MzBFM1x1MzBFNVx1MzBFN1x1
MzBFRVx1MzBGNVx1MzBGNlx1MzBGQ1x1MzFGMFx1MzFGMVx1MzFGMlx1MzFGM1x1MzFGNFx1MzFG
NVx1MzFGNlx1MzFGN1x1MzFGOFx1MzFGOVx1MzFGQVx1MzFGQlx1MzFGQ1x1MzFGRFx1MzFGRVx1
MzFGRlx1RkY2N1x1RkY2OFx1RkY2OVx1RkY2QVx1RkY2Qlx1RkY2Q1x1RkY2RFx1RkY2RVx1RkY2
Rlx1RkY3MF07CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0IGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjMwYmNlNWVlOWU2Nzk2OWJjODZiMDg3NTA2NjE1NGY3ZmMzOTMxNjEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOwor
JElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtc
dTMwMUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFsk
Q0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksu
dHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWUwM2U1MTFlYjk4NGZjYWE2NDg1NDRhY2Nl
ZWY2ZTc4MTU4ODAxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0CkBAIC0wLDAgKzEs
MzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSBb
XHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSBbXHUwMDIxXHUwMDNGXHVGRjAxXHVGRjFGXTsKKyRJ
RF9TVUIgPSAnJzsKKyRJTl9TVUIgPSBbXHUyMDI1XHUyMDI2XTsKKyRJU19TVUIgPSBbXHUwMDNB
XHUwMDNCXTsKKyROU19TVUIgPSBbXHUyMDNDXHUyMDQ3XHUyMDQ4XHUyMDQ5XHUzMDA1XHUzMDFD
XHUzMDNCXHUzMDlEXHUzMDlFXHUzMEEwXHUzMEZCXHUzMEZEXHUzMEZFXHVGRjFBXHVGRjFCXHVG
RjY1XTsKKyRQT19TVUIgPSBbXHUwMDI1XHUwMEEyXHUwMEIwXHUyMDMwXHUyMDMyXHUyMDMzXHUy
MTAzXHVGRjA1XHVGRkUwXTsKKyRQUl9TVUIgPSBbXHUwMDI0XHUwMEEzXHUwMEE1XHUyMEFDXHUy
MTE2XHVGRjA0XHVGRkUxXHVGRkU1XTsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVYX1NVQiAk
SU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOworJE5TX0FERCA9ICcnOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
ZjhlOGUxYjViNjViYzYzNDNiNTAxMmQ4Zjk5ZDg0NGE0MDRhZGRmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9
ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9
IFtcdTMwMDVcdTMwM0JcdTMwOURcdTMwOUVcdTMwRkRcdTMwRkVdOworJFBPX1NVQiA9ICcnOwor
JFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsKKyROU19BREQg
PSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVh
YjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJiNjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b25DSksudHh0CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
IyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJ
Tl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsK
KyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMGJjZTVlZTllNjc5
NjliYzg2YjA4NzUwNjYxNTRmN2ZjMzkzMTYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
dHh0CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAn
JzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUzMDFDXHUzMEEw
XTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIg
JE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQ5NDU4MmNjZTlmZDRkMDdkOTg3ZTM5OWVjOTc1
MjI3M2I0ZGJlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApAQCAtMCwwICsx
LDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0g
Jyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VC
ID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURf
QUREID0gWyRDSl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZlYWI2OTQ5ODZlZjgyZDlhYjk1ZmIxOWI0MzUyYjY2
MmQyNjNkYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dApAQCAtMCwwICsxLDMzIEBA
CisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7Cisk
RVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7
CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0g
Jyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZlYWI2OTQ5ODZlZjgyZDlhYjk1ZmIxOWI0MzUyYjY2
MmQyNjNkYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDMz
IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7
CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0g
Jyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQURE
ID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2NtZW1vcnkuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9nZW5icmsvY21lbW9yeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxODJiNWFhN2QxNjY5MzAw
NjlkNTI0MjNjN2EzNzNlNzJjZWI1MjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2NtZW1vcnkuaApAQCAtMCwwICsxLDYwMCBAQAor
LyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDE1
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoK
KyogRmlsZSBDTUVNT1JZLkgKKyoKKyogIENvbnRhaW5zIHN0ZGxpYi5oL3N0cmluZy5oIG1lbW9y
eSBmdW5jdGlvbnMKKyoKKyogQGF1dGhvciAgICAgICBCZXJ0cmFuZCBBLiBEYW1pYmEKKyoKKyog
TW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVz
Y3JpcHRpb24KKyogICA2LzIwLzk4ICAgICBCZXJ0cmFuZCAgICBDcmVhdGVkLgorKiAgMDUvMDMv
OTkgICAgIHN0ZXBoZW4gICAgIENoYW5nZWQgZnJvbSBmdW5jdGlvbnMgdG8gbWFjcm9zLgorKgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIENNRU1PUllfSAorI2RlZmluZSBD
TUVNT1JZX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKyNpbmNsdWRlIDxzdGRk
ZWYuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRl
ci5oIgorCisjaWYgVV9ERUJVRyAmJiBkZWZpbmVkKFVQUlZfTUFMTE9DX0NPVU5UKQorI2luY2x1
ZGUgPHN0ZGlvLmg+CisjZW5kaWYKKworI2lmIFVfREVCVUcKKworLyoKKyAqIFRoZSBDKysgc3Rh
bmRhcmQgcmVxdWlyZXMgdGhhdCB0aGUgc291cmNlIHBvaW50ZXIgZm9yIG1lbWNweSgpICYgbWVt
bW92ZSgpCisgKiBpcyB2YWxpZCwgbm90IE5VTEwsIGFuZCBub3QgYXQgdGhlIGVuZCBvZiBhbiBh
bGxvY2F0ZWQgbWVtb3J5IGJsb2NrLgorICogSW4gZGVidWcgbW9kZSwgd2UgcmVhZCBvbmUgYnl0
ZSBmcm9tIHRoZSBzb3VyY2UgcG9pbnQgdG8gdmVyaWZ5IHRoYXQgaXQncworICogYSB2YWxpZCwg
cmVhZGFibGUgcG9pbnRlci4KKyAqLworCitVX0NBUEkgdm9pZCB1cHJ2X2NoZWNrVmFsaWRNZW1v
cnkoY29uc3Qgdm9pZCAqcCwgc2l6ZV90IG4pOworCisjZGVmaW5lIHVwcnZfbWVtY3B5KGRzdCwg
c3JjLCBzaXplKSAoIFwKKyAgICB1cHJ2X2NoZWNrVmFsaWRNZW1vcnkoc3JjLCAxKSwgXAorICAg
IFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBtZW1jcHkoZHN0LCBzcmMsIHNpemUpKQorI2RlZmlu
ZSB1cHJ2X21lbW1vdmUoZHN0LCBzcmMsIHNpemUpICggXAorICAgIHVwcnZfY2hlY2tWYWxpZE1l
bW9yeShzcmMsIDEpLCBcCisgICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIG1lbW1vdmUoZHN0
LCBzcmMsIHNpemUpKQorCisjZWxzZQorCisjZGVmaW5lIHVwcnZfbWVtY3B5KGRzdCwgc3JjLCBz
aXplKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0UgbWVtY3B5KGRzdCwgc3JjLCBzaXplKQorI2Rl
ZmluZSB1cHJ2X21lbW1vdmUoZHN0LCBzcmMsIHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFD
RSBtZW1tb3ZlKGRzdCwgc3JjLCBzaXplKQorCisjZW5kaWYgIC8qIFVfREVCVUcgKi8KKworLyoq
CisgKiBcZGVmIFVQUlZfTEVOR1RIT0YKKyAqIENvbnZlbmllbmNlIG1hY3JvIHRvIGRldGVybWlu
ZSB0aGUgbGVuZ3RoIG9mIGEgZml4ZWQgYXJyYXkgYXQgY29tcGlsZS10aW1lLgorICogQHBhcmFt
IGFycmF5IEEgZml4ZWQgbGVuZ3RoIGFycmF5CisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhl
IGFycmF5LCBpbiBlbGVtZW50cworICogQGludGVybmFsCisgKi8KKyNkZWZpbmUgVVBSVl9MRU5H
VEhPRihhcnJheSkgKGludDMyX3QpKHNpemVvZihhcnJheSkvc2l6ZW9mKChhcnJheSlbMF0pKQor
I2RlZmluZSB1cHJ2X21lbXNldChidWZmZXIsIG1hcmssIHNpemUpIFVfU1RBTkRBUkRfQ1BQX05B
TUVTUEFDRSBtZW1zZXQoYnVmZmVyLCBtYXJrLCBzaXplKQorI2RlZmluZSB1cHJ2X21lbWNtcChi
dWZmZXIxLCBidWZmZXIyLCBzaXplKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0UgbWVtY21wKGJ1
ZmZlcjEsIGJ1ZmZlcjIsc2l6ZSkKKworVV9DQVBJIHZvaWQgKiBVX0VYUE9SVDIKK3VwcnZfbWFs
bG9jKHNpemVfdCBzKSBVX01BTExPQ19BVFRSIFVfQUxMT0NfU0laRV9BVFRSKDEpOworCitVX0NB
UEkgdm9pZCAqIFVfRVhQT1JUMgordXBydl9yZWFsbG9jKHZvaWQgKm1lbSwgc2l6ZV90IHNpemUp
IFVfQUxMT0NfU0laRV9BVFRSKDIpOworCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VwcnZfZnJl
ZSh2b2lkICptZW0pOworCitVX0NBUEkgdm9pZCAqIFVfRVhQT1JUMgordXBydl9jYWxsb2Moc2l6
ZV90IG51bSwgc2l6ZV90IHNpemUpIFVfTUFMTE9DX0FUVFIgVV9BTExPQ19TSVpFX0FUVFIyKDEs
Mik7CisKKy8qKgorICogVGhpcyBzaG91bGQgYWxpZ24gdGhlIG1lbW9yeSBwcm9wZXJseSBvbiBh
bnkgbWFjaGluZS4KKyAqIFRoaXMgaXMgdmVyeSB1c2VmdWwgZm9yIHRoZSBzYWZlQ2xvbmUgZnVu
Y3Rpb25zLgorICovCit0eXBlZGVmIHVuaW9uIHsKKyAgICBsb25nICAgIHQxOworICAgIGRvdWJs
ZSAgdDI7CisgICAgdm9pZCAgICp0MzsKK30gVUFsaWduZWRNZW1vcnk7CisKKy8qKgorICogR2V0
IHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXRzIG9mIGEgcG9pbnRlciAoYSBtZW1vcnkgYWRkcmVz
cykuCisgKiBGb3IgZXhhbXBsZSwgd2l0aCBhIG1hc2sgb2YgMywgdGhlIG1hY3JvIGdldHMgdGhl
IDIgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cywKKyAqIHdoaWNoIHdpbGwgYmUgMCBpZiB0aGUgcG9p
bnRlciBpcyAzMi1iaXQgKDQtYnl0ZSkgYWxpZ25lZC4KKyAqCisgKiBwdHJkaWZmX3QgaXMgdGhl
IG1vc3QgYXBwcm9wcmlhdGUgaW50ZWdlciB0eXBlIHRvIGNhc3QgdG8uCisgKiBzaXplX3Qgc2hv
dWxkIHdvcmsgdG9vLCBzaW5jZSBvbiBtb3N0IChvciBhbGw/KSBwbGF0Zm9ybXMgaXQgaGFzIHRo
ZSBzYW1lCisgKiB3aWR0aCBhcyBwdHJkaWZmX3QuCisgKi8KKyNkZWZpbmUgVV9QT0lOVEVSX01B
U0tfTFNCKHB0ciwgbWFzaykgKCgocHRyZGlmZl90KShjaGFyICopKHB0cikpICYgKG1hc2spKQor
CisvKioKKyAqIEdldCB0aGUgYW1vdW50IG9mIGJ5dGVzIHRoYXQgYSBwb2ludGVyIGlzIG9mZiBi
eSBmcm9tCisgKiB0aGUgcHJldmlvdXMgVUFsaWduZWRNZW1vcnktYWxpZ25lZCBwb2ludGVyLgor
ICovCisjZGVmaW5lIFVfQUxJR05NRU5UX09GRlNFVChwdHIpIFVfUE9JTlRFUl9NQVNLX0xTQihw
dHIsIHNpemVvZihVQWxpZ25lZE1lbW9yeSkgLSAxKQorCisvKioKKyAqIEdldCB0aGUgYW1vdW50
IG9mIGJ5dGVzIHRvIGFkZCB0byBhIHBvaW50ZXIKKyAqIGluIG9yZGVyIHRvIGdldCB0aGUgbmV4
dCBVQWxpZ25lZE1lbW9yeS1hbGlnbmVkIGFkZHJlc3MuCisgKi8KKyNkZWZpbmUgVV9BTElHTk1F
TlRfT0ZGU0VUX1VQKHB0cikgKHNpemVvZihVQWxpZ25lZE1lbW9yeSkgLSBVX0FMSUdOTUVOVF9P
RkZTRVQocHRyKSkKKworLyoqCisgICogIEhlYXAgY2xlYW4gdXAgZnVuY3Rpb24sIGNhbGxlZCBm
cm9tIHVfY2xlYW51cCgpCisgICogICAgQ2xlYXJzIGFueSB1c2VyIGhlYXAgZnVuY3Rpb25zIGZy
b20gdV9zZXRNZW1vcnlGdW5jdGlvbnMoKQorICAqICAgIERvZXMgTk9UIGRlYWxsb2NhdGUgYW55
IHJlbWFpbmluZyBhbGxvY2F0ZWQgbWVtb3J5LgorICAqLworVV9DRlVOQyBVQm9vbCAKK2NtZW1v
cnlfY2xlYW51cCh2b2lkKTsKKworLyoqCisgKiBBIGZ1bmN0aW9uIGNhbGxlZCBieSA8VFQ+dWhh
c2hfcmVtb3ZlPC9UVD4sCisgKiA8VFQ+dWhhc2hfY2xvc2U8L1RUPiwgb3IgPFRUPnVoYXNoX3B1
dDwvVFQ+IHRvIGRlbGV0ZQorICogYW4gZXhpc3Rpbmcga2V5IG9yIHZhbHVlLgorICogQHBhcmFt
IG9iaiBBIGtleSBvciB2YWx1ZSBzdG9yZWQgaW4gYSBoYXNodGFibGUKKyAqIEBzZWUgdXBydl9k
ZWxldGVVT2JqZWN0CisgKi8KK3R5cGVkZWYgdm9pZCBVX0NBTExDT05WIFVPYmplY3REZWxldGVy
KHZvaWQqIG9iaik7CisKKy8qKgorICogRGVsZXRlciBmb3IgVU9iamVjdCBpbnN0YW5jZXMuCisg
KiBXb3JrcyBmb3IgYWxsIHN1YmNsYXNzZXMgb2YgVU9iamVjdCBiZWNhdXNlIGl0IGhhcyBhIHZp
cnR1YWwgZGVzdHJ1Y3Rvci4KKyAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1cHJ2X2RlbGV0
ZVVPYmplY3Qodm9pZCAqb2JqKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCisKK1VfTkFNRVNQQUNF
X0JFR0lOCisKKy8qKgorICogIlNtYXJ0IHBvaW50ZXIiIGNsYXNzLCBkZWxldGVzIG1lbW9yeSB2
aWEgdXBydl9mcmVlKCkuCisgKiBGb3IgbW9zdCBtZXRob2RzIHNlZSB0aGUgTG9jYWxQb2ludGVy
QmFzZSBiYXNlIGNsYXNzLgorICogQWRkcyBvcGVyYXRvcltdIGZvciBhcnJheSBpdGVtIGFjY2Vz
cy4KKyAqCisgKiBAc2VlIExvY2FsUG9pbnRlckJhc2UKKyAqLwordGVtcGxhdGU8dHlwZW5hbWUg
VD4KK2NsYXNzIExvY2FsTWVtb3J5IDogcHVibGljIExvY2FsUG9pbnRlckJhc2U8VD4geworcHVi
bGljOgorICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIHRha2VzIG93bmVyc2hpcC4KKyAgICAg
KiBAcGFyYW0gcCBzaW1wbGUgcG9pbnRlciB0byBhbiBhcnJheSBvZiBUIGl0ZW1zIHRoYXQgaXMg
YWRvcHRlZAorICAgICAqLworICAgIGV4cGxpY2l0IExvY2FsTWVtb3J5KFQgKnA9TlVMTCkgOiBM
b2NhbFBvaW50ZXJCYXNlPFQ+KHApIHt9CisgICAgLyoqCisgICAgICogRGVzdHJ1Y3RvciBkZWxl
dGVzIHRoZSBtZW1vcnkgaXQgb3ducy4KKyAgICAgKi8KKyAgICB+TG9jYWxNZW1vcnkoKSB7Cisg
ICAgICAgIHVwcnZfZnJlZShMb2NhbFBvaW50ZXJCYXNlPFQ+OjpwdHIpOworICAgIH0KKyAgICAv
KioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSBpdCBvd25zLAorICAgICAqIGFuZCBhZG9wdHMg
KHRha2VzIG93bmVyc2hpcCBvZikgdGhlIG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHAg
c2ltcGxlIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgVCBpdGVtcyB0aGF0IGlzIGFkb3B0ZWQKKyAg
ICAgKi8KKyAgICB2b2lkIGFkb3B0SW5zdGVhZChUICpwKSB7CisgICAgICAgIHVwcnZfZnJlZShM
b2NhbFBvaW50ZXJCYXNlPFQ+OjpwdHIpOworICAgICAgICBMb2NhbFBvaW50ZXJCYXNlPFQ+Ojpw
dHI9cDsKKyAgICB9CisgICAgLyoqCisgICAgICogRGVsZXRlcyB0aGUgYXJyYXkgaXQgb3ducywg
YWxsb2NhdGVzIGEgbmV3IG9uZSBhbmQgcmVzZXQgaXRzIGJ5dGVzIHRvIDAuCisgICAgICogUmV0
dXJucyB0aGUgbmV3IGFycmF5IHBvaW50ZXIuCisgICAgICogSWYgdGhlIGFsbG9jYXRpb24gZmFp
bHMsIHRoZW4gdGhlIGN1cnJlbnQgYXJyYXkgaXMgdW5jaGFuZ2VkIGFuZAorICAgICAqIHRoaXMg
bWV0aG9kIHJldHVybnMgTlVMTC4KKyAgICAgKiBAcGFyYW0gbmV3Q2FwYWNpdHkgbXVzdCBiZSA+
MAorICAgICAqIEByZXR1cm4gdGhlIGFsbG9jYXRlZCBhcnJheSBwb2ludGVyLCBvciBOVUxMIGlm
IHRoZSBhbGxvY2F0aW9uIGZhaWxlZAorICAgICAqLworICAgIGlubGluZSBUICphbGxvY2F0ZUlu
c3RlYWRBbmRSZXNldChpbnQzMl90IG5ld0NhcGFjaXR5PTEpOworICAgIC8qKgorICAgICAqIERl
bGV0ZXMgdGhlIGFycmF5IGl0IG93bnMgYW5kIGFsbG9jYXRlcyBhIG5ldyBvbmUsIGNvcHlpbmcg
bGVuZ3RoIFQgaXRlbXMuCisgICAgICogUmV0dXJucyB0aGUgbmV3IGFycmF5IHBvaW50ZXIuCisg
ICAgICogSWYgdGhlIGFsbG9jYXRpb24gZmFpbHMsIHRoZW4gdGhlIGN1cnJlbnQgYXJyYXkgaXMg
dW5jaGFuZ2VkIGFuZAorICAgICAqIHRoaXMgbWV0aG9kIHJldHVybnMgTlVMTC4KKyAgICAgKiBA
cGFyYW0gbmV3Q2FwYWNpdHkgbXVzdCBiZSA+MAorICAgICAqIEBwYXJhbSBsZW5ndGggbnVtYmVy
IG9mIFQgaXRlbXMgdG8gYmUgY29waWVkIGZyb20gdGhlIG9sZCBhcnJheSB0byB0aGUgbmV3IG9u
ZTsKKyAgICAgKiAgICAgICAgICAgICAgIG11c3QgYmUgbm8gbW9yZSB0aGFuIHRoZSBjYXBhY2l0
eSBvZiB0aGUgb2xkIGFycmF5LAorICAgICAqICAgICAgICAgICAgICAgd2hpY2ggdGhlIGNhbGxl
ciBtdXN0IHRyYWNrIGJlY2F1c2UgdGhlIExvY2FsTWVtb3J5IGRvZXMgbm90IHRyYWNrIGl0Cisg
ICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIGFycmF5IHBvaW50ZXIsIG9yIE5VTEwgaWYgdGhl
IGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIFQgKmFsbG9jYXRlSW5zdGVh
ZEFuZENvcHkoaW50MzJfdCBuZXdDYXBhY2l0eT0xLCBpbnQzMl90IGxlbmd0aD0wKTsKKyAgICAv
KioKKyAgICAgKiBBcnJheSBpdGVtIGFjY2VzcyAod3JpdGFibGUpLgorICAgICAqIE5vIGluZGV4
IGJvdW5kcyBjaGVjay4KKyAgICAgKiBAcGFyYW0gaSBhcnJheSBpbmRleAorICAgICAqIEByZXR1
cm4gcmVmZXJlbmNlIHRvIHRoZSBhcnJheSBpdGVtCisgICAgICovCisgICAgVCAmb3BlcmF0b3Jb
XShwdHJkaWZmX3QgaSkgY29uc3QgeyByZXR1cm4gTG9jYWxQb2ludGVyQmFzZTxUPjo6cHRyW2ld
OyB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIFQgKkxvY2FsTWVtb3J5PFQ+
OjphbGxvY2F0ZUluc3RlYWRBbmRSZXNldChpbnQzMl90IG5ld0NhcGFjaXR5KSB7CisgICAgaWYo
bmV3Q2FwYWNpdHk+MCkgeworICAgICAgICBUICpwPShUICopdXBydl9tYWxsb2MobmV3Q2FwYWNp
dHkqc2l6ZW9mKFQpKTsKKyAgICAgICAgaWYocCE9TlVMTCkgeworICAgICAgICAgICAgdXBydl9t
ZW1zZXQocCwgMCwgbmV3Q2FwYWNpdHkqc2l6ZW9mKFQpKTsKKyAgICAgICAgICAgIHVwcnZfZnJl
ZShMb2NhbFBvaW50ZXJCYXNlPFQ+OjpwdHIpOworICAgICAgICAgICAgTG9jYWxQb2ludGVyQmFz
ZTxUPjo6cHRyPXA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHA7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
CitpbmxpbmUgVCAqTG9jYWxNZW1vcnk8VD46OmFsbG9jYXRlSW5zdGVhZEFuZENvcHkoaW50MzJf
dCBuZXdDYXBhY2l0eSwgaW50MzJfdCBsZW5ndGgpIHsKKyAgICBpZihuZXdDYXBhY2l0eT4wKSB7
CisgICAgICAgIFQgKnA9KFQgKil1cHJ2X21hbGxvYyhuZXdDYXBhY2l0eSpzaXplb2YoVCkpOwor
ICAgICAgICBpZihwIT1OVUxMKSB7CisgICAgICAgICAgICBpZihsZW5ndGg+MCkgeworICAgICAg
ICAgICAgICAgIGlmKGxlbmd0aD5uZXdDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBs
ZW5ndGg9bmV3Q2FwYWNpdHk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHVw
cnZfbWVtY3B5KHAsIExvY2FsUG9pbnRlckJhc2U8VD46OnB0ciwgbGVuZ3RoKnNpemVvZihUKSk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICB1cHJ2X2ZyZWUoTG9jYWxQb2ludGVyQmFzZTxU
Pjo6cHRyKTsKKyAgICAgICAgICAgIExvY2FsUG9pbnRlckJhc2U8VD46OnB0cj1wOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiBwOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxM
OworICAgIH0KK30KKworLyoqCisgKiBTaW1wbGUgYXJyYXkvYnVmZmVyIG1hbmFnZW1lbnQgY2xh
c3MgdXNpbmcgdXBydl9tYWxsb2MoKSBhbmQgdXBydl9mcmVlKCkuCisgKiBQcm92aWRlcyBhbiBp
bnRlcm5hbCBhcnJheSB3aXRoIGZpeGVkIGNhcGFjaXR5LiBDYW4gYWxpYXMgYW5vdGhlciBhcnJh
eQorICogb3IgYWxsb2NhdGUgb25lLgorICoKKyAqIFRoZSBhcnJheSBhZGRyZXNzIGlzIHByb3Bl
cmx5IGFsaWduZWQgZm9yIHR5cGUgVC4gSXQgbWlnaHQgbm90IGJlIHByb3Blcmx5CisgKiBhbGln
bmVkIGZvciB0eXBlcyBsYXJnZXIgdGhhbiBUIChvciBsYXJnZXIgdGhhbiB0aGUgbGFyZ2VzdCBz
dWJ0eXBlIG9mIFQpLgorICoKKyAqIFVubGlrZSBMb2NhbE1lbW9yeSBhbmQgTG9jYWxBcnJheSwg
dGhpcyBjbGFzcyBuZXZlciBhZG9wdHMKKyAqICh0YWtlcyBvd25lcnNoaXAgb2YpIGFub3RoZXIg
YXJyYXkuCisgKi8KK3RlbXBsYXRlPHR5cGVuYW1lIFQsIGludDMyX3Qgc3RhY2tDYXBhY2l0eT4K
K2NsYXNzIE1heWJlU3RhY2tBcnJheSB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogRGVmYXVs
dCBjb25zdHJ1Y3RvciBpbml0aWFsaXplcyB3aXRoIGludGVybmFsIFRbc3RhY2tDYXBhY2l0eV0g
YnVmZmVyLgorICAgICAqLworICAgIE1heWJlU3RhY2tBcnJheSgpIDogcHRyKHN0YWNrQXJyYXkp
LCBjYXBhY2l0eShzdGFja0NhcGFjaXR5KSwgbmVlZFRvUmVsZWFzZShGQUxTRSkge30KKyAgICAv
KioKKyAgICAgKiBEZXN0cnVjdG9yIGRlbGV0ZXMgdGhlIGFycmF5IChpZiBvd25lZCkuCisgICAg
ICovCisgICAgfk1heWJlU3RhY2tBcnJheSgpIHsgcmVsZWFzZUFycmF5KCk7IH0KKyAgICAvKioK
KyAgICAgKiBSZXR1cm5zIHRoZSBhcnJheSBjYXBhY2l0eSAobnVtYmVyIG9mIFQgaXRlbXMpLgor
ICAgICAqIEByZXR1cm4gYXJyYXkgY2FwYWNpdHkKKyAgICAgKi8KKyAgICBpbnQzMl90IGdldENh
cGFjaXR5KCkgY29uc3QgeyByZXR1cm4gY2FwYWNpdHk7IH0KKyAgICAvKioKKyAgICAgKiBBY2Nl
c3Mgd2l0aG91dCBvd25lcnNoaXAgY2hhbmdlLgorICAgICAqIEByZXR1cm4gdGhlIGFycmF5IHBv
aW50ZXIKKyAgICAgKi8KKyAgICBUICpnZXRBbGlhcygpIGNvbnN0IHsgcmV0dXJuIHB0cjsgfQor
ICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGFycmF5IGxpbWl0LiBTaW1wbGUgY29udmVuaWVu
Y2UgbWV0aG9kLgorICAgICAqIEByZXR1cm4gZ2V0QWxpYXMoKStnZXRDYXBhY2l0eSgpCisgICAg
ICovCisgICAgVCAqZ2V0QXJyYXlMaW1pdCgpIGNvbnN0IHsgcmV0dXJuIGdldEFsaWFzKCkrY2Fw
YWNpdHk7IH0KKyAgICAvLyBObyAib3BlcmF0b3IgVCAqKCkgY29uc3QiIGJlY2F1c2UgdGhhdCBj
YW4gbWFrZQorICAgIC8vIGV4cHJlc3Npb25zIGxpa2UgbWJzW2luZGV4XSBhbWJpZ3VvdXMgZm9y
IHNvbWUgY29tcGlsZXJzLgorICAgIC8qKgorICAgICAqIEFycmF5IGl0ZW0gYWNjZXNzIChjb25z
dCkuCisgICAgICogTm8gaW5kZXggYm91bmRzIGNoZWNrLgorICAgICAqIEBwYXJhbSBpIGFycmF5
IGluZGV4CisgICAgICogQHJldHVybiByZWZlcmVuY2UgdG8gdGhlIGFycmF5IGl0ZW0KKyAgICAg
Ki8KKyAgICBjb25zdCBUICZvcGVyYXRvcltdKHB0cmRpZmZfdCBpKSBjb25zdCB7IHJldHVybiBw
dHJbaV07IH0KKyAgICAvKioKKyAgICAgKiBBcnJheSBpdGVtIGFjY2VzcyAod3JpdGFibGUpLgor
ICAgICAqIE5vIGluZGV4IGJvdW5kcyBjaGVjay4KKyAgICAgKiBAcGFyYW0gaSBhcnJheSBpbmRl
eAorICAgICAqIEByZXR1cm4gcmVmZXJlbmNlIHRvIHRoZSBhcnJheSBpdGVtCisgICAgICovCisg
ICAgVCAmb3BlcmF0b3JbXShwdHJkaWZmX3QgaSkgeyByZXR1cm4gcHRyW2ldOyB9CisgICAgLyoq
CisgICAgICogRGVsZXRlcyB0aGUgYXJyYXkgKGlmIG93bmVkKSBhbmQgYWxpYXNlcyBhbm90aGVy
IG9uZSwgbm8gdHJhbnNmZXIgb2Ygb3duZXJzaGlwLgorICAgICAqIElmIHRoZSBhcmd1bWVudHMg
YXJlIGlsbGVnYWwsIHRoZW4gdGhlIGN1cnJlbnQgYXJyYXkgaXMgdW5jaGFuZ2VkLgorICAgICAq
IEBwYXJhbSBvdGhlckFycmF5IG11c3Qgbm90IGJlIE5VTEwKKyAgICAgKiBAcGFyYW0gb3RoZXJD
YXBhY2l0eSBtdXN0IGJlID4wCisgICAgICovCisgICAgdm9pZCBhbGlhc0luc3RlYWQoVCAqb3Ro
ZXJBcnJheSwgaW50MzJfdCBvdGhlckNhcGFjaXR5KSB7CisgICAgICAgIGlmKG90aGVyQXJyYXkh
PU5VTEwgJiYgb3RoZXJDYXBhY2l0eT4wKSB7CisgICAgICAgICAgICByZWxlYXNlQXJyYXkoKTsK
KyAgICAgICAgICAgIHB0cj1vdGhlckFycmF5OworICAgICAgICAgICAgY2FwYWNpdHk9b3RoZXJD
YXBhY2l0eTsKKyAgICAgICAgICAgIG5lZWRUb1JlbGVhc2U9RkFMU0U7CisgICAgICAgIH0KKyAg
ICB9CisgICAgLyoqCisgICAgICogRGVsZXRlcyB0aGUgYXJyYXkgKGlmIG93bmVkKSBhbmQgYWxs
b2NhdGVzIGEgbmV3IG9uZSwgY29weWluZyBsZW5ndGggVCBpdGVtcy4KKyAgICAgKiBSZXR1cm5z
IHRoZSBuZXcgYXJyYXkgcG9pbnRlci4KKyAgICAgKiBJZiB0aGUgYWxsb2NhdGlvbiBmYWlscywg
dGhlbiB0aGUgY3VycmVudCBhcnJheSBpcyB1bmNoYW5nZWQgYW5kCisgICAgICogdGhpcyBtZXRo
b2QgcmV0dXJucyBOVUxMLgorICAgICAqIEBwYXJhbSBuZXdDYXBhY2l0eSBjYW4gYmUgbGVzcyB0
aGFuIG9yIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCBjYXBhY2l0eTsKKyAgICAgKiAgICAgICAg
ICAgICAgICAgICAgbXVzdCBiZSA+MAorICAgICAqIEBwYXJhbSBsZW5ndGggbnVtYmVyIG9mIFQg
aXRlbXMgdG8gYmUgY29waWVkIGZyb20gdGhlIG9sZCBhcnJheSB0byB0aGUgbmV3IG9uZQorICAg
ICAqIEByZXR1cm4gdGhlIGFsbG9jYXRlZCBhcnJheSBwb2ludGVyLCBvciBOVUxMIGlmIHRoZSBh
bGxvY2F0aW9uIGZhaWxlZAorICAgICAqLworICAgIGlubGluZSBUICpyZXNpemUoaW50MzJfdCBu
ZXdDYXBhY2l0eSwgaW50MzJfdCBsZW5ndGg9MCk7CisgICAgLyoqCisgICAgICogR2l2ZXMgdXAg
b3duZXJzaGlwIG9mIHRoZSBhcnJheSBpZiBvd25lZCwgb3IgZWxzZSBjbG9uZXMgaXQsCisgICAg
ICogY29weWluZyBsZW5ndGggVCBpdGVtczsgcmVzZXRzIGl0c2VsZiB0byB0aGUgaW50ZXJuYWwg
c3RhY2sgYXJyYXkuCisgICAgICogUmV0dXJucyBOVUxMIGlmIHRoZSBhbGxvY2F0aW9uIGZhaWxl
ZC4KKyAgICAgKiBAcGFyYW0gbGVuZ3RoIG51bWJlciBvZiBUIGl0ZW1zIHRvIGNvcHkgd2hlbiBj
bG9uaW5nLAorICAgICAqICAgICAgICBhbmQgY2FwYWNpdHkgb2YgdGhlIGNsb25lIHdoZW4gY2xv
bmluZworICAgICAqIEBwYXJhbSByZXN1bHRDYXBhY2l0eSB3aWxsIGJlIHNldCB0byB0aGUgcmV0
dXJuZWQgYXJyYXkncyBjYXBhY2l0eSAob3V0cHV0LW9ubHkpCisgICAgICogQHJldHVybiB0aGUg
YXJyYXkgcG9pbnRlcjsKKyAgICAgKiAgICAgICAgIGNhbGxlciBiZWNvbWVzIHJlc3BvbnNpYmxl
IGZvciBkZWxldGluZyB0aGUgYXJyYXkKKyAgICAgKi8KKyAgICBpbmxpbmUgVCAqb3JwaGFuT3JD
bG9uZShpbnQzMl90IGxlbmd0aCwgaW50MzJfdCAmcmVzdWx0Q2FwYWNpdHkpOworcHJpdmF0ZToK
KyAgICBUICpwdHI7CisgICAgaW50MzJfdCBjYXBhY2l0eTsKKyAgICBVQm9vbCBuZWVkVG9SZWxl
YXNlOworICAgIFQgc3RhY2tBcnJheVtzdGFja0NhcGFjaXR5XTsKKyAgICB2b2lkIHJlbGVhc2VB
cnJheSgpIHsKKyAgICAgICAgaWYobmVlZFRvUmVsZWFzZSkgeworICAgICAgICAgICAgdXBydl9m
cmVlKHB0cik7CisgICAgICAgIH0KKyAgICB9CisgICAgLyogTm8gY29tcGFyaXNvbiBvcGVyYXRv
cnMgd2l0aCBvdGhlciBNYXliZVN0YWNrQXJyYXkncy4gKi8KKyAgICBib29sIG9wZXJhdG9yPT0o
Y29uc3QgTWF5YmVTdGFja0FycmF5ICYgLypvdGhlciovKSB7cmV0dXJuIEZBTFNFO30KKyAgICBi
b29sIG9wZXJhdG9yIT0oY29uc3QgTWF5YmVTdGFja0FycmF5ICYgLypvdGhlciovKSB7cmV0dXJu
IFRSVUU7fQorICAgIC8qIE5vIG93bmVyc2hpcCB0cmFuc2ZlcjogTm8gY29weSBjb25zdHJ1Y3Rv
ciwgbm8gYXNzaWdubWVudCBvcGVyYXRvci4gKi8KKyAgICBNYXliZVN0YWNrQXJyYXkoY29uc3Qg
TWF5YmVTdGFja0FycmF5ICYgLypvdGhlciovKSB7fQorICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0
IE1heWJlU3RhY2tBcnJheSAmIC8qb3RoZXIqLykge30KKworICAgIC8vIE5vIGhlYXAgYWxsb2Nh
dGlvbi4gVXNlIG9ubHkgb24gdGhlIHN0YWNrLgorICAgIC8vICAgKERlY2xhcmluZyB0aGVzZSBm
dW5jdGlvbnMgcHJpdmF0ZSB0cmlnZ2VycyBhIGNhc2NhZGUgb2YgcHJvYmxlbXM6CisgICAgLy8g
ICAgICBNU1ZDIGluc2lzdHMgb24gZXhwb3J0aW5nIGFuIGluc3RhbnRpYXRpb24gb2YgTWF5YmVT
dGFja0FycmF5LCB3aGljaAorICAgIC8vICAgICAgcmVxdWlyZXMgdGhhdCBhbGwgZnVuY3Rpb25z
IGJlIGRlZmluZWQuCisgICAgLy8gICAgICBBbiBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiBuZXco
KSBpcyByZWplY3RlZCwgaXQgbXVzdCByZXR1cm4gYSB2YWx1ZS4KKyAgICAvLyAgICAgIFJldHVy
bmluZyBOVUxMIGlzIHJlamVjdGVkIGJ5IGdjYyBmb3Igb3BlcmF0b3IgbmV3LgorICAgIC8vICAg
ICAgVGhlIGV4cGVkaWVudCB0aGluZyBpcyBqdXN0IG5vdCB0byBvdmVycmlkZSBvcGVyYXRvciBu
ZXcuCisgICAgLy8gICAgICBXaGlsZSByZWxhdGl2ZWx5IHBvaW50bGVzcywgaGVhcCBhbGxvY2F0
ZWQgaW5zdGFuY2VzIHdpbGwgZnVuY3Rpb24uCisgICAgLy8gc3RhdGljIHZvaWQgKiBVX0VYUE9S
VDIgb3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKTsgCisgICAgLy8gc3RhdGljIHZvaWQgKiBVX0VY
UE9SVDIgb3BlcmF0b3IgbmV3W10oc2l6ZV90IHNpemUpOworI2lmIFVfSEFWRV9QTEFDRU1FTlRf
TkVXCisgICAgLy8gc3RhdGljIHZvaWQgKiBVX0VYUE9SVDIgb3BlcmF0b3IgbmV3KHNpemVfdCwg
dm9pZCAqcHRyKTsKKyNlbmRpZgorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgaW50MzJfdCBz
dGFja0NhcGFjaXR5PgoraW5saW5lIFQgKk1heWJlU3RhY2tBcnJheTxULCBzdGFja0NhcGFjaXR5
Pjo6cmVzaXplKGludDMyX3QgbmV3Q2FwYWNpdHksIGludDMyX3QgbGVuZ3RoKSB7CisgICAgaWYo
bmV3Q2FwYWNpdHk+MCkgeworI2lmIFVfREVCVUcgJiYgZGVmaW5lZChVUFJWX01BTExPQ19DT1VO
VCkKKyAgICAgIDo6ZnByaW50Zig6OnN0ZGVyciwiTWF5YmVTdGFjQXJyYXkgKHJlc2l6ZSkgYWxs
b2MgJWQgKiAlbHVcbiIsIG5ld0NhcGFjaXR5LHNpemVvZihUKSk7CisjZW5kaWYKKyAgICAgICAg
VCAqcD0oVCAqKXVwcnZfbWFsbG9jKG5ld0NhcGFjaXR5KnNpemVvZihUKSk7CisgICAgICAgIGlm
KHAhPU5VTEwpIHsKKyAgICAgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICAgICAg
aWYobGVuZ3RoPmNhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD1jYXBhY2l0
eTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYobGVuZ3RoPm5ld0NhcGFj
aXR5KSB7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD1uZXdDYXBhY2l0eTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgdXBydl9tZW1jcHkocCwgcHRyLCBsZW5ndGgqc2l6
ZW9mKFQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlbGVhc2VBcnJheSgpOworICAg
ICAgICAgICAgcHRyPXA7CisgICAgICAgICAgICBjYXBhY2l0eT1uZXdDYXBhY2l0eTsKKyAgICAg
ICAgICAgIG5lZWRUb1JlbGVhc2U9VFJVRTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcDsK
KyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKK3RlbXBsYXRl
PHR5cGVuYW1lIFQsIGludDMyX3Qgc3RhY2tDYXBhY2l0eT4KK2lubGluZSBUICpNYXliZVN0YWNr
QXJyYXk8VCwgc3RhY2tDYXBhY2l0eT46Om9ycGhhbk9yQ2xvbmUoaW50MzJfdCBsZW5ndGgsIGlu
dDMyX3QgJnJlc3VsdENhcGFjaXR5KSB7CisgICAgVCAqcDsKKyAgICBpZihuZWVkVG9SZWxlYXNl
KSB7CisgICAgICAgIHA9cHRyOworICAgIH0gZWxzZSBpZihsZW5ndGg8PTApIHsKKyAgICAgICAg
cmV0dXJuIE5VTEw7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYobGVuZ3RoPmNhcGFjaXR5KSB7
CisgICAgICAgICAgICBsZW5ndGg9Y2FwYWNpdHk7CisgICAgICAgIH0KKyAgICAgICAgcD0oVCAq
KXVwcnZfbWFsbG9jKGxlbmd0aCpzaXplb2YoVCkpOworI2lmIFVfREVCVUcgJiYgZGVmaW5lZChV
UFJWX01BTExPQ19DT1VOVCkKKyAgICAgIDo6ZnByaW50Zig6OnN0ZGVyciwiTWF5YmVTdGFjQXJy
YXkgKG9ycGhhbikgYWxsb2MgJWQgKiAlbHVcbiIsIGxlbmd0aCxzaXplb2YoVCkpOworI2VuZGlm
CisgICAgICAgIGlmKHA9PU5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAg
ICB9CisgICAgICAgIHVwcnZfbWVtY3B5KHAsIHB0ciwgbGVuZ3RoKnNpemVvZihUKSk7CisgICAg
fQorICAgIHJlc3VsdENhcGFjaXR5PWxlbmd0aDsKKyAgICBwdHI9c3RhY2tBcnJheTsKKyAgICBj
YXBhY2l0eT1zdGFja0NhcGFjaXR5OworICAgIG5lZWRUb1JlbGVhc2U9RkFMU0U7CisgICAgcmV0
dXJuIHA7Cit9CisKKy8qKgorICogVmFyaWFudCBvZiBNYXliZVN0YWNrQXJyYXkgdGhhdCBhbGxv
Y2F0ZXMgYSBoZWFkZXIgc3RydWN0IGFuZCBhbiBhcnJheQorICogaW4gb25lIGNvbnRpZ3VvdXMg
bWVtb3J5IGJsb2NrLCB1c2luZyB1cHJ2X21hbGxvYygpIGFuZCB1cHJ2X2ZyZWUoKS4KKyAqIFBy
b3ZpZGVzIGludGVybmFsIG1lbW9yeSB3aXRoIGZpeGVkIGFycmF5IGNhcGFjaXR5LiBDYW4gYWxp
YXMgYW5vdGhlciBtZW1vcnkKKyAqIGJsb2NrIG9yIGFsbG9jYXRlIG9uZS4KKyAqIFRoZSBzdGFj
a0NhcGFjaXR5IGlzIHRoZSBudW1iZXIgb2YgVCBpdGVtcyBpbiB0aGUgaW50ZXJuYWwgbWVtb3J5
LAorICogbm90IGNvdW50aW5nIHRoZSBIIGhlYWRlci4KKyAqIFVubGlrZSBMb2NhbE1lbW9yeSBh
bmQgTG9jYWxBcnJheSwgdGhpcyBjbGFzcyBuZXZlciBhZG9wdHMKKyAqICh0YWtlcyBvd25lcnNo
aXAgb2YpIGFub3RoZXIgbWVtb3J5IGJsb2NrLgorICovCit0ZW1wbGF0ZTx0eXBlbmFtZSBILCB0
eXBlbmFtZSBULCBpbnQzMl90IHN0YWNrQ2FwYWNpdHk+CitjbGFzcyBNYXliZVN0YWNrSGVhZGVy
QW5kQXJyYXkgeworcHVibGljOgorICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3Ig
aW5pdGlhbGl6ZXMgd2l0aCBpbnRlcm5hbCBIK1Rbc3RhY2tDYXBhY2l0eV0gYnVmZmVyLgorICAg
ICAqLworICAgIE1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSgpIDogcHRyKCZzdGFja0hlYWRlciks
IGNhcGFjaXR5KHN0YWNrQ2FwYWNpdHkpLCBuZWVkVG9SZWxlYXNlKEZBTFNFKSB7fQorICAgIC8q
KgorICAgICAqIERlc3RydWN0b3IgZGVsZXRlcyB0aGUgbWVtb3J5IChpZiBvd25lZCkuCisgICAg
ICovCisgICAgfk1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSgpIHsgcmVsZWFzZU1lbW9yeSgpOyB9
CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYXJyYXkgY2FwYWNpdHkgKG51bWJlciBvZiBU
IGl0ZW1zKS4KKyAgICAgKiBAcmV0dXJuIGFycmF5IGNhcGFjaXR5CisgICAgICovCisgICAgaW50
MzJfdCBnZXRDYXBhY2l0eSgpIGNvbnN0IHsgcmV0dXJuIGNhcGFjaXR5OyB9CisgICAgLyoqCisg
ICAgICogQWNjZXNzIHdpdGhvdXQgb3duZXJzaGlwIGNoYW5nZS4KKyAgICAgKiBAcmV0dXJuIHRo
ZSBoZWFkZXIgcG9pbnRlcgorICAgICAqLworICAgIEggKmdldEFsaWFzKCkgY29uc3QgeyByZXR1
cm4gcHRyOyB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYXJyYXkgc3RhcnQuCisgICAg
ICogQHJldHVybiBhcnJheSBzdGFydCwgc2FtZSBhZGRyZXNzIGFzIGdldEFsaWFzKCkrMQorICAg
ICAqLworICAgIFQgKmdldEFycmF5U3RhcnQoKSBjb25zdCB7IHJldHVybiByZWludGVycHJldF9j
YXN0PFQgKj4oZ2V0QWxpYXMoKSsxKTsgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGFy
cmF5IGxpbWl0LgorICAgICAqIEByZXR1cm4gYXJyYXkgbGltaXQKKyAgICAgKi8KKyAgICBUICpn
ZXRBcnJheUxpbWl0KCkgY29uc3QgeyByZXR1cm4gZ2V0QXJyYXlTdGFydCgpK2NhcGFjaXR5OyB9
CisgICAgLyoqCisgICAgICogQWNjZXNzIHdpdGhvdXQgb3duZXJzaGlwIGNoYW5nZS4gU2FtZSBh
cyBnZXRBbGlhcygpLgorICAgICAqIEEgY2xhc3MgaW5zdGFuY2UgY2FuIGJlIHVzZWQgZGlyZWN0
bHkgaW4gZXhwcmVzc2lvbnMgdGhhdCB0YWtlIGEgVCAqLgorICAgICAqIEByZXR1cm4gdGhlIGhl
YWRlciBwb2ludGVyCisgICAgICovCisgICAgb3BlcmF0b3IgSCAqKCkgY29uc3QgeyByZXR1cm4g
cHRyOyB9CisgICAgLyoqCisgICAgICogQXJyYXkgaXRlbSBhY2Nlc3MgKHdyaXRhYmxlKS4KKyAg
ICAgKiBObyBpbmRleCBib3VuZHMgY2hlY2suCisgICAgICogQHBhcmFtIGkgYXJyYXkgaW5kZXgK
KyAgICAgKiBAcmV0dXJuIHJlZmVyZW5jZSB0byB0aGUgYXJyYXkgaXRlbQorICAgICAqLworICAg
IFQgJm9wZXJhdG9yW10ocHRyZGlmZl90IGkpIHsgcmV0dXJuIGdldEFycmF5U3RhcnQoKVtpXTsg
fQorICAgIC8qKgorICAgICAqIERlbGV0ZXMgdGhlIG1lbW9yeSBibG9jayAoaWYgb3duZWQpIGFu
ZCBhbGlhc2VzIGFub3RoZXIgb25lLCBubyB0cmFuc2ZlciBvZiBvd25lcnNoaXAuCisgICAgICog
SWYgdGhlIGFyZ3VtZW50cyBhcmUgaWxsZWdhbCwgdGhlbiB0aGUgY3VycmVudCBtZW1vcnkgaXMg
dW5jaGFuZ2VkLgorICAgICAqIEBwYXJhbSBvdGhlckFycmF5IG11c3Qgbm90IGJlIE5VTEwKKyAg
ICAgKiBAcGFyYW0gb3RoZXJDYXBhY2l0eSBtdXN0IGJlID4wCisgICAgICovCisgICAgdm9pZCBh
bGlhc0luc3RlYWQoSCAqb3RoZXJNZW1vcnksIGludDMyX3Qgb3RoZXJDYXBhY2l0eSkgeworICAg
ICAgICBpZihvdGhlck1lbW9yeSE9TlVMTCAmJiBvdGhlckNhcGFjaXR5PjApIHsKKyAgICAgICAg
ICAgIHJlbGVhc2VNZW1vcnkoKTsKKyAgICAgICAgICAgIHB0cj1vdGhlck1lbW9yeTsKKyAgICAg
ICAgICAgIGNhcGFjaXR5PW90aGVyQ2FwYWNpdHk7CisgICAgICAgICAgICBuZWVkVG9SZWxlYXNl
PUZBTFNFOworICAgICAgICB9CisgICAgfQorICAgIC8qKgorICAgICAqIERlbGV0ZXMgdGhlIG1l
bW9yeSBibG9jayAoaWYgb3duZWQpIGFuZCBhbGxvY2F0ZXMgYSBuZXcgb25lLAorICAgICAqIGNv
cHlpbmcgdGhlIGhlYWRlciBhbmQgbGVuZ3RoIFQgYXJyYXkgaXRlbXMuCisgICAgICogUmV0dXJu
cyB0aGUgbmV3IGhlYWRlciBwb2ludGVyLgorICAgICAqIElmIHRoZSBhbGxvY2F0aW9uIGZhaWxz
LCB0aGVuIHRoZSBjdXJyZW50IG1lbW9yeSBpcyB1bmNoYW5nZWQgYW5kCisgICAgICogdGhpcyBt
ZXRob2QgcmV0dXJucyBOVUxMLgorICAgICAqIEBwYXJhbSBuZXdDYXBhY2l0eSBjYW4gYmUgbGVz
cyB0aGFuIG9yIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCBjYXBhY2l0eTsKKyAgICAgKiAgICAg
ICAgICAgICAgICAgICAgbXVzdCBiZSA+MAorICAgICAqIEBwYXJhbSBsZW5ndGggbnVtYmVyIG9m
IFQgaXRlbXMgdG8gYmUgY29waWVkIGZyb20gdGhlIG9sZCBhcnJheSB0byB0aGUgbmV3IG9uZQor
ICAgICAqIEByZXR1cm4gdGhlIGFsbG9jYXRlZCBwb2ludGVyLCBvciBOVUxMIGlmIHRoZSBhbGxv
Y2F0aW9uIGZhaWxlZAorICAgICAqLworICAgIGlubGluZSBIICpyZXNpemUoaW50MzJfdCBuZXdD
YXBhY2l0eSwgaW50MzJfdCBsZW5ndGg9MCk7CisgICAgLyoqCisgICAgICogR2l2ZXMgdXAgb3du
ZXJzaGlwIG9mIHRoZSBtZW1vcnkgaWYgb3duZWQsIG9yIGVsc2UgY2xvbmVzIGl0LAorICAgICAq
IGNvcHlpbmcgdGhlIGhlYWRlciBhbmQgbGVuZ3RoIFQgYXJyYXkgaXRlbXM7IHJlc2V0cyBpdHNl
bGYgdG8gdGhlIGludGVybmFsIG1lbW9yeS4KKyAgICAgKiBSZXR1cm5zIE5VTEwgaWYgdGhlIGFs
bG9jYXRpb24gZmFpbGVkLgorICAgICAqIEBwYXJhbSBsZW5ndGggbnVtYmVyIG9mIFQgaXRlbXMg
dG8gY29weSB3aGVuIGNsb25pbmcsCisgICAgICogICAgICAgIGFuZCBhcnJheSBjYXBhY2l0eSBv
ZiB0aGUgY2xvbmUgd2hlbiBjbG9uaW5nCisgICAgICogQHBhcmFtIHJlc3VsdENhcGFjaXR5IHdp
bGwgYmUgc2V0IHRvIHRoZSByZXR1cm5lZCBhcnJheSdzIGNhcGFjaXR5IChvdXRwdXQtb25seSkK
KyAgICAgKiBAcmV0dXJuIHRoZSBoZWFkZXIgcG9pbnRlcjsKKyAgICAgKiAgICAgICAgIGNhbGxl
ciBiZWNvbWVzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyB0aGUgYXJyYXkKKyAgICAgKi8KKyAg
ICBpbmxpbmUgSCAqb3JwaGFuT3JDbG9uZShpbnQzMl90IGxlbmd0aCwgaW50MzJfdCAmcmVzdWx0
Q2FwYWNpdHkpOworcHJpdmF0ZToKKyAgICBIICpwdHI7CisgICAgaW50MzJfdCBjYXBhY2l0eTsK
KyAgICBVQm9vbCBuZWVkVG9SZWxlYXNlOworICAgIC8vIHN0YWNrSGVhZGVyIG11c3QgcHJlY2Vk
ZSBzdGFja0FycmF5IGltbWVkaWF0ZWx5LgorICAgIEggc3RhY2tIZWFkZXI7CisgICAgVCBzdGFj
a0FycmF5W3N0YWNrQ2FwYWNpdHldOworICAgIHZvaWQgcmVsZWFzZU1lbW9yeSgpIHsKKyAgICAg
ICAgaWYobmVlZFRvUmVsZWFzZSkgeworICAgICAgICAgICAgdXBydl9mcmVlKHB0cik7CisgICAg
ICAgIH0KKyAgICB9CisgICAgLyogTm8gY29tcGFyaXNvbiBvcGVyYXRvcnMgd2l0aCBvdGhlciBN
YXliZVN0YWNrSGVhZGVyQW5kQXJyYXkncy4gKi8KKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
TWF5YmVTdGFja0hlYWRlckFuZEFycmF5ICYgLypvdGhlciovKSB7cmV0dXJuIEZBTFNFO30KKyAg
ICBib29sIG9wZXJhdG9yIT0oY29uc3QgTWF5YmVTdGFja0hlYWRlckFuZEFycmF5ICYgLypvdGhl
ciovKSB7cmV0dXJuIFRSVUU7fQorICAgIC8qIE5vIG93bmVyc2hpcCB0cmFuc2ZlcjogTm8gY29w
eSBjb25zdHJ1Y3Rvciwgbm8gYXNzaWdubWVudCBvcGVyYXRvci4gKi8KKyAgICBNYXliZVN0YWNr
SGVhZGVyQW5kQXJyYXkoY29uc3QgTWF5YmVTdGFja0hlYWRlckFuZEFycmF5ICYgLypvdGhlciov
KSB7fQorICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IE1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSAm
IC8qb3RoZXIqLykge30KKworICAgIC8vIE5vIGhlYXAgYWxsb2NhdGlvbi4gVXNlIG9ubHkgb24g
dGhlIHN0YWNrLgorICAgIC8vICAgKERlY2xhcmluZyB0aGVzZSBmdW5jdGlvbnMgcHJpdmF0ZSB0
cmlnZ2VycyBhIGNhc2NhZGUgb2YgcHJvYmxlbXM7CisgICAgLy8gICAgc2VlIHRoZSBNYXliZVN0
YWNrQXJyYXkgY2xhc3MgZm9yIGRldGFpbHMuKQorICAgIC8vIHN0YXRpYyB2b2lkICogVV9FWFBP
UlQyIG9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSk7IAorICAgIC8vIHN0YXRpYyB2b2lkICogVV9F
WFBPUlQyIG9wZXJhdG9yIG5ld1tdKHNpemVfdCBzaXplKTsKKyNpZiBVX0hBVkVfUExBQ0VNRU5U
X05FVworICAgIC8vIHN0YXRpYyB2b2lkICogVV9FWFBPUlQyIG9wZXJhdG9yIG5ldyhzaXplX3Qs
IHZvaWQgKnB0cik7CisjZW5kaWYKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIEgsIHR5cGVuYW1l
IFQsIGludDMyX3Qgc3RhY2tDYXBhY2l0eT4KK2lubGluZSBIICpNYXliZVN0YWNrSGVhZGVyQW5k
QXJyYXk8SCwgVCwgc3RhY2tDYXBhY2l0eT46OnJlc2l6ZShpbnQzMl90IG5ld0NhcGFjaXR5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludDMyX3QgbGVuZ3RoKSB7CisgICAgaWYobmV3Q2FwYWNpdHk+PTApIHsKKyNpZiBV
X0RFQlVHICYmIGRlZmluZWQoVVBSVl9NQUxMT0NfQ09VTlQpCisgICAgICA6OmZwcmludGYoOjpz
dGRlcnIsIk1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSBhbGxvYyAlZCArICVkICogJXVsXG4iLCBz
aXplb2YoSCksbmV3Q2FwYWNpdHksc2l6ZW9mKFQpKTsKKyNlbmRpZgorICAgICAgICBIICpwPShI
ICopdXBydl9tYWxsb2Moc2l6ZW9mKEgpK25ld0NhcGFjaXR5KnNpemVvZihUKSk7CisgICAgICAg
IGlmKHAhPU5VTEwpIHsKKyAgICAgICAgICAgIGlmKGxlbmd0aDwwKSB7CisgICAgICAgICAgICAg
ICAgbGVuZ3RoPTA7CisgICAgICAgICAgICB9IGVsc2UgaWYobGVuZ3RoPjApIHsKKyAgICAgICAg
ICAgICAgICBpZihsZW5ndGg+Y2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3Ro
PWNhcGFjaXR5OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihsZW5ndGg+
bmV3Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPW5ld0NhcGFjaXR5Owor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHVwcnZfbWVtY3B5
KHAsIHB0ciwgc2l6ZW9mKEgpK2xlbmd0aCpzaXplb2YoVCkpOworICAgICAgICAgICAgcmVsZWFz
ZU1lbW9yeSgpOworICAgICAgICAgICAgcHRyPXA7CisgICAgICAgICAgICBjYXBhY2l0eT1uZXdD
YXBhY2l0eTsKKyAgICAgICAgICAgIG5lZWRUb1JlbGVhc2U9VFJVRTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gcDsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9
Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEgsIHR5cGVuYW1lIFQsIGludDMyX3Qgc3RhY2tDYXBh
Y2l0eT4KK2lubGluZSBIICpNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXk8SCwgVCwgc3RhY2tDYXBh
Y2l0eT46Om9ycGhhbk9yQ2xvbmUoaW50MzJfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMy
X3QgJnJlc3VsdENhcGFjaXR5KSB7CisgICAgSCAqcDsKKyAgICBpZihuZWVkVG9SZWxlYXNlKSB7
CisgICAgICAgIHA9cHRyOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmKGxlbmd0aDwwKSB7Cisg
ICAgICAgICAgICBsZW5ndGg9MDsKKyAgICAgICAgfSBlbHNlIGlmKGxlbmd0aD5jYXBhY2l0eSkg
eworICAgICAgICAgICAgbGVuZ3RoPWNhcGFjaXR5OworICAgICAgICB9CisjaWYgVV9ERUJVRyAm
JiBkZWZpbmVkKFVQUlZfTUFMTE9DX0NPVU5UKQorICAgICAgOjpmcHJpbnRmKDo6c3RkZXJyLCJN
YXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgKG9ycGhhbikgYWxsb2MgJXVsICsgJWQgKiAlbHVcbiIs
IHNpemVvZihIKSxsZW5ndGgsc2l6ZW9mKFQpKTsKKyNlbmRpZgorICAgICAgICBwPShIICopdXBy
dl9tYWxsb2Moc2l6ZW9mKEgpK2xlbmd0aCpzaXplb2YoVCkpOworICAgICAgICBpZihwPT1OVUxM
KSB7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICB1cHJ2X21l
bWNweShwLCBwdHIsIHNpemVvZihIKStsZW5ndGgqc2l6ZW9mKFQpKTsKKyAgICB9CisgICAgcmVz
dWx0Q2FwYWNpdHk9bGVuZ3RoOworICAgIHB0cj0mc3RhY2tIZWFkZXI7CisgICAgY2FwYWNpdHk9
c3RhY2tDYXBhY2l0eTsKKyAgICBuZWVkVG9SZWxlYXNlPUZBTFNFOworICAgIHJldHVybiBwOwor
fQorCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmICAvKiBfX2NwbHVzcGx1cyAqLworI2VuZGlm
ICAvKiBDTUVNT1JZX0ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9nZW5icmsvY3N0cmluZy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL2dlbmJyay9jc3RyaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjRiNjhmZmFiYjI2YmNiOTE1NjI2ZWQ0
ZDExNWU5NDJkMzdiYjc3MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9nZW5icmsvY3N0cmluZy5oCkBAIC0wLDAgKzEsMTQwIEBACisvKgorKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTIsIEludGVy
bmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAg
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxl
IENTVFJJTkcuSAorKgorKiBDb250YWlucyBDU3RyaW5nIGludGVyZmFjZQorKgorKiBAYXV0aG9y
ICAgICAgIEhlbGVuYSBTaGloCisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERh
dGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgNi8xNy85OCAgICAgaHNoaWgg
ICAgICAgQ3JlYXRlZC4KKyogIDA1LzAzLzk5ICAgICBzdGVwaGVuICAgICBDaGFuZ2VkIGZyb20g
ZnVuY3Rpb25zIHRvIG1hY3Jvcy4KKyogIDA2LzE0Lzk5ICAgICBzdGVwaGVuICAgICBBZGRlZCBp
Y3Vfc3RybmNhdCwgaWN1X3N0cm5jbXAsIGljdV90b2xvd2VyCisqCisqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKyovCisKKyNpZm5kZWYgQ1NUUklOR19ICisjZGVmaW5lIENTVFJJTkdfSCAxCisKKyNp
bmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgImNtZW1vcnkuaCIKKyNpbmNsdWRl
IDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorCisj
ZGVmaW5lIHVwcnZfc3RyY3B5KGRzdCwgc3JjKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0UgIHN0
cmNweShkc3QsIHNyYykKKyNkZWZpbmUgdXBydl9zdHJsZW4oc3RyKSBVX1NUQU5EQVJEX0NQUF9O
QU1FU1BBQ0Ugc3RybGVuKHN0cikKKyNkZWZpbmUgdXBydl9zdHJjbXAoczEsIHMyKSBVX1NUQU5E
QVJEX0NQUF9OQU1FU1BBQ0Ugc3RyY21wKHMxLCBzMikKKyNkZWZpbmUgdXBydl9zdHJjYXQoZHN0
LCBzcmMpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJjYXQoZHN0LCBzcmMpCisjZGVmaW5l
IHVwcnZfc3RyY2hyKHMsIGMpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJjaHIocywgYykK
KyNkZWZpbmUgdXBydl9zdHJzdHIocywgYykgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cnN0
cihzLCBjKQorI2RlZmluZSB1cHJ2X3N0cnJjaHIocywgYykgVV9TVEFOREFSRF9DUFBfTkFNRVNQ
QUNFIHN0cnJjaHIocywgYykKKworI2lmIFVfREVCVUcKKworI2RlZmluZSB1cHJ2X3N0cm5jcHko
ZHN0LCBzcmMsIHNpemUpICggXAorICAgIHVwcnZfY2hlY2tWYWxpZE1lbW9yeShzcmMsIDEpLCBc
CisgICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cm5jcHkoZHN0LCBzcmMsIHNpemUpKQor
I2RlZmluZSB1cHJ2X3N0cm5jbXAoczEsIHMyLCBuKSAoIFwKKyAgICB1cHJ2X2NoZWNrVmFsaWRN
ZW1vcnkoczEsIDEpLCBcCisgICAgdXBydl9jaGVja1ZhbGlkTWVtb3J5KHMyLCAxKSwgXAorICAg
IFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJuY21wKHMxLCBzMiwgbikpCisjZGVmaW5lIHVw
cnZfc3RybmNhdChkc3QsIHNyYywgbikgKCBcCisgICAgdXBydl9jaGVja1ZhbGlkTWVtb3J5KHNy
YywgMSksIFwKKyAgICBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RybmNhdChkc3QsIHNyYywg
bikpCisKKyNlbHNlCisKKyNkZWZpbmUgdXBydl9zdHJuY3B5KGRzdCwgc3JjLCBzaXplKSBVX1NU
QU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RybmNweShkc3QsIHNyYywgc2l6ZSkKKyNkZWZpbmUgdXBy
dl9zdHJuY21wKHMxLCBzMiwgbikgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cm5jbXAoczEs
IHMyLCBuKQorI2RlZmluZSB1cHJ2X3N0cm5jYXQoZHN0LCBzcmMsIG4pIFVfU1RBTkRBUkRfQ1BQ
X05BTUVTUEFDRSBzdHJuY2F0KGRzdCwgc3JjLCBuKQorCisjZW5kaWYgIC8qIFVfREVCVUcgKi8K
KworLyoqCisgKiBJcyBjIGFuIEFTQ0lJLXJlcGVydG9pcmUgbGV0dGVyIGEteiBvciBBLVo/Cisg
KiBOb3RlOiBUaGUgaW1wbGVtZW50YXRpb24gaXMgc3BlY2lmaWMgdG8gd2hldGhlciBJQ1UgaXMg
Y29tcGlsZWQgZm9yCisgKiBhbiBBU0NJSS1iYXNlZCBvciBFQkNESUMtYmFzZWQgbWFjaGluZS4g
VGhlcmUganVzdCBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgYmV0dGVyIG5hbWUgZm9yIHRoaXMuCisg
Ki8KK1VfQ0FQSSBVQm9vbCBVX0VYUE9SVDIKK3VwcnZfaXNBU0NJSUxldHRlcihjaGFyIGMpOwor
CitVX0NBUEkgY2hhciBVX0VYUE9SVDIKK3VwcnZfdG91cHBlcihjaGFyIGMpOworCisKK1VfQ0FQ
SSBjaGFyIFVfRVhQT1JUMgordXBydl9hc2NpaXRvbG93ZXIoY2hhciBjKTsKKworVV9DQVBJIGNo
YXIgVV9FWFBPUlQyCit1cHJ2X2ViY2RpY3RvbG93ZXIoY2hhciBjKTsKKworI2lmIFVfQ0hBUlNF
VF9GQU1JTFk9PVVfQVNDSUlfRkFNSUxZCisjICAgZGVmaW5lIHVwcnZfdG9sb3dlciB1cHJ2X2Fz
Y2lpdG9sb3dlcgorI2VsaWYgVV9DSEFSU0VUX0ZBTUlMWT09VV9FQkNESUNfRkFNSUxZCisjICAg
ZGVmaW5lIHVwcnZfdG9sb3dlciB1cHJ2X2ViY2RpY3RvbG93ZXIKKyNlbHNlCisjICAgZXJyb3Ig
VV9DSEFSU0VUX0ZBTUlMWSBpcyBub3QgdmFsaWQKKyNlbmRpZgorCisjZGVmaW5lIHVwcnZfc3Ry
dG9kKHNvdXJjZSwgZW5kKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RydG9kKHNvdXJjZSwg
ZW5kKQorI2RlZmluZSB1cHJ2X3N0cnRvdWwoc3RyLCBlbmQsIGJhc2UpIFVfU1RBTkRBUkRfQ1BQ
X05BTUVTUEFDRSBzdHJ0b3VsKHN0ciwgZW5kLCBiYXNlKQorI2RlZmluZSB1cHJ2X3N0cnRvbChz
dHIsIGVuZCwgYmFzZSkgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cnRvbChzdHIsIGVuZCwg
YmFzZSkKKworLyogQ29udmVyc2lvbiBmcm9tIGEgZGlnaXQgdG8gdGhlIGNoYXJhY3RlciB3aXRo
IHJhZGl4IGJhc2UgZnJvbSAyLTE5ICovCisvKiBNYXkgbmVlZCB0byB1c2UgVV9VUFBFUl9PUkRJ
TkFMKi8KKyNkZWZpbmUgVF9DU3RyaW5nX2l0b3NPZmZzZXQoYSkgKChhKTw9OT8oJzAnKyhhKSk6
KCdBJysoYSktMTApKQorCitVX0NBUEkgY2hhciogVV9FWFBPUlQyCit1cHJ2X3N0cmR1cChjb25z
dCBjaGFyICpzcmMpOworCisvKioKKyAqIHVwcnZfbWFsbG9jIG4rMSBieXRlcywgYW5kIGNvcHkg
biBieXRlcyBmcm9tIHNyYyBpbnRvIHRoZSBuZXcgc3RyaW5nLgorICogVGVybWluYXRlIHdpdGgg
YSBudWxsIGF0IG9mZnNldCBuLiAgIElmIG4gaXMgLTEsIHdvcmtzIGxpa2UgdXBydl9zdHJkdXAK
KyAqIEBwYXJhbSBzcmMKKyAqIEBwYXJhbSBuIGxlbmd0aCBvZiB0aGUgaW5wdXQgc3RyaW5nLCBu
b3QgaW5jbHVkaW5nIG51bGwuCisgKiBAcmV0dXJuIG5ldyBzdHJpbmcgKG93bmVkIGJ5IGNhbGxl
ciwgdXNlIHVwcnZfZnJlZSB0byBmcmVlKS4KKyAqIEBpbnRlcm5hbAorICovCitVX0NBUEkgY2hh
ciogVV9FWFBPUlQyCit1cHJ2X3N0cm5kdXAoY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IG4pOwor
CitVX0NBUEkgY2hhciogVV9FWFBPUlQyCitUX0NTdHJpbmdfdG9Mb3dlckNhc2UoY2hhciogc3Ry
KTsKKworVV9DQVBJIGNoYXIqIFVfRVhQT1JUMgorVF9DU3RyaW5nX3RvVXBwZXJDYXNlKGNoYXIq
IHN0cik7CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9DU3RyaW5nX2ludGVnZXJUb1N0
cmluZyhjaGFyICpidWZmZXIsIGludDMyX3QgbiwgaW50MzJfdCByYWRpeCk7CisKK1VfQ0FQSSBp
bnQzMl90IFVfRVhQT1JUMgorVF9DU3RyaW5nX2ludDY0VG9TdHJpbmcoY2hhciAqYnVmZmVyLCBp
bnQ2NF90IG4sIHVpbnQzMl90IHJhZGl4KTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitU
X0NTdHJpbmdfc3RyaW5nVG9JbnRlZ2VyKGNvbnN0IGNoYXIgKmludGVnZXJTdHJpbmcsIGludDMy
X3QgcmFkaXgpOworCisvKioKKyAqIENhc2UtaW5zZW5zaXRpdmUsIGxhbmd1YWdlLWluZGVwZW5k
ZW50IHN0cmluZyBjb21wYXJpc29uCisgKiBsaW1pdGVkIHRvIHRoZSBBU0NJSSBjaGFyYWN0ZXIg
cmVwZXJ0b2lyZS4KKyAqLworVV9DQVBJIGludCBVX0VYUE9SVDIKK3VwcnZfc3RyaWNtcChjb25z
dCBjaGFyICpzdHIxLCBjb25zdCBjaGFyICpzdHIyKTsKKworLyoqCisgKiBDYXNlLWluc2Vuc2l0
aXZlLCBsYW5ndWFnZS1pbmRlcGVuZGVudCBzdHJpbmcgY29tcGFyaXNvbgorICogbGltaXRlZCB0
byB0aGUgQVNDSUkgY2hhcmFjdGVyIHJlcGVydG9pcmUuCisgKi8KK1VfQ0FQSSBpbnQgVV9FWFBP
UlQyCit1cHJ2X3N0cm5pY21wKGNvbnN0IGNoYXIgKnN0cjEsIGNvbnN0IGNoYXIgKnN0cjIsIHVp
bnQzMl90IG4pOworCisjZW5kaWYgLyogISBDU1RSSU5HX0ggKi8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvZmlsZXN0cm0uYyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvZmlsZXN0cm0uYwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MzA5NzQ3YzcwNWJkMTM3NjVhM2M1YjcxZTdhOGJiZDQ4MTE0Y2FiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9maWxlc3RybS5jCkBA
IC0wLDAgKzEsMjI1IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJp
Z2h0IChDKSAxOTk3LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBD
b3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorKgorKiBGaWxlIEZJTEVTVFJNLkMKKyoKKyogQGF1dGhvciAgICAgICBH
bGVubiBNYXJjeQorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAg
ICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDUvOC85OCAgICAgIGdtICAgICAgICAgIENy
ZWF0ZWQKKyogIDAzLzAyLzk5ICAgICBzdGVwaGVuICAgICBSZW9yZGVyZWQgcGFyYW1zIGluIHVu
Z2V0YyB0byBtYXRjaCBzdGRpbworKiAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIHdv
cGVuCisqICAgMy8yOS85OSAgICAgaGVsZW5hICAgICAgTWVyZ2VkIFN0ZXBoZW4gYW5kIEJlcnRy
YW5kJ3MgY2hhbmdlcy4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2luY2x1ZGUg
ImZpbGVzdHJtLmgiCisKKyNpbmNsdWRlICJjbWVtb3J5LmgiCisKKyNpbmNsdWRlIDxzdGRpby5o
PgorCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fb3Blbihjb25z
dCBjaGFyKiBmaWxlbmFtZSwgY29uc3QgY2hhciogbW9kZSkKK3sKKyAgICBpZihmaWxlbmFtZSAh
PSBOVUxMICYmICpmaWxlbmFtZSAhPSAwICYmIG1vZGUgIT0gTlVMTCAmJiAqbW9kZSAhPSAwKSB7
CisgICAgICAgIEZJTEUgKmZpbGUgPSBmb3BlbihmaWxlbmFtZSwgbW9kZSk7CisgICAgICAgIHJl
dHVybiAoRmlsZVN0cmVhbSopZmlsZTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gTlVM
TDsKKyAgICB9Cit9CisKKy8qCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVT
dHJlYW1fd29wZW4oY29uc3Qgd2NoYXJfdCogZmlsZW5hbWUsIGNvbnN0IHdjaGFyX3QqIG1vZGUp
Cit7CisgICAvLyBUQkQ6IF93Zm9wZW4gaXMgYmVsaWV2ZWQgdG8gYmUgTVMtc3BlY2lmaWM/IAor
I2lmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSQorICAgIEZJTEUqIHJlc3VsdCA9IF93
Zm9wZW4oZmlsZW5hbWUsIG1vZGUpOworICAgIHJldHVybiAoRmlsZVN0cmVhbSopcmVzdWx0Owor
I2Vsc2UKKyAgICBzaXplX3QgZm5NYnNTaXplLCBtZE1ic1NpemU7CisgICAgY2hhciAqZm4sICpt
ZDsKKyAgICBGSUxFICpyZXN1bHQ7CisKKyAgICAvLyBjb252ZXJ0IGZyb20gd2NoYXJfdCB0byBj
aGFyIAorICAgIGZuTWJzU2l6ZSA9IHdjc3RvbWJzKE5VTEwsIGZpbGVuYW1lLCAoKHNpemVfdCkt
MSkgPj4gMSk7CisgICAgZm4gPSAoY2hhciopdXBydl9tYWxsb2MoZm5NYnNTaXplKzIpOworICAg
IHdjc3RvbWJzKGZuLCBmaWxlbmFtZSwgZm5NYnNTaXplKTsKKyAgICBmbltmbk1ic1NpemVdID0g
MDsKKworICAgIG1kTWJzU2l6ZSA9IHdjc3RvbWJzKE5VTEwsIG1vZGUsICgoc2l6ZV90KS0xKSA+
PiAxKTsKKyAgICBtZCA9IChjaGFyKil1cHJ2X21hbGxvYyhtZE1ic1NpemUrMik7CisgICAgd2Nz
dG9tYnMobWQsIG1vZGUsIG1kTWJzU2l6ZSk7CisgICAgbWRbbWRNYnNTaXplXSA9IDA7CisKKyAg
ICByZXN1bHQgPSBmb3BlbihmbiwgbWQpOworICAgIHVwcnZfZnJlZShmbik7CisgICAgdXBydl9m
cmVlKG1kKTsKKyAgICByZXR1cm4gKEZpbGVTdHJlYW0qKXJlc3VsdDsKKyNlbmRpZgorfQorKi8K
K1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX2Nsb3NlKEZpbGVTdHJlYW0qIGZp
bGVTdHJlYW0pCit7CisgICAgaWYgKGZpbGVTdHJlYW0gIT0gMCkKKyAgICAgICAgZmNsb3NlKChG
SUxFKilmaWxlU3RyZWFtKTsKK30KKworVV9DQVBJIFVCb29sIFVfRVhQT1JUMgorVF9GaWxlU3Ry
ZWFtX2ZpbGVfZXhpc3RzKGNvbnN0IGNoYXIqIGZpbGVuYW1lKQoreworICAgIEZJTEUqIHRlbXAg
PSBmb3BlbihmaWxlbmFtZSwgInIiKTsKKyAgICBpZiAodGVtcCkgeworICAgICAgICBmY2xvc2Uo
dGVtcCk7CisgICAgICAgIHJldHVybiBUUlVFOworICAgIH0gZWxzZQorICAgICAgICByZXR1cm4g
RkFMU0U7Cit9CisKKy8qc3RhdGljIGNvbnN0IGludDMyX3Qga0VPRjsKK2NvbnN0IGludDMyX3Qg
RmlsZVN0cmVhbTo6a0VPRiA9IEVPRjsqLworCisvKgorVV9DQVBJIEZpbGVTdHJlYW0qCitUX0Zp
bGVTdHJlYW1fdG1wZmlsZSgpCit7CisgICAgRklMRSogZmlsZSA9IHRtcGZpbGUoKTsKKyAgICBy
ZXR1cm4gKEZpbGVTdHJlYW0qKWZpbGU7Cit9CisqLworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9S
VDIKK1RfRmlsZVN0cmVhbV9yZWFkKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0sIHZvaWQqIGFkZHIs
IGludDMyX3QgbGVuKQoreworICAgIHJldHVybiBmcmVhZChhZGRyLCAxLCBsZW4sIChGSUxFKilm
aWxlU3RyZWFtKTsKK30KKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1f
d3JpdGUoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgY29uc3Qgdm9pZCogYWRkciwgaW50MzJfdCBs
ZW4pCit7CisKKyAgICByZXR1cm4gZndyaXRlKGFkZHIsIDEsIGxlbiwgKEZJTEUqKWZpbGVTdHJl
YW0pOworfQorCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9yZXdpbmQoRmls
ZVN0cmVhbSogZmlsZVN0cmVhbSkKK3sKKyAgICByZXdpbmQoKEZJTEUqKWZpbGVTdHJlYW0pOwor
fQorCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9wdXRjKEZpbGVTdHJl
YW0qIGZpbGVTdHJlYW0sIGludDMyX3QgY2gpCit7CisgICAgaW50MzJfdCBjID0gZnB1dGMoY2gs
IChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4gYzsKK30KKworVV9DQVBJIGludCBVX0VY
UE9SVDIKK1RfRmlsZVN0cmVhbV9nZXRjKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisgICAg
aW50IGMgPSBmZ2V0YygoRklMRSopZmlsZVN0cmVhbSk7CisgICAgcmV0dXJuIGM7Cit9CisKK1Vf
Q0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3VuZ2V0YyhpbnQzMl90IGNoLCBG
aWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworCisgICAgaW50MzJfdCBjID0gdW5nZXRjKGNoLCAo
RklMRSopZmlsZVN0cmVhbSk7CisgICAgcmV0dXJuIGM7Cit9CisKK1VfQ0FQSSBpbnQzMl90IFVf
RVhQT1JUMgorVF9GaWxlU3RyZWFtX3BlZWsoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSkKK3sKKyAg
ICBpbnQzMl90IGMgPSBmZ2V0YygoRklMRSopZmlsZVN0cmVhbSk7CisgICAgcmV0dXJuIHVuZ2V0
YyhjLCAoRklMRSopZmlsZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK1Rf
RmlsZVN0cmVhbV9yZWFkTGluZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjaGFyKiBidWZmZXIs
IGludDMyX3QgbGVuZ3RoKQoreworICAgIHJldHVybiBmZ2V0cyhidWZmZXIsIGxlbmd0aCwgKEZJ
TEUqKWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0
cmVhbV93cml0ZUxpbmUoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgY29uc3QgY2hhciogYnVmZmVy
KQoreworICAgIHJldHVybiBmcHV0cyhidWZmZXIsIChGSUxFKilmaWxlU3RyZWFtKTsKK30KKwor
VV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc2l6ZShGaWxlU3RyZWFtKiBm
aWxlU3RyZWFtKQoreworICAgIGludDMyX3Qgc2F2ZWRQb3MgPSBmdGVsbCgoRklMRSopZmlsZVN0
cmVhbSk7CisgICAgaW50MzJfdCBzaXplID0gMDsKKworICAgIC8qQ2hhbmdlcyBieSBCZXJ0cmFu
ZCBBLiBELiBkb2Vzbid0IGFmZmVjdCB0aGUgY3VycmVudCBwb3NpdGlvbgorICAgIGdvZXMgdG8g
dGhlIGVuZCBvZiB0aGUgZmlsZSBiZWZvcmUgZnRlbGwqLworICAgIGZzZWVrKChGSUxFKilmaWxl
U3RyZWFtLCAwLCBTRUVLX0VORCk7CisgICAgc2l6ZSA9IChpbnQzMl90KWZ0ZWxsKChGSUxFKilm
aWxlU3RyZWFtKTsKKyAgICBmc2VlaygoRklMRSopZmlsZVN0cmVhbSwgc2F2ZWRQb3MsIFNFRUtf
U0VUKTsKKyAgICByZXR1cm4gc2l6ZTsKK30KKworVV9DQVBJIGludCBVX0VYUE9SVDIKK1RfRmls
ZVN0cmVhbV9lb2YoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSkKK3sKKyAgICByZXR1cm4gZmVvZigo
RklMRSopZmlsZVN0cmVhbSk7Cit9CisKKy8qCisgV2FybmluZyAKKyBUaGlzIGZ1bmN0aW9uIG1h
eSBub3Qgd29yayBjb25zaXN0ZW50bHkgb24gYWxsIHBsYXRmb3JtcworIChlLmcuIEhQLVVYLCBG
cmVlQlNEIGFuZCBNYWNPU1ggZG9uJ3QgcmV0dXJuIGFuIGVycm9yIHdoZW4KKyBwdXRjIGlzIHVz
ZWQgb24gYSBmaWxlIG9wZW5lZCBhcyByZWFkb25seSkKKyovCitVX0NBUEkgaW50IFVfRVhQT1JU
MgorVF9GaWxlU3RyZWFtX2Vycm9yKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisgICAgcmV0
dXJuIChmaWxlU3RyZWFtID09IDAgfHwgZmVycm9yKChGSUxFKilmaWxlU3RyZWFtKSk7Cit9CisK
Ky8qIFRoaXMgZnVuY3Rpb24gZG9lc24ndCB3b3JrLiAqLworLyogZm9yY2UgdGhlIHN0cmVhbSB0
byBzZXQgaXRzIGVycm9yIGZsYWcqLworLypVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK1RfRmlsZVN0
cmVhbV9zZXRFcnJvcihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIGZzZWVrKChGSUxF
KilmaWxlU3RyZWFtLCA5OTk5OSwgU0VFS19TRVQpOworfQorKi8KKworVV9DQVBJIEZpbGVTdHJl
YW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3N0ZGluKHZvaWQpCit7CisgICAgcmV0dXJuIChG
aWxlU3RyZWFtKilzdGRpbjsKK30KKworVV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9G
aWxlU3RyZWFtX3N0ZG91dCh2b2lkKQoreworICAgIHJldHVybiAoRmlsZVN0cmVhbSopc3Rkb3V0
OworfQorCisKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9zdGRl
cnIodm9pZCkKK3sKKyAgICByZXR1cm4gKEZpbGVTdHJlYW0qKXN0ZGVycjsKK30KKworVV9DQVBJ
IFVCb29sIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3JlbW92ZShjb25zdCBjaGFyKiBmaWxlTmFt
ZSl7CisgICAgcmV0dXJuIChyZW1vdmUoZmlsZU5hbWUpID09IDApOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9maWxlc3RybS5oIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9maWxlc3RybS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBlZWJhOThiNjYxZmQ2MTc4MTExYjBiZTA5ZTkzMTllYjlmMTFhMDAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVzdHJt
LmgKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBD
b3B5cmlnaHQgKEMpIDE5OTctMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwor
KiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgRklMRVNUUk0uSAorKgorKiBDb250YWlucyBG
aWxlU3RyZWFtIGludGVyZmFjZQorKgorKiBAYXV0aG9yICAgICAgIEdsZW5uIE1hcmN5CisqCisq
IE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERl
c2NyaXB0aW9uCisqICAgNS84Lzk4ICAgICAgZ20gICAgICAgICAgQ3JlYXRlZC4KKyogIDAzLzAy
Lzk5ICAgICBzdGVwaGVuICAgICBSZW9yZGVyZWQgcGFyYW1zIGluIHVuZ2V0YyB0byBtYXRjaCBz
dGRpbworKiAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZGVkIHdvcGVuCisqCisqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgRklMRVNUUk1fSAorI2RlZmluZSBGSUxFU1RS
TV9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCit0eXBlZGVmIHN0cnVjdCBfRmls
ZVN0cmVhbSBGaWxlU3RyZWFtOworCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0Zp
bGVTdHJlYW1fb3Blbihjb25zdCBjaGFyKiBmaWxlbmFtZSwgY29uc3QgY2hhciogbW9kZSk7CisK
Ky8qCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fd29wZW4oY29u
c3Qgd2NoYXJfdCogZmlsZW5hbWUsIGNvbnN0IHdjaGFyX3QqIG1vZGUpOworKi8KK1VfQ0FQSSB2
b2lkIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX2Nsb3NlKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0p
OworCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fZmlsZV9leGlzdHMoY29u
c3QgY2hhciogZmlsZW5hbWUpOworCisvKgorVV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgor
VF9GaWxlU3RyZWFtX3RtcGZpbGUodm9pZCk7CisqLworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9S
VDIKK1RfRmlsZVN0cmVhbV9yZWFkKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0sIHZvaWQqIGFkZHIs
IGludDMyX3QgbGVuKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1f
d3JpdGUoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgY29uc3Qgdm9pZCogYWRkciwgaW50MzJfdCBs
ZW4pOworCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9yZXdpbmQoRmlsZVN0
cmVhbSogZmlsZVN0cmVhbSk7CisKKy8qQWRkZWQgYnkgQmVydHJhbmQgQS4gRC4gKi8KK1VfQ0FQ
SSBjaGFyICogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcmVhZExpbmUoRmlsZVN0cmVhbSogZmls
ZVN0cmVhbSwgY2hhciogYnVmZmVyLCBpbnQzMl90IGxlbmd0aCk7CisKK1VfQ0FQSSBpbnQzMl90
IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3dyaXRlTGluZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFt
LCBjb25zdCBjaGFyKiBidWZmZXIpOworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmls
ZVN0cmVhbV9wdXRjKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0sIGludDMyX3QgY2gpOworCitVX0NB
UEkgaW50IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX2dldGMoRmlsZVN0cmVhbSogZmlsZVN0cmVh
bSk7CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3VuZ2V0YyhpbnQz
Ml90IGNoLCBGaWxlU3RyZWFtICpmaWxlU3RyZWFtKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBP
UlQyCitUX0ZpbGVTdHJlYW1fcGVlayhGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKworVV9DQVBJ
IGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc2l6ZShGaWxlU3RyZWFtKiBmaWxlU3Ry
ZWFtKTsKKworVV9DQVBJIGludCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9lb2YoRmlsZVN0cmVh
bSogZmlsZVN0cmVhbSk7CisKK1VfQ0FQSSBpbnQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fZXJy
b3IoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSk7CisKKy8qCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIK
K1RfRmlsZVN0cmVhbV9zZXRFcnJvcihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKyovCisKK1Vf
Q0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9zdGRpbih2b2lkKTsKKwor
VV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3N0ZG91dCh2b2lkKTsK
KworVV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3N0ZGVycih2b2lk
KTsKKworVV9DQVBJIFVCb29sIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3JlbW92ZShjb25zdCBj
aGFyKiBmaWxlTmFtZSk7CisKKyNlbmRpZiAvKiBfRklMRVNUUk0qLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9nZW5icmsuY3BwIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9nZW5icmsuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjcyYzZjZmZlN2I1Mjk2ZGU4Njc4ZWZhZTA0YjQ3NTk3NDA4ZjZhMDcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2dlbmJyay5jcHAK
QEAgLTAsMCArMSwzNDYgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAy
MDAyLTIwMDksIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlv
biBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyog
RmlsZSBnZW5icmsuYworKi8KKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8KKy8vICAgVG9vbCBmb3IgZ2Vu
ZXJhdGluZyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGRhdGEgZmlsZXMgKC5icmsgZmlsZXMpLgor
Ly8gICAuYnJrIGZpbGVzIGNvbnRhaW4gdGhlIHByZWNvbXBpbGVkIHJ1bGVzIGZvciBzdGFuZGFy
ZCB0eXBlcworLy8gICBvZiBpdGVyYXRvcnMgLSB3b3JkLCBsaW5lLCBzZW50ZW5jZSwgZXRjLgor
Ly8KKy8vICAgVXNhZ2U6ICBnZW5icmsgW29wdGlvbnNdIC1yIHJ1bGUtZmlsZS50eHQgIC1vIG91
dHB1dC1maWxlLmJyaworLy8KKy8vICAgICAgIG9wdGlvbnM6ICAgLXYgICAgICAgICB2ZXJib3Nl
CisvLyAgICAgICAgICAgICAgICAgIC0/IG9yIC1oICAgaGVscAorLy8KKy8vICAgVGhlIGlucHV0
IHJ1bGUgZmlsZSBpcyBhIHBsYWluIHRleHQgZmlsZSBjb250YWluaW5nIGJyZWFrIHJ1bGVzCisv
LyAgICBpbiB0aGUgaW5wdXQgZm9ybWF0IGFjY2VwdGVkIGJ5IFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3JzLiAgVGhlCisvLyAgICBmaWxlIGNhbiBiZSBlbmNvZGVkIGFzIHV0Zi04LCBvciB1dGYtMTYg
KGVpdGhlciBlbmRpYW4pLCBvcgorLy8gICAgaW4gdGhlIGRlZmF1bHQgY29kZSBwYWdlIChwbGF0
Zm9ybSBkZXBlbmRlbnQuKS4gIHV0ZiBlbmNvZGVkCisvLyAgICBmaWxlcyBtdXN0IGluY2x1ZGUg
YSBCT00uCisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIK
KyNpbmNsdWRlICJ1bmljb2RlL3VjbnYuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VuaXN0ci5oIgor
I2luY2x1ZGUgInVuaWNvZGUvcmJiaS5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWNsZWFuLmgiCisj
aW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgorI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKKwor
I2luY2x1ZGUgInVvcHRpb25zLmgiCisjaW5jbHVkZSAidW5ld2RhdGEuaCIKKyNpbmNsdWRlICJ1
Y21uZGF0YS5oIgorI2luY2x1ZGUgInJiYmlkYXRhLmgiCisjaW5jbHVkZSAiY21lbW9yeS5oIgor
CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJp
bmcuaD4KKworVV9OQU1FU1BBQ0VfVVNFCisKK3N0YXRpYyBjaGFyICpwcm9nTmFtZTsKK3N0YXRp
YyBVT3B0aW9uIG9wdGlvbnNbXT17CisgICAgVU9QVElPTl9IRUxQX0gsICAgICAgICAgICAgIC8q
IDAgKi8KKyAgICBVT1BUSU9OX0hFTFBfUVVFU1RJT05fTUFSSywgLyogMSAqLworICAgIFVPUFRJ
T05fVkVSQk9TRSwgICAgICAgICAgICAvKiAyICovCisgICAgeyAicnVsZXMiLCBOVUxMLCBOVUxM
LCBOVUxMLCAncicsIFVPUFRfUkVRVUlSRVNfQVJHLCAwIH0sICAgLyogMyAqLworICAgIHsgIm91
dCIsICAgTlVMTCwgTlVMTCwgTlVMTCwgJ28nLCBVT1BUX1JFUVVJUkVTX0FSRywgMCB9LCAgIC8q
IDQgKi8KKyAgICBVT1BUSU9OX0lDVURBVEFESVIsICAgICAgICAgLyogNSAqLworICAgIFVPUFRJ
T05fREVTVERJUiwgICAgICAgICAgICAvKiA2ICovCisgICAgVU9QVElPTl9DT1BZUklHSFQsICAg
ICAgICAgIC8qIDcgKi8KK307CisKK3ZvaWQgdXNhZ2VBbmREaWUoaW50IHJldENvZGUpIHsKKyAg
ICAgICAgcHJpbnRmKCJVc2FnZTogJXMgWy12XSBbLW9wdGlvbnNdIC1yIHJ1bGUtZmlsZSAtbyBv
dXRwdXQtZmlsZVxuIiwgcHJvZ05hbWUpOworICAgICAgICBwcmludGYoIlx0UmVhZCBpbiBicmVh
ayBpdGVyYXRpb24gcnVsZXMgdGV4dCBhbmQgd3JpdGUgb3V0IHRoZSBiaW5hcnkgZGF0YVxuIgor
ICAgICAgICAgICAgIm9wdGlvbnM6XG4iCisgICAgICAgICAgICAiXHQtaCBvciAtPyBvciAtLWhl
bHAgIHRoaXMgdXNhZ2UgdGV4dFxuIgorICAgICAgICAgICAgIlx0LVYgb3IgLS12ZXJzaW9uICAg
ICBzaG93IGEgdmVyc2lvbiBtZXNzYWdlXG4iCisgICAgICAgICAgICAiXHQtYyBvciAtLWNvcHly
aWdodCAgIGluY2x1ZGUgYSBjb3B5cmlnaHQgbm90aWNlXG4iCisgICAgICAgICAgICAiXHQtdiBv
ciAtLXZlcmJvc2UgICAgIHR1cm4gb24gdmVyYm9zZSBvdXRwdXRcbiIKKyAgICAgICAgICAgICJc
dC1pIG9yIC0taWN1ZGF0YWRpciAgZGlyZWN0b3J5IGZvciBsb2NhdGluZyBhbnkgbmVlZGVkIGlu
dGVybWVkaWF0ZSBkYXRhIGZpbGVzLFxuIgorICAgICAgICAgICAgIlx0ICAgICAgICAgICAgICAg
ICAgICBmb2xsb3dlZCBieSBwYXRoLCBkZWZhdWx0cyB0byAlc1xuIgorICAgICAgICAgICAgIlx0
LWQgb3IgLS1kZXN0ZGlyICAgICBkZXN0aW5hdGlvbiBkaXJlY3RvcnksIGZvbGxvd2VkIGJ5IHRo
ZSBwYXRoXG4iLAorICAgICAgICAgICAgdV9nZXREYXRhRGlyZWN0b3J5KCkpOworICAgICAgICBl
eGl0IChyZXRDb2RlKTsKK30KKworCisjaWYgVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gfHwg
VUNPTkZJR19OT19GSUxFX0lPCisKKy8qIGR1bW15IFVEYXRhSW5mbyBjZi4gdWRhdGEuaCAqLwor
c3RhdGljIFVEYXRhSW5mbyBkdW1teURhdGFJbmZvID0geworICAgIHNpemVvZihVRGF0YUluZm8p
LAorICAgIDAsCisKKyAgICBVX0lTX0JJR19FTkRJQU4sCisgICAgVV9DSEFSU0VUX0ZBTUlMWSwK
KyAgICBVX1NJWkVPRl9VQ0hBUiwKKyAgICAwLAorCisgICAgeyAwLCAwLCAwLCAwIH0sICAgICAg
ICAgICAgICAgICAvKiBkdW1teSBkYXRhRm9ybWF0ICovCisgICAgeyAwLCAwLCAwLCAwIH0sICAg
ICAgICAgICAgICAgICAvKiBkdW1teSBmb3JtYXRWZXJzaW9uICovCisgICAgeyAwLCAwLCAwLCAw
IH0gICAgICAgICAgICAgICAgICAvKiBkdW1teSBkYXRhVmVyc2lvbiAqLworfTsKKworI2Vsc2UK
KworLy8KKy8vICBTZXQgdXAgdGhlIElDVSBkYXRhIGhlYWRlciwgZGVmaW5lZCBpbiB1Y21uZGF0
YS5oCisvLworRGF0YUhlYWRlciBkaCA9eworICAgIHtzaXplb2YoRGF0YUhlYWRlciksICAgICAg
ICAgICAvLyBTdHJ1Y3QgTWFwcGVkRGF0YQorICAgICAgICAweGRhLAorICAgICAgICAweDI3fSwK
KworICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RydWN0IFVEYXRhSW5m
bworICAgICAgICBzaXplb2YoVURhdGFJbmZvKSwgICAgICAgICAgLy8gICAgIHNpemUKKyAgICAg
ICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICByZXNlcnZlZAorICAgICAgICBV
X0lTX0JJR19FTkRJQU4sCisgICAgICAgIFVfQ0hBUlNFVF9GQU1JTFksCisgICAgICAgIFVfU0la
RU9GX1VDSEFSLAorICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIHJl
c2VydmVkCisKKyAgICB7IDB4NDIsIDB4NzIsIDB4NmIsIDB4MjAgfSwgICAgIC8vICAgICBkYXRh
Rm9ybWF0PSJCcmsgIgorICAgIHsgMHhmZiwgMCwgMCwgMCB9LCAgICAgICAgICAgICAgLy8gICAg
IGZvcm1hdFZlcnNpb24uICBGaWxsZWQgaW4gbGF0ZXIgd2l0aCB2YWx1ZXMKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgZnJvbSB0aGUgUkJCSSBydWxlIGJ1aWxk
ZXIuICBUaGUgIHZhbHVlcyBkZWNsYXJlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gICAgICBoZXJlIHNob3VsZCBuZXZlciBhcHBlYXIgaW4gYW55IHJlYWwgUkJCSSBk
YXRhLgorICAgICAgICB7IDQsIDEsIDAsIDAgfSAgICAgICAgICAgICAgLy8gICBkYXRhVmVyc2lv
biAoVW5pY29kZSB2ZXJzaW9uKQorICAgIH19OworCisjZW5kaWYKKworLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisvLworLy8gIG1haW4gICAgICBmb3IgZ2VuYnJrCisvLworLy8tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCitpbnQgIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgVUVycm9yQ29k
ZSAgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIGNvbnN0IGNoYXIgKnJ1bGVGaWxlTmFtZTsK
KyAgICBjb25zdCBjaGFyICpvdXRGaWxlTmFtZTsKKyAgICBjb25zdCBjaGFyICpvdXREaXIgPSBO
VUxMOworICAgIGNvbnN0IGNoYXIgKmNvcHlyaWdodCA9IE5VTEw7CisKKyAgICAvLworICAgIC8v
IFBpY2sgdXAgYW5kIGNoZWNrIHRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzLAorICAgIC8vICAg
IHVzaW5nIHRoZSBzdGFuZGFyZCBJQ1UgdG9vbCB1dGlscyBvcHRpb24gaGFuZGxpbmcuCisgICAg
Ly8KKyAgICBVX01BSU5fSU5JVF9BUkdTKGFyZ2MsIGFyZ3YpOworICAgIHByb2dOYW1lID0gYXJn
dlswXTsKKyAgICBhcmdjPXVfcGFyc2VBcmdzKGFyZ2MsIGFyZ3YsIHNpemVvZihvcHRpb25zKS9z
aXplb2Yob3B0aW9uc1swXSksIG9wdGlvbnMpOworICAgIGlmKGFyZ2M8MCkgeworICAgICAgICAv
LyBVbnJlY29nbml6ZWQgb3B0aW9uCisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3IgaW4g
Y29tbWFuZCBsaW5lIGFyZ3VtZW50IFwiJXNcIlxuIiwgYXJndlstYXJnY10pOworICAgICAgICB1
c2FnZUFuZERpZShVX0lMTEVHQUxfQVJHVU1FTlRfRVJST1IpOworICAgIH0KKworICAgIGlmKG9w
dGlvbnNbMF0uZG9lc09jY3VyIHx8IG9wdGlvbnNbMV0uZG9lc09jY3VyKSB7CisgICAgICAgIC8v
ICAtPyBvciAtaCBmb3IgaGVscC4KKyAgICAgICAgdXNhZ2VBbmREaWUoMCk7CisgICAgfQorCisg
ICAgaWYgKCEob3B0aW9uc1szXS5kb2VzT2NjdXIgJiYgb3B0aW9uc1s0XS5kb2VzT2NjdXIpKSB7
CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAicnVsZSBmaWxlIGFuZCBvdXRwdXQgZmlsZSBtdXN0
IGJvdGggYmUgc3BlY2lmaWVkLlxuIik7CisgICAgICAgIHVzYWdlQW5kRGllKFVfSUxMRUdBTF9B
UkdVTUVOVF9FUlJPUik7CisgICAgfQorICAgIHJ1bGVGaWxlTmFtZSA9IG9wdGlvbnNbM10udmFs
dWU7CisgICAgb3V0RmlsZU5hbWUgID0gb3B0aW9uc1s0XS52YWx1ZTsKKworICAgIGlmIChvcHRp
b25zWzVdLmRvZXNPY2N1cikgeworICAgICAgICB1X3NldERhdGFEaXJlY3Rvcnkob3B0aW9uc1s1
XS52YWx1ZSk7CisgICAgfQorCisgICAgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworCisgICAgLyog
Q29tYmluZSB0aGUgZGlyZWN0b3J5IHdpdGggdGhlIGZpbGUgbmFtZSAqLworICAgIGlmKG9wdGlv
bnNbNl0uZG9lc09jY3VyKSB7CisgICAgICAgIG91dERpciA9IG9wdGlvbnNbNl0udmFsdWU7Cisg
ICAgfQorICAgIGlmIChvcHRpb25zWzddLmRvZXNPY2N1cikgeworICAgICAgICBjb3B5cmlnaHQg
PSBVX0NPUFlSSUdIVF9TVFJJTkc7CisgICAgfQorCisjaWYgVUNPTkZJR19OT19CUkVBS19JVEVS
QVRJT04gfHwgVUNPTkZJR19OT19GSUxFX0lPCisKKyAgICBVTmV3RGF0YU1lbW9yeSAqcERhdGE7
CisgICAgY2hhciBtc2dbMTAyNF07CisKKyAgICAvKiB3cml0ZSBtZXNzYWdlIHdpdGgganVzdCB0
aGUgbmFtZSAqLworICAgIHNwcmludGYobXNnLCAiZ2VuYnJrIHdyaXRlcyBkdW1teSAlcyBiZWNh
dXNlIG9mIFVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OIGFuZC9vciBVQ09ORklHX05PX0ZJTEVf
SU8sIHNlZSB1Y29uZmlnLmgiLCBvdXRGaWxlTmFtZSk7CisgICAgZnByaW50ZihzdGRlcnIsICIl
c1xuIiwgbXNnKTsKKworICAgIC8qIHdyaXRlIHRoZSBkdW1teSBkYXRhIGZpbGUgKi8KKyAgICBw
RGF0YSA9IHVkYXRhX2NyZWF0ZShvdXREaXIsIE5VTEwsIG91dEZpbGVOYW1lLCAmZHVtbXlEYXRh
SW5mbywgTlVMTCwgJnN0YXR1cyk7CisgICAgdWRhdGFfd3JpdGVCbG9jayhwRGF0YSwgbXNnLCBz
dHJsZW4obXNnKSk7CisgICAgdWRhdGFfZmluaXNoKHBEYXRhLCAmc3RhdHVzKTsKKyAgICByZXR1
cm4gKGludClzdGF0dXM7CisKKyNlbHNlCisgICAgLyogSW5pdGlhbGl6ZSBJQ1UgKi8KKyAgICB1
X2luaXQoJnN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGZw
cmludGYoc3RkZXJyLCAiJXM6IGNhbiBub3QgaW5pdGlhbGl6ZSBJQ1UuICBzdGF0dXMgPSAlc1xu
IiwKKyAgICAgICAgICAgIGFyZ3ZbMF0sIHVfZXJyb3JOYW1lKHN0YXR1cykpOworICAgICAgICBl
eGl0KDEpOworICAgIH0KKyAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisKKyAgICAvLworICAg
IC8vICBSZWFkIGluIHRoZSBydWxlIHNvdXJjZSBmaWxlCisgICAgLy8KKyAgICBsb25nICAgICAg
ICByZXN1bHQ7CisgICAgbG9uZyAgICAgICAgcnVsZUZpbGVTaXplOworICAgIEZJTEUgICAgICAg
ICpmaWxlOworICAgIGNoYXIgICAgICAgICpydWxlQnVmZmVyQzsKKworICAgIGZpbGUgPSBmb3Bl
bihydWxlRmlsZU5hbWUsICJyYiIpOworICAgIGlmKCBmaWxlID09IDAgKSB7CisgICAgICAgIGZw
cmludGYoc3RkZXJyLCAiQ291bGQgbm90IG9wZW4gZmlsZSBcIiVzXCJcbiIsIHJ1bGVGaWxlTmFt
ZSk7CisgICAgICAgIGV4aXQoLTEpOworICAgIH0KKyAgICBmc2VlayhmaWxlLCAwLCBTRUVLX0VO
RCk7CisgICAgcnVsZUZpbGVTaXplID0gZnRlbGwoZmlsZSk7CisgICAgZnNlZWsoZmlsZSwgMCwg
U0VFS19TRVQpOworICAgIHJ1bGVCdWZmZXJDID0gbmV3IGNoYXJbcnVsZUZpbGVTaXplKzEwXTsK
KworICAgIHJlc3VsdCA9IChsb25nKWZyZWFkKHJ1bGVCdWZmZXJDLCAxLCBydWxlRmlsZVNpemUs
IGZpbGUpOworICAgIGlmIChyZXN1bHQgIT0gcnVsZUZpbGVTaXplKSAgeworICAgICAgICBmcHJp
bnRmKHN0ZGVyciwgIkVycm9yIHJlYWRpbmcgZmlsZSBcIiVzXCJcbiIsIHJ1bGVGaWxlTmFtZSk7
CisgICAgICAgIGV4aXQgKC0xKTsKKyAgICB9CisgICAgcnVsZUJ1ZmZlckNbcnVsZUZpbGVTaXpl
XT0wOworICAgIGZjbG9zZShmaWxlKTsKKworICAgIC8vCisgICAgLy8gTG9vayBmb3IgYSBVbmlj
b2RlIFNpZ25hdHVyZSAoQk9NKSBvbiB0aGUgcnVsZSBmaWxlCisgICAgLy8KKyAgICBpbnQzMl90
ICAgICAgICBzaWduYXR1cmVMZW5ndGg7CisgICAgY29uc3QgY2hhciAqICAgcnVsZVNvdXJjZUMg
PSBydWxlQnVmZmVyQzsKKyAgICBjb25zdCBjaGFyKiAgICBlbmNvZGluZyA9IHVjbnZfZGV0ZWN0
VW5pY29kZVNpZ25hdHVyZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVTb3VyY2VD
LCBydWxlRmlsZVNpemUsICZzaWduYXR1cmVMZW5ndGgsICZzdGF0dXMpOworICAgIGlmIChVX0ZB
SUxVUkUoc3RhdHVzKSkgeworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfQorICAgIGlmKGVu
Y29kaW5nIT1OVUxMICl7CisgICAgICAgIHJ1bGVTb3VyY2VDICArPSBzaWduYXR1cmVMZW5ndGg7
CisgICAgICAgIHJ1bGVGaWxlU2l6ZSAtPSBzaWduYXR1cmVMZW5ndGg7CisgICAgfQorCisgICAg
Ly8KKyAgICAvLyBPcGVuIGEgY29udmVydGVyIHRvIHRha2UgdGhlIHJ1bGUgZmlsZSB0byBVVEYt
MTYKKyAgICAvLworICAgIFVDb252ZXJ0ZXIqIGNvbnY7CisgICAgY29udiA9IHVjbnZfb3Blbihl
bmNvZGluZywgJnN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAg
IGZwcmludGYoc3RkZXJyLCAidWNudl9vcGVuOiBJQ1UgRXJyb3IgXCIlc1wiXG4iLCB1X2Vycm9y
TmFtZShzdGF0dXMpKTsKKyAgICAgICAgZXhpdChzdGF0dXMpOworICAgIH0KKworICAgIC8vCisg
ICAgLy8gQ29udmVydCB0aGUgcnVsZXMgdG8gVUNoYXIuCisgICAgLy8gIFByZWZsaWdodCBmaXJz
dCB0byBkZXRlcm1pbmUgcmVxdWlyZWQgYnVmZmVyIHNpemUuCisgICAgLy8KKyAgICB1aW50MzJf
dCBkZXN0Q2FwID0gdWNudl90b1VDaGFycyhjb252LAorICAgICAgICAgICAgICAgICAgICAgICBO
VUxMLCAgICAgICAgICAgLy8gIGRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgIDAsICAgICAg
ICAgICAgICAvLyAgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICAgICBydWxlU291
cmNlQywKKyAgICAgICAgICAgICAgICAgICAgICAgcnVsZUZpbGVTaXplLAorICAgICAgICAgICAg
ICAgICAgICAgICAmc3RhdHVzKTsKKyAgICBpZiAoc3RhdHVzICE9IFVfQlVGRkVSX09WRVJGTE9X
X0VSUk9SKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAidWNudl90b1VDaGFyczogSUNVIEVy
cm9yIFwiJXNcIlxuIiwgdV9lcnJvck5hbWUoc3RhdHVzKSk7CisgICAgICAgIGV4aXQoc3RhdHVz
KTsKKyAgICB9OworCisgICAgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIFVDaGFyICpydWxl
U291cmNlVSA9IG5ldyBVQ2hhcltkZXN0Q2FwKzFdOworICAgIHVjbnZfdG9VQ2hhcnMoY29udiwK
KyAgICAgICAgICAgICAgICAgIHJ1bGVTb3VyY2VVLCAgICAgLy8gIGRlc3QsCisgICAgICAgICAg
ICAgICAgICBkZXN0Q2FwKzEsCisgICAgICAgICAgICAgICAgICBydWxlU291cmNlQywKKyAgICAg
ICAgICAgICAgICAgIHJ1bGVGaWxlU2l6ZSwKKyAgICAgICAgICAgICAgICAgICZzdGF0dXMpOwor
ICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInVj
bnZfdG9VQ2hhcnM6IElDVSBFcnJvciBcIiVzXCJcbiIsIHVfZXJyb3JOYW1lKHN0YXR1cykpOwor
ICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfTsKKyAgICB1Y252X2Nsb3NlKGNvbnYpOworCisK
KyAgICAvLworICAgIC8vICBQdXQgdGhlIHNvdXJjZSBydWxlcyBpbnRvIGEgVW5pY29kZVN0cmlu
ZworICAgIC8vCisgICAgVW5pY29kZVN0cmluZyBydWxlU291cmNlUyhGQUxTRSwgcnVsZVNvdXJj
ZVUsIGRlc3RDYXApOworCisgICAgLy8KKyAgICAvLyAgQ3JlYXRlIHRoZSBicmVhayBpdGVyYXRv
ciBmcm9tIHRoZSBydWxlcworICAgIC8vICAgICBUaGlzIHdpbGwgY29tcGlsZSB0aGUgcnVsZXMu
CisgICAgLy8KKyAgICBVUGFyc2VFcnJvciBwYXJzZUVycm9yOworICAgIHBhcnNlRXJyb3IubGlu
ZSA9IDA7CisgICAgcGFyc2VFcnJvci5vZmZzZXQgPSAwOworICAgIFJ1bGVCYXNlZEJyZWFrSXRl
cmF0b3IgKmJpID0gbmV3IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IocnVsZVNvdXJjZVMsIHBhcnNl
RXJyb3IsIHN0YXR1cyk7CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGZw
cmludGYoc3RkZXJyLCAiY3JlYXRlUnVsZUJhc2VkQnJlYWtJdGVyYXRvcjogSUNVIEVycm9yIFwi
JXNcIiAgYXQgbGluZSAlZCwgY29sdW1uICVkXG4iLAorICAgICAgICAgICAgICAgIHVfZXJyb3JO
YW1lKHN0YXR1cyksIChpbnQpcGFyc2VFcnJvci5saW5lLCAoaW50KXBhcnNlRXJyb3Iub2Zmc2V0
KTsKKyAgICAgICAgZXhpdChzdGF0dXMpOworICAgIH07CisKKworICAgIC8vCisgICAgLy8gIEdl
dCB0aGUgY29tcGlsZWQgcnVsZSBkYXRhIGZyb20gdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgIC8v
CisgICAgdWludDMyX3QgICAgICAgIG91dERhdGFTaXplOworICAgIGNvbnN0IHVpbnQ4X3QgICpv
dXREYXRhOworICAgIG91dERhdGEgPSBiaS0+Z2V0QmluYXJ5UnVsZXMob3V0RGF0YVNpemUpOwor
CisgICAgLy8gQ29weSB0aGUgZGF0YSBmb3JtYXQgdmVyc2lvbiBudW1iZXJzIGZyb20gdGhlIFJC
QkkgZGF0YSBoZWFkZXIgaW50byB0aGUgVURhdGFNZW1vcnkgaGVhZGVyLgorICAgIHVwcnZfbWVt
Y3B5KGRoLmluZm8uZm9ybWF0VmVyc2lvbiwgKChSQkJJRGF0YUhlYWRlciAqKW91dERhdGEpLT5m
Rm9ybWF0VmVyc2lvbiwgc2l6ZW9mKGRoLmluZm8uZm9ybWF0VmVyc2lvbikpOworCisgICAgLy8K
KyAgICAvLyAgQ3JlYXRlIHRoZSBvdXRwdXQgZmlsZQorICAgIC8vCisgICAgc2l6ZV90IGJ5dGVz
V3JpdHRlbjsKKyAgICBVTmV3RGF0YU1lbW9yeSAqcERhdGE7CisgICAgcERhdGEgPSB1ZGF0YV9j
cmVhdGUob3V0RGlyLCBOVUxMLCBvdXRGaWxlTmFtZSwgJihkaC5pbmZvKSwgY29weXJpZ2h0LCAm
c3RhdHVzKTsKKyAgICBpZihVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgImdlbmJyazogQ291bGQgbm90IG9wZW4gb3V0cHV0IGZpbGUgXCIlc1wiLCBcIiVzXCJc
biIsIAorICAgICAgICAgICAgICAgICAgICAgICAgIG91dEZpbGVOYW1lLCB1X2Vycm9yTmFtZShz
dGF0dXMpKTsKKyAgICAgICAgZXhpdChzdGF0dXMpOworICAgIH0KKworCisgICAgLy8gIFdyaXRl
IHRoZSBkYXRhIGl0c2VsZi4KKyAgICB1ZGF0YV93cml0ZUJsb2NrKHBEYXRhLCBvdXREYXRhLCBv
dXREYXRhU2l6ZSk7CisgICAgLy8gZmluaXNoIHVwIAorICAgIGJ5dGVzV3JpdHRlbiA9IHVkYXRh
X2ZpbmlzaChwRGF0YSwgJnN0YXR1cyk7CisgICAgaWYoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAg
ICAgICAgZnByaW50ZihzdGRlcnIsICJnZW5icms6IGVycm9yICVkIHdyaXRpbmcgdGhlIG91dHB1
dCBmaWxlXG4iLCBzdGF0dXMpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfQorICAgIAor
ICAgIGlmIChieXRlc1dyaXR0ZW4gIT0gb3V0RGF0YVNpemUpIHsKKyAgICAgICAgZnByaW50Zihz
dGRlcnIsICJFcnJvciB3cml0aW5nIHRvIG91dHB1dCBmaWxlIFwiJXNcIlxuIiwgb3V0RmlsZU5h
bWUpOworICAgICAgICBleGl0KC0xKTsKKyAgICB9CisKKyAgICBkZWxldGUgYmk7CisgICAgZGVs
ZXRlW10gcnVsZVNvdXJjZVU7CisgICAgZGVsZXRlW10gcnVsZUJ1ZmZlckM7CisgICAgdV9jbGVh
bnVwKCk7CisKKworICAgIHByaW50ZigiZ2VuYnJrOiB0b29sIGNvbXBsZXRlZCBzdWNjZXNzZnVs
bHkuXG4iKTsKKyAgICByZXR1cm4gMDsKKworI2VuZGlmIC8qICNpZiAhVUNPTkZJR19OT19CUkVB
S19JVEVSQVRJT04gKi8KK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL2dlbmJyay9wdXRpbGltcC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL2dlbmJyay9wdXRpbGltcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyYzFjNjZmMTcwMTQ1YzNkMGJj
MDIzYjYxNzA5NTczMzQwMjA1YjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3B1dGlsaW1wLmgKQEAgLTAsMCArMSw2MTEgQEAKKy8q
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxNCwg
SW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhl
cnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisq
ICBGSUxFIE5BTUUgOiBwdXRpbGltcC5oCisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAg
RGVzY3JpcHRpb24KKyogICAxMC8xNy8wNCAgICBncmhvdGVuICAgICBNb3ZlIGludGVybmFsIGZ1
bmN0aW9ucyBmcm9tIHB1dGlsLmggdG8gdGhpcyBmaWxlLgorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqLworCisjaWZuZGVmIFBVVElMSU1QX0gKKyNkZWZpbmUgUFVUSUxJTVBfSAorCisjaW5jbHVk
ZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3B1dGlsLmgiCisKKy8qKgor
ICogXGRlZiBVX1NJR05FRF9SSUdIVF9TSElGVF9JU19BUklUSE1FVElDCisgKiBOZWFybHkgYWxs
IENQVXMgYW5kIGNvbXBpbGVycyBpbXBsZW1lbnQgYSByaWdodC1zaGlmdCBvZiBhIHNpZ25lZCBp
bnRlZ2VyCisgKiBhcyBhbiBBcml0aG1ldGljIFNoaWZ0IFJpZ2h0IHdoaWNoIGNvcGllcyB0aGUg
c2lnbiBiaXQgKHRoZSBNb3N0IFNpZ25pZmljYW50IEJpdCAoTVNCKSkKKyAqIGludG8gdGhlIHZh
Y2F0ZWQgYml0cyAoc2lnbiBleHRlbnNpb24pLgorICogRm9yIGV4YW1wbGUsIChpbnQzMl90KTB4
ZmZmNWZmZjM+PjQgYmVjb21lcyAweGZmZmY1ZmZmIGFuZCAtMT4+MT0tMS4KKyAqCisgKiBUaGlz
IGNhbiBiZSB1c2VmdWwgZm9yIHN0b3JpbmcgYSBzaWduZWQgdmFsdWUgaW4gdGhlIHVwcGVyIGJp
dHMKKyAqIGFuZCBhbm90aGVyIGJpdCBmaWVsZCBpbiB0aGUgbG93ZXIgYml0cy4KKyAqIFRoZSBz
aWduZWQgdmFsdWUgY2FuIGJlIHJldHJpZXZlZCBieSBzaW1wbGUgcmlnaHQtc2hpZnRpbmcuCisg
KgorICogVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggdGhlIEphdmEgbGFuZ3VhZ2UuCisgKgorICog
SG93ZXZlciwgdGhlIEMgc3RhbmRhcmQgYWxsb3dzIGNvbXBpbGVycyB0byBpbXBsZW1lbnQgYSBy
aWdodC1zaGlmdCBvZiBhIHNpZ25lZCBpbnRlZ2VyCisgKiBhcyBhIExvZ2ljYWwgU2hpZnQgUmln
aHQgd2hpY2ggY29waWVzIGEgMCBpbnRvIHRoZSB2YWNhdGVkIGJpdHMuCisgKiBGb3IgZXhhbXBs
ZSwgKGludDMyX3QpMHhmZmY1ZmZmMz4+NCBiZWNvbWVzIDB4MGZmZjVmZmYgYW5kIC0xPj4xPTB4
N2ZmZmZmZmYuCisgKgorICogQ29kZSB0aGF0IGRlcGVuZHMgb24gdGhlIG5hdHVyYWwgYmVoYXZp
b3Igc2hvdWxkIGJlIGd1YXJkZWQgd2l0aCB0aGlzIG1hY3JvLAorICogd2l0aCBhbiBhbHRlcm5h
dGUgcGF0aCBmb3IgdW51c3VhbCBwbGF0Zm9ybXMuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVm
IFVfU0lHTkVEX1JJR0hUX1NISUZUX0lTX0FSSVRITUVUSUMKKyAgICAvKiBVc2UgdGhlIHByZWRl
ZmluZWQgdmFsdWUuICovCisjZWxzZQorICAgIC8qCisgICAgICogTmVhcmx5IGFsbCBDUFVzICYg
Y29tcGlsZXJzIGltcGxlbWVudCBhIHJpZ2h0LXNoaWZ0IG9mIGEgc2lnbmVkIGludGVnZXIKKyAg
ICAgKiBhcyBhbiBBcml0aG1ldGljIFNoaWZ0IFJpZ2h0ICh3aXRoIHNpZ24gZXh0ZW5zaW9uKS4K
KyAgICAgKi8KKyMgICBkZWZpbmUgVV9TSUdORURfUklHSFRfU0hJRlRfSVNfQVJJVEhNRVRJQyAx
CisjZW5kaWYKKworLyoqIERlZmluZSB0aGlzIHRvIDEgaWYgeW91ciBwbGF0Zm9ybSBzdXBwb3J0
cyBJRUVFIDc1NCBmbG9hdGluZyBwb2ludCwKKyAgIHRvIDAgaWYgaXQgZG9lcyBub3QuICovCisj
aWZuZGVmIElFRUVfNzU0CisjICAgZGVmaW5lIElFRUVfNzU0IDEKKyNlbmRpZgorCisvKioKKyAq
IHVpbnRwdHJfdCBpcyBhbiBvcHRpb25hbCBwYXJ0IG9mIHRoZSBzdGFuZGFyZCBkZWZpbml0aW9u
cyBpbiBzdGRpbnQuaC4KKyAqIFRoZSBvcGVuZ3JvdXAub3JnIGRvY3VtZW50YXRpb24gZm9yIHN0
ZGludC5oIHNheXMKKyAqICJPbiBYU0ktY29uZm9ybWFudCBzeXN0ZW1zLCB0aGUgaW50cHRyX3Qg
YW5kIHVpbnRwdHJfdCB0eXBlcyBhcmUgcmVxdWlyZWQ7CisgKiBvdGhlcndpc2UsIHRoZXkgYXJl
IG9wdGlvbmFsLiIKKyAqIFdlIGFzc3VtZSB0aGF0IHdoZW4gdWludHB0cl90IGlzIGRlZmluZWQs
IFVJTlRQVFJfTUFYIGlzIGRlZmluZWQgYXMgd2VsbC4KKyAqCisgKiBEbyBub3QgdXNlIHB0cmRp
ZmZfdCBzaW5jZSBpdCBpcyBzaWduZWQuIHNpemVfdCBpcyB1bnNpZ25lZC4KKyAqLworLyogVE9E
TzogVGhpcyBjaGVjayBmYWlscyBvbiBzb21lIHogZW52aXJvbm1lbnRzLiBGaWxlZCBhIHRpY2tl
dCAjOTM1NyBmb3IgdGhpcy4gKi8KKyNpZiAhZGVmaW5lZChfX2ludHB0cl90X2RlZmluZWQpICYm
ICFkZWZpbmVkKFVJTlRQVFJfTUFYKSAmJiAoVV9QTEFURk9STSAhPSBVX1BGX09TMzkwKQordHlw
ZWRlZiBzaXplX3QgdWludHB0cl90OworI2VuZGlmCisKKy8qKgorICogXGRlZiBVX0hBVkVfTVNW
Q18yMDAzX09SX0VBUkxJRVIKKyAqIEZsYWcgZm9yIHdvcmthcm91bmQgb2YgTVNWQyAyMDAzIG9w
dGltaXphdGlvbiBidWdzCisgKiBAaW50ZXJuYWwKKyAqLworI2lmICFkZWZpbmVkKFVfSEFWRV9N
U1ZDXzIwMDNfT1JfRUFSTElFUikgJiYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSIDwg
MTQwMCkKKyNkZWZpbmUgVV9IQVZFX01TVkNfMjAwM19PUl9FQVJMSUVSCisjZW5kaWYKKworLyo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0qLworLyoqIEB7IEluZm9ybWF0aW9uIGFib3V0IFBPU0lYIHN1cHBv
cnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0qLworCisjaWZkZWYgVV9IQVZFX05MX0xBTkdJTkZPX0NPREVTRVQKKyAgICAvKiBV
c2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9B
UEkgfHwgVV9QTEFURk9STSA9PSBVX1BGX0FORFJPSUQgfHwgVV9QTEFURk9STSA9PSBVX1BGX1FO
WAorIyAgIGRlZmluZSBVX0hBVkVfTkxfTEFOR0lORk9fQ09ERVNFVCAwCisjZWxzZQorIyAgIGRl
ZmluZSBVX0hBVkVfTkxfTEFOR0lORk9fQ09ERVNFVCAxCisjZW5kaWYKKworI2lmZGVmIFVfTkxf
TEFOR0lORk9fQ09ERVNFVAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNl
bGlmICFVX0hBVkVfTkxfTEFOR0lORk9fQ09ERVNFVAorIyAgIGRlZmluZSBVX05MX0xBTkdJTkZP
X0NPREVTRVQgLTEKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMAorICAgLyogbm90IGRl
ZmluZWQgKi8KKyNlbHNlCisjICAgZGVmaW5lIFVfTkxfTEFOR0lORk9fQ09ERVNFVCBDT0RFU0VU
CisjZW5kaWYKKworI2lmZGVmIFVfVFpTRVQKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFs
dWUuICovCisjZWxpZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKKyMgICBkZWZpbmUg
VV9UWlNFVCBfdHpzZXQKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMAorICAgLyogbm90
IGRlZmluZWQgKi8KKyNlbHNlCisjICAgZGVmaW5lIFVfVFpTRVQgdHpzZXQKKyNlbmRpZgorCisj
aWYgZGVmaW5lZChVX1RJTUVaT05FKSB8fCBkZWZpbmVkKFVfSEFWRV9USU1FWk9ORSkKKyAgICAv
KiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZf
QU5EUk9JRAorIyAgIGRlZmluZSBVX1RJTUVaT05FIHRpbWV6b25lCisjZWxpZiBVX1BMQVRGT1JN
X0lTX0xJTlVYX0JBU0VECisjICAgaWYgZGVmaW5lZChfX1VDTElCQ19fKQorICAgICAgIC8qIHVD
bGliYyBkb2VzIG5vdCBoYXZlIF9fdGltZXpvbmUgb3IgX3RpbWV6b25lLiAqLworIyAgIGVsaWYg
ZGVmaW5lZChfTkVXTElCX1ZFUlNJT04pCisjICAgICAgZGVmaW5lIFVfVElNRVpPTkUgICAgICBf
dGltZXpvbmUKKyMgICBlbGlmIGRlZmluZWQoX19HTElCQ19fKQorICAgICAgIC8qIGdsaWJjICov
CisjICAgICAgZGVmaW5lIFVfVElNRVpPTkUgICAgICBfX3RpbWV6b25lCisjICAgZW5kaWYKKyNl
bGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSQorIyAgIGRlZmluZSBVX1RJTUVaT05F
IF90aW1lem9uZQorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0JTRCAmJiAhZGVmaW5lZChfX05l
dEJTRF9fKQorICAgLyogbm90IGRlZmluZWQgKi8KKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9P
UzQwMAorICAgLyogbm90IGRlZmluZWQgKi8KKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9JUEhP
TkUKKyAgIC8qIG5vdCBkZWZpbmVkICovCisjZWxzZQorIyAgIGRlZmluZSBVX1RJTUVaT05FIHRp
bWV6b25lCisjZW5kaWYKKworI2lmZGVmIFVfVFpOQU1FCisgICAgLyogVXNlIHRoZSBwcmVkZWZp
bmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAg
ZGVmaW5lIFVfVFpOQU1FIF90em5hbWUKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMAor
ICAgLyogbm90IGRlZmluZWQgKi8KKyNlbHNlCisjICAgZGVmaW5lIFVfVFpOQU1FIHR6bmFtZQor
I2VuZGlmCisKKyNpZmRlZiBVX0hBVkVfTU1BUAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2
YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSQorIyAgIGRlZmluZSBVX0hB
VkVfTU1BUCAwCisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfTU1BUCAxCisjZW5kaWYKKworI2lm
ZGVmIFVfSEFWRV9QT1BFTgorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNl
bGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSQorIyAgIGRlZmluZSBVX0hBVkVfUE9Q
RU4gMAorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisjICAgZGVmaW5lIFVfSEFWRV9Q
T1BFTiAwCisjZWxzZQorIyAgIGRlZmluZSBVX0hBVkVfUE9QRU4gMQorI2VuZGlmCisKKy8qKgor
ICogXGRlZiBVX0hBVkVfRElSRU5UX0gKKyAqIERlZmluZXMgd2hldGhlciBkaXJlbnQuaCBpcyBh
dmFpbGFibGUuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfSEFWRV9ESVJFTlRfSAorICAg
IC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fSEFTX1dJ
TjMyX0FQSQorIyAgIGRlZmluZSBVX0hBVkVfRElSRU5UX0ggMAorI2Vsc2UKKyMgICBkZWZpbmUg
VV9IQVZFX0RJUkVOVF9IIDEKKyNlbmRpZgorCisvKiogQH0gKi8KKworLyo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0qLworLyoqIEB7IEdDQyBidWlsdCBpbiBmdW5jdGlvbnMgZm9yIGF0b21pYyBtZW1vcnkg
b3BlcmF0aW9ucyAgICAgICAgICAgICAgICAgICAqLworLyo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwor
CisvKioKKyAqIFxkZWYgVV9IQVZFX0dDQ19BVE9NSUNTCisgKiBAaW50ZXJuYWwKKyAqLworI2lm
ZGVmIFVfSEFWRV9HQ0NfQVRPTUlDUworICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4g
Ki8KKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9NSU5HVworICAgICNkZWZpbmUgVV9IQVZFX0dD
Q19BVE9NSUNTIDAKKyNlbGlmIFVfR0NDX01BSk9SX01JTk9SID49IDQwNCB8fCBkZWZpbmVkKF9f
Y2xhbmdfXykKKyAgICAvKiBUT0RPOiBJbnRlbCBpY2MgYW5kIElCTSB4bGMgb24gQUlYIGFsc28g
c3VwcG9ydCBnY2MgYXRvbWljcy4gIChJbnRlbCBvcmlnaW5hdGVkIHRoZW0uKQorICAgICAqICAg
ICAgIEFkZCB0aGVtIGZvciB0aGVzZSBjb21waWxlcnMuCisgICAgICogTm90ZTogQ2xhbmcgc2V0
cyBfX0dOVUNfXyBkZWZpbmVzIGZvciB2ZXJzaW9uIDQuMiwgc28gbWlzc2VzIHRoZSA0LjQgdGVz
dCBoZXJlLgorICAgICAqLworIyAgIGRlZmluZSBVX0hBVkVfR0NDX0FUT01JQ1MgMQorI2Vsc2UK
KyMgICBkZWZpbmUgVV9IQVZFX0dDQ19BVE9NSUNTIDAKKyNlbmRpZgorCisvKiogQH0gKi8KKwor
LyoqCisgKiBcZGVmIFVfSEFWRV9TVERfQVRPTUlDUworICogRGVmaW5lcyB3aGV0aGVyIHRoZSBz
dGFuZGFyZCBDKysxMSA8YXRvbWljPiBpcyBhdmFpbGFibGUuCisgKiBJQ1Ugd2lsbCB1c2UgdGhp
cyB3aGVuIGF2aWFsYWJsZSwKKyAqIG90aGVyd2lzZSB3aWxsIGZhbGwgYmFjayB0byBjb21waWxl
ciBvciBwbGF0Zm9ybSBzcGVjaWZpYyBhbHRlcm5hdGl2ZXMuCisgKiBAaW50ZXJuYWwKKyAqLwor
I2lmZGVmIFVfSEFWRV9TVERfQVRPTUlDUworICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1
ZS4gKi8KKyNlbGlmICFkZWZpbmVkKF9fY3BsdXNwbHVzKSB8fCBfX2NwbHVzcGx1czwyMDExMDNM
CisgICAgLyogTm90IEMrKzExLCBkaXNhYmxlIHVzZSBvZiBhdG9taWNzICovCisjICAgZGVmaW5l
IFVfSEFWRV9TVERfQVRPTUlDUyAwCisjZWxpZiBfX2NsYW5nX18gJiYgX19jbGFuZ19tYWpvcl9f
PT0zICYmIF9fY2xhbmdfbWlub3JfXzw9MQorICAgIC8qIENsYW5nIDMuMSwgaGFzIGF0b21pYyB2
YXJpYWJsZSBpbml0aWFsaXplciBidWcuICovCisjICAgZGVmaW5lIFVfSEFWRV9TVERfQVRPTUlD
UyAwCisjZWxzZSAKKyAgICAvKiBVX0hBVkVfQVRPTUlDIGlzIHR5cGljYWxseSBzZXQgYnkgYW4g
YXV0b2NvbmYgdGVzdCBvZiAjaW5jbHVkZSA8YXRvbWljPiAgKi8KKyAgICAvKiAgIENhbiBiZSBz
ZXQgbWFudWFsbHksIG9yIGxlZnQgdW5kZWZpbmVkLCBvbiBwbGF0Zm9ybXMgd2l0aG91dCBhdXRv
Y29uZi4gKi8KKyMgICBpZiBkZWZpbmVkKFVfSEFWRV9BVE9NSUMpICYmICBVX0hBVkVfQVRPTUlD
IAorIyAgICAgIGRlZmluZSBVX0hBVkVfU1REX0FUT01JQ1MgMQorIyAgIGVsc2UKKyMgICAgICBk
ZWZpbmUgVV9IQVZFX1NURF9BVE9NSUNTIDAKKyMgICBlbmRpZgorI2VuZGlmCisKKworLyo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0qLworLyoqIEB7IENvZGUgYWxpZ25tZW50ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0qLworCisvKioKKyAqIFxkZWYgVV9BTElHTl9DT0RFCisgKiBUaGlzIGlzIHVzZWQgdG8g
YWxpZ24gY29kZSBmcmFnbWVudHMgdG8gYSBzcGVjaWZpYyBieXRlIGJvdW5kYXJ5LgorICogVGhp
cyBpcyB1c2VmdWwgZm9yIGdldHRpbmcgY29uc2lzdGVudCBwZXJmb3JtYW5jZSB0ZXN0IHJlc3Vs
dHMuCisgKiBAaW50ZXJuYWwKKyAqLworI2lmZGVmIFVfQUxJR05fQ09ERQorICAgIC8qIFVzZSB0
aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIGRlZmluZWQoX01TQ19WRVIpICYmIGRlZmlu
ZWQoX01fSVg4NikgJiYgIWRlZmluZWQoX01BTkFHRUQpCisjICAgZGVmaW5lIFVfQUxJR05fQ09E
RShib3VuZGFyeVNpemUpIF9fYXNtICBhbGlnbiBib3VuZGFyeVNpemUKKyNlbHNlCisjICAgZGVm
aW5lIFVfQUxJR05fQ09ERShib3VuZGFyeVNpemUpIAorI2VuZGlmCisKKy8qKiBAfSAqLworCisv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSovCisvKiogQHsgUHJvZ3JhbXMgdXNlZCBieSBJQ1UgY29kZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSovCisKKy8qKgorICogXGRlZiBVX01BS0VfSVNfTk1BS0UKKyAqIERlZmluZXMg
d2hldGhlciB0aGUgIm1ha2UiIHByb2dyYW0gaXMgV2luZG93cyBubWFrZS4KKyAqLworI2lmZGVm
IFVfTUFLRV9JU19OTUFLRQorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNl
bGlmIFVfUExBVEZPUk0gPT0gVV9QRl9XSU5ET1dTCisjICAgZGVmaW5lIFVfTUFLRV9JU19OTUFL
RSAxCisjZWxzZQorIyAgIGRlZmluZSBVX01BS0VfSVNfTk1BS0UgMAorI2VuZGlmCisKKy8qKiBA
fSAqLworCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKy8qIFBsYXRmb3JtIHV0aWxpdGllcyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSovCisKKy8qKgorICogUGxhdGZvcm0gdXRpbGl0aWVzIGlzb2xhdGVz
IHRoZSBwbGF0Zm9ybSBkZXBlbmRlbmNpZXMgb2YgdGhlCisgKiBsaWJhcmFyeS4gIEZvciBlYWNo
IHBsYXRmb3JtIHdoaWNoIHRoaXMgY29kZSBpcyBwb3J0ZWQgdG8sIHRoZXNlCisgKiBmdW5jdGlv
bnMgbWF5IGhhdmUgdG8gYmUgcmUtaW1wbGVtZW50ZWQuCisgKi8KKworLyoqCisgKiBGbG9hdGlu
ZyBwb2ludCB1dGlsaXR5IHRvIGRldGVybWluZSBpZiBhIGRvdWJsZSBpcyBOb3QgYSBOdW1iZXIg
KE5hTikuCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBVQm9vbCAgIFVfRVhQT1JUMiB1
cHJ2X2lzTmFOKGRvdWJsZSBkKTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBk
ZXRlcm1pbmUgaWYgYSBkb3VibGUgaGFzIGFuIGluZmluaXRlIHZhbHVlLgorICogQGludGVybmFs
CisgKi8KK1VfSU5URVJOQUwgVUJvb2wgICBVX0VYUE9SVDIgdXBydl9pc0luZmluaXRlKGRvdWJs
ZSBkKTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBkZXRlcm1pbmUgaWYgYSBk
b3VibGUgaGFzIGEgcG9zaXRpdmUgaW5maW5pdGUgdmFsdWUuCisgKiBAaW50ZXJuYWwKKyAqLwor
VV9JTlRFUk5BTCBVQm9vbCAgIFVfRVhQT1JUMiB1cHJ2X2lzUG9zaXRpdmVJbmZpbml0eShkb3Vi
bGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gZGV0ZXJtaW5lIGlmIGEg
ZG91YmxlIGhhcyBhIG5lZ2F0aXZlIGluZmluaXRlIHZhbHVlLgorICogQGludGVybmFsCisgKi8K
K1VfSU5URVJOQUwgVUJvb2wgICBVX0VYUE9SVDIgdXBydl9pc05lZ2F0aXZlSW5maW5pdHkoZG91
YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRoYXQgcmV0dXJucyBhIE5v
dCBhIE51bWJlciAoTmFOKSB2YWx1ZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRv
dWJsZSAgVV9FWFBPUlQyIHVwcnZfZ2V0TmFOKHZvaWQpOworLyoqCisgKiBGbG9hdGluZyBwb2lu
dCB1dGlsaXR5IHRoYXQgcmV0dXJucyBhbiBpbmZpbml0ZSB2YWx1ZS4KKyAqIEBpbnRlcm5hbAor
ICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfZ2V0SW5maW5pdHkodm9pZCk7
CisKKy8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byB0cnVuY2F0ZSBhIGRvdWJsZS4K
KyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfdHJ1
bmMoZG91YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0
ZSB0aGUgZmxvb3Igb2YgYSBkb3VibGUuCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBk
b3VibGUgIFVfRVhQT1JUMiB1cHJ2X2Zsb29yKGRvdWJsZSBkKTsKKy8qKgorICogRmxvYXRpbmcg
cG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIGNlaWxpbmcgb2YgYSBkb3VibGUuCisgKiBA
aW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBkb3VibGUgIFVfRVhQT1JUMiB1cHJ2X2NlaWwoZG91
YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSB0aGUg
YWJzb2x1dGUgdmFsdWUgb2YgYSBkb3VibGUuCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5B
TCBkb3VibGUgIFVfRVhQT1JUMiB1cHJ2X2ZhYnMoZG91YmxlIGQpOworLyoqCisgKiBGbG9hdGlu
ZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSB0aGUgZnJhY3Rpb25hbCBhbmQgaW50ZWdlciBw
YXJ0cyBvZiBhIGRvdWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAg
VV9FWFBPUlQyIHVwcnZfbW9kZihkb3VibGUgZCwgZG91YmxlKiBwaW50ZWdlcik7CisvKioKKyAq
IEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSByZW1haW5kZXIgb2YgYSBk
b3VibGUgZGl2aWRlZCBieSBhbm90aGVyIGRvdWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lO
VEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfZm1vZChkb3VibGUgZCwgZG91YmxlIHkpOwor
LyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSBkIHRvIHRoZSBwb3dl
ciBvZiBleHBvbmVudCAoZF5leHBvbmVudCkuCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5B
TCBkb3VibGUgIFVfRVhQT1JUMiB1cHJ2X3Bvdyhkb3VibGUgZCwgZG91YmxlIGV4cG9uZW50KTsK
Ky8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgMTAgdG8gdGhlIHBv
d2VyIG9mIGV4cG9uZW50ICgxMF5leHBvbmVudCkuCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRF
Uk5BTCBkb3VibGUgIFVfRVhQT1JUMiB1cHJ2X3BvdzEwKGludDMyX3QgZXhwb25lbnQpOworLyoq
CisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSB0aGUgbWF4aW11bSB2YWx1
ZSBvZiB0d28gZG91Ymxlcy4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAg
VV9FWFBPUlQyIHVwcnZfZm1heChkb3VibGUgZCwgZG91YmxlIHkpOworLyoqCisgKiBGbG9hdGlu
ZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSB0aGUgbWluaW11bSB2YWx1ZSBvZiB0d28gZG91
Ymxlcy4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVw
cnZfZm1pbihkb3VibGUgZCwgZG91YmxlIHkpOworLyoqCisgKiBQcml2YXRlIHV0aWxpdHkgdG8g
Y2FsY3VsYXRlIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHR3byBpbnRlZ2Vycy4KKyAqIEBpbnRlcm5h
bAorICovCitVX0lOVEVSTkFMIGludDMyX3QgVV9FWFBPUlQyIHVwcnZfbWF4KGludDMyX3QgZCwg
aW50MzJfdCB5KTsKKy8qKgorICogUHJpdmF0ZSB1dGlsaXR5IHRvIGNhbGN1bGF0ZSB0aGUgbWlu
aW11bSB2YWx1ZSBvZiB0d28gaW50ZWdlcnMuCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5B
TCBpbnQzMl90IFVfRVhQT1JUMiB1cHJ2X21pbihpbnQzMl90IGQsIGludDMyX3QgeSk7CisKKyNp
ZiBVX0lTX0JJR19FTkRJQU4KKyMgICBkZWZpbmUgdXBydl9pc05lZ2F0aXZlKG51bWJlcikgKCoo
KHNpZ25lZCBjaGFyICopJihudW1iZXIpKTwwKQorI2Vsc2UKKyMgICBkZWZpbmUgdXBydl9pc05l
Z2F0aXZlKG51bWJlcikgKCooKHNpZ25lZCBjaGFyICopJihudW1iZXIpK3NpemVvZihudW1iZXIp
LTEpPDApCisjZW5kaWYKKworLyoqCisgKiBSZXR1cm4gdGhlIGxhcmdlc3QgcG9zaXRpdmUgbnVt
YmVyIHRoYXQgY2FuIGJlIHJlcHJlc2VudGVkIGJ5IGFuIGludGVnZXIKKyAqIHR5cGUgb2YgYXJi
aXRyYXJ5IGJpdCBsZW5ndGguCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBkb3VibGUg
IFVfRVhQT1JUMiB1cHJ2X21heE1hbnRpc3NhKHZvaWQpOworCisvKioKKyAqIEZsb2F0aW5nIHBv
aW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBsb2dhcml0aG0gb2YgYSBkb3VibGUuCisgKiBA
aW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBkb3VibGUgIFVfRVhQT1JUMiB1cHJ2X2xvZyhkb3Vi
bGUgZCk7CisKKy8qKgorICogRG9lcyBjb21tb24gbm90aW9uIG9mIHJvdW5kaW5nIGUuZy4gdXBy
dl9mbG9vcih4ICsgMC41KTsKKyAqIEBwYXJhbSB4IHRoZSBkb3VibGUgbnVtYmVyCisgKiBAcmV0
dXJuIHRoZSByb3VuZGVkIGRvdWJsZQorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91
YmxlICBVX0VYUE9SVDIgdXBydl9yb3VuZChkb3VibGUgeCk7CisKKyNpZiAwCisvKioKKyAqIFJl
dHVybnMgdGhlIG51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQgaW4gYSBk
b3VibGUgbnVtYmVyIHguCisgKgorICogQHBhcmFtIHggdGhlIGRvdWJsZSBudW1iZXIKKyAqIEBy
ZXR1cm4gdGhlIG51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQgaW4gYSBk
b3VibGUgbnVtYmVyIHguCisgKiBAaW50ZXJuYWwKKyAqLworLypVX0lOVEVSTkFMIGludDMyX3Qg
IFVfRVhQT1JUMiB1cHJ2X2RpZ2l0c0FmdGVyRGVjaW1hbChkb3VibGUgeCk7Ki8KKyNlbmRpZgor
CisjaWYgIVVfQ0hBUlNFVF9JU19VVEY4CisvKioKKyAqIFBsZWFzZSB1c2UgdWNudl9nZXREZWZh
dWx0TmFtZSgpIGluc3RlYWQuCisgKiBSZXR1cm4gdGhlIGRlZmF1bHQgY29kZXBhZ2UgZm9yIHRo
aXMgcGxhdGZvcm0gYW5kIGxvY2FsZS4KKyAqIFRoaXMgZnVuY3Rpb24gY2FuIGNhbGwgc2V0bG9j
YWxlKCkgb24gVW5peCBwbGF0Zm9ybXMuIFBsZWFzZSByZWFkIHRoZQorICogcGxhdGZvcm0gZG9j
dW1lbnRhdGlvbiBvbiBzZXRsb2NhbGUoKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgor
ICogQHJldHVybiB0aGUgZGVmYXVsdCBjb2RlcGFnZSBmb3IgdGhpcyBwbGF0Zm9ybSAKKyAqIEBp
bnRlcm5hbAorICovCitVX0lOVEVSTkFMIGNvbnN0IGNoYXIqICBVX0VYUE9SVDIgdXBydl9nZXRE
ZWZhdWx0Q29kZXBhZ2Uodm9pZCk7CisjZW5kaWYKKworLyoqCisgKiBQbGVhc2UgdXNlIHVsb2Nf
Z2V0RGVmYXVsdCgpIGluc3RlYWQuCisgKiBSZXR1cm4gdGhlIGRlZmF1bHQgbG9jYWxlIElEIHN0
cmluZyBieSBxdWVyeWluZyB0aHMgc3lzdGVtLCBvcgorICogICAgIHplcm8gaWYgb25lIGNhbm5v
dCBiZSBmb3VuZC4gCisgKiBUaGlzIGZ1bmN0aW9uIGNhbiBjYWxsIHNldGxvY2FsZSgpIG9uIFVu
aXggcGxhdGZvcm1zLiBQbGVhc2UgcmVhZCB0aGUKKyAqIHBsYXRmb3JtIGRvY3VtZW50YXRpb24g
b24gc2V0bG9jYWxlKCkgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KKyAqIEByZXR1cm4g
dGhlIGRlZmF1bHQgbG9jYWxlIElEIHN0cmluZworICogQGludGVybmFsCisgKi8KK1VfSU5URVJO
QUwgY29uc3QgY2hhciogIFVfRVhQT1JUMiB1cHJ2X2dldERlZmF1bHRMb2NhbGVJRCh2b2lkKTsK
KworLyoqCisgKiBUaW1lIHpvbmUgdXRpbGl0aWVzCisgKgorICogV3JhcHBlcnMgZm9yIEMgcnVu
dGltZSBsaWJyYXJ5IGZ1bmN0aW9ucyByZWxhdGluZyB0byB0aW1lem9uZXMuCisgKiBUaGUgdF90
enNldCgpIGZ1bmN0aW9uIChzaW1pbGFyIHRvIHR6c2V0KSB1c2VzIHRoZSBjdXJyZW50IHNldHRp
bmcKKyAqIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBUWiB0byBhc3NpZ24gdmFsdWVzIHRv
IHRocmVlIGdsb2JhbAorICogdmFyaWFibGVzOiBkYXlsaWdodCwgdGltZXpvbmUsIGFuZCB0em5h
bWUuIFRoZXNlIHZhcmlhYmxlcyBoYXZlIHRoZQorICogZm9sbG93aW5nIG1lYW5pbmdzLCBhbmQg
YXJlIGRlY2xhcmVkIGluICZsdDt0aW1lLmgmZ3Q7LgorICoKKyAqICAgZGF5bGlnaHQgICBOb256
ZXJvIGlmIGRheWxpZ2h0LXNhdmluZy10aW1lIHpvbmUgKERTVCkgaXMgc3BlY2lmaWVkCisgKiAg
ICAgICAgICAgICAgaW4gVFo7IG90aGVyd2lzZSwgMC4gRGVmYXVsdCB2YWx1ZSBpcyAxLgorICog
ICB0aW1lem9uZSAgIERpZmZlcmVuY2UgaW4gc2Vjb25kcyBiZXR3ZWVuIGNvb3JkaW5hdGVkIHVu
aXZlcnNhbAorICogICAgICAgICAgICAgIHRpbWUgYW5kIGxvY2FsIHRpbWUuIEUuZy4sIC0yOCw4
MDAgZm9yIFBTVCAoR01ULThocnMpCisgKiAgIHR6bmFtZSgwKSAgVGhyZWUtbGV0dGVyIHRpbWUt
em9uZSBuYW1lIGRlcml2ZWQgZnJvbSBUWiBlbnZpcm9ubWVudAorICogICAgICAgICAgICAgIHZh
cmlhYmxlLiBFLmcuLCAiUFNUIi4KKyAqICAgdHpuYW1lKDEpICBUaHJlZS1sZXR0ZXIgRFNUIHpv
bmUgbmFtZSBkZXJpdmVkIGZyb20gVFogZW52aXJvbm1lbnQKKyAqICAgICAgICAgICAgICB2YXJp
YWJsZS4gIEUuZy4sICJQRFQiLiBJZiBEU1Qgem9uZSBpcyBvbWl0dGVkIGZyb20gVFosCisgKiAg
ICAgICAgICAgICAgdHpuYW1lKDEpIGlzIGFuIGVtcHR5IHN0cmluZy4KKyAqCisgKiBOb3Rlczog
Rm9yIGV4YW1wbGUsIHRvIHNldCB0aGUgVFogZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gY29ycmVz
cG9uZAorICogdG8gdGhlIGN1cnJlbnQgdGltZSB6b25lIGluIEdlcm1hbnksIHlvdSBjYW4gdXNl
IG9uZSBvZiB0aGUKKyAqIGZvbGxvd2luZyBzdGF0ZW1lbnRzOgorICoKKyAqICAgc2V0IFRaPUdT
VDFHRFQKKyAqICAgc2V0IFRaPUdTVCsxR0RUCisgKgorICogSWYgdGhlIFRaIHZhbHVlIGlzIG5v
dCBzZXQsIHRfdHpzZXQoKSBhdHRlbXB0cyB0byB1c2UgdGhlIHRpbWUgem9uZQorICogaW5mb3Jt
YXRpb24gc3BlY2lmaWVkIGJ5IHRoZSBvcGVyYXRpbmcgc3lzdGVtLiBVbmRlciBXaW5kb3dzIE5U
CisgKiBhbmQgV2luZG93cyA5NSwgdGhpcyBpbmZvcm1hdGlvbiBpcyBzcGVjaWZpZWQgaW4gdGhl
IENvbnRyb2wgUGFuZWwncworICogRGF0ZS9UaW1lIGFwcGxpY2F0aW9uLgorICogQGludGVybmFs
CisgKi8KK1VfSU5URVJOQUwgdm9pZCAgICAgVV9FWFBPUlQyIHVwcnZfdHpzZXQodm9pZCk7CisK
Ky8qKgorICogRGlmZmVyZW5jZSBpbiBzZWNvbmRzIGJldHdlZW4gY29vcmRpbmF0ZWQgdW5pdmVy
c2FsCisgKiB0aW1lIGFuZCBsb2NhbCB0aW1lLiBFLmcuLCAtMjgsODAwIGZvciBQU1QgKEdNVC04
aHJzKQorICogQHJldHVybiB0aGUgZGlmZmVyZW5jZSBpbiBzZWNvbmRzIGJldHdlZW4gY29vcmRp
bmF0ZWQgdW5pdmVyc2FsIHRpbWUgYW5kIGxvY2FsIHRpbWUuCisgKiBAaW50ZXJuYWwKKyAqLwor
VV9JTlRFUk5BTCBpbnQzMl90ICBVX0VYUE9SVDIgdXBydl90aW1lem9uZSh2b2lkKTsKKworLyoq
CisgKiAgIHR6bmFtZSgwKSAgVGhyZWUtbGV0dGVyIHRpbWUtem9uZSBuYW1lIGRlcml2ZWQgZnJv
bSBUWiBlbnZpcm9ubWVudAorICogICAgICAgICAgICAgIHZhcmlhYmxlLiBFLmcuLCAiUFNUIi4K
KyAqICAgdHpuYW1lKDEpICBUaHJlZS1sZXR0ZXIgRFNUIHpvbmUgbmFtZSBkZXJpdmVkIGZyb20g
VFogZW52aXJvbm1lbnQKKyAqICAgICAgICAgICAgICB2YXJpYWJsZS4gIEUuZy4sICJQRFQiLiBJ
ZiBEU1Qgem9uZSBpcyBvbWl0dGVkIGZyb20gVFosCisgKiAgICAgICAgICAgICAgdHpuYW1lKDEp
IGlzIGFuIGVtcHR5IHN0cmluZy4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGNvbnN0
IGNoYXIqIFVfRVhQT1JUMiB1cHJ2X3R6bmFtZShpbnQgbik7CisKKy8qKgorICogR2V0IFVUQyAo
R01UKSB0aW1lIG1lYXN1cmVkIGluIG1pbGxpc2Vjb25kcyBzaW5jZSAwOjAwIG9uIDEvMS8xOTcw
LgorICogVGhpcyBmdW5jdGlvbiBpcyBhZmZlY3RlZCBieSAnZmFrZXRpbWUnIGFuZCBzaG91bGQg
YmUgdGhlIGJvdHRsZW5lY2sgZm9yIGFsbCB1c2VyLXZpc2libGUgSUNVIHRpbWUgZnVuY3Rpb25z
LgorICogQHJldHVybiB0aGUgVVRDIHRpbWUgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzCisgKiBA
aW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBVRGF0ZSBVX0VYUE9SVDIgdXBydl9nZXRVVEN0aW1l
KHZvaWQpOworCisvKioKKyAqIEdldCBVVEMgKEdNVCkgdGltZSBtZWFzdXJlZCBpbiBtaWxsaXNl
Y29uZHMgc2luY2UgMDowMCBvbiAxLzEvMTk3MC4KKyAqIFRoaXMgZnVuY3Rpb24gaXMgbm90IGFm
ZmVjdGVkIGJ5ICdmYWtldGltZScsIHNvIGl0IHNob3VsZCBvbmx5IGJlIHVzZWQgYnkgbG93IGxl
dmVsIHRlc3QgZnVuY3Rpb25zLSBub3QgYnkgYW55dGhpbmcgdGhhdAorICogZXhwb3NlcyB0aW1l
IHRvIHRoZSBlbmQgdXNlci4KKyAqIEByZXR1cm4gdGhlIFVUQyB0aW1lIG1lYXN1cmVkIGluIG1p
bGxpc2Vjb25kcworICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgVURhdGUgVV9FWFBPUlQy
IHVwcnZfZ2V0UmF3VVRDdGltZSh2b2lkKTsKKworLyoqCisgKiBEZXRlcm1pbmUgd2hldGhlciBh
IHBhdGhuYW1lIGlzIGFic29sdXRlIG9yIG5vdCwgYXMgZGVmaW5lZCBieSB0aGUgcGxhdGZvcm0u
CisgKiBAcGFyYW0gcGF0aCBQYXRobmFtZSB0byB0ZXN0CisgKiBAcmV0dXJuIFRSVUUgaWYgdGhl
IHBhdGggaXMgYWJzb2x1dGUKKyAqIEBpbnRlcm5hbCAoSUNVIDMuMCkKKyAqLworVV9JTlRFUk5B
TCBVQm9vbCBVX0VYUE9SVDIgdXBydl9wYXRoSXNBYnNvbHV0ZShjb25zdCBjaGFyICpwYXRoKTsK
KworLyoqCisgKiBVc2UgVV9NQVhfUFRSIGluc3RlYWQgb2YgdGhpcyBmdW5jdGlvbi4KKyAqIEBw
YXJhbSB2b2lkIHBvaW50ZXIgdG8gdGVzdAorICogQHJldHVybiB0aGUgbGFyZ2VzdCBwb3NzaWJs
ZSBwb2ludGVyIGdyZWF0ZXIgdGhhbiB0aGUgYmFzZQorICogQGludGVybmFsIChJQ1UgMy44KQor
ICovCitVX0lOVEVSTkFMIHZvaWQgKiBVX0VYUE9SVDIgdXBydl9tYXhpbXVtUHRyKHZvaWQgKmJh
c2UpOworCisvKioKKyAqIE1heGltdW0gdmFsdWUgb2YgYSAodm9pZCopIC0gdXNlIHRvIGluZGlj
YXRlIHRoZSBsaW1pdCBvZiBhbiAnaW5maW5pdGUnIGJ1ZmZlci4KKyAqIEluIGZhY3QsIGJ1ZmZl
ciBzaXplcyBtdXN0IG5vdCBleGNlZWQgMkdCIHNvIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2Vl
bgorICogdGhlIGJ1ZmZlciBsaW1pdCBhbmQgdGhlIGJ1ZmZlciBzdGFydCBjYW4gYmUgZXhwcmVz
c2VkIGluIGFuIGludDMyX3QuCisgKgorICogVGhlIGRlZmluaXRpb24gb2YgVV9NQVhfUFRSIG11
c3QgZnVsZmlsbCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKiAtIHJldHVybiB0aGUgbGFy
Z2VzdCBwb3NzaWJsZSBwb2ludGVyIGdyZWF0ZXIgdGhhbiBiYXNlCisgKiAtIHJldHVybiBhIHZh
bGlkIHBvaW50ZXIgYWNjb3JkaW5nIHRvIHRoZSBtYWNoaW5lIGFyY2hpdGVjdHVyZSAoQVMvNDAw
LCA2NC1iaXQsIGV0Yy4pCisgKiAtIGF2b2lkIHdyYXBwaW5nIGFyb3VuZCBhdCBoaWdoIGFkZHJl
c3NlcworICogLSBtYWtlIHN1cmUgdGhhdCB0aGUgcmV0dXJuZWQgcG9pbnRlciBpcyBub3QgZmFy
dGhlciBmcm9tIGJhc2UgdGhhbiAweDdmZmZmZmZmIGJ5dGVzCisgKgorICogQHBhcmFtIGJhc2Ug
VGhlIGJlZ2lubmluZyBvZiBhIGJ1ZmZlciB0byBmaW5kIHRoZSBtYXhpbXVtIG9mZnNldCBmcm9t
CisgKiBAaW50ZXJuYWwKKyAqLworI2lmbmRlZiBVX01BWF9QVFIKKyMgIGlmIFVfUExBVEZPUk0g
PT0gVV9QRl9PUzM5MCAmJiAhZGVmaW5lZChfTFA2NCkKKyAgICAvKiBXZSBoYXZlIDMxLWJpdCBw
b2ludGVycy4gKi8KKyMgICAgZGVmaW5lIFVfTUFYX1BUUihiYXNlKSAoKHZvaWQgKikweDdmZmZm
ZmZmKQorIyAgZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAKKyMgICAgZGVmaW5lIFVfTUFY
X1BUUihiYXNlKSB1cHJ2X21heGltdW1QdHIoKHZvaWQgKiliYXNlKQorIyAgZWxpZiAwCisgICAg
LyoKKyAgICAgKiBGb3IgcGxhdGZvcm1zIHdoZXJlIHBvaW50ZXJzIGFyZSBzY2FsYXIgdmFsdWVz
ICh3aGljaCBpcyBub3JtYWwsIGJ1dCB1bmxpa2UgaTUvT1MpCisgICAgICogYnV0IHRoYXQgZG8g
bm90IGRlZmluZSB1aW50cHRyX3QuCisgICAgICoKKyAgICAgKiBIb3dldmVyLCB0aGlzIGRvZXMg
bm90IHdvcmsgb24gbW9kZXJuIGNvbXBpbGVyczoKKyAgICAgKiBUaGUgQysrIHN0YW5kYXJkIGRv
ZXMgbm90IGRlZmluZSBwb2ludGVyIG92ZXJmbG93LCBhbmQgYWxsb3dzIGNvbXBpbGVycyB0bwor
ICAgICAqIGFzc3VtZSB0aGF0IHArdT5wIGZvciBhbnkgcG9pbnRlciBwIGFuZCBhbnkgaW50ZWdl
ciB1PjAuCisgICAgICogVGh1cywgbW9kZXJuIGNvbXBpbGVycyBvcHRpbWl6ZSBhd2F5IHRoZSAi
PiIgY29tcGFyaXNvbi4KKyAgICAgKiAoU2VlIElDVSB0aWNrZXRzICM3MTg3IGFuZCAjODA5Ni4p
CisgICAgICovCisjICAgIGRlZmluZSBVX01BWF9QVFIoYmFzZSkgXAorICAgICgodm9pZCAqKSgo
KGNoYXIgKikoYmFzZSkrMHg3ZmZmZmZmZnUpID4gKGNoYXIgKikoYmFzZSkgXAorICAgICAgICA/
ICgoY2hhciAqKShiYXNlKSsweDdmZmZmZmZmdSkgXAorICAgICAgICA6IChjaGFyICopLTEpKQor
IyAgZWxzZQorICAgIC8qIERlZmF1bHQgdmVyc2lvbi4gQysrIHN0YW5kYXJkIGNvbXBsaWFudCBm
b3Igc2NhbGFyIHBvaW50ZXJzLiAqLworIyAgICBkZWZpbmUgVV9NQVhfUFRSKGJhc2UpIFwKKyAg
ICAoKHZvaWQgKikoKCh1aW50cHRyX3QpKGJhc2UpKzB4N2ZmZmZmZmZ1KSA+ICh1aW50cHRyX3Qp
KGJhc2UpIFwKKyAgICAgICAgPyAoKHVpbnRwdHJfdCkoYmFzZSkrMHg3ZmZmZmZmZnUpIFwKKyAg
ICAgICAgOiAodWludHB0cl90KS0xKSkKKyMgIGVuZGlmCisjZW5kaWYKKworLyogIER5bmFtaWMg
TGlicmFyeSBGdW5jdGlvbnMgKi8KKwordHlwZWRlZiB2b2lkIChVVm9pZEZ1bmN0aW9uKSh2b2lk
KTsKKworI2lmIFVfRU5BQkxFX0RZTE9BRAorLyoqCisgKiBMb2FkIGEgbGlicmFyeQorICogQGlu
dGVybmFsIChJQ1UgNC40KQorICovCitVX0lOVEVSTkFMIHZvaWQgKiBVX0VYUE9SVDIgdXBydl9k
bF9vcGVuKGNvbnN0IGNoYXIgKmxpYk5hbWUsIFVFcnJvckNvZGUgKnN0YXR1cyk7CisKKy8qKgor
ICogQ2xvc2UgYSBsaWJyYXJ5CisgKiBAaW50ZXJuYWwgKElDVSA0LjQpCisgKi8KK1VfSU5URVJO
QUwgdm9pZCBVX0VYUE9SVDIgdXBydl9kbF9jbG9zZSggdm9pZCAqbGliLCBVRXJyb3JDb2RlICpz
dGF0dXMpOworCisvKioKKyAqIEV4dHJhY3QgYSBzeW1ib2wgZnJvbSBhIGxpYnJhcnkgKGZ1bmN0
aW9uKQorICogQGludGVybmFsIChJQ1UgNC44KQorICovCitVX0lOVEVSTkFMIFVWb2lkRnVuY3Rp
b24qIFVfRVhQT1JUMiB1cHJ2X2Rsc3ltX2Z1bmMoIHZvaWQgKmxpYiwgY29uc3QgY2hhciAqc3lt
Ym9sTmFtZSwgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworLyoqCisgKiBFeHRyYWN0IGEgc3ltYm9s
IGZyb20gYSBsaWJyYXJ5IChmdW5jdGlvbikKKyAqIE5vdCBpbXBsZW1lbnRlZCwgbm8gY2xpZW50
cy4KKyAqIEBpbnRlcm5hbAorICovCisvKiBVX0lOVEVSTkFMIHZvaWQgKiBVX0VYUE9SVDIgdXBy
dl9kbHN5bV9kYXRhKCB2b2lkICpsaWIsIGNvbnN0IGNoYXIgKnN5bWJvbE5hbWUsIFVFcnJvckNv
ZGUgKnN0YXR1cyk7ICovCisKKyNlbmRpZgorCisvKioKKyAqIERlZmluZSBtYWxsb2MgYW5kIHJl
bGF0ZWQgZnVuY3Rpb25zCisgKiBAaW50ZXJuYWwKKyAqLworI2lmIFVfUExBVEZPUk0gPT0gVV9Q
Rl9PUzQwMAorIyBkZWZpbmUgdXBydl9kZWZhdWx0X21hbGxvYyh4KSBfQ19UU19tYWxsb2MoeCkK
KyMgZGVmaW5lIHVwcnZfZGVmYXVsdF9yZWFsbG9jKHgseSkgX0NfVFNfcmVhbGxvYyh4LHkpCisj
IGRlZmluZSB1cHJ2X2RlZmF1bHRfZnJlZSh4KSBfQ19UU19mcmVlKHgpCisvKiBhbHNvIF9DX1RT
X2NhbGxvYyh4KSAqLworI2Vsc2UKKy8qIEMgZGVmYXVsdHMgKi8KKyMgZGVmaW5lIHVwcnZfZGVm
YXVsdF9tYWxsb2MoeCkgbWFsbG9jKHgpCisjIGRlZmluZSB1cHJ2X2RlZmF1bHRfcmVhbGxvYyh4
LHkpIHJlYWxsb2MoeCx5KQorIyBkZWZpbmUgdXBydl9kZWZhdWx0X2ZyZWUoeCkgZnJlZSh4KQor
I2VuZGlmCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvZ2VuYnJrL3JiYmlkYXRhLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvZ2VuYnJrL3JiYmlkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjUyNzRjM2FkYmJmNDkyNTcxZTcy
MTNjYzUyMjRkNGIxMWNlZDMzYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvcmJiaWRhdGEuaApAQCAtMCwwICsxLDIwMCBAQAorLyoK
KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxNCBJ
bnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVy
cy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAg
ZmlsZSBuYW1lOiAgcmJiaWRhdGEuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFi
IHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIFJCQkkgZGF0
YSBmb3JtYXRzICBJbmNsdWRlcworKgorKiAgICAgICAgICAgICAgICAgICAgICAgICAgU3RydWN0
cyB0aGF0IGRlc2NyaWJlcyB0aGUgZm9ybWF0IG9mIHRoZSBCaW5hcnkgUkJCSSBkYXRhLAorKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXMgaXQgaXMgc3RvcmVkIGluIElDVSdzIGRhdGEgZmls
ZS4KKyoKKyogICAgICBSQkJJRGF0YVdyYXBwZXIgIC0gIEluc3RhbmNlcyBvZiB0aGlzIGNsYXNz
IHNpdCBiZXR3ZWVuIHRoZQorKiAgICAgICAgICAgICAgICAgICAgICAgICAgcmF3IGRhdGEgc3Ry
dWN0cyBhbmQgdGhlIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yIG9iamVjdHMKKyogICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoYXQgYXJlIGNyZWF0ZWQgYnkgYXBwbGljYXRpb25zLiAgVGhlIHdy
YXBwZXIgY2xhc3MKKyogICAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVzIHJlZmVyZW5j
ZSBjb3VudGluZyBmb3IgdGhlIHVuZGVybHlpbmcgZGF0YSwKKyogICAgICAgICAgICAgICAgICAg
ICAgICAgIGFuZCBkaXJlY3QgcG9pbnRlcnMgdG8gZGF0YSB0aGF0IHdvdWxkIG5vdCBvdGhlcndp
c2UKKyogICAgICAgICAgICAgICAgICAgICAgICAgIGJlIGFjY2Vzc2libGUgd2l0aG91dCB1Z2x5
IHBvaW50ZXIgYXJpdGhtZXRpYy4gIFRoZQorKiAgICAgICAgICAgICAgICAgICAgICAgICAgd3Jh
cHBlciBkb2VzIG5vdCBhdHRlbXB0IHRvIHByb3ZpZGUgYW55IGhpZ2hlciBsZXZlbAorKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgYWJzdHJhY3Rpb25zIGZvciB0aGUgZGF0YSBpdHNlbGYuCisq
CisqICAgICAgICAgICAgICAgICAgICAgICAgICBUaGVyZSB3aWxsIGJlIG9ubHkgb25lIGluc3Rh
bmNlIG9mIFJCQklEYXRhV3JhcHBlciBmb3IgYW55CisqICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZXQgb2YgUkJCSSBydW4gdGltZSBkYXRhIGJlaW5nIHNoYXJlZCBieSBpbnN0YW5jZXMKKyog
ICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9uZXMpIG9mIFJ1bGVzQmFzZWRCcmVha0l0ZXJh
dG9yLgorKi8KKworI2lmbmRlZiBfX1JCQklEQVRBX0hfXworI2RlZmluZSBfX1JCQklEQVRBX0hf
XworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRh
LmgiCisjaW5jbHVkZSAidWRhdGFzd3AuaCIKKworLyoqCisgKiBTd2FwIFJCQkkgZGF0YS4gU2Vl
IHVkYXRhc3dwLmguCisgKiBAaW50ZXJuYWwKKyAqLworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQy
Cit1YnJrX3N3YXAoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICBjb25zdCB2b2lk
ICppbkRhdGEsIGludDMyX3QgbGVuZ3RoLCB2b2lkICpvdXREYXRhLAorICAgICAgICAgIFVFcnJv
ckNvZGUgKnBFcnJvckNvZGUpOworCisjaWZkZWYgX19jcGx1c3BsdXMKKworI2luY2x1ZGUgInVu
aWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisjaW5jbHVkZSAi
dW11dGV4LmgiCisjaW5jbHVkZSAidXRyaWUuaCIKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyog
IAorICogICBUaGUgZm9sbG93aW5nIHN0cnVjdHMgbWFwIGV4YWN0bHkgb250byB0aGUgcmF3IGRh
dGEgZnJvbSBJQ1UgY29tbW9uIGRhdGEgZmlsZS4gCisgKi8KK3N0cnVjdCBSQkJJRGF0YUhlYWRl
ciB7CisgICAgdWludDMyX3QgICAgICAgICBmTWFnaWM7ICAgICAgICAgICAvKiAgPT0gMHhibGEw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIHVp
bnQ4X3QgICAgICAgICAgZkZvcm1hdFZlcnNpb25bNF07IC8qIERhdGEgRm9ybWF0LiAgU2FtZSBh
cyB0aGUgdmFsdWUgaW4gc3RydWN0IFVEYXRhSW5mbyAgICAgICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiAgIGlmIHRoZXJlIGlzIG9uZSBhc3NvY2lhdGVkIHdp
dGggdGhpcyBkYXRhLiAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLyogICAgICh2ZXJzaW9uIG9yaWdpbmF0ZXMgaW4gcmJiaSwgaXMgY29waWVk
IHRvIFVEYXRhSW5mbykgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qICAgRm9yIElDVSAzLjIgYW5kIGVhcmxpZXIsIHRoaXMgZmllbGQgd2FzICAgICAgICAgICAg
ICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICB1
aW50MzJfdCAgZlZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICB3aXRoIGEgdmFsdWUgb2Yg
MS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50MzJfdCAg
ICAgICAgIGZMZW5ndGg7ICAgICAgICAgIC8qICBUb3RhbCBsZW5ndGggaW4gYnl0ZXMgb2YgdGhp
cyBSQkJJIERhdGEsICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiAgICAgIGluY2x1ZGluZyBhbGwgc2VjdGlvbnMsIG5vdCBqdXN0IHRo
ZSBoZWFkZXIuICAgICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICAgZkNhdENvdW50OyAgICAg
ICAgLyogIE51bWJlciBvZiBjaGFyYWN0ZXIgY2F0ZWdvcmllcy4gICAgICAgICAgICAgICAgICAg
ICAgICAgKi8KKworICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAvKiAgT2Zmc2V0cyBhbmQg
c2l6ZXMgb2YgZWFjaCBvZiB0aGUgc3Vic2VjdGlvbnMgd2l0aGluIHRoZSBSQkJJIGRhdGEuICAg
ICovCisgICAgLyogIEFsbCBvZmZzZXRzIGFyZSBieXRlcyBmcm9tIHRoZSBzdGFydCBvZiB0aGUg
UkJCSURhdGFIZWFkZXIuICAgICAgICAgICAqLworICAgIC8qICBBbGwgc2l6ZXMgYXJlIGluIGJ5
dGVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAg
ICAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICovCisgICAgdWludDMyX3QgICAgICAgICBmRlRhYmxlOyAgICAg
ICAgIC8qICBmb3J3YXJkIHN0YXRlIHRyYW5zaXRpb24gdGFibGUuICovCisgICAgdWludDMyX3Qg
ICAgICAgICBmRlRhYmxlTGVuOworICAgIHVpbnQzMl90ICAgICAgICAgZlJUYWJsZTsgICAgICAg
ICAvKiAgT2Zmc2V0IHRvIHRoZSByZXZlcnNlIHN0YXRlIHRyYW5zaXRpb24gdGFibGUuICovCisg
ICAgdWludDMyX3QgICAgICAgICBmUlRhYmxlTGVuOworICAgIHVpbnQzMl90ICAgICAgICAgZlNG
VGFibGU7ICAgICAgICAvKiAgc2FmZSBwb2ludCBmb3J3YXJkIHRyYW5zaXRpb24gdGFibGUgKi8K
KyAgICB1aW50MzJfdCAgICAgICAgIGZTRlRhYmxlTGVuOworICAgIHVpbnQzMl90ICAgICAgICAg
ZlNSVGFibGU7ICAgICAgICAvKiAgc2FmZSBwb2ludCByZXZlcnNlIHRyYW5zaXRpb24gdGFibGUg
Ki8KKyAgICB1aW50MzJfdCAgICAgICAgIGZTUlRhYmxlTGVuOworICAgIHVpbnQzMl90ICAgICAg
ICAgZlRyaWU7ICAgICAgICAgICAvKiAgT2Zmc2V0IHRvIFRyaWUgZGF0YSBmb3IgY2hhcmFjdGVy
IGNhdGVnb3JpZXMgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZUcmllTGVuOworICAgIHVpbnQz
Ml90ICAgICAgICAgZlJ1bGVTb3VyY2U7ICAgICAvKiAgT2Zmc2V0IHRvIHRoZSBzb3VyY2UgZm9y
IGZvciB0aGUgYnJlYWsgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZSdWxlU291cmNlTGVuOyAg
LyogICAgcnVsZXMuICBTdG9yZWQgVUNoYXIgKi4gKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZT
dGF0dXNUYWJsZTsgICAgLyogT2Zmc2V0IHRvIHRoZSB0YWJsZSBvZiBydWxlIHN0YXR1cyB2YWx1
ZXMgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZTdGF0dXNUYWJsZUxlbjsKKworICAgIHVpbnQz
Ml90ICAgICAgICAgZlJlc2VydmVkWzZdOyAgICAvKiAgUmVzZXJ2ZWQgZm9yIGV4cGFuc2lvbiAq
LworCit9OworCisKKworc3RydWN0ICBSQkJJU3RhdGVUYWJsZVJvdyB7CisgICAgaW50MTZfdCAg
ICAgICAgICBmQWNjZXB0aW5nOyAgICAvKiAgTm9uLXplcm8gaWYgdGhpcyByb3cgaXMgZm9yIGFu
IGFjY2VwdGluZyBzdGF0ZS4gICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogIFZhbHVlIDA6IG5vdCBhbiBhY2NlcHRpbmcgc3RhdGUuICAgICAgICAgICAgICAgICAg
Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgIC0xOiBVbmNv
bmRpdGlvbmFsIEFjY2VwdGluZyBzdGF0ZS4gICAgICAgICAgICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKiAgICBwb3NpdGl2ZTogIExvb2stYWhlYWQgbWF0Y2ggaGFz
IGNvbXBsZXRlZC4gICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyogICAgICAgICAgIEFjdHVhbCBib3VuZGFyeSBwb3NpdGlvbiBoYXBwZW5lZCBlYXJsaWVyICov
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgVmFsdWUg
aGVyZSA9PSBmTG9va0FoZWFkIGluIGVhcmxpZXIgICAgICAqLworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgIHN0YXRlLCBhdCBhY3R1YWwgYm91bmRh
cnkgcG9zLiAgICAgICAgKi8KKyAgICBpbnQxNl90ICAgICAgICAgIGZMb29rQWhlYWQ7ICAgIC8q
ICBOb24temVybyBpZiB0aGlzIHJvdyBpcyBmb3IgYSBzdGF0ZSB0aGF0ICAgICAgICAgICovCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICBjb3JyZXNwb25kcyB0byBh
ICcvJyBpbiB0aGUgcnVsZSBzb3VyY2UuICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyogICAgVmFsdWUgaXMgdGhlIHNhbWUgYXMgdGhlIGZBY2NlcHRpbmcg
ICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAg
ICAgdmFsdWUgZm9yIHRoZSBydWxlICh3aGljaCB3aWxsIGFwcGVhciAgICAgICAgICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgIGluIGEgZGlmZmVyZW50IHN0
YXRlLiAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIGludDE2X3QgICAgICAgICAgZlRh
Z0lkeDsgICAgICAgLyogIE5vbi16ZXJvIGlmIHRoaXMgcm93IGNvdmVycyBhIHt0YWdnZWR9IHBv
c2l0aW9uICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICBm
cm9tIGEgcnVsZS4gIFZhbHVlIGlzIHRoZSBpbmRleCBpbiB0aGUgICAgICAgICovCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgU3RhdHVzVGFibGUgb2YgdGhlIHNl
dCBvZiBtYXRjaGluZyAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLyogICAgIHRhZ3MgKHJ1bGUgc3RhdHVzIHZhbHVlcykgICAgICAgICAgICAgICAg
ICAgICAgKi8KKyAgICBpbnQxNl90ICAgICAgICAgIGZSZXNlcnZlZDsKKyAgICB1aW50MTZfdCAg
ICAgICAgIGZOZXh0U3RhdGVbMl07IC8qICBOZXh0IFN0YXRlLCBpbmRleGVkIGJ5IGNoYXIgY2F0
ZWdvcnkuICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvKiAgVGhpcyBhcnJheSBkb2VzIG5vdCBoYXZlIHR3byBlbGVtZW50cyAgICAgICAgICAgICAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgQXJyYXkgU2l6ZSBp
cyBhY3R1YWxseSBmRGF0YS0+ZkhlYWRlci0+ZkNhdENvdW50ICAgICAgICAgKi8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIENBVVRJT046ICBzZWUgUkJCSVRhYmxl
QnVpbGRlcjo6Z2V0VGFibGVTaXplKCkgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvKiAgICAgICAgICAgICAgYmVmb3JlIGNoYW5naW5nIGFueXRoaW5nIGhlcmUuICAg
ICAgICAqLworfTsKKworCitzdHJ1Y3QgUkJCSVN0YXRlVGFibGUgeworICAgIHVpbnQzMl90ICAg
ICAgICAgZk51bVN0YXRlczsgICAgLyogIE51bWJlciBvZiBzdGF0ZXMuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZSb3dMZW47ICAgICAg
IC8qICBMZW5ndGggb2YgYSBzdGF0ZSB0YWJsZSByb3csIGluIGJ5dGVzLiAgICAgICAgICAgICov
CisgICAgdWludDMyX3QgICAgICAgICBmRmxhZ3M7ICAgICAgICAvKiAgT3B0aW9uIEZsYWdzIGZv
ciB0aGlzIHN0YXRlIHRhYmxlICAgICAgICAgICAgICAgICAqLworICAgIHVpbnQzMl90ICAgICAg
ICAgZlJlc2VydmVkOyAgICAgLyogIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKi8KKyAgICBjaGFyICAgICAgICAgICAgIGZUYWJsZURhdGFbNF07IC8q
ICBGaXJzdCBSQkJJU3RhdGVUYWJsZVJvdyBiZWdpbnMgaGVyZS4gICAgICAgICAgICAgICovCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAobWFraW5nIGl0IGNoYXJb
XSBzaW1wbGlmaWVzIHVnbHkgYWRkcmVzcyAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyogICAgIGFyaXRobWV0aWMgZm9yIGluZGV4aW5nIHZhcmlhYmxlIGxl
bmd0aCByb3dzLikgKi8KK307CisKK3R5cGVkZWYgZW51bSB7CisgICAgUkJCSV9MT09LQUhFQURf
SEFSRF9CUkVBSyA9IDEsCisgICAgUkJCSV9CT0ZfUkVRVUlSRUQgPSAyCit9IFJCQklTdGF0ZVRh
YmxlRmxhZ3M7CisKKworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ki8KKy8qICAgVGhlIHJlZmVyZW5jZSBjb3VudGluZyB3cmFwcGVyIGNsYXNzICovCisvKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworY2xhc3MgUkJCSURhdGFXcmFw
cGVyIDogcHVibGljIFVNZW1vcnkgeworcHVibGljOgorICAgIGVudW0gRURvbnRBZG9wdCB7Cisg
ICAgICAgIGtEb250QWRvcHQKKyAgICB9OworICAgIFJCQklEYXRhV3JhcHBlcihjb25zdCBSQkJJ
RGF0YUhlYWRlciAqZGF0YSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyAgICBSQkJJRGF0YVdyYXBw
ZXIoY29uc3QgUkJCSURhdGFIZWFkZXIgKmRhdGEsIGVudW0gRURvbnRBZG9wdCBkb250QWRvcHQs
IFVFcnJvckNvZGUgJnN0YXR1cyk7CisgICAgUkJCSURhdGFXcmFwcGVyKFVEYXRhTWVtb3J5KiB1
ZG0sIFVFcnJvckNvZGUgJnN0YXR1cyk7CisgICAgflJCQklEYXRhV3JhcHBlcigpOworCisgICAg
dm9pZCAgICAgICAgICAgICAgICAgIGluaXQwKCk7CisgICAgdm9pZCAgICAgICAgICAgICAgICAg
IGluaXQoY29uc3QgUkJCSURhdGFIZWFkZXIgKmRhdGEsIFVFcnJvckNvZGUgJnN0YXR1cyk7Cisg
ICAgUkJCSURhdGFXcmFwcGVyICAgICAgKmFkZFJlZmVyZW5jZSgpOworICAgIHZvaWQgICAgICAg
ICAgICAgICAgICByZW1vdmVSZWZlcmVuY2UoKTsKKyAgICBVQm9vbCAgICAgICAgICAgICAgICAg
b3BlcmF0b3IgPT0oY29uc3QgUkJCSURhdGFXcmFwcGVyICZvdGhlcikgY29uc3Q7CisgICAgaW50
MzJfdCAgICAgICAgICAgICAgIGhhc2hDb2RlKCk7CisgICAgY29uc3QgVW5pY29kZVN0cmluZyAg
JmdldFJ1bGVTb3VyY2VTdHJpbmcoKSBjb25zdDsKKyNpZmRlZiBSQkJJX0RFQlVHCisgICAgdm9p
ZCAgICAgICAgICAgICAgICAgIHByaW50RGF0YSgpOworICAgIHZvaWQgICAgICAgICAgICAgICAg
ICBwcmludFRhYmxlKGNvbnN0IGNoYXIgKmhlYWRpbmcsIGNvbnN0IFJCQklTdGF0ZVRhYmxlICp0
YWJsZSk7CisjZWxzZQorICAgICNkZWZpbmUgcHJpbnREYXRhKCkKKyAgICAjZGVmaW5lIHByaW50
VGFibGUoaGVhZGluZywgdGFibGUpCisjZW5kaWYKKworICAgIC8qICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICovCisgICAgLyogICBQb2ludGVycyB0byBpdGVtcyB3aXRoaW4g
dGhlIGRhdGEgKi8KKyAgICAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
LworICAgIGNvbnN0IFJCQklEYXRhSGVhZGVyICAgICAqZkhlYWRlcjsKKyAgICBjb25zdCBSQkJJ
U3RhdGVUYWJsZSAgICAgKmZGb3J3YXJkVGFibGU7CisgICAgY29uc3QgUkJCSVN0YXRlVGFibGUg
ICAgICpmUmV2ZXJzZVRhYmxlOworICAgIGNvbnN0IFJCQklTdGF0ZVRhYmxlICAgICAqZlNhZmVG
d2RUYWJsZTsKKyAgICBjb25zdCBSQkJJU3RhdGVUYWJsZSAgICAgKmZTYWZlUmV2VGFibGU7Cisg
ICAgY29uc3QgVUNoYXIgICAgICAgICAgICAgICpmUnVsZVNvdXJjZTsKKyAgICBjb25zdCBpbnQz
Ml90ICAgICAgICAgICAgKmZSdWxlU3RhdHVzVGFibGU7IAorCisgICAgLyogbnVtYmVyIG9mIGlu
dDMyX3QgdmFsdWVzIGluIHRoZSBydWxlIHN0YXR1cyB0YWJsZS4gICBVc2VkIHRvIHNhbml0eSBj
aGVjayBpbmRleGluZyAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZlN0YXR1c01heElkeDsK
KworICAgIFVUcmllICAgICAgICAgICAgICAgZlRyaWU7CisKK3ByaXZhdGU6CisgICAgdV9hdG9t
aWNfaW50MzJfdCAgICBmUmVmQ291bnQ7CisgICAgVURhdGFNZW1vcnkgICpmVURhdGFNZW07Cisg
ICAgVW5pY29kZVN0cmluZyAgICAgICBmUnVsZVN0cmluZzsKKyAgICBVQm9vbCAgICAgICAgICAg
ICAgIGZEb250RnJlZURhdGE7CisKKyAgICBSQkJJRGF0YVdyYXBwZXIoY29uc3QgUkJCSURhdGFX
cmFwcGVyICZvdGhlcik7IC8qICBmb3JiaWQgY29weWluZyBvZiB0aGlzIGNsYXNzICovCisgICAg
UkJCSURhdGFXcmFwcGVyICZvcGVyYXRvcj0oY29uc3QgUkJCSURhdGFXcmFwcGVyICZvdGhlcik7
IC8qICBmb3JiaWQgY29weWluZyBvZiB0aGlzIGNsYXNzICovCit9OworCisKKworVV9OQU1FU1BB
Q0VfRU5ECisKKyNlbmRpZiAvKiBDKysgKi8KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VjbW5kYXRhLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VjbW5kYXRhLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzYx
NjNjNTA4Yjk3NzRiOGY5ZDJiYjRhYmUyMmMzNDE0MTgyNTRlZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWNtbmRhdGEuaApAQCAt
MCwwICsxLDExMSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdo
dCAoQykgMTk5OS0yMDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29y
cG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKiovCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogICBV
Q29tbW9uRGF0YSAgIEFuIGFic3RyYWN0IGludGVyZmFjZSBmb3IgZGVhbGluZyB3aXRoIElDVSBD
b21tb24gRGF0YSBGaWxlcy4KKyAqICAgICAgICAgICAgICAgICBJQ1UgQ29tbW9uIERhdGEgRmls
ZXMgYXJlIGEgZ3JvdXBpbmcgb2YgYSBudW1iZXIgb2YgaW5kaXZpZHVhbAorICogICAgICAgICAg
ICAgICAgIGRhdGEgaXRlbXMgKHJlc291cmNlcywgY29udmVydGVycywgdGFibGVzLCBhbnl0aGlu
ZykgaW50byBhCisgKiAgICAgICAgICAgICAgICAgc2luZ2xlIGZpbGUgb3IgZGxsLiAgVGhlIGNv
bWJpbmVkIGZvcm1hdCBpbmNsdWRlcyBhIHRhYmxlIG9mCisgKiAgICAgICAgICAgICAgICAgY29u
dGVudHMgZm9yIGxvY2F0aW5nIHRoZSBpbmRpdmlkdWFsIGl0ZW1zIGJ5IG5hbWUuCisgKgorICog
ICAgICAgICAgICAgICAgIFR3byBmb3JtYXRzIGZvciB0aGUgdGFibGUgb2YgY29udGVudHMgYXJl
IHN1cHBvcnRlZCwgd2hpY2ggaXMKKyAqICAgICAgICAgICAgICAgICB3aHkgdGhlcmUgaXMgYW4g
YWJzdHJhY3QgaW50ZWZhY2UgaW52b2x2ZWQuCisgKgorICogICAgICAgICAgICAgICAgIFRoZXNl
IGZ1bmN0aW9ucyBhcmUgcGFydCBvZiB0aGUgSUNVIGludGVybmFsIGltcGxlbWVudGF0aW9uLCBh
bmQKKyAqICAgICAgICAgICAgICAgICBhcmUgbm90IGludGVkZWQgdG8gYmUgdXNlZCBkaXJlY3Rs
eSBieSBhcHBsaWNhdGlvbnMuCisgKi8KKworI2lmbmRlZiBfX1VDTU5EQVRBX0hfXworI2RlZmlu
ZSBfX1VDTU5EQVRBX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgorI2luY2x1ZGUg
InVtYXBmaWxlLmgiCisKKworI2RlZmluZSBDT01NT05fREFUQV9OQU1FIFVfSUNVREFUQV9OQU1F
CisKK3R5cGVkZWYgc3RydWN0ICB7CisgICAgdWludDE2X3QgICAgaGVhZGVyU2l6ZTsKKyAgICB1
aW50OF90ICAgICBtYWdpYzE7CisgICAgdWludDhfdCAgICAgbWFnaWMyOworfSBNYXBwZWREYXRh
OworCisKK3R5cGVkZWYgc3RydWN0ICB7CisgICAgTWFwcGVkRGF0YSAgZGF0YUhlYWRlcjsKKyAg
ICBVRGF0YUluZm8gICBpbmZvOworfSBEYXRhSGVhZGVyOworCit0eXBlZGVmIHN0cnVjdCB7Cisg
ICAgdWludDMyX3QgbmFtZU9mZnNldDsKKyAgICB1aW50MzJfdCBkYXRhT2Zmc2V0OworfSBVRGF0
YU9mZnNldFRPQ0VudHJ5OworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdWludDMyX3QgY291bnQ7
CisgICAgVURhdGFPZmZzZXRUT0NFbnRyeSBlbnRyeVsyXTsgICAgLyogQWN0dWFsIHNpemUgb2Yg
YXJyYXkgaXMgZnJvbSBjb3VudC4gKi8KK30gVURhdGFPZmZzZXRUT0M7CisKKy8qKgorICogR2V0
IHRoZSBoZWFkZXIgc2l6ZSBmcm9tIGEgY29uc3QgRGF0YUhlYWRlciAqdWRoLgorICogSGFuZGxl
cyBvcHBvc2l0ZS1lbmRpYW4gZGF0YS4KKyAqCisgKiBAaW50ZXJuYWwKKyAqLworVV9DRlVOQyB1
aW50MTZfdAordWRhdGFfZ2V0SGVhZGVyU2l6ZShjb25zdCBEYXRhSGVhZGVyICp1ZGgpOworCisv
KioKKyAqIEdldCB0aGUgVURhdGFJbmZvLnNpemUgZnJvbSBhIGNvbnN0IFVEYXRhSW5mbyAqaW5m
by4KKyAqIEhhbmRsZXMgb3Bwb3NpdGUtZW5kaWFuIGRhdGEuCisgKgorICogQGludGVybmFsCisg
Ki8KK1VfQ0ZVTkMgdWludDE2X3QKK3VkYXRhX2dldEluZm9TaXplKGNvbnN0IFVEYXRhSW5mbyAq
aW5mbyk7CisKK1VfQ0RFQ0xfQkVHSU4KKy8qCisgKiAgIlZpcnR1YWwiIGZ1bmN0aW9ucyBmb3Ig
ZGF0YSBsb29rdXAuCisgKiAgVG8gY2FsbCBvbmUsIGdpdmVuIGEgVURhdGFNZW1vcnkgKnAsIHRo
ZSBjb2RlIGxvb2tzIGxpa2UgdGhpczoKKyAqICAgICBwLT52RnVuY3MuTG9va3VwKHAsIHRvY0Vu
dHJ5TmFtZSwgcEVycm9yQ29kZSk7CisgKiAgICAgICAgICAoSSBzdXJlIGRvIHdpc2ggdGhpcyB3
YXMgd3JpdHRlbiBpbiBDKyssIG5vdCBDKQorICovCisKK3R5cGVkZWYgY29uc3QgRGF0YUhlYWRl
ciAqCisoVV9DQUxMQ09OViAqIExvb2t1cEZuKShjb25zdCBVRGF0YU1lbW9yeSAqcERhdGEsCisg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp0b2NFbnRyeU5hbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQzMl90ICpwTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAg
ICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKK3R5cGVkZWYgdWludDMyX3QKKyhVX0NBTExD
T05WICogTnVtRW50cmllc0ZuKShjb25zdCBVRGF0YU1lbW9yeSAqcERhdGEpOworCitVX0NERUNM
X0VORAorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgTG9va3VwRm4gICAgICBMb29rdXA7CisgICAg
TnVtRW50cmllc0ZuICBOdW1FbnRyaWVzOyAKK30gY29tbW9uRGF0YUZ1bmNzOworCisKKy8qCisg
KiAgRnVuY3Rpb25zIHRvIGNoZWNrIHdoZXRoZXIgYSBVRGF0YU1lbW9yeSByZWZlcnMgdG8gbWVt
b3J5IGNvbnRhaW5pbmcgCisgKiAgICAgYSByZWNvZ25pemFibGUgaGVhZGVyIGFuZCB0YWJsZSBv
ZiBjb250ZW50cyBhIENvbW1vbiBEYXRhIEZvcm1hdAorICoKKyAqICAgICBJZiBhIHZhbGlkIGhl
YWRlciBhbmQgVE9DIGFyZSBmb3VuZCwKKyAqICAgICAgICAgc2V0IHRoZSBDb21tb25EYXRhRnVu
Y3MgZnVuY3Rpb24gZGlzcGF0Y2ggdmVjdG9yIGluIHRoZSBVRGF0YU1lbW9yeQorICogICAgICAg
ICAgICAgdG8gcG9pbnQgdG8gdGhlIHJpZ2h0IGZ1bmN0aW9ucyBmb3IgdGhlIFRPQyB0eXBlLgor
ICogICAgIG90aGVyd2lzZQorICogICAgICAgICBzZXQgYW4gZXJyb3Jjb2RlLgorICovCitVX0NG
VU5DIHZvaWQgdWRhdGFfY2hlY2tDb21tb25EYXRhKFVEYXRhTWVtb3J5ICpwRGF0YSwgVUVycm9y
Q29kZSAqcEVycm9yQ29kZSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91ZGF0YXN3cC5oIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL2dlbmJyay91ZGF0YXN3cC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2Yzg0OTU1Njc2
NzA4NmVhYjFiNWZiOWIwMzJlZjUwNjcwMGRjNzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VkYXRhc3dwLmgKQEAgLTAsMCArMSwz
NTEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAy
MDAzLTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlv
biBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKyogICBmaWxlIG5hbWU6ICB1ZGF0YXN3cC5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVND
SUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisq
ICAgY3JlYXRlZCBvbjogMjAwM2p1bjA1CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVy
ZXIKKyoKKyogICBEZWZpbml0aW9ucyBmb3IgSUNVIGRhdGEgdHJhbnNmb3JtYXRpb25zIGZvciBk
aWZmZXJlbnQgcGxhdGZvcm1zLAorKiAgIGNoYW5naW5nIGJldHdlZW4gYmlnLSBhbmQgbGl0dGxl
LWVuZGlhbiBkYXRhIGFuZC9vciBiZXR3ZWVuCisqICAgY2hhcnNldCBmYW1pbGllcyAoQVNDSUk8
LT5FQkNESUMpLgorKi8KKworI2lmbmRlZiBfX1VEQVRBU1dQX0hfXworI2RlZmluZSBfX1VEQVRB
U1dQX0hfXworCisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMu
aCIKKworLyogZm9yd2FyZCBkZWNsYXJhdGlvbiAqLworCitVX0NERUNMX0JFR0lOCisKK3N0cnVj
dCBVRGF0YVN3YXBwZXI7Cit0eXBlZGVmIHN0cnVjdCBVRGF0YVN3YXBwZXIgVURhdGFTd2FwcGVy
OworCisvKioKKyAqIEZ1bmN0aW9uIHR5cGUgZm9yIGRhdGEgdHJhbnNmb3JtYXRpb24uCisgKiBU
cmFuc2Zvcm1zIGRhdGEsIG9yIGp1c3QgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBkYXRhIGlm
CisgKiB0aGUgaW5wdXQgbGVuZ3RoIGlzIC0xLgorICogU3dhcCBmdW5jdGlvbnMgYXNzdW1lIHRo
YXQgdGhlaXIgZGF0YSBwb2ludGVycyBhcmUgYWxpZ25lZCBwcm9wZXJseS4KKyAqCisgKiBRdWlj
ayBpbXBsZW1lbnRhdGlvbiBvdXRsaW5lOgorICogKGJlc3QgdG8gY29weSBhbmQgYWRhcHQgYW5k
IGV4aXN0aW5nIHN3YXBwZXIgaW1wbGVtZW50YXRpb24pCisgKiBjaGVjayB0aGF0IHRoZSBkYXRh
IGxvb2tzIGxpa2UgdGhlIGV4cGVjdGVkIGZvcm1hdAorICogaWYobGVuZ3RoPDApIHsKKyAqICAg
cHJlZmxpZ2h0OgorICogICBuZXZlciBkZXJlZmVyZW5jZSBvdXREYXRhCisgKiAgIHJlYWQgaW5E
YXRhIGFuZCBkZXRlcm1pbmUgdGhlIGRhdGEgc2l6ZQorICogICBhc3N1bWUgdGhhdCBpbkRhdGEg
aXMgbG9uZyBlbm91Z2ggZm9yIHRoaXMKKyAqIH0gZWxzZSB7CisgKiAgIG91dERhdGEgY2FuIGJl
IE5VTEwgaWYgbGVuZ3RoPT0wCisgKiAgIGluRGF0YT09b3V0RGF0YSAoaW4tcGxhY2Ugc3dhcHBp
bmcpIHBvc3NpYmxlIGJ1dCBub3QgcmVxdWlyZWQhCisgKiAgIHZlcmlmeSB0aGF0IGxlbmd0aD49
KGFjdHVhbCBzaXplKQorICogICBpZiB0aGVyZSBpcyBhIGNoYW5jZSB0aGF0IG5vdCBldmVyeSBi
eXRlIHVwIHRvIHNpemUgaXMgcmVhY2hlZAorICogICAgIGR1ZSB0byBwYWRkaW5nIGV0Yy46Cisg
KiAgIGlmKGluRGF0YSE9b3V0RGF0YSkgeworICogICAgIG1lbWNweShvdXREYXRhLCBpbkRhdGEs
IGFjdHVhbCBzaXplKTsKKyAqICAgfQorICogICBzd2FwIGNvbnRlbnRzCisgKiB9CisgKiByZXR1
cm4gYWN0dWFsIHNpemUKKyAqCisgKiBGdXJ0aGVyIGltcGxlbWVudGF0aW9uIG5vdGVzOgorICog
LSByZWFkIGludGVnZXJzIGZyb20gaW5EYXRhIGJlZm9yZSBzd2FwcGluZyB0aGVtCisgKiAgIGJl
Y2F1c2UgaW4tcGxhY2Ugc3dhcHBpbmcgY2FuIG1ha2UgdGhlbSB1bnJlYWRhYmxlCisgKiAtIGNv
bXBhcmVJbnZDaGFycyBjb21wYXJlcyBhIGxvY2FsIFVuaWNvZGUgc3RyaW5nIHdpdGggYWxyZWFk
eS1zd2FwcGVkCisgKiAgIG91dHB1dCBjaGFyc2V0IHN0cmluZ3MKKyAqCisgKiBAcGFyYW0gZHMg
UG9pbnRlciB0byBVRGF0YVN3YXBwZXIgY29udGFpbmluZyBnbG9iYWwgZGF0YSBhYm91dCB0aGUK
KyAqICAgICAgICAgICB0cmFuc2Zvcm1hdGlvbiBhbmQgZnVuY3Rpb24gcG9pbnRlcnMgZm9yIGhh
bmRsaW5nIHByaW1pdGl2ZQorICogICAgICAgICAgIHR5cGVzLgorICogQHBhcmFtIGluRGF0YSBQ
b2ludGVyIHRvIHRoZSBpbnB1dCBkYXRhIHRvIGJlIHRyYW5zZm9ybWVkIG9yIGV4YW1pbmVkLgor
ICogQHBhcmFtIGxlbmd0aCBMZW5ndGggb2YgdGhlIGRhdGEsIGNvdW50aW5nIGJ5dGVzLiBNYXkg
YmUgLTEgZm9yIHByZWZsaWdodGluZy4KKyAqICAgICAgICAgICAgICAgSWYgbGVuZ3RoPj0wLCB0
aGVuIHRyYW5zZm9ybSB0aGUgZGF0YS4KKyAqICAgICAgICAgICAgICAgSWYgbGVuZ3RoPT0tMSwg
dGhlbiBvbmx5IGRldGVybWluZSB0aGUgbGVuZ3RoIG9mIHRoZSBkYXRhLgorICogICAgICAgICAg
ICAgICBUaGUgbGVuZ3RoIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGZyb20gdGhlIGRhdGEgaXRzZWxm
IGZvciBhbGwKKyAqICAgICAgICAgICAgICAgdHlwZXMgb2YgZGF0YSAoZS5nLiwgbm90IGZvciBz
aW1wbGUgYXJyYXlzIG9mIGludGVnZXJzKS4KKyAqIEBwYXJhbSBvdXREYXRhIFBvaW50ZXIgdG8g
dGhlIG91dHB1dCBkYXRhIGJ1ZmZlci4KKyAqICAgICAgICAgICAgICAgIElmIGxlbmd0aD49MCAo
dHJhbnNmb3JtYXRpb24pLCB0aGVuIHRoZSBvdXRwdXQgYnVmZmVyIG11c3QKKyAqICAgICAgICAg
ICAgICAgIGhhdmUgYSBjYXBhY2l0eSBvZiBhdCBsZWFzdCBsZW5ndGguCisgKiAgICAgICAgICAg
ICAgICBJZiBsZW5ndGg9PS0xLCB0aGVuIG91dERhdGEgd2lsbCBub3QgYmUgdXNlZCBhbmQgY2Fu
IGJlIE5VTEwuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBJQ1UgVUVycm9yQ29kZSBwYXJhbWV0ZXIs
IG11c3Qgbm90IGJlIE5VTEwgYW5kIG11c3QKKyAqICAgICAgICAgICAgICAgICAgIGZ1bGZpbGwg
VV9TVUNDRVNTIG9uIGlucHV0LgorICogQHJldHVybiBUaGUgYWN0dWFsIGxlbmd0aCBvZiB0aGUg
ZGF0YS4KKyAqCisgKiBAc2VlIFVEYXRhU3dhcHBlcgorICogQGludGVybmFsIElDVSAyLjgKKyAq
LwordHlwZWRlZiBpbnQzMl90IFVfQ0FMTENPTlYKK1VEYXRhU3dhcEZuKGNvbnN0IFVEYXRhU3dh
cHBlciAqZHMsCisgICAgICAgICAgICBjb25zdCB2b2lkICppbkRhdGEsIGludDMyX3QgbGVuZ3Ro
LCB2b2lkICpvdXREYXRhLAorICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisK
Ky8qKgorICogQ29udmVydCBvbmUgdWludDE2X3QgZnJvbSBpbnB1dCB0byBwbGF0Zm9ybSBlbmRp
YW5uZXNzLgorICogQGludGVybmFsIElDVSAyLjgKKyAqLwordHlwZWRlZiB1aW50MTZfdCBVX0NB
TExDT05WCitVRGF0YVJlYWRVSW50MTYodWludDE2X3QgeCk7CisKKy8qKgorICogQ29udmVydCBv
bmUgdWludDMyX3QgZnJvbSBpbnB1dCB0byBwbGF0Zm9ybSBlbmRpYW5uZXNzLgorICogQGludGVy
bmFsIElDVSAyLjgKKyAqLwordHlwZWRlZiB1aW50MzJfdCBVX0NBTExDT05WCitVRGF0YVJlYWRV
SW50MzIodWludDMyX3QgeCk7CisKKy8qKgorICogQ29udmVydCBvbmUgdWludDE2X3QgZnJvbSBw
bGF0Zm9ybSB0byBpbnB1dCBlbmRpYW5uZXNzLgorICogQGludGVybmFsIElDVSAyLjgKKyAqLwor
dHlwZWRlZiB2b2lkIFVfQ0FMTENPTlYKK1VEYXRhV3JpdGVVSW50MTYodWludDE2X3QgKnAsIHVp
bnQxNl90IHgpOworCisvKioKKyAqIENvbnZlcnQgb25lIHVpbnQzMl90IGZyb20gcGxhdGZvcm0g
dG8gaW5wdXQgZW5kaWFubmVzcy4KKyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK3R5cGVkZWYg
dm9pZCBVX0NBTExDT05WCitVRGF0YVdyaXRlVUludDMyKHVpbnQzMl90ICpwLCB1aW50MzJfdCB4
KTsKKworLyoqCisgKiBDb21wYXJlIGludmFyaWFudC1jaGFyYWN0ZXIgc3RyaW5ncywgb25lIGlu
IHRoZSBvdXRwdXQgZGF0YSBhbmQgdGhlCisgKiBvdGhlciBvbmUgY2FsbGVyLXByb3ZpZGVkIGlu
IFVuaWNvZGUuCisgKiBBbiBvdXRwdXQgZGF0YSBzdHJpbmcgaXMgY29tcGFyZWQgYmVjYXVzZSBz
dHJpbmdzIGFyZSB1c3VhbGx5IHN3YXBwZWQKKyAqIGJlZm9yZSB0aGUgcmVzdCBvZiB0aGUgZGF0
YSwgdG8gYWxsb3cgZm9yIHNvcnRpbmcgb2Ygc3RyaW5nIHRhYmxlcworICogYWNjb3JkaW5nIHRv
IHRoZSBvdXRwdXQgY2hhcnNldC4KKyAqIFlvdSBjYW4gdXNlIC0xIGZvciB0aGUgbGVuZ3RoIHBh
cmFtZXRlcnMgb2YgTlVMLXRlcm1pbmF0ZWQgc3RyaW5ncyBhcyB1c3VhbC4KKyAqIFJldHVybnMg
VW5pY29kZSBjb2RlIHBvaW50IG9yZGVyIGZvciBpbnZhcmlhbnQgY2hhcmFjdGVycy4KKyAqIEBp
bnRlcm5hbCBJQ1UgMi44CisgKi8KK3R5cGVkZWYgaW50MzJfdCBVX0NBTExDT05WCitVRGF0YUNv
bXBhcmVJbnZDaGFycyhjb25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciAqb3V0U3RyaW5nLCBpbnQzMl90IG91dExlbmd0aCwKKyAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFVDaGFyICpsb2NhbFN0cmluZywgaW50MzJfdCBsb2NhbExlbmd0aCk7
CisKKy8qKgorICogRnVuY3Rpb24gZm9yIG1lc3NhZ2Ugb3V0cHV0IHdoZW4gYW4gZXJyb3Igb2Nj
dXJzIGR1cmluZyBkYXRhIHN3YXBwaW5nLgorICogQSBmb3JtYXQgc3RyaW5nIGFuZCB2YXJpYWJs
ZSBudW1iZXIgb2YgYXJndW1lbnRzIGFyZSBwYXNzZWQKKyAqIGxpa2UgZm9yIHZwcmludGYoKS4K
KyAqCisgKiBAcGFyYW0gY29udGV4dCBBIGZ1bmN0aW9uLXNwZWNpZmljIGNvbnRleHQgcG9pbnRl
ci4KKyAqIEBwYXJhbSBmbXQgVGhlIGZvcm1hdCBzdHJpbmcuCisgKiBAcGFyYW0gYXJncyBUaGUg
YXJndW1lbnRzIGZvciBmb3JtYXQgc3RyaW5nIGluc2VydHMuCisgKgorICogQGludGVybmFsIElD
VSAyLjgKKyAqLwordHlwZWRlZiB2b2lkIFVfQ0FMTENPTlYKK1VEYXRhUHJpbnRFcnJvcih2b2lk
ICpjb250ZXh0LCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncyk7CisKK3N0cnVjdCBVRGF0
YVN3YXBwZXIgeworICAgIC8qKiBJbnB1dCBlbmRpYW5uZXNzLiBAaW50ZXJuYWwgSUNVIDIuOCAq
LworICAgIFVCb29sIGluSXNCaWdFbmRpYW47CisgICAgLyoqIElucHV0IGNoYXJzZXQgZmFtaWx5
LiBAc2VlIFVfQ0hBUlNFVF9GQU1JTFkgQGludGVybmFsIElDVSAyLjggKi8KKyAgICB1aW50OF90
IGluQ2hhcnNldDsKKyAgICAvKiogT3V0cHV0IGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44
ICovCisgICAgVUJvb2wgb3V0SXNCaWdFbmRpYW47CisgICAgLyoqIE91dHB1dCBjaGFyc2V0IGZh
bWlseS4gQHNlZSBVX0NIQVJTRVRfRkFNSUxZIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgdWlu
dDhfdCBvdXRDaGFyc2V0OworCisgICAgLyogYmFzaWMgZnVuY3Rpb25zIGZvciByZWFkaW5nIGRh
dGEgdmFsdWVzICovCisKKyAgICAvKiogQ29udmVydCBvbmUgdWludDE2X3QgZnJvbSBpbnB1dCB0
byBwbGF0Zm9ybSBlbmRpYW5uZXNzLiBAaW50ZXJuYWwgSUNVIDIuOCAqLworICAgIFVEYXRhUmVh
ZFVJbnQxNiAqcmVhZFVJbnQxNjsKKyAgICAvKiogQ29udmVydCBvbmUgdWludDMyX3QgZnJvbSBp
bnB1dCB0byBwbGF0Zm9ybSBlbmRpYW5uZXNzLiBAaW50ZXJuYWwgSUNVIDIuOCAqLworICAgIFVE
YXRhUmVhZFVJbnQzMiAqcmVhZFVJbnQzMjsKKyAgICAvKiogQ29tcGFyZSBhbiBpbnZhcmlhbnQt
Y2hhcmFjdGVyIG91dHB1dCBzdHJpbmcgd2l0aCBhIGxvY2FsIG9uZS4gQGludGVybmFsIElDVSAy
LjggKi8KKyAgICBVRGF0YUNvbXBhcmVJbnZDaGFycyAqY29tcGFyZUludkNoYXJzOworCisgICAg
LyogYmFzaWMgZnVuY3Rpb25zIGZvciB3cml0aW5nIGRhdGEgdmFsdWVzICovCisKKyAgICAvKiog
Q29udmVydCBvbmUgdWludDE2X3QgZnJvbSBwbGF0Zm9ybSB0byBpbnB1dCBlbmRpYW5uZXNzLiBA
aW50ZXJuYWwgSUNVIDIuOCAqLworICAgIFVEYXRhV3JpdGVVSW50MTYgKndyaXRlVUludDE2Owor
ICAgIC8qKiBDb252ZXJ0IG9uZSB1aW50MzJfdCBmcm9tIHBsYXRmb3JtIHRvIGlucHV0IGVuZGlh
bm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgVURhdGFXcml0ZVVJbnQzMiAqd3JpdGVV
SW50MzI7CisKKyAgICAvKiBiYXNpYyBmdW5jdGlvbnMgZm9yIGRhdGEgdHJhbnNmb3JtYXRpb25z
ICovCisKKyAgICAvKiogVHJhbnNmb3JtIGFuIGFycmF5IG9mIDE2LWJpdCBpbnRlZ2Vycy4gQGlu
dGVybmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVN3YXBGbiAqc3dhcEFycmF5MTY7CisgICAgLyoq
IFRyYW5zZm9ybSBhbiBhcnJheSBvZiAzMi1iaXQgaW50ZWdlcnMuIEBpbnRlcm5hbCBJQ1UgMi44
ICovCisgICAgVURhdGFTd2FwRm4gKnN3YXBBcnJheTMyOworICAgIC8qKiBUcmFuc2Zvcm0gYW4g
YXJyYXkgb2YgNjQtYml0IGludGVnZXJzLiBAaW50ZXJuYWwgSUNVIDUzICovCisgICAgVURhdGFT
d2FwRm4gKnN3YXBBcnJheTY0OworICAgIC8qKiBUcmFuc2Zvcm0gYW4gaW52YXJpYW50LWNoYXJh
Y3RlciBzdHJpbmcuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgVURhdGFTd2FwRm4gKnN3YXBJ
bnZDaGFyczsKKworICAgIC8qKgorICAgICAqIEZ1bmN0aW9uIGZvciBtZXNzYWdlIG91dHB1dCB3
aGVuIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgZGF0YSBzd2FwcGluZy4KKyAgICAgKiBDYW4gYmUg
TlVMTC4KKyAgICAgKiBAaW50ZXJuYWwgSUNVIDIuOAorICAgICAqLworICAgIFVEYXRhUHJpbnRF
cnJvciAqcHJpbnRFcnJvcjsKKyAgICAvKiogQ29udGV4dCBwb2ludGVyIGZvciBwcmludEVycm9y
LiBAaW50ZXJuYWwgSUNVIDIuOCAqLworICAgIHZvaWQgKnByaW50RXJyb3JDb250ZXh0OworfTsK
KworVV9DREVDTF9FTkQKKworVV9DQVBJIFVEYXRhU3dhcHBlciAqIFVfRVhQT1JUMgordWRhdGFf
b3BlblN3YXBwZXIoVUJvb2wgaW5Jc0JpZ0VuZGlhbiwgdWludDhfdCBpbkNoYXJzZXQsCisgICAg
ICAgICAgICAgICAgICBVQm9vbCBvdXRJc0JpZ0VuZGlhbiwgdWludDhfdCBvdXRDaGFyc2V0LAor
ICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogT3Bl
biBhIFVEYXRhU3dhcHBlciBmb3IgdGhlIGdpdmVuIGlucHV0IGRhdGEgYW5kIHRoZSBzcGVjaWZp
ZWQgb3V0cHV0CisgKiBjaGFyYWN0ZXJpc3RpY3MuCisgKiBWYWx1ZXMgb2YgLTEgZm9yIGFueSBv
ZiB0aGUgY2hhcmFjdGVyaXN0aWNzIG1lYW4gdGhlIGxvY2FsIHBsYXRmb3JtJ3MKKyAqIGNoYXJh
Y3RlcmlzdGljcy4KKyAqCisgKiBAc2VlIHVkYXRhX3N3YXAKKyAqIEBpbnRlcm5hbCBJQ1UgMi44
CisgKi8KK1VfQ0FQSSBVRGF0YVN3YXBwZXIgKiBVX0VYUE9SVDIKK3VkYXRhX29wZW5Td2FwcGVy
Rm9ySW5wdXREYXRhKGNvbnN0IHZvaWQgKmRhdGEsIGludDMyX3QgbGVuZ3RoLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVUJvb2wgb3V0SXNCaWdFbmRpYW4sIHVpbnQ4X3Qgb3V0Q2hh
cnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNv
ZGUpOworCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2Nsb3NlU3dhcHBlcihVRGF0YVN3
YXBwZXIgKmRzKTsKKworLyoqCisgKiBSZWFkIHRoZSBiZWdpbm5pbmcgb2YgYW4gSUNVIGRhdGEg
cGllY2UsIHJlY29nbml6ZSBtYWdpYyBieXRlcywKKyAqIHN3YXAgdGhlIHN0cnVjdHVyZS4KKyAq
IFNldCBhIFVfVU5TVVBQT1JURURfRVJST1IgaWYgaXQgZG9lcyBub3QgbG9vayBsaWtlIGFuIElD
VSBkYXRhIHBpZWNlLgorICoKKyAqIEByZXR1cm4gVGhlIHNpemUgb2YgdGhlIGRhdGEgaGVhZGVy
LCBpbiBieXRlcy4KKyAqCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCitVX0NBUEkgaW50MzJf
dCBVX0VYUE9SVDIKK3VkYXRhX3N3YXBEYXRhSGVhZGVyKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMs
CisgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICppbkRhdGEsIGludDMyX3QgbGVuZ3Ro
LCB2b2lkICpvdXREYXRhLAorICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9y
Q29kZSk7CisKKy8qKgorICogQ29udmVydCBvbmUgaW50MTZfdCBmcm9tIGlucHV0IHRvIHBsYXRm
b3JtIGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCitVX0NBUEkgaW50MTZf
dCBVX0VYUE9SVDIKK3VkYXRhX3JlYWRJbnQxNihjb25zdCBVRGF0YVN3YXBwZXIgKmRzLCBpbnQx
Nl90IHgpOworCisvKioKKyAqIENvbnZlcnQgb25lIGludDMyX3QgZnJvbSBpbnB1dCB0byBwbGF0
Zm9ybSBlbmRpYW5uZXNzLgorICogQGludGVybmFsIElDVSAyLjgKKyAqLworVV9DQVBJIGludDMy
X3QgVV9FWFBPUlQyCit1ZGF0YV9yZWFkSW50MzIoY29uc3QgVURhdGFTd2FwcGVyICpkcywgaW50
MzJfdCB4KTsKKworLyoqCisgKiBTd2FwIGEgYmxvY2sgb2YgaW52YXJpYW50LCBOVUwtdGVybWlu
YXRlZCBzdHJpbmdzLCBidXQgbm90IHBhZGRpbmcKKyAqIGJ5dGVzIGFmdGVyIHRoZSBsYXN0IHN0
cmluZy4KKyAqIEBpbnRlcm5hbAorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3VkYXRh
X3N3YXBJbnZTdHJpbmdCbG9jayhjb25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91
dERhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7
CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfcHJpbnRFcnJvcihjb25zdCBVRGF0YVN3
YXBwZXIgKmRzLAorICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmbXQsCisgICAgICAgICAg
ICAgICAgIC4uLik7CisKKy8qIGludGVybmFsIGV4cG9ydHMgZnJvbSBwdXRpbC5jIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qIGRlY2xhcmVkIGhl
cmUgdG8ga2VlcCB0aGVtIG91dCBvZiB0aGUgcHVibGljIHB1dGlsLmggKi8KKworLyoqCisgKiBT
d2FwIGludmFyaWFudCBjaGFyICogc3RyaW5ncyBBU0NJSS0+RUJDRElDLgorICogQGludGVybmFs
CisgKi8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgordXBydl9lYmNkaWNGcm9tQXNjaWkoY29u
c3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmlu
RGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICAgICAgICAg
ICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBDb3B5IGludmFyaWFudCBBU0NJ
SSBjaGFyICogc3RyaW5ncyBhbmQgdmVyaWZ5IHRoZXkgYXJlIGludmFyaWFudC4KKyAqIEBpbnRl
cm5hbAorICovCitVX0NGVU5DIGludDMyX3QKK3VwcnZfY29weUFzY2lpKGNvbnN0IFVEYXRhU3dh
cHBlciAqZHMsCisgICAgICAgICAgICAgICBjb25zdCB2b2lkICppbkRhdGEsIGludDMyX3QgbGVu
Z3RoLCB2b2lkICpvdXREYXRhLAorICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29k
ZSk7CisKKy8qKgorICogU3dhcCBpbnZhcmlhbnQgY2hhciAqIHN0cmluZ3MgRUJDRElDLT5BU0NJ
SS4KKyAqIEBpbnRlcm5hbAorICovCitVX0NGVU5DIGludDMyX3QKK3VwcnZfYXNjaWlGcm9tRWJj
ZGljKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCB2
b2lkICppbkRhdGEsIGludDMyX3QgbGVuZ3RoLCB2b2lkICpvdXREYXRhLAorICAgICAgICAgICAg
ICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogQ29weSBpbnZhcmlh
bnQgRUJDRElDIGNoYXIgKiBzdHJpbmdzIGFuZCB2ZXJpZnkgdGhleSBhcmUgaW52YXJpYW50Lgor
ICogQGludGVybmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBydl9jb3B5RWJjZGljKGNvbnN0
IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW5EYXRhLCBp
bnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAgICAgICAgICBVRXJyb3JDb2Rl
ICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBDb21wYXJlIEFTQ0lJIGludmFyaWFudCBjaGFyICog
d2l0aCBVbmljb2RlIGludmFyaWFudCBVQ2hhciAqCisgKiBAaW50ZXJuYWwKKyAqLworVV9DRlVO
QyBpbnQzMl90Cit1cHJ2X2NvbXBhcmVJbnZBc2NpaShjb25zdCBVRGF0YVN3YXBwZXIgKmRzLAor
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqb3V0U3RyaW5nLCBpbnQzMl90IG91dExl
bmd0aCwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyICpsb2NhbFN0cmluZywgaW50
MzJfdCBsb2NhbExlbmd0aCk7CisKKy8qKgorICogQ29tcGFyZSBFQkNESUMgaW52YXJpYW50IGNo
YXIgKiB3aXRoIFVuaWNvZGUgaW52YXJpYW50IFVDaGFyICoKKyAqIEBpbnRlcm5hbAorICovCitV
X0NGVU5DIGludDMyX3QKK3VwcnZfY29tcGFyZUludkViY2RpYyhjb25zdCBVRGF0YVN3YXBwZXIg
KmRzLAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm91dFN0cmluZywgaW50MzJf
dCBvdXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxvY2FsU3Ry
aW5nLCBpbnQzMl90IGxvY2FsTGVuZ3RoKTsKKworLyogbWF0ZXJpYWwuLi4gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKwor
I2lmIDAKKworLyogdWRhdGEuaCAqLworCisvKioKKyAqIFB1YmxpYyBBUEkgZnVuY3Rpb24gaW4g
dWRhdGEuYworICoKKyAqIFNhbWUgYXMgdWRhdGFfb3BlbkNob2ljZSgpIGJ1dCBhdXRvbWF0aWNh
bGx5IHN3YXBzIHRoZSBkYXRhLgorICogaXNBY2NlcHRhYmxlLCBpZiBub3QgTlVMTCwgbWF5IGFj
Y2VwdCBkYXRhIHdpdGggZW5kaWFubmVzcyBhbmQgY2hhcnNldCBmYW1pbHkKKyAqIGRpZmZlcmVu
dCBmcm9tIHRoZSBjdXJyZW50IHBsYXRmb3JtJ3MgcHJvcGVydGllcy4KKyAqIElmIHRoZSBkYXRh
IGlzIGFjY2VwdGFibGUgYW5kIHRoZSBwbGF0Zm9ybSBwcm9wZXJ0aWVzIGRvIG5vdCBtYXRjaCwg
dGhlbgorICogdGhlIHN3YXAgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIHN3YXAgYW4gYWxsb2NhdGVk
IHZlcnNpb24gb2YgdGhlIGRhdGEuCisgKiBQcmVmbGlnaHRpbmcgbWF5IG9yIG1heSBub3QgYmUg
cGVyZm9ybWVkIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBzaXplIG9mCisgKiB0aGUgbG9hZGVk
IGRhdGEgaXRlbSBpcyBrbm93bi4KKyAqCisgKiBAcGFyYW0gaXNBY2NlcHRhYmxlIFNhbWUgYXMg
Zm9yIHVkYXRhX29wZW5DaG9pY2UoKS4gTWF5IGJlIE5VTEwuCisgKgorICogQGludGVybmFsIElD
VSAyLjgKKyAqLworVV9DQVBJIFVEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1ZGF0YV9vcGVuU3dh
cChjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAor
ICAgICAgICAgICAgICAgVURhdGFNZW1vcnlJc0FjY2VwdGFibGUgKmlzQWNjZXB0YWJsZSwgdm9p
ZCAqaXNBY2NlcHRhYmxlQ29udGV4dCwKKyAgICAgICAgICAgICAgIFVEYXRhU3dhcEZuICpzd2Fw
LAorICAgICAgICAgICAgICAgVURhdGFQcmludEVycm9yICpwcmludEVycm9yLCB2b2lkICpwcmlu
dEVycm9yQ29udGV4dCwKKyAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwor
CisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvZ2VuYnJrL3VtYXBmaWxlLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvZ2VuYnJrL3VtYXBmaWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk5NWUzODFlZDMwYzBiOTAzMjZi
MjRlY2RmMTIyNDlmZDQzNDU0OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW1hcGZpbGUuaApAQCAtMCwwICsxLDU1IEBACisvKgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTEsIElu
dGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJz
LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogICAgICAgTWVtb3J5IG1hcHBlZCBmaWxl
IHdyYXBwZXJzIGZvciB1c2UgYnkgdGhlIElDVSBEYXRhIEltcGxlbWVudGF0aW9uCisgKgorICog
ICAgICAgICAgIFBvcnRpbmcgbm90ZTogIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGVzZSBmdW5j
dGlvbnMgaXMgdmVyeSBwbGF0Zm9ybSBzcGVjaWZpYy4KKyAqICAgICAgICAgICAgIE5vdCBhbGwg
cGxhdGZvcm1zIGNhbiBkbyByZWFsIG1lbW9yeSBtYXBwaW5nLiAgVGhvc2UgdGhhdCBjYW4ndAor
ICogICAgICAgICAgICAgc3RpbGwgbXVzdCBpbXBsZW1lbnQgdGhlc2UgZnVuY3Rpb25zLCBnZXR0
aW5nIHRoZSBkYXRhIGludG8gbWVtb3J5IHVzaW5nCisgKiAgICAgICAgICAgICB3aGF0ZXZlciBt
ZWFucyBhcmUgYXZhaWxhYmxlLgorICoKKyAqICAgICAgICAgICAgVGhlc2UgZnVuY3Rpb25zIGFy
ZSBwYXJ0IG9mIHRoZSBJQ1UgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24sIGFuZAorICogICAgICAg
ICAgICBhcmUgbm90IGludGVkZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBieSBhcHBsaWNhdGlvbnMu
CisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworI2lmbmRlZiBfX1VNQVBGSUxF
X0hfXworI2RlZmluZSBfX1VNQVBGSUxFX0hfXworCisjaW5jbHVkZSAidW5pY29kZS9wdXRpbC5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKyNpbmNsdWRlICJwdXRpbGltcC5oIgorCitV
X0NGVU5DIFVCb29sIHVwcnZfbWFwRmlsZShVRGF0YU1lbW9yeSAqcGRtLCBjb25zdCBjaGFyICpw
YXRoKTsKK1VfQ0ZVTkMgdm9pZCAgdXBydl91bm1hcEZpbGUoVURhdGFNZW1vcnkgKnBEYXRhKTsK
KworLyogTUFQX05PTkU6IG5vIG1lbW9yeSBtYXBwaW5nLCBubyBmaWxlIGFjY2VzcyBhdCBhbGwg
Ki8KKyNkZWZpbmUgTUFQX05PTkUgICAgICAgIDAKKyNkZWZpbmUgTUFQX1dJTjMyICAgICAgIDEK
KyNkZWZpbmUgTUFQX1BPU0lYICAgICAgIDIKKyNkZWZpbmUgTUFQX1NURElPICAgICAgIDMKKyNk
ZWZpbmUgTUFQXzM5MERMTCAgICAgIDQKKworI2lmIFVDT05GSUdfTk9fRklMRV9JTworIyAgIGRl
ZmluZSBNQVBfSU1QTEVNRU5UQVRJT04gTUFQX05PTkUKKyNlbGlmIFVfUExBVEZPUk1fVVNFU19P
TkxZX1dJTjMyX0FQSQorIyAgIGRlZmluZSBNQVBfSU1QTEVNRU5UQVRJT04gTUFQX1dJTjMyCisj
ZWxpZiBVX0hBVkVfTU1BUCB8fCBVX1BMQVRGT1JNID09IFVfUEZfT1MzOTAKKyMgICBpZiBVX1BM
QVRGT1JNID09IFVfUEZfT1MzOTAgJiYgZGVmaW5lZCAoT1MzOTBfU1RVQkRBVEEpCisgICAgICAg
IC8qICAgTm8gbWVtb3J5IG1hcHBpbmcgZm9yIDM5MCBiYXRjaCBtb2RlLiAgRmFrZSBpdCB1c2lu
ZyBkbGwgbG9hZGluZy4gICovCisjICAgICAgIGRlZmluZSBNQVBfSU1QTEVNRU5UQVRJT04gTUFQ
XzM5MERMTAorIyAgIGVsc2UKKyMgICAgICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBf
UE9TSVgKKyMgICBlbmRpZgorI2Vsc2UgLyogdW5rbm93biBwbGF0Zm9ybSwgbm8gbWVtb3J5IG1h
cCBpbXBsZW1lbnRhdGlvbjogdXNlIHN0ZGlvLmggYW5kIHVwcnZfbWFsbG9jKCkgaW5zdGVhZCAq
LworIyAgIGRlZmluZSBNQVBfSU1QTEVNRU5UQVRJT04gTUFQX1NURElPCisjZW5kaWYKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJr
L3VtdXRleC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bXV0
ZXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lMGFkMGQzYzAzNjU0ZDYxYTAyM2EwODI1NDg1NjNkOGQ0YzAzYzYx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dl
bmJyay91bXV0ZXguaApAQCAtMCwwICsxLDQyNCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBD
b3B5cmlnaHQgKEMpIDE5OTctMjAxNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwor
KiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorKgorKiBGaWxlIFVNVVRFWC5ICisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5Ogor
KgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMDQvMDIvOTcg
IGFsaXUgICAgICAgIENyZWF0aW9uLgorKiAgIDA0LzA3Lzk5ICBzcmwgICAgICAgICByZXdyaXRl
IC0gQyBpbnRlcmZhY2UsIG11bHRpcGxlIG11dGljZXMKKyogICAwNS8xMy85OSAgc3RlcGhlbiAg
ICAgQ2hhbmdlZCB0byB1bXV0ZXggKGZyb20gY211dGV4KQorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqLworCisjaWZuZGVmIFVNVVRFWF9ICisjZGVmaW5lIFVNVVRFWF9ICisKKyNpbmNsdWRlICJ1
bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWNsZWFuLmgiCisjaW5jbHVkZSAi
cHV0aWxpbXAuaCIKKworCisKKy8vIEZvcndhcmQgRGVjbGFyYXRpb25zLiBVTXV0ZXggaXMgbm90
IGluIHRoZSBJQ1UgbmFtZXNwYWNlICh5ZXQpIGJlY2F1c2UKKy8vICAgICAgICAgICAgICAgICAg
ICAgICB0aGVyZSBhcmUgc29tZSByZW1haW5pbmcgcmVmZXJlbmNlcyBmcm9tIHBsYWluIEMuCitz
dHJ1Y3QgVU11dGV4Oworc3RydWN0IFVDb25kaXRpb25WYXI7CisKK1VfTkFNRVNQQUNFX0JFR0lO
CitzdHJ1Y3QgVUluaXRPbmNlOworVV9OQU1FU1BBQ0VfRU5ECisKKy8vIFN0cmluZ2lmeSBtYWNy
b3MsIHRvIGFsbG93ICNpbmNsdWRlIG9mIHVzZXIgc3VwcGxpZWQgYXRvbWljICYgbXV0ZXggZmls
ZXMuCisjZGVmaW5lIFVfTVVURVhfU1RSKHMpICNzCisjZGVmaW5lIFVfTVVURVhfWFNUUihzKSBV
X01VVEVYX1NUUihzKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICAgTG93IExldmVs
IEF0b21pYyBPcGVyYXRpb25zLgorICogICAgICBDb21waWxlciBkZXBlbmRlbnQuIE5vdCBvcGVy
YXRpbmcgc3lzdGVtIGRlcGVuZGVudC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZiBk
ZWZpbmVkIChVX1VTRVJfQVRPTUlDU19IKQorI2luY2x1ZGUgVV9NVVRFWF9YU1RSKFVfVVNFUl9B
VE9NSUNTX0gpCisKKyNlbGlmIFVfSEFWRV9TVERfQVRPTUlDUworCisvLyAgQysrMTEgYXRvbWlj
cyBhcmUgYXZhaWxhYmxlLgorCisjaW5jbHVkZSA8YXRvbWljPgorCitVX05BTUVTUEFDRV9CRUdJ
TgorCit0eXBlZGVmIHN0ZDo6YXRvbWljPGludDMyX3Q+IHVfYXRvbWljX2ludDMyX3Q7CisjZGVm
aW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJQUxJWkVSKHZhbCkgQVRPTUlDX1ZBUl9JTklUKHZhbCkK
KworaW5saW5lIGludDMyX3QgdW10eF9sb2FkQWNxdWlyZSh1X2F0b21pY19pbnQzMl90ICZ2YXIp
IHsKKyAgICByZXR1cm4gdmFyLmxvYWQoc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSk7Cit9CisK
K2lubGluZSB2b2lkIHVtdHhfc3RvcmVSZWxlYXNlKHVfYXRvbWljX2ludDMyX3QgJnZhciwgaW50
MzJfdCB2YWwpIHsKKyAgICB2YXIuc3RvcmUodmFsLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxlYXNl
KTsKK30KKworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfaW5jKHVfYXRvbWljX2ludDMyX3Qg
KnZhcikgeworICAgIHJldHVybiB2YXItPmZldGNoX2FkZCgxKSArIDE7Cit9CisKK2lubGluZSBp
bnQzMl90IHVtdHhfYXRvbWljX2RlYyh1X2F0b21pY19pbnQzMl90ICp2YXIpIHsKKyAgICByZXR1
cm4gdmFyLT5mZXRjaF9zdWIoMSkgLSAxOworfQorVV9OQU1FU1BBQ0VfRU5ECisKKyNlbGlmIFVf
UExBVEZPUk1fSEFTX1dJTjMyX0FQSQorCisvLyBNU1ZDIGNvbXBpbGVyLiBSZWFkcyBhbmQgd3Jp
dGVzIG9mIHZvbGF0aWxlIHZhcmlhYmxlcyBoYXZlCisvLyAgICAgICAgICAgICAgICBhY3F1aXJl
IGFuZCByZWxlYXNlIG1lbW9yeSBzZW1hbnRpY3MsIHJlc3BlY3RpdmVseS4KKy8vICAgICAgICAg
ICAgICAgIFRoaXMgaXMgYSBNaWNyb3NvZnQgZXh0ZW5zaW9uLCBub3Qgc3RhbmRhcmQgQysrIGJl
aGF2aW9yLgorLy8KKy8vICAgVXBkYXRlOiAgICAgIGNhbid0IHVzZSB0aGlzIGJlY2F1c2Ugb2Yg
TWluR1csIGJ1aWx0IHdpdGggZ2NjLgorLy8gICAgICAgICAgICAgICAgT3JpZ2luYWwgcGxhbiB3
YXMgdG8gdXNlIGdjYyBhdG9taWNzIGZvciBNaW5HVywgYnV0IHRoZXkKKy8vICAgICAgICAgICAg
ICAgIGFyZW4ndCBzdXBwb3J0ZWQsIHNvIHdlIGZvbGQgTWluR1cgaW50byB0aGlzIHBhdGguCisK
KyMgZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4KKyMgZGVmaW5lIFZDX0VYVFJBTEVBTgorIyBk
ZWZpbmUgTk9VU0VSCisjIGRlZmluZSBOT1NFUlZJQ0UKKyMgZGVmaW5lIE5PSU1FCisjIGRlZmlu
ZSBOT01DWAorIyBpZm5kZWYgTk9NSU5NQVgKKyMgZGVmaW5lIE5PTUlOTUFYCisjIGVuZGlmCisj
IGluY2x1ZGUgPHdpbmRvd3MuaD4KKworVV9OQU1FU1BBQ0VfQkVHSU4KK3R5cGVkZWYgdm9sYXRp
bGUgTE9ORyB1X2F0b21pY19pbnQzMl90OworI2RlZmluZSBBVE9NSUNfSU5UMzJfVF9JTklUSUFM
SVpFUih2YWwpIHZhbAorCitpbmxpbmUgaW50MzJfdCB1bXR4X2xvYWRBY3F1aXJlKHVfYXRvbWlj
X2ludDMyX3QgJnZhcikgeworICAgIHJldHVybiBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSgm
dmFyLCAwLCAwKTsKK30KKworaW5saW5lIHZvaWQgdW10eF9zdG9yZVJlbGVhc2UodV9hdG9taWNf
aW50MzJfdCAmdmFyLCBpbnQzMl90IHZhbCkgeworICAgIEludGVybG9ja2VkRXhjaGFuZ2UoJnZh
ciwgdmFsKTsKK30KKworCitpbmxpbmUgaW50MzJfdCB1bXR4X2F0b21pY19pbmModV9hdG9taWNf
aW50MzJfdCAqdmFyKSB7CisgICAgcmV0dXJuIEludGVybG9ja2VkSW5jcmVtZW50KHZhcik7Cit9
CisKK2lubGluZSBpbnQzMl90IHVtdHhfYXRvbWljX2RlYyh1X2F0b21pY19pbnQzMl90ICp2YXIp
IHsKKyAgICByZXR1cm4gSW50ZXJsb2NrZWREZWNyZW1lbnQodmFyKTsKK30KK1VfTkFNRVNQQUNF
X0VORAorCisKKyNlbGlmIFVfSEFWRV9HQ0NfQVRPTUlDUworLyoKKyAqIGdjYyBhdG9taWMgb3Bz
LiBUaGVzZSBhcmUgYXZhaWxhYmxlIG9uIHNldmVyYWwgb3RoZXIgY29tcGlsZXJzIGFzIHdlbGwu
CisgKi8KKworVV9OQU1FU1BBQ0VfQkVHSU4KK3R5cGVkZWYgaW50MzJfdCB1X2F0b21pY19pbnQz
Ml90OworI2RlZmluZSBBVE9NSUNfSU5UMzJfVF9JTklUSUFMSVpFUih2YWwpIHZhbAorCitpbmxp
bmUgaW50MzJfdCB1bXR4X2xvYWRBY3F1aXJlKHVfYXRvbWljX2ludDMyX3QgJnZhcikgeworICAg
IGludDMyX3QgdmFsID0gdmFyOworICAgIF9fc3luY19zeW5jaHJvbml6ZSgpOworICAgIHJldHVy
biB2YWw7Cit9CisKK2lubGluZSB2b2lkIHVtdHhfc3RvcmVSZWxlYXNlKHVfYXRvbWljX2ludDMy
X3QgJnZhciwgaW50MzJfdCB2YWwpIHsKKyAgICBfX3N5bmNfc3luY2hyb25pemUoKTsKKyAgICB2
YXIgPSB2YWw7Cit9CisKK2lubGluZSBpbnQzMl90IHVtdHhfYXRvbWljX2luYyh1X2F0b21pY19p
bnQzMl90ICpwKSAgeworICAgcmV0dXJuIF9fc3luY19hZGRfYW5kX2ZldGNoKHAsIDEpOworfQor
CitpbmxpbmUgaW50MzJfdCB1bXR4X2F0b21pY19kZWModV9hdG9taWNfaW50MzJfdCAqcCkgIHsK
KyAgIHJldHVybiBfX3N5bmNfc3ViX2FuZF9mZXRjaChwLCAxKTsKK30KK1VfTkFNRVNQQUNFX0VO
RAorCisjZWxzZQorCisvKgorICogVW5rbm93biBQbGF0Zm9ybS4gVXNlIG91dC1vZi1saW5lIGZ1
bmN0aW9ucywgd2hpY2ggaW4gdHVybiB1c2UgbXV0ZXhlcy4KKyAqICAgICAgICAgICAgICAgICAg
IFNsb3cgYnV0IGNvcnJlY3QuCisgKi8KKworI2RlZmluZSBVX05PX1BMQVRGT1JNX0FUT01JQ1MK
KworVV9OQU1FU1BBQ0VfQkVHSU4KK3R5cGVkZWYgaW50MzJfdCB1X2F0b21pY19pbnQzMl90Owor
I2RlZmluZSBBVE9NSUNfSU5UMzJfVF9JTklUSUFMSVpFUih2YWwpIHZhbAorCitVX0NPTU1PTl9B
UEkgaW50MzJfdCBVX0VYUE9SVDIgCit1bXR4X2xvYWRBY3F1aXJlKHVfYXRvbWljX2ludDMyX3Qg
JnZhcik7CisKK1VfQ09NTU9OX0FQSSB2b2lkIFVfRVhQT1JUMiAKK3VtdHhfc3RvcmVSZWxlYXNl
KHVfYXRvbWljX2ludDMyX3QgJnZhciwgaW50MzJfdCB2YWwpOworCitVX0NPTU1PTl9BUEkgaW50
MzJfdCBVX0VYUE9SVDIgCit1bXR4X2F0b21pY19pbmModV9hdG9taWNfaW50MzJfdCAqcCk7CisK
K1VfQ09NTU9OX0FQSSBpbnQzMl90IFVfRVhQT1JUMiAKK3VtdHhfYXRvbWljX2RlYyh1X2F0b21p
Y19pbnQzMl90ICpwKTsKKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZiAgLyogTG93IExldmVs
IEF0b21pYyBPcHMgUGxhdGZyb20gQ2hhaW4gKi8KKworCisKKy8qKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisgKgorICogIFVJbml0T25jZSBEZWZpbml0aW9ucy4KKyAq
ICAgICBUaGVzZSBhcmUgcGxhdGZvcm0gbmV1dHJhbC4KKyAqCisgKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKi8KKworVV9OQU1FU1BBQ0VfQkVHSU4KKworc3RydWN0IFVJ
bml0T25jZSB7CisgICAgdV9hdG9taWNfaW50MzJfdCAgIGZTdGF0ZTsKKyAgICBVRXJyb3JDb2Rl
ICAgICAgIGZFcnJDb2RlOworICAgIHZvaWQgcmVzZXQoKSB7ZlN0YXRlID0gMDt9OworICAgIFVC
b29sIGlzUmVzZXQoKSB7cmV0dXJuIHVtdHhfbG9hZEFjcXVpcmUoZlN0YXRlKSA9PSAwO307Cisv
LyBOb3RlOiBpc1Jlc2V0KCkgaXMgdXNlZCBieSBzZXJ2aWNlIHJlZ2lzdHJhdGlvbiBjb2RlLgor
Ly8gICAgICAgICAgICAgICAgIFRocmVhZCBzYWZldHkgb2YgdGhpcyB1c2FnZSBuZWVkcyByZXZp
ZXcuCit9OworCisjZGVmaW5lIFVfSU5JVE9OQ0VfSU5JVElBTElaRVIge0FUT01JQ19JTlQzMl9U
X0lOSVRJQUxJWkVSKDApLCBVX1pFUk9fRVJST1J9CisKKworVV9DT01NT05fQVBJIFVCb29sIFVf
RVhQT1JUMiB1bXR4X2luaXRJbXBsUHJlSW5pdChVSW5pdE9uY2UgJik7CitVX0NPTU1PTl9BUEkg
dm9pZCAgVV9FWFBPUlQyIHVtdHhfaW5pdEltcGxQb3N0SW5pdChVSW5pdE9uY2UgJik7CisKK3Rl
bXBsYXRlPGNsYXNzIFQ+IHZvaWQgdW10eF9pbml0T25jZShVSW5pdE9uY2UgJnVpbywgVCAqb2Jq
LCB2b2lkIChUOjoqZnApKCkpIHsKKyAgICBpZiAodW10eF9sb2FkQWNxdWlyZSh1aW8uZlN0YXRl
KSA9PSAyKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHVtdHhfaW5pdEltcGxQ
cmVJbml0KHVpbykpIHsKKyAgICAgICAgKG9iai0+KmZwKSgpOworICAgICAgICB1bXR4X2luaXRJ
bXBsUG9zdEluaXQodWlvKTsKKyAgICB9Cit9CisKKworLy8gdW10eF9pbml0T25jZSB2YXJpYW50
IGZvciBwbGFpbiBmdW5jdGlvbnMsIG9yIHN0YXRpYyBjbGFzcyBmdW5jdGlvbnMuCisvLyAgICAg
ICAgICAgICAgIE5vIGNvbnRleHQgcGFyYW1ldGVyLgoraW5saW5lIHZvaWQgdW10eF9pbml0T25j
ZShVSW5pdE9uY2UgJnVpbywgdm9pZCAoKmZwKSgpKSB7CisgICAgaWYgKHVtdHhfbG9hZEFjcXVp
cmUodWlvLmZTdGF0ZSkgPT0gMikgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICh1
bXR4X2luaXRJbXBsUHJlSW5pdCh1aW8pKSB7CisgICAgICAgICgqZnApKCk7CisgICAgICAgIHVt
dHhfaW5pdEltcGxQb3N0SW5pdCh1aW8pOworICAgIH0KK30KKworLy8gdW10eF9pbml0T25jZSB2
YXJpYW50IGZvciBwbGFpbiBmdW5jdGlvbnMsIG9yIHN0YXRpYyBjbGFzcyBmdW5jdGlvbnMuCisv
LyAgICAgICAgICAgICAgIFdpdGggRXJyb3JDb2RlLCBObyBjb250ZXh0IHBhcmFtZXRlci4KK2lu
bGluZSB2b2lkIHVtdHhfaW5pdE9uY2UoVUluaXRPbmNlICZ1aW8sIHZvaWQgKCpmcCkoVUVycm9y
Q29kZSAmKSwgVUVycm9yQ29kZSAmZXJyQ29kZSkgeworICAgIGlmIChVX0ZBSUxVUkUoZXJyQ29k
ZSkpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAodW10eF9sb2FkQWNxdWlyZSh1
aW8uZlN0YXRlKSAhPSAyICYmIHVtdHhfaW5pdEltcGxQcmVJbml0KHVpbykpIHsKKyAgICAgICAg
Ly8gV2UgcnVuIHRoZSBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgKCpmcCkoZXJyQ29kZSk7Cisg
ICAgICAgIHVpby5mRXJyQ29kZSA9IGVyckNvZGU7CisgICAgICAgIHVtdHhfaW5pdEltcGxQb3N0
SW5pdCh1aW8pOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFNvbWVvbmUgZWxzZSBhbHJlYWR5
IHJhbiB0aGUgaW5pdGlhbGl6YXRpb24uCisgICAgICAgIGlmIChVX0ZBSUxVUkUodWlvLmZFcnJD
b2RlKSkgeworICAgICAgICAgICAgZXJyQ29kZSA9IHVpby5mRXJyQ29kZTsKKyAgICAgICAgfQor
ICAgIH0KK30KKworLy8gdW10eF9pbml0T25jZSB2YXJpYW50IGZvciBwbGFpbiBmdW5jdGlvbnMs
IG9yIHN0YXRpYyBjbGFzcyBmdW5jdGlvbnMsCisvLyAgICAgICAgICAgICAgIHdpdGggYSBjb250
ZXh0IHBhcmFtZXRlci4KK3RlbXBsYXRlPGNsYXNzIFQ+IHZvaWQgdW10eF9pbml0T25jZShVSW5p
dE9uY2UgJnVpbywgdm9pZCAoKmZwKShUKSwgVCBjb250ZXh0KSB7CisgICAgaWYgKHVtdHhfbG9h
ZEFjcXVpcmUodWlvLmZTdGF0ZSkgPT0gMikgeworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGlmICh1bXR4X2luaXRJbXBsUHJlSW5pdCh1aW8pKSB7CisgICAgICAgICgqZnApKGNvbnRleHQp
OworICAgICAgICB1bXR4X2luaXRJbXBsUG9zdEluaXQodWlvKTsKKyAgICB9Cit9CisKKy8vIHVt
dHhfaW5pdE9uY2UgdmFyaWFudCBmb3IgcGxhaW4gZnVuY3Rpb25zLCBvciBzdGF0aWMgY2xhc3Mg
ZnVuY3Rpb25zLAorLy8gICAgICAgICAgICAgICB3aXRoIGEgY29udGV4dCBwYXJhbWV0ZXIgYW5k
IGFuIGVycm9yIGNvZGUuCit0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkIHVtdHhfaW5pdE9uY2UoVUlu
aXRPbmNlICZ1aW8sIHZvaWQgKCpmcCkoVCwgVUVycm9yQ29kZSAmKSwgVCBjb250ZXh0LCBVRXJy
b3JDb2RlICZlcnJDb2RlKSB7CisgICAgaWYgKFVfRkFJTFVSRShlcnJDb2RlKSkgeworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGlmICh1bXR4X2xvYWRBY3F1aXJlKHVpby5mU3RhdGUpICE9
IDIgJiYgdW10eF9pbml0SW1wbFByZUluaXQodWlvKSkgeworICAgICAgICAvLyBXZSBydW4gdGhl
IGluaXRpYWxpemF0aW9uLgorICAgICAgICAoKmZwKShjb250ZXh0LCBlcnJDb2RlKTsKKyAgICAg
ICAgdWlvLmZFcnJDb2RlID0gZXJyQ29kZTsKKyAgICAgICAgdW10eF9pbml0SW1wbFBvc3RJbml0
KHVpbyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gU29tZW9uZSBlbHNlIGFscmVhZHkgcmFu
IHRoZSBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgaWYgKFVfRkFJTFVSRSh1aW8uZkVyckNvZGUp
KSB7CisgICAgICAgICAgICBlcnJDb2RlID0gdWlvLmZFcnJDb2RlOworICAgICAgICB9CisgICAg
fQorfQorCitVX05BTUVTUEFDRV9FTkQKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisgKgorICogIE11dGV4IERlZmluaXRpb25zLiBQbGF0Zm9ybSBEZXBl
bmRlbnQsICNpZiBwbGF0Zm9ybSBjaGFpbiBmb2xsb3dzLgorICogICAgICAgICBUT0RPOiAgQWRk
IGEgQysrMTEgdmVyc2lvbi4KKyAqICAgICAgICAgICAgICAgIE5lZWQgdG8gY29udmVydCBhbGwg
bXV0ZXggdXNpbmcgZmlsZXMgdG8gQysrIGZpcnN0LgorICoKKyAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqLworCisjaWYgZGVmaW5lZChVX1VTRVJfTVVURVhfSCkKKy8v
ICNpbmxjdWRlICJVX1VTRVJfTVVURVhfSCIKKyNpbmNsdWRlIFVfTVVURVhfWFNUUihVX1VTRVJf
TVVURVhfSCkKKworI2VsaWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisKKy8qIFdpbmRvd3Mg
RGVmaW5pdGlvbnMuCisgKiAgICBXaW5kb3dzIGNvbWVzIGZpcnN0IGluIHRoZSBwbGF0Zm9ybSBj
aGFpbi4KKyAqICAgIEN5Z3dpbiAoYW5kIHBvc3NpYmx5IG90aGVycykgaGF2ZSBib3RoIFdJTjMy
IGFuZCBQT1NJWCBBUElzLiBQcmVmZXIgV2luMzIgaW4gdGhpcyBjYXNlLgorICovCisKKworLyog
Rm9yIENSSVRJQ0FMX1NFQ1RJT04gKi8KKworLyoKKyAqICAgTm90ZTogdGhlcmUgaXMgYW4gZWFy
bGllciBpbmNsdWRlIG9mIHdpbmRvd3MuaCBpbiB0aGlzIGZpbGUsIGJ1dCBpdCBpcyBpbgorICog
ICAgICAgICBkaWZmZXJlbnQgY29uZGl0aW9uYWxzLgorICogICAgICAgICBUaGlzIG9uZSBpcyBu
ZWVkZWQgaWYgd2UgYXJlIHVzaW5nIEMrKzExIGZvciBhdG9taWMgb3BzLCBidXQKKyAqICAgICAg
ICAgd2luMzIgQVBJcyBmb3IgQ3JpdGljYWwgU2VjdGlvbnMuCisgKi8KKworIyBkZWZpbmUgV0lO
MzJfTEVBTl9BTkRfTUVBTgorIyBkZWZpbmUgVkNfRVhUUkFMRUFOCisjIGRlZmluZSBOT1VTRVIK
KyMgZGVmaW5lIE5PU0VSVklDRQorIyBkZWZpbmUgTk9JTUUKKyMgZGVmaW5lIE5PTUNYCisjIGlm
bmRlZiBOT01JTk1BWAorIyBkZWZpbmUgTk9NSU5NQVgKKyMgZW5kaWYKKyMgaW5jbHVkZSA8d2lu
ZG93cy5oPgorCisKK3R5cGVkZWYgc3RydWN0IFVNdXRleCB7CisgICAgaWN1OjpVSW5pdE9uY2Ug
ICAgZkluaXRPbmNlOworICAgIENSSVRJQ0FMX1NFQ1RJT04gIGZDUzsKK30gVU11dGV4OworCisv
KiBJbml0aWFsaXplciBmb3IgYSBzdGF0aWMgVU1VVEVYLiBEZWxpYmVyYXRlbHkgY29udGFpbnMg
bm8gdmFsdWUgZm9yIHRoZQorICogIENSSVRJQ0FMX1NFQ1RJT04uCisgKi8KKyNkZWZpbmUgVV9N
VVRFWF9JTklUSUFMSVpFUiB7VV9JTklUT05DRV9JTklUSUFMSVpFUn0KKworc3RydWN0IFVDb25k
aXRpb25WYXIgeworICAgIEhBTkRMRSAgICAgICAgICAgZkVudHJ5R2F0ZTsKKyAgICBIQU5ETEUg
ICAgICAgICAgIGZFeGl0R2F0ZTsKKyAgICBpbnQzMl90ICAgICAgICAgIGZXYWl0Q291bnQ7Cit9
OworCisjZGVmaW5lIFVfQ09ORElUSU9OX0lOSVRJQUxJWkVSIHtOVUxMLCBOVUxMLCAwfQorICAg
IAorCisKKyNlbGlmIFVfUExBVEZPUk1fSU1QTEVNRU5UU19QT1NJWAorCisvKgorICogIFBPU0lY
IHBsYXRmb3JtCisgKi8KKworI2luY2x1ZGUgPHB0aHJlYWQuaD4KKworc3RydWN0IFVNdXRleCB7
CisgICAgcHRocmVhZF9tdXRleF90ICBmTXV0ZXg7Cit9OwordHlwZWRlZiBzdHJ1Y3QgVU11dGV4
IFVNdXRleDsKKyNkZWZpbmUgVV9NVVRFWF9JTklUSUFMSVpFUiAge1BUSFJFQURfTVVURVhfSU5J
VElBTElaRVJ9CisKK3N0cnVjdCBVQ29uZGl0aW9uVmFyIHsKKyAgICBwdGhyZWFkX2NvbmRfdCAg
IGZDb25kaXRpb247Cit9OworI2RlZmluZSBVX0NPTkRJVElPTl9JTklUSUFMSVpFUiB7UFRIUkVB
RF9DT05EX0lOSVRJQUxJWkVSfQorCisjZWxzZQorCisvKgorICogIFVua25vdyBwbGF0Zm9ybSB0
eXBlLgorICogICAgICBUaGlzIGlzIGFuIGVycm9yIGNvbmRpdGlvbi4gSUNVIHJlcXVpcmVzIG11
dGV4ZXMuCisgKi8KKworI2Vycm9yIFVua25vd24gUGxhdGZvcm0uCisKKyNlbmRpZgorCisKKwor
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogIE11dGV4IEltcGxlbWVudGF0
aW9uIGZ1bmN0aW9uIGRlY2xhcmF0YXRpb25zLgorICogICAgIERlY2xhcmF0aW9ucyBhcmUgcGxh
dGZvcm0gbmV1dHJhbC4KKyAqICAgICBJbXBsZW1lbnRhdGlvbnMsIGluIHVtdXRleC5jcHAsIGFy
ZSBwbGF0Zm9ybSBzcGVjaWZpYy4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwor
CisvKiBMb2NrIGEgbXV0ZXguCisgKiBAcGFyYW0gbXV0ZXggVGhlIGdpdmVuIG11dGV4IHRvIGJl
IGxvY2tlZC4gIFBhc3MgTlVMTCB0byBzcGVjaWZ5CisgKiAgICAgICAgICAgICAgdGhlIGdsb2Jh
bCBJQ1UgbXV0ZXguICBSZWN1cnNpdmUgbG9ja3MgYXJlIGFuIGVycm9yCisgKiAgICAgICAgICAg
ICAgYW5kIG1heSBjYXVzZSBhIGRlYWRsb2NrIG9uIHNvbWUgcGxhdGZvcm1zLgorICovCitVX0lO
VEVSTkFMIHZvaWQgVV9FWFBPUlQyIHVtdHhfbG9jayhVTXV0ZXgqIG11dGV4KTsKKworLyogVW5s
b2NrIGEgbXV0ZXguCisgKiBAcGFyYW0gbXV0ZXggVGhlIGdpdmVuIG11dGV4IHRvIGJlIHVubG9j
a2VkLiAgUGFzcyBOVUxMIHRvIHNwZWNpZnkKKyAqICAgICAgICAgICAgICB0aGUgZ2xvYmFsIElD
VSBtdXRleC4KKyAqLworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JUMiB1bXR4X3VubG9jayAoVU11
dGV4KiBtdXRleCk7CisKKy8qCisgKiBXYWl0IG9uIGEgY29uZGl0aW9uIHZhcmlhYmxlLgorICog
VGhlIGNhbGxpbmcgdGhyZWFkIHdpbGwgdW5sb2NrIHRoZSBtdXRleCBhbmQgd2FpdCBvbiB0aGUg
Y29uZGl0aW9uIHZhcmlhYmxlLgorICogVGhlIG11dGV4IG11c3QgYmUgbG9ja2VkIGJ5IHRoZSBj
YWxsaW5nIHRocmVhZCB3aGVuIGludm9raW5nIHRoaXMgZnVuY3Rpb24uCisgKgorICogQHBhcmFt
IGNvbmQgdGhlIGNvbmRpdGlvbiB2YXJpYWJsZSB0byB3YWl0IG9uLgorICogQHBhcmFtIG11dGV4
IHRoZSBhc3NvY2lhdGVkIG11dGV4LgorICovCisKK1VfSU5URVJOQUwgdm9pZCBVX0VYUE9SVDIg
dW10eF9jb25kV2FpdChVQ29uZGl0aW9uVmFyICpjb25kLCBVTXV0ZXggKm11dGV4KTsKKworCisv
KgorICogQnJvYWRjYXN0IHdha2V1cCBvZiBhbGwgdGhyZWFkcyB3YWl0aW5nIG9uIGEgQ29uZGl0
aW9uLgorICogVGhlIGFzc29jaWF0ZWQgbXV0ZXggbXVzdCBiZSBsb2NrZWQgYnkgdGhlIGNhbGxp
bmcgdGhyZWFkIHdoZW4gY2FsbGluZworICogdGhpcyBmdW5jdGlvbjsgdGhpcyBpcyBhIHRlbXBv
cmFyeSBJQ1UgcmVzdHJpY3Rpb24uCisgKiAKKyAqIEBwYXJhbSBjb25kIHRoZSBjb25kaXRpb24g
dmFyaWFibGUuCisgKi8KK1VfSU5URVJOQUwgdm9pZCBVX0VYUE9SVDIgdW10eF9jb25kQnJvYWRj
YXN0KFVDb25kaXRpb25WYXIgKmNvbmQpOworCisvKgorICogU2lnbmFsIGEgY29uZGl0aW9uIHZh
cmlhYmxlLCB3YWtpbmcgdXAgb25lIHdhaXRpbmcgdGhyZWFkLgorICogQ0FVVElPTjogRG8gbm90
IHVzZS4gUGxhY2UgaG9sZGVyIG9ubHkuIE5vdCBpbXBsZW1lbnRlZCBmb3IgV2luZG93cy4KKyAq
LworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JUMiB1bXR4X2NvbmRTaWduYWwoVUNvbmRpdGlvblZh
ciAqY29uZCk7CisKKyNlbmRpZiAvKiBVTVVURVhfSCAqLworLyplb2YqLwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bmV3ZGF0YS5jIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bmV3ZGF0YS5jCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjllYTYwZDU2NjgzOTY0MDM3YmIzNmRlNzI4YjUyZjFiYzQxZmVjNjYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VuZXdkYXRh
LmMKQEAgLTAsMCArMSwyNzQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAg
Q29weXJpZ2h0IChDKSAxOTk5LTIwMTAsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMK
KyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1bmV3ZGF0YS5jCisqICAgZW5j
b2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRl
bnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMTk5OW9jdDI1CisqICAgY3JlYXRlZCBieTog
TWFya3VzIFcuIFNjaGVyZXIKKyovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgInVu
aWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS9wdXRpbC5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdXN0cmluZy5oIgorI2luY2x1ZGUgImNtZW1vcnkuaCIKKyNpbmNsdWRlICJjc3RyaW5n
LmgiCisjaW5jbHVkZSAiZmlsZXN0cm0uaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisj
aW5jbHVkZSAidW5ld2RhdGEuaCIKKworc3RydWN0IFVOZXdEYXRhTWVtb3J5IHsKKyAgICBGaWxl
U3RyZWFtICpmaWxlOworICAgIHVpbnQxNl90IGhlYWRlclNpemU7CisgICAgdWludDhfdCBtYWdp
YzEsIG1hZ2ljMjsKK307CisKK1VfQ0FQSSBVTmV3RGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRh
dGFfY3JlYXRlKGNvbnN0IGNoYXIgKmRpciwgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAq
bmFtZSwKKyAgICAgICAgICAgICBjb25zdCBVRGF0YUluZm8gKnBJbmZvLAorICAgICAgICAgICAg
IGNvbnN0IGNoYXIgKmNvbW1lbnQsCisgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29k
ZSkgeworICAgIFVOZXdEYXRhTWVtb3J5ICpwRGF0YTsKKyAgICB1aW50MTZfdCBoZWFkZXJTaXpl
LCBjb21tZW50TGVuZ3RoOworICAgIGNoYXIgZmlsZW5hbWVbNTEyXTsKKyAgICB1aW50OF90IGJ5
dGVzWzE2XTsKKyAgICBpbnQgbGVuZ3RoOworCisgICAgaWYocEVycm9yQ29kZT09TlVMTCB8fCBV
X0ZBSUxVUkUoKnBFcnJvckNvZGUpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0gZWxz
ZSBpZihuYW1lPT1OVUxMIHx8ICpuYW1lPT0wIHx8IHBJbmZvPT1OVUxMKSB7CisgICAgICAgICpw
RXJyb3JDb2RlPVVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUjsKKyAgICAgICAgcmV0dXJuIE5VTEw7
CisgICAgfQorCisgICAgLyogYWxsb2NhdGUgdGhlIGRhdGEgc3RydWN0dXJlICovCisgICAgcERh
dGE9KFVOZXdEYXRhTWVtb3J5ICopdXBydl9tYWxsb2Moc2l6ZW9mKFVOZXdEYXRhTWVtb3J5KSk7
CisgICAgaWYocERhdGE9PU5VTEwpIHsKKyAgICAgICAgKnBFcnJvckNvZGU9VV9NRU1PUllfQUxM
T0NBVElPTl9FUlJPUjsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIAorICAgIC8q
IENoZWNrIHRoYXQgdGhlIGZ1bGwgcGF0aCB3b24ndCBiZSB0b28gbG9uZyAqLworICAgIGxlbmd0
aCA9IDA7CQkJCQkvKiBTdGFydCB3aXRoIG5vdGhpbmcgKi8KKyAgICBpZihkaXIgIT0gTlVMTCAg
JiYgKmRpciAhPTApCS8qIEFkZCBkaXJlY3RvcnkgbGVuZ3RoIGlmIG9uZSB3YXMgZ2l2ZW4gKi8K
KyAgICB7CisgICAgCWxlbmd0aCArPSBzdHJsZW4oZGlyKTsKKwkKKyAgICAJLyogQWRkIDEgaWYg
ZGlyIGRvZXNuJ3QgZW5kIHdpdGggcGF0aCBzZXAgKi8KKyAgICAgICAgaWYgKGRpcltzdHJsZW4o
ZGlyKSAtIDFdIT0gVV9GSUxFX1NFUF9DSEFSKSB7CisgICAgICAgICAgICBsZW5ndGgrKzsKKyAg
ICAgICAgfQorCX0KKyAgICBsZW5ndGggKz0gc3RybGVuKG5hbWUpOwkJLyogQWRkIHRoZSBmaWxl
bmFtZSBsZW5ndGggKi8KKworICAgIGlmKHR5cGUgIT0gTlVMTCAgJiYgKnR5cGUgIT0wKSB7IC8q
IEFkZCBkaXJlY3RvcnkgbGVuZ3RoIGlmICBnaXZlbiAqLworICAgICAgICBsZW5ndGggKz0gc3Ry
bGVuKHR5cGUpOworICAgIH0KKworICAgICAgICAKKyAgICAgLyogTERIIGJ1ZmZlciBMZW5ndGgg
ZXJyb3IgY2hlY2sgKi8KKyAgICBpZihsZW5ndGggID4gKHNpemVvZihmaWxlbmFtZSkgLSAxKSkK
KyAgICB7CisgICAJICAgICpwRXJyb3JDb2RlID0gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1I7Cisg
ICAJICAgIHVwcnZfZnJlZShwRGF0YSk7CisJICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgIAor
ICAgIC8qIG9wZW4gdGhlIG91dHB1dCBmaWxlICovCisgICAgaWYoZGlyIT1OVUxMICYmICpkaXIh
PTApIHsgLyogaWYgZGlyIGhhcyBhIHZhbHVlLCB3ZSBwcmVwZW5kIGl0IHRvIHRoZSBmaWxlbmFt
ZSAqLworICAgICAgICBjaGFyICpwPWZpbGVuYW1lK3N0cmxlbihkaXIpOworICAgICAgICB1cHJ2
X3N0cmNweShmaWxlbmFtZSwgZGlyKTsKKyAgICAgICAgaWYgKCoocC0xKSE9VV9GSUxFX1NFUF9D
SEFSKSB7CisgICAgICAgICAgICAqcCsrPVVfRklMRV9TRVBfQ0hBUjsKKyAgICAgICAgICAgICpw
PTA7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeyAvKiBvdGhlcndpc2UsIHdlJ2xsIG91dHB1dCB0
byB0aGUgY3VycmVudCBkaXIgKi8KKyAgICAgICAgZmlsZW5hbWVbMF09MDsKKyAgICB9CisgICAg
dXBydl9zdHJjYXQoZmlsZW5hbWUsIG5hbWUpOworICAgIGlmKHR5cGUhPU5VTEwgJiYgKnR5cGUh
PTApIHsKKyAgICAgICAgdXBydl9zdHJjYXQoZmlsZW5hbWUsICIuIik7CisgICAgICAgIHVwcnZf
c3RyY2F0KGZpbGVuYW1lLCB0eXBlKTsKKyAgICB9CisgICAgcERhdGEtPmZpbGU9VF9GaWxlU3Ry
ZWFtX29wZW4oZmlsZW5hbWUsICJ3YiIpOworICAgIGlmKHBEYXRhLT5maWxlPT1OVUxMKSB7Cisg
ICAgICAgIHVwcnZfZnJlZShwRGF0YSk7CisgICAgICAgICpwRXJyb3JDb2RlPVVfRklMRV9BQ0NF
U1NfRVJST1I7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIC8qIHdyaXRlIHRo
ZSBoZWFkZXIgaW5mb3JtYXRpb24gKi8KKyAgICBoZWFkZXJTaXplPSh1aW50MTZfdCkocEluZm8t
PnNpemUrNCk7CisgICAgaWYoY29tbWVudCE9TlVMTCAmJiAqY29tbWVudCE9MCkgeworICAgICAg
ICBjb21tZW50TGVuZ3RoPSh1aW50MTZfdCkodXBydl9zdHJsZW4oY29tbWVudCkrMSk7CisgICAg
ICAgIGhlYWRlclNpemUrPWNvbW1lbnRMZW5ndGg7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29t
bWVudExlbmd0aD0wOworICAgIH0KKworICAgIC8qIHdyaXRlIHRoZSBzaXplIG9mIHRoZSBoZWFk
ZXIsIHRha2UgcGFkZGluZyBpbnRvIGFjY291bnQgKi8KKyAgICBwRGF0YS0+aGVhZGVyU2l6ZT0o
dWludDE2X3QpKChoZWFkZXJTaXplKzE1KSZ+MHhmKTsKKyAgICBwRGF0YS0+bWFnaWMxPTB4ZGE7
CisgICAgcERhdGEtPm1hZ2ljMj0weDI3OworICAgIFRfRmlsZVN0cmVhbV93cml0ZShwRGF0YS0+
ZmlsZSwgJnBEYXRhLT5oZWFkZXJTaXplLCA0KTsKKworICAgIC8qIHdyaXRlIHRoZSBpbmZvcm1h
dGlvbiBkYXRhICovCisgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBwSW5mbywg
cEluZm8tPnNpemUpOworCisgICAgLyogd3JpdGUgdGhlIGNvbW1lbnQgKi8KKyAgICBpZihjb21t
ZW50TGVuZ3RoPjApIHsKKyAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBj
b21tZW50LCBjb21tZW50TGVuZ3RoKTsKKyAgICB9CisKKyAgICAvKiB3cml0ZSBwYWRkaW5nIGJ5
dGVzIHRvIGFsaWduIHRoZSBkYXRhIHNlY3Rpb24gdG8gMTYgYnl0ZXMgKi8KKyAgICBoZWFkZXJT
aXplJj0weGY7CisgICAgaWYoaGVhZGVyU2l6ZSE9MCkgeworICAgICAgICBoZWFkZXJTaXplPSh1
aW50MTZfdCkoMTYtaGVhZGVyU2l6ZSk7CisgICAgICAgIHVwcnZfbWVtc2V0KGJ5dGVzLCAwLCBo
ZWFkZXJTaXplKTsKKyAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBieXRl
cywgaGVhZGVyU2l6ZSk7CisgICAgfQorCisgICAgcmV0dXJuIHBEYXRhOworfQorCitVX0NBUEkg
dWludDMyX3QgVV9FWFBPUlQyCit1ZGF0YV9maW5pc2goVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBV
RXJyb3JDb2RlICpwRXJyb3JDb2RlKSB7CisgICAgdWludDMyX3QgZmlsZUxlbmd0aD0wOworCisg
ICAgaWYocEVycm9yQ29kZT09TlVMTCB8fCBVX0ZBSUxVUkUoKnBFcnJvckNvZGUpKSB7CisgICAg
ICAgIHJldHVybiAwOworICAgIH0KKworICAgIGlmKHBEYXRhIT1OVUxMKSB7CisgICAgICAgIGlm
KHBEYXRhLT5maWxlIT1OVUxMKSB7CisgICAgICAgICAgICAvKiBmZmx1c2gocERhdGEtPmZpbGUp
OyovCisgICAgICAgICAgICBmaWxlTGVuZ3RoPVRfRmlsZVN0cmVhbV9zaXplKHBEYXRhLT5maWxl
KTsKKyAgICAgICAgICAgIGlmKFRfRmlsZVN0cmVhbV9lcnJvcihwRGF0YS0+ZmlsZSkpIHsKKyAg
ICAgICAgICAgICAgICAqcEVycm9yQ29kZT1VX0ZJTEVfQUNDRVNTX0VSUk9SOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmaWxlTGVuZ3RoLT1wRGF0YS0+aGVhZGVyU2l6
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFRfRmlsZVN0cmVhbV9jbG9zZShwRGF0YS0+
ZmlsZSk7CisgICAgICAgIH0KKyAgICAgICAgdXBydl9mcmVlKHBEYXRhKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gZmlsZUxlbmd0aDsKK30KKworLyogZHVtbXkgVURhdGFJbmZvIGNmLiB1ZGF0YS5o
ICovCitzdGF0aWMgY29uc3QgVURhdGFJbmZvIGR1bW15RGF0YUluZm8gPSB7CisgICAgc2l6ZW9m
KFVEYXRhSW5mbyksCisgICAgMCwKKworICAgIFVfSVNfQklHX0VORElBTiwKKyAgICBVX0NIQVJT
RVRfRkFNSUxZLAorICAgIFVfU0laRU9GX1VDSEFSLAorICAgIDAsCisKKyAgICB7IDAsIDAsIDAs
IDAgfSwgICAgICAgICAgICAgICAgIC8qIGR1bW15IGRhdGFGb3JtYXQgKi8KKyAgICB7IDAsIDAs
IDAsIDAgfSwgICAgICAgICAgICAgICAgIC8qIGR1bW15IGZvcm1hdFZlcnNpb24gKi8KKyAgICB7
IDAsIDAsIDAsIDAgfSAgICAgICAgICAgICAgICAgIC8qIGR1bW15IGRhdGFWZXJzaW9uICovCit9
OworCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2NyZWF0ZUR1bW15KGNvbnN0IGNoYXIg
KmRpciwgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwgVUVycm9yQ29kZSAqcEVy
cm9yQ29kZSkgeworICAgIGlmKFVfU1VDQ0VTUygqcEVycm9yQ29kZSkpIHsKKyAgICAgICAgdWRh
dGFfZmluaXNoKHVkYXRhX2NyZWF0ZShkaXIsIHR5cGUsIG5hbWUsICZkdW1teURhdGFJbmZvLCBO
VUxMLCBwRXJyb3JDb2RlKSwgcEVycm9yQ29kZSk7CisgICAgICAgIGlmKFVfRkFJTFVSRSgqcEVy
cm9yQ29kZSkpIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3IgJXMgd3JpdGlu
ZyBkdW1teSBkYXRhIGZpbGUgJXMiIFVfRklMRV9TRVBfU1RSSU5HICIlcy4lc1xuIiwKKyAgICAg
ICAgICAgICAgICAgICAgdV9lcnJvck5hbWUoKnBFcnJvckNvZGUpLCBkaXIsIG5hbWUsIHR5cGUp
OworICAgICAgICAgICAgZXhpdCgqcEVycm9yQ29kZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisK
K1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGU4KFVOZXdEYXRhTWVtb3J5ICpwRGF0
YSwgdWludDhfdCBieXRlKSB7CisgICAgaWYocERhdGEhPU5VTEwgJiYgcERhdGEtPmZpbGUhPU5V
TEwpIHsKKyAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCAmYnl0ZSwgMSk7
CisgICAgfQorfQorCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlMTYoVU5ld0Rh
dGFNZW1vcnkgKnBEYXRhLCB1aW50MTZfdCB3b3JkKSB7CisgICAgaWYocERhdGEhPU5VTEwgJiYg
cERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5m
aWxlLCAmd29yZCwgMik7CisgICAgfQorfQorCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRh
X3dyaXRlMzIoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCB1aW50MzJfdCB3eWRlKSB7CisgICAgaWYo
cERhdGEhPU5VTEwgJiYgcERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgVF9GaWxlU3RyZWFt
X3dyaXRlKHBEYXRhLT5maWxlLCAmd3lkZSwgNCk7CisgICAgfQorfQorCitVX0NBUEkgdm9pZCBV
X0VYUE9SVDIKK3VkYXRhX3dyaXRlQmxvY2soVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBjb25zdCB2
b2lkICpzLCBpbnQzMl90IGxlbmd0aCkgeworICAgIGlmKHBEYXRhIT1OVUxMICYmIHBEYXRhLT5m
aWxlIT1OVUxMKSB7CisgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICBUX0ZpbGVT
dHJlYW1fd3JpdGUocERhdGEtPmZpbGUsIHMsIGxlbmd0aCk7CisgICAgICAgIH0KKyAgICB9Cit9
CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGVQYWRkaW5nKFVOZXdEYXRhTWVt
b3J5ICpwRGF0YSwgaW50MzJfdCBsZW5ndGgpIHsKKyAgICBzdGF0aWMgY29uc3QgdWludDhfdCBw
YWRkaW5nWzE2XT17CisgICAgICAgIDB4YWEsIDB4YWEsIDB4YWEsIDB4YWEsCisgICAgICAgIDB4
YWEsIDB4YWEsIDB4YWEsIDB4YWEsCisgICAgICAgIDB4YWEsIDB4YWEsIDB4YWEsIDB4YWEsCisg
ICAgICAgIDB4YWEsIDB4YWEsIDB4YWEsIDB4YWEKKyAgICB9OworICAgIGlmKHBEYXRhIT1OVUxM
ICYmIHBEYXRhLT5maWxlIT1OVUxMKSB7CisgICAgICAgIHdoaWxlKGxlbmd0aD49MTYpIHsKKyAg
ICAgICAgICAgIFRfRmlsZVN0cmVhbV93cml0ZShwRGF0YS0+ZmlsZSwgcGFkZGluZywgMTYpOwor
ICAgICAgICAgICAgbGVuZ3RoLT0xNjsKKyAgICAgICAgfQorICAgICAgICBpZihsZW5ndGg+MCkg
eworICAgICAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBwYWRkaW5nLCBs
ZW5ndGgpOworICAgICAgICB9CisgICAgfQorfQorCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3Vk
YXRhX3dyaXRlU3RyaW5nKFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgY29uc3QgY2hhciAqcywgaW50
MzJfdCBsZW5ndGgpIHsKKyAgICBpZihwRGF0YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9TlVMTCkg
eworICAgICAgICBpZihsZW5ndGg9PS0xKSB7CisgICAgICAgICAgICBsZW5ndGg9KGludDMyX3Qp
dXBydl9zdHJsZW4ocyk7CisgICAgICAgIH0KKyAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAg
ICAgICAgIFRfRmlsZVN0cmVhbV93cml0ZShwRGF0YS0+ZmlsZSwgcywgbGVuZ3RoKTsKKyAgICAg
ICAgfQorICAgIH0KK30KKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZVVTdHJp
bmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBjb25zdCBVQ2hhciAqcywgaW50MzJfdCBsZW5ndGgp
IHsKKyAgICBpZihwRGF0YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBp
ZihsZW5ndGg9PS0xKSB7CisgICAgICAgICAgICBsZW5ndGg9dV9zdHJsZW4ocyk7CisgICAgICAg
IH0KKyAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAgICAgIFRfRmlsZVN0cmVhbV93cml0
ZShwRGF0YS0+ZmlsZSwgcywgbGVuZ3RoKnNpemVvZihVQ2hhcikpOworICAgICAgICB9CisgICAg
fQorfQorCisvKgorICogSGV5LCBFbWFjcywgcGxlYXNlIHNldCB0aGUgZm9sbG93aW5nOgorICoK
KyAqIExvY2FsIFZhcmlhYmxlczoKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgor
ICoKKyAqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Z2VuYnJrL3VuZXdkYXRhLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2Vu
YnJrL3VuZXdkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDI1YjhlOWY3NDk4NDc0MjdkMTBhYmNlYmUyYjQz
YWViODcwM2Y3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9nZW5icmsvdW5ld2RhdGEuaApAQCAtMCwwICsxLDExMSBAQAorLyoKKyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwg
UmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFt
ZTogIHVuZXdkYXRhLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAg
IDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5
b2N0MjUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBf
X1VORVdEQVRBX0hfXworI2RlZmluZSBfX1VORVdEQVRBX0hfXworCisjaW5jbHVkZSAidW5pY29k
ZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisKKy8qIEFQSSBmb3Igd3Jp
dGluZyBkYXRhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKi8KKworLyoqIEBtZW1vIEZvcndhcmQgZGVjbGFyYXRpb24gb2YgdGhlIGRhdGEgbWVt
b3J5IGNyZWF0aW9uIHR5cGUuICovCit0eXBlZGVmIHN0cnVjdCBVTmV3RGF0YU1lbW9yeSBVTmV3
RGF0YU1lbW9yeTsKKworLyoqCisgKiBDcmVhdGUgYSBuZXcgYmluYXJ5IGRhdGEgZmlsZS4KKyAq
IFRoZSBmaWxlLXdyaXRpbmcgPGNvZGU+dWRhdGFfPC9jb2RlPiBmdW5jdGlvbnMgZmFjaWxpdGF0
ZSB3cml0aW5nCisgKiBiaW5hcnkgZGF0YSBmaWxlcyB0aGF0IGNhbiBiZSByZWFkIGJ5IElDVSdz
IDxjb2RlPnVkYXRhPC9jb2RlPiBBUEkuCisgKiBUaGlzIGZ1bmN0aW9uIG9wZW5zIGEgbmV3IGZp
bGUgd2l0aCBhIGZpbGVuYW1lIGRldGVybWluZWQgZnJvbSBpdHMKKyAqIHBhcmFtZXRlcnMgLSBv
ZiB0aGUgZm9ybSAibmFtZS50eXBlIi4KKyAqIEl0IHRoZW4gd3JpdGVzIGEgc2hvcnQgaGVhZGVy
LCBmb2xsb3dlZCBieSB0aGUgPGNvZGU+VURhdGFJbmZvPC9jb2RlPgorICogc3RydWN0dXJlIGFu
ZCwgb3B0aW9uYWxseSwgYnkgdGhlIGNvbW1lbnQgc3RyaW5nLgorICogSXQgdGhlbiB3cml0ZXMg
cGFkZGluZyBieXRlcyB0byByb3VuZCB1cCB0byBhIG11bHRpcGxlIG9mIDE2IGJ5dGVzLgorICog
U3Vic2VxdWVudCB3cml0ZSBvcGVyYXRpb25zIHdpbGwgdGh1cyBzdGFydCBhdCBhbiBvZmZzZXQg
aW4gdGhlIGZpbGUKKyAqIHRoYXQgaXMgYSBtdWx0aXBsZSBvZiAxNi4gPGNvZGU+dWRhdGFfZ2V0
TWVtb3J5KCk8L2NvZGU+IHdpbGwgcmV0dXJuCisgKiBhIHBvaW50ZXIgdG8gdGhpcyBzYW1lIHN0
YXJ0aW5nIG9mZnNldC4KKyAqCisgKiBTZWUgdWRhdGEuaCAuCisgKgorICogQHBhcmFtIGRpciBB
IHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBkYXRhIHdpbGwg
YmUKKyAqICAgICAgICAgICAgd3JpdHRlbi4gSWYgPGNvZGU+TlVMTDwvY29kZT4sIHRoZW4KKyAq
ICAgICAgICAgICAgPGNvZGU+dV9nZXREYXRhRGlyZWN0b3J5PC9jb2RlPiBpcyB1c2VkLgorICog
QHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgZGF0YSB0byBi
ZSB3cml0dGVuLgorICogICAgICAgICAgICAgRm9yIGV4YW1wbGUsIHJlc291cmNlIGJ1bmRsZXMg
YXJlIHdyaXR0ZW4gd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVyc2lvbiB0
YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUgPGNvZGU+
TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0IHNwZWNp
ZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBwSW5mbyBBIHBvaW50ZXIgdG8g
YSBjb3JyZWN0bHkgZmlsbGVkIDxjb2RlPlVEYXRhSW5mbzwvY29kZT4KKyAqICAgICAgICAgICAg
ICBzdHJ1Y3R1cmUgdGhhdCB3aWxsIGJlIGNvcGllZCBpbnRvIHRoZSBmaWxlLgorICogQHBhcmFt
IGNvbW1lbnQgQSBzdHJpbmcgKGUuZy4sIGEgY29weXJpZ2h0IHN0YXRlbWVudCkgdGhhdCB3aWxs
IGJlCisgKiAgICAgICAgICAgICAgICBjb3BpZWQgaW50byB0aGUgZmlsZSBpZiBpdCBpcyBub3Qg
PGNvZGU+TlVMTDwvY29kZT4KKyAqICAgICAgICAgICAgICAgIG9yIGVtcHR5LiBUaGlzIHN0cmlu
ZyBzZXJ2ZXMgb25seSBhcyBhIGNvbW1lbnQgaW4gdGhlIGJpbmFyeQorICogICAgICAgICAgICAg
ICAgZmlsZS4gSXQgd2lsbCBub3QgYmUgYWNjZXNzaWJsZSBieSBhbnkgQVBJLgorICogQHBhcmFt
IHBFcnJvckNvZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJdCBtdXN0IG5vdCBiZSA8
Y29kZT5OVUxMPC9jb2RlPi4KKyAqLworVV9DQVBJIFVOZXdEYXRhTWVtb3J5ICogVV9FWFBPUlQy
Cit1ZGF0YV9jcmVhdGUoY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBj
aGFyICpuYW1lLAorICAgICAgICAgICAgIGNvbnN0IFVEYXRhSW5mbyAqcEluZm8sCisgICAgICAg
ICAgICAgY29uc3QgY2hhciAqY29tbWVudCwKKyAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJy
b3JDb2RlKTsKKworLyoqIEBtZW1vIENsb3NlIGEgbmV3bHkgd3JpdHRlbiBiaW5hcnkgZmlsZS4g
Ki8KK1VfQ0FQSSB1aW50MzJfdCBVX0VYUE9SVDIKK3VkYXRhX2ZpbmlzaChVTmV3RGF0YU1lbW9y
eSAqcERhdGEsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKiogQG1lbW8gV3JpdGUgYSBk
dW1teSBkYXRhIGZpbGUuICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2NyZWF0ZUR1
bW15KGNvbnN0IGNoYXIgKmRpciwgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwg
VUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBhbiA4LWJpdCBieXRl
IHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZTgoVU5l
d0RhdGFNZW1vcnkgKnBEYXRhLCB1aW50OF90IGJ5dGUpOworCisvKiogQG1lbW8gV3JpdGUgYSAx
Ni1iaXQgd29yZCB0byB0aGUgZmlsZS4gKi8KK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFf
d3JpdGUxNihVTmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQxNl90IHdvcmQpOworCisvKiogQG1l
bW8gV3JpdGUgYSAzMi1iaXQgd29yZCB0byB0aGUgZmlsZS4gKi8KK1VfQ0FQSSB2b2lkIFVfRVhQ
T1JUMgordWRhdGFfd3JpdGUzMihVTmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQzMl90IHd5ZGUp
OworCisvKiogQG1lbW8gV3JpdGUgYSBibG9jayBvZiBieXRlcyB0byB0aGUgZmlsZS4gKi8KK1Vf
Q0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGVCbG9jayhVTmV3RGF0YU1lbW9yeSAqcERh
dGEsIGNvbnN0IHZvaWQgKnMsIGludDMyX3QgbGVuZ3RoKTsKKworLyoqIEBtZW1vIFdyaXRlIGEg
YmxvY2sgb2YgYXJiaXRyYXJ5IHBhZGRpbmcgYnl0ZXMgdG8gdGhlIGZpbGUuICovCitVX0NBUEkg
dm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlUGFkZGluZyhVTmV3RGF0YU1lbW9yeSAqcERhdGEs
IGludDMyX3QgbGVuZ3RoKTsKKworLyoqIEBtZW1vIFdyaXRlIGEgPGNvZGU+Y2hhcio8L2NvZGU+
IHN0cmluZyBvZiBwbGF0Zm9ybSAiaW52YXJpYW50IGNoYXJhY3RlcnMiIHRvIHRoZSBmaWxlLiAq
LworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZVN0cmluZyhVTmV3RGF0YU1lbW9y
eSAqcERhdGEsIGNvbnN0IGNoYXIgKnMsIGludDMyX3QgbGVuZ3RoKTsKKworLyoqIEBtZW1vIFdy
aXRlIGEgPGNvZGU+VUNoYXIqPC9jb2RlPiBzdHJpbmcgb2YgVW5pY29kZSBjaGFyYWN0ZXIgY29k
ZSB1bml0cyB0byB0aGUgZmlsZS4gKi8KK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3Jp
dGVVU3RyaW5nKFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgY29uc3QgVUNoYXIgKnMsIGludDMyX3Qg
bGVuZ3RoKTsKKworCisvKgorICogSGV5LCBFbWFjcywgcGxlYXNlIHNldCB0aGUgZm9sbG93aW5n
OgorICoKKyAqIExvY2FsIFZhcmlhYmxlczoKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICog
RW5kOgorICoKKyAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9nZW5icmsvdW9wdGlvbnMuYyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9nZW5icmsvdW9wdGlvbnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWVmYzE3MGNiZGY3NTEz
ZGQ1N2ViZjc3NzliOTgyZTk3YTIxZDk0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5jCkBAIC0wLDAgKzEsMTIyIEBA
CisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMjAwMCwg
SW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhl
cnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IGZpbGUgbmFtZTogIHVvcHRpb25zLmMKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRh
YiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVk
IG9uOiAyMDAwYXByMTcKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKgorKiAg
IFRoaXMgZmlsZSBwcm92aWRlcyBhIGNvbW1hbmQgbGluZSBhcmd1bWVudCBwYXJzZXIuCisqLwor
CisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJjc3RyaW5nLmgiCisjaW5j
bHVkZSAidW9wdGlvbnMuaCIKKworVV9DQVBJIGludCBVX0VYUE9SVDIKK3VfcGFyc2VBcmdzKGlu
dCBhcmdjLCBjaGFyKiBhcmd2W10sCisgICAgICAgICAgICBpbnQgb3B0aW9uQ291bnQsIFVPcHRp
b24gb3B0aW9uc1tdKSB7CisgICAgY2hhciAqYXJnOworICAgIGludCBpPTEsIHJlbWFpbmluZz0x
OworICAgIGNoYXIgYywgc3RvcE9wdGlvbnM9MDsKKworICAgIHdoaWxlKGk8YXJnYykgeworICAg
ICAgICBhcmc9YXJndltpXTsKKyAgICAgICAgaWYoIXN0b3BPcHRpb25zICYmICphcmc9PSctJyAm
JiAoYz1hcmdbMV0pIT0wKSB7CisgICAgICAgICAgICAvKiBwcm9jZXNzIGFuIG9wdGlvbiAqLwor
ICAgICAgICAgICAgVU9wdGlvbiAqb3B0aW9uPU5VTEw7CisgICAgICAgICAgICBhcmcrPTI7Cisg
ICAgICAgICAgICBpZihjPT0nLScpIHsKKyAgICAgICAgICAgICAgICAvKiBwcm9jZXNzIGEgbG9u
ZyBvcHRpb24gKi8KKyAgICAgICAgICAgICAgICBpZigqYXJnPT0wKSB7CisgICAgICAgICAgICAg
ICAgICAgIC8qIHN0b3AgcHJvY2Vzc2luZyBvcHRpb25zIGFmdGVyICItLSIgKi8KKyAgICAgICAg
ICAgICAgICAgICAgc3RvcE9wdGlvbnM9MTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICAvKiBzZWFyY2ggZm9yIHRoZSBvcHRpb24gc3RyaW5nICovCisgICAg
ICAgICAgICAgICAgICAgIGludCBqOworICAgICAgICAgICAgICAgICAgICBmb3Ioaj0wOyBqPG9w
dGlvbkNvdW50OyArK2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9wdGlvbnNbal0u
bG9uZ05hbWUgJiYgdXBydl9zdHJjbXAoYXJnLCBvcHRpb25zW2pdLmxvbmdOYW1lKT09MCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbj1vcHRpb25zK2o7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYob3B0aW9uPT1OVUxMKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBubyBvcHRpb24gbWF0Y2hlcyAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1pOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbi0+ZG9lc09jY3VyPTE7CisKKyAgICAgICAgICAgICAgICAg
ICAgaWYob3B0aW9uLT5oYXNBcmchPVVPUFRfTk9fQVJHKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAvKiBwYXJzZSB0aGUgYXJndW1lbnQgZm9yIHRoZSBvcHRpb24sIGlmIGFueSAqLworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYoaSsxPGFyZ2MgJiYgIShhcmd2W2krMV1bMF09PSctJyAm
JiBhcmd2W2krMV1bMV0hPTApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogYXJn
dW1lbnQgaW4gdGhlIG5leHQgYXJndltdLCBhbmQgdGhlcmUgaXMgbm90IGFuIG9wdGlvbiBpbiB0
aGVyZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi0+dmFsdWU9YXJndlsr
K2ldOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKG9wdGlvbi0+aGFzQXJnPT1V
T1BUX1JFUVVJUkVTX0FSRykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoZXJl
IGlzIG5vIGFyZ3VtZW50LCBidXQgb25lIGlzIHJlcXVpcmVkOiByZXR1cm4gd2l0aCBlcnJvciAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogcHJvY2VzcyBvbmUgb3IgbW9y
ZSBzaG9ydCBvcHRpb25zICovCisgICAgICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAg
ICAgICAvKiBzZWFyY2ggZm9yIHRoZSBvcHRpb24gbGV0dGVyICovCisgICAgICAgICAgICAgICAg
ICAgIGludCBqOworICAgICAgICAgICAgICAgICAgICBmb3Ioaj0wOyBqPG9wdGlvbkNvdW50OyAr
K2opIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKGM9PW9wdGlvbnNbal0uc2hvcnROYW1l
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPW9wdGlvbnMrajsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZihvcHRpb249PU5V
TEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vIG9wdGlvbiBtYXRjaGVzICovCisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLWk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgb3B0aW9uLT5kb2VzT2NjdXI9MTsKKworICAgICAgICAgICAg
ICAgICAgICBpZihvcHRpb24tPmhhc0FyZyE9VU9QVF9OT19BUkcpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIC8qIHBhcnNlIHRoZSBhcmd1bWVudCBmb3IgdGhlIG9wdGlvbiwgaWYgYW55ICov
CisgICAgICAgICAgICAgICAgICAgICAgICBpZigqYXJnIT0wKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLyogYXJndW1lbnQgZm9sbG93aW5nIGluIHRoZSBzYW1lIGFyZ3ZbXSAqLwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi0+dmFsdWU9YXJnOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8qIGRvIG5vdCBwcm9jZXNzIHRoZSByZXN0IG9mIHRoaXMgYXJn
IGFzIG9wdGlvbiBsZXR0ZXJzICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoaSsxPGFyZ2MgJiYgIShhcmd2W2kr
MV1bMF09PSctJyAmJiBhcmd2W2krMV1bMV0hPTApKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLyogYXJndW1lbnQgaW4gdGhlIG5leHQgYXJndltdLCBhbmQgdGhlcmUgaXMgbm90IGFu
IG9wdGlvbiBpbiB0aGVyZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi0+
dmFsdWU9YXJndlsrK2ldOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRoaXMgYnJl
YWsgaXMgcmVkdW5kYW50IGJlY2F1c2Ugd2Uga25vdyB0aGF0ICphcmc9PTAgKi8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSBpZihvcHRpb24tPmhhc0FyZz09VU9QVF9SRVFVSVJFU19BUkcpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiB0aGVyZSBpcyBubyBhcmd1bWVudCwgYnV0IG9uZSBpcyByZXF1aXJl
ZDogcmV0dXJuIHdpdGggZXJyb3IgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gLWk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgICAgICAvKiBnZXQgdGhlIG5leHQgb3B0aW9uIGxldHRlciAqLwor
ICAgICAgICAgICAgICAgICAgICBvcHRpb249TlVMTDsKKyAgICAgICAgICAgICAgICAgICAgYz0q
YXJnKys7CisgICAgICAgICAgICAgICAgfSB3aGlsZShjIT0wKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgaWYob3B0aW9uIT0wICYmIG9wdGlvbi0+b3B0aW9uRm4hPTAgJiYgb3B0aW9u
LT5vcHRpb25GbihvcHRpb24tPmNvbnRleHQsIG9wdGlvbik8MCkgeworICAgICAgICAgICAgICAg
IC8qIHRoZSBvcHRpb24gZnVuY3Rpb24gd2FzIGNhbGxlZCBhbmQgcmV0dXJuZWQgYW4gZXJyb3Ig
Ki8KKyAgICAgICAgICAgICAgICByZXR1cm4gLWk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIC8qIGdvIHRvIG5leHQgYXJndltdICovCisgICAgICAgICAgICArK2k7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAvKiBtb3ZlIGEgbm9uLW9wdGlvbiB1cCBpbiBhcmd2W10gKi8K
KyAgICAgICAgICAgIGFyZ3ZbcmVtYWluaW5nKytdPWFyZzsKKyAgICAgICAgICAgICsraTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVtYWluaW5nOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5oIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQzZGI2NWYyODFmYzE5MzRjYjg4ODM2MzY2MGNiMzMxNzU1MzRhYzIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25zLmgK
QEAgLTAsMCArMSwxNDEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29w
eXJpZ2h0IChDKSAyMDAwLTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyog
ICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1b3B0aW9ucy5oCisqICAgZW5jb2Rp
bmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRh
dGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwMGFwcjE3CisqICAgY3JlYXRlZCBieTogTWFy
a3VzIFcuIFNjaGVyZXIKKyoKKyogICBUaGlzIGZpbGUgcHJvdmlkZXMgYSBjb21tYW5kIGxpbmUg
YXJndW1lbnQgcGFyc2VyLgorKi8KKworI2lmbmRlZiBfX1VPUFRJT05TX0hfXworI2RlZmluZSBf
X1VPUFRJT05TX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworLyogVGhpcyBz
aG91bGQgdXN1YWxseSBiZSBjYWxsZWQgYmVmb3JlIGNhbGxpbmcgdV9wYXJzZUFyZ3MgKi8KKy8q
I2lmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MCAmJiAoVV9DSEFSU0VUX0ZBTUlMWSA9PSBVX0FT
Q0lJX0ZBTUlMWSkqLworICAgIC8qIHRyYW5zbGF0ZSBhcmdzIGZyb20gRUJDRElDIHRvIEFTQ0lJ
ICovCisvKiMgICBkZWZpbmUgVV9NQUlOX0lOSVRfQVJHUyhhcmdjLCBhcmd2KSBfX2FyZ3Z0b2Fz
Y2lpX2EoYXJnYywgYXJndikqLworLyojZWxpZiBkZWZpbmVkKFhQX01BQ19DT05TT0xFKSovCisj
aWYgZGVmaW5lZChYUF9NQUNfQ09OU09MRSkKKyMgICBpbmNsdWRlIDxjb25zb2xlLmg+CisgICAg
LyogR2V0IHRoZSBhcmd1bWVudHMgZnJvbSB0aGUgR1VJLCBzaW5jZSBvbGQgTWFjcyBkb24ndCBo
YXZlIGEgY29uc29sZSBXaW5kb3cuICovCisjICAgZGVmaW5lIFVfTUFJTl9JTklUX0FSR1MoYXJn
YywgYXJndikgYXJnYyA9IGNjb21tYW5kKChjaGFyKioqKSZhcmd2KQorI2Vsc2UKKyAgICAvKiBO
b3JtYWxseSB3ZSBkbyBub3RoaW5nLiAqLworIyAgIGRlZmluZSBVX01BSU5fSU5JVF9BUkdTKGFy
Z2MsIGFyZ3YpCisjZW5kaWYKKworCisKKy8qIGZvcndhcmQgZGVjbGFyYXRpb25zIGZvciB0aGUg
ZnVuY3Rpb24gZGVjbGFyYXRpb24gKi8KK3N0cnVjdCBVT3B0aW9uOwordHlwZWRlZiBzdHJ1Y3Qg
VU9wdGlvbiBVT3B0aW9uOworCisvKiBmdW5jdGlvbiB0byBiZSBjYWxsZWQgZm9yIGEgY29tbWFu
ZCBsaW5lIG9wdGlvbiAqLwordHlwZWRlZiBpbnQgVU9wdGlvbkZuKHZvaWQgKmNvbnRleHQsIFVP
cHRpb24gKm9wdGlvbik7CisKKy8qIHZhbHVlcyBvZiBVT3B0aW9uLmhhc0FyZyAqLworZW51bSB7
IFVPUFRfTk9fQVJHLCBVT1BUX1JFUVVJUkVTX0FSRywgVU9QVF9PUFRJT05BTF9BUkcgfTsKKwor
Lyogc3RydWN0dXJlIGRlc2NyaWJpbmcgYSBjb21tYW5kIGxpbmUgb3B0aW9uICovCitzdHJ1Y3Qg
VU9wdGlvbiB7CisgICAgY29uc3QgY2hhciAqbG9uZ05hbWU7ICAgLyogImZvbyIgZm9yIC0tZm9v
ICovCisgICAgY29uc3QgY2hhciAqdmFsdWU7ICAgICAgLyogb3V0cHV0IHBsYWNlaG9sZGVyLCB3
aWxsIHBvaW50IHRvIHRoZSBhcmd1bWVudCBzdHJpbmcsIGlmIGFueSAqLworICAgIFVPcHRpb25G
biAqb3B0aW9uRm47ICAgIC8qIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoaXMgb3B0aW9u
IG9jY3VycyAqLworICAgIHZvaWQgKmNvbnRleHQ7ICAgICAgICAgIC8qIHBhcmFtZXRlciBmb3Ig
dGhlIGZ1bmN0aW9uICovCisgICAgY2hhciBzaG9ydE5hbWU7ICAgICAgICAgLyogJ2YnIGZvciAt
ZiAqLworICAgIGNoYXIgaGFzQXJnOyAgICAgICAgICAgIC8qIGVudW0gdmFsdWU6IG9wdGlvbiB0
YWtlcyBuby9yZXF1aXJlcy9tYXkgaGF2ZSBhcmd1bWVudCAqLworICAgIGNoYXIgZG9lc09jY3Vy
OyAgICAgICAgIC8qIGJvb2xlYW4gZm9yICJ0aGlzIG9uZSBvY2N1cmVkIiAqLworfTsKKworLyog
bWFjcm8gZm9yIGFuIGVudHJ5IGluIGEgZGVjbGFyYXRpb24gb2YgVU9wdGlvbltdICovCisjZGVm
aW5lIFVPUFRJT05fREVGKGxvbmdOYW1lLCBzaG9ydE5hbWUsIGhhc0FyZykgXAorICAgIHsgbG9u
Z05hbWUsIE5VTEwsIE5VTEwsIE5VTEwsIHNob3J0TmFtZSwgaGFzQXJnLCAwIH0KKworLyogSUNV
IFRvb2xzIG9wdGlvbiBkZWZpbml0aW9ucyAqLworI2RlZmluZSBVT1BUSU9OX0hFTFBfSCAgICAg
ICAgICAgICAgVU9QVElPTl9ERUYoImhlbHAiLCAnaCcsIFVPUFRfTk9fQVJHKQorI2RlZmluZSBV
T1BUSU9OX0hFTFBfUVVFU1RJT05fTUFSSyAgVU9QVElPTl9ERUYoImhlbHAiLCAnPycsIFVPUFRf
Tk9fQVJHKQorI2RlZmluZSBVT1BUSU9OX1ZFUkJPU0UgICAgICAgICAgICAgVU9QVElPTl9ERUYo
InZlcmJvc2UiLCAndicsIFVPUFRfTk9fQVJHKQorI2RlZmluZSBVT1BUSU9OX1FVSUVUICAgICAg
ICAgICAgICAgVU9QVElPTl9ERUYoInF1aWV0IiwgJ3EnLCBVT1BUX05PX0FSRykKKyNkZWZpbmUg
VU9QVElPTl9WRVJTSU9OICAgICAgICAgICAgIFVPUFRJT05fREVGKCJ2ZXJzaW9uIiwgJ1YnLCBV
T1BUX05PX0FSRykKKyNkZWZpbmUgVU9QVElPTl9DT1BZUklHSFQgICAgICAgICAgIFVPUFRJT05f
REVGKCJjb3B5cmlnaHQiLCAnYycsIFVPUFRfTk9fQVJHKQorCisjZGVmaW5lIFVPUFRJT05fREVT
VERJUiAgICAgICAgICAgICBVT1BUSU9OX0RFRigiZGVzdGRpciIsICdkJywgVU9QVF9SRVFVSVJF
U19BUkcpCisjZGVmaW5lIFVPUFRJT05fU09VUkNFRElSICAgICAgICAgICBVT1BUSU9OX0RFRigi
c291cmNlZGlyIiwgJ3MnLCBVT1BUX1JFUVVJUkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9FTkNP
RElORyAgICAgICAgICAgIFVPUFRJT05fREVGKCJlbmNvZGluZyIsICdlJywgVU9QVF9SRVFVSVJF
U19BUkcpCisjZGVmaW5lIFVPUFRJT05fSUNVREFUQURJUiAgICAgICAgICBVT1BUSU9OX0RFRigi
aWN1ZGF0YWRpciIsICdpJywgVU9QVF9SRVFVSVJFU19BUkcpCisjZGVmaW5lIFVPUFRJT05fV1JJ
VEVfSkFWQSAgICAgICAgICBVT1BUSU9OX0RFRigid3JpdGUtamF2YSIsICdqJywgVU9QVF9PUFRJ
T05BTF9BUkcpCisjZGVmaW5lIFVPUFRJT05fUEFDS0FHRV9OQU1FICAgICAgICBVT1BUSU9OX0RF
RigicGFja2FnZS1uYW1lIiwgJ3AnLCBVT1BUX1JFUVVJUkVTX0FSRykKKyNkZWZpbmUgVU9QVElP
Tl9CVU5ETEVfTkFNRSAgICAgICAgIFVPUFRJT05fREVGKCJidW5kbGUtbmFtZSIsICdiJywgVU9Q
VF9SRVFVSVJFU19BUkcpCisKKy8qKgorICogQyBDb21tYW5kIGxpbmUgYXJndW1lbnQgcGFyc2Vy
LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGFyZ3ZbYXJnY10gY29tbWFuZCBsaW5l
IGFuZCBhIGRlc2NyaXB0aW9uIG9mCisgKiB0aGUgcHJvZ3JhbSdzIG9wdGlvbnMgaW4gZm9ybSBv
ZiBhbiBhcnJheSBvZiBVT3B0aW9uIHN0cnVjdHVyZXMuCisgKiBFYWNoIFVPcHRpb24gZGVmaW5l
cyBhIGxvbmcgYW5kIGEgc2hvcnQgbmFtZSAoYSBzdHJpbmcgYW5kIGEgY2hhcmFjdGVyKQorICog
Zm9yIG9wdGlvbnMgbGlrZSAiLS1mb28iIGFuZCAiLWYiLgorICoKKyAqIEVhY2ggb3B0aW9uIGlz
IG1hcmtlZCB3aXRoIHdoZXRoZXIgaXQgZG9lcyBub3QgdGFrZSBhbiBhcmd1bWVudCwKKyAqIHJl
cXVpcmVzIG9uZSwgb3Igb3B0aW9uYWxseSB0YWtlcyBvbmUuIFRoZSBhcmd1bWVudCBtYXkgZm9s
bG93IGluCisgKiB0aGUgc2FtZSBhcmd2W10gZW50cnkgZm9yIHNob3J0IG9wdGlvbnMsIG9yIGl0
IG1heSBhbHdheXMgZm9sbG93CisgKiBpbiB0aGUgbmV4dCBhcmd2W10gZW50cnkuCisgKgorICog
QW4gYXJndW1lbnQgaXMgaW4gdGhlIG5leHQgYXJndltdIGVudHJ5IGZvciBib3RoIGxvbmcgYW5k
IHNob3J0IG5hbWUKKyAqIG9wdGlvbnMsIGV4Y2VwdCBpdCBpcyB0YWtlbiBmcm9tIGRpcmVjdGx5
IGJlaGluZCB0aGUgc2hvcnQgbmFtZSBpbgorICogaXRzIG93biBhcmd2W10gZW50cnkgaWYgdGhl
cmUgYXJlIGNoYXJhY3RlcnMgZm9sbG93aW5nIHRoZSBvcHRpb24gbGV0dGVyLgorICogQW4gYXJn
dW1lbnQgaW4gaXRzIG93biBhcmd2W10gZW50cnkgbXVzdCBub3QgYmVnaW4gd2l0aCBhICctJwor
ICogdW5sZXNzIGl0IGlzIG9ubHkgdGhlICctJyBpdHNlbGYuIFRoZXJlIGlzIG5vIHJlc3RyaWN0
aW9uIG9mIHRoZQorICogYXJndW1lbnQgZm9ybWF0IGlmIGl0IGlzIHBhcnQgb2YgdGhlIHNob3J0
IG5hbWUgb3B0aW9ucydzIGFyZ3ZbXSBlbnRyeS4KKyAqCisgKiBUaGUgYXJndW1lbnQgaXMgc3Rv
cmVkIGluIHRoZSB2YWx1ZSBmaWVsZCBvZiB0aGUgY29ycmVzcG9uZGluZworICogVU9wdGlvbiBl
bnRyeSwgYW5kIHRoZSBkb2VzT2NjdXIgZmllbGQgaXMgc2V0IHRvIDEgaWYgdGhlIG9wdGlvbgor
ICogaXMgZm91bmQgYXQgYWxsLgorICoKKyAqIFNob3J0IG5hbWUgb3B0aW9ucyB3aXRob3V0IGFy
Z3VtZW50cyBjYW4gYmUgY29sbGFwc2VkIGludG8gYSBzaW5nbGUKKyAqIGFyZ3ZbXSBlbnRyeS4g
QWZ0ZXIgYW4gb3B0aW9uIGxldHRlciB0YWtlcyBhbiBhcmd1bWVudCwgZm9sbG93aW5nCisgKiBs
ZXR0ZXJzIHdpbGwgYmUgdGFrZW4gYXMgaXRzIGFyZ3VtZW50LgorICoKKyAqIElmIHRoZSBzYW1l
IG9wdGlvbiBpcyBmb3VuZCBzZXZlcmFsIHRpbWVzLCB0aGVuIHRoZSBsYXN0CisgKiBhcmd1bWVu
dCB2YWx1ZSB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgdmFsdWUgZmllbGQuCisgKgorICogRm9yIGVh
Y2ggb3B0aW9uLCBhIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQuIFRoaXMgY291bGQgYmUgdXNlZAor
ICogZm9yIG9wdGlvbnMgdGhhdCBvY2N1ciBtdWx0aXBsZSB0aW1lcyBhbmQgYWxsIGFyZ3VtZW50
cyBhcmUgdG8KKyAqIGJlIGNvbGxlY3RlZC4KKyAqCisgKiBBbGwgb3B0aW9ucyBhcmUgcmVtb3Zl
ZCBmcm9tIHRoZSBhcmd2W10gYXJyYXkgaXRzZWxmLiBJZiB0aGUgcGFyc2VyCisgKiBpcyBzdWNj
ZXNzZnVsLCB0aGVuIGl0IHJldHVybnMgdGhlIG51bWJlciBvZiByZW1haW5pbmcgbm9uLW9wdGlv
bgorICogc3RyaW5ncyAoaW5jbHVkaW5nIGFyZ3ZbMF0pLgorICogYXJndlswXSwgdGhlIHByb2dy
YW0gbmFtZSwgaXMgbmV2ZXIgcmVhZCBvciBtb2RpZmllZC4KKyAqCisgKiBBbiBvcHRpb24gIi0t
IiBlbmRzIG9wdGlvbiBwcm9jZXNzaW5nOyBldmVyeXRoaW5nIGFmdGVyIHRoaXMKKyAqIHJlbWFp
bnMgaW4gdGhlIGFyZ3ZbXSBhcnJheS4KKyAqCisgKiBBbiBvcHRpb24gc3RyaW5nICItIiBhbG9u
ZSBpcyB0cmVhdGVkIGFzIGEgbm9uLW9wdGlvbi4KKyAqCisgKiBJZiBhbiBvcHRpb24gaXMgbm90
IHJlY29nbml6ZWQgb3IgYW4gYXJndW1lbnQgbWlzc2luZywgdGhlbgorICogdGhlIHBhcnNlciBy
ZXR1cm5zIHdpdGggdGhlIG5lZ2F0aXZlIGluZGV4IG9mIHRoZSBhcmd2W10gZW50cnkKKyAqIHdo
ZXJlIHRoZSBlcnJvciB3YXMgZGV0ZWN0ZWQuCisgKgorICogVGhlIE9TLzQwMCBjb21waWxlciBy
ZXF1aXJlcyB0aGF0IGFyZ3YgZWl0aGVyIGJlICJjaGFyKiBhcmd2W10iLAorICogb3IgImNvbnN0
IGNoYXIqIGNvbnN0IGFyZ3ZbXSIsIGFuZCBpdCB3aWxsIG5vdCBhY2NlcHQsIAorICogImNvbnN0
IGNoYXIqIGFyZ3ZbXSIgYXMgYSBkZWZpbml0aW9uIGZvciBtYWluKCkuCisgKgorICogQHBhcmFt
IGFyZ3YgVGhpcyBwYXJhbWV0ZXIgaXMgbW9kaWZpZWQKKyAqIEBwYXJhbSBvcHRpb25zIFRoaXMg
cGFyYW1ldGVyIGlzIG1vZGlmaWVkCisgKi8KK1VfQ0FQSSBpbnQgVV9FWFBPUlQyCit1X3BhcnNl
QXJncyhpbnQgYXJnYywgY2hhciogYXJndltdLAorICAgICAgICAgICAgaW50IG9wdGlvbkNvdW50
LCBVT3B0aW9uIG9wdGlvbnNbXSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91dHJpZS5oIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL2dlbmJyay91dHJpZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjZWMwMjdmZTM0NTk1
ZTViNzVlMWYyODUwZDIwNmI2MmE5NGVmODcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3V0cmllLmgKQEAgLTAsMCArMSw3OTUgQEAK
Ky8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDIwMDEtMjAx
MSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBv
dGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
ICAgZmlsZSBuYW1lOiAgdXRyaWUuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFi
IHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQg
b246IDIwMDFub3YwOAorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisj
aWZuZGVmIF9fVVRSSUVfSF9fCisjZGVmaW5lIF9fVVRSSUVfSF9fCisKKyNpbmNsdWRlICJ1bmlj
b2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXRmMTYuaCIKKyNpbmNsdWRlICJ1ZGF0
YXN3cC5oIgorCitVX0NERUNMX0JFR0lOCisKKy8qKgorICogXGZpbGUKKyAqCisgKiBUaGlzIGlz
IGEgY29tbW9uIGltcGxlbWVudGF0aW9uIG9mIGEgImZvbGRlZCIgdHJpZS4KKyAqIEl0IGlzIGEg
a2luZCBvZiBjb21wcmVzc2VkLCBzZXJpYWxpemFibGUgdGFibGUgb2YgMTYtIG9yIDMyLWJpdCB2
YWx1ZXMgYXNzb2NpYXRlZCB3aXRoCisgKiBVbmljb2RlIGNvZGUgcG9pbnRzICgwLi4weDEwZmZm
ZikuCisgKgorICogVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBvcHRpbWl6ZWQgZm9yIGdldHRpbmcg
dmFsdWVzIHdoaWxlIHdhbGtpbmcgZm9yd2FyZAorICogdGhyb3VnaCBhIFVURi0xNiBzdHJpbmcu
CisgKiBUaGVyZWZvcmUsIHRoZSBzaW1wbGVzdCBhbmQgZmFzdGVzdCBhY2Nlc3MgbWFjcm9zIGFy
ZSB0aGUKKyAqIF9GUk9NX0xFQUQoKSBhbmQgX0ZST01fT0ZGU0VUX1RSQUlMKCkgbWFjcm9zLgor
ICoKKyAqIFRoZSBfRlJPTV9CTVAoKSBtYWNyb3MgYXJlIGEgbGl0dGxlIG1vcmUgY29tcGxpY2F0
ZWQ7IHRoZXkgZ2V0IHZhbHVlcworICogZXZlbiBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBfcG9p
bnRzXywgd2hpbGUgdGhlIF9GUk9NX0xFQUQoKSBtYWNyb3MKKyAqIGdldCBzcGVjaWFsICJmb2xk
ZWQiIHZhbHVlcyBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBfdW5pdHNfIGlmCisgKiB0aGVyZSBp
cyByZWxldmFudCBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGVtLgorICogRnJvbSBzdWNoIGEgZm9s
ZGVkIHZhbHVlLCBhbiBvZmZzZXQgbmVlZHMgdG8gYmUgZXh0cmFjdGVkIHRvIHN1cHBseQorICog
dG8gdGhlIF9GUk9NX09GRlNFVF9UUkFJTCgpIG1hY3Jvcy4KKyAqCisgKiBNb3N0IG9mIHRoZSBt
b3JlIGNvbXBsZXggKGFuZCBtb3JlIGNvbnZlbmllbnQpIGZ1bmN0aW9ucy9tYWNyb3MgY2FsbCBh
IGNhbGxiYWNrIGZ1bmN0aW9uCisgKiB0byBnZXQgdGhhdCBvZmZzZXQgZnJvbSB0aGUgZm9sZGVk
IHZhbHVlIGZvciBhIGxlYWQgc3Vycm9nYXRlIHVuaXQuCisgKi8KKworLyoqCisgKiBUcmllIGNv
bnN0YW50cywgZGVmaW5pbmcgc2hpZnQgd2lkdGhzLCBpbmRleCBhcnJheSBsZW5ndGhzLCBldGMu
CisgKi8KK2VudW0geworICAgIC8qKiBTaGlmdCBzaXplIGZvciBzaGlmdGluZyByaWdodCB0aGUg
aW5wdXQgaW5kZXguIDEuLjkgKi8KKyAgICBVVFJJRV9TSElGVD01LAorCisgICAgLyoqIE51bWJl
ciBvZiBkYXRhIHZhbHVlcyBpbiBhIHN0YWdlIDIgKGRhdGEgYXJyYXkpIGJsb2NrLiAyLCA0LCA4
LCAuLiwgMHgyMDAgKi8KKyAgICBVVFJJRV9EQVRBX0JMT0NLX0xFTkdUSD0xPDxVVFJJRV9TSElG
VCwKKworICAgIC8qKiBNYXNrIGZvciBnZXR0aW5nIHRoZSBsb3dlciBiaXRzIGZyb20gdGhlIGlu
cHV0IGluZGV4LiAqLworICAgIFVUUklFX01BU0s9VVRSSUVfREFUQV9CTE9DS19MRU5HVEgtMSwK
KworICAgIC8qKgorICAgICAqIExlYWQgc3Vycm9nYXRlIGNvZGUgcG9pbnRzJyBpbmRleCBkaXNw
bGFjZW1lbnQgaW4gdGhlIGluZGV4IGFycmF5LgorICAgICAqIDB4MTAwMDAtMHhkODAwPTB4Mjgw
MAorICAgICAqLworICAgIFVUUklFX0xFQURfSU5ERVhfRElTUD0weDI4MDA+PlVUUklFX1NISUZU
LAorCisgICAgLyoqCisgICAgICogU2hpZnQgc2l6ZSBmb3Igc2hpZnRpbmcgbGVmdCB0aGUgaW5k
ZXggYXJyYXkgdmFsdWVzLgorICAgICAqIEluY3JlYXNlcyBwb3NzaWJsZSBkYXRhIHNpemUgd2l0
aCAxNi1iaXQgaW5kZXggdmFsdWVzIGF0IHRoZSBjb3N0CisgICAgICogb2YgY29tcGFjdGFiaWxp
dHkuCisgICAgICogVGhpcyByZXF1aXJlcyBibG9ja3Mgb2Ygc3RhZ2UgMiBkYXRhIHRvIGJlIGFs
aWduZWQgYnkgVVRSSUVfREFUQV9HUkFOVUxBUklUWS4KKyAgICAgKiAwLi5VVFJJRV9TSElGVAor
ICAgICAqLworICAgIFVUUklFX0lOREVYX1NISUZUPTIsCisKKyAgICAvKiogVGhlIGFsaWdubWVu
dCBzaXplIG9mIGEgc3RhZ2UgMiBkYXRhIGJsb2NrLiBBbHNvIHRoZSBncmFudWxhcml0eSBmb3Ig
Y29tcGFjdGlvbi4gKi8KKyAgICBVVFJJRV9EQVRBX0dSQU5VTEFSSVRZPTE8PFVUUklFX0lOREVY
X1NISUZULAorCisgICAgLyoqIE51bWJlciBvZiBiaXRzIG9mIGEgdHJhaWwgc3Vycm9nYXRlIHRo
YXQgYXJlIHVzZWQgaW4gaW5kZXggdGFibGUgbG9va3Vwcy4gKi8KKyAgICBVVFJJRV9TVVJST0dB
VEVfQkxPQ0tfQklUUz0xMC1VVFJJRV9TSElGVCwKKworICAgIC8qKgorICAgICAqIE51bWJlciBv
ZiBpbmRleCAoc3RhZ2UgMSkgZW50cmllcyBwZXIgbGVhZCBzdXJyb2dhdGUuCisgICAgICogU2Ft
ZSBhcyBudW1iZXIgb2YgaW5kZXggZW50cmllcyBmb3IgMTAyNCB0cmFpbCBzdXJyb2dhdGVzLAor
ICAgICAqID09MHg0MDA+PlVUUklFX1NISUZUCisgICAgICovCisgICAgVVRSSUVfU1VSUk9HQVRF
X0JMT0NLX0NPVU5UPSgxPDxVVFJJRV9TVVJST0dBVEVfQkxPQ0tfQklUUyksCisKKyAgICAvKiog
TGVuZ3RoIG9mIHRoZSBCTVAgcG9ydGlvbiBvZiB0aGUgaW5kZXggKHN0YWdlIDEpIGFycmF5LiAq
LworICAgIFVUUklFX0JNUF9JTkRFWF9MRU5HVEg9MHgxMDAwMD4+VVRSSUVfU0hJRlQKK307CisK
Ky8qKgorICogTGVuZ3RoIG9mIHRoZSBpbmRleCAoc3RhZ2UgMSkgYXJyYXkgYmVmb3JlIGZvbGRp
bmcuCisgKiBNYXhpbXVtIG51bWJlciBvZiBVbmljb2RlIGNvZGUgcG9pbnRzICgweDExMDAwMCkg
c2hpZnRlZCByaWdodCBieSBVVFJJRV9TSElGVC4KKyAqLworI2RlZmluZSBVVFJJRV9NQVhfSU5E
RVhfTEVOR1RIICgweDExMDAwMD4+VVRSSUVfU0hJRlQpCisKKy8qKgorICogTWF4aW11bSBsZW5n
dGggb2YgdGhlIHJ1bnRpbWUgZGF0YSAoc3RhZ2UgMikgYXJyYXkuCisgKiBMaW1pdGVkIGJ5IDE2
LWJpdCBpbmRleCB2YWx1ZXMgdGhhdCBhcmUgbGVmdC1zaGlmdGVkIGJ5IFVUUklFX0lOREVYX1NI
SUZULgorICovCisjZGVmaW5lIFVUUklFX01BWF9EQVRBX0xFTkdUSCAoMHgxMDAwMDw8VVRSSUVf
SU5ERVhfU0hJRlQpCisKKy8qKgorICogTWF4aW11bSBsZW5ndGggb2YgdGhlIGJ1aWxkLXRpbWUg
ZGF0YSAoc3RhZ2UgMikgYXJyYXkuCisgKiBUaGUgbWF4aW11bSBsZW5ndGggaXMgMHgxMTAwMDAr
VVRSSUVfREFUQV9CTE9DS19MRU5HVEgrMHg0MDAuCisgKiAoTnVtYmVyIG9mIFVuaWNvZGUgY29k
ZSBwb2ludHMgKyBvbmUgYWxsLWluaXRpYWwtdmFsdWUgYmxvY2sgKworICogIHBvc3NpYmxlIGR1
cGxpY2F0ZSBlbnRyaWVzIGZvciAxMDI0IGxlYWQgc3Vycm9nYXRlcy4pCisgKi8KKyNkZWZpbmUg
VVRSSUVfTUFYX0JVSUxEX1RJTUVfREFUQV9MRU5HVEggKDB4MTEwMDAwK1VUUklFX0RBVEFfQkxP
Q0tfTEVOR1RIKzB4NDAwKQorCisvKioKKyAqIE51bWJlciBvZiBieXRlcyBmb3IgYSBkdW1teSB0
cmllLgorICogQSBkdW1teSB0cmllIGlzIGFuIGVtcHR5IHJ1bnRpbWUgdHJpZSwgdXNlZCB3aGVu
IGEgcmVhbCBkYXRhIHRyaWUgY2Fubm90CisgKiBiZSBsb2FkZWQuCisgKiBUaGUgbnVtYmVyIG9m
IGJ5dGVzIHdvcmtzIGZvciBMYXRpbi0xLWxpbmVhciB0cmllcyB3aXRoIDMyLWJpdCBkYXRhCisg
KiAod29yc3QgY2FzZSkuCisgKgorICogQ2FsY3VsYXRpb246CisgKiAgIEJNUCBpbmRleCArIDEg
aW5kZXggYmxvY2sgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgcG9pbnRzICsKKyAqICAgTGF0aW4t
MS1saW5lYXIgYXJyYXkgKyAxIGRhdGEgYmxvY2sgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgcG9p
bnRzCisgKgorICogTGF0aW4tMTogaWYoVVRSSUVfU0hJRlQ8PTgpIHsgMjU2IH0gZWxzZSB7IGlu
Y2x1ZGVkIGluIGZpcnN0IGRhdGEgYmxvY2sgfQorICoKKyAqIEBzZWUgdXRyaWVfdW5zZXJpYWxp
emVEdW1teQorICovCisjZGVmaW5lIFVUUklFX0RVTU1ZX1NJWkUgKChVVFJJRV9CTVBfSU5ERVhf
TEVOR1RIK1VUUklFX1NVUlJPR0FURV9CTE9DS19DT1VOVCkqMisoVVRSSUVfU0hJRlQ8PTg/MjU2
OlVUUklFX0RBVEFfQkxPQ0tfTEVOR1RIKSo0K1VUUklFX0RBVEFfQkxPQ0tfTEVOR1RIKjQpCisK
Ky8qKgorICogUnVudGltZSBVVHJpZSBjYWxsYmFjayBmdW5jdGlvbi4KKyAqIEV4dHJhY3QgZnJv
bSBhIGxlYWQgc3Vycm9nYXRlJ3MgZGF0YSB0aGUKKyAqIGluZGV4IGFycmF5IG9mZnNldCBvZiB0
aGUgaW5kZXhlcyBmb3IgdGhhdCBsZWFkIHN1cnJvZ2F0ZS4KKyAqCisgKiBAcGFyYW0gZGF0YSBk
YXRhIHZhbHVlIGZvciBhIHN1cnJvZ2F0ZSBmcm9tIHRoZSB0cmllLCBpbmNsdWRpbmcgdGhlIGZv
bGRpbmcgb2Zmc2V0CisgKiBAcmV0dXJuIG9mZnNldD49VVRSSUVfQk1QX0lOREVYX0xFTkdUSCwg
b3IgMCBpZiB0aGVyZSBpcyBubyBkYXRhIGZvciB0aGUgbGVhZCBzdXJyb2dhdGUKKyAqLwordHlw
ZWRlZiBpbnQzMl90IFVfQ0FMTENPTlYKK1VUcmllR2V0Rm9sZGluZ09mZnNldCh1aW50MzJfdCBk
YXRhKTsKKworLyoqCisgKiBSdW4tdGltZSBUcmllIHN0cnVjdHVyZS4KKyAqCisgKiBFaXRoZXIg
dGhlIGRhdGEgdGFibGUgaXMgMTYgYml0cyB3aWRlIGFuZCBhY2Nlc3NlZCB2aWEgdGhlIGluZGV4
CisgKiBwb2ludGVyLCB3aXRoIGVhY2ggaW5kZXggaXRlbSBpbmNyZWFzZWQgYnkgaW5kZXhMZW5n
dGg7CisgKiBpbiB0aGlzIGNhc2UsIGRhdGEzMj09TlVMTC4KKyAqCisgKiBPciB0aGUgZGF0YSB0
YWJsZSBpcyAzMiBiaXRzIHdpZGUgYW5kIGFjY2Vzc2VkIHZpYSB0aGUgZGF0YTMyIHBvaW50ZXIu
CisgKi8KK3N0cnVjdCBVVHJpZSB7CisgICAgY29uc3QgdWludDE2X3QgKmluZGV4OworICAgIGNv
bnN0IHVpbnQzMl90ICpkYXRhMzI7IC8qIE5VTEwgaWYgMTZiIGRhdGEgaXMgdXNlZCB2aWEgaW5k
ZXggKi8KKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgbm90IHVzZWQgaW4gX0ZS
T01fTEVBRCwgX0ZST01fQk1QLCBhbmQgX0ZST01fT0ZGU0VUX1RSQUlMIG1hY3Jvcy4KKyAgICAg
KiBJZiBjb252ZW5pZW5jZSBtYWNyb3MgbGlrZSBfR0VUMTYgb3IgX05FWFQzMiBhcmUgdXNlZCwg
dGhpcyBmdW5jdGlvbiBtdXN0IGJlIHNldC4KKyAgICAgKgorICAgICAqIHV0cmllX3Vuc2VyaWFs
aXplKCkgc2V0cyBhIGRlZmF1bHQgZnVuY3Rpb24gd2hpY2ggc2ltcGx5IHJldHVybnMKKyAgICAg
KiB0aGUgbGVhZCBzdXJyb2dhdGUncyB2YWx1ZSBpdHNlbGYgLSB3aGljaCBpcyB0aGUgaW52ZXJz
ZSBvZiB0aGUgZGVmYXVsdAorICAgICAqIGZvbGRpbmcgZnVuY3Rpb24gdXNlZCBieSB1dHJpZV9z
ZXJpYWxpemUoKS4KKyAgICAgKgorICAgICAqIEBzZWUgVVRyaWVHZXRGb2xkaW5nT2Zmc2V0Cisg
ICAgICovCisgICAgVVRyaWVHZXRGb2xkaW5nT2Zmc2V0ICpnZXRGb2xkaW5nT2Zmc2V0OworCisg
ICAgaW50MzJfdCBpbmRleExlbmd0aCwgZGF0YUxlbmd0aDsKKyAgICB1aW50MzJfdCBpbml0aWFs
VmFsdWU7CisgICAgVUJvb2wgaXNMYXRpbjFMaW5lYXI7Cit9OworCisjaWZuZGVmIF9fVVRSSUUy
X0hfXwordHlwZWRlZiBzdHJ1Y3QgVVRyaWUgVVRyaWU7CisjZW5kaWYKKworLyoqIEludGVybmFs
IHRyaWUgZ2V0dGVyIGZyb20gYW4gb2Zmc2V0ICgwIGlmIGMxNiBpcyBhIEJNUC9sZWFkIHVuaXRz
KSBhbmQgYSAxNi1iaXQgdW5pdCAqLworI2RlZmluZSBfVVRSSUVfR0VUX1JBVyh0cmllLCBkYXRh
LCBvZmZzZXQsIGMxNikgXAorICAgICh0cmllKS0+ZGF0YVsgXAorICAgICAgICAoKGludDMyX3Qp
KCh0cmllKS0+aW5kZXhbKG9mZnNldCkrKChjMTYpPj5VVFJJRV9TSElGVCldKTw8VVRSSUVfSU5E
RVhfU0hJRlQpKyBcCisgICAgICAgICgoYzE2KSZVVFJJRV9NQVNLKSBcCisgICAgXQorCisvKiog
SW50ZXJuYWwgdHJpZSBnZXR0ZXIgZnJvbSBhIHBhaXIgb2Ygc3Vycm9nYXRlcyAqLworI2RlZmlu
ZSBfVVRSSUVfR0VUX0ZST01fUEFJUih0cmllLCBkYXRhLCBjLCBjMiwgcmVzdWx0LCByZXN1bHRU
eXBlKSB7IFwKKyAgICBpbnQzMl90IF9fb2Zmc2V0OyBcCitcCisgICAgLyogZ2V0IGRhdGEgZm9y
IGxlYWQgc3Vycm9nYXRlICovIFwKKyAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSks
IGRhdGEsIDAsIChjKSk7IFwKKyAgICBfX29mZnNldD0odHJpZSktPmdldEZvbGRpbmdPZmZzZXQo
cmVzdWx0KTsgXAorXAorICAgIC8qIGdldCB0aGUgcmVhbCBkYXRhIGZyb20gdGhlIGZvbGRlZCBs
ZWFkL3RyYWlsIHVuaXRzICovIFwKKyAgICBpZihfX29mZnNldD4wKSB7IFwKKyAgICAgICAgKHJl
c3VsdCk9X1VUUklFX0dFVF9SQVcoKHRyaWUpLCBkYXRhLCBfX29mZnNldCwgKGMyKSYweDNmZik7
IFwKKyAgICB9IGVsc2UgeyBcCisgICAgICAgIChyZXN1bHQpPShyZXN1bHRUeXBlKSgodHJpZSkt
PmluaXRpYWxWYWx1ZSk7IFwKKyAgICB9IFwKK30KKworLyoqIEludGVybmFsIHRyaWUgZ2V0dGVy
IGZyb20gYSBCTVAgY29kZSBwb2ludCwgdHJlYXRpbmcgYSBsZWFkIHN1cnJvZ2F0ZSBhcyBhIG5v
cm1hbCBjb2RlIHBvaW50ICovCisjZGVmaW5lIF9VVFJJRV9HRVRfRlJPTV9CTVAodHJpZSwgZGF0
YSwgYzE2KSBcCisgICAgX1VUUklFX0dFVF9SQVcodHJpZSwgZGF0YSwgMHhkODAwPD0oYzE2KSAm
JiAoYzE2KTw9MHhkYmZmID8gVVRSSUVfTEVBRF9JTkRFWF9ESVNQIDogMCwgYzE2KTsKKworLyoq
CisgKiBJbnRlcm5hbCB0cmllIGdldHRlciBmcm9tIGEgY29kZSBwb2ludC4KKyAqIENvdWxkIGJl
IGZhc3Rlcig/KSBidXQgbG9uZ2VyIHdpdGgKKyAqICAgaWYoKGMzMik8PTB4ZDdmZikgeyAocmVz
dWx0KT1fVVRSSUVfR0VUX1JBVyh0cmllLCBkYXRhLCAwLCBjMzIpOyB9CisgKi8KKyNkZWZpbmUg
X1VUUklFX0dFVCh0cmllLCBkYXRhLCBjMzIsIHJlc3VsdCwgcmVzdWx0VHlwZSkgXAorICAgIGlm
KCh1aW50MzJfdCkoYzMyKTw9MHhmZmZmKSB7IFwKKyAgICAgICAgLyogQk1QIGNvZGUgcG9pbnRz
ICovIFwKKyAgICAgICAgKHJlc3VsdCk9X1VUUklFX0dFVF9GUk9NX0JNUCh0cmllLCBkYXRhLCBj
MzIpOyBcCisgICAgfSBlbHNlIGlmKCh1aW50MzJfdCkoYzMyKTw9MHgxMGZmZmYpIHsgXAorICAg
ICAgICAvKiBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnQgKi8gXAorICAgICAgICBVQ2hhciBfX2xl
YWQxNj1VMTZfTEVBRChjMzIpOyBcCisgICAgICAgIF9VVFJJRV9HRVRfRlJPTV9QQUlSKHRyaWUs
IGRhdGEsIF9fbGVhZDE2LCBjMzIsIHJlc3VsdCwgcmVzdWx0VHlwZSk7IFwKKyAgICB9IGVsc2Ug
eyBcCisgICAgICAgIC8qIG91dCBvZiByYW5nZSAqLyBcCisgICAgICAgIChyZXN1bHQpPShyZXN1
bHRUeXBlKSgodHJpZSktPmluaXRpYWxWYWx1ZSk7IFwKKyAgICB9CisKKy8qKiBJbnRlcm5hbCBu
ZXh0LXBvc3QtaW5jcmVtZW50OiBnZXQgdGhlIG5leHQgY29kZSBwb2ludCAoYywgYzIpIGFuZCBp
dHMgZGF0YSAqLworI2RlZmluZSBfVVRSSUVfTkVYVCh0cmllLCBkYXRhLCBzcmMsIGxpbWl0LCBj
LCBjMiwgcmVzdWx0LCByZXN1bHRUeXBlKSB7IFwKKyAgICAoYyk9KihzcmMpKys7IFwKKyAgICBp
ZighVTE2X0lTX0xFQUQoYykpIHsgXAorICAgICAgICAoYzIpPTA7IFwKKyAgICAgICAgKHJlc3Vs
dCk9X1VUUklFX0dFVF9SQVcoKHRyaWUpLCBkYXRhLCAwLCAoYykpOyBcCisgICAgfSBlbHNlIGlm
KChzcmMpIT0obGltaXQpICYmIFUxNl9JU19UUkFJTCgoYzIpPSooc3JjKSkpIHsgXAorICAgICAg
ICArKyhzcmMpOyBcCisgICAgICAgIF9VVFJJRV9HRVRfRlJPTV9QQUlSKCh0cmllKSwgZGF0YSwg
KGMpLCAoYzIpLCAocmVzdWx0KSwgcmVzdWx0VHlwZSk7IFwKKyAgICB9IGVsc2UgeyBcCisgICAg
ICAgIC8qIHVucGFpcmVkIGxlYWQgc3Vycm9nYXRlIGNvZGUgcG9pbnQgKi8gXAorICAgICAgICAo
YzIpPTA7IFwKKyAgICAgICAgKHJlc3VsdCk9X1VUUklFX0dFVF9SQVcoKHRyaWUpLCBkYXRhLCBV
VFJJRV9MRUFEX0lOREVYX0RJU1AsIChjKSk7IFwKKyAgICB9IFwKK30KKworLyoqIEludGVybmFs
IHByZXZpb3VzOiBnZXQgdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgKGMsIGMyKSBhbmQgaXRzIGRh
dGEgKi8KKyNkZWZpbmUgX1VUUklFX1BSRVZJT1VTKHRyaWUsIGRhdGEsIHN0YXJ0LCBzcmMsIGMs
IGMyLCByZXN1bHQsIHJlc3VsdFR5cGUpIHsgXAorICAgIChjKT0qLS0oc3JjKTsgXAorICAgIGlm
KCFVMTZfSVNfU1VSUk9HQVRFKGMpKSB7IFwKKyAgICAgICAgKGMyKT0wOyBcCisgICAgICAgIChy
ZXN1bHQpPV9VVFJJRV9HRVRfUkFXKCh0cmllKSwgZGF0YSwgMCwgKGMpKTsgXAorICAgIH0gZWxz
ZSBpZighVTE2X0lTX1NVUlJPR0FURV9MRUFEKGMpKSB7IFwKKyAgICAgICAgLyogdHJhaWwgc3Vy
cm9nYXRlICovIFwKKyAgICAgICAgaWYoKHN0YXJ0KSE9KHNyYykgJiYgVTE2X0lTX0xFQUQoKGMy
KT0qKChzcmMpLTEpKSkgeyBcCisgICAgICAgICAgICAtLShzcmMpOyBcCisgICAgICAgICAgICAo
cmVzdWx0KT0oYyk7IChjKT0oYzIpOyAoYzIpPShVQ2hhcikocmVzdWx0KTsgLyogc3dhcCBjLCBj
MiAqLyBcCisgICAgICAgICAgICBfVVRSSUVfR0VUX0ZST01fUEFJUigodHJpZSksIGRhdGEsIChj
KSwgKGMyKSwgKHJlc3VsdCksIHJlc3VsdFR5cGUpOyBcCisgICAgICAgIH0gZWxzZSB7IFwKKyAg
ICAgICAgICAgIC8qIHVucGFpcmVkIHRyYWlsIHN1cnJvZ2F0ZSBjb2RlIHBvaW50ICovIFwKKyAg
ICAgICAgICAgIChjMik9MDsgXAorICAgICAgICAgICAgKHJlc3VsdCk9X1VUUklFX0dFVF9SQVco
KHRyaWUpLCBkYXRhLCAwLCAoYykpOyBcCisgICAgICAgIH0gXAorICAgIH0gZWxzZSB7IFwKKyAg
ICAgICAgLyogdW5wYWlyZWQgbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludCAqLyBcCisgICAgICAg
IChjMik9MDsgXAorICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEs
IFVUUklFX0xFQURfSU5ERVhfRElTUCwgKGMpKTsgXAorICAgIH0gXAorfQorCisvKiBQdWJsaWMg
VVRyaWUgQVBJIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSovCisKKy8qKgorICogR2V0IGEgcG9pbnRlciB0byB0aGUgY29udGlndW91cyBw
YXJ0IG9mIHRoZSBkYXRhIGFycmF5CisgKiBmb3IgdGhlIExhdGluLTEgcmFuZ2UgKFUrMDAwMC4u
VSswMGZmKS4KKyAqIE11c3QgYmUgdXNlZCBvbmx5IGlmIHRoZSBMYXRpbi0xIHJhbmdlIGlzIGlu
IGZhY3QgbGluZWFyCisgKiAodHJpZS0+aXNMYXRpbjFMaW5lYXIpLgorICoKKyAqIEBwYXJhbSB0
cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3Ry
dWN0dXJlCisgKiBAcmV0dXJuIChjb25zdCB1aW50MTZfdCAqKSBwb2ludGVyIHRvIHZhbHVlcyBm
b3IgTGF0aW4tMSBjb2RlIHBvaW50cworICovCisjZGVmaW5lIFVUUklFX0dFVDE2X0xBVElOMSh0
cmllKSAoKHRyaWUpLT5pbmRleCsodHJpZSktPmluZGV4TGVuZ3RoK1VUUklFX0RBVEFfQkxPQ0tf
TEVOR1RIKQorCisvKioKKyAqIEdldCBhIHBvaW50ZXIgdG8gdGhlIGNvbnRpZ3VvdXMgcGFydCBv
ZiB0aGUgZGF0YSBhcnJheQorICogZm9yIHRoZSBMYXRpbi0xIHJhbmdlIChVKzAwMDAuLlUrMDBm
ZikuCisgKiBNdXN0IGJlIHVzZWQgb25seSBpZiB0aGUgTGF0aW4tMSByYW5nZSBpcyBpbiBmYWN0
IGxpbmVhcgorICogKHRyaWUtPmlzTGF0aW4xTGluZWFyKS4KKyAqCisgKiBAcGFyYW0gdHJpZSAo
Y29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVy
ZQorICogQHJldHVybiAoY29uc3QgdWludDMyX3QgKikgcG9pbnRlciB0byB2YWx1ZXMgZm9yIExh
dGluLTEgY29kZSBwb2ludHMKKyAqLworI2RlZmluZSBVVFJJRV9HRVQzMl9MQVRJTjEodHJpZSkg
KCh0cmllKS0+ZGF0YTMyK1VUUklFX0RBVEFfQkxPQ0tfTEVOR1RIKQorCisvKioKKyAqIEdldCBh
IDE2LWJpdCB0cmllIHZhbHVlIGZyb20gYSBCTVAgY29kZSBwb2ludCAoVUNoYXIsIDw9VStmZmZm
KS4KKyAqIGMxNiBtYXkgYmUgYSBsZWFkIHN1cnJvZ2F0ZSwgd2hpY2ggbWF5IGhhdmUgYSB2YWx1
ZSBpbmNsdWRpbmcgYSBmb2xkaW5nIG9mZnNldC4KKyAqCisgKiBAcGFyYW0gdHJpZSAoY29uc3Qg
VVRyaWUgKiwgaW4pIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQorICog
QHBhcmFtIGMxNiAoVUNoYXIsIGluKSB0aGUgaW5wdXQgQk1QIGNvZGUgcG9pbnQKKyAqIEByZXR1
cm4gKHVpbnQxNl90KSB0cmllIGxvb2t1cCByZXN1bHQKKyAqLworI2RlZmluZSBVVFJJRV9HRVQx
Nl9GUk9NX0xFQUQodHJpZSwgYzE2KSBfVVRSSUVfR0VUX1JBVyh0cmllLCBpbmRleCwgMCwgYzE2
KQorCisvKioKKyAqIEdldCBhIDMyLWJpdCB0cmllIHZhbHVlIGZyb20gYSBCTVAgY29kZSBwb2lu
dCAoVUNoYXIsIDw9VStmZmZmKS4KKyAqIGMxNiBtYXkgYmUgYSBsZWFkIHN1cnJvZ2F0ZSwgd2hp
Y2ggbWF5IGhhdmUgYSB2YWx1ZSBpbmNsdWRpbmcgYSBmb2xkaW5nIG9mZnNldC4KKyAqCisgKiBA
cGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0
cmllIHN0cnVjdHVyZQorICogQHBhcmFtIGMxNiAoVUNoYXIsIGluKSB0aGUgaW5wdXQgQk1QIGNv
ZGUgcG9pbnQKKyAqIEByZXR1cm4gKHVpbnQzMl90KSB0cmllIGxvb2t1cCByZXN1bHQKKyAqLwor
I2RlZmluZSBVVFJJRV9HRVQzMl9GUk9NX0xFQUQodHJpZSwgYzE2KSBfVVRSSUVfR0VUX1JBVyh0
cmllLCBkYXRhMzIsIDAsIGMxNikKKworLyoqCisgKiBHZXQgYSAxNi1iaXQgdHJpZSB2YWx1ZSBm
cm9tIGEgQk1QIGNvZGUgcG9pbnQgKFVDaGFyLCA8PVUrZmZmZikuCisgKiBFdmVuIGxlYWQgc3Vy
cm9nYXRlIGNvZGUgcG9pbnRzIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBjb2RlIHBvaW50cywKKyAq
IHdpdGggdW5mb2xkZWQgdmFsdWVzIHRoYXQgbWF5IGRpZmZlciBmcm9tIF9GUk9NX0xFQUQoKSBt
YWNybyByZXN1bHRzIGZvciB0aGVtLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAq
LCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0g
YzE2IChVQ2hhciwgaW4pIHRoZSBpbnB1dCBCTVAgY29kZSBwb2ludAorICogQHJldHVybiAodWlu
dDE2X3QpIHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dFVDE2X0ZST01f
Qk1QKHRyaWUsIGMxNikgX1VUUklFX0dFVF9GUk9NX0JNUCh0cmllLCBpbmRleCwgYzE2KQorCisv
KioKKyAqIEdldCBhIDMyLWJpdCB0cmllIHZhbHVlIGZyb20gYSBCTVAgY29kZSBwb2ludCAoVUNo
YXIsIDw9VStmZmZmKS4KKyAqIEV2ZW4gbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMgYXJlIHRy
ZWF0ZWQgYXMgbm9ybWFsIGNvZGUgcG9pbnRzLAorICogd2l0aCB1bmZvbGRlZCB2YWx1ZXMgdGhh
dCBtYXkgZGlmZmVyIGZyb20gX0ZST01fTEVBRCgpIG1hY3JvIHJlc3VsdHMgZm9yIHRoZW0uCisg
KgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1
bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBjMTYgKFVDaGFyLCBpbikgdGhlIGlucHV0
IEJNUCBjb2RlIHBvaW50CisgKiBAcmV0dXJuICh1aW50MzJfdCkgdHJpZSBsb29rdXAgcmVzdWx0
CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMzJfRlJPTV9CTVAodHJpZSwgYzE2KSBfVVRSSUVfR0VU
X0ZST01fQk1QKHRyaWUsIGRhdGEzMiwgYzE2KQorCisvKioKKyAqIEdldCBhIDE2LWJpdCB0cmll
IHZhbHVlIGZyb20gYSBjb2RlIHBvaW50LgorICogRXZlbiBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBv
aW50cyBhcmUgdHJlYXRlZCBhcyBub3JtYWwgY29kZSBwb2ludHMsCisgKiB3aXRoIHVuZm9sZGVk
IHZhbHVlcyB0aGF0IG1heSBkaWZmZXIgZnJvbSBfRlJPTV9MRUFEKCkgbWFjcm8gcmVzdWx0cyBm
b3IgdGhlbS4KKyAqCisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRl
ciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIGMzMiAoVUNoYXIzMiwg
aW4pIHRoZSBpbnB1dCBjb2RlIHBvaW50CisgKiBAcGFyYW0gcmVzdWx0ICh1aW50MTZfdCwgb3V0
KSB1aW50MTZfdCB2YXJpYWJsZSBmb3IgdGhlIHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVm
aW5lIFVUUklFX0dFVDE2KHRyaWUsIGMzMiwgcmVzdWx0KSBfVVRSSUVfR0VUKHRyaWUsIGluZGV4
LCBjMzIsIHJlc3VsdCwgdWludDE2X3QpCisKKy8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFs
dWUgZnJvbSBhIGNvZGUgcG9pbnQuCisgKiBFdmVuIGxlYWQgc3Vycm9nYXRlIGNvZGUgcG9pbnRz
IGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBjb2RlIHBvaW50cywKKyAqIHdpdGggdW5mb2xkZWQgdmFs
dWVzIHRoYXQgbWF5IGRpZmZlciBmcm9tIF9GUk9NX0xFQUQoKSBtYWNybyByZXN1bHRzIGZvciB0
aGVtLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRv
IHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYzMyIChVQ2hhcjMyLCBpbikg
dGhlIGlucHV0IGNvZGUgcG9pbnQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQpIHVp
bnQzMl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUg
VVRSSUVfR0VUMzIodHJpZSwgYzMyLCByZXN1bHQpIF9VVFJJRV9HRVQodHJpZSwgZGF0YTMyLCBj
MzIsIHJlc3VsdCwgdWludDMyX3QpCisKKy8qKgorICogR2V0IHRoZSBuZXh0IGNvZGUgcG9pbnQg
KGMsIGMyKSwgcG9zdC1pbmNyZW1lbnQgc3JjLAorICogYW5kIGdldCBhIDE2LWJpdCB2YWx1ZSBm
cm9tIHRoZSB0cmllLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBw
b2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gc3JjIChjb25z
dCBVQ2hhciAqLCBpbi9vdXQpIHRoZSBzb3VyY2UgdGV4dCBwb2ludGVyCisgKiBAcGFyYW0gbGlt
aXQgKGNvbnN0IFVDaGFyICosIGluKSB0aGUgbGltaXQgcG9pbnRlciBmb3IgdGhlIHRleHQsIG9y
IE5VTEwKKyAqIEBwYXJhbSBjIChVQ2hhciwgb3V0KSB2YXJpYWJsZSBmb3IgdGhlIEJNUCBvciBs
ZWFkIGNvZGUgdW5pdAorICogQHBhcmFtIGMyIChVQ2hhciwgb3V0KSB2YXJpYWJsZSBmb3IgMCBv
ciB0aGUgdHJhaWwgY29kZSB1bml0CisgKiBAcGFyYW0gcmVzdWx0ICh1aW50MTZfdCwgb3V0KSB1
aW50MTZfdCB2YXJpYWJsZSBmb3IgdGhlIHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5l
IFVUUklFX05FWFQxNih0cmllLCBzcmMsIGxpbWl0LCBjLCBjMiwgcmVzdWx0KSBfVVRSSUVfTkVY
VCh0cmllLCBpbmRleCwgc3JjLCBsaW1pdCwgYywgYzIsIHJlc3VsdCwgdWludDE2X3QpCisKKy8q
KgorICogR2V0IHRoZSBuZXh0IGNvZGUgcG9pbnQgKGMsIGMyKSwgcG9zdC1pbmNyZW1lbnQgc3Jj
LAorICogYW5kIGdldCBhIDMyLWJpdCB2YWx1ZSBmcm9tIHRoZSB0cmllLgorICoKKyAqIEBwYXJh
bSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUg
c3RydWN0dXJlCisgKiBAcGFyYW0gc3JjIChjb25zdCBVQ2hhciAqLCBpbi9vdXQpIHRoZSBzb3Vy
Y2UgdGV4dCBwb2ludGVyCisgKiBAcGFyYW0gbGltaXQgKGNvbnN0IFVDaGFyICosIGluKSB0aGUg
bGltaXQgcG9pbnRlciBmb3IgdGhlIHRleHQsIG9yIE5VTEwKKyAqIEBwYXJhbSBjIChVQ2hhciwg
b3V0KSB2YXJpYWJsZSBmb3IgdGhlIEJNUCBvciBsZWFkIGNvZGUgdW5pdAorICogQHBhcmFtIGMy
IChVQ2hhciwgb3V0KSB2YXJpYWJsZSBmb3IgMCBvciB0aGUgdHJhaWwgY29kZSB1bml0CisgKiBA
cGFyYW0gcmVzdWx0ICh1aW50MzJfdCwgb3V0KSB1aW50MzJfdCB2YXJpYWJsZSBmb3IgdGhlIHRy
aWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX05FWFQzMih0cmllLCBzcmMsIGxp
bWl0LCBjLCBjMiwgcmVzdWx0KSBfVVRSSUVfTkVYVCh0cmllLCBkYXRhMzIsIHNyYywgbGltaXQs
IGMsIGMyLCByZXN1bHQsIHVpbnQzMl90KQorCisvKioKKyAqIEdldCB0aGUgcHJldmlvdXMgY29k
ZSBwb2ludCAoYywgYzIpLCBwcmUtZGVjcmVtZW50IHNyYywKKyAqIGFuZCBnZXQgYSAxNi1iaXQg
dmFsdWUgZnJvbSB0aGUgdHJpZS4KKyAqCisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwg
aW4pIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIHN0
YXJ0IChjb25zdCBVQ2hhciAqLCBpbikgdGhlIHN0YXJ0IHBvaW50ZXIgZm9yIHRoZSB0ZXh0LCBv
ciBOVUxMCisgKiBAcGFyYW0gc3JjIChjb25zdCBVQ2hhciAqLCBpbi9vdXQpIHRoZSBzb3VyY2Ug
dGV4dCBwb2ludGVyCisgKiBAcGFyYW0gYyAoVUNoYXIsIG91dCkgdmFyaWFibGUgZm9yIHRoZSBC
TVAgb3IgbGVhZCBjb2RlIHVuaXQKKyAqIEBwYXJhbSBjMiAoVUNoYXIsIG91dCkgdmFyaWFibGUg
Zm9yIDAgb3IgdGhlIHRyYWlsIGNvZGUgdW5pdAorICogQHBhcmFtIHJlc3VsdCAodWludDE2X3Qs
IG91dCkgdWludDE2X3QgdmFyaWFibGUgZm9yIHRoZSB0cmllIGxvb2t1cCByZXN1bHQKKyAqLwor
I2RlZmluZSBVVFJJRV9QUkVWSU9VUzE2KHRyaWUsIHN0YXJ0LCBzcmMsIGMsIGMyLCByZXN1bHQp
IF9VVFJJRV9QUkVWSU9VUyh0cmllLCBpbmRleCwgc3RhcnQsIHNyYywgYywgYzIsIHJlc3VsdCwg
dWludDE2X3QpCisKKy8qKgorICogR2V0IHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IChjLCBjMiks
IHByZS1kZWNyZW1lbnQgc3JjLAorICogYW5kIGdldCBhIDMyLWJpdCB2YWx1ZSBmcm9tIHRoZSB0
cmllLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRv
IHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gc3RhcnQgKGNvbnN0IFVDaGFy
ICosIGluKSB0aGUgc3RhcnQgcG9pbnRlciBmb3IgdGhlIHRleHQsIG9yIE5VTEwKKyAqIEBwYXJh
bSBzcmMgKGNvbnN0IFVDaGFyICosIGluL291dCkgdGhlIHNvdXJjZSB0ZXh0IHBvaW50ZXIKKyAq
IEBwYXJhbSBjIChVQ2hhciwgb3V0KSB2YXJpYWJsZSBmb3IgdGhlIEJNUCBvciBsZWFkIGNvZGUg
dW5pdAorICogQHBhcmFtIGMyIChVQ2hhciwgb3V0KSB2YXJpYWJsZSBmb3IgMCBvciB0aGUgdHJh
aWwgY29kZSB1bml0CisgKiBAcGFyYW0gcmVzdWx0ICh1aW50MzJfdCwgb3V0KSB1aW50MzJfdCB2
YXJpYWJsZSBmb3IgdGhlIHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX1BS
RVZJT1VTMzIodHJpZSwgc3RhcnQsIHNyYywgYywgYzIsIHJlc3VsdCkgX1VUUklFX1BSRVZJT1VT
KHRyaWUsIGRhdGEzMiwgc3RhcnQsIHNyYywgYywgYzIsIHJlc3VsdCwgdWludDMyX3QpCisKKy8q
KgorICogR2V0IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIHBhaXIgb2Ygc3Vycm9nYXRlcy4K
KyAqCisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRlciB0byB0aGUg
cnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIGMgKFVDaGFyLCBpbikgYSBsZWFkIHN1
cnJvZ2F0ZQorICogQHBhcmFtIGMyIChVQ2hhciwgaW4pIGEgdHJhaWwgc3Vycm9nYXRlCisgKiBA
cGFyYW0gcmVzdWx0ICh1aW50MTZfdCwgb3V0KSB1aW50MTZfdCB2YXJpYWJsZSBmb3IgdGhlIHRy
aWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dFVDE2X0ZST01fUEFJUih0cmll
LCBjLCBjMiwgcmVzdWx0KSBfVVRSSUVfR0VUX0ZST01fUEFJUih0cmllLCBpbmRleCwgYywgYzIs
IHJlc3VsdCwgdWludDE2X3QpCisKKy8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJv
bSBhIHBhaXIgb2Ygc3Vycm9nYXRlcy4KKyAqCisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUg
KiwgaW4pIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFt
IGMgKFVDaGFyLCBpbikgYSBsZWFkIHN1cnJvZ2F0ZQorICogQHBhcmFtIGMyIChVQ2hhciwgaW4p
IGEgdHJhaWwgc3Vycm9nYXRlCisgKiBAcGFyYW0gcmVzdWx0ICh1aW50MzJfdCwgb3V0KSB1aW50
MzJfdCB2YXJpYWJsZSBmb3IgdGhlIHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVU
UklFX0dFVDMyX0ZST01fUEFJUih0cmllLCBjLCBjMiwgcmVzdWx0KSBfVVRSSUVfR0VUX0ZST01f
UEFJUih0cmllLCBkYXRhMzIsIGMsIGMyLCByZXN1bHQsIHVpbnQzMl90KQorCisvKioKKyAqIEdl
dCBhIDE2LWJpdCB0cmllIHZhbHVlIGZyb20gYSBmb2xkaW5nIG9mZnNldCAoZnJvbSB0aGUgdmFs
dWUgb2YgYSBsZWFkIHN1cnJvZ2F0ZSkKKyAqIGFuZCBhIHRyYWlsIHN1cnJvZ2F0ZS4KKyAqCisg
KiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRlciB0byB0aGUgcnVudGlt
ZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIG9mZnNldCAoaW50MzJfdCwgaW4pIHRoZSBmb2xk
aW5nIG9mZnNldCBmcm9tIHRoZSB2YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRlCisgKiBAcGFyYW0g
YzIgKFVDaGFyLCBpbikgYSB0cmFpbCBzdXJyb2dhdGUgKG9ubHkgdGhlIDEwIGxvdyBiaXRzIGFy
ZSBzaWduaWZpY2FudCkKKyAqIEByZXR1cm4gKHVpbnQxNl90KSB0cmllIGxvb2t1cCByZXN1bHQK
KyAqLworI2RlZmluZSBVVFJJRV9HRVQxNl9GUk9NX09GRlNFVF9UUkFJTCh0cmllLCBvZmZzZXQs
IGMyKSBfVVRSSUVfR0VUX1JBVyh0cmllLCBpbmRleCwgb2Zmc2V0LCAoYzIpJjB4M2ZmKQorCisv
KioKKyAqIEdldCBhIDMyLWJpdCB0cmllIHZhbHVlIGZyb20gYSBmb2xkaW5nIG9mZnNldCAoZnJv
bSB0aGUgdmFsdWUgb2YgYSBsZWFkIHN1cnJvZ2F0ZSkKKyAqIGFuZCBhIHRyYWlsIHN1cnJvZ2F0
ZS4KKyAqCisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRlciB0byB0
aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIG9mZnNldCAoaW50MzJfdCwgaW4p
IHRoZSBmb2xkaW5nIG9mZnNldCBmcm9tIHRoZSB2YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRlCisg
KiBAcGFyYW0gYzIgKFVDaGFyLCBpbikgYSB0cmFpbCBzdXJyb2dhdGUgKG9ubHkgdGhlIDEwIGxv
dyBiaXRzIGFyZSBzaWduaWZpY2FudCkKKyAqIEByZXR1cm4gKHVpbnQzMl90KSB0cmllIGxvb2t1
cCByZXN1bHQKKyAqLworI2RlZmluZSBVVFJJRV9HRVQzMl9GUk9NX09GRlNFVF9UUkFJTCh0cmll
LCBvZmZzZXQsIGMyKSBfVVRSSUVfR0VUX1JBVyh0cmllLCBkYXRhMzIsIG9mZnNldCwgKGMyKSYw
eDNmZikKKworLyogZW51bWVyYXRpb24gY2FsbGJhY2sgdHlwZXMgKi8KKworLyoqCisgKiBDYWxs
YmFjayBmcm9tIHV0cmllX2VudW0oKSwgZXh0cmFjdHMgYSB1aW50MzJfdCB2YWx1ZSBmcm9tIGEK
KyAqIHRyaWUgdmFsdWUuIFRoaXMgdmFsdWUgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIFVUcmll
RW51bVJhbmdlIGZ1bmN0aW9uLgorICoKKyAqIEBwYXJhbSBjb250ZXh0IGFuIG9wYXF1ZSBwb2lu
dGVyLCBhcyBwYXNzZWQgaW50byB1dHJpZV9lbnVtKCkKKyAqIEBwYXJhbSB2YWx1ZSBhIHZhbHVl
IGZyb20gdGhlIHRyaWUKKyAqIEByZXR1cm4gdGhlIHZhbHVlIHRoYXQgaXMgdG8gYmUgcGFzc2Vk
IG9uIHRvIHRoZSBVVHJpZUVudW1SYW5nZSBmdW5jdGlvbgorICovCit0eXBlZGVmIHVpbnQzMl90
IFVfQ0FMTENPTlYKK1VUcmllRW51bVZhbHVlKGNvbnN0IHZvaWQgKmNvbnRleHQsIHVpbnQzMl90
IHZhbHVlKTsKKworLyoqCisgKiBDYWxsYmFjayBmcm9tIHV0cmllX2VudW0oKSwgaXMgY2FsbGVk
IGZvciBlYWNoIGNvbnRpZ3VvdXMgcmFuZ2UKKyAqIG9mIGNvZGUgcG9pbnRzIHdpdGggdGhlIHNh
bWUgdmFsdWUgYXMgcmV0cmlldmVkIGZyb20gdGhlIHRyaWUgYW5kCisgKiB0cmFuc2Zvcm1lZCBi
eSB0aGUgVVRyaWVFbnVtVmFsdWUgZnVuY3Rpb24uCisgKgorICogVGhlIGNhbGxiYWNrIGZ1bmN0
aW9uIGNhbiBzdG9wIHRoZSBlbnVtZXJhdGlvbiBieSByZXR1cm5pbmcgRkFMU0UuCisgKgorICog
QHBhcmFtIGNvbnRleHQgYW4gb3BhcXVlIHBvaW50ZXIsIGFzIHBhc3NlZCBpbnRvIHV0cmllX2Vu
dW0oKQorICogQHBhcmFtIHN0YXJ0IHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGEgY29udGlndW91
cyByYW5nZSB3aXRoIHZhbHVlCisgKiBAcGFyYW0gbGltaXQgb25lIHBhc3QgdGhlIGxhc3QgY29k
ZSBwb2ludCBpbiBhIGNvbnRpZ3VvdXMgcmFuZ2Ugd2l0aCB2YWx1ZQorICogQHBhcmFtIHZhbHVl
IHRoZSB2YWx1ZSB0aGF0IGlzIHNldCBmb3IgYWxsIGNvZGUgcG9pbnRzIGluIFtzdGFydC4ubGlt
aXRbCisgKiBAcmV0dXJuIEZBTFNFIHRvIHN0b3AgdGhlIGVudW1lcmF0aW9uCisgKi8KK3R5cGVk
ZWYgVUJvb2wgVV9DQUxMQ09OVgorVVRyaWVFbnVtUmFuZ2UoY29uc3Qgdm9pZCAqY29udGV4dCwg
VUNoYXIzMiBzdGFydCwgVUNoYXIzMiBsaW1pdCwgdWludDMyX3QgdmFsdWUpOworCisvKioKKyAq
IEVudW1lcmF0ZSBlZmZpY2llbnRseSBhbGwgdmFsdWVzIGluIGEgdHJpZS4KKyAqIEZvciBlYWNo
IGVudHJ5IGluIHRoZSB0cmllLCB0aGUgdmFsdWUgdG8gYmUgZGVsaXZlcmVkIGlzIHBhc3NlZCB0
aHJvdWdoCisgKiB0aGUgVVRyaWVFbnVtVmFsdWUgZnVuY3Rpb24uCisgKiBUaGUgdmFsdWUgaXMg
dW5jaGFuZ2VkIGlmIHRoYXQgZnVuY3Rpb24gcG9pbnRlciBpcyBOVUxMLgorICoKKyAqIEZvciBl
YWNoIGNvbnRpZ3VvdXMgcmFuZ2Ugb2YgY29kZSBwb2ludHMgd2l0aCBhIGdpdmVuIHZhbHVlLAor
ICogdGhlIFVUcmllRW51bVJhbmdlIGZ1bmN0aW9uIGlzIGNhbGxlZC4KKyAqCisgKiBAcGFyYW0g
dHJpZSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBl
bnVtVmFsdWUgYSBwb2ludGVyIHRvIGEgZnVuY3Rpb24gdGhhdCBtYXkgdHJhbnNmb3JtIHRoZSB0
cmllIGVudHJ5IHZhbHVlLAorICogICAgICAgICAgICAgICAgICBvciBOVUxMIGlmIHRoZSB2YWx1
ZXMgZnJvbSB0aGUgdHJpZSBhcmUgdG8gYmUgdXNlZCBkaXJlY3RseQorICogQHBhcmFtIGVudW1S
YW5nZSBhIHBvaW50ZXIgdG8gYSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBmb3IgZWFjaCBjb250
aWd1b3VzIHJhbmdlCisgKiAgICAgICAgICAgICAgICAgIG9mIGNvZGUgcG9pbnRzIHdpdGggdGhl
IHNhbWUgdmFsdWUKKyAqIEBwYXJhbSBjb250ZXh0IGFuIG9wYXF1ZSBwb2ludGVyIHRoYXQgaXMg
cGFzc2VkIG9uIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbnMKKyAqLworVV9DQVBJIHZvaWQgVV9F
WFBPUlQyCit1dHJpZV9lbnVtKGNvbnN0IFVUcmllICp0cmllLAorICAgICAgICAgICBVVHJpZUVu
dW1WYWx1ZSAqZW51bVZhbHVlLCBVVHJpZUVudW1SYW5nZSAqZW51bVJhbmdlLCBjb25zdCB2b2lk
ICpjb250ZXh0KTsKKworLyoqCisgKiBVbnNlcmlhbGl6ZSBhIHRyaWUgZnJvbSAzMi1iaXQtYWxp
Z25lZCBtZW1vcnkuCisgKiBJbnZlcnNlIG9mIHV0cmllX3NlcmlhbGl6ZSgpLgorICogRmlsbHMg
dGhlIFVUcmllIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUgd2l0aCB0aGUgc2V0dGluZ3MgZm9yIHRo
ZSB0cmllIGRhdGEuCisgKgorICogQHBhcmFtIHRyaWUgYSBwb2ludGVyIHRvIHRoZSBydW50aW1l
IHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gZGF0YSBhIHBvaW50ZXIgdG8gMzItYml0LWFsaWdu
ZWQgbWVtb3J5IGNvbnRhaW5pbmcgdHJpZSBkYXRhCisgKiBAcGFyYW0gbGVuZ3RoIHRoZSBudW1i
ZXIgb2YgYnl0ZXMgYXZhaWxhYmxlIGF0IGRhdGEKKyAqIEBwYXJhbSBwRXJyb3JDb2RlIGFuIGlu
L291dCBJQ1UgVUVycm9yQ29kZQorICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIGF0IGRh
dGEgdGFrZW4gdXAgYnkgdGhlIHRyaWUgZGF0YQorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9S
VDIKK3V0cmllX3Vuc2VyaWFsaXplKFVUcmllICp0cmllLCBjb25zdCB2b2lkICpkYXRhLCBpbnQz
Ml90IGxlbmd0aCwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogIlVuc2VyaWFs
aXplIiBhIGR1bW15IHRyaWUuCisgKiBBIGR1bW15IHRyaWUgaXMgYW4gZW1wdHkgcnVudGltZSB0
cmllLCB1c2VkIHdoZW4gYSByZWFsIGRhdGEgdHJpZSBjYW5ub3QKKyAqIGJlIGxvYWRlZC4KKyAq
CisgKiBUaGUgaW5wdXQgbWVtb3J5IGlzIGZpbGxlZCBzbyB0aGF0IHRoZSB0cmllIGFsd2F5cyBy
ZXR1cm5zIHRoZSBpbml0aWFsVmFsdWUsCisgKiBvciB0aGUgbGVhZFVuaXRWYWx1ZSBmb3IgbGVh
ZCBzdXJyb2dhdGUgY29kZSBwb2ludHMuCisgKiBUaGUgTGF0aW4tMSBwYXJ0IGlzIGFsd2F5cyBz
ZXQgdXAgdG8gYmUgbGluZWFyLgorICoKKyAqIEBwYXJhbSB0cmllIGEgcG9pbnRlciB0byB0aGUg
cnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIGRhdGEgYSBwb2ludGVyIHRvIDMyLWJp
dC1hbGlnbmVkIG1lbW9yeSB0byBiZSBmaWxsZWQgd2l0aCB0aGUgZHVtbXkgdHJpZSBkYXRhCisg
KiBAcGFyYW0gbGVuZ3RoIHRoZSBudW1iZXIgb2YgYnl0ZXMgYXZhaWxhYmxlIGF0IGRhdGEgKHJl
Y29tbWVuZGVkIHRvIHVzZSBVVFJJRV9EVU1NWV9TSVpFKQorICogQHBhcmFtIGluaXRpYWxWYWx1
ZSB0aGUgaW5pdGlhbCB2YWx1ZSB0aGF0IGlzIHNldCBmb3IgYWxsIGNvZGUgcG9pbnRzCisgKiBA
cGFyYW0gbGVhZFVuaXRWYWx1ZSB0aGUgdmFsdWUgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgX3Vu
aXRzXyB0aGF0IGRvIG5vdAorICogICAgICAgICAgICAgICAgICAgICAgaGF2ZSBhc3NvY2lhdGVk
IHN1cHBsZW1lbnRhcnkgZGF0YQorICogQHBhcmFtIHBFcnJvckNvZGUgYW4gaW4vb3V0IElDVSBV
RXJyb3JDb2RlCisgKgorICogQHNlZSBVVFJJRV9EVU1NWV9TSVpFCisgKiBAc2VlIHV0cmllX29w
ZW4KKyAqLworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCit1dHJpZV91bnNlcmlhbGl6ZUR1bW15
KFVUcmllICp0cmllLAorICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhLCBpbnQzMl90
IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgaW5pdGlhbFZhbHVlLCB1
aW50MzJfdCBsZWFkVW5pdFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICBVQm9vbCBtYWtl
MTZCaXRUcmllLAorICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2Rl
KTsKKworLyoqCisgKiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciBVVHJpZS5nZXRGb2xkaW5n
T2Zmc2V0LCBzZXQgYXV0b21hdGljYWxseSBieQorICogdXRyaWVfdW5zZXJpYWxpemUoKS4KKyAq
IFNpbXBseSByZXR1cm5zIHRoZSBsZWFkIHN1cnJvZ2F0ZSdzIHZhbHVlIGl0c2VsZiAtIHdoaWNo
IGlzIHRoZSBpbnZlcnNlCisgKiBvZiB0aGUgZGVmYXVsdCBmb2xkaW5nIGZ1bmN0aW9uIHVzZWQg
YnkgdXRyaWVfc2VyaWFsaXplKCkuCisgKiBFeHBvcnRlZCBmb3Igc3RhdGljIGNvbnN0IFVUcmll
IHN0cnVjdHVyZXMuCisgKgorICogQHNlZSBVVHJpZUdldEZvbGRpbmdPZmZzZXQKKyAqLworVV9D
QVBJIGludDMyX3QgVV9FWFBPUlQyCit1dHJpZV9kZWZhdWx0R2V0Rm9sZGluZ09mZnNldCh1aW50
MzJfdCBkYXRhKTsKKworLyogQnVpbGRpbmcgYSB0cmllIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKioKKyAqIEJ1aWxkLXRp
bWUgdHJpZSBzdHJ1Y3R1cmUuCisgKiBPcGFxdWUgZGVmaW5pdGlvbiwgaGVyZSBvbmx5IHRvIG1h
a2UgZmlsbEluIHBhcmFtZXRlcnMgcG9zc2libGUKKyAqIGZvciB1dHJpZV9vcGVuKCkgYW5kIHV0
cmllX2Nsb25lKCkuCisgKi8KK3N0cnVjdCBVTmV3VHJpZSB7CisgICAgLyoqCisgICAgICogSW5k
ZXggdmFsdWVzIGF0IGJ1aWxkLXRpbWUgYXJlIDMyIGJpdHMgd2lkZSBmb3IgZWFzaWVyIHByb2Nl
c3NpbmcuCisgICAgICogQml0IDMxIGlzIHNldCBpZiB0aGUgZGF0YSBibG9jayBpcyB1c2VkIGJ5
IG11bHRpcGxlIGluZGV4IHZhbHVlcyAoZnJvbSB1dHJpZV9zZXRSYW5nZSgpKS4KKyAgICAgKi8K
KyAgICBpbnQzMl90IGluZGV4W1VUUklFX01BWF9JTkRFWF9MRU5HVEhdOworICAgIHVpbnQzMl90
ICpkYXRhOworCisgICAgdWludDMyX3QgbGVhZFVuaXRWYWx1ZTsKKyAgICBpbnQzMl90IGluZGV4
TGVuZ3RoLCBkYXRhQ2FwYWNpdHksIGRhdGFMZW5ndGg7CisgICAgVUJvb2wgaXNBbGxvY2F0ZWQs
IGlzRGF0YUFsbG9jYXRlZDsKKyAgICBVQm9vbCBpc0xhdGluMUxpbmVhciwgaXNDb21wYWN0ZWQ7
CisKKyAgICAvKioKKyAgICAgKiBNYXAgb2YgYWRqdXN0ZWQgaW5kZXhlcywgdXNlZCBpbiB1dHJp
ZV9jb21wYWN0KCkuCisgICAgICogTWFwcyBmcm9tIG9yaWdpbmFsIGluZGV4ZXMgdG8gbmV3IG9u
ZXMuCisgICAgICovCisgICAgaW50MzJfdCBtYXBbVVRSSUVfTUFYX0JVSUxEX1RJTUVfREFUQV9M
RU5HVEg+PlVUUklFX1NISUZUXTsKK307CisKK3R5cGVkZWYgc3RydWN0IFVOZXdUcmllIFVOZXdU
cmllOworCisvKioKKyAqIEJ1aWxkLXRpbWUgdHJpZSBjYWxsYmFjayBmdW5jdGlvbiwgdXNlZCB3
aXRoIHV0cmllX3NlcmlhbGl6ZSgpLgorICogVGhpcyBmdW5jdGlvbiBjYWxjdWxhdGVzIGEgbGVh
ZCBzdXJyb2dhdGUncyB2YWx1ZSBpbmNsdWRpbmcgYSBmb2xkaW5nIG9mZnNldAorICogZnJvbSB0
aGUgMTAyNCBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzIFtzdGFydC4uc3RhcnQrMTAyNFsgLgor
ICogSXQgaXMgVSsxMDAwMCA8PSBzdGFydCA8PSBVKzEwZmMwMCBhbmQgKHN0YXJ0JjB4M2ZmKT09
MC4KKyAqCisgKiBUaGUgZm9sZGluZyBvZmZzZXQgaXMgcHJvdmlkZWQgYnkgdGhlIGNhbGxlci4K
KyAqIEl0IGlzIG9mZnNldD1VVFJJRV9CTVBfSU5ERVhfTEVOR1RIK24qVVRSSUVfU1VSUk9HQVRF
X0JMT0NLX0NPVU5UIHdpdGggbj0wLi4xMDIzLgorICogSW5zdGVhZCBvZiB0aGUgb2Zmc2V0IGl0
c2VsZiwgbiBjYW4gYmUgc3RvcmVkIGluIDEwIGJpdHMgLQorICogb3IgZmV3ZXIgaWYgaXQgY2Fu
IGJlIGFzc3VtZWQgdGhhdCBmZXcgbGVhZCBzdXJyb2dhdGVzIGhhdmUgYXNzb2NpYXRlZCBkYXRh
LgorICoKKyAqIFRoZSByZXR1cm5lZCB2YWx1ZSBtdXN0IGJlCisgKiAtIG5vdCB6ZXJvIGlmIGFu
ZCBvbmx5IGlmIHRoZXJlIGlzIHJlbGV2YW50IGRhdGEKKyAqICAgZm9yIHRoZSBjb3JyZXNwb25k
aW5nIDEwMjQgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICogLSBzdWNoIHRoYXQgVVRyaWUu
Z2V0Rm9sZGluZ09mZnNldChVTmV3VHJpZUdldEZvbGRlZFZhbHVlKC4uLiwgb2Zmc2V0KSk9PW9m
ZnNldAorICoKKyAqIEByZXR1cm4gYSBmb2xkZWQgdmFsdWUsIG9yIDAgaWYgdGhlcmUgaXMgbm8g
cmVsZXZhbnQgZGF0YSBmb3IgdGhlIGxlYWQgc3Vycm9nYXRlLgorICovCit0eXBlZGVmIHVpbnQz
Ml90IFVfQ0FMTENPTlYKK1VOZXdUcmllR2V0Rm9sZGVkVmFsdWUoVU5ld1RyaWUgKnRyaWUsIFVD
aGFyMzIgc3RhcnQsIGludDMyX3Qgb2Zmc2V0KTsKKworLyoqCisgKiBPcGVuIGEgYnVpbGQtdGlt
ZSB0cmllIHN0cnVjdHVyZS4KKyAqIFRoZSBzaXplIG9mIHRoZSBidWlsZC10aW1lIGRhdGEgYXJy
YXkgaXMgc3BlY2lmaWVkIHRvIGF2b2lkIGFsbG9jYXRpbmcgYSBsYXJnZQorICogYXJyYXkgaW4g
YWxsIGNhc2VzLiBUaGUgYXJyYXkgaXRzZWxmIGNhbiBhbHNvIGJlIHBhc3NlZCBpbi4KKyAqCisg
KiBBbHRob3VnaCB0aGUgdHJpZSBpcyBuZXZlciBmdWxseSBleHBhbmRlZCB0byBhIGxpbmVhciBh
cnJheSwgZXNwZWNpYWxseSB3aGVuCisgKiB1dHJpZV9zZXRSYW5nZTMyKCkgaXMgdXNlZCwgdGhl
IGRhdGEgYXJyYXkgY291bGQgYmUgbGFyZ2UgZHVyaW5nIGJ1aWxkIHRpbWUuCisgKiBUaGUgbWF4
aW11bSBsZW5ndGggaXMKKyAqIFVUUklFX01BWF9CVUlMRF9USU1FX0RBVEFfTEVOR1RIPTB4MTEw
MDAwK1VUUklFX0RBVEFfQkxPQ0tfTEVOR1RIKzB4NDAwLgorICogKE51bWJlciBvZiBVbmljb2Rl
IGNvZGUgcG9pbnRzICsgb25lIGFsbC1pbml0aWFsLXZhbHVlIGJsb2NrICsKKyAqICBwb3NzaWJs
ZSBkdXBsaWNhdGUgZW50cmllcyBmb3IgMTAyNCBsZWFkIHN1cnJvZ2F0ZXMuKQorICogKFVUUklF
X0RBVEFfQkxPQ0tfTEVOR1RIPD0weDIwMCBpbiBhbGwgY2FzZXMuKQorICoKKyAqIEBwYXJhbSBm
aWxsSW4gYSBwb2ludGVyIHRvIGEgVU5ld1RyaWUgc3RydWN0dXJlIHRvIGJlIGluaXRpYWxpemVk
ICh3aWxsIG5vdCBiZSByZWxlYXNlZCksIG9yCisgKiAgICAgICAgICAgICAgIE5VTEwgaWYgb25l
IGlzIHRvIGJlIGFsbG9jYXRlZAorICogQHBhcmFtIGFsaWFzRGF0YSBhIHBvaW50ZXIgdG8gYSBk
YXRhIGFycmF5IHRvIGJlIHVzZWQgKHdpbGwgbm90IGJlIHJlbGVhc2VkKSwgb3IKKyAqICAgICAg
ICAgICAgICAgICAgTlVMTCBpZiBvbmUgaXMgdG8gYmUgYWxsb2NhdGVkCisgKiBAcGFyYW0gbWF4
RGF0YUxlbmd0aCB0aGUgY2FwYWNpdHkgb2YgYWxpYXNEYXRhIChpZiBub3QgTlVMTCkgb3IKKyAq
ICAgICAgICAgICAgICAgICAgICAgIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEgYXJyYXkgdG8gYmUg
YWxsb2NhdGVkCisgKiBAcGFyYW0gaW5pdGlhbFZhbHVlIHRoZSBpbml0aWFsIHZhbHVlIHRoYXQg
aXMgc2V0IGZvciBhbGwgY29kZSBwb2ludHMKKyAqIEBwYXJhbSBsZWFkVW5pdFZhbHVlIHRoZSB2
YWx1ZSBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBfdW5pdHNfIHRoYXQgZG8gbm90CisgKiAgICAg
ICAgICAgICAgICAgICAgICBoYXZlIGFzc29jaWF0ZWQgc3VwcGxlbWVudGFyeSBkYXRhCisgKiBA
cGFyYW0gbGF0aW4xTGluZWFyIGEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIExhdGluLTEg
cmFuZ2UgaXMgdG8gYmUgYWxsb2NhdGVkIGFuZAorICogICAgICAgICAgICAgICAgICAgICBrZXB0
IGluIGEgbGluZWFyLCBjb250aWd1b3VzIHBhcnQgb2YgdGhlIGRhdGEgYXJyYXkKKyAqIEByZXR1
cm4gYSBwb2ludGVyIHRvIHRoZSBpbml0aWFsaXplZCBmaWxsSW4gb3IgdGhlIGFsbG9jYXRlZCBh
bmQgaW5pdGlhbGl6ZWQgbmV3IFVOZXdUcmllCisgKi8KK1VfQ0FQSSBVTmV3VHJpZSAqIFVfRVhQ
T1JUMgordXRyaWVfb3BlbihVTmV3VHJpZSAqZmlsbEluLAorICAgICAgICAgICB1aW50MzJfdCAq
YWxpYXNEYXRhLCBpbnQzMl90IG1heERhdGFMZW5ndGgsCisgICAgICAgICAgIHVpbnQzMl90IGlu
aXRpYWxWYWx1ZSwgdWludDMyX3QgbGVhZFVuaXRWYWx1ZSwKKyAgICAgICAgICAgVUJvb2wgbGF0
aW4xTGluZWFyKTsKKworLyoqCisgKiBDbG9uZSBhIGJ1aWxkLXRpbWUgdHJpZSBzdHJ1Y3R1cmUg
d2l0aCBhbGwgZW50cmllcy4KKyAqCisgKiBAcGFyYW0gZmlsbEluIGxpa2UgaW4gdXRyaWVfb3Bl
bigpCisgKiBAcGFyYW0gb3RoZXIgdGhlIGJ1aWxkLXRpbWUgdHJpZSBzdHJ1Y3R1cmUgdG8gY2xv
bmUKKyAqIEBwYXJhbSBhbGlhc0RhdGEgbGlrZSBpbiB1dHJpZV9vcGVuKCksCisgKiAgICAgICAg
ICAgICAgICAgIHVzZWQgaWYgYWxpYXNEYXRhTGVuZ3RoPj0oY2FwYWNpdHkgb2Ygb3RoZXIncyBk
YXRhIGFycmF5KQorICogQHBhcmFtIGFsaWFzRGF0YUxlbmd0aCB0aGUgbGVuZ3RoIG9mIGFsaWFz
RGF0YQorICogQHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIGluaXRpYWxpemVkIGZpbGxJbiBvciB0
aGUgYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCBuZXcgVU5ld1RyaWUKKyAqLworVV9DQVBJIFVO
ZXdUcmllICogVV9FWFBPUlQyCit1dHJpZV9jbG9uZShVTmV3VHJpZSAqZmlsbEluLCBjb25zdCBV
TmV3VHJpZSAqb3RoZXIsIHVpbnQzMl90ICphbGlhc0RhdGEsIGludDMyX3QgYWxpYXNEYXRhTGVu
Z3RoKTsKKworLyoqCisgKiBDbG9zZSBhIGJ1aWxkLXRpbWUgdHJpZSBzdHJ1Y3R1cmUsIGFuZCBy
ZWxlYXNlIG1lbW9yeQorICogdGhhdCB3YXMgYWxsb2NhdGVkIGJ5IHV0cmllX29wZW4oKSBvciB1
dHJpZV9jbG9uZSgpLgorICoKKyAqIEBwYXJhbSB0cmllIHRoZSBidWlsZC10aW1lIHRyaWUKKyAq
LworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1dHJpZV9jbG9zZShVTmV3VHJpZSAqdHJpZSk7CisK
Ky8qKgorICogR2V0IHRoZSBkYXRhIGFycmF5IG9mIGEgYnVpbGQtdGltZSB0cmllLgorICogVGhl
IGRhdGEgbWF5IGJlIG1vZGlmaWVkLCBidXQgZW50cmllcyB0aGF0IGFyZSBlcXVhbCBiZWZvcmUK
KyAqIG11c3Qgc3RpbGwgYmUgZXF1YWwgYWZ0ZXIgbW9kaWZpY2F0aW9uLgorICoKKyAqIEBwYXJh
bSB0cmllIHRoZSBidWlsZC10aW1lIHRyaWUKKyAqIEBwYXJhbSBwTGVuZ3RoIChvdXQpIGEgcG9p
bnRlciB0byBhIHZhcmlhYmxlIHRoYXQgcmVjZWl2ZXMgdGhlIG51bWJlcgorICogICAgICAgICAg
ICAgICAgb2YgZW50cmllcyBpbiB0aGUgZGF0YSBhcnJheQorICogQHJldHVybiB0aGUgZGF0YSBh
cnJheQorICovCitVX0NBUEkgdWludDMyX3QgKiBVX0VYUE9SVDIKK3V0cmllX2dldERhdGEoVU5l
d1RyaWUgKnRyaWUsIGludDMyX3QgKnBMZW5ndGgpOworCisvKioKKyAqIFNldCBhIHZhbHVlIGZv
ciBhIGNvZGUgcG9pbnQuCisgKgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQor
ICogQHBhcmFtIGMgdGhlIGNvZGUgcG9pbnQKKyAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUKKyAq
IEByZXR1cm4gRkFMU0UgaWYgYSBmYWlsdXJlIG9jY3VycmVkIChpbGxlZ2FsIGFyZ3VtZW50IG9y
IGRhdGEgYXJyYXkgb3ZlcnJ1bikKKyAqLworVV9DQVBJIFVCb29sIFVfRVhQT1JUMgordXRyaWVf
c2V0MzIoVU5ld1RyaWUgKnRyaWUsIFVDaGFyMzIgYywgdWludDMyX3QgdmFsdWUpOworCisvKioK
KyAqIEdldCBhIHZhbHVlIGZyb20gYSBjb2RlIHBvaW50IGFzIHN0b3JlZCBpbiB0aGUgYnVpbGQt
dGltZSB0cmllLgorICoKKyAqIEBwYXJhbSB0cmllIHRoZSBidWlsZC10aW1lIHRyaWUKKyAqIEBw
YXJhbSBjIHRoZSBjb2RlIHBvaW50CisgKiBAcGFyYW0gcEluQmxvY2taZXJvIGlmIG5vdCBOVUxM
LCB0aGVuICpwSW5CbG9ja1plcm8gaXMgc2V0IHRvIFRSVUUKKyAqICAgICAgICAgICAgICAgICAg
ICAgaWZmIHRoZSB2YWx1ZSBpcyByZXRyaWV2ZWQgZnJvbSBibG9jayAwOworICogICAgICAgICAg
ICAgICAgICAgICBibG9jayAwIGlzIHRoZSBhbGwtaW5pdGlhbC12YWx1ZSBpbml0aWFsIGJsb2Nr
CisgKiBAcmV0dXJuIHRoZSB2YWx1ZQorICovCitVX0NBUEkgdWludDMyX3QgVV9FWFBPUlQyCit1
dHJpZV9nZXQzMihVTmV3VHJpZSAqdHJpZSwgVUNoYXIzMiBjLCBVQm9vbCAqcEluQmxvY2taZXJv
KTsKKworLyoqCisgKiBTZXQgYSB2YWx1ZSBpbiBhIHJhbmdlIG9mIGNvZGUgcG9pbnRzIFtzdGFy
dC4ubGltaXRbLgorICogQWxsIGNvZGUgcG9pbnRzIGMgd2l0aCBzdGFydDw9YzxsaW1pdCB3aWxs
IGdldCB0aGUgdmFsdWUgaWYKKyAqIG92ZXJ3cml0ZSBpcyBUUlVFIG9yIGlmIHRoZSBvbGQgdmFs
dWUgaXMgMC4KKyAqCisgKiBAcGFyYW0gdHJpZSB0aGUgYnVpbGQtdGltZSB0cmllCisgKiBAcGFy
YW0gc3RhcnQgdGhlIGZpcnN0IGNvZGUgcG9pbnQgdG8gZ2V0IHRoZSB2YWx1ZQorICogQHBhcmFt
IGxpbWl0IG9uZSBwYXN0IHRoZSBsYXN0IGNvZGUgcG9pbnQgdG8gZ2V0IHRoZSB2YWx1ZQorICog
QHBhcmFtIHZhbHVlIHRoZSB2YWx1ZQorICogQHBhcmFtIG92ZXJ3cml0ZSBmbGFnIGZvciB3aGV0
aGVyIG9sZCBub24taW5pdGlhbCB2YWx1ZXMgYXJlIHRvIGJlIG92ZXJ3cml0dGVuCisgKiBAcmV0
dXJuIEZBTFNFIGlmIGEgZmFpbHVyZSBvY2N1cnJlZCAoaWxsZWdhbCBhcmd1bWVudCBvciBkYXRh
IGFycmF5IG92ZXJydW4pCisgKi8KK1VfQ0FQSSBVQm9vbCBVX0VYUE9SVDIKK3V0cmllX3NldFJh
bmdlMzIoVU5ld1RyaWUgKnRyaWUsIFVDaGFyMzIgc3RhcnQsIFVDaGFyMzIgbGltaXQsIHVpbnQz
Ml90IHZhbHVlLCBVQm9vbCBvdmVyd3JpdGUpOworCisvKioKKyAqIENvbXBhY3QgdGhlIGJ1aWxk
LXRpbWUgdHJpZSBhZnRlciBhbGwgdmFsdWVzIGFyZSBzZXQsIGFuZCB0aGVuCisgKiBzZXJpYWxp
emUgaXQgaW50byAzMi1iaXQgYWxpZ25lZCBtZW1vcnkuCisgKgorICogQWZ0ZXIgdGhpcywgdGhl
IHRyaWUgY2FuIG9ubHkgYmUgc2VyaXphbGl6ZWQgYWdhaW4gYW5kL29yIGNsb3NlZDsKKyAqIG5v
IGZ1cnRoZXIgdmFsdWVzIGNhbiBiZSBhZGRlZC4KKyAqCisgKiBAc2VlIHV0cmllX3Vuc2VyaWFs
aXplKCkKKyAqCisgKiBAcGFyYW0gdHJpZSB0aGUgYnVpbGQtdGltZSB0cmllCisgKiBAcGFyYW0g
ZGF0YSBhIHBvaW50ZXIgdG8gMzItYml0LWFsaWduZWQgbWVtb3J5IGZvciB0aGUgdHJpZSBkYXRh
CisgKiBAcGFyYW0gY2FwYWNpdHkgdGhlIG51bWJlciBvZiBieXRlcyBhdmFpbGFibGUgYXQgZGF0
YQorICogQHBhcmFtIGdldEZvbGRlZFZhbHVlIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBjYWxj
dWxhdGVzIHRoZSB2YWx1ZSBmb3IKKyAqICAgICAgICAgICAgICAgICAgICAgICBhIGxlYWQgc3Vy
cm9nYXRlIGZyb20gYWxsIG9mIGl0cyBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzCisgKiAgICAg
ICAgICAgICAgICAgICAgICAgYW5kIHRoZSBmb2xkaW5nIG9mZnNldDsKKyAqICAgICAgICAgICAg
ICAgICAgICAgICBpZiBOVUxMLCB0aGVuIGEgZGVmYXVsdCBmdW5jdGlvbiBpcyB1c2VkIHdoaWNo
IHJldHVybnMganVzdAorICogICAgICAgICAgICAgICAgICAgICAgIHRoZSBpbnB1dCBvZmZzZXQg
d2hlbiB0aGVyZSBhcmUgYW55IG5vbi1pbml0aWFsLXZhbHVlIGVudHJpZXMKKyAqIEBwYXJhbSBy
ZWR1Y2VUbzE2Qml0cyBmbGFnIGZvciB3aGV0aGVyIHRoZSB2YWx1ZXMgYXJlIHRvIGJlIHJlZHVj
ZWQgdG8gYQorICogICAgICAgICAgICAgICAgICAgICAgIHdpZHRoIG9mIDE2IGJpdHMgZm9yIHNl
cmlhbGl6YXRpb24gYW5kIHJ1bnRpbWUKKyAqIEBwYXJhbSBwRXJyb3JDb2RlIGEgVUVycm9yQ29k
ZSBhcmd1bWVudDsgYW1vbmcgb3RoZXIgcG9zc2libGUgZXJyb3IgY29kZXM6CisgKiAtIFVfQlVG
RkVSX09WRVJGTE9XX0VSUk9SIGlmIHRoZSBkYXRhIHN0b3JhZ2UgYmxvY2sgaXMgdG9vIHNtYWxs
IGZvciBzZXJpYWxpemF0aW9uCisgKiAtIFVfTUVNT1JZX0FMTE9DQVRJT05fRVJST1IgaWYgdGhl
IHRyaWUgZGF0YSBhcnJheSBpcyB0b28gc21hbGwKKyAqIC0gVV9JTkRFWF9PVVRPRkJPVU5EU19F
UlJPUiBpZiB0aGUgaW5kZXggb3IgZGF0YSBhcnJheXMgYXJlIHRvbyBsb25nIGFmdGVyIGNvbXBh
Y3Rpb24gZm9yIHNlcmlhbGl6YXRpb24KKyAqCisgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0
ZXMgd3JpdHRlbiBmb3IgdGhlIHRyaWUKKyAqLworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCit1
dHJpZV9zZXJpYWxpemUoVU5ld1RyaWUgKnRyaWUsIHZvaWQgKmRhdGEsIGludDMyX3QgY2FwYWNp
dHksCisgICAgICAgICAgICAgICAgVU5ld1RyaWVHZXRGb2xkZWRWYWx1ZSAqZ2V0Rm9sZGVkVmFs
dWUsCisgICAgICAgICAgICAgICAgVUJvb2wgcmVkdWNlVG8xNkJpdHMsCisgICAgICAgICAgICAg
ICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogU3dhcCBhIHNlcmlhbGl6ZWQg
VVRyaWUuCisgKiBAaW50ZXJuYWwKKyAqLworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCit1dHJp
ZV9zd2FwKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAgIGNvbnN0IHZvaWQgKmlu
RGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgIFVFcnJvckNv
ZGUgKnBFcnJvckNvZGUpOworCisvKiBzZXJpYWxpemF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisvKioKKyAqIFRy
aWUgZGF0YSBzdHJ1Y3R1cmUgaW4gc2VyaWFsaXplZCBmb3JtOgorICoKKyAqIFVUcmllSGVhZGVy
IGhlYWRlcjsKKyAqIHVpbnQxNl90IGluZGV4W2hlYWRlci5pbmRleExlbmd0aF07CisgKiB1aW50
MTZfdCBkYXRhW2hlYWRlci5kYXRhTGVuZ3RoXTsKKyAqIEBpbnRlcm5hbAorICovCit0eXBlZGVm
IHN0cnVjdCBVVHJpZUhlYWRlciB7CisgICAgLyoqICJUcmllIiBpbiBiaWctZW5kaWFuIFVTLUFT
Q0lJICgweDU0NzI2OTY1KSAqLworICAgIHVpbnQzMl90IHNpZ25hdHVyZTsKKworICAgIC8qKgor
ICAgICAqIG9wdGlvbnMgYml0IGZpZWxkOgorICAgICAqICAgICA5ICAgIDE9TGF0aW4tMSBkYXRh
IGlzIHN0b3JlZCBsaW5lYXJseSBhdCBkYXRhK1VUUklFX0RBVEFfQkxPQ0tfTEVOR1RICisgICAg
ICogICAgIDggICAgMD0xNi1iaXQgZGF0YSwgMT0zMi1iaXQgZGF0YQorICAgICAqICA3Li40ICAg
IFVUUklFX0lOREVYX1NISUZUICAgLy8gMC4uVVRSSUVfU0hJRlQKKyAgICAgKiAgMy4uMCAgICBV
VFJJRV9TSElGVCAgICAgICAgIC8vIDEuLjkKKyAgICAgKi8KKyAgICB1aW50MzJfdCBvcHRpb25z
OworCisgICAgLyoqIGluZGV4TGVuZ3RoIGlzIGEgbXVsdGlwbGUgb2YgVVRSSUVfU1VSUk9HQVRF
X0JMT0NLX0NPVU5UICovCisgICAgaW50MzJfdCBpbmRleExlbmd0aDsKKworICAgIC8qKiBkYXRh
TGVuZ3RoPj1VVFJJRV9EQVRBX0JMT0NLX0xFTkdUSCAqLworICAgIGludDMyX3QgZGF0YUxlbmd0
aDsKK30gVVRyaWVIZWFkZXI7CisKKy8qKgorICogQ29uc3RhbnRzIGZvciB1c2Ugd2l0aCBVVHJp
ZUhlYWRlci5vcHRpb25zLgorICogQGludGVybmFsCisgKi8KK2VudW0geworICAgIC8qKiBNYXNr
IHRvIGdldCB0aGUgVVRSSUVfU0hJRlQgdmFsdWUgZnJvbSBvcHRpb25zLiAqLworICAgIFVUUklF
X09QVElPTlNfU0hJRlRfTUFTSz0weGYsCisKKyAgICAvKiogU2hpZnQgb3B0aW9ucyByaWdodCB0
aGlzIG11Y2ggdG8gZ2V0IHRoZSBVVFJJRV9JTkRFWF9TSElGVCB2YWx1ZS4gKi8KKyAgICBVVFJJ
RV9PUFRJT05TX0lOREVYX1NISUZUPTQsCisKKyAgICAvKiogSWYgc2V0LCB0aGVuIHRoZSBkYXRh
IChzdGFnZSAyKSBhcnJheSBpcyAzMiBiaXRzIHdpZGUuICovCisgICAgVVRSSUVfT1BUSU9OU19E
QVRBX0lTXzMyX0JJVD0weDEwMCwKKworICAgIC8qKgorICAgICAqIElmIHNldCwgdGhlbiBMYXRp
bi0xIGRhdGEgKGZvciBVKzAwMDAuLlUrMDBmZikgaXMgc3RvcmVkIGluIHRoZSBkYXRhIChzdGFn
ZSAyKSBhcnJheQorICAgICAqIGFzIGEgc2ltcGxlLCBsaW5lYXIgYXJyYXkgYXQgZGF0YStVVFJJ
RV9EQVRBX0JMT0NLX0xFTkdUSC4KKyAgICAgKi8KKyAgICBVVFJJRV9PUFRJT05TX0xBVElOMV9J
U19MSU5FQVI9MHgyMDAKK307CisKK1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcAppbmRleCAzMWEzZjAyYjNlY2E4ZTA1M2RkNTI1
MjUwNTEyNTM1ZmUxMGJiYjNiLi5mNDg1NDNmZTg2MWMxNzZjNTRiZDJjNmQyM2FiODM5NDgwOGQw
ZGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcApAQCAtMjks
OSArMjksNiBAQAogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nVmlldy5oPgogCi0vLyBGSVhNRTogVGhpcyBuZWVkcyBhIGJldHRlciBuYW1lCi0jZGVm
aW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkpCi0KIG5h
bWVzcGFjZSBXVEYgewogCiAvLyBJdGVyYXRvciBpbml0aWFsaXphdGlvbgpAQCAtNTksNiArNTYs
MTIgQEAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVs
ZXMoY29uc3QgY2hhciogYnJlYWtSdWxlcykKIAogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oTUFD
KSAmJiAhUExBVEZPUk0oSU9TKQorVGV4dEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9y
UnVsZVNldChCcmVha2luZ1J1bGVTZXQgcnVsZVNldCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKyNlbmRpZgogCiAvLyBJdGVyYXRvciB0ZXh0IHNldHRpbmcKIApAQCAtMTYyLDEzNSArMTY1
LDIwIEBAIFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmll
dyBzdHJpbmcpCiAgICAgcmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqc3RhdGljU2VudGVuY2VC
cmVha0l0ZXJhdG9yLCBzdHJpbmcpOwogfQogCisjaWYgIVBMQVRGT1JNKElPUykKK3N0YXRpYyBU
ZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFj
aygpCit7CisgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0
KEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQpKQorICAgICAgICByZXR1cm4gaXRlcmF0
b3I7CisgICAgcmV0dXJuIGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhjdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMpOworfQorI2VuZGlmCisKIFRleHRCcmVha0l0ZXJhdG9yKiBjdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogewogI2lmICFQTEFURk9STShJT1Mp
Ci0gICAgLy8gVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0
b3IgcnVsZXMgb2YgSUNVIDU3Ci0gICAgLy8gPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3Jn
L3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCi0g
ICAgLy8gVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxp
c3RlZCBiZWxvdzoKLSAgICAvLyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVh
ayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBN
YXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOwotICAgIC8vICogUmVtb3Zl
ZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVuZCBj
aGFyYWN0ZXJzIChCdWcgMjQzNDIpOwotICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50
IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFn
ZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0
aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lk
dGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgotICAgIC8vICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lv
bmFsIGluZGljYXRvciBzeW1ib2xzLgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBrUnVsZXMgPQot
ICAgICAgICAiJENSICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOyIK
LSAgICAgICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsi
Ci0gICAgICAgICIkQ29udHJvbCA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRy
b2x9XTsiCi0gICAgICAgICIkVm9pY2VNYXJrcyA9IFtcXHVGRjlFXFx1RkY5Rl07IiAvLyBKYXBh
bmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcwotICAgICAgICAiJEV4dGVuZCAg
PSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1xc
dTBFMzAgXFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVCMl1dOyIKLSAgICAgICAgIiRTcGFj
aW5nTWFyayA9IFtbXFxwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRl
bmRdOyIKLSAgICAgICAgIiRMICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
TH1dOyIKLSAgICAgICAgIiRWICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
Vn1dOyIKLSAgICAgICAgIiRUICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
VH1dOyIKLSAgICAgICAgIiRMViAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
TFZ9XTsiCi0gICAgICAgICIkTFZUICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IExWVH1dOyIKLSAgICAgICAgIiRIaW4wICAgID0gW1xcdTA5MDUtXFx1MDkzOV07IiAvLyBEZXZh
bmFnYXJpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEhpblYgICAgPSBcXHUwOTREOyIgLy8g
RGV2YW5hZ2FyaSBTaWduIFZpcmFtYQotICAgICAgICAiJEhpbjEgICAgPSBbXFx1MDkxNS1cXHUw
OTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEJlbjAgICAg
PSBbXFx1MDk4NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAg
ICIkQmVuViAgICA9IFxcdTA5Q0Q7IiAvLyBCZW5nYWxpIFNpZ24gVmlyYW1hCi0gICAgICAgICIk
QmVuMSAgICA9IFtcXHUwOTk1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhh
Ci0gICAgICAgICIkUGFuMCAgICA9IFtcXHUwQTA1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0
dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUGFuViAgICA9IFxcdTBBNEQ7IiAvLyBHdXJtdWtoaSBT
aWduIFZpcmFtYQotICAgICAgICAiJFBhbjEgICAgPSBbXFx1MEExNS1cXHUwQTM5XTsiIC8vIEd1
cm11a2hpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRHdWowICAgID0gW1xcdTBBODUtXFx1
MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRHdWpWICAgID0g
XFx1MEFDRDsiIC8vIEd1amFyYXRpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkR3VqMSAgICA9IFtc
XHUwQTk1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAi
JE9yaTAgICAgPSBbXFx1MEIwNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBBLC4uLixIYQot
ICAgICAgICAiJE9yaVYgICAgPSBcXHUwQjREOyIgLy8gT3JpeWEgU2lnbiBWaXJhbWEKLSAgICAg
ICAgIiRPcmkxICAgID0gW1xcdTBCMTUtXFx1MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIgS2EsLi4u
LEhhCi0gICAgICAgICIkVGVsMCAgICA9IFtcXHUwQzA1LVxcdTBDMzldOyIgLy8gVGVsdWd1IExl
dHRlciBBLC4uLixIYQotICAgICAgICAiJFRlbFYgICAgPSBcXHUwQzREOyIgLy8gVGVsdWd1IFNp
Z24gVmlyYW1hCi0gICAgICAgICIkVGVsMSAgICA9IFtcXHUwQzE0LVxcdTBDMzldOyIgLy8gVGVs
dWd1IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRLYW4wICAgID0gW1xcdTBDODUtXFx1MENC
OV07IiAvLyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEthblYgICAgPSBcXHUw
Q0NEOyIgLy8gS2FubmFkYSBTaWduIFZpcmFtYQotICAgICAgICAiJEthbjEgICAgPSBbXFx1MEM5
NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsMCAg
ICA9IFtcXHUwRDA1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAg
ICAgICAiJE1hbFYgICAgPSBcXHUwRDREOyIgLy8gTWFsYXlhbGFtIFNpZ24gVmlyYW1hCi0gICAg
ICAgICIkTWFsMSAgICA9IFtcXHUwRDE1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBB
LC4uLixIYQotICAgICAgICAiJFJJICAgICAgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIg
Ly8gRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycwotICAgICAgICAiJFpXSiAgICAgPSBcXHUyMDBE
OyIgLy8gWmVybyB3aWR0aCBqb2luZXIKLSAgICAgICAgIiRFbW9qaVZhciA9IFtcXHVGRTBGXTsi
IC8vIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgotI2lmIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVAotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZG
OSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NB
LVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFG
NDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAw
MDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxc
VTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3
IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFG
NkI0LVxcVTAwMDFGNkI2XTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVl
bmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1c
XHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxc
VTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUw
IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFG
NDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAw
MDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxc
VTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEz
IFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4XSA7IiAvLyBF
bW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZWxzZQotICAgICAgICAiJEVt
b2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDhC
XTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAi
JEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUw
MDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1c
XFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2
OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAx
RjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUw
MDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBc
XFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtl
IEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAgICAgICIkRW1vamlNb2RzID0gW1xc
VTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiIC8vIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotICAgICAg
ICAiISFjaGFpbjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIhIVJJ
Tm9DaGFpbjsiCi0jZW5kaWYKLSAgICAgICAgIiEhZm9yd2FyZDsiCi0gICAgICAgICIkQ1IgJExG
OyIKLSAgICAgICAgIiRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7IgotICAgICAgICAiKCRMViB8
ICRWKSAoJFYgfCAkVCk7IgotICAgICAgICAiKCRMVlQgfCAkVCkgJFQ7IgotI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsiCi0gICAg
ICAgICIkUkkgJFJJICRFeHRlbmQqOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJEV4
dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsiCi0jZWxz
ZQotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENv
bnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkk7Igot
ICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4wICRIaW5WICRIaW4xOyIg
Ly8gRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkQmVuMCAkQmVuViAkQmVu
MTsiIC8vIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFBhbjAgJFBhblYgJFBh
bjE7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkR3VqMCAkR3VqViAk
R3VqMTsiIC8vIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRPcmkwICRPcmlW
ICRPcmkxOyIgLy8gT3JpeWEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFRlbDAgJFRlbFYg
JFRlbDE7IiAvLyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEthbjAgJEthblYg
JEthbjE7IiAvLyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRNYWwwICRNYWxW
ICRNYWwxOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRaV0ogJEVt
b2ppRm9yU2VxczsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAg
ICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyIgLy8gRG9uJ3QgYnJlYWsg
YmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3Ip
IGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotICAgICAgICAiISFyZXZlcnNlOyIKLSAgICAgICAg
IiRMRiAkQ1I7IgotICAgICAgICAiKCRMIHwgJFYgfCAkTFYgfCAkTFZUKSAkTDsiCi0gICAgICAg
ICIoJFYgfCAkVCkgKCRMViB8ICRWKTsiCi0gICAgICAgICIkVCAoJExWVCB8ICRUKTsiCi0jaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4
dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRF
eHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayBb
XiRDb250cm9sICRDUiAkTEZdOyIKLSNlbHNlCi0gICAgICAgICIkRXh0ZW5kICAgICAgW14kQ29u
dHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExG
XTsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNl
bmRpZgotICAgICAgICAiJEhpbjEgJEhpblYgJEhpbjA7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAo
YmFja3dhcmQpCi0gICAgICAgICIkQmVuMSAkQmVuViAkQmVuMDsiIC8vIEJlbmdhbGkgVmlyYW1h
IChiYWNrd2FyZCkKLSAgICAgICAgIiRQYW4xICRQYW5WICRQYW4wOyIgLy8gR3VybXVraGkgVmly
YW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRHdWoxICRHdWpWICRHdWowOyIgLy8gR3VqYXJhdGkg
VmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRPcmkxICRPcmlWICRPcmkwOyIgLy8gR3VqYXJh
dGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRUZWwxICRUZWxWICRUZWwwOyIgLy8gVGVs
dWd1IFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkS2FuMSAkS2FuViAkS2FuMDsiIC8vIEth
bm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRNYWwxICRNYWxWICRNYWwwOyIgLy8g
TWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkRW1vamlGb3JTZXFzICRaV0o7
IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlN
b2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4gcmVs
ZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBh
dHJpY2sgbW9kaWZpZXIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEh
c2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIlskRW1vamlWYXIg
JEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7Igot
ICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRF
bW9qaU1vZHNdKzsiOworICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvciA9IGNyZWF0ZUN1cnNvck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJh
Y2soKTsKICNlbHNlCi0gICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JN
b2RzOyIKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7Igot
ICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IjsKLSNl
bmRpZgotICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhrUnVsZXMpOwotI2Vsc2UgLy8g
UExBVEZPUk0oSU9TKQogICAgIC8vIFVzZSB0aGUgc3BlY2lhbCBUaGFpIGNoYXJhY3RlciBicmVh
ayBpdGVyYXRvciBmb3IgYWxsIGxvY2FsZXMKICAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3Iq
IHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3IoVUJSS19D
SEFSQUNURVIsICJ0aCIpOwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCkBAIC0zMTcsNDQyICsy
MDUsMjAgQEAgdm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3Iq
IGl0ZXJhdG9yKQogICAgIExpbmVCcmVha0l0ZXJhdG9yUG9vbDo6c2hhcmVkUG9vbCgpLnB1dChp
dGVyYXRvcik7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFByb2xvZ3VlID0KLSAgICAi
ISFjaGFpbjsiCi0gICAgIiEhTEJDTU5vQ2hhaW47IgotICAgICIhIWxvb2tBaGVhZEhhcmRCcmVh
azsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0JlZm9yZSA9Ci0gICAg
Ly8gZXhwbGljaXRseSBlbnVtZXJhdGUgJENKIHNpbmNlIElDVSB2ZXJzaW9ucyBwcmlvciB0byA0
OSBkb24ndCBzdXBwb3J0IDpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoK
LSAgICAiJENKID0gWyIKLSNpZiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVf
SUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpCi0gICAgIjpMaW5lQnJlYWs9Q29uZGl0aW9uYWxf
SmFwYW5lc2VfU3RhcnRlcjoiCi0jZWxzZQotICAgICJcXHUzMDQxXFx1MzA0M1xcdTMwNDVcXHUz
MDQ3XFx1MzA0OVxcdTMwNjNcXHUzMDgzXFx1MzA4NVxcdTMwODdcXHUzMDhFXFx1MzA5NVxcdTMw
OTZcXHUzMEExXFx1MzBBM1xcdTMwQTVcXHUzMEE3IgotICAgICJcXHUzMEE5XFx1MzBDM1xcdTMw
RTNcXHUzMEU1XFx1MzBFN1xcdTMwRUVcXHUzMEY1XFx1MzBGNlxcdTMwRkMiCi0gICAgIlxcdTMx
RjBcXHUzMUYxXFx1MzFGMlxcdTMxRjNcXHUzMUY0XFx1MzFGNVxcdTMxRjZcXHUzMUY3XFx1MzFG
OFxcdTMxRjlcXHUzMUZBXFx1MzFGQlxcdTMxRkNcXHUzMUZEXFx1MzFGRVxcdTMxRkYiCi0gICAg
IlxcdUZGNjdcXHVGRjY4XFx1RkY2OVxcdUZGNkFcXHVGRjZCXFx1RkY2Q1xcdUZGNkRcXHVGRjZF
XFx1RkY2RlxcdUZGNzAiCi0jZW5kaWYKLSAgICAiXTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciog
dWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEw
XFx1MjAxM107IgotICAgICIkRVhfU1VCID0gW1xcdTAwMjFcXHUwMDNGXFx1RkYwMVxcdUZGMUZd
OyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07
IgotICAgICIkSVNfU1VCID0gW1xcdTAwM0FcXHUwMDNCXTsiCi0gICAgIiROU19TVUIgPSBbXFx1
MjAzQ1xcdTIwNDdcXHUyMDQ4XFx1MjA0OVxcdTMwMDVcXHUzMDFDXFx1MzAzQlxcdTMwOURcXHUz
MDlFXFx1MzBBMFxcdTMwRkJcXHUzMEZEXFx1MzBGRVxcdUZGMUFcXHVGRjFCXFx1RkY2NV07Igot
ICAgICIkUE9fU1VCID0gW1xcdTAwMjVcXHUwMEEyXFx1MDBCMFxcdTIwMzBcXHUyMDMyXFx1MjAz
M1xcdTIxMDNcXHVGRjA1XFx1RkZFMF07IgotICAgICIkUFJfU1VCID0gW1xcdTAwMjRcXHUwMEEz
XFx1MDBBNVxcdTIwQUNcXHUyMTE2XFx1RkYwNFxcdUZGRTFcXHVGRkU1XTsiCi0gICAgIiRJRF9B
REQgPSBbJENKICRCQV9TVUIgJEVYX1NVQiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VC
ICRQUl9TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1
YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSksgPQotICAgICIkQkFfU1VCID0gJyc7Igot
ICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0g
W1xcdTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBb
XFx1MzAwNVxcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwRkRcXHUzMEZFXTsiCi0gICAgIiRQT19T
VUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKICRJTl9T
VUIgJE5TX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIq
IHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIw
MTBcXHUyMDEzXTsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0g
ICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBb
XFx1MzAxQ1xcdTMwQTBdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcn
OyIKLSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQg
PSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1h
bE5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAg
IiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsi
Ci0gICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIg
PSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1z
dGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSyA9Ci0gICAg
IiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsi
Ci0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIg
PSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJ
RF9BREQgPSAnJzsiCi0gICAgIiROU19BREQgPSBbJENKXTsiOwotCi0jZGVmaW5lIHVheDE0QXNz
aWdubWVudHNDdXN0b21TdHJpY3ROb25DSksgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3Ry
aWN0Q0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Q0pLICAgICAgICB1
YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHND
dXN0b21EZWZhdWx0Tm9uQ0pLICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pL
Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIgPQotICAgICIkQUkg
PSBbOkxpbmVCcmVhayA9IEFtYmlndW91czpdOyIKLSAgICAiJEFMID0gWzpMaW5lQnJlYWsgPSBB
bHBoYWJldGljOl07IgotICAgICIkQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0g
JEJBX1NVQl07IgotICAgICIkQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOyIKLSAg
ICAiJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsiCi0gICAgIiRCMiA9IFs6
TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOyIKLSAgICAiJENCID0gWzpMaW5lQnJlYWsgPSBDb250
aW5nZW50X0JyZWFrOl07IgotICAgICIkQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0
aW9uOl07IgotICAgICIkQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07IgotICAg
ICIkQ1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07IgotICAgICIkQ1IgPSBb
OkxpbmVCcmVhayA9IENhcnJpYWdlX1JldHVybjpdOyIKLSAgICAiJEVYID0gW1s6TGluZUJyZWFr
ID0gRXhjbGFtYXRpb246XSAtICRFWF9TVUJdOyIKLSAgICAiJEdMID0gWzpMaW5lQnJlYWsgPSBH
bHVlOl07IgotI2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVS
U0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAgICAiJEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdfTGV0
dGVyOl07IgotI2Vsc2UKLSAgICAiJEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsiCi0j
ZW5kaWYKLSAgICAiJEhZID0gWzpMaW5lQnJlYWsgPSBIeXBoZW46XTsiCi0gICAgIiRIMiA9IFs6
TGluZUJyZWFrID0gSDI6XTsiCi0gICAgIiRIMyA9IFs6TGluZUJyZWFrID0gSDM6XTsiCi0gICAg
IiRJRCA9IFtbW1s6TGluZUJyZWFrID0gSWRlb2dyYXBoaWM6XSAtICRDSl0gJElEX0FERF0gLSAk
SURfU1VCXTsiCi0gICAgIiRJTiA9IFtbOkxpbmVCcmVhayA9IEluc2VwYXJhYmxlOl0gLSAkSU5f
U1VCXTsiCi0gICAgIiRJUyA9IFtbOkxpbmVCcmVhayA9IEluZml4X051bWVyaWM6XSAtICRJU19T
VUJdOyIKLSAgICAiJEpMID0gWzpMaW5lQnJlYWsgPSBKTDpdOyIKLSAgICAiJEpWID0gWzpMaW5l
QnJlYWsgPSBKVjpdOyIKLSAgICAiJEpUID0gWzpMaW5lQnJlYWsgPSBKVDpdOyIKLSAgICAiJExG
ID0gWzpMaW5lQnJlYWsgPSBMaW5lX0ZlZWQ6XTsiCi0gICAgIiROTCA9IFs6TGluZUJyZWFrID0g
TmV4dF9MaW5lOl07IgotICAgICIkTlMgPSBbW1tbOkxpbmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAt
ICRDSl0gJE5TX0FERF0gLSAkTlNfU1VCXTsiCi0gICAgIiROVSA9IFs6TGluZUJyZWFrID0gTnVt
ZXJpYzpdOyIKLSAgICAiJE9QID0gWzpMaW5lQnJlYWsgPSBPcGVuX1B1bmN0dWF0aW9uOl07Igot
ICAgICIkUE8gPSBbWzpMaW5lQnJlYWsgPSBQb3N0Zml4X051bWVyaWM6XSAtICRQT19TVUJdOyIK
LSAgICAiJFBSID0gW1s6TGluZUJyZWFrID0gUHJlZml4X051bWVyaWM6XSAtICRQUl9TVUJdOyIK
LSAgICAiJFFVID0gWzpMaW5lQnJlYWsgPSBRdW90YXRpb246XTsiCi0gICAgIiRSSSA9IFtcXFUw
MDAxRjFFNi1cXFUwMDAxRjFGRl07IgotICAgICIkU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhf
Q29udGV4dDpdOyIKLSAgICAiJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsiCi0gICAg
IiRTUCA9IFs6TGluZUJyZWFrID0gU3BhY2U6XTsiCi0gICAgIiRTWSA9IFs6TGluZUJyZWFrID0g
QnJlYWtfU3ltYm9sczpdOyIKLSAgICAiJFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpd
OyIKLSAgICAiJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3duOl07IgotICAgICIkWlcgPSBbOkxp
bmVCcmVhayA9IFpXU3BhY2U6XTsiCi0gICAgIiRaV0ogPSBcXHUyMDBEOyIKLSAgICAiJEVtb2pp
VmFyID0gXFx1RkUwRjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRFbW9q
aUZvclNlcXMgPSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBc
XFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNG
MyBcXFUwMDAxRjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAx
RjQ2RiBcXFUwMDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUw
MDAxRjQ4MiBcXFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBc
XFUwMDAxRjVFOCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0
RC1cXFUwMDAxRjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNl07IiAvLyBF
bW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAiJEVtb2ppRm9yTW9k
cyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFG
M0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAw
MDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxc
VTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgz
IFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFG
NTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAw
MDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxc
VTAwMDFGNkMwIFxcVTAwMDFGOTE4XSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sg
bW9kaWZpZXJzCi0jZWxzZQotICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0
NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUy
NjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBc
XFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0
Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAx
RjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUw
MDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBc
XFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZC
NiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVy
cwotI2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIK
LSAgICAiJGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAg
ICAiJEFMUGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsiCi0gICAgIiRBTGNtID0gJEFMUGx1
cyAkQ00qOyIKLSAgICAiJEJBY20gPSAkQkEgJENNKjsiCi0gICAgIiRCQmNtID0gJEJCICRDTSo7
IgotICAgICIkQjJjbSA9ICRCMiAkQ00qOyIKLSAgICAiJENMY20gPSAkQ0wgJENNKjsiCi0gICAg
IiRDUGNtID0gJENQICRDTSo7IgotICAgICIkRVhjbSA9ICRFWCAkQ00qOyIKLSAgICAiJEdMY20g
PSAkR0wgJENNKjsiCi0gICAgIiRITGNtID0gJEhMICRDTSo7IgotICAgICIkSFljbSA9ICRIWSAk
Q00qOyIKLSAgICAiJEgyY20gPSAkSDIgJENNKjsiCi0gICAgIiRIM2NtID0gJEgzICRDTSo7Igot
ICAgICIkSURjbSA9ICRJRCAkQ00qOyIKLSAgICAiJElOY20gPSAkSU4gJENNKjsiCi0gICAgIiRJ
U2NtID0gJElTICRDTSo7IgotICAgICIkSkxjbSA9ICRKTCAkQ00qOyIKLSAgICAiJEpWY20gPSAk
SlYgJENNKjsiCi0gICAgIiRKVGNtID0gJEpUICRDTSo7IgotICAgICIkTlNjbSA9ICROUyAkQ00q
OyIKLSAgICAiJE5VY20gPSAkTlUgJENNKjsiCi0gICAgIiRPUGNtID0gJE9QICRDTSo7IgotICAg
ICIkUE9jbSA9ICRQTyAkQ00qOyIKLSAgICAiJFBSY20gPSAkUFIgJENNKjsiCi0gICAgIiRRVWNt
ID0gJFFVICRDTSo7IgotICAgICIkUkljbSA9ICRSSSAkQ00qOyIKLSAgICAiJFNZY20gPSAkU1kg
JENNKjsiCi0gICAgIiRXSmNtID0gJFdKICRDTSo7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVh
eDE0Rm9yd2FyZCA9Ci0gICAgIiEhZm9yd2FyZDsiCi0gICAgIiRDQU5fQ00gPSBbXiRTUCAkQksg
JENSICRMRiAkTkwgJFpXICRDTV07IgotICAgICIkQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYg
JE5MICRaVyAkQ01dOyIKLSAgICAiJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAk
WlcgJFNQXTsiCi0gICAgIiRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kg
JFdKICRHTCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107IgotICAgICIkQUxf
Rk9MTE9XID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsiCi0gICAgIiRMQjRCcmVh
a3MgPSBbJEJLICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1Ig
JExGICROTF07IgotICAgICIkTEI4QnJlYWtzID0gWyRMQjRCcmVha3MgJFpXXTsiCi0gICAgIiRM
QjhOb25CcmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOyIKLSAgICAiJExCMThOb25C
cmVha3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsiCi0gICAgIiRMQjE4QnJlYWtzID0gWyRM
QjhCcmVha3MgJFNQXTsiCi0gICAgIiRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0g
JENCXTsiCi0gICAgIiRBTFBsdXMgJENNKzsiCi0gICAgIiRCQSAkQ00rOyIKLSAgICAiJEJCICRD
TSs7IgotICAgICIkQjIgJENNKzsiCi0gICAgIiRDTCAkQ00rOyIKLSAgICAiJENQICRDTSs7Igot
ICAgICIkRVggJENNKzsiCi0gICAgIiRHTCAkQ00rOyIKLSAgICAiJEhMICRDTSs7IgotICAgICIk
SFkgJENNKzsiCi0gICAgIiRIMiAkQ00rOyIKLSAgICAiJEgzICRDTSs7IgotICAgICIkSUQgJENN
KzsiCi0gICAgIiRJTiAkQ00rOyIKLSAgICAiJElTICRDTSs7IgotICAgICIkSkwgJENNKzsiCi0g
ICAgIiRKViAkQ00rOyIKLSAgICAiJEpUICRDTSs7IgotICAgICIkTlMgJENNKzsiCi0gICAgIiRO
VSAkQ00rOyIKLSAgICAiJE9QICRDTSs7IgotICAgICIkUE8gJENNKzsiCi0gICAgIiRQUiAkQ00r
OyIKLSAgICAiJFFVICRDTSs7IgotICAgICIkUkkgJENNKzsiCi0gICAgIiRTWSAkQ00rOyIKLSAg
ICAiJFdKICRDTSs7IgotICAgICIkQ1IgJExGIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcz8g
JExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OyIK
LSAgICAiJENNKyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcyBbJFNQICRa
V107IgotICAgICIkQ0FOX0NNICRDTSogWyRTUCAkWlddOyIKLSAgICAiJENNKyBbJFNQICRaV107
IgotICAgICIkRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlG
b3JTZXFzOyIKLSAgICAiJENBTl9DTSAkQ00rOyIKLSAgICAiJENNKzsiCi0gICAgIiRDQU5fQ00g
JENNKiAkV0pjbTsiCi0gICAgIiRMQjhOb25CcmVha3MgJFdKY207IgotICAgICIkQ00rICRXSmNt
OyIKLSAgICAiJFdKY20gJENBTlRfQ007IgotICAgICIkV0pjbSAkQ0FOX0NNICRDTSo7IgotICAg
ICIkR0xjbSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FOVF9DTTsiCi0gICAgIltbJExC
OE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOyIKLSAgICAiJENNKyBHTGNt
OyIKLSAgICAiJExCOE5vbkJyZWFrcyAkQ0w7IgotICAgICIkQ0FOX0NNICRDTSogJENMOyIKLSAg
ICAiJENNKyAkQ0w7IgotICAgICIkTEI4Tm9uQnJlYWtzICRDUDsiCi0gICAgIiRDQU5fQ00gJENN
KiAkQ1A7IgotICAgICIkQ00rICRDUDsiCi0gICAgIiRMQjhOb25CcmVha3MgJEVYOyIKLSAgICAi
JENBTl9DTSAkQ00qICRFWDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAiJExCOE5vbkJyZWFrcyAk
SVM7IgotICAgICIkQ0FOX0NNICRDTSogJElTOyIKLSAgICAiJENNKyAkSVM7IgotICAgICIkTEI4
Tm9uQnJlYWtzICRTWTsiCi0gICAgIiRDQU5fQ00gJENNKiAkU1k7IgotICAgICIkQ00rICRTWTsi
Ci0gICAgIiRPUGNtICRTUCogJENBTl9DTSAkQ00qOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOVF9D
TTsiCi0gICAgIiRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsiCi0gICAgIiRRVWNtICRTUCog
JE9QY207IgotICAgICIoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsiCi0gICAgIiRCMmNtICRT
UCogJEIyY207IgotICAgICIkTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOyIKLSAgICAiJENNKyAk
UVVjbTsiCi0gICAgIiRRVWNtIC4/OyIKLSAgICAiJFFVY20gJExCMThOb25CcmVha3MgJENNKjsi
Ci0gICAgIiRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7ICIKLSAg
ICAiJEJCY20gW14kQ0JdOyIKLSAgICAiJEJCY20gJExCMjBOb25CcmVha3MgJENNKjsiCi0gICAg
IiRITGNtICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OyIKLSAgICAiJFNZY20gJEhMY207IgotICAg
ICIoJEFMY20gfCAkSExjbSkgJElOY207IgotICAgICIkQ00rICRJTmNtOyIKLSAgICAiJEVYY20g
JElOY207IgotICAgICIkSURjbSAkSU5jbTsiCi0gICAgIiRJTmNtICRJTmNtOyIKLSAgICAiJE5V
Y20gJElOY207IgotICAgICIkSURjbSAkUE9jbTsiCi0gICAgIiRBTGNtICROVWNtOyIKLSAgICAi
JEhMY20gJE5VY207IgotICAgICIkQ00rICROVWNtOyIKLSAgICAiJE5VY20gJEFMY207IgotICAg
ICIkTlVjbSAkSExjbTsiCi0gICAgIiRQUmNtICRJRGNtOyIKLSAgICAiJFBSY20gKCRBTGNtIHwg
JEhMY20pOyIKLSAgICAiJFBPY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiKCRQUmNtIHwgJFBP
Y20pPyAoJE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENM
Y20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87IgotICAgICIkSkxjbSAoJEpMY20gfCAkSlZj
bSB8ICRIMmNtIHwgJEgzY20pOyIKLSAgICAiKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNt
KTsiCi0gICAgIigkSlRjbSB8ICRIM2NtKSAkSlRjbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwg
JEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpU
Y20gfCAkSDJjbSB8ICRIM2NtKSAkUE9jbTsiCi0gICAgIiRQUmNtICgkSkxjbSB8ICRKVmNtIHwg
JEpUY20gfCAkSDJjbSB8ICRIM2NtKTsiCi0gICAgIigkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAk
SExjbSk7IgotICAgICIkQ00rICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRJU2NtICgkQUxjbSB8
ICRITGNtKTsiCi0gICAgIigkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNtOyIKLSAgICAiJENN
KyAkT1BjbTsiCi0gICAgIiRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOyIKLSNpZiBBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJFJJY20gJFJJY207IgotI2VuZGlmCi0gICAgIiRF
bW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFy
KiB1YXgxNFJldmVyc2UgPQotICAgICIhIXJldmVyc2U7IgotICAgICIkQ00rICRBTFBsdXM7Igot
ICAgICIkQ00rICRCQTsiCi0gICAgIiRDTSsgJEJCOyIKLSAgICAiJENNKyAkQjI7IgotICAgICIk
Q00rICRDTDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkQ00rICRH
TDsiCi0gICAgIiRDTSsgJEhMOyIKLSAgICAiJENNKyAkSFk7IgotICAgICIkQ00rICRIMjsiCi0g
ICAgIiRDTSsgJEgzOyIKLSAgICAiJENNKyAkSUQ7IgotICAgICIkQ00rICRJTjsiCi0gICAgIiRD
TSsgJElTOyIKLSAgICAiJENNKyAkSkw7IgotICAgICIkQ00rICRKVjsiCi0gICAgIiRDTSsgJEpU
OyIKLSAgICAiJENNKyAkTlM7IgotICAgICIkQ00rICROVTsiCi0gICAgIiRDTSsgJE9QOyIKLSAg
ICAiJENNKyAkUE87IgotICAgICIkQ00rICRQUjsiCi0gICAgIiRDTSsgJFFVOyIKLSNpZiBBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKyAkUkk7IgotI2VuZGlmCi0gICAgIiRDTSsg
JFNZOyIKLSAgICAiJENNKyAkV0o7IgotICAgICIkQ00rOyIKLSAgICAiJEFMX0ZPTExPVyAkQ00r
IC8gKFskQksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRD
TSogKFteJE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsiCi0gICAgIlskUFJdIC8gJENNKyBb
JEJLICRDUiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOyIKLSAgICAiJExCNEJyZWFrcyBbJExCNE5v
bkJyZWFrcy0kQ01dOyIKLSAgICAiJExCNEJyZWFrcyAkQ00rICRDQU5fQ007IgotICAgICIkTEYg
JENSOyIKLSAgICAiWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJFNQICRa
V10gJENNKyAkQ0FOX0NNOyIKLSAgICAiJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRF
bW9qaVZhcj8gJEVtb2ppRm9yU2VxczsiCi0gICAgIiRDTSsgJENBTl9DTTsiCi0gICAgIiRDTSog
JFdKICRDTSogJENBTl9DTTsiCi0gICAgIiRDTSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07Igot
ICAgICIkQ0FOVF9DTSAkQ00qICRXSjsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRXSjsiCi0g
ICAgIiRDTSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOyIKLSAg
ICAiJENBTlRfQ00gJENNKiAkR0w7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkR0w7IgotICAg
ICIkQ0wgJENNKyAkQ0FOX0NNOyIKLSAgICAiJENQICRDTSsgJENBTl9DTTsiCi0gICAgIiRFWCAk
Q00rICRDQU5fQ007IgotICAgICIkSVMgJENNKyAkQ0FOX0NNOyIKLSAgICAiJFNZICRDTSsgJENB
Tl9DTTsiCi0gICAgIiRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENQIFskTEI4Tm9u
QnJlYWtzLSRDTV07IgotICAgICIkRVggWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRJUyBb
JExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAg
ICJbJENMICRDUCAkRVggJElTICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAiCi0gICAgIiRDTSog
JENBTl9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAiJENBTlRfQ00gJFNQKiAkQ00qICRPUDsiCi0g
ICAgIiRBTF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAkT1A7IgotICAgICIkQUxfRk9MTE9X
X05PQ00gJENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJENNKiAkQUxfRk9MTE9XX0NNICRDTSsg
JFNQKyAkQ00qICRPUDsiCi0gICAgIiRTWSAkQ00gJFNQKyAkT1A7IgotICAgICIkQ00qICRPUCAk
U1AqICRDTSogJFFVOyIKLSAgICAiJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAg
ICAiJENNKiAkQjIgJFNQKiAkQ00qICRCMjsiCi0gICAgIiRDTSogJFFVICRDTSogJENBTl9DTTsi
Ci0gICAgIiRDTSogJFFVICRMQjE4Tm9uQnJlYWtzOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSog
JFFVOyIKLSAgICAiJENBTlRfQ00gJENNKiAkUVU7IgotICAgICIkQ00qICgkQkEgfCAkSFkgfCAk
TlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV07IgotICAgICIkQ00qIFskTEIyME5vbkJyZWFr
cy0kQ01dICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRD
TSogKCRIWSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIkQ00qICRITCAkQ00qICRTWTsiCi0gICAg
IiRDTSogJElOICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAkSU4gJENNKiAkRVg7
IgotICAgICIkQ00qICRJTiAkQ00qICRJRDsiCi0gICAgIiRDTSogJElOICRDTSogJElOOyIKLSAg
ICAiJENNKiAkSU4gJENNKiAkTlU7IgotICAgICIkQ00qICRQTyAkQ00qICRJRDsiCi0gICAgIiRD
TSogJE5VICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkg
JENNKiAkTlU7IgotICAgICIkQ00qICRJRCAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMg
fCAkSEwpICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87Igot
ICAgICIoJENNKiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8
ICRJUyB8ICRTWSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAk
UE8pKT87IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOyIKLSAg
ICAiJENNKiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOyIKLSAgICAiJENNKiAkSlQgJENN
KiAoJEgzIHwgJEpUKTsiCi0gICAgIiRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRK
ViB8ICRKTCk7IgotICAgICIkQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAk
SkwpOyIKLSAgICAiJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsi
Ci0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAi
JENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkSVM7IgotICAgICIkQ00qICRPUCAkQ00qICgkQUxQ
bHVzIHwgJEhMIHwgJE5VKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSog
JENQOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKiAkUkkgJENNKiAk
Ukk7IgotI2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyI7
Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVGb3J3YXJkID0KLSAgICAiISFzYWZlX2Zv
cndhcmQ7IgotICAgICJbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRk
aWN0aW9uYXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlv
bmFyeV07IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsiOwotCi1zdGF0aWMgY29uc3Qg
Y2hhciogdWF4MTRTYWZlUmV2ZXJzZSA9Ci0gICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAiJENN
KyBbXiRDTSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07IgotICAgICIkQ00rICRTUCAvIC47Igot
ICAgICIkU1ArICRDTSogJE9QOyIKLSAgICAiJFNQKyAkQ00qICRRVTsiCi0gICAgIiRTUCsgJENN
KiAoJENMIHwgJENQKTsiCi0gICAgIiRTUCsgJENNKiAkQjI7IgotICAgICIkQ00qICgkSFkgfCAk
QkEpICRDTSogJEhMOyIKLSAgICAiKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsiCi0gICAg
IigkQ0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7IgotICAgICIkZGljdGlvbmFyeSAk
ZGljdGlvbmFyeTsiOwotCiBzdGF0aWMgU3RyaW5nIG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVz
KExpbmVCcmVha0l0ZXJhdG9yTW9kZSBtb2RlLCBib29sIGlzQ0pLKQogewotICAgIFN0cmluZ0J1
aWxkZXIgcnVsZXNCdWlsZGVyOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRQcm9sb2d1
ZSk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1lbnRzQmVmb3JlKTsKICAg
ICBzd2l0Y2ggKG1vZGUpIHsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0Ogot
ICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3Rv
bURlZmF1bHRDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNKSyk7Ci0gICAg
ICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0
Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBM
aW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNExvb3NlOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBw
ZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLIDogdWF4MTRBc3NpZ25t
ZW50c0N1c3RvbUxvb3NlTm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBp
c0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzIDogbGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1v
ZGVVQVgxNE5vcm1hbDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0
QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFs
Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0U3RyaWN0
OgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1
c3RvbVN0cmljdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSkspOwotICAg
ICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKS1J1bGVz
OwogICAgIH0KLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNBZnRlcik7
Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEZvcndhcmQpOwotICAgIHJ1bGVzQnVpbGRl
ci5hcHBlbmQodWF4MTRSZXZlcnNlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2Fm
ZUZvcndhcmQpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZlUmV2ZXJzZSk7Ci0g
ICAgcmV0dXJuIHJ1bGVzQnVpbGRlci50b1N0cmluZygpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiAiIjsKIH0KIAogLy8gUmVjb2duaXplIEJDUDQ3IGNvbXBsaWFudCBw
cmltYXJ5IGxhbmd1YWdlIHZhbHVlcyBvZiAnemgnLCAnamEnLCAna28nCkBAIC03ODYsOSArMjUy
LDI5IEBAIFRleHRCcmVha0l0ZXJhdG9yKiBvcGVuTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgQXRv
bWljU3RyaW5nJiBsb2NhbGUsIExpbmVCcmVha0l0CiAgICAgaWYgKG1vZGUgPT0gTGluZUJyZWFr
SXRlcmF0b3JNb2RlVUFYMTQpCiAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuKFVCUktfTElO
RSwgbG9jYWxlSXNFbXB0eSA/IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpIDogbG9jYWxlLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCksIDAsIDAsICZvcGVuU3RhdHVzKTsKICAgICBlbHNlIHsKLSAg
ICAgICAgVVBhcnNlRXJyb3IgcGFyc2VTdGF0dXM7Ci0gICAgICAgIGF1dG8gcnVsZXMgPSBtYXBM
aW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7Ci0gICAgICAgIHVicmtJdGVyID0g
dWJya19vcGVuUnVsZXMoU3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCks
IHJ1bGVzLmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVzKTsKKyAgICAg
ICAgQnJlYWtpbmdSdWxlU2V0IHJ1bGVTZXQ7CisgICAgICAgIHN3aXRjaCAobW9kZSkgeworICAg
ICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0OgorICAgICAgICAgICAgcnVsZVNl
dCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENKSyA6IEJyZWFraW5nUnVsZVNldDo6
VUFYMTROb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJ
dGVyYXRvck1vZGVVQVgxNExvb3NlOgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJl
YWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3Nl
Tm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0
b3JNb2RlVUFYMTROb3JtYWw6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2lu
Z1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5v
bkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9y
TW9kZVVBWDE0U3RyaWN0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdS
dWxlU2V0OjpVQVgxNFN0cmljdENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3ROb25D
Sks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhdXRvKiBp
dGVyYXRvciA9IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChydWxlU2V0KSkKKyAgICAgICAgICAg
IHVicmtJdGVyID0gcmVpbnRlcnByZXRfY2FzdDxVQnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yKTsK
KyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKKyAg
ICAgICAgICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBp
c0NKSyk7CisgICAgICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlblJ1bGVzKFN0cmluZ1ZpZXco
cnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBydWxlcy5sZW5ndGgoKSwgMCwgMCwgJnBh
cnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7CisgICAgICAgIH0KICAgICB9CiAgICAgLy8gbG9jYWxl
IGNvbWVzIGZyb20gYSB3ZWIgcGFnZSBhbmQgaXQgY2FuIGJlIGludmFsaWQsIGxlYWRpbmcgSUNV
CiAgICAgLy8gdG8gZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1
bHQgbG9jYWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVy
YXRvci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCmluZGV4IGQ5
MDMyMTVhZTQxMzdlNGMzYTllYTM1YjNkMDI1YmY1MmU0NTE4ZWMuLmQ4MjFiMzE2NzkxOWI0NDI5
ZmE1NGMxZTViM2Y0NjdjNTIwNjEzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0
ZXJhdG9yLmgKQEAgLTM4LDYgKzM4LDMwIEBAIGVudW0gTGluZUJyZWFrSXRlcmF0b3JNb2RlIHsK
ICAgICBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNFN0cmljdCwKIH07CiAKK2VudW0gY2xhc3Mg
QnJlYWtpbmdSdWxlU2V0IHsKKyAgICBDdXJzb3JNb3ZlbWVudCwKKyAgICBVQVgxNENKSywKKyAg
ICBVQVgxNE5vbkNKSywKKyAgICBVQVgxNExvb3NlQ0pLLAorICAgIFVBWDE0TG9vc2VOb25DSkss
CisgICAgVUFYMTROb3JtYWxDSkssCisgICAgVUFYMTROb3JtYWxOb25DSkssCisgICAgVUFYMTRT
dHJpY3RDSkssCisgICAgVUFYMTRTdHJpY3ROb25DSksKK307CisKK2V4dGVybiBjb25zdCBjaGFy
KiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJy
ZWFrSXRlcmF0b3JVQVgxNENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VOb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CisKK1RleHRCcmVha0l0ZXJhdG9y
KiBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0KTsKKwogLy8gVGhpcyBp
cyBzaW1pbGFyIHRvIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBpbiBtb3N0IGNhc2VzLCBidXQg
aXMgc3ViamVjdCB0bwogLy8gcGxhdGZvcm0gVUkgY29udmVudGlvbnMuIE9uZSBub3RhYmxlIGV4
YW1wbGUgd2hlcmUgdGhpcyBjYW4gYmUgZGlmZmVyZW50CiAvLyBmcm9tIGNoYXJhY3RlciBicmVh
ayBpdGVyYXRvciBpcyBUaGFpIHByZXBlbmQgY2hhcmFjdGVycywgc2VlIGJ1ZyAyNDM0Mi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJu
YWxJQ1VNYWMubW0gYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvcklu
dGVybmFsSUNVTWFjLm1tCmluZGV4IGJlZjVkYWE2NDI4ODgyMWUyMGYyNjI4YzY4NTVlZThlODhh
Mzg5MmMuLjJhZWNmMDllODI1NDRjNjZiN2QxYzFlNWFhYWM2NGY1ZmZmMzAyYmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VN
YWMubW0KKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVU1hYy5tbQpAQCAtMjEsMTIgKzIxLDEyMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKIAorI2luY2x1ZGUgIlRl
eHRCcmVha0l0ZXJhdG9yLmgiCisKKyNpZiBkZWZpbmVkKFVfU0hPV19DUExVU1BMVVNfQVBJKQor
I3VuZGVmIFVfU0hPV19DUExVU1BMVVNfQVBJCisjZW5kaWYKKyNkZWZpbmUgVV9TSE9XX0NQTFVT
UExVU19BUEkgMQorCisjaW5jbHVkZSA8dW5pY29kZS9yYmJpLmg+CisjaW5jbHVkZSA8dW5pY29k
ZS91ZGF0YS5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAorQGludGVyZmFjZSBX
VEZCdW5kbGVGaW5kZXIgOiBOU09iamVjdAorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV1RGQnVu
ZGxlRmluZGVyCitAZW5kCisKIG5hbWVzcGFjZSBXVEYgewogCiBzdGF0aWMgY29uc3QgaW50IG1h
eExvY2FsZVN0cmluZ0xlbmd0aCA9IDMyOwogCitzdHJ1Y3QgUnVsZUNhY2hlIHsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4gaXRlcmF0b3I7CisgICAgYm9vbCBm
YWlsZWQgeyBmYWxzZSB9OworfTsKKworVGV4dEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9y
Rm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQgcnVsZVNldCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8UnVsZUNhY2hlPiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0Q0pLSXRlcmF0b3I7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTROb25DSktJdGVy
YXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgx
NExvb3NlQ0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4g
bGluZUJyZWFrVUFYMTRMb29zZU5vbkNKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0Tm9ybWFsQ0pLSXRlcmF0b3I7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTROb3JtYWxOb25DSktJ
dGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtV
QVgxNFN0cmljdENKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2Fj
aGU+IGxpbmVCcmVha1VBWDE0U3RyaWN0Tm9uQ0pLSXRlcmF0b3I7CisKKyAgICBOU1N0cmluZyAq
ZmlsZU5hbWVCYXNlOworICAgIFJ1bGVDYWNoZSogY2FjaGUgPSBudWxscHRyOworCisgICAgc3dp
dGNoIChydWxlU2V0KSB7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50
OgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyI7
CisgICAgICAgIGNhY2hlID0gJmN1cnNvck1vdmVtZW50SXRlcmF0b3IuZ2V0KCk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENKSzoKKyAgICAgICAgZmls
ZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLIjsKKyAgICAgICAgY2FjaGUg
PSAmbGluZUJyZWFrVUFYMTRDSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2Ug
PSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksiOworICAgICAgICBjYWNoZSA9ICZsaW5l
QnJlYWtVQVgxNE5vbkNKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZUNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0g
QCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksiOworICAgICAgICBjYWNoZSA9ICZsaW5l
QnJlYWtVQVgxNExvb3NlQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJh
c2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSyI7CisgICAgICAgIGNhY2hl
ID0gJmxpbmVCcmVha1VBWDE0TG9vc2VOb25DSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLOgorICAgICAgICBm
aWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksiOworICAgICAg
ICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNE5vcm1hbENKS0l0ZXJhdG9yLmdldCgpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks6Cisg
ICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNK
SyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0Tm9ybWFsTm9uQ0pLSXRlcmF0b3Iu
Z2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0
cmljdENKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTRTdHJpY3RDSktJdGVy
YXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVB
WDE0U3RyaWN0Tm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNFN0
cmljdE5vbkNKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBB
U1NFUlQoY2FjaGUpOworCisgICAgaWYgKGNhY2hlLT5mYWlsZWQpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgaWYgKCFjYWNoZS0+aXRlcmF0b3IpIHsKKyAgICAgICAgTlNCdW5kbGUg
KmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV1RGQnVuZGxlRmluZGVyIGNsYXNz
XV07CisgICAgICAgIE5TU3RyaW5nICpwYXRoID0gW2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6Zmls
ZU5hbWVCYXNlIG9mVHlwZTpAImJyayIgaW5EaXJlY3Rvcnk6QCJCcmVha2luZ1J1bGVzIl07Cisg
ICAgICAgIGlmICghcGF0aCkgeworICAgICAgICAgICAgY2FjaGUtPmZhaWxlZCA9IHRydWU7Cisg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIE5TU3RyaW5n
ICpkaXJlY3RvcnkgPSBbcGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOwor
ICAgICAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAgICAgICAgTG9j
YWxVRGF0YU1lbW9yeVBvaW50ZXIgZGF0YSh1ZGF0YV9vcGVuKFtkaXJlY3RvcnkgVVRGOFN0cmlu
Z10sICJicmsiLCBbZmlsZU5hbWVCYXNlIFVURjhTdHJpbmddLCAmZXJyb3JDb2RlKSk7CisgICAg
ICAgIGlmIChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKSB7CisgICAgICAgICAgICBjYWNoZS0+
ZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisK
KyAgICAgICAgY2FjaGUtPml0ZXJhdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxSdWxlQmFzZWRCcmVh
a0l0ZXJhdG9yPihkYXRhLm9ycGhhbigpLCBlcnJvckNvZGUpOworICAgICAgICBpZiAoZXJyb3JD
b2RlICE9IFVfWkVST19FUlJPUikgeworICAgICAgICAgICAgY2FjaGUtPmZhaWxlZCA9IHRydWU7
CisgICAgICAgICAgICBjYWNoZS0+aXRlcmF0b3IgPSBudWxscHRyOworICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxUZXh0QnJlYWtJdGVyYXRvcio+KHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJhc2VkQnJlYWtJ
dGVyYXRvcj4oKmNhY2hlLT5pdGVyYXRvcikucmVsZWFzZSgpKTsKK30KKwogc3RhdGljIGlubGlu
ZSBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHRleHRCcmVha0xvY2FsZVByZWZlcmVuY2UoKQogewog
ICAgIFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gbG9jYWxlID0gYWRvcHRDRihDRlByZWZl
cmVuY2VzQ29weVZhbHVlKENGU1RSKCJBcHBsZVRleHRCcmVha0xvY2FsZSIpLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybU1hYy5jbWFrZQppbmRleCA3NTUyY2Q3NWNkMTVjOGJmNjFhZjdkMmEwZWE5ZmI5MTdmZTA3
ZTM5Li43Yzc3NWI3YjgxYmZmMDNhNzUyMzc0ZDZjMTM0YzQ2NzZkNjQwODhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybU1hYy5jbWFrZQpAQCAtNTg3LDggKzU4Nyw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVf
U09VUkNFUwogICAgIHBsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KICAgICBwbGF0Zm9ybS9t
YWMvRXZlbnRMb29wTWFjLm1tCiAgICAgcGxhdGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0KLSAg
ICBwbGF0Zm9ybS9tYWMvSElER2FtZXBhZC5jcHAKLSAgICBwbGF0Zm9ybS9tYWMvSElER2FtZXBh
ZFByb3ZpZGVyLmNwcAorICAgICNwbGF0Zm9ybS9tYWMvSElER2FtZXBhZC5jcHAKKyAgICAjcGxh
dGZvcm0vbWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAKICAgICBwbGF0Zm9ybS9tYWMvS2V5RXZl
bnRNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMubW0KICAgICBwbGF0Zm9ybS9t
YWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21h
a2UvV2ViS2l0RlMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKaW5kZXggMjlh
MDk2OTAzOGZhYTc0NGUxYThjNThmMzU2YWQwNzNmMDA1MjViZC4uODFmNTRhNTZhZDY5NTNkN2Ix
ZTIwYzg4ZmE4NWJiZGRkMWYwN2U4YyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdEZT
LmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQpAQCAtMjQsNiArMjQsNyBA
QCBpZiAoTk9UIFRPT0xTX0RJUikKIGVuZGlmICgpCiAKIHNldChERVJJVkVEX1NPVVJDRVNfRElS
ICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzIikKK3NldChERVJJVkVEX1NPVVJD
RVNfV1RGX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XVEYiKQogc2V0
KERFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0v
RGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJD
T1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJDb3JlIikKIHNl
dChERVJJVkVEX1NPVVJDRVNfV0VCS0lUTEVHQUNZX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9E
ZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3kiKQpAQCAtMzIsNiArMzMsOCBAQCBzZXQoREVSSVZF
RF9TT1VSQ0VTX1dFQktJVDJfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVIgIiR7Q01B
S0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9yVUkiKQogCiBmaWxlKE1B
S0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0pCitmaWxl
KE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9KQorZmlsZShNQUtFX0RJ
UkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzKQogZmlsZShN
QUtFX0RJUkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lKQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BF
Q1RPUlVJX0RJUn0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285607</attachid>
            <date>2016-08-08 16:56:47 -0700</date>
            <delta_ts>2016-08-08 17:02:19 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160808165515.patch</filename>
            <type>text/plain</type>
            <size>475908</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NzcxNGM0YjVjNmE4NTg2MzVjMTQ0ZmIyNDIxOGQ4NDU0ZWU3MTA1Li4wYzE0ZjAwOGMwM2E3YmYy
M2EwZWJjMWRhYjJkM2MzYjc4ZDljMmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDggIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IGhhc0lubGluZVN0b3JhZ2UoKSBpbiBKU0ZpbmFsT2Jq
ZWN0Ojp2aXNpdENoaWxkcmVuKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyNmIyZWJmZmUyY2FkYTM3Y2NkYWUzY2VkZjZl
ZmM4NTNiNjE2YjEuLjgwMGYyN2IwMTk1NzViNTkwYjliOTM5OGY1YjAwY2ZhZGEzODliYzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgtMDggIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZp
ZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMg
YXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkZWQuCisgICAgICAgICog
d3RmL2dlbmJyazogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dDogQWRkZWQuCisgICAgICAg
ICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9u
Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDogQWRk
ZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwOgorICAgICAgICAo
V1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RGOjpjdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAg
KiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAgICAqIHd0Zi90ZXh0L21hYy9U
ZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAgICAgICAoV1RGOjppdGVyYXRv
ckZvclJ1bGVTZXQpOgorCiAyMDE2LTA4LTA2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgV1RGIG5lZWRzIGEgdmFyaWFudCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBlMzBkYzllNGQwMjAzNjIwYjE0Y2EyMjhiNGViMmJiNGZk
ZWNlZjBkLi4xYWJlNDdjMjQ2NGRhODk4ZmFkNTMwYWNjMzI2MzdjOGJkYTYyYzdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOSw2ICsxMTA5LDcgQEAKIAkJMTRGOTc0NDcx
MzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhDODUzRTAwREExQzY3IC8qIEhl
YXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjhENEE3
MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNGNzM3NzE3MUNBNkZCMDBDOUJC
MUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgKi87IH07CisJCTFDRDE4
NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyog
QnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi87IH07
CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1QTUxNTJCQUFBNzAw
OTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2MkQ4NUI2MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQxQzBENjUwRjAwNkFDQjYxIC8q
IEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07CkBAIC0zMjcyLDYgKzMyNzMs
NyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFzZS54Y2NvbmZpZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYgLyogSmF2YVNjcmlwdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQxQkNGRiAvKiBKYXZhU2NyaXB0
Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Q29yZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMg
LyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7IHBhdGggPSAuLi9XVEYvQnJl
YWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTQxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0
aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0aCA9IGIzL2Fpci9BaXJGaXhQ
YXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NTQzOCw2ICs1NDQwLDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAwNzY5RTU0IC8qIERlcml2ZWQg
U291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
MUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJMEY2MTgz
MzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAogCQkJCTBGNjE4MzM0MUM0NUYz
QjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywKIAkJCQkwRjYxODMzNTFDNDVG
M0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAgLTg0NTcsNiArODQ2MCw3IEBA
CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQTUz
RjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8sCisJ
CQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2JhODA0
MDZiNjg3ODcyY2RjMmUzZTgxNmJlYjAwNDNhOTM5YzI3MC4uMGMzOGEyNzE2ZTI3MjdmYjljOTdi
MGIyM2FiNDY3N2I0OWZjZDFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC03LDYgKzcsMTggQEAKIAlvYmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhBZ2dy
ZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVy
aXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OworCQkJYnVp
bGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMwMENDN0RFQyAvKiBCdWlsZCBj
b25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2Vz
IiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAv
KiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0g
KAorCQkJCUMyQkE1NDNCMUQ1NzJCRUIwMDBBMzMzMiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICov
LAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXByb2R1Y3ROYW1lID0g
IkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyog
Q29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKIAkJ
CWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyogQnVp
bGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RGIEhl
YWRlcnMiICovOwpAQCAtMzEyLDYgKzMyNCwyMCBAQAogCQlBOEE0NzQ4NzE1MUE4MjVCMDA0MTIz
RkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCAq
LzsgfTsKIAkJQThBNDc0OEMxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDc0OEIxNTFBODI2NDAwNDEy
M0ZGIC8qIGNvbmZpZy5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1M0U4MDA2NUM5NjkgLyogRmVh
dHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovOyB9Owor
CQlDMkJBNTQyNTFENTcyNUM0MDAwQTMzMzIgLyogZ2VuYnJrLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1NDE4MUQ1NzI1OTAwMDBBMzMzMiAv
KiBnZW5icmsuY3BwICovOyB9OworCQlDMkJBNTQzMzFENTcyOTM4MDAwQTMzMzIgLyogdW9wdGlv
bnMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1
NDMyMUQ1NzI5MzgwMDBBMzMzMiAvKiB1b3B0aW9ucy5jICovOyB9OworCQlDMkJBNTQzNjFENTcy
OUZGMDAwQTMzMzIgLyogdW5ld2RhdGEuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyQkE1NDM1MUQ1NzI5RkYwMDBBMzMzMiAvKiB1bmV3ZGF0YS5jICov
OyB9OworCQlDMkJBNTQzOTFENTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1NDM4MUQ1NzJBRjgwMDBB
MzMzMiAvKiBmaWxlc3RybS5jICovOyB9OworCQlDMkJBNTQzRTFENTg2QUY0MDAwQTMzMzIgLyog
bGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICov
OyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
Sy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VEMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U0MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJD
QTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3
RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3Bw
ICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RjExRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTgxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICov
OyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkzNjE5QzY1RUI0MDBC
MkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMzMCAv
KiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87IH07CiAJ
CUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAv
KiBNZWRpYVRpbWUuaCAqLzsgfTsKQEAgLTM0NCw2ICszNzAsMTMgQEAKIAkJCXJlbW90ZUdsb2Jh
bElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdU
RjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Q
cm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5l
clBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsK
KwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1
NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsK
IAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9
IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9
IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTM1MSw4
ICszODQsMjcgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNjVBRkExNkYxNjMwQjk3NzAw
M0Q3MjNDOwogCQkJcmVtb3RlSW5mbyA9ICJDb3B5IEhlYWRlcnMiOwogCQl9OworCQlDMkJBNTQz
QTFENTcyQkVCMDAwQTMzMzIgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNh
ID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gNUQyNDdCNTkx
NDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsK
KwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMyOworCQkJ
cmVtb3RlSW5mbyA9IGdlbmJyazsKKwkJfTsKIC8qIEVuZCBQQlhDb250YWluZXJJdGVtUHJveHkg
c2VjdGlvbiAqLwogCisvKiBCZWdpbiBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8K
KwkJQzJCQTU0MUIxRDU3MjVCNDAwMEEzMzMyIC8qIENvcHlGaWxlcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWENvcHlGaWxlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OworCQkJZHN0UGF0aCA9IC91c3Ivc2hhcmUvbWFuL21hbjEvOworCQkJZHN0U3ViZm9sZGVyU3Bl
YyA9IDA7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMTsKKwkJfTsKKy8qIEVuZCBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rp
b24gKi8KKwogLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAJCTBGMEQ4NUIz
MTcyMzRDQjEwMDMzODIxMCAvKiBOb0xvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9Mb2NrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkI2NkE0MTdCNkI0RjcwMEE3QUUzRiAvKiBE
ZWZlcnJhYmxlUmVmQ291bnRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWZlcnJhYmxlUmVmQ291bnRl
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDM2LDYgKzQ4OCwxOCBAQAogCQkx
QzE4MUM4RDFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzhFMUQzMDdBQjgwMEY1RkExNiAvKiBV
VGV4dFByb3ZpZGVyVVRGMTYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRl
eHRQcm92aWRlclVURjE2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzk1
MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVU1hYy5tbTsgcGF0aCA9IG1hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNV
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NDFENTU5QTBEMDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDQjRGQjk1MUQ1NTlBNjkwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTYxRDU1
OUE5MDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Q0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlBMUQ1
NTlCMjMwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFr
SXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRl
cmF0b3JFcGlsb2d1ZS50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhB
MUQ1NThBRDMwMENDN0RFQyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IG5hbWUgPSBEZXJpdmVk
U291cmNlcy5tYWtlOyBwYXRoID0gd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHVzZXNUYWJzID0gMTsgfTsKKwkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVD
IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OTMx
RDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRo
cmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGhy
ZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODkxNTI1MDJEQTAw
NTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQ29yZVRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjE0N0Iw
ODE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTgsNiArNzIyLDMzIEBACiAJCUE4QTQ3MzdC
MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdURlRocmVhZERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQThBNDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUMyQkE1NDE4MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gZ2VuYnJrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzJCQTU0MUQxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsg
aW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gZ2VuYnJrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OworCQlDMkJBNTQyNjFENTcyNjdDMDAwQTMzMzIgLyogdW9wdGlvbnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdW9wdGlvbnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MjcxRDU3MjY4OTAwMEEzMzMyIC8qIHVuZXdkYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVuZXdkYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDI4MUQ1NzI2QjAwMDBBMzMzMiAvKiB1Y21uZGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1Y21uZGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyOTFENTcyNkJDMDAwQTMzMzIgLyogcmJiaWRhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcmJiaWRhdGEuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MkExRDU3MjZDNTAwMEEzMzMyIC8qIGNtZW1vcnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY21lbW9yeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyQjFENTcyNkU4MDAwQTMzMzIgLyogdW1hcGZpbGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdW1hcGZpbGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MkMxRDU3MjcwOTAwMEEzMzMyIC8qIHB1dGlsaW1w
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHB1dGlsaW1wLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDJEMUQ1NzI3MjQwMDBBMzMzMiAvKiB1ZGF0YXN3
cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1ZGF0YXN3cC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyRTFENTcyNzNCMDAwQTMzMzIgLyogdW11dGV4
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVtdXRleC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyRjFENTcyNzRDMDAwQTMzMzIgLyogdXRyaWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdXRyaWUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MzIxRDU3MjkzODAwMEEzMzMyIC8qIHVvcHRpb25zLmMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHVvcHRpb25zLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUMyQkE1NDM0MUQ1NzI5QTkwMDBBMzMzMiAvKiBjc3RyaW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNzdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MzUxRDU3MjlGRjAwMEEzMzMyIC8qIHVuZXdkYXRhLmMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHVuZXdkYXRhLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUMyQkE1NDM3MUQ1NzJBMkQwMDBBMzMzMiAvKiBmaWxlc3RybS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBmaWxlc3RybS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDMkJBNTQzODFENTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gZmlsZXN0cm0uYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0M0YxRDU4NzRFNjAwMEEzMzMyIC8qIEdlbmVyYXRlQnJl
YWtpbmdSdWxlU3RyaW5ncy5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IEdlbmVyYXRlQnJlYWtpbmdS
dWxlU3RyaW5ncy5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTAxRDU1
Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcDsgcGF0aCA9IEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDMkNBMzdFNDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzRGOEE5MzYxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9wd2F0Y2guaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGlt
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQjE1ODU3RDAzMDBCNUJDMzAg
LyogTWVkaWFUaW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVGlt
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjg4LDcgKzc3OSw3IEBACiAJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJMTQ0N0FFQzYx
OEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8s
Ci0JCQkJMTQ0N0FFQ0IxOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJh
bWV3b3JrcyAqLywKKwkJCQlDMkJBNTQzRTFENTg2QUY0MDAwQTMzMzIgLyogbGliaWN1Y29yZS5k
eWxpYiBpbiBGcmFtZXdvcmtzICovLAogCQkJCTE0NDdBRUM3MThGQ0U1ODAwMEIzRDdGRiAvKiBs
aWJXVEYuYSBpbiBGcmFtZXdvcmtzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtNzAxLDYgKzc5MiwxNCBAQAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQlDMkJBNTQxQTFENTcy
NUI0MDAwQTMzMzIgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NC
dWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0g
KAorCQkJCTE0NDdBRUNCMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZy
YW1ld29ya3MgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CisJCX07CiAvKiBFbmQgUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwog
CiAvKiBCZWdpbiBQQlhHcm91cCBzZWN0aW9uICovCkBAIC03MjUsNiArODI0LDI1IEBACiAJCQlw
YXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUNEMTg3OTEx
RDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDNGMUQ1ODc0RTYwMDBBMzMzMiAvKiBHZW5l
cmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8sCisJCQkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3
REVDIC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8sCisJCQkJMUNEMTg3OTMx
RDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovLAorCQkJ
CTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4
dCAqLywKKwkJCQkxQ0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTcxRDU1OUFBODAw
RjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgKi8sCisJCQkJ
MUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksudHh0ICovLAorCQkJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZF
MzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8sCisJCQkJMUNCNEZC
OUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksu
dHh0ICovLAorCQkJCTFDQjRGQjlDMUQ1NTlCNjcwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
ckVwaWxvZ3VlLnR4dCAqLywKKwkJCSk7CisJCQlwYXRoID0gQnJlYWtpbmdSdWxlczsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2OEQxQiAv
KiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNzQ2
LDEwICs4NjQsMTIgQEAKIAkJNUQyNDdCNTcxNDY4OUI4NjAwRTc4Qjc2ID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMg
LyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKIAkJCQk1RDI0N0I2RDE0Njg5QzQ3MDBFNzhCNzYg
LyogQ29uZmlndXJhdGlvbnMgKi8sCiAJCQkJMTQwMjJGM0YxOEY1QzNFNTAwN0ZGMEVCIC8qIExp
YnJhcmllcyAqLywKIAkJCQk1RDI0N0I2MzE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvZHVjdHMgKi8s
CiAJCQkJNUQyNDdCNzYxNDY4OUQ3NjAwRTc4Qjc2IC8qIFNvdXJjZSAqLywKKwkJCQlDMkNBMzdE
RjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0NDdBRUM1MThG
Q0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKIAkJCQkxNDQ3QUVDQTE4
RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLywKIAkJCSk7CkBAIC03NjAsNiAr
ODgwLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTE0NDdBRUJFMThGQ0U1NjkwMEIzRDdGRiAv
KiBsaWJtYm1hbGxvYy5keWxpYiAqLywKIAkJCQk1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyog
bGliV1RGLmEgKi8sCisJCQkJQzJCQTU0MUQxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLywK
IAkJCSk7CiAJCQluYW1lID0gUHJvZHVjdHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMTA4Myw2ICsxMjA0LDggQEAKIAkJQThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDE3
MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsgKi8sCisJCQkJMUNEMTg3OTExRDU1OThFMTAwQ0M3
REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJMUMxODFDODgxRDMwN0FCODAwRjVGQTE2IC8q
IGljdSAqLywKIAkJCQlBNUJBMTVGNjE4MjQzNTlFMDBBODJFNjkgLyogY2YgKi8sCiAJCQkJQTVC
QTE1RjExODI0MzM5RjAwQTgyRTY5IC8qIG1hYyAqLywKQEAgLTExNTgsNiArMTI4MSw0NyBAQAog
CQkJcGF0aCA9IGljdTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUMyQkE1
NDE3MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDE4MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsu
Y3BwICovLAorCQkJCUMyQkE1NDMyMUQ1NzI5MzgwMDBBMzMzMiAvKiB1b3B0aW9ucy5jICovLAor
CQkJCUMyQkE1NDM1MUQ1NzI5RkYwMDBBMzMzMiAvKiB1bmV3ZGF0YS5jICovLAorCQkJCUMyQkE1
NDM4MUQ1NzJBRjgwMDBBMzMzMiAvKiBmaWxlc3RybS5jICovLAorCQkJCUMyQkE1NDI2MUQ1NzI2
N0MwMDBBMzMzMiAvKiB1b3B0aW9ucy5oICovLAorCQkJCUMyQkE1NDI3MUQ1NzI2ODkwMDBBMzMz
MiAvKiB1bmV3ZGF0YS5oICovLAorCQkJCUMyQkE1NDI4MUQ1NzI2QjAwMDBBMzMzMiAvKiB1Y21u
ZGF0YS5oICovLAorCQkJCUMyQkE1NDI5MUQ1NzI2QkMwMDBBMzMzMiAvKiByYmJpZGF0YS5oICov
LAorCQkJCUMyQkE1NDJBMUQ1NzI2QzUwMDBBMzMzMiAvKiBjbWVtb3J5LmggKi8sCisJCQkJQzJC
QTU0MkIxRDU3MjZFODAwMEEzMzMyIC8qIHVtYXBmaWxlLmggKi8sCisJCQkJQzJCQTU0MkMxRDU3
MjcwOTAwMEEzMzMyIC8qIHB1dGlsaW1wLmggKi8sCisJCQkJQzJCQTU0MkQxRDU3MjcyNDAwMEEz
MzMyIC8qIHVkYXRhc3dwLmggKi8sCisJCQkJQzJCQTU0MkUxRDU3MjczQjAwMEEzMzMyIC8qIHVt
dXRleC5oICovLAorCQkJCUMyQkE1NDJGMUQ1NzI3NEMwMDBBMzMzMiAvKiB1dHJpZS5oICovLAor
CQkJCUMyQkE1NDM0MUQ1NzI5QTkwMDBBMzMzMiAvKiBjc3RyaW5nLmggKi8sCisJCQkJQzJCQTU0
MzcxRDU3MkEyRDAwMEEzMzMyIC8qIGZpbGVzdHJtLmggKi8sCisJCQkpOworCQkJbmFtZSA9IGdl
bmJyazsKKwkJCXBhdGggPSBCcmVha2luZ1J1bGVzL2dlbmJyazsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CisJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNv
dXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMy
Q0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
ICovLAorCQkJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Q0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNB
MzdFNDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAg
Ki8sCisJCQkJQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksuY3BwICovLAorCQkJCUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNzFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8sCisJ
CQkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksuY3BwICovLAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJ
CXBhdGggPSBEZXJpdmVkU291cmNlcy9XVEY7CisJCQlzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOworCQl9OwogCQlDRTQ2NTE2QzE5REIxRkI0MDAzRUNBMDUgLyogY29jb2EgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTQ3MCw2ICsxNjM0LDcg
QEAKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTFD
RDE4Nzg4MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTY1
QUZBMjhFMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsK
IAkJCW5hbWUgPSBXVEY7CkBAIC0xNDc3LDYgKzE2NDIsMjMgQEAKIAkJCXByb2R1Y3RSZWZlcmVu
Y2UgPSA1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi87CiAJCQlwcm9kdWN0
VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLmxpYnJhcnkuc3RhdGljIjsKIAkJfTsKKwkJ
QzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLyA9IHsKKwkJCWlzYSA9IFBCWE5h
dGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBDMkJBNTQyMTFENTcyNUI0
MDAwQTMzMzIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQg
ImdlbmJyayIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQlDMkJBNTQxOTFENTcyNUI0MDAw
QTMzMzIgLyogU291cmNlcyAqLywKKwkJCQlDMkJBNTQxQTFENTcyNUI0MDAwQTMzMzIgLyogRnJh
bWV3b3JrcyAqLywKKwkJCQlDMkJBNTQxQjFENTcyNUI0MDAwQTMzMzIgLyogQ29weUZpbGVzICov
LAorCQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAor
CQkJKTsKKwkJCW5hbWUgPSBnZW5icms7CisJCQlwcm9kdWN0TmFtZSA9IGdlbmJyazsKKwkJCXBy
b2R1Y3RSZWZlcmVuY2UgPSBDMkJBNTQxRDFENTcyNUI0MDAwQTMzMzIgLyogZ2VuYnJrICovOwor
CQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS50b29sIjsKKwkJfTsKIC8q
IEVuZCBQQlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhQcm9qZWN0IHNl
Y3Rpb24gKi8KQEAgLTE0ODUsNiArMTY2NywxMSBAQAogCQkJYXR0cmlidXRlcyA9IHsKIAkJCQlM
YXN0U3dpZnRVcGRhdGVDaGVjayA9IDA3MDA7CiAJCQkJTGFzdFVwZ3JhZGVDaGVjayA9IDA3MDA7
CisJCQkJVGFyZ2V0QXR0cmlidXRlcyA9IHsKKwkJCQkJQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMy
ID0geworCQkJCQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gNy4zLjE7CisJCQkJCX07CisJCQkJ
fTsKIAkJCX07CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNUQyNDdCNUMxNDY4OUI4NjAw
RTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV1RGIiAq
LzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDMuMiI7CkBAIC0xNTAwLDEyICsx
Njg3LDI4IEBACiAJCQl0YXJnZXRzID0gKAogCQkJCTVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NiAv
KiBXVEYgKi8sCiAJCQkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRl
cnMgKi8sCisJCQkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAq
LywKIAkJCQkxNDQ3QUVCRDE4RkNFNTY5MDBCM0Q3RkYgLyogbWJtYWxsb2MgKi8sCisJCQkJQzJC
QTU0MUMxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQg
UEJYUHJvamVjdCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFz
ZSBzZWN0aW9uICovCisJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJp
dmVkIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJ
aW5wdXRQYXRocyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNl
cyI7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlw
dCA9ICJta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZc
IlxuY2QgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcblxuL2Jp
bi9sbiAtc2ZoIFwiJHtTUkNST09UfVwiIFdURlxuZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsg
ISAtZCBCcmVha2luZ1J1bGVzIF07IHRoZW5cbiAgICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxu
XG5pZiBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdOyB0aGVu
XG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0wXG5lbHNlXG4gICAgZXhwb3J0
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0xXG5maVxuXG5pZiBbIFwiJHtBQ1RJT059XCIgPSBc
ImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtBQ1RJT059XCIg
PSBcImluc3RhbGxoZHJzXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGFwaVwiIF07IHRo
ZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwiV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5t
YWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCBTREtST09UPVwiJHtT
REtST09UfVwiXG5maSI7CisJCX07CiAJCTY1QUZBMTcwMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5
IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE1MzYsNiArMTczOSw4IEBACiAJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQThBNDcz
ODYxNTFBODI1QjAwNDEyM0ZGIC8qIEFzc2VydGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDc0MzUxNTFBODI1QjAwNDEyM0ZGIC8qIEF0b21pY1N0cmluZy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3MEVDQTYwRDFCMDI0MjY4MDA0NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUJBMTVGQTE4MjQzNUE2MDBBODJFNjkgLyogQXRvbWlj
U3RyaW5nSW1wbENGLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU2Myw2ICsxNzY4LDcgQEAKIAkJ
CQlBOEE0NzNCMDE1MUE4MjVCMDA0MTIzRkYgLyogZG91YmxlLWNvbnZlcnNpb24uY2MgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzNCQTE1MUE4MjVCMDA0MTIzRkYgLyogZHRvYS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzNCMzE1MUE4MjVCMDA0MTIzRkYgLyogZmFzdC1kdG9hLmNjIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4ODVFMEYxODQ1QUVB
OTAwRjFFM0ZBIC8qIEZhc3RCaXRWZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDcz
QzMxNTFBODI1QjAwNDEyM0ZGIC8qIEZhc3RNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RENFRTIyMDExQ0VBNzU1MTAwMEMyMzk2IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0gaW4gU291
cmNlcyAqLywKQEAgLTE1NzgsNiArMTc4NCw3IEBACiAJCQkJQThBNDczRTkxNTFBODI1QjAwNDEy
M0ZGIC8qIE1ENS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDU0OTdBQzE1ODU3RDAzMDBCNUJD
MzAgLyogTWVkaWFUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0VDMTUxQTgyNUIw
MDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0Yw
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y0MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNv
cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y3MTUxQTgyNUIwMDQxMjNGRiAvKiBP
U0FsbG9jYXRvclBvc2l4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y5MTUxQTgyNUIw
MDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1ODUsNiAr
MTc5Miw3IEBACiAJCQkJMUMxODFDOTMxRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJV
VEYxNi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkZGMTlEQzFCQjMzNEVCMDA4ODZEOTEgLyog
UGFyYWxsZWxIZWxwZXJQb29sLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGODI0QTY4MUI3NDQz
QTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VF
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGOUQzMzYyMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVh
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDNGNjExRjE1NjVGMEY5MDBEQjUxNEEgLyogUkFN
U2l6ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyog
UmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTYxOSw5ICsxODI3LDEzIEBACiAJ
CQkJQThBNDc0NEExNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZGluZy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzQ0RTE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkaW5nUHRocmVhZHMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0NjkxNTFBODI1QjAwNDEyM0ZGIC8qIFVURjguY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRkE0N0M4
QTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkU0NDc5QzFCN0FBQTAzMDA5NDk4RUIgLyogV29yZExvY2suY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURD
RUUyMjAzMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNN
YWMubW0gaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzOTFB
OTYyNDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0QTBB
RDNEMUE5NjI1M0MwMDUzNkRGNiAvKiBXb3JrUXVldWVDb2NvYS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEE0NzQ0NTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMTYyOSw2ICsxODQxLDE3IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CisJCUMyQkE1NDE5MUQ1NzI1QjQwMDBBMzMzMiAv
KiBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CisJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJQzJCQTU0MzMxRDU3
MjkzODAwMEEzMzMyIC8qIHVvcHRpb25zLmMgaW4gU291cmNlcyAqLywKKwkJCQlDMkJBNTQzOTFE
NTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyBpbiBTb3VyY2VzICovLAorCQkJCUMyQkE1NDI1
MUQ1NzI1QzQwMDBBMzMzMiAvKiBnZW5icmsuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJCQTU0
MzYxRDU3MjlGRjAwMEEzMzMyIC8qIHVuZXdkYXRhLmMgaW4gU291cmNlcyAqLywKKwkJCSk7CisJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIC8qIEVuZCBQ
QlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFRhcmdldERlcGVu
ZGVuY3kgc2VjdGlvbiAqLwpAQCAtMTYzNywxMSArMTg2MCwyMSBAQAogCQkJdGFyZ2V0ID0gNUQy
NDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FF
QzMxOEZDRTU3MDAwQjNEN0ZGIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJ
MUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJ
CQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1
QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3
ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJ
NjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3
NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi87CiAJCQl0YXJnZXRQcm94eSA9IDY1QUZB
MjhEMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJ
CUMyQkE1NDNCMUQ1NzJCRUIwMDBBMzMzMiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewor
CQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IEMyQkE1NDFDMUQ1NzI1
QjQwMDBBMzMzMiAvKiBnZW5icmsgKi87CisJCQl0YXJnZXRQcm94eSA9IEMyQkE1NDNBMUQ1NzJC
RUIwMDBBMzMzMiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CisJCX07CiAvKiBFbmQgUEJY
VGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFhDQnVpbGRDb25maWd1cmF0
aW9uIHNlY3Rpb24gKi8KQEAgLTE2NjYsNiArMTg5OSwzMCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQ
cm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8g
PSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9u
UmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2Nv
bmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFS
R0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTFDRDE4Nzg1MUQ1
NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcw
MEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0g
eworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9
IFJlbGVhc2U7CisJCX07CisJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9u
ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJh
dGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2Uu
eGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIk
KFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVE
MjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRD
b25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0
Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOwpAQCAtMTczNiw2ICsx
OTkzLDIwNCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQlDMkJBNTQy
MjFENTcyNUI0MDAwQTMzMzIgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmln
dXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0
NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3Mg
PSB7CisJCQkJQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87CisJCQkJQ0xBTkdfQU5BTFla
RVJfTk9OTlVMTCA9IFlFUzsKKwkJCQlDTEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251
KysweCI7CisJCQkJQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKKwkJCQlDTEFOR19FTkFC
TEVfTU9EVUxFUyA9IFlFUzsKKwkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZRVM7CisJCQkJ
Q0xBTkdfV0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9DT05TVEFO
VF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRElSRUNUX09CSkNfSVNBX1VTQUdF
ID0gWUVTX0VSUk9SOworCQkJCUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKKwkJCQlDTEFO
R19XQVJOX0VOVU1fQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0lOVF9DT05WRVJT
SU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVTX0VSUk9SOwor
CQkJCUNMQU5HX1dBUk5fVU5SRUFDSEFCTEVfQ09ERSA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX19E
VVBMSUNBVEVfTUVUSE9EX01BVENIID0gWUVTOworCQkJCUNPREVfU0lHTl9JREVOVElUWSA9ICIt
IjsKKwkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87CisJCQkJREVCVUdfSU5GT1JNQVRJT05fRk9S
TUFUID0gZHdhcmY7CisJCQkJRU5BQkxFX1NUUklDVF9PQkpDX01TR1NFTkQgPSBZRVM7CisJCQkJ
RU5BQkxFX1RFU1RBQklMSVRZID0gWUVTOworCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0g
Z251OTk7CisJCQkJR0NDX0RZTkFNSUNfTk9fUElDID0gTk87CisJCQkJR0NDX05PX0NPTU1PTl9C
TE9DS1MgPSBZRVM7CisJCQkJR0NDX09QVElNSVpBVElPTl9MRVZFTCA9IDA7CisJCQkJR0NDX1BS
RVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKKwkJCQkJIkRFQlVHPTEiLAorCQkJCQkiVV9TSE9X
X0NQTFVTUExVU19BUEk9MSIsCisJCQkJCSIkKGluaGVyaXRlZCkiLAorCQkJCSk7CisJCQkJR0ND
X1dBUk5fNjRfVE9fMzJfQklUX0NPTlZFUlNJT04gPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9N
SVNTSU5HX1BST1RPVFlQRVMgPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9
IFlFU19FUlJPUjsKKwkJCQlHQ0NfV0FSTl9TSUdOX0NPTVBBUkUgPSBOTzsKKwkJCQlHQ0NfV0FS
Tl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURf
QVVUT1MgPSBZRVNfQUdHUkVTU0lWRTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZ
RVM7CisJCQkJR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU1BQ09TWF9ERVBM
T1lNRU5UX1RBUkdFVCA9IDEwLjExOworCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IFlFUzsK
KwkJCQlPTkxZX0FDVElWRV9BUkNIID0gWUVTOworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdF
VF9OQU1FKSI7CisJCQkJV0FSTklOR19DRkxBR1MgPSAoCisJCQkJCSItV2FsbCIsCisJCQkJCSIt
V2V4dHJhIiwKKwkJCQkJIi1XY2FzdC1xdWFsIiwKKwkJCQkJIi1XY2hhci1zdWJzY3JpcHRzIiwK
KwkJCQkJIi1XZXh0cmEtdG9rZW5zIiwKKwkJCQkJIi1XZm9ybWF0PTIiLAorCQkJCQkiLVdpbml0
LXNlbGYiLAorCQkJCQkiLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUiLAorCQkJCQkiLVdwYWNr
ZWQiLAorCQkJCQkiLVdwb2ludGVyLWFyaXRoIiwKKwkJCQkJIi1XcmVkdW5kYW50LWRlY2xzIiwK
KwkJCQkJIi1XdW5kZWYiLAorCQkJCQkiLVd3cml0ZS1zdHJpbmdzIiwKKwkJCQkJIi1XZXhpdC10
aW1lLWRlc3RydWN0b3JzIiwKKwkJCQkJIi1XZ2xvYmFsLWNvbnN0cnVjdG9ycyIsCisJCQkJCSIt
V3RhdXRvbG9naWNhbC1jb21wYXJlIiwKKwkJCQkJIi1XaW1wbGljaXQtZmFsbHRocm91Z2giLAor
CQkJCQkiLVduby1zaWduLWNvbXBhcmUiLAorCQkJCSk7CisJCQl9OworCQkJbmFtZSA9IERlYnVn
OworCQl9OworCQlDMkJBNTQyMzFENTcyNUI0MDAwQTMzMzIgLyogUmVsZWFzZSAqLyA9IHsKKwkJ
CWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVu
Y2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICov
OworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlBTFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMgPSBO
TzsKKwkJCQlDTEFOR19BTkFMWVpFUl9OT05OVUxMID0gWUVTOworCQkJCUNMQU5HX0NYWF9MQU5H
VUFHRV9TVEFOREFSRCA9ICJnbnUrKzB4IjsKKwkJCQlDTEFOR19DWFhfTElCUkFSWSA9ICJsaWJj
KysiOworCQkJCUNMQU5HX0VOQUJMRV9NT0RVTEVTID0gWUVTOworCQkJCUNMQU5HX0VOQUJMRV9P
QkpDX0FSQyA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0JPT0xfQ09OVkVSU0lPTiA9IFlFUzsKKwkJ
CQlDTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9E
SVJFQ1RfT0JKQ19JU0FfVVNBR0UgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9FTVBUWV9C
T0RZID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRU5VTV9DT05WRVJTSU9OID0gWUVTOworCQkJCUNM
QU5HX1dBUk5fSU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9PQkpDX1JPT1Rf
Q0xBU1MgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9VTlJFQUNIQUJMRV9DT0RFID0gWUVT
OworCQkJCUNMQU5HX1dBUk5fX0RVUExJQ0FURV9NRVRIT0RfTUFUQ0ggPSBZRVM7CisJCQkJQ09E
RV9TSUdOX0lERU5USVRZID0gIi0iOworCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBOTzsKKwkJCQlE
RUJVR19JTkZPUk1BVElPTl9GT1JNQVQgPSAiZHdhcmYtd2l0aC1kc3ltIjsKKwkJCQlFTkFCTEVf
TlNfQVNTRVJUSU9OUyA9IE5POworCQkJCUVOQUJMRV9TVFJJQ1RfT0JKQ19NU0dTRU5EID0gWUVT
OworCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251OTk7CisJCQkJR0NDX05PX0NPTU1P
Tl9CTE9DS1MgPSBZRVM7CisJCQkJR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKKwkJ
CQkJIlVfU0hPV19DUExVU1BMVVNfQVBJPTEiLAorCQkJCQkiJChERUJVR19ERUZJTkVTKSIsCisJ
CQkJCSIkKGluaGVyaXRlZCkiLAorCQkJCSk7CisJCQkJR0NDX1dBUk5fNjRfVE9fMzJfQklUX0NP
TlZFUlNJT04gPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9NSVNTSU5HX1BST1RPVFlQRVMgPSBO
TzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9IFlFU19FUlJPUjsKKwkJCQlHQ0Nf
V0FSTl9TSUdOX0NPTVBBUkUgPSBOTzsKKwkJCQlHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9S
ID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVNfQUdHUkVTU0lW
RTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5V
U0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjEx
OworCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IE5POworCQkJCVBST0RVQ1RfTkFNRSA9ICIk
KFRBUkdFVF9OQU1FKSI7CisJCQkJV0FSTklOR19DRkxBR1MgPSAoCisJCQkJCSItV2FsbCIsCisJ
CQkJCSItV2V4dHJhIiwKKwkJCQkJIi1XY2FzdC1xdWFsIiwKKwkJCQkJIi1XY2hhci1zdWJzY3Jp
cHRzIiwKKwkJCQkJIi1XZXh0cmEtdG9rZW5zIiwKKwkJCQkJIi1XZm9ybWF0PTIiLAorCQkJCQki
LVdpbml0LXNlbGYiLAorCQkJCQkiLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUiLAorCQkJCQki
LVdwYWNrZWQiLAorCQkJCQkiLVdwb2ludGVyLWFyaXRoIiwKKwkJCQkJIi1XcmVkdW5kYW50LWRl
Y2xzIiwKKwkJCQkJIi1XdW5kZWYiLAorCQkJCQkiLVd3cml0ZS1zdHJpbmdzIiwKKwkJCQkJIi1X
ZXhpdC10aW1lLWRlc3RydWN0b3JzIiwKKwkJCQkJIi1XZ2xvYmFsLWNvbnN0cnVjdG9ycyIsCisJ
CQkJCSItV3RhdXRvbG9naWNhbC1jb21wYXJlIiwKKwkJCQkJIi1XaW1wbGljaXQtZmFsbHRocm91
Z2giLAorCQkJCQkiLVduby1zaWduLWNvbXBhcmUiLAorCQkJCSk7CisJCQl9OworCQkJbmFtZSA9
IFJlbGVhc2U7CisJCX07CisJCUMyQkE1NDI0MUQ1NzI1QjQwMDBBMzMzMiAvKiBQcm9kdWN0aW9u
ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJh
dGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2Uu
eGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUFMV0FZU19TRUFSQ0hfVVNF
Ul9QQVRIUyA9IE5POworCQkJCUNMQU5HX0FOQUxZWkVSX05PTk5VTEwgPSBZRVM7CisJCQkJQ0xB
TkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJEID0gImdudSsrMHgiOworCQkJCUNMQU5HX0NYWF9MSUJS
QVJZID0gImxpYmMrKyI7CisJCQkJQ0xBTkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisJCQkJQ0xB
TkdfRU5BQkxFX09CSkNfQVJDID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQk9PTF9DT05WRVJTSU9O
ID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQ09OU1RBTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlD
TEFOR19XQVJOX0RJUkVDVF9PQkpDX0lTQV9VU0FHRSA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19X
QVJOX0VNUFRZX0JPRFkgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9FTlVNX0NPTlZFUlNJT04gPSBZ
RVM7CisJCQkJQ0xBTkdfV0FSTl9JTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJO
X09CSkNfUk9PVF9DTEFTUyA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX1VOUkVBQ0hBQkxF
X0NPREUgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9fRFVQTElDQVRFX01FVEhPRF9NQVRDSCA9IFlF
UzsKKwkJCQlDT0RFX1NJR05fSURFTlRJVFkgPSAiLSI7CisJCQkJQ09QWV9QSEFTRV9TVFJJUCA9
IE5POworCQkJCURFQlVHX0lORk9STUFUSU9OX0ZPUk1BVCA9ICJkd2FyZi13aXRoLWRzeW0iOwor
CQkJCUVOQUJMRV9OU19BU1NFUlRJT05TID0gTk87CisJCQkJRU5BQkxFX1NUUklDVF9PQkpDX01T
R1NFTkQgPSBZRVM7CisJCQkJR0NDX0NfTEFOR1VBR0VfU1RBTkRBUkQgPSBnbnU5OTsKKwkJCQlH
Q0NfTk9fQ09NTU9OX0JMT0NLUyA9IFlFUzsKKwkJCQlHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJ
T05TID0gKAorCQkJCQkiVV9TSE9XX0NQTFVTUExVU19BUEk9MSIsCisJCQkJCSIkKERFQlVHX0RF
RklORVMpIiwKKwkJCQkJIiQoaW5oZXJpdGVkKSIsCisJCQkJKTsKKwkJCQlHQ0NfV0FSTl82NF9U
T18zMl9CSVRfQ09OVkVSU0lPTiA9IE5POworCQkJCUdDQ19XQVJOX0FCT1VUX01JU1NJTkdfUFJP
VE9UWVBFUyA9IE5POworCQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9S
OworCQkJCUdDQ19XQVJOX1NJR05fQ09NUEFSRSA9IE5POworCQkJCUdDQ19XQVJOX1VOREVDTEFS
RURfU0VMRUNUT1IgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlF
U19BR0dSRVNTSVZFOworCQkJCUdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKKwkJCQlH
Q0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUID0gMTAuMTE7CisJCQkJTVRMX0VOQUJMRV9ERUJVR19JTkZPID0gTk87CisJCQkJUFJPRFVD
VF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCQlXQVJOSU5HX0NGTEFHUyA9ICgKKwkJCQkJ
Ii1XYWxsIiwKKwkJCQkJIi1XZXh0cmEiLAorCQkJCQkiLVdjYXN0LXF1YWwiLAorCQkJCQkiLVdj
aGFyLXN1YnNjcmlwdHMiLAorCQkJCQkiLVdleHRyYS10b2tlbnMiLAorCQkJCQkiLVdmb3JtYXQ9
MiIsCisJCQkJCSItV2luaXQtc2VsZiIsCisJCQkJCSItV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0
ZSIsCisJCQkJCSItV3BhY2tlZCIsCisJCQkJCSItV3BvaW50ZXItYXJpdGgiLAorCQkJCQkiLVdy
ZWR1bmRhbnQtZGVjbHMiLAorCQkJCQkiLVd1bmRlZiIsCisJCQkJCSItV3dyaXRlLXN0cmluZ3Mi
LAorCQkJCQkiLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMiLAorCQkJCQkiLVdnbG9iYWwtY29uc3Ry
dWN0b3JzIiwKKwkJCQkJIi1XdGF1dG9sb2dpY2FsLWNvbXBhcmUiLAorCQkJCQkiLVdpbXBsaWNp
dC1mYWxsdGhyb3VnaCIsCisJCQkJCSItV25vLXNpZ24tY29tcGFyZSIsCisJCQkJKTsKKwkJCX07
CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIC8qIEVuZCBYQ0J1aWxkQ29uZmlndXJhdGlv
biBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFhDQ29uZmlndXJhdGlvbkxpc3Qgc2VjdGlvbiAqLwpA
QCAtMTc0OSw2ICsyMjA0LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9
IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkx
Q0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQ
QlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0Nv
bmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkxQ0QxODc4
NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3
REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1
Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwor
CQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdC
NUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJv
amVjdCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWls
ZENvbmZpZ3VyYXRpb25zID0gKApAQCAtMTc3OSw2ICsyMjQ0LDE2IEBACiAJCQlkZWZhdWx0Q29u
ZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQ
cm9kdWN0aW9uOwogCQl9OworCQlDMkJBNTQyMTFENTcyNUI0MDAwQTMzMzIgLyogQnVpbGQgY29u
ZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgImdlbmJyayIgKi8gPSB7CisJCQlp
c2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJ
CQlDMkJBNTQyMjFENTcyNUI0MDAwQTMzMzIgLyogRGVidWcgKi8sCisJCQkJQzJCQTU0MjMxRDU3
MjVCNDAwMEEzMzMyIC8qIFJlbGVhc2UgKi8sCisJCQkJQzJCQTU0MjQxRDU3MjVCNDAwMEEzMzMy
IC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2li
bGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsK
IC8qIEVuZCBYQ0NvbmZpZ3VyYXRpb25MaXN0IHNlY3Rpb24gKi8KIAl9OwogCXJvb3RPYmplY3Qg
PSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBvYmplY3QgKi87CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jya2l0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvYnJraXRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhYTVlNTUyNzk2MDkwZWFlYmNkN2NlN2I3ZDI3
NWFhOGIzNzc1YjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jy
a2l0ZXIuaApAQCAtMCwwICsxLDY1NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
ICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgYnJraXRlci5oCisqCisqIE1vZGlmaWNh
dGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9u
CisqICAgMDIvMTgvOTcgICAgYWxpdSAgICAgICAgQWRkZWQgdHlwZWRlZiBmb3IgVGV4dENvdW50
LiAgTWFkZSBET05FIGNvbnN0LgorKiAgIDA1LzA3Lzk3ICAgIGFsaXUgICAgICAgIEZpeGVkIERM
TCBkZWNsYXJhdGlvbi4KKyogICAwNy8wOS85NyAgICBqZml0eiAgICAgICBSZW5hbWVkIEJyZWFr
SXRlcmF0b3IgYW5kIGludGVyZmFjZSBzeW5jZWQgd2l0aCBKREsKKyogICAwOC8xMS85OCAgICBo
ZWxlbmEgICAgICBTeW5jLXVwIEpESzEuMi4KKyogICAwMS8xMy8yMDAwICBoZWxlbmEgICAgICBB
ZGRlZCBVRXJyb3JDb2RlIHBhcmFtZXRlciB0byBjcmVhdGVYWFhJbnN0YW5jZSBtZXRob2RzLgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgQlJLSVRFUl9ICisjZGVmaW5l
IEJSS0lURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworLyoqCisgKiBcZmls
ZQorICogXGJyaWVmIEMrKyBBUEk6IEJyZWFrIEl0ZXJhdG9yLgorICovCisKKyNpZiBVQ09ORklH
X05PX0JSRUFLX0lURVJBVElPTgorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKgorICogQWxsb3cg
dGhlIGRlY2xhcmF0aW9uIG9mIEFQSXMgd2l0aCBwb2ludGVycyB0byBCcmVha0l0ZXJhdG9yCisg
KiBldmVuIHdoZW4gYnJlYWsgaXRlcmF0aW9uIGlzIHJlbW92ZWQgZnJvbSB0aGUgYnVpbGQuCisg
Ki8KK2NsYXNzIEJyZWFrSXRlcmF0b3I7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZWxzZQorCisj
aW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIK
KyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS9sb2NpZC5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdWJyay5oIgorI2luY2x1ZGUgInVuaWNvZGUvc3RyZW51bS5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdXRleHQuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VtaXNjLmgi
CisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogVGhlIEJyZWFrSXRlcmF0b3IgY2xhc3Mg
aW1wbGVtZW50cyBtZXRob2RzIGZvciBmaW5kaW5nIHRoZSBsb2NhdGlvbgorICogb2YgYm91bmRh
cmllcyBpbiB0ZXh0LiBCcmVha0l0ZXJhdG9yIGlzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MuCisg
KiBJbnN0YW5jZXMgb2YgQnJlYWtJdGVyYXRvciBtYWludGFpbiBhIGN1cnJlbnQgcG9zaXRpb24g
YW5kIHNjYW4gb3ZlcgorICogdGV4dCByZXR1cm5pbmcgdGhlIGluZGV4IG9mIGNoYXJhY3RlcnMg
d2hlcmUgYm91bmRhcmllcyBvY2N1ci4KKyAqIDxwPgorICogTGluZSBib3VuZGFyeSBhbmFseXNp
cyBkZXRlcm1pbmVzIHdoZXJlIGEgdGV4dCBzdHJpbmcgY2FuIGJlIGJyb2tlbgorICogd2hlbiBs
aW5lLXdyYXBwaW5nLiBUaGUgbWVjaGFuaXNtIGNvcnJlY3RseSBoYW5kbGVzIHB1bmN0dWF0aW9u
IGFuZAorICogaHlwaGVuYXRlZCB3b3Jkcy4KKyAqIDxwPgorICogU2VudGVuY2UgYm91bmRhcnkg
YW5hbHlzaXMgYWxsb3dzIHNlbGVjdGlvbiB3aXRoIGNvcnJlY3QKKyAqIGludGVycHJldGF0aW9u
IG9mIHBlcmlvZHMgd2l0aGluIG51bWJlcnMgYW5kIGFiYnJldmlhdGlvbnMsIGFuZAorICogdHJh
aWxpbmcgcHVuY3R1YXRpb24gbWFya3Mgc3VjaCBhcyBxdW90YXRpb24gbWFya3MgYW5kIHBhcmVu
dGhlc2VzLgorICogPHA+CisgKiBXb3JkIGJvdW5kYXJ5IGFuYWx5c2lzIGlzIHVzZWQgYnkgc2Vh
cmNoIGFuZCByZXBsYWNlIGZ1bmN0aW9ucywgYXMKKyAqIHdlbGwgYXMgd2l0aGluIHRleHQgZWRp
dGluZyBhcHBsaWNhdGlvbnMgdGhhdCBhbGxvdyB0aGUgdXNlciB0bworICogc2VsZWN0IHdvcmRz
IHdpdGggYSBkb3VibGUgY2xpY2suIFdvcmQgc2VsZWN0aW9uIHByb3ZpZGVzIGNvcnJlY3QKKyAq
IGludGVycHJldGF0aW9uIG9mIHB1bmN0dWF0aW9uIG1hcmtzIHdpdGhpbiBhbmQgZm9sbG93aW5n
CisgKiB3b3Jkcy4gQ2hhcmFjdGVycyB0aGF0IGFyZSBub3QgcGFydCBvZiBhIHdvcmQsIHN1Y2gg
YXMgc3ltYm9scyBvcgorICogcHVuY3R1YXRpb24gbWFya3MsIGhhdmUgd29yZC1icmVha3Mgb24g
Ym90aCBzaWRlcy4KKyAqIDxwPgorICogQ2hhcmFjdGVyIGJvdW5kYXJ5IGFuYWx5c2lzIGFsbG93
cyB1c2VycyB0byBpbnRlcmFjdCB3aXRoCisgKiBjaGFyYWN0ZXJzIGFzIHRoZXkgZXhwZWN0IHRv
LCBmb3IgZXhhbXBsZSwgd2hlbiBtb3ZpbmcgdGhlIGN1cnNvcgorICogdGhyb3VnaCBhIHRleHQg
c3RyaW5nLiBDaGFyYWN0ZXIgYm91bmRhcnkgYW5hbHlzaXMgcHJvdmlkZXMgY29ycmVjdAorICog
bmF2aWdhdGlvbiBvZiB0aHJvdWdoIGNoYXJhY3RlciBzdHJpbmdzLCByZWdhcmRsZXNzIG9mIGhv
dyB0aGUKKyAqIGNoYXJhY3RlciBpcyBzdG9yZWQuICBGb3IgZXhhbXBsZSwgYW4gYWNjZW50ZWQg
Y2hhcmFjdGVyIG1pZ2h0IGJlCisgKiBzdG9yZWQgYXMgYSBiYXNlIGNoYXJhY3RlciBhbmQgYSBk
aWFjcml0aWNhbCBtYXJrLiBXaGF0IHVzZXJzCisgKiBjb25zaWRlciB0byBiZSBhIGNoYXJhY3Rl
ciBjYW4gZGlmZmVyIGJldHdlZW4gbGFuZ3VhZ2VzLgorICogPHA+CisgKiBUaGUgdGV4dCBib3Vu
ZGFyeSBwb3NpdGlvbnMgYXJlIGZvdW5kIGFjY29yZGluZyB0byB0aGUgcnVsZXMKKyAqIGRlc2Ny
aWJlZCBpbiBVbmljb2RlIFN0YW5kYXJkIEFubmV4ICMyOSwgVGV4dCBCb3VuZGFyaWVzLCBhbmQK
KyAqIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXggIzE0LCBMaW5lIEJyZWFraW5nIFByb3BlcnRpZXMu
ICBUaGVzZQorICogYXJlIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9y
dHMvdHIxNC8gYW5kCisgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIyOS8uCisg
KiA8cD4KKyAqIEluIGFkZGl0aW9uIHRvIHRoZSBDKysgQVBJIGRlZmluZWQgaW4gdGhpcyBoZWFk
ZXIgZmlsZSwgYQorICogcGxhaW4gQyBBUEkgd2l0aCBlcXVpdmFsZW50IGZ1bmN0aW9uYWxpdHkg
aXMgZGVmaW5lZCBpbiB0aGUKKyAqIGZpbGUgdWJyay5oCisgKiA8cD4KKyAqIENvZGUgc25pcHBl
dHMgaWxsdXN0cmF0aW5nIHRoZSB1c2Ugb2YgdGhlIEJyZWFrIEl0ZXJhdG9yIEFQSXMKKyAqIGFy
ZSBhdmFpbGFibGUgaW4gdGhlIElDVSBVc2VyIEd1aWRlLAorICogaHR0cDovL2ljdS1wcm9qZWN0
Lm9yZy91c2VyZ3VpZGUvYm91bmRhcnlBbmFseXNpcy5odG1sCisgKiBhbmQgaW4gdGhlIHNhbXBs
ZSBwcm9ncmFtIGljdS9zb3VyY2Uvc2FtcGxlcy9icmVhay9icmVhay5jcHAKKyAqCisgKi8KK2Ns
YXNzIFVfQ09NTU9OX0FQSSBCcmVha0l0ZXJhdG9yIDogcHVibGljIFVPYmplY3QgeworcHVibGlj
OgorICAgIC8qKgorICAgICAqICBkZXN0cnVjdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgfkJyZWFrSXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAq
IFJldHVybiB0cnVlIGlmIGFub3RoZXIgb2JqZWN0IGlzIHNlbWFudGljYWxseSBlcXVhbCB0byB0
aGlzCisgICAgICogb25lLiBUaGUgb3RoZXIgb2JqZWN0IHNob3VsZCBiZSBhbiBpbnN0YW5jZSBv
ZiB0aGUgc2FtZSBzdWJjbGFzcyBvZgorICAgICAqIEJyZWFrSXRlcmF0b3IuIE9iamVjdHMgb2Yg
ZGlmZmVyZW50IHN1YmNsYXNzZXMgYXJlIGNvbnNpZGVyZWQKKyAgICAgKiB1bmVxdWFsLgorICAg
ICAqIDxQPgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgQnJlYWtJdGVyYXRvciBpcyBhdCB0
aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUKKyAgICAgKiBzYW1lIHRleHQsIGFuZCBpcyB0aGUgc2Ft
ZSBjbGFzcyBhbmQgdHlwZSAod29yZCwgbGluZSwgZXRjLikgb2YKKyAgICAgKiBCcmVha0l0ZXJh
dG9yLCBhcyB0aGUgYXJndW1lbnQuICBUZXh0IGlzIGNvbnNpZGVyZWQgdGhlIHNhbWUgaWYKKyAg
ICAgKiBpdCBjb250YWlucyB0aGUgc2FtZSBjaGFyYWN0ZXJzLCBpdCBuZWVkIG5vdCBiZSB0aGUg
c2FtZQorICAgICAqIG9iamVjdCwgYW5kIHN0eWxlcyBhcmUgbm90IGNvbnNpZGVyZWQuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09
KGNvbnN0IEJyZWFrSXRlcmF0b3ImKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHRoZSBjb21wbGVtZW50IG9mIHRoZSByZXN1bHQgb2Ygb3BlcmF0b3I9PQorICAgICAqIEBw
YXJhbSByaHMgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGluZXF1YWxpdHkK
KyAgICAgKiBAcmV0dXJuIHRoZSBjb21wbGVtZW50IG9mIHRoZSByZXN1bHQgb2Ygb3BlcmF0b3I9
PQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29sIG9wZXJhdG9yIT0o
Y29uc3QgQnJlYWtJdGVyYXRvciYgcmhzKSBjb25zdCB7IHJldHVybiAhb3BlcmF0b3I9PShyaHMp
OyB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBwb2x5bW9ycGhpYyBjb3B5IG9mIHRoaXMg
b2JqZWN0LiAgVGhpcyBpcyBhbiBhYnN0cmFjdAorICAgICAqIG1ldGhvZCB3aGljaCBzdWJjbGFz
c2VzIGltcGxlbWVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIEJyZWFrSXRlcmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAg
ICAqIFJldHVybiBhIHBvbHltb3JwaGljIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4gRGlmZmVy
ZW50IHN1YmNsYXNzZXMKKyAgICAgKiB3aWxsIHJldHVybiBkaXN0aW5jdCB1bmVxdWFsIHZhbHVl
cy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lE
IGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFJl
dHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBDaGFyYWN0ZXJJdGVy
YXRvciYgZ2V0VGV4dCh2b2lkKSBjb25zdCA9IDA7CisKKworICAgIC8qKgorICAgICAgKiAgR2V0
IGEgVVRleHQgZm9yIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAgKiAgVGhlIHJldHVy
bmVkIFVUZXh0IGlzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgVVRleHQgdXNlZCBpbnRlcm5hbGx5
CisgICAgICAqICBieSB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24uICBJdCBjYW4g
c2FmZWx5IGJlIHVzZWQgdG8KKyAgICAgICogIGFjY2VzcyB0aGUgdGV4dCB3aXRob3V0IGltcGFj
dGluZyBhbnkgYnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucywKKyAgICAgICogIGJ1dCB0aGUgdW5k
ZXJseWluZyB0ZXh0IGl0c2VsZiBtdXN0IG5vdCBiZSBhbHRlcmVkLgorICAgICAgKgorICAgICAg
KiBAcGFyYW0gZmlsbEluIEEgVVRleHQgdG8gYmUgZmlsbGVkIGluLiAgSWYgTlVMTCwgYSBuZXcg
VVRleHQgd2lsbCBiZQorICAgICAgKiAgICAgICAgICAgYWxsb2NhdGVkIHRvIGhvbGQgdGhlIHJl
c3VsdC4KKyAgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMuCisg
ICAgICAqIEByZXR1cm4gICBUaGUgY3VycmVudCBVVGV4dCBmb3IgdGhpcyBicmVhayBpdGVyYXRv
ci4gIElmIGFuIGlucHV0CisgICAgICAqICAgICAgICAgICBVVGV4dCB3YXMgcHJvdmlkZWQsIGl0
IHdpbGwgYWx3YXlzIGJlIHJldHVybmVkLgorICAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAg
ICovCisgICAgIHZpcnR1YWwgVVRleHQgKmdldFVUZXh0KFVUZXh0ICpmaWxsSW4sIFVFcnJvckNv
ZGUgJnN0YXR1cykgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogQ2hhbmdlIHRoZSB0ZXh0
IG92ZXIgd2hpY2ggdGhpcyBvcGVyYXRlcy4gVGhlIHRleHQgYm91bmRhcnkgaXMKKyAgICAgKiBy
ZXNldCB0byB0aGUgc3RhcnQuCisgICAgICogQHBhcmFtIHRleHQgVGhlIFVuaWNvZGVTdHJpbmcg
dXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCB2b2lkICBzZXRUZXh0KGNvbnN0IFVuaWNvZGVTdHJpbmcgJnRleHQpID0g
MDsKKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBicmVhayBpdGVyYXRvciB0byBvcGVyYXRl
IG92ZXIgdGhlIHRleHQgcmVwcmVzZW50ZWQgYnkKKyAgICAgKiB0aGUgVVRleHQuICBUaGUgaXRl
cmF0b3IgcG9zaXRpb24gaXMgcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqCisgICAgICogVGhp
cyBmdW5jdGlvbiBtYWtlcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIHN1cHBsaWVkIFVUZXh0LiAg
VGhpcyBtZWFucworICAgICAqIHRoYXQgdGhlIGNhbGxlciBpcyBmcmVlIHRvIGltbWVkaWF0ZWx5
IGNsb3NlIG9yIG90aGVyd2lzZSByZXVzZSB0aGUKKyAgICAgKiBVdGV4dCB0aGF0IHdhcyBwYXNz
ZWQgYXMgYSBwYXJhbWV0ZXIsIGJ1dCB0aGF0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmCisg
ICAgICogbXVzdCBub3QgYmUgYWx0ZXJlZCB3aGlsZSBiZWluZyByZWZlcmVuY2VkIGJ5IHRoZSBi
cmVhayBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIEFsbCBpbmRleCBwb3NpdGlvbnMgcmV0dXJu
ZWQgYnkgYnJlYWsgaXRlcmF0b3IgZnVuY3Rpb25zIGFyZQorICAgICAqIG5hdGl2ZSBpbmRpY2Vz
IGZyb20gdGhlIFVUZXh0LiBGb3IgZXhhbXBsZSwgd2hlbiBicmVha2luZyBVVEYtOAorICAgICAq
IGVuY29kZWQgdGV4dCwgdGhlIGJyZWFrIHBvc2l0aW9ucyByZXR1cm5lZCBieSBuZXh0KCksIHBy
ZXZpb3VzKCksIGV0Yy4KKyAgICAgKiB3aWxsIGJlIFVURi04IHN0cmluZyBpbmRpY2VzLCBub3Qg
VVRGLTE2IHBvc2l0aW9ucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBVVGV4dCB1
c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFu
eSBlcnJvciBjb2Rlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIHZvaWQgIHNldFRleHQoVVRleHQgKnRleHQsIFVFcnJvckNvZGUgJnN0YXR1cykgPSAwOwor
CisgICAgLyoqCisgICAgICogQ2hhbmdlIHRoZSB0ZXh0IG92ZXIgd2hpY2ggdGhpcyBvcGVyYXRl
cy4gVGhlIHRleHQgYm91bmRhcnkgaXMKKyAgICAgKiByZXNldCB0byB0aGUgc3RhcnQuCisgICAg
ICogTm90ZSB0aGF0IHNldFRleHQoVVRleHQgKikgcHJvdmlkZXMgc2ltaWxhciBmdW5jdGlvbmFs
aXR5IHRvIHRoaXMgZnVuY3Rpb24sCisgICAgICogYW5kIGlzIG1vcmUgZWZmaWNpZW50LgorICAg
ICAqIEBwYXJhbSBpdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgdXNlZCB0byBjaGFuZ2UgdGhlIHRl
eHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBh
ZG9wdFRleHQoQ2hhcmFjdGVySXRlcmF0b3IqIGl0KSA9IDA7CisKKyAgICBlbnVtIHsKKyAgICAg
ICAgLyoqCisgICAgICAgICAqIERPTkUgaXMgcmV0dXJuZWQgYnkgcHJldmlvdXMoKSBhbmQgbmV4
dCgpIGFmdGVyIGFsbCB2YWxpZAorICAgICAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1
cm5lZC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBE
T05FID0gKGludDMyX3QpLTEKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3Vy
cmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgcG9z
aXRpb24gemVyby4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZzZXQgb2YgdGhlIGJlZ2lubmluZyBv
ZiB0aGUgdGV4dCwgemVyby4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgZmlyc3Qodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRo
ZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgaW5kZXggaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBs
YXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCBiZWluZyBzY2FubmVkLgorICAgICAqIEByZXR1cm4g
VGhlIGluZGV4IGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRl
eHQgYmVpbmcgc2Nhbm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgbGFzdCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhl
IGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIGN1cnJlbnQg
Ym91bmRhcnkuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBwcmV2
aW91cyB0ZXh0IGJvdW5kYXJ5IG9yIERPTkUgaWYgYWxsCisgICAgICogYm91bmRhcmllcyBoYXZl
IGJlZW4gcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBpbnQzMl90IHByZXZpb3VzKHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIEFkdmFu
Y2UgdGhlIGl0ZXJhdG9yIHRvIHRoZSBib3VuZGFyeSBmb2xsb3dpbmcgdGhlIGN1cnJlbnQgYm91
bmRhcnkuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBuZXh0IHRl
eHQgYm91bmRhcnkgb3IgRE9ORSBpZiBhbGwKKyAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiBy
ZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGlu
dDMyX3QgbmV4dCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gY2hhcmFjdGVy
IGluZGV4IG9mIHRoZSBjdXJyZW50IGludGVyYXRvciBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQu
CisgICAgICogQHJldHVybiBUaGUgYm91bmRhcnkgbW9zdCByZWNlbnRseSByZXR1cm5lZC4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgY3VycmVu
dCh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlIHRoZSBpdGVyYXRv
ciB0byB0aGUgZmlyc3QgYm91bmRhcnkgZm9sbG93aW5nIHRoZSBzcGVjaWZpZWQgb2Zmc2V0Lgor
ICAgICAqIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhbHdheXMgZ3JlYXRlciB0aGFuIHRoZSBvZmZz
ZXQgb3IKKyAgICAgKiB0aGUgdmFsdWUgQnJlYWtJdGVyYXRvci5ET05FCisgICAgICogQHBhcmFt
IG9mZnNldCB0aGUgb2Zmc2V0IHRvIGJlZ2luIHNjYW5uaW5nLgorICAgICAqIEByZXR1cm4gVGhl
IGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmb2xsb3dpbmcoaW50MzJf
dCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRp
b24gdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHByZWNlZGluZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4K
KyAgICAgKiBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgYWx3YXlzIHNtYWxsZXIgdGhhbiB0aGUgb2Zm
c2V0IG9yCisgICAgICogdGhlIHZhbHVlIEJyZWFrSXRlcmF0b3IuRE9ORQorICAgICAqIEBwYXJh
bSBvZmZzZXQgdGhlIG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KKyAgICAgKiBAcmV0dXJuIFRo
ZSBmaXJzdCBib3VuZGFyeSBiZWZvcmUgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHByZWNlZGluZyhpbnQz
Ml90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHNw
ZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogQXMgYSBzaWRl
IGVmZmVjdCwgdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdG9yIGlzIHNldAorICAg
ICAqIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBhdCBvciBmb2xsb3dpbmcgdGhlIHNw
ZWNpZmllZCBvZmZzZXQuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNr
LgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9u
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNC
b3VuZGFyeShpbnQzMl90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBp
dGVyYXRvciBwb3NpdGlvbiB0byB0aGUgbnRoIGJvdW5kYXJ5IGZyb20gdGhlIGN1cnJlbnQgYm91
bmRhcnkKKyAgICAgKiBAcGFyYW0gbiB0aGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgdG8gbW92ZSBi
eS4gIEEgdmFsdWUgb2YgMAorICAgICAqIGRvZXMgbm90aGluZy4gIE5lZ2F0aXZlIHZhbHVlcyBt
b3ZlIHRvIHByZXZpb3VzIGJvdW5kYXJpZXMKKyAgICAgKiBhbmQgcG9zaXRpdmUgdmFsdWVzIG1v
dmUgdG8gbGF0ZXIgYm91bmRhcmllcy4KKyAgICAgKiBAcmV0dXJuIFRoZSBuZXcgaXRlcmF0b3Ig
cG9zaXRpb24sIG9yCisgICAgICogRE9ORSBpZiB0aGVyZSBhcmUgZmV3ZXIgdGhhbiB8bnwgYm91
bmRhcmllcyBpbiB0aGUgc3BlY2ZpZWQgZGlyZWN0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KGludDMyX3QgbikgPSAwOworCisg
ICAvKioKKyAgICAgKiBGb3IgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcnMsIHJldHVybiB0aGUgc3Rh
dHVzIHRhZyBmcm9tIHRoZSAKKyAgICAgKiBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUg
bW9zdCByZWNlbnRseQorICAgICAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIDxw
PgorICAgICAqIEZvciBicmVhayBpdGVyYXRvciB0eXBlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IGEg
cnVsZSBzdGF0dXMsCisgICAgICogYSBkZWZhdWx0IHZhbHVlIG9mIDAgaXMgcmV0dXJuZWQuCisg
ICAgICogPHA+CisgICAgICogQHJldHVybiB0aGUgc3RhdHVzIGZyb20gdGhlIGJyZWFrIHJ1bGUg
dGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogICAgICAgICByZXR1cm5l
ZCBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAc2VlIFJ1bGVCYXNlQnJlYWtJdGVyYXRvcjo6Z2V0
UnVsZVN0YXR1cygpCisgICAgICogQHNlZSBVV29yZEJyZWFrCisgICAgICogQHN0YWJsZSBJQ1Ug
NTIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1cygpIGNvbnN0Owor
CisgICAvKioKKyAgICAqIEZvciBSdWxlQmFzZWRCcmVha0l0ZXJhdG9ycywgZ2V0IHRoZSBzdGF0
dXMgKHRhZykgdmFsdWVzIGZyb20gdGhlIGJyZWFrIHJ1bGUocykgCisgICAgKiB0aGF0IGRldGVy
bWluZWQgdGhlIG1vc3QgcmVjZW50bHkgcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgKiA8
cD4KKyAgICAqIEZvciBicmVhayBpdGVyYXRvciB0eXBlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IHJ1
bGUgc3RhdHVzLAorICAgICogbm8gdmFsdWVzIGFyZSByZXR1cm5lZC4KKyAgICAqIDxwPgorICAg
ICogVGhlIHJldHVybmVkIHN0YXR1cyB2YWx1ZShzKSBhcmUgc3RvcmVkIGludG8gYW4gYXJyYXkg
cHJvdmlkZWQgYnkgdGhlIGNhbGxlci4KKyAgICAqIFRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiBz
b3J0ZWQgKGFzY2VuZGluZykgb3JkZXIuCisgICAgKiBJZiB0aGUgY2FwYWNpdHkgb2YgdGhlIG91
dHB1dCBhcnJheSBpcyBpbnN1ZmZpY2llbnQgdG8gaG9sZCB0aGUgZGF0YSwKKyAgICAqICB0aGUg
b3V0cHV0IHdpbGwgYmUgdHJ1bmNhdGVkIHRvIHRoZSBhdmFpbGFibGUgbGVuZ3RoLCBhbmQgYQor
ICAgICogIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SIHdpbGwgYmUgc2lnbmFsZWQuCisgICAgKiA8
cD4KKyAgICAqIEBzZWUgUnVsZUJhc2VCcmVha0l0ZXJhdG9yOjpnZXRSdWxlU3RhdHVzVmVjCisg
ICAgKgorICAgICogQHBhcmFtIGZpbGxJblZlYyBhbiBhcnJheSB0byBiZSBmaWxsZWQgaW4gd2l0
aCB0aGUgc3RhdHVzIHZhbHVlcy4KKyAgICAqIEBwYXJhbSBjYXBhY2l0eSAgdGhlIGxlbmd0aCBv
ZiB0aGUgc3VwcGxpZWQgdmVjdG9yLiAgQSBsZW5ndGggb2YgemVybyBjYXVzZXMKKyAgICAqICAg
ICAgICAgICAgICAgICAgdGhlIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXR1
cyB2YWx1ZXMsIGluIHRoZQorICAgICogICAgICAgICAgICAgICAgICBub3JtYWwgd2F5LCB3aXRo
b3V0IGF0dGVtdHBpbmcgdG8gc3RvcmUgYW55IHZhbHVlcy4KKyAgICAqIEBwYXJhbSBzdGF0dXMg
ICAgcmVjZWl2ZXMgZXJyb3IgY29kZXMuCisgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBudW1i
ZXIgb2YgcnVsZSBzdGF0dXMgdmFsdWVzIGZyb20gcnVsZXMgdGhhdCBkZXRlcm1pbmVkCisgICAg
KiAgICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJlY2VudCBib3VuZGFyeSByZXR1cm5lZCBieSB0
aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgKiAgICAgICAgICAgICAgICAgIEluIHRoZSBldmVudCBv
ZiBhIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SLCB0aGUgcmV0dXJuIHZhbHVlCisgICAgKiAgICAg
ICAgICAgICAgICAgIGlzIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcyB0aGF0IHdl
cmUgYXZhaWxhYmxlLAorICAgICogICAgICAgICAgICAgICAgICBub3QgdGhlIHJlZHVjZWQgbnVt
YmVyIHRoYXQgd2VyZSBhY3R1YWxseSByZXR1cm5lZC4KKyAgICAqIEBzZWUgZ2V0UnVsZVN0YXR1
cworICAgICogQHN0YWJsZSBJQ1UgNTIKKyAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRS
dWxlU3RhdHVzVmVjKGludDMyX3QgKmZpbGxJblZlYywgaW50MzJfdCBjYXBhY2l0eSwgVUVycm9y
Q29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZv
ciB3b3JkLWJyZWFrcyB1c2luZyB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIFJldHVybnMgYW4g
aW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyB3b3JkIGJyZWFrcy4KKyAg
ICAgKiBXb3JkQnJlYWsgaXMgdXNlZnVsIGZvciB3b3JkIHNlbGVjdGlvbiAoZXguIGRvdWJsZSBj
bGljaykKKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3Rh
dHVzIHRoZSBlcnJvciBjb2RlCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHdv
cmQtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1
c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8g
Y2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91
bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lz
aCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGlu
Zm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgor
ICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFj
ayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1
ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1
c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQg
bG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2Fs
ZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5k
LgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNw
b25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZVdvcmRJbnN0
YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoq
CisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIGxpbmUtYnJlYWtzIHVzaW5nIHNwZWNp
ZmllZCBsb2NhbGUuCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0
b3IgaW1wbGVtZW50aW5nIGxpbmUgYnJlYWtzLiBMaW5lCisgICAgICogYnJlYWtzIGFyZSBsb2dp
Y2FsbHkgcG9zc2libGUgbGluZSBicmVha3MsIGFjdHVhbCBsaW5lIGJyZWFrcyBhcmUKKyAgICAg
KiB1c3VhbGx5IGRldGVybWluZWQgYmFzZWQgb24gZGlzcGxheSB3aWR0aC4KKyAgICAgKiBMaW5l
QnJlYWsgaXMgdXNlZnVsIGZvciB3b3JkIHdyYXBwaW5nIHRleHQuCisgICAgICogQHBhcmFtIHdo
ZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAg
ICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3IgbGluZS1icmVha3MuICBUaGUgVUVycm9y
Q29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBp
bmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25z
dHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2
YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3Jt
YXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1
bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFD
S19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZv
cgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2Fz
IGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRf
V0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAg
KiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwg
YmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBv
d25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBp
dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVy
YXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlTGluZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hl
cmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJ
dGVyYXRvciBmb3IgY2hhcmFjdGVyLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxlCisgICAg
ICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIGNo
YXJhY3RlciBicmVha3MuCisgICAgICogQ2hhcmFjdGVyIGJyZWFrcyBhcmUgYm91bmRhcmllcyBv
ZiBjb21iaW5pbmcgY2hhcmFjdGVyIHNlcXVlbmNlcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhl
IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEBy
ZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciBjaGFyYWN0ZXItYnJlYWtzLiAgVGhlIFVFcnJvckNv
ZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5m
b3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3Ry
dWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFs
dWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0
aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0
cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tf
V0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IK
KyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBm
b3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dB
Uk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICog
dXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJh
Y2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3du
cyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0
b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZUNoYXJhY3Rlckluc3RhbmNlKGNvbnN0IExvY2FsZSYg
d2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJl
YWtJdGVyYXRvciBmb3Igc2VudGVuY2UtYnJlYWtzIHVzaW5nIHNwZWNpZmllZCBsb2NhbGUKKyAg
ICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcg
c2VudGVuY2UgYnJlYWtzLgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAq
IEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRl
cmF0b3IgZm9yIHNlbnRlbmNlLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAg
KiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1
c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQg
b3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhl
cnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICog
Y2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5k
aWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVz
IHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwg
J2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdk
ZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0
aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhl
IHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAg
KiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9i
amVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAg
ICBjcmVhdGVTZW50ZW5jZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUm
IHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3IgdGl0
bGUtY2FzaW5nIGJyZWFrcyB1c2luZyB0aGUgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVy
bnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyB0aXRsZSBicmVh
a3MuCisgICAgICogVGhlIGl0ZXJhdG9yIHJldHVybmVkIGxvY2F0ZXMgdGl0bGUgYm91bmRhcmll
cyBhcyBkZXNjcmliZWQgZm9yCisgICAgICogVW5pY29kZSAzLjIgb25seS4gRm9yIFVuaWNvZGUg
NC4wIGFuZCBhYm92ZSB0aXRsZSBib3VuZGFyeSBpdGVyYXRpb24sCisgICAgICogcGxlYXNlIHVz
ZSBXb3JkIEJvdW5kYXJ5IGl0ZXJhdG9yLntAbGluayAjY3JlYXRlV29yZEluc3RhbmNlIH0KKyAg
ICAgKgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0
dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHRp
dGxlLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMg
dXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRv
IGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hv
dWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdp
c2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBp
bmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4K
KyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJh
Y2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVx
dWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICog
dXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0
IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2Nh
bGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3Vu
ZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVz
cG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAq
LworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVUaXRsZUlu
c3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAv
KioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBMb2NhbGVzIGZvciB3aGljaCBUZXh0Qm91bmRhcmll
cyBhcmUgaW5zdGFsbGVkLgorICAgICAqIDxwPjxiPk5vdGU6PC9iPiB0aGlzIHdpbGwgbm90IHJl
dHVybiBsb2NhbGVzIGFkZGVkIHRocm91Z2ggdGhlIHJlZ2lzdGVyCisgICAgICogY2FsbC4gVG8g
c2VlIHRoZSByZWdpc3RlcmVkIGxvY2FsZXMgdG9vLCB1c2UgdGhlIGdldEF2YWlsYWJsZUxvY2Fs
ZXMKKyAgICAgKiBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBTdHJpbmdFbnVtZXJhdGlvbiBvYmpl
Y3QgPC9wPgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgb3V0cHV0IHBhcmFtZXRlciBvZiBudW1i
ZXIgb2YgZWxlbWVudHMgaW4gdGhlIGxvY2FsZSBsaXN0CisgICAgICogQHJldHVybiBhdmFpbGFi
bGUgbG9jYWxlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUqIFVfRVhQT1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIGNvdW50
KTsKKworICAgIC8qKgorICAgICAqIEdldCBuYW1lIG9mIHRoZSBvYmplY3QgZm9yIHRoZSBkZXNp
cmVkIExvY2FsZSwgaW4gdGhlIGRlc2lyZWQgbGFuZ2F1Z2UuCisgICAgICogQHBhcmFtIG9iamVj
dExvY2FsZSBtdXN0IGJlIGZyb20gZ2V0QXZhaWxhYmxlTG9jYWxlcy4KKyAgICAgKiBAcGFyYW0g
ZGlzcGxheUxvY2FsZSBzcGVjaWZpZXMgdGhlIGRlc2lyZWQgbG9jYWxlIGZvciBvdXRwdXQuCisg
ICAgICogQHBhcmFtIG5hbWUgdGhlIGZpbGwtaW4gcGFyYW1ldGVyIG9mIHRoZSByZXR1cm4gdmFs
dWUKKyAgICAgKiBVc2VzIGJlc3QgbWF0Y2guCisgICAgICogQHJldHVybiB1c2VyLWRpc3BsYXlh
YmxlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgVW5p
Y29kZVN0cmluZyYgVV9FWFBPUlQyIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgb2JqZWN0
TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBM
b2NhbGUmIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVuaWNvZGVTdHJpbmcmIG5hbWUpOworCisgICAgLyoqCisgICAgICogR2V0IG5hbWUg
b2YgdGhlIG9iamVjdCBmb3IgdGhlIGRlc2lyZWQgTG9jYWxlLCBpbiB0aGUgbGFuZ2F1Z2Ugb2Yg
dGhlCisgICAgICogZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSBt
dXN0IGJlIGZyb20gZ2V0TWF0Y2hpbmdMb2NhbGVzCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGZp
bGwtaW4gcGFyYW1ldGVyIG9mIHRoZSByZXR1cm4gdmFsdWUKKyAgICAgKiBAcmV0dXJuIHVzZXIt
ZGlzcGxheWFibGUgbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0
YXRpYyBVbmljb2RlU3RyaW5nJiBVX0VYUE9SVDIgZ2V0RGlzcGxheU5hbWUoY29uc3QgTG9jYWxl
JiBvYmplY3RMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVuaWNvZGVTdHJpbmcmIG5hbWUpOworCisgICAgLyoqCisgICAgICogRGVwcmVjYXRlZCBmdW5j
dGlvbmFsaXR5LiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisgICAgICogVGhyZWFkIHNh
ZmUgY2xpZW50LWJ1ZmZlci1iYXNlZCBjbG9uaW5nIG9wZXJhdGlvbgorICAgICAqICAgIERvIE5P
VCBjYWxsIGRlbGV0ZSBvbiBhIHNhZmVjbG9uZSwgc2luY2UgJ25ldycgaXMgbm90IHVzZWQgdG8g
Y3JlYXRlIGl0LgorICAgICAqIEBwYXJhbSBzdGFja0J1ZmZlciB1c2VyIGFsbG9jYXRlZCBzcGFj
ZSBmb3IgdGhlIG5ldyBjbG9uZS4gSWYgTlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVk
LgorICAgICAqIElmIGJ1ZmZlciBpcyBub3QgbGFyZ2UgZW5vdWdoLCBuZXcgbWVtb3J5IHdpbGwg
YmUgYWxsb2NhdGVkLgorICAgICAqIEBwYXJhbSBCdWZmZXJTaXplIHJlZmVyZW5jZSB0byBzaXpl
IG9mIGFsbG9jYXRlZCBzcGFjZS4KKyAgICAgKiBJZiBCdWZmZXJTaXplID09IDAsIGEgc3VmZmlj
aWVudCBzaXplIGZvciB1c2UgaW4gY2xvbmluZyB3aWxsCisgICAgICogYmUgcmV0dXJuZWQgKCdw
cmUtZmxpZ2h0aW5nJykKKyAgICAgKiBJZiBCdWZmZXJTaXplIGlzIG5vdCBlbm91Z2ggZm9yIGEg
c3RhY2stYmFzZWQgc2FmZSBjbG9uZSwKKyAgICAgKiBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2Nh
dGVkLgorICAgICAqIEBwYXJhbSBzdGF0dXMgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgb3BlcmF0
aW9uIHdlbnQgb24gc21vb3RobHkgb3IgdGhlcmUgd2VyZSBlcnJvcnMKKyAgICAgKiAgQW4gaW5m
b3JtYXRpb25hbCBzdGF0dXMgdmFsdWUsIFVfU0FGRUNMT05FX0FMTE9DQVRFRF9FUlJPUiwgaXMg
dXNlZCBpZiBhbnkgYWxsb2NhdGlvbnMgd2VyZQorICAgICAqICBuZWNlc3NhcnkuCisgICAgICog
QHJldHVybiBwb2ludGVyIHRvIHRoZSBuZXcgY2xvbmUKKyAgICAgKgorICAgICAqIEBkZXByZWNh
dGVkIElDVSA1Mi4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJy
ZWFrSXRlcmF0b3IgKiAgY3JlYXRlQnVmZmVyQ2xvbmUodm9pZCAqc3RhY2tCdWZmZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgJkJ1ZmZl
clNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVF
cnJvckNvZGUgJnN0YXR1cykgPSAwOworCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQor
CisgICAgLyoqCisgICAgICogICBEZXRlcm1pbmUgd2hldGhlciB0aGUgQnJlYWtJdGVyYXRvciB3
YXMgY3JlYXRlZCBpbiB1c2VyIG1lbW9yeSBieQorICAgICAqICAgY3JlYXRlQnVmZmVyQ2xvbmUo
KSwgYW5kIHRodXMgc2hvdWxkIG5vdCBiZSBkZWxldGVkLiAgU3VjaCBvYmplY3RzCisgICAgICog
ICBtdXN0IGJlIGNsb3NlZCBieSBhbiBleHBsaWNpdCBjYWxsIHRvIHRoZSBkZXN0cnVjdG9yIChu
b3QgZGVsZXRlKS4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIEFsd2F5cyBkZWxldGUgdGhl
IEJyZWFrSXRlcmF0b3IuCisgICAgICovCisgICAgaW5saW5lIFVCb29sIGlzQnVmZmVyQ2xvbmUo
dm9pZCk7CisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KKworI2lmICFVQ09O
RklHX05PX1NFUlZJQ0UKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIG5ldyBicmVhayBpdGVy
YXRvciBvZiB0aGUgaW5kaWNhdGVkIGtpbmQsIHRvIHVzZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlLgor
ICAgICAqIFRoZSBicmVhayBpdGVyYXRvciB3aWxsIGJlIGFkb3B0ZWQuICBDbG9uZXMgb2YgdGhl
IGl0ZXJhdG9yIHdpbGwgYmUgcmV0dXJuZWQKKyAgICAgKiBpZiBhIHJlcXVlc3QgZm9yIGEgYnJl
YWsgaXRlcmF0b3Igb2YgdGhlIGdpdmVuIGtpbmQgbWF0Y2hlcyBvciBmYWxscyBiYWNrIHRvCisg
ICAgICogdGhpcyBsb2NhbGUuCisgICAgICogQmVjYXVzZSBJQ1UgbWF5IGNob29zZSB0byBjYWNo
ZSBCcmVha0l0ZXJhdG9ycyBpbnRlcm5hbGx5LCB0aGlzIG11c3QKKyAgICAgKiBiZSBjYWxsZWQg
YXQgYXBwbGljYXRpb24gc3RhcnR1cCwgcHJpb3IgdG8gYW55IGNhbGxzIHRvCisgICAgICogQnJl
YWtJdGVyYXRvcjo6Y3JlYXRlWFhYSW5zdGFuY2UgdG8gYXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9y
LgorICAgICAqIEBwYXJhbSB0b0Fkb3B0IHRoZSBCcmVha0l0ZXJhdG9yIGluc3RhbmNlIHRvIGJl
IGFkb3B0ZWQKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBMb2NhbGUgZm9yIHdoaWNoIHRoaXMg
aW5zdGFuY2UgaXMgdG8gYmUgcmVnaXN0ZXJlZAorICAgICAqIEBwYXJhbSBraW5kIHRoZSB0eXBl
IG9mIGl0ZXJhdG9yIGZvciB3aGljaCB0aGlzIGluc3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQK
KyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBpbi9vdXQgc3RhdHVzIGNvZGUsIG5vIHNwZWNpYWwg
bWVhbmluZ3MgYXJlIGFzc2lnbmVkCisgICAgICogQHJldHVybiBhIHJlZ2lzdHJ5IGtleSB0aGF0
IGNhbiBiZSB1c2VkIHRvIHVucmVnaXN0ZXIgdGhpcyBpbnN0YW5jZQorICAgICAqIEBzdGFibGUg
SUNVIDIuNAorICAgICAqLworICAgIHN0YXRpYyBVUmVnaXN0cnlLZXkgVV9FWFBPUlQyIHJlZ2lz
dGVySW5zdGFuY2UoQnJlYWtJdGVyYXRvciogdG9BZG9wdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBMb2NhbGUmIGxvY2FsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVQnJlYWtJdGVyYXRvclR5cGUga2luZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlJiBzdGF0dXMpOwor
CisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciBhIHByZXZpb3VzbHktcmVnaXN0ZXJlZCBCcmVh
a0l0ZXJhdG9yIHVzaW5nIHRoZSBrZXkgcmV0dXJuZWQgZnJvbSB0aGUKKyAgICAgKiByZWdpc3Rl
ciBjYWxsLiAgS2V5IGJlY29tZXMgaW52YWxpZCBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCBhbmQg
c2hvdWxkIG5vdCBiZSB1c2VkIGFnYWluLgorICAgICAqIFRoZSBCcmVha0l0ZXJhdG9yIGNvcnJl
c3BvbmRpbmcgdG8gdGhlIGtleSB3aWxsIGJlIGRlbGV0ZWQuCisgICAgICogQmVjYXVzZSBJQ1Ug
bWF5IGNob29zZSB0byBjYWNoZSBCcmVha0l0ZXJhdG9ycyBpbnRlcm5hbGx5LCB0aGlzIHNob3Vs
ZAorICAgICAqIGJlIGNhbGxlZCBkdXJpbmcgYXBwbGljYXRpb24gc2h1dGRvd24sIGFmdGVyIGFs
bCBjYWxscyB0bworICAgICAqIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZVhYWEluc3RhbmNlIHRvIGF2
b2lkIHVuZGVmaW5lZCBiZWhhdmlvci4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSByZWdpc3RyeSBr
ZXkgcmV0dXJuZWQgYnkgYSBwcmV2aW91cyBjYWxsIHRvIHJlZ2lzdGVySW5zdGFuY2UKKyAgICAg
KiBAcGFyYW0gc3RhdHVzIHRoZSBpbi9vdXQgc3RhdHVzIGNvZGUsIG5vIHNwZWNpYWwgbWVhbmlu
Z3MgYXJlIGFzc2lnbmVkCisgICAgICogQHJldHVybiBUUlVFIGlmIHRoZSBpdGVyYXRvciBmb3Ig
dGhlIGtleSB3YXMgc3VjY2Vzc2Z1bGx5IHVucmVnaXN0ZXJlZAorICAgICAqIEBzdGFibGUgSUNV
IDIuNAorICAgICAqLworICAgIHN0YXRpYyBVQm9vbCBVX0VYUE9SVDIgdW5yZWdpc3RlcihVUmVn
aXN0cnlLZXkga2V5LCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogUmV0
dXJuIGEgU3RyaW5nRW51bWVyYXRpb24gb3ZlciB0aGUgbG9jYWxlcyBhdmFpbGFibGUgYXQgdGhl
IHRpbWUgb2YgdGhlIGNhbGwsCisgICAgICogaW5jbHVkaW5nIHJlZ2lzdGVyZWQgbG9jYWxlcy4K
KyAgICAgKiBAcmV0dXJuIGEgU3RyaW5nRW51bWVyYXRpb24gb3ZlciB0aGUgbG9jYWxlcyBhdmFp
bGFibGUgYXQgdGhlIHRpbWUgb2YgdGhlIGNhbGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAg
ICAgKi8KKyAgICBzdGF0aWMgU3RyaW5nRW51bWVyYXRpb24qIFVfRVhQT1JUMiBnZXRBdmFpbGFi
bGVMb2NhbGVzKHZvaWQpOworI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBs
b2NhbGUgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuIFR3byBmbGF2b3JzIGFyZSBhdmFpbGFibGU6
IHZhbGlkIGFuZAorICAgICAqIGFjdHVhbCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44
CisgICAgICovCisgICAgTG9jYWxlIGdldExvY2FsZShVTG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwg
VUVycm9yQ29kZSYgc3RhdHVzKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJ
CisgICAgLyoqIEdldCB0aGUgbG9jYWxlIGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yIG9iamVjdC4g
WW91IGNhbiBjaG9vc2UgYmV0d2VlbiB2YWxpZCBhbmQgYWN0dWFsIGxvY2FsZS4KKyAgICAgKiAg
QHBhcmFtIHR5cGUgdHlwZSBvZiB0aGUgbG9jYWxlIHdlJ3JlIGxvb2tpbmcgZm9yICh2YWxpZCBv
ciBhY3R1YWwpCisgICAgICogIEBwYXJhbSBzdGF0dXMgZXJyb3IgY29kZSBmb3IgdGhlIG9wZXJh
dGlvbgorICAgICAqICBAcmV0dXJuIHRoZSBsb2NhbGUKKyAgICAgKiAgQGludGVybmFsCisgICAg
ICovCisgICAgY29uc3QgY2hhciAqZ2V0TG9jYWxlSUQoVUxvY0RhdGFMb2NhbGVUeXBlIHR5cGUs
IFVFcnJvckNvZGUmIHN0YXR1cykgY29uc3Q7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9B
UEkgKi8KKworICAgIC8qKgorICAgICAqICBTZXQgdGhlIHN1YmplY3QgdGV4dCBzdHJpbmcgdXBv
biB3aGljaCB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nCisgICAgICogIHdpdGhvdXQg
Y2hhbmdpbmcgYW55IG90aGVyIGFzcGVjdCBvZiB0aGUgbWF0Y2hpbmcgc3RhdGUuCisgICAgICog
IFRoZSBuZXcgYW5kIHByZXZpb3VzIHRleHQgc3RyaW5ncyBtdXN0IGhhdmUgdGhlIHNhbWUgY29u
dGVudC4KKyAgICAgKgorICAgICAqICBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2Ug
aW4gZW52aXJvbm1lbnRzIHdoZXJlIElDVSBpcyBvcGVyYXRpbmcgb24KKyAgICAgKiAgc3RyaW5n
cyB0aGF0IG1heSBtb3ZlIGFyb3VuZCBpbiBtZW1vcnkuICBJdCBwcm92aWRlcyBhIG1lY2hhbmlz
bSBmb3Igbm90aWZ5aW5nCisgICAgICogIElDVSB0aGF0IHRoZSBzdHJpbmcgaGFzIGJlZW4gcmVs
b2NhdGVkLCBhbmQgcHJvdmlkaW5nIGEgbmV3IFVUZXh0IHRvIGFjY2VzcyB0aGUKKyAgICAgKiAg
c3RyaW5nIGluIGl0cyBuZXcgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiAgTm90ZSB0aGF0IHRo
ZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbiBuZXZlciBjb3BpZXMgdGhlIHVuZGVybHlp
bmcgdGV4dAorICAgICAqICBvZiBhIHN0cmluZyBiZWluZyBwcm9jZXNzZWQsIGJ1dCBhbHdheXMg
b3BlcmF0ZXMgZGlyZWN0bHkgb24gdGhlIG9yaWdpbmFsIHRleHQKKyAgICAgKiAgcHJvdmlkZWQg
YnkgdGhlIHVzZXIuIFJlZnJlc2hpbmcgc2ltcGx5IGRyb3BzIHRoZSByZWZlcmVuY2VzIHRvIHRo
ZSBvbGQgdGV4dAorICAgICAqICBhbmQgcmVwbGFjZXMgdGhlbSB3aXRoIHJlZmVyZW5jZXMgdG8g
dGhlIG5ldy4KKyAgICAgKgorICAgICAqICBDYXV0aW9uOiAgdGhpcyBmdW5jdGlvbiBpcyBub3Jt
YWxseSB1c2VkIG9ubHkgYnkgdmVyeSBzcGVjaWFsaXplZCwKKyAgICAgKiAgc3lzdGVtLWxldmVs
IGNvZGUuICBPbmUgZXhhbXBsZSB1c2UgY2FzZSBpcyB3aXRoIGdhcmJhZ2UgY29sbGVjdGlvbiB0
aGF0IG1vdmVzCisgICAgICogIHRoZSB0ZXh0IGluIG1lbW9yeS4KKyAgICAgKgorICAgICAqIEBw
YXJhbSBpbnB1dCAgICAgIFRoZSBuZXcgKG1vdmVkKSB0ZXh0IHN0cmluZy4KKyAgICAgKiBAcGFy
YW0gc3RhdHVzICAgICBSZWNlaXZlcyBlcnJvcnMgZGV0ZWN0ZWQgYnkgdGhpcyBmdW5jdGlvbi4K
KyAgICAgKiBAcmV0dXJuICAgICAgICAgICAqdGhpcworICAgICAqCisgICAgICogQHN0YWJsZSBJ
Q1UgNDkKKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IgJnJlZnJlc2hJbnB1dFRl
eHQoVVRleHQgKmlucHV0LCBVRXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKworIHByaXZhdGU6Cisg
ICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIGJ1aWxkSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2Ms
IGNvbnN0IGNoYXIgKnR5cGUsIGludDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKyAg
ICBzdGF0aWMgQnJlYWtJdGVyYXRvciogY3JlYXRlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2Ms
IGludDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKyAgICBzdGF0aWMgQnJlYWtJdGVy
YXRvciogbWFrZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBpbnQzMl90IGtpbmQsIFVFcnJv
ckNvZGUmIHN0YXR1cyk7CisKKyAgICBmcmllbmQgY2xhc3MgSUNVQnJlYWtJdGVyYXRvckZhY3Rv
cnk7CisgICAgZnJpZW5kIGNsYXNzIElDVUJyZWFrSXRlcmF0b3JTZXJ2aWNlOworCitwcm90ZWN0
ZWQ6CisgICAgLy8gRG8gbm90IGVuY2xvc2UgcHJvdGVjdGVkIGRlZmF1bHQvY29weSBjb25zdHJ1
Y3RvcnMgd2l0aCAjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvLyBvciBlbHNlIHRo
ZSBjb21waWxlciB3aWxsIGNyZWF0ZSBhIHB1YmxpYyBvbmVzLgorICAgIC8qKiBAaW50ZXJuYWwg
Ki8KKyAgICBCcmVha0l0ZXJhdG9yKCk7CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFr
SXRlcmF0b3IgKGNvbnN0IEJyZWFrSXRlcmF0b3IgJm90aGVyKSA6IFVPYmplY3Qob3RoZXIpIHt9
CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFrSXRlcmF0b3IgKGNvbnN0IExvY2FsZSYg
dmFsaWQsIGNvbnN0IExvY2FsZSYgYWN0dWFsKTsKK3ByaXZhdGU6CisKKyAgICAvKiogQGludGVy
bmFsICovCisgICAgY2hhciBhY3R1YWxMb2NhbGVbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07Cisg
ICAgY2hhciB2YWxpZExvY2FsZVtVTE9DX0ZVTExOQU1FX0NBUEFDSVRZXTsKKworICAgIC8qKgor
ICAgICAqIFRoZSBhc3NpZ25tZW50IG9wZXJhdG9yIGhhcyBubyByZWFsIGltcGxlbWVudGF0aW9u
LgorICAgICAqIEl0J3MgcHJvdmlkZWQgdG8gbWFrZSB0aGUgY29tcGlsZXIgaGFwcHkuIERvIG5v
dCBjYWxsLgorICAgICAqLworICAgIEJyZWFrSXRlcmF0b3ImIG9wZXJhdG9yPShjb25zdCBCcmVh
a0l0ZXJhdG9yJik7Cit9OworCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQorCitpbmxp
bmUgVUJvb2wgQnJlYWtJdGVyYXRvcjo6aXNCdWZmZXJDbG9uZSgpCit7CisgICAgcmV0dXJuIEZB
TFNFOworfQorCisjZW5kaWYgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisKK1VfTkFNRVNQ
QUNFX0VORAorCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiAqLwor
CisjZW5kaWYgLy8gX0JSS0lURVIKKy8vZW9mCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL2NoYXJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZThkNjUwOTBhNDBhNjA4NTk1MWM3MzMwN2Y3NGFjZjgzYmExYmJjOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaApAQCAtMCwwICsx
LDcyMiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTEs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3Ro
ZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVm
IENIQVJJVEVSX0gKKyNkZWZpbmUgQ0hBUklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlw
ZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3Vu
aXN0ci5oIgorLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IENoYXJhY3RlciBJdGVy
YXRvcgorICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorLyoqCisgKiBBYnN0cmFjdCBjbGFzcyB0
aGF0IGRlZmluZXMgYW4gQVBJIGZvciBmb3J3YXJkLW9ubHkgaXRlcmF0aW9uCisgKiBvbiB0ZXh0
IG9iamVjdHMuCisgKiBUaGlzIGlzIGEgbWluaW1hbCBpbnRlcmZhY2UgZm9yIGl0ZXJhdGlvbiB3
aXRob3V0IHJhbmRvbSBhY2Nlc3MKKyAqIG9yIGJhY2t3YXJkcyBpdGVyYXRpb24uIEl0IGlzIGVz
cGVjaWFsbHkgdXNlZnVsIGZvciB3cmFwcGluZworICogc3RyZWFtcyB3aXRoIGNvbnZlcnRlcnMg
aW50byBhbiBvYmplY3QgZm9yIGNvbGxhdGlvbiBvcgorICogbm9ybWFsaXphdGlvbi4KKyAqCisg
KiA8cD5DaGFyYWN0ZXJzIGNhbiBiZSBhY2Nlc3NlZCBpbiB0d28gd2F5czogYXMgY29kZSB1bml0
cyBvciBhcworICogY29kZSBwb2ludHMuCisgKiBVbmljb2RlIGNvZGUgcG9pbnRzIGFyZSAyMS1i
aXQgaW50ZWdlcnMgYW5kIGFyZSB0aGUgc2NhbGFyIHZhbHVlcworICogb2YgVW5pY29kZSBjaGFy
YWN0ZXJzLiBJQ1UgdXNlcyB0aGUgdHlwZSBVQ2hhcjMyIGZvciB0aGVtLgorICogVW5pY29kZSBj
b2RlIHVuaXRzIGFyZSB0aGUgc3RvcmFnZSB1bml0cyBvZiBhIGdpdmVuCisgKiBVbmljb2RlL1VD
UyBUcmFuc2Zvcm1hdGlvbiBGb3JtYXQgKGEgY2hhcmFjdGVyIGVuY29kaW5nIHNjaGVtZSkuCisg
KiBXaXRoIFVURi0xNiwgYWxsIGNvZGUgcG9pbnRzIGNhbiBiZSByZXByZXNlbnRlZCB3aXRoIGVp
dGhlciBvbmUKKyAqIG9yIHR3byBjb2RlIHVuaXRzICgic3Vycm9nYXRlcyIpLgorICogU3RyaW5n
IHN0b3JhZ2UgaXMgdHlwaWNhbGx5IGJhc2VkIG9uIGNvZGUgdW5pdHMsIHdoaWxlIHByb3BlcnRp
ZXMKKyAqIG9mIGNoYXJhY3RlcnMgYXJlIHR5cGljYWxseSBkZXRlcm1pbmVkIHVzaW5nIGNvZGUg
cG9pbnQgdmFsdWVzLgorICogU29tZSBwcm9jZXNzZXMgbWF5IGJlIGRlc2lnbmVkIHRvIHdvcmsg
d2l0aCBzZXF1ZW5jZXMgb2YgY29kZSB1bml0cywKKyAqIG9yIGl0IG1heSBiZSBrbm93biB0aGF0
IGFsbCBjaGFyYWN0ZXJzIHRoYXQgYXJlIGltcG9ydGFudCB0byBhbgorICogYWxnb3JpdGhtIGNh
biBiZSByZXByZXNlbnRlZCB3aXRoIHNpbmdsZSBjb2RlIHVuaXRzLgorICogT3RoZXIgcHJvY2Vz
c2VzIHdpbGwgbmVlZCB0byB1c2UgdGhlIGNvZGUgcG9pbnQgYWNjZXNzIGZ1bmN0aW9ucy48L3A+
CisgKgorICogPHA+Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHByb3ZpZGVzIG5leHRQb3N0SW5j
KCkgdG8gYWNjZXNzCisgKiBhIGNvZGUgdW5pdCBhbmQgYWR2YW5jZSBhbiBpbnRlcm5hbCBwb3Np
dGlvbiBpbnRvIHRoZSB0ZXh0IG9iamVjdCwKKyAqIHNpbWlsYXIgdG8gYSA8Y29kZT5yZXR1cm4g
dGV4dFtwb3NpdGlvbisrXTwvY29kZT4uPGJyPgorICogSXQgcHJvdmlkZXMgbmV4dDMyUG9zdElu
YygpIHRvIGFjY2VzcyBhIGNvZGUgcG9pbnQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwKKyAqIHBv
c2l0aW9uLjwvcD4KKyAqCisgKiA8cD5uZXh0MzJQb3N0SW5jKCkgYXNzdW1lcyB0aGF0IHRoZSBj
dXJyZW50IHBvc2l0aW9uIGlzIHRoYXQgb2YKKyAqIHRoZSBiZWdpbm5pbmcgb2YgYSBjb2RlIHBv
aW50LCBpLmUuLCBvZiBpdHMgZmlyc3QgY29kZSB1bml0LgorICogQWZ0ZXIgbmV4dDMyUG9zdElu
YygpLCB0aGlzIHdpbGwgYmUgdHJ1ZSBhZ2Fpbi4KKyAqIEluIGdlbmVyYWwsIGFjY2VzcyB0byBj
b2RlIHVuaXRzIGFuZCBjb2RlIHBvaW50cyBpbiB0aGUgc2FtZQorICogaXRlcmF0aW9uIGxvb3Ag
c2hvdWxkIG5vdCBiZSBtaXhlZC4gSW4gVVRGLTE2LCBpZiB0aGUgY3VycmVudCBwb3NpdGlvbgor
ICogaXMgb24gYSBzZWNvbmQgY29kZSB1bml0IChMb3cgU3Vycm9nYXRlKSwgdGhlbiBvbmx5IHRo
YXQgY29kZSB1bml0CisgKiBpcyByZXR1cm5lZCBldmVuIGJ5IG5leHQzMlBvc3RJbmMoKS48L3A+
CisgKgorICogPHA+Rm9yIGl0ZXJhdGlvbiB3aXRoIGVpdGhlciBmdW5jdGlvbiwgdGhlcmUgYXJl
IHR3byB3YXlzIHRvCisgKiBjaGVjayBmb3IgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLiBXaGVu
IHRoZXJlIGFyZSBubyBtb3JlCisgKiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0IG9iamVjdDoKKyAq
IDx1bD4KKyAqIDxsaT5UaGUgaGFzTmV4dCgpIGZ1bmN0aW9uIHJldHVybnMgRkFMU0UuPC9saT4K
KyAqIDxsaT5uZXh0UG9zdEluYygpIGFuZCBuZXh0MzJQb3N0SW5jKCkgcmV0dXJuIERPTkUKKyAq
ICAgICB3aGVuIG9uZSBhdHRlbXB0cyB0byByZWFkIGJleW9uZCB0aGUgZW5kIG9mIHRoZSB0ZXh0
IG9iamVjdC48L2xpPgorICogPC91bD4KKyAqCisgKiBFeGFtcGxlOgorICogXGNvZGUgCisgKiB2
b2lkIGZ1bmN0aW9uMShGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNo
YXIzMiBjOworICogICAgIHdoaWxlKGl0Lmhhc05leHQoKSkgeworICogICAgICAgICBjPWl0Lm5l
eHQzMlBvc3RJbmMoKTsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICB9CisgKiB9CisgKgor
ICogdm9pZCBmdW5jdGlvbjEoRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAg
IFVDaGFyIGM7CisgKiAgICAgd2hpbGUoKGM9aXQubmV4dFBvc3RJbmMoKSkhPUZvcndhcmRDaGFy
YWN0ZXJJdGVyYXRvcjo6RE9ORSkgeworICogICAgICAgICAvLyB1c2UgYworICogICAgICB9Cisg
KiAgfQorICogXGVuZGNvZGUKKyAqIDwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwor
Y2xhc3MgVV9DT01NT05fQVBJIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBVT2Jq
ZWN0IHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBtb3N0IG9m
IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcidzIGZ1bmN0aW9ucworICAgICAqIHdoZW4gdGhlIGl0
ZXJhdG9yIGhhcyByZWFjaGVkIHRoZSBsaW1pdHMgb2YgaXRzIGl0ZXJhdGlvbi4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBlbnVtIHsgRE9ORSA9IDB4ZmZmZiB9OworICAg
IAorICAgIC8qKgorICAgICAqIERlc3RydWN0b3IuICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIH5Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAK
KyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgd2hlbiBib3RoIGl0ZXJhdG9ycyByZWZlciB0
byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSBjaGFyYWN0ZXItc3RvcmFn
ZSBvYmplY3QuICAKKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgICAqIEByZXR1cm4gdHJ1ZSB3aGVu
IGJvdGggaXRlcmF0b3JzIHJlZmVyIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRo
ZSBzYW1lIGNoYXJhY3Rlci1zdG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHRydWUgd2hlbiB0aGUgaXRlcmF0b3JzIHJlZmVyIHRvIGRpZmZlcmVudAorICAgICAqIHRl
eHQtc3RvcmFnZSBvYmplY3RzLCBvciB0byBkaWZmZXJlbnQgY2hhcmFjdGVycyBpbiB0aGUKKyAg
ICAgKiBzYW1lIHRleHQtc3RvcmFnZSBvYmplY3QuICAKKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUg
Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5Cisg
ICAgICogQHJldHVybiB0cnVlIHdoZW4gdGhlIGl0ZXJhdG9ycyByZWZlciB0byBkaWZmZXJlbnQK
KyAgICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0cywgb3IgdG8gZGlmZmVyZW50IGNoYXJhY3RlcnMg
aW4gdGhlCisgICAgICogc2FtZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgaW5saW5lIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBH
ZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgaXRlcmF0b3IuICAKKyAgICAgKiBAcmV0dXJu
IHRoZSBoYXNoIGNvZGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBpbnQzMl90IGhhc2hDb2RlKHZvaWQpIGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoaXMgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
ICgicG9vciBtYW4ncworICAgICAqIFJUVEkiKS48UD4gRGVzcGl0ZSB0aGUgZmFjdCB0aGF0IHRo
aXMgZnVuY3Rpb24gaXMgcHVibGljLAorICAgICAqIERPIE5PVCBDT05TSURFUiBJVCBQQVJUIE9G
IENIQVJBQ1RFUklURVJBVE9SJ1MgQVBJISAKKyAgICAgKiBAcmV0dXJuIGEgVUNsYXNzSUQgZm9y
IHRoaXMgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29u
c3QgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSB1bml0
IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgdW5pdAorICAgICAq
IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAgSWYg
dGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBE
T05FLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSB1bml0LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0UG9zdElu
Yyh2b2lkKSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBjb2Rl
IHBvaW50IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQK
KyAgICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgp
KS4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCBy
ZXR1cm5zIERPTkUuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHBvaW50LgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBu
ZXh0MzJQb3N0SW5jKHZvaWQpID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIEZB
TFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAg
KiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
LgorICAgICAqIFRoaXMgaXMgdXNlZCB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9zdElu
YygpIGluIGZvcndhcmQKKyAgICAgKiBpdGVyYXRpb24uCisgICAgICogQHJldHVybnMgRkFMU0Ug
aWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgICAqIGF0
IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCAgICAgICAg
aGFzTmV4dCgpID0gMDsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICAvKiogRGVmYXVsdCBjb25zdHJ1
Y3RvciB0byBiZSBvdmVycmlkZGVuIGluIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3MuIEBzdGFibGUg
SUNVIDIuMCovCisgICAgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgCisgICAgLyoq
IENvcHkgY29uc3RydWN0b3IgdG8gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNs
YXNzLiBAc3RhYmxlIElDVSAyLjAqLworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcihjb25z
dCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgJm90aGVyKTsKKyAgICAKKyAgICAvKioKKyAgICAg
KiBBc3NpZ25tZW50IG9wZXJhdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGlu
ZyBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBGb3J3YXJkQ2hh
cmFjdGVySXRlcmF0b3IgJm9wZXJhdG9yPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Im
KSB7IHJldHVybiAqdGhpczsgfQorfTsKKworLyoqCisgKiBBYnN0cmFjdCBjbGFzcyB0aGF0IGRl
ZmluZXMgYW4gQVBJIGZvciBpdGVyYXRpb24KKyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMg
aXMgYW4gaW50ZXJmYWNlIGZvciBmb3J3YXJkIGFuZCBiYWNrd2FyZCBpdGVyYXRpb24KKyAqIGFu
ZCByYW5kb20gYWNjZXNzIGludG8gYSB0ZXh0IG9iamVjdC4KKyAqCisgKiA8cD5UaGUgQVBJIHBy
b3ZpZGVzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgdG8gdGhlIEphdmEgYW5kIG9sZGVyIElDVQor
ICogQ2hhcmFjdGVySXRlcmF0b3IgY2xhc3NlcyBidXQgZXh0ZW5kcyB0aGVtIHNpZ25pZmljYW50
bHk6CisgKiA8b2w+CisgKiA8bGk+Q2hhcmFjdGVySXRlcmF0b3IgaXMgbm93IGEgc3ViY2xhc3Mg
b2YgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLjwvbGk+CisgKiA8bGk+V2hpbGUgdGhlIG9sZCBB
UEkgZnVuY3Rpb25zIHByb3ZpZGVkIGZvcndhcmQgaXRlcmF0aW9uIHdpdGgKKyAqICAgICAicHJl
LWluY3JlbWVudCIgc2VtYW50aWNzLCB0aGUgbmV3IG9uZSBhbHNvIHByb3ZpZGVzIGZ1bmN0aW9u
cworICogICAgIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1hbnRpY3MuIFRoZXkgYXJlIG1vcmUg
ZWZmaWNpZW50IGFuZCBzaG91bGQKKyAqICAgICBiZSB0aGUgcHJlZmVycmVkIGl0ZXJhdG9yIGZ1
bmN0aW9ucyBmb3IgbmV3IGltcGxlbWVudGF0aW9ucy4KKyAqICAgICBUaGUgYmFja3dhcmQgaXRl
cmF0aW9uIGFsd2F5cyBoYWQgInByZS1kZWNyZW1lbnQiIHNlbWFudGljcywgd2hpY2gKKyAqICAg
ICBhcmUgZWZmaWNpZW50LjwvbGk+CisgKiA8bGk+SnVzdCBsaWtlIEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciwgaXQgcHJvdmlkZXMgYWNjZXNzIHRvCisgKiAgICAgYm90aCBjb2RlIHVuaXRzIGFu
ZCBjb2RlIHBvaW50cy4gQ29kZSBwb2ludCBhY2Nlc3MgdmVyc2lvbnMgYXJlIGF2YWlsYWJsZQor
ICogICAgIGZvciB0aGUgb2xkIGFuZCB0aGUgbmV3IGl0ZXJhdGlvbiBzZW1hbnRpY3MuPC9saT4K
KyAqIDxsaT5UaGVyZSBhcmUgbmV3IGZ1bmN0aW9ucyBmb3Igc2V0dGluZyBhbmQgbW92aW5nIHRo
ZSBjdXJyZW50IHBvc2l0aW9uCisgKiAgICAgd2l0aG91dCByZXR1cm5pbmcgYSBjaGFyYWN0ZXIs
IGZvciBlZmZpY2llbmN5LjwvbGk+CisgKiA8L29sPgorICoKKyAqIFNlZSBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IgZm9yIGV4YW1wbGVzIGZvciB1c2luZyB0aGUgbmV3IGZvcndhcmQgaXRlcmF0
aW9uCisgKiBmdW5jdGlvbnMuIEZvciBiYWNrd2FyZCBpdGVyYXRpb24sIHRoZXJlIGlzIGFsc28g
YSBoYXNQcmV2aW91cygpIGZ1bmN0aW9uCisgKiB0aGF0IGNhbiBiZSB1c2VkIGFuYWxvZ291c2x5
IHRvIGhhc05leHQoKS4KKyAqIFRoZSBvbGQgZnVuY3Rpb25zIHdvcmsgYXMgYmVmb3JlIGFuZCBh
cmUgc2hvd24gYmVsb3cuPC9wPgorICoKKyAqIDxwPkV4YW1wbGVzIGZvciBzb21lIG9mIHRoZSBu
ZXcgZnVuY3Rpb25zOjwvcD4KKyAqCisgKiBGb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIGhhc05leHQo
KToKKyAqIFxjb2RlCisgKiB2b2lkIGZvcndhcmQxKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgewor
ICogICAgIFVDaGFyMzIgYzsKKyAqICAgICBmb3IoaXQuc2V0VG9TdGFydCgpOyBpdC5oYXNOZXh0
KCk7KSB7CisgKiAgICAgICAgIGM9aXQubmV4dDMyUG9zdEluYygpOworICogICAgICAgICAvLyB1
c2UgYworICogICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogRm9yd2FyZCBpdGVyYXRpb24g
bW9yZSBzaW1pbGFyIHRvIGxvb3BzIHdpdGggdGhlIG9sZCBmb3J3YXJkIGl0ZXJhdGlvbiwKKyAq
IHNob3dpbmcgYSB3YXkgdG8gY29udmVydCBzaW1wbGUgZm9yKCkgbG9vcHM6CisgKiBcY29kZQor
ICogdm9pZCBmb3J3YXJkMihDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhciBj
OworICogICAgIGZvcihjPWl0LmZpcnN0UG9zdEluYygpOyBjIT1DaGFyYWN0ZXJJdGVyYXRvcjo6
RE9ORTsgYz1pdC5uZXh0UG9zdEluYygpKSB7CisgKiAgICAgICAgICAvLyB1c2UgYworICogICAg
ICB9CisgKiB9CisgKiBcZW5kY29kZQorICogQmFja3dhcmQgaXRlcmF0aW9uIHdpdGggc2V0VG9F
bmQoKSBhbmQgaGFzUHJldmlvdXMoKToKKyAqIFxjb2RlCisgKiAgdm9pZCBiYWNrd2FyZDEoQ2hh
cmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgIFVDaGFyMzIgYzsKKyAqICAgICAgZm9yKGl0
LnNldFRvRW5kKCk7IGl0Lmhhc1ByZXZpb3VzKCk7KSB7CisgKiAgICAgICAgIGM9aXQucHJldmlv
dXMzMigpOworICogICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRj
b2RlCisgKiBCYWNrd2FyZCBpdGVyYXRpb24gd2l0aCBhIG1vcmUgdHJhZGl0aW9uYWwgZm9yKCkg
bG9vcDoKKyAqIFxjb2RlCisgKiB2b2lkIGJhY2t3YXJkMihDaGFyYWN0ZXJJdGVyYXRvciAmaXQp
IHsKKyAqICAgICBVQ2hhciBjOworICogICAgIGZvcihjPWl0Lmxhc3QoKTsgYyE9Q2hhcmFjdGVy
SXRlcmF0b3I6OkRPTkU7IGM9aXQucHJldmlvdXMoKSkgeworICogICAgICAgICAvLyB1c2UgYwor
ICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqCisgKiBFeGFtcGxlIGZvciByYW5kb20g
YWNjZXNzOgorICogXGNvZGUKKyAqICB2b2lkIHJhbmRvbShDaGFyYWN0ZXJJdGVyYXRvciAmaXQp
IHsKKyAqICAgICAgLy8gc2V0IHRvIHRoZSB0aGlyZCBjb2RlIHBvaW50IGZyb20gdGhlIGJlZ2lu
bmluZworICogICAgICBpdC5tb3ZlMzIoMywgQ2hhcmFjdGVySXRlcmF0b3I6OmtTdGFydCk7Cisg
KiAgICAgIC8vIGdldCBhIGNvZGUgcG9pbnQgZnJvbSBoZXJlIHdpdGhvdXQgbW92aW5nIHRoZSBw
b3NpdGlvbgorICogICAgICBVQ2hhcjMyIGM9aXQuY3VycmVudDMyKCk7CisgKiAgICAgIC8vIGdl
dCB0aGUgcG9zaXRpb24KKyAqICAgICAgaW50MzJfdCBwb3M9aXQuZ2V0SW5kZXgoKTsKKyAqICAg
ICAgLy8gZ2V0IHRoZSBwcmV2aW91cyBjb2RlIHVuaXQKKyAqICAgICAgVUNoYXIgdT1pdC5wcmV2
aW91cygpOworICogICAgICAvLyBtb3ZlIGJhY2sgb25lIG1vcmUgY29kZSB1bml0CisgKiAgICAg
IGl0Lm1vdmUoLTEsIENoYXJhY3Rlckl0ZXJhdG9yOjprQ3VycmVudCk7CisgKiAgICAgIC8vIHNl
dCB0aGUgcG9zaXRpb24gYmFjayB0byB3aGVyZSBpdCB3YXMKKyAqICAgICAgLy8gYW5kIHJlYWQg
dGhlIHNhbWUgY29kZSBwb2ludCBjIGFuZCBtb3ZlIGJleW9uZCBpdAorICogICAgICBpdC5zZXRJ
bmRleChwb3MpOworICogICAgICBpZihjIT1pdC5uZXh0MzJQb3N0SW5jKCkpIHsKKyAqICAgICAg
ICAgIGV4aXQoMSk7IC8vIENoYXJhY3Rlckl0ZXJhdG9yIGluY29uc2lzdGVudAorICogICAgICB9
CisgKiAgfQorICogXGVuZGNvZGUKKyAqCisgKiA8cD5FeGFtcGxlcywgZXNwZWNpYWxseSBmb3Ig
dGhlIG9sZCBBUEk6PC9wPgorICoKKyAqIEZ1bmN0aW9uIHByb2Nlc3NpbmcgY2hhcmFjdGVycywg
aW4gdGhpcyBleGFtcGxlIHNpbXBsZSBvdXRwdXQKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZv
aWQgcHJvY2Vzc0NoYXIoIFVDaGFyIGMgKQorICogIHsKKyAqICAgICAgY291dCA8PCAiICIgPDwg
YzsKKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSB0aGUgdGV4dCBm
cm9tIHN0YXJ0IHRvIGZpbmlzaAorICogPHByZT4gCisgKiBcY29kZQorICogIHZvaWQgdHJhdmVy
c2VGb3J3YXJkKENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyKQorICogIHsKKyAqICAgICAgZm9yKFVD
aGFyIGMgPSBpdGVyLmZpcnN0KCk7IGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgYyA9IGl0
ZXIubmV4dCgpKSB7CisgKiAgICAgICAgICBwcm9jZXNzQ2hhcihjKTsKKyAqICAgICAgfQorICog
IH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIFRyYXZlcnNlIHRoZSB0ZXh0IGJhY2t3YXJk
cywgZnJvbSBlbmQgdG8gc3RhcnQKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZvaWQgdHJhdmVy
c2VCYWNrd2FyZChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlcikKKyAqICB7CisgKiAgICAgIGZvcihV
Q2hhciBjID0gaXRlci5sYXN0KCk7IGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgYyA9IGl0
ZXIucHJldmlvdXMoKSkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgIH0K
KyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSBib3RoIGZvcndhcmQg
YW5kIGJhY2t3YXJkIGZyb20gYSBnaXZlbiBwb3NpdGlvbiBpbiB0aGUgdGV4dC4gCisgKiBDYWxs
cyB0byBub3RCb3VuZGFyeSgpIGluIHRoaXMgZXhhbXBsZSByZXByZXNlbnRzIHNvbWUgYWRkaXRp
b25hbCBzdG9wcGluZyBjcml0ZXJpYS4KKyAqIDxwcmU+CisgKiBcY29kZQorICogdm9pZCB0cmF2
ZXJzZU91dChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlciwgaW50MzJfdCBwb3MpCisgKiB7CisgKiAg
ICAgIFVDaGFyIGM7CisgKiAgICAgIGZvciAoYyA9IGl0ZXIuc2V0SW5kZXgocG9zKTsKKyAqICAg
ICAgYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIChVbmljb2RlOjppc0xldHRlcihjKSB8
fCBVbmljb2RlOjppc0RpZ2l0KGMpKTsKKyAqICAgICAgICAgIGMgPSBpdGVyLm5leHQoKSkge30K
KyAqICAgICAgaW50MzJfdCBlbmQgPSBpdGVyLmdldEluZGV4KCk7CisgKiAgICAgIGZvciAoYyA9
IGl0ZXIuc2V0SW5kZXgocG9zKTsKKyAqICAgICAgICAgIGMgIT0gQ2hhcmFjdGVySXRlcmF0b3Iu
RE9ORSAmJiAoVW5pY29kZTo6aXNMZXR0ZXIoYykgfHwgVW5pY29kZTo6aXNEaWdpdChjKSk7Cisg
KiAgICAgICAgICBjID0gaXRlci5wcmV2aW91cygpKSB7fQorICogICAgICBpbnQzMl90IHN0YXJ0
ID0gaXRlci5nZXRJbmRleCgpICsgMTsKKyAqICAKKyAqICAgICAgY291dCA8PCAic3RhcnQ6ICIg
PDwgc3RhcnQgPDwgIiBlbmQ6ICIgPDwgZW5kIDw8IGVuZGw7CisgKiAgICAgIGZvciAoYyA9IGl0
ZXIuc2V0SW5kZXgoc3RhcnQpOyBpdGVyLmdldEluZGV4KCkgPCBlbmQ7IGMgPSBpdGVyLm5leHQo
KSApIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMpOworICogICAgIH0KKyAqICB9CisgKiBc
ZW5kY29kZQorICogPC9wcmU+CisgKiBDcmVhdGluZyBhIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9y
IGFuZCBjYWxsaW5nIHRoZSB0ZXN0IGZ1bmN0aW9ucworICogPHByZT4KKyAqIFxjb2RlCisgKiAg
dm9pZCBDaGFyYWN0ZXJJdGVyYXRvcl9FeGFtcGxlKCB2b2lkICkKKyAqICAgeworICogICAgICAg
Y291dCA8PCBlbmRsIDw8ICI9PT09PSBDaGFyYWN0ZXJJdGVyYXRvcl9FeGFtcGxlOiA9PT09PSIg
PDwgZW5kbDsKKyAqICAgICAgIFVuaWNvZGVTdHJpbmcgdGV4dCgiRWluIGtsZWluZXIgU2F0ei4i
KTsKKyAqICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yKHRleHQpOworICog
ICAgICAgY291dCA8PCAiLS0tLS0gdHJhdmVyc2VGb3J3YXJkOiAtLS0tLS0tLS0tLSIgPDwgZW5k
bDsKKyAqICAgICAgIHRyYXZlcnNlRm9yd2FyZCggaXRlcmF0b3IgKTsKKyAqICAgICAgIGNvdXQg
PDwgZW5kbCA8PCBlbmRsIDw8ICItLS0tLSB0cmF2ZXJzZUJhY2t3YXJkOiAtLS0tLS0tLS0tIiA8
PCBlbmRsOworICogICAgICAgdHJhdmVyc2VCYWNrd2FyZCggaXRlcmF0b3IgKTsKKyAqICAgICAg
IGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICItLS0tLSB0cmF2ZXJzZU91dDogLS0tLS0tLS0tLS0t
LS0tIiA8PCBlbmRsOworICogICAgICAgdHJhdmVyc2VPdXQoIGl0ZXJhdG9yLCA3ICk7CisgKiAg
ICAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0iIDw8IGVuZGw7CisgKiAgIH0KKyAq
IFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3Mg
VV9DT01NT05fQVBJIENoYXJhY3Rlckl0ZXJhdG9yIDogcHVibGljIEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogT3JpZ2luIGVudW1lcmF0aW9uIGZv
ciB0aGUgbW92ZSgpIGFuZCBtb3ZlMzIoKSBmdW5jdGlvbnMuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgZW51bSBFT3JpZ2luIHsga1N0YXJ0LCBrQ3VycmVudCwga0VuZCB9
OworCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3Rvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIH5DaGFyYWN0ZXJJdGVyYXRvcigpOworCisgICAgLyoqCisg
ICAgICogUmV0dXJucyBhIHBvaW50ZXIgdG8gYSBuZXcgQ2hhcmFjdGVySXRlcmF0b3Igb2YgdGhl
IHNhbWUKKyAgICAgKiBjb25jcmV0ZSBjbGFzcyBhcyB0aGlzIG9uZSwgYW5kIHJlZmVycmluZyB0
byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSB0ZXh0LXN0b3JhZ2Ugb2Jq
ZWN0IGFzIHRoaXMgb25lLiAgVGhlCisgICAgICogY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBk
ZWxldGluZyB0aGUgbmV3IGNsb25lLiAgCisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBu
ZXcgQ2hhcmFjdGVySXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdCA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29k
ZSB1bml0IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBj
b2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24g
d2l0aCBuZXh0KCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBp
dGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBVQ2hhciAgICAgICAgIGZpcnN0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisg
ICAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSB1bml0LCBhbmQgbW92ZXMg
dGhlIHBvc2l0aW9uCisgICAgICogdG8gdGhlIHNlY29uZCBjb2RlIHVuaXQuIFRoaXMgaXMgYW4g
YWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9u
IHdpdGggbmV4dFBvc3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQg
aW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3RQb3N0SW5jKHZvaWQpOworCisgICAgLyoq
CisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9p
bnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUg
dW5pdCwKKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRo
IG5leHQzMigpLgorICAgICAqIE5vdGUgdGhhdCBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0
SW5jKCksIGJlZ2lubmluZyB3aXRoLAorICAgICAqIGUuZy4sIHNldFRvU3RhcnQoKSBvciBmaXJz
dFBvc3RJbmMoKSwgaXMgbW9yZSBlZmZpY2llbnQuCisgICAgICogQHJldHVybiB0aGUgZmlyc3Qg
Y29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyKHZvaWQpID0gMDsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJz
dCBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0
IGNvZGUgcG9pbnQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICAgKiB0byB0aGUgc2Vjb25k
IGNvZGUgcG9pbnQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAg
ICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLgorICAgICAqIEBy
ZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmly
c3QzMlBvc3RJbmModm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0
byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IG9yIGNvZGUgcG9pbnQgaW4gaXRzCisgICAg
ICogaXRlcmF0aW9uIHJhbmdlLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGEgZm9yd2FyZAor
ICAgICAqIGl0ZXJhdGlvbiB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9zdEluYygpLgor
ICAgICAqIEByZXR1cm4gdGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICBz
ZXRUb1N0YXJ0KCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZl
ciB0byB0aGUgbGFzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBh
bmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJl
Z2luIGFuIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkuCisgICAgICogQHJldHVybiB0aGUgbGFz
dCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBVQ2hhciAgICAgICAgIGxhc3Qodm9pZCkgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0
cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisg
ICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91
czMyKCkuCisgICAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBsYXN0MzIodm9p
ZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gdGhlIGVuZCBv
ZiBpdHMgaXRlcmF0aW9uIHJhbmdlLCBqdXN0IGJlaGluZAorICAgICAqIHRoZSBsYXN0IGNvZGUg
dW5pdCBvciBjb2RlIHBvaW50LiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGEgYmFja3dhcmQK
KyAgICAgKiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIoKS4KKyAgICAg
KiBAcmV0dXJuIHRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgIHNldFRvRW5k
KCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUg
InBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVj
dCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAgICAgKiByZXR1cm5zIHRoYXQgY29kZSB1
bml0LiAgCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5p
dCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlICJwb3NpdGlv
biItdGggY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUNoYXIgICAgICAgICBzZXRJbmRleChpbnQzMl90IHBvc2l0aW9uKSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgYmVnaW5uaW5n
IG9mIHRoZSBjb2RlIHBvaW50CisgICAgICogdGhhdCBjb250YWlucyB0aGUgInBvc2l0aW9uIi10
aCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0
b3IgcmVmZXJzIHRvLCBhbmQKKyAgICAgKiByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4KKyAgICAg
KiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyBhZGp1c3RlZCB0byB0aGUgYmVnaW5uaW5nIG9mIHRo
ZSBjb2RlIHBvaW50CisgICAgICogKGl0cyBmaXJzdCBjb2RlIHVuaXQpLgorICAgICAqIEBwYXJh
bSBwb3NpdGlvbiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQgaW4gdGhlIHRleHQtc3RvcmFn
ZSBvYmplY3QKKyAgICAgKiBAcmV0dXJuIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgcG9pbnQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAg
IHNldEluZGV4MzIoaW50MzJfdCBwb3NpdGlvbikgPSAwOworCisgICAgLyoqCisgICAgICogUmV0
dXJucyB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLiAKKyAg
ICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4gCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGN1cnJlbnQodm9pZCkgY29u
c3QgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50
IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLiAgCisgICAgICogQHJldHVybiB0aGUg
Y3VycmVudCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIzMiAgICAgICBjdXJyZW50MzIodm9pZCkgY29uc3QgPSAwOworICAgICAg
ICAKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5kZXgoKSksIGFuZCByZXR1cm5z
IHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSB1
bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIg
ICAgICAgICBuZXh0KHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5j
ZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICog
KHRvd2FyZCBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhl
cmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9O
RS4KKyAgICAgKiBOb3RlIHRoYXQgaXRlcmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIHNlbWFu
dGljcyBpcyBsZXNzCisgICAgICogZWZmaWNpZW50IHRoYW4gaXRlcmF0aW9uIHdpdGggInBvc3Qt
aW5jcmVtZW50IiBzZW1hbnRpY3MKKyAgICAgKiB0aGF0IGlzIHByb3ZpZGVkIGJ5IG5leHQzMlBv
c3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgcG9pbnQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMih2
b2lkKSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2
aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgc3Rh
cnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUKKyAg
ICAgKiBubyBtb3JlIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuICAKKyAgICAg
KiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIHByZXZpb3VzKHZvaWQpID0gMDsK
KworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIHN0YXJ0SW5kZXgoKSksIGFuZCBy
ZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29k
ZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuIAorICAgICAqIEByZXR1cm4gdGhlIHBy
ZXZpb3VzIGNvZGUgcG9pbnQuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIzMiAgICAgICBwcmV2aW91czMyKHZvaWQpID0gMDsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBj
b2RlIHBvaW50cworICAgICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlLgorICAgICAqIFRoaXMgaXMgdXNlZCB3aXRoIHByZXZpb3VzKCkgb3IgcHJl
dmlvdXMzMigpIGluIGJhY2t3YXJkCisgICAgICogaXRlcmF0aW9uLgorICAgICAqIEByZXR1cm4g
RkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAg
ICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLCBy
ZXR1cm4gVFJVRSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzUHJldmlvdXMoKSA9IDA7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3Rv
cmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGZpcnN0KCku
ICBTaW5jZSBpdCdzCisgICAgICogcG9zc2libGUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yIHRoYXQg
aXRlcmF0ZXMgYWNyb3NzIG9ubHkKKyAgICAgKiBwYXJ0IG9mIGEgdGV4dC1zdG9yYWdlIG9iamVj
dCwgdGhpcyBudW1iZXIgaXNuJ3QKKyAgICAgKiBuZWNlc3NhcmlseSAwLiAgCisgICAgICogQHJl
dHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisg
ICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0ZXIgcmV0dXJuZWQgYnkgZmlyc3QoKS4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBzdGFy
dEluZGV4KHZvaWQpIGNvbnN0OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRo
ZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9i
amVjdCBvZiB0aGUgcG9zaXRpb24gaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBjaGFyYWN0ZXIKKyAg
ICAgKiByZXR1cm5lZCBieSBsYXN0KCkuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1lcmljIGlu
ZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUg
cG9zaXRpb24gaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiByZXR1cm5l
ZCBieSBsYXN0KCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5l
IGludDMyX3QgICAgICAgZW5kSW5kZXgodm9pZCkgY29uc3Q7CisgICAgICAgIAorICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1z
dG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0ZXIgdGhlIGl0ZXJhdG9yIGN1cnJl
bnRseSByZWZlcnMgdG8KKyAgICAgKiAoaS5lLiwgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBj
dXJyZW50KCkpLiAgCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyaWMgaW5kZXggaW4gdGhlIHRl
eHQtc3RvcmFnZSBvYmplY3Qgb2YgCisgICAgICogdGhlIGNoYXJhY3RlciB0aGUgaXRlcmF0b3Ig
Y3VycmVudGx5IHJlZmVycyB0bworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IGlubGluZSBpbnQzMl90ICAgICAgIGdldEluZGV4KHZvaWQpIGNvbnN0OworCisgICAgLyoqCisg
ICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBlbnRpcmUgdGV4dCBpbiB0aGUgdW5kZXJs
eWluZworICAgICAqIHRleHQtc3RvcmFnZSBvYmplY3QuCisgICAgICogQHJldHVybiB0aGUgbGVu
Z3RoIG9mIHRoZSBlbnRpcmUgdGV4dCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgICAgICAgICBn
ZXRMZW5ndGgoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBv
c2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0
aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisg
ICAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgdW5pdHMg
Zm9yd2FyZAorICAgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBu
ZWdhdGl2ZSBkZWx0YS4KKyAgICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZl
IHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgICAqIGEgbmVn
YXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4g
ZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAgICogQHJldHVybiB0aGUg
bmV3IHBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90ICAgICAgbW92ZShpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbikgPSAwOwor
CisgICAgLyoqCisgICAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8g
dGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0
aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGl0c2VsZi4KKyAgICAgKiBUaGUgbW92ZW1lbnQg
aXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSBwb2ludHMgZm9yd2FyZAorICAgICAqIG9y
IGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAg
ICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdpbi4gQSBwb3Np
dGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMg
YmFja3dhcmQuCisgICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFy
dCwga0N1cnJlbnQsIGtFbmR9CisgICAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92
ZTMyKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKSA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBDb3BpZXMgdGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcK
KyAgICAgKiByZWZlcnJlZCB0byBieSAicmVzdWx0Ii4gIAorICAgICAqIEBwYXJhbSByZXN1bHQg
UmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4gIAorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRl
eHQoVW5pY29kZVN0cmluZyYgIHJlc3VsdCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgLyoqCisg
ICAgICogRW1wdHkgY29uc3RydWN0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9y
LCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0aCBmaWVsZCBpbiB0aGlzIGJhc2UgY2xhc3MuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoaW50MzJf
dCBsZW5ndGgpOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0
aGUgbGVuZ3RoIGFuZCBwb3NpdGlvbiBmaWVsZHMgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3Qg
bGVuZ3RoLCBpbnQzMl90IHBvc2l0aW9uKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9y
LCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0aCwgc3RhcnQsIGVuZCwgYW5kIHBvc2l0aW9uIGZpZWxk
cyBpbiB0aGlzIGJhc2UgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgQ2hhcmFjdGVySXRlcmF0b3IoaW50MzJfdCBsZW5ndGgsIGludDMyX3QgdGV4dEJlZ2luLCBp
bnQzMl90IHRleHRFbmQsIGludDMyX3QgcG9zaXRpb24pOworICAKKyAgICAvKioKKyAgICAgKiBD
b3B5IGNvbnN0cnVjdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIHRoYXQgVGhlIENoYXJhY3Rl
ckl0ZXJhdG9yIHRvIGJlIGNvcGllZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIENoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IENoYXJhY3Rlckl0ZXJhdG9yICZ0aGF0KTsKKwor
ICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICBTZXRzIHRoaXMgQ2hhcmFjdGVy
SXRlcmF0b3IgdG8gaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwKKyAgICAgKiBhcyB0aGUgb25lIHBh
c3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgcGFzc2Vk
IGluLgorICAgICAqIEByZXR1cm4gdGhlIG5ld2x5IHNldCBDaGFyYWN0ZXJJdGVyYXRvci4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvciAmb3Bl
cmF0b3I9KGNvbnN0IENoYXJhY3Rlckl0ZXJhdG9yICZ0aGF0KTsKKworICAgIC8qKgorICAgICAq
IEJhc2UgY2xhc3MgdGV4dCBsZW5ndGggZmllbGQuCisgICAgICogTmVjZXNzYXJ5IHRoaXMgZm9y
IGNvcnJlY3QgZ2V0VGV4dCgpIGFuZCBoYXNoQ29kZSgpLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGludDMyX3QgdGV4dExlbmd0aDsKKworICAgIC8qKgorICAgICAqIEJh
c2UgY2xhc3MgZmllbGQgZm9yIHRoZSBjdXJyZW50IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIHBvczsKKworICAgIC8qKgorICAgICAqIEJh
c2UgY2xhc3MgZmllbGQgZm9yIHRoZSBzdGFydCBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIGJlZ2luOworCisgICAg
LyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9u
IHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIGVu
ZDsKK307CisKK2lubGluZSBVQm9vbAorRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yOjpvcGVyYXRv
ciE9KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3QgeworICAgIHJl
dHVybiAhb3BlcmF0b3I9PSh0aGF0KTsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0
ZXJhdG9yOjpzZXRUb1N0YXJ0KCkgeworICAgIHJldHVybiBtb3ZlKDAsIGtTdGFydCk7Cit9CisK
K2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6c2V0VG9FbmQoKSB7CisgICAgcmV0
dXJuIG1vdmUoMCwga0VuZCk7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRv
cjo6c3RhcnRJbmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIGJlZ2luOworfQorCitpbmxp
bmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OmVuZEluZGV4KHZvaWQpIGNvbnN0IHsKKyAg
ICByZXR1cm4gZW5kOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6Omdl
dEluZGV4KHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gcG9zOworfQorCitpbmxpbmUgaW50MzJf
dAorQ2hhcmFjdGVySXRlcmF0b3I6OmdldExlbmd0aCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJu
IHRleHRMZW5ndGg7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xv
Y2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWFkNWNiNTQ2ZWJlMzk3ZWY0MzZkZjM2NTAzZWI0MzcxYzM4NjY5
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaApAQCAt
MCwwICsxLDgxNCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdo
dCAoQykgMTk5Ni0yMDE1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29y
cG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyoKKyogRmlsZSBsb2NpZC5oCisqCisqIENyZWF0ZWQgYnk6IEhlbGVuYSBT
aGloCisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUg
ICAgICAgIERlc2NyaXB0aW9uCisqICAgMDIvMTEvOTcgICAgYWxpdSAgICAgICAgQ2hhbmdlZCBn
TG9jUGF0aCB0byBmZ0xvY1BhdGggYW5kIGFkZGVkIG1ldGhvZHMgdG8KKyogICAgICAgICAgICAg
ICAgICAgICAgICAgICBnZXQgYW5kIHNldCBpdC4KKyogICAwNC8wMi85NyAgICBhbGl1ICAgICAg
ICBNYWRlIG9wZXJhdG9yIT0gaW5saW5lOyBmaXhlZCByZXR1cm4gdmFsdWUgb2YgZ2V0TmFtZSgp
LgorKiAgIDA0LzE1Lzk3ICAgIGFsaXUgICAgICAgIENsZWFudXAgZm9yIEFJWC9XaW4zMi4KKyog
ICAwNC8yNC85NyAgICBhbGl1ICAgICAgICBOdW1lcm91cyBjaGFuZ2VzIHBlciBjb2RlIHJldmll
dy4KKyogICAwOC8xOC85OCAgICBzdGVwaGVuICAgICBBZGRlZCB0b2tlbml6ZVN0cmluZygpLGNo
YW5nZWQgZ2V0RGlzcGxheU5hbWUoKQorKiAgIDA5LzA4Lzk4ICAgIHN0ZXBoZW4gICAgIE1vdmVk
IGRlZmluaXRpb24gb2Yga0VtcHR5U3RyaW5nIGZvciBNYWMgUG9ydAorKiAgIDExLzA5Lzk5ICAg
IHdlaXYgICAgICAgIEFkZGVkIGNvbnN0IGNoYXIgKiBnZXROYW1lKCkgY29uc3Q7CisqICAgMDQv
MTIvMDAgICAgc3JsICAgICAgICAgcmVtb3ZpbmcgdW5pY29kZXN0cmluZyBhcGkncyBhbmQgY2Fj
aGVkIGhhc2ggY29kZQorKiAgIDA4LzEwLzAxICAgIGdyaG90ZW4gICAgIENoYW5nZSB0aGUgc3Rh
dGljIExvY2FsZXMgdG8gYWNjZXNzb3IgZnVuY3Rpb25zCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyovCisKKyNpZm5kZWYgTE9DSURfSAorI2RlZmluZSBMT0NJRF9ICisKKyNpbmNsdWRlICJ1bmlj
b2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdW5pc3RyLmgiCisjaW5jbHVkZSAidW5pY29kZS9wdXRpbC5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdWxvYy5oIgorI2luY2x1ZGUgInVuaWNvZGUvc3RyZW51bS5oIgorCisvKioKKyAqIFxm
aWxlCisgKiBcYnJpZWYgQysrIEFQSTogTG9jYWxlIElEIG9iamVjdC4KKyAqLworCitVX05BTUVT
UEFDRV9CRUdJTgorCisvLyBGb3J3YXJkIERlY2xhcmF0aW9ucwordm9pZCBVX0NBTExDT05WIGxv
Y2FsZV9hdmFpbGFibGVfaW5pdCgpOyAvKio8IEBpbnRlcm5hbCAqLworCisvKioKKyAqIEEgPGNv
ZGU+TG9jYWxlPC9jb2RlPiBvYmplY3QgcmVwcmVzZW50cyBhIHNwZWNpZmljIGdlb2dyYXBoaWNh
bCwgcG9saXRpY2FsLAorICogb3IgY3VsdHVyYWwgcmVnaW9uLiBBbiBvcGVyYXRpb24gdGhhdCBy
ZXF1aXJlcyBhIDxjb2RlPkxvY2FsZTwvY29kZT4gdG8gcGVyZm9ybQorICogaXRzIHRhc2sgaXMg
Y2FsbGVkIDxlbT5sb2NhbGUtc2Vuc2l0aXZlPC9lbT4gYW5kIHVzZXMgdGhlIDxjb2RlPkxvY2Fs
ZTwvY29kZT4KKyAqIHRvIHRhaWxvciBpbmZvcm1hdGlvbiBmb3IgdGhlIHVzZXIuIEZvciBleGFt
cGxlLCBkaXNwbGF5aW5nIGEgbnVtYmVyCisgKiBpcyBhIGxvY2FsZS1zZW5zaXRpdmUgb3BlcmF0
aW9uLS10aGUgbnVtYmVyIHNob3VsZCBiZSBmb3JtYXR0ZWQKKyAqIGFjY29yZGluZyB0byB0aGUg
Y3VzdG9tcy9jb252ZW50aW9ucyBvZiB0aGUgdXNlcidzIG5hdGl2ZSBjb3VudHJ5LAorICogcmVn
aW9uLCBvciBjdWx0dXJlLgorICoKKyAqIFRoZSBMb2NhbGUgY2xhc3MgaXMgbm90IHN1aXRhYmxl
IGZvciBzdWJjbGFzc2luZy4KKyAqCisgKiA8UD4KKyAqIFlvdSBjYW4gY3JlYXRlIGEgPGNvZGU+
TG9jYWxlPC9jb2RlPiBvYmplY3QgdXNpbmcgdGhlIGNvbnN0cnVjdG9yIGluCisgKiB0aGlzIGNs
YXNzOgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICog
ICAgICAgTG9jYWxlKCBjb25zdCAgIGNoYXIqICBsYW5ndWFnZSwKKyAqICAgICAgICAgICAgICAg
Y29uc3QgICBjaGFyKiAgY291bnRyeSwKKyAqICAgICAgICAgICAgICAgY29uc3QgICBjaGFyKiAg
dmFyaWFudCk7CisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9u
bHkKKyAqIFRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JzIGlzIGEgdmFsaWQg
PFNUUk9ORz5JU08KKyAqIExhbmd1YWdlIENvZGUuPC9TVFJPTkc+IFRoZXNlIGNvZGVzIGFyZSB0
aGUgbG93ZXItY2FzZSB0d28tbGV0dGVyCisgKiBjb2RlcyBhcyBkZWZpbmVkIGJ5IElTTy02Mzku
CisgKiBZb3UgY2FuIGZpbmQgYSBmdWxsIGxpc3Qgb2YgdGhlc2UgY29kZXMgYXQ6CisgKiA8QlI+
PGEgaHJlZiA9Imh0dHA6Ly93d3cubG9jLmdvdi9zdGFuZGFyZHMvaXNvNjM5LTIvIj4KKyAqIGh0
dHA6Ly93d3cubG9jLmdvdi9zdGFuZGFyZHMvaXNvNjM5LTIvPC9hPgorICoKKyAqIDxQPgorICog
VGhlIHNlY29uZCBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JzIGlzIGEgdmFsaWQgPFNUUk9O
Rz5JU08gQ291bnRyeQorICogQ29kZS48L1NUUk9ORz4gVGhlc2UgY29kZXMgYXJlIHRoZSB1cHBl
ci1jYXNlIHR3by1sZXR0ZXIgY29kZXMKKyAqIGFzIGRlZmluZWQgYnkgSVNPLTMxNjYuCisgKiBZ
b3UgY2FuIGZpbmQgYSBmdWxsIGxpc3Qgb2YgdGhlc2UgY29kZXMgYXQgYSBudW1iZXIgb2Ygc2l0
ZXMsIHN1Y2ggYXM6CisgKiA8QlI+PGEgaHJlZj0iaHR0cDovL3d3dy5pc28ub3JnL2lzby9lbi9w
cm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEvaW5kZXguaHRtbCI+CisgKiBodHRwOi8vd3d3Lmlzby5v
cmcvaXNvL2VuL3Byb2RzLXNlcnZpY2VzL2lzbzMxNjZtYS9pbmRleC5odG1sPC9hPgorICoKKyAq
IDxQPgorICogVGhlIHRoaXJkIGNvbnN0cnVjdG9yIHJlcXVpcmVzIGEgdGhpcmQgYXJndW1lbnQt
LXRoZSA8U1RST05HPlZhcmlhbnQuPC9TVFJPTkc+CisgKiBUaGUgVmFyaWFudCBjb2RlcyBhcmUg
dmVuZG9yIGFuZCBicm93c2VyLXNwZWNpZmljLgorICogRm9yIGV4YW1wbGUsIHVzZSBSRVZJU0VE
IGZvciBhIGxhbmdhdWdlJ3MgcmV2aXNlZCBzY3JpcHQgb3J0aG9ncmFwaHksIGFuZCBQT1NJWCBm
b3IgUE9TSVguCisgKiBXaGVyZSB0aGVyZSBhcmUgdHdvIHZhcmlhbnRzLCBzZXBhcmF0ZSB0aGVt
IHdpdGggYW4gdW5kZXJzY29yZSwgYW5kCisgKiBwdXQgdGhlIG1vc3QgaW1wb3J0YW50IG9uZSBm
aXJzdC4gRm9yCisgKiBleGFtcGxlLCBhIFRyYWRpdGlvbmFsIFNwYW5pc2ggY29sbGF0aW9uIG1p
Z2h0IGJlIHJlZmVyZW5jZWQsIHdpdGgKKyAqICJFUyIsICJFUyIsICJUcmFkaXRpb25hbF9QT1NJ
WCIuCisgKgorICogPFA+CisgKiBCZWNhdXNlIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3Qg
aXMganVzdCBhbiBpZGVudGlmaWVyIGZvciBhIHJlZ2lvbiwKKyAqIG5vIHZhbGlkaXR5IGNoZWNr
IGlzIHBlcmZvcm1lZCB3aGVuIHlvdSBjb25zdHJ1Y3QgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+Lgor
ICogSWYgeW91IHdhbnQgdG8gc2VlIHdoZXRoZXIgcGFydGljdWxhciByZXNvdXJjZXMgYXJlIGF2
YWlsYWJsZSBmb3IgdGhlCisgKiA8Y29kZT5Mb2NhbGU8L2NvZGU+IHlvdSBjb25zdHJ1Y3QsIHlv
dSBtdXN0IHF1ZXJ5IHRob3NlIHJlc291cmNlcy4gRm9yCisgKiBleGFtcGxlLCBhc2sgdGhlIDxj
b2RlPk51bWJlckZvcm1hdDwvY29kZT4gZm9yIHRoZSBsb2NhbGVzIGl0IHN1cHBvcnRzCisgKiB1
c2luZyBpdHMgPGNvZGU+Z2V0QXZhaWxhYmxlTG9jYWxlczwvY29kZT4gbWV0aG9kLgorICogPEJS
PjxTVFJPTkc+Tm90ZTo8L1NUUk9ORz4gV2hlbiB5b3UgYXNrIGZvciBhIHJlc291cmNlIGZvciBh
IHBhcnRpY3VsYXIKKyAqIGxvY2FsZSwgeW91IGdldCBiYWNrIHRoZSBiZXN0IGF2YWlsYWJsZSBt
YXRjaCwgbm90IG5lY2Vzc2FyaWx5CisgKiBwcmVjaXNlbHkgd2hhdCB5b3UgYXNrZWQgZm9yLiBG
b3IgbW9yZSBpbmZvcm1hdGlvbiwgbG9vayBhdAorICogPGNvZGU+UmVzb3VyY2VCdW5kbGU8L2Nv
ZGU+LgorICoKKyAqIDxQPgorICogVGhlIDxjb2RlPkxvY2FsZTwvY29kZT4gY2xhc3MgcHJvdmlk
ZXMgYSBudW1iZXIgb2YgY29udmVuaWVudCBjb25zdGFudHMKKyAqIHRoYXQgeW91IGNhbiB1c2Ug
dG8gY3JlYXRlIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0cyBmb3IgY29tbW9ubHkgdXNlZAor
ICogbG9jYWxlcy4gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgcmVmZXJzIHRvIGEgPGNvZGU+
TG9jYWxlPC9jb2RlPiBvYmplY3QKKyAqIGZvciB0aGUgVW5pdGVkIFN0YXRlczoKKyAqIFxodG1s
b25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICAgIExvY2FsZTo6
Z2V0VVMoKQorICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5
CisgKgorICogPFA+CisgKiBPbmNlIHlvdSd2ZSBjcmVhdGVkIGEgPGNvZGU+TG9jYWxlPC9jb2Rl
PiB5b3UgY2FuIHF1ZXJ5IGl0IGZvciBpbmZvcm1hdGlvbiBhYm91dAorICogaXRzZWxmLiBVc2Ug
PGNvZGU+Z2V0Q291bnRyeTwvY29kZT4gdG8gZ2V0IHRoZSBJU08gQ291bnRyeSBDb2RlIGFuZAor
ICogPGNvZGU+Z2V0TGFuZ3VhZ2U8L2NvZGU+IHRvIGdldCB0aGUgSVNPIExhbmd1YWdlIENvZGUu
IFlvdSBjYW4KKyAqIHVzZSA8Y29kZT5nZXREaXNwbGF5Q291bnRyeTwvY29kZT4gdG8gZ2V0IHRo
ZQorICogbmFtZSBvZiB0aGUgY291bnRyeSBzdWl0YWJsZSBmb3IgZGlzcGxheWluZyB0byB0aGUg
dXNlci4gU2ltaWxhcmx5LAorICogeW91IGNhbiB1c2UgPGNvZGU+Z2V0RGlzcGxheUxhbmd1YWdl
PC9jb2RlPiB0byBnZXQgdGhlIG5hbWUgb2YKKyAqIHRoZSBsYW5ndWFnZSBzdWl0YWJsZSBmb3Ig
ZGlzcGxheWluZyB0byB0aGUgdXNlci4gSW50ZXJlc3RpbmdseSwKKyAqIHRoZSA8Y29kZT5nZXRE
aXNwbGF5WFhYPC9jb2RlPiBtZXRob2RzIGFyZSB0aGVtc2VsdmVzIGxvY2FsZS1zZW5zaXRpdmUK
KyAqIGFuZCBoYXZlIHR3byB2ZXJzaW9uczogb25lIHRoYXQgdXNlcyB0aGUgZGVmYXVsdCBsb2Nh
bGUgYW5kIG9uZQorICogdGhhdCB0YWtlcyBhIGxvY2FsZSBhcyBhbiBhcmd1bWVudCBhbmQgZGlz
cGxheXMgdGhlIG5hbWUgb3IgY291bnRyeSBpbgorICogYSBsYW5ndWFnZSBhcHByb3ByaWF0ZSB0
byB0aGF0IGxvY2FsZS4KKyAqCisgKiA8UD4KKyAqIElDVSBwcm92aWRlcyBhIG51bWJlciBvZiBj
bGFzc2VzIHRoYXQgcGVyZm9ybSBsb2NhbGUtc2Vuc2l0aXZlCisgKiBvcGVyYXRpb25zLiBGb3Ig
ZXhhbXBsZSwgdGhlIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gY2xhc3MgZm9ybWF0cworICog
bnVtYmVycywgY3VycmVuY3ksIG9yIHBlcmNlbnRhZ2VzIGluIGEgbG9jYWxlLXNlbnNpdGl2ZSBt
YW5uZXIuIENsYXNzZXMKKyAqIHN1Y2ggYXMgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBoYXZl
IGEgbnVtYmVyIG9mIGNvbnZlbmllbmNlIG1ldGhvZHMKKyAqIGZvciBjcmVhdGluZyBhIGRlZmF1
bHQgb2JqZWN0IG9mIHRoYXQgdHlwZS4gRm9yIGV4YW1wbGUsIHRoZQorICogPGNvZGU+TnVtYmVy
Rm9ybWF0PC9jb2RlPiBjbGFzcyBwcm92aWRlcyB0aGVzZSB0aHJlZSBjb252ZW5pZW5jZSBtZXRo
b2RzCisgKiBmb3IgY3JlYXRpbmcgYSBkZWZhdWx0IDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4g
b2JqZWN0OgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgor
ICogICAgIFVFcnJvckNvZGUgc3VjY2VzcyA9IFVfWkVST19FUlJPUjsKKyAqICAgICBMb2NhbGUg
bXlMb2NhbGU7CisgKiAgICAgTnVtYmVyRm9ybWF0ICpuZjsKKyAqCisgKiAgICAgbmYgPSBOdW1i
ZXJGb3JtYXQ6OmNyZWF0ZUluc3RhbmNlKCBzdWNjZXNzICk7ICAgICAgICAgIGRlbGV0ZSBuZjsK
KyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlQ3VycmVuY3lJbnN0YW5jZSggc3VjY2Vz
cyApOyAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVQZXJjZW50
SW5zdGFuY2UoIHN1Y2Nlc3MgKTsgICBkZWxldGUgbmY7CisgKiA8L3ByZT4KKyAqIFxodG1sb25s
eTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIEVhY2ggb2YgdGhlc2UgbWV0aG9kcyBoYXMg
dHdvIHZhcmlhbnRzOyBvbmUgd2l0aCBhbiBleHBsaWNpdCBsb2NhbGUKKyAqIGFuZCBvbmUgd2l0
aG91dDsgdGhlIGxhdHRlciB1c2luZyB0aGUgZGVmYXVsdCBsb2NhbGUuCisgKiBcaHRtbG9ubHk8
YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgbmYgPSBOdW1iZXJGb3Jt
YXQ6OmNyZWF0ZUluc3RhbmNlKCBteUxvY2FsZSwgc3VjY2VzcyApOyAgICAgICAgICBkZWxldGUg
bmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUN1cnJlbmN5SW5zdGFuY2UoIG15
TG9jYWxlLCBzdWNjZXNzICk7ICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6
OmNyZWF0ZVBlcmNlbnRJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgICBkZWxldGUgbmY7
CisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIEEg
PGNvZGU+TG9jYWxlPC9jb2RlPiBpcyB0aGUgbWVjaGFuaXNtIGZvciBpZGVudGlmeWluZyB0aGUg
a2luZCBvZiBvYmplY3QKKyAqICg8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+KSB0aGF0IHlvdSB3
b3VsZCBsaWtlIHRvIGdldC4gVGhlIGxvY2FsZSBpcworICogPFNUUk9ORz5qdXN0PC9TVFJPTkc+
IGEgbWVjaGFuaXNtIGZvciBpZGVudGlmeWluZyBvYmplY3RzLAorICogPFNUUk9ORz5ub3Q8L1NU
Uk9ORz4gYSBjb250YWluZXIgZm9yIHRoZSBvYmplY3RzIHRoZW1zZWx2ZXMuCisgKgorICogPFA+
CisgKiBFYWNoIGNsYXNzIHRoYXQgcGVyZm9ybXMgbG9jYWxlLXNlbnNpdGl2ZSBvcGVyYXRpb25z
IGFsbG93cyB5b3UKKyAqIHRvIGdldCBhbGwgdGhlIGF2YWlsYWJsZSBvYmplY3RzIG9mIHRoYXQg
dHlwZS4gWW91IGNhbiBzaWZ0CisgKiB0aHJvdWdoIHRoZXNlIG9iamVjdHMgYnkgbGFuZ3VhZ2Us
IGNvdW50cnksIG9yIHZhcmlhbnQsCisgKiBhbmQgdXNlIHRoZSBkaXNwbGF5IG5hbWVzIHRvIHBy
ZXNlbnQgYSBtZW51IHRvIHRoZSB1c2VyLgorICogRm9yIGV4YW1wbGUsIHlvdSBjYW4gY3JlYXRl
IGEgbWVudSBvZiBhbGwgdGhlIGNvbGxhdGlvbiBvYmplY3RzCisgKiBzdWl0YWJsZSBmb3IgYSBn
aXZlbiBsYW5ndWFnZS4gU3VjaCBjbGFzc2VzIGltcGxlbWVudCB0aGVzZQorICogdGhyZWUgY2xh
c3MgbWV0aG9kczoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHBy
ZT4KKyAqICAgICAgIHN0YXRpYyBMb2NhbGUqIGdldEF2YWlsYWJsZUxvY2FsZXMoaW50MzJfdCYg
bnVtTG9jYWxlcykKKyAqICAgICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBnZXREaXNwbGF5TmFt
ZShjb25zdCBMb2NhbGUmICBvYmplY3RMb2NhbGUsCisgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxlJiAgZGlzcGxheUxvY2FsZSwKKyAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBk
aXNwbGF5TmFtZSkKKyAqICAgICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBnZXREaXNwbGF5TmFt
ZShjb25zdCBMb2NhbGUmICBvYmplY3RMb2NhbGUsCisgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcGxheU5hbWUpCisgKiA8L3By
ZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqCisgKiBAc3RhYmxl
IElDVSAyLjAKKyAqIEBzZWUgUmVzb3VyY2VCdW5kbGUKKyAqLworY2xhc3MgVV9DT01NT05fQVBJ
IExvY2FsZSA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1YmxpYzoKKyAgICAvKiogVXNlZnVsIGNvbnN0
YW50IGZvciB0aGUgUm9vdCBsb2NhbGUuIEBzdGFibGUgSUNVIDQuNCAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRSb290KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRFbmdsaXNoKHZvaWQpOworICAgIC8qKiBVc2VmdWwg
Y29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRp
YyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRGcmVuY2godm9pZCk7CisgICAgLyoqIFVzZWZ1
bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3Rh
dGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEdlcm1hbih2b2lkKTsKKyAgICAvKiogVXNl
ZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBz
dGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SXRhbGlhbih2b2lkKTsKKyAgICAvKiog
VXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAg
ICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SmFwYW5lc2Uodm9pZCk7CisgICAg
LyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEtvcmVhbih2b2lkKTsKKyAg
ICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAg
Ki8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2hpbmVzZSh2b2lkKTsK
KyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAy
LjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0U2ltcGxpZmllZENo
aW5lc2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4g
QHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdl
dFRyYWRpdGlvbmFsQ2hpbmVzZSh2b2lkKTsKKworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9y
IHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25z
dCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRGcmFuY2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25z
dGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3Rh
dGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEdlcm1hbnkodm9pZCk7CisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEl0YWx5KHZvaWQpOworICAg
IC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNV
IDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRKYXBhbih2b2lk
KTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3Rh
YmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0S29y
ZWEodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lv
bi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQy
IGdldENoaW5hKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRy
eS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVf
RVhQT1JUMiBnZXRQUkModm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBj
b3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2Fs
ZSAmVV9FWFBPUlQyIGdldFRhaXdhbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZv
ciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VUsodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFu
dCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFVTKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDYW5hZGEodm9pZCk7CisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENhbmFkYUZyZW5jaCh2b2lk
KTsKKworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgZGVmYXVsdCBsb2NhbGUgb2JqZWN0
LCBhIExvY2FsZSBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIElELgorICAgICAqCisgICAgICogQHNl
ZSBnZXREZWZhdWx0CisgICAgICogQHNlZSB1bG9jX2dldERlZmF1bHQKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0
cnVjdCBhIGxvY2FsZSBmcm9tIGxhbmd1YWdlLCBjb3VudHJ5LCB2YXJpYW50LgorICAgICAqIElm
IGFuIGVycm9yIG9jY3VycywgdGhlbiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgImJv
Z3VzIgorICAgICAqIChpc0JvZ3VzKCkgd2lsbCByZXR1cm4gVFJVRSkuCisgICAgICoKKyAgICAg
KiBAcGFyYW0gbGFuZ3VhZ2UgTG93ZXJjYXNlIHR3by1sZXR0ZXIgb3IgdGhyZWUtbGV0dGVyIElT
Ty02MzkgY29kZS4KKyAgICAgKiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGluc3RlYWQgYmUgYW4gSUNV
IHN0eWxlIEMgbG9jYWxlIChlLmcuICJlbl9VUyIpLAorICAgICAqICBidXQgdGhlIG90aGVyIHBh
cmFtZXRlcnMgbXVzdCBub3QgYmUgdXNlZC4KKyAgICAgKiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGJl
IE5VTEw7IGlmIHNvLAorICAgICAqICB0aGUgbG9jYWxlIGlzIGluaXRpYWxpemVkIHRvIG1hdGNo
IHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqICAoVGhpcyBpcyB0aGUgc2FtZSBh
cyB1c2luZyB0aGUgZGVmYXVsdCBjb25zdHJ1Y3Rvci4pCisgICAgICogIFBsZWFzZSBub3RlOiBU
aGUgSmF2YSBMb2NhbGUgY2xhc3MgZG9lcyBOT1QgYWNjZXB0IHRoZSBmb3JtCisgICAgICogICdu
ZXcgTG9jYWxlKCJlbl9VUyIpJyBidXQgb25seSAnbmV3IExvY2FsZSgiZW4iLCJVUyIpJworICAg
ICAqCisgICAgICogQHBhcmFtIGNvdW50cnkgIFVwcGVyY2FzZSB0d28tbGV0dGVyIElTTy0zMTY2
IGNvZGUuIChvcHRpb25hbCkKKyAgICAgKiBAcGFyYW0gdmFyaWFudCAgVXBwZXJjYXNlIHZlbmRv
ciBhbmQgYnJvd3NlciBzcGVjaWZpYyBjb2RlLiBTZWUgY2xhc3MKKyAgICAgKiAgICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb24uIChvcHRpb25hbCkKKyAgICAgKiBAcGFyYW0ga2V5d29yZHNBbmRW
YWx1ZXMgQSBzdHJpbmcgY29uc2lzdGluZyBvZiBrZXl3b3JkL3ZhbHVlcyBwYWlycywgc3VjaCBh
cworICAgICAqICAgICAgICAgICAgICAgICAiY29sbGF0aW9uPXBob25lYm9vaztjdXJyZW5jeT1l
dXJvIgorICAgICAqCisgICAgICogQHNlZSBnZXREZWZhdWx0CisgICAgICogQHNlZSB1bG9jX2dl
dERlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUoIGNv
bnN0ICAgY2hhciAqIGxhbmd1YWdlLAorICAgICAgICAgICAgY29uc3QgICBjaGFyICogY291bnRy
eSAgPSAwLAorICAgICAgICAgICAgY29uc3QgICBjaGFyICogdmFyaWFudCAgPSAwLAorICAgICAg
ICAgICAgY29uc3QgICBjaGFyICoga2V5d29yZHNBbmRWYWx1ZXMgPSAwKTsKKworICAgIC8qKgor
ICAgICAqIEluaXRpYWxpemVzIGEgTG9jYWxlIG9iamVjdCBmcm9tIGFub3RoZXIgTG9jYWxlIG9i
amVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgTG9jYWxlIG9iamVjdCBiZWlu
ZyBjb3BpZWQgaW4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxl
KGNvbnN0ICAgIExvY2FsZSYgb3RoZXIpOworCisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9y
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+TG9jYWxlKCkg
OworCisgICAgLyoqCisgICAgICogUmVwbGFjZXMgdGhlIGVudGlyZSBjb250ZW50cyBvZiAqdGhp
cyB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIg
VGhlIExvY2FsZSBvYmplY3QgYmVpbmcgY29waWVkIGluLgorICAgICAqIEByZXR1cm4gICAgICAq
dGhpcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZSYgb3BlcmF0
b3I9KGNvbnN0IExvY2FsZSYgb3RoZXIpOworCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHR3
byBsb2NhbGUga2V5cyBhcmUgdGhlIHNhbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIg
VGhlIGxvY2FsZSBrZXkgb2JqZWN0IHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcy4KKyAgICAgKiBA
cmV0dXJuICAgICAgVHJ1ZSBpZiB0aGUgdHdvIGxvY2FsZSBrZXlzIGFyZSB0aGUgc2FtZSwgZmFs
c2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29s
ICAgb3BlcmF0b3I9PShjb25zdCAgICBMb2NhbGUmICAgICBvdGhlcikgY29uc3Q7CisKKyAgICAv
KioKKyAgICAgKiBDaGVja3MgaWYgdHdvIGxvY2FsZSBrZXlzIGFyZSBub3QgdGhlIHNhbWUuCisg
ICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIGxvY2FsZSBrZXkgb2JqZWN0IHRvIGJlIGNv
bXBhcmVkIHdpdGggdGhpcy4KKyAgICAgKiBAcmV0dXJuICAgICAgVHJ1ZSBpZiB0aGUgdHdvIGxv
Y2FsZSBrZXlzIGFyZSBub3QgdGhlIHNhbWUsIGZhbHNlCisgICAgICogICAgICAgICAgICAgIG90
aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCAgIG9w
ZXJhdG9yIT0oY29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0OworCisgICAgLyoqCisg
ICAgICogQ2xvbmUgdGhpcyBvYmplY3QuCisgICAgICogQ2xvbmVzIGNhbiBiZSB1c2VkIGNvbmN1
cnJlbnRseSBpbiBtdWx0aXBsZSB0aHJlYWRzLgorICAgICAqIElmIGFuIGVycm9yIG9jY3Vycywg
dGhlbiBOVUxMIGlzIHJldHVybmVkLgorICAgICAqIFRoZSBjYWxsZXIgbXVzdCBkZWxldGUgdGhl
IGNsb25lLgorICAgICAqCisgICAgICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgb2JqZWN0Cisg
ICAgICoKKyAgICAgKiBAc2VlIGdldER5bmFtaWNDbGFzc0lECisgICAgICogQHN0YWJsZSBJQ1Ug
Mi44CisgICAgICovCisgICAgTG9jYWxlICpjbG9uZSgpIGNvbnN0OworCisjaWZuZGVmIFVfSElE
RV9TWVNURU1fQVBJCisgICAgLyoqCisgICAgICogQ29tbW9uIG1ldGhvZHMgb2YgZ2V0dGluZyB0
aGUgY3VycmVudCBkZWZhdWx0IExvY2FsZS4gVXNlZCBmb3IgdGhlCisgICAgICogcHJlc2VudGF0
aW9uOiBtZW51cywgZGlhbG9ncywgZXRjLiBHZW5lcmFsbHkgc2V0IG9uY2Ugd2hlbiB5b3VyIGFw
cGxldCBvcgorICAgICAqIGFwcGxpY2F0aW9uIGlzIGluaXRpYWxpemVkLCB0aGVuIG5ldmVyIHJl
c2V0LiAoSWYgeW91IGRvIHJlc2V0IHRoZQorICAgICAqIGRlZmF1bHQgbG9jYWxlLCB5b3UgcHJv
YmFibHkgd2FudCB0byByZWxvYWQgeW91ciBHVUksIHNvIHRoYXQgdGhlIGNoYW5nZQorICAgICAq
IGlzIHJlZmxlY3RlZCBpbiB5b3VyIGludGVyZmFjZS4pCisgICAgICoKKyAgICAgKiBNb3JlIGFk
dmFuY2VkIHByb2dyYW1zIHdpbGwgYWxsb3cgdXNlcnMgdG8gdXNlIGRpZmZlcmVudCBsb2NhbGVz
IGZvcgorICAgICAqIGRpZmZlcmVudCBmaWVsZHMsIGUuZy4gaW4gYSBzcHJlYWRzaGVldC4KKyAg
ICAgKgorICAgICAqIE5vdGUgdGhhdCB0aGUgaW5pdGlhbCBzZXR0aW5nIHdpbGwgbWF0Y2ggdGhl
IGhvc3Qgc3lzdGVtLgorICAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhlIExvY2FsZSBv
YmplY3QgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBJRAorICAgICAqIEBzeXN0ZW0KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlJiBVX0VYUE9S
VDIgZ2V0RGVmYXVsdCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRlZmF1bHQu
IE5vcm1hbGx5IHNldCBvbmNlIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBwcm9jZXNzLAorICAgICAq
IHRoZW4gbmV2ZXIgcmVzZXQuCisgICAgICogc2V0RGVmYXVsdCgpIG9ubHkgY2hhbmdlcyBJQ1Un
cyBkZWZhdWx0IGxvY2FsZSBJRCwgPHN0cm9uZz5ub3Q8L3N0cm9uZz4KKyAgICAgKiB0aGUgZGVm
YXVsdCBsb2NhbGUgSUQgb2YgdGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQuCisgICAgICoKKyAgICAg
KiBAcGFyYW0gbmV3TG9jYWxlIExvY2FsZSB0byBzZXQgdG8uICBJZiBOVUxMLCBzZXQgdG8gdGhl
IHZhbHVlIG9idGFpbmVkCisgICAgICogICAgICAgICAgICAgICAgICBmcm9tIHRoZSBydW50aW1l
IGVudmlyb25lbWVudC4KKyAgICAgKiBAcGFyYW0gc3VjY2VzcyBUaGUgZXJyb3IgY29kZS4KKyAg
ICAgKiBAc3lzdGVtCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGlj
IHZvaWQgVV9FWFBPUlQyIHNldERlZmF1bHQoY29uc3QgTG9jYWxlJiBuZXdMb2NhbGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSYgICBzdWNjZXNzKTsK
KyNlbmRpZiAgLyogVV9ISURFX1NZU1RFTV9BUEkgKi8KKworICAgIC8qKgorICAgICAqIENyZWF0
ZXMgYSBsb2NhbGUgd2hpY2ggaGFzIGhhZCBtaW5pbWFsIGNhbm9uaWNhbGl6YXRpb24KKyAgICAg
KiBhcyBwZXIgdWxvY19nZXROYW1lKCkuCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgdG8g
Y3JlYXRlIGZyb20uICBJZiBuYW1lIGlzIG51bGwsCisgICAgICogIHRoZSBkZWZhdWx0IExvY2Fs
ZSBpcyB1c2VkLgorICAgICAqIEByZXR1cm4gbmV3IGxvY2FsZSBvYmplY3QKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKiBAc2VlIHVsb2NfZ2V0TmFtZQorICAgICAqLworICAgIHN0YXRp
YyBMb2NhbGUgVV9FWFBPUlQyIGNyZWF0ZUZyb21OYW1lKGNvbnN0IGNoYXIgKm5hbWUpOworCisg
ICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGxvY2FsZSBmcm9tIHRoZSBnaXZlbiBzdHJpbmcgYWZ0
ZXIgY2Fub25pY2FsaXppbmcKKyAgICAgKiB0aGUgc3RyaW5nIGJ5IGNhbGxpbmcgdWxvY19jYW5v
bmljYWxpemUoKS4KKyAgICAgKiBAcGFyYW0gbmFtZSB0aGUgbG9jYWxlIElEIHRvIGNyZWF0ZSBm
cm9tLiAgTXVzdCBub3QgYmUgTlVMTC4KKyAgICAgKiBAcmV0dXJuIGEgbmV3IGxvY2FsZSBvYmpl
Y3QgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDMu
MAorICAgICAqIEBzZWUgdWxvY19jYW5vbmljYWxpemUKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9j
YWxlIFVfRVhQT1JUMiBjcmVhdGVDYW5vbmljYWwoY29uc3QgY2hhciogbmFtZSk7CisKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tNjM5IGxhbmd1YWdlIGNvZGUuCisg
ICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0TGFuZ3VhZ2UoICkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tMTU5MjQg
YWJicmV2aWF0aW9uIHNjcmlwdCBjb2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0
byB0aGUgY29kZQorICAgICAqIEBzZWUgdXNjcmlwdF9nZXRTaG9ydE5hbWUKKyAgICAgKiBAc2Vl
IHVzY3JpcHRfZ2V0Q29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIGlu
bGluZSBjb25zdCBjaGFyICogIGdldFNjcmlwdCggKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIGxvY2FsZSdzIElTTy0zMTY2IGNvdW50cnkgY29kZS4KKyAgICAgKiBAcmV0
dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRDb3VudHJ5KCApIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgdmFyaWFudCBjb2RlLgorICAgICAq
IEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldFZhcmlhbnQoICkgY29uc3Q7
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBwcm9ncmFtbWF0aWMgbmFtZSBvZiB0aGUg
ZW50aXJlIGxvY2FsZSwgd2l0aCB0aGUgbGFuZ3VhZ2UsCisgICAgICogY291bnRyeSBhbmQgdmFy
aWFudCBzZXBhcmF0ZWQgYnkgdW5kZXJiYXJzLiBJZiBhIGZpZWxkIGlzIG1pc3NpbmcsIHVwCisg
ICAgICogdG8gdHdvIGxlYWRpbmcgdW5kZXJiYXJzIHdpbGwgb2NjdXIuIEV4YW1wbGU6ICJlbiIs
ICJkZV9ERSIsICJlbl9VU19XSU4iLAorICAgICAqICJkZV9fUE9TSVgiLCAiZnJfX01BQyIsICJf
X01BQyIsICJfTVQiLCAiX0ZSX0VVUk8iCisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0
byAibmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNv
bnN0IGNoYXIgKiBnZXROYW1lKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRo
ZSBwcm9ncmFtbWF0aWMgbmFtZSBvZiB0aGUgZW50aXJlIGxvY2FsZSBhcyBnZXROYW1lKCkgd291
bGQgcmV0dXJuLAorICAgICAqIGJ1dCB3aXRob3V0IGtleXdvcmRzLgorICAgICAqIEByZXR1cm4g
ICAgICBBIHBvaW50ZXIgdG8gIm5hbWUiLgorICAgICAqIEBzZWUgZ2V0TmFtZQorICAgICAqIEBz
dGFibGUgSUNVIDIuOAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRCYXNlTmFtZSgpIGNv
bnN0OworCisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsaXN0IG9mIGtleXdvcmRzIGZvciB0
aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIHN0
YXR1cyBjb2RlCisgICAgICogQHJldHVybiBwb2ludGVyIHRvIFN0cmluZ0VudW1lcmF0aW9uIGNs
YXNzLCBvciBOVUxMIGlmIHRoZXJlIGFyZSBubyBrZXl3b3Jkcy4gCisgICAgICogQ2xpZW50IG11
c3QgZGlzcG9zZSBvZiBpdCBieSBjYWxsaW5nIGRlbGV0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjgKKyAgICAgKi8KKyAgICBTdHJpbmdFbnVtZXJhdGlvbiAqIGNyZWF0ZUtleXdvcmRzKFVFcnJv
ckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB2YWx1ZSBm
b3IgYSBrZXl3b3JkLgorICAgICAqCisgICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2Yg
dGhlIGtleXdvcmQgZm9yIHdoaWNoIHdlIHdhbnQgdGhlIHZhbHVlLiBDYXNlIGluc2Vuc2l0aXZl
LgorICAgICAqIEBwYXJhbSBidWZmZXIgVGhlIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBrZXl3b3Jk
IHZhbHVlLgorICAgICAqIEBwYXJhbSBidWZmZXJDYXBhY2l0eSBUaGUgY2FwYWNpdHkgb2YgcmVj
ZWl2aW5nIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBzdGF0dXMgUmV0dXJucyBhbnkgZXJyb3IgaW5m
b3JtYXRpb24gd2hpbGUgcGVyZm9ybWluZyB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJu
IHRoZSBsZW5ndGggb2YgdGhlIGtleXdvcmQgdmFsdWUKKyAgICAgKgorICAgICAqIEBzdGFibGUg
SUNVIDIuOAorICAgICAqLworICAgIGludDMyX3QgZ2V0S2V5d29yZFZhbHVlKGNvbnN0IGNoYXIq
IGtleXdvcmROYW1lLCBjaGFyICpidWZmZXIsIGludDMyX3QgYnVmZmVyQ2FwYWNpdHksIFVFcnJv
ckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIG9yIHJlbW92ZXMg
dGhlIHZhbHVlIGZvciBhIGtleXdvcmQuCisgICAgICoKKyAgICAgKiBGb3IgcmVtb3ZpbmcgYWxs
IGtleXdvcmRzLCB1c2UgZ2V0QmFzZU5hbWUoKSwKKyAgICAgKiBhbmQgY29uc3RydWN0IGEgbmV3
IExvY2FsZSBpZiBpdCBkaWZmZXJzIGZyb20gZ2V0TmFtZSgpLgorICAgICAqCisgICAgICogQHBh
cmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgdG8gYmUgc2V0LiBDYXNlIGluc2Vu
c2l0aXZlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkVmFsdWUgdmFsdWUgb2YgdGhlIGtleXdvcmQg
dG8gYmUgc2V0LiBJZiAwLWxlbmd0aCBvcgorICAgICAqICBOVUxMLCB3aWxsIHJlc3VsdCBpbiB0
aGUga2V5d29yZCBiZWluZyByZW1vdmVkLiBObyBlcnJvciBpcyBnaXZlbiBpZgorICAgICAqICB0
aGF0IGtleXdvcmQgZG9lcyBub3QgZXhpc3QuCisgICAgICogQHBhcmFtIHN0YXR1cyBSZXR1cm5z
IGFueSBlcnJvciBpbmZvcm1hdGlvbiB3aGlsZSBwZXJmb3JtaW5nIHRoaXMgb3BlcmF0aW9uLgor
ICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgNDkKKyAgICAgKi8KKyAgICB2b2lkIHNldEtleXdv
cmRWYWx1ZShjb25zdCBjaGFyKiBrZXl3b3JkTmFtZSwgY29uc3QgY2hhcioga2V5d29yZFZhbHVl
LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogcmV0dXJucyB0aGUgbG9j
YWxlJ3MgdGhyZWUtbGV0dGVyIGxhbmd1YWdlIGNvZGUsIGFzIHNwZWNpZmllZAorICAgICAqIGlu
IElTTyBkcmFmdCBzdGFuZGFyZCBJU08tNjM5LTIuCisgICAgICogQHJldHVybiAgICAgIEFuIGFs
aWFzIHRvIHRoZSBjb2RlLCBvciBhbiBlbXB0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0SVNPM0xhbmd1YWdlKCkgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAibmFtZSIgd2l0aCB0aGUgbG9jYWxlJ3MgdGhyZWUt
bGV0dGVyIElTTy0zMTY2IGNvdW50cnkgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxp
YXMgdG8gdGhlIGNvZGUsIG9yIGFuIGVtcHR5IHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRJU08zQ291bnRyeSgpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgV2luZG93cyBMQ0lEIHZhbHVlIGNvcnJlc3BvbmRp
bmcgdG8gdGhpcyBsb2NhbGUuCisgICAgICogVGhpcyB2YWx1ZSBpcyBzdG9yZWQgaW4gdGhlIHJl
c291cmNlIGRhdGEgZm9yIHRoZSBsb2NhbGUgYXMgYSBvbmUtdG8tZm91ci1kaWdpdAorICAgICAq
IGhleGFkZWNpbWFsIG51bWJlci4gIElmIHRoZSByZXNvdXJjZSBpcyBtaXNzaW5nLCBpbiB0aGUg
d3JvbmcgZm9ybWF0LCBvcgorICAgICAqIHRoZXJlIGlzIG5vIFdpbmRvd3MgTENJRCB2YWx1ZSB0
aGF0IGNvcnJlc3BvbmRzIHRvIHRoaXMgbG9jYWxlLCByZXR1cm5zIDAuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdWludDMyX3QgICAgICAgIGdldExDSUQodm9pZCkgY29u
c3Q7CisKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorICAgIC8qKgorICAgICAqIFJldHVybnMg
d2hldGhlciB0aGlzIGxvY2FsZSdzIHNjcmlwdCBpcyB3cml0dGVuIHJpZ2h0LXRvLWxlZnQuCisg
ICAgICogSWYgdGhlcmUgaXMgbm8gc2NyaXB0IHN1YnRhZywgdGhlbiB0aGUgbGlrZWx5IHNjcmlw
dCBpcyB1c2VkLCBzZWUgdWxvY19hZGRMaWtlbHlTdWJ0YWdzKCkuCisgICAgICogSWYgbm8gbGlr
ZWx5IHNjcmlwdCBpcyBrbm93biwgdGhlbiBGQUxTRSBpcyByZXR1cm5lZC4KKyAgICAgKgorICAg
ICAqIEEgc2NyaXB0IGlzIHJpZ2h0LXRvLWxlZnQgYWNjb3JkaW5nIHRvIHRoZSBDTERSIHNjcmlw
dCBtZXRhZGF0YQorICAgICAqIHdoaWNoIGNvcnJlc3BvbmRzIHRvIHdoZXRoZXIgdGhlIHNjcmlw
dCdzIGxldHRlcnMgaGF2ZSBCaWRpX0NsYXNzPVIgb3IgQUwuCisgICAgICoKKyAgICAgKiBSZXR1
cm5zIFRSVUUgZm9yICJhciIgYW5kICJlbi1IZWJyIiwgRkFMU0UgZm9yICJ6aCIgYW5kICJmYS1D
eXJsIi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0
IGlzIHdyaXR0ZW4gcmlnaHQtdG8tbGVmdAorICAgICAqIEBkcmFmdCBJQ1UgNTQKKyAgICAgKi8K
KyAgICBVQm9vbCBpc1JpZ2h0VG9MZWZ0KCkgY29uc3Q7CisjZW5kaWYgIC8qIFVfSElERV9EUkFG
VF9BUEkgKi8KKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwTGFuZyIgd2l0aCB0aGUg
bmFtZSBvZiB0aGlzIGxvY2FsZSdzIGxhbmd1YWdlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvcgor
ICAgICAqIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwg
aWYgdGhlIGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMKKyAgICAgKiAiZnIiIGFuZCB0aGUgZGVm
YXVsdCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQg
c2V0CisgICAgICogZGlzcExhbmcgdG8gIkZyZW5jaCIuCisgICAgICogQHBhcmFtIGRpc3BMYW5n
ICBSZWNlaXZlcyB0aGUgbGFuZ3VhZ2UncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAg
ICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcExhbmciLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TGFuZ3VhZ2UoVW5pY29k
ZVN0cmluZyYgICBkaXNwTGFuZykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAi
ZGlzcExhbmciIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBpbiBhIGZv
cm1hdCBzdWl0YWJsZSBmb3IKKyAgICAgKiB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVj
aWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncwor
ICAgICAqIGxhbmd1YWdlIGNvZGUgaXMgImVuIiBhbmQgZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdl
IGNvZGUgaXMgImZyIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwTGFuZyB0
byAiQW5nbGFpcyIuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUg
bG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIEluIG90aGVyIHdvcmRzLAor
ICAgICAqICAgICAgICAgICAgICAgICAgaWYgdGhlIGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMg
ImVuIiwgcGFzc2luZyBMb2NhbGU6OmdldEZyZW5jaCgpIGZvcgorICAgICAqICAgICAgICAgICAg
ICAgICAgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIkFuZ2xhaXMiLCB3aGlsZSBwYXNz
aW5nIExvY2FsZTo6Z2V0R2VybWFuKCkKKyAgICAgKiAgICAgICAgICAgICAgICAgIGZvciBkaXNw
bGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiRW5nbGlzY2giLgorICAgICAqIEBwYXJhbSBkaXNw
TGFuZyAgUmVjZWl2ZXMgdGhlIGxhbmd1YWdlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1
cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BMYW5nIi4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUxhbmd1YWdlKCBj
b25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BMYW5nKSBj
b25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwU2NyaXB0IiB3aXRoIHRoZSBu
YW1lIG9mIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICog
Zm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwgaWYg
dGhlIGxvY2FsZSdzIHNjcmlwdCBjb2RlCisgICAgICogaXMgIkxBVE4iIGFuZCB0aGUgZGVmYXVs
dCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0
CisgICAgICogZGlzcFNjcmlwdCB0byAiTGF0aW4iLgorICAgICAqIEBwYXJhbSBkaXNwU2NyaXB0
ICAgIFJlY2VpdmVzIHRoZSBzY3JpcHRzJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4g
ICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwU2NyaXB0Ii4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjgKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheVNjcmlwdCgg
ICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcFNjcmlwdCkgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBGaWxscyBpbiAiZGlzcFNjcmlwdCIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdz
IGNvdW50cnkgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGlu
IHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBp
ZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBzY3JpcHQgY29kZSBpcyAiTEFUTiIgYW5kIGRpc3BsYXlM
b2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0Cisg
ICAgICogZGlzcFNjcmlwdCB0byAiTGF0aW4iLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxl
ICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1l
LiAgSW4gb3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB3b3JkcywgaWYgdGhlIGxv
Y2FsZSdzIHNjcmlwdCBjb2RlIGlzICJMQVROIiwgcGFzc2luZworICAgICAqICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsZTo6Z2V0RnJlbmNoKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVz
dWx0IGluICIiLCB3aGlsZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHBhc3NpbmcgTG9j
YWxlOjpnZXRHZXJtYW4oKSBmb3IgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4KKyAgICAg
KiAgICAgICAgICAgICAgICAgICAgICAiIi4KKyAgICAgKiBAcGFyYW0gZGlzcFNjcmlwdCAgICBS
ZWNlaXZlcyB0aGUgc2NyaXB0cydzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAg
ICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFNjcmlwdCIuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi44CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlTY3JpcHQoICBjb25z
dCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgZGlzcFNjcmlwdCkgY29u
c3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcENvdW50cnkiIHdpdGggdGhlIG5h
bWUgb2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICog
Zm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwgaWYg
dGhlIGxvY2FsZSdzIGNvdW50cnkgY29kZQorICAgICAqIGlzICJGUiIgYW5kIHRoZSBkZWZhdWx0
IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQK
KyAgICAgKiBkaXNwQ291bnRyeSB0byAiRnJhbmNlIi4KKyAgICAgKiBAcGFyYW0gZGlzcENvdW50
cnkgICBSZWNlaXZlcyB0aGUgY291bnRyeSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJu
ICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcENvdW50cnkiLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5Q291bnRy
eSggICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcENvdW50cnkpIGNvbnN0OworCisgICAgLyoq
CisgICAgICogRmlsbHMgaW4gImRpc3BDb3VudHJ5IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9j
YWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3Bs
YXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgRm9yIGV4YW1w
bGUsIGlmIHRoZSBsb2NhbGUncworICAgICAqIGNvdW50cnkgY29kZSBpcyAiVVMiIGFuZCBkaXNw
bGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZnIiLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNl
dAorICAgICAqIGRpc3BDb3VudHJ5IHRvICImRWFjdXRlO3RhdHMtVW5pcyIuCisgICAgICogQHBh
cmFtIGRpc3BsYXlMb2NhbGUgICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRv
IGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAg
IHdvcmRzLCBpZiB0aGUgbG9jYWxlJ3MgY291bnRyeSBjb2RlIGlzICJVUyIsIHBhc3NpbmcKKyAg
ICAgKiAgICAgICAgICAgICAgICAgICAgICBMb2NhbGU6OmdldEZyZW5jaCgpIGZvciBkaXNwbGF5
TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiJkVhY3V0ZTt0YXRzLVVuaXMiLCB3aGlsZQorICAgICAq
ICAgICAgICAgICAgICAgICAgICAgIHBhc3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKSBmb3IgZGlz
cGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAi
VmVyZWluaWd0ZSBTdGFhdGVuIi4KKyAgICAgKiBAcGFyYW0gZGlzcENvdW50cnkgICBSZWNlaXZl
cyB0aGUgY291bnRyeSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAg
ICBBIHJlZmVyZW5jZSB0byAiZGlzcENvdW50cnkiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5Q291bnRyeSggIGNvbnN0ICAg
TG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgZGlzcENvdW50cnkpIGNvbnN0
OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BWYXIiIHdpdGggdGhlIG5hbWUgb2Yg
dGhpcyBsb2NhbGUncyB2YXJpYW50IGNvZGUgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBm
b3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlz
cFZhciAgIFJlY2VpdmVzIHRoZSB2YXJpYW50J3MgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAg
ICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwVmFyIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheVZhcmlhbnQoICAgICAgVW5pY29k
ZVN0cmluZyYgZGlzcFZhcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlz
cFZhciIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgY29kZSBpbiBhIGZv
cm1hdAorICAgICAqIHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVj
aWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBT
cGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAg
ICogQHBhcmFtIGRpc3BWYXIgICBSZWNlaXZlcyB0aGUgdmFyaWFudCdzIGRpc3BsYXkgbmFtZS4K
KyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwVmFyIi4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxh
eVZhcmlhbnQoICBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYg
IGRpc3BWYXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGgg
dGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIHVzZXIgZGlz
cGxheQorICAgICAqIGluIHRoZSBkZWZhdWx0IGxvY2FsZS4gIFRoaXMgZnVuY3Rpb24gdXNlcyBn
ZXREaXNwbGF5TGFuZ3VhZ2UoKSwgZ2V0RGlzcGxheUNvdW50cnkoKSwKKyAgICAgKiBhbmQgZ2V0
RGlzcGxheVZhcmlhbnQoKSB0byBkbyBpdHMgd29yaywgYW5kIG91dHB1dHMgdGhlIGRpc3BsYXkg
bmFtZSBpbiB0aGUgZm9ybWF0CisgICAgICogImxhbmd1YWdlIChjb3VudHJ5Wyx2YXJpYW50XSki
LiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBkZWZhdWx0IGxvY2FsZSBpcyBlbl9VUywgdGhlbgorICAg
ICAqIGZyX0ZSJ3MgZGlzcGxheSBuYW1lIHdvdWxkIGJlICJGcmVuY2ggKEZyYW5jZSkiLCBhbmQg
ZXNfTVhfVHJhZGl0aW9uYWwncyBkaXNwbGF5IG5hbWUKKyAgICAgKiB3b3VsZCBiZSAiU3Bhbmlz
aCAoTWV4aWNvLFRyYWRpdGlvbmFsKSIuCisgICAgICogQHBhcmFtIG5hbWUgIFJlY2VpdmVzIHRo
ZSBsb2NhbGUncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgIEEgcmVmZXJlbmNl
IHRvICJuYW1lIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2Rl
U3RyaW5nJiAgZ2V0RGlzcGxheU5hbWUoICAgICAgICAgVW5pY29kZVN0cmluZyYgIG5hbWUpIGNv
bnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIG5hbWUgb2Yg
dGhpcyBsb2NhbGUgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIHVzZXIgZGlzcGxheQorICAgICAq
IGluIHRoZSBsb2NhbGUgc3BlY2ZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgVGhpcyBmdW5jdGlv
biB1c2VzIGdldERpc3BsYXlMYW5ndWFnZSgpLAorICAgICAqIGdldERpc3BsYXlDb3VudHJ5KCks
IGFuZCBnZXREaXNwbGF5VmFyaWFudCgpIHRvIGRvIGl0cyB3b3JrLCBhbmQgb3V0cHV0cyB0aGUg
ZGlzcGxheQorICAgICAqIG5hbWUgaW4gdGhlIGZvcm1hdCAibGFuZ3VhZ2UgKGNvdW50cnlbLHZh
cmlhbnRdKSIuICBGb3IgZXhhbXBsZSwgaWYgZGlzcGxheUxvY2FsZSBpcworICAgICAqIGZyX0ZS
LCB0aGVuIGVuX1VTJ3MgZGlzcGxheSBuYW1lIHdvdWxkIGJlICJBbmdsYWlzICgmRWFjdXRlO3Rh
dHMtVW5pcykiLCBhbmQgbm9fTk9fTlkncworICAgICAqIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAi
bm9ydiZlYWN1dGU7Z2llbiAoTm9ydiZlZ3JhdmU7Z2UsTlkpIi4KKyAgICAgKiBAcGFyYW0gZGlz
cGxheUxvY2FsZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRo
ZSBuYW1lLgorICAgICAqIEBwYXJhbSBuYW1lICAgICAgUmVjZWl2ZXMgdGhlIGxvY2FsZSdzIGRp
c3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJuYW1l
Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAg
Z2V0RGlzcGxheU5hbWUoIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcm
ICBuYW1lKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBm
b3IgdGhlIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQz
Ml90ICAgICAgICAgaGFzaENvZGUodm9pZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXRz
IHRoZSBsb2NhbGUgdG8gYm9ndXMKKyAgICAgKiBBIGJvZ3VzIGxvY2FsZSByZXByZXNlbnRzIGEg
bm9uLWV4aXN0aW5nIGxvY2FsZSBhc3NvY2lhdGVkCisgICAgICogd2l0aCBzZXJ2aWNlcyB0aGF0
IGNhbiBiZSBpbnN0YW50aWF0ZWQgZnJvbSBub24tbG9jYWxlIGRhdGEKKyAgICAgKiBpbiBhZGRp
dGlvbiB0byBsb2NhbGUgKGZvciBleGFtcGxlLCBjb2xsYXRpb24gY2FuIGJlCisgICAgICogaW5z
dGFudGlhdGVkIGZyb20gYSBsb2NhbGUgYW5kIGZyb20gYSBydWxlIHNldCkuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgdm9pZCBzZXRUb0JvZ3VzKCk7CisKKyAgICAvKioK
KyAgICAgKiBHZXRzIHRoZSBib2d1cyBzdGF0ZS4gTG9jYWxlIG9iamVjdCBjYW4gYmUgYm9ndXMg
aWYgaXQgZG9lc24ndCBleGlzdAorICAgICAqIEByZXR1cm4gRkFMU0UgaWYgaXQgaXMgYSByZWFs
IGxvY2FsZSwgVFJVRSBpZiBpdCBpcyBhIGJvZ3VzIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNV
IDIuMQorICAgICAqLworICAgIFVCb29sIGlzQm9ndXModm9pZCkgY29uc3Q7CisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgaW5zdGFsbGVkIGxvY2FsZXMuCisgICAgICog
QHBhcmFtIGNvdW50IFJlY2VpdmVzIHRoZSBudW1iZXIgb2YgbG9jYWxlcyBpbiB0aGUgbGlzdC4K
KyAgICAgKiBAcmV0dXJuICAgICAgQSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIExvY2FsZSBvYmpl
Y3RzLiAgVGhpcyBhcnJheSBpcyB0aGUgbGlzdAorICAgICAqICAgICAgICAgICAgICBvZiBhbGwg
bG9jYWxlcyB3aXRoIGluc3RhbGxlZCByZXNvdXJjZSBmaWxlcy4gIFRoZSBjYWxsZWQgZG9lcyBO
T1QKKyAgICAgKiAgICAgICAgICAgICAgZ2V0IG93bmVyc2hpcCBvZiB0aGlzIGxpc3QsIGFuZCBt
dXN0IE5PVCBkZWxldGUgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
c3RhdGljIGNvbnN0IExvY2FsZSogVV9FWFBPUlQyIGdldEF2YWlsYWJsZUxvY2FsZXMoaW50MzJf
dCYgY291bnQpOworCisgICAgLyoqCisgICAgICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJs
ZSAyLWxldHRlciBjb3VudHJ5IGNvZGVzIGRlZmluZWQgaW4gSVNPIDMxNjYuICBUaGlzIGlzIGEK
KyAgICAgKiBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBvZiBjaGFy
LiAgQWxsIG9mIHRoZXNlIHBvaW50ZXJzIGFyZQorICAgICAqIG93bmVkIGJ5IElDVS0tIGRvIG5v
dCBkZWxldGUgdGhlbSwgYW5kIGRvIG5vdCB3cml0ZSB0aHJvdWdoIHRoZW0uICBUaGUgYXJyYXkg
aXMKKyAgICAgKiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCisgICAgICogQHJldHVy
biBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBjb3VudHJ5IGNvZGVzCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0KiBVX0VYUE9SVDIg
Z2V0SVNPQ291bnRyaWVzKCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgbGlzdCBvZiBhbGwg
YXZhaWxhYmxlIGxhbmd1YWdlIGNvZGVzIGRlZmluZWQgaW4gSVNPIDYzOS4gIFRoaXMgaXMgYSBw
b2ludGVyCisgICAgICogdG8gYW4gYXJyYXkgb2YgcG9pbnRlcnMgdG8gYXJyYXlzIG9mIGNoYXIu
ICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlIG93bmVkCisgICAgICogYnkgSUNVLS0gZG8gbm90
IGRlbGV0ZSB0aGVtLCBhbmQgZG8gbm90IHdyaXRlIHRocm91Z2ggdGhlbS4gIFRoZSBhcnJheSBp
cworICAgICAqIHRlcm1pbmF0ZWQgd2l0aCBhIG51bGwgcG9pbnRlci4KKyAgICAgKiBAcmV0dXJu
IGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGxhbmd1YWdlIGNvZGVzCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0KiBVX0VYUE9SVDIg
Z2V0SVNPTGFuZ3VhZ2VzKCk7CisKKyAgICAvKioKKyAgICAgKiBJQ1UgInBvb3IgbWFuJ3MgUlRU
SSIsIHJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhpcyBjbGFzcy4KKyAgICAgKgorICAgICAqIEBz
dGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHN0YXRpYyBVQ2xhc3NJRCBVX0VYUE9SVDIgZ2V0
U3RhdGljQ2xhc3NJRCgpOworCisgICAgLyoqCisgICAgICogSUNVICJwb29yIG1hbidzIFJUVEki
LCByZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoZSBhY3R1YWwgY2xhc3MuCisgICAgICoKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFt
aWNDbGFzc0lEKCkgY29uc3Q7CisKK3Byb3RlY3RlZDogLyogb25seSBwcm90ZWN0ZWQgZm9yIHRl
c3RpbmcgcHVycG9zZXMuIERPIE5PVCBVU0UuICovCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9B
UEkKKyAgICAvKioKKyAgICAgKiBTZXQgdGhpcyBmcm9tIGEgc2luZ2xlIFBPU0lYIHN0eWxlIGxv
Y2FsZSBzdHJpbmcuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgdm9pZCBzZXRGcm9t
UE9TSVhJRChjb25zdCBjaGFyICpwb3NpeElEKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFM
X0FQSSAqLworCitwcml2YXRlOgorICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgdGhlIGxvY2Fs
ZSBvYmplY3Qgd2l0aCBhIG5ldyBuYW1lLgorICAgICAqIFdhcyBkZXByZWNhdGVkIC0gdXNlZCBp
biBpbXBsZW1lbnRhdGlvbiAtIG1vdmVkIGludGVybmFsCisgICAgICoKKyAgICAgKiBAcGFyYW0g
Y0xvY2FsZUlEIFRoZSBuZXcgbG9jYWxlIG5hbWUuCisgICAgICogQHBhcmFtIGNhbm9uaWNhbGl6
ZSB3aGV0aGVyIHRvIGNhbGwgdWxvY19jYW5vbmljYWxpemUgb24gY0xvY2FsZUlECisgICAgICov
CisgICAgTG9jYWxlJiBpbml0KGNvbnN0IGNoYXIqIGNMb2NhbGVJRCwgVUJvb2wgY2Fub25pY2Fs
aXplKTsKKworICAgIC8qCisgICAgICogSW50ZXJuYWwgY29uc3RydWN0b3IgdG8gYWxsb3cgY29u
c3RydWN0aW9uIG9mIGEgbG9jYWxlIG9iamVjdCB3aXRoCisgICAgICogICBOTyBzaWRlIGVmZmVj
dHMuICAgKERlZmF1bHQgY29uc3RydWN0b3IgdHJpZXMgdG8gZ2V0CisgICAgICogICB0aGUgZGVm
YXVsdCBsb2NhbGUuKQorICAgICAqLworICAgIGVudW0gRUxvY2FsZVR5cGUgeworICAgICAgICBl
Qk9HVVMKKyAgICB9OworICAgIExvY2FsZShFTG9jYWxlVHlwZSk7CisKKyAgICAvKioKKyAgICAg
KiBJbml0aWFsaXplIHRoZSBsb2NhbGUgY2FjaGUgZm9yIGNvbW1vbmx5IHVzZWQgbG9jYWxlcwor
ICAgICAqLworICAgIHN0YXRpYyBMb2NhbGUgKmdldExvY2FsZUNhY2hlKHZvaWQpOworCisgICAg
Y2hhciBsYW5ndWFnZVtVTE9DX0xBTkdfQ0FQQUNJVFldOworICAgIGNoYXIgc2NyaXB0W1VMT0Nf
U0NSSVBUX0NBUEFDSVRZXTsKKyAgICBjaGFyIGNvdW50cnlbVUxPQ19DT1VOVFJZX0NBUEFDSVRZ
XTsKKyAgICBpbnQzMl90IHZhcmlhbnRCZWdpbjsKKyAgICBjaGFyKiBmdWxsTmFtZTsKKyAgICBj
aGFyIGZ1bGxOYW1lQnVmZmVyW1VMT0NfRlVMTE5BTUVfQ0FQQUNJVFldOworICAgIC8vIG5hbWUg
d2l0aG91dCBrZXl3b3JkcworICAgIGNoYXIqIGJhc2VOYW1lOworICAgIHZvaWQgaW5pdEJhc2VO
YW1lKFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICBVQm9vbCBmSXNCb2d1czsKKworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJmdldExvY2FsZShpbnQgbG9jaWQpOworCisgICAgLyoqCisgICAg
ICogQSBmcmllbmQgdG8gYWxsb3cgdGhlIGRlZmF1bHQgbG9jYWxlIHRvIGJlIHNldCBieSBlaXRo
ZXIgdGhlIEMgb3IgQysrIEFQSS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBmcmll
bmQgTG9jYWxlICpsb2NhbGVfc2V0X2RlZmF1bHRfaW50ZXJuYWwoY29uc3QgY2hhciAqLCBVRXJy
b3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgZnJpZW5kIHZvaWQgVV9DQUxMQ09OViBsb2NhbGVfYXZhaWxhYmxlX2luaXQoKTsKK307CisK
K2lubGluZSBVQm9vbAorTG9jYWxlOjpvcGVyYXRvciE9KGNvbnN0ICAgIExvY2FsZSYgICAgIG90
aGVyKSBjb25zdAoreworICAgIHJldHVybiAhb3BlcmF0b3I9PShvdGhlcik7Cit9CisKK2lubGlu
ZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0Q291bnRyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGNvdW50cnk7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0TGFuZ3VhZ2Uo
KSBjb25zdAoreworICAgIHJldHVybiBsYW5ndWFnZTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIg
KgorTG9jYWxlOjpnZXRTY3JpcHQoKSBjb25zdAoreworICAgIHJldHVybiBzY3JpcHQ7Cit9CisK
K2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0VmFyaWFudCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuICZiYXNlTmFtZVt2YXJpYW50QmVnaW5dOworfQorCitpbmxpbmUgY29uc3QgY2hhciAq
CitMb2NhbGU6OmdldE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBmdWxsTmFtZTsKK30KKwor
aW5saW5lIFVCb29sCitMb2NhbGU6OmlzQm9ndXModm9pZCkgY29uc3QgeworICAgIHJldHVybiBm
SXNCb2d1czsKK30KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JiYmku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kNDc1OThhNTBlNmZhM2JhYjJhZDQ5ZTAyMmFhZjM5NmNhYzMyOWU1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmgKQEAgLTAsMCAr
MSw3ODIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTkt
MjAxNCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uICAgKgorKiAg
IGFuZCBvdGhlcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMTAvMjIvOTkgICAgYWxh
biAgICAgICAgQ3JlYXRpb24uCisqICAgMTEvMTEvOTkgICAgcmdpbGxhbSAgICAgQ29tcGxldGUg
cG9ydCBmcm9tIEphdmEuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIFJCQklfSAorI2Rl
ZmluZSBSQkJJX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICogXGZp
bGUKKyAqIFxicmllZiBDKysgQVBJOiBSdWxlIEJhc2VkIEJyZWFrIEl0ZXJhdG9yCisgKi8KKwor
I2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCisjaW5jbHVkZSAidW5pY29kZS9icmtp
dGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgorI2luY2x1ZGUgInVuaWNvZGUvcGFy
c2VlcnIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3NjaHJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29k
ZS91Y2hyaXRlci5oIgorCisKK3N0cnVjdCBVVHJpZTsKKworVV9OQU1FU1BBQ0VfQkVHSU4KKwor
LyoqIEBpbnRlcm5hbCAqLworc3RydWN0IFJCQklEYXRhSGVhZGVyOworY2xhc3MgIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3JUYWJsZXM7CitjbGFzcyAgQnJlYWtJdGVyYXRvcjsKK2NsYXNzICBSQkJJ
RGF0YVdyYXBwZXI7CitjbGFzcyAgVVN0YWNrOworY2xhc3MgIExhbmd1YWdlQnJlYWtFbmdpbmU7
CitjbGFzcyAgVW5oYW5kbGVkRW5naW5lOworc3RydWN0IFJCQklTdGF0ZVRhYmxlOworCisKKwor
CisvKioKKyAqCisgKiBBIHN1YmNsYXNzIG9mIEJyZWFrSXRlcmF0b3Igd2hvc2UgYmVoYXZpb3Ig
aXMgc3BlY2lmaWVkIHVzaW5nIGEgbGlzdCBvZiBydWxlcy4KKyAqIDxwPkluc3RhbmNlcyBvZiB0
aGlzIGNsYXNzIGFyZSBtb3N0IGNvbW1vbmx5IGNyZWF0ZWQgYnkgdGhlIGZhY3RvcnkgbWV0aG9k
cyBvZgorICogIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZVdvcmRJbnN0YW5jZSgpLCBCcmVha0l0ZXJh
dG9yOjpjcmVhdGVMaW5lSW5zdGFuY2UoKSwgZXRjLiwKKyAqICBhbmQgdGhlbiB1c2VkIHZpYSB0
aGUgYWJzdHJhY3QgQVBJIGluIGNsYXNzIEJyZWFrSXRlcmF0b3I8L3A+CisgKgorICogPHA+U2Vl
IHRoZSBJQ1UgVXNlciBHdWlkZSBmb3IgaW5mb3JtYXRpb24gb24gQnJlYWsgSXRlcmF0b3IgUnVs
ZXMuPC9wPgorICoKKyAqIDxwPlRoaXMgY2xhc3MgaXMgbm90IGludGVuZGVkIHRvIGJlIHN1YmNs
YXNzZWQuICAoQ2xhc3MgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcgorICogICAgaXMgYSBz
dWJjbGFzcywgYnV0IHRoYXQgcmVsYXRpb25zaGlwIGlzIGVmZmVjdGl2ZWx5IGludGVybmFsIHRv
IHRoZSBJQ1UKKyAqICAgIGltcGxlbWVudGF0aW9uLiAgVGhlIHN1YmNsYXNzaW5nIGludGVyZmFj
ZSB0byBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvciBpcworICogICAgbm90IHBhcnQgb2YgdGhlIElD
VSBBUEksIGFuZCBtYXkgbm90IHJlbWFpbiBzdGFibGUuPC9wPgorICoKKyAqLworY2xhc3MgVV9D
T01NT05fQVBJIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgLypVX0ZJTkFMKi8gOiBwdWJsaWMgQnJl
YWtJdGVyYXRvciB7CisKK3Byb3RlY3RlZDoKKyAgICAvKioKKyAgICAgKiBUaGUgVVRleHQgdGhy
b3VnaCB3aGljaCB0aGlzIEJyZWFrSXRlcmF0b3IgYWNjZXNzZXMgdGhlIHRleHQKKyAgICAgKiBA
aW50ZXJuYWwKKyAgICAgKi8KKyAgICBVVGV4dCAgKmZUZXh0OworCisgICAgLyoqCisgICAgICog
ICBBIGNoYXJhY3RlciBpdGVyYXRvciB0aGF0IHJlZmVycyB0byB0aGUgc2FtZSB0ZXh0IGFzIHRo
ZSBVVGV4dCwgYWJvdmUuCisgICAgICogICBPbmx5IGluY2x1ZGVkIGZvciBjb21wYXRpYmlsaXR5
IHdpdGggb2xkIEFQSSwgd2hpY2ggd2FzIGJhc2VkIG9uIENoYXJhY3Rlckl0ZXJhdG9ycy4KKyAg
ICAgKiAgIFZhbHVlIG1heSBiZSBhZG9wdGVkIGZyb20gb3V0c2lkZSwgb3Igb25lIG9mIGZTQ2hh
ckl0ZXIgb3IgZkRDaGFySXRlciwgYmVsb3cuCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0
b3IgICpmQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiAgIFdoZW4gdGhlIGlucHV0IHRleHQg
aXMgcHJvdmlkZWQgYnkgYSBVbmljb2RlU3RyaW5nLCB0aGlzIHdpbGwgcG9pbnQgdG8KKyAgICAg
KiAgICBhIGNoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgd3JhcHMgdGhhdCBkYXRhLiAgTmVlZGVkIG9u
bHkgZm9yIHRoZQorICAgICAqICAgIGltcGxlbWVudGF0aW9uIG9mIGdldFRleHQoKSwgYSBiYWNr
d2FyZHMgY29tcGF0aWJpbGl0eSBpc3N1ZS4KKyAgICAgKi8KKyAgICBTdHJpbmdDaGFyYWN0ZXJJ
dGVyYXRvciAqZlNDaGFySXRlcjsKKworICAgIC8qKgorICAgICAqICBXaGVuIHRoZSBpbnB1dCB0
ZXh0IGlzIHByb3ZpZGVkIGJ5IGEgVVRleHQsIHRoaXMKKyAgICAgKiAgICBkdW1teSBDaGFyYWN0
ZXJJdGVyYXRvciBvdmVyIGFuIGVtcHR5IHN0cmluZyB3aWxsCisgICAgICogICAgYmUgcmV0dXJu
ZWQgZnJvbSBnZXRUZXh0KCkKKyAgICAgKi8KKyAgICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yICpm
RENoYXJJdGVyOworCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUgZGF0YSBmb3IgdGhpcyBCcmVh
a0l0ZXJhdG9yIGluc3RhbmNlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgUkJCSURh
dGFXcmFwcGVyICAgICpmRGF0YTsKKworICAgIC8qKiBJbmRleCBvZiB0aGUgUnVsZSB7dGFnfSB2
YWx1ZXMgZm9yIHRoZSBtb3N0IHJlY2VudCBtYXRjaC4KKyAgICAgKiAgQGludGVybmFsCisgICAg
Ki8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4OworCisgICAg
LyoqCisgICAgICogUnVsZSB0YWcgdmFsdWUgdmFsaWQgZmxhZy4KKyAgICAgKiBTb21lIGl0ZXJh
dG9yIG9wZXJhdGlvbnMgZG9uJ3QgaW50cmluc2ljYWxseSBzZXQgdGhlIGNvcnJlY3QgdGFnIHZh
bHVlLgorICAgICAqIFRoaXMgZmxhZyBsZXRzIHVzIGxhemlseSBjb21wdXRlIHRoZSB2YWx1ZSBp
ZiB3ZSBhcmUgZXZlciBhc2tlZCBmb3IgaXQuCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgVUJvb2wgICAgICAgICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQ7CisKKyAgICAvKioK
KyAgICAgKiBDb3VudGVyIGZvciB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgZW5jb3VudGVyZWQg
d2l0aCB0aGUgImRpY3Rpb25hcnkiCisgICAgICogICBmbGFnIHNldC4KKyAgICAgKiBAaW50ZXJu
YWwKKyAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgICAgIGZEaWN0aW9uYXJ5Q2hhckNvdW50
OworCisgICAgLyoqCisgICAgICogV2hlbiBhIHJhbmdlIG9mIGNoYXJhY3RlcnMgaXMgZGl2aWRl
ZCB1cCB1c2luZyB0aGUgZGljdGlvbmFyeSwgdGhlIGJyZWFrCisgICAgICogcG9zaXRpb25zIHRo
YXQgYXJlIGRpc2NvdmVyZWQgYXJlIHN0b3JlZCBoZXJlLCBwcmV2ZW50aW5nIHVzIGZyb20gaGF2
aW5nCisgICAgICogdG8gdXNlIGVpdGhlciB0aGUgZGljdGlvbmFyeSBvciB0aGUgc3RhdGUgdGFi
bGUgYWdhaW4gdW50aWwgdGhlIGl0ZXJhdG9yCisgICAgICogbGVhdmVzIHRoaXMgcmFuZ2Ugb2Yg
dGV4dC4gSGFzIHRoZSBtb3N0IGltcGFjdCBmb3IgbGluZSBicmVha2luZy4KKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90KiAgICAgICAgICAgIGZDYWNoZWRCcmVha1Bvc2l0
aW9uczsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gZkNhY2hl
ZEJyZWFrUG9zaXRpb25zCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCAg
ICAgICAgICAgICBmTnVtQ2FjaGVkQnJlYWtQb3NpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBp
ZiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMgaXMgbm90IG51bGwsIHRoaXMgaW5kaWNhdGVzIHdoaWNo
IGl0ZW0gaW4gdGhlCisgICAgICogY2FjaGUgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9u
IHJlZmVycyB0bworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAg
ICAgICAgZlBvc2l0aW9uSW5DYWNoZTsKKyAgICAKKyAgICAvKioKKyAgICAgKgorICAgICAqIElm
IHByZXNlbnQsIFVTdGFjayBvZiBMYW5ndWFnZUJyZWFrRW5naW5lIG9iamVjdHMgdGhhdCBtaWdo
dCBoYW5kbGUKKyAgICAgKiBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMuIFNlYXJjaGVkIGZyb20gdG9w
IHRvIGJvdHRvbSB0byBmaW5kIGFuIG9iamVjdCB0bworICAgICAqIGhhbmRsZSBhIGdpdmVuIGNo
YXJhY3Rlci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBVU3RhY2sgICAgICAgICAg
ICAgICpmTGFuZ3VhZ2VCcmVha0VuZ2luZXM7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAg
KiBJZiBwcmVzZW50LCB0aGUgc3BlY2lhbCBMYW5ndWFnZUJyZWFrRW5naW5lIHVzZWQgZm9yIGhh
bmRsaW5nCisgICAgICogY2hhcmFjdGVycyB0aGF0IGFyZSBpbiB0aGUgZGljdGlvbmFyeSBzZXQs
IGJ1dCBub3QgaGFuZGxlZCBieSBhbnkKKyAgICAgKiBMYW5ndWdhZ2VCcmVha0VuZ2luZS4KKyAg
ICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBVbmhhbmRsZWRFbmdpbmUgICAgICpmVW5oYW5k
bGVkQnJlYWtFbmdpbmU7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAgKiBUaGUgdHlwZSBv
ZiB0aGUgYnJlYWsgaXRlcmF0b3IsIG9yIC0xIGlmIGl0IGhhcyBub3QgYmVlbiBzZXQuCisgICAg
ICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmQnJlYWtUeXBl
OworICAgIAorcHJvdGVjdGVkOgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBjb25zdHJ1
Y3RvcnMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQ
SQorICAgIC8qKgorICAgICAqIENvbnN0YW50IHRvIGJlIHVzZWQgaW4gdGhlIGNvbnN0cnVjdG9y
CisgICAgICogUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihSQkJJRGF0YUhlYWRlciosIEVEb250QWRv
cHQsIFVFcnJvckNvZGUgJik7CisgICAgICogd2hpY2ggZG9lcyBub3QgYWRvcHQgdGhlIG1lbW9y
eSBpbmRpY2F0ZWQgYnkgdGhlIFJCQklEYXRhSGVhZGVyKgorICAgICAqIHBhcmFtZXRlci4KKyAg
ICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGVudW0gRURvbnRBZG9wdCB7Cisg
ICAgICAgIGtEb250QWRvcHQKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3Ig
ZnJvbSBhIGZsYXR0ZW5lZCBzZXQgb2YgUkJCSSBkYXRhIGluIG1hbGxvY2VkIG1lbW9yeS4KKyAg
ICAgKiAgICAgICAgICAgICBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvcnMgYnVpbHQgZnJvbSBhIGN1
c3RvbSBzZXQgb2YgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICBhcmUgY3JlYXRlZCB2aWEgdGhp
cyBjb25zdHJ1Y3RvcjsgdGhlIHJ1bGVzIGFyZSBjb21waWxlZAorICAgICAqICAgICAgICAgICAg
IGludG8gbWVtb3J5LCB0aGVuIHRoZSBicmVhayBpdGVyYXRvciBpcyBjb25zdHJ1Y3RlZCBoZXJl
LgorICAgICAqCisgICAgICogICAgICAgICAgICAgVGhlIGJyZWFrIGl0ZXJhdG9yIGFkb3B0cyB0
aGUgbWVtb3J5LCBhbmQgd2lsbAorICAgICAqICAgICAgICAgICAgIGZyZWUgaXQgd2hlbiBkb25l
LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Io
UkJCSURhdGFIZWFkZXIqIGRhdGEsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAg
ICAgKiBDb25zdHJ1Y3RvciBmcm9tIGEgZmxhdHRlbmVkIHNldCBvZiBSQkJJIGRhdGEgaW4gbWVt
b3J5IHdoaWNoIG5lZWQgbm90CisgICAgICogICAgICAgICAgICAgYmUgbWFsbG9jZWQgKGUuZy4g
aXQgbWF5IGJlIGEgbWVtb3J5LW1hcHBlZCBmaWxlLCBldGMuKS4KKyAgICAgKgorICAgICAqICAg
ICAgICAgICAgIFRoaXMgdmVyc2lvbiBkb2VzIG5vdCBhZG9wdCB0aGUgbWVtb3J5LCBhbmQgZG9l
cyBub3QKKyAgICAgKiAgICAgICAgICAgICBmcmVlIGl0IHdoZW4gZG9uZS4KKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGNvbnN0IFJCQklEYXRh
SGVhZGVyKiBkYXRhLCBlbnVtIEVEb250QWRvcHQgZG9udEFkb3B0LCBVRXJyb3JDb2RlICZzdGF0
dXMpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKworICAgIGZyaWVuZCBj
bGFzcyBSQkJJUnVsZUJ1aWxkZXI7CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIGZyaWVuZCBj
bGFzcyBCcmVha0l0ZXJhdG9yOworCisKKworcHVibGljOgorCisgICAgLyoqIERlZmF1bHQgY29u
c3RydWN0b3IuICBDcmVhdGVzIGFuIGVtcHR5IHNoZWxsIG9mIGFuIGl0ZXJhdG9yLCB3aXRoIG5v
CisgICAgICogIHJ1bGVzIG9yIHRleHQgdG8gaXRlcmF0ZSBvdmVyLiAgIE9iamVjdCBjYW4gc3Vi
c2VxdWVudGx5IGJlIGFzc2lnbmVkIHRvLgorICAgICAqICBAc3RhYmxlIElDVSAyLjIKKyAgICAg
Ki8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBDb3B5
IGNvbnN0cnVjdG9yLiAgV2lsbCBwcm9kdWNlIGEgYnJlYWsgaXRlcmF0b3Igd2l0aCB0aGUgc2Ft
ZSBiZWhhdmlvciwKKyAgICAgKiBhbmQgd2hpY2ggaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSB0ZXh0
LCBhcyB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvciBwYXNzZWQgdG8gYmUgY29waWVkCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCBSdWxlQmFzZWRCcmVh
a0l0ZXJhdG9yJiB0aGF0KTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3IgZnJvbSBhIHNldCBvZiBydWxlcyBzdXBwbGllZCBhcyBhIHN0cmluZy4K
KyAgICAgKiBAcGFyYW0gcnVsZXMgVGhlIGJyZWFrIHJ1bGVzIHRvIGJlIHVzZWQuCisgICAgICog
QHBhcmFtIHBhcnNlRXJyb3IgIEluIHRoZSBldmVudCBvZiBhIHN5bnRheCBlcnJvciBpbiB0aGUg
cnVsZXMsIHByb3ZpZGVzIHRoZSBsb2NhdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICB3
aXRoaW4gdGhlIHJ1bGVzIG9mIHRoZSBwcm9ibGVtLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5m
b3JtYXRpb24gb24gYW55IGVycm9ycyBlbmNvdW50ZXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjIKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCBjb25zdCBVbmljb2RlU3Ry
aW5nICAgICZydWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBhcnNlRXJyb3Ig
ICAgICAgICAgICZwYXJzZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJy
b3JDb2RlICAgICAgICAgICAgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDb250cnVjdCBh
IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZnJvbSBhIHNldCBvZiBwcmVjb21waWxlZCBiaW5hcnkg
cnVsZXMuCisgICAgICogQmluYXJ5IHJ1bGVzIGFyZSBvYnRhaW5lZCBmcm9tIFJ1bGVzQmFzZWRC
cmVha0l0ZXJhdG9yOjpnZXRCaW5hcnlSdWxlcygpLgorICAgICAqIENvbnN0cnVjdGlvbiBvZiBh
IGJyZWFrIGl0ZXJhdG9yIGluIHRoaXMgd2F5IGlzIHN1YnN0YW50aWFsbHkgZmFzdGVyIHRoYW4K
KyAgICAgKiBjb25zdHVjdGlvbiBmcm9tIHNvdXJjZSBydWxlcy4KKyAgICAgKgorICAgICAqIE93
bmVyc2hpcCBvZiB0aGUgc3RvcmFnZSBjb250YWluaW5nIHRoZSBjb21waWxlZCBydWxlcyByZW1h
aW5zIHdpdGggdGhlCisgICAgICogY2FsbGVyIG9mIHRoaXMgZnVuY3Rpb24uICBUaGUgY29tcGls
ZWQgcnVsZXMgbXVzdCBub3QgYmUgIG1vZGlmaWVkIG9yIAorICAgICAqIGRlbGV0ZWQgZHVyaW5n
IHRoZSBsaWZlIG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIFRoZSBjb21w
aWxlZCBydWxlcyBhcmUgbm90IGNvbXBhdGlibGUgYWNyb3NzIGRpZmZlcmVudCBtYWpvciB2ZXJz
aW9ucyBvZiBJQ1UuCisgICAgICogVGhlIGNvbXBpbGVkIHJ1bGVzIGFyZSBjb21hcHRpYmxlIG9u
bHkgYmV0d2VlbiBtYWNoaW5lcyB3aXRoIHRoZSBzYW1lCisgICAgICogYnl0ZSBvcmRlcmluZyAo
bGl0dGxlIG9yIGJpZyBlbmRpYW4pIGFuZCB0aGUgc2FtZSBiYXNlIGNoYXJhY3RlciBzZXQgZmFt
aWx5CisgICAgICogKEFTQ0lJIG9yIEVCQ0RJQykuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRC
aW5hcnlSdWxlcworICAgICAqIEBwYXJhbSBjb21waWxlZFJ1bGVzIEEgcG9pbnRlciB0byB0aGUg
Y29tcGlsZWQgYnJlYWsgcnVsZXMgdG8gYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gcnVsZUxlbmd0
aCBUaGUgbGVuZ3RoIG9mIHRoZSBjb21waWxlZCBicmVhayBydWxlcywgaW4gYnl0ZXMuICBUaGlz
CisgICAgICogICBjb3JyZXNwb25kcyB0byB0aGUgbGVuZ3RoIHZhbHVlIHByb2R1Y2VkIGJ5IGdl
dEJpbmFyeVJ1bGVzKCkuCisgICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkg
ZXJyb3JzIGVuY291bnRlcmVkLCBpbmNsdWRpbmcgaW52YWxpZAorICAgICAqICAgYmluYXJ5IHJ1
bGVzLgorICAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IoY29uc3QgdWludDhfdCAqY29tcGlsZWRSdWxlcywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90ICAgICAgIHJ1bGVMZW5ndGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBVRXJyb3JDb2RlICAgICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVGhpcyBj
b25zdHJ1Y3RvciB1c2VzIHRoZSB1ZGF0YSBpbnRlcmZhY2UgdG8gY3JlYXRlIGEgQnJlYWtJdGVy
YXRvcgorICAgICAqIHdob3NlIGludGVybmFsIHRhYmxlcyBsaXZlIGluIGEgbWVtb3J5LW1hcHBl
ZCBmaWxlLiAgImltYWdlIiBpcyBhbgorICAgICAqIElDVSBVRGF0YU1lbW9yeSBoYW5kbGUgZm9y
IHRoZSBwcmUtY29tcGlsZWQgYnJlYWsgaXRlcmF0b3IgdGFibGVzLgorICAgICAqIEBwYXJhbSBp
bWFnZSBoYW5kbGUgdG8gdGhlIG1lbW9yeSBpbWFnZSBmb3IgdGhlIGJyZWFrIGl0ZXJhdG9yIGRh
dGEuCisgICAgICogICAgICAgIE93bmVyc2hpcCBvZiB0aGUgVURhdGFNZW1vcnkgaGFuZGxlIHBh
c3NlcyB0byB0aGUgQnJlYWsgSXRlcmF0b3IsCisgICAgICogICAgICAgIHdoaWNoIHdpbGwgYmUg
cmVzcG9uc2libGUgZm9yIGNsb3NpbmcgaXQgd2hlbiBpdCBpcyBubyBsb25nZXIgbmVlZGVkLgor
ICAgICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24gYW55IGVycm9ycyBlbmNvdW50ZXJl
ZC4KKyAgICAgKiBAc2VlIHVkYXRhX29wZW4KKyAgICAgKiBAc2VlICNnZXRCaW5hcnlSdWxlcwor
ICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3IoVURhdGFNZW1vcnkqIGltYWdlLCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisg
ICAgICogRGVzdHJ1Y3RvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIH5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBBc3Np
Z25tZW50IG9wZXJhdG9yLiAgU2V0cyB0aGlzIGl0ZXJhdG9yIHRvIGhhdmUgdGhlIHNhbWUgYmVo
YXZpb3IsCisgICAgICogYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LCBhcyB0aGUgb25l
IHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgUnVsZUJhc2VkQnJlYWtJdGVydG9y
IHBhc3NlZCBpbgorICAgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBSdWxlQmFz
ZWRCcmVha0l0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3QgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciYg
dGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBFcXVhbGl0eSBvcGVyYXRvci4gIFJldHVybnMgVFJV
RSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBvZiB0aGUKKyAgICAgKiBzYW1lIGNsYXNzLCBo
YXZlIHRoZSBzYW1lIGJlaGF2aW9yLCBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHRleHQuCisg
ICAgICogQHBhcmFtIHRoYXQgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVx
dWFsaXR5CisgICAgICogQHJldHVybiBUUlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG9m
IHRoZQorICAgICAqIHNhbWUgY2xhc3MsIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsIGFuZCBpdGVy
YXRlIG92ZXIgdGhlIHNhbWUgdGV4dC4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHRoYXQp
IGNvbnN0OworCisgICAgLyoqCisgICAgICogTm90LWVxdWFsIG9wZXJhdG9yLiAgSWYgb3BlcmF0
b3I9PSByZXR1cm5zIFRSVUUsIHRoaXMgcmV0dXJucyBGQUxTRSwKKyAgICAgKiBhbmQgdmljZSB2
ZXJzYS4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQnJlYWtJdGVyYXRvciB0byBiZSBjb21wYXJl
ZCBmb3IgaW5lcXVhbGl0eQorICAgICAqIEByZXR1cm4gVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0
b3JzIGFyZSBub3Qgc2FtZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
VUJvb2wgb3BlcmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yIHdpdGggdGhlIHNhbWUKKyAgICAgKiBiZWhhdmlvciwgYW5kIGl0ZXJhdGluZyBvdmVy
IHRoZSBzYW1lIHRleHQsIGFzIHRoaXMgb25lLgorICAgICAqIERpZmZlcnMgZnJvbSB0aGUgY29w
eSBjb25zdHJ1Y3RvciBpbiB0aGF0IGl0IGlzIHBvbHltb3JwaGljLCBhbmQKKyAgICAgKiB3aWxs
IGNvcnJlY3RseSBjbG9uZSAoY29weSkgYSBkZXJpdmVkIGNsYXNzLgorICAgICAqIGNsb25lKCkg
aXMgdGhyZWFkIHNhZmUuICBNdWx0aXBsZSB0aHJlYWRzIG1heSBzaW11bHRhZW5lb3VzbHkKKyAg
ICAgKiBjbG9uZSB0aGUgc2FtZSBzb3VyY2UgYnJlYWsgaXRlcmF0b3IuCisgICAgICogQHJldHVy
biBhIG5ld2x5LWNvbnN0cnVjdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IqIGNsb25lKCkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGEgaGFzaCBjb2RlIGZvciB0aGlzIEJy
ZWFrSXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIEEgaGFzaCBjb2RlCisgICAgICogIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBoYXNoQ29kZSh2b2lkKSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlc2NyaXB0aW9uIHVzZWQgdG8gY3Jl
YXRlIHRoaXMgaXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIHRoZSBkZXNjcmlwdGlvbiB1c2VkIHRv
IGNyZWF0ZSB0aGlzIGl0ZXJhdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgY29uc3QgVW5pY29kZVN0cmluZyYgZ2V0UnVsZXModm9pZCkgY29uc3Q7CisK
KyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQnJlYWtJdGVyYXRvciBvdmVycmlkZXMKKyAg
ICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBSZXR1cm4g
YSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAq
IFRoZSByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0b3IgaXMgb3duZWQgYnkgdGhlIGJyZWFrIGl0
ZXJhdG9yLCBhbmQgbXVzdAorICAgICAqIG5vdCBiZSBkZWxldGVkIGJ5IHRoZSBjYWxsZXIuICBS
ZXBlYXRlZCBjYWxscyB0byB0aGlzIGZ1bmN0aW9uIG1heQorICAgICAqIHJldHVybiB0aGUgc2Ft
ZSBDaGFyYWN0ZXJJdGVyYXRvci4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhl
IHJldHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBtdXN0IG5vdCBiZSB1c2VkIGNvbmN1cnJlbnRs
eSB3aXRoCisgICAgICogdGhlIGJyZWFrIGl0ZXJhdG9yLiAgSWYgY29uY3VycmVudCBvcGVyYXRp
b24gaXMgbmVlZGVkLCBjbG9uZSB0aGUKKyAgICAgKiByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0
b3IgZmlyc3QgYW5kIG9wZXJhdGUgb24gdGhlIGNsb25lLgorICAgICAqIDwvcD4KKyAgICAgKiA8
cD4KKyAgICAgKiBXaGVuIHRoZSBicmVhayBpdGVyYXRvciBpcyBvcGVyYXRpbmcgb24gdGV4dCBz
dXBwbGllZCB2aWEgYSBVVGV4dCwKKyAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgZmFpbC4gIExh
Y2tpbmcgYW55IHdheSB0byBzaWduYWwgZmFpbHVyZXMsIGl0CisgICAgICogcmV0dXJucyBhbiBD
aGFyYWN0ZXJJdGVyYXRvciBjb250YWluaW5nIG5vIHRleHQuCisgICAgICogVGhlIGZ1bmN0aW9u
IGdldFVUZXh0KCkgcHJvdmlkZXMgc2ltaWxhciBmdW5jdGlvbmFsaXR5LAorICAgICAqIGlzIHJl
bGlhYmxlLCBhbmQgaXMgbW9yZSBlZmZpY2llbnQuCisgICAgICogPC9wPgorICAgICAqCisgICAg
ICogVE9ETzogIGRlcHJlY2F0ZSB0aGlzIGZ1bmN0aW9uPworICAgICAqCisgICAgICogQHJldHVy
biBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgIENoYXJhY3Rlckl0ZXJhdG9yJiBnZXRU
ZXh0KHZvaWQpIGNvbnN0OworCisKKyAgICAvKioKKyAgICAgICogIEdldCBhIFVUZXh0IGZvciB0
aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgICogIFRoZSByZXR1cm5lZCBVVGV4dCBpcyBh
IHNoYWxsb3cgY2xvbmUgb2YgdGhlIFVUZXh0IHVzZWQgaW50ZXJuYWxseQorICAgICAgKiAgYnkg
dGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uLiAgSXQgY2FuIHNhZmVseSBiZSB1c2Vk
IHRvCisgICAgICAqICBhY2Nlc3MgdGhlIHRleHQgd2l0aG91dCBpbXBhY3RpbmcgYW55IGJyZWFr
IGl0ZXJhdG9yIG9wZXJhdGlvbnMsCisgICAgICAqICBidXQgdGhlIHVuZGVybHlpbmcgdGV4dCBp
dHNlbGYgbXVzdCBub3QgYmUgYWx0ZXJlZC4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGZpbGxJ
biBBIFVUZXh0IHRvIGJlIGZpbGxlZCBpbi4gIElmIE5VTEwsIGEgbmV3IFVUZXh0IHdpbGwgYmUK
KyAgICAgICogICAgICAgICAgIGFsbG9jYXRlZCB0byBob2xkIHRoZSByZXN1bHQuCisgICAgICAq
IEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAgKiBAcmV0dXJu
ICAgVGhlIGN1cnJlbnQgVVRleHQgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuICBJZiBhbiBpbnB1
dAorICAgICAgKiAgICAgICAgICAgVVRleHQgd2FzIHByb3ZpZGVkLCBpdCB3aWxsIGFsd2F5cyBi
ZSByZXR1cm5lZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICAqLworICAgICB2aXJ0
dWFsIFVUZXh0ICpnZXRVVGV4dChVVGV4dCAqZmlsbEluLCBVRXJyb3JDb2RlICZzdGF0dXMpIGNv
bnN0OworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3
IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBjdXJyZW50
IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAq
IEBwYXJhbSBuZXdUZXh0IEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgdG8gYW5hbHl6ZS4gIFRo
ZSBCcmVha0l0ZXJhdG9yCisgICAgICogdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBjaGFyYWN0ZXIg
aXRlcmF0b3IuICBUaGUgY2FsbGVyIE1VU1QgTk9UIGRlbGV0ZSBpdCEKKyAgICAgKiAgQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkIGFkb3B0VGV4dChDaGFyYWN0ZXJJ
dGVyYXRvciogbmV3VGV4dCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHRv
IGFuYWx5emUgYSBuZXcgcGllY2Ugb2YgdGV4dC4gIFRoaXMgZnVuY3Rpb24gcmVzZXRzCisgICAg
ICogdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhl
IHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgVGhlIHRleHQgdG8gYW5hbHl6ZS4KKyAgICAg
KiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkIHNldFRleHQoY29u
c3QgVW5pY29kZVN0cmluZyYgbmV3VGV4dCk7CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUg
YnJlYWsgaXRlcmF0b3IgdG8gb3BlcmF0ZSBvdmVyIHRoZSB0ZXh0IHJlcHJlc2VudGVkIGJ5Cisg
ICAgICogdGhlIFVUZXh0LiAgVGhlIGl0ZXJhdG9yIHBvc2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBz
dGFydC4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gbWFrZXMgYSBzaGFsbG93IGNsb25l
IG9mIHRoZSBzdXBwbGllZCBVVGV4dC4gIFRoaXMgbWVhbnMKKyAgICAgKiB0aGF0IHRoZSBjYWxs
ZXIgaXMgZnJlZSB0byBpbW1lZGlhdGVseSBjbG9zZSBvciBvdGhlcndpc2UgcmV1c2UgdGhlCisg
ICAgICogVXRleHQgdGhhdCB3YXMgcGFzc2VkIGFzIGEgcGFyYW1ldGVyLCBidXQgdGhhdCB0aGUg
dW5kZXJseWluZyB0ZXh0IGl0c2VsZgorICAgICAqIG11c3Qgbm90IGJlIGFsdGVyZWQgd2hpbGUg
YmVpbmcgcmVmZXJlbmNlZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBA
cGFyYW0gdGV4dCAgICBUaGUgVVRleHQgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICog
QHBhcmFtIHN0YXR1cyAgUmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAqIEBzdGFibGUg
SUNVIDMuNAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChVVGV4dCAqdGV4dCwg
VUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQg
aXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHBvc2l0aW9u
IHplcm8uCisgICAgICogQHJldHVybiBUaGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhl
IHRleHQsIHplcm8uCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgaW50MzJfdCBmaXJzdCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJl
bnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHJl
dHVybiBUaGUgdGV4dCdzIHBhc3QtdGhlLWVuZCBvZmZzZXQuCisgICAgICogIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBsYXN0KHZvaWQpOworCisgICAgLyoq
CisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGVpdGhlciBmb3J3YXJkIG9yIGJhY2t3YXJk
IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHN0ZXBzLgorICAgICAqIE5lZ2F0aXZlIHZhbHVlcyBt
b3ZlIGJhY2t3YXJkLCBhbmQgcG9zaXRpdmUgdmFsdWVzIG1vdmUgZm9yd2FyZC4gIFRoaXMgaXMK
KyAgICAgKiBlcXVpdmFsZW50IHRvIHJlcGVhdGVkbHkgY2FsbGluZyBuZXh0KCkgb3IgcHJldmlv
dXMoKS4KKyAgICAgKiBAcGFyYW0gbiBUaGUgbnVtYmVyIG9mIHN0ZXBzIHRvIG1vdmUuICBUaGUg
c2lnbiBpbmRpY2F0ZXMgdGhlIGRpcmVjdGlvbgorICAgICAqIChuZWdhdGl2ZSBpcyBiYWNrd2Fy
ZHMsIGFuZCBwb3NpdGl2ZSBpcyBmb3J3YXJkcykuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFj
dGVyIG9mZnNldCBvZiB0aGUgYm91bmRhcnkgcG9zaXRpb24gbiBib3VuZGFyaWVzIGF3YXkgZnJv
bQorICAgICAqIHRoZSBjdXJyZW50IG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQoaW50MzJfdCBuKTsKKworICAgIC8qKgorICAg
ICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbi4K
KyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIg
dGhpcyBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
aW50MzJfdCBuZXh0KHZvaWQpOworCisgICAgLyoqCisgICAgICogTW92ZXMgdGhlIGl0ZXJhdG9y
IGJhY2t3YXJkcywgdG8gdGhlIGxhc3QgYm91bmRhcnkgcHJlY2VkaW5nIHRoaXMgb25lLgorICAg
ICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIHBy
ZWNlZGluZyB0aGlzIG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBpbnQzMl90IHByZXZpb3VzKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0
aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGZvbGxv
d2luZworICAgICAqIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNl
dCBUaGUgcG9zaXRpb24gZnJvbSB3aGljaCB0byBiZWdpbiBzZWFyY2hpbmcgZm9yIGEgYnJlYWsg
cG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJyZWFr
IGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZm9sbG93aW5nKGludDMyX3Qgb2Zmc2V0KTsKKwor
ICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGJv
dW5kYXJ5IHBvc2l0aW9uIGJlZm9yZSB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24uCisg
ICAgICogQHBhcmFtIG9mZnNldCBUaGUgcG9zaXRpb24gdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBh
IGJyZWFrIGZyb20uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91
bmRhcnkgYmVmb3JlIHRoZSBzdGFydGluZyBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHByZWNlZGluZyhpbnQzMl90IG9mZnNl
dCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0
aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uICBBcyBhIHNpZGUKKyAgICAgKiBlZmZlY3QsIGxl
YXZlcyB0aGUgaXRlcmF0b3IgcG9pbnRpbmcgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9u
IGF0CisgICAgICogb3IgYWZ0ZXIgIm9mZnNldCIuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUg
b2Zmc2V0IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJv
dW5kYXJ5IHBvc2l0aW9uLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIFVCb29sIGlzQm91bmRhcnkoaW50MzJfdCBvZmZzZXQpOworCisgICAgLyoqCisgICAg
ICogUmV0dXJucyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHJldHVy
biBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGN1cnJlbnQodm9pZCkgY29uc3Q7CisKKwor
ICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc3RhdHVzIHRhZyBmcm9tIHRoZSBicmVhayBydWxl
IHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqIHJldHVybmVkIGJyZWFr
IHBvc2l0aW9uLiAgRm9yIGJyZWFrIHJ1bGVzIHRoYXQgZG8gbm90IHNwZWNpZnkgYQorICAgICAq
IHN0YXR1cywgYSBkZWZhdWx0IHZhbHVlIG9mIDAgaXMgcmV0dXJuZWQuICBJZiBtb3JlIHRoYW4g
b25lIGJyZWFrIHJ1bGUKKyAgICAgKiB3b3VsZCBjYXVzZSBhIGJvdW5kYXJ5IHRvIGJlIGxvY2F0
ZWQgYXQgc29tZSBwb3NpdGlvbiBpbiB0aGUgdGV4dCwKKyAgICAgKiB0aGUgbnVtZXJpY2FsbHkg
bGFyZ2VzdCBvZiB0aGUgYXBwbGljYWJsZSBzdGF0dXMgdmFsdWVzIGlzIHJldHVybmVkLgorICAg
ICAqIDxwPgorICAgICAqIE9mIHRoZSBzdGFuZGFyZCB0eXBlcyBvZiBJQ1UgYnJlYWsgaXRlcmF0
b3JzLCBvbmx5IHdvcmQgYnJlYWsgYW5kCisgICAgICogbGluZSBicmVhayBwcm92aWRlIHN0YXR1
cyB2YWx1ZXMuICBUaGUgdmFsdWVzIGFyZSBkZWZpbmVkIGluCisgICAgICogdGhlIGhlYWRlciBm
aWxlIHVicmsuaC4gIEZvciBXb3JkIGJyZWFrcywgdGhlIHN0YXR1cyBhbGxvd3MgZGlzdGluZ3Vp
c2hpbmcgYmV0d2VlbiB3b3JkcworICAgICAqIHRoYXQgY29udGFpbiBhbHBoYWJldGljIGxldHRl
cnMsICJ3b3JkcyIgdGhhdCBhcHBlYXIgdG8gYmUgbnVtYmVycywKKyAgICAgKiBwdW5jdHVhdGlv
biBhbmQgc3BhY2VzLCB3b3JkcyBjb250YWluaW5nIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMsIGFu
ZAorICAgICAqIG1vcmUuICBGb3IgTGluZSBCcmVhaywgdGhlIHN0YXR1cyBkaXN0aW5ndWlzaGVz
IGJldHdlZW4gaGFyZCAobWFuZGF0b3J5KSBicmVha3MKKyAgICAgKiBhbmQgc29mdCAocG90ZW50
aWFsKSBicmVhayBwb3NpdGlvbnMuCisgICAgICogPHA+CisgICAgICogPGNvZGU+Z2V0UnVsZVN0
YXR1cygpPC9jb2RlPiBjYW4gYmUgY2FsbGVkIGFmdGVyIG9idGFpbmluZyBhIGJvdW5kYXJ5Cisg
ICAgICogcG9zaXRpb24gZnJvbSA8Y29kZT5uZXh0KCk8L2NvZGU+LCA8Y29kZT5wcmV2aW91cygp
PC9jb2RlPiwgb3IKKyAgICAgKiBhbnkgb3RoZXIgYnJlYWsgaXRlcmF0b3IgZnVuY3Rpb25zIHRo
YXQgcmV0dXJucyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIDxwPgorICAgICAqIFdoZW4g
Y3JlYXRpbmcgY3VzdG9tIGJyZWFrIHJ1bGVzLCBvbmUgaXMgZnJlZSB0byBkZWZpbmUgd2hhdGV2
ZXIKKyAgICAgKiBzdGF0dXMgdmFsdWVzIG1heSBiZSBjb252ZW5pZW50IGZvciB0aGUgYXBwbGlj
YXRpb24uCisgICAgICogPHA+CisgICAgICogTm90ZTogdGhpcyBmdW5jdGlvbiBpcyBub3QgdGhy
ZWFkIHNhZmUuICBJdCBzaG91bGQgbm90IGhhdmUgYmVlbgorICAgICAqICAgICAgIGRlY2xhcmVk
IGNvbnN0LCBhbmQgdGhlIGNvbnN0IHJlbWFpbnMgb25seSBmb3IgY29tcGF0aWJpbGl0eQorICAg
ICAqICAgICAgIHJlYXNvbnMuICAoVGhlIGZ1bmN0aW9uIGlzIGxvZ2ljYWxseSBjb25zdCwgYnV0
IG5vdCBiaXQtd2lzZSBjb25zdCkuCisgICAgICogPHA+CisgICAgICogQHJldHVybiB0aGUgc3Rh
dHVzIGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5
CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBAc2VlIFVX
b3JkQnJlYWsKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGlu
dDMyX3QgZ2V0UnVsZVN0YXR1cygpIGNvbnN0OworCisgICAvKioKKyAgICAqIEdldCB0aGUgc3Rh
dHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIHRoYXQgZGV0ZXJtaW5lZCB0
aGUgbW9zdAorICAgICogcmVjZW50bHkgcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgKiA8
cD4KKyAgICAqIFRoZSByZXR1cm5lZCBzdGF0dXMgdmFsdWUocykgYXJlIHN0b3JlZCBpbnRvIGFu
IGFycmF5IHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9y
ZWQgaW4gc29ydGVkIChhc2NlbmRpbmcpIG9yZGVyLgorICAgICogSWYgdGhlIGNhcGFjaXR5IG9m
IHRoZSBvdXRwdXQgYXJyYXkgaXMgaW5zdWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgICAg
KiAgdGhlIG91dHB1dCB3aWxsIGJlIHRydW5jYXRlZCB0byB0aGUgYXZhaWxhYmxlIGxlbmd0aCwg
YW5kIGEKKyAgICAqICBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiB3aWxsIGJlIHNpZ25hbGVkLgor
ICAgICoKKyAgICAqIEBwYXJhbSBmaWxsSW5WZWMgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGluIHdp
dGggdGhlIHN0YXR1cyB2YWx1ZXMuCisgICAgKiBAcGFyYW0gY2FwYWNpdHkgIHRoZSBsZW5ndGgg
b2YgdGhlIHN1cHBsaWVkIHZlY3Rvci4gIEEgbGVuZ3RoIG9mIHplcm8gY2F1c2VzCisgICAgKiAg
ICAgICAgICAgICAgICAgIHRoZSBmdW5jdGlvbiB0byByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0
dXMgdmFsdWVzLCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgbm9ybWFsIHdheSwgd2l0
aG91dCBhdHRlbXRwaW5nIHRvIHN0b3JlIGFueSB2YWx1ZXMuCisgICAgKiBAcGFyYW0gc3RhdHVz
ICAgIHJlY2VpdmVzIGVycm9yIGNvZGVzLgorICAgICogQHJldHVybiAgICAgICAgICBUaGUgbnVt
YmVyIG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZAorICAg
ICogICAgICAgICAgICAgICAgICB0aGUgbW9zdCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQgYnkg
dGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICogICAgICAgICAgICAgICAgICBJbiB0aGUgZXZlbnQg
b2YgYSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdGhlIHJldHVybiB2YWx1ZQorICAgICogICAg
ICAgICAgICAgICAgICBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCB3
ZXJlIGF2YWlsYWJsZSwKKyAgICAqICAgICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2VkIG51
bWJlciB0aGF0IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQuCisgICAgKiBAc2VlIGdldFJ1bGVTdGF0
dXMKKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdl
dFJ1bGVTdGF0dXNWZWMoaW50MzJfdCAqZmlsbEluVmVjLCBpbnQzMl90IGNhcGFjaXR5LCBVRXJy
b3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHVuaXF1ZSBjbGFz
cyBJRCBQT0xZTU9SUEhJQ0FMTFkuICBQdXJlIHZpcnR1YWwgb3ZlcnJpZGUuCisgICAgICogVGhp
cyBtZXRob2QgaXMgdG8gaW1wbGVtZW50IGEgc2ltcGxlIHZlcnNpb24gb2YgUlRUSSwgc2luY2Ug
bm90IGFsbAorICAgICAqIEMrKyBjb21waWxlcnMgc3VwcG9ydCBnZW51aW5lIFJUVEkuICBQb2x5
bW9ycGhpYyBvcGVyYXRvcj09KCkgYW5kCisgICAgICogY2xvbmUoKSBtZXRob2RzIGNhbGwgdGhp
cyBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBjbGFzcyBJRCBm
b3IgdGhpcyBvYmplY3QuIEFsbCBvYmplY3RzIG9mIGEKKyAgICAgKiAgICAgICAgICAgICAgICAg
IGdpdmVuIGNsYXNzIGhhdmUgdGhlIHNhbWUgY2xhc3MgSUQuICBPYmplY3RzIG9mCisgICAgICog
ICAgICAgICAgICAgICAgICBvdGhlciBjbGFzc2VzIGhhdmUgZGlmZmVyZW50IGNsYXNzIElEcy4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdl
dER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0
aGUgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MuICBUaGlzIGlzIHVzZWZ1bCBvbmx5IGZvcgorICAg
ICAqIGNvbXBhcmluZyB0byBhIHJldHVybiB2YWx1ZSBmcm9tIGdldER5bmFtaWNDbGFzc0lEKCku
ICBGb3IgZXhhbXBsZToKKyAgICAgKgorICAgICAqICAgICAgQmFzZSogcG9seW1vcnBoaWNfcG9p
bnRlciA9IGNyZWF0ZVBvbHltb3JwaGljT2JqZWN0KCk7CisgICAgICogICAgICBpZiAocG9seW1v
cnBoaWNfcG9pbnRlci0+Z2V0RHluYW1pY0NsYXNzSUQoKSA9PQorICAgICAqICAgICAgICAgIERl
cml2ZWQ6OmdldFN0YXRpY0NsYXNzSUQoKSkgLi4uCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAg
ICAgICAgIFRoZSBjbGFzcyBJRCBmb3IgYWxsIG9iamVjdHMgb2YgdGhpcyBjbGFzcy4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQy
IGdldFN0YXRpY0NsYXNzSUQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBEZXByZWNhdGVkIGZ1
bmN0aW9uYWxpdHkuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBDcmVhdGUg
YSBjbG9uZSAoY29weSkgb2YgdGhpcyBicmVhayBpdGVyYXRvciBpbiBtZW1vcnkgcHJvdmlkZWQK
KyAgICAgKiAgYnkgdGhlIGNhbGxlci4gIFRoZSBpZGVhIGlzIHRvIGluY3JlYXNlIHBlcmZvcm1h
bmNlIGJ5IGF2b2lkaW5nCisgICAgICogIGEgc3RvcmFnZSBhbGxvY2F0aW9uLiAgVXNlIG9mIHRo
aXMgZnVuY3RvaW4gaXMgTk9UIFJFQ09NTUVOREVELgorICAgICAqICBQZXJmb3JtYW5jZSBnYWlu
cyBhcmUgbWluaW1hbCwgYW5kIGNvcnJlY3QgYnVmZmVyIG1hbmFnZW1lbnQgaXMKKyAgICAgKiAg
dHJpY2t5LiAgVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFj
a0J1ZmZlciAgVGhlIHBvaW50ZXIgdG8gdGhlIG1lbW9yeSBpbnRvIHdoaWNoIHRoZSBjbG9uZWQg
b2JqZWN0CisgICAgICogICAgICAgICAgICAgICAgICAgICBzaG91bGQgYmUgcGxhY2VkLiAgSWYg
TlVMTCwgIGFsbG9jYXRlIGhlYXAgbWVtb3J5CisgICAgICogICAgICAgICAgICAgICAgICAgICBm
b3IgdGhlIGNsb25lZCBvYmplY3QuCisgICAgICogQHBhcmFtIEJ1ZmZlclNpemUgICBUaGUgc2l6
ZSBvZiB0aGUgYnVmZmVyLiAgSWYgemVybywgcmV0dXJuIHRoZSByZXF1aXJlZAorICAgICAqICAg
ICAgICAgICAgICAgICAgICAgYnVmZmVyIHNpemUsIGJ1dCBkbyBub3QgY2xvbmUgdGhlIG9iamVj
dC4gIElmIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgc2l6ZSB3YXMgdG9vIHNtYWxs
IChidXQgbm90IHplcm8pLCBhbGxvY2F0ZSBoZWFwCisgICAgICogICAgICAgICAgICAgICAgICAg
ICBzdG9yYWdlIGZvciB0aGUgY2xvbmVkIG9iamVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBz
dGF0dXMgICAgICAgRXJyb3Igc3RhdHVzLiAgVV9TQUZFQ0xPTkVfQUxMT0NBVEVEX1dBUk5JTkcg
d2lsbCBiZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgcmV0dXJuZWQgaWYgdGhlIHRoZSBw
cm92aWRlZCBidWZmZXIgd2FzIHRvbyBzbWFsbCwgYW5kCisgICAgICogICAgICAgICAgICAgICAg
ICAgICB0aGUgY2xvbmUgd2FzIHRoZXJlZm9yZSBwdXQgb24gdGhlIGhlYXAuCisgICAgICoKKyAg
ICAgKiBAcmV0dXJuICBQb2ludGVyIHRvIHRoZSBjbG9uZSBvYmplY3QuICBUaGlzIG1heSBkaWZm
ZXIgZnJvbSB0aGUgc3RhY2tCdWZmZXIKKyAgICAgKiAgICAgICAgICBhZGRyZXNzIGlmIHRoZSBi
eXRlIGFsaWdubWVudCBvZiB0aGUgc3RhY2sgYnVmZmVyIHdhcyBub3Qgc3VpdGFibGUKKyAgICAg
KiAgICAgICAgICBvciBpZiB0aGUgc3RhY2tCdWZmZXIgd2FzIHRvbyBzbWFsbCB0byBob2xkIHRo
ZSBjbG9uZS4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIFVzZSBjbG9uZSgpIGluc3RlYWQu
CisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yICogIGNyZWF0ZUJ1ZmZlckNsb25l
KHZvaWQgKnN0YWNrQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQzMl90ICZCdWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICZzdGF0dXMpOworCisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm4gdGhlIGJpbmFyeSBmb3JtIG9mIGNvbXBpbGVkIGJyZWFrIHJ1bGVzLAor
ICAgICAqIHdoaWNoIGNhbiB0aGVuIGJlIHVzZWQgdG8gY3JlYXRlIGEgbmV3IGJyZWFrIGl0ZXJh
dG9yIGF0IHNvbWUKKyAgICAgKiB0aW1lIGluIHRoZSBmdXR1cmUuICBDcmVhdGluZyBhIGJyZWFr
IGl0ZXJhdG9yIGZyb20gcHJlLWNvbXBpbGVkIHJ1bGVzCisgICAgICogaXMgbXVjaCBmYXN0ZXIg
dGhhbiBidWlsZGluZyBvbmUgZnJvbSB0aGUgc291cmNlIGZvcm0gb2YgdGhlCisgICAgICogYnJl
YWsgcnVsZXMuCisgICAgICoKKyAgICAgKiBUaGUgYmluYXJ5IGRhdGEgY2FuIG9ubHkgYmUgdXNl
ZCB3aXRoIHRoZSBzYW1lIHZlcnNpb24gb2YgSUNVCisgICAgICogIGFuZCBvbiB0aGUgc2FtZSBw
bGF0Zm9ybSB0eXBlIChwcm9jZXNzb3IgZW5kaWFuLW5lc3MpCisgICAgICoKKyAgICAgKiBAcGFy
YW0gbGVuZ3RoIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgYmluYXJ5IGRhdGEuICAoT3V0IHBh
cmFtdGVyLikKKyAgICAgKgorICAgICAqIEByZXR1cm4gICBBIHBvaW50ZXIgdG8gdGhlIGJpbmFy
eSAoY29tcGlsZWQpIHJ1bGUgZGF0YS4gIFRoZSBzdG9yYWdlCisgICAgICogICAgICAgICAgIGJl
bG9uZ3MgdG8gdGhlIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yIG9iamVjdCwgbm90IHRoZQorICAg
ICAqICAgICAgICAgICBjYWxsZXIsIGFuZCBtdXN0IG5vdCBiZSBtb2RpZmllZCBvciBkZWxldGVk
LgorICAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICAqLworICAgIHZpcnR1YWwgY29uc3QgdWlu
dDhfdCAqZ2V0QmluYXJ5UnVsZXModWludDMyX3QgJmxlbmd0aCk7CisKKyAgICAvKioKKyAgICAg
KiAgU2V0IHRoZSBzdWJqZWN0IHRleHQgc3RyaW5nIHVwb24gd2hpY2ggdGhlIGJyZWFrIGl0ZXJh
dG9yIGlzIG9wZXJhdGluZworICAgICAqICB3aXRob3V0IGNoYW5naW5nIGFueSBvdGhlciBhc3Bl
Y3Qgb2YgdGhlIG1hdGNoaW5nIHN0YXRlLgorICAgICAqICBUaGUgbmV3IGFuZCBwcmV2aW91cyB0
ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCisgICAgICoKKyAgICAgKiAg
VGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGluIGVudmlyb25tZW50cyB3aGVyZSBJ
Q1UgaXMgb3BlcmF0aW5nIG9uCisgICAgICogIHN0cmluZ3MgdGhhdCBtYXkgbW92ZSBhcm91bmQg
aW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIG5vdGlmeWluZworICAgICAq
ICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVuIHJlbG9jYXRlZCwgYW5kIHByb3ZpZGluZyBh
IG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICAgICogIHN0cmluZyBpbiBpdHMgbmV3IHBvc2l0
aW9uLgorICAgICAqCisgICAgICogIE5vdGUgdGhhdCB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVt
ZW50YXRpb24gbmV2ZXIgY29waWVzIHRoZSB1bmRlcmx5aW5nIHRleHQKKyAgICAgKiAgb2YgYSBz
dHJpbmcgYmVpbmcgcHJvY2Vzc2VkLCBidXQgYWx3YXlzIG9wZXJhdGVzIGRpcmVjdGx5IG9uIHRo
ZSBvcmlnaW5hbCB0ZXh0CisgICAgICogIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiBSZWZyZXNoaW5n
IHNpbXBseSBkcm9wcyB0aGUgcmVmZXJlbmNlcyB0byB0aGUgb2xkIHRleHQKKyAgICAgKiAgYW5k
IHJlcGxhY2VzIHRoZW0gd2l0aCByZWZlcmVuY2VzIHRvIHRoZSBuZXcuCisgICAgICoKKyAgICAg
KiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rpb24gaXMgbm9ybWFsbHkgdXNlZCBvbmx5IGJ5IHZlcnkg
c3BlY2lhbGl6ZWQsCisgICAgICogIHN5c3RlbS1sZXZlbCBjb2RlLiAgT25lIGV4YW1wbGUgdXNl
IGNhc2UgaXMgd2l0aCBnYXJiYWdlIGNvbGxlY3Rpb24gdGhhdCBtb3ZlcworICAgICAqICB0aGUg
dGV4dCBpbiBtZW1vcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5wdXQgICAgICBUaGUgbmV3
IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisgICAgICogQHBhcmFtIHN0YXR1cyAgICAgUmVjZWl2ZXMg
ZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCisgICAgICogQHJldHVybiAgICAgICAg
ICAgKnRoaXMKKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdmly
dHVhbCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yICZyZWZyZXNoSW5wdXRUZXh0KFVUZXh0ICppbnB1
dCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworCitwcm90ZWN0ZWQ6CisgICAgLy89PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorICAgIC8vIGltcGxlbWVudGF0aW9uCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8q
KgorICAgICAqIER1bXBzIGNhY2hlcyBhbmQgcGVyZm9ybXMgb3RoZXIgYWN0aW9ucyBhc3NvY2lh
dGVkIHdpdGggYSBjb21wbGV0ZSBjaGFuZ2UKKyAgICAgKiBpbiB0ZXh0IG9yIGl0ZXJhdGlvbiBw
b3NpdGlvbi4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgcmVz
ZXQodm9pZCk7CisKKyNpZiAwCisgICAgLyoqCisgICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBj
YXRlZ29yeSBsb29rdXAgZm9yIHRoaXMgY2hhcgorICAgICAgKiBpbmRpY2F0ZXMgdGhhdCBpdCBp
cyBpbiB0aGUgc2V0IG9mIGRpY3Rpb25hcnkgbG9va3VwIGNoYXJzLgorICAgICAgKiBUaGlzIGZ1
bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZGljdGlvbmFyeSBiYXNlZCBicmVhayBpdGVy
YXRvcnMuCisgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY2F0ZWdvcnkgbG9va3VwIGZvciB0
aGlzIGNoYXIKKyAgICAgICogaW5kaWNhdGVzIHRoYXQgaXQgaXMgaW4gdGhlIHNldCBvZiBkaWN0
aW9uYXJ5IGxvb2t1cCBjaGFycy4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZp
cnR1YWwgVUJvb2wgaXNEaWN0aW9uYXJ5Q2hhcihVQ2hhcjMyKTsKKworICAgIC8qKgorICAgICAg
KiBHZXQgdGhlIHR5cGUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAgKiBAaW50ZXJuYWwK
KyAgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldEJyZWFrVHlwZSgpIGNvbnN0OworI2Vu
ZGlmCisKKyAgICAvKioKKyAgICAgICogU2V0IHRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRv
ci4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzZXRCcmVh
a1R5cGUoaW50MzJfdCB0eXBlKTsKKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAg
LyoqCisgICAgICAqIENvbW1vbiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgdXNlZCBieSBjb25z
dHJ1Y3RvcnMgYW5kIGJ1ZmZlckNsb25lLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisg
ICAgdm9pZCBpbml0KCk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworcHJp
dmF0ZToKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGJhY2tzIHRoZSBpdGVyYXRvciBi
YWNrIHVwIHRvIGEgInNhZmUgcG9zaXRpb24iIGluIHRoZSB0ZXh0LgorICAgICAqIFRoaXMgaXMg
YSBwb3NpdGlvbiB0aGF0IHdlIGtub3csIHdpdGhvdXQgYW55IGNvbnRleHQsIG11c3QgYmUgYSBi
cmVhayBwb3NpdGlvbi4KKyAgICAgKiBUaGUgdmFyaW91cyBjYWxsaW5nIG1ldGhvZHMgdGhlbiBp
dGVyYXRlIGZvcndhcmQgZnJvbSB0aGlzIHNhZmUgcG9zaXRpb24gdG8KKyAgICAgKiB0aGUgYXBw
cm9wcmlhdGUgcG9zaXRpb24gdG8gcmV0dXJuLiAgKEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUg
dGhlIGRlc2NyaXB0aW9uCisgICAgICogb2YgYnVpbGRCYWNrd2FyZHNTdGF0ZVRhYmxlKCkgaW4g
UnVsZUJhc2VkQnJlYWtJdGVyYXRvci5CdWlsZGVyLikKKyAgICAgKiBAcGFyYW0gc3RhdGV0YWJs
ZSBzdGF0ZSB0YWJsZSB1c2VkIG9mIG1vdmluZyBiYWNrd2FyZHMKKyAgICAgKiBAaW50ZXJuYWwK
KyAgICAgKi8KKyAgICBpbnQzMl90IGhhbmRsZVByZXZpb3VzKGNvbnN0IFJCQklTdGF0ZVRhYmxl
ICpzdGF0ZXRhYmxlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRoZSBhY3R1
YWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5leHQoKSBtZXRob2QuICBBbGwgaXRlcmF0aW9uCisg
ICAgICogdmVjdG9ycyB0aHJvdWdoIGhlcmUuICBUaGlzIG1ldGhvZCBpbml0aWFsaXplcyB0aGUg
c3RhdGUgbWFjaGluZSB0byBzdGF0ZSAxCisgICAgICogYW5kIGFkdmFuY2VzIHRocm91Z2ggdGhl
IHRleHQgY2hhcmFjdGVyIGJ5IGNoYXJhY3RlciB1bnRpbCB3ZSByZWFjaCB0aGUgZW5kCisgICAg
ICogb2YgdGhlIHRleHQgb3IgdGhlIHN0YXRlIG1hY2hpbmUgdHJhbnNpdGlvbnMgdG8gc3RhdGUg
MC4gIFdlIHVwZGF0ZSBvdXIgcmV0dXJuCisgICAgICogdmFsdWUgZXZlcnkgdGltZSB0aGUgc3Rh
dGUgbWFjaGluZSBwYXNzZXMgdGhyb3VnaCBhIHBvc3NpYmxlIGVuZCBzdGF0ZS4KKyAgICAgKiBA
cGFyYW0gc3RhdGV0YWJsZSBzdGF0ZSB0YWJsZSB1c2VkIG9mIG1vdmluZyBmb3J3YXJkcworICAg
ICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgaGFuZGxlTmV4dChjb25zdCBSQkJJ
U3RhdGVUYWJsZSAqc3RhdGV0YWJsZSk7CisKK3Byb3RlY3RlZDoKKworI2lmbmRlZiBVX0hJREVf
SU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICogVGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBh
Y3R1YWxseSBpbXBsZW1lbnRzIGRpY3Rpb25hcnktYmFzZWQKKyAgICAgKiBicmVha2luZy4gIENv
dmVyaW5nIGF0IGxlYXN0IHRoZSByYW5nZSBmcm9tIHN0YXJ0UG9zIHRvIGVuZFBvcywKKyAgICAg
KiBpdCBjaGVja3MgZm9yIGRpY3Rpb25hcnkgY2hhcmFjdGVycywgYW5kIGlmIGl0IGZpbmRzIHRo
ZW0gZGV0ZXJtaW5lcworICAgICAqIHRoZSBhcHByb3ByaWF0ZSBvYmplY3QgdG8gZGVhbCB3aXRo
IHRoZW0uIEl0IG1heSBjYWNoZSBmb3VuZCBicmVha3MgaW4KKyAgICAgKiBmQ2FjaGVkQnJlYWtQ
b3NpdGlvbnMgYXMgaXQgZ29lcy4gSXQgbWF5IHdlbGwgYWxzbyBsb29rIGF0IHRleHQgb3V0c2lk
ZQorICAgICAqIHRoZSByYW5nZSBzdGFydFBvcyB0byBlbmRQb3MuCisgICAgICogSWYgZ29pbmcg
Zm9yd2FyZCwgZW5kUG9zIGlzIHRoZSBub3JtYWwgVW5pY29kZSBicmVhayByZXN1bHQsIGFuZAor
ICAgICAqIGlmIGdvaW5kIGluIHJldmVyc2UsIHN0YXJ0UG9zIGlzIHRoZSBub3JtYWwgVW5pY29k
ZSBicmVhayByZXN1bHQKKyAgICAgKiBAcGFyYW0gc3RhcnRQb3MgIFRoZSBzdGFydCBwb3NpdGlv
biBvZiBhIHJhbmdlIG9mIHRleHQKKyAgICAgKiBAcGFyYW0gZW5kUG9zICAgIFRoZSBlbmQgcG9z
aXRpb24gb2YgYSByYW5nZSBvZiB0ZXh0CisgICAgICogQHBhcmFtIHJldmVyc2UgICBUaGUgY2Fs
bCBpcyBmb3IgdGhlIHJldmVyc2UgZGlyZWN0aW9uCisgICAgICogQGludGVybmFsCisgICAgICov
CisgICAgaW50MzJfdCBjaGVja0RpY3Rpb25hcnkoaW50MzJfdCBzdGFydFBvcywgaW50MzJfdCBl
bmRQb3MsIFVCb29sIHJldmVyc2UpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICov
CisKK3ByaXZhdGU6CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhl
IGFwcHJvcHJpYXRlIExhbmd1YWdlQnJlYWtFbmdpbmUgZm9yIGEKKyAgICAgKiBnaXZlbiBjaGFy
YWN0ZXIgYy4KKyAgICAgKiBAcGFyYW0gYyAgICAgICAgIEEgY2hhcmFjdGVyIGluIHRoZSBkaWN0
aW9uYXJ5IHNldAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGNvbnN0IExhbmd1YWdl
QnJlYWtFbmdpbmUgKmdldExhbmd1YWdlQnJlYWtFbmdpbmUoVUNoYXIzMiBjKTsKKworICAgIC8q
KgorICAgICAqICBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB2b2lkIG1ha2VSdWxlU3RhdHVzVmFs
aWQoKTsKKworfTsKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgIElubGluZSBG
dW5jdGlvbnMgRGVmaW5pdGlvbnMgLi4uCisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
aW5saW5lIFVCb29sIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I6Om9wZXJhdG9yIT0oY29uc3QgQnJl
YWtJdGVyYXRvciYgdGhhdCkgY29uc3QgeworICAgIHJldHVybiAhb3BlcmF0b3I9PSh0aGF0KTsK
K30KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZiAvKiAjaWYgIVVDT05GSUdfTk9fQlJFQUtf
SVRFUkFUSU9OICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9zY2hyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQwYjVlMjI1MDNjZmYyNjFkMmNkMjQwZmYxMjAwN2Y5MzdmNzgzYjIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3NjaHJpdGVyLmgKQEAgLTAsMCArMSwxODcg
QEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgt
MjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFu
ZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqCisqIEZpbGUgc2Nocml0ZXIuaAorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyog
ICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgMDUvMDUvOTkgICAgIHN0
ZXBoZW4gICAgIENsZWFuZWQgdXAuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5k
ZWYgU0NIUklURVJfSAorI2RlZmluZSBTQ0hSSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0
eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3VjaHJpdGVyLmgiCisKKy8qKgorICogXGZpbGUgCisgKiBcYnJpZWYgQysrIEFQSTogU3RyaW5n
IENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorLyoqCisgKiBB
IGNvbmNyZXRlIHN1YmNsYXNzIG9mIENoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3Zl
ciB0aGUKKyAqIGNoYXJhY3RlcnMgKGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMpIGluIGEgVW5p
Y29kZVN0cmluZy4KKyAqIEl0J3MgcG9zc2libGUgbm90IG9ubHkgdG8gY3JlYXRlIGFuCisgKiBp
dGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgYW4gZW50aXJlIFVuaWNvZGVTdHJpbmcsIGJ1dCBh
bHNvIHRvCisgKiBjcmVhdGUgb25lIHRoYXQgaXRlcmF0ZXMgb3ZlciBvbmx5IGEgc3VicmFuZ2Ug
b2YgYSBVbmljb2RlU3RyaW5nCisgKiAoaXRlcmF0b3JzIG92ZXIgZGlmZmVyZW50IHN1YnJhbmdl
cyBvZiB0aGUgc2FtZSBVbmljb2RlU3RyaW5nIGRvbid0CisgKiBjb21wYXJlIGVxdWFsKS4KKyAq
IEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIFN0cmluZ0NoYXJh
Y3Rlckl0ZXJhdG9yIDogcHVibGljIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGljOgor
ICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVm
ZXJyZWQgdG8gYnkgInRleHRTdHIiLgorICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaXMg
Y29waWVkLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIHRoZSB3aG9sZSBzdHJpbmcsIGFu
ZCB0aGUgc3RhcnRpbmcgcG9zaXRpb24gaXMgMC4KKyAgICogQHBhcmFtIHRleHRTdHIgVGhlIHVu
aWNvZGUgc3RyaW5nIHVzZWQgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yCisgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmlu
ZyYgdGV4dFN0cik7CisKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBV
bmljb2RlU3RyaW5nIHJlZmVycmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIGl0ZXJhdGlv
biByYW5nZSBpcyB0aGUgd2hvbGUgc3RyaW5nLCBhbmQgdGhlIHN0YXJ0aW5nCisgICAqIHBvc2l0
aW9uIGlzIHNwZWNpZmllZCBieSAidGV4dFBvcyIuICBJZiAidGV4dFBvcyIgaXMgb3V0c2lkZSB0
aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2YgdGhpcyBvYmpl
Y3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFN0ciBUaGUgdW5pY29kZSBzdHJpbmcg
dXNlZCB0byBjcmVhdGUgYW4gaXRlcmF0b3IKKyAgICogQHBhcmFtIHRleHRQb3MgVGhlIHN0YXJ0
aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVbmljb2RlU3RyaW5nJiAgICB0ZXh0
U3RyLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0UG9zKTsKKworICAv
KioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJy
ZWQgdG8gYnkgInRleHRTdHIiLgorICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaXMgY29w
aWVkLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGJlZ2lucyB3aXRoIHRoZSBjb2RlIHVuaXQg
c3BlY2lmaWVkIGJ5CisgICAqICJ0ZXh0QmVnaW4iIGFuZCBlbmRzIHdpdGggdGhlIGNvZGUgdW5p
dCBCRUZPUkUgdGhlIGNvZGUgdW5pdCBzcGVjZmllZAorICAgKiBieSAidGV4dEVuZCIuICBUaGUg
c3RhcnRpbmcgcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJ0ZXh0UG9zIi4gIElmCisgICAqICJ0
ZXh0QmVnaW4iIGFuZCAidGV4dEVuZCIgZG9uJ3QgZm9ybSBhIHZhbGlkIHJhbmdlIG9uICJ0ZXh0
IiAoaS5lLiwKKyAgICogdGV4dEJlZ2luID49IHRleHRFbmQgb3IgZWl0aGVyIGlzIG5lZ2F0aXZl
IG9yIGdyZWF0ZXIgdGhhbiB0ZXh0LnNpemUoKSksCisgICAqIG9yICJ0ZXh0UG9zIiBpcyBvdXRz
aWRlIHRoZSByYW5nZSBkZWZpbmVkIGJ5ICJ0ZXh0QmVnaW4iIGFuZCAidGV4dEVuZCIsCisgICAq
IHRoZSBiZWhhdmlvciBvZiB0aGlzIGl0ZXJhdG9yIGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFt
IHRleHRTdHIgICAgVGhlIHVuaWNvZGUgc3RyaW5nIHVzZWQgdG8gY3JlYXRlIHRoZSBTdHJpbmdD
aGFyYWN0ZXJJdGVyYXRvcgorICAgKiBAcGFyYW0gdGV4dEJlZ2luICBUaGUgYmVnaW4gcG9zaXRp
b24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0gdGV4dEVuZCAgICBUaGUgZW5k
IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRQb3MgICAg
VGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVbmljb2RlU3RyaW5n
JiAgICB0ZXh0U3RyLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0QmVn
aW4sCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAgICAgIHRleHRFbmQsCisgICAgICAg
ICAgICAgIGludDMyX3QgICAgICAgICAgICAgIHRleHRQb3MpOworCisgIC8qKgorICAgKiBDb3B5
IGNvbnN0cnVjdG9yLiAgVGhlIG5ldyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIHRoZSBzYW1lIHJh
bmdlCisgICAqIG9mIHRoZSBzYW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCBpdHMgaW5pdGlhbCBw
b3NpdGlvbiBpcyB0aGUKKyAgICogc2FtZSBhcyAidGhhdCIncyBjdXJyZW50IHBvc2l0aW9uLgor
ICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaW4gInRoYXQiIGlzIGNvcGllZC4KKyAgICog
QHBhcmFtIHRoYXQgVGhlIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvcGllZAorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0
IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJiAgdGhhdCk7CisKKyAgLyoqCisgICAqIERlc3RydWN0
b3IuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB+U3RyaW5nQ2hhcmFj
dGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogQXNzaWdubWVudCBvcGVyYXRvci4gICp0aGlz
IGlzIGFsdGVyZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBzYW1lCisgICAqIHJhbmdlIG9mIHRoZSBz
YW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCByZWZlcnMgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFj
dGVyIHdpdGhpbiB0aGF0IHN0cmluZyBhcyAidGhhdCIgZG9lcy4KKyAgICogQHBhcmFtIHRoYXQg
VGhlIG9iamVjdCB0byBiZSBjb3BpZWQuCisgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQg
b2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0
ZXJhdG9yJgorICBvcGVyYXRvcj0oY29uc3QgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImICAgIHRo
YXQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRl
IG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9p
bnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgKiBAcmV0
dXJuIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2Yg
dGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFj
dGVyLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAg
ICAgb3BlcmF0b3I9PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0
OworCisgIC8qKgorICAgKiBSZXR1cm5zIGEgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHJl
ZmVycmluZyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgcmFuZ2Ugb2Yg
dGhlIHNhbWUgc3RyaW5nIGFzIHRoaXMgb25lLiAgVGhlCisgICAqIGNhbGxlciBtdXN0IGRlbGV0
ZSB0aGUgbmV3IGl0ZXJhdG9yLgorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjbG9uZWQgb2JqZWN0
LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0
b3IqIGNsb25lKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0
byBpdGVyYXRlIG92ZXIgdGhlIHByb3ZpZGVkIHN0cmluZy4KKyAgICogQHBhcmFtIG5ld1RleHQg
VGhlIHN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdm9pZCBzZXRUZXh0KGNvbnN0IFVuaWNvZGVTdHJpbmcmIG5ld1RleHQpOworCisgIC8q
KgorICAgKiBDb3BpZXMgdGhlIFVuaWNvZGVTdHJpbmcgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhl
IFVuaWNvZGVTdHJpbmcKKyAgICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICBFdmVuIGlmIHRo
aXMgaXRlcmF0b3IgaXRlcmF0ZXMgYWNyb3NzCisgICAqIG9ubHkgYSBwYXJ0IG9mIHRoaXMgc3Ry
aW5nLCB0aGUgd2hvbGUgc3RyaW5nIGlzIGNvcGllZC4KKyAgICogQHBhcmFtIHJlc3VsdCBSZWNl
aXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uLgorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0
cmluZyYgcmVzdWx0KTsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMg
b2JqZWN0IChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0
aGlzIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDbGFz
c0lEICAgICAgICAgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAq
IFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzIChub3QgcmVhbGx5IHB1YmxpYykKKyAg
ICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgc3RhdGljIFVDbGFzc0lEICAgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQo
dm9pZCk7CisKK3Byb3RlY3RlZDoKKyAgLyoqCisgICAqIERlZmF1bHQgY29uc3RydWN0b3IsIGl0
ZXJhdGlvbiBvdmVyIGVtcHR5IHN0cmluZy4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVy
YXRvciB0byBpdGVyYXRlIG92ZXIgdGhlIHByb3ZpZGVkIHN0cmluZy4KKyAgICogQHBhcmFtIG5l
d1RleHQgVGhlIHN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBwYXJhbSBuZXdUZXh0
TGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFN0cmluZworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVQ2hhciogbmV3VGV4dCwgaW50MzJfdCBuZXdUZXh0
TGVuZ3RoKTsKKworICAvKioKKyAgICogQ29weSBvZiB0aGUgaXRlcmF0ZWQgc3RyaW5nIG9iamVj
dC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVbmljb2RlU3RyaW5nICAgICAgICAg
ICAgdGV4dDsKKworfTsKKworVV9OQU1FU1BBQ0VfRU5ECisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNhc2VtYXAuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUv
dWNhc2VtYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzdlMTY1ODg2OTdmMWE5MzAxOTFlZTNkZjgxNmM2M2I3
YmQzOGMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1h
cC5oCkBAIC0wLDAgKzEsNDIzIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAg
IENvcHlyaWdodCAoQykgMjAwNS0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdWNhc2VtYXAuaAorKiAgIGVu
Y29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5k
ZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDIwMDVtYXkwNgorKiAgIGNyZWF0ZWQgYnk6
IE1hcmt1cyBXLiBTY2hlcmVyCisqCisqICAgQ2FzZSBtYXBwaW5nIHNlcnZpY2Ugb2JqZWN0IGFu
ZCBmdW5jdGlvbnMgdXNpbmcgaXQuCisqLworCisjaWZuZGVmIF9fVUNBU0VNQVBfSF9fCisjZGVm
aW5lIF9fVUNBU0VNQVBfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1
ZGUgInVuaWNvZGUvdXN0cmluZy5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9jYWxwb2ludGVyLmgi
CisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogVW5pY29kZSBjYXNlIG1hcHBpbmcg
ZnVuY3Rpb25zIHVzaW5nIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKgorICogVGhlIHNl
cnZpY2Ugb2JqZWN0IHRha2VzIGNhcmUgb2YgbWVtb3J5IGFsbG9jYXRpb25zLCBkYXRhIGxvYWRp
bmcsIGFuZCBzZXR1cAorICogZm9yIHRoZSBhdHRyaWJ1dGVzLCBhcyB1c3VhbC4KKyAqCisgKiBD
dXJyZW50bHksIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGhlcmUgZG9lcyBub3Qgb3Zlcmxh
cCB3aXRoIHVjaGFyLmgKKyAqIGFuZCB1c3RyaW5nLmgsIGV4Y2VwdCBmb3IgdWNhc2VtYXBfdG9U
aXRsZSgpLgorICoKKyAqIHVjYXNlbWFwX3V0ZjhYWVooKSBmdW5jdGlvbnMgb3BlcmF0ZSBkaXJl
Y3RseSBvbiBVVEYtOCBzdHJpbmdzLgorICovCisKKy8qKgorICogVUNhc2VNYXAgaXMgYW4gb3Bh
cXVlIHNlcnZpY2Ugb2JqZWN0IGZvciBuZXdlciBJQ1UgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucy4K
KyAqIE9sZGVyIGZ1bmN0aW9ucyBkaWQgbm90IHVzZSBhIHNlcnZpY2Ugb2JqZWN0LgorICogQHN0
YWJsZSBJQ1UgMy40CisgKi8KK3N0cnVjdCBVQ2FzZU1hcDsKK3R5cGVkZWYgc3RydWN0IFVDYXNl
TWFwIFVDYXNlTWFwOyAvKio8IEMgdHlwZWRlZiBmb3Igc3RydWN0IFVDYXNlTWFwLiBAc3RhYmxl
IElDVSAzLjQgKi8KKworLyoqCisgKiBPcGVuIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QgZm9y
IGEgbG9jYWxlIGFuZCBhIHNldCBvZiBvcHRpb25zLgorICogVGhlIGxvY2FsZSBJRCBhbmQgb3B0
aW9ucyBhcmUgcHJlcHJvY2Vzc2VkIHNvIHRoYXQgZnVuY3Rpb25zIHVzaW5nIHRoZQorICogc2Vy
dmljZSBvYmplY3QgbmVlZCBub3QgcHJvY2VzcyB0aGVtIGluIGVhY2ggY2FsbC4KKyAqCisgKiBA
cGFyYW0gbG9jYWxlIElDVSBsb2NhbGUgSUQsIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudAor
ICogICAgICAgICAgICAgICB1cHBlci0vbG93ZXItL3RpdGxlLWNhc2luZyBhY2NvcmRpbmcgdG8g
dGhlIFVuaWNvZGUgc3RhbmRhcmQuCisgKiAgICAgICAgICAgICAgIFVzdWFsIHNlbWFudGljczog
IiI9cm9vdCwgTlVMTD1kZWZhdWx0IGxvY2FsZSwgZXRjLgorICogQHBhcmFtIG9wdGlvbnMgT3B0
aW9ucyBiaXQgc2V0LCB1c2VkIGZvciBjYXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29u
cy4KKyAqICAgICAgICAgICAgICAgIFNhbWUgZmxhZ3MgYXMgZm9yIHVfZm9sZENhc2UoKSwgdV9z
dHJGb2xkQ2FzZSgpLAorICogICAgICAgICAgICAgICAgdV9zdHJDYXNlQ29tcGFyZSgpLCBldGMu
CisgKiAgICAgICAgICAgICAgICBVc2UgMCBvciBVX0ZPTERfQ0FTRV9ERUZBVUxUIGZvciBkZWZh
dWx0IGJlaGF2aW9yLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50
ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11
c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBA
cmV0dXJuIFBvaW50ZXIgdG8gYSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdCwgaWYgc3VjY2Vzc2Z1
bC4KKyAqCisgKiBAc2VlIFVfRk9MRF9DQVNFX0RFRkFVTFQKKyAqIEBzZWUgVV9GT0xEX0NBU0Vf
RVhDTFVERV9TUEVDSUFMX0kKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBA
c2VlIFVfVElUTEVDQVNFX05PX0JSRUFLX0FESlVTVE1FTlQKKyAqIEBzdGFibGUgSUNVIDMuNAor
ICovCitVX1NUQUJMRSBVQ2FzZU1hcCAqIFVfRVhQT1JUMgordWNhc2VtYXBfb3Blbihjb25zdCBj
aGFyICpsb2NhbGUsIHVpbnQzMl90IG9wdGlvbnMsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwor
CisvKioKKyAqIENsb3NlIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gY3Nt
IE9iamVjdCB0byBiZSBjbG9zZWQuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUg
dm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX2Nsb3NlKFVDYXNlTWFwICpjc20pOworCisjaWYgVV9T
SE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBcY2xhc3Mg
TG9jYWxVQ2FzZU1hcFBvaW50ZXIKKyAqICJTbWFydCBwb2ludGVyIiBjbGFzcywgY2xvc2VzIGEg
VUNhc2VNYXAgdmlhIHVjYXNlbWFwX2Nsb3NlKCkuCisgKiBGb3IgbW9zdCBtZXRob2RzIHNlZSB0
aGUgTG9jYWxQb2ludGVyQmFzZSBiYXNlIGNsYXNzLgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVy
QmFzZQorICogQHNlZSBMb2NhbFBvaW50ZXIKKyAqIEBzdGFibGUgSUNVIDQuNAorICovCitVX0RF
RklORV9MT0NBTF9PUEVOX1BPSU5URVIoTG9jYWxVQ2FzZU1hcFBvaW50ZXIsIFVDYXNlTWFwLCB1
Y2FzZW1hcF9jbG9zZSk7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYKKworLyoqCisgKiBH
ZXQgdGhlIGxvY2FsZSBJRCB0aGF0IGlzIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudCBjYXNl
IG1hcHBpbmdzLgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBy
ZXR1cm4gbG9jYWxlIElECisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgY29uc3Qg
Y2hhciAqIFVfRVhQT1JUMgordWNhc2VtYXBfZ2V0TG9jYWxlKGNvbnN0IFVDYXNlTWFwICpjc20p
OworCisvKioKKyAqIEdldCB0aGUgb3B0aW9ucyBiaXQgc2V0IHRoYXQgaXMgdXNlZCBmb3IgY2Fz
ZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVybiBvcHRpb25zIGJpdCBzZXQKKyAqIEBzdGFibGUg
SUNVIDMuNAorICovCitVX1NUQUJMRSB1aW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldE9w
dGlvbnMoY29uc3QgVUNhc2VNYXAgKmNzbSk7CisKKy8qKgorICogU2V0IHRoZSBsb2NhbGUgSUQg
dGhhdCBpcyB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQgY2FzZSBtYXBwaW5ncy4KKyAqCisg
KiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGxvY2FsZSBM
b2NhbGUgSUQsIHNlZSB1Y2FzZW1hcF9vcGVuKCkuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0
IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAg
ICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVu
Y3Rpb24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX29wZW4KKyAqIEBzdGFibGUgSUNVIDMu
NAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0TG9jYWxlKFVDYXNl
TWFwICpjc20sIGNvbnN0IGNoYXIgKmxvY2FsZSwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisK
Ky8qKgorICogU2V0IHRoZSBvcHRpb25zIGJpdCBzZXQgdGhhdCBpcyB1c2VkIGZvciBjYXNlIGZv
bGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29ucy4KKyAqCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBiaXQgc2V0LCBzZWUg
dWNhc2VtYXBfb3BlbigpLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBv
aW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNo
IG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisg
KgorICogQHNlZSB1Y2FzZW1hcF9vcGVuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFC
TEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldE9wdGlvbnMoVUNhc2VNYXAgKmNzbSwgdWlu
dDMyX3Qgb3B0aW9ucywgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogRG8gbm90
IGxvd2VyY2FzZSBub24taW5pdGlhbCBwYXJ0cyBvZiB3b3JkcyB3aGVuIHRpdGxlY2FzaW5nLgor
ICogT3B0aW9uIGJpdCBmb3IgdGl0bGVjYXNpbmcgQVBJcyB0aGF0IHRha2UgYW4gb3B0aW9ucyBi
aXQgc2V0LgorICoKKyAqIEJ5IGRlZmF1bHQsIHRpdGxlY2FzaW5nIHdpbGwgdGl0bGVjYXNlIHRo
ZSBmaXJzdCBjYXNlZCBjaGFyYWN0ZXIKKyAqIG9mIGEgd29yZCBhbmQgbG93ZXJjYXNlIGFsbCBv
dGhlciBjaGFyYWN0ZXJzLgorICogV2l0aCB0aGlzIG9wdGlvbiwgdGhlIG90aGVyIGNoYXJhY3Rl
cnMgd2lsbCBub3QgYmUgbW9kaWZpZWQuCisgKgorICogQHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25z
CisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUK
KyAqIEBzZWUgVW5pY29kZVN0cmluZzo6dG9UaXRsZQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8K
KyNkZWZpbmUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFIDB4MTAwCisKKy8qKgorICogRG8gbm90
IGFkanVzdCB0aGUgdGl0bGVjYXNpbmcgaW5kZXhlcyBmcm9tIEJyZWFrSXRlcmF0b3I6Om5leHQo
KSBpbmRleGVzOworICogdGl0bGVjYXNlIGV4YWN0bHkgdGhlIGNoYXJhY3RlcnMgYXQgYnJlYWtz
IGZyb20gdGhlIGl0ZXJhdG9yLgorICogT3B0aW9uIGJpdCBmb3IgdGl0bGVjYXNpbmcgQVBJcyB0
aGF0IHRha2UgYW4gb3B0aW9ucyBiaXQgc2V0LgorICoKKyAqIEJ5IGRlZmF1bHQsIHRpdGxlY2Fz
aW5nIHdpbGwgdGFrZSBlYWNoIGJyZWFrIGl0ZXJhdG9yIGluZGV4LAorICogYWRqdXN0IGl0IGJ5
IGxvb2tpbmcgZm9yIHRoZSBuZXh0IGNhc2VkIGNoYXJhY3RlciwgYW5kIHRpdGxlY2FzZSB0aGF0
IG9uZS4KKyAqIE90aGVyIGNoYXJhY3RlcnMgYXJlIGxvd2VyY2FzZWQuCisgKgorICogVGhpcyBm
b2xsb3dzIFVuaWNvZGUgNCAmIDUgc2VjdGlvbiAzLjEzIERlZmF1bHQgQ2FzZSBPcGVyYXRpb25z
OgorICoKKyAqIFIzICB0b1RpdGxlY2FzZShYKTogRmluZCB0aGUgd29yZCBib3VuZGFyaWVzIGJh
c2VkIG9uIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXgKKyAqICMyOSwgIlRleHQgQm91bmRhcmllcy4i
IEJldHdlZW4gZWFjaCBwYWlyIG9mIHdvcmQgYm91bmRhcmllcywgZmluZCB0aGUgZmlyc3QKKyAq
IGNhc2VkIGNoYXJhY3RlciBGLiBJZiBGIGV4aXN0cywgbWFwIEYgdG8gZGVmYXVsdF90aXRsZShG
KTsgdGhlbiBtYXAgZWFjaAorICogc3Vic2VxdWVudCBjaGFyYWN0ZXIgQyB0byBkZWZhdWx0X2xv
d2VyKEMpLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNlZSB1Y2FzZW1h
cF90b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc2VlIFVuaWNvZGVT
dHJpbmc6OnRvVGl0bGUKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBAc3Rh
YmxlIElDVSAzLjgKKyAqLworI2RlZmluZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5U
IDB4MjAwCisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworLyoqCisgKiBHZXQg
dGhlIGJyZWFrIGl0ZXJhdG9yIHRoYXQgaXMgdXNlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBEbyBu
b3QgbW9kaWZ5IHRoZSByZXR1cm5lZCBicmVhayBpdGVyYXRvci4KKyAqIEBwYXJhbSBjc20gVUNh
c2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIHRpdGxlY2FzaW5nIGJyZWFrIGl0ZXJh
dG9yCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgY29uc3QgVUJyZWFrSXRlcmF0
b3IgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldEJyZWFrSXRlcmF0b3IoY29uc3QgVUNhc2VNYXAg
KmNzbSk7CisKKy8qKgorICogU2V0IHRoZSBicmVhayBpdGVyYXRvciB0aGF0IGlzIHVzZWQgZm9y
IHRpdGxlY2FzaW5nLgorICogVGhlIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0IHJlbGVhc2VzIGEg
cHJldmlvdXNseSBzZXQgYnJlYWsgaXRlcmF0b3IKKyAqIGFuZCAiYWRvcHRzIiB0aGlzIG5ldyBv
bmUsIHRha2luZyBvd25lcnNoaXAgb2YgaXQuCisgKiBJdCB3aWxsIGJlIHJlbGVhc2VkIGluIGEg
c3Vic2VxdWVudCBjYWxsIHRvIHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoKQorICogb3IgdWNh
c2VtYXBfY2xvc2UoKS4KKyAqCisgKiBCcmVhayBpdGVyYXRvciBvcGVyYXRpb25zIGFyZSBub3Qg
dGhyZWFkLXNhZmUuIFRoZXJlZm9yZSwgdGl0bGVjYXNpbmcKKyAqIGZ1bmN0aW9ucyB1c2Ugbm9u
LWNvbnN0IFVDYXNlTWFwIG9iamVjdHMuIEl0IGlzIG5vdCBwb3NzaWJsZSB0byB0aXRsZWNhc2UK
KyAqIHN0cmluZ3MgY29uY3VycmVudGx5IHVzaW5nIHRoZSBzYW1lIFVDYXNlTWFwLgorICoKKyAq
IEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gaXRlclRvQWRv
cHQgQnJlYWsgaXRlcmF0b3IgdG8gYmUgYWRvcHRlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBAcGFy
YW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZh
bHVlLAorICogICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWls
dXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0
bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICov
CitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcihVQ2Fz
ZU1hcCAqY3NtLCBVQnJlYWtJdGVyYXRvciAqaXRlclRvQWRvcHQsIFVFcnJvckNvZGUgKnBFcnJv
ckNvZGUpOworCisvKioKKyAqIFRpdGxlY2FzZSBhIFVURi0xNiBzdHJpbmcuIFRoaXMgZnVuY3Rp
b24gaXMgYWxtb3N0IGEgZHVwbGljYXRlIG9mIHVfc3RyVG9UaXRsZSgpLAorICogZXhjZXB0IHRo
YXQgaXQgdGFrZXMgdWNhc2VtYXBfc2V0T3B0aW9ucygpIGludG8gYWNjb3VudCBhbmQgaGFzIHBl
cmZvcm1hbmNlCisgKiBhZHZhbnRhZ2VzIGZyb20gYmVpbmcgYWJsZSB0byB1c2UgYSBVQ2FzZU1h
cCBvYmplY3QgZm9yIG11bHRpcGxlIGNhc2UgbWFwcGluZworICogb3BlcmF0aW9ucywgc2F2aW5n
IHNldHVwIHRpbWUuCisgKgorICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRl
eHQtc2Vuc2l0aXZlLgorICogVGl0bGVjYXNpbmcgdXNlcyBhIGJyZWFrIGl0ZXJhdG9yIHRvIGZp
bmQgdGhlIGZpcnN0IGNoYXJhY3RlcnMgb2Ygd29yZHMKKyAqIHRoYXQgYXJlIHRvIGJlIHRpdGxl
Y2FzZWQuIEl0IHRpdGxlY2FzZXMgdGhvc2UgY2hhcmFjdGVycyBhbmQgbG93ZXJjYXNlcworICog
YWxsIG90aGVycy4gKFRoaXMgY2FuIGJlIG1vZGlmaWVkIHdpdGggdWNhc2VtYXBfc2V0T3B0aW9u
cygpLikKKyAqCisgKiBOb3RlOiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgbm9uLWNvbnN0IFVDYXNl
TWFwIHBvaW50ZXIgYmVjYXVzZSBpdCB3aWxsCisgKiBvcGVuIGEgZGVmYXVsdCBicmVhayBpdGVy
YXRvciBpZiBubyBicmVhayBpdGVyYXRvciB3YXMgc2V0IHlldCwKKyAqIGFuZCBlZmZlY3RpdmVs
eSBjYWxsIHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoKTsKKyAqIGFsc28gYmVjYXVzZSB0aGUg
YnJlYWsgaXRlcmF0b3IgaXMgc3RhdGVmdWwgYW5kIHdpbGwgYmUgbW9kaWZpZWQgZHVyaW5nCisg
KiB0aGUgaXRlcmF0aW9uLgorICoKKyAqIFRoZSB0aXRsZWNhc2UgYnJlYWsgaXRlcmF0b3IgY2Fu
IGJlIHByb3ZpZGVkIHRvIGN1c3RvbWl6ZSBmb3IgYXJiaXRyYXJ5CisgKiBzdHlsZXMsIHVzaW5n
IHJ1bGVzIGFuZCBkaWN0aW9uYXJpZXMgYmV5b25kIHRoZSBzdGFuZGFyZCBpdGVyYXRvcnMuCisg
KiBUaGUgc3RhbmRhcmQgdGl0bGVjYXNlIGl0ZXJhdG9yIGZvciB0aGUgcm9vdCBsb2NhbGUgaW1w
bGVtZW50cyB0aGUKKyAqIGFsZ29yaXRobSBvZiBVbmljb2RlIFRSIDIxLgorICoKKyAqIFRoaXMg
ZnVuY3Rpb24gdXNlcyBvbmx5IHRoZSBzZXRVVGV4dCgpLCBmaXJzdCgpLCBuZXh0KCkgYW5kIGNs
b3NlKCkgbWV0aG9kcyBvZiB0aGUKKyAqIHByb3ZpZGVkIGJyZWFrIGl0ZXJhdG9yLgorICoKKyAq
IFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgor
ICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qg
b3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0
LiBUaGlzIHBvaW50ZXIgaXMgbm9uLWNvbnN0IQorICogICAgICAgICAgICAgICAgICBTZWUgdGhl
IG5vdGUgYWJvdmUgZm9yIGRldGFpbHMuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZv
ciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlm
CisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAg
ICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVy
ZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVy
IG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1h
eSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9m
IHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0
aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmlu
Zy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5n
LiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJy
b3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisg
KiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZv
cmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3Vs
dCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93
LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RD
YXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9UaXRsZQorICogQHN0YWJsZSBJQ1UgMy44Cisg
Ki8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF90b1RpdGxlKFVDYXNlTWFw
ICpjc20sCisgICAgICAgICAgICAgICAgIFVDaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0
eSwKKyAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgs
CisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYKKwor
LyoqCisgKiBMb3dlcmNhc2UgdGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcuCisgKiBD
YXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaGUg
cmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRo
ZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJs
YXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAq
IEBwYXJhbSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVz
dWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1
ZmZlciBpcyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBp
cyB1bmRlZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBU
aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVu
CisgKiAgICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3
aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAg
ICAgICB3aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFt
IHNyYyAgICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUg
bGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5V
TC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50
ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVz
dCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEBy
ZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9y
IGluIGNhc2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2Ug
aXQgd2lsbCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJU
b0xvd2VyCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9S
VDIKK3VjYXNlbWFwX3V0ZjhUb0xvd2VyKGNvbnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAg
ICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBVcHBlcmNhc2Ug
dGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRl
cGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25n
ZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFu
ZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFt
IGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAg
QSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRl
cm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91
Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2Fz
ZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVm
ZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAg
ICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRo
ZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRp
bmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3Jp
Z2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmln
aW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICog
QHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29k
ZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBm
YWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBv
ZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZm
ZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVy
IHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1VwcGVyCisgKiBAc3RhYmxl
IElDVSAzLjQKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhU
b1VwcGVyKGNvbnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgICAgICBjaGFyICpk
ZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlICpwRXJyb3JDb2RlKTsKKworI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCisv
KioKKyAqIFRpdGxlY2FzZSBhIFVURi04IHN0cmluZy4KKyAqIENhc2luZyBpcyBsb2NhbGUtZGVw
ZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRpdGxlY2FzaW5nIHVzZXMgYSBicmVh
ayBpdGVyYXRvciB0byBmaW5kIHRoZSBmaXJzdCBjaGFyYWN0ZXJzIG9mIHdvcmRzCisgKiB0aGF0
IGFyZSB0byBiZSB0aXRsZWNhc2VkLiBJdCB0aXRsZWNhc2VzIHRob3NlIGNoYXJhY3RlcnMgYW5k
IGxvd2VyY2FzZXMKKyAqIGFsbCBvdGhlcnMuIChUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHVj
YXNlbWFwX3NldE9wdGlvbnMoKS4pCisgKgorICogTm90ZTogVGhpcyBmdW5jdGlvbiB0YWtlcyBh
IG5vbi1jb25zdCBVQ2FzZU1hcCBwb2ludGVyIGJlY2F1c2UgaXQgd2lsbAorICogb3BlbiBhIGRl
ZmF1bHQgYnJlYWsgaXRlcmF0b3IgaWYgbm8gYnJlYWsgaXRlcmF0b3Igd2FzIHNldCB5ZXQsCisg
KiBhbmQgZWZmZWN0aXZlbHkgY2FsbCB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCk7CisgKiBh
bHNvIGJlY2F1c2UgdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIHN0YXRlZnVsIGFuZCB3aWxsIGJlIG1v
ZGlmaWVkIGR1cmluZworICogdGhlIGl0ZXJhdGlvbi4KKyAqCisgKiBUaGUgdGl0bGVjYXNlIGJy
ZWFrIGl0ZXJhdG9yIGNhbiBiZSBwcm92aWRlZCB0byBjdXN0b21pemUgZm9yIGFyYml0cmFyeQor
ICogc3R5bGVzLCB1c2luZyBydWxlcyBhbmQgZGljdGlvbmFyaWVzIGJleW9uZCB0aGUgc3RhbmRh
cmQgaXRlcmF0b3JzLgorICogVGhlIHN0YW5kYXJkIHRpdGxlY2FzZSBpdGVyYXRvciBmb3IgdGhl
IHJvb3QgbG9jYWxlIGltcGxlbWVudHMgdGhlCisgKiBhbGdvcml0aG0gb2YgVW5pY29kZSBUUiAy
MS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHVzZXMgb25seSB0aGUgc2V0VVRleHQoKSwgZmlyc3Qo
KSwgbmV4dCgpIGFuZCBjbG9zZSgpIG1ldGhvZHMgb2YgdGhlCisgKiBwcm92aWRlZCBicmVhayBp
dGVyYXRvci4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFu
IHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24g
YnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1h
cCBzZXJ2aWNlIG9iamVjdC4gVGhpcyBwb2ludGVyIGlzIG5vbi1jb25zdCEKKyAqICAgICAgICAg
ICAgICAgICAgU2VlIHRoZSBub3RlIGFib3ZlIGZvciBkZXRhaWxzLgorICogQHBhcmFtIGRlc3Qg
ICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBO
VUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdl
IGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBp
biBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRo
ZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAg
ICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1
cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQg
d3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRo
ZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhl
IG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQu
CisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJv
ciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0
ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVu
Z3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBh
IGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdy
ZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0clRvVGl0bGUKKyAqIEBz
ZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0JSRUFL
X0FESlVTVE1FTlQKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSBpbnQzMl90IFVf
RVhQT1JUMgordWNhc2VtYXBfdXRmOFRvVGl0bGUoVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAg
ICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAg
ICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYKKworLyoqCisgKiBDYXNl
LWZvbGRzIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICoKKyAqIENhc2UtZm9s
ZGluZyBpcyBsb2NhbGUtaW5kZXBlbmRlbnQgYW5kIG5vdCBjb250ZXh0LXNlbnNpdGl2ZSwKKyAq
IGJ1dCB0aGVyZSBpcyBhbiBvcHRpb24gZm9yIHdoZXRoZXIgdG8gaW5jbHVkZSBvciBleGNsdWRl
IG1hcHBpbmdzIGZvciBkb3R0ZWQgSQorICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQg
d2l0aCAnVCcgaW4gQ2FzZUZvbGRpbmcudHh0LgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxv
bmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcg
YW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFy
YW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGRlc3QgICAg
ICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwt
dGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVu
b3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBj
YXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBi
dWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAg
ICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4g
dGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3Jp
dGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBv
cmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9y
aWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisg
KiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBj
b2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBh
IGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3Ro
IG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1
ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0
ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0ckZvbGRDYXNlCisgKiBAc2Vl
IHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgVV9GT0xEX0NBU0VfREVGQVVMVAorICogQHNl
ZSBVX0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8K
K1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4Rm9sZENhc2UoY29uc3Qg
VUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90
IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGlu
dDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJv
ckNvZGUpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNo
cml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0ZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
ZDVhOTkwZjdiN2VkM2Q1YmFjZjJkYTg0NzFlZjhmZjk0MjJmOTljCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2hyaXRlci5oCkBAIC0wLDAgKzEsMzgxIEBACisv
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIFVDSFJJVEVSX0gK
KyNkZWZpbmUgVUNIUklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNs
dWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisKKy8qKgorICogXGZpbGUgCisgKiBcYnJpZWYgQysr
IEFQSTogVUNoYXIgQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lO
CisKKy8qKgorICogQSBjb25jcmV0ZSBzdWJjbGFzcyBvZiBDaGFyYWN0ZXJJdGVyYXRvciB0aGF0
IGl0ZXJhdGVzIG92ZXIgdGhlCisgKiBjaGFyYWN0ZXJzIChjb2RlIHVuaXRzIG9yIGNvZGUgcG9p
bnRzKSBpbiBhIFVDaGFyIGFycmF5LgorICogSXQncyBwb3NzaWJsZSBub3Qgb25seSB0byBjcmVh
dGUgYW4KKyAqIGl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciBhbiBlbnRpcmUgVUNoYXIgYXJy
YXksIGJ1dCBhbHNvIHRvCisgKiBjcmVhdGUgb25lIHRoYXQgaXRlcmF0ZXMgb3ZlciBvbmx5IGEg
c3VicmFuZ2Ugb2YgYSBVQ2hhciBhcnJheQorICogKGl0ZXJhdG9ycyBvdmVyIGRpZmZlcmVudCBz
dWJyYW5nZXMgb2YgdGhlIHNhbWUgVUNoYXIgYXJyYXkgZG9uJ3QKKyAqIGNvbXBhcmUgZXF1YWwp
LgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQHNlZSBGb3J3YXJkQ2hhcmFjdGVySXRl
cmF0b3IKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgVUNoYXJD
aGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBDaGFyYWN0ZXJJdGVyYXRvciB7CitwdWJsaWM6Cisg
IC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJy
ZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNv
ZGU+bGVuZ3RoLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlzIG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0
ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90IGRlbGV0ZSBpdCkuCisgICAqIEBwYXJh
bSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBwYXJh
bSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIgYXJyYXkKKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyKiB0ZXh0UHRy
LCBpbnQzMl90IGxlbmd0aCk7CisKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVy
IHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVy
YXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5sZW5ndGgtMTwvY29kZT4uCisgICAqIHRleHQgaXMg
b25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisgICAqIGRlc3RydWN0b3Igd2lsbCBub3Qg
ZGVsZXRlIGl0KS4KKyAgICogVGhlIHN0YXJ0aW5nCisgICAqIHBvc2l0aW9uIGlzIHNwZWNpZmll
ZCBieSAicG9zaXRpb24iLiBJZiAicG9zaXRpb24iIGlzIG91dHNpZGUgdGhlIHZhbGlkCisgICAq
IGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVuZGVmaW5l
ZC4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGQgb3Zl
cgorICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAq
IEBwYXJhbSBwb3NpdGlvbiBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29u
c3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Ig
b3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUg
aXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNvZGU+ZW5kLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlz
IG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90
IGRlbGV0ZSBpdCkuCisgICAqIFRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVjaWZp
ZWQgYnkgInBvc2l0aW9uIi4gSWYgYmVnaW4gYW5kIGVuZCBkbyBub3QKKyAgICogZm9ybSBhIHZh
bGlkIGl0ZXJhdGlvbiByYW5nZSBvciAicG9zaXRpb24iIGlzIG91dHNpZGUgdGhlIHZhbGlkCisg
ICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVuZGVm
aW5lZC4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGVk
IG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQor
ICAgKiBAcGFyYW0gdGV4dEJlZ2luICBUaGUgYmVnaW4gcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlv
biByYW5nZQorICAgKiBAcGFyYW0gdGV4dEVuZCAgICBUaGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBp
dGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHBvc2l0aW9uICAgIFRoZSBzdGFydGluZyBwb3Np
dGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNo
YXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5ndGgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCB0ZXh0QmVnaW4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50MzJfdCB0ZXh0RW5kLAorICAgICAgICAgICAgICAgICAgICAgICAg
IGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBDb3B5IGNvbnN0cnVjdG9yLiAgVGhl
IG5ldyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIHRoZSBzYW1lIHJhbmdlCisgICAqIG9mIHRoZSBz
YW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCBpdHMgaW5pdGlhbCBwb3NpdGlvbiBpcyB0aGUKKyAg
ICogc2FtZSBhcyAidGhhdCIncyBjdXJyZW50IHBvc2l0aW9uLgorICAgKiBAcGFyYW0gdGhhdCBU
aGUgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyQ2hhcmFjdGVy
SXRlcmF0b3ImICB0aGF0KTsKKworICAvKioKKyAgICogRGVzdHJ1Y3Rvci4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIH5VQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKCk7CisK
KyAgLyoqCisgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICAqdGhpcyBpcyBhbHRlcmVkIHRvIGl0
ZXJhdGUgb3ZlciB0aGUgc2FuZQorICAgKiByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRo
YXQiLCBhbmQgcmVmZXJzIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciB3aXRoaW4gdGhhdCBz
dHJpbmcgYXMgInRoYXQiIGRvZXMuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBvYmplY3QgdG8gYmUg
Y29waWVkCisgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0CisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYKKyAgb3BlcmF0b3I9
KGNvbnN0IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImICAgIHRoYXQpOworCisgIC8qKgorICAgKiBS
ZXR1cm5zIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ug
b2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hh
cmFjdGVyLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHVz
ZWQgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5CisgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUg
aXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBz
dHJpbmcgYW5kIGFyZSBwb2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9vbCAgICAgICAgICBvcGVyYXRvcj09KGNv
bnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgLyoqCisgICAq
IEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhpcyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0
aGUgaGFzaCBjb2RlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgaW50
MzJfdCAgICAgICAgIGhhc2hDb2RlKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1cm5z
IGEgbmV3IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAq
IGNoYXJhY3RlciBpbiB0aGUgc2FtZSByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgdGhpcyBv
bmUuICBUaGUKKyAgICogY2FsbGVyIG11c3QgZGVsZXRlIHRoZSBuZXcgaXRlcmF0b3IuCisgICAq
IEByZXR1cm4gdGhlIENoYXJhY3Rlckl0ZXJhdG9yIG5ld2x5IGNyZWF0ZWQKKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9uZSh2b2lk
KSBjb25zdDsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhl
IGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJu
cyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVy
YXRpb24gd2l0aCBuZXh0KCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBp
dHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUNoYXIgICAgICAgICBmaXJzdCh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0
aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSB1bml0LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9u
CisgICAqIHRvIHRoZSBzZWNvbmQgY29kZSB1bml0LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRv
IHNldFRvU3RhcnQoKQorICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdElu
YygpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiBy
YW5nZQorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAg
ICBmaXJzdFBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFu
Z2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LAorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRv
IGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQzMigpLgorICAgKiBOb3RlIHRoYXQgYW4gaXRl
cmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLCBiZWdpbm5pbmcgd2l0aCwKKyAgICogZS5nLiwg
c2V0VG9TdGFydCgpIG9yIGZpcnN0UG9zdEluYygpLCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICog
QHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzIo
dm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBm
aXJzdCBjb2RlIHBvaW50IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhh
dCBjb2RlIHBvaW50LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAqIHRvIHRoZSBzZWNvbmQg
Y29kZSBwb2ludC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICog
Zm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLgorICAgKiBAcmV0dXJu
IHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzJQb3N0SW5j
KHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUg
bGFzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMg
dGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0
aW9uIHdpdGggcHJldmlvdXMoKS4KKyAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHVuaXQgaW4g
aXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIFVDaGFyICAgICAgICAgbGFzdCh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0
aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUg
dXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91czMyKCkuCisgICAqIEByZXR1
cm4gdGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBsYXN0MzIodm9pZCk7
CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSAicG9zaXRp
b24iLXRoIGNvZGUgdW5pdAorICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRl
cmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAgICogcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICog
QHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQtc3RvcmFnZSBvYmpl
Y3QKKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIHNldEluZGV4KGludDMyX3QgcG9zaXRpb24pOwor
CisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgYmVnaW5uaW5n
IG9mIHRoZSBjb2RlIHBvaW50CisgICAqIHRoYXQgY29udGFpbnMgdGhlICJwb3NpdGlvbiItdGgg
Y29kZSB1bml0CisgICAqIGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciBy
ZWZlcnMgdG8sIGFuZAorICAgKiByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4KKyAgICogVGhlIGN1
cnJlbnQgcG9zaXRpb24gaXMgYWRqdXN0ZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29kZSBw
b2ludAorICAgKiAoaXRzIGZpcnN0IGNvZGUgdW5pdCkuCisgICAqIEBwYXJhbSBwb3NpdGlvbiB0
aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAqIEByZXR1cm4g
dGhlIGNvZGUgdW5pdAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNo
YXIzMiAgICAgICBzZXRJbmRleDMyKGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBS
ZXR1cm5zIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisg
ICAqIEByZXR1cm4gdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0
by4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAg
Y3VycmVudCh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogUmV0dXJucyB0aGUgY29kZSBwb2lu
dCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHJldHVybiB0aGUgY29k
ZSBwb2ludCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgY3VycmVudDMyKHZvaWQpIGNv
bnN0OworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0
aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZSBubyBtb3JlCisgICAqIGNvZGUgdW5pdHMgdG8g
cmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSB1bml0IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCBVQ2hhciAgICAgICAgIG5leHQodm9pZCk7CisKKyAgLyoqCisgICAqIEdldHMgdGhlIGN1
cnJlbnQgY29kZSB1bml0IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNv
ZGUgdW5pdAorICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqICh0b3dhcmQgZW5kSW5k
ZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwg
cmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dFBvc3RJ
bmModm9pZCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQg
aW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIGVuZEluZGV4KCkpLCBhbmQgcmV0
dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHBv
aW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogTm90ZSB0aGF0IGl0ZXJhdGlvbiB3
aXRoICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MgaXMgbGVzcworICAgKiBlZmZpY2llbnQgdGhh
biBpdGVyYXRpb24gd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNlbWFudGljcworICAgKiB0aGF0IGlz
IHByb3ZpZGVkIGJ5IG5leHQzMlBvc3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUgbmV4dCBjb2Rl
IHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMih2b2lkKTsKKworICAvKioKKyAgICog
R2V0cyB0aGUgY3VycmVudCBjb2RlIHBvaW50IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRv
IHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiAo
dG93YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAqIG5vIG1vcmUgY29kZSBwb2lu
dHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgcG9p
bnQuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAg
IG5leHQzMlBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgRkFMU0UgaWYgdGhl
cmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBhdCBvciBhZnRl
ciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBUaGlz
IGlzIHVzZWQgd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMoKSBpbiBmb3J3YXJk
CisgICAqIGl0ZXJhdGlvbi4KKyAgICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9y
ZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50
IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzTmV4dCgpOworCisgIC8qKgorICAgKiBB
ZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2Ug
KHRvd2FyZAorICAgKiBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4g
IElmIHRoZXJlIGFyZSBubyBtb3JlCisgICAqIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5z
IERPTkUuCisgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0
aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIg
ICAgICAgICBwcmV2aW91cyh2b2lkKTsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIHBy
ZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIHN0
YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZSBu
byBtb3JlCisgICAqIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBA
cmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHByZXZp
b3VzMzIodm9pZCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5v
IG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQg
cG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogVGhpcyBpcyB1c2VkIHdpdGgg
cHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkgaW4gYmFja3dhcmQKKyAgICogaXRlcmF0aW9uLgor
ICAgKiBAcmV0dXJuIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29k
ZSBwb2ludHMKKyAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9vbCAg
ICAgICAgaGFzUHJldmlvdXMoKTsKKworICAvKioKKyAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9z
aXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICogaXRlcmF0aW9u
IHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAq
IFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHVuaXRzIGZvcndh
cmQKKyAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZl
IGRlbHRhLgorICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdp
bi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgKiBhIG5lZ2F0aXZlIGRlbHRh
IG1lYW5zIGJhY2t3YXJkLgorICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7
a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92ZShp
bnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbik7CisKKyAgLyoqCisgICAqIE1vdmVzIHRoZSBj
dXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAq
IGl0ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRz
ZWxmLgorICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSBw
b2ludHMgZm9yd2FyZAorICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUg
b3IgbmVnYXRpdmUgZGVsdGEuCisgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVsYXRp
dmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAqIGEgbmVn
YXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVu
dW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgKiBAcmV0dXJuIHRoZSBuZXcg
cG9zaXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIGludDMyX3Qg
ICAgICBtb3ZlMzIoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pOworCisgIC8qKgorICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgYSBuZXcgcmFuZ2Ugb2YgdGV4dAor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVQ2hhciog
bmV3VGV4dCwgaW50MzJfdCBuZXdUZXh0TGVuZ3RoKTsKKworICAvKioKKyAgICogQ29waWVzIHRo
ZSBVQ2hhciBhcnJheSB1bmRlciBpdGVyYXRpb24gaW50byB0aGUgVW5pY29kZVN0cmluZworICAg
KiByZWZlcnJlZCB0byBieSAicmVzdWx0Ii4gIEV2ZW4gaWYgdGhpcyBpdGVyYXRvciBpdGVyYXRl
cyBhY3Jvc3MKKyAgICogb25seSBhIHBhcnQgb2YgdGhpcyBzdHJpbmcsIHRoZSB3aG9sZSBzdHJp
bmcgaXMgY29waWVkLgorICAgKiBAcGFyYW0gcmVzdWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUg
dGV4dCB1bmRlciBpdGVyYXRpb24uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCB2b2lkICAgICAgICAgICAgZ2V0VGV4dChVbmljb2RlU3RyaW5nJiByZXN1bHQpOworCisg
IC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcyAobm90IHJlYWxseSBw
dWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcworICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHN0YXRpYyBVQ2xhc3NJRCAgICAgICAgIFVfRVhQT1JUMiBn
ZXRTdGF0aWNDbGFzc0lEKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBm
b3IgdGhpcyBvYmplY3QgKG5vdCByZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3Mg
SUQgZm9yIHRoaXMgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUNsYXNzSUQgICAgICAgIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCitwcm90
ZWN0ZWQ6CisgIC8qKgorICAgKiBQcm90ZWN0ZWQgY29uc3RydWN0b3IKKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKCk7CisgIC8qKgorICAgKiBQ
cm90ZWN0ZWQgbWVtYmVyIHRleHQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBjb25z
dCBVQ2hhciogICAgICAgICAgICB0ZXh0OworCit9OworCitVX05BTUVTUEFDRV9FTkQKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2xlYW4uaCBiL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvdWNsZWFuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDlhMWU1MzkwNThjZGU4NWVmZDJh
YTg0Y2I3MDdkMzc0MTc0MjVmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvdWNsZWFuLmgKQEAgLTAsMCArMSwyNTggQEAKKy8qCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyogQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKKyogICAgICAgICAgICAgICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVjbGVh
bi5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNl
ZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwMUp1bHkwNQorKiAg
IGNyZWF0ZWQgYnk6IEdlb3JnZSBSaG90ZW4KKyovCisKKyNpZm5kZWYgX19VQ0xFQU5fSF9fCisj
ZGVmaW5lIF9fVUNMRUFOX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKy8qKgor
ICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogSW5pdGlhbGl6ZSBhbmQgY2xlYW4gdXAgSUNVCisg
Ki8KKyAKKy8qKgorICogIEluaXRpYWxpemUgSUNVLgorICoKKyAqICBVc2Ugb2YgdGhpcyBmdW5j
dGlvbiBpcyBvcHRpb25hbC4gIEl0IGlzIE9LIHRvIHNpbXBseSB1c2UgSUNVCisgKiAgc2Vydmlj
ZXMgYW5kIGZ1bmN0aW9ucyB3aXRob3V0IGZpcnN0IGhhdmluZyBpbml0aWFsaXplZAorICogIElD
VSBieSBjYWxsaW5nIHVfaW5pdCgpLgorICoKKyAqICB1X2luaXQoKSB3aWxsIGF0dGVtcHQgdG8g
bG9hZCBzb21lIHBhcnQgb2YgSUNVJ3MgZGF0YSwgYW5kIGlzCisgKiAgdXNlZnVsIGFzIGEgdGVz
dCBmb3IgY29uZmlndXJhdGlvbiBvciBpbnN0YWxsYXRpb24gcHJvYmxlbXMgdGhhdAorICogIGxl
YXZlIHRoZSBJQ1UgZGF0YSBpbmFjY2Vzc2libGUuICBBIHN1Y2Nlc3NmdWwgaW52b2NhdGlvbiBv
ZiB1X2luaXQoKQorICogIGRvZXMgbm90LCBob3dldmVyLCBndWFyYW50ZWUgdGhhdCBhbGwgSUNV
IGRhdGEgaXMgYWNjZXNzaWJsZS4KKyAqCisgKiAgTXVsdGlwbGUgY2FsbHMgdG8gdV9pbml0KCkg
Y2F1c2Ugbm8gaGFybSwgYXNpZGUgZnJvbSB0aGUgc21hbGwgYW1vdW50CisgKiAgb2YgdGltZSBy
ZXF1aXJlZC4KKyAqCisgKiAgSW4gb2xkIHZlcnNpb25zIG9mIElDVSwgdV9pbml0KCkgd2FzIHJl
cXVpcmVkIGluIG11bHRpLXRocmVhZGVkIGFwcGxpY2F0aW9ucworICogIHRvIGVuc3VyZSB0aGUg
dGhyZWFkIHNhZmV0eSBvZiBJQ1UuICB1X2luaXQoKSBpcyBubyBsb25nZXIgbmVlZGVkIGZvciB0
aGlzIHB1cnBvc2UuCisgKgorICogQHBhcmFtIHN0YXR1cyBBbiBJQ1UgVUVycm9yQ29kZSBwYXJh
bWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICogICAgQW4gRXJyb3Ig
d2lsbCBiZSByZXR1cm5lZCBpZiBzb21lIHJlcXVpcmVkIHBhcnQgb2YgSUNVIGRhdGEgY2FuIG5v
dAorICogICAgYmUgbG9hZGVkIG9yIGluaXRpYWxpemVkLgorICogICAgVGhlIGZ1bmN0aW9uIHJl
dHVybnMgaW1tZWRpYXRlbHkgaWYgdGhlIGlucHV0IGVycm9yIGNvZGUgaW5kaWNhdGVzIGEKKyAq
ICAgIGZhaWx1cmUsIGFzIHVzdWFsLgorICoKKyAqIEBzdGFibGUgSUNVIDIuNgorICovICAKK1Vf
U1RBQkxFIHZvaWQgVV9FWFBPUlQyIAordV9pbml0KFVFcnJvckNvZGUgKnN0YXR1cyk7CisKKyNp
Zm5kZWYgVV9ISURFX1NZU1RFTV9BUEkKKy8qKgorICogQ2xlYW4gdXAgdGhlIHN5c3RlbSByZXNv
dXJjZXMsIHN1Y2ggYXMgYWxsb2NhdGVkIG1lbW9yeSBvciBvcGVuIGZpbGVzLAorICogdXNlZCBp
biBhbGwgSUNVIGxpYnJhcmllcy4gVGhpcyB3aWxsIGZyZWUvZGVsZXRlIGFsbCBtZW1vcnkgb3du
ZWQgYnkgdGhlCisgKiBJQ1UgbGlicmFyaWVzLCBhbmQgcmV0dXJuIHRoZW0gdG8gdGhlaXIgb3Jp
Z2luYWwgbG9hZCBzdGF0ZS4gQWxsIG9wZW4gSUNVCisgKiBpdGVtcyAoY29sbGF0b3JzLCByZXNv
dXJjZSBidW5kbGVzLCBjb252ZXJ0ZXJzLCBldGMuKSBtdXN0IGJlIGNsb3NlZCBiZWZvcmUKKyAq
IGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgb3RoZXJ3aXNlIElDVSBtYXkgbm90IGZyZWUgaXRzIGFs
bG9jYXRlZCBtZW1vcnkKKyAqIChlLmcuIGNsb3NlIHlvdXIgY29udmVydGVycyBhbmQgcmVzb3Vy
Y2UgYnVuZGxlcyBiZWZvcmUgY2FsbGluZyB0aGlzCisgKiBmdW5jdGlvbikuIEdlbmVyYWxseSwg
dGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uY2UganVzdCBiZWZvcmUKKyAqIGFuIGFw
cGxpY2F0aW9uIGV4aXRzLiBGb3IgYXBwbGljYXRpb25zIHRoYXQgZHluYW1pY2FsbHkgbG9hZCBh
bmQgdW5sb2FkCisgKiB0aGUgSUNVIGxpYnJhcmllcyAocmVsYXRpdmVseSB1bmNvbW1vbiksIHVf
Y2xlYW51cCgpIHNob3VsZCBiZSBjYWxsZWQKKyAqIGp1c3QgYmVmb3JlIHRoZSBsaWJyYXJ5IHVu
bG9hZC4KKyAqIDxwPgorICogdV9jbGVhbnVwKCkgYWxzbyBjbGVhcnMgYW55IElDVSBoZWFwIGZ1
bmN0aW9ucywgbXV0ZXggZnVuY3Rpb25zIG9yCisgKiB0cmFjZSBmdW5jdGlvbnMgdGhhdCBtYXkg
aGF2ZSBiZWVuIHNldCBmb3IgdGhlIHByb2Nlc3MuICAKKyAqIFRoaXMgaGFzIHRoZSBlZmZlY3Qg
b2YgcmVzdG9yaW5nIElDVSB0byBpdHMgaW5pdGlhbCBjb25kaXRpb24sIGJlZm9yZQorICogYW55
IG9mIHRoZXNlIG92ZXJyaWRlIGZ1bmN0aW9ucyB3ZXJlIGluc3RhbGxlZC4gIFJlZmVyIHRvCisg
KiB1X3NldE1lbW9yeUZ1bmN0aW9ucygpLCB1X3NldE11dGV4RnVuY3Rpb25zIGFuZCAKKyAqIHV0
cmFjZV9zZXRGdW5jdGlvbnMoKS4gIElmIElDVSBpcyB0byBiZSByZWluaXRpYWxpemVkIGFmdGVy
IGFmdGVyCisgKiBjYWxsaW5nIHVfY2xlYW51cCgpLCB0aGVzZSBydW50aW1lIG92ZXJyaWRlIGZ1
bmN0aW9ucyB3aWxsIG5lZWQgdG8KKyAqIGJlIHNldCB1cCBhZ2FpbiBpZiB0aGV5IGFyZSBzdGls
bCByZXF1aXJlZC4KKyAqIDxwPgorICogdV9jbGVhbnVwKCkgaXMgbm90IHRocmVhZCBzYWZlLiAg
QWxsIG90aGVyIHRocmVhZHMgc2hvdWxkIHN0b3AgdXNpbmcgSUNVCisgKiBiZWZvcmUgY2FsbGlu
ZyB0aGlzIGZ1bmN0aW9uLgorICogPHA+CisgKiBBbnkgb3BlbiBJQ1UgaXRlbXMgd2lsbCBiZSBs
ZWZ0IGluIGFuIHVuZGVmaW5lZCBzdGF0ZSBieSB1X2NsZWFudXAoKSwKKyAqIGFuZCBhbnkgc3Vi
c2VxdWVudCBhdHRlbXB0IHRvIHVzZSBzdWNoIGFuIGl0ZW0gd2lsbCBnaXZlIHVucHJlZGljdGFi
bGUKKyAqIHJlc3VsdHMuCisgKiA8cD4KKyAqIEFmdGVyIGNhbGxpbmcgdV9jbGVhbnVwKCksIGFu
IGFwcGxpY2F0aW9uIG1heSBjb250aW51ZSB0byB1c2UgSUNVIGJ5CisgKiBjYWxsaW5nIHVfaW5p
dCgpLiAgQW4gYXBwbGljYXRpb24gbXVzdCBpbnZva2UgdV9pbml0KCkgZmlyc3QgZnJvbSBvbmUg
c2luZ2xlCisgKiB0aHJlYWQgYmVmb3JlIGFsbG93aW5nIG90aGVyIHRocmVhZHMgY2FsbCB1X2lu
aXQoKS4gIEFsbCB0aHJlYWRzIGV4aXN0aW5nCisgKiBhdCB0aGUgdGltZSBvZiB0aGUgZmlyc3Qg
dGhyZWFkJ3MgY2FsbCB0byB1X2luaXQoKSBtdXN0IGFsc28gY2FsbAorICogdV9pbml0KCkgdGhl
bXNlbHZlcyBiZWZvcmUgY29udGludWluZyB3aXRoIG90aGVyIElDVSBvcGVyYXRpb25zLiAgCisg
KiA8cD4KKyAqIFRoZSB1c2Ugb2YgdV9jbGVhbnVwKCkganVzdCBiZWZvcmUgYW4gYXBwbGljYXRp
b24gdGVybWluYXRlcyBpcyBvcHRpb25hbCwKKyAqIGJ1dCBpdCBzaG91bGQgYmUgY2FsbGVkIG9u
bHkgb25jZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4gVGhlIHByaW1hcnkKKyAqIGJlbmVmaXQg
aXMgdG8gZWxpbWluYXRlIHJlcG9ydHMgb2YgbWVtb3J5IG9yIHJlc291cmNlIGxlYWtzIG9yaWdp
bmF0aW5nCisgKiBpbiBJQ1UgY29kZSBmcm9tIHRoZSByZXN1bHRzIGdlbmVyYXRlZCBieSBoZWFw
IGFuYWx5c2lzIHRvb2xzLgorICogPHA+CisgKiA8c3Ryb25nPlVzZSB0aGlzIGZ1bmN0aW9uIHdp
dGggZ3JlYXQgY2FyZSE8L3N0cm9uZz4KKyAqIDwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqIEBzeXN0ZW0KKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIgCit1X2NsZWFudXAodm9p
ZCk7CisKKworLyoqCisgICogIFBvaW50ZXIgdHlwZSBmb3IgYSB1c2VyIHN1cHBsaWVkIG1lbW9y
eSBhbGxvY2F0aW9uIGZ1bmN0aW9uLgorICAqICBAcGFyYW0gY29udGV4dCB1c2VyIHN1cHBsaWVk
IHZhbHVlLCBvYnRhaW5lZCBmcm9tIGZyb20gdV9zZXRNZW1vcnlGdW5jdGlvbnMoKS4KKyAgKiAg
QHBhcmFtIHNpemUgICAgVGhlIG51bWJlciBvZiBieXRlcyB0byBiZSBhbGxvY2F0ZWQKKyAgKiAg
QHJldHVybiAgICAgICAgUG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIG1lbW9yeSwgb3Ig
TlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQuCisgICogIEBzdGFibGUgSUNVIDIuOAorICAq
ICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQgKlVfQ0FMTENPTlYgVU1lbUFsbG9jRm4oY29u
c3Qgdm9pZCAqY29udGV4dCwgc2l6ZV90IHNpemUpOworLyoqCisgICogIFBvaW50ZXIgdHlwZSBm
b3IgYSB1c2VyIHN1cHBsaWVkIG1lbW9yeSByZS1hbGxvY2F0aW9uIGZ1bmN0aW9uLgorICAqICBA
cGFyYW0gY29udGV4dCB1c2VyIHN1cHBsaWVkIHZhbHVlLCBvYnRhaW5lZCBmcm9tIGZyb20gdV9z
ZXRNZW1vcnlGdW5jdGlvbnMoKS4KKyAgKiAgQHBhcmFtIHNpemUgICAgVGhlIG51bWJlciBvZiBi
eXRlcyB0byBiZSBhbGxvY2F0ZWQKKyAgKiAgQHJldHVybiAgICAgICAgUG9pbnRlciB0byB0aGUg
bmV3bHkgYWxsb2NhdGVkIG1lbW9yeSwgb3IgTlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQu
CisgICogIEBzdGFibGUgSUNVIDIuOAorICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQg
KlVfQ0FMTENPTlYgVU1lbVJlYWxsb2NGbihjb25zdCB2b2lkICpjb250ZXh0LCB2b2lkICptZW0s
IHNpemVfdCBzaXplKTsKKy8qKgorICAqICBQb2ludGVyIHR5cGUgZm9yIGEgdXNlciBzdXBwbGll
ZCBtZW1vcnkgZnJlZSAgZnVuY3Rpb24uICBCZWhhdmlvciBzaG91bGQgYmUKKyAgKiAgc2ltaWxh
ciB0aGUgc3RhbmRhcmQgQyBsaWJyYXJ5IGZyZWUoKS4KKyAgKiAgQHBhcmFtIGNvbnRleHQgdXNl
ciBzdXBwbGllZCB2YWx1ZSwgb2J0YWluZWQgZnJvbSBmcm9tIHVfc2V0TWVtb3J5RnVuY3Rpb25z
KCkuCisgICogIEBwYXJhbSBtZW0gICAgIFBvaW50ZXIgdG8gdGhlIG1lbW9yeSBibG9jayB0byBi
ZSByZXNpemVkCisgICogIEBwYXJhbSBzaXplICAgIFRoZSBuZXcgc2l6ZSBmb3IgdGhlIGJsb2Nr
CisgICogIEByZXR1cm4gICAgICAgIFBvaW50ZXIgdG8gdGhlIHJlc2l6ZWQgbWVtb3J5IGJsb2Nr
LCBvciBOVUxMIGlmIHRoZSByZXNpemluZyBmYWlsZWQuCisgICogIEBzdGFibGUgSUNVIDIuOAor
ICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQgIFVfQ0FMTENPTlYgVU1lbUZyZWVGbiAo
Y29uc3Qgdm9pZCAqY29udGV4dCwgdm9pZCAqbWVtKTsKKworLyoqCisgKiAgU2V0IHRoZSBmdW5j
dGlvbnMgdGhhdCBJQ1Ugd2lsbCB1c2UgZm9yIG1lbW9yeSBhbGxvY2F0aW9uLgorICogIFVzZSBv
ZiB0aGlzIGZ1bmN0aW9uIGlzIG9wdGlvbmFsOyBieSBkZWZhdWx0ICh3aXRob3V0IHRoaXMgZnVu
Y3Rpb24pLCBJQ1Ugd2lsbAorICogIHVzZSB0aGUgc3RhbmRhcmQgQyBsaWJyYXJ5IG1hbGxvYygp
IGFuZCBmcmVlKCkgZnVuY3Rpb25zLgorICogIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgdXNl
ZCB3aGVuIElDVSBpcyBpbiBhbiBpbml0aWFsLCB1bnVzZWQgc3RhdGUsIGJlZm9yZQorICogIHVf
aW5pdCgpIGhhcyBiZWVuIGNhbGxlZC4KKyAqICBAcGFyYW0gY29udGV4dCBUaGlzIHBvaW50ZXIg
dmFsdWUgd2lsbCBiZSBzYXZlZCwgYW5kIHRoZW4gKGxhdGVyKSBwYXNzZWQgYXMKKyAqICAgICAg
ICAgICAgICAgICBhIHBhcmFtZXRlciB0byB0aGUgbWVtb3J5IGZ1bmN0aW9ucyBlYWNoIHRpbWUg
dGhleQorICogICAgICAgICAgICAgICAgIGFyZSBjYWxsZWQuCisgKiAgQHBhcmFtIGEgICAgICAg
UG9pbnRlciB0byBhIHVzZXItc3VwcGxpZWQgbWFsbG9jIGZ1bmN0aW9uLgorICogIEBwYXJhbSBy
ICAgICAgIFBvaW50ZXIgdG8gYSB1c2VyLXN1cHBsaWVkIHJlYWxsb2MgZnVuY3Rpb24uCisgKiAg
QHBhcmFtIGYgICAgICAgUG9pbnRlciB0byBhIHVzZXItc3VwcGxpZWQgZnJlZSBmdW5jdGlvbi4K
KyAqICBAcGFyYW0gc3RhdHVzICBSZWNlaXZlcyBlcnJvciB2YWx1ZXMuCisgKiAgQHN0YWJsZSBJ
Q1UgMi44CisgKiAgQHN5c3RlbQorICovICAKK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyIAordV9z
ZXRNZW1vcnlGdW5jdGlvbnMoY29uc3Qgdm9pZCAqY29udGV4dCwgVU1lbUFsbG9jRm4gKmEsIFVN
ZW1SZWFsbG9jRm4gKnIsIFVNZW1GcmVlRm4gKmYsIAorICAgICAgICAgICAgICAgICAgICBVRXJy
b3JDb2RlICpzdGF0dXMpOworCisKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisvKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisgKgorICogRGVwcmVjYXRlZCBGdW5jdGlvbnMKKyAqCisg
KiAgICBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBmb3IgdXNlciBzdXBwbGllZCBtdXRleGVzIGFy
ZSBubyBsb25nZXIgc3VwcG9ydGVkLgorICogICAgQW55IGF0dGVtcHQgdG8gdXNlIHRoZW0gd2ls
bCByZXR1cm4gYSBVX1VOU1VQUE9SVEVEX0VSUk9SLgorICoKKyAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqLworCisvKioKKyAgKiBBbiBvcGFxdWUgcG9pbnRlciB0eXBlIHRoYXQgcmVwcmVzZW50
cyBhbiBJQ1UgbXV0ZXguCisgICogRm9yIHVzZXItaW1wbGVtZW50ZWQgbXV0ZXhlcywgdGhlIHZh
bHVlIHdpbGwgdHlwaWNhbGx5IHBvaW50IHRvIGEKKyAgKiAgc3RydWN0IG9yIG9iamVjdCB0aGF0
IGltcGxlbWVudHMgdGhlIG11dGV4LgorICAqIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyB0eXBl
IGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICogQHN5c3RlbQorICAqLwordHlwZWRlZiB2b2lk
ICpVTVRYOworCisvKioKKyAgKiAgRnVuY3Rpb24gUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3Vw
cGxpZWQgbXV0ZXggaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uCisgICogIFRoZSB1c2VyLXN1cHBs
aWVkIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGJ5IElDVSB3aGVuZXZlciBJQ1UgbmVlZHMgdG8g
Y3JlYXRlIGEKKyAgKiAgbmV3IG11dGV4LiAgVGhlIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uIHNo
b3VsZCBjcmVhdGUgYSBtdXRleCwgYW5kIHN0b3JlIGEgcG9pbnRlcgorICAqICB0byBzb21ldGhp
bmcgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBtdXRleCBpbnRvIHRoZSBVTVRYIHRoYXQg
aXMgc3VwcGxpZWQKKyAgKiAgYXMgYSBwYXJhbXRlci4KKyAgKiAgQHBhcmFtIGNvbnRleHQgdXNl
ciBzdXBwbGllZCB2YWx1ZSwgb2J0YWluZWQgZnJvbSBmcm9tIHVfc2V0TXV0ZXhGdW5jdGlvbnMo
KS4KKyAgKiAgQHBhcmFtIG11dGV4ICAgUmVjZWl2ZXMgYSBwb2ludGVyIHRoYXQgaWRlbnRpZmll
cyB0aGUgbmV3IG11dGV4LgorICAqICAgICAgICAgICAgICAgICBUaGUgbXV0ZXggaW5pdCBmdW5j
dGlvbiBtdXN0IHNldCB0aGUgVU1UWCB0byBhIG5vbi1udWxsIHZhbHVlLiAgIAorICAqICAgICAg
ICAgICAgICAgICBTdWJzZXF1ZW50IGNhbGxzIGJ5IElDVSB0byBsb2NrLCB1bmxvY2ssIG9yIGRl
c3Ryb3kgYSBtdXRleCB3aWxsIAorICAqICAgICAgICAgICAgICAgICBpZGVudGlmeSB0aGUgbXV0
ZXggYnkgdGhlIFVNVFggdmFsdWUuCisgICogIEBwYXJhbSBzdGF0dXMgIEVycm9yIHN0YXR1cy4g
IFJlcG9ydCBlcnJvcnMgYmFjayB0byBJQ1UgYnkgc2V0dGluZyB0aGlzIHZhcmlhYmxlCisgICog
ICAgICAgICAgICAgICAgIHdpdGggYW4gZXJyb3IgY29kZS4KKyAgKiAgQGRlcHJlY2F0ZWQgSUNV
IDUyLiBUaGlzIGZ1bmN0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICogIEBzeXN0ZW0K
KyAgKi8KK3R5cGVkZWYgdm9pZCBVX0NBTExDT05WIFVNdHhJbml0Rm4gKGNvbnN0IHZvaWQgKmNv
bnRleHQsIFVNVFggICptdXRleCwgVUVycm9yQ29kZSogc3RhdHVzKTsKKworCisvKioKKyAgKiAg
RnVuY3Rpb24gUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3VwcGxpZWQgbXV0ZXggZnVuY3Rpb25z
LgorICAqICBPbmUgb2YgdGhlICB1c2VyLXN1cHBsaWVkIGZ1bmN0aW9ucyB3aXRoIHRoaXMgc2ln
bmF0dXJlIHdpbGwgYmUgY2FsbGVkIGJ5IElDVQorICAqICB3aGVuZXZlciBJQ1UgbmVlZHMgdG8g
bG9jaywgdW5sb2NrLCBvciBkZXN0cm95IGEgbXV0ZXguCisgICogIEBwYXJhbSBjb250ZXh0IHVz
ZXIgc3VwcGxpZWQgdmFsdWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3NldE11dGV4RnVuY3Rpb25z
KCkuCisgICogIEBwYXJhbSBtdXRleCAgIHNwZWNpZnkgdGhlIG11dGV4IG9uIHdoaWNoIHRvIG9w
ZXJhdGUuCisgICogIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyBmdW5jdGlvbiBpcyBubyBsb25n
ZXIgc3VwcG9ydGVkLgorICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQgVV9DQUxMQ09O
ViBVTXR4Rm4gICAoY29uc3Qgdm9pZCAqY29udGV4dCwgVU1UWCAgKm11dGV4KTsKKworCisvKioK
KyAgKiAgU2V0IHRoZSBmdW5jdGlvbnMgdGhhdCBJQ1Ugd2lsbCB1c2UgZm9yIG11dGV4IG9wZXJh
dGlvbnMKKyAgKiAgVXNlIG9mIHRoaXMgZnVuY3Rpb24gaXMgb3B0aW9uYWw7IGJ5IGRlZmF1bHQg
KHdpdGhvdXQgdGhpcyBmdW5jdGlvbiksIElDVSB3aWxsCisgICogIGRpcmVjdGx5IGFjY2VzcyBz
eXN0ZW0gZnVuY3Rpb25zIGZvciBtdXRleCBvcGVyYXRpb25zCisgICogIFRoaXMgZnVuY3Rpb24g
Y2FuIG9ubHkgYmUgdXNlZCB3aGVuIElDVSBpcyBpbiBhbiBpbml0aWFsLCB1bnVzZWQgc3RhdGUs
IGJlZm9yZQorICAqICB1X2luaXQoKSBoYXMgYmVlbiBjYWxsZWQuCisgICogIEBwYXJhbSBjb250
ZXh0IFRoaXMgcG9pbnRlciB2YWx1ZSB3aWxsIGJlIHNhdmVkLCBhbmQgdGhlbiAobGF0ZXIpIHBh
c3NlZCBhcworICAqICAgICAgICAgICAgICAgICBhIHBhcmFtZXRlciB0byB0aGUgdXNlci1zdXBw
bGllZCBtdXRleCBmdW5jdGlvbnMgZWFjaCB0aW1lIHRoZXkKKyAgKiAgICAgICAgICAgICAgICAg
YXJlIGNhbGxlZC4gCisgICogIEBwYXJhbSBpbml0ICAgIFBvaW50ZXIgdG8gYSBtdXRleCBpbml0
aWFsaXphdGlvbiBmdW5jdGlvbi4gIE11c3QgYmUgbm9uLW51bGwuCisgICogIEBwYXJhbSBkZXN0
cm95IFBvaW50ZXIgdG8gdGhlIG11dGV4IGRlc3Ryb3kgZnVuY3Rpb24uICBNdXN0IGJlIG5vbi1u
dWxsLgorICAqICBAcGFyYW0gbG9jayAgICBwb2ludGVyIHRvIHRoZSBtdXRleCBsb2NrIGZ1bmN0
aW9uLiAgTXVzdCBiZSBub24tbnVsbC4KKyAgKiAgQHBhcmFtIHVubG9jayAgUG9pbnRlciB0byB0
aGUgbXV0ZXggdW5sb2NrIGZ1bmN0aW9uLiAgTXVzdCBiZSBub24tbnVsbC4KKyAgKiAgQHBhcmFt
IHN0YXR1cyAgUmVjZWl2ZXMgZXJyb3IgdmFsdWVzLgorICAqICBAZGVwcmVjYXRlZCBJQ1UgNTIu
IFRoaXMgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KKyAgKiAgQHN5c3RlbQorICAq
LyAgCitVX0RFUFJFQ0FURUQgdm9pZCBVX0VYUE9SVDIgCit1X3NldE11dGV4RnVuY3Rpb25zKGNv
bnN0IHZvaWQgKmNvbnRleHQsIFVNdHhJbml0Rm4gKmluaXQsIFVNdHhGbiAqZGVzdHJveSwgVU10
eEZuICpsb2NrLCBVTXR4Rm4gKnVubG9jaywKKyAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29k
ZSAqc3RhdHVzKTsKKworCisvKioKKyAgKiAgUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3VwcGxp
ZWQgYXRvbWljIGluY3JlbWVudCBvciBkZWNyZW1lbnQgZnVuY3Rpb24uCisgICogIEBwYXJhbSBj
b250ZXh0IHVzZXIgc3VwcGxpZWQgdmFsdWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3NldEF0b21p
Y0luY0RlY0Z1bmN0aW9ucygpLgorICAqICBAcGFyYW0gcCAgIFBvaW50ZXIgdG8gYSAzMiBiaXQg
aW50IHRvIGJlIGluY3JlbWVudGVkIG9yIGRlY3JlbWVudGVkCisgICogIEByZXR1cm4gICAgVGhl
IHZhbHVlIG9mIHRoZSB2YXJpYWJsZSBhZnRlciB0aGUgaW5jIG9yIGRlYyBvcGVyYXRpb24uCisg
ICogIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyBmdW5jdGlvbiBpcyBubyBsb25nZXIgc3VwcG9y
dGVkLgorICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OViBVTXR4
QXRvbWljRm4oY29uc3Qgdm9pZCAqY29udGV4dCwgaW50MzJfdCAqcCk7CisKKy8qKgorICogIFNl
dCB0aGUgZnVuY3Rpb25zIHRoYXQgSUNVIHdpbGwgdXNlIGZvciBhdG9taWMgaW5jcmVtZW50IGFu
ZCBkZWNyZW1lbnQgb2YgaW50MzJfdCB2YWx1ZXMuCisgKiAgVXNlIG9mIHRoaXMgZnVuY3Rpb24g
aXMgb3B0aW9uYWw7IGJ5IGRlZmF1bHQgKHdpdGhvdXQgdGhpcyBmdW5jdGlvbiksIElDVSB3aWxs
CisgKiAgdXNlIGl0cyBvd24gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb2YgYXRvbWljIGluY3Jl
bWVudC9kZWNyZW1lbnQuCisgKiAgVGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSB1c2VkIHdoZW4g
SUNVIGlzIGluIGFuIGluaXRpYWwsIHVudXNlZCBzdGF0ZSwgYmVmb3JlCisgKiAgdV9pbml0KCkg
aGFzIGJlZW4gY2FsbGVkLgorICogIEBwYXJhbSBjb250ZXh0IFRoaXMgcG9pbnRlciB2YWx1ZSB3
aWxsIGJlIHNhdmVkLCBhbmQgdGhlbiAobGF0ZXIpIHBhc3NlZCBhcworICogICAgICAgICAgICAg
ICAgIGEgcGFyYW1ldGVyIHRvIHRoZSBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBmdW5jdGlvbnMg
ZWFjaCB0aW1lIHRoZXkKKyAqICAgICAgICAgICAgICAgICBhcmUgY2FsbGVkLiAgVGhpcyBmdW5j
dGlvbiBjYW4gb25seSBiZSBjYWxsZWQgCisgKiAgQHBhcmFtIGluYyAgICAgUG9pbnRlciB0byBh
IGZ1bmN0aW9uIHRvIGRvIGFuIGF0b21pYyBpbmNyZW1lbnQgb3BlcmF0aW9uLiAgTXVzdCBiZSBu
b24tbnVsbC4KKyAqICBAcGFyYW0gZGVjICAgICBQb2ludGVyIHRvIGEgZnVuY3Rpb24gdG8gZG8g
YW4gYXRvbWljIGRlY3JlbWVudCBvcGVyYXRpb24uICBNdXN0IGJlIG5vbi1udWxsLgorICogIEBw
YXJhbSBzdGF0dXMgIFJlY2VpdmVzIGVycm9yIHZhbHVlcy4KKyAqICBAZGVwcmVjYXRlZCBJQ1Ug
NTIuIFRoaXMgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KKyAqICBAc3lzdGVtCisg
Ki8gIAorVV9ERVBSRUNBVEVEIHZvaWQgVV9FWFBPUlQyIAordV9zZXRBdG9taWNJbmNEZWNGdW5j
dGlvbnMoY29uc3Qgdm9pZCAqY29udGV4dCwgVU10eEF0b21pY0ZuICppbmMsIFVNdHhBdG9taWNG
biAqZGVjLAorICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOworCisjZW5k
aWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLworI2VuZGlmICAvKiBVX0hJREVfU1lTVEVN
X0FQSSAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRh
dGEuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWU0NjYz
MGQ1Mzk4ZDgyNzM4ZDFkNjFmZmM0ZDJjOTE0ZThjNjhiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi9pY3UvdW5pY29kZS91ZGF0YS5oCkBAIC0wLDAgKzEsNDMwIEBACisvKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQsIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFt
ZTogIHVkYXRhLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDgg
KG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0
MjUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBfX1VE
QVRBX0hfXworI2RlZmluZSBfX1VEQVRBX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMu
aCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCitVX0NERUNMX0JFR0lOCisK
Ky8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogRGF0YSBsb2FkaW5nIGludGVyZmFjZQor
ICoKKyAqIDxoMj5JbmZvcm1hdGlvbiBhYm91dCBkYXRhIGxvYWRpbmcgaW50ZXJmYWNlPC9oMj4K
KyAqCisgKiBUaGlzIEFQSSBpcyB1c2VkIHRvIGZpbmQgYW5kIGVmZmljaWVudGx5IGxvYWQgZGF0
YSBmb3IgSUNVIGFuZCBhcHBsaWNhdGlvbnMKKyAqIHVzaW5nIElDVS4gSXQgcHJvdmlkZXMgYW4g
YWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgc3BlY2lmaWVzIGEgZGF0YSB0eXBlIGFuZAorICogbmFt
ZSB0byBmaW5kIGFuZCBsb2FkIHRoZSBkYXRhLiBOb3JtYWxseSB0aGlzIEFQSSBpcyB1c2VkIGJ5
IG90aGVyIElDVSBBUElzCisgKiB0byBsb2FkIHJlcXVpcmVkIGRhdGEgb3V0IG9mIHRoZSBJQ1Ug
ZGF0YSBsaWJyYXJ5LCBidXQgaXQgY2FuIGJlIHVzZWQgdG8KKyAqIGxvYWQgZGF0YSBvdXQgb2Yg
b3RoZXIgcGxhY2VzLgorICoKKyAqIFNlZSB0aGUgVXNlciBHdWlkZSBEYXRhIE1hbmFnZW1lbnQg
Y2hhcHRlci4KKyAqLworIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisvKioKKyAqIENo
YXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAor
ICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SICctJwor
CisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVl
IG5hbWVzIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJB
VE9SX1NUUklORyAiLSIKKworLyoqCisgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYXJ0
cyBvZiBlbnRyeSBuYW1lcworICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RS
RUVfRU5UUllfU0VQX0NIQVIgJy8nCisKKy8qKgorICogU3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUg
cGFydHMgb2YgZW50cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUg
VV9UUkVFX0VOVFJZX1NFUF9TVFJJTkcgIi8iCisKKy8qKgorICogQWxpYXMgZm9yIHN0YW5kYXJk
IElDVSBkYXRhIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX0lDVURBVEFf
QUxJQVMgIklDVURBVEEiCisKKyNlbmRpZiAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKy8q
KgorICogVURhdGFJbmZvIGNvbnRhaW5zIHRoZSBwcm9wZXJ0aWVzIGFib3V0IHRoZSByZXF1ZXN0
ZWQgZGF0YS4KKyAqIFRoaXMgaXMgbWV0YSBkYXRhLgorICoKKyAqIDxwPlRoaXMgc3RydWN0dXJl
IG1heSBncm93IGluIHRoZSBmdXR1cmUsIGluZGljYXRlZCBieSB0aGUKKyAqIDxjb2RlPnNpemU8
L2NvZGU+IGZpZWxkLjwvcD4KKyAqCisgKiA8cD5JQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgt
YWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogVGhlIFVEYXRhSW5mbyBzdHJ1
Y3QgYmVnaW5zIDQgYnl0ZXMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIHRoZSBkYXRhIGl0ZW0sCisgKiBz
byBpdCBpcyA0LWFsaWduZWQuCisgKgorICogPHA+VGhlIHBsYXRmb3JtIGRhdGEgcHJvcGVydHkg
ZmllbGRzIGhlbHAgZGV0ZXJtaW5lIGlmIGEgZGF0YQorICogZmlsZSBjYW4gYmUgZWZmaWNpZW50
bHkgdXNlZCBvbiBhIGdpdmVuIG1hY2hpbmUuCisgKiBUaGUgcGFydGljdWxhciBmaWVsZHMgYXJl
IG9mIGltcG9ydGFuY2Ugb25seSBpZiB0aGUgZGF0YQorICogaXMgYWZmZWN0ZWQgYnkgdGhlIHBy
b3BlcnRpZXMgLSBpZiB0aGVyZSBpcyBpbnRlZ2VyIGRhdGEKKyAqIHdpdGggd29yZCBzaXplcyA+
IDEgYnl0ZSwgY2hhciogdGV4dCwgb3IgVUNoYXIqIHRleHQuPC9wPgorICoKKyAqIDxwPlRoZSBp
bXBsZW1lbnRhdGlvbiBmb3IgdGhlIDxjb2RlPnVkYXRhX29wZW5bQ2hvaWNlXSgpPC9jb2RlPgor
ICogZnVuY3Rpb25zIG1heSByZWplY3QgZGF0YSBiYXNlZCBvbiB0aGUgdmFsdWUgaW4gPGNvZGU+
aXNCaWdFbmRpYW48L2NvZGU+LgorICogTm8gb3RoZXIgZmllbGQgaXMgdXNlZCBieSB0aGUgPGNv
ZGU+dWRhdGE8L2NvZGU+IEFQSSBpbXBsZW1lbnRhdGlvbi48L3A+CisgKgorICogPHA+VGhlIDxj
b2RlPmRhdGFGb3JtYXQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIGlkZW50aWZ5CisgKiB0aGUga2lu
ZCBvZiBkYXRhLCBlLmcuIGEgY29udmVydGVyIHRhYmxlLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNv
ZGU+Zm9ybWF0VmVyc2lvbjwvY29kZT4gZmllbGQgc2hvdWxkIGJlIHVzZWQgdG8KKyAqIG1ha2Ug
c3VyZSB0aGF0IHRoZSBmb3JtYXQgY2FuIGJlIGludGVycHJldGVkLgorICogSXQgbWF5IGJlIGEg
Z29vZCBpZGVhIHRvIGNoZWNrIG9ubHkgZm9yIHRoZSBvbmUgb3IgdHdvIGhpZ2hlc3QKKyAqIG9m
IHRoZSB2ZXJzaW9uIGVsZW1lbnRzIHRvIGFsbG93IHRoZSBkYXRhIG1lbW9yeSB0bworICogZ2V0
IG1vcmUgb3Igc29tZXdoYXQgcmVhcnJhbmdlZCBjb250ZW50cywgZm9yIGFzIGxvbmcKKyAqIGFz
IHRoZSB1c2luZyBjb2RlIGNhbiBzdGlsbCBpbnRlcnByZXQgdGhlIG9sZGVyIGNvbnRlbnRzLjwv
cD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+ZGF0YVZlcnNpb248L2NvZGU+IGZpZWxkIGlzIGludGVu
ZGVkIHRvIGJlIGEKKyAqIGNvbW1vbiBwbGFjZSB0byBzdG9yZSB0aGUgc291cmNlIHZlcnNpb24g
b2YgdGhlIGRhdGE7CisgKiBmb3IgZGF0YSBmcm9tIHRoZSBVbmljb2RlIGNoYXJhY3RlciBkYXRh
YmFzZSwgdGhpcyBjb3VsZAorICogcmVmbGVjdCB0aGUgVW5pY29kZSB2ZXJzaW9uLjwvcD4KKyAq
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIC8qKiBzaXpl
b2YoVURhdGFJbmZvKQorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50MTZfdCBz
aXplOworCisgICAgLyoqIHVudXNlZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIu
MCovCisgICAgdWludDE2X3QgcmVzZXJ2ZWRXb3JkOworCisgICAgLyogcGxhdGZvcm0gZGF0YSBw
cm9wZXJ0aWVzICovCisgICAgLyoqIDAgZm9yIGxpdHRsZS1lbmRpYW4gbWFjaGluZSwgMSBmb3Ig
YmlnLWVuZGlhbgorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50OF90IGlzQmln
RW5kaWFuOworCisgICAgLyoqIHNlZSBVX0NIQVJTRVRfRkFNSUxZIHZhbHVlcyBpbiB1dHlwZXMu
aCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGNoYXJzZXRGYW1pbHk7
CisKKyAgICAvKiogc2l6ZW9mKFVDaGFyKSwgb25lIG9mIHsgMSwgMiwgNCB9IAorICAgICAqICBA
c3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3Qgc2l6ZW9mVUNoYXI7CisKKyAgICAvKiogdW51
c2VkLCBzZXQgdG8gMCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHJl
c2VydmVkQnl0ZTsKKworICAgIC8qKiBkYXRhIGZvcm1hdCBpZGVudGlmaWVyIAorICAgICAqICBA
c3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YUZvcm1hdFs0XTsKKworICAgIC8qKiB2
ZXJzaW9uczogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAq
ICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZm9ybWF0VmVyc2lvbls0XTsKKworICAg
IC8qKiB2ZXJzaW9uczogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAor
ICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YVZlcnNpb25bNF07Cit9
IFVEYXRhSW5mbzsKKworLyogQVBJIGZvciByZWFkaW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKioKKyAqIEZvcndhcmQg
ZGVjbGFyYXRpb24gb2YgdGhlIGRhdGEgbWVtb3J5IHR5cGUuCisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqLwordHlwZWRlZiBzdHJ1Y3QgVURhdGFNZW1vcnkgVURhdGFNZW1vcnk7CisKKy8qKgorICog
Q2FsbGJhY2sgZnVuY3Rpb24gZm9yIHVkYXRhX29wZW5DaG9pY2UoKS4KKyAqIEBwYXJhbSBjb250
ZXh0IHBhcmFtZXRlciBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+
LgorICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIGRhdGEgYXMgcGFzc2VkIGludG8gPGNv
ZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPi4KKyAqICAgICAgICAgICAgIEl0IG1heSBiZSA8
Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGFz
IHBhc3NlZCBpbnRvIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiBAcGFyYW0g
cEluZm8gQSBwb2ludGVyIHRvIHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+IHN0cnVjdHVyZQor
ICogICAgICAgICAgICAgIG9mIGRhdGEgdGhhdCBoYXMgYmVlbiBsb2FkZWQgYW5kIHdpbGwgYmUg
cmV0dXJuZWQKKyAqICAgICAgICAgICAgICBieSA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2Nv
ZGU+IGlmIHRoaXMgZnVuY3Rpb24KKyAqICAgICAgICAgICAgICByZXR1cm5zIDxjb2RlPlRSVUU8
L2NvZGU+LgorICogQHJldHVybiBUUlVFIGlmIHRoZSBjdXJyZW50IGRhdGEgbWVtb3J5IGlzIGFj
Y2VwdGFibGUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIFVCb29sIFVfQ0FMTENP
TlYKK1VEYXRhTWVtb3J5SXNBY2NlcHRhYmxlKHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgVURhdGFJbmZvICpwSW5mbyk7CisKKworLyoqCisgKiBDb252
ZW5pZW5jZSBmdW5jdGlvbi4KKyAqIFRoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgYXMgPGNv
ZGU+dWRhdGFfb3BlbkNob2ljZTwvY29kZT4KKyAqIGV4Y2VwdCB0aGF0IGFueSBkYXRhIHRoYXQg
bWF0Y2hlcyB0aGUgdHlwZSBhbmQgbmFtZQorICogaXMgYXNzdW1lZCB0byBiZSBhY2NlcHRhYmxl
LgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFz
ZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUg
ZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRh
dGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBk
YXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBi
dW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVy
c2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUg
PGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0
IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIEFu
IElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+TlVMTDwvY29k
ZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAoaGFuZGxlKSB0byBhIGRhdGEgbWVtb3J5IG9iamVj
dCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAqICAgICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzLiBD
YWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPgorICogICAgICAgICB0byBnZXQgYSBw
b2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4KKyAqCisgKiBAc2VlIHVkYXRhX29wZW5DaG9pY2UK
KyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JU
MgordWRhdGFfb3Blbihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBj
aGFyICpuYW1lLAorICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisg
KiBEYXRhIGxvYWRpbmcgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZmlu
ZCBhbmQgbG9hZCBlZmZpY2llbnRseSBkYXRhIGZvcgorICogSUNVIGFuZCBhcHBsaWNhdGlvbnMg
dXNpbmcgSUNVLgorICogSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgYWxs
b3dzIHRvIHNwZWNpZnkgYSBkYXRhCisgKiB0eXBlIGFuZCBuYW1lIHRvIGZpbmQgYW5kIGxvYWQg
dGhlIGRhdGEuCisgKgorICogPHA+VGhlIGltcGxlbWVudGF0aW9uIGRlcGVuZHMgb24gcGxhdGZv
cm0gcHJvcGVydGllcyBhbmQgdXNlciBwcmVmZXJlbmNlcworICogYW5kIG1heSBpbnZvbHZlIGxv
YWRpbmcgc2hhcmVkIGxpYnJhcmllcyAoRExMcyksIG1hcHBpbmcKKyAqIGZpbGVzIGludG8gbWVt
b3J5LCBvciBmb3BlbigpL2ZyZWFkKCkgZmlsZXMuCisgKiBJdCBtYXkgYWxzbyBpbnZvbHZlIHVz
aW5nIHN0YXRpYyBtZW1vcnkgb3IgZGF0YWJhc2UgcXVlcmllcyBldGMuCisgKiBTZXZlcmFsIG9y
IGFsbCBkYXRhIGl0ZW1zIG1heSBiZSBjb21iaW5lZCBpbnRvIG9uZSBlbnRpdHkKKyAqIChETEws
IG1lbW9yeS1tYXBwYWJsZSBmaWxlKS48L3A+CisgKgorICogPHA+VGhlIGRhdGEgaXMgYWx3YXlz
IHByZWNlZGVkIGJ5IGEgaGVhZGVyIHRoYXQgaW5jbHVkZXMKKyAqIGEgPGNvZGU+VURhdGFJbmZv
PC9jb2RlPiBzdHJ1Y3R1cmUuCisgKiBUaGUgY2FsbGVyJ3MgPGNvZGU+aXNBY2NlcHRhYmxlKCk8
L2NvZGU+IGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBtYWtlCisgKiBzdXJlIHRoYXQgdGhlIGRhdGEg
aXMgdXNlZnVsLiBJdCBtYXkgYmUgY2FsbGVkIHNldmVyYWwgdGltZXMgaWYgaXQKKyAqIHJlamVj
dHMgdGhlIGRhdGEgYW5kIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgbG9jYXRpb24gd2l0aCBkYXRh
CisgKiBtYXRjaGluZyB0aGUgdHlwZSBhbmQgbmFtZS48L3A+CisgKgorICogPHA+SWYgPGNvZGU+
cGF0aD09TlVMTDwvY29kZT4sIHRoZW4gSUNVIGRhdGEgaXMgbG9hZGVkLgorICogT3RoZXJ3aXNl
LCBpdCBpcyBzZXBhcmF0ZWQgaW50byBhIGJhc2VuYW1lIGFuZCBhIGJhc2VuYW1lLWxlc3MgZGly
ZWN0b3J5IHN0cmluZy4KKyAqIFRoZSBiYXNlbmFtZSBpcyB1c2VkIGFzIHRoZSBkYXRhIHBhY2th
Z2UgbmFtZSwgYW5kIHRoZSBkaXJlY3RvcnkgaXMKKyAqIGxvZ2ljYWxseSBwcmVwZW5kZWQgdG8g
dGhlIElDVSBkYXRhIGRpcmVjdG9yeSBzdHJpbmcuPC9wPgorICoKKyAqIDxwPkZvciBkZXRhaWxz
IGFib3V0IElDVSBkYXRhIGxvYWRpbmcgc2VlIHRoZSBVc2VyIEd1aWRlCisgKiBEYXRhIE1hbmFn
ZW1lbnQgY2hhcHRlci4gKGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL2ljdWRhdGEu
aHRtbCk8L3A+CisgKgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGgg
YW5kL29yIGEgYmFzZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUg
ZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2Rl
PiBmb3IgSUNVIGRhdGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0
aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxl
LCByZXNvdXJjZSBidW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAg
ICAgICAgY29udmVyc2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAg
VGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBB
IHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBp
c0FjY2VwdGFibGUgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRoYXQgbG9hZGVk
IGRhdGEKKyAqICAgICAgICAgICAgICAgICAgICAgaXMgdXNlZnVsIGZvciB0aGUgY2xpZW50IGNv
ZGUuIElmIGl0IHJldHVybnMgRkFMU0UKKyAqICAgICAgICAgICAgICAgICAgICAgZm9yIGFsbCBk
YXRhIGl0ZW1zLCB0aGVuIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4KKyAqICAgICAg
ICAgICAgICAgICAgICAgd2lsbCByZXR1cm4gd2l0aCBhbiBlcnJvci4KKyAqIEBwYXJhbSBjb250
ZXh0IEFyYml0cmFyeSBwYXJhbWV0ZXIgdG8gYmUgcGFzc2VkIGludG8gaXNBY2NlcHRhYmxlLgor
ICogQHBhcmFtIHBFcnJvckNvZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJdCBtdXN0
IG5vdCBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEByZXR1cm4gQSBwb2ludGVyIChoYW5kbGUp
IHRvIGEgZGF0YSBtZW1vcnkgb2JqZWN0LCBvciA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAg
ICBpZiBhbiBlcnJvciBvY2N1cnMuIENhbGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+
CisgKiAgICAgICAgIHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhLgorICogQHN0
YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIFVEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1ZGF0
YV9vcGVuQ2hvaWNlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNo
YXIgKm5hbWUsCisgICAgICAgICAgICAgICAgIFVEYXRhTWVtb3J5SXNBY2NlcHRhYmxlICppc0Fj
Y2VwdGFibGUsIHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBF
cnJvckNvZGUpOworCisvKioKKyAqIENsb3NlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoaXMgZnVu
Y3Rpb24gbXVzdCBiZSBjYWxsZWQgdG8gYWxsb3cgdGhlIHN5c3RlbSB0bworICogcmVsZWFzZSBy
ZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGF0YSBtZW1vcnkuCisgKiBAcGFyYW0gcERh
dGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBtZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2Nsb3NlKFVEYXRhTWVtb3J5ICpw
RGF0YSk7CisKKyNpZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgor
CisvKioKKyAqIFxjbGFzcyBMb2NhbFVEYXRhTWVtb3J5UG9pbnRlcgorICogIlNtYXJ0IHBvaW50
ZXIiIGNsYXNzLCBjbG9zZXMgYSBVRGF0YU1lbW9yeSB2aWEgdWRhdGFfY2xvc2UoKS4KKyAqIEZv
ciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKgor
ICogQHNlZSBMb2NhbFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0YWJs
ZSBJQ1UgNC40CisgKi8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVEYXRhTWVt
b3J5UG9pbnRlciwgVURhdGFNZW1vcnksIHVkYXRhX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5E
CisKKyNlbmRpZgorCisvKioKKyAqIEdldCB0aGUgcG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEg
aW5zaWRlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoZSBkYXRhIGlzIHJlYWQtb25seS4KKyAqCisg
KiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1h
bGlnbmVkLgorICoKKyAqIEBwYXJhbSBwRGF0YSBUaGUgcG9pbnRlciB0byBkYXRhIG1lbW9yeSBv
YmplY3QKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBjb25zdCB2b2lkICogVV9F
WFBPUlQyCit1ZGF0YV9nZXRNZW1vcnkoVURhdGFNZW1vcnkgKnBEYXRhKTsKKworLyoqCisgKiBH
ZXQgdGhlIGluZm9ybWF0aW9uIGZyb20gdGhlIGRhdGEgbWVtb3J5IGhlYWRlci4KKyAqIFRoaXMg
YWxsb3dzIHRvIGdldCBhY2Nlc3MgdG8gdGhlIGhlYWRlciBjb250YWluaW5nCisgKiBwbGF0Zm9y
bSBkYXRhIHByb3BlcnRpZXMgZXRjLiB3aGljaCBpcyBub3QgcGFydCBvZgorICogdGhlIGRhdGEg
aXRzZWxmIGFuZCBjYW4gdGhlcmVmb3JlIG5vdCBiZSBhY2Nlc3NlZAorICogdmlhIHRoZSBwb2lu
dGVyIHRoYXQgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+IHJldHVybnMuCisgKgorICog
QHBhcmFtIHBEYXRhIHBvaW50ZXIgdG8gdGhlIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHBhcmFt
IHBJbmZvIHBvaW50ZXIgdG8gYSBVRGF0YUluZm8gb2JqZWN0OworICogICAgICAgICAgICAgIGl0
cyA8Y29kZT5zaXplPC9jb2RlPiBmaWVsZCBtdXN0IGJlIHNldCBjb3JyZWN0bHksCisgKiAgICAg
ICAgICAgICAgdHlwaWNhbGx5IHRvIDxjb2RlPnNpemVvZihVRGF0YUluZm8pPC9jb2RlPi4KKyAq
CisgKiA8Y29kZT4qcEluZm88L2NvZGU+IHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIFVEYXRhSW5m
byBzdHJ1Y3R1cmUKKyAqIGluIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QuIElmIHRoaXMgc3RydWN0
dXJlIGlzIHNtYWxsZXIgdGhhbgorICogPGNvZGU+cEluZm8tPnNpemU8L2NvZGU+LCB0aGVuIHRo
ZSA8Y29kZT5zaXplPC9jb2RlPiB3aWxsIGJlCisgKiBhZGp1c3RlZCBhbmQgb25seSBwYXJ0IG9m
IHRoZSBzdHJ1Y3R1cmUgd2lsbCBiZSBmaWxsZWQuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwor
VV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2dldEluZm8oVURhdGFNZW1vcnkgKnBEYXRh
LCBVRGF0YUluZm8gKnBJbmZvKTsKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRo
ZSBub3JtYWwgSUNVIGRhdGEgbG9hZGluZyBwcm9jZXNzIGFuZAorICogYWxsb3dzIHlvdSB0byBm
b3JjZSBJQ1UncyBzeXN0ZW0gZGF0YSB0byBjb21lIG91dCBvZiBhIHVzZXItc3BlY2lmaWVkCisg
KiBhcmVhIGluIG1lbW9yeS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxp
Z25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUu
aWN1LXByb2plY3Qub3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBp
cyB0aGF0IG9mIHRoZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgYXMgaXMKKyAqIGdlbmVyYXRlZCBi
eSB0aGUgcGtnZGF0YSB0b29sIHdpdGggbW9kZT1jb21tb24gb3IgbW9kZT1kbGwuCisgKiBZb3Ug
Y2FuIHJlYWQgaW4gYSB3aG9sZSBjb21tb24gbW9kZSBmaWxlIGFuZCBwYXNzIHRoZSBhZGRyZXNz
IHRvIHRoZSBzdGFydCBvZiB0aGUKKyAqIGRhdGEsIG9yICh3aXRoIHRoZSBhcHByb3ByaWF0ZSBs
aW5rIG9wdGlvbnMpIHBhc3MgaW4gdGhlIHBvaW50ZXIgdG8KKyAqIHRoZSBkYXRhIHRoYXQgaGFz
IGJlZW4gbG9hZGVkIGZyb20gYSBkbGwgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0sCisgKiBhcyBz
aG93biBpbiB0aGlzIGNvZGU6CisgKgorICogICAgICAgZXh0ZXJuIGNvbnN0IGNoYXIgVV9JTVBP
UlQgVV9JQ1VEQVRBX0VOVFJZX1BPSU5UIFtdOworICogICAgICAgIC8vIFVfSUNVREFUQV9FTlRS
WV9QT0lOVCBpcyBzYW1lIGFzIGVudHJ5IHBvaW50IHNwZWNpZmllZCB0byBwa2dkYXRhIHRvb2wK
KyAqICAgICAgIFVFcnJvckNvZGUgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAqCisgKiAgICAg
ICB1ZGF0YV9zZXRDb21tb25EYXRhKCZVX0lDVURBVEFfRU5UUllfUE9JTlQsICZzdGF0dXMpOwor
ICoKKyAqIEl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBkZWNsYXJhdGlvbiBiZSBhcyBhYm92ZS4g
VGhlIGVudHJ5IHBvaW50CisgKiBtdXN0IG5vdCBiZSBkZWNsYXJlZCBhcyBhbiBleHRlcm4gdm9p
ZCouCisgKgorICogU3RhcnRpbmcgd2l0aCBJQ1UgNC40LCBpdCBpcyBwb3NzaWJsZSB0byBzZXQg
c2V2ZXJhbCBkYXRhIHBhY2thZ2VzLAorICogb25lIHBlciBjYWxsIHRvIHRoaXMgZnVuY3Rpb24u
CisgKiB1ZGF0YV9vcGVuKCkgd2lsbCBsb29rIGZvciBkYXRhIGluIHRoZSBtdWx0aXBsZSBkYXRh
IHBhY2thZ2VzIGluIHRoZSBvcmRlcgorICogaW4gd2hpY2ggdGhleSB3ZXJlIHNldC4KKyAqIFRo
ZSBwb3NpdGlvbiBvZiB0aGUgbGlua2VkLWluIG9yIGRlZmF1bHQtbmFtZSBJQ1UgLmRhdGEgcGFj
a2FnZSBpbiB0aGUKKyAqIHNlYXJjaCBsaXN0IGRlcGVuZHMgb24gd2hlbiB0aGUgZmlyc3QgZGF0
YSBpdGVtIGlzIGxvYWRlZCB0aGF0IGlzIG5vdCBjb250YWluZWQKKyAqIGluIHRoZSBhbHJlYWR5
IGV4cGxpY2l0bHkgc2V0IHBhY2thZ2VzLgorICogSWYgZGF0YSB3YXMgbG9hZGVkIGltcGxpY2l0
bHkgYmVmb3JlIHRoZSBmaXJzdCBjYWxsIHRvIHRoaXMgZnVuY3Rpb24KKyAqIChmb3IgZXhhbXBs
ZSwgdmlhIG9wZW5pbmcgYSBjb252ZXJ0ZXIsIGNvbnN0cnVjdGluZyBhIFVuaWNvZGVTdHJpbmcK
KyAqIGZyb20gZGVmYXVsdC1jb2RlcGFnZSBkYXRhLCB1c2luZyBmb3JtYXR0aW5nIG9yIGNvbGxh
dGlvbiBBUElzLCBldGMuKSwKKyAqIHRoZW4gdGhlIGRlZmF1bHQgZGF0YSB3aWxsIGJlIGZpcnN0
IGluIHRoZSBsaXN0LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVjdCBvbiBhcHBs
aWNhdGlvbiAobm9uIElDVSkgZGF0YS4gIFNlZSB1ZGF0YV9zZXRBcHBEYXRhKCkKKyAqIGZvciBz
aW1pbGFyIGZ1bmN0aW9uYWxpdHkgZm9yIGFwcGxpY2F0aW9uIGRhdGEuCisgKgorICogQHBhcmFt
IGRhdGEgcG9pbnRlciB0byBJQ1UgY29tbW9uIGRhdGEKKyAqIEBwYXJhbSBlcnIgb3V0Z29pbmcg
ZXJyb3Igc3RhdHVzIDxjb2RlPlVfVVNJTkdfREVGQVVMVF9XQVJOSU5HLCBVX1VOU1VQUE9SVEVE
X0VSUk9SPC9jb2RlPgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9F
WFBPUlQyCit1ZGF0YV9zZXRDb21tb25EYXRhKGNvbnN0IHZvaWQgKmRhdGEsIFVFcnJvckNvZGUg
KmVycik7CisKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNV
IGRhdGEgbG9hZGluZyBwcm9jZXNzIGZvciBhcHBsaWNhdGlvbi1zcGVjaWZpYworICogZGF0YSBh
bmQgYWxsb3dzIHlvdSB0byBmb3JjZSB0aGUgaXQgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNp
ZmllZAorICogcG9pbnRlci4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxp
Z25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUu
aWN1LXByb2plY3Qub3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBp
cyB0aGF0IG9mIHRoZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgbGlrZSAnaWN1ZHQyNmwuZGF0Jwor
ICogb3IgdGhlIGNvcnJlc3BvbmRpbmcgc2hhcmVkIGxpYnJhcnkgKERMTCkgZmlsZS4KKyAqIFRo
ZSBhcHBsaWNhdGlvbiBtdXN0IHJlYWQgaW4gb3Igb3RoZXJ3aXNlIGNvbnN0cnVjdCBhbiBpbWFn
ZSBvZiB0aGUgZGF0YSBhbmQgdGhlbgorICogcGFzcyB0aGUgYWRkcmVzcyBvZiBpdCB0byB0aGlz
IGZ1bmN0aW9uLgorICoKKyAqCisgKiBXYXJuaW5nOiAgc2V0QXBwRGF0YSB3aWxsIHNldCBhIFVf
VVNJTkdfREVGQVVMVF9XQVJOSU5HIGNvZGUgaWYKKyAqICAgICAgICAgICBkYXRhIHdpdGggdGhl
IHNwZWNpZmVkIHBhdGggdGhhdCBoYXMgYWxyZWFkeSBiZWVuIG9wZW5lZCwgb3IKKyAqICAgICAg
ICAgICBpZiBzZXRBcHBEYXRhIHdpdGggdGhlIHNhbWUgcGF0aCBoYXMgYWxyZWFkeSBiZWVuIGNh
bGxlZC4KKyAqICAgICAgICAgICBBbnkgc3VjaCBjYWxscyB0byBzZXRBcHBEYXRhIHdpbGwgaGF2
ZSBubyBlZmZlY3QuCisgKgorICoKKyAqIEBwYXJhbSBwYWNrYWdlTmFtZSB0aGUgcGFja2FnZSBu
YW1lIGJ5IHdoaWNoIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZmVyCisgKiAgICAgICAgICAgICB0
byAob3BlbikgdGhpcyBkYXRhCisgKiBAcGFyYW0gZGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhCisg
KiBAcGFyYW0gZXJyIG91dGdvaW5nIGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRf
V0FSTklORywgVV9VTlNVUFBPUlRFRF9FUlJPUjwvY29kZT4KKyAqIEBzZWUgdWRhdGFfc2V0Q29t
bW9uRGF0YQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQy
Cit1ZGF0YV9zZXRBcHBEYXRhKGNvbnN0IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25zdCB2b2lkICpk
YXRhLCBVRXJyb3JDb2RlICplcnIpOworCisvKioKKyAqIFBvc3NpYmxlIHNldHRpbmdzIGZvciB1
ZGF0YV9zZXRGaWxlQWNjZXNzKCkKKyAqIEBzZWUgdWRhdGFfc2V0RmlsZUFjY2VzcworICogQHN0
YWJsZSBJQ1UgMy40CisgKi8KK3R5cGVkZWYgZW51bSBVRGF0YUZpbGVBY2Nlc3MgeworICAgIC8q
KiBJQ1UgbG9va3MgZm9yIGRhdGEgaW4gc2luZ2xlIGZpbGVzIGZpcnN0LCB0aGVuIGluIHBhY2th
Z2VzLiAoZGVmYXVsdCkgQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRVNfRklSU1Qs
CisgICAgLyoqIEFuIGFsaWFzIGZvciB0aGUgZGVmYXVsdCBhY2Nlc3MgbW9kZS4gQHN0YWJsZSBJ
Q1UgMy40ICovCisgICAgVURBVEFfREVGQVVMVF9BQ0NFU1MgPSBVREFUQV9GSUxFU19GSVJTVCwK
KyAgICAvKiogSUNVIG9ubHkgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzLCBub3QgZnJvbSBzaW5n
bGUgZmlsZXMuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX09OTFlfUEFDS0FHRVMsCisg
ICAgLyoqIElDVSBsb2FkcyBkYXRhIGZyb20gcGFja2FnZXMgZmlyc3QsIGFuZCBvbmx5IGZyb20g
c2luZ2xlIGZpbGVzCisgICAgICAgIGlmIHRoZSBkYXRhIGNhbm5vdCBiZSBmb3VuZCBpbiBhIHBh
Y2thZ2UuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX1BBQ0tBR0VTX0ZJUlNULAorICAg
IC8qKiBJQ1UgZG9lcyBub3QgYWNjZXNzIHRoZSBmaWxlIHN5c3RlbSBmb3IgZGF0YSBsb2FkaW5n
LiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9OT19GSUxFUywKKyAgICAvKiogTnVtYmVy
IG9mIHJlYWwgVURhdGFGaWxlQWNjZXNzIHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAg
VURBVEFfRklMRV9BQ0NFU1NfQ09VTlQKK30gVURhdGFGaWxlQWNjZXNzOworCisvKioKKyAqIFRo
aXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCB0byBjb250cm9sIGhvdyBJQ1UgbG9hZHMgZGF0YS4g
SXQgbXVzdCBiZSBjYWxsZWQKKyAqIGJlZm9yZSBhbnkgSUNVIGRhdGEgaXMgbG9hZGVkLCBpbmNs
dWRpbmcgYXBwbGljYXRpb24gZGF0YSBsb2FkZWQgd2l0aCAKKyAqIHVyZXMvUmVzb3VyY2VCdW5k
bGUgb3IgdWRhdGEgQVBJcy4gVGhpcyBmdW5jdGlvbiBpcyBub3QgbXVsdGl0aHJlYWQgc2FmZS4g
IAorICogVGhlIHJlc3VsdHMgb2YgY2FsbGluZyBpdCB3aGlsZSBvdGhlciB0aHJlYWRzIGFyZSBs
b2FkaW5nIGRhdGEgYXJlIHVuZGVmaW5lZC4KKyAqIEBwYXJhbSBhY2Nlc3MgVGhlIHR5cGUgb2Yg
ZmlsZSBhY2Nlc3MgdG8gYmUgdXNlZAorICogQHBhcmFtIHN0YXR1cyBFcnJvciBjb2RlLgorICog
QHNlZSBVRGF0YUZpbGVBY2Nlc3MKKyAqIEBzdGFibGUgSUNVIDMuNCAKKyAqLworVV9TVEFCTEUg
dm9pZCBVX0VYUE9SVDIKK3VkYXRhX3NldEZpbGVBY2Nlc3MoVURhdGFGaWxlQWNjZXNzIGFjY2Vz
cywgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmggYi9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3VtaXNjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg1NDUxZmM3NjdjMDU4MzVmNmMxNWY1NjZmMzU2MmUy
ZDRhZjgzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1pc2Mu
aApAQCAtMCwwICsxLDYwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykg
MTk5OS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRp
b24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAg
ZmlsZSBuYW1lOiAgdW1pc2MuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNp
emU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246
IDE5OTlvY3QxNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisjaWZu
ZGVmIFVNSVNDX0gKKyNkZWZpbmUgVU1JU0NfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMu
aCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmICBDIEFQSTptaXNjIGRlZmluaXRpb25zIAor
ICoKKyAqICBUaGlzIGZpbGUgY29udGFpbnMgbWlzY2VsbGFuZW91cyBkZWZpbml0aW9ucyBmb3Ig
dGhlIEMgQVBJcy4gCisgKi8KKworVV9DREVDTF9CRUdJTgorCisvKiogQSBzdHJ1Y3QgcmVwcmVz
ZW50aW5nIGEgcmFuZ2Ugb2YgdGV4dCBjb250YWluaW5nIGEgc3BlY2lmaWMgZmllbGQgCisgKiAg
QHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IFVGaWVsZFBvc2l0aW9uIHsKKyAg
LyoqCisgICAqIFRoZSBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQz
Ml90IGZpZWxkOworICAvKioKKyAgICogVGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHJhbmdlIGNvbnRh
aW5pbmcgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBiZWdp
bkluZGV4OworICAvKiogCisgICAqIFRoZSBsaW1pdCBvZiB0aGUgdGV4dCByYW5nZSBjb250YWlu
aW5nIGZpZWxkIAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgZW5kSW5k
ZXg7Cit9IFVGaWVsZFBvc2l0aW9uOworCisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorLyoqCisg
KiBPcGFxdWUgdHlwZSByZXR1cm5lZCBieSByZWdpc3Rlckluc3RhbmNlLCByZWdpc3RlckZhY3Rv
cnkgYW5kIHVucmVnaXN0ZXIgZm9yIHNlcnZpY2UgcmVnaXN0cmF0aW9uLgorICogQHN0YWJsZSBJ
Q1UgMi42CisgKi8KK3R5cGVkZWYgY29uc3Qgdm9pZCogVVJlZ2lzdHJ5S2V5OworI2VuZGlmCisK
K1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAwOTk3ZDllYWM0
Nzk1ODFmZjFmZDQ3NjljY2M0YjU0NjYyZWZkNzE0Li42NTA5ZTgyN2VmY2NiMzZiZjA5NTgzNWU3
MjgyNDU5ZTY2OTY2MWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMjcyLDYgKzI3Miw0MiBA
QCBpZiAoTk9UIFVTRV9TWVNURU1fTUFMTE9DKQogICAgIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJ
RVMgYm1hbGxvYykKIGVuZGlmICgpCiAKK3NldChXVEZfQlJFQUtJTkdfUlVMRVNfU09VUkNFUwor
ICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dAorICAg
IHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0Cisg
ICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50
eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50
eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKSy50eHQKKykKKworbWFjcm8oR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMg
X2lucHV0IF9zeW1ib2xOYW1lIF9vdXRwdXQpCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAg
ICAgICBPVVRQVVQgJHtfb3V0cHV0fQorICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElS
fS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQor
ICAgICAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGls
b2d1ZS50eHQKKyAgICAgICAgQ09NTUFORCBjYXQgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAke19pbnB1
dH0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvckVwaWxvZ3VlLnR4dCB8ICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0v
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgJHtf
c3ltYm9sTmFtZX1SdWxlcyAtaW5jbHVkZURlZmluZXMgPiAke19vdXRwdXR9CisgICAgICAgIFZF
UkJBVElNKQorICAgIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7X291dHB1dH0pCisgICAgQURE
X1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtfaW5wdXR9ICR7X291dHB1dH0pCitlbmRtYWNybygpCisK
K2ZvcmVhY2ggKF9maWxlICR7V1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVN9KQorICAgIGdldF9m
aWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtfZmlsZX0gTkFNRV9XRSkKKyAgICBHRU5FUkFURV9C
UkVBS0lOR19SVUxFUygke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtfZmlsZX0gJHtfbmFt
ZX0gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy8ke19uYW1lfS5jcHAp
CitlbmRmb3JlYWNoICgpCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJ
VkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMuY3BwCisgICAgTUFJTl9ERVBFTkRFTkNZICR7V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKKyAgICBERVBFTkRTICR7Q01B
S0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnR4dAorICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZf
RElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5w
eSBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMgLWluY2x1ZGVEZWZpbmVzIDwgJHtDTUFLRV9D
VVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMudHh0ID4gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9D
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgVkVSQkFUSU0pCitsaXN0KEFQUEVO
RCBXVEZfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHApCitBRERfU09VUkNFX0RFUEVOREVOQ0lFUygk
e0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy50eHQgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdS
dWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwKQorCiBsaXN0KEFQUEVORCBXVEZf
U09VUkNFUwogICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAogKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRkNjhiZWE4MGM4ZjJjNzNhMWUwNWZlMWY5YmJh
N2VjZDQ1NjNlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTAsMCArMSw4MSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisj
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworQlJFQUtJTkdfUlVMRVNfRklMRVMgPSBcCisgICAgQnJlYWtpbmdSdWxlcy9DdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmJyaworCitCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUyA9
IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgXAor
ICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgXAorICAgIEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwCisKK2lm
ZXEgKCQoc2hlbGwgJChDQykgLXN0ZD1nbnUrKzExIC14IGMrKyAtRSAtUCAtZE0gJChTREtfRkxB
R1MpICQoRlJBTUVXT1JLX0ZMQUdTKSAkKEhFQURFUl9GTEFHUykgLUkgJChXVEYpIC1pbmNsdWRl
ICIkKFdURikvd3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8IGdyZXAgJyBXVEZfUExBVEZPUk1f
SU9TICcgfCBjdXQgLWQnICcgLWYzKSwgMSkKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMQorZWxz
ZQorICAgIFdURl9QTEFURk9STV9JT1MgPSAwCitlbmRpZgorCitpZmVxICgkKFdURl9QTEFURk9S
TV9JT1MpLCAxKQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5U
ID0gMAorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAwCitlbHNlCisJQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQgPSAkKEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVCkKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMQorZW5kaWYKKworREVQRU5ERU5D
SUVTID0gJChCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUykKKworaWZlcSAoJChPUyksTUFDT1Mp
CitERVBFTkRFTkNJRVMgKz0gJChCUkVBS0lOR19SVUxFU19GSUxFUykKK2VuZGlmCisKK2FsbCA6
ICQoREVQRU5ERU5DSUVTKQorCitCcmVha2luZ1J1bGVzLyUuYnJrIDogQnJlYWtpbmdSdWxlcy8l
LnBwCisJLi4vLi4vZ2VuYnJrIC1jIC1yICQ8IC1vICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCA6IEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnBwCisJcHl0aG9uICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dl
bmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMg
PCAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLmNwcCA6IEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwCisJcHl0aG9uICQoV1RGKS93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBsaW5lQnJlYWtJdGVy
YXRvciQqUnVsZXMgPCAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
PSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQpIC1ESEFWRV9F
WFRSQV9JQ1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRAICQ8
CisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwIDogJChXVEYpL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCS1jYXQgJD8gfCB1
bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9T
RVRTKSAtbyAkQApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
NTkxMGJmYTVlMGU2MzNkYmQ3MjU5M2FjMWYzMzBhZjNlZTQzZGRkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy50eHQKQEAgLTAsMCArMSwxNzQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMg
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKyMgVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsg
aXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9y
Zy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3NvdXJjZS9kYXRhL2Jya2l0ci8+Lgor
IyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVk
IGJlbG93OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNp
bmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAtICRF
eHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOworIyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBw
cmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVn
IDI0MzQyKTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3Zp
bmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1
ZyAxNTc5MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJv
bSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtz
LgorIyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4KKworJENS
ICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07CiskTEYgICAgICA9IFtc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsKKyRDb250cm9sID0gW1xwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9pY2VNYXJrcyA9IFtcdUZGOUVcdUZGOUZd
OyAjIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCiskRXh0ZW5kICA9
IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSAkVm9pY2VNYXJrcyAtIFtcdTBF
MzAgXHUwRTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07CiskU3BhY2luZ01hcmsgPSBbW1xwe0dl
bmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOworJEwgICAgICAgPSBb
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsKKyRWICAgICAgID0gW1xwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gVH1dOworJExWICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07
CiskTFZUICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07CiskSGluMCAg
ICA9IFtcdTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQorJEhpblYg
ICAgPSBcdTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQorJEhpbjEgICAgPSBbXHUwOTE1
LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCiskQmVuMCAgICA9IFtcdTA5
ODUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4uLixIYQorJEJlblYgICAgPSBcdTA5Q0Q7
ICMgQmVuZ2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAgPSBbXHUwOTk1LVx1MDlCOV07ICMgQmVu
Z2FsaSBMZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9IFtcdTBBMDUtXHUwQTM5XTsgIyBHdXJt
dWtoaSBMZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0gXHUwQTREOyAjIEd1cm11a2hpIFNpZ24g
VmlyYW1hCiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgS2Es
Li4uLEhhCiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgQSwu
Li4sSGEKKyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFyYXRpIFNpZ24gVmlyYW1hCiskR3VqMSAg
ICA9IFtcdTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCiskT3JpMCAg
ICA9IFtcdTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgQSwuLi4sSGEKKyRPcmlWICAgID0g
XHUwQjREOyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3JpMSAgICA9IFtcdTBCMTUtXHUwQjM5XTsg
IyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAgICA9IFtcdTBDMDUtXHUwQzM5XTsgIyBU
ZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9IFx1MEM0RDsgIyBUZWx1Z3UgU2lnbiBW
aXJhbWEKKyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgS2EsLi4u
LEhhCiskS2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4uLixI
YQorJEthblYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBTaWduIFZpcmFtYQorJEthbjEgICAgPSBb
XHUwQzk1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKKyRNYWwwICAgID0gW1x1
MEQwNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEgCiskTWFsViAgICA9IFx1
MEQ0RDsgIyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRNYWwxICAgID0gW1x1MEQxNS1cdTBEMzld
OyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRSSSAgICAgID0gW1xVMDAwMUYxRTYtXFUw
MDAxRjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycworJFpXSiAgICAgPSBcdTIwMEQ7
ICMgWmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9IFtcdUZFMEZdOyAjIEVtb2ppLXN0eWxl
IHZhcmlhdGlvbiBzZWxlY3RvcgorCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAg
ICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBcVTAwMDFGMzA4
IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAwMUYzQ0MgXFUwMDAxRjNGMyBc
VTAwMDFGNDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NkYgXFUw
MDAxRjQ3MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4MS1cVTAwMDFGNDgyIFxVMDAw
MUY0ODYtXFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUgXFUwMDAxRjVFOCBcVTAwMDFG
NjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxVMDAwMUY2NEUgXFUwMDAxRjZB
MyBcVTAwMDFGNkI0LVxVMDAwMUY2QjZdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldK
IHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUy
NzBEIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EgXFUwMDAxRjND
QiBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYt
XFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxV
MDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU3NSBcVTAw
MDFGNTkwIFxVMDAwMUY1OTUgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAx
RjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2
QzAgXFUwMDAxRjkxOF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMK
KworI2Vsc2UKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNzY0IFxVMDAwMUY0NjYtXFUwMDAx
RjQ2OSBcVTAwMDFGNDhCXTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5j
ZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI3MEEtXHUyNzBDIFxVMDAwMUYzODUg
XFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcgXFUwMDAxRjNDQSBcVTAwMDFGNDQyLVxV
MDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAw
MDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAx
RjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2
NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2
IFxVMDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisK
KyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUwMDAxRjNGRl07ICMgRml0enBh
dHJpY2sgbW9kaWZpZXJzCishIWNoYWluOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
CisKKyAgICAhIVJJTm9DaGFpbjsKKworI2VuZGlmCisKKyEhZm9yd2FyZDsKKyRDUiAkTEY7Cisk
TCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8ICRWKSAoJFYgfCAkVCk7CisoJExWVCB8
ICRUKSAkVDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJICRSSSAk
RXh0ZW5kKiAvICRSSTsKKyAgICAkUkkgJFJJICRFeHRlbmQqOworICAgIFteJENvbnRyb2wgJENS
ICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKwor
I2Vsc2UKKworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9s
ICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKyAgICAkUkkgJFJJIC8gJFJJOworICAgICRSSSAkUkk7
CisKKyNlbmRpZgorCiskSGluMCAkSGluViAkSGluMTsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9y
d2FyZCkKKyRCZW4wICRCZW5WICRCZW4xOyAjIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQorJFBh
bjAgJFBhblYgJFBhbjE7ICMgR3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQorJEd1ajAgJEd1alYg
JEd1ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQorJE9yaTAgJE9yaVYgJE9yaTE7ICMg
T3JpeWEgVmlyYW1hIChmb3J3YXJkKQorJFRlbDAgJFRlbFYgJFRlbDE7ICMgVGVsdWd1IFZpcmFt
YSAoZm9yd2FyZCkKKyRLYW4wICRLYW5WICRLYW4xOyAjIEthbm5hZGEgVmlyYW1hIChmb3J3YXJk
KQorJE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKKyRaV0og
JEVtb2ppRm9yU2VxczsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9q
aUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxl
dmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0
cmljayBtb2RpZmllcgorISFyZXZlcnNlOworJExGICRDUjsKKygkTCB8ICRWIHwgJExWIHwgJExW
VCkgJEw7CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRUICgkTFZUIHwgJFQpOworCisjaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCog
JFJJICRSSTsKKyAgICAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQgICAgICBbXiRDb250
cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOworCisj
ZWxzZQorCisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFNwYWNp
bmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFJJICRSSSAvICRSSSAkUkk7CisgICAg
JFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4xICRIaW5WICRIaW4wOyAjIERldmFuYWdhcmkgVmly
YW1hIChiYWNrd2FyZCkKKyRCZW4xICRCZW5WICRCZW4wOyAjIEJlbmdhbGkgVmlyYW1hIChiYWNr
d2FyZCkKKyRQYW4xICRQYW5WICRQYW4wOyAjIEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCisk
R3VqMSAkR3VqViAkR3VqMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJE9yaTEgJE9y
aVYgJE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRUZWwxICRUZWxWICRUZWww
OyAjIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQorJEthbjEgJEthblYgJEthbjA7ICMgS2FubmFk
YSBWaXJhbWEgKGJhY2t3YXJkKQorJE1hbDEgJE1hbFYgJE1hbDA7ICMgTWFsYXlhbGFtIFZpcmFt
YSAoYmFja3dhcmQpCiskRW1vamlGb3JTZXFzICRaV0o7ICMgRG9udCBicmVhayBpbiBlbW9qaSBa
V0ogc2VxdWVuY2VzCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsgIyBEb250
IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNl
bGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKworI2lmIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVAorCisgICAgISFzYWZlX3JldmVyc2U7CisgICAgJFJJICRSSSs7CisgICAgWyRFbW9q
aVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKyAg
ICAkUkkgJFJJKzsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOwor
CisjZWxzZQorCisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAg
ICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOworICAgICEhc2FmZV9yZXZl
cnNlOworICAgICEhc2FmZV9mb3J3YXJkOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVT
dHJpbmdzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkNGRkNDRhNmYyNjNmZTE2MjJiOGUxYzliZGU3OTBkNGU5
ZjYyZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CkBAIC0wLDAgKzEsMTAwIEBACisjIS91
c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK2ltcG9ydCBzeXMKK2ltcG9ydCByZQorCitoZWFkZXIgPSAiIiIvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8iIiIKKwor
CitkZWYgbWFpbihhcmd2PU5vbmUpOgorICAgIGlmIG5vdCBhcmd2OgorICAgICAgICBhcmd2ID0g
c3lzLmFyZ3YKKyAgICBzeW1ib2xOYW1lID0gYXJndlsxXVswXS5sb3dlcigpICsgYXJndlsxXVsx
Ol0KKworICAgIHByaW50KGhlYWRlcikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiLy8gRE8g
Tk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSB0aGUg
c2NyaXB0IikKKyAgICBwcmludCgiLy8gV1RGL3d0Zi90ZXh0L0dlbmVyYXRlQnJlYWtpbmdSdWxl
U3RyaW5ncy5weSIpCisgICAgcHJpbnQoIiIpCisgICAgcHJpbnQoIiNpbmNsdWRlIFwiY29uZmln
LmhcIiIpCisgICAgcHJpbnQoIiNpbmNsdWRlIDx1bmljb2RlL3V2ZXJudW0uaD4iKQorICAgIHBy
aW50KCIiKQorICAgIGlmIGxlbihhcmd2KSA+IDIgYW5kIGFyZ3ZbMl0gPT0gIi1pbmNsdWRlRGVm
aW5lcyI6CisgICAgICAgIHByaW50KCIjZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAo
UExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTEwMCkpIikKKyAgICAgICAgcHJpbnQoIiNkZWZpbmUgSEFWRV9FWFRS
QV9JQ1VfTkFNRURfU0VUUyAoKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lD
VV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KSkiKQorICAgICAgICBwcmludCgiIikKKyAgICBwcmlu
dCgibmFtZXNwYWNlIFdURiB7IikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiY29uc3QgY2hh
ciogIiArIHN5bWJvbE5hbWUgKyAiID0gIikKKworICAgIGZvciBsIGluIHN5cy5zdGRpbjoKKyAg
ICAgICAgbGluZSA9IGwucnN0cmlwKCkKKyAgICAgICAgaWYgcmUubWF0Y2goIl5ccyokIiwgbGlu
ZSk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjICIp
OgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgorICAgICAgICAg
ICAgcGFzcworICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyIpOgorICAgICAgICAgICAg
cHJpbnQobGluZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1hdGNoID0gcmUubWF0Y2go
Il4oLiopOyggIyAuKik/JCIsIGxpbmUpCisgICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSAiXCIiICsgbWF0Y2guZ3JvdXAoMSkucmVwbGFjZSgiXFwiLCAiXFxc
XCIpICsgIjtcIiIKKyAgICAgICAgICAgICAgICBpZiBtYXRjaC5ncm91cCgyKToKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIpWzM6XQorICAgICAg
ICAgICAgICAgIHByaW50KHJlc3VsdCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAgIHByaW50KCJ9IikKKworaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVw
aWxvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTg1ZDNjMWE2ZWUyMTc2MmY2NGNhZDI5
ZjdhY2VmNGIyOGEzZWFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0wLDAgKzEsMzcw
IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQUkgPSBbOkxpbmVC
cmVhayA9IEFtYmlndW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07Cisk
QkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxp
bmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlf
QnJlYWs6XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENCID0gWzpMaW5l
QnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1
bmN0dWF0aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1Ag
PSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9
IENhcnJpYWdlX1JldHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAt
ICRFWF9TVUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJB
X0lDVV9OQU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6
XTsKKworI2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNl
bmRpZgorCiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsg
PSBIMjpdOworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsg
PSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElOID0gW1s6TGlu
ZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGluZUJyZWFrID0g
SW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07Cisk
SlYgPSBbOkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYg
PSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xp
bmU6XTsKKyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQURE
XSAtICROU19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxp
bmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3Rm
aXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVt
ZXJpYzpdIC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJ
ID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhf
Q29udGV4dDpdOworJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGlu
ZUJyZWFrID0gU3BhY2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOwor
JFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBV
bmtub3duOl07CiskWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7
CiskRW1vamlWYXIgPSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKwor
ICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYz
MDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0Yz
IFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBc
VTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUw
MDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAw
MUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFG
NkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBa
V0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1c
dTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFG
M0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2
Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEt
XFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxV
MDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAw
MDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAx
RjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVy
cworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAw
MDFGNDY5IFxVMDAwMUY0OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1c
dTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFG
M0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2
Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEt
XFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxV
MDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAw
MDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0
cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAw
MDFGM0ZGXTsKKyRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsK
KyRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07CiskQUxjbSA9ICRBTFBsdXMgJENNKjsK
KyRCQWNtID0gJEJBICRDTSo7CiskQkJjbSA9ICRCQiAkQ00qOworJEIyY20gPSAkQjIgJENNKjsK
KyRDTGNtID0gJENMICRDTSo7CiskQ1BjbSA9ICRDUCAkQ00qOworJEVYY20gPSAkRVggJENNKjsK
KyRHTGNtID0gJEdMICRDTSo7CiskSExjbSA9ICRITCAkQ00qOworJEhZY20gPSAkSFkgJENNKjsK
KyRIMmNtID0gJEgyICRDTSo7CiskSDNjbSA9ICRIMyAkQ00qOworJElEY20gPSAkSUQgJENNKjsK
KyRJTmNtID0gJElOICRDTSo7CiskSVNjbSA9ICRJUyAkQ00qOworJEpMY20gPSAkSkwgJENNKjsK
KyRKVmNtID0gJEpWICRDTSo7CiskSlRjbSA9ICRKVCAkQ00qOworJE5TY20gPSAkTlMgJENNKjsK
KyROVWNtID0gJE5VICRDTSo7CiskT1BjbSA9ICRPUCAkQ00qOworJFBPY20gPSAkUE8gJENNKjsK
KyRQUmNtID0gJFBSICRDTSo7CiskUVVjbSA9ICRRVSAkQ00qOworJFJJY20gPSAkUkkgJENNKjsK
KyRTWWNtID0gJFNZICRDTSo7CiskV0pjbSA9ICRXSiAkQ00qOworCishIWZvcndhcmQ7CiskQ0FO
X0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJENBTlRfQ00gPSBbJFNQICRC
SyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAk
TkwgJFpXICRTUF07CiskQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRX
SiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOworJEFMX0ZPTExPVyA9
IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07CiskTEI0QnJlYWtzID0gWyRCSyAkQ1Ig
JExGICROTF07CiskTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOworJExCOEJyZWFr
cyA9IFskTEI0QnJlYWtzICRaV107CiskTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAt
IFskWlddXTsKKyRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07CiskTEIx
OEJyZWFrcyA9IFskTEI4QnJlYWtzICRTUF07CiskTEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJy
ZWFrcyAtICRDQl07CiskQUxQbHVzICRDTSs7CiskQkEgJENNKzsKKyRCQiAkQ00rOworJEIyICRD
TSs7CiskQ0wgJENNKzsKKyRDUCAkQ00rOworJEVYICRDTSs7CiskR0wgJENNKzsKKyRITCAkQ00r
OworJEhZICRDTSs7CiskSDIgJENNKzsKKyRIMyAkQ00rOworJElEICRDTSs7CiskSU4gJENNKzsK
KyRJUyAkQ00rOworJEpMICRDTSs7CiskSlYgJENNKzsKKyRKVCAkQ00rOworJE5TICRDTSs7Cisk
TlUgJENNKzsKKyRPUCAkQ00rOworJFBPICRDTSs7CiskUFIgJENNKzsKKyRRVSAkQ00rOworJFJJ
ICRDTSs7CiskU1kgJENNKzsKKyRXSiAkQ00rOworJENSICRMRiB7MTAwfTsKKyRMQjROb25CcmVh
a3M/ICRMQjRCcmVha3MgezEwMH07CiskQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsKKyRD
TSsgJExCNEJyZWFrcyB7MTAwfTsKKyRMQjROb25CcmVha3MgWyRTUCAkWlddOworJENBTl9DTSAk
Q00qIFskU1AgJFpXXTsKKyRDTSsgWyRTUCAkWlddOworJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/
ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsKKyRDQU5fQ00gJENNKzsKKyRDTSs7Cisk
Q0FOX0NNICRDTSogJFdKY207CiskTEI4Tm9uQnJlYWtzICRXSmNtOworJENNKyAkV0pjbTsKKyRX
SmNtICRDQU5UX0NNOworJFdKY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTl9DTSAkQ00qOwor
JEdMY20gJENBTlRfQ007CitbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENNKiAk
R0xjbTsKKyRDTSsgR0xjbTsKKyRMQjhOb25CcmVha3MgJENMOworJENBTl9DTSAkQ00qICRDTDsK
KyRDTSsgJENMOworJExCOE5vbkJyZWFrcyAkQ1A7CiskQ0FOX0NNICRDTSogJENQOworJENNKyAk
Q1A7CiskTEI4Tm9uQnJlYWtzICRFWDsKKyRDQU5fQ00gJENNKiAkRVg7CiskQ00rICRFWDsKKyRM
QjhOb25CcmVha3MgJElTOworJENBTl9DTSAkQ00qICRJUzsKKyRDTSsgJElTOworJExCOE5vbkJy
ZWFrcyAkU1k7CiskQ0FOX0NNICRDTSogJFNZOworJENNKyAkU1k7CiskT1BjbSAkU1AqICRDQU5f
Q00gJENNKjsKKyRPUGNtICRTUCogJENBTlRfQ007CiskT1BjbSAkU1ArICRDTSsgJEFMX0ZPTExP
Vz87CiskUVVjbSAkU1AqICRPUGNtOworKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207CiskQjJj
bSAkU1AqICRCMmNtOworJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsKKyRDTSsgJFFVY207Cisk
UVVjbSAuPzsKKyRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7CiskTEIyME5vbkJyZWFrcyAkQ00q
ICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAKKyRCQmNtIFteJENCXTsKKyRCQmNtICRMQjIwTm9u
QnJlYWtzICRDTSo7CiskSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsKKyRTWWNtICRITGNt
OworKCRBTGNtIHwgJEhMY20pICRJTmNtOworJENNKyAkSU5jbTsKKyRFWGNtICRJTmNtOworJElE
Y20gJElOY207CiskSU5jbSAkSU5jbTsKKyROVWNtICRJTmNtOworJElEY20gJFBPY207CiskQUxj
bSAkTlVjbTsKKyRITGNtICROVWNtOworJENNKyAkTlVjbTsKKyROVWNtICRBTGNtOworJE5VY20g
JEhMY207CiskUFJjbSAkSURjbTsKKyRQUmNtICgkQUxjbSB8ICRITGNtKTsKKyRQT2NtICgkQUxj
bSB8ICRITGNtKTsKKygkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5V
Y20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/Owor
JEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkSlZjbSB8ICRIMmNtKSAo
JEpWY20gfCAkSlRjbSk7CisoJEpUY20gfCAkSDNjbSkgJEpUY207CisoJEpMY20gfCAkSlZjbSB8
ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwg
JEgyY20gfCAkSDNjbSkgJFBPY207CiskUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgy
Y20gfCAkSDNjbSk7CisoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOworJENNKyAoJEFM
Y20gfCAkSExjbSk7CiskSVNjbSAoJEFMY20gfCAkSExjbSk7CisoJEFMY20gfCAkSExjbSB8ICRO
VWNtKSAkT1BjbTsKKyRDTSsgJE9QY207CiskQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsK
KworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJY20gJFJJY207CisKKyNl
bmRpZgorCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsKKworISFyZXZlcnNl
OworJENNKyAkQUxQbHVzOworJENNKyAkQkE7CiskQ00rICRCQjsKKyRDTSsgJEIyOworJENNKyAk
Q0w7CiskQ00rICRDUDsKKyRDTSsgJEVYOworJENNKyAkR0w7CiskQ00rICRITDsKKyRDTSsgJEhZ
OworJENNKyAkSDI7CiskQ00rICRIMzsKKyRDTSsgJElEOworJENNKyAkSU47CiskQ00rICRJUzsK
KyRDTSsgJEpMOworJENNKyAkSlY7CiskQ00rICRKVDsKKyRDTSsgJE5TOworJENNKyAkTlU7Cisk
Q00rICRPUDsKKyRDTSsgJFBPOworJENNKyAkUFI7CiskQ00rICRRVTsKKworI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKyAkUkk7CisKKyNlbmRpZgorCiskQ00rICRTWTsK
KyRDTSsgJFdKOworJENNKzsKKyRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRa
VyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFsk
QUwge2VvZn1dKSk7CitbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9
XTsKKyRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENNXTsKKyRMQjRCcmVha3MgJENNKyAkQ0FO
X0NNOworJExGICRDUjsKK1skU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOworWyRTUCAkWldd
ICRDTSsgJENBTl9DTTsKKyRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/
ICRFbW9qaUZvclNlcXM7CiskQ00rICRDQU5fQ007CiskQ00qICRXSiAkQ00qICRDQU5fQ007Cisk
Q00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOworJENBTlRfQ00gJENNKiAkV0o7CiskQ00qICRD
QU5fQ00gJENNKiAkV0o7CiskQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRC
QSAkSFldXTsKKyRDQU5UX0NNICRDTSogJEdMOworJENNKiAkQ0FOX0NNICRDTSogJEdMOworJENM
ICRDTSsgJENBTl9DTTsKKyRDUCAkQ00rICRDQU5fQ007CiskRVggJENNKyAkQ0FOX0NNOworJElT
ICRDTSsgJENBTl9DTTsKKyRTWSAkQ00rICRDQU5fQ007CiskQ0wgWyRMQjhOb25CcmVha3MtJENN
XTsKKyRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOworJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07Cisk
SVMgWyRMQjhOb25CcmVha3MtJENNXTsKKyRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOworWyRDTCAk
Q1AgJEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgCiskQ00qICRDQU5fQ00gJFNQKiAk
Q00qICRPUDsKKyRDQU5UX0NNICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XPyAkQ00rICRTUCAk
U1AqICRDTSogJE9QOworJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRDTSog
JEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskU1kgJENNICRTUCsgJE9QOworJENN
KiAkT1AgJFNQKiAkQ00qICRRVTsKKyRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsKKyRD
TSogJEIyICRTUCogJENNKiAkQjI7CiskQ00qICRRVSAkQ00qICRDQU5fQ007CiskQ00qICRRVSAk
TEIxOE5vbkJyZWFrczsKKyRDTSogJENBTl9DTSAkQ00qICRRVTsKKyRDQU5UX0NNICRDTSogJFFV
OworJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOworJENN
KiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICRCQjsKK1teJENC
XSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworJENNKiAkSEwgJENNKiAkU1k7CiskQ00qICRJ
TiAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogJElOICRDTSogJEVYOworJENNKiAkSU4gJENN
KiAkSUQ7CiskQ00qICRJTiAkQ00qICRJTjsKKyRDTSogJElOICRDTSogJE5VOworJENNKiAkUE8g
JENNKiAkSUQ7CiskQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMg
fCAkSEwpICRDTSogJE5VOworJENNKiAkSUQgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhM
KSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOworKCRDTSogKCRQUiB8
ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENN
KiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OworJENNKiAoJEgz
IHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsKKyRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgy
IHwgJEpWKTsKKyRDTSogJEpUICRDTSogKCRIMyB8ICRKVCk7CiskQ00qICRJTiAkQ00qICgkSDMg
fCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpU
IHwgJEpWIHwgJEpMKTsKKyRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAk
UFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRB
TFBsdXMgfCAkSEwpICRDTSogJElTOworJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8ICRO
VSk7CiskQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsKKworI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKiAkUkkgJENNKiAkUkk7CisKKyNlbmRpZgorCisk
RW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsKKworISFzYWZlX2ZvcndhcmQ7Citb
JENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14k
Q00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07CiskZGljdGlv
bmFyeSAkZGljdGlvbmFyeTsKKyAgICAKKyEhc2FmZV9yZXZlcnNlOworJENNKyBbXiRDTSAkQksg
JENSICRMRiAkTkwgJFpXICRTUF07CiskQ00rICRTUCAvIC47CiskU1ArICRDTSogJE9QOworJFNQ
KyAkQ00qICRRVTsKKyRTUCsgJENNKiAoJENMIHwgJENQKTsKKyRTUCsgJENNKiAkQjI7CiskQ00q
ICgkSFkgfCAkQkEpICRDTSogJEhMOworKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsKKygk
Q0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7CiskZGljdGlvbmFyeSAkZGljdGlvbmFy
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclByb2xvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjg4MzU1NjMxZTQz
NzkyZDNmM2M5MjMzMzcyNzY2YWNkZWMxYjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0CkBA
IC0wLDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyEh
Y2hhaW47CishIUxCQ01Ob0NoYWluOworISFsb29rQWhlYWRIYXJkQnJlYWs7CisKKyNpZiBIQVZF
X0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkQ0ogPSBbOkxpbmVCcmVhaz1Db25kaXRpb25h
bF9KYXBhbmVzZV9TdGFydGVyOl07CisKKyNlbHNlCisKKyAgICAkQ0ogPSBbXHUzMDQxXHUzMDQz
XHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhFXHUzMDk1XHUz
MDk2XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3XHUzMEE5XHUzMEMzXHUzMEUzXHUzMEU1XHUzMEU3
XHUzMEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYwXHUzMUYxXHUzMUYyXHUzMUYzXHUzMUY0XHUz
MUY1XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUzMUZBXHUzMUZCXHUzMUZDXHUzMUZEXHUzMUZF
XHUzMUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZBXHVGRjZCXHVGRjZDXHVGRjZEXHVGRjZFXHVG
RjZGXHVGRjcwXTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzBiY2U1ZWU5ZTY3OTY5YmM4NmIwODc1MDY2MTU0ZjdmYzM5MzE2MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Q0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7
CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0g
W1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0g
WyRDSiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTAzZTUxMWViOTg0ZmNhYTY0ODU0NGFj
Y2VlZjZlNzgxNTg4MDFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKQEAgLTAsMCAr
MSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9
IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9IFtcdTAwMjFcdTAwM0ZcdUZGMDFcdUZGMUZdOwor
JElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NVQiA9IFtcdTAw
M0FcdTAwM0JdOworJE5TX1NVQiA9IFtcdTIwM0NcdTIwNDdcdTIwNDhcdTIwNDlcdTMwMDVcdTMw
MUNcdTMwM0JcdTMwOURcdTMwOUVcdTMwQTBcdTMwRkJcdTMwRkRcdTMwRkVcdUZGMUFcdUZGMUJc
dUZGNjVdOworJFBPX1NVQiA9IFtcdTAwMjVcdTAwQTJcdTAwQjBcdTIwMzBcdTIwMzJcdTIwMzNc
dTIxMDNcdUZGMDVcdUZGRTBdOworJFBSX1NVQiA9IFtcdTAwMjRcdTAwQTNcdTAwQTVcdTIwQUNc
dTIxMTZcdUZGMDRcdUZGRTFcdUZGRTVdOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VC
ICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07CiskTlNfQUREID0gJyc7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZmOGU4ZTFiNWI2NWJjNjM0M2I1MDEyZDhmOTlkODQ0YTQwNGFkZGYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VC
ID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gJyc7CiskTlNfU1VC
ID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBGRFx1MzBGRV07CiskUE9fU1VCID0gJyc7
CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJdOworJE5TX0FE
RCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2
ZWFiNjk0OTg2ZWY4MmQ5YWI5NWZiMTliNDM1MmI2NjJkMjYzZGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOwor
JElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcn
OworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYmNlNWVlOWU2
Nzk2OWJjODZiMDg3NTA2NjE1NGY3ZmMzOTMxNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
IyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9
ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMw
QTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NV
QiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDk0NTgyY2NlOWZkNGQwN2Q5ODdlMzk5ZWM5
NzUyMjczYjRkYmU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0CkBAIC0wLDAg
KzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIg
PSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19T
VUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJ
RF9BREQgPSBbJENKXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJi
NjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CkBAIC0wLDAgKzEsMzMg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsK
KyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAn
JzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQg
PSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJi
NjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CkBAIC0wLDAgKzEs
MzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAn
JzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIg
PSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9B
REQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvY21lbW9yeS5oIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL2dlbmJyay9jbWVtb3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE4MmI1YWE3ZDE2Njkz
MDA2OWQ1MjQyM2M3YTM3M2U3MmNlYjUyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvY21lbW9yeS5oCkBAIC0wLDAgKzEsNjAwIEBA
CisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIw
MTUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQg
b3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor
KgorKiBGaWxlIENNRU1PUlkuSAorKgorKiAgQ29udGFpbnMgc3RkbGliLmgvc3RyaW5nLmggbWVt
b3J5IGZ1bmN0aW9ucworKgorKiBAYXV0aG9yICAgICAgIEJlcnRyYW5kIEEuIERhbWliYQorKgor
KiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBE
ZXNjcmlwdGlvbgorKiAgIDYvMjAvOTggICAgIEJlcnRyYW5kICAgIENyZWF0ZWQuCisqICAwNS8w
My85OSAgICAgc3RlcGhlbiAgICAgQ2hhbmdlZCBmcm9tIGZ1bmN0aW9ucyB0byBtYWNyb3MuCisq
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgQ01FTU9SWV9ICisjZGVmaW5l
IENNRU1PUllfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworI2luY2x1ZGUgPHN0
ZGRlZi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgInVuaWNvZGUvbG9jYWxwb2lu
dGVyLmgiCisKKyNpZiBVX0RFQlVHICYmIGRlZmluZWQoVVBSVl9NQUxMT0NfQ09VTlQpCisjaW5j
bHVkZSA8c3RkaW8uaD4KKyNlbmRpZgorCisjaWYgVV9ERUJVRworCisvKgorICogVGhlIEMrKyBz
dGFuZGFyZCByZXF1aXJlcyB0aGF0IHRoZSBzb3VyY2UgcG9pbnRlciBmb3IgbWVtY3B5KCkgJiBt
ZW1tb3ZlKCkKKyAqIGlzIHZhbGlkLCBub3QgTlVMTCwgYW5kIG5vdCBhdCB0aGUgZW5kIG9mIGFu
IGFsbG9jYXRlZCBtZW1vcnkgYmxvY2suCisgKiBJbiBkZWJ1ZyBtb2RlLCB3ZSByZWFkIG9uZSBi
eXRlIGZyb20gdGhlIHNvdXJjZSBwb2ludCB0byB2ZXJpZnkgdGhhdCBpdCdzCisgKiBhIHZhbGlk
LCByZWFkYWJsZSBwb2ludGVyLgorICovCisKK1VfQ0FQSSB2b2lkIHVwcnZfY2hlY2tWYWxpZE1l
bW9yeShjb25zdCB2b2lkICpwLCBzaXplX3Qgbik7CisKKyNkZWZpbmUgdXBydl9tZW1jcHkoZHN0
LCBzcmMsIHNpemUpICggXAorICAgIHVwcnZfY2hlY2tWYWxpZE1lbW9yeShzcmMsIDEpLCBcCisg
ICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIG1lbWNweShkc3QsIHNyYywgc2l6ZSkpCisjZGVm
aW5lIHVwcnZfbWVtbW92ZShkc3QsIHNyYywgc2l6ZSkgKCBcCisgICAgdXBydl9jaGVja1ZhbGlk
TWVtb3J5KHNyYywgMSksIFwKKyAgICBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0UgbWVtbW92ZShk
c3QsIHNyYywgc2l6ZSkpCisKKyNlbHNlCisKKyNkZWZpbmUgdXBydl9tZW1jcHkoZHN0LCBzcmMs
IHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBtZW1jcHkoZHN0LCBzcmMsIHNpemUpCisj
ZGVmaW5lIHVwcnZfbWVtbW92ZShkc3QsIHNyYywgc2l6ZSkgVV9TVEFOREFSRF9DUFBfTkFNRVNQ
QUNFIG1lbW1vdmUoZHN0LCBzcmMsIHNpemUpCisKKyNlbmRpZiAgLyogVV9ERUJVRyAqLworCisv
KioKKyAqIFxkZWYgVVBSVl9MRU5HVEhPRgorICogQ29udmVuaWVuY2UgbWFjcm8gdG8gZGV0ZXJt
aW5lIHRoZSBsZW5ndGggb2YgYSBmaXhlZCBhcnJheSBhdCBjb21waWxlLXRpbWUuCisgKiBAcGFy
YW0gYXJyYXkgQSBmaXhlZCBsZW5ndGggYXJyYXkKKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0
aGUgYXJyYXksIGluIGVsZW1lbnRzCisgKiBAaW50ZXJuYWwKKyAqLworI2RlZmluZSBVUFJWX0xF
TkdUSE9GKGFycmF5KSAoaW50MzJfdCkoc2l6ZW9mKGFycmF5KS9zaXplb2YoKGFycmF5KVswXSkp
CisjZGVmaW5lIHVwcnZfbWVtc2V0KGJ1ZmZlciwgbWFyaywgc2l6ZSkgVV9TVEFOREFSRF9DUFBf
TkFNRVNQQUNFIG1lbXNldChidWZmZXIsIG1hcmssIHNpemUpCisjZGVmaW5lIHVwcnZfbWVtY21w
KGJ1ZmZlcjEsIGJ1ZmZlcjIsIHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBtZW1jbXAo
YnVmZmVyMSwgYnVmZmVyMixzaXplKQorCitVX0NBUEkgdm9pZCAqIFVfRVhQT1JUMgordXBydl9t
YWxsb2Moc2l6ZV90IHMpIFVfTUFMTE9DX0FUVFIgVV9BTExPQ19TSVpFX0FUVFIoMSk7CisKK1Vf
Q0FQSSB2b2lkICogVV9FWFBPUlQyCit1cHJ2X3JlYWxsb2Modm9pZCAqbWVtLCBzaXplX3Qgc2l6
ZSkgVV9BTExPQ19TSVpFX0FUVFIoMik7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordXBydl9m
cmVlKHZvaWQgKm1lbSk7CisKK1VfQ0FQSSB2b2lkICogVV9FWFBPUlQyCit1cHJ2X2NhbGxvYyhz
aXplX3QgbnVtLCBzaXplX3Qgc2l6ZSkgVV9NQUxMT0NfQVRUUiBVX0FMTE9DX1NJWkVfQVRUUjIo
MSwyKTsKKworLyoqCisgKiBUaGlzIHNob3VsZCBhbGlnbiB0aGUgbWVtb3J5IHByb3Blcmx5IG9u
IGFueSBtYWNoaW5lLgorICogVGhpcyBpcyB2ZXJ5IHVzZWZ1bCBmb3IgdGhlIHNhZmVDbG9uZSBm
dW5jdGlvbnMuCisgKi8KK3R5cGVkZWYgdW5pb24geworICAgIGxvbmcgICAgdDE7CisgICAgZG91
YmxlICB0MjsKKyAgICB2b2lkICAgKnQzOworfSBVQWxpZ25lZE1lbW9yeTsKKworLyoqCisgKiBH
ZXQgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2YgYSBwb2ludGVyIChhIG1lbW9yeSBhZGRy
ZXNzKS4KKyAqIEZvciBleGFtcGxlLCB3aXRoIGEgbWFzayBvZiAzLCB0aGUgbWFjcm8gZ2V0cyB0
aGUgMiBsZWFzdCBzaWduaWZpY2FudCBiaXRzLAorICogd2hpY2ggd2lsbCBiZSAwIGlmIHRoZSBw
b2ludGVyIGlzIDMyLWJpdCAoNC1ieXRlKSBhbGlnbmVkLgorICoKKyAqIHB0cmRpZmZfdCBpcyB0
aGUgbW9zdCBhcHByb3ByaWF0ZSBpbnRlZ2VyIHR5cGUgdG8gY2FzdCB0by4KKyAqIHNpemVfdCBz
aG91bGQgd29yayB0b28sIHNpbmNlIG9uIG1vc3QgKG9yIGFsbD8pIHBsYXRmb3JtcyBpdCBoYXMg
dGhlIHNhbWUKKyAqIHdpZHRoIGFzIHB0cmRpZmZfdC4KKyAqLworI2RlZmluZSBVX1BPSU5URVJf
TUFTS19MU0IocHRyLCBtYXNrKSAoKChwdHJkaWZmX3QpKGNoYXIgKikocHRyKSkgJiAobWFzaykp
CisKKy8qKgorICogR2V0IHRoZSBhbW91bnQgb2YgYnl0ZXMgdGhhdCBhIHBvaW50ZXIgaXMgb2Zm
IGJ5IGZyb20KKyAqIHRoZSBwcmV2aW91cyBVQWxpZ25lZE1lbW9yeS1hbGlnbmVkIHBvaW50ZXIu
CisgKi8KKyNkZWZpbmUgVV9BTElHTk1FTlRfT0ZGU0VUKHB0cikgVV9QT0lOVEVSX01BU0tfTFNC
KHB0ciwgc2l6ZW9mKFVBbGlnbmVkTWVtb3J5KSAtIDEpCisKKy8qKgorICogR2V0IHRoZSBhbW91
bnQgb2YgYnl0ZXMgdG8gYWRkIHRvIGEgcG9pbnRlcgorICogaW4gb3JkZXIgdG8gZ2V0IHRoZSBu
ZXh0IFVBbGlnbmVkTWVtb3J5LWFsaWduZWQgYWRkcmVzcy4KKyAqLworI2RlZmluZSBVX0FMSUdO
TUVOVF9PRkZTRVRfVVAocHRyKSAoc2l6ZW9mKFVBbGlnbmVkTWVtb3J5KSAtIFVfQUxJR05NRU5U
X09GRlNFVChwdHIpKQorCisvKioKKyAgKiAgSGVhcCBjbGVhbiB1cCBmdW5jdGlvbiwgY2FsbGVk
IGZyb20gdV9jbGVhbnVwKCkKKyAgKiAgICBDbGVhcnMgYW55IHVzZXIgaGVhcCBmdW5jdGlvbnMg
ZnJvbSB1X3NldE1lbW9yeUZ1bmN0aW9ucygpCisgICogICAgRG9lcyBOT1QgZGVhbGxvY2F0ZSBh
bnkgcmVtYWluaW5nIGFsbG9jYXRlZCBtZW1vcnkuCisgICovCitVX0NGVU5DIFVCb29sIAorY21l
bW9yeV9jbGVhbnVwKHZvaWQpOworCisvKioKKyAqIEEgZnVuY3Rpb24gY2FsbGVkIGJ5IDxUVD51
aGFzaF9yZW1vdmU8L1RUPiwKKyAqIDxUVD51aGFzaF9jbG9zZTwvVFQ+LCBvciA8VFQ+dWhhc2hf
cHV0PC9UVD4gdG8gZGVsZXRlCisgKiBhbiBleGlzdGluZyBrZXkgb3IgdmFsdWUuCisgKiBAcGFy
YW0gb2JqIEEga2V5IG9yIHZhbHVlIHN0b3JlZCBpbiBhIGhhc2h0YWJsZQorICogQHNlZSB1cHJ2
X2RlbGV0ZVVPYmplY3QKKyAqLwordHlwZWRlZiB2b2lkIFVfQ0FMTENPTlYgVU9iamVjdERlbGV0
ZXIodm9pZCogb2JqKTsKKworLyoqCisgKiBEZWxldGVyIGZvciBVT2JqZWN0IGluc3RhbmNlcy4K
KyAqIFdvcmtzIGZvciBhbGwgc3ViY2xhc3NlcyBvZiBVT2JqZWN0IGJlY2F1c2UgaXQgaGFzIGEg
dmlydHVhbCBkZXN0cnVjdG9yLgorICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VwcnZfZGVs
ZXRlVU9iamVjdCh2b2lkICpvYmopOworCisjaWZkZWYgX19jcGx1c3BsdXMKKworVV9OQU1FU1BB
Q0VfQkVHSU4KKworLyoqCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGRlbGV0ZXMgbWVtb3J5
IHZpYSB1cHJ2X2ZyZWUoKS4KKyAqIEZvciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50
ZXJCYXNlIGJhc2UgY2xhc3MuCisgKiBBZGRzIG9wZXJhdG9yW10gZm9yIGFycmF5IGl0ZW0gYWNj
ZXNzLgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVyQmFzZQorICovCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgorY2xhc3MgTG9jYWxNZW1vcnkgOiBwdWJsaWMgTG9jYWxQb2ludGVyQmFzZTxUPiB7Citw
dWJsaWM6CisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgdGFrZXMgb3duZXJzaGlwLgorICAg
ICAqIEBwYXJhbSBwIHNpbXBsZSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFQgaXRlbXMgdGhhdCBp
cyBhZG9wdGVkCisgICAgICovCisgICAgZXhwbGljaXQgTG9jYWxNZW1vcnkoVCAqcD1OVUxMKSA6
IExvY2FsUG9pbnRlckJhc2U8VD4ocCkge30KKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yIGRl
bGV0ZXMgdGhlIG1lbW9yeSBpdCBvd25zLgorICAgICAqLworICAgIH5Mb2NhbE1lbW9yeSgpIHsK
KyAgICAgICAgdXBydl9mcmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7CisgICAgfQorICAg
IC8qKgorICAgICAqIERlbGV0ZXMgdGhlIGFycmF5IGl0IG93bnMsCisgICAgICogYW5kIGFkb3B0
cyAodGFrZXMgb3duZXJzaGlwIG9mKSB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0g
cCBzaW1wbGUgcG9pbnRlciB0byBhbiBhcnJheSBvZiBUIGl0ZW1zIHRoYXQgaXMgYWRvcHRlZAor
ICAgICAqLworICAgIHZvaWQgYWRvcHRJbnN0ZWFkKFQgKnApIHsKKyAgICAgICAgdXBydl9mcmVl
KExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7CisgICAgICAgIExvY2FsUG9pbnRlckJhc2U8VD46
OnB0cj1wOworICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSBpdCBvd25z
LCBhbGxvY2F0ZXMgYSBuZXcgb25lIGFuZCByZXNldCBpdHMgYnl0ZXMgdG8gMC4KKyAgICAgKiBS
ZXR1cm5zIHRoZSBuZXcgYXJyYXkgcG9pbnRlci4KKyAgICAgKiBJZiB0aGUgYWxsb2NhdGlvbiBm
YWlscywgdGhlbiB0aGUgY3VycmVudCBhcnJheSBpcyB1bmNoYW5nZWQgYW5kCisgICAgICogdGhp
cyBtZXRob2QgcmV0dXJucyBOVUxMLgorICAgICAqIEBwYXJhbSBuZXdDYXBhY2l0eSBtdXN0IGJl
ID4wCisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIGFycmF5IHBvaW50ZXIsIG9yIE5VTEwg
aWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIFQgKmFsbG9jYXRl
SW5zdGVhZEFuZFJlc2V0KGludDMyX3QgbmV3Q2FwYWNpdHk9MSk7CisgICAgLyoqCisgICAgICog
RGVsZXRlcyB0aGUgYXJyYXkgaXQgb3ducyBhbmQgYWxsb2NhdGVzIGEgbmV3IG9uZSwgY29weWlu
ZyBsZW5ndGggVCBpdGVtcy4KKyAgICAgKiBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgcG9pbnRlci4K
KyAgICAgKiBJZiB0aGUgYWxsb2NhdGlvbiBmYWlscywgdGhlbiB0aGUgY3VycmVudCBhcnJheSBp
cyB1bmNoYW5nZWQgYW5kCisgICAgICogdGhpcyBtZXRob2QgcmV0dXJucyBOVUxMLgorICAgICAq
IEBwYXJhbSBuZXdDYXBhY2l0eSBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxlbmd0aCBudW1i
ZXIgb2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRvIHRoZSBuZXcg
b25lOworICAgICAqICAgICAgICAgICAgICAgbXVzdCBiZSBubyBtb3JlIHRoYW4gdGhlIGNhcGFj
aXR5IG9mIHRoZSBvbGQgYXJyYXksCisgICAgICogICAgICAgICAgICAgICB3aGljaCB0aGUgY2Fs
bGVyIG11c3QgdHJhY2sgYmVjYXVzZSB0aGUgTG9jYWxNZW1vcnkgZG9lcyBub3QgdHJhY2sgaXQK
KyAgICAgKiBAcmV0dXJuIHRoZSBhbGxvY2F0ZWQgYXJyYXkgcG9pbnRlciwgb3IgTlVMTCBpZiB0
aGUgYWxsb2NhdGlvbiBmYWlsZWQKKyAgICAgKi8KKyAgICBpbmxpbmUgVCAqYWxsb2NhdGVJbnN0
ZWFkQW5kQ29weShpbnQzMl90IG5ld0NhcGFjaXR5PTEsIGludDMyX3QgbGVuZ3RoPTApOworICAg
IC8qKgorICAgICAqIEFycmF5IGl0ZW0gYWNjZXNzICh3cml0YWJsZSkuCisgICAgICogTm8gaW5k
ZXggYm91bmRzIGNoZWNrLgorICAgICAqIEBwYXJhbSBpIGFycmF5IGluZGV4CisgICAgICogQHJl
dHVybiByZWZlcmVuY2UgdG8gdGhlIGFycmF5IGl0ZW0KKyAgICAgKi8KKyAgICBUICZvcGVyYXRv
cltdKHB0cmRpZmZfdCBpKSBjb25zdCB7IHJldHVybiBMb2NhbFBvaW50ZXJCYXNlPFQ+OjpwdHJb
aV07IH0KK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgVCAqTG9jYWxNZW1vcnk8
VD46OmFsbG9jYXRlSW5zdGVhZEFuZFJlc2V0KGludDMyX3QgbmV3Q2FwYWNpdHkpIHsKKyAgICBp
ZihuZXdDYXBhY2l0eT4wKSB7CisgICAgICAgIFQgKnA9KFQgKil1cHJ2X21hbGxvYyhuZXdDYXBh
Y2l0eSpzaXplb2YoVCkpOworICAgICAgICBpZihwIT1OVUxMKSB7CisgICAgICAgICAgICB1cHJ2
X21lbXNldChwLCAwLCBuZXdDYXBhY2l0eSpzaXplb2YoVCkpOworICAgICAgICAgICAgdXBydl9m
cmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7CisgICAgICAgICAgICBMb2NhbFBvaW50ZXJC
YXNlPFQ+OjpwdHI9cDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcDsKKyAgICB9IGVsc2Ug
eworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKwordGVtcGxhdGU8dHlwZW5hbWUg
VD4KK2lubGluZSBUICpMb2NhbE1lbW9yeTxUPjo6YWxsb2NhdGVJbnN0ZWFkQW5kQ29weShpbnQz
Ml90IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aCkgeworICAgIGlmKG5ld0NhcGFjaXR5PjAp
IHsKKyAgICAgICAgVCAqcD0oVCAqKXVwcnZfbWFsbG9jKG5ld0NhcGFjaXR5KnNpemVvZihUKSk7
CisgICAgICAgIGlmKHAhPU5VTEwpIHsKKyAgICAgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAg
ICAgICAgICAgICAgaWYobGVuZ3RoPm5ld0NhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgICAg
IGxlbmd0aD1uZXdDYXBhY2l0eTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
dXBydl9tZW1jcHkocCwgTG9jYWxQb2ludGVyQmFzZTxUPjo6cHRyLCBsZW5ndGgqc2l6ZW9mKFQp
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHVwcnZfZnJlZShMb2NhbFBvaW50ZXJCYXNl
PFQ+OjpwdHIpOworICAgICAgICAgICAgTG9jYWxQb2ludGVyQmFzZTxUPjo6cHRyPXA7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIHA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5V
TEw7CisgICAgfQorfQorCisvKioKKyAqIFNpbXBsZSBhcnJheS9idWZmZXIgbWFuYWdlbWVudCBj
bGFzcyB1c2luZyB1cHJ2X21hbGxvYygpIGFuZCB1cHJ2X2ZyZWUoKS4KKyAqIFByb3ZpZGVzIGFu
IGludGVybmFsIGFycmF5IHdpdGggZml4ZWQgY2FwYWNpdHkuIENhbiBhbGlhcyBhbm90aGVyIGFy
cmF5CisgKiBvciBhbGxvY2F0ZSBvbmUuCisgKgorICogVGhlIGFycmF5IGFkZHJlc3MgaXMgcHJv
cGVybHkgYWxpZ25lZCBmb3IgdHlwZSBULiBJdCBtaWdodCBub3QgYmUgcHJvcGVybHkKKyAqIGFs
aWduZWQgZm9yIHR5cGVzIGxhcmdlciB0aGFuIFQgKG9yIGxhcmdlciB0aGFuIHRoZSBsYXJnZXN0
IHN1YnR5cGUgb2YgVCkuCisgKgorICogVW5saWtlIExvY2FsTWVtb3J5IGFuZCBMb2NhbEFycmF5
LCB0aGlzIGNsYXNzIG5ldmVyIGFkb3B0cworICogKHRha2VzIG93bmVyc2hpcCBvZikgYW5vdGhl
ciBhcnJheS4KKyAqLwordGVtcGxhdGU8dHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5
PgorY2xhc3MgTWF5YmVTdGFja0FycmF5IHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiBEZWZh
dWx0IGNvbnN0cnVjdG9yIGluaXRpYWxpemVzIHdpdGggaW50ZXJuYWwgVFtzdGFja0NhcGFjaXR5
XSBidWZmZXIuCisgICAgICovCisgICAgTWF5YmVTdGFja0FycmF5KCkgOiBwdHIoc3RhY2tBcnJh
eSksIGNhcGFjaXR5KHN0YWNrQ2FwYWNpdHkpLCBuZWVkVG9SZWxlYXNlKEZBTFNFKSB7fQorICAg
IC8qKgorICAgICAqIERlc3RydWN0b3IgZGVsZXRlcyB0aGUgYXJyYXkgKGlmIG93bmVkKS4KKyAg
ICAgKi8KKyAgICB+TWF5YmVTdGFja0FycmF5KCkgeyByZWxlYXNlQXJyYXkoKTsgfQorICAgIC8q
KgorICAgICAqIFJldHVybnMgdGhlIGFycmF5IGNhcGFjaXR5IChudW1iZXIgb2YgVCBpdGVtcyku
CisgICAgICogQHJldHVybiBhcnJheSBjYXBhY2l0eQorICAgICAqLworICAgIGludDMyX3QgZ2V0
Q2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBjYXBhY2l0eTsgfQorICAgIC8qKgorICAgICAqIEFj
Y2VzcyB3aXRob3V0IG93bmVyc2hpcCBjaGFuZ2UuCisgICAgICogQHJldHVybiB0aGUgYXJyYXkg
cG9pbnRlcgorICAgICAqLworICAgIFQgKmdldEFsaWFzKCkgY29uc3QgeyByZXR1cm4gcHRyOyB9
CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYXJyYXkgbGltaXQuIFNpbXBsZSBjb252ZW5p
ZW5jZSBtZXRob2QuCisgICAgICogQHJldHVybiBnZXRBbGlhcygpK2dldENhcGFjaXR5KCkKKyAg
ICAgKi8KKyAgICBUICpnZXRBcnJheUxpbWl0KCkgY29uc3QgeyByZXR1cm4gZ2V0QWxpYXMoKStj
YXBhY2l0eTsgfQorICAgIC8vIE5vICJvcGVyYXRvciBUICooKSBjb25zdCIgYmVjYXVzZSB0aGF0
IGNhbiBtYWtlCisgICAgLy8gZXhwcmVzc2lvbnMgbGlrZSBtYnNbaW5kZXhdIGFtYmlndW91cyBm
b3Igc29tZSBjb21waWxlcnMuCisgICAgLyoqCisgICAgICogQXJyYXkgaXRlbSBhY2Nlc3MgKGNv
bnN0KS4KKyAgICAgKiBObyBpbmRleCBib3VuZHMgY2hlY2suCisgICAgICogQHBhcmFtIGkgYXJy
YXkgaW5kZXgKKyAgICAgKiBAcmV0dXJuIHJlZmVyZW5jZSB0byB0aGUgYXJyYXkgaXRlbQorICAg
ICAqLworICAgIGNvbnN0IFQgJm9wZXJhdG9yW10ocHRyZGlmZl90IGkpIGNvbnN0IHsgcmV0dXJu
IHB0cltpXTsgfQorICAgIC8qKgorICAgICAqIEFycmF5IGl0ZW0gYWNjZXNzICh3cml0YWJsZSku
CisgICAgICogTm8gaW5kZXggYm91bmRzIGNoZWNrLgorICAgICAqIEBwYXJhbSBpIGFycmF5IGlu
ZGV4CisgICAgICogQHJldHVybiByZWZlcmVuY2UgdG8gdGhlIGFycmF5IGl0ZW0KKyAgICAgKi8K
KyAgICBUICZvcGVyYXRvcltdKHB0cmRpZmZfdCBpKSB7IHJldHVybiBwdHJbaV07IH0KKyAgICAv
KioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSAoaWYgb3duZWQpIGFuZCBhbGlhc2VzIGFub3Ro
ZXIgb25lLCBubyB0cmFuc2ZlciBvZiBvd25lcnNoaXAuCisgICAgICogSWYgdGhlIGFyZ3VtZW50
cyBhcmUgaWxsZWdhbCwgdGhlbiB0aGUgY3VycmVudCBhcnJheSBpcyB1bmNoYW5nZWQuCisgICAg
ICogQHBhcmFtIG90aGVyQXJyYXkgbXVzdCBub3QgYmUgTlVMTAorICAgICAqIEBwYXJhbSBvdGhl
ckNhcGFjaXR5IG11c3QgYmUgPjAKKyAgICAgKi8KKyAgICB2b2lkIGFsaWFzSW5zdGVhZChUICpv
dGhlckFycmF5LCBpbnQzMl90IG90aGVyQ2FwYWNpdHkpIHsKKyAgICAgICAgaWYob3RoZXJBcnJh
eSE9TlVMTCAmJiBvdGhlckNhcGFjaXR5PjApIHsKKyAgICAgICAgICAgIHJlbGVhc2VBcnJheSgp
OworICAgICAgICAgICAgcHRyPW90aGVyQXJyYXk7CisgICAgICAgICAgICBjYXBhY2l0eT1vdGhl
ckNhcGFjaXR5OworICAgICAgICAgICAgbmVlZFRvUmVsZWFzZT1GQUxTRTsKKyAgICAgICAgfQor
ICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSAoaWYgb3duZWQpIGFuZCBh
bGxvY2F0ZXMgYSBuZXcgb25lLCBjb3B5aW5nIGxlbmd0aCBUIGl0ZW1zLgorICAgICAqIFJldHVy
bnMgdGhlIG5ldyBhcnJheSBwb2ludGVyLgorICAgICAqIElmIHRoZSBhbGxvY2F0aW9uIGZhaWxz
LCB0aGVuIHRoZSBjdXJyZW50IGFycmF5IGlzIHVuY2hhbmdlZCBhbmQKKyAgICAgKiB0aGlzIG1l
dGhvZCByZXR1cm5zIE5VTEwuCisgICAgICogQHBhcmFtIG5ld0NhcGFjaXR5IGNhbiBiZSBsZXNz
IHRoYW4gb3IgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGNhcGFjaXR5OworICAgICAqICAgICAg
ICAgICAgICAgICAgICBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxlbmd0aCBudW1iZXIgb2Yg
VCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRvIHRoZSBuZXcgb25lCisg
ICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIGFycmF5IHBvaW50ZXIsIG9yIE5VTEwgaWYgdGhl
IGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIFQgKnJlc2l6ZShpbnQzMl90
IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aD0wKTsKKyAgICAvKioKKyAgICAgKiBHaXZlcyB1
cCBvd25lcnNoaXAgb2YgdGhlIGFycmF5IGlmIG93bmVkLCBvciBlbHNlIGNsb25lcyBpdCwKKyAg
ICAgKiBjb3B5aW5nIGxlbmd0aCBUIGl0ZW1zOyByZXNldHMgaXRzZWxmIHRvIHRoZSBpbnRlcm5h
bCBzdGFjayBhcnJheS4KKyAgICAgKiBSZXR1cm5zIE5VTEwgaWYgdGhlIGFsbG9jYXRpb24gZmFp
bGVkLgorICAgICAqIEBwYXJhbSBsZW5ndGggbnVtYmVyIG9mIFQgaXRlbXMgdG8gY29weSB3aGVu
IGNsb25pbmcsCisgICAgICogICAgICAgIGFuZCBjYXBhY2l0eSBvZiB0aGUgY2xvbmUgd2hlbiBj
bG9uaW5nCisgICAgICogQHBhcmFtIHJlc3VsdENhcGFjaXR5IHdpbGwgYmUgc2V0IHRvIHRoZSBy
ZXR1cm5lZCBhcnJheSdzIGNhcGFjaXR5IChvdXRwdXQtb25seSkKKyAgICAgKiBAcmV0dXJuIHRo
ZSBhcnJheSBwb2ludGVyOworICAgICAqICAgICAgICAgY2FsbGVyIGJlY29tZXMgcmVzcG9uc2li
bGUgZm9yIGRlbGV0aW5nIHRoZSBhcnJheQorICAgICAqLworICAgIGlubGluZSBUICpvcnBoYW5P
ckNsb25lKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90ICZyZXN1bHRDYXBhY2l0eSk7Citwcml2YXRl
OgorICAgIFQgKnB0cjsKKyAgICBpbnQzMl90IGNhcGFjaXR5OworICAgIFVCb29sIG5lZWRUb1Jl
bGVhc2U7CisgICAgVCBzdGFja0FycmF5W3N0YWNrQ2FwYWNpdHldOworICAgIHZvaWQgcmVsZWFz
ZUFycmF5KCkgeworICAgICAgICBpZihuZWVkVG9SZWxlYXNlKSB7CisgICAgICAgICAgICB1cHJ2
X2ZyZWUocHRyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBObyBjb21wYXJpc29uIG9wZXJh
dG9ycyB3aXRoIG90aGVyIE1heWJlU3RhY2tBcnJheSdzLiAqLworICAgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1cm4gRkFMU0U7fQorICAg
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1
cm4gVFJVRTt9CisgICAgLyogTm8gb3duZXJzaGlwIHRyYW5zZmVyOiBObyBjb3B5IGNvbnN0cnVj
dG9yLCBubyBhc3NpZ25tZW50IG9wZXJhdG9yLiAqLworICAgIE1heWJlU3RhY2tBcnJheShjb25z
dCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVyKi8pIHt9CisgICAgdm9pZCBvcGVyYXRvcj0oY29u
c3QgTWF5YmVTdGFja0FycmF5ICYgLypvdGhlciovKSB7fQorCisgICAgLy8gTm8gaGVhcCBhbGxv
Y2F0aW9uLiBVc2Ugb25seSBvbiB0aGUgc3RhY2suCisgICAgLy8gICAoRGVjbGFyaW5nIHRoZXNl
IGZ1bmN0aW9ucyBwcml2YXRlIHRyaWdnZXJzIGEgY2FzY2FkZSBvZiBwcm9ibGVtczoKKyAgICAv
LyAgICAgIE1TVkMgaW5zaXN0cyBvbiBleHBvcnRpbmcgYW4gaW5zdGFudGlhdGlvbiBvZiBNYXli
ZVN0YWNrQXJyYXksIHdoaWNoCisgICAgLy8gICAgICByZXF1aXJlcyB0aGF0IGFsbCBmdW5jdGlv
bnMgYmUgZGVmaW5lZC4KKyAgICAvLyAgICAgIEFuIGVtcHR5IGltcGxlbWVudGF0aW9uIG9mIG5l
dygpIGlzIHJlamVjdGVkLCBpdCBtdXN0IHJldHVybiBhIHZhbHVlLgorICAgIC8vICAgICAgUmV0
dXJuaW5nIE5VTEwgaXMgcmVqZWN0ZWQgYnkgZ2NjIGZvciBvcGVyYXRvciBuZXcuCisgICAgLy8g
ICAgICBUaGUgZXhwZWRpZW50IHRoaW5nIGlzIGp1c3Qgbm90IHRvIG92ZXJyaWRlIG9wZXJhdG9y
IG5ldy4KKyAgICAvLyAgICAgIFdoaWxlIHJlbGF0aXZlbHkgcG9pbnRsZXNzLCBoZWFwIGFsbG9j
YXRlZCBpbnN0YW5jZXMgd2lsbCBmdW5jdGlvbi4KKyAgICAvLyBzdGF0aWMgdm9pZCAqIFVfRVhQ
T1JUMiBvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpOyAKKyAgICAvLyBzdGF0aWMgdm9pZCAqIFVf
RVhQT1JUMiBvcGVyYXRvciBuZXdbXShzaXplX3Qgc2l6ZSk7CisjaWYgVV9IQVZFX1BMQUNFTUVO
VF9ORVcKKyAgICAvLyBzdGF0aWMgdm9pZCAqIFVfRVhQT1JUMiBvcGVyYXRvciBuZXcoc2l6ZV90
LCB2b2lkICpwdHIpOworI2VuZGlmCit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBpbnQzMl90
IHN0YWNrQ2FwYWNpdHk+CitpbmxpbmUgVCAqTWF5YmVTdGFja0FycmF5PFQsIHN0YWNrQ2FwYWNp
dHk+OjpyZXNpemUoaW50MzJfdCBuZXdDYXBhY2l0eSwgaW50MzJfdCBsZW5ndGgpIHsKKyAgICBp
ZihuZXdDYXBhY2l0eT4wKSB7CisjaWYgVV9ERUJVRyAmJiBkZWZpbmVkKFVQUlZfTUFMTE9DX0NP
VU5UKQorICAgICAgOjpmcHJpbnRmKDo6c3RkZXJyLCJNYXliZVN0YWNBcnJheSAocmVzaXplKSBh
bGxvYyAlZCAqICVsdVxuIiwgbmV3Q2FwYWNpdHksc2l6ZW9mKFQpKTsKKyNlbmRpZgorICAgICAg
ICBUICpwPShUICopdXBydl9tYWxsb2MobmV3Q2FwYWNpdHkqc2l6ZW9mKFQpKTsKKyAgICAgICAg
aWYocCE9TlVMTCkgeworICAgICAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAgICAgICAg
ICBpZihsZW5ndGg+Y2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPWNhcGFj
aXR5OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihsZW5ndGg+bmV3Q2Fw
YWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPW5ld0NhcGFjaXR5OworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1cHJ2X21lbWNweShwLCBwdHIsIGxlbmd0aCpz
aXplb2YoVCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVsZWFzZUFycmF5KCk7Cisg
ICAgICAgICAgICBwdHI9cDsKKyAgICAgICAgICAgIGNhcGFjaXR5PW5ld0NhcGFjaXR5OworICAg
ICAgICAgICAgbmVlZFRvUmVsZWFzZT1UUlVFOworICAgICAgICB9CisgICAgICAgIHJldHVybiBw
OworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5PgoraW5saW5lIFQgKk1heWJlU3Rh
Y2tBcnJheTxULCBzdGFja0NhcGFjaXR5Pjo6b3JwaGFuT3JDbG9uZShpbnQzMl90IGxlbmd0aCwg
aW50MzJfdCAmcmVzdWx0Q2FwYWNpdHkpIHsKKyAgICBUICpwOworICAgIGlmKG5lZWRUb1JlbGVh
c2UpIHsKKyAgICAgICAgcD1wdHI7CisgICAgfSBlbHNlIGlmKGxlbmd0aDw9MCkgeworICAgICAg
ICByZXR1cm4gTlVMTDsKKyAgICB9IGVsc2UgeworICAgICAgICBpZihsZW5ndGg+Y2FwYWNpdHkp
IHsKKyAgICAgICAgICAgIGxlbmd0aD1jYXBhY2l0eTsKKyAgICAgICAgfQorICAgICAgICBwPShU
ICopdXBydl9tYWxsb2MobGVuZ3RoKnNpemVvZihUKSk7CisjaWYgVV9ERUJVRyAmJiBkZWZpbmVk
KFVQUlZfTUFMTE9DX0NPVU5UKQorICAgICAgOjpmcHJpbnRmKDo6c3RkZXJyLCJNYXliZVN0YWNB
cnJheSAob3JwaGFuKSBhbGxvYyAlZCAqICVsdVxuIiwgbGVuZ3RoLHNpemVvZihUKSk7CisjZW5k
aWYKKyAgICAgICAgaWYocD09TlVMTCkgeworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAg
ICAgIH0KKyAgICAgICAgdXBydl9tZW1jcHkocCwgcHRyLCBsZW5ndGgqc2l6ZW9mKFQpKTsKKyAg
ICB9CisgICAgcmVzdWx0Q2FwYWNpdHk9bGVuZ3RoOworICAgIHB0cj1zdGFja0FycmF5OworICAg
IGNhcGFjaXR5PXN0YWNrQ2FwYWNpdHk7CisgICAgbmVlZFRvUmVsZWFzZT1GQUxTRTsKKyAgICBy
ZXR1cm4gcDsKK30KKworLyoqCisgKiBWYXJpYW50IG9mIE1heWJlU3RhY2tBcnJheSB0aGF0IGFs
bG9jYXRlcyBhIGhlYWRlciBzdHJ1Y3QgYW5kIGFuIGFycmF5CisgKiBpbiBvbmUgY29udGlndW91
cyBtZW1vcnkgYmxvY2ssIHVzaW5nIHVwcnZfbWFsbG9jKCkgYW5kIHVwcnZfZnJlZSgpLgorICog
UHJvdmlkZXMgaW50ZXJuYWwgbWVtb3J5IHdpdGggZml4ZWQgYXJyYXkgY2FwYWNpdHkuIENhbiBh
bGlhcyBhbm90aGVyIG1lbW9yeQorICogYmxvY2sgb3IgYWxsb2NhdGUgb25lLgorICogVGhlIHN0
YWNrQ2FwYWNpdHkgaXMgdGhlIG51bWJlciBvZiBUIGl0ZW1zIGluIHRoZSBpbnRlcm5hbCBtZW1v
cnksCisgKiBub3QgY291bnRpbmcgdGhlIEggaGVhZGVyLgorICogVW5saWtlIExvY2FsTWVtb3J5
IGFuZCBMb2NhbEFycmF5LCB0aGlzIGNsYXNzIG5ldmVyIGFkb3B0cworICogKHRha2VzIG93bmVy
c2hpcCBvZikgYW5vdGhlciBtZW1vcnkgYmxvY2suCisgKi8KK3RlbXBsYXRlPHR5cGVuYW1lIEgs
IHR5cGVuYW1lIFQsIGludDMyX3Qgc3RhY2tDYXBhY2l0eT4KK2NsYXNzIE1heWJlU3RhY2tIZWFk
ZXJBbmRBcnJheSB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb25zdHJ1Y3Rv
ciBpbml0aWFsaXplcyB3aXRoIGludGVybmFsIEgrVFtzdGFja0NhcGFjaXR5XSBidWZmZXIuCisg
ICAgICovCisgICAgTWF5YmVTdGFja0hlYWRlckFuZEFycmF5KCkgOiBwdHIoJnN0YWNrSGVhZGVy
KSwgY2FwYWNpdHkoc3RhY2tDYXBhY2l0eSksIG5lZWRUb1JlbGVhc2UoRkFMU0UpIHt9CisgICAg
LyoqCisgICAgICogRGVzdHJ1Y3RvciBkZWxldGVzIHRoZSBtZW1vcnkgKGlmIG93bmVkKS4KKyAg
ICAgKi8KKyAgICB+TWF5YmVTdGFja0hlYWRlckFuZEFycmF5KCkgeyByZWxlYXNlTWVtb3J5KCk7
IH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhcnJheSBjYXBhY2l0eSAobnVtYmVyIG9m
IFQgaXRlbXMpLgorICAgICAqIEByZXR1cm4gYXJyYXkgY2FwYWNpdHkKKyAgICAgKi8KKyAgICBp
bnQzMl90IGdldENhcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gY2FwYWNpdHk7IH0KKyAgICAvKioK
KyAgICAgKiBBY2Nlc3Mgd2l0aG91dCBvd25lcnNoaXAgY2hhbmdlLgorICAgICAqIEByZXR1cm4g
dGhlIGhlYWRlciBwb2ludGVyCisgICAgICovCisgICAgSCAqZ2V0QWxpYXMoKSBjb25zdCB7IHJl
dHVybiBwdHI7IH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhcnJheSBzdGFydC4KKyAg
ICAgKiBAcmV0dXJuIGFycmF5IHN0YXJ0LCBzYW1lIGFkZHJlc3MgYXMgZ2V0QWxpYXMoKSsxCisg
ICAgICovCisgICAgVCAqZ2V0QXJyYXlTdGFydCgpIGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8VCAqPihnZXRBbGlhcygpKzEpOyB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUg
YXJyYXkgbGltaXQuCisgICAgICogQHJldHVybiBhcnJheSBsaW1pdAorICAgICAqLworICAgIFQg
KmdldEFycmF5TGltaXQoKSBjb25zdCB7IHJldHVybiBnZXRBcnJheVN0YXJ0KCkrY2FwYWNpdHk7
IH0KKyAgICAvKioKKyAgICAgKiBBY2Nlc3Mgd2l0aG91dCBvd25lcnNoaXAgY2hhbmdlLiBTYW1l
IGFzIGdldEFsaWFzKCkuCisgICAgICogQSBjbGFzcyBpbnN0YW5jZSBjYW4gYmUgdXNlZCBkaXJl
Y3RseSBpbiBleHByZXNzaW9ucyB0aGF0IHRha2UgYSBUICouCisgICAgICogQHJldHVybiB0aGUg
aGVhZGVyIHBvaW50ZXIKKyAgICAgKi8KKyAgICBvcGVyYXRvciBIICooKSBjb25zdCB7IHJldHVy
biBwdHI7IH0KKyAgICAvKioKKyAgICAgKiBBcnJheSBpdGVtIGFjY2VzcyAod3JpdGFibGUpLgor
ICAgICAqIE5vIGluZGV4IGJvdW5kcyBjaGVjay4KKyAgICAgKiBAcGFyYW0gaSBhcnJheSBpbmRl
eAorICAgICAqIEByZXR1cm4gcmVmZXJlbmNlIHRvIHRoZSBhcnJheSBpdGVtCisgICAgICovCisg
ICAgVCAmb3BlcmF0b3JbXShwdHJkaWZmX3QgaSkgeyByZXR1cm4gZ2V0QXJyYXlTdGFydCgpW2ld
OyB9CisgICAgLyoqCisgICAgICogRGVsZXRlcyB0aGUgbWVtb3J5IGJsb2NrIChpZiBvd25lZCkg
YW5kIGFsaWFzZXMgYW5vdGhlciBvbmUsIG5vIHRyYW5zZmVyIG9mIG93bmVyc2hpcC4KKyAgICAg
KiBJZiB0aGUgYXJndW1lbnRzIGFyZSBpbGxlZ2FsLCB0aGVuIHRoZSBjdXJyZW50IG1lbW9yeSBp
cyB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIG90aGVyQXJyYXkgbXVzdCBub3QgYmUgTlVMTAor
ICAgICAqIEBwYXJhbSBvdGhlckNhcGFjaXR5IG11c3QgYmUgPjAKKyAgICAgKi8KKyAgICB2b2lk
IGFsaWFzSW5zdGVhZChIICpvdGhlck1lbW9yeSwgaW50MzJfdCBvdGhlckNhcGFjaXR5KSB7Cisg
ICAgICAgIGlmKG90aGVyTWVtb3J5IT1OVUxMICYmIG90aGVyQ2FwYWNpdHk+MCkgeworICAgICAg
ICAgICAgcmVsZWFzZU1lbW9yeSgpOworICAgICAgICAgICAgcHRyPW90aGVyTWVtb3J5OworICAg
ICAgICAgICAgY2FwYWNpdHk9b3RoZXJDYXBhY2l0eTsKKyAgICAgICAgICAgIG5lZWRUb1JlbGVh
c2U9RkFMU0U7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogRGVsZXRlcyB0aGUg
bWVtb3J5IGJsb2NrIChpZiBvd25lZCkgYW5kIGFsbG9jYXRlcyBhIG5ldyBvbmUsCisgICAgICog
Y29weWluZyB0aGUgaGVhZGVyIGFuZCBsZW5ndGggVCBhcnJheSBpdGVtcy4KKyAgICAgKiBSZXR1
cm5zIHRoZSBuZXcgaGVhZGVyIHBvaW50ZXIuCisgICAgICogSWYgdGhlIGFsbG9jYXRpb24gZmFp
bHMsIHRoZW4gdGhlIGN1cnJlbnQgbWVtb3J5IGlzIHVuY2hhbmdlZCBhbmQKKyAgICAgKiB0aGlz
IG1ldGhvZCByZXR1cm5zIE5VTEwuCisgICAgICogQHBhcmFtIG5ld0NhcGFjaXR5IGNhbiBiZSBs
ZXNzIHRoYW4gb3IgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGNhcGFjaXR5OworICAgICAqICAg
ICAgICAgICAgICAgICAgICBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxlbmd0aCBudW1iZXIg
b2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRvIHRoZSBuZXcgb25l
CisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIHBvaW50ZXIsIG9yIE5VTEwgaWYgdGhlIGFs
bG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIEggKnJlc2l6ZShpbnQzMl90IG5l
d0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aD0wKTsKKyAgICAvKioKKyAgICAgKiBHaXZlcyB1cCBv
d25lcnNoaXAgb2YgdGhlIG1lbW9yeSBpZiBvd25lZCwgb3IgZWxzZSBjbG9uZXMgaXQsCisgICAg
ICogY29weWluZyB0aGUgaGVhZGVyIGFuZCBsZW5ndGggVCBhcnJheSBpdGVtczsgcmVzZXRzIGl0
c2VsZiB0byB0aGUgaW50ZXJuYWwgbWVtb3J5LgorICAgICAqIFJldHVybnMgTlVMTCBpZiB0aGUg
YWxsb2NhdGlvbiBmYWlsZWQuCisgICAgICogQHBhcmFtIGxlbmd0aCBudW1iZXIgb2YgVCBpdGVt
cyB0byBjb3B5IHdoZW4gY2xvbmluZywKKyAgICAgKiAgICAgICAgYW5kIGFycmF5IGNhcGFjaXR5
IG9mIHRoZSBjbG9uZSB3aGVuIGNsb25pbmcKKyAgICAgKiBAcGFyYW0gcmVzdWx0Q2FwYWNpdHkg
d2lsbCBiZSBzZXQgdG8gdGhlIHJldHVybmVkIGFycmF5J3MgY2FwYWNpdHkgKG91dHB1dC1vbmx5
KQorICAgICAqIEByZXR1cm4gdGhlIGhlYWRlciBwb2ludGVyOworICAgICAqICAgICAgICAgY2Fs
bGVyIGJlY29tZXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSBhcnJheQorICAgICAqLwor
ICAgIGlubGluZSBIICpvcnBoYW5PckNsb25lKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90ICZyZXN1
bHRDYXBhY2l0eSk7Citwcml2YXRlOgorICAgIEggKnB0cjsKKyAgICBpbnQzMl90IGNhcGFjaXR5
OworICAgIFVCb29sIG5lZWRUb1JlbGVhc2U7CisgICAgLy8gc3RhY2tIZWFkZXIgbXVzdCBwcmVj
ZWRlIHN0YWNrQXJyYXkgaW1tZWRpYXRlbHkuCisgICAgSCBzdGFja0hlYWRlcjsKKyAgICBUIHN0
YWNrQXJyYXlbc3RhY2tDYXBhY2l0eV07CisgICAgdm9pZCByZWxlYXNlTWVtb3J5KCkgeworICAg
ICAgICBpZihuZWVkVG9SZWxlYXNlKSB7CisgICAgICAgICAgICB1cHJ2X2ZyZWUocHRyKTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICAvKiBObyBjb21wYXJpc29uIG9wZXJhdG9ycyB3aXRoIG90aGVy
IE1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSdzLiAqLworICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1cm4gRkFMU0U7fQor
ICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgJiAvKm90
aGVyKi8pIHtyZXR1cm4gVFJVRTt9CisgICAgLyogTm8gb3duZXJzaGlwIHRyYW5zZmVyOiBObyBj
b3B5IGNvbnN0cnVjdG9yLCBubyBhc3NpZ25tZW50IG9wZXJhdG9yLiAqLworICAgIE1heWJlU3Rh
Y2tIZWFkZXJBbmRBcnJheShjb25zdCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgJiAvKm90aGVy
Ki8pIHt9CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgTWF5YmVTdGFja0hlYWRlckFuZEFycmF5
ICYgLypvdGhlciovKSB7fQorCisgICAgLy8gTm8gaGVhcCBhbGxvY2F0aW9uLiBVc2Ugb25seSBv
biB0aGUgc3RhY2suCisgICAgLy8gICAoRGVjbGFyaW5nIHRoZXNlIGZ1bmN0aW9ucyBwcml2YXRl
IHRyaWdnZXJzIGEgY2FzY2FkZSBvZiBwcm9ibGVtczsKKyAgICAvLyAgICBzZWUgdGhlIE1heWJl
U3RhY2tBcnJheSBjbGFzcyBmb3IgZGV0YWlscy4pCisgICAgLy8gc3RhdGljIHZvaWQgKiBVX0VY
UE9SVDIgb3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKTsgCisgICAgLy8gc3RhdGljIHZvaWQgKiBV
X0VYUE9SVDIgb3BlcmF0b3IgbmV3W10oc2l6ZV90IHNpemUpOworI2lmIFVfSEFWRV9QTEFDRU1F
TlRfTkVXCisgICAgLy8gc3RhdGljIHZvaWQgKiBVX0VYUE9SVDIgb3BlcmF0b3IgbmV3KHNpemVf
dCwgdm9pZCAqcHRyKTsKKyNlbmRpZgorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgSCwgdHlwZW5h
bWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5PgoraW5saW5lIEggKk1heWJlU3RhY2tIZWFkZXJB
bmRBcnJheTxILCBULCBzdGFja0NhcGFjaXR5Pjo6cmVzaXplKGludDMyX3QgbmV3Q2FwYWNpdHks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50MzJfdCBsZW5ndGgpIHsKKyAgICBpZihuZXdDYXBhY2l0eT49MCkgeworI2lm
IFVfREVCVUcgJiYgZGVmaW5lZChVUFJWX01BTExPQ19DT1VOVCkKKyAgICAgIDo6ZnByaW50Zig6
OnN0ZGVyciwiTWF5YmVTdGFja0hlYWRlckFuZEFycmF5IGFsbG9jICVkICsgJWQgKiAldWxcbiIs
IHNpemVvZihIKSxuZXdDYXBhY2l0eSxzaXplb2YoVCkpOworI2VuZGlmCisgICAgICAgIEggKnA9
KEggKil1cHJ2X21hbGxvYyhzaXplb2YoSCkrbmV3Q2FwYWNpdHkqc2l6ZW9mKFQpKTsKKyAgICAg
ICAgaWYocCE9TlVMTCkgeworICAgICAgICAgICAgaWYobGVuZ3RoPDApIHsKKyAgICAgICAgICAg
ICAgICBsZW5ndGg9MDsKKyAgICAgICAgICAgIH0gZWxzZSBpZihsZW5ndGg+MCkgeworICAgICAg
ICAgICAgICAgIGlmKGxlbmd0aD5jYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBsZW5n
dGg9Y2FwYWNpdHk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGxlbmd0
aD5uZXdDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBsZW5ndGg9bmV3Q2FwYWNpdHk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdXBydl9tZW1j
cHkocCwgcHRyLCBzaXplb2YoSCkrbGVuZ3RoKnNpemVvZihUKSk7CisgICAgICAgICAgICByZWxl
YXNlTWVtb3J5KCk7CisgICAgICAgICAgICBwdHI9cDsKKyAgICAgICAgICAgIGNhcGFjaXR5PW5l
d0NhcGFjaXR5OworICAgICAgICAgICAgbmVlZFRvUmVsZWFzZT1UUlVFOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiBwOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAg
IH0KK30KKwordGVtcGxhdGU8dHlwZW5hbWUgSCwgdHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0Nh
cGFjaXR5PgoraW5saW5lIEggKk1heWJlU3RhY2tIZWFkZXJBbmRBcnJheTxILCBULCBzdGFja0Nh
cGFjaXR5Pjo6b3JwaGFuT3JDbG9uZShpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
MzJfdCAmcmVzdWx0Q2FwYWNpdHkpIHsKKyAgICBIICpwOworICAgIGlmKG5lZWRUb1JlbGVhc2Up
IHsKKyAgICAgICAgcD1wdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYobGVuZ3RoPDApIHsK
KyAgICAgICAgICAgIGxlbmd0aD0wOworICAgICAgICB9IGVsc2UgaWYobGVuZ3RoPmNhcGFjaXR5
KSB7CisgICAgICAgICAgICBsZW5ndGg9Y2FwYWNpdHk7CisgICAgICAgIH0KKyNpZiBVX0RFQlVH
ICYmIGRlZmluZWQoVVBSVl9NQUxMT0NfQ09VTlQpCisgICAgICA6OmZwcmludGYoOjpzdGRlcnIs
Ik1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSAob3JwaGFuKSBhbGxvYyAldWwgKyAlZCAqICVsdVxu
Iiwgc2l6ZW9mKEgpLGxlbmd0aCxzaXplb2YoVCkpOworI2VuZGlmCisgICAgICAgIHA9KEggKil1
cHJ2X21hbGxvYyhzaXplb2YoSCkrbGVuZ3RoKnNpemVvZihUKSk7CisgICAgICAgIGlmKHA9PU5V
TEwpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIHVwcnZf
bWVtY3B5KHAsIHB0ciwgc2l6ZW9mKEgpK2xlbmd0aCpzaXplb2YoVCkpOworICAgIH0KKyAgICBy
ZXN1bHRDYXBhY2l0eT1sZW5ndGg7CisgICAgcHRyPSZzdGFja0hlYWRlcjsKKyAgICBjYXBhY2l0
eT1zdGFja0NhcGFjaXR5OworICAgIG5lZWRUb1JlbGVhc2U9RkFMU0U7CisgICAgcmV0dXJuIHA7
Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYgIC8qIF9fY3BsdXNwbHVzICovCisjZW5k
aWYgIC8qIENNRU1PUllfSCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL2dlbmJyay9jc3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvZ2VuYnJrL2NzdHJpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGI2OGZmYWJiMjZiY2I5MTU2MjZl
ZDRkMTE1ZTk0MmQzN2JiNzcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL2dlbmJyay9jc3RyaW5nLmgKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMiwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMu
ICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZp
bGUgQ1NUUklORy5ICisqCisqIENvbnRhaW5zIENTdHJpbmcgaW50ZXJmYWNlCisqCisqIEBhdXRo
b3IgICAgICAgSGVsZW5hIFNoaWgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAg
RGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICA2LzE3Lzk4ICAgICBoc2hp
aCAgICAgICBDcmVhdGVkLgorKiAgMDUvMDMvOTkgICAgIHN0ZXBoZW4gICAgIENoYW5nZWQgZnJv
bSBmdW5jdGlvbnMgdG8gbWFjcm9zLgorKiAgMDYvMTQvOTkgICAgIHN0ZXBoZW4gICAgIEFkZGVk
IGljdV9zdHJuY2F0LCBpY3Vfc3RybmNtcCwgaWN1X3RvbG93ZXIKKyoKKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorKi8KKworI2lmbmRlZiBDU1RSSU5HX0gKKyNkZWZpbmUgQ1NUUklOR19IIDEKKwor
I2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAiY21lbW9yeS5oIgorI2luY2x1
ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisK
KyNkZWZpbmUgdXBydl9zdHJjcHkoZHN0LCBzcmMpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSAg
c3RyY3B5KGRzdCwgc3JjKQorI2RlZmluZSB1cHJ2X3N0cmxlbihzdHIpIFVfU1RBTkRBUkRfQ1BQ
X05BTUVTUEFDRSBzdHJsZW4oc3RyKQorI2RlZmluZSB1cHJ2X3N0cmNtcChzMSwgczIpIFVfU1RB
TkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJjbXAoczEsIHMyKQorI2RlZmluZSB1cHJ2X3N0cmNhdChk
c3QsIHNyYykgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cmNhdChkc3QsIHNyYykKKyNkZWZp
bmUgdXBydl9zdHJjaHIocywgYykgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cmNocihzLCBj
KQorI2RlZmluZSB1cHJ2X3N0cnN0cihzLCBjKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3Ry
c3RyKHMsIGMpCisjZGVmaW5lIHVwcnZfc3RycmNocihzLCBjKSBVX1NUQU5EQVJEX0NQUF9OQU1F
U1BBQ0Ugc3RycmNocihzLCBjKQorCisjaWYgVV9ERUJVRworCisjZGVmaW5lIHVwcnZfc3RybmNw
eShkc3QsIHNyYywgc2l6ZSkgKCBcCisgICAgdXBydl9jaGVja1ZhbGlkTWVtb3J5KHNyYywgMSks
IFwKKyAgICBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RybmNweShkc3QsIHNyYywgc2l6ZSkp
CisjZGVmaW5lIHVwcnZfc3RybmNtcChzMSwgczIsIG4pICggXAorICAgIHVwcnZfY2hlY2tWYWxp
ZE1lbW9yeShzMSwgMSksIFwKKyAgICB1cHJ2X2NoZWNrVmFsaWRNZW1vcnkoczIsIDEpLCBcCisg
ICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cm5jbXAoczEsIHMyLCBuKSkKKyNkZWZpbmUg
dXBydl9zdHJuY2F0KGRzdCwgc3JjLCBuKSAoIFwKKyAgICB1cHJ2X2NoZWNrVmFsaWRNZW1vcnko
c3JjLCAxKSwgXAorICAgIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJuY2F0KGRzdCwgc3Jj
LCBuKSkKKworI2Vsc2UKKworI2RlZmluZSB1cHJ2X3N0cm5jcHkoZHN0LCBzcmMsIHNpemUpIFVf
U1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJuY3B5KGRzdCwgc3JjLCBzaXplKQorI2RlZmluZSB1
cHJ2X3N0cm5jbXAoczEsIHMyLCBuKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RybmNtcChz
MSwgczIsIG4pCisjZGVmaW5lIHVwcnZfc3RybmNhdChkc3QsIHNyYywgbikgVV9TVEFOREFSRF9D
UFBfTkFNRVNQQUNFIHN0cm5jYXQoZHN0LCBzcmMsIG4pCisKKyNlbmRpZiAgLyogVV9ERUJVRyAq
LworCisvKioKKyAqIElzIGMgYW4gQVNDSUktcmVwZXJ0b2lyZSBsZXR0ZXIgYS16IG9yIEEtWj8K
KyAqIE5vdGU6IFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBzcGVjaWZpYyB0byB3aGV0aGVyIElDVSBp
cyBjb21waWxlZCBmb3IKKyAqIGFuIEFTQ0lJLWJhc2VkIG9yIEVCQ0RJQy1iYXNlZCBtYWNoaW5l
LiBUaGVyZSBqdXN0IGRvZXMgbm90IHNlZW0gdG8gYmUgYSBiZXR0ZXIgbmFtZSBmb3IgdGhpcy4K
KyAqLworVV9DQVBJIFVCb29sIFVfRVhQT1JUMgordXBydl9pc0FTQ0lJTGV0dGVyKGNoYXIgYyk7
CisKK1VfQ0FQSSBjaGFyIFVfRVhQT1JUMgordXBydl90b3VwcGVyKGNoYXIgYyk7CisKKworVV9D
QVBJIGNoYXIgVV9FWFBPUlQyCit1cHJ2X2FzY2lpdG9sb3dlcihjaGFyIGMpOworCitVX0NBUEkg
Y2hhciBVX0VYUE9SVDIKK3VwcnZfZWJjZGljdG9sb3dlcihjaGFyIGMpOworCisjaWYgVV9DSEFS
U0VUX0ZBTUlMWT09VV9BU0NJSV9GQU1JTFkKKyMgICBkZWZpbmUgdXBydl90b2xvd2VyIHVwcnZf
YXNjaWl0b2xvd2VyCisjZWxpZiBVX0NIQVJTRVRfRkFNSUxZPT1VX0VCQ0RJQ19GQU1JTFkKKyMg
ICBkZWZpbmUgdXBydl90b2xvd2VyIHVwcnZfZWJjZGljdG9sb3dlcgorI2Vsc2UKKyMgICBlcnJv
ciBVX0NIQVJTRVRfRkFNSUxZIGlzIG5vdCB2YWxpZAorI2VuZGlmCisKKyNkZWZpbmUgdXBydl9z
dHJ0b2Qoc291cmNlLCBlbmQpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJ0b2Qoc291cmNl
LCBlbmQpCisjZGVmaW5lIHVwcnZfc3RydG91bChzdHIsIGVuZCwgYmFzZSkgVV9TVEFOREFSRF9D
UFBfTkFNRVNQQUNFIHN0cnRvdWwoc3RyLCBlbmQsIGJhc2UpCisjZGVmaW5lIHVwcnZfc3RydG9s
KHN0ciwgZW5kLCBiYXNlKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RydG9sKHN0ciwgZW5k
LCBiYXNlKQorCisvKiBDb252ZXJzaW9uIGZyb20gYSBkaWdpdCB0byB0aGUgY2hhcmFjdGVyIHdp
dGggcmFkaXggYmFzZSBmcm9tIDItMTkgKi8KKy8qIE1heSBuZWVkIHRvIHVzZSBVX1VQUEVSX09S
RElOQUwqLworI2RlZmluZSBUX0NTdHJpbmdfaXRvc09mZnNldChhKSAoKGEpPD05PygnMCcrKGEp
KTooJ0EnKyhhKS0xMCkpCisKK1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK3VwcnZfc3RyZHVwKGNv
bnN0IGNoYXIgKnNyYyk7CisKKy8qKgorICogdXBydl9tYWxsb2MgbisxIGJ5dGVzLCBhbmQgY29w
eSBuIGJ5dGVzIGZyb20gc3JjIGludG8gdGhlIG5ldyBzdHJpbmcuCisgKiBUZXJtaW5hdGUgd2l0
aCBhIG51bGwgYXQgb2Zmc2V0IG4uICAgSWYgbiBpcyAtMSwgd29ya3MgbGlrZSB1cHJ2X3N0cmR1
cAorICogQHBhcmFtIHNyYworICogQHBhcmFtIG4gbGVuZ3RoIG9mIHRoZSBpbnB1dCBzdHJpbmcs
IG5vdCBpbmNsdWRpbmcgbnVsbC4KKyAqIEByZXR1cm4gbmV3IHN0cmluZyAob3duZWQgYnkgY2Fs
bGVyLCB1c2UgdXBydl9mcmVlIHRvIGZyZWUpLgorICogQGludGVybmFsCisgKi8KK1VfQ0FQSSBj
aGFyKiBVX0VYUE9SVDIKK3VwcnZfc3RybmR1cChjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgbik7
CisKK1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK1RfQ1N0cmluZ190b0xvd2VyQ2FzZShjaGFyKiBz
dHIpOworCitVX0NBUEkgY2hhciogVV9FWFBPUlQyCitUX0NTdHJpbmdfdG9VcHBlckNhc2UoY2hh
ciogc3RyKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0NTdHJpbmdfaW50ZWdlclRv
U3RyaW5nKGNoYXIgKmJ1ZmZlciwgaW50MzJfdCBuLCBpbnQzMl90IHJhZGl4KTsKKworVV9DQVBJ
IGludDMyX3QgVV9FWFBPUlQyCitUX0NTdHJpbmdfaW50NjRUb1N0cmluZyhjaGFyICpidWZmZXIs
IGludDY0X3QgbiwgdWludDMyX3QgcmFkaXgpOworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIK
K1RfQ1N0cmluZ19zdHJpbmdUb0ludGVnZXIoY29uc3QgY2hhciAqaW50ZWdlclN0cmluZywgaW50
MzJfdCByYWRpeCk7CisKKy8qKgorICogQ2FzZS1pbnNlbnNpdGl2ZSwgbGFuZ3VhZ2UtaW5kZXBl
bmRlbnQgc3RyaW5nIGNvbXBhcmlzb24KKyAqIGxpbWl0ZWQgdG8gdGhlIEFTQ0lJIGNoYXJhY3Rl
ciByZXBlcnRvaXJlLgorICovCitVX0NBUEkgaW50IFVfRVhQT1JUMgordXBydl9zdHJpY21wKGNv
bnN0IGNoYXIgKnN0cjEsIGNvbnN0IGNoYXIgKnN0cjIpOworCisvKioKKyAqIENhc2UtaW5zZW5z
aXRpdmUsIGxhbmd1YWdlLWluZGVwZW5kZW50IHN0cmluZyBjb21wYXJpc29uCisgKiBsaW1pdGVk
IHRvIHRoZSBBU0NJSSBjaGFyYWN0ZXIgcmVwZXJ0b2lyZS4KKyAqLworVV9DQVBJIGludCBVX0VY
UE9SVDIKK3VwcnZfc3RybmljbXAoY29uc3QgY2hhciAqc3RyMSwgY29uc3QgY2hhciAqc3RyMiwg
dWludDMyX3Qgbik7CisKKyNlbmRpZiAvKiAhIENTVFJJTkdfSCAqLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9maWxlc3RybS5jIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9maWxlc3RybS5jCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjczMDk3NDdjNzA1YmQxMzc2NWEzYzViNzFlN2E4YmJkNDgxMTRjYWIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVzdHJtLmMK
QEAgLTAsMCArMSwyMjUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5
cmlnaHQgKEMpIDE5OTctMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqIEZpbGUgRklMRVNUUk0uQworKgorKiBAYXV0aG9yICAgICAg
IEdsZW5uIE1hcmN5CisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAg
ICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgNS84Lzk4ICAgICAgZ20gICAgICAgICAg
Q3JlYXRlZAorKiAgMDMvMDIvOTkgICAgIHN0ZXBoZW4gICAgIFJlb3JkZXJlZCBwYXJhbXMgaW4g
dW5nZXRjIHRvIG1hdGNoIHN0ZGlvCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQg
d29wZW4KKyogICAzLzI5Lzk5ICAgICBoZWxlbmEgICAgICBNZXJnZWQgU3RlcGhlbiBhbmQgQmVy
dHJhbmQncyBjaGFuZ2VzLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaW5jbHVk
ZSAiZmlsZXN0cm0uaCIKKworI2luY2x1ZGUgImNtZW1vcnkuaCIKKworI2luY2x1ZGUgPHN0ZGlv
Lmg+CisKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9vcGVuKGNv
bnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFyKiBtb2RlKQoreworICAgIGlmKGZpbGVuYW1l
ICE9IE5VTEwgJiYgKmZpbGVuYW1lICE9IDAgJiYgbW9kZSAhPSBOVUxMICYmICptb2RlICE9IDAp
IHsKKyAgICAgICAgRklMRSAqZmlsZSA9IGZvcGVuKGZpbGVuYW1lLCBtb2RlKTsKKyAgICAgICAg
cmV0dXJuIChGaWxlU3RyZWFtKilmaWxlOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBO
VUxMOworICAgIH0KK30KKworLyoKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmls
ZVN0cmVhbV93b3Blbihjb25zdCB3Y2hhcl90KiBmaWxlbmFtZSwgY29uc3Qgd2NoYXJfdCogbW9k
ZSkKK3sKKyAgIC8vIFRCRDogX3dmb3BlbiBpcyBiZWxpZXZlZCB0byBiZSBNUy1zcGVjaWZpYz8g
CisjaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisgICAgRklMRSogcmVzdWx0ID0g
X3dmb3BlbihmaWxlbmFtZSwgbW9kZSk7CisgICAgcmV0dXJuIChGaWxlU3RyZWFtKilyZXN1bHQ7
CisjZWxzZQorICAgIHNpemVfdCBmbk1ic1NpemUsIG1kTWJzU2l6ZTsKKyAgICBjaGFyICpmbiwg
Km1kOworICAgIEZJTEUgKnJlc3VsdDsKKworICAgIC8vIGNvbnZlcnQgZnJvbSB3Y2hhcl90IHRv
IGNoYXIgCisgICAgZm5NYnNTaXplID0gd2NzdG9tYnMoTlVMTCwgZmlsZW5hbWUsICgoc2l6ZV90
KS0xKSA+PiAxKTsKKyAgICBmbiA9IChjaGFyKil1cHJ2X21hbGxvYyhmbk1ic1NpemUrMik7Cisg
ICAgd2NzdG9tYnMoZm4sIGZpbGVuYW1lLCBmbk1ic1NpemUpOworICAgIGZuW2ZuTWJzU2l6ZV0g
PSAwOworCisgICAgbWRNYnNTaXplID0gd2NzdG9tYnMoTlVMTCwgbW9kZSwgKChzaXplX3QpLTEp
ID4+IDEpOworICAgIG1kID0gKGNoYXIqKXVwcnZfbWFsbG9jKG1kTWJzU2l6ZSsyKTsKKyAgICB3
Y3N0b21icyhtZCwgbW9kZSwgbWRNYnNTaXplKTsKKyAgICBtZFttZE1ic1NpemVdID0gMDsKKwor
ICAgIHJlc3VsdCA9IGZvcGVuKGZuLCBtZCk7CisgICAgdXBydl9mcmVlKGZuKTsKKyAgICB1cHJ2
X2ZyZWUobWQpOworICAgIHJldHVybiAoRmlsZVN0cmVhbSopcmVzdWx0OworI2VuZGlmCit9Cisq
LworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fY2xvc2UoRmlsZVN0cmVhbSog
ZmlsZVN0cmVhbSkKK3sKKyAgICBpZiAoZmlsZVN0cmVhbSAhPSAwKQorICAgICAgICBmY2xvc2Uo
KEZJTEUqKWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVT
dHJlYW1fZmlsZV9leGlzdHMoY29uc3QgY2hhciogZmlsZW5hbWUpCit7CisgICAgRklMRSogdGVt
cCA9IGZvcGVuKGZpbGVuYW1lLCAiciIpOworICAgIGlmICh0ZW1wKSB7CisgICAgICAgIGZjbG9z
ZSh0ZW1wKTsKKyAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgfSBlbHNlCisgICAgICAgIHJldHVy
biBGQUxTRTsKK30KKworLypzdGF0aWMgY29uc3QgaW50MzJfdCBrRU9GOworY29uc3QgaW50MzJf
dCBGaWxlU3RyZWFtOjprRU9GID0gRU9GOyovCisKKy8qCitVX0NBUEkgRmlsZVN0cmVhbSoKK1Rf
RmlsZVN0cmVhbV90bXBmaWxlKCkKK3sKKyAgICBGSUxFKiBmaWxlID0gdG1wZmlsZSgpOworICAg
IHJldHVybiAoRmlsZVN0cmVhbSopZmlsZTsKK30KKyovCisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQ
T1JUMgorVF9GaWxlU3RyZWFtX3JlYWQoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgdm9pZCogYWRk
ciwgaW50MzJfdCBsZW4pCit7CisgICAgcmV0dXJuIGZyZWFkKGFkZHIsIDEsIGxlbiwgKEZJTEUq
KWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVh
bV93cml0ZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCB2b2lkKiBhZGRyLCBpbnQzMl90
IGxlbikKK3sKKworICAgIHJldHVybiBmd3JpdGUoYWRkciwgMSwgbGVuLCAoRklMRSopZmlsZVN0
cmVhbSk7Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3Jld2luZChG
aWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIHJld2luZCgoRklMRSopZmlsZVN0cmVhbSk7
Cit9CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3B1dGMoRmlsZVN0
cmVhbSogZmlsZVN0cmVhbSwgaW50MzJfdCBjaCkKK3sKKyAgICBpbnQzMl90IGMgPSBmcHV0Yyhj
aCwgKEZJTEUqKWZpbGVTdHJlYW0pOworICAgIHJldHVybiBjOworfQorCitVX0NBUEkgaW50IFVf
RVhQT1JUMgorVF9GaWxlU3RyZWFtX2dldGMoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSkKK3sKKyAg
ICBpbnQgYyA9IGZnZXRjKChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4gYzsKK30KKwor
VV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fdW5nZXRjKGludDMyX3QgY2gs
IEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisKKyAgICBpbnQzMl90IGMgPSB1bmdldGMoY2gs
IChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4gYzsKK30KKworVV9DQVBJIGludDMyX3Qg
VV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcGVlayhGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKQorewor
ICAgIGludDMyX3QgYyA9IGZnZXRjKChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4gdW5n
ZXRjKGMsIChGSUxFKilmaWxlU3RyZWFtKTsKK30KKworVV9DQVBJIGNoYXIqIFVfRVhQT1JUMgor
VF9GaWxlU3RyZWFtX3JlYWRMaW5lKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0sIGNoYXIqIGJ1ZmZl
ciwgaW50MzJfdCBsZW5ndGgpCit7CisgICAgcmV0dXJuIGZnZXRzKGJ1ZmZlciwgbGVuZ3RoLCAo
RklMRSopZmlsZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxl
U3RyZWFtX3dyaXRlTGluZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCBjaGFyKiBidWZm
ZXIpCit7CisgICAgcmV0dXJuIGZwdXRzKGJ1ZmZlciwgKEZJTEUqKWZpbGVTdHJlYW0pOworfQor
CitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9zaXplKEZpbGVTdHJlYW0q
IGZpbGVTdHJlYW0pCit7CisgICAgaW50MzJfdCBzYXZlZFBvcyA9IGZ0ZWxsKChGSUxFKilmaWxl
U3RyZWFtKTsKKyAgICBpbnQzMl90IHNpemUgPSAwOworCisgICAgLypDaGFuZ2VzIGJ5IEJlcnRy
YW5kIEEuIEQuIGRvZXNuJ3QgYWZmZWN0IHRoZSBjdXJyZW50IHBvc2l0aW9uCisgICAgZ29lcyB0
byB0aGUgZW5kIG9mIHRoZSBmaWxlIGJlZm9yZSBmdGVsbCovCisgICAgZnNlZWsoKEZJTEUqKWZp
bGVTdHJlYW0sIDAsIFNFRUtfRU5EKTsKKyAgICBzaXplID0gKGludDMyX3QpZnRlbGwoKEZJTEUq
KWZpbGVTdHJlYW0pOworICAgIGZzZWVrKChGSUxFKilmaWxlU3RyZWFtLCBzYXZlZFBvcywgU0VF
S19TRVQpOworICAgIHJldHVybiBzaXplOworfQorCitVX0NBUEkgaW50IFVfRVhQT1JUMgorVF9G
aWxlU3RyZWFtX2VvZihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIHJldHVybiBmZW9m
KChGSUxFKilmaWxlU3RyZWFtKTsKK30KKworLyoKKyBXYXJuaW5nIAorIFRoaXMgZnVuY3Rpb24g
bWF5IG5vdCB3b3JrIGNvbnNpc3RlbnRseSBvbiBhbGwgcGxhdGZvcm1zCisgKGUuZy4gSFAtVVgs
IEZyZWVCU0QgYW5kIE1hY09TWCBkb24ndCByZXR1cm4gYW4gZXJyb3Igd2hlbgorIHB1dGMgaXMg
dXNlZCBvbiBhIGZpbGUgb3BlbmVkIGFzIHJlYWRvbmx5KQorKi8KK1VfQ0FQSSBpbnQgVV9FWFBP
UlQyCitUX0ZpbGVTdHJlYW1fZXJyb3IoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSkKK3sKKyAgICBy
ZXR1cm4gKGZpbGVTdHJlYW0gPT0gMCB8fCBmZXJyb3IoKEZJTEUqKWZpbGVTdHJlYW0pKTsKK30K
KworLyogVGhpcyBmdW5jdGlvbiBkb2Vzbid0IHdvcmsuICovCisvKiBmb3JjZSB0aGUgc3RyZWFt
IHRvIHNldCBpdHMgZXJyb3IgZmxhZyovCisvKlVfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxl
U3RyZWFtX3NldEVycm9yKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisgICAgZnNlZWsoKEZJ
TEUqKWZpbGVTdHJlYW0sIDk5OTk5LCBTRUVLX1NFVCk7Cit9CisqLworCitVX0NBUEkgRmlsZVN0
cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3RkaW4odm9pZCkKK3sKKyAgICByZXR1cm4g
KEZpbGVTdHJlYW0qKXN0ZGluOworfQorCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitU
X0ZpbGVTdHJlYW1fc3Rkb3V0KHZvaWQpCit7CisgICAgcmV0dXJuIChGaWxlU3RyZWFtKilzdGRv
dXQ7Cit9CisKKworVV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3N0
ZGVycih2b2lkKQoreworICAgIHJldHVybiAoRmlsZVN0cmVhbSopc3RkZXJyOworfQorCitVX0NB
UEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcmVtb3ZlKGNvbnN0IGNoYXIqIGZpbGVO
YW1lKXsKKyAgICByZXR1cm4gKHJlbW92ZShmaWxlTmFtZSkgPT0gMCk7Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVzdHJtLmggYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVzdHJtLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGVlYmE5OGI2NjFmZDYxNzgxMTFiMGJlMDllOTMxOWViOWYxMWEwMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvZmlsZXN0
cm0uaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAg
IENvcHlyaWdodCAoQykgMTk5Ny0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBGSUxFU1RSTS5ICisqCisqIENvbnRhaW5z
IEZpbGVTdHJlYW0gaW50ZXJmYWNlCisqCisqIEBhdXRob3IgICAgICAgR2xlbm4gTWFyY3kKKyoK
KyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAg
RGVzY3JpcHRpb24KKyogICA1LzgvOTggICAgICBnbSAgICAgICAgICBDcmVhdGVkLgorKiAgMDMv
MDIvOTkgICAgIHN0ZXBoZW4gICAgIFJlb3JkZXJlZCBwYXJhbXMgaW4gdW5nZXRjIHRvIG1hdGNo
IHN0ZGlvCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgd29wZW4KKyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBGSUxFU1RSTV9ICisjZGVmaW5lIEZJTEVT
VFJNX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKK3R5cGVkZWYgc3RydWN0IF9G
aWxlU3RyZWFtIEZpbGVTdHJlYW07CisKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1Rf
RmlsZVN0cmVhbV9vcGVuKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFyKiBtb2RlKTsK
KworLyoKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV93b3Blbihj
b25zdCB3Y2hhcl90KiBmaWxlbmFtZSwgY29uc3Qgd2NoYXJfdCogbW9kZSk7CisqLworVV9DQVBJ
IHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fY2xvc2UoRmlsZVN0cmVhbSogZmlsZVN0cmVh
bSk7CisKK1VfQ0FQSSBVQm9vbCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9maWxlX2V4aXN0cyhj
b25zdCBjaGFyKiBmaWxlbmFtZSk7CisKKy8qCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQy
CitUX0ZpbGVTdHJlYW1fdG1wZmlsZSh2b2lkKTsKKyovCisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQ
T1JUMgorVF9GaWxlU3RyZWFtX3JlYWQoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgdm9pZCogYWRk
ciwgaW50MzJfdCBsZW4pOworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVh
bV93cml0ZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCB2b2lkKiBhZGRyLCBpbnQzMl90
IGxlbik7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3Jld2luZChGaWxl
U3RyZWFtKiBmaWxlU3RyZWFtKTsKKworLypBZGRlZCBieSBCZXJ0cmFuZCBBLiBELiAqLworVV9D
QVBJIGNoYXIgKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9yZWFkTGluZShGaWxlU3RyZWFtKiBm
aWxlU3RyZWFtLCBjaGFyKiBidWZmZXIsIGludDMyX3QgbGVuZ3RoKTsKKworVV9DQVBJIGludDMy
X3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fd3JpdGVMaW5lKEZpbGVTdHJlYW0qIGZpbGVTdHJl
YW0sIGNvbnN0IGNoYXIqIGJ1ZmZlcik7CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9G
aWxlU3RyZWFtX3B1dGMoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgaW50MzJfdCBjaCk7CisKK1Vf
Q0FQSSBpbnQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fZ2V0YyhGaWxlU3RyZWFtKiBmaWxlU3Ry
ZWFtKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fdW5nZXRjKGlu
dDMyX3QgY2gsIEZpbGVTdHJlYW0gKmZpbGVTdHJlYW0pOworCitVX0NBUEkgaW50MzJfdCBVX0VY
UE9SVDIKK1RfRmlsZVN0cmVhbV9wZWVrKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pOworCitVX0NB
UEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9zaXplKEZpbGVTdHJlYW0qIGZpbGVT
dHJlYW0pOworCitVX0NBUEkgaW50IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX2VvZihGaWxlU3Ry
ZWFtKiBmaWxlU3RyZWFtKTsKKworVV9DQVBJIGludCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9l
cnJvcihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKworLyoKK1VfQ0FQSSB2b2lkIFVfRVhQT1JU
MgorVF9GaWxlU3RyZWFtX3NldEVycm9yKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pOworKi8KKwor
VV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3N0ZGluKHZvaWQpOwor
CitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3Rkb3V0KHZvaWQp
OworCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3RkZXJyKHZv
aWQpOworCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcmVtb3ZlKGNvbnN0
IGNoYXIqIGZpbGVOYW1lKTsKKworI2VuZGlmIC8qIF9GSUxFU1RSTSovCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2dlbmJyay5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2dlbmJyay5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzJjNmNmZmU3YjUyOTZkZTg2NzhlZmFlMDRiNDc1OTc0MDhmNmEwNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvZ2VuYnJrLmNw
cApAQCAtMCwwICsxLDM0NiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMp
IDIwMDItMjAwOSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0
aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgor
KiBGaWxlIGdlbmJyay5jCisqLworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICBUb29sIGZvciBn
ZW5lcmF0aW5nIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZGF0YSBmaWxlcyAoLmJyayBmaWxlcyku
CisvLyAgIC5icmsgZmlsZXMgY29udGFpbiB0aGUgcHJlY29tcGlsZWQgcnVsZXMgZm9yIHN0YW5k
YXJkIHR5cGVzCisvLyAgIG9mIGl0ZXJhdG9ycyAtIHdvcmQsIGxpbmUsIHNlbnRlbmNlLCBldGMu
CisvLworLy8gICBVc2FnZTogIGdlbmJyayBbb3B0aW9uc10gLXIgcnVsZS1maWxlLnR4dCAgLW8g
b3V0cHV0LWZpbGUuYnJrCisvLworLy8gICAgICAgb3B0aW9uczogICAtdiAgICAgICAgIHZlcmJv
c2UKKy8vICAgICAgICAgICAgICAgICAgLT8gb3IgLWggICBoZWxwCisvLworLy8gICBUaGUgaW5w
dXQgcnVsZSBmaWxlIGlzIGEgcGxhaW4gdGV4dCBmaWxlIGNvbnRhaW5pbmcgYnJlYWsgcnVsZXMK
Ky8vICAgIGluIHRoZSBpbnB1dCBmb3JtYXQgYWNjZXB0ZWQgYnkgUnVsZUJhc2VkQnJlYWtJdGVy
YXRvcnMuICBUaGUKKy8vICAgIGZpbGUgY2FuIGJlIGVuY29kZWQgYXMgdXRmLTgsIG9yIHV0Zi0x
NiAoZWl0aGVyIGVuZGlhbiksIG9yCisvLyAgICBpbiB0aGUgZGVmYXVsdCBjb2RlIHBhZ2UgKHBs
YXRmb3JtIGRlcGVuZGVudC4pLiAgdXRmIGVuY29kZWQKKy8vICAgIGZpbGVzIG11c3QgaW5jbHVk
ZSBhIEJPTS4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdWNudi5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgi
CisjaW5jbHVkZSAidW5pY29kZS9yYmJpLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2xlYW4uaCIK
KyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisjaW5jbHVkZSAidW5pY29kZS9wdXRpbC5oIgor
CisjaW5jbHVkZSAidW9wdGlvbnMuaCIKKyNpbmNsdWRlICJ1bmV3ZGF0YS5oIgorI2luY2x1ZGUg
InVjbW5kYXRhLmgiCisjaW5jbHVkZSAicmJiaWRhdGEuaCIKKyNpbmNsdWRlICJjbWVtb3J5Lmgi
CisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0
cmluZy5oPgorCitVX05BTUVTUEFDRV9VU0UKKworc3RhdGljIGNoYXIgKnByb2dOYW1lOworc3Rh
dGljIFVPcHRpb24gb3B0aW9uc1tdPXsKKyAgICBVT1BUSU9OX0hFTFBfSCwgICAgICAgICAgICAg
LyogMCAqLworICAgIFVPUFRJT05fSEVMUF9RVUVTVElPTl9NQVJLLCAvKiAxICovCisgICAgVU9Q
VElPTl9WRVJCT1NFLCAgICAgICAgICAgIC8qIDIgKi8KKyAgICB7ICJydWxlcyIsIE5VTEwsIE5V
TEwsIE5VTEwsICdyJywgVU9QVF9SRVFVSVJFU19BUkcsIDAgfSwgICAvKiAzICovCisgICAgeyAi
b3V0IiwgICBOVUxMLCBOVUxMLCBOVUxMLCAnbycsIFVPUFRfUkVRVUlSRVNfQVJHLCAwIH0sICAg
LyogNCAqLworICAgIFVPUFRJT05fSUNVREFUQURJUiwgICAgICAgICAvKiA1ICovCisgICAgVU9Q
VElPTl9ERVNURElSLCAgICAgICAgICAgIC8qIDYgKi8KKyAgICBVT1BUSU9OX0NPUFlSSUdIVCwg
ICAgICAgICAgLyogNyAqLworfTsKKwordm9pZCB1c2FnZUFuZERpZShpbnQgcmV0Q29kZSkgewor
ICAgICAgICBwcmludGYoIlVzYWdlOiAlcyBbLXZdIFstb3B0aW9uc10gLXIgcnVsZS1maWxlIC1v
IG91dHB1dC1maWxlXG4iLCBwcm9nTmFtZSk7CisgICAgICAgIHByaW50ZigiXHRSZWFkIGluIGJy
ZWFrIGl0ZXJhdGlvbiBydWxlcyB0ZXh0IGFuZCB3cml0ZSBvdXQgdGhlIGJpbmFyeSBkYXRhXG4i
CisgICAgICAgICAgICAib3B0aW9uczpcbiIKKyAgICAgICAgICAgICJcdC1oIG9yIC0/IG9yIC0t
aGVscCAgdGhpcyB1c2FnZSB0ZXh0XG4iCisgICAgICAgICAgICAiXHQtViBvciAtLXZlcnNpb24g
ICAgIHNob3cgYSB2ZXJzaW9uIG1lc3NhZ2VcbiIKKyAgICAgICAgICAgICJcdC1jIG9yIC0tY29w
eXJpZ2h0ICAgaW5jbHVkZSBhIGNvcHlyaWdodCBub3RpY2VcbiIKKyAgICAgICAgICAgICJcdC12
IG9yIC0tdmVyYm9zZSAgICAgdHVybiBvbiB2ZXJib3NlIG91dHB1dFxuIgorICAgICAgICAgICAg
Ilx0LWkgb3IgLS1pY3VkYXRhZGlyICBkaXJlY3RvcnkgZm9yIGxvY2F0aW5nIGFueSBuZWVkZWQg
aW50ZXJtZWRpYXRlIGRhdGEgZmlsZXMsXG4iCisgICAgICAgICAgICAiXHQgICAgICAgICAgICAg
ICAgICAgIGZvbGxvd2VkIGJ5IHBhdGgsIGRlZmF1bHRzIHRvICVzXG4iCisgICAgICAgICAgICAi
XHQtZCBvciAtLWRlc3RkaXIgICAgIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSwgZm9sbG93ZWQgYnkg
dGhlIHBhdGhcbiIsCisgICAgICAgICAgICB1X2dldERhdGFEaXJlY3RvcnkoKSk7CisgICAgICAg
IGV4aXQgKHJldENvZGUpOworfQorCisKKyNpZiBVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiB8
fCBVQ09ORklHX05PX0ZJTEVfSU8KKworLyogZHVtbXkgVURhdGFJbmZvIGNmLiB1ZGF0YS5oICov
CitzdGF0aWMgVURhdGFJbmZvIGR1bW15RGF0YUluZm8gPSB7CisgICAgc2l6ZW9mKFVEYXRhSW5m
byksCisgICAgMCwKKworICAgIFVfSVNfQklHX0VORElBTiwKKyAgICBVX0NIQVJTRVRfRkFNSUxZ
LAorICAgIFVfU0laRU9GX1VDSEFSLAorICAgIDAsCisKKyAgICB7IDAsIDAsIDAsIDAgfSwgICAg
ICAgICAgICAgICAgIC8qIGR1bW15IGRhdGFGb3JtYXQgKi8KKyAgICB7IDAsIDAsIDAsIDAgfSwg
ICAgICAgICAgICAgICAgIC8qIGR1bW15IGZvcm1hdFZlcnNpb24gKi8KKyAgICB7IDAsIDAsIDAs
IDAgfSAgICAgICAgICAgICAgICAgIC8qIGR1bW15IGRhdGFWZXJzaW9uICovCit9OworCisjZWxz
ZQorCisvLworLy8gIFNldCB1cCB0aGUgSUNVIGRhdGEgaGVhZGVyLCBkZWZpbmVkIGluIHVjbW5k
YXRhLmgKKy8vCitEYXRhSGVhZGVyIGRoID17CisgICAge3NpemVvZihEYXRhSGVhZGVyKSwgICAg
ICAgICAgIC8vIFN0cnVjdCBNYXBwZWREYXRhCisgICAgICAgIDB4ZGEsCisgICAgICAgIDB4Mjd9
LAorCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdHJ1Y3QgVURhdGFJ
bmZvCisgICAgICAgIHNpemVvZihVRGF0YUluZm8pLCAgICAgICAgICAvLyAgICAgc2l6ZQorICAg
ICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIHJlc2VydmVkCisgICAgICAg
IFVfSVNfQklHX0VORElBTiwKKyAgICAgICAgVV9DSEFSU0VUX0ZBTUlMWSwKKyAgICAgICAgVV9T
SVpFT0ZfVUNIQVIsCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAg
cmVzZXJ2ZWQKKworICAgIHsgMHg0MiwgMHg3MiwgMHg2YiwgMHgyMCB9LCAgICAgLy8gICAgIGRh
dGFGb3JtYXQ9IkJyayAiCisgICAgeyAweGZmLCAwLCAwLCAwIH0sICAgICAgICAgICAgICAvLyAg
ICAgZm9ybWF0VmVyc2lvbi4gIEZpbGxlZCBpbiBsYXRlciB3aXRoIHZhbHVlcworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICBmcm9tIHRoZSBSQkJJIHJ1bGUgYnVp
bGRlci4gIFRoZSAgdmFsdWVzIGRlY2xhcmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyAgICAgIGhlcmUgc2hvdWxkIG5ldmVyIGFwcGVhciBpbiBhbnkgcmVhbCBSQkJJ
IGRhdGEuCisgICAgICAgIHsgNCwgMSwgMCwgMCB9ICAgICAgICAgICAgICAvLyAgIGRhdGFWZXJz
aW9uIChVbmljb2RlIHZlcnNpb24pCisgICAgfX07CisKKyNlbmRpZgorCisvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKy8vCisvLyAgbWFpbiAgICAgIGZvciBnZW5icmsKKy8vCisvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK2ludCAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICBVRXJyb3JD
b2RlICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgY29uc3QgY2hhciAqcnVsZUZpbGVOYW1l
OworICAgIGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lOworICAgIGNvbnN0IGNoYXIgKm91dERpciA9
IE5VTEw7CisgICAgY29uc3QgY2hhciAqY29weXJpZ2h0ID0gTlVMTDsKKworICAgIC8vCisgICAg
Ly8gUGljayB1cCBhbmQgY2hlY2sgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMsCisgICAgLy8g
ICAgdXNpbmcgdGhlIHN0YW5kYXJkIElDVSB0b29sIHV0aWxzIG9wdGlvbiBoYW5kbGluZy4KKyAg
ICAvLworICAgIFVfTUFJTl9JTklUX0FSR1MoYXJnYywgYXJndik7CisgICAgcHJvZ05hbWUgPSBh
cmd2WzBdOworICAgIGFyZ2M9dV9wYXJzZUFyZ3MoYXJnYywgYXJndiwgc2l6ZW9mKG9wdGlvbnMp
L3NpemVvZihvcHRpb25zWzBdKSwgb3B0aW9ucyk7CisgICAgaWYoYXJnYzwwKSB7CisgICAgICAg
IC8vIFVucmVjb2duaXplZCBvcHRpb24KKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJvciBp
biBjb21tYW5kIGxpbmUgYXJndW1lbnQgXCIlc1wiXG4iLCBhcmd2Wy1hcmdjXSk7CisgICAgICAg
IHVzYWdlQW5kRGllKFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUik7CisgICAgfQorCisgICAgaWYo
b3B0aW9uc1swXS5kb2VzT2NjdXIgfHwgb3B0aW9uc1sxXS5kb2VzT2NjdXIpIHsKKyAgICAgICAg
Ly8gIC0/IG9yIC1oIGZvciBoZWxwLgorICAgICAgICB1c2FnZUFuZERpZSgwKTsKKyAgICB9CisK
KyAgICBpZiAoIShvcHRpb25zWzNdLmRvZXNPY2N1ciAmJiBvcHRpb25zWzRdLmRvZXNPY2N1cikp
IHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJydWxlIGZpbGUgYW5kIG91dHB1dCBmaWxlIG11
c3QgYm90aCBiZSBzcGVjaWZpZWQuXG4iKTsKKyAgICAgICAgdXNhZ2VBbmREaWUoVV9JTExFR0FM
X0FSR1VNRU5UX0VSUk9SKTsKKyAgICB9CisgICAgcnVsZUZpbGVOYW1lID0gb3B0aW9uc1szXS52
YWx1ZTsKKyAgICBvdXRGaWxlTmFtZSAgPSBvcHRpb25zWzRdLnZhbHVlOworCisgICAgaWYgKG9w
dGlvbnNbNV0uZG9lc09jY3VyKSB7CisgICAgICAgIHVfc2V0RGF0YURpcmVjdG9yeShvcHRpb25z
WzVdLnZhbHVlKTsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisKKyAgICAv
KiBDb21iaW5lIHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUgZmlsZSBuYW1lICovCisgICAgaWYob3B0
aW9uc1s2XS5kb2VzT2NjdXIpIHsKKyAgICAgICAgb3V0RGlyID0gb3B0aW9uc1s2XS52YWx1ZTsK
KyAgICB9CisgICAgaWYgKG9wdGlvbnNbN10uZG9lc09jY3VyKSB7CisgICAgICAgIGNvcHlyaWdo
dCA9IFVfQ09QWVJJR0hUX1NUUklORzsKKyAgICB9CisKKyNpZiBVQ09ORklHX05PX0JSRUFLX0lU
RVJBVElPTiB8fCBVQ09ORklHX05PX0ZJTEVfSU8KKworICAgIFVOZXdEYXRhTWVtb3J5ICpwRGF0
YTsKKyAgICBjaGFyIG1zZ1sxMDI0XTsKKworICAgIC8qIHdyaXRlIG1lc3NhZ2Ugd2l0aCBqdXN0
IHRoZSBuYW1lICovCisgICAgc3ByaW50Zihtc2csICJnZW5icmsgd3JpdGVzIGR1bW15ICVzIGJl
Y2F1c2Ugb2YgVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gYW5kL29yIFVDT05GSUdfTk9fRklM
RV9JTywgc2VlIHVjb25maWcuaCIsIG91dEZpbGVOYW1lKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwg
IiVzXG4iLCBtc2cpOworCisgICAgLyogd3JpdGUgdGhlIGR1bW15IGRhdGEgZmlsZSAqLworICAg
IHBEYXRhID0gdWRhdGFfY3JlYXRlKG91dERpciwgTlVMTCwgb3V0RmlsZU5hbWUsICZkdW1teURh
dGFJbmZvLCBOVUxMLCAmc3RhdHVzKTsKKyAgICB1ZGF0YV93cml0ZUJsb2NrKHBEYXRhLCBtc2cs
IHN0cmxlbihtc2cpKTsKKyAgICB1ZGF0YV9maW5pc2gocERhdGEsICZzdGF0dXMpOworICAgIHJl
dHVybiAoaW50KXN0YXR1czsKKworI2Vsc2UKKyAgICAvKiBJbml0aWFsaXplIElDVSAqLworICAg
IHVfaW5pdCgmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAg
ZnByaW50ZihzdGRlcnIsICIlczogY2FuIG5vdCBpbml0aWFsaXplIElDVS4gIHN0YXR1cyA9ICVz
XG4iLAorICAgICAgICAgICAgYXJndlswXSwgdV9lcnJvck5hbWUoc3RhdHVzKSk7CisgICAgICAg
IGV4aXQoMSk7CisgICAgfQorICAgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKworICAgIC8vCisg
ICAgLy8gIFJlYWQgaW4gdGhlIHJ1bGUgc291cmNlIGZpbGUKKyAgICAvLworICAgIGxvbmcgICAg
ICAgIHJlc3VsdDsKKyAgICBsb25nICAgICAgICBydWxlRmlsZVNpemU7CisgICAgRklMRSAgICAg
ICAgKmZpbGU7CisgICAgY2hhciAgICAgICAgKnJ1bGVCdWZmZXJDOworCisgICAgZmlsZSA9IGZv
cGVuKHJ1bGVGaWxlTmFtZSwgInJiIik7CisgICAgaWYoIGZpbGUgPT0gMCApIHsKKyAgICAgICAg
ZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIlxuIiwgcnVsZUZpbGVO
YW1lKTsKKyAgICAgICAgZXhpdCgtMSk7CisgICAgfQorICAgIGZzZWVrKGZpbGUsIDAsIFNFRUtf
RU5EKTsKKyAgICBydWxlRmlsZVNpemUgPSBmdGVsbChmaWxlKTsKKyAgICBmc2VlayhmaWxlLCAw
LCBTRUVLX1NFVCk7CisgICAgcnVsZUJ1ZmZlckMgPSBuZXcgY2hhcltydWxlRmlsZVNpemUrMTBd
OworCisgICAgcmVzdWx0ID0gKGxvbmcpZnJlYWQocnVsZUJ1ZmZlckMsIDEsIHJ1bGVGaWxlU2l6
ZSwgZmlsZSk7CisgICAgaWYgKHJlc3VsdCAhPSBydWxlRmlsZVNpemUpICB7CisgICAgICAgIGZw
cmludGYoc3RkZXJyLCAiRXJyb3IgcmVhZGluZyBmaWxlIFwiJXNcIlxuIiwgcnVsZUZpbGVOYW1l
KTsKKyAgICAgICAgZXhpdCAoLTEpOworICAgIH0KKyAgICBydWxlQnVmZmVyQ1tydWxlRmlsZVNp
emVdPTA7CisgICAgZmNsb3NlKGZpbGUpOworCisgICAgLy8KKyAgICAvLyBMb29rIGZvciBhIFVu
aWNvZGUgU2lnbmF0dXJlIChCT00pIG9uIHRoZSBydWxlIGZpbGUKKyAgICAvLworICAgIGludDMy
X3QgICAgICAgIHNpZ25hdHVyZUxlbmd0aDsKKyAgICBjb25zdCBjaGFyICogICBydWxlU291cmNl
QyA9IHJ1bGVCdWZmZXJDOworICAgIGNvbnN0IGNoYXIqICAgIGVuY29kaW5nID0gdWNudl9kZXRl
Y3RVbmljb2RlU2lnbmF0dXJlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVNvdXJj
ZUMsIHJ1bGVGaWxlU2l6ZSwgJnNpZ25hdHVyZUxlbmd0aCwgJnN0YXR1cyk7CisgICAgaWYgKFVf
RkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9CisgICAgaWYo
ZW5jb2RpbmchPU5VTEwgKXsKKyAgICAgICAgcnVsZVNvdXJjZUMgICs9IHNpZ25hdHVyZUxlbmd0
aDsKKyAgICAgICAgcnVsZUZpbGVTaXplIC09IHNpZ25hdHVyZUxlbmd0aDsKKyAgICB9CisKKyAg
ICAvLworICAgIC8vIE9wZW4gYSBjb252ZXJ0ZXIgdG8gdGFrZSB0aGUgcnVsZSBmaWxlIHRvIFVU
Ri0xNgorICAgIC8vCisgICAgVUNvbnZlcnRlciogY29udjsKKyAgICBjb252ID0gdWNudl9vcGVu
KGVuY29kaW5nLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAg
ICAgZnByaW50ZihzdGRlcnIsICJ1Y252X29wZW46IElDVSBFcnJvciBcIiVzXCJcbiIsIHVfZXJy
b3JOYW1lKHN0YXR1cykpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfQorCisgICAgLy8K
KyAgICAvLyBDb252ZXJ0IHRoZSBydWxlcyB0byBVQ2hhci4KKyAgICAvLyAgUHJlZmxpZ2h0IGZp
cnN0IHRvIGRldGVybWluZSByZXF1aXJlZCBidWZmZXIgc2l6ZS4KKyAgICAvLworICAgIHVpbnQz
Ml90IGRlc3RDYXAgPSB1Y252X3RvVUNoYXJzKGNvbnYsCisgICAgICAgICAgICAgICAgICAgICAg
IE5VTEwsICAgICAgICAgICAvLyAgZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgMCwgICAg
ICAgICAgICAgIC8vICBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVT
b3VyY2VDLAorICAgICAgICAgICAgICAgICAgICAgICBydWxlRmlsZVNpemUsCisgICAgICAgICAg
ICAgICAgICAgICAgICZzdGF0dXMpOworICAgIGlmIChzdGF0dXMgIT0gVV9CVUZGRVJfT1ZFUkZM
T1dfRVJST1IpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1Y252X3RvVUNoYXJzOiBJQ1Ug
RXJyb3IgXCIlc1wiXG4iLCB1X2Vycm9yTmFtZShzdGF0dXMpKTsKKyAgICAgICAgZXhpdChzdGF0
dXMpOworICAgIH07CisKKyAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgVUNoYXIgKnJ1
bGVTb3VyY2VVID0gbmV3IFVDaGFyW2Rlc3RDYXArMV07CisgICAgdWNudl90b1VDaGFycyhjb252
LAorICAgICAgICAgICAgICAgICAgcnVsZVNvdXJjZVUsICAgICAvLyAgZGVzdCwKKyAgICAgICAg
ICAgICAgICAgIGRlc3RDYXArMSwKKyAgICAgICAgICAgICAgICAgIHJ1bGVTb3VyY2VDLAorICAg
ICAgICAgICAgICAgICAgcnVsZUZpbGVTaXplLAorICAgICAgICAgICAgICAgICAgJnN0YXR1cyk7
CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAi
dWNudl90b1VDaGFyczogSUNVIEVycm9yIFwiJXNcIlxuIiwgdV9lcnJvck5hbWUoc3RhdHVzKSk7
CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9OworICAgIHVjbnZfY2xvc2UoY29udik7CisK
KworICAgIC8vCisgICAgLy8gIFB1dCB0aGUgc291cmNlIHJ1bGVzIGludG8gYSBVbmljb2RlU3Ry
aW5nCisgICAgLy8KKyAgICBVbmljb2RlU3RyaW5nIHJ1bGVTb3VyY2VTKEZBTFNFLCBydWxlU291
cmNlVSwgZGVzdENhcCk7CisKKyAgICAvLworICAgIC8vICBDcmVhdGUgdGhlIGJyZWFrIGl0ZXJh
dG9yIGZyb20gdGhlIHJ1bGVzCisgICAgLy8gICAgIFRoaXMgd2lsbCBjb21waWxlIHRoZSBydWxl
cy4KKyAgICAvLworICAgIFVQYXJzZUVycm9yIHBhcnNlRXJyb3I7CisgICAgcGFyc2VFcnJvci5s
aW5lID0gMDsKKyAgICBwYXJzZUVycm9yLm9mZnNldCA9IDA7CisgICAgUnVsZUJhc2VkQnJlYWtJ
dGVyYXRvciAqYmkgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihydWxlU291cmNlUywgcGFy
c2VFcnJvciwgc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAg
ZnByaW50ZihzdGRlcnIsICJjcmVhdGVSdWxlQmFzZWRCcmVha0l0ZXJhdG9yOiBJQ1UgRXJyb3Ig
XCIlc1wiICBhdCBsaW5lICVkLCBjb2x1bW4gJWRcbiIsCisgICAgICAgICAgICAgICAgdV9lcnJv
ck5hbWUoc3RhdHVzKSwgKGludClwYXJzZUVycm9yLmxpbmUsIChpbnQpcGFyc2VFcnJvci5vZmZz
ZXQpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfTsKKworCisgICAgLy8KKyAgICAvLyAg
R2V0IHRoZSBjb21waWxlZCBydWxlIGRhdGEgZnJvbSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAg
Ly8KKyAgICB1aW50MzJfdCAgICAgICAgb3V0RGF0YVNpemU7CisgICAgY29uc3QgdWludDhfdCAg
Km91dERhdGE7CisgICAgb3V0RGF0YSA9IGJpLT5nZXRCaW5hcnlSdWxlcyhvdXREYXRhU2l6ZSk7
CisKKyAgICAvLyBDb3B5IHRoZSBkYXRhIGZvcm1hdCB2ZXJzaW9uIG51bWJlcnMgZnJvbSB0aGUg
UkJCSSBkYXRhIGhlYWRlciBpbnRvIHRoZSBVRGF0YU1lbW9yeSBoZWFkZXIuCisgICAgdXBydl9t
ZW1jcHkoZGguaW5mby5mb3JtYXRWZXJzaW9uLCAoKFJCQklEYXRhSGVhZGVyICopb3V0RGF0YSkt
PmZGb3JtYXRWZXJzaW9uLCBzaXplb2YoZGguaW5mby5mb3JtYXRWZXJzaW9uKSk7CisKKyAgICAv
LworICAgIC8vICBDcmVhdGUgdGhlIG91dHB1dCBmaWxlCisgICAgLy8KKyAgICBzaXplX3QgYnl0
ZXNXcml0dGVuOworICAgIFVOZXdEYXRhTWVtb3J5ICpwRGF0YTsKKyAgICBwRGF0YSA9IHVkYXRh
X2NyZWF0ZShvdXREaXIsIE5VTEwsIG91dEZpbGVOYW1lLCAmKGRoLmluZm8pLCBjb3B5cmlnaHQs
ICZzdGF0dXMpOworICAgIGlmKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiZ2VuYnJrOiBDb3VsZCBub3Qgb3BlbiBvdXRwdXQgZmlsZSBcIiVzXCIsIFwiJXNc
IlxuIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgb3V0RmlsZU5hbWUsIHVfZXJyb3JOYW1l
KHN0YXR1cykpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfQorCisKKyAgICAvLyAgV3Jp
dGUgdGhlIGRhdGEgaXRzZWxmLgorICAgIHVkYXRhX3dyaXRlQmxvY2socERhdGEsIG91dERhdGEs
IG91dERhdGFTaXplKTsKKyAgICAvLyBmaW5pc2ggdXAgCisgICAgYnl0ZXNXcml0dGVuID0gdWRh
dGFfZmluaXNoKHBEYXRhLCAmc3RhdHVzKTsKKyAgICBpZihVX0ZBSUxVUkUoc3RhdHVzKSkgewor
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImdlbmJyazogZXJyb3IgJWQgd3JpdGluZyB0aGUgb3V0
cHV0IGZpbGVcbiIsIHN0YXR1cyk7CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9CisgICAg
CisgICAgaWYgKGJ5dGVzV3JpdHRlbiAhPSBvdXREYXRhU2l6ZSkgeworICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgIkVycm9yIHdyaXRpbmcgdG8gb3V0cHV0IGZpbGUgXCIlc1wiXG4iLCBvdXRGaWxl
TmFtZSk7CisgICAgICAgIGV4aXQoLTEpOworICAgIH0KKworICAgIGRlbGV0ZSBiaTsKKyAgICBk
ZWxldGVbXSBydWxlU291cmNlVTsKKyAgICBkZWxldGVbXSBydWxlQnVmZmVyQzsKKyAgICB1X2Ns
ZWFudXAoKTsKKworCisgICAgcHJpbnRmKCJnZW5icms6IHRvb2wgY29tcGxldGVkIHN1Y2Nlc3Nm
dWxseS5cbiIpOworICAgIHJldHVybiAwOworCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JS
RUFLX0lURVJBVElPTiAqLworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvZ2VuYnJrL3B1dGlsaW1wLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvZ2VuYnJrL3B1dGlsaW1wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDJjMWM2NmYxNzAxNDVjM2Qw
YmMwMjNiNjE3MDk1NzMzNDAyMDViNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvcHV0aWxpbXAuaApAQCAtMCwwICsxLDYxMSBAQAor
LyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDE0
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoK
KyogIEZJTEUgTkFNRSA6IHB1dGlsaW1wLmgKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAg
ICBEZXNjcmlwdGlvbgorKiAgIDEwLzE3LzA0ICAgIGdyaG90ZW4gICAgIE1vdmUgaW50ZXJuYWwg
ZnVuY3Rpb25zIGZyb20gcHV0aWwuaCB0byB0aGlzIGZpbGUuCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyovCisKKyNpZm5kZWYgUFVUSUxJTVBfSAorI2RlZmluZSBQVVRJTElNUF9ICisKKyNpbmNs
dWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKKworLyoq
CisgKiBcZGVmIFVfU0lHTkVEX1JJR0hUX1NISUZUX0lTX0FSSVRITUVUSUMKKyAqIE5lYXJseSBh
bGwgQ1BVcyBhbmQgY29tcGlsZXJzIGltcGxlbWVudCBhIHJpZ2h0LXNoaWZ0IG9mIGEgc2lnbmVk
IGludGVnZXIKKyAqIGFzIGFuIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgd2hpY2ggY29waWVzIHRo
ZSBzaWduIGJpdCAodGhlIE1vc3QgU2lnbmlmaWNhbnQgQml0IChNU0IpKQorICogaW50byB0aGUg
dmFjYXRlZCBiaXRzIChzaWduIGV4dGVuc2lvbikuCisgKiBGb3IgZXhhbXBsZSwgKGludDMyX3Qp
MHhmZmY1ZmZmMz4+NCBiZWNvbWVzIDB4ZmZmZjVmZmYgYW5kIC0xPj4xPS0xLgorICoKKyAqIFRo
aXMgY2FuIGJlIHVzZWZ1bCBmb3Igc3RvcmluZyBhIHNpZ25lZCB2YWx1ZSBpbiB0aGUgdXBwZXIg
Yml0cworICogYW5kIGFub3RoZXIgYml0IGZpZWxkIGluIHRoZSBsb3dlciBiaXRzLgorICogVGhl
IHNpZ25lZCB2YWx1ZSBjYW4gYmUgcmV0cmlldmVkIGJ5IHNpbXBsZSByaWdodC1zaGlmdGluZy4K
KyAqCisgKiBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgSmF2YSBsYW5ndWFnZS4KKyAqCisg
KiBIb3dldmVyLCB0aGUgQyBzdGFuZGFyZCBhbGxvd3MgY29tcGlsZXJzIHRvIGltcGxlbWVudCBh
IHJpZ2h0LXNoaWZ0IG9mIGEgc2lnbmVkIGludGVnZXIKKyAqIGFzIGEgTG9naWNhbCBTaGlmdCBS
aWdodCB3aGljaCBjb3BpZXMgYSAwIGludG8gdGhlIHZhY2F0ZWQgYml0cy4KKyAqIEZvciBleGFt
cGxlLCAoaW50MzJfdCkweGZmZjVmZmYzPj40IGJlY29tZXMgMHgwZmZmNWZmZiBhbmQgLTE+PjE9
MHg3ZmZmZmZmZi4KKyAqCisgKiBDb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgbmF0dXJhbCBiZWhh
dmlvciBzaG91bGQgYmUgZ3VhcmRlZCB3aXRoIHRoaXMgbWFjcm8sCisgKiB3aXRoIGFuIGFsdGVy
bmF0ZSBwYXRoIGZvciB1bnVzdWFsIHBsYXRmb3Jtcy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZk
ZWYgVV9TSUdORURfUklHSFRfU0hJRlRfSVNfQVJJVEhNRVRJQworICAgIC8qIFVzZSB0aGUgcHJl
ZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbHNlCisgICAgLyoKKyAgICAgKiBOZWFybHkgYWxsIENQVXMg
JiBjb21waWxlcnMgaW1wbGVtZW50IGEgcmlnaHQtc2hpZnQgb2YgYSBzaWduZWQgaW50ZWdlcgor
ICAgICAqIGFzIGFuIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgKHdpdGggc2lnbiBleHRlbnNpb24p
LgorICAgICAqLworIyAgIGRlZmluZSBVX1NJR05FRF9SSUdIVF9TSElGVF9JU19BUklUSE1FVElD
IDEKKyNlbmRpZgorCisvKiogRGVmaW5lIHRoaXMgdG8gMSBpZiB5b3VyIHBsYXRmb3JtIHN1cHBv
cnRzIElFRUUgNzU0IGZsb2F0aW5nIHBvaW50LAorICAgdG8gMCBpZiBpdCBkb2VzIG5vdC4gKi8K
KyNpZm5kZWYgSUVFRV83NTQKKyMgICBkZWZpbmUgSUVFRV83NTQgMQorI2VuZGlmCisKKy8qKgor
ICogdWludHB0cl90IGlzIGFuIG9wdGlvbmFsIHBhcnQgb2YgdGhlIHN0YW5kYXJkIGRlZmluaXRp
b25zIGluIHN0ZGludC5oLgorICogVGhlIG9wZW5ncm91cC5vcmcgZG9jdW1lbnRhdGlvbiBmb3Ig
c3RkaW50Lmggc2F5cworICogIk9uIFhTSS1jb25mb3JtYW50IHN5c3RlbXMsIHRoZSBpbnRwdHJf
dCBhbmQgdWludHB0cl90IHR5cGVzIGFyZSByZXF1aXJlZDsKKyAqIG90aGVyd2lzZSwgdGhleSBh
cmUgb3B0aW9uYWwuIgorICogV2UgYXNzdW1lIHRoYXQgd2hlbiB1aW50cHRyX3QgaXMgZGVmaW5l
ZCwgVUlOVFBUUl9NQVggaXMgZGVmaW5lZCBhcyB3ZWxsLgorICoKKyAqIERvIG5vdCB1c2UgcHRy
ZGlmZl90IHNpbmNlIGl0IGlzIHNpZ25lZC4gc2l6ZV90IGlzIHVuc2lnbmVkLgorICovCisvKiBU
T0RPOiBUaGlzIGNoZWNrIGZhaWxzIG9uIHNvbWUgeiBlbnZpcm9ubWVudHMuIEZpbGVkIGEgdGlj
a2V0ICM5MzU3IGZvciB0aGlzLiAqLworI2lmICFkZWZpbmVkKF9faW50cHRyX3RfZGVmaW5lZCkg
JiYgIWRlZmluZWQoVUlOVFBUUl9NQVgpICYmIChVX1BMQVRGT1JNICE9IFVfUEZfT1MzOTApCit0
eXBlZGVmIHNpemVfdCB1aW50cHRyX3Q7CisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfSEFWRV9N
U1ZDXzIwMDNfT1JfRUFSTElFUgorICogRmxhZyBmb3Igd29ya2Fyb3VuZCBvZiBNU1ZDIDIwMDMg
b3B0aW1pemF0aW9uIGJ1Z3MKKyAqIEBpbnRlcm5hbAorICovCisjaWYgIWRlZmluZWQoVV9IQVZF
X01TVkNfMjAwM19PUl9FQVJMSUVSKSAmJiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIg
PCAxNDAwKQorI2RlZmluZSBVX0hBVkVfTVNWQ18yMDAzX09SX0VBUkxJRVIKKyNlbmRpZgorCisv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSovCisvKiogQHsgSW5mb3JtYXRpb24gYWJvdXQgUE9TSVggc3Vw
cG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSovCisKKyNpZmRlZiBVX0hBVkVfTkxfTEFOR0lORk9fQ09ERVNFVAorICAgIC8q
IFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fSEFTX1dJTjMy
X0FQSSB8fCBVX1BMQVRGT1JNID09IFVfUEZfQU5EUk9JRCB8fCBVX1BMQVRGT1JNID09IFVfUEZf
UU5YCisjICAgZGVmaW5lIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUIDAKKyNlbHNlCisjICAg
ZGVmaW5lIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUIDEKKyNlbmRpZgorCisjaWZkZWYgVV9O
TF9MQU5HSU5GT19DT0RFU0VUCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgIVVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUCisjICAgZGVmaW5lIFVfTkxfTEFOR0lO
Rk9fQ09ERVNFVCAtMQorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisgICAvKiBub3Qg
ZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9OTF9MQU5HSU5GT19DT0RFU0VUIENPREVT
RVQKKyNlbmRpZgorCisjaWZkZWYgVV9UWlNFVAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2
YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSQorIyAgIGRlZmlu
ZSBVX1RaU0VUIF90enNldAorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisgICAvKiBu
b3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9UWlNFVCB0enNldAorI2VuZGlmCisK
KyNpZiBkZWZpbmVkKFVfVElNRVpPTkUpIHx8IGRlZmluZWQoVV9IQVZFX1RJTUVaT05FKQorICAg
IC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9Q
Rl9BTkRST0lECisjICAgZGVmaW5lIFVfVElNRVpPTkUgdGltZXpvbmUKKyNlbGlmIFVfUExBVEZP
Uk1fSVNfTElOVVhfQkFTRUQKKyMgICBpZiBkZWZpbmVkKF9fVUNMSUJDX18pCisgICAgICAgLyog
dUNsaWJjIGRvZXMgbm90IGhhdmUgX190aW1lem9uZSBvciBfdGltZXpvbmUuICovCisjICAgZWxp
ZiBkZWZpbmVkKF9ORVdMSUJfVkVSU0lPTikKKyMgICAgICBkZWZpbmUgVV9USU1FWk9ORSAgICAg
IF90aW1lem9uZQorIyAgIGVsaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICAgICAgLyogZ2xpYmMg
Ki8KKyMgICAgICBkZWZpbmUgVV9USU1FWk9ORSAgICAgIF9fdGltZXpvbmUKKyMgICBlbmRpZgor
I2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5lIFVfVElNRVpP
TkUgX3RpbWV6b25lCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQlNEICYmICFkZWZpbmVkKF9f
TmV0QlNEX18pCisgICAvKiBub3QgZGVmaW5lZCAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BG
X09TNDAwCisgICAvKiBub3QgZGVmaW5lZCAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0lQ
SE9ORQorICAgLyogbm90IGRlZmluZWQgKi8KKyNlbHNlCisjICAgZGVmaW5lIFVfVElNRVpPTkUg
dGltZXpvbmUKKyNlbmRpZgorCisjaWZkZWYgVV9UWk5BTUUKKyAgICAvKiBVc2UgdGhlIHByZWRl
ZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKKyMg
ICBkZWZpbmUgVV9UWk5BTUUgX3R6bmFtZQorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAw
CisgICAvKiBub3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9UWk5BTUUgdHpuYW1l
CisjZW5kaWYKKworI2lmZGVmIFVfSEFWRV9NTUFQCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVk
IHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisjICAgZGVmaW5lIFVf
SEFWRV9NTUFQIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9NTUFQIDEKKyNlbmRpZgorCisj
aWZkZWYgVV9IQVZFX1BPUEVOCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5lIFVfSEFWRV9Q
T1BFTiAwCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAKKyMgICBkZWZpbmUgVV9IQVZF
X1BPUEVOIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9QT1BFTiAxCisjZW5kaWYKKworLyoq
CisgKiBcZGVmIFVfSEFWRV9ESVJFTlRfSAorICogRGVmaW5lcyB3aGV0aGVyIGRpcmVudC5oIGlz
IGF2YWlsYWJsZS4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX0RJUkVOVF9ICisg
ICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9IQVNf
V0lOMzJfQVBJCisjICAgZGVmaW5lIFVfSEFWRV9ESVJFTlRfSCAwCisjZWxzZQorIyAgIGRlZmlu
ZSBVX0hBVkVfRElSRU5UX0ggMQorI2VuZGlmCisKKy8qKiBAfSAqLworCisvKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCisvKiogQHsgR0NDIGJ1aWx0IGluIGZ1bmN0aW9ucyBmb3IgYXRvbWljIG1lbW9y
eSBvcGVyYXRpb25zICAgICAgICAgICAgICAgICAgICovCisvKj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSov
CisKKy8qKgorICogXGRlZiBVX0hBVkVfR0NDX0FUT01JQ1MKKyAqIEBpbnRlcm5hbAorICovCisj
aWZkZWYgVV9IQVZFX0dDQ19BVE9NSUNTCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVl
LiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX01JTkdXCisgICAgI2RlZmluZSBVX0hBVkVf
R0NDX0FUT01JQ1MgMAorI2VsaWYgVV9HQ0NfTUFKT1JfTUlOT1IgPj0gNDA0IHx8IGRlZmluZWQo
X19jbGFuZ19fKQorICAgIC8qIFRPRE86IEludGVsIGljYyBhbmQgSUJNIHhsYyBvbiBBSVggYWxz
byBzdXBwb3J0IGdjYyBhdG9taWNzLiAgKEludGVsIG9yaWdpbmF0ZWQgdGhlbS4pCisgICAgICog
ICAgICAgQWRkIHRoZW0gZm9yIHRoZXNlIGNvbXBpbGVycy4KKyAgICAgKiBOb3RlOiBDbGFuZyBz
ZXRzIF9fR05VQ19fIGRlZmluZXMgZm9yIHZlcnNpb24gNC4yLCBzbyBtaXNzZXMgdGhlIDQuNCB0
ZXN0IGhlcmUuCisgICAgICovCisjICAgZGVmaW5lIFVfSEFWRV9HQ0NfQVRPTUlDUyAxCisjZWxz
ZQorIyAgIGRlZmluZSBVX0hBVkVfR0NDX0FUT01JQ1MgMAorI2VuZGlmCisKKy8qKiBAfSAqLwor
CisvKioKKyAqIFxkZWYgVV9IQVZFX1NURF9BVE9NSUNTCisgKiBEZWZpbmVzIHdoZXRoZXIgdGhl
IHN0YW5kYXJkIEMrKzExIDxhdG9taWM+IGlzIGF2YWlsYWJsZS4KKyAqIElDVSB3aWxsIHVzZSB0
aGlzIHdoZW4gYXZpYWxhYmxlLAorICogb3RoZXJ3aXNlIHdpbGwgZmFsbCBiYWNrIHRvIGNvbXBp
bGVyIG9yIHBsYXRmb3JtIHNwZWNpZmljIGFsdGVybmF0aXZlcy4KKyAqIEBpbnRlcm5hbAorICov
CisjaWZkZWYgVV9IQVZFX1NURF9BVE9NSUNTCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgIWRlZmluZWQoX19jcGx1c3BsdXMpIHx8IF9fY3BsdXNwbHVzPDIwMTEw
M0wKKyAgICAvKiBOb3QgQysrMTEsIGRpc2FibGUgdXNlIG9mIGF0b21pY3MgKi8KKyMgICBkZWZp
bmUgVV9IQVZFX1NURF9BVE9NSUNTIDAKKyNlbGlmIF9fY2xhbmdfXyAmJiBfX2NsYW5nX21ham9y
X189PTMgJiYgX19jbGFuZ19taW5vcl9fPD0xCisgICAgLyogQ2xhbmcgMy4xLCBoYXMgYXRvbWlj
IHZhcmlhYmxlIGluaXRpYWxpemVyIGJ1Zy4gKi8KKyMgICBkZWZpbmUgVV9IQVZFX1NURF9BVE9N
SUNTIDAKKyNlbHNlIAorICAgIC8qIFVfSEFWRV9BVE9NSUMgaXMgdHlwaWNhbGx5IHNldCBieSBh
biBhdXRvY29uZiB0ZXN0IG9mICNpbmNsdWRlIDxhdG9taWM+ICAqLworICAgIC8qICAgQ2FuIGJl
IHNldCBtYW51YWxseSwgb3IgbGVmdCB1bmRlZmluZWQsIG9uIHBsYXRmb3JtcyB3aXRob3V0IGF1
dG9jb25mLiAqLworIyAgIGlmIGRlZmluZWQoVV9IQVZFX0FUT01JQykgJiYgIFVfSEFWRV9BVE9N
SUMgCisjICAgICAgZGVmaW5lIFVfSEFWRV9TVERfQVRPTUlDUyAxCisjICAgZWxzZQorIyAgICAg
IGRlZmluZSBVX0hBVkVfU1REX0FUT01JQ1MgMAorIyAgIGVuZGlmCisjZW5kaWYKKworCisvKj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSovCisvKiogQHsgQ29kZSBhbGlnbm1lbnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCisKKy8qKgorICogXGRlZiBVX0FMSUdOX0NPREUKKyAqIFRoaXMgaXMgdXNlZCB0
byBhbGlnbiBjb2RlIGZyYWdtZW50cyB0byBhIHNwZWNpZmljIGJ5dGUgYm91bmRhcnkuCisgKiBU
aGlzIGlzIHVzZWZ1bCBmb3IgZ2V0dGluZyBjb25zaXN0ZW50IHBlcmZvcm1hbmNlIHRlc3QgcmVz
dWx0cy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9BTElHTl9DT0RFCisgICAgLyogVXNl
IHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgZGVm
aW5lZChfTV9JWDg2KSAmJiAhZGVmaW5lZChfTUFOQUdFRCkKKyMgICBkZWZpbmUgVV9BTElHTl9D
T0RFKGJvdW5kYXJ5U2l6ZSkgX19hc20gIGFsaWduIGJvdW5kYXJ5U2l6ZQorI2Vsc2UKKyMgICBk
ZWZpbmUgVV9BTElHTl9DT0RFKGJvdW5kYXJ5U2l6ZSkgCisjZW5kaWYKKworLyoqIEB9ICovCisK
Ky8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ki8KKy8qKiBAeyBQcm9ncmFtcyB1c2VkIGJ5IElDVSBjb2Rl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ki8KKworLyoqCisgKiBcZGVmIFVfTUFLRV9JU19OTUFLRQorICogRGVmaW5l
cyB3aGV0aGVyIHRoZSAibWFrZSIgcHJvZ3JhbSBpcyBXaW5kb3dzIG5tYWtlLgorICovCisjaWZk
ZWYgVV9NQUtFX0lTX05NQUtFCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX1dJTkRPV1MKKyMgICBkZWZpbmUgVV9NQUtFX0lTX05N
QUtFIDEKKyNlbHNlCisjICAgZGVmaW5lIFVfTUFLRV9JU19OTUFLRSAwCisjZW5kaWYKKworLyoq
IEB9ICovCisKKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworLyogUGxhdGZvcm0gdXRpbGl0aWVzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ki8KKworLyoqCisgKiBQbGF0Zm9ybSB1dGlsaXRpZXMgaXNvbGF0
ZXMgdGhlIHBsYXRmb3JtIGRlcGVuZGVuY2llcyBvZiB0aGUKKyAqIGxpYmFyYXJ5LiAgRm9yIGVh
Y2ggcGxhdGZvcm0gd2hpY2ggdGhpcyBjb2RlIGlzIHBvcnRlZCB0bywgdGhlc2UKKyAqIGZ1bmN0
aW9ucyBtYXkgaGF2ZSB0byBiZSByZS1pbXBsZW1lbnRlZC4KKyAqLworCisvKioKKyAqIEZsb2F0
aW5nIHBvaW50IHV0aWxpdHkgdG8gZGV0ZXJtaW5lIGlmIGEgZG91YmxlIGlzIE5vdCBhIE51bWJl
ciAoTmFOKS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIFVCb29sICAgVV9FWFBPUlQy
IHVwcnZfaXNOYU4oZG91YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRv
IGRldGVybWluZSBpZiBhIGRvdWJsZSBoYXMgYW4gaW5maW5pdGUgdmFsdWUuCisgKiBAaW50ZXJu
YWwKKyAqLworVV9JTlRFUk5BTCBVQm9vbCAgIFVfRVhQT1JUMiB1cHJ2X2lzSW5maW5pdGUoZG91
YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGRldGVybWluZSBpZiBh
IGRvdWJsZSBoYXMgYSBwb3NpdGl2ZSBpbmZpbml0ZSB2YWx1ZS4KKyAqIEBpbnRlcm5hbAorICov
CitVX0lOVEVSTkFMIFVCb29sICAgVV9FWFBPUlQyIHVwcnZfaXNQb3NpdGl2ZUluZmluaXR5KGRv
dWJsZSBkKTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBkZXRlcm1pbmUgaWYg
YSBkb3VibGUgaGFzIGEgbmVnYXRpdmUgaW5maW5pdGUgdmFsdWUuCisgKiBAaW50ZXJuYWwKKyAq
LworVV9JTlRFUk5BTCBVQm9vbCAgIFVfRVhQT1JUMiB1cHJ2X2lzTmVnYXRpdmVJbmZpbml0eShk
b3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdGhhdCByZXR1cm5zIGEg
Tm90IGEgTnVtYmVyIChOYU4pIHZhbHVlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwg
ZG91YmxlICBVX0VYUE9SVDIgdXBydl9nZXROYU4odm9pZCk7CisvKioKKyAqIEZsb2F0aW5nIHBv
aW50IHV0aWxpdHkgdGhhdCByZXR1cm5zIGFuIGluZmluaXRlIHZhbHVlLgorICogQGludGVybmFs
CisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9nZXRJbmZpbml0eSh2b2lk
KTsKKworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIHRydW5jYXRlIGEgZG91Ymxl
LgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl90
cnVuYyhkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3Vs
YXRlIHRoZSBmbG9vciBvZiBhIGRvdWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFM
IGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfZmxvb3IoZG91YmxlIGQpOworLyoqCisgKiBGbG9hdGlu
ZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSB0aGUgY2VpbGluZyBvZiBhIGRvdWJsZS4KKyAq
IEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfY2VpbChk
b3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRo
ZSBhYnNvbHV0ZSB2YWx1ZSBvZiBhIGRvdWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVS
TkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfZmFicyhkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0
aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBmcmFjdGlvbmFsIGFuZCBpbnRlZ2Vy
IHBhcnRzIG9mIGEgZG91YmxlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91Ymxl
ICBVX0VYUE9SVDIgdXBydl9tb2RmKGRvdWJsZSBkLCBkb3VibGUqIHBpbnRlZ2VyKTsKKy8qKgor
ICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIHJlbWFpbmRlciBvZiBh
IGRvdWJsZSBkaXZpZGVkIGJ5IGFub3RoZXIgZG91YmxlLgorICogQGludGVybmFsCisgKi8KK1Vf
SU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9mbW9kKGRvdWJsZSBkLCBkb3VibGUgeSk7
CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIGQgdG8gdGhlIHBv
d2VyIG9mIGV4cG9uZW50IChkXmV4cG9uZW50KS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVS
TkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfcG93KGRvdWJsZSBkLCBkb3VibGUgZXhwb25lbnQp
OworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSAxMCB0byB0aGUg
cG93ZXIgb2YgZXhwb25lbnQgKDEwXmV4cG9uZW50KS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lO
VEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfcG93MTAoaW50MzJfdCBleHBvbmVudCk7Cisv
KioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBtYXhpbXVtIHZh
bHVlIG9mIHR3byBkb3VibGVzLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91Ymxl
ICBVX0VYUE9SVDIgdXBydl9mbWF4KGRvdWJsZSBkLCBkb3VibGUgeSk7CisvKioKKyAqIEZsb2F0
aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHR3byBk
b3VibGVzLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIg
dXBydl9mbWluKGRvdWJsZSBkLCBkb3VibGUgeSk7CisvKioKKyAqIFByaXZhdGUgdXRpbGl0eSB0
byBjYWxjdWxhdGUgdGhlIG1heGltdW0gdmFsdWUgb2YgdHdvIGludGVnZXJzLgorICogQGludGVy
bmFsCisgKi8KK1VfSU5URVJOQUwgaW50MzJfdCBVX0VYUE9SVDIgdXBydl9tYXgoaW50MzJfdCBk
LCBpbnQzMl90IHkpOworLyoqCisgKiBQcml2YXRlIHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBt
aW5pbXVtIHZhbHVlIG9mIHR3byBpbnRlZ2Vycy4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVS
TkFMIGludDMyX3QgVV9FWFBPUlQyIHVwcnZfbWluKGludDMyX3QgZCwgaW50MzJfdCB5KTsKKwor
I2lmIFVfSVNfQklHX0VORElBTgorIyAgIGRlZmluZSB1cHJ2X2lzTmVnYXRpdmUobnVtYmVyKSAo
Kigoc2lnbmVkIGNoYXIgKikmKG51bWJlcikpPDApCisjZWxzZQorIyAgIGRlZmluZSB1cHJ2X2lz
TmVnYXRpdmUobnVtYmVyKSAoKigoc2lnbmVkIGNoYXIgKikmKG51bWJlcikrc2l6ZW9mKG51bWJl
ciktMSk8MCkKKyNlbmRpZgorCisvKioKKyAqIFJldHVybiB0aGUgbGFyZ2VzdCBwb3NpdGl2ZSBu
dW1iZXIgdGhhdCBjYW4gYmUgcmVwcmVzZW50ZWQgYnkgYW4gaW50ZWdlcgorICogdHlwZSBvZiBh
cmJpdHJhcnkgYml0IGxlbmd0aC4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJs
ZSAgVV9FWFBPUlQyIHVwcnZfbWF4TWFudGlzc2Eodm9pZCk7CisKKy8qKgorICogRmxvYXRpbmcg
cG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIGxvZ2FyaXRobSBvZiBhIGRvdWJsZS4KKyAq
IEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfbG9nKGRv
dWJsZSBkKTsKKworLyoqCisgKiBEb2VzIGNvbW1vbiBub3Rpb24gb2Ygcm91bmRpbmcgZS5nLiB1
cHJ2X2Zsb29yKHggKyAwLjUpOworICogQHBhcmFtIHggdGhlIGRvdWJsZSBudW1iZXIKKyAqIEBy
ZXR1cm4gdGhlIHJvdW5kZWQgZG91YmxlCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBk
b3VibGUgIFVfRVhQT1JUMiB1cHJ2X3JvdW5kKGRvdWJsZSB4KTsKKworI2lmIDAKKy8qKgorICog
UmV0dXJucyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCBpbiBh
IGRvdWJsZSBudW1iZXIgeC4KKyAqCisgKiBAcGFyYW0geCB0aGUgZG91YmxlIG51bWJlcgorICog
QHJldHVybiB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCBpbiBh
IGRvdWJsZSBudW1iZXIgeC4KKyAqIEBpbnRlcm5hbAorICovCisvKlVfSU5URVJOQUwgaW50MzJf
dCAgVV9FWFBPUlQyIHVwcnZfZGlnaXRzQWZ0ZXJEZWNpbWFsKGRvdWJsZSB4KTsqLworI2VuZGlm
CisKKyNpZiAhVV9DSEFSU0VUX0lTX1VURjgKKy8qKgorICogUGxlYXNlIHVzZSB1Y252X2dldERl
ZmF1bHROYW1lKCkgaW5zdGVhZC4KKyAqIFJldHVybiB0aGUgZGVmYXVsdCBjb2RlcGFnZSBmb3Ig
dGhpcyBwbGF0Zm9ybSBhbmQgbG9jYWxlLgorICogVGhpcyBmdW5jdGlvbiBjYW4gY2FsbCBzZXRs
b2NhbGUoKSBvbiBVbml4IHBsYXRmb3Jtcy4gUGxlYXNlIHJlYWQgdGhlCisgKiBwbGF0Zm9ybSBk
b2N1bWVudGF0aW9uIG9uIHNldGxvY2FsZSgpIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24u
CisgKiBAcmV0dXJuIHRoZSBkZWZhdWx0IGNvZGVwYWdlIGZvciB0aGlzIHBsYXRmb3JtIAorICog
QGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgY29uc3QgY2hhciogIFVfRVhQT1JUMiB1cHJ2X2dl
dERlZmF1bHRDb2RlcGFnZSh2b2lkKTsKKyNlbmRpZgorCisvKioKKyAqIFBsZWFzZSB1c2UgdWxv
Y19nZXREZWZhdWx0KCkgaW5zdGVhZC4KKyAqIFJldHVybiB0aGUgZGVmYXVsdCBsb2NhbGUgSUQg
c3RyaW5nIGJ5IHF1ZXJ5aW5nIHRocyBzeXN0ZW0sIG9yCisgKiAgICAgemVybyBpZiBvbmUgY2Fu
bm90IGJlIGZvdW5kLiAKKyAqIFRoaXMgZnVuY3Rpb24gY2FuIGNhbGwgc2V0bG9jYWxlKCkgb24g
VW5peCBwbGF0Zm9ybXMuIFBsZWFzZSByZWFkIHRoZQorICogcGxhdGZvcm0gZG9jdW1lbnRhdGlv
biBvbiBzZXRsb2NhbGUoKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgorICogQHJldHVy
biB0aGUgZGVmYXVsdCBsb2NhbGUgSUQgc3RyaW5nCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRF
Uk5BTCBjb25zdCBjaGFyKiAgVV9FWFBPUlQyIHVwcnZfZ2V0RGVmYXVsdExvY2FsZUlEKHZvaWQp
OworCisvKioKKyAqIFRpbWUgem9uZSB1dGlsaXRpZXMKKyAqCisgKiBXcmFwcGVycyBmb3IgQyBy
dW50aW1lIGxpYnJhcnkgZnVuY3Rpb25zIHJlbGF0aW5nIHRvIHRpbWV6b25lcy4KKyAqIFRoZSB0
X3R6c2V0KCkgZnVuY3Rpb24gKHNpbWlsYXIgdG8gdHpzZXQpIHVzZXMgdGhlIGN1cnJlbnQgc2V0
dGluZworICogb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIFRaIHRvIGFzc2lnbiB2YWx1ZXMg
dG8gdGhyZWUgZ2xvYmFsCisgKiB2YXJpYWJsZXM6IGRheWxpZ2h0LCB0aW1lem9uZSwgYW5kIHR6
bmFtZS4gVGhlc2UgdmFyaWFibGVzIGhhdmUgdGhlCisgKiBmb2xsb3dpbmcgbWVhbmluZ3MsIGFu
ZCBhcmUgZGVjbGFyZWQgaW4gJmx0O3RpbWUuaCZndDsuCisgKgorICogICBkYXlsaWdodCAgIE5v
bnplcm8gaWYgZGF5bGlnaHQtc2F2aW5nLXRpbWUgem9uZSAoRFNUKSBpcyBzcGVjaWZpZWQKKyAq
ICAgICAgICAgICAgICBpbiBUWjsgb3RoZXJ3aXNlLCAwLiBEZWZhdWx0IHZhbHVlIGlzIDEuCisg
KiAgIHRpbWV6b25lICAgRGlmZmVyZW5jZSBpbiBzZWNvbmRzIGJldHdlZW4gY29vcmRpbmF0ZWQg
dW5pdmVyc2FsCisgKiAgICAgICAgICAgICAgdGltZSBhbmQgbG9jYWwgdGltZS4gRS5nLiwgLTI4
LDgwMCBmb3IgUFNUIChHTVQtOGhycykKKyAqICAgdHpuYW1lKDApICBUaHJlZS1sZXR0ZXIgdGlt
ZS16b25lIG5hbWUgZGVyaXZlZCBmcm9tIFRaIGVudmlyb25tZW50CisgKiAgICAgICAgICAgICAg
dmFyaWFibGUuIEUuZy4sICJQU1QiLgorICogICB0em5hbWUoMSkgIFRocmVlLWxldHRlciBEU1Qg
em9uZSBuYW1lIGRlcml2ZWQgZnJvbSBUWiBlbnZpcm9ubWVudAorICogICAgICAgICAgICAgIHZh
cmlhYmxlLiAgRS5nLiwgIlBEVCIuIElmIERTVCB6b25lIGlzIG9taXR0ZWQgZnJvbSBUWiwKKyAq
ICAgICAgICAgICAgICB0em5hbWUoMSkgaXMgYW4gZW1wdHkgc3RyaW5nLgorICoKKyAqIE5vdGVz
OiBGb3IgZXhhbXBsZSwgdG8gc2V0IHRoZSBUWiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBjb3Jy
ZXNwb25kCisgKiB0byB0aGUgY3VycmVudCB0aW1lIHpvbmUgaW4gR2VybWFueSwgeW91IGNhbiB1
c2Ugb25lIG9mIHRoZQorICogZm9sbG93aW5nIHN0YXRlbWVudHM6CisgKgorICogICBzZXQgVFo9
R1NUMUdEVAorICogICBzZXQgVFo9R1NUKzFHRFQKKyAqCisgKiBJZiB0aGUgVFogdmFsdWUgaXMg
bm90IHNldCwgdF90enNldCgpIGF0dGVtcHRzIHRvIHVzZSB0aGUgdGltZSB6b25lCisgKiBpbmZv
cm1hdGlvbiBzcGVjaWZpZWQgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0uIFVuZGVyIFdpbmRvd3Mg
TlQKKyAqIGFuZCBXaW5kb3dzIDk1LCB0aGlzIGluZm9ybWF0aW9uIGlzIHNwZWNpZmllZCBpbiB0
aGUgQ29udHJvbCBQYW5lbCdzCisgKiBEYXRlL1RpbWUgYXBwbGljYXRpb24uCisgKiBAaW50ZXJu
YWwKKyAqLworVV9JTlRFUk5BTCB2b2lkICAgICBVX0VYUE9SVDIgdXBydl90enNldCh2b2lkKTsK
KworLyoqCisgKiBEaWZmZXJlbmNlIGluIHNlY29uZHMgYmV0d2VlbiBjb29yZGluYXRlZCB1bml2
ZXJzYWwKKyAqIHRpbWUgYW5kIGxvY2FsIHRpbWUuIEUuZy4sIC0yOCw4MDAgZm9yIFBTVCAoR01U
LThocnMpCisgKiBAcmV0dXJuIHRoZSBkaWZmZXJlbmNlIGluIHNlY29uZHMgYmV0d2VlbiBjb29y
ZGluYXRlZCB1bml2ZXJzYWwgdGltZSBhbmQgbG9jYWwgdGltZS4KKyAqIEBpbnRlcm5hbAorICov
CitVX0lOVEVSTkFMIGludDMyX3QgIFVfRVhQT1JUMiB1cHJ2X3RpbWV6b25lKHZvaWQpOworCisv
KioKKyAqICAgdHpuYW1lKDApICBUaHJlZS1sZXR0ZXIgdGltZS16b25lIG5hbWUgZGVyaXZlZCBm
cm9tIFRaIGVudmlyb25tZW50CisgKiAgICAgICAgICAgICAgdmFyaWFibGUuIEUuZy4sICJQU1Qi
LgorICogICB0em5hbWUoMSkgIFRocmVlLWxldHRlciBEU1Qgem9uZSBuYW1lIGRlcml2ZWQgZnJv
bSBUWiBlbnZpcm9ubWVudAorICogICAgICAgICAgICAgIHZhcmlhYmxlLiAgRS5nLiwgIlBEVCIu
IElmIERTVCB6b25lIGlzIG9taXR0ZWQgZnJvbSBUWiwKKyAqICAgICAgICAgICAgICB0em5hbWUo
MSkgaXMgYW4gZW1wdHkgc3RyaW5nLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgY29u
c3QgY2hhciogVV9FWFBPUlQyIHVwcnZfdHpuYW1lKGludCBuKTsKKworLyoqCisgKiBHZXQgVVRD
IChHTVQpIHRpbWUgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIDA6MDAgb24gMS8xLzE5
NzAuCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGFmZmVjdGVkIGJ5ICdmYWtldGltZScgYW5kIHNob3Vs
ZCBiZSB0aGUgYm90dGxlbmVjayBmb3IgYWxsIHVzZXItdmlzaWJsZSBJQ1UgdGltZSBmdW5jdGlv
bnMuCisgKiBAcmV0dXJuIHRoZSBVVEMgdGltZSBtZWFzdXJlZCBpbiBtaWxsaXNlY29uZHMKKyAq
IEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIFVEYXRlIFVfRVhQT1JUMiB1cHJ2X2dldFVUQ3Rp
bWUodm9pZCk7CisKKy8qKgorICogR2V0IFVUQyAoR01UKSB0aW1lIG1lYXN1cmVkIGluIG1pbGxp
c2Vjb25kcyBzaW5jZSAwOjAwIG9uIDEvMS8xOTcwLgorICogVGhpcyBmdW5jdGlvbiBpcyBub3Qg
YWZmZWN0ZWQgYnkgJ2Zha2V0aW1lJywgc28gaXQgc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBsb3cg
bGV2ZWwgdGVzdCBmdW5jdGlvbnMtIG5vdCBieSBhbnl0aGluZyB0aGF0CisgKiBleHBvc2VzIHRp
bWUgdG8gdGhlIGVuZCB1c2VyLgorICogQHJldHVybiB0aGUgVVRDIHRpbWUgbWVhc3VyZWQgaW4g
bWlsbGlzZWNvbmRzCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBVRGF0ZSBVX0VYUE9S
VDIgdXBydl9nZXRSYXdVVEN0aW1lKHZvaWQpOworCisvKioKKyAqIERldGVybWluZSB3aGV0aGVy
IGEgcGF0aG5hbWUgaXMgYWJzb2x1dGUgb3Igbm90LCBhcyBkZWZpbmVkIGJ5IHRoZSBwbGF0Zm9y
bS4KKyAqIEBwYXJhbSBwYXRoIFBhdGhuYW1lIHRvIHRlc3QKKyAqIEByZXR1cm4gVFJVRSBpZiB0
aGUgcGF0aCBpcyBhYnNvbHV0ZQorICogQGludGVybmFsIChJQ1UgMy4wKQorICovCitVX0lOVEVS
TkFMIFVCb29sIFVfRVhQT1JUMiB1cHJ2X3BhdGhJc0Fic29sdXRlKGNvbnN0IGNoYXIgKnBhdGgp
OworCisvKioKKyAqIFVzZSBVX01BWF9QVFIgaW5zdGVhZCBvZiB0aGlzIGZ1bmN0aW9uLgorICog
QHBhcmFtIHZvaWQgcG9pbnRlciB0byB0ZXN0CisgKiBAcmV0dXJuIHRoZSBsYXJnZXN0IHBvc3Np
YmxlIHBvaW50ZXIgZ3JlYXRlciB0aGFuIHRoZSBiYXNlCisgKiBAaW50ZXJuYWwgKElDVSAzLjgp
CisgKi8KK1VfSU5URVJOQUwgdm9pZCAqIFVfRVhQT1JUMiB1cHJ2X21heGltdW1QdHIodm9pZCAq
YmFzZSk7CisKKy8qKgorICogTWF4aW11bSB2YWx1ZSBvZiBhICh2b2lkKikgLSB1c2UgdG8gaW5k
aWNhdGUgdGhlIGxpbWl0IG9mIGFuICdpbmZpbml0ZScgYnVmZmVyLgorICogSW4gZmFjdCwgYnVm
ZmVyIHNpemVzIG11c3Qgbm90IGV4Y2VlZCAyR0Igc28gdGhhdCB0aGUgZGlmZmVyZW5jZSBiZXR3
ZWVuCisgKiB0aGUgYnVmZmVyIGxpbWl0IGFuZCB0aGUgYnVmZmVyIHN0YXJ0IGNhbiBiZSBleHBy
ZXNzZWQgaW4gYW4gaW50MzJfdC4KKyAqCisgKiBUaGUgZGVmaW5pdGlvbiBvZiBVX01BWF9QVFIg
bXVzdCBmdWxmaWxsIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqIC0gcmV0dXJuIHRoZSBs
YXJnZXN0IHBvc3NpYmxlIHBvaW50ZXIgZ3JlYXRlciB0aGFuIGJhc2UKKyAqIC0gcmV0dXJuIGEg
dmFsaWQgcG9pbnRlciBhY2NvcmRpbmcgdG8gdGhlIG1hY2hpbmUgYXJjaGl0ZWN0dXJlIChBUy80
MDAsIDY0LWJpdCwgZXRjLikKKyAqIC0gYXZvaWQgd3JhcHBpbmcgYXJvdW5kIGF0IGhpZ2ggYWRk
cmVzc2VzCisgKiAtIG1ha2Ugc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBwb2ludGVyIGlzIG5vdCBm
YXJ0aGVyIGZyb20gYmFzZSB0aGFuIDB4N2ZmZmZmZmYgYnl0ZXMKKyAqCisgKiBAcGFyYW0gYmFz
ZSBUaGUgYmVnaW5uaW5nIG9mIGEgYnVmZmVyIHRvIGZpbmQgdGhlIG1heGltdW0gb2Zmc2V0IGZy
b20KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfTUFYX1BUUgorIyAgaWYgVV9QTEFURk9S
TSA9PSBVX1BGX09TMzkwICYmICFkZWZpbmVkKF9MUDY0KQorICAgIC8qIFdlIGhhdmUgMzEtYml0
IHBvaW50ZXJzLiAqLworIyAgICBkZWZpbmUgVV9NQVhfUFRSKGJhc2UpICgodm9pZCAqKTB4N2Zm
ZmZmZmYpCisjICBlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMAorIyAgICBkZWZpbmUgVV9N
QVhfUFRSKGJhc2UpIHVwcnZfbWF4aW11bVB0cigodm9pZCAqKWJhc2UpCisjICBlbGlmIDAKKyAg
ICAvKgorICAgICAqIEZvciBwbGF0Zm9ybXMgd2hlcmUgcG9pbnRlcnMgYXJlIHNjYWxhciB2YWx1
ZXMgKHdoaWNoIGlzIG5vcm1hbCwgYnV0IHVubGlrZSBpNS9PUykKKyAgICAgKiBidXQgdGhhdCBk
byBub3QgZGVmaW5lIHVpbnRwdHJfdC4KKyAgICAgKgorICAgICAqIEhvd2V2ZXIsIHRoaXMgZG9l
cyBub3Qgd29yayBvbiBtb2Rlcm4gY29tcGlsZXJzOgorICAgICAqIFRoZSBDKysgc3RhbmRhcmQg
ZG9lcyBub3QgZGVmaW5lIHBvaW50ZXIgb3ZlcmZsb3csIGFuZCBhbGxvd3MgY29tcGlsZXJzIHRv
CisgICAgICogYXNzdW1lIHRoYXQgcCt1PnAgZm9yIGFueSBwb2ludGVyIHAgYW5kIGFueSBpbnRl
Z2VyIHU+MC4KKyAgICAgKiBUaHVzLCBtb2Rlcm4gY29tcGlsZXJzIG9wdGltaXplIGF3YXkgdGhl
ICI+IiBjb21wYXJpc29uLgorICAgICAqIChTZWUgSUNVIHRpY2tldHMgIzcxODcgYW5kICM4MDk2
LikKKyAgICAgKi8KKyMgICAgZGVmaW5lIFVfTUFYX1BUUihiYXNlKSBcCisgICAgKCh2b2lkICop
KCgoY2hhciAqKShiYXNlKSsweDdmZmZmZmZmdSkgPiAoY2hhciAqKShiYXNlKSBcCisgICAgICAg
ID8gKChjaGFyICopKGJhc2UpKzB4N2ZmZmZmZmZ1KSBcCisgICAgICAgIDogKGNoYXIgKiktMSkp
CisjICBlbHNlCisgICAgLyogRGVmYXVsdCB2ZXJzaW9uLiBDKysgc3RhbmRhcmQgY29tcGxpYW50
IGZvciBzY2FsYXIgcG9pbnRlcnMuICovCisjICAgIGRlZmluZSBVX01BWF9QVFIoYmFzZSkgXAor
ICAgICgodm9pZCAqKSgoKHVpbnRwdHJfdCkoYmFzZSkrMHg3ZmZmZmZmZnUpID4gKHVpbnRwdHJf
dCkoYmFzZSkgXAorICAgICAgICA/ICgodWludHB0cl90KShiYXNlKSsweDdmZmZmZmZmdSkgXAor
ICAgICAgICA6ICh1aW50cHRyX3QpLTEpKQorIyAgZW5kaWYKKyNlbmRpZgorCisvKiAgRHluYW1p
YyBMaWJyYXJ5IEZ1bmN0aW9ucyAqLworCit0eXBlZGVmIHZvaWQgKFVWb2lkRnVuY3Rpb24pKHZv
aWQpOworCisjaWYgVV9FTkFCTEVfRFlMT0FECisvKioKKyAqIExvYWQgYSBsaWJyYXJ5CisgKiBA
aW50ZXJuYWwgKElDVSA0LjQpCisgKi8KK1VfSU5URVJOQUwgdm9pZCAqIFVfRVhQT1JUMiB1cHJ2
X2RsX29wZW4oY29uc3QgY2hhciAqbGliTmFtZSwgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworLyoq
CisgKiBDbG9zZSBhIGxpYnJhcnkKKyAqIEBpbnRlcm5hbCAoSUNVIDQuNCkKKyAqLworVV9JTlRF
Uk5BTCB2b2lkIFVfRVhQT1JUMiB1cHJ2X2RsX2Nsb3NlKCB2b2lkICpsaWIsIFVFcnJvckNvZGUg
KnN0YXR1cyk7CisKKy8qKgorICogRXh0cmFjdCBhIHN5bWJvbCBmcm9tIGEgbGlicmFyeSAoZnVu
Y3Rpb24pCisgKiBAaW50ZXJuYWwgKElDVSA0LjgpCisgKi8KK1VfSU5URVJOQUwgVVZvaWRGdW5j
dGlvbiogVV9FWFBPUlQyIHVwcnZfZGxzeW1fZnVuYyggdm9pZCAqbGliLCBjb25zdCBjaGFyICpz
eW1ib2xOYW1lLCBVRXJyb3JDb2RlICpzdGF0dXMpOworCisvKioKKyAqIEV4dHJhY3QgYSBzeW1i
b2wgZnJvbSBhIGxpYnJhcnkgKGZ1bmN0aW9uKQorICogTm90IGltcGxlbWVudGVkLCBubyBjbGll
bnRzLgorICogQGludGVybmFsCisgKi8KKy8qIFVfSU5URVJOQUwgdm9pZCAqIFVfRVhQT1JUMiB1
cHJ2X2Rsc3ltX2RhdGEoIHZvaWQgKmxpYiwgY29uc3QgY2hhciAqc3ltYm9sTmFtZSwgVUVycm9y
Q29kZSAqc3RhdHVzKTsgKi8KKworI2VuZGlmCisKKy8qKgorICogRGVmaW5lIG1hbGxvYyBhbmQg
cmVsYXRlZCBmdW5jdGlvbnMKKyAqIEBpbnRlcm5hbAorICovCisjaWYgVV9QTEFURk9STSA9PSBV
X1BGX09TNDAwCisjIGRlZmluZSB1cHJ2X2RlZmF1bHRfbWFsbG9jKHgpIF9DX1RTX21hbGxvYyh4
KQorIyBkZWZpbmUgdXBydl9kZWZhdWx0X3JlYWxsb2MoeCx5KSBfQ19UU19yZWFsbG9jKHgseSkK
KyMgZGVmaW5lIHVwcnZfZGVmYXVsdF9mcmVlKHgpIF9DX1RTX2ZyZWUoeCkKKy8qIGFsc28gX0Nf
VFNfY2FsbG9jKHgpICovCisjZWxzZQorLyogQyBkZWZhdWx0cyAqLworIyBkZWZpbmUgdXBydl9k
ZWZhdWx0X21hbGxvYyh4KSBtYWxsb2MoeCkKKyMgZGVmaW5lIHVwcnZfZGVmYXVsdF9yZWFsbG9j
KHgseSkgcmVhbGxvYyh4LHkpCisjIGRlZmluZSB1cHJ2X2RlZmF1bHRfZnJlZSh4KSBmcmVlKHgp
CisjZW5kaWYKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9nZW5icmsvcmJiaWRhdGEuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9nZW5icmsvcmJiaWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTI3NGMzYWRiYmY0OTI1NzFl
NzIxM2NjNTIyNGQ0YjExY2VkMzNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9yYmJpZGF0YS5oCkBAIC0wLDAgKzEsMjAwIEBACisv
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3Ro
ZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyog
ICBmaWxlIG5hbWU6ICByYmJpZGF0YS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0
YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgUkJCSSBk
YXRhIGZvcm1hdHMgIEluY2x1ZGVzCisqCisqICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJ1
Y3RzIHRoYXQgZGVzY3JpYmVzIHRoZSBmb3JtYXQgb2YgdGhlIEJpbmFyeSBSQkJJIGRhdGEsCisq
ICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBpdCBpcyBzdG9yZWQgaW4gSUNVJ3MgZGF0YSBm
aWxlLgorKgorKiAgICAgIFJCQklEYXRhV3JhcHBlciAgLSAgSW5zdGFuY2VzIG9mIHRoaXMgY2xh
c3Mgc2l0IGJldHdlZW4gdGhlCisqICAgICAgICAgICAgICAgICAgICAgICAgICByYXcgZGF0YSBz
dHJ1Y3RzIGFuZCB0aGUgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3Igb2JqZWN0cworKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhhdCBhcmUgY3JlYXRlZCBieSBhcHBsaWNhdGlvbnMuICBUaGUg
d3JhcHBlciBjbGFzcworKiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXMgcmVmZXJl
bmNlIGNvdW50aW5nIGZvciB0aGUgdW5kZXJseWluZyBkYXRhLAorKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgYW5kIGRpcmVjdCBwb2ludGVycyB0byBkYXRhIHRoYXQgd291bGQgbm90IG90aGVy
d2lzZQorKiAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgYWNjZXNzaWJsZSB3aXRob3V0IHVn
bHkgcG9pbnRlciBhcml0aG1ldGljLiAgVGhlCisqICAgICAgICAgICAgICAgICAgICAgICAgICB3
cmFwcGVyIGRvZXMgbm90IGF0dGVtcHQgdG8gcHJvdmlkZSBhbnkgaGlnaGVyIGxldmVsCisqICAg
ICAgICAgICAgICAgICAgICAgICAgICBhYnN0cmFjdGlvbnMgZm9yIHRoZSBkYXRhIGl0c2VsZi4K
KyoKKyogICAgICAgICAgICAgICAgICAgICAgICAgIFRoZXJlIHdpbGwgYmUgb25seSBvbmUgaW5z
dGFuY2Ugb2YgUkJCSURhdGFXcmFwcGVyIGZvciBhbnkKKyogICAgICAgICAgICAgICAgICAgICAg
ICAgIHNldCBvZiBSQkJJIHJ1biB0aW1lIGRhdGEgYmVpbmcgc2hhcmVkIGJ5IGluc3RhbmNlcwor
KiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb25lcykgb2YgUnVsZXNCYXNlZEJyZWFrSXRl
cmF0b3IuCisqLworCisjaWZuZGVmIF9fUkJCSURBVEFfSF9fCisjZGVmaW5lIF9fUkJCSURBVEFf
SF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRh
dGEuaCIKKyNpbmNsdWRlICJ1ZGF0YXN3cC5oIgorCisvKioKKyAqIFN3YXAgUkJCSSBkYXRhLiBT
ZWUgdWRhdGFzd3AuaC4KKyAqIEBpbnRlcm5hbAorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9S
VDIKK3Vicmtfc3dhcChjb25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAgIGNvbnN0IHZv
aWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgVUVy
cm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworCisjaW5jbHVkZSAi
dW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIKKyNpbmNsdWRl
ICJ1bXV0ZXguaCIKKyNpbmNsdWRlICJ1dHJpZS5oIgorCitVX05BTUVTUEFDRV9CRUdJTgorCisv
KiAgCisgKiAgIFRoZSBmb2xsb3dpbmcgc3RydWN0cyBtYXAgZXhhY3RseSBvbnRvIHRoZSByYXcg
ZGF0YSBmcm9tIElDVSBjb21tb24gZGF0YSBmaWxlLiAKKyAqLworc3RydWN0IFJCQklEYXRhSGVh
ZGVyIHsKKyAgICB1aW50MzJfdCAgICAgICAgIGZNYWdpYzsgICAgICAgICAgIC8qICA9PSAweGJs
YTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAg
dWludDhfdCAgICAgICAgICBmRm9ybWF0VmVyc2lvbls0XTsgLyogRGF0YSBGb3JtYXQuICBTYW1l
IGFzIHRoZSB2YWx1ZSBpbiBzdHJ1Y3QgVURhdGFJbmZvICAgICAgKi8KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgaWYgdGhlcmUgaXMgb25lIGFzc29jaWF0ZWQg
d2l0aCB0aGlzIGRhdGEuICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiAgICAgKHZlcnNpb24gb3JpZ2luYXRlcyBpbiByYmJpLCBpcyBjb3Bp
ZWQgdG8gVURhdGFJbmZvKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogICBGb3IgSUNVIDMuMiBhbmQgZWFybGllciwgdGhpcyBmaWVsZCB3YXMgICAgICAgICAg
ICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAg
IHVpbnQzMl90ICBmVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIHdpdGggYSB2YWx1ZSBv
ZiAxLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIHVpbnQzMl90
ICAgICAgICAgZkxlbmd0aDsgICAgICAgICAgLyogIFRvdGFsIGxlbmd0aCBpbiBieXRlcyBvZiB0
aGlzIFJCQkkgRGF0YSwgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qICAgICAgaW5jbHVkaW5nIGFsbCBzZWN0aW9ucywgbm90IGp1c3Qg
dGhlIGhlYWRlci4gICAgICAgICovCisgICAgdWludDMyX3QgICAgICAgICBmQ2F0Q291bnQ7ICAg
ICAgICAvKiAgTnVtYmVyIG9mIGNoYXJhY3RlciBjYXRlZ29yaWVzLiAgICAgICAgICAgICAgICAg
ICAgICAgICAqLworCisgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIC8qICBPZmZzZXRzIGFu
ZCBzaXplcyBvZiBlYWNoIG9mIHRoZSBzdWJzZWN0aW9ucyB3aXRoaW4gdGhlIFJCQkkgZGF0YS4g
ICAgKi8KKyAgICAvKiAgQWxsIG9mZnNldHMgYXJlIGJ5dGVzIGZyb20gdGhlIHN0YXJ0IG9mIHRo
ZSBSQkJJRGF0YUhlYWRlci4gICAgICAgICAgICovCisgICAgLyogIEFsbCBzaXplcyBhcmUgaW4g
Ynl0ZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwor
ICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZGVGFibGU7ICAg
ICAgICAgLyogIGZvcndhcmQgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS4gKi8KKyAgICB1aW50MzJf
dCAgICAgICAgIGZGVGFibGVMZW47CisgICAgdWludDMyX3QgICAgICAgICBmUlRhYmxlOyAgICAg
ICAgIC8qICBPZmZzZXQgdG8gdGhlIHJldmVyc2Ugc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS4gKi8K
KyAgICB1aW50MzJfdCAgICAgICAgIGZSVGFibGVMZW47CisgICAgdWludDMyX3QgICAgICAgICBm
U0ZUYWJsZTsgICAgICAgIC8qICBzYWZlIHBvaW50IGZvcndhcmQgdHJhbnNpdGlvbiB0YWJsZSAq
LworICAgIHVpbnQzMl90ICAgICAgICAgZlNGVGFibGVMZW47CisgICAgdWludDMyX3QgICAgICAg
ICBmU1JUYWJsZTsgICAgICAgIC8qICBzYWZlIHBvaW50IHJldmVyc2UgdHJhbnNpdGlvbiB0YWJs
ZSAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlNSVGFibGVMZW47CisgICAgdWludDMyX3QgICAg
ICAgICBmVHJpZTsgICAgICAgICAgIC8qICBPZmZzZXQgdG8gVHJpZSBkYXRhIGZvciBjaGFyYWN0
ZXIgY2F0ZWdvcmllcyAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlRyaWVMZW47CisgICAgdWlu
dDMyX3QgICAgICAgICBmUnVsZVNvdXJjZTsgICAgIC8qICBPZmZzZXQgdG8gdGhlIHNvdXJjZSBm
b3IgZm9yIHRoZSBicmVhayAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlJ1bGVTb3VyY2VMZW47
ICAvKiAgICBydWxlcy4gIFN0b3JlZCBVQ2hhciAqLiAqLworICAgIHVpbnQzMl90ICAgICAgICAg
ZlN0YXR1c1RhYmxlOyAgICAvKiBPZmZzZXQgdG8gdGhlIHRhYmxlIG9mIHJ1bGUgc3RhdHVzIHZh
bHVlcyAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlN0YXR1c1RhYmxlTGVuOworCisgICAgdWlu
dDMyX3QgICAgICAgICBmUmVzZXJ2ZWRbNl07ICAgIC8qICBSZXNlcnZlZCBmb3IgZXhwYW5zaW9u
ICovCisKK307CisKKworCitzdHJ1Y3QgIFJCQklTdGF0ZVRhYmxlUm93IHsKKyAgICBpbnQxNl90
ICAgICAgICAgIGZBY2NlcHRpbmc7ICAgIC8qICBOb24temVybyBpZiB0aGlzIHJvdyBpcyBmb3Ig
YW4gYWNjZXB0aW5nIHN0YXRlLiAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiAgVmFsdWUgMDogbm90IGFuIGFjY2VwdGluZyBzdGF0ZS4gICAgICAgICAgICAgICAg
ICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgLTE6IFVu
Y29uZGl0aW9uYWwgQWNjZXB0aW5nIHN0YXRlLiAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qICAgIHBvc2l0aXZlOiAgTG9vay1haGVhZCBtYXRjaCBo
YXMgY29tcGxldGVkLiAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvKiAgICAgICAgICAgQWN0dWFsIGJvdW5kYXJ5IHBvc2l0aW9uIGhhcHBlbmVkIGVhcmxpZXIg
Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICBWYWx1
ZSBoZXJlID09IGZMb29rQWhlYWQgaW4gZWFybGllciAgICAgICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgc3RhdGUsIGF0IGFjdHVhbCBib3Vu
ZGFyeSBwb3MuICAgICAgICAqLworICAgIGludDE2X3QgICAgICAgICAgZkxvb2tBaGVhZDsgICAg
LyogIE5vbi16ZXJvIGlmIHRoaXMgcm93IGlzIGZvciBhIHN0YXRlIHRoYXQgICAgICAgICAgKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIGNvcnJlc3BvbmRzIHRv
IGEgJy8nIGluIHRoZSBydWxlIHNvdXJjZS4gICAgICAgICovCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiAgICBWYWx1ZSBpcyB0aGUgc2FtZSBhcyB0aGUgZkFjY2VwdGlu
ZyAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
ICAgICB2YWx1ZSBmb3IgdGhlIHJ1bGUgKHdoaWNoIHdpbGwgYXBwZWFyICAgICAgICAgKi8KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgaW4gYSBkaWZmZXJlbnQg
c3RhdGUuICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgaW50MTZfdCAgICAgICAgICBm
VGFnSWR4OyAgICAgICAvKiAgTm9uLXplcm8gaWYgdGhpcyByb3cgY292ZXJzIGEge3RhZ2dlZH0g
cG9zaXRpb24gICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAg
IGZyb20gYSBydWxlLiAgVmFsdWUgaXMgdGhlIGluZGV4IGluIHRoZSAgICAgICAgKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICBTdGF0dXNUYWJsZSBvZiB0aGUg
c2V0IG9mIG1hdGNoaW5nICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiAgICAgdGFncyAocnVsZSBzdGF0dXMgdmFsdWVzKSAgICAgICAgICAgICAg
ICAgICAgICAqLworICAgIGludDE2X3QgICAgICAgICAgZlJlc2VydmVkOworICAgIHVpbnQxNl90
ICAgICAgICAgZk5leHRTdGF0ZVsyXTsgLyogIE5leHQgU3RhdGUsIGluZGV4ZWQgYnkgY2hhciBj
YXRlZ29yeS4gICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8qICBUaGlzIGFycmF5IGRvZXMgbm90IGhhdmUgdHdvIGVsZW1lbnRzICAgICAgICAgICAg
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICBBcnJheSBTaXpl
IGlzIGFjdHVhbGx5IGZEYXRhLT5mSGVhZGVyLT5mQ2F0Q291bnQgICAgICAgICAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgQ0FVVElPTjogIHNlZSBSQkJJVGFi
bGVCdWlsZGVyOjpnZXRUYWJsZVNpemUoKSAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8qICAgICAgICAgICAgICBiZWZvcmUgY2hhbmdpbmcgYW55dGhpbmcgaGVyZS4g
ICAgICAgICovCit9OworCisKK3N0cnVjdCBSQkJJU3RhdGVUYWJsZSB7CisgICAgdWludDMyX3Qg
ICAgICAgICBmTnVtU3RhdGVzOyAgICAvKiAgTnVtYmVyIG9mIHN0YXRlcy4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlJvd0xlbjsgICAg
ICAgLyogIExlbmd0aCBvZiBhIHN0YXRlIHRhYmxlIHJvdywgaW4gYnl0ZXMuICAgICAgICAgICAg
Ki8KKyAgICB1aW50MzJfdCAgICAgICAgIGZGbGFnczsgICAgICAgIC8qICBPcHRpb24gRmxhZ3Mg
Zm9yIHRoaXMgc3RhdGUgdGFibGUgICAgICAgICAgICAgICAgICovCisgICAgdWludDMyX3QgICAg
ICAgICBmUmVzZXJ2ZWQ7ICAgICAvKiAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqLworICAgIGNoYXIgICAgICAgICAgICAgZlRhYmxlRGF0YVs0XTsg
LyogIEZpcnN0IFJCQklTdGF0ZVRhYmxlUm93IGJlZ2lucyBoZXJlLiAgICAgICAgICAgICAgKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIChtYWtpbmcgaXQgY2hh
cltdIHNpbXBsaWZpZXMgdWdseSBhZGRyZXNzICAgICAgICovCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiAgICAgYXJpdGhtZXRpYyBmb3IgaW5kZXhpbmcgdmFyaWFibGUg
bGVuZ3RoIHJvd3MuKSAqLworfTsKKwordHlwZWRlZiBlbnVtIHsKKyAgICBSQkJJX0xPT0tBSEVB
RF9IQVJEX0JSRUFLID0gMSwKKyAgICBSQkJJX0JPRl9SRVFVSVJFRCA9IDIKK30gUkJCSVN0YXRl
VGFibGVGbGFnczsKKworCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqLworLyogICBUaGUgcmVmZXJlbmNlIGNvdW50aW5nIHdyYXBwZXIgY2xhc3MgKi8KKy8qICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCitjbGFzcyBSQkJJRGF0YVdy
YXBwZXIgOiBwdWJsaWMgVU1lbW9yeSB7CitwdWJsaWM6CisgICAgZW51bSBFRG9udEFkb3B0IHsK
KyAgICAgICAga0RvbnRBZG9wdAorICAgIH07CisgICAgUkJCSURhdGFXcmFwcGVyKGNvbnN0IFJC
QklEYXRhSGVhZGVyICpkYXRhLCBVRXJyb3JDb2RlICZzdGF0dXMpOworICAgIFJCQklEYXRhV3Jh
cHBlcihjb25zdCBSQkJJRGF0YUhlYWRlciAqZGF0YSwgZW51bSBFRG9udEFkb3B0IGRvbnRBZG9w
dCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyAgICBSQkJJRGF0YVdyYXBwZXIoVURhdGFNZW1vcnkq
IHVkbSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyAgICB+UkJCSURhdGFXcmFwcGVyKCk7CisKKyAg
ICB2b2lkICAgICAgICAgICAgICAgICAgaW5pdDAoKTsKKyAgICB2b2lkICAgICAgICAgICAgICAg
ICAgaW5pdChjb25zdCBSQkJJRGF0YUhlYWRlciAqZGF0YSwgVUVycm9yQ29kZSAmc3RhdHVzKTsK
KyAgICBSQkJJRGF0YVdyYXBwZXIgICAgICAqYWRkUmVmZXJlbmNlKCk7CisgICAgdm9pZCAgICAg
ICAgICAgICAgICAgIHJlbW92ZVJlZmVyZW5jZSgpOworICAgIFVCb29sICAgICAgICAgICAgICAg
ICBvcGVyYXRvciA9PShjb25zdCBSQkJJRGF0YVdyYXBwZXIgJm90aGVyKSBjb25zdDsKKyAgICBp
bnQzMl90ICAgICAgICAgICAgICAgaGFzaENvZGUoKTsKKyAgICBjb25zdCBVbmljb2RlU3RyaW5n
ICAmZ2V0UnVsZVNvdXJjZVN0cmluZygpIGNvbnN0OworI2lmZGVmIFJCQklfREVCVUcKKyAgICB2
b2lkICAgICAgICAgICAgICAgICAgcHJpbnREYXRhKCk7CisgICAgdm9pZCAgICAgICAgICAgICAg
ICAgIHByaW50VGFibGUoY29uc3QgY2hhciAqaGVhZGluZywgY29uc3QgUkJCSVN0YXRlVGFibGUg
KnRhYmxlKTsKKyNlbHNlCisgICAgI2RlZmluZSBwcmludERhdGEoKQorICAgICNkZWZpbmUgcHJp
bnRUYWJsZShoZWFkaW5nLCB0YWJsZSkKKyNlbmRpZgorCisgICAgLyogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAvKiAgIFBvaW50ZXJzIHRvIGl0ZW1zIHdpdGhp
biB0aGUgZGF0YSAqLworICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICovCisgICAgY29uc3QgUkJCSURhdGFIZWFkZXIgICAgICpmSGVhZGVyOworICAgIGNvbnN0IFJC
QklTdGF0ZVRhYmxlICAgICAqZkZvcndhcmRUYWJsZTsKKyAgICBjb25zdCBSQkJJU3RhdGVUYWJs
ZSAgICAgKmZSZXZlcnNlVGFibGU7CisgICAgY29uc3QgUkJCSVN0YXRlVGFibGUgICAgICpmU2Fm
ZUZ3ZFRhYmxlOworICAgIGNvbnN0IFJCQklTdGF0ZVRhYmxlICAgICAqZlNhZmVSZXZUYWJsZTsK
KyAgICBjb25zdCBVQ2hhciAgICAgICAgICAgICAgKmZSdWxlU291cmNlOworICAgIGNvbnN0IGlu
dDMyX3QgICAgICAgICAgICAqZlJ1bGVTdGF0dXNUYWJsZTsgCisKKyAgICAvKiBudW1iZXIgb2Yg
aW50MzJfdCB2YWx1ZXMgaW4gdGhlIHJ1bGUgc3RhdHVzIHRhYmxlLiAgIFVzZWQgdG8gc2FuaXR5
IGNoZWNrIGluZGV4aW5nICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmU3RhdHVzTWF4SWR4
OworCisgICAgVVRyaWUgICAgICAgICAgICAgICBmVHJpZTsKKworcHJpdmF0ZToKKyAgICB1X2F0
b21pY19pbnQzMl90ICAgIGZSZWZDb3VudDsKKyAgICBVRGF0YU1lbW9yeSAgKmZVRGF0YU1lbTsK
KyAgICBVbmljb2RlU3RyaW5nICAgICAgIGZSdWxlU3RyaW5nOworICAgIFVCb29sICAgICAgICAg
ICAgICAgZkRvbnRGcmVlRGF0YTsKKworICAgIFJCQklEYXRhV3JhcHBlcihjb25zdCBSQkJJRGF0
YVdyYXBwZXIgJm90aGVyKTsgLyogIGZvcmJpZCBjb3B5aW5nIG9mIHRoaXMgY2xhc3MgKi8KKyAg
ICBSQkJJRGF0YVdyYXBwZXIgJm9wZXJhdG9yPShjb25zdCBSQkJJRGF0YVdyYXBwZXIgJm90aGVy
KTsgLyogIGZvcmJpZCBjb3B5aW5nIG9mIHRoaXMgY2xhc3MgKi8KK307CisKKworCitVX05BTUVT
UEFDRV9FTkQKKworI2VuZGlmIC8qIEMrKyAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWNtbmRhdGEuaCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWNtbmRhdGEuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
NjE2M2M1MDhiOTc3NGI4ZjlkMmJiNGFiZTIyYzM0MTQxODI1NGVkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91Y21uZGF0YS5oCkBA
IC0wLDAgKzEsMTExIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJp
Z2h0IChDKSAxOTk5LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBD
b3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKi8KKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAg
IFVDb21tb25EYXRhICAgQW4gYWJzdHJhY3QgaW50ZXJmYWNlIGZvciBkZWFsaW5nIHdpdGggSUNV
IENvbW1vbiBEYXRhIEZpbGVzLgorICogICAgICAgICAgICAgICAgIElDVSBDb21tb24gRGF0YSBG
aWxlcyBhcmUgYSBncm91cGluZyBvZiBhIG51bWJlciBvZiBpbmRpdmlkdWFsCisgKiAgICAgICAg
ICAgICAgICAgZGF0YSBpdGVtcyAocmVzb3VyY2VzLCBjb252ZXJ0ZXJzLCB0YWJsZXMsIGFueXRo
aW5nKSBpbnRvIGEKKyAqICAgICAgICAgICAgICAgICBzaW5nbGUgZmlsZSBvciBkbGwuICBUaGUg
Y29tYmluZWQgZm9ybWF0IGluY2x1ZGVzIGEgdGFibGUgb2YKKyAqICAgICAgICAgICAgICAgICBj
b250ZW50cyBmb3IgbG9jYXRpbmcgdGhlIGluZGl2aWR1YWwgaXRlbXMgYnkgbmFtZS4KKyAqCisg
KiAgICAgICAgICAgICAgICAgVHdvIGZvcm1hdHMgZm9yIHRoZSB0YWJsZSBvZiBjb250ZW50cyBh
cmUgc3VwcG9ydGVkLCB3aGljaCBpcworICogICAgICAgICAgICAgICAgIHdoeSB0aGVyZSBpcyBh
biBhYnN0cmFjdCBpbnRlZmFjZSBpbnZvbHZlZC4KKyAqCisgKiAgICAgICAgICAgICAgICAgVGhl
c2UgZnVuY3Rpb25zIGFyZSBwYXJ0IG9mIHRoZSBJQ1UgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24s
IGFuZAorICogICAgICAgICAgICAgICAgIGFyZSBub3QgaW50ZWRlZCB0byBiZSB1c2VkIGRpcmVj
dGx5IGJ5IGFwcGxpY2F0aW9ucy4KKyAqLworCisjaWZuZGVmIF9fVUNNTkRBVEFfSF9fCisjZGVm
aW5lIF9fVUNNTkRBVEFfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisjaW5jbHVk
ZSAidW1hcGZpbGUuaCIKKworCisjZGVmaW5lIENPTU1PTl9EQVRBX05BTUUgVV9JQ1VEQVRBX05B
TUUKKwordHlwZWRlZiBzdHJ1Y3QgIHsKKyAgICB1aW50MTZfdCAgICBoZWFkZXJTaXplOworICAg
IHVpbnQ4X3QgICAgIG1hZ2ljMTsKKyAgICB1aW50OF90ICAgICBtYWdpYzI7Cit9IE1hcHBlZERh
dGE7CisKKwordHlwZWRlZiBzdHJ1Y3QgIHsKKyAgICBNYXBwZWREYXRhICBkYXRhSGVhZGVyOwor
ICAgIFVEYXRhSW5mbyAgIGluZm87Cit9IERhdGFIZWFkZXI7CisKK3R5cGVkZWYgc3RydWN0IHsK
KyAgICB1aW50MzJfdCBuYW1lT2Zmc2V0OworICAgIHVpbnQzMl90IGRhdGFPZmZzZXQ7Cit9IFVE
YXRhT2Zmc2V0VE9DRW50cnk7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1aW50MzJfdCBjb3Vu
dDsKKyAgICBVRGF0YU9mZnNldFRPQ0VudHJ5IGVudHJ5WzJdOyAgICAvKiBBY3R1YWwgc2l6ZSBv
ZiBhcnJheSBpcyBmcm9tIGNvdW50LiAqLworfSBVRGF0YU9mZnNldFRPQzsKKworLyoqCisgKiBH
ZXQgdGhlIGhlYWRlciBzaXplIGZyb20gYSBjb25zdCBEYXRhSGVhZGVyICp1ZGguCisgKiBIYW5k
bGVzIG9wcG9zaXRlLWVuZGlhbiBkYXRhLgorICoKKyAqIEBpbnRlcm5hbAorICovCitVX0NGVU5D
IHVpbnQxNl90Cit1ZGF0YV9nZXRIZWFkZXJTaXplKGNvbnN0IERhdGFIZWFkZXIgKnVkaCk7CisK
Ky8qKgorICogR2V0IHRoZSBVRGF0YUluZm8uc2l6ZSBmcm9tIGEgY29uc3QgVURhdGFJbmZvICpp
bmZvLgorICogSGFuZGxlcyBvcHBvc2l0ZS1lbmRpYW4gZGF0YS4KKyAqCisgKiBAaW50ZXJuYWwK
KyAqLworVV9DRlVOQyB1aW50MTZfdAordWRhdGFfZ2V0SW5mb1NpemUoY29uc3QgVURhdGFJbmZv
ICppbmZvKTsKKworVV9DREVDTF9CRUdJTgorLyoKKyAqICAiVmlydHVhbCIgZnVuY3Rpb25zIGZv
ciBkYXRhIGxvb2t1cC4KKyAqICBUbyBjYWxsIG9uZSwgZ2l2ZW4gYSBVRGF0YU1lbW9yeSAqcCwg
dGhlIGNvZGUgbG9va3MgbGlrZSB0aGlzOgorICogICAgIHAtPnZGdW5jcy5Mb29rdXAocCwgdG9j
RW50cnlOYW1lLCBwRXJyb3JDb2RlKTsKKyAqICAgICAgICAgIChJIHN1cmUgZG8gd2lzaCB0aGlz
IHdhcyB3cml0dGVuIGluIEMrKywgbm90IEMpCisgKi8KKwordHlwZWRlZiBjb25zdCBEYXRhSGVh
ZGVyICoKKyhVX0NBTExDT05WICogTG9va3VwRm4pKGNvbnN0IFVEYXRhTWVtb3J5ICpwRGF0YSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnRvY0VudHJ5TmFtZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGludDMyX3QgKnBMZW5ndGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKwordHlwZWRlZiB1aW50MzJfdAorKFVfQ0FM
TENPTlYgKiBOdW1FbnRyaWVzRm4pKGNvbnN0IFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKK1VfQ0RF
Q0xfRU5ECisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBMb29rdXBGbiAgICAgIExvb2t1cDsKKyAg
ICBOdW1FbnRyaWVzRm4gIE51bUVudHJpZXM7IAorfSBjb21tb25EYXRhRnVuY3M7CisKKworLyoK
KyAqICBGdW5jdGlvbnMgdG8gY2hlY2sgd2hldGhlciBhIFVEYXRhTWVtb3J5IHJlZmVycyB0byBt
ZW1vcnkgY29udGFpbmluZyAKKyAqICAgICBhIHJlY29nbml6YWJsZSBoZWFkZXIgYW5kIHRhYmxl
IG9mIGNvbnRlbnRzIGEgQ29tbW9uIERhdGEgRm9ybWF0CisgKgorICogICAgIElmIGEgdmFsaWQg
aGVhZGVyIGFuZCBUT0MgYXJlIGZvdW5kLAorICogICAgICAgICBzZXQgdGhlIENvbW1vbkRhdGFG
dW5jcyBmdW5jdGlvbiBkaXNwYXRjaCB2ZWN0b3IgaW4gdGhlIFVEYXRhTWVtb3J5CisgKiAgICAg
ICAgICAgICB0byBwb2ludCB0byB0aGUgcmlnaHQgZnVuY3Rpb25zIGZvciB0aGUgVE9DIHR5cGUu
CisgKiAgICAgb3RoZXJ3aXNlCisgKiAgICAgICAgIHNldCBhbiBlcnJvcmNvZGUuCisgKi8KK1Vf
Q0ZVTkMgdm9pZCB1ZGF0YV9jaGVja0NvbW1vbkRhdGEoVURhdGFNZW1vcnkgKnBEYXRhLCBVRXJy
b3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VkYXRhc3dwLmggYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VkYXRhc3dwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZjODQ5NTU2
NzY3MDg2ZWFiMWI1ZmI5YjAzMmVmNTA2NzAwZGM3MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWRhdGFzd3AuaApAQCAtMCwwICsx
LDM1MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMp
IDIwMDMtMjAxNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0
aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVkYXRhc3dwLmgKKyogICBlbmNvZGluZzogICBVUy1B
U0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoK
KyogICBjcmVhdGVkIG9uOiAyMDAzanVuMDUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2No
ZXJlcgorKgorKiAgIERlZmluaXRpb25zIGZvciBJQ1UgZGF0YSB0cmFuc2Zvcm1hdGlvbnMgZm9y
IGRpZmZlcmVudCBwbGF0Zm9ybXMsCisqICAgY2hhbmdpbmcgYmV0d2VlbiBiaWctIGFuZCBsaXR0
bGUtZW5kaWFuIGRhdGEgYW5kL29yIGJldHdlZW4KKyogICBjaGFyc2V0IGZhbWlsaWVzIChBU0NJ
STwtPkVCQ0RJQykuCisqLworCisjaWZuZGVmIF9fVURBVEFTV1BfSF9fCisjZGVmaW5lIF9fVURB
VEFTV1BfSF9fCisKKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBl
cy5oIgorCisvKiBmb3J3YXJkIGRlY2xhcmF0aW9uICovCisKK1VfQ0RFQ0xfQkVHSU4KKworc3Ry
dWN0IFVEYXRhU3dhcHBlcjsKK3R5cGVkZWYgc3RydWN0IFVEYXRhU3dhcHBlciBVRGF0YVN3YXBw
ZXI7CisKKy8qKgorICogRnVuY3Rpb24gdHlwZSBmb3IgZGF0YSB0cmFuc2Zvcm1hdGlvbi4KKyAq
IFRyYW5zZm9ybXMgZGF0YSwgb3IganVzdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEg
aWYKKyAqIHRoZSBpbnB1dCBsZW5ndGggaXMgLTEuCisgKiBTd2FwIGZ1bmN0aW9ucyBhc3N1bWUg
dGhhdCB0aGVpciBkYXRhIHBvaW50ZXJzIGFyZSBhbGlnbmVkIHByb3Blcmx5LgorICoKKyAqIFF1
aWNrIGltcGxlbWVudGF0aW9uIG91dGxpbmU6CisgKiAoYmVzdCB0byBjb3B5IGFuZCBhZGFwdCBh
bmQgZXhpc3Rpbmcgc3dhcHBlciBpbXBsZW1lbnRhdGlvbikKKyAqIGNoZWNrIHRoYXQgdGhlIGRh
dGEgbG9va3MgbGlrZSB0aGUgZXhwZWN0ZWQgZm9ybWF0CisgKiBpZihsZW5ndGg8MCkgeworICog
ICBwcmVmbGlnaHQ6CisgKiAgIG5ldmVyIGRlcmVmZXJlbmNlIG91dERhdGEKKyAqICAgcmVhZCBp
bkRhdGEgYW5kIGRldGVybWluZSB0aGUgZGF0YSBzaXplCisgKiAgIGFzc3VtZSB0aGF0IGluRGF0
YSBpcyBsb25nIGVub3VnaCBmb3IgdGhpcworICogfSBlbHNlIHsKKyAqICAgb3V0RGF0YSBjYW4g
YmUgTlVMTCBpZiBsZW5ndGg9PTAKKyAqICAgaW5EYXRhPT1vdXREYXRhIChpbi1wbGFjZSBzd2Fw
cGluZykgcG9zc2libGUgYnV0IG5vdCByZXF1aXJlZCEKKyAqICAgdmVyaWZ5IHRoYXQgbGVuZ3Ro
Pj0oYWN0dWFsIHNpemUpCisgKiAgIGlmIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgbm90IGV2ZXJ5
IGJ5dGUgdXAgdG8gc2l6ZSBpcyByZWFjaGVkCisgKiAgICAgZHVlIHRvIHBhZGRpbmcgZXRjLjoK
KyAqICAgaWYoaW5EYXRhIT1vdXREYXRhKSB7CisgKiAgICAgbWVtY3B5KG91dERhdGEsIGluRGF0
YSwgYWN0dWFsIHNpemUpOworICogICB9CisgKiAgIHN3YXAgY29udGVudHMKKyAqIH0KKyAqIHJl
dHVybiBhY3R1YWwgc2l6ZQorICoKKyAqIEZ1cnRoZXIgaW1wbGVtZW50YXRpb24gbm90ZXM6Cisg
KiAtIHJlYWQgaW50ZWdlcnMgZnJvbSBpbkRhdGEgYmVmb3JlIHN3YXBwaW5nIHRoZW0KKyAqICAg
YmVjYXVzZSBpbi1wbGFjZSBzd2FwcGluZyBjYW4gbWFrZSB0aGVtIHVucmVhZGFibGUKKyAqIC0g
Y29tcGFyZUludkNoYXJzIGNvbXBhcmVzIGEgbG9jYWwgVW5pY29kZSBzdHJpbmcgd2l0aCBhbHJl
YWR5LXN3YXBwZWQKKyAqICAgb3V0cHV0IGNoYXJzZXQgc3RyaW5ncworICoKKyAqIEBwYXJhbSBk
cyBQb2ludGVyIHRvIFVEYXRhU3dhcHBlciBjb250YWluaW5nIGdsb2JhbCBkYXRhIGFib3V0IHRo
ZQorICogICAgICAgICAgIHRyYW5zZm9ybWF0aW9uIGFuZCBmdW5jdGlvbiBwb2ludGVycyBmb3Ig
aGFuZGxpbmcgcHJpbWl0aXZlCisgKiAgICAgICAgICAgdHlwZXMuCisgKiBAcGFyYW0gaW5EYXRh
IFBvaW50ZXIgdG8gdGhlIGlucHV0IGRhdGEgdG8gYmUgdHJhbnNmb3JtZWQgb3IgZXhhbWluZWQu
CisgKiBAcGFyYW0gbGVuZ3RoIExlbmd0aCBvZiB0aGUgZGF0YSwgY291bnRpbmcgYnl0ZXMuIE1h
eSBiZSAtMSBmb3IgcHJlZmxpZ2h0aW5nLgorICogICAgICAgICAgICAgICBJZiBsZW5ndGg+PTAs
IHRoZW4gdHJhbnNmb3JtIHRoZSBkYXRhLgorICogICAgICAgICAgICAgICBJZiBsZW5ndGg9PS0x
LCB0aGVuIG9ubHkgZGV0ZXJtaW5lIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEuCisgKiAgICAgICAg
ICAgICAgIFRoZSBsZW5ndGggY2Fubm90IGJlIGRldGVybWluZWQgZnJvbSB0aGUgZGF0YSBpdHNl
bGYgZm9yIGFsbAorICogICAgICAgICAgICAgICB0eXBlcyBvZiBkYXRhIChlLmcuLCBub3QgZm9y
IHNpbXBsZSBhcnJheXMgb2YgaW50ZWdlcnMpLgorICogQHBhcmFtIG91dERhdGEgUG9pbnRlciB0
byB0aGUgb3V0cHV0IGRhdGEgYnVmZmVyLgorICogICAgICAgICAgICAgICAgSWYgbGVuZ3RoPj0w
ICh0cmFuc2Zvcm1hdGlvbiksIHRoZW4gdGhlIG91dHB1dCBidWZmZXIgbXVzdAorICogICAgICAg
ICAgICAgICAgaGF2ZSBhIGNhcGFjaXR5IG9mIGF0IGxlYXN0IGxlbmd0aC4KKyAqICAgICAgICAg
ICAgICAgIElmIGxlbmd0aD09LTEsIHRoZW4gb3V0RGF0YSB3aWxsIG5vdCBiZSB1c2VkIGFuZCBj
YW4gYmUgTlVMTC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRl
ciwgbXVzdCBub3QgYmUgTlVMTCBhbmQgbXVzdAorICogICAgICAgICAgICAgICAgICAgZnVsZmls
bCBVX1NVQ0NFU1Mgb24gaW5wdXQuCisgKiBAcmV0dXJuIFRoZSBhY3R1YWwgbGVuZ3RoIG9mIHRo
ZSBkYXRhLgorICoKKyAqIEBzZWUgVURhdGFTd2FwcGVyCisgKiBAaW50ZXJuYWwgSUNVIDIuOAor
ICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgorVURhdGFTd2FwRm4oY29uc3QgVURhdGFT
d2FwcGVyICpkcywKKyAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5n
dGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsK
KworLyoqCisgKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIGlucHV0IHRvIHBsYXRmb3JtIGVu
ZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHVpbnQxNl90IFVf
Q0FMTENPTlYKK1VEYXRhUmVhZFVJbnQxNih1aW50MTZfdCB4KTsKKworLyoqCisgKiBDb252ZXJ0
IG9uZSB1aW50MzJfdCBmcm9tIGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuCisgKiBAaW50
ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHVpbnQzMl90IFVfQ0FMTENPTlYKK1VEYXRhUmVh
ZFVJbnQzMih1aW50MzJfdCB4KTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9t
IHBsYXRmb3JtIHRvIGlucHV0IGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICov
Cit0eXBlZGVmIHZvaWQgVV9DQUxMQ09OVgorVURhdGFXcml0ZVVJbnQxNih1aW50MTZfdCAqcCwg
dWludDE2X3QgeCk7CisKKy8qKgorICogQ29udmVydCBvbmUgdWludDMyX3QgZnJvbSBwbGF0Zm9y
bSB0byBpbnB1dCBlbmRpYW5uZXNzLgorICogQGludGVybmFsIElDVSAyLjgKKyAqLwordHlwZWRl
ZiB2b2lkIFVfQ0FMTENPTlYKK1VEYXRhV3JpdGVVSW50MzIodWludDMyX3QgKnAsIHVpbnQzMl90
IHgpOworCisvKioKKyAqIENvbXBhcmUgaW52YXJpYW50LWNoYXJhY3RlciBzdHJpbmdzLCBvbmUg
aW4gdGhlIG91dHB1dCBkYXRhIGFuZCB0aGUKKyAqIG90aGVyIG9uZSBjYWxsZXItcHJvdmlkZWQg
aW4gVW5pY29kZS4KKyAqIEFuIG91dHB1dCBkYXRhIHN0cmluZyBpcyBjb21wYXJlZCBiZWNhdXNl
IHN0cmluZ3MgYXJlIHVzdWFsbHkgc3dhcHBlZAorICogYmVmb3JlIHRoZSByZXN0IG9mIHRoZSBk
YXRhLCB0byBhbGxvdyBmb3Igc29ydGluZyBvZiBzdHJpbmcgdGFibGVzCisgKiBhY2NvcmRpbmcg
dG8gdGhlIG91dHB1dCBjaGFyc2V0LgorICogWW91IGNhbiB1c2UgLTEgZm9yIHRoZSBsZW5ndGgg
cGFyYW1ldGVycyBvZiBOVUwtdGVybWluYXRlZCBzdHJpbmdzIGFzIHVzdWFsLgorICogUmV0dXJu
cyBVbmljb2RlIGNvZGUgcG9pbnQgb3JkZXIgZm9yIGludmFyaWFudCBjaGFyYWN0ZXJzLgorICog
QGludGVybmFsIElDVSAyLjgKKyAqLwordHlwZWRlZiBpbnQzMl90IFVfQ0FMTENPTlYKK1VEYXRh
Q29tcGFyZUludkNoYXJzKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyICpvdXRTdHJpbmcsIGludDMyX3Qgb3V0TGVuZ3RoLAorICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxvY2FsU3RyaW5nLCBpbnQzMl90IGxvY2FsTGVuZ3Ro
KTsKKworLyoqCisgKiBGdW5jdGlvbiBmb3IgbWVzc2FnZSBvdXRwdXQgd2hlbiBhbiBlcnJvciBv
Y2N1cnMgZHVyaW5nIGRhdGEgc3dhcHBpbmcuCisgKiBBIGZvcm1hdCBzdHJpbmcgYW5kIHZhcmlh
YmxlIG51bWJlciBvZiBhcmd1bWVudHMgYXJlIHBhc3NlZAorICogbGlrZSBmb3IgdnByaW50Zigp
LgorICoKKyAqIEBwYXJhbSBjb250ZXh0IEEgZnVuY3Rpb24tc3BlY2lmaWMgY29udGV4dCBwb2lu
dGVyLgorICogQHBhcmFtIGZtdCBUaGUgZm9ybWF0IHN0cmluZy4KKyAqIEBwYXJhbSBhcmdzIFRo
ZSBhcmd1bWVudHMgZm9yIGZvcm1hdCBzdHJpbmcgaW5zZXJ0cy4KKyAqCisgKiBAaW50ZXJuYWwg
SUNVIDIuOAorICovCit0eXBlZGVmIHZvaWQgVV9DQUxMQ09OVgorVURhdGFQcmludEVycm9yKHZv
aWQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKTsKKworc3RydWN0IFVE
YXRhU3dhcHBlciB7CisgICAgLyoqIElucHV0IGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44
ICovCisgICAgVUJvb2wgaW5Jc0JpZ0VuZGlhbjsKKyAgICAvKiogSW5wdXQgY2hhcnNldCBmYW1p
bHkuIEBzZWUgVV9DSEFSU0VUX0ZBTUlMWSBAaW50ZXJuYWwgSUNVIDIuOCAqLworICAgIHVpbnQ4
X3QgaW5DaGFyc2V0OworICAgIC8qKiBPdXRwdXQgZW5kaWFubmVzcy4gQGludGVybmFsIElDVSAy
LjggKi8KKyAgICBVQm9vbCBvdXRJc0JpZ0VuZGlhbjsKKyAgICAvKiogT3V0cHV0IGNoYXJzZXQg
ZmFtaWx5LiBAc2VlIFVfQ0hBUlNFVF9GQU1JTFkgQGludGVybmFsIElDVSAyLjggKi8KKyAgICB1
aW50OF90IG91dENoYXJzZXQ7CisKKyAgICAvKiBiYXNpYyBmdW5jdGlvbnMgZm9yIHJlYWRpbmcg
ZGF0YSB2YWx1ZXMgKi8KKworICAgIC8qKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIGlucHV0
IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgVURhdGFS
ZWFkVUludDE2ICpyZWFkVUludDE2OworICAgIC8qKiBDb252ZXJ0IG9uZSB1aW50MzJfdCBmcm9t
IGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAg
VURhdGFSZWFkVUludDMyICpyZWFkVUludDMyOworICAgIC8qKiBDb21wYXJlIGFuIGludmFyaWFu
dC1jaGFyYWN0ZXIgb3V0cHV0IHN0cmluZyB3aXRoIGEgbG9jYWwgb25lLiBAaW50ZXJuYWwgSUNV
IDIuOCAqLworICAgIFVEYXRhQ29tcGFyZUludkNoYXJzICpjb21wYXJlSW52Q2hhcnM7CisKKyAg
ICAvKiBiYXNpYyBmdW5jdGlvbnMgZm9yIHdyaXRpbmcgZGF0YSB2YWx1ZXMgKi8KKworICAgIC8q
KiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIHBsYXRmb3JtIHRvIGlucHV0IGVuZGlhbm5lc3Mu
IEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgVURhdGFXcml0ZVVJbnQxNiAqd3JpdGVVSW50MTY7
CisgICAgLyoqIENvbnZlcnQgb25lIHVpbnQzMl90IGZyb20gcGxhdGZvcm0gdG8gaW5wdXQgZW5k
aWFubmVzcy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVdyaXRlVUludDMyICp3cml0
ZVVJbnQzMjsKKworICAgIC8qIGJhc2ljIGZ1bmN0aW9ucyBmb3IgZGF0YSB0cmFuc2Zvcm1hdGlv
bnMgKi8KKworICAgIC8qKiBUcmFuc2Zvcm0gYW4gYXJyYXkgb2YgMTYtYml0IGludGVnZXJzLiBA
aW50ZXJuYWwgSUNVIDIuOCAqLworICAgIFVEYXRhU3dhcEZuICpzd2FwQXJyYXkxNjsKKyAgICAv
KiogVHJhbnNmb3JtIGFuIGFycmF5IG9mIDMyLWJpdCBpbnRlZ2Vycy4gQGludGVybmFsIElDVSAy
LjggKi8KKyAgICBVRGF0YVN3YXBGbiAqc3dhcEFycmF5MzI7CisgICAgLyoqIFRyYW5zZm9ybSBh
biBhcnJheSBvZiA2NC1iaXQgaW50ZWdlcnMuIEBpbnRlcm5hbCBJQ1UgNTMgKi8KKyAgICBVRGF0
YVN3YXBGbiAqc3dhcEFycmF5NjQ7CisgICAgLyoqIFRyYW5zZm9ybSBhbiBpbnZhcmlhbnQtY2hh
cmFjdGVyIHN0cmluZy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVN3YXBGbiAqc3dh
cEludkNoYXJzOworCisgICAgLyoqCisgICAgICogRnVuY3Rpb24gZm9yIG1lc3NhZ2Ugb3V0cHV0
IHdoZW4gYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBkYXRhIHN3YXBwaW5nLgorICAgICAqIENhbiBi
ZSBOVUxMLgorICAgICAqIEBpbnRlcm5hbCBJQ1UgMi44CisgICAgICovCisgICAgVURhdGFQcmlu
dEVycm9yICpwcmludEVycm9yOworICAgIC8qKiBDb250ZXh0IHBvaW50ZXIgZm9yIHByaW50RXJy
b3IuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgdm9pZCAqcHJpbnRFcnJvckNvbnRleHQ7Cit9
OworCitVX0NERUNMX0VORAorCitVX0NBUEkgVURhdGFTd2FwcGVyICogVV9FWFBPUlQyCit1ZGF0
YV9vcGVuU3dhcHBlcihVQm9vbCBpbklzQmlnRW5kaWFuLCB1aW50OF90IGluQ2hhcnNldCwKKyAg
ICAgICAgICAgICAgICAgIFVCb29sIG91dElzQmlnRW5kaWFuLCB1aW50OF90IG91dENoYXJzZXQs
CisgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBP
cGVuIGEgVURhdGFTd2FwcGVyIGZvciB0aGUgZ2l2ZW4gaW5wdXQgZGF0YSBhbmQgdGhlIHNwZWNp
ZmllZCBvdXRwdXQKKyAqIGNoYXJhY3RlcmlzdGljcy4KKyAqIFZhbHVlcyBvZiAtMSBmb3IgYW55
IG9mIHRoZSBjaGFyYWN0ZXJpc3RpY3MgbWVhbiB0aGUgbG9jYWwgcGxhdGZvcm0ncworICogY2hh
cmFjdGVyaXN0aWNzLgorICoKKyAqIEBzZWUgdWRhdGFfc3dhcAorICogQGludGVybmFsIElDVSAy
LjgKKyAqLworVV9DQVBJIFVEYXRhU3dhcHBlciAqIFVfRVhQT1JUMgordWRhdGFfb3BlblN3YXBw
ZXJGb3JJbnB1dERhdGEoY29uc3Qgdm9pZCAqZGF0YSwgaW50MzJfdCBsZW5ndGgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVQm9vbCBvdXRJc0JpZ0VuZGlhbiwgdWludDhfdCBvdXRD
aGFyc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9y
Q29kZSk7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfY2xvc2VTd2FwcGVyKFVEYXRh
U3dhcHBlciAqZHMpOworCisvKioKKyAqIFJlYWQgdGhlIGJlZ2lubmluZyBvZiBhbiBJQ1UgZGF0
YSBwaWVjZSwgcmVjb2duaXplIG1hZ2ljIGJ5dGVzLAorICogc3dhcCB0aGUgc3RydWN0dXJlLgor
ICogU2V0IGEgVV9VTlNVUFBPUlRFRF9FUlJPUiBpZiBpdCBkb2VzIG5vdCBsb29rIGxpa2UgYW4g
SUNVIGRhdGEgcGllY2UuCisgKgorICogQHJldHVybiBUaGUgc2l6ZSBvZiB0aGUgZGF0YSBoZWFk
ZXIsIGluIGJ5dGVzLgorICoKKyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK1VfQ0FQSSBpbnQz
Ml90IFVfRVhQT1JUMgordWRhdGFfc3dhcERhdGFIZWFkZXIoY29uc3QgVURhdGFTd2FwcGVyICpk
cywKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5n
dGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJy
b3JDb2RlKTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSBpbnQxNl90IGZyb20gaW5wdXQgdG8gcGxh
dGZvcm0gZW5kaWFubmVzcy4KKyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK1VfQ0FQSSBpbnQx
Nl90IFVfRVhQT1JUMgordWRhdGFfcmVhZEludDE2KGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsIGlu
dDE2X3QgeCk7CisKKy8qKgorICogQ29udmVydCBvbmUgaW50MzJfdCBmcm9tIGlucHV0IHRvIHBs
YXRmb3JtIGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCitVX0NBUEkgaW50
MzJfdCBVX0VYUE9SVDIKK3VkYXRhX3JlYWRJbnQzMihjb25zdCBVRGF0YVN3YXBwZXIgKmRzLCBp
bnQzMl90IHgpOworCisvKioKKyAqIFN3YXAgYSBibG9jayBvZiBpbnZhcmlhbnQsIE5VTC10ZXJt
aW5hdGVkIHN0cmluZ3MsIGJ1dCBub3QgcGFkZGluZworICogYnl0ZXMgYWZ0ZXIgdGhlIGxhc3Qg
c3RyaW5nLgorICogQGludGVybmFsCisgKi8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgordWRh
dGFfc3dhcEludlN0cmluZ0Jsb2NrKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAq
b3V0RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2Rl
KTsKKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9wcmludEVycm9yKGNvbnN0IFVEYXRh
U3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZtdCwKKyAgICAgICAg
ICAgICAgICAgLi4uKTsKKworLyogaW50ZXJuYWwgZXhwb3J0cyBmcm9tIHB1dGlsLmMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyogZGVjbGFyZWQg
aGVyZSB0byBrZWVwIHRoZW0gb3V0IG9mIHRoZSBwdWJsaWMgcHV0aWwuaCAqLworCisvKioKKyAq
IFN3YXAgaW52YXJpYW50IGNoYXIgKiBzdHJpbmdzIEFTQ0lJLT5FQkNESUMuCisgKiBAaW50ZXJu
YWwKKyAqLworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCit1cHJ2X2ViY2RpY0Zyb21Bc2NpaShj
b25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAq
aW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAgICAgICAgICAg
ICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENvcHkgaW52YXJpYW50IEFT
Q0lJIGNoYXIgKiBzdHJpbmdzIGFuZCB2ZXJpZnkgdGhleSBhcmUgaW52YXJpYW50LgorICogQGlu
dGVybmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBydl9jb3B5QXNjaWkoY29uc3QgVURhdGFT
d2FwcGVyICpkcywKKyAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBs
ZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKTsKKworLyoqCisgKiBTd2FwIGludmFyaWFudCBjaGFyICogc3RyaW5ncyBFQkNESUMtPkFT
Q0lJLgorICogQGludGVybmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBydl9hc2NpaUZyb21F
YmNkaWMoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBDb3B5IGludmFy
aWFudCBFQkNESUMgY2hhciAqIHN0cmluZ3MgYW5kIHZlcmlmeSB0aGV5IGFyZSBpbnZhcmlhbnQu
CisgKiBAaW50ZXJuYWwKKyAqLworVV9DRlVOQyBpbnQzMl90Cit1cHJ2X2NvcHlFYmNkaWMoY29u
c3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICBjb25zdCB2b2lkICppbkRhdGEs
IGludDMyX3QgbGVuZ3RoLCB2b2lkICpvdXREYXRhLAorICAgICAgICAgICAgICAgIFVFcnJvckNv
ZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENvbXBhcmUgQVNDSUkgaW52YXJpYW50IGNoYXIg
KiB3aXRoIFVuaWNvZGUgaW52YXJpYW50IFVDaGFyICoKKyAqIEBpbnRlcm5hbAorICovCitVX0NG
VU5DIGludDMyX3QKK3VwcnZfY29tcGFyZUludkFzY2lpKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMs
CisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpvdXRTdHJpbmcsIGludDMyX3Qgb3V0
TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxvY2FsU3RyaW5nLCBp
bnQzMl90IGxvY2FsTGVuZ3RoKTsKKworLyoqCisgKiBDb21wYXJlIEVCQ0RJQyBpbnZhcmlhbnQg
Y2hhciAqIHdpdGggVW5pY29kZSBpbnZhcmlhbnQgVUNoYXIgKgorICogQGludGVybmFsCisgKi8K
K1VfQ0ZVTkMgaW50MzJfdAordXBydl9jb21wYXJlSW52RWJjZGljKGNvbnN0IFVEYXRhU3dhcHBl
ciAqZHMsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqb3V0U3RyaW5nLCBpbnQz
Ml90IG91dExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqbG9jYWxT
dHJpbmcsIGludDMyX3QgbG9jYWxMZW5ndGgpOworCisvKiBtYXRlcmlhbC4uLiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwor
CisjaWYgMAorCisvKiB1ZGF0YS5oICovCisKKy8qKgorICogUHVibGljIEFQSSBmdW5jdGlvbiBp
biB1ZGF0YS5jCisgKgorICogU2FtZSBhcyB1ZGF0YV9vcGVuQ2hvaWNlKCkgYnV0IGF1dG9tYXRp
Y2FsbHkgc3dhcHMgdGhlIGRhdGEuCisgKiBpc0FjY2VwdGFibGUsIGlmIG5vdCBOVUxMLCBtYXkg
YWNjZXB0IGRhdGEgd2l0aCBlbmRpYW5uZXNzIGFuZCBjaGFyc2V0IGZhbWlseQorICogZGlmZmVy
ZW50IGZyb20gdGhlIGN1cnJlbnQgcGxhdGZvcm0ncyBwcm9wZXJ0aWVzLgorICogSWYgdGhlIGRh
dGEgaXMgYWNjZXB0YWJsZSBhbmQgdGhlIHBsYXRmb3JtIHByb3BlcnRpZXMgZG8gbm90IG1hdGNo
LCB0aGVuCisgKiB0aGUgc3dhcCBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gc3dhcCBhbiBhbGxvY2F0
ZWQgdmVyc2lvbiBvZiB0aGUgZGF0YS4KKyAqIFByZWZsaWdodGluZyBtYXkgb3IgbWF5IG5vdCBi
ZSBwZXJmb3JtZWQgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHNpemUgb2YKKyAqIHRoZSBsb2Fk
ZWQgZGF0YSBpdGVtIGlzIGtub3duLgorICoKKyAqIEBwYXJhbSBpc0FjY2VwdGFibGUgU2FtZSBh
cyBmb3IgdWRhdGFfb3BlbkNob2ljZSgpLiBNYXkgYmUgTlVMTC4KKyAqCisgKiBAaW50ZXJuYWwg
SUNVIDIuOAorICovCitVX0NBUEkgVURhdGFNZW1vcnkgKiBVX0VYUE9SVDIKK3VkYXRhX29wZW5T
d2FwKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUs
CisgICAgICAgICAgICAgICBVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSAqaXNBY2NlcHRhYmxlLCB2
b2lkICppc0FjY2VwdGFibGVDb250ZXh0LAorICAgICAgICAgICAgICAgVURhdGFTd2FwRm4gKnN3
YXAsCisgICAgICAgICAgICAgICBVRGF0YVByaW50RXJyb3IgKnByaW50RXJyb3IsIHZvaWQgKnBy
aW50RXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7
CisKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9nZW5icmsvdW1hcGZpbGUuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9nZW5icmsvdW1hcGZpbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTk1ZTM4MWVkMzBjMGI5MDMy
NmIyNGVjZGYxMjI0OWZkNDM0NTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bWFwZmlsZS5oCkBAIC0wLDAgKzEsNTUgQEAKKy8q
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMSwg
SW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhl
cnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisv
Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAgICAgICBNZW1vcnkgbWFwcGVkIGZp
bGUgd3JhcHBlcnMgZm9yIHVzZSBieSB0aGUgSUNVIERhdGEgSW1wbGVtZW50YXRpb24KKyAqCisg
KiAgICAgICAgICAgUG9ydGluZyBub3RlOiAgVGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIGZ1
bmN0aW9ucyBpcyB2ZXJ5IHBsYXRmb3JtIHNwZWNpZmljLgorICogICAgICAgICAgICAgTm90IGFs
bCBwbGF0Zm9ybXMgY2FuIGRvIHJlYWwgbWVtb3J5IG1hcHBpbmcuICBUaG9zZSB0aGF0IGNhbid0
CisgKiAgICAgICAgICAgICBzdGlsbCBtdXN0IGltcGxlbWVudCB0aGVzZSBmdW5jdGlvbnMsIGdl
dHRpbmcgdGhlIGRhdGEgaW50byBtZW1vcnkgdXNpbmcKKyAqICAgICAgICAgICAgIHdoYXRldmVy
IG1lYW5zIGFyZSBhdmFpbGFibGUuCisgKgorICogICAgICAgICAgICBUaGVzZSBmdW5jdGlvbnMg
YXJlIHBhcnQgb2YgdGhlIElDVSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiwgYW5kCisgKiAgICAg
ICAgICAgIGFyZSBub3QgaW50ZWRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGJ5IGFwcGxpY2F0aW9u
cy4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisjaWZuZGVmIF9fVU1BUEZJ
TEVfSF9fCisjZGVmaW5lIF9fVU1BUEZJTEVfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3B1dGls
LmgiCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgorI2luY2x1ZGUgInB1dGlsaW1wLmgiCisK
K1VfQ0ZVTkMgVUJvb2wgdXBydl9tYXBGaWxlKFVEYXRhTWVtb3J5ICpwZG0sIGNvbnN0IGNoYXIg
KnBhdGgpOworVV9DRlVOQyB2b2lkICB1cHJ2X3VubWFwRmlsZShVRGF0YU1lbW9yeSAqcERhdGEp
OworCisvKiBNQVBfTk9ORTogbm8gbWVtb3J5IG1hcHBpbmcsIG5vIGZpbGUgYWNjZXNzIGF0IGFs
bCAqLworI2RlZmluZSBNQVBfTk9ORSAgICAgICAgMAorI2RlZmluZSBNQVBfV0lOMzIgICAgICAg
MQorI2RlZmluZSBNQVBfUE9TSVggICAgICAgMgorI2RlZmluZSBNQVBfU1RESU8gICAgICAgMwor
I2RlZmluZSBNQVBfMzkwRExMICAgICAgNAorCisjaWYgVUNPTkZJR19OT19GSUxFX0lPCisjICAg
ZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfTk9ORQorI2VsaWYgVV9QTEFURk9STV9VU0VT
X09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfV0lOMzIK
KyNlbGlmIFVfSEFWRV9NTUFQIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MAorIyAgIGlmIFVf
UExBVEZPUk0gPT0gVV9QRl9PUzM5MCAmJiBkZWZpbmVkIChPUzM5MF9TVFVCREFUQSkKKyAgICAg
ICAgLyogICBObyBtZW1vcnkgbWFwcGluZyBmb3IgMzkwIGJhdGNoIG1vZGUuICBGYWtlIGl0IHVz
aW5nIGRsbCBsb2FkaW5nLiAgKi8KKyMgICAgICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBN
QVBfMzkwRExMCisjICAgZWxzZQorIyAgICAgICBkZWZpbmUgTUFQX0lNUExFTUVOVEFUSU9OIE1B
UF9QT1NJWAorIyAgIGVuZGlmCisjZWxzZSAvKiB1bmtub3duIHBsYXRmb3JtLCBubyBtZW1vcnkg
bWFwIGltcGxlbWVudGF0aW9uOiB1c2Ugc3RkaW8uaCBhbmQgdXBydl9tYWxsb2MoKSBpbnN0ZWFk
ICovCisjICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfU1RESU8KKyNlbmRpZgorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5i
cmsvdW11dGV4LmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3Vt
dXRleC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUwYWQwZDNjMDM2NTRkNjFhMDIzYTA4MjU0ODU2M2Q4ZDRjMDNj
NjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Z2VuYnJrL3VtdXRleC5oCkBAIC0wLDAgKzEsNDI0IEBACisvKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IENvcHlyaWdodCAoQykgMTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisqCisqIEZpbGUgVU1VVEVYLkgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6
CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwNC8wMi85
NyAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqICAgMDQvMDcvOTkgIHNybCAgICAgICAgIHJld3Jp
dGUgLSBDIGludGVyZmFjZSwgbXVsdGlwbGUgbXV0aWNlcworKiAgIDA1LzEzLzk5ICBzdGVwaGVu
ICAgICBDaGFuZ2VkIHRvIHVtdXRleCAoZnJvbSBjbXV0ZXgpCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyovCisKKyNpZm5kZWYgVU1VVEVYX0gKKyNkZWZpbmUgVU1VVEVYX0gKKworI2luY2x1ZGUg
InVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2xlYW4uaCIKKyNpbmNsdWRl
ICJwdXRpbGltcC5oIgorCisKKworLy8gRm9yd2FyZCBEZWNsYXJhdGlvbnMuIFVNdXRleCBpcyBu
b3QgaW4gdGhlIElDVSBuYW1lc3BhY2UgKHlldCkgYmVjYXVzZQorLy8gICAgICAgICAgICAgICAg
ICAgICAgIHRoZXJlIGFyZSBzb21lIHJlbWFpbmluZyByZWZlcmVuY2VzIGZyb20gcGxhaW4gQy4K
K3N0cnVjdCBVTXV0ZXg7CitzdHJ1Y3QgVUNvbmRpdGlvblZhcjsKKworVV9OQU1FU1BBQ0VfQkVH
SU4KK3N0cnVjdCBVSW5pdE9uY2U7CitVX05BTUVTUEFDRV9FTkQKKworLy8gU3RyaW5naWZ5IG1h
Y3JvcywgdG8gYWxsb3cgI2luY2x1ZGUgb2YgdXNlciBzdXBwbGllZCBhdG9taWMgJiBtdXRleCBm
aWxlcy4KKyNkZWZpbmUgVV9NVVRFWF9TVFIocykgI3MKKyNkZWZpbmUgVV9NVVRFWF9YU1RSKHMp
IFVfTVVURVhfU1RSKHMpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICBMb3cgTGV2
ZWwgQXRvbWljIE9wZXJhdGlvbnMuCisgKiAgICAgIENvbXBpbGVyIGRlcGVuZGVudC4gTm90IG9w
ZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50LgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lm
IGRlZmluZWQgKFVfVVNFUl9BVE9NSUNTX0gpCisjaW5jbHVkZSBVX01VVEVYX1hTVFIoVV9VU0VS
X0FUT01JQ1NfSCkKKworI2VsaWYgVV9IQVZFX1NURF9BVE9NSUNTCisKKy8vICBDKysxMSBhdG9t
aWNzIGFyZSBhdmFpbGFibGUuCisKKyNpbmNsdWRlIDxhdG9taWM+CisKK1VfTkFNRVNQQUNFX0JF
R0lOCisKK3R5cGVkZWYgc3RkOjphdG9taWM8aW50MzJfdD4gdV9hdG9taWNfaW50MzJfdDsKKyNk
ZWZpbmUgQVRPTUlDX0lOVDMyX1RfSU5JVElBTElaRVIodmFsKSBBVE9NSUNfVkFSX0lOSVQodmFs
KQorCitpbmxpbmUgaW50MzJfdCB1bXR4X2xvYWRBY3F1aXJlKHVfYXRvbWljX2ludDMyX3QgJnZh
cikgeworICAgIHJldHVybiB2YXIubG9hZChzdGQ6Om1lbW9yeV9vcmRlcl9hY3F1aXJlKTsKK30K
KworaW5saW5lIHZvaWQgdW10eF9zdG9yZVJlbGVhc2UodV9hdG9taWNfaW50MzJfdCAmdmFyLCBp
bnQzMl90IHZhbCkgeworICAgIHZhci5zdG9yZSh2YWwsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGVh
c2UpOworfQorCitpbmxpbmUgaW50MzJfdCB1bXR4X2F0b21pY19pbmModV9hdG9taWNfaW50MzJf
dCAqdmFyKSB7CisgICAgcmV0dXJuIHZhci0+ZmV0Y2hfYWRkKDEpICsgMTsKK30KKworaW5saW5l
IGludDMyX3QgdW10eF9hdG9taWNfZGVjKHVfYXRvbWljX2ludDMyX3QgKnZhcikgeworICAgIHJl
dHVybiB2YXItPmZldGNoX3N1YigxKSAtIDE7Cit9CitVX05BTUVTUEFDRV9FTkQKKworI2VsaWYg
VV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisKKy8vIE1TVkMgY29tcGlsZXIuIFJlYWRzIGFuZCB3
cml0ZXMgb2Ygdm9sYXRpbGUgdmFyaWFibGVzIGhhdmUKKy8vICAgICAgICAgICAgICAgIGFjcXVp
cmUgYW5kIHJlbGVhc2UgbWVtb3J5IHNlbWFudGljcywgcmVzcGVjdGl2ZWx5LgorLy8gICAgICAg
ICAgICAgICAgVGhpcyBpcyBhIE1pY3Jvc29mdCBleHRlbnNpb24sIG5vdCBzdGFuZGFyZCBDKysg
YmVoYXZpb3IuCisvLworLy8gICBVcGRhdGU6ICAgICAgY2FuJ3QgdXNlIHRoaXMgYmVjYXVzZSBv
ZiBNaW5HVywgYnVpbHQgd2l0aCBnY2MuCisvLyAgICAgICAgICAgICAgICBPcmlnaW5hbCBwbGFu
IHdhcyB0byB1c2UgZ2NjIGF0b21pY3MgZm9yIE1pbkdXLCBidXQgdGhleQorLy8gICAgICAgICAg
ICAgICAgYXJlbid0IHN1cHBvcnRlZCwgc28gd2UgZm9sZCBNaW5HVyBpbnRvIHRoaXMgcGF0aC4K
KworIyBkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgorIyBkZWZpbmUgVkNfRVhUUkFMRUFOCisj
IGRlZmluZSBOT1VTRVIKKyMgZGVmaW5lIE5PU0VSVklDRQorIyBkZWZpbmUgTk9JTUUKKyMgZGVm
aW5lIE5PTUNYCisjIGlmbmRlZiBOT01JTk1BWAorIyBkZWZpbmUgTk9NSU5NQVgKKyMgZW5kaWYK
KyMgaW5jbHVkZSA8d2luZG93cy5oPgorCitVX05BTUVTUEFDRV9CRUdJTgordHlwZWRlZiB2b2xh
dGlsZSBMT05HIHVfYXRvbWljX2ludDMyX3Q7CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJ
QUxJWkVSKHZhbCkgdmFsCisKK2lubGluZSBpbnQzMl90IHVtdHhfbG9hZEFjcXVpcmUodV9hdG9t
aWNfaW50MzJfdCAmdmFyKSB7CisgICAgcmV0dXJuIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdl
KCZ2YXIsIDAsIDApOworfQorCitpbmxpbmUgdm9pZCB1bXR4X3N0b3JlUmVsZWFzZSh1X2F0b21p
Y19pbnQzMl90ICZ2YXIsIGludDMyX3QgdmFsKSB7CisgICAgSW50ZXJsb2NrZWRFeGNoYW5nZSgm
dmFyLCB2YWwpOworfQorCisKK2lubGluZSBpbnQzMl90IHVtdHhfYXRvbWljX2luYyh1X2F0b21p
Y19pbnQzMl90ICp2YXIpIHsKKyAgICByZXR1cm4gSW50ZXJsb2NrZWRJbmNyZW1lbnQodmFyKTsK
K30KKworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfZGVjKHVfYXRvbWljX2ludDMyX3QgKnZh
cikgeworICAgIHJldHVybiBJbnRlcmxvY2tlZERlY3JlbWVudCh2YXIpOworfQorVV9OQU1FU1BB
Q0VfRU5ECisKKworI2VsaWYgVV9IQVZFX0dDQ19BVE9NSUNTCisvKgorICogZ2NjIGF0b21pYyBv
cHMuIFRoZXNlIGFyZSBhdmFpbGFibGUgb24gc2V2ZXJhbCBvdGhlciBjb21waWxlcnMgYXMgd2Vs
bC4KKyAqLworCitVX05BTUVTUEFDRV9CRUdJTgordHlwZWRlZiBpbnQzMl90IHVfYXRvbWljX2lu
dDMyX3Q7CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJQUxJWkVSKHZhbCkgdmFsCisKK2lu
bGluZSBpbnQzMl90IHVtdHhfbG9hZEFjcXVpcmUodV9hdG9taWNfaW50MzJfdCAmdmFyKSB7Cisg
ICAgaW50MzJfdCB2YWwgPSB2YXI7CisgICAgX19zeW5jX3N5bmNocm9uaXplKCk7CisgICAgcmV0
dXJuIHZhbDsKK30KKworaW5saW5lIHZvaWQgdW10eF9zdG9yZVJlbGVhc2UodV9hdG9taWNfaW50
MzJfdCAmdmFyLCBpbnQzMl90IHZhbCkgeworICAgIF9fc3luY19zeW5jaHJvbml6ZSgpOworICAg
IHZhciA9IHZhbDsKK30KKworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfaW5jKHVfYXRvbWlj
X2ludDMyX3QgKnApICB7CisgICByZXR1cm4gX19zeW5jX2FkZF9hbmRfZmV0Y2gocCwgMSk7Cit9
CisKK2lubGluZSBpbnQzMl90IHVtdHhfYXRvbWljX2RlYyh1X2F0b21pY19pbnQzMl90ICpwKSAg
eworICAgcmV0dXJuIF9fc3luY19zdWJfYW5kX2ZldGNoKHAsIDEpOworfQorVV9OQU1FU1BBQ0Vf
RU5ECisKKyNlbHNlCisKKy8qCisgKiBVbmtub3duIFBsYXRmb3JtLiBVc2Ugb3V0LW9mLWxpbmUg
ZnVuY3Rpb25zLCB3aGljaCBpbiB0dXJuIHVzZSBtdXRleGVzLgorICogICAgICAgICAgICAgICAg
ICAgU2xvdyBidXQgY29ycmVjdC4KKyAqLworCisjZGVmaW5lIFVfTk9fUExBVEZPUk1fQVRPTUlD
UworCitVX05BTUVTUEFDRV9CRUdJTgordHlwZWRlZiBpbnQzMl90IHVfYXRvbWljX2ludDMyX3Q7
CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJQUxJWkVSKHZhbCkgdmFsCisKK1VfQ09NTU9O
X0FQSSBpbnQzMl90IFVfRVhQT1JUMiAKK3VtdHhfbG9hZEFjcXVpcmUodV9hdG9taWNfaW50MzJf
dCAmdmFyKTsKKworVV9DT01NT05fQVBJIHZvaWQgVV9FWFBPUlQyIAordW10eF9zdG9yZVJlbGVh
c2UodV9hdG9taWNfaW50MzJfdCAmdmFyLCBpbnQzMl90IHZhbCk7CisKK1VfQ09NTU9OX0FQSSBp
bnQzMl90IFVfRVhQT1JUMiAKK3VtdHhfYXRvbWljX2luYyh1X2F0b21pY19pbnQzMl90ICpwKTsK
KworVV9DT01NT05fQVBJIGludDMyX3QgVV9FWFBPUlQyIAordW10eF9hdG9taWNfZGVjKHVfYXRv
bWljX2ludDMyX3QgKnApOworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmICAvKiBMb3cgTGV2
ZWwgQXRvbWljIE9wcyBQbGF0ZnJvbSBDaGFpbiAqLworCisKKworLyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgVUluaXRPbmNlIERlZmluaXRpb25zLgor
ICogICAgIFRoZXNlIGFyZSBwbGF0Zm9ybSBuZXV0cmFsLgorICoKKyAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqLworCitVX05BTUVTUEFDRV9CRUdJTgorCitzdHJ1Y3Qg
VUluaXRPbmNlIHsKKyAgICB1X2F0b21pY19pbnQzMl90ICAgZlN0YXRlOworICAgIFVFcnJvckNv
ZGUgICAgICAgZkVyckNvZGU7CisgICAgdm9pZCByZXNldCgpIHtmU3RhdGUgPSAwO307CisgICAg
VUJvb2wgaXNSZXNldCgpIHtyZXR1cm4gdW10eF9sb2FkQWNxdWlyZShmU3RhdGUpID09IDA7fTsK
Ky8vIE5vdGU6IGlzUmVzZXQoKSBpcyB1c2VkIGJ5IHNlcnZpY2UgcmVnaXN0cmF0aW9uIGNvZGUu
CisvLyAgICAgICAgICAgICAgICAgVGhyZWFkIHNhZmV0eSBvZiB0aGlzIHVzYWdlIG5lZWRzIHJl
dmlldy4KK307CisKKyNkZWZpbmUgVV9JTklUT05DRV9JTklUSUFMSVpFUiB7QVRPTUlDX0lOVDMy
X1RfSU5JVElBTElaRVIoMCksIFVfWkVST19FUlJPUn0KKworCitVX0NPTU1PTl9BUEkgVUJvb2wg
VV9FWFBPUlQyIHVtdHhfaW5pdEltcGxQcmVJbml0KFVJbml0T25jZSAmKTsKK1VfQ09NTU9OX0FQ
SSB2b2lkICBVX0VYUE9SVDIgdW10eF9pbml0SW1wbFBvc3RJbml0KFVJbml0T25jZSAmKTsKKwor
dGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCB1bXR4X2luaXRPbmNlKFVJbml0T25jZSAmdWlvLCBUICpv
YmosIHZvaWQgKFQ6OipmcCkoKSkgeworICAgIGlmICh1bXR4X2xvYWRBY3F1aXJlKHVpby5mU3Rh
dGUpID09IDIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAodW10eF9pbml0SW1w
bFByZUluaXQodWlvKSkgeworICAgICAgICAob2JqLT4qZnApKCk7CisgICAgICAgIHVtdHhfaW5p
dEltcGxQb3N0SW5pdCh1aW8pOworICAgIH0KK30KKworCisvLyB1bXR4X2luaXRPbmNlIHZhcmlh
bnQgZm9yIHBsYWluIGZ1bmN0aW9ucywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9ucy4KKy8vICAg
ICAgICAgICAgICAgTm8gY29udGV4dCBwYXJhbWV0ZXIuCitpbmxpbmUgdm9pZCB1bXR4X2luaXRP
bmNlKFVJbml0T25jZSAmdWlvLCB2b2lkICgqZnApKCkpIHsKKyAgICBpZiAodW10eF9sb2FkQWNx
dWlyZSh1aW8uZlN0YXRlKSA9PSAyKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYg
KHVtdHhfaW5pdEltcGxQcmVJbml0KHVpbykpIHsKKyAgICAgICAgKCpmcCkoKTsKKyAgICAgICAg
dW10eF9pbml0SW1wbFBvc3RJbml0KHVpbyk7CisgICAgfQorfQorCisvLyB1bXR4X2luaXRPbmNl
IHZhcmlhbnQgZm9yIHBsYWluIGZ1bmN0aW9ucywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9ucy4K
Ky8vICAgICAgICAgICAgICAgV2l0aCBFcnJvckNvZGUsIE5vIGNvbnRleHQgcGFyYW1ldGVyLgor
aW5saW5lIHZvaWQgdW10eF9pbml0T25jZShVSW5pdE9uY2UgJnVpbywgdm9pZCAoKmZwKShVRXJy
b3JDb2RlICYpLCBVRXJyb3JDb2RlICZlcnJDb2RlKSB7CisgICAgaWYgKFVfRkFJTFVSRShlcnJD
b2RlKSkgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICh1bXR4X2xvYWRBY3F1aXJl
KHVpby5mU3RhdGUpICE9IDIgJiYgdW10eF9pbml0SW1wbFByZUluaXQodWlvKSkgeworICAgICAg
ICAvLyBXZSBydW4gdGhlIGluaXRpYWxpemF0aW9uLgorICAgICAgICAoKmZwKShlcnJDb2RlKTsK
KyAgICAgICAgdWlvLmZFcnJDb2RlID0gZXJyQ29kZTsKKyAgICAgICAgdW10eF9pbml0SW1wbFBv
c3RJbml0KHVpbyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gU29tZW9uZSBlbHNlIGFscmVh
ZHkgcmFuIHRoZSBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgaWYgKFVfRkFJTFVSRSh1aW8uZkVy
ckNvZGUpKSB7CisgICAgICAgICAgICBlcnJDb2RlID0gdWlvLmZFcnJDb2RlOworICAgICAgICB9
CisgICAgfQorfQorCisvLyB1bXR4X2luaXRPbmNlIHZhcmlhbnQgZm9yIHBsYWluIGZ1bmN0aW9u
cywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9ucywKKy8vICAgICAgICAgICAgICAgd2l0aCBhIGNv
bnRleHQgcGFyYW1ldGVyLgordGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCB1bXR4X2luaXRPbmNlKFVJ
bml0T25jZSAmdWlvLCB2b2lkICgqZnApKFQpLCBUIGNvbnRleHQpIHsKKyAgICBpZiAodW10eF9s
b2FkQWNxdWlyZSh1aW8uZlN0YXRlKSA9PSAyKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgaWYgKHVtdHhfaW5pdEltcGxQcmVJbml0KHVpbykpIHsKKyAgICAgICAgKCpmcCkoY29udGV4
dCk7CisgICAgICAgIHVtdHhfaW5pdEltcGxQb3N0SW5pdCh1aW8pOworICAgIH0KK30KKworLy8g
dW10eF9pbml0T25jZSB2YXJpYW50IGZvciBwbGFpbiBmdW5jdGlvbnMsIG9yIHN0YXRpYyBjbGFz
cyBmdW5jdGlvbnMsCisvLyAgICAgICAgICAgICAgIHdpdGggYSBjb250ZXh0IHBhcmFtZXRlciBh
bmQgYW4gZXJyb3IgY29kZS4KK3RlbXBsYXRlPGNsYXNzIFQ+IHZvaWQgdW10eF9pbml0T25jZShV
SW5pdE9uY2UgJnVpbywgdm9pZCAoKmZwKShULCBVRXJyb3JDb2RlICYpLCBUIGNvbnRleHQsIFVF
cnJvckNvZGUgJmVyckNvZGUpIHsKKyAgICBpZiAoVV9GQUlMVVJFKGVyckNvZGUpKSB7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHVtdHhfbG9hZEFjcXVpcmUodWlvLmZTdGF0ZSkg
IT0gMiAmJiB1bXR4X2luaXRJbXBsUHJlSW5pdCh1aW8pKSB7CisgICAgICAgIC8vIFdlIHJ1biB0
aGUgaW5pdGlhbGl6YXRpb24uCisgICAgICAgICgqZnApKGNvbnRleHQsIGVyckNvZGUpOworICAg
ICAgICB1aW8uZkVyckNvZGUgPSBlcnJDb2RlOworICAgICAgICB1bXR4X2luaXRJbXBsUG9zdElu
aXQodWlvKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBTb21lb25lIGVsc2UgYWxyZWFkeSBy
YW4gdGhlIGluaXRpYWxpemF0aW9uLgorICAgICAgICBpZiAoVV9GQUlMVVJFKHVpby5mRXJyQ29k
ZSkpIHsKKyAgICAgICAgICAgIGVyckNvZGUgPSB1aW8uZkVyckNvZGU7CisgICAgICAgIH0KKyAg
ICB9Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyAqCisgKiAgTXV0ZXggRGVmaW5pdGlvbnMuIFBsYXRmb3JtIERl
cGVuZGVudCwgI2lmIHBsYXRmb3JtIGNoYWluIGZvbGxvd3MuCisgKiAgICAgICAgIFRPRE86ICBB
ZGQgYSBDKysxMSB2ZXJzaW9uLgorICogICAgICAgICAgICAgICAgTmVlZCB0byBjb252ZXJ0IGFs
bCBtdXRleCB1c2luZyBmaWxlcyB0byBDKysgZmlyc3QuCisgKgorICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZiBkZWZpbmVkKFVfVVNFUl9NVVRFWF9IKQor
Ly8gI2lubGN1ZGUgIlVfVVNFUl9NVVRFWF9IIgorI2luY2x1ZGUgVV9NVVRFWF9YU1RSKFVfVVNF
Ul9NVVRFWF9IKQorCisjZWxpZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkKKworLyogV2luZG93
cyBEZWZpbml0aW9ucy4KKyAqICAgIFdpbmRvd3MgY29tZXMgZmlyc3QgaW4gdGhlIHBsYXRmb3Jt
IGNoYWluLgorICogICAgQ3lnd2luIChhbmQgcG9zc2libHkgb3RoZXJzKSBoYXZlIGJvdGggV0lO
MzIgYW5kIFBPU0lYIEFQSXMuIFByZWZlciBXaW4zMiBpbiB0aGlzIGNhc2UuCisgKi8KKworCisv
KiBGb3IgQ1JJVElDQUxfU0VDVElPTiAqLworCisvKgorICogICBOb3RlOiB0aGVyZSBpcyBhbiBl
YXJsaWVyIGluY2x1ZGUgb2Ygd2luZG93cy5oIGluIHRoaXMgZmlsZSwgYnV0IGl0IGlzIGluCisg
KiAgICAgICAgIGRpZmZlcmVudCBjb25kaXRpb25hbHMuCisgKiAgICAgICAgIFRoaXMgb25lIGlz
IG5lZWRlZCBpZiB3ZSBhcmUgdXNpbmcgQysrMTEgZm9yIGF0b21pYyBvcHMsIGJ1dAorICogICAg
ICAgICB3aW4zMiBBUElzIGZvciBDcml0aWNhbCBTZWN0aW9ucy4KKyAqLworCisjIGRlZmluZSBX
SU4zMl9MRUFOX0FORF9NRUFOCisjIGRlZmluZSBWQ19FWFRSQUxFQU4KKyMgZGVmaW5lIE5PVVNF
UgorIyBkZWZpbmUgTk9TRVJWSUNFCisjIGRlZmluZSBOT0lNRQorIyBkZWZpbmUgTk9NQ1gKKyMg
aWZuZGVmIE5PTUlOTUFYCisjIGRlZmluZSBOT01JTk1BWAorIyBlbmRpZgorIyBpbmNsdWRlIDx3
aW5kb3dzLmg+CisKKwordHlwZWRlZiBzdHJ1Y3QgVU11dGV4IHsKKyAgICBpY3U6OlVJbml0T25j
ZSAgICBmSW5pdE9uY2U7CisgICAgQ1JJVElDQUxfU0VDVElPTiAgZkNTOworfSBVTXV0ZXg7CisK
Ky8qIEluaXRpYWxpemVyIGZvciBhIHN0YXRpYyBVTVVURVguIERlbGliZXJhdGVseSBjb250YWlu
cyBubyB2YWx1ZSBmb3IgdGhlCisgKiAgQ1JJVElDQUxfU0VDVElPTi4KKyAqLworI2RlZmluZSBV
X01VVEVYX0lOSVRJQUxJWkVSIHtVX0lOSVRPTkNFX0lOSVRJQUxJWkVSfQorCitzdHJ1Y3QgVUNv
bmRpdGlvblZhciB7CisgICAgSEFORExFICAgICAgICAgICBmRW50cnlHYXRlOworICAgIEhBTkRM
RSAgICAgICAgICAgZkV4aXRHYXRlOworICAgIGludDMyX3QgICAgICAgICAgZldhaXRDb3VudDsK
K307CisKKyNkZWZpbmUgVV9DT05ESVRJT05fSU5JVElBTElaRVIge05VTEwsIE5VTEwsIDB9Cisg
ICAgCisKKworI2VsaWYgVV9QTEFURk9STV9JTVBMRU1FTlRTX1BPU0lYCisKKy8qCisgKiAgUE9T
SVggcGxhdGZvcm0KKyAqLworCisjaW5jbHVkZSA8cHRocmVhZC5oPgorCitzdHJ1Y3QgVU11dGV4
IHsKKyAgICBwdGhyZWFkX211dGV4X3QgIGZNdXRleDsKK307Cit0eXBlZGVmIHN0cnVjdCBVTXV0
ZXggVU11dGV4OworI2RlZmluZSBVX01VVEVYX0lOSVRJQUxJWkVSICB7UFRIUkVBRF9NVVRFWF9J
TklUSUFMSVpFUn0KKworc3RydWN0IFVDb25kaXRpb25WYXIgeworICAgIHB0aHJlYWRfY29uZF90
ICAgZkNvbmRpdGlvbjsKK307CisjZGVmaW5lIFVfQ09ORElUSU9OX0lOSVRJQUxJWkVSIHtQVEhS
RUFEX0NPTkRfSU5JVElBTElaRVJ9CisKKyNlbHNlCisKKy8qCisgKiAgVW5rbm93IHBsYXRmb3Jt
IHR5cGUuCisgKiAgICAgIFRoaXMgaXMgYW4gZXJyb3IgY29uZGl0aW9uLiBJQ1UgcmVxdWlyZXMg
bXV0ZXhlcy4KKyAqLworCisjZXJyb3IgVW5rbm93biBQbGF0Zm9ybS4KKworI2VuZGlmCisKKwor
CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgTXV0ZXggSW1wbGVtZW50
YXRpb24gZnVuY3Rpb24gZGVjbGFyYXRhdGlvbnMuCisgKiAgICAgRGVjbGFyYXRpb25zIGFyZSBw
bGF0Zm9ybSBuZXV0cmFsLgorICogICAgIEltcGxlbWVudGF0aW9ucywgaW4gdW11dGV4LmNwcCwg
YXJlIHBsYXRmb3JtIHNwZWNpZmljLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov
CisKKy8qIExvY2sgYSBtdXRleC4KKyAqIEBwYXJhbSBtdXRleCBUaGUgZ2l2ZW4gbXV0ZXggdG8g
YmUgbG9ja2VkLiAgUGFzcyBOVUxMIHRvIHNwZWNpZnkKKyAqICAgICAgICAgICAgICB0aGUgZ2xv
YmFsIElDVSBtdXRleC4gIFJlY3Vyc2l2ZSBsb2NrcyBhcmUgYW4gZXJyb3IKKyAqICAgICAgICAg
ICAgICBhbmQgbWF5IGNhdXNlIGEgZGVhZGxvY2sgb24gc29tZSBwbGF0Zm9ybXMuCisgKi8KK1Vf
SU5URVJOQUwgdm9pZCBVX0VYUE9SVDIgdW10eF9sb2NrKFVNdXRleCogbXV0ZXgpOworCisvKiBV
bmxvY2sgYSBtdXRleC4KKyAqIEBwYXJhbSBtdXRleCBUaGUgZ2l2ZW4gbXV0ZXggdG8gYmUgdW5s
b2NrZWQuICBQYXNzIE5VTEwgdG8gc3BlY2lmeQorICogICAgICAgICAgICAgIHRoZSBnbG9iYWwg
SUNVIG11dGV4LgorICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyIHVtdHhfdW5sb2NrIChV
TXV0ZXgqIG11dGV4KTsKKworLyoKKyAqIFdhaXQgb24gYSBjb25kaXRpb24gdmFyaWFibGUuCisg
KiBUaGUgY2FsbGluZyB0aHJlYWQgd2lsbCB1bmxvY2sgdGhlIG11dGV4IGFuZCB3YWl0IG9uIHRo
ZSBjb25kaXRpb24gdmFyaWFibGUuCisgKiBUaGUgbXV0ZXggbXVzdCBiZSBsb2NrZWQgYnkgdGhl
IGNhbGxpbmcgdGhyZWFkIHdoZW4gaW52b2tpbmcgdGhpcyBmdW5jdGlvbi4KKyAqCisgKiBAcGFy
YW0gY29uZCB0aGUgY29uZGl0aW9uIHZhcmlhYmxlIHRvIHdhaXQgb24uCisgKiBAcGFyYW0gbXV0
ZXggdGhlIGFzc29jaWF0ZWQgbXV0ZXguCisgKi8KKworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JU
MiB1bXR4X2NvbmRXYWl0KFVDb25kaXRpb25WYXIgKmNvbmQsIFVNdXRleCAqbXV0ZXgpOworCisK
Ky8qCisgKiBCcm9hZGNhc3Qgd2FrZXVwIG9mIGFsbCB0aHJlYWRzIHdhaXRpbmcgb24gYSBDb25k
aXRpb24uCisgKiBUaGUgYXNzb2NpYXRlZCBtdXRleCBtdXN0IGJlIGxvY2tlZCBieSB0aGUgY2Fs
bGluZyB0aHJlYWQgd2hlbiBjYWxsaW5nCisgKiB0aGlzIGZ1bmN0aW9uOyB0aGlzIGlzIGEgdGVt
cG9yYXJ5IElDVSByZXN0cmljdGlvbi4KKyAqIAorICogQHBhcmFtIGNvbmQgdGhlIGNvbmRpdGlv
biB2YXJpYWJsZS4KKyAqLworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JUMiB1bXR4X2NvbmRCcm9h
ZGNhc3QoVUNvbmRpdGlvblZhciAqY29uZCk7CisKKy8qCisgKiBTaWduYWwgYSBjb25kaXRpb24g
dmFyaWFibGUsIHdha2luZyB1cCBvbmUgd2FpdGluZyB0aHJlYWQuCisgKiBDQVVUSU9OOiBEbyBu
b3QgdXNlLiBQbGFjZSBob2xkZXIgb25seS4gTm90IGltcGxlbWVudGVkIGZvciBXaW5kb3dzLgor
ICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyIHVtdHhfY29uZFNpZ25hbChVQ29uZGl0aW9u
VmFyICpjb25kKTsKKworI2VuZGlmIC8qIFVNVVRFWF9IICovCisvKmVvZiovCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VuZXdkYXRhLmMgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VuZXdkYXRhLmMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWVhNjBkNTY2ODM5NjQwMzdiYjM2ZGU3MjhiNTJmMWJjNDFmZWM2NgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW5ld2Rh
dGEuYwpAQCAtMCwwICsxLDI3NCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyog
ICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5l
cworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVuZXdkYXRhLmMKKyogICBl
bmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGlu
ZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0MjUKKyogICBjcmVhdGVkIGJ5
OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSAi
dW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3B1dGlsLmgiCisjaW5jbHVkZSAi
dW5pY29kZS91c3RyaW5nLmgiCisjaW5jbHVkZSAiY21lbW9yeS5oIgorI2luY2x1ZGUgImNzdHJp
bmcuaCIKKyNpbmNsdWRlICJmaWxlc3RybS5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIK
KyNpbmNsdWRlICJ1bmV3ZGF0YS5oIgorCitzdHJ1Y3QgVU5ld0RhdGFNZW1vcnkgeworICAgIEZp
bGVTdHJlYW0gKmZpbGU7CisgICAgdWludDE2X3QgaGVhZGVyU2l6ZTsKKyAgICB1aW50OF90IG1h
Z2ljMSwgbWFnaWMyOworfTsKKworVV9DQVBJIFVOZXdEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1
ZGF0YV9jcmVhdGUoY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFy
ICpuYW1lLAorICAgICAgICAgICAgIGNvbnN0IFVEYXRhSW5mbyAqcEluZm8sCisgICAgICAgICAg
ICAgY29uc3QgY2hhciAqY29tbWVudCwKKyAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKSB7CisgICAgVU5ld0RhdGFNZW1vcnkgKnBEYXRhOworICAgIHVpbnQxNl90IGhlYWRlclNp
emUsIGNvbW1lbnRMZW5ndGg7CisgICAgY2hhciBmaWxlbmFtZVs1MTJdOworICAgIHVpbnQ4X3Qg
Ynl0ZXNbMTZdOworICAgIGludCBsZW5ndGg7CisKKyAgICBpZihwRXJyb3JDb2RlPT1OVUxMIHx8
IFVfRkFJTFVSRSgqcEVycm9yQ29kZSkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfSBl
bHNlIGlmKG5hbWU9PU5VTEwgfHwgKm5hbWU9PTAgfHwgcEluZm89PU5VTEwpIHsKKyAgICAgICAg
KnBFcnJvckNvZGU9VV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SOworICAgICAgICByZXR1cm4gTlVM
TDsKKyAgICB9CisKKyAgICAvKiBhbGxvY2F0ZSB0aGUgZGF0YSBzdHJ1Y3R1cmUgKi8KKyAgICBw
RGF0YT0oVU5ld0RhdGFNZW1vcnkgKil1cHJ2X21hbGxvYyhzaXplb2YoVU5ld0RhdGFNZW1vcnkp
KTsKKyAgICBpZihwRGF0YT09TlVMTCkgeworICAgICAgICAqcEVycm9yQ29kZT1VX01FTU9SWV9B
TExPQ0FUSU9OX0VSUk9SOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgCisgICAg
LyogQ2hlY2sgdGhhdCB0aGUgZnVsbCBwYXRoIHdvbid0IGJlIHRvbyBsb25nICovCisgICAgbGVu
Z3RoID0gMDsJCQkJCS8qIFN0YXJ0IHdpdGggbm90aGluZyAqLworICAgIGlmKGRpciAhPSBOVUxM
ICAmJiAqZGlyICE9MCkJLyogQWRkIGRpcmVjdG9yeSBsZW5ndGggaWYgb25lIHdhcyBnaXZlbiAq
LworICAgIHsKKyAgICAJbGVuZ3RoICs9IHN0cmxlbihkaXIpOworCQorICAgIAkvKiBBZGQgMSBp
ZiBkaXIgZG9lc24ndCBlbmQgd2l0aCBwYXRoIHNlcCAqLworICAgICAgICBpZiAoZGlyW3N0cmxl
bihkaXIpIC0gMV0hPSBVX0ZJTEVfU0VQX0NIQVIpIHsKKyAgICAgICAgICAgIGxlbmd0aCsrOwor
ICAgICAgICB9CisJfQorICAgIGxlbmd0aCArPSBzdHJsZW4obmFtZSk7CQkvKiBBZGQgdGhlIGZp
bGVuYW1lIGxlbmd0aCAqLworCisgICAgaWYodHlwZSAhPSBOVUxMICAmJiAqdHlwZSAhPTApIHsg
LyogQWRkIGRpcmVjdG9yeSBsZW5ndGggaWYgIGdpdmVuICovCisgICAgICAgIGxlbmd0aCArPSBz
dHJsZW4odHlwZSk7CisgICAgfQorCisgICAgICAgIAorICAgICAvKiBMREggYnVmZmVyIExlbmd0
aCBlcnJvciBjaGVjayAqLworICAgIGlmKGxlbmd0aCAgPiAoc2l6ZW9mKGZpbGVuYW1lKSAtIDEp
KQorICAgIHsKKyAgIAkgICAgKnBFcnJvckNvZGUgPSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUjsK
KyAgIAkgICAgdXBydl9mcmVlKHBEYXRhKTsKKwkgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAg
CisgICAgLyogb3BlbiB0aGUgb3V0cHV0IGZpbGUgKi8KKyAgICBpZihkaXIhPU5VTEwgJiYgKmRp
ciE9MCkgeyAvKiBpZiBkaXIgaGFzIGEgdmFsdWUsIHdlIHByZXBlbmQgaXQgdG8gdGhlIGZpbGVu
YW1lICovCisgICAgICAgIGNoYXIgKnA9ZmlsZW5hbWUrc3RybGVuKGRpcik7CisgICAgICAgIHVw
cnZfc3RyY3B5KGZpbGVuYW1lLCBkaXIpOworICAgICAgICBpZiAoKihwLTEpIT1VX0ZJTEVfU0VQ
X0NIQVIpIHsKKyAgICAgICAgICAgICpwKys9VV9GSUxFX1NFUF9DSEFSOworICAgICAgICAgICAg
KnA9MDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7IC8qIG90aGVyd2lzZSwgd2UnbGwgb3V0cHV0
IHRvIHRoZSBjdXJyZW50IGRpciAqLworICAgICAgICBmaWxlbmFtZVswXT0wOworICAgIH0KKyAg
ICB1cHJ2X3N0cmNhdChmaWxlbmFtZSwgbmFtZSk7CisgICAgaWYodHlwZSE9TlVMTCAmJiAqdHlw
ZSE9MCkgeworICAgICAgICB1cHJ2X3N0cmNhdChmaWxlbmFtZSwgIi4iKTsKKyAgICAgICAgdXBy
dl9zdHJjYXQoZmlsZW5hbWUsIHR5cGUpOworICAgIH0KKyAgICBwRGF0YS0+ZmlsZT1UX0ZpbGVT
dHJlYW1fb3BlbihmaWxlbmFtZSwgIndiIik7CisgICAgaWYocERhdGEtPmZpbGU9PU5VTEwpIHsK
KyAgICAgICAgdXBydl9mcmVlKHBEYXRhKTsKKyAgICAgICAgKnBFcnJvckNvZGU9VV9GSUxFX0FD
Q0VTU19FUlJPUjsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgLyogd3JpdGUg
dGhlIGhlYWRlciBpbmZvcm1hdGlvbiAqLworICAgIGhlYWRlclNpemU9KHVpbnQxNl90KShwSW5m
by0+c2l6ZSs0KTsKKyAgICBpZihjb21tZW50IT1OVUxMICYmICpjb21tZW50IT0wKSB7CisgICAg
ICAgIGNvbW1lbnRMZW5ndGg9KHVpbnQxNl90KSh1cHJ2X3N0cmxlbihjb21tZW50KSsxKTsKKyAg
ICAgICAgaGVhZGVyU2l6ZSs9Y29tbWVudExlbmd0aDsKKyAgICB9IGVsc2UgeworICAgICAgICBj
b21tZW50TGVuZ3RoPTA7CisgICAgfQorCisgICAgLyogd3JpdGUgdGhlIHNpemUgb2YgdGhlIGhl
YWRlciwgdGFrZSBwYWRkaW5nIGludG8gYWNjb3VudCAqLworICAgIHBEYXRhLT5oZWFkZXJTaXpl
PSh1aW50MTZfdCkoKGhlYWRlclNpemUrMTUpJn4weGYpOworICAgIHBEYXRhLT5tYWdpYzE9MHhk
YTsKKyAgICBwRGF0YS0+bWFnaWMyPTB4Mjc7CisgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRh
LT5maWxlLCAmcERhdGEtPmhlYWRlclNpemUsIDQpOworCisgICAgLyogd3JpdGUgdGhlIGluZm9y
bWF0aW9uIGRhdGEgKi8KKyAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsIHBJbmZv
LCBwSW5mby0+c2l6ZSk7CisKKyAgICAvKiB3cml0ZSB0aGUgY29tbWVudCAqLworICAgIGlmKGNv
bW1lbnRMZW5ndGg+MCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUs
IGNvbW1lbnQsIGNvbW1lbnRMZW5ndGgpOworICAgIH0KKworICAgIC8qIHdyaXRlIHBhZGRpbmcg
Ynl0ZXMgdG8gYWxpZ24gdGhlIGRhdGEgc2VjdGlvbiB0byAxNiBieXRlcyAqLworICAgIGhlYWRl
clNpemUmPTB4ZjsKKyAgICBpZihoZWFkZXJTaXplIT0wKSB7CisgICAgICAgIGhlYWRlclNpemU9
KHVpbnQxNl90KSgxNi1oZWFkZXJTaXplKTsKKyAgICAgICAgdXBydl9tZW1zZXQoYnl0ZXMsIDAs
IGhlYWRlclNpemUpOworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsIGJ5
dGVzLCBoZWFkZXJTaXplKTsKKyAgICB9CisKKyAgICByZXR1cm4gcERhdGE7Cit9CisKK1VfQ0FQ
SSB1aW50MzJfdCBVX0VYUE9SVDIKK3VkYXRhX2ZpbmlzaChVTmV3RGF0YU1lbW9yeSAqcERhdGEs
IFVFcnJvckNvZGUgKnBFcnJvckNvZGUpIHsKKyAgICB1aW50MzJfdCBmaWxlTGVuZ3RoPTA7CisK
KyAgICBpZihwRXJyb3JDb2RlPT1OVUxMIHx8IFVfRkFJTFVSRSgqcEVycm9yQ29kZSkpIHsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYocERhdGEhPU5VTEwpIHsKKyAgICAgICAg
aWYocERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgICAgIC8qIGZmbHVzaChwRGF0YS0+Zmls
ZSk7Ki8KKyAgICAgICAgICAgIGZpbGVMZW5ndGg9VF9GaWxlU3RyZWFtX3NpemUocERhdGEtPmZp
bGUpOworICAgICAgICAgICAgaWYoVF9GaWxlU3RyZWFtX2Vycm9yKHBEYXRhLT5maWxlKSkgewor
ICAgICAgICAgICAgICAgICpwRXJyb3JDb2RlPVVfRklMRV9BQ0NFU1NfRVJST1I7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZpbGVMZW5ndGgtPXBEYXRhLT5oZWFkZXJT
aXplOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVF9GaWxlU3RyZWFtX2Nsb3NlKHBEYXRh
LT5maWxlKTsKKyAgICAgICAgfQorICAgICAgICB1cHJ2X2ZyZWUocERhdGEpOworICAgIH0KKwor
ICAgIHJldHVybiBmaWxlTGVuZ3RoOworfQorCisvKiBkdW1teSBVRGF0YUluZm8gY2YuIHVkYXRh
LmggKi8KK3N0YXRpYyBjb25zdCBVRGF0YUluZm8gZHVtbXlEYXRhSW5mbyA9IHsKKyAgICBzaXpl
b2YoVURhdGFJbmZvKSwKKyAgICAwLAorCisgICAgVV9JU19CSUdfRU5ESUFOLAorICAgIFVfQ0hB
UlNFVF9GQU1JTFksCisgICAgVV9TSVpFT0ZfVUNIQVIsCisgICAgMCwKKworICAgIHsgMCwgMCwg
MCwgMCB9LCAgICAgICAgICAgICAgICAgLyogZHVtbXkgZGF0YUZvcm1hdCAqLworICAgIHsgMCwg
MCwgMCwgMCB9LCAgICAgICAgICAgICAgICAgLyogZHVtbXkgZm9ybWF0VmVyc2lvbiAqLworICAg
IHsgMCwgMCwgMCwgMCB9ICAgICAgICAgICAgICAgICAgLyogZHVtbXkgZGF0YVZlcnNpb24gKi8K
K307CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfY3JlYXRlRHVtbXkoY29uc3QgY2hh
ciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLCBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKSB7CisgICAgaWYoVV9TVUNDRVNTKCpwRXJyb3JDb2RlKSkgeworICAgICAgICB1
ZGF0YV9maW5pc2godWRhdGFfY3JlYXRlKGRpciwgdHlwZSwgbmFtZSwgJmR1bW15RGF0YUluZm8s
IE5VTEwsIHBFcnJvckNvZGUpLCBwRXJyb3JDb2RlKTsKKyAgICAgICAgaWYoVV9GQUlMVVJFKCpw
RXJyb3JDb2RlKSkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJvciAlcyB3cml0
aW5nIGR1bW15IGRhdGEgZmlsZSAlcyIgVV9GSUxFX1NFUF9TVFJJTkcgIiVzLiVzXG4iLAorICAg
ICAgICAgICAgICAgICAgICB1X2Vycm9yTmFtZSgqcEVycm9yQ29kZSksIGRpciwgbmFtZSwgdHlw
ZSk7CisgICAgICAgICAgICBleGl0KCpwRXJyb3JDb2RlKTsKKyAgICAgICAgfQorICAgIH0KK30K
KworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZTgoVU5ld0RhdGFNZW1vcnkgKnBE
YXRhLCB1aW50OF90IGJ5dGUpIHsKKyAgICBpZihwRGF0YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9
TlVMTCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsICZieXRlLCAx
KTsKKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGUxNihVTmV3
RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQxNl90IHdvcmQpIHsKKyAgICBpZihwRGF0YSE9TlVMTCAm
JiBwRGF0YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEt
PmZpbGUsICZ3b3JkLCAyKTsKKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRh
dGFfd3JpdGUzMihVTmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQzMl90IHd5ZGUpIHsKKyAgICBp
ZihwRGF0YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBUX0ZpbGVTdHJl
YW1fd3JpdGUocERhdGEtPmZpbGUsICZ3eWRlLCA0KTsKKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lk
IFVfRVhQT1JUMgordWRhdGFfd3JpdGVCbG9jayhVTmV3RGF0YU1lbW9yeSAqcERhdGEsIGNvbnN0
IHZvaWQgKnMsIGludDMyX3QgbGVuZ3RoKSB7CisgICAgaWYocERhdGEhPU5VTEwgJiYgcERhdGEt
PmZpbGUhPU5VTEwpIHsKKyAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAgICAgIFRfRmls
ZVN0cmVhbV93cml0ZShwRGF0YS0+ZmlsZSwgcywgbGVuZ3RoKTsKKyAgICAgICAgfQorICAgIH0K
K30KKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZVBhZGRpbmcoVU5ld0RhdGFN
ZW1vcnkgKnBEYXRhLCBpbnQzMl90IGxlbmd0aCkgeworICAgIHN0YXRpYyBjb25zdCB1aW50OF90
IHBhZGRpbmdbMTZdPXsKKyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwKKyAgICAgICAg
MHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwKKyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwK
KyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYQorICAgIH07CisgICAgaWYocERhdGEhPU5V
TEwgJiYgcERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgd2hpbGUobGVuZ3RoPj0xNikgewor
ICAgICAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBwYWRkaW5nLCAxNik7
CisgICAgICAgICAgICBsZW5ndGgtPTE2OworICAgICAgICB9CisgICAgICAgIGlmKGxlbmd0aD4w
KSB7CisgICAgICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsIHBhZGRpbmcs
IGxlbmd0aCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgor
dWRhdGFfd3JpdGVTdHJpbmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBjb25zdCBjaGFyICpzLCBp
bnQzMl90IGxlbmd0aCkgeworICAgIGlmKHBEYXRhIT1OVUxMICYmIHBEYXRhLT5maWxlIT1OVUxM
KSB7CisgICAgICAgIGlmKGxlbmd0aD09LTEpIHsKKyAgICAgICAgICAgIGxlbmd0aD0oaW50MzJf
dCl1cHJ2X3N0cmxlbihzKTsKKyAgICAgICAgfQorICAgICAgICBpZihsZW5ndGg+MCkgeworICAg
ICAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBzLCBsZW5ndGgpOworICAg
ICAgICB9CisgICAgfQorfQorCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlVVN0
cmluZyhVTmV3RGF0YU1lbW9yeSAqcERhdGEsIGNvbnN0IFVDaGFyICpzLCBpbnQzMl90IGxlbmd0
aCkgeworICAgIGlmKHBEYXRhIT1OVUxMICYmIHBEYXRhLT5maWxlIT1OVUxMKSB7CisgICAgICAg
IGlmKGxlbmd0aD09LTEpIHsKKyAgICAgICAgICAgIGxlbmd0aD11X3N0cmxlbihzKTsKKyAgICAg
ICAgfQorICAgICAgICBpZihsZW5ndGg+MCkgeworICAgICAgICAgICAgVF9GaWxlU3RyZWFtX3dy
aXRlKHBEYXRhLT5maWxlLCBzLCBsZW5ndGgqc2l6ZW9mKFVDaGFyKSk7CisgICAgICAgIH0KKyAg
ICB9Cit9CisKKy8qCisgKiBIZXksIEVtYWNzLCBwbGVhc2Ugc2V0IHRoZSBmb2xsb3dpbmc6Cisg
KgorICogTG9jYWwgVmFyaWFibGVzOgorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6
CisgKgorICovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9nZW5icmsvdW5ld2RhdGEuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9n
ZW5icmsvdW5ld2RhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjViOGU5Zjc0OTg0NzQyN2QxMGFiY2ViZTJi
NDNhZWI4NzAzZjc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL2dlbmJyay91bmV3ZGF0YS5oCkBAIC0wLDAgKzEsMTExIEBACisvKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEwLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBu
YW1lOiAgdW5ld2RhdGEuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6
ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDE5
OTlvY3QyNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisjaWZuZGVm
IF9fVU5FV0RBVEFfSF9fCisjZGVmaW5lIF9fVU5FV0RBVEFfSF9fCisKKyNpbmNsdWRlICJ1bmlj
b2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKworLyogQVBJIGZvciB3
cml0aW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0qLworCisvKiogQG1lbW8gRm9yd2FyZCBkZWNsYXJhdGlvbiBvZiB0aGUgZGF0YSBt
ZW1vcnkgY3JlYXRpb24gdHlwZS4gKi8KK3R5cGVkZWYgc3RydWN0IFVOZXdEYXRhTWVtb3J5IFVO
ZXdEYXRhTWVtb3J5OworCisvKioKKyAqIENyZWF0ZSBhIG5ldyBiaW5hcnkgZGF0YSBmaWxlLgor
ICogVGhlIGZpbGUtd3JpdGluZyA8Y29kZT51ZGF0YV88L2NvZGU+IGZ1bmN0aW9ucyBmYWNpbGl0
YXRlIHdyaXRpbmcKKyAqIGJpbmFyeSBkYXRhIGZpbGVzIHRoYXQgY2FuIGJlIHJlYWQgYnkgSUNV
J3MgPGNvZGU+dWRhdGE8L2NvZGU+IEFQSS4KKyAqIFRoaXMgZnVuY3Rpb24gb3BlbnMgYSBuZXcg
ZmlsZSB3aXRoIGEgZmlsZW5hbWUgZGV0ZXJtaW5lZCBmcm9tIGl0cworICogcGFyYW1ldGVycyAt
IG9mIHRoZSBmb3JtICJuYW1lLnR5cGUiLgorICogSXQgdGhlbiB3cml0ZXMgYSBzaG9ydCBoZWFk
ZXIsIGZvbGxvd2VkIGJ5IHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+CisgKiBzdHJ1Y3R1cmUg
YW5kLCBvcHRpb25hbGx5LCBieSB0aGUgY29tbWVudCBzdHJpbmcuCisgKiBJdCB0aGVuIHdyaXRl
cyBwYWRkaW5nIGJ5dGVzIHRvIHJvdW5kIHVwIHRvIGEgbXVsdGlwbGUgb2YgMTYgYnl0ZXMuCisg
KiBTdWJzZXF1ZW50IHdyaXRlIG9wZXJhdGlvbnMgd2lsbCB0aHVzIHN0YXJ0IGF0IGFuIG9mZnNl
dCBpbiB0aGUgZmlsZQorICogdGhhdCBpcyBhIG11bHRpcGxlIG9mIDE2LiA8Y29kZT51ZGF0YV9n
ZXRNZW1vcnkoKTwvY29kZT4gd2lsbCByZXR1cm4KKyAqIGEgcG9pbnRlciB0byB0aGlzIHNhbWUg
c3RhcnRpbmcgb2Zmc2V0LgorICoKKyAqIFNlZSB1ZGF0YS5oIC4KKyAqCisgKiBAcGFyYW0gZGly
IEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIGRhdGEgd2ls
bCBiZQorICogICAgICAgICAgICB3cml0dGVuLiBJZiA8Y29kZT5OVUxMPC9jb2RlPiwgdGhlbgor
ICogICAgICAgICAgICA8Y29kZT51X2dldERhdGFEaXJlY3Rvcnk8L2NvZGU+IGlzIHVzZWQuCisg
KiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRv
IGJlIHdyaXR0ZW4uCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVzb3VyY2UgYnVuZGxl
cyBhcmUgd3JpdHRlbiB3aXRoIHR5cGUgInJlcyIsCisgKiAgICAgICAgICAgICBjb252ZXJzaW9u
IHRhYmxlcyB3aXRoIHR5cGUgImNudiIuCisgKiAgICAgICAgICAgICBUaGlzIG1heSBiZSA8Y29k
ZT5OVUxMPC9jb2RlPiBvciBlbXB0eS4KKyAqIEBwYXJhbSBuYW1lIEEgc3RyaW5nIHRoYXQgc3Bl
Y2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBkYXRhLgorICogQHBhcmFtIHBJbmZvIEEgcG9pbnRlciB0
byBhIGNvcnJlY3RseSBmaWxsZWQgPGNvZGU+VURhdGFJbmZvPC9jb2RlPgorICogICAgICAgICAg
ICAgIHN0cnVjdHVyZSB0aGF0IHdpbGwgYmUgY29waWVkIGludG8gdGhlIGZpbGUuCisgKiBAcGFy
YW0gY29tbWVudCBBIHN0cmluZyAoZS5nLiwgYSBjb3B5cmlnaHQgc3RhdGVtZW50KSB0aGF0IHdp
bGwgYmUKKyAqICAgICAgICAgICAgICAgIGNvcGllZCBpbnRvIHRoZSBmaWxlIGlmIGl0IGlzIG5v
dCA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAgICAgICAgICAgb3IgZW1wdHkuIFRoaXMgc3Ry
aW5nIHNlcnZlcyBvbmx5IGFzIGEgY29tbWVudCBpbiB0aGUgYmluYXJ5CisgKiAgICAgICAgICAg
ICAgICBmaWxlLiBJdCB3aWxsIG5vdCBiZSBhY2Nlc3NpYmxlIGJ5IGFueSBBUEkuCisgKiBAcGFy
YW0gcEVycm9yQ29kZSBBbiBJQ1UgVUVycm9yQ29kZSBwYXJhbWV0ZXIuIEl0IG11c3Qgbm90IGJl
IDxjb2RlPk5VTEw8L2NvZGU+LgorICovCitVX0NBUEkgVU5ld0RhdGFNZW1vcnkgKiBVX0VYUE9S
VDIKK3VkYXRhX2NyZWF0ZShjb25zdCBjaGFyICpkaXIsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0
IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgY29uc3QgVURhdGFJbmZvICpwSW5mbywKKyAgICAg
ICAgICAgICBjb25zdCBjaGFyICpjb21tZW50LAorICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBF
cnJvckNvZGUpOworCisvKiogQG1lbW8gQ2xvc2UgYSBuZXdseSB3cml0dGVuIGJpbmFyeSBmaWxl
LiAqLworVV9DQVBJIHVpbnQzMl90IFVfRVhQT1JUMgordWRhdGFfZmluaXNoKFVOZXdEYXRhTWVt
b3J5ICpwRGF0YSwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBh
IGR1bW15IGRhdGEgZmlsZS4gKi8KK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfY3JlYXRl
RHVtbXkoY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1l
LCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqIEBtZW1vIFdyaXRlIGFuIDgtYml0IGJ5
dGUgdG8gdGhlIGZpbGUuICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlOChV
TmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQ4X3QgYnl0ZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBh
IDE2LWJpdCB3b3JkIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0
YV93cml0ZTE2KFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgdWludDE2X3Qgd29yZCk7CisKKy8qKiBA
bWVtbyBXcml0ZSBhIDMyLWJpdCB3b3JkIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9F
WFBPUlQyCit1ZGF0YV93cml0ZTMyKFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgdWludDMyX3Qgd3lk
ZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBhIGJsb2NrIG9mIGJ5dGVzIHRvIHRoZSBmaWxlLiAqLwor
VV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZUJsb2NrKFVOZXdEYXRhTWVtb3J5ICpw
RGF0YSwgY29uc3Qgdm9pZCAqcywgaW50MzJfdCBsZW5ndGgpOworCisvKiogQG1lbW8gV3JpdGUg
YSBibG9jayBvZiBhcmJpdHJhcnkgcGFkZGluZyBieXRlcyB0byB0aGUgZmlsZS4gKi8KK1VfQ0FQ
SSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGVQYWRkaW5nKFVOZXdEYXRhTWVtb3J5ICpwRGF0
YSwgaW50MzJfdCBsZW5ndGgpOworCisvKiogQG1lbW8gV3JpdGUgYSA8Y29kZT5jaGFyKjwvY29k
ZT4gc3RyaW5nIG9mIHBsYXRmb3JtICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgdG8gdGhlIGZpbGUu
ICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlU3RyaW5nKFVOZXdEYXRhTWVt
b3J5ICpwRGF0YSwgY29uc3QgY2hhciAqcywgaW50MzJfdCBsZW5ndGgpOworCisvKiogQG1lbW8g
V3JpdGUgYSA8Y29kZT5VQ2hhcio8L2NvZGU+IHN0cmluZyBvZiBVbmljb2RlIGNoYXJhY3RlciBj
b2RlIHVuaXRzIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93
cml0ZVVTdHJpbmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBjb25zdCBVQ2hhciAqcywgaW50MzJf
dCBsZW5ndGgpOworCisKKy8qCisgKiBIZXksIEVtYWNzLCBwbGVhc2Ugc2V0IHRoZSBmb2xsb3dp
bmc6CisgKgorICogTG9jYWwgVmFyaWFibGVzOgorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisg
KiBFbmQ6CisgKgorICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5jIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1ZWZjMTcwY2JkZjc1
MTNkZDU3ZWJmNzc3OWI5ODJlOTdhMjFkOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25zLmMKQEAgLTAsMCArMSwxMjIg
QEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAyMDAw
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
ICAgZmlsZSBuYW1lOiAgdW9wdGlvbnMuYworKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAg
dGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0
ZWQgb246IDIwMDBhcHIxNworKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqCisq
ICAgVGhpcyBmaWxlIHByb3ZpZGVzIGEgY29tbWFuZCBsaW5lIGFyZ3VtZW50IHBhcnNlci4KKyov
CisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgImNzdHJpbmcuaCIKKyNp
bmNsdWRlICJ1b3B0aW9ucy5oIgorCitVX0NBUEkgaW50IFVfRVhQT1JUMgordV9wYXJzZUFyZ3Mo
aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSwKKyAgICAgICAgICAgIGludCBvcHRpb25Db3VudCwgVU9w
dGlvbiBvcHRpb25zW10pIHsKKyAgICBjaGFyICphcmc7CisgICAgaW50IGk9MSwgcmVtYWluaW5n
PTE7CisgICAgY2hhciBjLCBzdG9wT3B0aW9ucz0wOworCisgICAgd2hpbGUoaTxhcmdjKSB7Cisg
ICAgICAgIGFyZz1hcmd2W2ldOworICAgICAgICBpZighc3RvcE9wdGlvbnMgJiYgKmFyZz09Jy0n
ICYmIChjPWFyZ1sxXSkhPTApIHsKKyAgICAgICAgICAgIC8qIHByb2Nlc3MgYW4gb3B0aW9uICov
CisgICAgICAgICAgICBVT3B0aW9uICpvcHRpb249TlVMTDsKKyAgICAgICAgICAgIGFyZys9MjsK
KyAgICAgICAgICAgIGlmKGM9PSctJykgeworICAgICAgICAgICAgICAgIC8qIHByb2Nlc3MgYSBs
b25nIG9wdGlvbiAqLworICAgICAgICAgICAgICAgIGlmKCphcmc9PTApIHsKKyAgICAgICAgICAg
ICAgICAgICAgLyogc3RvcCBwcm9jZXNzaW5nIG9wdGlvbnMgYWZ0ZXIgIi0tIiAqLworICAgICAg
ICAgICAgICAgICAgICBzdG9wT3B0aW9ucz0xOworICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgIC8qIHNlYXJjaCBmb3IgdGhlIG9wdGlvbiBzdHJpbmcgKi8KKyAg
ICAgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8
b3B0aW9uQ291bnQ7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYob3B0aW9uc1tq
XS5sb25nTmFtZSAmJiB1cHJ2X3N0cmNtcChhcmcsIG9wdGlvbnNbal0ubG9uZ05hbWUpPT0wKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPW9wdGlvbnMrajsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZihvcHRpb249PU5VTEwp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vIG9wdGlvbiBtYXRjaGVzICovCisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gLWk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgb3B0aW9uLT5kb2VzT2NjdXI9MTsKKworICAgICAgICAgICAgICAg
ICAgICBpZihvcHRpb24tPmhhc0FyZyE9VU9QVF9OT19BUkcpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIC8qIHBhcnNlIHRoZSBhcmd1bWVudCBmb3IgdGhlIG9wdGlvbiwgaWYgYW55ICovCisg
ICAgICAgICAgICAgICAgICAgICAgICBpZihpKzE8YXJnYyAmJiAhKGFyZ3ZbaSsxXVswXT09Jy0n
ICYmIGFyZ3ZbaSsxXVsxXSE9MCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBh
cmd1bWVudCBpbiB0aGUgbmV4dCBhcmd2W10sIGFuZCB0aGVyZSBpcyBub3QgYW4gb3B0aW9uIGlu
IHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLT52YWx1ZT1hcmd2
WysraV07CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYob3B0aW9uLT5oYXNBcmc9
PVVPUFRfUkVRVUlSRVNfQVJHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhl
cmUgaXMgbm8gYXJndW1lbnQsIGJ1dCBvbmUgaXMgcmVxdWlyZWQ6IHJldHVybiB3aXRoIGVycm9y
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1pOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBwcm9jZXNzIG9uZSBvciBt
b3JlIHNob3J0IG9wdGlvbnMgKi8KKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAg
ICAgICAgIC8qIHNlYXJjaCBmb3IgdGhlIG9wdGlvbiBsZXR0ZXIgKi8KKyAgICAgICAgICAgICAg
ICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8b3B0aW9uQ291bnQ7
ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoYz09b3B0aW9uc1tqXS5zaG9ydE5h
bWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb249b3B0aW9ucytqOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmKG9wdGlvbj09
TlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogbm8gb3B0aW9uIG1hdGNoZXMgKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBvcHRpb24tPmRvZXNPY2N1cj0xOworCisgICAgICAgICAg
ICAgICAgICAgIGlmKG9wdGlvbi0+aGFzQXJnIT1VT1BUX05PX0FSRykgeworICAgICAgICAgICAg
ICAgICAgICAgICAgLyogcGFyc2UgdGhlIGFyZ3VtZW50IGZvciB0aGUgb3B0aW9uLCBpZiBhbnkg
Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCphcmchPTApIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiBhcmd1bWVudCBmb2xsb3dpbmcgaW4gdGhlIHNhbWUgYXJndltdICov
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLT52YWx1ZT1hcmc7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyogZG8gbm90IHByb2Nlc3MgdGhlIHJlc3Qgb2YgdGhpcyBh
cmcgYXMgb3B0aW9uIGxldHRlcnMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihpKzE8YXJnYyAmJiAhKGFyZ3Zb
aSsxXVswXT09Jy0nICYmIGFyZ3ZbaSsxXVsxXSE9MCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBhcmd2W10sIGFuZCB0aGVyZSBpcyBub3Qg
YW4gb3B0aW9uIGluIHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9u
LT52YWx1ZT1hcmd2WysraV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBi
cmVhayBpcyByZWR1bmRhbnQgYmVjYXVzZSB3ZSBrbm93IHRoYXQgKmFyZz09MCAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIGlmKG9wdGlvbi0+aGFzQXJnPT1VT1BUX1JFUVVJUkVTX0FSRykgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIHRoZXJlIGlzIG5vIGFyZ3VtZW50LCBidXQgb25lIGlzIHJlcXVp
cmVkOiByZXR1cm4gd2l0aCBlcnJvciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAtaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgICAgIC8qIGdldCB0aGUgbmV4dCBvcHRpb24gbGV0dGVyICov
CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbj1OVUxMOworICAgICAgICAgICAgICAgICAgICBj
PSphcmcrKzsKKyAgICAgICAgICAgICAgICB9IHdoaWxlKGMhPTApOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBpZihvcHRpb24hPTAgJiYgb3B0aW9uLT5vcHRpb25GbiE9MCAmJiBvcHRp
b24tPm9wdGlvbkZuKG9wdGlvbi0+Y29udGV4dCwgb3B0aW9uKTwwKSB7CisgICAgICAgICAgICAg
ICAgLyogdGhlIG9wdGlvbiBmdW5jdGlvbiB3YXMgY2FsbGVkIGFuZCByZXR1cm5lZCBhbiBlcnJv
ciAqLworICAgICAgICAgICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgLyogZ28gdG8gbmV4dCBhcmd2W10gKi8KKyAgICAgICAgICAgICsraTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIC8qIG1vdmUgYSBub24tb3B0aW9uIHVwIGluIGFyZ3ZbXSAq
LworICAgICAgICAgICAgYXJndltyZW1haW5pbmcrK109YXJnOworICAgICAgICAgICAgKytpOwor
ICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZW1haW5pbmc7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25zLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25zLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDNkYjY1ZjI4MWZjMTkzNGNiODg4MzYzNjYwY2IzMzE3NTUzNGFjMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW9wdGlvbnMu
aApAQCAtMCwwICsxLDE0MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBD
b3B5cmlnaHQgKEMpIDIwMDAtMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwor
KiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVvcHRpb25zLmgKKyogICBlbmNv
ZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVu
dGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDAwYXByMTcKKyogICBjcmVhdGVkIGJ5OiBN
YXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIFRoaXMgZmlsZSBwcm92aWRlcyBhIGNvbW1hbmQgbGlu
ZSBhcmd1bWVudCBwYXJzZXIuCisqLworCisjaWZuZGVmIF9fVU9QVElPTlNfSF9fCisjZGVmaW5l
IF9fVU9QVElPTlNfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisvKiBUaGlz
IHNob3VsZCB1c3VhbGx5IGJlIGNhbGxlZCBiZWZvcmUgY2FsbGluZyB1X3BhcnNlQXJncyAqLwor
LyojaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwICYmIChVX0NIQVJTRVRfRkFNSUxZID09IFVf
QVNDSUlfRkFNSUxZKSovCisgICAgLyogdHJhbnNsYXRlIGFyZ3MgZnJvbSBFQkNESUMgdG8gQVND
SUkgKi8KKy8qIyAgIGRlZmluZSBVX01BSU5fSU5JVF9BUkdTKGFyZ2MsIGFyZ3YpIF9fYXJndnRv
YXNjaWlfYShhcmdjLCBhcmd2KSovCisvKiNlbGlmIGRlZmluZWQoWFBfTUFDX0NPTlNPTEUpKi8K
KyNpZiBkZWZpbmVkKFhQX01BQ19DT05TT0xFKQorIyAgIGluY2x1ZGUgPGNvbnNvbGUuaD4KKyAg
ICAvKiBHZXQgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBHVUksIHNpbmNlIG9sZCBNYWNzIGRvbid0
IGhhdmUgYSBjb25zb2xlIFdpbmRvdy4gKi8KKyMgICBkZWZpbmUgVV9NQUlOX0lOSVRfQVJHUyhh
cmdjLCBhcmd2KSBhcmdjID0gY2NvbW1hbmQoKGNoYXIqKiopJmFyZ3YpCisjZWxzZQorICAgIC8q
IE5vcm1hbGx5IHdlIGRvIG5vdGhpbmcuICovCisjICAgZGVmaW5lIFVfTUFJTl9JTklUX0FSR1Mo
YXJnYywgYXJndikKKyNlbmRpZgorCisKKworLyogZm9yd2FyZCBkZWNsYXJhdGlvbnMgZm9yIHRo
ZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiAqLworc3RydWN0IFVPcHRpb247Cit0eXBlZGVmIHN0cnVj
dCBVT3B0aW9uIFVPcHRpb247CisKKy8qIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBmb3IgYSBjb21t
YW5kIGxpbmUgb3B0aW9uICovCit0eXBlZGVmIGludCBVT3B0aW9uRm4odm9pZCAqY29udGV4dCwg
VU9wdGlvbiAqb3B0aW9uKTsKKworLyogdmFsdWVzIG9mIFVPcHRpb24uaGFzQXJnICovCitlbnVt
IHsgVU9QVF9OT19BUkcsIFVPUFRfUkVRVUlSRVNfQVJHLCBVT1BUX09QVElPTkFMX0FSRyB9Owor
CisvKiBzdHJ1Y3R1cmUgZGVzY3JpYmluZyBhIGNvbW1hbmQgbGluZSBvcHRpb24gKi8KK3N0cnVj
dCBVT3B0aW9uIHsKKyAgICBjb25zdCBjaGFyICpsb25nTmFtZTsgICAvKiAiZm9vIiBmb3IgLS1m
b28gKi8KKyAgICBjb25zdCBjaGFyICp2YWx1ZTsgICAgICAvKiBvdXRwdXQgcGxhY2Vob2xkZXIs
IHdpbGwgcG9pbnQgdG8gdGhlIGFyZ3VtZW50IHN0cmluZywgaWYgYW55ICovCisgICAgVU9wdGlv
bkZuICpvcHRpb25GbjsgICAgLyogZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhpcyBvcHRp
b24gb2NjdXJzICovCisgICAgdm9pZCAqY29udGV4dDsgICAgICAgICAgLyogcGFyYW1ldGVyIGZv
ciB0aGUgZnVuY3Rpb24gKi8KKyAgICBjaGFyIHNob3J0TmFtZTsgICAgICAgICAvKiAnZicgZm9y
IC1mICovCisgICAgY2hhciBoYXNBcmc7ICAgICAgICAgICAgLyogZW51bSB2YWx1ZTogb3B0aW9u
IHRha2VzIG5vL3JlcXVpcmVzL21heSBoYXZlIGFyZ3VtZW50ICovCisgICAgY2hhciBkb2VzT2Nj
dXI7ICAgICAgICAgLyogYm9vbGVhbiBmb3IgInRoaXMgb25lIG9jY3VyZWQiICovCit9OworCisv
KiBtYWNybyBmb3IgYW4gZW50cnkgaW4gYSBkZWNsYXJhdGlvbiBvZiBVT3B0aW9uW10gKi8KKyNk
ZWZpbmUgVU9QVElPTl9ERUYobG9uZ05hbWUsIHNob3J0TmFtZSwgaGFzQXJnKSBcCisgICAgeyBs
b25nTmFtZSwgTlVMTCwgTlVMTCwgTlVMTCwgc2hvcnROYW1lLCBoYXNBcmcsIDAgfQorCisvKiBJ
Q1UgVG9vbHMgb3B0aW9uIGRlZmluaXRpb25zICovCisjZGVmaW5lIFVPUFRJT05fSEVMUF9IICAg
ICAgICAgICAgICBVT1BUSU9OX0RFRigiaGVscCIsICdoJywgVU9QVF9OT19BUkcpCisjZGVmaW5l
IFVPUFRJT05fSEVMUF9RVUVTVElPTl9NQVJLICBVT1BUSU9OX0RFRigiaGVscCIsICc/JywgVU9Q
VF9OT19BUkcpCisjZGVmaW5lIFVPUFRJT05fVkVSQk9TRSAgICAgICAgICAgICBVT1BUSU9OX0RF
RigidmVyYm9zZSIsICd2JywgVU9QVF9OT19BUkcpCisjZGVmaW5lIFVPUFRJT05fUVVJRVQgICAg
ICAgICAgICAgICBVT1BUSU9OX0RFRigicXVpZXQiLCAncScsIFVPUFRfTk9fQVJHKQorI2RlZmlu
ZSBVT1BUSU9OX1ZFUlNJT04gICAgICAgICAgICAgVU9QVElPTl9ERUYoInZlcnNpb24iLCAnVics
IFVPUFRfTk9fQVJHKQorI2RlZmluZSBVT1BUSU9OX0NPUFlSSUdIVCAgICAgICAgICAgVU9QVElP
Tl9ERUYoImNvcHlyaWdodCIsICdjJywgVU9QVF9OT19BUkcpCisKKyNkZWZpbmUgVU9QVElPTl9E
RVNURElSICAgICAgICAgICAgIFVPUFRJT05fREVGKCJkZXN0ZGlyIiwgJ2QnLCBVT1BUX1JFUVVJ
UkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9TT1VSQ0VESVIgICAgICAgICAgIFVPUFRJT05fREVG
KCJzb3VyY2VkaXIiLCAncycsIFVPUFRfUkVRVUlSRVNfQVJHKQorI2RlZmluZSBVT1BUSU9OX0VO
Q09ESU5HICAgICAgICAgICAgVU9QVElPTl9ERUYoImVuY29kaW5nIiwgJ2UnLCBVT1BUX1JFUVVJ
UkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9JQ1VEQVRBRElSICAgICAgICAgIFVPUFRJT05fREVG
KCJpY3VkYXRhZGlyIiwgJ2knLCBVT1BUX1JFUVVJUkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9X
UklURV9KQVZBICAgICAgICAgIFVPUFRJT05fREVGKCJ3cml0ZS1qYXZhIiwgJ2onLCBVT1BUX09Q
VElPTkFMX0FSRykKKyNkZWZpbmUgVU9QVElPTl9QQUNLQUdFX05BTUUgICAgICAgIFVPUFRJT05f
REVGKCJwYWNrYWdlLW5hbWUiLCAncCcsIFVPUFRfUkVRVUlSRVNfQVJHKQorI2RlZmluZSBVT1BU
SU9OX0JVTkRMRV9OQU1FICAgICAgICAgVU9QVElPTl9ERUYoImJ1bmRsZS1uYW1lIiwgJ2InLCBV
T1BUX1JFUVVJUkVTX0FSRykKKworLyoqCisgKiBDIENvbW1hbmQgbGluZSBhcmd1bWVudCBwYXJz
ZXIuCisgKgorICogVGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgYXJndlthcmdjXSBjb21tYW5kIGxp
bmUgYW5kIGEgZGVzY3JpcHRpb24gb2YKKyAqIHRoZSBwcm9ncmFtJ3Mgb3B0aW9ucyBpbiBmb3Jt
IG9mIGFuIGFycmF5IG9mIFVPcHRpb24gc3RydWN0dXJlcy4KKyAqIEVhY2ggVU9wdGlvbiBkZWZp
bmVzIGEgbG9uZyBhbmQgYSBzaG9ydCBuYW1lIChhIHN0cmluZyBhbmQgYSBjaGFyYWN0ZXIpCisg
KiBmb3Igb3B0aW9ucyBsaWtlICItLWZvbyIgYW5kICItZiIuCisgKgorICogRWFjaCBvcHRpb24g
aXMgbWFya2VkIHdpdGggd2hldGhlciBpdCBkb2VzIG5vdCB0YWtlIGFuIGFyZ3VtZW50LAorICog
cmVxdWlyZXMgb25lLCBvciBvcHRpb25hbGx5IHRha2VzIG9uZS4gVGhlIGFyZ3VtZW50IG1heSBm
b2xsb3cgaW4KKyAqIHRoZSBzYW1lIGFyZ3ZbXSBlbnRyeSBmb3Igc2hvcnQgb3B0aW9ucywgb3Ig
aXQgbWF5IGFsd2F5cyBmb2xsb3cKKyAqIGluIHRoZSBuZXh0IGFyZ3ZbXSBlbnRyeS4KKyAqCisg
KiBBbiBhcmd1bWVudCBpcyBpbiB0aGUgbmV4dCBhcmd2W10gZW50cnkgZm9yIGJvdGggbG9uZyBh
bmQgc2hvcnQgbmFtZQorICogb3B0aW9ucywgZXhjZXB0IGl0IGlzIHRha2VuIGZyb20gZGlyZWN0
bHkgYmVoaW5kIHRoZSBzaG9ydCBuYW1lIGluCisgKiBpdHMgb3duIGFyZ3ZbXSBlbnRyeSBpZiB0
aGVyZSBhcmUgY2hhcmFjdGVycyBmb2xsb3dpbmcgdGhlIG9wdGlvbiBsZXR0ZXIuCisgKiBBbiBh
cmd1bWVudCBpbiBpdHMgb3duIGFyZ3ZbXSBlbnRyeSBtdXN0IG5vdCBiZWdpbiB3aXRoIGEgJy0n
CisgKiB1bmxlc3MgaXQgaXMgb25seSB0aGUgJy0nIGl0c2VsZi4gVGhlcmUgaXMgbm8gcmVzdHJp
Y3Rpb24gb2YgdGhlCisgKiBhcmd1bWVudCBmb3JtYXQgaWYgaXQgaXMgcGFydCBvZiB0aGUgc2hv
cnQgbmFtZSBvcHRpb25zJ3MgYXJndltdIGVudHJ5LgorICoKKyAqIFRoZSBhcmd1bWVudCBpcyBz
dG9yZWQgaW4gdGhlIHZhbHVlIGZpZWxkIG9mIHRoZSBjb3JyZXNwb25kaW5nCisgKiBVT3B0aW9u
IGVudHJ5LCBhbmQgdGhlIGRvZXNPY2N1ciBmaWVsZCBpcyBzZXQgdG8gMSBpZiB0aGUgb3B0aW9u
CisgKiBpcyBmb3VuZCBhdCBhbGwuCisgKgorICogU2hvcnQgbmFtZSBvcHRpb25zIHdpdGhvdXQg
YXJndW1lbnRzIGNhbiBiZSBjb2xsYXBzZWQgaW50byBhIHNpbmdsZQorICogYXJndltdIGVudHJ5
LiBBZnRlciBhbiBvcHRpb24gbGV0dGVyIHRha2VzIGFuIGFyZ3VtZW50LCBmb2xsb3dpbmcKKyAq
IGxldHRlcnMgd2lsbCBiZSB0YWtlbiBhcyBpdHMgYXJndW1lbnQuCisgKgorICogSWYgdGhlIHNh
bWUgb3B0aW9uIGlzIGZvdW5kIHNldmVyYWwgdGltZXMsIHRoZW4gdGhlIGxhc3QKKyAqIGFyZ3Vt
ZW50IHZhbHVlIHdpbGwgYmUgc3RvcmVkIGluIHRoZSB2YWx1ZSBmaWVsZC4KKyAqCisgKiBGb3Ig
ZWFjaCBvcHRpb24sIGEgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZC4gVGhpcyBjb3VsZCBiZSB1c2Vk
CisgKiBmb3Igb3B0aW9ucyB0aGF0IG9jY3VyIG11bHRpcGxlIHRpbWVzIGFuZCBhbGwgYXJndW1l
bnRzIGFyZSB0bworICogYmUgY29sbGVjdGVkLgorICoKKyAqIEFsbCBvcHRpb25zIGFyZSByZW1v
dmVkIGZyb20gdGhlIGFyZ3ZbXSBhcnJheSBpdHNlbGYuIElmIHRoZSBwYXJzZXIKKyAqIGlzIHN1
Y2Nlc3NmdWwsIHRoZW4gaXQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlbWFpbmluZyBub24tb3B0
aW9uCisgKiBzdHJpbmdzIChpbmNsdWRpbmcgYXJndlswXSkuCisgKiBhcmd2WzBdLCB0aGUgcHJv
Z3JhbSBuYW1lLCBpcyBuZXZlciByZWFkIG9yIG1vZGlmaWVkLgorICoKKyAqIEFuIG9wdGlvbiAi
LS0iIGVuZHMgb3B0aW9uIHByb2Nlc3Npbmc7IGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhpcworICogcmVt
YWlucyBpbiB0aGUgYXJndltdIGFycmF5LgorICoKKyAqIEFuIG9wdGlvbiBzdHJpbmcgIi0iIGFs
b25lIGlzIHRyZWF0ZWQgYXMgYSBub24tb3B0aW9uLgorICoKKyAqIElmIGFuIG9wdGlvbiBpcyBu
b3QgcmVjb2duaXplZCBvciBhbiBhcmd1bWVudCBtaXNzaW5nLCB0aGVuCisgKiB0aGUgcGFyc2Vy
IHJldHVybnMgd2l0aCB0aGUgbmVnYXRpdmUgaW5kZXggb2YgdGhlIGFyZ3ZbXSBlbnRyeQorICog
d2hlcmUgdGhlIGVycm9yIHdhcyBkZXRlY3RlZC4KKyAqCisgKiBUaGUgT1MvNDAwIGNvbXBpbGVy
IHJlcXVpcmVzIHRoYXQgYXJndiBlaXRoZXIgYmUgImNoYXIqIGFyZ3ZbXSIsCisgKiBvciAiY29u
c3QgY2hhciogY29uc3QgYXJndltdIiwgYW5kIGl0IHdpbGwgbm90IGFjY2VwdCwgCisgKiAiY29u
c3QgY2hhciogYXJndltdIiBhcyBhIGRlZmluaXRpb24gZm9yIG1haW4oKS4KKyAqCisgKiBAcGFy
YW0gYXJndiBUaGlzIHBhcmFtZXRlciBpcyBtb2RpZmllZAorICogQHBhcmFtIG9wdGlvbnMgVGhp
cyBwYXJhbWV0ZXIgaXMgbW9kaWZpZWQKKyAqLworVV9DQVBJIGludCBVX0VYUE9SVDIKK3VfcGFy
c2VBcmdzKGludCBhcmdjLCBjaGFyKiBhcmd2W10sCisgICAgICAgICAgICBpbnQgb3B0aW9uQ291
bnQsIFVPcHRpb24gb3B0aW9uc1tdKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3V0cmllLmggYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3V0cmllLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NlYzAyN2ZlMzQ1
OTVlNWI3NWUxZjI4NTBkMjA2YjYyYTk0ZWY4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdXRyaWUuaApAQCAtMCwwICsxLDc5NSBA
QAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMjAwMS0y
MDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5k
IG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyogICBmaWxlIG5hbWU6ICB1dHJpZS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0
YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRl
ZCBvbjogMjAwMW5vdjA4CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisK
KyNpZm5kZWYgX19VVFJJRV9IX18KKyNkZWZpbmUgX19VVFJJRV9IX18KKworI2luY2x1ZGUgInVu
aWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91dGYxNi5oIgorI2luY2x1ZGUgInVk
YXRhc3dwLmgiCisKK1VfQ0RFQ0xfQkVHSU4KKworLyoqCisgKiBcZmlsZQorICoKKyAqIFRoaXMg
aXMgYSBjb21tb24gaW1wbGVtZW50YXRpb24gb2YgYSAiZm9sZGVkIiB0cmllLgorICogSXQgaXMg
YSBraW5kIG9mIGNvbXByZXNzZWQsIHNlcmlhbGl6YWJsZSB0YWJsZSBvZiAxNi0gb3IgMzItYml0
IHZhbHVlcyBhc3NvY2lhdGVkIHdpdGgKKyAqIFVuaWNvZGUgY29kZSBwb2ludHMgKDAuLjB4MTBm
ZmZmKS4KKyAqCisgKiBUaGlzIGltcGxlbWVudGF0aW9uIGlzIG9wdGltaXplZCBmb3IgZ2V0dGlu
ZyB2YWx1ZXMgd2hpbGUgd2Fsa2luZyBmb3J3YXJkCisgKiB0aHJvdWdoIGEgVVRGLTE2IHN0cmlu
Zy4KKyAqIFRoZXJlZm9yZSwgdGhlIHNpbXBsZXN0IGFuZCBmYXN0ZXN0IGFjY2VzcyBtYWNyb3Mg
YXJlIHRoZQorICogX0ZST01fTEVBRCgpIGFuZCBfRlJPTV9PRkZTRVRfVFJBSUwoKSBtYWNyb3Mu
CisgKgorICogVGhlIF9GUk9NX0JNUCgpIG1hY3JvcyBhcmUgYSBsaXR0bGUgbW9yZSBjb21wbGlj
YXRlZDsgdGhleSBnZXQgdmFsdWVzCisgKiBldmVuIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF9w
b2ludHNfLCB3aGlsZSB0aGUgX0ZST01fTEVBRCgpIG1hY3JvcworICogZ2V0IHNwZWNpYWwgImZv
bGRlZCIgdmFsdWVzIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gaWYKKyAqIHRoZXJl
IGlzIHJlbGV2YW50IGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZW0uCisgKiBGcm9tIHN1Y2ggYSBm
b2xkZWQgdmFsdWUsIGFuIG9mZnNldCBuZWVkcyB0byBiZSBleHRyYWN0ZWQgdG8gc3VwcGx5Cisg
KiB0byB0aGUgX0ZST01fT0ZGU0VUX1RSQUlMKCkgbWFjcm9zLgorICoKKyAqIE1vc3Qgb2YgdGhl
IG1vcmUgY29tcGxleCAoYW5kIG1vcmUgY29udmVuaWVudCkgZnVuY3Rpb25zL21hY3JvcyBjYWxs
IGEgY2FsbGJhY2sgZnVuY3Rpb24KKyAqIHRvIGdldCB0aGF0IG9mZnNldCBmcm9tIHRoZSBmb2xk
ZWQgdmFsdWUgZm9yIGEgbGVhZCBzdXJyb2dhdGUgdW5pdC4KKyAqLworCisvKioKKyAqIFRyaWUg
Y29uc3RhbnRzLCBkZWZpbmluZyBzaGlmdCB3aWR0aHMsIGluZGV4IGFycmF5IGxlbmd0aHMsIGV0
Yy4KKyAqLworZW51bSB7CisgICAgLyoqIFNoaWZ0IHNpemUgZm9yIHNoaWZ0aW5nIHJpZ2h0IHRo
ZSBpbnB1dCBpbmRleC4gMS4uOSAqLworICAgIFVUUklFX1NISUZUPTUsCisKKyAgICAvKiogTnVt
YmVyIG9mIGRhdGEgdmFsdWVzIGluIGEgc3RhZ2UgMiAoZGF0YSBhcnJheSkgYmxvY2suIDIsIDQs
IDgsIC4uLCAweDIwMCAqLworICAgIFVUUklFX0RBVEFfQkxPQ0tfTEVOR1RIPTE8PFVUUklFX1NI
SUZULAorCisgICAgLyoqIE1hc2sgZm9yIGdldHRpbmcgdGhlIGxvd2VyIGJpdHMgZnJvbSB0aGUg
aW5wdXQgaW5kZXguICovCisgICAgVVRSSUVfTUFTSz1VVFJJRV9EQVRBX0JMT0NLX0xFTkdUSC0x
LAorCisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMnIGluZGV4IGRp
c3BsYWNlbWVudCBpbiB0aGUgaW5kZXggYXJyYXkuCisgICAgICogMHgxMDAwMC0weGQ4MDA9MHgy
ODAwCisgICAgICovCisgICAgVVRSSUVfTEVBRF9JTkRFWF9ESVNQPTB4MjgwMD4+VVRSSUVfU0hJ
RlQsCisKKyAgICAvKioKKyAgICAgKiBTaGlmdCBzaXplIGZvciBzaGlmdGluZyBsZWZ0IHRoZSBp
bmRleCBhcnJheSB2YWx1ZXMuCisgICAgICogSW5jcmVhc2VzIHBvc3NpYmxlIGRhdGEgc2l6ZSB3
aXRoIDE2LWJpdCBpbmRleCB2YWx1ZXMgYXQgdGhlIGNvc3QKKyAgICAgKiBvZiBjb21wYWN0YWJp
bGl0eS4KKyAgICAgKiBUaGlzIHJlcXVpcmVzIGJsb2NrcyBvZiBzdGFnZSAyIGRhdGEgdG8gYmUg
YWxpZ25lZCBieSBVVFJJRV9EQVRBX0dSQU5VTEFSSVRZLgorICAgICAqIDAuLlVUUklFX1NISUZU
CisgICAgICovCisgICAgVVRSSUVfSU5ERVhfU0hJRlQ9MiwKKworICAgIC8qKiBUaGUgYWxpZ25t
ZW50IHNpemUgb2YgYSBzdGFnZSAyIGRhdGEgYmxvY2suIEFsc28gdGhlIGdyYW51bGFyaXR5IGZv
ciBjb21wYWN0aW9uLiAqLworICAgIFVUUklFX0RBVEFfR1JBTlVMQVJJVFk9MTw8VVRSSUVfSU5E
RVhfU0hJRlQsCisKKyAgICAvKiogTnVtYmVyIG9mIGJpdHMgb2YgYSB0cmFpbCBzdXJyb2dhdGUg
dGhhdCBhcmUgdXNlZCBpbiBpbmRleCB0YWJsZSBsb29rdXBzLiAqLworICAgIFVUUklFX1NVUlJP
R0FURV9CTE9DS19CSVRTPTEwLVVUUklFX1NISUZULAorCisgICAgLyoqCisgICAgICogTnVtYmVy
IG9mIGluZGV4IChzdGFnZSAxKSBlbnRyaWVzIHBlciBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgKiBT
YW1lIGFzIG51bWJlciBvZiBpbmRleCBlbnRyaWVzIGZvciAxMDI0IHRyYWlsIHN1cnJvZ2F0ZXMs
CisgICAgICogPT0weDQwMD4+VVRSSUVfU0hJRlQKKyAgICAgKi8KKyAgICBVVFJJRV9TVVJST0dB
VEVfQkxPQ0tfQ09VTlQ9KDE8PFVUUklFX1NVUlJPR0FURV9CTE9DS19CSVRTKSwKKworICAgIC8q
KiBMZW5ndGggb2YgdGhlIEJNUCBwb3J0aW9uIG9mIHRoZSBpbmRleCAoc3RhZ2UgMSkgYXJyYXku
ICovCisgICAgVVRSSUVfQk1QX0lOREVYX0xFTkdUSD0weDEwMDAwPj5VVFJJRV9TSElGVAorfTsK
KworLyoqCisgKiBMZW5ndGggb2YgdGhlIGluZGV4IChzdGFnZSAxKSBhcnJheSBiZWZvcmUgZm9s
ZGluZy4KKyAqIE1heGltdW0gbnVtYmVyIG9mIFVuaWNvZGUgY29kZSBwb2ludHMgKDB4MTEwMDAw
KSBzaGlmdGVkIHJpZ2h0IGJ5IFVUUklFX1NISUZULgorICovCisjZGVmaW5lIFVUUklFX01BWF9J
TkRFWF9MRU5HVEggKDB4MTEwMDAwPj5VVFJJRV9TSElGVCkKKworLyoqCisgKiBNYXhpbXVtIGxl
bmd0aCBvZiB0aGUgcnVudGltZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKyAqIExpbWl0ZWQgYnkg
MTYtYml0IGluZGV4IHZhbHVlcyB0aGF0IGFyZSBsZWZ0LXNoaWZ0ZWQgYnkgVVRSSUVfSU5ERVhf
U0hJRlQuCisgKi8KKyNkZWZpbmUgVVRSSUVfTUFYX0RBVEFfTEVOR1RIICgweDEwMDAwPDxVVFJJ
RV9JTkRFWF9TSElGVCkKKworLyoqCisgKiBNYXhpbXVtIGxlbmd0aCBvZiB0aGUgYnVpbGQtdGlt
ZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKyAqIFRoZSBtYXhpbXVtIGxlbmd0aCBpcyAweDExMDAw
MCtVVFJJRV9EQVRBX0JMT0NLX0xFTkdUSCsweDQwMC4KKyAqIChOdW1iZXIgb2YgVW5pY29kZSBj
b2RlIHBvaW50cyArIG9uZSBhbGwtaW5pdGlhbC12YWx1ZSBibG9jayArCisgKiAgcG9zc2libGUg
ZHVwbGljYXRlIGVudHJpZXMgZm9yIDEwMjQgbGVhZCBzdXJyb2dhdGVzLikKKyAqLworI2RlZmlu
ZSBVVFJJRV9NQVhfQlVJTERfVElNRV9EQVRBX0xFTkdUSCAoMHgxMTAwMDArVVRSSUVfREFUQV9C
TE9DS19MRU5HVEgrMHg0MDApCisKKy8qKgorICogTnVtYmVyIG9mIGJ5dGVzIGZvciBhIGR1bW15
IHRyaWUuCisgKiBBIGR1bW15IHRyaWUgaXMgYW4gZW1wdHkgcnVudGltZSB0cmllLCB1c2VkIHdo
ZW4gYSByZWFsIGRhdGEgdHJpZSBjYW5ub3QKKyAqIGJlIGxvYWRlZC4KKyAqIFRoZSBudW1iZXIg
b2YgYnl0ZXMgd29ya3MgZm9yIExhdGluLTEtbGluZWFyIHRyaWVzIHdpdGggMzItYml0IGRhdGEK
KyAqICh3b3JzdCBjYXNlKS4KKyAqCisgKiBDYWxjdWxhdGlvbjoKKyAqICAgQk1QIGluZGV4ICsg
MSBpbmRleCBibG9jayBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMgKworICogICBMYXRp
bi0xLWxpbmVhciBhcnJheSArIDEgZGF0YSBibG9jayBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBw
b2ludHMKKyAqCisgKiBMYXRpbi0xOiBpZihVVFJJRV9TSElGVDw9OCkgeyAyNTYgfSBlbHNlIHsg
aW5jbHVkZWQgaW4gZmlyc3QgZGF0YSBibG9jayB9CisgKgorICogQHNlZSB1dHJpZV91bnNlcmlh
bGl6ZUR1bW15CisgKi8KKyNkZWZpbmUgVVRSSUVfRFVNTVlfU0laRSAoKFVUUklFX0JNUF9JTkRF
WF9MRU5HVEgrVVRSSUVfU1VSUk9HQVRFX0JMT0NLX0NPVU5UKSoyKyhVVFJJRV9TSElGVDw9OD8y
NTY6VVRSSUVfREFUQV9CTE9DS19MRU5HVEgpKjQrVVRSSUVfREFUQV9CTE9DS19MRU5HVEgqNCkK
KworLyoqCisgKiBSdW50aW1lIFVUcmllIGNhbGxiYWNrIGZ1bmN0aW9uLgorICogRXh0cmFjdCBm
cm9tIGEgbGVhZCBzdXJyb2dhdGUncyBkYXRhIHRoZQorICogaW5kZXggYXJyYXkgb2Zmc2V0IG9m
IHRoZSBpbmRleGVzIGZvciB0aGF0IGxlYWQgc3Vycm9nYXRlLgorICoKKyAqIEBwYXJhbSBkYXRh
IGRhdGEgdmFsdWUgZm9yIGEgc3Vycm9nYXRlIGZyb20gdGhlIHRyaWUsIGluY2x1ZGluZyB0aGUg
Zm9sZGluZyBvZmZzZXQKKyAqIEByZXR1cm4gb2Zmc2V0Pj1VVFJJRV9CTVBfSU5ERVhfTEVOR1RI
LCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZQorICovCit0
eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgorVVRyaWVHZXRGb2xkaW5nT2Zmc2V0KHVpbnQzMl90
IGRhdGEpOworCisvKioKKyAqIFJ1bi10aW1lIFRyaWUgc3RydWN0dXJlLgorICoKKyAqIEVpdGhl
ciB0aGUgZGF0YSB0YWJsZSBpcyAxNiBiaXRzIHdpZGUgYW5kIGFjY2Vzc2VkIHZpYSB0aGUgaW5k
ZXgKKyAqIHBvaW50ZXIsIHdpdGggZWFjaCBpbmRleCBpdGVtIGluY3JlYXNlZCBieSBpbmRleExl
bmd0aDsKKyAqIGluIHRoaXMgY2FzZSwgZGF0YTMyPT1OVUxMLgorICoKKyAqIE9yIHRoZSBkYXRh
IHRhYmxlIGlzIDMyIGJpdHMgd2lkZSBhbmQgYWNjZXNzZWQgdmlhIHRoZSBkYXRhMzIgcG9pbnRl
ci4KKyAqLworc3RydWN0IFVUcmllIHsKKyAgICBjb25zdCB1aW50MTZfdCAqaW5kZXg7CisgICAg
Y29uc3QgdWludDMyX3QgKmRhdGEzMjsgLyogTlVMTCBpZiAxNmIgZGF0YSBpcyB1c2VkIHZpYSBp
bmRleCAqLworCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyBub3QgdXNlZCBpbiBf
RlJPTV9MRUFELCBfRlJPTV9CTVAsIGFuZCBfRlJPTV9PRkZTRVRfVFJBSUwgbWFjcm9zLgorICAg
ICAqIElmIGNvbnZlbmllbmNlIG1hY3JvcyBsaWtlIF9HRVQxNiBvciBfTkVYVDMyIGFyZSB1c2Vk
LCB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgc2V0LgorICAgICAqCisgICAgICogdXRyaWVfdW5zZXJp
YWxpemUoKSBzZXRzIGEgZGVmYXVsdCBmdW5jdGlvbiB3aGljaCBzaW1wbHkgcmV0dXJucworICAg
ICAqIHRoZSBsZWFkIHN1cnJvZ2F0ZSdzIHZhbHVlIGl0c2VsZiAtIHdoaWNoIGlzIHRoZSBpbnZl
cnNlIG9mIHRoZSBkZWZhdWx0CisgICAgICogZm9sZGluZyBmdW5jdGlvbiB1c2VkIGJ5IHV0cmll
X3NlcmlhbGl6ZSgpLgorICAgICAqCisgICAgICogQHNlZSBVVHJpZUdldEZvbGRpbmdPZmZzZXQK
KyAgICAgKi8KKyAgICBVVHJpZUdldEZvbGRpbmdPZmZzZXQgKmdldEZvbGRpbmdPZmZzZXQ7CisK
KyAgICBpbnQzMl90IGluZGV4TGVuZ3RoLCBkYXRhTGVuZ3RoOworICAgIHVpbnQzMl90IGluaXRp
YWxWYWx1ZTsKKyAgICBVQm9vbCBpc0xhdGluMUxpbmVhcjsKK307CisKKyNpZm5kZWYgX19VVFJJ
RTJfSF9fCit0eXBlZGVmIHN0cnVjdCBVVHJpZSBVVHJpZTsKKyNlbmRpZgorCisvKiogSW50ZXJu
YWwgdHJpZSBnZXR0ZXIgZnJvbSBhbiBvZmZzZXQgKDAgaWYgYzE2IGlzIGEgQk1QL2xlYWQgdW5p
dHMpIGFuZCBhIDE2LWJpdCB1bml0ICovCisjZGVmaW5lIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGRh
dGEsIG9mZnNldCwgYzE2KSBcCisgICAgKHRyaWUpLT5kYXRhWyBcCisgICAgICAgICgoaW50MzJf
dCkoKHRyaWUpLT5pbmRleFsob2Zmc2V0KSsoKGMxNik+PlVUUklFX1NISUZUKV0pPDxVVFJJRV9J
TkRFWF9TSElGVCkrIFwKKyAgICAgICAgKChjMTYpJlVUUklFX01BU0spIFwKKyAgICBdCisKKy8q
KiBJbnRlcm5hbCB0cmllIGdldHRlciBmcm9tIGEgcGFpciBvZiBzdXJyb2dhdGVzICovCisjZGVm
aW5lIF9VVFJJRV9HRVRfRlJPTV9QQUlSKHRyaWUsIGRhdGEsIGMsIGMyLCByZXN1bHQsIHJlc3Vs
dFR5cGUpIHsgXAorICAgIGludDMyX3QgX19vZmZzZXQ7IFwKK1wKKyAgICAvKiBnZXQgZGF0YSBm
b3IgbGVhZCBzdXJyb2dhdGUgKi8gXAorICAgIChyZXN1bHQpPV9VVFJJRV9HRVRfUkFXKCh0cmll
KSwgZGF0YSwgMCwgKGMpKTsgXAorICAgIF9fb2Zmc2V0PSh0cmllKS0+Z2V0Rm9sZGluZ09mZnNl
dChyZXN1bHQpOyBcCitcCisgICAgLyogZ2V0IHRoZSByZWFsIGRhdGEgZnJvbSB0aGUgZm9sZGVk
IGxlYWQvdHJhaWwgdW5pdHMgKi8gXAorICAgIGlmKF9fb2Zmc2V0PjApIHsgXAorICAgICAgICAo
cmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEsIF9fb2Zmc2V0LCAoYzIpJjB4M2Zm
KTsgXAorICAgIH0gZWxzZSB7IFwKKyAgICAgICAgKHJlc3VsdCk9KHJlc3VsdFR5cGUpKCh0cmll
KS0+aW5pdGlhbFZhbHVlKTsgXAorICAgIH0gXAorfQorCisvKiogSW50ZXJuYWwgdHJpZSBnZXR0
ZXIgZnJvbSBhIEJNUCBjb2RlIHBvaW50LCB0cmVhdGluZyBhIGxlYWQgc3Vycm9nYXRlIGFzIGEg
bm9ybWFsIGNvZGUgcG9pbnQgKi8KKyNkZWZpbmUgX1VUUklFX0dFVF9GUk9NX0JNUCh0cmllLCBk
YXRhLCBjMTYpIFwKKyAgICBfVVRSSUVfR0VUX1JBVyh0cmllLCBkYXRhLCAweGQ4MDA8PShjMTYp
ICYmIChjMTYpPD0weGRiZmYgPyBVVFJJRV9MRUFEX0lOREVYX0RJU1AgOiAwLCBjMTYpOworCisv
KioKKyAqIEludGVybmFsIHRyaWUgZ2V0dGVyIGZyb20gYSBjb2RlIHBvaW50LgorICogQ291bGQg
YmUgZmFzdGVyKD8pIGJ1dCBsb25nZXIgd2l0aAorICogICBpZigoYzMyKTw9MHhkN2ZmKSB7IChy
ZXN1bHQpPV9VVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEsIDAsIGMzMik7IH0KKyAqLworI2RlZmlu
ZSBfVVRSSUVfR0VUKHRyaWUsIGRhdGEsIGMzMiwgcmVzdWx0LCByZXN1bHRUeXBlKSBcCisgICAg
aWYoKHVpbnQzMl90KShjMzIpPD0weGZmZmYpIHsgXAorICAgICAgICAvKiBCTVAgY29kZSBwb2lu
dHMgKi8gXAorICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX0ZST01fQk1QKHRyaWUsIGRhdGEs
IGMzMik7IFwKKyAgICB9IGVsc2UgaWYoKHVpbnQzMl90KShjMzIpPD0weDEwZmZmZikgeyBcCisg
ICAgICAgIC8qIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCAqLyBcCisgICAgICAgIFVDaGFyIF9f
bGVhZDE2PVUxNl9MRUFEKGMzMik7IFwKKyAgICAgICAgX1VUUklFX0dFVF9GUk9NX1BBSVIodHJp
ZSwgZGF0YSwgX19sZWFkMTYsIGMzMiwgcmVzdWx0LCByZXN1bHRUeXBlKTsgXAorICAgIH0gZWxz
ZSB7IFwKKyAgICAgICAgLyogb3V0IG9mIHJhbmdlICovIFwKKyAgICAgICAgKHJlc3VsdCk9KHJl
c3VsdFR5cGUpKCh0cmllKS0+aW5pdGlhbFZhbHVlKTsgXAorICAgIH0KKworLyoqIEludGVybmFs
IG5leHQtcG9zdC1pbmNyZW1lbnQ6IGdldCB0aGUgbmV4dCBjb2RlIHBvaW50IChjLCBjMikgYW5k
IGl0cyBkYXRhICovCisjZGVmaW5lIF9VVFJJRV9ORVhUKHRyaWUsIGRhdGEsIHNyYywgbGltaXQs
IGMsIGMyLCByZXN1bHQsIHJlc3VsdFR5cGUpIHsgXAorICAgIChjKT0qKHNyYykrKzsgXAorICAg
IGlmKCFVMTZfSVNfTEVBRChjKSkgeyBcCisgICAgICAgIChjMik9MDsgXAorICAgICAgICAocmVz
dWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEsIDAsIChjKSk7IFwKKyAgICB9IGVsc2Ug
aWYoKHNyYykhPShsaW1pdCkgJiYgVTE2X0lTX1RSQUlMKChjMik9KihzcmMpKSkgeyBcCisgICAg
ICAgICsrKHNyYyk7IFwKKyAgICAgICAgX1VUUklFX0dFVF9GUk9NX1BBSVIoKHRyaWUpLCBkYXRh
LCAoYyksIChjMiksIChyZXN1bHQpLCByZXN1bHRUeXBlKTsgXAorICAgIH0gZWxzZSB7IFwKKyAg
ICAgICAgLyogdW5wYWlyZWQgbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludCAqLyBcCisgICAgICAg
IChjMik9MDsgXAorICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEs
IFVUUklFX0xFQURfSU5ERVhfRElTUCwgKGMpKTsgXAorICAgIH0gXAorfQorCisvKiogSW50ZXJu
YWwgcHJldmlvdXM6IGdldCB0aGUgcHJldmlvdXMgY29kZSBwb2ludCAoYywgYzIpIGFuZCBpdHMg
ZGF0YSAqLworI2RlZmluZSBfVVRSSUVfUFJFVklPVVModHJpZSwgZGF0YSwgc3RhcnQsIHNyYywg
YywgYzIsIHJlc3VsdCwgcmVzdWx0VHlwZSkgeyBcCisgICAgKGMpPSotLShzcmMpOyBcCisgICAg
aWYoIVUxNl9JU19TVVJST0dBVEUoYykpIHsgXAorICAgICAgICAoYzIpPTA7IFwKKyAgICAgICAg
KHJlc3VsdCk9X1VUUklFX0dFVF9SQVcoKHRyaWUpLCBkYXRhLCAwLCAoYykpOyBcCisgICAgfSBl
bHNlIGlmKCFVMTZfSVNfU1VSUk9HQVRFX0xFQUQoYykpIHsgXAorICAgICAgICAvKiB0cmFpbCBz
dXJyb2dhdGUgKi8gXAorICAgICAgICBpZigoc3RhcnQpIT0oc3JjKSAmJiBVMTZfSVNfTEVBRCgo
YzIpPSooKHNyYyktMSkpKSB7IFwKKyAgICAgICAgICAgIC0tKHNyYyk7IFwKKyAgICAgICAgICAg
IChyZXN1bHQpPShjKTsgKGMpPShjMik7IChjMik9KFVDaGFyKShyZXN1bHQpOyAvKiBzd2FwIGMs
IGMyICovIFwKKyAgICAgICAgICAgIF9VVFJJRV9HRVRfRlJPTV9QQUlSKCh0cmllKSwgZGF0YSwg
KGMpLCAoYzIpLCAocmVzdWx0KSwgcmVzdWx0VHlwZSk7IFwKKyAgICAgICAgfSBlbHNlIHsgXAor
ICAgICAgICAgICAgLyogdW5wYWlyZWQgdHJhaWwgc3Vycm9nYXRlIGNvZGUgcG9pbnQgKi8gXAor
ICAgICAgICAgICAgKGMyKT0wOyBcCisgICAgICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JB
VygodHJpZSksIGRhdGEsIDAsIChjKSk7IFwKKyAgICAgICAgfSBcCisgICAgfSBlbHNlIHsgXAor
ICAgICAgICAvKiB1bnBhaXJlZCBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50ICovIFwKKyAgICAg
ICAgKGMyKT0wOyBcCisgICAgICAgIChyZXN1bHQpPV9VVFJJRV9HRVRfUkFXKCh0cmllKSwgZGF0
YSwgVVRSSUVfTEVBRF9JTkRFWF9ESVNQLCAoYykpOyBcCisgICAgfSBcCit9CisKKy8qIFB1Ymxp
YyBVVHJpZSBBUEkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBHZXQgYSBwb2ludGVyIHRvIHRoZSBjb250aWd1b3Vz
IHBhcnQgb2YgdGhlIGRhdGEgYXJyYXkKKyAqIGZvciB0aGUgTGF0aW4tMSByYW5nZSAoVSswMDAw
Li5VKzAwZmYpLgorICogTXVzdCBiZSB1c2VkIG9ubHkgaWYgdGhlIExhdGluLTEgcmFuZ2UgaXMg
aW4gZmFjdCBsaW5lYXIKKyAqICh0cmllLT5pc0xhdGluMUxpbmVhcikuCisgKgorICogQHBhcmFt
IHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBz
dHJ1Y3R1cmUKKyAqIEByZXR1cm4gKGNvbnN0IHVpbnQxNl90ICopIHBvaW50ZXIgdG8gdmFsdWVz
IGZvciBMYXRpbi0xIGNvZGUgcG9pbnRzCisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTZfTEFUSU4x
KHRyaWUpICgodHJpZSktPmluZGV4Kyh0cmllKS0+aW5kZXhMZW5ndGgrVVRSSUVfREFUQV9CTE9D
S19MRU5HVEgpCisKKy8qKgorICogR2V0IGEgcG9pbnRlciB0byB0aGUgY29udGlndW91cyBwYXJ0
IG9mIHRoZSBkYXRhIGFycmF5CisgKiBmb3IgdGhlIExhdGluLTEgcmFuZ2UgKFUrMDAwMC4uVSsw
MGZmKS4KKyAqIE11c3QgYmUgdXNlZCBvbmx5IGlmIHRoZSBMYXRpbi0xIHJhbmdlIGlzIGluIGZh
Y3QgbGluZWFyCisgKiAodHJpZS0+aXNMYXRpbjFMaW5lYXIpLgorICoKKyAqIEBwYXJhbSB0cmll
IChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0
dXJlCisgKiBAcmV0dXJuIChjb25zdCB1aW50MzJfdCAqKSBwb2ludGVyIHRvIHZhbHVlcyBmb3Ig
TGF0aW4tMSBjb2RlIHBvaW50cworICovCisjZGVmaW5lIFVUUklFX0dFVDMyX0xBVElOMSh0cmll
KSAoKHRyaWUpLT5kYXRhMzIrVVRSSUVfREFUQV9CTE9DS19MRU5HVEgpCisKKy8qKgorICogR2V0
IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJNUCBjb2RlIHBvaW50IChVQ2hhciwgPD1VK2Zm
ZmYpLgorICogYzE2IG1heSBiZSBhIGxlYWQgc3Vycm9nYXRlLCB3aGljaCBtYXkgaGF2ZSBhIHZh
bHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0LgorICoKKyAqIEBwYXJhbSB0cmllIChjb25z
dCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisg
KiBAcGFyYW0gYzE2IChVQ2hhciwgaW4pIHRoZSBpbnB1dCBCTVAgY29kZSBwb2ludAorICogQHJl
dHVybiAodWludDE2X3QpIHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dF
VDE2X0ZST01fTEVBRCh0cmllLCBjMTYpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGluZGV4LCAwLCBj
MTYpCisKKy8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJNUCBjb2RlIHBv
aW50IChVQ2hhciwgPD1VK2ZmZmYpLgorICogYzE2IG1heSBiZSBhIGxlYWQgc3Vycm9nYXRlLCB3
aGljaCBtYXkgaGF2ZSBhIHZhbHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0LgorICoKKyAq
IEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1l
IHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYzE2IChVQ2hhciwgaW4pIHRoZSBpbnB1dCBCTVAg
Y29kZSBwb2ludAorICogQHJldHVybiAodWludDMyX3QpIHRyaWUgbG9va3VwIHJlc3VsdAorICov
CisjZGVmaW5lIFVUUklFX0dFVDMyX0ZST01fTEVBRCh0cmllLCBjMTYpIF9VVFJJRV9HRVRfUkFX
KHRyaWUsIGRhdGEzMiwgMCwgYzE2KQorCisvKioKKyAqIEdldCBhIDE2LWJpdCB0cmllIHZhbHVl
IGZyb20gYSBCTVAgY29kZSBwb2ludCAoVUNoYXIsIDw9VStmZmZmKS4KKyAqIEV2ZW4gbGVhZCBz
dXJyb2dhdGUgY29kZSBwb2ludHMgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIGNvZGUgcG9pbnRzLAor
ICogd2l0aCB1bmZvbGRlZCB2YWx1ZXMgdGhhdCBtYXkgZGlmZmVyIGZyb20gX0ZST01fTEVBRCgp
IG1hY3JvIHJlc3VsdHMgZm9yIHRoZW0uCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmll
ICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJh
bSBjMTYgKFVDaGFyLCBpbikgdGhlIGlucHV0IEJNUCBjb2RlIHBvaW50CisgKiBAcmV0dXJuICh1
aW50MTZfdCkgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTZfRlJP
TV9CTVAodHJpZSwgYzE2KSBfVVRSSUVfR0VUX0ZST01fQk1QKHRyaWUsIGluZGV4LCBjMTYpCisK
Ky8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJNUCBjb2RlIHBvaW50IChV
Q2hhciwgPD1VK2ZmZmYpLgorICogRXZlbiBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cyBhcmUg
dHJlYXRlZCBhcyBub3JtYWwgY29kZSBwb2ludHMsCisgKiB3aXRoIHVuZm9sZGVkIHZhbHVlcyB0
aGF0IG1heSBkaWZmZXIgZnJvbSBfRlJPTV9MRUFEKCkgbWFjcm8gcmVzdWx0cyBmb3IgdGhlbS4K
KyAqCisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRlciB0byB0aGUg
cnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIGMxNiAoVUNoYXIsIGluKSB0aGUgaW5w
dXQgQk1QIGNvZGUgcG9pbnQKKyAqIEByZXR1cm4gKHVpbnQzMl90KSB0cmllIGxvb2t1cCByZXN1
bHQKKyAqLworI2RlZmluZSBVVFJJRV9HRVQzMl9GUk9NX0JNUCh0cmllLCBjMTYpIF9VVFJJRV9H
RVRfRlJPTV9CTVAodHJpZSwgZGF0YTMyLCBjMTYpCisKKy8qKgorICogR2V0IGEgMTYtYml0IHRy
aWUgdmFsdWUgZnJvbSBhIGNvZGUgcG9pbnQuCisgKiBFdmVuIGxlYWQgc3Vycm9nYXRlIGNvZGUg
cG9pbnRzIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBjb2RlIHBvaW50cywKKyAqIHdpdGggdW5mb2xk
ZWQgdmFsdWVzIHRoYXQgbWF5IGRpZmZlciBmcm9tIF9GUk9NX0xFQUQoKSBtYWNybyByZXN1bHRz
IGZvciB0aGVtLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2lu
dGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYzMyIChVQ2hhcjMy
LCBpbikgdGhlIGlucHV0IGNvZGUgcG9pbnQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQxNl90LCBv
dXQpIHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNk
ZWZpbmUgVVRSSUVfR0VUMTYodHJpZSwgYzMyLCByZXN1bHQpIF9VVFJJRV9HRVQodHJpZSwgaW5k
ZXgsIGMzMiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgYSAzMi1iaXQgdHJpZSB2
YWx1ZSBmcm9tIGEgY29kZSBwb2ludC4KKyAqIEV2ZW4gbGVhZCBzdXJyb2dhdGUgY29kZSBwb2lu
dHMgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIGNvZGUgcG9pbnRzLAorICogd2l0aCB1bmZvbGRlZCB2
YWx1ZXMgdGhhdCBtYXkgZGlmZmVyIGZyb20gX0ZST01fTEVBRCgpIG1hY3JvIHJlc3VsdHMgZm9y
IHRoZW0uCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIg
dG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBjMzIgKFVDaGFyMzIsIGlu
KSB0aGUgaW5wdXQgY29kZSBwb2ludAorICogQHBhcmFtIHJlc3VsdCAodWludDMyX3QsIG91dCkg
dWludDMyX3QgdmFyaWFibGUgZm9yIHRoZSB0cmllIGxvb2t1cCByZXN1bHQKKyAqLworI2RlZmlu
ZSBVVFJJRV9HRVQzMih0cmllLCBjMzIsIHJlc3VsdCkgX1VUUklFX0dFVCh0cmllLCBkYXRhMzIs
IGMzMiwgcmVzdWx0LCB1aW50MzJfdCkKKworLyoqCisgKiBHZXQgdGhlIG5leHQgY29kZSBwb2lu
dCAoYywgYzIpLCBwb3N0LWluY3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0IGEgMTYtYml0IHZhbHVl
IGZyb20gdGhlIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBh
IHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzcmMgKGNv
bnN0IFVDaGFyICosIGluL291dCkgdGhlIHNvdXJjZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBs
aW1pdCAoY29uc3QgVUNoYXIgKiwgaW4pIHRoZSBsaW1pdCBwb2ludGVyIGZvciB0aGUgdGV4dCwg
b3IgTlVMTAorICogQHBhcmFtIGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9y
IGxlYWQgY29kZSB1bml0CisgKiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAw
IG9yIHRoZSB0cmFpbCBjb2RlIHVuaXQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQxNl90LCBvdXQp
IHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZp
bmUgVVRSSUVfTkVYVDE2KHRyaWUsIHNyYywgbGltaXQsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9O
RVhUKHRyaWUsIGluZGV4LCBzcmMsIGxpbWl0LCBjLCBjMiwgcmVzdWx0LCB1aW50MTZfdCkKKwor
LyoqCisgKiBHZXQgdGhlIG5leHQgY29kZSBwb2ludCAoYywgYzIpLCBwb3N0LWluY3JlbWVudCBz
cmMsCisgKiBhbmQgZ2V0IGEgMzItYml0IHZhbHVlIGZyb20gdGhlIHRyaWUuCisgKgorICogQHBh
cmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJp
ZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzcmMgKGNvbnN0IFVDaGFyICosIGluL291dCkgdGhlIHNv
dXJjZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBsaW1pdCAoY29uc3QgVUNoYXIgKiwgaW4pIHRo
ZSBsaW1pdCBwb2ludGVyIGZvciB0aGUgdGV4dCwgb3IgTlVMTAorICogQHBhcmFtIGMgKFVDaGFy
LCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9yIGxlYWQgY29kZSB1bml0CisgKiBAcGFyYW0g
YzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAwIG9yIHRoZSB0cmFpbCBjb2RlIHVuaXQKKyAq
IEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQpIHVpbnQzMl90IHZhcmlhYmxlIGZvciB0aGUg
dHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfTkVYVDMyKHRyaWUsIHNyYywg
bGltaXQsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9ORVhUKHRyaWUsIGRhdGEzMiwgc3JjLCBsaW1p
dCwgYywgYzIsIHJlc3VsdCwgdWludDMyX3QpCisKKy8qKgorICogR2V0IHRoZSBwcmV2aW91cyBj
b2RlIHBvaW50IChjLCBjMiksIHByZS1kZWNyZW1lbnQgc3JjLAorICogYW5kIGdldCBhIDE2LWJp
dCB2YWx1ZSBmcm9tIHRoZSB0cmllLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAq
LCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0g
c3RhcnQgKGNvbnN0IFVDaGFyICosIGluKSB0aGUgc3RhcnQgcG9pbnRlciBmb3IgdGhlIHRleHQs
IG9yIE5VTEwKKyAqIEBwYXJhbSBzcmMgKGNvbnN0IFVDaGFyICosIGluL291dCkgdGhlIHNvdXJj
ZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBjIChVQ2hhciwgb3V0KSB2YXJpYWJsZSBmb3IgdGhl
IEJNUCBvciBsZWFkIGNvZGUgdW5pdAorICogQHBhcmFtIGMyIChVQ2hhciwgb3V0KSB2YXJpYWJs
ZSBmb3IgMCBvciB0aGUgdHJhaWwgY29kZSB1bml0CisgKiBAcGFyYW0gcmVzdWx0ICh1aW50MTZf
dCwgb3V0KSB1aW50MTZfdCB2YXJpYWJsZSBmb3IgdGhlIHRyaWUgbG9va3VwIHJlc3VsdAorICov
CisjZGVmaW5lIFVUUklFX1BSRVZJT1VTMTYodHJpZSwgc3RhcnQsIHNyYywgYywgYzIsIHJlc3Vs
dCkgX1VUUklFX1BSRVZJT1VTKHRyaWUsIGluZGV4LCBzdGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0
LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgKGMsIGMy
KSwgcHJlLWRlY3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0IGEgMzItYml0IHZhbHVlIGZyb20gdGhl
IHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIg
dG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzdGFydCAoY29uc3QgVUNo
YXIgKiwgaW4pIHRoZSBzdGFydCBwb2ludGVyIGZvciB0aGUgdGV4dCwgb3IgTlVMTAorICogQHBh
cmFtIHNyYyAoY29uc3QgVUNoYXIgKiwgaW4vb3V0KSB0aGUgc291cmNlIHRleHQgcG9pbnRlcgor
ICogQHBhcmFtIGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9yIGxlYWQgY29k
ZSB1bml0CisgKiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAwIG9yIHRoZSB0
cmFpbCBjb2RlIHVuaXQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQpIHVpbnQzMl90
IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVf
UFJFVklPVVMzMih0cmllLCBzdGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0KSBfVVRSSUVfUFJFVklP
VVModHJpZSwgZGF0YTMyLCBzdGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0LCB1aW50MzJfdCkKKwor
LyoqCisgKiBHZXQgYSAxNi1iaXQgdHJpZSB2YWx1ZSBmcm9tIGEgcGFpciBvZiBzdXJyb2dhdGVz
LgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRo
ZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYyAoVUNoYXIsIGluKSBhIGxlYWQg
c3Vycm9nYXRlCisgKiBAcGFyYW0gYzIgKFVDaGFyLCBpbikgYSB0cmFpbCBzdXJyb2dhdGUKKyAq
IEBwYXJhbSByZXN1bHQgKHVpbnQxNl90LCBvdXQpIHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUg
dHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTZfRlJPTV9QQUlSKHRy
aWUsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9HRVRfRlJPTV9QQUlSKHRyaWUsIGluZGV4LCBjLCBj
MiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgYSAzMi1iaXQgdHJpZSB2YWx1ZSBm
cm9tIGEgcGFpciBvZiBzdXJyb2dhdGVzLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJp
ZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFy
YW0gYyAoVUNoYXIsIGluKSBhIGxlYWQgc3Vycm9nYXRlCisgKiBAcGFyYW0gYzIgKFVDaGFyLCBp
bikgYSB0cmFpbCBzdXJyb2dhdGUKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQpIHVp
bnQzMl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUg
VVRSSUVfR0VUMzJfRlJPTV9QQUlSKHRyaWUsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9HRVRfRlJP
TV9QQUlSKHRyaWUsIGRhdGEzMiwgYywgYzIsIHJlc3VsdCwgdWludDMyX3QpCisKKy8qKgorICog
R2V0IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIGZvbGRpbmcgb2Zmc2V0IChmcm9tIHRoZSB2
YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRlKQorICogYW5kIGEgdHJhaWwgc3Vycm9nYXRlLgorICoK
KyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50
aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gb2Zmc2V0IChpbnQzMl90LCBpbikgdGhlIGZv
bGRpbmcgb2Zmc2V0IGZyb20gdGhlIHZhbHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUKKyAqIEBwYXJh
bSBjMiAoVUNoYXIsIGluKSBhIHRyYWlsIHN1cnJvZ2F0ZSAob25seSB0aGUgMTAgbG93IGJpdHMg
YXJlIHNpZ25pZmljYW50KQorICogQHJldHVybiAodWludDE2X3QpIHRyaWUgbG9va3VwIHJlc3Vs
dAorICovCisjZGVmaW5lIFVUUklFX0dFVDE2X0ZST01fT0ZGU0VUX1RSQUlMKHRyaWUsIG9mZnNl
dCwgYzIpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGluZGV4LCBvZmZzZXQsIChjMikmMHgzZmYpCisK
Ky8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIGZvbGRpbmcgb2Zmc2V0IChm
cm9tIHRoZSB2YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRlKQorICogYW5kIGEgdHJhaWwgc3Vycm9n
YXRlLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRv
IHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gb2Zmc2V0IChpbnQzMl90LCBp
bikgdGhlIGZvbGRpbmcgb2Zmc2V0IGZyb20gdGhlIHZhbHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUK
KyAqIEBwYXJhbSBjMiAoVUNoYXIsIGluKSBhIHRyYWlsIHN1cnJvZ2F0ZSAob25seSB0aGUgMTAg
bG93IGJpdHMgYXJlIHNpZ25pZmljYW50KQorICogQHJldHVybiAodWludDMyX3QpIHRyaWUgbG9v
a3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dFVDMyX0ZST01fT0ZGU0VUX1RSQUlMKHRy
aWUsIG9mZnNldCwgYzIpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEzMiwgb2Zmc2V0LCAoYzIp
JjB4M2ZmKQorCisvKiBlbnVtZXJhdGlvbiBjYWxsYmFjayB0eXBlcyAqLworCisvKioKKyAqIENh
bGxiYWNrIGZyb20gdXRyaWVfZW51bSgpLCBleHRyYWN0cyBhIHVpbnQzMl90IHZhbHVlIGZyb20g
YQorICogdHJpZSB2YWx1ZS4gVGhpcyB2YWx1ZSB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUgVVRy
aWVFbnVtUmFuZ2UgZnVuY3Rpb24uCisgKgorICogQHBhcmFtIGNvbnRleHQgYW4gb3BhcXVlIHBv
aW50ZXIsIGFzIHBhc3NlZCBpbnRvIHV0cmllX2VudW0oKQorICogQHBhcmFtIHZhbHVlIGEgdmFs
dWUgZnJvbSB0aGUgdHJpZQorICogQHJldHVybiB0aGUgdmFsdWUgdGhhdCBpcyB0byBiZSBwYXNz
ZWQgb24gdG8gdGhlIFVUcmllRW51bVJhbmdlIGZ1bmN0aW9uCisgKi8KK3R5cGVkZWYgdWludDMy
X3QgVV9DQUxMQ09OVgorVVRyaWVFbnVtVmFsdWUoY29uc3Qgdm9pZCAqY29udGV4dCwgdWludDMy
X3QgdmFsdWUpOworCisvKioKKyAqIENhbGxiYWNrIGZyb20gdXRyaWVfZW51bSgpLCBpcyBjYWxs
ZWQgZm9yIGVhY2ggY29udGlndW91cyByYW5nZQorICogb2YgY29kZSBwb2ludHMgd2l0aCB0aGUg
c2FtZSB2YWx1ZSBhcyByZXRyaWV2ZWQgZnJvbSB0aGUgdHJpZSBhbmQKKyAqIHRyYW5zZm9ybWVk
IGJ5IHRoZSBVVHJpZUVudW1WYWx1ZSBmdW5jdGlvbi4KKyAqCisgKiBUaGUgY2FsbGJhY2sgZnVu
Y3Rpb24gY2FuIHN0b3AgdGhlIGVudW1lcmF0aW9uIGJ5IHJldHVybmluZyBGQUxTRS4KKyAqCisg
KiBAcGFyYW0gY29udGV4dCBhbiBvcGFxdWUgcG9pbnRlciwgYXMgcGFzc2VkIGludG8gdXRyaWVf
ZW51bSgpCisgKiBAcGFyYW0gc3RhcnQgdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gYSBjb250aWd1
b3VzIHJhbmdlIHdpdGggdmFsdWUKKyAqIEBwYXJhbSBsaW1pdCBvbmUgcGFzdCB0aGUgbGFzdCBj
b2RlIHBvaW50IGluIGEgY29udGlndW91cyByYW5nZSB3aXRoIHZhbHVlCisgKiBAcGFyYW0gdmFs
dWUgdGhlIHZhbHVlIHRoYXQgaXMgc2V0IGZvciBhbGwgY29kZSBwb2ludHMgaW4gW3N0YXJ0Li5s
aW1pdFsKKyAqIEByZXR1cm4gRkFMU0UgdG8gc3RvcCB0aGUgZW51bWVyYXRpb24KKyAqLwordHlw
ZWRlZiBVQm9vbCBVX0NBTExDT05WCitVVHJpZUVudW1SYW5nZShjb25zdCB2b2lkICpjb250ZXh0
LCBVQ2hhcjMyIHN0YXJ0LCBVQ2hhcjMyIGxpbWl0LCB1aW50MzJfdCB2YWx1ZSk7CisKKy8qKgor
ICogRW51bWVyYXRlIGVmZmljaWVudGx5IGFsbCB2YWx1ZXMgaW4gYSB0cmllLgorICogRm9yIGVh
Y2ggZW50cnkgaW4gdGhlIHRyaWUsIHRoZSB2YWx1ZSB0byBiZSBkZWxpdmVyZWQgaXMgcGFzc2Vk
IHRocm91Z2gKKyAqIHRoZSBVVHJpZUVudW1WYWx1ZSBmdW5jdGlvbi4KKyAqIFRoZSB2YWx1ZSBp
cyB1bmNoYW5nZWQgaWYgdGhhdCBmdW5jdGlvbiBwb2ludGVyIGlzIE5VTEwuCisgKgorICogRm9y
IGVhY2ggY29udGlndW91cyByYW5nZSBvZiBjb2RlIHBvaW50cyB3aXRoIGEgZ2l2ZW4gdmFsdWUs
CisgKiB0aGUgVVRyaWVFbnVtUmFuZ2UgZnVuY3Rpb24gaXMgY2FsbGVkLgorICoKKyAqIEBwYXJh
bSB0cmllIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFt
IGVudW1WYWx1ZSBhIHBvaW50ZXIgdG8gYSBmdW5jdGlvbiB0aGF0IG1heSB0cmFuc2Zvcm0gdGhl
IHRyaWUgZW50cnkgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIG9yIE5VTEwgaWYgdGhlIHZh
bHVlcyBmcm9tIHRoZSB0cmllIGFyZSB0byBiZSB1c2VkIGRpcmVjdGx5CisgKiBAcGFyYW0gZW51
bVJhbmdlIGEgcG9pbnRlciB0byBhIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGZvciBlYWNoIGNv
bnRpZ3VvdXMgcmFuZ2UKKyAqICAgICAgICAgICAgICAgICAgb2YgY29kZSBwb2ludHMgd2l0aCB0
aGUgc2FtZSB2YWx1ZQorICogQHBhcmFtIGNvbnRleHQgYW4gb3BhcXVlIHBvaW50ZXIgdGhhdCBp
cyBwYXNzZWQgb24gdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9ucworICovCitVX0NBUEkgdm9pZCBV
X0VYUE9SVDIKK3V0cmllX2VudW0oY29uc3QgVVRyaWUgKnRyaWUsCisgICAgICAgICAgIFVUcmll
RW51bVZhbHVlICplbnVtVmFsdWUsIFVUcmllRW51bVJhbmdlICplbnVtUmFuZ2UsIGNvbnN0IHZv
aWQgKmNvbnRleHQpOworCisvKioKKyAqIFVuc2VyaWFsaXplIGEgdHJpZSBmcm9tIDMyLWJpdC1h
bGlnbmVkIG1lbW9yeS4KKyAqIEludmVyc2Ugb2YgdXRyaWVfc2VyaWFsaXplKCkuCisgKiBGaWxs
cyB0aGUgVVRyaWUgcnVudGltZSB0cmllIHN0cnVjdHVyZSB3aXRoIHRoZSBzZXR0aW5ncyBmb3Ig
dGhlIHRyaWUgZGF0YS4KKyAqCisgKiBAcGFyYW0gdHJpZSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRp
bWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBkYXRhIGEgcG9pbnRlciB0byAzMi1iaXQtYWxp
Z25lZCBtZW1vcnkgY29udGFpbmluZyB0cmllIGRhdGEKKyAqIEBwYXJhbSBsZW5ndGggdGhlIG51
bWJlciBvZiBieXRlcyBhdmFpbGFibGUgYXQgZGF0YQorICogQHBhcmFtIHBFcnJvckNvZGUgYW4g
aW4vb3V0IElDVSBVRXJyb3JDb2RlCisgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgYXQg
ZGF0YSB0YWtlbiB1cCBieSB0aGUgdHJpZSBkYXRhCisgKi8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQ
T1JUMgordXRyaWVfdW5zZXJpYWxpemUoVVRyaWUgKnRyaWUsIGNvbnN0IHZvaWQgKmRhdGEsIGlu
dDMyX3QgbGVuZ3RoLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiAiVW5zZXJp
YWxpemUiIGEgZHVtbXkgdHJpZS4KKyAqIEEgZHVtbXkgdHJpZSBpcyBhbiBlbXB0eSBydW50aW1l
IHRyaWUsIHVzZWQgd2hlbiBhIHJlYWwgZGF0YSB0cmllIGNhbm5vdAorICogYmUgbG9hZGVkLgor
ICoKKyAqIFRoZSBpbnB1dCBtZW1vcnkgaXMgZmlsbGVkIHNvIHRoYXQgdGhlIHRyaWUgYWx3YXlz
IHJldHVybnMgdGhlIGluaXRpYWxWYWx1ZSwKKyAqIG9yIHRoZSBsZWFkVW5pdFZhbHVlIGZvciBs
ZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cy4KKyAqIFRoZSBMYXRpbi0xIHBhcnQgaXMgYWx3YXlz
IHNldCB1cCB0byBiZSBsaW5lYXIuCisgKgorICogQHBhcmFtIHRyaWUgYSBwb2ludGVyIHRvIHRo
ZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gZGF0YSBhIHBvaW50ZXIgdG8gMzIt
Yml0LWFsaWduZWQgbWVtb3J5IHRvIGJlIGZpbGxlZCB3aXRoIHRoZSBkdW1teSB0cmllIGRhdGEK
KyAqIEBwYXJhbSBsZW5ndGggdGhlIG51bWJlciBvZiBieXRlcyBhdmFpbGFibGUgYXQgZGF0YSAo
cmVjb21tZW5kZWQgdG8gdXNlIFVUUklFX0RVTU1ZX1NJWkUpCisgKiBAcGFyYW0gaW5pdGlhbFZh
bHVlIHRoZSBpbml0aWFsIHZhbHVlIHRoYXQgaXMgc2V0IGZvciBhbGwgY29kZSBwb2ludHMKKyAq
IEBwYXJhbSBsZWFkVW5pdFZhbHVlIHRoZSB2YWx1ZSBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBf
dW5pdHNfIHRoYXQgZG8gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICBoYXZlIGFzc29jaWF0
ZWQgc3VwcGxlbWVudGFyeSBkYXRhCisgKiBAcGFyYW0gcEVycm9yQ29kZSBhbiBpbi9vdXQgSUNV
IFVFcnJvckNvZGUKKyAqCisgKiBAc2VlIFVUUklFX0RVTU1ZX1NJWkUKKyAqIEBzZWUgdXRyaWVf
b3BlbgorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0cmllX3Vuc2VyaWFsaXplRHVt
bXkoVVRyaWUgKnRyaWUsCisgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEsIGludDMy
X3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpbml0aWFsVmFsdWUs
IHVpbnQzMl90IGxlYWRVbml0VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgIFVCb29sIG1h
a2UxNkJpdFRyaWUsCisgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNv
ZGUpOworCisvKioKKyAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIFVUcmllLmdldEZvbGRp
bmdPZmZzZXQsIHNldCBhdXRvbWF0aWNhbGx5IGJ5CisgKiB1dHJpZV91bnNlcmlhbGl6ZSgpLgor
ICogU2ltcGx5IHJldHVybnMgdGhlIGxlYWQgc3Vycm9nYXRlJ3MgdmFsdWUgaXRzZWxmIC0gd2hp
Y2ggaXMgdGhlIGludmVyc2UKKyAqIG9mIHRoZSBkZWZhdWx0IGZvbGRpbmcgZnVuY3Rpb24gdXNl
ZCBieSB1dHJpZV9zZXJpYWxpemUoKS4KKyAqIEV4cG9ydGVkIGZvciBzdGF0aWMgY29uc3QgVVRy
aWUgc3RydWN0dXJlcy4KKyAqCisgKiBAc2VlIFVUcmllR2V0Rm9sZGluZ09mZnNldAorICovCitV
X0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0cmllX2RlZmF1bHRHZXRGb2xkaW5nT2Zmc2V0KHVp
bnQzMl90IGRhdGEpOworCisvKiBCdWlsZGluZyBhIHRyaWUgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qKgorICogQnVpbGQt
dGltZSB0cmllIHN0cnVjdHVyZS4KKyAqIE9wYXF1ZSBkZWZpbml0aW9uLCBoZXJlIG9ubHkgdG8g
bWFrZSBmaWxsSW4gcGFyYW1ldGVycyBwb3NzaWJsZQorICogZm9yIHV0cmllX29wZW4oKSBhbmQg
dXRyaWVfY2xvbmUoKS4KKyAqLworc3RydWN0IFVOZXdUcmllIHsKKyAgICAvKioKKyAgICAgKiBJ
bmRleCB2YWx1ZXMgYXQgYnVpbGQtdGltZSBhcmUgMzIgYml0cyB3aWRlIGZvciBlYXNpZXIgcHJv
Y2Vzc2luZy4KKyAgICAgKiBCaXQgMzEgaXMgc2V0IGlmIHRoZSBkYXRhIGJsb2NrIGlzIHVzZWQg
YnkgbXVsdGlwbGUgaW5kZXggdmFsdWVzIChmcm9tIHV0cmllX3NldFJhbmdlKCkpLgorICAgICAq
LworICAgIGludDMyX3QgaW5kZXhbVVRSSUVfTUFYX0lOREVYX0xFTkdUSF07CisgICAgdWludDMy
X3QgKmRhdGE7CisKKyAgICB1aW50MzJfdCBsZWFkVW5pdFZhbHVlOworICAgIGludDMyX3QgaW5k
ZXhMZW5ndGgsIGRhdGFDYXBhY2l0eSwgZGF0YUxlbmd0aDsKKyAgICBVQm9vbCBpc0FsbG9jYXRl
ZCwgaXNEYXRhQWxsb2NhdGVkOworICAgIFVCb29sIGlzTGF0aW4xTGluZWFyLCBpc0NvbXBhY3Rl
ZDsKKworICAgIC8qKgorICAgICAqIE1hcCBvZiBhZGp1c3RlZCBpbmRleGVzLCB1c2VkIGluIHV0
cmllX2NvbXBhY3QoKS4KKyAgICAgKiBNYXBzIGZyb20gb3JpZ2luYWwgaW5kZXhlcyB0byBuZXcg
b25lcy4KKyAgICAgKi8KKyAgICBpbnQzMl90IG1hcFtVVFJJRV9NQVhfQlVJTERfVElNRV9EQVRB
X0xFTkdUSD4+VVRSSUVfU0hJRlRdOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgVU5ld1RyaWUgVU5l
d1RyaWU7CisKKy8qKgorICogQnVpbGQtdGltZSB0cmllIGNhbGxiYWNrIGZ1bmN0aW9uLCB1c2Vk
IHdpdGggdXRyaWVfc2VyaWFsaXplKCkuCisgKiBUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgYSBs
ZWFkIHN1cnJvZ2F0ZSdzIHZhbHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0CisgKiBmcm9t
IHRoZSAxMDI0IHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgW3N0YXJ0Li5zdGFydCsxMDI0WyAu
CisgKiBJdCBpcyBVKzEwMDAwIDw9IHN0YXJ0IDw9IFUrMTBmYzAwIGFuZCAoc3RhcnQmMHgzZmYp
PT0wLgorICoKKyAqIFRoZSBmb2xkaW5nIG9mZnNldCBpcyBwcm92aWRlZCBieSB0aGUgY2FsbGVy
LgorICogSXQgaXMgb2Zmc2V0PVVUUklFX0JNUF9JTkRFWF9MRU5HVEgrbipVVFJJRV9TVVJST0dB
VEVfQkxPQ0tfQ09VTlQgd2l0aCBuPTAuLjEwMjMuCisgKiBJbnN0ZWFkIG9mIHRoZSBvZmZzZXQg
aXRzZWxmLCBuIGNhbiBiZSBzdG9yZWQgaW4gMTAgYml0cyAtCisgKiBvciBmZXdlciBpZiBpdCBj
YW4gYmUgYXNzdW1lZCB0aGF0IGZldyBsZWFkIHN1cnJvZ2F0ZXMgaGF2ZSBhc3NvY2lhdGVkIGRh
dGEuCisgKgorICogVGhlIHJldHVybmVkIHZhbHVlIG11c3QgYmUKKyAqIC0gbm90IHplcm8gaWYg
YW5kIG9ubHkgaWYgdGhlcmUgaXMgcmVsZXZhbnQgZGF0YQorICogICBmb3IgdGhlIGNvcnJlc3Bv
bmRpbmcgMTAyNCBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzCisgKiAtIHN1Y2ggdGhhdCBVVHJp
ZS5nZXRGb2xkaW5nT2Zmc2V0KFVOZXdUcmllR2V0Rm9sZGVkVmFsdWUoLi4uLCBvZmZzZXQpKT09
b2Zmc2V0CisgKgorICogQHJldHVybiBhIGZvbGRlZCB2YWx1ZSwgb3IgMCBpZiB0aGVyZSBpcyBu
byByZWxldmFudCBkYXRhIGZvciB0aGUgbGVhZCBzdXJyb2dhdGUuCisgKi8KK3R5cGVkZWYgdWlu
dDMyX3QgVV9DQUxMQ09OVgorVU5ld1RyaWVHZXRGb2xkZWRWYWx1ZShVTmV3VHJpZSAqdHJpZSwg
VUNoYXIzMiBzdGFydCwgaW50MzJfdCBvZmZzZXQpOworCisvKioKKyAqIE9wZW4gYSBidWlsZC10
aW1lIHRyaWUgc3RydWN0dXJlLgorICogVGhlIHNpemUgb2YgdGhlIGJ1aWxkLXRpbWUgZGF0YSBh
cnJheSBpcyBzcGVjaWZpZWQgdG8gYXZvaWQgYWxsb2NhdGluZyBhIGxhcmdlCisgKiBhcnJheSBp
biBhbGwgY2FzZXMuIFRoZSBhcnJheSBpdHNlbGYgY2FuIGFsc28gYmUgcGFzc2VkIGluLgorICoK
KyAqIEFsdGhvdWdoIHRoZSB0cmllIGlzIG5ldmVyIGZ1bGx5IGV4cGFuZGVkIHRvIGEgbGluZWFy
IGFycmF5LCBlc3BlY2lhbGx5IHdoZW4KKyAqIHV0cmllX3NldFJhbmdlMzIoKSBpcyB1c2VkLCB0
aGUgZGF0YSBhcnJheSBjb3VsZCBiZSBsYXJnZSBkdXJpbmcgYnVpbGQgdGltZS4KKyAqIFRoZSBt
YXhpbXVtIGxlbmd0aCBpcworICogVVRSSUVfTUFYX0JVSUxEX1RJTUVfREFUQV9MRU5HVEg9MHgx
MTAwMDArVVRSSUVfREFUQV9CTE9DS19MRU5HVEgrMHg0MDAuCisgKiAoTnVtYmVyIG9mIFVuaWNv
ZGUgY29kZSBwb2ludHMgKyBvbmUgYWxsLWluaXRpYWwtdmFsdWUgYmxvY2sgKworICogIHBvc3Np
YmxlIGR1cGxpY2F0ZSBlbnRyaWVzIGZvciAxMDI0IGxlYWQgc3Vycm9nYXRlcy4pCisgKiAoVVRS
SUVfREFUQV9CTE9DS19MRU5HVEg8PTB4MjAwIGluIGFsbCBjYXNlcy4pCisgKgorICogQHBhcmFt
IGZpbGxJbiBhIHBvaW50ZXIgdG8gYSBVTmV3VHJpZSBzdHJ1Y3R1cmUgdG8gYmUgaW5pdGlhbGl6
ZWQgKHdpbGwgbm90IGJlIHJlbGVhc2VkKSwgb3IKKyAqICAgICAgICAgICAgICAgTlVMTCBpZiBv
bmUgaXMgdG8gYmUgYWxsb2NhdGVkCisgKiBAcGFyYW0gYWxpYXNEYXRhIGEgcG9pbnRlciB0byBh
IGRhdGEgYXJyYXkgdG8gYmUgdXNlZCAod2lsbCBub3QgYmUgcmVsZWFzZWQpLCBvcgorICogICAg
ICAgICAgICAgICAgICBOVUxMIGlmIG9uZSBpcyB0byBiZSBhbGxvY2F0ZWQKKyAqIEBwYXJhbSBt
YXhEYXRhTGVuZ3RoIHRoZSBjYXBhY2l0eSBvZiBhbGlhc0RhdGEgKGlmIG5vdCBOVUxMKSBvcgor
ICogICAgICAgICAgICAgICAgICAgICAgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YSBhcnJheSB0byBi
ZSBhbGxvY2F0ZWQKKyAqIEBwYXJhbSBpbml0aWFsVmFsdWUgdGhlIGluaXRpYWwgdmFsdWUgdGhh
dCBpcyBzZXQgZm9yIGFsbCBjb2RlIHBvaW50cworICogQHBhcmFtIGxlYWRVbml0VmFsdWUgdGhl
IHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gdGhhdCBkbyBub3QKKyAqICAg
ICAgICAgICAgICAgICAgICAgIGhhdmUgYXNzb2NpYXRlZCBzdXBwbGVtZW50YXJ5IGRhdGEKKyAq
IEBwYXJhbSBsYXRpbjFMaW5lYXIgYSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgTGF0aW4t
MSByYW5nZSBpcyB0byBiZSBhbGxvY2F0ZWQgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgIGtl
cHQgaW4gYSBsaW5lYXIsIGNvbnRpZ3VvdXMgcGFydCBvZiB0aGUgZGF0YSBhcnJheQorICogQHJl
dHVybiBhIHBvaW50ZXIgdG8gdGhlIGluaXRpYWxpemVkIGZpbGxJbiBvciB0aGUgYWxsb2NhdGVk
IGFuZCBpbml0aWFsaXplZCBuZXcgVU5ld1RyaWUKKyAqLworVV9DQVBJIFVOZXdUcmllICogVV9F
WFBPUlQyCit1dHJpZV9vcGVuKFVOZXdUcmllICpmaWxsSW4sCisgICAgICAgICAgIHVpbnQzMl90
ICphbGlhc0RhdGEsIGludDMyX3QgbWF4RGF0YUxlbmd0aCwKKyAgICAgICAgICAgdWludDMyX3Qg
aW5pdGlhbFZhbHVlLCB1aW50MzJfdCBsZWFkVW5pdFZhbHVlLAorICAgICAgICAgICBVQm9vbCBs
YXRpbjFMaW5lYXIpOworCisvKioKKyAqIENsb25lIGEgYnVpbGQtdGltZSB0cmllIHN0cnVjdHVy
ZSB3aXRoIGFsbCBlbnRyaWVzLgorICoKKyAqIEBwYXJhbSBmaWxsSW4gbGlrZSBpbiB1dHJpZV9v
cGVuKCkKKyAqIEBwYXJhbSBvdGhlciB0aGUgYnVpbGQtdGltZSB0cmllIHN0cnVjdHVyZSB0byBj
bG9uZQorICogQHBhcmFtIGFsaWFzRGF0YSBsaWtlIGluIHV0cmllX29wZW4oKSwKKyAqICAgICAg
ICAgICAgICAgICAgdXNlZCBpZiBhbGlhc0RhdGFMZW5ndGg+PShjYXBhY2l0eSBvZiBvdGhlcidz
IGRhdGEgYXJyYXkpCisgKiBAcGFyYW0gYWxpYXNEYXRhTGVuZ3RoIHRoZSBsZW5ndGggb2YgYWxp
YXNEYXRhCisgKiBAcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgaW5pdGlhbGl6ZWQgZmlsbEluIG9y
IHRoZSBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkIG5ldyBVTmV3VHJpZQorICovCitVX0NBUEkg
VU5ld1RyaWUgKiBVX0VYUE9SVDIKK3V0cmllX2Nsb25lKFVOZXdUcmllICpmaWxsSW4sIGNvbnN0
IFVOZXdUcmllICpvdGhlciwgdWludDMyX3QgKmFsaWFzRGF0YSwgaW50MzJfdCBhbGlhc0RhdGFM
ZW5ndGgpOworCisvKioKKyAqIENsb3NlIGEgYnVpbGQtdGltZSB0cmllIHN0cnVjdHVyZSwgYW5k
IHJlbGVhc2UgbWVtb3J5CisgKiB0aGF0IHdhcyBhbGxvY2F0ZWQgYnkgdXRyaWVfb3BlbigpIG9y
IHV0cmllX2Nsb25lKCkuCisgKgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQor
ICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3V0cmllX2Nsb3NlKFVOZXdUcmllICp0cmllKTsK
KworLyoqCisgKiBHZXQgdGhlIGRhdGEgYXJyYXkgb2YgYSBidWlsZC10aW1lIHRyaWUuCisgKiBU
aGUgZGF0YSBtYXkgYmUgbW9kaWZpZWQsIGJ1dCBlbnRyaWVzIHRoYXQgYXJlIGVxdWFsIGJlZm9y
ZQorICogbXVzdCBzdGlsbCBiZSBlcXVhbCBhZnRlciBtb2RpZmljYXRpb24uCisgKgorICogQHBh
cmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQorICogQHBhcmFtIHBMZW5ndGggKG91dCkgYSBw
b2ludGVyIHRvIGEgdmFyaWFibGUgdGhhdCByZWNlaXZlcyB0aGUgbnVtYmVyCisgKiAgICAgICAg
ICAgICAgICBvZiBlbnRyaWVzIGluIHRoZSBkYXRhIGFycmF5CisgKiBAcmV0dXJuIHRoZSBkYXRh
IGFycmF5CisgKi8KK1VfQ0FQSSB1aW50MzJfdCAqIFVfRVhQT1JUMgordXRyaWVfZ2V0RGF0YShV
TmV3VHJpZSAqdHJpZSwgaW50MzJfdCAqcExlbmd0aCk7CisKKy8qKgorICogU2V0IGEgdmFsdWUg
Zm9yIGEgY29kZSBwb2ludC4KKyAqCisgKiBAcGFyYW0gdHJpZSB0aGUgYnVpbGQtdGltZSB0cmll
CisgKiBAcGFyYW0gYyB0aGUgY29kZSBwb2ludAorICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZQor
ICogQHJldHVybiBGQUxTRSBpZiBhIGZhaWx1cmUgb2NjdXJyZWQgKGlsbGVnYWwgYXJndW1lbnQg
b3IgZGF0YSBhcnJheSBvdmVycnVuKQorICovCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCit1dHJp
ZV9zZXQzMihVTmV3VHJpZSAqdHJpZSwgVUNoYXIzMiBjLCB1aW50MzJfdCB2YWx1ZSk7CisKKy8q
KgorICogR2V0IGEgdmFsdWUgZnJvbSBhIGNvZGUgcG9pbnQgYXMgc3RvcmVkIGluIHRoZSBidWls
ZC10aW1lIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQorICog
QHBhcmFtIGMgdGhlIGNvZGUgcG9pbnQKKyAqIEBwYXJhbSBwSW5CbG9ja1plcm8gaWYgbm90IE5V
TEwsIHRoZW4gKnBJbkJsb2NrWmVybyBpcyBzZXQgdG8gVFJVRQorICogICAgICAgICAgICAgICAg
ICAgICBpZmYgdGhlIHZhbHVlIGlzIHJldHJpZXZlZCBmcm9tIGJsb2NrIDA7CisgKiAgICAgICAg
ICAgICAgICAgICAgIGJsb2NrIDAgaXMgdGhlIGFsbC1pbml0aWFsLXZhbHVlIGluaXRpYWwgYmxv
Y2sKKyAqIEByZXR1cm4gdGhlIHZhbHVlCisgKi8KK1VfQ0FQSSB1aW50MzJfdCBVX0VYUE9SVDIK
K3V0cmllX2dldDMyKFVOZXdUcmllICp0cmllLCBVQ2hhcjMyIGMsIFVCb29sICpwSW5CbG9ja1pl
cm8pOworCisvKioKKyAqIFNldCBhIHZhbHVlIGluIGEgcmFuZ2Ugb2YgY29kZSBwb2ludHMgW3N0
YXJ0Li5saW1pdFsuCisgKiBBbGwgY29kZSBwb2ludHMgYyB3aXRoIHN0YXJ0PD1jPGxpbWl0IHdp
bGwgZ2V0IHRoZSB2YWx1ZSBpZgorICogb3ZlcndyaXRlIGlzIFRSVUUgb3IgaWYgdGhlIG9sZCB2
YWx1ZSBpcyAwLgorICoKKyAqIEBwYXJhbSB0cmllIHRoZSBidWlsZC10aW1lIHRyaWUKKyAqIEBw
YXJhbSBzdGFydCB0aGUgZmlyc3QgY29kZSBwb2ludCB0byBnZXQgdGhlIHZhbHVlCisgKiBAcGFy
YW0gbGltaXQgb25lIHBhc3QgdGhlIGxhc3QgY29kZSBwb2ludCB0byBnZXQgdGhlIHZhbHVlCisg
KiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlCisgKiBAcGFyYW0gb3ZlcndyaXRlIGZsYWcgZm9yIHdo
ZXRoZXIgb2xkIG5vbi1pbml0aWFsIHZhbHVlcyBhcmUgdG8gYmUgb3ZlcndyaXR0ZW4KKyAqIEBy
ZXR1cm4gRkFMU0UgaWYgYSBmYWlsdXJlIG9jY3VycmVkIChpbGxlZ2FsIGFyZ3VtZW50IG9yIGRh
dGEgYXJyYXkgb3ZlcnJ1bikKKyAqLworVV9DQVBJIFVCb29sIFVfRVhQT1JUMgordXRyaWVfc2V0
UmFuZ2UzMihVTmV3VHJpZSAqdHJpZSwgVUNoYXIzMiBzdGFydCwgVUNoYXIzMiBsaW1pdCwgdWlu
dDMyX3QgdmFsdWUsIFVCb29sIG92ZXJ3cml0ZSk7CisKKy8qKgorICogQ29tcGFjdCB0aGUgYnVp
bGQtdGltZSB0cmllIGFmdGVyIGFsbCB2YWx1ZXMgYXJlIHNldCwgYW5kIHRoZW4KKyAqIHNlcmlh
bGl6ZSBpdCBpbnRvIDMyLWJpdCBhbGlnbmVkIG1lbW9yeS4KKyAqCisgKiBBZnRlciB0aGlzLCB0
aGUgdHJpZSBjYW4gb25seSBiZSBzZXJpemFsaXplZCBhZ2FpbiBhbmQvb3IgY2xvc2VkOworICog
bm8gZnVydGhlciB2YWx1ZXMgY2FuIGJlIGFkZGVkLgorICoKKyAqIEBzZWUgdXRyaWVfdW5zZXJp
YWxpemUoKQorICoKKyAqIEBwYXJhbSB0cmllIHRoZSBidWlsZC10aW1lIHRyaWUKKyAqIEBwYXJh
bSBkYXRhIGEgcG9pbnRlciB0byAzMi1iaXQtYWxpZ25lZCBtZW1vcnkgZm9yIHRoZSB0cmllIGRh
dGEKKyAqIEBwYXJhbSBjYXBhY2l0eSB0aGUgbnVtYmVyIG9mIGJ5dGVzIGF2YWlsYWJsZSBhdCBk
YXRhCisgKiBAcGFyYW0gZ2V0Rm9sZGVkVmFsdWUgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGNh
bGN1bGF0ZXMgdGhlIHZhbHVlIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgIGEgbGVhZCBz
dXJyb2dhdGUgZnJvbSBhbGwgb2YgaXRzIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMKKyAqICAg
ICAgICAgICAgICAgICAgICAgICBhbmQgdGhlIGZvbGRpbmcgb2Zmc2V0OworICogICAgICAgICAg
ICAgICAgICAgICAgIGlmIE5VTEwsIHRoZW4gYSBkZWZhdWx0IGZ1bmN0aW9uIGlzIHVzZWQgd2hp
Y2ggcmV0dXJucyBqdXN0CisgKiAgICAgICAgICAgICAgICAgICAgICAgdGhlIGlucHV0IG9mZnNl
dCB3aGVuIHRoZXJlIGFyZSBhbnkgbm9uLWluaXRpYWwtdmFsdWUgZW50cmllcworICogQHBhcmFt
IHJlZHVjZVRvMTZCaXRzIGZsYWcgZm9yIHdoZXRoZXIgdGhlIHZhbHVlcyBhcmUgdG8gYmUgcmVk
dWNlZCB0byBhCisgKiAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggb2YgMTYgYml0cyBmb3Ig
c2VyaWFsaXphdGlvbiBhbmQgcnVudGltZQorICogQHBhcmFtIHBFcnJvckNvZGUgYSBVRXJyb3JD
b2RlIGFyZ3VtZW50OyBhbW9uZyBvdGhlciBwb3NzaWJsZSBlcnJvciBjb2RlczoKKyAqIC0gVV9C
VUZGRVJfT1ZFUkZMT1dfRVJST1IgaWYgdGhlIGRhdGEgc3RvcmFnZSBibG9jayBpcyB0b28gc21h
bGwgZm9yIHNlcmlhbGl6YXRpb24KKyAqIC0gVV9NRU1PUllfQUxMT0NBVElPTl9FUlJPUiBpZiB0
aGUgdHJpZSBkYXRhIGFycmF5IGlzIHRvbyBzbWFsbAorICogLSBVX0lOREVYX09VVE9GQk9VTkRT
X0VSUk9SIGlmIHRoZSBpbmRleCBvciBkYXRhIGFycmF5cyBhcmUgdG9vIGxvbmcgYWZ0ZXIgY29t
cGFjdGlvbiBmb3Igc2VyaWFsaXphdGlvbgorICoKKyAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBi
eXRlcyB3cml0dGVuIGZvciB0aGUgdHJpZQorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIK
K3V0cmllX3NlcmlhbGl6ZShVTmV3VHJpZSAqdHJpZSwgdm9pZCAqZGF0YSwgaW50MzJfdCBjYXBh
Y2l0eSwKKyAgICAgICAgICAgICAgICBVTmV3VHJpZUdldEZvbGRlZFZhbHVlICpnZXRGb2xkZWRW
YWx1ZSwKKyAgICAgICAgICAgICAgICBVQm9vbCByZWR1Y2VUbzE2Qml0cywKKyAgICAgICAgICAg
ICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBTd2FwIGEgc2VyaWFsaXpl
ZCBVVHJpZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0
cmllX3N3YXAoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgY29uc3Qgdm9pZCAq
aW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAgICAgVUVycm9y
Q29kZSAqcEVycm9yQ29kZSk7CisKKy8qIHNlcmlhbGl6YXRpb24gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKgorICog
VHJpZSBkYXRhIHN0cnVjdHVyZSBpbiBzZXJpYWxpemVkIGZvcm06CisgKgorICogVVRyaWVIZWFk
ZXIgaGVhZGVyOworICogdWludDE2X3QgaW5kZXhbaGVhZGVyLmluZGV4TGVuZ3RoXTsKKyAqIHVp
bnQxNl90IGRhdGFbaGVhZGVyLmRhdGFMZW5ndGhdOworICogQGludGVybmFsCisgKi8KK3R5cGVk
ZWYgc3RydWN0IFVUcmllSGVhZGVyIHsKKyAgICAvKiogIlRyaWUiIGluIGJpZy1lbmRpYW4gVVMt
QVNDSUkgKDB4NTQ3MjY5NjUpICovCisgICAgdWludDMyX3Qgc2lnbmF0dXJlOworCisgICAgLyoq
CisgICAgICogb3B0aW9ucyBiaXQgZmllbGQ6CisgICAgICogICAgIDkgICAgMT1MYXRpbi0xIGRh
dGEgaXMgc3RvcmVkIGxpbmVhcmx5IGF0IGRhdGErVVRSSUVfREFUQV9CTE9DS19MRU5HVEgKKyAg
ICAgKiAgICAgOCAgICAwPTE2LWJpdCBkYXRhLCAxPTMyLWJpdCBkYXRhCisgICAgICogIDcuLjQg
ICAgVVRSSUVfSU5ERVhfU0hJRlQgICAvLyAwLi5VVFJJRV9TSElGVAorICAgICAqICAzLi4wICAg
IFVUUklFX1NISUZUICAgICAgICAgLy8gMS4uOQorICAgICAqLworICAgIHVpbnQzMl90IG9wdGlv
bnM7CisKKyAgICAvKiogaW5kZXhMZW5ndGggaXMgYSBtdWx0aXBsZSBvZiBVVFJJRV9TVVJST0dB
VEVfQkxPQ0tfQ09VTlQgKi8KKyAgICBpbnQzMl90IGluZGV4TGVuZ3RoOworCisgICAgLyoqIGRh
dGFMZW5ndGg+PVVUUklFX0RBVEFfQkxPQ0tfTEVOR1RIICovCisgICAgaW50MzJfdCBkYXRhTGVu
Z3RoOworfSBVVHJpZUhlYWRlcjsKKworLyoqCisgKiBDb25zdGFudHMgZm9yIHVzZSB3aXRoIFVU
cmllSGVhZGVyLm9wdGlvbnMuCisgKiBAaW50ZXJuYWwKKyAqLworZW51bSB7CisgICAgLyoqIE1h
c2sgdG8gZ2V0IHRoZSBVVFJJRV9TSElGVCB2YWx1ZSBmcm9tIG9wdGlvbnMuICovCisgICAgVVRS
SUVfT1BUSU9OU19TSElGVF9NQVNLPTB4ZiwKKworICAgIC8qKiBTaGlmdCBvcHRpb25zIHJpZ2h0
IHRoaXMgbXVjaCB0byBnZXQgdGhlIFVUUklFX0lOREVYX1NISUZUIHZhbHVlLiAqLworICAgIFVU
UklFX09QVElPTlNfSU5ERVhfU0hJRlQ9NCwKKworICAgIC8qKiBJZiBzZXQsIHRoZW4gdGhlIGRh
dGEgKHN0YWdlIDIpIGFycmF5IGlzIDMyIGJpdHMgd2lkZS4gKi8KKyAgICBVVFJJRV9PUFRJT05T
X0RBVEFfSVNfMzJfQklUPTB4MTAwLAorCisgICAgLyoqCisgICAgICogSWYgc2V0LCB0aGVuIExh
dGluLTEgZGF0YSAoZm9yIFUrMDAwMC4uVSswMGZmKSBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgKHN0
YWdlIDIpIGFycmF5CisgICAgICogYXMgYSBzaW1wbGUsIGxpbmVhciBhcnJheSBhdCBkYXRhK1VU
UklFX0RBVEFfQkxPQ0tfTEVOR1RILgorICAgICAqLworICAgIFVUUklFX09QVElPTlNfTEFUSU4x
X0lTX0xJTkVBUj0weDIwMAorfTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IDMxYTNmMDJiM2VjYThlMDUzZGQ1
MjUyNTA1MTI1MzVmZTEwYmJiM2IuLmY0ODU0M2ZlODYxYzE3NmM1NGJkMmM2ZDIzYWI4Mzk0ODA4
ZDBkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCkBAIC0y
OSw5ICsyOSw2IEBACiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdWaWV3Lmg+CiAKLS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0dGVyIG5hbWUKLSNk
ZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkKLQog
bmFtZXNwYWNlIFdURiB7CiAKIC8vIEl0ZXJhdG9yIGluaXRpYWxpemF0aW9uCkBAIC01OSw2ICs1
NiwxMiBAQCBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIGluaXRpYWxpemVJdGVyYXRvcldpdGhS
dWxlcyhjb25zdCBjaGFyKiBicmVha1J1bGVzKQogCiAjZW5kaWYKIAorI2lmICFQTEFURk9STShN
QUMpICYmICFQTEFURk9STShJT1MpCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JG
b3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCBydWxlU2V0KQoreworICAgIHJldHVybiBudWxscHRy
OworfQorI2VuZGlmCiAKIC8vIEl0ZXJhdG9yIHRleHQgc2V0dGluZwogCkBAIC0xNjIsMTM1ICsx
NjUsMjAgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihTdHJpbmdW
aWV3IHN0cmluZykKICAgICByZXR1cm4gc2V0VGV4dEZvckl0ZXJhdG9yKCpzdGF0aWNTZW50ZW5j
ZUJyZWFrSXRlcmF0b3IsIHN0cmluZyk7CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9TKQorc3RhdGlj
IFRleHRCcmVha0l0ZXJhdG9yKiBjcmVhdGVDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxi
YWNrKCkKK3sKKyAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBjcmVhdGVJdGVyYXRvckZvclJ1bGVT
ZXQoQnJlYWtpbmdSdWxlU2V0OjpDdXJzb3JNb3ZlbWVudCkpCisgICAgICAgIHJldHVybiBpdGVy
YXRvcjsKKyAgICByZXR1cm4gaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGN1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcyk7Cit9CisjZW5kaWYKKwogVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNv
ck1vdmVtZW50SXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiB7CiAjaWYgIVBMQVRGT1JNKElP
UykKLSAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVy
YXRvciBydWxlcyBvZiBJQ1UgNTcKLSAgICAvLyA8aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5v
cmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4K
LSAgICAvLyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUg
bGlzdGVkIGJlbG93OgotICAgIC8vICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5n
IE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7Ci0gICAgLy8gKiBSZW1v
dmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5k
IGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZl
bnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1
YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKLSAgICAvLyAqIEFkZGVkIHJ1bGVz
IHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13
aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0gICAgLy8gKiBBZGRlZCBydWxlcyBmb3IgcmVn
aW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCi0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGtSdWxlcyA9
Ci0gICAgICAgICIkQ1IgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07
IgotICAgICAgICAiJExGICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1d
OyIKLSAgICAgICAgIiRDb250cm9sID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29u
dHJvbH1dOyIKLSAgICAgICAgIiRWb2ljZU1hcmtzID0gW1xcdUZGOUVcXHVGRjlGXTsiIC8vIEph
cGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCi0gICAgICAgICIkRXh0ZW5k
ICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBb
XFx1MEUzMCBcXHUwRTMyIFxcdTBFNDUgXFx1MEVCMCBcXHUwRUIyXV07IgotICAgICAgICAiJFNw
YWNpbmdNYXJrID0gW1tcXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31dIC0gJEV4
dGVuZF07IgotICAgICAgICAiJEwgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBMfV07IgotICAgICAgICAiJFYgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBWfV07IgotICAgICAgICAiJFQgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBUfV07IgotICAgICAgICAiJExWICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBMVn1dOyIKLSAgICAgICAgIiRMVlQgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gTFZUfV07IgotICAgICAgICAiJEhpbjAgICAgPSBbXFx1MDkwNS1cXHUwOTM5XTsiIC8vIERl
dmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkSGluViAgICA9IFxcdTA5NEQ7IiAv
LyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkSGluMSAgICA9IFtcXHUwOTE1LVxc
dTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkQmVuMCAg
ICA9IFtcXHUwOTg1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAg
ICAgIiRCZW5WICAgID0gXFx1MDlDRDsiIC8vIEJlbmdhbGkgU2lnbiBWaXJhbWEKLSAgICAgICAg
IiRCZW4xICAgID0gW1xcdTA5OTUtXFx1MDlCOV07IiAvLyBCZW5nYWxpIExldHRlciBLYSwuLi4s
SGEKLSAgICAgICAgIiRQYW4wICAgID0gW1xcdTBBMDUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBM
ZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRQYW5WICAgID0gXFx1MEE0RDsiIC8vIEd1cm11a2hp
IFNpZ24gVmlyYW1hCi0gICAgICAgICIkUGFuMSAgICA9IFtcXHUwQTE1LVxcdTBBMzldOyIgLy8g
R3VybXVraGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEd1ajAgICAgPSBbXFx1MEE4NS1c
XHUwQUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEd1alYgICAg
PSBcXHUwQUNEOyIgLy8gR3VqYXJhdGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRHdWoxICAgID0g
W1xcdTBBOTUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAg
ICIkT3JpMCAgICA9IFtcXHUwQjA1LVxcdTBCMzldOyIgLy8gT3JpeWEgTGV0dGVyIEEsLi4uLEhh
Ci0gICAgICAgICIkT3JpViAgICA9IFxcdTBCNEQ7IiAvLyBPcml5YSBTaWduIFZpcmFtYQotICAg
ICAgICAiJE9yaTEgICAgPSBbXFx1MEIxNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBLYSwu
Li4sSGEKLSAgICAgICAgIiRUZWwwICAgID0gW1xcdTBDMDUtXFx1MEMzOV07IiAvLyBUZWx1Z3Ug
TGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkVGVsViAgICA9IFxcdTBDNEQ7IiAvLyBUZWx1Z3Ug
U2lnbiBWaXJhbWEKLSAgICAgICAgIiRUZWwxICAgID0gW1xcdTBDMTQtXFx1MEMzOV07IiAvLyBU
ZWx1Z3UgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEthbjAgICAgPSBbXFx1MEM4NS1cXHUw
Q0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkS2FuViAgICA9IFxc
dTBDQ0Q7IiAvLyBLYW5uYWRhIFNpZ24gVmlyYW1hCi0gICAgICAgICIkS2FuMSAgICA9IFtcXHUw
Qzk1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWww
ICAgID0gW1xcdTBEMDUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0g
ICAgICAgICIkTWFsViAgICA9IFxcdTBENEQ7IiAvLyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKLSAg
ICAgICAgIiRNYWwxICAgID0gW1xcdTBEMTUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVy
IEEsLi4uLEhhCi0gICAgICAgICIkUkkgICAgICA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07
IiAvLyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCi0gICAgICAgICIkWldKICAgICA9IFxcdTIw
MEQ7IiAvLyBaZXJvIHdpZHRoIGpvaW5lcgotICAgICAgICAiJEVtb2ppVmFyID0gW1xcdUZFMEZd
OyIgLy8gRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCi0jaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUy
NkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYz
Q0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAw
MUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxV
MDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcg
XFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2
NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAw
MUY2QjQtXFxVMDAwMUY2QjZdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2Vx
dWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBB
LVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0Eg
XFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0
NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAw
MUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxV
MDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYg
XFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2
QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MThdIDsiIC8v
IEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNlCi0gICAgICAgICIk
RW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0
OEJdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAg
ICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxc
VTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQy
LVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFG
NDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAw
MDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxc
VTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEz
IFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRh
a2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAgICAgICAgIiRFbW9qaU1vZHMgPSBb
XFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIgLy8gRml0enBhdHJpY2sgbW9kaWZpZXJzCi0gICAg
ICAgICIhIWNoYWluOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEh
UklOb0NoYWluOyIKLSNlbmRpZgotICAgICAgICAiISFmb3J3YXJkOyIKLSAgICAgICAgIiRDUiAk
TEY7IgotICAgICAgICAiJEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsiCi0gICAgICAgICIoJExW
IHwgJFYpICgkViB8ICRUKTsiCi0gICAgICAgICIoJExWVCB8ICRUKSAkVDsiCi0jaWYgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqIC8gJFJJOyIKLSAg
ICAgICAgIiRSSSAkUkkgJEV4dGVuZCo7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAk
RXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSNl
bHNlCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14k
Q29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotICAgICAgICAiJFJJICRSSSAvICRSSTsi
Ci0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAiJEhpbjAgJEhpblYgJEhpbjE7
IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRCZW4wICRCZW5WICRC
ZW4xOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkUGFuMCAkUGFuViAk
UGFuMTsiIC8vIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRHdWowICRHdWpW
ICRHdWoxOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE9yaTAgJE9y
aVYgJE9yaTE7IiAvLyBPcml5YSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkVGVsMCAkVGVs
ViAkVGVsMTsiIC8vIFRlbHVndSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkS2FuMCAkS2Fu
ViAkS2FuMTsiIC8vIEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE1hbDAgJE1h
bFYgJE1hbDE7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFpXSiAk
RW1vamlGb3JTZXFzOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwotICAg
ICAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IiAvLyBEb24ndCBicmVh
ayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3Rv
cikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0gICAgICAgICIhIXJldmVyc2U7IgotICAgICAg
ICAiJExGICRDUjsiCi0gICAgICAgICIoJEwgfCAkViB8ICRMViB8ICRMVlQpICRMOyIKLSAgICAg
ICAgIigkViB8ICRUKSAoJExWIHwgJFYpOyIKLSAgICAgICAgIiRUICgkTFZUIHwgJFQpOyIKLSNp
ZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkkgLyAk
RXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAi
JEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJr
IFteJENvbnRyb2wgJENSICRMRl07IgotI2Vsc2UKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRD
b250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAk
TEZdOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkkgJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7Igot
I2VuZGlmCi0gICAgICAgICIkSGluMSAkSGluViAkSGluMDsiIC8vIERldmFuYWdhcmkgVmlyYW1h
IChiYWNrd2FyZCkKLSAgICAgICAgIiRCZW4xICRCZW5WICRCZW4wOyIgLy8gQmVuZ2FsaSBWaXJh
bWEgKGJhY2t3YXJkKQotICAgICAgICAiJFBhbjEgJFBhblYgJFBhbjA7IiAvLyBHdXJtdWtoaSBW
aXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEd1ajEgJEd1alYgJEd1ajA7IiAvLyBHdWphcmF0
aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE9yaTEgJE9yaVYgJE9yaTA7IiAvLyBHdWph
cmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFRlbDEgJFRlbFYgJFRlbDA7IiAvLyBU
ZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRLYW4xICRLYW5WICRLYW4wOyIgLy8g
S2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE1hbDEgJE1hbFYgJE1hbDA7IiAv
LyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgJFpX
SjsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9q
aU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2VlbiBy
ZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6
cGF0cmljayBtb2RpZmllcgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAi
ISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiWyRFbW9qaVZh
ciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsi
Ci0gICAgICAgICIkUkkgJFJJKzsiCi0gICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlWYXIg
JEVtb2ppTW9kc10rOyI7CisgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yID0gY3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxs
YmFjaygpOwogI2Vsc2UKLSAgICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZv
ck1vZHM7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsi
Ci0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsiOwot
I2VuZGlmCi0gICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGtSdWxlcyk7Ci0jZWxzZSAv
LyBQTEFURk9STShJT1MpCiAgICAgLy8gVXNlIHRoZSBzcGVjaWFsIFRoYWkgY2hhcmFjdGVyIGJy
ZWFrIGl0ZXJhdG9yIGZvciBhbGwgbG9jYWxlcwogICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRv
ciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcihVQlJL
X0NIQVJBQ1RFUiwgInRoIik7CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKQEAgLTMxNyw0NDIg
KzIwNSwyMCBAQCB2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRv
ciogaXRlcmF0b3IpCiAgICAgTGluZUJyZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQb29sKCkucHV0
KGl0ZXJhdG9yKTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UHJvbG9ndWUgPQotICAg
ICIhIWNoYWluOyIKLSAgICAiISFMQkNNTm9DaGFpbjsiCi0gICAgIiEhbG9va0FoZWFkSGFyZEJy
ZWFrOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQmVmb3JlID0KLSAg
ICAvLyBleHBsaWNpdGx5IGVudW1lcmF0ZSAkQ0ogc2luY2UgSUNVIHZlcnNpb25zIHByaW9yIHRv
IDQ5IGRvbid0IHN1cHBvcnQgOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVy
OgotICAgICIkQ0ogPSBbIgotI2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAo
VV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAgICAiOkxpbmVCcmVhaz1Db25kaXRpb25h
bF9KYXBhbmVzZV9TdGFydGVyOiIKLSNlbHNlCi0gICAgIlxcdTMwNDFcXHUzMDQzXFx1MzA0NVxc
dTMwNDdcXHUzMDQ5XFx1MzA2M1xcdTMwODNcXHUzMDg1XFx1MzA4N1xcdTMwOEVcXHUzMDk1XFx1
MzA5NlxcdTMwQTFcXHUzMEEzXFx1MzBBNVxcdTMwQTciCi0gICAgIlxcdTMwQTlcXHUzMEMzXFx1
MzBFM1xcdTMwRTVcXHUzMEU3XFx1MzBFRVxcdTMwRjVcXHUzMEY2XFx1MzBGQyIKLSAgICAiXFx1
MzFGMFxcdTMxRjFcXHUzMUYyXFx1MzFGM1xcdTMxRjRcXHUzMUY1XFx1MzFGNlxcdTMxRjdcXHUz
MUY4XFx1MzFGOVxcdTMxRkFcXHUzMUZCXFx1MzFGQ1xcdTMxRkRcXHUzMUZFXFx1MzFGRiIKLSAg
ICAiXFx1RkY2N1xcdUZGNjhcXHVGRjY5XFx1RkY2QVxcdUZGNkJcXHVGRjZDXFx1RkY2RFxcdUZG
NkVcXHVGRjZGXFx1RkY3MCIKLSNlbmRpZgotICAgICJdOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFy
KiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIw
MTBcXHUyMDEzXTsiCi0gICAgIiRFWF9TVUIgPSBbXFx1MDAyMVxcdTAwM0ZcXHVGRjAxXFx1RkYx
Rl07IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2
XTsiCi0gICAgIiRJU19TVUIgPSBbXFx1MDAzQVxcdTAwM0JdOyIKLSAgICAiJE5TX1NVQiA9IFtc
XHUyMDNDXFx1MjA0N1xcdTIwNDhcXHUyMDQ5XFx1MzAwNVxcdTMwMUNcXHUzMDNCXFx1MzA5RFxc
dTMwOUVcXHUzMEEwXFx1MzBGQlxcdTMwRkRcXHUzMEZFXFx1RkYxQVxcdUZGMUJcXHVGRjY1XTsi
Ci0gICAgIiRQT19TVUIgPSBbXFx1MDAyNVxcdTAwQTJcXHUwMEIwXFx1MjAzMFxcdTIwMzJcXHUy
MDMzXFx1MjEwM1xcdUZGMDVcXHVGRkUwXTsiCi0gICAgIiRQUl9TVUIgPSBbXFx1MDAyNFxcdTAw
QTNcXHUwMEE1XFx1MjBBQ1xcdTIxMTZcXHVGRjA0XFx1RkZFMVxcdUZGRTVdOyIKLSAgICAiJElE
X0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19T
VUIgJFBSX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIq
IHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZU5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsi
Ci0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIg
PSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9
IFtcXHUzMDA1XFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBGRFxcdTMwRkVdOyIKLSAgICAiJFBP
X1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJElO
X1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hh
ciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA9Ci0gICAgIiRCQV9TVUIgPSBbXFx1
MjAxMFxcdTIwMTNdOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIK
LSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9
IFtcXHUzMDFDXFx1MzBBMF07IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0g
Jyc7IgotICAgICIkSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOyIKLSAgICAiJE5TX0FE
RCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9y
bWFsTm9uQ0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAg
ICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcn
OyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NV
QiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0pdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0K
LXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLID0KLSAg
ICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcn
OyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NV
QiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAi
JElEX0FERCA9ICcnOyIKLSAgICAiJE5TX0FERCA9IFskQ0pdOyI7Ci0KLSNkZWZpbmUgdWF4MTRB
c3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21T
dHJpY3RDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHRDSksgICAgICAg
IHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50
c0N1c3RvbURlZmF1bHROb25DSksgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25D
SksKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNBZnRlciA9Ci0gICAgIiRB
SSA9IFs6TGluZUJyZWFrID0gQW1iaWd1b3VzOl07IgotICAgICIkQUwgPSBbOkxpbmVCcmVhayA9
IEFscGhhYmV0aWM6XTsiCi0gICAgIiRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0FmdGVyOl0g
LSAkQkFfU1VCXTsiCi0gICAgIiRCQiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07Igot
ICAgICIkQksgPSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOyIKLSAgICAiJEIyID0g
WzpMaW5lQnJlYWsgPSBCcmVha19Cb3RoOl07IgotICAgICIkQ0IgPSBbOkxpbmVCcmVhayA9IENv
bnRpbmdlbnRfQnJlYWs6XTsiCi0gICAgIiRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVuY3R1
YXRpb246XTsiCi0gICAgIiRDTSA9IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsiCi0g
ICAgIiRDUCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsiCi0gICAgIiRDUiA9
IFs6TGluZUJyZWFrID0gQ2FycmlhZ2VfUmV0dXJuOl07IgotICAgICIkRVggPSBbWzpMaW5lQnJl
YWsgPSBFeGNsYW1hdGlvbjpdIC0gJEVYX1NVQl07IgotICAgICIkR0wgPSBbOkxpbmVCcmVhayA9
IEdsdWU6XTsiCi0jaWYgKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9W
RVJTSU9OX01JTk9SX05VTSA+PSA5KQotICAgICIkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19M
ZXR0ZXI6XTsiCi0jZWxzZQotICAgICIkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1dOyIK
LSNlbmRpZgotICAgICIkSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOyIKLSAgICAiJEgyID0g
WzpMaW5lQnJlYWsgPSBIMjpdOyIKLSAgICAiJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOyIKLSAg
ICAiJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAt
ICRJRF9TVUJdOyIKLSAgICAiJElOID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJ
Tl9TVUJdOyIKLSAgICAiJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElT
X1NVQl07IgotICAgICIkSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07IgotICAgICIkSlYgPSBbOkxp
bmVCcmVhayA9IEpWOl07IgotICAgICIkSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07IgotICAgICIk
TEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOyIKLSAgICAiJE5MID0gWzpMaW5lQnJlYWsg
PSBOZXh0X0xpbmU6XTsiCi0gICAgIiROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpd
IC0gJENKXSAkTlNfQUREXSAtICROU19TVUJdOyIKLSAgICAiJE5VID0gWzpMaW5lQnJlYWsgPSBO
dW1lcmljOl07IgotICAgICIkT1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsi
Ci0gICAgIiRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07
IgotICAgICIkUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07
IgotICAgICIkUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOyIKLSAgICAiJFJJID0gW1xc
VTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsiCi0gICAgIiRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxl
eF9Db250ZXh0Ol07IgotICAgICIkU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOyIKLSAg
ICAiJFNQID0gWzpMaW5lQnJlYWsgPSBTcGFjZTpdOyIKLSAgICAiJFNZID0gWzpMaW5lQnJlYWsg
PSBCcmVha19TeW1ib2xzOl07IgotICAgICIkV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9pbmVy
Ol07IgotICAgICIkWFggPSBbOkxpbmVCcmVhayA9IFVua25vd246XTsiCi0gICAgIiRaVyA9IFs6
TGluZUJyZWFrID0gWldTcGFjZTpdOyIKLSAgICAiJFpXSiA9IFxcdTIwMEQ7IgotICAgICIkRW1v
amlWYXIgPSBcXHVGRTBGOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJEVt
b2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4
IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFG
M0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAw
MDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxc
VTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1
IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFG
NjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2XTsiIC8v
IEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICIkRW1vamlGb3JN
b2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAw
MUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxV
MDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0Njkg
XFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0
ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAw
MUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxV
MDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYg
XFxVMDAwMUY2QzAgXFxVMDAwMUY5MThdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmlj
ayBtb2RpZmllcnMKLSNlbHNlCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUwMDAx
RjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IgotICAgICIkRW1vamlGb3JNb2RzID0gW1xc
dTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0
IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFG
NDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAw
MDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxc
VTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3
IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFG
NkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZp
ZXJzCi0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07
IgotICAgICIkZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07Igot
ICAgICIkQUxQbHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOyIKLSAgICAiJEFMY20gPSAkQUxQ
bHVzICRDTSo7IgotICAgICIkQkFjbSA9ICRCQSAkQ00qOyIKLSAgICAiJEJCY20gPSAkQkIgJENN
KjsiCi0gICAgIiRCMmNtID0gJEIyICRDTSo7IgotICAgICIkQ0xjbSA9ICRDTCAkQ00qOyIKLSAg
ICAiJENQY20gPSAkQ1AgJENNKjsiCi0gICAgIiRFWGNtID0gJEVYICRDTSo7IgotICAgICIkR0xj
bSA9ICRHTCAkQ00qOyIKLSAgICAiJEhMY20gPSAkSEwgJENNKjsiCi0gICAgIiRIWWNtID0gJEhZ
ICRDTSo7IgotICAgICIkSDJjbSA9ICRIMiAkQ00qOyIKLSAgICAiJEgzY20gPSAkSDMgJENNKjsi
Ci0gICAgIiRJRGNtID0gJElEICRDTSo7IgotICAgICIkSU5jbSA9ICRJTiAkQ00qOyIKLSAgICAi
JElTY20gPSAkSVMgJENNKjsiCi0gICAgIiRKTGNtID0gJEpMICRDTSo7IgotICAgICIkSlZjbSA9
ICRKViAkQ00qOyIKLSAgICAiJEpUY20gPSAkSlQgJENNKjsiCi0gICAgIiROU2NtID0gJE5TICRD
TSo7IgotICAgICIkTlVjbSA9ICROVSAkQ00qOyIKLSAgICAiJE9QY20gPSAkT1AgJENNKjsiCi0g
ICAgIiRQT2NtID0gJFBPICRDTSo7IgotICAgICIkUFJjbSA9ICRQUiAkQ00qOyIKLSAgICAiJFFV
Y20gPSAkUVUgJENNKjsiCi0gICAgIiRSSWNtID0gJFJJICRDTSo7IgotICAgICIkU1ljbSA9ICRT
WSAkQ00qOyIKLSAgICAiJFdKY20gPSAkV0ogJENNKjsiOwotCi1zdGF0aWMgY29uc3QgY2hhciog
dWF4MTRGb3J3YXJkID0KLSAgICAiISFmb3J3YXJkOyIKLSAgICAiJENBTl9DTSA9IFteJFNQICRC
SyAkQ1IgJExGICROTCAkWlcgJENNXTsiCi0gICAgIiRDQU5UX0NNID0gWyRTUCAkQksgJENSICRM
RiAkTkwgJFpXICRDTV07IgotICAgICIkQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYgJE5M
ICRaVyAkU1BdOyIKLSAgICAiJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRT
WSAkV0ogJEdMICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsiCi0gICAgIiRB
TF9GT0xMT1cgPSBbJEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOyIKLSAgICAiJExCNEJy
ZWFrcyA9IFskQksgJENSICRMRiAkTkxdOyIKLSAgICAiJExCNE5vbkJyZWFrcyA9IFteJEJLICRD
UiAkTEYgJE5MXTsiCi0gICAgIiRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOyIKLSAgICAi
JExCOE5vbkJyZWFrcyA9IFtbJExCNE5vbkJyZWFrc10gLSBbJFpXXV07IgotICAgICIkTEIxOE5v
bkJyZWFrcyA9IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOyIKLSAgICAiJExCMThCcmVha3MgPSBb
JExCOEJyZWFrcyAkU1BdOyIKLSAgICAiJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVha3Mg
LSAkQ0JdOyIKLSAgICAiJEFMUGx1cyAkQ00rOyIKLSAgICAiJEJBICRDTSs7IgotICAgICIkQkIg
JENNKzsiCi0gICAgIiRCMiAkQ00rOyIKLSAgICAiJENMICRDTSs7IgotICAgICIkQ1AgJENNKzsi
Ci0gICAgIiRFWCAkQ00rOyIKLSAgICAiJEdMICRDTSs7IgotICAgICIkSEwgJENNKzsiCi0gICAg
IiRIWSAkQ00rOyIKLSAgICAiJEgyICRDTSs7IgotICAgICIkSDMgJENNKzsiCi0gICAgIiRJRCAk
Q00rOyIKLSAgICAiJElOICRDTSs7IgotICAgICIkSVMgJENNKzsiCi0gICAgIiRKTCAkQ00rOyIK
LSAgICAiJEpWICRDTSs7IgotICAgICIkSlQgJENNKzsiCi0gICAgIiROUyAkQ00rOyIKLSAgICAi
JE5VICRDTSs7IgotICAgICIkT1AgJENNKzsiCi0gICAgIiRQTyAkQ00rOyIKLSAgICAiJFBSICRD
TSs7IgotICAgICIkUVUgJENNKzsiCi0gICAgIiRSSSAkQ00rOyIKLSAgICAiJFNZICRDTSs7Igot
ICAgICIkV0ogJENNKzsiCi0gICAgIiRDUiAkTEYgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtz
PyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEwMH07
IgotICAgICIkQ00rICRMQjRCcmVha3MgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzIFskU1Ag
JFpXXTsiCi0gICAgIiRDQU5fQ00gJENNKiBbJFNQICRaV107IgotICAgICIkQ00rIFskU1AgJFpX
XTsiCi0gICAgIiRFbW9qaUZvclNlcXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRFbW9q
aUZvclNlcXM7IgotICAgICIkQ0FOX0NNICRDTSs7IgotICAgICIkQ00rOyIKLSAgICAiJENBTl9D
TSAkQ00qICRXSmNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkV0pjbTsiCi0gICAgIiRDTSsgJFdK
Y207IgotICAgICIkV0pjbSAkQ0FOVF9DTTsiCi0gICAgIiRXSmNtICRDQU5fQ00gJENNKjsiCi0g
ICAgIiRHTGNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5UX0NNOyIKLSAgICAiW1sk
TEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSogJEdMY207IgotICAgICIkQ00rIEdM
Y207IgotICAgICIkTEI4Tm9uQnJlYWtzICRDTDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ0w7Igot
ICAgICIkQ00rICRDTDsiCi0gICAgIiRMQjhOb25CcmVha3MgJENQOyIKLSAgICAiJENBTl9DTSAk
Q00qICRDUDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkRVg7IgotICAg
ICIkQ0FOX0NNICRDTSogJEVYOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkTEI4Tm9uQnJlYWtz
ICRJUzsiCi0gICAgIiRDQU5fQ00gJENNKiAkSVM7IgotICAgICIkQ00rICRJUzsiCi0gICAgIiRM
QjhOb25CcmVha3MgJFNZOyIKLSAgICAiJENBTl9DTSAkQ00qICRTWTsiCi0gICAgIiRDTSsgJFNZ
OyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOX0NNICRDTSo7IgotICAgICIkT1BjbSAkU1AqICRDQU5U
X0NNOyIKLSAgICAiJE9QY20gJFNQKyAkQ00rICRBTF9GT0xMT1c/OyIKLSAgICAiJFFVY20gJFNQ
KiAkT1BjbTsiCi0gICAgIigkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOyIKLSAgICAiJEIyY20g
JFNQKiAkQjJjbTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207IgotICAgICIkQ00r
ICRRVWNtOyIKLSAgICAiJFFVY20gLj87IgotICAgICIkUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00q
OyIKLSAgICAiJExCMjBOb25CcmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsgIgot
ICAgICIkQkJjbSBbXiRDQl07IgotICAgICIkQkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOyIKLSAg
ICAiJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87IgotICAgICIkU1ljbSAkSExjbTsiCi0g
ICAgIigkQUxjbSB8ICRITGNtKSAkSU5jbTsiCi0gICAgIiRDTSsgJElOY207IgotICAgICIkRVhj
bSAkSU5jbTsiCi0gICAgIiRJRGNtICRJTmNtOyIKLSAgICAiJElOY20gJElOY207IgotICAgICIk
TlVjbSAkSU5jbTsiCi0gICAgIiRJRGNtICRQT2NtOyIKLSAgICAiJEFMY20gJE5VY207IgotICAg
ICIkSExjbSAkTlVjbTsiCi0gICAgIiRDTSsgJE5VY207IgotICAgICIkTlVjbSAkQUxjbTsiCi0g
ICAgIiROVWNtICRITGNtOyIKLSAgICAiJFBSY20gJElEY207IgotICAgICIkUFJjbSAoJEFMY20g
fCAkSExjbSk7IgotICAgICIkUE9jbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJFBSY20gfCAk
UE9jbSk/ICgkT1BjbSB8ICRIWWNtKT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkqICgk
Q0xjbSB8ICRDUGNtKT8gKCRQUmNtIHwgJFBPY20pPzsiCi0gICAgIiRKTGNtICgkSkxjbSB8ICRK
VmNtIHwgJEgyY20gfCAkSDNjbSk7IgotICAgICIoJEpWY20gfCAkSDJjbSkgKCRKVmNtIHwgJEpU
Y20pOyIKLSAgICAiKCRKVGNtIHwgJEgzY20pICRKVGNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20g
fCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAk
SlRjbSB8ICRIMmNtIHwgJEgzY20pICRQT2NtOyIKLSAgICAiJFBSY20gKCRKTGNtIHwgJEpWY20g
fCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8
ICRITGNtKTsiCi0gICAgIiRDTSsgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJElTY20gKCRBTGNt
IHwgJEhMY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207IgotICAgICIk
Q00rICRPUGNtOyIKLSAgICAiJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7IgotI2lmIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkUkljbSAkUkljbTsiCi0jZW5kaWYKLSAgICAi
JEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IjsKLQotc3RhdGljIGNvbnN0IGNo
YXIqIHVheDE0UmV2ZXJzZSA9Ci0gICAgIiEhcmV2ZXJzZTsiCi0gICAgIiRDTSsgJEFMUGx1czsi
Ci0gICAgIiRDTSsgJEJBOyIKLSAgICAiJENNKyAkQkI7IgotICAgICIkQ00rICRCMjsiCi0gICAg
IiRDTSsgJENMOyIKLSAgICAiJENNKyAkQ1A7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRDTSsg
JEdMOyIKLSAgICAiJENNKyAkSEw7IgotICAgICIkQ00rICRIWTsiCi0gICAgIiRDTSsgJEgyOyIK
LSAgICAiJENNKyAkSDM7IgotICAgICIkQ00rICRJRDsiCi0gICAgIiRDTSsgJElOOyIKLSAgICAi
JENNKyAkSVM7IgotICAgICIkQ00rICRKTDsiCi0gICAgIiRDTSsgJEpWOyIKLSAgICAiJENNKyAk
SlQ7IgotICAgICIkQ00rICROUzsiCi0gICAgIiRDTSsgJE5VOyIKLSAgICAiJENNKyAkT1A7Igot
ICAgICIkQ00rICRQTzsiCi0gICAgIiRDTSsgJFBSOyIKLSAgICAiJENNKyAkUVU7IgotI2lmIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00rICRSSTsiCi0jZW5kaWYKLSAgICAiJENN
KyAkU1k7IgotICAgICIkQ00rICRXSjsiCi0gICAgIiRDTSs7IgotICAgICIkQUxfRk9MTE9XICRD
TSsgLyAoWyRCSyAkQ1IgJExGICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsg
JENNKiAoW14kT1AgJENNICRTUF0gfCBbJEFMIHtlb2Z9XSkpOyIKLSAgICAiWyRQUl0gLyAkQ00r
IFskQksgJENSICRMRiAkTkwgJFpXICRTUCB7ZW9mfV07IgotICAgICIkTEI0QnJlYWtzIFskTEI0
Tm9uQnJlYWtzLSRDTV07IgotICAgICIkTEI0QnJlYWtzICRDTSsgJENBTl9DTTsiCi0gICAgIiRM
RiAkQ1I7IgotICAgICJbJFNQICRaV10gWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIlskU1Ag
JFpXXSAkQ00rICRDQU5fQ007IgotICAgICIkRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9kcz8g
JEVtb2ppVmFyPyAkRW1vamlGb3JTZXFzOyIKLSAgICAiJENNKyAkQ0FOX0NNOyIKLSAgICAiJENN
KiAkV0ogJENNKiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsi
Ci0gICAgIiRDQU5UX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFdKOyIK
LSAgICAiJENNKiAkR0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZXV07Igot
ICAgICIkQ0FOVF9DTSAkQ00qICRHTDsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRHTDsiCi0g
ICAgIiRDTCAkQ00rICRDQU5fQ007IgotICAgICIkQ1AgJENNKyAkQ0FOX0NNOyIKLSAgICAiJEVY
ICRDTSsgJENBTl9DTTsiCi0gICAgIiRJUyAkQ00rICRDQU5fQ007IgotICAgICIkU1kgJENNKyAk
Q0FOX0NNOyIKLSAgICAiJENMIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ1AgWyRMQjhO
b25CcmVha3MtJENNXTsiCi0gICAgIiRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJElT
IFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkU1kgWyRMQjhOb25CcmVha3MtJENNXTsiCi0g
ICAgIlskQ0wgJENQICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7ICIKLSAgICAiJENN
KiAkQ0FOX0NNICRTUCogJENNKiAkT1A7IgotICAgICIkQ0FOVF9DTSAkU1AqICRDTSogJE9QOyIK
LSAgICAiJEFMX0ZPTExPVz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xM
T1dfTk9DTSAkQ00rICRTUCsgJENNKiAkT1A7IgotICAgICIkQ00qICRBTF9GT0xMT1dfQ00gJENN
KyAkU1ArICRDTSogJE9QOyIKLSAgICAiJFNZICRDTSAkU1ArICRPUDsiCi0gICAgIiRDTSogJE9Q
ICRTUCogJENNKiAkUVU7IgotICAgICIkQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7Igot
ICAgICIkQ00qICRCMiAkU1AqICRDTSogJEIyOyIKLSAgICAiJENNKiAkUVUgJENNKiAkQ0FOX0NN
OyIKLSAgICAiJENNKiAkUVUgJExCMThOb25CcmVha3M7IgotICAgICIkQ00qICRDQU5fQ00gJENN
KiAkUVU7IgotICAgICIkQ0FOVF9DTSAkQ00qICRRVTsiCi0gICAgIiRDTSogKCRCQSB8ICRIWSB8
ICROUykgJENNKiBbJExCMjBOb25CcmVha3MtJENNXTsiCi0gICAgIiRDTSogWyRMQjIwTm9uQnJl
YWtzLSRDTV0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAkQkI7IgotICAgICJbXiRDQl0g
JENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsiCi0gICAgIiRDTSogJEhMICRDTSogJFNZOyIKLSAg
ICAiJENNKiAkSU4gJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICRJTiAkQ00qICRF
WDsiCi0gICAgIiRDTSogJElOICRDTSogJElEOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSU47Igot
ICAgICIkQ00qICRJTiAkQ00qICROVTsiCi0gICAgIiRDTSogJFBPICRDTSogJElEOyIKLSAgICAi
JENNKiAkTlUgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhM
KSAkQ00qICROVTsiCi0gICAgIiRDTSogJElEICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1
cyB8ICRITCkgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQTzsi
Ci0gICAgIigkQ00qICgkUFIgfCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5V
IHwgJElTIHwgJFNZKSkqICRDTSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8
ICRQTykpPzsiCi0gICAgIiRDTSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7Igot
ICAgICIkQ00qICgkSlQgfCAkSlYpICRDTSogKCRIMiB8ICRKVik7IgotICAgICIkQ00qICRKVCAk
Q00qICgkSDMgfCAkSlQpOyIKLSAgICAiJENNKiAkSU4gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwg
JEpWIHwgJEpMKTsiCi0gICAgIiRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8
ICRKTCk7IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSogJFBS
OyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAg
ICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRJUzsiCi0gICAgIiRDTSogJE9QICRDTSogKCRB
TFBsdXMgfCAkSEwgfCAkTlUpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENN
KiAkQ1A7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00qICRSSSAkQ00q
ICRSSTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7
IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0U2FmZUZvcndhcmQgPQotICAgICIhIXNhZmVf
Zm9yd2FyZDsiCi0gICAgIlskQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1Ag
JGRpY3Rpb25hcnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0
aW9uYXJ5XTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KLXN0YXRpYyBjb25z
dCBjaGFyKiB1YXgxNFNhZmVSZXZlcnNlID0KLSAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICIk
Q00rIFteJENNICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRDTSsgJFNQIC8gLjsi
Ci0gICAgIiRTUCsgJENNKiAkT1A7IgotICAgICIkU1ArICRDTSogJFFVOyIKLSAgICAiJFNQKyAk
Q00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJFNQKyAkQ00qICRCMjsiCi0gICAgIiRDTSogKCRIWSB8
ICRCQSkgJENNKiAkSEw7IgotICAgICIoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOyIKLSAg
ICAiKCRDTCB8ICRDUCkgJENNKiAoJE5VIHwgJElTIHwgJFNZKTsiCi0gICAgIiRkaWN0aW9uYXJ5
ICRkaWN0aW9uYXJ5OyI7Ci0KIHN0YXRpYyBTdHJpbmcgbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVs
ZXMoTGluZUJyZWFrSXRlcmF0b3JNb2RlIG1vZGUsIGJvb2wgaXNDSkspCiB7Ci0gICAgU3RyaW5n
QnVpbGRlciBydWxlc0J1aWxkZXI7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFByb2xv
Z3VlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNCZWZvcmUpOwog
ICAgIHN3aXRjaCAobW9kZSkgewogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTQ6
Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3Vz
dG9tRGVmYXVsdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLKTsKLSAg
ICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxlczsKICAgICBjYXNl
IExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0TG9vc2U6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5h
cHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgOiB1YXgxNEFzc2ln
bm1lbnRzQ3VzdG9tTG9vc2VOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJu
IGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLUnVsZXMgOiBsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VOb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9y
TW9kZVVBWDE0Tm9ybWFsOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4
MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3Jt
YWxOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRTdHJp
Y3Q6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tU3RyaWN0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyk7Ci0g
ICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVs
ZXM7CiAgICAgfQotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0FmdGVy
KTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0Rm9yd2FyZCk7Ci0gICAgcnVsZXNCdWls
ZGVyLmFwcGVuZCh1YXgxNFJldmVyc2UpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRT
YWZlRm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVSZXZlcnNlKTsK
LSAgICByZXR1cm4gcnVsZXNCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuICIiOwogfQogCiAvLyBSZWNvZ25pemUgQkNQNDcgY29tcGxpYW50
IHByaW1hcnkgbGFuZ3VhZ2UgdmFsdWVzIG9mICd6aCcsICdqYScsICdrbycKQEAgLTc4Niw5ICsy
NTIsMjkgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIG9wZW5MaW5lQnJlYWtJdGVyYXRvcihjb25zdCBB
dG9taWNTdHJpbmcmIGxvY2FsZSwgTGluZUJyZWFrSXQKICAgICBpZiAobW9kZSA9PSBMaW5lQnJl
YWtJdGVyYXRvck1vZGVVQVgxNCkKICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW4oVUJSS19M
SU5FLCBsb2NhbGVJc0VtcHR5ID8gY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkgOiBsb2NhbGUu
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOwogICAgIGVsc2Ugewot
ICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKLSAgICAgICAgYXV0byBydWxlcyA9IG1h
cExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsKLSAgICAgICAgdWJya0l0ZXIg
PSB1YnJrX29wZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMo
KSwgcnVsZXMubGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0dXMpOworICAg
ICAgICBCcmVha2luZ1J1bGVTZXQgcnVsZVNldDsKKyAgICAgICAgc3dpdGNoIChtb2RlKSB7Cisg
ICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTQ6CisgICAgICAgICAgICBydWxl
U2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLIDogQnJlYWtpbmdSdWxlU2V0
OjpVQVgxNE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVh
a0l0ZXJhdG9yTW9kZVVBWDE0TG9vc2U6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBC
cmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9v
c2VOb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVy
YXRvck1vZGVVQVgxNE5vcm1hbDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFr
aW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFs
Tm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0
b3JNb2RlVUFYMTRTdHJpY3Q6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2lu
Z1J1bGVTZXQ6OlVBWDE0U3RyaWN0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdE5v
bkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8q
IGl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KHJ1bGVTZXQpKQorICAgICAgICAg
ICAgdWJya0l0ZXIgPSByZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3Ip
OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFVQYXJzZUVycm9yIHBhcnNlU3RhdHVzOwor
ICAgICAgICAgICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUs
IGlzQ0pLKTsKKyAgICAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuUnVsZXMoU3RyaW5nVmll
dyhydWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHJ1bGVzLmxlbmd0aCgpLCAwLCAwLCAm
cGFyc2VTdGF0dXMsICZvcGVuU3RhdHVzKTsKKyAgICAgICAgfQogICAgIH0KICAgICAvLyBsb2Nh
bGUgY29tZXMgZnJvbSBhIHdlYiBwYWdlIGFuZCBpdCBjYW4gYmUgaW52YWxpZCwgbGVhZGluZyBJ
Q1UKICAgICAvLyB0byBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIGZhbGwgYmFjayB0byB0aGUgZGVm
YXVsdCBsb2NhbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0
ZXJhdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKaW5kZXgg
ZDkwMzIxNWFlNDEzN2U0YzNhOWVhMzViM2QwMjViZjUyZTQ1MThlYy4uZDgyMWIzMTY3OTE5YjQ0
MjlmYTU0YzFlNWIzZjQ2N2M1MjA2MTM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4
dC9UZXh0QnJlYWtJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFr
SXRlcmF0b3IuaApAQCAtMzgsNiArMzgsMzAgQEAgZW51bSBMaW5lQnJlYWtJdGVyYXRvck1vZGUg
ewogICAgIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0U3RyaWN0LAogfTsKIAorZW51bSBjbGFz
cyBCcmVha2luZ1J1bGVTZXQgeworICAgIEN1cnNvck1vdmVtZW50LAorICAgIFVBWDE0Q0pLLAor
ICAgIFVBWDE0Tm9uQ0pLLAorICAgIFVBWDE0TG9vc2VDSkssCisgICAgVUFYMTRMb29zZU5vbkNK
SywKKyAgICBVQVgxNE5vcm1hbENKSywKKyAgICBVQVgxNE5vcm1hbE5vbkNKSywKKyAgICBVQVgx
NFN0cmljdENKSywKKyAgICBVQVgxNFN0cmljdE5vbkNKSworfTsKKworZXh0ZXJuIGNvbnN0IGNo
YXIqIGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5l
QnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZU5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsKKworVGV4dEJyZWFrSXRlcmF0
b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpOworCiAvLyBUaGlz
IGlzIHNpbWlsYXIgdG8gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMsIGJ1
dCBpcyBzdWJqZWN0IHRvCiAvLyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUg
ZXhhbXBsZSB3aGVyZSB0aGlzIGNhbiBiZSBkaWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVyIGJy
ZWFrIGl0ZXJhdG9yIGlzIFRoYWkgcHJlcGVuZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQyLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVU1hYy5tbSBiL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9y
SW50ZXJuYWxJQ1VNYWMubW0KaW5kZXggYmVmNWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVlOGU4
OGEzODkyYy4uMmFlY2YwOWU4MjU0NGM2NmI3ZDFjMWU1YWFhYzY0ZjVmZmYzMDJiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElD
VU1hYy5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvcklu
dGVybmFsSUNVTWFjLm1tCkBAIC0yMSwxMiArMjEsMTIwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAi
VGV4dEJyZWFrSXRlcmF0b3IuaCIKKworI2lmIGRlZmluZWQoVV9TSE9XX0NQTFVTUExVU19BUEkp
CisjdW5kZWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKyNlbmRpZgorI2RlZmluZSBVX1NIT1dfQ1BM
VVNQTFVTX0FQSSAxCisKKyNpbmNsdWRlIDx1bmljb2RlL3JiYmkuaD4KKyNpbmNsdWRlIDx1bmlj
b2RlL3VkYXRhLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8
d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCitAaW50ZXJmYWNl
IFdURkJ1bmRsZUZpbmRlciA6IE5TT2JqZWN0CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXVEZC
dW5kbGVGaW5kZXIKK0BlbmQKKwogbmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdCBpbnQg
bWF4TG9jYWxlU3RyaW5nTGVuZ3RoID0gMzI7CiAKK3N0cnVjdCBSdWxlQ2FjaGUgeworICAgIHN0
ZDo6dW5pcXVlX3B0cjxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPiBpdGVyYXRvcjsKKyAgICBib29s
IGZhaWxlZCB7IGZhbHNlIH07Cit9OworCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0
b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCBydWxlU2V0KQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGN1cnNvck1vdmVtZW50SXRlcmF0b3I7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTRDSktJdGVyYXRvcjsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNE5vbkNKS0l0
ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VB
WDE0TG9vc2VDSktJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hl
PiBsaW5lQnJlYWtVQVgxNExvb3NlTm9uQ0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTROb3JtYWxDSktJdGVyYXRvcjsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNE5vcm1hbE5vbkNK
S0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVh
a1VBWDE0U3RyaWN0Q0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVD
YWNoZT4gbGluZUJyZWFrVUFYMTRTdHJpY3ROb25DSktJdGVyYXRvcjsKKworICAgIE5TU3RyaW5n
ICpmaWxlTmFtZUJhc2U7CisgICAgUnVsZUNhY2hlKiBjYWNoZSA9IG51bGxwdHI7CisKKyAgICBz
d2l0Y2ggKHJ1bGVTZXQpIHsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1l
bnQ6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
IjsKKyAgICAgICAgY2FjaGUgPSAmY3Vyc29yTW92ZW1lbnRJdGVyYXRvci5nZXQoKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLOgorICAgICAgICBm
aWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksiOworICAgICAgICBjYWNo
ZSA9ICZsaW5lQnJlYWtVQVgxNENKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFz
ZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSyI7CisgICAgICAgIGNhY2hlID0gJmxp
bmVCcmVha1VBWDE0Tm9uQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2Ug
PSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSyI7CisgICAgICAgIGNhY2hlID0gJmxp
bmVCcmVha1VBWDE0TG9vc2VDSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks6CisgICAgICAgIGZpbGVOYW1l
QmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLIjsKKyAgICAgICAgY2Fj
aGUgPSAmbGluZUJyZWFrVUFYMTRMb29zZU5vbkNKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSks6CisgICAgICAg
IGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSyI7CisgICAg
ICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0Tm9ybWFsQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzoK
KyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9u
Q0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTROb3JtYWxOb25DSktJdGVyYXRv
ci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0
U3RyaWN0Q0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNFN0cmljdENKS0l0
ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6
VUFYMTRTdHJpY3ROb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdE5vbkNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0
U3RyaWN0Tm9uQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAg
IEFTU0VSVChjYWNoZSk7CisKKyAgICBpZiAoY2FjaGUtPmZhaWxlZCkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBpZiAoIWNhY2hlLT5pdGVyYXRvcikgeworICAgICAgICBOU0J1bmRs
ZSAqYnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXVEZCdW5kbGVGaW5kZXIgY2xh
c3NdXTsKKyAgICAgICAgTlNTdHJpbmcgKnBhdGggPSBbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpm
aWxlTmFtZUJhc2Ugb2ZUeXBlOkAiYnJrIiBpbkRpcmVjdG9yeTpAIkJyZWFraW5nUnVsZXMiXTsK
KyAgICAgICAgaWYgKCFwYXRoKSB7CisgICAgICAgICAgICBjYWNoZS0+ZmFpbGVkID0gdHJ1ZTsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgTlNTdHJp
bmcgKmRpcmVjdG9yeSA9IFtwYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF07
CisgICAgICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAgICAgICBM
b2NhbFVEYXRhTWVtb3J5UG9pbnRlciBkYXRhKHVkYXRhX29wZW4oW2RpcmVjdG9yeSBVVEY4U3Ry
aW5nXSwgImJyayIsIFtmaWxlTmFtZUJhc2UgVVRGOFN0cmluZ10sICZlcnJvckNvZGUpKTsKKyAg
ICAgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJST1IpIHsKKyAgICAgICAgICAgIGNhY2hl
LT5mYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0K
KworICAgICAgICBjYWNoZS0+aXRlcmF0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJy
ZWFrSXRlcmF0b3I+KGRhdGEub3JwaGFuKCksIGVycm9yQ29kZSk7CisgICAgICAgIGlmIChlcnJv
ckNvZGUgIT0gVV9aRVJPX0VSUk9SKSB7CisgICAgICAgICAgICBjYWNoZS0+ZmFpbGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgIGNhY2hlLT5pdGVyYXRvciA9IG51bGxwdHI7CisgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PFRleHRCcmVha0l0ZXJhdG9yKj4oc3RkOjptYWtlX3VuaXF1ZTxSdWxlQmFzZWRCcmVh
a0l0ZXJhdG9yPigqY2FjaGUtPml0ZXJhdG9yKS5yZWxlYXNlKCkpOworfQorCiBzdGF0aWMgaW5s
aW5lIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gdGV4dEJyZWFrTG9jYWxlUHJlZmVyZW5jZSgpCiB7
CiAgICAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBsb2NhbGUgPSBhZG9wdENGKENGUHJl
ZmVyZW5jZXNDb3B5VmFsdWUoQ0ZTVFIoIkFwcGxlVGV4dEJyZWFrTG9jYWxlIiksCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtTWFjLmNtYWtlCmluZGV4IDc1NTJjZDc1Y2QxNWM4YmY2MWFmN2QyYTBlYTlmYjkxN2Zl
MDdlMzkuLjdjNzc1YjdiODFiZmYwM2E3NTIzNzRkNmMxMzRjNDY3NmQ2NDA4OGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtTWFjLmNtYWtlCkBAIC01ODcsOCArNTg3LDggQEAgbGlzdChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQogICAgIHBsYXRmb3Jt
L21hYy9FdmVudExvb3BNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbQot
ICAgIHBsYXRmb3JtL21hYy9ISURHYW1lcGFkLmNwcAotICAgIHBsYXRmb3JtL21hYy9ISURHYW1l
cGFkUHJvdmlkZXIuY3BwCisgICAgI3BsYXRmb3JtL21hYy9ISURHYW1lcGFkLmNwcAorICAgICNw
bGF0Zm9ybS9tYWMvSElER2FtZXBhZFByb3ZpZGVyLmNwcAogICAgIHBsYXRmb3JtL21hYy9LZXlF
dmVudE1hYy5tbQogICAgIHBsYXRmb3JtL21hYy9LaWxsUmluZ01hYy5tbQogICAgIHBsYXRmb3Jt
L21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9j
bWFrZS9XZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQppbmRleCAy
OWEwOTY5MDM4ZmFhNzQ0ZTFhOGM1OGYzNTZhZDA3M2YwMDUyNWJkLi44MWY1NGE1NmFkNjk1M2Q3
YjFlMjBjODhmYTg1YmJkZGQxZjA3ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0
RlMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlCkBAIC0yNCw2ICsyNCw3
IEBAIGlmIChOT1QgVE9PTFNfRElSKQogZW5kaWYgKCkKIAogc2V0KERFUklWRURfU09VUkNFU19E
SVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMiKQorc2V0KERFUklWRURfU09V
UkNFU19XVEZfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURiIpCiBz
ZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElS
fS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZSIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dF
QkNPUkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUiKQog
c2V0KERFUklWRURfU09VUkNFU19XRUJLSVRMRUdBQ1lfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIpCkBAIC0zMiw2ICszMyw4IEBAIHNldChERVJJ
VkVEX1NPVVJDRVNfV0VCS0lUMl9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0MiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUiAiJHtD
TUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJJbnNwZWN0b3JVSSIpCiAKIGZpbGUo
TUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfSkKK2Zp
bGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0pCitmaWxlKE1BS0Vf
RElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMpCiBmaWxl
KE1BS0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0vU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5T
UEVDVE9SVUlfRElSfSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285609</attachid>
            <date>2016-08-08 17:02:26 -0700</date>
            <delta_ts>2016-08-08 17:16:12 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160808170053.patch</filename>
            <type>text/plain</type>
            <size>475900</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NzcxNGM0YjVjNmE4NTg2MzVjMTQ0ZmIyNDIxOGQ4NDU0ZWU3MTA1Li4wYzE0ZjAwOGMwM2E3YmYy
M2EwZWJjMWRhYjJkM2MzYjc4ZDljMmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDggIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IGhhc0lubGluZVN0b3JhZ2UoKSBpbiBKU0ZpbmFsT2Jq
ZWN0Ojp2aXNpdENoaWxkcmVuKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyNmIyZWJmZmUyY2FkYTM3Y2NkYWUzY2VkZjZl
ZmM4NTNiNjE2YjEuLjgwMGYyN2IwMTk1NzViNTkwYjliOTM5OGY1YjAwY2ZhZGEzODliYzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgtMDggIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZp
ZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMg
YXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkZWQuCisgICAgICAgICog
d3RmL2dlbmJyazogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dDogQWRkZWQuCisgICAgICAg
ICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9u
Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDogQWRk
ZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwOgorICAgICAgICAo
V1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RGOjpjdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAg
KiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAgICAqIHd0Zi90ZXh0L21hYy9U
ZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAgICAgICAoV1RGOjppdGVyYXRv
ckZvclJ1bGVTZXQpOgorCiAyMDE2LTA4LTA2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgV1RGIG5lZWRzIGEgdmFyaWFudCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBlMzBkYzllNGQwMjAzNjIwYjE0Y2EyMjhiNGViMmJiNGZk
ZWNlZjBkLi4xYWJlNDdjMjQ2NGRhODk4ZmFkNTMwYWNjMzI2MzdjOGJkYTYyYzdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOSw2ICsxMTA5LDcgQEAKIAkJMTRGOTc0NDcx
MzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhDODUzRTAwREExQzY3IC8qIEhl
YXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjhENEE3
MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNGNzM3NzE3MUNBNkZCMDBDOUJC
MUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgKi87IH07CisJCTFDRDE4
NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyog
QnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi87IH07
CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1QTUxNTJCQUFBNzAw
OTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2MkQ4NUI2MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQxQzBENjUwRjAwNkFDQjYxIC8q
IEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07CkBAIC0zMjcyLDYgKzMyNzMs
NyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFzZS54Y2NvbmZpZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYgLyogSmF2YVNjcmlwdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQxQkNGRiAvKiBKYXZhU2NyaXB0
Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Q29yZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMg
LyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7IHBhdGggPSAuLi9XVEYvQnJl
YWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTQxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0
aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0aCA9IGIzL2Fpci9BaXJGaXhQ
YXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NTQzOCw2ICs1NDQwLDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAwNzY5RTU0IC8qIERlcml2ZWQg
U291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
MUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJMEY2MTgz
MzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAogCQkJCTBGNjE4MzM0MUM0NUYz
QjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywKIAkJCQkwRjYxODMzNTFDNDVG
M0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAgLTg0NTcsNiArODQ2MCw3IEBA
CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQTUz
RjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8sCisJ
CQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2JhODA0
MDZiNjg3ODcyY2RjMmUzZTgxNmJlYjAwNDNhOTM5YzI3MC4uMGMzOGEyNzE2ZTI3MjdmYjljOTdi
MGIyM2FiNDY3N2I0OWZjZDFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC03LDYgKzcsMTggQEAKIAlvYmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhBZ2dy
ZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVy
aXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OworCQkJYnVp
bGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMwMENDN0RFQyAvKiBCdWlsZCBj
b25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2Vz
IiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAv
KiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0g
KAorCQkJCUMyQkE1NDNCMUQ1NzJCRUIwMDBBMzMzMiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICov
LAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXByb2R1Y3ROYW1lID0g
IkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyog
Q29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKIAkJ
CWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyogQnVp
bGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RGIEhl
YWRlcnMiICovOwpAQCAtMzEyLDYgKzMyNCwyMCBAQAogCQlBOEE0NzQ4NzE1MUE4MjVCMDA0MTIz
RkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCAq
LzsgfTsKIAkJQThBNDc0OEMxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDc0OEIxNTFBODI2NDAwNDEy
M0ZGIC8qIGNvbmZpZy5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1M0U4MDA2NUM5NjkgLyogRmVh
dHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovOyB9Owor
CQlDMkJBNTQyNTFENTcyNUM0MDAwQTMzMzIgLyogZ2VuYnJrLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1NDE4MUQ1NzI1OTAwMDBBMzMzMiAv
KiBnZW5icmsuY3BwICovOyB9OworCQlDMkJBNTQzMzFENTcyOTM4MDAwQTMzMzIgLyogdW9wdGlv
bnMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1
NDMyMUQ1NzI5MzgwMDBBMzMzMiAvKiB1b3B0aW9ucy5jICovOyB9OworCQlDMkJBNTQzNjFENTcy
OUZGMDAwQTMzMzIgLyogdW5ld2RhdGEuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyQkE1NDM1MUQ1NzI5RkYwMDBBMzMzMiAvKiB1bmV3ZGF0YS5jICov
OyB9OworCQlDMkJBNTQzOTFENTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1NDM4MUQ1NzJBRjgwMDBB
MzMzMiAvKiBmaWxlc3RybS5jICovOyB9OworCQlDMkJBNTQzRTFENTg2QUY0MDAwQTMzMzIgLyog
bGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICov
OyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
Sy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VEMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U0MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJD
QTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3
RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3Bw
ICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RjExRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTgxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICov
OyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkzNjE5QzY1RUI0MDBC
MkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMzMCAv
KiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87IH07CiAJ
CUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAv
KiBNZWRpYVRpbWUuaCAqLzsgfTsKQEAgLTM0NCw2ICszNzAsMTMgQEAKIAkJCXJlbW90ZUdsb2Jh
bElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdU
RjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Q
cm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5l
clBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsK
KwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1
NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsK
IAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9
IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9
IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTM1MSw4
ICszODQsMjcgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNjVBRkExNkYxNjMwQjk3NzAw
M0Q3MjNDOwogCQkJcmVtb3RlSW5mbyA9ICJDb3B5IEhlYWRlcnMiOwogCQl9OworCQlDMkJBNTQz
QTFENTcyQkVCMDAwQTMzMzIgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNh
ID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gNUQyNDdCNTkx
NDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsK
KwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMyOworCQkJ
cmVtb3RlSW5mbyA9IGdlbmJyazsKKwkJfTsKIC8qIEVuZCBQQlhDb250YWluZXJJdGVtUHJveHkg
c2VjdGlvbiAqLwogCisvKiBCZWdpbiBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8K
KwkJQzJCQTU0MUIxRDU3MjVCNDAwMEEzMzMyIC8qIENvcHlGaWxlcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWENvcHlGaWxlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OworCQkJZHN0UGF0aCA9IC91c3Ivc2hhcmUvbWFuL21hbjEvOworCQkJZHN0U3ViZm9sZGVyU3Bl
YyA9IDA7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMTsKKwkJfTsKKy8qIEVuZCBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rp
b24gKi8KKwogLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAJCTBGMEQ4NUIz
MTcyMzRDQjEwMDMzODIxMCAvKiBOb0xvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9Mb2NrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkI2NkE0MTdCNkI0RjcwMEE3QUUzRiAvKiBE
ZWZlcnJhYmxlUmVmQ291bnRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWZlcnJhYmxlUmVmQ291bnRl
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDM2LDYgKzQ4OCwxOCBAQAogCQkx
QzE4MUM4RDFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzhFMUQzMDdBQjgwMEY1RkExNiAvKiBV
VGV4dFByb3ZpZGVyVVRGMTYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRl
eHRQcm92aWRlclVURjE2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzk1
MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVU1hYy5tbTsgcGF0aCA9IG1hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNV
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NDFENTU5QTBEMDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDQjRGQjk1MUQ1NTlBNjkwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTYxRDU1
OUE5MDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Q0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlBMUQ1
NTlCMjMwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFr
SXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRl
cmF0b3JFcGlsb2d1ZS50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhB
MUQ1NThBRDMwMENDN0RFQyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IG5hbWUgPSBEZXJpdmVk
U291cmNlcy5tYWtlOyBwYXRoID0gd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHVzZXNUYWJzID0gMTsgfTsKKwkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVD
IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OTMx
RDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRo
cmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGhy
ZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODkxNTI1MDJEQTAw
NTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQ29yZVRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjE0N0Iw
ODE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTgsNiArNzIyLDMzIEBACiAJCUE4QTQ3MzdC
MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdURlRocmVhZERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQThBNDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUMyQkE1NDE4MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gZ2VuYnJrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzJCQTU0MUQxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsg
aW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gZ2VuYnJrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OworCQlDMkJBNTQyNjFENTcyNjdDMDAwQTMzMzIgLyogdW9wdGlvbnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdW9wdGlvbnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MjcxRDU3MjY4OTAwMEEzMzMyIC8qIHVuZXdkYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVuZXdkYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDI4MUQ1NzI2QjAwMDBBMzMzMiAvKiB1Y21uZGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1Y21uZGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyOTFENTcyNkJDMDAwQTMzMzIgLyogcmJiaWRhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcmJiaWRhdGEuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MkExRDU3MjZDNTAwMEEzMzMyIC8qIGNtZW1vcnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY21lbW9yeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyQjFENTcyNkU4MDAwQTMzMzIgLyogdW1hcGZpbGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdW1hcGZpbGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MkMxRDU3MjcwOTAwMEEzMzMyIC8qIHB1dGlsaW1w
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHB1dGlsaW1wLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDJEMUQ1NzI3MjQwMDBBMzMzMiAvKiB1ZGF0YXN3
cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1ZGF0YXN3cC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyRTFENTcyNzNCMDAwQTMzMzIgLyogdW11dGV4
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVtdXRleC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyRjFENTcyNzRDMDAwQTMzMzIgLyogdXRyaWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdXRyaWUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MzIxRDU3MjkzODAwMEEzMzMyIC8qIHVvcHRpb25zLmMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHVvcHRpb25zLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUMyQkE1NDM0MUQ1NzI5QTkwMDBBMzMzMiAvKiBjc3RyaW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNzdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MzUxRDU3MjlGRjAwMEEzMzMyIC8qIHVuZXdkYXRhLmMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHVuZXdkYXRhLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUMyQkE1NDM3MUQ1NzJBMkQwMDBBMzMzMiAvKiBmaWxlc3RybS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBmaWxlc3RybS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDMkJBNTQzODFENTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gZmlsZXN0cm0uYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0M0YxRDU4NzRFNjAwMEEzMzMyIC8qIEdlbmVyYXRlQnJl
YWtpbmdSdWxlU3RyaW5ncy5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IEdlbmVyYXRlQnJlYWtpbmdS
dWxlU3RyaW5ncy5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTAxRDU1
Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcDsgcGF0aCA9IEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDMkNBMzdFNDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzRGOEE5MzYxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9wd2F0Y2guaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGlt
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQjE1ODU3RDAzMDBCNUJDMzAg
LyogTWVkaWFUaW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVGlt
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjg4LDcgKzc3OSw3IEBACiAJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJMTQ0N0FFQzYx
OEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8s
Ci0JCQkJMTQ0N0FFQ0IxOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJh
bWV3b3JrcyAqLywKKwkJCQlDMkJBNTQzRTFENTg2QUY0MDAwQTMzMzIgLyogbGliaWN1Y29yZS5k
eWxpYiBpbiBGcmFtZXdvcmtzICovLAogCQkJCTE0NDdBRUM3MThGQ0U1ODAwMEIzRDdGRiAvKiBs
aWJXVEYuYSBpbiBGcmFtZXdvcmtzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtNzAxLDYgKzc5MiwxNCBAQAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQlDMkJBNTQxQTFENTcy
NUI0MDAwQTMzMzIgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NC
dWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0g
KAorCQkJCTE0NDdBRUNCMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZy
YW1ld29ya3MgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CisJCX07CiAvKiBFbmQgUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwog
CiAvKiBCZWdpbiBQQlhHcm91cCBzZWN0aW9uICovCkBAIC03MjUsNiArODI0LDI1IEBACiAJCQlw
YXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUNEMTg3OTEx
RDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDNGMUQ1ODc0RTYwMDBBMzMzMiAvKiBHZW5l
cmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8sCisJCQkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3
REVDIC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8sCisJCQkJMUNEMTg3OTMx
RDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovLAorCQkJ
CTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4
dCAqLywKKwkJCQkxQ0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTcxRDU1OUFBODAw
RjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgKi8sCisJCQkJ
MUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksudHh0ICovLAorCQkJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZF
MzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8sCisJCQkJMUNCNEZC
OUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksu
dHh0ICovLAorCQkJCTFDQjRGQjlDMUQ1NTlCNjcwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
ckVwaWxvZ3VlLnR4dCAqLywKKwkJCSk7CisJCQlwYXRoID0gQnJlYWtpbmdSdWxlczsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2OEQxQiAv
KiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNzQ2
LDEwICs4NjQsMTIgQEAKIAkJNUQyNDdCNTcxNDY4OUI4NjAwRTc4Qjc2ID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMg
LyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKIAkJCQk1RDI0N0I2RDE0Njg5QzQ3MDBFNzhCNzYg
LyogQ29uZmlndXJhdGlvbnMgKi8sCiAJCQkJMTQwMjJGM0YxOEY1QzNFNTAwN0ZGMEVCIC8qIExp
YnJhcmllcyAqLywKIAkJCQk1RDI0N0I2MzE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvZHVjdHMgKi8s
CiAJCQkJNUQyNDdCNzYxNDY4OUQ3NjAwRTc4Qjc2IC8qIFNvdXJjZSAqLywKKwkJCQlDMkNBMzdE
RjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0NDdBRUM1MThG
Q0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKIAkJCQkxNDQ3QUVDQTE4
RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLywKIAkJCSk7CkBAIC03NjAsNiAr
ODgwLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTE0NDdBRUJFMThGQ0U1NjkwMEIzRDdGRiAv
KiBsaWJtYm1hbGxvYy5keWxpYiAqLywKIAkJCQk1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyog
bGliV1RGLmEgKi8sCisJCQkJQzJCQTU0MUQxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLywK
IAkJCSk7CiAJCQluYW1lID0gUHJvZHVjdHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMTA4Myw2ICsxMjA0LDggQEAKIAkJQThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDE3
MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsgKi8sCisJCQkJMUNEMTg3OTExRDU1OThFMTAwQ0M3
REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJMUMxODFDODgxRDMwN0FCODAwRjVGQTE2IC8q
IGljdSAqLywKIAkJCQlBNUJBMTVGNjE4MjQzNTlFMDBBODJFNjkgLyogY2YgKi8sCiAJCQkJQTVC
QTE1RjExODI0MzM5RjAwQTgyRTY5IC8qIG1hYyAqLywKQEAgLTExNTgsNiArMTI4MSw0NyBAQAog
CQkJcGF0aCA9IGljdTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUMyQkE1
NDE3MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDE4MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsu
Y3BwICovLAorCQkJCUMyQkE1NDMyMUQ1NzI5MzgwMDBBMzMzMiAvKiB1b3B0aW9ucy5jICovLAor
CQkJCUMyQkE1NDM1MUQ1NzI5RkYwMDBBMzMzMiAvKiB1bmV3ZGF0YS5jICovLAorCQkJCUMyQkE1
NDM4MUQ1NzJBRjgwMDBBMzMzMiAvKiBmaWxlc3RybS5jICovLAorCQkJCUMyQkE1NDI2MUQ1NzI2
N0MwMDBBMzMzMiAvKiB1b3B0aW9ucy5oICovLAorCQkJCUMyQkE1NDI3MUQ1NzI2ODkwMDBBMzMz
MiAvKiB1bmV3ZGF0YS5oICovLAorCQkJCUMyQkE1NDI4MUQ1NzI2QjAwMDBBMzMzMiAvKiB1Y21u
ZGF0YS5oICovLAorCQkJCUMyQkE1NDI5MUQ1NzI2QkMwMDBBMzMzMiAvKiByYmJpZGF0YS5oICov
LAorCQkJCUMyQkE1NDJBMUQ1NzI2QzUwMDBBMzMzMiAvKiBjbWVtb3J5LmggKi8sCisJCQkJQzJC
QTU0MkIxRDU3MjZFODAwMEEzMzMyIC8qIHVtYXBmaWxlLmggKi8sCisJCQkJQzJCQTU0MkMxRDU3
MjcwOTAwMEEzMzMyIC8qIHB1dGlsaW1wLmggKi8sCisJCQkJQzJCQTU0MkQxRDU3MjcyNDAwMEEz
MzMyIC8qIHVkYXRhc3dwLmggKi8sCisJCQkJQzJCQTU0MkUxRDU3MjczQjAwMEEzMzMyIC8qIHVt
dXRleC5oICovLAorCQkJCUMyQkE1NDJGMUQ1NzI3NEMwMDBBMzMzMiAvKiB1dHJpZS5oICovLAor
CQkJCUMyQkE1NDM0MUQ1NzI5QTkwMDBBMzMzMiAvKiBjc3RyaW5nLmggKi8sCisJCQkJQzJCQTU0
MzcxRDU3MkEyRDAwMEEzMzMyIC8qIGZpbGVzdHJtLmggKi8sCisJCQkpOworCQkJbmFtZSA9IGdl
bmJyazsKKwkJCXBhdGggPSBCcmVha2luZ1J1bGVzL2dlbmJyazsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CisJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNv
dXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMy
Q0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
ICovLAorCQkJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Q0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNB
MzdFNDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAg
Ki8sCisJCQkJQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksuY3BwICovLAorCQkJCUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNzFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8sCisJ
CQkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksuY3BwICovLAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJ
CXBhdGggPSBEZXJpdmVkU291cmNlcy9XVEY7CisJCQlzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOworCQl9OwogCQlDRTQ2NTE2QzE5REIxRkI0MDAzRUNBMDUgLyogY29jb2EgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTQ3MCw2ICsxNjM0LDcg
QEAKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTFD
RDE4Nzg4MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTY1
QUZBMjhFMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsK
IAkJCW5hbWUgPSBXVEY7CkBAIC0xNDc3LDYgKzE2NDIsMjMgQEAKIAkJCXByb2R1Y3RSZWZlcmVu
Y2UgPSA1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi87CiAJCQlwcm9kdWN0
VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLmxpYnJhcnkuc3RhdGljIjsKIAkJfTsKKwkJ
QzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLyA9IHsKKwkJCWlzYSA9IFBCWE5h
dGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBDMkJBNTQyMTFENTcyNUI0
MDAwQTMzMzIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQg
ImdlbmJyayIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQlDMkJBNTQxOTFENTcyNUI0MDAw
QTMzMzIgLyogU291cmNlcyAqLywKKwkJCQlDMkJBNTQxQTFENTcyNUI0MDAwQTMzMzIgLyogRnJh
bWV3b3JrcyAqLywKKwkJCQlDMkJBNTQxQjFENTcyNUI0MDAwQTMzMzIgLyogQ29weUZpbGVzICov
LAorCQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAor
CQkJKTsKKwkJCW5hbWUgPSBnZW5icms7CisJCQlwcm9kdWN0TmFtZSA9IGdlbmJyazsKKwkJCXBy
b2R1Y3RSZWZlcmVuY2UgPSBDMkJBNTQxRDFENTcyNUI0MDAwQTMzMzIgLyogZ2VuYnJrICovOwor
CQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS50b29sIjsKKwkJfTsKIC8q
IEVuZCBQQlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhQcm9qZWN0IHNl
Y3Rpb24gKi8KQEAgLTE0ODUsNiArMTY2NywxMSBAQAogCQkJYXR0cmlidXRlcyA9IHsKIAkJCQlM
YXN0U3dpZnRVcGRhdGVDaGVjayA9IDA3MDA7CiAJCQkJTGFzdFVwZ3JhZGVDaGVjayA9IDA3MDA7
CisJCQkJVGFyZ2V0QXR0cmlidXRlcyA9IHsKKwkJCQkJQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMy
ID0geworCQkJCQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gNy4zLjE7CisJCQkJCX07CisJCQkJ
fTsKIAkJCX07CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNUQyNDdCNUMxNDY4OUI4NjAw
RTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV1RGIiAq
LzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDMuMiI7CkBAIC0xNTAwLDEyICsx
Njg3LDI4IEBACiAJCQl0YXJnZXRzID0gKAogCQkJCTVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NiAv
KiBXVEYgKi8sCiAJCQkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRl
cnMgKi8sCisJCQkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAq
LywKIAkJCQkxNDQ3QUVCRDE4RkNFNTY5MDBCM0Q3RkYgLyogbWJtYWxsb2MgKi8sCisJCQkJQzJC
QTU0MUMxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQg
UEJYUHJvamVjdCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFz
ZSBzZWN0aW9uICovCisJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJp
dmVkIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJ
aW5wdXRQYXRocyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNl
cyI7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlw
dCA9ICJta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZc
IlxuY2QgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcblxuL2Jp
bi9sbiAtc2ZoIFwiJHtTUkNST09UfVwiIFdURlxuZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsg
ISAtZCBCcmVha2luZ1J1bGVzIF07IHRoZW5cbiAgICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxu
XG5pZiBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdOyB0aGVu
XG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0wXG5lbHNlXG4gICAgZXhwb3J0
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0xXG5maVxuXG5pZiBbIFwiJHtBQ1RJT059XCIgPSBc
ImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtBQ1RJT059XCIg
PSBcImluc3RhbGxoZHJzXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGFwaVwiIF07IHRo
ZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwiV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5t
YWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCBTREtST09UPVwiJHtT
REtST09UfVwiXG5maSI7CisJCX07CiAJCTY1QUZBMTcwMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5
IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE1MzYsNiArMTczOSw4IEBACiAJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQThBNDcz
ODYxNTFBODI1QjAwNDEyM0ZGIC8qIEFzc2VydGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDc0MzUxNTFBODI1QjAwNDEyM0ZGIC8qIEF0b21pY1N0cmluZy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3MEVDQTYwRDFCMDI0MjY4MDA0NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUJBMTVGQTE4MjQzNUE2MDBBODJFNjkgLyogQXRvbWlj
U3RyaW5nSW1wbENGLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU2Myw2ICsxNzY4LDcgQEAKIAkJ
CQlBOEE0NzNCMDE1MUE4MjVCMDA0MTIzRkYgLyogZG91YmxlLWNvbnZlcnNpb24uY2MgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzNCQTE1MUE4MjVCMDA0MTIzRkYgLyogZHRvYS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzNCMzE1MUE4MjVCMDA0MTIzRkYgLyogZmFzdC1kdG9hLmNjIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4ODVFMEYxODQ1QUVB
OTAwRjFFM0ZBIC8qIEZhc3RCaXRWZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDcz
QzMxNTFBODI1QjAwNDEyM0ZGIC8qIEZhc3RNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RENFRTIyMDExQ0VBNzU1MTAwMEMyMzk2IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0gaW4gU291
cmNlcyAqLywKQEAgLTE1NzgsNiArMTc4NCw3IEBACiAJCQkJQThBNDczRTkxNTFBODI1QjAwNDEy
M0ZGIC8qIE1ENS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDU0OTdBQzE1ODU3RDAzMDBCNUJD
MzAgLyogTWVkaWFUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0VDMTUxQTgyNUIw
MDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0Yw
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y0MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNv
cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y3MTUxQTgyNUIwMDQxMjNGRiAvKiBP
U0FsbG9jYXRvclBvc2l4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y5MTUxQTgyNUIw
MDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1ODUsNiAr
MTc5Miw3IEBACiAJCQkJMUMxODFDOTMxRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJV
VEYxNi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkZGMTlEQzFCQjMzNEVCMDA4ODZEOTEgLyog
UGFyYWxsZWxIZWxwZXJQb29sLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGODI0QTY4MUI3NDQz
QTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VF
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGOUQzMzYyMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVh
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDNGNjExRjE1NjVGMEY5MDBEQjUxNEEgLyogUkFN
U2l6ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyog
UmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTYxOSw5ICsxODI3LDEzIEBACiAJ
CQkJQThBNDc0NEExNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZGluZy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzQ0RTE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkaW5nUHRocmVhZHMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0NjkxNTFBODI1QjAwNDEyM0ZGIC8qIFVURjguY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRkE0N0M4
QTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkU0NDc5QzFCN0FBQTAzMDA5NDk4RUIgLyogV29yZExvY2suY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURD
RUUyMjAzMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNN
YWMubW0gaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzOTFB
OTYyNDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0QTBB
RDNEMUE5NjI1M0MwMDUzNkRGNiAvKiBXb3JrUXVldWVDb2NvYS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEE0NzQ0NTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMTYyOSw2ICsxODQxLDE3IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CisJCUMyQkE1NDE5MUQ1NzI1QjQwMDBBMzMzMiAv
KiBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CisJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJQzJCQTU0MzMxRDU3
MjkzODAwMEEzMzMyIC8qIHVvcHRpb25zLmMgaW4gU291cmNlcyAqLywKKwkJCQlDMkJBNTQzOTFE
NTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyBpbiBTb3VyY2VzICovLAorCQkJCUMyQkE1NDI1
MUQ1NzI1QzQwMDBBMzMzMiAvKiBnZW5icmsuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJCQTU0
MzYxRDU3MjlGRjAwMEEzMzMyIC8qIHVuZXdkYXRhLmMgaW4gU291cmNlcyAqLywKKwkJCSk7CisJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIC8qIEVuZCBQ
QlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFRhcmdldERlcGVu
ZGVuY3kgc2VjdGlvbiAqLwpAQCAtMTYzNywxMSArMTg2MCwyMSBAQAogCQkJdGFyZ2V0ID0gNUQy
NDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FF
QzMxOEZDRTU3MDAwQjNEN0ZGIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJ
MUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJ
CQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1
QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3
ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJ
NjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3
NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi87CiAJCQl0YXJnZXRQcm94eSA9IDY1QUZB
MjhEMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJ
CUMyQkE1NDNCMUQ1NzJCRUIwMDBBMzMzMiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewor
CQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IEMyQkE1NDFDMUQ1NzI1
QjQwMDBBMzMzMiAvKiBnZW5icmsgKi87CisJCQl0YXJnZXRQcm94eSA9IEMyQkE1NDNBMUQ1NzJC
RUIwMDBBMzMzMiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CisJCX07CiAvKiBFbmQgUEJY
VGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFhDQnVpbGRDb25maWd1cmF0
aW9uIHNlY3Rpb24gKi8KQEAgLTE2NjYsNiArMTg5OSwzMCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQ
cm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8g
PSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9u
UmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2Nv
bmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFS
R0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTFDRDE4Nzg1MUQ1
NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcw
MEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0g
eworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9
IFJlbGVhc2U7CisJCX07CisJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9u
ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJh
dGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2Uu
eGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIk
KFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVE
MjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRD
b25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0
Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOwpAQCAtMTczNiw2ICsx
OTkzLDIwNCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQlDMkJBNTQy
MjFENTcyNUI0MDAwQTMzMzIgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmln
dXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0
NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3Mg
PSB7CisJCQkJQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87CisJCQkJQ0xBTkdfQU5BTFla
RVJfTk9OTlVMTCA9IFlFUzsKKwkJCQlDTEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251
KysweCI7CisJCQkJQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKKwkJCQlDTEFOR19FTkFC
TEVfTU9EVUxFUyA9IFlFUzsKKwkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZRVM7CisJCQkJ
Q0xBTkdfV0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9DT05TVEFO
VF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRElSRUNUX09CSkNfSVNBX1VTQUdF
ID0gWUVTX0VSUk9SOworCQkJCUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKKwkJCQlDTEFO
R19XQVJOX0VOVU1fQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0lOVF9DT05WRVJT
SU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVTX0VSUk9SOwor
CQkJCUNMQU5HX1dBUk5fVU5SRUFDSEFCTEVfQ09ERSA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX19E
VVBMSUNBVEVfTUVUSE9EX01BVENIID0gWUVTOworCQkJCUNPREVfU0lHTl9JREVOVElUWSA9ICIt
IjsKKwkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87CisJCQkJREVCVUdfSU5GT1JNQVRJT05fRk9S
TUFUID0gZHdhcmY7CisJCQkJRU5BQkxFX1NUUklDVF9PQkpDX01TR1NFTkQgPSBZRVM7CisJCQkJ
RU5BQkxFX1RFU1RBQklMSVRZID0gWUVTOworCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0g
Z251OTk7CisJCQkJR0NDX0RZTkFNSUNfTk9fUElDID0gTk87CisJCQkJR0NDX05PX0NPTU1PTl9C
TE9DS1MgPSBZRVM7CisJCQkJR0NDX09QVElNSVpBVElPTl9MRVZFTCA9IDA7CisJCQkJR0NDX1BS
RVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKKwkJCQkJIkRFQlVHPTEiLAorCQkJCQkiVV9TSE9X
X0NQTFVTUExVU19BUEk9MSIsCisJCQkJCSIkKGluaGVyaXRlZCkiLAorCQkJCSk7CisJCQkJR0ND
X1dBUk5fNjRfVE9fMzJfQklUX0NPTlZFUlNJT04gPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9N
SVNTSU5HX1BST1RPVFlQRVMgPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9
IFlFU19FUlJPUjsKKwkJCQlHQ0NfV0FSTl9TSUdOX0NPTVBBUkUgPSBOTzsKKwkJCQlHQ0NfV0FS
Tl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURf
QVVUT1MgPSBZRVNfQUdHUkVTU0lWRTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZ
RVM7CisJCQkJR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU1BQ09TWF9ERVBM
T1lNRU5UX1RBUkdFVCA9IDEwLjExOworCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IFlFUzsK
KwkJCQlPTkxZX0FDVElWRV9BUkNIID0gWUVTOworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdF
VF9OQU1FKSI7CisJCQkJV0FSTklOR19DRkxBR1MgPSAoCisJCQkJCSItV2FsbCIsCisJCQkJCSIt
V2V4dHJhIiwKKwkJCQkJIi1XY2FzdC1xdWFsIiwKKwkJCQkJIi1XY2hhci1zdWJzY3JpcHRzIiwK
KwkJCQkJIi1XZXh0cmEtdG9rZW5zIiwKKwkJCQkJIi1XZm9ybWF0PTIiLAorCQkJCQkiLVdpbml0
LXNlbGYiLAorCQkJCQkiLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUiLAorCQkJCQkiLVdwYWNr
ZWQiLAorCQkJCQkiLVdwb2ludGVyLWFyaXRoIiwKKwkJCQkJIi1XcmVkdW5kYW50LWRlY2xzIiwK
KwkJCQkJIi1XdW5kZWYiLAorCQkJCQkiLVd3cml0ZS1zdHJpbmdzIiwKKwkJCQkJIi1XZXhpdC10
aW1lLWRlc3RydWN0b3JzIiwKKwkJCQkJIi1XZ2xvYmFsLWNvbnN0cnVjdG9ycyIsCisJCQkJCSIt
V3RhdXRvbG9naWNhbC1jb21wYXJlIiwKKwkJCQkJIi1XaW1wbGljaXQtZmFsbHRocm91Z2giLAor
CQkJCQkiLVduby1zaWduLWNvbXBhcmUiLAorCQkJCSk7CisJCQl9OworCQkJbmFtZSA9IERlYnVn
OworCQl9OworCQlDMkJBNTQyMzFENTcyNUI0MDAwQTMzMzIgLyogUmVsZWFzZSAqLyA9IHsKKwkJ
CWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVu
Y2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICov
OworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlBTFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMgPSBO
TzsKKwkJCQlDTEFOR19BTkFMWVpFUl9OT05OVUxMID0gWUVTOworCQkJCUNMQU5HX0NYWF9MQU5H
VUFHRV9TVEFOREFSRCA9ICJnbnUrKzB4IjsKKwkJCQlDTEFOR19DWFhfTElCUkFSWSA9ICJsaWJj
KysiOworCQkJCUNMQU5HX0VOQUJMRV9NT0RVTEVTID0gWUVTOworCQkJCUNMQU5HX0VOQUJMRV9P
QkpDX0FSQyA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0JPT0xfQ09OVkVSU0lPTiA9IFlFUzsKKwkJ
CQlDTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9E
SVJFQ1RfT0JKQ19JU0FfVVNBR0UgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9FTVBUWV9C
T0RZID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRU5VTV9DT05WRVJTSU9OID0gWUVTOworCQkJCUNM
QU5HX1dBUk5fSU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9PQkpDX1JPT1Rf
Q0xBU1MgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9VTlJFQUNIQUJMRV9DT0RFID0gWUVT
OworCQkJCUNMQU5HX1dBUk5fX0RVUExJQ0FURV9NRVRIT0RfTUFUQ0ggPSBZRVM7CisJCQkJQ09E
RV9TSUdOX0lERU5USVRZID0gIi0iOworCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBOTzsKKwkJCQlE
RUJVR19JTkZPUk1BVElPTl9GT1JNQVQgPSAiZHdhcmYtd2l0aC1kc3ltIjsKKwkJCQlFTkFCTEVf
TlNfQVNTRVJUSU9OUyA9IE5POworCQkJCUVOQUJMRV9TVFJJQ1RfT0JKQ19NU0dTRU5EID0gWUVT
OworCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251OTk7CisJCQkJR0NDX05PX0NPTU1P
Tl9CTE9DS1MgPSBZRVM7CisJCQkJR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKKwkJ
CQkJIlVfU0hPV19DUExVU1BMVVNfQVBJPTEiLAorCQkJCQkiJChERUJVR19ERUZJTkVTKSIsCisJ
CQkJCSIkKGluaGVyaXRlZCkiLAorCQkJCSk7CisJCQkJR0NDX1dBUk5fNjRfVE9fMzJfQklUX0NP
TlZFUlNJT04gPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9NSVNTSU5HX1BST1RPVFlQRVMgPSBO
TzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9IFlFU19FUlJPUjsKKwkJCQlHQ0Nf
V0FSTl9TSUdOX0NPTVBBUkUgPSBOTzsKKwkJCQlHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9S
ID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVNfQUdHUkVTU0lW
RTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5V
U0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjEx
OworCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IE5POworCQkJCVBST0RVQ1RfTkFNRSA9ICIk
KFRBUkdFVF9OQU1FKSI7CisJCQkJV0FSTklOR19DRkxBR1MgPSAoCisJCQkJCSItV2FsbCIsCisJ
CQkJCSItV2V4dHJhIiwKKwkJCQkJIi1XY2FzdC1xdWFsIiwKKwkJCQkJIi1XY2hhci1zdWJzY3Jp
cHRzIiwKKwkJCQkJIi1XZXh0cmEtdG9rZW5zIiwKKwkJCQkJIi1XZm9ybWF0PTIiLAorCQkJCQki
LVdpbml0LXNlbGYiLAorCQkJCQkiLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUiLAorCQkJCQki
LVdwYWNrZWQiLAorCQkJCQkiLVdwb2ludGVyLWFyaXRoIiwKKwkJCQkJIi1XcmVkdW5kYW50LWRl
Y2xzIiwKKwkJCQkJIi1XdW5kZWYiLAorCQkJCQkiLVd3cml0ZS1zdHJpbmdzIiwKKwkJCQkJIi1X
ZXhpdC10aW1lLWRlc3RydWN0b3JzIiwKKwkJCQkJIi1XZ2xvYmFsLWNvbnN0cnVjdG9ycyIsCisJ
CQkJCSItV3RhdXRvbG9naWNhbC1jb21wYXJlIiwKKwkJCQkJIi1XaW1wbGljaXQtZmFsbHRocm91
Z2giLAorCQkJCQkiLVduby1zaWduLWNvbXBhcmUiLAorCQkJCSk7CisJCQl9OworCQkJbmFtZSA9
IFJlbGVhc2U7CisJCX07CisJCUMyQkE1NDI0MUQ1NzI1QjQwMDBBMzMzMiAvKiBQcm9kdWN0aW9u
ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJh
dGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2Uu
eGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUFMV0FZU19TRUFSQ0hfVVNF
Ul9QQVRIUyA9IE5POworCQkJCUNMQU5HX0FOQUxZWkVSX05PTk5VTEwgPSBZRVM7CisJCQkJQ0xB
TkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJEID0gImdudSsrMHgiOworCQkJCUNMQU5HX0NYWF9MSUJS
QVJZID0gImxpYmMrKyI7CisJCQkJQ0xBTkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisJCQkJQ0xB
TkdfRU5BQkxFX09CSkNfQVJDID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQk9PTF9DT05WRVJTSU9O
ID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQ09OU1RBTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlD
TEFOR19XQVJOX0RJUkVDVF9PQkpDX0lTQV9VU0FHRSA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19X
QVJOX0VNUFRZX0JPRFkgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9FTlVNX0NPTlZFUlNJT04gPSBZ
RVM7CisJCQkJQ0xBTkdfV0FSTl9JTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJO
X09CSkNfUk9PVF9DTEFTUyA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX1VOUkVBQ0hBQkxF
X0NPREUgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9fRFVQTElDQVRFX01FVEhPRF9NQVRDSCA9IFlF
UzsKKwkJCQlDT0RFX1NJR05fSURFTlRJVFkgPSAiLSI7CisJCQkJQ09QWV9QSEFTRV9TVFJJUCA9
IE5POworCQkJCURFQlVHX0lORk9STUFUSU9OX0ZPUk1BVCA9ICJkd2FyZi13aXRoLWRzeW0iOwor
CQkJCUVOQUJMRV9OU19BU1NFUlRJT05TID0gTk87CisJCQkJRU5BQkxFX1NUUklDVF9PQkpDX01T
R1NFTkQgPSBZRVM7CisJCQkJR0NDX0NfTEFOR1VBR0VfU1RBTkRBUkQgPSBnbnU5OTsKKwkJCQlH
Q0NfTk9fQ09NTU9OX0JMT0NLUyA9IFlFUzsKKwkJCQlHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJ
T05TID0gKAorCQkJCQkiVV9TSE9XX0NQTFVTUExVU19BUEk9MSIsCisJCQkJCSIkKERFQlVHX0RF
RklORVMpIiwKKwkJCQkJIiQoaW5oZXJpdGVkKSIsCisJCQkJKTsKKwkJCQlHQ0NfV0FSTl82NF9U
T18zMl9CSVRfQ09OVkVSU0lPTiA9IE5POworCQkJCUdDQ19XQVJOX0FCT1VUX01JU1NJTkdfUFJP
VE9UWVBFUyA9IE5POworCQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9S
OworCQkJCUdDQ19XQVJOX1NJR05fQ09NUEFSRSA9IE5POworCQkJCUdDQ19XQVJOX1VOREVDTEFS
RURfU0VMRUNUT1IgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlF
U19BR0dSRVNTSVZFOworCQkJCUdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKKwkJCQlH
Q0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUID0gMTAuMTE7CisJCQkJTVRMX0VOQUJMRV9ERUJVR19JTkZPID0gTk87CisJCQkJUFJPRFVD
VF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCQlXQVJOSU5HX0NGTEFHUyA9ICgKKwkJCQkJ
Ii1XYWxsIiwKKwkJCQkJIi1XZXh0cmEiLAorCQkJCQkiLVdjYXN0LXF1YWwiLAorCQkJCQkiLVdj
aGFyLXN1YnNjcmlwdHMiLAorCQkJCQkiLVdleHRyYS10b2tlbnMiLAorCQkJCQkiLVdmb3JtYXQ9
MiIsCisJCQkJCSItV2luaXQtc2VsZiIsCisJCQkJCSItV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0
ZSIsCisJCQkJCSItV3BhY2tlZCIsCisJCQkJCSItV3BvaW50ZXItYXJpdGgiLAorCQkJCQkiLVdy
ZWR1bmRhbnQtZGVjbHMiLAorCQkJCQkiLVd1bmRlZiIsCisJCQkJCSItV3dyaXRlLXN0cmluZ3Mi
LAorCQkJCQkiLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMiLAorCQkJCQkiLVdnbG9iYWwtY29uc3Ry
dWN0b3JzIiwKKwkJCQkJIi1XdGF1dG9sb2dpY2FsLWNvbXBhcmUiLAorCQkJCQkiLVdpbXBsaWNp
dC1mYWxsdGhyb3VnaCIsCisJCQkJCSItV25vLXNpZ24tY29tcGFyZSIsCisJCQkJKTsKKwkJCX07
CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIC8qIEVuZCBYQ0J1aWxkQ29uZmlndXJhdGlv
biBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFhDQ29uZmlndXJhdGlvbkxpc3Qgc2VjdGlvbiAqLwpA
QCAtMTc0OSw2ICsyMjA0LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9
IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkx
Q0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQ
QlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0Nv
bmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkxQ0QxODc4
NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3
REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1
Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwor
CQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdC
NUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJv
amVjdCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWls
ZENvbmZpZ3VyYXRpb25zID0gKApAQCAtMTc3OSw2ICsyMjQ0LDE2IEBACiAJCQlkZWZhdWx0Q29u
ZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQ
cm9kdWN0aW9uOwogCQl9OworCQlDMkJBNTQyMTFENTcyNUI0MDAwQTMzMzIgLyogQnVpbGQgY29u
ZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgImdlbmJyayIgKi8gPSB7CisJCQlp
c2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJ
CQlDMkJBNTQyMjFENTcyNUI0MDAwQTMzMzIgLyogRGVidWcgKi8sCisJCQkJQzJCQTU0MjMxRDU3
MjVCNDAwMEEzMzMyIC8qIFJlbGVhc2UgKi8sCisJCQkJQzJCQTU0MjQxRDU3MjVCNDAwMEEzMzMy
IC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2li
bGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsK
IC8qIEVuZCBYQ0NvbmZpZ3VyYXRpb25MaXN0IHNlY3Rpb24gKi8KIAl9OwogCXJvb3RPYmplY3Qg
PSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBvYmplY3QgKi87CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jya2l0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvYnJraXRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhYTVlNTUyNzk2MDkwZWFlYmNkN2NlN2I3ZDI3
NWFhOGIzNzc1YjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jy
a2l0ZXIuaApAQCAtMCwwICsxLDY1NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
ICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgYnJraXRlci5oCisqCisqIE1vZGlmaWNh
dGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9u
CisqICAgMDIvMTgvOTcgICAgYWxpdSAgICAgICAgQWRkZWQgdHlwZWRlZiBmb3IgVGV4dENvdW50
LiAgTWFkZSBET05FIGNvbnN0LgorKiAgIDA1LzA3Lzk3ICAgIGFsaXUgICAgICAgIEZpeGVkIERM
TCBkZWNsYXJhdGlvbi4KKyogICAwNy8wOS85NyAgICBqZml0eiAgICAgICBSZW5hbWVkIEJyZWFr
SXRlcmF0b3IgYW5kIGludGVyZmFjZSBzeW5jZWQgd2l0aCBKREsKKyogICAwOC8xMS85OCAgICBo
ZWxlbmEgICAgICBTeW5jLXVwIEpESzEuMi4KKyogICAwMS8xMy8yMDAwICBoZWxlbmEgICAgICBB
ZGRlZCBVRXJyb3JDb2RlIHBhcmFtZXRlciB0byBjcmVhdGVYWFhJbnN0YW5jZSBtZXRob2RzLgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgQlJLSVRFUl9ICisjZGVmaW5l
IEJSS0lURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworLyoqCisgKiBcZmls
ZQorICogXGJyaWVmIEMrKyBBUEk6IEJyZWFrIEl0ZXJhdG9yLgorICovCisKKyNpZiBVQ09ORklH
X05PX0JSRUFLX0lURVJBVElPTgorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKgorICogQWxsb3cg
dGhlIGRlY2xhcmF0aW9uIG9mIEFQSXMgd2l0aCBwb2ludGVycyB0byBCcmVha0l0ZXJhdG9yCisg
KiBldmVuIHdoZW4gYnJlYWsgaXRlcmF0aW9uIGlzIHJlbW92ZWQgZnJvbSB0aGUgYnVpbGQuCisg
Ki8KK2NsYXNzIEJyZWFrSXRlcmF0b3I7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZWxzZQorCisj
aW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIK
KyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS9sb2NpZC5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdWJyay5oIgorI2luY2x1ZGUgInVuaWNvZGUvc3RyZW51bS5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdXRleHQuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VtaXNjLmgi
CisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogVGhlIEJyZWFrSXRlcmF0b3IgY2xhc3Mg
aW1wbGVtZW50cyBtZXRob2RzIGZvciBmaW5kaW5nIHRoZSBsb2NhdGlvbgorICogb2YgYm91bmRh
cmllcyBpbiB0ZXh0LiBCcmVha0l0ZXJhdG9yIGlzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MuCisg
KiBJbnN0YW5jZXMgb2YgQnJlYWtJdGVyYXRvciBtYWludGFpbiBhIGN1cnJlbnQgcG9zaXRpb24g
YW5kIHNjYW4gb3ZlcgorICogdGV4dCByZXR1cm5pbmcgdGhlIGluZGV4IG9mIGNoYXJhY3RlcnMg
d2hlcmUgYm91bmRhcmllcyBvY2N1ci4KKyAqIDxwPgorICogTGluZSBib3VuZGFyeSBhbmFseXNp
cyBkZXRlcm1pbmVzIHdoZXJlIGEgdGV4dCBzdHJpbmcgY2FuIGJlIGJyb2tlbgorICogd2hlbiBs
aW5lLXdyYXBwaW5nLiBUaGUgbWVjaGFuaXNtIGNvcnJlY3RseSBoYW5kbGVzIHB1bmN0dWF0aW9u
IGFuZAorICogaHlwaGVuYXRlZCB3b3Jkcy4KKyAqIDxwPgorICogU2VudGVuY2UgYm91bmRhcnkg
YW5hbHlzaXMgYWxsb3dzIHNlbGVjdGlvbiB3aXRoIGNvcnJlY3QKKyAqIGludGVycHJldGF0aW9u
IG9mIHBlcmlvZHMgd2l0aGluIG51bWJlcnMgYW5kIGFiYnJldmlhdGlvbnMsIGFuZAorICogdHJh
aWxpbmcgcHVuY3R1YXRpb24gbWFya3Mgc3VjaCBhcyBxdW90YXRpb24gbWFya3MgYW5kIHBhcmVu
dGhlc2VzLgorICogPHA+CisgKiBXb3JkIGJvdW5kYXJ5IGFuYWx5c2lzIGlzIHVzZWQgYnkgc2Vh
cmNoIGFuZCByZXBsYWNlIGZ1bmN0aW9ucywgYXMKKyAqIHdlbGwgYXMgd2l0aGluIHRleHQgZWRp
dGluZyBhcHBsaWNhdGlvbnMgdGhhdCBhbGxvdyB0aGUgdXNlciB0bworICogc2VsZWN0IHdvcmRz
IHdpdGggYSBkb3VibGUgY2xpY2suIFdvcmQgc2VsZWN0aW9uIHByb3ZpZGVzIGNvcnJlY3QKKyAq
IGludGVycHJldGF0aW9uIG9mIHB1bmN0dWF0aW9uIG1hcmtzIHdpdGhpbiBhbmQgZm9sbG93aW5n
CisgKiB3b3Jkcy4gQ2hhcmFjdGVycyB0aGF0IGFyZSBub3QgcGFydCBvZiBhIHdvcmQsIHN1Y2gg
YXMgc3ltYm9scyBvcgorICogcHVuY3R1YXRpb24gbWFya3MsIGhhdmUgd29yZC1icmVha3Mgb24g
Ym90aCBzaWRlcy4KKyAqIDxwPgorICogQ2hhcmFjdGVyIGJvdW5kYXJ5IGFuYWx5c2lzIGFsbG93
cyB1c2VycyB0byBpbnRlcmFjdCB3aXRoCisgKiBjaGFyYWN0ZXJzIGFzIHRoZXkgZXhwZWN0IHRv
LCBmb3IgZXhhbXBsZSwgd2hlbiBtb3ZpbmcgdGhlIGN1cnNvcgorICogdGhyb3VnaCBhIHRleHQg
c3RyaW5nLiBDaGFyYWN0ZXIgYm91bmRhcnkgYW5hbHlzaXMgcHJvdmlkZXMgY29ycmVjdAorICog
bmF2aWdhdGlvbiBvZiB0aHJvdWdoIGNoYXJhY3RlciBzdHJpbmdzLCByZWdhcmRsZXNzIG9mIGhv
dyB0aGUKKyAqIGNoYXJhY3RlciBpcyBzdG9yZWQuICBGb3IgZXhhbXBsZSwgYW4gYWNjZW50ZWQg
Y2hhcmFjdGVyIG1pZ2h0IGJlCisgKiBzdG9yZWQgYXMgYSBiYXNlIGNoYXJhY3RlciBhbmQgYSBk
aWFjcml0aWNhbCBtYXJrLiBXaGF0IHVzZXJzCisgKiBjb25zaWRlciB0byBiZSBhIGNoYXJhY3Rl
ciBjYW4gZGlmZmVyIGJldHdlZW4gbGFuZ3VhZ2VzLgorICogPHA+CisgKiBUaGUgdGV4dCBib3Vu
ZGFyeSBwb3NpdGlvbnMgYXJlIGZvdW5kIGFjY29yZGluZyB0byB0aGUgcnVsZXMKKyAqIGRlc2Ny
aWJlZCBpbiBVbmljb2RlIFN0YW5kYXJkIEFubmV4ICMyOSwgVGV4dCBCb3VuZGFyaWVzLCBhbmQK
KyAqIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXggIzE0LCBMaW5lIEJyZWFraW5nIFByb3BlcnRpZXMu
ICBUaGVzZQorICogYXJlIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9y
dHMvdHIxNC8gYW5kCisgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIyOS8uCisg
KiA8cD4KKyAqIEluIGFkZGl0aW9uIHRvIHRoZSBDKysgQVBJIGRlZmluZWQgaW4gdGhpcyBoZWFk
ZXIgZmlsZSwgYQorICogcGxhaW4gQyBBUEkgd2l0aCBlcXVpdmFsZW50IGZ1bmN0aW9uYWxpdHkg
aXMgZGVmaW5lZCBpbiB0aGUKKyAqIGZpbGUgdWJyay5oCisgKiA8cD4KKyAqIENvZGUgc25pcHBl
dHMgaWxsdXN0cmF0aW5nIHRoZSB1c2Ugb2YgdGhlIEJyZWFrIEl0ZXJhdG9yIEFQSXMKKyAqIGFy
ZSBhdmFpbGFibGUgaW4gdGhlIElDVSBVc2VyIEd1aWRlLAorICogaHR0cDovL2ljdS1wcm9qZWN0
Lm9yZy91c2VyZ3VpZGUvYm91bmRhcnlBbmFseXNpcy5odG1sCisgKiBhbmQgaW4gdGhlIHNhbXBs
ZSBwcm9ncmFtIGljdS9zb3VyY2Uvc2FtcGxlcy9icmVhay9icmVhay5jcHAKKyAqCisgKi8KK2Ns
YXNzIFVfQ09NTU9OX0FQSSBCcmVha0l0ZXJhdG9yIDogcHVibGljIFVPYmplY3QgeworcHVibGlj
OgorICAgIC8qKgorICAgICAqICBkZXN0cnVjdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgfkJyZWFrSXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAq
IFJldHVybiB0cnVlIGlmIGFub3RoZXIgb2JqZWN0IGlzIHNlbWFudGljYWxseSBlcXVhbCB0byB0
aGlzCisgICAgICogb25lLiBUaGUgb3RoZXIgb2JqZWN0IHNob3VsZCBiZSBhbiBpbnN0YW5jZSBv
ZiB0aGUgc2FtZSBzdWJjbGFzcyBvZgorICAgICAqIEJyZWFrSXRlcmF0b3IuIE9iamVjdHMgb2Yg
ZGlmZmVyZW50IHN1YmNsYXNzZXMgYXJlIGNvbnNpZGVyZWQKKyAgICAgKiB1bmVxdWFsLgorICAg
ICAqIDxQPgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgQnJlYWtJdGVyYXRvciBpcyBhdCB0
aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUKKyAgICAgKiBzYW1lIHRleHQsIGFuZCBpcyB0aGUgc2Ft
ZSBjbGFzcyBhbmQgdHlwZSAod29yZCwgbGluZSwgZXRjLikgb2YKKyAgICAgKiBCcmVha0l0ZXJh
dG9yLCBhcyB0aGUgYXJndW1lbnQuICBUZXh0IGlzIGNvbnNpZGVyZWQgdGhlIHNhbWUgaWYKKyAg
ICAgKiBpdCBjb250YWlucyB0aGUgc2FtZSBjaGFyYWN0ZXJzLCBpdCBuZWVkIG5vdCBiZSB0aGUg
c2FtZQorICAgICAqIG9iamVjdCwgYW5kIHN0eWxlcyBhcmUgbm90IGNvbnNpZGVyZWQuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09
KGNvbnN0IEJyZWFrSXRlcmF0b3ImKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHRoZSBjb21wbGVtZW50IG9mIHRoZSByZXN1bHQgb2Ygb3BlcmF0b3I9PQorICAgICAqIEBw
YXJhbSByaHMgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGluZXF1YWxpdHkK
KyAgICAgKiBAcmV0dXJuIHRoZSBjb21wbGVtZW50IG9mIHRoZSByZXN1bHQgb2Ygb3BlcmF0b3I9
PQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29sIG9wZXJhdG9yIT0o
Y29uc3QgQnJlYWtJdGVyYXRvciYgcmhzKSBjb25zdCB7IHJldHVybiAhb3BlcmF0b3I9PShyaHMp
OyB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBwb2x5bW9ycGhpYyBjb3B5IG9mIHRoaXMg
b2JqZWN0LiAgVGhpcyBpcyBhbiBhYnN0cmFjdAorICAgICAqIG1ldGhvZCB3aGljaCBzdWJjbGFz
c2VzIGltcGxlbWVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIEJyZWFrSXRlcmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAg
ICAqIFJldHVybiBhIHBvbHltb3JwaGljIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4gRGlmZmVy
ZW50IHN1YmNsYXNzZXMKKyAgICAgKiB3aWxsIHJldHVybiBkaXN0aW5jdCB1bmVxdWFsIHZhbHVl
cy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lE
IGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFJl
dHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBDaGFyYWN0ZXJJdGVy
YXRvciYgZ2V0VGV4dCh2b2lkKSBjb25zdCA9IDA7CisKKworICAgIC8qKgorICAgICAgKiAgR2V0
IGEgVVRleHQgZm9yIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAgKiAgVGhlIHJldHVy
bmVkIFVUZXh0IGlzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgVVRleHQgdXNlZCBpbnRlcm5hbGx5
CisgICAgICAqICBieSB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24uICBJdCBjYW4g
c2FmZWx5IGJlIHVzZWQgdG8KKyAgICAgICogIGFjY2VzcyB0aGUgdGV4dCB3aXRob3V0IGltcGFj
dGluZyBhbnkgYnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucywKKyAgICAgICogIGJ1dCB0aGUgdW5k
ZXJseWluZyB0ZXh0IGl0c2VsZiBtdXN0IG5vdCBiZSBhbHRlcmVkLgorICAgICAgKgorICAgICAg
KiBAcGFyYW0gZmlsbEluIEEgVVRleHQgdG8gYmUgZmlsbGVkIGluLiAgSWYgTlVMTCwgYSBuZXcg
VVRleHQgd2lsbCBiZQorICAgICAgKiAgICAgICAgICAgYWxsb2NhdGVkIHRvIGhvbGQgdGhlIHJl
c3VsdC4KKyAgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMuCisg
ICAgICAqIEByZXR1cm4gICBUaGUgY3VycmVudCBVVGV4dCBmb3IgdGhpcyBicmVhayBpdGVyYXRv
ci4gIElmIGFuIGlucHV0CisgICAgICAqICAgICAgICAgICBVVGV4dCB3YXMgcHJvdmlkZWQsIGl0
IHdpbGwgYWx3YXlzIGJlIHJldHVybmVkLgorICAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAg
ICovCisgICAgIHZpcnR1YWwgVVRleHQgKmdldFVUZXh0KFVUZXh0ICpmaWxsSW4sIFVFcnJvckNv
ZGUgJnN0YXR1cykgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogQ2hhbmdlIHRoZSB0ZXh0
IG92ZXIgd2hpY2ggdGhpcyBvcGVyYXRlcy4gVGhlIHRleHQgYm91bmRhcnkgaXMKKyAgICAgKiBy
ZXNldCB0byB0aGUgc3RhcnQuCisgICAgICogQHBhcmFtIHRleHQgVGhlIFVuaWNvZGVTdHJpbmcg
dXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCB2b2lkICBzZXRUZXh0KGNvbnN0IFVuaWNvZGVTdHJpbmcgJnRleHQpID0g
MDsKKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBicmVhayBpdGVyYXRvciB0byBvcGVyYXRl
IG92ZXIgdGhlIHRleHQgcmVwcmVzZW50ZWQgYnkKKyAgICAgKiB0aGUgVVRleHQuICBUaGUgaXRl
cmF0b3IgcG9zaXRpb24gaXMgcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqCisgICAgICogVGhp
cyBmdW5jdGlvbiBtYWtlcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIHN1cHBsaWVkIFVUZXh0LiAg
VGhpcyBtZWFucworICAgICAqIHRoYXQgdGhlIGNhbGxlciBpcyBmcmVlIHRvIGltbWVkaWF0ZWx5
IGNsb3NlIG9yIG90aGVyd2lzZSByZXVzZSB0aGUKKyAgICAgKiBVdGV4dCB0aGF0IHdhcyBwYXNz
ZWQgYXMgYSBwYXJhbWV0ZXIsIGJ1dCB0aGF0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmCisg
ICAgICogbXVzdCBub3QgYmUgYWx0ZXJlZCB3aGlsZSBiZWluZyByZWZlcmVuY2VkIGJ5IHRoZSBi
cmVhayBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIEFsbCBpbmRleCBwb3NpdGlvbnMgcmV0dXJu
ZWQgYnkgYnJlYWsgaXRlcmF0b3IgZnVuY3Rpb25zIGFyZQorICAgICAqIG5hdGl2ZSBpbmRpY2Vz
IGZyb20gdGhlIFVUZXh0LiBGb3IgZXhhbXBsZSwgd2hlbiBicmVha2luZyBVVEYtOAorICAgICAq
IGVuY29kZWQgdGV4dCwgdGhlIGJyZWFrIHBvc2l0aW9ucyByZXR1cm5lZCBieSBuZXh0KCksIHBy
ZXZpb3VzKCksIGV0Yy4KKyAgICAgKiB3aWxsIGJlIFVURi04IHN0cmluZyBpbmRpY2VzLCBub3Qg
VVRGLTE2IHBvc2l0aW9ucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBVVGV4dCB1
c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFu
eSBlcnJvciBjb2Rlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIHZvaWQgIHNldFRleHQoVVRleHQgKnRleHQsIFVFcnJvckNvZGUgJnN0YXR1cykgPSAwOwor
CisgICAgLyoqCisgICAgICogQ2hhbmdlIHRoZSB0ZXh0IG92ZXIgd2hpY2ggdGhpcyBvcGVyYXRl
cy4gVGhlIHRleHQgYm91bmRhcnkgaXMKKyAgICAgKiByZXNldCB0byB0aGUgc3RhcnQuCisgICAg
ICogTm90ZSB0aGF0IHNldFRleHQoVVRleHQgKikgcHJvdmlkZXMgc2ltaWxhciBmdW5jdGlvbmFs
aXR5IHRvIHRoaXMgZnVuY3Rpb24sCisgICAgICogYW5kIGlzIG1vcmUgZWZmaWNpZW50LgorICAg
ICAqIEBwYXJhbSBpdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgdXNlZCB0byBjaGFuZ2UgdGhlIHRl
eHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBh
ZG9wdFRleHQoQ2hhcmFjdGVySXRlcmF0b3IqIGl0KSA9IDA7CisKKyAgICBlbnVtIHsKKyAgICAg
ICAgLyoqCisgICAgICAgICAqIERPTkUgaXMgcmV0dXJuZWQgYnkgcHJldmlvdXMoKSBhbmQgbmV4
dCgpIGFmdGVyIGFsbCB2YWxpZAorICAgICAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1
cm5lZC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBE
T05FID0gKGludDMyX3QpLTEKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3Vy
cmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgcG9z
aXRpb24gemVyby4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZzZXQgb2YgdGhlIGJlZ2lubmluZyBv
ZiB0aGUgdGV4dCwgemVyby4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgZmlyc3Qodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRo
ZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgaW5kZXggaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBs
YXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCBiZWluZyBzY2FubmVkLgorICAgICAqIEByZXR1cm4g
VGhlIGluZGV4IGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRl
eHQgYmVpbmcgc2Nhbm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgbGFzdCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhl
IGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIGN1cnJlbnQg
Ym91bmRhcnkuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBwcmV2
aW91cyB0ZXh0IGJvdW5kYXJ5IG9yIERPTkUgaWYgYWxsCisgICAgICogYm91bmRhcmllcyBoYXZl
IGJlZW4gcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBpbnQzMl90IHByZXZpb3VzKHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIEFkdmFu
Y2UgdGhlIGl0ZXJhdG9yIHRvIHRoZSBib3VuZGFyeSBmb2xsb3dpbmcgdGhlIGN1cnJlbnQgYm91
bmRhcnkuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBuZXh0IHRl
eHQgYm91bmRhcnkgb3IgRE9ORSBpZiBhbGwKKyAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiBy
ZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGlu
dDMyX3QgbmV4dCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gY2hhcmFjdGVy
IGluZGV4IG9mIHRoZSBjdXJyZW50IGludGVyYXRvciBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQu
CisgICAgICogQHJldHVybiBUaGUgYm91bmRhcnkgbW9zdCByZWNlbnRseSByZXR1cm5lZC4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgY3VycmVu
dCh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlIHRoZSBpdGVyYXRv
ciB0byB0aGUgZmlyc3QgYm91bmRhcnkgZm9sbG93aW5nIHRoZSBzcGVjaWZpZWQgb2Zmc2V0Lgor
ICAgICAqIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhbHdheXMgZ3JlYXRlciB0aGFuIHRoZSBvZmZz
ZXQgb3IKKyAgICAgKiB0aGUgdmFsdWUgQnJlYWtJdGVyYXRvci5ET05FCisgICAgICogQHBhcmFt
IG9mZnNldCB0aGUgb2Zmc2V0IHRvIGJlZ2luIHNjYW5uaW5nLgorICAgICAqIEByZXR1cm4gVGhl
IGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmb2xsb3dpbmcoaW50MzJf
dCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRp
b24gdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHByZWNlZGluZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4K
KyAgICAgKiBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgYWx3YXlzIHNtYWxsZXIgdGhhbiB0aGUgb2Zm
c2V0IG9yCisgICAgICogdGhlIHZhbHVlIEJyZWFrSXRlcmF0b3IuRE9ORQorICAgICAqIEBwYXJh
bSBvZmZzZXQgdGhlIG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KKyAgICAgKiBAcmV0dXJuIFRo
ZSBmaXJzdCBib3VuZGFyeSBiZWZvcmUgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHByZWNlZGluZyhpbnQz
Ml90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHNw
ZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogQXMgYSBzaWRl
IGVmZmVjdCwgdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdG9yIGlzIHNldAorICAg
ICAqIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBhdCBvciBmb2xsb3dpbmcgdGhlIHNw
ZWNpZmllZCBvZmZzZXQuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNr
LgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9u
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNC
b3VuZGFyeShpbnQzMl90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBp
dGVyYXRvciBwb3NpdGlvbiB0byB0aGUgbnRoIGJvdW5kYXJ5IGZyb20gdGhlIGN1cnJlbnQgYm91
bmRhcnkKKyAgICAgKiBAcGFyYW0gbiB0aGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgdG8gbW92ZSBi
eS4gIEEgdmFsdWUgb2YgMAorICAgICAqIGRvZXMgbm90aGluZy4gIE5lZ2F0aXZlIHZhbHVlcyBt
b3ZlIHRvIHByZXZpb3VzIGJvdW5kYXJpZXMKKyAgICAgKiBhbmQgcG9zaXRpdmUgdmFsdWVzIG1v
dmUgdG8gbGF0ZXIgYm91bmRhcmllcy4KKyAgICAgKiBAcmV0dXJuIFRoZSBuZXcgaXRlcmF0b3Ig
cG9zaXRpb24sIG9yCisgICAgICogRE9ORSBpZiB0aGVyZSBhcmUgZmV3ZXIgdGhhbiB8bnwgYm91
bmRhcmllcyBpbiB0aGUgc3BlY2ZpZWQgZGlyZWN0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KGludDMyX3QgbikgPSAwOworCisg
ICAvKioKKyAgICAgKiBGb3IgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcnMsIHJldHVybiB0aGUgc3Rh
dHVzIHRhZyBmcm9tIHRoZSAKKyAgICAgKiBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUg
bW9zdCByZWNlbnRseQorICAgICAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIDxw
PgorICAgICAqIEZvciBicmVhayBpdGVyYXRvciB0eXBlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IGEg
cnVsZSBzdGF0dXMsCisgICAgICogYSBkZWZhdWx0IHZhbHVlIG9mIDAgaXMgcmV0dXJuZWQuCisg
ICAgICogPHA+CisgICAgICogQHJldHVybiB0aGUgc3RhdHVzIGZyb20gdGhlIGJyZWFrIHJ1bGUg
dGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogICAgICAgICByZXR1cm5l
ZCBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAc2VlIFJ1bGVCYXNlQnJlYWtJdGVyYXRvcjo6Z2V0
UnVsZVN0YXR1cygpCisgICAgICogQHNlZSBVV29yZEJyZWFrCisgICAgICogQHN0YWJsZSBJQ1Ug
NTIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1cygpIGNvbnN0Owor
CisgICAvKioKKyAgICAqIEZvciBSdWxlQmFzZWRCcmVha0l0ZXJhdG9ycywgZ2V0IHRoZSBzdGF0
dXMgKHRhZykgdmFsdWVzIGZyb20gdGhlIGJyZWFrIHJ1bGUocykgCisgICAgKiB0aGF0IGRldGVy
bWluZWQgdGhlIG1vc3QgcmVjZW50bHkgcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgKiA8
cD4KKyAgICAqIEZvciBicmVhayBpdGVyYXRvciB0eXBlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IHJ1
bGUgc3RhdHVzLAorICAgICogbm8gdmFsdWVzIGFyZSByZXR1cm5lZC4KKyAgICAqIDxwPgorICAg
ICogVGhlIHJldHVybmVkIHN0YXR1cyB2YWx1ZShzKSBhcmUgc3RvcmVkIGludG8gYW4gYXJyYXkg
cHJvdmlkZWQgYnkgdGhlIGNhbGxlci4KKyAgICAqIFRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiBz
b3J0ZWQgKGFzY2VuZGluZykgb3JkZXIuCisgICAgKiBJZiB0aGUgY2FwYWNpdHkgb2YgdGhlIG91
dHB1dCBhcnJheSBpcyBpbnN1ZmZpY2llbnQgdG8gaG9sZCB0aGUgZGF0YSwKKyAgICAqICB0aGUg
b3V0cHV0IHdpbGwgYmUgdHJ1bmNhdGVkIHRvIHRoZSBhdmFpbGFibGUgbGVuZ3RoLCBhbmQgYQor
ICAgICogIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SIHdpbGwgYmUgc2lnbmFsZWQuCisgICAgKiA8
cD4KKyAgICAqIEBzZWUgUnVsZUJhc2VCcmVha0l0ZXJhdG9yOjpnZXRSdWxlU3RhdHVzVmVjCisg
ICAgKgorICAgICogQHBhcmFtIGZpbGxJblZlYyBhbiBhcnJheSB0byBiZSBmaWxsZWQgaW4gd2l0
aCB0aGUgc3RhdHVzIHZhbHVlcy4KKyAgICAqIEBwYXJhbSBjYXBhY2l0eSAgdGhlIGxlbmd0aCBv
ZiB0aGUgc3VwcGxpZWQgdmVjdG9yLiAgQSBsZW5ndGggb2YgemVybyBjYXVzZXMKKyAgICAqICAg
ICAgICAgICAgICAgICAgdGhlIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXR1
cyB2YWx1ZXMsIGluIHRoZQorICAgICogICAgICAgICAgICAgICAgICBub3JtYWwgd2F5LCB3aXRo
b3V0IGF0dGVtdHBpbmcgdG8gc3RvcmUgYW55IHZhbHVlcy4KKyAgICAqIEBwYXJhbSBzdGF0dXMg
ICAgcmVjZWl2ZXMgZXJyb3IgY29kZXMuCisgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBudW1i
ZXIgb2YgcnVsZSBzdGF0dXMgdmFsdWVzIGZyb20gcnVsZXMgdGhhdCBkZXRlcm1pbmVkCisgICAg
KiAgICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJlY2VudCBib3VuZGFyeSByZXR1cm5lZCBieSB0
aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgKiAgICAgICAgICAgICAgICAgIEluIHRoZSBldmVudCBv
ZiBhIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SLCB0aGUgcmV0dXJuIHZhbHVlCisgICAgKiAgICAg
ICAgICAgICAgICAgIGlzIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcyB0aGF0IHdl
cmUgYXZhaWxhYmxlLAorICAgICogICAgICAgICAgICAgICAgICBub3QgdGhlIHJlZHVjZWQgbnVt
YmVyIHRoYXQgd2VyZSBhY3R1YWxseSByZXR1cm5lZC4KKyAgICAqIEBzZWUgZ2V0UnVsZVN0YXR1
cworICAgICogQHN0YWJsZSBJQ1UgNTIKKyAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRS
dWxlU3RhdHVzVmVjKGludDMyX3QgKmZpbGxJblZlYywgaW50MzJfdCBjYXBhY2l0eSwgVUVycm9y
Q29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZv
ciB3b3JkLWJyZWFrcyB1c2luZyB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIFJldHVybnMgYW4g
aW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyB3b3JkIGJyZWFrcy4KKyAg
ICAgKiBXb3JkQnJlYWsgaXMgdXNlZnVsIGZvciB3b3JkIHNlbGVjdGlvbiAoZXguIGRvdWJsZSBj
bGljaykKKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3Rh
dHVzIHRoZSBlcnJvciBjb2RlCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHdv
cmQtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1
c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8g
Y2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91
bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lz
aCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGlu
Zm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgor
ICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFj
ayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1
ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1
c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQg
bG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2Fs
ZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5k
LgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNw
b25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZVdvcmRJbnN0
YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoq
CisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIGxpbmUtYnJlYWtzIHVzaW5nIHNwZWNp
ZmllZCBsb2NhbGUuCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0
b3IgaW1wbGVtZW50aW5nIGxpbmUgYnJlYWtzLiBMaW5lCisgICAgICogYnJlYWtzIGFyZSBsb2dp
Y2FsbHkgcG9zc2libGUgbGluZSBicmVha3MsIGFjdHVhbCBsaW5lIGJyZWFrcyBhcmUKKyAgICAg
KiB1c3VhbGx5IGRldGVybWluZWQgYmFzZWQgb24gZGlzcGxheSB3aWR0aC4KKyAgICAgKiBMaW5l
QnJlYWsgaXMgdXNlZnVsIGZvciB3b3JkIHdyYXBwaW5nIHRleHQuCisgICAgICogQHBhcmFtIHdo
ZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAg
ICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3IgbGluZS1icmVha3MuICBUaGUgVUVycm9y
Q29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBp
bmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25z
dHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2
YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3Jt
YXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1
bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFD
S19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZv
cgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2Fz
IGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRf
V0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAg
KiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwg
YmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBv
d25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBp
dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVy
YXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlTGluZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hl
cmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJ
dGVyYXRvciBmb3IgY2hhcmFjdGVyLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxlCisgICAg
ICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIGNo
YXJhY3RlciBicmVha3MuCisgICAgICogQ2hhcmFjdGVyIGJyZWFrcyBhcmUgYm91bmRhcmllcyBv
ZiBjb21iaW5pbmcgY2hhcmFjdGVyIHNlcXVlbmNlcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhl
IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEBy
ZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciBjaGFyYWN0ZXItYnJlYWtzLiAgVGhlIFVFcnJvckNv
ZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5m
b3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3Ry
dWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFs
dWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0
aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0
cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tf
V0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IK
KyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBm
b3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dB
Uk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICog
dXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJh
Y2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3du
cyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0
b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZUNoYXJhY3Rlckluc3RhbmNlKGNvbnN0IExvY2FsZSYg
d2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJl
YWtJdGVyYXRvciBmb3Igc2VudGVuY2UtYnJlYWtzIHVzaW5nIHNwZWNpZmllZCBsb2NhbGUKKyAg
ICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcg
c2VudGVuY2UgYnJlYWtzLgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAq
IEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRl
cmF0b3IgZm9yIHNlbnRlbmNlLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAg
KiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1
c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQg
b3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhl
cnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICog
Y2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5k
aWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVz
IHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwg
J2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdk
ZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0
aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhl
IHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAg
KiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9i
amVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAg
ICBjcmVhdGVTZW50ZW5jZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUm
IHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3IgdGl0
bGUtY2FzaW5nIGJyZWFrcyB1c2luZyB0aGUgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVy
bnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyB0aXRsZSBicmVh
a3MuCisgICAgICogVGhlIGl0ZXJhdG9yIHJldHVybmVkIGxvY2F0ZXMgdGl0bGUgYm91bmRhcmll
cyBhcyBkZXNjcmliZWQgZm9yCisgICAgICogVW5pY29kZSAzLjIgb25seS4gRm9yIFVuaWNvZGUg
NC4wIGFuZCBhYm92ZSB0aXRsZSBib3VuZGFyeSBpdGVyYXRpb24sCisgICAgICogcGxlYXNlIHVz
ZSBXb3JkIEJvdW5kYXJ5IGl0ZXJhdG9yLntAbGluayAjY3JlYXRlV29yZEluc3RhbmNlIH0KKyAg
ICAgKgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0
dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHRp
dGxlLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMg
dXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRv
IGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hv
dWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdp
c2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBp
bmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4K
KyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJh
Y2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVx
dWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICog
dXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0
IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2Nh
bGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3Vu
ZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVz
cG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAq
LworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVUaXRsZUlu
c3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAv
KioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBMb2NhbGVzIGZvciB3aGljaCBUZXh0Qm91bmRhcmll
cyBhcmUgaW5zdGFsbGVkLgorICAgICAqIDxwPjxiPk5vdGU6PC9iPiB0aGlzIHdpbGwgbm90IHJl
dHVybiBsb2NhbGVzIGFkZGVkIHRocm91Z2ggdGhlIHJlZ2lzdGVyCisgICAgICogY2FsbC4gVG8g
c2VlIHRoZSByZWdpc3RlcmVkIGxvY2FsZXMgdG9vLCB1c2UgdGhlIGdldEF2YWlsYWJsZUxvY2Fs
ZXMKKyAgICAgKiBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBTdHJpbmdFbnVtZXJhdGlvbiBvYmpl
Y3QgPC9wPgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgb3V0cHV0IHBhcmFtZXRlciBvZiBudW1i
ZXIgb2YgZWxlbWVudHMgaW4gdGhlIGxvY2FsZSBsaXN0CisgICAgICogQHJldHVybiBhdmFpbGFi
bGUgbG9jYWxlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUqIFVfRVhQT1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIGNvdW50
KTsKKworICAgIC8qKgorICAgICAqIEdldCBuYW1lIG9mIHRoZSBvYmplY3QgZm9yIHRoZSBkZXNp
cmVkIExvY2FsZSwgaW4gdGhlIGRlc2lyZWQgbGFuZ2F1Z2UuCisgICAgICogQHBhcmFtIG9iamVj
dExvY2FsZSBtdXN0IGJlIGZyb20gZ2V0QXZhaWxhYmxlTG9jYWxlcy4KKyAgICAgKiBAcGFyYW0g
ZGlzcGxheUxvY2FsZSBzcGVjaWZpZXMgdGhlIGRlc2lyZWQgbG9jYWxlIGZvciBvdXRwdXQuCisg
ICAgICogQHBhcmFtIG5hbWUgdGhlIGZpbGwtaW4gcGFyYW1ldGVyIG9mIHRoZSByZXR1cm4gdmFs
dWUKKyAgICAgKiBVc2VzIGJlc3QgbWF0Y2guCisgICAgICogQHJldHVybiB1c2VyLWRpc3BsYXlh
YmxlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgVW5p
Y29kZVN0cmluZyYgVV9FWFBPUlQyIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgb2JqZWN0
TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBM
b2NhbGUmIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVuaWNvZGVTdHJpbmcmIG5hbWUpOworCisgICAgLyoqCisgICAgICogR2V0IG5hbWUg
b2YgdGhlIG9iamVjdCBmb3IgdGhlIGRlc2lyZWQgTG9jYWxlLCBpbiB0aGUgbGFuZ2F1Z2Ugb2Yg
dGhlCisgICAgICogZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSBt
dXN0IGJlIGZyb20gZ2V0TWF0Y2hpbmdMb2NhbGVzCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGZp
bGwtaW4gcGFyYW1ldGVyIG9mIHRoZSByZXR1cm4gdmFsdWUKKyAgICAgKiBAcmV0dXJuIHVzZXIt
ZGlzcGxheWFibGUgbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0
YXRpYyBVbmljb2RlU3RyaW5nJiBVX0VYUE9SVDIgZ2V0RGlzcGxheU5hbWUoY29uc3QgTG9jYWxl
JiBvYmplY3RMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVuaWNvZGVTdHJpbmcmIG5hbWUpOworCisgICAgLyoqCisgICAgICogRGVwcmVjYXRlZCBmdW5j
dGlvbmFsaXR5LiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisgICAgICogVGhyZWFkIHNh
ZmUgY2xpZW50LWJ1ZmZlci1iYXNlZCBjbG9uaW5nIG9wZXJhdGlvbgorICAgICAqICAgIERvIE5P
VCBjYWxsIGRlbGV0ZSBvbiBhIHNhZmVjbG9uZSwgc2luY2UgJ25ldycgaXMgbm90IHVzZWQgdG8g
Y3JlYXRlIGl0LgorICAgICAqIEBwYXJhbSBzdGFja0J1ZmZlciB1c2VyIGFsbG9jYXRlZCBzcGFj
ZSBmb3IgdGhlIG5ldyBjbG9uZS4gSWYgTlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVk
LgorICAgICAqIElmIGJ1ZmZlciBpcyBub3QgbGFyZ2UgZW5vdWdoLCBuZXcgbWVtb3J5IHdpbGwg
YmUgYWxsb2NhdGVkLgorICAgICAqIEBwYXJhbSBCdWZmZXJTaXplIHJlZmVyZW5jZSB0byBzaXpl
IG9mIGFsbG9jYXRlZCBzcGFjZS4KKyAgICAgKiBJZiBCdWZmZXJTaXplID09IDAsIGEgc3VmZmlj
aWVudCBzaXplIGZvciB1c2UgaW4gY2xvbmluZyB3aWxsCisgICAgICogYmUgcmV0dXJuZWQgKCdw
cmUtZmxpZ2h0aW5nJykKKyAgICAgKiBJZiBCdWZmZXJTaXplIGlzIG5vdCBlbm91Z2ggZm9yIGEg
c3RhY2stYmFzZWQgc2FmZSBjbG9uZSwKKyAgICAgKiBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2Nh
dGVkLgorICAgICAqIEBwYXJhbSBzdGF0dXMgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgb3BlcmF0
aW9uIHdlbnQgb24gc21vb3RobHkgb3IgdGhlcmUgd2VyZSBlcnJvcnMKKyAgICAgKiAgQW4gaW5m
b3JtYXRpb25hbCBzdGF0dXMgdmFsdWUsIFVfU0FGRUNMT05FX0FMTE9DQVRFRF9FUlJPUiwgaXMg
dXNlZCBpZiBhbnkgYWxsb2NhdGlvbnMgd2VyZQorICAgICAqICBuZWNlc3NhcnkuCisgICAgICog
QHJldHVybiBwb2ludGVyIHRvIHRoZSBuZXcgY2xvbmUKKyAgICAgKgorICAgICAqIEBkZXByZWNh
dGVkIElDVSA1Mi4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJy
ZWFrSXRlcmF0b3IgKiAgY3JlYXRlQnVmZmVyQ2xvbmUodm9pZCAqc3RhY2tCdWZmZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgJkJ1ZmZl
clNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVF
cnJvckNvZGUgJnN0YXR1cykgPSAwOworCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQor
CisgICAgLyoqCisgICAgICogICBEZXRlcm1pbmUgd2hldGhlciB0aGUgQnJlYWtJdGVyYXRvciB3
YXMgY3JlYXRlZCBpbiB1c2VyIG1lbW9yeSBieQorICAgICAqICAgY3JlYXRlQnVmZmVyQ2xvbmUo
KSwgYW5kIHRodXMgc2hvdWxkIG5vdCBiZSBkZWxldGVkLiAgU3VjaCBvYmplY3RzCisgICAgICog
ICBtdXN0IGJlIGNsb3NlZCBieSBhbiBleHBsaWNpdCBjYWxsIHRvIHRoZSBkZXN0cnVjdG9yIChu
b3QgZGVsZXRlKS4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIEFsd2F5cyBkZWxldGUgdGhl
IEJyZWFrSXRlcmF0b3IuCisgICAgICovCisgICAgaW5saW5lIFVCb29sIGlzQnVmZmVyQ2xvbmUo
dm9pZCk7CisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KKworI2lmICFVQ09O
RklHX05PX1NFUlZJQ0UKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIG5ldyBicmVhayBpdGVy
YXRvciBvZiB0aGUgaW5kaWNhdGVkIGtpbmQsIHRvIHVzZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlLgor
ICAgICAqIFRoZSBicmVhayBpdGVyYXRvciB3aWxsIGJlIGFkb3B0ZWQuICBDbG9uZXMgb2YgdGhl
IGl0ZXJhdG9yIHdpbGwgYmUgcmV0dXJuZWQKKyAgICAgKiBpZiBhIHJlcXVlc3QgZm9yIGEgYnJl
YWsgaXRlcmF0b3Igb2YgdGhlIGdpdmVuIGtpbmQgbWF0Y2hlcyBvciBmYWxscyBiYWNrIHRvCisg
ICAgICogdGhpcyBsb2NhbGUuCisgICAgICogQmVjYXVzZSBJQ1UgbWF5IGNob29zZSB0byBjYWNo
ZSBCcmVha0l0ZXJhdG9ycyBpbnRlcm5hbGx5LCB0aGlzIG11c3QKKyAgICAgKiBiZSBjYWxsZWQg
YXQgYXBwbGljYXRpb24gc3RhcnR1cCwgcHJpb3IgdG8gYW55IGNhbGxzIHRvCisgICAgICogQnJl
YWtJdGVyYXRvcjo6Y3JlYXRlWFhYSW5zdGFuY2UgdG8gYXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9y
LgorICAgICAqIEBwYXJhbSB0b0Fkb3B0IHRoZSBCcmVha0l0ZXJhdG9yIGluc3RhbmNlIHRvIGJl
IGFkb3B0ZWQKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBMb2NhbGUgZm9yIHdoaWNoIHRoaXMg
aW5zdGFuY2UgaXMgdG8gYmUgcmVnaXN0ZXJlZAorICAgICAqIEBwYXJhbSBraW5kIHRoZSB0eXBl
IG9mIGl0ZXJhdG9yIGZvciB3aGljaCB0aGlzIGluc3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQK
KyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBpbi9vdXQgc3RhdHVzIGNvZGUsIG5vIHNwZWNpYWwg
bWVhbmluZ3MgYXJlIGFzc2lnbmVkCisgICAgICogQHJldHVybiBhIHJlZ2lzdHJ5IGtleSB0aGF0
IGNhbiBiZSB1c2VkIHRvIHVucmVnaXN0ZXIgdGhpcyBpbnN0YW5jZQorICAgICAqIEBzdGFibGUg
SUNVIDIuNAorICAgICAqLworICAgIHN0YXRpYyBVUmVnaXN0cnlLZXkgVV9FWFBPUlQyIHJlZ2lz
dGVySW5zdGFuY2UoQnJlYWtJdGVyYXRvciogdG9BZG9wdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBMb2NhbGUmIGxvY2FsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVQnJlYWtJdGVyYXRvclR5cGUga2luZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlJiBzdGF0dXMpOwor
CisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciBhIHByZXZpb3VzbHktcmVnaXN0ZXJlZCBCcmVh
a0l0ZXJhdG9yIHVzaW5nIHRoZSBrZXkgcmV0dXJuZWQgZnJvbSB0aGUKKyAgICAgKiByZWdpc3Rl
ciBjYWxsLiAgS2V5IGJlY29tZXMgaW52YWxpZCBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCBhbmQg
c2hvdWxkIG5vdCBiZSB1c2VkIGFnYWluLgorICAgICAqIFRoZSBCcmVha0l0ZXJhdG9yIGNvcnJl
c3BvbmRpbmcgdG8gdGhlIGtleSB3aWxsIGJlIGRlbGV0ZWQuCisgICAgICogQmVjYXVzZSBJQ1Ug
bWF5IGNob29zZSB0byBjYWNoZSBCcmVha0l0ZXJhdG9ycyBpbnRlcm5hbGx5LCB0aGlzIHNob3Vs
ZAorICAgICAqIGJlIGNhbGxlZCBkdXJpbmcgYXBwbGljYXRpb24gc2h1dGRvd24sIGFmdGVyIGFs
bCBjYWxscyB0bworICAgICAqIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZVhYWEluc3RhbmNlIHRvIGF2
b2lkIHVuZGVmaW5lZCBiZWhhdmlvci4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSByZWdpc3RyeSBr
ZXkgcmV0dXJuZWQgYnkgYSBwcmV2aW91cyBjYWxsIHRvIHJlZ2lzdGVySW5zdGFuY2UKKyAgICAg
KiBAcGFyYW0gc3RhdHVzIHRoZSBpbi9vdXQgc3RhdHVzIGNvZGUsIG5vIHNwZWNpYWwgbWVhbmlu
Z3MgYXJlIGFzc2lnbmVkCisgICAgICogQHJldHVybiBUUlVFIGlmIHRoZSBpdGVyYXRvciBmb3Ig
dGhlIGtleSB3YXMgc3VjY2Vzc2Z1bGx5IHVucmVnaXN0ZXJlZAorICAgICAqIEBzdGFibGUgSUNV
IDIuNAorICAgICAqLworICAgIHN0YXRpYyBVQm9vbCBVX0VYUE9SVDIgdW5yZWdpc3RlcihVUmVn
aXN0cnlLZXkga2V5LCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogUmV0
dXJuIGEgU3RyaW5nRW51bWVyYXRpb24gb3ZlciB0aGUgbG9jYWxlcyBhdmFpbGFibGUgYXQgdGhl
IHRpbWUgb2YgdGhlIGNhbGwsCisgICAgICogaW5jbHVkaW5nIHJlZ2lzdGVyZWQgbG9jYWxlcy4K
KyAgICAgKiBAcmV0dXJuIGEgU3RyaW5nRW51bWVyYXRpb24gb3ZlciB0aGUgbG9jYWxlcyBhdmFp
bGFibGUgYXQgdGhlIHRpbWUgb2YgdGhlIGNhbGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAg
ICAgKi8KKyAgICBzdGF0aWMgU3RyaW5nRW51bWVyYXRpb24qIFVfRVhQT1JUMiBnZXRBdmFpbGFi
bGVMb2NhbGVzKHZvaWQpOworI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBs
b2NhbGUgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuIFR3byBmbGF2b3JzIGFyZSBhdmFpbGFibGU6
IHZhbGlkIGFuZAorICAgICAqIGFjdHVhbCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44
CisgICAgICovCisgICAgTG9jYWxlIGdldExvY2FsZShVTG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwg
VUVycm9yQ29kZSYgc3RhdHVzKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJ
CisgICAgLyoqIEdldCB0aGUgbG9jYWxlIGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yIG9iamVjdC4g
WW91IGNhbiBjaG9vc2UgYmV0d2VlbiB2YWxpZCBhbmQgYWN0dWFsIGxvY2FsZS4KKyAgICAgKiAg
QHBhcmFtIHR5cGUgdHlwZSBvZiB0aGUgbG9jYWxlIHdlJ3JlIGxvb2tpbmcgZm9yICh2YWxpZCBv
ciBhY3R1YWwpCisgICAgICogIEBwYXJhbSBzdGF0dXMgZXJyb3IgY29kZSBmb3IgdGhlIG9wZXJh
dGlvbgorICAgICAqICBAcmV0dXJuIHRoZSBsb2NhbGUKKyAgICAgKiAgQGludGVybmFsCisgICAg
ICovCisgICAgY29uc3QgY2hhciAqZ2V0TG9jYWxlSUQoVUxvY0RhdGFMb2NhbGVUeXBlIHR5cGUs
IFVFcnJvckNvZGUmIHN0YXR1cykgY29uc3Q7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9B
UEkgKi8KKworICAgIC8qKgorICAgICAqICBTZXQgdGhlIHN1YmplY3QgdGV4dCBzdHJpbmcgdXBv
biB3aGljaCB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nCisgICAgICogIHdpdGhvdXQg
Y2hhbmdpbmcgYW55IG90aGVyIGFzcGVjdCBvZiB0aGUgbWF0Y2hpbmcgc3RhdGUuCisgICAgICog
IFRoZSBuZXcgYW5kIHByZXZpb3VzIHRleHQgc3RyaW5ncyBtdXN0IGhhdmUgdGhlIHNhbWUgY29u
dGVudC4KKyAgICAgKgorICAgICAqICBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2Ug
aW4gZW52aXJvbm1lbnRzIHdoZXJlIElDVSBpcyBvcGVyYXRpbmcgb24KKyAgICAgKiAgc3RyaW5n
cyB0aGF0IG1heSBtb3ZlIGFyb3VuZCBpbiBtZW1vcnkuICBJdCBwcm92aWRlcyBhIG1lY2hhbmlz
bSBmb3Igbm90aWZ5aW5nCisgICAgICogIElDVSB0aGF0IHRoZSBzdHJpbmcgaGFzIGJlZW4gcmVs
b2NhdGVkLCBhbmQgcHJvdmlkaW5nIGEgbmV3IFVUZXh0IHRvIGFjY2VzcyB0aGUKKyAgICAgKiAg
c3RyaW5nIGluIGl0cyBuZXcgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiAgTm90ZSB0aGF0IHRo
ZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbiBuZXZlciBjb3BpZXMgdGhlIHVuZGVybHlp
bmcgdGV4dAorICAgICAqICBvZiBhIHN0cmluZyBiZWluZyBwcm9jZXNzZWQsIGJ1dCBhbHdheXMg
b3BlcmF0ZXMgZGlyZWN0bHkgb24gdGhlIG9yaWdpbmFsIHRleHQKKyAgICAgKiAgcHJvdmlkZWQg
YnkgdGhlIHVzZXIuIFJlZnJlc2hpbmcgc2ltcGx5IGRyb3BzIHRoZSByZWZlcmVuY2VzIHRvIHRo
ZSBvbGQgdGV4dAorICAgICAqICBhbmQgcmVwbGFjZXMgdGhlbSB3aXRoIHJlZmVyZW5jZXMgdG8g
dGhlIG5ldy4KKyAgICAgKgorICAgICAqICBDYXV0aW9uOiAgdGhpcyBmdW5jdGlvbiBpcyBub3Jt
YWxseSB1c2VkIG9ubHkgYnkgdmVyeSBzcGVjaWFsaXplZCwKKyAgICAgKiAgc3lzdGVtLWxldmVs
IGNvZGUuICBPbmUgZXhhbXBsZSB1c2UgY2FzZSBpcyB3aXRoIGdhcmJhZ2UgY29sbGVjdGlvbiB0
aGF0IG1vdmVzCisgICAgICogIHRoZSB0ZXh0IGluIG1lbW9yeS4KKyAgICAgKgorICAgICAqIEBw
YXJhbSBpbnB1dCAgICAgIFRoZSBuZXcgKG1vdmVkKSB0ZXh0IHN0cmluZy4KKyAgICAgKiBAcGFy
YW0gc3RhdHVzICAgICBSZWNlaXZlcyBlcnJvcnMgZGV0ZWN0ZWQgYnkgdGhpcyBmdW5jdGlvbi4K
KyAgICAgKiBAcmV0dXJuICAgICAgICAgICAqdGhpcworICAgICAqCisgICAgICogQHN0YWJsZSBJ
Q1UgNDkKKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IgJnJlZnJlc2hJbnB1dFRl
eHQoVVRleHQgKmlucHV0LCBVRXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKworIHByaXZhdGU6Cisg
ICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIGJ1aWxkSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2Ms
IGNvbnN0IGNoYXIgKnR5cGUsIGludDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKyAg
ICBzdGF0aWMgQnJlYWtJdGVyYXRvciogY3JlYXRlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2Ms
IGludDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKyAgICBzdGF0aWMgQnJlYWtJdGVy
YXRvciogbWFrZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBpbnQzMl90IGtpbmQsIFVFcnJv
ckNvZGUmIHN0YXR1cyk7CisKKyAgICBmcmllbmQgY2xhc3MgSUNVQnJlYWtJdGVyYXRvckZhY3Rv
cnk7CisgICAgZnJpZW5kIGNsYXNzIElDVUJyZWFrSXRlcmF0b3JTZXJ2aWNlOworCitwcm90ZWN0
ZWQ6CisgICAgLy8gRG8gbm90IGVuY2xvc2UgcHJvdGVjdGVkIGRlZmF1bHQvY29weSBjb25zdHJ1
Y3RvcnMgd2l0aCAjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvLyBvciBlbHNlIHRo
ZSBjb21waWxlciB3aWxsIGNyZWF0ZSBhIHB1YmxpYyBvbmVzLgorICAgIC8qKiBAaW50ZXJuYWwg
Ki8KKyAgICBCcmVha0l0ZXJhdG9yKCk7CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFr
SXRlcmF0b3IgKGNvbnN0IEJyZWFrSXRlcmF0b3IgJm90aGVyKSA6IFVPYmplY3Qob3RoZXIpIHt9
CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFrSXRlcmF0b3IgKGNvbnN0IExvY2FsZSYg
dmFsaWQsIGNvbnN0IExvY2FsZSYgYWN0dWFsKTsKK3ByaXZhdGU6CisKKyAgICAvKiogQGludGVy
bmFsICovCisgICAgY2hhciBhY3R1YWxMb2NhbGVbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07Cisg
ICAgY2hhciB2YWxpZExvY2FsZVtVTE9DX0ZVTExOQU1FX0NBUEFDSVRZXTsKKworICAgIC8qKgor
ICAgICAqIFRoZSBhc3NpZ25tZW50IG9wZXJhdG9yIGhhcyBubyByZWFsIGltcGxlbWVudGF0aW9u
LgorICAgICAqIEl0J3MgcHJvdmlkZWQgdG8gbWFrZSB0aGUgY29tcGlsZXIgaGFwcHkuIERvIG5v
dCBjYWxsLgorICAgICAqLworICAgIEJyZWFrSXRlcmF0b3ImIG9wZXJhdG9yPShjb25zdCBCcmVh
a0l0ZXJhdG9yJik7Cit9OworCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQorCitpbmxp
bmUgVUJvb2wgQnJlYWtJdGVyYXRvcjo6aXNCdWZmZXJDbG9uZSgpCit7CisgICAgcmV0dXJuIEZB
TFNFOworfQorCisjZW5kaWYgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisKK1VfTkFNRVNQ
QUNFX0VORAorCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiAqLwor
CisjZW5kaWYgLy8gX0JSS0lURVIKKy8vZW9mCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL2NoYXJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZThkNjUwOTBhNDBhNjA4NTk1MWM3MzMwN2Y3NGFjZjgzYmExYmJjOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaApAQCAtMCwwICsx
LDcyMiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTEs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3Ro
ZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVm
IENIQVJJVEVSX0gKKyNkZWZpbmUgQ0hBUklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlw
ZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3Vu
aXN0ci5oIgorLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IENoYXJhY3RlciBJdGVy
YXRvcgorICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorLyoqCisgKiBBYnN0cmFjdCBjbGFzcyB0
aGF0IGRlZmluZXMgYW4gQVBJIGZvciBmb3J3YXJkLW9ubHkgaXRlcmF0aW9uCisgKiBvbiB0ZXh0
IG9iamVjdHMuCisgKiBUaGlzIGlzIGEgbWluaW1hbCBpbnRlcmZhY2UgZm9yIGl0ZXJhdGlvbiB3
aXRob3V0IHJhbmRvbSBhY2Nlc3MKKyAqIG9yIGJhY2t3YXJkcyBpdGVyYXRpb24uIEl0IGlzIGVz
cGVjaWFsbHkgdXNlZnVsIGZvciB3cmFwcGluZworICogc3RyZWFtcyB3aXRoIGNvbnZlcnRlcnMg
aW50byBhbiBvYmplY3QgZm9yIGNvbGxhdGlvbiBvcgorICogbm9ybWFsaXphdGlvbi4KKyAqCisg
KiA8cD5DaGFyYWN0ZXJzIGNhbiBiZSBhY2Nlc3NlZCBpbiB0d28gd2F5czogYXMgY29kZSB1bml0
cyBvciBhcworICogY29kZSBwb2ludHMuCisgKiBVbmljb2RlIGNvZGUgcG9pbnRzIGFyZSAyMS1i
aXQgaW50ZWdlcnMgYW5kIGFyZSB0aGUgc2NhbGFyIHZhbHVlcworICogb2YgVW5pY29kZSBjaGFy
YWN0ZXJzLiBJQ1UgdXNlcyB0aGUgdHlwZSBVQ2hhcjMyIGZvciB0aGVtLgorICogVW5pY29kZSBj
b2RlIHVuaXRzIGFyZSB0aGUgc3RvcmFnZSB1bml0cyBvZiBhIGdpdmVuCisgKiBVbmljb2RlL1VD
UyBUcmFuc2Zvcm1hdGlvbiBGb3JtYXQgKGEgY2hhcmFjdGVyIGVuY29kaW5nIHNjaGVtZSkuCisg
KiBXaXRoIFVURi0xNiwgYWxsIGNvZGUgcG9pbnRzIGNhbiBiZSByZXByZXNlbnRlZCB3aXRoIGVp
dGhlciBvbmUKKyAqIG9yIHR3byBjb2RlIHVuaXRzICgic3Vycm9nYXRlcyIpLgorICogU3RyaW5n
IHN0b3JhZ2UgaXMgdHlwaWNhbGx5IGJhc2VkIG9uIGNvZGUgdW5pdHMsIHdoaWxlIHByb3BlcnRp
ZXMKKyAqIG9mIGNoYXJhY3RlcnMgYXJlIHR5cGljYWxseSBkZXRlcm1pbmVkIHVzaW5nIGNvZGUg
cG9pbnQgdmFsdWVzLgorICogU29tZSBwcm9jZXNzZXMgbWF5IGJlIGRlc2lnbmVkIHRvIHdvcmsg
d2l0aCBzZXF1ZW5jZXMgb2YgY29kZSB1bml0cywKKyAqIG9yIGl0IG1heSBiZSBrbm93biB0aGF0
IGFsbCBjaGFyYWN0ZXJzIHRoYXQgYXJlIGltcG9ydGFudCB0byBhbgorICogYWxnb3JpdGhtIGNh
biBiZSByZXByZXNlbnRlZCB3aXRoIHNpbmdsZSBjb2RlIHVuaXRzLgorICogT3RoZXIgcHJvY2Vz
c2VzIHdpbGwgbmVlZCB0byB1c2UgdGhlIGNvZGUgcG9pbnQgYWNjZXNzIGZ1bmN0aW9ucy48L3A+
CisgKgorICogPHA+Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHByb3ZpZGVzIG5leHRQb3N0SW5j
KCkgdG8gYWNjZXNzCisgKiBhIGNvZGUgdW5pdCBhbmQgYWR2YW5jZSBhbiBpbnRlcm5hbCBwb3Np
dGlvbiBpbnRvIHRoZSB0ZXh0IG9iamVjdCwKKyAqIHNpbWlsYXIgdG8gYSA8Y29kZT5yZXR1cm4g
dGV4dFtwb3NpdGlvbisrXTwvY29kZT4uPGJyPgorICogSXQgcHJvdmlkZXMgbmV4dDMyUG9zdElu
YygpIHRvIGFjY2VzcyBhIGNvZGUgcG9pbnQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwKKyAqIHBv
c2l0aW9uLjwvcD4KKyAqCisgKiA8cD5uZXh0MzJQb3N0SW5jKCkgYXNzdW1lcyB0aGF0IHRoZSBj
dXJyZW50IHBvc2l0aW9uIGlzIHRoYXQgb2YKKyAqIHRoZSBiZWdpbm5pbmcgb2YgYSBjb2RlIHBv
aW50LCBpLmUuLCBvZiBpdHMgZmlyc3QgY29kZSB1bml0LgorICogQWZ0ZXIgbmV4dDMyUG9zdElu
YygpLCB0aGlzIHdpbGwgYmUgdHJ1ZSBhZ2Fpbi4KKyAqIEluIGdlbmVyYWwsIGFjY2VzcyB0byBj
b2RlIHVuaXRzIGFuZCBjb2RlIHBvaW50cyBpbiB0aGUgc2FtZQorICogaXRlcmF0aW9uIGxvb3Ag
c2hvdWxkIG5vdCBiZSBtaXhlZC4gSW4gVVRGLTE2LCBpZiB0aGUgY3VycmVudCBwb3NpdGlvbgor
ICogaXMgb24gYSBzZWNvbmQgY29kZSB1bml0IChMb3cgU3Vycm9nYXRlKSwgdGhlbiBvbmx5IHRo
YXQgY29kZSB1bml0CisgKiBpcyByZXR1cm5lZCBldmVuIGJ5IG5leHQzMlBvc3RJbmMoKS48L3A+
CisgKgorICogPHA+Rm9yIGl0ZXJhdGlvbiB3aXRoIGVpdGhlciBmdW5jdGlvbiwgdGhlcmUgYXJl
IHR3byB3YXlzIHRvCisgKiBjaGVjayBmb3IgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLiBXaGVu
IHRoZXJlIGFyZSBubyBtb3JlCisgKiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0IG9iamVjdDoKKyAq
IDx1bD4KKyAqIDxsaT5UaGUgaGFzTmV4dCgpIGZ1bmN0aW9uIHJldHVybnMgRkFMU0UuPC9saT4K
KyAqIDxsaT5uZXh0UG9zdEluYygpIGFuZCBuZXh0MzJQb3N0SW5jKCkgcmV0dXJuIERPTkUKKyAq
ICAgICB3aGVuIG9uZSBhdHRlbXB0cyB0byByZWFkIGJleW9uZCB0aGUgZW5kIG9mIHRoZSB0ZXh0
IG9iamVjdC48L2xpPgorICogPC91bD4KKyAqCisgKiBFeGFtcGxlOgorICogXGNvZGUgCisgKiB2
b2lkIGZ1bmN0aW9uMShGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNo
YXIzMiBjOworICogICAgIHdoaWxlKGl0Lmhhc05leHQoKSkgeworICogICAgICAgICBjPWl0Lm5l
eHQzMlBvc3RJbmMoKTsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICB9CisgKiB9CisgKgor
ICogdm9pZCBmdW5jdGlvbjEoRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAg
IFVDaGFyIGM7CisgKiAgICAgd2hpbGUoKGM9aXQubmV4dFBvc3RJbmMoKSkhPUZvcndhcmRDaGFy
YWN0ZXJJdGVyYXRvcjo6RE9ORSkgeworICogICAgICAgICAvLyB1c2UgYworICogICAgICB9Cisg
KiAgfQorICogXGVuZGNvZGUKKyAqIDwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwor
Y2xhc3MgVV9DT01NT05fQVBJIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBVT2Jq
ZWN0IHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBtb3N0IG9m
IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcidzIGZ1bmN0aW9ucworICAgICAqIHdoZW4gdGhlIGl0
ZXJhdG9yIGhhcyByZWFjaGVkIHRoZSBsaW1pdHMgb2YgaXRzIGl0ZXJhdGlvbi4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBlbnVtIHsgRE9ORSA9IDB4ZmZmZiB9OworICAg
IAorICAgIC8qKgorICAgICAqIERlc3RydWN0b3IuICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIH5Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAK
KyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgd2hlbiBib3RoIGl0ZXJhdG9ycyByZWZlciB0
byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSBjaGFyYWN0ZXItc3RvcmFn
ZSBvYmplY3QuICAKKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgICAqIEByZXR1cm4gdHJ1ZSB3aGVu
IGJvdGggaXRlcmF0b3JzIHJlZmVyIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRo
ZSBzYW1lIGNoYXJhY3Rlci1zdG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHRydWUgd2hlbiB0aGUgaXRlcmF0b3JzIHJlZmVyIHRvIGRpZmZlcmVudAorICAgICAqIHRl
eHQtc3RvcmFnZSBvYmplY3RzLCBvciB0byBkaWZmZXJlbnQgY2hhcmFjdGVycyBpbiB0aGUKKyAg
ICAgKiBzYW1lIHRleHQtc3RvcmFnZSBvYmplY3QuICAKKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUg
Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5Cisg
ICAgICogQHJldHVybiB0cnVlIHdoZW4gdGhlIGl0ZXJhdG9ycyByZWZlciB0byBkaWZmZXJlbnQK
KyAgICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0cywgb3IgdG8gZGlmZmVyZW50IGNoYXJhY3RlcnMg
aW4gdGhlCisgICAgICogc2FtZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgaW5saW5lIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBH
ZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgaXRlcmF0b3IuICAKKyAgICAgKiBAcmV0dXJu
IHRoZSBoYXNoIGNvZGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBpbnQzMl90IGhhc2hDb2RlKHZvaWQpIGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoaXMgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
ICgicG9vciBtYW4ncworICAgICAqIFJUVEkiKS48UD4gRGVzcGl0ZSB0aGUgZmFjdCB0aGF0IHRo
aXMgZnVuY3Rpb24gaXMgcHVibGljLAorICAgICAqIERPIE5PVCBDT05TSURFUiBJVCBQQVJUIE9G
IENIQVJBQ1RFUklURVJBVE9SJ1MgQVBJISAKKyAgICAgKiBAcmV0dXJuIGEgVUNsYXNzSUQgZm9y
IHRoaXMgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29u
c3QgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSB1bml0
IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgdW5pdAorICAgICAq
IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAgSWYg
dGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBE
T05FLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSB1bml0LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0UG9zdElu
Yyh2b2lkKSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBjb2Rl
IHBvaW50IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQK
KyAgICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgp
KS4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCBy
ZXR1cm5zIERPTkUuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHBvaW50LgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBu
ZXh0MzJQb3N0SW5jKHZvaWQpID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIEZB
TFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAg
KiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
LgorICAgICAqIFRoaXMgaXMgdXNlZCB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9zdElu
YygpIGluIGZvcndhcmQKKyAgICAgKiBpdGVyYXRpb24uCisgICAgICogQHJldHVybnMgRkFMU0Ug
aWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgICAqIGF0
IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCAgICAgICAg
aGFzTmV4dCgpID0gMDsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICAvKiogRGVmYXVsdCBjb25zdHJ1
Y3RvciB0byBiZSBvdmVycmlkZGVuIGluIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3MuIEBzdGFibGUg
SUNVIDIuMCovCisgICAgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgCisgICAgLyoq
IENvcHkgY29uc3RydWN0b3IgdG8gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNs
YXNzLiBAc3RhYmxlIElDVSAyLjAqLworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcihjb25z
dCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgJm90aGVyKTsKKyAgICAKKyAgICAvKioKKyAgICAg
KiBBc3NpZ25tZW50IG9wZXJhdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGlu
ZyBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBGb3J3YXJkQ2hh
cmFjdGVySXRlcmF0b3IgJm9wZXJhdG9yPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Im
KSB7IHJldHVybiAqdGhpczsgfQorfTsKKworLyoqCisgKiBBYnN0cmFjdCBjbGFzcyB0aGF0IGRl
ZmluZXMgYW4gQVBJIGZvciBpdGVyYXRpb24KKyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMg
aXMgYW4gaW50ZXJmYWNlIGZvciBmb3J3YXJkIGFuZCBiYWNrd2FyZCBpdGVyYXRpb24KKyAqIGFu
ZCByYW5kb20gYWNjZXNzIGludG8gYSB0ZXh0IG9iamVjdC4KKyAqCisgKiA8cD5UaGUgQVBJIHBy
b3ZpZGVzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgdG8gdGhlIEphdmEgYW5kIG9sZGVyIElDVQor
ICogQ2hhcmFjdGVySXRlcmF0b3IgY2xhc3NlcyBidXQgZXh0ZW5kcyB0aGVtIHNpZ25pZmljYW50
bHk6CisgKiA8b2w+CisgKiA8bGk+Q2hhcmFjdGVySXRlcmF0b3IgaXMgbm93IGEgc3ViY2xhc3Mg
b2YgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLjwvbGk+CisgKiA8bGk+V2hpbGUgdGhlIG9sZCBB
UEkgZnVuY3Rpb25zIHByb3ZpZGVkIGZvcndhcmQgaXRlcmF0aW9uIHdpdGgKKyAqICAgICAicHJl
LWluY3JlbWVudCIgc2VtYW50aWNzLCB0aGUgbmV3IG9uZSBhbHNvIHByb3ZpZGVzIGZ1bmN0aW9u
cworICogICAgIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1hbnRpY3MuIFRoZXkgYXJlIG1vcmUg
ZWZmaWNpZW50IGFuZCBzaG91bGQKKyAqICAgICBiZSB0aGUgcHJlZmVycmVkIGl0ZXJhdG9yIGZ1
bmN0aW9ucyBmb3IgbmV3IGltcGxlbWVudGF0aW9ucy4KKyAqICAgICBUaGUgYmFja3dhcmQgaXRl
cmF0aW9uIGFsd2F5cyBoYWQgInByZS1kZWNyZW1lbnQiIHNlbWFudGljcywgd2hpY2gKKyAqICAg
ICBhcmUgZWZmaWNpZW50LjwvbGk+CisgKiA8bGk+SnVzdCBsaWtlIEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciwgaXQgcHJvdmlkZXMgYWNjZXNzIHRvCisgKiAgICAgYm90aCBjb2RlIHVuaXRzIGFu
ZCBjb2RlIHBvaW50cy4gQ29kZSBwb2ludCBhY2Nlc3MgdmVyc2lvbnMgYXJlIGF2YWlsYWJsZQor
ICogICAgIGZvciB0aGUgb2xkIGFuZCB0aGUgbmV3IGl0ZXJhdGlvbiBzZW1hbnRpY3MuPC9saT4K
KyAqIDxsaT5UaGVyZSBhcmUgbmV3IGZ1bmN0aW9ucyBmb3Igc2V0dGluZyBhbmQgbW92aW5nIHRo
ZSBjdXJyZW50IHBvc2l0aW9uCisgKiAgICAgd2l0aG91dCByZXR1cm5pbmcgYSBjaGFyYWN0ZXIs
IGZvciBlZmZpY2llbmN5LjwvbGk+CisgKiA8L29sPgorICoKKyAqIFNlZSBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IgZm9yIGV4YW1wbGVzIGZvciB1c2luZyB0aGUgbmV3IGZvcndhcmQgaXRlcmF0
aW9uCisgKiBmdW5jdGlvbnMuIEZvciBiYWNrd2FyZCBpdGVyYXRpb24sIHRoZXJlIGlzIGFsc28g
YSBoYXNQcmV2aW91cygpIGZ1bmN0aW9uCisgKiB0aGF0IGNhbiBiZSB1c2VkIGFuYWxvZ291c2x5
IHRvIGhhc05leHQoKS4KKyAqIFRoZSBvbGQgZnVuY3Rpb25zIHdvcmsgYXMgYmVmb3JlIGFuZCBh
cmUgc2hvd24gYmVsb3cuPC9wPgorICoKKyAqIDxwPkV4YW1wbGVzIGZvciBzb21lIG9mIHRoZSBu
ZXcgZnVuY3Rpb25zOjwvcD4KKyAqCisgKiBGb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIGhhc05leHQo
KToKKyAqIFxjb2RlCisgKiB2b2lkIGZvcndhcmQxKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgewor
ICogICAgIFVDaGFyMzIgYzsKKyAqICAgICBmb3IoaXQuc2V0VG9TdGFydCgpOyBpdC5oYXNOZXh0
KCk7KSB7CisgKiAgICAgICAgIGM9aXQubmV4dDMyUG9zdEluYygpOworICogICAgICAgICAvLyB1
c2UgYworICogICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogRm9yd2FyZCBpdGVyYXRpb24g
bW9yZSBzaW1pbGFyIHRvIGxvb3BzIHdpdGggdGhlIG9sZCBmb3J3YXJkIGl0ZXJhdGlvbiwKKyAq
IHNob3dpbmcgYSB3YXkgdG8gY29udmVydCBzaW1wbGUgZm9yKCkgbG9vcHM6CisgKiBcY29kZQor
ICogdm9pZCBmb3J3YXJkMihDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhciBj
OworICogICAgIGZvcihjPWl0LmZpcnN0UG9zdEluYygpOyBjIT1DaGFyYWN0ZXJJdGVyYXRvcjo6
RE9ORTsgYz1pdC5uZXh0UG9zdEluYygpKSB7CisgKiAgICAgICAgICAvLyB1c2UgYworICogICAg
ICB9CisgKiB9CisgKiBcZW5kY29kZQorICogQmFja3dhcmQgaXRlcmF0aW9uIHdpdGggc2V0VG9F
bmQoKSBhbmQgaGFzUHJldmlvdXMoKToKKyAqIFxjb2RlCisgKiAgdm9pZCBiYWNrd2FyZDEoQ2hh
cmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgIFVDaGFyMzIgYzsKKyAqICAgICAgZm9yKGl0
LnNldFRvRW5kKCk7IGl0Lmhhc1ByZXZpb3VzKCk7KSB7CisgKiAgICAgICAgIGM9aXQucHJldmlv
dXMzMigpOworICogICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRj
b2RlCisgKiBCYWNrd2FyZCBpdGVyYXRpb24gd2l0aCBhIG1vcmUgdHJhZGl0aW9uYWwgZm9yKCkg
bG9vcDoKKyAqIFxjb2RlCisgKiB2b2lkIGJhY2t3YXJkMihDaGFyYWN0ZXJJdGVyYXRvciAmaXQp
IHsKKyAqICAgICBVQ2hhciBjOworICogICAgIGZvcihjPWl0Lmxhc3QoKTsgYyE9Q2hhcmFjdGVy
SXRlcmF0b3I6OkRPTkU7IGM9aXQucHJldmlvdXMoKSkgeworICogICAgICAgICAvLyB1c2UgYwor
ICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqCisgKiBFeGFtcGxlIGZvciByYW5kb20g
YWNjZXNzOgorICogXGNvZGUKKyAqICB2b2lkIHJhbmRvbShDaGFyYWN0ZXJJdGVyYXRvciAmaXQp
IHsKKyAqICAgICAgLy8gc2V0IHRvIHRoZSB0aGlyZCBjb2RlIHBvaW50IGZyb20gdGhlIGJlZ2lu
bmluZworICogICAgICBpdC5tb3ZlMzIoMywgQ2hhcmFjdGVySXRlcmF0b3I6OmtTdGFydCk7Cisg
KiAgICAgIC8vIGdldCBhIGNvZGUgcG9pbnQgZnJvbSBoZXJlIHdpdGhvdXQgbW92aW5nIHRoZSBw
b3NpdGlvbgorICogICAgICBVQ2hhcjMyIGM9aXQuY3VycmVudDMyKCk7CisgKiAgICAgIC8vIGdl
dCB0aGUgcG9zaXRpb24KKyAqICAgICAgaW50MzJfdCBwb3M9aXQuZ2V0SW5kZXgoKTsKKyAqICAg
ICAgLy8gZ2V0IHRoZSBwcmV2aW91cyBjb2RlIHVuaXQKKyAqICAgICAgVUNoYXIgdT1pdC5wcmV2
aW91cygpOworICogICAgICAvLyBtb3ZlIGJhY2sgb25lIG1vcmUgY29kZSB1bml0CisgKiAgICAg
IGl0Lm1vdmUoLTEsIENoYXJhY3Rlckl0ZXJhdG9yOjprQ3VycmVudCk7CisgKiAgICAgIC8vIHNl
dCB0aGUgcG9zaXRpb24gYmFjayB0byB3aGVyZSBpdCB3YXMKKyAqICAgICAgLy8gYW5kIHJlYWQg
dGhlIHNhbWUgY29kZSBwb2ludCBjIGFuZCBtb3ZlIGJleW9uZCBpdAorICogICAgICBpdC5zZXRJ
bmRleChwb3MpOworICogICAgICBpZihjIT1pdC5uZXh0MzJQb3N0SW5jKCkpIHsKKyAqICAgICAg
ICAgIGV4aXQoMSk7IC8vIENoYXJhY3Rlckl0ZXJhdG9yIGluY29uc2lzdGVudAorICogICAgICB9
CisgKiAgfQorICogXGVuZGNvZGUKKyAqCisgKiA8cD5FeGFtcGxlcywgZXNwZWNpYWxseSBmb3Ig
dGhlIG9sZCBBUEk6PC9wPgorICoKKyAqIEZ1bmN0aW9uIHByb2Nlc3NpbmcgY2hhcmFjdGVycywg
aW4gdGhpcyBleGFtcGxlIHNpbXBsZSBvdXRwdXQKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZv
aWQgcHJvY2Vzc0NoYXIoIFVDaGFyIGMgKQorICogIHsKKyAqICAgICAgY291dCA8PCAiICIgPDwg
YzsKKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSB0aGUgdGV4dCBm
cm9tIHN0YXJ0IHRvIGZpbmlzaAorICogPHByZT4gCisgKiBcY29kZQorICogIHZvaWQgdHJhdmVy
c2VGb3J3YXJkKENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyKQorICogIHsKKyAqICAgICAgZm9yKFVD
aGFyIGMgPSBpdGVyLmZpcnN0KCk7IGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgYyA9IGl0
ZXIubmV4dCgpKSB7CisgKiAgICAgICAgICBwcm9jZXNzQ2hhcihjKTsKKyAqICAgICAgfQorICog
IH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIFRyYXZlcnNlIHRoZSB0ZXh0IGJhY2t3YXJk
cywgZnJvbSBlbmQgdG8gc3RhcnQKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZvaWQgdHJhdmVy
c2VCYWNrd2FyZChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlcikKKyAqICB7CisgKiAgICAgIGZvcihV
Q2hhciBjID0gaXRlci5sYXN0KCk7IGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgYyA9IGl0
ZXIucHJldmlvdXMoKSkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgIH0K
KyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSBib3RoIGZvcndhcmQg
YW5kIGJhY2t3YXJkIGZyb20gYSBnaXZlbiBwb3NpdGlvbiBpbiB0aGUgdGV4dC4gCisgKiBDYWxs
cyB0byBub3RCb3VuZGFyeSgpIGluIHRoaXMgZXhhbXBsZSByZXByZXNlbnRzIHNvbWUgYWRkaXRp
b25hbCBzdG9wcGluZyBjcml0ZXJpYS4KKyAqIDxwcmU+CisgKiBcY29kZQorICogdm9pZCB0cmF2
ZXJzZU91dChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlciwgaW50MzJfdCBwb3MpCisgKiB7CisgKiAg
ICAgIFVDaGFyIGM7CisgKiAgICAgIGZvciAoYyA9IGl0ZXIuc2V0SW5kZXgocG9zKTsKKyAqICAg
ICAgYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIChVbmljb2RlOjppc0xldHRlcihjKSB8
fCBVbmljb2RlOjppc0RpZ2l0KGMpKTsKKyAqICAgICAgICAgIGMgPSBpdGVyLm5leHQoKSkge30K
KyAqICAgICAgaW50MzJfdCBlbmQgPSBpdGVyLmdldEluZGV4KCk7CisgKiAgICAgIGZvciAoYyA9
IGl0ZXIuc2V0SW5kZXgocG9zKTsKKyAqICAgICAgICAgIGMgIT0gQ2hhcmFjdGVySXRlcmF0b3Iu
RE9ORSAmJiAoVW5pY29kZTo6aXNMZXR0ZXIoYykgfHwgVW5pY29kZTo6aXNEaWdpdChjKSk7Cisg
KiAgICAgICAgICBjID0gaXRlci5wcmV2aW91cygpKSB7fQorICogICAgICBpbnQzMl90IHN0YXJ0
ID0gaXRlci5nZXRJbmRleCgpICsgMTsKKyAqICAKKyAqICAgICAgY291dCA8PCAic3RhcnQ6ICIg
PDwgc3RhcnQgPDwgIiBlbmQ6ICIgPDwgZW5kIDw8IGVuZGw7CisgKiAgICAgIGZvciAoYyA9IGl0
ZXIuc2V0SW5kZXgoc3RhcnQpOyBpdGVyLmdldEluZGV4KCkgPCBlbmQ7IGMgPSBpdGVyLm5leHQo
KSApIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMpOworICogICAgIH0KKyAqICB9CisgKiBc
ZW5kY29kZQorICogPC9wcmU+CisgKiBDcmVhdGluZyBhIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9y
IGFuZCBjYWxsaW5nIHRoZSB0ZXN0IGZ1bmN0aW9ucworICogPHByZT4KKyAqIFxjb2RlCisgKiAg
dm9pZCBDaGFyYWN0ZXJJdGVyYXRvcl9FeGFtcGxlKCB2b2lkICkKKyAqICAgeworICogICAgICAg
Y291dCA8PCBlbmRsIDw8ICI9PT09PSBDaGFyYWN0ZXJJdGVyYXRvcl9FeGFtcGxlOiA9PT09PSIg
PDwgZW5kbDsKKyAqICAgICAgIFVuaWNvZGVTdHJpbmcgdGV4dCgiRWluIGtsZWluZXIgU2F0ei4i
KTsKKyAqICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yKHRleHQpOworICog
ICAgICAgY291dCA8PCAiLS0tLS0gdHJhdmVyc2VGb3J3YXJkOiAtLS0tLS0tLS0tLSIgPDwgZW5k
bDsKKyAqICAgICAgIHRyYXZlcnNlRm9yd2FyZCggaXRlcmF0b3IgKTsKKyAqICAgICAgIGNvdXQg
PDwgZW5kbCA8PCBlbmRsIDw8ICItLS0tLSB0cmF2ZXJzZUJhY2t3YXJkOiAtLS0tLS0tLS0tIiA8
PCBlbmRsOworICogICAgICAgdHJhdmVyc2VCYWNrd2FyZCggaXRlcmF0b3IgKTsKKyAqICAgICAg
IGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICItLS0tLSB0cmF2ZXJzZU91dDogLS0tLS0tLS0tLS0t
LS0tIiA8PCBlbmRsOworICogICAgICAgdHJhdmVyc2VPdXQoIGl0ZXJhdG9yLCA3ICk7CisgKiAg
ICAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0iIDw8IGVuZGw7CisgKiAgIH0KKyAq
IFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3Mg
VV9DT01NT05fQVBJIENoYXJhY3Rlckl0ZXJhdG9yIDogcHVibGljIEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogT3JpZ2luIGVudW1lcmF0aW9uIGZv
ciB0aGUgbW92ZSgpIGFuZCBtb3ZlMzIoKSBmdW5jdGlvbnMuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgZW51bSBFT3JpZ2luIHsga1N0YXJ0LCBrQ3VycmVudCwga0VuZCB9
OworCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3Rvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIH5DaGFyYWN0ZXJJdGVyYXRvcigpOworCisgICAgLyoqCisg
ICAgICogUmV0dXJucyBhIHBvaW50ZXIgdG8gYSBuZXcgQ2hhcmFjdGVySXRlcmF0b3Igb2YgdGhl
IHNhbWUKKyAgICAgKiBjb25jcmV0ZSBjbGFzcyBhcyB0aGlzIG9uZSwgYW5kIHJlZmVycmluZyB0
byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSB0ZXh0LXN0b3JhZ2Ugb2Jq
ZWN0IGFzIHRoaXMgb25lLiAgVGhlCisgICAgICogY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBk
ZWxldGluZyB0aGUgbmV3IGNsb25lLiAgCisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBu
ZXcgQ2hhcmFjdGVySXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdCA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29k
ZSB1bml0IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBj
b2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24g
d2l0aCBuZXh0KCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBp
dGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBVQ2hhciAgICAgICAgIGZpcnN0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisg
ICAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSB1bml0LCBhbmQgbW92ZXMg
dGhlIHBvc2l0aW9uCisgICAgICogdG8gdGhlIHNlY29uZCBjb2RlIHVuaXQuIFRoaXMgaXMgYW4g
YWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9u
IHdpdGggbmV4dFBvc3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQg
aW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3RQb3N0SW5jKHZvaWQpOworCisgICAgLyoq
CisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9p
bnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUg
dW5pdCwKKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRo
IG5leHQzMigpLgorICAgICAqIE5vdGUgdGhhdCBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0
SW5jKCksIGJlZ2lubmluZyB3aXRoLAorICAgICAqIGUuZy4sIHNldFRvU3RhcnQoKSBvciBmaXJz
dFBvc3RJbmMoKSwgaXMgbW9yZSBlZmZpY2llbnQuCisgICAgICogQHJldHVybiB0aGUgZmlyc3Qg
Y29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyKHZvaWQpID0gMDsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJz
dCBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0
IGNvZGUgcG9pbnQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICAgKiB0byB0aGUgc2Vjb25k
IGNvZGUgcG9pbnQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAg
ICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLgorICAgICAqIEBy
ZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmly
c3QzMlBvc3RJbmModm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0
byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IG9yIGNvZGUgcG9pbnQgaW4gaXRzCisgICAg
ICogaXRlcmF0aW9uIHJhbmdlLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGEgZm9yd2FyZAor
ICAgICAqIGl0ZXJhdGlvbiB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9zdEluYygpLgor
ICAgICAqIEByZXR1cm4gdGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICBz
ZXRUb1N0YXJ0KCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZl
ciB0byB0aGUgbGFzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBh
bmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJl
Z2luIGFuIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkuCisgICAgICogQHJldHVybiB0aGUgbGFz
dCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBVQ2hhciAgICAgICAgIGxhc3Qodm9pZCkgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0
cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisg
ICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91
czMyKCkuCisgICAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBsYXN0MzIodm9p
ZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gdGhlIGVuZCBv
ZiBpdHMgaXRlcmF0aW9uIHJhbmdlLCBqdXN0IGJlaGluZAorICAgICAqIHRoZSBsYXN0IGNvZGUg
dW5pdCBvciBjb2RlIHBvaW50LiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGEgYmFja3dhcmQK
KyAgICAgKiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIoKS4KKyAgICAg
KiBAcmV0dXJuIHRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgIHNldFRvRW5k
KCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUg
InBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVj
dCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAgICAgKiByZXR1cm5zIHRoYXQgY29kZSB1
bml0LiAgCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5p
dCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlICJwb3NpdGlv
biItdGggY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUNoYXIgICAgICAgICBzZXRJbmRleChpbnQzMl90IHBvc2l0aW9uKSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgYmVnaW5uaW5n
IG9mIHRoZSBjb2RlIHBvaW50CisgICAgICogdGhhdCBjb250YWlucyB0aGUgInBvc2l0aW9uIi10
aCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0
b3IgcmVmZXJzIHRvLCBhbmQKKyAgICAgKiByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4KKyAgICAg
KiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyBhZGp1c3RlZCB0byB0aGUgYmVnaW5uaW5nIG9mIHRo
ZSBjb2RlIHBvaW50CisgICAgICogKGl0cyBmaXJzdCBjb2RlIHVuaXQpLgorICAgICAqIEBwYXJh
bSBwb3NpdGlvbiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQgaW4gdGhlIHRleHQtc3RvcmFn
ZSBvYmplY3QKKyAgICAgKiBAcmV0dXJuIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgcG9pbnQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAg
IHNldEluZGV4MzIoaW50MzJfdCBwb3NpdGlvbikgPSAwOworCisgICAgLyoqCisgICAgICogUmV0
dXJucyB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLiAKKyAg
ICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4gCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGN1cnJlbnQodm9pZCkgY29u
c3QgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50
IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLiAgCisgICAgICogQHJldHVybiB0aGUg
Y3VycmVudCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIzMiAgICAgICBjdXJyZW50MzIodm9pZCkgY29uc3QgPSAwOworICAgICAg
ICAKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5kZXgoKSksIGFuZCByZXR1cm5z
IHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSB1
bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIg
ICAgICAgICBuZXh0KHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5j
ZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICog
KHRvd2FyZCBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhl
cmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9O
RS4KKyAgICAgKiBOb3RlIHRoYXQgaXRlcmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIHNlbWFu
dGljcyBpcyBsZXNzCisgICAgICogZWZmaWNpZW50IHRoYW4gaXRlcmF0aW9uIHdpdGggInBvc3Qt
aW5jcmVtZW50IiBzZW1hbnRpY3MKKyAgICAgKiB0aGF0IGlzIHByb3ZpZGVkIGJ5IG5leHQzMlBv
c3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgcG9pbnQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMih2
b2lkKSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2
aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgc3Rh
cnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUKKyAg
ICAgKiBubyBtb3JlIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuICAKKyAgICAg
KiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIHByZXZpb3VzKHZvaWQpID0gMDsK
KworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIHN0YXJ0SW5kZXgoKSksIGFuZCBy
ZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29k
ZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuIAorICAgICAqIEByZXR1cm4gdGhlIHBy
ZXZpb3VzIGNvZGUgcG9pbnQuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIzMiAgICAgICBwcmV2aW91czMyKHZvaWQpID0gMDsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBj
b2RlIHBvaW50cworICAgICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlLgorICAgICAqIFRoaXMgaXMgdXNlZCB3aXRoIHByZXZpb3VzKCkgb3IgcHJl
dmlvdXMzMigpIGluIGJhY2t3YXJkCisgICAgICogaXRlcmF0aW9uLgorICAgICAqIEByZXR1cm4g
RkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAg
ICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLCBy
ZXR1cm4gVFJVRSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzUHJldmlvdXMoKSA9IDA7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3Rv
cmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGZpcnN0KCku
ICBTaW5jZSBpdCdzCisgICAgICogcG9zc2libGUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yIHRoYXQg
aXRlcmF0ZXMgYWNyb3NzIG9ubHkKKyAgICAgKiBwYXJ0IG9mIGEgdGV4dC1zdG9yYWdlIG9iamVj
dCwgdGhpcyBudW1iZXIgaXNuJ3QKKyAgICAgKiBuZWNlc3NhcmlseSAwLiAgCisgICAgICogQHJl
dHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisg
ICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0ZXIgcmV0dXJuZWQgYnkgZmlyc3QoKS4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBzdGFy
dEluZGV4KHZvaWQpIGNvbnN0OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRo
ZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9i
amVjdCBvZiB0aGUgcG9zaXRpb24gaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBjaGFyYWN0ZXIKKyAg
ICAgKiByZXR1cm5lZCBieSBsYXN0KCkuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1lcmljIGlu
ZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUg
cG9zaXRpb24gaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiByZXR1cm5l
ZCBieSBsYXN0KCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5l
IGludDMyX3QgICAgICAgZW5kSW5kZXgodm9pZCkgY29uc3Q7CisgICAgICAgIAorICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1z
dG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0ZXIgdGhlIGl0ZXJhdG9yIGN1cnJl
bnRseSByZWZlcnMgdG8KKyAgICAgKiAoaS5lLiwgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBj
dXJyZW50KCkpLiAgCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyaWMgaW5kZXggaW4gdGhlIHRl
eHQtc3RvcmFnZSBvYmplY3Qgb2YgCisgICAgICogdGhlIGNoYXJhY3RlciB0aGUgaXRlcmF0b3Ig
Y3VycmVudGx5IHJlZmVycyB0bworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IGlubGluZSBpbnQzMl90ICAgICAgIGdldEluZGV4KHZvaWQpIGNvbnN0OworCisgICAgLyoqCisg
ICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBlbnRpcmUgdGV4dCBpbiB0aGUgdW5kZXJs
eWluZworICAgICAqIHRleHQtc3RvcmFnZSBvYmplY3QuCisgICAgICogQHJldHVybiB0aGUgbGVu
Z3RoIG9mIHRoZSBlbnRpcmUgdGV4dCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgICAgICAgICBn
ZXRMZW5ndGgoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBv
c2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0
aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisg
ICAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgdW5pdHMg
Zm9yd2FyZAorICAgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBu
ZWdhdGl2ZSBkZWx0YS4KKyAgICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZl
IHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgICAqIGEgbmVn
YXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4g
ZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAgICogQHJldHVybiB0aGUg
bmV3IHBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90ICAgICAgbW92ZShpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbikgPSAwOwor
CisgICAgLyoqCisgICAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8g
dGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0
aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGl0c2VsZi4KKyAgICAgKiBUaGUgbW92ZW1lbnQg
aXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSBwb2ludHMgZm9yd2FyZAorICAgICAqIG9y
IGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAg
ICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdpbi4gQSBwb3Np
dGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMg
YmFja3dhcmQuCisgICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFy
dCwga0N1cnJlbnQsIGtFbmR9CisgICAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92
ZTMyKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKSA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBDb3BpZXMgdGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcK
KyAgICAgKiByZWZlcnJlZCB0byBieSAicmVzdWx0Ii4gIAorICAgICAqIEBwYXJhbSByZXN1bHQg
UmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4gIAorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRl
eHQoVW5pY29kZVN0cmluZyYgIHJlc3VsdCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgLyoqCisg
ICAgICogRW1wdHkgY29uc3RydWN0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9y
LCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0aCBmaWVsZCBpbiB0aGlzIGJhc2UgY2xhc3MuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoaW50MzJf
dCBsZW5ndGgpOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0
aGUgbGVuZ3RoIGFuZCBwb3NpdGlvbiBmaWVsZHMgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3Qg
bGVuZ3RoLCBpbnQzMl90IHBvc2l0aW9uKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9y
LCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0aCwgc3RhcnQsIGVuZCwgYW5kIHBvc2l0aW9uIGZpZWxk
cyBpbiB0aGlzIGJhc2UgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgQ2hhcmFjdGVySXRlcmF0b3IoaW50MzJfdCBsZW5ndGgsIGludDMyX3QgdGV4dEJlZ2luLCBp
bnQzMl90IHRleHRFbmQsIGludDMyX3QgcG9zaXRpb24pOworICAKKyAgICAvKioKKyAgICAgKiBD
b3B5IGNvbnN0cnVjdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIHRoYXQgVGhlIENoYXJhY3Rl
ckl0ZXJhdG9yIHRvIGJlIGNvcGllZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIENoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IENoYXJhY3Rlckl0ZXJhdG9yICZ0aGF0KTsKKwor
ICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICBTZXRzIHRoaXMgQ2hhcmFjdGVy
SXRlcmF0b3IgdG8gaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwKKyAgICAgKiBhcyB0aGUgb25lIHBh
c3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgcGFzc2Vk
IGluLgorICAgICAqIEByZXR1cm4gdGhlIG5ld2x5IHNldCBDaGFyYWN0ZXJJdGVyYXRvci4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvciAmb3Bl
cmF0b3I9KGNvbnN0IENoYXJhY3Rlckl0ZXJhdG9yICZ0aGF0KTsKKworICAgIC8qKgorICAgICAq
IEJhc2UgY2xhc3MgdGV4dCBsZW5ndGggZmllbGQuCisgICAgICogTmVjZXNzYXJ5IHRoaXMgZm9y
IGNvcnJlY3QgZ2V0VGV4dCgpIGFuZCBoYXNoQ29kZSgpLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGludDMyX3QgdGV4dExlbmd0aDsKKworICAgIC8qKgorICAgICAqIEJh
c2UgY2xhc3MgZmllbGQgZm9yIHRoZSBjdXJyZW50IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIHBvczsKKworICAgIC8qKgorICAgICAqIEJh
c2UgY2xhc3MgZmllbGQgZm9yIHRoZSBzdGFydCBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIGJlZ2luOworCisgICAg
LyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9u
IHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIGVu
ZDsKK307CisKK2lubGluZSBVQm9vbAorRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yOjpvcGVyYXRv
ciE9KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3QgeworICAgIHJl
dHVybiAhb3BlcmF0b3I9PSh0aGF0KTsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0
ZXJhdG9yOjpzZXRUb1N0YXJ0KCkgeworICAgIHJldHVybiBtb3ZlKDAsIGtTdGFydCk7Cit9CisK
K2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6c2V0VG9FbmQoKSB7CisgICAgcmV0
dXJuIG1vdmUoMCwga0VuZCk7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRv
cjo6c3RhcnRJbmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIGJlZ2luOworfQorCitpbmxp
bmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OmVuZEluZGV4KHZvaWQpIGNvbnN0IHsKKyAg
ICByZXR1cm4gZW5kOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6Omdl
dEluZGV4KHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gcG9zOworfQorCitpbmxpbmUgaW50MzJf
dAorQ2hhcmFjdGVySXRlcmF0b3I6OmdldExlbmd0aCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJu
IHRleHRMZW5ndGg7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xv
Y2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWFkNWNiNTQ2ZWJlMzk3ZWY0MzZkZjM2NTAzZWI0MzcxYzM4NjY5
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaApAQCAt
MCwwICsxLDgxNCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdo
dCAoQykgMTk5Ni0yMDE1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29y
cG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyoKKyogRmlsZSBsb2NpZC5oCisqCisqIENyZWF0ZWQgYnk6IEhlbGVuYSBT
aGloCisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUg
ICAgICAgIERlc2NyaXB0aW9uCisqICAgMDIvMTEvOTcgICAgYWxpdSAgICAgICAgQ2hhbmdlZCBn
TG9jUGF0aCB0byBmZ0xvY1BhdGggYW5kIGFkZGVkIG1ldGhvZHMgdG8KKyogICAgICAgICAgICAg
ICAgICAgICAgICAgICBnZXQgYW5kIHNldCBpdC4KKyogICAwNC8wMi85NyAgICBhbGl1ICAgICAg
ICBNYWRlIG9wZXJhdG9yIT0gaW5saW5lOyBmaXhlZCByZXR1cm4gdmFsdWUgb2YgZ2V0TmFtZSgp
LgorKiAgIDA0LzE1Lzk3ICAgIGFsaXUgICAgICAgIENsZWFudXAgZm9yIEFJWC9XaW4zMi4KKyog
ICAwNC8yNC85NyAgICBhbGl1ICAgICAgICBOdW1lcm91cyBjaGFuZ2VzIHBlciBjb2RlIHJldmll
dy4KKyogICAwOC8xOC85OCAgICBzdGVwaGVuICAgICBBZGRlZCB0b2tlbml6ZVN0cmluZygpLGNo
YW5nZWQgZ2V0RGlzcGxheU5hbWUoKQorKiAgIDA5LzA4Lzk4ICAgIHN0ZXBoZW4gICAgIE1vdmVk
IGRlZmluaXRpb24gb2Yga0VtcHR5U3RyaW5nIGZvciBNYWMgUG9ydAorKiAgIDExLzA5Lzk5ICAg
IHdlaXYgICAgICAgIEFkZGVkIGNvbnN0IGNoYXIgKiBnZXROYW1lKCkgY29uc3Q7CisqICAgMDQv
MTIvMDAgICAgc3JsICAgICAgICAgcmVtb3ZpbmcgdW5pY29kZXN0cmluZyBhcGkncyBhbmQgY2Fj
aGVkIGhhc2ggY29kZQorKiAgIDA4LzEwLzAxICAgIGdyaG90ZW4gICAgIENoYW5nZSB0aGUgc3Rh
dGljIExvY2FsZXMgdG8gYWNjZXNzb3IgZnVuY3Rpb25zCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyovCisKKyNpZm5kZWYgTE9DSURfSAorI2RlZmluZSBMT0NJRF9ICisKKyNpbmNsdWRlICJ1bmlj
b2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdW5pc3RyLmgiCisjaW5jbHVkZSAidW5pY29kZS9wdXRpbC5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdWxvYy5oIgorI2luY2x1ZGUgInVuaWNvZGUvc3RyZW51bS5oIgorCisvKioKKyAqIFxm
aWxlCisgKiBcYnJpZWYgQysrIEFQSTogTG9jYWxlIElEIG9iamVjdC4KKyAqLworCitVX05BTUVT
UEFDRV9CRUdJTgorCisvLyBGb3J3YXJkIERlY2xhcmF0aW9ucwordm9pZCBVX0NBTExDT05WIGxv
Y2FsZV9hdmFpbGFibGVfaW5pdCgpOyAvKio8IEBpbnRlcm5hbCAqLworCisvKioKKyAqIEEgPGNv
ZGU+TG9jYWxlPC9jb2RlPiBvYmplY3QgcmVwcmVzZW50cyBhIHNwZWNpZmljIGdlb2dyYXBoaWNh
bCwgcG9saXRpY2FsLAorICogb3IgY3VsdHVyYWwgcmVnaW9uLiBBbiBvcGVyYXRpb24gdGhhdCBy
ZXF1aXJlcyBhIDxjb2RlPkxvY2FsZTwvY29kZT4gdG8gcGVyZm9ybQorICogaXRzIHRhc2sgaXMg
Y2FsbGVkIDxlbT5sb2NhbGUtc2Vuc2l0aXZlPC9lbT4gYW5kIHVzZXMgdGhlIDxjb2RlPkxvY2Fs
ZTwvY29kZT4KKyAqIHRvIHRhaWxvciBpbmZvcm1hdGlvbiBmb3IgdGhlIHVzZXIuIEZvciBleGFt
cGxlLCBkaXNwbGF5aW5nIGEgbnVtYmVyCisgKiBpcyBhIGxvY2FsZS1zZW5zaXRpdmUgb3BlcmF0
aW9uLS10aGUgbnVtYmVyIHNob3VsZCBiZSBmb3JtYXR0ZWQKKyAqIGFjY29yZGluZyB0byB0aGUg
Y3VzdG9tcy9jb252ZW50aW9ucyBvZiB0aGUgdXNlcidzIG5hdGl2ZSBjb3VudHJ5LAorICogcmVn
aW9uLCBvciBjdWx0dXJlLgorICoKKyAqIFRoZSBMb2NhbGUgY2xhc3MgaXMgbm90IHN1aXRhYmxl
IGZvciBzdWJjbGFzc2luZy4KKyAqCisgKiA8UD4KKyAqIFlvdSBjYW4gY3JlYXRlIGEgPGNvZGU+
TG9jYWxlPC9jb2RlPiBvYmplY3QgdXNpbmcgdGhlIGNvbnN0cnVjdG9yIGluCisgKiB0aGlzIGNs
YXNzOgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICog
ICAgICAgTG9jYWxlKCBjb25zdCAgIGNoYXIqICBsYW5ndWFnZSwKKyAqICAgICAgICAgICAgICAg
Y29uc3QgICBjaGFyKiAgY291bnRyeSwKKyAqICAgICAgICAgICAgICAgY29uc3QgICBjaGFyKiAg
dmFyaWFudCk7CisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9u
bHkKKyAqIFRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JzIGlzIGEgdmFsaWQg
PFNUUk9ORz5JU08KKyAqIExhbmd1YWdlIENvZGUuPC9TVFJPTkc+IFRoZXNlIGNvZGVzIGFyZSB0
aGUgbG93ZXItY2FzZSB0d28tbGV0dGVyCisgKiBjb2RlcyBhcyBkZWZpbmVkIGJ5IElTTy02Mzku
CisgKiBZb3UgY2FuIGZpbmQgYSBmdWxsIGxpc3Qgb2YgdGhlc2UgY29kZXMgYXQ6CisgKiA8QlI+
PGEgaHJlZiA9Imh0dHA6Ly93d3cubG9jLmdvdi9zdGFuZGFyZHMvaXNvNjM5LTIvIj4KKyAqIGh0
dHA6Ly93d3cubG9jLmdvdi9zdGFuZGFyZHMvaXNvNjM5LTIvPC9hPgorICoKKyAqIDxQPgorICog
VGhlIHNlY29uZCBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JzIGlzIGEgdmFsaWQgPFNUUk9O
Rz5JU08gQ291bnRyeQorICogQ29kZS48L1NUUk9ORz4gVGhlc2UgY29kZXMgYXJlIHRoZSB1cHBl
ci1jYXNlIHR3by1sZXR0ZXIgY29kZXMKKyAqIGFzIGRlZmluZWQgYnkgSVNPLTMxNjYuCisgKiBZ
b3UgY2FuIGZpbmQgYSBmdWxsIGxpc3Qgb2YgdGhlc2UgY29kZXMgYXQgYSBudW1iZXIgb2Ygc2l0
ZXMsIHN1Y2ggYXM6CisgKiA8QlI+PGEgaHJlZj0iaHR0cDovL3d3dy5pc28ub3JnL2lzby9lbi9w
cm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEvaW5kZXguaHRtbCI+CisgKiBodHRwOi8vd3d3Lmlzby5v
cmcvaXNvL2VuL3Byb2RzLXNlcnZpY2VzL2lzbzMxNjZtYS9pbmRleC5odG1sPC9hPgorICoKKyAq
IDxQPgorICogVGhlIHRoaXJkIGNvbnN0cnVjdG9yIHJlcXVpcmVzIGEgdGhpcmQgYXJndW1lbnQt
LXRoZSA8U1RST05HPlZhcmlhbnQuPC9TVFJPTkc+CisgKiBUaGUgVmFyaWFudCBjb2RlcyBhcmUg
dmVuZG9yIGFuZCBicm93c2VyLXNwZWNpZmljLgorICogRm9yIGV4YW1wbGUsIHVzZSBSRVZJU0VE
IGZvciBhIGxhbmdhdWdlJ3MgcmV2aXNlZCBzY3JpcHQgb3J0aG9ncmFwaHksIGFuZCBQT1NJWCBm
b3IgUE9TSVguCisgKiBXaGVyZSB0aGVyZSBhcmUgdHdvIHZhcmlhbnRzLCBzZXBhcmF0ZSB0aGVt
IHdpdGggYW4gdW5kZXJzY29yZSwgYW5kCisgKiBwdXQgdGhlIG1vc3QgaW1wb3J0YW50IG9uZSBm
aXJzdC4gRm9yCisgKiBleGFtcGxlLCBhIFRyYWRpdGlvbmFsIFNwYW5pc2ggY29sbGF0aW9uIG1p
Z2h0IGJlIHJlZmVyZW5jZWQsIHdpdGgKKyAqICJFUyIsICJFUyIsICJUcmFkaXRpb25hbF9QT1NJ
WCIuCisgKgorICogPFA+CisgKiBCZWNhdXNlIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3Qg
aXMganVzdCBhbiBpZGVudGlmaWVyIGZvciBhIHJlZ2lvbiwKKyAqIG5vIHZhbGlkaXR5IGNoZWNr
IGlzIHBlcmZvcm1lZCB3aGVuIHlvdSBjb25zdHJ1Y3QgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+Lgor
ICogSWYgeW91IHdhbnQgdG8gc2VlIHdoZXRoZXIgcGFydGljdWxhciByZXNvdXJjZXMgYXJlIGF2
YWlsYWJsZSBmb3IgdGhlCisgKiA8Y29kZT5Mb2NhbGU8L2NvZGU+IHlvdSBjb25zdHJ1Y3QsIHlv
dSBtdXN0IHF1ZXJ5IHRob3NlIHJlc291cmNlcy4gRm9yCisgKiBleGFtcGxlLCBhc2sgdGhlIDxj
b2RlPk51bWJlckZvcm1hdDwvY29kZT4gZm9yIHRoZSBsb2NhbGVzIGl0IHN1cHBvcnRzCisgKiB1
c2luZyBpdHMgPGNvZGU+Z2V0QXZhaWxhYmxlTG9jYWxlczwvY29kZT4gbWV0aG9kLgorICogPEJS
PjxTVFJPTkc+Tm90ZTo8L1NUUk9ORz4gV2hlbiB5b3UgYXNrIGZvciBhIHJlc291cmNlIGZvciBh
IHBhcnRpY3VsYXIKKyAqIGxvY2FsZSwgeW91IGdldCBiYWNrIHRoZSBiZXN0IGF2YWlsYWJsZSBt
YXRjaCwgbm90IG5lY2Vzc2FyaWx5CisgKiBwcmVjaXNlbHkgd2hhdCB5b3UgYXNrZWQgZm9yLiBG
b3IgbW9yZSBpbmZvcm1hdGlvbiwgbG9vayBhdAorICogPGNvZGU+UmVzb3VyY2VCdW5kbGU8L2Nv
ZGU+LgorICoKKyAqIDxQPgorICogVGhlIDxjb2RlPkxvY2FsZTwvY29kZT4gY2xhc3MgcHJvdmlk
ZXMgYSBudW1iZXIgb2YgY29udmVuaWVudCBjb25zdGFudHMKKyAqIHRoYXQgeW91IGNhbiB1c2Ug
dG8gY3JlYXRlIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0cyBmb3IgY29tbW9ubHkgdXNlZAor
ICogbG9jYWxlcy4gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgcmVmZXJzIHRvIGEgPGNvZGU+
TG9jYWxlPC9jb2RlPiBvYmplY3QKKyAqIGZvciB0aGUgVW5pdGVkIFN0YXRlczoKKyAqIFxodG1s
b25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICAgIExvY2FsZTo6
Z2V0VVMoKQorICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5
CisgKgorICogPFA+CisgKiBPbmNlIHlvdSd2ZSBjcmVhdGVkIGEgPGNvZGU+TG9jYWxlPC9jb2Rl
PiB5b3UgY2FuIHF1ZXJ5IGl0IGZvciBpbmZvcm1hdGlvbiBhYm91dAorICogaXRzZWxmLiBVc2Ug
PGNvZGU+Z2V0Q291bnRyeTwvY29kZT4gdG8gZ2V0IHRoZSBJU08gQ291bnRyeSBDb2RlIGFuZAor
ICogPGNvZGU+Z2V0TGFuZ3VhZ2U8L2NvZGU+IHRvIGdldCB0aGUgSVNPIExhbmd1YWdlIENvZGUu
IFlvdSBjYW4KKyAqIHVzZSA8Y29kZT5nZXREaXNwbGF5Q291bnRyeTwvY29kZT4gdG8gZ2V0IHRo
ZQorICogbmFtZSBvZiB0aGUgY291bnRyeSBzdWl0YWJsZSBmb3IgZGlzcGxheWluZyB0byB0aGUg
dXNlci4gU2ltaWxhcmx5LAorICogeW91IGNhbiB1c2UgPGNvZGU+Z2V0RGlzcGxheUxhbmd1YWdl
PC9jb2RlPiB0byBnZXQgdGhlIG5hbWUgb2YKKyAqIHRoZSBsYW5ndWFnZSBzdWl0YWJsZSBmb3Ig
ZGlzcGxheWluZyB0byB0aGUgdXNlci4gSW50ZXJlc3RpbmdseSwKKyAqIHRoZSA8Y29kZT5nZXRE
aXNwbGF5WFhYPC9jb2RlPiBtZXRob2RzIGFyZSB0aGVtc2VsdmVzIGxvY2FsZS1zZW5zaXRpdmUK
KyAqIGFuZCBoYXZlIHR3byB2ZXJzaW9uczogb25lIHRoYXQgdXNlcyB0aGUgZGVmYXVsdCBsb2Nh
bGUgYW5kIG9uZQorICogdGhhdCB0YWtlcyBhIGxvY2FsZSBhcyBhbiBhcmd1bWVudCBhbmQgZGlz
cGxheXMgdGhlIG5hbWUgb3IgY291bnRyeSBpbgorICogYSBsYW5ndWFnZSBhcHByb3ByaWF0ZSB0
byB0aGF0IGxvY2FsZS4KKyAqCisgKiA8UD4KKyAqIElDVSBwcm92aWRlcyBhIG51bWJlciBvZiBj
bGFzc2VzIHRoYXQgcGVyZm9ybSBsb2NhbGUtc2Vuc2l0aXZlCisgKiBvcGVyYXRpb25zLiBGb3Ig
ZXhhbXBsZSwgdGhlIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gY2xhc3MgZm9ybWF0cworICog
bnVtYmVycywgY3VycmVuY3ksIG9yIHBlcmNlbnRhZ2VzIGluIGEgbG9jYWxlLXNlbnNpdGl2ZSBt
YW5uZXIuIENsYXNzZXMKKyAqIHN1Y2ggYXMgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBoYXZl
IGEgbnVtYmVyIG9mIGNvbnZlbmllbmNlIG1ldGhvZHMKKyAqIGZvciBjcmVhdGluZyBhIGRlZmF1
bHQgb2JqZWN0IG9mIHRoYXQgdHlwZS4gRm9yIGV4YW1wbGUsIHRoZQorICogPGNvZGU+TnVtYmVy
Rm9ybWF0PC9jb2RlPiBjbGFzcyBwcm92aWRlcyB0aGVzZSB0aHJlZSBjb252ZW5pZW5jZSBtZXRo
b2RzCisgKiBmb3IgY3JlYXRpbmcgYSBkZWZhdWx0IDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4g
b2JqZWN0OgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgor
ICogICAgIFVFcnJvckNvZGUgc3VjY2VzcyA9IFVfWkVST19FUlJPUjsKKyAqICAgICBMb2NhbGUg
bXlMb2NhbGU7CisgKiAgICAgTnVtYmVyRm9ybWF0ICpuZjsKKyAqCisgKiAgICAgbmYgPSBOdW1i
ZXJGb3JtYXQ6OmNyZWF0ZUluc3RhbmNlKCBzdWNjZXNzICk7ICAgICAgICAgIGRlbGV0ZSBuZjsK
KyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlQ3VycmVuY3lJbnN0YW5jZSggc3VjY2Vz
cyApOyAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVQZXJjZW50
SW5zdGFuY2UoIHN1Y2Nlc3MgKTsgICBkZWxldGUgbmY7CisgKiA8L3ByZT4KKyAqIFxodG1sb25s
eTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIEVhY2ggb2YgdGhlc2UgbWV0aG9kcyBoYXMg
dHdvIHZhcmlhbnRzOyBvbmUgd2l0aCBhbiBleHBsaWNpdCBsb2NhbGUKKyAqIGFuZCBvbmUgd2l0
aG91dDsgdGhlIGxhdHRlciB1c2luZyB0aGUgZGVmYXVsdCBsb2NhbGUuCisgKiBcaHRtbG9ubHk8
YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgbmYgPSBOdW1iZXJGb3Jt
YXQ6OmNyZWF0ZUluc3RhbmNlKCBteUxvY2FsZSwgc3VjY2VzcyApOyAgICAgICAgICBkZWxldGUg
bmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUN1cnJlbmN5SW5zdGFuY2UoIG15
TG9jYWxlLCBzdWNjZXNzICk7ICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6
OmNyZWF0ZVBlcmNlbnRJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgICBkZWxldGUgbmY7
CisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIEEg
PGNvZGU+TG9jYWxlPC9jb2RlPiBpcyB0aGUgbWVjaGFuaXNtIGZvciBpZGVudGlmeWluZyB0aGUg
a2luZCBvZiBvYmplY3QKKyAqICg8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+KSB0aGF0IHlvdSB3
b3VsZCBsaWtlIHRvIGdldC4gVGhlIGxvY2FsZSBpcworICogPFNUUk9ORz5qdXN0PC9TVFJPTkc+
IGEgbWVjaGFuaXNtIGZvciBpZGVudGlmeWluZyBvYmplY3RzLAorICogPFNUUk9ORz5ub3Q8L1NU
Uk9ORz4gYSBjb250YWluZXIgZm9yIHRoZSBvYmplY3RzIHRoZW1zZWx2ZXMuCisgKgorICogPFA+
CisgKiBFYWNoIGNsYXNzIHRoYXQgcGVyZm9ybXMgbG9jYWxlLXNlbnNpdGl2ZSBvcGVyYXRpb25z
IGFsbG93cyB5b3UKKyAqIHRvIGdldCBhbGwgdGhlIGF2YWlsYWJsZSBvYmplY3RzIG9mIHRoYXQg
dHlwZS4gWW91IGNhbiBzaWZ0CisgKiB0aHJvdWdoIHRoZXNlIG9iamVjdHMgYnkgbGFuZ3VhZ2Us
IGNvdW50cnksIG9yIHZhcmlhbnQsCisgKiBhbmQgdXNlIHRoZSBkaXNwbGF5IG5hbWVzIHRvIHBy
ZXNlbnQgYSBtZW51IHRvIHRoZSB1c2VyLgorICogRm9yIGV4YW1wbGUsIHlvdSBjYW4gY3JlYXRl
IGEgbWVudSBvZiBhbGwgdGhlIGNvbGxhdGlvbiBvYmplY3RzCisgKiBzdWl0YWJsZSBmb3IgYSBn
aXZlbiBsYW5ndWFnZS4gU3VjaCBjbGFzc2VzIGltcGxlbWVudCB0aGVzZQorICogdGhyZWUgY2xh
c3MgbWV0aG9kczoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHBy
ZT4KKyAqICAgICAgIHN0YXRpYyBMb2NhbGUqIGdldEF2YWlsYWJsZUxvY2FsZXMoaW50MzJfdCYg
bnVtTG9jYWxlcykKKyAqICAgICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBnZXREaXNwbGF5TmFt
ZShjb25zdCBMb2NhbGUmICBvYmplY3RMb2NhbGUsCisgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxlJiAgZGlzcGxheUxvY2FsZSwKKyAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBk
aXNwbGF5TmFtZSkKKyAqICAgICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBnZXREaXNwbGF5TmFt
ZShjb25zdCBMb2NhbGUmICBvYmplY3RMb2NhbGUsCisgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcGxheU5hbWUpCisgKiA8L3By
ZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqCisgKiBAc3RhYmxl
IElDVSAyLjAKKyAqIEBzZWUgUmVzb3VyY2VCdW5kbGUKKyAqLworY2xhc3MgVV9DT01NT05fQVBJ
IExvY2FsZSA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1YmxpYzoKKyAgICAvKiogVXNlZnVsIGNvbnN0
YW50IGZvciB0aGUgUm9vdCBsb2NhbGUuIEBzdGFibGUgSUNVIDQuNCAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRSb290KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRFbmdsaXNoKHZvaWQpOworICAgIC8qKiBVc2VmdWwg
Y29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRp
YyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRGcmVuY2godm9pZCk7CisgICAgLyoqIFVzZWZ1
bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3Rh
dGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEdlcm1hbih2b2lkKTsKKyAgICAvKiogVXNl
ZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBz
dGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SXRhbGlhbih2b2lkKTsKKyAgICAvKiog
VXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAg
ICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SmFwYW5lc2Uodm9pZCk7CisgICAg
LyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEtvcmVhbih2b2lkKTsKKyAg
ICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAg
Ki8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2hpbmVzZSh2b2lkKTsK
KyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAy
LjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0U2ltcGxpZmllZENo
aW5lc2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4g
QHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdl
dFRyYWRpdGlvbmFsQ2hpbmVzZSh2b2lkKTsKKworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9y
IHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25z
dCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRGcmFuY2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25z
dGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3Rh
dGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEdlcm1hbnkodm9pZCk7CisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEl0YWx5KHZvaWQpOworICAg
IC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNV
IDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRKYXBhbih2b2lk
KTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3Rh
YmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0S29y
ZWEodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lv
bi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQy
IGdldENoaW5hKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRy
eS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVf
RVhQT1JUMiBnZXRQUkModm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBj
b3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2Fs
ZSAmVV9FWFBPUlQyIGdldFRhaXdhbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZv
ciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VUsodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFu
dCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFVTKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDYW5hZGEodm9pZCk7CisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENhbmFkYUZyZW5jaCh2b2lk
KTsKKworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgZGVmYXVsdCBsb2NhbGUgb2JqZWN0
LCBhIExvY2FsZSBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIElELgorICAgICAqCisgICAgICogQHNl
ZSBnZXREZWZhdWx0CisgICAgICogQHNlZSB1bG9jX2dldERlZmF1bHQKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0
cnVjdCBhIGxvY2FsZSBmcm9tIGxhbmd1YWdlLCBjb3VudHJ5LCB2YXJpYW50LgorICAgICAqIElm
IGFuIGVycm9yIG9jY3VycywgdGhlbiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgImJv
Z3VzIgorICAgICAqIChpc0JvZ3VzKCkgd2lsbCByZXR1cm4gVFJVRSkuCisgICAgICoKKyAgICAg
KiBAcGFyYW0gbGFuZ3VhZ2UgTG93ZXJjYXNlIHR3by1sZXR0ZXIgb3IgdGhyZWUtbGV0dGVyIElT
Ty02MzkgY29kZS4KKyAgICAgKiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGluc3RlYWQgYmUgYW4gSUNV
IHN0eWxlIEMgbG9jYWxlIChlLmcuICJlbl9VUyIpLAorICAgICAqICBidXQgdGhlIG90aGVyIHBh
cmFtZXRlcnMgbXVzdCBub3QgYmUgdXNlZC4KKyAgICAgKiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGJl
IE5VTEw7IGlmIHNvLAorICAgICAqICB0aGUgbG9jYWxlIGlzIGluaXRpYWxpemVkIHRvIG1hdGNo
IHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqICAoVGhpcyBpcyB0aGUgc2FtZSBh
cyB1c2luZyB0aGUgZGVmYXVsdCBjb25zdHJ1Y3Rvci4pCisgICAgICogIFBsZWFzZSBub3RlOiBU
aGUgSmF2YSBMb2NhbGUgY2xhc3MgZG9lcyBOT1QgYWNjZXB0IHRoZSBmb3JtCisgICAgICogICdu
ZXcgTG9jYWxlKCJlbl9VUyIpJyBidXQgb25seSAnbmV3IExvY2FsZSgiZW4iLCJVUyIpJworICAg
ICAqCisgICAgICogQHBhcmFtIGNvdW50cnkgIFVwcGVyY2FzZSB0d28tbGV0dGVyIElTTy0zMTY2
IGNvZGUuIChvcHRpb25hbCkKKyAgICAgKiBAcGFyYW0gdmFyaWFudCAgVXBwZXJjYXNlIHZlbmRv
ciBhbmQgYnJvd3NlciBzcGVjaWZpYyBjb2RlLiBTZWUgY2xhc3MKKyAgICAgKiAgICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb24uIChvcHRpb25hbCkKKyAgICAgKiBAcGFyYW0ga2V5d29yZHNBbmRW
YWx1ZXMgQSBzdHJpbmcgY29uc2lzdGluZyBvZiBrZXl3b3JkL3ZhbHVlcyBwYWlycywgc3VjaCBh
cworICAgICAqICAgICAgICAgICAgICAgICAiY29sbGF0aW9uPXBob25lYm9vaztjdXJyZW5jeT1l
dXJvIgorICAgICAqCisgICAgICogQHNlZSBnZXREZWZhdWx0CisgICAgICogQHNlZSB1bG9jX2dl
dERlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUoIGNv
bnN0ICAgY2hhciAqIGxhbmd1YWdlLAorICAgICAgICAgICAgY29uc3QgICBjaGFyICogY291bnRy
eSAgPSAwLAorICAgICAgICAgICAgY29uc3QgICBjaGFyICogdmFyaWFudCAgPSAwLAorICAgICAg
ICAgICAgY29uc3QgICBjaGFyICoga2V5d29yZHNBbmRWYWx1ZXMgPSAwKTsKKworICAgIC8qKgor
ICAgICAqIEluaXRpYWxpemVzIGEgTG9jYWxlIG9iamVjdCBmcm9tIGFub3RoZXIgTG9jYWxlIG9i
amVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgTG9jYWxlIG9iamVjdCBiZWlu
ZyBjb3BpZWQgaW4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxl
KGNvbnN0ICAgIExvY2FsZSYgb3RoZXIpOworCisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9y
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+TG9jYWxlKCkg
OworCisgICAgLyoqCisgICAgICogUmVwbGFjZXMgdGhlIGVudGlyZSBjb250ZW50cyBvZiAqdGhp
cyB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIg
VGhlIExvY2FsZSBvYmplY3QgYmVpbmcgY29waWVkIGluLgorICAgICAqIEByZXR1cm4gICAgICAq
dGhpcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZSYgb3BlcmF0
b3I9KGNvbnN0IExvY2FsZSYgb3RoZXIpOworCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHR3
byBsb2NhbGUga2V5cyBhcmUgdGhlIHNhbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIg
VGhlIGxvY2FsZSBrZXkgb2JqZWN0IHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcy4KKyAgICAgKiBA
cmV0dXJuICAgICAgVHJ1ZSBpZiB0aGUgdHdvIGxvY2FsZSBrZXlzIGFyZSB0aGUgc2FtZSwgZmFs
c2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29s
ICAgb3BlcmF0b3I9PShjb25zdCAgICBMb2NhbGUmICAgICBvdGhlcikgY29uc3Q7CisKKyAgICAv
KioKKyAgICAgKiBDaGVja3MgaWYgdHdvIGxvY2FsZSBrZXlzIGFyZSBub3QgdGhlIHNhbWUuCisg
ICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIGxvY2FsZSBrZXkgb2JqZWN0IHRvIGJlIGNv
bXBhcmVkIHdpdGggdGhpcy4KKyAgICAgKiBAcmV0dXJuICAgICAgVHJ1ZSBpZiB0aGUgdHdvIGxv
Y2FsZSBrZXlzIGFyZSBub3QgdGhlIHNhbWUsIGZhbHNlCisgICAgICogICAgICAgICAgICAgIG90
aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCAgIG9w
ZXJhdG9yIT0oY29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0OworCisgICAgLyoqCisg
ICAgICogQ2xvbmUgdGhpcyBvYmplY3QuCisgICAgICogQ2xvbmVzIGNhbiBiZSB1c2VkIGNvbmN1
cnJlbnRseSBpbiBtdWx0aXBsZSB0aHJlYWRzLgorICAgICAqIElmIGFuIGVycm9yIG9jY3Vycywg
dGhlbiBOVUxMIGlzIHJldHVybmVkLgorICAgICAqIFRoZSBjYWxsZXIgbXVzdCBkZWxldGUgdGhl
IGNsb25lLgorICAgICAqCisgICAgICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgb2JqZWN0Cisg
ICAgICoKKyAgICAgKiBAc2VlIGdldER5bmFtaWNDbGFzc0lECisgICAgICogQHN0YWJsZSBJQ1Ug
Mi44CisgICAgICovCisgICAgTG9jYWxlICpjbG9uZSgpIGNvbnN0OworCisjaWZuZGVmIFVfSElE
RV9TWVNURU1fQVBJCisgICAgLyoqCisgICAgICogQ29tbW9uIG1ldGhvZHMgb2YgZ2V0dGluZyB0
aGUgY3VycmVudCBkZWZhdWx0IExvY2FsZS4gVXNlZCBmb3IgdGhlCisgICAgICogcHJlc2VudGF0
aW9uOiBtZW51cywgZGlhbG9ncywgZXRjLiBHZW5lcmFsbHkgc2V0IG9uY2Ugd2hlbiB5b3VyIGFw
cGxldCBvcgorICAgICAqIGFwcGxpY2F0aW9uIGlzIGluaXRpYWxpemVkLCB0aGVuIG5ldmVyIHJl
c2V0LiAoSWYgeW91IGRvIHJlc2V0IHRoZQorICAgICAqIGRlZmF1bHQgbG9jYWxlLCB5b3UgcHJv
YmFibHkgd2FudCB0byByZWxvYWQgeW91ciBHVUksIHNvIHRoYXQgdGhlIGNoYW5nZQorICAgICAq
IGlzIHJlZmxlY3RlZCBpbiB5b3VyIGludGVyZmFjZS4pCisgICAgICoKKyAgICAgKiBNb3JlIGFk
dmFuY2VkIHByb2dyYW1zIHdpbGwgYWxsb3cgdXNlcnMgdG8gdXNlIGRpZmZlcmVudCBsb2NhbGVz
IGZvcgorICAgICAqIGRpZmZlcmVudCBmaWVsZHMsIGUuZy4gaW4gYSBzcHJlYWRzaGVldC4KKyAg
ICAgKgorICAgICAqIE5vdGUgdGhhdCB0aGUgaW5pdGlhbCBzZXR0aW5nIHdpbGwgbWF0Y2ggdGhl
IGhvc3Qgc3lzdGVtLgorICAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhlIExvY2FsZSBv
YmplY3QgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBJRAorICAgICAqIEBzeXN0ZW0KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlJiBVX0VYUE9S
VDIgZ2V0RGVmYXVsdCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRlZmF1bHQu
IE5vcm1hbGx5IHNldCBvbmNlIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBwcm9jZXNzLAorICAgICAq
IHRoZW4gbmV2ZXIgcmVzZXQuCisgICAgICogc2V0RGVmYXVsdCgpIG9ubHkgY2hhbmdlcyBJQ1Un
cyBkZWZhdWx0IGxvY2FsZSBJRCwgPHN0cm9uZz5ub3Q8L3N0cm9uZz4KKyAgICAgKiB0aGUgZGVm
YXVsdCBsb2NhbGUgSUQgb2YgdGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQuCisgICAgICoKKyAgICAg
KiBAcGFyYW0gbmV3TG9jYWxlIExvY2FsZSB0byBzZXQgdG8uICBJZiBOVUxMLCBzZXQgdG8gdGhl
IHZhbHVlIG9idGFpbmVkCisgICAgICogICAgICAgICAgICAgICAgICBmcm9tIHRoZSBydW50aW1l
IGVudmlyb25lbWVudC4KKyAgICAgKiBAcGFyYW0gc3VjY2VzcyBUaGUgZXJyb3IgY29kZS4KKyAg
ICAgKiBAc3lzdGVtCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGlj
IHZvaWQgVV9FWFBPUlQyIHNldERlZmF1bHQoY29uc3QgTG9jYWxlJiBuZXdMb2NhbGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSYgICBzdWNjZXNzKTsK
KyNlbmRpZiAgLyogVV9ISURFX1NZU1RFTV9BUEkgKi8KKworICAgIC8qKgorICAgICAqIENyZWF0
ZXMgYSBsb2NhbGUgd2hpY2ggaGFzIGhhZCBtaW5pbWFsIGNhbm9uaWNhbGl6YXRpb24KKyAgICAg
KiBhcyBwZXIgdWxvY19nZXROYW1lKCkuCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgdG8g
Y3JlYXRlIGZyb20uICBJZiBuYW1lIGlzIG51bGwsCisgICAgICogIHRoZSBkZWZhdWx0IExvY2Fs
ZSBpcyB1c2VkLgorICAgICAqIEByZXR1cm4gbmV3IGxvY2FsZSBvYmplY3QKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKiBAc2VlIHVsb2NfZ2V0TmFtZQorICAgICAqLworICAgIHN0YXRp
YyBMb2NhbGUgVV9FWFBPUlQyIGNyZWF0ZUZyb21OYW1lKGNvbnN0IGNoYXIgKm5hbWUpOworCisg
ICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGxvY2FsZSBmcm9tIHRoZSBnaXZlbiBzdHJpbmcgYWZ0
ZXIgY2Fub25pY2FsaXppbmcKKyAgICAgKiB0aGUgc3RyaW5nIGJ5IGNhbGxpbmcgdWxvY19jYW5v
bmljYWxpemUoKS4KKyAgICAgKiBAcGFyYW0gbmFtZSB0aGUgbG9jYWxlIElEIHRvIGNyZWF0ZSBm
cm9tLiAgTXVzdCBub3QgYmUgTlVMTC4KKyAgICAgKiBAcmV0dXJuIGEgbmV3IGxvY2FsZSBvYmpl
Y3QgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDMu
MAorICAgICAqIEBzZWUgdWxvY19jYW5vbmljYWxpemUKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9j
YWxlIFVfRVhQT1JUMiBjcmVhdGVDYW5vbmljYWwoY29uc3QgY2hhciogbmFtZSk7CisKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tNjM5IGxhbmd1YWdlIGNvZGUuCisg
ICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0TGFuZ3VhZ2UoICkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tMTU5MjQg
YWJicmV2aWF0aW9uIHNjcmlwdCBjb2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0
byB0aGUgY29kZQorICAgICAqIEBzZWUgdXNjcmlwdF9nZXRTaG9ydE5hbWUKKyAgICAgKiBAc2Vl
IHVzY3JpcHRfZ2V0Q29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIGlu
bGluZSBjb25zdCBjaGFyICogIGdldFNjcmlwdCggKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIGxvY2FsZSdzIElTTy0zMTY2IGNvdW50cnkgY29kZS4KKyAgICAgKiBAcmV0
dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRDb3VudHJ5KCApIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgdmFyaWFudCBjb2RlLgorICAgICAq
IEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldFZhcmlhbnQoICkgY29uc3Q7
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBwcm9ncmFtbWF0aWMgbmFtZSBvZiB0aGUg
ZW50aXJlIGxvY2FsZSwgd2l0aCB0aGUgbGFuZ3VhZ2UsCisgICAgICogY291bnRyeSBhbmQgdmFy
aWFudCBzZXBhcmF0ZWQgYnkgdW5kZXJiYXJzLiBJZiBhIGZpZWxkIGlzIG1pc3NpbmcsIHVwCisg
ICAgICogdG8gdHdvIGxlYWRpbmcgdW5kZXJiYXJzIHdpbGwgb2NjdXIuIEV4YW1wbGU6ICJlbiIs
ICJkZV9ERSIsICJlbl9VU19XSU4iLAorICAgICAqICJkZV9fUE9TSVgiLCAiZnJfX01BQyIsICJf
X01BQyIsICJfTVQiLCAiX0ZSX0VVUk8iCisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0
byAibmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNv
bnN0IGNoYXIgKiBnZXROYW1lKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRo
ZSBwcm9ncmFtbWF0aWMgbmFtZSBvZiB0aGUgZW50aXJlIGxvY2FsZSBhcyBnZXROYW1lKCkgd291
bGQgcmV0dXJuLAorICAgICAqIGJ1dCB3aXRob3V0IGtleXdvcmRzLgorICAgICAqIEByZXR1cm4g
ICAgICBBIHBvaW50ZXIgdG8gIm5hbWUiLgorICAgICAqIEBzZWUgZ2V0TmFtZQorICAgICAqIEBz
dGFibGUgSUNVIDIuOAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRCYXNlTmFtZSgpIGNv
bnN0OworCisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsaXN0IG9mIGtleXdvcmRzIGZvciB0
aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIHN0
YXR1cyBjb2RlCisgICAgICogQHJldHVybiBwb2ludGVyIHRvIFN0cmluZ0VudW1lcmF0aW9uIGNs
YXNzLCBvciBOVUxMIGlmIHRoZXJlIGFyZSBubyBrZXl3b3Jkcy4gCisgICAgICogQ2xpZW50IG11
c3QgZGlzcG9zZSBvZiBpdCBieSBjYWxsaW5nIGRlbGV0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjgKKyAgICAgKi8KKyAgICBTdHJpbmdFbnVtZXJhdGlvbiAqIGNyZWF0ZUtleXdvcmRzKFVFcnJv
ckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB2YWx1ZSBm
b3IgYSBrZXl3b3JkLgorICAgICAqCisgICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2Yg
dGhlIGtleXdvcmQgZm9yIHdoaWNoIHdlIHdhbnQgdGhlIHZhbHVlLiBDYXNlIGluc2Vuc2l0aXZl
LgorICAgICAqIEBwYXJhbSBidWZmZXIgVGhlIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBrZXl3b3Jk
IHZhbHVlLgorICAgICAqIEBwYXJhbSBidWZmZXJDYXBhY2l0eSBUaGUgY2FwYWNpdHkgb2YgcmVj
ZWl2aW5nIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBzdGF0dXMgUmV0dXJucyBhbnkgZXJyb3IgaW5m
b3JtYXRpb24gd2hpbGUgcGVyZm9ybWluZyB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJu
IHRoZSBsZW5ndGggb2YgdGhlIGtleXdvcmQgdmFsdWUKKyAgICAgKgorICAgICAqIEBzdGFibGUg
SUNVIDIuOAorICAgICAqLworICAgIGludDMyX3QgZ2V0S2V5d29yZFZhbHVlKGNvbnN0IGNoYXIq
IGtleXdvcmROYW1lLCBjaGFyICpidWZmZXIsIGludDMyX3QgYnVmZmVyQ2FwYWNpdHksIFVFcnJv
ckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIG9yIHJlbW92ZXMg
dGhlIHZhbHVlIGZvciBhIGtleXdvcmQuCisgICAgICoKKyAgICAgKiBGb3IgcmVtb3ZpbmcgYWxs
IGtleXdvcmRzLCB1c2UgZ2V0QmFzZU5hbWUoKSwKKyAgICAgKiBhbmQgY29uc3RydWN0IGEgbmV3
IExvY2FsZSBpZiBpdCBkaWZmZXJzIGZyb20gZ2V0TmFtZSgpLgorICAgICAqCisgICAgICogQHBh
cmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgdG8gYmUgc2V0LiBDYXNlIGluc2Vu
c2l0aXZlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkVmFsdWUgdmFsdWUgb2YgdGhlIGtleXdvcmQg
dG8gYmUgc2V0LiBJZiAwLWxlbmd0aCBvcgorICAgICAqICBOVUxMLCB3aWxsIHJlc3VsdCBpbiB0
aGUga2V5d29yZCBiZWluZyByZW1vdmVkLiBObyBlcnJvciBpcyBnaXZlbiBpZgorICAgICAqICB0
aGF0IGtleXdvcmQgZG9lcyBub3QgZXhpc3QuCisgICAgICogQHBhcmFtIHN0YXR1cyBSZXR1cm5z
IGFueSBlcnJvciBpbmZvcm1hdGlvbiB3aGlsZSBwZXJmb3JtaW5nIHRoaXMgb3BlcmF0aW9uLgor
ICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgNDkKKyAgICAgKi8KKyAgICB2b2lkIHNldEtleXdv
cmRWYWx1ZShjb25zdCBjaGFyKiBrZXl3b3JkTmFtZSwgY29uc3QgY2hhcioga2V5d29yZFZhbHVl
LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogcmV0dXJucyB0aGUgbG9j
YWxlJ3MgdGhyZWUtbGV0dGVyIGxhbmd1YWdlIGNvZGUsIGFzIHNwZWNpZmllZAorICAgICAqIGlu
IElTTyBkcmFmdCBzdGFuZGFyZCBJU08tNjM5LTIuCisgICAgICogQHJldHVybiAgICAgIEFuIGFs
aWFzIHRvIHRoZSBjb2RlLCBvciBhbiBlbXB0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0SVNPM0xhbmd1YWdlKCkgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAibmFtZSIgd2l0aCB0aGUgbG9jYWxlJ3MgdGhyZWUt
bGV0dGVyIElTTy0zMTY2IGNvdW50cnkgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxp
YXMgdG8gdGhlIGNvZGUsIG9yIGFuIGVtcHR5IHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRJU08zQ291bnRyeSgpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgV2luZG93cyBMQ0lEIHZhbHVlIGNvcnJlc3BvbmRp
bmcgdG8gdGhpcyBsb2NhbGUuCisgICAgICogVGhpcyB2YWx1ZSBpcyBzdG9yZWQgaW4gdGhlIHJl
c291cmNlIGRhdGEgZm9yIHRoZSBsb2NhbGUgYXMgYSBvbmUtdG8tZm91ci1kaWdpdAorICAgICAq
IGhleGFkZWNpbWFsIG51bWJlci4gIElmIHRoZSByZXNvdXJjZSBpcyBtaXNzaW5nLCBpbiB0aGUg
d3JvbmcgZm9ybWF0LCBvcgorICAgICAqIHRoZXJlIGlzIG5vIFdpbmRvd3MgTENJRCB2YWx1ZSB0
aGF0IGNvcnJlc3BvbmRzIHRvIHRoaXMgbG9jYWxlLCByZXR1cm5zIDAuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdWludDMyX3QgICAgICAgIGdldExDSUQodm9pZCkgY29u
c3Q7CisKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorICAgIC8qKgorICAgICAqIFJldHVybnMg
d2hldGhlciB0aGlzIGxvY2FsZSdzIHNjcmlwdCBpcyB3cml0dGVuIHJpZ2h0LXRvLWxlZnQuCisg
ICAgICogSWYgdGhlcmUgaXMgbm8gc2NyaXB0IHN1YnRhZywgdGhlbiB0aGUgbGlrZWx5IHNjcmlw
dCBpcyB1c2VkLCBzZWUgdWxvY19hZGRMaWtlbHlTdWJ0YWdzKCkuCisgICAgICogSWYgbm8gbGlr
ZWx5IHNjcmlwdCBpcyBrbm93biwgdGhlbiBGQUxTRSBpcyByZXR1cm5lZC4KKyAgICAgKgorICAg
ICAqIEEgc2NyaXB0IGlzIHJpZ2h0LXRvLWxlZnQgYWNjb3JkaW5nIHRvIHRoZSBDTERSIHNjcmlw
dCBtZXRhZGF0YQorICAgICAqIHdoaWNoIGNvcnJlc3BvbmRzIHRvIHdoZXRoZXIgdGhlIHNjcmlw
dCdzIGxldHRlcnMgaGF2ZSBCaWRpX0NsYXNzPVIgb3IgQUwuCisgICAgICoKKyAgICAgKiBSZXR1
cm5zIFRSVUUgZm9yICJhciIgYW5kICJlbi1IZWJyIiwgRkFMU0UgZm9yICJ6aCIgYW5kICJmYS1D
eXJsIi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0
IGlzIHdyaXR0ZW4gcmlnaHQtdG8tbGVmdAorICAgICAqIEBkcmFmdCBJQ1UgNTQKKyAgICAgKi8K
KyAgICBVQm9vbCBpc1JpZ2h0VG9MZWZ0KCkgY29uc3Q7CisjZW5kaWYgIC8qIFVfSElERV9EUkFG
VF9BUEkgKi8KKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwTGFuZyIgd2l0aCB0aGUg
bmFtZSBvZiB0aGlzIGxvY2FsZSdzIGxhbmd1YWdlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvcgor
ICAgICAqIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwg
aWYgdGhlIGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMKKyAgICAgKiAiZnIiIGFuZCB0aGUgZGVm
YXVsdCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQg
c2V0CisgICAgICogZGlzcExhbmcgdG8gIkZyZW5jaCIuCisgICAgICogQHBhcmFtIGRpc3BMYW5n
ICBSZWNlaXZlcyB0aGUgbGFuZ3VhZ2UncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAg
ICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcExhbmciLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TGFuZ3VhZ2UoVW5pY29k
ZVN0cmluZyYgICBkaXNwTGFuZykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAi
ZGlzcExhbmciIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBpbiBhIGZv
cm1hdCBzdWl0YWJsZSBmb3IKKyAgICAgKiB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVj
aWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncwor
ICAgICAqIGxhbmd1YWdlIGNvZGUgaXMgImVuIiBhbmQgZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdl
IGNvZGUgaXMgImZyIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwTGFuZyB0
byAiQW5nbGFpcyIuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUg
bG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIEluIG90aGVyIHdvcmRzLAor
ICAgICAqICAgICAgICAgICAgICAgICAgaWYgdGhlIGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMg
ImVuIiwgcGFzc2luZyBMb2NhbGU6OmdldEZyZW5jaCgpIGZvcgorICAgICAqICAgICAgICAgICAg
ICAgICAgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIkFuZ2xhaXMiLCB3aGlsZSBwYXNz
aW5nIExvY2FsZTo6Z2V0R2VybWFuKCkKKyAgICAgKiAgICAgICAgICAgICAgICAgIGZvciBkaXNw
bGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiRW5nbGlzY2giLgorICAgICAqIEBwYXJhbSBkaXNw
TGFuZyAgUmVjZWl2ZXMgdGhlIGxhbmd1YWdlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1
cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BMYW5nIi4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUxhbmd1YWdlKCBj
b25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BMYW5nKSBj
b25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwU2NyaXB0IiB3aXRoIHRoZSBu
YW1lIG9mIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICog
Zm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwgaWYg
dGhlIGxvY2FsZSdzIHNjcmlwdCBjb2RlCisgICAgICogaXMgIkxBVE4iIGFuZCB0aGUgZGVmYXVs
dCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0
CisgICAgICogZGlzcFNjcmlwdCB0byAiTGF0aW4iLgorICAgICAqIEBwYXJhbSBkaXNwU2NyaXB0
ICAgIFJlY2VpdmVzIHRoZSBzY3JpcHRzJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4g
ICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwU2NyaXB0Ii4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjgKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheVNjcmlwdCgg
ICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcFNjcmlwdCkgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBGaWxscyBpbiAiZGlzcFNjcmlwdCIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdz
IGNvdW50cnkgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGlu
IHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBp
ZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBzY3JpcHQgY29kZSBpcyAiTEFUTiIgYW5kIGRpc3BsYXlM
b2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0Cisg
ICAgICogZGlzcFNjcmlwdCB0byAiTGF0aW4iLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxl
ICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1l
LiAgSW4gb3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB3b3JkcywgaWYgdGhlIGxv
Y2FsZSdzIHNjcmlwdCBjb2RlIGlzICJMQVROIiwgcGFzc2luZworICAgICAqICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsZTo6Z2V0RnJlbmNoKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVz
dWx0IGluICIiLCB3aGlsZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHBhc3NpbmcgTG9j
YWxlOjpnZXRHZXJtYW4oKSBmb3IgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4KKyAgICAg
KiAgICAgICAgICAgICAgICAgICAgICAiIi4KKyAgICAgKiBAcGFyYW0gZGlzcFNjcmlwdCAgICBS
ZWNlaXZlcyB0aGUgc2NyaXB0cydzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAg
ICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFNjcmlwdCIuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi44CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlTY3JpcHQoICBjb25z
dCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgZGlzcFNjcmlwdCkgY29u
c3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcENvdW50cnkiIHdpdGggdGhlIG5h
bWUgb2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICog
Zm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwgaWYg
dGhlIGxvY2FsZSdzIGNvdW50cnkgY29kZQorICAgICAqIGlzICJGUiIgYW5kIHRoZSBkZWZhdWx0
IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQK
KyAgICAgKiBkaXNwQ291bnRyeSB0byAiRnJhbmNlIi4KKyAgICAgKiBAcGFyYW0gZGlzcENvdW50
cnkgICBSZWNlaXZlcyB0aGUgY291bnRyeSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJu
ICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcENvdW50cnkiLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5Q291bnRy
eSggICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcENvdW50cnkpIGNvbnN0OworCisgICAgLyoq
CisgICAgICogRmlsbHMgaW4gImRpc3BDb3VudHJ5IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9j
YWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3Bs
YXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgRm9yIGV4YW1w
bGUsIGlmIHRoZSBsb2NhbGUncworICAgICAqIGNvdW50cnkgY29kZSBpcyAiVVMiIGFuZCBkaXNw
bGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZnIiLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNl
dAorICAgICAqIGRpc3BDb3VudHJ5IHRvICImRWFjdXRlO3RhdHMtVW5pcyIuCisgICAgICogQHBh
cmFtIGRpc3BsYXlMb2NhbGUgICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRv
IGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAg
IHdvcmRzLCBpZiB0aGUgbG9jYWxlJ3MgY291bnRyeSBjb2RlIGlzICJVUyIsIHBhc3NpbmcKKyAg
ICAgKiAgICAgICAgICAgICAgICAgICAgICBMb2NhbGU6OmdldEZyZW5jaCgpIGZvciBkaXNwbGF5
TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiJkVhY3V0ZTt0YXRzLVVuaXMiLCB3aGlsZQorICAgICAq
ICAgICAgICAgICAgICAgICAgICAgIHBhc3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKSBmb3IgZGlz
cGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAi
VmVyZWluaWd0ZSBTdGFhdGVuIi4KKyAgICAgKiBAcGFyYW0gZGlzcENvdW50cnkgICBSZWNlaXZl
cyB0aGUgY291bnRyeSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAg
ICBBIHJlZmVyZW5jZSB0byAiZGlzcENvdW50cnkiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5Q291bnRyeSggIGNvbnN0ICAg
TG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgZGlzcENvdW50cnkpIGNvbnN0
OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BWYXIiIHdpdGggdGhlIG5hbWUgb2Yg
dGhpcyBsb2NhbGUncyB2YXJpYW50IGNvZGUgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBm
b3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlz
cFZhciAgIFJlY2VpdmVzIHRoZSB2YXJpYW50J3MgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAg
ICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwVmFyIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheVZhcmlhbnQoICAgICAgVW5pY29k
ZVN0cmluZyYgZGlzcFZhcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlz
cFZhciIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgY29kZSBpbiBhIGZv
cm1hdAorICAgICAqIHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVj
aWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBT
cGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAg
ICogQHBhcmFtIGRpc3BWYXIgICBSZWNlaXZlcyB0aGUgdmFyaWFudCdzIGRpc3BsYXkgbmFtZS4K
KyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwVmFyIi4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxh
eVZhcmlhbnQoICBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYg
IGRpc3BWYXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGgg
dGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIHVzZXIgZGlz
cGxheQorICAgICAqIGluIHRoZSBkZWZhdWx0IGxvY2FsZS4gIFRoaXMgZnVuY3Rpb24gdXNlcyBn
ZXREaXNwbGF5TGFuZ3VhZ2UoKSwgZ2V0RGlzcGxheUNvdW50cnkoKSwKKyAgICAgKiBhbmQgZ2V0
RGlzcGxheVZhcmlhbnQoKSB0byBkbyBpdHMgd29yaywgYW5kIG91dHB1dHMgdGhlIGRpc3BsYXkg
bmFtZSBpbiB0aGUgZm9ybWF0CisgICAgICogImxhbmd1YWdlIChjb3VudHJ5Wyx2YXJpYW50XSki
LiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBkZWZhdWx0IGxvY2FsZSBpcyBlbl9VUywgdGhlbgorICAg
ICAqIGZyX0ZSJ3MgZGlzcGxheSBuYW1lIHdvdWxkIGJlICJGcmVuY2ggKEZyYW5jZSkiLCBhbmQg
ZXNfTVhfVHJhZGl0aW9uYWwncyBkaXNwbGF5IG5hbWUKKyAgICAgKiB3b3VsZCBiZSAiU3Bhbmlz
aCAoTWV4aWNvLFRyYWRpdGlvbmFsKSIuCisgICAgICogQHBhcmFtIG5hbWUgIFJlY2VpdmVzIHRo
ZSBsb2NhbGUncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgIEEgcmVmZXJlbmNl
IHRvICJuYW1lIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2Rl
U3RyaW5nJiAgZ2V0RGlzcGxheU5hbWUoICAgICAgICAgVW5pY29kZVN0cmluZyYgIG5hbWUpIGNv
bnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIG5hbWUgb2Yg
dGhpcyBsb2NhbGUgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIHVzZXIgZGlzcGxheQorICAgICAq
IGluIHRoZSBsb2NhbGUgc3BlY2ZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgVGhpcyBmdW5jdGlv
biB1c2VzIGdldERpc3BsYXlMYW5ndWFnZSgpLAorICAgICAqIGdldERpc3BsYXlDb3VudHJ5KCks
IGFuZCBnZXREaXNwbGF5VmFyaWFudCgpIHRvIGRvIGl0cyB3b3JrLCBhbmQgb3V0cHV0cyB0aGUg
ZGlzcGxheQorICAgICAqIG5hbWUgaW4gdGhlIGZvcm1hdCAibGFuZ3VhZ2UgKGNvdW50cnlbLHZh
cmlhbnRdKSIuICBGb3IgZXhhbXBsZSwgaWYgZGlzcGxheUxvY2FsZSBpcworICAgICAqIGZyX0ZS
LCB0aGVuIGVuX1VTJ3MgZGlzcGxheSBuYW1lIHdvdWxkIGJlICJBbmdsYWlzICgmRWFjdXRlO3Rh
dHMtVW5pcykiLCBhbmQgbm9fTk9fTlkncworICAgICAqIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAi
bm9ydiZlYWN1dGU7Z2llbiAoTm9ydiZlZ3JhdmU7Z2UsTlkpIi4KKyAgICAgKiBAcGFyYW0gZGlz
cGxheUxvY2FsZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRo
ZSBuYW1lLgorICAgICAqIEBwYXJhbSBuYW1lICAgICAgUmVjZWl2ZXMgdGhlIGxvY2FsZSdzIGRp
c3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJuYW1l
Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAg
Z2V0RGlzcGxheU5hbWUoIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcm
ICBuYW1lKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBm
b3IgdGhlIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQz
Ml90ICAgICAgICAgaGFzaENvZGUodm9pZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXRz
IHRoZSBsb2NhbGUgdG8gYm9ndXMKKyAgICAgKiBBIGJvZ3VzIGxvY2FsZSByZXByZXNlbnRzIGEg
bm9uLWV4aXN0aW5nIGxvY2FsZSBhc3NvY2lhdGVkCisgICAgICogd2l0aCBzZXJ2aWNlcyB0aGF0
IGNhbiBiZSBpbnN0YW50aWF0ZWQgZnJvbSBub24tbG9jYWxlIGRhdGEKKyAgICAgKiBpbiBhZGRp
dGlvbiB0byBsb2NhbGUgKGZvciBleGFtcGxlLCBjb2xsYXRpb24gY2FuIGJlCisgICAgICogaW5z
dGFudGlhdGVkIGZyb20gYSBsb2NhbGUgYW5kIGZyb20gYSBydWxlIHNldCkuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgdm9pZCBzZXRUb0JvZ3VzKCk7CisKKyAgICAvKioK
KyAgICAgKiBHZXRzIHRoZSBib2d1cyBzdGF0ZS4gTG9jYWxlIG9iamVjdCBjYW4gYmUgYm9ndXMg
aWYgaXQgZG9lc24ndCBleGlzdAorICAgICAqIEByZXR1cm4gRkFMU0UgaWYgaXQgaXMgYSByZWFs
IGxvY2FsZSwgVFJVRSBpZiBpdCBpcyBhIGJvZ3VzIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNV
IDIuMQorICAgICAqLworICAgIFVCb29sIGlzQm9ndXModm9pZCkgY29uc3Q7CisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgaW5zdGFsbGVkIGxvY2FsZXMuCisgICAgICog
QHBhcmFtIGNvdW50IFJlY2VpdmVzIHRoZSBudW1iZXIgb2YgbG9jYWxlcyBpbiB0aGUgbGlzdC4K
KyAgICAgKiBAcmV0dXJuICAgICAgQSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIExvY2FsZSBvYmpl
Y3RzLiAgVGhpcyBhcnJheSBpcyB0aGUgbGlzdAorICAgICAqICAgICAgICAgICAgICBvZiBhbGwg
bG9jYWxlcyB3aXRoIGluc3RhbGxlZCByZXNvdXJjZSBmaWxlcy4gIFRoZSBjYWxsZWQgZG9lcyBO
T1QKKyAgICAgKiAgICAgICAgICAgICAgZ2V0IG93bmVyc2hpcCBvZiB0aGlzIGxpc3QsIGFuZCBt
dXN0IE5PVCBkZWxldGUgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
c3RhdGljIGNvbnN0IExvY2FsZSogVV9FWFBPUlQyIGdldEF2YWlsYWJsZUxvY2FsZXMoaW50MzJf
dCYgY291bnQpOworCisgICAgLyoqCisgICAgICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJs
ZSAyLWxldHRlciBjb3VudHJ5IGNvZGVzIGRlZmluZWQgaW4gSVNPIDMxNjYuICBUaGlzIGlzIGEK
KyAgICAgKiBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBvZiBjaGFy
LiAgQWxsIG9mIHRoZXNlIHBvaW50ZXJzIGFyZQorICAgICAqIG93bmVkIGJ5IElDVS0tIGRvIG5v
dCBkZWxldGUgdGhlbSwgYW5kIGRvIG5vdCB3cml0ZSB0aHJvdWdoIHRoZW0uICBUaGUgYXJyYXkg
aXMKKyAgICAgKiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCisgICAgICogQHJldHVy
biBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBjb3VudHJ5IGNvZGVzCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0KiBVX0VYUE9SVDIg
Z2V0SVNPQ291bnRyaWVzKCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgbGlzdCBvZiBhbGwg
YXZhaWxhYmxlIGxhbmd1YWdlIGNvZGVzIGRlZmluZWQgaW4gSVNPIDYzOS4gIFRoaXMgaXMgYSBw
b2ludGVyCisgICAgICogdG8gYW4gYXJyYXkgb2YgcG9pbnRlcnMgdG8gYXJyYXlzIG9mIGNoYXIu
ICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlIG93bmVkCisgICAgICogYnkgSUNVLS0gZG8gbm90
IGRlbGV0ZSB0aGVtLCBhbmQgZG8gbm90IHdyaXRlIHRocm91Z2ggdGhlbS4gIFRoZSBhcnJheSBp
cworICAgICAqIHRlcm1pbmF0ZWQgd2l0aCBhIG51bGwgcG9pbnRlci4KKyAgICAgKiBAcmV0dXJu
IGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGxhbmd1YWdlIGNvZGVzCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0KiBVX0VYUE9SVDIg
Z2V0SVNPTGFuZ3VhZ2VzKCk7CisKKyAgICAvKioKKyAgICAgKiBJQ1UgInBvb3IgbWFuJ3MgUlRU
SSIsIHJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhpcyBjbGFzcy4KKyAgICAgKgorICAgICAqIEBz
dGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHN0YXRpYyBVQ2xhc3NJRCBVX0VYUE9SVDIgZ2V0
U3RhdGljQ2xhc3NJRCgpOworCisgICAgLyoqCisgICAgICogSUNVICJwb29yIG1hbidzIFJUVEki
LCByZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoZSBhY3R1YWwgY2xhc3MuCisgICAgICoKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFt
aWNDbGFzc0lEKCkgY29uc3Q7CisKK3Byb3RlY3RlZDogLyogb25seSBwcm90ZWN0ZWQgZm9yIHRl
c3RpbmcgcHVycG9zZXMuIERPIE5PVCBVU0UuICovCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9B
UEkKKyAgICAvKioKKyAgICAgKiBTZXQgdGhpcyBmcm9tIGEgc2luZ2xlIFBPU0lYIHN0eWxlIGxv
Y2FsZSBzdHJpbmcuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgdm9pZCBzZXRGcm9t
UE9TSVhJRChjb25zdCBjaGFyICpwb3NpeElEKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFM
X0FQSSAqLworCitwcml2YXRlOgorICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgdGhlIGxvY2Fs
ZSBvYmplY3Qgd2l0aCBhIG5ldyBuYW1lLgorICAgICAqIFdhcyBkZXByZWNhdGVkIC0gdXNlZCBp
biBpbXBsZW1lbnRhdGlvbiAtIG1vdmVkIGludGVybmFsCisgICAgICoKKyAgICAgKiBAcGFyYW0g
Y0xvY2FsZUlEIFRoZSBuZXcgbG9jYWxlIG5hbWUuCisgICAgICogQHBhcmFtIGNhbm9uaWNhbGl6
ZSB3aGV0aGVyIHRvIGNhbGwgdWxvY19jYW5vbmljYWxpemUgb24gY0xvY2FsZUlECisgICAgICov
CisgICAgTG9jYWxlJiBpbml0KGNvbnN0IGNoYXIqIGNMb2NhbGVJRCwgVUJvb2wgY2Fub25pY2Fs
aXplKTsKKworICAgIC8qCisgICAgICogSW50ZXJuYWwgY29uc3RydWN0b3IgdG8gYWxsb3cgY29u
c3RydWN0aW9uIG9mIGEgbG9jYWxlIG9iamVjdCB3aXRoCisgICAgICogICBOTyBzaWRlIGVmZmVj
dHMuICAgKERlZmF1bHQgY29uc3RydWN0b3IgdHJpZXMgdG8gZ2V0CisgICAgICogICB0aGUgZGVm
YXVsdCBsb2NhbGUuKQorICAgICAqLworICAgIGVudW0gRUxvY2FsZVR5cGUgeworICAgICAgICBl
Qk9HVVMKKyAgICB9OworICAgIExvY2FsZShFTG9jYWxlVHlwZSk7CisKKyAgICAvKioKKyAgICAg
KiBJbml0aWFsaXplIHRoZSBsb2NhbGUgY2FjaGUgZm9yIGNvbW1vbmx5IHVzZWQgbG9jYWxlcwor
ICAgICAqLworICAgIHN0YXRpYyBMb2NhbGUgKmdldExvY2FsZUNhY2hlKHZvaWQpOworCisgICAg
Y2hhciBsYW5ndWFnZVtVTE9DX0xBTkdfQ0FQQUNJVFldOworICAgIGNoYXIgc2NyaXB0W1VMT0Nf
U0NSSVBUX0NBUEFDSVRZXTsKKyAgICBjaGFyIGNvdW50cnlbVUxPQ19DT1VOVFJZX0NBUEFDSVRZ
XTsKKyAgICBpbnQzMl90IHZhcmlhbnRCZWdpbjsKKyAgICBjaGFyKiBmdWxsTmFtZTsKKyAgICBj
aGFyIGZ1bGxOYW1lQnVmZmVyW1VMT0NfRlVMTE5BTUVfQ0FQQUNJVFldOworICAgIC8vIG5hbWUg
d2l0aG91dCBrZXl3b3JkcworICAgIGNoYXIqIGJhc2VOYW1lOworICAgIHZvaWQgaW5pdEJhc2VO
YW1lKFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICBVQm9vbCBmSXNCb2d1czsKKworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJmdldExvY2FsZShpbnQgbG9jaWQpOworCisgICAgLyoqCisgICAg
ICogQSBmcmllbmQgdG8gYWxsb3cgdGhlIGRlZmF1bHQgbG9jYWxlIHRvIGJlIHNldCBieSBlaXRo
ZXIgdGhlIEMgb3IgQysrIEFQSS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBmcmll
bmQgTG9jYWxlICpsb2NhbGVfc2V0X2RlZmF1bHRfaW50ZXJuYWwoY29uc3QgY2hhciAqLCBVRXJy
b3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgZnJpZW5kIHZvaWQgVV9DQUxMQ09OViBsb2NhbGVfYXZhaWxhYmxlX2luaXQoKTsKK307CisK
K2lubGluZSBVQm9vbAorTG9jYWxlOjpvcGVyYXRvciE9KGNvbnN0ICAgIExvY2FsZSYgICAgIG90
aGVyKSBjb25zdAoreworICAgIHJldHVybiAhb3BlcmF0b3I9PShvdGhlcik7Cit9CisKK2lubGlu
ZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0Q291bnRyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGNvdW50cnk7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0TGFuZ3VhZ2Uo
KSBjb25zdAoreworICAgIHJldHVybiBsYW5ndWFnZTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIg
KgorTG9jYWxlOjpnZXRTY3JpcHQoKSBjb25zdAoreworICAgIHJldHVybiBzY3JpcHQ7Cit9CisK
K2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0VmFyaWFudCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuICZiYXNlTmFtZVt2YXJpYW50QmVnaW5dOworfQorCitpbmxpbmUgY29uc3QgY2hhciAq
CitMb2NhbGU6OmdldE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBmdWxsTmFtZTsKK30KKwor
aW5saW5lIFVCb29sCitMb2NhbGU6OmlzQm9ndXModm9pZCkgY29uc3QgeworICAgIHJldHVybiBm
SXNCb2d1czsKK30KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JiYmku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kNDc1OThhNTBlNmZhM2JhYjJhZDQ5ZTAyMmFhZjM5NmNhYzMyOWU1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmgKQEAgLTAsMCAr
MSw3ODIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTkt
MjAxNCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uICAgKgorKiAg
IGFuZCBvdGhlcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMTAvMjIvOTkgICAgYWxh
biAgICAgICAgQ3JlYXRpb24uCisqICAgMTEvMTEvOTkgICAgcmdpbGxhbSAgICAgQ29tcGxldGUg
cG9ydCBmcm9tIEphdmEuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIFJCQklfSAorI2Rl
ZmluZSBSQkJJX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICogXGZp
bGUKKyAqIFxicmllZiBDKysgQVBJOiBSdWxlIEJhc2VkIEJyZWFrIEl0ZXJhdG9yCisgKi8KKwor
I2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCisjaW5jbHVkZSAidW5pY29kZS9icmtp
dGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgorI2luY2x1ZGUgInVuaWNvZGUvcGFy
c2VlcnIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3NjaHJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29k
ZS91Y2hyaXRlci5oIgorCisKK3N0cnVjdCBVVHJpZTsKKworVV9OQU1FU1BBQ0VfQkVHSU4KKwor
LyoqIEBpbnRlcm5hbCAqLworc3RydWN0IFJCQklEYXRhSGVhZGVyOworY2xhc3MgIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3JUYWJsZXM7CitjbGFzcyAgQnJlYWtJdGVyYXRvcjsKK2NsYXNzICBSQkJJ
RGF0YVdyYXBwZXI7CitjbGFzcyAgVVN0YWNrOworY2xhc3MgIExhbmd1YWdlQnJlYWtFbmdpbmU7
CitjbGFzcyAgVW5oYW5kbGVkRW5naW5lOworc3RydWN0IFJCQklTdGF0ZVRhYmxlOworCisKKwor
CisvKioKKyAqCisgKiBBIHN1YmNsYXNzIG9mIEJyZWFrSXRlcmF0b3Igd2hvc2UgYmVoYXZpb3Ig
aXMgc3BlY2lmaWVkIHVzaW5nIGEgbGlzdCBvZiBydWxlcy4KKyAqIDxwPkluc3RhbmNlcyBvZiB0
aGlzIGNsYXNzIGFyZSBtb3N0IGNvbW1vbmx5IGNyZWF0ZWQgYnkgdGhlIGZhY3RvcnkgbWV0aG9k
cyBvZgorICogIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZVdvcmRJbnN0YW5jZSgpLCBCcmVha0l0ZXJh
dG9yOjpjcmVhdGVMaW5lSW5zdGFuY2UoKSwgZXRjLiwKKyAqICBhbmQgdGhlbiB1c2VkIHZpYSB0
aGUgYWJzdHJhY3QgQVBJIGluIGNsYXNzIEJyZWFrSXRlcmF0b3I8L3A+CisgKgorICogPHA+U2Vl
IHRoZSBJQ1UgVXNlciBHdWlkZSBmb3IgaW5mb3JtYXRpb24gb24gQnJlYWsgSXRlcmF0b3IgUnVs
ZXMuPC9wPgorICoKKyAqIDxwPlRoaXMgY2xhc3MgaXMgbm90IGludGVuZGVkIHRvIGJlIHN1YmNs
YXNzZWQuICAoQ2xhc3MgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcgorICogICAgaXMgYSBz
dWJjbGFzcywgYnV0IHRoYXQgcmVsYXRpb25zaGlwIGlzIGVmZmVjdGl2ZWx5IGludGVybmFsIHRv
IHRoZSBJQ1UKKyAqICAgIGltcGxlbWVudGF0aW9uLiAgVGhlIHN1YmNsYXNzaW5nIGludGVyZmFj
ZSB0byBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvciBpcworICogICAgbm90IHBhcnQgb2YgdGhlIElD
VSBBUEksIGFuZCBtYXkgbm90IHJlbWFpbiBzdGFibGUuPC9wPgorICoKKyAqLworY2xhc3MgVV9D
T01NT05fQVBJIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgLypVX0ZJTkFMKi8gOiBwdWJsaWMgQnJl
YWtJdGVyYXRvciB7CisKK3Byb3RlY3RlZDoKKyAgICAvKioKKyAgICAgKiBUaGUgVVRleHQgdGhy
b3VnaCB3aGljaCB0aGlzIEJyZWFrSXRlcmF0b3IgYWNjZXNzZXMgdGhlIHRleHQKKyAgICAgKiBA
aW50ZXJuYWwKKyAgICAgKi8KKyAgICBVVGV4dCAgKmZUZXh0OworCisgICAgLyoqCisgICAgICog
ICBBIGNoYXJhY3RlciBpdGVyYXRvciB0aGF0IHJlZmVycyB0byB0aGUgc2FtZSB0ZXh0IGFzIHRo
ZSBVVGV4dCwgYWJvdmUuCisgICAgICogICBPbmx5IGluY2x1ZGVkIGZvciBjb21wYXRpYmlsaXR5
IHdpdGggb2xkIEFQSSwgd2hpY2ggd2FzIGJhc2VkIG9uIENoYXJhY3Rlckl0ZXJhdG9ycy4KKyAg
ICAgKiAgIFZhbHVlIG1heSBiZSBhZG9wdGVkIGZyb20gb3V0c2lkZSwgb3Igb25lIG9mIGZTQ2hh
ckl0ZXIgb3IgZkRDaGFySXRlciwgYmVsb3cuCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0
b3IgICpmQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiAgIFdoZW4gdGhlIGlucHV0IHRleHQg
aXMgcHJvdmlkZWQgYnkgYSBVbmljb2RlU3RyaW5nLCB0aGlzIHdpbGwgcG9pbnQgdG8KKyAgICAg
KiAgICBhIGNoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgd3JhcHMgdGhhdCBkYXRhLiAgTmVlZGVkIG9u
bHkgZm9yIHRoZQorICAgICAqICAgIGltcGxlbWVudGF0aW9uIG9mIGdldFRleHQoKSwgYSBiYWNr
d2FyZHMgY29tcGF0aWJpbGl0eSBpc3N1ZS4KKyAgICAgKi8KKyAgICBTdHJpbmdDaGFyYWN0ZXJJ
dGVyYXRvciAqZlNDaGFySXRlcjsKKworICAgIC8qKgorICAgICAqICBXaGVuIHRoZSBpbnB1dCB0
ZXh0IGlzIHByb3ZpZGVkIGJ5IGEgVVRleHQsIHRoaXMKKyAgICAgKiAgICBkdW1teSBDaGFyYWN0
ZXJJdGVyYXRvciBvdmVyIGFuIGVtcHR5IHN0cmluZyB3aWxsCisgICAgICogICAgYmUgcmV0dXJu
ZWQgZnJvbSBnZXRUZXh0KCkKKyAgICAgKi8KKyAgICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yICpm
RENoYXJJdGVyOworCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUgZGF0YSBmb3IgdGhpcyBCcmVh
a0l0ZXJhdG9yIGluc3RhbmNlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgUkJCSURh
dGFXcmFwcGVyICAgICpmRGF0YTsKKworICAgIC8qKiBJbmRleCBvZiB0aGUgUnVsZSB7dGFnfSB2
YWx1ZXMgZm9yIHRoZSBtb3N0IHJlY2VudCBtYXRjaC4KKyAgICAgKiAgQGludGVybmFsCisgICAg
Ki8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4OworCisgICAg
LyoqCisgICAgICogUnVsZSB0YWcgdmFsdWUgdmFsaWQgZmxhZy4KKyAgICAgKiBTb21lIGl0ZXJh
dG9yIG9wZXJhdGlvbnMgZG9uJ3QgaW50cmluc2ljYWxseSBzZXQgdGhlIGNvcnJlY3QgdGFnIHZh
bHVlLgorICAgICAqIFRoaXMgZmxhZyBsZXRzIHVzIGxhemlseSBjb21wdXRlIHRoZSB2YWx1ZSBp
ZiB3ZSBhcmUgZXZlciBhc2tlZCBmb3IgaXQuCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgVUJvb2wgICAgICAgICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQ7CisKKyAgICAvKioK
KyAgICAgKiBDb3VudGVyIGZvciB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgZW5jb3VudGVyZWQg
d2l0aCB0aGUgImRpY3Rpb25hcnkiCisgICAgICogICBmbGFnIHNldC4KKyAgICAgKiBAaW50ZXJu
YWwKKyAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgICAgIGZEaWN0aW9uYXJ5Q2hhckNvdW50
OworCisgICAgLyoqCisgICAgICogV2hlbiBhIHJhbmdlIG9mIGNoYXJhY3RlcnMgaXMgZGl2aWRl
ZCB1cCB1c2luZyB0aGUgZGljdGlvbmFyeSwgdGhlIGJyZWFrCisgICAgICogcG9zaXRpb25zIHRo
YXQgYXJlIGRpc2NvdmVyZWQgYXJlIHN0b3JlZCBoZXJlLCBwcmV2ZW50aW5nIHVzIGZyb20gaGF2
aW5nCisgICAgICogdG8gdXNlIGVpdGhlciB0aGUgZGljdGlvbmFyeSBvciB0aGUgc3RhdGUgdGFi
bGUgYWdhaW4gdW50aWwgdGhlIGl0ZXJhdG9yCisgICAgICogbGVhdmVzIHRoaXMgcmFuZ2Ugb2Yg
dGV4dC4gSGFzIHRoZSBtb3N0IGltcGFjdCBmb3IgbGluZSBicmVha2luZy4KKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90KiAgICAgICAgICAgIGZDYWNoZWRCcmVha1Bvc2l0
aW9uczsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gZkNhY2hl
ZEJyZWFrUG9zaXRpb25zCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCAg
ICAgICAgICAgICBmTnVtQ2FjaGVkQnJlYWtQb3NpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBp
ZiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMgaXMgbm90IG51bGwsIHRoaXMgaW5kaWNhdGVzIHdoaWNo
IGl0ZW0gaW4gdGhlCisgICAgICogY2FjaGUgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9u
IHJlZmVycyB0bworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAg
ICAgICAgZlBvc2l0aW9uSW5DYWNoZTsKKyAgICAKKyAgICAvKioKKyAgICAgKgorICAgICAqIElm
IHByZXNlbnQsIFVTdGFjayBvZiBMYW5ndWFnZUJyZWFrRW5naW5lIG9iamVjdHMgdGhhdCBtaWdo
dCBoYW5kbGUKKyAgICAgKiBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMuIFNlYXJjaGVkIGZyb20gdG9w
IHRvIGJvdHRvbSB0byBmaW5kIGFuIG9iamVjdCB0bworICAgICAqIGhhbmRsZSBhIGdpdmVuIGNo
YXJhY3Rlci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBVU3RhY2sgICAgICAgICAg
ICAgICpmTGFuZ3VhZ2VCcmVha0VuZ2luZXM7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAg
KiBJZiBwcmVzZW50LCB0aGUgc3BlY2lhbCBMYW5ndWFnZUJyZWFrRW5naW5lIHVzZWQgZm9yIGhh
bmRsaW5nCisgICAgICogY2hhcmFjdGVycyB0aGF0IGFyZSBpbiB0aGUgZGljdGlvbmFyeSBzZXQs
IGJ1dCBub3QgaGFuZGxlZCBieSBhbnkKKyAgICAgKiBMYW5ndWdhZ2VCcmVha0VuZ2luZS4KKyAg
ICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBVbmhhbmRsZWRFbmdpbmUgICAgICpmVW5oYW5k
bGVkQnJlYWtFbmdpbmU7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAgKiBUaGUgdHlwZSBv
ZiB0aGUgYnJlYWsgaXRlcmF0b3IsIG9yIC0xIGlmIGl0IGhhcyBub3QgYmVlbiBzZXQuCisgICAg
ICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmQnJlYWtUeXBl
OworICAgIAorcHJvdGVjdGVkOgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBjb25zdHJ1
Y3RvcnMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQ
SQorICAgIC8qKgorICAgICAqIENvbnN0YW50IHRvIGJlIHVzZWQgaW4gdGhlIGNvbnN0cnVjdG9y
CisgICAgICogUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihSQkJJRGF0YUhlYWRlciosIEVEb250QWRv
cHQsIFVFcnJvckNvZGUgJik7CisgICAgICogd2hpY2ggZG9lcyBub3QgYWRvcHQgdGhlIG1lbW9y
eSBpbmRpY2F0ZWQgYnkgdGhlIFJCQklEYXRhSGVhZGVyKgorICAgICAqIHBhcmFtZXRlci4KKyAg
ICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGVudW0gRURvbnRBZG9wdCB7Cisg
ICAgICAgIGtEb250QWRvcHQKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3Ig
ZnJvbSBhIGZsYXR0ZW5lZCBzZXQgb2YgUkJCSSBkYXRhIGluIG1hbGxvY2VkIG1lbW9yeS4KKyAg
ICAgKiAgICAgICAgICAgICBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvcnMgYnVpbHQgZnJvbSBhIGN1
c3RvbSBzZXQgb2YgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICBhcmUgY3JlYXRlZCB2aWEgdGhp
cyBjb25zdHJ1Y3RvcjsgdGhlIHJ1bGVzIGFyZSBjb21waWxlZAorICAgICAqICAgICAgICAgICAg
IGludG8gbWVtb3J5LCB0aGVuIHRoZSBicmVhayBpdGVyYXRvciBpcyBjb25zdHJ1Y3RlZCBoZXJl
LgorICAgICAqCisgICAgICogICAgICAgICAgICAgVGhlIGJyZWFrIGl0ZXJhdG9yIGFkb3B0cyB0
aGUgbWVtb3J5LCBhbmQgd2lsbAorICAgICAqICAgICAgICAgICAgIGZyZWUgaXQgd2hlbiBkb25l
LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Io
UkJCSURhdGFIZWFkZXIqIGRhdGEsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAg
ICAgKiBDb25zdHJ1Y3RvciBmcm9tIGEgZmxhdHRlbmVkIHNldCBvZiBSQkJJIGRhdGEgaW4gbWVt
b3J5IHdoaWNoIG5lZWQgbm90CisgICAgICogICAgICAgICAgICAgYmUgbWFsbG9jZWQgKGUuZy4g
aXQgbWF5IGJlIGEgbWVtb3J5LW1hcHBlZCBmaWxlLCBldGMuKS4KKyAgICAgKgorICAgICAqICAg
ICAgICAgICAgIFRoaXMgdmVyc2lvbiBkb2VzIG5vdCBhZG9wdCB0aGUgbWVtb3J5LCBhbmQgZG9l
cyBub3QKKyAgICAgKiAgICAgICAgICAgICBmcmVlIGl0IHdoZW4gZG9uZS4KKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGNvbnN0IFJCQklEYXRh
SGVhZGVyKiBkYXRhLCBlbnVtIEVEb250QWRvcHQgZG9udEFkb3B0LCBVRXJyb3JDb2RlICZzdGF0
dXMpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKworICAgIGZyaWVuZCBj
bGFzcyBSQkJJUnVsZUJ1aWxkZXI7CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIGZyaWVuZCBj
bGFzcyBCcmVha0l0ZXJhdG9yOworCisKKworcHVibGljOgorCisgICAgLyoqIERlZmF1bHQgY29u
c3RydWN0b3IuICBDcmVhdGVzIGFuIGVtcHR5IHNoZWxsIG9mIGFuIGl0ZXJhdG9yLCB3aXRoIG5v
CisgICAgICogIHJ1bGVzIG9yIHRleHQgdG8gaXRlcmF0ZSBvdmVyLiAgIE9iamVjdCBjYW4gc3Vi
c2VxdWVudGx5IGJlIGFzc2lnbmVkIHRvLgorICAgICAqICBAc3RhYmxlIElDVSAyLjIKKyAgICAg
Ki8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBDb3B5
IGNvbnN0cnVjdG9yLiAgV2lsbCBwcm9kdWNlIGEgYnJlYWsgaXRlcmF0b3Igd2l0aCB0aGUgc2Ft
ZSBiZWhhdmlvciwKKyAgICAgKiBhbmQgd2hpY2ggaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSB0ZXh0
LCBhcyB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvciBwYXNzZWQgdG8gYmUgY29waWVkCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCBSdWxlQmFzZWRCcmVh
a0l0ZXJhdG9yJiB0aGF0KTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3IgZnJvbSBhIHNldCBvZiBydWxlcyBzdXBwbGllZCBhcyBhIHN0cmluZy4K
KyAgICAgKiBAcGFyYW0gcnVsZXMgVGhlIGJyZWFrIHJ1bGVzIHRvIGJlIHVzZWQuCisgICAgICog
QHBhcmFtIHBhcnNlRXJyb3IgIEluIHRoZSBldmVudCBvZiBhIHN5bnRheCBlcnJvciBpbiB0aGUg
cnVsZXMsIHByb3ZpZGVzIHRoZSBsb2NhdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICB3
aXRoaW4gdGhlIHJ1bGVzIG9mIHRoZSBwcm9ibGVtLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5m
b3JtYXRpb24gb24gYW55IGVycm9ycyBlbmNvdW50ZXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjIKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCBjb25zdCBVbmljb2RlU3Ry
aW5nICAgICZydWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBhcnNlRXJyb3Ig
ICAgICAgICAgICZwYXJzZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJy
b3JDb2RlICAgICAgICAgICAgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDb250cnVjdCBh
IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZnJvbSBhIHNldCBvZiBwcmVjb21waWxlZCBiaW5hcnkg
cnVsZXMuCisgICAgICogQmluYXJ5IHJ1bGVzIGFyZSBvYnRhaW5lZCBmcm9tIFJ1bGVzQmFzZWRC
cmVha0l0ZXJhdG9yOjpnZXRCaW5hcnlSdWxlcygpLgorICAgICAqIENvbnN0cnVjdGlvbiBvZiBh
IGJyZWFrIGl0ZXJhdG9yIGluIHRoaXMgd2F5IGlzIHN1YnN0YW50aWFsbHkgZmFzdGVyIHRoYW4K
KyAgICAgKiBjb25zdHVjdGlvbiBmcm9tIHNvdXJjZSBydWxlcy4KKyAgICAgKgorICAgICAqIE93
bmVyc2hpcCBvZiB0aGUgc3RvcmFnZSBjb250YWluaW5nIHRoZSBjb21waWxlZCBydWxlcyByZW1h
aW5zIHdpdGggdGhlCisgICAgICogY2FsbGVyIG9mIHRoaXMgZnVuY3Rpb24uICBUaGUgY29tcGls
ZWQgcnVsZXMgbXVzdCBub3QgYmUgIG1vZGlmaWVkIG9yIAorICAgICAqIGRlbGV0ZWQgZHVyaW5n
IHRoZSBsaWZlIG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIFRoZSBjb21w
aWxlZCBydWxlcyBhcmUgbm90IGNvbXBhdGlibGUgYWNyb3NzIGRpZmZlcmVudCBtYWpvciB2ZXJz
aW9ucyBvZiBJQ1UuCisgICAgICogVGhlIGNvbXBpbGVkIHJ1bGVzIGFyZSBjb21hcHRpYmxlIG9u
bHkgYmV0d2VlbiBtYWNoaW5lcyB3aXRoIHRoZSBzYW1lCisgICAgICogYnl0ZSBvcmRlcmluZyAo
bGl0dGxlIG9yIGJpZyBlbmRpYW4pIGFuZCB0aGUgc2FtZSBiYXNlIGNoYXJhY3RlciBzZXQgZmFt
aWx5CisgICAgICogKEFTQ0lJIG9yIEVCQ0RJQykuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRC
aW5hcnlSdWxlcworICAgICAqIEBwYXJhbSBjb21waWxlZFJ1bGVzIEEgcG9pbnRlciB0byB0aGUg
Y29tcGlsZWQgYnJlYWsgcnVsZXMgdG8gYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gcnVsZUxlbmd0
aCBUaGUgbGVuZ3RoIG9mIHRoZSBjb21waWxlZCBicmVhayBydWxlcywgaW4gYnl0ZXMuICBUaGlz
CisgICAgICogICBjb3JyZXNwb25kcyB0byB0aGUgbGVuZ3RoIHZhbHVlIHByb2R1Y2VkIGJ5IGdl
dEJpbmFyeVJ1bGVzKCkuCisgICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkg
ZXJyb3JzIGVuY291bnRlcmVkLCBpbmNsdWRpbmcgaW52YWxpZAorICAgICAqICAgYmluYXJ5IHJ1
bGVzLgorICAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IoY29uc3QgdWludDhfdCAqY29tcGlsZWRSdWxlcywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90ICAgICAgIHJ1bGVMZW5ndGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBVRXJyb3JDb2RlICAgICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVGhpcyBj
b25zdHJ1Y3RvciB1c2VzIHRoZSB1ZGF0YSBpbnRlcmZhY2UgdG8gY3JlYXRlIGEgQnJlYWtJdGVy
YXRvcgorICAgICAqIHdob3NlIGludGVybmFsIHRhYmxlcyBsaXZlIGluIGEgbWVtb3J5LW1hcHBl
ZCBmaWxlLiAgImltYWdlIiBpcyBhbgorICAgICAqIElDVSBVRGF0YU1lbW9yeSBoYW5kbGUgZm9y
IHRoZSBwcmUtY29tcGlsZWQgYnJlYWsgaXRlcmF0b3IgdGFibGVzLgorICAgICAqIEBwYXJhbSBp
bWFnZSBoYW5kbGUgdG8gdGhlIG1lbW9yeSBpbWFnZSBmb3IgdGhlIGJyZWFrIGl0ZXJhdG9yIGRh
dGEuCisgICAgICogICAgICAgIE93bmVyc2hpcCBvZiB0aGUgVURhdGFNZW1vcnkgaGFuZGxlIHBh
c3NlcyB0byB0aGUgQnJlYWsgSXRlcmF0b3IsCisgICAgICogICAgICAgIHdoaWNoIHdpbGwgYmUg
cmVzcG9uc2libGUgZm9yIGNsb3NpbmcgaXQgd2hlbiBpdCBpcyBubyBsb25nZXIgbmVlZGVkLgor
ICAgICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24gYW55IGVycm9ycyBlbmNvdW50ZXJl
ZC4KKyAgICAgKiBAc2VlIHVkYXRhX29wZW4KKyAgICAgKiBAc2VlICNnZXRCaW5hcnlSdWxlcwor
ICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3IoVURhdGFNZW1vcnkqIGltYWdlLCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisg
ICAgICogRGVzdHJ1Y3RvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIH5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBBc3Np
Z25tZW50IG9wZXJhdG9yLiAgU2V0cyB0aGlzIGl0ZXJhdG9yIHRvIGhhdmUgdGhlIHNhbWUgYmVo
YXZpb3IsCisgICAgICogYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LCBhcyB0aGUgb25l
IHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgUnVsZUJhc2VkQnJlYWtJdGVydG9y
IHBhc3NlZCBpbgorICAgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBSdWxlQmFz
ZWRCcmVha0l0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3QgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciYg
dGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBFcXVhbGl0eSBvcGVyYXRvci4gIFJldHVybnMgVFJV
RSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBvZiB0aGUKKyAgICAgKiBzYW1lIGNsYXNzLCBo
YXZlIHRoZSBzYW1lIGJlaGF2aW9yLCBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHRleHQuCisg
ICAgICogQHBhcmFtIHRoYXQgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVx
dWFsaXR5CisgICAgICogQHJldHVybiBUUlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG9m
IHRoZQorICAgICAqIHNhbWUgY2xhc3MsIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsIGFuZCBpdGVy
YXRlIG92ZXIgdGhlIHNhbWUgdGV4dC4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHRoYXQp
IGNvbnN0OworCisgICAgLyoqCisgICAgICogTm90LWVxdWFsIG9wZXJhdG9yLiAgSWYgb3BlcmF0
b3I9PSByZXR1cm5zIFRSVUUsIHRoaXMgcmV0dXJucyBGQUxTRSwKKyAgICAgKiBhbmQgdmljZSB2
ZXJzYS4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQnJlYWtJdGVyYXRvciB0byBiZSBjb21wYXJl
ZCBmb3IgaW5lcXVhbGl0eQorICAgICAqIEByZXR1cm4gVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0
b3JzIGFyZSBub3Qgc2FtZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
VUJvb2wgb3BlcmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yIHdpdGggdGhlIHNhbWUKKyAgICAgKiBiZWhhdmlvciwgYW5kIGl0ZXJhdGluZyBvdmVy
IHRoZSBzYW1lIHRleHQsIGFzIHRoaXMgb25lLgorICAgICAqIERpZmZlcnMgZnJvbSB0aGUgY29w
eSBjb25zdHJ1Y3RvciBpbiB0aGF0IGl0IGlzIHBvbHltb3JwaGljLCBhbmQKKyAgICAgKiB3aWxs
IGNvcnJlY3RseSBjbG9uZSAoY29weSkgYSBkZXJpdmVkIGNsYXNzLgorICAgICAqIGNsb25lKCkg
aXMgdGhyZWFkIHNhZmUuICBNdWx0aXBsZSB0aHJlYWRzIG1heSBzaW11bHRhZW5lb3VzbHkKKyAg
ICAgKiBjbG9uZSB0aGUgc2FtZSBzb3VyY2UgYnJlYWsgaXRlcmF0b3IuCisgICAgICogQHJldHVy
biBhIG5ld2x5LWNvbnN0cnVjdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IqIGNsb25lKCkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGEgaGFzaCBjb2RlIGZvciB0aGlzIEJy
ZWFrSXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIEEgaGFzaCBjb2RlCisgICAgICogIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBoYXNoQ29kZSh2b2lkKSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlc2NyaXB0aW9uIHVzZWQgdG8gY3Jl
YXRlIHRoaXMgaXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIHRoZSBkZXNjcmlwdGlvbiB1c2VkIHRv
IGNyZWF0ZSB0aGlzIGl0ZXJhdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgY29uc3QgVW5pY29kZVN0cmluZyYgZ2V0UnVsZXModm9pZCkgY29uc3Q7CisK
KyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQnJlYWtJdGVyYXRvciBvdmVycmlkZXMKKyAg
ICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBSZXR1cm4g
YSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAq
IFRoZSByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0b3IgaXMgb3duZWQgYnkgdGhlIGJyZWFrIGl0
ZXJhdG9yLCBhbmQgbXVzdAorICAgICAqIG5vdCBiZSBkZWxldGVkIGJ5IHRoZSBjYWxsZXIuICBS
ZXBlYXRlZCBjYWxscyB0byB0aGlzIGZ1bmN0aW9uIG1heQorICAgICAqIHJldHVybiB0aGUgc2Ft
ZSBDaGFyYWN0ZXJJdGVyYXRvci4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhl
IHJldHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBtdXN0IG5vdCBiZSB1c2VkIGNvbmN1cnJlbnRs
eSB3aXRoCisgICAgICogdGhlIGJyZWFrIGl0ZXJhdG9yLiAgSWYgY29uY3VycmVudCBvcGVyYXRp
b24gaXMgbmVlZGVkLCBjbG9uZSB0aGUKKyAgICAgKiByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0
b3IgZmlyc3QgYW5kIG9wZXJhdGUgb24gdGhlIGNsb25lLgorICAgICAqIDwvcD4KKyAgICAgKiA8
cD4KKyAgICAgKiBXaGVuIHRoZSBicmVhayBpdGVyYXRvciBpcyBvcGVyYXRpbmcgb24gdGV4dCBz
dXBwbGllZCB2aWEgYSBVVGV4dCwKKyAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgZmFpbC4gIExh
Y2tpbmcgYW55IHdheSB0byBzaWduYWwgZmFpbHVyZXMsIGl0CisgICAgICogcmV0dXJucyBhbiBD
aGFyYWN0ZXJJdGVyYXRvciBjb250YWluaW5nIG5vIHRleHQuCisgICAgICogVGhlIGZ1bmN0aW9u
IGdldFVUZXh0KCkgcHJvdmlkZXMgc2ltaWxhciBmdW5jdGlvbmFsaXR5LAorICAgICAqIGlzIHJl
bGlhYmxlLCBhbmQgaXMgbW9yZSBlZmZpY2llbnQuCisgICAgICogPC9wPgorICAgICAqCisgICAg
ICogVE9ETzogIGRlcHJlY2F0ZSB0aGlzIGZ1bmN0aW9uPworICAgICAqCisgICAgICogQHJldHVy
biBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgIENoYXJhY3Rlckl0ZXJhdG9yJiBnZXRU
ZXh0KHZvaWQpIGNvbnN0OworCisKKyAgICAvKioKKyAgICAgICogIEdldCBhIFVUZXh0IGZvciB0
aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgICogIFRoZSByZXR1cm5lZCBVVGV4dCBpcyBh
IHNoYWxsb3cgY2xvbmUgb2YgdGhlIFVUZXh0IHVzZWQgaW50ZXJuYWxseQorICAgICAgKiAgYnkg
dGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uLiAgSXQgY2FuIHNhZmVseSBiZSB1c2Vk
IHRvCisgICAgICAqICBhY2Nlc3MgdGhlIHRleHQgd2l0aG91dCBpbXBhY3RpbmcgYW55IGJyZWFr
IGl0ZXJhdG9yIG9wZXJhdGlvbnMsCisgICAgICAqICBidXQgdGhlIHVuZGVybHlpbmcgdGV4dCBp
dHNlbGYgbXVzdCBub3QgYmUgYWx0ZXJlZC4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGZpbGxJ
biBBIFVUZXh0IHRvIGJlIGZpbGxlZCBpbi4gIElmIE5VTEwsIGEgbmV3IFVUZXh0IHdpbGwgYmUK
KyAgICAgICogICAgICAgICAgIGFsbG9jYXRlZCB0byBob2xkIHRoZSByZXN1bHQuCisgICAgICAq
IEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAgKiBAcmV0dXJu
ICAgVGhlIGN1cnJlbnQgVVRleHQgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuICBJZiBhbiBpbnB1
dAorICAgICAgKiAgICAgICAgICAgVVRleHQgd2FzIHByb3ZpZGVkLCBpdCB3aWxsIGFsd2F5cyBi
ZSByZXR1cm5lZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICAqLworICAgICB2aXJ0
dWFsIFVUZXh0ICpnZXRVVGV4dChVVGV4dCAqZmlsbEluLCBVRXJyb3JDb2RlICZzdGF0dXMpIGNv
bnN0OworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3
IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBjdXJyZW50
IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAq
IEBwYXJhbSBuZXdUZXh0IEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgdG8gYW5hbHl6ZS4gIFRo
ZSBCcmVha0l0ZXJhdG9yCisgICAgICogdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBjaGFyYWN0ZXIg
aXRlcmF0b3IuICBUaGUgY2FsbGVyIE1VU1QgTk9UIGRlbGV0ZSBpdCEKKyAgICAgKiAgQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkIGFkb3B0VGV4dChDaGFyYWN0ZXJJ
dGVyYXRvciogbmV3VGV4dCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHRv
IGFuYWx5emUgYSBuZXcgcGllY2Ugb2YgdGV4dC4gIFRoaXMgZnVuY3Rpb24gcmVzZXRzCisgICAg
ICogdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhl
IHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgVGhlIHRleHQgdG8gYW5hbHl6ZS4KKyAgICAg
KiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkIHNldFRleHQoY29u
c3QgVW5pY29kZVN0cmluZyYgbmV3VGV4dCk7CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUg
YnJlYWsgaXRlcmF0b3IgdG8gb3BlcmF0ZSBvdmVyIHRoZSB0ZXh0IHJlcHJlc2VudGVkIGJ5Cisg
ICAgICogdGhlIFVUZXh0LiAgVGhlIGl0ZXJhdG9yIHBvc2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBz
dGFydC4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gbWFrZXMgYSBzaGFsbG93IGNsb25l
IG9mIHRoZSBzdXBwbGllZCBVVGV4dC4gIFRoaXMgbWVhbnMKKyAgICAgKiB0aGF0IHRoZSBjYWxs
ZXIgaXMgZnJlZSB0byBpbW1lZGlhdGVseSBjbG9zZSBvciBvdGhlcndpc2UgcmV1c2UgdGhlCisg
ICAgICogVXRleHQgdGhhdCB3YXMgcGFzc2VkIGFzIGEgcGFyYW1ldGVyLCBidXQgdGhhdCB0aGUg
dW5kZXJseWluZyB0ZXh0IGl0c2VsZgorICAgICAqIG11c3Qgbm90IGJlIGFsdGVyZWQgd2hpbGUg
YmVpbmcgcmVmZXJlbmNlZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBA
cGFyYW0gdGV4dCAgICBUaGUgVVRleHQgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICog
QHBhcmFtIHN0YXR1cyAgUmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAqIEBzdGFibGUg
SUNVIDMuNAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChVVGV4dCAqdGV4dCwg
VUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQg
aXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHBvc2l0aW9u
IHplcm8uCisgICAgICogQHJldHVybiBUaGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhl
IHRleHQsIHplcm8uCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgaW50MzJfdCBmaXJzdCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJl
bnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHJl
dHVybiBUaGUgdGV4dCdzIHBhc3QtdGhlLWVuZCBvZmZzZXQuCisgICAgICogIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBsYXN0KHZvaWQpOworCisgICAgLyoq
CisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGVpdGhlciBmb3J3YXJkIG9yIGJhY2t3YXJk
IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHN0ZXBzLgorICAgICAqIE5lZ2F0aXZlIHZhbHVlcyBt
b3ZlIGJhY2t3YXJkLCBhbmQgcG9zaXRpdmUgdmFsdWVzIG1vdmUgZm9yd2FyZC4gIFRoaXMgaXMK
KyAgICAgKiBlcXVpdmFsZW50IHRvIHJlcGVhdGVkbHkgY2FsbGluZyBuZXh0KCkgb3IgcHJldmlv
dXMoKS4KKyAgICAgKiBAcGFyYW0gbiBUaGUgbnVtYmVyIG9mIHN0ZXBzIHRvIG1vdmUuICBUaGUg
c2lnbiBpbmRpY2F0ZXMgdGhlIGRpcmVjdGlvbgorICAgICAqIChuZWdhdGl2ZSBpcyBiYWNrd2Fy
ZHMsIGFuZCBwb3NpdGl2ZSBpcyBmb3J3YXJkcykuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFj
dGVyIG9mZnNldCBvZiB0aGUgYm91bmRhcnkgcG9zaXRpb24gbiBib3VuZGFyaWVzIGF3YXkgZnJv
bQorICAgICAqIHRoZSBjdXJyZW50IG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQoaW50MzJfdCBuKTsKKworICAgIC8qKgorICAg
ICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbi4K
KyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIg
dGhpcyBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
aW50MzJfdCBuZXh0KHZvaWQpOworCisgICAgLyoqCisgICAgICogTW92ZXMgdGhlIGl0ZXJhdG9y
IGJhY2t3YXJkcywgdG8gdGhlIGxhc3QgYm91bmRhcnkgcHJlY2VkaW5nIHRoaXMgb25lLgorICAg
ICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIHBy
ZWNlZGluZyB0aGlzIG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBpbnQzMl90IHByZXZpb3VzKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0
aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGZvbGxv
d2luZworICAgICAqIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNl
dCBUaGUgcG9zaXRpb24gZnJvbSB3aGljaCB0byBiZWdpbiBzZWFyY2hpbmcgZm9yIGEgYnJlYWsg
cG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJyZWFr
IGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZm9sbG93aW5nKGludDMyX3Qgb2Zmc2V0KTsKKwor
ICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGJv
dW5kYXJ5IHBvc2l0aW9uIGJlZm9yZSB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24uCisg
ICAgICogQHBhcmFtIG9mZnNldCBUaGUgcG9zaXRpb24gdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBh
IGJyZWFrIGZyb20uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91
bmRhcnkgYmVmb3JlIHRoZSBzdGFydGluZyBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHByZWNlZGluZyhpbnQzMl90IG9mZnNl
dCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0
aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uICBBcyBhIHNpZGUKKyAgICAgKiBlZmZlY3QsIGxl
YXZlcyB0aGUgaXRlcmF0b3IgcG9pbnRpbmcgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9u
IGF0CisgICAgICogb3IgYWZ0ZXIgIm9mZnNldCIuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUg
b2Zmc2V0IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJv
dW5kYXJ5IHBvc2l0aW9uLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIFVCb29sIGlzQm91bmRhcnkoaW50MzJfdCBvZmZzZXQpOworCisgICAgLyoqCisgICAg
ICogUmV0dXJucyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHJldHVy
biBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGN1cnJlbnQodm9pZCkgY29uc3Q7CisKKwor
ICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc3RhdHVzIHRhZyBmcm9tIHRoZSBicmVhayBydWxl
IHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqIHJldHVybmVkIGJyZWFr
IHBvc2l0aW9uLiAgRm9yIGJyZWFrIHJ1bGVzIHRoYXQgZG8gbm90IHNwZWNpZnkgYQorICAgICAq
IHN0YXR1cywgYSBkZWZhdWx0IHZhbHVlIG9mIDAgaXMgcmV0dXJuZWQuICBJZiBtb3JlIHRoYW4g
b25lIGJyZWFrIHJ1bGUKKyAgICAgKiB3b3VsZCBjYXVzZSBhIGJvdW5kYXJ5IHRvIGJlIGxvY2F0
ZWQgYXQgc29tZSBwb3NpdGlvbiBpbiB0aGUgdGV4dCwKKyAgICAgKiB0aGUgbnVtZXJpY2FsbHkg
bGFyZ2VzdCBvZiB0aGUgYXBwbGljYWJsZSBzdGF0dXMgdmFsdWVzIGlzIHJldHVybmVkLgorICAg
ICAqIDxwPgorICAgICAqIE9mIHRoZSBzdGFuZGFyZCB0eXBlcyBvZiBJQ1UgYnJlYWsgaXRlcmF0
b3JzLCBvbmx5IHdvcmQgYnJlYWsgYW5kCisgICAgICogbGluZSBicmVhayBwcm92aWRlIHN0YXR1
cyB2YWx1ZXMuICBUaGUgdmFsdWVzIGFyZSBkZWZpbmVkIGluCisgICAgICogdGhlIGhlYWRlciBm
aWxlIHVicmsuaC4gIEZvciBXb3JkIGJyZWFrcywgdGhlIHN0YXR1cyBhbGxvd3MgZGlzdGluZ3Vp
c2hpbmcgYmV0d2VlbiB3b3JkcworICAgICAqIHRoYXQgY29udGFpbiBhbHBoYWJldGljIGxldHRl
cnMsICJ3b3JkcyIgdGhhdCBhcHBlYXIgdG8gYmUgbnVtYmVycywKKyAgICAgKiBwdW5jdHVhdGlv
biBhbmQgc3BhY2VzLCB3b3JkcyBjb250YWluaW5nIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMsIGFu
ZAorICAgICAqIG1vcmUuICBGb3IgTGluZSBCcmVhaywgdGhlIHN0YXR1cyBkaXN0aW5ndWlzaGVz
IGJldHdlZW4gaGFyZCAobWFuZGF0b3J5KSBicmVha3MKKyAgICAgKiBhbmQgc29mdCAocG90ZW50
aWFsKSBicmVhayBwb3NpdGlvbnMuCisgICAgICogPHA+CisgICAgICogPGNvZGU+Z2V0UnVsZVN0
YXR1cygpPC9jb2RlPiBjYW4gYmUgY2FsbGVkIGFmdGVyIG9idGFpbmluZyBhIGJvdW5kYXJ5Cisg
ICAgICogcG9zaXRpb24gZnJvbSA8Y29kZT5uZXh0KCk8L2NvZGU+LCA8Y29kZT5wcmV2aW91cygp
PC9jb2RlPiwgb3IKKyAgICAgKiBhbnkgb3RoZXIgYnJlYWsgaXRlcmF0b3IgZnVuY3Rpb25zIHRo
YXQgcmV0dXJucyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIDxwPgorICAgICAqIFdoZW4g
Y3JlYXRpbmcgY3VzdG9tIGJyZWFrIHJ1bGVzLCBvbmUgaXMgZnJlZSB0byBkZWZpbmUgd2hhdGV2
ZXIKKyAgICAgKiBzdGF0dXMgdmFsdWVzIG1heSBiZSBjb252ZW5pZW50IGZvciB0aGUgYXBwbGlj
YXRpb24uCisgICAgICogPHA+CisgICAgICogTm90ZTogdGhpcyBmdW5jdGlvbiBpcyBub3QgdGhy
ZWFkIHNhZmUuICBJdCBzaG91bGQgbm90IGhhdmUgYmVlbgorICAgICAqICAgICAgIGRlY2xhcmVk
IGNvbnN0LCBhbmQgdGhlIGNvbnN0IHJlbWFpbnMgb25seSBmb3IgY29tcGF0aWJpbGl0eQorICAg
ICAqICAgICAgIHJlYXNvbnMuICAoVGhlIGZ1bmN0aW9uIGlzIGxvZ2ljYWxseSBjb25zdCwgYnV0
IG5vdCBiaXQtd2lzZSBjb25zdCkuCisgICAgICogPHA+CisgICAgICogQHJldHVybiB0aGUgc3Rh
dHVzIGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5
CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBAc2VlIFVX
b3JkQnJlYWsKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGlu
dDMyX3QgZ2V0UnVsZVN0YXR1cygpIGNvbnN0OworCisgICAvKioKKyAgICAqIEdldCB0aGUgc3Rh
dHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIHRoYXQgZGV0ZXJtaW5lZCB0
aGUgbW9zdAorICAgICogcmVjZW50bHkgcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgKiA8
cD4KKyAgICAqIFRoZSByZXR1cm5lZCBzdGF0dXMgdmFsdWUocykgYXJlIHN0b3JlZCBpbnRvIGFu
IGFycmF5IHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9y
ZWQgaW4gc29ydGVkIChhc2NlbmRpbmcpIG9yZGVyLgorICAgICogSWYgdGhlIGNhcGFjaXR5IG9m
IHRoZSBvdXRwdXQgYXJyYXkgaXMgaW5zdWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgICAg
KiAgdGhlIG91dHB1dCB3aWxsIGJlIHRydW5jYXRlZCB0byB0aGUgYXZhaWxhYmxlIGxlbmd0aCwg
YW5kIGEKKyAgICAqICBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiB3aWxsIGJlIHNpZ25hbGVkLgor
ICAgICoKKyAgICAqIEBwYXJhbSBmaWxsSW5WZWMgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGluIHdp
dGggdGhlIHN0YXR1cyB2YWx1ZXMuCisgICAgKiBAcGFyYW0gY2FwYWNpdHkgIHRoZSBsZW5ndGgg
b2YgdGhlIHN1cHBsaWVkIHZlY3Rvci4gIEEgbGVuZ3RoIG9mIHplcm8gY2F1c2VzCisgICAgKiAg
ICAgICAgICAgICAgICAgIHRoZSBmdW5jdGlvbiB0byByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0
dXMgdmFsdWVzLCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgbm9ybWFsIHdheSwgd2l0
aG91dCBhdHRlbXRwaW5nIHRvIHN0b3JlIGFueSB2YWx1ZXMuCisgICAgKiBAcGFyYW0gc3RhdHVz
ICAgIHJlY2VpdmVzIGVycm9yIGNvZGVzLgorICAgICogQHJldHVybiAgICAgICAgICBUaGUgbnVt
YmVyIG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZAorICAg
ICogICAgICAgICAgICAgICAgICB0aGUgbW9zdCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQgYnkg
dGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICogICAgICAgICAgICAgICAgICBJbiB0aGUgZXZlbnQg
b2YgYSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdGhlIHJldHVybiB2YWx1ZQorICAgICogICAg
ICAgICAgICAgICAgICBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCB3
ZXJlIGF2YWlsYWJsZSwKKyAgICAqICAgICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2VkIG51
bWJlciB0aGF0IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQuCisgICAgKiBAc2VlIGdldFJ1bGVTdGF0
dXMKKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdl
dFJ1bGVTdGF0dXNWZWMoaW50MzJfdCAqZmlsbEluVmVjLCBpbnQzMl90IGNhcGFjaXR5LCBVRXJy
b3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHVuaXF1ZSBjbGFz
cyBJRCBQT0xZTU9SUEhJQ0FMTFkuICBQdXJlIHZpcnR1YWwgb3ZlcnJpZGUuCisgICAgICogVGhp
cyBtZXRob2QgaXMgdG8gaW1wbGVtZW50IGEgc2ltcGxlIHZlcnNpb24gb2YgUlRUSSwgc2luY2Ug
bm90IGFsbAorICAgICAqIEMrKyBjb21waWxlcnMgc3VwcG9ydCBnZW51aW5lIFJUVEkuICBQb2x5
bW9ycGhpYyBvcGVyYXRvcj09KCkgYW5kCisgICAgICogY2xvbmUoKSBtZXRob2RzIGNhbGwgdGhp
cyBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBjbGFzcyBJRCBm
b3IgdGhpcyBvYmplY3QuIEFsbCBvYmplY3RzIG9mIGEKKyAgICAgKiAgICAgICAgICAgICAgICAg
IGdpdmVuIGNsYXNzIGhhdmUgdGhlIHNhbWUgY2xhc3MgSUQuICBPYmplY3RzIG9mCisgICAgICog
ICAgICAgICAgICAgICAgICBvdGhlciBjbGFzc2VzIGhhdmUgZGlmZmVyZW50IGNsYXNzIElEcy4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdl
dER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0
aGUgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MuICBUaGlzIGlzIHVzZWZ1bCBvbmx5IGZvcgorICAg
ICAqIGNvbXBhcmluZyB0byBhIHJldHVybiB2YWx1ZSBmcm9tIGdldER5bmFtaWNDbGFzc0lEKCku
ICBGb3IgZXhhbXBsZToKKyAgICAgKgorICAgICAqICAgICAgQmFzZSogcG9seW1vcnBoaWNfcG9p
bnRlciA9IGNyZWF0ZVBvbHltb3JwaGljT2JqZWN0KCk7CisgICAgICogICAgICBpZiAocG9seW1v
cnBoaWNfcG9pbnRlci0+Z2V0RHluYW1pY0NsYXNzSUQoKSA9PQorICAgICAqICAgICAgICAgIERl
cml2ZWQ6OmdldFN0YXRpY0NsYXNzSUQoKSkgLi4uCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAg
ICAgICAgIFRoZSBjbGFzcyBJRCBmb3IgYWxsIG9iamVjdHMgb2YgdGhpcyBjbGFzcy4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQy
IGdldFN0YXRpY0NsYXNzSUQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBEZXByZWNhdGVkIGZ1
bmN0aW9uYWxpdHkuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBDcmVhdGUg
YSBjbG9uZSAoY29weSkgb2YgdGhpcyBicmVhayBpdGVyYXRvciBpbiBtZW1vcnkgcHJvdmlkZWQK
KyAgICAgKiAgYnkgdGhlIGNhbGxlci4gIFRoZSBpZGVhIGlzIHRvIGluY3JlYXNlIHBlcmZvcm1h
bmNlIGJ5IGF2b2lkaW5nCisgICAgICogIGEgc3RvcmFnZSBhbGxvY2F0aW9uLiAgVXNlIG9mIHRo
aXMgZnVuY3RvaW4gaXMgTk9UIFJFQ09NTUVOREVELgorICAgICAqICBQZXJmb3JtYW5jZSBnYWlu
cyBhcmUgbWluaW1hbCwgYW5kIGNvcnJlY3QgYnVmZmVyIG1hbmFnZW1lbnQgaXMKKyAgICAgKiAg
dHJpY2t5LiAgVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFj
a0J1ZmZlciAgVGhlIHBvaW50ZXIgdG8gdGhlIG1lbW9yeSBpbnRvIHdoaWNoIHRoZSBjbG9uZWQg
b2JqZWN0CisgICAgICogICAgICAgICAgICAgICAgICAgICBzaG91bGQgYmUgcGxhY2VkLiAgSWYg
TlVMTCwgIGFsbG9jYXRlIGhlYXAgbWVtb3J5CisgICAgICogICAgICAgICAgICAgICAgICAgICBm
b3IgdGhlIGNsb25lZCBvYmplY3QuCisgICAgICogQHBhcmFtIEJ1ZmZlclNpemUgICBUaGUgc2l6
ZSBvZiB0aGUgYnVmZmVyLiAgSWYgemVybywgcmV0dXJuIHRoZSByZXF1aXJlZAorICAgICAqICAg
ICAgICAgICAgICAgICAgICAgYnVmZmVyIHNpemUsIGJ1dCBkbyBub3QgY2xvbmUgdGhlIG9iamVj
dC4gIElmIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgc2l6ZSB3YXMgdG9vIHNtYWxs
IChidXQgbm90IHplcm8pLCBhbGxvY2F0ZSBoZWFwCisgICAgICogICAgICAgICAgICAgICAgICAg
ICBzdG9yYWdlIGZvciB0aGUgY2xvbmVkIG9iamVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBz
dGF0dXMgICAgICAgRXJyb3Igc3RhdHVzLiAgVV9TQUZFQ0xPTkVfQUxMT0NBVEVEX1dBUk5JTkcg
d2lsbCBiZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgcmV0dXJuZWQgaWYgdGhlIHRoZSBw
cm92aWRlZCBidWZmZXIgd2FzIHRvbyBzbWFsbCwgYW5kCisgICAgICogICAgICAgICAgICAgICAg
ICAgICB0aGUgY2xvbmUgd2FzIHRoZXJlZm9yZSBwdXQgb24gdGhlIGhlYXAuCisgICAgICoKKyAg
ICAgKiBAcmV0dXJuICBQb2ludGVyIHRvIHRoZSBjbG9uZSBvYmplY3QuICBUaGlzIG1heSBkaWZm
ZXIgZnJvbSB0aGUgc3RhY2tCdWZmZXIKKyAgICAgKiAgICAgICAgICBhZGRyZXNzIGlmIHRoZSBi
eXRlIGFsaWdubWVudCBvZiB0aGUgc3RhY2sgYnVmZmVyIHdhcyBub3Qgc3VpdGFibGUKKyAgICAg
KiAgICAgICAgICBvciBpZiB0aGUgc3RhY2tCdWZmZXIgd2FzIHRvbyBzbWFsbCB0byBob2xkIHRo
ZSBjbG9uZS4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIFVzZSBjbG9uZSgpIGluc3RlYWQu
CisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yICogIGNyZWF0ZUJ1ZmZlckNsb25l
KHZvaWQgKnN0YWNrQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQzMl90ICZCdWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICZzdGF0dXMpOworCisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm4gdGhlIGJpbmFyeSBmb3JtIG9mIGNvbXBpbGVkIGJyZWFrIHJ1bGVzLAor
ICAgICAqIHdoaWNoIGNhbiB0aGVuIGJlIHVzZWQgdG8gY3JlYXRlIGEgbmV3IGJyZWFrIGl0ZXJh
dG9yIGF0IHNvbWUKKyAgICAgKiB0aW1lIGluIHRoZSBmdXR1cmUuICBDcmVhdGluZyBhIGJyZWFr
IGl0ZXJhdG9yIGZyb20gcHJlLWNvbXBpbGVkIHJ1bGVzCisgICAgICogaXMgbXVjaCBmYXN0ZXIg
dGhhbiBidWlsZGluZyBvbmUgZnJvbSB0aGUgc291cmNlIGZvcm0gb2YgdGhlCisgICAgICogYnJl
YWsgcnVsZXMuCisgICAgICoKKyAgICAgKiBUaGUgYmluYXJ5IGRhdGEgY2FuIG9ubHkgYmUgdXNl
ZCB3aXRoIHRoZSBzYW1lIHZlcnNpb24gb2YgSUNVCisgICAgICogIGFuZCBvbiB0aGUgc2FtZSBw
bGF0Zm9ybSB0eXBlIChwcm9jZXNzb3IgZW5kaWFuLW5lc3MpCisgICAgICoKKyAgICAgKiBAcGFy
YW0gbGVuZ3RoIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgYmluYXJ5IGRhdGEuICAoT3V0IHBh
cmFtdGVyLikKKyAgICAgKgorICAgICAqIEByZXR1cm4gICBBIHBvaW50ZXIgdG8gdGhlIGJpbmFy
eSAoY29tcGlsZWQpIHJ1bGUgZGF0YS4gIFRoZSBzdG9yYWdlCisgICAgICogICAgICAgICAgIGJl
bG9uZ3MgdG8gdGhlIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yIG9iamVjdCwgbm90IHRoZQorICAg
ICAqICAgICAgICAgICBjYWxsZXIsIGFuZCBtdXN0IG5vdCBiZSBtb2RpZmllZCBvciBkZWxldGVk
LgorICAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICAqLworICAgIHZpcnR1YWwgY29uc3QgdWlu
dDhfdCAqZ2V0QmluYXJ5UnVsZXModWludDMyX3QgJmxlbmd0aCk7CisKKyAgICAvKioKKyAgICAg
KiAgU2V0IHRoZSBzdWJqZWN0IHRleHQgc3RyaW5nIHVwb24gd2hpY2ggdGhlIGJyZWFrIGl0ZXJh
dG9yIGlzIG9wZXJhdGluZworICAgICAqICB3aXRob3V0IGNoYW5naW5nIGFueSBvdGhlciBhc3Bl
Y3Qgb2YgdGhlIG1hdGNoaW5nIHN0YXRlLgorICAgICAqICBUaGUgbmV3IGFuZCBwcmV2aW91cyB0
ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCisgICAgICoKKyAgICAgKiAg
VGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGluIGVudmlyb25tZW50cyB3aGVyZSBJ
Q1UgaXMgb3BlcmF0aW5nIG9uCisgICAgICogIHN0cmluZ3MgdGhhdCBtYXkgbW92ZSBhcm91bmQg
aW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIG5vdGlmeWluZworICAgICAq
ICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVuIHJlbG9jYXRlZCwgYW5kIHByb3ZpZGluZyBh
IG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICAgICogIHN0cmluZyBpbiBpdHMgbmV3IHBvc2l0
aW9uLgorICAgICAqCisgICAgICogIE5vdGUgdGhhdCB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVt
ZW50YXRpb24gbmV2ZXIgY29waWVzIHRoZSB1bmRlcmx5aW5nIHRleHQKKyAgICAgKiAgb2YgYSBz
dHJpbmcgYmVpbmcgcHJvY2Vzc2VkLCBidXQgYWx3YXlzIG9wZXJhdGVzIGRpcmVjdGx5IG9uIHRo
ZSBvcmlnaW5hbCB0ZXh0CisgICAgICogIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiBSZWZyZXNoaW5n
IHNpbXBseSBkcm9wcyB0aGUgcmVmZXJlbmNlcyB0byB0aGUgb2xkIHRleHQKKyAgICAgKiAgYW5k
IHJlcGxhY2VzIHRoZW0gd2l0aCByZWZlcmVuY2VzIHRvIHRoZSBuZXcuCisgICAgICoKKyAgICAg
KiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rpb24gaXMgbm9ybWFsbHkgdXNlZCBvbmx5IGJ5IHZlcnkg
c3BlY2lhbGl6ZWQsCisgICAgICogIHN5c3RlbS1sZXZlbCBjb2RlLiAgT25lIGV4YW1wbGUgdXNl
IGNhc2UgaXMgd2l0aCBnYXJiYWdlIGNvbGxlY3Rpb24gdGhhdCBtb3ZlcworICAgICAqICB0aGUg
dGV4dCBpbiBtZW1vcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5wdXQgICAgICBUaGUgbmV3
IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisgICAgICogQHBhcmFtIHN0YXR1cyAgICAgUmVjZWl2ZXMg
ZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCisgICAgICogQHJldHVybiAgICAgICAg
ICAgKnRoaXMKKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdmly
dHVhbCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yICZyZWZyZXNoSW5wdXRUZXh0KFVUZXh0ICppbnB1
dCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworCitwcm90ZWN0ZWQ6CisgICAgLy89PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorICAgIC8vIGltcGxlbWVudGF0aW9uCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8q
KgorICAgICAqIER1bXBzIGNhY2hlcyBhbmQgcGVyZm9ybXMgb3RoZXIgYWN0aW9ucyBhc3NvY2lh
dGVkIHdpdGggYSBjb21wbGV0ZSBjaGFuZ2UKKyAgICAgKiBpbiB0ZXh0IG9yIGl0ZXJhdGlvbiBw
b3NpdGlvbi4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgcmVz
ZXQodm9pZCk7CisKKyNpZiAwCisgICAgLyoqCisgICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBj
YXRlZ29yeSBsb29rdXAgZm9yIHRoaXMgY2hhcgorICAgICAgKiBpbmRpY2F0ZXMgdGhhdCBpdCBp
cyBpbiB0aGUgc2V0IG9mIGRpY3Rpb25hcnkgbG9va3VwIGNoYXJzLgorICAgICAgKiBUaGlzIGZ1
bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZGljdGlvbmFyeSBiYXNlZCBicmVhayBpdGVy
YXRvcnMuCisgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY2F0ZWdvcnkgbG9va3VwIGZvciB0
aGlzIGNoYXIKKyAgICAgICogaW5kaWNhdGVzIHRoYXQgaXQgaXMgaW4gdGhlIHNldCBvZiBkaWN0
aW9uYXJ5IGxvb2t1cCBjaGFycy4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZp
cnR1YWwgVUJvb2wgaXNEaWN0aW9uYXJ5Q2hhcihVQ2hhcjMyKTsKKworICAgIC8qKgorICAgICAg
KiBHZXQgdGhlIHR5cGUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAgKiBAaW50ZXJuYWwK
KyAgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldEJyZWFrVHlwZSgpIGNvbnN0OworI2Vu
ZGlmCisKKyAgICAvKioKKyAgICAgICogU2V0IHRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRv
ci4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzZXRCcmVh
a1R5cGUoaW50MzJfdCB0eXBlKTsKKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAg
LyoqCisgICAgICAqIENvbW1vbiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgdXNlZCBieSBjb25z
dHJ1Y3RvcnMgYW5kIGJ1ZmZlckNsb25lLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisg
ICAgdm9pZCBpbml0KCk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworcHJp
dmF0ZToKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGJhY2tzIHRoZSBpdGVyYXRvciBi
YWNrIHVwIHRvIGEgInNhZmUgcG9zaXRpb24iIGluIHRoZSB0ZXh0LgorICAgICAqIFRoaXMgaXMg
YSBwb3NpdGlvbiB0aGF0IHdlIGtub3csIHdpdGhvdXQgYW55IGNvbnRleHQsIG11c3QgYmUgYSBi
cmVhayBwb3NpdGlvbi4KKyAgICAgKiBUaGUgdmFyaW91cyBjYWxsaW5nIG1ldGhvZHMgdGhlbiBp
dGVyYXRlIGZvcndhcmQgZnJvbSB0aGlzIHNhZmUgcG9zaXRpb24gdG8KKyAgICAgKiB0aGUgYXBw
cm9wcmlhdGUgcG9zaXRpb24gdG8gcmV0dXJuLiAgKEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUg
dGhlIGRlc2NyaXB0aW9uCisgICAgICogb2YgYnVpbGRCYWNrd2FyZHNTdGF0ZVRhYmxlKCkgaW4g
UnVsZUJhc2VkQnJlYWtJdGVyYXRvci5CdWlsZGVyLikKKyAgICAgKiBAcGFyYW0gc3RhdGV0YWJs
ZSBzdGF0ZSB0YWJsZSB1c2VkIG9mIG1vdmluZyBiYWNrd2FyZHMKKyAgICAgKiBAaW50ZXJuYWwK
KyAgICAgKi8KKyAgICBpbnQzMl90IGhhbmRsZVByZXZpb3VzKGNvbnN0IFJCQklTdGF0ZVRhYmxl
ICpzdGF0ZXRhYmxlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRoZSBhY3R1
YWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5leHQoKSBtZXRob2QuICBBbGwgaXRlcmF0aW9uCisg
ICAgICogdmVjdG9ycyB0aHJvdWdoIGhlcmUuICBUaGlzIG1ldGhvZCBpbml0aWFsaXplcyB0aGUg
c3RhdGUgbWFjaGluZSB0byBzdGF0ZSAxCisgICAgICogYW5kIGFkdmFuY2VzIHRocm91Z2ggdGhl
IHRleHQgY2hhcmFjdGVyIGJ5IGNoYXJhY3RlciB1bnRpbCB3ZSByZWFjaCB0aGUgZW5kCisgICAg
ICogb2YgdGhlIHRleHQgb3IgdGhlIHN0YXRlIG1hY2hpbmUgdHJhbnNpdGlvbnMgdG8gc3RhdGUg
MC4gIFdlIHVwZGF0ZSBvdXIgcmV0dXJuCisgICAgICogdmFsdWUgZXZlcnkgdGltZSB0aGUgc3Rh
dGUgbWFjaGluZSBwYXNzZXMgdGhyb3VnaCBhIHBvc3NpYmxlIGVuZCBzdGF0ZS4KKyAgICAgKiBA
cGFyYW0gc3RhdGV0YWJsZSBzdGF0ZSB0YWJsZSB1c2VkIG9mIG1vdmluZyBmb3J3YXJkcworICAg
ICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgaGFuZGxlTmV4dChjb25zdCBSQkJJ
U3RhdGVUYWJsZSAqc3RhdGV0YWJsZSk7CisKK3Byb3RlY3RlZDoKKworI2lmbmRlZiBVX0hJREVf
SU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICogVGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBh
Y3R1YWxseSBpbXBsZW1lbnRzIGRpY3Rpb25hcnktYmFzZWQKKyAgICAgKiBicmVha2luZy4gIENv
dmVyaW5nIGF0IGxlYXN0IHRoZSByYW5nZSBmcm9tIHN0YXJ0UG9zIHRvIGVuZFBvcywKKyAgICAg
KiBpdCBjaGVja3MgZm9yIGRpY3Rpb25hcnkgY2hhcmFjdGVycywgYW5kIGlmIGl0IGZpbmRzIHRo
ZW0gZGV0ZXJtaW5lcworICAgICAqIHRoZSBhcHByb3ByaWF0ZSBvYmplY3QgdG8gZGVhbCB3aXRo
IHRoZW0uIEl0IG1heSBjYWNoZSBmb3VuZCBicmVha3MgaW4KKyAgICAgKiBmQ2FjaGVkQnJlYWtQ
b3NpdGlvbnMgYXMgaXQgZ29lcy4gSXQgbWF5IHdlbGwgYWxzbyBsb29rIGF0IHRleHQgb3V0c2lk
ZQorICAgICAqIHRoZSByYW5nZSBzdGFydFBvcyB0byBlbmRQb3MuCisgICAgICogSWYgZ29pbmcg
Zm9yd2FyZCwgZW5kUG9zIGlzIHRoZSBub3JtYWwgVW5pY29kZSBicmVhayByZXN1bHQsIGFuZAor
ICAgICAqIGlmIGdvaW5kIGluIHJldmVyc2UsIHN0YXJ0UG9zIGlzIHRoZSBub3JtYWwgVW5pY29k
ZSBicmVhayByZXN1bHQKKyAgICAgKiBAcGFyYW0gc3RhcnRQb3MgIFRoZSBzdGFydCBwb3NpdGlv
biBvZiBhIHJhbmdlIG9mIHRleHQKKyAgICAgKiBAcGFyYW0gZW5kUG9zICAgIFRoZSBlbmQgcG9z
aXRpb24gb2YgYSByYW5nZSBvZiB0ZXh0CisgICAgICogQHBhcmFtIHJldmVyc2UgICBUaGUgY2Fs
bCBpcyBmb3IgdGhlIHJldmVyc2UgZGlyZWN0aW9uCisgICAgICogQGludGVybmFsCisgICAgICov
CisgICAgaW50MzJfdCBjaGVja0RpY3Rpb25hcnkoaW50MzJfdCBzdGFydFBvcywgaW50MzJfdCBl
bmRQb3MsIFVCb29sIHJldmVyc2UpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICov
CisKK3ByaXZhdGU6CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhl
IGFwcHJvcHJpYXRlIExhbmd1YWdlQnJlYWtFbmdpbmUgZm9yIGEKKyAgICAgKiBnaXZlbiBjaGFy
YWN0ZXIgYy4KKyAgICAgKiBAcGFyYW0gYyAgICAgICAgIEEgY2hhcmFjdGVyIGluIHRoZSBkaWN0
aW9uYXJ5IHNldAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGNvbnN0IExhbmd1YWdl
QnJlYWtFbmdpbmUgKmdldExhbmd1YWdlQnJlYWtFbmdpbmUoVUNoYXIzMiBjKTsKKworICAgIC8q
KgorICAgICAqICBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB2b2lkIG1ha2VSdWxlU3RhdHVzVmFs
aWQoKTsKKworfTsKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgIElubGluZSBG
dW5jdGlvbnMgRGVmaW5pdGlvbnMgLi4uCisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
aW5saW5lIFVCb29sIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I6Om9wZXJhdG9yIT0oY29uc3QgQnJl
YWtJdGVyYXRvciYgdGhhdCkgY29uc3QgeworICAgIHJldHVybiAhb3BlcmF0b3I9PSh0aGF0KTsK
K30KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZiAvKiAjaWYgIVVDT05GSUdfTk9fQlJFQUtf
SVRFUkFUSU9OICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9zY2hyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQwYjVlMjI1MDNjZmYyNjFkMmNkMjQwZmYxMjAwN2Y5MzdmNzgzYjIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3NjaHJpdGVyLmgKQEAgLTAsMCArMSwxODcg
QEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgt
MjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFu
ZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqCisqIEZpbGUgc2Nocml0ZXIuaAorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyog
ICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgMDUvMDUvOTkgICAgIHN0
ZXBoZW4gICAgIENsZWFuZWQgdXAuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5k
ZWYgU0NIUklURVJfSAorI2RlZmluZSBTQ0hSSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0
eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3VjaHJpdGVyLmgiCisKKy8qKgorICogXGZpbGUgCisgKiBcYnJpZWYgQysrIEFQSTogU3RyaW5n
IENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorLyoqCisgKiBB
IGNvbmNyZXRlIHN1YmNsYXNzIG9mIENoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3Zl
ciB0aGUKKyAqIGNoYXJhY3RlcnMgKGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMpIGluIGEgVW5p
Y29kZVN0cmluZy4KKyAqIEl0J3MgcG9zc2libGUgbm90IG9ubHkgdG8gY3JlYXRlIGFuCisgKiBp
dGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgYW4gZW50aXJlIFVuaWNvZGVTdHJpbmcsIGJ1dCBh
bHNvIHRvCisgKiBjcmVhdGUgb25lIHRoYXQgaXRlcmF0ZXMgb3ZlciBvbmx5IGEgc3VicmFuZ2Ug
b2YgYSBVbmljb2RlU3RyaW5nCisgKiAoaXRlcmF0b3JzIG92ZXIgZGlmZmVyZW50IHN1YnJhbmdl
cyBvZiB0aGUgc2FtZSBVbmljb2RlU3RyaW5nIGRvbid0CisgKiBjb21wYXJlIGVxdWFsKS4KKyAq
IEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIFN0cmluZ0NoYXJh
Y3Rlckl0ZXJhdG9yIDogcHVibGljIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGljOgor
ICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVm
ZXJyZWQgdG8gYnkgInRleHRTdHIiLgorICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaXMg
Y29waWVkLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIHRoZSB3aG9sZSBzdHJpbmcsIGFu
ZCB0aGUgc3RhcnRpbmcgcG9zaXRpb24gaXMgMC4KKyAgICogQHBhcmFtIHRleHRTdHIgVGhlIHVu
aWNvZGUgc3RyaW5nIHVzZWQgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yCisgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmlu
ZyYgdGV4dFN0cik7CisKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBV
bmljb2RlU3RyaW5nIHJlZmVycmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIGl0ZXJhdGlv
biByYW5nZSBpcyB0aGUgd2hvbGUgc3RyaW5nLCBhbmQgdGhlIHN0YXJ0aW5nCisgICAqIHBvc2l0
aW9uIGlzIHNwZWNpZmllZCBieSAidGV4dFBvcyIuICBJZiAidGV4dFBvcyIgaXMgb3V0c2lkZSB0
aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2YgdGhpcyBvYmpl
Y3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFN0ciBUaGUgdW5pY29kZSBzdHJpbmcg
dXNlZCB0byBjcmVhdGUgYW4gaXRlcmF0b3IKKyAgICogQHBhcmFtIHRleHRQb3MgVGhlIHN0YXJ0
aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVbmljb2RlU3RyaW5nJiAgICB0ZXh0
U3RyLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0UG9zKTsKKworICAv
KioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJy
ZWQgdG8gYnkgInRleHRTdHIiLgorICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaXMgY29w
aWVkLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGJlZ2lucyB3aXRoIHRoZSBjb2RlIHVuaXQg
c3BlY2lmaWVkIGJ5CisgICAqICJ0ZXh0QmVnaW4iIGFuZCBlbmRzIHdpdGggdGhlIGNvZGUgdW5p
dCBCRUZPUkUgdGhlIGNvZGUgdW5pdCBzcGVjZmllZAorICAgKiBieSAidGV4dEVuZCIuICBUaGUg
c3RhcnRpbmcgcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJ0ZXh0UG9zIi4gIElmCisgICAqICJ0
ZXh0QmVnaW4iIGFuZCAidGV4dEVuZCIgZG9uJ3QgZm9ybSBhIHZhbGlkIHJhbmdlIG9uICJ0ZXh0
IiAoaS5lLiwKKyAgICogdGV4dEJlZ2luID49IHRleHRFbmQgb3IgZWl0aGVyIGlzIG5lZ2F0aXZl
IG9yIGdyZWF0ZXIgdGhhbiB0ZXh0LnNpemUoKSksCisgICAqIG9yICJ0ZXh0UG9zIiBpcyBvdXRz
aWRlIHRoZSByYW5nZSBkZWZpbmVkIGJ5ICJ0ZXh0QmVnaW4iIGFuZCAidGV4dEVuZCIsCisgICAq
IHRoZSBiZWhhdmlvciBvZiB0aGlzIGl0ZXJhdG9yIGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFt
IHRleHRTdHIgICAgVGhlIHVuaWNvZGUgc3RyaW5nIHVzZWQgdG8gY3JlYXRlIHRoZSBTdHJpbmdD
aGFyYWN0ZXJJdGVyYXRvcgorICAgKiBAcGFyYW0gdGV4dEJlZ2luICBUaGUgYmVnaW4gcG9zaXRp
b24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0gdGV4dEVuZCAgICBUaGUgZW5k
IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRQb3MgICAg
VGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVbmljb2RlU3RyaW5n
JiAgICB0ZXh0U3RyLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0QmVn
aW4sCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAgICAgIHRleHRFbmQsCisgICAgICAg
ICAgICAgIGludDMyX3QgICAgICAgICAgICAgIHRleHRQb3MpOworCisgIC8qKgorICAgKiBDb3B5
IGNvbnN0cnVjdG9yLiAgVGhlIG5ldyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIHRoZSBzYW1lIHJh
bmdlCisgICAqIG9mIHRoZSBzYW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCBpdHMgaW5pdGlhbCBw
b3NpdGlvbiBpcyB0aGUKKyAgICogc2FtZSBhcyAidGhhdCIncyBjdXJyZW50IHBvc2l0aW9uLgor
ICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaW4gInRoYXQiIGlzIGNvcGllZC4KKyAgICog
QHBhcmFtIHRoYXQgVGhlIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvcGllZAorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0
IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJiAgdGhhdCk7CisKKyAgLyoqCisgICAqIERlc3RydWN0
b3IuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB+U3RyaW5nQ2hhcmFj
dGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogQXNzaWdubWVudCBvcGVyYXRvci4gICp0aGlz
IGlzIGFsdGVyZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBzYW1lCisgICAqIHJhbmdlIG9mIHRoZSBz
YW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCByZWZlcnMgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFj
dGVyIHdpdGhpbiB0aGF0IHN0cmluZyBhcyAidGhhdCIgZG9lcy4KKyAgICogQHBhcmFtIHRoYXQg
VGhlIG9iamVjdCB0byBiZSBjb3BpZWQuCisgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQg
b2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0
ZXJhdG9yJgorICBvcGVyYXRvcj0oY29uc3QgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImICAgIHRo
YXQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRl
IG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9p
bnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgKiBAcmV0
dXJuIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2Yg
dGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFj
dGVyLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAg
ICAgb3BlcmF0b3I9PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0
OworCisgIC8qKgorICAgKiBSZXR1cm5zIGEgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHJl
ZmVycmluZyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgcmFuZ2Ugb2Yg
dGhlIHNhbWUgc3RyaW5nIGFzIHRoaXMgb25lLiAgVGhlCisgICAqIGNhbGxlciBtdXN0IGRlbGV0
ZSB0aGUgbmV3IGl0ZXJhdG9yLgorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjbG9uZWQgb2JqZWN0
LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0
b3IqIGNsb25lKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0
byBpdGVyYXRlIG92ZXIgdGhlIHByb3ZpZGVkIHN0cmluZy4KKyAgICogQHBhcmFtIG5ld1RleHQg
VGhlIHN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdm9pZCBzZXRUZXh0KGNvbnN0IFVuaWNvZGVTdHJpbmcmIG5ld1RleHQpOworCisgIC8q
KgorICAgKiBDb3BpZXMgdGhlIFVuaWNvZGVTdHJpbmcgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhl
IFVuaWNvZGVTdHJpbmcKKyAgICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICBFdmVuIGlmIHRo
aXMgaXRlcmF0b3IgaXRlcmF0ZXMgYWNyb3NzCisgICAqIG9ubHkgYSBwYXJ0IG9mIHRoaXMgc3Ry
aW5nLCB0aGUgd2hvbGUgc3RyaW5nIGlzIGNvcGllZC4KKyAgICogQHBhcmFtIHJlc3VsdCBSZWNl
aXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uLgorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0
cmluZyYgcmVzdWx0KTsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMg
b2JqZWN0IChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0
aGlzIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDbGFz
c0lEICAgICAgICAgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAq
IFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzIChub3QgcmVhbGx5IHB1YmxpYykKKyAg
ICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgc3RhdGljIFVDbGFzc0lEICAgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQo
dm9pZCk7CisKK3Byb3RlY3RlZDoKKyAgLyoqCisgICAqIERlZmF1bHQgY29uc3RydWN0b3IsIGl0
ZXJhdGlvbiBvdmVyIGVtcHR5IHN0cmluZy4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVy
YXRvciB0byBpdGVyYXRlIG92ZXIgdGhlIHByb3ZpZGVkIHN0cmluZy4KKyAgICogQHBhcmFtIG5l
d1RleHQgVGhlIHN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBwYXJhbSBuZXdUZXh0
TGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFN0cmluZworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVQ2hhciogbmV3VGV4dCwgaW50MzJfdCBuZXdUZXh0
TGVuZ3RoKTsKKworICAvKioKKyAgICogQ29weSBvZiB0aGUgaXRlcmF0ZWQgc3RyaW5nIG9iamVj
dC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVbmljb2RlU3RyaW5nICAgICAgICAg
ICAgdGV4dDsKKworfTsKKworVV9OQU1FU1BBQ0VfRU5ECisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNhc2VtYXAuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUv
dWNhc2VtYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzdlMTY1ODg2OTdmMWE5MzAxOTFlZTNkZjgxNmM2M2I3
YmQzOGMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1h
cC5oCkBAIC0wLDAgKzEsNDIzIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAg
IENvcHlyaWdodCAoQykgMjAwNS0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdWNhc2VtYXAuaAorKiAgIGVu
Y29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5k
ZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDIwMDVtYXkwNgorKiAgIGNyZWF0ZWQgYnk6
IE1hcmt1cyBXLiBTY2hlcmVyCisqCisqICAgQ2FzZSBtYXBwaW5nIHNlcnZpY2Ugb2JqZWN0IGFu
ZCBmdW5jdGlvbnMgdXNpbmcgaXQuCisqLworCisjaWZuZGVmIF9fVUNBU0VNQVBfSF9fCisjZGVm
aW5lIF9fVUNBU0VNQVBfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1
ZGUgInVuaWNvZGUvdXN0cmluZy5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9jYWxwb2ludGVyLmgi
CisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogVW5pY29kZSBjYXNlIG1hcHBpbmcg
ZnVuY3Rpb25zIHVzaW5nIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKgorICogVGhlIHNl
cnZpY2Ugb2JqZWN0IHRha2VzIGNhcmUgb2YgbWVtb3J5IGFsbG9jYXRpb25zLCBkYXRhIGxvYWRp
bmcsIGFuZCBzZXR1cAorICogZm9yIHRoZSBhdHRyaWJ1dGVzLCBhcyB1c3VhbC4KKyAqCisgKiBD
dXJyZW50bHksIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGhlcmUgZG9lcyBub3Qgb3Zlcmxh
cCB3aXRoIHVjaGFyLmgKKyAqIGFuZCB1c3RyaW5nLmgsIGV4Y2VwdCBmb3IgdWNhc2VtYXBfdG9U
aXRsZSgpLgorICoKKyAqIHVjYXNlbWFwX3V0ZjhYWVooKSBmdW5jdGlvbnMgb3BlcmF0ZSBkaXJl
Y3RseSBvbiBVVEYtOCBzdHJpbmdzLgorICovCisKKy8qKgorICogVUNhc2VNYXAgaXMgYW4gb3Bh
cXVlIHNlcnZpY2Ugb2JqZWN0IGZvciBuZXdlciBJQ1UgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucy4K
KyAqIE9sZGVyIGZ1bmN0aW9ucyBkaWQgbm90IHVzZSBhIHNlcnZpY2Ugb2JqZWN0LgorICogQHN0
YWJsZSBJQ1UgMy40CisgKi8KK3N0cnVjdCBVQ2FzZU1hcDsKK3R5cGVkZWYgc3RydWN0IFVDYXNl
TWFwIFVDYXNlTWFwOyAvKio8IEMgdHlwZWRlZiBmb3Igc3RydWN0IFVDYXNlTWFwLiBAc3RhYmxl
IElDVSAzLjQgKi8KKworLyoqCisgKiBPcGVuIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QgZm9y
IGEgbG9jYWxlIGFuZCBhIHNldCBvZiBvcHRpb25zLgorICogVGhlIGxvY2FsZSBJRCBhbmQgb3B0
aW9ucyBhcmUgcHJlcHJvY2Vzc2VkIHNvIHRoYXQgZnVuY3Rpb25zIHVzaW5nIHRoZQorICogc2Vy
dmljZSBvYmplY3QgbmVlZCBub3QgcHJvY2VzcyB0aGVtIGluIGVhY2ggY2FsbC4KKyAqCisgKiBA
cGFyYW0gbG9jYWxlIElDVSBsb2NhbGUgSUQsIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudAor
ICogICAgICAgICAgICAgICB1cHBlci0vbG93ZXItL3RpdGxlLWNhc2luZyBhY2NvcmRpbmcgdG8g
dGhlIFVuaWNvZGUgc3RhbmRhcmQuCisgKiAgICAgICAgICAgICAgIFVzdWFsIHNlbWFudGljczog
IiI9cm9vdCwgTlVMTD1kZWZhdWx0IGxvY2FsZSwgZXRjLgorICogQHBhcmFtIG9wdGlvbnMgT3B0
aW9ucyBiaXQgc2V0LCB1c2VkIGZvciBjYXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29u
cy4KKyAqICAgICAgICAgICAgICAgIFNhbWUgZmxhZ3MgYXMgZm9yIHVfZm9sZENhc2UoKSwgdV9z
dHJGb2xkQ2FzZSgpLAorICogICAgICAgICAgICAgICAgdV9zdHJDYXNlQ29tcGFyZSgpLCBldGMu
CisgKiAgICAgICAgICAgICAgICBVc2UgMCBvciBVX0ZPTERfQ0FTRV9ERUZBVUxUIGZvciBkZWZh
dWx0IGJlaGF2aW9yLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50
ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11
c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBA
cmV0dXJuIFBvaW50ZXIgdG8gYSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdCwgaWYgc3VjY2Vzc2Z1
bC4KKyAqCisgKiBAc2VlIFVfRk9MRF9DQVNFX0RFRkFVTFQKKyAqIEBzZWUgVV9GT0xEX0NBU0Vf
RVhDTFVERV9TUEVDSUFMX0kKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBA
c2VlIFVfVElUTEVDQVNFX05PX0JSRUFLX0FESlVTVE1FTlQKKyAqIEBzdGFibGUgSUNVIDMuNAor
ICovCitVX1NUQUJMRSBVQ2FzZU1hcCAqIFVfRVhQT1JUMgordWNhc2VtYXBfb3Blbihjb25zdCBj
aGFyICpsb2NhbGUsIHVpbnQzMl90IG9wdGlvbnMsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwor
CisvKioKKyAqIENsb3NlIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gY3Nt
IE9iamVjdCB0byBiZSBjbG9zZWQuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUg
dm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX2Nsb3NlKFVDYXNlTWFwICpjc20pOworCisjaWYgVV9T
SE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBcY2xhc3Mg
TG9jYWxVQ2FzZU1hcFBvaW50ZXIKKyAqICJTbWFydCBwb2ludGVyIiBjbGFzcywgY2xvc2VzIGEg
VUNhc2VNYXAgdmlhIHVjYXNlbWFwX2Nsb3NlKCkuCisgKiBGb3IgbW9zdCBtZXRob2RzIHNlZSB0
aGUgTG9jYWxQb2ludGVyQmFzZSBiYXNlIGNsYXNzLgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVy
QmFzZQorICogQHNlZSBMb2NhbFBvaW50ZXIKKyAqIEBzdGFibGUgSUNVIDQuNAorICovCitVX0RF
RklORV9MT0NBTF9PUEVOX1BPSU5URVIoTG9jYWxVQ2FzZU1hcFBvaW50ZXIsIFVDYXNlTWFwLCB1
Y2FzZW1hcF9jbG9zZSk7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYKKworLyoqCisgKiBH
ZXQgdGhlIGxvY2FsZSBJRCB0aGF0IGlzIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudCBjYXNl
IG1hcHBpbmdzLgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBy
ZXR1cm4gbG9jYWxlIElECisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgY29uc3Qg
Y2hhciAqIFVfRVhQT1JUMgordWNhc2VtYXBfZ2V0TG9jYWxlKGNvbnN0IFVDYXNlTWFwICpjc20p
OworCisvKioKKyAqIEdldCB0aGUgb3B0aW9ucyBiaXQgc2V0IHRoYXQgaXMgdXNlZCBmb3IgY2Fz
ZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVybiBvcHRpb25zIGJpdCBzZXQKKyAqIEBzdGFibGUg
SUNVIDMuNAorICovCitVX1NUQUJMRSB1aW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldE9w
dGlvbnMoY29uc3QgVUNhc2VNYXAgKmNzbSk7CisKKy8qKgorICogU2V0IHRoZSBsb2NhbGUgSUQg
dGhhdCBpcyB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQgY2FzZSBtYXBwaW5ncy4KKyAqCisg
KiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGxvY2FsZSBM
b2NhbGUgSUQsIHNlZSB1Y2FzZW1hcF9vcGVuKCkuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0
IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAg
ICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVu
Y3Rpb24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX29wZW4KKyAqIEBzdGFibGUgSUNVIDMu
NAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0TG9jYWxlKFVDYXNl
TWFwICpjc20sIGNvbnN0IGNoYXIgKmxvY2FsZSwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisK
Ky8qKgorICogU2V0IHRoZSBvcHRpb25zIGJpdCBzZXQgdGhhdCBpcyB1c2VkIGZvciBjYXNlIGZv
bGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29ucy4KKyAqCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBiaXQgc2V0LCBzZWUg
dWNhc2VtYXBfb3BlbigpLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBv
aW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNo
IG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisg
KgorICogQHNlZSB1Y2FzZW1hcF9vcGVuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFC
TEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldE9wdGlvbnMoVUNhc2VNYXAgKmNzbSwgdWlu
dDMyX3Qgb3B0aW9ucywgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogRG8gbm90
IGxvd2VyY2FzZSBub24taW5pdGlhbCBwYXJ0cyBvZiB3b3JkcyB3aGVuIHRpdGxlY2FzaW5nLgor
ICogT3B0aW9uIGJpdCBmb3IgdGl0bGVjYXNpbmcgQVBJcyB0aGF0IHRha2UgYW4gb3B0aW9ucyBi
aXQgc2V0LgorICoKKyAqIEJ5IGRlZmF1bHQsIHRpdGxlY2FzaW5nIHdpbGwgdGl0bGVjYXNlIHRo
ZSBmaXJzdCBjYXNlZCBjaGFyYWN0ZXIKKyAqIG9mIGEgd29yZCBhbmQgbG93ZXJjYXNlIGFsbCBv
dGhlciBjaGFyYWN0ZXJzLgorICogV2l0aCB0aGlzIG9wdGlvbiwgdGhlIG90aGVyIGNoYXJhY3Rl
cnMgd2lsbCBub3QgYmUgbW9kaWZpZWQuCisgKgorICogQHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25z
CisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUK
KyAqIEBzZWUgVW5pY29kZVN0cmluZzo6dG9UaXRsZQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8K
KyNkZWZpbmUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFIDB4MTAwCisKKy8qKgorICogRG8gbm90
IGFkanVzdCB0aGUgdGl0bGVjYXNpbmcgaW5kZXhlcyBmcm9tIEJyZWFrSXRlcmF0b3I6Om5leHQo
KSBpbmRleGVzOworICogdGl0bGVjYXNlIGV4YWN0bHkgdGhlIGNoYXJhY3RlcnMgYXQgYnJlYWtz
IGZyb20gdGhlIGl0ZXJhdG9yLgorICogT3B0aW9uIGJpdCBmb3IgdGl0bGVjYXNpbmcgQVBJcyB0
aGF0IHRha2UgYW4gb3B0aW9ucyBiaXQgc2V0LgorICoKKyAqIEJ5IGRlZmF1bHQsIHRpdGxlY2Fz
aW5nIHdpbGwgdGFrZSBlYWNoIGJyZWFrIGl0ZXJhdG9yIGluZGV4LAorICogYWRqdXN0IGl0IGJ5
IGxvb2tpbmcgZm9yIHRoZSBuZXh0IGNhc2VkIGNoYXJhY3RlciwgYW5kIHRpdGxlY2FzZSB0aGF0
IG9uZS4KKyAqIE90aGVyIGNoYXJhY3RlcnMgYXJlIGxvd2VyY2FzZWQuCisgKgorICogVGhpcyBm
b2xsb3dzIFVuaWNvZGUgNCAmIDUgc2VjdGlvbiAzLjEzIERlZmF1bHQgQ2FzZSBPcGVyYXRpb25z
OgorICoKKyAqIFIzICB0b1RpdGxlY2FzZShYKTogRmluZCB0aGUgd29yZCBib3VuZGFyaWVzIGJh
c2VkIG9uIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXgKKyAqICMyOSwgIlRleHQgQm91bmRhcmllcy4i
IEJldHdlZW4gZWFjaCBwYWlyIG9mIHdvcmQgYm91bmRhcmllcywgZmluZCB0aGUgZmlyc3QKKyAq
IGNhc2VkIGNoYXJhY3RlciBGLiBJZiBGIGV4aXN0cywgbWFwIEYgdG8gZGVmYXVsdF90aXRsZShG
KTsgdGhlbiBtYXAgZWFjaAorICogc3Vic2VxdWVudCBjaGFyYWN0ZXIgQyB0byBkZWZhdWx0X2xv
d2VyKEMpLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNlZSB1Y2FzZW1h
cF90b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc2VlIFVuaWNvZGVT
dHJpbmc6OnRvVGl0bGUKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBAc3Rh
YmxlIElDVSAzLjgKKyAqLworI2RlZmluZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5U
IDB4MjAwCisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworLyoqCisgKiBHZXQg
dGhlIGJyZWFrIGl0ZXJhdG9yIHRoYXQgaXMgdXNlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBEbyBu
b3QgbW9kaWZ5IHRoZSByZXR1cm5lZCBicmVhayBpdGVyYXRvci4KKyAqIEBwYXJhbSBjc20gVUNh
c2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIHRpdGxlY2FzaW5nIGJyZWFrIGl0ZXJh
dG9yCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgY29uc3QgVUJyZWFrSXRlcmF0
b3IgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldEJyZWFrSXRlcmF0b3IoY29uc3QgVUNhc2VNYXAg
KmNzbSk7CisKKy8qKgorICogU2V0IHRoZSBicmVhayBpdGVyYXRvciB0aGF0IGlzIHVzZWQgZm9y
IHRpdGxlY2FzaW5nLgorICogVGhlIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0IHJlbGVhc2VzIGEg
cHJldmlvdXNseSBzZXQgYnJlYWsgaXRlcmF0b3IKKyAqIGFuZCAiYWRvcHRzIiB0aGlzIG5ldyBv
bmUsIHRha2luZyBvd25lcnNoaXAgb2YgaXQuCisgKiBJdCB3aWxsIGJlIHJlbGVhc2VkIGluIGEg
c3Vic2VxdWVudCBjYWxsIHRvIHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoKQorICogb3IgdWNh
c2VtYXBfY2xvc2UoKS4KKyAqCisgKiBCcmVhayBpdGVyYXRvciBvcGVyYXRpb25zIGFyZSBub3Qg
dGhyZWFkLXNhZmUuIFRoZXJlZm9yZSwgdGl0bGVjYXNpbmcKKyAqIGZ1bmN0aW9ucyB1c2Ugbm9u
LWNvbnN0IFVDYXNlTWFwIG9iamVjdHMuIEl0IGlzIG5vdCBwb3NzaWJsZSB0byB0aXRsZWNhc2UK
KyAqIHN0cmluZ3MgY29uY3VycmVudGx5IHVzaW5nIHRoZSBzYW1lIFVDYXNlTWFwLgorICoKKyAq
IEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gaXRlclRvQWRv
cHQgQnJlYWsgaXRlcmF0b3IgdG8gYmUgYWRvcHRlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBAcGFy
YW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZh
bHVlLAorICogICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWls
dXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0
bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICov
CitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcihVQ2Fz
ZU1hcCAqY3NtLCBVQnJlYWtJdGVyYXRvciAqaXRlclRvQWRvcHQsIFVFcnJvckNvZGUgKnBFcnJv
ckNvZGUpOworCisvKioKKyAqIFRpdGxlY2FzZSBhIFVURi0xNiBzdHJpbmcuIFRoaXMgZnVuY3Rp
b24gaXMgYWxtb3N0IGEgZHVwbGljYXRlIG9mIHVfc3RyVG9UaXRsZSgpLAorICogZXhjZXB0IHRo
YXQgaXQgdGFrZXMgdWNhc2VtYXBfc2V0T3B0aW9ucygpIGludG8gYWNjb3VudCBhbmQgaGFzIHBl
cmZvcm1hbmNlCisgKiBhZHZhbnRhZ2VzIGZyb20gYmVpbmcgYWJsZSB0byB1c2UgYSBVQ2FzZU1h
cCBvYmplY3QgZm9yIG11bHRpcGxlIGNhc2UgbWFwcGluZworICogb3BlcmF0aW9ucywgc2F2aW5n
IHNldHVwIHRpbWUuCisgKgorICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRl
eHQtc2Vuc2l0aXZlLgorICogVGl0bGVjYXNpbmcgdXNlcyBhIGJyZWFrIGl0ZXJhdG9yIHRvIGZp
bmQgdGhlIGZpcnN0IGNoYXJhY3RlcnMgb2Ygd29yZHMKKyAqIHRoYXQgYXJlIHRvIGJlIHRpdGxl
Y2FzZWQuIEl0IHRpdGxlY2FzZXMgdGhvc2UgY2hhcmFjdGVycyBhbmQgbG93ZXJjYXNlcworICog
YWxsIG90aGVycy4gKFRoaXMgY2FuIGJlIG1vZGlmaWVkIHdpdGggdWNhc2VtYXBfc2V0T3B0aW9u
cygpLikKKyAqCisgKiBOb3RlOiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgbm9uLWNvbnN0IFVDYXNl
TWFwIHBvaW50ZXIgYmVjYXVzZSBpdCB3aWxsCisgKiBvcGVuIGEgZGVmYXVsdCBicmVhayBpdGVy
YXRvciBpZiBubyBicmVhayBpdGVyYXRvciB3YXMgc2V0IHlldCwKKyAqIGFuZCBlZmZlY3RpdmVs
eSBjYWxsIHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoKTsKKyAqIGFsc28gYmVjYXVzZSB0aGUg
YnJlYWsgaXRlcmF0b3IgaXMgc3RhdGVmdWwgYW5kIHdpbGwgYmUgbW9kaWZpZWQgZHVyaW5nCisg
KiB0aGUgaXRlcmF0aW9uLgorICoKKyAqIFRoZSB0aXRsZWNhc2UgYnJlYWsgaXRlcmF0b3IgY2Fu
IGJlIHByb3ZpZGVkIHRvIGN1c3RvbWl6ZSBmb3IgYXJiaXRyYXJ5CisgKiBzdHlsZXMsIHVzaW5n
IHJ1bGVzIGFuZCBkaWN0aW9uYXJpZXMgYmV5b25kIHRoZSBzdGFuZGFyZCBpdGVyYXRvcnMuCisg
KiBUaGUgc3RhbmRhcmQgdGl0bGVjYXNlIGl0ZXJhdG9yIGZvciB0aGUgcm9vdCBsb2NhbGUgaW1w
bGVtZW50cyB0aGUKKyAqIGFsZ29yaXRobSBvZiBVbmljb2RlIFRSIDIxLgorICoKKyAqIFRoaXMg
ZnVuY3Rpb24gdXNlcyBvbmx5IHRoZSBzZXRVVGV4dCgpLCBmaXJzdCgpLCBuZXh0KCkgYW5kIGNs
b3NlKCkgbWV0aG9kcyBvZiB0aGUKKyAqIHByb3ZpZGVkIGJyZWFrIGl0ZXJhdG9yLgorICoKKyAq
IFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgor
ICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qg
b3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0
LiBUaGlzIHBvaW50ZXIgaXMgbm9uLWNvbnN0IQorICogICAgICAgICAgICAgICAgICBTZWUgdGhl
IG5vdGUgYWJvdmUgZm9yIGRldGFpbHMuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZv
ciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlm
CisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAg
ICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVy
ZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVy
IG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1h
eSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9m
IHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0
aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmlu
Zy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5n
LiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJy
b3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisg
KiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZv
cmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3Vs
dCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93
LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RD
YXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9UaXRsZQorICogQHN0YWJsZSBJQ1UgMy44Cisg
Ki8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF90b1RpdGxlKFVDYXNlTWFw
ICpjc20sCisgICAgICAgICAgICAgICAgIFVDaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0
eSwKKyAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgs
CisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYKKwor
LyoqCisgKiBMb3dlcmNhc2UgdGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcuCisgKiBD
YXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaGUg
cmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRo
ZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJs
YXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAq
IEBwYXJhbSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVz
dWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1
ZmZlciBpcyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBp
cyB1bmRlZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBU
aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVu
CisgKiAgICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3
aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAg
ICAgICB3aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFt
IHNyYyAgICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUg
bGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5V
TC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50
ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVz
dCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEBy
ZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9y
IGluIGNhc2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2Ug
aXQgd2lsbCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJU
b0xvd2VyCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9S
VDIKK3VjYXNlbWFwX3V0ZjhUb0xvd2VyKGNvbnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAg
ICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBVcHBlcmNhc2Ug
dGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRl
cGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25n
ZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFu
ZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFt
IGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAg
QSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRl
cm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91
Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2Fz
ZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVm
ZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAg
ICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRo
ZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRp
bmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3Jp
Z2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmln
aW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICog
QHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29k
ZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBm
YWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBv
ZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZm
ZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVy
IHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1VwcGVyCisgKiBAc3RhYmxl
IElDVSAzLjQKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhU
b1VwcGVyKGNvbnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgICAgICBjaGFyICpk
ZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlICpwRXJyb3JDb2RlKTsKKworI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCisv
KioKKyAqIFRpdGxlY2FzZSBhIFVURi04IHN0cmluZy4KKyAqIENhc2luZyBpcyBsb2NhbGUtZGVw
ZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRpdGxlY2FzaW5nIHVzZXMgYSBicmVh
ayBpdGVyYXRvciB0byBmaW5kIHRoZSBmaXJzdCBjaGFyYWN0ZXJzIG9mIHdvcmRzCisgKiB0aGF0
IGFyZSB0byBiZSB0aXRsZWNhc2VkLiBJdCB0aXRsZWNhc2VzIHRob3NlIGNoYXJhY3RlcnMgYW5k
IGxvd2VyY2FzZXMKKyAqIGFsbCBvdGhlcnMuIChUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHVj
YXNlbWFwX3NldE9wdGlvbnMoKS4pCisgKgorICogTm90ZTogVGhpcyBmdW5jdGlvbiB0YWtlcyBh
IG5vbi1jb25zdCBVQ2FzZU1hcCBwb2ludGVyIGJlY2F1c2UgaXQgd2lsbAorICogb3BlbiBhIGRl
ZmF1bHQgYnJlYWsgaXRlcmF0b3IgaWYgbm8gYnJlYWsgaXRlcmF0b3Igd2FzIHNldCB5ZXQsCisg
KiBhbmQgZWZmZWN0aXZlbHkgY2FsbCB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCk7CisgKiBh
bHNvIGJlY2F1c2UgdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIHN0YXRlZnVsIGFuZCB3aWxsIGJlIG1v
ZGlmaWVkIGR1cmluZworICogdGhlIGl0ZXJhdGlvbi4KKyAqCisgKiBUaGUgdGl0bGVjYXNlIGJy
ZWFrIGl0ZXJhdG9yIGNhbiBiZSBwcm92aWRlZCB0byBjdXN0b21pemUgZm9yIGFyYml0cmFyeQor
ICogc3R5bGVzLCB1c2luZyBydWxlcyBhbmQgZGljdGlvbmFyaWVzIGJleW9uZCB0aGUgc3RhbmRh
cmQgaXRlcmF0b3JzLgorICogVGhlIHN0YW5kYXJkIHRpdGxlY2FzZSBpdGVyYXRvciBmb3IgdGhl
IHJvb3QgbG9jYWxlIGltcGxlbWVudHMgdGhlCisgKiBhbGdvcml0aG0gb2YgVW5pY29kZSBUUiAy
MS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHVzZXMgb25seSB0aGUgc2V0VVRleHQoKSwgZmlyc3Qo
KSwgbmV4dCgpIGFuZCBjbG9zZSgpIG1ldGhvZHMgb2YgdGhlCisgKiBwcm92aWRlZCBicmVhayBp
dGVyYXRvci4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFu
IHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24g
YnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1h
cCBzZXJ2aWNlIG9iamVjdC4gVGhpcyBwb2ludGVyIGlzIG5vbi1jb25zdCEKKyAqICAgICAgICAg
ICAgICAgICAgU2VlIHRoZSBub3RlIGFib3ZlIGZvciBkZXRhaWxzLgorICogQHBhcmFtIGRlc3Qg
ICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBO
VUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdl
IGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBp
biBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRo
ZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAg
ICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1
cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQg
d3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRo
ZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhl
IG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQu
CisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJv
ciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0
ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVu
Z3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBh
IGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdy
ZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0clRvVGl0bGUKKyAqIEBz
ZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0JSRUFL
X0FESlVTVE1FTlQKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSBpbnQzMl90IFVf
RVhQT1JUMgordWNhc2VtYXBfdXRmOFRvVGl0bGUoVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAg
ICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAg
ICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYKKworLyoqCisgKiBDYXNl
LWZvbGRzIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICoKKyAqIENhc2UtZm9s
ZGluZyBpcyBsb2NhbGUtaW5kZXBlbmRlbnQgYW5kIG5vdCBjb250ZXh0LXNlbnNpdGl2ZSwKKyAq
IGJ1dCB0aGVyZSBpcyBhbiBvcHRpb24gZm9yIHdoZXRoZXIgdG8gaW5jbHVkZSBvciBleGNsdWRl
IG1hcHBpbmdzIGZvciBkb3R0ZWQgSQorICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQg
d2l0aCAnVCcgaW4gQ2FzZUZvbGRpbmcudHh0LgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxv
bmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcg
YW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFy
YW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGRlc3QgICAg
ICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwt
dGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVu
b3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBj
YXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBi
dWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAg
ICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4g
dGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3Jp
dGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBv
cmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9y
aWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisg
KiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBj
b2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBh
IGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3Ro
IG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1
ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0
ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0ckZvbGRDYXNlCisgKiBAc2Vl
IHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgVV9GT0xEX0NBU0VfREVGQVVMVAorICogQHNl
ZSBVX0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8K
K1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4Rm9sZENhc2UoY29uc3Qg
VUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90
IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGlu
dDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJv
ckNvZGUpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNo
cml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0ZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
ZDVhOTkwZjdiN2VkM2Q1YmFjZjJkYTg0NzFlZjhmZjk0MjJmOTljCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2hyaXRlci5oCkBAIC0wLDAgKzEsMzgxIEBACisv
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIFVDSFJJVEVSX0gK
KyNkZWZpbmUgVUNIUklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNs
dWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisKKy8qKgorICogXGZpbGUgCisgKiBcYnJpZWYgQysr
IEFQSTogVUNoYXIgQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lO
CisKKy8qKgorICogQSBjb25jcmV0ZSBzdWJjbGFzcyBvZiBDaGFyYWN0ZXJJdGVyYXRvciB0aGF0
IGl0ZXJhdGVzIG92ZXIgdGhlCisgKiBjaGFyYWN0ZXJzIChjb2RlIHVuaXRzIG9yIGNvZGUgcG9p
bnRzKSBpbiBhIFVDaGFyIGFycmF5LgorICogSXQncyBwb3NzaWJsZSBub3Qgb25seSB0byBjcmVh
dGUgYW4KKyAqIGl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciBhbiBlbnRpcmUgVUNoYXIgYXJy
YXksIGJ1dCBhbHNvIHRvCisgKiBjcmVhdGUgb25lIHRoYXQgaXRlcmF0ZXMgb3ZlciBvbmx5IGEg
c3VicmFuZ2Ugb2YgYSBVQ2hhciBhcnJheQorICogKGl0ZXJhdG9ycyBvdmVyIGRpZmZlcmVudCBz
dWJyYW5nZXMgb2YgdGhlIHNhbWUgVUNoYXIgYXJyYXkgZG9uJ3QKKyAqIGNvbXBhcmUgZXF1YWwp
LgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQHNlZSBGb3J3YXJkQ2hhcmFjdGVySXRl
cmF0b3IKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgVUNoYXJD
aGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBDaGFyYWN0ZXJJdGVyYXRvciB7CitwdWJsaWM6Cisg
IC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJy
ZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNv
ZGU+bGVuZ3RoLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlzIG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0
ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90IGRlbGV0ZSBpdCkuCisgICAqIEBwYXJh
bSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBwYXJh
bSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIgYXJyYXkKKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyKiB0ZXh0UHRy
LCBpbnQzMl90IGxlbmd0aCk7CisKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVy
IHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVy
YXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5sZW5ndGgtMTwvY29kZT4uCisgICAqIHRleHQgaXMg
b25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisgICAqIGRlc3RydWN0b3Igd2lsbCBub3Qg
ZGVsZXRlIGl0KS4KKyAgICogVGhlIHN0YXJ0aW5nCisgICAqIHBvc2l0aW9uIGlzIHNwZWNpZmll
ZCBieSAicG9zaXRpb24iLiBJZiAicG9zaXRpb24iIGlzIG91dHNpZGUgdGhlIHZhbGlkCisgICAq
IGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVuZGVmaW5l
ZC4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGQgb3Zl
cgorICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAq
IEBwYXJhbSBwb3NpdGlvbiBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29u
c3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Ig
b3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUg
aXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNvZGU+ZW5kLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlz
IG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90
IGRlbGV0ZSBpdCkuCisgICAqIFRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVjaWZp
ZWQgYnkgInBvc2l0aW9uIi4gSWYgYmVnaW4gYW5kIGVuZCBkbyBub3QKKyAgICogZm9ybSBhIHZh
bGlkIGl0ZXJhdGlvbiByYW5nZSBvciAicG9zaXRpb24iIGlzIG91dHNpZGUgdGhlIHZhbGlkCisg
ICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVuZGVm
aW5lZC4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGVk
IG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQor
ICAgKiBAcGFyYW0gdGV4dEJlZ2luICBUaGUgYmVnaW4gcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlv
biByYW5nZQorICAgKiBAcGFyYW0gdGV4dEVuZCAgICBUaGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBp
dGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHBvc2l0aW9uICAgIFRoZSBzdGFydGluZyBwb3Np
dGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNo
YXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5ndGgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCB0ZXh0QmVnaW4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50MzJfdCB0ZXh0RW5kLAorICAgICAgICAgICAgICAgICAgICAgICAg
IGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBDb3B5IGNvbnN0cnVjdG9yLiAgVGhl
IG5ldyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIHRoZSBzYW1lIHJhbmdlCisgICAqIG9mIHRoZSBz
YW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCBpdHMgaW5pdGlhbCBwb3NpdGlvbiBpcyB0aGUKKyAg
ICogc2FtZSBhcyAidGhhdCIncyBjdXJyZW50IHBvc2l0aW9uLgorICAgKiBAcGFyYW0gdGhhdCBU
aGUgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyQ2hhcmFjdGVy
SXRlcmF0b3ImICB0aGF0KTsKKworICAvKioKKyAgICogRGVzdHJ1Y3Rvci4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIH5VQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKCk7CisK
KyAgLyoqCisgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICAqdGhpcyBpcyBhbHRlcmVkIHRvIGl0
ZXJhdGUgb3ZlciB0aGUgc2FuZQorICAgKiByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRo
YXQiLCBhbmQgcmVmZXJzIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciB3aXRoaW4gdGhhdCBz
dHJpbmcgYXMgInRoYXQiIGRvZXMuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBvYmplY3QgdG8gYmUg
Y29waWVkCisgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0CisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYKKyAgb3BlcmF0b3I9
KGNvbnN0IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImICAgIHRoYXQpOworCisgIC8qKgorICAgKiBS
ZXR1cm5zIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ug
b2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hh
cmFjdGVyLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHVz
ZWQgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5CisgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUg
aXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBz
dHJpbmcgYW5kIGFyZSBwb2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9vbCAgICAgICAgICBvcGVyYXRvcj09KGNv
bnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgLyoqCisgICAq
IEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhpcyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0
aGUgaGFzaCBjb2RlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgaW50
MzJfdCAgICAgICAgIGhhc2hDb2RlKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1cm5z
IGEgbmV3IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAq
IGNoYXJhY3RlciBpbiB0aGUgc2FtZSByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgdGhpcyBv
bmUuICBUaGUKKyAgICogY2FsbGVyIG11c3QgZGVsZXRlIHRoZSBuZXcgaXRlcmF0b3IuCisgICAq
IEByZXR1cm4gdGhlIENoYXJhY3Rlckl0ZXJhdG9yIG5ld2x5IGNyZWF0ZWQKKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9uZSh2b2lk
KSBjb25zdDsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhl
IGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJu
cyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVy
YXRpb24gd2l0aCBuZXh0KCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBp
dHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUNoYXIgICAgICAgICBmaXJzdCh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0
aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSB1bml0LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9u
CisgICAqIHRvIHRoZSBzZWNvbmQgY29kZSB1bml0LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRv
IHNldFRvU3RhcnQoKQorICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdElu
YygpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiBy
YW5nZQorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAg
ICBmaXJzdFBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFu
Z2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LAorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRv
IGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQzMigpLgorICAgKiBOb3RlIHRoYXQgYW4gaXRl
cmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLCBiZWdpbm5pbmcgd2l0aCwKKyAgICogZS5nLiwg
c2V0VG9TdGFydCgpIG9yIGZpcnN0UG9zdEluYygpLCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICog
QHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzIo
dm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBm
aXJzdCBjb2RlIHBvaW50IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhh
dCBjb2RlIHBvaW50LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAqIHRvIHRoZSBzZWNvbmQg
Y29kZSBwb2ludC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICog
Zm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLgorICAgKiBAcmV0dXJu
IHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzJQb3N0SW5j
KHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUg
bGFzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMg
dGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0
aW9uIHdpdGggcHJldmlvdXMoKS4KKyAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHVuaXQgaW4g
aXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIFVDaGFyICAgICAgICAgbGFzdCh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0
aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUg
dXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91czMyKCkuCisgICAqIEByZXR1
cm4gdGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBsYXN0MzIodm9pZCk7
CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSAicG9zaXRp
b24iLXRoIGNvZGUgdW5pdAorICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRl
cmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAgICogcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICog
QHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQtc3RvcmFnZSBvYmpl
Y3QKKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIHNldEluZGV4KGludDMyX3QgcG9zaXRpb24pOwor
CisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgYmVnaW5uaW5n
IG9mIHRoZSBjb2RlIHBvaW50CisgICAqIHRoYXQgY29udGFpbnMgdGhlICJwb3NpdGlvbiItdGgg
Y29kZSB1bml0CisgICAqIGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciBy
ZWZlcnMgdG8sIGFuZAorICAgKiByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4KKyAgICogVGhlIGN1
cnJlbnQgcG9zaXRpb24gaXMgYWRqdXN0ZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29kZSBw
b2ludAorICAgKiAoaXRzIGZpcnN0IGNvZGUgdW5pdCkuCisgICAqIEBwYXJhbSBwb3NpdGlvbiB0
aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAqIEByZXR1cm4g
dGhlIGNvZGUgdW5pdAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNo
YXIzMiAgICAgICBzZXRJbmRleDMyKGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBS
ZXR1cm5zIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisg
ICAqIEByZXR1cm4gdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0
by4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAg
Y3VycmVudCh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogUmV0dXJucyB0aGUgY29kZSBwb2lu
dCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHJldHVybiB0aGUgY29k
ZSBwb2ludCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgY3VycmVudDMyKHZvaWQpIGNv
bnN0OworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0
aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZSBubyBtb3JlCisgICAqIGNvZGUgdW5pdHMgdG8g
cmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSB1bml0IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCBVQ2hhciAgICAgICAgIG5leHQodm9pZCk7CisKKyAgLyoqCisgICAqIEdldHMgdGhlIGN1
cnJlbnQgY29kZSB1bml0IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNv
ZGUgdW5pdAorICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqICh0b3dhcmQgZW5kSW5k
ZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwg
cmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dFBvc3RJ
bmModm9pZCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQg
aW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIGVuZEluZGV4KCkpLCBhbmQgcmV0
dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHBv
aW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogTm90ZSB0aGF0IGl0ZXJhdGlvbiB3
aXRoICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MgaXMgbGVzcworICAgKiBlZmZpY2llbnQgdGhh
biBpdGVyYXRpb24gd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNlbWFudGljcworICAgKiB0aGF0IGlz
IHByb3ZpZGVkIGJ5IG5leHQzMlBvc3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUgbmV4dCBjb2Rl
IHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMih2b2lkKTsKKworICAvKioKKyAgICog
R2V0cyB0aGUgY3VycmVudCBjb2RlIHBvaW50IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRv
IHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiAo
dG93YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAqIG5vIG1vcmUgY29kZSBwb2lu
dHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgcG9p
bnQuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAg
IG5leHQzMlBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgRkFMU0UgaWYgdGhl
cmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBhdCBvciBhZnRl
ciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBUaGlz
IGlzIHVzZWQgd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMoKSBpbiBmb3J3YXJk
CisgICAqIGl0ZXJhdGlvbi4KKyAgICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9y
ZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50
IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzTmV4dCgpOworCisgIC8qKgorICAgKiBB
ZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2Ug
KHRvd2FyZAorICAgKiBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4g
IElmIHRoZXJlIGFyZSBubyBtb3JlCisgICAqIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5z
IERPTkUuCisgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0
aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIg
ICAgICAgICBwcmV2aW91cyh2b2lkKTsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIHBy
ZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIHN0
YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZSBu
byBtb3JlCisgICAqIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBA
cmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHByZXZp
b3VzMzIodm9pZCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5v
IG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQg
cG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogVGhpcyBpcyB1c2VkIHdpdGgg
cHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkgaW4gYmFja3dhcmQKKyAgICogaXRlcmF0aW9uLgor
ICAgKiBAcmV0dXJuIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29k
ZSBwb2ludHMKKyAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9vbCAg
ICAgICAgaGFzUHJldmlvdXMoKTsKKworICAvKioKKyAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9z
aXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICogaXRlcmF0aW9u
IHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAq
IFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHVuaXRzIGZvcndh
cmQKKyAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZl
IGRlbHRhLgorICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdp
bi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgKiBhIG5lZ2F0aXZlIGRlbHRh
IG1lYW5zIGJhY2t3YXJkLgorICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7
a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92ZShp
bnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbik7CisKKyAgLyoqCisgICAqIE1vdmVzIHRoZSBj
dXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAq
IGl0ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRz
ZWxmLgorICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSBw
b2ludHMgZm9yd2FyZAorICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUg
b3IgbmVnYXRpdmUgZGVsdGEuCisgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVsYXRp
dmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAqIGEgbmVn
YXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVu
dW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgKiBAcmV0dXJuIHRoZSBuZXcg
cG9zaXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIGludDMyX3Qg
ICAgICBtb3ZlMzIoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pOworCisgIC8qKgorICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgYSBuZXcgcmFuZ2Ugb2YgdGV4dAor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVQ2hhciog
bmV3VGV4dCwgaW50MzJfdCBuZXdUZXh0TGVuZ3RoKTsKKworICAvKioKKyAgICogQ29waWVzIHRo
ZSBVQ2hhciBhcnJheSB1bmRlciBpdGVyYXRpb24gaW50byB0aGUgVW5pY29kZVN0cmluZworICAg
KiByZWZlcnJlZCB0byBieSAicmVzdWx0Ii4gIEV2ZW4gaWYgdGhpcyBpdGVyYXRvciBpdGVyYXRl
cyBhY3Jvc3MKKyAgICogb25seSBhIHBhcnQgb2YgdGhpcyBzdHJpbmcsIHRoZSB3aG9sZSBzdHJp
bmcgaXMgY29waWVkLgorICAgKiBAcGFyYW0gcmVzdWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUg
dGV4dCB1bmRlciBpdGVyYXRpb24uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCB2b2lkICAgICAgICAgICAgZ2V0VGV4dChVbmljb2RlU3RyaW5nJiByZXN1bHQpOworCisg
IC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcyAobm90IHJlYWxseSBw
dWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcworICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHN0YXRpYyBVQ2xhc3NJRCAgICAgICAgIFVfRVhQT1JUMiBn
ZXRTdGF0aWNDbGFzc0lEKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBm
b3IgdGhpcyBvYmplY3QgKG5vdCByZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3Mg
SUQgZm9yIHRoaXMgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUNsYXNzSUQgICAgICAgIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCitwcm90
ZWN0ZWQ6CisgIC8qKgorICAgKiBQcm90ZWN0ZWQgY29uc3RydWN0b3IKKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKCk7CisgIC8qKgorICAgKiBQ
cm90ZWN0ZWQgbWVtYmVyIHRleHQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBjb25z
dCBVQ2hhciogICAgICAgICAgICB0ZXh0OworCit9OworCitVX05BTUVTUEFDRV9FTkQKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2xlYW4uaCBiL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvdWNsZWFuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDlhMWU1MzkwNThjZGU4NWVmZDJh
YTg0Y2I3MDdkMzc0MTc0MjVmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvdWNsZWFuLmgKQEAgLTAsMCArMSwyNTggQEAKKy8qCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyogQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKKyogICAgICAgICAgICAgICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVjbGVh
bi5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNl
ZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwMUp1bHkwNQorKiAg
IGNyZWF0ZWQgYnk6IEdlb3JnZSBSaG90ZW4KKyovCisKKyNpZm5kZWYgX19VQ0xFQU5fSF9fCisj
ZGVmaW5lIF9fVUNMRUFOX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKy8qKgor
ICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogSW5pdGlhbGl6ZSBhbmQgY2xlYW4gdXAgSUNVCisg
Ki8KKyAKKy8qKgorICogIEluaXRpYWxpemUgSUNVLgorICoKKyAqICBVc2Ugb2YgdGhpcyBmdW5j
dGlvbiBpcyBvcHRpb25hbC4gIEl0IGlzIE9LIHRvIHNpbXBseSB1c2UgSUNVCisgKiAgc2Vydmlj
ZXMgYW5kIGZ1bmN0aW9ucyB3aXRob3V0IGZpcnN0IGhhdmluZyBpbml0aWFsaXplZAorICogIElD
VSBieSBjYWxsaW5nIHVfaW5pdCgpLgorICoKKyAqICB1X2luaXQoKSB3aWxsIGF0dGVtcHQgdG8g
bG9hZCBzb21lIHBhcnQgb2YgSUNVJ3MgZGF0YSwgYW5kIGlzCisgKiAgdXNlZnVsIGFzIGEgdGVz
dCBmb3IgY29uZmlndXJhdGlvbiBvciBpbnN0YWxsYXRpb24gcHJvYmxlbXMgdGhhdAorICogIGxl
YXZlIHRoZSBJQ1UgZGF0YSBpbmFjY2Vzc2libGUuICBBIHN1Y2Nlc3NmdWwgaW52b2NhdGlvbiBv
ZiB1X2luaXQoKQorICogIGRvZXMgbm90LCBob3dldmVyLCBndWFyYW50ZWUgdGhhdCBhbGwgSUNV
IGRhdGEgaXMgYWNjZXNzaWJsZS4KKyAqCisgKiAgTXVsdGlwbGUgY2FsbHMgdG8gdV9pbml0KCkg
Y2F1c2Ugbm8gaGFybSwgYXNpZGUgZnJvbSB0aGUgc21hbGwgYW1vdW50CisgKiAgb2YgdGltZSBy
ZXF1aXJlZC4KKyAqCisgKiAgSW4gb2xkIHZlcnNpb25zIG9mIElDVSwgdV9pbml0KCkgd2FzIHJl
cXVpcmVkIGluIG11bHRpLXRocmVhZGVkIGFwcGxpY2F0aW9ucworICogIHRvIGVuc3VyZSB0aGUg
dGhyZWFkIHNhZmV0eSBvZiBJQ1UuICB1X2luaXQoKSBpcyBubyBsb25nZXIgbmVlZGVkIGZvciB0
aGlzIHB1cnBvc2UuCisgKgorICogQHBhcmFtIHN0YXR1cyBBbiBJQ1UgVUVycm9yQ29kZSBwYXJh
bWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICogICAgQW4gRXJyb3Ig
d2lsbCBiZSByZXR1cm5lZCBpZiBzb21lIHJlcXVpcmVkIHBhcnQgb2YgSUNVIGRhdGEgY2FuIG5v
dAorICogICAgYmUgbG9hZGVkIG9yIGluaXRpYWxpemVkLgorICogICAgVGhlIGZ1bmN0aW9uIHJl
dHVybnMgaW1tZWRpYXRlbHkgaWYgdGhlIGlucHV0IGVycm9yIGNvZGUgaW5kaWNhdGVzIGEKKyAq
ICAgIGZhaWx1cmUsIGFzIHVzdWFsLgorICoKKyAqIEBzdGFibGUgSUNVIDIuNgorICovICAKK1Vf
U1RBQkxFIHZvaWQgVV9FWFBPUlQyIAordV9pbml0KFVFcnJvckNvZGUgKnN0YXR1cyk7CisKKyNp
Zm5kZWYgVV9ISURFX1NZU1RFTV9BUEkKKy8qKgorICogQ2xlYW4gdXAgdGhlIHN5c3RlbSByZXNv
dXJjZXMsIHN1Y2ggYXMgYWxsb2NhdGVkIG1lbW9yeSBvciBvcGVuIGZpbGVzLAorICogdXNlZCBp
biBhbGwgSUNVIGxpYnJhcmllcy4gVGhpcyB3aWxsIGZyZWUvZGVsZXRlIGFsbCBtZW1vcnkgb3du
ZWQgYnkgdGhlCisgKiBJQ1UgbGlicmFyaWVzLCBhbmQgcmV0dXJuIHRoZW0gdG8gdGhlaXIgb3Jp
Z2luYWwgbG9hZCBzdGF0ZS4gQWxsIG9wZW4gSUNVCisgKiBpdGVtcyAoY29sbGF0b3JzLCByZXNv
dXJjZSBidW5kbGVzLCBjb252ZXJ0ZXJzLCBldGMuKSBtdXN0IGJlIGNsb3NlZCBiZWZvcmUKKyAq
IGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgb3RoZXJ3aXNlIElDVSBtYXkgbm90IGZyZWUgaXRzIGFs
bG9jYXRlZCBtZW1vcnkKKyAqIChlLmcuIGNsb3NlIHlvdXIgY29udmVydGVycyBhbmQgcmVzb3Vy
Y2UgYnVuZGxlcyBiZWZvcmUgY2FsbGluZyB0aGlzCisgKiBmdW5jdGlvbikuIEdlbmVyYWxseSwg
dGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uY2UganVzdCBiZWZvcmUKKyAqIGFuIGFw
cGxpY2F0aW9uIGV4aXRzLiBGb3IgYXBwbGljYXRpb25zIHRoYXQgZHluYW1pY2FsbHkgbG9hZCBh
bmQgdW5sb2FkCisgKiB0aGUgSUNVIGxpYnJhcmllcyAocmVsYXRpdmVseSB1bmNvbW1vbiksIHVf
Y2xlYW51cCgpIHNob3VsZCBiZSBjYWxsZWQKKyAqIGp1c3QgYmVmb3JlIHRoZSBsaWJyYXJ5IHVu
bG9hZC4KKyAqIDxwPgorICogdV9jbGVhbnVwKCkgYWxzbyBjbGVhcnMgYW55IElDVSBoZWFwIGZ1
bmN0aW9ucywgbXV0ZXggZnVuY3Rpb25zIG9yCisgKiB0cmFjZSBmdW5jdGlvbnMgdGhhdCBtYXkg
aGF2ZSBiZWVuIHNldCBmb3IgdGhlIHByb2Nlc3MuICAKKyAqIFRoaXMgaGFzIHRoZSBlZmZlY3Qg
b2YgcmVzdG9yaW5nIElDVSB0byBpdHMgaW5pdGlhbCBjb25kaXRpb24sIGJlZm9yZQorICogYW55
IG9mIHRoZXNlIG92ZXJyaWRlIGZ1bmN0aW9ucyB3ZXJlIGluc3RhbGxlZC4gIFJlZmVyIHRvCisg
KiB1X3NldE1lbW9yeUZ1bmN0aW9ucygpLCB1X3NldE11dGV4RnVuY3Rpb25zIGFuZCAKKyAqIHV0
cmFjZV9zZXRGdW5jdGlvbnMoKS4gIElmIElDVSBpcyB0byBiZSByZWluaXRpYWxpemVkIGFmdGVy
IGFmdGVyCisgKiBjYWxsaW5nIHVfY2xlYW51cCgpLCB0aGVzZSBydW50aW1lIG92ZXJyaWRlIGZ1
bmN0aW9ucyB3aWxsIG5lZWQgdG8KKyAqIGJlIHNldCB1cCBhZ2FpbiBpZiB0aGV5IGFyZSBzdGls
bCByZXF1aXJlZC4KKyAqIDxwPgorICogdV9jbGVhbnVwKCkgaXMgbm90IHRocmVhZCBzYWZlLiAg
QWxsIG90aGVyIHRocmVhZHMgc2hvdWxkIHN0b3AgdXNpbmcgSUNVCisgKiBiZWZvcmUgY2FsbGlu
ZyB0aGlzIGZ1bmN0aW9uLgorICogPHA+CisgKiBBbnkgb3BlbiBJQ1UgaXRlbXMgd2lsbCBiZSBs
ZWZ0IGluIGFuIHVuZGVmaW5lZCBzdGF0ZSBieSB1X2NsZWFudXAoKSwKKyAqIGFuZCBhbnkgc3Vi
c2VxdWVudCBhdHRlbXB0IHRvIHVzZSBzdWNoIGFuIGl0ZW0gd2lsbCBnaXZlIHVucHJlZGljdGFi
bGUKKyAqIHJlc3VsdHMuCisgKiA8cD4KKyAqIEFmdGVyIGNhbGxpbmcgdV9jbGVhbnVwKCksIGFu
IGFwcGxpY2F0aW9uIG1heSBjb250aW51ZSB0byB1c2UgSUNVIGJ5CisgKiBjYWxsaW5nIHVfaW5p
dCgpLiAgQW4gYXBwbGljYXRpb24gbXVzdCBpbnZva2UgdV9pbml0KCkgZmlyc3QgZnJvbSBvbmUg
c2luZ2xlCisgKiB0aHJlYWQgYmVmb3JlIGFsbG93aW5nIG90aGVyIHRocmVhZHMgY2FsbCB1X2lu
aXQoKS4gIEFsbCB0aHJlYWRzIGV4aXN0aW5nCisgKiBhdCB0aGUgdGltZSBvZiB0aGUgZmlyc3Qg
dGhyZWFkJ3MgY2FsbCB0byB1X2luaXQoKSBtdXN0IGFsc28gY2FsbAorICogdV9pbml0KCkgdGhl
bXNlbHZlcyBiZWZvcmUgY29udGludWluZyB3aXRoIG90aGVyIElDVSBvcGVyYXRpb25zLiAgCisg
KiA8cD4KKyAqIFRoZSB1c2Ugb2YgdV9jbGVhbnVwKCkganVzdCBiZWZvcmUgYW4gYXBwbGljYXRp
b24gdGVybWluYXRlcyBpcyBvcHRpb25hbCwKKyAqIGJ1dCBpdCBzaG91bGQgYmUgY2FsbGVkIG9u
bHkgb25jZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4gVGhlIHByaW1hcnkKKyAqIGJlbmVmaXQg
aXMgdG8gZWxpbWluYXRlIHJlcG9ydHMgb2YgbWVtb3J5IG9yIHJlc291cmNlIGxlYWtzIG9yaWdp
bmF0aW5nCisgKiBpbiBJQ1UgY29kZSBmcm9tIHRoZSByZXN1bHRzIGdlbmVyYXRlZCBieSBoZWFw
IGFuYWx5c2lzIHRvb2xzLgorICogPHA+CisgKiA8c3Ryb25nPlVzZSB0aGlzIGZ1bmN0aW9uIHdp
dGggZ3JlYXQgY2FyZSE8L3N0cm9uZz4KKyAqIDwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqIEBzeXN0ZW0KKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIgCit1X2NsZWFudXAodm9p
ZCk7CisKKworLyoqCisgICogIFBvaW50ZXIgdHlwZSBmb3IgYSB1c2VyIHN1cHBsaWVkIG1lbW9y
eSBhbGxvY2F0aW9uIGZ1bmN0aW9uLgorICAqICBAcGFyYW0gY29udGV4dCB1c2VyIHN1cHBsaWVk
IHZhbHVlLCBvYnRhaW5lZCBmcm9tIGZyb20gdV9zZXRNZW1vcnlGdW5jdGlvbnMoKS4KKyAgKiAg
QHBhcmFtIHNpemUgICAgVGhlIG51bWJlciBvZiBieXRlcyB0byBiZSBhbGxvY2F0ZWQKKyAgKiAg
QHJldHVybiAgICAgICAgUG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIG1lbW9yeSwgb3Ig
TlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQuCisgICogIEBzdGFibGUgSUNVIDIuOAorICAq
ICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQgKlVfQ0FMTENPTlYgVU1lbUFsbG9jRm4oY29u
c3Qgdm9pZCAqY29udGV4dCwgc2l6ZV90IHNpemUpOworLyoqCisgICogIFBvaW50ZXIgdHlwZSBm
b3IgYSB1c2VyIHN1cHBsaWVkIG1lbW9yeSByZS1hbGxvY2F0aW9uIGZ1bmN0aW9uLgorICAqICBA
cGFyYW0gY29udGV4dCB1c2VyIHN1cHBsaWVkIHZhbHVlLCBvYnRhaW5lZCBmcm9tIGZyb20gdV9z
ZXRNZW1vcnlGdW5jdGlvbnMoKS4KKyAgKiAgQHBhcmFtIHNpemUgICAgVGhlIG51bWJlciBvZiBi
eXRlcyB0byBiZSBhbGxvY2F0ZWQKKyAgKiAgQHJldHVybiAgICAgICAgUG9pbnRlciB0byB0aGUg
bmV3bHkgYWxsb2NhdGVkIG1lbW9yeSwgb3IgTlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQu
CisgICogIEBzdGFibGUgSUNVIDIuOAorICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQg
KlVfQ0FMTENPTlYgVU1lbVJlYWxsb2NGbihjb25zdCB2b2lkICpjb250ZXh0LCB2b2lkICptZW0s
IHNpemVfdCBzaXplKTsKKy8qKgorICAqICBQb2ludGVyIHR5cGUgZm9yIGEgdXNlciBzdXBwbGll
ZCBtZW1vcnkgZnJlZSAgZnVuY3Rpb24uICBCZWhhdmlvciBzaG91bGQgYmUKKyAgKiAgc2ltaWxh
ciB0aGUgc3RhbmRhcmQgQyBsaWJyYXJ5IGZyZWUoKS4KKyAgKiAgQHBhcmFtIGNvbnRleHQgdXNl
ciBzdXBwbGllZCB2YWx1ZSwgb2J0YWluZWQgZnJvbSBmcm9tIHVfc2V0TWVtb3J5RnVuY3Rpb25z
KCkuCisgICogIEBwYXJhbSBtZW0gICAgIFBvaW50ZXIgdG8gdGhlIG1lbW9yeSBibG9jayB0byBi
ZSByZXNpemVkCisgICogIEBwYXJhbSBzaXplICAgIFRoZSBuZXcgc2l6ZSBmb3IgdGhlIGJsb2Nr
CisgICogIEByZXR1cm4gICAgICAgIFBvaW50ZXIgdG8gdGhlIHJlc2l6ZWQgbWVtb3J5IGJsb2Nr
LCBvciBOVUxMIGlmIHRoZSByZXNpemluZyBmYWlsZWQuCisgICogIEBzdGFibGUgSUNVIDIuOAor
ICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQgIFVfQ0FMTENPTlYgVU1lbUZyZWVGbiAo
Y29uc3Qgdm9pZCAqY29udGV4dCwgdm9pZCAqbWVtKTsKKworLyoqCisgKiAgU2V0IHRoZSBmdW5j
dGlvbnMgdGhhdCBJQ1Ugd2lsbCB1c2UgZm9yIG1lbW9yeSBhbGxvY2F0aW9uLgorICogIFVzZSBv
ZiB0aGlzIGZ1bmN0aW9uIGlzIG9wdGlvbmFsOyBieSBkZWZhdWx0ICh3aXRob3V0IHRoaXMgZnVu
Y3Rpb24pLCBJQ1Ugd2lsbAorICogIHVzZSB0aGUgc3RhbmRhcmQgQyBsaWJyYXJ5IG1hbGxvYygp
IGFuZCBmcmVlKCkgZnVuY3Rpb25zLgorICogIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgdXNl
ZCB3aGVuIElDVSBpcyBpbiBhbiBpbml0aWFsLCB1bnVzZWQgc3RhdGUsIGJlZm9yZQorICogIHVf
aW5pdCgpIGhhcyBiZWVuIGNhbGxlZC4KKyAqICBAcGFyYW0gY29udGV4dCBUaGlzIHBvaW50ZXIg
dmFsdWUgd2lsbCBiZSBzYXZlZCwgYW5kIHRoZW4gKGxhdGVyKSBwYXNzZWQgYXMKKyAqICAgICAg
ICAgICAgICAgICBhIHBhcmFtZXRlciB0byB0aGUgbWVtb3J5IGZ1bmN0aW9ucyBlYWNoIHRpbWUg
dGhleQorICogICAgICAgICAgICAgICAgIGFyZSBjYWxsZWQuCisgKiAgQHBhcmFtIGEgICAgICAg
UG9pbnRlciB0byBhIHVzZXItc3VwcGxpZWQgbWFsbG9jIGZ1bmN0aW9uLgorICogIEBwYXJhbSBy
ICAgICAgIFBvaW50ZXIgdG8gYSB1c2VyLXN1cHBsaWVkIHJlYWxsb2MgZnVuY3Rpb24uCisgKiAg
QHBhcmFtIGYgICAgICAgUG9pbnRlciB0byBhIHVzZXItc3VwcGxpZWQgZnJlZSBmdW5jdGlvbi4K
KyAqICBAcGFyYW0gc3RhdHVzICBSZWNlaXZlcyBlcnJvciB2YWx1ZXMuCisgKiAgQHN0YWJsZSBJ
Q1UgMi44CisgKiAgQHN5c3RlbQorICovICAKK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyIAordV9z
ZXRNZW1vcnlGdW5jdGlvbnMoY29uc3Qgdm9pZCAqY29udGV4dCwgVU1lbUFsbG9jRm4gKmEsIFVN
ZW1SZWFsbG9jRm4gKnIsIFVNZW1GcmVlRm4gKmYsIAorICAgICAgICAgICAgICAgICAgICBVRXJy
b3JDb2RlICpzdGF0dXMpOworCisKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisvKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisgKgorICogRGVwcmVjYXRlZCBGdW5jdGlvbnMKKyAqCisg
KiAgICBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBmb3IgdXNlciBzdXBwbGllZCBtdXRleGVzIGFy
ZSBubyBsb25nZXIgc3VwcG9ydGVkLgorICogICAgQW55IGF0dGVtcHQgdG8gdXNlIHRoZW0gd2ls
bCByZXR1cm4gYSBVX1VOU1VQUE9SVEVEX0VSUk9SLgorICoKKyAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqLworCisvKioKKyAgKiBBbiBvcGFxdWUgcG9pbnRlciB0eXBlIHRoYXQgcmVwcmVzZW50
cyBhbiBJQ1UgbXV0ZXguCisgICogRm9yIHVzZXItaW1wbGVtZW50ZWQgbXV0ZXhlcywgdGhlIHZh
bHVlIHdpbGwgdHlwaWNhbGx5IHBvaW50IHRvIGEKKyAgKiAgc3RydWN0IG9yIG9iamVjdCB0aGF0
IGltcGxlbWVudHMgdGhlIG11dGV4LgorICAqIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyB0eXBl
IGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICogQHN5c3RlbQorICAqLwordHlwZWRlZiB2b2lk
ICpVTVRYOworCisvKioKKyAgKiAgRnVuY3Rpb24gUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3Vw
cGxpZWQgbXV0ZXggaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uCisgICogIFRoZSB1c2VyLXN1cHBs
aWVkIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGJ5IElDVSB3aGVuZXZlciBJQ1UgbmVlZHMgdG8g
Y3JlYXRlIGEKKyAgKiAgbmV3IG11dGV4LiAgVGhlIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uIHNo
b3VsZCBjcmVhdGUgYSBtdXRleCwgYW5kIHN0b3JlIGEgcG9pbnRlcgorICAqICB0byBzb21ldGhp
bmcgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBtdXRleCBpbnRvIHRoZSBVTVRYIHRoYXQg
aXMgc3VwcGxpZWQKKyAgKiAgYXMgYSBwYXJhbXRlci4KKyAgKiAgQHBhcmFtIGNvbnRleHQgdXNl
ciBzdXBwbGllZCB2YWx1ZSwgb2J0YWluZWQgZnJvbSBmcm9tIHVfc2V0TXV0ZXhGdW5jdGlvbnMo
KS4KKyAgKiAgQHBhcmFtIG11dGV4ICAgUmVjZWl2ZXMgYSBwb2ludGVyIHRoYXQgaWRlbnRpZmll
cyB0aGUgbmV3IG11dGV4LgorICAqICAgICAgICAgICAgICAgICBUaGUgbXV0ZXggaW5pdCBmdW5j
dGlvbiBtdXN0IHNldCB0aGUgVU1UWCB0byBhIG5vbi1udWxsIHZhbHVlLiAgIAorICAqICAgICAg
ICAgICAgICAgICBTdWJzZXF1ZW50IGNhbGxzIGJ5IElDVSB0byBsb2NrLCB1bmxvY2ssIG9yIGRl
c3Ryb3kgYSBtdXRleCB3aWxsIAorICAqICAgICAgICAgICAgICAgICBpZGVudGlmeSB0aGUgbXV0
ZXggYnkgdGhlIFVNVFggdmFsdWUuCisgICogIEBwYXJhbSBzdGF0dXMgIEVycm9yIHN0YXR1cy4g
IFJlcG9ydCBlcnJvcnMgYmFjayB0byBJQ1UgYnkgc2V0dGluZyB0aGlzIHZhcmlhYmxlCisgICog
ICAgICAgICAgICAgICAgIHdpdGggYW4gZXJyb3IgY29kZS4KKyAgKiAgQGRlcHJlY2F0ZWQgSUNV
IDUyLiBUaGlzIGZ1bmN0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICogIEBzeXN0ZW0K
KyAgKi8KK3R5cGVkZWYgdm9pZCBVX0NBTExDT05WIFVNdHhJbml0Rm4gKGNvbnN0IHZvaWQgKmNv
bnRleHQsIFVNVFggICptdXRleCwgVUVycm9yQ29kZSogc3RhdHVzKTsKKworCisvKioKKyAgKiAg
RnVuY3Rpb24gUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3VwcGxpZWQgbXV0ZXggZnVuY3Rpb25z
LgorICAqICBPbmUgb2YgdGhlICB1c2VyLXN1cHBsaWVkIGZ1bmN0aW9ucyB3aXRoIHRoaXMgc2ln
bmF0dXJlIHdpbGwgYmUgY2FsbGVkIGJ5IElDVQorICAqICB3aGVuZXZlciBJQ1UgbmVlZHMgdG8g
bG9jaywgdW5sb2NrLCBvciBkZXN0cm95IGEgbXV0ZXguCisgICogIEBwYXJhbSBjb250ZXh0IHVz
ZXIgc3VwcGxpZWQgdmFsdWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3NldE11dGV4RnVuY3Rpb25z
KCkuCisgICogIEBwYXJhbSBtdXRleCAgIHNwZWNpZnkgdGhlIG11dGV4IG9uIHdoaWNoIHRvIG9w
ZXJhdGUuCisgICogIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyBmdW5jdGlvbiBpcyBubyBsb25n
ZXIgc3VwcG9ydGVkLgorICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQgVV9DQUxMQ09O
ViBVTXR4Rm4gICAoY29uc3Qgdm9pZCAqY29udGV4dCwgVU1UWCAgKm11dGV4KTsKKworCisvKioK
KyAgKiAgU2V0IHRoZSBmdW5jdGlvbnMgdGhhdCBJQ1Ugd2lsbCB1c2UgZm9yIG11dGV4IG9wZXJh
dGlvbnMKKyAgKiAgVXNlIG9mIHRoaXMgZnVuY3Rpb24gaXMgb3B0aW9uYWw7IGJ5IGRlZmF1bHQg
KHdpdGhvdXQgdGhpcyBmdW5jdGlvbiksIElDVSB3aWxsCisgICogIGRpcmVjdGx5IGFjY2VzcyBz
eXN0ZW0gZnVuY3Rpb25zIGZvciBtdXRleCBvcGVyYXRpb25zCisgICogIFRoaXMgZnVuY3Rpb24g
Y2FuIG9ubHkgYmUgdXNlZCB3aGVuIElDVSBpcyBpbiBhbiBpbml0aWFsLCB1bnVzZWQgc3RhdGUs
IGJlZm9yZQorICAqICB1X2luaXQoKSBoYXMgYmVlbiBjYWxsZWQuCisgICogIEBwYXJhbSBjb250
ZXh0IFRoaXMgcG9pbnRlciB2YWx1ZSB3aWxsIGJlIHNhdmVkLCBhbmQgdGhlbiAobGF0ZXIpIHBh
c3NlZCBhcworICAqICAgICAgICAgICAgICAgICBhIHBhcmFtZXRlciB0byB0aGUgdXNlci1zdXBw
bGllZCBtdXRleCBmdW5jdGlvbnMgZWFjaCB0aW1lIHRoZXkKKyAgKiAgICAgICAgICAgICAgICAg
YXJlIGNhbGxlZC4gCisgICogIEBwYXJhbSBpbml0ICAgIFBvaW50ZXIgdG8gYSBtdXRleCBpbml0
aWFsaXphdGlvbiBmdW5jdGlvbi4gIE11c3QgYmUgbm9uLW51bGwuCisgICogIEBwYXJhbSBkZXN0
cm95IFBvaW50ZXIgdG8gdGhlIG11dGV4IGRlc3Ryb3kgZnVuY3Rpb24uICBNdXN0IGJlIG5vbi1u
dWxsLgorICAqICBAcGFyYW0gbG9jayAgICBwb2ludGVyIHRvIHRoZSBtdXRleCBsb2NrIGZ1bmN0
aW9uLiAgTXVzdCBiZSBub24tbnVsbC4KKyAgKiAgQHBhcmFtIHVubG9jayAgUG9pbnRlciB0byB0
aGUgbXV0ZXggdW5sb2NrIGZ1bmN0aW9uLiAgTXVzdCBiZSBub24tbnVsbC4KKyAgKiAgQHBhcmFt
IHN0YXR1cyAgUmVjZWl2ZXMgZXJyb3IgdmFsdWVzLgorICAqICBAZGVwcmVjYXRlZCBJQ1UgNTIu
IFRoaXMgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KKyAgKiAgQHN5c3RlbQorICAq
LyAgCitVX0RFUFJFQ0FURUQgdm9pZCBVX0VYUE9SVDIgCit1X3NldE11dGV4RnVuY3Rpb25zKGNv
bnN0IHZvaWQgKmNvbnRleHQsIFVNdHhJbml0Rm4gKmluaXQsIFVNdHhGbiAqZGVzdHJveSwgVU10
eEZuICpsb2NrLCBVTXR4Rm4gKnVubG9jaywKKyAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29k
ZSAqc3RhdHVzKTsKKworCisvKioKKyAgKiAgUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3VwcGxp
ZWQgYXRvbWljIGluY3JlbWVudCBvciBkZWNyZW1lbnQgZnVuY3Rpb24uCisgICogIEBwYXJhbSBj
b250ZXh0IHVzZXIgc3VwcGxpZWQgdmFsdWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3NldEF0b21p
Y0luY0RlY0Z1bmN0aW9ucygpLgorICAqICBAcGFyYW0gcCAgIFBvaW50ZXIgdG8gYSAzMiBiaXQg
aW50IHRvIGJlIGluY3JlbWVudGVkIG9yIGRlY3JlbWVudGVkCisgICogIEByZXR1cm4gICAgVGhl
IHZhbHVlIG9mIHRoZSB2YXJpYWJsZSBhZnRlciB0aGUgaW5jIG9yIGRlYyBvcGVyYXRpb24uCisg
ICogIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyBmdW5jdGlvbiBpcyBubyBsb25nZXIgc3VwcG9y
dGVkLgorICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OViBVTXR4
QXRvbWljRm4oY29uc3Qgdm9pZCAqY29udGV4dCwgaW50MzJfdCAqcCk7CisKKy8qKgorICogIFNl
dCB0aGUgZnVuY3Rpb25zIHRoYXQgSUNVIHdpbGwgdXNlIGZvciBhdG9taWMgaW5jcmVtZW50IGFu
ZCBkZWNyZW1lbnQgb2YgaW50MzJfdCB2YWx1ZXMuCisgKiAgVXNlIG9mIHRoaXMgZnVuY3Rpb24g
aXMgb3B0aW9uYWw7IGJ5IGRlZmF1bHQgKHdpdGhvdXQgdGhpcyBmdW5jdGlvbiksIElDVSB3aWxs
CisgKiAgdXNlIGl0cyBvd24gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb2YgYXRvbWljIGluY3Jl
bWVudC9kZWNyZW1lbnQuCisgKiAgVGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSB1c2VkIHdoZW4g
SUNVIGlzIGluIGFuIGluaXRpYWwsIHVudXNlZCBzdGF0ZSwgYmVmb3JlCisgKiAgdV9pbml0KCkg
aGFzIGJlZW4gY2FsbGVkLgorICogIEBwYXJhbSBjb250ZXh0IFRoaXMgcG9pbnRlciB2YWx1ZSB3
aWxsIGJlIHNhdmVkLCBhbmQgdGhlbiAobGF0ZXIpIHBhc3NlZCBhcworICogICAgICAgICAgICAg
ICAgIGEgcGFyYW1ldGVyIHRvIHRoZSBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBmdW5jdGlvbnMg
ZWFjaCB0aW1lIHRoZXkKKyAqICAgICAgICAgICAgICAgICBhcmUgY2FsbGVkLiAgVGhpcyBmdW5j
dGlvbiBjYW4gb25seSBiZSBjYWxsZWQgCisgKiAgQHBhcmFtIGluYyAgICAgUG9pbnRlciB0byBh
IGZ1bmN0aW9uIHRvIGRvIGFuIGF0b21pYyBpbmNyZW1lbnQgb3BlcmF0aW9uLiAgTXVzdCBiZSBu
b24tbnVsbC4KKyAqICBAcGFyYW0gZGVjICAgICBQb2ludGVyIHRvIGEgZnVuY3Rpb24gdG8gZG8g
YW4gYXRvbWljIGRlY3JlbWVudCBvcGVyYXRpb24uICBNdXN0IGJlIG5vbi1udWxsLgorICogIEBw
YXJhbSBzdGF0dXMgIFJlY2VpdmVzIGVycm9yIHZhbHVlcy4KKyAqICBAZGVwcmVjYXRlZCBJQ1Ug
NTIuIFRoaXMgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KKyAqICBAc3lzdGVtCisg
Ki8gIAorVV9ERVBSRUNBVEVEIHZvaWQgVV9FWFBPUlQyIAordV9zZXRBdG9taWNJbmNEZWNGdW5j
dGlvbnMoY29uc3Qgdm9pZCAqY29udGV4dCwgVU10eEF0b21pY0ZuICppbmMsIFVNdHhBdG9taWNG
biAqZGVjLAorICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOworCisjZW5k
aWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLworI2VuZGlmICAvKiBVX0hJREVfU1lTVEVN
X0FQSSAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRh
dGEuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWU0NjYz
MGQ1Mzk4ZDgyNzM4ZDFkNjFmZmM0ZDJjOTE0ZThjNjhiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi9pY3UvdW5pY29kZS91ZGF0YS5oCkBAIC0wLDAgKzEsNDMwIEBACisvKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQsIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFt
ZTogIHVkYXRhLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDgg
KG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0
MjUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBfX1VE
QVRBX0hfXworI2RlZmluZSBfX1VEQVRBX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMu
aCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCitVX0NERUNMX0JFR0lOCisK
Ky8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogRGF0YSBsb2FkaW5nIGludGVyZmFjZQor
ICoKKyAqIDxoMj5JbmZvcm1hdGlvbiBhYm91dCBkYXRhIGxvYWRpbmcgaW50ZXJmYWNlPC9oMj4K
KyAqCisgKiBUaGlzIEFQSSBpcyB1c2VkIHRvIGZpbmQgYW5kIGVmZmljaWVudGx5IGxvYWQgZGF0
YSBmb3IgSUNVIGFuZCBhcHBsaWNhdGlvbnMKKyAqIHVzaW5nIElDVS4gSXQgcHJvdmlkZXMgYW4g
YWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgc3BlY2lmaWVzIGEgZGF0YSB0eXBlIGFuZAorICogbmFt
ZSB0byBmaW5kIGFuZCBsb2FkIHRoZSBkYXRhLiBOb3JtYWxseSB0aGlzIEFQSSBpcyB1c2VkIGJ5
IG90aGVyIElDVSBBUElzCisgKiB0byBsb2FkIHJlcXVpcmVkIGRhdGEgb3V0IG9mIHRoZSBJQ1Ug
ZGF0YSBsaWJyYXJ5LCBidXQgaXQgY2FuIGJlIHVzZWQgdG8KKyAqIGxvYWQgZGF0YSBvdXQgb2Yg
b3RoZXIgcGxhY2VzLgorICoKKyAqIFNlZSB0aGUgVXNlciBHdWlkZSBEYXRhIE1hbmFnZW1lbnQg
Y2hhcHRlci4KKyAqLworIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisvKioKKyAqIENo
YXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAor
ICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SICctJwor
CisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVl
IG5hbWVzIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJB
VE9SX1NUUklORyAiLSIKKworLyoqCisgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYXJ0
cyBvZiBlbnRyeSBuYW1lcworICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RS
RUVfRU5UUllfU0VQX0NIQVIgJy8nCisKKy8qKgorICogU3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUg
cGFydHMgb2YgZW50cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUg
VV9UUkVFX0VOVFJZX1NFUF9TVFJJTkcgIi8iCisKKy8qKgorICogQWxpYXMgZm9yIHN0YW5kYXJk
IElDVSBkYXRhIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX0lDVURBVEFf
QUxJQVMgIklDVURBVEEiCisKKyNlbmRpZiAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKy8q
KgorICogVURhdGFJbmZvIGNvbnRhaW5zIHRoZSBwcm9wZXJ0aWVzIGFib3V0IHRoZSByZXF1ZXN0
ZWQgZGF0YS4KKyAqIFRoaXMgaXMgbWV0YSBkYXRhLgorICoKKyAqIDxwPlRoaXMgc3RydWN0dXJl
IG1heSBncm93IGluIHRoZSBmdXR1cmUsIGluZGljYXRlZCBieSB0aGUKKyAqIDxjb2RlPnNpemU8
L2NvZGU+IGZpZWxkLjwvcD4KKyAqCisgKiA8cD5JQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgt
YWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogVGhlIFVEYXRhSW5mbyBzdHJ1
Y3QgYmVnaW5zIDQgYnl0ZXMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIHRoZSBkYXRhIGl0ZW0sCisgKiBz
byBpdCBpcyA0LWFsaWduZWQuCisgKgorICogPHA+VGhlIHBsYXRmb3JtIGRhdGEgcHJvcGVydHkg
ZmllbGRzIGhlbHAgZGV0ZXJtaW5lIGlmIGEgZGF0YQorICogZmlsZSBjYW4gYmUgZWZmaWNpZW50
bHkgdXNlZCBvbiBhIGdpdmVuIG1hY2hpbmUuCisgKiBUaGUgcGFydGljdWxhciBmaWVsZHMgYXJl
IG9mIGltcG9ydGFuY2Ugb25seSBpZiB0aGUgZGF0YQorICogaXMgYWZmZWN0ZWQgYnkgdGhlIHBy
b3BlcnRpZXMgLSBpZiB0aGVyZSBpcyBpbnRlZ2VyIGRhdGEKKyAqIHdpdGggd29yZCBzaXplcyA+
IDEgYnl0ZSwgY2hhciogdGV4dCwgb3IgVUNoYXIqIHRleHQuPC9wPgorICoKKyAqIDxwPlRoZSBp
bXBsZW1lbnRhdGlvbiBmb3IgdGhlIDxjb2RlPnVkYXRhX29wZW5bQ2hvaWNlXSgpPC9jb2RlPgor
ICogZnVuY3Rpb25zIG1heSByZWplY3QgZGF0YSBiYXNlZCBvbiB0aGUgdmFsdWUgaW4gPGNvZGU+
aXNCaWdFbmRpYW48L2NvZGU+LgorICogTm8gb3RoZXIgZmllbGQgaXMgdXNlZCBieSB0aGUgPGNv
ZGU+dWRhdGE8L2NvZGU+IEFQSSBpbXBsZW1lbnRhdGlvbi48L3A+CisgKgorICogPHA+VGhlIDxj
b2RlPmRhdGFGb3JtYXQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIGlkZW50aWZ5CisgKiB0aGUga2lu
ZCBvZiBkYXRhLCBlLmcuIGEgY29udmVydGVyIHRhYmxlLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNv
ZGU+Zm9ybWF0VmVyc2lvbjwvY29kZT4gZmllbGQgc2hvdWxkIGJlIHVzZWQgdG8KKyAqIG1ha2Ug
c3VyZSB0aGF0IHRoZSBmb3JtYXQgY2FuIGJlIGludGVycHJldGVkLgorICogSXQgbWF5IGJlIGEg
Z29vZCBpZGVhIHRvIGNoZWNrIG9ubHkgZm9yIHRoZSBvbmUgb3IgdHdvIGhpZ2hlc3QKKyAqIG9m
IHRoZSB2ZXJzaW9uIGVsZW1lbnRzIHRvIGFsbG93IHRoZSBkYXRhIG1lbW9yeSB0bworICogZ2V0
IG1vcmUgb3Igc29tZXdoYXQgcmVhcnJhbmdlZCBjb250ZW50cywgZm9yIGFzIGxvbmcKKyAqIGFz
IHRoZSB1c2luZyBjb2RlIGNhbiBzdGlsbCBpbnRlcnByZXQgdGhlIG9sZGVyIGNvbnRlbnRzLjwv
cD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+ZGF0YVZlcnNpb248L2NvZGU+IGZpZWxkIGlzIGludGVu
ZGVkIHRvIGJlIGEKKyAqIGNvbW1vbiBwbGFjZSB0byBzdG9yZSB0aGUgc291cmNlIHZlcnNpb24g
b2YgdGhlIGRhdGE7CisgKiBmb3IgZGF0YSBmcm9tIHRoZSBVbmljb2RlIGNoYXJhY3RlciBkYXRh
YmFzZSwgdGhpcyBjb3VsZAorICogcmVmbGVjdCB0aGUgVW5pY29kZSB2ZXJzaW9uLjwvcD4KKyAq
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIC8qKiBzaXpl
b2YoVURhdGFJbmZvKQorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50MTZfdCBz
aXplOworCisgICAgLyoqIHVudXNlZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIu
MCovCisgICAgdWludDE2X3QgcmVzZXJ2ZWRXb3JkOworCisgICAgLyogcGxhdGZvcm0gZGF0YSBw
cm9wZXJ0aWVzICovCisgICAgLyoqIDAgZm9yIGxpdHRsZS1lbmRpYW4gbWFjaGluZSwgMSBmb3Ig
YmlnLWVuZGlhbgorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50OF90IGlzQmln
RW5kaWFuOworCisgICAgLyoqIHNlZSBVX0NIQVJTRVRfRkFNSUxZIHZhbHVlcyBpbiB1dHlwZXMu
aCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGNoYXJzZXRGYW1pbHk7
CisKKyAgICAvKiogc2l6ZW9mKFVDaGFyKSwgb25lIG9mIHsgMSwgMiwgNCB9IAorICAgICAqICBA
c3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3Qgc2l6ZW9mVUNoYXI7CisKKyAgICAvKiogdW51
c2VkLCBzZXQgdG8gMCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHJl
c2VydmVkQnl0ZTsKKworICAgIC8qKiBkYXRhIGZvcm1hdCBpZGVudGlmaWVyIAorICAgICAqICBA
c3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YUZvcm1hdFs0XTsKKworICAgIC8qKiB2
ZXJzaW9uczogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAq
ICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZm9ybWF0VmVyc2lvbls0XTsKKworICAg
IC8qKiB2ZXJzaW9uczogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAor
ICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YVZlcnNpb25bNF07Cit9
IFVEYXRhSW5mbzsKKworLyogQVBJIGZvciByZWFkaW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKioKKyAqIEZvcndhcmQg
ZGVjbGFyYXRpb24gb2YgdGhlIGRhdGEgbWVtb3J5IHR5cGUuCisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqLwordHlwZWRlZiBzdHJ1Y3QgVURhdGFNZW1vcnkgVURhdGFNZW1vcnk7CisKKy8qKgorICog
Q2FsbGJhY2sgZnVuY3Rpb24gZm9yIHVkYXRhX29wZW5DaG9pY2UoKS4KKyAqIEBwYXJhbSBjb250
ZXh0IHBhcmFtZXRlciBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+
LgorICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIGRhdGEgYXMgcGFzc2VkIGludG8gPGNv
ZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPi4KKyAqICAgICAgICAgICAgIEl0IG1heSBiZSA8
Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGFz
IHBhc3NlZCBpbnRvIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiBAcGFyYW0g
cEluZm8gQSBwb2ludGVyIHRvIHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+IHN0cnVjdHVyZQor
ICogICAgICAgICAgICAgIG9mIGRhdGEgdGhhdCBoYXMgYmVlbiBsb2FkZWQgYW5kIHdpbGwgYmUg
cmV0dXJuZWQKKyAqICAgICAgICAgICAgICBieSA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2Nv
ZGU+IGlmIHRoaXMgZnVuY3Rpb24KKyAqICAgICAgICAgICAgICByZXR1cm5zIDxjb2RlPlRSVUU8
L2NvZGU+LgorICogQHJldHVybiBUUlVFIGlmIHRoZSBjdXJyZW50IGRhdGEgbWVtb3J5IGlzIGFj
Y2VwdGFibGUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIFVCb29sIFVfQ0FMTENP
TlYKK1VEYXRhTWVtb3J5SXNBY2NlcHRhYmxlKHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgVURhdGFJbmZvICpwSW5mbyk7CisKKworLyoqCisgKiBDb252
ZW5pZW5jZSBmdW5jdGlvbi4KKyAqIFRoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgYXMgPGNv
ZGU+dWRhdGFfb3BlbkNob2ljZTwvY29kZT4KKyAqIGV4Y2VwdCB0aGF0IGFueSBkYXRhIHRoYXQg
bWF0Y2hlcyB0aGUgdHlwZSBhbmQgbmFtZQorICogaXMgYXNzdW1lZCB0byBiZSBhY2NlcHRhYmxl
LgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFz
ZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUg
ZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRh
dGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBk
YXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBi
dW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVy
c2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUg
PGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0
IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIEFu
IElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+TlVMTDwvY29k
ZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAoaGFuZGxlKSB0byBhIGRhdGEgbWVtb3J5IG9iamVj
dCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAqICAgICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzLiBD
YWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPgorICogICAgICAgICB0byBnZXQgYSBw
b2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4KKyAqCisgKiBAc2VlIHVkYXRhX29wZW5DaG9pY2UK
KyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JU
MgordWRhdGFfb3Blbihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBj
aGFyICpuYW1lLAorICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisg
KiBEYXRhIGxvYWRpbmcgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZmlu
ZCBhbmQgbG9hZCBlZmZpY2llbnRseSBkYXRhIGZvcgorICogSUNVIGFuZCBhcHBsaWNhdGlvbnMg
dXNpbmcgSUNVLgorICogSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgYWxs
b3dzIHRvIHNwZWNpZnkgYSBkYXRhCisgKiB0eXBlIGFuZCBuYW1lIHRvIGZpbmQgYW5kIGxvYWQg
dGhlIGRhdGEuCisgKgorICogPHA+VGhlIGltcGxlbWVudGF0aW9uIGRlcGVuZHMgb24gcGxhdGZv
cm0gcHJvcGVydGllcyBhbmQgdXNlciBwcmVmZXJlbmNlcworICogYW5kIG1heSBpbnZvbHZlIGxv
YWRpbmcgc2hhcmVkIGxpYnJhcmllcyAoRExMcyksIG1hcHBpbmcKKyAqIGZpbGVzIGludG8gbWVt
b3J5LCBvciBmb3BlbigpL2ZyZWFkKCkgZmlsZXMuCisgKiBJdCBtYXkgYWxzbyBpbnZvbHZlIHVz
aW5nIHN0YXRpYyBtZW1vcnkgb3IgZGF0YWJhc2UgcXVlcmllcyBldGMuCisgKiBTZXZlcmFsIG9y
IGFsbCBkYXRhIGl0ZW1zIG1heSBiZSBjb21iaW5lZCBpbnRvIG9uZSBlbnRpdHkKKyAqIChETEws
IG1lbW9yeS1tYXBwYWJsZSBmaWxlKS48L3A+CisgKgorICogPHA+VGhlIGRhdGEgaXMgYWx3YXlz
IHByZWNlZGVkIGJ5IGEgaGVhZGVyIHRoYXQgaW5jbHVkZXMKKyAqIGEgPGNvZGU+VURhdGFJbmZv
PC9jb2RlPiBzdHJ1Y3R1cmUuCisgKiBUaGUgY2FsbGVyJ3MgPGNvZGU+aXNBY2NlcHRhYmxlKCk8
L2NvZGU+IGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBtYWtlCisgKiBzdXJlIHRoYXQgdGhlIGRhdGEg
aXMgdXNlZnVsLiBJdCBtYXkgYmUgY2FsbGVkIHNldmVyYWwgdGltZXMgaWYgaXQKKyAqIHJlamVj
dHMgdGhlIGRhdGEgYW5kIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgbG9jYXRpb24gd2l0aCBkYXRh
CisgKiBtYXRjaGluZyB0aGUgdHlwZSBhbmQgbmFtZS48L3A+CisgKgorICogPHA+SWYgPGNvZGU+
cGF0aD09TlVMTDwvY29kZT4sIHRoZW4gSUNVIGRhdGEgaXMgbG9hZGVkLgorICogT3RoZXJ3aXNl
LCBpdCBpcyBzZXBhcmF0ZWQgaW50byBhIGJhc2VuYW1lIGFuZCBhIGJhc2VuYW1lLWxlc3MgZGly
ZWN0b3J5IHN0cmluZy4KKyAqIFRoZSBiYXNlbmFtZSBpcyB1c2VkIGFzIHRoZSBkYXRhIHBhY2th
Z2UgbmFtZSwgYW5kIHRoZSBkaXJlY3RvcnkgaXMKKyAqIGxvZ2ljYWxseSBwcmVwZW5kZWQgdG8g
dGhlIElDVSBkYXRhIGRpcmVjdG9yeSBzdHJpbmcuPC9wPgorICoKKyAqIDxwPkZvciBkZXRhaWxz
IGFib3V0IElDVSBkYXRhIGxvYWRpbmcgc2VlIHRoZSBVc2VyIEd1aWRlCisgKiBEYXRhIE1hbmFn
ZW1lbnQgY2hhcHRlci4gKGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL2ljdWRhdGEu
aHRtbCk8L3A+CisgKgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGgg
YW5kL29yIGEgYmFzZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUg
ZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2Rl
PiBmb3IgSUNVIGRhdGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0
aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxl
LCByZXNvdXJjZSBidW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAg
ICAgICAgY29udmVyc2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAg
VGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBB
IHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBp
c0FjY2VwdGFibGUgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRoYXQgbG9hZGVk
IGRhdGEKKyAqICAgICAgICAgICAgICAgICAgICAgaXMgdXNlZnVsIGZvciB0aGUgY2xpZW50IGNv
ZGUuIElmIGl0IHJldHVybnMgRkFMU0UKKyAqICAgICAgICAgICAgICAgICAgICAgZm9yIGFsbCBk
YXRhIGl0ZW1zLCB0aGVuIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4KKyAqICAgICAg
ICAgICAgICAgICAgICAgd2lsbCByZXR1cm4gd2l0aCBhbiBlcnJvci4KKyAqIEBwYXJhbSBjb250
ZXh0IEFyYml0cmFyeSBwYXJhbWV0ZXIgdG8gYmUgcGFzc2VkIGludG8gaXNBY2NlcHRhYmxlLgor
ICogQHBhcmFtIHBFcnJvckNvZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJdCBtdXN0
IG5vdCBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEByZXR1cm4gQSBwb2ludGVyIChoYW5kbGUp
IHRvIGEgZGF0YSBtZW1vcnkgb2JqZWN0LCBvciA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAg
ICBpZiBhbiBlcnJvciBvY2N1cnMuIENhbGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+
CisgKiAgICAgICAgIHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhLgorICogQHN0
YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIFVEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1ZGF0
YV9vcGVuQ2hvaWNlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNo
YXIgKm5hbWUsCisgICAgICAgICAgICAgICAgIFVEYXRhTWVtb3J5SXNBY2NlcHRhYmxlICppc0Fj
Y2VwdGFibGUsIHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBF
cnJvckNvZGUpOworCisvKioKKyAqIENsb3NlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoaXMgZnVu
Y3Rpb24gbXVzdCBiZSBjYWxsZWQgdG8gYWxsb3cgdGhlIHN5c3RlbSB0bworICogcmVsZWFzZSBy
ZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGF0YSBtZW1vcnkuCisgKiBAcGFyYW0gcERh
dGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBtZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2Nsb3NlKFVEYXRhTWVtb3J5ICpw
RGF0YSk7CisKKyNpZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgor
CisvKioKKyAqIFxjbGFzcyBMb2NhbFVEYXRhTWVtb3J5UG9pbnRlcgorICogIlNtYXJ0IHBvaW50
ZXIiIGNsYXNzLCBjbG9zZXMgYSBVRGF0YU1lbW9yeSB2aWEgdWRhdGFfY2xvc2UoKS4KKyAqIEZv
ciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKgor
ICogQHNlZSBMb2NhbFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0YWJs
ZSBJQ1UgNC40CisgKi8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVEYXRhTWVt
b3J5UG9pbnRlciwgVURhdGFNZW1vcnksIHVkYXRhX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5E
CisKKyNlbmRpZgorCisvKioKKyAqIEdldCB0aGUgcG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEg
aW5zaWRlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoZSBkYXRhIGlzIHJlYWQtb25seS4KKyAqCisg
KiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1h
bGlnbmVkLgorICoKKyAqIEBwYXJhbSBwRGF0YSBUaGUgcG9pbnRlciB0byBkYXRhIG1lbW9yeSBv
YmplY3QKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBjb25zdCB2b2lkICogVV9F
WFBPUlQyCit1ZGF0YV9nZXRNZW1vcnkoVURhdGFNZW1vcnkgKnBEYXRhKTsKKworLyoqCisgKiBH
ZXQgdGhlIGluZm9ybWF0aW9uIGZyb20gdGhlIGRhdGEgbWVtb3J5IGhlYWRlci4KKyAqIFRoaXMg
YWxsb3dzIHRvIGdldCBhY2Nlc3MgdG8gdGhlIGhlYWRlciBjb250YWluaW5nCisgKiBwbGF0Zm9y
bSBkYXRhIHByb3BlcnRpZXMgZXRjLiB3aGljaCBpcyBub3QgcGFydCBvZgorICogdGhlIGRhdGEg
aXRzZWxmIGFuZCBjYW4gdGhlcmVmb3JlIG5vdCBiZSBhY2Nlc3NlZAorICogdmlhIHRoZSBwb2lu
dGVyIHRoYXQgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+IHJldHVybnMuCisgKgorICog
QHBhcmFtIHBEYXRhIHBvaW50ZXIgdG8gdGhlIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHBhcmFt
IHBJbmZvIHBvaW50ZXIgdG8gYSBVRGF0YUluZm8gb2JqZWN0OworICogICAgICAgICAgICAgIGl0
cyA8Y29kZT5zaXplPC9jb2RlPiBmaWVsZCBtdXN0IGJlIHNldCBjb3JyZWN0bHksCisgKiAgICAg
ICAgICAgICAgdHlwaWNhbGx5IHRvIDxjb2RlPnNpemVvZihVRGF0YUluZm8pPC9jb2RlPi4KKyAq
CisgKiA8Y29kZT4qcEluZm88L2NvZGU+IHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIFVEYXRhSW5m
byBzdHJ1Y3R1cmUKKyAqIGluIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QuIElmIHRoaXMgc3RydWN0
dXJlIGlzIHNtYWxsZXIgdGhhbgorICogPGNvZGU+cEluZm8tPnNpemU8L2NvZGU+LCB0aGVuIHRo
ZSA8Y29kZT5zaXplPC9jb2RlPiB3aWxsIGJlCisgKiBhZGp1c3RlZCBhbmQgb25seSBwYXJ0IG9m
IHRoZSBzdHJ1Y3R1cmUgd2lsbCBiZSBmaWxsZWQuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwor
VV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2dldEluZm8oVURhdGFNZW1vcnkgKnBEYXRh
LCBVRGF0YUluZm8gKnBJbmZvKTsKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRo
ZSBub3JtYWwgSUNVIGRhdGEgbG9hZGluZyBwcm9jZXNzIGFuZAorICogYWxsb3dzIHlvdSB0byBm
b3JjZSBJQ1UncyBzeXN0ZW0gZGF0YSB0byBjb21lIG91dCBvZiBhIHVzZXItc3BlY2lmaWVkCisg
KiBhcmVhIGluIG1lbW9yeS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxp
Z25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUu
aWN1LXByb2plY3Qub3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBp
cyB0aGF0IG9mIHRoZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgYXMgaXMKKyAqIGdlbmVyYXRlZCBi
eSB0aGUgcGtnZGF0YSB0b29sIHdpdGggbW9kZT1jb21tb24gb3IgbW9kZT1kbGwuCisgKiBZb3Ug
Y2FuIHJlYWQgaW4gYSB3aG9sZSBjb21tb24gbW9kZSBmaWxlIGFuZCBwYXNzIHRoZSBhZGRyZXNz
IHRvIHRoZSBzdGFydCBvZiB0aGUKKyAqIGRhdGEsIG9yICh3aXRoIHRoZSBhcHByb3ByaWF0ZSBs
aW5rIG9wdGlvbnMpIHBhc3MgaW4gdGhlIHBvaW50ZXIgdG8KKyAqIHRoZSBkYXRhIHRoYXQgaGFz
IGJlZW4gbG9hZGVkIGZyb20gYSBkbGwgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0sCisgKiBhcyBz
aG93biBpbiB0aGlzIGNvZGU6CisgKgorICogICAgICAgZXh0ZXJuIGNvbnN0IGNoYXIgVV9JTVBP
UlQgVV9JQ1VEQVRBX0VOVFJZX1BPSU5UIFtdOworICogICAgICAgIC8vIFVfSUNVREFUQV9FTlRS
WV9QT0lOVCBpcyBzYW1lIGFzIGVudHJ5IHBvaW50IHNwZWNpZmllZCB0byBwa2dkYXRhIHRvb2wK
KyAqICAgICAgIFVFcnJvckNvZGUgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAqCisgKiAgICAg
ICB1ZGF0YV9zZXRDb21tb25EYXRhKCZVX0lDVURBVEFfRU5UUllfUE9JTlQsICZzdGF0dXMpOwor
ICoKKyAqIEl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBkZWNsYXJhdGlvbiBiZSBhcyBhYm92ZS4g
VGhlIGVudHJ5IHBvaW50CisgKiBtdXN0IG5vdCBiZSBkZWNsYXJlZCBhcyBhbiBleHRlcm4gdm9p
ZCouCisgKgorICogU3RhcnRpbmcgd2l0aCBJQ1UgNC40LCBpdCBpcyBwb3NzaWJsZSB0byBzZXQg
c2V2ZXJhbCBkYXRhIHBhY2thZ2VzLAorICogb25lIHBlciBjYWxsIHRvIHRoaXMgZnVuY3Rpb24u
CisgKiB1ZGF0YV9vcGVuKCkgd2lsbCBsb29rIGZvciBkYXRhIGluIHRoZSBtdWx0aXBsZSBkYXRh
IHBhY2thZ2VzIGluIHRoZSBvcmRlcgorICogaW4gd2hpY2ggdGhleSB3ZXJlIHNldC4KKyAqIFRo
ZSBwb3NpdGlvbiBvZiB0aGUgbGlua2VkLWluIG9yIGRlZmF1bHQtbmFtZSBJQ1UgLmRhdGEgcGFj
a2FnZSBpbiB0aGUKKyAqIHNlYXJjaCBsaXN0IGRlcGVuZHMgb24gd2hlbiB0aGUgZmlyc3QgZGF0
YSBpdGVtIGlzIGxvYWRlZCB0aGF0IGlzIG5vdCBjb250YWluZWQKKyAqIGluIHRoZSBhbHJlYWR5
IGV4cGxpY2l0bHkgc2V0IHBhY2thZ2VzLgorICogSWYgZGF0YSB3YXMgbG9hZGVkIGltcGxpY2l0
bHkgYmVmb3JlIHRoZSBmaXJzdCBjYWxsIHRvIHRoaXMgZnVuY3Rpb24KKyAqIChmb3IgZXhhbXBs
ZSwgdmlhIG9wZW5pbmcgYSBjb252ZXJ0ZXIsIGNvbnN0cnVjdGluZyBhIFVuaWNvZGVTdHJpbmcK
KyAqIGZyb20gZGVmYXVsdC1jb2RlcGFnZSBkYXRhLCB1c2luZyBmb3JtYXR0aW5nIG9yIGNvbGxh
dGlvbiBBUElzLCBldGMuKSwKKyAqIHRoZW4gdGhlIGRlZmF1bHQgZGF0YSB3aWxsIGJlIGZpcnN0
IGluIHRoZSBsaXN0LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVjdCBvbiBhcHBs
aWNhdGlvbiAobm9uIElDVSkgZGF0YS4gIFNlZSB1ZGF0YV9zZXRBcHBEYXRhKCkKKyAqIGZvciBz
aW1pbGFyIGZ1bmN0aW9uYWxpdHkgZm9yIGFwcGxpY2F0aW9uIGRhdGEuCisgKgorICogQHBhcmFt
IGRhdGEgcG9pbnRlciB0byBJQ1UgY29tbW9uIGRhdGEKKyAqIEBwYXJhbSBlcnIgb3V0Z29pbmcg
ZXJyb3Igc3RhdHVzIDxjb2RlPlVfVVNJTkdfREVGQVVMVF9XQVJOSU5HLCBVX1VOU1VQUE9SVEVE
X0VSUk9SPC9jb2RlPgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9F
WFBPUlQyCit1ZGF0YV9zZXRDb21tb25EYXRhKGNvbnN0IHZvaWQgKmRhdGEsIFVFcnJvckNvZGUg
KmVycik7CisKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNV
IGRhdGEgbG9hZGluZyBwcm9jZXNzIGZvciBhcHBsaWNhdGlvbi1zcGVjaWZpYworICogZGF0YSBh
bmQgYWxsb3dzIHlvdSB0byBmb3JjZSB0aGUgaXQgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNp
ZmllZAorICogcG9pbnRlci4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxp
Z25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUu
aWN1LXByb2plY3Qub3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBp
cyB0aGF0IG9mIHRoZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgbGlrZSAnaWN1ZHQyNmwuZGF0Jwor
ICogb3IgdGhlIGNvcnJlc3BvbmRpbmcgc2hhcmVkIGxpYnJhcnkgKERMTCkgZmlsZS4KKyAqIFRo
ZSBhcHBsaWNhdGlvbiBtdXN0IHJlYWQgaW4gb3Igb3RoZXJ3aXNlIGNvbnN0cnVjdCBhbiBpbWFn
ZSBvZiB0aGUgZGF0YSBhbmQgdGhlbgorICogcGFzcyB0aGUgYWRkcmVzcyBvZiBpdCB0byB0aGlz
IGZ1bmN0aW9uLgorICoKKyAqCisgKiBXYXJuaW5nOiAgc2V0QXBwRGF0YSB3aWxsIHNldCBhIFVf
VVNJTkdfREVGQVVMVF9XQVJOSU5HIGNvZGUgaWYKKyAqICAgICAgICAgICBkYXRhIHdpdGggdGhl
IHNwZWNpZmVkIHBhdGggdGhhdCBoYXMgYWxyZWFkeSBiZWVuIG9wZW5lZCwgb3IKKyAqICAgICAg
ICAgICBpZiBzZXRBcHBEYXRhIHdpdGggdGhlIHNhbWUgcGF0aCBoYXMgYWxyZWFkeSBiZWVuIGNh
bGxlZC4KKyAqICAgICAgICAgICBBbnkgc3VjaCBjYWxscyB0byBzZXRBcHBEYXRhIHdpbGwgaGF2
ZSBubyBlZmZlY3QuCisgKgorICoKKyAqIEBwYXJhbSBwYWNrYWdlTmFtZSB0aGUgcGFja2FnZSBu
YW1lIGJ5IHdoaWNoIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZmVyCisgKiAgICAgICAgICAgICB0
byAob3BlbikgdGhpcyBkYXRhCisgKiBAcGFyYW0gZGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhCisg
KiBAcGFyYW0gZXJyIG91dGdvaW5nIGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRf
V0FSTklORywgVV9VTlNVUFBPUlRFRF9FUlJPUjwvY29kZT4KKyAqIEBzZWUgdWRhdGFfc2V0Q29t
bW9uRGF0YQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQy
Cit1ZGF0YV9zZXRBcHBEYXRhKGNvbnN0IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25zdCB2b2lkICpk
YXRhLCBVRXJyb3JDb2RlICplcnIpOworCisvKioKKyAqIFBvc3NpYmxlIHNldHRpbmdzIGZvciB1
ZGF0YV9zZXRGaWxlQWNjZXNzKCkKKyAqIEBzZWUgdWRhdGFfc2V0RmlsZUFjY2VzcworICogQHN0
YWJsZSBJQ1UgMy40CisgKi8KK3R5cGVkZWYgZW51bSBVRGF0YUZpbGVBY2Nlc3MgeworICAgIC8q
KiBJQ1UgbG9va3MgZm9yIGRhdGEgaW4gc2luZ2xlIGZpbGVzIGZpcnN0LCB0aGVuIGluIHBhY2th
Z2VzLiAoZGVmYXVsdCkgQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRVNfRklSU1Qs
CisgICAgLyoqIEFuIGFsaWFzIGZvciB0aGUgZGVmYXVsdCBhY2Nlc3MgbW9kZS4gQHN0YWJsZSBJ
Q1UgMy40ICovCisgICAgVURBVEFfREVGQVVMVF9BQ0NFU1MgPSBVREFUQV9GSUxFU19GSVJTVCwK
KyAgICAvKiogSUNVIG9ubHkgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzLCBub3QgZnJvbSBzaW5n
bGUgZmlsZXMuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX09OTFlfUEFDS0FHRVMsCisg
ICAgLyoqIElDVSBsb2FkcyBkYXRhIGZyb20gcGFja2FnZXMgZmlyc3QsIGFuZCBvbmx5IGZyb20g
c2luZ2xlIGZpbGVzCisgICAgICAgIGlmIHRoZSBkYXRhIGNhbm5vdCBiZSBmb3VuZCBpbiBhIHBh
Y2thZ2UuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX1BBQ0tBR0VTX0ZJUlNULAorICAg
IC8qKiBJQ1UgZG9lcyBub3QgYWNjZXNzIHRoZSBmaWxlIHN5c3RlbSBmb3IgZGF0YSBsb2FkaW5n
LiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9OT19GSUxFUywKKyAgICAvKiogTnVtYmVy
IG9mIHJlYWwgVURhdGFGaWxlQWNjZXNzIHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAg
VURBVEFfRklMRV9BQ0NFU1NfQ09VTlQKK30gVURhdGFGaWxlQWNjZXNzOworCisvKioKKyAqIFRo
aXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCB0byBjb250cm9sIGhvdyBJQ1UgbG9hZHMgZGF0YS4g
SXQgbXVzdCBiZSBjYWxsZWQKKyAqIGJlZm9yZSBhbnkgSUNVIGRhdGEgaXMgbG9hZGVkLCBpbmNs
dWRpbmcgYXBwbGljYXRpb24gZGF0YSBsb2FkZWQgd2l0aCAKKyAqIHVyZXMvUmVzb3VyY2VCdW5k
bGUgb3IgdWRhdGEgQVBJcy4gVGhpcyBmdW5jdGlvbiBpcyBub3QgbXVsdGl0aHJlYWQgc2FmZS4g
IAorICogVGhlIHJlc3VsdHMgb2YgY2FsbGluZyBpdCB3aGlsZSBvdGhlciB0aHJlYWRzIGFyZSBs
b2FkaW5nIGRhdGEgYXJlIHVuZGVmaW5lZC4KKyAqIEBwYXJhbSBhY2Nlc3MgVGhlIHR5cGUgb2Yg
ZmlsZSBhY2Nlc3MgdG8gYmUgdXNlZAorICogQHBhcmFtIHN0YXR1cyBFcnJvciBjb2RlLgorICog
QHNlZSBVRGF0YUZpbGVBY2Nlc3MKKyAqIEBzdGFibGUgSUNVIDMuNCAKKyAqLworVV9TVEFCTEUg
dm9pZCBVX0VYUE9SVDIKK3VkYXRhX3NldEZpbGVBY2Nlc3MoVURhdGFGaWxlQWNjZXNzIGFjY2Vz
cywgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmggYi9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3VtaXNjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg1NDUxZmM3NjdjMDU4MzVmNmMxNWY1NjZmMzU2MmUy
ZDRhZjgzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1pc2Mu
aApAQCAtMCwwICsxLDYwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykg
MTk5OS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRp
b24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAg
ZmlsZSBuYW1lOiAgdW1pc2MuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNp
emU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246
IDE5OTlvY3QxNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisjaWZu
ZGVmIFVNSVNDX0gKKyNkZWZpbmUgVU1JU0NfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMu
aCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmICBDIEFQSTptaXNjIGRlZmluaXRpb25zIAor
ICoKKyAqICBUaGlzIGZpbGUgY29udGFpbnMgbWlzY2VsbGFuZW91cyBkZWZpbml0aW9ucyBmb3Ig
dGhlIEMgQVBJcy4gCisgKi8KKworVV9DREVDTF9CRUdJTgorCisvKiogQSBzdHJ1Y3QgcmVwcmVz
ZW50aW5nIGEgcmFuZ2Ugb2YgdGV4dCBjb250YWluaW5nIGEgc3BlY2lmaWMgZmllbGQgCisgKiAg
QHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IFVGaWVsZFBvc2l0aW9uIHsKKyAg
LyoqCisgICAqIFRoZSBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQz
Ml90IGZpZWxkOworICAvKioKKyAgICogVGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHJhbmdlIGNvbnRh
aW5pbmcgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBiZWdp
bkluZGV4OworICAvKiogCisgICAqIFRoZSBsaW1pdCBvZiB0aGUgdGV4dCByYW5nZSBjb250YWlu
aW5nIGZpZWxkIAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgZW5kSW5k
ZXg7Cit9IFVGaWVsZFBvc2l0aW9uOworCisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorLyoqCisg
KiBPcGFxdWUgdHlwZSByZXR1cm5lZCBieSByZWdpc3Rlckluc3RhbmNlLCByZWdpc3RlckZhY3Rv
cnkgYW5kIHVucmVnaXN0ZXIgZm9yIHNlcnZpY2UgcmVnaXN0cmF0aW9uLgorICogQHN0YWJsZSBJ
Q1UgMi42CisgKi8KK3R5cGVkZWYgY29uc3Qgdm9pZCogVVJlZ2lzdHJ5S2V5OworI2VuZGlmCisK
K1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAwOTk3ZDllYWM0
Nzk1ODFmZjFmZDQ3NjljY2M0YjU0NjYyZWZkNzE0Li42NTA5ZTgyN2VmY2NiMzZiZjA5NTgzNWU3
MjgyNDU5ZTY2OTY2MWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMjcyLDYgKzI3Miw0MiBA
QCBpZiAoTk9UIFVTRV9TWVNURU1fTUFMTE9DKQogICAgIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJ
RVMgYm1hbGxvYykKIGVuZGlmICgpCiAKK3NldChXVEZfQlJFQUtJTkdfUlVMRVNfU09VUkNFUwor
ICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dAorICAg
IHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0Cisg
ICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50
eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50
eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKSy50eHQKKykKKworbWFjcm8oR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMg
X2lucHV0IF9zeW1ib2xOYW1lIF9vdXRwdXQpCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAg
ICAgICBPVVRQVVQgJHtfb3V0cHV0fQorICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElS
fS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQor
ICAgICAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGls
b2d1ZS50eHQKKyAgICAgICAgQ09NTUFORCBjYXQgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAke19pbnB1
dH0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvckVwaWxvZ3VlLnR4dCB8ICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0v
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgJHtf
c3ltYm9sTmFtZX1SdWxlcyAtaW5jbHVkZURlZmluZXMgPiAke19vdXRwdXR9CisgICAgICAgIFZF
UkJBVElNKQorICAgIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7X291dHB1dH0pCisgICAgQURE
X1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtfaW5wdXR9ICR7X291dHB1dH0pCitlbmRtYWNybygpCisK
K2ZvcmVhY2ggKF9maWxlICR7V1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVN9KQorICAgIGdldF9m
aWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtfZmlsZX0gTkFNRV9XRSkKKyAgICBHRU5FUkFURV9C
UkVBS0lOR19SVUxFUygke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtfZmlsZX0gJHtfbmFt
ZX0gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy8ke19uYW1lfS5jcHAp
CitlbmRmb3JlYWNoICgpCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJ
VkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMuY3BwCisgICAgTUFJTl9ERVBFTkRFTkNZICR7V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKKyAgICBERVBFTkRTICR7Q01B
S0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnR4dAorICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZf
RElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5w
eSBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMgLWluY2x1ZGVEZWZpbmVzIDwgJHtDTUFLRV9D
VVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMudHh0ID4gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9D
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgVkVSQkFUSU0pCitsaXN0KEFQUEVO
RCBXVEZfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHApCitBRERfU09VUkNFX0RFUEVOREVOQ0lFUygk
e0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy50eHQgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdS
dWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwKQorCiBsaXN0KEFQUEVORCBXVEZf
U09VUkNFUwogICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAogKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRkNjhiZWE4MGM4ZjJjNzNhMWUwNWZlMWY5YmJh
N2VjZDQ1NjNlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTAsMCArMSw4MSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisj
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworQlJFQUtJTkdfUlVMRVNfRklMRVMgPSBcCisgICAgQnJlYWtpbmdSdWxlcy9DdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmJyaworCitCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUyA9
IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgXAor
ICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgXAorICAgIEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwCisKK2lm
ZXEgKCQoc2hlbGwgJChDQykgLXN0ZD1nbnUrKzExIC14IGMrKyAtRSAtUCAtZE0gJChTREtfRkxB
R1MpICQoRlJBTUVXT1JLX0ZMQUdTKSAkKEhFQURFUl9GTEFHUykgLUkgJChXVEYpIC1pbmNsdWRl
ICIkKFdURikvd3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8IGdyZXAgJyBXVEZfUExBVEZPUk1f
SU9TICcgfCBjdXQgLWQnICcgLWYzKSwgMSkKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMQorZWxz
ZQorICAgIFdURl9QTEFURk9STV9JT1MgPSAwCitlbmRpZgorCitpZmVxICgkKFdURl9QTEFURk9S
TV9JT1MpLCAxKQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5U
ID0gMAorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAwCitlbHNlCisJQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQgPSAkKEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVCkKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMQorZW5kaWYKKworREVQRU5ERU5D
SUVTID0gJChCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUykKKworaWZlcSAoJChPUyksTUFDT1Mp
CitERVBFTkRFTkNJRVMgKz0gJChCUkVBS0lOR19SVUxFU19GSUxFUykKK2VuZGlmCisKK2FsbCA6
ICQoREVQRU5ERU5DSUVTKQorCitCcmVha2luZ1J1bGVzLyUuYnJrIDogQnJlYWtpbmdSdWxlcy8l
LnBwCisJLi4vLi4vZ2VuYnJrIC1jIC1yICQ8IC1vICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCA6IEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnBwCisJcHl0aG9uICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dl
bmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMg
PCAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLmNwcCA6IEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwCisJcHl0aG9uICQoV1RGKS93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBsaW5lQnJlYWtJdGVy
YXRvciQqUnVsZXMgPCAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
PSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQpIC1ESEFWRV9F
WFRSQV9JQ1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRAICQ8
CisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwIDogJChXVEYpL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCS1jYXQgJD8gfCB1
bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9T
RVRTKSAtbyAkQApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
NTkxMGJmYTVlMGU2MzNkYmQ3MjU5M2FjMWYzMzBhZjNlZTQzZGRkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy50eHQKQEAgLTAsMCArMSwxNzQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMg
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKyMgVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsg
aXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9y
Zy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3NvdXJjZS9kYXRhL2Jya2l0ci8+Lgor
IyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVk
IGJlbG93OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNp
bmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAtICRF
eHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOworIyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBw
cmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVn
IDI0MzQyKTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3Zp
bmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1
ZyAxNTc5MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJv
bSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtz
LgorIyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4KKworJENS
ICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07CiskTEYgICAgICA9IFtc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsKKyRDb250cm9sID0gW1xwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9pY2VNYXJrcyA9IFtcdUZGOUVcdUZGOUZd
OyAjIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCiskRXh0ZW5kICA9
IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSAkVm9pY2VNYXJrcyAtIFtcdTBF
MzAgXHUwRTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07CiskU3BhY2luZ01hcmsgPSBbW1xwe0dl
bmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOworJEwgICAgICAgPSBb
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsKKyRWICAgICAgID0gW1xwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gVH1dOworJExWICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07
CiskTFZUICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07CiskSGluMCAg
ICA9IFtcdTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQorJEhpblYg
ICAgPSBcdTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQorJEhpbjEgICAgPSBbXHUwOTE1
LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCiskQmVuMCAgICA9IFtcdTA5
ODUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4uLixIYQorJEJlblYgICAgPSBcdTA5Q0Q7
ICMgQmVuZ2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAgPSBbXHUwOTk1LVx1MDlCOV07ICMgQmVu
Z2FsaSBMZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9IFtcdTBBMDUtXHUwQTM5XTsgIyBHdXJt
dWtoaSBMZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0gXHUwQTREOyAjIEd1cm11a2hpIFNpZ24g
VmlyYW1hCiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgS2Es
Li4uLEhhCiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgQSwu
Li4sSGEKKyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFyYXRpIFNpZ24gVmlyYW1hCiskR3VqMSAg
ICA9IFtcdTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCiskT3JpMCAg
ICA9IFtcdTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgQSwuLi4sSGEKKyRPcmlWICAgID0g
XHUwQjREOyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3JpMSAgICA9IFtcdTBCMTUtXHUwQjM5XTsg
IyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAgICA9IFtcdTBDMDUtXHUwQzM5XTsgIyBU
ZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9IFx1MEM0RDsgIyBUZWx1Z3UgU2lnbiBW
aXJhbWEKKyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgS2EsLi4u
LEhhCiskS2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4uLixI
YQorJEthblYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBTaWduIFZpcmFtYQorJEthbjEgICAgPSBb
XHUwQzk1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKKyRNYWwwICAgID0gW1x1
MEQwNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEgCiskTWFsViAgICA9IFx1
MEQ0RDsgIyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRNYWwxICAgID0gW1x1MEQxNS1cdTBEMzld
OyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRSSSAgICAgID0gW1xVMDAwMUYxRTYtXFUw
MDAxRjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycworJFpXSiAgICAgPSBcdTIwMEQ7
ICMgWmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9IFtcdUZFMEZdOyAjIEVtb2ppLXN0eWxl
IHZhcmlhdGlvbiBzZWxlY3RvcgorCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAg
ICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBcVTAwMDFGMzA4
IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAwMUYzQ0MgXFUwMDAxRjNGMyBc
VTAwMDFGNDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NkYgXFUw
MDAxRjQ3MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4MS1cVTAwMDFGNDgyIFxVMDAw
MUY0ODYtXFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUgXFUwMDAxRjVFOCBcVTAwMDFG
NjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxVMDAwMUY2NEUgXFUwMDAxRjZB
MyBcVTAwMDFGNkI0LVxVMDAwMUY2QjZdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldK
IHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUy
NzBEIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EgXFUwMDAxRjND
QiBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYt
XFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxV
MDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU3NSBcVTAw
MDFGNTkwIFxVMDAwMUY1OTUgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAx
RjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2
QzAgXFUwMDAxRjkxOF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMK
KworI2Vsc2UKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNzY0IFxVMDAwMUY0NjYtXFUwMDAx
RjQ2OSBcVTAwMDFGNDhCXTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5j
ZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI3MEEtXHUyNzBDIFxVMDAwMUYzODUg
XFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcgXFUwMDAxRjNDQSBcVTAwMDFGNDQyLVxV
MDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAw
MDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAx
RjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2
NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2
IFxVMDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisK
KyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUwMDAxRjNGRl07ICMgRml0enBh
dHJpY2sgbW9kaWZpZXJzCishIWNoYWluOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
CisKKyAgICAhIVJJTm9DaGFpbjsKKworI2VuZGlmCisKKyEhZm9yd2FyZDsKKyRDUiAkTEY7Cisk
TCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8ICRWKSAoJFYgfCAkVCk7CisoJExWVCB8
ICRUKSAkVDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJICRSSSAk
RXh0ZW5kKiAvICRSSTsKKyAgICAkUkkgJFJJICRFeHRlbmQqOworICAgIFteJENvbnRyb2wgJENS
ICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKwor
I2Vsc2UKKworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9s
ICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKyAgICAkUkkgJFJJIC8gJFJJOworICAgICRSSSAkUkk7
CisKKyNlbmRpZgorCiskSGluMCAkSGluViAkSGluMTsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9y
d2FyZCkKKyRCZW4wICRCZW5WICRCZW4xOyAjIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQorJFBh
bjAgJFBhblYgJFBhbjE7ICMgR3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQorJEd1ajAgJEd1alYg
JEd1ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQorJE9yaTAgJE9yaVYgJE9yaTE7ICMg
T3JpeWEgVmlyYW1hIChmb3J3YXJkKQorJFRlbDAgJFRlbFYgJFRlbDE7ICMgVGVsdWd1IFZpcmFt
YSAoZm9yd2FyZCkKKyRLYW4wICRLYW5WICRLYW4xOyAjIEthbm5hZGEgVmlyYW1hIChmb3J3YXJk
KQorJE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKKyRaV0og
JEVtb2ppRm9yU2VxczsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9q
aUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxl
dmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0
cmljayBtb2RpZmllcgorISFyZXZlcnNlOworJExGICRDUjsKKygkTCB8ICRWIHwgJExWIHwgJExW
VCkgJEw7CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRUICgkTFZUIHwgJFQpOworCisjaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCog
JFJJICRSSTsKKyAgICAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQgICAgICBbXiRDb250
cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOworCisj
ZWxzZQorCisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFNwYWNp
bmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFJJICRSSSAvICRSSSAkUkk7CisgICAg
JFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4xICRIaW5WICRIaW4wOyAjIERldmFuYWdhcmkgVmly
YW1hIChiYWNrd2FyZCkKKyRCZW4xICRCZW5WICRCZW4wOyAjIEJlbmdhbGkgVmlyYW1hIChiYWNr
d2FyZCkKKyRQYW4xICRQYW5WICRQYW4wOyAjIEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCisk
R3VqMSAkR3VqViAkR3VqMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJE9yaTEgJE9y
aVYgJE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRUZWwxICRUZWxWICRUZWww
OyAjIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQorJEthbjEgJEthblYgJEthbjA7ICMgS2FubmFk
YSBWaXJhbWEgKGJhY2t3YXJkKQorJE1hbDEgJE1hbFYgJE1hbDA7ICMgTWFsYXlhbGFtIFZpcmFt
YSAoYmFja3dhcmQpCiskRW1vamlGb3JTZXFzICRaV0o7ICMgRG9udCBicmVhayBpbiBlbW9qaSBa
V0ogc2VxdWVuY2VzCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsgIyBEb250
IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNl
bGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKworI2lmIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVAorCisgICAgISFzYWZlX3JldmVyc2U7CisgICAgJFJJICRSSSs7CisgICAgWyRFbW9q
aVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKyAg
ICAkUkkgJFJJKzsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOwor
CisjZWxzZQorCisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAg
ICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOworICAgICEhc2FmZV9yZXZl
cnNlOworICAgICEhc2FmZV9mb3J3YXJkOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVT
dHJpbmdzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkNGRkNDRhNmYyNjNmZTE2MjJiOGUxYzliZGU3OTBkNGU5
ZjYyZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CkBAIC0wLDAgKzEsMTAwIEBACisjIS91
c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK2ltcG9ydCBzeXMKK2ltcG9ydCByZQorCitoZWFkZXIgPSAiIiIvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8iIiIKKwor
CitkZWYgbWFpbihhcmd2PU5vbmUpOgorICAgIGlmIG5vdCBhcmd2OgorICAgICAgICBhcmd2ID0g
c3lzLmFyZ3YKKyAgICBzeW1ib2xOYW1lID0gYXJndlsxXVswXS5sb3dlcigpICsgYXJndlsxXVsx
Ol0KKworICAgIHByaW50KGhlYWRlcikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiLy8gRE8g
Tk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSB0aGUg
c2NyaXB0IikKKyAgICBwcmludCgiLy8gV1RGL3d0Zi90ZXh0L0dlbmVyYXRlQnJlYWtpbmdSdWxl
U3RyaW5ncy5weSIpCisgICAgcHJpbnQoIiIpCisgICAgcHJpbnQoIiNpbmNsdWRlIFwiY29uZmln
LmhcIiIpCisgICAgcHJpbnQoIiNpbmNsdWRlIDx1bmljb2RlL3V2ZXJudW0uaD4iKQorICAgIHBy
aW50KCIiKQorICAgIGlmIGxlbihhcmd2KSA+IDIgYW5kIGFyZ3ZbMl0gPT0gIi1pbmNsdWRlRGVm
aW5lcyI6CisgICAgICAgIHByaW50KCIjZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAo
UExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTEwMCkpIikKKyAgICAgICAgcHJpbnQoIiNkZWZpbmUgSEFWRV9FWFRS
QV9JQ1VfTkFNRURfU0VUUyAoKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lD
VV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KSkiKQorICAgICAgICBwcmludCgiIikKKyAgICBwcmlu
dCgibmFtZXNwYWNlIFdURiB7IikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiY29uc3QgY2hh
ciogIiArIHN5bWJvbE5hbWUgKyAiID0gIikKKworICAgIGZvciBsIGluIHN5cy5zdGRpbjoKKyAg
ICAgICAgbGluZSA9IGwucnN0cmlwKCkKKyAgICAgICAgaWYgcmUubWF0Y2goIl5ccyokIiwgbGlu
ZSk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjICIp
OgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgorICAgICAgICAg
ICAgcGFzcworICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyIpOgorICAgICAgICAgICAg
cHJpbnQobGluZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1hdGNoID0gcmUubWF0Y2go
Il4oLiopOyggIyAuKik/JCIsIGxpbmUpCisgICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSAiXCIiICsgbWF0Y2guZ3JvdXAoMSkucmVwbGFjZSgiXFwiLCAiXFxc
XCIpICsgIjtcIiIKKyAgICAgICAgICAgICAgICBpZiBtYXRjaC5ncm91cCgyKToKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIpWzM6XQorICAgICAg
ICAgICAgICAgIHByaW50KHJlc3VsdCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAgIHByaW50KCJ9IikKKworaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVw
aWxvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTg1ZDNjMWE2ZWUyMTc2MmY2NGNhZDI5
ZjdhY2VmNGIyOGEzZWFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0wLDAgKzEsMzcw
IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQUkgPSBbOkxpbmVC
cmVhayA9IEFtYmlndW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07Cisk
QkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxp
bmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlf
QnJlYWs6XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENCID0gWzpMaW5l
QnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1
bmN0dWF0aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1Ag
PSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9
IENhcnJpYWdlX1JldHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAt
ICRFWF9TVUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJB
X0lDVV9OQU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6
XTsKKworI2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNl
bmRpZgorCiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsg
PSBIMjpdOworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsg
PSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElOID0gW1s6TGlu
ZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGluZUJyZWFrID0g
SW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07Cisk
SlYgPSBbOkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYg
PSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xp
bmU6XTsKKyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQURE
XSAtICROU19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxp
bmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3Rm
aXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVt
ZXJpYzpdIC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJ
ID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhf
Q29udGV4dDpdOworJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGlu
ZUJyZWFrID0gU3BhY2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOwor
JFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBV
bmtub3duOl07CiskWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7
CiskRW1vamlWYXIgPSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKwor
ICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYz
MDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0Yz
IFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBc
VTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUw
MDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAw
MUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFG
NkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBa
V0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1c
dTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFG
M0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2
Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEt
XFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxV
MDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAw
MDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAx
RjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVy
cworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAw
MDFGNDY5IFxVMDAwMUY0OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1c
dTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFG
M0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2
Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEt
XFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxV
MDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAw
MDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0
cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAw
MDFGM0ZGXTsKKyRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsK
KyRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07CiskQUxjbSA9ICRBTFBsdXMgJENNKjsK
KyRCQWNtID0gJEJBICRDTSo7CiskQkJjbSA9ICRCQiAkQ00qOworJEIyY20gPSAkQjIgJENNKjsK
KyRDTGNtID0gJENMICRDTSo7CiskQ1BjbSA9ICRDUCAkQ00qOworJEVYY20gPSAkRVggJENNKjsK
KyRHTGNtID0gJEdMICRDTSo7CiskSExjbSA9ICRITCAkQ00qOworJEhZY20gPSAkSFkgJENNKjsK
KyRIMmNtID0gJEgyICRDTSo7CiskSDNjbSA9ICRIMyAkQ00qOworJElEY20gPSAkSUQgJENNKjsK
KyRJTmNtID0gJElOICRDTSo7CiskSVNjbSA9ICRJUyAkQ00qOworJEpMY20gPSAkSkwgJENNKjsK
KyRKVmNtID0gJEpWICRDTSo7CiskSlRjbSA9ICRKVCAkQ00qOworJE5TY20gPSAkTlMgJENNKjsK
KyROVWNtID0gJE5VICRDTSo7CiskT1BjbSA9ICRPUCAkQ00qOworJFBPY20gPSAkUE8gJENNKjsK
KyRQUmNtID0gJFBSICRDTSo7CiskUVVjbSA9ICRRVSAkQ00qOworJFJJY20gPSAkUkkgJENNKjsK
KyRTWWNtID0gJFNZICRDTSo7CiskV0pjbSA9ICRXSiAkQ00qOworCishIWZvcndhcmQ7CiskQ0FO
X0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJENBTlRfQ00gPSBbJFNQICRC
SyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAk
TkwgJFpXICRTUF07CiskQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRX
SiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOworJEFMX0ZPTExPVyA9
IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07CiskTEI0QnJlYWtzID0gWyRCSyAkQ1Ig
JExGICROTF07CiskTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOworJExCOEJyZWFr
cyA9IFskTEI0QnJlYWtzICRaV107CiskTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAt
IFskWlddXTsKKyRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07CiskTEIx
OEJyZWFrcyA9IFskTEI4QnJlYWtzICRTUF07CiskTEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJy
ZWFrcyAtICRDQl07CiskQUxQbHVzICRDTSs7CiskQkEgJENNKzsKKyRCQiAkQ00rOworJEIyICRD
TSs7CiskQ0wgJENNKzsKKyRDUCAkQ00rOworJEVYICRDTSs7CiskR0wgJENNKzsKKyRITCAkQ00r
OworJEhZICRDTSs7CiskSDIgJENNKzsKKyRIMyAkQ00rOworJElEICRDTSs7CiskSU4gJENNKzsK
KyRJUyAkQ00rOworJEpMICRDTSs7CiskSlYgJENNKzsKKyRKVCAkQ00rOworJE5TICRDTSs7Cisk
TlUgJENNKzsKKyRPUCAkQ00rOworJFBPICRDTSs7CiskUFIgJENNKzsKKyRRVSAkQ00rOworJFJJ
ICRDTSs7CiskU1kgJENNKzsKKyRXSiAkQ00rOworJENSICRMRiB7MTAwfTsKKyRMQjROb25CcmVh
a3M/ICRMQjRCcmVha3MgezEwMH07CiskQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsKKyRD
TSsgJExCNEJyZWFrcyB7MTAwfTsKKyRMQjROb25CcmVha3MgWyRTUCAkWlddOworJENBTl9DTSAk
Q00qIFskU1AgJFpXXTsKKyRDTSsgWyRTUCAkWlddOworJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/
ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsKKyRDQU5fQ00gJENNKzsKKyRDTSs7Cisk
Q0FOX0NNICRDTSogJFdKY207CiskTEI4Tm9uQnJlYWtzICRXSmNtOworJENNKyAkV0pjbTsKKyRX
SmNtICRDQU5UX0NNOworJFdKY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTl9DTSAkQ00qOwor
JEdMY20gJENBTlRfQ007CitbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENNKiAk
R0xjbTsKKyRDTSsgR0xjbTsKKyRMQjhOb25CcmVha3MgJENMOworJENBTl9DTSAkQ00qICRDTDsK
KyRDTSsgJENMOworJExCOE5vbkJyZWFrcyAkQ1A7CiskQ0FOX0NNICRDTSogJENQOworJENNKyAk
Q1A7CiskTEI4Tm9uQnJlYWtzICRFWDsKKyRDQU5fQ00gJENNKiAkRVg7CiskQ00rICRFWDsKKyRM
QjhOb25CcmVha3MgJElTOworJENBTl9DTSAkQ00qICRJUzsKKyRDTSsgJElTOworJExCOE5vbkJy
ZWFrcyAkU1k7CiskQ0FOX0NNICRDTSogJFNZOworJENNKyAkU1k7CiskT1BjbSAkU1AqICRDQU5f
Q00gJENNKjsKKyRPUGNtICRTUCogJENBTlRfQ007CiskT1BjbSAkU1ArICRDTSsgJEFMX0ZPTExP
Vz87CiskUVVjbSAkU1AqICRPUGNtOworKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207CiskQjJj
bSAkU1AqICRCMmNtOworJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsKKyRDTSsgJFFVY207Cisk
UVVjbSAuPzsKKyRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7CiskTEIyME5vbkJyZWFrcyAkQ00q
ICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAKKyRCQmNtIFteJENCXTsKKyRCQmNtICRMQjIwTm9u
QnJlYWtzICRDTSo7CiskSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsKKyRTWWNtICRITGNt
OworKCRBTGNtIHwgJEhMY20pICRJTmNtOworJENNKyAkSU5jbTsKKyRFWGNtICRJTmNtOworJElE
Y20gJElOY207CiskSU5jbSAkSU5jbTsKKyROVWNtICRJTmNtOworJElEY20gJFBPY207CiskQUxj
bSAkTlVjbTsKKyRITGNtICROVWNtOworJENNKyAkTlVjbTsKKyROVWNtICRBTGNtOworJE5VY20g
JEhMY207CiskUFJjbSAkSURjbTsKKyRQUmNtICgkQUxjbSB8ICRITGNtKTsKKyRQT2NtICgkQUxj
bSB8ICRITGNtKTsKKygkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5V
Y20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/Owor
JEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkSlZjbSB8ICRIMmNtKSAo
JEpWY20gfCAkSlRjbSk7CisoJEpUY20gfCAkSDNjbSkgJEpUY207CisoJEpMY20gfCAkSlZjbSB8
ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwg
JEgyY20gfCAkSDNjbSkgJFBPY207CiskUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgy
Y20gfCAkSDNjbSk7CisoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOworJENNKyAoJEFM
Y20gfCAkSExjbSk7CiskSVNjbSAoJEFMY20gfCAkSExjbSk7CisoJEFMY20gfCAkSExjbSB8ICRO
VWNtKSAkT1BjbTsKKyRDTSsgJE9QY207CiskQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsK
KworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJY20gJFJJY207CisKKyNl
bmRpZgorCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsKKworISFyZXZlcnNl
OworJENNKyAkQUxQbHVzOworJENNKyAkQkE7CiskQ00rICRCQjsKKyRDTSsgJEIyOworJENNKyAk
Q0w7CiskQ00rICRDUDsKKyRDTSsgJEVYOworJENNKyAkR0w7CiskQ00rICRITDsKKyRDTSsgJEhZ
OworJENNKyAkSDI7CiskQ00rICRIMzsKKyRDTSsgJElEOworJENNKyAkSU47CiskQ00rICRJUzsK
KyRDTSsgJEpMOworJENNKyAkSlY7CiskQ00rICRKVDsKKyRDTSsgJE5TOworJENNKyAkTlU7Cisk
Q00rICRPUDsKKyRDTSsgJFBPOworJENNKyAkUFI7CiskQ00rICRRVTsKKworI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKyAkUkk7CisKKyNlbmRpZgorCiskQ00rICRTWTsK
KyRDTSsgJFdKOworJENNKzsKKyRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRa
VyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFsk
QUwge2VvZn1dKSk7CitbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9
XTsKKyRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENNXTsKKyRMQjRCcmVha3MgJENNKyAkQ0FO
X0NNOworJExGICRDUjsKK1skU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOworWyRTUCAkWldd
ICRDTSsgJENBTl9DTTsKKyRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/
ICRFbW9qaUZvclNlcXM7CiskQ00rICRDQU5fQ007CiskQ00qICRXSiAkQ00qICRDQU5fQ007Cisk
Q00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOworJENBTlRfQ00gJENNKiAkV0o7CiskQ00qICRD
QU5fQ00gJENNKiAkV0o7CiskQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRC
QSAkSFldXTsKKyRDQU5UX0NNICRDTSogJEdMOworJENNKiAkQ0FOX0NNICRDTSogJEdMOworJENM
ICRDTSsgJENBTl9DTTsKKyRDUCAkQ00rICRDQU5fQ007CiskRVggJENNKyAkQ0FOX0NNOworJElT
ICRDTSsgJENBTl9DTTsKKyRTWSAkQ00rICRDQU5fQ007CiskQ0wgWyRMQjhOb25CcmVha3MtJENN
XTsKKyRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOworJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07Cisk
SVMgWyRMQjhOb25CcmVha3MtJENNXTsKKyRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOworWyRDTCAk
Q1AgJEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgCiskQ00qICRDQU5fQ00gJFNQKiAk
Q00qICRPUDsKKyRDQU5UX0NNICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XPyAkQ00rICRTUCAk
U1AqICRDTSogJE9QOworJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRDTSog
JEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskU1kgJENNICRTUCsgJE9QOworJENN
KiAkT1AgJFNQKiAkQ00qICRRVTsKKyRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsKKyRD
TSogJEIyICRTUCogJENNKiAkQjI7CiskQ00qICRRVSAkQ00qICRDQU5fQ007CiskQ00qICRRVSAk
TEIxOE5vbkJyZWFrczsKKyRDTSogJENBTl9DTSAkQ00qICRRVTsKKyRDQU5UX0NNICRDTSogJFFV
OworJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOworJENN
KiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICRCQjsKK1teJENC
XSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworJENNKiAkSEwgJENNKiAkU1k7CiskQ00qICRJ
TiAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogJElOICRDTSogJEVYOworJENNKiAkSU4gJENN
KiAkSUQ7CiskQ00qICRJTiAkQ00qICRJTjsKKyRDTSogJElOICRDTSogJE5VOworJENNKiAkUE8g
JENNKiAkSUQ7CiskQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMg
fCAkSEwpICRDTSogJE5VOworJENNKiAkSUQgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhM
KSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOworKCRDTSogKCRQUiB8
ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENN
KiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OworJENNKiAoJEgz
IHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsKKyRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgy
IHwgJEpWKTsKKyRDTSogJEpUICRDTSogKCRIMyB8ICRKVCk7CiskQ00qICRJTiAkQ00qICgkSDMg
fCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpU
IHwgJEpWIHwgJEpMKTsKKyRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAk
UFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRB
TFBsdXMgfCAkSEwpICRDTSogJElTOworJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8ICRO
VSk7CiskQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsKKworI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKiAkUkkgJENNKiAkUkk7CisKKyNlbmRpZgorCisk
RW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsKKworISFzYWZlX2ZvcndhcmQ7Citb
JENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14k
Q00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07CiskZGljdGlv
bmFyeSAkZGljdGlvbmFyeTsKKyAgICAKKyEhc2FmZV9yZXZlcnNlOworJENNKyBbXiRDTSAkQksg
JENSICRMRiAkTkwgJFpXICRTUF07CiskQ00rICRTUCAvIC47CiskU1ArICRDTSogJE9QOworJFNQ
KyAkQ00qICRRVTsKKyRTUCsgJENNKiAoJENMIHwgJENQKTsKKyRTUCsgJENNKiAkQjI7CiskQ00q
ICgkSFkgfCAkQkEpICRDTSogJEhMOworKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsKKygk
Q0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7CiskZGljdGlvbmFyeSAkZGljdGlvbmFy
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclByb2xvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjg4MzU1NjMxZTQz
NzkyZDNmM2M5MjMzMzcyNzY2YWNkZWMxYjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0CkBA
IC0wLDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyEh
Y2hhaW47CishIUxCQ01Ob0NoYWluOworISFsb29rQWhlYWRIYXJkQnJlYWs7CisKKyNpZiBIQVZF
X0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkQ0ogPSBbOkxpbmVCcmVhaz1Db25kaXRpb25h
bF9KYXBhbmVzZV9TdGFydGVyOl07CisKKyNlbHNlCisKKyAgICAkQ0ogPSBbXHUzMDQxXHUzMDQz
XHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhFXHUzMDk1XHUz
MDk2XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3XHUzMEE5XHUzMEMzXHUzMEUzXHUzMEU1XHUzMEU3
XHUzMEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYwXHUzMUYxXHUzMUYyXHUzMUYzXHUzMUY0XHUz
MUY1XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUzMUZBXHUzMUZCXHUzMUZDXHUzMUZEXHUzMUZF
XHUzMUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZBXHVGRjZCXHVGRjZDXHVGRjZEXHVGRjZFXHVG
RjZGXHVGRjcwXTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzBiY2U1ZWU5ZTY3OTY5YmM4NmIwODc1MDY2MTU0ZjdmYzM5MzE2MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Q0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7
CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0g
W1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0g
WyRDSiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTAzZTUxMWViOTg0ZmNhYTY0ODU0NGFj
Y2VlZjZlNzgxNTg4MDFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKQEAgLTAsMCAr
MSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9
IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9IFtcdTAwMjFcdTAwM0ZcdUZGMDFcdUZGMUZdOwor
JElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NVQiA9IFtcdTAw
M0FcdTAwM0JdOworJE5TX1NVQiA9IFtcdTIwM0NcdTIwNDdcdTIwNDhcdTIwNDlcdTMwMDVcdTMw
MUNcdTMwM0JcdTMwOURcdTMwOUVcdTMwQTBcdTMwRkJcdTMwRkRcdTMwRkVcdUZGMUFcdUZGMUJc
dUZGNjVdOworJFBPX1NVQiA9IFtcdTAwMjVcdTAwQTJcdTAwQjBcdTIwMzBcdTIwMzJcdTIwMzNc
dTIxMDNcdUZGMDVcdUZGRTBdOworJFBSX1NVQiA9IFtcdTAwMjRcdTAwQTNcdTAwQTVcdTIwQUNc
dTIxMTZcdUZGMDRcdUZGRTFcdUZGRTVdOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VC
ICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07CiskTlNfQUREID0gJyc7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZmOGU4ZTFiNWI2NWJjNjM0M2I1MDEyZDhmOTlkODQ0YTQwNGFkZGYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VC
ID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gJyc7CiskTlNfU1VC
ID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBGRFx1MzBGRV07CiskUE9fU1VCID0gJyc7
CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJdOworJE5TX0FE
RCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2
ZWFiNjk0OTg2ZWY4MmQ5YWI5NWZiMTliNDM1MmI2NjJkMjYzZGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOwor
JElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcn
OworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYmNlNWVlOWU2
Nzk2OWJjODZiMDg3NTA2NjE1NGY3ZmMzOTMxNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
IyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9
ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMw
QTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NV
QiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDk0NTgyY2NlOWZkNGQwN2Q5ODdlMzk5ZWM5
NzUyMjczYjRkYmU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0CkBAIC0wLDAg
KzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIg
PSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19T
VUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJ
RF9BREQgPSBbJENKXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJi
NjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CkBAIC0wLDAgKzEsMzMg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsK
KyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAn
JzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQg
PSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJi
NjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CkBAIC0wLDAgKzEs
MzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAn
JzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIg
PSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9B
REQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvY21lbW9yeS5oIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL2dlbmJyay9jbWVtb3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE4MmI1YWE3ZDE2Njkz
MDA2OWQ1MjQyM2M3YTM3M2U3MmNlYjUyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvY21lbW9yeS5oCkBAIC0wLDAgKzEsNjAwIEBA
CisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIw
MTUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQg
b3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor
KgorKiBGaWxlIENNRU1PUlkuSAorKgorKiAgQ29udGFpbnMgc3RkbGliLmgvc3RyaW5nLmggbWVt
b3J5IGZ1bmN0aW9ucworKgorKiBAYXV0aG9yICAgICAgIEJlcnRyYW5kIEEuIERhbWliYQorKgor
KiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBE
ZXNjcmlwdGlvbgorKiAgIDYvMjAvOTggICAgIEJlcnRyYW5kICAgIENyZWF0ZWQuCisqICAwNS8w
My85OSAgICAgc3RlcGhlbiAgICAgQ2hhbmdlZCBmcm9tIGZ1bmN0aW9ucyB0byBtYWNyb3MuCisq
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgQ01FTU9SWV9ICisjZGVmaW5l
IENNRU1PUllfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworI2luY2x1ZGUgPHN0
ZGRlZi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgInVuaWNvZGUvbG9jYWxwb2lu
dGVyLmgiCisKKyNpZiBVX0RFQlVHICYmIGRlZmluZWQoVVBSVl9NQUxMT0NfQ09VTlQpCisjaW5j
bHVkZSA8c3RkaW8uaD4KKyNlbmRpZgorCisjaWYgVV9ERUJVRworCisvKgorICogVGhlIEMrKyBz
dGFuZGFyZCByZXF1aXJlcyB0aGF0IHRoZSBzb3VyY2UgcG9pbnRlciBmb3IgbWVtY3B5KCkgJiBt
ZW1tb3ZlKCkKKyAqIGlzIHZhbGlkLCBub3QgTlVMTCwgYW5kIG5vdCBhdCB0aGUgZW5kIG9mIGFu
IGFsbG9jYXRlZCBtZW1vcnkgYmxvY2suCisgKiBJbiBkZWJ1ZyBtb2RlLCB3ZSByZWFkIG9uZSBi
eXRlIGZyb20gdGhlIHNvdXJjZSBwb2ludCB0byB2ZXJpZnkgdGhhdCBpdCdzCisgKiBhIHZhbGlk
LCByZWFkYWJsZSBwb2ludGVyLgorICovCisKK1VfQ0FQSSB2b2lkIHVwcnZfY2hlY2tWYWxpZE1l
bW9yeShjb25zdCB2b2lkICpwLCBzaXplX3Qgbik7CisKKyNkZWZpbmUgdXBydl9tZW1jcHkoZHN0
LCBzcmMsIHNpemUpICggXAorICAgIHVwcnZfY2hlY2tWYWxpZE1lbW9yeShzcmMsIDEpLCBcCisg
ICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIG1lbWNweShkc3QsIHNyYywgc2l6ZSkpCisjZGVm
aW5lIHVwcnZfbWVtbW92ZShkc3QsIHNyYywgc2l6ZSkgKCBcCisgICAgdXBydl9jaGVja1ZhbGlk
TWVtb3J5KHNyYywgMSksIFwKKyAgICBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0UgbWVtbW92ZShk
c3QsIHNyYywgc2l6ZSkpCisKKyNlbHNlCisKKyNkZWZpbmUgdXBydl9tZW1jcHkoZHN0LCBzcmMs
IHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBtZW1jcHkoZHN0LCBzcmMsIHNpemUpCisj
ZGVmaW5lIHVwcnZfbWVtbW92ZShkc3QsIHNyYywgc2l6ZSkgVV9TVEFOREFSRF9DUFBfTkFNRVNQ
QUNFIG1lbW1vdmUoZHN0LCBzcmMsIHNpemUpCisKKyNlbmRpZiAgLyogVV9ERUJVRyAqLworCisv
KioKKyAqIFxkZWYgVVBSVl9MRU5HVEhPRgorICogQ29udmVuaWVuY2UgbWFjcm8gdG8gZGV0ZXJt
aW5lIHRoZSBsZW5ndGggb2YgYSBmaXhlZCBhcnJheSBhdCBjb21waWxlLXRpbWUuCisgKiBAcGFy
YW0gYXJyYXkgQSBmaXhlZCBsZW5ndGggYXJyYXkKKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0
aGUgYXJyYXksIGluIGVsZW1lbnRzCisgKiBAaW50ZXJuYWwKKyAqLworI2RlZmluZSBVUFJWX0xF
TkdUSE9GKGFycmF5KSAoaW50MzJfdCkoc2l6ZW9mKGFycmF5KS9zaXplb2YoKGFycmF5KVswXSkp
CisjZGVmaW5lIHVwcnZfbWVtc2V0KGJ1ZmZlciwgbWFyaywgc2l6ZSkgVV9TVEFOREFSRF9DUFBf
TkFNRVNQQUNFIG1lbXNldChidWZmZXIsIG1hcmssIHNpemUpCisjZGVmaW5lIHVwcnZfbWVtY21w
KGJ1ZmZlcjEsIGJ1ZmZlcjIsIHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBtZW1jbXAo
YnVmZmVyMSwgYnVmZmVyMixzaXplKQorCitVX0NBUEkgdm9pZCAqIFVfRVhQT1JUMgordXBydl9t
YWxsb2Moc2l6ZV90IHMpIFVfTUFMTE9DX0FUVFIgVV9BTExPQ19TSVpFX0FUVFIoMSk7CisKK1Vf
Q0FQSSB2b2lkICogVV9FWFBPUlQyCit1cHJ2X3JlYWxsb2Modm9pZCAqbWVtLCBzaXplX3Qgc2l6
ZSkgVV9BTExPQ19TSVpFX0FUVFIoMik7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordXBydl9m
cmVlKHZvaWQgKm1lbSk7CisKK1VfQ0FQSSB2b2lkICogVV9FWFBPUlQyCit1cHJ2X2NhbGxvYyhz
aXplX3QgbnVtLCBzaXplX3Qgc2l6ZSkgVV9NQUxMT0NfQVRUUiBVX0FMTE9DX1NJWkVfQVRUUjIo
MSwyKTsKKworLyoqCisgKiBUaGlzIHNob3VsZCBhbGlnbiB0aGUgbWVtb3J5IHByb3Blcmx5IG9u
IGFueSBtYWNoaW5lLgorICogVGhpcyBpcyB2ZXJ5IHVzZWZ1bCBmb3IgdGhlIHNhZmVDbG9uZSBm
dW5jdGlvbnMuCisgKi8KK3R5cGVkZWYgdW5pb24geworICAgIGxvbmcgICAgdDE7CisgICAgZG91
YmxlICB0MjsKKyAgICB2b2lkICAgKnQzOworfSBVQWxpZ25lZE1lbW9yeTsKKworLyoqCisgKiBH
ZXQgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2YgYSBwb2ludGVyIChhIG1lbW9yeSBhZGRy
ZXNzKS4KKyAqIEZvciBleGFtcGxlLCB3aXRoIGEgbWFzayBvZiAzLCB0aGUgbWFjcm8gZ2V0cyB0
aGUgMiBsZWFzdCBzaWduaWZpY2FudCBiaXRzLAorICogd2hpY2ggd2lsbCBiZSAwIGlmIHRoZSBw
b2ludGVyIGlzIDMyLWJpdCAoNC1ieXRlKSBhbGlnbmVkLgorICoKKyAqIHB0cmRpZmZfdCBpcyB0
aGUgbW9zdCBhcHByb3ByaWF0ZSBpbnRlZ2VyIHR5cGUgdG8gY2FzdCB0by4KKyAqIHNpemVfdCBz
aG91bGQgd29yayB0b28sIHNpbmNlIG9uIG1vc3QgKG9yIGFsbD8pIHBsYXRmb3JtcyBpdCBoYXMg
dGhlIHNhbWUKKyAqIHdpZHRoIGFzIHB0cmRpZmZfdC4KKyAqLworI2RlZmluZSBVX1BPSU5URVJf
TUFTS19MU0IocHRyLCBtYXNrKSAoKChwdHJkaWZmX3QpKGNoYXIgKikocHRyKSkgJiAobWFzaykp
CisKKy8qKgorICogR2V0IHRoZSBhbW91bnQgb2YgYnl0ZXMgdGhhdCBhIHBvaW50ZXIgaXMgb2Zm
IGJ5IGZyb20KKyAqIHRoZSBwcmV2aW91cyBVQWxpZ25lZE1lbW9yeS1hbGlnbmVkIHBvaW50ZXIu
CisgKi8KKyNkZWZpbmUgVV9BTElHTk1FTlRfT0ZGU0VUKHB0cikgVV9QT0lOVEVSX01BU0tfTFNC
KHB0ciwgc2l6ZW9mKFVBbGlnbmVkTWVtb3J5KSAtIDEpCisKKy8qKgorICogR2V0IHRoZSBhbW91
bnQgb2YgYnl0ZXMgdG8gYWRkIHRvIGEgcG9pbnRlcgorICogaW4gb3JkZXIgdG8gZ2V0IHRoZSBu
ZXh0IFVBbGlnbmVkTWVtb3J5LWFsaWduZWQgYWRkcmVzcy4KKyAqLworI2RlZmluZSBVX0FMSUdO
TUVOVF9PRkZTRVRfVVAocHRyKSAoc2l6ZW9mKFVBbGlnbmVkTWVtb3J5KSAtIFVfQUxJR05NRU5U
X09GRlNFVChwdHIpKQorCisvKioKKyAgKiAgSGVhcCBjbGVhbiB1cCBmdW5jdGlvbiwgY2FsbGVk
IGZyb20gdV9jbGVhbnVwKCkKKyAgKiAgICBDbGVhcnMgYW55IHVzZXIgaGVhcCBmdW5jdGlvbnMg
ZnJvbSB1X3NldE1lbW9yeUZ1bmN0aW9ucygpCisgICogICAgRG9lcyBOT1QgZGVhbGxvY2F0ZSBh
bnkgcmVtYWluaW5nIGFsbG9jYXRlZCBtZW1vcnkuCisgICovCitVX0NGVU5DIFVCb29sIAorY21l
bW9yeV9jbGVhbnVwKHZvaWQpOworCisvKioKKyAqIEEgZnVuY3Rpb24gY2FsbGVkIGJ5IDxUVD51
aGFzaF9yZW1vdmU8L1RUPiwKKyAqIDxUVD51aGFzaF9jbG9zZTwvVFQ+LCBvciA8VFQ+dWhhc2hf
cHV0PC9UVD4gdG8gZGVsZXRlCisgKiBhbiBleGlzdGluZyBrZXkgb3IgdmFsdWUuCisgKiBAcGFy
YW0gb2JqIEEga2V5IG9yIHZhbHVlIHN0b3JlZCBpbiBhIGhhc2h0YWJsZQorICogQHNlZSB1cHJ2
X2RlbGV0ZVVPYmplY3QKKyAqLwordHlwZWRlZiB2b2lkIFVfQ0FMTENPTlYgVU9iamVjdERlbGV0
ZXIodm9pZCogb2JqKTsKKworLyoqCisgKiBEZWxldGVyIGZvciBVT2JqZWN0IGluc3RhbmNlcy4K
KyAqIFdvcmtzIGZvciBhbGwgc3ViY2xhc3NlcyBvZiBVT2JqZWN0IGJlY2F1c2UgaXQgaGFzIGEg
dmlydHVhbCBkZXN0cnVjdG9yLgorICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VwcnZfZGVs
ZXRlVU9iamVjdCh2b2lkICpvYmopOworCisjaWZkZWYgX19jcGx1c3BsdXMKKworVV9OQU1FU1BB
Q0VfQkVHSU4KKworLyoqCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGRlbGV0ZXMgbWVtb3J5
IHZpYSB1cHJ2X2ZyZWUoKS4KKyAqIEZvciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50
ZXJCYXNlIGJhc2UgY2xhc3MuCisgKiBBZGRzIG9wZXJhdG9yW10gZm9yIGFycmF5IGl0ZW0gYWNj
ZXNzLgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVyQmFzZQorICovCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgorY2xhc3MgTG9jYWxNZW1vcnkgOiBwdWJsaWMgTG9jYWxQb2ludGVyQmFzZTxUPiB7Citw
dWJsaWM6CisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgdGFrZXMgb3duZXJzaGlwLgorICAg
ICAqIEBwYXJhbSBwIHNpbXBsZSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFQgaXRlbXMgdGhhdCBp
cyBhZG9wdGVkCisgICAgICovCisgICAgZXhwbGljaXQgTG9jYWxNZW1vcnkoVCAqcD1OVUxMKSA6
IExvY2FsUG9pbnRlckJhc2U8VD4ocCkge30KKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yIGRl
bGV0ZXMgdGhlIG1lbW9yeSBpdCBvd25zLgorICAgICAqLworICAgIH5Mb2NhbE1lbW9yeSgpIHsK
KyAgICAgICAgdXBydl9mcmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7CisgICAgfQorICAg
IC8qKgorICAgICAqIERlbGV0ZXMgdGhlIGFycmF5IGl0IG93bnMsCisgICAgICogYW5kIGFkb3B0
cyAodGFrZXMgb3duZXJzaGlwIG9mKSB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0g
cCBzaW1wbGUgcG9pbnRlciB0byBhbiBhcnJheSBvZiBUIGl0ZW1zIHRoYXQgaXMgYWRvcHRlZAor
ICAgICAqLworICAgIHZvaWQgYWRvcHRJbnN0ZWFkKFQgKnApIHsKKyAgICAgICAgdXBydl9mcmVl
KExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7CisgICAgICAgIExvY2FsUG9pbnRlckJhc2U8VD46
OnB0cj1wOworICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSBpdCBvd25z
LCBhbGxvY2F0ZXMgYSBuZXcgb25lIGFuZCByZXNldCBpdHMgYnl0ZXMgdG8gMC4KKyAgICAgKiBS
ZXR1cm5zIHRoZSBuZXcgYXJyYXkgcG9pbnRlci4KKyAgICAgKiBJZiB0aGUgYWxsb2NhdGlvbiBm
YWlscywgdGhlbiB0aGUgY3VycmVudCBhcnJheSBpcyB1bmNoYW5nZWQgYW5kCisgICAgICogdGhp
cyBtZXRob2QgcmV0dXJucyBOVUxMLgorICAgICAqIEBwYXJhbSBuZXdDYXBhY2l0eSBtdXN0IGJl
ID4wCisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIGFycmF5IHBvaW50ZXIsIG9yIE5VTEwg
aWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIFQgKmFsbG9jYXRl
SW5zdGVhZEFuZFJlc2V0KGludDMyX3QgbmV3Q2FwYWNpdHk9MSk7CisgICAgLyoqCisgICAgICog
RGVsZXRlcyB0aGUgYXJyYXkgaXQgb3ducyBhbmQgYWxsb2NhdGVzIGEgbmV3IG9uZSwgY29weWlu
ZyBsZW5ndGggVCBpdGVtcy4KKyAgICAgKiBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgcG9pbnRlci4K
KyAgICAgKiBJZiB0aGUgYWxsb2NhdGlvbiBmYWlscywgdGhlbiB0aGUgY3VycmVudCBhcnJheSBp
cyB1bmNoYW5nZWQgYW5kCisgICAgICogdGhpcyBtZXRob2QgcmV0dXJucyBOVUxMLgorICAgICAq
IEBwYXJhbSBuZXdDYXBhY2l0eSBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxlbmd0aCBudW1i
ZXIgb2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRvIHRoZSBuZXcg
b25lOworICAgICAqICAgICAgICAgICAgICAgbXVzdCBiZSBubyBtb3JlIHRoYW4gdGhlIGNhcGFj
aXR5IG9mIHRoZSBvbGQgYXJyYXksCisgICAgICogICAgICAgICAgICAgICB3aGljaCB0aGUgY2Fs
bGVyIG11c3QgdHJhY2sgYmVjYXVzZSB0aGUgTG9jYWxNZW1vcnkgZG9lcyBub3QgdHJhY2sgaXQK
KyAgICAgKiBAcmV0dXJuIHRoZSBhbGxvY2F0ZWQgYXJyYXkgcG9pbnRlciwgb3IgTlVMTCBpZiB0
aGUgYWxsb2NhdGlvbiBmYWlsZWQKKyAgICAgKi8KKyAgICBpbmxpbmUgVCAqYWxsb2NhdGVJbnN0
ZWFkQW5kQ29weShpbnQzMl90IG5ld0NhcGFjaXR5PTEsIGludDMyX3QgbGVuZ3RoPTApOworICAg
IC8qKgorICAgICAqIEFycmF5IGl0ZW0gYWNjZXNzICh3cml0YWJsZSkuCisgICAgICogTm8gaW5k
ZXggYm91bmRzIGNoZWNrLgorICAgICAqIEBwYXJhbSBpIGFycmF5IGluZGV4CisgICAgICogQHJl
dHVybiByZWZlcmVuY2UgdG8gdGhlIGFycmF5IGl0ZW0KKyAgICAgKi8KKyAgICBUICZvcGVyYXRv
cltdKHB0cmRpZmZfdCBpKSBjb25zdCB7IHJldHVybiBMb2NhbFBvaW50ZXJCYXNlPFQ+OjpwdHJb
aV07IH0KK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgVCAqTG9jYWxNZW1vcnk8
VD46OmFsbG9jYXRlSW5zdGVhZEFuZFJlc2V0KGludDMyX3QgbmV3Q2FwYWNpdHkpIHsKKyAgICBp
ZihuZXdDYXBhY2l0eT4wKSB7CisgICAgICAgIFQgKnA9KFQgKil1cHJ2X21hbGxvYyhuZXdDYXBh
Y2l0eSpzaXplb2YoVCkpOworICAgICAgICBpZihwIT1OVUxMKSB7CisgICAgICAgICAgICB1cHJ2
X21lbXNldChwLCAwLCBuZXdDYXBhY2l0eSpzaXplb2YoVCkpOworICAgICAgICAgICAgdXBydl9m
cmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7CisgICAgICAgICAgICBMb2NhbFBvaW50ZXJC
YXNlPFQ+OjpwdHI9cDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcDsKKyAgICB9IGVsc2Ug
eworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKwordGVtcGxhdGU8dHlwZW5hbWUg
VD4KK2lubGluZSBUICpMb2NhbE1lbW9yeTxUPjo6YWxsb2NhdGVJbnN0ZWFkQW5kQ29weShpbnQz
Ml90IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aCkgeworICAgIGlmKG5ld0NhcGFjaXR5PjAp
IHsKKyAgICAgICAgVCAqcD0oVCAqKXVwcnZfbWFsbG9jKG5ld0NhcGFjaXR5KnNpemVvZihUKSk7
CisgICAgICAgIGlmKHAhPU5VTEwpIHsKKyAgICAgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAg
ICAgICAgICAgICAgaWYobGVuZ3RoPm5ld0NhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgICAg
IGxlbmd0aD1uZXdDYXBhY2l0eTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
dXBydl9tZW1jcHkocCwgTG9jYWxQb2ludGVyQmFzZTxUPjo6cHRyLCBsZW5ndGgqc2l6ZW9mKFQp
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHVwcnZfZnJlZShMb2NhbFBvaW50ZXJCYXNl
PFQ+OjpwdHIpOworICAgICAgICAgICAgTG9jYWxQb2ludGVyQmFzZTxUPjo6cHRyPXA7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIHA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5V
TEw7CisgICAgfQorfQorCisvKioKKyAqIFNpbXBsZSBhcnJheS9idWZmZXIgbWFuYWdlbWVudCBj
bGFzcyB1c2luZyB1cHJ2X21hbGxvYygpIGFuZCB1cHJ2X2ZyZWUoKS4KKyAqIFByb3ZpZGVzIGFu
IGludGVybmFsIGFycmF5IHdpdGggZml4ZWQgY2FwYWNpdHkuIENhbiBhbGlhcyBhbm90aGVyIGFy
cmF5CisgKiBvciBhbGxvY2F0ZSBvbmUuCisgKgorICogVGhlIGFycmF5IGFkZHJlc3MgaXMgcHJv
cGVybHkgYWxpZ25lZCBmb3IgdHlwZSBULiBJdCBtaWdodCBub3QgYmUgcHJvcGVybHkKKyAqIGFs
aWduZWQgZm9yIHR5cGVzIGxhcmdlciB0aGFuIFQgKG9yIGxhcmdlciB0aGFuIHRoZSBsYXJnZXN0
IHN1YnR5cGUgb2YgVCkuCisgKgorICogVW5saWtlIExvY2FsTWVtb3J5IGFuZCBMb2NhbEFycmF5
LCB0aGlzIGNsYXNzIG5ldmVyIGFkb3B0cworICogKHRha2VzIG93bmVyc2hpcCBvZikgYW5vdGhl
ciBhcnJheS4KKyAqLwordGVtcGxhdGU8dHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5
PgorY2xhc3MgTWF5YmVTdGFja0FycmF5IHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiBEZWZh
dWx0IGNvbnN0cnVjdG9yIGluaXRpYWxpemVzIHdpdGggaW50ZXJuYWwgVFtzdGFja0NhcGFjaXR5
XSBidWZmZXIuCisgICAgICovCisgICAgTWF5YmVTdGFja0FycmF5KCkgOiBwdHIoc3RhY2tBcnJh
eSksIGNhcGFjaXR5KHN0YWNrQ2FwYWNpdHkpLCBuZWVkVG9SZWxlYXNlKEZBTFNFKSB7fQorICAg
IC8qKgorICAgICAqIERlc3RydWN0b3IgZGVsZXRlcyB0aGUgYXJyYXkgKGlmIG93bmVkKS4KKyAg
ICAgKi8KKyAgICB+TWF5YmVTdGFja0FycmF5KCkgeyByZWxlYXNlQXJyYXkoKTsgfQorICAgIC8q
KgorICAgICAqIFJldHVybnMgdGhlIGFycmF5IGNhcGFjaXR5IChudW1iZXIgb2YgVCBpdGVtcyku
CisgICAgICogQHJldHVybiBhcnJheSBjYXBhY2l0eQorICAgICAqLworICAgIGludDMyX3QgZ2V0
Q2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBjYXBhY2l0eTsgfQorICAgIC8qKgorICAgICAqIEFj
Y2VzcyB3aXRob3V0IG93bmVyc2hpcCBjaGFuZ2UuCisgICAgICogQHJldHVybiB0aGUgYXJyYXkg
cG9pbnRlcgorICAgICAqLworICAgIFQgKmdldEFsaWFzKCkgY29uc3QgeyByZXR1cm4gcHRyOyB9
CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYXJyYXkgbGltaXQuIFNpbXBsZSBjb252ZW5p
ZW5jZSBtZXRob2QuCisgICAgICogQHJldHVybiBnZXRBbGlhcygpK2dldENhcGFjaXR5KCkKKyAg
ICAgKi8KKyAgICBUICpnZXRBcnJheUxpbWl0KCkgY29uc3QgeyByZXR1cm4gZ2V0QWxpYXMoKStj
YXBhY2l0eTsgfQorICAgIC8vIE5vICJvcGVyYXRvciBUICooKSBjb25zdCIgYmVjYXVzZSB0aGF0
IGNhbiBtYWtlCisgICAgLy8gZXhwcmVzc2lvbnMgbGlrZSBtYnNbaW5kZXhdIGFtYmlndW91cyBm
b3Igc29tZSBjb21waWxlcnMuCisgICAgLyoqCisgICAgICogQXJyYXkgaXRlbSBhY2Nlc3MgKGNv
bnN0KS4KKyAgICAgKiBObyBpbmRleCBib3VuZHMgY2hlY2suCisgICAgICogQHBhcmFtIGkgYXJy
YXkgaW5kZXgKKyAgICAgKiBAcmV0dXJuIHJlZmVyZW5jZSB0byB0aGUgYXJyYXkgaXRlbQorICAg
ICAqLworICAgIGNvbnN0IFQgJm9wZXJhdG9yW10ocHRyZGlmZl90IGkpIGNvbnN0IHsgcmV0dXJu
IHB0cltpXTsgfQorICAgIC8qKgorICAgICAqIEFycmF5IGl0ZW0gYWNjZXNzICh3cml0YWJsZSku
CisgICAgICogTm8gaW5kZXggYm91bmRzIGNoZWNrLgorICAgICAqIEBwYXJhbSBpIGFycmF5IGlu
ZGV4CisgICAgICogQHJldHVybiByZWZlcmVuY2UgdG8gdGhlIGFycmF5IGl0ZW0KKyAgICAgKi8K
KyAgICBUICZvcGVyYXRvcltdKHB0cmRpZmZfdCBpKSB7IHJldHVybiBwdHJbaV07IH0KKyAgICAv
KioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSAoaWYgb3duZWQpIGFuZCBhbGlhc2VzIGFub3Ro
ZXIgb25lLCBubyB0cmFuc2ZlciBvZiBvd25lcnNoaXAuCisgICAgICogSWYgdGhlIGFyZ3VtZW50
cyBhcmUgaWxsZWdhbCwgdGhlbiB0aGUgY3VycmVudCBhcnJheSBpcyB1bmNoYW5nZWQuCisgICAg
ICogQHBhcmFtIG90aGVyQXJyYXkgbXVzdCBub3QgYmUgTlVMTAorICAgICAqIEBwYXJhbSBvdGhl
ckNhcGFjaXR5IG11c3QgYmUgPjAKKyAgICAgKi8KKyAgICB2b2lkIGFsaWFzSW5zdGVhZChUICpv
dGhlckFycmF5LCBpbnQzMl90IG90aGVyQ2FwYWNpdHkpIHsKKyAgICAgICAgaWYob3RoZXJBcnJh
eSE9TlVMTCAmJiBvdGhlckNhcGFjaXR5PjApIHsKKyAgICAgICAgICAgIHJlbGVhc2VBcnJheSgp
OworICAgICAgICAgICAgcHRyPW90aGVyQXJyYXk7CisgICAgICAgICAgICBjYXBhY2l0eT1vdGhl
ckNhcGFjaXR5OworICAgICAgICAgICAgbmVlZFRvUmVsZWFzZT1GQUxTRTsKKyAgICAgICAgfQor
ICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSAoaWYgb3duZWQpIGFuZCBh
bGxvY2F0ZXMgYSBuZXcgb25lLCBjb3B5aW5nIGxlbmd0aCBUIGl0ZW1zLgorICAgICAqIFJldHVy
bnMgdGhlIG5ldyBhcnJheSBwb2ludGVyLgorICAgICAqIElmIHRoZSBhbGxvY2F0aW9uIGZhaWxz
LCB0aGVuIHRoZSBjdXJyZW50IGFycmF5IGlzIHVuY2hhbmdlZCBhbmQKKyAgICAgKiB0aGlzIG1l
dGhvZCByZXR1cm5zIE5VTEwuCisgICAgICogQHBhcmFtIG5ld0NhcGFjaXR5IGNhbiBiZSBsZXNz
IHRoYW4gb3IgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGNhcGFjaXR5OworICAgICAqICAgICAg
ICAgICAgICAgICAgICBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxlbmd0aCBudW1iZXIgb2Yg
VCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRvIHRoZSBuZXcgb25lCisg
ICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIGFycmF5IHBvaW50ZXIsIG9yIE5VTEwgaWYgdGhl
IGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIFQgKnJlc2l6ZShpbnQzMl90
IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aD0wKTsKKyAgICAvKioKKyAgICAgKiBHaXZlcyB1
cCBvd25lcnNoaXAgb2YgdGhlIGFycmF5IGlmIG93bmVkLCBvciBlbHNlIGNsb25lcyBpdCwKKyAg
ICAgKiBjb3B5aW5nIGxlbmd0aCBUIGl0ZW1zOyByZXNldHMgaXRzZWxmIHRvIHRoZSBpbnRlcm5h
bCBzdGFjayBhcnJheS4KKyAgICAgKiBSZXR1cm5zIE5VTEwgaWYgdGhlIGFsbG9jYXRpb24gZmFp
bGVkLgorICAgICAqIEBwYXJhbSBsZW5ndGggbnVtYmVyIG9mIFQgaXRlbXMgdG8gY29weSB3aGVu
IGNsb25pbmcsCisgICAgICogICAgICAgIGFuZCBjYXBhY2l0eSBvZiB0aGUgY2xvbmUgd2hlbiBj
bG9uaW5nCisgICAgICogQHBhcmFtIHJlc3VsdENhcGFjaXR5IHdpbGwgYmUgc2V0IHRvIHRoZSBy
ZXR1cm5lZCBhcnJheSdzIGNhcGFjaXR5IChvdXRwdXQtb25seSkKKyAgICAgKiBAcmV0dXJuIHRo
ZSBhcnJheSBwb2ludGVyOworICAgICAqICAgICAgICAgY2FsbGVyIGJlY29tZXMgcmVzcG9uc2li
bGUgZm9yIGRlbGV0aW5nIHRoZSBhcnJheQorICAgICAqLworICAgIGlubGluZSBUICpvcnBoYW5P
ckNsb25lKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90ICZyZXN1bHRDYXBhY2l0eSk7Citwcml2YXRl
OgorICAgIFQgKnB0cjsKKyAgICBpbnQzMl90IGNhcGFjaXR5OworICAgIFVCb29sIG5lZWRUb1Jl
bGVhc2U7CisgICAgVCBzdGFja0FycmF5W3N0YWNrQ2FwYWNpdHldOworICAgIHZvaWQgcmVsZWFz
ZUFycmF5KCkgeworICAgICAgICBpZihuZWVkVG9SZWxlYXNlKSB7CisgICAgICAgICAgICB1cHJ2
X2ZyZWUocHRyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBObyBjb21wYXJpc29uIG9wZXJh
dG9ycyB3aXRoIG90aGVyIE1heWJlU3RhY2tBcnJheSdzLiAqLworICAgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1cm4gRkFMU0U7fQorICAg
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1
cm4gVFJVRTt9CisgICAgLyogTm8gb3duZXJzaGlwIHRyYW5zZmVyOiBObyBjb3B5IGNvbnN0cnVj
dG9yLCBubyBhc3NpZ25tZW50IG9wZXJhdG9yLiAqLworICAgIE1heWJlU3RhY2tBcnJheShjb25z
dCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVyKi8pIHt9CisgICAgdm9pZCBvcGVyYXRvcj0oY29u
c3QgTWF5YmVTdGFja0FycmF5ICYgLypvdGhlciovKSB7fQorCisgICAgLy8gTm8gaGVhcCBhbGxv
Y2F0aW9uLiBVc2Ugb25seSBvbiB0aGUgc3RhY2suCisgICAgLy8gICAoRGVjbGFyaW5nIHRoZXNl
IGZ1bmN0aW9ucyBwcml2YXRlIHRyaWdnZXJzIGEgY2FzY2FkZSBvZiBwcm9ibGVtczoKKyAgICAv
LyAgICAgIE1TVkMgaW5zaXN0cyBvbiBleHBvcnRpbmcgYW4gaW5zdGFudGlhdGlvbiBvZiBNYXli
ZVN0YWNrQXJyYXksIHdoaWNoCisgICAgLy8gICAgICByZXF1aXJlcyB0aGF0IGFsbCBmdW5jdGlv
bnMgYmUgZGVmaW5lZC4KKyAgICAvLyAgICAgIEFuIGVtcHR5IGltcGxlbWVudGF0aW9uIG9mIG5l
dygpIGlzIHJlamVjdGVkLCBpdCBtdXN0IHJldHVybiBhIHZhbHVlLgorICAgIC8vICAgICAgUmV0
dXJuaW5nIE5VTEwgaXMgcmVqZWN0ZWQgYnkgZ2NjIGZvciBvcGVyYXRvciBuZXcuCisgICAgLy8g
ICAgICBUaGUgZXhwZWRpZW50IHRoaW5nIGlzIGp1c3Qgbm90IHRvIG92ZXJyaWRlIG9wZXJhdG9y
IG5ldy4KKyAgICAvLyAgICAgIFdoaWxlIHJlbGF0aXZlbHkgcG9pbnRsZXNzLCBoZWFwIGFsbG9j
YXRlZCBpbnN0YW5jZXMgd2lsbCBmdW5jdGlvbi4KKyAgICAvLyBzdGF0aWMgdm9pZCAqIFVfRVhQ
T1JUMiBvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpOyAKKyAgICAvLyBzdGF0aWMgdm9pZCAqIFVf
RVhQT1JUMiBvcGVyYXRvciBuZXdbXShzaXplX3Qgc2l6ZSk7CisjaWYgVV9IQVZFX1BMQUNFTUVO
VF9ORVcKKyAgICAvLyBzdGF0aWMgdm9pZCAqIFVfRVhQT1JUMiBvcGVyYXRvciBuZXcoc2l6ZV90
LCB2b2lkICpwdHIpOworI2VuZGlmCit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBpbnQzMl90
IHN0YWNrQ2FwYWNpdHk+CitpbmxpbmUgVCAqTWF5YmVTdGFja0FycmF5PFQsIHN0YWNrQ2FwYWNp
dHk+OjpyZXNpemUoaW50MzJfdCBuZXdDYXBhY2l0eSwgaW50MzJfdCBsZW5ndGgpIHsKKyAgICBp
ZihuZXdDYXBhY2l0eT4wKSB7CisjaWYgVV9ERUJVRyAmJiBkZWZpbmVkKFVQUlZfTUFMTE9DX0NP
VU5UKQorICAgICAgOjpmcHJpbnRmKDo6c3RkZXJyLCJNYXliZVN0YWNBcnJheSAocmVzaXplKSBh
bGxvYyAlZCAqICVsdVxuIiwgbmV3Q2FwYWNpdHksc2l6ZW9mKFQpKTsKKyNlbmRpZgorICAgICAg
ICBUICpwPShUICopdXBydl9tYWxsb2MobmV3Q2FwYWNpdHkqc2l6ZW9mKFQpKTsKKyAgICAgICAg
aWYocCE9TlVMTCkgeworICAgICAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAgICAgICAg
ICBpZihsZW5ndGg+Y2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPWNhcGFj
aXR5OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihsZW5ndGg+bmV3Q2Fw
YWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPW5ld0NhcGFjaXR5OworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1cHJ2X21lbWNweShwLCBwdHIsIGxlbmd0aCpz
aXplb2YoVCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVsZWFzZUFycmF5KCk7Cisg
ICAgICAgICAgICBwdHI9cDsKKyAgICAgICAgICAgIGNhcGFjaXR5PW5ld0NhcGFjaXR5OworICAg
ICAgICAgICAgbmVlZFRvUmVsZWFzZT1UUlVFOworICAgICAgICB9CisgICAgICAgIHJldHVybiBw
OworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5PgoraW5saW5lIFQgKk1heWJlU3Rh
Y2tBcnJheTxULCBzdGFja0NhcGFjaXR5Pjo6b3JwaGFuT3JDbG9uZShpbnQzMl90IGxlbmd0aCwg
aW50MzJfdCAmcmVzdWx0Q2FwYWNpdHkpIHsKKyAgICBUICpwOworICAgIGlmKG5lZWRUb1JlbGVh
c2UpIHsKKyAgICAgICAgcD1wdHI7CisgICAgfSBlbHNlIGlmKGxlbmd0aDw9MCkgeworICAgICAg
ICByZXR1cm4gTlVMTDsKKyAgICB9IGVsc2UgeworICAgICAgICBpZihsZW5ndGg+Y2FwYWNpdHkp
IHsKKyAgICAgICAgICAgIGxlbmd0aD1jYXBhY2l0eTsKKyAgICAgICAgfQorICAgICAgICBwPShU
ICopdXBydl9tYWxsb2MobGVuZ3RoKnNpemVvZihUKSk7CisjaWYgVV9ERUJVRyAmJiBkZWZpbmVk
KFVQUlZfTUFMTE9DX0NPVU5UKQorICAgICAgOjpmcHJpbnRmKDo6c3RkZXJyLCJNYXliZVN0YWNB
cnJheSAob3JwaGFuKSBhbGxvYyAlZCAqICVsdVxuIiwgbGVuZ3RoLHNpemVvZihUKSk7CisjZW5k
aWYKKyAgICAgICAgaWYocD09TlVMTCkgeworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAg
ICAgIH0KKyAgICAgICAgdXBydl9tZW1jcHkocCwgcHRyLCBsZW5ndGgqc2l6ZW9mKFQpKTsKKyAg
ICB9CisgICAgcmVzdWx0Q2FwYWNpdHk9bGVuZ3RoOworICAgIHB0cj1zdGFja0FycmF5OworICAg
IGNhcGFjaXR5PXN0YWNrQ2FwYWNpdHk7CisgICAgbmVlZFRvUmVsZWFzZT1GQUxTRTsKKyAgICBy
ZXR1cm4gcDsKK30KKworLyoqCisgKiBWYXJpYW50IG9mIE1heWJlU3RhY2tBcnJheSB0aGF0IGFs
bG9jYXRlcyBhIGhlYWRlciBzdHJ1Y3QgYW5kIGFuIGFycmF5CisgKiBpbiBvbmUgY29udGlndW91
cyBtZW1vcnkgYmxvY2ssIHVzaW5nIHVwcnZfbWFsbG9jKCkgYW5kIHVwcnZfZnJlZSgpLgorICog
UHJvdmlkZXMgaW50ZXJuYWwgbWVtb3J5IHdpdGggZml4ZWQgYXJyYXkgY2FwYWNpdHkuIENhbiBh
bGlhcyBhbm90aGVyIG1lbW9yeQorICogYmxvY2sgb3IgYWxsb2NhdGUgb25lLgorICogVGhlIHN0
YWNrQ2FwYWNpdHkgaXMgdGhlIG51bWJlciBvZiBUIGl0ZW1zIGluIHRoZSBpbnRlcm5hbCBtZW1v
cnksCisgKiBub3QgY291bnRpbmcgdGhlIEggaGVhZGVyLgorICogVW5saWtlIExvY2FsTWVtb3J5
IGFuZCBMb2NhbEFycmF5LCB0aGlzIGNsYXNzIG5ldmVyIGFkb3B0cworICogKHRha2VzIG93bmVy
c2hpcCBvZikgYW5vdGhlciBtZW1vcnkgYmxvY2suCisgKi8KK3RlbXBsYXRlPHR5cGVuYW1lIEgs
IHR5cGVuYW1lIFQsIGludDMyX3Qgc3RhY2tDYXBhY2l0eT4KK2NsYXNzIE1heWJlU3RhY2tIZWFk
ZXJBbmRBcnJheSB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb25zdHJ1Y3Rv
ciBpbml0aWFsaXplcyB3aXRoIGludGVybmFsIEgrVFtzdGFja0NhcGFjaXR5XSBidWZmZXIuCisg
ICAgICovCisgICAgTWF5YmVTdGFja0hlYWRlckFuZEFycmF5KCkgOiBwdHIoJnN0YWNrSGVhZGVy
KSwgY2FwYWNpdHkoc3RhY2tDYXBhY2l0eSksIG5lZWRUb1JlbGVhc2UoRkFMU0UpIHt9CisgICAg
LyoqCisgICAgICogRGVzdHJ1Y3RvciBkZWxldGVzIHRoZSBtZW1vcnkgKGlmIG93bmVkKS4KKyAg
ICAgKi8KKyAgICB+TWF5YmVTdGFja0hlYWRlckFuZEFycmF5KCkgeyByZWxlYXNlTWVtb3J5KCk7
IH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhcnJheSBjYXBhY2l0eSAobnVtYmVyIG9m
IFQgaXRlbXMpLgorICAgICAqIEByZXR1cm4gYXJyYXkgY2FwYWNpdHkKKyAgICAgKi8KKyAgICBp
bnQzMl90IGdldENhcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gY2FwYWNpdHk7IH0KKyAgICAvKioK
KyAgICAgKiBBY2Nlc3Mgd2l0aG91dCBvd25lcnNoaXAgY2hhbmdlLgorICAgICAqIEByZXR1cm4g
dGhlIGhlYWRlciBwb2ludGVyCisgICAgICovCisgICAgSCAqZ2V0QWxpYXMoKSBjb25zdCB7IHJl
dHVybiBwdHI7IH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhcnJheSBzdGFydC4KKyAg
ICAgKiBAcmV0dXJuIGFycmF5IHN0YXJ0LCBzYW1lIGFkZHJlc3MgYXMgZ2V0QWxpYXMoKSsxCisg
ICAgICovCisgICAgVCAqZ2V0QXJyYXlTdGFydCgpIGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8VCAqPihnZXRBbGlhcygpKzEpOyB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUg
YXJyYXkgbGltaXQuCisgICAgICogQHJldHVybiBhcnJheSBsaW1pdAorICAgICAqLworICAgIFQg
KmdldEFycmF5TGltaXQoKSBjb25zdCB7IHJldHVybiBnZXRBcnJheVN0YXJ0KCkrY2FwYWNpdHk7
IH0KKyAgICAvKioKKyAgICAgKiBBY2Nlc3Mgd2l0aG91dCBvd25lcnNoaXAgY2hhbmdlLiBTYW1l
IGFzIGdldEFsaWFzKCkuCisgICAgICogQSBjbGFzcyBpbnN0YW5jZSBjYW4gYmUgdXNlZCBkaXJl
Y3RseSBpbiBleHByZXNzaW9ucyB0aGF0IHRha2UgYSBUICouCisgICAgICogQHJldHVybiB0aGUg
aGVhZGVyIHBvaW50ZXIKKyAgICAgKi8KKyAgICBvcGVyYXRvciBIICooKSBjb25zdCB7IHJldHVy
biBwdHI7IH0KKyAgICAvKioKKyAgICAgKiBBcnJheSBpdGVtIGFjY2VzcyAod3JpdGFibGUpLgor
ICAgICAqIE5vIGluZGV4IGJvdW5kcyBjaGVjay4KKyAgICAgKiBAcGFyYW0gaSBhcnJheSBpbmRl
eAorICAgICAqIEByZXR1cm4gcmVmZXJlbmNlIHRvIHRoZSBhcnJheSBpdGVtCisgICAgICovCisg
ICAgVCAmb3BlcmF0b3JbXShwdHJkaWZmX3QgaSkgeyByZXR1cm4gZ2V0QXJyYXlTdGFydCgpW2ld
OyB9CisgICAgLyoqCisgICAgICogRGVsZXRlcyB0aGUgbWVtb3J5IGJsb2NrIChpZiBvd25lZCkg
YW5kIGFsaWFzZXMgYW5vdGhlciBvbmUsIG5vIHRyYW5zZmVyIG9mIG93bmVyc2hpcC4KKyAgICAg
KiBJZiB0aGUgYXJndW1lbnRzIGFyZSBpbGxlZ2FsLCB0aGVuIHRoZSBjdXJyZW50IG1lbW9yeSBp
cyB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIG90aGVyQXJyYXkgbXVzdCBub3QgYmUgTlVMTAor
ICAgICAqIEBwYXJhbSBvdGhlckNhcGFjaXR5IG11c3QgYmUgPjAKKyAgICAgKi8KKyAgICB2b2lk
IGFsaWFzSW5zdGVhZChIICpvdGhlck1lbW9yeSwgaW50MzJfdCBvdGhlckNhcGFjaXR5KSB7Cisg
ICAgICAgIGlmKG90aGVyTWVtb3J5IT1OVUxMICYmIG90aGVyQ2FwYWNpdHk+MCkgeworICAgICAg
ICAgICAgcmVsZWFzZU1lbW9yeSgpOworICAgICAgICAgICAgcHRyPW90aGVyTWVtb3J5OworICAg
ICAgICAgICAgY2FwYWNpdHk9b3RoZXJDYXBhY2l0eTsKKyAgICAgICAgICAgIG5lZWRUb1JlbGVh
c2U9RkFMU0U7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogRGVsZXRlcyB0aGUg
bWVtb3J5IGJsb2NrIChpZiBvd25lZCkgYW5kIGFsbG9jYXRlcyBhIG5ldyBvbmUsCisgICAgICog
Y29weWluZyB0aGUgaGVhZGVyIGFuZCBsZW5ndGggVCBhcnJheSBpdGVtcy4KKyAgICAgKiBSZXR1
cm5zIHRoZSBuZXcgaGVhZGVyIHBvaW50ZXIuCisgICAgICogSWYgdGhlIGFsbG9jYXRpb24gZmFp
bHMsIHRoZW4gdGhlIGN1cnJlbnQgbWVtb3J5IGlzIHVuY2hhbmdlZCBhbmQKKyAgICAgKiB0aGlz
IG1ldGhvZCByZXR1cm5zIE5VTEwuCisgICAgICogQHBhcmFtIG5ld0NhcGFjaXR5IGNhbiBiZSBs
ZXNzIHRoYW4gb3IgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGNhcGFjaXR5OworICAgICAqICAg
ICAgICAgICAgICAgICAgICBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxlbmd0aCBudW1iZXIg
b2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRvIHRoZSBuZXcgb25l
CisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIHBvaW50ZXIsIG9yIE5VTEwgaWYgdGhlIGFs
bG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIEggKnJlc2l6ZShpbnQzMl90IG5l
d0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aD0wKTsKKyAgICAvKioKKyAgICAgKiBHaXZlcyB1cCBv
d25lcnNoaXAgb2YgdGhlIG1lbW9yeSBpZiBvd25lZCwgb3IgZWxzZSBjbG9uZXMgaXQsCisgICAg
ICogY29weWluZyB0aGUgaGVhZGVyIGFuZCBsZW5ndGggVCBhcnJheSBpdGVtczsgcmVzZXRzIGl0
c2VsZiB0byB0aGUgaW50ZXJuYWwgbWVtb3J5LgorICAgICAqIFJldHVybnMgTlVMTCBpZiB0aGUg
YWxsb2NhdGlvbiBmYWlsZWQuCisgICAgICogQHBhcmFtIGxlbmd0aCBudW1iZXIgb2YgVCBpdGVt
cyB0byBjb3B5IHdoZW4gY2xvbmluZywKKyAgICAgKiAgICAgICAgYW5kIGFycmF5IGNhcGFjaXR5
IG9mIHRoZSBjbG9uZSB3aGVuIGNsb25pbmcKKyAgICAgKiBAcGFyYW0gcmVzdWx0Q2FwYWNpdHkg
d2lsbCBiZSBzZXQgdG8gdGhlIHJldHVybmVkIGFycmF5J3MgY2FwYWNpdHkgKG91dHB1dC1vbmx5
KQorICAgICAqIEByZXR1cm4gdGhlIGhlYWRlciBwb2ludGVyOworICAgICAqICAgICAgICAgY2Fs
bGVyIGJlY29tZXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSBhcnJheQorICAgICAqLwor
ICAgIGlubGluZSBIICpvcnBoYW5PckNsb25lKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90ICZyZXN1
bHRDYXBhY2l0eSk7Citwcml2YXRlOgorICAgIEggKnB0cjsKKyAgICBpbnQzMl90IGNhcGFjaXR5
OworICAgIFVCb29sIG5lZWRUb1JlbGVhc2U7CisgICAgLy8gc3RhY2tIZWFkZXIgbXVzdCBwcmVj
ZWRlIHN0YWNrQXJyYXkgaW1tZWRpYXRlbHkuCisgICAgSCBzdGFja0hlYWRlcjsKKyAgICBUIHN0
YWNrQXJyYXlbc3RhY2tDYXBhY2l0eV07CisgICAgdm9pZCByZWxlYXNlTWVtb3J5KCkgeworICAg
ICAgICBpZihuZWVkVG9SZWxlYXNlKSB7CisgICAgICAgICAgICB1cHJ2X2ZyZWUocHRyKTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICAvKiBObyBjb21wYXJpc29uIG9wZXJhdG9ycyB3aXRoIG90aGVy
IE1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSdzLiAqLworICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1cm4gRkFMU0U7fQor
ICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgJiAvKm90
aGVyKi8pIHtyZXR1cm4gVFJVRTt9CisgICAgLyogTm8gb3duZXJzaGlwIHRyYW5zZmVyOiBObyBj
b3B5IGNvbnN0cnVjdG9yLCBubyBhc3NpZ25tZW50IG9wZXJhdG9yLiAqLworICAgIE1heWJlU3Rh
Y2tIZWFkZXJBbmRBcnJheShjb25zdCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgJiAvKm90aGVy
Ki8pIHt9CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgTWF5YmVTdGFja0hlYWRlckFuZEFycmF5
ICYgLypvdGhlciovKSB7fQorCisgICAgLy8gTm8gaGVhcCBhbGxvY2F0aW9uLiBVc2Ugb25seSBv
biB0aGUgc3RhY2suCisgICAgLy8gICAoRGVjbGFyaW5nIHRoZXNlIGZ1bmN0aW9ucyBwcml2YXRl
IHRyaWdnZXJzIGEgY2FzY2FkZSBvZiBwcm9ibGVtczsKKyAgICAvLyAgICBzZWUgdGhlIE1heWJl
U3RhY2tBcnJheSBjbGFzcyBmb3IgZGV0YWlscy4pCisgICAgLy8gc3RhdGljIHZvaWQgKiBVX0VY
UE9SVDIgb3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKTsgCisgICAgLy8gc3RhdGljIHZvaWQgKiBV
X0VYUE9SVDIgb3BlcmF0b3IgbmV3W10oc2l6ZV90IHNpemUpOworI2lmIFVfSEFWRV9QTEFDRU1F
TlRfTkVXCisgICAgLy8gc3RhdGljIHZvaWQgKiBVX0VYUE9SVDIgb3BlcmF0b3IgbmV3KHNpemVf
dCwgdm9pZCAqcHRyKTsKKyNlbmRpZgorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgSCwgdHlwZW5h
bWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5PgoraW5saW5lIEggKk1heWJlU3RhY2tIZWFkZXJB
bmRBcnJheTxILCBULCBzdGFja0NhcGFjaXR5Pjo6cmVzaXplKGludDMyX3QgbmV3Q2FwYWNpdHks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50MzJfdCBsZW5ndGgpIHsKKyAgICBpZihuZXdDYXBhY2l0eT49MCkgeworI2lm
IFVfREVCVUcgJiYgZGVmaW5lZChVUFJWX01BTExPQ19DT1VOVCkKKyAgICAgIDo6ZnByaW50Zig6
OnN0ZGVyciwiTWF5YmVTdGFja0hlYWRlckFuZEFycmF5IGFsbG9jICVkICsgJWQgKiAldWxcbiIs
IHNpemVvZihIKSxuZXdDYXBhY2l0eSxzaXplb2YoVCkpOworI2VuZGlmCisgICAgICAgIEggKnA9
KEggKil1cHJ2X21hbGxvYyhzaXplb2YoSCkrbmV3Q2FwYWNpdHkqc2l6ZW9mKFQpKTsKKyAgICAg
ICAgaWYocCE9TlVMTCkgeworICAgICAgICAgICAgaWYobGVuZ3RoPDApIHsKKyAgICAgICAgICAg
ICAgICBsZW5ndGg9MDsKKyAgICAgICAgICAgIH0gZWxzZSBpZihsZW5ndGg+MCkgeworICAgICAg
ICAgICAgICAgIGlmKGxlbmd0aD5jYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBsZW5n
dGg9Y2FwYWNpdHk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGxlbmd0
aD5uZXdDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBsZW5ndGg9bmV3Q2FwYWNpdHk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdXBydl9tZW1j
cHkocCwgcHRyLCBzaXplb2YoSCkrbGVuZ3RoKnNpemVvZihUKSk7CisgICAgICAgICAgICByZWxl
YXNlTWVtb3J5KCk7CisgICAgICAgICAgICBwdHI9cDsKKyAgICAgICAgICAgIGNhcGFjaXR5PW5l
d0NhcGFjaXR5OworICAgICAgICAgICAgbmVlZFRvUmVsZWFzZT1UUlVFOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiBwOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAg
IH0KK30KKwordGVtcGxhdGU8dHlwZW5hbWUgSCwgdHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0Nh
cGFjaXR5PgoraW5saW5lIEggKk1heWJlU3RhY2tIZWFkZXJBbmRBcnJheTxILCBULCBzdGFja0Nh
cGFjaXR5Pjo6b3JwaGFuT3JDbG9uZShpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
MzJfdCAmcmVzdWx0Q2FwYWNpdHkpIHsKKyAgICBIICpwOworICAgIGlmKG5lZWRUb1JlbGVhc2Up
IHsKKyAgICAgICAgcD1wdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYobGVuZ3RoPDApIHsK
KyAgICAgICAgICAgIGxlbmd0aD0wOworICAgICAgICB9IGVsc2UgaWYobGVuZ3RoPmNhcGFjaXR5
KSB7CisgICAgICAgICAgICBsZW5ndGg9Y2FwYWNpdHk7CisgICAgICAgIH0KKyNpZiBVX0RFQlVH
ICYmIGRlZmluZWQoVVBSVl9NQUxMT0NfQ09VTlQpCisgICAgICA6OmZwcmludGYoOjpzdGRlcnIs
Ik1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSAob3JwaGFuKSBhbGxvYyAldWwgKyAlZCAqICVsdVxu
Iiwgc2l6ZW9mKEgpLGxlbmd0aCxzaXplb2YoVCkpOworI2VuZGlmCisgICAgICAgIHA9KEggKil1
cHJ2X21hbGxvYyhzaXplb2YoSCkrbGVuZ3RoKnNpemVvZihUKSk7CisgICAgICAgIGlmKHA9PU5V
TEwpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIHVwcnZf
bWVtY3B5KHAsIHB0ciwgc2l6ZW9mKEgpK2xlbmd0aCpzaXplb2YoVCkpOworICAgIH0KKyAgICBy
ZXN1bHRDYXBhY2l0eT1sZW5ndGg7CisgICAgcHRyPSZzdGFja0hlYWRlcjsKKyAgICBjYXBhY2l0
eT1zdGFja0NhcGFjaXR5OworICAgIG5lZWRUb1JlbGVhc2U9RkFMU0U7CisgICAgcmV0dXJuIHA7
Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYgIC8qIF9fY3BsdXNwbHVzICovCisjZW5k
aWYgIC8qIENNRU1PUllfSCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL2dlbmJyay9jc3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvZ2VuYnJrL2NzdHJpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGI2OGZmYWJiMjZiY2I5MTU2MjZl
ZDRkMTE1ZTk0MmQzN2JiNzcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL2dlbmJyay9jc3RyaW5nLmgKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMiwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMu
ICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZp
bGUgQ1NUUklORy5ICisqCisqIENvbnRhaW5zIENTdHJpbmcgaW50ZXJmYWNlCisqCisqIEBhdXRo
b3IgICAgICAgSGVsZW5hIFNoaWgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAg
RGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICA2LzE3Lzk4ICAgICBoc2hp
aCAgICAgICBDcmVhdGVkLgorKiAgMDUvMDMvOTkgICAgIHN0ZXBoZW4gICAgIENoYW5nZWQgZnJv
bSBmdW5jdGlvbnMgdG8gbWFjcm9zLgorKiAgMDYvMTQvOTkgICAgIHN0ZXBoZW4gICAgIEFkZGVk
IGljdV9zdHJuY2F0LCBpY3Vfc3RybmNtcCwgaWN1X3RvbG93ZXIKKyoKKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorKi8KKworI2lmbmRlZiBDU1RSSU5HX0gKKyNkZWZpbmUgQ1NUUklOR19IIDEKKwor
I2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAiY21lbW9yeS5oIgorI2luY2x1
ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisK
KyNkZWZpbmUgdXBydl9zdHJjcHkoZHN0LCBzcmMpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSAg
c3RyY3B5KGRzdCwgc3JjKQorI2RlZmluZSB1cHJ2X3N0cmxlbihzdHIpIFVfU1RBTkRBUkRfQ1BQ
X05BTUVTUEFDRSBzdHJsZW4oc3RyKQorI2RlZmluZSB1cHJ2X3N0cmNtcChzMSwgczIpIFVfU1RB
TkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJjbXAoczEsIHMyKQorI2RlZmluZSB1cHJ2X3N0cmNhdChk
c3QsIHNyYykgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cmNhdChkc3QsIHNyYykKKyNkZWZp
bmUgdXBydl9zdHJjaHIocywgYykgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cmNocihzLCBj
KQorI2RlZmluZSB1cHJ2X3N0cnN0cihzLCBjKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3Ry
c3RyKHMsIGMpCisjZGVmaW5lIHVwcnZfc3RycmNocihzLCBjKSBVX1NUQU5EQVJEX0NQUF9OQU1F
U1BBQ0Ugc3RycmNocihzLCBjKQorCisjaWYgVV9ERUJVRworCisjZGVmaW5lIHVwcnZfc3RybmNw
eShkc3QsIHNyYywgc2l6ZSkgKCBcCisgICAgdXBydl9jaGVja1ZhbGlkTWVtb3J5KHNyYywgMSks
IFwKKyAgICBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RybmNweShkc3QsIHNyYywgc2l6ZSkp
CisjZGVmaW5lIHVwcnZfc3RybmNtcChzMSwgczIsIG4pICggXAorICAgIHVwcnZfY2hlY2tWYWxp
ZE1lbW9yeShzMSwgMSksIFwKKyAgICB1cHJ2X2NoZWNrVmFsaWRNZW1vcnkoczIsIDEpLCBcCisg
ICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cm5jbXAoczEsIHMyLCBuKSkKKyNkZWZpbmUg
dXBydl9zdHJuY2F0KGRzdCwgc3JjLCBuKSAoIFwKKyAgICB1cHJ2X2NoZWNrVmFsaWRNZW1vcnko
c3JjLCAxKSwgXAorICAgIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJuY2F0KGRzdCwgc3Jj
LCBuKSkKKworI2Vsc2UKKworI2RlZmluZSB1cHJ2X3N0cm5jcHkoZHN0LCBzcmMsIHNpemUpIFVf
U1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJuY3B5KGRzdCwgc3JjLCBzaXplKQorI2RlZmluZSB1
cHJ2X3N0cm5jbXAoczEsIHMyLCBuKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RybmNtcChz
MSwgczIsIG4pCisjZGVmaW5lIHVwcnZfc3RybmNhdChkc3QsIHNyYywgbikgVV9TVEFOREFSRF9D
UFBfTkFNRVNQQUNFIHN0cm5jYXQoZHN0LCBzcmMsIG4pCisKKyNlbmRpZiAgLyogVV9ERUJVRyAq
LworCisvKioKKyAqIElzIGMgYW4gQVNDSUktcmVwZXJ0b2lyZSBsZXR0ZXIgYS16IG9yIEEtWj8K
KyAqIE5vdGU6IFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBzcGVjaWZpYyB0byB3aGV0aGVyIElDVSBp
cyBjb21waWxlZCBmb3IKKyAqIGFuIEFTQ0lJLWJhc2VkIG9yIEVCQ0RJQy1iYXNlZCBtYWNoaW5l
LiBUaGVyZSBqdXN0IGRvZXMgbm90IHNlZW0gdG8gYmUgYSBiZXR0ZXIgbmFtZSBmb3IgdGhpcy4K
KyAqLworVV9DQVBJIFVCb29sIFVfRVhQT1JUMgordXBydl9pc0FTQ0lJTGV0dGVyKGNoYXIgYyk7
CisKK1VfQ0FQSSBjaGFyIFVfRVhQT1JUMgordXBydl90b3VwcGVyKGNoYXIgYyk7CisKKworVV9D
QVBJIGNoYXIgVV9FWFBPUlQyCit1cHJ2X2FzY2lpdG9sb3dlcihjaGFyIGMpOworCitVX0NBUEkg
Y2hhciBVX0VYUE9SVDIKK3VwcnZfZWJjZGljdG9sb3dlcihjaGFyIGMpOworCisjaWYgVV9DSEFS
U0VUX0ZBTUlMWT09VV9BU0NJSV9GQU1JTFkKKyMgICBkZWZpbmUgdXBydl90b2xvd2VyIHVwcnZf
YXNjaWl0b2xvd2VyCisjZWxpZiBVX0NIQVJTRVRfRkFNSUxZPT1VX0VCQ0RJQ19GQU1JTFkKKyMg
ICBkZWZpbmUgdXBydl90b2xvd2VyIHVwcnZfZWJjZGljdG9sb3dlcgorI2Vsc2UKKyMgICBlcnJv
ciBVX0NIQVJTRVRfRkFNSUxZIGlzIG5vdCB2YWxpZAorI2VuZGlmCisKKyNkZWZpbmUgdXBydl9z
dHJ0b2Qoc291cmNlLCBlbmQpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJ0b2Qoc291cmNl
LCBlbmQpCisjZGVmaW5lIHVwcnZfc3RydG91bChzdHIsIGVuZCwgYmFzZSkgVV9TVEFOREFSRF9D
UFBfTkFNRVNQQUNFIHN0cnRvdWwoc3RyLCBlbmQsIGJhc2UpCisjZGVmaW5lIHVwcnZfc3RydG9s
KHN0ciwgZW5kLCBiYXNlKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RydG9sKHN0ciwgZW5k
LCBiYXNlKQorCisvKiBDb252ZXJzaW9uIGZyb20gYSBkaWdpdCB0byB0aGUgY2hhcmFjdGVyIHdp
dGggcmFkaXggYmFzZSBmcm9tIDItMTkgKi8KKy8qIE1heSBuZWVkIHRvIHVzZSBVX1VQUEVSX09S
RElOQUwqLworI2RlZmluZSBUX0NTdHJpbmdfaXRvc09mZnNldChhKSAoKGEpPD05PygnMCcrKGEp
KTooJ0EnKyhhKS0xMCkpCisKK1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK3VwcnZfc3RyZHVwKGNv
bnN0IGNoYXIgKnNyYyk7CisKKy8qKgorICogdXBydl9tYWxsb2MgbisxIGJ5dGVzLCBhbmQgY29w
eSBuIGJ5dGVzIGZyb20gc3JjIGludG8gdGhlIG5ldyBzdHJpbmcuCisgKiBUZXJtaW5hdGUgd2l0
aCBhIG51bGwgYXQgb2Zmc2V0IG4uICAgSWYgbiBpcyAtMSwgd29ya3MgbGlrZSB1cHJ2X3N0cmR1
cAorICogQHBhcmFtIHNyYworICogQHBhcmFtIG4gbGVuZ3RoIG9mIHRoZSBpbnB1dCBzdHJpbmcs
IG5vdCBpbmNsdWRpbmcgbnVsbC4KKyAqIEByZXR1cm4gbmV3IHN0cmluZyAob3duZWQgYnkgY2Fs
bGVyLCB1c2UgdXBydl9mcmVlIHRvIGZyZWUpLgorICogQGludGVybmFsCisgKi8KK1VfQ0FQSSBj
aGFyKiBVX0VYUE9SVDIKK3VwcnZfc3RybmR1cChjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgbik7
CisKK1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK1RfQ1N0cmluZ190b0xvd2VyQ2FzZShjaGFyKiBz
dHIpOworCitVX0NBUEkgY2hhciogVV9FWFBPUlQyCitUX0NTdHJpbmdfdG9VcHBlckNhc2UoY2hh
ciogc3RyKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0NTdHJpbmdfaW50ZWdlclRv
U3RyaW5nKGNoYXIgKmJ1ZmZlciwgaW50MzJfdCBuLCBpbnQzMl90IHJhZGl4KTsKKworVV9DQVBJ
IGludDMyX3QgVV9FWFBPUlQyCitUX0NTdHJpbmdfaW50NjRUb1N0cmluZyhjaGFyICpidWZmZXIs
IGludDY0X3QgbiwgdWludDMyX3QgcmFkaXgpOworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIK
K1RfQ1N0cmluZ19zdHJpbmdUb0ludGVnZXIoY29uc3QgY2hhciAqaW50ZWdlclN0cmluZywgaW50
MzJfdCByYWRpeCk7CisKKy8qKgorICogQ2FzZS1pbnNlbnNpdGl2ZSwgbGFuZ3VhZ2UtaW5kZXBl
bmRlbnQgc3RyaW5nIGNvbXBhcmlzb24KKyAqIGxpbWl0ZWQgdG8gdGhlIEFTQ0lJIGNoYXJhY3Rl
ciByZXBlcnRvaXJlLgorICovCitVX0NBUEkgaW50IFVfRVhQT1JUMgordXBydl9zdHJpY21wKGNv
bnN0IGNoYXIgKnN0cjEsIGNvbnN0IGNoYXIgKnN0cjIpOworCisvKioKKyAqIENhc2UtaW5zZW5z
aXRpdmUsIGxhbmd1YWdlLWluZGVwZW5kZW50IHN0cmluZyBjb21wYXJpc29uCisgKiBsaW1pdGVk
IHRvIHRoZSBBU0NJSSBjaGFyYWN0ZXIgcmVwZXJ0b2lyZS4KKyAqLworVV9DQVBJIGludCBVX0VY
UE9SVDIKK3VwcnZfc3RybmljbXAoY29uc3QgY2hhciAqc3RyMSwgY29uc3QgY2hhciAqc3RyMiwg
dWludDMyX3Qgbik7CisKKyNlbmRpZiAvKiAhIENTVFJJTkdfSCAqLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9maWxlc3RybS5jIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9maWxlc3RybS5jCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjczMDk3NDdjNzA1YmQxMzc2NWEzYzViNzFlN2E4YmJkNDgxMTRjYWIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVzdHJtLmMK
QEAgLTAsMCArMSwyMjUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5
cmlnaHQgKEMpIDE5OTctMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqIEZpbGUgRklMRVNUUk0uQworKgorKiBAYXV0aG9yICAgICAg
IEdsZW5uIE1hcmN5CisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAg
ICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgNS84Lzk4ICAgICAgZ20gICAgICAgICAg
Q3JlYXRlZAorKiAgMDMvMDIvOTkgICAgIHN0ZXBoZW4gICAgIFJlb3JkZXJlZCBwYXJhbXMgaW4g
dW5nZXRjIHRvIG1hdGNoIHN0ZGlvCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQg
d29wZW4KKyogICAzLzI5Lzk5ICAgICBoZWxlbmEgICAgICBNZXJnZWQgU3RlcGhlbiBhbmQgQmVy
dHJhbmQncyBjaGFuZ2VzLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaW5jbHVk
ZSAiZmlsZXN0cm0uaCIKKworI2luY2x1ZGUgImNtZW1vcnkuaCIKKworI2luY2x1ZGUgPHN0ZGlv
Lmg+CisKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9vcGVuKGNv
bnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFyKiBtb2RlKQoreworICAgIGlmKGZpbGVuYW1l
ICE9IE5VTEwgJiYgKmZpbGVuYW1lICE9IDAgJiYgbW9kZSAhPSBOVUxMICYmICptb2RlICE9IDAp
IHsKKyAgICAgICAgRklMRSAqZmlsZSA9IGZvcGVuKGZpbGVuYW1lLCBtb2RlKTsKKyAgICAgICAg
cmV0dXJuIChGaWxlU3RyZWFtKilmaWxlOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBO
VUxMOworICAgIH0KK30KKworLyoKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmls
ZVN0cmVhbV93b3Blbihjb25zdCB3Y2hhcl90KiBmaWxlbmFtZSwgY29uc3Qgd2NoYXJfdCogbW9k
ZSkKK3sKKyAgIC8vIFRCRDogX3dmb3BlbiBpcyBiZWxpZXZlZCB0byBiZSBNUy1zcGVjaWZpYz8g
CisjaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisgICAgRklMRSogcmVzdWx0ID0g
X3dmb3BlbihmaWxlbmFtZSwgbW9kZSk7CisgICAgcmV0dXJuIChGaWxlU3RyZWFtKilyZXN1bHQ7
CisjZWxzZQorICAgIHNpemVfdCBmbk1ic1NpemUsIG1kTWJzU2l6ZTsKKyAgICBjaGFyICpmbiwg
Km1kOworICAgIEZJTEUgKnJlc3VsdDsKKworICAgIC8vIGNvbnZlcnQgZnJvbSB3Y2hhcl90IHRv
IGNoYXIgCisgICAgZm5NYnNTaXplID0gd2NzdG9tYnMoTlVMTCwgZmlsZW5hbWUsICgoc2l6ZV90
KS0xKSA+PiAxKTsKKyAgICBmbiA9IChjaGFyKil1cHJ2X21hbGxvYyhmbk1ic1NpemUrMik7Cisg
ICAgd2NzdG9tYnMoZm4sIGZpbGVuYW1lLCBmbk1ic1NpemUpOworICAgIGZuW2ZuTWJzU2l6ZV0g
PSAwOworCisgICAgbWRNYnNTaXplID0gd2NzdG9tYnMoTlVMTCwgbW9kZSwgKChzaXplX3QpLTEp
ID4+IDEpOworICAgIG1kID0gKGNoYXIqKXVwcnZfbWFsbG9jKG1kTWJzU2l6ZSsyKTsKKyAgICB3
Y3N0b21icyhtZCwgbW9kZSwgbWRNYnNTaXplKTsKKyAgICBtZFttZE1ic1NpemVdID0gMDsKKwor
ICAgIHJlc3VsdCA9IGZvcGVuKGZuLCBtZCk7CisgICAgdXBydl9mcmVlKGZuKTsKKyAgICB1cHJ2
X2ZyZWUobWQpOworICAgIHJldHVybiAoRmlsZVN0cmVhbSopcmVzdWx0OworI2VuZGlmCit9Cisq
LworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fY2xvc2UoRmlsZVN0cmVhbSog
ZmlsZVN0cmVhbSkKK3sKKyAgICBpZiAoZmlsZVN0cmVhbSAhPSAwKQorICAgICAgICBmY2xvc2Uo
KEZJTEUqKWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVT
dHJlYW1fZmlsZV9leGlzdHMoY29uc3QgY2hhciogZmlsZW5hbWUpCit7CisgICAgRklMRSogdGVt
cCA9IGZvcGVuKGZpbGVuYW1lLCAiciIpOworICAgIGlmICh0ZW1wKSB7CisgICAgICAgIGZjbG9z
ZSh0ZW1wKTsKKyAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgfSBlbHNlCisgICAgICAgIHJldHVy
biBGQUxTRTsKK30KKworLypzdGF0aWMgY29uc3QgaW50MzJfdCBrRU9GOworY29uc3QgaW50MzJf
dCBGaWxlU3RyZWFtOjprRU9GID0gRU9GOyovCisKKy8qCitVX0NBUEkgRmlsZVN0cmVhbSoKK1Rf
RmlsZVN0cmVhbV90bXBmaWxlKCkKK3sKKyAgICBGSUxFKiBmaWxlID0gdG1wZmlsZSgpOworICAg
IHJldHVybiAoRmlsZVN0cmVhbSopZmlsZTsKK30KKyovCisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQ
T1JUMgorVF9GaWxlU3RyZWFtX3JlYWQoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgdm9pZCogYWRk
ciwgaW50MzJfdCBsZW4pCit7CisgICAgcmV0dXJuIGZyZWFkKGFkZHIsIDEsIGxlbiwgKEZJTEUq
KWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVh
bV93cml0ZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCB2b2lkKiBhZGRyLCBpbnQzMl90
IGxlbikKK3sKKworICAgIHJldHVybiBmd3JpdGUoYWRkciwgMSwgbGVuLCAoRklMRSopZmlsZVN0
cmVhbSk7Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3Jld2luZChG
aWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIHJld2luZCgoRklMRSopZmlsZVN0cmVhbSk7
Cit9CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3B1dGMoRmlsZVN0
cmVhbSogZmlsZVN0cmVhbSwgaW50MzJfdCBjaCkKK3sKKyAgICBpbnQzMl90IGMgPSBmcHV0Yyhj
aCwgKEZJTEUqKWZpbGVTdHJlYW0pOworICAgIHJldHVybiBjOworfQorCitVX0NBUEkgaW50IFVf
RVhQT1JUMgorVF9GaWxlU3RyZWFtX2dldGMoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSkKK3sKKyAg
ICBpbnQgYyA9IGZnZXRjKChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4gYzsKK30KKwor
VV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fdW5nZXRjKGludDMyX3QgY2gs
IEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisKKyAgICBpbnQzMl90IGMgPSB1bmdldGMoY2gs
IChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4gYzsKK30KKworVV9DQVBJIGludDMyX3Qg
VV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcGVlayhGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKQorewor
ICAgIGludDMyX3QgYyA9IGZnZXRjKChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4gdW5n
ZXRjKGMsIChGSUxFKilmaWxlU3RyZWFtKTsKK30KKworVV9DQVBJIGNoYXIqIFVfRVhQT1JUMgor
VF9GaWxlU3RyZWFtX3JlYWRMaW5lKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0sIGNoYXIqIGJ1ZmZl
ciwgaW50MzJfdCBsZW5ndGgpCit7CisgICAgcmV0dXJuIGZnZXRzKGJ1ZmZlciwgbGVuZ3RoLCAo
RklMRSopZmlsZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxl
U3RyZWFtX3dyaXRlTGluZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCBjaGFyKiBidWZm
ZXIpCit7CisgICAgcmV0dXJuIGZwdXRzKGJ1ZmZlciwgKEZJTEUqKWZpbGVTdHJlYW0pOworfQor
CitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9zaXplKEZpbGVTdHJlYW0q
IGZpbGVTdHJlYW0pCit7CisgICAgaW50MzJfdCBzYXZlZFBvcyA9IGZ0ZWxsKChGSUxFKilmaWxl
U3RyZWFtKTsKKyAgICBpbnQzMl90IHNpemUgPSAwOworCisgICAgLypDaGFuZ2VzIGJ5IEJlcnRy
YW5kIEEuIEQuIGRvZXNuJ3QgYWZmZWN0IHRoZSBjdXJyZW50IHBvc2l0aW9uCisgICAgZ29lcyB0
byB0aGUgZW5kIG9mIHRoZSBmaWxlIGJlZm9yZSBmdGVsbCovCisgICAgZnNlZWsoKEZJTEUqKWZp
bGVTdHJlYW0sIDAsIFNFRUtfRU5EKTsKKyAgICBzaXplID0gKGludDMyX3QpZnRlbGwoKEZJTEUq
KWZpbGVTdHJlYW0pOworICAgIGZzZWVrKChGSUxFKilmaWxlU3RyZWFtLCBzYXZlZFBvcywgU0VF
S19TRVQpOworICAgIHJldHVybiBzaXplOworfQorCitVX0NBUEkgaW50IFVfRVhQT1JUMgorVF9G
aWxlU3RyZWFtX2VvZihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIHJldHVybiBmZW9m
KChGSUxFKilmaWxlU3RyZWFtKTsKK30KKworLyoKKyBXYXJuaW5nIAorIFRoaXMgZnVuY3Rpb24g
bWF5IG5vdCB3b3JrIGNvbnNpc3RlbnRseSBvbiBhbGwgcGxhdGZvcm1zCisgKGUuZy4gSFAtVVgs
IEZyZWVCU0QgYW5kIE1hY09TWCBkb24ndCByZXR1cm4gYW4gZXJyb3Igd2hlbgorIHB1dGMgaXMg
dXNlZCBvbiBhIGZpbGUgb3BlbmVkIGFzIHJlYWRvbmx5KQorKi8KK1VfQ0FQSSBpbnQgVV9FWFBP
UlQyCitUX0ZpbGVTdHJlYW1fZXJyb3IoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSkKK3sKKyAgICBy
ZXR1cm4gKGZpbGVTdHJlYW0gPT0gMCB8fCBmZXJyb3IoKEZJTEUqKWZpbGVTdHJlYW0pKTsKK30K
KworLyogVGhpcyBmdW5jdGlvbiBkb2Vzbid0IHdvcmsuICovCisvKiBmb3JjZSB0aGUgc3RyZWFt
IHRvIHNldCBpdHMgZXJyb3IgZmxhZyovCisvKlVfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxl
U3RyZWFtX3NldEVycm9yKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisgICAgZnNlZWsoKEZJ
TEUqKWZpbGVTdHJlYW0sIDk5OTk5LCBTRUVLX1NFVCk7Cit9CisqLworCitVX0NBUEkgRmlsZVN0
cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3RkaW4odm9pZCkKK3sKKyAgICByZXR1cm4g
KEZpbGVTdHJlYW0qKXN0ZGluOworfQorCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitU
X0ZpbGVTdHJlYW1fc3Rkb3V0KHZvaWQpCit7CisgICAgcmV0dXJuIChGaWxlU3RyZWFtKilzdGRv
dXQ7Cit9CisKKworVV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3N0
ZGVycih2b2lkKQoreworICAgIHJldHVybiAoRmlsZVN0cmVhbSopc3RkZXJyOworfQorCitVX0NB
UEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcmVtb3ZlKGNvbnN0IGNoYXIqIGZpbGVO
YW1lKXsKKyAgICByZXR1cm4gKHJlbW92ZShmaWxlTmFtZSkgPT0gMCk7Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVzdHJtLmggYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVzdHJtLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGVlYmE5OGI2NjFmZDYxNzgxMTFiMGJlMDllOTMxOWViOWYxMWEwMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvZmlsZXN0
cm0uaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAg
IENvcHlyaWdodCAoQykgMTk5Ny0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBGSUxFU1RSTS5ICisqCisqIENvbnRhaW5z
IEZpbGVTdHJlYW0gaW50ZXJmYWNlCisqCisqIEBhdXRob3IgICAgICAgR2xlbm4gTWFyY3kKKyoK
KyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAg
RGVzY3JpcHRpb24KKyogICA1LzgvOTggICAgICBnbSAgICAgICAgICBDcmVhdGVkLgorKiAgMDMv
MDIvOTkgICAgIHN0ZXBoZW4gICAgIFJlb3JkZXJlZCBwYXJhbXMgaW4gdW5nZXRjIHRvIG1hdGNo
IHN0ZGlvCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgd29wZW4KKyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBGSUxFU1RSTV9ICisjZGVmaW5lIEZJTEVT
VFJNX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKK3R5cGVkZWYgc3RydWN0IF9G
aWxlU3RyZWFtIEZpbGVTdHJlYW07CisKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1Rf
RmlsZVN0cmVhbV9vcGVuKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFyKiBtb2RlKTsK
KworLyoKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV93b3Blbihj
b25zdCB3Y2hhcl90KiBmaWxlbmFtZSwgY29uc3Qgd2NoYXJfdCogbW9kZSk7CisqLworVV9DQVBJ
IHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fY2xvc2UoRmlsZVN0cmVhbSogZmlsZVN0cmVh
bSk7CisKK1VfQ0FQSSBVQm9vbCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9maWxlX2V4aXN0cyhj
b25zdCBjaGFyKiBmaWxlbmFtZSk7CisKKy8qCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQy
CitUX0ZpbGVTdHJlYW1fdG1wZmlsZSh2b2lkKTsKKyovCisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQ
T1JUMgorVF9GaWxlU3RyZWFtX3JlYWQoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgdm9pZCogYWRk
ciwgaW50MzJfdCBsZW4pOworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVh
bV93cml0ZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCB2b2lkKiBhZGRyLCBpbnQzMl90
IGxlbik7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3Jld2luZChGaWxl
U3RyZWFtKiBmaWxlU3RyZWFtKTsKKworLypBZGRlZCBieSBCZXJ0cmFuZCBBLiBELiAqLworVV9D
QVBJIGNoYXIgKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9yZWFkTGluZShGaWxlU3RyZWFtKiBm
aWxlU3RyZWFtLCBjaGFyKiBidWZmZXIsIGludDMyX3QgbGVuZ3RoKTsKKworVV9DQVBJIGludDMy
X3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fd3JpdGVMaW5lKEZpbGVTdHJlYW0qIGZpbGVTdHJl
YW0sIGNvbnN0IGNoYXIqIGJ1ZmZlcik7CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9G
aWxlU3RyZWFtX3B1dGMoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgaW50MzJfdCBjaCk7CisKK1Vf
Q0FQSSBpbnQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fZ2V0YyhGaWxlU3RyZWFtKiBmaWxlU3Ry
ZWFtKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fdW5nZXRjKGlu
dDMyX3QgY2gsIEZpbGVTdHJlYW0gKmZpbGVTdHJlYW0pOworCitVX0NBUEkgaW50MzJfdCBVX0VY
UE9SVDIKK1RfRmlsZVN0cmVhbV9wZWVrKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pOworCitVX0NB
UEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9zaXplKEZpbGVTdHJlYW0qIGZpbGVT
dHJlYW0pOworCitVX0NBUEkgaW50IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX2VvZihGaWxlU3Ry
ZWFtKiBmaWxlU3RyZWFtKTsKKworVV9DQVBJIGludCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9l
cnJvcihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKworLyoKK1VfQ0FQSSB2b2lkIFVfRVhQT1JU
MgorVF9GaWxlU3RyZWFtX3NldEVycm9yKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pOworKi8KKwor
VV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3N0ZGluKHZvaWQpOwor
CitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3Rkb3V0KHZvaWQp
OworCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3RkZXJyKHZv
aWQpOworCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcmVtb3ZlKGNvbnN0
IGNoYXIqIGZpbGVOYW1lKTsKKworI2VuZGlmIC8qIF9GSUxFU1RSTSovCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2dlbmJyay5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2dlbmJyay5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzJjNmNmZmU3YjUyOTZkZTg2NzhlZmFlMDRiNDc1OTc0MDhmNmEwNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvZ2VuYnJrLmNw
cApAQCAtMCwwICsxLDM0NiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMp
IDIwMDItMjAwOSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0
aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgor
KiBGaWxlIGdlbmJyay5jCisqLworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICBUb29sIGZvciBn
ZW5lcmF0aW5nIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZGF0YSBmaWxlcyAoLmJyayBmaWxlcyku
CisvLyAgIC5icmsgZmlsZXMgY29udGFpbiB0aGUgcHJlY29tcGlsZWQgcnVsZXMgZm9yIHN0YW5k
YXJkIHR5cGVzCisvLyAgIG9mIGl0ZXJhdG9ycyAtIHdvcmQsIGxpbmUsIHNlbnRlbmNlLCBldGMu
CisvLworLy8gICBVc2FnZTogIGdlbmJyayBbb3B0aW9uc10gLXIgcnVsZS1maWxlLnR4dCAgLW8g
b3V0cHV0LWZpbGUuYnJrCisvLworLy8gICAgICAgb3B0aW9uczogICAtdiAgICAgICAgIHZlcmJv
c2UKKy8vICAgICAgICAgICAgICAgICAgLT8gb3IgLWggICBoZWxwCisvLworLy8gICBUaGUgaW5w
dXQgcnVsZSBmaWxlIGlzIGEgcGxhaW4gdGV4dCBmaWxlIGNvbnRhaW5pbmcgYnJlYWsgcnVsZXMK
Ky8vICAgIGluIHRoZSBpbnB1dCBmb3JtYXQgYWNjZXB0ZWQgYnkgUnVsZUJhc2VkQnJlYWtJdGVy
YXRvcnMuICBUaGUKKy8vICAgIGZpbGUgY2FuIGJlIGVuY29kZWQgYXMgdXRmLTgsIG9yIHV0Zi0x
NiAoZWl0aGVyIGVuZGlhbiksIG9yCisvLyAgICBpbiB0aGUgZGVmYXVsdCBjb2RlIHBhZ2UgKHBs
YXRmb3JtIGRlcGVuZGVudC4pLiAgdXRmIGVuY29kZWQKKy8vICAgIGZpbGVzIG11c3QgaW5jbHVk
ZSBhIEJPTS4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdWNudi5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgi
CisjaW5jbHVkZSAidW5pY29kZS9yYmJpLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2xlYW4uaCIK
KyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisjaW5jbHVkZSAidW5pY29kZS9wdXRpbC5oIgor
CisjaW5jbHVkZSAidW9wdGlvbnMuaCIKKyNpbmNsdWRlICJ1bmV3ZGF0YS5oIgorI2luY2x1ZGUg
InVjbW5kYXRhLmgiCisjaW5jbHVkZSAicmJiaWRhdGEuaCIKKyNpbmNsdWRlICJjbWVtb3J5Lmgi
CisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0
cmluZy5oPgorCitVX05BTUVTUEFDRV9VU0UKKworc3RhdGljIGNoYXIgKnByb2dOYW1lOworc3Rh
dGljIFVPcHRpb24gb3B0aW9uc1tdPXsKKyAgICBVT1BUSU9OX0hFTFBfSCwgICAgICAgICAgICAg
LyogMCAqLworICAgIFVPUFRJT05fSEVMUF9RVUVTVElPTl9NQVJLLCAvKiAxICovCisgICAgVU9Q
VElPTl9WRVJCT1NFLCAgICAgICAgICAgIC8qIDIgKi8KKyAgICB7ICJydWxlcyIsIE5VTEwsIE5V
TEwsIE5VTEwsICdyJywgVU9QVF9SRVFVSVJFU19BUkcsIDAgfSwgICAvKiAzICovCisgICAgeyAi
b3V0IiwgICBOVUxMLCBOVUxMLCBOVUxMLCAnbycsIFVPUFRfUkVRVUlSRVNfQVJHLCAwIH0sICAg
LyogNCAqLworICAgIFVPUFRJT05fSUNVREFUQURJUiwgICAgICAgICAvKiA1ICovCisgICAgVU9Q
VElPTl9ERVNURElSLCAgICAgICAgICAgIC8qIDYgKi8KKyAgICBVT1BUSU9OX0NPUFlSSUdIVCwg
ICAgICAgICAgLyogNyAqLworfTsKKwordm9pZCB1c2FnZUFuZERpZShpbnQgcmV0Q29kZSkgewor
ICAgICAgICBwcmludGYoIlVzYWdlOiAlcyBbLXZdIFstb3B0aW9uc10gLXIgcnVsZS1maWxlIC1v
IG91dHB1dC1maWxlXG4iLCBwcm9nTmFtZSk7CisgICAgICAgIHByaW50ZigiXHRSZWFkIGluIGJy
ZWFrIGl0ZXJhdGlvbiBydWxlcyB0ZXh0IGFuZCB3cml0ZSBvdXQgdGhlIGJpbmFyeSBkYXRhXG4i
CisgICAgICAgICAgICAib3B0aW9uczpcbiIKKyAgICAgICAgICAgICJcdC1oIG9yIC0/IG9yIC0t
aGVscCAgdGhpcyB1c2FnZSB0ZXh0XG4iCisgICAgICAgICAgICAiXHQtViBvciAtLXZlcnNpb24g
ICAgIHNob3cgYSB2ZXJzaW9uIG1lc3NhZ2VcbiIKKyAgICAgICAgICAgICJcdC1jIG9yIC0tY29w
eXJpZ2h0ICAgaW5jbHVkZSBhIGNvcHlyaWdodCBub3RpY2VcbiIKKyAgICAgICAgICAgICJcdC12
IG9yIC0tdmVyYm9zZSAgICAgdHVybiBvbiB2ZXJib3NlIG91dHB1dFxuIgorICAgICAgICAgICAg
Ilx0LWkgb3IgLS1pY3VkYXRhZGlyICBkaXJlY3RvcnkgZm9yIGxvY2F0aW5nIGFueSBuZWVkZWQg
aW50ZXJtZWRpYXRlIGRhdGEgZmlsZXMsXG4iCisgICAgICAgICAgICAiXHQgICAgICAgICAgICAg
ICAgICAgIGZvbGxvd2VkIGJ5IHBhdGgsIGRlZmF1bHRzIHRvICVzXG4iCisgICAgICAgICAgICAi
XHQtZCBvciAtLWRlc3RkaXIgICAgIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSwgZm9sbG93ZWQgYnkg
dGhlIHBhdGhcbiIsCisgICAgICAgICAgICB1X2dldERhdGFEaXJlY3RvcnkoKSk7CisgICAgICAg
IGV4aXQgKHJldENvZGUpOworfQorCisKKyNpZiBVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiB8
fCBVQ09ORklHX05PX0ZJTEVfSU8KKworLyogZHVtbXkgVURhdGFJbmZvIGNmLiB1ZGF0YS5oICov
CitzdGF0aWMgVURhdGFJbmZvIGR1bW15RGF0YUluZm8gPSB7CisgICAgc2l6ZW9mKFVEYXRhSW5m
byksCisgICAgMCwKKworICAgIFVfSVNfQklHX0VORElBTiwKKyAgICBVX0NIQVJTRVRfRkFNSUxZ
LAorICAgIFVfU0laRU9GX1VDSEFSLAorICAgIDAsCisKKyAgICB7IDAsIDAsIDAsIDAgfSwgICAg
ICAgICAgICAgICAgIC8qIGR1bW15IGRhdGFGb3JtYXQgKi8KKyAgICB7IDAsIDAsIDAsIDAgfSwg
ICAgICAgICAgICAgICAgIC8qIGR1bW15IGZvcm1hdFZlcnNpb24gKi8KKyAgICB7IDAsIDAsIDAs
IDAgfSAgICAgICAgICAgICAgICAgIC8qIGR1bW15IGRhdGFWZXJzaW9uICovCit9OworCisjZWxz
ZQorCisvLworLy8gIFNldCB1cCB0aGUgSUNVIGRhdGEgaGVhZGVyLCBkZWZpbmVkIGluIHVjbW5k
YXRhLmgKKy8vCitEYXRhSGVhZGVyIGRoID17CisgICAge3NpemVvZihEYXRhSGVhZGVyKSwgICAg
ICAgICAgIC8vIFN0cnVjdCBNYXBwZWREYXRhCisgICAgICAgIDB4ZGEsCisgICAgICAgIDB4Mjd9
LAorCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdHJ1Y3QgVURhdGFJ
bmZvCisgICAgICAgIHNpemVvZihVRGF0YUluZm8pLCAgICAgICAgICAvLyAgICAgc2l6ZQorICAg
ICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIHJlc2VydmVkCisgICAgICAg
IFVfSVNfQklHX0VORElBTiwKKyAgICAgICAgVV9DSEFSU0VUX0ZBTUlMWSwKKyAgICAgICAgVV9T
SVpFT0ZfVUNIQVIsCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAg
cmVzZXJ2ZWQKKworICAgIHsgMHg0MiwgMHg3MiwgMHg2YiwgMHgyMCB9LCAgICAgLy8gICAgIGRh
dGFGb3JtYXQ9IkJyayAiCisgICAgeyAweGZmLCAwLCAwLCAwIH0sICAgICAgICAgICAgICAvLyAg
ICAgZm9ybWF0VmVyc2lvbi4gIEZpbGxlZCBpbiBsYXRlciB3aXRoIHZhbHVlcworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICBmcm9tIHRoZSBSQkJJIHJ1bGUgYnVp
bGRlci4gIFRoZSAgdmFsdWVzIGRlY2xhcmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyAgICAgIGhlcmUgc2hvdWxkIG5ldmVyIGFwcGVhciBpbiBhbnkgcmVhbCBSQkJJ
IGRhdGEuCisgICAgICAgIHsgNCwgMSwgMCwgMCB9ICAgICAgICAgICAgICAvLyAgIGRhdGFWZXJz
aW9uIChVbmljb2RlIHZlcnNpb24pCisgICAgfX07CisKKyNlbmRpZgorCisvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKy8vCisvLyAgbWFpbiAgICAgIGZvciBnZW5icmsKKy8vCisvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK2ludCAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICBVRXJyb3JD
b2RlICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgY29uc3QgY2hhciAqcnVsZUZpbGVOYW1l
OworICAgIGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lOworICAgIGNvbnN0IGNoYXIgKm91dERpciA9
IE5VTEw7CisgICAgY29uc3QgY2hhciAqY29weXJpZ2h0ID0gTlVMTDsKKworICAgIC8vCisgICAg
Ly8gUGljayB1cCBhbmQgY2hlY2sgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMsCisgICAgLy8g
ICAgdXNpbmcgdGhlIHN0YW5kYXJkIElDVSB0b29sIHV0aWxzIG9wdGlvbiBoYW5kbGluZy4KKyAg
ICAvLworICAgIFVfTUFJTl9JTklUX0FSR1MoYXJnYywgYXJndik7CisgICAgcHJvZ05hbWUgPSBh
cmd2WzBdOworICAgIGFyZ2M9dV9wYXJzZUFyZ3MoYXJnYywgYXJndiwgc2l6ZW9mKG9wdGlvbnMp
L3NpemVvZihvcHRpb25zWzBdKSwgb3B0aW9ucyk7CisgICAgaWYoYXJnYzwwKSB7CisgICAgICAg
IC8vIFVucmVjb2duaXplZCBvcHRpb24KKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJvciBp
biBjb21tYW5kIGxpbmUgYXJndW1lbnQgXCIlc1wiXG4iLCBhcmd2Wy1hcmdjXSk7CisgICAgICAg
IHVzYWdlQW5kRGllKFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUik7CisgICAgfQorCisgICAgaWYo
b3B0aW9uc1swXS5kb2VzT2NjdXIgfHwgb3B0aW9uc1sxXS5kb2VzT2NjdXIpIHsKKyAgICAgICAg
Ly8gIC0/IG9yIC1oIGZvciBoZWxwLgorICAgICAgICB1c2FnZUFuZERpZSgwKTsKKyAgICB9CisK
KyAgICBpZiAoIShvcHRpb25zWzNdLmRvZXNPY2N1ciAmJiBvcHRpb25zWzRdLmRvZXNPY2N1cikp
IHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJydWxlIGZpbGUgYW5kIG91dHB1dCBmaWxlIG11
c3QgYm90aCBiZSBzcGVjaWZpZWQuXG4iKTsKKyAgICAgICAgdXNhZ2VBbmREaWUoVV9JTExFR0FM
X0FSR1VNRU5UX0VSUk9SKTsKKyAgICB9CisgICAgcnVsZUZpbGVOYW1lID0gb3B0aW9uc1szXS52
YWx1ZTsKKyAgICBvdXRGaWxlTmFtZSAgPSBvcHRpb25zWzRdLnZhbHVlOworCisgICAgaWYgKG9w
dGlvbnNbNV0uZG9lc09jY3VyKSB7CisgICAgICAgIHVfc2V0RGF0YURpcmVjdG9yeShvcHRpb25z
WzVdLnZhbHVlKTsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisKKyAgICAv
KiBDb21iaW5lIHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUgZmlsZSBuYW1lICovCisgICAgaWYob3B0
aW9uc1s2XS5kb2VzT2NjdXIpIHsKKyAgICAgICAgb3V0RGlyID0gb3B0aW9uc1s2XS52YWx1ZTsK
KyAgICB9CisgICAgaWYgKG9wdGlvbnNbN10uZG9lc09jY3VyKSB7CisgICAgICAgIGNvcHlyaWdo
dCA9IFVfQ09QWVJJR0hUX1NUUklORzsKKyAgICB9CisKKyNpZiBVQ09ORklHX05PX0JSRUFLX0lU
RVJBVElPTiB8fCBVQ09ORklHX05PX0ZJTEVfSU8KKworICAgIFVOZXdEYXRhTWVtb3J5ICpwRGF0
YTsKKyAgICBjaGFyIG1zZ1sxMDI0XTsKKworICAgIC8qIHdyaXRlIG1lc3NhZ2Ugd2l0aCBqdXN0
IHRoZSBuYW1lICovCisgICAgc3ByaW50Zihtc2csICJnZW5icmsgd3JpdGVzIGR1bW15ICVzIGJl
Y2F1c2Ugb2YgVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gYW5kL29yIFVDT05GSUdfTk9fRklM
RV9JTywgc2VlIHVjb25maWcuaCIsIG91dEZpbGVOYW1lKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwg
IiVzXG4iLCBtc2cpOworCisgICAgLyogd3JpdGUgdGhlIGR1bW15IGRhdGEgZmlsZSAqLworICAg
IHBEYXRhID0gdWRhdGFfY3JlYXRlKG91dERpciwgTlVMTCwgb3V0RmlsZU5hbWUsICZkdW1teURh
dGFJbmZvLCBOVUxMLCAmc3RhdHVzKTsKKyAgICB1ZGF0YV93cml0ZUJsb2NrKHBEYXRhLCBtc2cs
IHN0cmxlbihtc2cpKTsKKyAgICB1ZGF0YV9maW5pc2gocERhdGEsICZzdGF0dXMpOworICAgIHJl
dHVybiAoaW50KXN0YXR1czsKKworI2Vsc2UKKyAgICAvKiBJbml0aWFsaXplIElDVSAqLworICAg
IHVfaW5pdCgmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAg
ZnByaW50ZihzdGRlcnIsICIlczogY2FuIG5vdCBpbml0aWFsaXplIElDVS4gIHN0YXR1cyA9ICVz
XG4iLAorICAgICAgICAgICAgYXJndlswXSwgdV9lcnJvck5hbWUoc3RhdHVzKSk7CisgICAgICAg
IGV4aXQoMSk7CisgICAgfQorICAgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKworICAgIC8vCisg
ICAgLy8gIFJlYWQgaW4gdGhlIHJ1bGUgc291cmNlIGZpbGUKKyAgICAvLworICAgIGxvbmcgICAg
ICAgIHJlc3VsdDsKKyAgICBsb25nICAgICAgICBydWxlRmlsZVNpemU7CisgICAgRklMRSAgICAg
ICAgKmZpbGU7CisgICAgY2hhciAgICAgICAgKnJ1bGVCdWZmZXJDOworCisgICAgZmlsZSA9IGZv
cGVuKHJ1bGVGaWxlTmFtZSwgInJiIik7CisgICAgaWYoIGZpbGUgPT0gMCApIHsKKyAgICAgICAg
ZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIlxuIiwgcnVsZUZpbGVO
YW1lKTsKKyAgICAgICAgZXhpdCgtMSk7CisgICAgfQorICAgIGZzZWVrKGZpbGUsIDAsIFNFRUtf
RU5EKTsKKyAgICBydWxlRmlsZVNpemUgPSBmdGVsbChmaWxlKTsKKyAgICBmc2VlayhmaWxlLCAw
LCBTRUVLX1NFVCk7CisgICAgcnVsZUJ1ZmZlckMgPSBuZXcgY2hhcltydWxlRmlsZVNpemUrMTBd
OworCisgICAgcmVzdWx0ID0gKGxvbmcpZnJlYWQocnVsZUJ1ZmZlckMsIDEsIHJ1bGVGaWxlU2l6
ZSwgZmlsZSk7CisgICAgaWYgKHJlc3VsdCAhPSBydWxlRmlsZVNpemUpICB7CisgICAgICAgIGZw
cmludGYoc3RkZXJyLCAiRXJyb3IgcmVhZGluZyBmaWxlIFwiJXNcIlxuIiwgcnVsZUZpbGVOYW1l
KTsKKyAgICAgICAgZXhpdCAoLTEpOworICAgIH0KKyAgICBydWxlQnVmZmVyQ1tydWxlRmlsZVNp
emVdPTA7CisgICAgZmNsb3NlKGZpbGUpOworCisgICAgLy8KKyAgICAvLyBMb29rIGZvciBhIFVu
aWNvZGUgU2lnbmF0dXJlIChCT00pIG9uIHRoZSBydWxlIGZpbGUKKyAgICAvLworICAgIGludDMy
X3QgICAgICAgIHNpZ25hdHVyZUxlbmd0aDsKKyAgICBjb25zdCBjaGFyICogICBydWxlU291cmNl
QyA9IHJ1bGVCdWZmZXJDOworICAgIGNvbnN0IGNoYXIqICAgIGVuY29kaW5nID0gdWNudl9kZXRl
Y3RVbmljb2RlU2lnbmF0dXJlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVNvdXJj
ZUMsIHJ1bGVGaWxlU2l6ZSwgJnNpZ25hdHVyZUxlbmd0aCwgJnN0YXR1cyk7CisgICAgaWYgKFVf
RkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9CisgICAgaWYo
ZW5jb2RpbmchPU5VTEwgKXsKKyAgICAgICAgcnVsZVNvdXJjZUMgICs9IHNpZ25hdHVyZUxlbmd0
aDsKKyAgICAgICAgcnVsZUZpbGVTaXplIC09IHNpZ25hdHVyZUxlbmd0aDsKKyAgICB9CisKKyAg
ICAvLworICAgIC8vIE9wZW4gYSBjb252ZXJ0ZXIgdG8gdGFrZSB0aGUgcnVsZSBmaWxlIHRvIFVU
Ri0xNgorICAgIC8vCisgICAgVUNvbnZlcnRlciogY29udjsKKyAgICBjb252ID0gdWNudl9vcGVu
KGVuY29kaW5nLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAg
ICAgZnByaW50ZihzdGRlcnIsICJ1Y252X29wZW46IElDVSBFcnJvciBcIiVzXCJcbiIsIHVfZXJy
b3JOYW1lKHN0YXR1cykpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfQorCisgICAgLy8K
KyAgICAvLyBDb252ZXJ0IHRoZSBydWxlcyB0byBVQ2hhci4KKyAgICAvLyAgUHJlZmxpZ2h0IGZp
cnN0IHRvIGRldGVybWluZSByZXF1aXJlZCBidWZmZXIgc2l6ZS4KKyAgICAvLworICAgIHVpbnQz
Ml90IGRlc3RDYXAgPSB1Y252X3RvVUNoYXJzKGNvbnYsCisgICAgICAgICAgICAgICAgICAgICAg
IE5VTEwsICAgICAgICAgICAvLyAgZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgMCwgICAg
ICAgICAgICAgIC8vICBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVT
b3VyY2VDLAorICAgICAgICAgICAgICAgICAgICAgICBydWxlRmlsZVNpemUsCisgICAgICAgICAg
ICAgICAgICAgICAgICZzdGF0dXMpOworICAgIGlmIChzdGF0dXMgIT0gVV9CVUZGRVJfT1ZFUkZM
T1dfRVJST1IpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1Y252X3RvVUNoYXJzOiBJQ1Ug
RXJyb3IgXCIlc1wiXG4iLCB1X2Vycm9yTmFtZShzdGF0dXMpKTsKKyAgICAgICAgZXhpdChzdGF0
dXMpOworICAgIH07CisKKyAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgVUNoYXIgKnJ1
bGVTb3VyY2VVID0gbmV3IFVDaGFyW2Rlc3RDYXArMV07CisgICAgdWNudl90b1VDaGFycyhjb252
LAorICAgICAgICAgICAgICAgICAgcnVsZVNvdXJjZVUsICAgICAvLyAgZGVzdCwKKyAgICAgICAg
ICAgICAgICAgIGRlc3RDYXArMSwKKyAgICAgICAgICAgICAgICAgIHJ1bGVTb3VyY2VDLAorICAg
ICAgICAgICAgICAgICAgcnVsZUZpbGVTaXplLAorICAgICAgICAgICAgICAgICAgJnN0YXR1cyk7
CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAi
dWNudl90b1VDaGFyczogSUNVIEVycm9yIFwiJXNcIlxuIiwgdV9lcnJvck5hbWUoc3RhdHVzKSk7
CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9OworICAgIHVjbnZfY2xvc2UoY29udik7CisK
KworICAgIC8vCisgICAgLy8gIFB1dCB0aGUgc291cmNlIHJ1bGVzIGludG8gYSBVbmljb2RlU3Ry
aW5nCisgICAgLy8KKyAgICBVbmljb2RlU3RyaW5nIHJ1bGVTb3VyY2VTKEZBTFNFLCBydWxlU291
cmNlVSwgZGVzdENhcCk7CisKKyAgICAvLworICAgIC8vICBDcmVhdGUgdGhlIGJyZWFrIGl0ZXJh
dG9yIGZyb20gdGhlIHJ1bGVzCisgICAgLy8gICAgIFRoaXMgd2lsbCBjb21waWxlIHRoZSBydWxl
cy4KKyAgICAvLworICAgIFVQYXJzZUVycm9yIHBhcnNlRXJyb3I7CisgICAgcGFyc2VFcnJvci5s
aW5lID0gMDsKKyAgICBwYXJzZUVycm9yLm9mZnNldCA9IDA7CisgICAgUnVsZUJhc2VkQnJlYWtJ
dGVyYXRvciAqYmkgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihydWxlU291cmNlUywgcGFy
c2VFcnJvciwgc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAg
ZnByaW50ZihzdGRlcnIsICJjcmVhdGVSdWxlQmFzZWRCcmVha0l0ZXJhdG9yOiBJQ1UgRXJyb3Ig
XCIlc1wiICBhdCBsaW5lICVkLCBjb2x1bW4gJWRcbiIsCisgICAgICAgICAgICAgICAgdV9lcnJv
ck5hbWUoc3RhdHVzKSwgKGludClwYXJzZUVycm9yLmxpbmUsIChpbnQpcGFyc2VFcnJvci5vZmZz
ZXQpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfTsKKworCisgICAgLy8KKyAgICAvLyAg
R2V0IHRoZSBjb21waWxlZCBydWxlIGRhdGEgZnJvbSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAg
Ly8KKyAgICB1aW50MzJfdCAgICAgICAgb3V0RGF0YVNpemU7CisgICAgY29uc3QgdWludDhfdCAg
Km91dERhdGE7CisgICAgb3V0RGF0YSA9IGJpLT5nZXRCaW5hcnlSdWxlcyhvdXREYXRhU2l6ZSk7
CisKKyAgICAvLyBDb3B5IHRoZSBkYXRhIGZvcm1hdCB2ZXJzaW9uIG51bWJlcnMgZnJvbSB0aGUg
UkJCSSBkYXRhIGhlYWRlciBpbnRvIHRoZSBVRGF0YU1lbW9yeSBoZWFkZXIuCisgICAgdXBydl9t
ZW1jcHkoZGguaW5mby5mb3JtYXRWZXJzaW9uLCAoKFJCQklEYXRhSGVhZGVyICopb3V0RGF0YSkt
PmZGb3JtYXRWZXJzaW9uLCBzaXplb2YoZGguaW5mby5mb3JtYXRWZXJzaW9uKSk7CisKKyAgICAv
LworICAgIC8vICBDcmVhdGUgdGhlIG91dHB1dCBmaWxlCisgICAgLy8KKyAgICBzaXplX3QgYnl0
ZXNXcml0dGVuOworICAgIFVOZXdEYXRhTWVtb3J5ICpwRGF0YTsKKyAgICBwRGF0YSA9IHVkYXRh
X2NyZWF0ZShvdXREaXIsIE5VTEwsIG91dEZpbGVOYW1lLCAmKGRoLmluZm8pLCBjb3B5cmlnaHQs
ICZzdGF0dXMpOworICAgIGlmKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiZ2VuYnJrOiBDb3VsZCBub3Qgb3BlbiBvdXRwdXQgZmlsZSBcIiVzXCIsIFwiJXNc
IlxuIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgb3V0RmlsZU5hbWUsIHVfZXJyb3JOYW1l
KHN0YXR1cykpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfQorCisKKyAgICAvLyAgV3Jp
dGUgdGhlIGRhdGEgaXRzZWxmLgorICAgIHVkYXRhX3dyaXRlQmxvY2socERhdGEsIG91dERhdGEs
IG91dERhdGFTaXplKTsKKyAgICAvLyBmaW5pc2ggdXAgCisgICAgYnl0ZXNXcml0dGVuID0gdWRh
dGFfZmluaXNoKHBEYXRhLCAmc3RhdHVzKTsKKyAgICBpZihVX0ZBSUxVUkUoc3RhdHVzKSkgewor
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImdlbmJyazogZXJyb3IgJWQgd3JpdGluZyB0aGUgb3V0
cHV0IGZpbGVcbiIsIHN0YXR1cyk7CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9CisgICAg
CisgICAgaWYgKGJ5dGVzV3JpdHRlbiAhPSBvdXREYXRhU2l6ZSkgeworICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgIkVycm9yIHdyaXRpbmcgdG8gb3V0cHV0IGZpbGUgXCIlc1wiXG4iLCBvdXRGaWxl
TmFtZSk7CisgICAgICAgIGV4aXQoLTEpOworICAgIH0KKworICAgIGRlbGV0ZSBiaTsKKyAgICBk
ZWxldGVbXSBydWxlU291cmNlVTsKKyAgICBkZWxldGVbXSBydWxlQnVmZmVyQzsKKyAgICB1X2Ns
ZWFudXAoKTsKKworCisgICAgcHJpbnRmKCJnZW5icms6IHRvb2wgY29tcGxldGVkIHN1Y2Nlc3Nm
dWxseS5cbiIpOworICAgIHJldHVybiAwOworCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JS
RUFLX0lURVJBVElPTiAqLworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvZ2VuYnJrL3B1dGlsaW1wLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvZ2VuYnJrL3B1dGlsaW1wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDJjMWM2NmYxNzAxNDVjM2Qw
YmMwMjNiNjE3MDk1NzMzNDAyMDViNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvcHV0aWxpbXAuaApAQCAtMCwwICsxLDYxMSBAQAor
LyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDE0
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoK
KyogIEZJTEUgTkFNRSA6IHB1dGlsaW1wLmgKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAg
ICBEZXNjcmlwdGlvbgorKiAgIDEwLzE3LzA0ICAgIGdyaG90ZW4gICAgIE1vdmUgaW50ZXJuYWwg
ZnVuY3Rpb25zIGZyb20gcHV0aWwuaCB0byB0aGlzIGZpbGUuCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyovCisKKyNpZm5kZWYgUFVUSUxJTVBfSAorI2RlZmluZSBQVVRJTElNUF9ICisKKyNpbmNs
dWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKKworLyoq
CisgKiBcZGVmIFVfU0lHTkVEX1JJR0hUX1NISUZUX0lTX0FSSVRITUVUSUMKKyAqIE5lYXJseSBh
bGwgQ1BVcyBhbmQgY29tcGlsZXJzIGltcGxlbWVudCBhIHJpZ2h0LXNoaWZ0IG9mIGEgc2lnbmVk
IGludGVnZXIKKyAqIGFzIGFuIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgd2hpY2ggY29waWVzIHRo
ZSBzaWduIGJpdCAodGhlIE1vc3QgU2lnbmlmaWNhbnQgQml0IChNU0IpKQorICogaW50byB0aGUg
dmFjYXRlZCBiaXRzIChzaWduIGV4dGVuc2lvbikuCisgKiBGb3IgZXhhbXBsZSwgKGludDMyX3Qp
MHhmZmY1ZmZmMz4+NCBiZWNvbWVzIDB4ZmZmZjVmZmYgYW5kIC0xPj4xPS0xLgorICoKKyAqIFRo
aXMgY2FuIGJlIHVzZWZ1bCBmb3Igc3RvcmluZyBhIHNpZ25lZCB2YWx1ZSBpbiB0aGUgdXBwZXIg
Yml0cworICogYW5kIGFub3RoZXIgYml0IGZpZWxkIGluIHRoZSBsb3dlciBiaXRzLgorICogVGhl
IHNpZ25lZCB2YWx1ZSBjYW4gYmUgcmV0cmlldmVkIGJ5IHNpbXBsZSByaWdodC1zaGlmdGluZy4K
KyAqCisgKiBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgSmF2YSBsYW5ndWFnZS4KKyAqCisg
KiBIb3dldmVyLCB0aGUgQyBzdGFuZGFyZCBhbGxvd3MgY29tcGlsZXJzIHRvIGltcGxlbWVudCBh
IHJpZ2h0LXNoaWZ0IG9mIGEgc2lnbmVkIGludGVnZXIKKyAqIGFzIGEgTG9naWNhbCBTaGlmdCBS
aWdodCB3aGljaCBjb3BpZXMgYSAwIGludG8gdGhlIHZhY2F0ZWQgYml0cy4KKyAqIEZvciBleGFt
cGxlLCAoaW50MzJfdCkweGZmZjVmZmYzPj40IGJlY29tZXMgMHgwZmZmNWZmZiBhbmQgLTE+PjE9
MHg3ZmZmZmZmZi4KKyAqCisgKiBDb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgbmF0dXJhbCBiZWhh
dmlvciBzaG91bGQgYmUgZ3VhcmRlZCB3aXRoIHRoaXMgbWFjcm8sCisgKiB3aXRoIGFuIGFsdGVy
bmF0ZSBwYXRoIGZvciB1bnVzdWFsIHBsYXRmb3Jtcy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZk
ZWYgVV9TSUdORURfUklHSFRfU0hJRlRfSVNfQVJJVEhNRVRJQworICAgIC8qIFVzZSB0aGUgcHJl
ZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbHNlCisgICAgLyoKKyAgICAgKiBOZWFybHkgYWxsIENQVXMg
JiBjb21waWxlcnMgaW1wbGVtZW50IGEgcmlnaHQtc2hpZnQgb2YgYSBzaWduZWQgaW50ZWdlcgor
ICAgICAqIGFzIGFuIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgKHdpdGggc2lnbiBleHRlbnNpb24p
LgorICAgICAqLworIyAgIGRlZmluZSBVX1NJR05FRF9SSUdIVF9TSElGVF9JU19BUklUSE1FVElD
IDEKKyNlbmRpZgorCisvKiogRGVmaW5lIHRoaXMgdG8gMSBpZiB5b3VyIHBsYXRmb3JtIHN1cHBv
cnRzIElFRUUgNzU0IGZsb2F0aW5nIHBvaW50LAorICAgdG8gMCBpZiBpdCBkb2VzIG5vdC4gKi8K
KyNpZm5kZWYgSUVFRV83NTQKKyMgICBkZWZpbmUgSUVFRV83NTQgMQorI2VuZGlmCisKKy8qKgor
ICogdWludHB0cl90IGlzIGFuIG9wdGlvbmFsIHBhcnQgb2YgdGhlIHN0YW5kYXJkIGRlZmluaXRp
b25zIGluIHN0ZGludC5oLgorICogVGhlIG9wZW5ncm91cC5vcmcgZG9jdW1lbnRhdGlvbiBmb3Ig
c3RkaW50Lmggc2F5cworICogIk9uIFhTSS1jb25mb3JtYW50IHN5c3RlbXMsIHRoZSBpbnRwdHJf
dCBhbmQgdWludHB0cl90IHR5cGVzIGFyZSByZXF1aXJlZDsKKyAqIG90aGVyd2lzZSwgdGhleSBh
cmUgb3B0aW9uYWwuIgorICogV2UgYXNzdW1lIHRoYXQgd2hlbiB1aW50cHRyX3QgaXMgZGVmaW5l
ZCwgVUlOVFBUUl9NQVggaXMgZGVmaW5lZCBhcyB3ZWxsLgorICoKKyAqIERvIG5vdCB1c2UgcHRy
ZGlmZl90IHNpbmNlIGl0IGlzIHNpZ25lZC4gc2l6ZV90IGlzIHVuc2lnbmVkLgorICovCisvKiBU
T0RPOiBUaGlzIGNoZWNrIGZhaWxzIG9uIHNvbWUgeiBlbnZpcm9ubWVudHMuIEZpbGVkIGEgdGlj
a2V0ICM5MzU3IGZvciB0aGlzLiAqLworI2lmICFkZWZpbmVkKF9faW50cHRyX3RfZGVmaW5lZCkg
JiYgIWRlZmluZWQoVUlOVFBUUl9NQVgpICYmIChVX1BMQVRGT1JNICE9IFVfUEZfT1MzOTApCit0
eXBlZGVmIHNpemVfdCB1aW50cHRyX3Q7CisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfSEFWRV9N
U1ZDXzIwMDNfT1JfRUFSTElFUgorICogRmxhZyBmb3Igd29ya2Fyb3VuZCBvZiBNU1ZDIDIwMDMg
b3B0aW1pemF0aW9uIGJ1Z3MKKyAqIEBpbnRlcm5hbAorICovCisjaWYgIWRlZmluZWQoVV9IQVZF
X01TVkNfMjAwM19PUl9FQVJMSUVSKSAmJiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIg
PCAxNDAwKQorI2RlZmluZSBVX0hBVkVfTVNWQ18yMDAzX09SX0VBUkxJRVIKKyNlbmRpZgorCisv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSovCisvKiogQHsgSW5mb3JtYXRpb24gYWJvdXQgUE9TSVggc3Vw
cG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSovCisKKyNpZmRlZiBVX0hBVkVfTkxfTEFOR0lORk9fQ09ERVNFVAorICAgIC8q
IFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fSEFTX1dJTjMy
X0FQSSB8fCBVX1BMQVRGT1JNID09IFVfUEZfQU5EUk9JRCB8fCBVX1BMQVRGT1JNID09IFVfUEZf
UU5YCisjICAgZGVmaW5lIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUIDAKKyNlbHNlCisjICAg
ZGVmaW5lIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUIDEKKyNlbmRpZgorCisjaWZkZWYgVV9O
TF9MQU5HSU5GT19DT0RFU0VUCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgIVVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUCisjICAgZGVmaW5lIFVfTkxfTEFOR0lO
Rk9fQ09ERVNFVCAtMQorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisgICAvKiBub3Qg
ZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9OTF9MQU5HSU5GT19DT0RFU0VUIENPREVT
RVQKKyNlbmRpZgorCisjaWZkZWYgVV9UWlNFVAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2
YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSQorIyAgIGRlZmlu
ZSBVX1RaU0VUIF90enNldAorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisgICAvKiBu
b3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9UWlNFVCB0enNldAorI2VuZGlmCisK
KyNpZiBkZWZpbmVkKFVfVElNRVpPTkUpIHx8IGRlZmluZWQoVV9IQVZFX1RJTUVaT05FKQorICAg
IC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9Q
Rl9BTkRST0lECisjICAgZGVmaW5lIFVfVElNRVpPTkUgdGltZXpvbmUKKyNlbGlmIFVfUExBVEZP
Uk1fSVNfTElOVVhfQkFTRUQKKyMgICBpZiBkZWZpbmVkKF9fVUNMSUJDX18pCisgICAgICAgLyog
dUNsaWJjIGRvZXMgbm90IGhhdmUgX190aW1lem9uZSBvciBfdGltZXpvbmUuICovCisjICAgZWxp
ZiBkZWZpbmVkKF9ORVdMSUJfVkVSU0lPTikKKyMgICAgICBkZWZpbmUgVV9USU1FWk9ORSAgICAg
IF90aW1lem9uZQorIyAgIGVsaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICAgICAgLyogZ2xpYmMg
Ki8KKyMgICAgICBkZWZpbmUgVV9USU1FWk9ORSAgICAgIF9fdGltZXpvbmUKKyMgICBlbmRpZgor
I2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5lIFVfVElNRVpP
TkUgX3RpbWV6b25lCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQlNEICYmICFkZWZpbmVkKF9f
TmV0QlNEX18pCisgICAvKiBub3QgZGVmaW5lZCAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BG
X09TNDAwCisgICAvKiBub3QgZGVmaW5lZCAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0lQ
SE9ORQorICAgLyogbm90IGRlZmluZWQgKi8KKyNlbHNlCisjICAgZGVmaW5lIFVfVElNRVpPTkUg
dGltZXpvbmUKKyNlbmRpZgorCisjaWZkZWYgVV9UWk5BTUUKKyAgICAvKiBVc2UgdGhlIHByZWRl
ZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKKyMg
ICBkZWZpbmUgVV9UWk5BTUUgX3R6bmFtZQorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAw
CisgICAvKiBub3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9UWk5BTUUgdHpuYW1l
CisjZW5kaWYKKworI2lmZGVmIFVfSEFWRV9NTUFQCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVk
IHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisjICAgZGVmaW5lIFVf
SEFWRV9NTUFQIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9NTUFQIDEKKyNlbmRpZgorCisj
aWZkZWYgVV9IQVZFX1BPUEVOCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5lIFVfSEFWRV9Q
T1BFTiAwCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAKKyMgICBkZWZpbmUgVV9IQVZF
X1BPUEVOIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9QT1BFTiAxCisjZW5kaWYKKworLyoq
CisgKiBcZGVmIFVfSEFWRV9ESVJFTlRfSAorICogRGVmaW5lcyB3aGV0aGVyIGRpcmVudC5oIGlz
IGF2YWlsYWJsZS4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX0RJUkVOVF9ICisg
ICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9IQVNf
V0lOMzJfQVBJCisjICAgZGVmaW5lIFVfSEFWRV9ESVJFTlRfSCAwCisjZWxzZQorIyAgIGRlZmlu
ZSBVX0hBVkVfRElSRU5UX0ggMQorI2VuZGlmCisKKy8qKiBAfSAqLworCisvKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCisvKiogQHsgR0NDIGJ1aWx0IGluIGZ1bmN0aW9ucyBmb3IgYXRvbWljIG1lbW9y
eSBvcGVyYXRpb25zICAgICAgICAgICAgICAgICAgICovCisvKj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSov
CisKKy8qKgorICogXGRlZiBVX0hBVkVfR0NDX0FUT01JQ1MKKyAqIEBpbnRlcm5hbAorICovCisj
aWZkZWYgVV9IQVZFX0dDQ19BVE9NSUNTCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVl
LiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX01JTkdXCisgICAgI2RlZmluZSBVX0hBVkVf
R0NDX0FUT01JQ1MgMAorI2VsaWYgVV9HQ0NfTUFKT1JfTUlOT1IgPj0gNDA0IHx8IGRlZmluZWQo
X19jbGFuZ19fKQorICAgIC8qIFRPRE86IEludGVsIGljYyBhbmQgSUJNIHhsYyBvbiBBSVggYWxz
byBzdXBwb3J0IGdjYyBhdG9taWNzLiAgKEludGVsIG9yaWdpbmF0ZWQgdGhlbS4pCisgICAgICog
ICAgICAgQWRkIHRoZW0gZm9yIHRoZXNlIGNvbXBpbGVycy4KKyAgICAgKiBOb3RlOiBDbGFuZyBz
ZXRzIF9fR05VQ19fIGRlZmluZXMgZm9yIHZlcnNpb24gNC4yLCBzbyBtaXNzZXMgdGhlIDQuNCB0
ZXN0IGhlcmUuCisgICAgICovCisjICAgZGVmaW5lIFVfSEFWRV9HQ0NfQVRPTUlDUyAxCisjZWxz
ZQorIyAgIGRlZmluZSBVX0hBVkVfR0NDX0FUT01JQ1MgMAorI2VuZGlmCisKKy8qKiBAfSAqLwor
CisvKioKKyAqIFxkZWYgVV9IQVZFX1NURF9BVE9NSUNTCisgKiBEZWZpbmVzIHdoZXRoZXIgdGhl
IHN0YW5kYXJkIEMrKzExIDxhdG9taWM+IGlzIGF2YWlsYWJsZS4KKyAqIElDVSB3aWxsIHVzZSB0
aGlzIHdoZW4gYXZpYWxhYmxlLAorICogb3RoZXJ3aXNlIHdpbGwgZmFsbCBiYWNrIHRvIGNvbXBp
bGVyIG9yIHBsYXRmb3JtIHNwZWNpZmljIGFsdGVybmF0aXZlcy4KKyAqIEBpbnRlcm5hbAorICov
CisjaWZkZWYgVV9IQVZFX1NURF9BVE9NSUNTCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgIWRlZmluZWQoX19jcGx1c3BsdXMpIHx8IF9fY3BsdXNwbHVzPDIwMTEw
M0wKKyAgICAvKiBOb3QgQysrMTEsIGRpc2FibGUgdXNlIG9mIGF0b21pY3MgKi8KKyMgICBkZWZp
bmUgVV9IQVZFX1NURF9BVE9NSUNTIDAKKyNlbGlmIF9fY2xhbmdfXyAmJiBfX2NsYW5nX21ham9y
X189PTMgJiYgX19jbGFuZ19taW5vcl9fPD0xCisgICAgLyogQ2xhbmcgMy4xLCBoYXMgYXRvbWlj
IHZhcmlhYmxlIGluaXRpYWxpemVyIGJ1Zy4gKi8KKyMgICBkZWZpbmUgVV9IQVZFX1NURF9BVE9N
SUNTIDAKKyNlbHNlIAorICAgIC8qIFVfSEFWRV9BVE9NSUMgaXMgdHlwaWNhbGx5IHNldCBieSBh
biBhdXRvY29uZiB0ZXN0IG9mICNpbmNsdWRlIDxhdG9taWM+ICAqLworICAgIC8qICAgQ2FuIGJl
IHNldCBtYW51YWxseSwgb3IgbGVmdCB1bmRlZmluZWQsIG9uIHBsYXRmb3JtcyB3aXRob3V0IGF1
dG9jb25mLiAqLworIyAgIGlmIGRlZmluZWQoVV9IQVZFX0FUT01JQykgJiYgIFVfSEFWRV9BVE9N
SUMgCisjICAgICAgZGVmaW5lIFVfSEFWRV9TVERfQVRPTUlDUyAxCisjICAgZWxzZQorIyAgICAg
IGRlZmluZSBVX0hBVkVfU1REX0FUT01JQ1MgMAorIyAgIGVuZGlmCisjZW5kaWYKKworCisvKj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSovCisvKiogQHsgQ29kZSBhbGlnbm1lbnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCisKKy8qKgorICogXGRlZiBVX0FMSUdOX0NPREUKKyAqIFRoaXMgaXMgdXNlZCB0
byBhbGlnbiBjb2RlIGZyYWdtZW50cyB0byBhIHNwZWNpZmljIGJ5dGUgYm91bmRhcnkuCisgKiBU
aGlzIGlzIHVzZWZ1bCBmb3IgZ2V0dGluZyBjb25zaXN0ZW50IHBlcmZvcm1hbmNlIHRlc3QgcmVz
dWx0cy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9BTElHTl9DT0RFCisgICAgLyogVXNl
IHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgZGVm
aW5lZChfTV9JWDg2KSAmJiAhZGVmaW5lZChfTUFOQUdFRCkKKyMgICBkZWZpbmUgVV9BTElHTl9D
T0RFKGJvdW5kYXJ5U2l6ZSkgX19hc20gIGFsaWduIGJvdW5kYXJ5U2l6ZQorI2Vsc2UKKyMgICBk
ZWZpbmUgVV9BTElHTl9DT0RFKGJvdW5kYXJ5U2l6ZSkgCisjZW5kaWYKKworLyoqIEB9ICovCisK
Ky8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ki8KKy8qKiBAeyBQcm9ncmFtcyB1c2VkIGJ5IElDVSBjb2Rl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ki8KKworLyoqCisgKiBcZGVmIFVfTUFLRV9JU19OTUFLRQorICogRGVmaW5l
cyB3aGV0aGVyIHRoZSAibWFrZSIgcHJvZ3JhbSBpcyBXaW5kb3dzIG5tYWtlLgorICovCisjaWZk
ZWYgVV9NQUtFX0lTX05NQUtFCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX1dJTkRPV1MKKyMgICBkZWZpbmUgVV9NQUtFX0lTX05N
QUtFIDEKKyNlbHNlCisjICAgZGVmaW5lIFVfTUFLRV9JU19OTUFLRSAwCisjZW5kaWYKKworLyoq
IEB9ICovCisKKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworLyogUGxhdGZvcm0gdXRpbGl0aWVzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ki8KKworLyoqCisgKiBQbGF0Zm9ybSB1dGlsaXRpZXMgaXNvbGF0
ZXMgdGhlIHBsYXRmb3JtIGRlcGVuZGVuY2llcyBvZiB0aGUKKyAqIGxpYmFyYXJ5LiAgRm9yIGVh
Y2ggcGxhdGZvcm0gd2hpY2ggdGhpcyBjb2RlIGlzIHBvcnRlZCB0bywgdGhlc2UKKyAqIGZ1bmN0
aW9ucyBtYXkgaGF2ZSB0byBiZSByZS1pbXBsZW1lbnRlZC4KKyAqLworCisvKioKKyAqIEZsb2F0
aW5nIHBvaW50IHV0aWxpdHkgdG8gZGV0ZXJtaW5lIGlmIGEgZG91YmxlIGlzIE5vdCBhIE51bWJl
ciAoTmFOKS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIFVCb29sICAgVV9FWFBPUlQy
IHVwcnZfaXNOYU4oZG91YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRv
IGRldGVybWluZSBpZiBhIGRvdWJsZSBoYXMgYW4gaW5maW5pdGUgdmFsdWUuCisgKiBAaW50ZXJu
YWwKKyAqLworVV9JTlRFUk5BTCBVQm9vbCAgIFVfRVhQT1JUMiB1cHJ2X2lzSW5maW5pdGUoZG91
YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGRldGVybWluZSBpZiBh
IGRvdWJsZSBoYXMgYSBwb3NpdGl2ZSBpbmZpbml0ZSB2YWx1ZS4KKyAqIEBpbnRlcm5hbAorICov
CitVX0lOVEVSTkFMIFVCb29sICAgVV9FWFBPUlQyIHVwcnZfaXNQb3NpdGl2ZUluZmluaXR5KGRv
dWJsZSBkKTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBkZXRlcm1pbmUgaWYg
YSBkb3VibGUgaGFzIGEgbmVnYXRpdmUgaW5maW5pdGUgdmFsdWUuCisgKiBAaW50ZXJuYWwKKyAq
LworVV9JTlRFUk5BTCBVQm9vbCAgIFVfRVhQT1JUMiB1cHJ2X2lzTmVnYXRpdmVJbmZpbml0eShk
b3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdGhhdCByZXR1cm5zIGEg
Tm90IGEgTnVtYmVyIChOYU4pIHZhbHVlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwg
ZG91YmxlICBVX0VYUE9SVDIgdXBydl9nZXROYU4odm9pZCk7CisvKioKKyAqIEZsb2F0aW5nIHBv
aW50IHV0aWxpdHkgdGhhdCByZXR1cm5zIGFuIGluZmluaXRlIHZhbHVlLgorICogQGludGVybmFs
CisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9nZXRJbmZpbml0eSh2b2lk
KTsKKworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIHRydW5jYXRlIGEgZG91Ymxl
LgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl90
cnVuYyhkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3Vs
YXRlIHRoZSBmbG9vciBvZiBhIGRvdWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFM
IGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfZmxvb3IoZG91YmxlIGQpOworLyoqCisgKiBGbG9hdGlu
ZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSB0aGUgY2VpbGluZyBvZiBhIGRvdWJsZS4KKyAq
IEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfY2VpbChk
b3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRo
ZSBhYnNvbHV0ZSB2YWx1ZSBvZiBhIGRvdWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVS
TkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfZmFicyhkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0
aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBmcmFjdGlvbmFsIGFuZCBpbnRlZ2Vy
IHBhcnRzIG9mIGEgZG91YmxlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91Ymxl
ICBVX0VYUE9SVDIgdXBydl9tb2RmKGRvdWJsZSBkLCBkb3VibGUqIHBpbnRlZ2VyKTsKKy8qKgor
ICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIHJlbWFpbmRlciBvZiBh
IGRvdWJsZSBkaXZpZGVkIGJ5IGFub3RoZXIgZG91YmxlLgorICogQGludGVybmFsCisgKi8KK1Vf
SU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9mbW9kKGRvdWJsZSBkLCBkb3VibGUgeSk7
CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIGQgdG8gdGhlIHBv
d2VyIG9mIGV4cG9uZW50IChkXmV4cG9uZW50KS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVS
TkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfcG93KGRvdWJsZSBkLCBkb3VibGUgZXhwb25lbnQp
OworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSAxMCB0byB0aGUg
cG93ZXIgb2YgZXhwb25lbnQgKDEwXmV4cG9uZW50KS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lO
VEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfcG93MTAoaW50MzJfdCBleHBvbmVudCk7Cisv
KioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBtYXhpbXVtIHZh
bHVlIG9mIHR3byBkb3VibGVzLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91Ymxl
ICBVX0VYUE9SVDIgdXBydl9mbWF4KGRvdWJsZSBkLCBkb3VibGUgeSk7CisvKioKKyAqIEZsb2F0
aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHR3byBk
b3VibGVzLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIg
dXBydl9mbWluKGRvdWJsZSBkLCBkb3VibGUgeSk7CisvKioKKyAqIFByaXZhdGUgdXRpbGl0eSB0
byBjYWxjdWxhdGUgdGhlIG1heGltdW0gdmFsdWUgb2YgdHdvIGludGVnZXJzLgorICogQGludGVy
bmFsCisgKi8KK1VfSU5URVJOQUwgaW50MzJfdCBVX0VYUE9SVDIgdXBydl9tYXgoaW50MzJfdCBk
LCBpbnQzMl90IHkpOworLyoqCisgKiBQcml2YXRlIHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBt
aW5pbXVtIHZhbHVlIG9mIHR3byBpbnRlZ2Vycy4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVS
TkFMIGludDMyX3QgVV9FWFBPUlQyIHVwcnZfbWluKGludDMyX3QgZCwgaW50MzJfdCB5KTsKKwor
I2lmIFVfSVNfQklHX0VORElBTgorIyAgIGRlZmluZSB1cHJ2X2lzTmVnYXRpdmUobnVtYmVyKSAo
Kigoc2lnbmVkIGNoYXIgKikmKG51bWJlcikpPDApCisjZWxzZQorIyAgIGRlZmluZSB1cHJ2X2lz
TmVnYXRpdmUobnVtYmVyKSAoKigoc2lnbmVkIGNoYXIgKikmKG51bWJlcikrc2l6ZW9mKG51bWJl
ciktMSk8MCkKKyNlbmRpZgorCisvKioKKyAqIFJldHVybiB0aGUgbGFyZ2VzdCBwb3NpdGl2ZSBu
dW1iZXIgdGhhdCBjYW4gYmUgcmVwcmVzZW50ZWQgYnkgYW4gaW50ZWdlcgorICogdHlwZSBvZiBh
cmJpdHJhcnkgYml0IGxlbmd0aC4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJs
ZSAgVV9FWFBPUlQyIHVwcnZfbWF4TWFudGlzc2Eodm9pZCk7CisKKy8qKgorICogRmxvYXRpbmcg
cG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIGxvZ2FyaXRobSBvZiBhIGRvdWJsZS4KKyAq
IEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfbG9nKGRv
dWJsZSBkKTsKKworLyoqCisgKiBEb2VzIGNvbW1vbiBub3Rpb24gb2Ygcm91bmRpbmcgZS5nLiB1
cHJ2X2Zsb29yKHggKyAwLjUpOworICogQHBhcmFtIHggdGhlIGRvdWJsZSBudW1iZXIKKyAqIEBy
ZXR1cm4gdGhlIHJvdW5kZWQgZG91YmxlCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBk
b3VibGUgIFVfRVhQT1JUMiB1cHJ2X3JvdW5kKGRvdWJsZSB4KTsKKworI2lmIDAKKy8qKgorICog
UmV0dXJucyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCBpbiBh
IGRvdWJsZSBudW1iZXIgeC4KKyAqCisgKiBAcGFyYW0geCB0aGUgZG91YmxlIG51bWJlcgorICog
QHJldHVybiB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCBpbiBh
IGRvdWJsZSBudW1iZXIgeC4KKyAqIEBpbnRlcm5hbAorICovCisvKlVfSU5URVJOQUwgaW50MzJf
dCAgVV9FWFBPUlQyIHVwcnZfZGlnaXRzQWZ0ZXJEZWNpbWFsKGRvdWJsZSB4KTsqLworI2VuZGlm
CisKKyNpZiAhVV9DSEFSU0VUX0lTX1VURjgKKy8qKgorICogUGxlYXNlIHVzZSB1Y252X2dldERl
ZmF1bHROYW1lKCkgaW5zdGVhZC4KKyAqIFJldHVybiB0aGUgZGVmYXVsdCBjb2RlcGFnZSBmb3Ig
dGhpcyBwbGF0Zm9ybSBhbmQgbG9jYWxlLgorICogVGhpcyBmdW5jdGlvbiBjYW4gY2FsbCBzZXRs
b2NhbGUoKSBvbiBVbml4IHBsYXRmb3Jtcy4gUGxlYXNlIHJlYWQgdGhlCisgKiBwbGF0Zm9ybSBk
b2N1bWVudGF0aW9uIG9uIHNldGxvY2FsZSgpIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24u
CisgKiBAcmV0dXJuIHRoZSBkZWZhdWx0IGNvZGVwYWdlIGZvciB0aGlzIHBsYXRmb3JtIAorICog
QGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgY29uc3QgY2hhciogIFVfRVhQT1JUMiB1cHJ2X2dl
dERlZmF1bHRDb2RlcGFnZSh2b2lkKTsKKyNlbmRpZgorCisvKioKKyAqIFBsZWFzZSB1c2UgdWxv
Y19nZXREZWZhdWx0KCkgaW5zdGVhZC4KKyAqIFJldHVybiB0aGUgZGVmYXVsdCBsb2NhbGUgSUQg
c3RyaW5nIGJ5IHF1ZXJ5aW5nIHRocyBzeXN0ZW0sIG9yCisgKiAgICAgemVybyBpZiBvbmUgY2Fu
bm90IGJlIGZvdW5kLiAKKyAqIFRoaXMgZnVuY3Rpb24gY2FuIGNhbGwgc2V0bG9jYWxlKCkgb24g
VW5peCBwbGF0Zm9ybXMuIFBsZWFzZSByZWFkIHRoZQorICogcGxhdGZvcm0gZG9jdW1lbnRhdGlv
biBvbiBzZXRsb2NhbGUoKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgorICogQHJldHVy
biB0aGUgZGVmYXVsdCBsb2NhbGUgSUQgc3RyaW5nCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRF
Uk5BTCBjb25zdCBjaGFyKiAgVV9FWFBPUlQyIHVwcnZfZ2V0RGVmYXVsdExvY2FsZUlEKHZvaWQp
OworCisvKioKKyAqIFRpbWUgem9uZSB1dGlsaXRpZXMKKyAqCisgKiBXcmFwcGVycyBmb3IgQyBy
dW50aW1lIGxpYnJhcnkgZnVuY3Rpb25zIHJlbGF0aW5nIHRvIHRpbWV6b25lcy4KKyAqIFRoZSB0
X3R6c2V0KCkgZnVuY3Rpb24gKHNpbWlsYXIgdG8gdHpzZXQpIHVzZXMgdGhlIGN1cnJlbnQgc2V0
dGluZworICogb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIFRaIHRvIGFzc2lnbiB2YWx1ZXMg
dG8gdGhyZWUgZ2xvYmFsCisgKiB2YXJpYWJsZXM6IGRheWxpZ2h0LCB0aW1lem9uZSwgYW5kIHR6
bmFtZS4gVGhlc2UgdmFyaWFibGVzIGhhdmUgdGhlCisgKiBmb2xsb3dpbmcgbWVhbmluZ3MsIGFu
ZCBhcmUgZGVjbGFyZWQgaW4gJmx0O3RpbWUuaCZndDsuCisgKgorICogICBkYXlsaWdodCAgIE5v
bnplcm8gaWYgZGF5bGlnaHQtc2F2aW5nLXRpbWUgem9uZSAoRFNUKSBpcyBzcGVjaWZpZWQKKyAq
ICAgICAgICAgICAgICBpbiBUWjsgb3RoZXJ3aXNlLCAwLiBEZWZhdWx0IHZhbHVlIGlzIDEuCisg
KiAgIHRpbWV6b25lICAgRGlmZmVyZW5jZSBpbiBzZWNvbmRzIGJldHdlZW4gY29vcmRpbmF0ZWQg
dW5pdmVyc2FsCisgKiAgICAgICAgICAgICAgdGltZSBhbmQgbG9jYWwgdGltZS4gRS5nLiwgLTI4
LDgwMCBmb3IgUFNUIChHTVQtOGhycykKKyAqICAgdHpuYW1lKDApICBUaHJlZS1sZXR0ZXIgdGlt
ZS16b25lIG5hbWUgZGVyaXZlZCBmcm9tIFRaIGVudmlyb25tZW50CisgKiAgICAgICAgICAgICAg
dmFyaWFibGUuIEUuZy4sICJQU1QiLgorICogICB0em5hbWUoMSkgIFRocmVlLWxldHRlciBEU1Qg
em9uZSBuYW1lIGRlcml2ZWQgZnJvbSBUWiBlbnZpcm9ubWVudAorICogICAgICAgICAgICAgIHZh
cmlhYmxlLiAgRS5nLiwgIlBEVCIuIElmIERTVCB6b25lIGlzIG9taXR0ZWQgZnJvbSBUWiwKKyAq
ICAgICAgICAgICAgICB0em5hbWUoMSkgaXMgYW4gZW1wdHkgc3RyaW5nLgorICoKKyAqIE5vdGVz
OiBGb3IgZXhhbXBsZSwgdG8gc2V0IHRoZSBUWiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBjb3Jy
ZXNwb25kCisgKiB0byB0aGUgY3VycmVudCB0aW1lIHpvbmUgaW4gR2VybWFueSwgeW91IGNhbiB1
c2Ugb25lIG9mIHRoZQorICogZm9sbG93aW5nIHN0YXRlbWVudHM6CisgKgorICogICBzZXQgVFo9
R1NUMUdEVAorICogICBzZXQgVFo9R1NUKzFHRFQKKyAqCisgKiBJZiB0aGUgVFogdmFsdWUgaXMg
bm90IHNldCwgdF90enNldCgpIGF0dGVtcHRzIHRvIHVzZSB0aGUgdGltZSB6b25lCisgKiBpbmZv
cm1hdGlvbiBzcGVjaWZpZWQgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0uIFVuZGVyIFdpbmRvd3Mg
TlQKKyAqIGFuZCBXaW5kb3dzIDk1LCB0aGlzIGluZm9ybWF0aW9uIGlzIHNwZWNpZmllZCBpbiB0
aGUgQ29udHJvbCBQYW5lbCdzCisgKiBEYXRlL1RpbWUgYXBwbGljYXRpb24uCisgKiBAaW50ZXJu
YWwKKyAqLworVV9JTlRFUk5BTCB2b2lkICAgICBVX0VYUE9SVDIgdXBydl90enNldCh2b2lkKTsK
KworLyoqCisgKiBEaWZmZXJlbmNlIGluIHNlY29uZHMgYmV0d2VlbiBjb29yZGluYXRlZCB1bml2
ZXJzYWwKKyAqIHRpbWUgYW5kIGxvY2FsIHRpbWUuIEUuZy4sIC0yOCw4MDAgZm9yIFBTVCAoR01U
LThocnMpCisgKiBAcmV0dXJuIHRoZSBkaWZmZXJlbmNlIGluIHNlY29uZHMgYmV0d2VlbiBjb29y
ZGluYXRlZCB1bml2ZXJzYWwgdGltZSBhbmQgbG9jYWwgdGltZS4KKyAqIEBpbnRlcm5hbAorICov
CitVX0lOVEVSTkFMIGludDMyX3QgIFVfRVhQT1JUMiB1cHJ2X3RpbWV6b25lKHZvaWQpOworCisv
KioKKyAqICAgdHpuYW1lKDApICBUaHJlZS1sZXR0ZXIgdGltZS16b25lIG5hbWUgZGVyaXZlZCBm
cm9tIFRaIGVudmlyb25tZW50CisgKiAgICAgICAgICAgICAgdmFyaWFibGUuIEUuZy4sICJQU1Qi
LgorICogICB0em5hbWUoMSkgIFRocmVlLWxldHRlciBEU1Qgem9uZSBuYW1lIGRlcml2ZWQgZnJv
bSBUWiBlbnZpcm9ubWVudAorICogICAgICAgICAgICAgIHZhcmlhYmxlLiAgRS5nLiwgIlBEVCIu
IElmIERTVCB6b25lIGlzIG9taXR0ZWQgZnJvbSBUWiwKKyAqICAgICAgICAgICAgICB0em5hbWUo
MSkgaXMgYW4gZW1wdHkgc3RyaW5nLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgY29u
c3QgY2hhciogVV9FWFBPUlQyIHVwcnZfdHpuYW1lKGludCBuKTsKKworLyoqCisgKiBHZXQgVVRD
IChHTVQpIHRpbWUgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIDA6MDAgb24gMS8xLzE5
NzAuCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGFmZmVjdGVkIGJ5ICdmYWtldGltZScgYW5kIHNob3Vs
ZCBiZSB0aGUgYm90dGxlbmVjayBmb3IgYWxsIHVzZXItdmlzaWJsZSBJQ1UgdGltZSBmdW5jdGlv
bnMuCisgKiBAcmV0dXJuIHRoZSBVVEMgdGltZSBtZWFzdXJlZCBpbiBtaWxsaXNlY29uZHMKKyAq
IEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIFVEYXRlIFVfRVhQT1JUMiB1cHJ2X2dldFVUQ3Rp
bWUodm9pZCk7CisKKy8qKgorICogR2V0IFVUQyAoR01UKSB0aW1lIG1lYXN1cmVkIGluIG1pbGxp
c2Vjb25kcyBzaW5jZSAwOjAwIG9uIDEvMS8xOTcwLgorICogVGhpcyBmdW5jdGlvbiBpcyBub3Qg
YWZmZWN0ZWQgYnkgJ2Zha2V0aW1lJywgc28gaXQgc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBsb3cg
bGV2ZWwgdGVzdCBmdW5jdGlvbnMtIG5vdCBieSBhbnl0aGluZyB0aGF0CisgKiBleHBvc2VzIHRp
bWUgdG8gdGhlIGVuZCB1c2VyLgorICogQHJldHVybiB0aGUgVVRDIHRpbWUgbWVhc3VyZWQgaW4g
bWlsbGlzZWNvbmRzCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBVRGF0ZSBVX0VYUE9S
VDIgdXBydl9nZXRSYXdVVEN0aW1lKHZvaWQpOworCisvKioKKyAqIERldGVybWluZSB3aGV0aGVy
IGEgcGF0aG5hbWUgaXMgYWJzb2x1dGUgb3Igbm90LCBhcyBkZWZpbmVkIGJ5IHRoZSBwbGF0Zm9y
bS4KKyAqIEBwYXJhbSBwYXRoIFBhdGhuYW1lIHRvIHRlc3QKKyAqIEByZXR1cm4gVFJVRSBpZiB0
aGUgcGF0aCBpcyBhYnNvbHV0ZQorICogQGludGVybmFsIChJQ1UgMy4wKQorICovCitVX0lOVEVS
TkFMIFVCb29sIFVfRVhQT1JUMiB1cHJ2X3BhdGhJc0Fic29sdXRlKGNvbnN0IGNoYXIgKnBhdGgp
OworCisvKioKKyAqIFVzZSBVX01BWF9QVFIgaW5zdGVhZCBvZiB0aGlzIGZ1bmN0aW9uLgorICog
QHBhcmFtIHZvaWQgcG9pbnRlciB0byB0ZXN0CisgKiBAcmV0dXJuIHRoZSBsYXJnZXN0IHBvc3Np
YmxlIHBvaW50ZXIgZ3JlYXRlciB0aGFuIHRoZSBiYXNlCisgKiBAaW50ZXJuYWwgKElDVSAzLjgp
CisgKi8KK1VfSU5URVJOQUwgdm9pZCAqIFVfRVhQT1JUMiB1cHJ2X21heGltdW1QdHIodm9pZCAq
YmFzZSk7CisKKy8qKgorICogTWF4aW11bSB2YWx1ZSBvZiBhICh2b2lkKikgLSB1c2UgdG8gaW5k
aWNhdGUgdGhlIGxpbWl0IG9mIGFuICdpbmZpbml0ZScgYnVmZmVyLgorICogSW4gZmFjdCwgYnVm
ZmVyIHNpemVzIG11c3Qgbm90IGV4Y2VlZCAyR0Igc28gdGhhdCB0aGUgZGlmZmVyZW5jZSBiZXR3
ZWVuCisgKiB0aGUgYnVmZmVyIGxpbWl0IGFuZCB0aGUgYnVmZmVyIHN0YXJ0IGNhbiBiZSBleHBy
ZXNzZWQgaW4gYW4gaW50MzJfdC4KKyAqCisgKiBUaGUgZGVmaW5pdGlvbiBvZiBVX01BWF9QVFIg
bXVzdCBmdWxmaWxsIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqIC0gcmV0dXJuIHRoZSBs
YXJnZXN0IHBvc3NpYmxlIHBvaW50ZXIgZ3JlYXRlciB0aGFuIGJhc2UKKyAqIC0gcmV0dXJuIGEg
dmFsaWQgcG9pbnRlciBhY2NvcmRpbmcgdG8gdGhlIG1hY2hpbmUgYXJjaGl0ZWN0dXJlIChBUy80
MDAsIDY0LWJpdCwgZXRjLikKKyAqIC0gYXZvaWQgd3JhcHBpbmcgYXJvdW5kIGF0IGhpZ2ggYWRk
cmVzc2VzCisgKiAtIG1ha2Ugc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBwb2ludGVyIGlzIG5vdCBm
YXJ0aGVyIGZyb20gYmFzZSB0aGFuIDB4N2ZmZmZmZmYgYnl0ZXMKKyAqCisgKiBAcGFyYW0gYmFz
ZSBUaGUgYmVnaW5uaW5nIG9mIGEgYnVmZmVyIHRvIGZpbmQgdGhlIG1heGltdW0gb2Zmc2V0IGZy
b20KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfTUFYX1BUUgorIyAgaWYgVV9QTEFURk9S
TSA9PSBVX1BGX09TMzkwICYmICFkZWZpbmVkKF9MUDY0KQorICAgIC8qIFdlIGhhdmUgMzEtYml0
IHBvaW50ZXJzLiAqLworIyAgICBkZWZpbmUgVV9NQVhfUFRSKGJhc2UpICgodm9pZCAqKTB4N2Zm
ZmZmZmYpCisjICBlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMAorIyAgICBkZWZpbmUgVV9N
QVhfUFRSKGJhc2UpIHVwcnZfbWF4aW11bVB0cigodm9pZCAqKWJhc2UpCisjICBlbGlmIDAKKyAg
ICAvKgorICAgICAqIEZvciBwbGF0Zm9ybXMgd2hlcmUgcG9pbnRlcnMgYXJlIHNjYWxhciB2YWx1
ZXMgKHdoaWNoIGlzIG5vcm1hbCwgYnV0IHVubGlrZSBpNS9PUykKKyAgICAgKiBidXQgdGhhdCBk
byBub3QgZGVmaW5lIHVpbnRwdHJfdC4KKyAgICAgKgorICAgICAqIEhvd2V2ZXIsIHRoaXMgZG9l
cyBub3Qgd29yayBvbiBtb2Rlcm4gY29tcGlsZXJzOgorICAgICAqIFRoZSBDKysgc3RhbmRhcmQg
ZG9lcyBub3QgZGVmaW5lIHBvaW50ZXIgb3ZlcmZsb3csIGFuZCBhbGxvd3MgY29tcGlsZXJzIHRv
CisgICAgICogYXNzdW1lIHRoYXQgcCt1PnAgZm9yIGFueSBwb2ludGVyIHAgYW5kIGFueSBpbnRl
Z2VyIHU+MC4KKyAgICAgKiBUaHVzLCBtb2Rlcm4gY29tcGlsZXJzIG9wdGltaXplIGF3YXkgdGhl
ICI+IiBjb21wYXJpc29uLgorICAgICAqIChTZWUgSUNVIHRpY2tldHMgIzcxODcgYW5kICM4MDk2
LikKKyAgICAgKi8KKyMgICAgZGVmaW5lIFVfTUFYX1BUUihiYXNlKSBcCisgICAgKCh2b2lkICop
KCgoY2hhciAqKShiYXNlKSsweDdmZmZmZmZmdSkgPiAoY2hhciAqKShiYXNlKSBcCisgICAgICAg
ID8gKChjaGFyICopKGJhc2UpKzB4N2ZmZmZmZmZ1KSBcCisgICAgICAgIDogKGNoYXIgKiktMSkp
CisjICBlbHNlCisgICAgLyogRGVmYXVsdCB2ZXJzaW9uLiBDKysgc3RhbmRhcmQgY29tcGxpYW50
IGZvciBzY2FsYXIgcG9pbnRlcnMuICovCisjICAgIGRlZmluZSBVX01BWF9QVFIoYmFzZSkgXAor
ICAgICgodm9pZCAqKSgoKHVpbnRwdHJfdCkoYmFzZSkrMHg3ZmZmZmZmZnUpID4gKHVpbnRwdHJf
dCkoYmFzZSkgXAorICAgICAgICA/ICgodWludHB0cl90KShiYXNlKSsweDdmZmZmZmZmdSkgXAor
ICAgICAgICA6ICh1aW50cHRyX3QpLTEpKQorIyAgZW5kaWYKKyNlbmRpZgorCisvKiAgRHluYW1p
YyBMaWJyYXJ5IEZ1bmN0aW9ucyAqLworCit0eXBlZGVmIHZvaWQgKFVWb2lkRnVuY3Rpb24pKHZv
aWQpOworCisjaWYgVV9FTkFCTEVfRFlMT0FECisvKioKKyAqIExvYWQgYSBsaWJyYXJ5CisgKiBA
aW50ZXJuYWwgKElDVSA0LjQpCisgKi8KK1VfSU5URVJOQUwgdm9pZCAqIFVfRVhQT1JUMiB1cHJ2
X2RsX29wZW4oY29uc3QgY2hhciAqbGliTmFtZSwgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworLyoq
CisgKiBDbG9zZSBhIGxpYnJhcnkKKyAqIEBpbnRlcm5hbCAoSUNVIDQuNCkKKyAqLworVV9JTlRF
Uk5BTCB2b2lkIFVfRVhQT1JUMiB1cHJ2X2RsX2Nsb3NlKCB2b2lkICpsaWIsIFVFcnJvckNvZGUg
KnN0YXR1cyk7CisKKy8qKgorICogRXh0cmFjdCBhIHN5bWJvbCBmcm9tIGEgbGlicmFyeSAoZnVu
Y3Rpb24pCisgKiBAaW50ZXJuYWwgKElDVSA0LjgpCisgKi8KK1VfSU5URVJOQUwgVVZvaWRGdW5j
dGlvbiogVV9FWFBPUlQyIHVwcnZfZGxzeW1fZnVuYyggdm9pZCAqbGliLCBjb25zdCBjaGFyICpz
eW1ib2xOYW1lLCBVRXJyb3JDb2RlICpzdGF0dXMpOworCisvKioKKyAqIEV4dHJhY3QgYSBzeW1i
b2wgZnJvbSBhIGxpYnJhcnkgKGZ1bmN0aW9uKQorICogTm90IGltcGxlbWVudGVkLCBubyBjbGll
bnRzLgorICogQGludGVybmFsCisgKi8KKy8qIFVfSU5URVJOQUwgdm9pZCAqIFVfRVhQT1JUMiB1
cHJ2X2Rsc3ltX2RhdGEoIHZvaWQgKmxpYiwgY29uc3QgY2hhciAqc3ltYm9sTmFtZSwgVUVycm9y
Q29kZSAqc3RhdHVzKTsgKi8KKworI2VuZGlmCisKKy8qKgorICogRGVmaW5lIG1hbGxvYyBhbmQg
cmVsYXRlZCBmdW5jdGlvbnMKKyAqIEBpbnRlcm5hbAorICovCisjaWYgVV9QTEFURk9STSA9PSBV
X1BGX09TNDAwCisjIGRlZmluZSB1cHJ2X2RlZmF1bHRfbWFsbG9jKHgpIF9DX1RTX21hbGxvYyh4
KQorIyBkZWZpbmUgdXBydl9kZWZhdWx0X3JlYWxsb2MoeCx5KSBfQ19UU19yZWFsbG9jKHgseSkK
KyMgZGVmaW5lIHVwcnZfZGVmYXVsdF9mcmVlKHgpIF9DX1RTX2ZyZWUoeCkKKy8qIGFsc28gX0Nf
VFNfY2FsbG9jKHgpICovCisjZWxzZQorLyogQyBkZWZhdWx0cyAqLworIyBkZWZpbmUgdXBydl9k
ZWZhdWx0X21hbGxvYyh4KSBtYWxsb2MoeCkKKyMgZGVmaW5lIHVwcnZfZGVmYXVsdF9yZWFsbG9j
KHgseSkgcmVhbGxvYyh4LHkpCisjIGRlZmluZSB1cHJ2X2RlZmF1bHRfZnJlZSh4KSBmcmVlKHgp
CisjZW5kaWYKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9nZW5icmsvcmJiaWRhdGEuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9nZW5icmsvcmJiaWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTI3NGMzYWRiYmY0OTI1NzFl
NzIxM2NjNTIyNGQ0YjExY2VkMzNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9yYmJpZGF0YS5oCkBAIC0wLDAgKzEsMjAwIEBACisv
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3Ro
ZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyog
ICBmaWxlIG5hbWU6ICByYmJpZGF0YS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0
YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgUkJCSSBk
YXRhIGZvcm1hdHMgIEluY2x1ZGVzCisqCisqICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJ1
Y3RzIHRoYXQgZGVzY3JpYmVzIHRoZSBmb3JtYXQgb2YgdGhlIEJpbmFyeSBSQkJJIGRhdGEsCisq
ICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBpdCBpcyBzdG9yZWQgaW4gSUNVJ3MgZGF0YSBm
aWxlLgorKgorKiAgICAgIFJCQklEYXRhV3JhcHBlciAgLSAgSW5zdGFuY2VzIG9mIHRoaXMgY2xh
c3Mgc2l0IGJldHdlZW4gdGhlCisqICAgICAgICAgICAgICAgICAgICAgICAgICByYXcgZGF0YSBz
dHJ1Y3RzIGFuZCB0aGUgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3Igb2JqZWN0cworKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhhdCBhcmUgY3JlYXRlZCBieSBhcHBsaWNhdGlvbnMuICBUaGUg
d3JhcHBlciBjbGFzcworKiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXMgcmVmZXJl
bmNlIGNvdW50aW5nIGZvciB0aGUgdW5kZXJseWluZyBkYXRhLAorKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgYW5kIGRpcmVjdCBwb2ludGVycyB0byBkYXRhIHRoYXQgd291bGQgbm90IG90aGVy
d2lzZQorKiAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgYWNjZXNzaWJsZSB3aXRob3V0IHVn
bHkgcG9pbnRlciBhcml0aG1ldGljLiAgVGhlCisqICAgICAgICAgICAgICAgICAgICAgICAgICB3
cmFwcGVyIGRvZXMgbm90IGF0dGVtcHQgdG8gcHJvdmlkZSBhbnkgaGlnaGVyIGxldmVsCisqICAg
ICAgICAgICAgICAgICAgICAgICAgICBhYnN0cmFjdGlvbnMgZm9yIHRoZSBkYXRhIGl0c2VsZi4K
KyoKKyogICAgICAgICAgICAgICAgICAgICAgICAgIFRoZXJlIHdpbGwgYmUgb25seSBvbmUgaW5z
dGFuY2Ugb2YgUkJCSURhdGFXcmFwcGVyIGZvciBhbnkKKyogICAgICAgICAgICAgICAgICAgICAg
ICAgIHNldCBvZiBSQkJJIHJ1biB0aW1lIGRhdGEgYmVpbmcgc2hhcmVkIGJ5IGluc3RhbmNlcwor
KiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb25lcykgb2YgUnVsZXNCYXNlZEJyZWFrSXRl
cmF0b3IuCisqLworCisjaWZuZGVmIF9fUkJCSURBVEFfSF9fCisjZGVmaW5lIF9fUkJCSURBVEFf
SF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRh
dGEuaCIKKyNpbmNsdWRlICJ1ZGF0YXN3cC5oIgorCisvKioKKyAqIFN3YXAgUkJCSSBkYXRhLiBT
ZWUgdWRhdGFzd3AuaC4KKyAqIEBpbnRlcm5hbAorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9S
VDIKK3Vicmtfc3dhcChjb25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAgIGNvbnN0IHZv
aWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgVUVy
cm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworCisjaW5jbHVkZSAi
dW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIKKyNpbmNsdWRl
ICJ1bXV0ZXguaCIKKyNpbmNsdWRlICJ1dHJpZS5oIgorCitVX05BTUVTUEFDRV9CRUdJTgorCisv
KiAgCisgKiAgIFRoZSBmb2xsb3dpbmcgc3RydWN0cyBtYXAgZXhhY3RseSBvbnRvIHRoZSByYXcg
ZGF0YSBmcm9tIElDVSBjb21tb24gZGF0YSBmaWxlLiAKKyAqLworc3RydWN0IFJCQklEYXRhSGVh
ZGVyIHsKKyAgICB1aW50MzJfdCAgICAgICAgIGZNYWdpYzsgICAgICAgICAgIC8qICA9PSAweGJs
YTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAg
dWludDhfdCAgICAgICAgICBmRm9ybWF0VmVyc2lvbls0XTsgLyogRGF0YSBGb3JtYXQuICBTYW1l
IGFzIHRoZSB2YWx1ZSBpbiBzdHJ1Y3QgVURhdGFJbmZvICAgICAgKi8KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgaWYgdGhlcmUgaXMgb25lIGFzc29jaWF0ZWQg
d2l0aCB0aGlzIGRhdGEuICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiAgICAgKHZlcnNpb24gb3JpZ2luYXRlcyBpbiByYmJpLCBpcyBjb3Bp
ZWQgdG8gVURhdGFJbmZvKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogICBGb3IgSUNVIDMuMiBhbmQgZWFybGllciwgdGhpcyBmaWVsZCB3YXMgICAgICAgICAg
ICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAg
IHVpbnQzMl90ICBmVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIHdpdGggYSB2YWx1ZSBv
ZiAxLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIHVpbnQzMl90
ICAgICAgICAgZkxlbmd0aDsgICAgICAgICAgLyogIFRvdGFsIGxlbmd0aCBpbiBieXRlcyBvZiB0
aGlzIFJCQkkgRGF0YSwgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qICAgICAgaW5jbHVkaW5nIGFsbCBzZWN0aW9ucywgbm90IGp1c3Qg
dGhlIGhlYWRlci4gICAgICAgICovCisgICAgdWludDMyX3QgICAgICAgICBmQ2F0Q291bnQ7ICAg
ICAgICAvKiAgTnVtYmVyIG9mIGNoYXJhY3RlciBjYXRlZ29yaWVzLiAgICAgICAgICAgICAgICAg
ICAgICAgICAqLworCisgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIC8qICBPZmZzZXRzIGFu
ZCBzaXplcyBvZiBlYWNoIG9mIHRoZSBzdWJzZWN0aW9ucyB3aXRoaW4gdGhlIFJCQkkgZGF0YS4g
ICAgKi8KKyAgICAvKiAgQWxsIG9mZnNldHMgYXJlIGJ5dGVzIGZyb20gdGhlIHN0YXJ0IG9mIHRo
ZSBSQkJJRGF0YUhlYWRlci4gICAgICAgICAgICovCisgICAgLyogIEFsbCBzaXplcyBhcmUgaW4g
Ynl0ZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwor
ICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZGVGFibGU7ICAg
ICAgICAgLyogIGZvcndhcmQgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS4gKi8KKyAgICB1aW50MzJf
dCAgICAgICAgIGZGVGFibGVMZW47CisgICAgdWludDMyX3QgICAgICAgICBmUlRhYmxlOyAgICAg
ICAgIC8qICBPZmZzZXQgdG8gdGhlIHJldmVyc2Ugc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS4gKi8K
KyAgICB1aW50MzJfdCAgICAgICAgIGZSVGFibGVMZW47CisgICAgdWludDMyX3QgICAgICAgICBm
U0ZUYWJsZTsgICAgICAgIC8qICBzYWZlIHBvaW50IGZvcndhcmQgdHJhbnNpdGlvbiB0YWJsZSAq
LworICAgIHVpbnQzMl90ICAgICAgICAgZlNGVGFibGVMZW47CisgICAgdWludDMyX3QgICAgICAg
ICBmU1JUYWJsZTsgICAgICAgIC8qICBzYWZlIHBvaW50IHJldmVyc2UgdHJhbnNpdGlvbiB0YWJs
ZSAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlNSVGFibGVMZW47CisgICAgdWludDMyX3QgICAg
ICAgICBmVHJpZTsgICAgICAgICAgIC8qICBPZmZzZXQgdG8gVHJpZSBkYXRhIGZvciBjaGFyYWN0
ZXIgY2F0ZWdvcmllcyAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlRyaWVMZW47CisgICAgdWlu
dDMyX3QgICAgICAgICBmUnVsZVNvdXJjZTsgICAgIC8qICBPZmZzZXQgdG8gdGhlIHNvdXJjZSBm
b3IgZm9yIHRoZSBicmVhayAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlJ1bGVTb3VyY2VMZW47
ICAvKiAgICBydWxlcy4gIFN0b3JlZCBVQ2hhciAqLiAqLworICAgIHVpbnQzMl90ICAgICAgICAg
ZlN0YXR1c1RhYmxlOyAgICAvKiBPZmZzZXQgdG8gdGhlIHRhYmxlIG9mIHJ1bGUgc3RhdHVzIHZh
bHVlcyAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlN0YXR1c1RhYmxlTGVuOworCisgICAgdWlu
dDMyX3QgICAgICAgICBmUmVzZXJ2ZWRbNl07ICAgIC8qICBSZXNlcnZlZCBmb3IgZXhwYW5zaW9u
ICovCisKK307CisKKworCitzdHJ1Y3QgIFJCQklTdGF0ZVRhYmxlUm93IHsKKyAgICBpbnQxNl90
ICAgICAgICAgIGZBY2NlcHRpbmc7ICAgIC8qICBOb24temVybyBpZiB0aGlzIHJvdyBpcyBmb3Ig
YW4gYWNjZXB0aW5nIHN0YXRlLiAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiAgVmFsdWUgMDogbm90IGFuIGFjY2VwdGluZyBzdGF0ZS4gICAgICAgICAgICAgICAg
ICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgLTE6IFVu
Y29uZGl0aW9uYWwgQWNjZXB0aW5nIHN0YXRlLiAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qICAgIHBvc2l0aXZlOiAgTG9vay1haGVhZCBtYXRjaCBo
YXMgY29tcGxldGVkLiAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvKiAgICAgICAgICAgQWN0dWFsIGJvdW5kYXJ5IHBvc2l0aW9uIGhhcHBlbmVkIGVhcmxpZXIg
Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICBWYWx1
ZSBoZXJlID09IGZMb29rQWhlYWQgaW4gZWFybGllciAgICAgICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgc3RhdGUsIGF0IGFjdHVhbCBib3Vu
ZGFyeSBwb3MuICAgICAgICAqLworICAgIGludDE2X3QgICAgICAgICAgZkxvb2tBaGVhZDsgICAg
LyogIE5vbi16ZXJvIGlmIHRoaXMgcm93IGlzIGZvciBhIHN0YXRlIHRoYXQgICAgICAgICAgKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIGNvcnJlc3BvbmRzIHRv
IGEgJy8nIGluIHRoZSBydWxlIHNvdXJjZS4gICAgICAgICovCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiAgICBWYWx1ZSBpcyB0aGUgc2FtZSBhcyB0aGUgZkFjY2VwdGlu
ZyAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
ICAgICB2YWx1ZSBmb3IgdGhlIHJ1bGUgKHdoaWNoIHdpbGwgYXBwZWFyICAgICAgICAgKi8KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgaW4gYSBkaWZmZXJlbnQg
c3RhdGUuICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgaW50MTZfdCAgICAgICAgICBm
VGFnSWR4OyAgICAgICAvKiAgTm9uLXplcm8gaWYgdGhpcyByb3cgY292ZXJzIGEge3RhZ2dlZH0g
cG9zaXRpb24gICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAg
IGZyb20gYSBydWxlLiAgVmFsdWUgaXMgdGhlIGluZGV4IGluIHRoZSAgICAgICAgKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICBTdGF0dXNUYWJsZSBvZiB0aGUg
c2V0IG9mIG1hdGNoaW5nICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiAgICAgdGFncyAocnVsZSBzdGF0dXMgdmFsdWVzKSAgICAgICAgICAgICAg
ICAgICAgICAqLworICAgIGludDE2X3QgICAgICAgICAgZlJlc2VydmVkOworICAgIHVpbnQxNl90
ICAgICAgICAgZk5leHRTdGF0ZVsyXTsgLyogIE5leHQgU3RhdGUsIGluZGV4ZWQgYnkgY2hhciBj
YXRlZ29yeS4gICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8qICBUaGlzIGFycmF5IGRvZXMgbm90IGhhdmUgdHdvIGVsZW1lbnRzICAgICAgICAgICAg
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICBBcnJheSBTaXpl
IGlzIGFjdHVhbGx5IGZEYXRhLT5mSGVhZGVyLT5mQ2F0Q291bnQgICAgICAgICAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgQ0FVVElPTjogIHNlZSBSQkJJVGFi
bGVCdWlsZGVyOjpnZXRUYWJsZVNpemUoKSAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8qICAgICAgICAgICAgICBiZWZvcmUgY2hhbmdpbmcgYW55dGhpbmcgaGVyZS4g
ICAgICAgICovCit9OworCisKK3N0cnVjdCBSQkJJU3RhdGVUYWJsZSB7CisgICAgdWludDMyX3Qg
ICAgICAgICBmTnVtU3RhdGVzOyAgICAvKiAgTnVtYmVyIG9mIHN0YXRlcy4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlJvd0xlbjsgICAg
ICAgLyogIExlbmd0aCBvZiBhIHN0YXRlIHRhYmxlIHJvdywgaW4gYnl0ZXMuICAgICAgICAgICAg
Ki8KKyAgICB1aW50MzJfdCAgICAgICAgIGZGbGFnczsgICAgICAgIC8qICBPcHRpb24gRmxhZ3Mg
Zm9yIHRoaXMgc3RhdGUgdGFibGUgICAgICAgICAgICAgICAgICovCisgICAgdWludDMyX3QgICAg
ICAgICBmUmVzZXJ2ZWQ7ICAgICAvKiAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqLworICAgIGNoYXIgICAgICAgICAgICAgZlRhYmxlRGF0YVs0XTsg
LyogIEZpcnN0IFJCQklTdGF0ZVRhYmxlUm93IGJlZ2lucyBoZXJlLiAgICAgICAgICAgICAgKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIChtYWtpbmcgaXQgY2hh
cltdIHNpbXBsaWZpZXMgdWdseSBhZGRyZXNzICAgICAgICovCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiAgICAgYXJpdGhtZXRpYyBmb3IgaW5kZXhpbmcgdmFyaWFibGUg
bGVuZ3RoIHJvd3MuKSAqLworfTsKKwordHlwZWRlZiBlbnVtIHsKKyAgICBSQkJJX0xPT0tBSEVB
RF9IQVJEX0JSRUFLID0gMSwKKyAgICBSQkJJX0JPRl9SRVFVSVJFRCA9IDIKK30gUkJCSVN0YXRl
VGFibGVGbGFnczsKKworCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqLworLyogICBUaGUgcmVmZXJlbmNlIGNvdW50aW5nIHdyYXBwZXIgY2xhc3MgKi8KKy8qICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCitjbGFzcyBSQkJJRGF0YVdy
YXBwZXIgOiBwdWJsaWMgVU1lbW9yeSB7CitwdWJsaWM6CisgICAgZW51bSBFRG9udEFkb3B0IHsK
KyAgICAgICAga0RvbnRBZG9wdAorICAgIH07CisgICAgUkJCSURhdGFXcmFwcGVyKGNvbnN0IFJC
QklEYXRhSGVhZGVyICpkYXRhLCBVRXJyb3JDb2RlICZzdGF0dXMpOworICAgIFJCQklEYXRhV3Jh
cHBlcihjb25zdCBSQkJJRGF0YUhlYWRlciAqZGF0YSwgZW51bSBFRG9udEFkb3B0IGRvbnRBZG9w
dCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyAgICBSQkJJRGF0YVdyYXBwZXIoVURhdGFNZW1vcnkq
IHVkbSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyAgICB+UkJCSURhdGFXcmFwcGVyKCk7CisKKyAg
ICB2b2lkICAgICAgICAgICAgICAgICAgaW5pdDAoKTsKKyAgICB2b2lkICAgICAgICAgICAgICAg
ICAgaW5pdChjb25zdCBSQkJJRGF0YUhlYWRlciAqZGF0YSwgVUVycm9yQ29kZSAmc3RhdHVzKTsK
KyAgICBSQkJJRGF0YVdyYXBwZXIgICAgICAqYWRkUmVmZXJlbmNlKCk7CisgICAgdm9pZCAgICAg
ICAgICAgICAgICAgIHJlbW92ZVJlZmVyZW5jZSgpOworICAgIFVCb29sICAgICAgICAgICAgICAg
ICBvcGVyYXRvciA9PShjb25zdCBSQkJJRGF0YVdyYXBwZXIgJm90aGVyKSBjb25zdDsKKyAgICBp
bnQzMl90ICAgICAgICAgICAgICAgaGFzaENvZGUoKTsKKyAgICBjb25zdCBVbmljb2RlU3RyaW5n
ICAmZ2V0UnVsZVNvdXJjZVN0cmluZygpIGNvbnN0OworI2lmZGVmIFJCQklfREVCVUcKKyAgICB2
b2lkICAgICAgICAgICAgICAgICAgcHJpbnREYXRhKCk7CisgICAgdm9pZCAgICAgICAgICAgICAg
ICAgIHByaW50VGFibGUoY29uc3QgY2hhciAqaGVhZGluZywgY29uc3QgUkJCSVN0YXRlVGFibGUg
KnRhYmxlKTsKKyNlbHNlCisgICAgI2RlZmluZSBwcmludERhdGEoKQorICAgICNkZWZpbmUgcHJp
bnRUYWJsZShoZWFkaW5nLCB0YWJsZSkKKyNlbmRpZgorCisgICAgLyogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAvKiAgIFBvaW50ZXJzIHRvIGl0ZW1zIHdpdGhp
biB0aGUgZGF0YSAqLworICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICovCisgICAgY29uc3QgUkJCSURhdGFIZWFkZXIgICAgICpmSGVhZGVyOworICAgIGNvbnN0IFJC
QklTdGF0ZVRhYmxlICAgICAqZkZvcndhcmRUYWJsZTsKKyAgICBjb25zdCBSQkJJU3RhdGVUYWJs
ZSAgICAgKmZSZXZlcnNlVGFibGU7CisgICAgY29uc3QgUkJCSVN0YXRlVGFibGUgICAgICpmU2Fm
ZUZ3ZFRhYmxlOworICAgIGNvbnN0IFJCQklTdGF0ZVRhYmxlICAgICAqZlNhZmVSZXZUYWJsZTsK
KyAgICBjb25zdCBVQ2hhciAgICAgICAgICAgICAgKmZSdWxlU291cmNlOworICAgIGNvbnN0IGlu
dDMyX3QgICAgICAgICAgICAqZlJ1bGVTdGF0dXNUYWJsZTsgCisKKyAgICAvKiBudW1iZXIgb2Yg
aW50MzJfdCB2YWx1ZXMgaW4gdGhlIHJ1bGUgc3RhdHVzIHRhYmxlLiAgIFVzZWQgdG8gc2FuaXR5
IGNoZWNrIGluZGV4aW5nICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmU3RhdHVzTWF4SWR4
OworCisgICAgVVRyaWUgICAgICAgICAgICAgICBmVHJpZTsKKworcHJpdmF0ZToKKyAgICB1X2F0
b21pY19pbnQzMl90ICAgIGZSZWZDb3VudDsKKyAgICBVRGF0YU1lbW9yeSAgKmZVRGF0YU1lbTsK
KyAgICBVbmljb2RlU3RyaW5nICAgICAgIGZSdWxlU3RyaW5nOworICAgIFVCb29sICAgICAgICAg
ICAgICAgZkRvbnRGcmVlRGF0YTsKKworICAgIFJCQklEYXRhV3JhcHBlcihjb25zdCBSQkJJRGF0
YVdyYXBwZXIgJm90aGVyKTsgLyogIGZvcmJpZCBjb3B5aW5nIG9mIHRoaXMgY2xhc3MgKi8KKyAg
ICBSQkJJRGF0YVdyYXBwZXIgJm9wZXJhdG9yPShjb25zdCBSQkJJRGF0YVdyYXBwZXIgJm90aGVy
KTsgLyogIGZvcmJpZCBjb3B5aW5nIG9mIHRoaXMgY2xhc3MgKi8KK307CisKKworCitVX05BTUVT
UEFDRV9FTkQKKworI2VuZGlmIC8qIEMrKyAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWNtbmRhdGEuaCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWNtbmRhdGEuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
NjE2M2M1MDhiOTc3NGI4ZjlkMmJiNGFiZTIyYzM0MTQxODI1NGVkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91Y21uZGF0YS5oCkBA
IC0wLDAgKzEsMTExIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJp
Z2h0IChDKSAxOTk5LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBD
b3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKi8KKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAg
IFVDb21tb25EYXRhICAgQW4gYWJzdHJhY3QgaW50ZXJmYWNlIGZvciBkZWFsaW5nIHdpdGggSUNV
IENvbW1vbiBEYXRhIEZpbGVzLgorICogICAgICAgICAgICAgICAgIElDVSBDb21tb24gRGF0YSBG
aWxlcyBhcmUgYSBncm91cGluZyBvZiBhIG51bWJlciBvZiBpbmRpdmlkdWFsCisgKiAgICAgICAg
ICAgICAgICAgZGF0YSBpdGVtcyAocmVzb3VyY2VzLCBjb252ZXJ0ZXJzLCB0YWJsZXMsIGFueXRo
aW5nKSBpbnRvIGEKKyAqICAgICAgICAgICAgICAgICBzaW5nbGUgZmlsZSBvciBkbGwuICBUaGUg
Y29tYmluZWQgZm9ybWF0IGluY2x1ZGVzIGEgdGFibGUgb2YKKyAqICAgICAgICAgICAgICAgICBj
b250ZW50cyBmb3IgbG9jYXRpbmcgdGhlIGluZGl2aWR1YWwgaXRlbXMgYnkgbmFtZS4KKyAqCisg
KiAgICAgICAgICAgICAgICAgVHdvIGZvcm1hdHMgZm9yIHRoZSB0YWJsZSBvZiBjb250ZW50cyBh
cmUgc3VwcG9ydGVkLCB3aGljaCBpcworICogICAgICAgICAgICAgICAgIHdoeSB0aGVyZSBpcyBh
biBhYnN0cmFjdCBpbnRlZmFjZSBpbnZvbHZlZC4KKyAqCisgKiAgICAgICAgICAgICAgICAgVGhl
c2UgZnVuY3Rpb25zIGFyZSBwYXJ0IG9mIHRoZSBJQ1UgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24s
IGFuZAorICogICAgICAgICAgICAgICAgIGFyZSBub3QgaW50ZWRlZCB0byBiZSB1c2VkIGRpcmVj
dGx5IGJ5IGFwcGxpY2F0aW9ucy4KKyAqLworCisjaWZuZGVmIF9fVUNNTkRBVEFfSF9fCisjZGVm
aW5lIF9fVUNNTkRBVEFfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisjaW5jbHVk
ZSAidW1hcGZpbGUuaCIKKworCisjZGVmaW5lIENPTU1PTl9EQVRBX05BTUUgVV9JQ1VEQVRBX05B
TUUKKwordHlwZWRlZiBzdHJ1Y3QgIHsKKyAgICB1aW50MTZfdCAgICBoZWFkZXJTaXplOworICAg
IHVpbnQ4X3QgICAgIG1hZ2ljMTsKKyAgICB1aW50OF90ICAgICBtYWdpYzI7Cit9IE1hcHBlZERh
dGE7CisKKwordHlwZWRlZiBzdHJ1Y3QgIHsKKyAgICBNYXBwZWREYXRhICBkYXRhSGVhZGVyOwor
ICAgIFVEYXRhSW5mbyAgIGluZm87Cit9IERhdGFIZWFkZXI7CisKK3R5cGVkZWYgc3RydWN0IHsK
KyAgICB1aW50MzJfdCBuYW1lT2Zmc2V0OworICAgIHVpbnQzMl90IGRhdGFPZmZzZXQ7Cit9IFVE
YXRhT2Zmc2V0VE9DRW50cnk7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1aW50MzJfdCBjb3Vu
dDsKKyAgICBVRGF0YU9mZnNldFRPQ0VudHJ5IGVudHJ5WzJdOyAgICAvKiBBY3R1YWwgc2l6ZSBv
ZiBhcnJheSBpcyBmcm9tIGNvdW50LiAqLworfSBVRGF0YU9mZnNldFRPQzsKKworLyoqCisgKiBH
ZXQgdGhlIGhlYWRlciBzaXplIGZyb20gYSBjb25zdCBEYXRhSGVhZGVyICp1ZGguCisgKiBIYW5k
bGVzIG9wcG9zaXRlLWVuZGlhbiBkYXRhLgorICoKKyAqIEBpbnRlcm5hbAorICovCitVX0NGVU5D
IHVpbnQxNl90Cit1ZGF0YV9nZXRIZWFkZXJTaXplKGNvbnN0IERhdGFIZWFkZXIgKnVkaCk7CisK
Ky8qKgorICogR2V0IHRoZSBVRGF0YUluZm8uc2l6ZSBmcm9tIGEgY29uc3QgVURhdGFJbmZvICpp
bmZvLgorICogSGFuZGxlcyBvcHBvc2l0ZS1lbmRpYW4gZGF0YS4KKyAqCisgKiBAaW50ZXJuYWwK
KyAqLworVV9DRlVOQyB1aW50MTZfdAordWRhdGFfZ2V0SW5mb1NpemUoY29uc3QgVURhdGFJbmZv
ICppbmZvKTsKKworVV9DREVDTF9CRUdJTgorLyoKKyAqICAiVmlydHVhbCIgZnVuY3Rpb25zIGZv
ciBkYXRhIGxvb2t1cC4KKyAqICBUbyBjYWxsIG9uZSwgZ2l2ZW4gYSBVRGF0YU1lbW9yeSAqcCwg
dGhlIGNvZGUgbG9va3MgbGlrZSB0aGlzOgorICogICAgIHAtPnZGdW5jcy5Mb29rdXAocCwgdG9j
RW50cnlOYW1lLCBwRXJyb3JDb2RlKTsKKyAqICAgICAgICAgIChJIHN1cmUgZG8gd2lzaCB0aGlz
IHdhcyB3cml0dGVuIGluIEMrKywgbm90IEMpCisgKi8KKwordHlwZWRlZiBjb25zdCBEYXRhSGVh
ZGVyICoKKyhVX0NBTExDT05WICogTG9va3VwRm4pKGNvbnN0IFVEYXRhTWVtb3J5ICpwRGF0YSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnRvY0VudHJ5TmFtZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGludDMyX3QgKnBMZW5ndGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKwordHlwZWRlZiB1aW50MzJfdAorKFVfQ0FM
TENPTlYgKiBOdW1FbnRyaWVzRm4pKGNvbnN0IFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKK1VfQ0RF
Q0xfRU5ECisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBMb29rdXBGbiAgICAgIExvb2t1cDsKKyAg
ICBOdW1FbnRyaWVzRm4gIE51bUVudHJpZXM7IAorfSBjb21tb25EYXRhRnVuY3M7CisKKworLyoK
KyAqICBGdW5jdGlvbnMgdG8gY2hlY2sgd2hldGhlciBhIFVEYXRhTWVtb3J5IHJlZmVycyB0byBt
ZW1vcnkgY29udGFpbmluZyAKKyAqICAgICBhIHJlY29nbml6YWJsZSBoZWFkZXIgYW5kIHRhYmxl
IG9mIGNvbnRlbnRzIGEgQ29tbW9uIERhdGEgRm9ybWF0CisgKgorICogICAgIElmIGEgdmFsaWQg
aGVhZGVyIGFuZCBUT0MgYXJlIGZvdW5kLAorICogICAgICAgICBzZXQgdGhlIENvbW1vbkRhdGFG
dW5jcyBmdW5jdGlvbiBkaXNwYXRjaCB2ZWN0b3IgaW4gdGhlIFVEYXRhTWVtb3J5CisgKiAgICAg
ICAgICAgICB0byBwb2ludCB0byB0aGUgcmlnaHQgZnVuY3Rpb25zIGZvciB0aGUgVE9DIHR5cGUu
CisgKiAgICAgb3RoZXJ3aXNlCisgKiAgICAgICAgIHNldCBhbiBlcnJvcmNvZGUuCisgKi8KK1Vf
Q0ZVTkMgdm9pZCB1ZGF0YV9jaGVja0NvbW1vbkRhdGEoVURhdGFNZW1vcnkgKnBEYXRhLCBVRXJy
b3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VkYXRhc3dwLmggYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VkYXRhc3dwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZjODQ5NTU2
NzY3MDg2ZWFiMWI1ZmI5YjAzMmVmNTA2NzAwZGM3MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWRhdGFzd3AuaApAQCAtMCwwICsx
LDM1MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMp
IDIwMDMtMjAxNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0
aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVkYXRhc3dwLmgKKyogICBlbmNvZGluZzogICBVUy1B
U0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoK
KyogICBjcmVhdGVkIG9uOiAyMDAzanVuMDUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2No
ZXJlcgorKgorKiAgIERlZmluaXRpb25zIGZvciBJQ1UgZGF0YSB0cmFuc2Zvcm1hdGlvbnMgZm9y
IGRpZmZlcmVudCBwbGF0Zm9ybXMsCisqICAgY2hhbmdpbmcgYmV0d2VlbiBiaWctIGFuZCBsaXR0
bGUtZW5kaWFuIGRhdGEgYW5kL29yIGJldHdlZW4KKyogICBjaGFyc2V0IGZhbWlsaWVzIChBU0NJ
STwtPkVCQ0RJQykuCisqLworCisjaWZuZGVmIF9fVURBVEFTV1BfSF9fCisjZGVmaW5lIF9fVURB
VEFTV1BfSF9fCisKKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBl
cy5oIgorCisvKiBmb3J3YXJkIGRlY2xhcmF0aW9uICovCisKK1VfQ0RFQ0xfQkVHSU4KKworc3Ry
dWN0IFVEYXRhU3dhcHBlcjsKK3R5cGVkZWYgc3RydWN0IFVEYXRhU3dhcHBlciBVRGF0YVN3YXBw
ZXI7CisKKy8qKgorICogRnVuY3Rpb24gdHlwZSBmb3IgZGF0YSB0cmFuc2Zvcm1hdGlvbi4KKyAq
IFRyYW5zZm9ybXMgZGF0YSwgb3IganVzdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEg
aWYKKyAqIHRoZSBpbnB1dCBsZW5ndGggaXMgLTEuCisgKiBTd2FwIGZ1bmN0aW9ucyBhc3N1bWUg
dGhhdCB0aGVpciBkYXRhIHBvaW50ZXJzIGFyZSBhbGlnbmVkIHByb3Blcmx5LgorICoKKyAqIFF1
aWNrIGltcGxlbWVudGF0aW9uIG91dGxpbmU6CisgKiAoYmVzdCB0byBjb3B5IGFuZCBhZGFwdCBh
bmQgZXhpc3Rpbmcgc3dhcHBlciBpbXBsZW1lbnRhdGlvbikKKyAqIGNoZWNrIHRoYXQgdGhlIGRh
dGEgbG9va3MgbGlrZSB0aGUgZXhwZWN0ZWQgZm9ybWF0CisgKiBpZihsZW5ndGg8MCkgeworICog
ICBwcmVmbGlnaHQ6CisgKiAgIG5ldmVyIGRlcmVmZXJlbmNlIG91dERhdGEKKyAqICAgcmVhZCBp
bkRhdGEgYW5kIGRldGVybWluZSB0aGUgZGF0YSBzaXplCisgKiAgIGFzc3VtZSB0aGF0IGluRGF0
YSBpcyBsb25nIGVub3VnaCBmb3IgdGhpcworICogfSBlbHNlIHsKKyAqICAgb3V0RGF0YSBjYW4g
YmUgTlVMTCBpZiBsZW5ndGg9PTAKKyAqICAgaW5EYXRhPT1vdXREYXRhIChpbi1wbGFjZSBzd2Fw
cGluZykgcG9zc2libGUgYnV0IG5vdCByZXF1aXJlZCEKKyAqICAgdmVyaWZ5IHRoYXQgbGVuZ3Ro
Pj0oYWN0dWFsIHNpemUpCisgKiAgIGlmIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgbm90IGV2ZXJ5
IGJ5dGUgdXAgdG8gc2l6ZSBpcyByZWFjaGVkCisgKiAgICAgZHVlIHRvIHBhZGRpbmcgZXRjLjoK
KyAqICAgaWYoaW5EYXRhIT1vdXREYXRhKSB7CisgKiAgICAgbWVtY3B5KG91dERhdGEsIGluRGF0
YSwgYWN0dWFsIHNpemUpOworICogICB9CisgKiAgIHN3YXAgY29udGVudHMKKyAqIH0KKyAqIHJl
dHVybiBhY3R1YWwgc2l6ZQorICoKKyAqIEZ1cnRoZXIgaW1wbGVtZW50YXRpb24gbm90ZXM6Cisg
KiAtIHJlYWQgaW50ZWdlcnMgZnJvbSBpbkRhdGEgYmVmb3JlIHN3YXBwaW5nIHRoZW0KKyAqICAg
YmVjYXVzZSBpbi1wbGFjZSBzd2FwcGluZyBjYW4gbWFrZSB0aGVtIHVucmVhZGFibGUKKyAqIC0g
Y29tcGFyZUludkNoYXJzIGNvbXBhcmVzIGEgbG9jYWwgVW5pY29kZSBzdHJpbmcgd2l0aCBhbHJl
YWR5LXN3YXBwZWQKKyAqICAgb3V0cHV0IGNoYXJzZXQgc3RyaW5ncworICoKKyAqIEBwYXJhbSBk
cyBQb2ludGVyIHRvIFVEYXRhU3dhcHBlciBjb250YWluaW5nIGdsb2JhbCBkYXRhIGFib3V0IHRo
ZQorICogICAgICAgICAgIHRyYW5zZm9ybWF0aW9uIGFuZCBmdW5jdGlvbiBwb2ludGVycyBmb3Ig
aGFuZGxpbmcgcHJpbWl0aXZlCisgKiAgICAgICAgICAgdHlwZXMuCisgKiBAcGFyYW0gaW5EYXRh
IFBvaW50ZXIgdG8gdGhlIGlucHV0IGRhdGEgdG8gYmUgdHJhbnNmb3JtZWQgb3IgZXhhbWluZWQu
CisgKiBAcGFyYW0gbGVuZ3RoIExlbmd0aCBvZiB0aGUgZGF0YSwgY291bnRpbmcgYnl0ZXMuIE1h
eSBiZSAtMSBmb3IgcHJlZmxpZ2h0aW5nLgorICogICAgICAgICAgICAgICBJZiBsZW5ndGg+PTAs
IHRoZW4gdHJhbnNmb3JtIHRoZSBkYXRhLgorICogICAgICAgICAgICAgICBJZiBsZW5ndGg9PS0x
LCB0aGVuIG9ubHkgZGV0ZXJtaW5lIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEuCisgKiAgICAgICAg
ICAgICAgIFRoZSBsZW5ndGggY2Fubm90IGJlIGRldGVybWluZWQgZnJvbSB0aGUgZGF0YSBpdHNl
bGYgZm9yIGFsbAorICogICAgICAgICAgICAgICB0eXBlcyBvZiBkYXRhIChlLmcuLCBub3QgZm9y
IHNpbXBsZSBhcnJheXMgb2YgaW50ZWdlcnMpLgorICogQHBhcmFtIG91dERhdGEgUG9pbnRlciB0
byB0aGUgb3V0cHV0IGRhdGEgYnVmZmVyLgorICogICAgICAgICAgICAgICAgSWYgbGVuZ3RoPj0w
ICh0cmFuc2Zvcm1hdGlvbiksIHRoZW4gdGhlIG91dHB1dCBidWZmZXIgbXVzdAorICogICAgICAg
ICAgICAgICAgaGF2ZSBhIGNhcGFjaXR5IG9mIGF0IGxlYXN0IGxlbmd0aC4KKyAqICAgICAgICAg
ICAgICAgIElmIGxlbmd0aD09LTEsIHRoZW4gb3V0RGF0YSB3aWxsIG5vdCBiZSB1c2VkIGFuZCBj
YW4gYmUgTlVMTC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRl
ciwgbXVzdCBub3QgYmUgTlVMTCBhbmQgbXVzdAorICogICAgICAgICAgICAgICAgICAgZnVsZmls
bCBVX1NVQ0NFU1Mgb24gaW5wdXQuCisgKiBAcmV0dXJuIFRoZSBhY3R1YWwgbGVuZ3RoIG9mIHRo
ZSBkYXRhLgorICoKKyAqIEBzZWUgVURhdGFTd2FwcGVyCisgKiBAaW50ZXJuYWwgSUNVIDIuOAor
ICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgorVURhdGFTd2FwRm4oY29uc3QgVURhdGFT
d2FwcGVyICpkcywKKyAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5n
dGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsK
KworLyoqCisgKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIGlucHV0IHRvIHBsYXRmb3JtIGVu
ZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHVpbnQxNl90IFVf
Q0FMTENPTlYKK1VEYXRhUmVhZFVJbnQxNih1aW50MTZfdCB4KTsKKworLyoqCisgKiBDb252ZXJ0
IG9uZSB1aW50MzJfdCBmcm9tIGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuCisgKiBAaW50
ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHVpbnQzMl90IFVfQ0FMTENPTlYKK1VEYXRhUmVh
ZFVJbnQzMih1aW50MzJfdCB4KTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9t
IHBsYXRmb3JtIHRvIGlucHV0IGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICov
Cit0eXBlZGVmIHZvaWQgVV9DQUxMQ09OVgorVURhdGFXcml0ZVVJbnQxNih1aW50MTZfdCAqcCwg
dWludDE2X3QgeCk7CisKKy8qKgorICogQ29udmVydCBvbmUgdWludDMyX3QgZnJvbSBwbGF0Zm9y
bSB0byBpbnB1dCBlbmRpYW5uZXNzLgorICogQGludGVybmFsIElDVSAyLjgKKyAqLwordHlwZWRl
ZiB2b2lkIFVfQ0FMTENPTlYKK1VEYXRhV3JpdGVVSW50MzIodWludDMyX3QgKnAsIHVpbnQzMl90
IHgpOworCisvKioKKyAqIENvbXBhcmUgaW52YXJpYW50LWNoYXJhY3RlciBzdHJpbmdzLCBvbmUg
aW4gdGhlIG91dHB1dCBkYXRhIGFuZCB0aGUKKyAqIG90aGVyIG9uZSBjYWxsZXItcHJvdmlkZWQg
aW4gVW5pY29kZS4KKyAqIEFuIG91dHB1dCBkYXRhIHN0cmluZyBpcyBjb21wYXJlZCBiZWNhdXNl
IHN0cmluZ3MgYXJlIHVzdWFsbHkgc3dhcHBlZAorICogYmVmb3JlIHRoZSByZXN0IG9mIHRoZSBk
YXRhLCB0byBhbGxvdyBmb3Igc29ydGluZyBvZiBzdHJpbmcgdGFibGVzCisgKiBhY2NvcmRpbmcg
dG8gdGhlIG91dHB1dCBjaGFyc2V0LgorICogWW91IGNhbiB1c2UgLTEgZm9yIHRoZSBsZW5ndGgg
cGFyYW1ldGVycyBvZiBOVUwtdGVybWluYXRlZCBzdHJpbmdzIGFzIHVzdWFsLgorICogUmV0dXJu
cyBVbmljb2RlIGNvZGUgcG9pbnQgb3JkZXIgZm9yIGludmFyaWFudCBjaGFyYWN0ZXJzLgorICog
QGludGVybmFsIElDVSAyLjgKKyAqLwordHlwZWRlZiBpbnQzMl90IFVfQ0FMTENPTlYKK1VEYXRh
Q29tcGFyZUludkNoYXJzKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyICpvdXRTdHJpbmcsIGludDMyX3Qgb3V0TGVuZ3RoLAorICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxvY2FsU3RyaW5nLCBpbnQzMl90IGxvY2FsTGVuZ3Ro
KTsKKworLyoqCisgKiBGdW5jdGlvbiBmb3IgbWVzc2FnZSBvdXRwdXQgd2hlbiBhbiBlcnJvciBv
Y2N1cnMgZHVyaW5nIGRhdGEgc3dhcHBpbmcuCisgKiBBIGZvcm1hdCBzdHJpbmcgYW5kIHZhcmlh
YmxlIG51bWJlciBvZiBhcmd1bWVudHMgYXJlIHBhc3NlZAorICogbGlrZSBmb3IgdnByaW50Zigp
LgorICoKKyAqIEBwYXJhbSBjb250ZXh0IEEgZnVuY3Rpb24tc3BlY2lmaWMgY29udGV4dCBwb2lu
dGVyLgorICogQHBhcmFtIGZtdCBUaGUgZm9ybWF0IHN0cmluZy4KKyAqIEBwYXJhbSBhcmdzIFRo
ZSBhcmd1bWVudHMgZm9yIGZvcm1hdCBzdHJpbmcgaW5zZXJ0cy4KKyAqCisgKiBAaW50ZXJuYWwg
SUNVIDIuOAorICovCit0eXBlZGVmIHZvaWQgVV9DQUxMQ09OVgorVURhdGFQcmludEVycm9yKHZv
aWQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKTsKKworc3RydWN0IFVE
YXRhU3dhcHBlciB7CisgICAgLyoqIElucHV0IGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44
ICovCisgICAgVUJvb2wgaW5Jc0JpZ0VuZGlhbjsKKyAgICAvKiogSW5wdXQgY2hhcnNldCBmYW1p
bHkuIEBzZWUgVV9DSEFSU0VUX0ZBTUlMWSBAaW50ZXJuYWwgSUNVIDIuOCAqLworICAgIHVpbnQ4
X3QgaW5DaGFyc2V0OworICAgIC8qKiBPdXRwdXQgZW5kaWFubmVzcy4gQGludGVybmFsIElDVSAy
LjggKi8KKyAgICBVQm9vbCBvdXRJc0JpZ0VuZGlhbjsKKyAgICAvKiogT3V0cHV0IGNoYXJzZXQg
ZmFtaWx5LiBAc2VlIFVfQ0hBUlNFVF9GQU1JTFkgQGludGVybmFsIElDVSAyLjggKi8KKyAgICB1
aW50OF90IG91dENoYXJzZXQ7CisKKyAgICAvKiBiYXNpYyBmdW5jdGlvbnMgZm9yIHJlYWRpbmcg
ZGF0YSB2YWx1ZXMgKi8KKworICAgIC8qKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIGlucHV0
IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgVURhdGFS
ZWFkVUludDE2ICpyZWFkVUludDE2OworICAgIC8qKiBDb252ZXJ0IG9uZSB1aW50MzJfdCBmcm9t
IGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAg
VURhdGFSZWFkVUludDMyICpyZWFkVUludDMyOworICAgIC8qKiBDb21wYXJlIGFuIGludmFyaWFu
dC1jaGFyYWN0ZXIgb3V0cHV0IHN0cmluZyB3aXRoIGEgbG9jYWwgb25lLiBAaW50ZXJuYWwgSUNV
IDIuOCAqLworICAgIFVEYXRhQ29tcGFyZUludkNoYXJzICpjb21wYXJlSW52Q2hhcnM7CisKKyAg
ICAvKiBiYXNpYyBmdW5jdGlvbnMgZm9yIHdyaXRpbmcgZGF0YSB2YWx1ZXMgKi8KKworICAgIC8q
KiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIHBsYXRmb3JtIHRvIGlucHV0IGVuZGlhbm5lc3Mu
IEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgVURhdGFXcml0ZVVJbnQxNiAqd3JpdGVVSW50MTY7
CisgICAgLyoqIENvbnZlcnQgb25lIHVpbnQzMl90IGZyb20gcGxhdGZvcm0gdG8gaW5wdXQgZW5k
aWFubmVzcy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVdyaXRlVUludDMyICp3cml0
ZVVJbnQzMjsKKworICAgIC8qIGJhc2ljIGZ1bmN0aW9ucyBmb3IgZGF0YSB0cmFuc2Zvcm1hdGlv
bnMgKi8KKworICAgIC8qKiBUcmFuc2Zvcm0gYW4gYXJyYXkgb2YgMTYtYml0IGludGVnZXJzLiBA
aW50ZXJuYWwgSUNVIDIuOCAqLworICAgIFVEYXRhU3dhcEZuICpzd2FwQXJyYXkxNjsKKyAgICAv
KiogVHJhbnNmb3JtIGFuIGFycmF5IG9mIDMyLWJpdCBpbnRlZ2Vycy4gQGludGVybmFsIElDVSAy
LjggKi8KKyAgICBVRGF0YVN3YXBGbiAqc3dhcEFycmF5MzI7CisgICAgLyoqIFRyYW5zZm9ybSBh
biBhcnJheSBvZiA2NC1iaXQgaW50ZWdlcnMuIEBpbnRlcm5hbCBJQ1UgNTMgKi8KKyAgICBVRGF0
YVN3YXBGbiAqc3dhcEFycmF5NjQ7CisgICAgLyoqIFRyYW5zZm9ybSBhbiBpbnZhcmlhbnQtY2hh
cmFjdGVyIHN0cmluZy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVN3YXBGbiAqc3dh
cEludkNoYXJzOworCisgICAgLyoqCisgICAgICogRnVuY3Rpb24gZm9yIG1lc3NhZ2Ugb3V0cHV0
IHdoZW4gYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBkYXRhIHN3YXBwaW5nLgorICAgICAqIENhbiBi
ZSBOVUxMLgorICAgICAqIEBpbnRlcm5hbCBJQ1UgMi44CisgICAgICovCisgICAgVURhdGFQcmlu
dEVycm9yICpwcmludEVycm9yOworICAgIC8qKiBDb250ZXh0IHBvaW50ZXIgZm9yIHByaW50RXJy
b3IuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgdm9pZCAqcHJpbnRFcnJvckNvbnRleHQ7Cit9
OworCitVX0NERUNMX0VORAorCitVX0NBUEkgVURhdGFTd2FwcGVyICogVV9FWFBPUlQyCit1ZGF0
YV9vcGVuU3dhcHBlcihVQm9vbCBpbklzQmlnRW5kaWFuLCB1aW50OF90IGluQ2hhcnNldCwKKyAg
ICAgICAgICAgICAgICAgIFVCb29sIG91dElzQmlnRW5kaWFuLCB1aW50OF90IG91dENoYXJzZXQs
CisgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBP
cGVuIGEgVURhdGFTd2FwcGVyIGZvciB0aGUgZ2l2ZW4gaW5wdXQgZGF0YSBhbmQgdGhlIHNwZWNp
ZmllZCBvdXRwdXQKKyAqIGNoYXJhY3RlcmlzdGljcy4KKyAqIFZhbHVlcyBvZiAtMSBmb3IgYW55
IG9mIHRoZSBjaGFyYWN0ZXJpc3RpY3MgbWVhbiB0aGUgbG9jYWwgcGxhdGZvcm0ncworICogY2hh
cmFjdGVyaXN0aWNzLgorICoKKyAqIEBzZWUgdWRhdGFfc3dhcAorICogQGludGVybmFsIElDVSAy
LjgKKyAqLworVV9DQVBJIFVEYXRhU3dhcHBlciAqIFVfRVhQT1JUMgordWRhdGFfb3BlblN3YXBw
ZXJGb3JJbnB1dERhdGEoY29uc3Qgdm9pZCAqZGF0YSwgaW50MzJfdCBsZW5ndGgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVQm9vbCBvdXRJc0JpZ0VuZGlhbiwgdWludDhfdCBvdXRD
aGFyc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9y
Q29kZSk7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfY2xvc2VTd2FwcGVyKFVEYXRh
U3dhcHBlciAqZHMpOworCisvKioKKyAqIFJlYWQgdGhlIGJlZ2lubmluZyBvZiBhbiBJQ1UgZGF0
YSBwaWVjZSwgcmVjb2duaXplIG1hZ2ljIGJ5dGVzLAorICogc3dhcCB0aGUgc3RydWN0dXJlLgor
ICogU2V0IGEgVV9VTlNVUFBPUlRFRF9FUlJPUiBpZiBpdCBkb2VzIG5vdCBsb29rIGxpa2UgYW4g
SUNVIGRhdGEgcGllY2UuCisgKgorICogQHJldHVybiBUaGUgc2l6ZSBvZiB0aGUgZGF0YSBoZWFk
ZXIsIGluIGJ5dGVzLgorICoKKyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK1VfQ0FQSSBpbnQz
Ml90IFVfRVhQT1JUMgordWRhdGFfc3dhcERhdGFIZWFkZXIoY29uc3QgVURhdGFTd2FwcGVyICpk
cywKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5n
dGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJy
b3JDb2RlKTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSBpbnQxNl90IGZyb20gaW5wdXQgdG8gcGxh
dGZvcm0gZW5kaWFubmVzcy4KKyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK1VfQ0FQSSBpbnQx
Nl90IFVfRVhQT1JUMgordWRhdGFfcmVhZEludDE2KGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsIGlu
dDE2X3QgeCk7CisKKy8qKgorICogQ29udmVydCBvbmUgaW50MzJfdCBmcm9tIGlucHV0IHRvIHBs
YXRmb3JtIGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCitVX0NBUEkgaW50
MzJfdCBVX0VYUE9SVDIKK3VkYXRhX3JlYWRJbnQzMihjb25zdCBVRGF0YVN3YXBwZXIgKmRzLCBp
bnQzMl90IHgpOworCisvKioKKyAqIFN3YXAgYSBibG9jayBvZiBpbnZhcmlhbnQsIE5VTC10ZXJt
aW5hdGVkIHN0cmluZ3MsIGJ1dCBub3QgcGFkZGluZworICogYnl0ZXMgYWZ0ZXIgdGhlIGxhc3Qg
c3RyaW5nLgorICogQGludGVybmFsCisgKi8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgordWRh
dGFfc3dhcEludlN0cmluZ0Jsb2NrKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAq
b3V0RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2Rl
KTsKKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9wcmludEVycm9yKGNvbnN0IFVEYXRh
U3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZtdCwKKyAgICAgICAg
ICAgICAgICAgLi4uKTsKKworLyogaW50ZXJuYWwgZXhwb3J0cyBmcm9tIHB1dGlsLmMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyogZGVjbGFyZWQg
aGVyZSB0byBrZWVwIHRoZW0gb3V0IG9mIHRoZSBwdWJsaWMgcHV0aWwuaCAqLworCisvKioKKyAq
IFN3YXAgaW52YXJpYW50IGNoYXIgKiBzdHJpbmdzIEFTQ0lJLT5FQkNESUMuCisgKiBAaW50ZXJu
YWwKKyAqLworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCit1cHJ2X2ViY2RpY0Zyb21Bc2NpaShj
b25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAq
aW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAgICAgICAgICAg
ICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENvcHkgaW52YXJpYW50IEFT
Q0lJIGNoYXIgKiBzdHJpbmdzIGFuZCB2ZXJpZnkgdGhleSBhcmUgaW52YXJpYW50LgorICogQGlu
dGVybmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBydl9jb3B5QXNjaWkoY29uc3QgVURhdGFT
d2FwcGVyICpkcywKKyAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBs
ZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKTsKKworLyoqCisgKiBTd2FwIGludmFyaWFudCBjaGFyICogc3RyaW5ncyBFQkNESUMtPkFT
Q0lJLgorICogQGludGVybmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBydl9hc2NpaUZyb21F
YmNkaWMoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBDb3B5IGludmFy
aWFudCBFQkNESUMgY2hhciAqIHN0cmluZ3MgYW5kIHZlcmlmeSB0aGV5IGFyZSBpbnZhcmlhbnQu
CisgKiBAaW50ZXJuYWwKKyAqLworVV9DRlVOQyBpbnQzMl90Cit1cHJ2X2NvcHlFYmNkaWMoY29u
c3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICBjb25zdCB2b2lkICppbkRhdGEs
IGludDMyX3QgbGVuZ3RoLCB2b2lkICpvdXREYXRhLAorICAgICAgICAgICAgICAgIFVFcnJvckNv
ZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENvbXBhcmUgQVNDSUkgaW52YXJpYW50IGNoYXIg
KiB3aXRoIFVuaWNvZGUgaW52YXJpYW50IFVDaGFyICoKKyAqIEBpbnRlcm5hbAorICovCitVX0NG
VU5DIGludDMyX3QKK3VwcnZfY29tcGFyZUludkFzY2lpKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMs
CisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpvdXRTdHJpbmcsIGludDMyX3Qgb3V0
TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxvY2FsU3RyaW5nLCBp
bnQzMl90IGxvY2FsTGVuZ3RoKTsKKworLyoqCisgKiBDb21wYXJlIEVCQ0RJQyBpbnZhcmlhbnQg
Y2hhciAqIHdpdGggVW5pY29kZSBpbnZhcmlhbnQgVUNoYXIgKgorICogQGludGVybmFsCisgKi8K
K1VfQ0ZVTkMgaW50MzJfdAordXBydl9jb21wYXJlSW52RWJjZGljKGNvbnN0IFVEYXRhU3dhcHBl
ciAqZHMsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqb3V0U3RyaW5nLCBpbnQz
Ml90IG91dExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqbG9jYWxT
dHJpbmcsIGludDMyX3QgbG9jYWxMZW5ndGgpOworCisvKiBtYXRlcmlhbC4uLiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwor
CisjaWYgMAorCisvKiB1ZGF0YS5oICovCisKKy8qKgorICogUHVibGljIEFQSSBmdW5jdGlvbiBp
biB1ZGF0YS5jCisgKgorICogU2FtZSBhcyB1ZGF0YV9vcGVuQ2hvaWNlKCkgYnV0IGF1dG9tYXRp
Y2FsbHkgc3dhcHMgdGhlIGRhdGEuCisgKiBpc0FjY2VwdGFibGUsIGlmIG5vdCBOVUxMLCBtYXkg
YWNjZXB0IGRhdGEgd2l0aCBlbmRpYW5uZXNzIGFuZCBjaGFyc2V0IGZhbWlseQorICogZGlmZmVy
ZW50IGZyb20gdGhlIGN1cnJlbnQgcGxhdGZvcm0ncyBwcm9wZXJ0aWVzLgorICogSWYgdGhlIGRh
dGEgaXMgYWNjZXB0YWJsZSBhbmQgdGhlIHBsYXRmb3JtIHByb3BlcnRpZXMgZG8gbm90IG1hdGNo
LCB0aGVuCisgKiB0aGUgc3dhcCBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gc3dhcCBhbiBhbGxvY2F0
ZWQgdmVyc2lvbiBvZiB0aGUgZGF0YS4KKyAqIFByZWZsaWdodGluZyBtYXkgb3IgbWF5IG5vdCBi
ZSBwZXJmb3JtZWQgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHNpemUgb2YKKyAqIHRoZSBsb2Fk
ZWQgZGF0YSBpdGVtIGlzIGtub3duLgorICoKKyAqIEBwYXJhbSBpc0FjY2VwdGFibGUgU2FtZSBh
cyBmb3IgdWRhdGFfb3BlbkNob2ljZSgpLiBNYXkgYmUgTlVMTC4KKyAqCisgKiBAaW50ZXJuYWwg
SUNVIDIuOAorICovCitVX0NBUEkgVURhdGFNZW1vcnkgKiBVX0VYUE9SVDIKK3VkYXRhX29wZW5T
d2FwKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUs
CisgICAgICAgICAgICAgICBVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSAqaXNBY2NlcHRhYmxlLCB2
b2lkICppc0FjY2VwdGFibGVDb250ZXh0LAorICAgICAgICAgICAgICAgVURhdGFTd2FwRm4gKnN3
YXAsCisgICAgICAgICAgICAgICBVRGF0YVByaW50RXJyb3IgKnByaW50RXJyb3IsIHZvaWQgKnBy
aW50RXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7
CisKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9nZW5icmsvdW1hcGZpbGUuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9nZW5icmsvdW1hcGZpbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTk1ZTM4MWVkMzBjMGI5MDMy
NmIyNGVjZGYxMjI0OWZkNDM0NTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bWFwZmlsZS5oCkBAIC0wLDAgKzEsNTUgQEAKKy8q
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMSwg
SW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhl
cnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisv
Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAgICAgICBNZW1vcnkgbWFwcGVkIGZp
bGUgd3JhcHBlcnMgZm9yIHVzZSBieSB0aGUgSUNVIERhdGEgSW1wbGVtZW50YXRpb24KKyAqCisg
KiAgICAgICAgICAgUG9ydGluZyBub3RlOiAgVGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIGZ1
bmN0aW9ucyBpcyB2ZXJ5IHBsYXRmb3JtIHNwZWNpZmljLgorICogICAgICAgICAgICAgTm90IGFs
bCBwbGF0Zm9ybXMgY2FuIGRvIHJlYWwgbWVtb3J5IG1hcHBpbmcuICBUaG9zZSB0aGF0IGNhbid0
CisgKiAgICAgICAgICAgICBzdGlsbCBtdXN0IGltcGxlbWVudCB0aGVzZSBmdW5jdGlvbnMsIGdl
dHRpbmcgdGhlIGRhdGEgaW50byBtZW1vcnkgdXNpbmcKKyAqICAgICAgICAgICAgIHdoYXRldmVy
IG1lYW5zIGFyZSBhdmFpbGFibGUuCisgKgorICogICAgICAgICAgICBUaGVzZSBmdW5jdGlvbnMg
YXJlIHBhcnQgb2YgdGhlIElDVSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiwgYW5kCisgKiAgICAg
ICAgICAgIGFyZSBub3QgaW50ZWRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGJ5IGFwcGxpY2F0aW9u
cy4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisjaWZuZGVmIF9fVU1BUEZJ
TEVfSF9fCisjZGVmaW5lIF9fVU1BUEZJTEVfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3B1dGls
LmgiCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgorI2luY2x1ZGUgInB1dGlsaW1wLmgiCisK
K1VfQ0ZVTkMgVUJvb2wgdXBydl9tYXBGaWxlKFVEYXRhTWVtb3J5ICpwZG0sIGNvbnN0IGNoYXIg
KnBhdGgpOworVV9DRlVOQyB2b2lkICB1cHJ2X3VubWFwRmlsZShVRGF0YU1lbW9yeSAqcERhdGEp
OworCisvKiBNQVBfTk9ORTogbm8gbWVtb3J5IG1hcHBpbmcsIG5vIGZpbGUgYWNjZXNzIGF0IGFs
bCAqLworI2RlZmluZSBNQVBfTk9ORSAgICAgICAgMAorI2RlZmluZSBNQVBfV0lOMzIgICAgICAg
MQorI2RlZmluZSBNQVBfUE9TSVggICAgICAgMgorI2RlZmluZSBNQVBfU1RESU8gICAgICAgMwor
I2RlZmluZSBNQVBfMzkwRExMICAgICAgNAorCisjaWYgVUNPTkZJR19OT19GSUxFX0lPCisjICAg
ZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfTk9ORQorI2VsaWYgVV9QTEFURk9STV9VU0VT
X09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfV0lOMzIK
KyNlbGlmIFVfSEFWRV9NTUFQIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MAorIyAgIGlmIFVf
UExBVEZPUk0gPT0gVV9QRl9PUzM5MCAmJiBkZWZpbmVkIChPUzM5MF9TVFVCREFUQSkKKyAgICAg
ICAgLyogICBObyBtZW1vcnkgbWFwcGluZyBmb3IgMzkwIGJhdGNoIG1vZGUuICBGYWtlIGl0IHVz
aW5nIGRsbCBsb2FkaW5nLiAgKi8KKyMgICAgICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBN
QVBfMzkwRExMCisjICAgZWxzZQorIyAgICAgICBkZWZpbmUgTUFQX0lNUExFTUVOVEFUSU9OIE1B
UF9QT1NJWAorIyAgIGVuZGlmCisjZWxzZSAvKiB1bmtub3duIHBsYXRmb3JtLCBubyBtZW1vcnkg
bWFwIGltcGxlbWVudGF0aW9uOiB1c2Ugc3RkaW8uaCBhbmQgdXBydl9tYWxsb2MoKSBpbnN0ZWFk
ICovCisjICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfU1RESU8KKyNlbmRpZgorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5i
cmsvdW11dGV4LmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3Vt
dXRleC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUwYWQwZDNjMDM2NTRkNjFhMDIzYTA4MjU0ODU2M2Q4ZDRjMDNj
NjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Z2VuYnJrL3VtdXRleC5oCkBAIC0wLDAgKzEsNDI0IEBACisvKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IENvcHlyaWdodCAoQykgMTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisqCisqIEZpbGUgVU1VVEVYLkgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6
CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwNC8wMi85
NyAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqICAgMDQvMDcvOTkgIHNybCAgICAgICAgIHJld3Jp
dGUgLSBDIGludGVyZmFjZSwgbXVsdGlwbGUgbXV0aWNlcworKiAgIDA1LzEzLzk5ICBzdGVwaGVu
ICAgICBDaGFuZ2VkIHRvIHVtdXRleCAoZnJvbSBjbXV0ZXgpCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyovCisKKyNpZm5kZWYgVU1VVEVYX0gKKyNkZWZpbmUgVU1VVEVYX0gKKworI2luY2x1ZGUg
InVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2xlYW4uaCIKKyNpbmNsdWRl
ICJwdXRpbGltcC5oIgorCisKKworLy8gRm9yd2FyZCBEZWNsYXJhdGlvbnMuIFVNdXRleCBpcyBu
b3QgaW4gdGhlIElDVSBuYW1lc3BhY2UgKHlldCkgYmVjYXVzZQorLy8gICAgICAgICAgICAgICAg
ICAgICAgIHRoZXJlIGFyZSBzb21lIHJlbWFpbmluZyByZWZlcmVuY2VzIGZyb20gcGxhaW4gQy4K
K3N0cnVjdCBVTXV0ZXg7CitzdHJ1Y3QgVUNvbmRpdGlvblZhcjsKKworVV9OQU1FU1BBQ0VfQkVH
SU4KK3N0cnVjdCBVSW5pdE9uY2U7CitVX05BTUVTUEFDRV9FTkQKKworLy8gU3RyaW5naWZ5IG1h
Y3JvcywgdG8gYWxsb3cgI2luY2x1ZGUgb2YgdXNlciBzdXBwbGllZCBhdG9taWMgJiBtdXRleCBm
aWxlcy4KKyNkZWZpbmUgVV9NVVRFWF9TVFIocykgI3MKKyNkZWZpbmUgVV9NVVRFWF9YU1RSKHMp
IFVfTVVURVhfU1RSKHMpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICBMb3cgTGV2
ZWwgQXRvbWljIE9wZXJhdGlvbnMuCisgKiAgICAgIENvbXBpbGVyIGRlcGVuZGVudC4gTm90IG9w
ZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50LgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lm
IGRlZmluZWQgKFVfVVNFUl9BVE9NSUNTX0gpCisjaW5jbHVkZSBVX01VVEVYX1hTVFIoVV9VU0VS
X0FUT01JQ1NfSCkKKworI2VsaWYgVV9IQVZFX1NURF9BVE9NSUNTCisKKy8vICBDKysxMSBhdG9t
aWNzIGFyZSBhdmFpbGFibGUuCisKKyNpbmNsdWRlIDxhdG9taWM+CisKK1VfTkFNRVNQQUNFX0JF
R0lOCisKK3R5cGVkZWYgc3RkOjphdG9taWM8aW50MzJfdD4gdV9hdG9taWNfaW50MzJfdDsKKyNk
ZWZpbmUgQVRPTUlDX0lOVDMyX1RfSU5JVElBTElaRVIodmFsKSBBVE9NSUNfVkFSX0lOSVQodmFs
KQorCitpbmxpbmUgaW50MzJfdCB1bXR4X2xvYWRBY3F1aXJlKHVfYXRvbWljX2ludDMyX3QgJnZh
cikgeworICAgIHJldHVybiB2YXIubG9hZChzdGQ6Om1lbW9yeV9vcmRlcl9hY3F1aXJlKTsKK30K
KworaW5saW5lIHZvaWQgdW10eF9zdG9yZVJlbGVhc2UodV9hdG9taWNfaW50MzJfdCAmdmFyLCBp
bnQzMl90IHZhbCkgeworICAgIHZhci5zdG9yZSh2YWwsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGVh
c2UpOworfQorCitpbmxpbmUgaW50MzJfdCB1bXR4X2F0b21pY19pbmModV9hdG9taWNfaW50MzJf
dCAqdmFyKSB7CisgICAgcmV0dXJuIHZhci0+ZmV0Y2hfYWRkKDEpICsgMTsKK30KKworaW5saW5l
IGludDMyX3QgdW10eF9hdG9taWNfZGVjKHVfYXRvbWljX2ludDMyX3QgKnZhcikgeworICAgIHJl
dHVybiB2YXItPmZldGNoX3N1YigxKSAtIDE7Cit9CitVX05BTUVTUEFDRV9FTkQKKworI2VsaWYg
VV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisKKy8vIE1TVkMgY29tcGlsZXIuIFJlYWRzIGFuZCB3
cml0ZXMgb2Ygdm9sYXRpbGUgdmFyaWFibGVzIGhhdmUKKy8vICAgICAgICAgICAgICAgIGFjcXVp
cmUgYW5kIHJlbGVhc2UgbWVtb3J5IHNlbWFudGljcywgcmVzcGVjdGl2ZWx5LgorLy8gICAgICAg
ICAgICAgICAgVGhpcyBpcyBhIE1pY3Jvc29mdCBleHRlbnNpb24sIG5vdCBzdGFuZGFyZCBDKysg
YmVoYXZpb3IuCisvLworLy8gICBVcGRhdGU6ICAgICAgY2FuJ3QgdXNlIHRoaXMgYmVjYXVzZSBv
ZiBNaW5HVywgYnVpbHQgd2l0aCBnY2MuCisvLyAgICAgICAgICAgICAgICBPcmlnaW5hbCBwbGFu
IHdhcyB0byB1c2UgZ2NjIGF0b21pY3MgZm9yIE1pbkdXLCBidXQgdGhleQorLy8gICAgICAgICAg
ICAgICAgYXJlbid0IHN1cHBvcnRlZCwgc28gd2UgZm9sZCBNaW5HVyBpbnRvIHRoaXMgcGF0aC4K
KworIyBkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgorIyBkZWZpbmUgVkNfRVhUUkFMRUFOCisj
IGRlZmluZSBOT1VTRVIKKyMgZGVmaW5lIE5PU0VSVklDRQorIyBkZWZpbmUgTk9JTUUKKyMgZGVm
aW5lIE5PTUNYCisjIGlmbmRlZiBOT01JTk1BWAorIyBkZWZpbmUgTk9NSU5NQVgKKyMgZW5kaWYK
KyMgaW5jbHVkZSA8d2luZG93cy5oPgorCitVX05BTUVTUEFDRV9CRUdJTgordHlwZWRlZiB2b2xh
dGlsZSBMT05HIHVfYXRvbWljX2ludDMyX3Q7CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJ
QUxJWkVSKHZhbCkgdmFsCisKK2lubGluZSBpbnQzMl90IHVtdHhfbG9hZEFjcXVpcmUodV9hdG9t
aWNfaW50MzJfdCAmdmFyKSB7CisgICAgcmV0dXJuIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdl
KCZ2YXIsIDAsIDApOworfQorCitpbmxpbmUgdm9pZCB1bXR4X3N0b3JlUmVsZWFzZSh1X2F0b21p
Y19pbnQzMl90ICZ2YXIsIGludDMyX3QgdmFsKSB7CisgICAgSW50ZXJsb2NrZWRFeGNoYW5nZSgm
dmFyLCB2YWwpOworfQorCisKK2lubGluZSBpbnQzMl90IHVtdHhfYXRvbWljX2luYyh1X2F0b21p
Y19pbnQzMl90ICp2YXIpIHsKKyAgICByZXR1cm4gSW50ZXJsb2NrZWRJbmNyZW1lbnQodmFyKTsK
K30KKworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfZGVjKHVfYXRvbWljX2ludDMyX3QgKnZh
cikgeworICAgIHJldHVybiBJbnRlcmxvY2tlZERlY3JlbWVudCh2YXIpOworfQorVV9OQU1FU1BB
Q0VfRU5ECisKKworI2VsaWYgVV9IQVZFX0dDQ19BVE9NSUNTCisvKgorICogZ2NjIGF0b21pYyBv
cHMuIFRoZXNlIGFyZSBhdmFpbGFibGUgb24gc2V2ZXJhbCBvdGhlciBjb21waWxlcnMgYXMgd2Vs
bC4KKyAqLworCitVX05BTUVTUEFDRV9CRUdJTgordHlwZWRlZiBpbnQzMl90IHVfYXRvbWljX2lu
dDMyX3Q7CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJQUxJWkVSKHZhbCkgdmFsCisKK2lu
bGluZSBpbnQzMl90IHVtdHhfbG9hZEFjcXVpcmUodV9hdG9taWNfaW50MzJfdCAmdmFyKSB7Cisg
ICAgaW50MzJfdCB2YWwgPSB2YXI7CisgICAgX19zeW5jX3N5bmNocm9uaXplKCk7CisgICAgcmV0
dXJuIHZhbDsKK30KKworaW5saW5lIHZvaWQgdW10eF9zdG9yZVJlbGVhc2UodV9hdG9taWNfaW50
MzJfdCAmdmFyLCBpbnQzMl90IHZhbCkgeworICAgIF9fc3luY19zeW5jaHJvbml6ZSgpOworICAg
IHZhciA9IHZhbDsKK30KKworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfaW5jKHVfYXRvbWlj
X2ludDMyX3QgKnApICB7CisgICByZXR1cm4gX19zeW5jX2FkZF9hbmRfZmV0Y2gocCwgMSk7Cit9
CisKK2lubGluZSBpbnQzMl90IHVtdHhfYXRvbWljX2RlYyh1X2F0b21pY19pbnQzMl90ICpwKSAg
eworICAgcmV0dXJuIF9fc3luY19zdWJfYW5kX2ZldGNoKHAsIDEpOworfQorVV9OQU1FU1BBQ0Vf
RU5ECisKKyNlbHNlCisKKy8qCisgKiBVbmtub3duIFBsYXRmb3JtLiBVc2Ugb3V0LW9mLWxpbmUg
ZnVuY3Rpb25zLCB3aGljaCBpbiB0dXJuIHVzZSBtdXRleGVzLgorICogICAgICAgICAgICAgICAg
ICAgU2xvdyBidXQgY29ycmVjdC4KKyAqLworCisjZGVmaW5lIFVfTk9fUExBVEZPUk1fQVRPTUlD
UworCitVX05BTUVTUEFDRV9CRUdJTgordHlwZWRlZiBpbnQzMl90IHVfYXRvbWljX2ludDMyX3Q7
CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJQUxJWkVSKHZhbCkgdmFsCisKK1VfQ09NTU9O
X0FQSSBpbnQzMl90IFVfRVhQT1JUMiAKK3VtdHhfbG9hZEFjcXVpcmUodV9hdG9taWNfaW50MzJf
dCAmdmFyKTsKKworVV9DT01NT05fQVBJIHZvaWQgVV9FWFBPUlQyIAordW10eF9zdG9yZVJlbGVh
c2UodV9hdG9taWNfaW50MzJfdCAmdmFyLCBpbnQzMl90IHZhbCk7CisKK1VfQ09NTU9OX0FQSSBp
bnQzMl90IFVfRVhQT1JUMiAKK3VtdHhfYXRvbWljX2luYyh1X2F0b21pY19pbnQzMl90ICpwKTsK
KworVV9DT01NT05fQVBJIGludDMyX3QgVV9FWFBPUlQyIAordW10eF9hdG9taWNfZGVjKHVfYXRv
bWljX2ludDMyX3QgKnApOworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmICAvKiBMb3cgTGV2
ZWwgQXRvbWljIE9wcyBQbGF0ZnJvbSBDaGFpbiAqLworCisKKworLyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgVUluaXRPbmNlIERlZmluaXRpb25zLgor
ICogICAgIFRoZXNlIGFyZSBwbGF0Zm9ybSBuZXV0cmFsLgorICoKKyAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqLworCitVX05BTUVTUEFDRV9CRUdJTgorCitzdHJ1Y3Qg
VUluaXRPbmNlIHsKKyAgICB1X2F0b21pY19pbnQzMl90ICAgZlN0YXRlOworICAgIFVFcnJvckNv
ZGUgICAgICAgZkVyckNvZGU7CisgICAgdm9pZCByZXNldCgpIHtmU3RhdGUgPSAwO307CisgICAg
VUJvb2wgaXNSZXNldCgpIHtyZXR1cm4gdW10eF9sb2FkQWNxdWlyZShmU3RhdGUpID09IDA7fTsK
Ky8vIE5vdGU6IGlzUmVzZXQoKSBpcyB1c2VkIGJ5IHNlcnZpY2UgcmVnaXN0cmF0aW9uIGNvZGUu
CisvLyAgICAgICAgICAgICAgICAgVGhyZWFkIHNhZmV0eSBvZiB0aGlzIHVzYWdlIG5lZWRzIHJl
dmlldy4KK307CisKKyNkZWZpbmUgVV9JTklUT05DRV9JTklUSUFMSVpFUiB7QVRPTUlDX0lOVDMy
X1RfSU5JVElBTElaRVIoMCksIFVfWkVST19FUlJPUn0KKworCitVX0NPTU1PTl9BUEkgVUJvb2wg
VV9FWFBPUlQyIHVtdHhfaW5pdEltcGxQcmVJbml0KFVJbml0T25jZSAmKTsKK1VfQ09NTU9OX0FQ
SSB2b2lkICBVX0VYUE9SVDIgdW10eF9pbml0SW1wbFBvc3RJbml0KFVJbml0T25jZSAmKTsKKwor
dGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCB1bXR4X2luaXRPbmNlKFVJbml0T25jZSAmdWlvLCBUICpv
YmosIHZvaWQgKFQ6OipmcCkoKSkgeworICAgIGlmICh1bXR4X2xvYWRBY3F1aXJlKHVpby5mU3Rh
dGUpID09IDIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAodW10eF9pbml0SW1w
bFByZUluaXQodWlvKSkgeworICAgICAgICAob2JqLT4qZnApKCk7CisgICAgICAgIHVtdHhfaW5p
dEltcGxQb3N0SW5pdCh1aW8pOworICAgIH0KK30KKworCisvLyB1bXR4X2luaXRPbmNlIHZhcmlh
bnQgZm9yIHBsYWluIGZ1bmN0aW9ucywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9ucy4KKy8vICAg
ICAgICAgICAgICAgTm8gY29udGV4dCBwYXJhbWV0ZXIuCitpbmxpbmUgdm9pZCB1bXR4X2luaXRP
bmNlKFVJbml0T25jZSAmdWlvLCB2b2lkICgqZnApKCkpIHsKKyAgICBpZiAodW10eF9sb2FkQWNx
dWlyZSh1aW8uZlN0YXRlKSA9PSAyKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYg
KHVtdHhfaW5pdEltcGxQcmVJbml0KHVpbykpIHsKKyAgICAgICAgKCpmcCkoKTsKKyAgICAgICAg
dW10eF9pbml0SW1wbFBvc3RJbml0KHVpbyk7CisgICAgfQorfQorCisvLyB1bXR4X2luaXRPbmNl
IHZhcmlhbnQgZm9yIHBsYWluIGZ1bmN0aW9ucywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9ucy4K
Ky8vICAgICAgICAgICAgICAgV2l0aCBFcnJvckNvZGUsIE5vIGNvbnRleHQgcGFyYW1ldGVyLgor
aW5saW5lIHZvaWQgdW10eF9pbml0T25jZShVSW5pdE9uY2UgJnVpbywgdm9pZCAoKmZwKShVRXJy
b3JDb2RlICYpLCBVRXJyb3JDb2RlICZlcnJDb2RlKSB7CisgICAgaWYgKFVfRkFJTFVSRShlcnJD
b2RlKSkgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICh1bXR4X2xvYWRBY3F1aXJl
KHVpby5mU3RhdGUpICE9IDIgJiYgdW10eF9pbml0SW1wbFByZUluaXQodWlvKSkgeworICAgICAg
ICAvLyBXZSBydW4gdGhlIGluaXRpYWxpemF0aW9uLgorICAgICAgICAoKmZwKShlcnJDb2RlKTsK
KyAgICAgICAgdWlvLmZFcnJDb2RlID0gZXJyQ29kZTsKKyAgICAgICAgdW10eF9pbml0SW1wbFBv
c3RJbml0KHVpbyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gU29tZW9uZSBlbHNlIGFscmVh
ZHkgcmFuIHRoZSBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgaWYgKFVfRkFJTFVSRSh1aW8uZkVy
ckNvZGUpKSB7CisgICAgICAgICAgICBlcnJDb2RlID0gdWlvLmZFcnJDb2RlOworICAgICAgICB9
CisgICAgfQorfQorCisvLyB1bXR4X2luaXRPbmNlIHZhcmlhbnQgZm9yIHBsYWluIGZ1bmN0aW9u
cywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9ucywKKy8vICAgICAgICAgICAgICAgd2l0aCBhIGNv
bnRleHQgcGFyYW1ldGVyLgordGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCB1bXR4X2luaXRPbmNlKFVJ
bml0T25jZSAmdWlvLCB2b2lkICgqZnApKFQpLCBUIGNvbnRleHQpIHsKKyAgICBpZiAodW10eF9s
b2FkQWNxdWlyZSh1aW8uZlN0YXRlKSA9PSAyKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgaWYgKHVtdHhfaW5pdEltcGxQcmVJbml0KHVpbykpIHsKKyAgICAgICAgKCpmcCkoY29udGV4
dCk7CisgICAgICAgIHVtdHhfaW5pdEltcGxQb3N0SW5pdCh1aW8pOworICAgIH0KK30KKworLy8g
dW10eF9pbml0T25jZSB2YXJpYW50IGZvciBwbGFpbiBmdW5jdGlvbnMsIG9yIHN0YXRpYyBjbGFz
cyBmdW5jdGlvbnMsCisvLyAgICAgICAgICAgICAgIHdpdGggYSBjb250ZXh0IHBhcmFtZXRlciBh
bmQgYW4gZXJyb3IgY29kZS4KK3RlbXBsYXRlPGNsYXNzIFQ+IHZvaWQgdW10eF9pbml0T25jZShV
SW5pdE9uY2UgJnVpbywgdm9pZCAoKmZwKShULCBVRXJyb3JDb2RlICYpLCBUIGNvbnRleHQsIFVF
cnJvckNvZGUgJmVyckNvZGUpIHsKKyAgICBpZiAoVV9GQUlMVVJFKGVyckNvZGUpKSB7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHVtdHhfbG9hZEFjcXVpcmUodWlvLmZTdGF0ZSkg
IT0gMiAmJiB1bXR4X2luaXRJbXBsUHJlSW5pdCh1aW8pKSB7CisgICAgICAgIC8vIFdlIHJ1biB0
aGUgaW5pdGlhbGl6YXRpb24uCisgICAgICAgICgqZnApKGNvbnRleHQsIGVyckNvZGUpOworICAg
ICAgICB1aW8uZkVyckNvZGUgPSBlcnJDb2RlOworICAgICAgICB1bXR4X2luaXRJbXBsUG9zdElu
aXQodWlvKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBTb21lb25lIGVsc2UgYWxyZWFkeSBy
YW4gdGhlIGluaXRpYWxpemF0aW9uLgorICAgICAgICBpZiAoVV9GQUlMVVJFKHVpby5mRXJyQ29k
ZSkpIHsKKyAgICAgICAgICAgIGVyckNvZGUgPSB1aW8uZkVyckNvZGU7CisgICAgICAgIH0KKyAg
ICB9Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyAqCisgKiAgTXV0ZXggRGVmaW5pdGlvbnMuIFBsYXRmb3JtIERl
cGVuZGVudCwgI2lmIHBsYXRmb3JtIGNoYWluIGZvbGxvd3MuCisgKiAgICAgICAgIFRPRE86ICBB
ZGQgYSBDKysxMSB2ZXJzaW9uLgorICogICAgICAgICAgICAgICAgTmVlZCB0byBjb252ZXJ0IGFs
bCBtdXRleCB1c2luZyBmaWxlcyB0byBDKysgZmlyc3QuCisgKgorICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZiBkZWZpbmVkKFVfVVNFUl9NVVRFWF9IKQor
Ly8gI2lubGN1ZGUgIlVfVVNFUl9NVVRFWF9IIgorI2luY2x1ZGUgVV9NVVRFWF9YU1RSKFVfVVNF
Ul9NVVRFWF9IKQorCisjZWxpZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkKKworLyogV2luZG93
cyBEZWZpbml0aW9ucy4KKyAqICAgIFdpbmRvd3MgY29tZXMgZmlyc3QgaW4gdGhlIHBsYXRmb3Jt
IGNoYWluLgorICogICAgQ3lnd2luIChhbmQgcG9zc2libHkgb3RoZXJzKSBoYXZlIGJvdGggV0lO
MzIgYW5kIFBPU0lYIEFQSXMuIFByZWZlciBXaW4zMiBpbiB0aGlzIGNhc2UuCisgKi8KKworCisv
KiBGb3IgQ1JJVElDQUxfU0VDVElPTiAqLworCisvKgorICogICBOb3RlOiB0aGVyZSBpcyBhbiBl
YXJsaWVyIGluY2x1ZGUgb2Ygd2luZG93cy5oIGluIHRoaXMgZmlsZSwgYnV0IGl0IGlzIGluCisg
KiAgICAgICAgIGRpZmZlcmVudCBjb25kaXRpb25hbHMuCisgKiAgICAgICAgIFRoaXMgb25lIGlz
IG5lZWRlZCBpZiB3ZSBhcmUgdXNpbmcgQysrMTEgZm9yIGF0b21pYyBvcHMsIGJ1dAorICogICAg
ICAgICB3aW4zMiBBUElzIGZvciBDcml0aWNhbCBTZWN0aW9ucy4KKyAqLworCisjIGRlZmluZSBX
SU4zMl9MRUFOX0FORF9NRUFOCisjIGRlZmluZSBWQ19FWFRSQUxFQU4KKyMgZGVmaW5lIE5PVVNF
UgorIyBkZWZpbmUgTk9TRVJWSUNFCisjIGRlZmluZSBOT0lNRQorIyBkZWZpbmUgTk9NQ1gKKyMg
aWZuZGVmIE5PTUlOTUFYCisjIGRlZmluZSBOT01JTk1BWAorIyBlbmRpZgorIyBpbmNsdWRlIDx3
aW5kb3dzLmg+CisKKwordHlwZWRlZiBzdHJ1Y3QgVU11dGV4IHsKKyAgICBpY3U6OlVJbml0T25j
ZSAgICBmSW5pdE9uY2U7CisgICAgQ1JJVElDQUxfU0VDVElPTiAgZkNTOworfSBVTXV0ZXg7CisK
Ky8qIEluaXRpYWxpemVyIGZvciBhIHN0YXRpYyBVTVVURVguIERlbGliZXJhdGVseSBjb250YWlu
cyBubyB2YWx1ZSBmb3IgdGhlCisgKiAgQ1JJVElDQUxfU0VDVElPTi4KKyAqLworI2RlZmluZSBV
X01VVEVYX0lOSVRJQUxJWkVSIHtVX0lOSVRPTkNFX0lOSVRJQUxJWkVSfQorCitzdHJ1Y3QgVUNv
bmRpdGlvblZhciB7CisgICAgSEFORExFICAgICAgICAgICBmRW50cnlHYXRlOworICAgIEhBTkRM
RSAgICAgICAgICAgZkV4aXRHYXRlOworICAgIGludDMyX3QgICAgICAgICAgZldhaXRDb3VudDsK
K307CisKKyNkZWZpbmUgVV9DT05ESVRJT05fSU5JVElBTElaRVIge05VTEwsIE5VTEwsIDB9Cisg
ICAgCisKKworI2VsaWYgVV9QTEFURk9STV9JTVBMRU1FTlRTX1BPU0lYCisKKy8qCisgKiAgUE9T
SVggcGxhdGZvcm0KKyAqLworCisjaW5jbHVkZSA8cHRocmVhZC5oPgorCitzdHJ1Y3QgVU11dGV4
IHsKKyAgICBwdGhyZWFkX211dGV4X3QgIGZNdXRleDsKK307Cit0eXBlZGVmIHN0cnVjdCBVTXV0
ZXggVU11dGV4OworI2RlZmluZSBVX01VVEVYX0lOSVRJQUxJWkVSICB7UFRIUkVBRF9NVVRFWF9J
TklUSUFMSVpFUn0KKworc3RydWN0IFVDb25kaXRpb25WYXIgeworICAgIHB0aHJlYWRfY29uZF90
ICAgZkNvbmRpdGlvbjsKK307CisjZGVmaW5lIFVfQ09ORElUSU9OX0lOSVRJQUxJWkVSIHtQVEhS
RUFEX0NPTkRfSU5JVElBTElaRVJ9CisKKyNlbHNlCisKKy8qCisgKiAgVW5rbm93IHBsYXRmb3Jt
IHR5cGUuCisgKiAgICAgIFRoaXMgaXMgYW4gZXJyb3IgY29uZGl0aW9uLiBJQ1UgcmVxdWlyZXMg
bXV0ZXhlcy4KKyAqLworCisjZXJyb3IgVW5rbm93biBQbGF0Zm9ybS4KKworI2VuZGlmCisKKwor
CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgTXV0ZXggSW1wbGVtZW50
YXRpb24gZnVuY3Rpb24gZGVjbGFyYXRhdGlvbnMuCisgKiAgICAgRGVjbGFyYXRpb25zIGFyZSBw
bGF0Zm9ybSBuZXV0cmFsLgorICogICAgIEltcGxlbWVudGF0aW9ucywgaW4gdW11dGV4LmNwcCwg
YXJlIHBsYXRmb3JtIHNwZWNpZmljLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov
CisKKy8qIExvY2sgYSBtdXRleC4KKyAqIEBwYXJhbSBtdXRleCBUaGUgZ2l2ZW4gbXV0ZXggdG8g
YmUgbG9ja2VkLiAgUGFzcyBOVUxMIHRvIHNwZWNpZnkKKyAqICAgICAgICAgICAgICB0aGUgZ2xv
YmFsIElDVSBtdXRleC4gIFJlY3Vyc2l2ZSBsb2NrcyBhcmUgYW4gZXJyb3IKKyAqICAgICAgICAg
ICAgICBhbmQgbWF5IGNhdXNlIGEgZGVhZGxvY2sgb24gc29tZSBwbGF0Zm9ybXMuCisgKi8KK1Vf
SU5URVJOQUwgdm9pZCBVX0VYUE9SVDIgdW10eF9sb2NrKFVNdXRleCogbXV0ZXgpOworCisvKiBV
bmxvY2sgYSBtdXRleC4KKyAqIEBwYXJhbSBtdXRleCBUaGUgZ2l2ZW4gbXV0ZXggdG8gYmUgdW5s
b2NrZWQuICBQYXNzIE5VTEwgdG8gc3BlY2lmeQorICogICAgICAgICAgICAgIHRoZSBnbG9iYWwg
SUNVIG11dGV4LgorICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyIHVtdHhfdW5sb2NrIChV
TXV0ZXgqIG11dGV4KTsKKworLyoKKyAqIFdhaXQgb24gYSBjb25kaXRpb24gdmFyaWFibGUuCisg
KiBUaGUgY2FsbGluZyB0aHJlYWQgd2lsbCB1bmxvY2sgdGhlIG11dGV4IGFuZCB3YWl0IG9uIHRo
ZSBjb25kaXRpb24gdmFyaWFibGUuCisgKiBUaGUgbXV0ZXggbXVzdCBiZSBsb2NrZWQgYnkgdGhl
IGNhbGxpbmcgdGhyZWFkIHdoZW4gaW52b2tpbmcgdGhpcyBmdW5jdGlvbi4KKyAqCisgKiBAcGFy
YW0gY29uZCB0aGUgY29uZGl0aW9uIHZhcmlhYmxlIHRvIHdhaXQgb24uCisgKiBAcGFyYW0gbXV0
ZXggdGhlIGFzc29jaWF0ZWQgbXV0ZXguCisgKi8KKworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JU
MiB1bXR4X2NvbmRXYWl0KFVDb25kaXRpb25WYXIgKmNvbmQsIFVNdXRleCAqbXV0ZXgpOworCisK
Ky8qCisgKiBCcm9hZGNhc3Qgd2FrZXVwIG9mIGFsbCB0aHJlYWRzIHdhaXRpbmcgb24gYSBDb25k
aXRpb24uCisgKiBUaGUgYXNzb2NpYXRlZCBtdXRleCBtdXN0IGJlIGxvY2tlZCBieSB0aGUgY2Fs
bGluZyB0aHJlYWQgd2hlbiBjYWxsaW5nCisgKiB0aGlzIGZ1bmN0aW9uOyB0aGlzIGlzIGEgdGVt
cG9yYXJ5IElDVSByZXN0cmljdGlvbi4KKyAqIAorICogQHBhcmFtIGNvbmQgdGhlIGNvbmRpdGlv
biB2YXJpYWJsZS4KKyAqLworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JUMiB1bXR4X2NvbmRCcm9h
ZGNhc3QoVUNvbmRpdGlvblZhciAqY29uZCk7CisKKy8qCisgKiBTaWduYWwgYSBjb25kaXRpb24g
dmFyaWFibGUsIHdha2luZyB1cCBvbmUgd2FpdGluZyB0aHJlYWQuCisgKiBDQVVUSU9OOiBEbyBu
b3QgdXNlLiBQbGFjZSBob2xkZXIgb25seS4gTm90IGltcGxlbWVudGVkIGZvciBXaW5kb3dzLgor
ICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyIHVtdHhfY29uZFNpZ25hbChVQ29uZGl0aW9u
VmFyICpjb25kKTsKKworI2VuZGlmIC8qIFVNVVRFWF9IICovCisvKmVvZiovCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VuZXdkYXRhLmMgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VuZXdkYXRhLmMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWVhNjBkNTY2ODM5NjQwMzdiYjM2ZGU3MjhiNTJmMWJjNDFmZWM2NgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW5ld2Rh
dGEuYwpAQCAtMCwwICsxLDI3NCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyog
ICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5l
cworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVuZXdkYXRhLmMKKyogICBl
bmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGlu
ZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0MjUKKyogICBjcmVhdGVkIGJ5
OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSAi
dW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3B1dGlsLmgiCisjaW5jbHVkZSAi
dW5pY29kZS91c3RyaW5nLmgiCisjaW5jbHVkZSAiY21lbW9yeS5oIgorI2luY2x1ZGUgImNzdHJp
bmcuaCIKKyNpbmNsdWRlICJmaWxlc3RybS5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIK
KyNpbmNsdWRlICJ1bmV3ZGF0YS5oIgorCitzdHJ1Y3QgVU5ld0RhdGFNZW1vcnkgeworICAgIEZp
bGVTdHJlYW0gKmZpbGU7CisgICAgdWludDE2X3QgaGVhZGVyU2l6ZTsKKyAgICB1aW50OF90IG1h
Z2ljMSwgbWFnaWMyOworfTsKKworVV9DQVBJIFVOZXdEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1
ZGF0YV9jcmVhdGUoY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFy
ICpuYW1lLAorICAgICAgICAgICAgIGNvbnN0IFVEYXRhSW5mbyAqcEluZm8sCisgICAgICAgICAg
ICAgY29uc3QgY2hhciAqY29tbWVudCwKKyAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKSB7CisgICAgVU5ld0RhdGFNZW1vcnkgKnBEYXRhOworICAgIHVpbnQxNl90IGhlYWRlclNp
emUsIGNvbW1lbnRMZW5ndGg7CisgICAgY2hhciBmaWxlbmFtZVs1MTJdOworICAgIHVpbnQ4X3Qg
Ynl0ZXNbMTZdOworICAgIGludCBsZW5ndGg7CisKKyAgICBpZihwRXJyb3JDb2RlPT1OVUxMIHx8
IFVfRkFJTFVSRSgqcEVycm9yQ29kZSkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfSBl
bHNlIGlmKG5hbWU9PU5VTEwgfHwgKm5hbWU9PTAgfHwgcEluZm89PU5VTEwpIHsKKyAgICAgICAg
KnBFcnJvckNvZGU9VV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SOworICAgICAgICByZXR1cm4gTlVM
TDsKKyAgICB9CisKKyAgICAvKiBhbGxvY2F0ZSB0aGUgZGF0YSBzdHJ1Y3R1cmUgKi8KKyAgICBw
RGF0YT0oVU5ld0RhdGFNZW1vcnkgKil1cHJ2X21hbGxvYyhzaXplb2YoVU5ld0RhdGFNZW1vcnkp
KTsKKyAgICBpZihwRGF0YT09TlVMTCkgeworICAgICAgICAqcEVycm9yQ29kZT1VX01FTU9SWV9B
TExPQ0FUSU9OX0VSUk9SOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgCisgICAg
LyogQ2hlY2sgdGhhdCB0aGUgZnVsbCBwYXRoIHdvbid0IGJlIHRvbyBsb25nICovCisgICAgbGVu
Z3RoID0gMDsJCQkJCS8qIFN0YXJ0IHdpdGggbm90aGluZyAqLworICAgIGlmKGRpciAhPSBOVUxM
ICAmJiAqZGlyICE9MCkJLyogQWRkIGRpcmVjdG9yeSBsZW5ndGggaWYgb25lIHdhcyBnaXZlbiAq
LworICAgIHsKKyAgICAJbGVuZ3RoICs9IHN0cmxlbihkaXIpOworCQorICAgIAkvKiBBZGQgMSBp
ZiBkaXIgZG9lc24ndCBlbmQgd2l0aCBwYXRoIHNlcCAqLworICAgICAgICBpZiAoZGlyW3N0cmxl
bihkaXIpIC0gMV0hPSBVX0ZJTEVfU0VQX0NIQVIpIHsKKyAgICAgICAgICAgIGxlbmd0aCsrOwor
ICAgICAgICB9CisJfQorICAgIGxlbmd0aCArPSBzdHJsZW4obmFtZSk7CQkvKiBBZGQgdGhlIGZp
bGVuYW1lIGxlbmd0aCAqLworCisgICAgaWYodHlwZSAhPSBOVUxMICAmJiAqdHlwZSAhPTApIHsg
LyogQWRkIGRpcmVjdG9yeSBsZW5ndGggaWYgIGdpdmVuICovCisgICAgICAgIGxlbmd0aCArPSBz
dHJsZW4odHlwZSk7CisgICAgfQorCisgICAgICAgIAorICAgICAvKiBMREggYnVmZmVyIExlbmd0
aCBlcnJvciBjaGVjayAqLworICAgIGlmKGxlbmd0aCAgPiAoc2l6ZW9mKGZpbGVuYW1lKSAtIDEp
KQorICAgIHsKKyAgIAkgICAgKnBFcnJvckNvZGUgPSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUjsK
KyAgIAkgICAgdXBydl9mcmVlKHBEYXRhKTsKKwkgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAg
CisgICAgLyogb3BlbiB0aGUgb3V0cHV0IGZpbGUgKi8KKyAgICBpZihkaXIhPU5VTEwgJiYgKmRp
ciE9MCkgeyAvKiBpZiBkaXIgaGFzIGEgdmFsdWUsIHdlIHByZXBlbmQgaXQgdG8gdGhlIGZpbGVu
YW1lICovCisgICAgICAgIGNoYXIgKnA9ZmlsZW5hbWUrc3RybGVuKGRpcik7CisgICAgICAgIHVw
cnZfc3RyY3B5KGZpbGVuYW1lLCBkaXIpOworICAgICAgICBpZiAoKihwLTEpIT1VX0ZJTEVfU0VQ
X0NIQVIpIHsKKyAgICAgICAgICAgICpwKys9VV9GSUxFX1NFUF9DSEFSOworICAgICAgICAgICAg
KnA9MDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7IC8qIG90aGVyd2lzZSwgd2UnbGwgb3V0cHV0
IHRvIHRoZSBjdXJyZW50IGRpciAqLworICAgICAgICBmaWxlbmFtZVswXT0wOworICAgIH0KKyAg
ICB1cHJ2X3N0cmNhdChmaWxlbmFtZSwgbmFtZSk7CisgICAgaWYodHlwZSE9TlVMTCAmJiAqdHlw
ZSE9MCkgeworICAgICAgICB1cHJ2X3N0cmNhdChmaWxlbmFtZSwgIi4iKTsKKyAgICAgICAgdXBy
dl9zdHJjYXQoZmlsZW5hbWUsIHR5cGUpOworICAgIH0KKyAgICBwRGF0YS0+ZmlsZT1UX0ZpbGVT
dHJlYW1fb3BlbihmaWxlbmFtZSwgIndiIik7CisgICAgaWYocERhdGEtPmZpbGU9PU5VTEwpIHsK
KyAgICAgICAgdXBydl9mcmVlKHBEYXRhKTsKKyAgICAgICAgKnBFcnJvckNvZGU9VV9GSUxFX0FD
Q0VTU19FUlJPUjsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgLyogd3JpdGUg
dGhlIGhlYWRlciBpbmZvcm1hdGlvbiAqLworICAgIGhlYWRlclNpemU9KHVpbnQxNl90KShwSW5m
by0+c2l6ZSs0KTsKKyAgICBpZihjb21tZW50IT1OVUxMICYmICpjb21tZW50IT0wKSB7CisgICAg
ICAgIGNvbW1lbnRMZW5ndGg9KHVpbnQxNl90KSh1cHJ2X3N0cmxlbihjb21tZW50KSsxKTsKKyAg
ICAgICAgaGVhZGVyU2l6ZSs9Y29tbWVudExlbmd0aDsKKyAgICB9IGVsc2UgeworICAgICAgICBj
b21tZW50TGVuZ3RoPTA7CisgICAgfQorCisgICAgLyogd3JpdGUgdGhlIHNpemUgb2YgdGhlIGhl
YWRlciwgdGFrZSBwYWRkaW5nIGludG8gYWNjb3VudCAqLworICAgIHBEYXRhLT5oZWFkZXJTaXpl
PSh1aW50MTZfdCkoKGhlYWRlclNpemUrMTUpJn4weGYpOworICAgIHBEYXRhLT5tYWdpYzE9MHhk
YTsKKyAgICBwRGF0YS0+bWFnaWMyPTB4Mjc7CisgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRh
LT5maWxlLCAmcERhdGEtPmhlYWRlclNpemUsIDQpOworCisgICAgLyogd3JpdGUgdGhlIGluZm9y
bWF0aW9uIGRhdGEgKi8KKyAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsIHBJbmZv
LCBwSW5mby0+c2l6ZSk7CisKKyAgICAvKiB3cml0ZSB0aGUgY29tbWVudCAqLworICAgIGlmKGNv
bW1lbnRMZW5ndGg+MCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUs
IGNvbW1lbnQsIGNvbW1lbnRMZW5ndGgpOworICAgIH0KKworICAgIC8qIHdyaXRlIHBhZGRpbmcg
Ynl0ZXMgdG8gYWxpZ24gdGhlIGRhdGEgc2VjdGlvbiB0byAxNiBieXRlcyAqLworICAgIGhlYWRl
clNpemUmPTB4ZjsKKyAgICBpZihoZWFkZXJTaXplIT0wKSB7CisgICAgICAgIGhlYWRlclNpemU9
KHVpbnQxNl90KSgxNi1oZWFkZXJTaXplKTsKKyAgICAgICAgdXBydl9tZW1zZXQoYnl0ZXMsIDAs
IGhlYWRlclNpemUpOworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsIGJ5
dGVzLCBoZWFkZXJTaXplKTsKKyAgICB9CisKKyAgICByZXR1cm4gcERhdGE7Cit9CisKK1VfQ0FQ
SSB1aW50MzJfdCBVX0VYUE9SVDIKK3VkYXRhX2ZpbmlzaChVTmV3RGF0YU1lbW9yeSAqcERhdGEs
IFVFcnJvckNvZGUgKnBFcnJvckNvZGUpIHsKKyAgICB1aW50MzJfdCBmaWxlTGVuZ3RoPTA7CisK
KyAgICBpZihwRXJyb3JDb2RlPT1OVUxMIHx8IFVfRkFJTFVSRSgqcEVycm9yQ29kZSkpIHsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYocERhdGEhPU5VTEwpIHsKKyAgICAgICAg
aWYocERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgICAgIC8qIGZmbHVzaChwRGF0YS0+Zmls
ZSk7Ki8KKyAgICAgICAgICAgIGZpbGVMZW5ndGg9VF9GaWxlU3RyZWFtX3NpemUocERhdGEtPmZp
bGUpOworICAgICAgICAgICAgaWYoVF9GaWxlU3RyZWFtX2Vycm9yKHBEYXRhLT5maWxlKSkgewor
ICAgICAgICAgICAgICAgICpwRXJyb3JDb2RlPVVfRklMRV9BQ0NFU1NfRVJST1I7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZpbGVMZW5ndGgtPXBEYXRhLT5oZWFkZXJT
aXplOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVF9GaWxlU3RyZWFtX2Nsb3NlKHBEYXRh
LT5maWxlKTsKKyAgICAgICAgfQorICAgICAgICB1cHJ2X2ZyZWUocERhdGEpOworICAgIH0KKwor
ICAgIHJldHVybiBmaWxlTGVuZ3RoOworfQorCisvKiBkdW1teSBVRGF0YUluZm8gY2YuIHVkYXRh
LmggKi8KK3N0YXRpYyBjb25zdCBVRGF0YUluZm8gZHVtbXlEYXRhSW5mbyA9IHsKKyAgICBzaXpl
b2YoVURhdGFJbmZvKSwKKyAgICAwLAorCisgICAgVV9JU19CSUdfRU5ESUFOLAorICAgIFVfQ0hB
UlNFVF9GQU1JTFksCisgICAgVV9TSVpFT0ZfVUNIQVIsCisgICAgMCwKKworICAgIHsgMCwgMCwg
MCwgMCB9LCAgICAgICAgICAgICAgICAgLyogZHVtbXkgZGF0YUZvcm1hdCAqLworICAgIHsgMCwg
MCwgMCwgMCB9LCAgICAgICAgICAgICAgICAgLyogZHVtbXkgZm9ybWF0VmVyc2lvbiAqLworICAg
IHsgMCwgMCwgMCwgMCB9ICAgICAgICAgICAgICAgICAgLyogZHVtbXkgZGF0YVZlcnNpb24gKi8K
K307CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfY3JlYXRlRHVtbXkoY29uc3QgY2hh
ciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLCBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKSB7CisgICAgaWYoVV9TVUNDRVNTKCpwRXJyb3JDb2RlKSkgeworICAgICAgICB1
ZGF0YV9maW5pc2godWRhdGFfY3JlYXRlKGRpciwgdHlwZSwgbmFtZSwgJmR1bW15RGF0YUluZm8s
IE5VTEwsIHBFcnJvckNvZGUpLCBwRXJyb3JDb2RlKTsKKyAgICAgICAgaWYoVV9GQUlMVVJFKCpw
RXJyb3JDb2RlKSkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJvciAlcyB3cml0
aW5nIGR1bW15IGRhdGEgZmlsZSAlcyIgVV9GSUxFX1NFUF9TVFJJTkcgIiVzLiVzXG4iLAorICAg
ICAgICAgICAgICAgICAgICB1X2Vycm9yTmFtZSgqcEVycm9yQ29kZSksIGRpciwgbmFtZSwgdHlw
ZSk7CisgICAgICAgICAgICBleGl0KCpwRXJyb3JDb2RlKTsKKyAgICAgICAgfQorICAgIH0KK30K
KworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZTgoVU5ld0RhdGFNZW1vcnkgKnBE
YXRhLCB1aW50OF90IGJ5dGUpIHsKKyAgICBpZihwRGF0YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9
TlVMTCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsICZieXRlLCAx
KTsKKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGUxNihVTmV3
RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQxNl90IHdvcmQpIHsKKyAgICBpZihwRGF0YSE9TlVMTCAm
JiBwRGF0YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEt
PmZpbGUsICZ3b3JkLCAyKTsKKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRh
dGFfd3JpdGUzMihVTmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQzMl90IHd5ZGUpIHsKKyAgICBp
ZihwRGF0YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBUX0ZpbGVTdHJl
YW1fd3JpdGUocERhdGEtPmZpbGUsICZ3eWRlLCA0KTsKKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lk
IFVfRVhQT1JUMgordWRhdGFfd3JpdGVCbG9jayhVTmV3RGF0YU1lbW9yeSAqcERhdGEsIGNvbnN0
IHZvaWQgKnMsIGludDMyX3QgbGVuZ3RoKSB7CisgICAgaWYocERhdGEhPU5VTEwgJiYgcERhdGEt
PmZpbGUhPU5VTEwpIHsKKyAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAgICAgIFRfRmls
ZVN0cmVhbV93cml0ZShwRGF0YS0+ZmlsZSwgcywgbGVuZ3RoKTsKKyAgICAgICAgfQorICAgIH0K
K30KKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZVBhZGRpbmcoVU5ld0RhdGFN
ZW1vcnkgKnBEYXRhLCBpbnQzMl90IGxlbmd0aCkgeworICAgIHN0YXRpYyBjb25zdCB1aW50OF90
IHBhZGRpbmdbMTZdPXsKKyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwKKyAgICAgICAg
MHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwKKyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwK
KyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYQorICAgIH07CisgICAgaWYocERhdGEhPU5V
TEwgJiYgcERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgd2hpbGUobGVuZ3RoPj0xNikgewor
ICAgICAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBwYWRkaW5nLCAxNik7
CisgICAgICAgICAgICBsZW5ndGgtPTE2OworICAgICAgICB9CisgICAgICAgIGlmKGxlbmd0aD4w
KSB7CisgICAgICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsIHBhZGRpbmcs
IGxlbmd0aCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgor
dWRhdGFfd3JpdGVTdHJpbmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBjb25zdCBjaGFyICpzLCBp
bnQzMl90IGxlbmd0aCkgeworICAgIGlmKHBEYXRhIT1OVUxMICYmIHBEYXRhLT5maWxlIT1OVUxM
KSB7CisgICAgICAgIGlmKGxlbmd0aD09LTEpIHsKKyAgICAgICAgICAgIGxlbmd0aD0oaW50MzJf
dCl1cHJ2X3N0cmxlbihzKTsKKyAgICAgICAgfQorICAgICAgICBpZihsZW5ndGg+MCkgeworICAg
ICAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBzLCBsZW5ndGgpOworICAg
ICAgICB9CisgICAgfQorfQorCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlVVN0
cmluZyhVTmV3RGF0YU1lbW9yeSAqcERhdGEsIGNvbnN0IFVDaGFyICpzLCBpbnQzMl90IGxlbmd0
aCkgeworICAgIGlmKHBEYXRhIT1OVUxMICYmIHBEYXRhLT5maWxlIT1OVUxMKSB7CisgICAgICAg
IGlmKGxlbmd0aD09LTEpIHsKKyAgICAgICAgICAgIGxlbmd0aD11X3N0cmxlbihzKTsKKyAgICAg
ICAgfQorICAgICAgICBpZihsZW5ndGg+MCkgeworICAgICAgICAgICAgVF9GaWxlU3RyZWFtX3dy
aXRlKHBEYXRhLT5maWxlLCBzLCBsZW5ndGgqc2l6ZW9mKFVDaGFyKSk7CisgICAgICAgIH0KKyAg
ICB9Cit9CisKKy8qCisgKiBIZXksIEVtYWNzLCBwbGVhc2Ugc2V0IHRoZSBmb2xsb3dpbmc6Cisg
KgorICogTG9jYWwgVmFyaWFibGVzOgorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6
CisgKgorICovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9nZW5icmsvdW5ld2RhdGEuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9n
ZW5icmsvdW5ld2RhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjViOGU5Zjc0OTg0NzQyN2QxMGFiY2ViZTJi
NDNhZWI4NzAzZjc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL2dlbmJyay91bmV3ZGF0YS5oCkBAIC0wLDAgKzEsMTExIEBACisvKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEwLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBu
YW1lOiAgdW5ld2RhdGEuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6
ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDE5
OTlvY3QyNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisjaWZuZGVm
IF9fVU5FV0RBVEFfSF9fCisjZGVmaW5lIF9fVU5FV0RBVEFfSF9fCisKKyNpbmNsdWRlICJ1bmlj
b2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKworLyogQVBJIGZvciB3
cml0aW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0qLworCisvKiogQG1lbW8gRm9yd2FyZCBkZWNsYXJhdGlvbiBvZiB0aGUgZGF0YSBt
ZW1vcnkgY3JlYXRpb24gdHlwZS4gKi8KK3R5cGVkZWYgc3RydWN0IFVOZXdEYXRhTWVtb3J5IFVO
ZXdEYXRhTWVtb3J5OworCisvKioKKyAqIENyZWF0ZSBhIG5ldyBiaW5hcnkgZGF0YSBmaWxlLgor
ICogVGhlIGZpbGUtd3JpdGluZyA8Y29kZT51ZGF0YV88L2NvZGU+IGZ1bmN0aW9ucyBmYWNpbGl0
YXRlIHdyaXRpbmcKKyAqIGJpbmFyeSBkYXRhIGZpbGVzIHRoYXQgY2FuIGJlIHJlYWQgYnkgSUNV
J3MgPGNvZGU+dWRhdGE8L2NvZGU+IEFQSS4KKyAqIFRoaXMgZnVuY3Rpb24gb3BlbnMgYSBuZXcg
ZmlsZSB3aXRoIGEgZmlsZW5hbWUgZGV0ZXJtaW5lZCBmcm9tIGl0cworICogcGFyYW1ldGVycyAt
IG9mIHRoZSBmb3JtICJuYW1lLnR5cGUiLgorICogSXQgdGhlbiB3cml0ZXMgYSBzaG9ydCBoZWFk
ZXIsIGZvbGxvd2VkIGJ5IHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+CisgKiBzdHJ1Y3R1cmUg
YW5kLCBvcHRpb25hbGx5LCBieSB0aGUgY29tbWVudCBzdHJpbmcuCisgKiBJdCB0aGVuIHdyaXRl
cyBwYWRkaW5nIGJ5dGVzIHRvIHJvdW5kIHVwIHRvIGEgbXVsdGlwbGUgb2YgMTYgYnl0ZXMuCisg
KiBTdWJzZXF1ZW50IHdyaXRlIG9wZXJhdGlvbnMgd2lsbCB0aHVzIHN0YXJ0IGF0IGFuIG9mZnNl
dCBpbiB0aGUgZmlsZQorICogdGhhdCBpcyBhIG11bHRpcGxlIG9mIDE2LiA8Y29kZT51ZGF0YV9n
ZXRNZW1vcnkoKTwvY29kZT4gd2lsbCByZXR1cm4KKyAqIGEgcG9pbnRlciB0byB0aGlzIHNhbWUg
c3RhcnRpbmcgb2Zmc2V0LgorICoKKyAqIFNlZSB1ZGF0YS5oIC4KKyAqCisgKiBAcGFyYW0gZGly
IEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIGRhdGEgd2ls
bCBiZQorICogICAgICAgICAgICB3cml0dGVuLiBJZiA8Y29kZT5OVUxMPC9jb2RlPiwgdGhlbgor
ICogICAgICAgICAgICA8Y29kZT51X2dldERhdGFEaXJlY3Rvcnk8L2NvZGU+IGlzIHVzZWQuCisg
KiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRv
IGJlIHdyaXR0ZW4uCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVzb3VyY2UgYnVuZGxl
cyBhcmUgd3JpdHRlbiB3aXRoIHR5cGUgInJlcyIsCisgKiAgICAgICAgICAgICBjb252ZXJzaW9u
IHRhYmxlcyB3aXRoIHR5cGUgImNudiIuCisgKiAgICAgICAgICAgICBUaGlzIG1heSBiZSA8Y29k
ZT5OVUxMPC9jb2RlPiBvciBlbXB0eS4KKyAqIEBwYXJhbSBuYW1lIEEgc3RyaW5nIHRoYXQgc3Bl
Y2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBkYXRhLgorICogQHBhcmFtIHBJbmZvIEEgcG9pbnRlciB0
byBhIGNvcnJlY3RseSBmaWxsZWQgPGNvZGU+VURhdGFJbmZvPC9jb2RlPgorICogICAgICAgICAg
ICAgIHN0cnVjdHVyZSB0aGF0IHdpbGwgYmUgY29waWVkIGludG8gdGhlIGZpbGUuCisgKiBAcGFy
YW0gY29tbWVudCBBIHN0cmluZyAoZS5nLiwgYSBjb3B5cmlnaHQgc3RhdGVtZW50KSB0aGF0IHdp
bGwgYmUKKyAqICAgICAgICAgICAgICAgIGNvcGllZCBpbnRvIHRoZSBmaWxlIGlmIGl0IGlzIG5v
dCA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAgICAgICAgICAgb3IgZW1wdHkuIFRoaXMgc3Ry
aW5nIHNlcnZlcyBvbmx5IGFzIGEgY29tbWVudCBpbiB0aGUgYmluYXJ5CisgKiAgICAgICAgICAg
ICAgICBmaWxlLiBJdCB3aWxsIG5vdCBiZSBhY2Nlc3NpYmxlIGJ5IGFueSBBUEkuCisgKiBAcGFy
YW0gcEVycm9yQ29kZSBBbiBJQ1UgVUVycm9yQ29kZSBwYXJhbWV0ZXIuIEl0IG11c3Qgbm90IGJl
IDxjb2RlPk5VTEw8L2NvZGU+LgorICovCitVX0NBUEkgVU5ld0RhdGFNZW1vcnkgKiBVX0VYUE9S
VDIKK3VkYXRhX2NyZWF0ZShjb25zdCBjaGFyICpkaXIsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0
IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgY29uc3QgVURhdGFJbmZvICpwSW5mbywKKyAgICAg
ICAgICAgICBjb25zdCBjaGFyICpjb21tZW50LAorICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBF
cnJvckNvZGUpOworCisvKiogQG1lbW8gQ2xvc2UgYSBuZXdseSB3cml0dGVuIGJpbmFyeSBmaWxl
LiAqLworVV9DQVBJIHVpbnQzMl90IFVfRVhQT1JUMgordWRhdGFfZmluaXNoKFVOZXdEYXRhTWVt
b3J5ICpwRGF0YSwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBh
IGR1bW15IGRhdGEgZmlsZS4gKi8KK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfY3JlYXRl
RHVtbXkoY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1l
LCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqIEBtZW1vIFdyaXRlIGFuIDgtYml0IGJ5
dGUgdG8gdGhlIGZpbGUuICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlOChV
TmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQ4X3QgYnl0ZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBh
IDE2LWJpdCB3b3JkIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0
YV93cml0ZTE2KFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgdWludDE2X3Qgd29yZCk7CisKKy8qKiBA
bWVtbyBXcml0ZSBhIDMyLWJpdCB3b3JkIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9F
WFBPUlQyCit1ZGF0YV93cml0ZTMyKFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgdWludDMyX3Qgd3lk
ZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBhIGJsb2NrIG9mIGJ5dGVzIHRvIHRoZSBmaWxlLiAqLwor
VV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZUJsb2NrKFVOZXdEYXRhTWVtb3J5ICpw
RGF0YSwgY29uc3Qgdm9pZCAqcywgaW50MzJfdCBsZW5ndGgpOworCisvKiogQG1lbW8gV3JpdGUg
YSBibG9jayBvZiBhcmJpdHJhcnkgcGFkZGluZyBieXRlcyB0byB0aGUgZmlsZS4gKi8KK1VfQ0FQ
SSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGVQYWRkaW5nKFVOZXdEYXRhTWVtb3J5ICpwRGF0
YSwgaW50MzJfdCBsZW5ndGgpOworCisvKiogQG1lbW8gV3JpdGUgYSA8Y29kZT5jaGFyKjwvY29k
ZT4gc3RyaW5nIG9mIHBsYXRmb3JtICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgdG8gdGhlIGZpbGUu
ICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlU3RyaW5nKFVOZXdEYXRhTWVt
b3J5ICpwRGF0YSwgY29uc3QgY2hhciAqcywgaW50MzJfdCBsZW5ndGgpOworCisvKiogQG1lbW8g
V3JpdGUgYSA8Y29kZT5VQ2hhcio8L2NvZGU+IHN0cmluZyBvZiBVbmljb2RlIGNoYXJhY3RlciBj
b2RlIHVuaXRzIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93
cml0ZVVTdHJpbmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBjb25zdCBVQ2hhciAqcywgaW50MzJf
dCBsZW5ndGgpOworCisKKy8qCisgKiBIZXksIEVtYWNzLCBwbGVhc2Ugc2V0IHRoZSBmb2xsb3dp
bmc6CisgKgorICogTG9jYWwgVmFyaWFibGVzOgorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisg
KiBFbmQ6CisgKgorICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5jIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1ZWZjMTcwY2JkZjc1
MTNkZDU3ZWJmNzc3OWI5ODJlOTdhMjFkOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25zLmMKQEAgLTAsMCArMSwxMjIg
QEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAyMDAw
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
ICAgZmlsZSBuYW1lOiAgdW9wdGlvbnMuYworKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAg
dGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0
ZWQgb246IDIwMDBhcHIxNworKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqCisq
ICAgVGhpcyBmaWxlIHByb3ZpZGVzIGEgY29tbWFuZCBsaW5lIGFyZ3VtZW50IHBhcnNlci4KKyov
CisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgImNzdHJpbmcuaCIKKyNp
bmNsdWRlICJ1b3B0aW9ucy5oIgorCitVX0NBUEkgaW50IFVfRVhQT1JUMgordV9wYXJzZUFyZ3Mo
aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSwKKyAgICAgICAgICAgIGludCBvcHRpb25Db3VudCwgVU9w
dGlvbiBvcHRpb25zW10pIHsKKyAgICBjaGFyICphcmc7CisgICAgaW50IGk9MSwgcmVtYWluaW5n
PTE7CisgICAgY2hhciBjLCBzdG9wT3B0aW9ucz0wOworCisgICAgd2hpbGUoaTxhcmdjKSB7Cisg
ICAgICAgIGFyZz1hcmd2W2ldOworICAgICAgICBpZighc3RvcE9wdGlvbnMgJiYgKmFyZz09Jy0n
ICYmIChjPWFyZ1sxXSkhPTApIHsKKyAgICAgICAgICAgIC8qIHByb2Nlc3MgYW4gb3B0aW9uICov
CisgICAgICAgICAgICBVT3B0aW9uICpvcHRpb249TlVMTDsKKyAgICAgICAgICAgIGFyZys9MjsK
KyAgICAgICAgICAgIGlmKGM9PSctJykgeworICAgICAgICAgICAgICAgIC8qIHByb2Nlc3MgYSBs
b25nIG9wdGlvbiAqLworICAgICAgICAgICAgICAgIGlmKCphcmc9PTApIHsKKyAgICAgICAgICAg
ICAgICAgICAgLyogc3RvcCBwcm9jZXNzaW5nIG9wdGlvbnMgYWZ0ZXIgIi0tIiAqLworICAgICAg
ICAgICAgICAgICAgICBzdG9wT3B0aW9ucz0xOworICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgIC8qIHNlYXJjaCBmb3IgdGhlIG9wdGlvbiBzdHJpbmcgKi8KKyAg
ICAgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8
b3B0aW9uQ291bnQ7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYob3B0aW9uc1tq
XS5sb25nTmFtZSAmJiB1cHJ2X3N0cmNtcChhcmcsIG9wdGlvbnNbal0ubG9uZ05hbWUpPT0wKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPW9wdGlvbnMrajsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZihvcHRpb249PU5VTEwp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vIG9wdGlvbiBtYXRjaGVzICovCisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gLWk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgb3B0aW9uLT5kb2VzT2NjdXI9MTsKKworICAgICAgICAgICAgICAg
ICAgICBpZihvcHRpb24tPmhhc0FyZyE9VU9QVF9OT19BUkcpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIC8qIHBhcnNlIHRoZSBhcmd1bWVudCBmb3IgdGhlIG9wdGlvbiwgaWYgYW55ICovCisg
ICAgICAgICAgICAgICAgICAgICAgICBpZihpKzE8YXJnYyAmJiAhKGFyZ3ZbaSsxXVswXT09Jy0n
ICYmIGFyZ3ZbaSsxXVsxXSE9MCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBh
cmd1bWVudCBpbiB0aGUgbmV4dCBhcmd2W10sIGFuZCB0aGVyZSBpcyBub3QgYW4gb3B0aW9uIGlu
IHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLT52YWx1ZT1hcmd2
WysraV07CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYob3B0aW9uLT5oYXNBcmc9
PVVPUFRfUkVRVUlSRVNfQVJHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhl
cmUgaXMgbm8gYXJndW1lbnQsIGJ1dCBvbmUgaXMgcmVxdWlyZWQ6IHJldHVybiB3aXRoIGVycm9y
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1pOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBwcm9jZXNzIG9uZSBvciBt
b3JlIHNob3J0IG9wdGlvbnMgKi8KKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAg
ICAgICAgIC8qIHNlYXJjaCBmb3IgdGhlIG9wdGlvbiBsZXR0ZXIgKi8KKyAgICAgICAgICAgICAg
ICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8b3B0aW9uQ291bnQ7
ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoYz09b3B0aW9uc1tqXS5zaG9ydE5h
bWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb249b3B0aW9ucytqOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmKG9wdGlvbj09
TlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogbm8gb3B0aW9uIG1hdGNoZXMgKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBvcHRpb24tPmRvZXNPY2N1cj0xOworCisgICAgICAgICAg
ICAgICAgICAgIGlmKG9wdGlvbi0+aGFzQXJnIT1VT1BUX05PX0FSRykgeworICAgICAgICAgICAg
ICAgICAgICAgICAgLyogcGFyc2UgdGhlIGFyZ3VtZW50IGZvciB0aGUgb3B0aW9uLCBpZiBhbnkg
Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCphcmchPTApIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiBhcmd1bWVudCBmb2xsb3dpbmcgaW4gdGhlIHNhbWUgYXJndltdICov
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLT52YWx1ZT1hcmc7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyogZG8gbm90IHByb2Nlc3MgdGhlIHJlc3Qgb2YgdGhpcyBh
cmcgYXMgb3B0aW9uIGxldHRlcnMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihpKzE8YXJnYyAmJiAhKGFyZ3Zb
aSsxXVswXT09Jy0nICYmIGFyZ3ZbaSsxXVsxXSE9MCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBhcmd2W10sIGFuZCB0aGVyZSBpcyBub3Qg
YW4gb3B0aW9uIGluIHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9u
LT52YWx1ZT1hcmd2WysraV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBi
cmVhayBpcyByZWR1bmRhbnQgYmVjYXVzZSB3ZSBrbm93IHRoYXQgKmFyZz09MCAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIGlmKG9wdGlvbi0+aGFzQXJnPT1VT1BUX1JFUVVJUkVTX0FSRykgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIHRoZXJlIGlzIG5vIGFyZ3VtZW50LCBidXQgb25lIGlzIHJlcXVp
cmVkOiByZXR1cm4gd2l0aCBlcnJvciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAtaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgICAgIC8qIGdldCB0aGUgbmV4dCBvcHRpb24gbGV0dGVyICov
CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbj1OVUxMOworICAgICAgICAgICAgICAgICAgICBj
PSphcmcrKzsKKyAgICAgICAgICAgICAgICB9IHdoaWxlKGMhPTApOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBpZihvcHRpb24hPTAgJiYgb3B0aW9uLT5vcHRpb25GbiE9MCAmJiBvcHRp
b24tPm9wdGlvbkZuKG9wdGlvbi0+Y29udGV4dCwgb3B0aW9uKTwwKSB7CisgICAgICAgICAgICAg
ICAgLyogdGhlIG9wdGlvbiBmdW5jdGlvbiB3YXMgY2FsbGVkIGFuZCByZXR1cm5lZCBhbiBlcnJv
ciAqLworICAgICAgICAgICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgLyogZ28gdG8gbmV4dCBhcmd2W10gKi8KKyAgICAgICAgICAgICsraTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIC8qIG1vdmUgYSBub24tb3B0aW9uIHVwIGluIGFyZ3ZbXSAq
LworICAgICAgICAgICAgYXJndltyZW1haW5pbmcrK109YXJnOworICAgICAgICAgICAgKytpOwor
ICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZW1haW5pbmc7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25zLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25zLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDNkYjY1ZjI4MWZjMTkzNGNiODg4MzYzNjYwY2IzMzE3NTUzNGFjMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW9wdGlvbnMu
aApAQCAtMCwwICsxLDE0MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBD
b3B5cmlnaHQgKEMpIDIwMDAtMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwor
KiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVvcHRpb25zLmgKKyogICBlbmNv
ZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVu
dGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDAwYXByMTcKKyogICBjcmVhdGVkIGJ5OiBN
YXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIFRoaXMgZmlsZSBwcm92aWRlcyBhIGNvbW1hbmQgbGlu
ZSBhcmd1bWVudCBwYXJzZXIuCisqLworCisjaWZuZGVmIF9fVU9QVElPTlNfSF9fCisjZGVmaW5l
IF9fVU9QVElPTlNfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisvKiBUaGlz
IHNob3VsZCB1c3VhbGx5IGJlIGNhbGxlZCBiZWZvcmUgY2FsbGluZyB1X3BhcnNlQXJncyAqLwor
LyojaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwICYmIChVX0NIQVJTRVRfRkFNSUxZID09IFVf
QVNDSUlfRkFNSUxZKSovCisgICAgLyogdHJhbnNsYXRlIGFyZ3MgZnJvbSBFQkNESUMgdG8gQVND
SUkgKi8KKy8qIyAgIGRlZmluZSBVX01BSU5fSU5JVF9BUkdTKGFyZ2MsIGFyZ3YpIF9fYXJndnRv
YXNjaWlfYShhcmdjLCBhcmd2KSovCisvKiNlbGlmIGRlZmluZWQoWFBfTUFDX0NPTlNPTEUpKi8K
KyNpZiBkZWZpbmVkKFhQX01BQ19DT05TT0xFKQorIyAgIGluY2x1ZGUgPGNvbnNvbGUuaD4KKyAg
ICAvKiBHZXQgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBHVUksIHNpbmNlIG9sZCBNYWNzIGRvbid0
IGhhdmUgYSBjb25zb2xlIFdpbmRvdy4gKi8KKyMgICBkZWZpbmUgVV9NQUlOX0lOSVRfQVJHUyhh
cmdjLCBhcmd2KSBhcmdjID0gY2NvbW1hbmQoKGNoYXIqKiopJmFyZ3YpCisjZWxzZQorICAgIC8q
IE5vcm1hbGx5IHdlIGRvIG5vdGhpbmcuICovCisjICAgZGVmaW5lIFVfTUFJTl9JTklUX0FSR1Mo
YXJnYywgYXJndikKKyNlbmRpZgorCisKKworLyogZm9yd2FyZCBkZWNsYXJhdGlvbnMgZm9yIHRo
ZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiAqLworc3RydWN0IFVPcHRpb247Cit0eXBlZGVmIHN0cnVj
dCBVT3B0aW9uIFVPcHRpb247CisKKy8qIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBmb3IgYSBjb21t
YW5kIGxpbmUgb3B0aW9uICovCit0eXBlZGVmIGludCBVT3B0aW9uRm4odm9pZCAqY29udGV4dCwg
VU9wdGlvbiAqb3B0aW9uKTsKKworLyogdmFsdWVzIG9mIFVPcHRpb24uaGFzQXJnICovCitlbnVt
IHsgVU9QVF9OT19BUkcsIFVPUFRfUkVRVUlSRVNfQVJHLCBVT1BUX09QVElPTkFMX0FSRyB9Owor
CisvKiBzdHJ1Y3R1cmUgZGVzY3JpYmluZyBhIGNvbW1hbmQgbGluZSBvcHRpb24gKi8KK3N0cnVj
dCBVT3B0aW9uIHsKKyAgICBjb25zdCBjaGFyICpsb25nTmFtZTsgICAvKiAiZm9vIiBmb3IgLS1m
b28gKi8KKyAgICBjb25zdCBjaGFyICp2YWx1ZTsgICAgICAvKiBvdXRwdXQgcGxhY2Vob2xkZXIs
IHdpbGwgcG9pbnQgdG8gdGhlIGFyZ3VtZW50IHN0cmluZywgaWYgYW55ICovCisgICAgVU9wdGlv
bkZuICpvcHRpb25GbjsgICAgLyogZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhpcyBvcHRp
b24gb2NjdXJzICovCisgICAgdm9pZCAqY29udGV4dDsgICAgICAgICAgLyogcGFyYW1ldGVyIGZv
ciB0aGUgZnVuY3Rpb24gKi8KKyAgICBjaGFyIHNob3J0TmFtZTsgICAgICAgICAvKiAnZicgZm9y
IC1mICovCisgICAgY2hhciBoYXNBcmc7ICAgICAgICAgICAgLyogZW51bSB2YWx1ZTogb3B0aW9u
IHRha2VzIG5vL3JlcXVpcmVzL21heSBoYXZlIGFyZ3VtZW50ICovCisgICAgY2hhciBkb2VzT2Nj
dXI7ICAgICAgICAgLyogYm9vbGVhbiBmb3IgInRoaXMgb25lIG9jY3VyZWQiICovCit9OworCisv
KiBtYWNybyBmb3IgYW4gZW50cnkgaW4gYSBkZWNsYXJhdGlvbiBvZiBVT3B0aW9uW10gKi8KKyNk
ZWZpbmUgVU9QVElPTl9ERUYobG9uZ05hbWUsIHNob3J0TmFtZSwgaGFzQXJnKSBcCisgICAgeyBs
b25nTmFtZSwgTlVMTCwgTlVMTCwgTlVMTCwgc2hvcnROYW1lLCBoYXNBcmcsIDAgfQorCisvKiBJ
Q1UgVG9vbHMgb3B0aW9uIGRlZmluaXRpb25zICovCisjZGVmaW5lIFVPUFRJT05fSEVMUF9IICAg
ICAgICAgICAgICBVT1BUSU9OX0RFRigiaGVscCIsICdoJywgVU9QVF9OT19BUkcpCisjZGVmaW5l
IFVPUFRJT05fSEVMUF9RVUVTVElPTl9NQVJLICBVT1BUSU9OX0RFRigiaGVscCIsICc/JywgVU9Q
VF9OT19BUkcpCisjZGVmaW5lIFVPUFRJT05fVkVSQk9TRSAgICAgICAgICAgICBVT1BUSU9OX0RF
RigidmVyYm9zZSIsICd2JywgVU9QVF9OT19BUkcpCisjZGVmaW5lIFVPUFRJT05fUVVJRVQgICAg
ICAgICAgICAgICBVT1BUSU9OX0RFRigicXVpZXQiLCAncScsIFVPUFRfTk9fQVJHKQorI2RlZmlu
ZSBVT1BUSU9OX1ZFUlNJT04gICAgICAgICAgICAgVU9QVElPTl9ERUYoInZlcnNpb24iLCAnVics
IFVPUFRfTk9fQVJHKQorI2RlZmluZSBVT1BUSU9OX0NPUFlSSUdIVCAgICAgICAgICAgVU9QVElP
Tl9ERUYoImNvcHlyaWdodCIsICdjJywgVU9QVF9OT19BUkcpCisKKyNkZWZpbmUgVU9QVElPTl9E
RVNURElSICAgICAgICAgICAgIFVPUFRJT05fREVGKCJkZXN0ZGlyIiwgJ2QnLCBVT1BUX1JFUVVJ
UkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9TT1VSQ0VESVIgICAgICAgICAgIFVPUFRJT05fREVG
KCJzb3VyY2VkaXIiLCAncycsIFVPUFRfUkVRVUlSRVNfQVJHKQorI2RlZmluZSBVT1BUSU9OX0VO
Q09ESU5HICAgICAgICAgICAgVU9QVElPTl9ERUYoImVuY29kaW5nIiwgJ2UnLCBVT1BUX1JFUVVJ
UkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9JQ1VEQVRBRElSICAgICAgICAgIFVPUFRJT05fREVG
KCJpY3VkYXRhZGlyIiwgJ2knLCBVT1BUX1JFUVVJUkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9X
UklURV9KQVZBICAgICAgICAgIFVPUFRJT05fREVGKCJ3cml0ZS1qYXZhIiwgJ2onLCBVT1BUX09Q
VElPTkFMX0FSRykKKyNkZWZpbmUgVU9QVElPTl9QQUNLQUdFX05BTUUgICAgICAgIFVPUFRJT05f
REVGKCJwYWNrYWdlLW5hbWUiLCAncCcsIFVPUFRfUkVRVUlSRVNfQVJHKQorI2RlZmluZSBVT1BU
SU9OX0JVTkRMRV9OQU1FICAgICAgICAgVU9QVElPTl9ERUYoImJ1bmRsZS1uYW1lIiwgJ2InLCBV
T1BUX1JFUVVJUkVTX0FSRykKKworLyoqCisgKiBDIENvbW1hbmQgbGluZSBhcmd1bWVudCBwYXJz
ZXIuCisgKgorICogVGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgYXJndlthcmdjXSBjb21tYW5kIGxp
bmUgYW5kIGEgZGVzY3JpcHRpb24gb2YKKyAqIHRoZSBwcm9ncmFtJ3Mgb3B0aW9ucyBpbiBmb3Jt
IG9mIGFuIGFycmF5IG9mIFVPcHRpb24gc3RydWN0dXJlcy4KKyAqIEVhY2ggVU9wdGlvbiBkZWZp
bmVzIGEgbG9uZyBhbmQgYSBzaG9ydCBuYW1lIChhIHN0cmluZyBhbmQgYSBjaGFyYWN0ZXIpCisg
KiBmb3Igb3B0aW9ucyBsaWtlICItLWZvbyIgYW5kICItZiIuCisgKgorICogRWFjaCBvcHRpb24g
aXMgbWFya2VkIHdpdGggd2hldGhlciBpdCBkb2VzIG5vdCB0YWtlIGFuIGFyZ3VtZW50LAorICog
cmVxdWlyZXMgb25lLCBvciBvcHRpb25hbGx5IHRha2VzIG9uZS4gVGhlIGFyZ3VtZW50IG1heSBm
b2xsb3cgaW4KKyAqIHRoZSBzYW1lIGFyZ3ZbXSBlbnRyeSBmb3Igc2hvcnQgb3B0aW9ucywgb3Ig
aXQgbWF5IGFsd2F5cyBmb2xsb3cKKyAqIGluIHRoZSBuZXh0IGFyZ3ZbXSBlbnRyeS4KKyAqCisg
KiBBbiBhcmd1bWVudCBpcyBpbiB0aGUgbmV4dCBhcmd2W10gZW50cnkgZm9yIGJvdGggbG9uZyBh
bmQgc2hvcnQgbmFtZQorICogb3B0aW9ucywgZXhjZXB0IGl0IGlzIHRha2VuIGZyb20gZGlyZWN0
bHkgYmVoaW5kIHRoZSBzaG9ydCBuYW1lIGluCisgKiBpdHMgb3duIGFyZ3ZbXSBlbnRyeSBpZiB0
aGVyZSBhcmUgY2hhcmFjdGVycyBmb2xsb3dpbmcgdGhlIG9wdGlvbiBsZXR0ZXIuCisgKiBBbiBh
cmd1bWVudCBpbiBpdHMgb3duIGFyZ3ZbXSBlbnRyeSBtdXN0IG5vdCBiZWdpbiB3aXRoIGEgJy0n
CisgKiB1bmxlc3MgaXQgaXMgb25seSB0aGUgJy0nIGl0c2VsZi4gVGhlcmUgaXMgbm8gcmVzdHJp
Y3Rpb24gb2YgdGhlCisgKiBhcmd1bWVudCBmb3JtYXQgaWYgaXQgaXMgcGFydCBvZiB0aGUgc2hv
cnQgbmFtZSBvcHRpb25zJ3MgYXJndltdIGVudHJ5LgorICoKKyAqIFRoZSBhcmd1bWVudCBpcyBz
dG9yZWQgaW4gdGhlIHZhbHVlIGZpZWxkIG9mIHRoZSBjb3JyZXNwb25kaW5nCisgKiBVT3B0aW9u
IGVudHJ5LCBhbmQgdGhlIGRvZXNPY2N1ciBmaWVsZCBpcyBzZXQgdG8gMSBpZiB0aGUgb3B0aW9u
CisgKiBpcyBmb3VuZCBhdCBhbGwuCisgKgorICogU2hvcnQgbmFtZSBvcHRpb25zIHdpdGhvdXQg
YXJndW1lbnRzIGNhbiBiZSBjb2xsYXBzZWQgaW50byBhIHNpbmdsZQorICogYXJndltdIGVudHJ5
LiBBZnRlciBhbiBvcHRpb24gbGV0dGVyIHRha2VzIGFuIGFyZ3VtZW50LCBmb2xsb3dpbmcKKyAq
IGxldHRlcnMgd2lsbCBiZSB0YWtlbiBhcyBpdHMgYXJndW1lbnQuCisgKgorICogSWYgdGhlIHNh
bWUgb3B0aW9uIGlzIGZvdW5kIHNldmVyYWwgdGltZXMsIHRoZW4gdGhlIGxhc3QKKyAqIGFyZ3Vt
ZW50IHZhbHVlIHdpbGwgYmUgc3RvcmVkIGluIHRoZSB2YWx1ZSBmaWVsZC4KKyAqCisgKiBGb3Ig
ZWFjaCBvcHRpb24sIGEgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZC4gVGhpcyBjb3VsZCBiZSB1c2Vk
CisgKiBmb3Igb3B0aW9ucyB0aGF0IG9jY3VyIG11bHRpcGxlIHRpbWVzIGFuZCBhbGwgYXJndW1l
bnRzIGFyZSB0bworICogYmUgY29sbGVjdGVkLgorICoKKyAqIEFsbCBvcHRpb25zIGFyZSByZW1v
dmVkIGZyb20gdGhlIGFyZ3ZbXSBhcnJheSBpdHNlbGYuIElmIHRoZSBwYXJzZXIKKyAqIGlzIHN1
Y2Nlc3NmdWwsIHRoZW4gaXQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlbWFpbmluZyBub24tb3B0
aW9uCisgKiBzdHJpbmdzIChpbmNsdWRpbmcgYXJndlswXSkuCisgKiBhcmd2WzBdLCB0aGUgcHJv
Z3JhbSBuYW1lLCBpcyBuZXZlciByZWFkIG9yIG1vZGlmaWVkLgorICoKKyAqIEFuIG9wdGlvbiAi
LS0iIGVuZHMgb3B0aW9uIHByb2Nlc3Npbmc7IGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhpcworICogcmVt
YWlucyBpbiB0aGUgYXJndltdIGFycmF5LgorICoKKyAqIEFuIG9wdGlvbiBzdHJpbmcgIi0iIGFs
b25lIGlzIHRyZWF0ZWQgYXMgYSBub24tb3B0aW9uLgorICoKKyAqIElmIGFuIG9wdGlvbiBpcyBu
b3QgcmVjb2duaXplZCBvciBhbiBhcmd1bWVudCBtaXNzaW5nLCB0aGVuCisgKiB0aGUgcGFyc2Vy
IHJldHVybnMgd2l0aCB0aGUgbmVnYXRpdmUgaW5kZXggb2YgdGhlIGFyZ3ZbXSBlbnRyeQorICog
d2hlcmUgdGhlIGVycm9yIHdhcyBkZXRlY3RlZC4KKyAqCisgKiBUaGUgT1MvNDAwIGNvbXBpbGVy
IHJlcXVpcmVzIHRoYXQgYXJndiBlaXRoZXIgYmUgImNoYXIqIGFyZ3ZbXSIsCisgKiBvciAiY29u
c3QgY2hhciogY29uc3QgYXJndltdIiwgYW5kIGl0IHdpbGwgbm90IGFjY2VwdCwgCisgKiAiY29u
c3QgY2hhciogYXJndltdIiBhcyBhIGRlZmluaXRpb24gZm9yIG1haW4oKS4KKyAqCisgKiBAcGFy
YW0gYXJndiBUaGlzIHBhcmFtZXRlciBpcyBtb2RpZmllZAorICogQHBhcmFtIG9wdGlvbnMgVGhp
cyBwYXJhbWV0ZXIgaXMgbW9kaWZpZWQKKyAqLworVV9DQVBJIGludCBVX0VYUE9SVDIKK3VfcGFy
c2VBcmdzKGludCBhcmdjLCBjaGFyKiBhcmd2W10sCisgICAgICAgICAgICBpbnQgb3B0aW9uQ291
bnQsIFVPcHRpb24gb3B0aW9uc1tdKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3V0cmllLmggYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3V0cmllLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NlYzAyN2ZlMzQ1
OTVlNWI3NWUxZjI4NTBkMjA2YjYyYTk0ZWY4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdXRyaWUuaApAQCAtMCwwICsxLDc5NSBA
QAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMjAwMS0y
MDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5k
IG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyogICBmaWxlIG5hbWU6ICB1dHJpZS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0
YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRl
ZCBvbjogMjAwMW5vdjA4CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisK
KyNpZm5kZWYgX19VVFJJRV9IX18KKyNkZWZpbmUgX19VVFJJRV9IX18KKworI2luY2x1ZGUgInVu
aWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91dGYxNi5oIgorI2luY2x1ZGUgInVk
YXRhc3dwLmgiCisKK1VfQ0RFQ0xfQkVHSU4KKworLyoqCisgKiBcZmlsZQorICoKKyAqIFRoaXMg
aXMgYSBjb21tb24gaW1wbGVtZW50YXRpb24gb2YgYSAiZm9sZGVkIiB0cmllLgorICogSXQgaXMg
YSBraW5kIG9mIGNvbXByZXNzZWQsIHNlcmlhbGl6YWJsZSB0YWJsZSBvZiAxNi0gb3IgMzItYml0
IHZhbHVlcyBhc3NvY2lhdGVkIHdpdGgKKyAqIFVuaWNvZGUgY29kZSBwb2ludHMgKDAuLjB4MTBm
ZmZmKS4KKyAqCisgKiBUaGlzIGltcGxlbWVudGF0aW9uIGlzIG9wdGltaXplZCBmb3IgZ2V0dGlu
ZyB2YWx1ZXMgd2hpbGUgd2Fsa2luZyBmb3J3YXJkCisgKiB0aHJvdWdoIGEgVVRGLTE2IHN0cmlu
Zy4KKyAqIFRoZXJlZm9yZSwgdGhlIHNpbXBsZXN0IGFuZCBmYXN0ZXN0IGFjY2VzcyBtYWNyb3Mg
YXJlIHRoZQorICogX0ZST01fTEVBRCgpIGFuZCBfRlJPTV9PRkZTRVRfVFJBSUwoKSBtYWNyb3Mu
CisgKgorICogVGhlIF9GUk9NX0JNUCgpIG1hY3JvcyBhcmUgYSBsaXR0bGUgbW9yZSBjb21wbGlj
YXRlZDsgdGhleSBnZXQgdmFsdWVzCisgKiBldmVuIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF9w
b2ludHNfLCB3aGlsZSB0aGUgX0ZST01fTEVBRCgpIG1hY3JvcworICogZ2V0IHNwZWNpYWwgImZv
bGRlZCIgdmFsdWVzIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gaWYKKyAqIHRoZXJl
IGlzIHJlbGV2YW50IGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZW0uCisgKiBGcm9tIHN1Y2ggYSBm
b2xkZWQgdmFsdWUsIGFuIG9mZnNldCBuZWVkcyB0byBiZSBleHRyYWN0ZWQgdG8gc3VwcGx5Cisg
KiB0byB0aGUgX0ZST01fT0ZGU0VUX1RSQUlMKCkgbWFjcm9zLgorICoKKyAqIE1vc3Qgb2YgdGhl
IG1vcmUgY29tcGxleCAoYW5kIG1vcmUgY29udmVuaWVudCkgZnVuY3Rpb25zL21hY3JvcyBjYWxs
IGEgY2FsbGJhY2sgZnVuY3Rpb24KKyAqIHRvIGdldCB0aGF0IG9mZnNldCBmcm9tIHRoZSBmb2xk
ZWQgdmFsdWUgZm9yIGEgbGVhZCBzdXJyb2dhdGUgdW5pdC4KKyAqLworCisvKioKKyAqIFRyaWUg
Y29uc3RhbnRzLCBkZWZpbmluZyBzaGlmdCB3aWR0aHMsIGluZGV4IGFycmF5IGxlbmd0aHMsIGV0
Yy4KKyAqLworZW51bSB7CisgICAgLyoqIFNoaWZ0IHNpemUgZm9yIHNoaWZ0aW5nIHJpZ2h0IHRo
ZSBpbnB1dCBpbmRleC4gMS4uOSAqLworICAgIFVUUklFX1NISUZUPTUsCisKKyAgICAvKiogTnVt
YmVyIG9mIGRhdGEgdmFsdWVzIGluIGEgc3RhZ2UgMiAoZGF0YSBhcnJheSkgYmxvY2suIDIsIDQs
IDgsIC4uLCAweDIwMCAqLworICAgIFVUUklFX0RBVEFfQkxPQ0tfTEVOR1RIPTE8PFVUUklFX1NI
SUZULAorCisgICAgLyoqIE1hc2sgZm9yIGdldHRpbmcgdGhlIGxvd2VyIGJpdHMgZnJvbSB0aGUg
aW5wdXQgaW5kZXguICovCisgICAgVVRSSUVfTUFTSz1VVFJJRV9EQVRBX0JMT0NLX0xFTkdUSC0x
LAorCisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMnIGluZGV4IGRp
c3BsYWNlbWVudCBpbiB0aGUgaW5kZXggYXJyYXkuCisgICAgICogMHgxMDAwMC0weGQ4MDA9MHgy
ODAwCisgICAgICovCisgICAgVVRSSUVfTEVBRF9JTkRFWF9ESVNQPTB4MjgwMD4+VVRSSUVfU0hJ
RlQsCisKKyAgICAvKioKKyAgICAgKiBTaGlmdCBzaXplIGZvciBzaGlmdGluZyBsZWZ0IHRoZSBp
bmRleCBhcnJheSB2YWx1ZXMuCisgICAgICogSW5jcmVhc2VzIHBvc3NpYmxlIGRhdGEgc2l6ZSB3
aXRoIDE2LWJpdCBpbmRleCB2YWx1ZXMgYXQgdGhlIGNvc3QKKyAgICAgKiBvZiBjb21wYWN0YWJp
bGl0eS4KKyAgICAgKiBUaGlzIHJlcXVpcmVzIGJsb2NrcyBvZiBzdGFnZSAyIGRhdGEgdG8gYmUg
YWxpZ25lZCBieSBVVFJJRV9EQVRBX0dSQU5VTEFSSVRZLgorICAgICAqIDAuLlVUUklFX1NISUZU
CisgICAgICovCisgICAgVVRSSUVfSU5ERVhfU0hJRlQ9MiwKKworICAgIC8qKiBUaGUgYWxpZ25t
ZW50IHNpemUgb2YgYSBzdGFnZSAyIGRhdGEgYmxvY2suIEFsc28gdGhlIGdyYW51bGFyaXR5IGZv
ciBjb21wYWN0aW9uLiAqLworICAgIFVUUklFX0RBVEFfR1JBTlVMQVJJVFk9MTw8VVRSSUVfSU5E
RVhfU0hJRlQsCisKKyAgICAvKiogTnVtYmVyIG9mIGJpdHMgb2YgYSB0cmFpbCBzdXJyb2dhdGUg
dGhhdCBhcmUgdXNlZCBpbiBpbmRleCB0YWJsZSBsb29rdXBzLiAqLworICAgIFVUUklFX1NVUlJP
R0FURV9CTE9DS19CSVRTPTEwLVVUUklFX1NISUZULAorCisgICAgLyoqCisgICAgICogTnVtYmVy
IG9mIGluZGV4IChzdGFnZSAxKSBlbnRyaWVzIHBlciBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgKiBT
YW1lIGFzIG51bWJlciBvZiBpbmRleCBlbnRyaWVzIGZvciAxMDI0IHRyYWlsIHN1cnJvZ2F0ZXMs
CisgICAgICogPT0weDQwMD4+VVRSSUVfU0hJRlQKKyAgICAgKi8KKyAgICBVVFJJRV9TVVJST0dB
VEVfQkxPQ0tfQ09VTlQ9KDE8PFVUUklFX1NVUlJPR0FURV9CTE9DS19CSVRTKSwKKworICAgIC8q
KiBMZW5ndGggb2YgdGhlIEJNUCBwb3J0aW9uIG9mIHRoZSBpbmRleCAoc3RhZ2UgMSkgYXJyYXku
ICovCisgICAgVVRSSUVfQk1QX0lOREVYX0xFTkdUSD0weDEwMDAwPj5VVFJJRV9TSElGVAorfTsK
KworLyoqCisgKiBMZW5ndGggb2YgdGhlIGluZGV4IChzdGFnZSAxKSBhcnJheSBiZWZvcmUgZm9s
ZGluZy4KKyAqIE1heGltdW0gbnVtYmVyIG9mIFVuaWNvZGUgY29kZSBwb2ludHMgKDB4MTEwMDAw
KSBzaGlmdGVkIHJpZ2h0IGJ5IFVUUklFX1NISUZULgorICovCisjZGVmaW5lIFVUUklFX01BWF9J
TkRFWF9MRU5HVEggKDB4MTEwMDAwPj5VVFJJRV9TSElGVCkKKworLyoqCisgKiBNYXhpbXVtIGxl
bmd0aCBvZiB0aGUgcnVudGltZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKyAqIExpbWl0ZWQgYnkg
MTYtYml0IGluZGV4IHZhbHVlcyB0aGF0IGFyZSBsZWZ0LXNoaWZ0ZWQgYnkgVVRSSUVfSU5ERVhf
U0hJRlQuCisgKi8KKyNkZWZpbmUgVVRSSUVfTUFYX0RBVEFfTEVOR1RIICgweDEwMDAwPDxVVFJJ
RV9JTkRFWF9TSElGVCkKKworLyoqCisgKiBNYXhpbXVtIGxlbmd0aCBvZiB0aGUgYnVpbGQtdGlt
ZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKyAqIFRoZSBtYXhpbXVtIGxlbmd0aCBpcyAweDExMDAw
MCtVVFJJRV9EQVRBX0JMT0NLX0xFTkdUSCsweDQwMC4KKyAqIChOdW1iZXIgb2YgVW5pY29kZSBj
b2RlIHBvaW50cyArIG9uZSBhbGwtaW5pdGlhbC12YWx1ZSBibG9jayArCisgKiAgcG9zc2libGUg
ZHVwbGljYXRlIGVudHJpZXMgZm9yIDEwMjQgbGVhZCBzdXJyb2dhdGVzLikKKyAqLworI2RlZmlu
ZSBVVFJJRV9NQVhfQlVJTERfVElNRV9EQVRBX0xFTkdUSCAoMHgxMTAwMDArVVRSSUVfREFUQV9C
TE9DS19MRU5HVEgrMHg0MDApCisKKy8qKgorICogTnVtYmVyIG9mIGJ5dGVzIGZvciBhIGR1bW15
IHRyaWUuCisgKiBBIGR1bW15IHRyaWUgaXMgYW4gZW1wdHkgcnVudGltZSB0cmllLCB1c2VkIHdo
ZW4gYSByZWFsIGRhdGEgdHJpZSBjYW5ub3QKKyAqIGJlIGxvYWRlZC4KKyAqIFRoZSBudW1iZXIg
b2YgYnl0ZXMgd29ya3MgZm9yIExhdGluLTEtbGluZWFyIHRyaWVzIHdpdGggMzItYml0IGRhdGEK
KyAqICh3b3JzdCBjYXNlKS4KKyAqCisgKiBDYWxjdWxhdGlvbjoKKyAqICAgQk1QIGluZGV4ICsg
MSBpbmRleCBibG9jayBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMgKworICogICBMYXRp
bi0xLWxpbmVhciBhcnJheSArIDEgZGF0YSBibG9jayBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBw
b2ludHMKKyAqCisgKiBMYXRpbi0xOiBpZihVVFJJRV9TSElGVDw9OCkgeyAyNTYgfSBlbHNlIHsg
aW5jbHVkZWQgaW4gZmlyc3QgZGF0YSBibG9jayB9CisgKgorICogQHNlZSB1dHJpZV91bnNlcmlh
bGl6ZUR1bW15CisgKi8KKyNkZWZpbmUgVVRSSUVfRFVNTVlfU0laRSAoKFVUUklFX0JNUF9JTkRF
WF9MRU5HVEgrVVRSSUVfU1VSUk9HQVRFX0JMT0NLX0NPVU5UKSoyKyhVVFJJRV9TSElGVDw9OD8y
NTY6VVRSSUVfREFUQV9CTE9DS19MRU5HVEgpKjQrVVRSSUVfREFUQV9CTE9DS19MRU5HVEgqNCkK
KworLyoqCisgKiBSdW50aW1lIFVUcmllIGNhbGxiYWNrIGZ1bmN0aW9uLgorICogRXh0cmFjdCBm
cm9tIGEgbGVhZCBzdXJyb2dhdGUncyBkYXRhIHRoZQorICogaW5kZXggYXJyYXkgb2Zmc2V0IG9m
IHRoZSBpbmRleGVzIGZvciB0aGF0IGxlYWQgc3Vycm9nYXRlLgorICoKKyAqIEBwYXJhbSBkYXRh
IGRhdGEgdmFsdWUgZm9yIGEgc3Vycm9nYXRlIGZyb20gdGhlIHRyaWUsIGluY2x1ZGluZyB0aGUg
Zm9sZGluZyBvZmZzZXQKKyAqIEByZXR1cm4gb2Zmc2V0Pj1VVFJJRV9CTVBfSU5ERVhfTEVOR1RI
LCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZQorICovCit0
eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgorVVRyaWVHZXRGb2xkaW5nT2Zmc2V0KHVpbnQzMl90
IGRhdGEpOworCisvKioKKyAqIFJ1bi10aW1lIFRyaWUgc3RydWN0dXJlLgorICoKKyAqIEVpdGhl
ciB0aGUgZGF0YSB0YWJsZSBpcyAxNiBiaXRzIHdpZGUgYW5kIGFjY2Vzc2VkIHZpYSB0aGUgaW5k
ZXgKKyAqIHBvaW50ZXIsIHdpdGggZWFjaCBpbmRleCBpdGVtIGluY3JlYXNlZCBieSBpbmRleExl
bmd0aDsKKyAqIGluIHRoaXMgY2FzZSwgZGF0YTMyPT1OVUxMLgorICoKKyAqIE9yIHRoZSBkYXRh
IHRhYmxlIGlzIDMyIGJpdHMgd2lkZSBhbmQgYWNjZXNzZWQgdmlhIHRoZSBkYXRhMzIgcG9pbnRl
ci4KKyAqLworc3RydWN0IFVUcmllIHsKKyAgICBjb25zdCB1aW50MTZfdCAqaW5kZXg7CisgICAg
Y29uc3QgdWludDMyX3QgKmRhdGEzMjsgLyogTlVMTCBpZiAxNmIgZGF0YSBpcyB1c2VkIHZpYSBp
bmRleCAqLworCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyBub3QgdXNlZCBpbiBf
RlJPTV9MRUFELCBfRlJPTV9CTVAsIGFuZCBfRlJPTV9PRkZTRVRfVFJBSUwgbWFjcm9zLgorICAg
ICAqIElmIGNvbnZlbmllbmNlIG1hY3JvcyBsaWtlIF9HRVQxNiBvciBfTkVYVDMyIGFyZSB1c2Vk
LCB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgc2V0LgorICAgICAqCisgICAgICogdXRyaWVfdW5zZXJp
YWxpemUoKSBzZXRzIGEgZGVmYXVsdCBmdW5jdGlvbiB3aGljaCBzaW1wbHkgcmV0dXJucworICAg
ICAqIHRoZSBsZWFkIHN1cnJvZ2F0ZSdzIHZhbHVlIGl0c2VsZiAtIHdoaWNoIGlzIHRoZSBpbnZl
cnNlIG9mIHRoZSBkZWZhdWx0CisgICAgICogZm9sZGluZyBmdW5jdGlvbiB1c2VkIGJ5IHV0cmll
X3NlcmlhbGl6ZSgpLgorICAgICAqCisgICAgICogQHNlZSBVVHJpZUdldEZvbGRpbmdPZmZzZXQK
KyAgICAgKi8KKyAgICBVVHJpZUdldEZvbGRpbmdPZmZzZXQgKmdldEZvbGRpbmdPZmZzZXQ7CisK
KyAgICBpbnQzMl90IGluZGV4TGVuZ3RoLCBkYXRhTGVuZ3RoOworICAgIHVpbnQzMl90IGluaXRp
YWxWYWx1ZTsKKyAgICBVQm9vbCBpc0xhdGluMUxpbmVhcjsKK307CisKKyNpZm5kZWYgX19VVFJJ
RTJfSF9fCit0eXBlZGVmIHN0cnVjdCBVVHJpZSBVVHJpZTsKKyNlbmRpZgorCisvKiogSW50ZXJu
YWwgdHJpZSBnZXR0ZXIgZnJvbSBhbiBvZmZzZXQgKDAgaWYgYzE2IGlzIGEgQk1QL2xlYWQgdW5p
dHMpIGFuZCBhIDE2LWJpdCB1bml0ICovCisjZGVmaW5lIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGRh
dGEsIG9mZnNldCwgYzE2KSBcCisgICAgKHRyaWUpLT5kYXRhWyBcCisgICAgICAgICgoaW50MzJf
dCkoKHRyaWUpLT5pbmRleFsob2Zmc2V0KSsoKGMxNik+PlVUUklFX1NISUZUKV0pPDxVVFJJRV9J
TkRFWF9TSElGVCkrIFwKKyAgICAgICAgKChjMTYpJlVUUklFX01BU0spIFwKKyAgICBdCisKKy8q
KiBJbnRlcm5hbCB0cmllIGdldHRlciBmcm9tIGEgcGFpciBvZiBzdXJyb2dhdGVzICovCisjZGVm
aW5lIF9VVFJJRV9HRVRfRlJPTV9QQUlSKHRyaWUsIGRhdGEsIGMsIGMyLCByZXN1bHQsIHJlc3Vs
dFR5cGUpIHsgXAorICAgIGludDMyX3QgX19vZmZzZXQ7IFwKK1wKKyAgICAvKiBnZXQgZGF0YSBm
b3IgbGVhZCBzdXJyb2dhdGUgKi8gXAorICAgIChyZXN1bHQpPV9VVFJJRV9HRVRfUkFXKCh0cmll
KSwgZGF0YSwgMCwgKGMpKTsgXAorICAgIF9fb2Zmc2V0PSh0cmllKS0+Z2V0Rm9sZGluZ09mZnNl
dChyZXN1bHQpOyBcCitcCisgICAgLyogZ2V0IHRoZSByZWFsIGRhdGEgZnJvbSB0aGUgZm9sZGVk
IGxlYWQvdHJhaWwgdW5pdHMgKi8gXAorICAgIGlmKF9fb2Zmc2V0PjApIHsgXAorICAgICAgICAo
cmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEsIF9fb2Zmc2V0LCAoYzIpJjB4M2Zm
KTsgXAorICAgIH0gZWxzZSB7IFwKKyAgICAgICAgKHJlc3VsdCk9KHJlc3VsdFR5cGUpKCh0cmll
KS0+aW5pdGlhbFZhbHVlKTsgXAorICAgIH0gXAorfQorCisvKiogSW50ZXJuYWwgdHJpZSBnZXR0
ZXIgZnJvbSBhIEJNUCBjb2RlIHBvaW50LCB0cmVhdGluZyBhIGxlYWQgc3Vycm9nYXRlIGFzIGEg
bm9ybWFsIGNvZGUgcG9pbnQgKi8KKyNkZWZpbmUgX1VUUklFX0dFVF9GUk9NX0JNUCh0cmllLCBk
YXRhLCBjMTYpIFwKKyAgICBfVVRSSUVfR0VUX1JBVyh0cmllLCBkYXRhLCAweGQ4MDA8PShjMTYp
ICYmIChjMTYpPD0weGRiZmYgPyBVVFJJRV9MRUFEX0lOREVYX0RJU1AgOiAwLCBjMTYpOworCisv
KioKKyAqIEludGVybmFsIHRyaWUgZ2V0dGVyIGZyb20gYSBjb2RlIHBvaW50LgorICogQ291bGQg
YmUgZmFzdGVyKD8pIGJ1dCBsb25nZXIgd2l0aAorICogICBpZigoYzMyKTw9MHhkN2ZmKSB7IChy
ZXN1bHQpPV9VVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEsIDAsIGMzMik7IH0KKyAqLworI2RlZmlu
ZSBfVVRSSUVfR0VUKHRyaWUsIGRhdGEsIGMzMiwgcmVzdWx0LCByZXN1bHRUeXBlKSBcCisgICAg
aWYoKHVpbnQzMl90KShjMzIpPD0weGZmZmYpIHsgXAorICAgICAgICAvKiBCTVAgY29kZSBwb2lu
dHMgKi8gXAorICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX0ZST01fQk1QKHRyaWUsIGRhdGEs
IGMzMik7IFwKKyAgICB9IGVsc2UgaWYoKHVpbnQzMl90KShjMzIpPD0weDEwZmZmZikgeyBcCisg
ICAgICAgIC8qIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCAqLyBcCisgICAgICAgIFVDaGFyIF9f
bGVhZDE2PVUxNl9MRUFEKGMzMik7IFwKKyAgICAgICAgX1VUUklFX0dFVF9GUk9NX1BBSVIodHJp
ZSwgZGF0YSwgX19sZWFkMTYsIGMzMiwgcmVzdWx0LCByZXN1bHRUeXBlKTsgXAorICAgIH0gZWxz
ZSB7IFwKKyAgICAgICAgLyogb3V0IG9mIHJhbmdlICovIFwKKyAgICAgICAgKHJlc3VsdCk9KHJl
c3VsdFR5cGUpKCh0cmllKS0+aW5pdGlhbFZhbHVlKTsgXAorICAgIH0KKworLyoqIEludGVybmFs
IG5leHQtcG9zdC1pbmNyZW1lbnQ6IGdldCB0aGUgbmV4dCBjb2RlIHBvaW50IChjLCBjMikgYW5k
IGl0cyBkYXRhICovCisjZGVmaW5lIF9VVFJJRV9ORVhUKHRyaWUsIGRhdGEsIHNyYywgbGltaXQs
IGMsIGMyLCByZXN1bHQsIHJlc3VsdFR5cGUpIHsgXAorICAgIChjKT0qKHNyYykrKzsgXAorICAg
IGlmKCFVMTZfSVNfTEVBRChjKSkgeyBcCisgICAgICAgIChjMik9MDsgXAorICAgICAgICAocmVz
dWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEsIDAsIChjKSk7IFwKKyAgICB9IGVsc2Ug
aWYoKHNyYykhPShsaW1pdCkgJiYgVTE2X0lTX1RSQUlMKChjMik9KihzcmMpKSkgeyBcCisgICAg
ICAgICsrKHNyYyk7IFwKKyAgICAgICAgX1VUUklFX0dFVF9GUk9NX1BBSVIoKHRyaWUpLCBkYXRh
LCAoYyksIChjMiksIChyZXN1bHQpLCByZXN1bHRUeXBlKTsgXAorICAgIH0gZWxzZSB7IFwKKyAg
ICAgICAgLyogdW5wYWlyZWQgbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludCAqLyBcCisgICAgICAg
IChjMik9MDsgXAorICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEs
IFVUUklFX0xFQURfSU5ERVhfRElTUCwgKGMpKTsgXAorICAgIH0gXAorfQorCisvKiogSW50ZXJu
YWwgcHJldmlvdXM6IGdldCB0aGUgcHJldmlvdXMgY29kZSBwb2ludCAoYywgYzIpIGFuZCBpdHMg
ZGF0YSAqLworI2RlZmluZSBfVVRSSUVfUFJFVklPVVModHJpZSwgZGF0YSwgc3RhcnQsIHNyYywg
YywgYzIsIHJlc3VsdCwgcmVzdWx0VHlwZSkgeyBcCisgICAgKGMpPSotLShzcmMpOyBcCisgICAg
aWYoIVUxNl9JU19TVVJST0dBVEUoYykpIHsgXAorICAgICAgICAoYzIpPTA7IFwKKyAgICAgICAg
KHJlc3VsdCk9X1VUUklFX0dFVF9SQVcoKHRyaWUpLCBkYXRhLCAwLCAoYykpOyBcCisgICAgfSBl
bHNlIGlmKCFVMTZfSVNfU1VSUk9HQVRFX0xFQUQoYykpIHsgXAorICAgICAgICAvKiB0cmFpbCBz
dXJyb2dhdGUgKi8gXAorICAgICAgICBpZigoc3RhcnQpIT0oc3JjKSAmJiBVMTZfSVNfTEVBRCgo
YzIpPSooKHNyYyktMSkpKSB7IFwKKyAgICAgICAgICAgIC0tKHNyYyk7IFwKKyAgICAgICAgICAg
IChyZXN1bHQpPShjKTsgKGMpPShjMik7IChjMik9KFVDaGFyKShyZXN1bHQpOyAvKiBzd2FwIGMs
IGMyICovIFwKKyAgICAgICAgICAgIF9VVFJJRV9HRVRfRlJPTV9QQUlSKCh0cmllKSwgZGF0YSwg
KGMpLCAoYzIpLCAocmVzdWx0KSwgcmVzdWx0VHlwZSk7IFwKKyAgICAgICAgfSBlbHNlIHsgXAor
ICAgICAgICAgICAgLyogdW5wYWlyZWQgdHJhaWwgc3Vycm9nYXRlIGNvZGUgcG9pbnQgKi8gXAor
ICAgICAgICAgICAgKGMyKT0wOyBcCisgICAgICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JB
VygodHJpZSksIGRhdGEsIDAsIChjKSk7IFwKKyAgICAgICAgfSBcCisgICAgfSBlbHNlIHsgXAor
ICAgICAgICAvKiB1bnBhaXJlZCBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50ICovIFwKKyAgICAg
ICAgKGMyKT0wOyBcCisgICAgICAgIChyZXN1bHQpPV9VVFJJRV9HRVRfUkFXKCh0cmllKSwgZGF0
YSwgVVRSSUVfTEVBRF9JTkRFWF9ESVNQLCAoYykpOyBcCisgICAgfSBcCit9CisKKy8qIFB1Ymxp
YyBVVHJpZSBBUEkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBHZXQgYSBwb2ludGVyIHRvIHRoZSBjb250aWd1b3Vz
IHBhcnQgb2YgdGhlIGRhdGEgYXJyYXkKKyAqIGZvciB0aGUgTGF0aW4tMSByYW5nZSAoVSswMDAw
Li5VKzAwZmYpLgorICogTXVzdCBiZSB1c2VkIG9ubHkgaWYgdGhlIExhdGluLTEgcmFuZ2UgaXMg
aW4gZmFjdCBsaW5lYXIKKyAqICh0cmllLT5pc0xhdGluMUxpbmVhcikuCisgKgorICogQHBhcmFt
IHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBz
dHJ1Y3R1cmUKKyAqIEByZXR1cm4gKGNvbnN0IHVpbnQxNl90ICopIHBvaW50ZXIgdG8gdmFsdWVz
IGZvciBMYXRpbi0xIGNvZGUgcG9pbnRzCisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTZfTEFUSU4x
KHRyaWUpICgodHJpZSktPmluZGV4Kyh0cmllKS0+aW5kZXhMZW5ndGgrVVRSSUVfREFUQV9CTE9D
S19MRU5HVEgpCisKKy8qKgorICogR2V0IGEgcG9pbnRlciB0byB0aGUgY29udGlndW91cyBwYXJ0
IG9mIHRoZSBkYXRhIGFycmF5CisgKiBmb3IgdGhlIExhdGluLTEgcmFuZ2UgKFUrMDAwMC4uVSsw
MGZmKS4KKyAqIE11c3QgYmUgdXNlZCBvbmx5IGlmIHRoZSBMYXRpbi0xIHJhbmdlIGlzIGluIGZh
Y3QgbGluZWFyCisgKiAodHJpZS0+aXNMYXRpbjFMaW5lYXIpLgorICoKKyAqIEBwYXJhbSB0cmll
IChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0
dXJlCisgKiBAcmV0dXJuIChjb25zdCB1aW50MzJfdCAqKSBwb2ludGVyIHRvIHZhbHVlcyBmb3Ig
TGF0aW4tMSBjb2RlIHBvaW50cworICovCisjZGVmaW5lIFVUUklFX0dFVDMyX0xBVElOMSh0cmll
KSAoKHRyaWUpLT5kYXRhMzIrVVRSSUVfREFUQV9CTE9DS19MRU5HVEgpCisKKy8qKgorICogR2V0
IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJNUCBjb2RlIHBvaW50IChVQ2hhciwgPD1VK2Zm
ZmYpLgorICogYzE2IG1heSBiZSBhIGxlYWQgc3Vycm9nYXRlLCB3aGljaCBtYXkgaGF2ZSBhIHZh
bHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0LgorICoKKyAqIEBwYXJhbSB0cmllIChjb25z
dCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisg
KiBAcGFyYW0gYzE2IChVQ2hhciwgaW4pIHRoZSBpbnB1dCBCTVAgY29kZSBwb2ludAorICogQHJl
dHVybiAodWludDE2X3QpIHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dF
VDE2X0ZST01fTEVBRCh0cmllLCBjMTYpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGluZGV4LCAwLCBj
MTYpCisKKy8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJNUCBjb2RlIHBv
aW50IChVQ2hhciwgPD1VK2ZmZmYpLgorICogYzE2IG1heSBiZSBhIGxlYWQgc3Vycm9nYXRlLCB3
aGljaCBtYXkgaGF2ZSBhIHZhbHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0LgorICoKKyAq
IEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1l
IHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYzE2IChVQ2hhciwgaW4pIHRoZSBpbnB1dCBCTVAg
Y29kZSBwb2ludAorICogQHJldHVybiAodWludDMyX3QpIHRyaWUgbG9va3VwIHJlc3VsdAorICov
CisjZGVmaW5lIFVUUklFX0dFVDMyX0ZST01fTEVBRCh0cmllLCBjMTYpIF9VVFJJRV9HRVRfUkFX
KHRyaWUsIGRhdGEzMiwgMCwgYzE2KQorCisvKioKKyAqIEdldCBhIDE2LWJpdCB0cmllIHZhbHVl
IGZyb20gYSBCTVAgY29kZSBwb2ludCAoVUNoYXIsIDw9VStmZmZmKS4KKyAqIEV2ZW4gbGVhZCBz
dXJyb2dhdGUgY29kZSBwb2ludHMgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIGNvZGUgcG9pbnRzLAor
ICogd2l0aCB1bmZvbGRlZCB2YWx1ZXMgdGhhdCBtYXkgZGlmZmVyIGZyb20gX0ZST01fTEVBRCgp
IG1hY3JvIHJlc3VsdHMgZm9yIHRoZW0uCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmll
ICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJh
bSBjMTYgKFVDaGFyLCBpbikgdGhlIGlucHV0IEJNUCBjb2RlIHBvaW50CisgKiBAcmV0dXJuICh1
aW50MTZfdCkgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTZfRlJP
TV9CTVAodHJpZSwgYzE2KSBfVVRSSUVfR0VUX0ZST01fQk1QKHRyaWUsIGluZGV4LCBjMTYpCisK
Ky8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJNUCBjb2RlIHBvaW50IChV
Q2hhciwgPD1VK2ZmZmYpLgorICogRXZlbiBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cyBhcmUg
dHJlYXRlZCBhcyBub3JtYWwgY29kZSBwb2ludHMsCisgKiB3aXRoIHVuZm9sZGVkIHZhbHVlcyB0
aGF0IG1heSBkaWZmZXIgZnJvbSBfRlJPTV9MRUFEKCkgbWFjcm8gcmVzdWx0cyBmb3IgdGhlbS4K
KyAqCisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRlciB0byB0aGUg
cnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIGMxNiAoVUNoYXIsIGluKSB0aGUgaW5w
dXQgQk1QIGNvZGUgcG9pbnQKKyAqIEByZXR1cm4gKHVpbnQzMl90KSB0cmllIGxvb2t1cCByZXN1
bHQKKyAqLworI2RlZmluZSBVVFJJRV9HRVQzMl9GUk9NX0JNUCh0cmllLCBjMTYpIF9VVFJJRV9H
RVRfRlJPTV9CTVAodHJpZSwgZGF0YTMyLCBjMTYpCisKKy8qKgorICogR2V0IGEgMTYtYml0IHRy
aWUgdmFsdWUgZnJvbSBhIGNvZGUgcG9pbnQuCisgKiBFdmVuIGxlYWQgc3Vycm9nYXRlIGNvZGUg
cG9pbnRzIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBjb2RlIHBvaW50cywKKyAqIHdpdGggdW5mb2xk
ZWQgdmFsdWVzIHRoYXQgbWF5IGRpZmZlciBmcm9tIF9GUk9NX0xFQUQoKSBtYWNybyByZXN1bHRz
IGZvciB0aGVtLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2lu
dGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYzMyIChVQ2hhcjMy
LCBpbikgdGhlIGlucHV0IGNvZGUgcG9pbnQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQxNl90LCBv
dXQpIHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNk
ZWZpbmUgVVRSSUVfR0VUMTYodHJpZSwgYzMyLCByZXN1bHQpIF9VVFJJRV9HRVQodHJpZSwgaW5k
ZXgsIGMzMiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgYSAzMi1iaXQgdHJpZSB2
YWx1ZSBmcm9tIGEgY29kZSBwb2ludC4KKyAqIEV2ZW4gbGVhZCBzdXJyb2dhdGUgY29kZSBwb2lu
dHMgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIGNvZGUgcG9pbnRzLAorICogd2l0aCB1bmZvbGRlZCB2
YWx1ZXMgdGhhdCBtYXkgZGlmZmVyIGZyb20gX0ZST01fTEVBRCgpIG1hY3JvIHJlc3VsdHMgZm9y
IHRoZW0uCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIg
dG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBjMzIgKFVDaGFyMzIsIGlu
KSB0aGUgaW5wdXQgY29kZSBwb2ludAorICogQHBhcmFtIHJlc3VsdCAodWludDMyX3QsIG91dCkg
dWludDMyX3QgdmFyaWFibGUgZm9yIHRoZSB0cmllIGxvb2t1cCByZXN1bHQKKyAqLworI2RlZmlu
ZSBVVFJJRV9HRVQzMih0cmllLCBjMzIsIHJlc3VsdCkgX1VUUklFX0dFVCh0cmllLCBkYXRhMzIs
IGMzMiwgcmVzdWx0LCB1aW50MzJfdCkKKworLyoqCisgKiBHZXQgdGhlIG5leHQgY29kZSBwb2lu
dCAoYywgYzIpLCBwb3N0LWluY3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0IGEgMTYtYml0IHZhbHVl
IGZyb20gdGhlIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBh
IHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzcmMgKGNv
bnN0IFVDaGFyICosIGluL291dCkgdGhlIHNvdXJjZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBs
aW1pdCAoY29uc3QgVUNoYXIgKiwgaW4pIHRoZSBsaW1pdCBwb2ludGVyIGZvciB0aGUgdGV4dCwg
b3IgTlVMTAorICogQHBhcmFtIGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9y
IGxlYWQgY29kZSB1bml0CisgKiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAw
IG9yIHRoZSB0cmFpbCBjb2RlIHVuaXQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQxNl90LCBvdXQp
IHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZp
bmUgVVRSSUVfTkVYVDE2KHRyaWUsIHNyYywgbGltaXQsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9O
RVhUKHRyaWUsIGluZGV4LCBzcmMsIGxpbWl0LCBjLCBjMiwgcmVzdWx0LCB1aW50MTZfdCkKKwor
LyoqCisgKiBHZXQgdGhlIG5leHQgY29kZSBwb2ludCAoYywgYzIpLCBwb3N0LWluY3JlbWVudCBz
cmMsCisgKiBhbmQgZ2V0IGEgMzItYml0IHZhbHVlIGZyb20gdGhlIHRyaWUuCisgKgorICogQHBh
cmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJp
ZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzcmMgKGNvbnN0IFVDaGFyICosIGluL291dCkgdGhlIHNv
dXJjZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBsaW1pdCAoY29uc3QgVUNoYXIgKiwgaW4pIHRo
ZSBsaW1pdCBwb2ludGVyIGZvciB0aGUgdGV4dCwgb3IgTlVMTAorICogQHBhcmFtIGMgKFVDaGFy
LCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9yIGxlYWQgY29kZSB1bml0CisgKiBAcGFyYW0g
YzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAwIG9yIHRoZSB0cmFpbCBjb2RlIHVuaXQKKyAq
IEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQpIHVpbnQzMl90IHZhcmlhYmxlIGZvciB0aGUg
dHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfTkVYVDMyKHRyaWUsIHNyYywg
bGltaXQsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9ORVhUKHRyaWUsIGRhdGEzMiwgc3JjLCBsaW1p
dCwgYywgYzIsIHJlc3VsdCwgdWludDMyX3QpCisKKy8qKgorICogR2V0IHRoZSBwcmV2aW91cyBj
b2RlIHBvaW50IChjLCBjMiksIHByZS1kZWNyZW1lbnQgc3JjLAorICogYW5kIGdldCBhIDE2LWJp
dCB2YWx1ZSBmcm9tIHRoZSB0cmllLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAq
LCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0g
c3RhcnQgKGNvbnN0IFVDaGFyICosIGluKSB0aGUgc3RhcnQgcG9pbnRlciBmb3IgdGhlIHRleHQs
IG9yIE5VTEwKKyAqIEBwYXJhbSBzcmMgKGNvbnN0IFVDaGFyICosIGluL291dCkgdGhlIHNvdXJj
ZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBjIChVQ2hhciwgb3V0KSB2YXJpYWJsZSBmb3IgdGhl
IEJNUCBvciBsZWFkIGNvZGUgdW5pdAorICogQHBhcmFtIGMyIChVQ2hhciwgb3V0KSB2YXJpYWJs
ZSBmb3IgMCBvciB0aGUgdHJhaWwgY29kZSB1bml0CisgKiBAcGFyYW0gcmVzdWx0ICh1aW50MTZf
dCwgb3V0KSB1aW50MTZfdCB2YXJpYWJsZSBmb3IgdGhlIHRyaWUgbG9va3VwIHJlc3VsdAorICov
CisjZGVmaW5lIFVUUklFX1BSRVZJT1VTMTYodHJpZSwgc3RhcnQsIHNyYywgYywgYzIsIHJlc3Vs
dCkgX1VUUklFX1BSRVZJT1VTKHRyaWUsIGluZGV4LCBzdGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0
LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgKGMsIGMy
KSwgcHJlLWRlY3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0IGEgMzItYml0IHZhbHVlIGZyb20gdGhl
IHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIg
dG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzdGFydCAoY29uc3QgVUNo
YXIgKiwgaW4pIHRoZSBzdGFydCBwb2ludGVyIGZvciB0aGUgdGV4dCwgb3IgTlVMTAorICogQHBh
cmFtIHNyYyAoY29uc3QgVUNoYXIgKiwgaW4vb3V0KSB0aGUgc291cmNlIHRleHQgcG9pbnRlcgor
ICogQHBhcmFtIGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9yIGxlYWQgY29k
ZSB1bml0CisgKiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAwIG9yIHRoZSB0
cmFpbCBjb2RlIHVuaXQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQpIHVpbnQzMl90
IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVf
UFJFVklPVVMzMih0cmllLCBzdGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0KSBfVVRSSUVfUFJFVklP
VVModHJpZSwgZGF0YTMyLCBzdGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0LCB1aW50MzJfdCkKKwor
LyoqCisgKiBHZXQgYSAxNi1iaXQgdHJpZSB2YWx1ZSBmcm9tIGEgcGFpciBvZiBzdXJyb2dhdGVz
LgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRo
ZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYyAoVUNoYXIsIGluKSBhIGxlYWQg
c3Vycm9nYXRlCisgKiBAcGFyYW0gYzIgKFVDaGFyLCBpbikgYSB0cmFpbCBzdXJyb2dhdGUKKyAq
IEBwYXJhbSByZXN1bHQgKHVpbnQxNl90LCBvdXQpIHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUg
dHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTZfRlJPTV9QQUlSKHRy
aWUsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9HRVRfRlJPTV9QQUlSKHRyaWUsIGluZGV4LCBjLCBj
MiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgYSAzMi1iaXQgdHJpZSB2YWx1ZSBm
cm9tIGEgcGFpciBvZiBzdXJyb2dhdGVzLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJp
ZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFy
YW0gYyAoVUNoYXIsIGluKSBhIGxlYWQgc3Vycm9nYXRlCisgKiBAcGFyYW0gYzIgKFVDaGFyLCBp
bikgYSB0cmFpbCBzdXJyb2dhdGUKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQpIHVp
bnQzMl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUg
VVRSSUVfR0VUMzJfRlJPTV9QQUlSKHRyaWUsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9HRVRfRlJP
TV9QQUlSKHRyaWUsIGRhdGEzMiwgYywgYzIsIHJlc3VsdCwgdWludDMyX3QpCisKKy8qKgorICog
R2V0IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIGZvbGRpbmcgb2Zmc2V0IChmcm9tIHRoZSB2
YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRlKQorICogYW5kIGEgdHJhaWwgc3Vycm9nYXRlLgorICoK
KyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50
aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gb2Zmc2V0IChpbnQzMl90LCBpbikgdGhlIGZv
bGRpbmcgb2Zmc2V0IGZyb20gdGhlIHZhbHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUKKyAqIEBwYXJh
bSBjMiAoVUNoYXIsIGluKSBhIHRyYWlsIHN1cnJvZ2F0ZSAob25seSB0aGUgMTAgbG93IGJpdHMg
YXJlIHNpZ25pZmljYW50KQorICogQHJldHVybiAodWludDE2X3QpIHRyaWUgbG9va3VwIHJlc3Vs
dAorICovCisjZGVmaW5lIFVUUklFX0dFVDE2X0ZST01fT0ZGU0VUX1RSQUlMKHRyaWUsIG9mZnNl
dCwgYzIpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGluZGV4LCBvZmZzZXQsIChjMikmMHgzZmYpCisK
Ky8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIGZvbGRpbmcgb2Zmc2V0IChm
cm9tIHRoZSB2YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRlKQorICogYW5kIGEgdHJhaWwgc3Vycm9n
YXRlLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRv
IHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gb2Zmc2V0IChpbnQzMl90LCBp
bikgdGhlIGZvbGRpbmcgb2Zmc2V0IGZyb20gdGhlIHZhbHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUK
KyAqIEBwYXJhbSBjMiAoVUNoYXIsIGluKSBhIHRyYWlsIHN1cnJvZ2F0ZSAob25seSB0aGUgMTAg
bG93IGJpdHMgYXJlIHNpZ25pZmljYW50KQorICogQHJldHVybiAodWludDMyX3QpIHRyaWUgbG9v
a3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dFVDMyX0ZST01fT0ZGU0VUX1RSQUlMKHRy
aWUsIG9mZnNldCwgYzIpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEzMiwgb2Zmc2V0LCAoYzIp
JjB4M2ZmKQorCisvKiBlbnVtZXJhdGlvbiBjYWxsYmFjayB0eXBlcyAqLworCisvKioKKyAqIENh
bGxiYWNrIGZyb20gdXRyaWVfZW51bSgpLCBleHRyYWN0cyBhIHVpbnQzMl90IHZhbHVlIGZyb20g
YQorICogdHJpZSB2YWx1ZS4gVGhpcyB2YWx1ZSB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUgVVRy
aWVFbnVtUmFuZ2UgZnVuY3Rpb24uCisgKgorICogQHBhcmFtIGNvbnRleHQgYW4gb3BhcXVlIHBv
aW50ZXIsIGFzIHBhc3NlZCBpbnRvIHV0cmllX2VudW0oKQorICogQHBhcmFtIHZhbHVlIGEgdmFs
dWUgZnJvbSB0aGUgdHJpZQorICogQHJldHVybiB0aGUgdmFsdWUgdGhhdCBpcyB0byBiZSBwYXNz
ZWQgb24gdG8gdGhlIFVUcmllRW51bVJhbmdlIGZ1bmN0aW9uCisgKi8KK3R5cGVkZWYgdWludDMy
X3QgVV9DQUxMQ09OVgorVVRyaWVFbnVtVmFsdWUoY29uc3Qgdm9pZCAqY29udGV4dCwgdWludDMy
X3QgdmFsdWUpOworCisvKioKKyAqIENhbGxiYWNrIGZyb20gdXRyaWVfZW51bSgpLCBpcyBjYWxs
ZWQgZm9yIGVhY2ggY29udGlndW91cyByYW5nZQorICogb2YgY29kZSBwb2ludHMgd2l0aCB0aGUg
c2FtZSB2YWx1ZSBhcyByZXRyaWV2ZWQgZnJvbSB0aGUgdHJpZSBhbmQKKyAqIHRyYW5zZm9ybWVk
IGJ5IHRoZSBVVHJpZUVudW1WYWx1ZSBmdW5jdGlvbi4KKyAqCisgKiBUaGUgY2FsbGJhY2sgZnVu
Y3Rpb24gY2FuIHN0b3AgdGhlIGVudW1lcmF0aW9uIGJ5IHJldHVybmluZyBGQUxTRS4KKyAqCisg
KiBAcGFyYW0gY29udGV4dCBhbiBvcGFxdWUgcG9pbnRlciwgYXMgcGFzc2VkIGludG8gdXRyaWVf
ZW51bSgpCisgKiBAcGFyYW0gc3RhcnQgdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gYSBjb250aWd1
b3VzIHJhbmdlIHdpdGggdmFsdWUKKyAqIEBwYXJhbSBsaW1pdCBvbmUgcGFzdCB0aGUgbGFzdCBj
b2RlIHBvaW50IGluIGEgY29udGlndW91cyByYW5nZSB3aXRoIHZhbHVlCisgKiBAcGFyYW0gdmFs
dWUgdGhlIHZhbHVlIHRoYXQgaXMgc2V0IGZvciBhbGwgY29kZSBwb2ludHMgaW4gW3N0YXJ0Li5s
aW1pdFsKKyAqIEByZXR1cm4gRkFMU0UgdG8gc3RvcCB0aGUgZW51bWVyYXRpb24KKyAqLwordHlw
ZWRlZiBVQm9vbCBVX0NBTExDT05WCitVVHJpZUVudW1SYW5nZShjb25zdCB2b2lkICpjb250ZXh0
LCBVQ2hhcjMyIHN0YXJ0LCBVQ2hhcjMyIGxpbWl0LCB1aW50MzJfdCB2YWx1ZSk7CisKKy8qKgor
ICogRW51bWVyYXRlIGVmZmljaWVudGx5IGFsbCB2YWx1ZXMgaW4gYSB0cmllLgorICogRm9yIGVh
Y2ggZW50cnkgaW4gdGhlIHRyaWUsIHRoZSB2YWx1ZSB0byBiZSBkZWxpdmVyZWQgaXMgcGFzc2Vk
IHRocm91Z2gKKyAqIHRoZSBVVHJpZUVudW1WYWx1ZSBmdW5jdGlvbi4KKyAqIFRoZSB2YWx1ZSBp
cyB1bmNoYW5nZWQgaWYgdGhhdCBmdW5jdGlvbiBwb2ludGVyIGlzIE5VTEwuCisgKgorICogRm9y
IGVhY2ggY29udGlndW91cyByYW5nZSBvZiBjb2RlIHBvaW50cyB3aXRoIGEgZ2l2ZW4gdmFsdWUs
CisgKiB0aGUgVVRyaWVFbnVtUmFuZ2UgZnVuY3Rpb24gaXMgY2FsbGVkLgorICoKKyAqIEBwYXJh
bSB0cmllIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFt
IGVudW1WYWx1ZSBhIHBvaW50ZXIgdG8gYSBmdW5jdGlvbiB0aGF0IG1heSB0cmFuc2Zvcm0gdGhl
IHRyaWUgZW50cnkgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIG9yIE5VTEwgaWYgdGhlIHZh
bHVlcyBmcm9tIHRoZSB0cmllIGFyZSB0byBiZSB1c2VkIGRpcmVjdGx5CisgKiBAcGFyYW0gZW51
bVJhbmdlIGEgcG9pbnRlciB0byBhIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGZvciBlYWNoIGNv
bnRpZ3VvdXMgcmFuZ2UKKyAqICAgICAgICAgICAgICAgICAgb2YgY29kZSBwb2ludHMgd2l0aCB0
aGUgc2FtZSB2YWx1ZQorICogQHBhcmFtIGNvbnRleHQgYW4gb3BhcXVlIHBvaW50ZXIgdGhhdCBp
cyBwYXNzZWQgb24gdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9ucworICovCitVX0NBUEkgdm9pZCBV
X0VYUE9SVDIKK3V0cmllX2VudW0oY29uc3QgVVRyaWUgKnRyaWUsCisgICAgICAgICAgIFVUcmll
RW51bVZhbHVlICplbnVtVmFsdWUsIFVUcmllRW51bVJhbmdlICplbnVtUmFuZ2UsIGNvbnN0IHZv
aWQgKmNvbnRleHQpOworCisvKioKKyAqIFVuc2VyaWFsaXplIGEgdHJpZSBmcm9tIDMyLWJpdC1h
bGlnbmVkIG1lbW9yeS4KKyAqIEludmVyc2Ugb2YgdXRyaWVfc2VyaWFsaXplKCkuCisgKiBGaWxs
cyB0aGUgVVRyaWUgcnVudGltZSB0cmllIHN0cnVjdHVyZSB3aXRoIHRoZSBzZXR0aW5ncyBmb3Ig
dGhlIHRyaWUgZGF0YS4KKyAqCisgKiBAcGFyYW0gdHJpZSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRp
bWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBkYXRhIGEgcG9pbnRlciB0byAzMi1iaXQtYWxp
Z25lZCBtZW1vcnkgY29udGFpbmluZyB0cmllIGRhdGEKKyAqIEBwYXJhbSBsZW5ndGggdGhlIG51
bWJlciBvZiBieXRlcyBhdmFpbGFibGUgYXQgZGF0YQorICogQHBhcmFtIHBFcnJvckNvZGUgYW4g
aW4vb3V0IElDVSBVRXJyb3JDb2RlCisgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgYXQg
ZGF0YSB0YWtlbiB1cCBieSB0aGUgdHJpZSBkYXRhCisgKi8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQ
T1JUMgordXRyaWVfdW5zZXJpYWxpemUoVVRyaWUgKnRyaWUsIGNvbnN0IHZvaWQgKmRhdGEsIGlu
dDMyX3QgbGVuZ3RoLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiAiVW5zZXJp
YWxpemUiIGEgZHVtbXkgdHJpZS4KKyAqIEEgZHVtbXkgdHJpZSBpcyBhbiBlbXB0eSBydW50aW1l
IHRyaWUsIHVzZWQgd2hlbiBhIHJlYWwgZGF0YSB0cmllIGNhbm5vdAorICogYmUgbG9hZGVkLgor
ICoKKyAqIFRoZSBpbnB1dCBtZW1vcnkgaXMgZmlsbGVkIHNvIHRoYXQgdGhlIHRyaWUgYWx3YXlz
IHJldHVybnMgdGhlIGluaXRpYWxWYWx1ZSwKKyAqIG9yIHRoZSBsZWFkVW5pdFZhbHVlIGZvciBs
ZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cy4KKyAqIFRoZSBMYXRpbi0xIHBhcnQgaXMgYWx3YXlz
IHNldCB1cCB0byBiZSBsaW5lYXIuCisgKgorICogQHBhcmFtIHRyaWUgYSBwb2ludGVyIHRvIHRo
ZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gZGF0YSBhIHBvaW50ZXIgdG8gMzIt
Yml0LWFsaWduZWQgbWVtb3J5IHRvIGJlIGZpbGxlZCB3aXRoIHRoZSBkdW1teSB0cmllIGRhdGEK
KyAqIEBwYXJhbSBsZW5ndGggdGhlIG51bWJlciBvZiBieXRlcyBhdmFpbGFibGUgYXQgZGF0YSAo
cmVjb21tZW5kZWQgdG8gdXNlIFVUUklFX0RVTU1ZX1NJWkUpCisgKiBAcGFyYW0gaW5pdGlhbFZh
bHVlIHRoZSBpbml0aWFsIHZhbHVlIHRoYXQgaXMgc2V0IGZvciBhbGwgY29kZSBwb2ludHMKKyAq
IEBwYXJhbSBsZWFkVW5pdFZhbHVlIHRoZSB2YWx1ZSBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBf
dW5pdHNfIHRoYXQgZG8gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICBoYXZlIGFzc29jaWF0
ZWQgc3VwcGxlbWVudGFyeSBkYXRhCisgKiBAcGFyYW0gcEVycm9yQ29kZSBhbiBpbi9vdXQgSUNV
IFVFcnJvckNvZGUKKyAqCisgKiBAc2VlIFVUUklFX0RVTU1ZX1NJWkUKKyAqIEBzZWUgdXRyaWVf
b3BlbgorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0cmllX3Vuc2VyaWFsaXplRHVt
bXkoVVRyaWUgKnRyaWUsCisgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEsIGludDMy
X3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpbml0aWFsVmFsdWUs
IHVpbnQzMl90IGxlYWRVbml0VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgIFVCb29sIG1h
a2UxNkJpdFRyaWUsCisgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNv
ZGUpOworCisvKioKKyAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIFVUcmllLmdldEZvbGRp
bmdPZmZzZXQsIHNldCBhdXRvbWF0aWNhbGx5IGJ5CisgKiB1dHJpZV91bnNlcmlhbGl6ZSgpLgor
ICogU2ltcGx5IHJldHVybnMgdGhlIGxlYWQgc3Vycm9nYXRlJ3MgdmFsdWUgaXRzZWxmIC0gd2hp
Y2ggaXMgdGhlIGludmVyc2UKKyAqIG9mIHRoZSBkZWZhdWx0IGZvbGRpbmcgZnVuY3Rpb24gdXNl
ZCBieSB1dHJpZV9zZXJpYWxpemUoKS4KKyAqIEV4cG9ydGVkIGZvciBzdGF0aWMgY29uc3QgVVRy
aWUgc3RydWN0dXJlcy4KKyAqCisgKiBAc2VlIFVUcmllR2V0Rm9sZGluZ09mZnNldAorICovCitV
X0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0cmllX2RlZmF1bHRHZXRGb2xkaW5nT2Zmc2V0KHVp
bnQzMl90IGRhdGEpOworCisvKiBCdWlsZGluZyBhIHRyaWUgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qKgorICogQnVpbGQt
dGltZSB0cmllIHN0cnVjdHVyZS4KKyAqIE9wYXF1ZSBkZWZpbml0aW9uLCBoZXJlIG9ubHkgdG8g
bWFrZSBmaWxsSW4gcGFyYW1ldGVycyBwb3NzaWJsZQorICogZm9yIHV0cmllX29wZW4oKSBhbmQg
dXRyaWVfY2xvbmUoKS4KKyAqLworc3RydWN0IFVOZXdUcmllIHsKKyAgICAvKioKKyAgICAgKiBJ
bmRleCB2YWx1ZXMgYXQgYnVpbGQtdGltZSBhcmUgMzIgYml0cyB3aWRlIGZvciBlYXNpZXIgcHJv
Y2Vzc2luZy4KKyAgICAgKiBCaXQgMzEgaXMgc2V0IGlmIHRoZSBkYXRhIGJsb2NrIGlzIHVzZWQg
YnkgbXVsdGlwbGUgaW5kZXggdmFsdWVzIChmcm9tIHV0cmllX3NldFJhbmdlKCkpLgorICAgICAq
LworICAgIGludDMyX3QgaW5kZXhbVVRSSUVfTUFYX0lOREVYX0xFTkdUSF07CisgICAgdWludDMy
X3QgKmRhdGE7CisKKyAgICB1aW50MzJfdCBsZWFkVW5pdFZhbHVlOworICAgIGludDMyX3QgaW5k
ZXhMZW5ndGgsIGRhdGFDYXBhY2l0eSwgZGF0YUxlbmd0aDsKKyAgICBVQm9vbCBpc0FsbG9jYXRl
ZCwgaXNEYXRhQWxsb2NhdGVkOworICAgIFVCb29sIGlzTGF0aW4xTGluZWFyLCBpc0NvbXBhY3Rl
ZDsKKworICAgIC8qKgorICAgICAqIE1hcCBvZiBhZGp1c3RlZCBpbmRleGVzLCB1c2VkIGluIHV0
cmllX2NvbXBhY3QoKS4KKyAgICAgKiBNYXBzIGZyb20gb3JpZ2luYWwgaW5kZXhlcyB0byBuZXcg
b25lcy4KKyAgICAgKi8KKyAgICBpbnQzMl90IG1hcFtVVFJJRV9NQVhfQlVJTERfVElNRV9EQVRB
X0xFTkdUSD4+VVRSSUVfU0hJRlRdOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgVU5ld1RyaWUgVU5l
d1RyaWU7CisKKy8qKgorICogQnVpbGQtdGltZSB0cmllIGNhbGxiYWNrIGZ1bmN0aW9uLCB1c2Vk
IHdpdGggdXRyaWVfc2VyaWFsaXplKCkuCisgKiBUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgYSBs
ZWFkIHN1cnJvZ2F0ZSdzIHZhbHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0CisgKiBmcm9t
IHRoZSAxMDI0IHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgW3N0YXJ0Li5zdGFydCsxMDI0WyAu
CisgKiBJdCBpcyBVKzEwMDAwIDw9IHN0YXJ0IDw9IFUrMTBmYzAwIGFuZCAoc3RhcnQmMHgzZmYp
PT0wLgorICoKKyAqIFRoZSBmb2xkaW5nIG9mZnNldCBpcyBwcm92aWRlZCBieSB0aGUgY2FsbGVy
LgorICogSXQgaXMgb2Zmc2V0PVVUUklFX0JNUF9JTkRFWF9MRU5HVEgrbipVVFJJRV9TVVJST0dB
VEVfQkxPQ0tfQ09VTlQgd2l0aCBuPTAuLjEwMjMuCisgKiBJbnN0ZWFkIG9mIHRoZSBvZmZzZXQg
aXRzZWxmLCBuIGNhbiBiZSBzdG9yZWQgaW4gMTAgYml0cyAtCisgKiBvciBmZXdlciBpZiBpdCBj
YW4gYmUgYXNzdW1lZCB0aGF0IGZldyBsZWFkIHN1cnJvZ2F0ZXMgaGF2ZSBhc3NvY2lhdGVkIGRh
dGEuCisgKgorICogVGhlIHJldHVybmVkIHZhbHVlIG11c3QgYmUKKyAqIC0gbm90IHplcm8gaWYg
YW5kIG9ubHkgaWYgdGhlcmUgaXMgcmVsZXZhbnQgZGF0YQorICogICBmb3IgdGhlIGNvcnJlc3Bv
bmRpbmcgMTAyNCBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzCisgKiAtIHN1Y2ggdGhhdCBVVHJp
ZS5nZXRGb2xkaW5nT2Zmc2V0KFVOZXdUcmllR2V0Rm9sZGVkVmFsdWUoLi4uLCBvZmZzZXQpKT09
b2Zmc2V0CisgKgorICogQHJldHVybiBhIGZvbGRlZCB2YWx1ZSwgb3IgMCBpZiB0aGVyZSBpcyBu
byByZWxldmFudCBkYXRhIGZvciB0aGUgbGVhZCBzdXJyb2dhdGUuCisgKi8KK3R5cGVkZWYgdWlu
dDMyX3QgVV9DQUxMQ09OVgorVU5ld1RyaWVHZXRGb2xkZWRWYWx1ZShVTmV3VHJpZSAqdHJpZSwg
VUNoYXIzMiBzdGFydCwgaW50MzJfdCBvZmZzZXQpOworCisvKioKKyAqIE9wZW4gYSBidWlsZC10
aW1lIHRyaWUgc3RydWN0dXJlLgorICogVGhlIHNpemUgb2YgdGhlIGJ1aWxkLXRpbWUgZGF0YSBh
cnJheSBpcyBzcGVjaWZpZWQgdG8gYXZvaWQgYWxsb2NhdGluZyBhIGxhcmdlCisgKiBhcnJheSBp
biBhbGwgY2FzZXMuIFRoZSBhcnJheSBpdHNlbGYgY2FuIGFsc28gYmUgcGFzc2VkIGluLgorICoK
KyAqIEFsdGhvdWdoIHRoZSB0cmllIGlzIG5ldmVyIGZ1bGx5IGV4cGFuZGVkIHRvIGEgbGluZWFy
IGFycmF5LCBlc3BlY2lhbGx5IHdoZW4KKyAqIHV0cmllX3NldFJhbmdlMzIoKSBpcyB1c2VkLCB0
aGUgZGF0YSBhcnJheSBjb3VsZCBiZSBsYXJnZSBkdXJpbmcgYnVpbGQgdGltZS4KKyAqIFRoZSBt
YXhpbXVtIGxlbmd0aCBpcworICogVVRSSUVfTUFYX0JVSUxEX1RJTUVfREFUQV9MRU5HVEg9MHgx
MTAwMDArVVRSSUVfREFUQV9CTE9DS19MRU5HVEgrMHg0MDAuCisgKiAoTnVtYmVyIG9mIFVuaWNv
ZGUgY29kZSBwb2ludHMgKyBvbmUgYWxsLWluaXRpYWwtdmFsdWUgYmxvY2sgKworICogIHBvc3Np
YmxlIGR1cGxpY2F0ZSBlbnRyaWVzIGZvciAxMDI0IGxlYWQgc3Vycm9nYXRlcy4pCisgKiAoVVRS
SUVfREFUQV9CTE9DS19MRU5HVEg8PTB4MjAwIGluIGFsbCBjYXNlcy4pCisgKgorICogQHBhcmFt
IGZpbGxJbiBhIHBvaW50ZXIgdG8gYSBVTmV3VHJpZSBzdHJ1Y3R1cmUgdG8gYmUgaW5pdGlhbGl6
ZWQgKHdpbGwgbm90IGJlIHJlbGVhc2VkKSwgb3IKKyAqICAgICAgICAgICAgICAgTlVMTCBpZiBv
bmUgaXMgdG8gYmUgYWxsb2NhdGVkCisgKiBAcGFyYW0gYWxpYXNEYXRhIGEgcG9pbnRlciB0byBh
IGRhdGEgYXJyYXkgdG8gYmUgdXNlZCAod2lsbCBub3QgYmUgcmVsZWFzZWQpLCBvcgorICogICAg
ICAgICAgICAgICAgICBOVUxMIGlmIG9uZSBpcyB0byBiZSBhbGxvY2F0ZWQKKyAqIEBwYXJhbSBt
YXhEYXRhTGVuZ3RoIHRoZSBjYXBhY2l0eSBvZiBhbGlhc0RhdGEgKGlmIG5vdCBOVUxMKSBvcgor
ICogICAgICAgICAgICAgICAgICAgICAgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YSBhcnJheSB0byBi
ZSBhbGxvY2F0ZWQKKyAqIEBwYXJhbSBpbml0aWFsVmFsdWUgdGhlIGluaXRpYWwgdmFsdWUgdGhh
dCBpcyBzZXQgZm9yIGFsbCBjb2RlIHBvaW50cworICogQHBhcmFtIGxlYWRVbml0VmFsdWUgdGhl
IHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gdGhhdCBkbyBub3QKKyAqICAg
ICAgICAgICAgICAgICAgICAgIGhhdmUgYXNzb2NpYXRlZCBzdXBwbGVtZW50YXJ5IGRhdGEKKyAq
IEBwYXJhbSBsYXRpbjFMaW5lYXIgYSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgTGF0aW4t
MSByYW5nZSBpcyB0byBiZSBhbGxvY2F0ZWQgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgIGtl
cHQgaW4gYSBsaW5lYXIsIGNvbnRpZ3VvdXMgcGFydCBvZiB0aGUgZGF0YSBhcnJheQorICogQHJl
dHVybiBhIHBvaW50ZXIgdG8gdGhlIGluaXRpYWxpemVkIGZpbGxJbiBvciB0aGUgYWxsb2NhdGVk
IGFuZCBpbml0aWFsaXplZCBuZXcgVU5ld1RyaWUKKyAqLworVV9DQVBJIFVOZXdUcmllICogVV9F
WFBPUlQyCit1dHJpZV9vcGVuKFVOZXdUcmllICpmaWxsSW4sCisgICAgICAgICAgIHVpbnQzMl90
ICphbGlhc0RhdGEsIGludDMyX3QgbWF4RGF0YUxlbmd0aCwKKyAgICAgICAgICAgdWludDMyX3Qg
aW5pdGlhbFZhbHVlLCB1aW50MzJfdCBsZWFkVW5pdFZhbHVlLAorICAgICAgICAgICBVQm9vbCBs
YXRpbjFMaW5lYXIpOworCisvKioKKyAqIENsb25lIGEgYnVpbGQtdGltZSB0cmllIHN0cnVjdHVy
ZSB3aXRoIGFsbCBlbnRyaWVzLgorICoKKyAqIEBwYXJhbSBmaWxsSW4gbGlrZSBpbiB1dHJpZV9v
cGVuKCkKKyAqIEBwYXJhbSBvdGhlciB0aGUgYnVpbGQtdGltZSB0cmllIHN0cnVjdHVyZSB0byBj
bG9uZQorICogQHBhcmFtIGFsaWFzRGF0YSBsaWtlIGluIHV0cmllX29wZW4oKSwKKyAqICAgICAg
ICAgICAgICAgICAgdXNlZCBpZiBhbGlhc0RhdGFMZW5ndGg+PShjYXBhY2l0eSBvZiBvdGhlcidz
IGRhdGEgYXJyYXkpCisgKiBAcGFyYW0gYWxpYXNEYXRhTGVuZ3RoIHRoZSBsZW5ndGggb2YgYWxp
YXNEYXRhCisgKiBAcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgaW5pdGlhbGl6ZWQgZmlsbEluIG9y
IHRoZSBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkIG5ldyBVTmV3VHJpZQorICovCitVX0NBUEkg
VU5ld1RyaWUgKiBVX0VYUE9SVDIKK3V0cmllX2Nsb25lKFVOZXdUcmllICpmaWxsSW4sIGNvbnN0
IFVOZXdUcmllICpvdGhlciwgdWludDMyX3QgKmFsaWFzRGF0YSwgaW50MzJfdCBhbGlhc0RhdGFM
ZW5ndGgpOworCisvKioKKyAqIENsb3NlIGEgYnVpbGQtdGltZSB0cmllIHN0cnVjdHVyZSwgYW5k
IHJlbGVhc2UgbWVtb3J5CisgKiB0aGF0IHdhcyBhbGxvY2F0ZWQgYnkgdXRyaWVfb3BlbigpIG9y
IHV0cmllX2Nsb25lKCkuCisgKgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQor
ICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3V0cmllX2Nsb3NlKFVOZXdUcmllICp0cmllKTsK
KworLyoqCisgKiBHZXQgdGhlIGRhdGEgYXJyYXkgb2YgYSBidWlsZC10aW1lIHRyaWUuCisgKiBU
aGUgZGF0YSBtYXkgYmUgbW9kaWZpZWQsIGJ1dCBlbnRyaWVzIHRoYXQgYXJlIGVxdWFsIGJlZm9y
ZQorICogbXVzdCBzdGlsbCBiZSBlcXVhbCBhZnRlciBtb2RpZmljYXRpb24uCisgKgorICogQHBh
cmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQorICogQHBhcmFtIHBMZW5ndGggKG91dCkgYSBw
b2ludGVyIHRvIGEgdmFyaWFibGUgdGhhdCByZWNlaXZlcyB0aGUgbnVtYmVyCisgKiAgICAgICAg
ICAgICAgICBvZiBlbnRyaWVzIGluIHRoZSBkYXRhIGFycmF5CisgKiBAcmV0dXJuIHRoZSBkYXRh
IGFycmF5CisgKi8KK1VfQ0FQSSB1aW50MzJfdCAqIFVfRVhQT1JUMgordXRyaWVfZ2V0RGF0YShV
TmV3VHJpZSAqdHJpZSwgaW50MzJfdCAqcExlbmd0aCk7CisKKy8qKgorICogU2V0IGEgdmFsdWUg
Zm9yIGEgY29kZSBwb2ludC4KKyAqCisgKiBAcGFyYW0gdHJpZSB0aGUgYnVpbGQtdGltZSB0cmll
CisgKiBAcGFyYW0gYyB0aGUgY29kZSBwb2ludAorICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZQor
ICogQHJldHVybiBGQUxTRSBpZiBhIGZhaWx1cmUgb2NjdXJyZWQgKGlsbGVnYWwgYXJndW1lbnQg
b3IgZGF0YSBhcnJheSBvdmVycnVuKQorICovCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCit1dHJp
ZV9zZXQzMihVTmV3VHJpZSAqdHJpZSwgVUNoYXIzMiBjLCB1aW50MzJfdCB2YWx1ZSk7CisKKy8q
KgorICogR2V0IGEgdmFsdWUgZnJvbSBhIGNvZGUgcG9pbnQgYXMgc3RvcmVkIGluIHRoZSBidWls
ZC10aW1lIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQorICog
QHBhcmFtIGMgdGhlIGNvZGUgcG9pbnQKKyAqIEBwYXJhbSBwSW5CbG9ja1plcm8gaWYgbm90IE5V
TEwsIHRoZW4gKnBJbkJsb2NrWmVybyBpcyBzZXQgdG8gVFJVRQorICogICAgICAgICAgICAgICAg
ICAgICBpZmYgdGhlIHZhbHVlIGlzIHJldHJpZXZlZCBmcm9tIGJsb2NrIDA7CisgKiAgICAgICAg
ICAgICAgICAgICAgIGJsb2NrIDAgaXMgdGhlIGFsbC1pbml0aWFsLXZhbHVlIGluaXRpYWwgYmxv
Y2sKKyAqIEByZXR1cm4gdGhlIHZhbHVlCisgKi8KK1VfQ0FQSSB1aW50MzJfdCBVX0VYUE9SVDIK
K3V0cmllX2dldDMyKFVOZXdUcmllICp0cmllLCBVQ2hhcjMyIGMsIFVCb29sICpwSW5CbG9ja1pl
cm8pOworCisvKioKKyAqIFNldCBhIHZhbHVlIGluIGEgcmFuZ2Ugb2YgY29kZSBwb2ludHMgW3N0
YXJ0Li5saW1pdFsuCisgKiBBbGwgY29kZSBwb2ludHMgYyB3aXRoIHN0YXJ0PD1jPGxpbWl0IHdp
bGwgZ2V0IHRoZSB2YWx1ZSBpZgorICogb3ZlcndyaXRlIGlzIFRSVUUgb3IgaWYgdGhlIG9sZCB2
YWx1ZSBpcyAwLgorICoKKyAqIEBwYXJhbSB0cmllIHRoZSBidWlsZC10aW1lIHRyaWUKKyAqIEBw
YXJhbSBzdGFydCB0aGUgZmlyc3QgY29kZSBwb2ludCB0byBnZXQgdGhlIHZhbHVlCisgKiBAcGFy
YW0gbGltaXQgb25lIHBhc3QgdGhlIGxhc3QgY29kZSBwb2ludCB0byBnZXQgdGhlIHZhbHVlCisg
KiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlCisgKiBAcGFyYW0gb3ZlcndyaXRlIGZsYWcgZm9yIHdo
ZXRoZXIgb2xkIG5vbi1pbml0aWFsIHZhbHVlcyBhcmUgdG8gYmUgb3ZlcndyaXR0ZW4KKyAqIEBy
ZXR1cm4gRkFMU0UgaWYgYSBmYWlsdXJlIG9jY3VycmVkIChpbGxlZ2FsIGFyZ3VtZW50IG9yIGRh
dGEgYXJyYXkgb3ZlcnJ1bikKKyAqLworVV9DQVBJIFVCb29sIFVfRVhQT1JUMgordXRyaWVfc2V0
UmFuZ2UzMihVTmV3VHJpZSAqdHJpZSwgVUNoYXIzMiBzdGFydCwgVUNoYXIzMiBsaW1pdCwgdWlu
dDMyX3QgdmFsdWUsIFVCb29sIG92ZXJ3cml0ZSk7CisKKy8qKgorICogQ29tcGFjdCB0aGUgYnVp
bGQtdGltZSB0cmllIGFmdGVyIGFsbCB2YWx1ZXMgYXJlIHNldCwgYW5kIHRoZW4KKyAqIHNlcmlh
bGl6ZSBpdCBpbnRvIDMyLWJpdCBhbGlnbmVkIG1lbW9yeS4KKyAqCisgKiBBZnRlciB0aGlzLCB0
aGUgdHJpZSBjYW4gb25seSBiZSBzZXJpemFsaXplZCBhZ2FpbiBhbmQvb3IgY2xvc2VkOworICog
bm8gZnVydGhlciB2YWx1ZXMgY2FuIGJlIGFkZGVkLgorICoKKyAqIEBzZWUgdXRyaWVfdW5zZXJp
YWxpemUoKQorICoKKyAqIEBwYXJhbSB0cmllIHRoZSBidWlsZC10aW1lIHRyaWUKKyAqIEBwYXJh
bSBkYXRhIGEgcG9pbnRlciB0byAzMi1iaXQtYWxpZ25lZCBtZW1vcnkgZm9yIHRoZSB0cmllIGRh
dGEKKyAqIEBwYXJhbSBjYXBhY2l0eSB0aGUgbnVtYmVyIG9mIGJ5dGVzIGF2YWlsYWJsZSBhdCBk
YXRhCisgKiBAcGFyYW0gZ2V0Rm9sZGVkVmFsdWUgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGNh
bGN1bGF0ZXMgdGhlIHZhbHVlIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgIGEgbGVhZCBz
dXJyb2dhdGUgZnJvbSBhbGwgb2YgaXRzIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMKKyAqICAg
ICAgICAgICAgICAgICAgICAgICBhbmQgdGhlIGZvbGRpbmcgb2Zmc2V0OworICogICAgICAgICAg
ICAgICAgICAgICAgIGlmIE5VTEwsIHRoZW4gYSBkZWZhdWx0IGZ1bmN0aW9uIGlzIHVzZWQgd2hp
Y2ggcmV0dXJucyBqdXN0CisgKiAgICAgICAgICAgICAgICAgICAgICAgdGhlIGlucHV0IG9mZnNl
dCB3aGVuIHRoZXJlIGFyZSBhbnkgbm9uLWluaXRpYWwtdmFsdWUgZW50cmllcworICogQHBhcmFt
IHJlZHVjZVRvMTZCaXRzIGZsYWcgZm9yIHdoZXRoZXIgdGhlIHZhbHVlcyBhcmUgdG8gYmUgcmVk
dWNlZCB0byBhCisgKiAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggb2YgMTYgYml0cyBmb3Ig
c2VyaWFsaXphdGlvbiBhbmQgcnVudGltZQorICogQHBhcmFtIHBFcnJvckNvZGUgYSBVRXJyb3JD
b2RlIGFyZ3VtZW50OyBhbW9uZyBvdGhlciBwb3NzaWJsZSBlcnJvciBjb2RlczoKKyAqIC0gVV9C
VUZGRVJfT1ZFUkZMT1dfRVJST1IgaWYgdGhlIGRhdGEgc3RvcmFnZSBibG9jayBpcyB0b28gc21h
bGwgZm9yIHNlcmlhbGl6YXRpb24KKyAqIC0gVV9NRU1PUllfQUxMT0NBVElPTl9FUlJPUiBpZiB0
aGUgdHJpZSBkYXRhIGFycmF5IGlzIHRvbyBzbWFsbAorICogLSBVX0lOREVYX09VVE9GQk9VTkRT
X0VSUk9SIGlmIHRoZSBpbmRleCBvciBkYXRhIGFycmF5cyBhcmUgdG9vIGxvbmcgYWZ0ZXIgY29t
cGFjdGlvbiBmb3Igc2VyaWFsaXphdGlvbgorICoKKyAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBi
eXRlcyB3cml0dGVuIGZvciB0aGUgdHJpZQorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIK
K3V0cmllX3NlcmlhbGl6ZShVTmV3VHJpZSAqdHJpZSwgdm9pZCAqZGF0YSwgaW50MzJfdCBjYXBh
Y2l0eSwKKyAgICAgICAgICAgICAgICBVTmV3VHJpZUdldEZvbGRlZFZhbHVlICpnZXRGb2xkZWRW
YWx1ZSwKKyAgICAgICAgICAgICAgICBVQm9vbCByZWR1Y2VUbzE2Qml0cywKKyAgICAgICAgICAg
ICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBTd2FwIGEgc2VyaWFsaXpl
ZCBVVHJpZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0
cmllX3N3YXAoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgY29uc3Qgdm9pZCAq
aW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAgICAgVUVycm9y
Q29kZSAqcEVycm9yQ29kZSk7CisKKy8qIHNlcmlhbGl6YXRpb24gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKgorICog
VHJpZSBkYXRhIHN0cnVjdHVyZSBpbiBzZXJpYWxpemVkIGZvcm06CisgKgorICogVVRyaWVIZWFk
ZXIgaGVhZGVyOworICogdWludDE2X3QgaW5kZXhbaGVhZGVyLmluZGV4TGVuZ3RoXTsKKyAqIHVp
bnQxNl90IGRhdGFbaGVhZGVyLmRhdGFMZW5ndGhdOworICogQGludGVybmFsCisgKi8KK3R5cGVk
ZWYgc3RydWN0IFVUcmllSGVhZGVyIHsKKyAgICAvKiogIlRyaWUiIGluIGJpZy1lbmRpYW4gVVMt
QVNDSUkgKDB4NTQ3MjY5NjUpICovCisgICAgdWludDMyX3Qgc2lnbmF0dXJlOworCisgICAgLyoq
CisgICAgICogb3B0aW9ucyBiaXQgZmllbGQ6CisgICAgICogICAgIDkgICAgMT1MYXRpbi0xIGRh
dGEgaXMgc3RvcmVkIGxpbmVhcmx5IGF0IGRhdGErVVRSSUVfREFUQV9CTE9DS19MRU5HVEgKKyAg
ICAgKiAgICAgOCAgICAwPTE2LWJpdCBkYXRhLCAxPTMyLWJpdCBkYXRhCisgICAgICogIDcuLjQg
ICAgVVRSSUVfSU5ERVhfU0hJRlQgICAvLyAwLi5VVFJJRV9TSElGVAorICAgICAqICAzLi4wICAg
IFVUUklFX1NISUZUICAgICAgICAgLy8gMS4uOQorICAgICAqLworICAgIHVpbnQzMl90IG9wdGlv
bnM7CisKKyAgICAvKiogaW5kZXhMZW5ndGggaXMgYSBtdWx0aXBsZSBvZiBVVFJJRV9TVVJST0dB
VEVfQkxPQ0tfQ09VTlQgKi8KKyAgICBpbnQzMl90IGluZGV4TGVuZ3RoOworCisgICAgLyoqIGRh
dGFMZW5ndGg+PVVUUklFX0RBVEFfQkxPQ0tfTEVOR1RIICovCisgICAgaW50MzJfdCBkYXRhTGVu
Z3RoOworfSBVVHJpZUhlYWRlcjsKKworLyoqCisgKiBDb25zdGFudHMgZm9yIHVzZSB3aXRoIFVU
cmllSGVhZGVyLm9wdGlvbnMuCisgKiBAaW50ZXJuYWwKKyAqLworZW51bSB7CisgICAgLyoqIE1h
c2sgdG8gZ2V0IHRoZSBVVFJJRV9TSElGVCB2YWx1ZSBmcm9tIG9wdGlvbnMuICovCisgICAgVVRS
SUVfT1BUSU9OU19TSElGVF9NQVNLPTB4ZiwKKworICAgIC8qKiBTaGlmdCBvcHRpb25zIHJpZ2h0
IHRoaXMgbXVjaCB0byBnZXQgdGhlIFVUUklFX0lOREVYX1NISUZUIHZhbHVlLiAqLworICAgIFVU
UklFX09QVElPTlNfSU5ERVhfU0hJRlQ9NCwKKworICAgIC8qKiBJZiBzZXQsIHRoZW4gdGhlIGRh
dGEgKHN0YWdlIDIpIGFycmF5IGlzIDMyIGJpdHMgd2lkZS4gKi8KKyAgICBVVFJJRV9PUFRJT05T
X0RBVEFfSVNfMzJfQklUPTB4MTAwLAorCisgICAgLyoqCisgICAgICogSWYgc2V0LCB0aGVuIExh
dGluLTEgZGF0YSAoZm9yIFUrMDAwMC4uVSswMGZmKSBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgKHN0
YWdlIDIpIGFycmF5CisgICAgICogYXMgYSBzaW1wbGUsIGxpbmVhciBhcnJheSBhdCBkYXRhK1VU
UklFX0RBVEFfQkxPQ0tfTEVOR1RILgorICAgICAqLworICAgIFVUUklFX09QVElPTlNfTEFUSU4x
X0lTX0xJTkVBUj0weDIwMAorfTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IDMxYTNmMDJiM2VjYThlMDUzZGQ1
MjUyNTA1MTI1MzVmZTEwYmJiM2IuLjcwOWQ0MDY0ZjYzMjZjMmVkMDRmZmQ2NGE1NTU5MmI2NTg5
Y2QzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCkBAIC0y
OSw5ICsyOSw2IEBACiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdWaWV3Lmg+CiAKLS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0dGVyIG5hbWUKLSNk
ZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkKLQog
bmFtZXNwYWNlIFdURiB7CiAKIC8vIEl0ZXJhdG9yIGluaXRpYWxpemF0aW9uCkBAIC01OSw2ICs1
NiwxMiBAQCBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIGluaXRpYWxpemVJdGVyYXRvcldpdGhS
dWxlcyhjb25zdCBjaGFyKiBicmVha1J1bGVzKQogCiAjZW5kaWYKIAorI2lmICFQTEFURk9STShN
QUMpICYmICFQTEFURk9STShJT1MpCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JG
b3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNl
bmRpZgogCiAvLyBJdGVyYXRvciB0ZXh0IHNldHRpbmcKIApAQCAtMTYyLDEzNSArMTY1LDIwIEBA
IFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmlldyBzdHJp
bmcpCiAgICAgcmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqc3RhdGljU2VudGVuY2VCcmVha0l0
ZXJhdG9yLCBzdHJpbmcpOwogfQogCisjaWYgIVBMQVRGT1JNKElPUykKK3N0YXRpYyBUZXh0QnJl
YWtJdGVyYXRvciogY3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjaygpCit7
CisgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFr
aW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQpKQorICAgICAgICByZXR1cm4gaXRlcmF0b3I7Cisg
ICAgcmV0dXJuIGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhjdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMpOworfQorI2VuZGlmCisKIFRleHRCcmVha0l0ZXJhdG9yKiBjdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogewogI2lmICFQTEFURk9STShJT1MpCi0gICAg
Ly8gVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVs
ZXMgb2YgSUNVIDU3Ci0gICAgLy8gPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9z
L2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCi0gICAgLy8g
VGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBi
ZWxvdzoKLSAgICAvLyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNw
YWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAt
ICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOwotICAgIC8vICogUmVtb3ZlZCBydWxl
cyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVuZCBjaGFyYWN0
ZXJzIChCdWcgMjQzNDIpOwotICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vy
c29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhj
ZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHBy
ZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0
YWthcmEgdm9pY2VkIG1hcmtzLgotICAgIC8vICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGlu
ZGljYXRvciBzeW1ib2xzLgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBrUnVsZXMgPQotICAgICAg
ICAiJENSICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOyIKLSAgICAg
ICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsiCi0gICAg
ICAgICIkQ29udHJvbCA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsi
Ci0gICAgICAgICIkVm9pY2VNYXJrcyA9IFtcXHVGRjlFXFx1RkY5Rl07IiAvLyBKYXBhbmVzZSBo
YWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcwotICAgICAgICAiJEV4dGVuZCAgPSBbXFxw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1xcdTBFMzAg
XFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVCMl1dOyIKLSAgICAgICAgIiRTcGFjaW5nTWFy
ayA9IFtbXFxwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOyIK
LSAgICAgICAgIiRMICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOyIK
LSAgICAgICAgIiRWICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOyIK
LSAgICAgICAgIiRUICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOyIK
LSAgICAgICAgIiRMViAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsi
Ci0gICAgICAgICIkTFZUICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1d
OyIKLSAgICAgICAgIiRIaW4wICAgID0gW1xcdTA5MDUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJp
IExldHRlciBBLC4uLixIYQotICAgICAgICAiJEhpblYgICAgPSBcXHUwOTREOyIgLy8gRGV2YW5h
Z2FyaSBTaWduIFZpcmFtYQotICAgICAgICAiJEhpbjEgICAgPSBbXFx1MDkxNS1cXHUwOTM5XTsi
IC8vIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEJlbjAgICAgPSBbXFx1
MDk4NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkQmVu
ViAgICA9IFxcdTA5Q0Q7IiAvLyBCZW5nYWxpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkQmVuMSAg
ICA9IFtcXHUwOTk1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAg
ICAgICIkUGFuMCAgICA9IFtcXHUwQTA1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkUGFuViAgICA9IFxcdTBBNEQ7IiAvLyBHdXJtdWtoaSBTaWduIFZp
cmFtYQotICAgICAgICAiJFBhbjEgICAgPSBbXFx1MEExNS1cXHUwQTM5XTsiIC8vIEd1cm11a2hp
IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRHdWowICAgID0gW1xcdTBBODUtXFx1MEFCOV07
IiAvLyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRHdWpWICAgID0gXFx1MEFD
RDsiIC8vIEd1amFyYXRpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkR3VqMSAgICA9IFtcXHUwQTk1
LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJE9yaTAg
ICAgPSBbXFx1MEIwNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBBLC4uLixIYQotICAgICAg
ICAiJE9yaVYgICAgPSBcXHUwQjREOyIgLy8gT3JpeWEgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRP
cmkxICAgID0gW1xcdTBCMTUtXFx1MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCi0g
ICAgICAgICIkVGVsMCAgICA9IFtcXHUwQzA1LVxcdTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBB
LC4uLixIYQotICAgICAgICAiJFRlbFYgICAgPSBcXHUwQzREOyIgLy8gVGVsdWd1IFNpZ24gVmly
YW1hCi0gICAgICAgICIkVGVsMSAgICA9IFtcXHUwQzE0LVxcdTBDMzldOyIgLy8gVGVsdWd1IExl
dHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRLYW4wICAgID0gW1xcdTBDODUtXFx1MENCOV07IiAv
LyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEthblYgICAgPSBcXHUwQ0NEOyIg
Ly8gS2FubmFkYSBTaWduIFZpcmFtYQotICAgICAgICAiJEthbjEgICAgPSBbXFx1MEM5NS1cXHUw
Q0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsMCAgICA9IFtc
XHUwRDA1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAi
JE1hbFYgICAgPSBcXHUwRDREOyIgLy8gTWFsYXlhbGFtIFNpZ24gVmlyYW1hCi0gICAgICAgICIk
TWFsMSAgICA9IFtcXHUwRDE1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixI
YQotICAgICAgICAiJFJJICAgICAgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIgLy8gRW1v
amkgcmVnaW9uYWwgaW5kaWNhdG9ycwotICAgICAgICAiJFpXSiAgICAgPSBcXHUyMDBEOyIgLy8g
WmVybyB3aWR0aCBqb2luZXIKLSAgICAgICAgIiRFbW9qaVZhciA9IFtcXHVGRTBGXTsiIC8vIEVt
b2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUy
NzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAw
MDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxc
VTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3
IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFG
NDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAw
MDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxc
VTAwMDFGNkI2XTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwot
ICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBE
IFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFG
M0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAw
MDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxc
VTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFB
IFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFG
NjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAw
MDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4XSA7IiAvLyBFbW9qaSB0
aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZWxzZQotICAgICAgICAiJEVtb2ppRm9y
U2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDhCXTsiIC8v
IEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2pp
Rm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjND
My1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAx
RjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUw
MDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBc
XFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0
NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAx
RjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpw
YXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAgICAgICIkRW1vamlNb2RzID0gW1xcVTAwMDFG
M0ZCLVxcVTAwMDFGM0ZGXTsiIC8vIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotICAgICAgICAiISFj
aGFpbjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIhIVJJTm9DaGFp
bjsiCi0jZW5kaWYKLSAgICAgICAgIiEhZm9yd2FyZDsiCi0gICAgICAgICIkQ1IgJExGOyIKLSAg
ICAgICAgIiRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7IgotICAgICAgICAiKCRMViB8ICRWKSAo
JFYgfCAkVCk7IgotICAgICAgICAiKCRMVlQgfCAkVCkgJFQ7IgotI2lmIEFERElUSU9OQUxfRU1P
SklfU1VQUE9SVAotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsiCi0gICAgICAgICIk
UkkgJFJJICRFeHRlbmQqOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsi
Ci0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsiCi0jZWxzZQotICAg
ICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wg
JENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkk7IgotICAgICAg
ICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4wICRIaW5WICRIaW4xOyIgLy8gRGV2
YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkQmVuMCAkQmVuViAkQmVuMTsiIC8v
IEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFBhbjAgJFBhblYgJFBhbjE7IiAv
LyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkR3VqMCAkR3VqViAkR3VqMTsi
IC8vIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRPcmkwICRPcmlWICRPcmkx
OyIgLy8gT3JpeWEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFRlbDAgJFRlbFYgJFRlbDE7
IiAvLyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEthbjAgJEthblYgJEthbjE7
IiAvLyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRNYWwwICRNYWxWICRNYWwx
OyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRaV0ogJEVtb2ppRm9y
U2VxczsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRF
bW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2Vl
biByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBG
aXR6cGF0cmljayBtb2RpZmllcgotICAgICAgICAiISFyZXZlcnNlOyIKLSAgICAgICAgIiRMRiAk
Q1I7IgotICAgICAgICAiKCRMIHwgJFYgfCAkTFYgfCAkTFZUKSAkTDsiCi0gICAgICAgICIoJFYg
fCAkVCkgKCRMViB8ICRWKTsiCi0gICAgICAgICIkVCAoJExWVCB8ICRUKTsiCi0jaWYgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCog
JFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQg
ICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250
cm9sICRDUiAkTEZdOyIKLSNlbHNlCi0gICAgICAgICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAk
Q1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0g
ICAgICAgICIkUkkgJFJJIC8gJFJJICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgot
ICAgICAgICAiJEhpbjEgJEhpblYgJEhpbjA7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dh
cmQpCi0gICAgICAgICIkQmVuMSAkQmVuViAkQmVuMDsiIC8vIEJlbmdhbGkgVmlyYW1hIChiYWNr
d2FyZCkKLSAgICAgICAgIiRQYW4xICRQYW5WICRQYW4wOyIgLy8gR3VybXVraGkgVmlyYW1hIChi
YWNrd2FyZCkKLSAgICAgICAgIiRHdWoxICRHdWpWICRHdWowOyIgLy8gR3VqYXJhdGkgVmlyYW1h
IChiYWNrd2FyZCkKLSAgICAgICAgIiRPcmkxICRPcmlWICRPcmkwOyIgLy8gR3VqYXJhdGkgVmly
YW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRUZWwxICRUZWxWICRUZWwwOyIgLy8gVGVsdWd1IFZp
cmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkS2FuMSAkS2FuViAkS2FuMDsiIC8vIEthbm5hZGEg
VmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRNYWwxICRNYWxWICRNYWwwOyIgLy8gTWFsYXlh
bGFtIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkRW1vamlGb3JTZXFzICRaV0o7IiAvLyBE
b24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlNb2RzICRF
bW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQg
ZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sg
bW9kaWZpZXIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEhc2FmZV9y
ZXZlcnNlOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIlskRW1vamlWYXIgJEVtb2pp
TW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICAg
ICAiJFJJICRSSSs7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1v
ZHNdKzsiOworICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvciA9IGNyZWF0ZUN1cnNvck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2soKTsK
ICNlbHNlCi0gICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOyIK
LSAgICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IgotICAgICAg
ICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IjsKLSNlbmRpZgot
ICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
ciA9IGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhrUnVsZXMpOwotI2Vsc2UgLy8gUExBVEZP
Uk0oSU9TKQogICAgIC8vIFVzZSB0aGUgc3BlY2lhbCBUaGFpIGNoYXJhY3RlciBicmVhayBpdGVy
YXRvciBmb3IgYWxsIGxvY2FsZXMKICAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRp
Y0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3IoVUJSS19DSEFSQUNU
RVIsICJ0aCIpOwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCkBAIC0zMTcsNDQyICsyMDUsMjAg
QEAgdm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJh
dG9yKQogICAgIExpbmVCcmVha0l0ZXJhdG9yUG9vbDo6c2hhcmVkUG9vbCgpLnB1dChpdGVyYXRv
cik7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFByb2xvZ3VlID0KLSAgICAiISFjaGFp
bjsiCi0gICAgIiEhTEJDTU5vQ2hhaW47IgotICAgICIhIWxvb2tBaGVhZEhhcmRCcmVhazsiOwot
Ci1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0JlZm9yZSA9Ci0gICAgLy8gZXhw
bGljaXRseSBlbnVtZXJhdGUgJENKIHNpbmNlIElDVSB2ZXJzaW9ucyBwcmlvciB0byA0OSBkb24n
dCBzdXBwb3J0IDpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoKLSAgICAi
JENKID0gWyIKLSNpZiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZF
UlNJT05fTUlOT1JfTlVNID49IDkpCi0gICAgIjpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5l
c2VfU3RhcnRlcjoiCi0jZWxzZQotICAgICJcXHUzMDQxXFx1MzA0M1xcdTMwNDVcXHUzMDQ3XFx1
MzA0OVxcdTMwNjNcXHUzMDgzXFx1MzA4NVxcdTMwODdcXHUzMDhFXFx1MzA5NVxcdTMwOTZcXHUz
MEExXFx1MzBBM1xcdTMwQTVcXHUzMEE3IgotICAgICJcXHUzMEE5XFx1MzBDM1xcdTMwRTNcXHUz
MEU1XFx1MzBFN1xcdTMwRUVcXHUzMEY1XFx1MzBGNlxcdTMwRkMiCi0gICAgIlxcdTMxRjBcXHUz
MUYxXFx1MzFGMlxcdTMxRjNcXHUzMUY0XFx1MzFGNVxcdTMxRjZcXHUzMUY3XFx1MzFGOFxcdTMx
RjlcXHUzMUZBXFx1MzFGQlxcdTMxRkNcXHUzMUZEXFx1MzFGRVxcdTMxRkYiCi0gICAgIlxcdUZG
NjdcXHVGRjY4XFx1RkY2OVxcdUZGNkFcXHVGRjZCXFx1RkY2Q1xcdUZGNkRcXHVGRjZFXFx1RkY2
RlxcdUZGNzAiCi0jZW5kaWYKLSAgICAiXTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRB
c3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAx
M107IgotICAgICIkRVhfU1VCID0gW1xcdTAwMjFcXHUwMDNGXFx1RkYwMVxcdUZGMUZdOyIKLSAg
ICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAg
ICIkSVNfU1VCID0gW1xcdTAwM0FcXHUwMDNCXTsiCi0gICAgIiROU19TVUIgPSBbXFx1MjAzQ1xc
dTIwNDdcXHUyMDQ4XFx1MjA0OVxcdTMwMDVcXHUzMDFDXFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1
MzBBMFxcdTMwRkJcXHUzMEZEXFx1MzBGRVxcdUZGMUFcXHVGRjFCXFx1RkY2NV07IgotICAgICIk
UE9fU1VCID0gW1xcdTAwMjVcXHUwMEEyXFx1MDBCMFxcdTIwMzBcXHUyMDMyXFx1MjAzM1xcdTIx
MDNcXHVGRjA1XFx1RkZFMF07IgotICAgICIkUFJfU1VCID0gW1xcdTAwMjRcXHUwMEEzXFx1MDBB
NVxcdTIwQUNcXHUyMTE2XFx1RkYwNFxcdUZGRTFcXHVGRkU1XTsiCi0gICAgIiRJRF9BREQgPSBb
JENKICRCQV9TVUIgJEVYX1NVQiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9T
VUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIk
RVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIw
MjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAw
NVxcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwRkRcXHUzMEZFXTsiCi0gICAgIiRQT19TVUIgPSAn
JzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKICRJTl9TVUIgJE5T
X1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0
QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUy
MDEzXTsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJ
RF9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAx
Q1xcdTMwQTBdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAg
ICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsi
OwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNK
SyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9T
VUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAg
IiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsi
Ci0gICAgIiRJRF9BREQgPSBbJENKXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMg
Y29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSyA9Ci0gICAgIiRCQV9T
VUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAg
IiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsi
Ci0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQg
PSAnJzsiCi0gICAgIiROU19BREQgPSBbJENKXTsiOwotCi0jZGVmaW5lIHVheDE0QXNzaWdubWVu
dHNDdXN0b21TdHJpY3ROb25DSksgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pL
Ci0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Q0pLICAgICAgICB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21E
ZWZhdWx0Tm9uQ0pLICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLCi0KLXN0
YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIgPQotICAgICIkQUkgPSBbOkxp
bmVCcmVhayA9IEFtYmlndW91czpdOyIKLSAgICAiJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJl
dGljOl07IgotICAgICIkQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NV
Ql07IgotICAgICIkQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOyIKLSAgICAiJEJL
ID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsiCi0gICAgIiRCMiA9IFs6TGluZUJy
ZWFrID0gQnJlYWtfQm90aDpdOyIKLSAgICAiJENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50
X0JyZWFrOl07IgotICAgICIkQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07
IgotICAgICIkQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07IgotICAgICIkQ1Ag
PSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07IgotICAgICIkQ1IgPSBbOkxpbmVC
cmVhayA9IENhcnJpYWdlX1JldHVybjpdOyIKLSAgICAiJEVYID0gW1s6TGluZUJyZWFrID0gRXhj
bGFtYXRpb246XSAtICRFWF9TVUJdOyIKLSAgICAiJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07
IgotI2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9N
SU5PUl9OVU0gPj0gOSkKLSAgICAiJEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdfTGV0dGVyOl07
IgotI2Vsc2UKLSAgICAiJEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsiCi0jZW5kaWYK
LSAgICAiJEhZID0gWzpMaW5lQnJlYWsgPSBIeXBoZW46XTsiCi0gICAgIiRIMiA9IFs6TGluZUJy
ZWFrID0gSDI6XTsiCi0gICAgIiRIMyA9IFs6TGluZUJyZWFrID0gSDM6XTsiCi0gICAgIiRJRCA9
IFtbW1s6TGluZUJyZWFrID0gSWRlb2dyYXBoaWM6XSAtICRDSl0gJElEX0FERF0gLSAkSURfU1VC
XTsiCi0gICAgIiRJTiA9IFtbOkxpbmVCcmVhayA9IEluc2VwYXJhYmxlOl0gLSAkSU5fU1VCXTsi
Ci0gICAgIiRJUyA9IFtbOkxpbmVCcmVhayA9IEluZml4X051bWVyaWM6XSAtICRJU19TVUJdOyIK
LSAgICAiJEpMID0gWzpMaW5lQnJlYWsgPSBKTDpdOyIKLSAgICAiJEpWID0gWzpMaW5lQnJlYWsg
PSBKVjpdOyIKLSAgICAiJEpUID0gWzpMaW5lQnJlYWsgPSBKVDpdOyIKLSAgICAiJExGID0gWzpM
aW5lQnJlYWsgPSBMaW5lX0ZlZWQ6XTsiCi0gICAgIiROTCA9IFs6TGluZUJyZWFrID0gTmV4dF9M
aW5lOl07IgotICAgICIkTlMgPSBbW1tbOkxpbmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRDSl0g
JE5TX0FERF0gLSAkTlNfU1VCXTsiCi0gICAgIiROVSA9IFs6TGluZUJyZWFrID0gTnVtZXJpYzpd
OyIKLSAgICAiJE9QID0gWzpMaW5lQnJlYWsgPSBPcGVuX1B1bmN0dWF0aW9uOl07IgotICAgICIk
UE8gPSBbWzpMaW5lQnJlYWsgPSBQb3N0Zml4X051bWVyaWM6XSAtICRQT19TVUJdOyIKLSAgICAi
JFBSID0gW1s6TGluZUJyZWFrID0gUHJlZml4X051bWVyaWM6XSAtICRQUl9TVUJdOyIKLSAgICAi
JFFVID0gWzpMaW5lQnJlYWsgPSBRdW90YXRpb246XTsiCi0gICAgIiRSSSA9IFtcXFUwMDAxRjFF
Ni1cXFUwMDAxRjFGRl07IgotICAgICIkU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4
dDpdOyIKLSAgICAiJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsiCi0gICAgIiRTUCA9
IFs6TGluZUJyZWFrID0gU3BhY2U6XTsiCi0gICAgIiRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtf
U3ltYm9sczpdOyIKLSAgICAiJFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOyIKLSAg
ICAiJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3duOl07IgotICAgICIkWlcgPSBbOkxpbmVCcmVh
ayA9IFpXU3BhY2U6XTsiCi0gICAgIiRaV0ogPSBcXHUyMDBEOyIKLSAgICAiJEVtb2ppVmFyID0g
XFx1RkUwRjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRFbW9qaUZvclNl
cXMgPSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAx
RjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUw
MDAxRjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBc
XFUwMDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4
MiBcXFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAx
RjVFOCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUw
MDAxRjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNl07IiAvLyBFbW9qaSB0
aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtc
XHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxc
VTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQz
IFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFG
NDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAw
MDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxc
VTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRC
LVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFG
NkMwIFxcVTAwMDFGOTE4XSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZp
ZXJzCi0jZWxzZQotICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxV
MDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxc
dTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAx
RjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUw
MDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBc
XFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4
NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAx
RjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUw
MDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2Vu
ZGlmCi0gICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIKLSAgICAi
JGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJEFM
UGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsiCi0gICAgIiRBTGNtID0gJEFMUGx1cyAkQ00q
OyIKLSAgICAiJEJBY20gPSAkQkEgJENNKjsiCi0gICAgIiRCQmNtID0gJEJCICRDTSo7IgotICAg
ICIkQjJjbSA9ICRCMiAkQ00qOyIKLSAgICAiJENMY20gPSAkQ0wgJENNKjsiCi0gICAgIiRDUGNt
ID0gJENQICRDTSo7IgotICAgICIkRVhjbSA9ICRFWCAkQ00qOyIKLSAgICAiJEdMY20gPSAkR0wg
JENNKjsiCi0gICAgIiRITGNtID0gJEhMICRDTSo7IgotICAgICIkSFljbSA9ICRIWSAkQ00qOyIK
LSAgICAiJEgyY20gPSAkSDIgJENNKjsiCi0gICAgIiRIM2NtID0gJEgzICRDTSo7IgotICAgICIk
SURjbSA9ICRJRCAkQ00qOyIKLSAgICAiJElOY20gPSAkSU4gJENNKjsiCi0gICAgIiRJU2NtID0g
JElTICRDTSo7IgotICAgICIkSkxjbSA9ICRKTCAkQ00qOyIKLSAgICAiJEpWY20gPSAkSlYgJENN
KjsiCi0gICAgIiRKVGNtID0gJEpUICRDTSo7IgotICAgICIkTlNjbSA9ICROUyAkQ00qOyIKLSAg
ICAiJE5VY20gPSAkTlUgJENNKjsiCi0gICAgIiRPUGNtID0gJE9QICRDTSo7IgotICAgICIkUE9j
bSA9ICRQTyAkQ00qOyIKLSAgICAiJFBSY20gPSAkUFIgJENNKjsiCi0gICAgIiRRVWNtID0gJFFV
ICRDTSo7IgotICAgICIkUkljbSA9ICRSSSAkQ00qOyIKLSAgICAiJFNZY20gPSAkU1kgJENNKjsi
Ci0gICAgIiRXSmNtID0gJFdKICRDTSo7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0Rm9y
d2FyZCA9Ci0gICAgIiEhZm9yd2FyZDsiCi0gICAgIiRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRM
RiAkTkwgJFpXICRDTV07IgotICAgICIkQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5MICRa
VyAkQ01dOyIKLSAgICAiJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQ
XTsiCi0gICAgIiRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRH
TCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107IgotICAgICIkQUxfRk9MTE9X
ID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsiCi0gICAgIiRMQjRCcmVha3MgPSBb
JEJLICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICRO
TF07IgotICAgICIkTEI4QnJlYWtzID0gWyRMQjRCcmVha3MgJFpXXTsiCi0gICAgIiRMQjhOb25C
cmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOyIKLSAgICAiJExCMThOb25CcmVha3Mg
PSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsiCi0gICAgIiRMQjE4QnJlYWtzID0gWyRMQjhCcmVh
a3MgJFNQXTsiCi0gICAgIiRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsi
Ci0gICAgIiRBTFBsdXMgJENNKzsiCi0gICAgIiRCQSAkQ00rOyIKLSAgICAiJEJCICRDTSs7Igot
ICAgICIkQjIgJENNKzsiCi0gICAgIiRDTCAkQ00rOyIKLSAgICAiJENQICRDTSs7IgotICAgICIk
RVggJENNKzsiCi0gICAgIiRHTCAkQ00rOyIKLSAgICAiJEhMICRDTSs7IgotICAgICIkSFkgJENN
KzsiCi0gICAgIiRIMiAkQ00rOyIKLSAgICAiJEgzICRDTSs7IgotICAgICIkSUQgJENNKzsiCi0g
ICAgIiRJTiAkQ00rOyIKLSAgICAiJElTICRDTSs7IgotICAgICIkSkwgJENNKzsiCi0gICAgIiRK
ViAkQ00rOyIKLSAgICAiJEpUICRDTSs7IgotICAgICIkTlMgJENNKzsiCi0gICAgIiROVSAkQ00r
OyIKLSAgICAiJE9QICRDTSs7IgotICAgICIkUE8gJENNKzsiCi0gICAgIiRQUiAkQ00rOyIKLSAg
ICAiJFFVICRDTSs7IgotICAgICIkUkkgJENNKzsiCi0gICAgIiRTWSAkQ00rOyIKLSAgICAiJFdK
ICRDTSs7IgotICAgICIkQ1IgJExGIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcz8gJExCNEJy
ZWFrcyB7MTAwfTsiCi0gICAgIiRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAi
JENNKyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcyBbJFNQICRaV107Igot
ICAgICIkQ0FOX0NNICRDTSogWyRTUCAkWlddOyIKLSAgICAiJENNKyBbJFNQICRaV107IgotICAg
ICIkRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFz
OyIKLSAgICAiJENBTl9DTSAkQ00rOyIKLSAgICAiJENNKzsiCi0gICAgIiRDQU5fQ00gJENNKiAk
V0pjbTsiCi0gICAgIiRMQjhOb25CcmVha3MgJFdKY207IgotICAgICIkQ00rICRXSmNtOyIKLSAg
ICAiJFdKY20gJENBTlRfQ007IgotICAgICIkV0pjbSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xj
bSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FOVF9DTTsiCi0gICAgIltbJExCOE5vbkJy
ZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOyIKLSAgICAiJENNKyBHTGNtOyIKLSAg
ICAiJExCOE5vbkJyZWFrcyAkQ0w7IgotICAgICIkQ0FOX0NNICRDTSogJENMOyIKLSAgICAiJENN
KyAkQ0w7IgotICAgICIkTEI4Tm9uQnJlYWtzICRDUDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ1A7
IgotICAgICIkQ00rICRDUDsiCi0gICAgIiRMQjhOb25CcmVha3MgJEVYOyIKLSAgICAiJENBTl9D
TSAkQ00qICRFWDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkSVM7Igot
ICAgICIkQ0FOX0NNICRDTSogJElTOyIKLSAgICAiJENNKyAkSVM7IgotICAgICIkTEI4Tm9uQnJl
YWtzICRTWTsiCi0gICAgIiRDQU5fQ00gJENNKiAkU1k7IgotICAgICIkQ00rICRTWTsiCi0gICAg
IiRPUGNtICRTUCogJENBTl9DTSAkQ00qOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOVF9DTTsiCi0g
ICAgIiRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsiCi0gICAgIiRRVWNtICRTUCogJE9QY207
IgotICAgICIoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsiCi0gICAgIiRCMmNtICRTUCogJEIy
Y207IgotICAgICIkTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOyIKLSAgICAiJENNKyAkUVVjbTsi
Ci0gICAgIiRRVWNtIC4/OyIKLSAgICAiJFFVY20gJExCMThOb25CcmVha3MgJENNKjsiCi0gICAg
IiRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7ICIKLSAgICAiJEJC
Y20gW14kQ0JdOyIKLSAgICAiJEJCY20gJExCMjBOb25CcmVha3MgJENNKjsiCi0gICAgIiRITGNt
ICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OyIKLSAgICAiJFNZY20gJEhMY207IgotICAgICIoJEFM
Y20gfCAkSExjbSkgJElOY207IgotICAgICIkQ00rICRJTmNtOyIKLSAgICAiJEVYY20gJElOY207
IgotICAgICIkSURjbSAkSU5jbTsiCi0gICAgIiRJTmNtICRJTmNtOyIKLSAgICAiJE5VY20gJElO
Y207IgotICAgICIkSURjbSAkUE9jbTsiCi0gICAgIiRBTGNtICROVWNtOyIKLSAgICAiJEhMY20g
JE5VY207IgotICAgICIkQ00rICROVWNtOyIKLSAgICAiJE5VY20gJEFMY207IgotICAgICIkTlVj
bSAkSExjbTsiCi0gICAgIiRQUmNtICRJRGNtOyIKLSAgICAiJFBSY20gKCRBTGNtIHwgJEhMY20p
OyIKLSAgICAiJFBPY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiKCRQUmNtIHwgJFBPY20pPyAo
JE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAk
Q1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87IgotICAgICIkSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRI
MmNtIHwgJEgzY20pOyIKLSAgICAiKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNtKTsiCi0g
ICAgIigkSlRjbSB8ICRIM2NtKSAkSlRjbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20g
fCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAk
SDJjbSB8ICRIM2NtKSAkUE9jbTsiCi0gICAgIiRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20g
fCAkSDJjbSB8ICRIM2NtKTsiCi0gICAgIigkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7
IgotICAgICIkQ00rICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRJU2NtICgkQUxjbSB8ICRITGNt
KTsiCi0gICAgIigkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNtOyIKLSAgICAiJENNKyAkT1Bj
bTsiCi0gICAgIiRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOyIKLSNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKLSAgICAiJFJJY20gJFJJY207IgotI2VuZGlmCi0gICAgIiRFbW9qaUZv
ck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgx
NFJldmVyc2UgPQotICAgICIhIXJldmVyc2U7IgotICAgICIkQ00rICRBTFBsdXM7IgotICAgICIk
Q00rICRCQTsiCi0gICAgIiRDTSsgJEJCOyIKLSAgICAiJENNKyAkQjI7IgotICAgICIkQ00rICRD
TDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkQ00rICRHTDsiCi0g
ICAgIiRDTSsgJEhMOyIKLSAgICAiJENNKyAkSFk7IgotICAgICIkQ00rICRIMjsiCi0gICAgIiRD
TSsgJEgzOyIKLSAgICAiJENNKyAkSUQ7IgotICAgICIkQ00rICRJTjsiCi0gICAgIiRDTSsgJElT
OyIKLSAgICAiJENNKyAkSkw7IgotICAgICIkQ00rICRKVjsiCi0gICAgIiRDTSsgJEpUOyIKLSAg
ICAiJENNKyAkTlM7IgotICAgICIkQ00rICROVTsiCi0gICAgIiRDTSsgJE9QOyIKLSAgICAiJENN
KyAkUE87IgotICAgICIkQ00rICRQUjsiCi0gICAgIiRDTSsgJFFVOyIKLSNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKyAkUkk7IgotI2VuZGlmCi0gICAgIiRDTSsgJFNZOyIK
LSAgICAiJENNKyAkV0o7IgotICAgICIkQ00rOyIKLSAgICAiJEFMX0ZPTExPVyAkQ00rIC8gKFsk
QksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFte
JE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsiCi0gICAgIlskUFJdIC8gJENNKyBbJEJLICRD
UiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOyIKLSAgICAiJExCNEJyZWFrcyBbJExCNE5vbkJyZWFr
cy0kQ01dOyIKLSAgICAiJExCNEJyZWFrcyAkQ00rICRDQU5fQ007IgotICAgICIkTEYgJENSOyIK
LSAgICAiWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJFNQICRaV10gJENN
KyAkQ0FOX0NNOyIKLSAgICAiJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZh
cj8gJEVtb2ppRm9yU2VxczsiCi0gICAgIiRDTSsgJENBTl9DTTsiCi0gICAgIiRDTSogJFdKICRD
TSogJENBTl9DTTsiCi0gICAgIiRDTSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIk
Q0FOVF9DTSAkQ00qICRXSjsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRXSjsiCi0gICAgIiRD
TSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOyIKLSAgICAiJENB
TlRfQ00gJENNKiAkR0w7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkR0w7IgotICAgICIkQ0wg
JENNKyAkQ0FOX0NNOyIKLSAgICAiJENQICRDTSsgJENBTl9DTTsiCi0gICAgIiRFWCAkQ00rICRD
QU5fQ007IgotICAgICIkSVMgJENNKyAkQ0FOX0NNOyIKLSAgICAiJFNZICRDTSsgJENBTl9DTTsi
Ci0gICAgIiRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENQIFskTEI4Tm9uQnJlYWtz
LSRDTV07IgotICAgICIkRVggWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRJUyBbJExCOE5v
bkJyZWFrcy0kQ01dOyIKLSAgICAiJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJENM
ICRDUCAkRVggJElTICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAiCi0gICAgIiRDTSogJENBTl9D
TSAkU1AqICRDTSogJE9QOyIKLSAgICAiJENBTlRfQ00gJFNQKiAkQ00qICRPUDsiCi0gICAgIiRB
TF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAkT1A7IgotICAgICIkQUxfRk9MTE9XX05PQ00g
JENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAk
Q00qICRPUDsiCi0gICAgIiRTWSAkQ00gJFNQKyAkT1A7IgotICAgICIkQ00qICRPUCAkU1AqICRD
TSogJFFVOyIKLSAgICAiJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJENN
KiAkQjIgJFNQKiAkQ00qICRCMjsiCi0gICAgIiRDTSogJFFVICRDTSogJENBTl9DTTsiCi0gICAg
IiRDTSogJFFVICRMQjE4Tm9uQnJlYWtzOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFFVOyIK
LSAgICAiJENBTlRfQ00gJENNKiAkUVU7IgotICAgICIkQ00qICgkQkEgfCAkSFkgfCAkTlMpICRD
TSogWyRMQjIwTm9uQnJlYWtzLSRDTV07IgotICAgICIkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01d
ICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogKCRI
WSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIkQ00qICRITCAkQ00qICRTWTsiCi0gICAgIiRDTSog
JElOICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAkSU4gJENNKiAkRVg7IgotICAg
ICIkQ00qICRJTiAkQ00qICRJRDsiCi0gICAgIiRDTSogJElOICRDTSogJElOOyIKLSAgICAiJENN
KiAkSU4gJENNKiAkTlU7IgotICAgICIkQ00qICRQTyAkQ00qICRJRDsiCi0gICAgIiRDTSogJE5V
ICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAk
TlU7IgotICAgICIkQ00qICRJRCAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwp
ICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87IgotICAgICIo
JENNKiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8
ICRTWSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87
IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOyIKLSAgICAiJENN
KiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOyIKLSAgICAiJENNKiAkSlQgJENNKiAoJEgz
IHwgJEpUKTsiCi0gICAgIiRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRK
TCk7IgotICAgICIkQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIK
LSAgICAiJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsiCi0gICAg
IiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAo
JEFMUGx1cyB8ICRITCkgJENNKiAkSVM7IgotICAgICIkQ00qICRPUCAkQ00qICgkQUxQbHVzIHwg
JEhMIHwgJE5VKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOyIK
LSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKiAkUkkgJENNKiAkUkk7Igot
I2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyI7Ci0KLXN0
YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVGb3J3YXJkID0KLSAgICAiISFzYWZlX2ZvcndhcmQ7
IgotICAgICJbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9u
YXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07
IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciog
dWF4MTRTYWZlUmV2ZXJzZSA9Ci0gICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAiJENNKyBbXiRD
TSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07IgotICAgICIkQ00rICRTUCAvIC47IgotICAgICIk
U1ArICRDTSogJE9QOyIKLSAgICAiJFNQKyAkQ00qICRRVTsiCi0gICAgIiRTUCsgJENNKiAoJENM
IHwgJENQKTsiCi0gICAgIiRTUCsgJENNKiAkQjI7IgotICAgICIkQ00qICgkSFkgfCAkQkEpICRD
TSogJEhMOyIKLSAgICAiKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsiCi0gICAgIigkQ0wg
fCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlv
bmFyeTsiOwotCiBzdGF0aWMgU3RyaW5nIG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKExpbmVC
cmVha0l0ZXJhdG9yTW9kZSBtb2RlLCBib29sIGlzQ0pLKQogewotICAgIFN0cmluZ0J1aWxkZXIg
cnVsZXNCdWlsZGVyOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRQcm9sb2d1ZSk7Ci0g
ICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1lbnRzQmVmb3JlKTsKICAgICBzd2l0
Y2ggKG1vZGUpIHsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0OgotICAgICAg
ICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1
bHRDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNKSyk7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVs
ZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJl
YWtJdGVyYXRvck1vZGVVQVgxNExvb3NlOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlz
Q0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLIDogdWF4MTRBc3NpZ25tZW50c0N1
c3RvbUxvb3NlTm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/
IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgx
NE5vcm1hbDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdu
bWVudHNDdXN0b21Ob3JtYWxDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pL
KTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25D
SktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0U3RyaWN0OgotICAg
ICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0
cmljdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSkspOwotICAgICAgICBi
cmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKS1J1bGVzOwogICAg
IH0KLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNBZnRlcik7Ci0gICAg
cnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEZvcndhcmQpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBl
bmQodWF4MTRSZXZlcnNlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2FmZUZvcndh
cmQpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZlUmV2ZXJzZSk7Ci0gICAgcmV0
dXJuIHJ1bGVzQnVpbGRlci50b1N0cmluZygpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiAiIjsKIH0KIAogLy8gUmVjb2duaXplIEJDUDQ3IGNvbXBsaWFudCBwcmltYXJ5
IGxhbmd1YWdlIHZhbHVlcyBvZiAnemgnLCAnamEnLCAna28nCkBAIC03ODYsOSArMjUyLDI5IEBA
IFRleHRCcmVha0l0ZXJhdG9yKiBvcGVuTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgQXRvbWljU3Ry
aW5nJiBsb2NhbGUsIExpbmVCcmVha0l0CiAgICAgaWYgKG1vZGUgPT0gTGluZUJyZWFrSXRlcmF0
b3JNb2RlVUFYMTQpCiAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuKFVCUktfTElORSwgbG9j
YWxlSXNFbXB0eSA/IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpIDogbG9jYWxlLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksIDAsIDAsICZvcGVuU3RhdHVzKTsKICAgICBlbHNlIHsKLSAgICAgICAg
VVBhcnNlRXJyb3IgcGFyc2VTdGF0dXM7Ci0gICAgICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRl
cmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7Ci0gICAgICAgIHVicmtJdGVyID0gdWJya19v
cGVuUnVsZXMoU3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHJ1bGVz
Lmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVzKTsKKyAgICAgICAgQnJl
YWtpbmdSdWxlU2V0IHJ1bGVTZXQ7CisgICAgICAgIHN3aXRjaCAobW9kZSkgeworICAgICAgICBj
YXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlz
Q0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTRO
b25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRv
ck1vZGVVQVgxNExvb3NlOgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdS
dWxlU2V0OjpVQVgxNExvb3NlQ0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pL
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2Rl
VUFYMTROb3JtYWw6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVT
ZXQ6OlVBWDE0Tm9ybWFsQ0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVB
WDE0U3RyaWN0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0
OjpVQVgxNFN0cmljdENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3ROb25DSks7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhdXRvKiBpdGVyYXRv
ciA9IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChydWxlU2V0KSkKKyAgICAgICAgICAgIHVicmtJ
dGVyID0gcmVpbnRlcnByZXRfY2FzdDxVQnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yKTsKKyAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKKyAgICAgICAg
ICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7
CisgICAgICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlblJ1bGVzKFN0cmluZ1ZpZXcocnVsZXMp
LnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBydWxlcy5sZW5ndGgoKSwgMCwgMCwgJnBhcnNlU3Rh
dHVzLCAmb3BlblN0YXR1cyk7CisgICAgICAgIH0KICAgICB9CiAgICAgLy8gbG9jYWxlIGNvbWVz
IGZyb20gYSB3ZWIgcGFnZSBhbmQgaXQgY2FuIGJlIGludmFsaWQsIGxlYWRpbmcgSUNVCiAgICAg
Ly8gdG8gZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgbG9j
YWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5o
IGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCmluZGV4IGQ5MDMyMTVh
ZTQxMzdlNGMzYTllYTM1YjNkMDI1YmY1MmU0NTE4ZWMuLmQ4MjFiMzE2NzkxOWI0NDI5ZmE1NGMx
ZTViM2Y0NjdjNTIwNjEzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJy
ZWFrSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9y
LmgKQEAgLTM4LDYgKzM4LDMwIEBAIGVudW0gTGluZUJyZWFrSXRlcmF0b3JNb2RlIHsKICAgICBM
aW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNFN0cmljdCwKIH07CiAKK2VudW0gY2xhc3MgQnJlYWtp
bmdSdWxlU2V0IHsKKyAgICBDdXJzb3JNb3ZlbWVudCwKKyAgICBVQVgxNENKSywKKyAgICBVQVgx
NE5vbkNKSywKKyAgICBVQVgxNExvb3NlQ0pLLAorICAgIFVBWDE0TG9vc2VOb25DSkssCisgICAg
VUFYMTROb3JtYWxDSkssCisgICAgVUFYMTROb3JtYWxOb25DSkssCisgICAgVUFYMTRTdHJpY3RD
SkssCisgICAgVUFYMTRTdHJpY3ROb25DSksKK307CisKK2V4dGVybiBjb25zdCBjaGFyKiBjdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRl
cmF0b3JVQVgxNENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3RDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CisKK1RleHRCcmVha0l0ZXJhdG9yKiBjcmVh
dGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0KTsKKwogLy8gVGhpcyBpcyBzaW1p
bGFyIHRvIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBpbiBtb3N0IGNhc2VzLCBidXQgaXMgc3Vi
amVjdCB0bwogLy8gcGxhdGZvcm0gVUkgY29udmVudGlvbnMuIE9uZSBub3RhYmxlIGV4YW1wbGUg
d2hlcmUgdGhpcyBjYW4gYmUgZGlmZmVyZW50CiAvLyBmcm9tIGNoYXJhY3RlciBicmVhayBpdGVy
YXRvciBpcyBUaGFpIHByZXBlbmQgY2hhcmFjdGVycywgc2VlIGJ1ZyAyNDM0Mi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VN
YWMubW0gYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFs
SUNVTWFjLm1tCmluZGV4IGJlZjVkYWE2NDI4ODgyMWUyMGYyNjI4YzY4NTVlZThlODhhMzg5MmMu
LjJhZWNmMDllODI1NDRjNjZiN2QxYzFlNWFhYWM2NGY1ZmZmMzAyYmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0K
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElD
VU1hYy5tbQpAQCAtMjEsMTIgKzIxLDEyMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKIAorI2luY2x1ZGUgIlRleHRCcmVh
a0l0ZXJhdG9yLmgiCisKKyNpZiBkZWZpbmVkKFVfU0hPV19DUExVU1BMVVNfQVBJKQorI3VuZGVm
IFVfU0hPV19DUExVU1BMVVNfQVBJCisjZW5kaWYKKyNkZWZpbmUgVV9TSE9XX0NQTFVTUExVU19B
UEkgMQorCisjaW5jbHVkZSA8dW5pY29kZS9yYmJpLmg+CisjaW5jbHVkZSA8dW5pY29kZS91ZGF0
YS5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9PcHRp
b25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAorQGludGVyZmFjZSBXVEZCdW5k
bGVGaW5kZXIgOiBOU09iamVjdAorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV1RGQnVuZGxlRmlu
ZGVyCitAZW5kCisKIG5hbWVzcGFjZSBXVEYgewogCiBzdGF0aWMgY29uc3QgaW50IG1heExvY2Fs
ZVN0cmluZ0xlbmd0aCA9IDMyOwogCitzdHJ1Y3QgUnVsZUNhY2hlIHsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4gaXRlcmF0b3I7CisgICAgYm9vbCBmYWlsZWQg
eyBmYWxzZSB9OworfTsKKworVGV4dEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVs
ZVNldChCcmVha2luZ1J1bGVTZXQgcnVsZVNldCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8UnVsZUNhY2hlPiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0Q0pLSXRlcmF0b3I7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTROb25DSktJdGVyYXRvcjsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNExvb3Nl
Q0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJy
ZWFrVUFYMTRMb29zZU5vbkNKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxS
dWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0Tm9ybWFsQ0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTROb3JtYWxOb25DSktJdGVyYXRv
cjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNFN0
cmljdENKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxp
bmVCcmVha1VBWDE0U3RyaWN0Tm9uQ0pLSXRlcmF0b3I7CisKKyAgICBOU1N0cmluZyAqZmlsZU5h
bWVCYXNlOworICAgIFJ1bGVDYWNoZSogY2FjaGUgPSBudWxscHRyOworCisgICAgc3dpdGNoIChy
dWxlU2V0KSB7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50OgorICAg
ICAgICBmaWxlTmFtZUJhc2UgPSBAIkN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyI7CisgICAg
ICAgIGNhY2hlID0gJmN1cnNvck1vdmVtZW50SXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENKSzoKKyAgICAgICAgZmlsZU5hbWVC
YXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGlu
ZUJyZWFrVUFYMTRDSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBC
cmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtV
QVgxNE5vbkNKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFr
aW5nUnVsZVNldDo6VUFYMTRMb29zZUNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtV
QVgxNExvb3NlQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJl
YWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBA
IkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSyI7CisgICAgICAgIGNhY2hlID0gJmxp
bmVCcmVha1VBWDE0TG9vc2VOb25DSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLOgorICAgICAgICBmaWxlTmFt
ZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksiOworICAgICAgICBjYWNo
ZSA9ICZsaW5lQnJlYWtVQVgxNE5vcm1hbENKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks6CisgICAgICAg
IGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSyI7Cisg
ICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0Tm9ybWFsTm9uQ0pLSXRlcmF0b3IuZ2V0KCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdENK
SzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Q0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTRTdHJpY3RDSktJdGVyYXRvci5n
ZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3Ry
aWN0Tm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3ROb25DSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNFN0cmljdE5v
bkNKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBBU1NFUlQo
Y2FjaGUpOworCisgICAgaWYgKGNhY2hlLT5mYWlsZWQpCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgaWYgKCFjYWNoZS0+aXRlcmF0b3IpIHsKKyAgICAgICAgTlNCdW5kbGUgKmJ1bmRs
ZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV1RGQnVuZGxlRmluZGVyIGNsYXNzXV07Cisg
ICAgICAgIE5TU3RyaW5nICpwYXRoID0gW2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6ZmlsZU5hbWVC
YXNlIG9mVHlwZTpAImJyayIgaW5EaXJlY3Rvcnk6QCJCcmVha2luZ1J1bGVzIl07CisgICAgICAg
IGlmICghcGF0aCkgeworICAgICAgICAgICAgY2FjaGUtPmZhaWxlZCA9IHRydWU7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIE5TU3RyaW5nICpkaXJl
Y3RvcnkgPSBbcGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOworICAgICAg
ICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAgICAgICAgTG9jYWxVRGF0
YU1lbW9yeVBvaW50ZXIgZGF0YSh1ZGF0YV9vcGVuKFtkaXJlY3RvcnkgVVRGOFN0cmluZ10sICJi
cmsiLCBbZmlsZU5hbWVCYXNlIFVURjhTdHJpbmddLCAmZXJyb3JDb2RlKSk7CisgICAgICAgIGlm
IChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKSB7CisgICAgICAgICAgICBjYWNoZS0+ZmFpbGVk
ID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAg
ICAgY2FjaGUtPml0ZXJhdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yPihkYXRhLm9ycGhhbigpLCBlcnJvckNvZGUpOworICAgICAgICBpZiAoZXJyb3JDb2RlICE9
IFVfWkVST19FUlJPUikgeworICAgICAgICAgICAgY2FjaGUtPmZhaWxlZCA9IHRydWU7CisgICAg
ICAgICAgICBjYWNoZS0+aXRlcmF0b3IgPSBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxU
ZXh0QnJlYWtJdGVyYXRvcio+KHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJhc2VkQnJlYWtJdGVyYXRv
cj4oKmNhY2hlLT5pdGVyYXRvcikucmVsZWFzZSgpKTsKK30KKwogc3RhdGljIGlubGluZSBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IHRleHRCcmVha0xvY2FsZVByZWZlcmVuY2UoKQogewogICAgIFJl
dGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gbG9jYWxlID0gYWRvcHRDRihDRlByZWZlcmVuY2Vz
Q29weVZhbHVlKENGU1RSKCJBcHBsZVRleHRCcmVha0xvY2FsZSIpLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1h
Yy5jbWFrZQppbmRleCA3NTUyY2Q3NWNkMTVjOGJmNjFhZjdkMmEwZWE5ZmI5MTdmZTA3ZTM5Li43
Yzc3NWI3YjgxYmZmMDNhNzUyMzc0ZDZjMTM0YzQ2NzZkNjQwODhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bU1hYy5jbWFrZQpAQCAtNTg3LDggKzU4Nyw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UwogICAgIHBsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvRXZl
bnRMb29wTWFjLm1tCiAgICAgcGxhdGZvcm0vbWFjL0ZpbGVTeXN0ZW1NYWMubW0KLSAgICBwbGF0
Zm9ybS9tYWMvSElER2FtZXBhZC5jcHAKLSAgICBwbGF0Zm9ybS9tYWMvSElER2FtZXBhZFByb3Zp
ZGVyLmNwcAorICAgICNwbGF0Zm9ybS9tYWMvSElER2FtZXBhZC5jcHAKKyAgICAjcGxhdGZvcm0v
bWFjL0hJREdhbWVwYWRQcm92aWRlci5jcHAKICAgICBwbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMu
bW0KICAgICBwbGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMubW0KICAgICBwbGF0Zm9ybS9tYWMvTG9j
YWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2Vi
S2l0RlMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKaW5kZXggMjlhMDk2OTAz
OGZhYTc0NGUxYThjNThmMzU2YWQwNzNmMDA1MjViZC4uODFmNTRhNTZhZDY5NTNkN2IxZTIwYzg4
ZmE4NWJiZGRkMWYwN2U4YyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtl
CisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQpAQCAtMjQsNiArMjQsNyBAQCBpZiAo
Tk9UIFRPT0xTX0RJUikKIGVuZGlmICgpCiAKIHNldChERVJJVkVEX1NPVVJDRVNfRElSICIke0NN
QUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzIikKK3NldChERVJJVkVEX1NPVVJDRVNfV1RG
X0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XVEYiKQogc2V0KERFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZl
ZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
UiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJDb3JlIikKIHNldChERVJJ
VkVEX1NPVVJDRVNfV0VCS0lUTEVHQUNZX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVk
U291cmNlcy9XZWJLaXRMZWdhY3kiKQpAQCAtMzIsNiArMzMsOCBAQCBzZXQoREVSSVZFRF9TT1VS
Q0VTX1dFQktJVDJfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVIgIiR7Q01BS0VfQklO
QVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9yVUkiKQogCiBmaWxlKE1BS0VfRElS
RUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0pCitmaWxlKE1BS0Vf
RElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9KQorZmlsZShNQUtFX0RJUkVDVE9S
WSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzKQogZmlsZShNQUtFX0RJ
UkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
KQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJ
X0RJUn0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285612</attachid>
            <date>2016-08-08 17:16:17 -0700</date>
            <delta_ts>2016-08-11 14:03:29 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20160808171445.patch</filename>
            <type>text/plain</type>
            <size>475229</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NzcxNGM0YjVjNmE4NTg2MzVjMTQ0ZmIyNDIxOGQ4NDU0ZWU3MTA1Li4wYzE0ZjAwOGMwM2E3YmYy
M2EwZWJjMWRhYjJkM2MzYjc4ZDljMmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0wOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMDggIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IGhhc0lubGluZVN0b3JhZ2UoKSBpbiBKU0ZpbmFsT2Jq
ZWN0Ojp2aXNpdENoaWxkcmVuKCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYyNmIyZWJmZmUyY2FkYTM3Y2NkYWUzY2VkZjZl
ZmM4NTNiNjE2YjEuLjgwMGYyN2IwMTk1NzViNTkwYjliOTM5OGY1YjAwY2ZhZGEzODliYzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMDgtMDggIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZp
ZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMg
YXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkZWQuCisgICAgICAgICog
d3RmL2dlbmJyazogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dDogQWRkZWQuCisgICAgICAg
ICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9u
Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDogQWRk
ZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwOgorICAgICAgICAo
V1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RGOjpjdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAg
KiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOgorICAgICAgICAqIHd0Zi90ZXh0L21hYy9U
ZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAgICAgICAoV1RGOjppdGVyYXRv
ckZvclJ1bGVTZXQpOgorCiAyMDE2LTA4LTA2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgV1RGIG5lZWRzIGEgdmFyaWFudCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBlMzBkYzllNGQwMjAzNjIwYjE0Y2EyMjhiNGViMmJiNGZk
ZWNlZjBkLi4xYWJlNDdjMjQ2NGRhODk4ZmFkNTMwYWNjMzI2MzdjOGJkYTYyYzdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwOSw2ICsxMTA5LDcgQEAKIAkJMTRGOTc0NDcx
MzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGOTc0NDYxMzhDODUzRTAwREExQzY3IC8qIEhl
YXBSb290VmlzaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjhENEE3
MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNGNzM3NzE3MUNBNkZCMDBDOUJC
MUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgKi87IH07CisJCTFDRDE4
NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyog
QnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi87IH07
CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1QTUxNTJCQUFBNzAw
OTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2MkQ4NUI2MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQxQzBENjUwRjAwNkFDQjYxIC8q
IEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07CkBAIC0zMjcyLDYgKzMyNzMs
NyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFzZS54Y2NvbmZpZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYgLyogSmF2YVNjcmlwdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQxQkNGRiAvKiBKYXZhU2NyaXB0
Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Q29yZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMg
LyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7IHBhdGggPSAuLi9XVEYvQnJl
YWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTQxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0
aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0aCA9IGIzL2Fpci9BaXJGaXhQ
YXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NTQzOCw2ICs1NDQwLDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAwNzY5RTU0IC8qIERlcml2ZWQg
U291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
MUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJMEY2MTgz
MzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAogCQkJCTBGNjE4MzM0MUM0NUYz
QjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywKIAkJCQkwRjYxODMzNTFDNDVG
M0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAgLTg0NTcsNiArODQ2MCw3IEBA
CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQTUz
RjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8sCisJ
CQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2JhODA0
MDZiNjg3ODcyY2RjMmUzZTgxNmJlYjAwNDNhOTM5YzI3MC4uMGMzOGEyNzE2ZTI3MjdmYjljOTdi
MGIyM2FiNDY3N2I0OWZjZDFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC03LDYgKzcsMTggQEAKIAlvYmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhBZ2dy
ZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVy
aXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OworCQkJYnVp
bGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMwMENDN0RFQyAvKiBCdWlsZCBj
b25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2Vz
IiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAv
KiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0g
KAorCQkJCUMyQkE1NDNCMUQ1NzJCRUIwMDBBMzMzMiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICov
LAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXByb2R1Y3ROYW1lID0g
IkNvcHkgV1RGIEhlYWRlcnMiOworCQl9OwogCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyog
Q29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKIAkJ
CWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyogQnVp
bGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RGIEhl
YWRlcnMiICovOwpAQCAtMzEyLDYgKzMyNCwyMCBAQAogCQlBOEE0NzQ4NzE1MUE4MjVCMDA0MTIz
RkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCAq
LzsgfTsKIAkJQThBNDc0OEMxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDc0OEIxNTFBODI2NDAwNDEy
M0ZGIC8qIGNvbmZpZy5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1M0U4MDA2NUM5NjkgLyogRmVh
dHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovOyB9Owor
CQlDMkJBNTQyNTFENTcyNUM0MDAwQTMzMzIgLyogZ2VuYnJrLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1NDE4MUQ1NzI1OTAwMDBBMzMzMiAv
KiBnZW5icmsuY3BwICovOyB9OworCQlDMkJBNTQzMzFENTcyOTM4MDAwQTMzMzIgLyogdW9wdGlv
bnMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1
NDMyMUQ1NzI5MzgwMDBBMzMzMiAvKiB1b3B0aW9ucy5jICovOyB9OworCQlDMkJBNTQzNjFENTcy
OUZGMDAwQTMzMzIgLyogdW5ld2RhdGEuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyQkE1NDM1MUQ1NzI5RkYwMDBBMzMzMiAvKiB1bmV3ZGF0YS5jICov
OyB9OworCQlDMkJBNTQzOTFENTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1NDM4MUQ1NzJBRjgwMDBB
MzMzMiAvKiBmaWxlc3RybS5jICovOyB9OworCQlDMkJBNTQzRTFENTg2QUY0MDAwQTMzMzIgLyog
bGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICov
OyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
Sy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VEMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U0MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJD
QTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3
RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3Bw
ICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RjExRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTgxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICov
OyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkzNjE5QzY1RUI0MDBC
MkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMzMCAv
KiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87IH07CiAJ
CUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAv
KiBNZWRpYVRpbWUuaCAqLzsgfTsKQEAgLTM0NCw2ICszNzAsMTMgQEAKIAkJCXJlbW90ZUdsb2Jh
bElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdU
RjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Q
cm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5l
clBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsK
KwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1
NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsK
IAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9
IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9
IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTM1MSw4
ICszODQsMjcgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNjVBRkExNkYxNjMwQjk3NzAw
M0Q3MjNDOwogCQkJcmVtb3RlSW5mbyA9ICJDb3B5IEhlYWRlcnMiOwogCQl9OworCQlDMkJBNTQz
QTFENTcyQkVCMDAwQTMzMzIgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNh
ID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gNUQyNDdCNTkx
NDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsK
KwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMyOworCQkJ
cmVtb3RlSW5mbyA9IGdlbmJyazsKKwkJfTsKIC8qIEVuZCBQQlhDb250YWluZXJJdGVtUHJveHkg
c2VjdGlvbiAqLwogCisvKiBCZWdpbiBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8K
KwkJQzJCQTU0MUIxRDU3MjVCNDAwMEEzMzMyIC8qIENvcHlGaWxlcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWENvcHlGaWxlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OworCQkJZHN0UGF0aCA9IC91c3Ivc2hhcmUvbWFuL21hbjEvOworCQkJZHN0U3ViZm9sZGVyU3Bl
YyA9IDA7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMTsKKwkJfTsKKy8qIEVuZCBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rp
b24gKi8KKwogLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAJCTBGMEQ4NUIz
MTcyMzRDQjEwMDMzODIxMCAvKiBOb0xvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9Mb2NrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMkI2NkE0MTdCNkI0RjcwMEE3QUUzRiAvKiBE
ZWZlcnJhYmxlUmVmQ291bnRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWZlcnJhYmxlUmVmQ291bnRl
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDM2LDYgKzQ4OCwxOCBAQAogCQkx
QzE4MUM4RDFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzhFMUQzMDdBQjgwMEY1RkExNiAvKiBV
VGV4dFByb3ZpZGVyVVRGMTYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRl
eHRQcm92aWRlclVURjE2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzk1
MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVU1hYy5tbTsgcGF0aCA9IG1hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNV
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NDFENTU5QTBEMDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDQjRGQjk1MUQ1NTlBNjkwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTYxRDU1
OUE5MDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Q0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlBMUQ1
NTlCMjMwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFr
SXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRl
cmF0b3JFcGlsb2d1ZS50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhB
MUQ1NThBRDMwMENDN0RFQyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IG5hbWUgPSBEZXJpdmVk
U291cmNlcy5tYWtlOyBwYXRoID0gd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHVzZXNUYWJzID0gMTsgfTsKKwkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVD
IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OTMx
RDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRo
cmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGhy
ZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODkxNTI1MDJEQTAw
NTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQ29yZVRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjE0N0Iw
ODE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTgsNiArNzIyLDMzIEBACiAJCUE4QTQ3MzdC
MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZUaHJlYWREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdURlRocmVhZERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQThBNDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUMyQkE1NDE4MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gZ2VuYnJrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzJCQTU0MUQxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsg
aW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gZ2VuYnJrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OworCQlDMkJBNTQyNjFENTcyNjdDMDAwQTMzMzIgLyogdW9wdGlvbnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdW9wdGlvbnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MjcxRDU3MjY4OTAwMEEzMzMyIC8qIHVuZXdkYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVuZXdkYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDI4MUQ1NzI2QjAwMDBBMzMzMiAvKiB1Y21uZGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1Y21uZGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyOTFENTcyNkJDMDAwQTMzMzIgLyogcmJiaWRhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcmJiaWRhdGEuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MkExRDU3MjZDNTAwMEEzMzMyIC8qIGNtZW1vcnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY21lbW9yeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyQjFENTcyNkU4MDAwQTMzMzIgLyogdW1hcGZpbGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdW1hcGZpbGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MkMxRDU3MjcwOTAwMEEzMzMyIC8qIHB1dGlsaW1w
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHB1dGlsaW1wLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDJEMUQ1NzI3MjQwMDBBMzMzMiAvKiB1ZGF0YXN3
cC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB1ZGF0YXN3cC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyRTFENTcyNzNCMDAwQTMzMzIgLyogdW11dGV4
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVtdXRleC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQyRjFENTcyNzRDMDAwQTMzMzIgLyogdXRyaWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdXRyaWUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MzIxRDU3MjkzODAwMEEzMzMyIC8qIHVvcHRpb25zLmMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHVvcHRpb25zLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUMyQkE1NDM0MUQ1NzI5QTkwMDBBMzMzMiAvKiBjc3RyaW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNzdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MzUxRDU3MjlGRjAwMEEzMzMyIC8qIHVuZXdkYXRhLmMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHVuZXdkYXRhLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUMyQkE1NDM3MUQ1NzJBMkQwMDBBMzMzMiAvKiBmaWxlc3RybS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBmaWxlc3RybS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDMkJBNTQzODFENTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gZmlsZXN0cm0uYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0M0YxRDU4NzRFNjAwMEEzMzMyIC8qIEdlbmVyYXRlQnJl
YWtpbmdSdWxlU3RyaW5ncy5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IEdlbmVyYXRlQnJlYWtpbmdS
dWxlU3RyaW5ncy5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTAxRDU1
Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcDsgcGF0aCA9IEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDMkNBMzdFNDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzRGOEE5MzYxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9wd2F0Y2guaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGlt
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQjE1ODU3RDAzMDBCNUJDMzAg
LyogTWVkaWFUaW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVGlt
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjg4LDcgKzc3OSw3IEBACiAJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJMTQ0N0FFQzYx
OEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8s
Ci0JCQkJMTQ0N0FFQ0IxOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJh
bWV3b3JrcyAqLywKKwkJCQlDMkJBNTQzRTFENTg2QUY0MDAwQTMzMzIgLyogbGliaWN1Y29yZS5k
eWxpYiBpbiBGcmFtZXdvcmtzICovLAogCQkJCTE0NDdBRUM3MThGQ0U1ODAwMEIzRDdGRiAvKiBs
aWJXVEYuYSBpbiBGcmFtZXdvcmtzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtNzAxLDYgKzc5MiwxNCBAQAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OworCQlDMkJBNTQxQTFENTcy
NUI0MDAwQTMzMzIgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NC
dWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0g
KAorCQkJCTE0NDdBRUNCMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZy
YW1ld29ya3MgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CisJCX07CiAvKiBFbmQgUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwog
CiAvKiBCZWdpbiBQQlhHcm91cCBzZWN0aW9uICovCkBAIC03MjUsNiArODI0LDI1IEBACiAJCQlw
YXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUNEMTg3OTEx
RDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDNGMUQ1ODc0RTYwMDBBMzMzMiAvKiBHZW5l
cmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8sCisJCQkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3
REVDIC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8sCisJCQkJMUNEMTg3OTMx
RDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovLAorCQkJ
CTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4
dCAqLywKKwkJCQkxQ0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTcxRDU1OUFBODAw
RjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgKi8sCisJCQkJ
MUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksudHh0ICovLAorCQkJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZF
MzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8sCisJCQkJMUNCNEZC
OUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksu
dHh0ICovLAorCQkJCTFDQjRGQjlDMUQ1NTlCNjcwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
ckVwaWxvZ3VlLnR4dCAqLywKKwkJCSk7CisJCQlwYXRoID0gQnJlYWtpbmdSdWxlczsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2OEQxQiAv
KiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNzQ2
LDEwICs4NjQsMTIgQEAKIAkJNUQyNDdCNTcxNDY4OUI4NjAwRTc4Qjc2ID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMg
LyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKIAkJCQk1RDI0N0I2RDE0Njg5QzQ3MDBFNzhCNzYg
LyogQ29uZmlndXJhdGlvbnMgKi8sCiAJCQkJMTQwMjJGM0YxOEY1QzNFNTAwN0ZGMEVCIC8qIExp
YnJhcmllcyAqLywKIAkJCQk1RDI0N0I2MzE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvZHVjdHMgKi8s
CiAJCQkJNUQyNDdCNzYxNDY4OUQ3NjAwRTc4Qjc2IC8qIFNvdXJjZSAqLywKKwkJCQlDMkNBMzdE
RjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0NDdBRUM1MThG
Q0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKIAkJCQkxNDQ3QUVDQTE4
RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLywKIAkJCSk7CkBAIC03NjAsNiAr
ODgwLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTE0NDdBRUJFMThGQ0U1NjkwMEIzRDdGRiAv
KiBsaWJtYm1hbGxvYy5keWxpYiAqLywKIAkJCQk1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyog
bGliV1RGLmEgKi8sCisJCQkJQzJCQTU0MUQxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLywK
IAkJCSk7CiAJCQluYW1lID0gUHJvZHVjdHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMTA4Myw2ICsxMjA0LDggQEAKIAkJQThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDE3
MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsgKi8sCisJCQkJMUNEMTg3OTExRDU1OThFMTAwQ0M3
REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJMUMxODFDODgxRDMwN0FCODAwRjVGQTE2IC8q
IGljdSAqLywKIAkJCQlBNUJBMTVGNjE4MjQzNTlFMDBBODJFNjkgLyogY2YgKi8sCiAJCQkJQTVC
QTE1RjExODI0MzM5RjAwQTgyRTY5IC8qIG1hYyAqLywKQEAgLTExNTgsNiArMTI4MSw0NyBAQAog
CQkJcGF0aCA9IGljdTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUMyQkE1
NDE3MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDE4MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsu
Y3BwICovLAorCQkJCUMyQkE1NDMyMUQ1NzI5MzgwMDBBMzMzMiAvKiB1b3B0aW9ucy5jICovLAor
CQkJCUMyQkE1NDM1MUQ1NzI5RkYwMDBBMzMzMiAvKiB1bmV3ZGF0YS5jICovLAorCQkJCUMyQkE1
NDM4MUQ1NzJBRjgwMDBBMzMzMiAvKiBmaWxlc3RybS5jICovLAorCQkJCUMyQkE1NDI2MUQ1NzI2
N0MwMDBBMzMzMiAvKiB1b3B0aW9ucy5oICovLAorCQkJCUMyQkE1NDI3MUQ1NzI2ODkwMDBBMzMz
MiAvKiB1bmV3ZGF0YS5oICovLAorCQkJCUMyQkE1NDI4MUQ1NzI2QjAwMDBBMzMzMiAvKiB1Y21u
ZGF0YS5oICovLAorCQkJCUMyQkE1NDI5MUQ1NzI2QkMwMDBBMzMzMiAvKiByYmJpZGF0YS5oICov
LAorCQkJCUMyQkE1NDJBMUQ1NzI2QzUwMDBBMzMzMiAvKiBjbWVtb3J5LmggKi8sCisJCQkJQzJC
QTU0MkIxRDU3MjZFODAwMEEzMzMyIC8qIHVtYXBmaWxlLmggKi8sCisJCQkJQzJCQTU0MkMxRDU3
MjcwOTAwMEEzMzMyIC8qIHB1dGlsaW1wLmggKi8sCisJCQkJQzJCQTU0MkQxRDU3MjcyNDAwMEEz
MzMyIC8qIHVkYXRhc3dwLmggKi8sCisJCQkJQzJCQTU0MkUxRDU3MjczQjAwMEEzMzMyIC8qIHVt
dXRleC5oICovLAorCQkJCUMyQkE1NDJGMUQ1NzI3NEMwMDBBMzMzMiAvKiB1dHJpZS5oICovLAor
CQkJCUMyQkE1NDM0MUQ1NzI5QTkwMDBBMzMzMiAvKiBjc3RyaW5nLmggKi8sCisJCQkJQzJCQTU0
MzcxRDU3MkEyRDAwMEEzMzMyIC8qIGZpbGVzdHJtLmggKi8sCisJCQkpOworCQkJbmFtZSA9IGdl
bmJyazsKKwkJCXBhdGggPSBCcmVha2luZ1J1bGVzL2dlbmJyazsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CisJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNv
dXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMy
Q0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
ICovLAorCQkJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Q0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNB
MzdFNDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAg
Ki8sCisJCQkJQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksuY3BwICovLAorCQkJCUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNzFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8sCisJ
CQkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksuY3BwICovLAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJ
CXBhdGggPSBEZXJpdmVkU291cmNlcy9XVEY7CisJCQlzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOworCQl9OwogCQlDRTQ2NTE2QzE5REIxRkI0MDAzRUNBMDUgLyogY29jb2EgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTQ3MCw2ICsxNjM0LDcg
QEAKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTFD
RDE4Nzg4MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTY1
QUZBMjhFMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsK
IAkJCW5hbWUgPSBXVEY7CkBAIC0xNDc3LDYgKzE2NDIsMjMgQEAKIAkJCXByb2R1Y3RSZWZlcmVu
Y2UgPSA1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi87CiAJCQlwcm9kdWN0
VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLmxpYnJhcnkuc3RhdGljIjsKIAkJfTsKKwkJ
QzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLyA9IHsKKwkJCWlzYSA9IFBCWE5h
dGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSBDMkJBNTQyMTFENTcyNUI0
MDAwQTMzMzIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQg
ImdlbmJyayIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQlDMkJBNTQxOTFENTcyNUI0MDAw
QTMzMzIgLyogU291cmNlcyAqLywKKwkJCQlDMkJBNTQxQTFENTcyNUI0MDAwQTMzMzIgLyogRnJh
bWV3b3JrcyAqLywKKwkJCQlDMkJBNTQxQjFENTcyNUI0MDAwQTMzMzIgLyogQ29weUZpbGVzICov
LAorCQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAor
CQkJKTsKKwkJCW5hbWUgPSBnZW5icms7CisJCQlwcm9kdWN0TmFtZSA9IGdlbmJyazsKKwkJCXBy
b2R1Y3RSZWZlcmVuY2UgPSBDMkJBNTQxRDFENTcyNUI0MDAwQTMzMzIgLyogZ2VuYnJrICovOwor
CQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS50b29sIjsKKwkJfTsKIC8q
IEVuZCBQQlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhQcm9qZWN0IHNl
Y3Rpb24gKi8KQEAgLTE0ODUsNiArMTY2NywxMSBAQAogCQkJYXR0cmlidXRlcyA9IHsKIAkJCQlM
YXN0U3dpZnRVcGRhdGVDaGVjayA9IDA3MDA7CiAJCQkJTGFzdFVwZ3JhZGVDaGVjayA9IDA3MDA7
CisJCQkJVGFyZ2V0QXR0cmlidXRlcyA9IHsKKwkJCQkJQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMy
ID0geworCQkJCQkJQ3JlYXRlZE9uVG9vbHNWZXJzaW9uID0gNy4zLjE7CisJCQkJCX07CisJCQkJ
fTsKIAkJCX07CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNUQyNDdCNUMxNDY4OUI4NjAw
RTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV1RGIiAq
LzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDMuMiI7CkBAIC0xNTAwLDEyICsx
Njg3LDI4IEBACiAJCQl0YXJnZXRzID0gKAogCQkJCTVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NiAv
KiBXVEYgKi8sCiAJCQkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRl
cnMgKi8sCisJCQkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAq
LywKIAkJCQkxNDQ3QUVCRDE4RkNFNTY5MDBCM0Q3RkYgLyogbWJtYWxsb2MgKi8sCisJCQkJQzJC
QTU0MUMxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQg
UEJYUHJvamVjdCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFz
ZSBzZWN0aW9uICovCisJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJp
dmVkIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJ
aW5wdXRQYXRocyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNl
cyI7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlw
dCA9ICJta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZc
IlxuY2QgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcblxuL2Jp
bi9sbiAtc2ZoIFwiJHtTUkNST09UfVwiIFdURlxuZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsg
ISAtZCBCcmVha2luZ1J1bGVzIF07IHRoZW5cbiAgICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxu
XG5pZiBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdOyB0aGVu
XG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0wXG5lbHNlXG4gICAgZXhwb3J0
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0xXG5maVxuXG5pZiBbIFwiJHtBQ1RJT059XCIgPSBc
ImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtBQ1RJT059XCIg
PSBcImluc3RhbGxoZHJzXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGFwaVwiIF07IHRo
ZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwiV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5t
YWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCBTREtST09UPVwiJHtT
REtST09UfVwiXG5maSI7CisJCX07CiAJCTY1QUZBMTcwMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5
IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE1MzYsNiArMTczOSw4IEBACiAJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQThBNDcz
ODYxNTFBODI1QjAwNDEyM0ZGIC8qIEFzc2VydGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDc0MzUxNTFBODI1QjAwNDEyM0ZGIC8qIEF0b21pY1N0cmluZy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3MEVDQTYwRDFCMDI0MjY4MDA0NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUJBMTVGQTE4MjQzNUE2MDBBODJFNjkgLyogQXRvbWlj
U3RyaW5nSW1wbENGLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU2Myw2ICsxNzY4LDcgQEAKIAkJ
CQlBOEE0NzNCMDE1MUE4MjVCMDA0MTIzRkYgLyogZG91YmxlLWNvbnZlcnNpb24uY2MgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzNCQTE1MUE4MjVCMDA0MTIzRkYgLyogZHRvYS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzNCMzE1MUE4MjVCMDA0MTIzRkYgLyogZmFzdC1kdG9hLmNjIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4ODVFMEYxODQ1QUVB
OTAwRjFFM0ZBIC8qIEZhc3RCaXRWZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDcz
QzMxNTFBODI1QjAwNDEyM0ZGIC8qIEZhc3RNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RENFRTIyMDExQ0VBNzU1MTAwMEMyMzk2IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0gaW4gU291
cmNlcyAqLywKQEAgLTE1NzgsNiArMTc4NCw3IEBACiAJCQkJQThBNDczRTkxNTFBODI1QjAwNDEy
M0ZGIC8qIE1ENS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDU0OTdBQzE1ODU3RDAzMDBCNUJD
MzAgLyogTWVkaWFUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0VDMTUxQTgyNUIw
MDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0Yw
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y0MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNv
cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y3MTUxQTgyNUIwMDQxMjNGRiAvKiBP
U0FsbG9jYXRvclBvc2l4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y5MTUxQTgyNUIw
MDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1ODUsNiAr
MTc5Miw3IEBACiAJCQkJMUMxODFDOTMxRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJV
VEYxNi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkZGMTlEQzFCQjMzNEVCMDA4ODZEOTEgLyog
UGFyYWxsZWxIZWxwZXJQb29sLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGODI0QTY4MUI3NDQz
QTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VF
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGOUQzMzYyMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVh
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDNGNjExRjE1NjVGMEY5MDBEQjUxNEEgLyogUkFN
U2l6ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyog
UmFuZG9tTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTYxOSw5ICsxODI3LDEzIEBACiAJ
CQkJQThBNDc0NEExNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZGluZy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzQ0RTE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkaW5nUHRocmVhZHMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0NjkxNTFBODI1QjAwNDEyM0ZGIC8qIFVURjguY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRkE0N0M4
QTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkU0NDc5QzFCN0FBQTAzMDA5NDk4RUIgLyogV29yZExvY2suY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURD
RUUyMjAzMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNN
YWMubW0gaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzOTFB
OTYyNDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0QTBB
RDNEMUE5NjI1M0MwMDUzNkRGNiAvKiBXb3JrUXVldWVDb2NvYS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEE0NzQ0NTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMTYyOSw2ICsxODQxLDE3IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CisJCUMyQkE1NDE5MUQ1NzI1QjQwMDBBMzMzMiAv
KiBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CisJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJQzJCQTU0MzMxRDU3
MjkzODAwMEEzMzMyIC8qIHVvcHRpb25zLmMgaW4gU291cmNlcyAqLywKKwkJCQlDMkJBNTQzOTFE
NTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyBpbiBTb3VyY2VzICovLAorCQkJCUMyQkE1NDI1
MUQ1NzI1QzQwMDBBMzMzMiAvKiBnZW5icmsuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJCQTU0
MzYxRDU3MjlGRjAwMEEzMzMyIC8qIHVuZXdkYXRhLmMgaW4gU291cmNlcyAqLywKKwkJCSk7CisJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIC8qIEVuZCBQ
QlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFRhcmdldERlcGVu
ZGVuY3kgc2VjdGlvbiAqLwpAQCAtMTYzNywxMSArMTg2MCwyMSBAQAogCQkJdGFyZ2V0ID0gNUQy
NDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FF
QzMxOEZDRTU3MDAwQjNEN0ZGIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJ
MUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJ
CQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1
QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3
ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJ
NjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3
NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi87CiAJCQl0YXJnZXRQcm94eSA9IDY1QUZB
MjhEMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJ
CUMyQkE1NDNCMUQ1NzJCRUIwMDBBMzMzMiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewor
CQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IEMyQkE1NDFDMUQ1NzI1
QjQwMDBBMzMzMiAvKiBnZW5icmsgKi87CisJCQl0YXJnZXRQcm94eSA9IEMyQkE1NDNBMUQ1NzJC
RUIwMDBBMzMzMiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CisJCX07CiAvKiBFbmQgUEJY
VGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFhDQnVpbGRDb25maWd1cmF0
aW9uIHNlY3Rpb24gKi8KQEAgLTE2NjYsNiArMTg5OSwzMCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQ
cm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8g
PSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9u
UmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2Nv
bmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFS
R0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTFDRDE4Nzg1MUQ1
NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcw
MEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0g
eworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9
IFJlbGVhc2U7CisJCX07CisJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9u
ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJh
dGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2Uu
eGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIk
KFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVE
MjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRD
b25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0
Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOwpAQCAtMTczNiw2ICsx
OTkzLDIwNCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQlDMkJBNTQy
MjFENTcyNUI0MDAwQTMzMzIgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmln
dXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0
NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3Mg
PSB7CisJCQkJQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87CisJCQkJQ0xBTkdfQU5BTFla
RVJfTk9OTlVMTCA9IFlFUzsKKwkJCQlDTEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251
KysweCI7CisJCQkJQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKKwkJCQlDTEFOR19FTkFC
TEVfTU9EVUxFUyA9IFlFUzsKKwkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZRVM7CisJCQkJ
Q0xBTkdfV0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9DT05TVEFO
VF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRElSRUNUX09CSkNfSVNBX1VTQUdF
ID0gWUVTX0VSUk9SOworCQkJCUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKKwkJCQlDTEFO
R19XQVJOX0VOVU1fQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0lOVF9DT05WRVJT
SU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVTX0VSUk9SOwor
CQkJCUNMQU5HX1dBUk5fVU5SRUFDSEFCTEVfQ09ERSA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX19E
VVBMSUNBVEVfTUVUSE9EX01BVENIID0gWUVTOworCQkJCUNPREVfU0lHTl9JREVOVElUWSA9ICIt
IjsKKwkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87CisJCQkJREVCVUdfSU5GT1JNQVRJT05fRk9S
TUFUID0gZHdhcmY7CisJCQkJRU5BQkxFX1NUUklDVF9PQkpDX01TR1NFTkQgPSBZRVM7CisJCQkJ
RU5BQkxFX1RFU1RBQklMSVRZID0gWUVTOworCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0g
Z251OTk7CisJCQkJR0NDX0RZTkFNSUNfTk9fUElDID0gTk87CisJCQkJR0NDX05PX0NPTU1PTl9C
TE9DS1MgPSBZRVM7CisJCQkJR0NDX09QVElNSVpBVElPTl9MRVZFTCA9IDA7CisJCQkJR0NDX1BS
RVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKKwkJCQkJIkRFQlVHPTEiLAorCQkJCQkiVV9TSE9X
X0NQTFVTUExVU19BUEk9MSIsCisJCQkJCSIkKGluaGVyaXRlZCkiLAorCQkJCSk7CisJCQkJR0ND
X1dBUk5fNjRfVE9fMzJfQklUX0NPTlZFUlNJT04gPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9N
SVNTSU5HX1BST1RPVFlQRVMgPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9
IFlFU19FUlJPUjsKKwkJCQlHQ0NfV0FSTl9TSUdOX0NPTVBBUkUgPSBOTzsKKwkJCQlHQ0NfV0FS
Tl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURf
QVVUT1MgPSBZRVNfQUdHUkVTU0lWRTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZ
RVM7CisJCQkJR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU1BQ09TWF9ERVBM
T1lNRU5UX1RBUkdFVCA9IDEwLjExOworCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IFlFUzsK
KwkJCQlPTkxZX0FDVElWRV9BUkNIID0gWUVTOworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdF
VF9OQU1FKSI7CisJCQkJV0FSTklOR19DRkxBR1MgPSAoCisJCQkJCSItV2FsbCIsCisJCQkJCSIt
V2V4dHJhIiwKKwkJCQkJIi1XY2FzdC1xdWFsIiwKKwkJCQkJIi1XY2hhci1zdWJzY3JpcHRzIiwK
KwkJCQkJIi1XZXh0cmEtdG9rZW5zIiwKKwkJCQkJIi1XZm9ybWF0PTIiLAorCQkJCQkiLVdpbml0
LXNlbGYiLAorCQkJCQkiLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUiLAorCQkJCQkiLVdwYWNr
ZWQiLAorCQkJCQkiLVdwb2ludGVyLWFyaXRoIiwKKwkJCQkJIi1XcmVkdW5kYW50LWRlY2xzIiwK
KwkJCQkJIi1XdW5kZWYiLAorCQkJCQkiLVd3cml0ZS1zdHJpbmdzIiwKKwkJCQkJIi1XZXhpdC10
aW1lLWRlc3RydWN0b3JzIiwKKwkJCQkJIi1XZ2xvYmFsLWNvbnN0cnVjdG9ycyIsCisJCQkJCSIt
V3RhdXRvbG9naWNhbC1jb21wYXJlIiwKKwkJCQkJIi1XaW1wbGljaXQtZmFsbHRocm91Z2giLAor
CQkJCQkiLVduby1zaWduLWNvbXBhcmUiLAorCQkJCSk7CisJCQl9OworCQkJbmFtZSA9IERlYnVn
OworCQl9OworCQlDMkJBNTQyMzFENTcyNUI0MDAwQTMzMzIgLyogUmVsZWFzZSAqLyA9IHsKKwkJ
CWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVu
Y2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICov
OworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlBTFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMgPSBO
TzsKKwkJCQlDTEFOR19BTkFMWVpFUl9OT05OVUxMID0gWUVTOworCQkJCUNMQU5HX0NYWF9MQU5H
VUFHRV9TVEFOREFSRCA9ICJnbnUrKzB4IjsKKwkJCQlDTEFOR19DWFhfTElCUkFSWSA9ICJsaWJj
KysiOworCQkJCUNMQU5HX0VOQUJMRV9NT0RVTEVTID0gWUVTOworCQkJCUNMQU5HX0VOQUJMRV9P
QkpDX0FSQyA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0JPT0xfQ09OVkVSU0lPTiA9IFlFUzsKKwkJ
CQlDTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9E
SVJFQ1RfT0JKQ19JU0FfVVNBR0UgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9FTVBUWV9C
T0RZID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRU5VTV9DT05WRVJTSU9OID0gWUVTOworCQkJCUNM
QU5HX1dBUk5fSU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9PQkpDX1JPT1Rf
Q0xBU1MgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9VTlJFQUNIQUJMRV9DT0RFID0gWUVT
OworCQkJCUNMQU5HX1dBUk5fX0RVUExJQ0FURV9NRVRIT0RfTUFUQ0ggPSBZRVM7CisJCQkJQ09E
RV9TSUdOX0lERU5USVRZID0gIi0iOworCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBOTzsKKwkJCQlE
RUJVR19JTkZPUk1BVElPTl9GT1JNQVQgPSAiZHdhcmYtd2l0aC1kc3ltIjsKKwkJCQlFTkFCTEVf
TlNfQVNTRVJUSU9OUyA9IE5POworCQkJCUVOQUJMRV9TVFJJQ1RfT0JKQ19NU0dTRU5EID0gWUVT
OworCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251OTk7CisJCQkJR0NDX05PX0NPTU1P
Tl9CTE9DS1MgPSBZRVM7CisJCQkJR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKKwkJ
CQkJIlVfU0hPV19DUExVU1BMVVNfQVBJPTEiLAorCQkJCQkiJChERUJVR19ERUZJTkVTKSIsCisJ
CQkJCSIkKGluaGVyaXRlZCkiLAorCQkJCSk7CisJCQkJR0NDX1dBUk5fNjRfVE9fMzJfQklUX0NP
TlZFUlNJT04gPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9NSVNTSU5HX1BST1RPVFlQRVMgPSBO
TzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9IFlFU19FUlJPUjsKKwkJCQlHQ0Nf
V0FSTl9TSUdOX0NPTVBBUkUgPSBOTzsKKwkJCQlHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9S
ID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVNfQUdHUkVTU0lW
RTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5V
U0VEX1ZBUklBQkxFID0gWUVTOworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjEx
OworCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IE5POworCQkJCVBST0RVQ1RfTkFNRSA9ICIk
KFRBUkdFVF9OQU1FKSI7CisJCQkJV0FSTklOR19DRkxBR1MgPSAoCisJCQkJCSItV2FsbCIsCisJ
CQkJCSItV2V4dHJhIiwKKwkJCQkJIi1XY2FzdC1xdWFsIiwKKwkJCQkJIi1XY2hhci1zdWJzY3Jp
cHRzIiwKKwkJCQkJIi1XZXh0cmEtdG9rZW5zIiwKKwkJCQkJIi1XZm9ybWF0PTIiLAorCQkJCQki
LVdpbml0LXNlbGYiLAorCQkJCQkiLVdtaXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUiLAorCQkJCQki
LVdwYWNrZWQiLAorCQkJCQkiLVdwb2ludGVyLWFyaXRoIiwKKwkJCQkJIi1XcmVkdW5kYW50LWRl
Y2xzIiwKKwkJCQkJIi1XdW5kZWYiLAorCQkJCQkiLVd3cml0ZS1zdHJpbmdzIiwKKwkJCQkJIi1X
ZXhpdC10aW1lLWRlc3RydWN0b3JzIiwKKwkJCQkJIi1XZ2xvYmFsLWNvbnN0cnVjdG9ycyIsCisJ
CQkJCSItV3RhdXRvbG9naWNhbC1jb21wYXJlIiwKKwkJCQkJIi1XaW1wbGljaXQtZmFsbHRocm91
Z2giLAorCQkJCQkiLVduby1zaWduLWNvbXBhcmUiLAorCQkJCSk7CisJCQl9OworCQkJbmFtZSA9
IFJlbGVhc2U7CisJCX07CisJCUMyQkE1NDI0MUQ1NzI1QjQwMDBBMzMzMiAvKiBQcm9kdWN0aW9u
ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJh
dGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2Uu
eGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUFMV0FZU19TRUFSQ0hfVVNF
Ul9QQVRIUyA9IE5POworCQkJCUNMQU5HX0FOQUxZWkVSX05PTk5VTEwgPSBZRVM7CisJCQkJQ0xB
TkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJEID0gImdudSsrMHgiOworCQkJCUNMQU5HX0NYWF9MSUJS
QVJZID0gImxpYmMrKyI7CisJCQkJQ0xBTkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisJCQkJQ0xB
TkdfRU5BQkxFX09CSkNfQVJDID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQk9PTF9DT05WRVJTSU9O
ID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQ09OU1RBTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlD
TEFOR19XQVJOX0RJUkVDVF9PQkpDX0lTQV9VU0FHRSA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19X
QVJOX0VNUFRZX0JPRFkgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9FTlVNX0NPTlZFUlNJT04gPSBZ
RVM7CisJCQkJQ0xBTkdfV0FSTl9JTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJO
X09CSkNfUk9PVF9DTEFTUyA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX1VOUkVBQ0hBQkxF
X0NPREUgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9fRFVQTElDQVRFX01FVEhPRF9NQVRDSCA9IFlF
UzsKKwkJCQlDT0RFX1NJR05fSURFTlRJVFkgPSAiLSI7CisJCQkJQ09QWV9QSEFTRV9TVFJJUCA9
IE5POworCQkJCURFQlVHX0lORk9STUFUSU9OX0ZPUk1BVCA9ICJkd2FyZi13aXRoLWRzeW0iOwor
CQkJCUVOQUJMRV9OU19BU1NFUlRJT05TID0gTk87CisJCQkJRU5BQkxFX1NUUklDVF9PQkpDX01T
R1NFTkQgPSBZRVM7CisJCQkJR0NDX0NfTEFOR1VBR0VfU1RBTkRBUkQgPSBnbnU5OTsKKwkJCQlH
Q0NfTk9fQ09NTU9OX0JMT0NLUyA9IFlFUzsKKwkJCQlHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJ
T05TID0gKAorCQkJCQkiVV9TSE9XX0NQTFVTUExVU19BUEk9MSIsCisJCQkJCSIkKERFQlVHX0RF
RklORVMpIiwKKwkJCQkJIiQoaW5oZXJpdGVkKSIsCisJCQkJKTsKKwkJCQlHQ0NfV0FSTl82NF9U
T18zMl9CSVRfQ09OVkVSU0lPTiA9IE5POworCQkJCUdDQ19XQVJOX0FCT1VUX01JU1NJTkdfUFJP
VE9UWVBFUyA9IE5POworCQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9S
OworCQkJCUdDQ19XQVJOX1NJR05fQ09NUEFSRSA9IE5POworCQkJCUdDQ19XQVJOX1VOREVDTEFS
RURfU0VMRUNUT1IgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlF
U19BR0dSRVNTSVZFOworCQkJCUdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKKwkJCQlH
Q0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUID0gMTAuMTE7CisJCQkJTVRMX0VOQUJMRV9ERUJVR19JTkZPID0gTk87CisJCQkJUFJPRFVD
VF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCQlXQVJOSU5HX0NGTEFHUyA9ICgKKwkJCQkJ
Ii1XYWxsIiwKKwkJCQkJIi1XZXh0cmEiLAorCQkJCQkiLVdjYXN0LXF1YWwiLAorCQkJCQkiLVdj
aGFyLXN1YnNjcmlwdHMiLAorCQkJCQkiLVdleHRyYS10b2tlbnMiLAorCQkJCQkiLVdmb3JtYXQ9
MiIsCisJCQkJCSItV2luaXQtc2VsZiIsCisJCQkJCSItV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0
ZSIsCisJCQkJCSItV3BhY2tlZCIsCisJCQkJCSItV3BvaW50ZXItYXJpdGgiLAorCQkJCQkiLVdy
ZWR1bmRhbnQtZGVjbHMiLAorCQkJCQkiLVd1bmRlZiIsCisJCQkJCSItV3dyaXRlLXN0cmluZ3Mi
LAorCQkJCQkiLVdleGl0LXRpbWUtZGVzdHJ1Y3RvcnMiLAorCQkJCQkiLVdnbG9iYWwtY29uc3Ry
dWN0b3JzIiwKKwkJCQkJIi1XdGF1dG9sb2dpY2FsLWNvbXBhcmUiLAorCQkJCQkiLVdpbXBsaWNp
dC1mYWxsdGhyb3VnaCIsCisJCQkJCSItV25vLXNpZ24tY29tcGFyZSIsCisJCQkJKTsKKwkJCX07
CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIC8qIEVuZCBYQ0J1aWxkQ29uZmlndXJhdGlv
biBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFhDQ29uZmlndXJhdGlvbkxpc3Qgc2VjdGlvbiAqLwpA
QCAtMTc0OSw2ICsyMjA0LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9
IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkx
Q0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQ
QlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0Nv
bmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkxQ0QxODc4
NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3
REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1
Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwor
CQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdC
NUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJv
amVjdCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWls
ZENvbmZpZ3VyYXRpb25zID0gKApAQCAtMTc3OSw2ICsyMjQ0LDE2IEBACiAJCQlkZWZhdWx0Q29u
ZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQ
cm9kdWN0aW9uOwogCQl9OworCQlDMkJBNTQyMTFENTcyNUI0MDAwQTMzMzIgLyogQnVpbGQgY29u
ZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgImdlbmJyayIgKi8gPSB7CisJCQlp
c2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJ
CQlDMkJBNTQyMjFENTcyNUI0MDAwQTMzMzIgLyogRGVidWcgKi8sCisJCQkJQzJCQTU0MjMxRDU3
MjVCNDAwMEEzMzMyIC8qIFJlbGVhc2UgKi8sCisJCQkJQzJCQTU0MjQxRDU3MjVCNDAwMEEzMzMy
IC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2li
bGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsK
IC8qIEVuZCBYQ0NvbmZpZ3VyYXRpb25MaXN0IHNlY3Rpb24gKi8KIAl9OwogCXJvb3RPYmplY3Qg
PSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBvYmplY3QgKi87CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jya2l0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvYnJraXRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhYTVlNTUyNzk2MDkwZWFlYmNkN2NlN2I3ZDI3
NWFhOGIzNzc1YjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jy
a2l0ZXIuaApAQCAtMCwwICsxLDY1NSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
ICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgYnJraXRlci5oCisqCisqIE1vZGlmaWNh
dGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9u
CisqICAgMDIvMTgvOTcgICAgYWxpdSAgICAgICAgQWRkZWQgdHlwZWRlZiBmb3IgVGV4dENvdW50
LiAgTWFkZSBET05FIGNvbnN0LgorKiAgIDA1LzA3Lzk3ICAgIGFsaXUgICAgICAgIEZpeGVkIERM
TCBkZWNsYXJhdGlvbi4KKyogICAwNy8wOS85NyAgICBqZml0eiAgICAgICBSZW5hbWVkIEJyZWFr
SXRlcmF0b3IgYW5kIGludGVyZmFjZSBzeW5jZWQgd2l0aCBKREsKKyogICAwOC8xMS85OCAgICBo
ZWxlbmEgICAgICBTeW5jLXVwIEpESzEuMi4KKyogICAwMS8xMy8yMDAwICBoZWxlbmEgICAgICBB
ZGRlZCBVRXJyb3JDb2RlIHBhcmFtZXRlciB0byBjcmVhdGVYWFhJbnN0YW5jZSBtZXRob2RzLgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgQlJLSVRFUl9ICisjZGVmaW5l
IEJSS0lURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworLyoqCisgKiBcZmls
ZQorICogXGJyaWVmIEMrKyBBUEk6IEJyZWFrIEl0ZXJhdG9yLgorICovCisKKyNpZiBVQ09ORklH
X05PX0JSRUFLX0lURVJBVElPTgorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKgorICogQWxsb3cg
dGhlIGRlY2xhcmF0aW9uIG9mIEFQSXMgd2l0aCBwb2ludGVycyB0byBCcmVha0l0ZXJhdG9yCisg
KiBldmVuIHdoZW4gYnJlYWsgaXRlcmF0aW9uIGlzIHJlbW92ZWQgZnJvbSB0aGUgYnVpbGQuCisg
Ki8KK2NsYXNzIEJyZWFrSXRlcmF0b3I7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZWxzZQorCisj
aW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIK
KyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS9sb2NpZC5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdWJyay5oIgorI2luY2x1ZGUgInVuaWNvZGUvc3RyZW51bS5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdXRleHQuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VtaXNjLmgi
CisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogVGhlIEJyZWFrSXRlcmF0b3IgY2xhc3Mg
aW1wbGVtZW50cyBtZXRob2RzIGZvciBmaW5kaW5nIHRoZSBsb2NhdGlvbgorICogb2YgYm91bmRh
cmllcyBpbiB0ZXh0LiBCcmVha0l0ZXJhdG9yIGlzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MuCisg
KiBJbnN0YW5jZXMgb2YgQnJlYWtJdGVyYXRvciBtYWludGFpbiBhIGN1cnJlbnQgcG9zaXRpb24g
YW5kIHNjYW4gb3ZlcgorICogdGV4dCByZXR1cm5pbmcgdGhlIGluZGV4IG9mIGNoYXJhY3RlcnMg
d2hlcmUgYm91bmRhcmllcyBvY2N1ci4KKyAqIDxwPgorICogTGluZSBib3VuZGFyeSBhbmFseXNp
cyBkZXRlcm1pbmVzIHdoZXJlIGEgdGV4dCBzdHJpbmcgY2FuIGJlIGJyb2tlbgorICogd2hlbiBs
aW5lLXdyYXBwaW5nLiBUaGUgbWVjaGFuaXNtIGNvcnJlY3RseSBoYW5kbGVzIHB1bmN0dWF0aW9u
IGFuZAorICogaHlwaGVuYXRlZCB3b3Jkcy4KKyAqIDxwPgorICogU2VudGVuY2UgYm91bmRhcnkg
YW5hbHlzaXMgYWxsb3dzIHNlbGVjdGlvbiB3aXRoIGNvcnJlY3QKKyAqIGludGVycHJldGF0aW9u
IG9mIHBlcmlvZHMgd2l0aGluIG51bWJlcnMgYW5kIGFiYnJldmlhdGlvbnMsIGFuZAorICogdHJh
aWxpbmcgcHVuY3R1YXRpb24gbWFya3Mgc3VjaCBhcyBxdW90YXRpb24gbWFya3MgYW5kIHBhcmVu
dGhlc2VzLgorICogPHA+CisgKiBXb3JkIGJvdW5kYXJ5IGFuYWx5c2lzIGlzIHVzZWQgYnkgc2Vh
cmNoIGFuZCByZXBsYWNlIGZ1bmN0aW9ucywgYXMKKyAqIHdlbGwgYXMgd2l0aGluIHRleHQgZWRp
dGluZyBhcHBsaWNhdGlvbnMgdGhhdCBhbGxvdyB0aGUgdXNlciB0bworICogc2VsZWN0IHdvcmRz
IHdpdGggYSBkb3VibGUgY2xpY2suIFdvcmQgc2VsZWN0aW9uIHByb3ZpZGVzIGNvcnJlY3QKKyAq
IGludGVycHJldGF0aW9uIG9mIHB1bmN0dWF0aW9uIG1hcmtzIHdpdGhpbiBhbmQgZm9sbG93aW5n
CisgKiB3b3Jkcy4gQ2hhcmFjdGVycyB0aGF0IGFyZSBub3QgcGFydCBvZiBhIHdvcmQsIHN1Y2gg
YXMgc3ltYm9scyBvcgorICogcHVuY3R1YXRpb24gbWFya3MsIGhhdmUgd29yZC1icmVha3Mgb24g
Ym90aCBzaWRlcy4KKyAqIDxwPgorICogQ2hhcmFjdGVyIGJvdW5kYXJ5IGFuYWx5c2lzIGFsbG93
cyB1c2VycyB0byBpbnRlcmFjdCB3aXRoCisgKiBjaGFyYWN0ZXJzIGFzIHRoZXkgZXhwZWN0IHRv
LCBmb3IgZXhhbXBsZSwgd2hlbiBtb3ZpbmcgdGhlIGN1cnNvcgorICogdGhyb3VnaCBhIHRleHQg
c3RyaW5nLiBDaGFyYWN0ZXIgYm91bmRhcnkgYW5hbHlzaXMgcHJvdmlkZXMgY29ycmVjdAorICog
bmF2aWdhdGlvbiBvZiB0aHJvdWdoIGNoYXJhY3RlciBzdHJpbmdzLCByZWdhcmRsZXNzIG9mIGhv
dyB0aGUKKyAqIGNoYXJhY3RlciBpcyBzdG9yZWQuICBGb3IgZXhhbXBsZSwgYW4gYWNjZW50ZWQg
Y2hhcmFjdGVyIG1pZ2h0IGJlCisgKiBzdG9yZWQgYXMgYSBiYXNlIGNoYXJhY3RlciBhbmQgYSBk
aWFjcml0aWNhbCBtYXJrLiBXaGF0IHVzZXJzCisgKiBjb25zaWRlciB0byBiZSBhIGNoYXJhY3Rl
ciBjYW4gZGlmZmVyIGJldHdlZW4gbGFuZ3VhZ2VzLgorICogPHA+CisgKiBUaGUgdGV4dCBib3Vu
ZGFyeSBwb3NpdGlvbnMgYXJlIGZvdW5kIGFjY29yZGluZyB0byB0aGUgcnVsZXMKKyAqIGRlc2Ny
aWJlZCBpbiBVbmljb2RlIFN0YW5kYXJkIEFubmV4ICMyOSwgVGV4dCBCb3VuZGFyaWVzLCBhbmQK
KyAqIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXggIzE0LCBMaW5lIEJyZWFraW5nIFByb3BlcnRpZXMu
ICBUaGVzZQorICogYXJlIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9y
dHMvdHIxNC8gYW5kCisgKiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIyOS8uCisg
KiA8cD4KKyAqIEluIGFkZGl0aW9uIHRvIHRoZSBDKysgQVBJIGRlZmluZWQgaW4gdGhpcyBoZWFk
ZXIgZmlsZSwgYQorICogcGxhaW4gQyBBUEkgd2l0aCBlcXVpdmFsZW50IGZ1bmN0aW9uYWxpdHkg
aXMgZGVmaW5lZCBpbiB0aGUKKyAqIGZpbGUgdWJyay5oCisgKiA8cD4KKyAqIENvZGUgc25pcHBl
dHMgaWxsdXN0cmF0aW5nIHRoZSB1c2Ugb2YgdGhlIEJyZWFrIEl0ZXJhdG9yIEFQSXMKKyAqIGFy
ZSBhdmFpbGFibGUgaW4gdGhlIElDVSBVc2VyIEd1aWRlLAorICogaHR0cDovL2ljdS1wcm9qZWN0
Lm9yZy91c2VyZ3VpZGUvYm91bmRhcnlBbmFseXNpcy5odG1sCisgKiBhbmQgaW4gdGhlIHNhbXBs
ZSBwcm9ncmFtIGljdS9zb3VyY2Uvc2FtcGxlcy9icmVhay9icmVhay5jcHAKKyAqCisgKi8KK2Ns
YXNzIFVfQ09NTU9OX0FQSSBCcmVha0l0ZXJhdG9yIDogcHVibGljIFVPYmplY3QgeworcHVibGlj
OgorICAgIC8qKgorICAgICAqICBkZXN0cnVjdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgfkJyZWFrSXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAq
IFJldHVybiB0cnVlIGlmIGFub3RoZXIgb2JqZWN0IGlzIHNlbWFudGljYWxseSBlcXVhbCB0byB0
aGlzCisgICAgICogb25lLiBUaGUgb3RoZXIgb2JqZWN0IHNob3VsZCBiZSBhbiBpbnN0YW5jZSBv
ZiB0aGUgc2FtZSBzdWJjbGFzcyBvZgorICAgICAqIEJyZWFrSXRlcmF0b3IuIE9iamVjdHMgb2Yg
ZGlmZmVyZW50IHN1YmNsYXNzZXMgYXJlIGNvbnNpZGVyZWQKKyAgICAgKiB1bmVxdWFsLgorICAg
ICAqIDxQPgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMgQnJlYWtJdGVyYXRvciBpcyBhdCB0
aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUKKyAgICAgKiBzYW1lIHRleHQsIGFuZCBpcyB0aGUgc2Ft
ZSBjbGFzcyBhbmQgdHlwZSAod29yZCwgbGluZSwgZXRjLikgb2YKKyAgICAgKiBCcmVha0l0ZXJh
dG9yLCBhcyB0aGUgYXJndW1lbnQuICBUZXh0IGlzIGNvbnNpZGVyZWQgdGhlIHNhbWUgaWYKKyAg
ICAgKiBpdCBjb250YWlucyB0aGUgc2FtZSBjaGFyYWN0ZXJzLCBpdCBuZWVkIG5vdCBiZSB0aGUg
c2FtZQorICAgICAqIG9iamVjdCwgYW5kIHN0eWxlcyBhcmUgbm90IGNvbnNpZGVyZWQuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09
KGNvbnN0IEJyZWFrSXRlcmF0b3ImKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHRoZSBjb21wbGVtZW50IG9mIHRoZSByZXN1bHQgb2Ygb3BlcmF0b3I9PQorICAgICAqIEBw
YXJhbSByaHMgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGluZXF1YWxpdHkK
KyAgICAgKiBAcmV0dXJuIHRoZSBjb21wbGVtZW50IG9mIHRoZSByZXN1bHQgb2Ygb3BlcmF0b3I9
PQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29sIG9wZXJhdG9yIT0o
Y29uc3QgQnJlYWtJdGVyYXRvciYgcmhzKSBjb25zdCB7IHJldHVybiAhb3BlcmF0b3I9PShyaHMp
OyB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBwb2x5bW9ycGhpYyBjb3B5IG9mIHRoaXMg
b2JqZWN0LiAgVGhpcyBpcyBhbiBhYnN0cmFjdAorICAgICAqIG1ldGhvZCB3aGljaCBzdWJjbGFz
c2VzIGltcGxlbWVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIEJyZWFrSXRlcmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAg
ICAqIFJldHVybiBhIHBvbHltb3JwaGljIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4gRGlmZmVy
ZW50IHN1YmNsYXNzZXMKKyAgICAgKiB3aWxsIHJldHVybiBkaXN0aW5jdCB1bmVxdWFsIHZhbHVl
cy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lE
IGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFJl
dHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBDaGFyYWN0ZXJJdGVy
YXRvciYgZ2V0VGV4dCh2b2lkKSBjb25zdCA9IDA7CisKKworICAgIC8qKgorICAgICAgKiAgR2V0
IGEgVVRleHQgZm9yIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAgKiAgVGhlIHJldHVy
bmVkIFVUZXh0IGlzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgVVRleHQgdXNlZCBpbnRlcm5hbGx5
CisgICAgICAqICBieSB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24uICBJdCBjYW4g
c2FmZWx5IGJlIHVzZWQgdG8KKyAgICAgICogIGFjY2VzcyB0aGUgdGV4dCB3aXRob3V0IGltcGFj
dGluZyBhbnkgYnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucywKKyAgICAgICogIGJ1dCB0aGUgdW5k
ZXJseWluZyB0ZXh0IGl0c2VsZiBtdXN0IG5vdCBiZSBhbHRlcmVkLgorICAgICAgKgorICAgICAg
KiBAcGFyYW0gZmlsbEluIEEgVVRleHQgdG8gYmUgZmlsbGVkIGluLiAgSWYgTlVMTCwgYSBuZXcg
VVRleHQgd2lsbCBiZQorICAgICAgKiAgICAgICAgICAgYWxsb2NhdGVkIHRvIGhvbGQgdGhlIHJl
c3VsdC4KKyAgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMuCisg
ICAgICAqIEByZXR1cm4gICBUaGUgY3VycmVudCBVVGV4dCBmb3IgdGhpcyBicmVhayBpdGVyYXRv
ci4gIElmIGFuIGlucHV0CisgICAgICAqICAgICAgICAgICBVVGV4dCB3YXMgcHJvdmlkZWQsIGl0
IHdpbGwgYWx3YXlzIGJlIHJldHVybmVkLgorICAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAg
ICovCisgICAgIHZpcnR1YWwgVVRleHQgKmdldFVUZXh0KFVUZXh0ICpmaWxsSW4sIFVFcnJvckNv
ZGUgJnN0YXR1cykgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogQ2hhbmdlIHRoZSB0ZXh0
IG92ZXIgd2hpY2ggdGhpcyBvcGVyYXRlcy4gVGhlIHRleHQgYm91bmRhcnkgaXMKKyAgICAgKiBy
ZXNldCB0byB0aGUgc3RhcnQuCisgICAgICogQHBhcmFtIHRleHQgVGhlIFVuaWNvZGVTdHJpbmcg
dXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCB2b2lkICBzZXRUZXh0KGNvbnN0IFVuaWNvZGVTdHJpbmcgJnRleHQpID0g
MDsKKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBicmVhayBpdGVyYXRvciB0byBvcGVyYXRl
IG92ZXIgdGhlIHRleHQgcmVwcmVzZW50ZWQgYnkKKyAgICAgKiB0aGUgVVRleHQuICBUaGUgaXRl
cmF0b3IgcG9zaXRpb24gaXMgcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqCisgICAgICogVGhp
cyBmdW5jdGlvbiBtYWtlcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIHN1cHBsaWVkIFVUZXh0LiAg
VGhpcyBtZWFucworICAgICAqIHRoYXQgdGhlIGNhbGxlciBpcyBmcmVlIHRvIGltbWVkaWF0ZWx5
IGNsb3NlIG9yIG90aGVyd2lzZSByZXVzZSB0aGUKKyAgICAgKiBVdGV4dCB0aGF0IHdhcyBwYXNz
ZWQgYXMgYSBwYXJhbWV0ZXIsIGJ1dCB0aGF0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmCisg
ICAgICogbXVzdCBub3QgYmUgYWx0ZXJlZCB3aGlsZSBiZWluZyByZWZlcmVuY2VkIGJ5IHRoZSBi
cmVhayBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIEFsbCBpbmRleCBwb3NpdGlvbnMgcmV0dXJu
ZWQgYnkgYnJlYWsgaXRlcmF0b3IgZnVuY3Rpb25zIGFyZQorICAgICAqIG5hdGl2ZSBpbmRpY2Vz
IGZyb20gdGhlIFVUZXh0LiBGb3IgZXhhbXBsZSwgd2hlbiBicmVha2luZyBVVEYtOAorICAgICAq
IGVuY29kZWQgdGV4dCwgdGhlIGJyZWFrIHBvc2l0aW9ucyByZXR1cm5lZCBieSBuZXh0KCksIHBy
ZXZpb3VzKCksIGV0Yy4KKyAgICAgKiB3aWxsIGJlIFVURi04IHN0cmluZyBpbmRpY2VzLCBub3Qg
VVRGLTE2IHBvc2l0aW9ucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBVVGV4dCB1
c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFu
eSBlcnJvciBjb2Rlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIHZvaWQgIHNldFRleHQoVVRleHQgKnRleHQsIFVFcnJvckNvZGUgJnN0YXR1cykgPSAwOwor
CisgICAgLyoqCisgICAgICogQ2hhbmdlIHRoZSB0ZXh0IG92ZXIgd2hpY2ggdGhpcyBvcGVyYXRl
cy4gVGhlIHRleHQgYm91bmRhcnkgaXMKKyAgICAgKiByZXNldCB0byB0aGUgc3RhcnQuCisgICAg
ICogTm90ZSB0aGF0IHNldFRleHQoVVRleHQgKikgcHJvdmlkZXMgc2ltaWxhciBmdW5jdGlvbmFs
aXR5IHRvIHRoaXMgZnVuY3Rpb24sCisgICAgICogYW5kIGlzIG1vcmUgZWZmaWNpZW50LgorICAg
ICAqIEBwYXJhbSBpdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgdXNlZCB0byBjaGFuZ2UgdGhlIHRl
eHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBh
ZG9wdFRleHQoQ2hhcmFjdGVySXRlcmF0b3IqIGl0KSA9IDA7CisKKyAgICBlbnVtIHsKKyAgICAg
ICAgLyoqCisgICAgICAgICAqIERPTkUgaXMgcmV0dXJuZWQgYnkgcHJldmlvdXMoKSBhbmQgbmV4
dCgpIGFmdGVyIGFsbCB2YWxpZAorICAgICAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1
cm5lZC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBE
T05FID0gKGludDMyX3QpLTEKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3Vy
cmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgcG9z
aXRpb24gemVyby4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZzZXQgb2YgdGhlIGJlZ2lubmluZyBv
ZiB0aGUgdGV4dCwgemVyby4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgZmlyc3Qodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRo
ZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgaW5kZXggaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBs
YXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCBiZWluZyBzY2FubmVkLgorICAgICAqIEByZXR1cm4g
VGhlIGluZGV4IGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRl
eHQgYmVpbmcgc2Nhbm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgbGFzdCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhl
IGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIGN1cnJlbnQg
Ym91bmRhcnkuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBwcmV2
aW91cyB0ZXh0IGJvdW5kYXJ5IG9yIERPTkUgaWYgYWxsCisgICAgICogYm91bmRhcmllcyBoYXZl
IGJlZW4gcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBpbnQzMl90IHByZXZpb3VzKHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIEFkdmFu
Y2UgdGhlIGl0ZXJhdG9yIHRvIHRoZSBib3VuZGFyeSBmb2xsb3dpbmcgdGhlIGN1cnJlbnQgYm91
bmRhcnkuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBuZXh0IHRl
eHQgYm91bmRhcnkgb3IgRE9ORSBpZiBhbGwKKyAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiBy
ZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGlu
dDMyX3QgbmV4dCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gY2hhcmFjdGVy
IGluZGV4IG9mIHRoZSBjdXJyZW50IGludGVyYXRvciBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQu
CisgICAgICogQHJldHVybiBUaGUgYm91bmRhcnkgbW9zdCByZWNlbnRseSByZXR1cm5lZC4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgY3VycmVu
dCh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlIHRoZSBpdGVyYXRv
ciB0byB0aGUgZmlyc3QgYm91bmRhcnkgZm9sbG93aW5nIHRoZSBzcGVjaWZpZWQgb2Zmc2V0Lgor
ICAgICAqIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhbHdheXMgZ3JlYXRlciB0aGFuIHRoZSBvZmZz
ZXQgb3IKKyAgICAgKiB0aGUgdmFsdWUgQnJlYWtJdGVyYXRvci5ET05FCisgICAgICogQHBhcmFt
IG9mZnNldCB0aGUgb2Zmc2V0IHRvIGJlZ2luIHNjYW5uaW5nLgorICAgICAqIEByZXR1cm4gVGhl
IGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmb2xsb3dpbmcoaW50MzJf
dCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRp
b24gdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHByZWNlZGluZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4K
KyAgICAgKiBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgYWx3YXlzIHNtYWxsZXIgdGhhbiB0aGUgb2Zm
c2V0IG9yCisgICAgICogdGhlIHZhbHVlIEJyZWFrSXRlcmF0b3IuRE9ORQorICAgICAqIEBwYXJh
bSBvZmZzZXQgdGhlIG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KKyAgICAgKiBAcmV0dXJuIFRo
ZSBmaXJzdCBib3VuZGFyeSBiZWZvcmUgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHByZWNlZGluZyhpbnQz
Ml90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHNw
ZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogQXMgYSBzaWRl
IGVmZmVjdCwgdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdG9yIGlzIHNldAorICAg
ICAqIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBhdCBvciBmb2xsb3dpbmcgdGhlIHNw
ZWNpZmllZCBvZmZzZXQuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNr
LgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9u
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNC
b3VuZGFyeShpbnQzMl90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBp
dGVyYXRvciBwb3NpdGlvbiB0byB0aGUgbnRoIGJvdW5kYXJ5IGZyb20gdGhlIGN1cnJlbnQgYm91
bmRhcnkKKyAgICAgKiBAcGFyYW0gbiB0aGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgdG8gbW92ZSBi
eS4gIEEgdmFsdWUgb2YgMAorICAgICAqIGRvZXMgbm90aGluZy4gIE5lZ2F0aXZlIHZhbHVlcyBt
b3ZlIHRvIHByZXZpb3VzIGJvdW5kYXJpZXMKKyAgICAgKiBhbmQgcG9zaXRpdmUgdmFsdWVzIG1v
dmUgdG8gbGF0ZXIgYm91bmRhcmllcy4KKyAgICAgKiBAcmV0dXJuIFRoZSBuZXcgaXRlcmF0b3Ig
cG9zaXRpb24sIG9yCisgICAgICogRE9ORSBpZiB0aGVyZSBhcmUgZmV3ZXIgdGhhbiB8bnwgYm91
bmRhcmllcyBpbiB0aGUgc3BlY2ZpZWQgZGlyZWN0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KGludDMyX3QgbikgPSAwOworCisg
ICAvKioKKyAgICAgKiBGb3IgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcnMsIHJldHVybiB0aGUgc3Rh
dHVzIHRhZyBmcm9tIHRoZSAKKyAgICAgKiBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUg
bW9zdCByZWNlbnRseQorICAgICAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIDxw
PgorICAgICAqIEZvciBicmVhayBpdGVyYXRvciB0eXBlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IGEg
cnVsZSBzdGF0dXMsCisgICAgICogYSBkZWZhdWx0IHZhbHVlIG9mIDAgaXMgcmV0dXJuZWQuCisg
ICAgICogPHA+CisgICAgICogQHJldHVybiB0aGUgc3RhdHVzIGZyb20gdGhlIGJyZWFrIHJ1bGUg
dGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogICAgICAgICByZXR1cm5l
ZCBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAc2VlIFJ1bGVCYXNlQnJlYWtJdGVyYXRvcjo6Z2V0
UnVsZVN0YXR1cygpCisgICAgICogQHNlZSBVV29yZEJyZWFrCisgICAgICogQHN0YWJsZSBJQ1Ug
NTIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1cygpIGNvbnN0Owor
CisgICAvKioKKyAgICAqIEZvciBSdWxlQmFzZWRCcmVha0l0ZXJhdG9ycywgZ2V0IHRoZSBzdGF0
dXMgKHRhZykgdmFsdWVzIGZyb20gdGhlIGJyZWFrIHJ1bGUocykgCisgICAgKiB0aGF0IGRldGVy
bWluZWQgdGhlIG1vc3QgcmVjZW50bHkgcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgKiA8
cD4KKyAgICAqIEZvciBicmVhayBpdGVyYXRvciB0eXBlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IHJ1
bGUgc3RhdHVzLAorICAgICogbm8gdmFsdWVzIGFyZSByZXR1cm5lZC4KKyAgICAqIDxwPgorICAg
ICogVGhlIHJldHVybmVkIHN0YXR1cyB2YWx1ZShzKSBhcmUgc3RvcmVkIGludG8gYW4gYXJyYXkg
cHJvdmlkZWQgYnkgdGhlIGNhbGxlci4KKyAgICAqIFRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiBz
b3J0ZWQgKGFzY2VuZGluZykgb3JkZXIuCisgICAgKiBJZiB0aGUgY2FwYWNpdHkgb2YgdGhlIG91
dHB1dCBhcnJheSBpcyBpbnN1ZmZpY2llbnQgdG8gaG9sZCB0aGUgZGF0YSwKKyAgICAqICB0aGUg
b3V0cHV0IHdpbGwgYmUgdHJ1bmNhdGVkIHRvIHRoZSBhdmFpbGFibGUgbGVuZ3RoLCBhbmQgYQor
ICAgICogIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SIHdpbGwgYmUgc2lnbmFsZWQuCisgICAgKiA8
cD4KKyAgICAqIEBzZWUgUnVsZUJhc2VCcmVha0l0ZXJhdG9yOjpnZXRSdWxlU3RhdHVzVmVjCisg
ICAgKgorICAgICogQHBhcmFtIGZpbGxJblZlYyBhbiBhcnJheSB0byBiZSBmaWxsZWQgaW4gd2l0
aCB0aGUgc3RhdHVzIHZhbHVlcy4KKyAgICAqIEBwYXJhbSBjYXBhY2l0eSAgdGhlIGxlbmd0aCBv
ZiB0aGUgc3VwcGxpZWQgdmVjdG9yLiAgQSBsZW5ndGggb2YgemVybyBjYXVzZXMKKyAgICAqICAg
ICAgICAgICAgICAgICAgdGhlIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXR1
cyB2YWx1ZXMsIGluIHRoZQorICAgICogICAgICAgICAgICAgICAgICBub3JtYWwgd2F5LCB3aXRo
b3V0IGF0dGVtdHBpbmcgdG8gc3RvcmUgYW55IHZhbHVlcy4KKyAgICAqIEBwYXJhbSBzdGF0dXMg
ICAgcmVjZWl2ZXMgZXJyb3IgY29kZXMuCisgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBudW1i
ZXIgb2YgcnVsZSBzdGF0dXMgdmFsdWVzIGZyb20gcnVsZXMgdGhhdCBkZXRlcm1pbmVkCisgICAg
KiAgICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJlY2VudCBib3VuZGFyeSByZXR1cm5lZCBieSB0
aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgKiAgICAgICAgICAgICAgICAgIEluIHRoZSBldmVudCBv
ZiBhIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SLCB0aGUgcmV0dXJuIHZhbHVlCisgICAgKiAgICAg
ICAgICAgICAgICAgIGlzIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcyB0aGF0IHdl
cmUgYXZhaWxhYmxlLAorICAgICogICAgICAgICAgICAgICAgICBub3QgdGhlIHJlZHVjZWQgbnVt
YmVyIHRoYXQgd2VyZSBhY3R1YWxseSByZXR1cm5lZC4KKyAgICAqIEBzZWUgZ2V0UnVsZVN0YXR1
cworICAgICogQHN0YWJsZSBJQ1UgNTIKKyAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRS
dWxlU3RhdHVzVmVjKGludDMyX3QgKmZpbGxJblZlYywgaW50MzJfdCBjYXBhY2l0eSwgVUVycm9y
Q29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZv
ciB3b3JkLWJyZWFrcyB1c2luZyB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIFJldHVybnMgYW4g
aW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyB3b3JkIGJyZWFrcy4KKyAg
ICAgKiBXb3JkQnJlYWsgaXMgdXNlZnVsIGZvciB3b3JkIHNlbGVjdGlvbiAoZXguIGRvdWJsZSBj
bGljaykKKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3Rh
dHVzIHRoZSBlcnJvciBjb2RlCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHdv
cmQtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1
c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8g
Y2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91
bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lz
aCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGlu
Zm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgor
ICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFj
ayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1
ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1
c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQg
bG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2Fs
ZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5k
LgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNw
b25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZVdvcmRJbnN0
YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoq
CisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIGxpbmUtYnJlYWtzIHVzaW5nIHNwZWNp
ZmllZCBsb2NhbGUuCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0
b3IgaW1wbGVtZW50aW5nIGxpbmUgYnJlYWtzLiBMaW5lCisgICAgICogYnJlYWtzIGFyZSBsb2dp
Y2FsbHkgcG9zc2libGUgbGluZSBicmVha3MsIGFjdHVhbCBsaW5lIGJyZWFrcyBhcmUKKyAgICAg
KiB1c3VhbGx5IGRldGVybWluZWQgYmFzZWQgb24gZGlzcGxheSB3aWR0aC4KKyAgICAgKiBMaW5l
QnJlYWsgaXMgdXNlZnVsIGZvciB3b3JkIHdyYXBwaW5nIHRleHQuCisgICAgICogQHBhcmFtIHdo
ZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAg
ICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3IgbGluZS1icmVha3MuICBUaGUgVUVycm9y
Q29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBp
bmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25z
dHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2
YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3Jt
YXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1
bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFD
S19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZv
cgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2Fz
IGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRf
V0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAg
KiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwg
YmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBv
d25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBp
dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVy
YXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlTGluZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hl
cmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJ
dGVyYXRvciBmb3IgY2hhcmFjdGVyLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxlCisgICAg
ICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIGNo
YXJhY3RlciBicmVha3MuCisgICAgICogQ2hhcmFjdGVyIGJyZWFrcyBhcmUgYm91bmRhcmllcyBv
ZiBjb21iaW5pbmcgY2hhcmFjdGVyIHNlcXVlbmNlcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhl
IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEBy
ZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciBjaGFyYWN0ZXItYnJlYWtzLiAgVGhlIFVFcnJvckNv
ZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5m
b3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3Ry
dWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFs
dWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0
aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0
cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tf
V0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IK
KyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBm
b3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dB
Uk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICog
dXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJh
Y2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3du
cyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0
b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZUNoYXJhY3Rlckluc3RhbmNlKGNvbnN0IExvY2FsZSYg
d2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJl
YWtJdGVyYXRvciBmb3Igc2VudGVuY2UtYnJlYWtzIHVzaW5nIHNwZWNpZmllZCBsb2NhbGUKKyAg
ICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcg
c2VudGVuY2UgYnJlYWtzLgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAq
IEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRl
cmF0b3IgZm9yIHNlbnRlbmNlLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAg
KiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1
c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQg
b3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhl
cnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICog
Y2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5k
aWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVz
IHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwg
J2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdk
ZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0
aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhl
IHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAg
KiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9i
amVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAg
ICBjcmVhdGVTZW50ZW5jZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUm
IHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3IgdGl0
bGUtY2FzaW5nIGJyZWFrcyB1c2luZyB0aGUgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVy
bnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyB0aXRsZSBicmVh
a3MuCisgICAgICogVGhlIGl0ZXJhdG9yIHJldHVybmVkIGxvY2F0ZXMgdGl0bGUgYm91bmRhcmll
cyBhcyBkZXNjcmliZWQgZm9yCisgICAgICogVW5pY29kZSAzLjIgb25seS4gRm9yIFVuaWNvZGUg
NC4wIGFuZCBhYm92ZSB0aXRsZSBib3VuZGFyeSBpdGVyYXRpb24sCisgICAgICogcGxlYXNlIHVz
ZSBXb3JkIEJvdW5kYXJ5IGl0ZXJhdG9yLntAbGluayAjY3JlYXRlV29yZEluc3RhbmNlIH0KKyAg
ICAgKgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0
dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHRp
dGxlLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMg
dXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRv
IGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hv
dWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdp
c2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBp
bmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4K
KyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJh
Y2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVx
dWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICog
dXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0
IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2Nh
bGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3Vu
ZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVz
cG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAq
LworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVUaXRsZUlu
c3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAv
KioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBMb2NhbGVzIGZvciB3aGljaCBUZXh0Qm91bmRhcmll
cyBhcmUgaW5zdGFsbGVkLgorICAgICAqIDxwPjxiPk5vdGU6PC9iPiB0aGlzIHdpbGwgbm90IHJl
dHVybiBsb2NhbGVzIGFkZGVkIHRocm91Z2ggdGhlIHJlZ2lzdGVyCisgICAgICogY2FsbC4gVG8g
c2VlIHRoZSByZWdpc3RlcmVkIGxvY2FsZXMgdG9vLCB1c2UgdGhlIGdldEF2YWlsYWJsZUxvY2Fs
ZXMKKyAgICAgKiBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBTdHJpbmdFbnVtZXJhdGlvbiBvYmpl
Y3QgPC9wPgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgb3V0cHV0IHBhcmFtZXRlciBvZiBudW1i
ZXIgb2YgZWxlbWVudHMgaW4gdGhlIGxvY2FsZSBsaXN0CisgICAgICogQHJldHVybiBhdmFpbGFi
bGUgbG9jYWxlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUqIFVfRVhQT1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIGNvdW50
KTsKKworICAgIC8qKgorICAgICAqIEdldCBuYW1lIG9mIHRoZSBvYmplY3QgZm9yIHRoZSBkZXNp
cmVkIExvY2FsZSwgaW4gdGhlIGRlc2lyZWQgbGFuZ2F1Z2UuCisgICAgICogQHBhcmFtIG9iamVj
dExvY2FsZSBtdXN0IGJlIGZyb20gZ2V0QXZhaWxhYmxlTG9jYWxlcy4KKyAgICAgKiBAcGFyYW0g
ZGlzcGxheUxvY2FsZSBzcGVjaWZpZXMgdGhlIGRlc2lyZWQgbG9jYWxlIGZvciBvdXRwdXQuCisg
ICAgICogQHBhcmFtIG5hbWUgdGhlIGZpbGwtaW4gcGFyYW1ldGVyIG9mIHRoZSByZXR1cm4gdmFs
dWUKKyAgICAgKiBVc2VzIGJlc3QgbWF0Y2guCisgICAgICogQHJldHVybiB1c2VyLWRpc3BsYXlh
YmxlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgVW5p
Y29kZVN0cmluZyYgVV9FWFBPUlQyIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgb2JqZWN0
TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBM
b2NhbGUmIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVuaWNvZGVTdHJpbmcmIG5hbWUpOworCisgICAgLyoqCisgICAgICogR2V0IG5hbWUg
b2YgdGhlIG9iamVjdCBmb3IgdGhlIGRlc2lyZWQgTG9jYWxlLCBpbiB0aGUgbGFuZ2F1Z2Ugb2Yg
dGhlCisgICAgICogZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSBt
dXN0IGJlIGZyb20gZ2V0TWF0Y2hpbmdMb2NhbGVzCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGZp
bGwtaW4gcGFyYW1ldGVyIG9mIHRoZSByZXR1cm4gdmFsdWUKKyAgICAgKiBAcmV0dXJuIHVzZXIt
ZGlzcGxheWFibGUgbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0
YXRpYyBVbmljb2RlU3RyaW5nJiBVX0VYUE9SVDIgZ2V0RGlzcGxheU5hbWUoY29uc3QgTG9jYWxl
JiBvYmplY3RMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVuaWNvZGVTdHJpbmcmIG5hbWUpOworCisgICAgLyoqCisgICAgICogRGVwcmVjYXRlZCBmdW5j
dGlvbmFsaXR5LiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisgICAgICogVGhyZWFkIHNh
ZmUgY2xpZW50LWJ1ZmZlci1iYXNlZCBjbG9uaW5nIG9wZXJhdGlvbgorICAgICAqICAgIERvIE5P
VCBjYWxsIGRlbGV0ZSBvbiBhIHNhZmVjbG9uZSwgc2luY2UgJ25ldycgaXMgbm90IHVzZWQgdG8g
Y3JlYXRlIGl0LgorICAgICAqIEBwYXJhbSBzdGFja0J1ZmZlciB1c2VyIGFsbG9jYXRlZCBzcGFj
ZSBmb3IgdGhlIG5ldyBjbG9uZS4gSWYgTlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVk
LgorICAgICAqIElmIGJ1ZmZlciBpcyBub3QgbGFyZ2UgZW5vdWdoLCBuZXcgbWVtb3J5IHdpbGwg
YmUgYWxsb2NhdGVkLgorICAgICAqIEBwYXJhbSBCdWZmZXJTaXplIHJlZmVyZW5jZSB0byBzaXpl
IG9mIGFsbG9jYXRlZCBzcGFjZS4KKyAgICAgKiBJZiBCdWZmZXJTaXplID09IDAsIGEgc3VmZmlj
aWVudCBzaXplIGZvciB1c2UgaW4gY2xvbmluZyB3aWxsCisgICAgICogYmUgcmV0dXJuZWQgKCdw
cmUtZmxpZ2h0aW5nJykKKyAgICAgKiBJZiBCdWZmZXJTaXplIGlzIG5vdCBlbm91Z2ggZm9yIGEg
c3RhY2stYmFzZWQgc2FmZSBjbG9uZSwKKyAgICAgKiBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2Nh
dGVkLgorICAgICAqIEBwYXJhbSBzdGF0dXMgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgb3BlcmF0
aW9uIHdlbnQgb24gc21vb3RobHkgb3IgdGhlcmUgd2VyZSBlcnJvcnMKKyAgICAgKiAgQW4gaW5m
b3JtYXRpb25hbCBzdGF0dXMgdmFsdWUsIFVfU0FGRUNMT05FX0FMTE9DQVRFRF9FUlJPUiwgaXMg
dXNlZCBpZiBhbnkgYWxsb2NhdGlvbnMgd2VyZQorICAgICAqICBuZWNlc3NhcnkuCisgICAgICog
QHJldHVybiBwb2ludGVyIHRvIHRoZSBuZXcgY2xvbmUKKyAgICAgKgorICAgICAqIEBkZXByZWNh
dGVkIElDVSA1Mi4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJy
ZWFrSXRlcmF0b3IgKiAgY3JlYXRlQnVmZmVyQ2xvbmUodm9pZCAqc3RhY2tCdWZmZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgJkJ1ZmZl
clNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVF
cnJvckNvZGUgJnN0YXR1cykgPSAwOworCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQor
CisgICAgLyoqCisgICAgICogICBEZXRlcm1pbmUgd2hldGhlciB0aGUgQnJlYWtJdGVyYXRvciB3
YXMgY3JlYXRlZCBpbiB1c2VyIG1lbW9yeSBieQorICAgICAqICAgY3JlYXRlQnVmZmVyQ2xvbmUo
KSwgYW5kIHRodXMgc2hvdWxkIG5vdCBiZSBkZWxldGVkLiAgU3VjaCBvYmplY3RzCisgICAgICog
ICBtdXN0IGJlIGNsb3NlZCBieSBhbiBleHBsaWNpdCBjYWxsIHRvIHRoZSBkZXN0cnVjdG9yIChu
b3QgZGVsZXRlKS4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIEFsd2F5cyBkZWxldGUgdGhl
IEJyZWFrSXRlcmF0b3IuCisgICAgICovCisgICAgaW5saW5lIFVCb29sIGlzQnVmZmVyQ2xvbmUo
dm9pZCk7CisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVDQVRFRF9BUEkgKi8KKworI2lmICFVQ09O
RklHX05PX1NFUlZJQ0UKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlciBhIG5ldyBicmVhayBpdGVy
YXRvciBvZiB0aGUgaW5kaWNhdGVkIGtpbmQsIHRvIHVzZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlLgor
ICAgICAqIFRoZSBicmVhayBpdGVyYXRvciB3aWxsIGJlIGFkb3B0ZWQuICBDbG9uZXMgb2YgdGhl
IGl0ZXJhdG9yIHdpbGwgYmUgcmV0dXJuZWQKKyAgICAgKiBpZiBhIHJlcXVlc3QgZm9yIGEgYnJl
YWsgaXRlcmF0b3Igb2YgdGhlIGdpdmVuIGtpbmQgbWF0Y2hlcyBvciBmYWxscyBiYWNrIHRvCisg
ICAgICogdGhpcyBsb2NhbGUuCisgICAgICogQmVjYXVzZSBJQ1UgbWF5IGNob29zZSB0byBjYWNo
ZSBCcmVha0l0ZXJhdG9ycyBpbnRlcm5hbGx5LCB0aGlzIG11c3QKKyAgICAgKiBiZSBjYWxsZWQg
YXQgYXBwbGljYXRpb24gc3RhcnR1cCwgcHJpb3IgdG8gYW55IGNhbGxzIHRvCisgICAgICogQnJl
YWtJdGVyYXRvcjo6Y3JlYXRlWFhYSW5zdGFuY2UgdG8gYXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9y
LgorICAgICAqIEBwYXJhbSB0b0Fkb3B0IHRoZSBCcmVha0l0ZXJhdG9yIGluc3RhbmNlIHRvIGJl
IGFkb3B0ZWQKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBMb2NhbGUgZm9yIHdoaWNoIHRoaXMg
aW5zdGFuY2UgaXMgdG8gYmUgcmVnaXN0ZXJlZAorICAgICAqIEBwYXJhbSBraW5kIHRoZSB0eXBl
IG9mIGl0ZXJhdG9yIGZvciB3aGljaCB0aGlzIGluc3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQK
KyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBpbi9vdXQgc3RhdHVzIGNvZGUsIG5vIHNwZWNpYWwg
bWVhbmluZ3MgYXJlIGFzc2lnbmVkCisgICAgICogQHJldHVybiBhIHJlZ2lzdHJ5IGtleSB0aGF0
IGNhbiBiZSB1c2VkIHRvIHVucmVnaXN0ZXIgdGhpcyBpbnN0YW5jZQorICAgICAqIEBzdGFibGUg
SUNVIDIuNAorICAgICAqLworICAgIHN0YXRpYyBVUmVnaXN0cnlLZXkgVV9FWFBPUlQyIHJlZ2lz
dGVySW5zdGFuY2UoQnJlYWtJdGVyYXRvciogdG9BZG9wdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBMb2NhbGUmIGxvY2FsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVQnJlYWtJdGVyYXRvclR5cGUga2luZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlJiBzdGF0dXMpOwor
CisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciBhIHByZXZpb3VzbHktcmVnaXN0ZXJlZCBCcmVh
a0l0ZXJhdG9yIHVzaW5nIHRoZSBrZXkgcmV0dXJuZWQgZnJvbSB0aGUKKyAgICAgKiByZWdpc3Rl
ciBjYWxsLiAgS2V5IGJlY29tZXMgaW52YWxpZCBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCBhbmQg
c2hvdWxkIG5vdCBiZSB1c2VkIGFnYWluLgorICAgICAqIFRoZSBCcmVha0l0ZXJhdG9yIGNvcnJl
c3BvbmRpbmcgdG8gdGhlIGtleSB3aWxsIGJlIGRlbGV0ZWQuCisgICAgICogQmVjYXVzZSBJQ1Ug
bWF5IGNob29zZSB0byBjYWNoZSBCcmVha0l0ZXJhdG9ycyBpbnRlcm5hbGx5LCB0aGlzIHNob3Vs
ZAorICAgICAqIGJlIGNhbGxlZCBkdXJpbmcgYXBwbGljYXRpb24gc2h1dGRvd24sIGFmdGVyIGFs
bCBjYWxscyB0bworICAgICAqIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZVhYWEluc3RhbmNlIHRvIGF2
b2lkIHVuZGVmaW5lZCBiZWhhdmlvci4KKyAgICAgKiBAcGFyYW0ga2V5IHRoZSByZWdpc3RyeSBr
ZXkgcmV0dXJuZWQgYnkgYSBwcmV2aW91cyBjYWxsIHRvIHJlZ2lzdGVySW5zdGFuY2UKKyAgICAg
KiBAcGFyYW0gc3RhdHVzIHRoZSBpbi9vdXQgc3RhdHVzIGNvZGUsIG5vIHNwZWNpYWwgbWVhbmlu
Z3MgYXJlIGFzc2lnbmVkCisgICAgICogQHJldHVybiBUUlVFIGlmIHRoZSBpdGVyYXRvciBmb3Ig
dGhlIGtleSB3YXMgc3VjY2Vzc2Z1bGx5IHVucmVnaXN0ZXJlZAorICAgICAqIEBzdGFibGUgSUNV
IDIuNAorICAgICAqLworICAgIHN0YXRpYyBVQm9vbCBVX0VYUE9SVDIgdW5yZWdpc3RlcihVUmVn
aXN0cnlLZXkga2V5LCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogUmV0
dXJuIGEgU3RyaW5nRW51bWVyYXRpb24gb3ZlciB0aGUgbG9jYWxlcyBhdmFpbGFibGUgYXQgdGhl
IHRpbWUgb2YgdGhlIGNhbGwsCisgICAgICogaW5jbHVkaW5nIHJlZ2lzdGVyZWQgbG9jYWxlcy4K
KyAgICAgKiBAcmV0dXJuIGEgU3RyaW5nRW51bWVyYXRpb24gb3ZlciB0aGUgbG9jYWxlcyBhdmFp
bGFibGUgYXQgdGhlIHRpbWUgb2YgdGhlIGNhbGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAg
ICAgKi8KKyAgICBzdGF0aWMgU3RyaW5nRW51bWVyYXRpb24qIFVfRVhQT1JUMiBnZXRBdmFpbGFi
bGVMb2NhbGVzKHZvaWQpOworI2VuZGlmCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBs
b2NhbGUgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuIFR3byBmbGF2b3JzIGFyZSBhdmFpbGFibGU6
IHZhbGlkIGFuZAorICAgICAqIGFjdHVhbCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44
CisgICAgICovCisgICAgTG9jYWxlIGdldExvY2FsZShVTG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwg
VUVycm9yQ29kZSYgc3RhdHVzKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJ
CisgICAgLyoqIEdldCB0aGUgbG9jYWxlIGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yIG9iamVjdC4g
WW91IGNhbiBjaG9vc2UgYmV0d2VlbiB2YWxpZCBhbmQgYWN0dWFsIGxvY2FsZS4KKyAgICAgKiAg
QHBhcmFtIHR5cGUgdHlwZSBvZiB0aGUgbG9jYWxlIHdlJ3JlIGxvb2tpbmcgZm9yICh2YWxpZCBv
ciBhY3R1YWwpCisgICAgICogIEBwYXJhbSBzdGF0dXMgZXJyb3IgY29kZSBmb3IgdGhlIG9wZXJh
dGlvbgorICAgICAqICBAcmV0dXJuIHRoZSBsb2NhbGUKKyAgICAgKiAgQGludGVybmFsCisgICAg
ICovCisgICAgY29uc3QgY2hhciAqZ2V0TG9jYWxlSUQoVUxvY0RhdGFMb2NhbGVUeXBlIHR5cGUs
IFVFcnJvckNvZGUmIHN0YXR1cykgY29uc3Q7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9B
UEkgKi8KKworICAgIC8qKgorICAgICAqICBTZXQgdGhlIHN1YmplY3QgdGV4dCBzdHJpbmcgdXBv
biB3aGljaCB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nCisgICAgICogIHdpdGhvdXQg
Y2hhbmdpbmcgYW55IG90aGVyIGFzcGVjdCBvZiB0aGUgbWF0Y2hpbmcgc3RhdGUuCisgICAgICog
IFRoZSBuZXcgYW5kIHByZXZpb3VzIHRleHQgc3RyaW5ncyBtdXN0IGhhdmUgdGhlIHNhbWUgY29u
dGVudC4KKyAgICAgKgorICAgICAqICBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2Ug
aW4gZW52aXJvbm1lbnRzIHdoZXJlIElDVSBpcyBvcGVyYXRpbmcgb24KKyAgICAgKiAgc3RyaW5n
cyB0aGF0IG1heSBtb3ZlIGFyb3VuZCBpbiBtZW1vcnkuICBJdCBwcm92aWRlcyBhIG1lY2hhbmlz
bSBmb3Igbm90aWZ5aW5nCisgICAgICogIElDVSB0aGF0IHRoZSBzdHJpbmcgaGFzIGJlZW4gcmVs
b2NhdGVkLCBhbmQgcHJvdmlkaW5nIGEgbmV3IFVUZXh0IHRvIGFjY2VzcyB0aGUKKyAgICAgKiAg
c3RyaW5nIGluIGl0cyBuZXcgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiAgTm90ZSB0aGF0IHRo
ZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbiBuZXZlciBjb3BpZXMgdGhlIHVuZGVybHlp
bmcgdGV4dAorICAgICAqICBvZiBhIHN0cmluZyBiZWluZyBwcm9jZXNzZWQsIGJ1dCBhbHdheXMg
b3BlcmF0ZXMgZGlyZWN0bHkgb24gdGhlIG9yaWdpbmFsIHRleHQKKyAgICAgKiAgcHJvdmlkZWQg
YnkgdGhlIHVzZXIuIFJlZnJlc2hpbmcgc2ltcGx5IGRyb3BzIHRoZSByZWZlcmVuY2VzIHRvIHRo
ZSBvbGQgdGV4dAorICAgICAqICBhbmQgcmVwbGFjZXMgdGhlbSB3aXRoIHJlZmVyZW5jZXMgdG8g
dGhlIG5ldy4KKyAgICAgKgorICAgICAqICBDYXV0aW9uOiAgdGhpcyBmdW5jdGlvbiBpcyBub3Jt
YWxseSB1c2VkIG9ubHkgYnkgdmVyeSBzcGVjaWFsaXplZCwKKyAgICAgKiAgc3lzdGVtLWxldmVs
IGNvZGUuICBPbmUgZXhhbXBsZSB1c2UgY2FzZSBpcyB3aXRoIGdhcmJhZ2UgY29sbGVjdGlvbiB0
aGF0IG1vdmVzCisgICAgICogIHRoZSB0ZXh0IGluIG1lbW9yeS4KKyAgICAgKgorICAgICAqIEBw
YXJhbSBpbnB1dCAgICAgIFRoZSBuZXcgKG1vdmVkKSB0ZXh0IHN0cmluZy4KKyAgICAgKiBAcGFy
YW0gc3RhdHVzICAgICBSZWNlaXZlcyBlcnJvcnMgZGV0ZWN0ZWQgYnkgdGhpcyBmdW5jdGlvbi4K
KyAgICAgKiBAcmV0dXJuICAgICAgICAgICAqdGhpcworICAgICAqCisgICAgICogQHN0YWJsZSBJ
Q1UgNDkKKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IgJnJlZnJlc2hJbnB1dFRl
eHQoVVRleHQgKmlucHV0LCBVRXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKworIHByaXZhdGU6Cisg
ICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIGJ1aWxkSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2Ms
IGNvbnN0IGNoYXIgKnR5cGUsIGludDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKyAg
ICBzdGF0aWMgQnJlYWtJdGVyYXRvciogY3JlYXRlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2Ms
IGludDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKyAgICBzdGF0aWMgQnJlYWtJdGVy
YXRvciogbWFrZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBpbnQzMl90IGtpbmQsIFVFcnJv
ckNvZGUmIHN0YXR1cyk7CisKKyAgICBmcmllbmQgY2xhc3MgSUNVQnJlYWtJdGVyYXRvckZhY3Rv
cnk7CisgICAgZnJpZW5kIGNsYXNzIElDVUJyZWFrSXRlcmF0b3JTZXJ2aWNlOworCitwcm90ZWN0
ZWQ6CisgICAgLy8gRG8gbm90IGVuY2xvc2UgcHJvdGVjdGVkIGRlZmF1bHQvY29weSBjb25zdHJ1
Y3RvcnMgd2l0aCAjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvLyBvciBlbHNlIHRo
ZSBjb21waWxlciB3aWxsIGNyZWF0ZSBhIHB1YmxpYyBvbmVzLgorICAgIC8qKiBAaW50ZXJuYWwg
Ki8KKyAgICBCcmVha0l0ZXJhdG9yKCk7CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFr
SXRlcmF0b3IgKGNvbnN0IEJyZWFrSXRlcmF0b3IgJm90aGVyKSA6IFVPYmplY3Qob3RoZXIpIHt9
CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFrSXRlcmF0b3IgKGNvbnN0IExvY2FsZSYg
dmFsaWQsIGNvbnN0IExvY2FsZSYgYWN0dWFsKTsKK3ByaXZhdGU6CisKKyAgICAvKiogQGludGVy
bmFsICovCisgICAgY2hhciBhY3R1YWxMb2NhbGVbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07Cisg
ICAgY2hhciB2YWxpZExvY2FsZVtVTE9DX0ZVTExOQU1FX0NBUEFDSVRZXTsKKworICAgIC8qKgor
ICAgICAqIFRoZSBhc3NpZ25tZW50IG9wZXJhdG9yIGhhcyBubyByZWFsIGltcGxlbWVudGF0aW9u
LgorICAgICAqIEl0J3MgcHJvdmlkZWQgdG8gbWFrZSB0aGUgY29tcGlsZXIgaGFwcHkuIERvIG5v
dCBjYWxsLgorICAgICAqLworICAgIEJyZWFrSXRlcmF0b3ImIG9wZXJhdG9yPShjb25zdCBCcmVh
a0l0ZXJhdG9yJik7Cit9OworCisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQorCitpbmxp
bmUgVUJvb2wgQnJlYWtJdGVyYXRvcjo6aXNCdWZmZXJDbG9uZSgpCit7CisgICAgcmV0dXJuIEZB
TFNFOworfQorCisjZW5kaWYgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisKK1VfTkFNRVNQ
QUNFX0VORAorCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiAqLwor
CisjZW5kaWYgLy8gX0JSS0lURVIKKy8vZW9mCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL2NoYXJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZThkNjUwOTBhNDBhNjA4NTk1MWM3MzMwN2Y3NGFjZjgzYmExYmJjOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaApAQCAtMCwwICsx
LDcyMiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTEs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3Ro
ZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVm
IENIQVJJVEVSX0gKKyNkZWZpbmUgQ0hBUklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlw
ZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3Vu
aXN0ci5oIgorLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IENoYXJhY3RlciBJdGVy
YXRvcgorICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorLyoqCisgKiBBYnN0cmFjdCBjbGFzcyB0
aGF0IGRlZmluZXMgYW4gQVBJIGZvciBmb3J3YXJkLW9ubHkgaXRlcmF0aW9uCisgKiBvbiB0ZXh0
IG9iamVjdHMuCisgKiBUaGlzIGlzIGEgbWluaW1hbCBpbnRlcmZhY2UgZm9yIGl0ZXJhdGlvbiB3
aXRob3V0IHJhbmRvbSBhY2Nlc3MKKyAqIG9yIGJhY2t3YXJkcyBpdGVyYXRpb24uIEl0IGlzIGVz
cGVjaWFsbHkgdXNlZnVsIGZvciB3cmFwcGluZworICogc3RyZWFtcyB3aXRoIGNvbnZlcnRlcnMg
aW50byBhbiBvYmplY3QgZm9yIGNvbGxhdGlvbiBvcgorICogbm9ybWFsaXphdGlvbi4KKyAqCisg
KiA8cD5DaGFyYWN0ZXJzIGNhbiBiZSBhY2Nlc3NlZCBpbiB0d28gd2F5czogYXMgY29kZSB1bml0
cyBvciBhcworICogY29kZSBwb2ludHMuCisgKiBVbmljb2RlIGNvZGUgcG9pbnRzIGFyZSAyMS1i
aXQgaW50ZWdlcnMgYW5kIGFyZSB0aGUgc2NhbGFyIHZhbHVlcworICogb2YgVW5pY29kZSBjaGFy
YWN0ZXJzLiBJQ1UgdXNlcyB0aGUgdHlwZSBVQ2hhcjMyIGZvciB0aGVtLgorICogVW5pY29kZSBj
b2RlIHVuaXRzIGFyZSB0aGUgc3RvcmFnZSB1bml0cyBvZiBhIGdpdmVuCisgKiBVbmljb2RlL1VD
UyBUcmFuc2Zvcm1hdGlvbiBGb3JtYXQgKGEgY2hhcmFjdGVyIGVuY29kaW5nIHNjaGVtZSkuCisg
KiBXaXRoIFVURi0xNiwgYWxsIGNvZGUgcG9pbnRzIGNhbiBiZSByZXByZXNlbnRlZCB3aXRoIGVp
dGhlciBvbmUKKyAqIG9yIHR3byBjb2RlIHVuaXRzICgic3Vycm9nYXRlcyIpLgorICogU3RyaW5n
IHN0b3JhZ2UgaXMgdHlwaWNhbGx5IGJhc2VkIG9uIGNvZGUgdW5pdHMsIHdoaWxlIHByb3BlcnRp
ZXMKKyAqIG9mIGNoYXJhY3RlcnMgYXJlIHR5cGljYWxseSBkZXRlcm1pbmVkIHVzaW5nIGNvZGUg
cG9pbnQgdmFsdWVzLgorICogU29tZSBwcm9jZXNzZXMgbWF5IGJlIGRlc2lnbmVkIHRvIHdvcmsg
d2l0aCBzZXF1ZW5jZXMgb2YgY29kZSB1bml0cywKKyAqIG9yIGl0IG1heSBiZSBrbm93biB0aGF0
IGFsbCBjaGFyYWN0ZXJzIHRoYXQgYXJlIGltcG9ydGFudCB0byBhbgorICogYWxnb3JpdGhtIGNh
biBiZSByZXByZXNlbnRlZCB3aXRoIHNpbmdsZSBjb2RlIHVuaXRzLgorICogT3RoZXIgcHJvY2Vz
c2VzIHdpbGwgbmVlZCB0byB1c2UgdGhlIGNvZGUgcG9pbnQgYWNjZXNzIGZ1bmN0aW9ucy48L3A+
CisgKgorICogPHA+Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHByb3ZpZGVzIG5leHRQb3N0SW5j
KCkgdG8gYWNjZXNzCisgKiBhIGNvZGUgdW5pdCBhbmQgYWR2YW5jZSBhbiBpbnRlcm5hbCBwb3Np
dGlvbiBpbnRvIHRoZSB0ZXh0IG9iamVjdCwKKyAqIHNpbWlsYXIgdG8gYSA8Y29kZT5yZXR1cm4g
dGV4dFtwb3NpdGlvbisrXTwvY29kZT4uPGJyPgorICogSXQgcHJvdmlkZXMgbmV4dDMyUG9zdElu
YygpIHRvIGFjY2VzcyBhIGNvZGUgcG9pbnQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwKKyAqIHBv
c2l0aW9uLjwvcD4KKyAqCisgKiA8cD5uZXh0MzJQb3N0SW5jKCkgYXNzdW1lcyB0aGF0IHRoZSBj
dXJyZW50IHBvc2l0aW9uIGlzIHRoYXQgb2YKKyAqIHRoZSBiZWdpbm5pbmcgb2YgYSBjb2RlIHBv
aW50LCBpLmUuLCBvZiBpdHMgZmlyc3QgY29kZSB1bml0LgorICogQWZ0ZXIgbmV4dDMyUG9zdElu
YygpLCB0aGlzIHdpbGwgYmUgdHJ1ZSBhZ2Fpbi4KKyAqIEluIGdlbmVyYWwsIGFjY2VzcyB0byBj
b2RlIHVuaXRzIGFuZCBjb2RlIHBvaW50cyBpbiB0aGUgc2FtZQorICogaXRlcmF0aW9uIGxvb3Ag
c2hvdWxkIG5vdCBiZSBtaXhlZC4gSW4gVVRGLTE2LCBpZiB0aGUgY3VycmVudCBwb3NpdGlvbgor
ICogaXMgb24gYSBzZWNvbmQgY29kZSB1bml0IChMb3cgU3Vycm9nYXRlKSwgdGhlbiBvbmx5IHRo
YXQgY29kZSB1bml0CisgKiBpcyByZXR1cm5lZCBldmVuIGJ5IG5leHQzMlBvc3RJbmMoKS48L3A+
CisgKgorICogPHA+Rm9yIGl0ZXJhdGlvbiB3aXRoIGVpdGhlciBmdW5jdGlvbiwgdGhlcmUgYXJl
IHR3byB3YXlzIHRvCisgKiBjaGVjayBmb3IgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLiBXaGVu
IHRoZXJlIGFyZSBubyBtb3JlCisgKiBjaGFyYWN0ZXJzIGluIHRoZSB0ZXh0IG9iamVjdDoKKyAq
IDx1bD4KKyAqIDxsaT5UaGUgaGFzTmV4dCgpIGZ1bmN0aW9uIHJldHVybnMgRkFMU0UuPC9saT4K
KyAqIDxsaT5uZXh0UG9zdEluYygpIGFuZCBuZXh0MzJQb3N0SW5jKCkgcmV0dXJuIERPTkUKKyAq
ICAgICB3aGVuIG9uZSBhdHRlbXB0cyB0byByZWFkIGJleW9uZCB0aGUgZW5kIG9mIHRoZSB0ZXh0
IG9iamVjdC48L2xpPgorICogPC91bD4KKyAqCisgKiBFeGFtcGxlOgorICogXGNvZGUgCisgKiB2
b2lkIGZ1bmN0aW9uMShGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNo
YXIzMiBjOworICogICAgIHdoaWxlKGl0Lmhhc05leHQoKSkgeworICogICAgICAgICBjPWl0Lm5l
eHQzMlBvc3RJbmMoKTsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICB9CisgKiB9CisgKgor
ICogdm9pZCBmdW5jdGlvbjEoRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAg
IFVDaGFyIGM7CisgKiAgICAgd2hpbGUoKGM9aXQubmV4dFBvc3RJbmMoKSkhPUZvcndhcmRDaGFy
YWN0ZXJJdGVyYXRvcjo6RE9ORSkgeworICogICAgICAgICAvLyB1c2UgYworICogICAgICB9Cisg
KiAgfQorICogXGVuZGNvZGUKKyAqIDwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwor
Y2xhc3MgVV9DT01NT05fQVBJIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBVT2Jq
ZWN0IHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBtb3N0IG9m
IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcidzIGZ1bmN0aW9ucworICAgICAqIHdoZW4gdGhlIGl0
ZXJhdG9yIGhhcyByZWFjaGVkIHRoZSBsaW1pdHMgb2YgaXRzIGl0ZXJhdGlvbi4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBlbnVtIHsgRE9ORSA9IDB4ZmZmZiB9OworICAg
IAorICAgIC8qKgorICAgICAqIERlc3RydWN0b3IuICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIH5Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAK
KyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgd2hlbiBib3RoIGl0ZXJhdG9ycyByZWZlciB0
byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSBjaGFyYWN0ZXItc3RvcmFn
ZSBvYmplY3QuICAKKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgICAqIEByZXR1cm4gdHJ1ZSB3aGVu
IGJvdGggaXRlcmF0b3JzIHJlZmVyIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRo
ZSBzYW1lIGNoYXJhY3Rlci1zdG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHRydWUgd2hlbiB0aGUgaXRlcmF0b3JzIHJlZmVyIHRvIGRpZmZlcmVudAorICAgICAqIHRl
eHQtc3RvcmFnZSBvYmplY3RzLCBvciB0byBkaWZmZXJlbnQgY2hhcmFjdGVycyBpbiB0aGUKKyAg
ICAgKiBzYW1lIHRleHQtc3RvcmFnZSBvYmplY3QuICAKKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUg
Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5Cisg
ICAgICogQHJldHVybiB0cnVlIHdoZW4gdGhlIGl0ZXJhdG9ycyByZWZlciB0byBkaWZmZXJlbnQK
KyAgICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0cywgb3IgdG8gZGlmZmVyZW50IGNoYXJhY3RlcnMg
aW4gdGhlCisgICAgICogc2FtZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgaW5saW5lIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBH
ZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgaXRlcmF0b3IuICAKKyAgICAgKiBAcmV0dXJu
IHRoZSBoYXNoIGNvZGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBpbnQzMl90IGhhc2hDb2RlKHZvaWQpIGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoaXMgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
ICgicG9vciBtYW4ncworICAgICAqIFJUVEkiKS48UD4gRGVzcGl0ZSB0aGUgZmFjdCB0aGF0IHRo
aXMgZnVuY3Rpb24gaXMgcHVibGljLAorICAgICAqIERPIE5PVCBDT05TSURFUiBJVCBQQVJUIE9G
IENIQVJBQ1RFUklURVJBVE9SJ1MgQVBJISAKKyAgICAgKiBAcmV0dXJuIGEgVUNsYXNzSUQgZm9y
IHRoaXMgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29u
c3QgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSB1bml0
IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgdW5pdAorICAgICAq
IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAgSWYg
dGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBE
T05FLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSB1bml0LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0UG9zdElu
Yyh2b2lkKSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBjb2Rl
IHBvaW50IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQK
KyAgICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgp
KS4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCBy
ZXR1cm5zIERPTkUuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHBvaW50LgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBu
ZXh0MzJQb3N0SW5jKHZvaWQpID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIEZB
TFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAg
KiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
LgorICAgICAqIFRoaXMgaXMgdXNlZCB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9zdElu
YygpIGluIGZvcndhcmQKKyAgICAgKiBpdGVyYXRpb24uCisgICAgICogQHJldHVybnMgRkFMU0Ug
aWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgICAqIGF0
IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCAgICAgICAg
aGFzTmV4dCgpID0gMDsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICAvKiogRGVmYXVsdCBjb25zdHJ1
Y3RvciB0byBiZSBvdmVycmlkZGVuIGluIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3MuIEBzdGFibGUg
SUNVIDIuMCovCisgICAgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgCisgICAgLyoq
IENvcHkgY29uc3RydWN0b3IgdG8gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNs
YXNzLiBAc3RhYmxlIElDVSAyLjAqLworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcihjb25z
dCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgJm90aGVyKTsKKyAgICAKKyAgICAvKioKKyAgICAg
KiBBc3NpZ25tZW50IG9wZXJhdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGlu
ZyBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBGb3J3YXJkQ2hh
cmFjdGVySXRlcmF0b3IgJm9wZXJhdG9yPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3Im
KSB7IHJldHVybiAqdGhpczsgfQorfTsKKworLyoqCisgKiBBYnN0cmFjdCBjbGFzcyB0aGF0IGRl
ZmluZXMgYW4gQVBJIGZvciBpdGVyYXRpb24KKyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMg
aXMgYW4gaW50ZXJmYWNlIGZvciBmb3J3YXJkIGFuZCBiYWNrd2FyZCBpdGVyYXRpb24KKyAqIGFu
ZCByYW5kb20gYWNjZXNzIGludG8gYSB0ZXh0IG9iamVjdC4KKyAqCisgKiA8cD5UaGUgQVBJIHBy
b3ZpZGVzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgdG8gdGhlIEphdmEgYW5kIG9sZGVyIElDVQor
ICogQ2hhcmFjdGVySXRlcmF0b3IgY2xhc3NlcyBidXQgZXh0ZW5kcyB0aGVtIHNpZ25pZmljYW50
bHk6CisgKiA8b2w+CisgKiA8bGk+Q2hhcmFjdGVySXRlcmF0b3IgaXMgbm93IGEgc3ViY2xhc3Mg
b2YgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLjwvbGk+CisgKiA8bGk+V2hpbGUgdGhlIG9sZCBB
UEkgZnVuY3Rpb25zIHByb3ZpZGVkIGZvcndhcmQgaXRlcmF0aW9uIHdpdGgKKyAqICAgICAicHJl
LWluY3JlbWVudCIgc2VtYW50aWNzLCB0aGUgbmV3IG9uZSBhbHNvIHByb3ZpZGVzIGZ1bmN0aW9u
cworICogICAgIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1hbnRpY3MuIFRoZXkgYXJlIG1vcmUg
ZWZmaWNpZW50IGFuZCBzaG91bGQKKyAqICAgICBiZSB0aGUgcHJlZmVycmVkIGl0ZXJhdG9yIGZ1
bmN0aW9ucyBmb3IgbmV3IGltcGxlbWVudGF0aW9ucy4KKyAqICAgICBUaGUgYmFja3dhcmQgaXRl
cmF0aW9uIGFsd2F5cyBoYWQgInByZS1kZWNyZW1lbnQiIHNlbWFudGljcywgd2hpY2gKKyAqICAg
ICBhcmUgZWZmaWNpZW50LjwvbGk+CisgKiA8bGk+SnVzdCBsaWtlIEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciwgaXQgcHJvdmlkZXMgYWNjZXNzIHRvCisgKiAgICAgYm90aCBjb2RlIHVuaXRzIGFu
ZCBjb2RlIHBvaW50cy4gQ29kZSBwb2ludCBhY2Nlc3MgdmVyc2lvbnMgYXJlIGF2YWlsYWJsZQor
ICogICAgIGZvciB0aGUgb2xkIGFuZCB0aGUgbmV3IGl0ZXJhdGlvbiBzZW1hbnRpY3MuPC9saT4K
KyAqIDxsaT5UaGVyZSBhcmUgbmV3IGZ1bmN0aW9ucyBmb3Igc2V0dGluZyBhbmQgbW92aW5nIHRo
ZSBjdXJyZW50IHBvc2l0aW9uCisgKiAgICAgd2l0aG91dCByZXR1cm5pbmcgYSBjaGFyYWN0ZXIs
IGZvciBlZmZpY2llbmN5LjwvbGk+CisgKiA8L29sPgorICoKKyAqIFNlZSBGb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IgZm9yIGV4YW1wbGVzIGZvciB1c2luZyB0aGUgbmV3IGZvcndhcmQgaXRlcmF0
aW9uCisgKiBmdW5jdGlvbnMuIEZvciBiYWNrd2FyZCBpdGVyYXRpb24sIHRoZXJlIGlzIGFsc28g
YSBoYXNQcmV2aW91cygpIGZ1bmN0aW9uCisgKiB0aGF0IGNhbiBiZSB1c2VkIGFuYWxvZ291c2x5
IHRvIGhhc05leHQoKS4KKyAqIFRoZSBvbGQgZnVuY3Rpb25zIHdvcmsgYXMgYmVmb3JlIGFuZCBh
cmUgc2hvd24gYmVsb3cuPC9wPgorICoKKyAqIDxwPkV4YW1wbGVzIGZvciBzb21lIG9mIHRoZSBu
ZXcgZnVuY3Rpb25zOjwvcD4KKyAqCisgKiBGb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIGhhc05leHQo
KToKKyAqIFxjb2RlCisgKiB2b2lkIGZvcndhcmQxKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgewor
ICogICAgIFVDaGFyMzIgYzsKKyAqICAgICBmb3IoaXQuc2V0VG9TdGFydCgpOyBpdC5oYXNOZXh0
KCk7KSB7CisgKiAgICAgICAgIGM9aXQubmV4dDMyUG9zdEluYygpOworICogICAgICAgICAvLyB1
c2UgYworICogICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogRm9yd2FyZCBpdGVyYXRpb24g
bW9yZSBzaW1pbGFyIHRvIGxvb3BzIHdpdGggdGhlIG9sZCBmb3J3YXJkIGl0ZXJhdGlvbiwKKyAq
IHNob3dpbmcgYSB3YXkgdG8gY29udmVydCBzaW1wbGUgZm9yKCkgbG9vcHM6CisgKiBcY29kZQor
ICogdm9pZCBmb3J3YXJkMihDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhciBj
OworICogICAgIGZvcihjPWl0LmZpcnN0UG9zdEluYygpOyBjIT1DaGFyYWN0ZXJJdGVyYXRvcjo6
RE9ORTsgYz1pdC5uZXh0UG9zdEluYygpKSB7CisgKiAgICAgICAgICAvLyB1c2UgYworICogICAg
ICB9CisgKiB9CisgKiBcZW5kY29kZQorICogQmFja3dhcmQgaXRlcmF0aW9uIHdpdGggc2V0VG9F
bmQoKSBhbmQgaGFzUHJldmlvdXMoKToKKyAqIFxjb2RlCisgKiAgdm9pZCBiYWNrd2FyZDEoQ2hh
cmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgIFVDaGFyMzIgYzsKKyAqICAgICAgZm9yKGl0
LnNldFRvRW5kKCk7IGl0Lmhhc1ByZXZpb3VzKCk7KSB7CisgKiAgICAgICAgIGM9aXQucHJldmlv
dXMzMigpOworICogICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRj
b2RlCisgKiBCYWNrd2FyZCBpdGVyYXRpb24gd2l0aCBhIG1vcmUgdHJhZGl0aW9uYWwgZm9yKCkg
bG9vcDoKKyAqIFxjb2RlCisgKiB2b2lkIGJhY2t3YXJkMihDaGFyYWN0ZXJJdGVyYXRvciAmaXQp
IHsKKyAqICAgICBVQ2hhciBjOworICogICAgIGZvcihjPWl0Lmxhc3QoKTsgYyE9Q2hhcmFjdGVy
SXRlcmF0b3I6OkRPTkU7IGM9aXQucHJldmlvdXMoKSkgeworICogICAgICAgICAvLyB1c2UgYwor
ICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqCisgKiBFeGFtcGxlIGZvciByYW5kb20g
YWNjZXNzOgorICogXGNvZGUKKyAqICB2b2lkIHJhbmRvbShDaGFyYWN0ZXJJdGVyYXRvciAmaXQp
IHsKKyAqICAgICAgLy8gc2V0IHRvIHRoZSB0aGlyZCBjb2RlIHBvaW50IGZyb20gdGhlIGJlZ2lu
bmluZworICogICAgICBpdC5tb3ZlMzIoMywgQ2hhcmFjdGVySXRlcmF0b3I6OmtTdGFydCk7Cisg
KiAgICAgIC8vIGdldCBhIGNvZGUgcG9pbnQgZnJvbSBoZXJlIHdpdGhvdXQgbW92aW5nIHRoZSBw
b3NpdGlvbgorICogICAgICBVQ2hhcjMyIGM9aXQuY3VycmVudDMyKCk7CisgKiAgICAgIC8vIGdl
dCB0aGUgcG9zaXRpb24KKyAqICAgICAgaW50MzJfdCBwb3M9aXQuZ2V0SW5kZXgoKTsKKyAqICAg
ICAgLy8gZ2V0IHRoZSBwcmV2aW91cyBjb2RlIHVuaXQKKyAqICAgICAgVUNoYXIgdT1pdC5wcmV2
aW91cygpOworICogICAgICAvLyBtb3ZlIGJhY2sgb25lIG1vcmUgY29kZSB1bml0CisgKiAgICAg
IGl0Lm1vdmUoLTEsIENoYXJhY3Rlckl0ZXJhdG9yOjprQ3VycmVudCk7CisgKiAgICAgIC8vIHNl
dCB0aGUgcG9zaXRpb24gYmFjayB0byB3aGVyZSBpdCB3YXMKKyAqICAgICAgLy8gYW5kIHJlYWQg
dGhlIHNhbWUgY29kZSBwb2ludCBjIGFuZCBtb3ZlIGJleW9uZCBpdAorICogICAgICBpdC5zZXRJ
bmRleChwb3MpOworICogICAgICBpZihjIT1pdC5uZXh0MzJQb3N0SW5jKCkpIHsKKyAqICAgICAg
ICAgIGV4aXQoMSk7IC8vIENoYXJhY3Rlckl0ZXJhdG9yIGluY29uc2lzdGVudAorICogICAgICB9
CisgKiAgfQorICogXGVuZGNvZGUKKyAqCisgKiA8cD5FeGFtcGxlcywgZXNwZWNpYWxseSBmb3Ig
dGhlIG9sZCBBUEk6PC9wPgorICoKKyAqIEZ1bmN0aW9uIHByb2Nlc3NpbmcgY2hhcmFjdGVycywg
aW4gdGhpcyBleGFtcGxlIHNpbXBsZSBvdXRwdXQKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZv
aWQgcHJvY2Vzc0NoYXIoIFVDaGFyIGMgKQorICogIHsKKyAqICAgICAgY291dCA8PCAiICIgPDwg
YzsKKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSB0aGUgdGV4dCBm
cm9tIHN0YXJ0IHRvIGZpbmlzaAorICogPHByZT4gCisgKiBcY29kZQorICogIHZvaWQgdHJhdmVy
c2VGb3J3YXJkKENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyKQorICogIHsKKyAqICAgICAgZm9yKFVD
aGFyIGMgPSBpdGVyLmZpcnN0KCk7IGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgYyA9IGl0
ZXIubmV4dCgpKSB7CisgKiAgICAgICAgICBwcm9jZXNzQ2hhcihjKTsKKyAqICAgICAgfQorICog
IH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIFRyYXZlcnNlIHRoZSB0ZXh0IGJhY2t3YXJk
cywgZnJvbSBlbmQgdG8gc3RhcnQKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZvaWQgdHJhdmVy
c2VCYWNrd2FyZChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlcikKKyAqICB7CisgKiAgICAgIGZvcihV
Q2hhciBjID0gaXRlci5sYXN0KCk7IGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgYyA9IGl0
ZXIucHJldmlvdXMoKSkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgIH0K
KyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSBib3RoIGZvcndhcmQg
YW5kIGJhY2t3YXJkIGZyb20gYSBnaXZlbiBwb3NpdGlvbiBpbiB0aGUgdGV4dC4gCisgKiBDYWxs
cyB0byBub3RCb3VuZGFyeSgpIGluIHRoaXMgZXhhbXBsZSByZXByZXNlbnRzIHNvbWUgYWRkaXRp
b25hbCBzdG9wcGluZyBjcml0ZXJpYS4KKyAqIDxwcmU+CisgKiBcY29kZQorICogdm9pZCB0cmF2
ZXJzZU91dChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlciwgaW50MzJfdCBwb3MpCisgKiB7CisgKiAg
ICAgIFVDaGFyIGM7CisgKiAgICAgIGZvciAoYyA9IGl0ZXIuc2V0SW5kZXgocG9zKTsKKyAqICAg
ICAgYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIChVbmljb2RlOjppc0xldHRlcihjKSB8
fCBVbmljb2RlOjppc0RpZ2l0KGMpKTsKKyAqICAgICAgICAgIGMgPSBpdGVyLm5leHQoKSkge30K
KyAqICAgICAgaW50MzJfdCBlbmQgPSBpdGVyLmdldEluZGV4KCk7CisgKiAgICAgIGZvciAoYyA9
IGl0ZXIuc2V0SW5kZXgocG9zKTsKKyAqICAgICAgICAgIGMgIT0gQ2hhcmFjdGVySXRlcmF0b3Iu
RE9ORSAmJiAoVW5pY29kZTo6aXNMZXR0ZXIoYykgfHwgVW5pY29kZTo6aXNEaWdpdChjKSk7Cisg
KiAgICAgICAgICBjID0gaXRlci5wcmV2aW91cygpKSB7fQorICogICAgICBpbnQzMl90IHN0YXJ0
ID0gaXRlci5nZXRJbmRleCgpICsgMTsKKyAqICAKKyAqICAgICAgY291dCA8PCAic3RhcnQ6ICIg
PDwgc3RhcnQgPDwgIiBlbmQ6ICIgPDwgZW5kIDw8IGVuZGw7CisgKiAgICAgIGZvciAoYyA9IGl0
ZXIuc2V0SW5kZXgoc3RhcnQpOyBpdGVyLmdldEluZGV4KCkgPCBlbmQ7IGMgPSBpdGVyLm5leHQo
KSApIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMpOworICogICAgIH0KKyAqICB9CisgKiBc
ZW5kY29kZQorICogPC9wcmU+CisgKiBDcmVhdGluZyBhIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9y
IGFuZCBjYWxsaW5nIHRoZSB0ZXN0IGZ1bmN0aW9ucworICogPHByZT4KKyAqIFxjb2RlCisgKiAg
dm9pZCBDaGFyYWN0ZXJJdGVyYXRvcl9FeGFtcGxlKCB2b2lkICkKKyAqICAgeworICogICAgICAg
Y291dCA8PCBlbmRsIDw8ICI9PT09PSBDaGFyYWN0ZXJJdGVyYXRvcl9FeGFtcGxlOiA9PT09PSIg
PDwgZW5kbDsKKyAqICAgICAgIFVuaWNvZGVTdHJpbmcgdGV4dCgiRWluIGtsZWluZXIgU2F0ei4i
KTsKKyAqICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGl0ZXJhdG9yKHRleHQpOworICog
ICAgICAgY291dCA8PCAiLS0tLS0gdHJhdmVyc2VGb3J3YXJkOiAtLS0tLS0tLS0tLSIgPDwgZW5k
bDsKKyAqICAgICAgIHRyYXZlcnNlRm9yd2FyZCggaXRlcmF0b3IgKTsKKyAqICAgICAgIGNvdXQg
PDwgZW5kbCA8PCBlbmRsIDw8ICItLS0tLSB0cmF2ZXJzZUJhY2t3YXJkOiAtLS0tLS0tLS0tIiA8
PCBlbmRsOworICogICAgICAgdHJhdmVyc2VCYWNrd2FyZCggaXRlcmF0b3IgKTsKKyAqICAgICAg
IGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICItLS0tLSB0cmF2ZXJzZU91dDogLS0tLS0tLS0tLS0t
LS0tIiA8PCBlbmRsOworICogICAgICAgdHJhdmVyc2VPdXQoIGl0ZXJhdG9yLCA3ICk7CisgKiAg
ICAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0iIDw8IGVuZGw7CisgKiAgIH0KKyAq
IFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3Mg
VV9DT01NT05fQVBJIENoYXJhY3Rlckl0ZXJhdG9yIDogcHVibGljIEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogT3JpZ2luIGVudW1lcmF0aW9uIGZv
ciB0aGUgbW92ZSgpIGFuZCBtb3ZlMzIoKSBmdW5jdGlvbnMuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgZW51bSBFT3JpZ2luIHsga1N0YXJ0LCBrQ3VycmVudCwga0VuZCB9
OworCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3Rvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIH5DaGFyYWN0ZXJJdGVyYXRvcigpOworCisgICAgLyoqCisg
ICAgICogUmV0dXJucyBhIHBvaW50ZXIgdG8gYSBuZXcgQ2hhcmFjdGVySXRlcmF0b3Igb2YgdGhl
IHNhbWUKKyAgICAgKiBjb25jcmV0ZSBjbGFzcyBhcyB0aGlzIG9uZSwgYW5kIHJlZmVycmluZyB0
byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSB0ZXh0LXN0b3JhZ2Ugb2Jq
ZWN0IGFzIHRoaXMgb25lLiAgVGhlCisgICAgICogY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBk
ZWxldGluZyB0aGUgbmV3IGNsb25lLiAgCisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBu
ZXcgQ2hhcmFjdGVySXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdCA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29k
ZSB1bml0IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBj
b2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24g
d2l0aCBuZXh0KCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBp
dGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBVQ2hhciAgICAgICAgIGZpcnN0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisg
ICAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSB1bml0LCBhbmQgbW92ZXMg
dGhlIHBvc2l0aW9uCisgICAgICogdG8gdGhlIHNlY29uZCBjb2RlIHVuaXQuIFRoaXMgaXMgYW4g
YWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9u
IHdpdGggbmV4dFBvc3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQg
aW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3RQb3N0SW5jKHZvaWQpOworCisgICAgLyoq
CisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9p
bnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUg
dW5pdCwKKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRo
IG5leHQzMigpLgorICAgICAqIE5vdGUgdGhhdCBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0
SW5jKCksIGJlZ2lubmluZyB3aXRoLAorICAgICAqIGUuZy4sIHNldFRvU3RhcnQoKSBvciBmaXJz
dFBvc3RJbmMoKSwgaXMgbW9yZSBlZmZpY2llbnQuCisgICAgICogQHJldHVybiB0aGUgZmlyc3Qg
Y29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyKHZvaWQpID0gMDsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJz
dCBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0
IGNvZGUgcG9pbnQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICAgKiB0byB0aGUgc2Vjb25k
IGNvZGUgcG9pbnQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAg
ICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLgorICAgICAqIEBy
ZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmly
c3QzMlBvc3RJbmModm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0
byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IG9yIGNvZGUgcG9pbnQgaW4gaXRzCisgICAg
ICogaXRlcmF0aW9uIHJhbmdlLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGEgZm9yd2FyZAor
ICAgICAqIGl0ZXJhdGlvbiB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9zdEluYygpLgor
ICAgICAqIEByZXR1cm4gdGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICBz
ZXRUb1N0YXJ0KCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZl
ciB0byB0aGUgbGFzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBh
bmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJl
Z2luIGFuIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkuCisgICAgICogQHJldHVybiB0aGUgbGFz
dCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBVQ2hhciAgICAgICAgIGxhc3Qodm9pZCkgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0
cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisg
ICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91
czMyKCkuCisgICAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBsYXN0MzIodm9p
ZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gdGhlIGVuZCBv
ZiBpdHMgaXRlcmF0aW9uIHJhbmdlLCBqdXN0IGJlaGluZAorICAgICAqIHRoZSBsYXN0IGNvZGUg
dW5pdCBvciBjb2RlIHBvaW50LiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGEgYmFja3dhcmQK
KyAgICAgKiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIoKS4KKyAgICAg
KiBAcmV0dXJuIHRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgIHNldFRvRW5k
KCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUg
InBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVj
dCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAgICAgKiByZXR1cm5zIHRoYXQgY29kZSB1
bml0LiAgCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5p
dCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlICJwb3NpdGlv
biItdGggY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUNoYXIgICAgICAgICBzZXRJbmRleChpbnQzMl90IHBvc2l0aW9uKSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgYmVnaW5uaW5n
IG9mIHRoZSBjb2RlIHBvaW50CisgICAgICogdGhhdCBjb250YWlucyB0aGUgInBvc2l0aW9uIi10
aCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0
b3IgcmVmZXJzIHRvLCBhbmQKKyAgICAgKiByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4KKyAgICAg
KiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyBhZGp1c3RlZCB0byB0aGUgYmVnaW5uaW5nIG9mIHRo
ZSBjb2RlIHBvaW50CisgICAgICogKGl0cyBmaXJzdCBjb2RlIHVuaXQpLgorICAgICAqIEBwYXJh
bSBwb3NpdGlvbiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQgaW4gdGhlIHRleHQtc3RvcmFn
ZSBvYmplY3QKKyAgICAgKiBAcmV0dXJuIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgcG9pbnQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAg
IHNldEluZGV4MzIoaW50MzJfdCBwb3NpdGlvbikgPSAwOworCisgICAgLyoqCisgICAgICogUmV0
dXJucyB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLiAKKyAg
ICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4gCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGN1cnJlbnQodm9pZCkgY29u
c3QgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50
IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLiAgCisgICAgICogQHJldHVybiB0aGUg
Y3VycmVudCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIzMiAgICAgICBjdXJyZW50MzIodm9pZCkgY29uc3QgPSAwOworICAgICAg
ICAKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5kZXgoKSksIGFuZCByZXR1cm5z
IHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSB1
bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIg
ICAgICAgICBuZXh0KHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5j
ZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICog
KHRvd2FyZCBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhl
cmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9O
RS4KKyAgICAgKiBOb3RlIHRoYXQgaXRlcmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIHNlbWFu
dGljcyBpcyBsZXNzCisgICAgICogZWZmaWNpZW50IHRoYW4gaXRlcmF0aW9uIHdpdGggInBvc3Qt
aW5jcmVtZW50IiBzZW1hbnRpY3MKKyAgICAgKiB0aGF0IGlzIHByb3ZpZGVkIGJ5IG5leHQzMlBv
c3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgcG9pbnQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMih2
b2lkKSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2
aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgc3Rh
cnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUKKyAg
ICAgKiBubyBtb3JlIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuICAKKyAgICAg
KiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIHByZXZpb3VzKHZvaWQpID0gMDsK
KworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIHN0YXJ0SW5kZXgoKSksIGFuZCBy
ZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29k
ZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuIAorICAgICAqIEByZXR1cm4gdGhlIHBy
ZXZpb3VzIGNvZGUgcG9pbnQuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIzMiAgICAgICBwcmV2aW91czMyKHZvaWQpID0gMDsKKworICAgIC8qKgor
ICAgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBj
b2RlIHBvaW50cworICAgICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlLgorICAgICAqIFRoaXMgaXMgdXNlZCB3aXRoIHByZXZpb3VzKCkgb3IgcHJl
dmlvdXMzMigpIGluIGJhY2t3YXJkCisgICAgICogaXRlcmF0aW9uLgorICAgICAqIEByZXR1cm4g
RkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAg
ICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLCBy
ZXR1cm4gVFJVRSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzUHJldmlvdXMoKSA9IDA7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3Rv
cmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGZpcnN0KCku
ICBTaW5jZSBpdCdzCisgICAgICogcG9zc2libGUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yIHRoYXQg
aXRlcmF0ZXMgYWNyb3NzIG9ubHkKKyAgICAgKiBwYXJ0IG9mIGEgdGV4dC1zdG9yYWdlIG9iamVj
dCwgdGhpcyBudW1iZXIgaXNuJ3QKKyAgICAgKiBuZWNlc3NhcmlseSAwLiAgCisgICAgICogQHJl
dHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisg
ICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0ZXIgcmV0dXJuZWQgYnkgZmlyc3QoKS4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBzdGFy
dEluZGV4KHZvaWQpIGNvbnN0OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRo
ZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9i
amVjdCBvZiB0aGUgcG9zaXRpb24gaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBjaGFyYWN0ZXIKKyAg
ICAgKiByZXR1cm5lZCBieSBsYXN0KCkuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1lcmljIGlu
ZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUg
cG9zaXRpb24gaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiByZXR1cm5l
ZCBieSBsYXN0KCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5l
IGludDMyX3QgICAgICAgZW5kSW5kZXgodm9pZCkgY29uc3Q7CisgICAgICAgIAorICAgIC8qKgor
ICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1z
dG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0ZXIgdGhlIGl0ZXJhdG9yIGN1cnJl
bnRseSByZWZlcnMgdG8KKyAgICAgKiAoaS5lLiwgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBj
dXJyZW50KCkpLiAgCisgICAgICogQHJldHVybiB0aGUgbnVtYmVyaWMgaW5kZXggaW4gdGhlIHRl
eHQtc3RvcmFnZSBvYmplY3Qgb2YgCisgICAgICogdGhlIGNoYXJhY3RlciB0aGUgaXRlcmF0b3Ig
Y3VycmVudGx5IHJlZmVycyB0bworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IGlubGluZSBpbnQzMl90ICAgICAgIGdldEluZGV4KHZvaWQpIGNvbnN0OworCisgICAgLyoqCisg
ICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBlbnRpcmUgdGV4dCBpbiB0aGUgdW5kZXJs
eWluZworICAgICAqIHRleHQtc3RvcmFnZSBvYmplY3QuCisgICAgICogQHJldHVybiB0aGUgbGVu
Z3RoIG9mIHRoZSBlbnRpcmUgdGV4dCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgICAgICAgICBn
ZXRMZW5ndGgoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBv
c2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0
aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisg
ICAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgdW5pdHMg
Zm9yd2FyZAorICAgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBu
ZWdhdGl2ZSBkZWx0YS4KKyAgICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZl
IHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgICAqIGEgbmVn
YXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4g
ZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAgICogQHJldHVybiB0aGUg
bmV3IHBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90ICAgICAgbW92ZShpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbikgPSAwOwor
CisgICAgLyoqCisgICAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8g
dGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0
aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGl0c2VsZi4KKyAgICAgKiBUaGUgbW92ZW1lbnQg
aXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSBwb2ludHMgZm9yd2FyZAorICAgICAqIG9y
IGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAg
ICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdpbi4gQSBwb3Np
dGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMg
YmFja3dhcmQuCisgICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFy
dCwga0N1cnJlbnQsIGtFbmR9CisgICAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92
ZTMyKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKSA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBDb3BpZXMgdGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcK
KyAgICAgKiByZWZlcnJlZCB0byBieSAicmVzdWx0Ii4gIAorICAgICAqIEBwYXJhbSByZXN1bHQg
UmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4gIAorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRl
eHQoVW5pY29kZVN0cmluZyYgIHJlc3VsdCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgLyoqCisg
ICAgICogRW1wdHkgY29uc3RydWN0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9y
LCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0aCBmaWVsZCBpbiB0aGlzIGJhc2UgY2xhc3MuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoaW50MzJf
dCBsZW5ndGgpOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0
aGUgbGVuZ3RoIGFuZCBwb3NpdGlvbiBmaWVsZHMgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3Qg
bGVuZ3RoLCBpbnQzMl90IHBvc2l0aW9uKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9y
LCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0aCwgc3RhcnQsIGVuZCwgYW5kIHBvc2l0aW9uIGZpZWxk
cyBpbiB0aGlzIGJhc2UgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgQ2hhcmFjdGVySXRlcmF0b3IoaW50MzJfdCBsZW5ndGgsIGludDMyX3QgdGV4dEJlZ2luLCBp
bnQzMl90IHRleHRFbmQsIGludDMyX3QgcG9zaXRpb24pOworICAKKyAgICAvKioKKyAgICAgKiBD
b3B5IGNvbnN0cnVjdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIHRoYXQgVGhlIENoYXJhY3Rl
ckl0ZXJhdG9yIHRvIGJlIGNvcGllZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIENoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IENoYXJhY3Rlckl0ZXJhdG9yICZ0aGF0KTsKKwor
ICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICBTZXRzIHRoaXMgQ2hhcmFjdGVy
SXRlcmF0b3IgdG8gaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwKKyAgICAgKiBhcyB0aGUgb25lIHBh
c3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgcGFzc2Vk
IGluLgorICAgICAqIEByZXR1cm4gdGhlIG5ld2x5IHNldCBDaGFyYWN0ZXJJdGVyYXRvci4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvciAmb3Bl
cmF0b3I9KGNvbnN0IENoYXJhY3Rlckl0ZXJhdG9yICZ0aGF0KTsKKworICAgIC8qKgorICAgICAq
IEJhc2UgY2xhc3MgdGV4dCBsZW5ndGggZmllbGQuCisgICAgICogTmVjZXNzYXJ5IHRoaXMgZm9y
IGNvcnJlY3QgZ2V0VGV4dCgpIGFuZCBoYXNoQ29kZSgpLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGludDMyX3QgdGV4dExlbmd0aDsKKworICAgIC8qKgorICAgICAqIEJh
c2UgY2xhc3MgZmllbGQgZm9yIHRoZSBjdXJyZW50IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIHBvczsKKworICAgIC8qKgorICAgICAqIEJh
c2UgY2xhc3MgZmllbGQgZm9yIHRoZSBzdGFydCBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIGJlZ2luOworCisgICAg
LyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9u
IHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIGVu
ZDsKK307CisKK2lubGluZSBVQm9vbAorRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yOjpvcGVyYXRv
ciE9KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3QgeworICAgIHJl
dHVybiAhb3BlcmF0b3I9PSh0aGF0KTsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0
ZXJhdG9yOjpzZXRUb1N0YXJ0KCkgeworICAgIHJldHVybiBtb3ZlKDAsIGtTdGFydCk7Cit9CisK
K2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6c2V0VG9FbmQoKSB7CisgICAgcmV0
dXJuIG1vdmUoMCwga0VuZCk7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRv
cjo6c3RhcnRJbmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIGJlZ2luOworfQorCitpbmxp
bmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OmVuZEluZGV4KHZvaWQpIGNvbnN0IHsKKyAg
ICByZXR1cm4gZW5kOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6Omdl
dEluZGV4KHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gcG9zOworfQorCitpbmxpbmUgaW50MzJf
dAorQ2hhcmFjdGVySXRlcmF0b3I6OmdldExlbmd0aCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJu
IHRleHRMZW5ndGg7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xv
Y2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWFkNWNiNTQ2ZWJlMzk3ZWY0MzZkZjM2NTAzZWI0MzcxYzM4NjY5
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaApAQCAt
MCwwICsxLDgxNCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdo
dCAoQykgMTk5Ni0yMDE1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29y
cG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyoKKyogRmlsZSBsb2NpZC5oCisqCisqIENyZWF0ZWQgYnk6IEhlbGVuYSBT
aGloCisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUg
ICAgICAgIERlc2NyaXB0aW9uCisqICAgMDIvMTEvOTcgICAgYWxpdSAgICAgICAgQ2hhbmdlZCBn
TG9jUGF0aCB0byBmZ0xvY1BhdGggYW5kIGFkZGVkIG1ldGhvZHMgdG8KKyogICAgICAgICAgICAg
ICAgICAgICAgICAgICBnZXQgYW5kIHNldCBpdC4KKyogICAwNC8wMi85NyAgICBhbGl1ICAgICAg
ICBNYWRlIG9wZXJhdG9yIT0gaW5saW5lOyBmaXhlZCByZXR1cm4gdmFsdWUgb2YgZ2V0TmFtZSgp
LgorKiAgIDA0LzE1Lzk3ICAgIGFsaXUgICAgICAgIENsZWFudXAgZm9yIEFJWC9XaW4zMi4KKyog
ICAwNC8yNC85NyAgICBhbGl1ICAgICAgICBOdW1lcm91cyBjaGFuZ2VzIHBlciBjb2RlIHJldmll
dy4KKyogICAwOC8xOC85OCAgICBzdGVwaGVuICAgICBBZGRlZCB0b2tlbml6ZVN0cmluZygpLGNo
YW5nZWQgZ2V0RGlzcGxheU5hbWUoKQorKiAgIDA5LzA4Lzk4ICAgIHN0ZXBoZW4gICAgIE1vdmVk
IGRlZmluaXRpb24gb2Yga0VtcHR5U3RyaW5nIGZvciBNYWMgUG9ydAorKiAgIDExLzA5Lzk5ICAg
IHdlaXYgICAgICAgIEFkZGVkIGNvbnN0IGNoYXIgKiBnZXROYW1lKCkgY29uc3Q7CisqICAgMDQv
MTIvMDAgICAgc3JsICAgICAgICAgcmVtb3ZpbmcgdW5pY29kZXN0cmluZyBhcGkncyBhbmQgY2Fj
aGVkIGhhc2ggY29kZQorKiAgIDA4LzEwLzAxICAgIGdyaG90ZW4gICAgIENoYW5nZSB0aGUgc3Rh
dGljIExvY2FsZXMgdG8gYWNjZXNzb3IgZnVuY3Rpb25zCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyovCisKKyNpZm5kZWYgTE9DSURfSAorI2RlZmluZSBMT0NJRF9ICisKKyNpbmNsdWRlICJ1bmlj
b2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdW5pc3RyLmgiCisjaW5jbHVkZSAidW5pY29kZS9wdXRpbC5oIgorI2luY2x1ZGUgInVu
aWNvZGUvdWxvYy5oIgorI2luY2x1ZGUgInVuaWNvZGUvc3RyZW51bS5oIgorCisvKioKKyAqIFxm
aWxlCisgKiBcYnJpZWYgQysrIEFQSTogTG9jYWxlIElEIG9iamVjdC4KKyAqLworCitVX05BTUVT
UEFDRV9CRUdJTgorCisvLyBGb3J3YXJkIERlY2xhcmF0aW9ucwordm9pZCBVX0NBTExDT05WIGxv
Y2FsZV9hdmFpbGFibGVfaW5pdCgpOyAvKio8IEBpbnRlcm5hbCAqLworCisvKioKKyAqIEEgPGNv
ZGU+TG9jYWxlPC9jb2RlPiBvYmplY3QgcmVwcmVzZW50cyBhIHNwZWNpZmljIGdlb2dyYXBoaWNh
bCwgcG9saXRpY2FsLAorICogb3IgY3VsdHVyYWwgcmVnaW9uLiBBbiBvcGVyYXRpb24gdGhhdCBy
ZXF1aXJlcyBhIDxjb2RlPkxvY2FsZTwvY29kZT4gdG8gcGVyZm9ybQorICogaXRzIHRhc2sgaXMg
Y2FsbGVkIDxlbT5sb2NhbGUtc2Vuc2l0aXZlPC9lbT4gYW5kIHVzZXMgdGhlIDxjb2RlPkxvY2Fs
ZTwvY29kZT4KKyAqIHRvIHRhaWxvciBpbmZvcm1hdGlvbiBmb3IgdGhlIHVzZXIuIEZvciBleGFt
cGxlLCBkaXNwbGF5aW5nIGEgbnVtYmVyCisgKiBpcyBhIGxvY2FsZS1zZW5zaXRpdmUgb3BlcmF0
aW9uLS10aGUgbnVtYmVyIHNob3VsZCBiZSBmb3JtYXR0ZWQKKyAqIGFjY29yZGluZyB0byB0aGUg
Y3VzdG9tcy9jb252ZW50aW9ucyBvZiB0aGUgdXNlcidzIG5hdGl2ZSBjb3VudHJ5LAorICogcmVn
aW9uLCBvciBjdWx0dXJlLgorICoKKyAqIFRoZSBMb2NhbGUgY2xhc3MgaXMgbm90IHN1aXRhYmxl
IGZvciBzdWJjbGFzc2luZy4KKyAqCisgKiA8UD4KKyAqIFlvdSBjYW4gY3JlYXRlIGEgPGNvZGU+
TG9jYWxlPC9jb2RlPiBvYmplY3QgdXNpbmcgdGhlIGNvbnN0cnVjdG9yIGluCisgKiB0aGlzIGNs
YXNzOgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICog
ICAgICAgTG9jYWxlKCBjb25zdCAgIGNoYXIqICBsYW5ndWFnZSwKKyAqICAgICAgICAgICAgICAg
Y29uc3QgICBjaGFyKiAgY291bnRyeSwKKyAqICAgICAgICAgICAgICAgY29uc3QgICBjaGFyKiAg
dmFyaWFudCk7CisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9u
bHkKKyAqIFRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JzIGlzIGEgdmFsaWQg
PFNUUk9ORz5JU08KKyAqIExhbmd1YWdlIENvZGUuPC9TVFJPTkc+IFRoZXNlIGNvZGVzIGFyZSB0
aGUgbG93ZXItY2FzZSB0d28tbGV0dGVyCisgKiBjb2RlcyBhcyBkZWZpbmVkIGJ5IElTTy02Mzku
CisgKiBZb3UgY2FuIGZpbmQgYSBmdWxsIGxpc3Qgb2YgdGhlc2UgY29kZXMgYXQ6CisgKiA8QlI+
PGEgaHJlZiA9Imh0dHA6Ly93d3cubG9jLmdvdi9zdGFuZGFyZHMvaXNvNjM5LTIvIj4KKyAqIGh0
dHA6Ly93d3cubG9jLmdvdi9zdGFuZGFyZHMvaXNvNjM5LTIvPC9hPgorICoKKyAqIDxQPgorICog
VGhlIHNlY29uZCBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0b3JzIGlzIGEgdmFsaWQgPFNUUk9O
Rz5JU08gQ291bnRyeQorICogQ29kZS48L1NUUk9ORz4gVGhlc2UgY29kZXMgYXJlIHRoZSB1cHBl
ci1jYXNlIHR3by1sZXR0ZXIgY29kZXMKKyAqIGFzIGRlZmluZWQgYnkgSVNPLTMxNjYuCisgKiBZ
b3UgY2FuIGZpbmQgYSBmdWxsIGxpc3Qgb2YgdGhlc2UgY29kZXMgYXQgYSBudW1iZXIgb2Ygc2l0
ZXMsIHN1Y2ggYXM6CisgKiA8QlI+PGEgaHJlZj0iaHR0cDovL3d3dy5pc28ub3JnL2lzby9lbi9w
cm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEvaW5kZXguaHRtbCI+CisgKiBodHRwOi8vd3d3Lmlzby5v
cmcvaXNvL2VuL3Byb2RzLXNlcnZpY2VzL2lzbzMxNjZtYS9pbmRleC5odG1sPC9hPgorICoKKyAq
IDxQPgorICogVGhlIHRoaXJkIGNvbnN0cnVjdG9yIHJlcXVpcmVzIGEgdGhpcmQgYXJndW1lbnQt
LXRoZSA8U1RST05HPlZhcmlhbnQuPC9TVFJPTkc+CisgKiBUaGUgVmFyaWFudCBjb2RlcyBhcmUg
dmVuZG9yIGFuZCBicm93c2VyLXNwZWNpZmljLgorICogRm9yIGV4YW1wbGUsIHVzZSBSRVZJU0VE
IGZvciBhIGxhbmdhdWdlJ3MgcmV2aXNlZCBzY3JpcHQgb3J0aG9ncmFwaHksIGFuZCBQT1NJWCBm
b3IgUE9TSVguCisgKiBXaGVyZSB0aGVyZSBhcmUgdHdvIHZhcmlhbnRzLCBzZXBhcmF0ZSB0aGVt
IHdpdGggYW4gdW5kZXJzY29yZSwgYW5kCisgKiBwdXQgdGhlIG1vc3QgaW1wb3J0YW50IG9uZSBm
aXJzdC4gRm9yCisgKiBleGFtcGxlLCBhIFRyYWRpdGlvbmFsIFNwYW5pc2ggY29sbGF0aW9uIG1p
Z2h0IGJlIHJlZmVyZW5jZWQsIHdpdGgKKyAqICJFUyIsICJFUyIsICJUcmFkaXRpb25hbF9QT1NJ
WCIuCisgKgorICogPFA+CisgKiBCZWNhdXNlIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3Qg
aXMganVzdCBhbiBpZGVudGlmaWVyIGZvciBhIHJlZ2lvbiwKKyAqIG5vIHZhbGlkaXR5IGNoZWNr
IGlzIHBlcmZvcm1lZCB3aGVuIHlvdSBjb25zdHJ1Y3QgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+Lgor
ICogSWYgeW91IHdhbnQgdG8gc2VlIHdoZXRoZXIgcGFydGljdWxhciByZXNvdXJjZXMgYXJlIGF2
YWlsYWJsZSBmb3IgdGhlCisgKiA8Y29kZT5Mb2NhbGU8L2NvZGU+IHlvdSBjb25zdHJ1Y3QsIHlv
dSBtdXN0IHF1ZXJ5IHRob3NlIHJlc291cmNlcy4gRm9yCisgKiBleGFtcGxlLCBhc2sgdGhlIDxj
b2RlPk51bWJlckZvcm1hdDwvY29kZT4gZm9yIHRoZSBsb2NhbGVzIGl0IHN1cHBvcnRzCisgKiB1
c2luZyBpdHMgPGNvZGU+Z2V0QXZhaWxhYmxlTG9jYWxlczwvY29kZT4gbWV0aG9kLgorICogPEJS
PjxTVFJPTkc+Tm90ZTo8L1NUUk9ORz4gV2hlbiB5b3UgYXNrIGZvciBhIHJlc291cmNlIGZvciBh
IHBhcnRpY3VsYXIKKyAqIGxvY2FsZSwgeW91IGdldCBiYWNrIHRoZSBiZXN0IGF2YWlsYWJsZSBt
YXRjaCwgbm90IG5lY2Vzc2FyaWx5CisgKiBwcmVjaXNlbHkgd2hhdCB5b3UgYXNrZWQgZm9yLiBG
b3IgbW9yZSBpbmZvcm1hdGlvbiwgbG9vayBhdAorICogPGNvZGU+UmVzb3VyY2VCdW5kbGU8L2Nv
ZGU+LgorICoKKyAqIDxQPgorICogVGhlIDxjb2RlPkxvY2FsZTwvY29kZT4gY2xhc3MgcHJvdmlk
ZXMgYSBudW1iZXIgb2YgY29udmVuaWVudCBjb25zdGFudHMKKyAqIHRoYXQgeW91IGNhbiB1c2Ug
dG8gY3JlYXRlIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0cyBmb3IgY29tbW9ubHkgdXNlZAor
ICogbG9jYWxlcy4gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgcmVmZXJzIHRvIGEgPGNvZGU+
TG9jYWxlPC9jb2RlPiBvYmplY3QKKyAqIGZvciB0aGUgVW5pdGVkIFN0YXRlczoKKyAqIFxodG1s
b25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICAgIExvY2FsZTo6
Z2V0VVMoKQorICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5
CisgKgorICogPFA+CisgKiBPbmNlIHlvdSd2ZSBjcmVhdGVkIGEgPGNvZGU+TG9jYWxlPC9jb2Rl
PiB5b3UgY2FuIHF1ZXJ5IGl0IGZvciBpbmZvcm1hdGlvbiBhYm91dAorICogaXRzZWxmLiBVc2Ug
PGNvZGU+Z2V0Q291bnRyeTwvY29kZT4gdG8gZ2V0IHRoZSBJU08gQ291bnRyeSBDb2RlIGFuZAor
ICogPGNvZGU+Z2V0TGFuZ3VhZ2U8L2NvZGU+IHRvIGdldCB0aGUgSVNPIExhbmd1YWdlIENvZGUu
IFlvdSBjYW4KKyAqIHVzZSA8Y29kZT5nZXREaXNwbGF5Q291bnRyeTwvY29kZT4gdG8gZ2V0IHRo
ZQorICogbmFtZSBvZiB0aGUgY291bnRyeSBzdWl0YWJsZSBmb3IgZGlzcGxheWluZyB0byB0aGUg
dXNlci4gU2ltaWxhcmx5LAorICogeW91IGNhbiB1c2UgPGNvZGU+Z2V0RGlzcGxheUxhbmd1YWdl
PC9jb2RlPiB0byBnZXQgdGhlIG5hbWUgb2YKKyAqIHRoZSBsYW5ndWFnZSBzdWl0YWJsZSBmb3Ig
ZGlzcGxheWluZyB0byB0aGUgdXNlci4gSW50ZXJlc3RpbmdseSwKKyAqIHRoZSA8Y29kZT5nZXRE
aXNwbGF5WFhYPC9jb2RlPiBtZXRob2RzIGFyZSB0aGVtc2VsdmVzIGxvY2FsZS1zZW5zaXRpdmUK
KyAqIGFuZCBoYXZlIHR3byB2ZXJzaW9uczogb25lIHRoYXQgdXNlcyB0aGUgZGVmYXVsdCBsb2Nh
bGUgYW5kIG9uZQorICogdGhhdCB0YWtlcyBhIGxvY2FsZSBhcyBhbiBhcmd1bWVudCBhbmQgZGlz
cGxheXMgdGhlIG5hbWUgb3IgY291bnRyeSBpbgorICogYSBsYW5ndWFnZSBhcHByb3ByaWF0ZSB0
byB0aGF0IGxvY2FsZS4KKyAqCisgKiA8UD4KKyAqIElDVSBwcm92aWRlcyBhIG51bWJlciBvZiBj
bGFzc2VzIHRoYXQgcGVyZm9ybSBsb2NhbGUtc2Vuc2l0aXZlCisgKiBvcGVyYXRpb25zLiBGb3Ig
ZXhhbXBsZSwgdGhlIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gY2xhc3MgZm9ybWF0cworICog
bnVtYmVycywgY3VycmVuY3ksIG9yIHBlcmNlbnRhZ2VzIGluIGEgbG9jYWxlLXNlbnNpdGl2ZSBt
YW5uZXIuIENsYXNzZXMKKyAqIHN1Y2ggYXMgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBoYXZl
IGEgbnVtYmVyIG9mIGNvbnZlbmllbmNlIG1ldGhvZHMKKyAqIGZvciBjcmVhdGluZyBhIGRlZmF1
bHQgb2JqZWN0IG9mIHRoYXQgdHlwZS4gRm9yIGV4YW1wbGUsIHRoZQorICogPGNvZGU+TnVtYmVy
Rm9ybWF0PC9jb2RlPiBjbGFzcyBwcm92aWRlcyB0aGVzZSB0aHJlZSBjb252ZW5pZW5jZSBtZXRo
b2RzCisgKiBmb3IgY3JlYXRpbmcgYSBkZWZhdWx0IDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4g
b2JqZWN0OgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgor
ICogICAgIFVFcnJvckNvZGUgc3VjY2VzcyA9IFVfWkVST19FUlJPUjsKKyAqICAgICBMb2NhbGUg
bXlMb2NhbGU7CisgKiAgICAgTnVtYmVyRm9ybWF0ICpuZjsKKyAqCisgKiAgICAgbmYgPSBOdW1i
ZXJGb3JtYXQ6OmNyZWF0ZUluc3RhbmNlKCBzdWNjZXNzICk7ICAgICAgICAgIGRlbGV0ZSBuZjsK
KyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlQ3VycmVuY3lJbnN0YW5jZSggc3VjY2Vz
cyApOyAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVQZXJjZW50
SW5zdGFuY2UoIHN1Y2Nlc3MgKTsgICBkZWxldGUgbmY7CisgKiA8L3ByZT4KKyAqIFxodG1sb25s
eTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIEVhY2ggb2YgdGhlc2UgbWV0aG9kcyBoYXMg
dHdvIHZhcmlhbnRzOyBvbmUgd2l0aCBhbiBleHBsaWNpdCBsb2NhbGUKKyAqIGFuZCBvbmUgd2l0
aG91dDsgdGhlIGxhdHRlciB1c2luZyB0aGUgZGVmYXVsdCBsb2NhbGUuCisgKiBcaHRtbG9ubHk8
YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgbmYgPSBOdW1iZXJGb3Jt
YXQ6OmNyZWF0ZUluc3RhbmNlKCBteUxvY2FsZSwgc3VjY2VzcyApOyAgICAgICAgICBkZWxldGUg
bmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUN1cnJlbmN5SW5zdGFuY2UoIG15
TG9jYWxlLCBzdWNjZXNzICk7ICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6
OmNyZWF0ZVBlcmNlbnRJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgICBkZWxldGUgbmY7
CisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIEEg
PGNvZGU+TG9jYWxlPC9jb2RlPiBpcyB0aGUgbWVjaGFuaXNtIGZvciBpZGVudGlmeWluZyB0aGUg
a2luZCBvZiBvYmplY3QKKyAqICg8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+KSB0aGF0IHlvdSB3
b3VsZCBsaWtlIHRvIGdldC4gVGhlIGxvY2FsZSBpcworICogPFNUUk9ORz5qdXN0PC9TVFJPTkc+
IGEgbWVjaGFuaXNtIGZvciBpZGVudGlmeWluZyBvYmplY3RzLAorICogPFNUUk9ORz5ub3Q8L1NU
Uk9ORz4gYSBjb250YWluZXIgZm9yIHRoZSBvYmplY3RzIHRoZW1zZWx2ZXMuCisgKgorICogPFA+
CisgKiBFYWNoIGNsYXNzIHRoYXQgcGVyZm9ybXMgbG9jYWxlLXNlbnNpdGl2ZSBvcGVyYXRpb25z
IGFsbG93cyB5b3UKKyAqIHRvIGdldCBhbGwgdGhlIGF2YWlsYWJsZSBvYmplY3RzIG9mIHRoYXQg
dHlwZS4gWW91IGNhbiBzaWZ0CisgKiB0aHJvdWdoIHRoZXNlIG9iamVjdHMgYnkgbGFuZ3VhZ2Us
IGNvdW50cnksIG9yIHZhcmlhbnQsCisgKiBhbmQgdXNlIHRoZSBkaXNwbGF5IG5hbWVzIHRvIHBy
ZXNlbnQgYSBtZW51IHRvIHRoZSB1c2VyLgorICogRm9yIGV4YW1wbGUsIHlvdSBjYW4gY3JlYXRl
IGEgbWVudSBvZiBhbGwgdGhlIGNvbGxhdGlvbiBvYmplY3RzCisgKiBzdWl0YWJsZSBmb3IgYSBn
aXZlbiBsYW5ndWFnZS4gU3VjaCBjbGFzc2VzIGltcGxlbWVudCB0aGVzZQorICogdGhyZWUgY2xh
c3MgbWV0aG9kczoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHBy
ZT4KKyAqICAgICAgIHN0YXRpYyBMb2NhbGUqIGdldEF2YWlsYWJsZUxvY2FsZXMoaW50MzJfdCYg
bnVtTG9jYWxlcykKKyAqICAgICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBnZXREaXNwbGF5TmFt
ZShjb25zdCBMb2NhbGUmICBvYmplY3RMb2NhbGUsCisgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxlJiAgZGlzcGxheUxvY2FsZSwKKyAqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBk
aXNwbGF5TmFtZSkKKyAqICAgICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBnZXREaXNwbGF5TmFt
ZShjb25zdCBMb2NhbGUmICBvYmplY3RMb2NhbGUsCisgKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcGxheU5hbWUpCisgKiA8L3By
ZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqCisgKiBAc3RhYmxl
IElDVSAyLjAKKyAqIEBzZWUgUmVzb3VyY2VCdW5kbGUKKyAqLworY2xhc3MgVV9DT01NT05fQVBJ
IExvY2FsZSA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1YmxpYzoKKyAgICAvKiogVXNlZnVsIGNvbnN0
YW50IGZvciB0aGUgUm9vdCBsb2NhbGUuIEBzdGFibGUgSUNVIDQuNCAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRSb290KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRFbmdsaXNoKHZvaWQpOworICAgIC8qKiBVc2VmdWwg
Y29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRp
YyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRGcmVuY2godm9pZCk7CisgICAgLyoqIFVzZWZ1
bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3Rh
dGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEdlcm1hbih2b2lkKTsKKyAgICAvKiogVXNl
ZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBz
dGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SXRhbGlhbih2b2lkKTsKKyAgICAvKiog
VXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAg
ICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SmFwYW5lc2Uodm9pZCk7CisgICAg
LyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEtvcmVhbih2b2lkKTsKKyAg
ICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAg
Ki8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2hpbmVzZSh2b2lkKTsK
KyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAy
LjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0U2ltcGxpZmllZENo
aW5lc2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4g
QHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdl
dFRyYWRpdGlvbmFsQ2hpbmVzZSh2b2lkKTsKKworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9y
IHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25z
dCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRGcmFuY2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25z
dGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3Rh
dGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEdlcm1hbnkodm9pZCk7CisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEl0YWx5KHZvaWQpOworICAg
IC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNV
IDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRKYXBhbih2b2lk
KTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3Rh
YmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0S29y
ZWEodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lv
bi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQy
IGdldENoaW5hKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRy
eS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVf
RVhQT1JUMiBnZXRQUkModm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBj
b3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2Fs
ZSAmVV9FWFBPUlQyIGdldFRhaXdhbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZv
ciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VUsodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFu
dCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFVTKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDYW5hZGEodm9pZCk7CisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENhbmFkYUZyZW5jaCh2b2lk
KTsKKworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgZGVmYXVsdCBsb2NhbGUgb2JqZWN0
LCBhIExvY2FsZSBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIElELgorICAgICAqCisgICAgICogQHNl
ZSBnZXREZWZhdWx0CisgICAgICogQHNlZSB1bG9jX2dldERlZmF1bHQKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0
cnVjdCBhIGxvY2FsZSBmcm9tIGxhbmd1YWdlLCBjb3VudHJ5LCB2YXJpYW50LgorICAgICAqIElm
IGFuIGVycm9yIG9jY3VycywgdGhlbiB0aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgImJv
Z3VzIgorICAgICAqIChpc0JvZ3VzKCkgd2lsbCByZXR1cm4gVFJVRSkuCisgICAgICoKKyAgICAg
KiBAcGFyYW0gbGFuZ3VhZ2UgTG93ZXJjYXNlIHR3by1sZXR0ZXIgb3IgdGhyZWUtbGV0dGVyIElT
Ty02MzkgY29kZS4KKyAgICAgKiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGluc3RlYWQgYmUgYW4gSUNV
IHN0eWxlIEMgbG9jYWxlIChlLmcuICJlbl9VUyIpLAorICAgICAqICBidXQgdGhlIG90aGVyIHBh
cmFtZXRlcnMgbXVzdCBub3QgYmUgdXNlZC4KKyAgICAgKiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGJl
IE5VTEw7IGlmIHNvLAorICAgICAqICB0aGUgbG9jYWxlIGlzIGluaXRpYWxpemVkIHRvIG1hdGNo
IHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAqICAoVGhpcyBpcyB0aGUgc2FtZSBh
cyB1c2luZyB0aGUgZGVmYXVsdCBjb25zdHJ1Y3Rvci4pCisgICAgICogIFBsZWFzZSBub3RlOiBU
aGUgSmF2YSBMb2NhbGUgY2xhc3MgZG9lcyBOT1QgYWNjZXB0IHRoZSBmb3JtCisgICAgICogICdu
ZXcgTG9jYWxlKCJlbl9VUyIpJyBidXQgb25seSAnbmV3IExvY2FsZSgiZW4iLCJVUyIpJworICAg
ICAqCisgICAgICogQHBhcmFtIGNvdW50cnkgIFVwcGVyY2FzZSB0d28tbGV0dGVyIElTTy0zMTY2
IGNvZGUuIChvcHRpb25hbCkKKyAgICAgKiBAcGFyYW0gdmFyaWFudCAgVXBwZXJjYXNlIHZlbmRv
ciBhbmQgYnJvd3NlciBzcGVjaWZpYyBjb2RlLiBTZWUgY2xhc3MKKyAgICAgKiAgICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb24uIChvcHRpb25hbCkKKyAgICAgKiBAcGFyYW0ga2V5d29yZHNBbmRW
YWx1ZXMgQSBzdHJpbmcgY29uc2lzdGluZyBvZiBrZXl3b3JkL3ZhbHVlcyBwYWlycywgc3VjaCBh
cworICAgICAqICAgICAgICAgICAgICAgICAiY29sbGF0aW9uPXBob25lYm9vaztjdXJyZW5jeT1l
dXJvIgorICAgICAqCisgICAgICogQHNlZSBnZXREZWZhdWx0CisgICAgICogQHNlZSB1bG9jX2dl
dERlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUoIGNv
bnN0ICAgY2hhciAqIGxhbmd1YWdlLAorICAgICAgICAgICAgY29uc3QgICBjaGFyICogY291bnRy
eSAgPSAwLAorICAgICAgICAgICAgY29uc3QgICBjaGFyICogdmFyaWFudCAgPSAwLAorICAgICAg
ICAgICAgY29uc3QgICBjaGFyICoga2V5d29yZHNBbmRWYWx1ZXMgPSAwKTsKKworICAgIC8qKgor
ICAgICAqIEluaXRpYWxpemVzIGEgTG9jYWxlIG9iamVjdCBmcm9tIGFub3RoZXIgTG9jYWxlIG9i
amVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgTG9jYWxlIG9iamVjdCBiZWlu
ZyBjb3BpZWQgaW4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxl
KGNvbnN0ICAgIExvY2FsZSYgb3RoZXIpOworCisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9y
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+TG9jYWxlKCkg
OworCisgICAgLyoqCisgICAgICogUmVwbGFjZXMgdGhlIGVudGlyZSBjb250ZW50cyBvZiAqdGhp
cyB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIg
VGhlIExvY2FsZSBvYmplY3QgYmVpbmcgY29waWVkIGluLgorICAgICAqIEByZXR1cm4gICAgICAq
dGhpcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZSYgb3BlcmF0
b3I9KGNvbnN0IExvY2FsZSYgb3RoZXIpOworCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHR3
byBsb2NhbGUga2V5cyBhcmUgdGhlIHNhbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIg
VGhlIGxvY2FsZSBrZXkgb2JqZWN0IHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcy4KKyAgICAgKiBA
cmV0dXJuICAgICAgVHJ1ZSBpZiB0aGUgdHdvIGxvY2FsZSBrZXlzIGFyZSB0aGUgc2FtZSwgZmFs
c2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29s
ICAgb3BlcmF0b3I9PShjb25zdCAgICBMb2NhbGUmICAgICBvdGhlcikgY29uc3Q7CisKKyAgICAv
KioKKyAgICAgKiBDaGVja3MgaWYgdHdvIGxvY2FsZSBrZXlzIGFyZSBub3QgdGhlIHNhbWUuCisg
ICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIGxvY2FsZSBrZXkgb2JqZWN0IHRvIGJlIGNv
bXBhcmVkIHdpdGggdGhpcy4KKyAgICAgKiBAcmV0dXJuICAgICAgVHJ1ZSBpZiB0aGUgdHdvIGxv
Y2FsZSBrZXlzIGFyZSBub3QgdGhlIHNhbWUsIGZhbHNlCisgICAgICogICAgICAgICAgICAgIG90
aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCAgIG9w
ZXJhdG9yIT0oY29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0OworCisgICAgLyoqCisg
ICAgICogQ2xvbmUgdGhpcyBvYmplY3QuCisgICAgICogQ2xvbmVzIGNhbiBiZSB1c2VkIGNvbmN1
cnJlbnRseSBpbiBtdWx0aXBsZSB0aHJlYWRzLgorICAgICAqIElmIGFuIGVycm9yIG9jY3Vycywg
dGhlbiBOVUxMIGlzIHJldHVybmVkLgorICAgICAqIFRoZSBjYWxsZXIgbXVzdCBkZWxldGUgdGhl
IGNsb25lLgorICAgICAqCisgICAgICogQHJldHVybiBhIGNsb25lIG9mIHRoaXMgb2JqZWN0Cisg
ICAgICoKKyAgICAgKiBAc2VlIGdldER5bmFtaWNDbGFzc0lECisgICAgICogQHN0YWJsZSBJQ1Ug
Mi44CisgICAgICovCisgICAgTG9jYWxlICpjbG9uZSgpIGNvbnN0OworCisjaWZuZGVmIFVfSElE
RV9TWVNURU1fQVBJCisgICAgLyoqCisgICAgICogQ29tbW9uIG1ldGhvZHMgb2YgZ2V0dGluZyB0
aGUgY3VycmVudCBkZWZhdWx0IExvY2FsZS4gVXNlZCBmb3IgdGhlCisgICAgICogcHJlc2VudGF0
aW9uOiBtZW51cywgZGlhbG9ncywgZXRjLiBHZW5lcmFsbHkgc2V0IG9uY2Ugd2hlbiB5b3VyIGFw
cGxldCBvcgorICAgICAqIGFwcGxpY2F0aW9uIGlzIGluaXRpYWxpemVkLCB0aGVuIG5ldmVyIHJl
c2V0LiAoSWYgeW91IGRvIHJlc2V0IHRoZQorICAgICAqIGRlZmF1bHQgbG9jYWxlLCB5b3UgcHJv
YmFibHkgd2FudCB0byByZWxvYWQgeW91ciBHVUksIHNvIHRoYXQgdGhlIGNoYW5nZQorICAgICAq
IGlzIHJlZmxlY3RlZCBpbiB5b3VyIGludGVyZmFjZS4pCisgICAgICoKKyAgICAgKiBNb3JlIGFk
dmFuY2VkIHByb2dyYW1zIHdpbGwgYWxsb3cgdXNlcnMgdG8gdXNlIGRpZmZlcmVudCBsb2NhbGVz
IGZvcgorICAgICAqIGRpZmZlcmVudCBmaWVsZHMsIGUuZy4gaW4gYSBzcHJlYWRzaGVldC4KKyAg
ICAgKgorICAgICAqIE5vdGUgdGhhdCB0aGUgaW5pdGlhbCBzZXR0aW5nIHdpbGwgbWF0Y2ggdGhl
IGhvc3Qgc3lzdGVtLgorICAgICAqIEByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhlIExvY2FsZSBv
YmplY3QgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBJRAorICAgICAqIEBzeXN0ZW0KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlJiBVX0VYUE9S
VDIgZ2V0RGVmYXVsdCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRlZmF1bHQu
IE5vcm1hbGx5IHNldCBvbmNlIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBwcm9jZXNzLAorICAgICAq
IHRoZW4gbmV2ZXIgcmVzZXQuCisgICAgICogc2V0RGVmYXVsdCgpIG9ubHkgY2hhbmdlcyBJQ1Un
cyBkZWZhdWx0IGxvY2FsZSBJRCwgPHN0cm9uZz5ub3Q8L3N0cm9uZz4KKyAgICAgKiB0aGUgZGVm
YXVsdCBsb2NhbGUgSUQgb2YgdGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQuCisgICAgICoKKyAgICAg
KiBAcGFyYW0gbmV3TG9jYWxlIExvY2FsZSB0byBzZXQgdG8uICBJZiBOVUxMLCBzZXQgdG8gdGhl
IHZhbHVlIG9idGFpbmVkCisgICAgICogICAgICAgICAgICAgICAgICBmcm9tIHRoZSBydW50aW1l
IGVudmlyb25lbWVudC4KKyAgICAgKiBAcGFyYW0gc3VjY2VzcyBUaGUgZXJyb3IgY29kZS4KKyAg
ICAgKiBAc3lzdGVtCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGlj
IHZvaWQgVV9FWFBPUlQyIHNldERlZmF1bHQoY29uc3QgTG9jYWxlJiBuZXdMb2NhbGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSYgICBzdWNjZXNzKTsK
KyNlbmRpZiAgLyogVV9ISURFX1NZU1RFTV9BUEkgKi8KKworICAgIC8qKgorICAgICAqIENyZWF0
ZXMgYSBsb2NhbGUgd2hpY2ggaGFzIGhhZCBtaW5pbWFsIGNhbm9uaWNhbGl6YXRpb24KKyAgICAg
KiBhcyBwZXIgdWxvY19nZXROYW1lKCkuCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgdG8g
Y3JlYXRlIGZyb20uICBJZiBuYW1lIGlzIG51bGwsCisgICAgICogIHRoZSBkZWZhdWx0IExvY2Fs
ZSBpcyB1c2VkLgorICAgICAqIEByZXR1cm4gbmV3IGxvY2FsZSBvYmplY3QKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKiBAc2VlIHVsb2NfZ2V0TmFtZQorICAgICAqLworICAgIHN0YXRp
YyBMb2NhbGUgVV9FWFBPUlQyIGNyZWF0ZUZyb21OYW1lKGNvbnN0IGNoYXIgKm5hbWUpOworCisg
ICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGxvY2FsZSBmcm9tIHRoZSBnaXZlbiBzdHJpbmcgYWZ0
ZXIgY2Fub25pY2FsaXppbmcKKyAgICAgKiB0aGUgc3RyaW5nIGJ5IGNhbGxpbmcgdWxvY19jYW5v
bmljYWxpemUoKS4KKyAgICAgKiBAcGFyYW0gbmFtZSB0aGUgbG9jYWxlIElEIHRvIGNyZWF0ZSBm
cm9tLiAgTXVzdCBub3QgYmUgTlVMTC4KKyAgICAgKiBAcmV0dXJuIGEgbmV3IGxvY2FsZSBvYmpl
Y3QgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDMu
MAorICAgICAqIEBzZWUgdWxvY19jYW5vbmljYWxpemUKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9j
YWxlIFVfRVhQT1JUMiBjcmVhdGVDYW5vbmljYWwoY29uc3QgY2hhciogbmFtZSk7CisKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tNjM5IGxhbmd1YWdlIGNvZGUuCisg
ICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0TGFuZ3VhZ2UoICkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tMTU5MjQg
YWJicmV2aWF0aW9uIHNjcmlwdCBjb2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0
byB0aGUgY29kZQorICAgICAqIEBzZWUgdXNjcmlwdF9nZXRTaG9ydE5hbWUKKyAgICAgKiBAc2Vl
IHVzY3JpcHRfZ2V0Q29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIGlu
bGluZSBjb25zdCBjaGFyICogIGdldFNjcmlwdCggKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIGxvY2FsZSdzIElTTy0zMTY2IGNvdW50cnkgY29kZS4KKyAgICAgKiBAcmV0
dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRDb3VudHJ5KCApIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgdmFyaWFudCBjb2RlLgorICAgICAq
IEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldFZhcmlhbnQoICkgY29uc3Q7
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBwcm9ncmFtbWF0aWMgbmFtZSBvZiB0aGUg
ZW50aXJlIGxvY2FsZSwgd2l0aCB0aGUgbGFuZ3VhZ2UsCisgICAgICogY291bnRyeSBhbmQgdmFy
aWFudCBzZXBhcmF0ZWQgYnkgdW5kZXJiYXJzLiBJZiBhIGZpZWxkIGlzIG1pc3NpbmcsIHVwCisg
ICAgICogdG8gdHdvIGxlYWRpbmcgdW5kZXJiYXJzIHdpbGwgb2NjdXIuIEV4YW1wbGU6ICJlbiIs
ICJkZV9ERSIsICJlbl9VU19XSU4iLAorICAgICAqICJkZV9fUE9TSVgiLCAiZnJfX01BQyIsICJf
X01BQyIsICJfTVQiLCAiX0ZSX0VVUk8iCisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0
byAibmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNv
bnN0IGNoYXIgKiBnZXROYW1lKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRo
ZSBwcm9ncmFtbWF0aWMgbmFtZSBvZiB0aGUgZW50aXJlIGxvY2FsZSBhcyBnZXROYW1lKCkgd291
bGQgcmV0dXJuLAorICAgICAqIGJ1dCB3aXRob3V0IGtleXdvcmRzLgorICAgICAqIEByZXR1cm4g
ICAgICBBIHBvaW50ZXIgdG8gIm5hbWUiLgorICAgICAqIEBzZWUgZ2V0TmFtZQorICAgICAqIEBz
dGFibGUgSUNVIDIuOAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRCYXNlTmFtZSgpIGNv
bnN0OworCisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBsaXN0IG9mIGtleXdvcmRzIGZvciB0
aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIHN0
YXR1cyBjb2RlCisgICAgICogQHJldHVybiBwb2ludGVyIHRvIFN0cmluZ0VudW1lcmF0aW9uIGNs
YXNzLCBvciBOVUxMIGlmIHRoZXJlIGFyZSBubyBrZXl3b3Jkcy4gCisgICAgICogQ2xpZW50IG11
c3QgZGlzcG9zZSBvZiBpdCBieSBjYWxsaW5nIGRlbGV0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjgKKyAgICAgKi8KKyAgICBTdHJpbmdFbnVtZXJhdGlvbiAqIGNyZWF0ZUtleXdvcmRzKFVFcnJv
ckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB2YWx1ZSBm
b3IgYSBrZXl3b3JkLgorICAgICAqCisgICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2Yg
dGhlIGtleXdvcmQgZm9yIHdoaWNoIHdlIHdhbnQgdGhlIHZhbHVlLiBDYXNlIGluc2Vuc2l0aXZl
LgorICAgICAqIEBwYXJhbSBidWZmZXIgVGhlIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBrZXl3b3Jk
IHZhbHVlLgorICAgICAqIEBwYXJhbSBidWZmZXJDYXBhY2l0eSBUaGUgY2FwYWNpdHkgb2YgcmVj
ZWl2aW5nIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBzdGF0dXMgUmV0dXJucyBhbnkgZXJyb3IgaW5m
b3JtYXRpb24gd2hpbGUgcGVyZm9ybWluZyB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJu
IHRoZSBsZW5ndGggb2YgdGhlIGtleXdvcmQgdmFsdWUKKyAgICAgKgorICAgICAqIEBzdGFibGUg
SUNVIDIuOAorICAgICAqLworICAgIGludDMyX3QgZ2V0S2V5d29yZFZhbHVlKGNvbnN0IGNoYXIq
IGtleXdvcmROYW1lLCBjaGFyICpidWZmZXIsIGludDMyX3QgYnVmZmVyQ2FwYWNpdHksIFVFcnJv
ckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIG9yIHJlbW92ZXMg
dGhlIHZhbHVlIGZvciBhIGtleXdvcmQuCisgICAgICoKKyAgICAgKiBGb3IgcmVtb3ZpbmcgYWxs
IGtleXdvcmRzLCB1c2UgZ2V0QmFzZU5hbWUoKSwKKyAgICAgKiBhbmQgY29uc3RydWN0IGEgbmV3
IExvY2FsZSBpZiBpdCBkaWZmZXJzIGZyb20gZ2V0TmFtZSgpLgorICAgICAqCisgICAgICogQHBh
cmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgdG8gYmUgc2V0LiBDYXNlIGluc2Vu
c2l0aXZlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkVmFsdWUgdmFsdWUgb2YgdGhlIGtleXdvcmQg
dG8gYmUgc2V0LiBJZiAwLWxlbmd0aCBvcgorICAgICAqICBOVUxMLCB3aWxsIHJlc3VsdCBpbiB0
aGUga2V5d29yZCBiZWluZyByZW1vdmVkLiBObyBlcnJvciBpcyBnaXZlbiBpZgorICAgICAqICB0
aGF0IGtleXdvcmQgZG9lcyBub3QgZXhpc3QuCisgICAgICogQHBhcmFtIHN0YXR1cyBSZXR1cm5z
IGFueSBlcnJvciBpbmZvcm1hdGlvbiB3aGlsZSBwZXJmb3JtaW5nIHRoaXMgb3BlcmF0aW9uLgor
ICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgNDkKKyAgICAgKi8KKyAgICB2b2lkIHNldEtleXdv
cmRWYWx1ZShjb25zdCBjaGFyKiBrZXl3b3JkTmFtZSwgY29uc3QgY2hhcioga2V5d29yZFZhbHVl
LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogcmV0dXJucyB0aGUgbG9j
YWxlJ3MgdGhyZWUtbGV0dGVyIGxhbmd1YWdlIGNvZGUsIGFzIHNwZWNpZmllZAorICAgICAqIGlu
IElTTyBkcmFmdCBzdGFuZGFyZCBJU08tNjM5LTIuCisgICAgICogQHJldHVybiAgICAgIEFuIGFs
aWFzIHRvIHRoZSBjb2RlLCBvciBhbiBlbXB0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0SVNPM0xhbmd1YWdlKCkgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAibmFtZSIgd2l0aCB0aGUgbG9jYWxlJ3MgdGhyZWUt
bGV0dGVyIElTTy0zMTY2IGNvdW50cnkgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxp
YXMgdG8gdGhlIGNvZGUsIG9yIGFuIGVtcHR5IHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRJU08zQ291bnRyeSgpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgV2luZG93cyBMQ0lEIHZhbHVlIGNvcnJlc3BvbmRp
bmcgdG8gdGhpcyBsb2NhbGUuCisgICAgICogVGhpcyB2YWx1ZSBpcyBzdG9yZWQgaW4gdGhlIHJl
c291cmNlIGRhdGEgZm9yIHRoZSBsb2NhbGUgYXMgYSBvbmUtdG8tZm91ci1kaWdpdAorICAgICAq
IGhleGFkZWNpbWFsIG51bWJlci4gIElmIHRoZSByZXNvdXJjZSBpcyBtaXNzaW5nLCBpbiB0aGUg
d3JvbmcgZm9ybWF0LCBvcgorICAgICAqIHRoZXJlIGlzIG5vIFdpbmRvd3MgTENJRCB2YWx1ZSB0
aGF0IGNvcnJlc3BvbmRzIHRvIHRoaXMgbG9jYWxlLCByZXR1cm5zIDAuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdWludDMyX3QgICAgICAgIGdldExDSUQodm9pZCkgY29u
c3Q7CisKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorICAgIC8qKgorICAgICAqIFJldHVybnMg
d2hldGhlciB0aGlzIGxvY2FsZSdzIHNjcmlwdCBpcyB3cml0dGVuIHJpZ2h0LXRvLWxlZnQuCisg
ICAgICogSWYgdGhlcmUgaXMgbm8gc2NyaXB0IHN1YnRhZywgdGhlbiB0aGUgbGlrZWx5IHNjcmlw
dCBpcyB1c2VkLCBzZWUgdWxvY19hZGRMaWtlbHlTdWJ0YWdzKCkuCisgICAgICogSWYgbm8gbGlr
ZWx5IHNjcmlwdCBpcyBrbm93biwgdGhlbiBGQUxTRSBpcyByZXR1cm5lZC4KKyAgICAgKgorICAg
ICAqIEEgc2NyaXB0IGlzIHJpZ2h0LXRvLWxlZnQgYWNjb3JkaW5nIHRvIHRoZSBDTERSIHNjcmlw
dCBtZXRhZGF0YQorICAgICAqIHdoaWNoIGNvcnJlc3BvbmRzIHRvIHdoZXRoZXIgdGhlIHNjcmlw
dCdzIGxldHRlcnMgaGF2ZSBCaWRpX0NsYXNzPVIgb3IgQUwuCisgICAgICoKKyAgICAgKiBSZXR1
cm5zIFRSVUUgZm9yICJhciIgYW5kICJlbi1IZWJyIiwgRkFMU0UgZm9yICJ6aCIgYW5kICJmYS1D
eXJsIi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0
IGlzIHdyaXR0ZW4gcmlnaHQtdG8tbGVmdAorICAgICAqIEBkcmFmdCBJQ1UgNTQKKyAgICAgKi8K
KyAgICBVQm9vbCBpc1JpZ2h0VG9MZWZ0KCkgY29uc3Q7CisjZW5kaWYgIC8qIFVfSElERV9EUkFG
VF9BUEkgKi8KKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwTGFuZyIgd2l0aCB0aGUg
bmFtZSBvZiB0aGlzIGxvY2FsZSdzIGxhbmd1YWdlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvcgor
ICAgICAqIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwg
aWYgdGhlIGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMKKyAgICAgKiAiZnIiIGFuZCB0aGUgZGVm
YXVsdCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQg
c2V0CisgICAgICogZGlzcExhbmcgdG8gIkZyZW5jaCIuCisgICAgICogQHBhcmFtIGRpc3BMYW5n
ICBSZWNlaXZlcyB0aGUgbGFuZ3VhZ2UncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAg
ICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcExhbmciLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TGFuZ3VhZ2UoVW5pY29k
ZVN0cmluZyYgICBkaXNwTGFuZykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAi
ZGlzcExhbmciIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBpbiBhIGZv
cm1hdCBzdWl0YWJsZSBmb3IKKyAgICAgKiB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVj
aWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncwor
ICAgICAqIGxhbmd1YWdlIGNvZGUgaXMgImVuIiBhbmQgZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdl
IGNvZGUgaXMgImZyIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwTGFuZyB0
byAiQW5nbGFpcyIuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUg
bG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIEluIG90aGVyIHdvcmRzLAor
ICAgICAqICAgICAgICAgICAgICAgICAgaWYgdGhlIGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMg
ImVuIiwgcGFzc2luZyBMb2NhbGU6OmdldEZyZW5jaCgpIGZvcgorICAgICAqICAgICAgICAgICAg
ICAgICAgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIkFuZ2xhaXMiLCB3aGlsZSBwYXNz
aW5nIExvY2FsZTo6Z2V0R2VybWFuKCkKKyAgICAgKiAgICAgICAgICAgICAgICAgIGZvciBkaXNw
bGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiRW5nbGlzY2giLgorICAgICAqIEBwYXJhbSBkaXNw
TGFuZyAgUmVjZWl2ZXMgdGhlIGxhbmd1YWdlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1
cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BMYW5nIi4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUxhbmd1YWdlKCBj
b25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BMYW5nKSBj
b25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwU2NyaXB0IiB3aXRoIHRoZSBu
YW1lIG9mIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICog
Zm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwgaWYg
dGhlIGxvY2FsZSdzIHNjcmlwdCBjb2RlCisgICAgICogaXMgIkxBVE4iIGFuZCB0aGUgZGVmYXVs
dCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0
CisgICAgICogZGlzcFNjcmlwdCB0byAiTGF0aW4iLgorICAgICAqIEBwYXJhbSBkaXNwU2NyaXB0
ICAgIFJlY2VpdmVzIHRoZSBzY3JpcHRzJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4g
ICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwU2NyaXB0Ii4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjgKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheVNjcmlwdCgg
ICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcFNjcmlwdCkgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBGaWxscyBpbiAiZGlzcFNjcmlwdCIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdz
IGNvdW50cnkgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGlu
IHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBp
ZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBzY3JpcHQgY29kZSBpcyAiTEFUTiIgYW5kIGRpc3BsYXlM
b2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0Cisg
ICAgICogZGlzcFNjcmlwdCB0byAiTGF0aW4iLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxl
ICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1l
LiAgSW4gb3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB3b3JkcywgaWYgdGhlIGxv
Y2FsZSdzIHNjcmlwdCBjb2RlIGlzICJMQVROIiwgcGFzc2luZworICAgICAqICAgICAgICAgICAg
ICAgICAgICAgIExvY2FsZTo6Z2V0RnJlbmNoKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVz
dWx0IGluICIiLCB3aGlsZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHBhc3NpbmcgTG9j
YWxlOjpnZXRHZXJtYW4oKSBmb3IgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4KKyAgICAg
KiAgICAgICAgICAgICAgICAgICAgICAiIi4KKyAgICAgKiBAcGFyYW0gZGlzcFNjcmlwdCAgICBS
ZWNlaXZlcyB0aGUgc2NyaXB0cydzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAg
ICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFNjcmlwdCIuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi44CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlTY3JpcHQoICBjb25z
dCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgZGlzcFNjcmlwdCkgY29u
c3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcENvdW50cnkiIHdpdGggdGhlIG5h
bWUgb2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICog
Zm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwgaWYg
dGhlIGxvY2FsZSdzIGNvdW50cnkgY29kZQorICAgICAqIGlzICJGUiIgYW5kIHRoZSBkZWZhdWx0
IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQK
KyAgICAgKiBkaXNwQ291bnRyeSB0byAiRnJhbmNlIi4KKyAgICAgKiBAcGFyYW0gZGlzcENvdW50
cnkgICBSZWNlaXZlcyB0aGUgY291bnRyeSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJu
ICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcENvdW50cnkiLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5Q291bnRy
eSggICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcENvdW50cnkpIGNvbnN0OworCisgICAgLyoq
CisgICAgICogRmlsbHMgaW4gImRpc3BDb3VudHJ5IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9j
YWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3Bs
YXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgRm9yIGV4YW1w
bGUsIGlmIHRoZSBsb2NhbGUncworICAgICAqIGNvdW50cnkgY29kZSBpcyAiVVMiIGFuZCBkaXNw
bGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZnIiLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNl
dAorICAgICAqIGRpc3BDb3VudHJ5IHRvICImRWFjdXRlO3RhdHMtVW5pcyIuCisgICAgICogQHBh
cmFtIGRpc3BsYXlMb2NhbGUgICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRv
IGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAg
IHdvcmRzLCBpZiB0aGUgbG9jYWxlJ3MgY291bnRyeSBjb2RlIGlzICJVUyIsIHBhc3NpbmcKKyAg
ICAgKiAgICAgICAgICAgICAgICAgICAgICBMb2NhbGU6OmdldEZyZW5jaCgpIGZvciBkaXNwbGF5
TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiJkVhY3V0ZTt0YXRzLVVuaXMiLCB3aGlsZQorICAgICAq
ICAgICAgICAgICAgICAgICAgICAgIHBhc3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKSBmb3IgZGlz
cGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAi
VmVyZWluaWd0ZSBTdGFhdGVuIi4KKyAgICAgKiBAcGFyYW0gZGlzcENvdW50cnkgICBSZWNlaXZl
cyB0aGUgY291bnRyeSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAg
ICBBIHJlZmVyZW5jZSB0byAiZGlzcENvdW50cnkiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5Q291bnRyeSggIGNvbnN0ICAg
TG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgZGlzcENvdW50cnkpIGNvbnN0
OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BWYXIiIHdpdGggdGhlIG5hbWUgb2Yg
dGhpcyBsb2NhbGUncyB2YXJpYW50IGNvZGUgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBm
b3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlz
cFZhciAgIFJlY2VpdmVzIHRoZSB2YXJpYW50J3MgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAg
ICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwVmFyIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheVZhcmlhbnQoICAgICAgVW5pY29k
ZVN0cmluZyYgZGlzcFZhcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlz
cFZhciIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgY29kZSBpbiBhIGZv
cm1hdAorICAgICAqIHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVj
aWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBT
cGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAg
ICogQHBhcmFtIGRpc3BWYXIgICBSZWNlaXZlcyB0aGUgdmFyaWFudCdzIGRpc3BsYXkgbmFtZS4K
KyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwVmFyIi4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxh
eVZhcmlhbnQoICBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYg
IGRpc3BWYXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGgg
dGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIHVzZXIgZGlz
cGxheQorICAgICAqIGluIHRoZSBkZWZhdWx0IGxvY2FsZS4gIFRoaXMgZnVuY3Rpb24gdXNlcyBn
ZXREaXNwbGF5TGFuZ3VhZ2UoKSwgZ2V0RGlzcGxheUNvdW50cnkoKSwKKyAgICAgKiBhbmQgZ2V0
RGlzcGxheVZhcmlhbnQoKSB0byBkbyBpdHMgd29yaywgYW5kIG91dHB1dHMgdGhlIGRpc3BsYXkg
bmFtZSBpbiB0aGUgZm9ybWF0CisgICAgICogImxhbmd1YWdlIChjb3VudHJ5Wyx2YXJpYW50XSki
LiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBkZWZhdWx0IGxvY2FsZSBpcyBlbl9VUywgdGhlbgorICAg
ICAqIGZyX0ZSJ3MgZGlzcGxheSBuYW1lIHdvdWxkIGJlICJGcmVuY2ggKEZyYW5jZSkiLCBhbmQg
ZXNfTVhfVHJhZGl0aW9uYWwncyBkaXNwbGF5IG5hbWUKKyAgICAgKiB3b3VsZCBiZSAiU3Bhbmlz
aCAoTWV4aWNvLFRyYWRpdGlvbmFsKSIuCisgICAgICogQHBhcmFtIG5hbWUgIFJlY2VpdmVzIHRo
ZSBsb2NhbGUncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgIEEgcmVmZXJlbmNl
IHRvICJuYW1lIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2Rl
U3RyaW5nJiAgZ2V0RGlzcGxheU5hbWUoICAgICAgICAgVW5pY29kZVN0cmluZyYgIG5hbWUpIGNv
bnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIG5hbWUgb2Yg
dGhpcyBsb2NhbGUgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIHVzZXIgZGlzcGxheQorICAgICAq
IGluIHRoZSBsb2NhbGUgc3BlY2ZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgVGhpcyBmdW5jdGlv
biB1c2VzIGdldERpc3BsYXlMYW5ndWFnZSgpLAorICAgICAqIGdldERpc3BsYXlDb3VudHJ5KCks
IGFuZCBnZXREaXNwbGF5VmFyaWFudCgpIHRvIGRvIGl0cyB3b3JrLCBhbmQgb3V0cHV0cyB0aGUg
ZGlzcGxheQorICAgICAqIG5hbWUgaW4gdGhlIGZvcm1hdCAibGFuZ3VhZ2UgKGNvdW50cnlbLHZh
cmlhbnRdKSIuICBGb3IgZXhhbXBsZSwgaWYgZGlzcGxheUxvY2FsZSBpcworICAgICAqIGZyX0ZS
LCB0aGVuIGVuX1VTJ3MgZGlzcGxheSBuYW1lIHdvdWxkIGJlICJBbmdsYWlzICgmRWFjdXRlO3Rh
dHMtVW5pcykiLCBhbmQgbm9fTk9fTlkncworICAgICAqIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAi
bm9ydiZlYWN1dGU7Z2llbiAoTm9ydiZlZ3JhdmU7Z2UsTlkpIi4KKyAgICAgKiBAcGFyYW0gZGlz
cGxheUxvY2FsZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRo
ZSBuYW1lLgorICAgICAqIEBwYXJhbSBuYW1lICAgICAgUmVjZWl2ZXMgdGhlIGxvY2FsZSdzIGRp
c3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJuYW1l
Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAg
Z2V0RGlzcGxheU5hbWUoIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcm
ICBuYW1lKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBm
b3IgdGhlIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQz
Ml90ICAgICAgICAgaGFzaENvZGUodm9pZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXRz
IHRoZSBsb2NhbGUgdG8gYm9ndXMKKyAgICAgKiBBIGJvZ3VzIGxvY2FsZSByZXByZXNlbnRzIGEg
bm9uLWV4aXN0aW5nIGxvY2FsZSBhc3NvY2lhdGVkCisgICAgICogd2l0aCBzZXJ2aWNlcyB0aGF0
IGNhbiBiZSBpbnN0YW50aWF0ZWQgZnJvbSBub24tbG9jYWxlIGRhdGEKKyAgICAgKiBpbiBhZGRp
dGlvbiB0byBsb2NhbGUgKGZvciBleGFtcGxlLCBjb2xsYXRpb24gY2FuIGJlCisgICAgICogaW5z
dGFudGlhdGVkIGZyb20gYSBsb2NhbGUgYW5kIGZyb20gYSBydWxlIHNldCkuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgdm9pZCBzZXRUb0JvZ3VzKCk7CisKKyAgICAvKioK
KyAgICAgKiBHZXRzIHRoZSBib2d1cyBzdGF0ZS4gTG9jYWxlIG9iamVjdCBjYW4gYmUgYm9ndXMg
aWYgaXQgZG9lc24ndCBleGlzdAorICAgICAqIEByZXR1cm4gRkFMU0UgaWYgaXQgaXMgYSByZWFs
IGxvY2FsZSwgVFJVRSBpZiBpdCBpcyBhIGJvZ3VzIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNV
IDIuMQorICAgICAqLworICAgIFVCb29sIGlzQm9ndXModm9pZCkgY29uc3Q7CisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgaW5zdGFsbGVkIGxvY2FsZXMuCisgICAgICog
QHBhcmFtIGNvdW50IFJlY2VpdmVzIHRoZSBudW1iZXIgb2YgbG9jYWxlcyBpbiB0aGUgbGlzdC4K
KyAgICAgKiBAcmV0dXJuICAgICAgQSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIExvY2FsZSBvYmpl
Y3RzLiAgVGhpcyBhcnJheSBpcyB0aGUgbGlzdAorICAgICAqICAgICAgICAgICAgICBvZiBhbGwg
bG9jYWxlcyB3aXRoIGluc3RhbGxlZCByZXNvdXJjZSBmaWxlcy4gIFRoZSBjYWxsZWQgZG9lcyBO
T1QKKyAgICAgKiAgICAgICAgICAgICAgZ2V0IG93bmVyc2hpcCBvZiB0aGlzIGxpc3QsIGFuZCBt
dXN0IE5PVCBkZWxldGUgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
c3RhdGljIGNvbnN0IExvY2FsZSogVV9FWFBPUlQyIGdldEF2YWlsYWJsZUxvY2FsZXMoaW50MzJf
dCYgY291bnQpOworCisgICAgLyoqCisgICAgICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJs
ZSAyLWxldHRlciBjb3VudHJ5IGNvZGVzIGRlZmluZWQgaW4gSVNPIDMxNjYuICBUaGlzIGlzIGEK
KyAgICAgKiBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBvZiBjaGFy
LiAgQWxsIG9mIHRoZXNlIHBvaW50ZXJzIGFyZQorICAgICAqIG93bmVkIGJ5IElDVS0tIGRvIG5v
dCBkZWxldGUgdGhlbSwgYW5kIGRvIG5vdCB3cml0ZSB0aHJvdWdoIHRoZW0uICBUaGUgYXJyYXkg
aXMKKyAgICAgKiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCisgICAgICogQHJldHVy
biBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBjb3VudHJ5IGNvZGVzCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0KiBVX0VYUE9SVDIg
Z2V0SVNPQ291bnRyaWVzKCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGEgbGlzdCBvZiBhbGwg
YXZhaWxhYmxlIGxhbmd1YWdlIGNvZGVzIGRlZmluZWQgaW4gSVNPIDYzOS4gIFRoaXMgaXMgYSBw
b2ludGVyCisgICAgICogdG8gYW4gYXJyYXkgb2YgcG9pbnRlcnMgdG8gYXJyYXlzIG9mIGNoYXIu
ICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlIG93bmVkCisgICAgICogYnkgSUNVLS0gZG8gbm90
IGRlbGV0ZSB0aGVtLCBhbmQgZG8gbm90IHdyaXRlIHRocm91Z2ggdGhlbS4gIFRoZSBhcnJheSBp
cworICAgICAqIHRlcm1pbmF0ZWQgd2l0aCBhIG51bGwgcG9pbnRlci4KKyAgICAgKiBAcmV0dXJu
IGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGxhbmd1YWdlIGNvZGVzCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0KiBVX0VYUE9SVDIg
Z2V0SVNPTGFuZ3VhZ2VzKCk7CisKKyAgICAvKioKKyAgICAgKiBJQ1UgInBvb3IgbWFuJ3MgUlRU
SSIsIHJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhpcyBjbGFzcy4KKyAgICAgKgorICAgICAqIEBz
dGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHN0YXRpYyBVQ2xhc3NJRCBVX0VYUE9SVDIgZ2V0
U3RhdGljQ2xhc3NJRCgpOworCisgICAgLyoqCisgICAgICogSUNVICJwb29yIG1hbidzIFJUVEki
LCByZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoZSBhY3R1YWwgY2xhc3MuCisgICAgICoKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFt
aWNDbGFzc0lEKCkgY29uc3Q7CisKK3Byb3RlY3RlZDogLyogb25seSBwcm90ZWN0ZWQgZm9yIHRl
c3RpbmcgcHVycG9zZXMuIERPIE5PVCBVU0UuICovCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9B
UEkKKyAgICAvKioKKyAgICAgKiBTZXQgdGhpcyBmcm9tIGEgc2luZ2xlIFBPU0lYIHN0eWxlIGxv
Y2FsZSBzdHJpbmcuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgdm9pZCBzZXRGcm9t
UE9TSVhJRChjb25zdCBjaGFyICpwb3NpeElEKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFM
X0FQSSAqLworCitwcml2YXRlOgorICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgdGhlIGxvY2Fs
ZSBvYmplY3Qgd2l0aCBhIG5ldyBuYW1lLgorICAgICAqIFdhcyBkZXByZWNhdGVkIC0gdXNlZCBp
biBpbXBsZW1lbnRhdGlvbiAtIG1vdmVkIGludGVybmFsCisgICAgICoKKyAgICAgKiBAcGFyYW0g
Y0xvY2FsZUlEIFRoZSBuZXcgbG9jYWxlIG5hbWUuCisgICAgICogQHBhcmFtIGNhbm9uaWNhbGl6
ZSB3aGV0aGVyIHRvIGNhbGwgdWxvY19jYW5vbmljYWxpemUgb24gY0xvY2FsZUlECisgICAgICov
CisgICAgTG9jYWxlJiBpbml0KGNvbnN0IGNoYXIqIGNMb2NhbGVJRCwgVUJvb2wgY2Fub25pY2Fs
aXplKTsKKworICAgIC8qCisgICAgICogSW50ZXJuYWwgY29uc3RydWN0b3IgdG8gYWxsb3cgY29u
c3RydWN0aW9uIG9mIGEgbG9jYWxlIG9iamVjdCB3aXRoCisgICAgICogICBOTyBzaWRlIGVmZmVj
dHMuICAgKERlZmF1bHQgY29uc3RydWN0b3IgdHJpZXMgdG8gZ2V0CisgICAgICogICB0aGUgZGVm
YXVsdCBsb2NhbGUuKQorICAgICAqLworICAgIGVudW0gRUxvY2FsZVR5cGUgeworICAgICAgICBl
Qk9HVVMKKyAgICB9OworICAgIExvY2FsZShFTG9jYWxlVHlwZSk7CisKKyAgICAvKioKKyAgICAg
KiBJbml0aWFsaXplIHRoZSBsb2NhbGUgY2FjaGUgZm9yIGNvbW1vbmx5IHVzZWQgbG9jYWxlcwor
ICAgICAqLworICAgIHN0YXRpYyBMb2NhbGUgKmdldExvY2FsZUNhY2hlKHZvaWQpOworCisgICAg
Y2hhciBsYW5ndWFnZVtVTE9DX0xBTkdfQ0FQQUNJVFldOworICAgIGNoYXIgc2NyaXB0W1VMT0Nf
U0NSSVBUX0NBUEFDSVRZXTsKKyAgICBjaGFyIGNvdW50cnlbVUxPQ19DT1VOVFJZX0NBUEFDSVRZ
XTsKKyAgICBpbnQzMl90IHZhcmlhbnRCZWdpbjsKKyAgICBjaGFyKiBmdWxsTmFtZTsKKyAgICBj
aGFyIGZ1bGxOYW1lQnVmZmVyW1VMT0NfRlVMTE5BTUVfQ0FQQUNJVFldOworICAgIC8vIG5hbWUg
d2l0aG91dCBrZXl3b3JkcworICAgIGNoYXIqIGJhc2VOYW1lOworICAgIHZvaWQgaW5pdEJhc2VO
YW1lKFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICBVQm9vbCBmSXNCb2d1czsKKworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJmdldExvY2FsZShpbnQgbG9jaWQpOworCisgICAgLyoqCisgICAg
ICogQSBmcmllbmQgdG8gYWxsb3cgdGhlIGRlZmF1bHQgbG9jYWxlIHRvIGJlIHNldCBieSBlaXRo
ZXIgdGhlIEMgb3IgQysrIEFQSS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBmcmll
bmQgTG9jYWxlICpsb2NhbGVfc2V0X2RlZmF1bHRfaW50ZXJuYWwoY29uc3QgY2hhciAqLCBVRXJy
b3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgZnJpZW5kIHZvaWQgVV9DQUxMQ09OViBsb2NhbGVfYXZhaWxhYmxlX2luaXQoKTsKK307CisK
K2lubGluZSBVQm9vbAorTG9jYWxlOjpvcGVyYXRvciE9KGNvbnN0ICAgIExvY2FsZSYgICAgIG90
aGVyKSBjb25zdAoreworICAgIHJldHVybiAhb3BlcmF0b3I9PShvdGhlcik7Cit9CisKK2lubGlu
ZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0Q291bnRyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGNvdW50cnk7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0TGFuZ3VhZ2Uo
KSBjb25zdAoreworICAgIHJldHVybiBsYW5ndWFnZTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIg
KgorTG9jYWxlOjpnZXRTY3JpcHQoKSBjb25zdAoreworICAgIHJldHVybiBzY3JpcHQ7Cit9CisK
K2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0VmFyaWFudCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuICZiYXNlTmFtZVt2YXJpYW50QmVnaW5dOworfQorCitpbmxpbmUgY29uc3QgY2hhciAq
CitMb2NhbGU6OmdldE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBmdWxsTmFtZTsKK30KKwor
aW5saW5lIFVCb29sCitMb2NhbGU6OmlzQm9ndXModm9pZCkgY29uc3QgeworICAgIHJldHVybiBm
SXNCb2d1czsKK30KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JiYmku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kNDc1OThhNTBlNmZhM2JhYjJhZDQ5ZTAyMmFhZjM5NmNhYzMyOWU1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmgKQEAgLTAsMCAr
MSw3ODIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTkt
MjAxNCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uICAgKgorKiAg
IGFuZCBvdGhlcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMTAvMjIvOTkgICAgYWxh
biAgICAgICAgQ3JlYXRpb24uCisqICAgMTEvMTEvOTkgICAgcmdpbGxhbSAgICAgQ29tcGxldGUg
cG9ydCBmcm9tIEphdmEuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIFJCQklfSAorI2Rl
ZmluZSBSQkJJX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICogXGZp
bGUKKyAqIFxicmllZiBDKysgQVBJOiBSdWxlIEJhc2VkIEJyZWFrIEl0ZXJhdG9yCisgKi8KKwor
I2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCisjaW5jbHVkZSAidW5pY29kZS9icmtp
dGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgorI2luY2x1ZGUgInVuaWNvZGUvcGFy
c2VlcnIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3NjaHJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29k
ZS91Y2hyaXRlci5oIgorCisKK3N0cnVjdCBVVHJpZTsKKworVV9OQU1FU1BBQ0VfQkVHSU4KKwor
LyoqIEBpbnRlcm5hbCAqLworc3RydWN0IFJCQklEYXRhSGVhZGVyOworY2xhc3MgIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3JUYWJsZXM7CitjbGFzcyAgQnJlYWtJdGVyYXRvcjsKK2NsYXNzICBSQkJJ
RGF0YVdyYXBwZXI7CitjbGFzcyAgVVN0YWNrOworY2xhc3MgIExhbmd1YWdlQnJlYWtFbmdpbmU7
CitjbGFzcyAgVW5oYW5kbGVkRW5naW5lOworc3RydWN0IFJCQklTdGF0ZVRhYmxlOworCisKKwor
CisvKioKKyAqCisgKiBBIHN1YmNsYXNzIG9mIEJyZWFrSXRlcmF0b3Igd2hvc2UgYmVoYXZpb3Ig
aXMgc3BlY2lmaWVkIHVzaW5nIGEgbGlzdCBvZiBydWxlcy4KKyAqIDxwPkluc3RhbmNlcyBvZiB0
aGlzIGNsYXNzIGFyZSBtb3N0IGNvbW1vbmx5IGNyZWF0ZWQgYnkgdGhlIGZhY3RvcnkgbWV0aG9k
cyBvZgorICogIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZVdvcmRJbnN0YW5jZSgpLCBCcmVha0l0ZXJh
dG9yOjpjcmVhdGVMaW5lSW5zdGFuY2UoKSwgZXRjLiwKKyAqICBhbmQgdGhlbiB1c2VkIHZpYSB0
aGUgYWJzdHJhY3QgQVBJIGluIGNsYXNzIEJyZWFrSXRlcmF0b3I8L3A+CisgKgorICogPHA+U2Vl
IHRoZSBJQ1UgVXNlciBHdWlkZSBmb3IgaW5mb3JtYXRpb24gb24gQnJlYWsgSXRlcmF0b3IgUnVs
ZXMuPC9wPgorICoKKyAqIDxwPlRoaXMgY2xhc3MgaXMgbm90IGludGVuZGVkIHRvIGJlIHN1YmNs
YXNzZWQuICAoQ2xhc3MgRGljdGlvbmFyeUJhc2VkQnJlYWtJdGVyYXRvcgorICogICAgaXMgYSBz
dWJjbGFzcywgYnV0IHRoYXQgcmVsYXRpb25zaGlwIGlzIGVmZmVjdGl2ZWx5IGludGVybmFsIHRv
IHRoZSBJQ1UKKyAqICAgIGltcGxlbWVudGF0aW9uLiAgVGhlIHN1YmNsYXNzaW5nIGludGVyZmFj
ZSB0byBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvciBpcworICogICAgbm90IHBhcnQgb2YgdGhlIElD
VSBBUEksIGFuZCBtYXkgbm90IHJlbWFpbiBzdGFibGUuPC9wPgorICoKKyAqLworY2xhc3MgVV9D
T01NT05fQVBJIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgLypVX0ZJTkFMKi8gOiBwdWJsaWMgQnJl
YWtJdGVyYXRvciB7CisKK3Byb3RlY3RlZDoKKyAgICAvKioKKyAgICAgKiBUaGUgVVRleHQgdGhy
b3VnaCB3aGljaCB0aGlzIEJyZWFrSXRlcmF0b3IgYWNjZXNzZXMgdGhlIHRleHQKKyAgICAgKiBA
aW50ZXJuYWwKKyAgICAgKi8KKyAgICBVVGV4dCAgKmZUZXh0OworCisgICAgLyoqCisgICAgICog
ICBBIGNoYXJhY3RlciBpdGVyYXRvciB0aGF0IHJlZmVycyB0byB0aGUgc2FtZSB0ZXh0IGFzIHRo
ZSBVVGV4dCwgYWJvdmUuCisgICAgICogICBPbmx5IGluY2x1ZGVkIGZvciBjb21wYXRpYmlsaXR5
IHdpdGggb2xkIEFQSSwgd2hpY2ggd2FzIGJhc2VkIG9uIENoYXJhY3Rlckl0ZXJhdG9ycy4KKyAg
ICAgKiAgIFZhbHVlIG1heSBiZSBhZG9wdGVkIGZyb20gb3V0c2lkZSwgb3Igb25lIG9mIGZTQ2hh
ckl0ZXIgb3IgZkRDaGFySXRlciwgYmVsb3cuCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0
b3IgICpmQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiAgIFdoZW4gdGhlIGlucHV0IHRleHQg
aXMgcHJvdmlkZWQgYnkgYSBVbmljb2RlU3RyaW5nLCB0aGlzIHdpbGwgcG9pbnQgdG8KKyAgICAg
KiAgICBhIGNoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgd3JhcHMgdGhhdCBkYXRhLiAgTmVlZGVkIG9u
bHkgZm9yIHRoZQorICAgICAqICAgIGltcGxlbWVudGF0aW9uIG9mIGdldFRleHQoKSwgYSBiYWNr
d2FyZHMgY29tcGF0aWJpbGl0eSBpc3N1ZS4KKyAgICAgKi8KKyAgICBTdHJpbmdDaGFyYWN0ZXJJ
dGVyYXRvciAqZlNDaGFySXRlcjsKKworICAgIC8qKgorICAgICAqICBXaGVuIHRoZSBpbnB1dCB0
ZXh0IGlzIHByb3ZpZGVkIGJ5IGEgVVRleHQsIHRoaXMKKyAgICAgKiAgICBkdW1teSBDaGFyYWN0
ZXJJdGVyYXRvciBvdmVyIGFuIGVtcHR5IHN0cmluZyB3aWxsCisgICAgICogICAgYmUgcmV0dXJu
ZWQgZnJvbSBnZXRUZXh0KCkKKyAgICAgKi8KKyAgICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yICpm
RENoYXJJdGVyOworCisgICAgLyoqCisgICAgICogVGhlIHJ1bGUgZGF0YSBmb3IgdGhpcyBCcmVh
a0l0ZXJhdG9yIGluc3RhbmNlCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgUkJCSURh
dGFXcmFwcGVyICAgICpmRGF0YTsKKworICAgIC8qKiBJbmRleCBvZiB0aGUgUnVsZSB7dGFnfSB2
YWx1ZXMgZm9yIHRoZSBtb3N0IHJlY2VudCBtYXRjaC4KKyAgICAgKiAgQGludGVybmFsCisgICAg
Ki8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4OworCisgICAg
LyoqCisgICAgICogUnVsZSB0YWcgdmFsdWUgdmFsaWQgZmxhZy4KKyAgICAgKiBTb21lIGl0ZXJh
dG9yIG9wZXJhdGlvbnMgZG9uJ3QgaW50cmluc2ljYWxseSBzZXQgdGhlIGNvcnJlY3QgdGFnIHZh
bHVlLgorICAgICAqIFRoaXMgZmxhZyBsZXRzIHVzIGxhemlseSBjb21wdXRlIHRoZSB2YWx1ZSBp
ZiB3ZSBhcmUgZXZlciBhc2tlZCBmb3IgaXQuCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgVUJvb2wgICAgICAgICAgICAgICBmTGFzdFN0YXR1c0luZGV4VmFsaWQ7CisKKyAgICAvKioK
KyAgICAgKiBDb3VudGVyIGZvciB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgZW5jb3VudGVyZWQg
d2l0aCB0aGUgImRpY3Rpb25hcnkiCisgICAgICogICBmbGFnIHNldC4KKyAgICAgKiBAaW50ZXJu
YWwKKyAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgICAgIGZEaWN0aW9uYXJ5Q2hhckNvdW50
OworCisgICAgLyoqCisgICAgICogV2hlbiBhIHJhbmdlIG9mIGNoYXJhY3RlcnMgaXMgZGl2aWRl
ZCB1cCB1c2luZyB0aGUgZGljdGlvbmFyeSwgdGhlIGJyZWFrCisgICAgICogcG9zaXRpb25zIHRo
YXQgYXJlIGRpc2NvdmVyZWQgYXJlIHN0b3JlZCBoZXJlLCBwcmV2ZW50aW5nIHVzIGZyb20gaGF2
aW5nCisgICAgICogdG8gdXNlIGVpdGhlciB0aGUgZGljdGlvbmFyeSBvciB0aGUgc3RhdGUgdGFi
bGUgYWdhaW4gdW50aWwgdGhlIGl0ZXJhdG9yCisgICAgICogbGVhdmVzIHRoaXMgcmFuZ2Ugb2Yg
dGV4dC4gSGFzIHRoZSBtb3N0IGltcGFjdCBmb3IgbGluZSBicmVha2luZy4KKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90KiAgICAgICAgICAgIGZDYWNoZWRCcmVha1Bvc2l0
aW9uczsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gZkNhY2hl
ZEJyZWFrUG9zaXRpb25zCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCAg
ICAgICAgICAgICBmTnVtQ2FjaGVkQnJlYWtQb3NpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBp
ZiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMgaXMgbm90IG51bGwsIHRoaXMgaW5kaWNhdGVzIHdoaWNo
IGl0ZW0gaW4gdGhlCisgICAgICogY2FjaGUgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9u
IHJlZmVycyB0bworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAg
ICAgICAgZlBvc2l0aW9uSW5DYWNoZTsKKyAgICAKKyAgICAvKioKKyAgICAgKgorICAgICAqIElm
IHByZXNlbnQsIFVTdGFjayBvZiBMYW5ndWFnZUJyZWFrRW5naW5lIG9iamVjdHMgdGhhdCBtaWdo
dCBoYW5kbGUKKyAgICAgKiBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMuIFNlYXJjaGVkIGZyb20gdG9w
IHRvIGJvdHRvbSB0byBmaW5kIGFuIG9iamVjdCB0bworICAgICAqIGhhbmRsZSBhIGdpdmVuIGNo
YXJhY3Rlci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBVU3RhY2sgICAgICAgICAg
ICAgICpmTGFuZ3VhZ2VCcmVha0VuZ2luZXM7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAg
KiBJZiBwcmVzZW50LCB0aGUgc3BlY2lhbCBMYW5ndWFnZUJyZWFrRW5naW5lIHVzZWQgZm9yIGhh
bmRsaW5nCisgICAgICogY2hhcmFjdGVycyB0aGF0IGFyZSBpbiB0aGUgZGljdGlvbmFyeSBzZXQs
IGJ1dCBub3QgaGFuZGxlZCBieSBhbnkKKyAgICAgKiBMYW5ndWdhZ2VCcmVha0VuZ2luZS4KKyAg
ICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBVbmhhbmRsZWRFbmdpbmUgICAgICpmVW5oYW5k
bGVkQnJlYWtFbmdpbmU7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAgKiBUaGUgdHlwZSBv
ZiB0aGUgYnJlYWsgaXRlcmF0b3IsIG9yIC0xIGlmIGl0IGhhcyBub3QgYmVlbiBzZXQuCisgICAg
ICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmQnJlYWtUeXBl
OworICAgIAorcHJvdGVjdGVkOgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBjb25zdHJ1
Y3RvcnMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQ
SQorICAgIC8qKgorICAgICAqIENvbnN0YW50IHRvIGJlIHVzZWQgaW4gdGhlIGNvbnN0cnVjdG9y
CisgICAgICogUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihSQkJJRGF0YUhlYWRlciosIEVEb250QWRv
cHQsIFVFcnJvckNvZGUgJik7CisgICAgICogd2hpY2ggZG9lcyBub3QgYWRvcHQgdGhlIG1lbW9y
eSBpbmRpY2F0ZWQgYnkgdGhlIFJCQklEYXRhSGVhZGVyKgorICAgICAqIHBhcmFtZXRlci4KKyAg
ICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGVudW0gRURvbnRBZG9wdCB7Cisg
ICAgICAgIGtEb250QWRvcHQKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3Ig
ZnJvbSBhIGZsYXR0ZW5lZCBzZXQgb2YgUkJCSSBkYXRhIGluIG1hbGxvY2VkIG1lbW9yeS4KKyAg
ICAgKiAgICAgICAgICAgICBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvcnMgYnVpbHQgZnJvbSBhIGN1
c3RvbSBzZXQgb2YgcnVsZXMKKyAgICAgKiAgICAgICAgICAgICBhcmUgY3JlYXRlZCB2aWEgdGhp
cyBjb25zdHJ1Y3RvcjsgdGhlIHJ1bGVzIGFyZSBjb21waWxlZAorICAgICAqICAgICAgICAgICAg
IGludG8gbWVtb3J5LCB0aGVuIHRoZSBicmVhayBpdGVyYXRvciBpcyBjb25zdHJ1Y3RlZCBoZXJl
LgorICAgICAqCisgICAgICogICAgICAgICAgICAgVGhlIGJyZWFrIGl0ZXJhdG9yIGFkb3B0cyB0
aGUgbWVtb3J5LCBhbmQgd2lsbAorICAgICAqICAgICAgICAgICAgIGZyZWUgaXQgd2hlbiBkb25l
LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Io
UkJCSURhdGFIZWFkZXIqIGRhdGEsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAg
ICAgKiBDb25zdHJ1Y3RvciBmcm9tIGEgZmxhdHRlbmVkIHNldCBvZiBSQkJJIGRhdGEgaW4gbWVt
b3J5IHdoaWNoIG5lZWQgbm90CisgICAgICogICAgICAgICAgICAgYmUgbWFsbG9jZWQgKGUuZy4g
aXQgbWF5IGJlIGEgbWVtb3J5LW1hcHBlZCBmaWxlLCBldGMuKS4KKyAgICAgKgorICAgICAqICAg
ICAgICAgICAgIFRoaXMgdmVyc2lvbiBkb2VzIG5vdCBhZG9wdCB0aGUgbWVtb3J5LCBhbmQgZG9l
cyBub3QKKyAgICAgKiAgICAgICAgICAgICBmcmVlIGl0IHdoZW4gZG9uZS4KKyAgICAgKiBAaW50
ZXJuYWwKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGNvbnN0IFJCQklEYXRh
SGVhZGVyKiBkYXRhLCBlbnVtIEVEb250QWRvcHQgZG9udEFkb3B0LCBVRXJyb3JDb2RlICZzdGF0
dXMpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKworICAgIGZyaWVuZCBj
bGFzcyBSQkJJUnVsZUJ1aWxkZXI7CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIGZyaWVuZCBj
bGFzcyBCcmVha0l0ZXJhdG9yOworCisKKworcHVibGljOgorCisgICAgLyoqIERlZmF1bHQgY29u
c3RydWN0b3IuICBDcmVhdGVzIGFuIGVtcHR5IHNoZWxsIG9mIGFuIGl0ZXJhdG9yLCB3aXRoIG5v
CisgICAgICogIHJ1bGVzIG9yIHRleHQgdG8gaXRlcmF0ZSBvdmVyLiAgIE9iamVjdCBjYW4gc3Vi
c2VxdWVudGx5IGJlIGFzc2lnbmVkIHRvLgorICAgICAqICBAc3RhYmxlIElDVSAyLjIKKyAgICAg
Ki8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBDb3B5
IGNvbnN0cnVjdG9yLiAgV2lsbCBwcm9kdWNlIGEgYnJlYWsgaXRlcmF0b3Igd2l0aCB0aGUgc2Ft
ZSBiZWhhdmlvciwKKyAgICAgKiBhbmQgd2hpY2ggaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSB0ZXh0
LCBhcyB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvciBwYXNzZWQgdG8gYmUgY29waWVkCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCBSdWxlQmFzZWRCcmVh
a0l0ZXJhdG9yJiB0aGF0KTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3IgZnJvbSBhIHNldCBvZiBydWxlcyBzdXBwbGllZCBhcyBhIHN0cmluZy4K
KyAgICAgKiBAcGFyYW0gcnVsZXMgVGhlIGJyZWFrIHJ1bGVzIHRvIGJlIHVzZWQuCisgICAgICog
QHBhcmFtIHBhcnNlRXJyb3IgIEluIHRoZSBldmVudCBvZiBhIHN5bnRheCBlcnJvciBpbiB0aGUg
cnVsZXMsIHByb3ZpZGVzIHRoZSBsb2NhdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICB3
aXRoaW4gdGhlIHJ1bGVzIG9mIHRoZSBwcm9ibGVtLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5m
b3JtYXRpb24gb24gYW55IGVycm9ycyBlbmNvdW50ZXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjIKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCBjb25zdCBVbmljb2RlU3Ry
aW5nICAgICZydWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBhcnNlRXJyb3Ig
ICAgICAgICAgICZwYXJzZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJy
b3JDb2RlICAgICAgICAgICAgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDb250cnVjdCBh
IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZnJvbSBhIHNldCBvZiBwcmVjb21waWxlZCBiaW5hcnkg
cnVsZXMuCisgICAgICogQmluYXJ5IHJ1bGVzIGFyZSBvYnRhaW5lZCBmcm9tIFJ1bGVzQmFzZWRC
cmVha0l0ZXJhdG9yOjpnZXRCaW5hcnlSdWxlcygpLgorICAgICAqIENvbnN0cnVjdGlvbiBvZiBh
IGJyZWFrIGl0ZXJhdG9yIGluIHRoaXMgd2F5IGlzIHN1YnN0YW50aWFsbHkgZmFzdGVyIHRoYW4K
KyAgICAgKiBjb25zdHVjdGlvbiBmcm9tIHNvdXJjZSBydWxlcy4KKyAgICAgKgorICAgICAqIE93
bmVyc2hpcCBvZiB0aGUgc3RvcmFnZSBjb250YWluaW5nIHRoZSBjb21waWxlZCBydWxlcyByZW1h
aW5zIHdpdGggdGhlCisgICAgICogY2FsbGVyIG9mIHRoaXMgZnVuY3Rpb24uICBUaGUgY29tcGls
ZWQgcnVsZXMgbXVzdCBub3QgYmUgIG1vZGlmaWVkIG9yIAorICAgICAqIGRlbGV0ZWQgZHVyaW5n
IHRoZSBsaWZlIG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIFRoZSBjb21w
aWxlZCBydWxlcyBhcmUgbm90IGNvbXBhdGlibGUgYWNyb3NzIGRpZmZlcmVudCBtYWpvciB2ZXJz
aW9ucyBvZiBJQ1UuCisgICAgICogVGhlIGNvbXBpbGVkIHJ1bGVzIGFyZSBjb21hcHRpYmxlIG9u
bHkgYmV0d2VlbiBtYWNoaW5lcyB3aXRoIHRoZSBzYW1lCisgICAgICogYnl0ZSBvcmRlcmluZyAo
bGl0dGxlIG9yIGJpZyBlbmRpYW4pIGFuZCB0aGUgc2FtZSBiYXNlIGNoYXJhY3RlciBzZXQgZmFt
aWx5CisgICAgICogKEFTQ0lJIG9yIEVCQ0RJQykuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRC
aW5hcnlSdWxlcworICAgICAqIEBwYXJhbSBjb21waWxlZFJ1bGVzIEEgcG9pbnRlciB0byB0aGUg
Y29tcGlsZWQgYnJlYWsgcnVsZXMgdG8gYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gcnVsZUxlbmd0
aCBUaGUgbGVuZ3RoIG9mIHRoZSBjb21waWxlZCBicmVhayBydWxlcywgaW4gYnl0ZXMuICBUaGlz
CisgICAgICogICBjb3JyZXNwb25kcyB0byB0aGUgbGVuZ3RoIHZhbHVlIHByb2R1Y2VkIGJ5IGdl
dEJpbmFyeVJ1bGVzKCkuCisgICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkg
ZXJyb3JzIGVuY291bnRlcmVkLCBpbmNsdWRpbmcgaW52YWxpZAorICAgICAqICAgYmluYXJ5IHJ1
bGVzLgorICAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IoY29uc3QgdWludDhfdCAqY29tcGlsZWRSdWxlcywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90ICAgICAgIHJ1bGVMZW5ndGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBVRXJyb3JDb2RlICAgICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVGhpcyBj
b25zdHJ1Y3RvciB1c2VzIHRoZSB1ZGF0YSBpbnRlcmZhY2UgdG8gY3JlYXRlIGEgQnJlYWtJdGVy
YXRvcgorICAgICAqIHdob3NlIGludGVybmFsIHRhYmxlcyBsaXZlIGluIGEgbWVtb3J5LW1hcHBl
ZCBmaWxlLiAgImltYWdlIiBpcyBhbgorICAgICAqIElDVSBVRGF0YU1lbW9yeSBoYW5kbGUgZm9y
IHRoZSBwcmUtY29tcGlsZWQgYnJlYWsgaXRlcmF0b3IgdGFibGVzLgorICAgICAqIEBwYXJhbSBp
bWFnZSBoYW5kbGUgdG8gdGhlIG1lbW9yeSBpbWFnZSBmb3IgdGhlIGJyZWFrIGl0ZXJhdG9yIGRh
dGEuCisgICAgICogICAgICAgIE93bmVyc2hpcCBvZiB0aGUgVURhdGFNZW1vcnkgaGFuZGxlIHBh
c3NlcyB0byB0aGUgQnJlYWsgSXRlcmF0b3IsCisgICAgICogICAgICAgIHdoaWNoIHdpbGwgYmUg
cmVzcG9uc2libGUgZm9yIGNsb3NpbmcgaXQgd2hlbiBpdCBpcyBubyBsb25nZXIgbmVlZGVkLgor
ICAgICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24gYW55IGVycm9ycyBlbmNvdW50ZXJl
ZC4KKyAgICAgKiBAc2VlIHVkYXRhX29wZW4KKyAgICAgKiBAc2VlICNnZXRCaW5hcnlSdWxlcwor
ICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3IoVURhdGFNZW1vcnkqIGltYWdlLCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisg
ICAgICogRGVzdHJ1Y3RvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIH5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBBc3Np
Z25tZW50IG9wZXJhdG9yLiAgU2V0cyB0aGlzIGl0ZXJhdG9yIHRvIGhhdmUgdGhlIHNhbWUgYmVo
YXZpb3IsCisgICAgICogYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LCBhcyB0aGUgb25l
IHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgUnVsZUJhc2VkQnJlYWtJdGVydG9y
IHBhc3NlZCBpbgorICAgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBSdWxlQmFz
ZWRCcmVha0l0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3QgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciYg
dGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBFcXVhbGl0eSBvcGVyYXRvci4gIFJldHVybnMgVFJV
RSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBvZiB0aGUKKyAgICAgKiBzYW1lIGNsYXNzLCBo
YXZlIHRoZSBzYW1lIGJlaGF2aW9yLCBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHRleHQuCisg
ICAgICogQHBhcmFtIHRoYXQgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVx
dWFsaXR5CisgICAgICogQHJldHVybiBUUlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG9m
IHRoZQorICAgICAqIHNhbWUgY2xhc3MsIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsIGFuZCBpdGVy
YXRlIG92ZXIgdGhlIHNhbWUgdGV4dC4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHRoYXQp
IGNvbnN0OworCisgICAgLyoqCisgICAgICogTm90LWVxdWFsIG9wZXJhdG9yLiAgSWYgb3BlcmF0
b3I9PSByZXR1cm5zIFRSVUUsIHRoaXMgcmV0dXJucyBGQUxTRSwKKyAgICAgKiBhbmQgdmljZSB2
ZXJzYS4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQnJlYWtJdGVyYXRvciB0byBiZSBjb21wYXJl
ZCBmb3IgaW5lcXVhbGl0eQorICAgICAqIEByZXR1cm4gVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0
b3JzIGFyZSBub3Qgc2FtZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
VUJvb2wgb3BlcmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIFJldHVybnMgYSBuZXdseS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yIHdpdGggdGhlIHNhbWUKKyAgICAgKiBiZWhhdmlvciwgYW5kIGl0ZXJhdGluZyBvdmVy
IHRoZSBzYW1lIHRleHQsIGFzIHRoaXMgb25lLgorICAgICAqIERpZmZlcnMgZnJvbSB0aGUgY29w
eSBjb25zdHJ1Y3RvciBpbiB0aGF0IGl0IGlzIHBvbHltb3JwaGljLCBhbmQKKyAgICAgKiB3aWxs
IGNvcnJlY3RseSBjbG9uZSAoY29weSkgYSBkZXJpdmVkIGNsYXNzLgorICAgICAqIGNsb25lKCkg
aXMgdGhyZWFkIHNhZmUuICBNdWx0aXBsZSB0aHJlYWRzIG1heSBzaW11bHRhZW5lb3VzbHkKKyAg
ICAgKiBjbG9uZSB0aGUgc2FtZSBzb3VyY2UgYnJlYWsgaXRlcmF0b3IuCisgICAgICogQHJldHVy
biBhIG5ld2x5LWNvbnN0cnVjdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IqIGNsb25lKCkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGEgaGFzaCBjb2RlIGZvciB0aGlzIEJy
ZWFrSXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIEEgaGFzaCBjb2RlCisgICAgICogIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBoYXNoQ29kZSh2b2lkKSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRlc2NyaXB0aW9uIHVzZWQgdG8gY3Jl
YXRlIHRoaXMgaXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIHRoZSBkZXNjcmlwdGlvbiB1c2VkIHRv
IGNyZWF0ZSB0aGlzIGl0ZXJhdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgY29uc3QgVW5pY29kZVN0cmluZyYgZ2V0UnVsZXModm9pZCkgY29uc3Q7CisK
KyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQnJlYWtJdGVyYXRvciBvdmVycmlkZXMKKyAg
ICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBSZXR1cm4g
YSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAq
IFRoZSByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0b3IgaXMgb3duZWQgYnkgdGhlIGJyZWFrIGl0
ZXJhdG9yLCBhbmQgbXVzdAorICAgICAqIG5vdCBiZSBkZWxldGVkIGJ5IHRoZSBjYWxsZXIuICBS
ZXBlYXRlZCBjYWxscyB0byB0aGlzIGZ1bmN0aW9uIG1heQorICAgICAqIHJldHVybiB0aGUgc2Ft
ZSBDaGFyYWN0ZXJJdGVyYXRvci4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhl
IHJldHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBtdXN0IG5vdCBiZSB1c2VkIGNvbmN1cnJlbnRs
eSB3aXRoCisgICAgICogdGhlIGJyZWFrIGl0ZXJhdG9yLiAgSWYgY29uY3VycmVudCBvcGVyYXRp
b24gaXMgbmVlZGVkLCBjbG9uZSB0aGUKKyAgICAgKiByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0
b3IgZmlyc3QgYW5kIG9wZXJhdGUgb24gdGhlIGNsb25lLgorICAgICAqIDwvcD4KKyAgICAgKiA8
cD4KKyAgICAgKiBXaGVuIHRoZSBicmVhayBpdGVyYXRvciBpcyBvcGVyYXRpbmcgb24gdGV4dCBz
dXBwbGllZCB2aWEgYSBVVGV4dCwKKyAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgZmFpbC4gIExh
Y2tpbmcgYW55IHdheSB0byBzaWduYWwgZmFpbHVyZXMsIGl0CisgICAgICogcmV0dXJucyBhbiBD
aGFyYWN0ZXJJdGVyYXRvciBjb250YWluaW5nIG5vIHRleHQuCisgICAgICogVGhlIGZ1bmN0aW9u
IGdldFVUZXh0KCkgcHJvdmlkZXMgc2ltaWxhciBmdW5jdGlvbmFsaXR5LAorICAgICAqIGlzIHJl
bGlhYmxlLCBhbmQgaXMgbW9yZSBlZmZpY2llbnQuCisgICAgICogPC9wPgorICAgICAqCisgICAg
ICogVE9ETzogIGRlcHJlY2F0ZSB0aGlzIGZ1bmN0aW9uPworICAgICAqCisgICAgICogQHJldHVy
biBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgIENoYXJhY3Rlckl0ZXJhdG9yJiBnZXRU
ZXh0KHZvaWQpIGNvbnN0OworCisKKyAgICAvKioKKyAgICAgICogIEdldCBhIFVUZXh0IGZvciB0
aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgICogIFRoZSByZXR1cm5lZCBVVGV4dCBpcyBh
IHNoYWxsb3cgY2xvbmUgb2YgdGhlIFVUZXh0IHVzZWQgaW50ZXJuYWxseQorICAgICAgKiAgYnkg
dGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uLiAgSXQgY2FuIHNhZmVseSBiZSB1c2Vk
IHRvCisgICAgICAqICBhY2Nlc3MgdGhlIHRleHQgd2l0aG91dCBpbXBhY3RpbmcgYW55IGJyZWFr
IGl0ZXJhdG9yIG9wZXJhdGlvbnMsCisgICAgICAqICBidXQgdGhlIHVuZGVybHlpbmcgdGV4dCBp
dHNlbGYgbXVzdCBub3QgYmUgYWx0ZXJlZC4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGZpbGxJ
biBBIFVUZXh0IHRvIGJlIGZpbGxlZCBpbi4gIElmIE5VTEwsIGEgbmV3IFVUZXh0IHdpbGwgYmUK
KyAgICAgICogICAgICAgICAgIGFsbG9jYXRlZCB0byBob2xkIHRoZSByZXN1bHQuCisgICAgICAq
IEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAgKiBAcmV0dXJu
ICAgVGhlIGN1cnJlbnQgVVRleHQgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuICBJZiBhbiBpbnB1
dAorICAgICAgKiAgICAgICAgICAgVVRleHQgd2FzIHByb3ZpZGVkLCBpdCB3aWxsIGFsd2F5cyBi
ZSByZXR1cm5lZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICAqLworICAgICB2aXJ0
dWFsIFVUZXh0ICpnZXRVVGV4dChVVGV4dCAqZmlsbEluLCBVRXJyb3JDb2RlICZzdGF0dXMpIGNv
bnN0OworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3
IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBjdXJyZW50
IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAq
IEBwYXJhbSBuZXdUZXh0IEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgdG8gYW5hbHl6ZS4gIFRo
ZSBCcmVha0l0ZXJhdG9yCisgICAgICogdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBjaGFyYWN0ZXIg
aXRlcmF0b3IuICBUaGUgY2FsbGVyIE1VU1QgTk9UIGRlbGV0ZSBpdCEKKyAgICAgKiAgQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkIGFkb3B0VGV4dChDaGFyYWN0ZXJJ
dGVyYXRvciogbmV3VGV4dCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHRv
IGFuYWx5emUgYSBuZXcgcGllY2Ugb2YgdGV4dC4gIFRoaXMgZnVuY3Rpb24gcmVzZXRzCisgICAg
ICogdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhl
IHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgVGhlIHRleHQgdG8gYW5hbHl6ZS4KKyAgICAg
KiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkIHNldFRleHQoY29u
c3QgVW5pY29kZVN0cmluZyYgbmV3VGV4dCk7CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUg
YnJlYWsgaXRlcmF0b3IgdG8gb3BlcmF0ZSBvdmVyIHRoZSB0ZXh0IHJlcHJlc2VudGVkIGJ5Cisg
ICAgICogdGhlIFVUZXh0LiAgVGhlIGl0ZXJhdG9yIHBvc2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBz
dGFydC4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gbWFrZXMgYSBzaGFsbG93IGNsb25l
IG9mIHRoZSBzdXBwbGllZCBVVGV4dC4gIFRoaXMgbWVhbnMKKyAgICAgKiB0aGF0IHRoZSBjYWxs
ZXIgaXMgZnJlZSB0byBpbW1lZGlhdGVseSBjbG9zZSBvciBvdGhlcndpc2UgcmV1c2UgdGhlCisg
ICAgICogVXRleHQgdGhhdCB3YXMgcGFzc2VkIGFzIGEgcGFyYW1ldGVyLCBidXQgdGhhdCB0aGUg
dW5kZXJseWluZyB0ZXh0IGl0c2VsZgorICAgICAqIG11c3Qgbm90IGJlIGFsdGVyZWQgd2hpbGUg
YmVpbmcgcmVmZXJlbmNlZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBA
cGFyYW0gdGV4dCAgICBUaGUgVVRleHQgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICog
QHBhcmFtIHN0YXR1cyAgUmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAqIEBzdGFibGUg
SUNVIDMuNAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChVVGV4dCAqdGV4dCwg
VUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQg
aXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHBvc2l0aW9u
IHplcm8uCisgICAgICogQHJldHVybiBUaGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhl
IHRleHQsIHplcm8uCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgaW50MzJfdCBmaXJzdCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJl
bnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHJl
dHVybiBUaGUgdGV4dCdzIHBhc3QtdGhlLWVuZCBvZmZzZXQuCisgICAgICogIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBsYXN0KHZvaWQpOworCisgICAgLyoq
CisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGVpdGhlciBmb3J3YXJkIG9yIGJhY2t3YXJk
IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHN0ZXBzLgorICAgICAqIE5lZ2F0aXZlIHZhbHVlcyBt
b3ZlIGJhY2t3YXJkLCBhbmQgcG9zaXRpdmUgdmFsdWVzIG1vdmUgZm9yd2FyZC4gIFRoaXMgaXMK
KyAgICAgKiBlcXVpdmFsZW50IHRvIHJlcGVhdGVkbHkgY2FsbGluZyBuZXh0KCkgb3IgcHJldmlv
dXMoKS4KKyAgICAgKiBAcGFyYW0gbiBUaGUgbnVtYmVyIG9mIHN0ZXBzIHRvIG1vdmUuICBUaGUg
c2lnbiBpbmRpY2F0ZXMgdGhlIGRpcmVjdGlvbgorICAgICAqIChuZWdhdGl2ZSBpcyBiYWNrd2Fy
ZHMsIGFuZCBwb3NpdGl2ZSBpcyBmb3J3YXJkcykuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFj
dGVyIG9mZnNldCBvZiB0aGUgYm91bmRhcnkgcG9zaXRpb24gbiBib3VuZGFyaWVzIGF3YXkgZnJv
bQorICAgICAqIHRoZSBjdXJyZW50IG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQoaW50MzJfdCBuKTsKKworICAgIC8qKgorICAg
ICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbi4K
KyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIg
dGhpcyBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
aW50MzJfdCBuZXh0KHZvaWQpOworCisgICAgLyoqCisgICAgICogTW92ZXMgdGhlIGl0ZXJhdG9y
IGJhY2t3YXJkcywgdG8gdGhlIGxhc3QgYm91bmRhcnkgcHJlY2VkaW5nIHRoaXMgb25lLgorICAg
ICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIHBy
ZWNlZGluZyB0aGlzIG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBpbnQzMl90IHByZXZpb3VzKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0
aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGZvbGxv
d2luZworICAgICAqIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNl
dCBUaGUgcG9zaXRpb24gZnJvbSB3aGljaCB0byBiZWdpbiBzZWFyY2hpbmcgZm9yIGEgYnJlYWsg
cG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJyZWFr
IGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZm9sbG93aW5nKGludDMyX3Qgb2Zmc2V0KTsKKwor
ICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGJv
dW5kYXJ5IHBvc2l0aW9uIGJlZm9yZSB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24uCisg
ICAgICogQHBhcmFtIG9mZnNldCBUaGUgcG9zaXRpb24gdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBh
IGJyZWFrIGZyb20uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91
bmRhcnkgYmVmb3JlIHRoZSBzdGFydGluZyBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHByZWNlZGluZyhpbnQzMl90IG9mZnNl
dCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0
aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uICBBcyBhIHNpZGUKKyAgICAgKiBlZmZlY3QsIGxl
YXZlcyB0aGUgaXRlcmF0b3IgcG9pbnRpbmcgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9u
IGF0CisgICAgICogb3IgYWZ0ZXIgIm9mZnNldCIuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUg
b2Zmc2V0IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJv
dW5kYXJ5IHBvc2l0aW9uLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIFVCb29sIGlzQm91bmRhcnkoaW50MzJfdCBvZmZzZXQpOworCisgICAgLyoqCisgICAg
ICogUmV0dXJucyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHJldHVy
biBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGN1cnJlbnQodm9pZCkgY29uc3Q7CisKKwor
ICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc3RhdHVzIHRhZyBmcm9tIHRoZSBicmVhayBydWxl
IHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqIHJldHVybmVkIGJyZWFr
IHBvc2l0aW9uLiAgRm9yIGJyZWFrIHJ1bGVzIHRoYXQgZG8gbm90IHNwZWNpZnkgYQorICAgICAq
IHN0YXR1cywgYSBkZWZhdWx0IHZhbHVlIG9mIDAgaXMgcmV0dXJuZWQuICBJZiBtb3JlIHRoYW4g
b25lIGJyZWFrIHJ1bGUKKyAgICAgKiB3b3VsZCBjYXVzZSBhIGJvdW5kYXJ5IHRvIGJlIGxvY2F0
ZWQgYXQgc29tZSBwb3NpdGlvbiBpbiB0aGUgdGV4dCwKKyAgICAgKiB0aGUgbnVtZXJpY2FsbHkg
bGFyZ2VzdCBvZiB0aGUgYXBwbGljYWJsZSBzdGF0dXMgdmFsdWVzIGlzIHJldHVybmVkLgorICAg
ICAqIDxwPgorICAgICAqIE9mIHRoZSBzdGFuZGFyZCB0eXBlcyBvZiBJQ1UgYnJlYWsgaXRlcmF0
b3JzLCBvbmx5IHdvcmQgYnJlYWsgYW5kCisgICAgICogbGluZSBicmVhayBwcm92aWRlIHN0YXR1
cyB2YWx1ZXMuICBUaGUgdmFsdWVzIGFyZSBkZWZpbmVkIGluCisgICAgICogdGhlIGhlYWRlciBm
aWxlIHVicmsuaC4gIEZvciBXb3JkIGJyZWFrcywgdGhlIHN0YXR1cyBhbGxvd3MgZGlzdGluZ3Vp
c2hpbmcgYmV0d2VlbiB3b3JkcworICAgICAqIHRoYXQgY29udGFpbiBhbHBoYWJldGljIGxldHRl
cnMsICJ3b3JkcyIgdGhhdCBhcHBlYXIgdG8gYmUgbnVtYmVycywKKyAgICAgKiBwdW5jdHVhdGlv
biBhbmQgc3BhY2VzLCB3b3JkcyBjb250YWluaW5nIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMsIGFu
ZAorICAgICAqIG1vcmUuICBGb3IgTGluZSBCcmVhaywgdGhlIHN0YXR1cyBkaXN0aW5ndWlzaGVz
IGJldHdlZW4gaGFyZCAobWFuZGF0b3J5KSBicmVha3MKKyAgICAgKiBhbmQgc29mdCAocG90ZW50
aWFsKSBicmVhayBwb3NpdGlvbnMuCisgICAgICogPHA+CisgICAgICogPGNvZGU+Z2V0UnVsZVN0
YXR1cygpPC9jb2RlPiBjYW4gYmUgY2FsbGVkIGFmdGVyIG9idGFpbmluZyBhIGJvdW5kYXJ5Cisg
ICAgICogcG9zaXRpb24gZnJvbSA8Y29kZT5uZXh0KCk8L2NvZGU+LCA8Y29kZT5wcmV2aW91cygp
PC9jb2RlPiwgb3IKKyAgICAgKiBhbnkgb3RoZXIgYnJlYWsgaXRlcmF0b3IgZnVuY3Rpb25zIHRo
YXQgcmV0dXJucyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIDxwPgorICAgICAqIFdoZW4g
Y3JlYXRpbmcgY3VzdG9tIGJyZWFrIHJ1bGVzLCBvbmUgaXMgZnJlZSB0byBkZWZpbmUgd2hhdGV2
ZXIKKyAgICAgKiBzdGF0dXMgdmFsdWVzIG1heSBiZSBjb252ZW5pZW50IGZvciB0aGUgYXBwbGlj
YXRpb24uCisgICAgICogPHA+CisgICAgICogTm90ZTogdGhpcyBmdW5jdGlvbiBpcyBub3QgdGhy
ZWFkIHNhZmUuICBJdCBzaG91bGQgbm90IGhhdmUgYmVlbgorICAgICAqICAgICAgIGRlY2xhcmVk
IGNvbnN0LCBhbmQgdGhlIGNvbnN0IHJlbWFpbnMgb25seSBmb3IgY29tcGF0aWJpbGl0eQorICAg
ICAqICAgICAgIHJlYXNvbnMuICAoVGhlIGZ1bmN0aW9uIGlzIGxvZ2ljYWxseSBjb25zdCwgYnV0
IG5vdCBiaXQtd2lzZSBjb25zdCkuCisgICAgICogPHA+CisgICAgICogQHJldHVybiB0aGUgc3Rh
dHVzIGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5
CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBAc2VlIFVX
b3JkQnJlYWsKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGlu
dDMyX3QgZ2V0UnVsZVN0YXR1cygpIGNvbnN0OworCisgICAvKioKKyAgICAqIEdldCB0aGUgc3Rh
dHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIHRoYXQgZGV0ZXJtaW5lZCB0
aGUgbW9zdAorICAgICogcmVjZW50bHkgcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgKiA8
cD4KKyAgICAqIFRoZSByZXR1cm5lZCBzdGF0dXMgdmFsdWUocykgYXJlIHN0b3JlZCBpbnRvIGFu
IGFycmF5IHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9y
ZWQgaW4gc29ydGVkIChhc2NlbmRpbmcpIG9yZGVyLgorICAgICogSWYgdGhlIGNhcGFjaXR5IG9m
IHRoZSBvdXRwdXQgYXJyYXkgaXMgaW5zdWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgICAg
KiAgdGhlIG91dHB1dCB3aWxsIGJlIHRydW5jYXRlZCB0byB0aGUgYXZhaWxhYmxlIGxlbmd0aCwg
YW5kIGEKKyAgICAqICBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiB3aWxsIGJlIHNpZ25hbGVkLgor
ICAgICoKKyAgICAqIEBwYXJhbSBmaWxsSW5WZWMgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGluIHdp
dGggdGhlIHN0YXR1cyB2YWx1ZXMuCisgICAgKiBAcGFyYW0gY2FwYWNpdHkgIHRoZSBsZW5ndGgg
b2YgdGhlIHN1cHBsaWVkIHZlY3Rvci4gIEEgbGVuZ3RoIG9mIHplcm8gY2F1c2VzCisgICAgKiAg
ICAgICAgICAgICAgICAgIHRoZSBmdW5jdGlvbiB0byByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0
dXMgdmFsdWVzLCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgbm9ybWFsIHdheSwgd2l0
aG91dCBhdHRlbXRwaW5nIHRvIHN0b3JlIGFueSB2YWx1ZXMuCisgICAgKiBAcGFyYW0gc3RhdHVz
ICAgIHJlY2VpdmVzIGVycm9yIGNvZGVzLgorICAgICogQHJldHVybiAgICAgICAgICBUaGUgbnVt
YmVyIG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZAorICAg
ICogICAgICAgICAgICAgICAgICB0aGUgbW9zdCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQgYnkg
dGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICogICAgICAgICAgICAgICAgICBJbiB0aGUgZXZlbnQg
b2YgYSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdGhlIHJldHVybiB2YWx1ZQorICAgICogICAg
ICAgICAgICAgICAgICBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCB3
ZXJlIGF2YWlsYWJsZSwKKyAgICAqICAgICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2VkIG51
bWJlciB0aGF0IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQuCisgICAgKiBAc2VlIGdldFJ1bGVTdGF0
dXMKKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdl
dFJ1bGVTdGF0dXNWZWMoaW50MzJfdCAqZmlsbEluVmVjLCBpbnQzMl90IGNhcGFjaXR5LCBVRXJy
b3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHVuaXF1ZSBjbGFz
cyBJRCBQT0xZTU9SUEhJQ0FMTFkuICBQdXJlIHZpcnR1YWwgb3ZlcnJpZGUuCisgICAgICogVGhp
cyBtZXRob2QgaXMgdG8gaW1wbGVtZW50IGEgc2ltcGxlIHZlcnNpb24gb2YgUlRUSSwgc2luY2Ug
bm90IGFsbAorICAgICAqIEMrKyBjb21waWxlcnMgc3VwcG9ydCBnZW51aW5lIFJUVEkuICBQb2x5
bW9ycGhpYyBvcGVyYXRvcj09KCkgYW5kCisgICAgICogY2xvbmUoKSBtZXRob2RzIGNhbGwgdGhp
cyBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBjbGFzcyBJRCBm
b3IgdGhpcyBvYmplY3QuIEFsbCBvYmplY3RzIG9mIGEKKyAgICAgKiAgICAgICAgICAgICAgICAg
IGdpdmVuIGNsYXNzIGhhdmUgdGhlIHNhbWUgY2xhc3MgSUQuICBPYmplY3RzIG9mCisgICAgICog
ICAgICAgICAgICAgICAgICBvdGhlciBjbGFzc2VzIGhhdmUgZGlmZmVyZW50IGNsYXNzIElEcy4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdl
dER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0
aGUgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MuICBUaGlzIGlzIHVzZWZ1bCBvbmx5IGZvcgorICAg
ICAqIGNvbXBhcmluZyB0byBhIHJldHVybiB2YWx1ZSBmcm9tIGdldER5bmFtaWNDbGFzc0lEKCku
ICBGb3IgZXhhbXBsZToKKyAgICAgKgorICAgICAqICAgICAgQmFzZSogcG9seW1vcnBoaWNfcG9p
bnRlciA9IGNyZWF0ZVBvbHltb3JwaGljT2JqZWN0KCk7CisgICAgICogICAgICBpZiAocG9seW1v
cnBoaWNfcG9pbnRlci0+Z2V0RHluYW1pY0NsYXNzSUQoKSA9PQorICAgICAqICAgICAgICAgIERl
cml2ZWQ6OmdldFN0YXRpY0NsYXNzSUQoKSkgLi4uCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAg
ICAgICAgIFRoZSBjbGFzcyBJRCBmb3IgYWxsIG9iamVjdHMgb2YgdGhpcyBjbGFzcy4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQy
IGdldFN0YXRpY0NsYXNzSUQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBEZXByZWNhdGVkIGZ1
bmN0aW9uYWxpdHkuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBDcmVhdGUg
YSBjbG9uZSAoY29weSkgb2YgdGhpcyBicmVhayBpdGVyYXRvciBpbiBtZW1vcnkgcHJvdmlkZWQK
KyAgICAgKiAgYnkgdGhlIGNhbGxlci4gIFRoZSBpZGVhIGlzIHRvIGluY3JlYXNlIHBlcmZvcm1h
bmNlIGJ5IGF2b2lkaW5nCisgICAgICogIGEgc3RvcmFnZSBhbGxvY2F0aW9uLiAgVXNlIG9mIHRo
aXMgZnVuY3RvaW4gaXMgTk9UIFJFQ09NTUVOREVELgorICAgICAqICBQZXJmb3JtYW5jZSBnYWlu
cyBhcmUgbWluaW1hbCwgYW5kIGNvcnJlY3QgYnVmZmVyIG1hbmFnZW1lbnQgaXMKKyAgICAgKiAg
dHJpY2t5LiAgVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFj
a0J1ZmZlciAgVGhlIHBvaW50ZXIgdG8gdGhlIG1lbW9yeSBpbnRvIHdoaWNoIHRoZSBjbG9uZWQg
b2JqZWN0CisgICAgICogICAgICAgICAgICAgICAgICAgICBzaG91bGQgYmUgcGxhY2VkLiAgSWYg
TlVMTCwgIGFsbG9jYXRlIGhlYXAgbWVtb3J5CisgICAgICogICAgICAgICAgICAgICAgICAgICBm
b3IgdGhlIGNsb25lZCBvYmplY3QuCisgICAgICogQHBhcmFtIEJ1ZmZlclNpemUgICBUaGUgc2l6
ZSBvZiB0aGUgYnVmZmVyLiAgSWYgemVybywgcmV0dXJuIHRoZSByZXF1aXJlZAorICAgICAqICAg
ICAgICAgICAgICAgICAgICAgYnVmZmVyIHNpemUsIGJ1dCBkbyBub3QgY2xvbmUgdGhlIG9iamVj
dC4gIElmIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgc2l6ZSB3YXMgdG9vIHNtYWxs
IChidXQgbm90IHplcm8pLCBhbGxvY2F0ZSBoZWFwCisgICAgICogICAgICAgICAgICAgICAgICAg
ICBzdG9yYWdlIGZvciB0aGUgY2xvbmVkIG9iamVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBz
dGF0dXMgICAgICAgRXJyb3Igc3RhdHVzLiAgVV9TQUZFQ0xPTkVfQUxMT0NBVEVEX1dBUk5JTkcg
d2lsbCBiZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgcmV0dXJuZWQgaWYgdGhlIHRoZSBw
cm92aWRlZCBidWZmZXIgd2FzIHRvbyBzbWFsbCwgYW5kCisgICAgICogICAgICAgICAgICAgICAg
ICAgICB0aGUgY2xvbmUgd2FzIHRoZXJlZm9yZSBwdXQgb24gdGhlIGhlYXAuCisgICAgICoKKyAg
ICAgKiBAcmV0dXJuICBQb2ludGVyIHRvIHRoZSBjbG9uZSBvYmplY3QuICBUaGlzIG1heSBkaWZm
ZXIgZnJvbSB0aGUgc3RhY2tCdWZmZXIKKyAgICAgKiAgICAgICAgICBhZGRyZXNzIGlmIHRoZSBi
eXRlIGFsaWdubWVudCBvZiB0aGUgc3RhY2sgYnVmZmVyIHdhcyBub3Qgc3VpdGFibGUKKyAgICAg
KiAgICAgICAgICBvciBpZiB0aGUgc3RhY2tCdWZmZXIgd2FzIHRvbyBzbWFsbCB0byBob2xkIHRo
ZSBjbG9uZS4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIFVzZSBjbG9uZSgpIGluc3RlYWQu
CisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yICogIGNyZWF0ZUJ1ZmZlckNsb25l
KHZvaWQgKnN0YWNrQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQzMl90ICZCdWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICZzdGF0dXMpOworCisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm4gdGhlIGJpbmFyeSBmb3JtIG9mIGNvbXBpbGVkIGJyZWFrIHJ1bGVzLAor
ICAgICAqIHdoaWNoIGNhbiB0aGVuIGJlIHVzZWQgdG8gY3JlYXRlIGEgbmV3IGJyZWFrIGl0ZXJh
dG9yIGF0IHNvbWUKKyAgICAgKiB0aW1lIGluIHRoZSBmdXR1cmUuICBDcmVhdGluZyBhIGJyZWFr
IGl0ZXJhdG9yIGZyb20gcHJlLWNvbXBpbGVkIHJ1bGVzCisgICAgICogaXMgbXVjaCBmYXN0ZXIg
dGhhbiBidWlsZGluZyBvbmUgZnJvbSB0aGUgc291cmNlIGZvcm0gb2YgdGhlCisgICAgICogYnJl
YWsgcnVsZXMuCisgICAgICoKKyAgICAgKiBUaGUgYmluYXJ5IGRhdGEgY2FuIG9ubHkgYmUgdXNl
ZCB3aXRoIHRoZSBzYW1lIHZlcnNpb24gb2YgSUNVCisgICAgICogIGFuZCBvbiB0aGUgc2FtZSBw
bGF0Zm9ybSB0eXBlIChwcm9jZXNzb3IgZW5kaWFuLW5lc3MpCisgICAgICoKKyAgICAgKiBAcGFy
YW0gbGVuZ3RoIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgYmluYXJ5IGRhdGEuICAoT3V0IHBh
cmFtdGVyLikKKyAgICAgKgorICAgICAqIEByZXR1cm4gICBBIHBvaW50ZXIgdG8gdGhlIGJpbmFy
eSAoY29tcGlsZWQpIHJ1bGUgZGF0YS4gIFRoZSBzdG9yYWdlCisgICAgICogICAgICAgICAgIGJl
bG9uZ3MgdG8gdGhlIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yIG9iamVjdCwgbm90IHRoZQorICAg
ICAqICAgICAgICAgICBjYWxsZXIsIGFuZCBtdXN0IG5vdCBiZSBtb2RpZmllZCBvciBkZWxldGVk
LgorICAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICAqLworICAgIHZpcnR1YWwgY29uc3QgdWlu
dDhfdCAqZ2V0QmluYXJ5UnVsZXModWludDMyX3QgJmxlbmd0aCk7CisKKyAgICAvKioKKyAgICAg
KiAgU2V0IHRoZSBzdWJqZWN0IHRleHQgc3RyaW5nIHVwb24gd2hpY2ggdGhlIGJyZWFrIGl0ZXJh
dG9yIGlzIG9wZXJhdGluZworICAgICAqICB3aXRob3V0IGNoYW5naW5nIGFueSBvdGhlciBhc3Bl
Y3Qgb2YgdGhlIG1hdGNoaW5nIHN0YXRlLgorICAgICAqICBUaGUgbmV3IGFuZCBwcmV2aW91cyB0
ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCisgICAgICoKKyAgICAgKiAg
VGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGluIGVudmlyb25tZW50cyB3aGVyZSBJ
Q1UgaXMgb3BlcmF0aW5nIG9uCisgICAgICogIHN0cmluZ3MgdGhhdCBtYXkgbW92ZSBhcm91bmQg
aW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIG5vdGlmeWluZworICAgICAq
ICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVuIHJlbG9jYXRlZCwgYW5kIHByb3ZpZGluZyBh
IG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICAgICogIHN0cmluZyBpbiBpdHMgbmV3IHBvc2l0
aW9uLgorICAgICAqCisgICAgICogIE5vdGUgdGhhdCB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVt
ZW50YXRpb24gbmV2ZXIgY29waWVzIHRoZSB1bmRlcmx5aW5nIHRleHQKKyAgICAgKiAgb2YgYSBz
dHJpbmcgYmVpbmcgcHJvY2Vzc2VkLCBidXQgYWx3YXlzIG9wZXJhdGVzIGRpcmVjdGx5IG9uIHRo
ZSBvcmlnaW5hbCB0ZXh0CisgICAgICogIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiBSZWZyZXNoaW5n
IHNpbXBseSBkcm9wcyB0aGUgcmVmZXJlbmNlcyB0byB0aGUgb2xkIHRleHQKKyAgICAgKiAgYW5k
IHJlcGxhY2VzIHRoZW0gd2l0aCByZWZlcmVuY2VzIHRvIHRoZSBuZXcuCisgICAgICoKKyAgICAg
KiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rpb24gaXMgbm9ybWFsbHkgdXNlZCBvbmx5IGJ5IHZlcnkg
c3BlY2lhbGl6ZWQsCisgICAgICogIHN5c3RlbS1sZXZlbCBjb2RlLiAgT25lIGV4YW1wbGUgdXNl
IGNhc2UgaXMgd2l0aCBnYXJiYWdlIGNvbGxlY3Rpb24gdGhhdCBtb3ZlcworICAgICAqICB0aGUg
dGV4dCBpbiBtZW1vcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5wdXQgICAgICBUaGUgbmV3
IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisgICAgICogQHBhcmFtIHN0YXR1cyAgICAgUmVjZWl2ZXMg
ZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCisgICAgICogQHJldHVybiAgICAgICAg
ICAgKnRoaXMKKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdmly
dHVhbCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yICZyZWZyZXNoSW5wdXRUZXh0KFVUZXh0ICppbnB1
dCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworCitwcm90ZWN0ZWQ6CisgICAgLy89PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorICAgIC8vIGltcGxlbWVudGF0aW9uCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8q
KgorICAgICAqIER1bXBzIGNhY2hlcyBhbmQgcGVyZm9ybXMgb3RoZXIgYWN0aW9ucyBhc3NvY2lh
dGVkIHdpdGggYSBjb21wbGV0ZSBjaGFuZ2UKKyAgICAgKiBpbiB0ZXh0IG9yIGl0ZXJhdGlvbiBw
b3NpdGlvbi4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgcmVz
ZXQodm9pZCk7CisKKyNpZiAwCisgICAgLyoqCisgICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBj
YXRlZ29yeSBsb29rdXAgZm9yIHRoaXMgY2hhcgorICAgICAgKiBpbmRpY2F0ZXMgdGhhdCBpdCBp
cyBpbiB0aGUgc2V0IG9mIGRpY3Rpb25hcnkgbG9va3VwIGNoYXJzLgorICAgICAgKiBUaGlzIGZ1
bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZGljdGlvbmFyeSBiYXNlZCBicmVhayBpdGVy
YXRvcnMuCisgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY2F0ZWdvcnkgbG9va3VwIGZvciB0
aGlzIGNoYXIKKyAgICAgICogaW5kaWNhdGVzIHRoYXQgaXQgaXMgaW4gdGhlIHNldCBvZiBkaWN0
aW9uYXJ5IGxvb2t1cCBjaGFycy4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZp
cnR1YWwgVUJvb2wgaXNEaWN0aW9uYXJ5Q2hhcihVQ2hhcjMyKTsKKworICAgIC8qKgorICAgICAg
KiBHZXQgdGhlIHR5cGUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAgKiBAaW50ZXJuYWwK
KyAgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldEJyZWFrVHlwZSgpIGNvbnN0OworI2Vu
ZGlmCisKKyAgICAvKioKKyAgICAgICogU2V0IHRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRv
ci4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzZXRCcmVh
a1R5cGUoaW50MzJfdCB0eXBlKTsKKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAg
LyoqCisgICAgICAqIENvbW1vbiBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiwgdXNlZCBieSBjb25z
dHJ1Y3RvcnMgYW5kIGJ1ZmZlckNsb25lLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisg
ICAgdm9pZCBpbml0KCk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworcHJp
dmF0ZToKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGJhY2tzIHRoZSBpdGVyYXRvciBi
YWNrIHVwIHRvIGEgInNhZmUgcG9zaXRpb24iIGluIHRoZSB0ZXh0LgorICAgICAqIFRoaXMgaXMg
YSBwb3NpdGlvbiB0aGF0IHdlIGtub3csIHdpdGhvdXQgYW55IGNvbnRleHQsIG11c3QgYmUgYSBi
cmVhayBwb3NpdGlvbi4KKyAgICAgKiBUaGUgdmFyaW91cyBjYWxsaW5nIG1ldGhvZHMgdGhlbiBp
dGVyYXRlIGZvcndhcmQgZnJvbSB0aGlzIHNhZmUgcG9zaXRpb24gdG8KKyAgICAgKiB0aGUgYXBw
cm9wcmlhdGUgcG9zaXRpb24gdG8gcmV0dXJuLiAgKEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUg
dGhlIGRlc2NyaXB0aW9uCisgICAgICogb2YgYnVpbGRCYWNrd2FyZHNTdGF0ZVRhYmxlKCkgaW4g
UnVsZUJhc2VkQnJlYWtJdGVyYXRvci5CdWlsZGVyLikKKyAgICAgKiBAcGFyYW0gc3RhdGV0YWJs
ZSBzdGF0ZSB0YWJsZSB1c2VkIG9mIG1vdmluZyBiYWNrd2FyZHMKKyAgICAgKiBAaW50ZXJuYWwK
KyAgICAgKi8KKyAgICBpbnQzMl90IGhhbmRsZVByZXZpb3VzKGNvbnN0IFJCQklTdGF0ZVRhYmxl
ICpzdGF0ZXRhYmxlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRoZSBhY3R1
YWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5leHQoKSBtZXRob2QuICBBbGwgaXRlcmF0aW9uCisg
ICAgICogdmVjdG9ycyB0aHJvdWdoIGhlcmUuICBUaGlzIG1ldGhvZCBpbml0aWFsaXplcyB0aGUg
c3RhdGUgbWFjaGluZSB0byBzdGF0ZSAxCisgICAgICogYW5kIGFkdmFuY2VzIHRocm91Z2ggdGhl
IHRleHQgY2hhcmFjdGVyIGJ5IGNoYXJhY3RlciB1bnRpbCB3ZSByZWFjaCB0aGUgZW5kCisgICAg
ICogb2YgdGhlIHRleHQgb3IgdGhlIHN0YXRlIG1hY2hpbmUgdHJhbnNpdGlvbnMgdG8gc3RhdGUg
MC4gIFdlIHVwZGF0ZSBvdXIgcmV0dXJuCisgICAgICogdmFsdWUgZXZlcnkgdGltZSB0aGUgc3Rh
dGUgbWFjaGluZSBwYXNzZXMgdGhyb3VnaCBhIHBvc3NpYmxlIGVuZCBzdGF0ZS4KKyAgICAgKiBA
cGFyYW0gc3RhdGV0YWJsZSBzdGF0ZSB0YWJsZSB1c2VkIG9mIG1vdmluZyBmb3J3YXJkcworICAg
ICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgaGFuZGxlTmV4dChjb25zdCBSQkJJ
U3RhdGVUYWJsZSAqc3RhdGV0YWJsZSk7CisKK3Byb3RlY3RlZDoKKworI2lmbmRlZiBVX0hJREVf
SU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICogVGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBh
Y3R1YWxseSBpbXBsZW1lbnRzIGRpY3Rpb25hcnktYmFzZWQKKyAgICAgKiBicmVha2luZy4gIENv
dmVyaW5nIGF0IGxlYXN0IHRoZSByYW5nZSBmcm9tIHN0YXJ0UG9zIHRvIGVuZFBvcywKKyAgICAg
KiBpdCBjaGVja3MgZm9yIGRpY3Rpb25hcnkgY2hhcmFjdGVycywgYW5kIGlmIGl0IGZpbmRzIHRo
ZW0gZGV0ZXJtaW5lcworICAgICAqIHRoZSBhcHByb3ByaWF0ZSBvYmplY3QgdG8gZGVhbCB3aXRo
IHRoZW0uIEl0IG1heSBjYWNoZSBmb3VuZCBicmVha3MgaW4KKyAgICAgKiBmQ2FjaGVkQnJlYWtQ
b3NpdGlvbnMgYXMgaXQgZ29lcy4gSXQgbWF5IHdlbGwgYWxzbyBsb29rIGF0IHRleHQgb3V0c2lk
ZQorICAgICAqIHRoZSByYW5nZSBzdGFydFBvcyB0byBlbmRQb3MuCisgICAgICogSWYgZ29pbmcg
Zm9yd2FyZCwgZW5kUG9zIGlzIHRoZSBub3JtYWwgVW5pY29kZSBicmVhayByZXN1bHQsIGFuZAor
ICAgICAqIGlmIGdvaW5kIGluIHJldmVyc2UsIHN0YXJ0UG9zIGlzIHRoZSBub3JtYWwgVW5pY29k
ZSBicmVhayByZXN1bHQKKyAgICAgKiBAcGFyYW0gc3RhcnRQb3MgIFRoZSBzdGFydCBwb3NpdGlv
biBvZiBhIHJhbmdlIG9mIHRleHQKKyAgICAgKiBAcGFyYW0gZW5kUG9zICAgIFRoZSBlbmQgcG9z
aXRpb24gb2YgYSByYW5nZSBvZiB0ZXh0CisgICAgICogQHBhcmFtIHJldmVyc2UgICBUaGUgY2Fs
bCBpcyBmb3IgdGhlIHJldmVyc2UgZGlyZWN0aW9uCisgICAgICogQGludGVybmFsCisgICAgICov
CisgICAgaW50MzJfdCBjaGVja0RpY3Rpb25hcnkoaW50MzJfdCBzdGFydFBvcywgaW50MzJfdCBl
bmRQb3MsIFVCb29sIHJldmVyc2UpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICov
CisKK3ByaXZhdGU6CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhl
IGFwcHJvcHJpYXRlIExhbmd1YWdlQnJlYWtFbmdpbmUgZm9yIGEKKyAgICAgKiBnaXZlbiBjaGFy
YWN0ZXIgYy4KKyAgICAgKiBAcGFyYW0gYyAgICAgICAgIEEgY2hhcmFjdGVyIGluIHRoZSBkaWN0
aW9uYXJ5IHNldAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGNvbnN0IExhbmd1YWdl
QnJlYWtFbmdpbmUgKmdldExhbmd1YWdlQnJlYWtFbmdpbmUoVUNoYXIzMiBjKTsKKworICAgIC8q
KgorICAgICAqICBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB2b2lkIG1ha2VSdWxlU3RhdHVzVmFs
aWQoKTsKKworfTsKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgIElubGluZSBG
dW5jdGlvbnMgRGVmaW5pdGlvbnMgLi4uCisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
aW5saW5lIFVCb29sIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I6Om9wZXJhdG9yIT0oY29uc3QgQnJl
YWtJdGVyYXRvciYgdGhhdCkgY29uc3QgeworICAgIHJldHVybiAhb3BlcmF0b3I9PSh0aGF0KTsK
K30KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZiAvKiAjaWYgIVVDT05GSUdfTk9fQlJFQUtf
SVRFUkFUSU9OICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9zY2hyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQwYjVlMjI1MDNjZmYyNjFkMmNkMjQwZmYxMjAwN2Y5MzdmNzgzYjIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3NjaHJpdGVyLmgKQEAgLTAsMCArMSwxODcg
QEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgt
MjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFu
ZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqCisqIEZpbGUgc2Nocml0ZXIuaAorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyog
ICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgMDUvMDUvOTkgICAgIHN0
ZXBoZW4gICAgIENsZWFuZWQgdXAuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5k
ZWYgU0NIUklURVJfSAorI2RlZmluZSBTQ0hSSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0
eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3VjaHJpdGVyLmgiCisKKy8qKgorICogXGZpbGUgCisgKiBcYnJpZWYgQysrIEFQSTogU3RyaW5n
IENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorLyoqCisgKiBB
IGNvbmNyZXRlIHN1YmNsYXNzIG9mIENoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3Zl
ciB0aGUKKyAqIGNoYXJhY3RlcnMgKGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMpIGluIGEgVW5p
Y29kZVN0cmluZy4KKyAqIEl0J3MgcG9zc2libGUgbm90IG9ubHkgdG8gY3JlYXRlIGFuCisgKiBp
dGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgYW4gZW50aXJlIFVuaWNvZGVTdHJpbmcsIGJ1dCBh
bHNvIHRvCisgKiBjcmVhdGUgb25lIHRoYXQgaXRlcmF0ZXMgb3ZlciBvbmx5IGEgc3VicmFuZ2Ug
b2YgYSBVbmljb2RlU3RyaW5nCisgKiAoaXRlcmF0b3JzIG92ZXIgZGlmZmVyZW50IHN1YnJhbmdl
cyBvZiB0aGUgc2FtZSBVbmljb2RlU3RyaW5nIGRvbid0CisgKiBjb21wYXJlIGVxdWFsKS4KKyAq
IEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIFN0cmluZ0NoYXJh
Y3Rlckl0ZXJhdG9yIDogcHVibGljIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGljOgor
ICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVm
ZXJyZWQgdG8gYnkgInRleHRTdHIiLgorICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaXMg
Y29waWVkLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIHRoZSB3aG9sZSBzdHJpbmcsIGFu
ZCB0aGUgc3RhcnRpbmcgcG9zaXRpb24gaXMgMC4KKyAgICogQHBhcmFtIHRleHRTdHIgVGhlIHVu
aWNvZGUgc3RyaW5nIHVzZWQgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yCisgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmlu
ZyYgdGV4dFN0cik7CisKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBV
bmljb2RlU3RyaW5nIHJlZmVycmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIGl0ZXJhdGlv
biByYW5nZSBpcyB0aGUgd2hvbGUgc3RyaW5nLCBhbmQgdGhlIHN0YXJ0aW5nCisgICAqIHBvc2l0
aW9uIGlzIHNwZWNpZmllZCBieSAidGV4dFBvcyIuICBJZiAidGV4dFBvcyIgaXMgb3V0c2lkZSB0
aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2YgdGhpcyBvYmpl
Y3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFN0ciBUaGUgdW5pY29kZSBzdHJpbmcg
dXNlZCB0byBjcmVhdGUgYW4gaXRlcmF0b3IKKyAgICogQHBhcmFtIHRleHRQb3MgVGhlIHN0YXJ0
aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVbmljb2RlU3RyaW5nJiAgICB0ZXh0
U3RyLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0UG9zKTsKKworICAv
KioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJy
ZWQgdG8gYnkgInRleHRTdHIiLgorICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaXMgY29w
aWVkLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGJlZ2lucyB3aXRoIHRoZSBjb2RlIHVuaXQg
c3BlY2lmaWVkIGJ5CisgICAqICJ0ZXh0QmVnaW4iIGFuZCBlbmRzIHdpdGggdGhlIGNvZGUgdW5p
dCBCRUZPUkUgdGhlIGNvZGUgdW5pdCBzcGVjZmllZAorICAgKiBieSAidGV4dEVuZCIuICBUaGUg
c3RhcnRpbmcgcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJ0ZXh0UG9zIi4gIElmCisgICAqICJ0
ZXh0QmVnaW4iIGFuZCAidGV4dEVuZCIgZG9uJ3QgZm9ybSBhIHZhbGlkIHJhbmdlIG9uICJ0ZXh0
IiAoaS5lLiwKKyAgICogdGV4dEJlZ2luID49IHRleHRFbmQgb3IgZWl0aGVyIGlzIG5lZ2F0aXZl
IG9yIGdyZWF0ZXIgdGhhbiB0ZXh0LnNpemUoKSksCisgICAqIG9yICJ0ZXh0UG9zIiBpcyBvdXRz
aWRlIHRoZSByYW5nZSBkZWZpbmVkIGJ5ICJ0ZXh0QmVnaW4iIGFuZCAidGV4dEVuZCIsCisgICAq
IHRoZSBiZWhhdmlvciBvZiB0aGlzIGl0ZXJhdG9yIGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFt
IHRleHRTdHIgICAgVGhlIHVuaWNvZGUgc3RyaW5nIHVzZWQgdG8gY3JlYXRlIHRoZSBTdHJpbmdD
aGFyYWN0ZXJJdGVyYXRvcgorICAgKiBAcGFyYW0gdGV4dEJlZ2luICBUaGUgYmVnaW4gcG9zaXRp
b24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0gdGV4dEVuZCAgICBUaGUgZW5k
IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRQb3MgICAg
VGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVbmljb2RlU3RyaW5n
JiAgICB0ZXh0U3RyLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0QmVn
aW4sCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAgICAgIHRleHRFbmQsCisgICAgICAg
ICAgICAgIGludDMyX3QgICAgICAgICAgICAgIHRleHRQb3MpOworCisgIC8qKgorICAgKiBDb3B5
IGNvbnN0cnVjdG9yLiAgVGhlIG5ldyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIHRoZSBzYW1lIHJh
bmdlCisgICAqIG9mIHRoZSBzYW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCBpdHMgaW5pdGlhbCBw
b3NpdGlvbiBpcyB0aGUKKyAgICogc2FtZSBhcyAidGhhdCIncyBjdXJyZW50IHBvc2l0aW9uLgor
ICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaW4gInRoYXQiIGlzIGNvcGllZC4KKyAgICog
QHBhcmFtIHRoYXQgVGhlIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvcGllZAorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0
IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJiAgdGhhdCk7CisKKyAgLyoqCisgICAqIERlc3RydWN0
b3IuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB+U3RyaW5nQ2hhcmFj
dGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogQXNzaWdubWVudCBvcGVyYXRvci4gICp0aGlz
IGlzIGFsdGVyZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBzYW1lCisgICAqIHJhbmdlIG9mIHRoZSBz
YW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCByZWZlcnMgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFj
dGVyIHdpdGhpbiB0aGF0IHN0cmluZyBhcyAidGhhdCIgZG9lcy4KKyAgICogQHBhcmFtIHRoYXQg
VGhlIG9iamVjdCB0byBiZSBjb3BpZWQuCisgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQg
b2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0
ZXJhdG9yJgorICBvcGVyYXRvcj0oY29uc3QgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImICAgIHRo
YXQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRl
IG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9p
bnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgKiBAcmV0
dXJuIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2Yg
dGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFj
dGVyLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAg
ICAgb3BlcmF0b3I9PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0
OworCisgIC8qKgorICAgKiBSZXR1cm5zIGEgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHJl
ZmVycmluZyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgcmFuZ2Ugb2Yg
dGhlIHNhbWUgc3RyaW5nIGFzIHRoaXMgb25lLiAgVGhlCisgICAqIGNhbGxlciBtdXN0IGRlbGV0
ZSB0aGUgbmV3IGl0ZXJhdG9yLgorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjbG9uZWQgb2JqZWN0
LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0
b3IqIGNsb25lKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0
byBpdGVyYXRlIG92ZXIgdGhlIHByb3ZpZGVkIHN0cmluZy4KKyAgICogQHBhcmFtIG5ld1RleHQg
VGhlIHN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdm9pZCBzZXRUZXh0KGNvbnN0IFVuaWNvZGVTdHJpbmcmIG5ld1RleHQpOworCisgIC8q
KgorICAgKiBDb3BpZXMgdGhlIFVuaWNvZGVTdHJpbmcgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhl
IFVuaWNvZGVTdHJpbmcKKyAgICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICBFdmVuIGlmIHRo
aXMgaXRlcmF0b3IgaXRlcmF0ZXMgYWNyb3NzCisgICAqIG9ubHkgYSBwYXJ0IG9mIHRoaXMgc3Ry
aW5nLCB0aGUgd2hvbGUgc3RyaW5nIGlzIGNvcGllZC4KKyAgICogQHBhcmFtIHJlc3VsdCBSZWNl
aXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uLgorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0
cmluZyYgcmVzdWx0KTsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMg
b2JqZWN0IChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0
aGlzIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDbGFz
c0lEICAgICAgICAgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAq
IFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzIChub3QgcmVhbGx5IHB1YmxpYykKKyAg
ICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgc3RhdGljIFVDbGFzc0lEICAgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQo
dm9pZCk7CisKK3Byb3RlY3RlZDoKKyAgLyoqCisgICAqIERlZmF1bHQgY29uc3RydWN0b3IsIGl0
ZXJhdGlvbiBvdmVyIGVtcHR5IHN0cmluZy4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVy
YXRvciB0byBpdGVyYXRlIG92ZXIgdGhlIHByb3ZpZGVkIHN0cmluZy4KKyAgICogQHBhcmFtIG5l
d1RleHQgVGhlIHN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBwYXJhbSBuZXdUZXh0
TGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFN0cmluZworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVQ2hhciogbmV3VGV4dCwgaW50MzJfdCBuZXdUZXh0
TGVuZ3RoKTsKKworICAvKioKKyAgICogQ29weSBvZiB0aGUgaXRlcmF0ZWQgc3RyaW5nIG9iamVj
dC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVbmljb2RlU3RyaW5nICAgICAgICAg
ICAgdGV4dDsKKworfTsKKworVV9OQU1FU1BBQ0VfRU5ECisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNhc2VtYXAuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUv
dWNhc2VtYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzdlMTY1ODg2OTdmMWE5MzAxOTFlZTNkZjgxNmM2M2I3
YmQzOGMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1h
cC5oCkBAIC0wLDAgKzEsNDIzIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAg
IENvcHlyaWdodCAoQykgMjAwNS0yMDEyLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdWNhc2VtYXAuaAorKiAgIGVu
Y29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5k
ZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDIwMDVtYXkwNgorKiAgIGNyZWF0ZWQgYnk6
IE1hcmt1cyBXLiBTY2hlcmVyCisqCisqICAgQ2FzZSBtYXBwaW5nIHNlcnZpY2Ugb2JqZWN0IGFu
ZCBmdW5jdGlvbnMgdXNpbmcgaXQuCisqLworCisjaWZuZGVmIF9fVUNBU0VNQVBfSF9fCisjZGVm
aW5lIF9fVUNBU0VNQVBfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1
ZGUgInVuaWNvZGUvdXN0cmluZy5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9jYWxwb2ludGVyLmgi
CisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogVW5pY29kZSBjYXNlIG1hcHBpbmcg
ZnVuY3Rpb25zIHVzaW5nIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKgorICogVGhlIHNl
cnZpY2Ugb2JqZWN0IHRha2VzIGNhcmUgb2YgbWVtb3J5IGFsbG9jYXRpb25zLCBkYXRhIGxvYWRp
bmcsIGFuZCBzZXR1cAorICogZm9yIHRoZSBhdHRyaWJ1dGVzLCBhcyB1c3VhbC4KKyAqCisgKiBD
dXJyZW50bHksIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGhlcmUgZG9lcyBub3Qgb3Zlcmxh
cCB3aXRoIHVjaGFyLmgKKyAqIGFuZCB1c3RyaW5nLmgsIGV4Y2VwdCBmb3IgdWNhc2VtYXBfdG9U
aXRsZSgpLgorICoKKyAqIHVjYXNlbWFwX3V0ZjhYWVooKSBmdW5jdGlvbnMgb3BlcmF0ZSBkaXJl
Y3RseSBvbiBVVEYtOCBzdHJpbmdzLgorICovCisKKy8qKgorICogVUNhc2VNYXAgaXMgYW4gb3Bh
cXVlIHNlcnZpY2Ugb2JqZWN0IGZvciBuZXdlciBJQ1UgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucy4K
KyAqIE9sZGVyIGZ1bmN0aW9ucyBkaWQgbm90IHVzZSBhIHNlcnZpY2Ugb2JqZWN0LgorICogQHN0
YWJsZSBJQ1UgMy40CisgKi8KK3N0cnVjdCBVQ2FzZU1hcDsKK3R5cGVkZWYgc3RydWN0IFVDYXNl
TWFwIFVDYXNlTWFwOyAvKio8IEMgdHlwZWRlZiBmb3Igc3RydWN0IFVDYXNlTWFwLiBAc3RhYmxl
IElDVSAzLjQgKi8KKworLyoqCisgKiBPcGVuIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QgZm9y
IGEgbG9jYWxlIGFuZCBhIHNldCBvZiBvcHRpb25zLgorICogVGhlIGxvY2FsZSBJRCBhbmQgb3B0
aW9ucyBhcmUgcHJlcHJvY2Vzc2VkIHNvIHRoYXQgZnVuY3Rpb25zIHVzaW5nIHRoZQorICogc2Vy
dmljZSBvYmplY3QgbmVlZCBub3QgcHJvY2VzcyB0aGVtIGluIGVhY2ggY2FsbC4KKyAqCisgKiBA
cGFyYW0gbG9jYWxlIElDVSBsb2NhbGUgSUQsIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudAor
ICogICAgICAgICAgICAgICB1cHBlci0vbG93ZXItL3RpdGxlLWNhc2luZyBhY2NvcmRpbmcgdG8g
dGhlIFVuaWNvZGUgc3RhbmRhcmQuCisgKiAgICAgICAgICAgICAgIFVzdWFsIHNlbWFudGljczog
IiI9cm9vdCwgTlVMTD1kZWZhdWx0IGxvY2FsZSwgZXRjLgorICogQHBhcmFtIG9wdGlvbnMgT3B0
aW9ucyBiaXQgc2V0LCB1c2VkIGZvciBjYXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29u
cy4KKyAqICAgICAgICAgICAgICAgIFNhbWUgZmxhZ3MgYXMgZm9yIHVfZm9sZENhc2UoKSwgdV9z
dHJGb2xkQ2FzZSgpLAorICogICAgICAgICAgICAgICAgdV9zdHJDYXNlQ29tcGFyZSgpLCBldGMu
CisgKiAgICAgICAgICAgICAgICBVc2UgMCBvciBVX0ZPTERfQ0FTRV9ERUZBVUxUIGZvciBkZWZh
dWx0IGJlaGF2aW9yLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50
ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11
c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBA
cmV0dXJuIFBvaW50ZXIgdG8gYSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdCwgaWYgc3VjY2Vzc2Z1
bC4KKyAqCisgKiBAc2VlIFVfRk9MRF9DQVNFX0RFRkFVTFQKKyAqIEBzZWUgVV9GT0xEX0NBU0Vf
RVhDTFVERV9TUEVDSUFMX0kKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBA
c2VlIFVfVElUTEVDQVNFX05PX0JSRUFLX0FESlVTVE1FTlQKKyAqIEBzdGFibGUgSUNVIDMuNAor
ICovCitVX1NUQUJMRSBVQ2FzZU1hcCAqIFVfRVhQT1JUMgordWNhc2VtYXBfb3Blbihjb25zdCBj
aGFyICpsb2NhbGUsIHVpbnQzMl90IG9wdGlvbnMsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwor
CisvKioKKyAqIENsb3NlIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gY3Nt
IE9iamVjdCB0byBiZSBjbG9zZWQuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUg
dm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX2Nsb3NlKFVDYXNlTWFwICpjc20pOworCisjaWYgVV9T
SE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBcY2xhc3Mg
TG9jYWxVQ2FzZU1hcFBvaW50ZXIKKyAqICJTbWFydCBwb2ludGVyIiBjbGFzcywgY2xvc2VzIGEg
VUNhc2VNYXAgdmlhIHVjYXNlbWFwX2Nsb3NlKCkuCisgKiBGb3IgbW9zdCBtZXRob2RzIHNlZSB0
aGUgTG9jYWxQb2ludGVyQmFzZSBiYXNlIGNsYXNzLgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVy
QmFzZQorICogQHNlZSBMb2NhbFBvaW50ZXIKKyAqIEBzdGFibGUgSUNVIDQuNAorICovCitVX0RF
RklORV9MT0NBTF9PUEVOX1BPSU5URVIoTG9jYWxVQ2FzZU1hcFBvaW50ZXIsIFVDYXNlTWFwLCB1
Y2FzZW1hcF9jbG9zZSk7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYKKworLyoqCisgKiBH
ZXQgdGhlIGxvY2FsZSBJRCB0aGF0IGlzIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudCBjYXNl
IG1hcHBpbmdzLgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBy
ZXR1cm4gbG9jYWxlIElECisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgY29uc3Qg
Y2hhciAqIFVfRVhQT1JUMgordWNhc2VtYXBfZ2V0TG9jYWxlKGNvbnN0IFVDYXNlTWFwICpjc20p
OworCisvKioKKyAqIEdldCB0aGUgb3B0aW9ucyBiaXQgc2V0IHRoYXQgaXMgdXNlZCBmb3IgY2Fz
ZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVybiBvcHRpb25zIGJpdCBzZXQKKyAqIEBzdGFibGUg
SUNVIDMuNAorICovCitVX1NUQUJMRSB1aW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldE9w
dGlvbnMoY29uc3QgVUNhc2VNYXAgKmNzbSk7CisKKy8qKgorICogU2V0IHRoZSBsb2NhbGUgSUQg
dGhhdCBpcyB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQgY2FzZSBtYXBwaW5ncy4KKyAqCisg
KiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGxvY2FsZSBM
b2NhbGUgSUQsIHNlZSB1Y2FzZW1hcF9vcGVuKCkuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0
IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAg
ICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVu
Y3Rpb24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX29wZW4KKyAqIEBzdGFibGUgSUNVIDMu
NAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0TG9jYWxlKFVDYXNl
TWFwICpjc20sIGNvbnN0IGNoYXIgKmxvY2FsZSwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisK
Ky8qKgorICogU2V0IHRoZSBvcHRpb25zIGJpdCBzZXQgdGhhdCBpcyB1c2VkIGZvciBjYXNlIGZv
bGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29ucy4KKyAqCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBiaXQgc2V0LCBzZWUg
dWNhc2VtYXBfb3BlbigpLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBv
aW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNo
IG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisg
KgorICogQHNlZSB1Y2FzZW1hcF9vcGVuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFC
TEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldE9wdGlvbnMoVUNhc2VNYXAgKmNzbSwgdWlu
dDMyX3Qgb3B0aW9ucywgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogRG8gbm90
IGxvd2VyY2FzZSBub24taW5pdGlhbCBwYXJ0cyBvZiB3b3JkcyB3aGVuIHRpdGxlY2FzaW5nLgor
ICogT3B0aW9uIGJpdCBmb3IgdGl0bGVjYXNpbmcgQVBJcyB0aGF0IHRha2UgYW4gb3B0aW9ucyBi
aXQgc2V0LgorICoKKyAqIEJ5IGRlZmF1bHQsIHRpdGxlY2FzaW5nIHdpbGwgdGl0bGVjYXNlIHRo
ZSBmaXJzdCBjYXNlZCBjaGFyYWN0ZXIKKyAqIG9mIGEgd29yZCBhbmQgbG93ZXJjYXNlIGFsbCBv
dGhlciBjaGFyYWN0ZXJzLgorICogV2l0aCB0aGlzIG9wdGlvbiwgdGhlIG90aGVyIGNoYXJhY3Rl
cnMgd2lsbCBub3QgYmUgbW9kaWZpZWQuCisgKgorICogQHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25z
CisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUK
KyAqIEBzZWUgVW5pY29kZVN0cmluZzo6dG9UaXRsZQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8K
KyNkZWZpbmUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFIDB4MTAwCisKKy8qKgorICogRG8gbm90
IGFkanVzdCB0aGUgdGl0bGVjYXNpbmcgaW5kZXhlcyBmcm9tIEJyZWFrSXRlcmF0b3I6Om5leHQo
KSBpbmRleGVzOworICogdGl0bGVjYXNlIGV4YWN0bHkgdGhlIGNoYXJhY3RlcnMgYXQgYnJlYWtz
IGZyb20gdGhlIGl0ZXJhdG9yLgorICogT3B0aW9uIGJpdCBmb3IgdGl0bGVjYXNpbmcgQVBJcyB0
aGF0IHRha2UgYW4gb3B0aW9ucyBiaXQgc2V0LgorICoKKyAqIEJ5IGRlZmF1bHQsIHRpdGxlY2Fz
aW5nIHdpbGwgdGFrZSBlYWNoIGJyZWFrIGl0ZXJhdG9yIGluZGV4LAorICogYWRqdXN0IGl0IGJ5
IGxvb2tpbmcgZm9yIHRoZSBuZXh0IGNhc2VkIGNoYXJhY3RlciwgYW5kIHRpdGxlY2FzZSB0aGF0
IG9uZS4KKyAqIE90aGVyIGNoYXJhY3RlcnMgYXJlIGxvd2VyY2FzZWQuCisgKgorICogVGhpcyBm
b2xsb3dzIFVuaWNvZGUgNCAmIDUgc2VjdGlvbiAzLjEzIERlZmF1bHQgQ2FzZSBPcGVyYXRpb25z
OgorICoKKyAqIFIzICB0b1RpdGxlY2FzZShYKTogRmluZCB0aGUgd29yZCBib3VuZGFyaWVzIGJh
c2VkIG9uIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXgKKyAqICMyOSwgIlRleHQgQm91bmRhcmllcy4i
IEJldHdlZW4gZWFjaCBwYWlyIG9mIHdvcmQgYm91bmRhcmllcywgZmluZCB0aGUgZmlyc3QKKyAq
IGNhc2VkIGNoYXJhY3RlciBGLiBJZiBGIGV4aXN0cywgbWFwIEYgdG8gZGVmYXVsdF90aXRsZShG
KTsgdGhlbiBtYXAgZWFjaAorICogc3Vic2VxdWVudCBjaGFyYWN0ZXIgQyB0byBkZWZhdWx0X2xv
d2VyKEMpLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNlZSB1Y2FzZW1h
cF90b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc2VlIFVuaWNvZGVT
dHJpbmc6OnRvVGl0bGUKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBAc3Rh
YmxlIElDVSAzLjgKKyAqLworI2RlZmluZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5U
IDB4MjAwCisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworLyoqCisgKiBHZXQg
dGhlIGJyZWFrIGl0ZXJhdG9yIHRoYXQgaXMgdXNlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBEbyBu
b3QgbW9kaWZ5IHRoZSByZXR1cm5lZCBicmVhayBpdGVyYXRvci4KKyAqIEBwYXJhbSBjc20gVUNh
c2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIHRpdGxlY2FzaW5nIGJyZWFrIGl0ZXJh
dG9yCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgY29uc3QgVUJyZWFrSXRlcmF0
b3IgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldEJyZWFrSXRlcmF0b3IoY29uc3QgVUNhc2VNYXAg
KmNzbSk7CisKKy8qKgorICogU2V0IHRoZSBicmVhayBpdGVyYXRvciB0aGF0IGlzIHVzZWQgZm9y
IHRpdGxlY2FzaW5nLgorICogVGhlIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0IHJlbGVhc2VzIGEg
cHJldmlvdXNseSBzZXQgYnJlYWsgaXRlcmF0b3IKKyAqIGFuZCAiYWRvcHRzIiB0aGlzIG5ldyBv
bmUsIHRha2luZyBvd25lcnNoaXAgb2YgaXQuCisgKiBJdCB3aWxsIGJlIHJlbGVhc2VkIGluIGEg
c3Vic2VxdWVudCBjYWxsIHRvIHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoKQorICogb3IgdWNh
c2VtYXBfY2xvc2UoKS4KKyAqCisgKiBCcmVhayBpdGVyYXRvciBvcGVyYXRpb25zIGFyZSBub3Qg
dGhyZWFkLXNhZmUuIFRoZXJlZm9yZSwgdGl0bGVjYXNpbmcKKyAqIGZ1bmN0aW9ucyB1c2Ugbm9u
LWNvbnN0IFVDYXNlTWFwIG9iamVjdHMuIEl0IGlzIG5vdCBwb3NzaWJsZSB0byB0aXRsZWNhc2UK
KyAqIHN0cmluZ3MgY29uY3VycmVudGx5IHVzaW5nIHRoZSBzYW1lIFVDYXNlTWFwLgorICoKKyAq
IEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gaXRlclRvQWRv
cHQgQnJlYWsgaXRlcmF0b3IgdG8gYmUgYWRvcHRlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBAcGFy
YW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZh
bHVlLAorICogICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWls
dXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0
bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICov
CitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcihVQ2Fz
ZU1hcCAqY3NtLCBVQnJlYWtJdGVyYXRvciAqaXRlclRvQWRvcHQsIFVFcnJvckNvZGUgKnBFcnJv
ckNvZGUpOworCisvKioKKyAqIFRpdGxlY2FzZSBhIFVURi0xNiBzdHJpbmcuIFRoaXMgZnVuY3Rp
b24gaXMgYWxtb3N0IGEgZHVwbGljYXRlIG9mIHVfc3RyVG9UaXRsZSgpLAorICogZXhjZXB0IHRo
YXQgaXQgdGFrZXMgdWNhc2VtYXBfc2V0T3B0aW9ucygpIGludG8gYWNjb3VudCBhbmQgaGFzIHBl
cmZvcm1hbmNlCisgKiBhZHZhbnRhZ2VzIGZyb20gYmVpbmcgYWJsZSB0byB1c2UgYSBVQ2FzZU1h
cCBvYmplY3QgZm9yIG11bHRpcGxlIGNhc2UgbWFwcGluZworICogb3BlcmF0aW9ucywgc2F2aW5n
IHNldHVwIHRpbWUuCisgKgorICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRl
eHQtc2Vuc2l0aXZlLgorICogVGl0bGVjYXNpbmcgdXNlcyBhIGJyZWFrIGl0ZXJhdG9yIHRvIGZp
bmQgdGhlIGZpcnN0IGNoYXJhY3RlcnMgb2Ygd29yZHMKKyAqIHRoYXQgYXJlIHRvIGJlIHRpdGxl
Y2FzZWQuIEl0IHRpdGxlY2FzZXMgdGhvc2UgY2hhcmFjdGVycyBhbmQgbG93ZXJjYXNlcworICog
YWxsIG90aGVycy4gKFRoaXMgY2FuIGJlIG1vZGlmaWVkIHdpdGggdWNhc2VtYXBfc2V0T3B0aW9u
cygpLikKKyAqCisgKiBOb3RlOiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgbm9uLWNvbnN0IFVDYXNl
TWFwIHBvaW50ZXIgYmVjYXVzZSBpdCB3aWxsCisgKiBvcGVuIGEgZGVmYXVsdCBicmVhayBpdGVy
YXRvciBpZiBubyBicmVhayBpdGVyYXRvciB3YXMgc2V0IHlldCwKKyAqIGFuZCBlZmZlY3RpdmVs
eSBjYWxsIHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoKTsKKyAqIGFsc28gYmVjYXVzZSB0aGUg
YnJlYWsgaXRlcmF0b3IgaXMgc3RhdGVmdWwgYW5kIHdpbGwgYmUgbW9kaWZpZWQgZHVyaW5nCisg
KiB0aGUgaXRlcmF0aW9uLgorICoKKyAqIFRoZSB0aXRsZWNhc2UgYnJlYWsgaXRlcmF0b3IgY2Fu
IGJlIHByb3ZpZGVkIHRvIGN1c3RvbWl6ZSBmb3IgYXJiaXRyYXJ5CisgKiBzdHlsZXMsIHVzaW5n
IHJ1bGVzIGFuZCBkaWN0aW9uYXJpZXMgYmV5b25kIHRoZSBzdGFuZGFyZCBpdGVyYXRvcnMuCisg
KiBUaGUgc3RhbmRhcmQgdGl0bGVjYXNlIGl0ZXJhdG9yIGZvciB0aGUgcm9vdCBsb2NhbGUgaW1w
bGVtZW50cyB0aGUKKyAqIGFsZ29yaXRobSBvZiBVbmljb2RlIFRSIDIxLgorICoKKyAqIFRoaXMg
ZnVuY3Rpb24gdXNlcyBvbmx5IHRoZSBzZXRVVGV4dCgpLCBmaXJzdCgpLCBuZXh0KCkgYW5kIGNs
b3NlKCkgbWV0aG9kcyBvZiB0aGUKKyAqIHByb3ZpZGVkIGJyZWFrIGl0ZXJhdG9yLgorICoKKyAq
IFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgor
ICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qg
b3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0
LiBUaGlzIHBvaW50ZXIgaXMgbm9uLWNvbnN0IQorICogICAgICAgICAgICAgICAgICBTZWUgdGhl
IG5vdGUgYWJvdmUgZm9yIGRldGFpbHMuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZv
ciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlm
CisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAg
ICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVy
ZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVy
IG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1h
eSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9m
IHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0
aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmlu
Zy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5n
LiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJy
b3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisg
KiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZv
cmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3Vs
dCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93
LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RD
YXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9UaXRsZQorICogQHN0YWJsZSBJQ1UgMy44Cisg
Ki8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF90b1RpdGxlKFVDYXNlTWFw
ICpjc20sCisgICAgICAgICAgICAgICAgIFVDaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0
eSwKKyAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgs
CisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYKKwor
LyoqCisgKiBMb3dlcmNhc2UgdGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcuCisgKiBD
YXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaGUg
cmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRo
ZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJs
YXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAq
IEBwYXJhbSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVz
dWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1
ZmZlciBpcyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBp
cyB1bmRlZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBU
aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVu
CisgKiAgICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3
aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAg
ICAgICB3aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFt
IHNyYyAgICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUg
bGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5V
TC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50
ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVz
dCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEBy
ZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9y
IGluIGNhc2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2Ug
aXQgd2lsbCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJU
b0xvd2VyCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9S
VDIKK3VjYXNlbWFwX3V0ZjhUb0xvd2VyKGNvbnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAg
ICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBVcHBlcmNhc2Ug
dGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRl
cGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25n
ZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFu
ZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFt
IGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAg
QSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRl
cm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91
Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2Fz
ZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVm
ZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAg
ICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRo
ZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRp
bmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3Jp
Z2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmln
aW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICog
QHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29k
ZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBm
YWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBv
ZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZm
ZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVy
IHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1VwcGVyCisgKiBAc3RhYmxl
IElDVSAzLjQKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhU
b1VwcGVyKGNvbnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgICAgICBjaGFyICpk
ZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlICpwRXJyb3JDb2RlKTsKKworI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCisv
KioKKyAqIFRpdGxlY2FzZSBhIFVURi04IHN0cmluZy4KKyAqIENhc2luZyBpcyBsb2NhbGUtZGVw
ZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRpdGxlY2FzaW5nIHVzZXMgYSBicmVh
ayBpdGVyYXRvciB0byBmaW5kIHRoZSBmaXJzdCBjaGFyYWN0ZXJzIG9mIHdvcmRzCisgKiB0aGF0
IGFyZSB0byBiZSB0aXRsZWNhc2VkLiBJdCB0aXRsZWNhc2VzIHRob3NlIGNoYXJhY3RlcnMgYW5k
IGxvd2VyY2FzZXMKKyAqIGFsbCBvdGhlcnMuIChUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHVj
YXNlbWFwX3NldE9wdGlvbnMoKS4pCisgKgorICogTm90ZTogVGhpcyBmdW5jdGlvbiB0YWtlcyBh
IG5vbi1jb25zdCBVQ2FzZU1hcCBwb2ludGVyIGJlY2F1c2UgaXQgd2lsbAorICogb3BlbiBhIGRl
ZmF1bHQgYnJlYWsgaXRlcmF0b3IgaWYgbm8gYnJlYWsgaXRlcmF0b3Igd2FzIHNldCB5ZXQsCisg
KiBhbmQgZWZmZWN0aXZlbHkgY2FsbCB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCk7CisgKiBh
bHNvIGJlY2F1c2UgdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIHN0YXRlZnVsIGFuZCB3aWxsIGJlIG1v
ZGlmaWVkIGR1cmluZworICogdGhlIGl0ZXJhdGlvbi4KKyAqCisgKiBUaGUgdGl0bGVjYXNlIGJy
ZWFrIGl0ZXJhdG9yIGNhbiBiZSBwcm92aWRlZCB0byBjdXN0b21pemUgZm9yIGFyYml0cmFyeQor
ICogc3R5bGVzLCB1c2luZyBydWxlcyBhbmQgZGljdGlvbmFyaWVzIGJleW9uZCB0aGUgc3RhbmRh
cmQgaXRlcmF0b3JzLgorICogVGhlIHN0YW5kYXJkIHRpdGxlY2FzZSBpdGVyYXRvciBmb3IgdGhl
IHJvb3QgbG9jYWxlIGltcGxlbWVudHMgdGhlCisgKiBhbGdvcml0aG0gb2YgVW5pY29kZSBUUiAy
MS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHVzZXMgb25seSB0aGUgc2V0VVRleHQoKSwgZmlyc3Qo
KSwgbmV4dCgpIGFuZCBjbG9zZSgpIG1ldGhvZHMgb2YgdGhlCisgKiBwcm92aWRlZCBicmVhayBp
dGVyYXRvci4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFu
IHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24g
YnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1h
cCBzZXJ2aWNlIG9iamVjdC4gVGhpcyBwb2ludGVyIGlzIG5vbi1jb25zdCEKKyAqICAgICAgICAg
ICAgICAgICAgU2VlIHRoZSBub3RlIGFib3ZlIGZvciBkZXRhaWxzLgorICogQHBhcmFtIGRlc3Qg
ICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBO
VUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdl
IGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBp
biBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRo
ZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAg
ICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1
cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQg
d3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRo
ZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhl
IG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQu
CisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJv
ciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0
ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVu
Z3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBh
IGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdy
ZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0clRvVGl0bGUKKyAqIEBz
ZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0JSRUFL
X0FESlVTVE1FTlQKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSBpbnQzMl90IFVf
RVhQT1JUMgordWNhc2VtYXBfdXRmOFRvVGl0bGUoVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAg
ICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAg
ICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYKKworLyoqCisgKiBDYXNl
LWZvbGRzIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICoKKyAqIENhc2UtZm9s
ZGluZyBpcyBsb2NhbGUtaW5kZXBlbmRlbnQgYW5kIG5vdCBjb250ZXh0LXNlbnNpdGl2ZSwKKyAq
IGJ1dCB0aGVyZSBpcyBhbiBvcHRpb24gZm9yIHdoZXRoZXIgdG8gaW5jbHVkZSBvciBleGNsdWRl
IG1hcHBpbmdzIGZvciBkb3R0ZWQgSQorICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQg
d2l0aCAnVCcgaW4gQ2FzZUZvbGRpbmcudHh0LgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxv
bmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcg
YW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFy
YW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGRlc3QgICAg
ICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwt
dGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVu
b3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBj
YXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBi
dWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAg
ICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4g
dGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3Jp
dGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBv
cmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9y
aWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisg
KiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBj
b2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBh
IGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3Ro
IG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1
ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0
ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0ckZvbGRDYXNlCisgKiBAc2Vl
IHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgVV9GT0xEX0NBU0VfREVGQVVMVAorICogQHNl
ZSBVX0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8K
K1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4Rm9sZENhc2UoY29uc3Qg
VUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90
IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGlu
dDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJv
ckNvZGUpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNo
cml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0ZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
ZDVhOTkwZjdiN2VkM2Q1YmFjZjJkYTg0NzFlZjhmZjk0MjJmOTljCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2hyaXRlci5oCkBAIC0wLDAgKzEsMzgxIEBACisv
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIFVDSFJJVEVSX0gK
KyNkZWZpbmUgVUNIUklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNs
dWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisKKy8qKgorICogXGZpbGUgCisgKiBcYnJpZWYgQysr
IEFQSTogVUNoYXIgQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lO
CisKKy8qKgorICogQSBjb25jcmV0ZSBzdWJjbGFzcyBvZiBDaGFyYWN0ZXJJdGVyYXRvciB0aGF0
IGl0ZXJhdGVzIG92ZXIgdGhlCisgKiBjaGFyYWN0ZXJzIChjb2RlIHVuaXRzIG9yIGNvZGUgcG9p
bnRzKSBpbiBhIFVDaGFyIGFycmF5LgorICogSXQncyBwb3NzaWJsZSBub3Qgb25seSB0byBjcmVh
dGUgYW4KKyAqIGl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciBhbiBlbnRpcmUgVUNoYXIgYXJy
YXksIGJ1dCBhbHNvIHRvCisgKiBjcmVhdGUgb25lIHRoYXQgaXRlcmF0ZXMgb3ZlciBvbmx5IGEg
c3VicmFuZ2Ugb2YgYSBVQ2hhciBhcnJheQorICogKGl0ZXJhdG9ycyBvdmVyIGRpZmZlcmVudCBz
dWJyYW5nZXMgb2YgdGhlIHNhbWUgVUNoYXIgYXJyYXkgZG9uJ3QKKyAqIGNvbXBhcmUgZXF1YWwp
LgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQHNlZSBGb3J3YXJkQ2hhcmFjdGVySXRl
cmF0b3IKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgVUNoYXJD
aGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBDaGFyYWN0ZXJJdGVyYXRvciB7CitwdWJsaWM6Cisg
IC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJy
ZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNv
ZGU+bGVuZ3RoLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlzIG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0
ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90IGRlbGV0ZSBpdCkuCisgICAqIEBwYXJh
bSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBwYXJh
bSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIgYXJyYXkKKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyKiB0ZXh0UHRy
LCBpbnQzMl90IGxlbmd0aCk7CisKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVy
IHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVy
YXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5sZW5ndGgtMTwvY29kZT4uCisgICAqIHRleHQgaXMg
b25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisgICAqIGRlc3RydWN0b3Igd2lsbCBub3Qg
ZGVsZXRlIGl0KS4KKyAgICogVGhlIHN0YXJ0aW5nCisgICAqIHBvc2l0aW9uIGlzIHNwZWNpZmll
ZCBieSAicG9zaXRpb24iLiBJZiAicG9zaXRpb24iIGlzIG91dHNpZGUgdGhlIHZhbGlkCisgICAq
IGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVuZGVmaW5l
ZC4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGQgb3Zl
cgorICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAq
IEBwYXJhbSBwb3NpdGlvbiBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29u
c3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Ig
b3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUg
aXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNvZGU+ZW5kLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlz
IG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90
IGRlbGV0ZSBpdCkuCisgICAqIFRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVjaWZp
ZWQgYnkgInBvc2l0aW9uIi4gSWYgYmVnaW4gYW5kIGVuZCBkbyBub3QKKyAgICogZm9ybSBhIHZh
bGlkIGl0ZXJhdGlvbiByYW5nZSBvciAicG9zaXRpb24iIGlzIG91dHNpZGUgdGhlIHZhbGlkCisg
ICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVuZGVm
aW5lZC4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGVk
IG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQor
ICAgKiBAcGFyYW0gdGV4dEJlZ2luICBUaGUgYmVnaW4gcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlv
biByYW5nZQorICAgKiBAcGFyYW0gdGV4dEVuZCAgICBUaGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBp
dGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHBvc2l0aW9uICAgIFRoZSBzdGFydGluZyBwb3Np
dGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNo
YXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5ndGgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCB0ZXh0QmVnaW4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50MzJfdCB0ZXh0RW5kLAorICAgICAgICAgICAgICAgICAgICAgICAg
IGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBDb3B5IGNvbnN0cnVjdG9yLiAgVGhl
IG5ldyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIHRoZSBzYW1lIHJhbmdlCisgICAqIG9mIHRoZSBz
YW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCBpdHMgaW5pdGlhbCBwb3NpdGlvbiBpcyB0aGUKKyAg
ICogc2FtZSBhcyAidGhhdCIncyBjdXJyZW50IHBvc2l0aW9uLgorICAgKiBAcGFyYW0gdGhhdCBU
aGUgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyQ2hhcmFjdGVy
SXRlcmF0b3ImICB0aGF0KTsKKworICAvKioKKyAgICogRGVzdHJ1Y3Rvci4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIH5VQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKCk7CisK
KyAgLyoqCisgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICAqdGhpcyBpcyBhbHRlcmVkIHRvIGl0
ZXJhdGUgb3ZlciB0aGUgc2FuZQorICAgKiByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRo
YXQiLCBhbmQgcmVmZXJzIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciB3aXRoaW4gdGhhdCBz
dHJpbmcgYXMgInRoYXQiIGRvZXMuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBvYmplY3QgdG8gYmUg
Y29waWVkCisgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0CisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYKKyAgb3BlcmF0b3I9
KGNvbnN0IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImICAgIHRoYXQpOworCisgIC8qKgorICAgKiBS
ZXR1cm5zIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ug
b2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hh
cmFjdGVyLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHVz
ZWQgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5CisgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUg
aXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBz
dHJpbmcgYW5kIGFyZSBwb2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9vbCAgICAgICAgICBvcGVyYXRvcj09KGNv
bnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgLyoqCisgICAq
IEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhpcyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0
aGUgaGFzaCBjb2RlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgaW50
MzJfdCAgICAgICAgIGhhc2hDb2RlKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1cm5z
IGEgbmV3IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAq
IGNoYXJhY3RlciBpbiB0aGUgc2FtZSByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgdGhpcyBv
bmUuICBUaGUKKyAgICogY2FsbGVyIG11c3QgZGVsZXRlIHRoZSBuZXcgaXRlcmF0b3IuCisgICAq
IEByZXR1cm4gdGhlIENoYXJhY3Rlckl0ZXJhdG9yIG5ld2x5IGNyZWF0ZWQKKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9uZSh2b2lk
KSBjb25zdDsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhl
IGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJu
cyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVy
YXRpb24gd2l0aCBuZXh0KCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBp
dHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUNoYXIgICAgICAgICBmaXJzdCh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0
aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSB1bml0LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9u
CisgICAqIHRvIHRoZSBzZWNvbmQgY29kZSB1bml0LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRv
IHNldFRvU3RhcnQoKQorICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdElu
YygpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiBy
YW5nZQorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAg
ICBmaXJzdFBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFu
Z2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LAorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRv
IGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQzMigpLgorICAgKiBOb3RlIHRoYXQgYW4gaXRl
cmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLCBiZWdpbm5pbmcgd2l0aCwKKyAgICogZS5nLiwg
c2V0VG9TdGFydCgpIG9yIGZpcnN0UG9zdEluYygpLCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICog
QHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzIo
dm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBm
aXJzdCBjb2RlIHBvaW50IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhh
dCBjb2RlIHBvaW50LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAqIHRvIHRoZSBzZWNvbmQg
Y29kZSBwb2ludC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICog
Zm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLgorICAgKiBAcmV0dXJu
IHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzJQb3N0SW5j
KHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUg
bGFzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMg
dGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0
aW9uIHdpdGggcHJldmlvdXMoKS4KKyAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHVuaXQgaW4g
aXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIFVDaGFyICAgICAgICAgbGFzdCh2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0
aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUg
dXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91czMyKCkuCisgICAqIEByZXR1
cm4gdGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBsYXN0MzIodm9pZCk7
CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSAicG9zaXRp
b24iLXRoIGNvZGUgdW5pdAorICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRl
cmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAgICogcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICog
QHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQtc3RvcmFnZSBvYmpl
Y3QKKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIHNldEluZGV4KGludDMyX3QgcG9zaXRpb24pOwor
CisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgYmVnaW5uaW5n
IG9mIHRoZSBjb2RlIHBvaW50CisgICAqIHRoYXQgY29udGFpbnMgdGhlICJwb3NpdGlvbiItdGgg
Y29kZSB1bml0CisgICAqIGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciBy
ZWZlcnMgdG8sIGFuZAorICAgKiByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4KKyAgICogVGhlIGN1
cnJlbnQgcG9zaXRpb24gaXMgYWRqdXN0ZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29kZSBw
b2ludAorICAgKiAoaXRzIGZpcnN0IGNvZGUgdW5pdCkuCisgICAqIEBwYXJhbSBwb3NpdGlvbiB0
aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAqIEByZXR1cm4g
dGhlIGNvZGUgdW5pdAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNo
YXIzMiAgICAgICBzZXRJbmRleDMyKGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBS
ZXR1cm5zIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisg
ICAqIEByZXR1cm4gdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0
by4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAg
Y3VycmVudCh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogUmV0dXJucyB0aGUgY29kZSBwb2lu
dCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHJldHVybiB0aGUgY29k
ZSBwb2ludCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgY3VycmVudDMyKHZvaWQpIGNv
bnN0OworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0
aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZSBubyBtb3JlCisgICAqIGNvZGUgdW5pdHMgdG8g
cmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSB1bml0IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCBVQ2hhciAgICAgICAgIG5leHQodm9pZCk7CisKKyAgLyoqCisgICAqIEdldHMgdGhlIGN1
cnJlbnQgY29kZSB1bml0IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNv
ZGUgdW5pdAorICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqICh0b3dhcmQgZW5kSW5k
ZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwg
cmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dFBvc3RJ
bmModm9pZCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQg
aW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIGVuZEluZGV4KCkpLCBhbmQgcmV0
dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHBv
aW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogTm90ZSB0aGF0IGl0ZXJhdGlvbiB3
aXRoICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MgaXMgbGVzcworICAgKiBlZmZpY2llbnQgdGhh
biBpdGVyYXRpb24gd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNlbWFudGljcworICAgKiB0aGF0IGlz
IHByb3ZpZGVkIGJ5IG5leHQzMlBvc3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUgbmV4dCBjb2Rl
IHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMih2b2lkKTsKKworICAvKioKKyAgICog
R2V0cyB0aGUgY3VycmVudCBjb2RlIHBvaW50IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRv
IHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiAo
dG93YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAqIG5vIG1vcmUgY29kZSBwb2lu
dHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgcG9p
bnQuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAg
IG5leHQzMlBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgRkFMU0UgaWYgdGhl
cmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBhdCBvciBhZnRl
ciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBUaGlz
IGlzIHVzZWQgd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMoKSBpbiBmb3J3YXJk
CisgICAqIGl0ZXJhdGlvbi4KKyAgICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9y
ZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50
IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzTmV4dCgpOworCisgIC8qKgorICAgKiBB
ZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2Ug
KHRvd2FyZAorICAgKiBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4g
IElmIHRoZXJlIGFyZSBubyBtb3JlCisgICAqIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5z
IERPTkUuCisgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0
aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIg
ICAgICAgICBwcmV2aW91cyh2b2lkKTsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIHBy
ZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIHN0
YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZSBu
byBtb3JlCisgICAqIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBA
cmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHByZXZp
b3VzMzIodm9pZCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5v
IG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQg
cG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogVGhpcyBpcyB1c2VkIHdpdGgg
cHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkgaW4gYmFja3dhcmQKKyAgICogaXRlcmF0aW9uLgor
ICAgKiBAcmV0dXJuIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29k
ZSBwb2ludHMKKyAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9vbCAg
ICAgICAgaGFzUHJldmlvdXMoKTsKKworICAvKioKKyAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9z
aXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICogaXRlcmF0aW9u
IHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAq
IFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHVuaXRzIGZvcndh
cmQKKyAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZl
IGRlbHRhLgorICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdp
bi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgKiBhIG5lZ2F0aXZlIGRlbHRh
IG1lYW5zIGJhY2t3YXJkLgorICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7
a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92ZShp
bnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbik7CisKKyAgLyoqCisgICAqIE1vdmVzIHRoZSBj
dXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAq
IGl0ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRz
ZWxmLgorICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSBw
b2ludHMgZm9yd2FyZAorICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUg
b3IgbmVnYXRpdmUgZGVsdGEuCisgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVsYXRp
dmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAqIGEgbmVn
YXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVu
dW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgKiBAcmV0dXJuIHRoZSBuZXcg
cG9zaXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIGludDMyX3Qg
ICAgICBtb3ZlMzIoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pOworCisgIC8qKgorICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgYSBuZXcgcmFuZ2Ugb2YgdGV4dAor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVQ2hhciog
bmV3VGV4dCwgaW50MzJfdCBuZXdUZXh0TGVuZ3RoKTsKKworICAvKioKKyAgICogQ29waWVzIHRo
ZSBVQ2hhciBhcnJheSB1bmRlciBpdGVyYXRpb24gaW50byB0aGUgVW5pY29kZVN0cmluZworICAg
KiByZWZlcnJlZCB0byBieSAicmVzdWx0Ii4gIEV2ZW4gaWYgdGhpcyBpdGVyYXRvciBpdGVyYXRl
cyBhY3Jvc3MKKyAgICogb25seSBhIHBhcnQgb2YgdGhpcyBzdHJpbmcsIHRoZSB3aG9sZSBzdHJp
bmcgaXMgY29waWVkLgorICAgKiBAcGFyYW0gcmVzdWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUg
dGV4dCB1bmRlciBpdGVyYXRpb24uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCB2b2lkICAgICAgICAgICAgZ2V0VGV4dChVbmljb2RlU3RyaW5nJiByZXN1bHQpOworCisg
IC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcyAobm90IHJlYWxseSBw
dWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcworICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHN0YXRpYyBVQ2xhc3NJRCAgICAgICAgIFVfRVhQT1JUMiBn
ZXRTdGF0aWNDbGFzc0lEKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBm
b3IgdGhpcyBvYmplY3QgKG5vdCByZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3Mg
SUQgZm9yIHRoaXMgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUNsYXNzSUQgICAgICAgIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCitwcm90
ZWN0ZWQ6CisgIC8qKgorICAgKiBQcm90ZWN0ZWQgY29uc3RydWN0b3IKKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKCk7CisgIC8qKgorICAgKiBQ
cm90ZWN0ZWQgbWVtYmVyIHRleHQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBjb25z
dCBVQ2hhciogICAgICAgICAgICB0ZXh0OworCit9OworCitVX05BTUVTUEFDRV9FTkQKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2xlYW4uaCBiL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvdWNsZWFuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDlhMWU1MzkwNThjZGU4NWVmZDJh
YTg0Y2I3MDdkMzc0MTc0MjVmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvdWNsZWFuLmgKQEAgLTAsMCArMSwyNTggQEAKKy8qCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyogQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKKyogICAgICAgICAgICAgICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVjbGVh
bi5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNl
ZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAwMUp1bHkwNQorKiAg
IGNyZWF0ZWQgYnk6IEdlb3JnZSBSaG90ZW4KKyovCisKKyNpZm5kZWYgX19VQ0xFQU5fSF9fCisj
ZGVmaW5lIF9fVUNMRUFOX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKy8qKgor
ICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogSW5pdGlhbGl6ZSBhbmQgY2xlYW4gdXAgSUNVCisg
Ki8KKyAKKy8qKgorICogIEluaXRpYWxpemUgSUNVLgorICoKKyAqICBVc2Ugb2YgdGhpcyBmdW5j
dGlvbiBpcyBvcHRpb25hbC4gIEl0IGlzIE9LIHRvIHNpbXBseSB1c2UgSUNVCisgKiAgc2Vydmlj
ZXMgYW5kIGZ1bmN0aW9ucyB3aXRob3V0IGZpcnN0IGhhdmluZyBpbml0aWFsaXplZAorICogIElD
VSBieSBjYWxsaW5nIHVfaW5pdCgpLgorICoKKyAqICB1X2luaXQoKSB3aWxsIGF0dGVtcHQgdG8g
bG9hZCBzb21lIHBhcnQgb2YgSUNVJ3MgZGF0YSwgYW5kIGlzCisgKiAgdXNlZnVsIGFzIGEgdGVz
dCBmb3IgY29uZmlndXJhdGlvbiBvciBpbnN0YWxsYXRpb24gcHJvYmxlbXMgdGhhdAorICogIGxl
YXZlIHRoZSBJQ1UgZGF0YSBpbmFjY2Vzc2libGUuICBBIHN1Y2Nlc3NmdWwgaW52b2NhdGlvbiBv
ZiB1X2luaXQoKQorICogIGRvZXMgbm90LCBob3dldmVyLCBndWFyYW50ZWUgdGhhdCBhbGwgSUNV
IGRhdGEgaXMgYWNjZXNzaWJsZS4KKyAqCisgKiAgTXVsdGlwbGUgY2FsbHMgdG8gdV9pbml0KCkg
Y2F1c2Ugbm8gaGFybSwgYXNpZGUgZnJvbSB0aGUgc21hbGwgYW1vdW50CisgKiAgb2YgdGltZSBy
ZXF1aXJlZC4KKyAqCisgKiAgSW4gb2xkIHZlcnNpb25zIG9mIElDVSwgdV9pbml0KCkgd2FzIHJl
cXVpcmVkIGluIG11bHRpLXRocmVhZGVkIGFwcGxpY2F0aW9ucworICogIHRvIGVuc3VyZSB0aGUg
dGhyZWFkIHNhZmV0eSBvZiBJQ1UuICB1X2luaXQoKSBpcyBubyBsb25nZXIgbmVlZGVkIGZvciB0
aGlzIHB1cnBvc2UuCisgKgorICogQHBhcmFtIHN0YXR1cyBBbiBJQ1UgVUVycm9yQ29kZSBwYXJh
bWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICogICAgQW4gRXJyb3Ig
d2lsbCBiZSByZXR1cm5lZCBpZiBzb21lIHJlcXVpcmVkIHBhcnQgb2YgSUNVIGRhdGEgY2FuIG5v
dAorICogICAgYmUgbG9hZGVkIG9yIGluaXRpYWxpemVkLgorICogICAgVGhlIGZ1bmN0aW9uIHJl
dHVybnMgaW1tZWRpYXRlbHkgaWYgdGhlIGlucHV0IGVycm9yIGNvZGUgaW5kaWNhdGVzIGEKKyAq
ICAgIGZhaWx1cmUsIGFzIHVzdWFsLgorICoKKyAqIEBzdGFibGUgSUNVIDIuNgorICovICAKK1Vf
U1RBQkxFIHZvaWQgVV9FWFBPUlQyIAordV9pbml0KFVFcnJvckNvZGUgKnN0YXR1cyk7CisKKyNp
Zm5kZWYgVV9ISURFX1NZU1RFTV9BUEkKKy8qKgorICogQ2xlYW4gdXAgdGhlIHN5c3RlbSByZXNv
dXJjZXMsIHN1Y2ggYXMgYWxsb2NhdGVkIG1lbW9yeSBvciBvcGVuIGZpbGVzLAorICogdXNlZCBp
biBhbGwgSUNVIGxpYnJhcmllcy4gVGhpcyB3aWxsIGZyZWUvZGVsZXRlIGFsbCBtZW1vcnkgb3du
ZWQgYnkgdGhlCisgKiBJQ1UgbGlicmFyaWVzLCBhbmQgcmV0dXJuIHRoZW0gdG8gdGhlaXIgb3Jp
Z2luYWwgbG9hZCBzdGF0ZS4gQWxsIG9wZW4gSUNVCisgKiBpdGVtcyAoY29sbGF0b3JzLCByZXNv
dXJjZSBidW5kbGVzLCBjb252ZXJ0ZXJzLCBldGMuKSBtdXN0IGJlIGNsb3NlZCBiZWZvcmUKKyAq
IGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgb3RoZXJ3aXNlIElDVSBtYXkgbm90IGZyZWUgaXRzIGFs
bG9jYXRlZCBtZW1vcnkKKyAqIChlLmcuIGNsb3NlIHlvdXIgY29udmVydGVycyBhbmQgcmVzb3Vy
Y2UgYnVuZGxlcyBiZWZvcmUgY2FsbGluZyB0aGlzCisgKiBmdW5jdGlvbikuIEdlbmVyYWxseSwg
dGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIG9uY2UganVzdCBiZWZvcmUKKyAqIGFuIGFw
cGxpY2F0aW9uIGV4aXRzLiBGb3IgYXBwbGljYXRpb25zIHRoYXQgZHluYW1pY2FsbHkgbG9hZCBh
bmQgdW5sb2FkCisgKiB0aGUgSUNVIGxpYnJhcmllcyAocmVsYXRpdmVseSB1bmNvbW1vbiksIHVf
Y2xlYW51cCgpIHNob3VsZCBiZSBjYWxsZWQKKyAqIGp1c3QgYmVmb3JlIHRoZSBsaWJyYXJ5IHVu
bG9hZC4KKyAqIDxwPgorICogdV9jbGVhbnVwKCkgYWxzbyBjbGVhcnMgYW55IElDVSBoZWFwIGZ1
bmN0aW9ucywgbXV0ZXggZnVuY3Rpb25zIG9yCisgKiB0cmFjZSBmdW5jdGlvbnMgdGhhdCBtYXkg
aGF2ZSBiZWVuIHNldCBmb3IgdGhlIHByb2Nlc3MuICAKKyAqIFRoaXMgaGFzIHRoZSBlZmZlY3Qg
b2YgcmVzdG9yaW5nIElDVSB0byBpdHMgaW5pdGlhbCBjb25kaXRpb24sIGJlZm9yZQorICogYW55
IG9mIHRoZXNlIG92ZXJyaWRlIGZ1bmN0aW9ucyB3ZXJlIGluc3RhbGxlZC4gIFJlZmVyIHRvCisg
KiB1X3NldE1lbW9yeUZ1bmN0aW9ucygpLCB1X3NldE11dGV4RnVuY3Rpb25zIGFuZCAKKyAqIHV0
cmFjZV9zZXRGdW5jdGlvbnMoKS4gIElmIElDVSBpcyB0byBiZSByZWluaXRpYWxpemVkIGFmdGVy
IGFmdGVyCisgKiBjYWxsaW5nIHVfY2xlYW51cCgpLCB0aGVzZSBydW50aW1lIG92ZXJyaWRlIGZ1
bmN0aW9ucyB3aWxsIG5lZWQgdG8KKyAqIGJlIHNldCB1cCBhZ2FpbiBpZiB0aGV5IGFyZSBzdGls
bCByZXF1aXJlZC4KKyAqIDxwPgorICogdV9jbGVhbnVwKCkgaXMgbm90IHRocmVhZCBzYWZlLiAg
QWxsIG90aGVyIHRocmVhZHMgc2hvdWxkIHN0b3AgdXNpbmcgSUNVCisgKiBiZWZvcmUgY2FsbGlu
ZyB0aGlzIGZ1bmN0aW9uLgorICogPHA+CisgKiBBbnkgb3BlbiBJQ1UgaXRlbXMgd2lsbCBiZSBs
ZWZ0IGluIGFuIHVuZGVmaW5lZCBzdGF0ZSBieSB1X2NsZWFudXAoKSwKKyAqIGFuZCBhbnkgc3Vi
c2VxdWVudCBhdHRlbXB0IHRvIHVzZSBzdWNoIGFuIGl0ZW0gd2lsbCBnaXZlIHVucHJlZGljdGFi
bGUKKyAqIHJlc3VsdHMuCisgKiA8cD4KKyAqIEFmdGVyIGNhbGxpbmcgdV9jbGVhbnVwKCksIGFu
IGFwcGxpY2F0aW9uIG1heSBjb250aW51ZSB0byB1c2UgSUNVIGJ5CisgKiBjYWxsaW5nIHVfaW5p
dCgpLiAgQW4gYXBwbGljYXRpb24gbXVzdCBpbnZva2UgdV9pbml0KCkgZmlyc3QgZnJvbSBvbmUg
c2luZ2xlCisgKiB0aHJlYWQgYmVmb3JlIGFsbG93aW5nIG90aGVyIHRocmVhZHMgY2FsbCB1X2lu
aXQoKS4gIEFsbCB0aHJlYWRzIGV4aXN0aW5nCisgKiBhdCB0aGUgdGltZSBvZiB0aGUgZmlyc3Qg
dGhyZWFkJ3MgY2FsbCB0byB1X2luaXQoKSBtdXN0IGFsc28gY2FsbAorICogdV9pbml0KCkgdGhl
bXNlbHZlcyBiZWZvcmUgY29udGludWluZyB3aXRoIG90aGVyIElDVSBvcGVyYXRpb25zLiAgCisg
KiA8cD4KKyAqIFRoZSB1c2Ugb2YgdV9jbGVhbnVwKCkganVzdCBiZWZvcmUgYW4gYXBwbGljYXRp
b24gdGVybWluYXRlcyBpcyBvcHRpb25hbCwKKyAqIGJ1dCBpdCBzaG91bGQgYmUgY2FsbGVkIG9u
bHkgb25jZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4gVGhlIHByaW1hcnkKKyAqIGJlbmVmaXQg
aXMgdG8gZWxpbWluYXRlIHJlcG9ydHMgb2YgbWVtb3J5IG9yIHJlc291cmNlIGxlYWtzIG9yaWdp
bmF0aW5nCisgKiBpbiBJQ1UgY29kZSBmcm9tIHRoZSByZXN1bHRzIGdlbmVyYXRlZCBieSBoZWFw
IGFuYWx5c2lzIHRvb2xzLgorICogPHA+CisgKiA8c3Ryb25nPlVzZSB0aGlzIGZ1bmN0aW9uIHdp
dGggZ3JlYXQgY2FyZSE8L3N0cm9uZz4KKyAqIDwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqIEBzeXN0ZW0KKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIgCit1X2NsZWFudXAodm9p
ZCk7CisKKworLyoqCisgICogIFBvaW50ZXIgdHlwZSBmb3IgYSB1c2VyIHN1cHBsaWVkIG1lbW9y
eSBhbGxvY2F0aW9uIGZ1bmN0aW9uLgorICAqICBAcGFyYW0gY29udGV4dCB1c2VyIHN1cHBsaWVk
IHZhbHVlLCBvYnRhaW5lZCBmcm9tIGZyb20gdV9zZXRNZW1vcnlGdW5jdGlvbnMoKS4KKyAgKiAg
QHBhcmFtIHNpemUgICAgVGhlIG51bWJlciBvZiBieXRlcyB0byBiZSBhbGxvY2F0ZWQKKyAgKiAg
QHJldHVybiAgICAgICAgUG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIG1lbW9yeSwgb3Ig
TlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQuCisgICogIEBzdGFibGUgSUNVIDIuOAorICAq
ICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQgKlVfQ0FMTENPTlYgVU1lbUFsbG9jRm4oY29u
c3Qgdm9pZCAqY29udGV4dCwgc2l6ZV90IHNpemUpOworLyoqCisgICogIFBvaW50ZXIgdHlwZSBm
b3IgYSB1c2VyIHN1cHBsaWVkIG1lbW9yeSByZS1hbGxvY2F0aW9uIGZ1bmN0aW9uLgorICAqICBA
cGFyYW0gY29udGV4dCB1c2VyIHN1cHBsaWVkIHZhbHVlLCBvYnRhaW5lZCBmcm9tIGZyb20gdV9z
ZXRNZW1vcnlGdW5jdGlvbnMoKS4KKyAgKiAgQHBhcmFtIHNpemUgICAgVGhlIG51bWJlciBvZiBi
eXRlcyB0byBiZSBhbGxvY2F0ZWQKKyAgKiAgQHJldHVybiAgICAgICAgUG9pbnRlciB0byB0aGUg
bmV3bHkgYWxsb2NhdGVkIG1lbW9yeSwgb3IgTlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQu
CisgICogIEBzdGFibGUgSUNVIDIuOAorICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQg
KlVfQ0FMTENPTlYgVU1lbVJlYWxsb2NGbihjb25zdCB2b2lkICpjb250ZXh0LCB2b2lkICptZW0s
IHNpemVfdCBzaXplKTsKKy8qKgorICAqICBQb2ludGVyIHR5cGUgZm9yIGEgdXNlciBzdXBwbGll
ZCBtZW1vcnkgZnJlZSAgZnVuY3Rpb24uICBCZWhhdmlvciBzaG91bGQgYmUKKyAgKiAgc2ltaWxh
ciB0aGUgc3RhbmRhcmQgQyBsaWJyYXJ5IGZyZWUoKS4KKyAgKiAgQHBhcmFtIGNvbnRleHQgdXNl
ciBzdXBwbGllZCB2YWx1ZSwgb2J0YWluZWQgZnJvbSBmcm9tIHVfc2V0TWVtb3J5RnVuY3Rpb25z
KCkuCisgICogIEBwYXJhbSBtZW0gICAgIFBvaW50ZXIgdG8gdGhlIG1lbW9yeSBibG9jayB0byBi
ZSByZXNpemVkCisgICogIEBwYXJhbSBzaXplICAgIFRoZSBuZXcgc2l6ZSBmb3IgdGhlIGJsb2Nr
CisgICogIEByZXR1cm4gICAgICAgIFBvaW50ZXIgdG8gdGhlIHJlc2l6ZWQgbWVtb3J5IGJsb2Nr
LCBvciBOVUxMIGlmIHRoZSByZXNpemluZyBmYWlsZWQuCisgICogIEBzdGFibGUgSUNVIDIuOAor
ICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQgIFVfQ0FMTENPTlYgVU1lbUZyZWVGbiAo
Y29uc3Qgdm9pZCAqY29udGV4dCwgdm9pZCAqbWVtKTsKKworLyoqCisgKiAgU2V0IHRoZSBmdW5j
dGlvbnMgdGhhdCBJQ1Ugd2lsbCB1c2UgZm9yIG1lbW9yeSBhbGxvY2F0aW9uLgorICogIFVzZSBv
ZiB0aGlzIGZ1bmN0aW9uIGlzIG9wdGlvbmFsOyBieSBkZWZhdWx0ICh3aXRob3V0IHRoaXMgZnVu
Y3Rpb24pLCBJQ1Ugd2lsbAorICogIHVzZSB0aGUgc3RhbmRhcmQgQyBsaWJyYXJ5IG1hbGxvYygp
IGFuZCBmcmVlKCkgZnVuY3Rpb25zLgorICogIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgdXNl
ZCB3aGVuIElDVSBpcyBpbiBhbiBpbml0aWFsLCB1bnVzZWQgc3RhdGUsIGJlZm9yZQorICogIHVf
aW5pdCgpIGhhcyBiZWVuIGNhbGxlZC4KKyAqICBAcGFyYW0gY29udGV4dCBUaGlzIHBvaW50ZXIg
dmFsdWUgd2lsbCBiZSBzYXZlZCwgYW5kIHRoZW4gKGxhdGVyKSBwYXNzZWQgYXMKKyAqICAgICAg
ICAgICAgICAgICBhIHBhcmFtZXRlciB0byB0aGUgbWVtb3J5IGZ1bmN0aW9ucyBlYWNoIHRpbWUg
dGhleQorICogICAgICAgICAgICAgICAgIGFyZSBjYWxsZWQuCisgKiAgQHBhcmFtIGEgICAgICAg
UG9pbnRlciB0byBhIHVzZXItc3VwcGxpZWQgbWFsbG9jIGZ1bmN0aW9uLgorICogIEBwYXJhbSBy
ICAgICAgIFBvaW50ZXIgdG8gYSB1c2VyLXN1cHBsaWVkIHJlYWxsb2MgZnVuY3Rpb24uCisgKiAg
QHBhcmFtIGYgICAgICAgUG9pbnRlciB0byBhIHVzZXItc3VwcGxpZWQgZnJlZSBmdW5jdGlvbi4K
KyAqICBAcGFyYW0gc3RhdHVzICBSZWNlaXZlcyBlcnJvciB2YWx1ZXMuCisgKiAgQHN0YWJsZSBJ
Q1UgMi44CisgKiAgQHN5c3RlbQorICovICAKK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyIAordV9z
ZXRNZW1vcnlGdW5jdGlvbnMoY29uc3Qgdm9pZCAqY29udGV4dCwgVU1lbUFsbG9jRm4gKmEsIFVN
ZW1SZWFsbG9jRm4gKnIsIFVNZW1GcmVlRm4gKmYsIAorICAgICAgICAgICAgICAgICAgICBVRXJy
b3JDb2RlICpzdGF0dXMpOworCisKKyNpZm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisvKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisgKgorICogRGVwcmVjYXRlZCBGdW5jdGlvbnMKKyAqCisg
KiAgICBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBmb3IgdXNlciBzdXBwbGllZCBtdXRleGVzIGFy
ZSBubyBsb25nZXIgc3VwcG9ydGVkLgorICogICAgQW55IGF0dGVtcHQgdG8gdXNlIHRoZW0gd2ls
bCByZXR1cm4gYSBVX1VOU1VQUE9SVEVEX0VSUk9SLgorICoKKyAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqLworCisvKioKKyAgKiBBbiBvcGFxdWUgcG9pbnRlciB0eXBlIHRoYXQgcmVwcmVzZW50
cyBhbiBJQ1UgbXV0ZXguCisgICogRm9yIHVzZXItaW1wbGVtZW50ZWQgbXV0ZXhlcywgdGhlIHZh
bHVlIHdpbGwgdHlwaWNhbGx5IHBvaW50IHRvIGEKKyAgKiAgc3RydWN0IG9yIG9iamVjdCB0aGF0
IGltcGxlbWVudHMgdGhlIG11dGV4LgorICAqIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyB0eXBl
IGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICogQHN5c3RlbQorICAqLwordHlwZWRlZiB2b2lk
ICpVTVRYOworCisvKioKKyAgKiAgRnVuY3Rpb24gUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3Vw
cGxpZWQgbXV0ZXggaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uCisgICogIFRoZSB1c2VyLXN1cHBs
aWVkIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGJ5IElDVSB3aGVuZXZlciBJQ1UgbmVlZHMgdG8g
Y3JlYXRlIGEKKyAgKiAgbmV3IG11dGV4LiAgVGhlIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uIHNo
b3VsZCBjcmVhdGUgYSBtdXRleCwgYW5kIHN0b3JlIGEgcG9pbnRlcgorICAqICB0byBzb21ldGhp
bmcgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBtdXRleCBpbnRvIHRoZSBVTVRYIHRoYXQg
aXMgc3VwcGxpZWQKKyAgKiAgYXMgYSBwYXJhbXRlci4KKyAgKiAgQHBhcmFtIGNvbnRleHQgdXNl
ciBzdXBwbGllZCB2YWx1ZSwgb2J0YWluZWQgZnJvbSBmcm9tIHVfc2V0TXV0ZXhGdW5jdGlvbnMo
KS4KKyAgKiAgQHBhcmFtIG11dGV4ICAgUmVjZWl2ZXMgYSBwb2ludGVyIHRoYXQgaWRlbnRpZmll
cyB0aGUgbmV3IG11dGV4LgorICAqICAgICAgICAgICAgICAgICBUaGUgbXV0ZXggaW5pdCBmdW5j
dGlvbiBtdXN0IHNldCB0aGUgVU1UWCB0byBhIG5vbi1udWxsIHZhbHVlLiAgIAorICAqICAgICAg
ICAgICAgICAgICBTdWJzZXF1ZW50IGNhbGxzIGJ5IElDVSB0byBsb2NrLCB1bmxvY2ssIG9yIGRl
c3Ryb3kgYSBtdXRleCB3aWxsIAorICAqICAgICAgICAgICAgICAgICBpZGVudGlmeSB0aGUgbXV0
ZXggYnkgdGhlIFVNVFggdmFsdWUuCisgICogIEBwYXJhbSBzdGF0dXMgIEVycm9yIHN0YXR1cy4g
IFJlcG9ydCBlcnJvcnMgYmFjayB0byBJQ1UgYnkgc2V0dGluZyB0aGlzIHZhcmlhYmxlCisgICog
ICAgICAgICAgICAgICAgIHdpdGggYW4gZXJyb3IgY29kZS4KKyAgKiAgQGRlcHJlY2F0ZWQgSUNV
IDUyLiBUaGlzIGZ1bmN0aW9uIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICogIEBzeXN0ZW0K
KyAgKi8KK3R5cGVkZWYgdm9pZCBVX0NBTExDT05WIFVNdHhJbml0Rm4gKGNvbnN0IHZvaWQgKmNv
bnRleHQsIFVNVFggICptdXRleCwgVUVycm9yQ29kZSogc3RhdHVzKTsKKworCisvKioKKyAgKiAg
RnVuY3Rpb24gUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3VwcGxpZWQgbXV0ZXggZnVuY3Rpb25z
LgorICAqICBPbmUgb2YgdGhlICB1c2VyLXN1cHBsaWVkIGZ1bmN0aW9ucyB3aXRoIHRoaXMgc2ln
bmF0dXJlIHdpbGwgYmUgY2FsbGVkIGJ5IElDVQorICAqICB3aGVuZXZlciBJQ1UgbmVlZHMgdG8g
bG9jaywgdW5sb2NrLCBvciBkZXN0cm95IGEgbXV0ZXguCisgICogIEBwYXJhbSBjb250ZXh0IHVz
ZXIgc3VwcGxpZWQgdmFsdWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3NldE11dGV4RnVuY3Rpb25z
KCkuCisgICogIEBwYXJhbSBtdXRleCAgIHNwZWNpZnkgdGhlIG11dGV4IG9uIHdoaWNoIHRvIG9w
ZXJhdGUuCisgICogIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyBmdW5jdGlvbiBpcyBubyBsb25n
ZXIgc3VwcG9ydGVkLgorICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQgVV9DQUxMQ09O
ViBVTXR4Rm4gICAoY29uc3Qgdm9pZCAqY29udGV4dCwgVU1UWCAgKm11dGV4KTsKKworCisvKioK
KyAgKiAgU2V0IHRoZSBmdW5jdGlvbnMgdGhhdCBJQ1Ugd2lsbCB1c2UgZm9yIG11dGV4IG9wZXJh
dGlvbnMKKyAgKiAgVXNlIG9mIHRoaXMgZnVuY3Rpb24gaXMgb3B0aW9uYWw7IGJ5IGRlZmF1bHQg
KHdpdGhvdXQgdGhpcyBmdW5jdGlvbiksIElDVSB3aWxsCisgICogIGRpcmVjdGx5IGFjY2VzcyBz
eXN0ZW0gZnVuY3Rpb25zIGZvciBtdXRleCBvcGVyYXRpb25zCisgICogIFRoaXMgZnVuY3Rpb24g
Y2FuIG9ubHkgYmUgdXNlZCB3aGVuIElDVSBpcyBpbiBhbiBpbml0aWFsLCB1bnVzZWQgc3RhdGUs
IGJlZm9yZQorICAqICB1X2luaXQoKSBoYXMgYmVlbiBjYWxsZWQuCisgICogIEBwYXJhbSBjb250
ZXh0IFRoaXMgcG9pbnRlciB2YWx1ZSB3aWxsIGJlIHNhdmVkLCBhbmQgdGhlbiAobGF0ZXIpIHBh
c3NlZCBhcworICAqICAgICAgICAgICAgICAgICBhIHBhcmFtZXRlciB0byB0aGUgdXNlci1zdXBw
bGllZCBtdXRleCBmdW5jdGlvbnMgZWFjaCB0aW1lIHRoZXkKKyAgKiAgICAgICAgICAgICAgICAg
YXJlIGNhbGxlZC4gCisgICogIEBwYXJhbSBpbml0ICAgIFBvaW50ZXIgdG8gYSBtdXRleCBpbml0
aWFsaXphdGlvbiBmdW5jdGlvbi4gIE11c3QgYmUgbm9uLW51bGwuCisgICogIEBwYXJhbSBkZXN0
cm95IFBvaW50ZXIgdG8gdGhlIG11dGV4IGRlc3Ryb3kgZnVuY3Rpb24uICBNdXN0IGJlIG5vbi1u
dWxsLgorICAqICBAcGFyYW0gbG9jayAgICBwb2ludGVyIHRvIHRoZSBtdXRleCBsb2NrIGZ1bmN0
aW9uLiAgTXVzdCBiZSBub24tbnVsbC4KKyAgKiAgQHBhcmFtIHVubG9jayAgUG9pbnRlciB0byB0
aGUgbXV0ZXggdW5sb2NrIGZ1bmN0aW9uLiAgTXVzdCBiZSBub24tbnVsbC4KKyAgKiAgQHBhcmFt
IHN0YXR1cyAgUmVjZWl2ZXMgZXJyb3IgdmFsdWVzLgorICAqICBAZGVwcmVjYXRlZCBJQ1UgNTIu
IFRoaXMgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KKyAgKiAgQHN5c3RlbQorICAq
LyAgCitVX0RFUFJFQ0FURUQgdm9pZCBVX0VYUE9SVDIgCit1X3NldE11dGV4RnVuY3Rpb25zKGNv
bnN0IHZvaWQgKmNvbnRleHQsIFVNdHhJbml0Rm4gKmluaXQsIFVNdHhGbiAqZGVzdHJveSwgVU10
eEZuICpsb2NrLCBVTXR4Rm4gKnVubG9jaywKKyAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29k
ZSAqc3RhdHVzKTsKKworCisvKioKKyAgKiAgUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3VwcGxp
ZWQgYXRvbWljIGluY3JlbWVudCBvciBkZWNyZW1lbnQgZnVuY3Rpb24uCisgICogIEBwYXJhbSBj
b250ZXh0IHVzZXIgc3VwcGxpZWQgdmFsdWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3NldEF0b21p
Y0luY0RlY0Z1bmN0aW9ucygpLgorICAqICBAcGFyYW0gcCAgIFBvaW50ZXIgdG8gYSAzMiBiaXQg
aW50IHRvIGJlIGluY3JlbWVudGVkIG9yIGRlY3JlbWVudGVkCisgICogIEByZXR1cm4gICAgVGhl
IHZhbHVlIG9mIHRoZSB2YXJpYWJsZSBhZnRlciB0aGUgaW5jIG9yIGRlYyBvcGVyYXRpb24uCisg
ICogIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyBmdW5jdGlvbiBpcyBubyBsb25nZXIgc3VwcG9y
dGVkLgorICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OViBVTXR4
QXRvbWljRm4oY29uc3Qgdm9pZCAqY29udGV4dCwgaW50MzJfdCAqcCk7CisKKy8qKgorICogIFNl
dCB0aGUgZnVuY3Rpb25zIHRoYXQgSUNVIHdpbGwgdXNlIGZvciBhdG9taWMgaW5jcmVtZW50IGFu
ZCBkZWNyZW1lbnQgb2YgaW50MzJfdCB2YWx1ZXMuCisgKiAgVXNlIG9mIHRoaXMgZnVuY3Rpb24g
aXMgb3B0aW9uYWw7IGJ5IGRlZmF1bHQgKHdpdGhvdXQgdGhpcyBmdW5jdGlvbiksIElDVSB3aWxs
CisgKiAgdXNlIGl0cyBvd24gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb2YgYXRvbWljIGluY3Jl
bWVudC9kZWNyZW1lbnQuCisgKiAgVGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSB1c2VkIHdoZW4g
SUNVIGlzIGluIGFuIGluaXRpYWwsIHVudXNlZCBzdGF0ZSwgYmVmb3JlCisgKiAgdV9pbml0KCkg
aGFzIGJlZW4gY2FsbGVkLgorICogIEBwYXJhbSBjb250ZXh0IFRoaXMgcG9pbnRlciB2YWx1ZSB3
aWxsIGJlIHNhdmVkLCBhbmQgdGhlbiAobGF0ZXIpIHBhc3NlZCBhcworICogICAgICAgICAgICAg
ICAgIGEgcGFyYW1ldGVyIHRvIHRoZSBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBmdW5jdGlvbnMg
ZWFjaCB0aW1lIHRoZXkKKyAqICAgICAgICAgICAgICAgICBhcmUgY2FsbGVkLiAgVGhpcyBmdW5j
dGlvbiBjYW4gb25seSBiZSBjYWxsZWQgCisgKiAgQHBhcmFtIGluYyAgICAgUG9pbnRlciB0byBh
IGZ1bmN0aW9uIHRvIGRvIGFuIGF0b21pYyBpbmNyZW1lbnQgb3BlcmF0aW9uLiAgTXVzdCBiZSBu
b24tbnVsbC4KKyAqICBAcGFyYW0gZGVjICAgICBQb2ludGVyIHRvIGEgZnVuY3Rpb24gdG8gZG8g
YW4gYXRvbWljIGRlY3JlbWVudCBvcGVyYXRpb24uICBNdXN0IGJlIG5vbi1udWxsLgorICogIEBw
YXJhbSBzdGF0dXMgIFJlY2VpdmVzIGVycm9yIHZhbHVlcy4KKyAqICBAZGVwcmVjYXRlZCBJQ1Ug
NTIuIFRoaXMgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4KKyAqICBAc3lzdGVtCisg
Ki8gIAorVV9ERVBSRUNBVEVEIHZvaWQgVV9FWFBPUlQyIAordV9zZXRBdG9taWNJbmNEZWNGdW5j
dGlvbnMoY29uc3Qgdm9pZCAqY29udGV4dCwgVU10eEF0b21pY0ZuICppbmMsIFVNdHhBdG9taWNG
biAqZGVjLAorICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOworCisjZW5k
aWYgIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLworI2VuZGlmICAvKiBVX0hJREVfU1lTVEVN
X0FQSSAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRh
dGEuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWU0NjYz
MGQ1Mzk4ZDgyNzM4ZDFkNjFmZmM0ZDJjOTE0ZThjNjhiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi9pY3UvdW5pY29kZS91ZGF0YS5oCkBAIC0wLDAgKzEsNDMwIEBACisvKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQsIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFt
ZTogIHVkYXRhLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDgg
KG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0
MjUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBfX1VE
QVRBX0hfXworI2RlZmluZSBfX1VEQVRBX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMu
aCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCitVX0NERUNMX0JFR0lOCisK
Ky8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogRGF0YSBsb2FkaW5nIGludGVyZmFjZQor
ICoKKyAqIDxoMj5JbmZvcm1hdGlvbiBhYm91dCBkYXRhIGxvYWRpbmcgaW50ZXJmYWNlPC9oMj4K
KyAqCisgKiBUaGlzIEFQSSBpcyB1c2VkIHRvIGZpbmQgYW5kIGVmZmljaWVudGx5IGxvYWQgZGF0
YSBmb3IgSUNVIGFuZCBhcHBsaWNhdGlvbnMKKyAqIHVzaW5nIElDVS4gSXQgcHJvdmlkZXMgYW4g
YWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgc3BlY2lmaWVzIGEgZGF0YSB0eXBlIGFuZAorICogbmFt
ZSB0byBmaW5kIGFuZCBsb2FkIHRoZSBkYXRhLiBOb3JtYWxseSB0aGlzIEFQSSBpcyB1c2VkIGJ5
IG90aGVyIElDVSBBUElzCisgKiB0byBsb2FkIHJlcXVpcmVkIGRhdGEgb3V0IG9mIHRoZSBJQ1Ug
ZGF0YSBsaWJyYXJ5LCBidXQgaXQgY2FuIGJlIHVzZWQgdG8KKyAqIGxvYWQgZGF0YSBvdXQgb2Yg
b3RoZXIgcGxhY2VzLgorICoKKyAqIFNlZSB0aGUgVXNlciBHdWlkZSBEYXRhIE1hbmFnZW1lbnQg
Y2hhcHRlci4KKyAqLworIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisvKioKKyAqIENo
YXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAor
ICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SICctJwor
CisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVl
IG5hbWVzIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJB
VE9SX1NUUklORyAiLSIKKworLyoqCisgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYXJ0
cyBvZiBlbnRyeSBuYW1lcworICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RS
RUVfRU5UUllfU0VQX0NIQVIgJy8nCisKKy8qKgorICogU3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUg
cGFydHMgb2YgZW50cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUg
VV9UUkVFX0VOVFJZX1NFUF9TVFJJTkcgIi8iCisKKy8qKgorICogQWxpYXMgZm9yIHN0YW5kYXJk
IElDVSBkYXRhIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX0lDVURBVEFf
QUxJQVMgIklDVURBVEEiCisKKyNlbmRpZiAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKy8q
KgorICogVURhdGFJbmZvIGNvbnRhaW5zIHRoZSBwcm9wZXJ0aWVzIGFib3V0IHRoZSByZXF1ZXN0
ZWQgZGF0YS4KKyAqIFRoaXMgaXMgbWV0YSBkYXRhLgorICoKKyAqIDxwPlRoaXMgc3RydWN0dXJl
IG1heSBncm93IGluIHRoZSBmdXR1cmUsIGluZGljYXRlZCBieSB0aGUKKyAqIDxjb2RlPnNpemU8
L2NvZGU+IGZpZWxkLjwvcD4KKyAqCisgKiA8cD5JQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgt
YWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogVGhlIFVEYXRhSW5mbyBzdHJ1
Y3QgYmVnaW5zIDQgYnl0ZXMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIHRoZSBkYXRhIGl0ZW0sCisgKiBz
byBpdCBpcyA0LWFsaWduZWQuCisgKgorICogPHA+VGhlIHBsYXRmb3JtIGRhdGEgcHJvcGVydHkg
ZmllbGRzIGhlbHAgZGV0ZXJtaW5lIGlmIGEgZGF0YQorICogZmlsZSBjYW4gYmUgZWZmaWNpZW50
bHkgdXNlZCBvbiBhIGdpdmVuIG1hY2hpbmUuCisgKiBUaGUgcGFydGljdWxhciBmaWVsZHMgYXJl
IG9mIGltcG9ydGFuY2Ugb25seSBpZiB0aGUgZGF0YQorICogaXMgYWZmZWN0ZWQgYnkgdGhlIHBy
b3BlcnRpZXMgLSBpZiB0aGVyZSBpcyBpbnRlZ2VyIGRhdGEKKyAqIHdpdGggd29yZCBzaXplcyA+
IDEgYnl0ZSwgY2hhciogdGV4dCwgb3IgVUNoYXIqIHRleHQuPC9wPgorICoKKyAqIDxwPlRoZSBp
bXBsZW1lbnRhdGlvbiBmb3IgdGhlIDxjb2RlPnVkYXRhX29wZW5bQ2hvaWNlXSgpPC9jb2RlPgor
ICogZnVuY3Rpb25zIG1heSByZWplY3QgZGF0YSBiYXNlZCBvbiB0aGUgdmFsdWUgaW4gPGNvZGU+
aXNCaWdFbmRpYW48L2NvZGU+LgorICogTm8gb3RoZXIgZmllbGQgaXMgdXNlZCBieSB0aGUgPGNv
ZGU+dWRhdGE8L2NvZGU+IEFQSSBpbXBsZW1lbnRhdGlvbi48L3A+CisgKgorICogPHA+VGhlIDxj
b2RlPmRhdGFGb3JtYXQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIGlkZW50aWZ5CisgKiB0aGUga2lu
ZCBvZiBkYXRhLCBlLmcuIGEgY29udmVydGVyIHRhYmxlLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNv
ZGU+Zm9ybWF0VmVyc2lvbjwvY29kZT4gZmllbGQgc2hvdWxkIGJlIHVzZWQgdG8KKyAqIG1ha2Ug
c3VyZSB0aGF0IHRoZSBmb3JtYXQgY2FuIGJlIGludGVycHJldGVkLgorICogSXQgbWF5IGJlIGEg
Z29vZCBpZGVhIHRvIGNoZWNrIG9ubHkgZm9yIHRoZSBvbmUgb3IgdHdvIGhpZ2hlc3QKKyAqIG9m
IHRoZSB2ZXJzaW9uIGVsZW1lbnRzIHRvIGFsbG93IHRoZSBkYXRhIG1lbW9yeSB0bworICogZ2V0
IG1vcmUgb3Igc29tZXdoYXQgcmVhcnJhbmdlZCBjb250ZW50cywgZm9yIGFzIGxvbmcKKyAqIGFz
IHRoZSB1c2luZyBjb2RlIGNhbiBzdGlsbCBpbnRlcnByZXQgdGhlIG9sZGVyIGNvbnRlbnRzLjwv
cD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+ZGF0YVZlcnNpb248L2NvZGU+IGZpZWxkIGlzIGludGVu
ZGVkIHRvIGJlIGEKKyAqIGNvbW1vbiBwbGFjZSB0byBzdG9yZSB0aGUgc291cmNlIHZlcnNpb24g
b2YgdGhlIGRhdGE7CisgKiBmb3IgZGF0YSBmcm9tIHRoZSBVbmljb2RlIGNoYXJhY3RlciBkYXRh
YmFzZSwgdGhpcyBjb3VsZAorICogcmVmbGVjdCB0aGUgVW5pY29kZSB2ZXJzaW9uLjwvcD4KKyAq
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIC8qKiBzaXpl
b2YoVURhdGFJbmZvKQorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50MTZfdCBz
aXplOworCisgICAgLyoqIHVudXNlZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIu
MCovCisgICAgdWludDE2X3QgcmVzZXJ2ZWRXb3JkOworCisgICAgLyogcGxhdGZvcm0gZGF0YSBw
cm9wZXJ0aWVzICovCisgICAgLyoqIDAgZm9yIGxpdHRsZS1lbmRpYW4gbWFjaGluZSwgMSBmb3Ig
YmlnLWVuZGlhbgorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50OF90IGlzQmln
RW5kaWFuOworCisgICAgLyoqIHNlZSBVX0NIQVJTRVRfRkFNSUxZIHZhbHVlcyBpbiB1dHlwZXMu
aCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGNoYXJzZXRGYW1pbHk7
CisKKyAgICAvKiogc2l6ZW9mKFVDaGFyKSwgb25lIG9mIHsgMSwgMiwgNCB9IAorICAgICAqICBA
c3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3Qgc2l6ZW9mVUNoYXI7CisKKyAgICAvKiogdW51
c2VkLCBzZXQgdG8gMCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHJl
c2VydmVkQnl0ZTsKKworICAgIC8qKiBkYXRhIGZvcm1hdCBpZGVudGlmaWVyIAorICAgICAqICBA
c3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YUZvcm1hdFs0XTsKKworICAgIC8qKiB2
ZXJzaW9uczogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAq
ICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZm9ybWF0VmVyc2lvbls0XTsKKworICAg
IC8qKiB2ZXJzaW9uczogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAor
ICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YVZlcnNpb25bNF07Cit9
IFVEYXRhSW5mbzsKKworLyogQVBJIGZvciByZWFkaW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKioKKyAqIEZvcndhcmQg
ZGVjbGFyYXRpb24gb2YgdGhlIGRhdGEgbWVtb3J5IHR5cGUuCisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqLwordHlwZWRlZiBzdHJ1Y3QgVURhdGFNZW1vcnkgVURhdGFNZW1vcnk7CisKKy8qKgorICog
Q2FsbGJhY2sgZnVuY3Rpb24gZm9yIHVkYXRhX29wZW5DaG9pY2UoKS4KKyAqIEBwYXJhbSBjb250
ZXh0IHBhcmFtZXRlciBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+
LgorICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIGRhdGEgYXMgcGFzc2VkIGludG8gPGNv
ZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPi4KKyAqICAgICAgICAgICAgIEl0IG1heSBiZSA8
Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGFz
IHBhc3NlZCBpbnRvIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiBAcGFyYW0g
cEluZm8gQSBwb2ludGVyIHRvIHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+IHN0cnVjdHVyZQor
ICogICAgICAgICAgICAgIG9mIGRhdGEgdGhhdCBoYXMgYmVlbiBsb2FkZWQgYW5kIHdpbGwgYmUg
cmV0dXJuZWQKKyAqICAgICAgICAgICAgICBieSA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2Nv
ZGU+IGlmIHRoaXMgZnVuY3Rpb24KKyAqICAgICAgICAgICAgICByZXR1cm5zIDxjb2RlPlRSVUU8
L2NvZGU+LgorICogQHJldHVybiBUUlVFIGlmIHRoZSBjdXJyZW50IGRhdGEgbWVtb3J5IGlzIGFj
Y2VwdGFibGUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIFVCb29sIFVfQ0FMTENP
TlYKK1VEYXRhTWVtb3J5SXNBY2NlcHRhYmxlKHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgVURhdGFJbmZvICpwSW5mbyk7CisKKworLyoqCisgKiBDb252
ZW5pZW5jZSBmdW5jdGlvbi4KKyAqIFRoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgYXMgPGNv
ZGU+dWRhdGFfb3BlbkNob2ljZTwvY29kZT4KKyAqIGV4Y2VwdCB0aGF0IGFueSBkYXRhIHRoYXQg
bWF0Y2hlcyB0aGUgdHlwZSBhbmQgbmFtZQorICogaXMgYXNzdW1lZCB0byBiZSBhY2NlcHRhYmxl
LgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFz
ZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUg
ZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRh
dGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBk
YXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBi
dW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVy
c2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUg
PGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0
IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIEFu
IElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+TlVMTDwvY29k
ZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAoaGFuZGxlKSB0byBhIGRhdGEgbWVtb3J5IG9iamVj
dCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAqICAgICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzLiBD
YWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPgorICogICAgICAgICB0byBnZXQgYSBw
b2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4KKyAqCisgKiBAc2VlIHVkYXRhX29wZW5DaG9pY2UK
KyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JU
MgordWRhdGFfb3Blbihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBj
aGFyICpuYW1lLAorICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisg
KiBEYXRhIGxvYWRpbmcgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZmlu
ZCBhbmQgbG9hZCBlZmZpY2llbnRseSBkYXRhIGZvcgorICogSUNVIGFuZCBhcHBsaWNhdGlvbnMg
dXNpbmcgSUNVLgorICogSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgYWxs
b3dzIHRvIHNwZWNpZnkgYSBkYXRhCisgKiB0eXBlIGFuZCBuYW1lIHRvIGZpbmQgYW5kIGxvYWQg
dGhlIGRhdGEuCisgKgorICogPHA+VGhlIGltcGxlbWVudGF0aW9uIGRlcGVuZHMgb24gcGxhdGZv
cm0gcHJvcGVydGllcyBhbmQgdXNlciBwcmVmZXJlbmNlcworICogYW5kIG1heSBpbnZvbHZlIGxv
YWRpbmcgc2hhcmVkIGxpYnJhcmllcyAoRExMcyksIG1hcHBpbmcKKyAqIGZpbGVzIGludG8gbWVt
b3J5LCBvciBmb3BlbigpL2ZyZWFkKCkgZmlsZXMuCisgKiBJdCBtYXkgYWxzbyBpbnZvbHZlIHVz
aW5nIHN0YXRpYyBtZW1vcnkgb3IgZGF0YWJhc2UgcXVlcmllcyBldGMuCisgKiBTZXZlcmFsIG9y
IGFsbCBkYXRhIGl0ZW1zIG1heSBiZSBjb21iaW5lZCBpbnRvIG9uZSBlbnRpdHkKKyAqIChETEws
IG1lbW9yeS1tYXBwYWJsZSBmaWxlKS48L3A+CisgKgorICogPHA+VGhlIGRhdGEgaXMgYWx3YXlz
IHByZWNlZGVkIGJ5IGEgaGVhZGVyIHRoYXQgaW5jbHVkZXMKKyAqIGEgPGNvZGU+VURhdGFJbmZv
PC9jb2RlPiBzdHJ1Y3R1cmUuCisgKiBUaGUgY2FsbGVyJ3MgPGNvZGU+aXNBY2NlcHRhYmxlKCk8
L2NvZGU+IGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBtYWtlCisgKiBzdXJlIHRoYXQgdGhlIGRhdGEg
aXMgdXNlZnVsLiBJdCBtYXkgYmUgY2FsbGVkIHNldmVyYWwgdGltZXMgaWYgaXQKKyAqIHJlamVj
dHMgdGhlIGRhdGEgYW5kIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgbG9jYXRpb24gd2l0aCBkYXRh
CisgKiBtYXRjaGluZyB0aGUgdHlwZSBhbmQgbmFtZS48L3A+CisgKgorICogPHA+SWYgPGNvZGU+
cGF0aD09TlVMTDwvY29kZT4sIHRoZW4gSUNVIGRhdGEgaXMgbG9hZGVkLgorICogT3RoZXJ3aXNl
LCBpdCBpcyBzZXBhcmF0ZWQgaW50byBhIGJhc2VuYW1lIGFuZCBhIGJhc2VuYW1lLWxlc3MgZGly
ZWN0b3J5IHN0cmluZy4KKyAqIFRoZSBiYXNlbmFtZSBpcyB1c2VkIGFzIHRoZSBkYXRhIHBhY2th
Z2UgbmFtZSwgYW5kIHRoZSBkaXJlY3RvcnkgaXMKKyAqIGxvZ2ljYWxseSBwcmVwZW5kZWQgdG8g
dGhlIElDVSBkYXRhIGRpcmVjdG9yeSBzdHJpbmcuPC9wPgorICoKKyAqIDxwPkZvciBkZXRhaWxz
IGFib3V0IElDVSBkYXRhIGxvYWRpbmcgc2VlIHRoZSBVc2VyIEd1aWRlCisgKiBEYXRhIE1hbmFn
ZW1lbnQgY2hhcHRlci4gKGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL2ljdWRhdGEu
aHRtbCk8L3A+CisgKgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGgg
YW5kL29yIGEgYmFzZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUg
ZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2Rl
PiBmb3IgSUNVIGRhdGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0
aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxl
LCByZXNvdXJjZSBidW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAg
ICAgICAgY29udmVyc2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAg
VGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBB
IHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBp
c0FjY2VwdGFibGUgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRoYXQgbG9hZGVk
IGRhdGEKKyAqICAgICAgICAgICAgICAgICAgICAgaXMgdXNlZnVsIGZvciB0aGUgY2xpZW50IGNv
ZGUuIElmIGl0IHJldHVybnMgRkFMU0UKKyAqICAgICAgICAgICAgICAgICAgICAgZm9yIGFsbCBk
YXRhIGl0ZW1zLCB0aGVuIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4KKyAqICAgICAg
ICAgICAgICAgICAgICAgd2lsbCByZXR1cm4gd2l0aCBhbiBlcnJvci4KKyAqIEBwYXJhbSBjb250
ZXh0IEFyYml0cmFyeSBwYXJhbWV0ZXIgdG8gYmUgcGFzc2VkIGludG8gaXNBY2NlcHRhYmxlLgor
ICogQHBhcmFtIHBFcnJvckNvZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJdCBtdXN0
IG5vdCBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEByZXR1cm4gQSBwb2ludGVyIChoYW5kbGUp
IHRvIGEgZGF0YSBtZW1vcnkgb2JqZWN0LCBvciA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAg
ICBpZiBhbiBlcnJvciBvY2N1cnMuIENhbGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+
CisgKiAgICAgICAgIHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhLgorICogQHN0
YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIFVEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1ZGF0
YV9vcGVuQ2hvaWNlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNo
YXIgKm5hbWUsCisgICAgICAgICAgICAgICAgIFVEYXRhTWVtb3J5SXNBY2NlcHRhYmxlICppc0Fj
Y2VwdGFibGUsIHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBF
cnJvckNvZGUpOworCisvKioKKyAqIENsb3NlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoaXMgZnVu
Y3Rpb24gbXVzdCBiZSBjYWxsZWQgdG8gYWxsb3cgdGhlIHN5c3RlbSB0bworICogcmVsZWFzZSBy
ZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGF0YSBtZW1vcnkuCisgKiBAcGFyYW0gcERh
dGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBtZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2Nsb3NlKFVEYXRhTWVtb3J5ICpw
RGF0YSk7CisKKyNpZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgor
CisvKioKKyAqIFxjbGFzcyBMb2NhbFVEYXRhTWVtb3J5UG9pbnRlcgorICogIlNtYXJ0IHBvaW50
ZXIiIGNsYXNzLCBjbG9zZXMgYSBVRGF0YU1lbW9yeSB2aWEgdWRhdGFfY2xvc2UoKS4KKyAqIEZv
ciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKgor
ICogQHNlZSBMb2NhbFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0YWJs
ZSBJQ1UgNC40CisgKi8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVEYXRhTWVt
b3J5UG9pbnRlciwgVURhdGFNZW1vcnksIHVkYXRhX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5E
CisKKyNlbmRpZgorCisvKioKKyAqIEdldCB0aGUgcG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEg
aW5zaWRlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoZSBkYXRhIGlzIHJlYWQtb25seS4KKyAqCisg
KiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1h
bGlnbmVkLgorICoKKyAqIEBwYXJhbSBwRGF0YSBUaGUgcG9pbnRlciB0byBkYXRhIG1lbW9yeSBv
YmplY3QKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBjb25zdCB2b2lkICogVV9F
WFBPUlQyCit1ZGF0YV9nZXRNZW1vcnkoVURhdGFNZW1vcnkgKnBEYXRhKTsKKworLyoqCisgKiBH
ZXQgdGhlIGluZm9ybWF0aW9uIGZyb20gdGhlIGRhdGEgbWVtb3J5IGhlYWRlci4KKyAqIFRoaXMg
YWxsb3dzIHRvIGdldCBhY2Nlc3MgdG8gdGhlIGhlYWRlciBjb250YWluaW5nCisgKiBwbGF0Zm9y
bSBkYXRhIHByb3BlcnRpZXMgZXRjLiB3aGljaCBpcyBub3QgcGFydCBvZgorICogdGhlIGRhdGEg
aXRzZWxmIGFuZCBjYW4gdGhlcmVmb3JlIG5vdCBiZSBhY2Nlc3NlZAorICogdmlhIHRoZSBwb2lu
dGVyIHRoYXQgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+IHJldHVybnMuCisgKgorICog
QHBhcmFtIHBEYXRhIHBvaW50ZXIgdG8gdGhlIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHBhcmFt
IHBJbmZvIHBvaW50ZXIgdG8gYSBVRGF0YUluZm8gb2JqZWN0OworICogICAgICAgICAgICAgIGl0
cyA8Y29kZT5zaXplPC9jb2RlPiBmaWVsZCBtdXN0IGJlIHNldCBjb3JyZWN0bHksCisgKiAgICAg
ICAgICAgICAgdHlwaWNhbGx5IHRvIDxjb2RlPnNpemVvZihVRGF0YUluZm8pPC9jb2RlPi4KKyAq
CisgKiA8Y29kZT4qcEluZm88L2NvZGU+IHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIFVEYXRhSW5m
byBzdHJ1Y3R1cmUKKyAqIGluIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QuIElmIHRoaXMgc3RydWN0
dXJlIGlzIHNtYWxsZXIgdGhhbgorICogPGNvZGU+cEluZm8tPnNpemU8L2NvZGU+LCB0aGVuIHRo
ZSA8Y29kZT5zaXplPC9jb2RlPiB3aWxsIGJlCisgKiBhZGp1c3RlZCBhbmQgb25seSBwYXJ0IG9m
IHRoZSBzdHJ1Y3R1cmUgd2lsbCBiZSBmaWxsZWQuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwor
VV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2dldEluZm8oVURhdGFNZW1vcnkgKnBEYXRh
LCBVRGF0YUluZm8gKnBJbmZvKTsKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRo
ZSBub3JtYWwgSUNVIGRhdGEgbG9hZGluZyBwcm9jZXNzIGFuZAorICogYWxsb3dzIHlvdSB0byBm
b3JjZSBJQ1UncyBzeXN0ZW0gZGF0YSB0byBjb21lIG91dCBvZiBhIHVzZXItc3BlY2lmaWVkCisg
KiBhcmVhIGluIG1lbW9yeS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxp
Z25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUu
aWN1LXByb2plY3Qub3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBp
cyB0aGF0IG9mIHRoZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgYXMgaXMKKyAqIGdlbmVyYXRlZCBi
eSB0aGUgcGtnZGF0YSB0b29sIHdpdGggbW9kZT1jb21tb24gb3IgbW9kZT1kbGwuCisgKiBZb3Ug
Y2FuIHJlYWQgaW4gYSB3aG9sZSBjb21tb24gbW9kZSBmaWxlIGFuZCBwYXNzIHRoZSBhZGRyZXNz
IHRvIHRoZSBzdGFydCBvZiB0aGUKKyAqIGRhdGEsIG9yICh3aXRoIHRoZSBhcHByb3ByaWF0ZSBs
aW5rIG9wdGlvbnMpIHBhc3MgaW4gdGhlIHBvaW50ZXIgdG8KKyAqIHRoZSBkYXRhIHRoYXQgaGFz
IGJlZW4gbG9hZGVkIGZyb20gYSBkbGwgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0sCisgKiBhcyBz
aG93biBpbiB0aGlzIGNvZGU6CisgKgorICogICAgICAgZXh0ZXJuIGNvbnN0IGNoYXIgVV9JTVBP
UlQgVV9JQ1VEQVRBX0VOVFJZX1BPSU5UIFtdOworICogICAgICAgIC8vIFVfSUNVREFUQV9FTlRS
WV9QT0lOVCBpcyBzYW1lIGFzIGVudHJ5IHBvaW50IHNwZWNpZmllZCB0byBwa2dkYXRhIHRvb2wK
KyAqICAgICAgIFVFcnJvckNvZGUgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAqCisgKiAgICAg
ICB1ZGF0YV9zZXRDb21tb25EYXRhKCZVX0lDVURBVEFfRU5UUllfUE9JTlQsICZzdGF0dXMpOwor
ICoKKyAqIEl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBkZWNsYXJhdGlvbiBiZSBhcyBhYm92ZS4g
VGhlIGVudHJ5IHBvaW50CisgKiBtdXN0IG5vdCBiZSBkZWNsYXJlZCBhcyBhbiBleHRlcm4gdm9p
ZCouCisgKgorICogU3RhcnRpbmcgd2l0aCBJQ1UgNC40LCBpdCBpcyBwb3NzaWJsZSB0byBzZXQg
c2V2ZXJhbCBkYXRhIHBhY2thZ2VzLAorICogb25lIHBlciBjYWxsIHRvIHRoaXMgZnVuY3Rpb24u
CisgKiB1ZGF0YV9vcGVuKCkgd2lsbCBsb29rIGZvciBkYXRhIGluIHRoZSBtdWx0aXBsZSBkYXRh
IHBhY2thZ2VzIGluIHRoZSBvcmRlcgorICogaW4gd2hpY2ggdGhleSB3ZXJlIHNldC4KKyAqIFRo
ZSBwb3NpdGlvbiBvZiB0aGUgbGlua2VkLWluIG9yIGRlZmF1bHQtbmFtZSBJQ1UgLmRhdGEgcGFj
a2FnZSBpbiB0aGUKKyAqIHNlYXJjaCBsaXN0IGRlcGVuZHMgb24gd2hlbiB0aGUgZmlyc3QgZGF0
YSBpdGVtIGlzIGxvYWRlZCB0aGF0IGlzIG5vdCBjb250YWluZWQKKyAqIGluIHRoZSBhbHJlYWR5
IGV4cGxpY2l0bHkgc2V0IHBhY2thZ2VzLgorICogSWYgZGF0YSB3YXMgbG9hZGVkIGltcGxpY2l0
bHkgYmVmb3JlIHRoZSBmaXJzdCBjYWxsIHRvIHRoaXMgZnVuY3Rpb24KKyAqIChmb3IgZXhhbXBs
ZSwgdmlhIG9wZW5pbmcgYSBjb252ZXJ0ZXIsIGNvbnN0cnVjdGluZyBhIFVuaWNvZGVTdHJpbmcK
KyAqIGZyb20gZGVmYXVsdC1jb2RlcGFnZSBkYXRhLCB1c2luZyBmb3JtYXR0aW5nIG9yIGNvbGxh
dGlvbiBBUElzLCBldGMuKSwKKyAqIHRoZW4gdGhlIGRlZmF1bHQgZGF0YSB3aWxsIGJlIGZpcnN0
IGluIHRoZSBsaXN0LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVjdCBvbiBhcHBs
aWNhdGlvbiAobm9uIElDVSkgZGF0YS4gIFNlZSB1ZGF0YV9zZXRBcHBEYXRhKCkKKyAqIGZvciBz
aW1pbGFyIGZ1bmN0aW9uYWxpdHkgZm9yIGFwcGxpY2F0aW9uIGRhdGEuCisgKgorICogQHBhcmFt
IGRhdGEgcG9pbnRlciB0byBJQ1UgY29tbW9uIGRhdGEKKyAqIEBwYXJhbSBlcnIgb3V0Z29pbmcg
ZXJyb3Igc3RhdHVzIDxjb2RlPlVfVVNJTkdfREVGQVVMVF9XQVJOSU5HLCBVX1VOU1VQUE9SVEVE
X0VSUk9SPC9jb2RlPgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9F
WFBPUlQyCit1ZGF0YV9zZXRDb21tb25EYXRhKGNvbnN0IHZvaWQgKmRhdGEsIFVFcnJvckNvZGUg
KmVycik7CisKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNV
IGRhdGEgbG9hZGluZyBwcm9jZXNzIGZvciBhcHBsaWNhdGlvbi1zcGVjaWZpYworICogZGF0YSBh
bmQgYWxsb3dzIHlvdSB0byBmb3JjZSB0aGUgaXQgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNp
ZmllZAorICogcG9pbnRlci4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxp
Z25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUu
aWN1LXByb2plY3Qub3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBp
cyB0aGF0IG9mIHRoZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgbGlrZSAnaWN1ZHQyNmwuZGF0Jwor
ICogb3IgdGhlIGNvcnJlc3BvbmRpbmcgc2hhcmVkIGxpYnJhcnkgKERMTCkgZmlsZS4KKyAqIFRo
ZSBhcHBsaWNhdGlvbiBtdXN0IHJlYWQgaW4gb3Igb3RoZXJ3aXNlIGNvbnN0cnVjdCBhbiBpbWFn
ZSBvZiB0aGUgZGF0YSBhbmQgdGhlbgorICogcGFzcyB0aGUgYWRkcmVzcyBvZiBpdCB0byB0aGlz
IGZ1bmN0aW9uLgorICoKKyAqCisgKiBXYXJuaW5nOiAgc2V0QXBwRGF0YSB3aWxsIHNldCBhIFVf
VVNJTkdfREVGQVVMVF9XQVJOSU5HIGNvZGUgaWYKKyAqICAgICAgICAgICBkYXRhIHdpdGggdGhl
IHNwZWNpZmVkIHBhdGggdGhhdCBoYXMgYWxyZWFkeSBiZWVuIG9wZW5lZCwgb3IKKyAqICAgICAg
ICAgICBpZiBzZXRBcHBEYXRhIHdpdGggdGhlIHNhbWUgcGF0aCBoYXMgYWxyZWFkeSBiZWVuIGNh
bGxlZC4KKyAqICAgICAgICAgICBBbnkgc3VjaCBjYWxscyB0byBzZXRBcHBEYXRhIHdpbGwgaGF2
ZSBubyBlZmZlY3QuCisgKgorICoKKyAqIEBwYXJhbSBwYWNrYWdlTmFtZSB0aGUgcGFja2FnZSBu
YW1lIGJ5IHdoaWNoIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZmVyCisgKiAgICAgICAgICAgICB0
byAob3BlbikgdGhpcyBkYXRhCisgKiBAcGFyYW0gZGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhCisg
KiBAcGFyYW0gZXJyIG91dGdvaW5nIGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRf
V0FSTklORywgVV9VTlNVUFBPUlRFRF9FUlJPUjwvY29kZT4KKyAqIEBzZWUgdWRhdGFfc2V0Q29t
bW9uRGF0YQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQy
Cit1ZGF0YV9zZXRBcHBEYXRhKGNvbnN0IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25zdCB2b2lkICpk
YXRhLCBVRXJyb3JDb2RlICplcnIpOworCisvKioKKyAqIFBvc3NpYmxlIHNldHRpbmdzIGZvciB1
ZGF0YV9zZXRGaWxlQWNjZXNzKCkKKyAqIEBzZWUgdWRhdGFfc2V0RmlsZUFjY2VzcworICogQHN0
YWJsZSBJQ1UgMy40CisgKi8KK3R5cGVkZWYgZW51bSBVRGF0YUZpbGVBY2Nlc3MgeworICAgIC8q
KiBJQ1UgbG9va3MgZm9yIGRhdGEgaW4gc2luZ2xlIGZpbGVzIGZpcnN0LCB0aGVuIGluIHBhY2th
Z2VzLiAoZGVmYXVsdCkgQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRVNfRklSU1Qs
CisgICAgLyoqIEFuIGFsaWFzIGZvciB0aGUgZGVmYXVsdCBhY2Nlc3MgbW9kZS4gQHN0YWJsZSBJ
Q1UgMy40ICovCisgICAgVURBVEFfREVGQVVMVF9BQ0NFU1MgPSBVREFUQV9GSUxFU19GSVJTVCwK
KyAgICAvKiogSUNVIG9ubHkgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzLCBub3QgZnJvbSBzaW5n
bGUgZmlsZXMuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX09OTFlfUEFDS0FHRVMsCisg
ICAgLyoqIElDVSBsb2FkcyBkYXRhIGZyb20gcGFja2FnZXMgZmlyc3QsIGFuZCBvbmx5IGZyb20g
c2luZ2xlIGZpbGVzCisgICAgICAgIGlmIHRoZSBkYXRhIGNhbm5vdCBiZSBmb3VuZCBpbiBhIHBh
Y2thZ2UuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX1BBQ0tBR0VTX0ZJUlNULAorICAg
IC8qKiBJQ1UgZG9lcyBub3QgYWNjZXNzIHRoZSBmaWxlIHN5c3RlbSBmb3IgZGF0YSBsb2FkaW5n
LiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9OT19GSUxFUywKKyAgICAvKiogTnVtYmVy
IG9mIHJlYWwgVURhdGFGaWxlQWNjZXNzIHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAg
VURBVEFfRklMRV9BQ0NFU1NfQ09VTlQKK30gVURhdGFGaWxlQWNjZXNzOworCisvKioKKyAqIFRo
aXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCB0byBjb250cm9sIGhvdyBJQ1UgbG9hZHMgZGF0YS4g
SXQgbXVzdCBiZSBjYWxsZWQKKyAqIGJlZm9yZSBhbnkgSUNVIGRhdGEgaXMgbG9hZGVkLCBpbmNs
dWRpbmcgYXBwbGljYXRpb24gZGF0YSBsb2FkZWQgd2l0aCAKKyAqIHVyZXMvUmVzb3VyY2VCdW5k
bGUgb3IgdWRhdGEgQVBJcy4gVGhpcyBmdW5jdGlvbiBpcyBub3QgbXVsdGl0aHJlYWQgc2FmZS4g
IAorICogVGhlIHJlc3VsdHMgb2YgY2FsbGluZyBpdCB3aGlsZSBvdGhlciB0aHJlYWRzIGFyZSBs
b2FkaW5nIGRhdGEgYXJlIHVuZGVmaW5lZC4KKyAqIEBwYXJhbSBhY2Nlc3MgVGhlIHR5cGUgb2Yg
ZmlsZSBhY2Nlc3MgdG8gYmUgdXNlZAorICogQHBhcmFtIHN0YXR1cyBFcnJvciBjb2RlLgorICog
QHNlZSBVRGF0YUZpbGVBY2Nlc3MKKyAqIEBzdGFibGUgSUNVIDMuNCAKKyAqLworVV9TVEFCTEUg
dm9pZCBVX0VYUE9SVDIKK3VkYXRhX3NldEZpbGVBY2Nlc3MoVURhdGFGaWxlQWNjZXNzIGFjY2Vz
cywgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmggYi9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3VtaXNjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg1NDUxZmM3NjdjMDU4MzVmNmMxNWY1NjZmMzU2MmUy
ZDRhZjgzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1pc2Mu
aApAQCAtMCwwICsxLDYwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykg
MTk5OS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRp
b24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAg
ZmlsZSBuYW1lOiAgdW1pc2MuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNp
emU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246
IDE5OTlvY3QxNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisjaWZu
ZGVmIFVNSVNDX0gKKyNkZWZpbmUgVU1JU0NfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMu
aCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmICBDIEFQSTptaXNjIGRlZmluaXRpb25zIAor
ICoKKyAqICBUaGlzIGZpbGUgY29udGFpbnMgbWlzY2VsbGFuZW91cyBkZWZpbml0aW9ucyBmb3Ig
dGhlIEMgQVBJcy4gCisgKi8KKworVV9DREVDTF9CRUdJTgorCisvKiogQSBzdHJ1Y3QgcmVwcmVz
ZW50aW5nIGEgcmFuZ2Ugb2YgdGV4dCBjb250YWluaW5nIGEgc3BlY2lmaWMgZmllbGQgCisgKiAg
QHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IFVGaWVsZFBvc2l0aW9uIHsKKyAg
LyoqCisgICAqIFRoZSBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQz
Ml90IGZpZWxkOworICAvKioKKyAgICogVGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHJhbmdlIGNvbnRh
aW5pbmcgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBiZWdp
bkluZGV4OworICAvKiogCisgICAqIFRoZSBsaW1pdCBvZiB0aGUgdGV4dCByYW5nZSBjb250YWlu
aW5nIGZpZWxkIAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgZW5kSW5k
ZXg7Cit9IFVGaWVsZFBvc2l0aW9uOworCisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorLyoqCisg
KiBPcGFxdWUgdHlwZSByZXR1cm5lZCBieSByZWdpc3Rlckluc3RhbmNlLCByZWdpc3RlckZhY3Rv
cnkgYW5kIHVucmVnaXN0ZXIgZm9yIHNlcnZpY2UgcmVnaXN0cmF0aW9uLgorICogQHN0YWJsZSBJ
Q1UgMi42CisgKi8KK3R5cGVkZWYgY29uc3Qgdm9pZCogVVJlZ2lzdHJ5S2V5OworI2VuZGlmCisK
K1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAwOTk3ZDllYWM0
Nzk1ODFmZjFmZDQ3NjljY2M0YjU0NjYyZWZkNzE0Li42NTA5ZTgyN2VmY2NiMzZiZjA5NTgzNWU3
MjgyNDU5ZTY2OTY2MWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMjcyLDYgKzI3Miw0MiBA
QCBpZiAoTk9UIFVTRV9TWVNURU1fTUFMTE9DKQogICAgIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJ
RVMgYm1hbGxvYykKIGVuZGlmICgpCiAKK3NldChXVEZfQlJFQUtJTkdfUlVMRVNfU09VUkNFUwor
ICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dAorICAg
IHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0Cisg
ICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50
eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50
eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKSy50eHQKKykKKworbWFjcm8oR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMg
X2lucHV0IF9zeW1ib2xOYW1lIF9vdXRwdXQpCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAg
ICAgICBPVVRQVVQgJHtfb3V0cHV0fQorICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElS
fS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQor
ICAgICAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGls
b2d1ZS50eHQKKyAgICAgICAgQ09NTUFORCBjYXQgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAke19pbnB1
dH0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvckVwaWxvZ3VlLnR4dCB8ICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0v
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgJHtf
c3ltYm9sTmFtZX1SdWxlcyAtaW5jbHVkZURlZmluZXMgPiAke19vdXRwdXR9CisgICAgICAgIFZF
UkJBVElNKQorICAgIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7X291dHB1dH0pCisgICAgQURE
X1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtfaW5wdXR9ICR7X291dHB1dH0pCitlbmRtYWNybygpCisK
K2ZvcmVhY2ggKF9maWxlICR7V1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVN9KQorICAgIGdldF9m
aWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtfZmlsZX0gTkFNRV9XRSkKKyAgICBHRU5FUkFURV9C
UkVBS0lOR19SVUxFUygke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtfZmlsZX0gJHtfbmFt
ZX0gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy8ke19uYW1lfS5jcHAp
CitlbmRmb3JlYWNoICgpCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJ
VkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMuY3BwCisgICAgTUFJTl9ERVBFTkRFTkNZICR7V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKKyAgICBERVBFTkRTICR7Q01B
S0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnR4dAorICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZf
RElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5w
eSBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMgLWluY2x1ZGVEZWZpbmVzIDwgJHtDTUFLRV9D
VVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMudHh0ID4gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9D
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgVkVSQkFUSU0pCitsaXN0KEFQUEVO
RCBXVEZfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHApCitBRERfU09VUkNFX0RFUEVOREVOQ0lFUygk
e0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy50eHQgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdS
dWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwKQorCiBsaXN0KEFQUEVORCBXVEZf
U09VUkNFUwogICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAogKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRkNjhiZWE4MGM4ZjJjNzNhMWUwNWZlMWY5YmJh
N2VjZDQ1NjNlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTAsMCArMSw4MSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisj
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworQlJFQUtJTkdfUlVMRVNfRklMRVMgPSBcCisgICAgQnJlYWtpbmdSdWxlcy9DdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmJyaworCitCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUyA9
IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgXAor
ICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgXAorICAgIEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwCisKK2lm
ZXEgKCQoc2hlbGwgJChDQykgLXN0ZD1nbnUrKzExIC14IGMrKyAtRSAtUCAtZE0gJChTREtfRkxB
R1MpICQoRlJBTUVXT1JLX0ZMQUdTKSAkKEhFQURFUl9GTEFHUykgLUkgJChXVEYpIC1pbmNsdWRl
ICIkKFdURikvd3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8IGdyZXAgJyBXVEZfUExBVEZPUk1f
SU9TICcgfCBjdXQgLWQnICcgLWYzKSwgMSkKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMQorZWxz
ZQorICAgIFdURl9QTEFURk9STV9JT1MgPSAwCitlbmRpZgorCitpZmVxICgkKFdURl9QTEFURk9S
TV9JT1MpLCAxKQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5U
ID0gMAorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAwCitlbHNlCisJQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQgPSAkKEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVCkKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMQorZW5kaWYKKworREVQRU5ERU5D
SUVTID0gJChCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUykKKworaWZlcSAoJChPUyksTUFDT1Mp
CitERVBFTkRFTkNJRVMgKz0gJChCUkVBS0lOR19SVUxFU19GSUxFUykKK2VuZGlmCisKK2FsbCA6
ICQoREVQRU5ERU5DSUVTKQorCitCcmVha2luZ1J1bGVzLyUuYnJrIDogQnJlYWtpbmdSdWxlcy8l
LnBwCisJLi4vLi4vZ2VuYnJrIC1jIC1yICQ8IC1vICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCA6IEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnBwCisJcHl0aG9uICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dl
bmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMg
PCAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLmNwcCA6IEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwCisJcHl0aG9uICQoV1RGKS93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBsaW5lQnJlYWtJdGVy
YXRvciQqUnVsZXMgPCAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
PSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQpIC1ESEFWRV9F
WFRSQV9JQ1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRAICQ8
CisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwIDogJChXVEYpL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCS1jYXQgJD8gfCB1
bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9T
RVRTKSAtbyAkQApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
NTkxMGJmYTVlMGU2MzNkYmQ3MjU5M2FjMWYzMzBhZjNlZTQzZGRkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy50eHQKQEAgLTAsMCArMSwxNzQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMg
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKyMgVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsg
aXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9y
Zy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3NvdXJjZS9kYXRhL2Jya2l0ci8+Lgor
IyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVk
IGJlbG93OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNp
bmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAtICRF
eHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOworIyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBw
cmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVn
IDI0MzQyKTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3Zp
bmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1
ZyAxNTc5MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJv
bSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtz
LgorIyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4KKworJENS
ICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07CiskTEYgICAgICA9IFtc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsKKyRDb250cm9sID0gW1xwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9pY2VNYXJrcyA9IFtcdUZGOUVcdUZGOUZd
OyAjIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCiskRXh0ZW5kICA9
IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSAkVm9pY2VNYXJrcyAtIFtcdTBF
MzAgXHUwRTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07CiskU3BhY2luZ01hcmsgPSBbW1xwe0dl
bmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOworJEwgICAgICAgPSBb
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsKKyRWICAgICAgID0gW1xwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gVH1dOworJExWICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07
CiskTFZUICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07CiskSGluMCAg
ICA9IFtcdTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQorJEhpblYg
ICAgPSBcdTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQorJEhpbjEgICAgPSBbXHUwOTE1
LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCiskQmVuMCAgICA9IFtcdTA5
ODUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4uLixIYQorJEJlblYgICAgPSBcdTA5Q0Q7
ICMgQmVuZ2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAgPSBbXHUwOTk1LVx1MDlCOV07ICMgQmVu
Z2FsaSBMZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9IFtcdTBBMDUtXHUwQTM5XTsgIyBHdXJt
dWtoaSBMZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0gXHUwQTREOyAjIEd1cm11a2hpIFNpZ24g
VmlyYW1hCiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgS2Es
Li4uLEhhCiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgQSwu
Li4sSGEKKyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFyYXRpIFNpZ24gVmlyYW1hCiskR3VqMSAg
ICA9IFtcdTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCiskT3JpMCAg
ICA9IFtcdTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgQSwuLi4sSGEKKyRPcmlWICAgID0g
XHUwQjREOyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3JpMSAgICA9IFtcdTBCMTUtXHUwQjM5XTsg
IyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAgICA9IFtcdTBDMDUtXHUwQzM5XTsgIyBU
ZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9IFx1MEM0RDsgIyBUZWx1Z3UgU2lnbiBW
aXJhbWEKKyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgS2EsLi4u
LEhhCiskS2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4uLixI
YQorJEthblYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBTaWduIFZpcmFtYQorJEthbjEgICAgPSBb
XHUwQzk1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKKyRNYWwwICAgID0gW1x1
MEQwNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEgCiskTWFsViAgICA9IFx1
MEQ0RDsgIyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRNYWwxICAgID0gW1x1MEQxNS1cdTBEMzld
OyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRSSSAgICAgID0gW1xVMDAwMUYxRTYtXFUw
MDAxRjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycworJFpXSiAgICAgPSBcdTIwMEQ7
ICMgWmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9IFtcdUZFMEZdOyAjIEVtb2ppLXN0eWxl
IHZhcmlhdGlvbiBzZWxlY3RvcgorCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAg
ICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBcVTAwMDFGMzA4
IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAwMUYzQ0MgXFUwMDAxRjNGMyBc
VTAwMDFGNDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NkYgXFUw
MDAxRjQ3MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4MS1cVTAwMDFGNDgyIFxVMDAw
MUY0ODYtXFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUgXFUwMDAxRjVFOCBcVTAwMDFG
NjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxVMDAwMUY2NEUgXFUwMDAxRjZB
MyBcVTAwMDFGNkI0LVxVMDAwMUY2QjZdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldK
IHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUy
NzBEIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EgXFUwMDAxRjND
QiBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYt
XFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxV
MDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU3NSBcVTAw
MDFGNTkwIFxVMDAwMUY1OTUgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAx
RjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2
QzAgXFUwMDAxRjkxOF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMK
KworI2Vsc2UKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNzY0IFxVMDAwMUY0NjYtXFUwMDAx
RjQ2OSBcVTAwMDFGNDhCXTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5j
ZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI3MEEtXHUyNzBDIFxVMDAwMUYzODUg
XFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcgXFUwMDAxRjNDQSBcVTAwMDFGNDQyLVxV
MDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAw
MDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAx
RjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2
NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2
IFxVMDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisK
KyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUwMDAxRjNGRl07ICMgRml0enBh
dHJpY2sgbW9kaWZpZXJzCishIWNoYWluOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
CisKKyAgICAhIVJJTm9DaGFpbjsKKworI2VuZGlmCisKKyEhZm9yd2FyZDsKKyRDUiAkTEY7Cisk
TCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8ICRWKSAoJFYgfCAkVCk7CisoJExWVCB8
ICRUKSAkVDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJICRSSSAk
RXh0ZW5kKiAvICRSSTsKKyAgICAkUkkgJFJJICRFeHRlbmQqOworICAgIFteJENvbnRyb2wgJENS
ICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKwor
I2Vsc2UKKworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9s
ICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKyAgICAkUkkgJFJJIC8gJFJJOworICAgICRSSSAkUkk7
CisKKyNlbmRpZgorCiskSGluMCAkSGluViAkSGluMTsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9y
d2FyZCkKKyRCZW4wICRCZW5WICRCZW4xOyAjIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQorJFBh
bjAgJFBhblYgJFBhbjE7ICMgR3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQorJEd1ajAgJEd1alYg
JEd1ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQorJE9yaTAgJE9yaVYgJE9yaTE7ICMg
T3JpeWEgVmlyYW1hIChmb3J3YXJkKQorJFRlbDAgJFRlbFYgJFRlbDE7ICMgVGVsdWd1IFZpcmFt
YSAoZm9yd2FyZCkKKyRLYW4wICRLYW5WICRLYW4xOyAjIEthbm5hZGEgVmlyYW1hIChmb3J3YXJk
KQorJE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKKyRaV0og
JEVtb2ppRm9yU2VxczsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9q
aUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxl
dmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0
cmljayBtb2RpZmllcgorISFyZXZlcnNlOworJExGICRDUjsKKygkTCB8ICRWIHwgJExWIHwgJExW
VCkgJEw7CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRUICgkTFZUIHwgJFQpOworCisjaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCog
JFJJICRSSTsKKyAgICAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQgICAgICBbXiRDb250
cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOworCisj
ZWxzZQorCisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFNwYWNp
bmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFJJICRSSSAvICRSSSAkUkk7CisgICAg
JFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4xICRIaW5WICRIaW4wOyAjIERldmFuYWdhcmkgVmly
YW1hIChiYWNrd2FyZCkKKyRCZW4xICRCZW5WICRCZW4wOyAjIEJlbmdhbGkgVmlyYW1hIChiYWNr
d2FyZCkKKyRQYW4xICRQYW5WICRQYW4wOyAjIEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCisk
R3VqMSAkR3VqViAkR3VqMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJE9yaTEgJE9y
aVYgJE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRUZWwxICRUZWxWICRUZWww
OyAjIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQorJEthbjEgJEthblYgJEthbjA7ICMgS2FubmFk
YSBWaXJhbWEgKGJhY2t3YXJkKQorJE1hbDEgJE1hbFYgJE1hbDA7ICMgTWFsYXlhbGFtIFZpcmFt
YSAoYmFja3dhcmQpCiskRW1vamlGb3JTZXFzICRaV0o7ICMgRG9udCBicmVhayBpbiBlbW9qaSBa
V0ogc2VxdWVuY2VzCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsgIyBEb250
IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNl
bGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKworI2lmIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVAorCisgICAgISFzYWZlX3JldmVyc2U7CisgICAgJFJJICRSSSs7CisgICAgWyRFbW9q
aVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKyAg
ICAkUkkgJFJJKzsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOwor
CisjZWxzZQorCisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAg
ICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOworICAgICEhc2FmZV9yZXZl
cnNlOworICAgICEhc2FmZV9mb3J3YXJkOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVT
dHJpbmdzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkNGRkNDRhNmYyNjNmZTE2MjJiOGUxYzliZGU3OTBkNGU5
ZjYyZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CkBAIC0wLDAgKzEsMTAwIEBACisjIS91
c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK2ltcG9ydCBzeXMKK2ltcG9ydCByZQorCitoZWFkZXIgPSAiIiIvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8iIiIKKwor
CitkZWYgbWFpbihhcmd2PU5vbmUpOgorICAgIGlmIG5vdCBhcmd2OgorICAgICAgICBhcmd2ID0g
c3lzLmFyZ3YKKyAgICBzeW1ib2xOYW1lID0gYXJndlsxXVswXS5sb3dlcigpICsgYXJndlsxXVsx
Ol0KKworICAgIHByaW50KGhlYWRlcikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiLy8gRE8g
Tk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSB0aGUg
c2NyaXB0IikKKyAgICBwcmludCgiLy8gV1RGL3d0Zi90ZXh0L0dlbmVyYXRlQnJlYWtpbmdSdWxl
U3RyaW5ncy5weSIpCisgICAgcHJpbnQoIiIpCisgICAgcHJpbnQoIiNpbmNsdWRlIFwiY29uZmln
LmhcIiIpCisgICAgcHJpbnQoIiNpbmNsdWRlIDx1bmljb2RlL3V2ZXJudW0uaD4iKQorICAgIHBy
aW50KCIiKQorICAgIGlmIGxlbihhcmd2KSA+IDIgYW5kIGFyZ3ZbMl0gPT0gIi1pbmNsdWRlRGVm
aW5lcyI6CisgICAgICAgIHByaW50KCIjZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAo
UExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTEwMCkpIikKKyAgICAgICAgcHJpbnQoIiNkZWZpbmUgSEFWRV9FWFRS
QV9JQ1VfTkFNRURfU0VUUyAoKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lD
VV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KSkiKQorICAgICAgICBwcmludCgiIikKKyAgICBwcmlu
dCgibmFtZXNwYWNlIFdURiB7IikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiY29uc3QgY2hh
ciogIiArIHN5bWJvbE5hbWUgKyAiID0gIikKKworICAgIGZvciBsIGluIHN5cy5zdGRpbjoKKyAg
ICAgICAgbGluZSA9IGwucnN0cmlwKCkKKyAgICAgICAgaWYgcmUubWF0Y2goIl5ccyokIiwgbGlu
ZSk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjICIp
OgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgorICAgICAgICAg
ICAgcGFzcworICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyIpOgorICAgICAgICAgICAg
cHJpbnQobGluZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1hdGNoID0gcmUubWF0Y2go
Il4oLiopOyggIyAuKik/JCIsIGxpbmUpCisgICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSAiXCIiICsgbWF0Y2guZ3JvdXAoMSkucmVwbGFjZSgiXFwiLCAiXFxc
XCIpICsgIjtcIiIKKyAgICAgICAgICAgICAgICBpZiBtYXRjaC5ncm91cCgyKToKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIpWzM6XQorICAgICAg
ICAgICAgICAgIHByaW50KHJlc3VsdCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAgIHByaW50KCJ9IikKKworaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVw
aWxvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTg1ZDNjMWE2ZWUyMTc2MmY2NGNhZDI5
ZjdhY2VmNGIyOGEzZWFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0wLDAgKzEsMzcw
IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQUkgPSBbOkxpbmVC
cmVhayA9IEFtYmlndW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07Cisk
QkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxp
bmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlf
QnJlYWs6XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENCID0gWzpMaW5l
QnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1
bmN0dWF0aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1Ag
PSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9
IENhcnJpYWdlX1JldHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAt
ICRFWF9TVUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJB
X0lDVV9OQU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6
XTsKKworI2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNl
bmRpZgorCiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsg
PSBIMjpdOworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsg
PSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElOID0gW1s6TGlu
ZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGluZUJyZWFrID0g
SW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07Cisk
SlYgPSBbOkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYg
PSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xp
bmU6XTsKKyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQURE
XSAtICROU19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxp
bmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3Rm
aXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVt
ZXJpYzpdIC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJ
ID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhf
Q29udGV4dDpdOworJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGlu
ZUJyZWFrID0gU3BhY2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOwor
JFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBV
bmtub3duOl07CiskWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7
CiskRW1vamlWYXIgPSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKwor
ICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYz
MDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0Yz
IFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBc
VTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUw
MDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAw
MUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFG
NkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBa
V0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1c
dTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFG
M0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2
Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEt
XFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxV
MDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAw
MDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAx
RjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVy
cworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAw
MDFGNDY5IFxVMDAwMUY0OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1c
dTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFG
M0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2
Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEt
XFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxV
MDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAw
MDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0
cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAw
MDFGM0ZGXTsKKyRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsK
KyRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07CiskQUxjbSA9ICRBTFBsdXMgJENNKjsK
KyRCQWNtID0gJEJBICRDTSo7CiskQkJjbSA9ICRCQiAkQ00qOworJEIyY20gPSAkQjIgJENNKjsK
KyRDTGNtID0gJENMICRDTSo7CiskQ1BjbSA9ICRDUCAkQ00qOworJEVYY20gPSAkRVggJENNKjsK
KyRHTGNtID0gJEdMICRDTSo7CiskSExjbSA9ICRITCAkQ00qOworJEhZY20gPSAkSFkgJENNKjsK
KyRIMmNtID0gJEgyICRDTSo7CiskSDNjbSA9ICRIMyAkQ00qOworJElEY20gPSAkSUQgJENNKjsK
KyRJTmNtID0gJElOICRDTSo7CiskSVNjbSA9ICRJUyAkQ00qOworJEpMY20gPSAkSkwgJENNKjsK
KyRKVmNtID0gJEpWICRDTSo7CiskSlRjbSA9ICRKVCAkQ00qOworJE5TY20gPSAkTlMgJENNKjsK
KyROVWNtID0gJE5VICRDTSo7CiskT1BjbSA9ICRPUCAkQ00qOworJFBPY20gPSAkUE8gJENNKjsK
KyRQUmNtID0gJFBSICRDTSo7CiskUVVjbSA9ICRRVSAkQ00qOworJFJJY20gPSAkUkkgJENNKjsK
KyRTWWNtID0gJFNZICRDTSo7CiskV0pjbSA9ICRXSiAkQ00qOworCishIWZvcndhcmQ7CiskQ0FO
X0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJENBTlRfQ00gPSBbJFNQICRC
SyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAk
TkwgJFpXICRTUF07CiskQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRX
SiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOworJEFMX0ZPTExPVyA9
IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07CiskTEI0QnJlYWtzID0gWyRCSyAkQ1Ig
JExGICROTF07CiskTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOworJExCOEJyZWFr
cyA9IFskTEI0QnJlYWtzICRaV107CiskTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAt
IFskWlddXTsKKyRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07CiskTEIx
OEJyZWFrcyA9IFskTEI4QnJlYWtzICRTUF07CiskTEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJy
ZWFrcyAtICRDQl07CiskQUxQbHVzICRDTSs7CiskQkEgJENNKzsKKyRCQiAkQ00rOworJEIyICRD
TSs7CiskQ0wgJENNKzsKKyRDUCAkQ00rOworJEVYICRDTSs7CiskR0wgJENNKzsKKyRITCAkQ00r
OworJEhZICRDTSs7CiskSDIgJENNKzsKKyRIMyAkQ00rOworJElEICRDTSs7CiskSU4gJENNKzsK
KyRJUyAkQ00rOworJEpMICRDTSs7CiskSlYgJENNKzsKKyRKVCAkQ00rOworJE5TICRDTSs7Cisk
TlUgJENNKzsKKyRPUCAkQ00rOworJFBPICRDTSs7CiskUFIgJENNKzsKKyRRVSAkQ00rOworJFJJ
ICRDTSs7CiskU1kgJENNKzsKKyRXSiAkQ00rOworJENSICRMRiB7MTAwfTsKKyRMQjROb25CcmVh
a3M/ICRMQjRCcmVha3MgezEwMH07CiskQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsKKyRD
TSsgJExCNEJyZWFrcyB7MTAwfTsKKyRMQjROb25CcmVha3MgWyRTUCAkWlddOworJENBTl9DTSAk
Q00qIFskU1AgJFpXXTsKKyRDTSsgWyRTUCAkWlddOworJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/
ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsKKyRDQU5fQ00gJENNKzsKKyRDTSs7Cisk
Q0FOX0NNICRDTSogJFdKY207CiskTEI4Tm9uQnJlYWtzICRXSmNtOworJENNKyAkV0pjbTsKKyRX
SmNtICRDQU5UX0NNOworJFdKY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTl9DTSAkQ00qOwor
JEdMY20gJENBTlRfQ007CitbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENNKiAk
R0xjbTsKKyRDTSsgR0xjbTsKKyRMQjhOb25CcmVha3MgJENMOworJENBTl9DTSAkQ00qICRDTDsK
KyRDTSsgJENMOworJExCOE5vbkJyZWFrcyAkQ1A7CiskQ0FOX0NNICRDTSogJENQOworJENNKyAk
Q1A7CiskTEI4Tm9uQnJlYWtzICRFWDsKKyRDQU5fQ00gJENNKiAkRVg7CiskQ00rICRFWDsKKyRM
QjhOb25CcmVha3MgJElTOworJENBTl9DTSAkQ00qICRJUzsKKyRDTSsgJElTOworJExCOE5vbkJy
ZWFrcyAkU1k7CiskQ0FOX0NNICRDTSogJFNZOworJENNKyAkU1k7CiskT1BjbSAkU1AqICRDQU5f
Q00gJENNKjsKKyRPUGNtICRTUCogJENBTlRfQ007CiskT1BjbSAkU1ArICRDTSsgJEFMX0ZPTExP
Vz87CiskUVVjbSAkU1AqICRPUGNtOworKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207CiskQjJj
bSAkU1AqICRCMmNtOworJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsKKyRDTSsgJFFVY207Cisk
UVVjbSAuPzsKKyRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7CiskTEIyME5vbkJyZWFrcyAkQ00q
ICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAKKyRCQmNtIFteJENCXTsKKyRCQmNtICRMQjIwTm9u
QnJlYWtzICRDTSo7CiskSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsKKyRTWWNtICRITGNt
OworKCRBTGNtIHwgJEhMY20pICRJTmNtOworJENNKyAkSU5jbTsKKyRFWGNtICRJTmNtOworJElE
Y20gJElOY207CiskSU5jbSAkSU5jbTsKKyROVWNtICRJTmNtOworJElEY20gJFBPY207CiskQUxj
bSAkTlVjbTsKKyRITGNtICROVWNtOworJENNKyAkTlVjbTsKKyROVWNtICRBTGNtOworJE5VY20g
JEhMY207CiskUFJjbSAkSURjbTsKKyRQUmNtICgkQUxjbSB8ICRITGNtKTsKKyRQT2NtICgkQUxj
bSB8ICRITGNtKTsKKygkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5V
Y20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/Owor
JEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkSlZjbSB8ICRIMmNtKSAo
JEpWY20gfCAkSlRjbSk7CisoJEpUY20gfCAkSDNjbSkgJEpUY207CisoJEpMY20gfCAkSlZjbSB8
ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwg
JEgyY20gfCAkSDNjbSkgJFBPY207CiskUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgy
Y20gfCAkSDNjbSk7CisoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOworJENNKyAoJEFM
Y20gfCAkSExjbSk7CiskSVNjbSAoJEFMY20gfCAkSExjbSk7CisoJEFMY20gfCAkSExjbSB8ICRO
VWNtKSAkT1BjbTsKKyRDTSsgJE9QY207CiskQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsK
KworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJY20gJFJJY207CisKKyNl
bmRpZgorCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsKKworISFyZXZlcnNl
OworJENNKyAkQUxQbHVzOworJENNKyAkQkE7CiskQ00rICRCQjsKKyRDTSsgJEIyOworJENNKyAk
Q0w7CiskQ00rICRDUDsKKyRDTSsgJEVYOworJENNKyAkR0w7CiskQ00rICRITDsKKyRDTSsgJEhZ
OworJENNKyAkSDI7CiskQ00rICRIMzsKKyRDTSsgJElEOworJENNKyAkSU47CiskQ00rICRJUzsK
KyRDTSsgJEpMOworJENNKyAkSlY7CiskQ00rICRKVDsKKyRDTSsgJE5TOworJENNKyAkTlU7Cisk
Q00rICRPUDsKKyRDTSsgJFBPOworJENNKyAkUFI7CiskQ00rICRRVTsKKworI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKyAkUkk7CisKKyNlbmRpZgorCiskQ00rICRTWTsK
KyRDTSsgJFdKOworJENNKzsKKyRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRa
VyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFsk
QUwge2VvZn1dKSk7CitbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9
XTsKKyRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENNXTsKKyRMQjRCcmVha3MgJENNKyAkQ0FO
X0NNOworJExGICRDUjsKK1skU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOworWyRTUCAkWldd
ICRDTSsgJENBTl9DTTsKKyRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/
ICRFbW9qaUZvclNlcXM7CiskQ00rICRDQU5fQ007CiskQ00qICRXSiAkQ00qICRDQU5fQ007Cisk
Q00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOworJENBTlRfQ00gJENNKiAkV0o7CiskQ00qICRD
QU5fQ00gJENNKiAkV0o7CiskQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRC
QSAkSFldXTsKKyRDQU5UX0NNICRDTSogJEdMOworJENNKiAkQ0FOX0NNICRDTSogJEdMOworJENM
ICRDTSsgJENBTl9DTTsKKyRDUCAkQ00rICRDQU5fQ007CiskRVggJENNKyAkQ0FOX0NNOworJElT
ICRDTSsgJENBTl9DTTsKKyRTWSAkQ00rICRDQU5fQ007CiskQ0wgWyRMQjhOb25CcmVha3MtJENN
XTsKKyRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOworJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07Cisk
SVMgWyRMQjhOb25CcmVha3MtJENNXTsKKyRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOworWyRDTCAk
Q1AgJEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgCiskQ00qICRDQU5fQ00gJFNQKiAk
Q00qICRPUDsKKyRDQU5UX0NNICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XPyAkQ00rICRTUCAk
U1AqICRDTSogJE9QOworJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRDTSog
JEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskU1kgJENNICRTUCsgJE9QOworJENN
KiAkT1AgJFNQKiAkQ00qICRRVTsKKyRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsKKyRD
TSogJEIyICRTUCogJENNKiAkQjI7CiskQ00qICRRVSAkQ00qICRDQU5fQ007CiskQ00qICRRVSAk
TEIxOE5vbkJyZWFrczsKKyRDTSogJENBTl9DTSAkQ00qICRRVTsKKyRDQU5UX0NNICRDTSogJFFV
OworJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOworJENN
KiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICRCQjsKK1teJENC
XSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworJENNKiAkSEwgJENNKiAkU1k7CiskQ00qICRJ
TiAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogJElOICRDTSogJEVYOworJENNKiAkSU4gJENN
KiAkSUQ7CiskQ00qICRJTiAkQ00qICRJTjsKKyRDTSogJElOICRDTSogJE5VOworJENNKiAkUE8g
JENNKiAkSUQ7CiskQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMg
fCAkSEwpICRDTSogJE5VOworJENNKiAkSUQgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhM
KSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOworKCRDTSogKCRQUiB8
ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENN
KiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OworJENNKiAoJEgz
IHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsKKyRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgy
IHwgJEpWKTsKKyRDTSogJEpUICRDTSogKCRIMyB8ICRKVCk7CiskQ00qICRJTiAkQ00qICgkSDMg
fCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpU
IHwgJEpWIHwgJEpMKTsKKyRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAk
UFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRB
TFBsdXMgfCAkSEwpICRDTSogJElTOworJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8ICRO
VSk7CiskQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsKKworI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKiAkUkkgJENNKiAkUkk7CisKKyNlbmRpZgorCisk
RW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsKKworISFzYWZlX2ZvcndhcmQ7Citb
JENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14k
Q00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07CiskZGljdGlv
bmFyeSAkZGljdGlvbmFyeTsKKyAgICAKKyEhc2FmZV9yZXZlcnNlOworJENNKyBbXiRDTSAkQksg
JENSICRMRiAkTkwgJFpXICRTUF07CiskQ00rICRTUCAvIC47CiskU1ArICRDTSogJE9QOworJFNQ
KyAkQ00qICRRVTsKKyRTUCsgJENNKiAoJENMIHwgJENQKTsKKyRTUCsgJENNKiAkQjI7CiskQ00q
ICgkSFkgfCAkQkEpICRDTSogJEhMOworKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsKKygk
Q0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7CiskZGljdGlvbmFyeSAkZGljdGlvbmFy
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclByb2xvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjg4MzU1NjMxZTQz
NzkyZDNmM2M5MjMzMzcyNzY2YWNkZWMxYjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0CkBA
IC0wLDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyEh
Y2hhaW47CishIUxCQ01Ob0NoYWluOworISFsb29rQWhlYWRIYXJkQnJlYWs7CisKKyNpZiBIQVZF
X0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkQ0ogPSBbOkxpbmVCcmVhaz1Db25kaXRpb25h
bF9KYXBhbmVzZV9TdGFydGVyOl07CisKKyNlbHNlCisKKyAgICAkQ0ogPSBbXHUzMDQxXHUzMDQz
XHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhFXHUzMDk1XHUz
MDk2XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3XHUzMEE5XHUzMEMzXHUzMEUzXHUzMEU1XHUzMEU3
XHUzMEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYwXHUzMUYxXHUzMUYyXHUzMUYzXHUzMUY0XHUz
MUY1XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUzMUZBXHUzMUZCXHUzMUZDXHUzMUZEXHUzMUZF
XHUzMUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZBXHVGRjZCXHVGRjZDXHVGRjZEXHVGRjZFXHVG
RjZGXHVGRjcwXTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzBiY2U1ZWU5ZTY3OTY5YmM4NmIwODc1MDY2MTU0ZjdmYzM5MzE2MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Q0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7
CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0g
W1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0g
WyRDSiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTAzZTUxMWViOTg0ZmNhYTY0ODU0NGFj
Y2VlZjZlNzgxNTg4MDFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKQEAgLTAsMCAr
MSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9
IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9IFtcdTAwMjFcdTAwM0ZcdUZGMDFcdUZGMUZdOwor
JElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NVQiA9IFtcdTAw
M0FcdTAwM0JdOworJE5TX1NVQiA9IFtcdTIwM0NcdTIwNDdcdTIwNDhcdTIwNDlcdTMwMDVcdTMw
MUNcdTMwM0JcdTMwOURcdTMwOUVcdTMwQTBcdTMwRkJcdTMwRkRcdTMwRkVcdUZGMUFcdUZGMUJc
dUZGNjVdOworJFBPX1NVQiA9IFtcdTAwMjVcdTAwQTJcdTAwQjBcdTIwMzBcdTIwMzJcdTIwMzNc
dTIxMDNcdUZGMDVcdUZGRTBdOworJFBSX1NVQiA9IFtcdTAwMjRcdTAwQTNcdTAwQTVcdTIwQUNc
dTIxMTZcdUZGMDRcdUZGRTFcdUZGRTVdOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VC
ICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07CiskTlNfQUREID0gJyc7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZmOGU4ZTFiNWI2NWJjNjM0M2I1MDEyZDhmOTlkODQ0YTQwNGFkZGYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VC
ID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gJyc7CiskTlNfU1VC
ID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBGRFx1MzBGRV07CiskUE9fU1VCID0gJyc7
CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJdOworJE5TX0FE
RCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2
ZWFiNjk0OTg2ZWY4MmQ5YWI5NWZiMTliNDM1MmI2NjJkMjYzZGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOwor
JElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcn
OworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYmNlNWVlOWU2
Nzk2OWJjODZiMDg3NTA2NjE1NGY3ZmMzOTMxNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
IyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9
ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMw
QTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NV
QiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDk0NTgyY2NlOWZkNGQwN2Q5ODdlMzk5ZWM5
NzUyMjczYjRkYmU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0CkBAIC0wLDAg
KzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIg
PSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19T
VUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJ
RF9BREQgPSBbJENKXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJi
NjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CkBAIC0wLDAgKzEsMzMg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsK
KyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAn
JzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQg
PSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJi
NjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CkBAIC0wLDAgKzEs
MzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAn
JzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIg
PSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9B
REQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvY21lbW9yeS5oIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL2dlbmJyay9jbWVtb3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE4MmI1YWE3ZDE2Njkz
MDA2OWQ1MjQyM2M3YTM3M2U3MmNlYjUyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvY21lbW9yeS5oCkBAIC0wLDAgKzEsNjAwIEBA
CisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIw
MTUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQg
b3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor
KgorKiBGaWxlIENNRU1PUlkuSAorKgorKiAgQ29udGFpbnMgc3RkbGliLmgvc3RyaW5nLmggbWVt
b3J5IGZ1bmN0aW9ucworKgorKiBAYXV0aG9yICAgICAgIEJlcnRyYW5kIEEuIERhbWliYQorKgor
KiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBE
ZXNjcmlwdGlvbgorKiAgIDYvMjAvOTggICAgIEJlcnRyYW5kICAgIENyZWF0ZWQuCisqICAwNS8w
My85OSAgICAgc3RlcGhlbiAgICAgQ2hhbmdlZCBmcm9tIGZ1bmN0aW9ucyB0byBtYWNyb3MuCisq
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgQ01FTU9SWV9ICisjZGVmaW5l
IENNRU1PUllfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworI2luY2x1ZGUgPHN0
ZGRlZi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgInVuaWNvZGUvbG9jYWxwb2lu
dGVyLmgiCisKKyNpZiBVX0RFQlVHICYmIGRlZmluZWQoVVBSVl9NQUxMT0NfQ09VTlQpCisjaW5j
bHVkZSA8c3RkaW8uaD4KKyNlbmRpZgorCisjaWYgVV9ERUJVRworCisvKgorICogVGhlIEMrKyBz
dGFuZGFyZCByZXF1aXJlcyB0aGF0IHRoZSBzb3VyY2UgcG9pbnRlciBmb3IgbWVtY3B5KCkgJiBt
ZW1tb3ZlKCkKKyAqIGlzIHZhbGlkLCBub3QgTlVMTCwgYW5kIG5vdCBhdCB0aGUgZW5kIG9mIGFu
IGFsbG9jYXRlZCBtZW1vcnkgYmxvY2suCisgKiBJbiBkZWJ1ZyBtb2RlLCB3ZSByZWFkIG9uZSBi
eXRlIGZyb20gdGhlIHNvdXJjZSBwb2ludCB0byB2ZXJpZnkgdGhhdCBpdCdzCisgKiBhIHZhbGlk
LCByZWFkYWJsZSBwb2ludGVyLgorICovCisKK1VfQ0FQSSB2b2lkIHVwcnZfY2hlY2tWYWxpZE1l
bW9yeShjb25zdCB2b2lkICpwLCBzaXplX3Qgbik7CisKKyNkZWZpbmUgdXBydl9tZW1jcHkoZHN0
LCBzcmMsIHNpemUpICggXAorICAgIHVwcnZfY2hlY2tWYWxpZE1lbW9yeShzcmMsIDEpLCBcCisg
ICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIG1lbWNweShkc3QsIHNyYywgc2l6ZSkpCisjZGVm
aW5lIHVwcnZfbWVtbW92ZShkc3QsIHNyYywgc2l6ZSkgKCBcCisgICAgdXBydl9jaGVja1ZhbGlk
TWVtb3J5KHNyYywgMSksIFwKKyAgICBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0UgbWVtbW92ZShk
c3QsIHNyYywgc2l6ZSkpCisKKyNlbHNlCisKKyNkZWZpbmUgdXBydl9tZW1jcHkoZHN0LCBzcmMs
IHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBtZW1jcHkoZHN0LCBzcmMsIHNpemUpCisj
ZGVmaW5lIHVwcnZfbWVtbW92ZShkc3QsIHNyYywgc2l6ZSkgVV9TVEFOREFSRF9DUFBfTkFNRVNQ
QUNFIG1lbW1vdmUoZHN0LCBzcmMsIHNpemUpCisKKyNlbmRpZiAgLyogVV9ERUJVRyAqLworCisv
KioKKyAqIFxkZWYgVVBSVl9MRU5HVEhPRgorICogQ29udmVuaWVuY2UgbWFjcm8gdG8gZGV0ZXJt
aW5lIHRoZSBsZW5ndGggb2YgYSBmaXhlZCBhcnJheSBhdCBjb21waWxlLXRpbWUuCisgKiBAcGFy
YW0gYXJyYXkgQSBmaXhlZCBsZW5ndGggYXJyYXkKKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0
aGUgYXJyYXksIGluIGVsZW1lbnRzCisgKiBAaW50ZXJuYWwKKyAqLworI2RlZmluZSBVUFJWX0xF
TkdUSE9GKGFycmF5KSAoaW50MzJfdCkoc2l6ZW9mKGFycmF5KS9zaXplb2YoKGFycmF5KVswXSkp
CisjZGVmaW5lIHVwcnZfbWVtc2V0KGJ1ZmZlciwgbWFyaywgc2l6ZSkgVV9TVEFOREFSRF9DUFBf
TkFNRVNQQUNFIG1lbXNldChidWZmZXIsIG1hcmssIHNpemUpCisjZGVmaW5lIHVwcnZfbWVtY21w
KGJ1ZmZlcjEsIGJ1ZmZlcjIsIHNpemUpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBtZW1jbXAo
YnVmZmVyMSwgYnVmZmVyMixzaXplKQorCitVX0NBUEkgdm9pZCAqIFVfRVhQT1JUMgordXBydl9t
YWxsb2Moc2l6ZV90IHMpIFVfTUFMTE9DX0FUVFIgVV9BTExPQ19TSVpFX0FUVFIoMSk7CisKK1Vf
Q0FQSSB2b2lkICogVV9FWFBPUlQyCit1cHJ2X3JlYWxsb2Modm9pZCAqbWVtLCBzaXplX3Qgc2l6
ZSkgVV9BTExPQ19TSVpFX0FUVFIoMik7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordXBydl9m
cmVlKHZvaWQgKm1lbSk7CisKK1VfQ0FQSSB2b2lkICogVV9FWFBPUlQyCit1cHJ2X2NhbGxvYyhz
aXplX3QgbnVtLCBzaXplX3Qgc2l6ZSkgVV9NQUxMT0NfQVRUUiBVX0FMTE9DX1NJWkVfQVRUUjIo
MSwyKTsKKworLyoqCisgKiBUaGlzIHNob3VsZCBhbGlnbiB0aGUgbWVtb3J5IHByb3Blcmx5IG9u
IGFueSBtYWNoaW5lLgorICogVGhpcyBpcyB2ZXJ5IHVzZWZ1bCBmb3IgdGhlIHNhZmVDbG9uZSBm
dW5jdGlvbnMuCisgKi8KK3R5cGVkZWYgdW5pb24geworICAgIGxvbmcgICAgdDE7CisgICAgZG91
YmxlICB0MjsKKyAgICB2b2lkICAgKnQzOworfSBVQWxpZ25lZE1lbW9yeTsKKworLyoqCisgKiBH
ZXQgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2YgYSBwb2ludGVyIChhIG1lbW9yeSBhZGRy
ZXNzKS4KKyAqIEZvciBleGFtcGxlLCB3aXRoIGEgbWFzayBvZiAzLCB0aGUgbWFjcm8gZ2V0cyB0
aGUgMiBsZWFzdCBzaWduaWZpY2FudCBiaXRzLAorICogd2hpY2ggd2lsbCBiZSAwIGlmIHRoZSBw
b2ludGVyIGlzIDMyLWJpdCAoNC1ieXRlKSBhbGlnbmVkLgorICoKKyAqIHB0cmRpZmZfdCBpcyB0
aGUgbW9zdCBhcHByb3ByaWF0ZSBpbnRlZ2VyIHR5cGUgdG8gY2FzdCB0by4KKyAqIHNpemVfdCBz
aG91bGQgd29yayB0b28sIHNpbmNlIG9uIG1vc3QgKG9yIGFsbD8pIHBsYXRmb3JtcyBpdCBoYXMg
dGhlIHNhbWUKKyAqIHdpZHRoIGFzIHB0cmRpZmZfdC4KKyAqLworI2RlZmluZSBVX1BPSU5URVJf
TUFTS19MU0IocHRyLCBtYXNrKSAoKChwdHJkaWZmX3QpKGNoYXIgKikocHRyKSkgJiAobWFzaykp
CisKKy8qKgorICogR2V0IHRoZSBhbW91bnQgb2YgYnl0ZXMgdGhhdCBhIHBvaW50ZXIgaXMgb2Zm
IGJ5IGZyb20KKyAqIHRoZSBwcmV2aW91cyBVQWxpZ25lZE1lbW9yeS1hbGlnbmVkIHBvaW50ZXIu
CisgKi8KKyNkZWZpbmUgVV9BTElHTk1FTlRfT0ZGU0VUKHB0cikgVV9QT0lOVEVSX01BU0tfTFNC
KHB0ciwgc2l6ZW9mKFVBbGlnbmVkTWVtb3J5KSAtIDEpCisKKy8qKgorICogR2V0IHRoZSBhbW91
bnQgb2YgYnl0ZXMgdG8gYWRkIHRvIGEgcG9pbnRlcgorICogaW4gb3JkZXIgdG8gZ2V0IHRoZSBu
ZXh0IFVBbGlnbmVkTWVtb3J5LWFsaWduZWQgYWRkcmVzcy4KKyAqLworI2RlZmluZSBVX0FMSUdO
TUVOVF9PRkZTRVRfVVAocHRyKSAoc2l6ZW9mKFVBbGlnbmVkTWVtb3J5KSAtIFVfQUxJR05NRU5U
X09GRlNFVChwdHIpKQorCisvKioKKyAgKiAgSGVhcCBjbGVhbiB1cCBmdW5jdGlvbiwgY2FsbGVk
IGZyb20gdV9jbGVhbnVwKCkKKyAgKiAgICBDbGVhcnMgYW55IHVzZXIgaGVhcCBmdW5jdGlvbnMg
ZnJvbSB1X3NldE1lbW9yeUZ1bmN0aW9ucygpCisgICogICAgRG9lcyBOT1QgZGVhbGxvY2F0ZSBh
bnkgcmVtYWluaW5nIGFsbG9jYXRlZCBtZW1vcnkuCisgICovCitVX0NGVU5DIFVCb29sIAorY21l
bW9yeV9jbGVhbnVwKHZvaWQpOworCisvKioKKyAqIEEgZnVuY3Rpb24gY2FsbGVkIGJ5IDxUVD51
aGFzaF9yZW1vdmU8L1RUPiwKKyAqIDxUVD51aGFzaF9jbG9zZTwvVFQ+LCBvciA8VFQ+dWhhc2hf
cHV0PC9UVD4gdG8gZGVsZXRlCisgKiBhbiBleGlzdGluZyBrZXkgb3IgdmFsdWUuCisgKiBAcGFy
YW0gb2JqIEEga2V5IG9yIHZhbHVlIHN0b3JlZCBpbiBhIGhhc2h0YWJsZQorICogQHNlZSB1cHJ2
X2RlbGV0ZVVPYmplY3QKKyAqLwordHlwZWRlZiB2b2lkIFVfQ0FMTENPTlYgVU9iamVjdERlbGV0
ZXIodm9pZCogb2JqKTsKKworLyoqCisgKiBEZWxldGVyIGZvciBVT2JqZWN0IGluc3RhbmNlcy4K
KyAqIFdvcmtzIGZvciBhbGwgc3ViY2xhc3NlcyBvZiBVT2JqZWN0IGJlY2F1c2UgaXQgaGFzIGEg
dmlydHVhbCBkZXN0cnVjdG9yLgorICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VwcnZfZGVs
ZXRlVU9iamVjdCh2b2lkICpvYmopOworCisjaWZkZWYgX19jcGx1c3BsdXMKKworVV9OQU1FU1BB
Q0VfQkVHSU4KKworLyoqCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGRlbGV0ZXMgbWVtb3J5
IHZpYSB1cHJ2X2ZyZWUoKS4KKyAqIEZvciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50
ZXJCYXNlIGJhc2UgY2xhc3MuCisgKiBBZGRzIG9wZXJhdG9yW10gZm9yIGFycmF5IGl0ZW0gYWNj
ZXNzLgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVyQmFzZQorICovCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgorY2xhc3MgTG9jYWxNZW1vcnkgOiBwdWJsaWMgTG9jYWxQb2ludGVyQmFzZTxUPiB7Citw
dWJsaWM6CisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgdGFrZXMgb3duZXJzaGlwLgorICAg
ICAqIEBwYXJhbSBwIHNpbXBsZSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIFQgaXRlbXMgdGhhdCBp
cyBhZG9wdGVkCisgICAgICovCisgICAgZXhwbGljaXQgTG9jYWxNZW1vcnkoVCAqcD1OVUxMKSA6
IExvY2FsUG9pbnRlckJhc2U8VD4ocCkge30KKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yIGRl
bGV0ZXMgdGhlIG1lbW9yeSBpdCBvd25zLgorICAgICAqLworICAgIH5Mb2NhbE1lbW9yeSgpIHsK
KyAgICAgICAgdXBydl9mcmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7CisgICAgfQorICAg
IC8qKgorICAgICAqIERlbGV0ZXMgdGhlIGFycmF5IGl0IG93bnMsCisgICAgICogYW5kIGFkb3B0
cyAodGFrZXMgb3duZXJzaGlwIG9mKSB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0g
cCBzaW1wbGUgcG9pbnRlciB0byBhbiBhcnJheSBvZiBUIGl0ZW1zIHRoYXQgaXMgYWRvcHRlZAor
ICAgICAqLworICAgIHZvaWQgYWRvcHRJbnN0ZWFkKFQgKnApIHsKKyAgICAgICAgdXBydl9mcmVl
KExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7CisgICAgICAgIExvY2FsUG9pbnRlckJhc2U8VD46
OnB0cj1wOworICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSBpdCBvd25z
LCBhbGxvY2F0ZXMgYSBuZXcgb25lIGFuZCByZXNldCBpdHMgYnl0ZXMgdG8gMC4KKyAgICAgKiBS
ZXR1cm5zIHRoZSBuZXcgYXJyYXkgcG9pbnRlci4KKyAgICAgKiBJZiB0aGUgYWxsb2NhdGlvbiBm
YWlscywgdGhlbiB0aGUgY3VycmVudCBhcnJheSBpcyB1bmNoYW5nZWQgYW5kCisgICAgICogdGhp
cyBtZXRob2QgcmV0dXJucyBOVUxMLgorICAgICAqIEBwYXJhbSBuZXdDYXBhY2l0eSBtdXN0IGJl
ID4wCisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIGFycmF5IHBvaW50ZXIsIG9yIE5VTEwg
aWYgdGhlIGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIFQgKmFsbG9jYXRl
SW5zdGVhZEFuZFJlc2V0KGludDMyX3QgbmV3Q2FwYWNpdHk9MSk7CisgICAgLyoqCisgICAgICog
RGVsZXRlcyB0aGUgYXJyYXkgaXQgb3ducyBhbmQgYWxsb2NhdGVzIGEgbmV3IG9uZSwgY29weWlu
ZyBsZW5ndGggVCBpdGVtcy4KKyAgICAgKiBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgcG9pbnRlci4K
KyAgICAgKiBJZiB0aGUgYWxsb2NhdGlvbiBmYWlscywgdGhlbiB0aGUgY3VycmVudCBhcnJheSBp
cyB1bmNoYW5nZWQgYW5kCisgICAgICogdGhpcyBtZXRob2QgcmV0dXJucyBOVUxMLgorICAgICAq
IEBwYXJhbSBuZXdDYXBhY2l0eSBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxlbmd0aCBudW1i
ZXIgb2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRvIHRoZSBuZXcg
b25lOworICAgICAqICAgICAgICAgICAgICAgbXVzdCBiZSBubyBtb3JlIHRoYW4gdGhlIGNhcGFj
aXR5IG9mIHRoZSBvbGQgYXJyYXksCisgICAgICogICAgICAgICAgICAgICB3aGljaCB0aGUgY2Fs
bGVyIG11c3QgdHJhY2sgYmVjYXVzZSB0aGUgTG9jYWxNZW1vcnkgZG9lcyBub3QgdHJhY2sgaXQK
KyAgICAgKiBAcmV0dXJuIHRoZSBhbGxvY2F0ZWQgYXJyYXkgcG9pbnRlciwgb3IgTlVMTCBpZiB0
aGUgYWxsb2NhdGlvbiBmYWlsZWQKKyAgICAgKi8KKyAgICBpbmxpbmUgVCAqYWxsb2NhdGVJbnN0
ZWFkQW5kQ29weShpbnQzMl90IG5ld0NhcGFjaXR5PTEsIGludDMyX3QgbGVuZ3RoPTApOworICAg
IC8qKgorICAgICAqIEFycmF5IGl0ZW0gYWNjZXNzICh3cml0YWJsZSkuCisgICAgICogTm8gaW5k
ZXggYm91bmRzIGNoZWNrLgorICAgICAqIEBwYXJhbSBpIGFycmF5IGluZGV4CisgICAgICogQHJl
dHVybiByZWZlcmVuY2UgdG8gdGhlIGFycmF5IGl0ZW0KKyAgICAgKi8KKyAgICBUICZvcGVyYXRv
cltdKHB0cmRpZmZfdCBpKSBjb25zdCB7IHJldHVybiBMb2NhbFBvaW50ZXJCYXNlPFQ+OjpwdHJb
aV07IH0KK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgVCAqTG9jYWxNZW1vcnk8
VD46OmFsbG9jYXRlSW5zdGVhZEFuZFJlc2V0KGludDMyX3QgbmV3Q2FwYWNpdHkpIHsKKyAgICBp
ZihuZXdDYXBhY2l0eT4wKSB7CisgICAgICAgIFQgKnA9KFQgKil1cHJ2X21hbGxvYyhuZXdDYXBh
Y2l0eSpzaXplb2YoVCkpOworICAgICAgICBpZihwIT1OVUxMKSB7CisgICAgICAgICAgICB1cHJ2
X21lbXNldChwLCAwLCBuZXdDYXBhY2l0eSpzaXplb2YoVCkpOworICAgICAgICAgICAgdXBydl9m
cmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7CisgICAgICAgICAgICBMb2NhbFBvaW50ZXJC
YXNlPFQ+OjpwdHI9cDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcDsKKyAgICB9IGVsc2Ug
eworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKwordGVtcGxhdGU8dHlwZW5hbWUg
VD4KK2lubGluZSBUICpMb2NhbE1lbW9yeTxUPjo6YWxsb2NhdGVJbnN0ZWFkQW5kQ29weShpbnQz
Ml90IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aCkgeworICAgIGlmKG5ld0NhcGFjaXR5PjAp
IHsKKyAgICAgICAgVCAqcD0oVCAqKXVwcnZfbWFsbG9jKG5ld0NhcGFjaXR5KnNpemVvZihUKSk7
CisgICAgICAgIGlmKHAhPU5VTEwpIHsKKyAgICAgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAg
ICAgICAgICAgICAgaWYobGVuZ3RoPm5ld0NhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgICAg
IGxlbmd0aD1uZXdDYXBhY2l0eTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
dXBydl9tZW1jcHkocCwgTG9jYWxQb2ludGVyQmFzZTxUPjo6cHRyLCBsZW5ndGgqc2l6ZW9mKFQp
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHVwcnZfZnJlZShMb2NhbFBvaW50ZXJCYXNl
PFQ+OjpwdHIpOworICAgICAgICAgICAgTG9jYWxQb2ludGVyQmFzZTxUPjo6cHRyPXA7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIHA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5V
TEw7CisgICAgfQorfQorCisvKioKKyAqIFNpbXBsZSBhcnJheS9idWZmZXIgbWFuYWdlbWVudCBj
bGFzcyB1c2luZyB1cHJ2X21hbGxvYygpIGFuZCB1cHJ2X2ZyZWUoKS4KKyAqIFByb3ZpZGVzIGFu
IGludGVybmFsIGFycmF5IHdpdGggZml4ZWQgY2FwYWNpdHkuIENhbiBhbGlhcyBhbm90aGVyIGFy
cmF5CisgKiBvciBhbGxvY2F0ZSBvbmUuCisgKgorICogVGhlIGFycmF5IGFkZHJlc3MgaXMgcHJv
cGVybHkgYWxpZ25lZCBmb3IgdHlwZSBULiBJdCBtaWdodCBub3QgYmUgcHJvcGVybHkKKyAqIGFs
aWduZWQgZm9yIHR5cGVzIGxhcmdlciB0aGFuIFQgKG9yIGxhcmdlciB0aGFuIHRoZSBsYXJnZXN0
IHN1YnR5cGUgb2YgVCkuCisgKgorICogVW5saWtlIExvY2FsTWVtb3J5IGFuZCBMb2NhbEFycmF5
LCB0aGlzIGNsYXNzIG5ldmVyIGFkb3B0cworICogKHRha2VzIG93bmVyc2hpcCBvZikgYW5vdGhl
ciBhcnJheS4KKyAqLwordGVtcGxhdGU8dHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5
PgorY2xhc3MgTWF5YmVTdGFja0FycmF5IHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiBEZWZh
dWx0IGNvbnN0cnVjdG9yIGluaXRpYWxpemVzIHdpdGggaW50ZXJuYWwgVFtzdGFja0NhcGFjaXR5
XSBidWZmZXIuCisgICAgICovCisgICAgTWF5YmVTdGFja0FycmF5KCkgOiBwdHIoc3RhY2tBcnJh
eSksIGNhcGFjaXR5KHN0YWNrQ2FwYWNpdHkpLCBuZWVkVG9SZWxlYXNlKEZBTFNFKSB7fQorICAg
IC8qKgorICAgICAqIERlc3RydWN0b3IgZGVsZXRlcyB0aGUgYXJyYXkgKGlmIG93bmVkKS4KKyAg
ICAgKi8KKyAgICB+TWF5YmVTdGFja0FycmF5KCkgeyByZWxlYXNlQXJyYXkoKTsgfQorICAgIC8q
KgorICAgICAqIFJldHVybnMgdGhlIGFycmF5IGNhcGFjaXR5IChudW1iZXIgb2YgVCBpdGVtcyku
CisgICAgICogQHJldHVybiBhcnJheSBjYXBhY2l0eQorICAgICAqLworICAgIGludDMyX3QgZ2V0
Q2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBjYXBhY2l0eTsgfQorICAgIC8qKgorICAgICAqIEFj
Y2VzcyB3aXRob3V0IG93bmVyc2hpcCBjaGFuZ2UuCisgICAgICogQHJldHVybiB0aGUgYXJyYXkg
cG9pbnRlcgorICAgICAqLworICAgIFQgKmdldEFsaWFzKCkgY29uc3QgeyByZXR1cm4gcHRyOyB9
CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgYXJyYXkgbGltaXQuIFNpbXBsZSBjb252ZW5p
ZW5jZSBtZXRob2QuCisgICAgICogQHJldHVybiBnZXRBbGlhcygpK2dldENhcGFjaXR5KCkKKyAg
ICAgKi8KKyAgICBUICpnZXRBcnJheUxpbWl0KCkgY29uc3QgeyByZXR1cm4gZ2V0QWxpYXMoKStj
YXBhY2l0eTsgfQorICAgIC8vIE5vICJvcGVyYXRvciBUICooKSBjb25zdCIgYmVjYXVzZSB0aGF0
IGNhbiBtYWtlCisgICAgLy8gZXhwcmVzc2lvbnMgbGlrZSBtYnNbaW5kZXhdIGFtYmlndW91cyBm
b3Igc29tZSBjb21waWxlcnMuCisgICAgLyoqCisgICAgICogQXJyYXkgaXRlbSBhY2Nlc3MgKGNv
bnN0KS4KKyAgICAgKiBObyBpbmRleCBib3VuZHMgY2hlY2suCisgICAgICogQHBhcmFtIGkgYXJy
YXkgaW5kZXgKKyAgICAgKiBAcmV0dXJuIHJlZmVyZW5jZSB0byB0aGUgYXJyYXkgaXRlbQorICAg
ICAqLworICAgIGNvbnN0IFQgJm9wZXJhdG9yW10ocHRyZGlmZl90IGkpIGNvbnN0IHsgcmV0dXJu
IHB0cltpXTsgfQorICAgIC8qKgorICAgICAqIEFycmF5IGl0ZW0gYWNjZXNzICh3cml0YWJsZSku
CisgICAgICogTm8gaW5kZXggYm91bmRzIGNoZWNrLgorICAgICAqIEBwYXJhbSBpIGFycmF5IGlu
ZGV4CisgICAgICogQHJldHVybiByZWZlcmVuY2UgdG8gdGhlIGFycmF5IGl0ZW0KKyAgICAgKi8K
KyAgICBUICZvcGVyYXRvcltdKHB0cmRpZmZfdCBpKSB7IHJldHVybiBwdHJbaV07IH0KKyAgICAv
KioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSAoaWYgb3duZWQpIGFuZCBhbGlhc2VzIGFub3Ro
ZXIgb25lLCBubyB0cmFuc2ZlciBvZiBvd25lcnNoaXAuCisgICAgICogSWYgdGhlIGFyZ3VtZW50
cyBhcmUgaWxsZWdhbCwgdGhlbiB0aGUgY3VycmVudCBhcnJheSBpcyB1bmNoYW5nZWQuCisgICAg
ICogQHBhcmFtIG90aGVyQXJyYXkgbXVzdCBub3QgYmUgTlVMTAorICAgICAqIEBwYXJhbSBvdGhl
ckNhcGFjaXR5IG11c3QgYmUgPjAKKyAgICAgKi8KKyAgICB2b2lkIGFsaWFzSW5zdGVhZChUICpv
dGhlckFycmF5LCBpbnQzMl90IG90aGVyQ2FwYWNpdHkpIHsKKyAgICAgICAgaWYob3RoZXJBcnJh
eSE9TlVMTCAmJiBvdGhlckNhcGFjaXR5PjApIHsKKyAgICAgICAgICAgIHJlbGVhc2VBcnJheSgp
OworICAgICAgICAgICAgcHRyPW90aGVyQXJyYXk7CisgICAgICAgICAgICBjYXBhY2l0eT1vdGhl
ckNhcGFjaXR5OworICAgICAgICAgICAgbmVlZFRvUmVsZWFzZT1GQUxTRTsKKyAgICAgICAgfQor
ICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBhcnJheSAoaWYgb3duZWQpIGFuZCBh
bGxvY2F0ZXMgYSBuZXcgb25lLCBjb3B5aW5nIGxlbmd0aCBUIGl0ZW1zLgorICAgICAqIFJldHVy
bnMgdGhlIG5ldyBhcnJheSBwb2ludGVyLgorICAgICAqIElmIHRoZSBhbGxvY2F0aW9uIGZhaWxz
LCB0aGVuIHRoZSBjdXJyZW50IGFycmF5IGlzIHVuY2hhbmdlZCBhbmQKKyAgICAgKiB0aGlzIG1l
dGhvZCByZXR1cm5zIE5VTEwuCisgICAgICogQHBhcmFtIG5ld0NhcGFjaXR5IGNhbiBiZSBsZXNz
IHRoYW4gb3IgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGNhcGFjaXR5OworICAgICAqICAgICAg
ICAgICAgICAgICAgICBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxlbmd0aCBudW1iZXIgb2Yg
VCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRvIHRoZSBuZXcgb25lCisg
ICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIGFycmF5IHBvaW50ZXIsIG9yIE5VTEwgaWYgdGhl
IGFsbG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIFQgKnJlc2l6ZShpbnQzMl90
IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aD0wKTsKKyAgICAvKioKKyAgICAgKiBHaXZlcyB1
cCBvd25lcnNoaXAgb2YgdGhlIGFycmF5IGlmIG93bmVkLCBvciBlbHNlIGNsb25lcyBpdCwKKyAg
ICAgKiBjb3B5aW5nIGxlbmd0aCBUIGl0ZW1zOyByZXNldHMgaXRzZWxmIHRvIHRoZSBpbnRlcm5h
bCBzdGFjayBhcnJheS4KKyAgICAgKiBSZXR1cm5zIE5VTEwgaWYgdGhlIGFsbG9jYXRpb24gZmFp
bGVkLgorICAgICAqIEBwYXJhbSBsZW5ndGggbnVtYmVyIG9mIFQgaXRlbXMgdG8gY29weSB3aGVu
IGNsb25pbmcsCisgICAgICogICAgICAgIGFuZCBjYXBhY2l0eSBvZiB0aGUgY2xvbmUgd2hlbiBj
bG9uaW5nCisgICAgICogQHBhcmFtIHJlc3VsdENhcGFjaXR5IHdpbGwgYmUgc2V0IHRvIHRoZSBy
ZXR1cm5lZCBhcnJheSdzIGNhcGFjaXR5IChvdXRwdXQtb25seSkKKyAgICAgKiBAcmV0dXJuIHRo
ZSBhcnJheSBwb2ludGVyOworICAgICAqICAgICAgICAgY2FsbGVyIGJlY29tZXMgcmVzcG9uc2li
bGUgZm9yIGRlbGV0aW5nIHRoZSBhcnJheQorICAgICAqLworICAgIGlubGluZSBUICpvcnBoYW5P
ckNsb25lKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90ICZyZXN1bHRDYXBhY2l0eSk7Citwcml2YXRl
OgorICAgIFQgKnB0cjsKKyAgICBpbnQzMl90IGNhcGFjaXR5OworICAgIFVCb29sIG5lZWRUb1Jl
bGVhc2U7CisgICAgVCBzdGFja0FycmF5W3N0YWNrQ2FwYWNpdHldOworICAgIHZvaWQgcmVsZWFz
ZUFycmF5KCkgeworICAgICAgICBpZihuZWVkVG9SZWxlYXNlKSB7CisgICAgICAgICAgICB1cHJ2
X2ZyZWUocHRyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBObyBjb21wYXJpc29uIG9wZXJh
dG9ycyB3aXRoIG90aGVyIE1heWJlU3RhY2tBcnJheSdzLiAqLworICAgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1cm4gRkFMU0U7fQorICAg
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1
cm4gVFJVRTt9CisgICAgLyogTm8gb3duZXJzaGlwIHRyYW5zZmVyOiBObyBjb3B5IGNvbnN0cnVj
dG9yLCBubyBhc3NpZ25tZW50IG9wZXJhdG9yLiAqLworICAgIE1heWJlU3RhY2tBcnJheShjb25z
dCBNYXliZVN0YWNrQXJyYXkgJiAvKm90aGVyKi8pIHt9CisgICAgdm9pZCBvcGVyYXRvcj0oY29u
c3QgTWF5YmVTdGFja0FycmF5ICYgLypvdGhlciovKSB7fQorCisgICAgLy8gTm8gaGVhcCBhbGxv
Y2F0aW9uLiBVc2Ugb25seSBvbiB0aGUgc3RhY2suCisgICAgLy8gICAoRGVjbGFyaW5nIHRoZXNl
IGZ1bmN0aW9ucyBwcml2YXRlIHRyaWdnZXJzIGEgY2FzY2FkZSBvZiBwcm9ibGVtczoKKyAgICAv
LyAgICAgIE1TVkMgaW5zaXN0cyBvbiBleHBvcnRpbmcgYW4gaW5zdGFudGlhdGlvbiBvZiBNYXli
ZVN0YWNrQXJyYXksIHdoaWNoCisgICAgLy8gICAgICByZXF1aXJlcyB0aGF0IGFsbCBmdW5jdGlv
bnMgYmUgZGVmaW5lZC4KKyAgICAvLyAgICAgIEFuIGVtcHR5IGltcGxlbWVudGF0aW9uIG9mIG5l
dygpIGlzIHJlamVjdGVkLCBpdCBtdXN0IHJldHVybiBhIHZhbHVlLgorICAgIC8vICAgICAgUmV0
dXJuaW5nIE5VTEwgaXMgcmVqZWN0ZWQgYnkgZ2NjIGZvciBvcGVyYXRvciBuZXcuCisgICAgLy8g
ICAgICBUaGUgZXhwZWRpZW50IHRoaW5nIGlzIGp1c3Qgbm90IHRvIG92ZXJyaWRlIG9wZXJhdG9y
IG5ldy4KKyAgICAvLyAgICAgIFdoaWxlIHJlbGF0aXZlbHkgcG9pbnRsZXNzLCBoZWFwIGFsbG9j
YXRlZCBpbnN0YW5jZXMgd2lsbCBmdW5jdGlvbi4KKyAgICAvLyBzdGF0aWMgdm9pZCAqIFVfRVhQ
T1JUMiBvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpOyAKKyAgICAvLyBzdGF0aWMgdm9pZCAqIFVf
RVhQT1JUMiBvcGVyYXRvciBuZXdbXShzaXplX3Qgc2l6ZSk7CisjaWYgVV9IQVZFX1BMQUNFTUVO
VF9ORVcKKyAgICAvLyBzdGF0aWMgdm9pZCAqIFVfRVhQT1JUMiBvcGVyYXRvciBuZXcoc2l6ZV90
LCB2b2lkICpwdHIpOworI2VuZGlmCit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBpbnQzMl90
IHN0YWNrQ2FwYWNpdHk+CitpbmxpbmUgVCAqTWF5YmVTdGFja0FycmF5PFQsIHN0YWNrQ2FwYWNp
dHk+OjpyZXNpemUoaW50MzJfdCBuZXdDYXBhY2l0eSwgaW50MzJfdCBsZW5ndGgpIHsKKyAgICBp
ZihuZXdDYXBhY2l0eT4wKSB7CisjaWYgVV9ERUJVRyAmJiBkZWZpbmVkKFVQUlZfTUFMTE9DX0NP
VU5UKQorICAgICAgOjpmcHJpbnRmKDo6c3RkZXJyLCJNYXliZVN0YWNBcnJheSAocmVzaXplKSBh
bGxvYyAlZCAqICVsdVxuIiwgbmV3Q2FwYWNpdHksc2l6ZW9mKFQpKTsKKyNlbmRpZgorICAgICAg
ICBUICpwPShUICopdXBydl9tYWxsb2MobmV3Q2FwYWNpdHkqc2l6ZW9mKFQpKTsKKyAgICAgICAg
aWYocCE9TlVMTCkgeworICAgICAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAgICAgICAg
ICBpZihsZW5ndGg+Y2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPWNhcGFj
aXR5OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZihsZW5ndGg+bmV3Q2Fw
YWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPW5ld0NhcGFjaXR5OworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1cHJ2X21lbWNweShwLCBwdHIsIGxlbmd0aCpz
aXplb2YoVCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVsZWFzZUFycmF5KCk7Cisg
ICAgICAgICAgICBwdHI9cDsKKyAgICAgICAgICAgIGNhcGFjaXR5PW5ld0NhcGFjaXR5OworICAg
ICAgICAgICAgbmVlZFRvUmVsZWFzZT1UUlVFOworICAgICAgICB9CisgICAgICAgIHJldHVybiBw
OworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKwordGVtcGxh
dGU8dHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5PgoraW5saW5lIFQgKk1heWJlU3Rh
Y2tBcnJheTxULCBzdGFja0NhcGFjaXR5Pjo6b3JwaGFuT3JDbG9uZShpbnQzMl90IGxlbmd0aCwg
aW50MzJfdCAmcmVzdWx0Q2FwYWNpdHkpIHsKKyAgICBUICpwOworICAgIGlmKG5lZWRUb1JlbGVh
c2UpIHsKKyAgICAgICAgcD1wdHI7CisgICAgfSBlbHNlIGlmKGxlbmd0aDw9MCkgeworICAgICAg
ICByZXR1cm4gTlVMTDsKKyAgICB9IGVsc2UgeworICAgICAgICBpZihsZW5ndGg+Y2FwYWNpdHkp
IHsKKyAgICAgICAgICAgIGxlbmd0aD1jYXBhY2l0eTsKKyAgICAgICAgfQorICAgICAgICBwPShU
ICopdXBydl9tYWxsb2MobGVuZ3RoKnNpemVvZihUKSk7CisjaWYgVV9ERUJVRyAmJiBkZWZpbmVk
KFVQUlZfTUFMTE9DX0NPVU5UKQorICAgICAgOjpmcHJpbnRmKDo6c3RkZXJyLCJNYXliZVN0YWNB
cnJheSAob3JwaGFuKSBhbGxvYyAlZCAqICVsdVxuIiwgbGVuZ3RoLHNpemVvZihUKSk7CisjZW5k
aWYKKyAgICAgICAgaWYocD09TlVMTCkgeworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAg
ICAgIH0KKyAgICAgICAgdXBydl9tZW1jcHkocCwgcHRyLCBsZW5ndGgqc2l6ZW9mKFQpKTsKKyAg
ICB9CisgICAgcmVzdWx0Q2FwYWNpdHk9bGVuZ3RoOworICAgIHB0cj1zdGFja0FycmF5OworICAg
IGNhcGFjaXR5PXN0YWNrQ2FwYWNpdHk7CisgICAgbmVlZFRvUmVsZWFzZT1GQUxTRTsKKyAgICBy
ZXR1cm4gcDsKK30KKworLyoqCisgKiBWYXJpYW50IG9mIE1heWJlU3RhY2tBcnJheSB0aGF0IGFs
bG9jYXRlcyBhIGhlYWRlciBzdHJ1Y3QgYW5kIGFuIGFycmF5CisgKiBpbiBvbmUgY29udGlndW91
cyBtZW1vcnkgYmxvY2ssIHVzaW5nIHVwcnZfbWFsbG9jKCkgYW5kIHVwcnZfZnJlZSgpLgorICog
UHJvdmlkZXMgaW50ZXJuYWwgbWVtb3J5IHdpdGggZml4ZWQgYXJyYXkgY2FwYWNpdHkuIENhbiBh
bGlhcyBhbm90aGVyIG1lbW9yeQorICogYmxvY2sgb3IgYWxsb2NhdGUgb25lLgorICogVGhlIHN0
YWNrQ2FwYWNpdHkgaXMgdGhlIG51bWJlciBvZiBUIGl0ZW1zIGluIHRoZSBpbnRlcm5hbCBtZW1v
cnksCisgKiBub3QgY291bnRpbmcgdGhlIEggaGVhZGVyLgorICogVW5saWtlIExvY2FsTWVtb3J5
IGFuZCBMb2NhbEFycmF5LCB0aGlzIGNsYXNzIG5ldmVyIGFkb3B0cworICogKHRha2VzIG93bmVy
c2hpcCBvZikgYW5vdGhlciBtZW1vcnkgYmxvY2suCisgKi8KK3RlbXBsYXRlPHR5cGVuYW1lIEgs
IHR5cGVuYW1lIFQsIGludDMyX3Qgc3RhY2tDYXBhY2l0eT4KK2NsYXNzIE1heWJlU3RhY2tIZWFk
ZXJBbmRBcnJheSB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogRGVmYXVsdCBjb25zdHJ1Y3Rv
ciBpbml0aWFsaXplcyB3aXRoIGludGVybmFsIEgrVFtzdGFja0NhcGFjaXR5XSBidWZmZXIuCisg
ICAgICovCisgICAgTWF5YmVTdGFja0hlYWRlckFuZEFycmF5KCkgOiBwdHIoJnN0YWNrSGVhZGVy
KSwgY2FwYWNpdHkoc3RhY2tDYXBhY2l0eSksIG5lZWRUb1JlbGVhc2UoRkFMU0UpIHt9CisgICAg
LyoqCisgICAgICogRGVzdHJ1Y3RvciBkZWxldGVzIHRoZSBtZW1vcnkgKGlmIG93bmVkKS4KKyAg
ICAgKi8KKyAgICB+TWF5YmVTdGFja0hlYWRlckFuZEFycmF5KCkgeyByZWxlYXNlTWVtb3J5KCk7
IH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhcnJheSBjYXBhY2l0eSAobnVtYmVyIG9m
IFQgaXRlbXMpLgorICAgICAqIEByZXR1cm4gYXJyYXkgY2FwYWNpdHkKKyAgICAgKi8KKyAgICBp
bnQzMl90IGdldENhcGFjaXR5KCkgY29uc3QgeyByZXR1cm4gY2FwYWNpdHk7IH0KKyAgICAvKioK
KyAgICAgKiBBY2Nlc3Mgd2l0aG91dCBvd25lcnNoaXAgY2hhbmdlLgorICAgICAqIEByZXR1cm4g
dGhlIGhlYWRlciBwb2ludGVyCisgICAgICovCisgICAgSCAqZ2V0QWxpYXMoKSBjb25zdCB7IHJl
dHVybiBwdHI7IH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhcnJheSBzdGFydC4KKyAg
ICAgKiBAcmV0dXJuIGFycmF5IHN0YXJ0LCBzYW1lIGFkZHJlc3MgYXMgZ2V0QWxpYXMoKSsxCisg
ICAgICovCisgICAgVCAqZ2V0QXJyYXlTdGFydCgpIGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8VCAqPihnZXRBbGlhcygpKzEpOyB9CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUg
YXJyYXkgbGltaXQuCisgICAgICogQHJldHVybiBhcnJheSBsaW1pdAorICAgICAqLworICAgIFQg
KmdldEFycmF5TGltaXQoKSBjb25zdCB7IHJldHVybiBnZXRBcnJheVN0YXJ0KCkrY2FwYWNpdHk7
IH0KKyAgICAvKioKKyAgICAgKiBBY2Nlc3Mgd2l0aG91dCBvd25lcnNoaXAgY2hhbmdlLiBTYW1l
IGFzIGdldEFsaWFzKCkuCisgICAgICogQSBjbGFzcyBpbnN0YW5jZSBjYW4gYmUgdXNlZCBkaXJl
Y3RseSBpbiBleHByZXNzaW9ucyB0aGF0IHRha2UgYSBUICouCisgICAgICogQHJldHVybiB0aGUg
aGVhZGVyIHBvaW50ZXIKKyAgICAgKi8KKyAgICBvcGVyYXRvciBIICooKSBjb25zdCB7IHJldHVy
biBwdHI7IH0KKyAgICAvKioKKyAgICAgKiBBcnJheSBpdGVtIGFjY2VzcyAod3JpdGFibGUpLgor
ICAgICAqIE5vIGluZGV4IGJvdW5kcyBjaGVjay4KKyAgICAgKiBAcGFyYW0gaSBhcnJheSBpbmRl
eAorICAgICAqIEByZXR1cm4gcmVmZXJlbmNlIHRvIHRoZSBhcnJheSBpdGVtCisgICAgICovCisg
ICAgVCAmb3BlcmF0b3JbXShwdHJkaWZmX3QgaSkgeyByZXR1cm4gZ2V0QXJyYXlTdGFydCgpW2ld
OyB9CisgICAgLyoqCisgICAgICogRGVsZXRlcyB0aGUgbWVtb3J5IGJsb2NrIChpZiBvd25lZCkg
YW5kIGFsaWFzZXMgYW5vdGhlciBvbmUsIG5vIHRyYW5zZmVyIG9mIG93bmVyc2hpcC4KKyAgICAg
KiBJZiB0aGUgYXJndW1lbnRzIGFyZSBpbGxlZ2FsLCB0aGVuIHRoZSBjdXJyZW50IG1lbW9yeSBp
cyB1bmNoYW5nZWQuCisgICAgICogQHBhcmFtIG90aGVyQXJyYXkgbXVzdCBub3QgYmUgTlVMTAor
ICAgICAqIEBwYXJhbSBvdGhlckNhcGFjaXR5IG11c3QgYmUgPjAKKyAgICAgKi8KKyAgICB2b2lk
IGFsaWFzSW5zdGVhZChIICpvdGhlck1lbW9yeSwgaW50MzJfdCBvdGhlckNhcGFjaXR5KSB7Cisg
ICAgICAgIGlmKG90aGVyTWVtb3J5IT1OVUxMICYmIG90aGVyQ2FwYWNpdHk+MCkgeworICAgICAg
ICAgICAgcmVsZWFzZU1lbW9yeSgpOworICAgICAgICAgICAgcHRyPW90aGVyTWVtb3J5OworICAg
ICAgICAgICAgY2FwYWNpdHk9b3RoZXJDYXBhY2l0eTsKKyAgICAgICAgICAgIG5lZWRUb1JlbGVh
c2U9RkFMU0U7CisgICAgICAgIH0KKyAgICB9CisgICAgLyoqCisgICAgICogRGVsZXRlcyB0aGUg
bWVtb3J5IGJsb2NrIChpZiBvd25lZCkgYW5kIGFsbG9jYXRlcyBhIG5ldyBvbmUsCisgICAgICog
Y29weWluZyB0aGUgaGVhZGVyIGFuZCBsZW5ndGggVCBhcnJheSBpdGVtcy4KKyAgICAgKiBSZXR1
cm5zIHRoZSBuZXcgaGVhZGVyIHBvaW50ZXIuCisgICAgICogSWYgdGhlIGFsbG9jYXRpb24gZmFp
bHMsIHRoZW4gdGhlIGN1cnJlbnQgbWVtb3J5IGlzIHVuY2hhbmdlZCBhbmQKKyAgICAgKiB0aGlz
IG1ldGhvZCByZXR1cm5zIE5VTEwuCisgICAgICogQHBhcmFtIG5ld0NhcGFjaXR5IGNhbiBiZSBs
ZXNzIHRoYW4gb3IgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50IGNhcGFjaXR5OworICAgICAqICAg
ICAgICAgICAgICAgICAgICBtdXN0IGJlID4wCisgICAgICogQHBhcmFtIGxlbmd0aCBudW1iZXIg
b2YgVCBpdGVtcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgb2xkIGFycmF5IHRvIHRoZSBuZXcgb25l
CisgICAgICogQHJldHVybiB0aGUgYWxsb2NhdGVkIHBvaW50ZXIsIG9yIE5VTEwgaWYgdGhlIGFs
bG9jYXRpb24gZmFpbGVkCisgICAgICovCisgICAgaW5saW5lIEggKnJlc2l6ZShpbnQzMl90IG5l
d0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aD0wKTsKKyAgICAvKioKKyAgICAgKiBHaXZlcyB1cCBv
d25lcnNoaXAgb2YgdGhlIG1lbW9yeSBpZiBvd25lZCwgb3IgZWxzZSBjbG9uZXMgaXQsCisgICAg
ICogY29weWluZyB0aGUgaGVhZGVyIGFuZCBsZW5ndGggVCBhcnJheSBpdGVtczsgcmVzZXRzIGl0
c2VsZiB0byB0aGUgaW50ZXJuYWwgbWVtb3J5LgorICAgICAqIFJldHVybnMgTlVMTCBpZiB0aGUg
YWxsb2NhdGlvbiBmYWlsZWQuCisgICAgICogQHBhcmFtIGxlbmd0aCBudW1iZXIgb2YgVCBpdGVt
cyB0byBjb3B5IHdoZW4gY2xvbmluZywKKyAgICAgKiAgICAgICAgYW5kIGFycmF5IGNhcGFjaXR5
IG9mIHRoZSBjbG9uZSB3aGVuIGNsb25pbmcKKyAgICAgKiBAcGFyYW0gcmVzdWx0Q2FwYWNpdHkg
d2lsbCBiZSBzZXQgdG8gdGhlIHJldHVybmVkIGFycmF5J3MgY2FwYWNpdHkgKG91dHB1dC1vbmx5
KQorICAgICAqIEByZXR1cm4gdGhlIGhlYWRlciBwb2ludGVyOworICAgICAqICAgICAgICAgY2Fs
bGVyIGJlY29tZXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSBhcnJheQorICAgICAqLwor
ICAgIGlubGluZSBIICpvcnBoYW5PckNsb25lKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90ICZyZXN1
bHRDYXBhY2l0eSk7Citwcml2YXRlOgorICAgIEggKnB0cjsKKyAgICBpbnQzMl90IGNhcGFjaXR5
OworICAgIFVCb29sIG5lZWRUb1JlbGVhc2U7CisgICAgLy8gc3RhY2tIZWFkZXIgbXVzdCBwcmVj
ZWRlIHN0YWNrQXJyYXkgaW1tZWRpYXRlbHkuCisgICAgSCBzdGFja0hlYWRlcjsKKyAgICBUIHN0
YWNrQXJyYXlbc3RhY2tDYXBhY2l0eV07CisgICAgdm9pZCByZWxlYXNlTWVtb3J5KCkgeworICAg
ICAgICBpZihuZWVkVG9SZWxlYXNlKSB7CisgICAgICAgICAgICB1cHJ2X2ZyZWUocHRyKTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICAvKiBObyBjb21wYXJpc29uIG9wZXJhdG9ycyB3aXRoIG90aGVy
IE1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSdzLiAqLworICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgJiAvKm90aGVyKi8pIHtyZXR1cm4gRkFMU0U7fQor
ICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgJiAvKm90
aGVyKi8pIHtyZXR1cm4gVFJVRTt9CisgICAgLyogTm8gb3duZXJzaGlwIHRyYW5zZmVyOiBObyBj
b3B5IGNvbnN0cnVjdG9yLCBubyBhc3NpZ25tZW50IG9wZXJhdG9yLiAqLworICAgIE1heWJlU3Rh
Y2tIZWFkZXJBbmRBcnJheShjb25zdCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgJiAvKm90aGVy
Ki8pIHt9CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgTWF5YmVTdGFja0hlYWRlckFuZEFycmF5
ICYgLypvdGhlciovKSB7fQorCisgICAgLy8gTm8gaGVhcCBhbGxvY2F0aW9uLiBVc2Ugb25seSBv
biB0aGUgc3RhY2suCisgICAgLy8gICAoRGVjbGFyaW5nIHRoZXNlIGZ1bmN0aW9ucyBwcml2YXRl
IHRyaWdnZXJzIGEgY2FzY2FkZSBvZiBwcm9ibGVtczsKKyAgICAvLyAgICBzZWUgdGhlIE1heWJl
U3RhY2tBcnJheSBjbGFzcyBmb3IgZGV0YWlscy4pCisgICAgLy8gc3RhdGljIHZvaWQgKiBVX0VY
UE9SVDIgb3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKTsgCisgICAgLy8gc3RhdGljIHZvaWQgKiBV
X0VYUE9SVDIgb3BlcmF0b3IgbmV3W10oc2l6ZV90IHNpemUpOworI2lmIFVfSEFWRV9QTEFDRU1F
TlRfTkVXCisgICAgLy8gc3RhdGljIHZvaWQgKiBVX0VYUE9SVDIgb3BlcmF0b3IgbmV3KHNpemVf
dCwgdm9pZCAqcHRyKTsKKyNlbmRpZgorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgSCwgdHlwZW5h
bWUgVCwgaW50MzJfdCBzdGFja0NhcGFjaXR5PgoraW5saW5lIEggKk1heWJlU3RhY2tIZWFkZXJB
bmRBcnJheTxILCBULCBzdGFja0NhcGFjaXR5Pjo6cmVzaXplKGludDMyX3QgbmV3Q2FwYWNpdHks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50MzJfdCBsZW5ndGgpIHsKKyAgICBpZihuZXdDYXBhY2l0eT49MCkgeworI2lm
IFVfREVCVUcgJiYgZGVmaW5lZChVUFJWX01BTExPQ19DT1VOVCkKKyAgICAgIDo6ZnByaW50Zig6
OnN0ZGVyciwiTWF5YmVTdGFja0hlYWRlckFuZEFycmF5IGFsbG9jICVkICsgJWQgKiAldWxcbiIs
IHNpemVvZihIKSxuZXdDYXBhY2l0eSxzaXplb2YoVCkpOworI2VuZGlmCisgICAgICAgIEggKnA9
KEggKil1cHJ2X21hbGxvYyhzaXplb2YoSCkrbmV3Q2FwYWNpdHkqc2l6ZW9mKFQpKTsKKyAgICAg
ICAgaWYocCE9TlVMTCkgeworICAgICAgICAgICAgaWYobGVuZ3RoPDApIHsKKyAgICAgICAgICAg
ICAgICBsZW5ndGg9MDsKKyAgICAgICAgICAgIH0gZWxzZSBpZihsZW5ndGg+MCkgeworICAgICAg
ICAgICAgICAgIGlmKGxlbmd0aD5jYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBsZW5n
dGg9Y2FwYWNpdHk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGxlbmd0
aD5uZXdDYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBsZW5ndGg9bmV3Q2FwYWNpdHk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdXBydl9tZW1j
cHkocCwgcHRyLCBzaXplb2YoSCkrbGVuZ3RoKnNpemVvZihUKSk7CisgICAgICAgICAgICByZWxl
YXNlTWVtb3J5KCk7CisgICAgICAgICAgICBwdHI9cDsKKyAgICAgICAgICAgIGNhcGFjaXR5PW5l
d0NhcGFjaXR5OworICAgICAgICAgICAgbmVlZFRvUmVsZWFzZT1UUlVFOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiBwOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAg
IH0KK30KKwordGVtcGxhdGU8dHlwZW5hbWUgSCwgdHlwZW5hbWUgVCwgaW50MzJfdCBzdGFja0Nh
cGFjaXR5PgoraW5saW5lIEggKk1heWJlU3RhY2tIZWFkZXJBbmRBcnJheTxILCBULCBzdGFja0Nh
cGFjaXR5Pjo6b3JwaGFuT3JDbG9uZShpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
MzJfdCAmcmVzdWx0Q2FwYWNpdHkpIHsKKyAgICBIICpwOworICAgIGlmKG5lZWRUb1JlbGVhc2Up
IHsKKyAgICAgICAgcD1wdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYobGVuZ3RoPDApIHsK
KyAgICAgICAgICAgIGxlbmd0aD0wOworICAgICAgICB9IGVsc2UgaWYobGVuZ3RoPmNhcGFjaXR5
KSB7CisgICAgICAgICAgICBsZW5ndGg9Y2FwYWNpdHk7CisgICAgICAgIH0KKyNpZiBVX0RFQlVH
ICYmIGRlZmluZWQoVVBSVl9NQUxMT0NfQ09VTlQpCisgICAgICA6OmZwcmludGYoOjpzdGRlcnIs
Ik1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSAob3JwaGFuKSBhbGxvYyAldWwgKyAlZCAqICVsdVxu
Iiwgc2l6ZW9mKEgpLGxlbmd0aCxzaXplb2YoVCkpOworI2VuZGlmCisgICAgICAgIHA9KEggKil1
cHJ2X21hbGxvYyhzaXplb2YoSCkrbGVuZ3RoKnNpemVvZihUKSk7CisgICAgICAgIGlmKHA9PU5V
TEwpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIHVwcnZf
bWVtY3B5KHAsIHB0ciwgc2l6ZW9mKEgpK2xlbmd0aCpzaXplb2YoVCkpOworICAgIH0KKyAgICBy
ZXN1bHRDYXBhY2l0eT1sZW5ndGg7CisgICAgcHRyPSZzdGFja0hlYWRlcjsKKyAgICBjYXBhY2l0
eT1zdGFja0NhcGFjaXR5OworICAgIG5lZWRUb1JlbGVhc2U9RkFMU0U7CisgICAgcmV0dXJuIHA7
Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYgIC8qIF9fY3BsdXNwbHVzICovCisjZW5k
aWYgIC8qIENNRU1PUllfSCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL2dlbmJyay9jc3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvZ2VuYnJrL2NzdHJpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGI2OGZmYWJiMjZiY2I5MTU2MjZl
ZDRkMTE1ZTk0MmQzN2JiNzcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL2dlbmJyay9jc3RyaW5nLmgKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxMiwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMu
ICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZp
bGUgQ1NUUklORy5ICisqCisqIENvbnRhaW5zIENTdHJpbmcgaW50ZXJmYWNlCisqCisqIEBhdXRo
b3IgICAgICAgSGVsZW5hIFNoaWgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAg
RGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICA2LzE3Lzk4ICAgICBoc2hp
aCAgICAgICBDcmVhdGVkLgorKiAgMDUvMDMvOTkgICAgIHN0ZXBoZW4gICAgIENoYW5nZWQgZnJv
bSBmdW5jdGlvbnMgdG8gbWFjcm9zLgorKiAgMDYvMTQvOTkgICAgIHN0ZXBoZW4gICAgIEFkZGVk
IGljdV9zdHJuY2F0LCBpY3Vfc3RybmNtcCwgaWN1X3RvbG93ZXIKKyoKKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorKi8KKworI2lmbmRlZiBDU1RSSU5HX0gKKyNkZWZpbmUgQ1NUUklOR19IIDEKKwor
I2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAiY21lbW9yeS5oIgorI2luY2x1
ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisK
KyNkZWZpbmUgdXBydl9zdHJjcHkoZHN0LCBzcmMpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSAg
c3RyY3B5KGRzdCwgc3JjKQorI2RlZmluZSB1cHJ2X3N0cmxlbihzdHIpIFVfU1RBTkRBUkRfQ1BQ
X05BTUVTUEFDRSBzdHJsZW4oc3RyKQorI2RlZmluZSB1cHJ2X3N0cmNtcChzMSwgczIpIFVfU1RB
TkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJjbXAoczEsIHMyKQorI2RlZmluZSB1cHJ2X3N0cmNhdChk
c3QsIHNyYykgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cmNhdChkc3QsIHNyYykKKyNkZWZp
bmUgdXBydl9zdHJjaHIocywgYykgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cmNocihzLCBj
KQorI2RlZmluZSB1cHJ2X3N0cnN0cihzLCBjKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3Ry
c3RyKHMsIGMpCisjZGVmaW5lIHVwcnZfc3RycmNocihzLCBjKSBVX1NUQU5EQVJEX0NQUF9OQU1F
U1BBQ0Ugc3RycmNocihzLCBjKQorCisjaWYgVV9ERUJVRworCisjZGVmaW5lIHVwcnZfc3RybmNw
eShkc3QsIHNyYywgc2l6ZSkgKCBcCisgICAgdXBydl9jaGVja1ZhbGlkTWVtb3J5KHNyYywgMSks
IFwKKyAgICBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RybmNweShkc3QsIHNyYywgc2l6ZSkp
CisjZGVmaW5lIHVwcnZfc3RybmNtcChzMSwgczIsIG4pICggXAorICAgIHVwcnZfY2hlY2tWYWxp
ZE1lbW9yeShzMSwgMSksIFwKKyAgICB1cHJ2X2NoZWNrVmFsaWRNZW1vcnkoczIsIDEpLCBcCisg
ICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cm5jbXAoczEsIHMyLCBuKSkKKyNkZWZpbmUg
dXBydl9zdHJuY2F0KGRzdCwgc3JjLCBuKSAoIFwKKyAgICB1cHJ2X2NoZWNrVmFsaWRNZW1vcnko
c3JjLCAxKSwgXAorICAgIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJuY2F0KGRzdCwgc3Jj
LCBuKSkKKworI2Vsc2UKKworI2RlZmluZSB1cHJ2X3N0cm5jcHkoZHN0LCBzcmMsIHNpemUpIFVf
U1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJuY3B5KGRzdCwgc3JjLCBzaXplKQorI2RlZmluZSB1
cHJ2X3N0cm5jbXAoczEsIHMyLCBuKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RybmNtcChz
MSwgczIsIG4pCisjZGVmaW5lIHVwcnZfc3RybmNhdChkc3QsIHNyYywgbikgVV9TVEFOREFSRF9D
UFBfTkFNRVNQQUNFIHN0cm5jYXQoZHN0LCBzcmMsIG4pCisKKyNlbmRpZiAgLyogVV9ERUJVRyAq
LworCisvKioKKyAqIElzIGMgYW4gQVNDSUktcmVwZXJ0b2lyZSBsZXR0ZXIgYS16IG9yIEEtWj8K
KyAqIE5vdGU6IFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBzcGVjaWZpYyB0byB3aGV0aGVyIElDVSBp
cyBjb21waWxlZCBmb3IKKyAqIGFuIEFTQ0lJLWJhc2VkIG9yIEVCQ0RJQy1iYXNlZCBtYWNoaW5l
LiBUaGVyZSBqdXN0IGRvZXMgbm90IHNlZW0gdG8gYmUgYSBiZXR0ZXIgbmFtZSBmb3IgdGhpcy4K
KyAqLworVV9DQVBJIFVCb29sIFVfRVhQT1JUMgordXBydl9pc0FTQ0lJTGV0dGVyKGNoYXIgYyk7
CisKK1VfQ0FQSSBjaGFyIFVfRVhQT1JUMgordXBydl90b3VwcGVyKGNoYXIgYyk7CisKKworVV9D
QVBJIGNoYXIgVV9FWFBPUlQyCit1cHJ2X2FzY2lpdG9sb3dlcihjaGFyIGMpOworCitVX0NBUEkg
Y2hhciBVX0VYUE9SVDIKK3VwcnZfZWJjZGljdG9sb3dlcihjaGFyIGMpOworCisjaWYgVV9DSEFS
U0VUX0ZBTUlMWT09VV9BU0NJSV9GQU1JTFkKKyMgICBkZWZpbmUgdXBydl90b2xvd2VyIHVwcnZf
YXNjaWl0b2xvd2VyCisjZWxpZiBVX0NIQVJTRVRfRkFNSUxZPT1VX0VCQ0RJQ19GQU1JTFkKKyMg
ICBkZWZpbmUgdXBydl90b2xvd2VyIHVwcnZfZWJjZGljdG9sb3dlcgorI2Vsc2UKKyMgICBlcnJv
ciBVX0NIQVJTRVRfRkFNSUxZIGlzIG5vdCB2YWxpZAorI2VuZGlmCisKKyNkZWZpbmUgdXBydl9z
dHJ0b2Qoc291cmNlLCBlbmQpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJ0b2Qoc291cmNl
LCBlbmQpCisjZGVmaW5lIHVwcnZfc3RydG91bChzdHIsIGVuZCwgYmFzZSkgVV9TVEFOREFSRF9D
UFBfTkFNRVNQQUNFIHN0cnRvdWwoc3RyLCBlbmQsIGJhc2UpCisjZGVmaW5lIHVwcnZfc3RydG9s
KHN0ciwgZW5kLCBiYXNlKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RydG9sKHN0ciwgZW5k
LCBiYXNlKQorCisvKiBDb252ZXJzaW9uIGZyb20gYSBkaWdpdCB0byB0aGUgY2hhcmFjdGVyIHdp
dGggcmFkaXggYmFzZSBmcm9tIDItMTkgKi8KKy8qIE1heSBuZWVkIHRvIHVzZSBVX1VQUEVSX09S
RElOQUwqLworI2RlZmluZSBUX0NTdHJpbmdfaXRvc09mZnNldChhKSAoKGEpPD05PygnMCcrKGEp
KTooJ0EnKyhhKS0xMCkpCisKK1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK3VwcnZfc3RyZHVwKGNv
bnN0IGNoYXIgKnNyYyk7CisKKy8qKgorICogdXBydl9tYWxsb2MgbisxIGJ5dGVzLCBhbmQgY29w
eSBuIGJ5dGVzIGZyb20gc3JjIGludG8gdGhlIG5ldyBzdHJpbmcuCisgKiBUZXJtaW5hdGUgd2l0
aCBhIG51bGwgYXQgb2Zmc2V0IG4uICAgSWYgbiBpcyAtMSwgd29ya3MgbGlrZSB1cHJ2X3N0cmR1
cAorICogQHBhcmFtIHNyYworICogQHBhcmFtIG4gbGVuZ3RoIG9mIHRoZSBpbnB1dCBzdHJpbmcs
IG5vdCBpbmNsdWRpbmcgbnVsbC4KKyAqIEByZXR1cm4gbmV3IHN0cmluZyAob3duZWQgYnkgY2Fs
bGVyLCB1c2UgdXBydl9mcmVlIHRvIGZyZWUpLgorICogQGludGVybmFsCisgKi8KK1VfQ0FQSSBj
aGFyKiBVX0VYUE9SVDIKK3VwcnZfc3RybmR1cChjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgbik7
CisKK1VfQ0FQSSBjaGFyKiBVX0VYUE9SVDIKK1RfQ1N0cmluZ190b0xvd2VyQ2FzZShjaGFyKiBz
dHIpOworCitVX0NBUEkgY2hhciogVV9FWFBPUlQyCitUX0NTdHJpbmdfdG9VcHBlckNhc2UoY2hh
ciogc3RyKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0NTdHJpbmdfaW50ZWdlclRv
U3RyaW5nKGNoYXIgKmJ1ZmZlciwgaW50MzJfdCBuLCBpbnQzMl90IHJhZGl4KTsKKworVV9DQVBJ
IGludDMyX3QgVV9FWFBPUlQyCitUX0NTdHJpbmdfaW50NjRUb1N0cmluZyhjaGFyICpidWZmZXIs
IGludDY0X3QgbiwgdWludDMyX3QgcmFkaXgpOworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIK
K1RfQ1N0cmluZ19zdHJpbmdUb0ludGVnZXIoY29uc3QgY2hhciAqaW50ZWdlclN0cmluZywgaW50
MzJfdCByYWRpeCk7CisKKy8qKgorICogQ2FzZS1pbnNlbnNpdGl2ZSwgbGFuZ3VhZ2UtaW5kZXBl
bmRlbnQgc3RyaW5nIGNvbXBhcmlzb24KKyAqIGxpbWl0ZWQgdG8gdGhlIEFTQ0lJIGNoYXJhY3Rl
ciByZXBlcnRvaXJlLgorICovCitVX0NBUEkgaW50IFVfRVhQT1JUMgordXBydl9zdHJpY21wKGNv
bnN0IGNoYXIgKnN0cjEsIGNvbnN0IGNoYXIgKnN0cjIpOworCisvKioKKyAqIENhc2UtaW5zZW5z
aXRpdmUsIGxhbmd1YWdlLWluZGVwZW5kZW50IHN0cmluZyBjb21wYXJpc29uCisgKiBsaW1pdGVk
IHRvIHRoZSBBU0NJSSBjaGFyYWN0ZXIgcmVwZXJ0b2lyZS4KKyAqLworVV9DQVBJIGludCBVX0VY
UE9SVDIKK3VwcnZfc3RybmljbXAoY29uc3QgY2hhciAqc3RyMSwgY29uc3QgY2hhciAqc3RyMiwg
dWludDMyX3Qgbik7CisKKyNlbmRpZiAvKiAhIENTVFJJTkdfSCAqLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9maWxlc3RybS5jIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9maWxlc3RybS5jCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjczMDk3NDdjNzA1YmQxMzc2NWEzYzViNzFlN2E4YmJkNDgxMTRjYWIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVzdHJtLmMK
QEAgLTAsMCArMSwyMjUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5
cmlnaHQgKEMpIDE5OTctMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqIEZpbGUgRklMRVNUUk0uQworKgorKiBAYXV0aG9yICAgICAg
IEdsZW5uIE1hcmN5CisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAg
ICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgNS84Lzk4ICAgICAgZ20gICAgICAgICAg
Q3JlYXRlZAorKiAgMDMvMDIvOTkgICAgIHN0ZXBoZW4gICAgIFJlb3JkZXJlZCBwYXJhbXMgaW4g
dW5nZXRjIHRvIG1hdGNoIHN0ZGlvCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQg
d29wZW4KKyogICAzLzI5Lzk5ICAgICBoZWxlbmEgICAgICBNZXJnZWQgU3RlcGhlbiBhbmQgQmVy
dHJhbmQncyBjaGFuZ2VzLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaW5jbHVk
ZSAiZmlsZXN0cm0uaCIKKworI2luY2x1ZGUgImNtZW1vcnkuaCIKKworI2luY2x1ZGUgPHN0ZGlv
Lmg+CisKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9vcGVuKGNv
bnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFyKiBtb2RlKQoreworICAgIGlmKGZpbGVuYW1l
ICE9IE5VTEwgJiYgKmZpbGVuYW1lICE9IDAgJiYgbW9kZSAhPSBOVUxMICYmICptb2RlICE9IDAp
IHsKKyAgICAgICAgRklMRSAqZmlsZSA9IGZvcGVuKGZpbGVuYW1lLCBtb2RlKTsKKyAgICAgICAg
cmV0dXJuIChGaWxlU3RyZWFtKilmaWxlOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBO
VUxMOworICAgIH0KK30KKworLyoKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmls
ZVN0cmVhbV93b3Blbihjb25zdCB3Y2hhcl90KiBmaWxlbmFtZSwgY29uc3Qgd2NoYXJfdCogbW9k
ZSkKK3sKKyAgIC8vIFRCRDogX3dmb3BlbiBpcyBiZWxpZXZlZCB0byBiZSBNUy1zcGVjaWZpYz8g
CisjaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisgICAgRklMRSogcmVzdWx0ID0g
X3dmb3BlbihmaWxlbmFtZSwgbW9kZSk7CisgICAgcmV0dXJuIChGaWxlU3RyZWFtKilyZXN1bHQ7
CisjZWxzZQorICAgIHNpemVfdCBmbk1ic1NpemUsIG1kTWJzU2l6ZTsKKyAgICBjaGFyICpmbiwg
Km1kOworICAgIEZJTEUgKnJlc3VsdDsKKworICAgIC8vIGNvbnZlcnQgZnJvbSB3Y2hhcl90IHRv
IGNoYXIgCisgICAgZm5NYnNTaXplID0gd2NzdG9tYnMoTlVMTCwgZmlsZW5hbWUsICgoc2l6ZV90
KS0xKSA+PiAxKTsKKyAgICBmbiA9IChjaGFyKil1cHJ2X21hbGxvYyhmbk1ic1NpemUrMik7Cisg
ICAgd2NzdG9tYnMoZm4sIGZpbGVuYW1lLCBmbk1ic1NpemUpOworICAgIGZuW2ZuTWJzU2l6ZV0g
PSAwOworCisgICAgbWRNYnNTaXplID0gd2NzdG9tYnMoTlVMTCwgbW9kZSwgKChzaXplX3QpLTEp
ID4+IDEpOworICAgIG1kID0gKGNoYXIqKXVwcnZfbWFsbG9jKG1kTWJzU2l6ZSsyKTsKKyAgICB3
Y3N0b21icyhtZCwgbW9kZSwgbWRNYnNTaXplKTsKKyAgICBtZFttZE1ic1NpemVdID0gMDsKKwor
ICAgIHJlc3VsdCA9IGZvcGVuKGZuLCBtZCk7CisgICAgdXBydl9mcmVlKGZuKTsKKyAgICB1cHJ2
X2ZyZWUobWQpOworICAgIHJldHVybiAoRmlsZVN0cmVhbSopcmVzdWx0OworI2VuZGlmCit9Cisq
LworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fY2xvc2UoRmlsZVN0cmVhbSog
ZmlsZVN0cmVhbSkKK3sKKyAgICBpZiAoZmlsZVN0cmVhbSAhPSAwKQorICAgICAgICBmY2xvc2Uo
KEZJTEUqKWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVT
dHJlYW1fZmlsZV9leGlzdHMoY29uc3QgY2hhciogZmlsZW5hbWUpCit7CisgICAgRklMRSogdGVt
cCA9IGZvcGVuKGZpbGVuYW1lLCAiciIpOworICAgIGlmICh0ZW1wKSB7CisgICAgICAgIGZjbG9z
ZSh0ZW1wKTsKKyAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgfSBlbHNlCisgICAgICAgIHJldHVy
biBGQUxTRTsKK30KKworLypzdGF0aWMgY29uc3QgaW50MzJfdCBrRU9GOworY29uc3QgaW50MzJf
dCBGaWxlU3RyZWFtOjprRU9GID0gRU9GOyovCisKKy8qCitVX0NBUEkgRmlsZVN0cmVhbSoKK1Rf
RmlsZVN0cmVhbV90bXBmaWxlKCkKK3sKKyAgICBGSUxFKiBmaWxlID0gdG1wZmlsZSgpOworICAg
IHJldHVybiAoRmlsZVN0cmVhbSopZmlsZTsKK30KKyovCisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQ
T1JUMgorVF9GaWxlU3RyZWFtX3JlYWQoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgdm9pZCogYWRk
ciwgaW50MzJfdCBsZW4pCit7CisgICAgcmV0dXJuIGZyZWFkKGFkZHIsIDEsIGxlbiwgKEZJTEUq
KWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVh
bV93cml0ZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCB2b2lkKiBhZGRyLCBpbnQzMl90
IGxlbikKK3sKKworICAgIHJldHVybiBmd3JpdGUoYWRkciwgMSwgbGVuLCAoRklMRSopZmlsZVN0
cmVhbSk7Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3Jld2luZChG
aWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIHJld2luZCgoRklMRSopZmlsZVN0cmVhbSk7
Cit9CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3B1dGMoRmlsZVN0
cmVhbSogZmlsZVN0cmVhbSwgaW50MzJfdCBjaCkKK3sKKyAgICBpbnQzMl90IGMgPSBmcHV0Yyhj
aCwgKEZJTEUqKWZpbGVTdHJlYW0pOworICAgIHJldHVybiBjOworfQorCitVX0NBUEkgaW50IFVf
RVhQT1JUMgorVF9GaWxlU3RyZWFtX2dldGMoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSkKK3sKKyAg
ICBpbnQgYyA9IGZnZXRjKChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4gYzsKK30KKwor
VV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fdW5nZXRjKGludDMyX3QgY2gs
IEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisKKyAgICBpbnQzMl90IGMgPSB1bmdldGMoY2gs
IChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4gYzsKK30KKworVV9DQVBJIGludDMyX3Qg
VV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcGVlayhGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKQorewor
ICAgIGludDMyX3QgYyA9IGZnZXRjKChGSUxFKilmaWxlU3RyZWFtKTsKKyAgICByZXR1cm4gdW5n
ZXRjKGMsIChGSUxFKilmaWxlU3RyZWFtKTsKK30KKworVV9DQVBJIGNoYXIqIFVfRVhQT1JUMgor
VF9GaWxlU3RyZWFtX3JlYWRMaW5lKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0sIGNoYXIqIGJ1ZmZl
ciwgaW50MzJfdCBsZW5ndGgpCit7CisgICAgcmV0dXJuIGZnZXRzKGJ1ZmZlciwgbGVuZ3RoLCAo
RklMRSopZmlsZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxl
U3RyZWFtX3dyaXRlTGluZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCBjaGFyKiBidWZm
ZXIpCit7CisgICAgcmV0dXJuIGZwdXRzKGJ1ZmZlciwgKEZJTEUqKWZpbGVTdHJlYW0pOworfQor
CitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9zaXplKEZpbGVTdHJlYW0q
IGZpbGVTdHJlYW0pCit7CisgICAgaW50MzJfdCBzYXZlZFBvcyA9IGZ0ZWxsKChGSUxFKilmaWxl
U3RyZWFtKTsKKyAgICBpbnQzMl90IHNpemUgPSAwOworCisgICAgLypDaGFuZ2VzIGJ5IEJlcnRy
YW5kIEEuIEQuIGRvZXNuJ3QgYWZmZWN0IHRoZSBjdXJyZW50IHBvc2l0aW9uCisgICAgZ29lcyB0
byB0aGUgZW5kIG9mIHRoZSBmaWxlIGJlZm9yZSBmdGVsbCovCisgICAgZnNlZWsoKEZJTEUqKWZp
bGVTdHJlYW0sIDAsIFNFRUtfRU5EKTsKKyAgICBzaXplID0gKGludDMyX3QpZnRlbGwoKEZJTEUq
KWZpbGVTdHJlYW0pOworICAgIGZzZWVrKChGSUxFKilmaWxlU3RyZWFtLCBzYXZlZFBvcywgU0VF
S19TRVQpOworICAgIHJldHVybiBzaXplOworfQorCitVX0NBUEkgaW50IFVfRVhQT1JUMgorVF9G
aWxlU3RyZWFtX2VvZihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIHJldHVybiBmZW9m
KChGSUxFKilmaWxlU3RyZWFtKTsKK30KKworLyoKKyBXYXJuaW5nIAorIFRoaXMgZnVuY3Rpb24g
bWF5IG5vdCB3b3JrIGNvbnNpc3RlbnRseSBvbiBhbGwgcGxhdGZvcm1zCisgKGUuZy4gSFAtVVgs
IEZyZWVCU0QgYW5kIE1hY09TWCBkb24ndCByZXR1cm4gYW4gZXJyb3Igd2hlbgorIHB1dGMgaXMg
dXNlZCBvbiBhIGZpbGUgb3BlbmVkIGFzIHJlYWRvbmx5KQorKi8KK1VfQ0FQSSBpbnQgVV9FWFBP
UlQyCitUX0ZpbGVTdHJlYW1fZXJyb3IoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSkKK3sKKyAgICBy
ZXR1cm4gKGZpbGVTdHJlYW0gPT0gMCB8fCBmZXJyb3IoKEZJTEUqKWZpbGVTdHJlYW0pKTsKK30K
KworLyogVGhpcyBmdW5jdGlvbiBkb2Vzbid0IHdvcmsuICovCisvKiBmb3JjZSB0aGUgc3RyZWFt
IHRvIHNldCBpdHMgZXJyb3IgZmxhZyovCisvKlVfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxl
U3RyZWFtX3NldEVycm9yKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisgICAgZnNlZWsoKEZJ
TEUqKWZpbGVTdHJlYW0sIDk5OTk5LCBTRUVLX1NFVCk7Cit9CisqLworCitVX0NBUEkgRmlsZVN0
cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3RkaW4odm9pZCkKK3sKKyAgICByZXR1cm4g
KEZpbGVTdHJlYW0qKXN0ZGluOworfQorCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitU
X0ZpbGVTdHJlYW1fc3Rkb3V0KHZvaWQpCit7CisgICAgcmV0dXJuIChGaWxlU3RyZWFtKilzdGRv
dXQ7Cit9CisKKworVV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3N0
ZGVycih2b2lkKQoreworICAgIHJldHVybiAoRmlsZVN0cmVhbSopc3RkZXJyOworfQorCitVX0NB
UEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcmVtb3ZlKGNvbnN0IGNoYXIqIGZpbGVO
YW1lKXsKKyAgICByZXR1cm4gKHJlbW92ZShmaWxlTmFtZSkgPT0gMCk7Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVzdHJtLmggYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVzdHJtLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGVlYmE5OGI2NjFmZDYxNzgxMTFiMGJlMDllOTMxOWViOWYxMWEwMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvZmlsZXN0
cm0uaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAg
IENvcHlyaWdodCAoQykgMTk5Ny0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBGSUxFU1RSTS5ICisqCisqIENvbnRhaW5z
IEZpbGVTdHJlYW0gaW50ZXJmYWNlCisqCisqIEBhdXRob3IgICAgICAgR2xlbm4gTWFyY3kKKyoK
KyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAg
RGVzY3JpcHRpb24KKyogICA1LzgvOTggICAgICBnbSAgICAgICAgICBDcmVhdGVkLgorKiAgMDMv
MDIvOTkgICAgIHN0ZXBoZW4gICAgIFJlb3JkZXJlZCBwYXJhbXMgaW4gdW5nZXRjIHRvIG1hdGNo
IHN0ZGlvCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkZWQgd29wZW4KKyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBGSUxFU1RSTV9ICisjZGVmaW5lIEZJTEVT
VFJNX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKK3R5cGVkZWYgc3RydWN0IF9G
aWxlU3RyZWFtIEZpbGVTdHJlYW07CisKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1Rf
RmlsZVN0cmVhbV9vcGVuKGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFyKiBtb2RlKTsK
KworLyoKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV93b3Blbihj
b25zdCB3Y2hhcl90KiBmaWxlbmFtZSwgY29uc3Qgd2NoYXJfdCogbW9kZSk7CisqLworVV9DQVBJ
IHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fY2xvc2UoRmlsZVN0cmVhbSogZmlsZVN0cmVh
bSk7CisKK1VfQ0FQSSBVQm9vbCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9maWxlX2V4aXN0cyhj
b25zdCBjaGFyKiBmaWxlbmFtZSk7CisKKy8qCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQy
CitUX0ZpbGVTdHJlYW1fdG1wZmlsZSh2b2lkKTsKKyovCisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQ
T1JUMgorVF9GaWxlU3RyZWFtX3JlYWQoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgdm9pZCogYWRk
ciwgaW50MzJfdCBsZW4pOworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVh
bV93cml0ZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBjb25zdCB2b2lkKiBhZGRyLCBpbnQzMl90
IGxlbik7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3Jld2luZChGaWxl
U3RyZWFtKiBmaWxlU3RyZWFtKTsKKworLypBZGRlZCBieSBCZXJ0cmFuZCBBLiBELiAqLworVV9D
QVBJIGNoYXIgKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9yZWFkTGluZShGaWxlU3RyZWFtKiBm
aWxlU3RyZWFtLCBjaGFyKiBidWZmZXIsIGludDMyX3QgbGVuZ3RoKTsKKworVV9DQVBJIGludDMy
X3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fd3JpdGVMaW5lKEZpbGVTdHJlYW0qIGZpbGVTdHJl
YW0sIGNvbnN0IGNoYXIqIGJ1ZmZlcik7CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9G
aWxlU3RyZWFtX3B1dGMoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgaW50MzJfdCBjaCk7CisKK1Vf
Q0FQSSBpbnQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fZ2V0YyhGaWxlU3RyZWFtKiBmaWxlU3Ry
ZWFtKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fdW5nZXRjKGlu
dDMyX3QgY2gsIEZpbGVTdHJlYW0gKmZpbGVTdHJlYW0pOworCitVX0NBUEkgaW50MzJfdCBVX0VY
UE9SVDIKK1RfRmlsZVN0cmVhbV9wZWVrKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pOworCitVX0NB
UEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9zaXplKEZpbGVTdHJlYW0qIGZpbGVT
dHJlYW0pOworCitVX0NBUEkgaW50IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX2VvZihGaWxlU3Ry
ZWFtKiBmaWxlU3RyZWFtKTsKKworVV9DQVBJIGludCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9l
cnJvcihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKworLyoKK1VfQ0FQSSB2b2lkIFVfRVhQT1JU
MgorVF9GaWxlU3RyZWFtX3NldEVycm9yKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pOworKi8KKwor
VV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3N0ZGluKHZvaWQpOwor
CitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3Rkb3V0KHZvaWQp
OworCitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3RkZXJyKHZv
aWQpOworCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcmVtb3ZlKGNvbnN0
IGNoYXIqIGZpbGVOYW1lKTsKKworI2VuZGlmIC8qIF9GSUxFU1RSTSovCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2dlbmJyay5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2dlbmJyay5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzJjNmNmZmU3YjUyOTZkZTg2NzhlZmFlMDRiNDc1OTc0MDhmNmEwNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvZ2VuYnJrLmNw
cApAQCAtMCwwICsxLDM0NiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMp
IDIwMDItMjAwOSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0
aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgor
KiBGaWxlIGdlbmJyay5jCisqLworCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICBUb29sIGZvciBn
ZW5lcmF0aW5nIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZGF0YSBmaWxlcyAoLmJyayBmaWxlcyku
CisvLyAgIC5icmsgZmlsZXMgY29udGFpbiB0aGUgcHJlY29tcGlsZWQgcnVsZXMgZm9yIHN0YW5k
YXJkIHR5cGVzCisvLyAgIG9mIGl0ZXJhdG9ycyAtIHdvcmQsIGxpbmUsIHNlbnRlbmNlLCBldGMu
CisvLworLy8gICBVc2FnZTogIGdlbmJyayBbb3B0aW9uc10gLXIgcnVsZS1maWxlLnR4dCAgLW8g
b3V0cHV0LWZpbGUuYnJrCisvLworLy8gICAgICAgb3B0aW9uczogICAtdiAgICAgICAgIHZlcmJv
c2UKKy8vICAgICAgICAgICAgICAgICAgLT8gb3IgLWggICBoZWxwCisvLworLy8gICBUaGUgaW5w
dXQgcnVsZSBmaWxlIGlzIGEgcGxhaW4gdGV4dCBmaWxlIGNvbnRhaW5pbmcgYnJlYWsgcnVsZXMK
Ky8vICAgIGluIHRoZSBpbnB1dCBmb3JtYXQgYWNjZXB0ZWQgYnkgUnVsZUJhc2VkQnJlYWtJdGVy
YXRvcnMuICBUaGUKKy8vICAgIGZpbGUgY2FuIGJlIGVuY29kZWQgYXMgdXRmLTgsIG9yIHV0Zi0x
NiAoZWl0aGVyIGVuZGlhbiksIG9yCisvLyAgICBpbiB0aGUgZGVmYXVsdCBjb2RlIHBhZ2UgKHBs
YXRmb3JtIGRlcGVuZGVudC4pLiAgdXRmIGVuY29kZWQKKy8vICAgIGZpbGVzIG11c3QgaW5jbHVk
ZSBhIEJPTS4KKy8vCisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdWNudi5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgi
CisjaW5jbHVkZSAidW5pY29kZS9yYmJpLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2xlYW4uaCIK
KyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisjaW5jbHVkZSAidW5pY29kZS9wdXRpbC5oIgor
CisjaW5jbHVkZSAidW9wdGlvbnMuaCIKKyNpbmNsdWRlICJ1bmV3ZGF0YS5oIgorI2luY2x1ZGUg
InVjbW5kYXRhLmgiCisjaW5jbHVkZSAicmJiaWRhdGEuaCIKKyNpbmNsdWRlICJjbWVtb3J5Lmgi
CisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0
cmluZy5oPgorCitVX05BTUVTUEFDRV9VU0UKKworc3RhdGljIGNoYXIgKnByb2dOYW1lOworc3Rh
dGljIFVPcHRpb24gb3B0aW9uc1tdPXsKKyAgICBVT1BUSU9OX0hFTFBfSCwgICAgICAgICAgICAg
LyogMCAqLworICAgIFVPUFRJT05fSEVMUF9RVUVTVElPTl9NQVJLLCAvKiAxICovCisgICAgVU9Q
VElPTl9WRVJCT1NFLCAgICAgICAgICAgIC8qIDIgKi8KKyAgICB7ICJydWxlcyIsIE5VTEwsIE5V
TEwsIE5VTEwsICdyJywgVU9QVF9SRVFVSVJFU19BUkcsIDAgfSwgICAvKiAzICovCisgICAgeyAi
b3V0IiwgICBOVUxMLCBOVUxMLCBOVUxMLCAnbycsIFVPUFRfUkVRVUlSRVNfQVJHLCAwIH0sICAg
LyogNCAqLworICAgIFVPUFRJT05fSUNVREFUQURJUiwgICAgICAgICAvKiA1ICovCisgICAgVU9Q
VElPTl9ERVNURElSLCAgICAgICAgICAgIC8qIDYgKi8KKyAgICBVT1BUSU9OX0NPUFlSSUdIVCwg
ICAgICAgICAgLyogNyAqLworfTsKKwordm9pZCB1c2FnZUFuZERpZShpbnQgcmV0Q29kZSkgewor
ICAgICAgICBwcmludGYoIlVzYWdlOiAlcyBbLXZdIFstb3B0aW9uc10gLXIgcnVsZS1maWxlIC1v
IG91dHB1dC1maWxlXG4iLCBwcm9nTmFtZSk7CisgICAgICAgIHByaW50ZigiXHRSZWFkIGluIGJy
ZWFrIGl0ZXJhdGlvbiBydWxlcyB0ZXh0IGFuZCB3cml0ZSBvdXQgdGhlIGJpbmFyeSBkYXRhXG4i
CisgICAgICAgICAgICAib3B0aW9uczpcbiIKKyAgICAgICAgICAgICJcdC1oIG9yIC0/IG9yIC0t
aGVscCAgdGhpcyB1c2FnZSB0ZXh0XG4iCisgICAgICAgICAgICAiXHQtViBvciAtLXZlcnNpb24g
ICAgIHNob3cgYSB2ZXJzaW9uIG1lc3NhZ2VcbiIKKyAgICAgICAgICAgICJcdC1jIG9yIC0tY29w
eXJpZ2h0ICAgaW5jbHVkZSBhIGNvcHlyaWdodCBub3RpY2VcbiIKKyAgICAgICAgICAgICJcdC12
IG9yIC0tdmVyYm9zZSAgICAgdHVybiBvbiB2ZXJib3NlIG91dHB1dFxuIgorICAgICAgICAgICAg
Ilx0LWkgb3IgLS1pY3VkYXRhZGlyICBkaXJlY3RvcnkgZm9yIGxvY2F0aW5nIGFueSBuZWVkZWQg
aW50ZXJtZWRpYXRlIGRhdGEgZmlsZXMsXG4iCisgICAgICAgICAgICAiXHQgICAgICAgICAgICAg
ICAgICAgIGZvbGxvd2VkIGJ5IHBhdGgsIGRlZmF1bHRzIHRvICVzXG4iCisgICAgICAgICAgICAi
XHQtZCBvciAtLWRlc3RkaXIgICAgIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSwgZm9sbG93ZWQgYnkg
dGhlIHBhdGhcbiIsCisgICAgICAgICAgICB1X2dldERhdGFEaXJlY3RvcnkoKSk7CisgICAgICAg
IGV4aXQgKHJldENvZGUpOworfQorCisKKyNpZiBVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiB8
fCBVQ09ORklHX05PX0ZJTEVfSU8KKworLyogZHVtbXkgVURhdGFJbmZvIGNmLiB1ZGF0YS5oICov
CitzdGF0aWMgVURhdGFJbmZvIGR1bW15RGF0YUluZm8gPSB7CisgICAgc2l6ZW9mKFVEYXRhSW5m
byksCisgICAgMCwKKworICAgIFVfSVNfQklHX0VORElBTiwKKyAgICBVX0NIQVJTRVRfRkFNSUxZ
LAorICAgIFVfU0laRU9GX1VDSEFSLAorICAgIDAsCisKKyAgICB7IDAsIDAsIDAsIDAgfSwgICAg
ICAgICAgICAgICAgIC8qIGR1bW15IGRhdGFGb3JtYXQgKi8KKyAgICB7IDAsIDAsIDAsIDAgfSwg
ICAgICAgICAgICAgICAgIC8qIGR1bW15IGZvcm1hdFZlcnNpb24gKi8KKyAgICB7IDAsIDAsIDAs
IDAgfSAgICAgICAgICAgICAgICAgIC8qIGR1bW15IGRhdGFWZXJzaW9uICovCit9OworCisjZWxz
ZQorCisvLworLy8gIFNldCB1cCB0aGUgSUNVIGRhdGEgaGVhZGVyLCBkZWZpbmVkIGluIHVjbW5k
YXRhLmgKKy8vCitEYXRhSGVhZGVyIGRoID17CisgICAge3NpemVvZihEYXRhSGVhZGVyKSwgICAg
ICAgICAgIC8vIFN0cnVjdCBNYXBwZWREYXRhCisgICAgICAgIDB4ZGEsCisgICAgICAgIDB4Mjd9
LAorCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdHJ1Y3QgVURhdGFJ
bmZvCisgICAgICAgIHNpemVvZihVRGF0YUluZm8pLCAgICAgICAgICAvLyAgICAgc2l6ZQorICAg
ICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIHJlc2VydmVkCisgICAgICAg
IFVfSVNfQklHX0VORElBTiwKKyAgICAgICAgVV9DSEFSU0VUX0ZBTUlMWSwKKyAgICAgICAgVV9T
SVpFT0ZfVUNIQVIsCisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAg
cmVzZXJ2ZWQKKworICAgIHsgMHg0MiwgMHg3MiwgMHg2YiwgMHgyMCB9LCAgICAgLy8gICAgIGRh
dGFGb3JtYXQ9IkJyayAiCisgICAgeyAweGZmLCAwLCAwLCAwIH0sICAgICAgICAgICAgICAvLyAg
ICAgZm9ybWF0VmVyc2lvbi4gIEZpbGxlZCBpbiBsYXRlciB3aXRoIHZhbHVlcworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICBmcm9tIHRoZSBSQkJJIHJ1bGUgYnVp
bGRlci4gIFRoZSAgdmFsdWVzIGRlY2xhcmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyAgICAgIGhlcmUgc2hvdWxkIG5ldmVyIGFwcGVhciBpbiBhbnkgcmVhbCBSQkJJ
IGRhdGEuCisgICAgICAgIHsgNCwgMSwgMCwgMCB9ICAgICAgICAgICAgICAvLyAgIGRhdGFWZXJz
aW9uIChVbmljb2RlIHZlcnNpb24pCisgICAgfX07CisKKyNlbmRpZgorCisvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKy8vCisvLyAgbWFpbiAgICAgIGZvciBnZW5icmsKKy8vCisvLy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK2ludCAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICBVRXJyb3JD
b2RlICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgY29uc3QgY2hhciAqcnVsZUZpbGVOYW1l
OworICAgIGNvbnN0IGNoYXIgKm91dEZpbGVOYW1lOworICAgIGNvbnN0IGNoYXIgKm91dERpciA9
IE5VTEw7CisgICAgY29uc3QgY2hhciAqY29weXJpZ2h0ID0gTlVMTDsKKworICAgIC8vCisgICAg
Ly8gUGljayB1cCBhbmQgY2hlY2sgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMsCisgICAgLy8g
ICAgdXNpbmcgdGhlIHN0YW5kYXJkIElDVSB0b29sIHV0aWxzIG9wdGlvbiBoYW5kbGluZy4KKyAg
ICAvLworICAgIFVfTUFJTl9JTklUX0FSR1MoYXJnYywgYXJndik7CisgICAgcHJvZ05hbWUgPSBh
cmd2WzBdOworICAgIGFyZ2M9dV9wYXJzZUFyZ3MoYXJnYywgYXJndiwgc2l6ZW9mKG9wdGlvbnMp
L3NpemVvZihvcHRpb25zWzBdKSwgb3B0aW9ucyk7CisgICAgaWYoYXJnYzwwKSB7CisgICAgICAg
IC8vIFVucmVjb2duaXplZCBvcHRpb24KKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJvciBp
biBjb21tYW5kIGxpbmUgYXJndW1lbnQgXCIlc1wiXG4iLCBhcmd2Wy1hcmdjXSk7CisgICAgICAg
IHVzYWdlQW5kRGllKFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUik7CisgICAgfQorCisgICAgaWYo
b3B0aW9uc1swXS5kb2VzT2NjdXIgfHwgb3B0aW9uc1sxXS5kb2VzT2NjdXIpIHsKKyAgICAgICAg
Ly8gIC0/IG9yIC1oIGZvciBoZWxwLgorICAgICAgICB1c2FnZUFuZERpZSgwKTsKKyAgICB9CisK
KyAgICBpZiAoIShvcHRpb25zWzNdLmRvZXNPY2N1ciAmJiBvcHRpb25zWzRdLmRvZXNPY2N1cikp
IHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJydWxlIGZpbGUgYW5kIG91dHB1dCBmaWxlIG11
c3QgYm90aCBiZSBzcGVjaWZpZWQuXG4iKTsKKyAgICAgICAgdXNhZ2VBbmREaWUoVV9JTExFR0FM
X0FSR1VNRU5UX0VSUk9SKTsKKyAgICB9CisgICAgcnVsZUZpbGVOYW1lID0gb3B0aW9uc1szXS52
YWx1ZTsKKyAgICBvdXRGaWxlTmFtZSAgPSBvcHRpb25zWzRdLnZhbHVlOworCisgICAgaWYgKG9w
dGlvbnNbNV0uZG9lc09jY3VyKSB7CisgICAgICAgIHVfc2V0RGF0YURpcmVjdG9yeShvcHRpb25z
WzVdLnZhbHVlKTsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisKKyAgICAv
KiBDb21iaW5lIHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUgZmlsZSBuYW1lICovCisgICAgaWYob3B0
aW9uc1s2XS5kb2VzT2NjdXIpIHsKKyAgICAgICAgb3V0RGlyID0gb3B0aW9uc1s2XS52YWx1ZTsK
KyAgICB9CisgICAgaWYgKG9wdGlvbnNbN10uZG9lc09jY3VyKSB7CisgICAgICAgIGNvcHlyaWdo
dCA9IFVfQ09QWVJJR0hUX1NUUklORzsKKyAgICB9CisKKyNpZiBVQ09ORklHX05PX0JSRUFLX0lU
RVJBVElPTiB8fCBVQ09ORklHX05PX0ZJTEVfSU8KKworICAgIFVOZXdEYXRhTWVtb3J5ICpwRGF0
YTsKKyAgICBjaGFyIG1zZ1sxMDI0XTsKKworICAgIC8qIHdyaXRlIG1lc3NhZ2Ugd2l0aCBqdXN0
IHRoZSBuYW1lICovCisgICAgc3ByaW50Zihtc2csICJnZW5icmsgd3JpdGVzIGR1bW15ICVzIGJl
Y2F1c2Ugb2YgVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gYW5kL29yIFVDT05GSUdfTk9fRklM
RV9JTywgc2VlIHVjb25maWcuaCIsIG91dEZpbGVOYW1lKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwg
IiVzXG4iLCBtc2cpOworCisgICAgLyogd3JpdGUgdGhlIGR1bW15IGRhdGEgZmlsZSAqLworICAg
IHBEYXRhID0gdWRhdGFfY3JlYXRlKG91dERpciwgTlVMTCwgb3V0RmlsZU5hbWUsICZkdW1teURh
dGFJbmZvLCBOVUxMLCAmc3RhdHVzKTsKKyAgICB1ZGF0YV93cml0ZUJsb2NrKHBEYXRhLCBtc2cs
IHN0cmxlbihtc2cpKTsKKyAgICB1ZGF0YV9maW5pc2gocERhdGEsICZzdGF0dXMpOworICAgIHJl
dHVybiAoaW50KXN0YXR1czsKKworI2Vsc2UKKyAgICAvKiBJbml0aWFsaXplIElDVSAqLworICAg
IHVfaW5pdCgmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAg
ZnByaW50ZihzdGRlcnIsICIlczogY2FuIG5vdCBpbml0aWFsaXplIElDVS4gIHN0YXR1cyA9ICVz
XG4iLAorICAgICAgICAgICAgYXJndlswXSwgdV9lcnJvck5hbWUoc3RhdHVzKSk7CisgICAgICAg
IGV4aXQoMSk7CisgICAgfQorICAgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKworICAgIC8vCisg
ICAgLy8gIFJlYWQgaW4gdGhlIHJ1bGUgc291cmNlIGZpbGUKKyAgICAvLworICAgIGxvbmcgICAg
ICAgIHJlc3VsdDsKKyAgICBsb25nICAgICAgICBydWxlRmlsZVNpemU7CisgICAgRklMRSAgICAg
ICAgKmZpbGU7CisgICAgY2hhciAgICAgICAgKnJ1bGVCdWZmZXJDOworCisgICAgZmlsZSA9IGZv
cGVuKHJ1bGVGaWxlTmFtZSwgInJiIik7CisgICAgaWYoIGZpbGUgPT0gMCApIHsKKyAgICAgICAg
ZnByaW50ZihzdGRlcnIsICJDb3VsZCBub3Qgb3BlbiBmaWxlIFwiJXNcIlxuIiwgcnVsZUZpbGVO
YW1lKTsKKyAgICAgICAgZXhpdCgtMSk7CisgICAgfQorICAgIGZzZWVrKGZpbGUsIDAsIFNFRUtf
RU5EKTsKKyAgICBydWxlRmlsZVNpemUgPSBmdGVsbChmaWxlKTsKKyAgICBmc2VlayhmaWxlLCAw
LCBTRUVLX1NFVCk7CisgICAgcnVsZUJ1ZmZlckMgPSBuZXcgY2hhcltydWxlRmlsZVNpemUrMTBd
OworCisgICAgcmVzdWx0ID0gKGxvbmcpZnJlYWQocnVsZUJ1ZmZlckMsIDEsIHJ1bGVGaWxlU2l6
ZSwgZmlsZSk7CisgICAgaWYgKHJlc3VsdCAhPSBydWxlRmlsZVNpemUpICB7CisgICAgICAgIGZw
cmludGYoc3RkZXJyLCAiRXJyb3IgcmVhZGluZyBmaWxlIFwiJXNcIlxuIiwgcnVsZUZpbGVOYW1l
KTsKKyAgICAgICAgZXhpdCAoLTEpOworICAgIH0KKyAgICBydWxlQnVmZmVyQ1tydWxlRmlsZVNp
emVdPTA7CisgICAgZmNsb3NlKGZpbGUpOworCisgICAgLy8KKyAgICAvLyBMb29rIGZvciBhIFVu
aWNvZGUgU2lnbmF0dXJlIChCT00pIG9uIHRoZSBydWxlIGZpbGUKKyAgICAvLworICAgIGludDMy
X3QgICAgICAgIHNpZ25hdHVyZUxlbmd0aDsKKyAgICBjb25zdCBjaGFyICogICBydWxlU291cmNl
QyA9IHJ1bGVCdWZmZXJDOworICAgIGNvbnN0IGNoYXIqICAgIGVuY29kaW5nID0gdWNudl9kZXRl
Y3RVbmljb2RlU2lnbmF0dXJlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVNvdXJj
ZUMsIHJ1bGVGaWxlU2l6ZSwgJnNpZ25hdHVyZUxlbmd0aCwgJnN0YXR1cyk7CisgICAgaWYgKFVf
RkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9CisgICAgaWYo
ZW5jb2RpbmchPU5VTEwgKXsKKyAgICAgICAgcnVsZVNvdXJjZUMgICs9IHNpZ25hdHVyZUxlbmd0
aDsKKyAgICAgICAgcnVsZUZpbGVTaXplIC09IHNpZ25hdHVyZUxlbmd0aDsKKyAgICB9CisKKyAg
ICAvLworICAgIC8vIE9wZW4gYSBjb252ZXJ0ZXIgdG8gdGFrZSB0aGUgcnVsZSBmaWxlIHRvIFVU
Ri0xNgorICAgIC8vCisgICAgVUNvbnZlcnRlciogY29udjsKKyAgICBjb252ID0gdWNudl9vcGVu
KGVuY29kaW5nLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAg
ICAgZnByaW50ZihzdGRlcnIsICJ1Y252X29wZW46IElDVSBFcnJvciBcIiVzXCJcbiIsIHVfZXJy
b3JOYW1lKHN0YXR1cykpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfQorCisgICAgLy8K
KyAgICAvLyBDb252ZXJ0IHRoZSBydWxlcyB0byBVQ2hhci4KKyAgICAvLyAgUHJlZmxpZ2h0IGZp
cnN0IHRvIGRldGVybWluZSByZXF1aXJlZCBidWZmZXIgc2l6ZS4KKyAgICAvLworICAgIHVpbnQz
Ml90IGRlc3RDYXAgPSB1Y252X3RvVUNoYXJzKGNvbnYsCisgICAgICAgICAgICAgICAgICAgICAg
IE5VTEwsICAgICAgICAgICAvLyAgZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgMCwgICAg
ICAgICAgICAgIC8vICBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVT
b3VyY2VDLAorICAgICAgICAgICAgICAgICAgICAgICBydWxlRmlsZVNpemUsCisgICAgICAgICAg
ICAgICAgICAgICAgICZzdGF0dXMpOworICAgIGlmIChzdGF0dXMgIT0gVV9CVUZGRVJfT1ZFUkZM
T1dfRVJST1IpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1Y252X3RvVUNoYXJzOiBJQ1Ug
RXJyb3IgXCIlc1wiXG4iLCB1X2Vycm9yTmFtZShzdGF0dXMpKTsKKyAgICAgICAgZXhpdChzdGF0
dXMpOworICAgIH07CisKKyAgICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgVUNoYXIgKnJ1
bGVTb3VyY2VVID0gbmV3IFVDaGFyW2Rlc3RDYXArMV07CisgICAgdWNudl90b1VDaGFycyhjb252
LAorICAgICAgICAgICAgICAgICAgcnVsZVNvdXJjZVUsICAgICAvLyAgZGVzdCwKKyAgICAgICAg
ICAgICAgICAgIGRlc3RDYXArMSwKKyAgICAgICAgICAgICAgICAgIHJ1bGVTb3VyY2VDLAorICAg
ICAgICAgICAgICAgICAgcnVsZUZpbGVTaXplLAorICAgICAgICAgICAgICAgICAgJnN0YXR1cyk7
CisgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAi
dWNudl90b1VDaGFyczogSUNVIEVycm9yIFwiJXNcIlxuIiwgdV9lcnJvck5hbWUoc3RhdHVzKSk7
CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9OworICAgIHVjbnZfY2xvc2UoY29udik7CisK
KworICAgIC8vCisgICAgLy8gIFB1dCB0aGUgc291cmNlIHJ1bGVzIGludG8gYSBVbmljb2RlU3Ry
aW5nCisgICAgLy8KKyAgICBVbmljb2RlU3RyaW5nIHJ1bGVTb3VyY2VTKEZBTFNFLCBydWxlU291
cmNlVSwgZGVzdENhcCk7CisKKyAgICAvLworICAgIC8vICBDcmVhdGUgdGhlIGJyZWFrIGl0ZXJh
dG9yIGZyb20gdGhlIHJ1bGVzCisgICAgLy8gICAgIFRoaXMgd2lsbCBjb21waWxlIHRoZSBydWxl
cy4KKyAgICAvLworICAgIFVQYXJzZUVycm9yIHBhcnNlRXJyb3I7CisgICAgcGFyc2VFcnJvci5s
aW5lID0gMDsKKyAgICBwYXJzZUVycm9yLm9mZnNldCA9IDA7CisgICAgUnVsZUJhc2VkQnJlYWtJ
dGVyYXRvciAqYmkgPSBuZXcgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihydWxlU291cmNlUywgcGFy
c2VFcnJvciwgc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAg
ZnByaW50ZihzdGRlcnIsICJjcmVhdGVSdWxlQmFzZWRCcmVha0l0ZXJhdG9yOiBJQ1UgRXJyb3Ig
XCIlc1wiICBhdCBsaW5lICVkLCBjb2x1bW4gJWRcbiIsCisgICAgICAgICAgICAgICAgdV9lcnJv
ck5hbWUoc3RhdHVzKSwgKGludClwYXJzZUVycm9yLmxpbmUsIChpbnQpcGFyc2VFcnJvci5vZmZz
ZXQpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfTsKKworCisgICAgLy8KKyAgICAvLyAg
R2V0IHRoZSBjb21waWxlZCBydWxlIGRhdGEgZnJvbSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAg
Ly8KKyAgICB1aW50MzJfdCAgICAgICAgb3V0RGF0YVNpemU7CisgICAgY29uc3QgdWludDhfdCAg
Km91dERhdGE7CisgICAgb3V0RGF0YSA9IGJpLT5nZXRCaW5hcnlSdWxlcyhvdXREYXRhU2l6ZSk7
CisKKyAgICAvLyBDb3B5IHRoZSBkYXRhIGZvcm1hdCB2ZXJzaW9uIG51bWJlcnMgZnJvbSB0aGUg
UkJCSSBkYXRhIGhlYWRlciBpbnRvIHRoZSBVRGF0YU1lbW9yeSBoZWFkZXIuCisgICAgdXBydl9t
ZW1jcHkoZGguaW5mby5mb3JtYXRWZXJzaW9uLCAoKFJCQklEYXRhSGVhZGVyICopb3V0RGF0YSkt
PmZGb3JtYXRWZXJzaW9uLCBzaXplb2YoZGguaW5mby5mb3JtYXRWZXJzaW9uKSk7CisKKyAgICAv
LworICAgIC8vICBDcmVhdGUgdGhlIG91dHB1dCBmaWxlCisgICAgLy8KKyAgICBzaXplX3QgYnl0
ZXNXcml0dGVuOworICAgIFVOZXdEYXRhTWVtb3J5ICpwRGF0YTsKKyAgICBwRGF0YSA9IHVkYXRh
X2NyZWF0ZShvdXREaXIsIE5VTEwsIG91dEZpbGVOYW1lLCAmKGRoLmluZm8pLCBjb3B5cmlnaHQs
ICZzdGF0dXMpOworICAgIGlmKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiZ2VuYnJrOiBDb3VsZCBub3Qgb3BlbiBvdXRwdXQgZmlsZSBcIiVzXCIsIFwiJXNc
IlxuIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgb3V0RmlsZU5hbWUsIHVfZXJyb3JOYW1l
KHN0YXR1cykpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAgfQorCisKKyAgICAvLyAgV3Jp
dGUgdGhlIGRhdGEgaXRzZWxmLgorICAgIHVkYXRhX3dyaXRlQmxvY2socERhdGEsIG91dERhdGEs
IG91dERhdGFTaXplKTsKKyAgICAvLyBmaW5pc2ggdXAgCisgICAgYnl0ZXNXcml0dGVuID0gdWRh
dGFfZmluaXNoKHBEYXRhLCAmc3RhdHVzKTsKKyAgICBpZihVX0ZBSUxVUkUoc3RhdHVzKSkgewor
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImdlbmJyazogZXJyb3IgJWQgd3JpdGluZyB0aGUgb3V0
cHV0IGZpbGVcbiIsIHN0YXR1cyk7CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9CisgICAg
CisgICAgaWYgKGJ5dGVzV3JpdHRlbiAhPSBvdXREYXRhU2l6ZSkgeworICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgIkVycm9yIHdyaXRpbmcgdG8gb3V0cHV0IGZpbGUgXCIlc1wiXG4iLCBvdXRGaWxl
TmFtZSk7CisgICAgICAgIGV4aXQoLTEpOworICAgIH0KKworICAgIGRlbGV0ZSBiaTsKKyAgICBk
ZWxldGVbXSBydWxlU291cmNlVTsKKyAgICBkZWxldGVbXSBydWxlQnVmZmVyQzsKKyAgICB1X2Ns
ZWFudXAoKTsKKworCisgICAgcHJpbnRmKCJnZW5icms6IHRvb2wgY29tcGxldGVkIHN1Y2Nlc3Nm
dWxseS5cbiIpOworICAgIHJldHVybiAwOworCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JS
RUFLX0lURVJBVElPTiAqLworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvZ2VuYnJrL3B1dGlsaW1wLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvZ2VuYnJrL3B1dGlsaW1wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDJjMWM2NmYxNzAxNDVjM2Qw
YmMwMjNiNjE3MDk1NzMzNDAyMDViNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvcHV0aWxpbXAuaApAQCAtMCwwICsxLDYxMSBAQAor
LyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDE0
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoK
KyogIEZJTEUgTkFNRSA6IHB1dGlsaW1wLmgKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAg
ICBEZXNjcmlwdGlvbgorKiAgIDEwLzE3LzA0ICAgIGdyaG90ZW4gICAgIE1vdmUgaW50ZXJuYWwg
ZnVuY3Rpb25zIGZyb20gcHV0aWwuaCB0byB0aGlzIGZpbGUuCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyovCisKKyNpZm5kZWYgUFVUSUxJTVBfSAorI2RlZmluZSBQVVRJTElNUF9ICisKKyNpbmNs
dWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKKworLyoq
CisgKiBcZGVmIFVfU0lHTkVEX1JJR0hUX1NISUZUX0lTX0FSSVRITUVUSUMKKyAqIE5lYXJseSBh
bGwgQ1BVcyBhbmQgY29tcGlsZXJzIGltcGxlbWVudCBhIHJpZ2h0LXNoaWZ0IG9mIGEgc2lnbmVk
IGludGVnZXIKKyAqIGFzIGFuIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgd2hpY2ggY29waWVzIHRo
ZSBzaWduIGJpdCAodGhlIE1vc3QgU2lnbmlmaWNhbnQgQml0IChNU0IpKQorICogaW50byB0aGUg
dmFjYXRlZCBiaXRzIChzaWduIGV4dGVuc2lvbikuCisgKiBGb3IgZXhhbXBsZSwgKGludDMyX3Qp
MHhmZmY1ZmZmMz4+NCBiZWNvbWVzIDB4ZmZmZjVmZmYgYW5kIC0xPj4xPS0xLgorICoKKyAqIFRo
aXMgY2FuIGJlIHVzZWZ1bCBmb3Igc3RvcmluZyBhIHNpZ25lZCB2YWx1ZSBpbiB0aGUgdXBwZXIg
Yml0cworICogYW5kIGFub3RoZXIgYml0IGZpZWxkIGluIHRoZSBsb3dlciBiaXRzLgorICogVGhl
IHNpZ25lZCB2YWx1ZSBjYW4gYmUgcmV0cmlldmVkIGJ5IHNpbXBsZSByaWdodC1zaGlmdGluZy4K
KyAqCisgKiBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgSmF2YSBsYW5ndWFnZS4KKyAqCisg
KiBIb3dldmVyLCB0aGUgQyBzdGFuZGFyZCBhbGxvd3MgY29tcGlsZXJzIHRvIGltcGxlbWVudCBh
IHJpZ2h0LXNoaWZ0IG9mIGEgc2lnbmVkIGludGVnZXIKKyAqIGFzIGEgTG9naWNhbCBTaGlmdCBS
aWdodCB3aGljaCBjb3BpZXMgYSAwIGludG8gdGhlIHZhY2F0ZWQgYml0cy4KKyAqIEZvciBleGFt
cGxlLCAoaW50MzJfdCkweGZmZjVmZmYzPj40IGJlY29tZXMgMHgwZmZmNWZmZiBhbmQgLTE+PjE9
MHg3ZmZmZmZmZi4KKyAqCisgKiBDb2RlIHRoYXQgZGVwZW5kcyBvbiB0aGUgbmF0dXJhbCBiZWhh
dmlvciBzaG91bGQgYmUgZ3VhcmRlZCB3aXRoIHRoaXMgbWFjcm8sCisgKiB3aXRoIGFuIGFsdGVy
bmF0ZSBwYXRoIGZvciB1bnVzdWFsIHBsYXRmb3Jtcy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZk
ZWYgVV9TSUdORURfUklHSFRfU0hJRlRfSVNfQVJJVEhNRVRJQworICAgIC8qIFVzZSB0aGUgcHJl
ZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbHNlCisgICAgLyoKKyAgICAgKiBOZWFybHkgYWxsIENQVXMg
JiBjb21waWxlcnMgaW1wbGVtZW50IGEgcmlnaHQtc2hpZnQgb2YgYSBzaWduZWQgaW50ZWdlcgor
ICAgICAqIGFzIGFuIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgKHdpdGggc2lnbiBleHRlbnNpb24p
LgorICAgICAqLworIyAgIGRlZmluZSBVX1NJR05FRF9SSUdIVF9TSElGVF9JU19BUklUSE1FVElD
IDEKKyNlbmRpZgorCisvKiogRGVmaW5lIHRoaXMgdG8gMSBpZiB5b3VyIHBsYXRmb3JtIHN1cHBv
cnRzIElFRUUgNzU0IGZsb2F0aW5nIHBvaW50LAorICAgdG8gMCBpZiBpdCBkb2VzIG5vdC4gKi8K
KyNpZm5kZWYgSUVFRV83NTQKKyMgICBkZWZpbmUgSUVFRV83NTQgMQorI2VuZGlmCisKKy8qKgor
ICogdWludHB0cl90IGlzIGFuIG9wdGlvbmFsIHBhcnQgb2YgdGhlIHN0YW5kYXJkIGRlZmluaXRp
b25zIGluIHN0ZGludC5oLgorICogVGhlIG9wZW5ncm91cC5vcmcgZG9jdW1lbnRhdGlvbiBmb3Ig
c3RkaW50Lmggc2F5cworICogIk9uIFhTSS1jb25mb3JtYW50IHN5c3RlbXMsIHRoZSBpbnRwdHJf
dCBhbmQgdWludHB0cl90IHR5cGVzIGFyZSByZXF1aXJlZDsKKyAqIG90aGVyd2lzZSwgdGhleSBh
cmUgb3B0aW9uYWwuIgorICogV2UgYXNzdW1lIHRoYXQgd2hlbiB1aW50cHRyX3QgaXMgZGVmaW5l
ZCwgVUlOVFBUUl9NQVggaXMgZGVmaW5lZCBhcyB3ZWxsLgorICoKKyAqIERvIG5vdCB1c2UgcHRy
ZGlmZl90IHNpbmNlIGl0IGlzIHNpZ25lZC4gc2l6ZV90IGlzIHVuc2lnbmVkLgorICovCisvKiBU
T0RPOiBUaGlzIGNoZWNrIGZhaWxzIG9uIHNvbWUgeiBlbnZpcm9ubWVudHMuIEZpbGVkIGEgdGlj
a2V0ICM5MzU3IGZvciB0aGlzLiAqLworI2lmICFkZWZpbmVkKF9faW50cHRyX3RfZGVmaW5lZCkg
JiYgIWRlZmluZWQoVUlOVFBUUl9NQVgpICYmIChVX1BMQVRGT1JNICE9IFVfUEZfT1MzOTApCit0
eXBlZGVmIHNpemVfdCB1aW50cHRyX3Q7CisjZW5kaWYKKworLyoqCisgKiBcZGVmIFVfSEFWRV9N
U1ZDXzIwMDNfT1JfRUFSTElFUgorICogRmxhZyBmb3Igd29ya2Fyb3VuZCBvZiBNU1ZDIDIwMDMg
b3B0aW1pemF0aW9uIGJ1Z3MKKyAqIEBpbnRlcm5hbAorICovCisjaWYgIWRlZmluZWQoVV9IQVZF
X01TVkNfMjAwM19PUl9FQVJMSUVSKSAmJiBkZWZpbmVkKF9NU0NfVkVSKSAmJiAoX01TQ19WRVIg
PCAxNDAwKQorI2RlZmluZSBVX0hBVkVfTVNWQ18yMDAzX09SX0VBUkxJRVIKKyNlbmRpZgorCisv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSovCisvKiogQHsgSW5mb3JtYXRpb24gYWJvdXQgUE9TSVggc3Vw
cG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSovCisKKyNpZmRlZiBVX0hBVkVfTkxfTEFOR0lORk9fQ09ERVNFVAorICAgIC8q
IFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fSEFTX1dJTjMy
X0FQSSB8fCBVX1BMQVRGT1JNID09IFVfUEZfQU5EUk9JRCB8fCBVX1BMQVRGT1JNID09IFVfUEZf
UU5YCisjICAgZGVmaW5lIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUIDAKKyNlbHNlCisjICAg
ZGVmaW5lIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUIDEKKyNlbmRpZgorCisjaWZkZWYgVV9O
TF9MQU5HSU5GT19DT0RFU0VUCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgIVVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUCisjICAgZGVmaW5lIFVfTkxfTEFOR0lO
Rk9fQ09ERVNFVCAtMQorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisgICAvKiBub3Qg
ZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9OTF9MQU5HSU5GT19DT0RFU0VUIENPREVT
RVQKKyNlbmRpZgorCisjaWZkZWYgVV9UWlNFVAorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2
YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSQorIyAgIGRlZmlu
ZSBVX1RaU0VUIF90enNldAorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisgICAvKiBu
b3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9UWlNFVCB0enNldAorI2VuZGlmCisK
KyNpZiBkZWZpbmVkKFVfVElNRVpPTkUpIHx8IGRlZmluZWQoVV9IQVZFX1RJTUVaT05FKQorICAg
IC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9Q
Rl9BTkRST0lECisjICAgZGVmaW5lIFVfVElNRVpPTkUgdGltZXpvbmUKKyNlbGlmIFVfUExBVEZP
Uk1fSVNfTElOVVhfQkFTRUQKKyMgICBpZiBkZWZpbmVkKF9fVUNMSUJDX18pCisgICAgICAgLyog
dUNsaWJjIGRvZXMgbm90IGhhdmUgX190aW1lem9uZSBvciBfdGltZXpvbmUuICovCisjICAgZWxp
ZiBkZWZpbmVkKF9ORVdMSUJfVkVSU0lPTikKKyMgICAgICBkZWZpbmUgVV9USU1FWk9ORSAgICAg
IF90aW1lem9uZQorIyAgIGVsaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICAgICAgLyogZ2xpYmMg
Ki8KKyMgICAgICBkZWZpbmUgVV9USU1FWk9ORSAgICAgIF9fdGltZXpvbmUKKyMgICBlbmRpZgor
I2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5lIFVfVElNRVpP
TkUgX3RpbWV6b25lCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfQlNEICYmICFkZWZpbmVkKF9f
TmV0QlNEX18pCisgICAvKiBub3QgZGVmaW5lZCAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BG
X09TNDAwCisgICAvKiBub3QgZGVmaW5lZCAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0lQ
SE9ORQorICAgLyogbm90IGRlZmluZWQgKi8KKyNlbHNlCisjICAgZGVmaW5lIFVfVElNRVpPTkUg
dGltZXpvbmUKKyNlbmRpZgorCisjaWZkZWYgVV9UWk5BTUUKKyAgICAvKiBVc2UgdGhlIHByZWRl
ZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKKyMg
ICBkZWZpbmUgVV9UWk5BTUUgX3R6bmFtZQorI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAw
CisgICAvKiBub3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9UWk5BTUUgdHpuYW1l
CisjZW5kaWYKKworI2lmZGVmIFVfSEFWRV9NTUFQCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVk
IHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisjICAgZGVmaW5lIFVf
SEFWRV9NTUFQIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9NTUFQIDEKKyNlbmRpZgorCisj
aWZkZWYgVV9IQVZFX1BPUEVOCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5lIFVfSEFWRV9Q
T1BFTiAwCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAKKyMgICBkZWZpbmUgVV9IQVZF
X1BPUEVOIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9QT1BFTiAxCisjZW5kaWYKKworLyoq
CisgKiBcZGVmIFVfSEFWRV9ESVJFTlRfSAorICogRGVmaW5lcyB3aGV0aGVyIGRpcmVudC5oIGlz
IGF2YWlsYWJsZS4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9IQVZFX0RJUkVOVF9ICisg
ICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9IQVNf
V0lOMzJfQVBJCisjICAgZGVmaW5lIFVfSEFWRV9ESVJFTlRfSCAwCisjZWxzZQorIyAgIGRlZmlu
ZSBVX0hBVkVfRElSRU5UX0ggMQorI2VuZGlmCisKKy8qKiBAfSAqLworCisvKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCisvKiogQHsgR0NDIGJ1aWx0IGluIGZ1bmN0aW9ucyBmb3IgYXRvbWljIG1lbW9y
eSBvcGVyYXRpb25zICAgICAgICAgICAgICAgICAgICovCisvKj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSov
CisKKy8qKgorICogXGRlZiBVX0hBVkVfR0NDX0FUT01JQ1MKKyAqIEBpbnRlcm5hbAorICovCisj
aWZkZWYgVV9IQVZFX0dDQ19BVE9NSUNTCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVl
LiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX01JTkdXCisgICAgI2RlZmluZSBVX0hBVkVf
R0NDX0FUT01JQ1MgMAorI2VsaWYgVV9HQ0NfTUFKT1JfTUlOT1IgPj0gNDA0IHx8IGRlZmluZWQo
X19jbGFuZ19fKQorICAgIC8qIFRPRE86IEludGVsIGljYyBhbmQgSUJNIHhsYyBvbiBBSVggYWxz
byBzdXBwb3J0IGdjYyBhdG9taWNzLiAgKEludGVsIG9yaWdpbmF0ZWQgdGhlbS4pCisgICAgICog
ICAgICAgQWRkIHRoZW0gZm9yIHRoZXNlIGNvbXBpbGVycy4KKyAgICAgKiBOb3RlOiBDbGFuZyBz
ZXRzIF9fR05VQ19fIGRlZmluZXMgZm9yIHZlcnNpb24gNC4yLCBzbyBtaXNzZXMgdGhlIDQuNCB0
ZXN0IGhlcmUuCisgICAgICovCisjICAgZGVmaW5lIFVfSEFWRV9HQ0NfQVRPTUlDUyAxCisjZWxz
ZQorIyAgIGRlZmluZSBVX0hBVkVfR0NDX0FUT01JQ1MgMAorI2VuZGlmCisKKy8qKiBAfSAqLwor
CisvKioKKyAqIFxkZWYgVV9IQVZFX1NURF9BVE9NSUNTCisgKiBEZWZpbmVzIHdoZXRoZXIgdGhl
IHN0YW5kYXJkIEMrKzExIDxhdG9taWM+IGlzIGF2YWlsYWJsZS4KKyAqIElDVSB3aWxsIHVzZSB0
aGlzIHdoZW4gYXZpYWxhYmxlLAorICogb3RoZXJ3aXNlIHdpbGwgZmFsbCBiYWNrIHRvIGNvbXBp
bGVyIG9yIHBsYXRmb3JtIHNwZWNpZmljIGFsdGVybmF0aXZlcy4KKyAqIEBpbnRlcm5hbAorICov
CisjaWZkZWYgVV9IQVZFX1NURF9BVE9NSUNTCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2VsaWYgIWRlZmluZWQoX19jcGx1c3BsdXMpIHx8IF9fY3BsdXNwbHVzPDIwMTEw
M0wKKyAgICAvKiBOb3QgQysrMTEsIGRpc2FibGUgdXNlIG9mIGF0b21pY3MgKi8KKyMgICBkZWZp
bmUgVV9IQVZFX1NURF9BVE9NSUNTIDAKKyNlbGlmIF9fY2xhbmdfXyAmJiBfX2NsYW5nX21ham9y
X189PTMgJiYgX19jbGFuZ19taW5vcl9fPD0xCisgICAgLyogQ2xhbmcgMy4xLCBoYXMgYXRvbWlj
IHZhcmlhYmxlIGluaXRpYWxpemVyIGJ1Zy4gKi8KKyMgICBkZWZpbmUgVV9IQVZFX1NURF9BVE9N
SUNTIDAKKyNlbHNlIAorICAgIC8qIFVfSEFWRV9BVE9NSUMgaXMgdHlwaWNhbGx5IHNldCBieSBh
biBhdXRvY29uZiB0ZXN0IG9mICNpbmNsdWRlIDxhdG9taWM+ICAqLworICAgIC8qICAgQ2FuIGJl
IHNldCBtYW51YWxseSwgb3IgbGVmdCB1bmRlZmluZWQsIG9uIHBsYXRmb3JtcyB3aXRob3V0IGF1
dG9jb25mLiAqLworIyAgIGlmIGRlZmluZWQoVV9IQVZFX0FUT01JQykgJiYgIFVfSEFWRV9BVE9N
SUMgCisjICAgICAgZGVmaW5lIFVfSEFWRV9TVERfQVRPTUlDUyAxCisjICAgZWxzZQorIyAgICAg
IGRlZmluZSBVX0hBVkVfU1REX0FUT01JQ1MgMAorIyAgIGVuZGlmCisjZW5kaWYKKworCisvKj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSovCisvKiogQHsgQ29kZSBhbGlnbm1lbnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSovCisKKy8qKgorICogXGRlZiBVX0FMSUdOX0NPREUKKyAqIFRoaXMgaXMgdXNlZCB0
byBhbGlnbiBjb2RlIGZyYWdtZW50cyB0byBhIHNwZWNpZmljIGJ5dGUgYm91bmRhcnkuCisgKiBU
aGlzIGlzIHVzZWZ1bCBmb3IgZ2V0dGluZyBjb25zaXN0ZW50IHBlcmZvcm1hbmNlIHRlc3QgcmVz
dWx0cy4KKyAqIEBpbnRlcm5hbAorICovCisjaWZkZWYgVV9BTElHTl9DT0RFCisgICAgLyogVXNl
IHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgZGVm
aW5lZChfTV9JWDg2KSAmJiAhZGVmaW5lZChfTUFOQUdFRCkKKyMgICBkZWZpbmUgVV9BTElHTl9D
T0RFKGJvdW5kYXJ5U2l6ZSkgX19hc20gIGFsaWduIGJvdW5kYXJ5U2l6ZQorI2Vsc2UKKyMgICBk
ZWZpbmUgVV9BTElHTl9DT0RFKGJvdW5kYXJ5U2l6ZSkgCisjZW5kaWYKKworLyoqIEB9ICovCisK
Ky8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ki8KKy8qKiBAeyBQcm9ncmFtcyB1c2VkIGJ5IElDVSBjb2Rl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ki8KKworLyoqCisgKiBcZGVmIFVfTUFLRV9JU19OTUFLRQorICogRGVmaW5l
cyB3aGV0aGVyIHRoZSAibWFrZSIgcHJvZ3JhbSBpcyBXaW5kb3dzIG5tYWtlLgorICovCisjaWZk
ZWYgVV9NQUtFX0lTX05NQUtFCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX1dJTkRPV1MKKyMgICBkZWZpbmUgVV9NQUtFX0lTX05N
QUtFIDEKKyNlbHNlCisjICAgZGVmaW5lIFVfTUFLRV9JU19OTUFLRSAwCisjZW5kaWYKKworLyoq
IEB9ICovCisKKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLworLyogUGxhdGZvcm0gdXRpbGl0aWVzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ki8KKworLyoqCisgKiBQbGF0Zm9ybSB1dGlsaXRpZXMgaXNvbGF0
ZXMgdGhlIHBsYXRmb3JtIGRlcGVuZGVuY2llcyBvZiB0aGUKKyAqIGxpYmFyYXJ5LiAgRm9yIGVh
Y2ggcGxhdGZvcm0gd2hpY2ggdGhpcyBjb2RlIGlzIHBvcnRlZCB0bywgdGhlc2UKKyAqIGZ1bmN0
aW9ucyBtYXkgaGF2ZSB0byBiZSByZS1pbXBsZW1lbnRlZC4KKyAqLworCisvKioKKyAqIEZsb2F0
aW5nIHBvaW50IHV0aWxpdHkgdG8gZGV0ZXJtaW5lIGlmIGEgZG91YmxlIGlzIE5vdCBhIE51bWJl
ciAoTmFOKS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIFVCb29sICAgVV9FWFBPUlQy
IHVwcnZfaXNOYU4oZG91YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRv
IGRldGVybWluZSBpZiBhIGRvdWJsZSBoYXMgYW4gaW5maW5pdGUgdmFsdWUuCisgKiBAaW50ZXJu
YWwKKyAqLworVV9JTlRFUk5BTCBVQm9vbCAgIFVfRVhQT1JUMiB1cHJ2X2lzSW5maW5pdGUoZG91
YmxlIGQpOworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGRldGVybWluZSBpZiBh
IGRvdWJsZSBoYXMgYSBwb3NpdGl2ZSBpbmZpbml0ZSB2YWx1ZS4KKyAqIEBpbnRlcm5hbAorICov
CitVX0lOVEVSTkFMIFVCb29sICAgVV9FWFBPUlQyIHVwcnZfaXNQb3NpdGl2ZUluZmluaXR5KGRv
dWJsZSBkKTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBkZXRlcm1pbmUgaWYg
YSBkb3VibGUgaGFzIGEgbmVnYXRpdmUgaW5maW5pdGUgdmFsdWUuCisgKiBAaW50ZXJuYWwKKyAq
LworVV9JTlRFUk5BTCBVQm9vbCAgIFVfRVhQT1JUMiB1cHJ2X2lzTmVnYXRpdmVJbmZpbml0eShk
b3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdGhhdCByZXR1cm5zIGEg
Tm90IGEgTnVtYmVyIChOYU4pIHZhbHVlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwg
ZG91YmxlICBVX0VYUE9SVDIgdXBydl9nZXROYU4odm9pZCk7CisvKioKKyAqIEZsb2F0aW5nIHBv
aW50IHV0aWxpdHkgdGhhdCByZXR1cm5zIGFuIGluZmluaXRlIHZhbHVlLgorICogQGludGVybmFs
CisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9nZXRJbmZpbml0eSh2b2lk
KTsKKworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIHRydW5jYXRlIGEgZG91Ymxl
LgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl90
cnVuYyhkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3Vs
YXRlIHRoZSBmbG9vciBvZiBhIGRvdWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFM
IGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfZmxvb3IoZG91YmxlIGQpOworLyoqCisgKiBGbG9hdGlu
ZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSB0aGUgY2VpbGluZyBvZiBhIGRvdWJsZS4KKyAq
IEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfY2VpbChk
b3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRo
ZSBhYnNvbHV0ZSB2YWx1ZSBvZiBhIGRvdWJsZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVS
TkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfZmFicyhkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0
aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBmcmFjdGlvbmFsIGFuZCBpbnRlZ2Vy
IHBhcnRzIG9mIGEgZG91YmxlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91Ymxl
ICBVX0VYUE9SVDIgdXBydl9tb2RmKGRvdWJsZSBkLCBkb3VibGUqIHBpbnRlZ2VyKTsKKy8qKgor
ICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIHJlbWFpbmRlciBvZiBh
IGRvdWJsZSBkaXZpZGVkIGJ5IGFub3RoZXIgZG91YmxlLgorICogQGludGVybmFsCisgKi8KK1Vf
SU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9mbW9kKGRvdWJsZSBkLCBkb3VibGUgeSk7
CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIGQgdG8gdGhlIHBv
d2VyIG9mIGV4cG9uZW50IChkXmV4cG9uZW50KS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVS
TkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfcG93KGRvdWJsZSBkLCBkb3VibGUgZXhwb25lbnQp
OworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSAxMCB0byB0aGUg
cG93ZXIgb2YgZXhwb25lbnQgKDEwXmV4cG9uZW50KS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lO
VEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfcG93MTAoaW50MzJfdCBleHBvbmVudCk7Cisv
KioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBtYXhpbXVtIHZh
bHVlIG9mIHR3byBkb3VibGVzLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91Ymxl
ICBVX0VYUE9SVDIgdXBydl9mbWF4KGRvdWJsZSBkLCBkb3VibGUgeSk7CisvKioKKyAqIEZsb2F0
aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHR3byBk
b3VibGVzLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIg
dXBydl9mbWluKGRvdWJsZSBkLCBkb3VibGUgeSk7CisvKioKKyAqIFByaXZhdGUgdXRpbGl0eSB0
byBjYWxjdWxhdGUgdGhlIG1heGltdW0gdmFsdWUgb2YgdHdvIGludGVnZXJzLgorICogQGludGVy
bmFsCisgKi8KK1VfSU5URVJOQUwgaW50MzJfdCBVX0VYUE9SVDIgdXBydl9tYXgoaW50MzJfdCBk
LCBpbnQzMl90IHkpOworLyoqCisgKiBQcml2YXRlIHV0aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBt
aW5pbXVtIHZhbHVlIG9mIHR3byBpbnRlZ2Vycy4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVS
TkFMIGludDMyX3QgVV9FWFBPUlQyIHVwcnZfbWluKGludDMyX3QgZCwgaW50MzJfdCB5KTsKKwor
I2lmIFVfSVNfQklHX0VORElBTgorIyAgIGRlZmluZSB1cHJ2X2lzTmVnYXRpdmUobnVtYmVyKSAo
Kigoc2lnbmVkIGNoYXIgKikmKG51bWJlcikpPDApCisjZWxzZQorIyAgIGRlZmluZSB1cHJ2X2lz
TmVnYXRpdmUobnVtYmVyKSAoKigoc2lnbmVkIGNoYXIgKikmKG51bWJlcikrc2l6ZW9mKG51bWJl
ciktMSk8MCkKKyNlbmRpZgorCisvKioKKyAqIFJldHVybiB0aGUgbGFyZ2VzdCBwb3NpdGl2ZSBu
dW1iZXIgdGhhdCBjYW4gYmUgcmVwcmVzZW50ZWQgYnkgYW4gaW50ZWdlcgorICogdHlwZSBvZiBh
cmJpdHJhcnkgYml0IGxlbmd0aC4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJs
ZSAgVV9FWFBPUlQyIHVwcnZfbWF4TWFudGlzc2Eodm9pZCk7CisKKy8qKgorICogRmxvYXRpbmcg
cG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIGxvZ2FyaXRobSBvZiBhIGRvdWJsZS4KKyAq
IEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9FWFBPUlQyIHVwcnZfbG9nKGRv
dWJsZSBkKTsKKworLyoqCisgKiBEb2VzIGNvbW1vbiBub3Rpb24gb2Ygcm91bmRpbmcgZS5nLiB1
cHJ2X2Zsb29yKHggKyAwLjUpOworICogQHBhcmFtIHggdGhlIGRvdWJsZSBudW1iZXIKKyAqIEBy
ZXR1cm4gdGhlIHJvdW5kZWQgZG91YmxlCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBk
b3VibGUgIFVfRVhQT1JUMiB1cHJ2X3JvdW5kKGRvdWJsZSB4KTsKKworI2lmIDAKKy8qKgorICog
UmV0dXJucyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCBpbiBh
IGRvdWJsZSBudW1iZXIgeC4KKyAqCisgKiBAcGFyYW0geCB0aGUgZG91YmxlIG51bWJlcgorICog
QHJldHVybiB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCBpbiBh
IGRvdWJsZSBudW1iZXIgeC4KKyAqIEBpbnRlcm5hbAorICovCisvKlVfSU5URVJOQUwgaW50MzJf
dCAgVV9FWFBPUlQyIHVwcnZfZGlnaXRzQWZ0ZXJEZWNpbWFsKGRvdWJsZSB4KTsqLworI2VuZGlm
CisKKyNpZiAhVV9DSEFSU0VUX0lTX1VURjgKKy8qKgorICogUGxlYXNlIHVzZSB1Y252X2dldERl
ZmF1bHROYW1lKCkgaW5zdGVhZC4KKyAqIFJldHVybiB0aGUgZGVmYXVsdCBjb2RlcGFnZSBmb3Ig
dGhpcyBwbGF0Zm9ybSBhbmQgbG9jYWxlLgorICogVGhpcyBmdW5jdGlvbiBjYW4gY2FsbCBzZXRs
b2NhbGUoKSBvbiBVbml4IHBsYXRmb3Jtcy4gUGxlYXNlIHJlYWQgdGhlCisgKiBwbGF0Zm9ybSBk
b2N1bWVudGF0aW9uIG9uIHNldGxvY2FsZSgpIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24u
CisgKiBAcmV0dXJuIHRoZSBkZWZhdWx0IGNvZGVwYWdlIGZvciB0aGlzIHBsYXRmb3JtIAorICog
QGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgY29uc3QgY2hhciogIFVfRVhQT1JUMiB1cHJ2X2dl
dERlZmF1bHRDb2RlcGFnZSh2b2lkKTsKKyNlbmRpZgorCisvKioKKyAqIFBsZWFzZSB1c2UgdWxv
Y19nZXREZWZhdWx0KCkgaW5zdGVhZC4KKyAqIFJldHVybiB0aGUgZGVmYXVsdCBsb2NhbGUgSUQg
c3RyaW5nIGJ5IHF1ZXJ5aW5nIHRocyBzeXN0ZW0sIG9yCisgKiAgICAgemVybyBpZiBvbmUgY2Fu
bm90IGJlIGZvdW5kLiAKKyAqIFRoaXMgZnVuY3Rpb24gY2FuIGNhbGwgc2V0bG9jYWxlKCkgb24g
VW5peCBwbGF0Zm9ybXMuIFBsZWFzZSByZWFkIHRoZQorICogcGxhdGZvcm0gZG9jdW1lbnRhdGlv
biBvbiBzZXRsb2NhbGUoKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgorICogQHJldHVy
biB0aGUgZGVmYXVsdCBsb2NhbGUgSUQgc3RyaW5nCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRF
Uk5BTCBjb25zdCBjaGFyKiAgVV9FWFBPUlQyIHVwcnZfZ2V0RGVmYXVsdExvY2FsZUlEKHZvaWQp
OworCisvKioKKyAqIFRpbWUgem9uZSB1dGlsaXRpZXMKKyAqCisgKiBXcmFwcGVycyBmb3IgQyBy
dW50aW1lIGxpYnJhcnkgZnVuY3Rpb25zIHJlbGF0aW5nIHRvIHRpbWV6b25lcy4KKyAqIFRoZSB0
X3R6c2V0KCkgZnVuY3Rpb24gKHNpbWlsYXIgdG8gdHpzZXQpIHVzZXMgdGhlIGN1cnJlbnQgc2V0
dGluZworICogb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIFRaIHRvIGFzc2lnbiB2YWx1ZXMg
dG8gdGhyZWUgZ2xvYmFsCisgKiB2YXJpYWJsZXM6IGRheWxpZ2h0LCB0aW1lem9uZSwgYW5kIHR6
bmFtZS4gVGhlc2UgdmFyaWFibGVzIGhhdmUgdGhlCisgKiBmb2xsb3dpbmcgbWVhbmluZ3MsIGFu
ZCBhcmUgZGVjbGFyZWQgaW4gJmx0O3RpbWUuaCZndDsuCisgKgorICogICBkYXlsaWdodCAgIE5v
bnplcm8gaWYgZGF5bGlnaHQtc2F2aW5nLXRpbWUgem9uZSAoRFNUKSBpcyBzcGVjaWZpZWQKKyAq
ICAgICAgICAgICAgICBpbiBUWjsgb3RoZXJ3aXNlLCAwLiBEZWZhdWx0IHZhbHVlIGlzIDEuCisg
KiAgIHRpbWV6b25lICAgRGlmZmVyZW5jZSBpbiBzZWNvbmRzIGJldHdlZW4gY29vcmRpbmF0ZWQg
dW5pdmVyc2FsCisgKiAgICAgICAgICAgICAgdGltZSBhbmQgbG9jYWwgdGltZS4gRS5nLiwgLTI4
LDgwMCBmb3IgUFNUIChHTVQtOGhycykKKyAqICAgdHpuYW1lKDApICBUaHJlZS1sZXR0ZXIgdGlt
ZS16b25lIG5hbWUgZGVyaXZlZCBmcm9tIFRaIGVudmlyb25tZW50CisgKiAgICAgICAgICAgICAg
dmFyaWFibGUuIEUuZy4sICJQU1QiLgorICogICB0em5hbWUoMSkgIFRocmVlLWxldHRlciBEU1Qg
em9uZSBuYW1lIGRlcml2ZWQgZnJvbSBUWiBlbnZpcm9ubWVudAorICogICAgICAgICAgICAgIHZh
cmlhYmxlLiAgRS5nLiwgIlBEVCIuIElmIERTVCB6b25lIGlzIG9taXR0ZWQgZnJvbSBUWiwKKyAq
ICAgICAgICAgICAgICB0em5hbWUoMSkgaXMgYW4gZW1wdHkgc3RyaW5nLgorICoKKyAqIE5vdGVz
OiBGb3IgZXhhbXBsZSwgdG8gc2V0IHRoZSBUWiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBjb3Jy
ZXNwb25kCisgKiB0byB0aGUgY3VycmVudCB0aW1lIHpvbmUgaW4gR2VybWFueSwgeW91IGNhbiB1
c2Ugb25lIG9mIHRoZQorICogZm9sbG93aW5nIHN0YXRlbWVudHM6CisgKgorICogICBzZXQgVFo9
R1NUMUdEVAorICogICBzZXQgVFo9R1NUKzFHRFQKKyAqCisgKiBJZiB0aGUgVFogdmFsdWUgaXMg
bm90IHNldCwgdF90enNldCgpIGF0dGVtcHRzIHRvIHVzZSB0aGUgdGltZSB6b25lCisgKiBpbmZv
cm1hdGlvbiBzcGVjaWZpZWQgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0uIFVuZGVyIFdpbmRvd3Mg
TlQKKyAqIGFuZCBXaW5kb3dzIDk1LCB0aGlzIGluZm9ybWF0aW9uIGlzIHNwZWNpZmllZCBpbiB0
aGUgQ29udHJvbCBQYW5lbCdzCisgKiBEYXRlL1RpbWUgYXBwbGljYXRpb24uCisgKiBAaW50ZXJu
YWwKKyAqLworVV9JTlRFUk5BTCB2b2lkICAgICBVX0VYUE9SVDIgdXBydl90enNldCh2b2lkKTsK
KworLyoqCisgKiBEaWZmZXJlbmNlIGluIHNlY29uZHMgYmV0d2VlbiBjb29yZGluYXRlZCB1bml2
ZXJzYWwKKyAqIHRpbWUgYW5kIGxvY2FsIHRpbWUuIEUuZy4sIC0yOCw4MDAgZm9yIFBTVCAoR01U
LThocnMpCisgKiBAcmV0dXJuIHRoZSBkaWZmZXJlbmNlIGluIHNlY29uZHMgYmV0d2VlbiBjb29y
ZGluYXRlZCB1bml2ZXJzYWwgdGltZSBhbmQgbG9jYWwgdGltZS4KKyAqIEBpbnRlcm5hbAorICov
CitVX0lOVEVSTkFMIGludDMyX3QgIFVfRVhQT1JUMiB1cHJ2X3RpbWV6b25lKHZvaWQpOworCisv
KioKKyAqICAgdHpuYW1lKDApICBUaHJlZS1sZXR0ZXIgdGltZS16b25lIG5hbWUgZGVyaXZlZCBm
cm9tIFRaIGVudmlyb25tZW50CisgKiAgICAgICAgICAgICAgdmFyaWFibGUuIEUuZy4sICJQU1Qi
LgorICogICB0em5hbWUoMSkgIFRocmVlLWxldHRlciBEU1Qgem9uZSBuYW1lIGRlcml2ZWQgZnJv
bSBUWiBlbnZpcm9ubWVudAorICogICAgICAgICAgICAgIHZhcmlhYmxlLiAgRS5nLiwgIlBEVCIu
IElmIERTVCB6b25lIGlzIG9taXR0ZWQgZnJvbSBUWiwKKyAqICAgICAgICAgICAgICB0em5hbWUo
MSkgaXMgYW4gZW1wdHkgc3RyaW5nLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgY29u
c3QgY2hhciogVV9FWFBPUlQyIHVwcnZfdHpuYW1lKGludCBuKTsKKworLyoqCisgKiBHZXQgVVRD
IChHTVQpIHRpbWUgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIDA6MDAgb24gMS8xLzE5
NzAuCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGFmZmVjdGVkIGJ5ICdmYWtldGltZScgYW5kIHNob3Vs
ZCBiZSB0aGUgYm90dGxlbmVjayBmb3IgYWxsIHVzZXItdmlzaWJsZSBJQ1UgdGltZSBmdW5jdGlv
bnMuCisgKiBAcmV0dXJuIHRoZSBVVEMgdGltZSBtZWFzdXJlZCBpbiBtaWxsaXNlY29uZHMKKyAq
IEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIFVEYXRlIFVfRVhQT1JUMiB1cHJ2X2dldFVUQ3Rp
bWUodm9pZCk7CisKKy8qKgorICogR2V0IFVUQyAoR01UKSB0aW1lIG1lYXN1cmVkIGluIG1pbGxp
c2Vjb25kcyBzaW5jZSAwOjAwIG9uIDEvMS8xOTcwLgorICogVGhpcyBmdW5jdGlvbiBpcyBub3Qg
YWZmZWN0ZWQgYnkgJ2Zha2V0aW1lJywgc28gaXQgc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBsb3cg
bGV2ZWwgdGVzdCBmdW5jdGlvbnMtIG5vdCBieSBhbnl0aGluZyB0aGF0CisgKiBleHBvc2VzIHRp
bWUgdG8gdGhlIGVuZCB1c2VyLgorICogQHJldHVybiB0aGUgVVRDIHRpbWUgbWVhc3VyZWQgaW4g
bWlsbGlzZWNvbmRzCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBVRGF0ZSBVX0VYUE9S
VDIgdXBydl9nZXRSYXdVVEN0aW1lKHZvaWQpOworCisvKioKKyAqIERldGVybWluZSB3aGV0aGVy
IGEgcGF0aG5hbWUgaXMgYWJzb2x1dGUgb3Igbm90LCBhcyBkZWZpbmVkIGJ5IHRoZSBwbGF0Zm9y
bS4KKyAqIEBwYXJhbSBwYXRoIFBhdGhuYW1lIHRvIHRlc3QKKyAqIEByZXR1cm4gVFJVRSBpZiB0
aGUgcGF0aCBpcyBhYnNvbHV0ZQorICogQGludGVybmFsIChJQ1UgMy4wKQorICovCitVX0lOVEVS
TkFMIFVCb29sIFVfRVhQT1JUMiB1cHJ2X3BhdGhJc0Fic29sdXRlKGNvbnN0IGNoYXIgKnBhdGgp
OworCisvKioKKyAqIFVzZSBVX01BWF9QVFIgaW5zdGVhZCBvZiB0aGlzIGZ1bmN0aW9uLgorICog
QHBhcmFtIHZvaWQgcG9pbnRlciB0byB0ZXN0CisgKiBAcmV0dXJuIHRoZSBsYXJnZXN0IHBvc3Np
YmxlIHBvaW50ZXIgZ3JlYXRlciB0aGFuIHRoZSBiYXNlCisgKiBAaW50ZXJuYWwgKElDVSAzLjgp
CisgKi8KK1VfSU5URVJOQUwgdm9pZCAqIFVfRVhQT1JUMiB1cHJ2X21heGltdW1QdHIodm9pZCAq
YmFzZSk7CisKKy8qKgorICogTWF4aW11bSB2YWx1ZSBvZiBhICh2b2lkKikgLSB1c2UgdG8gaW5k
aWNhdGUgdGhlIGxpbWl0IG9mIGFuICdpbmZpbml0ZScgYnVmZmVyLgorICogSW4gZmFjdCwgYnVm
ZmVyIHNpemVzIG11c3Qgbm90IGV4Y2VlZCAyR0Igc28gdGhhdCB0aGUgZGlmZmVyZW5jZSBiZXR3
ZWVuCisgKiB0aGUgYnVmZmVyIGxpbWl0IGFuZCB0aGUgYnVmZmVyIHN0YXJ0IGNhbiBiZSBleHBy
ZXNzZWQgaW4gYW4gaW50MzJfdC4KKyAqCisgKiBUaGUgZGVmaW5pdGlvbiBvZiBVX01BWF9QVFIg
bXVzdCBmdWxmaWxsIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqIC0gcmV0dXJuIHRoZSBs
YXJnZXN0IHBvc3NpYmxlIHBvaW50ZXIgZ3JlYXRlciB0aGFuIGJhc2UKKyAqIC0gcmV0dXJuIGEg
dmFsaWQgcG9pbnRlciBhY2NvcmRpbmcgdG8gdGhlIG1hY2hpbmUgYXJjaGl0ZWN0dXJlIChBUy80
MDAsIDY0LWJpdCwgZXRjLikKKyAqIC0gYXZvaWQgd3JhcHBpbmcgYXJvdW5kIGF0IGhpZ2ggYWRk
cmVzc2VzCisgKiAtIG1ha2Ugc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBwb2ludGVyIGlzIG5vdCBm
YXJ0aGVyIGZyb20gYmFzZSB0aGFuIDB4N2ZmZmZmZmYgYnl0ZXMKKyAqCisgKiBAcGFyYW0gYmFz
ZSBUaGUgYmVnaW5uaW5nIG9mIGEgYnVmZmVyIHRvIGZpbmQgdGhlIG1heGltdW0gb2Zmc2V0IGZy
b20KKyAqIEBpbnRlcm5hbAorICovCisjaWZuZGVmIFVfTUFYX1BUUgorIyAgaWYgVV9QTEFURk9S
TSA9PSBVX1BGX09TMzkwICYmICFkZWZpbmVkKF9MUDY0KQorICAgIC8qIFdlIGhhdmUgMzEtYml0
IHBvaW50ZXJzLiAqLworIyAgICBkZWZpbmUgVV9NQVhfUFRSKGJhc2UpICgodm9pZCAqKTB4N2Zm
ZmZmZmYpCisjICBlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMAorIyAgICBkZWZpbmUgVV9N
QVhfUFRSKGJhc2UpIHVwcnZfbWF4aW11bVB0cigodm9pZCAqKWJhc2UpCisjICBlbGlmIDAKKyAg
ICAvKgorICAgICAqIEZvciBwbGF0Zm9ybXMgd2hlcmUgcG9pbnRlcnMgYXJlIHNjYWxhciB2YWx1
ZXMgKHdoaWNoIGlzIG5vcm1hbCwgYnV0IHVubGlrZSBpNS9PUykKKyAgICAgKiBidXQgdGhhdCBk
byBub3QgZGVmaW5lIHVpbnRwdHJfdC4KKyAgICAgKgorICAgICAqIEhvd2V2ZXIsIHRoaXMgZG9l
cyBub3Qgd29yayBvbiBtb2Rlcm4gY29tcGlsZXJzOgorICAgICAqIFRoZSBDKysgc3RhbmRhcmQg
ZG9lcyBub3QgZGVmaW5lIHBvaW50ZXIgb3ZlcmZsb3csIGFuZCBhbGxvd3MgY29tcGlsZXJzIHRv
CisgICAgICogYXNzdW1lIHRoYXQgcCt1PnAgZm9yIGFueSBwb2ludGVyIHAgYW5kIGFueSBpbnRl
Z2VyIHU+MC4KKyAgICAgKiBUaHVzLCBtb2Rlcm4gY29tcGlsZXJzIG9wdGltaXplIGF3YXkgdGhl
ICI+IiBjb21wYXJpc29uLgorICAgICAqIChTZWUgSUNVIHRpY2tldHMgIzcxODcgYW5kICM4MDk2
LikKKyAgICAgKi8KKyMgICAgZGVmaW5lIFVfTUFYX1BUUihiYXNlKSBcCisgICAgKCh2b2lkICop
KCgoY2hhciAqKShiYXNlKSsweDdmZmZmZmZmdSkgPiAoY2hhciAqKShiYXNlKSBcCisgICAgICAg
ID8gKChjaGFyICopKGJhc2UpKzB4N2ZmZmZmZmZ1KSBcCisgICAgICAgIDogKGNoYXIgKiktMSkp
CisjICBlbHNlCisgICAgLyogRGVmYXVsdCB2ZXJzaW9uLiBDKysgc3RhbmRhcmQgY29tcGxpYW50
IGZvciBzY2FsYXIgcG9pbnRlcnMuICovCisjICAgIGRlZmluZSBVX01BWF9QVFIoYmFzZSkgXAor
ICAgICgodm9pZCAqKSgoKHVpbnRwdHJfdCkoYmFzZSkrMHg3ZmZmZmZmZnUpID4gKHVpbnRwdHJf
dCkoYmFzZSkgXAorICAgICAgICA/ICgodWludHB0cl90KShiYXNlKSsweDdmZmZmZmZmdSkgXAor
ICAgICAgICA6ICh1aW50cHRyX3QpLTEpKQorIyAgZW5kaWYKKyNlbmRpZgorCisvKiAgRHluYW1p
YyBMaWJyYXJ5IEZ1bmN0aW9ucyAqLworCit0eXBlZGVmIHZvaWQgKFVWb2lkRnVuY3Rpb24pKHZv
aWQpOworCisjaWYgVV9FTkFCTEVfRFlMT0FECisvKioKKyAqIExvYWQgYSBsaWJyYXJ5CisgKiBA
aW50ZXJuYWwgKElDVSA0LjQpCisgKi8KK1VfSU5URVJOQUwgdm9pZCAqIFVfRVhQT1JUMiB1cHJ2
X2RsX29wZW4oY29uc3QgY2hhciAqbGliTmFtZSwgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworLyoq
CisgKiBDbG9zZSBhIGxpYnJhcnkKKyAqIEBpbnRlcm5hbCAoSUNVIDQuNCkKKyAqLworVV9JTlRF
Uk5BTCB2b2lkIFVfRVhQT1JUMiB1cHJ2X2RsX2Nsb3NlKCB2b2lkICpsaWIsIFVFcnJvckNvZGUg
KnN0YXR1cyk7CisKKy8qKgorICogRXh0cmFjdCBhIHN5bWJvbCBmcm9tIGEgbGlicmFyeSAoZnVu
Y3Rpb24pCisgKiBAaW50ZXJuYWwgKElDVSA0LjgpCisgKi8KK1VfSU5URVJOQUwgVVZvaWRGdW5j
dGlvbiogVV9FWFBPUlQyIHVwcnZfZGxzeW1fZnVuYyggdm9pZCAqbGliLCBjb25zdCBjaGFyICpz
eW1ib2xOYW1lLCBVRXJyb3JDb2RlICpzdGF0dXMpOworCisvKioKKyAqIEV4dHJhY3QgYSBzeW1i
b2wgZnJvbSBhIGxpYnJhcnkgKGZ1bmN0aW9uKQorICogTm90IGltcGxlbWVudGVkLCBubyBjbGll
bnRzLgorICogQGludGVybmFsCisgKi8KKy8qIFVfSU5URVJOQUwgdm9pZCAqIFVfRVhQT1JUMiB1
cHJ2X2Rsc3ltX2RhdGEoIHZvaWQgKmxpYiwgY29uc3QgY2hhciAqc3ltYm9sTmFtZSwgVUVycm9y
Q29kZSAqc3RhdHVzKTsgKi8KKworI2VuZGlmCisKKy8qKgorICogRGVmaW5lIG1hbGxvYyBhbmQg
cmVsYXRlZCBmdW5jdGlvbnMKKyAqIEBpbnRlcm5hbAorICovCisjaWYgVV9QTEFURk9STSA9PSBV
X1BGX09TNDAwCisjIGRlZmluZSB1cHJ2X2RlZmF1bHRfbWFsbG9jKHgpIF9DX1RTX21hbGxvYyh4
KQorIyBkZWZpbmUgdXBydl9kZWZhdWx0X3JlYWxsb2MoeCx5KSBfQ19UU19yZWFsbG9jKHgseSkK
KyMgZGVmaW5lIHVwcnZfZGVmYXVsdF9mcmVlKHgpIF9DX1RTX2ZyZWUoeCkKKy8qIGFsc28gX0Nf
VFNfY2FsbG9jKHgpICovCisjZWxzZQorLyogQyBkZWZhdWx0cyAqLworIyBkZWZpbmUgdXBydl9k
ZWZhdWx0X21hbGxvYyh4KSBtYWxsb2MoeCkKKyMgZGVmaW5lIHVwcnZfZGVmYXVsdF9yZWFsbG9j
KHgseSkgcmVhbGxvYyh4LHkpCisjIGRlZmluZSB1cHJ2X2RlZmF1bHRfZnJlZSh4KSBmcmVlKHgp
CisjZW5kaWYKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9nZW5icmsvcmJiaWRhdGEuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9nZW5icmsvcmJiaWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTI3NGMzYWRiYmY0OTI1NzFl
NzIxM2NjNTIyNGQ0YjExY2VkMzNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9yYmJpZGF0YS5oCkBAIC0wLDAgKzEsMjAwIEBACisv
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3Ro
ZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyog
ICBmaWxlIG5hbWU6ICByYmJpZGF0YS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0
YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgUkJCSSBk
YXRhIGZvcm1hdHMgIEluY2x1ZGVzCisqCisqICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJ1
Y3RzIHRoYXQgZGVzY3JpYmVzIHRoZSBmb3JtYXQgb2YgdGhlIEJpbmFyeSBSQkJJIGRhdGEsCisq
ICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBpdCBpcyBzdG9yZWQgaW4gSUNVJ3MgZGF0YSBm
aWxlLgorKgorKiAgICAgIFJCQklEYXRhV3JhcHBlciAgLSAgSW5zdGFuY2VzIG9mIHRoaXMgY2xh
c3Mgc2l0IGJldHdlZW4gdGhlCisqICAgICAgICAgICAgICAgICAgICAgICAgICByYXcgZGF0YSBz
dHJ1Y3RzIGFuZCB0aGUgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3Igb2JqZWN0cworKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhhdCBhcmUgY3JlYXRlZCBieSBhcHBsaWNhdGlvbnMuICBUaGUg
d3JhcHBlciBjbGFzcworKiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXMgcmVmZXJl
bmNlIGNvdW50aW5nIGZvciB0aGUgdW5kZXJseWluZyBkYXRhLAorKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgYW5kIGRpcmVjdCBwb2ludGVycyB0byBkYXRhIHRoYXQgd291bGQgbm90IG90aGVy
d2lzZQorKiAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgYWNjZXNzaWJsZSB3aXRob3V0IHVn
bHkgcG9pbnRlciBhcml0aG1ldGljLiAgVGhlCisqICAgICAgICAgICAgICAgICAgICAgICAgICB3
cmFwcGVyIGRvZXMgbm90IGF0dGVtcHQgdG8gcHJvdmlkZSBhbnkgaGlnaGVyIGxldmVsCisqICAg
ICAgICAgICAgICAgICAgICAgICAgICBhYnN0cmFjdGlvbnMgZm9yIHRoZSBkYXRhIGl0c2VsZi4K
KyoKKyogICAgICAgICAgICAgICAgICAgICAgICAgIFRoZXJlIHdpbGwgYmUgb25seSBvbmUgaW5z
dGFuY2Ugb2YgUkJCSURhdGFXcmFwcGVyIGZvciBhbnkKKyogICAgICAgICAgICAgICAgICAgICAg
ICAgIHNldCBvZiBSQkJJIHJ1biB0aW1lIGRhdGEgYmVpbmcgc2hhcmVkIGJ5IGluc3RhbmNlcwor
KiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb25lcykgb2YgUnVsZXNCYXNlZEJyZWFrSXRl
cmF0b3IuCisqLworCisjaWZuZGVmIF9fUkJCSURBVEFfSF9fCisjZGVmaW5lIF9fUkJCSURBVEFf
SF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRh
dGEuaCIKKyNpbmNsdWRlICJ1ZGF0YXN3cC5oIgorCisvKioKKyAqIFN3YXAgUkJCSSBkYXRhLiBT
ZWUgdWRhdGFzd3AuaC4KKyAqIEBpbnRlcm5hbAorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9S
VDIKK3Vicmtfc3dhcChjb25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAgIGNvbnN0IHZv
aWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgVUVy
cm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworCisjaW5jbHVkZSAi
dW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIKKyNpbmNsdWRl
ICJ1bXV0ZXguaCIKKyNpbmNsdWRlICJ1dHJpZS5oIgorCitVX05BTUVTUEFDRV9CRUdJTgorCisv
KiAgCisgKiAgIFRoZSBmb2xsb3dpbmcgc3RydWN0cyBtYXAgZXhhY3RseSBvbnRvIHRoZSByYXcg
ZGF0YSBmcm9tIElDVSBjb21tb24gZGF0YSBmaWxlLiAKKyAqLworc3RydWN0IFJCQklEYXRhSGVh
ZGVyIHsKKyAgICB1aW50MzJfdCAgICAgICAgIGZNYWdpYzsgICAgICAgICAgIC8qICA9PSAweGJs
YTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAg
dWludDhfdCAgICAgICAgICBmRm9ybWF0VmVyc2lvbls0XTsgLyogRGF0YSBGb3JtYXQuICBTYW1l
IGFzIHRoZSB2YWx1ZSBpbiBzdHJ1Y3QgVURhdGFJbmZvICAgICAgKi8KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgaWYgdGhlcmUgaXMgb25lIGFzc29jaWF0ZWQg
d2l0aCB0aGlzIGRhdGEuICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiAgICAgKHZlcnNpb24gb3JpZ2luYXRlcyBpbiByYmJpLCBpcyBjb3Bp
ZWQgdG8gVURhdGFJbmZvKSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogICBGb3IgSUNVIDMuMiBhbmQgZWFybGllciwgdGhpcyBmaWVsZCB3YXMgICAgICAgICAg
ICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAg
IHVpbnQzMl90ICBmVmVyc2lvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIHdpdGggYSB2YWx1ZSBv
ZiAxLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIHVpbnQzMl90
ICAgICAgICAgZkxlbmd0aDsgICAgICAgICAgLyogIFRvdGFsIGxlbmd0aCBpbiBieXRlcyBvZiB0
aGlzIFJCQkkgRGF0YSwgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qICAgICAgaW5jbHVkaW5nIGFsbCBzZWN0aW9ucywgbm90IGp1c3Qg
dGhlIGhlYWRlci4gICAgICAgICovCisgICAgdWludDMyX3QgICAgICAgICBmQ2F0Q291bnQ7ICAg
ICAgICAvKiAgTnVtYmVyIG9mIGNoYXJhY3RlciBjYXRlZ29yaWVzLiAgICAgICAgICAgICAgICAg
ICAgICAgICAqLworCisgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgIC8qICBPZmZzZXRzIGFu
ZCBzaXplcyBvZiBlYWNoIG9mIHRoZSBzdWJzZWN0aW9ucyB3aXRoaW4gdGhlIFJCQkkgZGF0YS4g
ICAgKi8KKyAgICAvKiAgQWxsIG9mZnNldHMgYXJlIGJ5dGVzIGZyb20gdGhlIHN0YXJ0IG9mIHRo
ZSBSQkJJRGF0YUhlYWRlci4gICAgICAgICAgICovCisgICAgLyogIEFsbCBzaXplcyBhcmUgaW4g
Ynl0ZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwor
ICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZGVGFibGU7ICAg
ICAgICAgLyogIGZvcndhcmQgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS4gKi8KKyAgICB1aW50MzJf
dCAgICAgICAgIGZGVGFibGVMZW47CisgICAgdWludDMyX3QgICAgICAgICBmUlRhYmxlOyAgICAg
ICAgIC8qICBPZmZzZXQgdG8gdGhlIHJldmVyc2Ugc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS4gKi8K
KyAgICB1aW50MzJfdCAgICAgICAgIGZSVGFibGVMZW47CisgICAgdWludDMyX3QgICAgICAgICBm
U0ZUYWJsZTsgICAgICAgIC8qICBzYWZlIHBvaW50IGZvcndhcmQgdHJhbnNpdGlvbiB0YWJsZSAq
LworICAgIHVpbnQzMl90ICAgICAgICAgZlNGVGFibGVMZW47CisgICAgdWludDMyX3QgICAgICAg
ICBmU1JUYWJsZTsgICAgICAgIC8qICBzYWZlIHBvaW50IHJldmVyc2UgdHJhbnNpdGlvbiB0YWJs
ZSAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlNSVGFibGVMZW47CisgICAgdWludDMyX3QgICAg
ICAgICBmVHJpZTsgICAgICAgICAgIC8qICBPZmZzZXQgdG8gVHJpZSBkYXRhIGZvciBjaGFyYWN0
ZXIgY2F0ZWdvcmllcyAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlRyaWVMZW47CisgICAgdWlu
dDMyX3QgICAgICAgICBmUnVsZVNvdXJjZTsgICAgIC8qICBPZmZzZXQgdG8gdGhlIHNvdXJjZSBm
b3IgZm9yIHRoZSBicmVhayAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlJ1bGVTb3VyY2VMZW47
ICAvKiAgICBydWxlcy4gIFN0b3JlZCBVQ2hhciAqLiAqLworICAgIHVpbnQzMl90ICAgICAgICAg
ZlN0YXR1c1RhYmxlOyAgICAvKiBPZmZzZXQgdG8gdGhlIHRhYmxlIG9mIHJ1bGUgc3RhdHVzIHZh
bHVlcyAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlN0YXR1c1RhYmxlTGVuOworCisgICAgdWlu
dDMyX3QgICAgICAgICBmUmVzZXJ2ZWRbNl07ICAgIC8qICBSZXNlcnZlZCBmb3IgZXhwYW5zaW9u
ICovCisKK307CisKKworCitzdHJ1Y3QgIFJCQklTdGF0ZVRhYmxlUm93IHsKKyAgICBpbnQxNl90
ICAgICAgICAgIGZBY2NlcHRpbmc7ICAgIC8qICBOb24temVybyBpZiB0aGlzIHJvdyBpcyBmb3Ig
YW4gYWNjZXB0aW5nIHN0YXRlLiAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiAgVmFsdWUgMDogbm90IGFuIGFjY2VwdGluZyBzdGF0ZS4gICAgICAgICAgICAgICAg
ICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgLTE6IFVu
Y29uZGl0aW9uYWwgQWNjZXB0aW5nIHN0YXRlLiAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qICAgIHBvc2l0aXZlOiAgTG9vay1haGVhZCBtYXRjaCBo
YXMgY29tcGxldGVkLiAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvKiAgICAgICAgICAgQWN0dWFsIGJvdW5kYXJ5IHBvc2l0aW9uIGhhcHBlbmVkIGVhcmxpZXIg
Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICBWYWx1
ZSBoZXJlID09IGZMb29rQWhlYWQgaW4gZWFybGllciAgICAgICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAgICAgICAgc3RhdGUsIGF0IGFjdHVhbCBib3Vu
ZGFyeSBwb3MuICAgICAgICAqLworICAgIGludDE2X3QgICAgICAgICAgZkxvb2tBaGVhZDsgICAg
LyogIE5vbi16ZXJvIGlmIHRoaXMgcm93IGlzIGZvciBhIHN0YXRlIHRoYXQgICAgICAgICAgKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIGNvcnJlc3BvbmRzIHRv
IGEgJy8nIGluIHRoZSBydWxlIHNvdXJjZS4gICAgICAgICovCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiAgICBWYWx1ZSBpcyB0aGUgc2FtZSBhcyB0aGUgZkFjY2VwdGlu
ZyAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
ICAgICB2YWx1ZSBmb3IgdGhlIHJ1bGUgKHdoaWNoIHdpbGwgYXBwZWFyICAgICAgICAgKi8KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAgaW4gYSBkaWZmZXJlbnQg
c3RhdGUuICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgaW50MTZfdCAgICAgICAgICBm
VGFnSWR4OyAgICAgICAvKiAgTm9uLXplcm8gaWYgdGhpcyByb3cgY292ZXJzIGEge3RhZ2dlZH0g
cG9zaXRpb24gICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAg
IGZyb20gYSBydWxlLiAgVmFsdWUgaXMgdGhlIGluZGV4IGluIHRoZSAgICAgICAgKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICBTdGF0dXNUYWJsZSBvZiB0aGUg
c2V0IG9mIG1hdGNoaW5nICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiAgICAgdGFncyAocnVsZSBzdGF0dXMgdmFsdWVzKSAgICAgICAgICAgICAg
ICAgICAgICAqLworICAgIGludDE2X3QgICAgICAgICAgZlJlc2VydmVkOworICAgIHVpbnQxNl90
ICAgICAgICAgZk5leHRTdGF0ZVsyXTsgLyogIE5leHQgU3RhdGUsIGluZGV4ZWQgYnkgY2hhciBj
YXRlZ29yeS4gICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8qICBUaGlzIGFycmF5IGRvZXMgbm90IGhhdmUgdHdvIGVsZW1lbnRzICAgICAgICAgICAg
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICBBcnJheSBTaXpl
IGlzIGFjdHVhbGx5IGZEYXRhLT5mSGVhZGVyLT5mQ2F0Q291bnQgICAgICAgICAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgQ0FVVElPTjogIHNlZSBSQkJJVGFi
bGVCdWlsZGVyOjpnZXRUYWJsZVNpemUoKSAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8qICAgICAgICAgICAgICBiZWZvcmUgY2hhbmdpbmcgYW55dGhpbmcgaGVyZS4g
ICAgICAgICovCit9OworCisKK3N0cnVjdCBSQkJJU3RhdGVUYWJsZSB7CisgICAgdWludDMyX3Qg
ICAgICAgICBmTnVtU3RhdGVzOyAgICAvKiAgTnVtYmVyIG9mIHN0YXRlcy4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICAgZlJvd0xlbjsgICAg
ICAgLyogIExlbmd0aCBvZiBhIHN0YXRlIHRhYmxlIHJvdywgaW4gYnl0ZXMuICAgICAgICAgICAg
Ki8KKyAgICB1aW50MzJfdCAgICAgICAgIGZGbGFnczsgICAgICAgIC8qICBPcHRpb24gRmxhZ3Mg
Zm9yIHRoaXMgc3RhdGUgdGFibGUgICAgICAgICAgICAgICAgICovCisgICAgdWludDMyX3QgICAg
ICAgICBmUmVzZXJ2ZWQ7ICAgICAvKiAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqLworICAgIGNoYXIgICAgICAgICAgICAgZlRhYmxlRGF0YVs0XTsg
LyogIEZpcnN0IFJCQklTdGF0ZVRhYmxlUm93IGJlZ2lucyBoZXJlLiAgICAgICAgICAgICAgKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIChtYWtpbmcgaXQgY2hh
cltdIHNpbXBsaWZpZXMgdWdseSBhZGRyZXNzICAgICAgICovCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiAgICAgYXJpdGhtZXRpYyBmb3IgaW5kZXhpbmcgdmFyaWFibGUg
bGVuZ3RoIHJvd3MuKSAqLworfTsKKwordHlwZWRlZiBlbnVtIHsKKyAgICBSQkJJX0xPT0tBSEVB
RF9IQVJEX0JSRUFLID0gMSwKKyAgICBSQkJJX0JPRl9SRVFVSVJFRCA9IDIKK30gUkJCSVN0YXRl
VGFibGVGbGFnczsKKworCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqLworLyogICBUaGUgcmVmZXJlbmNlIGNvdW50aW5nIHdyYXBwZXIgY2xhc3MgKi8KKy8qICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCitjbGFzcyBSQkJJRGF0YVdy
YXBwZXIgOiBwdWJsaWMgVU1lbW9yeSB7CitwdWJsaWM6CisgICAgZW51bSBFRG9udEFkb3B0IHsK
KyAgICAgICAga0RvbnRBZG9wdAorICAgIH07CisgICAgUkJCSURhdGFXcmFwcGVyKGNvbnN0IFJC
QklEYXRhSGVhZGVyICpkYXRhLCBVRXJyb3JDb2RlICZzdGF0dXMpOworICAgIFJCQklEYXRhV3Jh
cHBlcihjb25zdCBSQkJJRGF0YUhlYWRlciAqZGF0YSwgZW51bSBFRG9udEFkb3B0IGRvbnRBZG9w
dCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyAgICBSQkJJRGF0YVdyYXBwZXIoVURhdGFNZW1vcnkq
IHVkbSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyAgICB+UkJCSURhdGFXcmFwcGVyKCk7CisKKyAg
ICB2b2lkICAgICAgICAgICAgICAgICAgaW5pdDAoKTsKKyAgICB2b2lkICAgICAgICAgICAgICAg
ICAgaW5pdChjb25zdCBSQkJJRGF0YUhlYWRlciAqZGF0YSwgVUVycm9yQ29kZSAmc3RhdHVzKTsK
KyAgICBSQkJJRGF0YVdyYXBwZXIgICAgICAqYWRkUmVmZXJlbmNlKCk7CisgICAgdm9pZCAgICAg
ICAgICAgICAgICAgIHJlbW92ZVJlZmVyZW5jZSgpOworICAgIFVCb29sICAgICAgICAgICAgICAg
ICBvcGVyYXRvciA9PShjb25zdCBSQkJJRGF0YVdyYXBwZXIgJm90aGVyKSBjb25zdDsKKyAgICBp
bnQzMl90ICAgICAgICAgICAgICAgaGFzaENvZGUoKTsKKyAgICBjb25zdCBVbmljb2RlU3RyaW5n
ICAmZ2V0UnVsZVNvdXJjZVN0cmluZygpIGNvbnN0OworI2lmZGVmIFJCQklfREVCVUcKKyAgICB2
b2lkICAgICAgICAgICAgICAgICAgcHJpbnREYXRhKCk7CisgICAgdm9pZCAgICAgICAgICAgICAg
ICAgIHByaW50VGFibGUoY29uc3QgY2hhciAqaGVhZGluZywgY29uc3QgUkJCSVN0YXRlVGFibGUg
KnRhYmxlKTsKKyNlbHNlCisgICAgI2RlZmluZSBwcmludERhdGEoKQorICAgICNkZWZpbmUgcHJp
bnRUYWJsZShoZWFkaW5nLCB0YWJsZSkKKyNlbmRpZgorCisgICAgLyogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAvKiAgIFBvaW50ZXJzIHRvIGl0ZW1zIHdpdGhp
biB0aGUgZGF0YSAqLworICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICovCisgICAgY29uc3QgUkJCSURhdGFIZWFkZXIgICAgICpmSGVhZGVyOworICAgIGNvbnN0IFJC
QklTdGF0ZVRhYmxlICAgICAqZkZvcndhcmRUYWJsZTsKKyAgICBjb25zdCBSQkJJU3RhdGVUYWJs
ZSAgICAgKmZSZXZlcnNlVGFibGU7CisgICAgY29uc3QgUkJCSVN0YXRlVGFibGUgICAgICpmU2Fm
ZUZ3ZFRhYmxlOworICAgIGNvbnN0IFJCQklTdGF0ZVRhYmxlICAgICAqZlNhZmVSZXZUYWJsZTsK
KyAgICBjb25zdCBVQ2hhciAgICAgICAgICAgICAgKmZSdWxlU291cmNlOworICAgIGNvbnN0IGlu
dDMyX3QgICAgICAgICAgICAqZlJ1bGVTdGF0dXNUYWJsZTsgCisKKyAgICAvKiBudW1iZXIgb2Yg
aW50MzJfdCB2YWx1ZXMgaW4gdGhlIHJ1bGUgc3RhdHVzIHRhYmxlLiAgIFVzZWQgdG8gc2FuaXR5
IGNoZWNrIGluZGV4aW5nICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmU3RhdHVzTWF4SWR4
OworCisgICAgVVRyaWUgICAgICAgICAgICAgICBmVHJpZTsKKworcHJpdmF0ZToKKyAgICB1X2F0
b21pY19pbnQzMl90ICAgIGZSZWZDb3VudDsKKyAgICBVRGF0YU1lbW9yeSAgKmZVRGF0YU1lbTsK
KyAgICBVbmljb2RlU3RyaW5nICAgICAgIGZSdWxlU3RyaW5nOworICAgIFVCb29sICAgICAgICAg
ICAgICAgZkRvbnRGcmVlRGF0YTsKKworICAgIFJCQklEYXRhV3JhcHBlcihjb25zdCBSQkJJRGF0
YVdyYXBwZXIgJm90aGVyKTsgLyogIGZvcmJpZCBjb3B5aW5nIG9mIHRoaXMgY2xhc3MgKi8KKyAg
ICBSQkJJRGF0YVdyYXBwZXIgJm9wZXJhdG9yPShjb25zdCBSQkJJRGF0YVdyYXBwZXIgJm90aGVy
KTsgLyogIGZvcmJpZCBjb3B5aW5nIG9mIHRoaXMgY2xhc3MgKi8KK307CisKKworCitVX05BTUVT
UEFDRV9FTkQKKworI2VuZGlmIC8qIEMrKyAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWNtbmRhdGEuaCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWNtbmRhdGEuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
NjE2M2M1MDhiOTc3NGI4ZjlkMmJiNGFiZTIyYzM0MTQxODI1NGVkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91Y21uZGF0YS5oCkBA
IC0wLDAgKzEsMTExIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJp
Z2h0IChDKSAxOTk5LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBD
b3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKi8KKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAg
IFVDb21tb25EYXRhICAgQW4gYWJzdHJhY3QgaW50ZXJmYWNlIGZvciBkZWFsaW5nIHdpdGggSUNV
IENvbW1vbiBEYXRhIEZpbGVzLgorICogICAgICAgICAgICAgICAgIElDVSBDb21tb24gRGF0YSBG
aWxlcyBhcmUgYSBncm91cGluZyBvZiBhIG51bWJlciBvZiBpbmRpdmlkdWFsCisgKiAgICAgICAg
ICAgICAgICAgZGF0YSBpdGVtcyAocmVzb3VyY2VzLCBjb252ZXJ0ZXJzLCB0YWJsZXMsIGFueXRo
aW5nKSBpbnRvIGEKKyAqICAgICAgICAgICAgICAgICBzaW5nbGUgZmlsZSBvciBkbGwuICBUaGUg
Y29tYmluZWQgZm9ybWF0IGluY2x1ZGVzIGEgdGFibGUgb2YKKyAqICAgICAgICAgICAgICAgICBj
b250ZW50cyBmb3IgbG9jYXRpbmcgdGhlIGluZGl2aWR1YWwgaXRlbXMgYnkgbmFtZS4KKyAqCisg
KiAgICAgICAgICAgICAgICAgVHdvIGZvcm1hdHMgZm9yIHRoZSB0YWJsZSBvZiBjb250ZW50cyBh
cmUgc3VwcG9ydGVkLCB3aGljaCBpcworICogICAgICAgICAgICAgICAgIHdoeSB0aGVyZSBpcyBh
biBhYnN0cmFjdCBpbnRlZmFjZSBpbnZvbHZlZC4KKyAqCisgKiAgICAgICAgICAgICAgICAgVGhl
c2UgZnVuY3Rpb25zIGFyZSBwYXJ0IG9mIHRoZSBJQ1UgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24s
IGFuZAorICogICAgICAgICAgICAgICAgIGFyZSBub3QgaW50ZWRlZCB0byBiZSB1c2VkIGRpcmVj
dGx5IGJ5IGFwcGxpY2F0aW9ucy4KKyAqLworCisjaWZuZGVmIF9fVUNNTkRBVEFfSF9fCisjZGVm
aW5lIF9fVUNNTkRBVEFfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgiCisjaW5jbHVk
ZSAidW1hcGZpbGUuaCIKKworCisjZGVmaW5lIENPTU1PTl9EQVRBX05BTUUgVV9JQ1VEQVRBX05B
TUUKKwordHlwZWRlZiBzdHJ1Y3QgIHsKKyAgICB1aW50MTZfdCAgICBoZWFkZXJTaXplOworICAg
IHVpbnQ4X3QgICAgIG1hZ2ljMTsKKyAgICB1aW50OF90ICAgICBtYWdpYzI7Cit9IE1hcHBlZERh
dGE7CisKKwordHlwZWRlZiBzdHJ1Y3QgIHsKKyAgICBNYXBwZWREYXRhICBkYXRhSGVhZGVyOwor
ICAgIFVEYXRhSW5mbyAgIGluZm87Cit9IERhdGFIZWFkZXI7CisKK3R5cGVkZWYgc3RydWN0IHsK
KyAgICB1aW50MzJfdCBuYW1lT2Zmc2V0OworICAgIHVpbnQzMl90IGRhdGFPZmZzZXQ7Cit9IFVE
YXRhT2Zmc2V0VE9DRW50cnk7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1aW50MzJfdCBjb3Vu
dDsKKyAgICBVRGF0YU9mZnNldFRPQ0VudHJ5IGVudHJ5WzJdOyAgICAvKiBBY3R1YWwgc2l6ZSBv
ZiBhcnJheSBpcyBmcm9tIGNvdW50LiAqLworfSBVRGF0YU9mZnNldFRPQzsKKworLyoqCisgKiBH
ZXQgdGhlIGhlYWRlciBzaXplIGZyb20gYSBjb25zdCBEYXRhSGVhZGVyICp1ZGguCisgKiBIYW5k
bGVzIG9wcG9zaXRlLWVuZGlhbiBkYXRhLgorICoKKyAqIEBpbnRlcm5hbAorICovCitVX0NGVU5D
IHVpbnQxNl90Cit1ZGF0YV9nZXRIZWFkZXJTaXplKGNvbnN0IERhdGFIZWFkZXIgKnVkaCk7CisK
Ky8qKgorICogR2V0IHRoZSBVRGF0YUluZm8uc2l6ZSBmcm9tIGEgY29uc3QgVURhdGFJbmZvICpp
bmZvLgorICogSGFuZGxlcyBvcHBvc2l0ZS1lbmRpYW4gZGF0YS4KKyAqCisgKiBAaW50ZXJuYWwK
KyAqLworVV9DRlVOQyB1aW50MTZfdAordWRhdGFfZ2V0SW5mb1NpemUoY29uc3QgVURhdGFJbmZv
ICppbmZvKTsKKworVV9DREVDTF9CRUdJTgorLyoKKyAqICAiVmlydHVhbCIgZnVuY3Rpb25zIGZv
ciBkYXRhIGxvb2t1cC4KKyAqICBUbyBjYWxsIG9uZSwgZ2l2ZW4gYSBVRGF0YU1lbW9yeSAqcCwg
dGhlIGNvZGUgbG9va3MgbGlrZSB0aGlzOgorICogICAgIHAtPnZGdW5jcy5Mb29rdXAocCwgdG9j
RW50cnlOYW1lLCBwRXJyb3JDb2RlKTsKKyAqICAgICAgICAgIChJIHN1cmUgZG8gd2lzaCB0aGlz
IHdhcyB3cml0dGVuIGluIEMrKywgbm90IEMpCisgKi8KKwordHlwZWRlZiBjb25zdCBEYXRhSGVh
ZGVyICoKKyhVX0NBTExDT05WICogTG9va3VwRm4pKGNvbnN0IFVEYXRhTWVtb3J5ICpwRGF0YSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnRvY0VudHJ5TmFtZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGludDMyX3QgKnBMZW5ndGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKwordHlwZWRlZiB1aW50MzJfdAorKFVfQ0FM
TENPTlYgKiBOdW1FbnRyaWVzRm4pKGNvbnN0IFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKK1VfQ0RF
Q0xfRU5ECisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBMb29rdXBGbiAgICAgIExvb2t1cDsKKyAg
ICBOdW1FbnRyaWVzRm4gIE51bUVudHJpZXM7IAorfSBjb21tb25EYXRhRnVuY3M7CisKKworLyoK
KyAqICBGdW5jdGlvbnMgdG8gY2hlY2sgd2hldGhlciBhIFVEYXRhTWVtb3J5IHJlZmVycyB0byBt
ZW1vcnkgY29udGFpbmluZyAKKyAqICAgICBhIHJlY29nbml6YWJsZSBoZWFkZXIgYW5kIHRhYmxl
IG9mIGNvbnRlbnRzIGEgQ29tbW9uIERhdGEgRm9ybWF0CisgKgorICogICAgIElmIGEgdmFsaWQg
aGVhZGVyIGFuZCBUT0MgYXJlIGZvdW5kLAorICogICAgICAgICBzZXQgdGhlIENvbW1vbkRhdGFG
dW5jcyBmdW5jdGlvbiBkaXNwYXRjaCB2ZWN0b3IgaW4gdGhlIFVEYXRhTWVtb3J5CisgKiAgICAg
ICAgICAgICB0byBwb2ludCB0byB0aGUgcmlnaHQgZnVuY3Rpb25zIGZvciB0aGUgVE9DIHR5cGUu
CisgKiAgICAgb3RoZXJ3aXNlCisgKiAgICAgICAgIHNldCBhbiBlcnJvcmNvZGUuCisgKi8KK1Vf
Q0ZVTkMgdm9pZCB1ZGF0YV9jaGVja0NvbW1vbkRhdGEoVURhdGFNZW1vcnkgKnBEYXRhLCBVRXJy
b3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VkYXRhc3dwLmggYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VkYXRhc3dwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZjODQ5NTU2
NzY3MDg2ZWFiMWI1ZmI5YjAzMmVmNTA2NzAwZGM3MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdWRhdGFzd3AuaApAQCAtMCwwICsx
LDM1MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMp
IDIwMDMtMjAxNCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0
aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVkYXRhc3dwLmgKKyogICBlbmNvZGluZzogICBVUy1B
U0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoK
KyogICBjcmVhdGVkIG9uOiAyMDAzanVuMDUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2No
ZXJlcgorKgorKiAgIERlZmluaXRpb25zIGZvciBJQ1UgZGF0YSB0cmFuc2Zvcm1hdGlvbnMgZm9y
IGRpZmZlcmVudCBwbGF0Zm9ybXMsCisqICAgY2hhbmdpbmcgYmV0d2VlbiBiaWctIGFuZCBsaXR0
bGUtZW5kaWFuIGRhdGEgYW5kL29yIGJldHdlZW4KKyogICBjaGFyc2V0IGZhbWlsaWVzIChBU0NJ
STwtPkVCQ0RJQykuCisqLworCisjaWZuZGVmIF9fVURBVEFTV1BfSF9fCisjZGVmaW5lIF9fVURB
VEFTV1BfSF9fCisKKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBl
cy5oIgorCisvKiBmb3J3YXJkIGRlY2xhcmF0aW9uICovCisKK1VfQ0RFQ0xfQkVHSU4KKworc3Ry
dWN0IFVEYXRhU3dhcHBlcjsKK3R5cGVkZWYgc3RydWN0IFVEYXRhU3dhcHBlciBVRGF0YVN3YXBw
ZXI7CisKKy8qKgorICogRnVuY3Rpb24gdHlwZSBmb3IgZGF0YSB0cmFuc2Zvcm1hdGlvbi4KKyAq
IFRyYW5zZm9ybXMgZGF0YSwgb3IganVzdCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEg
aWYKKyAqIHRoZSBpbnB1dCBsZW5ndGggaXMgLTEuCisgKiBTd2FwIGZ1bmN0aW9ucyBhc3N1bWUg
dGhhdCB0aGVpciBkYXRhIHBvaW50ZXJzIGFyZSBhbGlnbmVkIHByb3Blcmx5LgorICoKKyAqIFF1
aWNrIGltcGxlbWVudGF0aW9uIG91dGxpbmU6CisgKiAoYmVzdCB0byBjb3B5IGFuZCBhZGFwdCBh
bmQgZXhpc3Rpbmcgc3dhcHBlciBpbXBsZW1lbnRhdGlvbikKKyAqIGNoZWNrIHRoYXQgdGhlIGRh
dGEgbG9va3MgbGlrZSB0aGUgZXhwZWN0ZWQgZm9ybWF0CisgKiBpZihsZW5ndGg8MCkgeworICog
ICBwcmVmbGlnaHQ6CisgKiAgIG5ldmVyIGRlcmVmZXJlbmNlIG91dERhdGEKKyAqICAgcmVhZCBp
bkRhdGEgYW5kIGRldGVybWluZSB0aGUgZGF0YSBzaXplCisgKiAgIGFzc3VtZSB0aGF0IGluRGF0
YSBpcyBsb25nIGVub3VnaCBmb3IgdGhpcworICogfSBlbHNlIHsKKyAqICAgb3V0RGF0YSBjYW4g
YmUgTlVMTCBpZiBsZW5ndGg9PTAKKyAqICAgaW5EYXRhPT1vdXREYXRhIChpbi1wbGFjZSBzd2Fw
cGluZykgcG9zc2libGUgYnV0IG5vdCByZXF1aXJlZCEKKyAqICAgdmVyaWZ5IHRoYXQgbGVuZ3Ro
Pj0oYWN0dWFsIHNpemUpCisgKiAgIGlmIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgbm90IGV2ZXJ5
IGJ5dGUgdXAgdG8gc2l6ZSBpcyByZWFjaGVkCisgKiAgICAgZHVlIHRvIHBhZGRpbmcgZXRjLjoK
KyAqICAgaWYoaW5EYXRhIT1vdXREYXRhKSB7CisgKiAgICAgbWVtY3B5KG91dERhdGEsIGluRGF0
YSwgYWN0dWFsIHNpemUpOworICogICB9CisgKiAgIHN3YXAgY29udGVudHMKKyAqIH0KKyAqIHJl
dHVybiBhY3R1YWwgc2l6ZQorICoKKyAqIEZ1cnRoZXIgaW1wbGVtZW50YXRpb24gbm90ZXM6Cisg
KiAtIHJlYWQgaW50ZWdlcnMgZnJvbSBpbkRhdGEgYmVmb3JlIHN3YXBwaW5nIHRoZW0KKyAqICAg
YmVjYXVzZSBpbi1wbGFjZSBzd2FwcGluZyBjYW4gbWFrZSB0aGVtIHVucmVhZGFibGUKKyAqIC0g
Y29tcGFyZUludkNoYXJzIGNvbXBhcmVzIGEgbG9jYWwgVW5pY29kZSBzdHJpbmcgd2l0aCBhbHJl
YWR5LXN3YXBwZWQKKyAqICAgb3V0cHV0IGNoYXJzZXQgc3RyaW5ncworICoKKyAqIEBwYXJhbSBk
cyBQb2ludGVyIHRvIFVEYXRhU3dhcHBlciBjb250YWluaW5nIGdsb2JhbCBkYXRhIGFib3V0IHRo
ZQorICogICAgICAgICAgIHRyYW5zZm9ybWF0aW9uIGFuZCBmdW5jdGlvbiBwb2ludGVycyBmb3Ig
aGFuZGxpbmcgcHJpbWl0aXZlCisgKiAgICAgICAgICAgdHlwZXMuCisgKiBAcGFyYW0gaW5EYXRh
IFBvaW50ZXIgdG8gdGhlIGlucHV0IGRhdGEgdG8gYmUgdHJhbnNmb3JtZWQgb3IgZXhhbWluZWQu
CisgKiBAcGFyYW0gbGVuZ3RoIExlbmd0aCBvZiB0aGUgZGF0YSwgY291bnRpbmcgYnl0ZXMuIE1h
eSBiZSAtMSBmb3IgcHJlZmxpZ2h0aW5nLgorICogICAgICAgICAgICAgICBJZiBsZW5ndGg+PTAs
IHRoZW4gdHJhbnNmb3JtIHRoZSBkYXRhLgorICogICAgICAgICAgICAgICBJZiBsZW5ndGg9PS0x
LCB0aGVuIG9ubHkgZGV0ZXJtaW5lIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEuCisgKiAgICAgICAg
ICAgICAgIFRoZSBsZW5ndGggY2Fubm90IGJlIGRldGVybWluZWQgZnJvbSB0aGUgZGF0YSBpdHNl
bGYgZm9yIGFsbAorICogICAgICAgICAgICAgICB0eXBlcyBvZiBkYXRhIChlLmcuLCBub3QgZm9y
IHNpbXBsZSBhcnJheXMgb2YgaW50ZWdlcnMpLgorICogQHBhcmFtIG91dERhdGEgUG9pbnRlciB0
byB0aGUgb3V0cHV0IGRhdGEgYnVmZmVyLgorICogICAgICAgICAgICAgICAgSWYgbGVuZ3RoPj0w
ICh0cmFuc2Zvcm1hdGlvbiksIHRoZW4gdGhlIG91dHB1dCBidWZmZXIgbXVzdAorICogICAgICAg
ICAgICAgICAgaGF2ZSBhIGNhcGFjaXR5IG9mIGF0IGxlYXN0IGxlbmd0aC4KKyAqICAgICAgICAg
ICAgICAgIElmIGxlbmd0aD09LTEsIHRoZW4gb3V0RGF0YSB3aWxsIG5vdCBiZSB1c2VkIGFuZCBj
YW4gYmUgTlVMTC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRl
ciwgbXVzdCBub3QgYmUgTlVMTCBhbmQgbXVzdAorICogICAgICAgICAgICAgICAgICAgZnVsZmls
bCBVX1NVQ0NFU1Mgb24gaW5wdXQuCisgKiBAcmV0dXJuIFRoZSBhY3R1YWwgbGVuZ3RoIG9mIHRo
ZSBkYXRhLgorICoKKyAqIEBzZWUgVURhdGFTd2FwcGVyCisgKiBAaW50ZXJuYWwgSUNVIDIuOAor
ICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgorVURhdGFTd2FwRm4oY29uc3QgVURhdGFT
d2FwcGVyICpkcywKKyAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5n
dGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsK
KworLyoqCisgKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIGlucHV0IHRvIHBsYXRmb3JtIGVu
ZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHVpbnQxNl90IFVf
Q0FMTENPTlYKK1VEYXRhUmVhZFVJbnQxNih1aW50MTZfdCB4KTsKKworLyoqCisgKiBDb252ZXJ0
IG9uZSB1aW50MzJfdCBmcm9tIGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuCisgKiBAaW50
ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHVpbnQzMl90IFVfQ0FMTENPTlYKK1VEYXRhUmVh
ZFVJbnQzMih1aW50MzJfdCB4KTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9t
IHBsYXRmb3JtIHRvIGlucHV0IGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICov
Cit0eXBlZGVmIHZvaWQgVV9DQUxMQ09OVgorVURhdGFXcml0ZVVJbnQxNih1aW50MTZfdCAqcCwg
dWludDE2X3QgeCk7CisKKy8qKgorICogQ29udmVydCBvbmUgdWludDMyX3QgZnJvbSBwbGF0Zm9y
bSB0byBpbnB1dCBlbmRpYW5uZXNzLgorICogQGludGVybmFsIElDVSAyLjgKKyAqLwordHlwZWRl
ZiB2b2lkIFVfQ0FMTENPTlYKK1VEYXRhV3JpdGVVSW50MzIodWludDMyX3QgKnAsIHVpbnQzMl90
IHgpOworCisvKioKKyAqIENvbXBhcmUgaW52YXJpYW50LWNoYXJhY3RlciBzdHJpbmdzLCBvbmUg
aW4gdGhlIG91dHB1dCBkYXRhIGFuZCB0aGUKKyAqIG90aGVyIG9uZSBjYWxsZXItcHJvdmlkZWQg
aW4gVW5pY29kZS4KKyAqIEFuIG91dHB1dCBkYXRhIHN0cmluZyBpcyBjb21wYXJlZCBiZWNhdXNl
IHN0cmluZ3MgYXJlIHVzdWFsbHkgc3dhcHBlZAorICogYmVmb3JlIHRoZSByZXN0IG9mIHRoZSBk
YXRhLCB0byBhbGxvdyBmb3Igc29ydGluZyBvZiBzdHJpbmcgdGFibGVzCisgKiBhY2NvcmRpbmcg
dG8gdGhlIG91dHB1dCBjaGFyc2V0LgorICogWW91IGNhbiB1c2UgLTEgZm9yIHRoZSBsZW5ndGgg
cGFyYW1ldGVycyBvZiBOVUwtdGVybWluYXRlZCBzdHJpbmdzIGFzIHVzdWFsLgorICogUmV0dXJu
cyBVbmljb2RlIGNvZGUgcG9pbnQgb3JkZXIgZm9yIGludmFyaWFudCBjaGFyYWN0ZXJzLgorICog
QGludGVybmFsIElDVSAyLjgKKyAqLwordHlwZWRlZiBpbnQzMl90IFVfQ0FMTENPTlYKK1VEYXRh
Q29tcGFyZUludkNoYXJzKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyICpvdXRTdHJpbmcsIGludDMyX3Qgb3V0TGVuZ3RoLAorICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxvY2FsU3RyaW5nLCBpbnQzMl90IGxvY2FsTGVuZ3Ro
KTsKKworLyoqCisgKiBGdW5jdGlvbiBmb3IgbWVzc2FnZSBvdXRwdXQgd2hlbiBhbiBlcnJvciBv
Y2N1cnMgZHVyaW5nIGRhdGEgc3dhcHBpbmcuCisgKiBBIGZvcm1hdCBzdHJpbmcgYW5kIHZhcmlh
YmxlIG51bWJlciBvZiBhcmd1bWVudHMgYXJlIHBhc3NlZAorICogbGlrZSBmb3IgdnByaW50Zigp
LgorICoKKyAqIEBwYXJhbSBjb250ZXh0IEEgZnVuY3Rpb24tc3BlY2lmaWMgY29udGV4dCBwb2lu
dGVyLgorICogQHBhcmFtIGZtdCBUaGUgZm9ybWF0IHN0cmluZy4KKyAqIEBwYXJhbSBhcmdzIFRo
ZSBhcmd1bWVudHMgZm9yIGZvcm1hdCBzdHJpbmcgaW5zZXJ0cy4KKyAqCisgKiBAaW50ZXJuYWwg
SUNVIDIuOAorICovCit0eXBlZGVmIHZvaWQgVV9DQUxMQ09OVgorVURhdGFQcmludEVycm9yKHZv
aWQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKTsKKworc3RydWN0IFVE
YXRhU3dhcHBlciB7CisgICAgLyoqIElucHV0IGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44
ICovCisgICAgVUJvb2wgaW5Jc0JpZ0VuZGlhbjsKKyAgICAvKiogSW5wdXQgY2hhcnNldCBmYW1p
bHkuIEBzZWUgVV9DSEFSU0VUX0ZBTUlMWSBAaW50ZXJuYWwgSUNVIDIuOCAqLworICAgIHVpbnQ4
X3QgaW5DaGFyc2V0OworICAgIC8qKiBPdXRwdXQgZW5kaWFubmVzcy4gQGludGVybmFsIElDVSAy
LjggKi8KKyAgICBVQm9vbCBvdXRJc0JpZ0VuZGlhbjsKKyAgICAvKiogT3V0cHV0IGNoYXJzZXQg
ZmFtaWx5LiBAc2VlIFVfQ0hBUlNFVF9GQU1JTFkgQGludGVybmFsIElDVSAyLjggKi8KKyAgICB1
aW50OF90IG91dENoYXJzZXQ7CisKKyAgICAvKiBiYXNpYyBmdW5jdGlvbnMgZm9yIHJlYWRpbmcg
ZGF0YSB2YWx1ZXMgKi8KKworICAgIC8qKiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIGlucHV0
IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgVURhdGFS
ZWFkVUludDE2ICpyZWFkVUludDE2OworICAgIC8qKiBDb252ZXJ0IG9uZSB1aW50MzJfdCBmcm9t
IGlucHV0IHRvIHBsYXRmb3JtIGVuZGlhbm5lc3MuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAg
VURhdGFSZWFkVUludDMyICpyZWFkVUludDMyOworICAgIC8qKiBDb21wYXJlIGFuIGludmFyaWFu
dC1jaGFyYWN0ZXIgb3V0cHV0IHN0cmluZyB3aXRoIGEgbG9jYWwgb25lLiBAaW50ZXJuYWwgSUNV
IDIuOCAqLworICAgIFVEYXRhQ29tcGFyZUludkNoYXJzICpjb21wYXJlSW52Q2hhcnM7CisKKyAg
ICAvKiBiYXNpYyBmdW5jdGlvbnMgZm9yIHdyaXRpbmcgZGF0YSB2YWx1ZXMgKi8KKworICAgIC8q
KiBDb252ZXJ0IG9uZSB1aW50MTZfdCBmcm9tIHBsYXRmb3JtIHRvIGlucHV0IGVuZGlhbm5lc3Mu
IEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgVURhdGFXcml0ZVVJbnQxNiAqd3JpdGVVSW50MTY7
CisgICAgLyoqIENvbnZlcnQgb25lIHVpbnQzMl90IGZyb20gcGxhdGZvcm0gdG8gaW5wdXQgZW5k
aWFubmVzcy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVdyaXRlVUludDMyICp3cml0
ZVVJbnQzMjsKKworICAgIC8qIGJhc2ljIGZ1bmN0aW9ucyBmb3IgZGF0YSB0cmFuc2Zvcm1hdGlv
bnMgKi8KKworICAgIC8qKiBUcmFuc2Zvcm0gYW4gYXJyYXkgb2YgMTYtYml0IGludGVnZXJzLiBA
aW50ZXJuYWwgSUNVIDIuOCAqLworICAgIFVEYXRhU3dhcEZuICpzd2FwQXJyYXkxNjsKKyAgICAv
KiogVHJhbnNmb3JtIGFuIGFycmF5IG9mIDMyLWJpdCBpbnRlZ2Vycy4gQGludGVybmFsIElDVSAy
LjggKi8KKyAgICBVRGF0YVN3YXBGbiAqc3dhcEFycmF5MzI7CisgICAgLyoqIFRyYW5zZm9ybSBh
biBhcnJheSBvZiA2NC1iaXQgaW50ZWdlcnMuIEBpbnRlcm5hbCBJQ1UgNTMgKi8KKyAgICBVRGF0
YVN3YXBGbiAqc3dhcEFycmF5NjQ7CisgICAgLyoqIFRyYW5zZm9ybSBhbiBpbnZhcmlhbnQtY2hh
cmFjdGVyIHN0cmluZy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVN3YXBGbiAqc3dh
cEludkNoYXJzOworCisgICAgLyoqCisgICAgICogRnVuY3Rpb24gZm9yIG1lc3NhZ2Ugb3V0cHV0
IHdoZW4gYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBkYXRhIHN3YXBwaW5nLgorICAgICAqIENhbiBi
ZSBOVUxMLgorICAgICAqIEBpbnRlcm5hbCBJQ1UgMi44CisgICAgICovCisgICAgVURhdGFQcmlu
dEVycm9yICpwcmludEVycm9yOworICAgIC8qKiBDb250ZXh0IHBvaW50ZXIgZm9yIHByaW50RXJy
b3IuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgdm9pZCAqcHJpbnRFcnJvckNvbnRleHQ7Cit9
OworCitVX0NERUNMX0VORAorCitVX0NBUEkgVURhdGFTd2FwcGVyICogVV9FWFBPUlQyCit1ZGF0
YV9vcGVuU3dhcHBlcihVQm9vbCBpbklzQmlnRW5kaWFuLCB1aW50OF90IGluQ2hhcnNldCwKKyAg
ICAgICAgICAgICAgICAgIFVCb29sIG91dElzQmlnRW5kaWFuLCB1aW50OF90IG91dENoYXJzZXQs
CisgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBP
cGVuIGEgVURhdGFTd2FwcGVyIGZvciB0aGUgZ2l2ZW4gaW5wdXQgZGF0YSBhbmQgdGhlIHNwZWNp
ZmllZCBvdXRwdXQKKyAqIGNoYXJhY3RlcmlzdGljcy4KKyAqIFZhbHVlcyBvZiAtMSBmb3IgYW55
IG9mIHRoZSBjaGFyYWN0ZXJpc3RpY3MgbWVhbiB0aGUgbG9jYWwgcGxhdGZvcm0ncworICogY2hh
cmFjdGVyaXN0aWNzLgorICoKKyAqIEBzZWUgdWRhdGFfc3dhcAorICogQGludGVybmFsIElDVSAy
LjgKKyAqLworVV9DQVBJIFVEYXRhU3dhcHBlciAqIFVfRVhQT1JUMgordWRhdGFfb3BlblN3YXBw
ZXJGb3JJbnB1dERhdGEoY29uc3Qgdm9pZCAqZGF0YSwgaW50MzJfdCBsZW5ndGgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBVQm9vbCBvdXRJc0JpZ0VuZGlhbiwgdWludDhfdCBvdXRD
aGFyc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9y
Q29kZSk7CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfY2xvc2VTd2FwcGVyKFVEYXRh
U3dhcHBlciAqZHMpOworCisvKioKKyAqIFJlYWQgdGhlIGJlZ2lubmluZyBvZiBhbiBJQ1UgZGF0
YSBwaWVjZSwgcmVjb2duaXplIG1hZ2ljIGJ5dGVzLAorICogc3dhcCB0aGUgc3RydWN0dXJlLgor
ICogU2V0IGEgVV9VTlNVUFBPUlRFRF9FUlJPUiBpZiBpdCBkb2VzIG5vdCBsb29rIGxpa2UgYW4g
SUNVIGRhdGEgcGllY2UuCisgKgorICogQHJldHVybiBUaGUgc2l6ZSBvZiB0aGUgZGF0YSBoZWFk
ZXIsIGluIGJ5dGVzLgorICoKKyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK1VfQ0FQSSBpbnQz
Ml90IFVfRVhQT1JUMgordWRhdGFfc3dhcERhdGFIZWFkZXIoY29uc3QgVURhdGFTd2FwcGVyICpk
cywKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5n
dGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJy
b3JDb2RlKTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSBpbnQxNl90IGZyb20gaW5wdXQgdG8gcGxh
dGZvcm0gZW5kaWFubmVzcy4KKyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK1VfQ0FQSSBpbnQx
Nl90IFVfRVhQT1JUMgordWRhdGFfcmVhZEludDE2KGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsIGlu
dDE2X3QgeCk7CisKKy8qKgorICogQ29udmVydCBvbmUgaW50MzJfdCBmcm9tIGlucHV0IHRvIHBs
YXRmb3JtIGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCitVX0NBUEkgaW50
MzJfdCBVX0VYUE9SVDIKK3VkYXRhX3JlYWRJbnQzMihjb25zdCBVRGF0YVN3YXBwZXIgKmRzLCBp
bnQzMl90IHgpOworCisvKioKKyAqIFN3YXAgYSBibG9jayBvZiBpbnZhcmlhbnQsIE5VTC10ZXJt
aW5hdGVkIHN0cmluZ3MsIGJ1dCBub3QgcGFkZGluZworICogYnl0ZXMgYWZ0ZXIgdGhlIGxhc3Qg
c3RyaW5nLgorICogQGludGVybmFsCisgKi8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgordWRh
dGFfc3dhcEludlN0cmluZ0Jsb2NrKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAq
b3V0RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2Rl
KTsKKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9wcmludEVycm9yKGNvbnN0IFVEYXRh
U3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZtdCwKKyAgICAgICAg
ICAgICAgICAgLi4uKTsKKworLyogaW50ZXJuYWwgZXhwb3J0cyBmcm9tIHB1dGlsLmMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyogZGVjbGFyZWQg
aGVyZSB0byBrZWVwIHRoZW0gb3V0IG9mIHRoZSBwdWJsaWMgcHV0aWwuaCAqLworCisvKioKKyAq
IFN3YXAgaW52YXJpYW50IGNoYXIgKiBzdHJpbmdzIEFTQ0lJLT5FQkNESUMuCisgKiBAaW50ZXJu
YWwKKyAqLworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCit1cHJ2X2ViY2RpY0Zyb21Bc2NpaShj
b25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAq
aW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAgICAgICAgICAg
ICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENvcHkgaW52YXJpYW50IEFT
Q0lJIGNoYXIgKiBzdHJpbmdzIGFuZCB2ZXJpZnkgdGhleSBhcmUgaW52YXJpYW50LgorICogQGlu
dGVybmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBydl9jb3B5QXNjaWkoY29uc3QgVURhdGFT
d2FwcGVyICpkcywKKyAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBs
ZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKTsKKworLyoqCisgKiBTd2FwIGludmFyaWFudCBjaGFyICogc3RyaW5ncyBFQkNESUMtPkFT
Q0lJLgorICogQGludGVybmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJfdAordXBydl9hc2NpaUZyb21F
YmNkaWMoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHZvaWQgKmluRGF0YSwgaW50MzJfdCBsZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBDb3B5IGludmFy
aWFudCBFQkNESUMgY2hhciAqIHN0cmluZ3MgYW5kIHZlcmlmeSB0aGV5IGFyZSBpbnZhcmlhbnQu
CisgKiBAaW50ZXJuYWwKKyAqLworVV9DRlVOQyBpbnQzMl90Cit1cHJ2X2NvcHlFYmNkaWMoY29u
c3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICBjb25zdCB2b2lkICppbkRhdGEs
IGludDMyX3QgbGVuZ3RoLCB2b2lkICpvdXREYXRhLAorICAgICAgICAgICAgICAgIFVFcnJvckNv
ZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENvbXBhcmUgQVNDSUkgaW52YXJpYW50IGNoYXIg
KiB3aXRoIFVuaWNvZGUgaW52YXJpYW50IFVDaGFyICoKKyAqIEBpbnRlcm5hbAorICovCitVX0NG
VU5DIGludDMyX3QKK3VwcnZfY29tcGFyZUludkFzY2lpKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMs
CisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpvdXRTdHJpbmcsIGludDMyX3Qgb3V0
TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKmxvY2FsU3RyaW5nLCBp
bnQzMl90IGxvY2FsTGVuZ3RoKTsKKworLyoqCisgKiBDb21wYXJlIEVCQ0RJQyBpbnZhcmlhbnQg
Y2hhciAqIHdpdGggVW5pY29kZSBpbnZhcmlhbnQgVUNoYXIgKgorICogQGludGVybmFsCisgKi8K
K1VfQ0ZVTkMgaW50MzJfdAordXBydl9jb21wYXJlSW52RWJjZGljKGNvbnN0IFVEYXRhU3dhcHBl
ciAqZHMsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqb3V0U3RyaW5nLCBpbnQz
Ml90IG91dExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqbG9jYWxT
dHJpbmcsIGludDMyX3QgbG9jYWxMZW5ndGgpOworCisvKiBtYXRlcmlhbC4uLiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwor
CisjaWYgMAorCisvKiB1ZGF0YS5oICovCisKKy8qKgorICogUHVibGljIEFQSSBmdW5jdGlvbiBp
biB1ZGF0YS5jCisgKgorICogU2FtZSBhcyB1ZGF0YV9vcGVuQ2hvaWNlKCkgYnV0IGF1dG9tYXRp
Y2FsbHkgc3dhcHMgdGhlIGRhdGEuCisgKiBpc0FjY2VwdGFibGUsIGlmIG5vdCBOVUxMLCBtYXkg
YWNjZXB0IGRhdGEgd2l0aCBlbmRpYW5uZXNzIGFuZCBjaGFyc2V0IGZhbWlseQorICogZGlmZmVy
ZW50IGZyb20gdGhlIGN1cnJlbnQgcGxhdGZvcm0ncyBwcm9wZXJ0aWVzLgorICogSWYgdGhlIGRh
dGEgaXMgYWNjZXB0YWJsZSBhbmQgdGhlIHBsYXRmb3JtIHByb3BlcnRpZXMgZG8gbm90IG1hdGNo
LCB0aGVuCisgKiB0aGUgc3dhcCBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gc3dhcCBhbiBhbGxvY2F0
ZWQgdmVyc2lvbiBvZiB0aGUgZGF0YS4KKyAqIFByZWZsaWdodGluZyBtYXkgb3IgbWF5IG5vdCBi
ZSBwZXJmb3JtZWQgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIHNpemUgb2YKKyAqIHRoZSBsb2Fk
ZWQgZGF0YSBpdGVtIGlzIGtub3duLgorICoKKyAqIEBwYXJhbSBpc0FjY2VwdGFibGUgU2FtZSBh
cyBmb3IgdWRhdGFfb3BlbkNob2ljZSgpLiBNYXkgYmUgTlVMTC4KKyAqCisgKiBAaW50ZXJuYWwg
SUNVIDIuOAorICovCitVX0NBUEkgVURhdGFNZW1vcnkgKiBVX0VYUE9SVDIKK3VkYXRhX29wZW5T
d2FwKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUs
CisgICAgICAgICAgICAgICBVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSAqaXNBY2NlcHRhYmxlLCB2
b2lkICppc0FjY2VwdGFibGVDb250ZXh0LAorICAgICAgICAgICAgICAgVURhdGFTd2FwRm4gKnN3
YXAsCisgICAgICAgICAgICAgICBVRGF0YVByaW50RXJyb3IgKnByaW50RXJyb3IsIHZvaWQgKnBy
aW50RXJyb3JDb250ZXh0LAorICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7
CisKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9nZW5icmsvdW1hcGZpbGUuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9nZW5icmsvdW1hcGZpbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTk1ZTM4MWVkMzBjMGI5MDMy
NmIyNGVjZGYxMjI0OWZkNDM0NTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bWFwZmlsZS5oCkBAIC0wLDAgKzEsNTUgQEAKKy8q
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMSwg
SW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhl
cnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisv
Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiAgICAgICBNZW1vcnkgbWFwcGVkIGZp
bGUgd3JhcHBlcnMgZm9yIHVzZSBieSB0aGUgSUNVIERhdGEgSW1wbGVtZW50YXRpb24KKyAqCisg
KiAgICAgICAgICAgUG9ydGluZyBub3RlOiAgVGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIGZ1
bmN0aW9ucyBpcyB2ZXJ5IHBsYXRmb3JtIHNwZWNpZmljLgorICogICAgICAgICAgICAgTm90IGFs
bCBwbGF0Zm9ybXMgY2FuIGRvIHJlYWwgbWVtb3J5IG1hcHBpbmcuICBUaG9zZSB0aGF0IGNhbid0
CisgKiAgICAgICAgICAgICBzdGlsbCBtdXN0IGltcGxlbWVudCB0aGVzZSBmdW5jdGlvbnMsIGdl
dHRpbmcgdGhlIGRhdGEgaW50byBtZW1vcnkgdXNpbmcKKyAqICAgICAgICAgICAgIHdoYXRldmVy
IG1lYW5zIGFyZSBhdmFpbGFibGUuCisgKgorICogICAgICAgICAgICBUaGVzZSBmdW5jdGlvbnMg
YXJlIHBhcnQgb2YgdGhlIElDVSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiwgYW5kCisgKiAgICAg
ICAgICAgIGFyZSBub3QgaW50ZWRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGJ5IGFwcGxpY2F0aW9u
cy4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisjaWZuZGVmIF9fVU1BUEZJ
TEVfSF9fCisjZGVmaW5lIF9fVU1BUEZJTEVfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3B1dGls
LmgiCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgorI2luY2x1ZGUgInB1dGlsaW1wLmgiCisK
K1VfQ0ZVTkMgVUJvb2wgdXBydl9tYXBGaWxlKFVEYXRhTWVtb3J5ICpwZG0sIGNvbnN0IGNoYXIg
KnBhdGgpOworVV9DRlVOQyB2b2lkICB1cHJ2X3VubWFwRmlsZShVRGF0YU1lbW9yeSAqcERhdGEp
OworCisvKiBNQVBfTk9ORTogbm8gbWVtb3J5IG1hcHBpbmcsIG5vIGZpbGUgYWNjZXNzIGF0IGFs
bCAqLworI2RlZmluZSBNQVBfTk9ORSAgICAgICAgMAorI2RlZmluZSBNQVBfV0lOMzIgICAgICAg
MQorI2RlZmluZSBNQVBfUE9TSVggICAgICAgMgorI2RlZmluZSBNQVBfU1RESU8gICAgICAgMwor
I2RlZmluZSBNQVBfMzkwRExMICAgICAgNAorCisjaWYgVUNPTkZJR19OT19GSUxFX0lPCisjICAg
ZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfTk9ORQorI2VsaWYgVV9QTEFURk9STV9VU0VT
X09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfV0lOMzIK
KyNlbGlmIFVfSEFWRV9NTUFQIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9PUzM5MAorIyAgIGlmIFVf
UExBVEZPUk0gPT0gVV9QRl9PUzM5MCAmJiBkZWZpbmVkIChPUzM5MF9TVFVCREFUQSkKKyAgICAg
ICAgLyogICBObyBtZW1vcnkgbWFwcGluZyBmb3IgMzkwIGJhdGNoIG1vZGUuICBGYWtlIGl0IHVz
aW5nIGRsbCBsb2FkaW5nLiAgKi8KKyMgICAgICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBN
QVBfMzkwRExMCisjICAgZWxzZQorIyAgICAgICBkZWZpbmUgTUFQX0lNUExFTUVOVEFUSU9OIE1B
UF9QT1NJWAorIyAgIGVuZGlmCisjZWxzZSAvKiB1bmtub3duIHBsYXRmb3JtLCBubyBtZW1vcnkg
bWFwIGltcGxlbWVudGF0aW9uOiB1c2Ugc3RkaW8uaCBhbmQgdXBydl9tYWxsb2MoKSBpbnN0ZWFk
ICovCisjICAgZGVmaW5lIE1BUF9JTVBMRU1FTlRBVElPTiBNQVBfU1RESU8KKyNlbmRpZgorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5i
cmsvdW11dGV4LmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3Vt
dXRleC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmUwYWQwZDNjMDM2NTRkNjFhMDIzYTA4MjU0ODU2M2Q4ZDRjMDNj
NjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Z2VuYnJrL3VtdXRleC5oCkBAIC0wLDAgKzEsNDI0IEBACisvKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IENvcHlyaWdodCAoQykgMTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisqCisqIEZpbGUgVU1VVEVYLkgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6
CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwNC8wMi85
NyAgYWxpdSAgICAgICAgQ3JlYXRpb24uCisqICAgMDQvMDcvOTkgIHNybCAgICAgICAgIHJld3Jp
dGUgLSBDIGludGVyZmFjZSwgbXVsdGlwbGUgbXV0aWNlcworKiAgIDA1LzEzLzk5ICBzdGVwaGVu
ICAgICBDaGFuZ2VkIHRvIHVtdXRleCAoZnJvbSBjbXV0ZXgpCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKKyovCisKKyNpZm5kZWYgVU1VVEVYX0gKKyNkZWZpbmUgVU1VVEVYX0gKKworI2luY2x1ZGUg
InVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2xlYW4uaCIKKyNpbmNsdWRl
ICJwdXRpbGltcC5oIgorCisKKworLy8gRm9yd2FyZCBEZWNsYXJhdGlvbnMuIFVNdXRleCBpcyBu
b3QgaW4gdGhlIElDVSBuYW1lc3BhY2UgKHlldCkgYmVjYXVzZQorLy8gICAgICAgICAgICAgICAg
ICAgICAgIHRoZXJlIGFyZSBzb21lIHJlbWFpbmluZyByZWZlcmVuY2VzIGZyb20gcGxhaW4gQy4K
K3N0cnVjdCBVTXV0ZXg7CitzdHJ1Y3QgVUNvbmRpdGlvblZhcjsKKworVV9OQU1FU1BBQ0VfQkVH
SU4KK3N0cnVjdCBVSW5pdE9uY2U7CitVX05BTUVTUEFDRV9FTkQKKworLy8gU3RyaW5naWZ5IG1h
Y3JvcywgdG8gYWxsb3cgI2luY2x1ZGUgb2YgdXNlciBzdXBwbGllZCBhdG9taWMgJiBtdXRleCBm
aWxlcy4KKyNkZWZpbmUgVV9NVVRFWF9TVFIocykgI3MKKyNkZWZpbmUgVV9NVVRFWF9YU1RSKHMp
IFVfTVVURVhfU1RSKHMpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogICBMb3cgTGV2
ZWwgQXRvbWljIE9wZXJhdGlvbnMuCisgKiAgICAgIENvbXBpbGVyIGRlcGVuZGVudC4gTm90IG9w
ZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50LgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lm
IGRlZmluZWQgKFVfVVNFUl9BVE9NSUNTX0gpCisjaW5jbHVkZSBVX01VVEVYX1hTVFIoVV9VU0VS
X0FUT01JQ1NfSCkKKworI2VsaWYgVV9IQVZFX1NURF9BVE9NSUNTCisKKy8vICBDKysxMSBhdG9t
aWNzIGFyZSBhdmFpbGFibGUuCisKKyNpbmNsdWRlIDxhdG9taWM+CisKK1VfTkFNRVNQQUNFX0JF
R0lOCisKK3R5cGVkZWYgc3RkOjphdG9taWM8aW50MzJfdD4gdV9hdG9taWNfaW50MzJfdDsKKyNk
ZWZpbmUgQVRPTUlDX0lOVDMyX1RfSU5JVElBTElaRVIodmFsKSBBVE9NSUNfVkFSX0lOSVQodmFs
KQorCitpbmxpbmUgaW50MzJfdCB1bXR4X2xvYWRBY3F1aXJlKHVfYXRvbWljX2ludDMyX3QgJnZh
cikgeworICAgIHJldHVybiB2YXIubG9hZChzdGQ6Om1lbW9yeV9vcmRlcl9hY3F1aXJlKTsKK30K
KworaW5saW5lIHZvaWQgdW10eF9zdG9yZVJlbGVhc2UodV9hdG9taWNfaW50MzJfdCAmdmFyLCBp
bnQzMl90IHZhbCkgeworICAgIHZhci5zdG9yZSh2YWwsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGVh
c2UpOworfQorCitpbmxpbmUgaW50MzJfdCB1bXR4X2F0b21pY19pbmModV9hdG9taWNfaW50MzJf
dCAqdmFyKSB7CisgICAgcmV0dXJuIHZhci0+ZmV0Y2hfYWRkKDEpICsgMTsKK30KKworaW5saW5l
IGludDMyX3QgdW10eF9hdG9taWNfZGVjKHVfYXRvbWljX2ludDMyX3QgKnZhcikgeworICAgIHJl
dHVybiB2YXItPmZldGNoX3N1YigxKSAtIDE7Cit9CitVX05BTUVTUEFDRV9FTkQKKworI2VsaWYg
VV9QTEFURk9STV9IQVNfV0lOMzJfQVBJCisKKy8vIE1TVkMgY29tcGlsZXIuIFJlYWRzIGFuZCB3
cml0ZXMgb2Ygdm9sYXRpbGUgdmFyaWFibGVzIGhhdmUKKy8vICAgICAgICAgICAgICAgIGFjcXVp
cmUgYW5kIHJlbGVhc2UgbWVtb3J5IHNlbWFudGljcywgcmVzcGVjdGl2ZWx5LgorLy8gICAgICAg
ICAgICAgICAgVGhpcyBpcyBhIE1pY3Jvc29mdCBleHRlbnNpb24sIG5vdCBzdGFuZGFyZCBDKysg
YmVoYXZpb3IuCisvLworLy8gICBVcGRhdGU6ICAgICAgY2FuJ3QgdXNlIHRoaXMgYmVjYXVzZSBv
ZiBNaW5HVywgYnVpbHQgd2l0aCBnY2MuCisvLyAgICAgICAgICAgICAgICBPcmlnaW5hbCBwbGFu
IHdhcyB0byB1c2UgZ2NjIGF0b21pY3MgZm9yIE1pbkdXLCBidXQgdGhleQorLy8gICAgICAgICAg
ICAgICAgYXJlbid0IHN1cHBvcnRlZCwgc28gd2UgZm9sZCBNaW5HVyBpbnRvIHRoaXMgcGF0aC4K
KworIyBkZWZpbmUgV0lOMzJfTEVBTl9BTkRfTUVBTgorIyBkZWZpbmUgVkNfRVhUUkFMRUFOCisj
IGRlZmluZSBOT1VTRVIKKyMgZGVmaW5lIE5PU0VSVklDRQorIyBkZWZpbmUgTk9JTUUKKyMgZGVm
aW5lIE5PTUNYCisjIGlmbmRlZiBOT01JTk1BWAorIyBkZWZpbmUgTk9NSU5NQVgKKyMgZW5kaWYK
KyMgaW5jbHVkZSA8d2luZG93cy5oPgorCitVX05BTUVTUEFDRV9CRUdJTgordHlwZWRlZiB2b2xh
dGlsZSBMT05HIHVfYXRvbWljX2ludDMyX3Q7CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJ
QUxJWkVSKHZhbCkgdmFsCisKK2lubGluZSBpbnQzMl90IHVtdHhfbG9hZEFjcXVpcmUodV9hdG9t
aWNfaW50MzJfdCAmdmFyKSB7CisgICAgcmV0dXJuIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdl
KCZ2YXIsIDAsIDApOworfQorCitpbmxpbmUgdm9pZCB1bXR4X3N0b3JlUmVsZWFzZSh1X2F0b21p
Y19pbnQzMl90ICZ2YXIsIGludDMyX3QgdmFsKSB7CisgICAgSW50ZXJsb2NrZWRFeGNoYW5nZSgm
dmFyLCB2YWwpOworfQorCisKK2lubGluZSBpbnQzMl90IHVtdHhfYXRvbWljX2luYyh1X2F0b21p
Y19pbnQzMl90ICp2YXIpIHsKKyAgICByZXR1cm4gSW50ZXJsb2NrZWRJbmNyZW1lbnQodmFyKTsK
K30KKworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfZGVjKHVfYXRvbWljX2ludDMyX3QgKnZh
cikgeworICAgIHJldHVybiBJbnRlcmxvY2tlZERlY3JlbWVudCh2YXIpOworfQorVV9OQU1FU1BB
Q0VfRU5ECisKKworI2VsaWYgVV9IQVZFX0dDQ19BVE9NSUNTCisvKgorICogZ2NjIGF0b21pYyBv
cHMuIFRoZXNlIGFyZSBhdmFpbGFibGUgb24gc2V2ZXJhbCBvdGhlciBjb21waWxlcnMgYXMgd2Vs
bC4KKyAqLworCitVX05BTUVTUEFDRV9CRUdJTgordHlwZWRlZiBpbnQzMl90IHVfYXRvbWljX2lu
dDMyX3Q7CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJQUxJWkVSKHZhbCkgdmFsCisKK2lu
bGluZSBpbnQzMl90IHVtdHhfbG9hZEFjcXVpcmUodV9hdG9taWNfaW50MzJfdCAmdmFyKSB7Cisg
ICAgaW50MzJfdCB2YWwgPSB2YXI7CisgICAgX19zeW5jX3N5bmNocm9uaXplKCk7CisgICAgcmV0
dXJuIHZhbDsKK30KKworaW5saW5lIHZvaWQgdW10eF9zdG9yZVJlbGVhc2UodV9hdG9taWNfaW50
MzJfdCAmdmFyLCBpbnQzMl90IHZhbCkgeworICAgIF9fc3luY19zeW5jaHJvbml6ZSgpOworICAg
IHZhciA9IHZhbDsKK30KKworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfaW5jKHVfYXRvbWlj
X2ludDMyX3QgKnApICB7CisgICByZXR1cm4gX19zeW5jX2FkZF9hbmRfZmV0Y2gocCwgMSk7Cit9
CisKK2lubGluZSBpbnQzMl90IHVtdHhfYXRvbWljX2RlYyh1X2F0b21pY19pbnQzMl90ICpwKSAg
eworICAgcmV0dXJuIF9fc3luY19zdWJfYW5kX2ZldGNoKHAsIDEpOworfQorVV9OQU1FU1BBQ0Vf
RU5ECisKKyNlbHNlCisKKy8qCisgKiBVbmtub3duIFBsYXRmb3JtLiBVc2Ugb3V0LW9mLWxpbmUg
ZnVuY3Rpb25zLCB3aGljaCBpbiB0dXJuIHVzZSBtdXRleGVzLgorICogICAgICAgICAgICAgICAg
ICAgU2xvdyBidXQgY29ycmVjdC4KKyAqLworCisjZGVmaW5lIFVfTk9fUExBVEZPUk1fQVRPTUlD
UworCitVX05BTUVTUEFDRV9CRUdJTgordHlwZWRlZiBpbnQzMl90IHVfYXRvbWljX2ludDMyX3Q7
CisjZGVmaW5lIEFUT01JQ19JTlQzMl9UX0lOSVRJQUxJWkVSKHZhbCkgdmFsCisKK1VfQ09NTU9O
X0FQSSBpbnQzMl90IFVfRVhQT1JUMiAKK3VtdHhfbG9hZEFjcXVpcmUodV9hdG9taWNfaW50MzJf
dCAmdmFyKTsKKworVV9DT01NT05fQVBJIHZvaWQgVV9FWFBPUlQyIAordW10eF9zdG9yZVJlbGVh
c2UodV9hdG9taWNfaW50MzJfdCAmdmFyLCBpbnQzMl90IHZhbCk7CisKK1VfQ09NTU9OX0FQSSBp
bnQzMl90IFVfRVhQT1JUMiAKK3VtdHhfYXRvbWljX2luYyh1X2F0b21pY19pbnQzMl90ICpwKTsK
KworVV9DT01NT05fQVBJIGludDMyX3QgVV9FWFBPUlQyIAordW10eF9hdG9taWNfZGVjKHVfYXRv
bWljX2ludDMyX3QgKnApOworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmICAvKiBMb3cgTGV2
ZWwgQXRvbWljIE9wcyBQbGF0ZnJvbSBDaGFpbiAqLworCisKKworLyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgVUluaXRPbmNlIERlZmluaXRpb25zLgor
ICogICAgIFRoZXNlIGFyZSBwbGF0Zm9ybSBuZXV0cmFsLgorICoKKyAqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqLworCitVX05BTUVTUEFDRV9CRUdJTgorCitzdHJ1Y3Qg
VUluaXRPbmNlIHsKKyAgICB1X2F0b21pY19pbnQzMl90ICAgZlN0YXRlOworICAgIFVFcnJvckNv
ZGUgICAgICAgZkVyckNvZGU7CisgICAgdm9pZCByZXNldCgpIHtmU3RhdGUgPSAwO307CisgICAg
VUJvb2wgaXNSZXNldCgpIHtyZXR1cm4gdW10eF9sb2FkQWNxdWlyZShmU3RhdGUpID09IDA7fTsK
Ky8vIE5vdGU6IGlzUmVzZXQoKSBpcyB1c2VkIGJ5IHNlcnZpY2UgcmVnaXN0cmF0aW9uIGNvZGUu
CisvLyAgICAgICAgICAgICAgICAgVGhyZWFkIHNhZmV0eSBvZiB0aGlzIHVzYWdlIG5lZWRzIHJl
dmlldy4KK307CisKKyNkZWZpbmUgVV9JTklUT05DRV9JTklUSUFMSVpFUiB7QVRPTUlDX0lOVDMy
X1RfSU5JVElBTElaRVIoMCksIFVfWkVST19FUlJPUn0KKworCitVX0NPTU1PTl9BUEkgVUJvb2wg
VV9FWFBPUlQyIHVtdHhfaW5pdEltcGxQcmVJbml0KFVJbml0T25jZSAmKTsKK1VfQ09NTU9OX0FQ
SSB2b2lkICBVX0VYUE9SVDIgdW10eF9pbml0SW1wbFBvc3RJbml0KFVJbml0T25jZSAmKTsKKwor
dGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCB1bXR4X2luaXRPbmNlKFVJbml0T25jZSAmdWlvLCBUICpv
YmosIHZvaWQgKFQ6OipmcCkoKSkgeworICAgIGlmICh1bXR4X2xvYWRBY3F1aXJlKHVpby5mU3Rh
dGUpID09IDIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAodW10eF9pbml0SW1w
bFByZUluaXQodWlvKSkgeworICAgICAgICAob2JqLT4qZnApKCk7CisgICAgICAgIHVtdHhfaW5p
dEltcGxQb3N0SW5pdCh1aW8pOworICAgIH0KK30KKworCisvLyB1bXR4X2luaXRPbmNlIHZhcmlh
bnQgZm9yIHBsYWluIGZ1bmN0aW9ucywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9ucy4KKy8vICAg
ICAgICAgICAgICAgTm8gY29udGV4dCBwYXJhbWV0ZXIuCitpbmxpbmUgdm9pZCB1bXR4X2luaXRP
bmNlKFVJbml0T25jZSAmdWlvLCB2b2lkICgqZnApKCkpIHsKKyAgICBpZiAodW10eF9sb2FkQWNx
dWlyZSh1aW8uZlN0YXRlKSA9PSAyKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYg
KHVtdHhfaW5pdEltcGxQcmVJbml0KHVpbykpIHsKKyAgICAgICAgKCpmcCkoKTsKKyAgICAgICAg
dW10eF9pbml0SW1wbFBvc3RJbml0KHVpbyk7CisgICAgfQorfQorCisvLyB1bXR4X2luaXRPbmNl
IHZhcmlhbnQgZm9yIHBsYWluIGZ1bmN0aW9ucywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9ucy4K
Ky8vICAgICAgICAgICAgICAgV2l0aCBFcnJvckNvZGUsIE5vIGNvbnRleHQgcGFyYW1ldGVyLgor
aW5saW5lIHZvaWQgdW10eF9pbml0T25jZShVSW5pdE9uY2UgJnVpbywgdm9pZCAoKmZwKShVRXJy
b3JDb2RlICYpLCBVRXJyb3JDb2RlICZlcnJDb2RlKSB7CisgICAgaWYgKFVfRkFJTFVSRShlcnJD
b2RlKSkgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICh1bXR4X2xvYWRBY3F1aXJl
KHVpby5mU3RhdGUpICE9IDIgJiYgdW10eF9pbml0SW1wbFByZUluaXQodWlvKSkgeworICAgICAg
ICAvLyBXZSBydW4gdGhlIGluaXRpYWxpemF0aW9uLgorICAgICAgICAoKmZwKShlcnJDb2RlKTsK
KyAgICAgICAgdWlvLmZFcnJDb2RlID0gZXJyQ29kZTsKKyAgICAgICAgdW10eF9pbml0SW1wbFBv
c3RJbml0KHVpbyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gU29tZW9uZSBlbHNlIGFscmVh
ZHkgcmFuIHRoZSBpbml0aWFsaXphdGlvbi4KKyAgICAgICAgaWYgKFVfRkFJTFVSRSh1aW8uZkVy
ckNvZGUpKSB7CisgICAgICAgICAgICBlcnJDb2RlID0gdWlvLmZFcnJDb2RlOworICAgICAgICB9
CisgICAgfQorfQorCisvLyB1bXR4X2luaXRPbmNlIHZhcmlhbnQgZm9yIHBsYWluIGZ1bmN0aW9u
cywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9ucywKKy8vICAgICAgICAgICAgICAgd2l0aCBhIGNv
bnRleHQgcGFyYW1ldGVyLgordGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCB1bXR4X2luaXRPbmNlKFVJ
bml0T25jZSAmdWlvLCB2b2lkICgqZnApKFQpLCBUIGNvbnRleHQpIHsKKyAgICBpZiAodW10eF9s
b2FkQWNxdWlyZSh1aW8uZlN0YXRlKSA9PSAyKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgaWYgKHVtdHhfaW5pdEltcGxQcmVJbml0KHVpbykpIHsKKyAgICAgICAgKCpmcCkoY29udGV4
dCk7CisgICAgICAgIHVtdHhfaW5pdEltcGxQb3N0SW5pdCh1aW8pOworICAgIH0KK30KKworLy8g
dW10eF9pbml0T25jZSB2YXJpYW50IGZvciBwbGFpbiBmdW5jdGlvbnMsIG9yIHN0YXRpYyBjbGFz
cyBmdW5jdGlvbnMsCisvLyAgICAgICAgICAgICAgIHdpdGggYSBjb250ZXh0IHBhcmFtZXRlciBh
bmQgYW4gZXJyb3IgY29kZS4KK3RlbXBsYXRlPGNsYXNzIFQ+IHZvaWQgdW10eF9pbml0T25jZShV
SW5pdE9uY2UgJnVpbywgdm9pZCAoKmZwKShULCBVRXJyb3JDb2RlICYpLCBUIGNvbnRleHQsIFVF
cnJvckNvZGUgJmVyckNvZGUpIHsKKyAgICBpZiAoVV9GQUlMVVJFKGVyckNvZGUpKSB7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHVtdHhfbG9hZEFjcXVpcmUodWlvLmZTdGF0ZSkg
IT0gMiAmJiB1bXR4X2luaXRJbXBsUHJlSW5pdCh1aW8pKSB7CisgICAgICAgIC8vIFdlIHJ1biB0
aGUgaW5pdGlhbGl6YXRpb24uCisgICAgICAgICgqZnApKGNvbnRleHQsIGVyckNvZGUpOworICAg
ICAgICB1aW8uZkVyckNvZGUgPSBlcnJDb2RlOworICAgICAgICB1bXR4X2luaXRJbXBsUG9zdElu
aXQodWlvKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBTb21lb25lIGVsc2UgYWxyZWFkeSBy
YW4gdGhlIGluaXRpYWxpemF0aW9uLgorICAgICAgICBpZiAoVV9GQUlMVVJFKHVpby5mRXJyQ29k
ZSkpIHsKKyAgICAgICAgICAgIGVyckNvZGUgPSB1aW8uZkVyckNvZGU7CisgICAgICAgIH0KKyAg
ICB9Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyAqCisgKiAgTXV0ZXggRGVmaW5pdGlvbnMuIFBsYXRmb3JtIERl
cGVuZGVudCwgI2lmIHBsYXRmb3JtIGNoYWluIGZvbGxvd3MuCisgKiAgICAgICAgIFRPRE86ICBB
ZGQgYSBDKysxMSB2ZXJzaW9uLgorICogICAgICAgICAgICAgICAgTmVlZCB0byBjb252ZXJ0IGFs
bCBtdXRleCB1c2luZyBmaWxlcyB0byBDKysgZmlyc3QuCisgKgorICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZiBkZWZpbmVkKFVfVVNFUl9NVVRFWF9IKQor
Ly8gI2lubGN1ZGUgIlVfVVNFUl9NVVRFWF9IIgorI2luY2x1ZGUgVV9NVVRFWF9YU1RSKFVfVVNF
Ul9NVVRFWF9IKQorCisjZWxpZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkKKworLyogV2luZG93
cyBEZWZpbml0aW9ucy4KKyAqICAgIFdpbmRvd3MgY29tZXMgZmlyc3QgaW4gdGhlIHBsYXRmb3Jt
IGNoYWluLgorICogICAgQ3lnd2luIChhbmQgcG9zc2libHkgb3RoZXJzKSBoYXZlIGJvdGggV0lO
MzIgYW5kIFBPU0lYIEFQSXMuIFByZWZlciBXaW4zMiBpbiB0aGlzIGNhc2UuCisgKi8KKworCisv
KiBGb3IgQ1JJVElDQUxfU0VDVElPTiAqLworCisvKgorICogICBOb3RlOiB0aGVyZSBpcyBhbiBl
YXJsaWVyIGluY2x1ZGUgb2Ygd2luZG93cy5oIGluIHRoaXMgZmlsZSwgYnV0IGl0IGlzIGluCisg
KiAgICAgICAgIGRpZmZlcmVudCBjb25kaXRpb25hbHMuCisgKiAgICAgICAgIFRoaXMgb25lIGlz
IG5lZWRlZCBpZiB3ZSBhcmUgdXNpbmcgQysrMTEgZm9yIGF0b21pYyBvcHMsIGJ1dAorICogICAg
ICAgICB3aW4zMiBBUElzIGZvciBDcml0aWNhbCBTZWN0aW9ucy4KKyAqLworCisjIGRlZmluZSBX
SU4zMl9MRUFOX0FORF9NRUFOCisjIGRlZmluZSBWQ19FWFRSQUxFQU4KKyMgZGVmaW5lIE5PVVNF
UgorIyBkZWZpbmUgTk9TRVJWSUNFCisjIGRlZmluZSBOT0lNRQorIyBkZWZpbmUgTk9NQ1gKKyMg
aWZuZGVmIE5PTUlOTUFYCisjIGRlZmluZSBOT01JTk1BWAorIyBlbmRpZgorIyBpbmNsdWRlIDx3
aW5kb3dzLmg+CisKKwordHlwZWRlZiBzdHJ1Y3QgVU11dGV4IHsKKyAgICBpY3U6OlVJbml0T25j
ZSAgICBmSW5pdE9uY2U7CisgICAgQ1JJVElDQUxfU0VDVElPTiAgZkNTOworfSBVTXV0ZXg7CisK
Ky8qIEluaXRpYWxpemVyIGZvciBhIHN0YXRpYyBVTVVURVguIERlbGliZXJhdGVseSBjb250YWlu
cyBubyB2YWx1ZSBmb3IgdGhlCisgKiAgQ1JJVElDQUxfU0VDVElPTi4KKyAqLworI2RlZmluZSBV
X01VVEVYX0lOSVRJQUxJWkVSIHtVX0lOSVRPTkNFX0lOSVRJQUxJWkVSfQorCitzdHJ1Y3QgVUNv
bmRpdGlvblZhciB7CisgICAgSEFORExFICAgICAgICAgICBmRW50cnlHYXRlOworICAgIEhBTkRM
RSAgICAgICAgICAgZkV4aXRHYXRlOworICAgIGludDMyX3QgICAgICAgICAgZldhaXRDb3VudDsK
K307CisKKyNkZWZpbmUgVV9DT05ESVRJT05fSU5JVElBTElaRVIge05VTEwsIE5VTEwsIDB9Cisg
ICAgCisKKworI2VsaWYgVV9QTEFURk9STV9JTVBMRU1FTlRTX1BPU0lYCisKKy8qCisgKiAgUE9T
SVggcGxhdGZvcm0KKyAqLworCisjaW5jbHVkZSA8cHRocmVhZC5oPgorCitzdHJ1Y3QgVU11dGV4
IHsKKyAgICBwdGhyZWFkX211dGV4X3QgIGZNdXRleDsKK307Cit0eXBlZGVmIHN0cnVjdCBVTXV0
ZXggVU11dGV4OworI2RlZmluZSBVX01VVEVYX0lOSVRJQUxJWkVSICB7UFRIUkVBRF9NVVRFWF9J
TklUSUFMSVpFUn0KKworc3RydWN0IFVDb25kaXRpb25WYXIgeworICAgIHB0aHJlYWRfY29uZF90
ICAgZkNvbmRpdGlvbjsKK307CisjZGVmaW5lIFVfQ09ORElUSU9OX0lOSVRJQUxJWkVSIHtQVEhS
RUFEX0NPTkRfSU5JVElBTElaRVJ9CisKKyNlbHNlCisKKy8qCisgKiAgVW5rbm93IHBsYXRmb3Jt
IHR5cGUuCisgKiAgICAgIFRoaXMgaXMgYW4gZXJyb3IgY29uZGl0aW9uLiBJQ1UgcmVxdWlyZXMg
bXV0ZXhlcy4KKyAqLworCisjZXJyb3IgVW5rbm93biBQbGF0Zm9ybS4KKworI2VuZGlmCisKKwor
CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgTXV0ZXggSW1wbGVtZW50
YXRpb24gZnVuY3Rpb24gZGVjbGFyYXRhdGlvbnMuCisgKiAgICAgRGVjbGFyYXRpb25zIGFyZSBw
bGF0Zm9ybSBuZXV0cmFsLgorICogICAgIEltcGxlbWVudGF0aW9ucywgaW4gdW11dGV4LmNwcCwg
YXJlIHBsYXRmb3JtIHNwZWNpZmljLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov
CisKKy8qIExvY2sgYSBtdXRleC4KKyAqIEBwYXJhbSBtdXRleCBUaGUgZ2l2ZW4gbXV0ZXggdG8g
YmUgbG9ja2VkLiAgUGFzcyBOVUxMIHRvIHNwZWNpZnkKKyAqICAgICAgICAgICAgICB0aGUgZ2xv
YmFsIElDVSBtdXRleC4gIFJlY3Vyc2l2ZSBsb2NrcyBhcmUgYW4gZXJyb3IKKyAqICAgICAgICAg
ICAgICBhbmQgbWF5IGNhdXNlIGEgZGVhZGxvY2sgb24gc29tZSBwbGF0Zm9ybXMuCisgKi8KK1Vf
SU5URVJOQUwgdm9pZCBVX0VYUE9SVDIgdW10eF9sb2NrKFVNdXRleCogbXV0ZXgpOworCisvKiBV
bmxvY2sgYSBtdXRleC4KKyAqIEBwYXJhbSBtdXRleCBUaGUgZ2l2ZW4gbXV0ZXggdG8gYmUgdW5s
b2NrZWQuICBQYXNzIE5VTEwgdG8gc3BlY2lmeQorICogICAgICAgICAgICAgIHRoZSBnbG9iYWwg
SUNVIG11dGV4LgorICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyIHVtdHhfdW5sb2NrIChV
TXV0ZXgqIG11dGV4KTsKKworLyoKKyAqIFdhaXQgb24gYSBjb25kaXRpb24gdmFyaWFibGUuCisg
KiBUaGUgY2FsbGluZyB0aHJlYWQgd2lsbCB1bmxvY2sgdGhlIG11dGV4IGFuZCB3YWl0IG9uIHRo
ZSBjb25kaXRpb24gdmFyaWFibGUuCisgKiBUaGUgbXV0ZXggbXVzdCBiZSBsb2NrZWQgYnkgdGhl
IGNhbGxpbmcgdGhyZWFkIHdoZW4gaW52b2tpbmcgdGhpcyBmdW5jdGlvbi4KKyAqCisgKiBAcGFy
YW0gY29uZCB0aGUgY29uZGl0aW9uIHZhcmlhYmxlIHRvIHdhaXQgb24uCisgKiBAcGFyYW0gbXV0
ZXggdGhlIGFzc29jaWF0ZWQgbXV0ZXguCisgKi8KKworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JU
MiB1bXR4X2NvbmRXYWl0KFVDb25kaXRpb25WYXIgKmNvbmQsIFVNdXRleCAqbXV0ZXgpOworCisK
Ky8qCisgKiBCcm9hZGNhc3Qgd2FrZXVwIG9mIGFsbCB0aHJlYWRzIHdhaXRpbmcgb24gYSBDb25k
aXRpb24uCisgKiBUaGUgYXNzb2NpYXRlZCBtdXRleCBtdXN0IGJlIGxvY2tlZCBieSB0aGUgY2Fs
bGluZyB0aHJlYWQgd2hlbiBjYWxsaW5nCisgKiB0aGlzIGZ1bmN0aW9uOyB0aGlzIGlzIGEgdGVt
cG9yYXJ5IElDVSByZXN0cmljdGlvbi4KKyAqIAorICogQHBhcmFtIGNvbmQgdGhlIGNvbmRpdGlv
biB2YXJpYWJsZS4KKyAqLworVV9JTlRFUk5BTCB2b2lkIFVfRVhQT1JUMiB1bXR4X2NvbmRCcm9h
ZGNhc3QoVUNvbmRpdGlvblZhciAqY29uZCk7CisKKy8qCisgKiBTaWduYWwgYSBjb25kaXRpb24g
dmFyaWFibGUsIHdha2luZyB1cCBvbmUgd2FpdGluZyB0aHJlYWQuCisgKiBDQVVUSU9OOiBEbyBu
b3QgdXNlLiBQbGFjZSBob2xkZXIgb25seS4gTm90IGltcGxlbWVudGVkIGZvciBXaW5kb3dzLgor
ICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyIHVtdHhfY29uZFNpZ25hbChVQ29uZGl0aW9u
VmFyICpjb25kKTsKKworI2VuZGlmIC8qIFVNVVRFWF9IICovCisvKmVvZiovCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VuZXdkYXRhLmMgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VuZXdkYXRhLmMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWVhNjBkNTY2ODM5NjQwMzdiYjM2ZGU3MjhiNTJmMWJjNDFmZWM2NgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW5ld2Rh
dGEuYwpAQCAtMCwwICsxLDI3NCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyog
ICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5l
cworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVuZXdkYXRhLmMKKyogICBl
bmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGlu
ZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0MjUKKyogICBjcmVhdGVkIGJ5
OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSAi
dW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3B1dGlsLmgiCisjaW5jbHVkZSAi
dW5pY29kZS91c3RyaW5nLmgiCisjaW5jbHVkZSAiY21lbW9yeS5oIgorI2luY2x1ZGUgImNzdHJp
bmcuaCIKKyNpbmNsdWRlICJmaWxlc3RybS5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIK
KyNpbmNsdWRlICJ1bmV3ZGF0YS5oIgorCitzdHJ1Y3QgVU5ld0RhdGFNZW1vcnkgeworICAgIEZp
bGVTdHJlYW0gKmZpbGU7CisgICAgdWludDE2X3QgaGVhZGVyU2l6ZTsKKyAgICB1aW50OF90IG1h
Z2ljMSwgbWFnaWMyOworfTsKKworVV9DQVBJIFVOZXdEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1
ZGF0YV9jcmVhdGUoY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFy
ICpuYW1lLAorICAgICAgICAgICAgIGNvbnN0IFVEYXRhSW5mbyAqcEluZm8sCisgICAgICAgICAg
ICAgY29uc3QgY2hhciAqY29tbWVudCwKKyAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKSB7CisgICAgVU5ld0RhdGFNZW1vcnkgKnBEYXRhOworICAgIHVpbnQxNl90IGhlYWRlclNp
emUsIGNvbW1lbnRMZW5ndGg7CisgICAgY2hhciBmaWxlbmFtZVs1MTJdOworICAgIHVpbnQ4X3Qg
Ynl0ZXNbMTZdOworICAgIGludCBsZW5ndGg7CisKKyAgICBpZihwRXJyb3JDb2RlPT1OVUxMIHx8
IFVfRkFJTFVSRSgqcEVycm9yQ29kZSkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfSBl
bHNlIGlmKG5hbWU9PU5VTEwgfHwgKm5hbWU9PTAgfHwgcEluZm89PU5VTEwpIHsKKyAgICAgICAg
KnBFcnJvckNvZGU9VV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SOworICAgICAgICByZXR1cm4gTlVM
TDsKKyAgICB9CisKKyAgICAvKiBhbGxvY2F0ZSB0aGUgZGF0YSBzdHJ1Y3R1cmUgKi8KKyAgICBw
RGF0YT0oVU5ld0RhdGFNZW1vcnkgKil1cHJ2X21hbGxvYyhzaXplb2YoVU5ld0RhdGFNZW1vcnkp
KTsKKyAgICBpZihwRGF0YT09TlVMTCkgeworICAgICAgICAqcEVycm9yQ29kZT1VX01FTU9SWV9B
TExPQ0FUSU9OX0VSUk9SOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgCisgICAg
LyogQ2hlY2sgdGhhdCB0aGUgZnVsbCBwYXRoIHdvbid0IGJlIHRvbyBsb25nICovCisgICAgbGVu
Z3RoID0gMDsJCQkJCS8qIFN0YXJ0IHdpdGggbm90aGluZyAqLworICAgIGlmKGRpciAhPSBOVUxM
ICAmJiAqZGlyICE9MCkJLyogQWRkIGRpcmVjdG9yeSBsZW5ndGggaWYgb25lIHdhcyBnaXZlbiAq
LworICAgIHsKKyAgICAJbGVuZ3RoICs9IHN0cmxlbihkaXIpOworCQorICAgIAkvKiBBZGQgMSBp
ZiBkaXIgZG9lc24ndCBlbmQgd2l0aCBwYXRoIHNlcCAqLworICAgICAgICBpZiAoZGlyW3N0cmxl
bihkaXIpIC0gMV0hPSBVX0ZJTEVfU0VQX0NIQVIpIHsKKyAgICAgICAgICAgIGxlbmd0aCsrOwor
ICAgICAgICB9CisJfQorICAgIGxlbmd0aCArPSBzdHJsZW4obmFtZSk7CQkvKiBBZGQgdGhlIGZp
bGVuYW1lIGxlbmd0aCAqLworCisgICAgaWYodHlwZSAhPSBOVUxMICAmJiAqdHlwZSAhPTApIHsg
LyogQWRkIGRpcmVjdG9yeSBsZW5ndGggaWYgIGdpdmVuICovCisgICAgICAgIGxlbmd0aCArPSBz
dHJsZW4odHlwZSk7CisgICAgfQorCisgICAgICAgIAorICAgICAvKiBMREggYnVmZmVyIExlbmd0
aCBlcnJvciBjaGVjayAqLworICAgIGlmKGxlbmd0aCAgPiAoc2l6ZW9mKGZpbGVuYW1lKSAtIDEp
KQorICAgIHsKKyAgIAkgICAgKnBFcnJvckNvZGUgPSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUjsK
KyAgIAkgICAgdXBydl9mcmVlKHBEYXRhKTsKKwkgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAg
CisgICAgLyogb3BlbiB0aGUgb3V0cHV0IGZpbGUgKi8KKyAgICBpZihkaXIhPU5VTEwgJiYgKmRp
ciE9MCkgeyAvKiBpZiBkaXIgaGFzIGEgdmFsdWUsIHdlIHByZXBlbmQgaXQgdG8gdGhlIGZpbGVu
YW1lICovCisgICAgICAgIGNoYXIgKnA9ZmlsZW5hbWUrc3RybGVuKGRpcik7CisgICAgICAgIHVw
cnZfc3RyY3B5KGZpbGVuYW1lLCBkaXIpOworICAgICAgICBpZiAoKihwLTEpIT1VX0ZJTEVfU0VQ
X0NIQVIpIHsKKyAgICAgICAgICAgICpwKys9VV9GSUxFX1NFUF9DSEFSOworICAgICAgICAgICAg
KnA9MDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7IC8qIG90aGVyd2lzZSwgd2UnbGwgb3V0cHV0
IHRvIHRoZSBjdXJyZW50IGRpciAqLworICAgICAgICBmaWxlbmFtZVswXT0wOworICAgIH0KKyAg
ICB1cHJ2X3N0cmNhdChmaWxlbmFtZSwgbmFtZSk7CisgICAgaWYodHlwZSE9TlVMTCAmJiAqdHlw
ZSE9MCkgeworICAgICAgICB1cHJ2X3N0cmNhdChmaWxlbmFtZSwgIi4iKTsKKyAgICAgICAgdXBy
dl9zdHJjYXQoZmlsZW5hbWUsIHR5cGUpOworICAgIH0KKyAgICBwRGF0YS0+ZmlsZT1UX0ZpbGVT
dHJlYW1fb3BlbihmaWxlbmFtZSwgIndiIik7CisgICAgaWYocERhdGEtPmZpbGU9PU5VTEwpIHsK
KyAgICAgICAgdXBydl9mcmVlKHBEYXRhKTsKKyAgICAgICAgKnBFcnJvckNvZGU9VV9GSUxFX0FD
Q0VTU19FUlJPUjsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgLyogd3JpdGUg
dGhlIGhlYWRlciBpbmZvcm1hdGlvbiAqLworICAgIGhlYWRlclNpemU9KHVpbnQxNl90KShwSW5m
by0+c2l6ZSs0KTsKKyAgICBpZihjb21tZW50IT1OVUxMICYmICpjb21tZW50IT0wKSB7CisgICAg
ICAgIGNvbW1lbnRMZW5ndGg9KHVpbnQxNl90KSh1cHJ2X3N0cmxlbihjb21tZW50KSsxKTsKKyAg
ICAgICAgaGVhZGVyU2l6ZSs9Y29tbWVudExlbmd0aDsKKyAgICB9IGVsc2UgeworICAgICAgICBj
b21tZW50TGVuZ3RoPTA7CisgICAgfQorCisgICAgLyogd3JpdGUgdGhlIHNpemUgb2YgdGhlIGhl
YWRlciwgdGFrZSBwYWRkaW5nIGludG8gYWNjb3VudCAqLworICAgIHBEYXRhLT5oZWFkZXJTaXpl
PSh1aW50MTZfdCkoKGhlYWRlclNpemUrMTUpJn4weGYpOworICAgIHBEYXRhLT5tYWdpYzE9MHhk
YTsKKyAgICBwRGF0YS0+bWFnaWMyPTB4Mjc7CisgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRh
LT5maWxlLCAmcERhdGEtPmhlYWRlclNpemUsIDQpOworCisgICAgLyogd3JpdGUgdGhlIGluZm9y
bWF0aW9uIGRhdGEgKi8KKyAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsIHBJbmZv
LCBwSW5mby0+c2l6ZSk7CisKKyAgICAvKiB3cml0ZSB0aGUgY29tbWVudCAqLworICAgIGlmKGNv
bW1lbnRMZW5ndGg+MCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUs
IGNvbW1lbnQsIGNvbW1lbnRMZW5ndGgpOworICAgIH0KKworICAgIC8qIHdyaXRlIHBhZGRpbmcg
Ynl0ZXMgdG8gYWxpZ24gdGhlIGRhdGEgc2VjdGlvbiB0byAxNiBieXRlcyAqLworICAgIGhlYWRl
clNpemUmPTB4ZjsKKyAgICBpZihoZWFkZXJTaXplIT0wKSB7CisgICAgICAgIGhlYWRlclNpemU9
KHVpbnQxNl90KSgxNi1oZWFkZXJTaXplKTsKKyAgICAgICAgdXBydl9tZW1zZXQoYnl0ZXMsIDAs
IGhlYWRlclNpemUpOworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsIGJ5
dGVzLCBoZWFkZXJTaXplKTsKKyAgICB9CisKKyAgICByZXR1cm4gcERhdGE7Cit9CisKK1VfQ0FQ
SSB1aW50MzJfdCBVX0VYUE9SVDIKK3VkYXRhX2ZpbmlzaChVTmV3RGF0YU1lbW9yeSAqcERhdGEs
IFVFcnJvckNvZGUgKnBFcnJvckNvZGUpIHsKKyAgICB1aW50MzJfdCBmaWxlTGVuZ3RoPTA7CisK
KyAgICBpZihwRXJyb3JDb2RlPT1OVUxMIHx8IFVfRkFJTFVSRSgqcEVycm9yQ29kZSkpIHsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYocERhdGEhPU5VTEwpIHsKKyAgICAgICAg
aWYocERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgICAgIC8qIGZmbHVzaChwRGF0YS0+Zmls
ZSk7Ki8KKyAgICAgICAgICAgIGZpbGVMZW5ndGg9VF9GaWxlU3RyZWFtX3NpemUocERhdGEtPmZp
bGUpOworICAgICAgICAgICAgaWYoVF9GaWxlU3RyZWFtX2Vycm9yKHBEYXRhLT5maWxlKSkgewor
ICAgICAgICAgICAgICAgICpwRXJyb3JDb2RlPVVfRklMRV9BQ0NFU1NfRVJST1I7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZpbGVMZW5ndGgtPXBEYXRhLT5oZWFkZXJT
aXplOworICAgICAgICAgICAgfQorICAgICAgICAgICAgVF9GaWxlU3RyZWFtX2Nsb3NlKHBEYXRh
LT5maWxlKTsKKyAgICAgICAgfQorICAgICAgICB1cHJ2X2ZyZWUocERhdGEpOworICAgIH0KKwor
ICAgIHJldHVybiBmaWxlTGVuZ3RoOworfQorCisvKiBkdW1teSBVRGF0YUluZm8gY2YuIHVkYXRh
LmggKi8KK3N0YXRpYyBjb25zdCBVRGF0YUluZm8gZHVtbXlEYXRhSW5mbyA9IHsKKyAgICBzaXpl
b2YoVURhdGFJbmZvKSwKKyAgICAwLAorCisgICAgVV9JU19CSUdfRU5ESUFOLAorICAgIFVfQ0hB
UlNFVF9GQU1JTFksCisgICAgVV9TSVpFT0ZfVUNIQVIsCisgICAgMCwKKworICAgIHsgMCwgMCwg
MCwgMCB9LCAgICAgICAgICAgICAgICAgLyogZHVtbXkgZGF0YUZvcm1hdCAqLworICAgIHsgMCwg
MCwgMCwgMCB9LCAgICAgICAgICAgICAgICAgLyogZHVtbXkgZm9ybWF0VmVyc2lvbiAqLworICAg
IHsgMCwgMCwgMCwgMCB9ICAgICAgICAgICAgICAgICAgLyogZHVtbXkgZGF0YVZlcnNpb24gKi8K
K307CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfY3JlYXRlRHVtbXkoY29uc3QgY2hh
ciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLCBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKSB7CisgICAgaWYoVV9TVUNDRVNTKCpwRXJyb3JDb2RlKSkgeworICAgICAgICB1
ZGF0YV9maW5pc2godWRhdGFfY3JlYXRlKGRpciwgdHlwZSwgbmFtZSwgJmR1bW15RGF0YUluZm8s
IE5VTEwsIHBFcnJvckNvZGUpLCBwRXJyb3JDb2RlKTsKKyAgICAgICAgaWYoVV9GQUlMVVJFKCpw
RXJyb3JDb2RlKSkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJvciAlcyB3cml0
aW5nIGR1bW15IGRhdGEgZmlsZSAlcyIgVV9GSUxFX1NFUF9TVFJJTkcgIiVzLiVzXG4iLAorICAg
ICAgICAgICAgICAgICAgICB1X2Vycm9yTmFtZSgqcEVycm9yQ29kZSksIGRpciwgbmFtZSwgdHlw
ZSk7CisgICAgICAgICAgICBleGl0KCpwRXJyb3JDb2RlKTsKKyAgICAgICAgfQorICAgIH0KK30K
KworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZTgoVU5ld0RhdGFNZW1vcnkgKnBE
YXRhLCB1aW50OF90IGJ5dGUpIHsKKyAgICBpZihwRGF0YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9
TlVMTCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsICZieXRlLCAx
KTsKKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGUxNihVTmV3
RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQxNl90IHdvcmQpIHsKKyAgICBpZihwRGF0YSE9TlVMTCAm
JiBwRGF0YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEt
PmZpbGUsICZ3b3JkLCAyKTsKKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRh
dGFfd3JpdGUzMihVTmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQzMl90IHd5ZGUpIHsKKyAgICBp
ZihwRGF0YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICBUX0ZpbGVTdHJl
YW1fd3JpdGUocERhdGEtPmZpbGUsICZ3eWRlLCA0KTsKKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lk
IFVfRVhQT1JUMgordWRhdGFfd3JpdGVCbG9jayhVTmV3RGF0YU1lbW9yeSAqcERhdGEsIGNvbnN0
IHZvaWQgKnMsIGludDMyX3QgbGVuZ3RoKSB7CisgICAgaWYocERhdGEhPU5VTEwgJiYgcERhdGEt
PmZpbGUhPU5VTEwpIHsKKyAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAgICAgIFRfRmls
ZVN0cmVhbV93cml0ZShwRGF0YS0+ZmlsZSwgcywgbGVuZ3RoKTsKKyAgICAgICAgfQorICAgIH0K
K30KKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZVBhZGRpbmcoVU5ld0RhdGFN
ZW1vcnkgKnBEYXRhLCBpbnQzMl90IGxlbmd0aCkgeworICAgIHN0YXRpYyBjb25zdCB1aW50OF90
IHBhZGRpbmdbMTZdPXsKKyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwKKyAgICAgICAg
MHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwKKyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYSwK
KyAgICAgICAgMHhhYSwgMHhhYSwgMHhhYSwgMHhhYQorICAgIH07CisgICAgaWYocERhdGEhPU5V
TEwgJiYgcERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgd2hpbGUobGVuZ3RoPj0xNikgewor
ICAgICAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBwYWRkaW5nLCAxNik7
CisgICAgICAgICAgICBsZW5ndGgtPTE2OworICAgICAgICB9CisgICAgICAgIGlmKGxlbmd0aD4w
KSB7CisgICAgICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsIHBhZGRpbmcs
IGxlbmd0aCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgor
dWRhdGFfd3JpdGVTdHJpbmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBjb25zdCBjaGFyICpzLCBp
bnQzMl90IGxlbmd0aCkgeworICAgIGlmKHBEYXRhIT1OVUxMICYmIHBEYXRhLT5maWxlIT1OVUxM
KSB7CisgICAgICAgIGlmKGxlbmd0aD09LTEpIHsKKyAgICAgICAgICAgIGxlbmd0aD0oaW50MzJf
dCl1cHJ2X3N0cmxlbihzKTsKKyAgICAgICAgfQorICAgICAgICBpZihsZW5ndGg+MCkgeworICAg
ICAgICAgICAgVF9GaWxlU3RyZWFtX3dyaXRlKHBEYXRhLT5maWxlLCBzLCBsZW5ndGgpOworICAg
ICAgICB9CisgICAgfQorfQorCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlVVN0
cmluZyhVTmV3RGF0YU1lbW9yeSAqcERhdGEsIGNvbnN0IFVDaGFyICpzLCBpbnQzMl90IGxlbmd0
aCkgeworICAgIGlmKHBEYXRhIT1OVUxMICYmIHBEYXRhLT5maWxlIT1OVUxMKSB7CisgICAgICAg
IGlmKGxlbmd0aD09LTEpIHsKKyAgICAgICAgICAgIGxlbmd0aD11X3N0cmxlbihzKTsKKyAgICAg
ICAgfQorICAgICAgICBpZihsZW5ndGg+MCkgeworICAgICAgICAgICAgVF9GaWxlU3RyZWFtX3dy
aXRlKHBEYXRhLT5maWxlLCBzLCBsZW5ndGgqc2l6ZW9mKFVDaGFyKSk7CisgICAgICAgIH0KKyAg
ICB9Cit9CisKKy8qCisgKiBIZXksIEVtYWNzLCBwbGVhc2Ugc2V0IHRoZSBmb2xsb3dpbmc6Cisg
KgorICogTG9jYWwgVmFyaWFibGVzOgorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6
CisgKgorICovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9nZW5icmsvdW5ld2RhdGEuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9n
ZW5icmsvdW5ld2RhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjViOGU5Zjc0OTg0NzQyN2QxMGFiY2ViZTJi
NDNhZWI4NzAzZjc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL2dlbmJyay91bmV3ZGF0YS5oCkBAIC0wLDAgKzEsMTExIEBACisvKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDEwLCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBu
YW1lOiAgdW5ld2RhdGEuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6
ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDE5
OTlvY3QyNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisjaWZuZGVm
IF9fVU5FV0RBVEFfSF9fCisjZGVmaW5lIF9fVU5FV0RBVEFfSF9fCisKKyNpbmNsdWRlICJ1bmlj
b2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKworLyogQVBJIGZvciB3
cml0aW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0qLworCisvKiogQG1lbW8gRm9yd2FyZCBkZWNsYXJhdGlvbiBvZiB0aGUgZGF0YSBt
ZW1vcnkgY3JlYXRpb24gdHlwZS4gKi8KK3R5cGVkZWYgc3RydWN0IFVOZXdEYXRhTWVtb3J5IFVO
ZXdEYXRhTWVtb3J5OworCisvKioKKyAqIENyZWF0ZSBhIG5ldyBiaW5hcnkgZGF0YSBmaWxlLgor
ICogVGhlIGZpbGUtd3JpdGluZyA8Y29kZT51ZGF0YV88L2NvZGU+IGZ1bmN0aW9ucyBmYWNpbGl0
YXRlIHdyaXRpbmcKKyAqIGJpbmFyeSBkYXRhIGZpbGVzIHRoYXQgY2FuIGJlIHJlYWQgYnkgSUNV
J3MgPGNvZGU+dWRhdGE8L2NvZGU+IEFQSS4KKyAqIFRoaXMgZnVuY3Rpb24gb3BlbnMgYSBuZXcg
ZmlsZSB3aXRoIGEgZmlsZW5hbWUgZGV0ZXJtaW5lZCBmcm9tIGl0cworICogcGFyYW1ldGVycyAt
IG9mIHRoZSBmb3JtICJuYW1lLnR5cGUiLgorICogSXQgdGhlbiB3cml0ZXMgYSBzaG9ydCBoZWFk
ZXIsIGZvbGxvd2VkIGJ5IHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+CisgKiBzdHJ1Y3R1cmUg
YW5kLCBvcHRpb25hbGx5LCBieSB0aGUgY29tbWVudCBzdHJpbmcuCisgKiBJdCB0aGVuIHdyaXRl
cyBwYWRkaW5nIGJ5dGVzIHRvIHJvdW5kIHVwIHRvIGEgbXVsdGlwbGUgb2YgMTYgYnl0ZXMuCisg
KiBTdWJzZXF1ZW50IHdyaXRlIG9wZXJhdGlvbnMgd2lsbCB0aHVzIHN0YXJ0IGF0IGFuIG9mZnNl
dCBpbiB0aGUgZmlsZQorICogdGhhdCBpcyBhIG11bHRpcGxlIG9mIDE2LiA8Y29kZT51ZGF0YV9n
ZXRNZW1vcnkoKTwvY29kZT4gd2lsbCByZXR1cm4KKyAqIGEgcG9pbnRlciB0byB0aGlzIHNhbWUg
c3RhcnRpbmcgb2Zmc2V0LgorICoKKyAqIFNlZSB1ZGF0YS5oIC4KKyAqCisgKiBAcGFyYW0gZGly
IEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIGRhdGEgd2ls
bCBiZQorICogICAgICAgICAgICB3cml0dGVuLiBJZiA8Y29kZT5OVUxMPC9jb2RlPiwgdGhlbgor
ICogICAgICAgICAgICA8Y29kZT51X2dldERhdGFEaXJlY3Rvcnk8L2NvZGU+IGlzIHVzZWQuCisg
KiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRv
IGJlIHdyaXR0ZW4uCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVzb3VyY2UgYnVuZGxl
cyBhcmUgd3JpdHRlbiB3aXRoIHR5cGUgInJlcyIsCisgKiAgICAgICAgICAgICBjb252ZXJzaW9u
IHRhYmxlcyB3aXRoIHR5cGUgImNudiIuCisgKiAgICAgICAgICAgICBUaGlzIG1heSBiZSA8Y29k
ZT5OVUxMPC9jb2RlPiBvciBlbXB0eS4KKyAqIEBwYXJhbSBuYW1lIEEgc3RyaW5nIHRoYXQgc3Bl
Y2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBkYXRhLgorICogQHBhcmFtIHBJbmZvIEEgcG9pbnRlciB0
byBhIGNvcnJlY3RseSBmaWxsZWQgPGNvZGU+VURhdGFJbmZvPC9jb2RlPgorICogICAgICAgICAg
ICAgIHN0cnVjdHVyZSB0aGF0IHdpbGwgYmUgY29waWVkIGludG8gdGhlIGZpbGUuCisgKiBAcGFy
YW0gY29tbWVudCBBIHN0cmluZyAoZS5nLiwgYSBjb3B5cmlnaHQgc3RhdGVtZW50KSB0aGF0IHdp
bGwgYmUKKyAqICAgICAgICAgICAgICAgIGNvcGllZCBpbnRvIHRoZSBmaWxlIGlmIGl0IGlzIG5v
dCA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAgICAgICAgICAgb3IgZW1wdHkuIFRoaXMgc3Ry
aW5nIHNlcnZlcyBvbmx5IGFzIGEgY29tbWVudCBpbiB0aGUgYmluYXJ5CisgKiAgICAgICAgICAg
ICAgICBmaWxlLiBJdCB3aWxsIG5vdCBiZSBhY2Nlc3NpYmxlIGJ5IGFueSBBUEkuCisgKiBAcGFy
YW0gcEVycm9yQ29kZSBBbiBJQ1UgVUVycm9yQ29kZSBwYXJhbWV0ZXIuIEl0IG11c3Qgbm90IGJl
IDxjb2RlPk5VTEw8L2NvZGU+LgorICovCitVX0NBUEkgVU5ld0RhdGFNZW1vcnkgKiBVX0VYUE9S
VDIKK3VkYXRhX2NyZWF0ZShjb25zdCBjaGFyICpkaXIsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0
IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgY29uc3QgVURhdGFJbmZvICpwSW5mbywKKyAgICAg
ICAgICAgICBjb25zdCBjaGFyICpjb21tZW50LAorICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBF
cnJvckNvZGUpOworCisvKiogQG1lbW8gQ2xvc2UgYSBuZXdseSB3cml0dGVuIGJpbmFyeSBmaWxl
LiAqLworVV9DQVBJIHVpbnQzMl90IFVfRVhQT1JUMgordWRhdGFfZmluaXNoKFVOZXdEYXRhTWVt
b3J5ICpwRGF0YSwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBh
IGR1bW15IGRhdGEgZmlsZS4gKi8KK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfY3JlYXRl
RHVtbXkoY29uc3QgY2hhciAqZGlyLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1l
LCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqIEBtZW1vIFdyaXRlIGFuIDgtYml0IGJ5
dGUgdG8gdGhlIGZpbGUuICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlOChV
TmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQ4X3QgYnl0ZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBh
IDE2LWJpdCB3b3JkIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0
YV93cml0ZTE2KFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgdWludDE2X3Qgd29yZCk7CisKKy8qKiBA
bWVtbyBXcml0ZSBhIDMyLWJpdCB3b3JkIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9F
WFBPUlQyCit1ZGF0YV93cml0ZTMyKFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgdWludDMyX3Qgd3lk
ZSk7CisKKy8qKiBAbWVtbyBXcml0ZSBhIGJsb2NrIG9mIGJ5dGVzIHRvIHRoZSBmaWxlLiAqLwor
VV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZUJsb2NrKFVOZXdEYXRhTWVtb3J5ICpw
RGF0YSwgY29uc3Qgdm9pZCAqcywgaW50MzJfdCBsZW5ndGgpOworCisvKiogQG1lbW8gV3JpdGUg
YSBibG9jayBvZiBhcmJpdHJhcnkgcGFkZGluZyBieXRlcyB0byB0aGUgZmlsZS4gKi8KK1VfQ0FQ
SSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGVQYWRkaW5nKFVOZXdEYXRhTWVtb3J5ICpwRGF0
YSwgaW50MzJfdCBsZW5ndGgpOworCisvKiogQG1lbW8gV3JpdGUgYSA8Y29kZT5jaGFyKjwvY29k
ZT4gc3RyaW5nIG9mIHBsYXRmb3JtICJpbnZhcmlhbnQgY2hhcmFjdGVycyIgdG8gdGhlIGZpbGUu
ICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlU3RyaW5nKFVOZXdEYXRhTWVt
b3J5ICpwRGF0YSwgY29uc3QgY2hhciAqcywgaW50MzJfdCBsZW5ndGgpOworCisvKiogQG1lbW8g
V3JpdGUgYSA8Y29kZT5VQ2hhcio8L2NvZGU+IHN0cmluZyBvZiBVbmljb2RlIGNoYXJhY3RlciBj
b2RlIHVuaXRzIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93
cml0ZVVTdHJpbmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBjb25zdCBVQ2hhciAqcywgaW50MzJf
dCBsZW5ndGgpOworCisKKy8qCisgKiBIZXksIEVtYWNzLCBwbGVhc2Ugc2V0IHRoZSBmb2xsb3dp
bmc6CisgKgorICogTG9jYWwgVmFyaWFibGVzOgorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisg
KiBFbmQ6CisgKgorICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5jIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1ZWZjMTcwY2JkZjc1
MTNkZDU3ZWJmNzc3OWI5ODJlOTdhMjFkOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25zLmMKQEAgLTAsMCArMSwxMjIg
QEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAyMDAw
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
ICAgZmlsZSBuYW1lOiAgdW9wdGlvbnMuYworKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAg
dGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0
ZWQgb246IDIwMDBhcHIxNworKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqCisq
ICAgVGhpcyBmaWxlIHByb3ZpZGVzIGEgY29tbWFuZCBsaW5lIGFyZ3VtZW50IHBhcnNlci4KKyov
CisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgImNzdHJpbmcuaCIKKyNp
bmNsdWRlICJ1b3B0aW9ucy5oIgorCitVX0NBUEkgaW50IFVfRVhQT1JUMgordV9wYXJzZUFyZ3Mo
aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSwKKyAgICAgICAgICAgIGludCBvcHRpb25Db3VudCwgVU9w
dGlvbiBvcHRpb25zW10pIHsKKyAgICBjaGFyICphcmc7CisgICAgaW50IGk9MSwgcmVtYWluaW5n
PTE7CisgICAgY2hhciBjLCBzdG9wT3B0aW9ucz0wOworCisgICAgd2hpbGUoaTxhcmdjKSB7Cisg
ICAgICAgIGFyZz1hcmd2W2ldOworICAgICAgICBpZighc3RvcE9wdGlvbnMgJiYgKmFyZz09Jy0n
ICYmIChjPWFyZ1sxXSkhPTApIHsKKyAgICAgICAgICAgIC8qIHByb2Nlc3MgYW4gb3B0aW9uICov
CisgICAgICAgICAgICBVT3B0aW9uICpvcHRpb249TlVMTDsKKyAgICAgICAgICAgIGFyZys9MjsK
KyAgICAgICAgICAgIGlmKGM9PSctJykgeworICAgICAgICAgICAgICAgIC8qIHByb2Nlc3MgYSBs
b25nIG9wdGlvbiAqLworICAgICAgICAgICAgICAgIGlmKCphcmc9PTApIHsKKyAgICAgICAgICAg
ICAgICAgICAgLyogc3RvcCBwcm9jZXNzaW5nIG9wdGlvbnMgYWZ0ZXIgIi0tIiAqLworICAgICAg
ICAgICAgICAgICAgICBzdG9wT3B0aW9ucz0xOworICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgIC8qIHNlYXJjaCBmb3IgdGhlIG9wdGlvbiBzdHJpbmcgKi8KKyAg
ICAgICAgICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8
b3B0aW9uQ291bnQ7ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYob3B0aW9uc1tq
XS5sb25nTmFtZSAmJiB1cHJ2X3N0cmNtcChhcmcsIG9wdGlvbnNbal0ubG9uZ05hbWUpPT0wKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uPW9wdGlvbnMrajsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZihvcHRpb249PU5VTEwp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vIG9wdGlvbiBtYXRjaGVzICovCisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gLWk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgb3B0aW9uLT5kb2VzT2NjdXI9MTsKKworICAgICAgICAgICAgICAg
ICAgICBpZihvcHRpb24tPmhhc0FyZyE9VU9QVF9OT19BUkcpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIC8qIHBhcnNlIHRoZSBhcmd1bWVudCBmb3IgdGhlIG9wdGlvbiwgaWYgYW55ICovCisg
ICAgICAgICAgICAgICAgICAgICAgICBpZihpKzE8YXJnYyAmJiAhKGFyZ3ZbaSsxXVswXT09Jy0n
ICYmIGFyZ3ZbaSsxXVsxXSE9MCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBh
cmd1bWVudCBpbiB0aGUgbmV4dCBhcmd2W10sIGFuZCB0aGVyZSBpcyBub3QgYW4gb3B0aW9uIGlu
IHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLT52YWx1ZT1hcmd2
WysraV07CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYob3B0aW9uLT5oYXNBcmc9
PVVPUFRfUkVRVUlSRVNfQVJHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhl
cmUgaXMgbm8gYXJndW1lbnQsIGJ1dCBvbmUgaXMgcmVxdWlyZWQ6IHJldHVybiB3aXRoIGVycm9y
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1pOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBwcm9jZXNzIG9uZSBvciBt
b3JlIHNob3J0IG9wdGlvbnMgKi8KKyAgICAgICAgICAgICAgICBkbyB7CisgICAgICAgICAgICAg
ICAgICAgIC8qIHNlYXJjaCBmb3IgdGhlIG9wdGlvbiBsZXR0ZXIgKi8KKyAgICAgICAgICAgICAg
ICAgICAgaW50IGo7CisgICAgICAgICAgICAgICAgICAgIGZvcihqPTA7IGo8b3B0aW9uQ291bnQ7
ICsraikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYoYz09b3B0aW9uc1tqXS5zaG9ydE5h
bWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb249b3B0aW9ucytqOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmKG9wdGlvbj09
TlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgLyogbm8gb3B0aW9uIG1hdGNoZXMgKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBvcHRpb24tPmRvZXNPY2N1cj0xOworCisgICAgICAgICAg
ICAgICAgICAgIGlmKG9wdGlvbi0+aGFzQXJnIT1VT1BUX05PX0FSRykgeworICAgICAgICAgICAg
ICAgICAgICAgICAgLyogcGFyc2UgdGhlIGFyZ3VtZW50IGZvciB0aGUgb3B0aW9uLCBpZiBhbnkg
Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmKCphcmchPTApIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiBhcmd1bWVudCBmb2xsb3dpbmcgaW4gdGhlIHNhbWUgYXJndltdICov
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLT52YWx1ZT1hcmc7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyogZG8gbm90IHByb2Nlc3MgdGhlIHJlc3Qgb2YgdGhpcyBh
cmcgYXMgb3B0aW9uIGxldHRlcnMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihpKzE8YXJnYyAmJiAhKGFyZ3Zb
aSsxXVswXT09Jy0nICYmIGFyZ3ZbaSsxXVsxXSE9MCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvKiBhcmd1bWVudCBpbiB0aGUgbmV4dCBhcmd2W10sIGFuZCB0aGVyZSBpcyBub3Qg
YW4gb3B0aW9uIGluIHRoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9u
LT52YWx1ZT1hcmd2WysraV07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhpcyBi
cmVhayBpcyByZWR1bmRhbnQgYmVjYXVzZSB3ZSBrbm93IHRoYXQgKmFyZz09MCAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIGlmKG9wdGlvbi0+aGFzQXJnPT1VT1BUX1JFUVVJUkVTX0FSRykgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIHRoZXJlIGlzIG5vIGFyZ3VtZW50LCBidXQgb25lIGlzIHJlcXVp
cmVkOiByZXR1cm4gd2l0aCBlcnJvciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAtaTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgICAgIC8qIGdldCB0aGUgbmV4dCBvcHRpb24gbGV0dGVyICov
CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbj1OVUxMOworICAgICAgICAgICAgICAgICAgICBj
PSphcmcrKzsKKyAgICAgICAgICAgICAgICB9IHdoaWxlKGMhPTApOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBpZihvcHRpb24hPTAgJiYgb3B0aW9uLT5vcHRpb25GbiE9MCAmJiBvcHRp
b24tPm9wdGlvbkZuKG9wdGlvbi0+Y29udGV4dCwgb3B0aW9uKTwwKSB7CisgICAgICAgICAgICAg
ICAgLyogdGhlIG9wdGlvbiBmdW5jdGlvbiB3YXMgY2FsbGVkIGFuZCByZXR1cm5lZCBhbiBlcnJv
ciAqLworICAgICAgICAgICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgLyogZ28gdG8gbmV4dCBhcmd2W10gKi8KKyAgICAgICAgICAgICsraTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIC8qIG1vdmUgYSBub24tb3B0aW9uIHVwIGluIGFyZ3ZbXSAq
LworICAgICAgICAgICAgYXJndltyZW1haW5pbmcrK109YXJnOworICAgICAgICAgICAgKytpOwor
ICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZW1haW5pbmc7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25zLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VvcHRpb25zLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDNkYjY1ZjI4MWZjMTkzNGNiODg4MzYzNjYwY2IzMzE3NTUzNGFjMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW9wdGlvbnMu
aApAQCAtMCwwICsxLDE0MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBD
b3B5cmlnaHQgKEMpIDIwMDAtMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwor
KiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVvcHRpb25zLmgKKyogICBlbmNv
ZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVu
dGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDAwYXByMTcKKyogICBjcmVhdGVkIGJ5OiBN
YXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIFRoaXMgZmlsZSBwcm92aWRlcyBhIGNvbW1hbmQgbGlu
ZSBhcmd1bWVudCBwYXJzZXIuCisqLworCisjaWZuZGVmIF9fVU9QVElPTlNfSF9fCisjZGVmaW5l
IF9fVU9QVElPTlNfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisvKiBUaGlz
IHNob3VsZCB1c3VhbGx5IGJlIGNhbGxlZCBiZWZvcmUgY2FsbGluZyB1X3BhcnNlQXJncyAqLwor
LyojaWYgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwICYmIChVX0NIQVJTRVRfRkFNSUxZID09IFVf
QVNDSUlfRkFNSUxZKSovCisgICAgLyogdHJhbnNsYXRlIGFyZ3MgZnJvbSBFQkNESUMgdG8gQVND
SUkgKi8KKy8qIyAgIGRlZmluZSBVX01BSU5fSU5JVF9BUkdTKGFyZ2MsIGFyZ3YpIF9fYXJndnRv
YXNjaWlfYShhcmdjLCBhcmd2KSovCisvKiNlbGlmIGRlZmluZWQoWFBfTUFDX0NPTlNPTEUpKi8K
KyNpZiBkZWZpbmVkKFhQX01BQ19DT05TT0xFKQorIyAgIGluY2x1ZGUgPGNvbnNvbGUuaD4KKyAg
ICAvKiBHZXQgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBHVUksIHNpbmNlIG9sZCBNYWNzIGRvbid0
IGhhdmUgYSBjb25zb2xlIFdpbmRvdy4gKi8KKyMgICBkZWZpbmUgVV9NQUlOX0lOSVRfQVJHUyhh
cmdjLCBhcmd2KSBhcmdjID0gY2NvbW1hbmQoKGNoYXIqKiopJmFyZ3YpCisjZWxzZQorICAgIC8q
IE5vcm1hbGx5IHdlIGRvIG5vdGhpbmcuICovCisjICAgZGVmaW5lIFVfTUFJTl9JTklUX0FSR1Mo
YXJnYywgYXJndikKKyNlbmRpZgorCisKKworLyogZm9yd2FyZCBkZWNsYXJhdGlvbnMgZm9yIHRo
ZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiAqLworc3RydWN0IFVPcHRpb247Cit0eXBlZGVmIHN0cnVj
dCBVT3B0aW9uIFVPcHRpb247CisKKy8qIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBmb3IgYSBjb21t
YW5kIGxpbmUgb3B0aW9uICovCit0eXBlZGVmIGludCBVT3B0aW9uRm4odm9pZCAqY29udGV4dCwg
VU9wdGlvbiAqb3B0aW9uKTsKKworLyogdmFsdWVzIG9mIFVPcHRpb24uaGFzQXJnICovCitlbnVt
IHsgVU9QVF9OT19BUkcsIFVPUFRfUkVRVUlSRVNfQVJHLCBVT1BUX09QVElPTkFMX0FSRyB9Owor
CisvKiBzdHJ1Y3R1cmUgZGVzY3JpYmluZyBhIGNvbW1hbmQgbGluZSBvcHRpb24gKi8KK3N0cnVj
dCBVT3B0aW9uIHsKKyAgICBjb25zdCBjaGFyICpsb25nTmFtZTsgICAvKiAiZm9vIiBmb3IgLS1m
b28gKi8KKyAgICBjb25zdCBjaGFyICp2YWx1ZTsgICAgICAvKiBvdXRwdXQgcGxhY2Vob2xkZXIs
IHdpbGwgcG9pbnQgdG8gdGhlIGFyZ3VtZW50IHN0cmluZywgaWYgYW55ICovCisgICAgVU9wdGlv
bkZuICpvcHRpb25GbjsgICAgLyogZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhpcyBvcHRp
b24gb2NjdXJzICovCisgICAgdm9pZCAqY29udGV4dDsgICAgICAgICAgLyogcGFyYW1ldGVyIGZv
ciB0aGUgZnVuY3Rpb24gKi8KKyAgICBjaGFyIHNob3J0TmFtZTsgICAgICAgICAvKiAnZicgZm9y
IC1mICovCisgICAgY2hhciBoYXNBcmc7ICAgICAgICAgICAgLyogZW51bSB2YWx1ZTogb3B0aW9u
IHRha2VzIG5vL3JlcXVpcmVzL21heSBoYXZlIGFyZ3VtZW50ICovCisgICAgY2hhciBkb2VzT2Nj
dXI7ICAgICAgICAgLyogYm9vbGVhbiBmb3IgInRoaXMgb25lIG9jY3VyZWQiICovCit9OworCisv
KiBtYWNybyBmb3IgYW4gZW50cnkgaW4gYSBkZWNsYXJhdGlvbiBvZiBVT3B0aW9uW10gKi8KKyNk
ZWZpbmUgVU9QVElPTl9ERUYobG9uZ05hbWUsIHNob3J0TmFtZSwgaGFzQXJnKSBcCisgICAgeyBs
b25nTmFtZSwgTlVMTCwgTlVMTCwgTlVMTCwgc2hvcnROYW1lLCBoYXNBcmcsIDAgfQorCisvKiBJ
Q1UgVG9vbHMgb3B0aW9uIGRlZmluaXRpb25zICovCisjZGVmaW5lIFVPUFRJT05fSEVMUF9IICAg
ICAgICAgICAgICBVT1BUSU9OX0RFRigiaGVscCIsICdoJywgVU9QVF9OT19BUkcpCisjZGVmaW5l
IFVPUFRJT05fSEVMUF9RVUVTVElPTl9NQVJLICBVT1BUSU9OX0RFRigiaGVscCIsICc/JywgVU9Q
VF9OT19BUkcpCisjZGVmaW5lIFVPUFRJT05fVkVSQk9TRSAgICAgICAgICAgICBVT1BUSU9OX0RF
RigidmVyYm9zZSIsICd2JywgVU9QVF9OT19BUkcpCisjZGVmaW5lIFVPUFRJT05fUVVJRVQgICAg
ICAgICAgICAgICBVT1BUSU9OX0RFRigicXVpZXQiLCAncScsIFVPUFRfTk9fQVJHKQorI2RlZmlu
ZSBVT1BUSU9OX1ZFUlNJT04gICAgICAgICAgICAgVU9QVElPTl9ERUYoInZlcnNpb24iLCAnVics
IFVPUFRfTk9fQVJHKQorI2RlZmluZSBVT1BUSU9OX0NPUFlSSUdIVCAgICAgICAgICAgVU9QVElP
Tl9ERUYoImNvcHlyaWdodCIsICdjJywgVU9QVF9OT19BUkcpCisKKyNkZWZpbmUgVU9QVElPTl9E
RVNURElSICAgICAgICAgICAgIFVPUFRJT05fREVGKCJkZXN0ZGlyIiwgJ2QnLCBVT1BUX1JFUVVJ
UkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9TT1VSQ0VESVIgICAgICAgICAgIFVPUFRJT05fREVG
KCJzb3VyY2VkaXIiLCAncycsIFVPUFRfUkVRVUlSRVNfQVJHKQorI2RlZmluZSBVT1BUSU9OX0VO
Q09ESU5HICAgICAgICAgICAgVU9QVElPTl9ERUYoImVuY29kaW5nIiwgJ2UnLCBVT1BUX1JFUVVJ
UkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9JQ1VEQVRBRElSICAgICAgICAgIFVPUFRJT05fREVG
KCJpY3VkYXRhZGlyIiwgJ2knLCBVT1BUX1JFUVVJUkVTX0FSRykKKyNkZWZpbmUgVU9QVElPTl9X
UklURV9KQVZBICAgICAgICAgIFVPUFRJT05fREVGKCJ3cml0ZS1qYXZhIiwgJ2onLCBVT1BUX09Q
VElPTkFMX0FSRykKKyNkZWZpbmUgVU9QVElPTl9QQUNLQUdFX05BTUUgICAgICAgIFVPUFRJT05f
REVGKCJwYWNrYWdlLW5hbWUiLCAncCcsIFVPUFRfUkVRVUlSRVNfQVJHKQorI2RlZmluZSBVT1BU
SU9OX0JVTkRMRV9OQU1FICAgICAgICAgVU9QVElPTl9ERUYoImJ1bmRsZS1uYW1lIiwgJ2InLCBV
T1BUX1JFUVVJUkVTX0FSRykKKworLyoqCisgKiBDIENvbW1hbmQgbGluZSBhcmd1bWVudCBwYXJz
ZXIuCisgKgorICogVGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgYXJndlthcmdjXSBjb21tYW5kIGxp
bmUgYW5kIGEgZGVzY3JpcHRpb24gb2YKKyAqIHRoZSBwcm9ncmFtJ3Mgb3B0aW9ucyBpbiBmb3Jt
IG9mIGFuIGFycmF5IG9mIFVPcHRpb24gc3RydWN0dXJlcy4KKyAqIEVhY2ggVU9wdGlvbiBkZWZp
bmVzIGEgbG9uZyBhbmQgYSBzaG9ydCBuYW1lIChhIHN0cmluZyBhbmQgYSBjaGFyYWN0ZXIpCisg
KiBmb3Igb3B0aW9ucyBsaWtlICItLWZvbyIgYW5kICItZiIuCisgKgorICogRWFjaCBvcHRpb24g
aXMgbWFya2VkIHdpdGggd2hldGhlciBpdCBkb2VzIG5vdCB0YWtlIGFuIGFyZ3VtZW50LAorICog
cmVxdWlyZXMgb25lLCBvciBvcHRpb25hbGx5IHRha2VzIG9uZS4gVGhlIGFyZ3VtZW50IG1heSBm
b2xsb3cgaW4KKyAqIHRoZSBzYW1lIGFyZ3ZbXSBlbnRyeSBmb3Igc2hvcnQgb3B0aW9ucywgb3Ig
aXQgbWF5IGFsd2F5cyBmb2xsb3cKKyAqIGluIHRoZSBuZXh0IGFyZ3ZbXSBlbnRyeS4KKyAqCisg
KiBBbiBhcmd1bWVudCBpcyBpbiB0aGUgbmV4dCBhcmd2W10gZW50cnkgZm9yIGJvdGggbG9uZyBh
bmQgc2hvcnQgbmFtZQorICogb3B0aW9ucywgZXhjZXB0IGl0IGlzIHRha2VuIGZyb20gZGlyZWN0
bHkgYmVoaW5kIHRoZSBzaG9ydCBuYW1lIGluCisgKiBpdHMgb3duIGFyZ3ZbXSBlbnRyeSBpZiB0
aGVyZSBhcmUgY2hhcmFjdGVycyBmb2xsb3dpbmcgdGhlIG9wdGlvbiBsZXR0ZXIuCisgKiBBbiBh
cmd1bWVudCBpbiBpdHMgb3duIGFyZ3ZbXSBlbnRyeSBtdXN0IG5vdCBiZWdpbiB3aXRoIGEgJy0n
CisgKiB1bmxlc3MgaXQgaXMgb25seSB0aGUgJy0nIGl0c2VsZi4gVGhlcmUgaXMgbm8gcmVzdHJp
Y3Rpb24gb2YgdGhlCisgKiBhcmd1bWVudCBmb3JtYXQgaWYgaXQgaXMgcGFydCBvZiB0aGUgc2hv
cnQgbmFtZSBvcHRpb25zJ3MgYXJndltdIGVudHJ5LgorICoKKyAqIFRoZSBhcmd1bWVudCBpcyBz
dG9yZWQgaW4gdGhlIHZhbHVlIGZpZWxkIG9mIHRoZSBjb3JyZXNwb25kaW5nCisgKiBVT3B0aW9u
IGVudHJ5LCBhbmQgdGhlIGRvZXNPY2N1ciBmaWVsZCBpcyBzZXQgdG8gMSBpZiB0aGUgb3B0aW9u
CisgKiBpcyBmb3VuZCBhdCBhbGwuCisgKgorICogU2hvcnQgbmFtZSBvcHRpb25zIHdpdGhvdXQg
YXJndW1lbnRzIGNhbiBiZSBjb2xsYXBzZWQgaW50byBhIHNpbmdsZQorICogYXJndltdIGVudHJ5
LiBBZnRlciBhbiBvcHRpb24gbGV0dGVyIHRha2VzIGFuIGFyZ3VtZW50LCBmb2xsb3dpbmcKKyAq
IGxldHRlcnMgd2lsbCBiZSB0YWtlbiBhcyBpdHMgYXJndW1lbnQuCisgKgorICogSWYgdGhlIHNh
bWUgb3B0aW9uIGlzIGZvdW5kIHNldmVyYWwgdGltZXMsIHRoZW4gdGhlIGxhc3QKKyAqIGFyZ3Vt
ZW50IHZhbHVlIHdpbGwgYmUgc3RvcmVkIGluIHRoZSB2YWx1ZSBmaWVsZC4KKyAqCisgKiBGb3Ig
ZWFjaCBvcHRpb24sIGEgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZC4gVGhpcyBjb3VsZCBiZSB1c2Vk
CisgKiBmb3Igb3B0aW9ucyB0aGF0IG9jY3VyIG11bHRpcGxlIHRpbWVzIGFuZCBhbGwgYXJndW1l
bnRzIGFyZSB0bworICogYmUgY29sbGVjdGVkLgorICoKKyAqIEFsbCBvcHRpb25zIGFyZSByZW1v
dmVkIGZyb20gdGhlIGFyZ3ZbXSBhcnJheSBpdHNlbGYuIElmIHRoZSBwYXJzZXIKKyAqIGlzIHN1
Y2Nlc3NmdWwsIHRoZW4gaXQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlbWFpbmluZyBub24tb3B0
aW9uCisgKiBzdHJpbmdzIChpbmNsdWRpbmcgYXJndlswXSkuCisgKiBhcmd2WzBdLCB0aGUgcHJv
Z3JhbSBuYW1lLCBpcyBuZXZlciByZWFkIG9yIG1vZGlmaWVkLgorICoKKyAqIEFuIG9wdGlvbiAi
LS0iIGVuZHMgb3B0aW9uIHByb2Nlc3Npbmc7IGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhpcworICogcmVt
YWlucyBpbiB0aGUgYXJndltdIGFycmF5LgorICoKKyAqIEFuIG9wdGlvbiBzdHJpbmcgIi0iIGFs
b25lIGlzIHRyZWF0ZWQgYXMgYSBub24tb3B0aW9uLgorICoKKyAqIElmIGFuIG9wdGlvbiBpcyBu
b3QgcmVjb2duaXplZCBvciBhbiBhcmd1bWVudCBtaXNzaW5nLCB0aGVuCisgKiB0aGUgcGFyc2Vy
IHJldHVybnMgd2l0aCB0aGUgbmVnYXRpdmUgaW5kZXggb2YgdGhlIGFyZ3ZbXSBlbnRyeQorICog
d2hlcmUgdGhlIGVycm9yIHdhcyBkZXRlY3RlZC4KKyAqCisgKiBUaGUgT1MvNDAwIGNvbXBpbGVy
IHJlcXVpcmVzIHRoYXQgYXJndiBlaXRoZXIgYmUgImNoYXIqIGFyZ3ZbXSIsCisgKiBvciAiY29u
c3QgY2hhciogY29uc3QgYXJndltdIiwgYW5kIGl0IHdpbGwgbm90IGFjY2VwdCwgCisgKiAiY29u
c3QgY2hhciogYXJndltdIiBhcyBhIGRlZmluaXRpb24gZm9yIG1haW4oKS4KKyAqCisgKiBAcGFy
YW0gYXJndiBUaGlzIHBhcmFtZXRlciBpcyBtb2RpZmllZAorICogQHBhcmFtIG9wdGlvbnMgVGhp
cyBwYXJhbWV0ZXIgaXMgbW9kaWZpZWQKKyAqLworVV9DQVBJIGludCBVX0VYUE9SVDIKK3VfcGFy
c2VBcmdzKGludCBhcmdjLCBjaGFyKiBhcmd2W10sCisgICAgICAgICAgICBpbnQgb3B0aW9uQ291
bnQsIFVPcHRpb24gb3B0aW9uc1tdKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3V0cmllLmggYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3V0cmllLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NlYzAyN2ZlMzQ1
OTVlNWI3NWUxZjI4NTBkMjA2YjYyYTk0ZWY4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdXRyaWUuaApAQCAtMCwwICsxLDc5NSBA
QAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMjAwMS0y
MDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5k
IG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyogICBmaWxlIG5hbWU6ICB1dHJpZS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0
YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRl
ZCBvbjogMjAwMW5vdjA4CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisK
KyNpZm5kZWYgX19VVFJJRV9IX18KKyNkZWZpbmUgX19VVFJJRV9IX18KKworI2luY2x1ZGUgInVu
aWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91dGYxNi5oIgorI2luY2x1ZGUgInVk
YXRhc3dwLmgiCisKK1VfQ0RFQ0xfQkVHSU4KKworLyoqCisgKiBcZmlsZQorICoKKyAqIFRoaXMg
aXMgYSBjb21tb24gaW1wbGVtZW50YXRpb24gb2YgYSAiZm9sZGVkIiB0cmllLgorICogSXQgaXMg
YSBraW5kIG9mIGNvbXByZXNzZWQsIHNlcmlhbGl6YWJsZSB0YWJsZSBvZiAxNi0gb3IgMzItYml0
IHZhbHVlcyBhc3NvY2lhdGVkIHdpdGgKKyAqIFVuaWNvZGUgY29kZSBwb2ludHMgKDAuLjB4MTBm
ZmZmKS4KKyAqCisgKiBUaGlzIGltcGxlbWVudGF0aW9uIGlzIG9wdGltaXplZCBmb3IgZ2V0dGlu
ZyB2YWx1ZXMgd2hpbGUgd2Fsa2luZyBmb3J3YXJkCisgKiB0aHJvdWdoIGEgVVRGLTE2IHN0cmlu
Zy4KKyAqIFRoZXJlZm9yZSwgdGhlIHNpbXBsZXN0IGFuZCBmYXN0ZXN0IGFjY2VzcyBtYWNyb3Mg
YXJlIHRoZQorICogX0ZST01fTEVBRCgpIGFuZCBfRlJPTV9PRkZTRVRfVFJBSUwoKSBtYWNyb3Mu
CisgKgorICogVGhlIF9GUk9NX0JNUCgpIG1hY3JvcyBhcmUgYSBsaXR0bGUgbW9yZSBjb21wbGlj
YXRlZDsgdGhleSBnZXQgdmFsdWVzCisgKiBldmVuIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF9w
b2ludHNfLCB3aGlsZSB0aGUgX0ZST01fTEVBRCgpIG1hY3JvcworICogZ2V0IHNwZWNpYWwgImZv
bGRlZCIgdmFsdWVzIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gaWYKKyAqIHRoZXJl
IGlzIHJlbGV2YW50IGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZW0uCisgKiBGcm9tIHN1Y2ggYSBm
b2xkZWQgdmFsdWUsIGFuIG9mZnNldCBuZWVkcyB0byBiZSBleHRyYWN0ZWQgdG8gc3VwcGx5Cisg
KiB0byB0aGUgX0ZST01fT0ZGU0VUX1RSQUlMKCkgbWFjcm9zLgorICoKKyAqIE1vc3Qgb2YgdGhl
IG1vcmUgY29tcGxleCAoYW5kIG1vcmUgY29udmVuaWVudCkgZnVuY3Rpb25zL21hY3JvcyBjYWxs
IGEgY2FsbGJhY2sgZnVuY3Rpb24KKyAqIHRvIGdldCB0aGF0IG9mZnNldCBmcm9tIHRoZSBmb2xk
ZWQgdmFsdWUgZm9yIGEgbGVhZCBzdXJyb2dhdGUgdW5pdC4KKyAqLworCisvKioKKyAqIFRyaWUg
Y29uc3RhbnRzLCBkZWZpbmluZyBzaGlmdCB3aWR0aHMsIGluZGV4IGFycmF5IGxlbmd0aHMsIGV0
Yy4KKyAqLworZW51bSB7CisgICAgLyoqIFNoaWZ0IHNpemUgZm9yIHNoaWZ0aW5nIHJpZ2h0IHRo
ZSBpbnB1dCBpbmRleC4gMS4uOSAqLworICAgIFVUUklFX1NISUZUPTUsCisKKyAgICAvKiogTnVt
YmVyIG9mIGRhdGEgdmFsdWVzIGluIGEgc3RhZ2UgMiAoZGF0YSBhcnJheSkgYmxvY2suIDIsIDQs
IDgsIC4uLCAweDIwMCAqLworICAgIFVUUklFX0RBVEFfQkxPQ0tfTEVOR1RIPTE8PFVUUklFX1NI
SUZULAorCisgICAgLyoqIE1hc2sgZm9yIGdldHRpbmcgdGhlIGxvd2VyIGJpdHMgZnJvbSB0aGUg
aW5wdXQgaW5kZXguICovCisgICAgVVRSSUVfTUFTSz1VVFJJRV9EQVRBX0JMT0NLX0xFTkdUSC0x
LAorCisgICAgLyoqCisgICAgICogTGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMnIGluZGV4IGRp
c3BsYWNlbWVudCBpbiB0aGUgaW5kZXggYXJyYXkuCisgICAgICogMHgxMDAwMC0weGQ4MDA9MHgy
ODAwCisgICAgICovCisgICAgVVRSSUVfTEVBRF9JTkRFWF9ESVNQPTB4MjgwMD4+VVRSSUVfU0hJ
RlQsCisKKyAgICAvKioKKyAgICAgKiBTaGlmdCBzaXplIGZvciBzaGlmdGluZyBsZWZ0IHRoZSBp
bmRleCBhcnJheSB2YWx1ZXMuCisgICAgICogSW5jcmVhc2VzIHBvc3NpYmxlIGRhdGEgc2l6ZSB3
aXRoIDE2LWJpdCBpbmRleCB2YWx1ZXMgYXQgdGhlIGNvc3QKKyAgICAgKiBvZiBjb21wYWN0YWJp
bGl0eS4KKyAgICAgKiBUaGlzIHJlcXVpcmVzIGJsb2NrcyBvZiBzdGFnZSAyIGRhdGEgdG8gYmUg
YWxpZ25lZCBieSBVVFJJRV9EQVRBX0dSQU5VTEFSSVRZLgorICAgICAqIDAuLlVUUklFX1NISUZU
CisgICAgICovCisgICAgVVRSSUVfSU5ERVhfU0hJRlQ9MiwKKworICAgIC8qKiBUaGUgYWxpZ25t
ZW50IHNpemUgb2YgYSBzdGFnZSAyIGRhdGEgYmxvY2suIEFsc28gdGhlIGdyYW51bGFyaXR5IGZv
ciBjb21wYWN0aW9uLiAqLworICAgIFVUUklFX0RBVEFfR1JBTlVMQVJJVFk9MTw8VVRSSUVfSU5E
RVhfU0hJRlQsCisKKyAgICAvKiogTnVtYmVyIG9mIGJpdHMgb2YgYSB0cmFpbCBzdXJyb2dhdGUg
dGhhdCBhcmUgdXNlZCBpbiBpbmRleCB0YWJsZSBsb29rdXBzLiAqLworICAgIFVUUklFX1NVUlJP
R0FURV9CTE9DS19CSVRTPTEwLVVUUklFX1NISUZULAorCisgICAgLyoqCisgICAgICogTnVtYmVy
IG9mIGluZGV4IChzdGFnZSAxKSBlbnRyaWVzIHBlciBsZWFkIHN1cnJvZ2F0ZS4KKyAgICAgKiBT
YW1lIGFzIG51bWJlciBvZiBpbmRleCBlbnRyaWVzIGZvciAxMDI0IHRyYWlsIHN1cnJvZ2F0ZXMs
CisgICAgICogPT0weDQwMD4+VVRSSUVfU0hJRlQKKyAgICAgKi8KKyAgICBVVFJJRV9TVVJST0dB
VEVfQkxPQ0tfQ09VTlQ9KDE8PFVUUklFX1NVUlJPR0FURV9CTE9DS19CSVRTKSwKKworICAgIC8q
KiBMZW5ndGggb2YgdGhlIEJNUCBwb3J0aW9uIG9mIHRoZSBpbmRleCAoc3RhZ2UgMSkgYXJyYXku
ICovCisgICAgVVRSSUVfQk1QX0lOREVYX0xFTkdUSD0weDEwMDAwPj5VVFJJRV9TSElGVAorfTsK
KworLyoqCisgKiBMZW5ndGggb2YgdGhlIGluZGV4IChzdGFnZSAxKSBhcnJheSBiZWZvcmUgZm9s
ZGluZy4KKyAqIE1heGltdW0gbnVtYmVyIG9mIFVuaWNvZGUgY29kZSBwb2ludHMgKDB4MTEwMDAw
KSBzaGlmdGVkIHJpZ2h0IGJ5IFVUUklFX1NISUZULgorICovCisjZGVmaW5lIFVUUklFX01BWF9J
TkRFWF9MRU5HVEggKDB4MTEwMDAwPj5VVFJJRV9TSElGVCkKKworLyoqCisgKiBNYXhpbXVtIGxl
bmd0aCBvZiB0aGUgcnVudGltZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKyAqIExpbWl0ZWQgYnkg
MTYtYml0IGluZGV4IHZhbHVlcyB0aGF0IGFyZSBsZWZ0LXNoaWZ0ZWQgYnkgVVRSSUVfSU5ERVhf
U0hJRlQuCisgKi8KKyNkZWZpbmUgVVRSSUVfTUFYX0RBVEFfTEVOR1RIICgweDEwMDAwPDxVVFJJ
RV9JTkRFWF9TSElGVCkKKworLyoqCisgKiBNYXhpbXVtIGxlbmd0aCBvZiB0aGUgYnVpbGQtdGlt
ZSBkYXRhIChzdGFnZSAyKSBhcnJheS4KKyAqIFRoZSBtYXhpbXVtIGxlbmd0aCBpcyAweDExMDAw
MCtVVFJJRV9EQVRBX0JMT0NLX0xFTkdUSCsweDQwMC4KKyAqIChOdW1iZXIgb2YgVW5pY29kZSBj
b2RlIHBvaW50cyArIG9uZSBhbGwtaW5pdGlhbC12YWx1ZSBibG9jayArCisgKiAgcG9zc2libGUg
ZHVwbGljYXRlIGVudHJpZXMgZm9yIDEwMjQgbGVhZCBzdXJyb2dhdGVzLikKKyAqLworI2RlZmlu
ZSBVVFJJRV9NQVhfQlVJTERfVElNRV9EQVRBX0xFTkdUSCAoMHgxMTAwMDArVVRSSUVfREFUQV9C
TE9DS19MRU5HVEgrMHg0MDApCisKKy8qKgorICogTnVtYmVyIG9mIGJ5dGVzIGZvciBhIGR1bW15
IHRyaWUuCisgKiBBIGR1bW15IHRyaWUgaXMgYW4gZW1wdHkgcnVudGltZSB0cmllLCB1c2VkIHdo
ZW4gYSByZWFsIGRhdGEgdHJpZSBjYW5ub3QKKyAqIGJlIGxvYWRlZC4KKyAqIFRoZSBudW1iZXIg
b2YgYnl0ZXMgd29ya3MgZm9yIExhdGluLTEtbGluZWFyIHRyaWVzIHdpdGggMzItYml0IGRhdGEK
KyAqICh3b3JzdCBjYXNlKS4KKyAqCisgKiBDYWxjdWxhdGlvbjoKKyAqICAgQk1QIGluZGV4ICsg
MSBpbmRleCBibG9jayBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMgKworICogICBMYXRp
bi0xLWxpbmVhciBhcnJheSArIDEgZGF0YSBibG9jayBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBw
b2ludHMKKyAqCisgKiBMYXRpbi0xOiBpZihVVFJJRV9TSElGVDw9OCkgeyAyNTYgfSBlbHNlIHsg
aW5jbHVkZWQgaW4gZmlyc3QgZGF0YSBibG9jayB9CisgKgorICogQHNlZSB1dHJpZV91bnNlcmlh
bGl6ZUR1bW15CisgKi8KKyNkZWZpbmUgVVRSSUVfRFVNTVlfU0laRSAoKFVUUklFX0JNUF9JTkRF
WF9MRU5HVEgrVVRSSUVfU1VSUk9HQVRFX0JMT0NLX0NPVU5UKSoyKyhVVFJJRV9TSElGVDw9OD8y
NTY6VVRSSUVfREFUQV9CTE9DS19MRU5HVEgpKjQrVVRSSUVfREFUQV9CTE9DS19MRU5HVEgqNCkK
KworLyoqCisgKiBSdW50aW1lIFVUcmllIGNhbGxiYWNrIGZ1bmN0aW9uLgorICogRXh0cmFjdCBm
cm9tIGEgbGVhZCBzdXJyb2dhdGUncyBkYXRhIHRoZQorICogaW5kZXggYXJyYXkgb2Zmc2V0IG9m
IHRoZSBpbmRleGVzIGZvciB0aGF0IGxlYWQgc3Vycm9nYXRlLgorICoKKyAqIEBwYXJhbSBkYXRh
IGRhdGEgdmFsdWUgZm9yIGEgc3Vycm9nYXRlIGZyb20gdGhlIHRyaWUsIGluY2x1ZGluZyB0aGUg
Zm9sZGluZyBvZmZzZXQKKyAqIEByZXR1cm4gb2Zmc2V0Pj1VVFJJRV9CTVBfSU5ERVhfTEVOR1RI
LCBvciAwIGlmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZQorICovCit0
eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgorVVRyaWVHZXRGb2xkaW5nT2Zmc2V0KHVpbnQzMl90
IGRhdGEpOworCisvKioKKyAqIFJ1bi10aW1lIFRyaWUgc3RydWN0dXJlLgorICoKKyAqIEVpdGhl
ciB0aGUgZGF0YSB0YWJsZSBpcyAxNiBiaXRzIHdpZGUgYW5kIGFjY2Vzc2VkIHZpYSB0aGUgaW5k
ZXgKKyAqIHBvaW50ZXIsIHdpdGggZWFjaCBpbmRleCBpdGVtIGluY3JlYXNlZCBieSBpbmRleExl
bmd0aDsKKyAqIGluIHRoaXMgY2FzZSwgZGF0YTMyPT1OVUxMLgorICoKKyAqIE9yIHRoZSBkYXRh
IHRhYmxlIGlzIDMyIGJpdHMgd2lkZSBhbmQgYWNjZXNzZWQgdmlhIHRoZSBkYXRhMzIgcG9pbnRl
ci4KKyAqLworc3RydWN0IFVUcmllIHsKKyAgICBjb25zdCB1aW50MTZfdCAqaW5kZXg7CisgICAg
Y29uc3QgdWludDMyX3QgKmRhdGEzMjsgLyogTlVMTCBpZiAxNmIgZGF0YSBpcyB1c2VkIHZpYSBp
bmRleCAqLworCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyBub3QgdXNlZCBpbiBf
RlJPTV9MRUFELCBfRlJPTV9CTVAsIGFuZCBfRlJPTV9PRkZTRVRfVFJBSUwgbWFjcm9zLgorICAg
ICAqIElmIGNvbnZlbmllbmNlIG1hY3JvcyBsaWtlIF9HRVQxNiBvciBfTkVYVDMyIGFyZSB1c2Vk
LCB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgc2V0LgorICAgICAqCisgICAgICogdXRyaWVfdW5zZXJp
YWxpemUoKSBzZXRzIGEgZGVmYXVsdCBmdW5jdGlvbiB3aGljaCBzaW1wbHkgcmV0dXJucworICAg
ICAqIHRoZSBsZWFkIHN1cnJvZ2F0ZSdzIHZhbHVlIGl0c2VsZiAtIHdoaWNoIGlzIHRoZSBpbnZl
cnNlIG9mIHRoZSBkZWZhdWx0CisgICAgICogZm9sZGluZyBmdW5jdGlvbiB1c2VkIGJ5IHV0cmll
X3NlcmlhbGl6ZSgpLgorICAgICAqCisgICAgICogQHNlZSBVVHJpZUdldEZvbGRpbmdPZmZzZXQK
KyAgICAgKi8KKyAgICBVVHJpZUdldEZvbGRpbmdPZmZzZXQgKmdldEZvbGRpbmdPZmZzZXQ7CisK
KyAgICBpbnQzMl90IGluZGV4TGVuZ3RoLCBkYXRhTGVuZ3RoOworICAgIHVpbnQzMl90IGluaXRp
YWxWYWx1ZTsKKyAgICBVQm9vbCBpc0xhdGluMUxpbmVhcjsKK307CisKKyNpZm5kZWYgX19VVFJJ
RTJfSF9fCit0eXBlZGVmIHN0cnVjdCBVVHJpZSBVVHJpZTsKKyNlbmRpZgorCisvKiogSW50ZXJu
YWwgdHJpZSBnZXR0ZXIgZnJvbSBhbiBvZmZzZXQgKDAgaWYgYzE2IGlzIGEgQk1QL2xlYWQgdW5p
dHMpIGFuZCBhIDE2LWJpdCB1bml0ICovCisjZGVmaW5lIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGRh
dGEsIG9mZnNldCwgYzE2KSBcCisgICAgKHRyaWUpLT5kYXRhWyBcCisgICAgICAgICgoaW50MzJf
dCkoKHRyaWUpLT5pbmRleFsob2Zmc2V0KSsoKGMxNik+PlVUUklFX1NISUZUKV0pPDxVVFJJRV9J
TkRFWF9TSElGVCkrIFwKKyAgICAgICAgKChjMTYpJlVUUklFX01BU0spIFwKKyAgICBdCisKKy8q
KiBJbnRlcm5hbCB0cmllIGdldHRlciBmcm9tIGEgcGFpciBvZiBzdXJyb2dhdGVzICovCisjZGVm
aW5lIF9VVFJJRV9HRVRfRlJPTV9QQUlSKHRyaWUsIGRhdGEsIGMsIGMyLCByZXN1bHQsIHJlc3Vs
dFR5cGUpIHsgXAorICAgIGludDMyX3QgX19vZmZzZXQ7IFwKK1wKKyAgICAvKiBnZXQgZGF0YSBm
b3IgbGVhZCBzdXJyb2dhdGUgKi8gXAorICAgIChyZXN1bHQpPV9VVFJJRV9HRVRfUkFXKCh0cmll
KSwgZGF0YSwgMCwgKGMpKTsgXAorICAgIF9fb2Zmc2V0PSh0cmllKS0+Z2V0Rm9sZGluZ09mZnNl
dChyZXN1bHQpOyBcCitcCisgICAgLyogZ2V0IHRoZSByZWFsIGRhdGEgZnJvbSB0aGUgZm9sZGVk
IGxlYWQvdHJhaWwgdW5pdHMgKi8gXAorICAgIGlmKF9fb2Zmc2V0PjApIHsgXAorICAgICAgICAo
cmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEsIF9fb2Zmc2V0LCAoYzIpJjB4M2Zm
KTsgXAorICAgIH0gZWxzZSB7IFwKKyAgICAgICAgKHJlc3VsdCk9KHJlc3VsdFR5cGUpKCh0cmll
KS0+aW5pdGlhbFZhbHVlKTsgXAorICAgIH0gXAorfQorCisvKiogSW50ZXJuYWwgdHJpZSBnZXR0
ZXIgZnJvbSBhIEJNUCBjb2RlIHBvaW50LCB0cmVhdGluZyBhIGxlYWQgc3Vycm9nYXRlIGFzIGEg
bm9ybWFsIGNvZGUgcG9pbnQgKi8KKyNkZWZpbmUgX1VUUklFX0dFVF9GUk9NX0JNUCh0cmllLCBk
YXRhLCBjMTYpIFwKKyAgICBfVVRSSUVfR0VUX1JBVyh0cmllLCBkYXRhLCAweGQ4MDA8PShjMTYp
ICYmIChjMTYpPD0weGRiZmYgPyBVVFJJRV9MRUFEX0lOREVYX0RJU1AgOiAwLCBjMTYpOworCisv
KioKKyAqIEludGVybmFsIHRyaWUgZ2V0dGVyIGZyb20gYSBjb2RlIHBvaW50LgorICogQ291bGQg
YmUgZmFzdGVyKD8pIGJ1dCBsb25nZXIgd2l0aAorICogICBpZigoYzMyKTw9MHhkN2ZmKSB7IChy
ZXN1bHQpPV9VVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEsIDAsIGMzMik7IH0KKyAqLworI2RlZmlu
ZSBfVVRSSUVfR0VUKHRyaWUsIGRhdGEsIGMzMiwgcmVzdWx0LCByZXN1bHRUeXBlKSBcCisgICAg
aWYoKHVpbnQzMl90KShjMzIpPD0weGZmZmYpIHsgXAorICAgICAgICAvKiBCTVAgY29kZSBwb2lu
dHMgKi8gXAorICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX0ZST01fQk1QKHRyaWUsIGRhdGEs
IGMzMik7IFwKKyAgICB9IGVsc2UgaWYoKHVpbnQzMl90KShjMzIpPD0weDEwZmZmZikgeyBcCisg
ICAgICAgIC8qIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludCAqLyBcCisgICAgICAgIFVDaGFyIF9f
bGVhZDE2PVUxNl9MRUFEKGMzMik7IFwKKyAgICAgICAgX1VUUklFX0dFVF9GUk9NX1BBSVIodHJp
ZSwgZGF0YSwgX19sZWFkMTYsIGMzMiwgcmVzdWx0LCByZXN1bHRUeXBlKTsgXAorICAgIH0gZWxz
ZSB7IFwKKyAgICAgICAgLyogb3V0IG9mIHJhbmdlICovIFwKKyAgICAgICAgKHJlc3VsdCk9KHJl
c3VsdFR5cGUpKCh0cmllKS0+aW5pdGlhbFZhbHVlKTsgXAorICAgIH0KKworLyoqIEludGVybmFs
IG5leHQtcG9zdC1pbmNyZW1lbnQ6IGdldCB0aGUgbmV4dCBjb2RlIHBvaW50IChjLCBjMikgYW5k
IGl0cyBkYXRhICovCisjZGVmaW5lIF9VVFJJRV9ORVhUKHRyaWUsIGRhdGEsIHNyYywgbGltaXQs
IGMsIGMyLCByZXN1bHQsIHJlc3VsdFR5cGUpIHsgXAorICAgIChjKT0qKHNyYykrKzsgXAorICAg
IGlmKCFVMTZfSVNfTEVBRChjKSkgeyBcCisgICAgICAgIChjMik9MDsgXAorICAgICAgICAocmVz
dWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEsIDAsIChjKSk7IFwKKyAgICB9IGVsc2Ug
aWYoKHNyYykhPShsaW1pdCkgJiYgVTE2X0lTX1RSQUlMKChjMik9KihzcmMpKSkgeyBcCisgICAg
ICAgICsrKHNyYyk7IFwKKyAgICAgICAgX1VUUklFX0dFVF9GUk9NX1BBSVIoKHRyaWUpLCBkYXRh
LCAoYyksIChjMiksIChyZXN1bHQpLCByZXN1bHRUeXBlKTsgXAorICAgIH0gZWxzZSB7IFwKKyAg
ICAgICAgLyogdW5wYWlyZWQgbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludCAqLyBcCisgICAgICAg
IChjMik9MDsgXAorICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEs
IFVUUklFX0xFQURfSU5ERVhfRElTUCwgKGMpKTsgXAorICAgIH0gXAorfQorCisvKiogSW50ZXJu
YWwgcHJldmlvdXM6IGdldCB0aGUgcHJldmlvdXMgY29kZSBwb2ludCAoYywgYzIpIGFuZCBpdHMg
ZGF0YSAqLworI2RlZmluZSBfVVRSSUVfUFJFVklPVVModHJpZSwgZGF0YSwgc3RhcnQsIHNyYywg
YywgYzIsIHJlc3VsdCwgcmVzdWx0VHlwZSkgeyBcCisgICAgKGMpPSotLShzcmMpOyBcCisgICAg
aWYoIVUxNl9JU19TVVJST0dBVEUoYykpIHsgXAorICAgICAgICAoYzIpPTA7IFwKKyAgICAgICAg
KHJlc3VsdCk9X1VUUklFX0dFVF9SQVcoKHRyaWUpLCBkYXRhLCAwLCAoYykpOyBcCisgICAgfSBl
bHNlIGlmKCFVMTZfSVNfU1VSUk9HQVRFX0xFQUQoYykpIHsgXAorICAgICAgICAvKiB0cmFpbCBz
dXJyb2dhdGUgKi8gXAorICAgICAgICBpZigoc3RhcnQpIT0oc3JjKSAmJiBVMTZfSVNfTEVBRCgo
YzIpPSooKHNyYyktMSkpKSB7IFwKKyAgICAgICAgICAgIC0tKHNyYyk7IFwKKyAgICAgICAgICAg
IChyZXN1bHQpPShjKTsgKGMpPShjMik7IChjMik9KFVDaGFyKShyZXN1bHQpOyAvKiBzd2FwIGMs
IGMyICovIFwKKyAgICAgICAgICAgIF9VVFJJRV9HRVRfRlJPTV9QQUlSKCh0cmllKSwgZGF0YSwg
KGMpLCAoYzIpLCAocmVzdWx0KSwgcmVzdWx0VHlwZSk7IFwKKyAgICAgICAgfSBlbHNlIHsgXAor
ICAgICAgICAgICAgLyogdW5wYWlyZWQgdHJhaWwgc3Vycm9nYXRlIGNvZGUgcG9pbnQgKi8gXAor
ICAgICAgICAgICAgKGMyKT0wOyBcCisgICAgICAgICAgICAocmVzdWx0KT1fVVRSSUVfR0VUX1JB
VygodHJpZSksIGRhdGEsIDAsIChjKSk7IFwKKyAgICAgICAgfSBcCisgICAgfSBlbHNlIHsgXAor
ICAgICAgICAvKiB1bnBhaXJlZCBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50ICovIFwKKyAgICAg
ICAgKGMyKT0wOyBcCisgICAgICAgIChyZXN1bHQpPV9VVFJJRV9HRVRfUkFXKCh0cmllKSwgZGF0
YSwgVVRSSUVfTEVBRF9JTkRFWF9ESVNQLCAoYykpOyBcCisgICAgfSBcCit9CisKKy8qIFB1Ymxp
YyBVVHJpZSBBUEkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBHZXQgYSBwb2ludGVyIHRvIHRoZSBjb250aWd1b3Vz
IHBhcnQgb2YgdGhlIGRhdGEgYXJyYXkKKyAqIGZvciB0aGUgTGF0aW4tMSByYW5nZSAoVSswMDAw
Li5VKzAwZmYpLgorICogTXVzdCBiZSB1c2VkIG9ubHkgaWYgdGhlIExhdGluLTEgcmFuZ2UgaXMg
aW4gZmFjdCBsaW5lYXIKKyAqICh0cmllLT5pc0xhdGluMUxpbmVhcikuCisgKgorICogQHBhcmFt
IHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBz
dHJ1Y3R1cmUKKyAqIEByZXR1cm4gKGNvbnN0IHVpbnQxNl90ICopIHBvaW50ZXIgdG8gdmFsdWVz
IGZvciBMYXRpbi0xIGNvZGUgcG9pbnRzCisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTZfTEFUSU4x
KHRyaWUpICgodHJpZSktPmluZGV4Kyh0cmllKS0+aW5kZXhMZW5ndGgrVVRSSUVfREFUQV9CTE9D
S19MRU5HVEgpCisKKy8qKgorICogR2V0IGEgcG9pbnRlciB0byB0aGUgY29udGlndW91cyBwYXJ0
IG9mIHRoZSBkYXRhIGFycmF5CisgKiBmb3IgdGhlIExhdGluLTEgcmFuZ2UgKFUrMDAwMC4uVSsw
MGZmKS4KKyAqIE11c3QgYmUgdXNlZCBvbmx5IGlmIHRoZSBMYXRpbi0xIHJhbmdlIGlzIGluIGZh
Y3QgbGluZWFyCisgKiAodHJpZS0+aXNMYXRpbjFMaW5lYXIpLgorICoKKyAqIEBwYXJhbSB0cmll
IChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0
dXJlCisgKiBAcmV0dXJuIChjb25zdCB1aW50MzJfdCAqKSBwb2ludGVyIHRvIHZhbHVlcyBmb3Ig
TGF0aW4tMSBjb2RlIHBvaW50cworICovCisjZGVmaW5lIFVUUklFX0dFVDMyX0xBVElOMSh0cmll
KSAoKHRyaWUpLT5kYXRhMzIrVVRSSUVfREFUQV9CTE9DS19MRU5HVEgpCisKKy8qKgorICogR2V0
IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJNUCBjb2RlIHBvaW50IChVQ2hhciwgPD1VK2Zm
ZmYpLgorICogYzE2IG1heSBiZSBhIGxlYWQgc3Vycm9nYXRlLCB3aGljaCBtYXkgaGF2ZSBhIHZh
bHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0LgorICoKKyAqIEBwYXJhbSB0cmllIChjb25z
dCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisg
KiBAcGFyYW0gYzE2IChVQ2hhciwgaW4pIHRoZSBpbnB1dCBCTVAgY29kZSBwb2ludAorICogQHJl
dHVybiAodWludDE2X3QpIHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dF
VDE2X0ZST01fTEVBRCh0cmllLCBjMTYpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGluZGV4LCAwLCBj
MTYpCisKKy8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJNUCBjb2RlIHBv
aW50IChVQ2hhciwgPD1VK2ZmZmYpLgorICogYzE2IG1heSBiZSBhIGxlYWQgc3Vycm9nYXRlLCB3
aGljaCBtYXkgaGF2ZSBhIHZhbHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0LgorICoKKyAq
IEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1l
IHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYzE2IChVQ2hhciwgaW4pIHRoZSBpbnB1dCBCTVAg
Y29kZSBwb2ludAorICogQHJldHVybiAodWludDMyX3QpIHRyaWUgbG9va3VwIHJlc3VsdAorICov
CisjZGVmaW5lIFVUUklFX0dFVDMyX0ZST01fTEVBRCh0cmllLCBjMTYpIF9VVFJJRV9HRVRfUkFX
KHRyaWUsIGRhdGEzMiwgMCwgYzE2KQorCisvKioKKyAqIEdldCBhIDE2LWJpdCB0cmllIHZhbHVl
IGZyb20gYSBCTVAgY29kZSBwb2ludCAoVUNoYXIsIDw9VStmZmZmKS4KKyAqIEV2ZW4gbGVhZCBz
dXJyb2dhdGUgY29kZSBwb2ludHMgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIGNvZGUgcG9pbnRzLAor
ICogd2l0aCB1bmZvbGRlZCB2YWx1ZXMgdGhhdCBtYXkgZGlmZmVyIGZyb20gX0ZST01fTEVBRCgp
IG1hY3JvIHJlc3VsdHMgZm9yIHRoZW0uCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmll
ICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJh
bSBjMTYgKFVDaGFyLCBpbikgdGhlIGlucHV0IEJNUCBjb2RlIHBvaW50CisgKiBAcmV0dXJuICh1
aW50MTZfdCkgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTZfRlJP
TV9CTVAodHJpZSwgYzE2KSBfVVRSSUVfR0VUX0ZST01fQk1QKHRyaWUsIGluZGV4LCBjMTYpCisK
Ky8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJNUCBjb2RlIHBvaW50IChV
Q2hhciwgPD1VK2ZmZmYpLgorICogRXZlbiBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cyBhcmUg
dHJlYXRlZCBhcyBub3JtYWwgY29kZSBwb2ludHMsCisgKiB3aXRoIHVuZm9sZGVkIHZhbHVlcyB0
aGF0IG1heSBkaWZmZXIgZnJvbSBfRlJPTV9MRUFEKCkgbWFjcm8gcmVzdWx0cyBmb3IgdGhlbS4K
KyAqCisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRlciB0byB0aGUg
cnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIGMxNiAoVUNoYXIsIGluKSB0aGUgaW5w
dXQgQk1QIGNvZGUgcG9pbnQKKyAqIEByZXR1cm4gKHVpbnQzMl90KSB0cmllIGxvb2t1cCByZXN1
bHQKKyAqLworI2RlZmluZSBVVFJJRV9HRVQzMl9GUk9NX0JNUCh0cmllLCBjMTYpIF9VVFJJRV9H
RVRfRlJPTV9CTVAodHJpZSwgZGF0YTMyLCBjMTYpCisKKy8qKgorICogR2V0IGEgMTYtYml0IHRy
aWUgdmFsdWUgZnJvbSBhIGNvZGUgcG9pbnQuCisgKiBFdmVuIGxlYWQgc3Vycm9nYXRlIGNvZGUg
cG9pbnRzIGFyZSB0cmVhdGVkIGFzIG5vcm1hbCBjb2RlIHBvaW50cywKKyAqIHdpdGggdW5mb2xk
ZWQgdmFsdWVzIHRoYXQgbWF5IGRpZmZlciBmcm9tIF9GUk9NX0xFQUQoKSBtYWNybyByZXN1bHRz
IGZvciB0aGVtLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2lu
dGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYzMyIChVQ2hhcjMy
LCBpbikgdGhlIGlucHV0IGNvZGUgcG9pbnQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQxNl90LCBv
dXQpIHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNk
ZWZpbmUgVVRSSUVfR0VUMTYodHJpZSwgYzMyLCByZXN1bHQpIF9VVFJJRV9HRVQodHJpZSwgaW5k
ZXgsIGMzMiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgYSAzMi1iaXQgdHJpZSB2
YWx1ZSBmcm9tIGEgY29kZSBwb2ludC4KKyAqIEV2ZW4gbGVhZCBzdXJyb2dhdGUgY29kZSBwb2lu
dHMgYXJlIHRyZWF0ZWQgYXMgbm9ybWFsIGNvZGUgcG9pbnRzLAorICogd2l0aCB1bmZvbGRlZCB2
YWx1ZXMgdGhhdCBtYXkgZGlmZmVyIGZyb20gX0ZST01fTEVBRCgpIG1hY3JvIHJlc3VsdHMgZm9y
IHRoZW0uCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIg
dG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBjMzIgKFVDaGFyMzIsIGlu
KSB0aGUgaW5wdXQgY29kZSBwb2ludAorICogQHBhcmFtIHJlc3VsdCAodWludDMyX3QsIG91dCkg
dWludDMyX3QgdmFyaWFibGUgZm9yIHRoZSB0cmllIGxvb2t1cCByZXN1bHQKKyAqLworI2RlZmlu
ZSBVVFJJRV9HRVQzMih0cmllLCBjMzIsIHJlc3VsdCkgX1VUUklFX0dFVCh0cmllLCBkYXRhMzIs
IGMzMiwgcmVzdWx0LCB1aW50MzJfdCkKKworLyoqCisgKiBHZXQgdGhlIG5leHQgY29kZSBwb2lu
dCAoYywgYzIpLCBwb3N0LWluY3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0IGEgMTYtYml0IHZhbHVl
IGZyb20gdGhlIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBh
IHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzcmMgKGNv
bnN0IFVDaGFyICosIGluL291dCkgdGhlIHNvdXJjZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBs
aW1pdCAoY29uc3QgVUNoYXIgKiwgaW4pIHRoZSBsaW1pdCBwb2ludGVyIGZvciB0aGUgdGV4dCwg
b3IgTlVMTAorICogQHBhcmFtIGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9y
IGxlYWQgY29kZSB1bml0CisgKiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAw
IG9yIHRoZSB0cmFpbCBjb2RlIHVuaXQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQxNl90LCBvdXQp
IHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZp
bmUgVVRSSUVfTkVYVDE2KHRyaWUsIHNyYywgbGltaXQsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9O
RVhUKHRyaWUsIGluZGV4LCBzcmMsIGxpbWl0LCBjLCBjMiwgcmVzdWx0LCB1aW50MTZfdCkKKwor
LyoqCisgKiBHZXQgdGhlIG5leHQgY29kZSBwb2ludCAoYywgYzIpLCBwb3N0LWluY3JlbWVudCBz
cmMsCisgKiBhbmQgZ2V0IGEgMzItYml0IHZhbHVlIGZyb20gdGhlIHRyaWUuCisgKgorICogQHBh
cmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJp
ZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzcmMgKGNvbnN0IFVDaGFyICosIGluL291dCkgdGhlIHNv
dXJjZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBsaW1pdCAoY29uc3QgVUNoYXIgKiwgaW4pIHRo
ZSBsaW1pdCBwb2ludGVyIGZvciB0aGUgdGV4dCwgb3IgTlVMTAorICogQHBhcmFtIGMgKFVDaGFy
LCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9yIGxlYWQgY29kZSB1bml0CisgKiBAcGFyYW0g
YzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAwIG9yIHRoZSB0cmFpbCBjb2RlIHVuaXQKKyAq
IEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQpIHVpbnQzMl90IHZhcmlhYmxlIGZvciB0aGUg
dHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfTkVYVDMyKHRyaWUsIHNyYywg
bGltaXQsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9ORVhUKHRyaWUsIGRhdGEzMiwgc3JjLCBsaW1p
dCwgYywgYzIsIHJlc3VsdCwgdWludDMyX3QpCisKKy8qKgorICogR2V0IHRoZSBwcmV2aW91cyBj
b2RlIHBvaW50IChjLCBjMiksIHByZS1kZWNyZW1lbnQgc3JjLAorICogYW5kIGdldCBhIDE2LWJp
dCB2YWx1ZSBmcm9tIHRoZSB0cmllLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAq
LCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0g
c3RhcnQgKGNvbnN0IFVDaGFyICosIGluKSB0aGUgc3RhcnQgcG9pbnRlciBmb3IgdGhlIHRleHQs
IG9yIE5VTEwKKyAqIEBwYXJhbSBzcmMgKGNvbnN0IFVDaGFyICosIGluL291dCkgdGhlIHNvdXJj
ZSB0ZXh0IHBvaW50ZXIKKyAqIEBwYXJhbSBjIChVQ2hhciwgb3V0KSB2YXJpYWJsZSBmb3IgdGhl
IEJNUCBvciBsZWFkIGNvZGUgdW5pdAorICogQHBhcmFtIGMyIChVQ2hhciwgb3V0KSB2YXJpYWJs
ZSBmb3IgMCBvciB0aGUgdHJhaWwgY29kZSB1bml0CisgKiBAcGFyYW0gcmVzdWx0ICh1aW50MTZf
dCwgb3V0KSB1aW50MTZfdCB2YXJpYWJsZSBmb3IgdGhlIHRyaWUgbG9va3VwIHJlc3VsdAorICov
CisjZGVmaW5lIFVUUklFX1BSRVZJT1VTMTYodHJpZSwgc3RhcnQsIHNyYywgYywgYzIsIHJlc3Vs
dCkgX1VUUklFX1BSRVZJT1VTKHRyaWUsIGluZGV4LCBzdGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0
LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgKGMsIGMy
KSwgcHJlLWRlY3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0IGEgMzItYml0IHZhbHVlIGZyb20gdGhl
IHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIg
dG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzdGFydCAoY29uc3QgVUNo
YXIgKiwgaW4pIHRoZSBzdGFydCBwb2ludGVyIGZvciB0aGUgdGV4dCwgb3IgTlVMTAorICogQHBh
cmFtIHNyYyAoY29uc3QgVUNoYXIgKiwgaW4vb3V0KSB0aGUgc291cmNlIHRleHQgcG9pbnRlcgor
ICogQHBhcmFtIGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9yIGxlYWQgY29k
ZSB1bml0CisgKiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAwIG9yIHRoZSB0
cmFpbCBjb2RlIHVuaXQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQpIHVpbnQzMl90
IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVf
UFJFVklPVVMzMih0cmllLCBzdGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0KSBfVVRSSUVfUFJFVklP
VVModHJpZSwgZGF0YTMyLCBzdGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0LCB1aW50MzJfdCkKKwor
LyoqCisgKiBHZXQgYSAxNi1iaXQgdHJpZSB2YWx1ZSBmcm9tIGEgcGFpciBvZiBzdXJyb2dhdGVz
LgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRo
ZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYyAoVUNoYXIsIGluKSBhIGxlYWQg
c3Vycm9nYXRlCisgKiBAcGFyYW0gYzIgKFVDaGFyLCBpbikgYSB0cmFpbCBzdXJyb2dhdGUKKyAq
IEBwYXJhbSByZXN1bHQgKHVpbnQxNl90LCBvdXQpIHVpbnQxNl90IHZhcmlhYmxlIGZvciB0aGUg
dHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTZfRlJPTV9QQUlSKHRy
aWUsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9HRVRfRlJPTV9QQUlSKHRyaWUsIGluZGV4LCBjLCBj
MiwgcmVzdWx0LCB1aW50MTZfdCkKKworLyoqCisgKiBHZXQgYSAzMi1iaXQgdHJpZSB2YWx1ZSBm
cm9tIGEgcGFpciBvZiBzdXJyb2dhdGVzLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJp
ZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFy
YW0gYyAoVUNoYXIsIGluKSBhIGxlYWQgc3Vycm9nYXRlCisgKiBAcGFyYW0gYzIgKFVDaGFyLCBp
bikgYSB0cmFpbCBzdXJyb2dhdGUKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQzMl90LCBvdXQpIHVp
bnQzMl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUg
VVRSSUVfR0VUMzJfRlJPTV9QQUlSKHRyaWUsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9HRVRfRlJP
TV9QQUlSKHRyaWUsIGRhdGEzMiwgYywgYzIsIHJlc3VsdCwgdWludDMyX3QpCisKKy8qKgorICog
R2V0IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIGZvbGRpbmcgb2Zmc2V0IChmcm9tIHRoZSB2
YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRlKQorICogYW5kIGEgdHJhaWwgc3Vycm9nYXRlLgorICoK
KyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50
aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gb2Zmc2V0IChpbnQzMl90LCBpbikgdGhlIGZv
bGRpbmcgb2Zmc2V0IGZyb20gdGhlIHZhbHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUKKyAqIEBwYXJh
bSBjMiAoVUNoYXIsIGluKSBhIHRyYWlsIHN1cnJvZ2F0ZSAob25seSB0aGUgMTAgbG93IGJpdHMg
YXJlIHNpZ25pZmljYW50KQorICogQHJldHVybiAodWludDE2X3QpIHRyaWUgbG9va3VwIHJlc3Vs
dAorICovCisjZGVmaW5lIFVUUklFX0dFVDE2X0ZST01fT0ZGU0VUX1RSQUlMKHRyaWUsIG9mZnNl
dCwgYzIpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGluZGV4LCBvZmZzZXQsIChjMikmMHgzZmYpCisK
Ky8qKgorICogR2V0IGEgMzItYml0IHRyaWUgdmFsdWUgZnJvbSBhIGZvbGRpbmcgb2Zmc2V0IChm
cm9tIHRoZSB2YWx1ZSBvZiBhIGxlYWQgc3Vycm9nYXRlKQorICogYW5kIGEgdHJhaWwgc3Vycm9n
YXRlLgorICoKKyAqIEBwYXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRv
IHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gb2Zmc2V0IChpbnQzMl90LCBp
bikgdGhlIGZvbGRpbmcgb2Zmc2V0IGZyb20gdGhlIHZhbHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUK
KyAqIEBwYXJhbSBjMiAoVUNoYXIsIGluKSBhIHRyYWlsIHN1cnJvZ2F0ZSAob25seSB0aGUgMTAg
bG93IGJpdHMgYXJlIHNpZ25pZmljYW50KQorICogQHJldHVybiAodWludDMyX3QpIHRyaWUgbG9v
a3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dFVDMyX0ZST01fT0ZGU0VUX1RSQUlMKHRy
aWUsIG9mZnNldCwgYzIpIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEzMiwgb2Zmc2V0LCAoYzIp
JjB4M2ZmKQorCisvKiBlbnVtZXJhdGlvbiBjYWxsYmFjayB0eXBlcyAqLworCisvKioKKyAqIENh
bGxiYWNrIGZyb20gdXRyaWVfZW51bSgpLCBleHRyYWN0cyBhIHVpbnQzMl90IHZhbHVlIGZyb20g
YQorICogdHJpZSB2YWx1ZS4gVGhpcyB2YWx1ZSB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUgVVRy
aWVFbnVtUmFuZ2UgZnVuY3Rpb24uCisgKgorICogQHBhcmFtIGNvbnRleHQgYW4gb3BhcXVlIHBv
aW50ZXIsIGFzIHBhc3NlZCBpbnRvIHV0cmllX2VudW0oKQorICogQHBhcmFtIHZhbHVlIGEgdmFs
dWUgZnJvbSB0aGUgdHJpZQorICogQHJldHVybiB0aGUgdmFsdWUgdGhhdCBpcyB0byBiZSBwYXNz
ZWQgb24gdG8gdGhlIFVUcmllRW51bVJhbmdlIGZ1bmN0aW9uCisgKi8KK3R5cGVkZWYgdWludDMy
X3QgVV9DQUxMQ09OVgorVVRyaWVFbnVtVmFsdWUoY29uc3Qgdm9pZCAqY29udGV4dCwgdWludDMy
X3QgdmFsdWUpOworCisvKioKKyAqIENhbGxiYWNrIGZyb20gdXRyaWVfZW51bSgpLCBpcyBjYWxs
ZWQgZm9yIGVhY2ggY29udGlndW91cyByYW5nZQorICogb2YgY29kZSBwb2ludHMgd2l0aCB0aGUg
c2FtZSB2YWx1ZSBhcyByZXRyaWV2ZWQgZnJvbSB0aGUgdHJpZSBhbmQKKyAqIHRyYW5zZm9ybWVk
IGJ5IHRoZSBVVHJpZUVudW1WYWx1ZSBmdW5jdGlvbi4KKyAqCisgKiBUaGUgY2FsbGJhY2sgZnVu
Y3Rpb24gY2FuIHN0b3AgdGhlIGVudW1lcmF0aW9uIGJ5IHJldHVybmluZyBGQUxTRS4KKyAqCisg
KiBAcGFyYW0gY29udGV4dCBhbiBvcGFxdWUgcG9pbnRlciwgYXMgcGFzc2VkIGludG8gdXRyaWVf
ZW51bSgpCisgKiBAcGFyYW0gc3RhcnQgdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gYSBjb250aWd1
b3VzIHJhbmdlIHdpdGggdmFsdWUKKyAqIEBwYXJhbSBsaW1pdCBvbmUgcGFzdCB0aGUgbGFzdCBj
b2RlIHBvaW50IGluIGEgY29udGlndW91cyByYW5nZSB3aXRoIHZhbHVlCisgKiBAcGFyYW0gdmFs
dWUgdGhlIHZhbHVlIHRoYXQgaXMgc2V0IGZvciBhbGwgY29kZSBwb2ludHMgaW4gW3N0YXJ0Li5s
aW1pdFsKKyAqIEByZXR1cm4gRkFMU0UgdG8gc3RvcCB0aGUgZW51bWVyYXRpb24KKyAqLwordHlw
ZWRlZiBVQm9vbCBVX0NBTExDT05WCitVVHJpZUVudW1SYW5nZShjb25zdCB2b2lkICpjb250ZXh0
LCBVQ2hhcjMyIHN0YXJ0LCBVQ2hhcjMyIGxpbWl0LCB1aW50MzJfdCB2YWx1ZSk7CisKKy8qKgor
ICogRW51bWVyYXRlIGVmZmljaWVudGx5IGFsbCB2YWx1ZXMgaW4gYSB0cmllLgorICogRm9yIGVh
Y2ggZW50cnkgaW4gdGhlIHRyaWUsIHRoZSB2YWx1ZSB0byBiZSBkZWxpdmVyZWQgaXMgcGFzc2Vk
IHRocm91Z2gKKyAqIHRoZSBVVHJpZUVudW1WYWx1ZSBmdW5jdGlvbi4KKyAqIFRoZSB2YWx1ZSBp
cyB1bmNoYW5nZWQgaWYgdGhhdCBmdW5jdGlvbiBwb2ludGVyIGlzIE5VTEwuCisgKgorICogRm9y
IGVhY2ggY29udGlndW91cyByYW5nZSBvZiBjb2RlIHBvaW50cyB3aXRoIGEgZ2l2ZW4gdmFsdWUs
CisgKiB0aGUgVVRyaWVFbnVtUmFuZ2UgZnVuY3Rpb24gaXMgY2FsbGVkLgorICoKKyAqIEBwYXJh
bSB0cmllIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFt
IGVudW1WYWx1ZSBhIHBvaW50ZXIgdG8gYSBmdW5jdGlvbiB0aGF0IG1heSB0cmFuc2Zvcm0gdGhl
IHRyaWUgZW50cnkgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIG9yIE5VTEwgaWYgdGhlIHZh
bHVlcyBmcm9tIHRoZSB0cmllIGFyZSB0byBiZSB1c2VkIGRpcmVjdGx5CisgKiBAcGFyYW0gZW51
bVJhbmdlIGEgcG9pbnRlciB0byBhIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGZvciBlYWNoIGNv
bnRpZ3VvdXMgcmFuZ2UKKyAqICAgICAgICAgICAgICAgICAgb2YgY29kZSBwb2ludHMgd2l0aCB0
aGUgc2FtZSB2YWx1ZQorICogQHBhcmFtIGNvbnRleHQgYW4gb3BhcXVlIHBvaW50ZXIgdGhhdCBp
cyBwYXNzZWQgb24gdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9ucworICovCitVX0NBUEkgdm9pZCBV
X0VYUE9SVDIKK3V0cmllX2VudW0oY29uc3QgVVRyaWUgKnRyaWUsCisgICAgICAgICAgIFVUcmll
RW51bVZhbHVlICplbnVtVmFsdWUsIFVUcmllRW51bVJhbmdlICplbnVtUmFuZ2UsIGNvbnN0IHZv
aWQgKmNvbnRleHQpOworCisvKioKKyAqIFVuc2VyaWFsaXplIGEgdHJpZSBmcm9tIDMyLWJpdC1h
bGlnbmVkIG1lbW9yeS4KKyAqIEludmVyc2Ugb2YgdXRyaWVfc2VyaWFsaXplKCkuCisgKiBGaWxs
cyB0aGUgVVRyaWUgcnVudGltZSB0cmllIHN0cnVjdHVyZSB3aXRoIHRoZSBzZXR0aW5ncyBmb3Ig
dGhlIHRyaWUgZGF0YS4KKyAqCisgKiBAcGFyYW0gdHJpZSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRp
bWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBkYXRhIGEgcG9pbnRlciB0byAzMi1iaXQtYWxp
Z25lZCBtZW1vcnkgY29udGFpbmluZyB0cmllIGRhdGEKKyAqIEBwYXJhbSBsZW5ndGggdGhlIG51
bWJlciBvZiBieXRlcyBhdmFpbGFibGUgYXQgZGF0YQorICogQHBhcmFtIHBFcnJvckNvZGUgYW4g
aW4vb3V0IElDVSBVRXJyb3JDb2RlCisgKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgYXQg
ZGF0YSB0YWtlbiB1cCBieSB0aGUgdHJpZSBkYXRhCisgKi8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQ
T1JUMgordXRyaWVfdW5zZXJpYWxpemUoVVRyaWUgKnRyaWUsIGNvbnN0IHZvaWQgKmRhdGEsIGlu
dDMyX3QgbGVuZ3RoLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiAiVW5zZXJp
YWxpemUiIGEgZHVtbXkgdHJpZS4KKyAqIEEgZHVtbXkgdHJpZSBpcyBhbiBlbXB0eSBydW50aW1l
IHRyaWUsIHVzZWQgd2hlbiBhIHJlYWwgZGF0YSB0cmllIGNhbm5vdAorICogYmUgbG9hZGVkLgor
ICoKKyAqIFRoZSBpbnB1dCBtZW1vcnkgaXMgZmlsbGVkIHNvIHRoYXQgdGhlIHRyaWUgYWx3YXlz
IHJldHVybnMgdGhlIGluaXRpYWxWYWx1ZSwKKyAqIG9yIHRoZSBsZWFkVW5pdFZhbHVlIGZvciBs
ZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cy4KKyAqIFRoZSBMYXRpbi0xIHBhcnQgaXMgYWx3YXlz
IHNldCB1cCB0byBiZSBsaW5lYXIuCisgKgorICogQHBhcmFtIHRyaWUgYSBwb2ludGVyIHRvIHRo
ZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gZGF0YSBhIHBvaW50ZXIgdG8gMzIt
Yml0LWFsaWduZWQgbWVtb3J5IHRvIGJlIGZpbGxlZCB3aXRoIHRoZSBkdW1teSB0cmllIGRhdGEK
KyAqIEBwYXJhbSBsZW5ndGggdGhlIG51bWJlciBvZiBieXRlcyBhdmFpbGFibGUgYXQgZGF0YSAo
cmVjb21tZW5kZWQgdG8gdXNlIFVUUklFX0RVTU1ZX1NJWkUpCisgKiBAcGFyYW0gaW5pdGlhbFZh
bHVlIHRoZSBpbml0aWFsIHZhbHVlIHRoYXQgaXMgc2V0IGZvciBhbGwgY29kZSBwb2ludHMKKyAq
IEBwYXJhbSBsZWFkVW5pdFZhbHVlIHRoZSB2YWx1ZSBmb3IgbGVhZCBzdXJyb2dhdGUgY29kZSBf
dW5pdHNfIHRoYXQgZG8gbm90CisgKiAgICAgICAgICAgICAgICAgICAgICBoYXZlIGFzc29jaWF0
ZWQgc3VwcGxlbWVudGFyeSBkYXRhCisgKiBAcGFyYW0gcEVycm9yQ29kZSBhbiBpbi9vdXQgSUNV
IFVFcnJvckNvZGUKKyAqCisgKiBAc2VlIFVUUklFX0RVTU1ZX1NJWkUKKyAqIEBzZWUgdXRyaWVf
b3BlbgorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0cmllX3Vuc2VyaWFsaXplRHVt
bXkoVVRyaWUgKnRyaWUsCisgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEsIGludDMy
X3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpbml0aWFsVmFsdWUs
IHVpbnQzMl90IGxlYWRVbml0VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgIFVCb29sIG1h
a2UxNkJpdFRyaWUsCisgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNv
ZGUpOworCisvKioKKyAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIFVUcmllLmdldEZvbGRp
bmdPZmZzZXQsIHNldCBhdXRvbWF0aWNhbGx5IGJ5CisgKiB1dHJpZV91bnNlcmlhbGl6ZSgpLgor
ICogU2ltcGx5IHJldHVybnMgdGhlIGxlYWQgc3Vycm9nYXRlJ3MgdmFsdWUgaXRzZWxmIC0gd2hp
Y2ggaXMgdGhlIGludmVyc2UKKyAqIG9mIHRoZSBkZWZhdWx0IGZvbGRpbmcgZnVuY3Rpb24gdXNl
ZCBieSB1dHJpZV9zZXJpYWxpemUoKS4KKyAqIEV4cG9ydGVkIGZvciBzdGF0aWMgY29uc3QgVVRy
aWUgc3RydWN0dXJlcy4KKyAqCisgKiBAc2VlIFVUcmllR2V0Rm9sZGluZ09mZnNldAorICovCitV
X0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0cmllX2RlZmF1bHRHZXRGb2xkaW5nT2Zmc2V0KHVp
bnQzMl90IGRhdGEpOworCisvKiBCdWlsZGluZyBhIHRyaWUgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qKgorICogQnVpbGQt
dGltZSB0cmllIHN0cnVjdHVyZS4KKyAqIE9wYXF1ZSBkZWZpbml0aW9uLCBoZXJlIG9ubHkgdG8g
bWFrZSBmaWxsSW4gcGFyYW1ldGVycyBwb3NzaWJsZQorICogZm9yIHV0cmllX29wZW4oKSBhbmQg
dXRyaWVfY2xvbmUoKS4KKyAqLworc3RydWN0IFVOZXdUcmllIHsKKyAgICAvKioKKyAgICAgKiBJ
bmRleCB2YWx1ZXMgYXQgYnVpbGQtdGltZSBhcmUgMzIgYml0cyB3aWRlIGZvciBlYXNpZXIgcHJv
Y2Vzc2luZy4KKyAgICAgKiBCaXQgMzEgaXMgc2V0IGlmIHRoZSBkYXRhIGJsb2NrIGlzIHVzZWQg
YnkgbXVsdGlwbGUgaW5kZXggdmFsdWVzIChmcm9tIHV0cmllX3NldFJhbmdlKCkpLgorICAgICAq
LworICAgIGludDMyX3QgaW5kZXhbVVRSSUVfTUFYX0lOREVYX0xFTkdUSF07CisgICAgdWludDMy
X3QgKmRhdGE7CisKKyAgICB1aW50MzJfdCBsZWFkVW5pdFZhbHVlOworICAgIGludDMyX3QgaW5k
ZXhMZW5ndGgsIGRhdGFDYXBhY2l0eSwgZGF0YUxlbmd0aDsKKyAgICBVQm9vbCBpc0FsbG9jYXRl
ZCwgaXNEYXRhQWxsb2NhdGVkOworICAgIFVCb29sIGlzTGF0aW4xTGluZWFyLCBpc0NvbXBhY3Rl
ZDsKKworICAgIC8qKgorICAgICAqIE1hcCBvZiBhZGp1c3RlZCBpbmRleGVzLCB1c2VkIGluIHV0
cmllX2NvbXBhY3QoKS4KKyAgICAgKiBNYXBzIGZyb20gb3JpZ2luYWwgaW5kZXhlcyB0byBuZXcg
b25lcy4KKyAgICAgKi8KKyAgICBpbnQzMl90IG1hcFtVVFJJRV9NQVhfQlVJTERfVElNRV9EQVRB
X0xFTkdUSD4+VVRSSUVfU0hJRlRdOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgVU5ld1RyaWUgVU5l
d1RyaWU7CisKKy8qKgorICogQnVpbGQtdGltZSB0cmllIGNhbGxiYWNrIGZ1bmN0aW9uLCB1c2Vk
IHdpdGggdXRyaWVfc2VyaWFsaXplKCkuCisgKiBUaGlzIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgYSBs
ZWFkIHN1cnJvZ2F0ZSdzIHZhbHVlIGluY2x1ZGluZyBhIGZvbGRpbmcgb2Zmc2V0CisgKiBmcm9t
IHRoZSAxMDI0IHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMgW3N0YXJ0Li5zdGFydCsxMDI0WyAu
CisgKiBJdCBpcyBVKzEwMDAwIDw9IHN0YXJ0IDw9IFUrMTBmYzAwIGFuZCAoc3RhcnQmMHgzZmYp
PT0wLgorICoKKyAqIFRoZSBmb2xkaW5nIG9mZnNldCBpcyBwcm92aWRlZCBieSB0aGUgY2FsbGVy
LgorICogSXQgaXMgb2Zmc2V0PVVUUklFX0JNUF9JTkRFWF9MRU5HVEgrbipVVFJJRV9TVVJST0dB
VEVfQkxPQ0tfQ09VTlQgd2l0aCBuPTAuLjEwMjMuCisgKiBJbnN0ZWFkIG9mIHRoZSBvZmZzZXQg
aXRzZWxmLCBuIGNhbiBiZSBzdG9yZWQgaW4gMTAgYml0cyAtCisgKiBvciBmZXdlciBpZiBpdCBj
YW4gYmUgYXNzdW1lZCB0aGF0IGZldyBsZWFkIHN1cnJvZ2F0ZXMgaGF2ZSBhc3NvY2lhdGVkIGRh
dGEuCisgKgorICogVGhlIHJldHVybmVkIHZhbHVlIG11c3QgYmUKKyAqIC0gbm90IHplcm8gaWYg
YW5kIG9ubHkgaWYgdGhlcmUgaXMgcmVsZXZhbnQgZGF0YQorICogICBmb3IgdGhlIGNvcnJlc3Bv
bmRpbmcgMTAyNCBzdXBwbGVtZW50YXJ5IGNvZGUgcG9pbnRzCisgKiAtIHN1Y2ggdGhhdCBVVHJp
ZS5nZXRGb2xkaW5nT2Zmc2V0KFVOZXdUcmllR2V0Rm9sZGVkVmFsdWUoLi4uLCBvZmZzZXQpKT09
b2Zmc2V0CisgKgorICogQHJldHVybiBhIGZvbGRlZCB2YWx1ZSwgb3IgMCBpZiB0aGVyZSBpcyBu
byByZWxldmFudCBkYXRhIGZvciB0aGUgbGVhZCBzdXJyb2dhdGUuCisgKi8KK3R5cGVkZWYgdWlu
dDMyX3QgVV9DQUxMQ09OVgorVU5ld1RyaWVHZXRGb2xkZWRWYWx1ZShVTmV3VHJpZSAqdHJpZSwg
VUNoYXIzMiBzdGFydCwgaW50MzJfdCBvZmZzZXQpOworCisvKioKKyAqIE9wZW4gYSBidWlsZC10
aW1lIHRyaWUgc3RydWN0dXJlLgorICogVGhlIHNpemUgb2YgdGhlIGJ1aWxkLXRpbWUgZGF0YSBh
cnJheSBpcyBzcGVjaWZpZWQgdG8gYXZvaWQgYWxsb2NhdGluZyBhIGxhcmdlCisgKiBhcnJheSBp
biBhbGwgY2FzZXMuIFRoZSBhcnJheSBpdHNlbGYgY2FuIGFsc28gYmUgcGFzc2VkIGluLgorICoK
KyAqIEFsdGhvdWdoIHRoZSB0cmllIGlzIG5ldmVyIGZ1bGx5IGV4cGFuZGVkIHRvIGEgbGluZWFy
IGFycmF5LCBlc3BlY2lhbGx5IHdoZW4KKyAqIHV0cmllX3NldFJhbmdlMzIoKSBpcyB1c2VkLCB0
aGUgZGF0YSBhcnJheSBjb3VsZCBiZSBsYXJnZSBkdXJpbmcgYnVpbGQgdGltZS4KKyAqIFRoZSBt
YXhpbXVtIGxlbmd0aCBpcworICogVVRSSUVfTUFYX0JVSUxEX1RJTUVfREFUQV9MRU5HVEg9MHgx
MTAwMDArVVRSSUVfREFUQV9CTE9DS19MRU5HVEgrMHg0MDAuCisgKiAoTnVtYmVyIG9mIFVuaWNv
ZGUgY29kZSBwb2ludHMgKyBvbmUgYWxsLWluaXRpYWwtdmFsdWUgYmxvY2sgKworICogIHBvc3Np
YmxlIGR1cGxpY2F0ZSBlbnRyaWVzIGZvciAxMDI0IGxlYWQgc3Vycm9nYXRlcy4pCisgKiAoVVRS
SUVfREFUQV9CTE9DS19MRU5HVEg8PTB4MjAwIGluIGFsbCBjYXNlcy4pCisgKgorICogQHBhcmFt
IGZpbGxJbiBhIHBvaW50ZXIgdG8gYSBVTmV3VHJpZSBzdHJ1Y3R1cmUgdG8gYmUgaW5pdGlhbGl6
ZWQgKHdpbGwgbm90IGJlIHJlbGVhc2VkKSwgb3IKKyAqICAgICAgICAgICAgICAgTlVMTCBpZiBv
bmUgaXMgdG8gYmUgYWxsb2NhdGVkCisgKiBAcGFyYW0gYWxpYXNEYXRhIGEgcG9pbnRlciB0byBh
IGRhdGEgYXJyYXkgdG8gYmUgdXNlZCAod2lsbCBub3QgYmUgcmVsZWFzZWQpLCBvcgorICogICAg
ICAgICAgICAgICAgICBOVUxMIGlmIG9uZSBpcyB0byBiZSBhbGxvY2F0ZWQKKyAqIEBwYXJhbSBt
YXhEYXRhTGVuZ3RoIHRoZSBjYXBhY2l0eSBvZiBhbGlhc0RhdGEgKGlmIG5vdCBOVUxMKSBvcgor
ICogICAgICAgICAgICAgICAgICAgICAgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YSBhcnJheSB0byBi
ZSBhbGxvY2F0ZWQKKyAqIEBwYXJhbSBpbml0aWFsVmFsdWUgdGhlIGluaXRpYWwgdmFsdWUgdGhh
dCBpcyBzZXQgZm9yIGFsbCBjb2RlIHBvaW50cworICogQHBhcmFtIGxlYWRVbml0VmFsdWUgdGhl
IHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gdGhhdCBkbyBub3QKKyAqICAg
ICAgICAgICAgICAgICAgICAgIGhhdmUgYXNzb2NpYXRlZCBzdXBwbGVtZW50YXJ5IGRhdGEKKyAq
IEBwYXJhbSBsYXRpbjFMaW5lYXIgYSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgTGF0aW4t
MSByYW5nZSBpcyB0byBiZSBhbGxvY2F0ZWQgYW5kCisgKiAgICAgICAgICAgICAgICAgICAgIGtl
cHQgaW4gYSBsaW5lYXIsIGNvbnRpZ3VvdXMgcGFydCBvZiB0aGUgZGF0YSBhcnJheQorICogQHJl
dHVybiBhIHBvaW50ZXIgdG8gdGhlIGluaXRpYWxpemVkIGZpbGxJbiBvciB0aGUgYWxsb2NhdGVk
IGFuZCBpbml0aWFsaXplZCBuZXcgVU5ld1RyaWUKKyAqLworVV9DQVBJIFVOZXdUcmllICogVV9F
WFBPUlQyCit1dHJpZV9vcGVuKFVOZXdUcmllICpmaWxsSW4sCisgICAgICAgICAgIHVpbnQzMl90
ICphbGlhc0RhdGEsIGludDMyX3QgbWF4RGF0YUxlbmd0aCwKKyAgICAgICAgICAgdWludDMyX3Qg
aW5pdGlhbFZhbHVlLCB1aW50MzJfdCBsZWFkVW5pdFZhbHVlLAorICAgICAgICAgICBVQm9vbCBs
YXRpbjFMaW5lYXIpOworCisvKioKKyAqIENsb25lIGEgYnVpbGQtdGltZSB0cmllIHN0cnVjdHVy
ZSB3aXRoIGFsbCBlbnRyaWVzLgorICoKKyAqIEBwYXJhbSBmaWxsSW4gbGlrZSBpbiB1dHJpZV9v
cGVuKCkKKyAqIEBwYXJhbSBvdGhlciB0aGUgYnVpbGQtdGltZSB0cmllIHN0cnVjdHVyZSB0byBj
bG9uZQorICogQHBhcmFtIGFsaWFzRGF0YSBsaWtlIGluIHV0cmllX29wZW4oKSwKKyAqICAgICAg
ICAgICAgICAgICAgdXNlZCBpZiBhbGlhc0RhdGFMZW5ndGg+PShjYXBhY2l0eSBvZiBvdGhlcidz
IGRhdGEgYXJyYXkpCisgKiBAcGFyYW0gYWxpYXNEYXRhTGVuZ3RoIHRoZSBsZW5ndGggb2YgYWxp
YXNEYXRhCisgKiBAcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgaW5pdGlhbGl6ZWQgZmlsbEluIG9y
IHRoZSBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkIG5ldyBVTmV3VHJpZQorICovCitVX0NBUEkg
VU5ld1RyaWUgKiBVX0VYUE9SVDIKK3V0cmllX2Nsb25lKFVOZXdUcmllICpmaWxsSW4sIGNvbnN0
IFVOZXdUcmllICpvdGhlciwgdWludDMyX3QgKmFsaWFzRGF0YSwgaW50MzJfdCBhbGlhc0RhdGFM
ZW5ndGgpOworCisvKioKKyAqIENsb3NlIGEgYnVpbGQtdGltZSB0cmllIHN0cnVjdHVyZSwgYW5k
IHJlbGVhc2UgbWVtb3J5CisgKiB0aGF0IHdhcyBhbGxvY2F0ZWQgYnkgdXRyaWVfb3BlbigpIG9y
IHV0cmllX2Nsb25lKCkuCisgKgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQor
ICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3V0cmllX2Nsb3NlKFVOZXdUcmllICp0cmllKTsK
KworLyoqCisgKiBHZXQgdGhlIGRhdGEgYXJyYXkgb2YgYSBidWlsZC10aW1lIHRyaWUuCisgKiBU
aGUgZGF0YSBtYXkgYmUgbW9kaWZpZWQsIGJ1dCBlbnRyaWVzIHRoYXQgYXJlIGVxdWFsIGJlZm9y
ZQorICogbXVzdCBzdGlsbCBiZSBlcXVhbCBhZnRlciBtb2RpZmljYXRpb24uCisgKgorICogQHBh
cmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQorICogQHBhcmFtIHBMZW5ndGggKG91dCkgYSBw
b2ludGVyIHRvIGEgdmFyaWFibGUgdGhhdCByZWNlaXZlcyB0aGUgbnVtYmVyCisgKiAgICAgICAg
ICAgICAgICBvZiBlbnRyaWVzIGluIHRoZSBkYXRhIGFycmF5CisgKiBAcmV0dXJuIHRoZSBkYXRh
IGFycmF5CisgKi8KK1VfQ0FQSSB1aW50MzJfdCAqIFVfRVhQT1JUMgordXRyaWVfZ2V0RGF0YShV
TmV3VHJpZSAqdHJpZSwgaW50MzJfdCAqcExlbmd0aCk7CisKKy8qKgorICogU2V0IGEgdmFsdWUg
Zm9yIGEgY29kZSBwb2ludC4KKyAqCisgKiBAcGFyYW0gdHJpZSB0aGUgYnVpbGQtdGltZSB0cmll
CisgKiBAcGFyYW0gYyB0aGUgY29kZSBwb2ludAorICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZQor
ICogQHJldHVybiBGQUxTRSBpZiBhIGZhaWx1cmUgb2NjdXJyZWQgKGlsbGVnYWwgYXJndW1lbnQg
b3IgZGF0YSBhcnJheSBvdmVycnVuKQorICovCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCit1dHJp
ZV9zZXQzMihVTmV3VHJpZSAqdHJpZSwgVUNoYXIzMiBjLCB1aW50MzJfdCB2YWx1ZSk7CisKKy8q
KgorICogR2V0IGEgdmFsdWUgZnJvbSBhIGNvZGUgcG9pbnQgYXMgc3RvcmVkIGluIHRoZSBidWls
ZC10aW1lIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQorICog
QHBhcmFtIGMgdGhlIGNvZGUgcG9pbnQKKyAqIEBwYXJhbSBwSW5CbG9ja1plcm8gaWYgbm90IE5V
TEwsIHRoZW4gKnBJbkJsb2NrWmVybyBpcyBzZXQgdG8gVFJVRQorICogICAgICAgICAgICAgICAg
ICAgICBpZmYgdGhlIHZhbHVlIGlzIHJldHJpZXZlZCBmcm9tIGJsb2NrIDA7CisgKiAgICAgICAg
ICAgICAgICAgICAgIGJsb2NrIDAgaXMgdGhlIGFsbC1pbml0aWFsLXZhbHVlIGluaXRpYWwgYmxv
Y2sKKyAqIEByZXR1cm4gdGhlIHZhbHVlCisgKi8KK1VfQ0FQSSB1aW50MzJfdCBVX0VYUE9SVDIK
K3V0cmllX2dldDMyKFVOZXdUcmllICp0cmllLCBVQ2hhcjMyIGMsIFVCb29sICpwSW5CbG9ja1pl
cm8pOworCisvKioKKyAqIFNldCBhIHZhbHVlIGluIGEgcmFuZ2Ugb2YgY29kZSBwb2ludHMgW3N0
YXJ0Li5saW1pdFsuCisgKiBBbGwgY29kZSBwb2ludHMgYyB3aXRoIHN0YXJ0PD1jPGxpbWl0IHdp
bGwgZ2V0IHRoZSB2YWx1ZSBpZgorICogb3ZlcndyaXRlIGlzIFRSVUUgb3IgaWYgdGhlIG9sZCB2
YWx1ZSBpcyAwLgorICoKKyAqIEBwYXJhbSB0cmllIHRoZSBidWlsZC10aW1lIHRyaWUKKyAqIEBw
YXJhbSBzdGFydCB0aGUgZmlyc3QgY29kZSBwb2ludCB0byBnZXQgdGhlIHZhbHVlCisgKiBAcGFy
YW0gbGltaXQgb25lIHBhc3QgdGhlIGxhc3QgY29kZSBwb2ludCB0byBnZXQgdGhlIHZhbHVlCisg
KiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlCisgKiBAcGFyYW0gb3ZlcndyaXRlIGZsYWcgZm9yIHdo
ZXRoZXIgb2xkIG5vbi1pbml0aWFsIHZhbHVlcyBhcmUgdG8gYmUgb3ZlcndyaXR0ZW4KKyAqIEBy
ZXR1cm4gRkFMU0UgaWYgYSBmYWlsdXJlIG9jY3VycmVkIChpbGxlZ2FsIGFyZ3VtZW50IG9yIGRh
dGEgYXJyYXkgb3ZlcnJ1bikKKyAqLworVV9DQVBJIFVCb29sIFVfRVhQT1JUMgordXRyaWVfc2V0
UmFuZ2UzMihVTmV3VHJpZSAqdHJpZSwgVUNoYXIzMiBzdGFydCwgVUNoYXIzMiBsaW1pdCwgdWlu
dDMyX3QgdmFsdWUsIFVCb29sIG92ZXJ3cml0ZSk7CisKKy8qKgorICogQ29tcGFjdCB0aGUgYnVp
bGQtdGltZSB0cmllIGFmdGVyIGFsbCB2YWx1ZXMgYXJlIHNldCwgYW5kIHRoZW4KKyAqIHNlcmlh
bGl6ZSBpdCBpbnRvIDMyLWJpdCBhbGlnbmVkIG1lbW9yeS4KKyAqCisgKiBBZnRlciB0aGlzLCB0
aGUgdHJpZSBjYW4gb25seSBiZSBzZXJpemFsaXplZCBhZ2FpbiBhbmQvb3IgY2xvc2VkOworICog
bm8gZnVydGhlciB2YWx1ZXMgY2FuIGJlIGFkZGVkLgorICoKKyAqIEBzZWUgdXRyaWVfdW5zZXJp
YWxpemUoKQorICoKKyAqIEBwYXJhbSB0cmllIHRoZSBidWlsZC10aW1lIHRyaWUKKyAqIEBwYXJh
bSBkYXRhIGEgcG9pbnRlciB0byAzMi1iaXQtYWxpZ25lZCBtZW1vcnkgZm9yIHRoZSB0cmllIGRh
dGEKKyAqIEBwYXJhbSBjYXBhY2l0eSB0aGUgbnVtYmVyIG9mIGJ5dGVzIGF2YWlsYWJsZSBhdCBk
YXRhCisgKiBAcGFyYW0gZ2V0Rm9sZGVkVmFsdWUgYSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IGNh
bGN1bGF0ZXMgdGhlIHZhbHVlIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgIGEgbGVhZCBz
dXJyb2dhdGUgZnJvbSBhbGwgb2YgaXRzIHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMKKyAqICAg
ICAgICAgICAgICAgICAgICAgICBhbmQgdGhlIGZvbGRpbmcgb2Zmc2V0OworICogICAgICAgICAg
ICAgICAgICAgICAgIGlmIE5VTEwsIHRoZW4gYSBkZWZhdWx0IGZ1bmN0aW9uIGlzIHVzZWQgd2hp
Y2ggcmV0dXJucyBqdXN0CisgKiAgICAgICAgICAgICAgICAgICAgICAgdGhlIGlucHV0IG9mZnNl
dCB3aGVuIHRoZXJlIGFyZSBhbnkgbm9uLWluaXRpYWwtdmFsdWUgZW50cmllcworICogQHBhcmFt
IHJlZHVjZVRvMTZCaXRzIGZsYWcgZm9yIHdoZXRoZXIgdGhlIHZhbHVlcyBhcmUgdG8gYmUgcmVk
dWNlZCB0byBhCisgKiAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggb2YgMTYgYml0cyBmb3Ig
c2VyaWFsaXphdGlvbiBhbmQgcnVudGltZQorICogQHBhcmFtIHBFcnJvckNvZGUgYSBVRXJyb3JD
b2RlIGFyZ3VtZW50OyBhbW9uZyBvdGhlciBwb3NzaWJsZSBlcnJvciBjb2RlczoKKyAqIC0gVV9C
VUZGRVJfT1ZFUkZMT1dfRVJST1IgaWYgdGhlIGRhdGEgc3RvcmFnZSBibG9jayBpcyB0b28gc21h
bGwgZm9yIHNlcmlhbGl6YXRpb24KKyAqIC0gVV9NRU1PUllfQUxMT0NBVElPTl9FUlJPUiBpZiB0
aGUgdHJpZSBkYXRhIGFycmF5IGlzIHRvbyBzbWFsbAorICogLSBVX0lOREVYX09VVE9GQk9VTkRT
X0VSUk9SIGlmIHRoZSBpbmRleCBvciBkYXRhIGFycmF5cyBhcmUgdG9vIGxvbmcgYWZ0ZXIgY29t
cGFjdGlvbiBmb3Igc2VyaWFsaXphdGlvbgorICoKKyAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBi
eXRlcyB3cml0dGVuIGZvciB0aGUgdHJpZQorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIK
K3V0cmllX3NlcmlhbGl6ZShVTmV3VHJpZSAqdHJpZSwgdm9pZCAqZGF0YSwgaW50MzJfdCBjYXBh
Y2l0eSwKKyAgICAgICAgICAgICAgICBVTmV3VHJpZUdldEZvbGRlZFZhbHVlICpnZXRGb2xkZWRW
YWx1ZSwKKyAgICAgICAgICAgICAgICBVQm9vbCByZWR1Y2VUbzE2Qml0cywKKyAgICAgICAgICAg
ICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBTd2FwIGEgc2VyaWFsaXpl
ZCBVVHJpZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3V0
cmllX3N3YXAoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgY29uc3Qgdm9pZCAq
aW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAgICAgVUVycm9y
Q29kZSAqcEVycm9yQ29kZSk7CisKKy8qIHNlcmlhbGl6YXRpb24gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qKgorICog
VHJpZSBkYXRhIHN0cnVjdHVyZSBpbiBzZXJpYWxpemVkIGZvcm06CisgKgorICogVVRyaWVIZWFk
ZXIgaGVhZGVyOworICogdWludDE2X3QgaW5kZXhbaGVhZGVyLmluZGV4TGVuZ3RoXTsKKyAqIHVp
bnQxNl90IGRhdGFbaGVhZGVyLmRhdGFMZW5ndGhdOworICogQGludGVybmFsCisgKi8KK3R5cGVk
ZWYgc3RydWN0IFVUcmllSGVhZGVyIHsKKyAgICAvKiogIlRyaWUiIGluIGJpZy1lbmRpYW4gVVMt
QVNDSUkgKDB4NTQ3MjY5NjUpICovCisgICAgdWludDMyX3Qgc2lnbmF0dXJlOworCisgICAgLyoq
CisgICAgICogb3B0aW9ucyBiaXQgZmllbGQ6CisgICAgICogICAgIDkgICAgMT1MYXRpbi0xIGRh
dGEgaXMgc3RvcmVkIGxpbmVhcmx5IGF0IGRhdGErVVRSSUVfREFUQV9CTE9DS19MRU5HVEgKKyAg
ICAgKiAgICAgOCAgICAwPTE2LWJpdCBkYXRhLCAxPTMyLWJpdCBkYXRhCisgICAgICogIDcuLjQg
ICAgVVRSSUVfSU5ERVhfU0hJRlQgICAvLyAwLi5VVFJJRV9TSElGVAorICAgICAqICAzLi4wICAg
IFVUUklFX1NISUZUICAgICAgICAgLy8gMS4uOQorICAgICAqLworICAgIHVpbnQzMl90IG9wdGlv
bnM7CisKKyAgICAvKiogaW5kZXhMZW5ndGggaXMgYSBtdWx0aXBsZSBvZiBVVFJJRV9TVVJST0dB
VEVfQkxPQ0tfQ09VTlQgKi8KKyAgICBpbnQzMl90IGluZGV4TGVuZ3RoOworCisgICAgLyoqIGRh
dGFMZW5ndGg+PVVUUklFX0RBVEFfQkxPQ0tfTEVOR1RIICovCisgICAgaW50MzJfdCBkYXRhTGVu
Z3RoOworfSBVVHJpZUhlYWRlcjsKKworLyoqCisgKiBDb25zdGFudHMgZm9yIHVzZSB3aXRoIFVU
cmllSGVhZGVyLm9wdGlvbnMuCisgKiBAaW50ZXJuYWwKKyAqLworZW51bSB7CisgICAgLyoqIE1h
c2sgdG8gZ2V0IHRoZSBVVFJJRV9TSElGVCB2YWx1ZSBmcm9tIG9wdGlvbnMuICovCisgICAgVVRS
SUVfT1BUSU9OU19TSElGVF9NQVNLPTB4ZiwKKworICAgIC8qKiBTaGlmdCBvcHRpb25zIHJpZ2h0
IHRoaXMgbXVjaCB0byBnZXQgdGhlIFVUUklFX0lOREVYX1NISUZUIHZhbHVlLiAqLworICAgIFVU
UklFX09QVElPTlNfSU5ERVhfU0hJRlQ9NCwKKworICAgIC8qKiBJZiBzZXQsIHRoZW4gdGhlIGRh
dGEgKHN0YWdlIDIpIGFycmF5IGlzIDMyIGJpdHMgd2lkZS4gKi8KKyAgICBVVFJJRV9PUFRJT05T
X0RBVEFfSVNfMzJfQklUPTB4MTAwLAorCisgICAgLyoqCisgICAgICogSWYgc2V0LCB0aGVuIExh
dGluLTEgZGF0YSAoZm9yIFUrMDAwMC4uVSswMGZmKSBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgKHN0
YWdlIDIpIGFycmF5CisgICAgICogYXMgYSBzaW1wbGUsIGxpbmVhciBhcnJheSBhdCBkYXRhK1VU
UklFX0RBVEFfQkxPQ0tfTEVOR1RILgorICAgICAqLworICAgIFVUUklFX09QVElPTlNfTEFUSU4x
X0lTX0xJTkVBUj0weDIwMAorfTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IDMxYTNmMDJiM2VjYThlMDUzZGQ1
MjUyNTA1MTI1MzVmZTEwYmJiM2IuLjcwOWQ0MDY0ZjYzMjZjMmVkMDRmZmQ2NGE1NTU5MmI2NTg5
Y2QzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCkBAIC0y
OSw5ICsyOSw2IEBACiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdWaWV3Lmg+CiAKLS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0dGVyIG5hbWUKLSNk
ZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkKLQog
bmFtZXNwYWNlIFdURiB7CiAKIC8vIEl0ZXJhdG9yIGluaXRpYWxpemF0aW9uCkBAIC01OSw2ICs1
NiwxMiBAQCBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIGluaXRpYWxpemVJdGVyYXRvcldpdGhS
dWxlcyhjb25zdCBjaGFyKiBicmVha1J1bGVzKQogCiAjZW5kaWYKIAorI2lmICFQTEFURk9STShN
QUMpICYmICFQTEFURk9STShJT1MpCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JG
b3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNl
bmRpZgogCiAvLyBJdGVyYXRvciB0ZXh0IHNldHRpbmcKIApAQCAtMTYyLDEzNSArMTY1LDIwIEBA
IFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmlldyBzdHJp
bmcpCiAgICAgcmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqc3RhdGljU2VudGVuY2VCcmVha0l0
ZXJhdG9yLCBzdHJpbmcpOwogfQogCisjaWYgIVBMQVRGT1JNKElPUykKK3N0YXRpYyBUZXh0QnJl
YWtJdGVyYXRvciogY3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjaygpCit7
CisgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFr
aW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQpKQorICAgICAgICByZXR1cm4gaXRlcmF0b3I7Cisg
ICAgcmV0dXJuIGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhjdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMpOworfQorI2VuZGlmCisKIFRleHRCcmVha0l0ZXJhdG9yKiBjdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogewogI2lmICFQTEFURk9STShJT1MpCi0gICAg
Ly8gVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVs
ZXMgb2YgSUNVIDU3Ci0gICAgLy8gPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9z
L2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCi0gICAgLy8g
VGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBi
ZWxvdzoKLSAgICAvLyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNw
YWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAt
ICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOwotICAgIC8vICogUmVtb3ZlZCBydWxl
cyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVuZCBjaGFyYWN0
ZXJzIChCdWcgMjQzNDIpOwotICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vy
c29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhj
ZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHBy
ZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0
YWthcmEgdm9pY2VkIG1hcmtzLgotICAgIC8vICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGlu
ZGljYXRvciBzeW1ib2xzLgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBrUnVsZXMgPQotICAgICAg
ICAiJENSICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOyIKLSAgICAg
ICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsiCi0gICAg
ICAgICIkQ29udHJvbCA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsi
Ci0gICAgICAgICIkVm9pY2VNYXJrcyA9IFtcXHVGRjlFXFx1RkY5Rl07IiAvLyBKYXBhbmVzZSBo
YWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcwotICAgICAgICAiJEV4dGVuZCAgPSBbXFxw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1xcdTBFMzAg
XFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVCMl1dOyIKLSAgICAgICAgIiRTcGFjaW5nTWFy
ayA9IFtbXFxwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOyIK
LSAgICAgICAgIiRMICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOyIK
LSAgICAgICAgIiRWICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOyIK
LSAgICAgICAgIiRUICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOyIK
LSAgICAgICAgIiRMViAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsi
Ci0gICAgICAgICIkTFZUICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1d
OyIKLSAgICAgICAgIiRIaW4wICAgID0gW1xcdTA5MDUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJp
IExldHRlciBBLC4uLixIYQotICAgICAgICAiJEhpblYgICAgPSBcXHUwOTREOyIgLy8gRGV2YW5h
Z2FyaSBTaWduIFZpcmFtYQotICAgICAgICAiJEhpbjEgICAgPSBbXFx1MDkxNS1cXHUwOTM5XTsi
IC8vIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEJlbjAgICAgPSBbXFx1
MDk4NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkQmVu
ViAgICA9IFxcdTA5Q0Q7IiAvLyBCZW5nYWxpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkQmVuMSAg
ICA9IFtcXHUwOTk1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAg
ICAgICIkUGFuMCAgICA9IFtcXHUwQTA1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkUGFuViAgICA9IFxcdTBBNEQ7IiAvLyBHdXJtdWtoaSBTaWduIFZp
cmFtYQotICAgICAgICAiJFBhbjEgICAgPSBbXFx1MEExNS1cXHUwQTM5XTsiIC8vIEd1cm11a2hp
IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRHdWowICAgID0gW1xcdTBBODUtXFx1MEFCOV07
IiAvLyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRHdWpWICAgID0gXFx1MEFD
RDsiIC8vIEd1amFyYXRpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkR3VqMSAgICA9IFtcXHUwQTk1
LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJE9yaTAg
ICAgPSBbXFx1MEIwNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBBLC4uLixIYQotICAgICAg
ICAiJE9yaVYgICAgPSBcXHUwQjREOyIgLy8gT3JpeWEgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRP
cmkxICAgID0gW1xcdTBCMTUtXFx1MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCi0g
ICAgICAgICIkVGVsMCAgICA9IFtcXHUwQzA1LVxcdTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBB
LC4uLixIYQotICAgICAgICAiJFRlbFYgICAgPSBcXHUwQzREOyIgLy8gVGVsdWd1IFNpZ24gVmly
YW1hCi0gICAgICAgICIkVGVsMSAgICA9IFtcXHUwQzE0LVxcdTBDMzldOyIgLy8gVGVsdWd1IExl
dHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRLYW4wICAgID0gW1xcdTBDODUtXFx1MENCOV07IiAv
LyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEthblYgICAgPSBcXHUwQ0NEOyIg
Ly8gS2FubmFkYSBTaWduIFZpcmFtYQotICAgICAgICAiJEthbjEgICAgPSBbXFx1MEM5NS1cXHUw
Q0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsMCAgICA9IFtc
XHUwRDA1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAi
JE1hbFYgICAgPSBcXHUwRDREOyIgLy8gTWFsYXlhbGFtIFNpZ24gVmlyYW1hCi0gICAgICAgICIk
TWFsMSAgICA9IFtcXHUwRDE1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixI
YQotICAgICAgICAiJFJJICAgICAgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIgLy8gRW1v
amkgcmVnaW9uYWwgaW5kaWNhdG9ycwotICAgICAgICAiJFpXSiAgICAgPSBcXHUyMDBEOyIgLy8g
WmVybyB3aWR0aCBqb2luZXIKLSAgICAgICAgIiRFbW9qaVZhciA9IFtcXHVGRTBGXTsiIC8vIEVt
b2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUy
NzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAw
MDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxc
VTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3
IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFG
NDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAw
MDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxc
VTAwMDFGNkI2XTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwot
ICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBE
IFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFG
M0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAw
MDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxc
VTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFB
IFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFG
NjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAw
MDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4XSA7IiAvLyBFbW9qaSB0
aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZWxzZQotICAgICAgICAiJEVtb2ppRm9y
U2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDhCXTsiIC8v
IEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2pp
Rm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjND
My1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAx
RjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUw
MDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBc
XFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0
NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAx
RjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpw
YXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAgICAgICIkRW1vamlNb2RzID0gW1xcVTAwMDFG
M0ZCLVxcVTAwMDFGM0ZGXTsiIC8vIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotICAgICAgICAiISFj
aGFpbjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIhIVJJTm9DaGFp
bjsiCi0jZW5kaWYKLSAgICAgICAgIiEhZm9yd2FyZDsiCi0gICAgICAgICIkQ1IgJExGOyIKLSAg
ICAgICAgIiRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7IgotICAgICAgICAiKCRMViB8ICRWKSAo
JFYgfCAkVCk7IgotICAgICAgICAiKCRMVlQgfCAkVCkgJFQ7IgotI2lmIEFERElUSU9OQUxfRU1P
SklfU1VQUE9SVAotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsiCi0gICAgICAgICIk
UkkgJFJJICRFeHRlbmQqOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsi
Ci0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsiCi0jZWxzZQotICAg
ICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wg
JENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkk7IgotICAgICAg
ICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4wICRIaW5WICRIaW4xOyIgLy8gRGV2
YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkQmVuMCAkQmVuViAkQmVuMTsiIC8v
IEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFBhbjAgJFBhblYgJFBhbjE7IiAv
LyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkR3VqMCAkR3VqViAkR3VqMTsi
IC8vIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRPcmkwICRPcmlWICRPcmkx
OyIgLy8gT3JpeWEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFRlbDAgJFRlbFYgJFRlbDE7
IiAvLyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEthbjAgJEthblYgJEthbjE7
IiAvLyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRNYWwwICRNYWxWICRNYWwx
OyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRaV0ogJEVtb2ppRm9y
U2VxczsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRF
bW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2Vl
biByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBG
aXR6cGF0cmljayBtb2RpZmllcgotICAgICAgICAiISFyZXZlcnNlOyIKLSAgICAgICAgIiRMRiAk
Q1I7IgotICAgICAgICAiKCRMIHwgJFYgfCAkTFYgfCAkTFZUKSAkTDsiCi0gICAgICAgICIoJFYg
fCAkVCkgKCRMViB8ICRWKTsiCi0gICAgICAgICIkVCAoJExWVCB8ICRUKTsiCi0jaWYgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCog
JFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQg
ICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250
cm9sICRDUiAkTEZdOyIKLSNlbHNlCi0gICAgICAgICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAk
Q1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0g
ICAgICAgICIkUkkgJFJJIC8gJFJJICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgot
ICAgICAgICAiJEhpbjEgJEhpblYgJEhpbjA7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dh
cmQpCi0gICAgICAgICIkQmVuMSAkQmVuViAkQmVuMDsiIC8vIEJlbmdhbGkgVmlyYW1hIChiYWNr
d2FyZCkKLSAgICAgICAgIiRQYW4xICRQYW5WICRQYW4wOyIgLy8gR3VybXVraGkgVmlyYW1hIChi
YWNrd2FyZCkKLSAgICAgICAgIiRHdWoxICRHdWpWICRHdWowOyIgLy8gR3VqYXJhdGkgVmlyYW1h
IChiYWNrd2FyZCkKLSAgICAgICAgIiRPcmkxICRPcmlWICRPcmkwOyIgLy8gR3VqYXJhdGkgVmly
YW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRUZWwxICRUZWxWICRUZWwwOyIgLy8gVGVsdWd1IFZp
cmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkS2FuMSAkS2FuViAkS2FuMDsiIC8vIEthbm5hZGEg
VmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRNYWwxICRNYWxWICRNYWwwOyIgLy8gTWFsYXlh
bGFtIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkRW1vamlGb3JTZXFzICRaV0o7IiAvLyBE
b24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlNb2RzICRF
bW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQg
ZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sg
bW9kaWZpZXIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEhc2FmZV9y
ZXZlcnNlOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIlskRW1vamlWYXIgJEVtb2pp
TW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICAg
ICAiJFJJICRSSSs7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1v
ZHNdKzsiOworICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvciA9IGNyZWF0ZUN1cnNvck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2soKTsK
ICNlbHNlCi0gICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOyIK
LSAgICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IgotICAgICAg
ICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IjsKLSNlbmRpZgot
ICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
ciA9IGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhrUnVsZXMpOwotI2Vsc2UgLy8gUExBVEZP
Uk0oSU9TKQogICAgIC8vIFVzZSB0aGUgc3BlY2lhbCBUaGFpIGNoYXJhY3RlciBicmVhayBpdGVy
YXRvciBmb3IgYWxsIGxvY2FsZXMKICAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRp
Y0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3IoVUJSS19DSEFSQUNU
RVIsICJ0aCIpOwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCkBAIC0zMTcsNDQyICsyMDUsMjAg
QEAgdm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJh
dG9yKQogICAgIExpbmVCcmVha0l0ZXJhdG9yUG9vbDo6c2hhcmVkUG9vbCgpLnB1dChpdGVyYXRv
cik7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFByb2xvZ3VlID0KLSAgICAiISFjaGFp
bjsiCi0gICAgIiEhTEJDTU5vQ2hhaW47IgotICAgICIhIWxvb2tBaGVhZEhhcmRCcmVhazsiOwot
Ci1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0JlZm9yZSA9Ci0gICAgLy8gZXhw
bGljaXRseSBlbnVtZXJhdGUgJENKIHNpbmNlIElDVSB2ZXJzaW9ucyBwcmlvciB0byA0OSBkb24n
dCBzdXBwb3J0IDpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoKLSAgICAi
JENKID0gWyIKLSNpZiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZF
UlNJT05fTUlOT1JfTlVNID49IDkpCi0gICAgIjpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5l
c2VfU3RhcnRlcjoiCi0jZWxzZQotICAgICJcXHUzMDQxXFx1MzA0M1xcdTMwNDVcXHUzMDQ3XFx1
MzA0OVxcdTMwNjNcXHUzMDgzXFx1MzA4NVxcdTMwODdcXHUzMDhFXFx1MzA5NVxcdTMwOTZcXHUz
MEExXFx1MzBBM1xcdTMwQTVcXHUzMEE3IgotICAgICJcXHUzMEE5XFx1MzBDM1xcdTMwRTNcXHUz
MEU1XFx1MzBFN1xcdTMwRUVcXHUzMEY1XFx1MzBGNlxcdTMwRkMiCi0gICAgIlxcdTMxRjBcXHUz
MUYxXFx1MzFGMlxcdTMxRjNcXHUzMUY0XFx1MzFGNVxcdTMxRjZcXHUzMUY3XFx1MzFGOFxcdTMx
RjlcXHUzMUZBXFx1MzFGQlxcdTMxRkNcXHUzMUZEXFx1MzFGRVxcdTMxRkYiCi0gICAgIlxcdUZG
NjdcXHVGRjY4XFx1RkY2OVxcdUZGNkFcXHVGRjZCXFx1RkY2Q1xcdUZGNkRcXHVGRjZFXFx1RkY2
RlxcdUZGNzAiCi0jZW5kaWYKLSAgICAiXTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRB
c3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAx
M107IgotICAgICIkRVhfU1VCID0gW1xcdTAwMjFcXHUwMDNGXFx1RkYwMVxcdUZGMUZdOyIKLSAg
ICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAg
ICIkSVNfU1VCID0gW1xcdTAwM0FcXHUwMDNCXTsiCi0gICAgIiROU19TVUIgPSBbXFx1MjAzQ1xc
dTIwNDdcXHUyMDQ4XFx1MjA0OVxcdTMwMDVcXHUzMDFDXFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1
MzBBMFxcdTMwRkJcXHUzMEZEXFx1MzBGRVxcdUZGMUFcXHVGRjFCXFx1RkY2NV07IgotICAgICIk
UE9fU1VCID0gW1xcdTAwMjVcXHUwMEEyXFx1MDBCMFxcdTIwMzBcXHUyMDMyXFx1MjAzM1xcdTIx
MDNcXHVGRjA1XFx1RkZFMF07IgotICAgICIkUFJfU1VCID0gW1xcdTAwMjRcXHUwMEEzXFx1MDBB
NVxcdTIwQUNcXHUyMTE2XFx1RkYwNFxcdUZGRTFcXHVGRkU1XTsiCi0gICAgIiRJRF9BREQgPSBb
JENKICRCQV9TVUIgJEVYX1NVQiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9T
VUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIk
RVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIw
MjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAw
NVxcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwRkRcXHUzMEZFXTsiCi0gICAgIiRQT19TVUIgPSAn
JzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKICRJTl9TVUIgJE5T
X1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0
QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUy
MDEzXTsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJ
RF9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAx
Q1xcdTMwQTBdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAg
ICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsi
OwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNK
SyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9T
VUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAg
IiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsi
Ci0gICAgIiRJRF9BREQgPSBbJENKXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMg
Y29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSyA9Ci0gICAgIiRCQV9T
VUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAg
IiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsi
Ci0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQg
PSAnJzsiCi0gICAgIiROU19BREQgPSBbJENKXTsiOwotCi0jZGVmaW5lIHVheDE0QXNzaWdubWVu
dHNDdXN0b21TdHJpY3ROb25DSksgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pL
Ci0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Q0pLICAgICAgICB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21E
ZWZhdWx0Tm9uQ0pLICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLCi0KLXN0
YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIgPQotICAgICIkQUkgPSBbOkxp
bmVCcmVhayA9IEFtYmlndW91czpdOyIKLSAgICAiJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJl
dGljOl07IgotICAgICIkQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NV
Ql07IgotICAgICIkQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOyIKLSAgICAiJEJL
ID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsiCi0gICAgIiRCMiA9IFs6TGluZUJy
ZWFrID0gQnJlYWtfQm90aDpdOyIKLSAgICAiJENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50
X0JyZWFrOl07IgotICAgICIkQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07
IgotICAgICIkQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07IgotICAgICIkQ1Ag
PSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07IgotICAgICIkQ1IgPSBbOkxpbmVC
cmVhayA9IENhcnJpYWdlX1JldHVybjpdOyIKLSAgICAiJEVYID0gW1s6TGluZUJyZWFrID0gRXhj
bGFtYXRpb246XSAtICRFWF9TVUJdOyIKLSAgICAiJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07
IgotI2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9N
SU5PUl9OVU0gPj0gOSkKLSAgICAiJEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdfTGV0dGVyOl07
IgotI2Vsc2UKLSAgICAiJEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsiCi0jZW5kaWYK
LSAgICAiJEhZID0gWzpMaW5lQnJlYWsgPSBIeXBoZW46XTsiCi0gICAgIiRIMiA9IFs6TGluZUJy
ZWFrID0gSDI6XTsiCi0gICAgIiRIMyA9IFs6TGluZUJyZWFrID0gSDM6XTsiCi0gICAgIiRJRCA9
IFtbW1s6TGluZUJyZWFrID0gSWRlb2dyYXBoaWM6XSAtICRDSl0gJElEX0FERF0gLSAkSURfU1VC
XTsiCi0gICAgIiRJTiA9IFtbOkxpbmVCcmVhayA9IEluc2VwYXJhYmxlOl0gLSAkSU5fU1VCXTsi
Ci0gICAgIiRJUyA9IFtbOkxpbmVCcmVhayA9IEluZml4X051bWVyaWM6XSAtICRJU19TVUJdOyIK
LSAgICAiJEpMID0gWzpMaW5lQnJlYWsgPSBKTDpdOyIKLSAgICAiJEpWID0gWzpMaW5lQnJlYWsg
PSBKVjpdOyIKLSAgICAiJEpUID0gWzpMaW5lQnJlYWsgPSBKVDpdOyIKLSAgICAiJExGID0gWzpM
aW5lQnJlYWsgPSBMaW5lX0ZlZWQ6XTsiCi0gICAgIiROTCA9IFs6TGluZUJyZWFrID0gTmV4dF9M
aW5lOl07IgotICAgICIkTlMgPSBbW1tbOkxpbmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRDSl0g
JE5TX0FERF0gLSAkTlNfU1VCXTsiCi0gICAgIiROVSA9IFs6TGluZUJyZWFrID0gTnVtZXJpYzpd
OyIKLSAgICAiJE9QID0gWzpMaW5lQnJlYWsgPSBPcGVuX1B1bmN0dWF0aW9uOl07IgotICAgICIk
UE8gPSBbWzpMaW5lQnJlYWsgPSBQb3N0Zml4X051bWVyaWM6XSAtICRQT19TVUJdOyIKLSAgICAi
JFBSID0gW1s6TGluZUJyZWFrID0gUHJlZml4X051bWVyaWM6XSAtICRQUl9TVUJdOyIKLSAgICAi
JFFVID0gWzpMaW5lQnJlYWsgPSBRdW90YXRpb246XTsiCi0gICAgIiRSSSA9IFtcXFUwMDAxRjFF
Ni1cXFUwMDAxRjFGRl07IgotICAgICIkU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4
dDpdOyIKLSAgICAiJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsiCi0gICAgIiRTUCA9
IFs6TGluZUJyZWFrID0gU3BhY2U6XTsiCi0gICAgIiRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtf
U3ltYm9sczpdOyIKLSAgICAiJFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOyIKLSAg
ICAiJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3duOl07IgotICAgICIkWlcgPSBbOkxpbmVCcmVh
ayA9IFpXU3BhY2U6XTsiCi0gICAgIiRaV0ogPSBcXHUyMDBEOyIKLSAgICAiJEVtb2ppVmFyID0g
XFx1RkUwRjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRFbW9qaUZvclNl
cXMgPSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAx
RjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUw
MDAxRjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBc
XFUwMDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4
MiBcXFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAx
RjVFOCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUw
MDAxRjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNl07IiAvLyBFbW9qaSB0
aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtc
XHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxc
VTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQz
IFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFG
NDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAw
MDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxc
VTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRC
LVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFG
NkMwIFxcVTAwMDFGOTE4XSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZp
ZXJzCi0jZWxzZQotICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxV
MDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxc
dTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAx
RjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUw
MDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBc
XFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4
NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAx
RjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUw
MDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2Vu
ZGlmCi0gICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIKLSAgICAi
JGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJEFM
UGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsiCi0gICAgIiRBTGNtID0gJEFMUGx1cyAkQ00q
OyIKLSAgICAiJEJBY20gPSAkQkEgJENNKjsiCi0gICAgIiRCQmNtID0gJEJCICRDTSo7IgotICAg
ICIkQjJjbSA9ICRCMiAkQ00qOyIKLSAgICAiJENMY20gPSAkQ0wgJENNKjsiCi0gICAgIiRDUGNt
ID0gJENQICRDTSo7IgotICAgICIkRVhjbSA9ICRFWCAkQ00qOyIKLSAgICAiJEdMY20gPSAkR0wg
JENNKjsiCi0gICAgIiRITGNtID0gJEhMICRDTSo7IgotICAgICIkSFljbSA9ICRIWSAkQ00qOyIK
LSAgICAiJEgyY20gPSAkSDIgJENNKjsiCi0gICAgIiRIM2NtID0gJEgzICRDTSo7IgotICAgICIk
SURjbSA9ICRJRCAkQ00qOyIKLSAgICAiJElOY20gPSAkSU4gJENNKjsiCi0gICAgIiRJU2NtID0g
JElTICRDTSo7IgotICAgICIkSkxjbSA9ICRKTCAkQ00qOyIKLSAgICAiJEpWY20gPSAkSlYgJENN
KjsiCi0gICAgIiRKVGNtID0gJEpUICRDTSo7IgotICAgICIkTlNjbSA9ICROUyAkQ00qOyIKLSAg
ICAiJE5VY20gPSAkTlUgJENNKjsiCi0gICAgIiRPUGNtID0gJE9QICRDTSo7IgotICAgICIkUE9j
bSA9ICRQTyAkQ00qOyIKLSAgICAiJFBSY20gPSAkUFIgJENNKjsiCi0gICAgIiRRVWNtID0gJFFV
ICRDTSo7IgotICAgICIkUkljbSA9ICRSSSAkQ00qOyIKLSAgICAiJFNZY20gPSAkU1kgJENNKjsi
Ci0gICAgIiRXSmNtID0gJFdKICRDTSo7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0Rm9y
d2FyZCA9Ci0gICAgIiEhZm9yd2FyZDsiCi0gICAgIiRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRM
RiAkTkwgJFpXICRDTV07IgotICAgICIkQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5MICRa
VyAkQ01dOyIKLSAgICAiJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQ
XTsiCi0gICAgIiRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRH
TCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107IgotICAgICIkQUxfRk9MTE9X
ID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsiCi0gICAgIiRMQjRCcmVha3MgPSBb
JEJLICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICRO
TF07IgotICAgICIkTEI4QnJlYWtzID0gWyRMQjRCcmVha3MgJFpXXTsiCi0gICAgIiRMQjhOb25C
cmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOyIKLSAgICAiJExCMThOb25CcmVha3Mg
PSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsiCi0gICAgIiRMQjE4QnJlYWtzID0gWyRMQjhCcmVh
a3MgJFNQXTsiCi0gICAgIiRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsi
Ci0gICAgIiRBTFBsdXMgJENNKzsiCi0gICAgIiRCQSAkQ00rOyIKLSAgICAiJEJCICRDTSs7Igot
ICAgICIkQjIgJENNKzsiCi0gICAgIiRDTCAkQ00rOyIKLSAgICAiJENQICRDTSs7IgotICAgICIk
RVggJENNKzsiCi0gICAgIiRHTCAkQ00rOyIKLSAgICAiJEhMICRDTSs7IgotICAgICIkSFkgJENN
KzsiCi0gICAgIiRIMiAkQ00rOyIKLSAgICAiJEgzICRDTSs7IgotICAgICIkSUQgJENNKzsiCi0g
ICAgIiRJTiAkQ00rOyIKLSAgICAiJElTICRDTSs7IgotICAgICIkSkwgJENNKzsiCi0gICAgIiRK
ViAkQ00rOyIKLSAgICAiJEpUICRDTSs7IgotICAgICIkTlMgJENNKzsiCi0gICAgIiROVSAkQ00r
OyIKLSAgICAiJE9QICRDTSs7IgotICAgICIkUE8gJENNKzsiCi0gICAgIiRQUiAkQ00rOyIKLSAg
ICAiJFFVICRDTSs7IgotICAgICIkUkkgJENNKzsiCi0gICAgIiRTWSAkQ00rOyIKLSAgICAiJFdK
ICRDTSs7IgotICAgICIkQ1IgJExGIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcz8gJExCNEJy
ZWFrcyB7MTAwfTsiCi0gICAgIiRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAi
JENNKyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcyBbJFNQICRaV107Igot
ICAgICIkQ0FOX0NNICRDTSogWyRTUCAkWlddOyIKLSAgICAiJENNKyBbJFNQICRaV107IgotICAg
ICIkRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFz
OyIKLSAgICAiJENBTl9DTSAkQ00rOyIKLSAgICAiJENNKzsiCi0gICAgIiRDQU5fQ00gJENNKiAk
V0pjbTsiCi0gICAgIiRMQjhOb25CcmVha3MgJFdKY207IgotICAgICIkQ00rICRXSmNtOyIKLSAg
ICAiJFdKY20gJENBTlRfQ007IgotICAgICIkV0pjbSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xj
bSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FOVF9DTTsiCi0gICAgIltbJExCOE5vbkJy
ZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOyIKLSAgICAiJENNKyBHTGNtOyIKLSAg
ICAiJExCOE5vbkJyZWFrcyAkQ0w7IgotICAgICIkQ0FOX0NNICRDTSogJENMOyIKLSAgICAiJENN
KyAkQ0w7IgotICAgICIkTEI4Tm9uQnJlYWtzICRDUDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ1A7
IgotICAgICIkQ00rICRDUDsiCi0gICAgIiRMQjhOb25CcmVha3MgJEVYOyIKLSAgICAiJENBTl9D
TSAkQ00qICRFWDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkSVM7Igot
ICAgICIkQ0FOX0NNICRDTSogJElTOyIKLSAgICAiJENNKyAkSVM7IgotICAgICIkTEI4Tm9uQnJl
YWtzICRTWTsiCi0gICAgIiRDQU5fQ00gJENNKiAkU1k7IgotICAgICIkQ00rICRTWTsiCi0gICAg
IiRPUGNtICRTUCogJENBTl9DTSAkQ00qOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOVF9DTTsiCi0g
ICAgIiRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsiCi0gICAgIiRRVWNtICRTUCogJE9QY207
IgotICAgICIoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsiCi0gICAgIiRCMmNtICRTUCogJEIy
Y207IgotICAgICIkTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOyIKLSAgICAiJENNKyAkUVVjbTsi
Ci0gICAgIiRRVWNtIC4/OyIKLSAgICAiJFFVY20gJExCMThOb25CcmVha3MgJENNKjsiCi0gICAg
IiRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7ICIKLSAgICAiJEJC
Y20gW14kQ0JdOyIKLSAgICAiJEJCY20gJExCMjBOb25CcmVha3MgJENNKjsiCi0gICAgIiRITGNt
ICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OyIKLSAgICAiJFNZY20gJEhMY207IgotICAgICIoJEFM
Y20gfCAkSExjbSkgJElOY207IgotICAgICIkQ00rICRJTmNtOyIKLSAgICAiJEVYY20gJElOY207
IgotICAgICIkSURjbSAkSU5jbTsiCi0gICAgIiRJTmNtICRJTmNtOyIKLSAgICAiJE5VY20gJElO
Y207IgotICAgICIkSURjbSAkUE9jbTsiCi0gICAgIiRBTGNtICROVWNtOyIKLSAgICAiJEhMY20g
JE5VY207IgotICAgICIkQ00rICROVWNtOyIKLSAgICAiJE5VY20gJEFMY207IgotICAgICIkTlVj
bSAkSExjbTsiCi0gICAgIiRQUmNtICRJRGNtOyIKLSAgICAiJFBSY20gKCRBTGNtIHwgJEhMY20p
OyIKLSAgICAiJFBPY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiKCRQUmNtIHwgJFBPY20pPyAo
JE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAk
Q1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87IgotICAgICIkSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRI
MmNtIHwgJEgzY20pOyIKLSAgICAiKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNtKTsiCi0g
ICAgIigkSlRjbSB8ICRIM2NtKSAkSlRjbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20g
fCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAk
SDJjbSB8ICRIM2NtKSAkUE9jbTsiCi0gICAgIiRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20g
fCAkSDJjbSB8ICRIM2NtKTsiCi0gICAgIigkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7
IgotICAgICIkQ00rICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRJU2NtICgkQUxjbSB8ICRITGNt
KTsiCi0gICAgIigkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNtOyIKLSAgICAiJENNKyAkT1Bj
bTsiCi0gICAgIiRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOyIKLSNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKLSAgICAiJFJJY20gJFJJY207IgotI2VuZGlmCi0gICAgIiRFbW9qaUZv
ck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgx
NFJldmVyc2UgPQotICAgICIhIXJldmVyc2U7IgotICAgICIkQ00rICRBTFBsdXM7IgotICAgICIk
Q00rICRCQTsiCi0gICAgIiRDTSsgJEJCOyIKLSAgICAiJENNKyAkQjI7IgotICAgICIkQ00rICRD
TDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkQ00rICRHTDsiCi0g
ICAgIiRDTSsgJEhMOyIKLSAgICAiJENNKyAkSFk7IgotICAgICIkQ00rICRIMjsiCi0gICAgIiRD
TSsgJEgzOyIKLSAgICAiJENNKyAkSUQ7IgotICAgICIkQ00rICRJTjsiCi0gICAgIiRDTSsgJElT
OyIKLSAgICAiJENNKyAkSkw7IgotICAgICIkQ00rICRKVjsiCi0gICAgIiRDTSsgJEpUOyIKLSAg
ICAiJENNKyAkTlM7IgotICAgICIkQ00rICROVTsiCi0gICAgIiRDTSsgJE9QOyIKLSAgICAiJENN
KyAkUE87IgotICAgICIkQ00rICRQUjsiCi0gICAgIiRDTSsgJFFVOyIKLSNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKyAkUkk7IgotI2VuZGlmCi0gICAgIiRDTSsgJFNZOyIK
LSAgICAiJENNKyAkV0o7IgotICAgICIkQ00rOyIKLSAgICAiJEFMX0ZPTExPVyAkQ00rIC8gKFsk
QksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFte
JE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsiCi0gICAgIlskUFJdIC8gJENNKyBbJEJLICRD
UiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOyIKLSAgICAiJExCNEJyZWFrcyBbJExCNE5vbkJyZWFr
cy0kQ01dOyIKLSAgICAiJExCNEJyZWFrcyAkQ00rICRDQU5fQ007IgotICAgICIkTEYgJENSOyIK
LSAgICAiWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJFNQICRaV10gJENN
KyAkQ0FOX0NNOyIKLSAgICAiJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZh
cj8gJEVtb2ppRm9yU2VxczsiCi0gICAgIiRDTSsgJENBTl9DTTsiCi0gICAgIiRDTSogJFdKICRD
TSogJENBTl9DTTsiCi0gICAgIiRDTSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIk
Q0FOVF9DTSAkQ00qICRXSjsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRXSjsiCi0gICAgIiRD
TSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOyIKLSAgICAiJENB
TlRfQ00gJENNKiAkR0w7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkR0w7IgotICAgICIkQ0wg
JENNKyAkQ0FOX0NNOyIKLSAgICAiJENQICRDTSsgJENBTl9DTTsiCi0gICAgIiRFWCAkQ00rICRD
QU5fQ007IgotICAgICIkSVMgJENNKyAkQ0FOX0NNOyIKLSAgICAiJFNZICRDTSsgJENBTl9DTTsi
Ci0gICAgIiRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENQIFskTEI4Tm9uQnJlYWtz
LSRDTV07IgotICAgICIkRVggWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRJUyBbJExCOE5v
bkJyZWFrcy0kQ01dOyIKLSAgICAiJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJENM
ICRDUCAkRVggJElTICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAiCi0gICAgIiRDTSogJENBTl9D
TSAkU1AqICRDTSogJE9QOyIKLSAgICAiJENBTlRfQ00gJFNQKiAkQ00qICRPUDsiCi0gICAgIiRB
TF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAkT1A7IgotICAgICIkQUxfRk9MTE9XX05PQ00g
JENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAk
Q00qICRPUDsiCi0gICAgIiRTWSAkQ00gJFNQKyAkT1A7IgotICAgICIkQ00qICRPUCAkU1AqICRD
TSogJFFVOyIKLSAgICAiJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJENN
KiAkQjIgJFNQKiAkQ00qICRCMjsiCi0gICAgIiRDTSogJFFVICRDTSogJENBTl9DTTsiCi0gICAg
IiRDTSogJFFVICRMQjE4Tm9uQnJlYWtzOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFFVOyIK
LSAgICAiJENBTlRfQ00gJENNKiAkUVU7IgotICAgICIkQ00qICgkQkEgfCAkSFkgfCAkTlMpICRD
TSogWyRMQjIwTm9uQnJlYWtzLSRDTV07IgotICAgICIkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01d
ICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogKCRI
WSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIkQ00qICRITCAkQ00qICRTWTsiCi0gICAgIiRDTSog
JElOICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAkSU4gJENNKiAkRVg7IgotICAg
ICIkQ00qICRJTiAkQ00qICRJRDsiCi0gICAgIiRDTSogJElOICRDTSogJElOOyIKLSAgICAiJENN
KiAkSU4gJENNKiAkTlU7IgotICAgICIkQ00qICRQTyAkQ00qICRJRDsiCi0gICAgIiRDTSogJE5V
ICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAk
TlU7IgotICAgICIkQ00qICRJRCAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwp
ICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87IgotICAgICIo
JENNKiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8
ICRTWSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87
IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOyIKLSAgICAiJENN
KiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOyIKLSAgICAiJENNKiAkSlQgJENNKiAoJEgz
IHwgJEpUKTsiCi0gICAgIiRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRK
TCk7IgotICAgICIkQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIK
LSAgICAiJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsiCi0gICAg
IiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAo
JEFMUGx1cyB8ICRITCkgJENNKiAkSVM7IgotICAgICIkQ00qICRPUCAkQ00qICgkQUxQbHVzIHwg
JEhMIHwgJE5VKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOyIK
LSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKiAkUkkgJENNKiAkUkk7Igot
I2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyI7Ci0KLXN0
YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVGb3J3YXJkID0KLSAgICAiISFzYWZlX2ZvcndhcmQ7
IgotICAgICJbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9u
YXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07
IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciog
dWF4MTRTYWZlUmV2ZXJzZSA9Ci0gICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAiJENNKyBbXiRD
TSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07IgotICAgICIkQ00rICRTUCAvIC47IgotICAgICIk
U1ArICRDTSogJE9QOyIKLSAgICAiJFNQKyAkQ00qICRRVTsiCi0gICAgIiRTUCsgJENNKiAoJENM
IHwgJENQKTsiCi0gICAgIiRTUCsgJENNKiAkQjI7IgotICAgICIkQ00qICgkSFkgfCAkQkEpICRD
TSogJEhMOyIKLSAgICAiKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsiCi0gICAgIigkQ0wg
fCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlv
bmFyeTsiOwotCiBzdGF0aWMgU3RyaW5nIG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKExpbmVC
cmVha0l0ZXJhdG9yTW9kZSBtb2RlLCBib29sIGlzQ0pLKQogewotICAgIFN0cmluZ0J1aWxkZXIg
cnVsZXNCdWlsZGVyOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRQcm9sb2d1ZSk7Ci0g
ICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1lbnRzQmVmb3JlKTsKICAgICBzd2l0
Y2ggKG1vZGUpIHsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0OgotICAgICAg
ICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1
bHRDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNKSyk7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVs
ZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJl
YWtJdGVyYXRvck1vZGVVQVgxNExvb3NlOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlz
Q0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLIDogdWF4MTRBc3NpZ25tZW50c0N1
c3RvbUxvb3NlTm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/
IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgx
NE5vcm1hbDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdu
bWVudHNDdXN0b21Ob3JtYWxDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pL
KTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25D
SktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0U3RyaWN0OgotICAg
ICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0
cmljdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSkspOwotICAgICAgICBi
cmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKS1J1bGVzOwogICAg
IH0KLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNBZnRlcik7Ci0gICAg
cnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEZvcndhcmQpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBl
bmQodWF4MTRSZXZlcnNlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2FmZUZvcndh
cmQpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZlUmV2ZXJzZSk7Ci0gICAgcmV0
dXJuIHJ1bGVzQnVpbGRlci50b1N0cmluZygpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiAiIjsKIH0KIAogLy8gUmVjb2duaXplIEJDUDQ3IGNvbXBsaWFudCBwcmltYXJ5
IGxhbmd1YWdlIHZhbHVlcyBvZiAnemgnLCAnamEnLCAna28nCkBAIC03ODYsOSArMjUyLDI5IEBA
IFRleHRCcmVha0l0ZXJhdG9yKiBvcGVuTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgQXRvbWljU3Ry
aW5nJiBsb2NhbGUsIExpbmVCcmVha0l0CiAgICAgaWYgKG1vZGUgPT0gTGluZUJyZWFrSXRlcmF0
b3JNb2RlVUFYMTQpCiAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuKFVCUktfTElORSwgbG9j
YWxlSXNFbXB0eSA/IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpIDogbG9jYWxlLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksIDAsIDAsICZvcGVuU3RhdHVzKTsKICAgICBlbHNlIHsKLSAgICAgICAg
VVBhcnNlRXJyb3IgcGFyc2VTdGF0dXM7Ci0gICAgICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRl
cmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7Ci0gICAgICAgIHVicmtJdGVyID0gdWJya19v
cGVuUnVsZXMoU3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHJ1bGVz
Lmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVzKTsKKyAgICAgICAgQnJl
YWtpbmdSdWxlU2V0IHJ1bGVTZXQ7CisgICAgICAgIHN3aXRjaCAobW9kZSkgeworICAgICAgICBj
YXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlz
Q0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTRO
b25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRv
ck1vZGVVQVgxNExvb3NlOgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdS
dWxlU2V0OjpVQVgxNExvb3NlQ0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pL
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2Rl
VUFYMTROb3JtYWw6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVT
ZXQ6OlVBWDE0Tm9ybWFsQ0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVB
WDE0U3RyaWN0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0
OjpVQVgxNFN0cmljdENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3ROb25DSks7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhdXRvKiBpdGVyYXRv
ciA9IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChydWxlU2V0KSkKKyAgICAgICAgICAgIHVicmtJ
dGVyID0gcmVpbnRlcnByZXRfY2FzdDxVQnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yKTsKKyAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKKyAgICAgICAg
ICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7
CisgICAgICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlblJ1bGVzKFN0cmluZ1ZpZXcocnVsZXMp
LnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBydWxlcy5sZW5ndGgoKSwgMCwgMCwgJnBhcnNlU3Rh
dHVzLCAmb3BlblN0YXR1cyk7CisgICAgICAgIH0KICAgICB9CiAgICAgLy8gbG9jYWxlIGNvbWVz
IGZyb20gYSB3ZWIgcGFnZSBhbmQgaXQgY2FuIGJlIGludmFsaWQsIGxlYWRpbmcgSUNVCiAgICAg
Ly8gdG8gZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgbG9j
YWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5o
IGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCmluZGV4IGQ5MDMyMTVh
ZTQxMzdlNGMzYTllYTM1YjNkMDI1YmY1MmU0NTE4ZWMuLmQ4MjFiMzE2NzkxOWI0NDI5ZmE1NGMx
ZTViM2Y0NjdjNTIwNjEzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJy
ZWFrSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9y
LmgKQEAgLTM4LDYgKzM4LDMwIEBAIGVudW0gTGluZUJyZWFrSXRlcmF0b3JNb2RlIHsKICAgICBM
aW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNFN0cmljdCwKIH07CiAKK2VudW0gY2xhc3MgQnJlYWtp
bmdSdWxlU2V0IHsKKyAgICBDdXJzb3JNb3ZlbWVudCwKKyAgICBVQVgxNENKSywKKyAgICBVQVgx
NE5vbkNKSywKKyAgICBVQVgxNExvb3NlQ0pLLAorICAgIFVBWDE0TG9vc2VOb25DSkssCisgICAg
VUFYMTROb3JtYWxDSkssCisgICAgVUFYMTROb3JtYWxOb25DSkssCisgICAgVUFYMTRTdHJpY3RD
SkssCisgICAgVUFYMTRTdHJpY3ROb25DSksKK307CisKK2V4dGVybiBjb25zdCBjaGFyKiBjdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRl
cmF0b3JVQVgxNENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3RDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CisKK1RleHRCcmVha0l0ZXJhdG9yKiBjcmVh
dGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0KTsKKwogLy8gVGhpcyBpcyBzaW1p
bGFyIHRvIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBpbiBtb3N0IGNhc2VzLCBidXQgaXMgc3Vi
amVjdCB0bwogLy8gcGxhdGZvcm0gVUkgY29udmVudGlvbnMuIE9uZSBub3RhYmxlIGV4YW1wbGUg
d2hlcmUgdGhpcyBjYW4gYmUgZGlmZmVyZW50CiAvLyBmcm9tIGNoYXJhY3RlciBicmVhayBpdGVy
YXRvciBpcyBUaGFpIHByZXBlbmQgY2hhcmFjdGVycywgc2VlIGJ1ZyAyNDM0Mi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VN
YWMubW0gYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFs
SUNVTWFjLm1tCmluZGV4IGJlZjVkYWE2NDI4ODgyMWUyMGYyNjI4YzY4NTVlZThlODhhMzg5MmMu
LjJhZWNmMDllODI1NDRjNjZiN2QxYzFlNWFhYWM2NGY1ZmZmMzAyYmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0K
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElD
VU1hYy5tbQpAQCAtMjEsMTIgKzIxLDEyMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKIAorI2luY2x1ZGUgIlRleHRCcmVh
a0l0ZXJhdG9yLmgiCisKKyNpZiBkZWZpbmVkKFVfU0hPV19DUExVU1BMVVNfQVBJKQorI3VuZGVm
IFVfU0hPV19DUExVU1BMVVNfQVBJCisjZW5kaWYKKyNkZWZpbmUgVV9TSE9XX0NQTFVTUExVU19B
UEkgMQorCisjaW5jbHVkZSA8dW5pY29kZS9yYmJpLmg+CisjaW5jbHVkZSA8dW5pY29kZS91ZGF0
YS5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9PcHRp
b25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAorQGludGVyZmFjZSBXVEZCdW5k
bGVGaW5kZXIgOiBOU09iamVjdAorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV1RGQnVuZGxlRmlu
ZGVyCitAZW5kCisKIG5hbWVzcGFjZSBXVEYgewogCiBzdGF0aWMgY29uc3QgaW50IG1heExvY2Fs
ZVN0cmluZ0xlbmd0aCA9IDMyOwogCitzdHJ1Y3QgUnVsZUNhY2hlIHsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4gaXRlcmF0b3I7CisgICAgYm9vbCBmYWlsZWQg
eyBmYWxzZSB9OworfTsKKworVGV4dEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVs
ZVNldChCcmVha2luZ1J1bGVTZXQgcnVsZVNldCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8UnVsZUNhY2hlPiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0Q0pLSXRlcmF0b3I7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTROb25DSktJdGVyYXRvcjsK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNExvb3Nl
Q0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJy
ZWFrVUFYMTRMb29zZU5vbkNKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxS
dWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0Tm9ybWFsQ0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTROb3JtYWxOb25DSktJdGVyYXRv
cjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNFN0
cmljdENKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxp
bmVCcmVha1VBWDE0U3RyaWN0Tm9uQ0pLSXRlcmF0b3I7CisKKyAgICBOU1N0cmluZyAqZmlsZU5h
bWVCYXNlOworICAgIFJ1bGVDYWNoZSogY2FjaGUgPSBudWxscHRyOworCisgICAgc3dpdGNoIChy
dWxlU2V0KSB7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50OgorICAg
ICAgICBmaWxlTmFtZUJhc2UgPSBAIkN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyI7CisgICAg
ICAgIGNhY2hlID0gJmN1cnNvck1vdmVtZW50SXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENKSzoKKyAgICAgICAgZmlsZU5hbWVC
YXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGlu
ZUJyZWFrVUFYMTRDSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBC
cmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtV
QVgxNE5vbkNKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFr
aW5nUnVsZVNldDo6VUFYMTRMb29zZUNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtV
QVgxNExvb3NlQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJl
YWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBA
IkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSyI7CisgICAgICAgIGNhY2hlID0gJmxp
bmVCcmVha1VBWDE0TG9vc2VOb25DSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLOgorICAgICAgICBmaWxlTmFt
ZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksiOworICAgICAgICBjYWNo
ZSA9ICZsaW5lQnJlYWtVQVgxNE5vcm1hbENKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks6CisgICAgICAg
IGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSyI7Cisg
ICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0Tm9ybWFsTm9uQ0pLSXRlcmF0b3IuZ2V0KCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdENK
SzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Q0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTRTdHJpY3RDSktJdGVyYXRvci5n
ZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3Ry
aWN0Tm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3ROb25DSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNFN0cmljdE5v
bkNKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBBU1NFUlQo
Y2FjaGUpOworCisgICAgaWYgKGNhY2hlLT5mYWlsZWQpCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgaWYgKCFjYWNoZS0+aXRlcmF0b3IpIHsKKyAgICAgICAgTlNCdW5kbGUgKmJ1bmRs
ZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV1RGQnVuZGxlRmluZGVyIGNsYXNzXV07Cisg
ICAgICAgIE5TU3RyaW5nICpwYXRoID0gW2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6ZmlsZU5hbWVC
YXNlIG9mVHlwZTpAImJyayIgaW5EaXJlY3Rvcnk6QCJCcmVha2luZ1J1bGVzIl07CisgICAgICAg
IGlmICghcGF0aCkgeworICAgICAgICAgICAgY2FjaGUtPmZhaWxlZCA9IHRydWU7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIE5TU3RyaW5nICpkaXJl
Y3RvcnkgPSBbcGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOworICAgICAg
ICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAgICAgICAgTG9jYWxVRGF0
YU1lbW9yeVBvaW50ZXIgZGF0YSh1ZGF0YV9vcGVuKFtkaXJlY3RvcnkgVVRGOFN0cmluZ10sICJi
cmsiLCBbZmlsZU5hbWVCYXNlIFVURjhTdHJpbmddLCAmZXJyb3JDb2RlKSk7CisgICAgICAgIGlm
IChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKSB7CisgICAgICAgICAgICBjYWNoZS0+ZmFpbGVk
ID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAg
ICAgY2FjaGUtPml0ZXJhdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yPihkYXRhLm9ycGhhbigpLCBlcnJvckNvZGUpOworICAgICAgICBpZiAoZXJyb3JDb2RlICE9
IFVfWkVST19FUlJPUikgeworICAgICAgICAgICAgY2FjaGUtPmZhaWxlZCA9IHRydWU7CisgICAg
ICAgICAgICBjYWNoZS0+aXRlcmF0b3IgPSBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxU
ZXh0QnJlYWtJdGVyYXRvcio+KHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJhc2VkQnJlYWtJdGVyYXRv
cj4oKmNhY2hlLT5pdGVyYXRvcikucmVsZWFzZSgpKTsKK30KKwogc3RhdGljIGlubGluZSBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IHRleHRCcmVha0xvY2FsZVByZWZlcmVuY2UoKQogewogICAgIFJl
dGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gbG9jYWxlID0gYWRvcHRDRihDRlByZWZlcmVuY2Vz
Q29weVZhbHVlKENGU1RSKCJBcHBsZVRleHRCcmVha0xvY2FsZSIpLApkaWZmIC0tZ2l0IGEvU291
cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlCmlu
ZGV4IDI5YTA5NjkwMzhmYWE3NDRlMWE4YzU4ZjM1NmFkMDczZjAwNTI1YmQuLjgxZjU0YTU2YWQ2
OTUzZDdiMWUyMGM4OGZhODViYmRkZDFmMDdlOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9X
ZWJLaXRGUy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKQEAgLTI0LDYg
KzI0LDcgQEAgaWYgKE5PVCBUT09MU19ESVIpCiBlbmRpZiAoKQogCiBzZXQoREVSSVZFRF9TT1VS
Q0VTX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcyIpCitzZXQoREVSSVZF
RF9TT1VSQ0VTX1dURl9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RG
IikKIHNldChERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSICIke0NNQUtFX0JJTkFS
WV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlIikKIHNldChERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZSIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVExFR0FDWV9ESVIgIiR7Q01BS0VfQklOQVJZ
X0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0TGVnYWN5IikKQEAgLTMyLDYgKzMzLDggQEAgc2V0
KERFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElS
ICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkluc3BlY3RvclVJIikKIAog
ZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9
KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfSkKK2ZpbGUo
TUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcykK
IGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtDTUFLRV9CSU5BUllfRElSfS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZSkKIAogZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19X
RUJJTlNQRUNUT1JVSV9ESVJ9KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285853</attachid>
            <date>2016-08-11 14:03:35 -0700</date>
            <delta_ts>2016-12-14 13:35:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20160811140202.patch</filename>
            <type>text/plain</type>
            <size>475618</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0Mzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YzRmZmU0ZDFmYzRmZTkzNGQzYzc3NThjNjBlY2M1YTYyODdlODJiLi4yYTI3NjEwOGYzM2Y2ZjQy
ZjRkM2FjODRlZGI1N2ZiN2Y3ZTkxY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0wOC0xMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMDgtMTEgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtXaW5dIFdhcm5pbmcgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA2N2ZlMjIyYmMyZjc0OTFkNGYw
YmJlY2U0NjNlNTMwNDdhMjAzOTk2Li41YjI1ZGRmNThkOGNlZDZjNzkzYzZkYzgzZjgxOTdiMWM4
MDVkY2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE2LTA4LTExICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJQ1UgYnJlYWtpbmcg
aXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkLgor
ICAgICAgICAqIHd0Zi9nZW5icms6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dDogQWRk
ZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclBy
b2xvZ3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQ6IEFkZGVk
LgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ6IEFkZGVkLgorICAgICAgICAq
IHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNK
Sy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcDoK
KyAgICAgICAgKFdURjo6aXRlcmF0b3JGb3JSdWxlU2V0KToKKyAgICAgICAgKFdURjo6Y3Vyc29y
TW92ZW1lbnRJdGVyYXRvcik6CisgICAgICAgIChXVEY6Om9wZW5MaW5lQnJlYWtJdGVyYXRvcik6
CisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDoKKyAgICAgICAgKiB3dGYv
dGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbToKKyAgICAgICAgKFdU
Rjo6aXRlcmF0b3JGb3JSdWxlU2V0KToKKwogMjAxNi0wOC0xMSAgTWF1cmVlbiBEYXVtICA8bWRh
dW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBOU0J1dHRvblR5cGUgdG8gQXBwS2l0Q29tcGF0
aWJpbGl0eURlY2xhcmF0aW9ucy5oLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1
MjgxMTVhZGVlMTNlMjhiOTk5ZjZkMWEyNDJlZDVhOWE4OTkzNGE0Li5lNjRlZmM2YjQxMDM3ZWU5
NDQ2MDRkYWJlYzk4MDk0MTk5NWM4ODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTEwOSw2ICsxMTA5LDcgQEAKIAkJMTRGOTc0NDcxMzhDODUzRTAwREExQzY3IC8qIEhlYXBS
b290VmlzaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTRGOTc0NDYxMzhDODUzRTAwREExQzY3IC8qIEhlYXBSb290VmlzaXRvci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBMjhENEE4MTc3Qjcx
QzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0
cmluZ1JlZlByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkxQUNGNzM3NzE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBD
OUJCMUUgLyogV2Vhay5jcHAgKi87IH07CisJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBC
cmVha2luZ1J1bGVzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJ
MjYwMEI1QTYxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkx
RUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkx
RUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVy
LmggKi87IH07CiAJCTI2MkQ4NUI2MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVn
aXN0ZXJTdGFsbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjYyRDg1QjQxQzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0
YWxscy5jcHAgKi87IH07CkBAIC0zMjc1LDYgKzMyNzYsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3
MDA4MUU5RDAgLyogQmFzZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGgg
PSBCYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBE
MzJDMzlBMDA0MUJDRkYgLyogSmF2YVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKYXZhU2NyaXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4
QjRCMEQzMkMzOUEwMDQxQkNGRiAvKiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9
IEJyZWFraW5nUnVsZXM7IHBhdGggPSAuLi9XVEYvQnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9p
bmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9p
bmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAw
OTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTU3RyaW5nSm9pbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4
NUI0MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVy
U3RhbGxzLmNwcDsgcGF0aCA9IGIzL2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTQ0NCw2ICs1NDQ2LDcgQEAKIAkJNjUw
RkRGOEQwOUQwRkNBNzAwNzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVD
IC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJMEY2MTgzMzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFp
ck9wY29kZS5oICovLAogCQkJCTBGNjE4MzM0MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVH
ZW5lcmF0ZWQuaCAqLywKIAkJCQkwRjYxODMzNTFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2Rl
VXRpbHMuaCAqLywKQEAgLTg0NjgsNiArODQ3MSw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAy
MTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8q
IGZyYW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3
REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2JhODA0MDZiNjg3ODcyY2RjMmUzZTgxNmJlYjAw
NDNhOTM5YzI3MC4uMGMzOGEyNzE2ZTI3MjdmYjljOTdiMGIyM2FiNDY3N2I0OWZjZDFkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcsMTggQEAK
IAlvYmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLwor
CQkxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJ
aXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFD
RDE4NzgzMUQ1NTY5NUMwMENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBC
WEFnZ3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0g
KAorCQkJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJj
ZXMgKi8sCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCUMyQkE1NDNCMUQ1NzJCRUIw
MDBBMzMzMiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAorCQkJKTsKKwkJCW5hbWUgPSAiRGVy
aXZlZCBTb3VyY2VzIjsKKwkJCXByb2R1Y3ROYW1lID0gIkNvcHkgV1RGIEhlYWRlcnMiOworCQl9
OwogCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3Qg
PSA2NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZv
ciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtMzEyLDYgKzMy
NCwyMCBAQAogCQlBOEE0NzQ4NzE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDczN0IxNTFB
ODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCAqLzsgfTsKIAkJQThBNDc0OEMxNTFBODI2
NDAwNDEyM0ZGIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThBNDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovOyB9Owog
CQlCMzhGRDdCRDE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1
Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovOyB9OworCQlDMkJBNTQyNTFENTcyNUM0MDAwQTMz
MzIgLyogZ2VuYnJrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMyQkE1NDE4MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsuY3BwICovOyB9OworCQlD
MkJBNTQzMzFENTcyOTM4MDAwQTMzMzIgLyogdW9wdGlvbnMuYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1NDMyMUQ1NzI5MzgwMDBBMzMzMiAvKiB1
b3B0aW9ucy5jICovOyB9OworCQlDMkJBNTQzNjFENTcyOUZGMDAwQTMzMzIgLyogdW5ld2RhdGEu
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQkE1NDM1
MUQ1NzI5RkYwMDBBMzMzMiAvKiB1bmV3ZGF0YS5jICovOyB9OworCQlDMkJBNTQzOTFENTcyQUY4
MDAwQTMzMzIgLyogZmlsZXN0cm0uYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyQkE1NDM4MUQ1NzJBRjgwMDBBMzMzMiAvKiBmaWxlc3RybS5jICovOyB9
OworCQlDMkJBNTQzRTFENTg2QUY0MDAwQTMzMzIgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFt
ZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1
QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OworCQlDMkNBMzdFOTFENTVDOTcx
MDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5
OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovOyB9OworCQlDMkNBMzdFQTFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VC
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi87IH07
CisJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwICovOyB9OworCQlDMkNBMzdFRjFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87
IH07CisJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICovOyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0
MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi87
IH07CiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAw
QjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87IH07CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMz
MCAvKiBNZWRpYVRpbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKQEAg
LTM0NCw2ICszNzAsMTMgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdCNjExNDY4
OUI4NjAwRTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1
Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBC
WENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlC
ODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQly
ZW1vdGVHbG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90
ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3
MjNDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5l
ckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3
NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTM1MSw4ICszODQsMjcgQEAKIAkJCXJlbW90ZUds
b2JhbElEU3RyaW5nID0gNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDOwogCQkJcmVtb3RlSW5mbyA9
ICJDb3B5IEhlYWRlcnMiOwogCQl9OworCQlDMkJBNTQzQTFENTcyQkVCMDAwQTMzMzIgLyogUEJY
Q29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5
OworCQkJY29udGFpbmVyUG9ydGFsID0gNUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2pl
Y3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5n
ID0gQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMyOworCQkJcmVtb3RlSW5mbyA9IGdlbmJyazsKKwkJ
fTsKIC8qIEVuZCBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwogCisvKiBCZWdpbiBQ
QlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJQzJCQTU0MUIxRDU3MjVCNDAwMEEz
MzMyIC8qIENvcHlGaWxlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWENvcHlGaWxlc0J1aWxkUGhhc2U7
CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZHN0UGF0aCA9IC91c3Ivc2hh
cmUvbWFuL21hbjEvOworCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDA7CisJCQlmaWxlcyA9ICgKKwkJ
CSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMTsKKwkJfTsKKy8q
IEVuZCBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKwogLyogQmVnaW4gUEJYRmls
ZVJlZmVyZW5jZSBzZWN0aW9uICovCiAJCTBGMEQ4NUIzMTcyMzRDQjEwMDMzODIxMCAvKiBOb0xv
Y2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTm9Mb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGMkI2NkE0MTdCNkI0RjcwMEE3QUUzRiAvKiBEZWZlcnJhYmxlUmVmQ291bnRlZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEZWZlcnJhYmxlUmVmQ291bnRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDM2LDYgKzQ4OCwxOCBAQAogCQkxQzE4MUM4RDFEMzA3QUI4MDBGNUZBMTYg
LyogVVRleHRQcm92aWRlclVURjE2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFDMTgxQzhFMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzk1MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0
QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgcGF0aCA9
IG1hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQ0I0RkI5NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk1MUQ1NTlB
NjkwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlTm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTgx
RDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0ICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlBMUQ1NTlCMjMwMEY5RkUzOCAvKiBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3ROb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0
RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQ7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhBMUQ1NThBRDMwMENDN0RFQyAvKiBEZXJp
dmVkU291cmNlcy5tYWtlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC54bWw7IG5hbWUgPSBEZXJpdmVkU291cmNlcy5tYWtlOyBwYXRoID0gd3Rm
L0Rlcml2ZWRTb3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHVzZXNUYWJzID0g
MTsgfTsKKwkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVDIC8qIEN1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVC
cmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVh
a0l0ZXJhdG9yUHJvbG9ndWUudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkE0
N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODkxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVRocmVhZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjE0N0IwODE1RERDQ0RDMDBEREI5MDcgLyogSW50
ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC02NTgsNiArNzIyLDMzIEBACiAJCUE4QTQ3MzdCMTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZU
aHJlYWREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdURlRocmVhZERh
dGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDc0OEIxNTFBODI2NDAwNDEy
M0ZGIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBjb25maWcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5
IC8qIEZlYXR1cmVEZWZpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZl
YXR1cmVEZWZpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDE4MUQ1
NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gZ2VuYnJrLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MUQxRDU3MjVCNDAwMEEzMzMy
IC8qIGdlbmJyayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRo
ID0gZ2VuYnJrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlDMkJBNTQy
NjFENTcyNjdDMDAwQTMzMzIgLyogdW9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gdW9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0
MjcxRDU3MjY4OTAwMEEzMzMyIC8qIHVuZXdkYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHVuZXdkYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1
NDI4MUQ1NzI2QjAwMDBBMzMzMiAvKiB1Y21uZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSB1Y21uZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJB
NTQyOTFENTcyNkJDMDAwQTMzMzIgLyogcmJiaWRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gcmJiaWRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJC
QTU0MkExRDU3MjZDNTAwMEEzMzMyIC8qIGNtZW1vcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gY21lbW9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJB
NTQyQjFENTcyNkU4MDAwQTMzMzIgLyogdW1hcGZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gdW1hcGZpbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJC
QTU0MkMxRDU3MjcwOTAwMEEzMzMyIC8qIHB1dGlsaW1wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHB1dGlsaW1wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMy
QkE1NDJEMUQ1NzI3MjQwMDBBMzMzMiAvKiB1ZGF0YXN3cC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSB1ZGF0YXN3cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
MkJBNTQyRTFENTcyNzNCMDAwQTMzMzIgLyogdW11dGV4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHVtdXRleC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJB
NTQyRjFENTcyNzRDMDAwQTMzMzIgLyogdXRyaWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gdXRyaWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MzIx
RDU3MjkzODAwMEEzMzMyIC8qIHVvcHRpb25zLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsg
cGF0aCA9IHVvcHRpb25zLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDM0
MUQ1NzI5QTkwMDBBMzMzMiAvKiBjc3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IGNzdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0MzUx
RDU3MjlGRjAwMEEzMzMyIC8qIHVuZXdkYXRhLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsg
cGF0aCA9IHVuZXdkYXRhLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDM3
MUQ1NzJBMkQwMDBBMzMzMiAvKiBmaWxlc3RybS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBmaWxlc3RybS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQz
ODFENTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0cm0uYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBwYXRoID0gZmlsZXN0cm0uYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0
M0YxRDU4NzRFNjAwMEEzMzMyIC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0
LnB5dGhvbjsgcGF0aCA9IEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxl
cy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UyMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTMxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VOb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNDFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9u
Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
Sy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
Y3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pL
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNzFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U4MUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzRGOEE5
MzYxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdG9wd2F0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1
NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDU0OTdBQjE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNjg4LDcgKzc3OSw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgz
NjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJMTQ0N0FFQzYxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5k
YXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCi0JCQkJMTQ0N0FFQ0IxOEZDRTVCOTAw
QjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQlDMkJBNTQz
RTFENTg2QUY0MDAwQTMzMzIgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovLAog
CQkJCTE0NDdBRUM3MThGQ0U1ODAwMEIzRDdGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAt
NzAxLDYgKzc5MiwxNCBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OworCQlDMkJBNTQxQTFENTcyNUI0MDAwQTMzMzIgLyogRnJhbWV3b3Jr
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCTE0NDdBRUNCMThGQ0U1Qjkw
MEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCisJCQkpOworCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAvKiBFbmQgUEJY
RnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhHcm91cCBzZWN0
aW9uICovCkBAIC03MjUsNiArODI0LDI1IEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUNEMTg3OTExRDU1OThFMTAwQ0M3REVDIC8qIEJyZWFr
aW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJ
CUMyQkE1NDNGMUQ1ODc0RTYwMDBBMzMzMiAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3Mu
cHkgKi8sCisJCQkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVDIC8qIEN1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy50eHQgKi8sCisJCQkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVC
cmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovLAorCQkJCTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUz
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NTFENTU5
QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgKi8sCisJCQkJ
MUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy50eHQgKi8sCisJCQkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZU5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0ICovLAorCQkJCTFDQjRGQjk5
MUQ1NTlBRUYwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4
dCAqLywKKwkJCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy50eHQgKi8sCisJCQkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0ICovLAorCQkJCTFDQjRGQjlDMUQ1
NTlCNjcwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCAqLywKKwkJCSk7
CisJCQlwYXRoID0gQnJlYWtpbmdSdWxlczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CiAJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2OEQxQiAvKiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNzQ2LDEwICs4NjQsMTIgQEAKIAkJNUQyNDdC
NTcxNDY4OUI4NjAwRTc4Qjc2ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAq
LywKIAkJCQk1RDI0N0I2RDE0Njg5QzQ3MDBFNzhCNzYgLyogQ29uZmlndXJhdGlvbnMgKi8sCiAJ
CQkJMTQwMjJGM0YxOEY1QzNFNTAwN0ZGMEVCIC8qIExpYnJhcmllcyAqLywKIAkJCQk1RDI0N0I2
MzE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvZHVjdHMgKi8sCiAJCQkJNUQyNDdCNzYxNDY4OUQ3NjAw
RTc4Qjc2IC8qIFNvdXJjZSAqLywKKwkJCQlDMkNBMzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVy
aXZlZCBTb3VyY2VzICovLAogCQkJCTE0NDdBRUM1MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0
aW9uLmZyYW1ld29yayAqLywKIAkJCQkxNDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1
Y29yZS5keWxpYiAqLywKIAkJCSk7CkBAIC03NjAsNiArODgwLDcgQEAKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTE0NDdBRUJFMThGQ0U1NjkwMEIzRDdGRiAvKiBsaWJtYm1hbGxvYy5keWxpYiAqLywK
IAkJCQk1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi8sCisJCQkJQzJCQTU0
MUQxRDU3MjVCNDAwMEEzMzMyIC8qIGdlbmJyayAqLywKIAkJCSk7CiAJCQluYW1lID0gUHJvZHVj
dHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTA4Myw2ICsxMjA0LDggQEAKIAkJ
QThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDE3MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5i
cmsgKi8sCisJCQkJMUNEMTg3OTExRDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8s
CiAJCQkJMUMxODFDODgxRDMwN0FCODAwRjVGQTE2IC8qIGljdSAqLywKIAkJCQlBNUJBMTVGNjE4
MjQzNTlFMDBBODJFNjkgLyogY2YgKi8sCiAJCQkJQTVCQTE1RjExODI0MzM5RjAwQTgyRTY5IC8q
IG1hYyAqLywKQEAgLTExNTgsNiArMTI4MSw0NyBAQAogCQkJcGF0aCA9IGljdTsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUMyQkE1NDE3MUQ1NzI1OTAwMDBBMzMzMiAvKiBn
ZW5icmsgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMy
QkE1NDE4MUQ1NzI1OTAwMDBBMzMzMiAvKiBnZW5icmsuY3BwICovLAorCQkJCUMyQkE1NDMyMUQ1
NzI5MzgwMDBBMzMzMiAvKiB1b3B0aW9ucy5jICovLAorCQkJCUMyQkE1NDM1MUQ1NzI5RkYwMDBB
MzMzMiAvKiB1bmV3ZGF0YS5jICovLAorCQkJCUMyQkE1NDM4MUQ1NzJBRjgwMDBBMzMzMiAvKiBm
aWxlc3RybS5jICovLAorCQkJCUMyQkE1NDI2MUQ1NzI2N0MwMDBBMzMzMiAvKiB1b3B0aW9ucy5o
ICovLAorCQkJCUMyQkE1NDI3MUQ1NzI2ODkwMDBBMzMzMiAvKiB1bmV3ZGF0YS5oICovLAorCQkJ
CUMyQkE1NDI4MUQ1NzI2QjAwMDBBMzMzMiAvKiB1Y21uZGF0YS5oICovLAorCQkJCUMyQkE1NDI5
MUQ1NzI2QkMwMDBBMzMzMiAvKiByYmJpZGF0YS5oICovLAorCQkJCUMyQkE1NDJBMUQ1NzI2QzUw
MDBBMzMzMiAvKiBjbWVtb3J5LmggKi8sCisJCQkJQzJCQTU0MkIxRDU3MjZFODAwMEEzMzMyIC8q
IHVtYXBmaWxlLmggKi8sCisJCQkJQzJCQTU0MkMxRDU3MjcwOTAwMEEzMzMyIC8qIHB1dGlsaW1w
LmggKi8sCisJCQkJQzJCQTU0MkQxRDU3MjcyNDAwMEEzMzMyIC8qIHVkYXRhc3dwLmggKi8sCisJ
CQkJQzJCQTU0MkUxRDU3MjczQjAwMEEzMzMyIC8qIHVtdXRleC5oICovLAorCQkJCUMyQkE1NDJG
MUQ1NzI3NEMwMDBBMzMzMiAvKiB1dHJpZS5oICovLAorCQkJCUMyQkE1NDM0MUQ1NzI5QTkwMDBB
MzMzMiAvKiBjc3RyaW5nLmggKi8sCisJCQkJQzJCQTU0MzcxRDU3MkEyRDAwMEEzMzMyIC8qIGZp
bGVzdHJtLmggKi8sCisJCQkpOworCQkJbmFtZSA9IGdlbmJyazsKKwkJCXBhdGggPSBCcmVha2lu
Z1J1bGVzL2dlbmJyazsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCUMyQ0Ez
N0RGMUQ1NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAv
KiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovLAorCQkJCUMyQ0EzN0UxMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLywKKwkJCQlDMkNB
MzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNw
cCAqLywKKwkJCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNDFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTUxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwICovLAorCQkJ
CUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Tm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICovLAorCQkJKTsK
KwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXBhdGggPSBEZXJpdmVkU291cmNlcy9X
VEY7CisJCQlzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOworCQl9OwogCQlDRTQ2NTE2
QzE5REIxRkI0MDAzRUNBMDUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKApAQCAtMTQ3MCw2ICsxNjM0LDcgQEAKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJ
CQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTFDRDE4Nzg4MUQ1NTY5ODgwMENDN0RFQyAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTY1QUZBMjhFMTYzMEI5OUUwMDNENzIzQyAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBXVEY7CkBAIC0xNDc3
LDYgKzE2NDIsMjMgQEAKIAkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1RDI0N0I2MjE0Njg5Qjg2MDBF
NzhCNzYgLyogbGliV1RGLmEgKi87CiAJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVj
dC10eXBlLmxpYnJhcnkuc3RhdGljIjsKIAkJfTsKKwkJQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMy
IC8qIGdlbmJyayAqLyA9IHsKKwkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29u
ZmlndXJhdGlvbkxpc3QgPSBDMkJBNTQyMTFENTcyNUI0MDAwQTMzMzIgLyogQnVpbGQgY29uZmln
dXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgImdlbmJyayIgKi87CisJCQlidWlsZFBo
YXNlcyA9ICgKKwkJCQlDMkJBNTQxOTFENTcyNUI0MDAwQTMzMzIgLyogU291cmNlcyAqLywKKwkJ
CQlDMkJBNTQxQTFENTcyNUI0MDAwQTMzMzIgLyogRnJhbWV3b3JrcyAqLywKKwkJCQlDMkJBNTQx
QjFENTcyNUI0MDAwQTMzMzIgLyogQ29weUZpbGVzICovLAorCQkJKTsKKwkJCWJ1aWxkUnVsZXMg
PSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSBnZW5icms7
CisJCQlwcm9kdWN0TmFtZSA9IGdlbmJyazsKKwkJCXByb2R1Y3RSZWZlcmVuY2UgPSBDMkJBNTQx
RDFENTcyNUI0MDAwQTMzMzIgLyogZ2VuYnJrICovOworCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFw
cGxlLnByb2R1Y3QtdHlwZS50b29sIjsKKwkJfTsKIC8qIEVuZCBQQlhOYXRpdmVUYXJnZXQgc2Vj
dGlvbiAqLwogCiAvKiBCZWdpbiBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KQEAgLTE0ODUsNiArMTY2
NywxMSBAQAogCQkJYXR0cmlidXRlcyA9IHsKIAkJCQlMYXN0U3dpZnRVcGRhdGVDaGVjayA9IDA3
MDA7CiAJCQkJTGFzdFVwZ3JhZGVDaGVjayA9IDA3MDA7CisJCQkJVGFyZ2V0QXR0cmlidXRlcyA9
IHsKKwkJCQkJQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMyID0geworCQkJCQkJQ3JlYXRlZE9uVG9v
bHNWZXJzaW9uID0gNy4zLjE7CisJCQkJCX07CisJCQkJfTsKIAkJCX07CiAJCQlidWlsZENvbmZp
Z3VyYXRpb25MaXN0ID0gNUQyNDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3Vy
YXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV1RGIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJz
aW9uID0gIlhjb2RlIDMuMiI7CkBAIC0xNTAwLDEyICsxNjg3LDI4IEBACiAJCQl0YXJnZXRzID0g
KAogCQkJCTVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NiAvKiBXVEYgKi8sCiAJCQkJNjVBRkExNkYx
NjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi8sCisJCQkJMUNEMTg3ODExRDU1
Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVCRDE4RkNFNTY5
MDBCM0Q3RkYgLyogbWJtYWxsb2MgKi8sCisJCQkJQzJCQTU0MUMxRDU3MjVCNDAwMEEzMzMyIC8q
IGdlbmJyayAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICovCiAK
IC8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCisJCTFDRDE4Nzgy
MUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJCQlp
c2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCSk7CisJ
CQluYW1lID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNlcyI7CisJCQlvdXRwdXRQYXRocyA9ICgK
KwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJCXNo
ZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7QlVJTFRf
UFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuY2QgXCIke0JVSUxUX1BST0RVQ1RT
X0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcblxuL2Jpbi9sbiAtc2ZoIFwiJHtTUkNST09UfVwi
IFdURlxuZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsgISAtZCBCcmVha2luZ1J1bGVzIF07IHRo
ZW5cbiAgICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxuXG5pZiBbIFwiJE1BQ09TWF9ERVBMT1lN
RU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdOyB0aGVuXG4gICAgZXhwb3J0IEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVD0wXG5lbHNlXG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VD0xXG5maVxuXG5pZiBbIFwiJHtBQ1RJT059XCIgPSBcImJ1aWxkXCIgLW8gXCIke0FDVElPTn1c
IiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxoZHJzXCIgLW8gXCIk
e0FDVElPTn1cIiA9IFwiaW5zdGFsbGFwaVwiIF07IHRoZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1
bGVzIC1mIFwiV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNj
dGwgLW4gaHcuYWN0aXZlY3B1YCBTREtST09UPVwiJHtTREtST09UfVwiXG5maSI7CisJCX07CiAJ
CTY1QUZBMTcwMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovID0gewogCQkJ
aXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKQEAgLTE1MzYsNiArMTczOSw4IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQThBNDczODYxNTFBODI1QjAwNDEyM0ZGIC8qIEFz
c2VydGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzUxNTFBODI1QjAwNDEy
M0ZGIC8qIEF0b21pY1N0cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MEVDQTYwRDFCMDI0
MjY4MDA0NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NUJBMTVGQTE4MjQzNUE2MDBBODJFNjkgLyogQXRvbWljU3RyaW5nSW1wbENGLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTU2Myw2ICsxNzY4LDcgQEAKIAkJCQlBOEE0NzNCMDE1MUE4MjVCMDA0MTIz
RkYgLyogZG91YmxlLWNvbnZlcnNpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCQTE1
MUE4MjVCMDA0MTIzRkYgLyogZHRvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCMzE1
MUE4MjVCMDA0MTIzRkYgLyogZmFzdC1kdG9hLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3
RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEY4ODVFMEYxODQ1QUVBOTAwRjFFM0ZBIC8qIEZhc3RCaXRWZWN0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQzMxNTFBODI1QjAwNDEyM0ZGIC8qIEZh
c3RNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRENFRTIyMDExQ0VBNzU1MTAwMEMyMzk2
IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0gaW4gU291cmNlcyAqLywKQEAgLTE1NzgsNiArMTc4
NCw3IEBACiAJCQkJQThBNDczRTkxNTFBODI1QjAwNDEyM0ZGIC8qIE1ENS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDRDU0OTdBQzE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0VDMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9y
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3
M0Y0MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QTQ3M0Y3MTUxQTgyNUIwMDQxMjNGRiAvKiBPU0FsbG9jYXRvclBvc2l4LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0Y5MTUxQTgyNUIwMDQxMjNGRiAvKiBPU1JhbmRvbVNvdXJj
ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE1ODUsNiArMTc5Miw3IEBACiAJCQkJMUMxODFDOTMx
RDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkZGMTlEQzFCQjMzNEVCMDA4ODZEOTEgLyogUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGODI0QTY4MUI3NDQzQTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQz
MzYyMTY1REJBNzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNDNGNjExRjE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEE0NzQxNDE1MUE4MjVCMDA0MTIzRkYgLyogUmFuZG9tTnVtYmVyLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTYxOSw5ICsxODI3LDEzIEBACiAJCQkJQThBNDc0NEExNTFBODI1QjAwNDEy
M0ZGIC8qIFRocmVhZGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0RTE1MUE4MjVC
MDA0MTIzRkYgLyogVGhyZWFkaW5nUHRocmVhZHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDc0NjkxNTFBODI1QjAwNDEyM0ZGIC8qIFVURjguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJD
QTM3RUMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNK
Sy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRkE0N0M4QTE1MjUwMkRBMDA1NjhEMUIgLyogV2Vi
Q29yZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkU0NDc5QzFCN0FBQTAzMDA5NDk4
RUIgLyogV29yZExvY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RTkxRDU1Qzk3MTAw
NDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDRUUyMjAzMUNFQTc1NTEwMDBDMjM5NiAv
KiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gaW4gU291cmNlcyAqLywKKwkJ
CQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzOTFBOTYyNDU1MDA1MzZERjYgLyogV29ya1F1
ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0QTBBRDNEMUE5NjI1M0MwMDUzNkRGNiAvKiBX
b3JrUXVldWVDb2NvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0NTE1MUE4MjVCMDA0
MTIzRkYgLyogV1RGU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTYyOSw2ICsxODQxLDE3
IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CisJCUMyQkE1NDE5MUQ1NzI1QjQwMDBBMzMzMiAvKiBTb3VyY2VzICovID0geworCQkJaXNh
ID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OworCQkJZmlsZXMgPSAoCisJCQkJQzJCQTU0MzMxRDU3MjkzODAwMEEzMzMyIC8qIHVvcHRpb25z
LmMgaW4gU291cmNlcyAqLywKKwkJCQlDMkJBNTQzOTFENTcyQUY4MDAwQTMzMzIgLyogZmlsZXN0
cm0uYyBpbiBTb3VyY2VzICovLAorCQkJCUMyQkE1NDI1MUQ1NzI1QzQwMDBBMzMzMiAvKiBnZW5i
cmsuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJCQTU0MzYxRDU3MjlGRjAwMEEzMzMyIC8qIHVu
ZXdkYXRhLmMgaW4gU291cmNlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIC8qIEVuZCBQQlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0
aW9uICovCiAKIC8qIEJlZ2luIFBCWFRhcmdldERlcGVuZGVuY3kgc2VjdGlvbiAqLwpAQCAtMTYz
NywxMSArMTg2MCwyMSBAQAogCQkJdGFyZ2V0ID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8q
IFdURiAqLzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FFQzMxOEZDRTU3MDAwQjNEN0ZGIC8qIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJMUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVD
IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRl
bmN5OworCQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291
cmNlcyAqLzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJNjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjND
IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRl
bmN5OwogCQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhl
YWRlcnMgKi87CiAJCQl0YXJnZXRQcm94eSA9IDY1QUZBMjhEMTYzMEI5OUUwMDNENzIzQyAvKiBQ
QlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJCUMyQkE1NDNCMUQ1NzJCRUIwMDBBMzMz
MiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5k
ZW5jeTsKKwkJCXRhcmdldCA9IEMyQkE1NDFDMUQ1NzI1QjQwMDBBMzMzMiAvKiBnZW5icmsgKi87
CisJCQl0YXJnZXRQcm94eSA9IEMyQkE1NDNBMUQ1NzJCRUIwMDBBMzMzMiAvKiBQQlhDb250YWlu
ZXJJdGVtUHJveHkgKi87CisJCX07CiAvKiBFbmQgUEJYVGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9u
ICovCiAKIC8qIEJlZ2luIFhDQnVpbGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KQEAgLTE2NjYs
NiArMTg5OSwzMCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0Qx
ODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29u
ZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4
OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGlu
Z3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQlu
YW1lID0gRGVidWc7CisJCX07CisJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNl
ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJh
dGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2Uu
eGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIk
KFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTFDRDE4
Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWls
ZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3Qjcw
MTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNl
dHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9Owor
CQkJbmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAv
KiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNv
bmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdS
ZWxlYXNlLnhjY29uZmlnICovOwpAQCAtMTczNiw2ICsxOTkzLDIwNCBAQAogCQkJfTsKIAkJCW5h
bWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQlDMkJBNTQyMjFENTcyNUI0MDAwQTMzMzIgLyogRGVi
dWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1
cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFz
ZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQUxXQVlTX1NFQVJDSF9V
U0VSX1BBVEhTID0gTk87CisJCQkJQ0xBTkdfQU5BTFlaRVJfTk9OTlVMTCA9IFlFUzsKKwkJCQlD
TEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251KysweCI7CisJCQkJQ0xBTkdfQ1hYX0xJ
QlJBUlkgPSAibGliYysrIjsKKwkJCQlDTEFOR19FTkFCTEVfTU9EVUxFUyA9IFlFUzsKKwkJCQlD
TEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9CT09MX0NPTlZFUlNJ
T04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9DT05TVEFOVF9DT05WRVJTSU9OID0gWUVTOworCQkJ
CUNMQU5HX1dBUk5fRElSRUNUX09CSkNfSVNBX1VTQUdFID0gWUVTX0VSUk9SOworCQkJCUNMQU5H
X1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0VOVU1fQ09OVkVSU0lPTiA9
IFlFUzsKKwkJCQlDTEFOR19XQVJOX0lOVF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dB
Uk5fT0JKQ19ST09UX0NMQVNTID0gWUVTX0VSUk9SOworCQkJCUNMQU5HX1dBUk5fVU5SRUFDSEFC
TEVfQ09ERSA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX19EVVBMSUNBVEVfTUVUSE9EX01BVENIID0g
WUVTOworCQkJCUNPREVfU0lHTl9JREVOVElUWSA9ICItIjsKKwkJCQlDT1BZX1BIQVNFX1NUUklQ
ID0gTk87CisJCQkJREVCVUdfSU5GT1JNQVRJT05fRk9STUFUID0gZHdhcmY7CisJCQkJRU5BQkxF
X1NUUklDVF9PQkpDX01TR1NFTkQgPSBZRVM7CisJCQkJRU5BQkxFX1RFU1RBQklMSVRZID0gWUVT
OworCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251OTk7CisJCQkJR0NDX0RZTkFNSUNf
Tk9fUElDID0gTk87CisJCQkJR0NDX05PX0NPTU1PTl9CTE9DS1MgPSBZRVM7CisJCQkJR0NDX09Q
VElNSVpBVElPTl9MRVZFTCA9IDA7CisJCQkJR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9
ICgKKwkJCQkJIkRFQlVHPTEiLAorCQkJCQkiVV9TSE9XX0NQTFVTUExVU19BUEk9MSIsCisJCQkJ
CSIkKGluaGVyaXRlZCkiLAorCQkJCSk7CisJCQkJR0NDX1dBUk5fNjRfVE9fMzJfQklUX0NPTlZF
UlNJT04gPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9NSVNTSU5HX1BST1RPVFlQRVMgPSBOTzsK
KwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9IFlFU19FUlJPUjsKKwkJCQlHQ0NfV0FS
Tl9TSUdOX0NPTVBBUkUgPSBOTzsKKwkJCQlHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0g
WUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVNfQUdHUkVTU0lWRTsK
KwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5VU0VE
X1ZBUklBQkxFID0gWUVTOworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjExOwor
CQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IFlFUzsKKwkJCQlPTkxZX0FDVElWRV9BUkNIID0g
WUVTOworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQkJV0FSTklOR19D
RkxBR1MgPSAoCisJCQkJCSItV2FsbCIsCisJCQkJCSItV2V4dHJhIiwKKwkJCQkJIi1XY2FzdC1x
dWFsIiwKKwkJCQkJIi1XY2hhci1zdWJzY3JpcHRzIiwKKwkJCQkJIi1XZXh0cmEtdG9rZW5zIiwK
KwkJCQkJIi1XZm9ybWF0PTIiLAorCQkJCQkiLVdpbml0LXNlbGYiLAorCQkJCQkiLVdtaXNzaW5n
LWZvcm1hdC1hdHRyaWJ1dGUiLAorCQkJCQkiLVdwYWNrZWQiLAorCQkJCQkiLVdwb2ludGVyLWFy
aXRoIiwKKwkJCQkJIi1XcmVkdW5kYW50LWRlY2xzIiwKKwkJCQkJIi1XdW5kZWYiLAorCQkJCQki
LVd3cml0ZS1zdHJpbmdzIiwKKwkJCQkJIi1XZXhpdC10aW1lLWRlc3RydWN0b3JzIiwKKwkJCQkJ
Ii1XZ2xvYmFsLWNvbnN0cnVjdG9ycyIsCisJCQkJCSItV3RhdXRvbG9naWNhbC1jb21wYXJlIiwK
KwkJCQkJIi1XaW1wbGljaXQtZmFsbHRocm91Z2giLAorCQkJCQkiLVduby1zaWduLWNvbXBhcmUi
LAorCQkJCSk7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQlDMkJBNTQyMzFENTcy
NUI0MDAwQTMzMzIgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0
aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBF
NzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsK
KwkJCQlBTFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMgPSBOTzsKKwkJCQlDTEFOR19BTkFMWVpFUl9O
T05OVUxMID0gWUVTOworCQkJCUNMQU5HX0NYWF9MQU5HVUFHRV9TVEFOREFSRCA9ICJnbnUrKzB4
IjsKKwkJCQlDTEFOR19DWFhfTElCUkFSWSA9ICJsaWJjKysiOworCQkJCUNMQU5HX0VOQUJMRV9N
T0RVTEVTID0gWUVTOworCQkJCUNMQU5HX0VOQUJMRV9PQkpDX0FSQyA9IFlFUzsKKwkJCQlDTEFO
R19XQVJOX0JPT0xfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0NPTlNUQU5UX0NP
TlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9ESVJFQ1RfT0JKQ19JU0FfVVNBR0UgPSBZ
RVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9FTVBUWV9CT0RZID0gWUVTOworCQkJCUNMQU5HX1dB
Uk5fRU5VTV9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fSU5UX0NPTlZFUlNJT04g
PSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9PQkpDX1JPT1RfQ0xBU1MgPSBZRVNfRVJST1I7CisJCQkJ
Q0xBTkdfV0FSTl9VTlJFQUNIQUJMRV9DT0RFID0gWUVTOworCQkJCUNMQU5HX1dBUk5fX0RVUExJ
Q0FURV9NRVRIT0RfTUFUQ0ggPSBZRVM7CisJCQkJQ09ERV9TSUdOX0lERU5USVRZID0gIi0iOwor
CQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBOTzsKKwkJCQlERUJVR19JTkZPUk1BVElPTl9GT1JNQVQg
PSAiZHdhcmYtd2l0aC1kc3ltIjsKKwkJCQlFTkFCTEVfTlNfQVNTRVJUSU9OUyA9IE5POworCQkJ
CUVOQUJMRV9TVFJJQ1RfT0JKQ19NU0dTRU5EID0gWUVTOworCQkJCUdDQ19DX0xBTkdVQUdFX1NU
QU5EQVJEID0gZ251OTk7CisJCQkJR0NDX05PX0NPTU1PTl9CTE9DS1MgPSBZRVM7CisJCQkJR0ND
X1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKKwkJCQkJIlVfU0hPV19DUExVU1BMVVNfQVBJ
PTEiLAorCQkJCQkiJChERUJVR19ERUZJTkVTKSIsCisJCQkJCSIkKGluaGVyaXRlZCkiLAorCQkJ
CSk7CisJCQkJR0NDX1dBUk5fNjRfVE9fMzJfQklUX0NPTlZFUlNJT04gPSBOTzsKKwkJCQlHQ0Nf
V0FSTl9BQk9VVF9NSVNTSU5HX1BST1RPVFlQRVMgPSBOTzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9S
RVRVUk5fVFlQRSA9IFlFU19FUlJPUjsKKwkJCQlHQ0NfV0FSTl9TSUdOX0NPTVBBUkUgPSBOTzsK
KwkJCQlHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOworCQkJCUdDQ19XQVJOX1VO
SU5JVElBTElaRURfQVVUT1MgPSBZRVNfQUdHUkVTU0lWRTsKKwkJCQlHQ0NfV0FSTl9VTlVTRURf
RlVOQ1RJT04gPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJ
CU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjExOworCQkJCU1UTF9FTkFCTEVfREVCVUdf
SU5GTyA9IE5POworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQkJV0FS
TklOR19DRkxBR1MgPSAoCisJCQkJCSItV2FsbCIsCisJCQkJCSItV2V4dHJhIiwKKwkJCQkJIi1X
Y2FzdC1xdWFsIiwKKwkJCQkJIi1XY2hhci1zdWJzY3JpcHRzIiwKKwkJCQkJIi1XZXh0cmEtdG9r
ZW5zIiwKKwkJCQkJIi1XZm9ybWF0PTIiLAorCQkJCQkiLVdpbml0LXNlbGYiLAorCQkJCQkiLVdt
aXNzaW5nLWZvcm1hdC1hdHRyaWJ1dGUiLAorCQkJCQkiLVdwYWNrZWQiLAorCQkJCQkiLVdwb2lu
dGVyLWFyaXRoIiwKKwkJCQkJIi1XcmVkdW5kYW50LWRlY2xzIiwKKwkJCQkJIi1XdW5kZWYiLAor
CQkJCQkiLVd3cml0ZS1zdHJpbmdzIiwKKwkJCQkJIi1XZXhpdC10aW1lLWRlc3RydWN0b3JzIiwK
KwkJCQkJIi1XZ2xvYmFsLWNvbnN0cnVjdG9ycyIsCisJCQkJCSItV3RhdXRvbG9naWNhbC1jb21w
YXJlIiwKKwkJCQkJIi1XaW1wbGljaXQtZmFsbHRocm91Z2giLAorCQkJCQkiLVduby1zaWduLWNv
bXBhcmUiLAorCQkJCSk7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCUMyQkE1
NDI0MUQ1NzI1QjQwMDBBMzMzMiAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWls
ZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3Qjcw
MTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNl
dHRpbmdzID0geworCQkJCUFMV0FZU19TRUFSQ0hfVVNFUl9QQVRIUyA9IE5POworCQkJCUNMQU5H
X0FOQUxZWkVSX05PTk5VTEwgPSBZRVM7CisJCQkJQ0xBTkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJE
ID0gImdudSsrMHgiOworCQkJCUNMQU5HX0NYWF9MSUJSQVJZID0gImxpYmMrKyI7CisJCQkJQ0xB
TkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisJCQkJQ0xBTkdfRU5BQkxFX09CSkNfQVJDID0gWUVT
OworCQkJCUNMQU5HX1dBUk5fQk9PTF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5f
Q09OU1RBTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0RJUkVDVF9PQkpDX0lT
QV9VU0FHRSA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX0VNUFRZX0JPRFkgPSBZRVM7CisJ
CQkJQ0xBTkdfV0FSTl9FTlVNX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9JTlRf
Q09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX09CSkNfUk9PVF9DTEFTUyA9IFlFU19F
UlJPUjsKKwkJCQlDTEFOR19XQVJOX1VOUkVBQ0hBQkxFX0NPREUgPSBZRVM7CisJCQkJQ0xBTkdf
V0FSTl9fRFVQTElDQVRFX01FVEhPRF9NQVRDSCA9IFlFUzsKKwkJCQlDT0RFX1NJR05fSURFTlRJ
VFkgPSAiLSI7CisJCQkJQ09QWV9QSEFTRV9TVFJJUCA9IE5POworCQkJCURFQlVHX0lORk9STUFU
SU9OX0ZPUk1BVCA9ICJkd2FyZi13aXRoLWRzeW0iOworCQkJCUVOQUJMRV9OU19BU1NFUlRJT05T
ID0gTk87CisJCQkJRU5BQkxFX1NUUklDVF9PQkpDX01TR1NFTkQgPSBZRVM7CisJCQkJR0NDX0Nf
TEFOR1VBR0VfU1RBTkRBUkQgPSBnbnU5OTsKKwkJCQlHQ0NfTk9fQ09NTU9OX0JMT0NLUyA9IFlF
UzsKKwkJCQlHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TID0gKAorCQkJCQkiVV9TSE9XX0NQ
TFVTUExVU19BUEk9MSIsCisJCQkJCSIkKERFQlVHX0RFRklORVMpIiwKKwkJCQkJIiQoaW5oZXJp
dGVkKSIsCisJCQkJKTsKKwkJCQlHQ0NfV0FSTl82NF9UT18zMl9CSVRfQ09OVkVSU0lPTiA9IE5P
OworCQkJCUdDQ19XQVJOX0FCT1VUX01JU1NJTkdfUFJPVE9UWVBFUyA9IE5POworCQkJCUdDQ19X
QVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9SOworCQkJCUdDQ19XQVJOX1NJR05fQ09N
UEFSRSA9IE5POworCQkJCUdDQ19XQVJOX1VOREVDTEFSRURfU0VMRUNUT1IgPSBZRVM7CisJCQkJ
R0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFU19BR0dSRVNTSVZFOworCQkJCUdDQ19X
QVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUg
PSBZRVM7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTAuMTE7CisJCQkJTVRMX0VO
QUJMRV9ERUJVR19JTkZPID0gTk87CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUp
IjsKKwkJCQlXQVJOSU5HX0NGTEFHUyA9ICgKKwkJCQkJIi1XYWxsIiwKKwkJCQkJIi1XZXh0cmEi
LAorCQkJCQkiLVdjYXN0LXF1YWwiLAorCQkJCQkiLVdjaGFyLXN1YnNjcmlwdHMiLAorCQkJCQki
LVdleHRyYS10b2tlbnMiLAorCQkJCQkiLVdmb3JtYXQ9MiIsCisJCQkJCSItV2luaXQtc2VsZiIs
CisJCQkJCSItV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZSIsCisJCQkJCSItV3BhY2tlZCIsCisJ
CQkJCSItV3BvaW50ZXItYXJpdGgiLAorCQkJCQkiLVdyZWR1bmRhbnQtZGVjbHMiLAorCQkJCQki
LVd1bmRlZiIsCisJCQkJCSItV3dyaXRlLXN0cmluZ3MiLAorCQkJCQkiLVdleGl0LXRpbWUtZGVz
dHJ1Y3RvcnMiLAorCQkJCQkiLVdnbG9iYWwtY29uc3RydWN0b3JzIiwKKwkJCQkJIi1XdGF1dG9s
b2dpY2FsLWNvbXBhcmUiLAorCQkJCQkiLVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIsCisJCQkJCSIt
V25vLXNpZ24tY29tcGFyZSIsCisJCQkJKTsKKwkJCX07CisJCQluYW1lID0gUHJvZHVjdGlvbjsK
KwkJfTsKIC8qIEVuZCBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0aW9uICovCiAKIC8qIEJlZ2lu
IFhDQ29uZmlndXJhdGlvbkxpc3Qgc2VjdGlvbiAqLwpAQCAtMTc0OSw2ICsyMjA0LDE2IEBACiAJ
CQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJh
dGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMg
LyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2
ZWQgU291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVp
bGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVi
dWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJ
MUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVm
YXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25O
YW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1
aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV1RGIiAqLyA9IHsKIAkJCWlz
YSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApAQCAt
MTc3OSw2ICsyMjQ0LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7
CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQlDMkJB
NTQyMTFENTcyNUI0MDAwQTMzMzIgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhO
YXRpdmVUYXJnZXQgImdlbmJyayIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0
OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQlDMkJBNTQyMjFENTcyNUI0MDAwQTMz
MzIgLyogRGVidWcgKi8sCisJCQkJQzJCQTU0MjMxRDU3MjVCNDAwMEEzMzMyIC8qIFJlbGVhc2Ug
Ki8sCisJCQkJQzJCQTU0MjQxRDU3MjVCNDAwMEEzMzMyIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkp
OworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZp
Z3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIC8qIEVuZCBYQ0NvbmZpZ3VyYXRpb25M
aXN0IHNlY3Rpb24gKi8KIAl9OwogCXJvb3RPYmplY3QgPSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhC
NzYgLyogUHJvamVjdCBvYmplY3QgKi87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL2Jya2l0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvYnJraXRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjRhYTVlNTUyNzk2MDkwZWFlYmNkN2NlN2I3ZDI3NWFhOGIzNzc1YjQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jya2l0ZXIuaApAQCAtMCwwICsxLDY1NSBA
QAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIw
MTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQg
b3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
CisqIEZpbGUgYnJraXRlci5oCisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERh
dGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMDIvMTgvOTcgICAgYWxpdSAg
ICAgICAgQWRkZWQgdHlwZWRlZiBmb3IgVGV4dENvdW50LiAgTWFkZSBET05FIGNvbnN0LgorKiAg
IDA1LzA3Lzk3ICAgIGFsaXUgICAgICAgIEZpeGVkIERMTCBkZWNsYXJhdGlvbi4KKyogICAwNy8w
OS85NyAgICBqZml0eiAgICAgICBSZW5hbWVkIEJyZWFrSXRlcmF0b3IgYW5kIGludGVyZmFjZSBz
eW5jZWQgd2l0aCBKREsKKyogICAwOC8xMS85OCAgICBoZWxlbmEgICAgICBTeW5jLXVwIEpESzEu
Mi4KKyogICAwMS8xMy8yMDAwICBoZWxlbmEgICAgICBBZGRlZCBVRXJyb3JDb2RlIHBhcmFtZXRl
ciB0byBjcmVhdGVYWFhJbnN0YW5jZSBtZXRob2RzLgorKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyovCisKKyNpZm5kZWYgQlJLSVRFUl9ICisjZGVmaW5lIEJSS0lURVJfSAorCisjaW5jbHVkZSAi
dW5pY29kZS91dHlwZXMuaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IEJy
ZWFrIEl0ZXJhdG9yLgorICovCisKKyNpZiBVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCitV
X05BTUVTUEFDRV9CRUdJTgorCisvKgorICogQWxsb3cgdGhlIGRlY2xhcmF0aW9uIG9mIEFQSXMg
d2l0aCBwb2ludGVycyB0byBCcmVha0l0ZXJhdG9yCisgKiBldmVuIHdoZW4gYnJlYWsgaXRlcmF0
aW9uIGlzIHJlbW92ZWQgZnJvbSB0aGUgYnVpbGQuCisgKi8KK2NsYXNzIEJyZWFrSXRlcmF0b3I7
CisKK1VfTkFNRVNQQUNFX0VORAorCisjZWxzZQorCisjaW5jbHVkZSAidW5pY29kZS91b2JqZWN0
LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2NoYXJp
dGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS9sb2NpZC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWJy
ay5oIgorI2luY2x1ZGUgInVuaWNvZGUvc3RyZW51bS5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXRl
eHQuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VtaXNjLmgiCisKK1VfTkFNRVNQQUNFX0JFR0lOCisK
Ky8qKgorICogVGhlIEJyZWFrSXRlcmF0b3IgY2xhc3MgaW1wbGVtZW50cyBtZXRob2RzIGZvciBm
aW5kaW5nIHRoZSBsb2NhdGlvbgorICogb2YgYm91bmRhcmllcyBpbiB0ZXh0LiBCcmVha0l0ZXJh
dG9yIGlzIGFuIGFic3RyYWN0IGJhc2UgY2xhc3MuCisgKiBJbnN0YW5jZXMgb2YgQnJlYWtJdGVy
YXRvciBtYWludGFpbiBhIGN1cnJlbnQgcG9zaXRpb24gYW5kIHNjYW4gb3ZlcgorICogdGV4dCBy
ZXR1cm5pbmcgdGhlIGluZGV4IG9mIGNoYXJhY3RlcnMgd2hlcmUgYm91bmRhcmllcyBvY2N1ci4K
KyAqIDxwPgorICogTGluZSBib3VuZGFyeSBhbmFseXNpcyBkZXRlcm1pbmVzIHdoZXJlIGEgdGV4
dCBzdHJpbmcgY2FuIGJlIGJyb2tlbgorICogd2hlbiBsaW5lLXdyYXBwaW5nLiBUaGUgbWVjaGFu
aXNtIGNvcnJlY3RseSBoYW5kbGVzIHB1bmN0dWF0aW9uIGFuZAorICogaHlwaGVuYXRlZCB3b3Jk
cy4KKyAqIDxwPgorICogU2VudGVuY2UgYm91bmRhcnkgYW5hbHlzaXMgYWxsb3dzIHNlbGVjdGlv
biB3aXRoIGNvcnJlY3QKKyAqIGludGVycHJldGF0aW9uIG9mIHBlcmlvZHMgd2l0aGluIG51bWJl
cnMgYW5kIGFiYnJldmlhdGlvbnMsIGFuZAorICogdHJhaWxpbmcgcHVuY3R1YXRpb24gbWFya3Mg
c3VjaCBhcyBxdW90YXRpb24gbWFya3MgYW5kIHBhcmVudGhlc2VzLgorICogPHA+CisgKiBXb3Jk
IGJvdW5kYXJ5IGFuYWx5c2lzIGlzIHVzZWQgYnkgc2VhcmNoIGFuZCByZXBsYWNlIGZ1bmN0aW9u
cywgYXMKKyAqIHdlbGwgYXMgd2l0aGluIHRleHQgZWRpdGluZyBhcHBsaWNhdGlvbnMgdGhhdCBh
bGxvdyB0aGUgdXNlciB0bworICogc2VsZWN0IHdvcmRzIHdpdGggYSBkb3VibGUgY2xpY2suIFdv
cmQgc2VsZWN0aW9uIHByb3ZpZGVzIGNvcnJlY3QKKyAqIGludGVycHJldGF0aW9uIG9mIHB1bmN0
dWF0aW9uIG1hcmtzIHdpdGhpbiBhbmQgZm9sbG93aW5nCisgKiB3b3Jkcy4gQ2hhcmFjdGVycyB0
aGF0IGFyZSBub3QgcGFydCBvZiBhIHdvcmQsIHN1Y2ggYXMgc3ltYm9scyBvcgorICogcHVuY3R1
YXRpb24gbWFya3MsIGhhdmUgd29yZC1icmVha3Mgb24gYm90aCBzaWRlcy4KKyAqIDxwPgorICog
Q2hhcmFjdGVyIGJvdW5kYXJ5IGFuYWx5c2lzIGFsbG93cyB1c2VycyB0byBpbnRlcmFjdCB3aXRo
CisgKiBjaGFyYWN0ZXJzIGFzIHRoZXkgZXhwZWN0IHRvLCBmb3IgZXhhbXBsZSwgd2hlbiBtb3Zp
bmcgdGhlIGN1cnNvcgorICogdGhyb3VnaCBhIHRleHQgc3RyaW5nLiBDaGFyYWN0ZXIgYm91bmRh
cnkgYW5hbHlzaXMgcHJvdmlkZXMgY29ycmVjdAorICogbmF2aWdhdGlvbiBvZiB0aHJvdWdoIGNo
YXJhY3RlciBzdHJpbmdzLCByZWdhcmRsZXNzIG9mIGhvdyB0aGUKKyAqIGNoYXJhY3RlciBpcyBz
dG9yZWQuICBGb3IgZXhhbXBsZSwgYW4gYWNjZW50ZWQgY2hhcmFjdGVyIG1pZ2h0IGJlCisgKiBz
dG9yZWQgYXMgYSBiYXNlIGNoYXJhY3RlciBhbmQgYSBkaWFjcml0aWNhbCBtYXJrLiBXaGF0IHVz
ZXJzCisgKiBjb25zaWRlciB0byBiZSBhIGNoYXJhY3RlciBjYW4gZGlmZmVyIGJldHdlZW4gbGFu
Z3VhZ2VzLgorICogPHA+CisgKiBUaGUgdGV4dCBib3VuZGFyeSBwb3NpdGlvbnMgYXJlIGZvdW5k
IGFjY29yZGluZyB0byB0aGUgcnVsZXMKKyAqIGRlc2NyaWJlZCBpbiBVbmljb2RlIFN0YW5kYXJk
IEFubmV4ICMyOSwgVGV4dCBCb3VuZGFyaWVzLCBhbmQKKyAqIFVuaWNvZGUgU3RhbmRhcmQgQW5u
ZXggIzE0LCBMaW5lIEJyZWFraW5nIFByb3BlcnRpZXMuICBUaGVzZQorICogYXJlIGF2YWlsYWJs
ZSBhdCBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIxNC8gYW5kCisgKiBodHRwOi8v
d3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIyOS8uCisgKiA8cD4KKyAqIEluIGFkZGl0aW9uIHRv
IHRoZSBDKysgQVBJIGRlZmluZWQgaW4gdGhpcyBoZWFkZXIgZmlsZSwgYQorICogcGxhaW4gQyBB
UEkgd2l0aCBlcXVpdmFsZW50IGZ1bmN0aW9uYWxpdHkgaXMgZGVmaW5lZCBpbiB0aGUKKyAqIGZp
bGUgdWJyay5oCisgKiA8cD4KKyAqIENvZGUgc25pcHBldHMgaWxsdXN0cmF0aW5nIHRoZSB1c2Ug
b2YgdGhlIEJyZWFrIEl0ZXJhdG9yIEFQSXMKKyAqIGFyZSBhdmFpbGFibGUgaW4gdGhlIElDVSBV
c2VyIEd1aWRlLAorICogaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy91c2VyZ3VpZGUvYm91bmRhcnlB
bmFseXNpcy5odG1sCisgKiBhbmQgaW4gdGhlIHNhbXBsZSBwcm9ncmFtIGljdS9zb3VyY2Uvc2Ft
cGxlcy9icmVhay9icmVhay5jcHAKKyAqCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBCcmVha0l0
ZXJhdG9yIDogcHVibGljIFVPYmplY3QgeworcHVibGljOgorICAgIC8qKgorICAgICAqICBkZXN0
cnVjdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkJy
ZWFrSXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIGFub3RoZXIg
b2JqZWN0IGlzIHNlbWFudGljYWxseSBlcXVhbCB0byB0aGlzCisgICAgICogb25lLiBUaGUgb3Ro
ZXIgb2JqZWN0IHNob3VsZCBiZSBhbiBpbnN0YW5jZSBvZiB0aGUgc2FtZSBzdWJjbGFzcyBvZgor
ICAgICAqIEJyZWFrSXRlcmF0b3IuIE9iamVjdHMgb2YgZGlmZmVyZW50IHN1YmNsYXNzZXMgYXJl
IGNvbnNpZGVyZWQKKyAgICAgKiB1bmVxdWFsLgorICAgICAqIDxQPgorICAgICAqIFJldHVybiB0
cnVlIGlmIHRoaXMgQnJlYWtJdGVyYXRvciBpcyBhdCB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUK
KyAgICAgKiBzYW1lIHRleHQsIGFuZCBpcyB0aGUgc2FtZSBjbGFzcyBhbmQgdHlwZSAod29yZCwg
bGluZSwgZXRjLikgb2YKKyAgICAgKiBCcmVha0l0ZXJhdG9yLCBhcyB0aGUgYXJndW1lbnQuICBU
ZXh0IGlzIGNvbnNpZGVyZWQgdGhlIHNhbWUgaWYKKyAgICAgKiBpdCBjb250YWlucyB0aGUgc2Ft
ZSBjaGFyYWN0ZXJzLCBpdCBuZWVkIG5vdCBiZSB0aGUgc2FtZQorICAgICAqIG9iamVjdCwgYW5k
IHN0eWxlcyBhcmUgbm90IGNvbnNpZGVyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09KGNvbnN0IEJyZWFrSXRlcmF0b3ImKSBj
b25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb21wbGVtZW50IG9mIHRo
ZSByZXN1bHQgb2Ygb3BlcmF0b3I9PQorICAgICAqIEBwYXJhbSByaHMgVGhlIEJyZWFrSXRlcmF0
b3IgdG8gYmUgY29tcGFyZWQgZm9yIGluZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRoZSBjb21w
bGVtZW50IG9mIHRoZSByZXN1bHQgb2Ygb3BlcmF0b3I9PQorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgQnJlYWtJdGVyYXRvciYgcmhz
KSBjb25zdCB7IHJldHVybiAhb3BlcmF0b3I9PShyaHMpOyB9CisKKyAgICAvKioKKyAgICAgKiBS
ZXR1cm4gYSBwb2x5bW9ycGhpYyBjb3B5IG9mIHRoaXMgb2JqZWN0LiAgVGhpcyBpcyBhbiBhYnN0
cmFjdAorICAgICAqIG1ldGhvZCB3aGljaCBzdWJjbGFzc2VzIGltcGxlbWVudC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IqIGNsb25l
KHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHBvbHltb3JwaGlj
IGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4gRGlmZmVyZW50IHN1YmNsYXNzZXMKKyAgICAgKiB3
aWxsIHJldHVybiBkaXN0aW5jdCB1bmVxdWFsIHZhbHVlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKHZvaWQp
IGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIENoYXJhY3Rlckl0ZXJhdG9y
IG92ZXIgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciYgZ2V0VGV4dCh2b2lkKSBjb25z
dCA9IDA7CisKKworICAgIC8qKgorICAgICAgKiAgR2V0IGEgVVRleHQgZm9yIHRoZSB0ZXh0IGJl
aW5nIGFuYWx5emVkLgorICAgICAgKiAgVGhlIHJldHVybmVkIFVUZXh0IGlzIGEgc2hhbGxvdyBj
bG9uZSBvZiB0aGUgVVRleHQgdXNlZCBpbnRlcm5hbGx5CisgICAgICAqICBieSB0aGUgYnJlYWsg
aXRlcmF0b3IgaW1wbGVtZW50YXRpb24uICBJdCBjYW4gc2FmZWx5IGJlIHVzZWQgdG8KKyAgICAg
ICogIGFjY2VzcyB0aGUgdGV4dCB3aXRob3V0IGltcGFjdGluZyBhbnkgYnJlYWsgaXRlcmF0b3Ig
b3BlcmF0aW9ucywKKyAgICAgICogIGJ1dCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2VsZiBtdXN0
IG5vdCBiZSBhbHRlcmVkLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gZmlsbEluIEEgVVRleHQg
dG8gYmUgZmlsbGVkIGluLiAgSWYgTlVMTCwgYSBuZXcgVVRleHQgd2lsbCBiZQorICAgICAgKiAg
ICAgICAgICAgYWxsb2NhdGVkIHRvIGhvbGQgdGhlIHJlc3VsdC4KKyAgICAgICogQHBhcmFtIHN0
YXR1cyByZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMuCisgICAgICAqIEByZXR1cm4gICBUaGUgY3Vy
cmVudCBVVGV4dCBmb3IgdGhpcyBicmVhayBpdGVyYXRvci4gIElmIGFuIGlucHV0CisgICAgICAq
ICAgICAgICAgICBVVGV4dCB3YXMgcHJvdmlkZWQsIGl0IHdpbGwgYWx3YXlzIGJlIHJldHVybmVk
LgorICAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAgICovCisgICAgIHZpcnR1YWwgVVRleHQg
KmdldFVUZXh0KFVUZXh0ICpmaWxsSW4sIFVFcnJvckNvZGUgJnN0YXR1cykgY29uc3QgPSAwOwor
CisgICAgLyoqCisgICAgICogQ2hhbmdlIHRoZSB0ZXh0IG92ZXIgd2hpY2ggdGhpcyBvcGVyYXRl
cy4gVGhlIHRleHQgYm91bmRhcnkgaXMKKyAgICAgKiByZXNldCB0byB0aGUgc3RhcnQuCisgICAg
ICogQHBhcmFtIHRleHQgVGhlIFVuaWNvZGVTdHJpbmcgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBzZXRU
ZXh0KGNvbnN0IFVuaWNvZGVTdHJpbmcgJnRleHQpID0gMDsKKworICAgIC8qKgorICAgICAqIFJl
c2V0IHRoZSBicmVhayBpdGVyYXRvciB0byBvcGVyYXRlIG92ZXIgdGhlIHRleHQgcmVwcmVzZW50
ZWQgYnkKKyAgICAgKiB0aGUgVVRleHQuICBUaGUgaXRlcmF0b3IgcG9zaXRpb24gaXMgcmVzZXQg
dG8gdGhlIHN0YXJ0LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtYWtlcyBhIHNoYWxs
b3cgY2xvbmUgb2YgdGhlIHN1cHBsaWVkIFVUZXh0LiAgVGhpcyBtZWFucworICAgICAqIHRoYXQg
dGhlIGNhbGxlciBpcyBmcmVlIHRvIGltbWVkaWF0ZWx5IGNsb3NlIG9yIG90aGVyd2lzZSByZXVz
ZSB0aGUKKyAgICAgKiBVdGV4dCB0aGF0IHdhcyBwYXNzZWQgYXMgYSBwYXJhbWV0ZXIsIGJ1dCB0
aGF0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmCisgICAgICogbXVzdCBub3QgYmUgYWx0ZXJl
ZCB3aGlsZSBiZWluZyByZWZlcmVuY2VkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgKgor
ICAgICAqIEFsbCBpbmRleCBwb3NpdGlvbnMgcmV0dXJuZWQgYnkgYnJlYWsgaXRlcmF0b3IgZnVu
Y3Rpb25zIGFyZQorICAgICAqIG5hdGl2ZSBpbmRpY2VzIGZyb20gdGhlIFVUZXh0LiBGb3IgZXhh
bXBsZSwgd2hlbiBicmVha2luZyBVVEYtOAorICAgICAqIGVuY29kZWQgdGV4dCwgdGhlIGJyZWFr
IHBvc2l0aW9ucyByZXR1cm5lZCBieSBuZXh0KCksIHByZXZpb3VzKCksIGV0Yy4KKyAgICAgKiB3
aWxsIGJlIFVURi04IHN0cmluZyBpbmRpY2VzLCBub3QgVVRGLTE2IHBvc2l0aW9ucy4KKyAgICAg
KgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBVVGV4dCB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4K
KyAgICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgKiBA
c3RhYmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoVVRleHQg
KnRleHQsIFVFcnJvckNvZGUgJnN0YXR1cykgPSAwOworCisgICAgLyoqCisgICAgICogQ2hhbmdl
IHRoZSB0ZXh0IG92ZXIgd2hpY2ggdGhpcyBvcGVyYXRlcy4gVGhlIHRleHQgYm91bmRhcnkgaXMK
KyAgICAgKiByZXNldCB0byB0aGUgc3RhcnQuCisgICAgICogTm90ZSB0aGF0IHNldFRleHQoVVRl
eHQgKikgcHJvdmlkZXMgc2ltaWxhciBmdW5jdGlvbmFsaXR5IHRvIHRoaXMgZnVuY3Rpb24sCisg
ICAgICogYW5kIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIEBwYXJhbSBpdCBUaGUgQ2hhcmFj
dGVySXRlcmF0b3IgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBhZG9wdFRleHQoQ2hhcmFjdGVySXRlcmF0
b3IqIGl0KSA9IDA7CisKKyAgICBlbnVtIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIERPTkUg
aXMgcmV0dXJuZWQgYnkgcHJldmlvdXMoKSBhbmQgbmV4dCgpIGFmdGVyIGFsbCB2YWxpZAorICAg
ICAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICAgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICAgICAqLworICAgICAgICBET05FID0gKGludDMyX3QpLTEKKyAgICB9
OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24g
dG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgcG9zaXRpb24gemVyby4KKyAgICAgKiBAcmV0
dXJuIFRoZSBvZmZzZXQgb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgemVyby4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZmlyc3Qodm9p
ZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0
aGUgaW5kZXggaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4
dCBiZWluZyBzY2FubmVkLgorICAgICAqIEByZXR1cm4gVGhlIGluZGV4IGltbWVkaWF0ZWx5IEJF
WU9ORCB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgYmVpbmcgc2Nhbm5lZC4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbGFzdCh2b2lk
KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRo
ZSBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIGN1cnJlbnQgYm91bmRhcnkuCisgICAgICogQHJldHVy
biBUaGUgY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBwcmV2aW91cyB0ZXh0IGJvdW5kYXJ5IG9yIERP
TkUgaWYgYWxsCisgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHByZXZpb3VzKHZv
aWQpID0gMDsKKworICAgIC8qKgorICAgICAqIEFkdmFuY2UgdGhlIGl0ZXJhdG9yIHRvIHRoZSBi
b3VuZGFyeSBmb2xsb3dpbmcgdGhlIGN1cnJlbnQgYm91bmRhcnkuCisgICAgICogQHJldHVybiBU
aGUgY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBuZXh0IHRleHQgYm91bmRhcnkgb3IgRE9ORSBpZiBh
bGwKKyAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dCh2b2lkKSA9IDA7CisK
KyAgICAvKioKKyAgICAgKiBSZXR1cm4gY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBjdXJyZW50IGlu
dGVyYXRvciBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgYm91
bmRhcnkgbW9zdCByZWNlbnRseSByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgY3VycmVudCh2b2lkKSBjb25zdCA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBBZHZhbmNlIHRoZSBpdGVyYXRvciB0byB0aGUgZmlyc3QgYm91bmRhcnkg
Zm9sbG93aW5nIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIFRoZSB2YWx1ZSByZXR1cm5l
ZCBpcyBhbHdheXMgZ3JlYXRlciB0aGFuIHRoZSBvZmZzZXQgb3IKKyAgICAgKiB0aGUgdmFsdWUg
QnJlYWtJdGVyYXRvci5ET05FCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGJl
Z2luIHNjYW5uaW5nLgorICAgICAqIEByZXR1cm4gVGhlIGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRo
ZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBmb2xsb3dpbmcoaW50MzJfdCBvZmZzZXQpID0gMDsKKworICAgIC8q
KgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGZpcnN0IGJvdW5kYXJ5
IHByZWNlZGluZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBUaGUgdmFsdWUgcmV0dXJu
ZWQgaXMgYWx3YXlzIHNtYWxsZXIgdGhhbiB0aGUgb2Zmc2V0IG9yCisgICAgICogdGhlIHZhbHVl
IEJyZWFrSXRlcmF0b3IuRE9ORQorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBi
ZWdpbiBzY2FubmluZy4KKyAgICAgKiBAcmV0dXJuIFRoZSBmaXJzdCBib3VuZGFyeSBiZWZvcmUg
dGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBpbnQzMl90IHByZWNlZGluZyhpbnQzMl90IG9mZnNldCkgPSAwOworCisgICAg
LyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91
bmRhcnkgcG9zaXRpb24uCisgICAgICogQXMgYSBzaWRlIGVmZmVjdCwgdGhlIGN1cnJlbnQgcG9z
aXRpb24gb2YgdGhlIGl0ZXJhdG9yIGlzIHNldAorICAgICAqIHRvIHRoZSBmaXJzdCBib3VuZGFy
eSBwb3NpdGlvbiBhdCBvciBmb2xsb3dpbmcgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICog
QHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gVHJ1ZSBp
ZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNCb3VuZGFyeShpbnQzMl90IG9mZnNldCkg
PSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUg
bnRoIGJvdW5kYXJ5IGZyb20gdGhlIGN1cnJlbnQgYm91bmRhcnkKKyAgICAgKiBAcGFyYW0gbiB0
aGUgbnVtYmVyIG9mIGJvdW5kYXJpZXMgdG8gbW92ZSBieS4gIEEgdmFsdWUgb2YgMAorICAgICAq
IGRvZXMgbm90aGluZy4gIE5lZ2F0aXZlIHZhbHVlcyBtb3ZlIHRvIHByZXZpb3VzIGJvdW5kYXJp
ZXMKKyAgICAgKiBhbmQgcG9zaXRpdmUgdmFsdWVzIG1vdmUgdG8gbGF0ZXIgYm91bmRhcmllcy4K
KyAgICAgKiBAcmV0dXJuIFRoZSBuZXcgaXRlcmF0b3IgcG9zaXRpb24sIG9yCisgICAgICogRE9O
RSBpZiB0aGVyZSBhcmUgZmV3ZXIgdGhhbiB8bnwgYm91bmRhcmllcyBpbiB0aGUgc3BlY2ZpZWQg
ZGlyZWN0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
aW50MzJfdCBuZXh0KGludDMyX3QgbikgPSAwOworCisgICAvKioKKyAgICAgKiBGb3IgUnVsZUJh
c2VkQnJlYWtJdGVyYXRvcnMsIHJldHVybiB0aGUgc3RhdHVzIHRhZyBmcm9tIHRoZSAKKyAgICAg
KiBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqIHJl
dHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIDxwPgorICAgICAqIEZvciBicmVhayBpdGVy
YXRvciB0eXBlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IGEgcnVsZSBzdGF0dXMsCisgICAgICogYSBk
ZWZhdWx0IHZhbHVlIG9mIDAgaXMgcmV0dXJuZWQuCisgICAgICogPHA+CisgICAgICogQHJldHVy
biB0aGUgc3RhdHVzIGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0
IHJlY2VudGx5CisgICAgICogICAgICAgICByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAg
KiBAc2VlIFJ1bGVCYXNlQnJlYWtJdGVyYXRvcjo6Z2V0UnVsZVN0YXR1cygpCisgICAgICogQHNl
ZSBVV29yZEJyZWFrCisgICAgICogQHN0YWJsZSBJQ1UgNTIKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IGludDMyX3QgZ2V0UnVsZVN0YXR1cygpIGNvbnN0OworCisgICAvKioKKyAgICAqIEZvciBSdWxl
QmFzZWRCcmVha0l0ZXJhdG9ycywgZ2V0IHRoZSBzdGF0dXMgKHRhZykgdmFsdWVzIGZyb20gdGhl
IGJyZWFrIHJ1bGUocykgCisgICAgKiB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkg
cmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgKiA8cD4KKyAgICAqIEZvciBicmVhayBpdGVy
YXRvciB0eXBlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IHJ1bGUgc3RhdHVzLAorICAgICogbm8gdmFs
dWVzIGFyZSByZXR1cm5lZC4KKyAgICAqIDxwPgorICAgICogVGhlIHJldHVybmVkIHN0YXR1cyB2
YWx1ZShzKSBhcmUgc3RvcmVkIGludG8gYW4gYXJyYXkgcHJvdmlkZWQgYnkgdGhlIGNhbGxlci4K
KyAgICAqIFRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiBzb3J0ZWQgKGFzY2VuZGluZykgb3JkZXIu
CisgICAgKiBJZiB0aGUgY2FwYWNpdHkgb2YgdGhlIG91dHB1dCBhcnJheSBpcyBpbnN1ZmZpY2ll
bnQgdG8gaG9sZCB0aGUgZGF0YSwKKyAgICAqICB0aGUgb3V0cHV0IHdpbGwgYmUgdHJ1bmNhdGVk
IHRvIHRoZSBhdmFpbGFibGUgbGVuZ3RoLCBhbmQgYQorICAgICogIFVfQlVGRkVSX09WRVJGTE9X
X0VSUk9SIHdpbGwgYmUgc2lnbmFsZWQuCisgICAgKiA8cD4KKyAgICAqIEBzZWUgUnVsZUJhc2VC
cmVha0l0ZXJhdG9yOjpnZXRSdWxlU3RhdHVzVmVjCisgICAgKgorICAgICogQHBhcmFtIGZpbGxJ
blZlYyBhbiBhcnJheSB0byBiZSBmaWxsZWQgaW4gd2l0aCB0aGUgc3RhdHVzIHZhbHVlcy4KKyAg
ICAqIEBwYXJhbSBjYXBhY2l0eSAgdGhlIGxlbmd0aCBvZiB0aGUgc3VwcGxpZWQgdmVjdG9yLiAg
QSBsZW5ndGggb2YgemVybyBjYXVzZXMKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIGZ1bmN0
aW9uIHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMsIGluIHRoZQorICAgICog
ICAgICAgICAgICAgICAgICBub3JtYWwgd2F5LCB3aXRob3V0IGF0dGVtdHBpbmcgdG8gc3RvcmUg
YW55IHZhbHVlcy4KKyAgICAqIEBwYXJhbSBzdGF0dXMgICAgcmVjZWl2ZXMgZXJyb3IgY29kZXMu
CisgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBudW1iZXIgb2YgcnVsZSBzdGF0dXMgdmFsdWVz
IGZyb20gcnVsZXMgdGhhdCBkZXRlcm1pbmVkCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBt
b3N0IHJlY2VudCBib3VuZGFyeSByZXR1cm5lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAg
KiAgICAgICAgICAgICAgICAgIEluIHRoZSBldmVudCBvZiBhIFVfQlVGRkVSX09WRVJGTE9XX0VS
Uk9SLCB0aGUgcmV0dXJuIHZhbHVlCisgICAgKiAgICAgICAgICAgICAgICAgIGlzIHRoZSB0b3Rh
bCBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcyB0aGF0IHdlcmUgYXZhaWxhYmxlLAorICAgICogICAg
ICAgICAgICAgICAgICBub3QgdGhlIHJlZHVjZWQgbnVtYmVyIHRoYXQgd2VyZSBhY3R1YWxseSBy
ZXR1cm5lZC4KKyAgICAqIEBzZWUgZ2V0UnVsZVN0YXR1cworICAgICogQHN0YWJsZSBJQ1UgNTIK
KyAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3RhdHVzVmVjKGludDMyX3QgKmZp
bGxJblZlYywgaW50MzJfdCBjYXBhY2l0eSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8q
KgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciB3b3JkLWJyZWFrcyB1c2luZyB0aGUg
Z2l2ZW4gbG9jYWxlLgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJh
dG9yIGltcGxlbWVudGluZyB3b3JkIGJyZWFrcy4KKyAgICAgKiBXb3JkQnJlYWsgaXMgdXNlZnVs
IGZvciB3b3JkIHNlbGVjdGlvbiAoZXguIGRvdWJsZSBjbGljaykKKyAgICAgKiBAcGFyYW0gd2hl
cmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBlcnJvciBjb2RlCisgICAg
ICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHdvcmQtYnJlYWtzLiAgVGhlIFVFcnJvckNv
ZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5m
b3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3Ry
dWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFs
dWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0
aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0
cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tf
V0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IK
KyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBm
b3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dB
Uk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICog
dXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJh
Y2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3du
cyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0
b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZVdvcmRJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJl
LCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRl
cmF0b3IgZm9yIGxpbmUtYnJlYWtzIHVzaW5nIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogUmV0
dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIGxpbmUgYnJl
YWtzLiBMaW5lCisgICAgICogYnJlYWtzIGFyZSBsb2dpY2FsbHkgcG9zc2libGUgbGluZSBicmVh
a3MsIGFjdHVhbCBsaW5lIGJyZWFrcyBhcmUKKyAgICAgKiB1c3VhbGx5IGRldGVybWluZWQgYmFz
ZWQgb24gZGlzcGxheSB3aWR0aC4KKyAgICAgKiBMaW5lQnJlYWsgaXMgdXNlZnVsIGZvciB3b3Jk
IHdyYXBwaW5nIHRleHQuCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICog
QHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVy
YXRvciBmb3IgbGluZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFy
YW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4K
KyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5v
dCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4g
IElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBj
aGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRl
IHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0
IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9D
SCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdh
cworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0
aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1
ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291
bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3Qg
YW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3Jl
YXRlTGluZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7
CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3IgY2hhcmFjdGVyLWJy
ZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxlCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBv
ZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIGNoYXJhY3RlciBicmVha3MuCisgICAgICog
Q2hhcmFjdGVyIGJyZWFrcyBhcmUgYm91bmRhcmllcyBvZiBjb21iaW5pbmcgY2hhcmFjdGVyIHNl
cXVlbmNlcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0g
c3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZv
ciBjaGFyYWN0ZXItYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFt
ZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisg
ICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3Qs
IHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJ
ZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hl
Y2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBz
dWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBh
IGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gn
IHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMK
KyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhl
IGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVz
dGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxk
IGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFu
ZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0
ZUNoYXJhY3Rlckluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1
cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3Igc2VudGVuY2Ut
YnJlYWtzIHVzaW5nIHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNl
IG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgc2VudGVuY2UgYnJlYWtzLgorICAgICAq
IEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9y
IGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHNlbnRlbmNlLWJyZWFr
cy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byBy
ZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdo
ZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNr
CisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBk
ZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlv
bmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBV
X1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxl
IHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBi
dXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVf
VVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBk
YXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFu
eSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAg
KiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUg
Zm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0
YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVTZW50ZW5jZUluc3RhbmNl
KGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAg
ICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3IgdGl0bGUtY2FzaW5nIGJyZWFrcyB1c2luZyB0
aGUgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVh
a0l0ZXJhdG9yIGltcGxlbWVudGluZyB0aXRsZSBicmVha3MuCisgICAgICogVGhlIGl0ZXJhdG9y
IHJldHVybmVkIGxvY2F0ZXMgdGl0bGUgYm91bmRhcmllcyBhcyBkZXNjcmliZWQgZm9yCisgICAg
ICogVW5pY29kZSAzLjIgb25seS4gRm9yIFVuaWNvZGUgNC4wIGFuZCBhYm92ZSB0aXRsZSBib3Vu
ZGFyeSBpdGVyYXRpb24sCisgICAgICogcGxlYXNlIHVzZSBXb3JkIEJvdW5kYXJ5IGl0ZXJhdG9y
LntAbGluayAjY3JlYXRlV29yZEluc3RhbmNlIH0KKyAgICAgKgorICAgICAqIEBwYXJhbSB3aGVy
ZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUuCisgICAg
ICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHRpdGxlLWJyZWFrcy4gIFRoZSBVRXJyb3JD
b2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGlu
Zm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0
cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZh
bHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1h
dGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3Vs
dHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNL
X1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9y
CisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMg
Zm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9X
QVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAq
IHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBi
YWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93
bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJh
dG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVUaXRsZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hl
cmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNldCBv
ZiBMb2NhbGVzIGZvciB3aGljaCBUZXh0Qm91bmRhcmllcyBhcmUgaW5zdGFsbGVkLgorICAgICAq
IDxwPjxiPk5vdGU6PC9iPiB0aGlzIHdpbGwgbm90IHJldHVybiBsb2NhbGVzIGFkZGVkIHRocm91
Z2ggdGhlIHJlZ2lzdGVyCisgICAgICogY2FsbC4gVG8gc2VlIHRoZSByZWdpc3RlcmVkIGxvY2Fs
ZXMgdG9vLCB1c2UgdGhlIGdldEF2YWlsYWJsZUxvY2FsZXMKKyAgICAgKiBmdW5jdGlvbiB0aGF0
IHJldHVybnMgYSBTdHJpbmdFbnVtZXJhdGlvbiBvYmplY3QgPC9wPgorICAgICAqIEBwYXJhbSBj
b3VudCB0aGUgb3V0cHV0IHBhcmFtZXRlciBvZiBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGxv
Y2FsZSBsaXN0CisgICAgICogQHJldHVybiBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUqIFVfRVhQT1JUMiBn
ZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIGNvdW50KTsKKworICAgIC8qKgorICAgICAqIEdl
dCBuYW1lIG9mIHRoZSBvYmplY3QgZm9yIHRoZSBkZXNpcmVkIExvY2FsZSwgaW4gdGhlIGRlc2ly
ZWQgbGFuZ2F1Z2UuCisgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSBtdXN0IGJlIGZyb20gZ2V0
QXZhaWxhYmxlTG9jYWxlcy4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSBzcGVjaWZpZXMg
dGhlIGRlc2lyZWQgbG9jYWxlIGZvciBvdXRwdXQuCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGZp
bGwtaW4gcGFyYW1ldGVyIG9mIHRoZSByZXR1cm4gdmFsdWUKKyAgICAgKiBVc2VzIGJlc3QgbWF0
Y2guCisgICAgICogQHJldHVybiB1c2VyLWRpc3BsYXlhYmxlIG5hbWUKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgVV9FWFBPUlQyIGdl
dERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgb2JqZWN0TG9jYWxlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMb2NhbGUmIGRpc3BsYXlMb2NhbGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIG5h
bWUpOworCisgICAgLyoqCisgICAgICogR2V0IG5hbWUgb2YgdGhlIG9iamVjdCBmb3IgdGhlIGRl
c2lyZWQgTG9jYWxlLCBpbiB0aGUgbGFuZ2F1Z2Ugb2YgdGhlCisgICAgICogZGVmYXVsdCBsb2Nh
bGUuCisgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSBtdXN0IGJlIGZyb20gZ2V0TWF0Y2hpbmdM
b2NhbGVzCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGZpbGwtaW4gcGFyYW1ldGVyIG9mIHRoZSBy
ZXR1cm4gdmFsdWUKKyAgICAgKiBAcmV0dXJuIHVzZXItZGlzcGxheWFibGUgbmFtZQorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBVX0VY
UE9SVDIgZ2V0RGlzcGxheU5hbWUoY29uc3QgTG9jYWxlJiBvYmplY3RMb2NhbGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIG5hbWUpOwor
CisgICAgLyoqCisgICAgICogRGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5LiBVc2UgY2xvbmUoKSBp
bnN0ZWFkLgorICAgICAqCisgICAgICogVGhyZWFkIHNhZmUgY2xpZW50LWJ1ZmZlci1iYXNlZCBj
bG9uaW5nIG9wZXJhdGlvbgorICAgICAqICAgIERvIE5PVCBjYWxsIGRlbGV0ZSBvbiBhIHNhZmVj
bG9uZSwgc2luY2UgJ25ldycgaXMgbm90IHVzZWQgdG8gY3JlYXRlIGl0LgorICAgICAqIEBwYXJh
bSBzdGFja0J1ZmZlciB1c2VyIGFsbG9jYXRlZCBzcGFjZSBmb3IgdGhlIG5ldyBjbG9uZS4gSWYg
TlVMTCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgorICAgICAqIElmIGJ1ZmZlciBpcyBu
b3QgbGFyZ2UgZW5vdWdoLCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgorICAgICAqIEBw
YXJhbSBCdWZmZXJTaXplIHJlZmVyZW5jZSB0byBzaXplIG9mIGFsbG9jYXRlZCBzcGFjZS4KKyAg
ICAgKiBJZiBCdWZmZXJTaXplID09IDAsIGEgc3VmZmljaWVudCBzaXplIGZvciB1c2UgaW4gY2xv
bmluZyB3aWxsCisgICAgICogYmUgcmV0dXJuZWQgKCdwcmUtZmxpZ2h0aW5nJykKKyAgICAgKiBJ
ZiBCdWZmZXJTaXplIGlzIG5vdCBlbm91Z2ggZm9yIGEgc3RhY2stYmFzZWQgc2FmZSBjbG9uZSwK
KyAgICAgKiBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgorICAgICAqIEBwYXJhbSBzdGF0
dXMgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgb3BlcmF0aW9uIHdlbnQgb24gc21vb3RobHkgb3Ig
dGhlcmUgd2VyZSBlcnJvcnMKKyAgICAgKiAgQW4gaW5mb3JtYXRpb25hbCBzdGF0dXMgdmFsdWUs
IFVfU0FGRUNMT05FX0FMTE9DQVRFRF9FUlJPUiwgaXMgdXNlZCBpZiBhbnkgYWxsb2NhdGlvbnMg
d2VyZQorICAgICAqICBuZWNlc3NhcnkuCisgICAgICogQHJldHVybiBwb2ludGVyIHRvIHRoZSBu
ZXcgY2xvbmUKKyAgICAgKgorICAgICAqIEBkZXByZWNhdGVkIElDVSA1Mi4gVXNlIGNsb25lKCkg
aW5zdGVhZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IgKiAgY3JlYXRlQnVm
ZmVyQ2xvbmUodm9pZCAqc3RhY2tCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludDMyX3QgJkJ1ZmZlclNpemUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgJnN0YXR1cykgPSAwOwor
CisjaWZuZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQorCisgICAgLyoqCisgICAgICogICBEZXRl
cm1pbmUgd2hldGhlciB0aGUgQnJlYWtJdGVyYXRvciB3YXMgY3JlYXRlZCBpbiB1c2VyIG1lbW9y
eSBieQorICAgICAqICAgY3JlYXRlQnVmZmVyQ2xvbmUoKSwgYW5kIHRodXMgc2hvdWxkIG5vdCBi
ZSBkZWxldGVkLiAgU3VjaCBvYmplY3RzCisgICAgICogICBtdXN0IGJlIGNsb3NlZCBieSBhbiBl
eHBsaWNpdCBjYWxsIHRvIHRoZSBkZXN0cnVjdG9yIChub3QgZGVsZXRlKS4KKyAgICAgKiBAZGVw
cmVjYXRlZCBJQ1UgNTIuIEFsd2F5cyBkZWxldGUgdGhlIEJyZWFrSXRlcmF0b3IuCisgICAgICov
CisgICAgaW5saW5lIFVCb29sIGlzQnVmZmVyQ2xvbmUodm9pZCk7CisKKyNlbmRpZiAvKiBVX0hJ
REVfREVQUkVDQVRFRF9BUEkgKi8KKworI2lmICFVQ09ORklHX05PX1NFUlZJQ0UKKyAgICAvKioK
KyAgICAgKiBSZWdpc3RlciBhIG5ldyBicmVhayBpdGVyYXRvciBvZiB0aGUgaW5kaWNhdGVkIGtp
bmQsIHRvIHVzZSBpbiB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIFRoZSBicmVhayBpdGVyYXRv
ciB3aWxsIGJlIGFkb3B0ZWQuICBDbG9uZXMgb2YgdGhlIGl0ZXJhdG9yIHdpbGwgYmUgcmV0dXJu
ZWQKKyAgICAgKiBpZiBhIHJlcXVlc3QgZm9yIGEgYnJlYWsgaXRlcmF0b3Igb2YgdGhlIGdpdmVu
IGtpbmQgbWF0Y2hlcyBvciBmYWxscyBiYWNrIHRvCisgICAgICogdGhpcyBsb2NhbGUuCisgICAg
ICogQmVjYXVzZSBJQ1UgbWF5IGNob29zZSB0byBjYWNoZSBCcmVha0l0ZXJhdG9ycyBpbnRlcm5h
bGx5LCB0aGlzIG11c3QKKyAgICAgKiBiZSBjYWxsZWQgYXQgYXBwbGljYXRpb24gc3RhcnR1cCwg
cHJpb3IgdG8gYW55IGNhbGxzIHRvCisgICAgICogQnJlYWtJdGVyYXRvcjo6Y3JlYXRlWFhYSW5z
dGFuY2UgdG8gYXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9yLgorICAgICAqIEBwYXJhbSB0b0Fkb3B0
IHRoZSBCcmVha0l0ZXJhdG9yIGluc3RhbmNlIHRvIGJlIGFkb3B0ZWQKKyAgICAgKiBAcGFyYW0g
bG9jYWxlIHRoZSBMb2NhbGUgZm9yIHdoaWNoIHRoaXMgaW5zdGFuY2UgaXMgdG8gYmUgcmVnaXN0
ZXJlZAorICAgICAqIEBwYXJhbSBraW5kIHRoZSB0eXBlIG9mIGl0ZXJhdG9yIGZvciB3aGljaCB0
aGlzIGluc3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQKKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRo
ZSBpbi9vdXQgc3RhdHVzIGNvZGUsIG5vIHNwZWNpYWwgbWVhbmluZ3MgYXJlIGFzc2lnbmVkCisg
ICAgICogQHJldHVybiBhIHJlZ2lzdHJ5IGtleSB0aGF0IGNhbiBiZSB1c2VkIHRvIHVucmVnaXN0
ZXIgdGhpcyBpbnN0YW5jZQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHN0
YXRpYyBVUmVnaXN0cnlLZXkgVV9FWFBPUlQyIHJlZ2lzdGVySW5zdGFuY2UoQnJlYWtJdGVyYXRv
ciogdG9BZG9wdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBMb2NhbGUmIGxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVQnJlYWtJdGVyYXRvclR5cGUga2luZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVW5yZWdp
c3RlciBhIHByZXZpb3VzbHktcmVnaXN0ZXJlZCBCcmVha0l0ZXJhdG9yIHVzaW5nIHRoZSBrZXkg
cmV0dXJuZWQgZnJvbSB0aGUKKyAgICAgKiByZWdpc3RlciBjYWxsLiAgS2V5IGJlY29tZXMgaW52
YWxpZCBhZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGFnYWlu
LgorICAgICAqIFRoZSBCcmVha0l0ZXJhdG9yIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGtleSB3aWxs
IGJlIGRlbGV0ZWQuCisgICAgICogQmVjYXVzZSBJQ1UgbWF5IGNob29zZSB0byBjYWNoZSBCcmVh
a0l0ZXJhdG9ycyBpbnRlcm5hbGx5LCB0aGlzIHNob3VsZAorICAgICAqIGJlIGNhbGxlZCBkdXJp
bmcgYXBwbGljYXRpb24gc2h1dGRvd24sIGFmdGVyIGFsbCBjYWxscyB0bworICAgICAqIEJyZWFr
SXRlcmF0b3I6OmNyZWF0ZVhYWEluc3RhbmNlIHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhhdmlvci4K
KyAgICAgKiBAcGFyYW0ga2V5IHRoZSByZWdpc3RyeSBrZXkgcmV0dXJuZWQgYnkgYSBwcmV2aW91
cyBjYWxsIHRvIHJlZ2lzdGVySW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBpbi9v
dXQgc3RhdHVzIGNvZGUsIG5vIHNwZWNpYWwgbWVhbmluZ3MgYXJlIGFzc2lnbmVkCisgICAgICog
QHJldHVybiBUUlVFIGlmIHRoZSBpdGVyYXRvciBmb3IgdGhlIGtleSB3YXMgc3VjY2Vzc2Z1bGx5
IHVucmVnaXN0ZXJlZAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHN0YXRp
YyBVQm9vbCBVX0VYUE9SVDIgdW5yZWdpc3RlcihVUmVnaXN0cnlLZXkga2V5LCBVRXJyb3JDb2Rl
JiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgU3RyaW5nRW51bWVyYXRpb24g
b3ZlciB0aGUgbG9jYWxlcyBhdmFpbGFibGUgYXQgdGhlIHRpbWUgb2YgdGhlIGNhbGwsCisgICAg
ICogaW5jbHVkaW5nIHJlZ2lzdGVyZWQgbG9jYWxlcy4KKyAgICAgKiBAcmV0dXJuIGEgU3RyaW5n
RW51bWVyYXRpb24gb3ZlciB0aGUgbG9jYWxlcyBhdmFpbGFibGUgYXQgdGhlIHRpbWUgb2YgdGhl
IGNhbGwKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBzdGF0aWMgU3RyaW5n
RW51bWVyYXRpb24qIFVfRVhQT1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKHZvaWQpOworI2VuZGlm
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUgZm9yIHRoaXMgYnJlYWsgaXRl
cmF0b3IuIFR3byBmbGF2b3JzIGFyZSBhdmFpbGFibGU6IHZhbGlkIGFuZAorICAgICAqIGFjdHVh
bCBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgTG9jYWxlIGdl
dExvY2FsZShVTG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwgVUVycm9yQ29kZSYgc3RhdHVzKSBjb25z
dDsKKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoqIEdldCB0aGUgbG9jYWxl
IGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yIG9iamVjdC4gWW91IGNhbiBjaG9vc2UgYmV0d2VlbiB2
YWxpZCBhbmQgYWN0dWFsIGxvY2FsZS4KKyAgICAgKiAgQHBhcmFtIHR5cGUgdHlwZSBvZiB0aGUg
bG9jYWxlIHdlJ3JlIGxvb2tpbmcgZm9yICh2YWxpZCBvciBhY3R1YWwpCisgICAgICogIEBwYXJh
bSBzdGF0dXMgZXJyb3IgY29kZSBmb3IgdGhlIG9wZXJhdGlvbgorICAgICAqICBAcmV0dXJuIHRo
ZSBsb2NhbGUKKyAgICAgKiAgQGludGVybmFsCisgICAgICovCisgICAgY29uc3QgY2hhciAqZ2V0
TG9jYWxlSUQoVUxvY0RhdGFMb2NhbGVUeXBlIHR5cGUsIFVFcnJvckNvZGUmIHN0YXR1cykgY29u
c3Q7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworICAgIC8qKgorICAgICAq
ICBTZXQgdGhlIHN1YmplY3QgdGV4dCBzdHJpbmcgdXBvbiB3aGljaCB0aGUgYnJlYWsgaXRlcmF0
b3IgaXMgb3BlcmF0aW5nCisgICAgICogIHdpdGhvdXQgY2hhbmdpbmcgYW55IG90aGVyIGFzcGVj
dCBvZiB0aGUgbWF0Y2hpbmcgc3RhdGUuCisgICAgICogIFRoZSBuZXcgYW5kIHByZXZpb3VzIHRl
eHQgc3RyaW5ncyBtdXN0IGhhdmUgdGhlIHNhbWUgY29udGVudC4KKyAgICAgKgorICAgICAqICBU
aGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2UgaW4gZW52aXJvbm1lbnRzIHdoZXJlIElD
VSBpcyBvcGVyYXRpbmcgb24KKyAgICAgKiAgc3RyaW5ncyB0aGF0IG1heSBtb3ZlIGFyb3VuZCBp
biBtZW1vcnkuICBJdCBwcm92aWRlcyBhIG1lY2hhbmlzbSBmb3Igbm90aWZ5aW5nCisgICAgICog
IElDVSB0aGF0IHRoZSBzdHJpbmcgaGFzIGJlZW4gcmVsb2NhdGVkLCBhbmQgcHJvdmlkaW5nIGEg
bmV3IFVUZXh0IHRvIGFjY2VzcyB0aGUKKyAgICAgKiAgc3RyaW5nIGluIGl0cyBuZXcgcG9zaXRp
b24uCisgICAgICoKKyAgICAgKiAgTm90ZSB0aGF0IHRoZSBicmVhayBpdGVyYXRvciBpbXBsZW1l
bnRhdGlvbiBuZXZlciBjb3BpZXMgdGhlIHVuZGVybHlpbmcgdGV4dAorICAgICAqICBvZiBhIHN0
cmluZyBiZWluZyBwcm9jZXNzZWQsIGJ1dCBhbHdheXMgb3BlcmF0ZXMgZGlyZWN0bHkgb24gdGhl
IG9yaWdpbmFsIHRleHQKKyAgICAgKiAgcHJvdmlkZWQgYnkgdGhlIHVzZXIuIFJlZnJlc2hpbmcg
c2ltcGx5IGRyb3BzIHRoZSByZWZlcmVuY2VzIHRvIHRoZSBvbGQgdGV4dAorICAgICAqICBhbmQg
cmVwbGFjZXMgdGhlbSB3aXRoIHJlZmVyZW5jZXMgdG8gdGhlIG5ldy4KKyAgICAgKgorICAgICAq
ICBDYXV0aW9uOiAgdGhpcyBmdW5jdGlvbiBpcyBub3JtYWxseSB1c2VkIG9ubHkgYnkgdmVyeSBz
cGVjaWFsaXplZCwKKyAgICAgKiAgc3lzdGVtLWxldmVsIGNvZGUuICBPbmUgZXhhbXBsZSB1c2Ug
Y2FzZSBpcyB3aXRoIGdhcmJhZ2UgY29sbGVjdGlvbiB0aGF0IG1vdmVzCisgICAgICogIHRoZSB0
ZXh0IGluIG1lbW9yeS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnB1dCAgICAgIFRoZSBuZXcg
KG1vdmVkKSB0ZXh0IHN0cmluZy4KKyAgICAgKiBAcGFyYW0gc3RhdHVzICAgICBSZWNlaXZlcyBl
cnJvcnMgZGV0ZWN0ZWQgYnkgdGhpcyBmdW5jdGlvbi4KKyAgICAgKiBAcmV0dXJuICAgICAgICAg
ICAqdGhpcworICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgNDkKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIEJyZWFrSXRlcmF0b3IgJnJlZnJlc2hJbnB1dFRleHQoVVRleHQgKmlucHV0LCBVRXJyb3JD
b2RlICZzdGF0dXMpID0gMDsKKworIHByaXZhdGU6CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3Iq
IGJ1aWxkSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2MsIGNvbnN0IGNoYXIgKnR5cGUsIGludDMy
X3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciog
Y3JlYXRlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBsb2MsIGludDMyX3Qga2luZCwgVUVycm9yQ29k
ZSYgc3RhdHVzKTsKKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogbWFrZUluc3RhbmNlKGNvbnN0
IExvY2FsZSYgbG9jLCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICBm
cmllbmQgY2xhc3MgSUNVQnJlYWtJdGVyYXRvckZhY3Rvcnk7CisgICAgZnJpZW5kIGNsYXNzIElD
VUJyZWFrSXRlcmF0b3JTZXJ2aWNlOworCitwcm90ZWN0ZWQ6CisgICAgLy8gRG8gbm90IGVuY2xv
c2UgcHJvdGVjdGVkIGRlZmF1bHQvY29weSBjb25zdHJ1Y3RvcnMgd2l0aCAjaWZuZGVmIFVfSElE
RV9JTlRFUk5BTF9BUEkKKyAgICAvLyBvciBlbHNlIHRoZSBjb21waWxlciB3aWxsIGNyZWF0ZSBh
IHB1YmxpYyBvbmVzLgorICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJhdG9yKCk7
CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFrSXRlcmF0b3IgKGNvbnN0IEJyZWFrSXRl
cmF0b3IgJm90aGVyKSA6IFVPYmplY3Qob3RoZXIpIHt9CisgICAgLyoqIEBpbnRlcm5hbCAqLwor
ICAgIEJyZWFrSXRlcmF0b3IgKGNvbnN0IExvY2FsZSYgdmFsaWQsIGNvbnN0IExvY2FsZSYgYWN0
dWFsKTsKK3ByaXZhdGU6CisKKyAgICAvKiogQGludGVybmFsICovCisgICAgY2hhciBhY3R1YWxM
b2NhbGVbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07CisgICAgY2hhciB2YWxpZExvY2FsZVtVTE9D
X0ZVTExOQU1FX0NBUEFDSVRZXTsKKworICAgIC8qKgorICAgICAqIFRoZSBhc3NpZ25tZW50IG9w
ZXJhdG9yIGhhcyBubyByZWFsIGltcGxlbWVudGF0aW9uLgorICAgICAqIEl0J3MgcHJvdmlkZWQg
dG8gbWFrZSB0aGUgY29tcGlsZXIgaGFwcHkuIERvIG5vdCBjYWxsLgorICAgICAqLworICAgIEJy
ZWFrSXRlcmF0b3ImIG9wZXJhdG9yPShjb25zdCBCcmVha0l0ZXJhdG9yJik7Cit9OworCisjaWZu
ZGVmIFVfSElERV9ERVBSRUNBVEVEX0FQSQorCitpbmxpbmUgVUJvb2wgQnJlYWtJdGVyYXRvcjo6
aXNCdWZmZXJDbG9uZSgpCit7CisgICAgcmV0dXJuIEZBTFNFOworfQorCisjZW5kaWYgLyogVV9I
SURFX0RFUFJFQ0FURURfQVBJICovCisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYgLyogI2lm
ICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiAqLworCisjZW5kaWYgLy8gX0JSS0lURVIKKy8v
ZW9mCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmggYi9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThkNjUwOTBhNDBhNjA4
NTk1MWM3MzMwN2Y3NGFjZjgzYmExYmJjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvY2hhcml0ZXIuaApAQCAtMCwwICsxLDcyMiBAQAorLyoKKyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3Mg
TWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIENIQVJJVEVSX0gKKyNkZWZpbmUgQ0hB
UklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VuaXN0ci5oIgorLyoqCisgKiBcZmlsZQor
ICogXGJyaWVmIEMrKyBBUEk6IENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVTUEFD
RV9CRUdJTgorLyoqCisgKiBBYnN0cmFjdCBjbGFzcyB0aGF0IGRlZmluZXMgYW4gQVBJIGZvciBm
b3J3YXJkLW9ubHkgaXRlcmF0aW9uCisgKiBvbiB0ZXh0IG9iamVjdHMuCisgKiBUaGlzIGlzIGEg
bWluaW1hbCBpbnRlcmZhY2UgZm9yIGl0ZXJhdGlvbiB3aXRob3V0IHJhbmRvbSBhY2Nlc3MKKyAq
IG9yIGJhY2t3YXJkcyBpdGVyYXRpb24uIEl0IGlzIGVzcGVjaWFsbHkgdXNlZnVsIGZvciB3cmFw
cGluZworICogc3RyZWFtcyB3aXRoIGNvbnZlcnRlcnMgaW50byBhbiBvYmplY3QgZm9yIGNvbGxh
dGlvbiBvcgorICogbm9ybWFsaXphdGlvbi4KKyAqCisgKiA8cD5DaGFyYWN0ZXJzIGNhbiBiZSBh
Y2Nlc3NlZCBpbiB0d28gd2F5czogYXMgY29kZSB1bml0cyBvciBhcworICogY29kZSBwb2ludHMu
CisgKiBVbmljb2RlIGNvZGUgcG9pbnRzIGFyZSAyMS1iaXQgaW50ZWdlcnMgYW5kIGFyZSB0aGUg
c2NhbGFyIHZhbHVlcworICogb2YgVW5pY29kZSBjaGFyYWN0ZXJzLiBJQ1UgdXNlcyB0aGUgdHlw
ZSBVQ2hhcjMyIGZvciB0aGVtLgorICogVW5pY29kZSBjb2RlIHVuaXRzIGFyZSB0aGUgc3RvcmFn
ZSB1bml0cyBvZiBhIGdpdmVuCisgKiBVbmljb2RlL1VDUyBUcmFuc2Zvcm1hdGlvbiBGb3JtYXQg
KGEgY2hhcmFjdGVyIGVuY29kaW5nIHNjaGVtZSkuCisgKiBXaXRoIFVURi0xNiwgYWxsIGNvZGUg
cG9pbnRzIGNhbiBiZSByZXByZXNlbnRlZCB3aXRoIGVpdGhlciBvbmUKKyAqIG9yIHR3byBjb2Rl
IHVuaXRzICgic3Vycm9nYXRlcyIpLgorICogU3RyaW5nIHN0b3JhZ2UgaXMgdHlwaWNhbGx5IGJh
c2VkIG9uIGNvZGUgdW5pdHMsIHdoaWxlIHByb3BlcnRpZXMKKyAqIG9mIGNoYXJhY3RlcnMgYXJl
IHR5cGljYWxseSBkZXRlcm1pbmVkIHVzaW5nIGNvZGUgcG9pbnQgdmFsdWVzLgorICogU29tZSBw
cm9jZXNzZXMgbWF5IGJlIGRlc2lnbmVkIHRvIHdvcmsgd2l0aCBzZXF1ZW5jZXMgb2YgY29kZSB1
bml0cywKKyAqIG9yIGl0IG1heSBiZSBrbm93biB0aGF0IGFsbCBjaGFyYWN0ZXJzIHRoYXQgYXJl
IGltcG9ydGFudCB0byBhbgorICogYWxnb3JpdGhtIGNhbiBiZSByZXByZXNlbnRlZCB3aXRoIHNp
bmdsZSBjb2RlIHVuaXRzLgorICogT3RoZXIgcHJvY2Vzc2VzIHdpbGwgbmVlZCB0byB1c2UgdGhl
IGNvZGUgcG9pbnQgYWNjZXNzIGZ1bmN0aW9ucy48L3A+CisgKgorICogPHA+Rm9yd2FyZENoYXJh
Y3Rlckl0ZXJhdG9yIHByb3ZpZGVzIG5leHRQb3N0SW5jKCkgdG8gYWNjZXNzCisgKiBhIGNvZGUg
dW5pdCBhbmQgYWR2YW5jZSBhbiBpbnRlcm5hbCBwb3NpdGlvbiBpbnRvIHRoZSB0ZXh0IG9iamVj
dCwKKyAqIHNpbWlsYXIgdG8gYSA8Y29kZT5yZXR1cm4gdGV4dFtwb3NpdGlvbisrXTwvY29kZT4u
PGJyPgorICogSXQgcHJvdmlkZXMgbmV4dDMyUG9zdEluYygpIHRvIGFjY2VzcyBhIGNvZGUgcG9p
bnQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwKKyAqIHBvc2l0aW9uLjwvcD4KKyAqCisgKiA8cD5u
ZXh0MzJQb3N0SW5jKCkgYXNzdW1lcyB0aGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIHRoYXQg
b2YKKyAqIHRoZSBiZWdpbm5pbmcgb2YgYSBjb2RlIHBvaW50LCBpLmUuLCBvZiBpdHMgZmlyc3Qg
Y29kZSB1bml0LgorICogQWZ0ZXIgbmV4dDMyUG9zdEluYygpLCB0aGlzIHdpbGwgYmUgdHJ1ZSBh
Z2Fpbi4KKyAqIEluIGdlbmVyYWwsIGFjY2VzcyB0byBjb2RlIHVuaXRzIGFuZCBjb2RlIHBvaW50
cyBpbiB0aGUgc2FtZQorICogaXRlcmF0aW9uIGxvb3Agc2hvdWxkIG5vdCBiZSBtaXhlZC4gSW4g
VVRGLTE2LCBpZiB0aGUgY3VycmVudCBwb3NpdGlvbgorICogaXMgb24gYSBzZWNvbmQgY29kZSB1
bml0IChMb3cgU3Vycm9nYXRlKSwgdGhlbiBvbmx5IHRoYXQgY29kZSB1bml0CisgKiBpcyByZXR1
cm5lZCBldmVuIGJ5IG5leHQzMlBvc3RJbmMoKS48L3A+CisgKgorICogPHA+Rm9yIGl0ZXJhdGlv
biB3aXRoIGVpdGhlciBmdW5jdGlvbiwgdGhlcmUgYXJlIHR3byB3YXlzIHRvCisgKiBjaGVjayBm
b3IgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uLiBXaGVuIHRoZXJlIGFyZSBubyBtb3JlCisgKiBj
aGFyYWN0ZXJzIGluIHRoZSB0ZXh0IG9iamVjdDoKKyAqIDx1bD4KKyAqIDxsaT5UaGUgaGFzTmV4
dCgpIGZ1bmN0aW9uIHJldHVybnMgRkFMU0UuPC9saT4KKyAqIDxsaT5uZXh0UG9zdEluYygpIGFu
ZCBuZXh0MzJQb3N0SW5jKCkgcmV0dXJuIERPTkUKKyAqICAgICB3aGVuIG9uZSBhdHRlbXB0cyB0
byByZWFkIGJleW9uZCB0aGUgZW5kIG9mIHRoZSB0ZXh0IG9iamVjdC48L2xpPgorICogPC91bD4K
KyAqCisgKiBFeGFtcGxlOgorICogXGNvZGUgCisgKiB2b2lkIGZ1bmN0aW9uMShGb3J3YXJkQ2hh
cmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIzMiBjOworICogICAgIHdoaWxlKGl0
Lmhhc05leHQoKSkgeworICogICAgICAgICBjPWl0Lm5leHQzMlBvc3RJbmMoKTsKKyAqICAgICAg
ICAgLy8gdXNlIGMKKyAqICAgICB9CisgKiB9CisgKgorICogdm9pZCBmdW5jdGlvbjEoRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyIGM7CisgKiAgICAgd2hpbGUo
KGM9aXQubmV4dFBvc3RJbmMoKSkhPUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjo6RE9ORSkgewor
ICogICAgICAgICAvLyB1c2UgYworICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwv
cD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIEZvcndh
cmRDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1YmxpYzoKKyAgICAvKioK
KyAgICAgKiBWYWx1ZSByZXR1cm5lZCBieSBtb3N0IG9mIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRv
cidzIGZ1bmN0aW9ucworICAgICAqIHdoZW4gdGhlIGl0ZXJhdG9yIGhhcyByZWFjaGVkIHRoZSBs
aW1pdHMgb2YgaXRzIGl0ZXJhdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBlbnVtIHsgRE9ORSA9IDB4ZmZmZiB9OworICAgIAorICAgIC8qKgorICAgICAqIERlc3Ry
dWN0b3IuICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIH5G
b3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5z
IHRydWUgd2hlbiBib3RoIGl0ZXJhdG9ycyByZWZlciB0byB0aGUgc2FtZQorICAgICAqIGNoYXJh
Y3RlciBpbiB0aGUgc2FtZSBjaGFyYWN0ZXItc3RvcmFnZSBvYmplY3QuICAKKyAgICAgKiBAcGFy
YW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBl
cXVhbGl0eQorICAgICAqIEByZXR1cm4gdHJ1ZSB3aGVuIGJvdGggaXRlcmF0b3JzIHJlZmVyIHRv
IHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIGNoYXJhY3Rlci1zdG9yYWdl
IG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJv
b2wgb3BlcmF0b3I9PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0
ID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgd2hlbiB0aGUgaXRlcmF0
b3JzIHJlZmVyIHRvIGRpZmZlcmVudAorICAgICAqIHRleHQtc3RvcmFnZSBvYmplY3RzLCBvciB0
byBkaWZmZXJlbnQgY2hhcmFjdGVycyBpbiB0aGUKKyAgICAgKiBzYW1lIHRleHQtc3RvcmFnZSBv
YmplY3QuICAKKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
IHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5CisgICAgICogQHJldHVybiB0cnVlIHdoZW4g
dGhlIGl0ZXJhdG9ycyByZWZlciB0byBkaWZmZXJlbnQKKyAgICAgKiB0ZXh0LXN0b3JhZ2Ugb2Jq
ZWN0cywgb3IgdG8gZGlmZmVyZW50IGNoYXJhY3RlcnMgaW4gdGhlCisgICAgICogc2FtZSB0ZXh0
LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5s
aW5lIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0
KSBjb25zdDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9y
IHRoaXMgaXRlcmF0b3IuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBoYXNoIGNvZGUuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGhhc2hDb2RlKHZv
aWQpIGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgVUNsYXNzSUQg
Zm9yIHRoaXMgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICgicG9vciBtYW4ncworICAgICAqIFJU
VEkiKS48UD4gRGVzcGl0ZSB0aGUgZmFjdCB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgcHVibGljLAor
ICAgICAqIERPIE5PVCBDT05TSURFUiBJVCBQQVJUIE9GIENIQVJBQ1RFUklURVJBVE9SJ1MgQVBJ
ISAKKyAgICAgKiBAcmV0dXJuIGEgVUNsYXNzSUQgZm9yIHRoaXMgRm9yd2FyZENoYXJhY3Rlckl0
ZXJhdG9yIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNs
YXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3QgPSAwOworICAgIAorICAgIC8qKgor
ICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSB1bml0IGZvciByZXR1cm5pbmcgYW5kIGFkdmFu
Y2VzIHRvIHRoZSBuZXh0IGNvZGUgdW5pdAorICAgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UK
KyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9y
ZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgICAqIEByZXR1cm4gdGhl
IGN1cnJlbnQgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0UG9zdEluYyh2b2lkKSA9IDA7CisgICAgCisgICAg
LyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBjb2RlIHBvaW50IGZvciByZXR1cm5pbmcgYW5k
IGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICAgKiBpbiB0aGUgaXRlcmF0aW9u
IHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgICAq
IG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICogQHJl
dHVybiB0aGUgY3VycmVudCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzJQb3N0SW5jKHZvaWQpID0gMDsK
KyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3Jl
IGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAgKiBhdCBvciBhZnRlciB0aGUgY3VycmVu
dCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIFRoaXMgaXMgdXNlZCB3
aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9zdEluYygpIGluIGZvcndhcmQKKyAgICAgKiBp
dGVyYXRpb24uCisgICAgICogQHJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29k
ZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBv
c2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzTmV4dCgpID0gMDsKKyAgICAKK3By
b3RlY3RlZDoKKyAgICAvKiogRGVmYXVsdCBjb25zdHJ1Y3RvciB0byBiZSBvdmVycmlkZGVuIGlu
IHRoZSBpbXBsZW1lbnRpbmcgY2xhc3MuIEBzdGFibGUgSUNVIDIuMCovCisgICAgRm9yd2FyZENo
YXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgCisgICAgLyoqIENvcHkgY29uc3RydWN0b3IgdG8gYmUg
b3ZlcnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLiBAc3RhYmxlIElDVSAyLjAqLwor
ICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0
b3IgJm90aGVyKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yIHRv
IGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGluZyBjbGFzcy4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgJm9wZXJhdG9y
PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImKSB7IHJldHVybiAqdGhpczsgfQorfTsK
KworLyoqCisgKiBBYnN0cmFjdCBjbGFzcyB0aGF0IGRlZmluZXMgYW4gQVBJIGZvciBpdGVyYXRp
b24KKyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMgaXMgYW4gaW50ZXJmYWNlIGZvciBmb3J3
YXJkIGFuZCBiYWNrd2FyZCBpdGVyYXRpb24KKyAqIGFuZCByYW5kb20gYWNjZXNzIGludG8gYSB0
ZXh0IG9iamVjdC4KKyAqCisgKiA8cD5UaGUgQVBJIHByb3ZpZGVzIGJhY2t3YXJkIGNvbXBhdGli
aWxpdHkgdG8gdGhlIEphdmEgYW5kIG9sZGVyIElDVQorICogQ2hhcmFjdGVySXRlcmF0b3IgY2xh
c3NlcyBidXQgZXh0ZW5kcyB0aGVtIHNpZ25pZmljYW50bHk6CisgKiA8b2w+CisgKiA8bGk+Q2hh
cmFjdGVySXRlcmF0b3IgaXMgbm93IGEgc3ViY2xhc3Mgb2YgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yLjwvbGk+CisgKiA8bGk+V2hpbGUgdGhlIG9sZCBBUEkgZnVuY3Rpb25zIHByb3ZpZGVkIGZv
cndhcmQgaXRlcmF0aW9uIHdpdGgKKyAqICAgICAicHJlLWluY3JlbWVudCIgc2VtYW50aWNzLCB0
aGUgbmV3IG9uZSBhbHNvIHByb3ZpZGVzIGZ1bmN0aW9ucworICogICAgIHdpdGggInBvc3QtaW5j
cmVtZW50IiBzZW1hbnRpY3MuIFRoZXkgYXJlIG1vcmUgZWZmaWNpZW50IGFuZCBzaG91bGQKKyAq
ICAgICBiZSB0aGUgcHJlZmVycmVkIGl0ZXJhdG9yIGZ1bmN0aW9ucyBmb3IgbmV3IGltcGxlbWVu
dGF0aW9ucy4KKyAqICAgICBUaGUgYmFja3dhcmQgaXRlcmF0aW9uIGFsd2F5cyBoYWQgInByZS1k
ZWNyZW1lbnQiIHNlbWFudGljcywgd2hpY2gKKyAqICAgICBhcmUgZWZmaWNpZW50LjwvbGk+Cisg
KiA8bGk+SnVzdCBsaWtlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciwgaXQgcHJvdmlkZXMgYWNj
ZXNzIHRvCisgKiAgICAgYm90aCBjb2RlIHVuaXRzIGFuZCBjb2RlIHBvaW50cy4gQ29kZSBwb2lu
dCBhY2Nlc3MgdmVyc2lvbnMgYXJlIGF2YWlsYWJsZQorICogICAgIGZvciB0aGUgb2xkIGFuZCB0
aGUgbmV3IGl0ZXJhdGlvbiBzZW1hbnRpY3MuPC9saT4KKyAqIDxsaT5UaGVyZSBhcmUgbmV3IGZ1
bmN0aW9ucyBmb3Igc2V0dGluZyBhbmQgbW92aW5nIHRoZSBjdXJyZW50IHBvc2l0aW9uCisgKiAg
ICAgd2l0aG91dCByZXR1cm5pbmcgYSBjaGFyYWN0ZXIsIGZvciBlZmZpY2llbmN5LjwvbGk+Cisg
KiA8L29sPgorICoKKyAqIFNlZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgZm9yIGV4YW1wbGVz
IGZvciB1c2luZyB0aGUgbmV3IGZvcndhcmQgaXRlcmF0aW9uCisgKiBmdW5jdGlvbnMuIEZvciBi
YWNrd2FyZCBpdGVyYXRpb24sIHRoZXJlIGlzIGFsc28gYSBoYXNQcmV2aW91cygpIGZ1bmN0aW9u
CisgKiB0aGF0IGNhbiBiZSB1c2VkIGFuYWxvZ291c2x5IHRvIGhhc05leHQoKS4KKyAqIFRoZSBv
bGQgZnVuY3Rpb25zIHdvcmsgYXMgYmVmb3JlIGFuZCBhcmUgc2hvd24gYmVsb3cuPC9wPgorICoK
KyAqIDxwPkV4YW1wbGVzIGZvciBzb21lIG9mIHRoZSBuZXcgZnVuY3Rpb25zOjwvcD4KKyAqCisg
KiBGb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIGhhc05leHQoKToKKyAqIFxjb2RlCisgKiB2b2lkIGZv
cndhcmQxKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyMzIgYzsKKyAqICAg
ICBmb3IoaXQuc2V0VG9TdGFydCgpOyBpdC5oYXNOZXh0KCk7KSB7CisgKiAgICAgICAgIGM9aXQu
bmV4dDMyUG9zdEluYygpOworICogICAgICAgICAvLyB1c2UgYworICogICAgIH0KKyAqICB9Cisg
KiBcZW5kY29kZQorICogRm9yd2FyZCBpdGVyYXRpb24gbW9yZSBzaW1pbGFyIHRvIGxvb3BzIHdp
dGggdGhlIG9sZCBmb3J3YXJkIGl0ZXJhdGlvbiwKKyAqIHNob3dpbmcgYSB3YXkgdG8gY29udmVy
dCBzaW1wbGUgZm9yKCkgbG9vcHM6CisgKiBcY29kZQorICogdm9pZCBmb3J3YXJkMihDaGFyYWN0
ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhciBjOworICogICAgIGZvcihjPWl0LmZpcnN0
UG9zdEluYygpOyBjIT1DaGFyYWN0ZXJJdGVyYXRvcjo6RE9ORTsgYz1pdC5uZXh0UG9zdEluYygp
KSB7CisgKiAgICAgICAgICAvLyB1c2UgYworICogICAgICB9CisgKiB9CisgKiBcZW5kY29kZQor
ICogQmFja3dhcmQgaXRlcmF0aW9uIHdpdGggc2V0VG9FbmQoKSBhbmQgaGFzUHJldmlvdXMoKToK
KyAqIFxjb2RlCisgKiAgdm9pZCBiYWNrd2FyZDEoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7Cisg
KiAgICAgIFVDaGFyMzIgYzsKKyAqICAgICAgZm9yKGl0LnNldFRvRW5kKCk7IGl0Lmhhc1ByZXZp
b3VzKCk7KSB7CisgKiAgICAgICAgIGM9aXQucHJldmlvdXMzMigpOworICogICAgICAgICAgLy8g
dXNlIGMKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiBCYWNrd2FyZCBpdGVyYXRp
b24gd2l0aCBhIG1vcmUgdHJhZGl0aW9uYWwgZm9yKCkgbG9vcDoKKyAqIFxjb2RlCisgKiB2b2lk
IGJhY2t3YXJkMihDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhciBjOworICog
ICAgIGZvcihjPWl0Lmxhc3QoKTsgYyE9Q2hhcmFjdGVySXRlcmF0b3I6OkRPTkU7IGM9aXQucHJl
dmlvdXMoKSkgeworICogICAgICAgICAvLyB1c2UgYworICogICAgICB9CisgKiAgfQorICogXGVu
ZGNvZGUKKyAqCisgKiBFeGFtcGxlIGZvciByYW5kb20gYWNjZXNzOgorICogXGNvZGUKKyAqICB2
b2lkIHJhbmRvbShDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICAgLy8gc2V0IHRvIHRo
ZSB0aGlyZCBjb2RlIHBvaW50IGZyb20gdGhlIGJlZ2lubmluZworICogICAgICBpdC5tb3ZlMzIo
MywgQ2hhcmFjdGVySXRlcmF0b3I6OmtTdGFydCk7CisgKiAgICAgIC8vIGdldCBhIGNvZGUgcG9p
bnQgZnJvbSBoZXJlIHdpdGhvdXQgbW92aW5nIHRoZSBwb3NpdGlvbgorICogICAgICBVQ2hhcjMy
IGM9aXQuY3VycmVudDMyKCk7CisgKiAgICAgIC8vIGdldCB0aGUgcG9zaXRpb24KKyAqICAgICAg
aW50MzJfdCBwb3M9aXQuZ2V0SW5kZXgoKTsKKyAqICAgICAgLy8gZ2V0IHRoZSBwcmV2aW91cyBj
b2RlIHVuaXQKKyAqICAgICAgVUNoYXIgdT1pdC5wcmV2aW91cygpOworICogICAgICAvLyBtb3Zl
IGJhY2sgb25lIG1vcmUgY29kZSB1bml0CisgKiAgICAgIGl0Lm1vdmUoLTEsIENoYXJhY3Rlckl0
ZXJhdG9yOjprQ3VycmVudCk7CisgKiAgICAgIC8vIHNldCB0aGUgcG9zaXRpb24gYmFjayB0byB3
aGVyZSBpdCB3YXMKKyAqICAgICAgLy8gYW5kIHJlYWQgdGhlIHNhbWUgY29kZSBwb2ludCBjIGFu
ZCBtb3ZlIGJleW9uZCBpdAorICogICAgICBpdC5zZXRJbmRleChwb3MpOworICogICAgICBpZihj
IT1pdC5uZXh0MzJQb3N0SW5jKCkpIHsKKyAqICAgICAgICAgIGV4aXQoMSk7IC8vIENoYXJhY3Rl
ckl0ZXJhdG9yIGluY29uc2lzdGVudAorICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAq
CisgKiA8cD5FeGFtcGxlcywgZXNwZWNpYWxseSBmb3IgdGhlIG9sZCBBUEk6PC9wPgorICoKKyAq
IEZ1bmN0aW9uIHByb2Nlc3NpbmcgY2hhcmFjdGVycywgaW4gdGhpcyBleGFtcGxlIHNpbXBsZSBv
dXRwdXQKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZvaWQgcHJvY2Vzc0NoYXIoIFVDaGFyIGMg
KQorICogIHsKKyAqICAgICAgY291dCA8PCAiICIgPDwgYzsKKyAqICB9CisgKiBcZW5kY29kZQor
ICogPC9wcmU+CisgKiBUcmF2ZXJzZSB0aGUgdGV4dCBmcm9tIHN0YXJ0IHRvIGZpbmlzaAorICog
PHByZT4gCisgKiBcY29kZQorICogIHZvaWQgdHJhdmVyc2VGb3J3YXJkKENoYXJhY3Rlckl0ZXJh
dG9yJiBpdGVyKQorICogIHsKKyAqICAgICAgZm9yKFVDaGFyIGMgPSBpdGVyLmZpcnN0KCk7IGMg
IT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgYyA9IGl0ZXIubmV4dCgpKSB7CisgKiAgICAgICAg
ICBwcm9jZXNzQ2hhcihjKTsKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3By
ZT4KKyAqIFRyYXZlcnNlIHRoZSB0ZXh0IGJhY2t3YXJkcywgZnJvbSBlbmQgdG8gc3RhcnQKKyAq
IDxwcmU+CisgKiBcY29kZQorICogIHZvaWQgdHJhdmVyc2VCYWNrd2FyZChDaGFyYWN0ZXJJdGVy
YXRvciYgaXRlcikKKyAqICB7CisgKiAgICAgIGZvcihVQ2hhciBjID0gaXRlci5sYXN0KCk7IGMg
IT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORTsgYyA9IGl0ZXIucHJldmlvdXMoKSkgeworICogICAg
ICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICog
PC9wcmU+CisgKiBUcmF2ZXJzZSBib3RoIGZvcndhcmQgYW5kIGJhY2t3YXJkIGZyb20gYSBnaXZl
biBwb3NpdGlvbiBpbiB0aGUgdGV4dC4gCisgKiBDYWxscyB0byBub3RCb3VuZGFyeSgpIGluIHRo
aXMgZXhhbXBsZSByZXByZXNlbnRzIHNvbWUgYWRkaXRpb25hbCBzdG9wcGluZyBjcml0ZXJpYS4K
KyAqIDxwcmU+CisgKiBcY29kZQorICogdm9pZCB0cmF2ZXJzZU91dChDaGFyYWN0ZXJJdGVyYXRv
ciYgaXRlciwgaW50MzJfdCBwb3MpCisgKiB7CisgKiAgICAgIFVDaGFyIGM7CisgKiAgICAgIGZv
ciAoYyA9IGl0ZXIuc2V0SW5kZXgocG9zKTsKKyAqICAgICAgYyAhPSBDaGFyYWN0ZXJJdGVyYXRv
ci5ET05FICYmIChVbmljb2RlOjppc0xldHRlcihjKSB8fCBVbmljb2RlOjppc0RpZ2l0KGMpKTsK
KyAqICAgICAgICAgIGMgPSBpdGVyLm5leHQoKSkge30KKyAqICAgICAgaW50MzJfdCBlbmQgPSBp
dGVyLmdldEluZGV4KCk7CisgKiAgICAgIGZvciAoYyA9IGl0ZXIuc2V0SW5kZXgocG9zKTsKKyAq
ICAgICAgICAgIGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJiAoVW5pY29kZTo6aXNMZXR0
ZXIoYykgfHwgVW5pY29kZTo6aXNEaWdpdChjKSk7CisgKiAgICAgICAgICBjID0gaXRlci5wcmV2
aW91cygpKSB7fQorICogICAgICBpbnQzMl90IHN0YXJ0ID0gaXRlci5nZXRJbmRleCgpICsgMTsK
KyAqICAKKyAqICAgICAgY291dCA8PCAic3RhcnQ6ICIgPDwgc3RhcnQgPDwgIiBlbmQ6ICIgPDwg
ZW5kIDw8IGVuZGw7CisgKiAgICAgIGZvciAoYyA9IGl0ZXIuc2V0SW5kZXgoc3RhcnQpOyBpdGVy
LmdldEluZGV4KCkgPCBlbmQ7IGMgPSBpdGVyLm5leHQoKSApIHsKKyAqICAgICAgICAgIHByb2Nl
c3NDaGFyKGMpOworICogICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBD
cmVhdGluZyBhIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGFuZCBjYWxsaW5nIHRoZSB0ZXN0IGZ1
bmN0aW9ucworICogPHByZT4KKyAqIFxjb2RlCisgKiAgdm9pZCBDaGFyYWN0ZXJJdGVyYXRvcl9F
eGFtcGxlKCB2b2lkICkKKyAqICAgeworICogICAgICAgY291dCA8PCBlbmRsIDw8ICI9PT09PSBD
aGFyYWN0ZXJJdGVyYXRvcl9FeGFtcGxlOiA9PT09PSIgPDwgZW5kbDsKKyAqICAgICAgIFVuaWNv
ZGVTdHJpbmcgdGV4dCgiRWluIGtsZWluZXIgU2F0ei4iKTsKKyAqICAgICAgIFN0cmluZ0NoYXJh
Y3Rlckl0ZXJhdG9yIGl0ZXJhdG9yKHRleHQpOworICogICAgICAgY291dCA8PCAiLS0tLS0gdHJh
dmVyc2VGb3J3YXJkOiAtLS0tLS0tLS0tLSIgPDwgZW5kbDsKKyAqICAgICAgIHRyYXZlcnNlRm9y
d2FyZCggaXRlcmF0b3IgKTsKKyAqICAgICAgIGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICItLS0t
LSB0cmF2ZXJzZUJhY2t3YXJkOiAtLS0tLS0tLS0tIiA8PCBlbmRsOworICogICAgICAgdHJhdmVy
c2VCYWNrd2FyZCggaXRlcmF0b3IgKTsKKyAqICAgICAgIGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8
ICItLS0tLSB0cmF2ZXJzZU91dDogLS0tLS0tLS0tLS0tLS0tIiA8PCBlbmRsOworICogICAgICAg
dHJhdmVyc2VPdXQoIGl0ZXJhdG9yLCA3ICk7CisgKiAgICAgICBjb3V0IDw8IGVuZGwgPDwgZW5k
bCA8PCAiLS0tLS0iIDw8IGVuZGw7CisgKiAgIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAq
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIENoYXJhY3Rlckl0
ZXJhdG9yIDogcHVibGljIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB7CitwdWJsaWM6CisgICAg
LyoqCisgICAgICogT3JpZ2luIGVudW1lcmF0aW9uIGZvciB0aGUgbW92ZSgpIGFuZCBtb3ZlMzIo
KSBmdW5jdGlvbnMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgZW51bSBF
T3JpZ2luIHsga1N0YXJ0LCBrQ3VycmVudCwga0VuZCB9OworCisgICAgLyoqCisgICAgICogRGVz
dHJ1Y3Rvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIH5D
aGFyYWN0ZXJJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHBvaW50ZXIg
dG8gYSBuZXcgQ2hhcmFjdGVySXRlcmF0b3Igb2YgdGhlIHNhbWUKKyAgICAgKiBjb25jcmV0ZSBj
bGFzcyBhcyB0aGlzIG9uZSwgYW5kIHJlZmVycmluZyB0byB0aGUgc2FtZQorICAgICAqIGNoYXJh
Y3RlciBpbiB0aGUgc2FtZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IGFzIHRoaXMgb25lLiAgVGhlCisg
ICAgICogY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyB0aGUgbmV3IGNsb25lLiAg
CisgICAgICogQHJldHVybiBhIHBvaW50ZXIgdG8gYSBuZXcgQ2hhcmFjdGVySXRlcmF0b3IKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJh
dG9yKiBjbG9uZSh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBp
dGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAgICAqIGl0
ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAgICogVGhpcyBj
YW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0KCkuCisgICAgICogQHJl
dHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0
KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVy
IHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBy
ZXR1cm5zIHRoYXQgY29kZSB1bml0LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAgICogdG8g
dGhlIHNlY29uZCBjb2RlIHVuaXQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFy
dCgpCisgICAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMoKS4KKyAg
ICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAg
ICAgZmlyc3RQb3N0SW5jKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0
b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0
aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwKKyAgICAgKiBUaGlzIGNhbiBi
ZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQzMigpLgorICAgICAqIE5vdGUg
dGhhdCBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0SW5jKCksIGJlZ2lubmluZyB3aXRoLAor
ICAgICAqIGUuZy4sIHNldFRvU3RhcnQoKSBvciBmaXJzdFBvc3RJbmMoKSwgaXMgbW9yZSBlZmZp
Y2llbnQuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0
aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
VUNoYXIzMiAgICAgICBmaXJzdDMyKHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMg
dGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cworICAg
ICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQsIGFuZCBtb3ZlcyB0
aGUgcG9zaXRpb24KKyAgICAgKiB0byB0aGUgc2Vjb25kIGNvZGUgcG9pbnQuIFRoaXMgaXMgYW4g
YWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9u
IHdpdGggbmV4dDMyUG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9p
bnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmlyc3QzMlBvc3RJbmModm9pZCk7CisKKyAg
ICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29k
ZSB1bml0IG9yIGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLiBUaGlz
IGNhbiBiZSB1c2VkIHRvIGJlZ2luIGEgZm9yd2FyZAorICAgICAqIGl0ZXJhdGlvbiB3aXRoIG5l
eHRQb3N0SW5jKCkgb3IgbmV4dDMyUG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhlIHN0YXJ0
IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICBzZXRUb1N0YXJ0KCk7CisKKyAgICAvKioK
KyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHVuaXQg
aW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5p
dC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIHBy
ZXZpb3VzKCkuCisgICAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHVuaXQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGxhc3Qodm9p
ZCkgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBy
ZWZlciB0byB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5n
ZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0
byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91czMyKCkuCisgICAgICogQHJldHVybiB0
aGUgbGFzdCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIzMiAgICAgICBsYXN0MzIodm9pZCkgPSAwOworCisgICAgLyoqCisgICAg
ICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gdGhlIGVuZCBvZiBpdHMgaXRlcmF0aW9uIHJhbmdlLCBq
dXN0IGJlaGluZAorICAgICAqIHRoZSBsYXN0IGNvZGUgdW5pdCBvciBjb2RlIHBvaW50LiBUaGlz
IGNhbiBiZSB1c2VkIHRvIGJlZ2luIGEgYmFja3dhcmQKKyAgICAgKiBpdGVyYXRpb24gd2l0aCBw
cmV2aW91cygpIG9yIHByZXZpb3VzMzIoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBlbmQgcG9zaXRp
b24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIGlubGluZSBpbnQzMl90ICAgIHNldFRvRW5kKCk7CisKKyAgICAvKioKKyAgICAgKiBT
ZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQK
KyAgICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRv
LCBhbmQKKyAgICAgKiByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgCisgICAgICogQHBhcmFtIHBv
c2l0aW9uIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9i
amVjdAorICAgICAqIEByZXR1cm4gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0LgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBzZXRJ
bmRleChpbnQzMl90IHBvc2l0aW9uKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBp
dGVyYXRvciB0byByZWZlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjb2RlIHBvaW50CisgICAg
ICogdGhhdCBjb250YWlucyB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0
aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAgICAg
KiByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4KKyAgICAgKiBUaGUgY3VycmVudCBwb3NpdGlvbiBp
cyBhZGp1c3RlZCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjb2RlIHBvaW50CisgICAgICogKGl0
cyBmaXJzdCBjb2RlIHVuaXQpLgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgInBvc2l0aW9u
Ii10aCBjb2RlIHVuaXQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAcmV0dXJu
IHRoZSAicG9zaXRpb24iLXRoIGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHNldEluZGV4MzIoaW50MzJfdCBwb3Np
dGlvbikgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29kZSB1bml0IHRoZSBp
dGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLiAKKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50
IGNvZGUgdW5pdC4gCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBVQ2hhciAgICAgICAgIGN1cnJlbnQodm9pZCkgY29uc3QgPSAwOworICAgICAgICAKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkg
cmVmZXJzIHRvLiAgCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHBvaW50LgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBj
dXJyZW50MzIodm9pZCkgY29uc3QgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBZHZh
bmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAq
ICh0b3dhcmQgZW5kSW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhl
cmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05F
LgorICAgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0KHZvaWQpID0gMDsK
KyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSBwb2lu
dCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgpKSwgYW5k
IHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBj
b2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBOb3RlIHRoYXQgaXRl
cmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIHNlbWFudGljcyBpcyBsZXNzCisgICAgICogZWZm
aWNpZW50IHRoYW4gaXRlcmF0aW9uIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1hbnRpY3MKKyAg
ICAgKiB0aGF0IGlzIHByb3ZpZGVkIGJ5IG5leHQzMlBvc3RJbmMoKS4KKyAgICAgKiBAcmV0dXJu
IHRoZSBuZXh0IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMih2b2lkKSA9IDA7CisgICAgICAgIAorICAg
IC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0
ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMg
dGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgdW5pdHMg
dG8gcmV0dXJuLCByZXR1cm5zIERPTkUuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBj
b2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBV
Q2hhciAgICAgICAgIHByZXZpb3VzKHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIEFkdmFu
Y2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAg
ICAgKiAodG93YXJkIHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4g
IElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1
cm5zIERPTkUuIAorICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQuIAorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBw
cmV2aW91czMyKHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgRkFMU0UgaWYg
dGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgICAqIGJlZm9y
ZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIFRo
aXMgaXMgdXNlZCB3aXRoIHByZXZpb3VzKCkgb3IgcHJldmlvdXMzMigpIGluIGJhY2t3YXJkCisg
ICAgICogaXRlcmF0aW9uLgorICAgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1v
cmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgICAqIGJlZm9yZSB0aGUgY3VycmVudCBw
b3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLCByZXR1cm4gVFJVRSBvdGhlcndpc2UuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCAgICAgICAg
aGFzUHJldmlvdXMoKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmlj
IGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0
aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGZpcnN0KCkuICBTaW5jZSBpdCdzCisgICAgICogcG9z
c2libGUgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgYWNyb3NzIG9ubHkKKyAg
ICAgKiBwYXJ0IG9mIGEgdGV4dC1zdG9yYWdlIG9iamVjdCwgdGhpcyBudW1iZXIgaXNuJ3QKKyAg
ICAgKiBuZWNlc3NhcmlseSAwLiAgCisgICAgICogQHJldHVybnMgdGhlIG51bWVyaWMgaW5kZXgg
aW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBjaGFy
YWN0ZXIgcmV0dXJuZWQgYnkgZmlyc3QoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBzdGFydEluZGV4KHZvaWQpIGNvbnN0OworICAg
ICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1
bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgcG9zaXRpb24gaW1t
ZWRpYXRlbHkgQkVZT05EIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiByZXR1cm5lZCBieSBsYXN0KCku
ICAKKyAgICAgKiBAcmV0dXJuIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRl
eHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgcG9zaXRpb24gaW1tZWRpYXRlbHkgQkVZ
T05EIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiByZXR1cm5lZCBieSBsYXN0KCkuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAgZW5kSW5kZXgo
dm9pZCkgY29uc3Q7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWVy
aWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9m
IHRoZSBjaGFyYWN0ZXIgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8KKyAgICAgKiAo
aS5lLiwgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBjdXJyZW50KCkpLiAgCisgICAgICogQHJl
dHVybiB0aGUgbnVtYmVyaWMgaW5kZXggaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3Qgb2YgCisg
ICAgICogdGhlIGNoYXJhY3RlciB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0bworICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgICAgIGdl
dEluZGV4KHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGVuZ3Ro
IG9mIHRoZSBlbnRpcmUgdGV4dCBpbiB0aGUgdW5kZXJseWluZworICAgICAqIHRleHQtc3RvcmFn
ZSBvYmplY3QuCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBlbnRpcmUgdGV4dCBp
biB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIGlubGluZSBpbnQzMl90ICAgICAgICAgICBnZXRMZW5ndGgoKSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBz
dGFydCBvciBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0
byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAgICogVGhlIG1vdmVtZW50IGlzIGV4
cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgdW5pdHMgZm9yd2FyZAorICAgICAqIG9yIGJhY2t3
YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAgICAgKiBA
cGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBk
ZWx0YSBtZWFucyBmb3J3YXJkOworICAgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMgYmFja3dh
cmQuCisgICAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwga0N1
cnJlbnQsIGtFbmR9CisgICAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92ZShpbnQz
Ml90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbikgPSAwOworCisgICAgLyoqCisgICAgICogTW92ZXMg
dGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUK
KyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0
aW9uIGl0c2VsZi4KKyAgICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMg
b2YgY29kZSBwb2ludHMgZm9yd2FyZAorICAgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcg
YSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAgICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBv
c2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJk
OworICAgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAgICogQHBhcmFt
IG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAg
ICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92ZTMyKGludDMyX3QgZGVsdGEsIEVPcmln
aW4gb3JpZ2luKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDb3BpZXMgdGhlIHRleHQgdW5kZXIg
aXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcKKyAgICAgKiByZWZlcnJlZCB0byBieSAi
cmVzdWx0Ii4gIAorICAgICAqIEBwYXJhbSByZXN1bHQgUmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0
ZXh0IHVuZGVyIGl0ZXJhdGlvbi4gIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0cmluZyYgIHJlc3Vs
dCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgLyoqCisgICAgICogRW1wdHkgY29uc3RydWN0b3Iu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3Io
KTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0
aCBmaWVsZCBpbiB0aGlzIGJhc2UgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoaW50MzJfdCBsZW5ndGgpOworCisgICAgLyoqCisg
ICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoIGFuZCBwb3NpdGlvbiBm
aWVsZHMgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90IHBvc2l0aW9u
KTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0
aCwgc3RhcnQsIGVuZCwgYW5kIHBvc2l0aW9uIGZpZWxkcyBpbiB0aGlzIGJhc2UgY2xhc3MuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoaW50
MzJfdCBsZW5ndGgsIGludDMyX3QgdGV4dEJlZ2luLCBpbnQzMl90IHRleHRFbmQsIGludDMyX3Qg
cG9zaXRpb24pOworICAKKyAgICAvKioKKyAgICAgKiBDb3B5IGNvbnN0cnVjdG9yLgorICAgICAq
CisgICAgICogQHBhcmFtIHRoYXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvcGllZAor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGNv
bnN0IENoYXJhY3Rlckl0ZXJhdG9yICZ0aGF0KTsKKworICAgIC8qKgorICAgICAqIEFzc2lnbm1l
bnQgb3BlcmF0b3IuICBTZXRzIHRoaXMgQ2hhcmFjdGVySXRlcmF0b3IgdG8gaGF2ZSB0aGUgc2Ft
ZSBiZWhhdmlvciwKKyAgICAgKiBhcyB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0g
dGhhdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4gdGhl
IG5ld2x5IHNldCBDaGFyYWN0ZXJJdGVyYXRvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvciAmb3BlcmF0b3I9KGNvbnN0IENoYXJhY3Rlckl0
ZXJhdG9yICZ0aGF0KTsKKworICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgdGV4dCBsZW5ndGgg
ZmllbGQuCisgICAgICogTmVjZXNzYXJ5IHRoaXMgZm9yIGNvcnJlY3QgZ2V0VGV4dCgpIGFuZCBo
YXNoQ29kZSgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGludDMyX3Qg
dGV4dExlbmd0aDsKKworICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgZmllbGQgZm9yIHRoZSBj
dXJyZW50IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlu
dDMyX3QgIHBvczsKKworICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgZmllbGQgZm9yIHRoZSBz
dGFydCBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIGludDMyX3QgIGJlZ2luOworCisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyBm
aWVsZCBmb3IgdGhlIGVuZCBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIGVuZDsKK307CisKK2lubGluZSBVQm9vbAor
Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yOjpvcGVyYXRvciE9KGNvbnN0IEZvcndhcmRDaGFyYWN0
ZXJJdGVyYXRvciYgdGhhdCkgY29uc3QgeworICAgIHJldHVybiAhb3BlcmF0b3I9PSh0aGF0KTsK
K30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpzZXRUb1N0YXJ0KCkgewor
ICAgIHJldHVybiBtb3ZlKDAsIGtTdGFydCk7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0
ZXJJdGVyYXRvcjo6c2V0VG9FbmQoKSB7CisgICAgcmV0dXJuIG1vdmUoMCwga0VuZCk7Cit9CisK
K2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6c3RhcnRJbmRleCh2b2lkKSBjb25z
dCB7CisgICAgcmV0dXJuIGJlZ2luOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRl
cmF0b3I6OmVuZEluZGV4KHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gZW5kOworfQorCitpbmxp
bmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OmdldEluZGV4KHZvaWQpIGNvbnN0IHsKKyAg
ICByZXR1cm4gcG9zOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6Omdl
dExlbmd0aCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIHRleHRMZW5ndGg7Cit9CisKK1VfTkFN
RVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xv
Y2lkLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFkNWNi
NTQ2ZWJlMzk3ZWY0MzZkZjM2NTAzZWI0MzcxYzM4NjY5NgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaApAQCAtMCwwICsxLDgxNCBAQAorLyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDE1LCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBs
b2NpZC5oCisqCisqIENyZWF0ZWQgYnk6IEhlbGVuYSBTaGloCisqCisqIE1vZGlmaWNhdGlvbiBI
aXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAg
MDIvMTEvOTcgICAgYWxpdSAgICAgICAgQ2hhbmdlZCBnTG9jUGF0aCB0byBmZ0xvY1BhdGggYW5k
IGFkZGVkIG1ldGhvZHMgdG8KKyogICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQgYW5kIHNl
dCBpdC4KKyogICAwNC8wMi85NyAgICBhbGl1ICAgICAgICBNYWRlIG9wZXJhdG9yIT0gaW5saW5l
OyBmaXhlZCByZXR1cm4gdmFsdWUgb2YgZ2V0TmFtZSgpLgorKiAgIDA0LzE1Lzk3ICAgIGFsaXUg
ICAgICAgIENsZWFudXAgZm9yIEFJWC9XaW4zMi4KKyogICAwNC8yNC85NyAgICBhbGl1ICAgICAg
ICBOdW1lcm91cyBjaGFuZ2VzIHBlciBjb2RlIHJldmlldy4KKyogICAwOC8xOC85OCAgICBzdGVw
aGVuICAgICBBZGRlZCB0b2tlbml6ZVN0cmluZygpLGNoYW5nZWQgZ2V0RGlzcGxheU5hbWUoKQor
KiAgIDA5LzA4Lzk4ICAgIHN0ZXBoZW4gICAgIE1vdmVkIGRlZmluaXRpb24gb2Yga0VtcHR5U3Ry
aW5nIGZvciBNYWMgUG9ydAorKiAgIDExLzA5Lzk5ICAgIHdlaXYgICAgICAgIEFkZGVkIGNvbnN0
IGNoYXIgKiBnZXROYW1lKCkgY29uc3Q7CisqICAgMDQvMTIvMDAgICAgc3JsICAgICAgICAgcmVt
b3ZpbmcgdW5pY29kZXN0cmluZyBhcGkncyBhbmQgY2FjaGVkIGhhc2ggY29kZQorKiAgIDA4LzEw
LzAxICAgIGdyaG90ZW4gICAgIENoYW5nZSB0aGUgc3RhdGljIExvY2FsZXMgdG8gYWNjZXNzb3Ig
ZnVuY3Rpb25zCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgTE9DSURfSAor
I2RlZmluZSBMT0NJRF9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUg
InVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisjaW5jbHVk
ZSAidW5pY29kZS9wdXRpbC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWxvYy5oIgorI2luY2x1ZGUg
InVuaWNvZGUvc3RyZW51bS5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTog
TG9jYWxlIElEIG9iamVjdC4KKyAqLworCitVX05BTUVTUEFDRV9CRUdJTgorCisvLyBGb3J3YXJk
IERlY2xhcmF0aW9ucwordm9pZCBVX0NBTExDT05WIGxvY2FsZV9hdmFpbGFibGVfaW5pdCgpOyAv
Kio8IEBpbnRlcm5hbCAqLworCisvKioKKyAqIEEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3Qg
cmVwcmVzZW50cyBhIHNwZWNpZmljIGdlb2dyYXBoaWNhbCwgcG9saXRpY2FsLAorICogb3IgY3Vs
dHVyYWwgcmVnaW9uLiBBbiBvcGVyYXRpb24gdGhhdCByZXF1aXJlcyBhIDxjb2RlPkxvY2FsZTwv
Y29kZT4gdG8gcGVyZm9ybQorICogaXRzIHRhc2sgaXMgY2FsbGVkIDxlbT5sb2NhbGUtc2Vuc2l0
aXZlPC9lbT4gYW5kIHVzZXMgdGhlIDxjb2RlPkxvY2FsZTwvY29kZT4KKyAqIHRvIHRhaWxvciBp
bmZvcm1hdGlvbiBmb3IgdGhlIHVzZXIuIEZvciBleGFtcGxlLCBkaXNwbGF5aW5nIGEgbnVtYmVy
CisgKiBpcyBhIGxvY2FsZS1zZW5zaXRpdmUgb3BlcmF0aW9uLS10aGUgbnVtYmVyIHNob3VsZCBi
ZSBmb3JtYXR0ZWQKKyAqIGFjY29yZGluZyB0byB0aGUgY3VzdG9tcy9jb252ZW50aW9ucyBvZiB0
aGUgdXNlcidzIG5hdGl2ZSBjb3VudHJ5LAorICogcmVnaW9uLCBvciBjdWx0dXJlLgorICoKKyAq
IFRoZSBMb2NhbGUgY2xhc3MgaXMgbm90IHN1aXRhYmxlIGZvciBzdWJjbGFzc2luZy4KKyAqCisg
KiA8UD4KKyAqIFlvdSBjYW4gY3JlYXRlIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3QgdXNp
bmcgdGhlIGNvbnN0cnVjdG9yIGluCisgKiB0aGlzIGNsYXNzOgorICogXGh0bWxvbmx5PGJsb2Nr
cXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgICAgTG9jYWxlKCBjb25zdCAgIGNo
YXIqICBsYW5ndWFnZSwKKyAqICAgICAgICAgICAgICAgY29uc3QgICBjaGFyKiAgY291bnRyeSwK
KyAqICAgICAgICAgICAgICAgY29uc3QgICBjaGFyKiAgdmFyaWFudCk7CisgKiA8L3ByZT4KKyAq
IFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIFRoZSBmaXJzdCBhcmd1bWVu
dCB0byB0aGUgY29uc3RydWN0b3JzIGlzIGEgdmFsaWQgPFNUUk9ORz5JU08KKyAqIExhbmd1YWdl
IENvZGUuPC9TVFJPTkc+IFRoZXNlIGNvZGVzIGFyZSB0aGUgbG93ZXItY2FzZSB0d28tbGV0dGVy
CisgKiBjb2RlcyBhcyBkZWZpbmVkIGJ5IElTTy02MzkuCisgKiBZb3UgY2FuIGZpbmQgYSBmdWxs
IGxpc3Qgb2YgdGhlc2UgY29kZXMgYXQ6CisgKiA8QlI+PGEgaHJlZiA9Imh0dHA6Ly93d3cubG9j
Lmdvdi9zdGFuZGFyZHMvaXNvNjM5LTIvIj4KKyAqIGh0dHA6Ly93d3cubG9jLmdvdi9zdGFuZGFy
ZHMvaXNvNjM5LTIvPC9hPgorICoKKyAqIDxQPgorICogVGhlIHNlY29uZCBhcmd1bWVudCB0byB0
aGUgY29uc3RydWN0b3JzIGlzIGEgdmFsaWQgPFNUUk9ORz5JU08gQ291bnRyeQorICogQ29kZS48
L1NUUk9ORz4gVGhlc2UgY29kZXMgYXJlIHRoZSB1cHBlci1jYXNlIHR3by1sZXR0ZXIgY29kZXMK
KyAqIGFzIGRlZmluZWQgYnkgSVNPLTMxNjYuCisgKiBZb3UgY2FuIGZpbmQgYSBmdWxsIGxpc3Qg
b2YgdGhlc2UgY29kZXMgYXQgYSBudW1iZXIgb2Ygc2l0ZXMsIHN1Y2ggYXM6CisgKiA8QlI+PGEg
aHJlZj0iaHR0cDovL3d3dy5pc28ub3JnL2lzby9lbi9wcm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEv
aW5kZXguaHRtbCI+CisgKiBodHRwOi8vd3d3Lmlzby5vcmcvaXNvL2VuL3Byb2RzLXNlcnZpY2Vz
L2lzbzMxNjZtYS9pbmRleC5odG1sPC9hPgorICoKKyAqIDxQPgorICogVGhlIHRoaXJkIGNvbnN0
cnVjdG9yIHJlcXVpcmVzIGEgdGhpcmQgYXJndW1lbnQtLXRoZSA8U1RST05HPlZhcmlhbnQuPC9T
VFJPTkc+CisgKiBUaGUgVmFyaWFudCBjb2RlcyBhcmUgdmVuZG9yIGFuZCBicm93c2VyLXNwZWNp
ZmljLgorICogRm9yIGV4YW1wbGUsIHVzZSBSRVZJU0VEIGZvciBhIGxhbmdhdWdlJ3MgcmV2aXNl
ZCBzY3JpcHQgb3J0aG9ncmFwaHksIGFuZCBQT1NJWCBmb3IgUE9TSVguCisgKiBXaGVyZSB0aGVy
ZSBhcmUgdHdvIHZhcmlhbnRzLCBzZXBhcmF0ZSB0aGVtIHdpdGggYW4gdW5kZXJzY29yZSwgYW5k
CisgKiBwdXQgdGhlIG1vc3QgaW1wb3J0YW50IG9uZSBmaXJzdC4gRm9yCisgKiBleGFtcGxlLCBh
IFRyYWRpdGlvbmFsIFNwYW5pc2ggY29sbGF0aW9uIG1pZ2h0IGJlIHJlZmVyZW5jZWQsIHdpdGgK
KyAqICJFUyIsICJFUyIsICJUcmFkaXRpb25hbF9QT1NJWCIuCisgKgorICogPFA+CisgKiBCZWNh
dXNlIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3QgaXMganVzdCBhbiBpZGVudGlmaWVyIGZv
ciBhIHJlZ2lvbiwKKyAqIG5vIHZhbGlkaXR5IGNoZWNrIGlzIHBlcmZvcm1lZCB3aGVuIHlvdSBj
b25zdHJ1Y3QgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+LgorICogSWYgeW91IHdhbnQgdG8gc2VlIHdo
ZXRoZXIgcGFydGljdWxhciByZXNvdXJjZXMgYXJlIGF2YWlsYWJsZSBmb3IgdGhlCisgKiA8Y29k
ZT5Mb2NhbGU8L2NvZGU+IHlvdSBjb25zdHJ1Y3QsIHlvdSBtdXN0IHF1ZXJ5IHRob3NlIHJlc291
cmNlcy4gRm9yCisgKiBleGFtcGxlLCBhc2sgdGhlIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4g
Zm9yIHRoZSBsb2NhbGVzIGl0IHN1cHBvcnRzCisgKiB1c2luZyBpdHMgPGNvZGU+Z2V0QXZhaWxh
YmxlTG9jYWxlczwvY29kZT4gbWV0aG9kLgorICogPEJSPjxTVFJPTkc+Tm90ZTo8L1NUUk9ORz4g
V2hlbiB5b3UgYXNrIGZvciBhIHJlc291cmNlIGZvciBhIHBhcnRpY3VsYXIKKyAqIGxvY2FsZSwg
eW91IGdldCBiYWNrIHRoZSBiZXN0IGF2YWlsYWJsZSBtYXRjaCwgbm90IG5lY2Vzc2FyaWx5Cisg
KiBwcmVjaXNlbHkgd2hhdCB5b3UgYXNrZWQgZm9yLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgbG9v
ayBhdAorICogPGNvZGU+UmVzb3VyY2VCdW5kbGU8L2NvZGU+LgorICoKKyAqIDxQPgorICogVGhl
IDxjb2RlPkxvY2FsZTwvY29kZT4gY2xhc3MgcHJvdmlkZXMgYSBudW1iZXIgb2YgY29udmVuaWVu
dCBjb25zdGFudHMKKyAqIHRoYXQgeW91IGNhbiB1c2UgdG8gY3JlYXRlIDxjb2RlPkxvY2FsZTwv
Y29kZT4gb2JqZWN0cyBmb3IgY29tbW9ubHkgdXNlZAorICogbG9jYWxlcy4gRm9yIGV4YW1wbGUs
IHRoZSBmb2xsb3dpbmcgcmVmZXJzIHRvIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3QKKyAq
IGZvciB0aGUgVW5pdGVkIFN0YXRlczoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1s
b25seQorICogPHByZT4KKyAqICAgICAgIExvY2FsZTo6Z2V0VVMoKQorICogPC9wcmU+CisgKiBc
aHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKgorICogPFA+CisgKiBPbmNlIHlv
dSd2ZSBjcmVhdGVkIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiB5b3UgY2FuIHF1ZXJ5IGl0IGZvciBp
bmZvcm1hdGlvbiBhYm91dAorICogaXRzZWxmLiBVc2UgPGNvZGU+Z2V0Q291bnRyeTwvY29kZT4g
dG8gZ2V0IHRoZSBJU08gQ291bnRyeSBDb2RlIGFuZAorICogPGNvZGU+Z2V0TGFuZ3VhZ2U8L2Nv
ZGU+IHRvIGdldCB0aGUgSVNPIExhbmd1YWdlIENvZGUuIFlvdSBjYW4KKyAqIHVzZSA8Y29kZT5n
ZXREaXNwbGF5Q291bnRyeTwvY29kZT4gdG8gZ2V0IHRoZQorICogbmFtZSBvZiB0aGUgY291bnRy
eSBzdWl0YWJsZSBmb3IgZGlzcGxheWluZyB0byB0aGUgdXNlci4gU2ltaWxhcmx5LAorICogeW91
IGNhbiB1c2UgPGNvZGU+Z2V0RGlzcGxheUxhbmd1YWdlPC9jb2RlPiB0byBnZXQgdGhlIG5hbWUg
b2YKKyAqIHRoZSBsYW5ndWFnZSBzdWl0YWJsZSBmb3IgZGlzcGxheWluZyB0byB0aGUgdXNlci4g
SW50ZXJlc3RpbmdseSwKKyAqIHRoZSA8Y29kZT5nZXREaXNwbGF5WFhYPC9jb2RlPiBtZXRob2Rz
IGFyZSB0aGVtc2VsdmVzIGxvY2FsZS1zZW5zaXRpdmUKKyAqIGFuZCBoYXZlIHR3byB2ZXJzaW9u
czogb25lIHRoYXQgdXNlcyB0aGUgZGVmYXVsdCBsb2NhbGUgYW5kIG9uZQorICogdGhhdCB0YWtl
cyBhIGxvY2FsZSBhcyBhbiBhcmd1bWVudCBhbmQgZGlzcGxheXMgdGhlIG5hbWUgb3IgY291bnRy
eSBpbgorICogYSBsYW5ndWFnZSBhcHByb3ByaWF0ZSB0byB0aGF0IGxvY2FsZS4KKyAqCisgKiA8
UD4KKyAqIElDVSBwcm92aWRlcyBhIG51bWJlciBvZiBjbGFzc2VzIHRoYXQgcGVyZm9ybSBsb2Nh
bGUtc2Vuc2l0aXZlCisgKiBvcGVyYXRpb25zLiBGb3IgZXhhbXBsZSwgdGhlIDxjb2RlPk51bWJl
ckZvcm1hdDwvY29kZT4gY2xhc3MgZm9ybWF0cworICogbnVtYmVycywgY3VycmVuY3ksIG9yIHBl
cmNlbnRhZ2VzIGluIGEgbG9jYWxlLXNlbnNpdGl2ZSBtYW5uZXIuIENsYXNzZXMKKyAqIHN1Y2gg
YXMgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBoYXZlIGEgbnVtYmVyIG9mIGNvbnZlbmllbmNl
IG1ldGhvZHMKKyAqIGZvciBjcmVhdGluZyBhIGRlZmF1bHQgb2JqZWN0IG9mIHRoYXQgdHlwZS4g
Rm9yIGV4YW1wbGUsIHRoZQorICogPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBjbGFzcyBwcm92
aWRlcyB0aGVzZSB0aHJlZSBjb252ZW5pZW5jZSBtZXRob2RzCisgKiBmb3IgY3JlYXRpbmcgYSBk
ZWZhdWx0IDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gb2JqZWN0OgorICogXGh0bWxvbmx5PGJs
b2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgIFVFcnJvckNvZGUgc3VjY2Vz
cyA9IFVfWkVST19FUlJPUjsKKyAqICAgICBMb2NhbGUgbXlMb2NhbGU7CisgKiAgICAgTnVtYmVy
Rm9ybWF0ICpuZjsKKyAqCisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUluc3RhbmNl
KCBzdWNjZXNzICk7ICAgICAgICAgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1h
dDo6Y3JlYXRlQ3VycmVuY3lJbnN0YW5jZSggc3VjY2VzcyApOyAgZGVsZXRlIG5mOworICogICAg
IG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVQZXJjZW50SW5zdGFuY2UoIHN1Y2Nlc3MgKTsgICBk
ZWxldGUgbmY7CisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9u
bHkKKyAqIEVhY2ggb2YgdGhlc2UgbWV0aG9kcyBoYXMgdHdvIHZhcmlhbnRzOyBvbmUgd2l0aCBh
biBleHBsaWNpdCBsb2NhbGUKKyAqIGFuZCBvbmUgd2l0aG91dDsgdGhlIGxhdHRlciB1c2luZyB0
aGUgZGVmYXVsdCBsb2NhbGUuCisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkK
KyAqIDxwcmU+CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUluc3RhbmNlKCBteUxv
Y2FsZSwgc3VjY2VzcyApOyAgICAgICAgICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1iZXJG
b3JtYXQ6OmNyZWF0ZUN1cnJlbmN5SW5zdGFuY2UoIG15TG9jYWxlLCBzdWNjZXNzICk7ICBkZWxl
dGUgbmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZVBlcmNlbnRJbnN0YW5jZSgg
bXlMb2NhbGUsIHN1Y2Nlc3MgKTsgICBkZWxldGUgbmY7CisgKiA8L3ByZT4KKyAqIFxodG1sb25s
eTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIEEgPGNvZGU+TG9jYWxlPC9jb2RlPiBpcyB0
aGUgbWVjaGFuaXNtIGZvciBpZGVudGlmeWluZyB0aGUga2luZCBvZiBvYmplY3QKKyAqICg8Y29k
ZT5OdW1iZXJGb3JtYXQ8L2NvZGU+KSB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGdldC4gVGhlIGxv
Y2FsZSBpcworICogPFNUUk9ORz5qdXN0PC9TVFJPTkc+IGEgbWVjaGFuaXNtIGZvciBpZGVudGlm
eWluZyBvYmplY3RzLAorICogPFNUUk9ORz5ub3Q8L1NUUk9ORz4gYSBjb250YWluZXIgZm9yIHRo
ZSBvYmplY3RzIHRoZW1zZWx2ZXMuCisgKgorICogPFA+CisgKiBFYWNoIGNsYXNzIHRoYXQgcGVy
Zm9ybXMgbG9jYWxlLXNlbnNpdGl2ZSBvcGVyYXRpb25zIGFsbG93cyB5b3UKKyAqIHRvIGdldCBh
bGwgdGhlIGF2YWlsYWJsZSBvYmplY3RzIG9mIHRoYXQgdHlwZS4gWW91IGNhbiBzaWZ0CisgKiB0
aHJvdWdoIHRoZXNlIG9iamVjdHMgYnkgbGFuZ3VhZ2UsIGNvdW50cnksIG9yIHZhcmlhbnQsCisg
KiBhbmQgdXNlIHRoZSBkaXNwbGF5IG5hbWVzIHRvIHByZXNlbnQgYSBtZW51IHRvIHRoZSB1c2Vy
LgorICogRm9yIGV4YW1wbGUsIHlvdSBjYW4gY3JlYXRlIGEgbWVudSBvZiBhbGwgdGhlIGNvbGxh
dGlvbiBvYmplY3RzCisgKiBzdWl0YWJsZSBmb3IgYSBnaXZlbiBsYW5ndWFnZS4gU3VjaCBjbGFz
c2VzIGltcGxlbWVudCB0aGVzZQorICogdGhyZWUgY2xhc3MgbWV0aG9kczoKKyAqIFxodG1sb25s
eTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICAgIHN0YXRpYyBMb2Nh
bGUqIGdldEF2YWlsYWJsZUxvY2FsZXMoaW50MzJfdCYgbnVtTG9jYWxlcykKKyAqICAgICAgIHN0
YXRpYyBVbmljb2RlU3RyaW5nJiBnZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmICBvYmplY3RM
b2NhbGUsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgTG9jYWxlJiAgZGlzcGxheUxvY2FsZSwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwbGF5TmFtZSkKKyAqICAgICAgIHN0
YXRpYyBVbmljb2RlU3RyaW5nJiBnZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmICBvYmplY3RM
b2NhbGUsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5p
Y29kZVN0cmluZyYgZGlzcGxheU5hbWUpCisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2tx
dW90ZT5cZW5kaHRtbG9ubHkKKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqIEBzZWUgUmVzb3Vy
Y2VCdW5kbGUKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIExvY2FsZSA6IHB1YmxpYyBVT2JqZWN0
IHsKK3B1YmxpYzoKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGUgUm9vdCBsb2NhbGUu
IEBzdGFibGUgSUNVIDQuNCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBn
ZXRSb290KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2Uu
IEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBn
ZXRFbmdsaXNoKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3Vh
Z2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JU
MiBnZXRGcmVuY2godm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5n
dWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBP
UlQyIGdldEdlcm1hbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxh
bmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VY
UE9SVDIgZ2V0SXRhbGlhbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlz
IGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZV
X0VYUE9SVDIgZ2V0SmFwYW5lc2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3Ig
dGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2Fs
ZSAmVV9FWFBPUlQyIGdldEtvcmVhbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZv
ciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9j
YWxlICZVX0VYUE9SVDIgZ2V0Q2hpbmVzZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50
IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3Qg
TG9jYWxlICZVX0VYUE9SVDIgZ2V0U2ltcGxpZmllZENoaW5lc2Uodm9pZCk7CisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAg
c3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFRyYWRpdGlvbmFsQ2hpbmVzZSh2b2lk
KTsKKworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBz
dGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRG
cmFuY2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3Jl
Z2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBP
UlQyIGdldEdlcm1hbnkodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBj
b3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2Fs
ZSAmVV9FWFBPUlQyIGdldEl0YWx5KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9y
IHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25z
dCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRKYXBhbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0
YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0
aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0S29yZWEodm9pZCk7CisgICAgLyoqIFVzZWZ1
bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisg
ICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENoaW5hKHZvaWQpOworICAgIC8q
KiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIu
MCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRQUkModm9pZCk7Cisg
ICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJ
Q1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFRhaXdhbih2
b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0
VUsodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lv
bi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQy
IGdldFVTKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9y
ZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQ
T1JUMiBnZXRDYW5hZGEodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBj
b3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2Fs
ZSAmVV9FWFBPUlQyIGdldENhbmFkYUZyZW5jaCh2b2lkKTsKKworCisgICAgLyoqCisgICAgICog
Q29uc3RydWN0IGEgZGVmYXVsdCBsb2NhbGUgb2JqZWN0LCBhIExvY2FsZSBmb3IgdGhlIGRlZmF1
bHQgbG9jYWxlIElELgorICAgICAqCisgICAgICogQHNlZSBnZXREZWZhdWx0CisgICAgICogQHNl
ZSB1bG9jX2dldERlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBM
b2NhbGUoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIGxvY2FsZSBmcm9tIGxhbmd1
YWdlLCBjb3VudHJ5LCB2YXJpYW50LgorICAgICAqIElmIGFuIGVycm9yIG9jY3VycywgdGhlbiB0
aGUgY29uc3RydWN0ZWQgb2JqZWN0IHdpbGwgYmUgImJvZ3VzIgorICAgICAqIChpc0JvZ3VzKCkg
d2lsbCByZXR1cm4gVFJVRSkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGFuZ3VhZ2UgTG93ZXJj
YXNlIHR3by1sZXR0ZXIgb3IgdGhyZWUtbGV0dGVyIElTTy02MzkgY29kZS4KKyAgICAgKiAgVGhp
cyBwYXJhbWV0ZXIgY2FuIGluc3RlYWQgYmUgYW4gSUNVIHN0eWxlIEMgbG9jYWxlIChlLmcuICJl
bl9VUyIpLAorICAgICAqICBidXQgdGhlIG90aGVyIHBhcmFtZXRlcnMgbXVzdCBub3QgYmUgdXNl
ZC4KKyAgICAgKiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGJlIE5VTEw7IGlmIHNvLAorICAgICAqICB0
aGUgbG9jYWxlIGlzIGluaXRpYWxpemVkIHRvIG1hdGNoIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9j
YWxlLgorICAgICAqICAoVGhpcyBpcyB0aGUgc2FtZSBhcyB1c2luZyB0aGUgZGVmYXVsdCBjb25z
dHJ1Y3Rvci4pCisgICAgICogIFBsZWFzZSBub3RlOiBUaGUgSmF2YSBMb2NhbGUgY2xhc3MgZG9l
cyBOT1QgYWNjZXB0IHRoZSBmb3JtCisgICAgICogICduZXcgTG9jYWxlKCJlbl9VUyIpJyBidXQg
b25seSAnbmV3IExvY2FsZSgiZW4iLCJVUyIpJworICAgICAqCisgICAgICogQHBhcmFtIGNvdW50
cnkgIFVwcGVyY2FzZSB0d28tbGV0dGVyIElTTy0zMTY2IGNvZGUuIChvcHRpb25hbCkKKyAgICAg
KiBAcGFyYW0gdmFyaWFudCAgVXBwZXJjYXNlIHZlbmRvciBhbmQgYnJvd3NlciBzcGVjaWZpYyBj
b2RlLiBTZWUgY2xhc3MKKyAgICAgKiAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24uIChvcHRp
b25hbCkKKyAgICAgKiBAcGFyYW0ga2V5d29yZHNBbmRWYWx1ZXMgQSBzdHJpbmcgY29uc2lzdGlu
ZyBvZiBrZXl3b3JkL3ZhbHVlcyBwYWlycywgc3VjaCBhcworICAgICAqICAgICAgICAgICAgICAg
ICAiY29sbGF0aW9uPXBob25lYm9vaztjdXJyZW5jeT1ldXJvIgorICAgICAqCisgICAgICogQHNl
ZSBnZXREZWZhdWx0CisgICAgICogQHNlZSB1bG9jX2dldERlZmF1bHQKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUoIGNvbnN0ICAgY2hhciAqIGxhbmd1YWdlLAor
ICAgICAgICAgICAgY29uc3QgICBjaGFyICogY291bnRyeSAgPSAwLAorICAgICAgICAgICAgY29u
c3QgICBjaGFyICogdmFyaWFudCAgPSAwLAorICAgICAgICAgICAgY29uc3QgICBjaGFyICoga2V5
d29yZHNBbmRWYWx1ZXMgPSAwKTsKKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIGEgTG9j
YWxlIG9iamVjdCBmcm9tIGFub3RoZXIgTG9jYWxlIG9iamVjdC4KKyAgICAgKgorICAgICAqIEBw
YXJhbSBvdGhlciBUaGUgTG9jYWxlIG9iamVjdCBiZWluZyBjb3BpZWQgaW4uCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxlKGNvbnN0ICAgIExvY2FsZSYgb3RoZXIp
OworCisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCB+TG9jYWxlKCkgOworCisgICAgLyoqCisgICAgICogUmVw
bGFjZXMgdGhlIGVudGlyZSBjb250ZW50cyBvZiAqdGhpcyB3aXRoIHRoZSBzcGVjaWZpZWQgdmFs
dWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIExvY2FsZSBvYmplY3QgYmVpbmcg
Y29waWVkIGluLgorICAgICAqIEByZXR1cm4gICAgICAqdGhpcworICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIExvY2FsZSYgb3BlcmF0b3I9KGNvbnN0IExvY2FsZSYgb3RoZXIp
OworCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHR3byBsb2NhbGUga2V5cyBhcmUgdGhlIHNh
bWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIGxvY2FsZSBrZXkgb2JqZWN0IHRv
IGJlIGNvbXBhcmVkIHdpdGggdGhpcy4KKyAgICAgKiBAcmV0dXJuICAgICAgVHJ1ZSBpZiB0aGUg
dHdvIGxvY2FsZSBrZXlzIGFyZSB0aGUgc2FtZSwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29sICAgb3BlcmF0b3I9PShjb25zdCAgICBM
b2NhbGUmICAgICBvdGhlcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdHdv
IGxvY2FsZSBrZXlzIGFyZSBub3QgdGhlIHNhbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3Ro
ZXIgVGhlIGxvY2FsZSBrZXkgb2JqZWN0IHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcy4KKyAgICAg
KiBAcmV0dXJuICAgICAgVHJ1ZSBpZiB0aGUgdHdvIGxvY2FsZSBrZXlzIGFyZSBub3QgdGhlIHNh
bWUsIGZhbHNlCisgICAgICogICAgICAgICAgICAgIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCAgIG9wZXJhdG9yIT0oY29uc3QgICAgTG9jYWxl
JiAgICAgb3RoZXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogQ2xvbmUgdGhpcyBvYmplY3Qu
CisgICAgICogQ2xvbmVzIGNhbiBiZSB1c2VkIGNvbmN1cnJlbnRseSBpbiBtdWx0aXBsZSB0aHJl
YWRzLgorICAgICAqIElmIGFuIGVycm9yIG9jY3VycywgdGhlbiBOVUxMIGlzIHJldHVybmVkLgor
ICAgICAqIFRoZSBjYWxsZXIgbXVzdCBkZWxldGUgdGhlIGNsb25lLgorICAgICAqCisgICAgICog
QHJldHVybiBhIGNsb25lIG9mIHRoaXMgb2JqZWN0CisgICAgICoKKyAgICAgKiBAc2VlIGdldER5
bmFtaWNDbGFzc0lECisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgTG9jYWxl
ICpjbG9uZSgpIGNvbnN0OworCisjaWZuZGVmIFVfSElERV9TWVNURU1fQVBJCisgICAgLyoqCisg
ICAgICogQ29tbW9uIG1ldGhvZHMgb2YgZ2V0dGluZyB0aGUgY3VycmVudCBkZWZhdWx0IExvY2Fs
ZS4gVXNlZCBmb3IgdGhlCisgICAgICogcHJlc2VudGF0aW9uOiBtZW51cywgZGlhbG9ncywgZXRj
LiBHZW5lcmFsbHkgc2V0IG9uY2Ugd2hlbiB5b3VyIGFwcGxldCBvcgorICAgICAqIGFwcGxpY2F0
aW9uIGlzIGluaXRpYWxpemVkLCB0aGVuIG5ldmVyIHJlc2V0LiAoSWYgeW91IGRvIHJlc2V0IHRo
ZQorICAgICAqIGRlZmF1bHQgbG9jYWxlLCB5b3UgcHJvYmFibHkgd2FudCB0byByZWxvYWQgeW91
ciBHVUksIHNvIHRoYXQgdGhlIGNoYW5nZQorICAgICAqIGlzIHJlZmxlY3RlZCBpbiB5b3VyIGlu
dGVyZmFjZS4pCisgICAgICoKKyAgICAgKiBNb3JlIGFkdmFuY2VkIHByb2dyYW1zIHdpbGwgYWxs
b3cgdXNlcnMgdG8gdXNlIGRpZmZlcmVudCBsb2NhbGVzIGZvcgorICAgICAqIGRpZmZlcmVudCBm
aWVsZHMsIGUuZy4gaW4gYSBzcHJlYWRzaGVldC4KKyAgICAgKgorICAgICAqIE5vdGUgdGhhdCB0
aGUgaW5pdGlhbCBzZXR0aW5nIHdpbGwgbWF0Y2ggdGhlIGhvc3Qgc3lzdGVtLgorICAgICAqIEBy
ZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhlIExvY2FsZSBvYmplY3QgZm9yIHRoZSBkZWZhdWx0IGxv
Y2FsZSBJRAorICAgICAqIEBzeXN0ZW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBzdGF0aWMgY29uc3QgTG9jYWxlJiBVX0VYUE9SVDIgZ2V0RGVmYXVsdCh2b2lkKTsKKwor
ICAgIC8qKgorICAgICAqIFNldHMgdGhlIGRlZmF1bHQuIE5vcm1hbGx5IHNldCBvbmNlIGF0IHRo
ZSBiZWdpbm5pbmcgb2YgYSBwcm9jZXNzLAorICAgICAqIHRoZW4gbmV2ZXIgcmVzZXQuCisgICAg
ICogc2V0RGVmYXVsdCgpIG9ubHkgY2hhbmdlcyBJQ1UncyBkZWZhdWx0IGxvY2FsZSBJRCwgPHN0
cm9uZz5ub3Q8L3N0cm9uZz4KKyAgICAgKiB0aGUgZGVmYXVsdCBsb2NhbGUgSUQgb2YgdGhlIHJ1
bnRpbWUgZW52aXJvbm1lbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmV3TG9jYWxlIExvY2Fs
ZSB0byBzZXQgdG8uICBJZiBOVUxMLCBzZXQgdG8gdGhlIHZhbHVlIG9idGFpbmVkCisgICAgICog
ICAgICAgICAgICAgICAgICBmcm9tIHRoZSBydW50aW1lIGVudmlyb25lbWVudC4KKyAgICAgKiBA
cGFyYW0gc3VjY2VzcyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAc3lzdGVtCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIHZvaWQgVV9FWFBPUlQyIHNldERlZmF1
bHQoY29uc3QgTG9jYWxlJiBuZXdMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVUVycm9yQ29kZSYgICBzdWNjZXNzKTsKKyNlbmRpZiAgLyogVV9ISURFX1NZU1RF
TV9BUEkgKi8KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBsb2NhbGUgd2hpY2ggaGFzIGhh
ZCBtaW5pbWFsIGNhbm9uaWNhbGl6YXRpb24KKyAgICAgKiBhcyBwZXIgdWxvY19nZXROYW1lKCku
CisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgdG8gY3JlYXRlIGZyb20uICBJZiBuYW1lIGlz
IG51bGwsCisgICAgICogIHRoZSBkZWZhdWx0IExvY2FsZSBpcyB1c2VkLgorICAgICAqIEByZXR1
cm4gbmV3IGxvY2FsZSBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKiBAc2Vl
IHVsb2NfZ2V0TmFtZQorICAgICAqLworICAgIHN0YXRpYyBMb2NhbGUgVV9FWFBPUlQyIGNyZWF0
ZUZyb21OYW1lKGNvbnN0IGNoYXIgKm5hbWUpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBh
IGxvY2FsZSBmcm9tIHRoZSBnaXZlbiBzdHJpbmcgYWZ0ZXIgY2Fub25pY2FsaXppbmcKKyAgICAg
KiB0aGUgc3RyaW5nIGJ5IGNhbGxpbmcgdWxvY19jYW5vbmljYWxpemUoKS4KKyAgICAgKiBAcGFy
YW0gbmFtZSB0aGUgbG9jYWxlIElEIHRvIGNyZWF0ZSBmcm9tLiAgTXVzdCBub3QgYmUgTlVMTC4K
KyAgICAgKiBAcmV0dXJuIGEgbmV3IGxvY2FsZSBvYmplY3QgY29ycmVzcG9uZGluZyB0byB0aGUg
Z2l2ZW4gbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqIEBzZWUgdWxvY19jYW5v
bmljYWxpemUKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9jYWxlIFVfRVhQT1JUMiBjcmVhdGVDYW5v
bmljYWwoY29uc3QgY2hhciogbmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBs
b2NhbGUncyBJU08tNjM5IGxhbmd1YWdlIGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFs
aWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5s
aW5lIGNvbnN0IGNoYXIgKiAgZ2V0TGFuZ3VhZ2UoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tMTU5MjQgYWJicmV2aWF0aW9uIHNjcmlwdCBjb2Rl
LgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzZWUg
dXNjcmlwdF9nZXRTaG9ydE5hbWUKKyAgICAgKiBAc2VlIHVzY3JpcHRfZ2V0Q29kZQorICAgICAq
IEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldFNj
cmlwdCggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIElT
Ty0zMTY2IGNvdW50cnkgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhl
IGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3Qg
Y2hhciAqICBnZXRDb3VudHJ5KCApIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0
aGUgbG9jYWxlJ3MgdmFyaWFudCBjb2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0
byB0aGUgY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBj
b25zdCBjaGFyICogIGdldFZhcmlhbnQoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHRoZSBwcm9ncmFtbWF0aWMgbmFtZSBvZiB0aGUgZW50aXJlIGxvY2FsZSwgd2l0aCB0aGUg
bGFuZ3VhZ2UsCisgICAgICogY291bnRyeSBhbmQgdmFyaWFudCBzZXBhcmF0ZWQgYnkgdW5kZXJi
YXJzLiBJZiBhIGZpZWxkIGlzIG1pc3NpbmcsIHVwCisgICAgICogdG8gdHdvIGxlYWRpbmcgdW5k
ZXJiYXJzIHdpbGwgb2NjdXIuIEV4YW1wbGU6ICJlbiIsICJkZV9ERSIsICJlbl9VU19XSU4iLAor
ICAgICAqICJkZV9fUE9TSVgiLCAiZnJfX01BQyIsICJfX01BQyIsICJfTVQiLCAiX0ZSX0VVUk8i
CisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0byAibmFtZSIuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiBnZXROYW1lKCkgY29u
c3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBwcm9ncmFtbWF0aWMgbmFtZSBvZiB0
aGUgZW50aXJlIGxvY2FsZSBhcyBnZXROYW1lKCkgd291bGQgcmV0dXJuLAorICAgICAqIGJ1dCB3
aXRob3V0IGtleXdvcmRzLgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8gIm5hbWUi
LgorICAgICAqIEBzZWUgZ2V0TmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLwor
ICAgIGNvbnN0IGNoYXIgKiBnZXRCYXNlTmFtZSgpIGNvbnN0OworCisKKyAgICAvKioKKyAgICAg
KiBHZXRzIHRoZSBsaXN0IG9mIGtleXdvcmRzIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAg
ICAgKgorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIHN0YXR1cyBjb2RlCisgICAgICogQHJldHVy
biBwb2ludGVyIHRvIFN0cmluZ0VudW1lcmF0aW9uIGNsYXNzLCBvciBOVUxMIGlmIHRoZXJlIGFy
ZSBubyBrZXl3b3Jkcy4gCisgICAgICogQ2xpZW50IG11c3QgZGlzcG9zZSBvZiBpdCBieSBjYWxs
aW5nIGRlbGV0ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBTdHJpbmdF
bnVtZXJhdGlvbiAqIGNyZWF0ZUtleXdvcmRzKFVFcnJvckNvZGUgJnN0YXR1cykgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSB2YWx1ZSBmb3IgYSBrZXl3b3JkLgorICAgICAqCisg
ICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgZm9yIHdoaWNoIHdl
IHdhbnQgdGhlIHZhbHVlLiBDYXNlIGluc2Vuc2l0aXZlLgorICAgICAqIEBwYXJhbSBidWZmZXIg
VGhlIGJ1ZmZlciB0byByZWNlaXZlIHRoZSBrZXl3b3JkIHZhbHVlLgorICAgICAqIEBwYXJhbSBi
dWZmZXJDYXBhY2l0eSBUaGUgY2FwYWNpdHkgb2YgcmVjZWl2aW5nIGJ1ZmZlcgorICAgICAqIEBw
YXJhbSBzdGF0dXMgUmV0dXJucyBhbnkgZXJyb3IgaW5mb3JtYXRpb24gd2hpbGUgcGVyZm9ybWlu
ZyB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGtleXdv
cmQgdmFsdWUKKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIGlu
dDMyX3QgZ2V0S2V5d29yZFZhbHVlKGNvbnN0IGNoYXIqIGtleXdvcmROYW1lLCBjaGFyICpidWZm
ZXIsIGludDMyX3QgYnVmZmVyQ2FwYWNpdHksIFVFcnJvckNvZGUgJnN0YXR1cykgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBTZXRzIG9yIHJlbW92ZXMgdGhlIHZhbHVlIGZvciBhIGtleXdvcmQu
CisgICAgICoKKyAgICAgKiBGb3IgcmVtb3ZpbmcgYWxsIGtleXdvcmRzLCB1c2UgZ2V0QmFzZU5h
bWUoKSwKKyAgICAgKiBhbmQgY29uc3RydWN0IGEgbmV3IExvY2FsZSBpZiBpdCBkaWZmZXJzIGZy
b20gZ2V0TmFtZSgpLgorICAgICAqCisgICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2Yg
dGhlIGtleXdvcmQgdG8gYmUgc2V0LiBDYXNlIGluc2Vuc2l0aXZlLgorICAgICAqIEBwYXJhbSBr
ZXl3b3JkVmFsdWUgdmFsdWUgb2YgdGhlIGtleXdvcmQgdG8gYmUgc2V0LiBJZiAwLWxlbmd0aCBv
cgorICAgICAqICBOVUxMLCB3aWxsIHJlc3VsdCBpbiB0aGUga2V5d29yZCBiZWluZyByZW1vdmVk
LiBObyBlcnJvciBpcyBnaXZlbiBpZgorICAgICAqICB0aGF0IGtleXdvcmQgZG9lcyBub3QgZXhp
c3QuCisgICAgICogQHBhcmFtIHN0YXR1cyBSZXR1cm5zIGFueSBlcnJvciBpbmZvcm1hdGlvbiB3
aGlsZSBwZXJmb3JtaW5nIHRoaXMgb3BlcmF0aW9uLgorICAgICAqCisgICAgICogQHN0YWJsZSBJ
Q1UgNDkKKyAgICAgKi8KKyAgICB2b2lkIHNldEtleXdvcmRWYWx1ZShjb25zdCBjaGFyKiBrZXl3
b3JkTmFtZSwgY29uc3QgY2hhcioga2V5d29yZFZhbHVlLCBVRXJyb3JDb2RlICZzdGF0dXMpOwor
CisgICAgLyoqCisgICAgICogcmV0dXJucyB0aGUgbG9jYWxlJ3MgdGhyZWUtbGV0dGVyIGxhbmd1
YWdlIGNvZGUsIGFzIHNwZWNpZmllZAorICAgICAqIGluIElTTyBkcmFmdCBzdGFuZGFyZCBJU08t
NjM5LTIuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlLCBvciBhbiBl
bXB0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBjb25zdCBj
aGFyICogZ2V0SVNPM0xhbmd1YWdlKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBp
biAibmFtZSIgd2l0aCB0aGUgbG9jYWxlJ3MgdGhyZWUtbGV0dGVyIElTTy0zMTY2IGNvdW50cnkg
Y29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUsIG9yIGFuIGVt
cHR5IHN0cmluZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGNvbnN0IGNo
YXIgKiBnZXRJU08zQ291bnRyeSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0
aGUgV2luZG93cyBMQ0lEIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBsb2NhbGUuCisgICAg
ICogVGhpcyB2YWx1ZSBpcyBzdG9yZWQgaW4gdGhlIHJlc291cmNlIGRhdGEgZm9yIHRoZSBsb2Nh
bGUgYXMgYSBvbmUtdG8tZm91ci1kaWdpdAorICAgICAqIGhleGFkZWNpbWFsIG51bWJlci4gIElm
IHRoZSByZXNvdXJjZSBpcyBtaXNzaW5nLCBpbiB0aGUgd3JvbmcgZm9ybWF0LCBvcgorICAgICAq
IHRoZXJlIGlzIG5vIFdpbmRvd3MgTENJRCB2YWx1ZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoaXMg
bG9jYWxlLCByZXR1cm5zIDAuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dWludDMyX3QgICAgICAgIGdldExDSUQodm9pZCkgY29uc3Q7CisKKyNpZm5kZWYgVV9ISURFX0RS
QUZUX0FQSQorICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciB0aGlzIGxvY2FsZSdzIHNj
cmlwdCBpcyB3cml0dGVuIHJpZ2h0LXRvLWxlZnQuCisgICAgICogSWYgdGhlcmUgaXMgbm8gc2Ny
aXB0IHN1YnRhZywgdGhlbiB0aGUgbGlrZWx5IHNjcmlwdCBpcyB1c2VkLCBzZWUgdWxvY19hZGRM
aWtlbHlTdWJ0YWdzKCkuCisgICAgICogSWYgbm8gbGlrZWx5IHNjcmlwdCBpcyBrbm93biwgdGhl
biBGQUxTRSBpcyByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEEgc2NyaXB0IGlzIHJpZ2h0LXRv
LWxlZnQgYWNjb3JkaW5nIHRvIHRoZSBDTERSIHNjcmlwdCBtZXRhZGF0YQorICAgICAqIHdoaWNo
IGNvcnJlc3BvbmRzIHRvIHdoZXRoZXIgdGhlIHNjcmlwdCdzIGxldHRlcnMgaGF2ZSBCaWRpX0Ns
YXNzPVIgb3IgQUwuCisgICAgICoKKyAgICAgKiBSZXR1cm5zIFRSVUUgZm9yICJhciIgYW5kICJl
bi1IZWJyIiwgRkFMU0UgZm9yICJ6aCIgYW5kICJmYS1DeXJsIi4KKyAgICAgKgorICAgICAqIEBy
ZXR1cm4gVFJVRSBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGlzIHdyaXR0ZW4gcmlnaHQtdG8tbGVm
dAorICAgICAqIEBkcmFmdCBJQ1UgNTQKKyAgICAgKi8KKyAgICBVQm9vbCBpc1JpZ2h0VG9MZWZ0
KCkgY29uc3Q7CisjZW5kaWYgIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KKworICAgIC8qKgorICAg
ICAqIEZpbGxzIGluICJkaXNwTGFuZyIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGxh
bmd1YWdlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvcgorICAgICAqIHVzZXIgZGlzcGxheSBpbiB0
aGUgZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzIGxhbmd1YWdl
IGNvZGUgaXMKKyAgICAgKiAiZnIiIGFuZCB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5ndWFnZSBj
b2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcExhbmcgdG8g
IkZyZW5jaCIuCisgICAgICogQHBhcmFtIGRpc3BMYW5nICBSZWNlaXZlcyB0aGUgbGFuZ3VhZ2Un
cyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAi
ZGlzcExhbmciLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVT
dHJpbmcmICBnZXREaXNwbGF5TGFuZ3VhZ2UoVW5pY29kZVN0cmluZyYgICBkaXNwTGFuZykgY29u
c3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcExhbmciIHdpdGggdGhlIG5hbWUg
b2YgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IKKyAgICAg
KiB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlMb2NhbGUi
LiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncworICAgICAqIGxhbmd1YWdlIGNvZGUgaXMg
ImVuIiBhbmQgZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImZyIiwgdGhpcyBmdW5j
dGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwTGFuZyB0byAiQW5nbGFpcyIuCisgICAgICogQHBh
cmFtIGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlz
cGxheSB0aGUgbmFtZS4gIEluIG90aGVyIHdvcmRzLAorICAgICAqICAgICAgICAgICAgICAgICAg
aWYgdGhlIGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgcGFzc2luZyBMb2NhbGU6Omdl
dEZyZW5jaCgpIGZvcgorICAgICAqICAgICAgICAgICAgICAgICAgZGlzcGxheUxvY2FsZSB3b3Vs
ZCByZXN1bHQgaW4gIkFuZ2xhaXMiLCB3aGlsZSBwYXNzaW5nIExvY2FsZTo6Z2V0R2VybWFuKCkK
KyAgICAgKiAgICAgICAgICAgICAgICAgIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBp
biAiRW5nbGlzY2giLgorICAgICAqIEBwYXJhbSBkaXNwTGFuZyAgUmVjZWl2ZXMgdGhlIGxhbmd1
YWdlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2Ug
dG8gImRpc3BMYW5nIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmlj
b2RlU3RyaW5nJiAgZ2V0RGlzcGxheUxhbmd1YWdlKCBjb25zdCAgIExvY2FsZSYgICAgICAgICBk
aXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BMYW5nKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IEZpbGxzIGluICJkaXNwU2NyaXB0IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3Mgc2Ny
aXB0IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUg
ZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzIHNjcmlwdCBjb2Rl
CisgICAgICogaXMgIkxBVE4iIGFuZCB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5ndWFnZSBjb2Rl
IGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcFNjcmlwdCB0byAi
TGF0aW4iLgorICAgICAqIEBwYXJhbSBkaXNwU2NyaXB0ICAgIFJlY2VpdmVzIHRoZSBzY3JpcHRz
J3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNl
IHRvICJkaXNwU2NyaXB0Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBV
bmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheVNjcmlwdCggICAgICAgICAgVW5pY29kZVN0cmluZyYg
ZGlzcFNjcmlwdCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFNjcmlw
dCIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGNvdW50cnkgaW4gYSBmb3JtYXQgc3Vp
dGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5
ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBz
Y3JpcHQgY29kZSBpcyAiTEFUTiIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlz
ICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcFNjcmlwdCB0byAiTGF0
aW4iLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICAgICAgU3BlY2lmaWVzIHRoZSBsb2Nh
bGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLiAgSW4gb3RoZXIKKyAgICAgKiAgICAg
ICAgICAgICAgICAgICAgICB3b3JkcywgaWYgdGhlIGxvY2FsZSdzIHNjcmlwdCBjb2RlIGlzICJM
QVROIiwgcGFzc2luZworICAgICAqICAgICAgICAgICAgICAgICAgICAgIExvY2FsZTo6Z2V0RnJl
bmNoKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICIiLCB3aGlsZQorICAgICAq
ICAgICAgICAgICAgICAgICAgICAgIHBhc3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKSBmb3IgZGlz
cGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAi
Ii4KKyAgICAgKiBAcGFyYW0gZGlzcFNjcmlwdCAgICBSZWNlaXZlcyB0aGUgc2NyaXB0cydzIGRp
c3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAi
ZGlzcFNjcmlwdCIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgVW5pY29k
ZVN0cmluZyYgIGdldERpc3BsYXlTY3JpcHQoICBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNw
bGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVbmljb2RlU3RyaW5nJiAgZGlzcFNjcmlwdCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBG
aWxscyBpbiAiZGlzcENvdW50cnkiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBjb3Vu
dHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUg
ZGVmYXVsdCBsb2NhbGUuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzIGNvdW50cnkgY29k
ZQorICAgICAqIGlzICJGUiIgYW5kIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUg
aXMgImVuIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwQ291bnRyeSB0byAi
RnJhbmNlIi4KKyAgICAgKiBAcGFyYW0gZGlzcENvdW50cnkgICBSZWNlaXZlcyB0aGUgY291bnRy
eSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICBBIHJlZmVyZW5j
ZSB0byAiZGlzcENvdW50cnkiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5Q291bnRyeSggICAgICAgICAgVW5pY29kZVN0cmlu
ZyYgZGlzcENvdW50cnkpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BD
b3VudHJ5IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1h
dCBzdWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZp
ZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncworICAg
ICAqIGNvdW50cnkgY29kZSBpcyAiVVMiIGFuZCBkaXNwbGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29k
ZSBpcyAiZnIiLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BDb3VudHJ5IHRv
ICImRWFjdXRlO3RhdHMtVW5pcyIuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgICAgICBT
cGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuICBJbiBv
dGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHdvcmRzLCBpZiB0aGUgbG9jYWxlJ3Mg
Y291bnRyeSBjb2RlIGlzICJVUyIsIHBhc3NpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAg
ICBMb2NhbGU6OmdldEZyZW5jaCgpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAi
JkVhY3V0ZTt0YXRzLVVuaXMiLCB3aGlsZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHBh
c3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKSBmb3IgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQg
aW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAiVmVyZWluaWd0ZSBTdGFhdGVuIi4KKyAg
ICAgKiBAcGFyYW0gZGlzcENvdW50cnkgICBSZWNlaXZlcyB0aGUgY291bnRyeSdzIGRpc3BsYXkg
bmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcENv
dW50cnkiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJp
bmcmICBnZXREaXNwbGF5Q291bnRyeSggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlM
b2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBV
bmljb2RlU3RyaW5nJiAgZGlzcENvdW50cnkpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmls
bHMgaW4gImRpc3BWYXIiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyB2YXJpYW50IGNv
ZGUgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBk
ZWZhdWx0IGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gZGlzcFZhciAgIFJlY2VpdmVzIHRoZSB2YXJp
YW50J3MgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNw
VmFyIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5n
JiAgZ2V0RGlzcGxheVZhcmlhbnQoICAgICAgVW5pY29kZVN0cmluZyYgZGlzcFZhcikgY29uc3Q7
CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFZhciIgd2l0aCB0aGUgbmFtZSBvZiB0
aGlzIGxvY2FsZSdzIHZhcmlhbnQgY29kZSBpbiBhIGZvcm1hdAorICAgICAqIHN1aXRhYmxlIGZv
ciB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlMb2NhbGUi
LgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBi
ZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHBhcmFtIGRpc3BWYXIgICBSZWNl
aXZlcyB0aGUgdmFyaWFudCdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAg
IEEgcmVmZXJlbmNlIHRvICJkaXNwVmFyIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheVZhcmlhbnQoICBjb25zdCAgIExvY2Fs
ZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BWYXIpIGNvbnN0OworCisgICAg
LyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUg
aW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yIHVzZXIgZGlzcGxheQorICAgICAqIGluIHRoZSBkZWZh
dWx0IGxvY2FsZS4gIFRoaXMgZnVuY3Rpb24gdXNlcyBnZXREaXNwbGF5TGFuZ3VhZ2UoKSwgZ2V0
RGlzcGxheUNvdW50cnkoKSwKKyAgICAgKiBhbmQgZ2V0RGlzcGxheVZhcmlhbnQoKSB0byBkbyBp
dHMgd29yaywgYW5kIG91dHB1dHMgdGhlIGRpc3BsYXkgbmFtZSBpbiB0aGUgZm9ybWF0CisgICAg
ICogImxhbmd1YWdlIChjb3VudHJ5Wyx2YXJpYW50XSkiLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBk
ZWZhdWx0IGxvY2FsZSBpcyBlbl9VUywgdGhlbgorICAgICAqIGZyX0ZSJ3MgZGlzcGxheSBuYW1l
IHdvdWxkIGJlICJGcmVuY2ggKEZyYW5jZSkiLCBhbmQgZXNfTVhfVHJhZGl0aW9uYWwncyBkaXNw
bGF5IG5hbWUKKyAgICAgKiB3b3VsZCBiZSAiU3BhbmlzaCAoTWV4aWNvLFRyYWRpdGlvbmFsKSIu
CisgICAgICogQHBhcmFtIG5hbWUgIFJlY2VpdmVzIHRoZSBsb2NhbGUncyBkaXNwbGF5IG5hbWUu
CisgICAgICogQHJldHVybiAgICAgIEEgcmVmZXJlbmNlIHRvICJuYW1lIi4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheU5hbWUo
ICAgICAgICAgVW5pY29kZVN0cmluZyYgIG5hbWUpIGNvbnN0OworCisgICAgLyoqCisgICAgICog
RmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUgaW4gYSBmb3JtYXQg
c3VpdGFibGUgZm9yIHVzZXIgZGlzcGxheQorICAgICAqIGluIHRoZSBsb2NhbGUgc3BlY2ZpZWQg
YnkgImRpc3BsYXlMb2NhbGUiLiAgVGhpcyBmdW5jdGlvbiB1c2VzIGdldERpc3BsYXlMYW5ndWFn
ZSgpLAorICAgICAqIGdldERpc3BsYXlDb3VudHJ5KCksIGFuZCBnZXREaXNwbGF5VmFyaWFudCgp
IHRvIGRvIGl0cyB3b3JrLCBhbmQgb3V0cHV0cyB0aGUgZGlzcGxheQorICAgICAqIG5hbWUgaW4g
dGhlIGZvcm1hdCAibGFuZ3VhZ2UgKGNvdW50cnlbLHZhcmlhbnRdKSIuICBGb3IgZXhhbXBsZSwg
aWYgZGlzcGxheUxvY2FsZSBpcworICAgICAqIGZyX0ZSLCB0aGVuIGVuX1VTJ3MgZGlzcGxheSBu
YW1lIHdvdWxkIGJlICJBbmdsYWlzICgmRWFjdXRlO3RhdHMtVW5pcykiLCBhbmQgbm9fTk9fTlkn
cworICAgICAqIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAibm9ydiZlYWN1dGU7Z2llbiAoTm9ydiZl
Z3JhdmU7Z2UsTlkpIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgU3BlY2lmaWVzIHRo
ZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEBwYXJhbSBu
YW1lICAgICAgUmVjZWl2ZXMgdGhlIGxvY2FsZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0
dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJuYW1lIi4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheU5hbWUoIGNvbnN0ICAg
TG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBuYW1lKSBjb25zdDsKKworICAgIC8q
KgorICAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhlIGxvY2FsZS4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAgaGFzaENvZGUodm9p
ZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBsb2NhbGUgdG8gYm9ndXMKKyAg
ICAgKiBBIGJvZ3VzIGxvY2FsZSByZXByZXNlbnRzIGEgbm9uLWV4aXN0aW5nIGxvY2FsZSBhc3Nv
Y2lhdGVkCisgICAgICogd2l0aCBzZXJ2aWNlcyB0aGF0IGNhbiBiZSBpbnN0YW50aWF0ZWQgZnJv
bSBub24tbG9jYWxlIGRhdGEKKyAgICAgKiBpbiBhZGRpdGlvbiB0byBsb2NhbGUgKGZvciBleGFt
cGxlLCBjb2xsYXRpb24gY2FuIGJlCisgICAgICogaW5zdGFudGlhdGVkIGZyb20gYSBsb2NhbGUg
YW5kIGZyb20gYSBydWxlIHNldCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisg
ICAgdm9pZCBzZXRUb0JvZ3VzKCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBib2d1cyBz
dGF0ZS4gTG9jYWxlIG9iamVjdCBjYW4gYmUgYm9ndXMgaWYgaXQgZG9lc24ndCBleGlzdAorICAg
ICAqIEByZXR1cm4gRkFMU0UgaWYgaXQgaXMgYSByZWFsIGxvY2FsZSwgVFJVRSBpZiBpdCBpcyBh
IGJvZ3VzIGxvY2FsZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIFVCb29s
IGlzQm9ndXModm9pZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBv
ZiBhbGwgaW5zdGFsbGVkIGxvY2FsZXMuCisgICAgICogQHBhcmFtIGNvdW50IFJlY2VpdmVzIHRo
ZSBudW1iZXIgb2YgbG9jYWxlcyBpbiB0aGUgbGlzdC4KKyAgICAgKiBAcmV0dXJuICAgICAgQSBw
b2ludGVyIHRvIGFuIGFycmF5IG9mIExvY2FsZSBvYmplY3RzLiAgVGhpcyBhcnJheSBpcyB0aGUg
bGlzdAorICAgICAqICAgICAgICAgICAgICBvZiBhbGwgbG9jYWxlcyB3aXRoIGluc3RhbGxlZCBy
ZXNvdXJjZSBmaWxlcy4gIFRoZSBjYWxsZWQgZG9lcyBOT1QKKyAgICAgKiAgICAgICAgICAgICAg
Z2V0IG93bmVyc2hpcCBvZiB0aGlzIGxpc3QsIGFuZCBtdXN0IE5PVCBkZWxldGUgaXQuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSogVV9F
WFBPUlQyIGdldEF2YWlsYWJsZUxvY2FsZXMoaW50MzJfdCYgY291bnQpOworCisgICAgLyoqCisg
ICAgICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSAyLWxldHRlciBjb3VudHJ5IGNvZGVz
IGRlZmluZWQgaW4gSVNPIDMxNjYuICBUaGlzIGlzIGEKKyAgICAgKiBwb2ludGVyIHRvIGFuIGFy
cmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBvZiBjaGFyLiAgQWxsIG9mIHRoZXNlIHBvaW50ZXJz
IGFyZQorICAgICAqIG93bmVkIGJ5IElDVS0tIGRvIG5vdCBkZWxldGUgdGhlbSwgYW5kIGRvIG5v
dCB3cml0ZSB0aHJvdWdoIHRoZW0uICBUaGUgYXJyYXkgaXMKKyAgICAgKiB0ZXJtaW5hdGVkIHdp
dGggYSBudWxsIHBvaW50ZXIuCisgICAgICogQHJldHVybiBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJs
ZSBjb3VudHJ5IGNvZGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGNvbnN0KiBVX0VYUE9SVDIgZ2V0SVNPQ291bnRyaWVzKCk7CisKKyAg
ICAvKioKKyAgICAgKiBHZXRzIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGxhbmd1YWdlIGNvZGVz
IGRlZmluZWQgaW4gSVNPIDYzOS4gIFRoaXMgaXMgYSBwb2ludGVyCisgICAgICogdG8gYW4gYXJy
YXkgb2YgcG9pbnRlcnMgdG8gYXJyYXlzIG9mIGNoYXIuICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMg
YXJlIG93bmVkCisgICAgICogYnkgSUNVLS0gZG8gbm90IGRlbGV0ZSB0aGVtLCBhbmQgZG8gbm90
IHdyaXRlIHRocm91Z2ggdGhlbS4gIFRoZSBhcnJheSBpcworICAgICAqIHRlcm1pbmF0ZWQgd2l0
aCBhIG51bGwgcG9pbnRlci4KKyAgICAgKiBAcmV0dXJuIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxl
IGxhbmd1YWdlIGNvZGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGNvbnN0KiBVX0VYUE9SVDIgZ2V0SVNPTGFuZ3VhZ2VzKCk7CisKKyAg
ICAvKioKKyAgICAgKiBJQ1UgInBvb3IgbWFuJ3MgUlRUSSIsIHJldHVybnMgYSBVQ2xhc3NJRCBm
b3IgdGhpcyBjbGFzcy4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLwor
ICAgIHN0YXRpYyBVQ2xhc3NJRCBVX0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCgpOworCisgICAg
LyoqCisgICAgICogSUNVICJwb29yIG1hbidzIFJUVEkiLCByZXR1cm5zIGEgVUNsYXNzSUQgZm9y
IHRoZSBhY3R1YWwgY2xhc3MuCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKCkgY29uc3Q7CisKK3By
b3RlY3RlZDogLyogb25seSBwcm90ZWN0ZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMuIERPIE5PVCBV
U0UuICovCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgKiBTZXQg
dGhpcyBmcm9tIGEgc2luZ2xlIFBPU0lYIHN0eWxlIGxvY2FsZSBzdHJpbmcuCisgICAgICogQGlu
dGVybmFsCisgICAgICovCisgICAgdm9pZCBzZXRGcm9tUE9TSVhJRChjb25zdCBjaGFyICpwb3Np
eElEKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCitwcml2YXRlOgorICAg
IC8qKgorICAgICAqIEluaXRpYWxpemUgdGhlIGxvY2FsZSBvYmplY3Qgd2l0aCBhIG5ldyBuYW1l
LgorICAgICAqIFdhcyBkZXByZWNhdGVkIC0gdXNlZCBpbiBpbXBsZW1lbnRhdGlvbiAtIG1vdmVk
IGludGVybmFsCisgICAgICoKKyAgICAgKiBAcGFyYW0gY0xvY2FsZUlEIFRoZSBuZXcgbG9jYWxl
IG5hbWUuCisgICAgICogQHBhcmFtIGNhbm9uaWNhbGl6ZSB3aGV0aGVyIHRvIGNhbGwgdWxvY19j
YW5vbmljYWxpemUgb24gY0xvY2FsZUlECisgICAgICovCisgICAgTG9jYWxlJiBpbml0KGNvbnN0
IGNoYXIqIGNMb2NhbGVJRCwgVUJvb2wgY2Fub25pY2FsaXplKTsKKworICAgIC8qCisgICAgICog
SW50ZXJuYWwgY29uc3RydWN0b3IgdG8gYWxsb3cgY29uc3RydWN0aW9uIG9mIGEgbG9jYWxlIG9i
amVjdCB3aXRoCisgICAgICogICBOTyBzaWRlIGVmZmVjdHMuICAgKERlZmF1bHQgY29uc3RydWN0
b3IgdHJpZXMgdG8gZ2V0CisgICAgICogICB0aGUgZGVmYXVsdCBsb2NhbGUuKQorICAgICAqLwor
ICAgIGVudW0gRUxvY2FsZVR5cGUgeworICAgICAgICBlQk9HVVMKKyAgICB9OworICAgIExvY2Fs
ZShFTG9jYWxlVHlwZSk7CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHRoZSBsb2NhbGUg
Y2FjaGUgZm9yIGNvbW1vbmx5IHVzZWQgbG9jYWxlcworICAgICAqLworICAgIHN0YXRpYyBMb2Nh
bGUgKmdldExvY2FsZUNhY2hlKHZvaWQpOworCisgICAgY2hhciBsYW5ndWFnZVtVTE9DX0xBTkdf
Q0FQQUNJVFldOworICAgIGNoYXIgc2NyaXB0W1VMT0NfU0NSSVBUX0NBUEFDSVRZXTsKKyAgICBj
aGFyIGNvdW50cnlbVUxPQ19DT1VOVFJZX0NBUEFDSVRZXTsKKyAgICBpbnQzMl90IHZhcmlhbnRC
ZWdpbjsKKyAgICBjaGFyKiBmdWxsTmFtZTsKKyAgICBjaGFyIGZ1bGxOYW1lQnVmZmVyW1VMT0Nf
RlVMTE5BTUVfQ0FQQUNJVFldOworICAgIC8vIG5hbWUgd2l0aG91dCBrZXl3b3JkcworICAgIGNo
YXIqIGJhc2VOYW1lOworICAgIHZvaWQgaW5pdEJhc2VOYW1lKFVFcnJvckNvZGUmIHN0YXR1cyk7
CisKKyAgICBVQm9vbCBmSXNCb2d1czsKKworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJmdldExv
Y2FsZShpbnQgbG9jaWQpOworCisgICAgLyoqCisgICAgICogQSBmcmllbmQgdG8gYWxsb3cgdGhl
IGRlZmF1bHQgbG9jYWxlIHRvIGJlIHNldCBieSBlaXRoZXIgdGhlIEMgb3IgQysrIEFQSS4KKyAg
ICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBmcmllbmQgTG9jYWxlICpsb2NhbGVfc2V0X2Rl
ZmF1bHRfaW50ZXJuYWwoY29uc3QgY2hhciAqLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAg
LyoqCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgZnJpZW5kIHZvaWQgVV9DQUxMQ09O
ViBsb2NhbGVfYXZhaWxhYmxlX2luaXQoKTsKK307CisKK2lubGluZSBVQm9vbAorTG9jYWxlOjpv
cGVyYXRvciE9KGNvbnN0ICAgIExvY2FsZSYgICAgIG90aGVyKSBjb25zdAoreworICAgIHJldHVy
biAhb3BlcmF0b3I9PShvdGhlcik7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6
Z2V0Q291bnRyeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvdW50cnk7Cit9CisKK2lubGluZSBj
b25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0TGFuZ3VhZ2UoKSBjb25zdAoreworICAgIHJldHVybiBs
YW5ndWFnZTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRTY3JpcHQoKSBj
b25zdAoreworICAgIHJldHVybiBzY3JpcHQ7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xv
Y2FsZTo6Z2V0VmFyaWFudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICZiYXNlTmFtZVt2YXJpYW50
QmVnaW5dOworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldE5hbWUoKSBjb25z
dAoreworICAgIHJldHVybiBmdWxsTmFtZTsKK30KKworaW5saW5lIFVCb29sCitMb2NhbGU6Omlz
Qm9ndXModm9pZCkgY29uc3QgeworICAgIHJldHVybiBmSXNCb2d1czsKK30KKworVV9OQU1FU1BB
Q0VfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9yYmJp
LmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JiYmkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDc1OThhNTBl
NmZhM2JhYjJhZDQ5ZTAyMmFhZjM5NmNhYzMyOWU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi9pY3UvdW5pY29kZS9yYmJpLmgKQEAgLTAsMCArMSw3ODIgQEAKKy8qCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxNCBJbnRlcm5hdGlvbmFsIEJ1c2lu
ZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uICAgKgorKiAgIGFuZCBvdGhlcnMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAg
IERlc2NyaXB0aW9uCisqICAgMTAvMjIvOTkgICAgYWxhbiAgICAgICAgQ3JlYXRpb24uCisqICAg
MTEvMTEvOTkgICAgcmdpbGxhbSAgICAgQ29tcGxldGUgcG9ydCBmcm9tIEphdmEuCisqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqLworCisjaWZuZGVmIFJCQklfSAorI2RlZmluZSBSQkJJX0gKKworI2luY2x1ZGUg
InVuaWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBS
dWxlIEJhc2VkIEJyZWFrIEl0ZXJhdG9yCisgKi8KKworI2lmICFVQ09ORklHX05PX0JSRUFLX0lU
RVJBVElPTgorCisjaW5jbHVkZSAidW5pY29kZS9icmtpdGVyLmgiCisjaW5jbHVkZSAidW5pY29k
ZS91ZGF0YS5oIgorI2luY2x1ZGUgInVuaWNvZGUvcGFyc2VlcnIuaCIKKyNpbmNsdWRlICJ1bmlj
b2RlL3NjaHJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2hyaXRlci5oIgorCisKK3N0cnVj
dCBVVHJpZTsKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqIEBpbnRlcm5hbCAqLworc3RydWN0
IFJCQklEYXRhSGVhZGVyOworY2xhc3MgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JUYWJsZXM7Citj
bGFzcyAgQnJlYWtJdGVyYXRvcjsKK2NsYXNzICBSQkJJRGF0YVdyYXBwZXI7CitjbGFzcyAgVVN0
YWNrOworY2xhc3MgIExhbmd1YWdlQnJlYWtFbmdpbmU7CitjbGFzcyAgVW5oYW5kbGVkRW5naW5l
Oworc3RydWN0IFJCQklTdGF0ZVRhYmxlOworCisKKworCisvKioKKyAqCisgKiBBIHN1YmNsYXNz
IG9mIEJyZWFrSXRlcmF0b3Igd2hvc2UgYmVoYXZpb3IgaXMgc3BlY2lmaWVkIHVzaW5nIGEgbGlz
dCBvZiBydWxlcy4KKyAqIDxwPkluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGFyZSBtb3N0IGNvbW1v
bmx5IGNyZWF0ZWQgYnkgdGhlIGZhY3RvcnkgbWV0aG9kcyBvZgorICogIEJyZWFrSXRlcmF0b3I6
OmNyZWF0ZVdvcmRJbnN0YW5jZSgpLCBCcmVha0l0ZXJhdG9yOjpjcmVhdGVMaW5lSW5zdGFuY2Uo
KSwgZXRjLiwKKyAqICBhbmQgdGhlbiB1c2VkIHZpYSB0aGUgYWJzdHJhY3QgQVBJIGluIGNsYXNz
IEJyZWFrSXRlcmF0b3I8L3A+CisgKgorICogPHA+U2VlIHRoZSBJQ1UgVXNlciBHdWlkZSBmb3Ig
aW5mb3JtYXRpb24gb24gQnJlYWsgSXRlcmF0b3IgUnVsZXMuPC9wPgorICoKKyAqIDxwPlRoaXMg
Y2xhc3MgaXMgbm90IGludGVuZGVkIHRvIGJlIHN1YmNsYXNzZWQuICAoQ2xhc3MgRGljdGlvbmFy
eUJhc2VkQnJlYWtJdGVyYXRvcgorICogICAgaXMgYSBzdWJjbGFzcywgYnV0IHRoYXQgcmVsYXRp
b25zaGlwIGlzIGVmZmVjdGl2ZWx5IGludGVybmFsIHRvIHRoZSBJQ1UKKyAqICAgIGltcGxlbWVu
dGF0aW9uLiAgVGhlIHN1YmNsYXNzaW5nIGludGVyZmFjZSB0byBSdWxlc0Jhc2VkQnJlYWtJdGVy
YXRvciBpcworICogICAgbm90IHBhcnQgb2YgdGhlIElDVSBBUEksIGFuZCBtYXkgbm90IHJlbWFp
biBzdGFibGUuPC9wPgorICoKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IgLypVX0ZJTkFMKi8gOiBwdWJsaWMgQnJlYWtJdGVyYXRvciB7CisKK3Byb3RlY3Rl
ZDoKKyAgICAvKioKKyAgICAgKiBUaGUgVVRleHQgdGhyb3VnaCB3aGljaCB0aGlzIEJyZWFrSXRl
cmF0b3IgYWNjZXNzZXMgdGhlIHRleHQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBV
VGV4dCAgKmZUZXh0OworCisgICAgLyoqCisgICAgICogICBBIGNoYXJhY3RlciBpdGVyYXRvciB0
aGF0IHJlZmVycyB0byB0aGUgc2FtZSB0ZXh0IGFzIHRoZSBVVGV4dCwgYWJvdmUuCisgICAgICog
ICBPbmx5IGluY2x1ZGVkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggb2xkIEFQSSwgd2hpY2ggd2Fz
IGJhc2VkIG9uIENoYXJhY3Rlckl0ZXJhdG9ycy4KKyAgICAgKiAgIFZhbHVlIG1heSBiZSBhZG9w
dGVkIGZyb20gb3V0c2lkZSwgb3Igb25lIG9mIGZTQ2hhckl0ZXIgb3IgZkRDaGFySXRlciwgYmVs
b3cuCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IgICpmQ2hhckl0ZXI7CisKKyAgICAv
KioKKyAgICAgKiAgIFdoZW4gdGhlIGlucHV0IHRleHQgaXMgcHJvdmlkZWQgYnkgYSBVbmljb2Rl
U3RyaW5nLCB0aGlzIHdpbGwgcG9pbnQgdG8KKyAgICAgKiAgICBhIGNoYXJhY3Rlckl0ZXJhdG9y
IHRoYXQgd3JhcHMgdGhhdCBkYXRhLiAgTmVlZGVkIG9ubHkgZm9yIHRoZQorICAgICAqICAgIGlt
cGxlbWVudGF0aW9uIG9mIGdldFRleHQoKSwgYSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBpc3N1
ZS4KKyAgICAgKi8KKyAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciAqZlNDaGFySXRlcjsKKwor
ICAgIC8qKgorICAgICAqICBXaGVuIHRoZSBpbnB1dCB0ZXh0IGlzIHByb3ZpZGVkIGJ5IGEgVVRl
eHQsIHRoaXMKKyAgICAgKiAgICBkdW1teSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIGFuIGVtcHR5
IHN0cmluZyB3aWxsCisgICAgICogICAgYmUgcmV0dXJuZWQgZnJvbSBnZXRUZXh0KCkKKyAgICAg
Ki8KKyAgICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yICpmRENoYXJJdGVyOworCisgICAgLyoqCisg
ICAgICogVGhlIHJ1bGUgZGF0YSBmb3IgdGhpcyBCcmVha0l0ZXJhdG9yIGluc3RhbmNlCisgICAg
ICogQGludGVybmFsCisgICAgICovCisgICAgUkJCSURhdGFXcmFwcGVyICAgICpmRGF0YTsKKwor
ICAgIC8qKiBJbmRleCBvZiB0aGUgUnVsZSB7dGFnfSB2YWx1ZXMgZm9yIHRoZSBtb3N0IHJlY2Vu
dCBtYXRjaC4KKyAgICAgKiAgQGludGVybmFsCisgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAg
ICAgIGZMYXN0UnVsZVN0YXR1c0luZGV4OworCisgICAgLyoqCisgICAgICogUnVsZSB0YWcgdmFs
dWUgdmFsaWQgZmxhZy4KKyAgICAgKiBTb21lIGl0ZXJhdG9yIG9wZXJhdGlvbnMgZG9uJ3QgaW50
cmluc2ljYWxseSBzZXQgdGhlIGNvcnJlY3QgdGFnIHZhbHVlLgorICAgICAqIFRoaXMgZmxhZyBs
ZXRzIHVzIGxhemlseSBjb21wdXRlIHRoZSB2YWx1ZSBpZiB3ZSBhcmUgZXZlciBhc2tlZCBmb3Ig
aXQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVUJvb2wgICAgICAgICAgICAgICBm
TGFzdFN0YXR1c0luZGV4VmFsaWQ7CisKKyAgICAvKioKKyAgICAgKiBDb3VudGVyIGZvciB0aGUg
bnVtYmVyIG9mIGNoYXJhY3RlcnMgZW5jb3VudGVyZWQgd2l0aCB0aGUgImRpY3Rpb25hcnkiCisg
ICAgICogICBmbGFnIHNldC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB1aW50MzJf
dCAgICAgICAgICAgIGZEaWN0aW9uYXJ5Q2hhckNvdW50OworCisgICAgLyoqCisgICAgICogV2hl
biBhIHJhbmdlIG9mIGNoYXJhY3RlcnMgaXMgZGl2aWRlZCB1cCB1c2luZyB0aGUgZGljdGlvbmFy
eSwgdGhlIGJyZWFrCisgICAgICogcG9zaXRpb25zIHRoYXQgYXJlIGRpc2NvdmVyZWQgYXJlIHN0
b3JlZCBoZXJlLCBwcmV2ZW50aW5nIHVzIGZyb20gaGF2aW5nCisgICAgICogdG8gdXNlIGVpdGhl
ciB0aGUgZGljdGlvbmFyeSBvciB0aGUgc3RhdGUgdGFibGUgYWdhaW4gdW50aWwgdGhlIGl0ZXJh
dG9yCisgICAgICogbGVhdmVzIHRoaXMgcmFuZ2Ugb2YgdGV4dC4gSGFzIHRoZSBtb3N0IGltcGFj
dCBmb3IgbGluZSBicmVha2luZy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQz
Ml90KiAgICAgICAgICAgIGZDYWNoZWRCcmVha1Bvc2l0aW9uczsKKworICAgIC8qKgorICAgICAq
IFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gZkNhY2hlZEJyZWFrUG9zaXRpb25zCisgICAgICog
QGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmTnVtQ2FjaGVkQnJl
YWtQb3NpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBpZiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMg
aXMgbm90IG51bGwsIHRoaXMgaW5kaWNhdGVzIHdoaWNoIGl0ZW0gaW4gdGhlCisgICAgICogY2Fj
aGUgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHJlZmVycyB0bworICAgICAqIEBpbnRl
cm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZlBvc2l0aW9uSW5DYWNoZTsK
KyAgICAKKyAgICAvKioKKyAgICAgKgorICAgICAqIElmIHByZXNlbnQsIFVTdGFjayBvZiBMYW5n
dWFnZUJyZWFrRW5naW5lIG9iamVjdHMgdGhhdCBtaWdodCBoYW5kbGUKKyAgICAgKiBkaWN0aW9u
YXJ5IGNoYXJhY3RlcnMuIFNlYXJjaGVkIGZyb20gdG9wIHRvIGJvdHRvbSB0byBmaW5kIGFuIG9i
amVjdCB0bworICAgICAqIGhhbmRsZSBhIGdpdmVuIGNoYXJhY3Rlci4KKyAgICAgKiBAaW50ZXJu
YWwKKyAgICAgKi8KKyAgICBVU3RhY2sgICAgICAgICAgICAgICpmTGFuZ3VhZ2VCcmVha0VuZ2lu
ZXM7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAgKiBJZiBwcmVzZW50LCB0aGUgc3BlY2lh
bCBMYW5ndWFnZUJyZWFrRW5naW5lIHVzZWQgZm9yIGhhbmRsaW5nCisgICAgICogY2hhcmFjdGVy
cyB0aGF0IGFyZSBpbiB0aGUgZGljdGlvbmFyeSBzZXQsIGJ1dCBub3QgaGFuZGxlZCBieSBhbnkK
KyAgICAgKiBMYW5ndWdhZ2VCcmVha0VuZ2luZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8K
KyAgICBVbmhhbmRsZWRFbmdpbmUgICAgICpmVW5oYW5kbGVkQnJlYWtFbmdpbmU7CisgICAgCisg
ICAgLyoqCisgICAgICoKKyAgICAgKiBUaGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IsIG9y
IC0xIGlmIGl0IGhhcyBub3QgYmVlbiBzZXQuCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgaW50MzJfdCAgICAgICAgICAgICBmQnJlYWtUeXBlOworICAgIAorcHJvdGVjdGVkOgorICAg
IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKyAgICAvLyBjb25zdHJ1Y3RvcnMKKyAgICAvLz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAqIENvbnN0
YW50IHRvIGJlIHVzZWQgaW4gdGhlIGNvbnN0cnVjdG9yCisgICAgICogUnVsZUJhc2VkQnJlYWtJ
dGVyYXRvcihSQkJJRGF0YUhlYWRlciosIEVEb250QWRvcHQsIFVFcnJvckNvZGUgJik7CisgICAg
ICogd2hpY2ggZG9lcyBub3QgYWRvcHQgdGhlIG1lbW9yeSBpbmRpY2F0ZWQgYnkgdGhlIFJCQklE
YXRhSGVhZGVyKgorICAgICAqIHBhcmFtZXRlci4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAor
ICAgICAqLworICAgIGVudW0gRURvbnRBZG9wdCB7CisgICAgICAgIGtEb250QWRvcHQKKyAgICB9
OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgZnJvbSBhIGZsYXR0ZW5lZCBzZXQgb2Yg
UkJCSSBkYXRhIGluIG1hbGxvY2VkIG1lbW9yeS4KKyAgICAgKiAgICAgICAgICAgICBSdWxlc0Jh
c2VkQnJlYWtJdGVyYXRvcnMgYnVpbHQgZnJvbSBhIGN1c3RvbSBzZXQgb2YgcnVsZXMKKyAgICAg
KiAgICAgICAgICAgICBhcmUgY3JlYXRlZCB2aWEgdGhpcyBjb25zdHJ1Y3RvcjsgdGhlIHJ1bGVz
IGFyZSBjb21waWxlZAorICAgICAqICAgICAgICAgICAgIGludG8gbWVtb3J5LCB0aGVuIHRoZSBi
cmVhayBpdGVyYXRvciBpcyBjb25zdHJ1Y3RlZCBoZXJlLgorICAgICAqCisgICAgICogICAgICAg
ICAgICAgVGhlIGJyZWFrIGl0ZXJhdG9yIGFkb3B0cyB0aGUgbWVtb3J5LCBhbmQgd2lsbAorICAg
ICAqICAgICAgICAgICAgIGZyZWUgaXQgd2hlbiBkb25lLgorICAgICAqIEBpbnRlcm5hbAorICAg
ICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoUkJCSURhdGFIZWFkZXIqIGRhdGEsIFVF
cnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmcm9tIGEg
ZmxhdHRlbmVkIHNldCBvZiBSQkJJIGRhdGEgaW4gbWVtb3J5IHdoaWNoIG5lZWQgbm90CisgICAg
ICogICAgICAgICAgICAgYmUgbWFsbG9jZWQgKGUuZy4gaXQgbWF5IGJlIGEgbWVtb3J5LW1hcHBl
ZCBmaWxlLCBldGMuKS4KKyAgICAgKgorICAgICAqICAgICAgICAgICAgIFRoaXMgdmVyc2lvbiBk
b2VzIG5vdCBhZG9wdCB0aGUgbWVtb3J5LCBhbmQgZG9lcyBub3QKKyAgICAgKiAgICAgICAgICAg
ICBmcmVlIGl0IHdoZW4gZG9uZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBSdWxl
QmFzZWRCcmVha0l0ZXJhdG9yKGNvbnN0IFJCQklEYXRhSGVhZGVyKiBkYXRhLCBlbnVtIEVEb250
QWRvcHQgZG9udEFkb3B0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworI2VuZGlmICAvKiBVX0hJREVf
SU5URVJOQUxfQVBJICovCisKKworICAgIGZyaWVuZCBjbGFzcyBSQkJJUnVsZUJ1aWxkZXI7Cisg
ICAgLyoqIEBpbnRlcm5hbCAqLworICAgIGZyaWVuZCBjbGFzcyBCcmVha0l0ZXJhdG9yOworCisK
KworcHVibGljOgorCisgICAgLyoqIERlZmF1bHQgY29uc3RydWN0b3IuICBDcmVhdGVzIGFuIGVt
cHR5IHNoZWxsIG9mIGFuIGl0ZXJhdG9yLCB3aXRoIG5vCisgICAgICogIHJ1bGVzIG9yIHRleHQg
dG8gaXRlcmF0ZSBvdmVyLiAgIE9iamVjdCBjYW4gc3Vic2VxdWVudGx5IGJlIGFzc2lnbmVkIHRv
LgorICAgICAqICBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBDb3B5IGNvbnN0cnVjdG9yLiAgV2lsbCBwcm9k
dWNlIGEgYnJlYWsgaXRlcmF0b3Igd2l0aCB0aGUgc2FtZSBiZWhhdmlvciwKKyAgICAgKiBhbmQg
d2hpY2ggaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSB0ZXh0LCBhcyB0aGUgb25lIHBhc3NlZCBpbi4K
KyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBwYXNzZWQgdG8g
YmUgY29waWVkCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvcihjb25zdCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yJiB0aGF0KTsKKworICAg
IC8qKgorICAgICAqIENvbnN0cnVjdCBhIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZnJvbSBhIHNl
dCBvZiBydWxlcyBzdXBwbGllZCBhcyBhIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gcnVsZXMgVGhl
IGJyZWFrIHJ1bGVzIHRvIGJlIHVzZWQuCisgICAgICogQHBhcmFtIHBhcnNlRXJyb3IgIEluIHRo
ZSBldmVudCBvZiBhIHN5bnRheCBlcnJvciBpbiB0aGUgcnVsZXMsIHByb3ZpZGVzIHRoZSBsb2Nh
dGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICB3aXRoaW4gdGhlIHJ1bGVzIG9mIHRoZSBw
cm9ibGVtLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24gYW55IGVycm9ycyBl
bmNvdW50ZXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBSdWxlQmFz
ZWRCcmVha0l0ZXJhdG9yKCBjb25zdCBVbmljb2RlU3RyaW5nICAgICZydWxlcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVVBhcnNlRXJyb3IgICAgICAgICAgICZwYXJzZUVycm9yLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICAgICAgICAgICAgJnN0YXR1
cyk7CisKKyAgICAvKioKKyAgICAgKiBDb250cnVjdCBhIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Ig
ZnJvbSBhIHNldCBvZiBwcmVjb21waWxlZCBiaW5hcnkgcnVsZXMuCisgICAgICogQmluYXJ5IHJ1
bGVzIGFyZSBvYnRhaW5lZCBmcm9tIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yOjpnZXRCaW5hcnlS
dWxlcygpLgorICAgICAqIENvbnN0cnVjdGlvbiBvZiBhIGJyZWFrIGl0ZXJhdG9yIGluIHRoaXMg
d2F5IGlzIHN1YnN0YW50aWFsbHkgZmFzdGVyIHRoYW4KKyAgICAgKiBjb25zdHVjdGlvbiBmcm9t
IHNvdXJjZSBydWxlcy4KKyAgICAgKgorICAgICAqIE93bmVyc2hpcCBvZiB0aGUgc3RvcmFnZSBj
b250YWluaW5nIHRoZSBjb21waWxlZCBydWxlcyByZW1haW5zIHdpdGggdGhlCisgICAgICogY2Fs
bGVyIG9mIHRoaXMgZnVuY3Rpb24uICBUaGUgY29tcGlsZWQgcnVsZXMgbXVzdCBub3QgYmUgIG1v
ZGlmaWVkIG9yIAorICAgICAqIGRlbGV0ZWQgZHVyaW5nIHRoZSBsaWZlIG9mIHRoZSBicmVhayBp
dGVyYXRvci4KKyAgICAgKgorICAgICAqIFRoZSBjb21waWxlZCBydWxlcyBhcmUgbm90IGNvbXBh
dGlibGUgYWNyb3NzIGRpZmZlcmVudCBtYWpvciB2ZXJzaW9ucyBvZiBJQ1UuCisgICAgICogVGhl
IGNvbXBpbGVkIHJ1bGVzIGFyZSBjb21hcHRpYmxlIG9ubHkgYmV0d2VlbiBtYWNoaW5lcyB3aXRo
IHRoZSBzYW1lCisgICAgICogYnl0ZSBvcmRlcmluZyAobGl0dGxlIG9yIGJpZyBlbmRpYW4pIGFu
ZCB0aGUgc2FtZSBiYXNlIGNoYXJhY3RlciBzZXQgZmFtaWx5CisgICAgICogKEFTQ0lJIG9yIEVC
Q0RJQykuCisgICAgICoKKyAgICAgKiBAc2VlICNnZXRCaW5hcnlSdWxlcworICAgICAqIEBwYXJh
bSBjb21waWxlZFJ1bGVzIEEgcG9pbnRlciB0byB0aGUgY29tcGlsZWQgYnJlYWsgcnVsZXMgdG8g
YmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gcnVsZUxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBjb21w
aWxlZCBicmVhayBydWxlcywgaW4gYnl0ZXMuICBUaGlzCisgICAgICogICBjb3JyZXNwb25kcyB0
byB0aGUgbGVuZ3RoIHZhbHVlIHByb2R1Y2VkIGJ5IGdldEJpbmFyeVJ1bGVzKCkuCisgICAgICog
QHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkgZXJyb3JzIGVuY291bnRlcmVkLCBpbmNs
dWRpbmcgaW52YWxpZAorICAgICAqICAgYmluYXJ5IHJ1bGVzLgorICAgICAqIEBzdGFibGUgSUNV
IDQuOAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoY29uc3QgdWludDhfdCAq
Y29tcGlsZWRSdWxlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAgICAg
IHJ1bGVMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICAgICZz
dGF0dXMpOworCisgICAgLyoqCisgICAgICogVGhpcyBjb25zdHJ1Y3RvciB1c2VzIHRoZSB1ZGF0
YSBpbnRlcmZhY2UgdG8gY3JlYXRlIGEgQnJlYWtJdGVyYXRvcgorICAgICAqIHdob3NlIGludGVy
bmFsIHRhYmxlcyBsaXZlIGluIGEgbWVtb3J5LW1hcHBlZCBmaWxlLiAgImltYWdlIiBpcyBhbgor
ICAgICAqIElDVSBVRGF0YU1lbW9yeSBoYW5kbGUgZm9yIHRoZSBwcmUtY29tcGlsZWQgYnJlYWsg
aXRlcmF0b3IgdGFibGVzLgorICAgICAqIEBwYXJhbSBpbWFnZSBoYW5kbGUgdG8gdGhlIG1lbW9y
eSBpbWFnZSBmb3IgdGhlIGJyZWFrIGl0ZXJhdG9yIGRhdGEuCisgICAgICogICAgICAgIE93bmVy
c2hpcCBvZiB0aGUgVURhdGFNZW1vcnkgaGFuZGxlIHBhc3NlcyB0byB0aGUgQnJlYWsgSXRlcmF0
b3IsCisgICAgICogICAgICAgIHdoaWNoIHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIGNsb3Npbmcg
aXQgd2hlbiBpdCBpcyBubyBsb25nZXIgbmVlZGVkLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5m
b3JtYXRpb24gb24gYW55IGVycm9ycyBlbmNvdW50ZXJlZC4KKyAgICAgKiBAc2VlIHVkYXRhX29w
ZW4KKyAgICAgKiBAc2VlICNnZXRCaW5hcnlSdWxlcworICAgICAqIEBzdGFibGUgSUNVIDIuOAor
ICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoVURhdGFNZW1vcnkqIGltYWdlLCBV
RXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3RvcgorICAgICAq
ICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIH5SdWxlQmFzZWRCcmVha0l0
ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgU2V0cyB0
aGlzIGl0ZXJhdG9yIHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsCisgICAgICogYW5kIGl0ZXJh
dGUgb3ZlciB0aGUgc2FtZSB0ZXh0LCBhcyB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFy
YW0gdGhhdCBUaGUgUnVsZUJhc2VkQnJlYWtJdGVydG9yIHBhc3NlZCBpbgorICAgICAqIEByZXR1
cm4gdGhlIG5ld2x5IGNyZWF0ZWQgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAqICBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yJiBvcGVyYXRv
cj0oY29uc3QgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciYgdGhhdCk7CisKKyAgICAvKioKKyAgICAg
KiBFcXVhbGl0eSBvcGVyYXRvci4gIFJldHVybnMgVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0b3Jz
IGFyZSBvZiB0aGUKKyAgICAgKiBzYW1lIGNsYXNzLCBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLCBh
bmQgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHRleHQuCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEJy
ZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5CisgICAgICogQHJldHVybiBU
UlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG9mIHRoZQorICAgICAqIHNhbWUgY2xhc3Ms
IGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsIGFuZCBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgdGV4dC4K
KyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVy
YXRvcj09KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHRoYXQpIGNvbnN0OworCisgICAgLyoqCisgICAg
ICogTm90LWVxdWFsIG9wZXJhdG9yLiAgSWYgb3BlcmF0b3I9PSByZXR1cm5zIFRSVUUsIHRoaXMg
cmV0dXJucyBGQUxTRSwKKyAgICAgKiBhbmQgdmljZSB2ZXJzYS4KKyAgICAgKiBAcGFyYW0gdGhh
dCBUaGUgQnJlYWtJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgaW5lcXVhbGl0eQorICAgICAq
IEByZXR1cm4gVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBub3Qgc2FtZS4KKyAgICAg
KiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVUJvb2wgb3BlcmF0b3IhPShjb25zdCBC
cmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBu
ZXdseS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHdpdGggdGhlIHNhbWUKKyAg
ICAgKiBiZWhhdmlvciwgYW5kIGl0ZXJhdGluZyBvdmVyIHRoZSBzYW1lIHRleHQsIGFzIHRoaXMg
b25lLgorICAgICAqIERpZmZlcnMgZnJvbSB0aGUgY29weSBjb25zdHJ1Y3RvciBpbiB0aGF0IGl0
IGlzIHBvbHltb3JwaGljLCBhbmQKKyAgICAgKiB3aWxsIGNvcnJlY3RseSBjbG9uZSAoY29weSkg
YSBkZXJpdmVkIGNsYXNzLgorICAgICAqIGNsb25lKCkgaXMgdGhyZWFkIHNhZmUuICBNdWx0aXBs
ZSB0aHJlYWRzIG1heSBzaW11bHRhZW5lb3VzbHkKKyAgICAgKiBjbG9uZSB0aGUgc2FtZSBzb3Vy
Y2UgYnJlYWsgaXRlcmF0b3IuCisgICAgICogQHJldHVybiBhIG5ld2x5LWNvbnN0cnVjdGVkIFJ1
bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IqIGNsb25lKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAg
KiBDb21wdXRlIGEgaGFzaCBjb2RlIGZvciB0aGlzIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAcmV0
dXJuIEEgaGFzaCBjb2RlCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgaW50MzJfdCBoYXNoQ29kZSh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJl
dHVybnMgdGhlIGRlc2NyaXB0aW9uIHVzZWQgdG8gY3JlYXRlIHRoaXMgaXRlcmF0b3IKKyAgICAg
KiBAcmV0dXJuIHRoZSBkZXNjcmlwdGlvbiB1c2VkIHRvIGNyZWF0ZSB0aGlzIGl0ZXJhdG9yCisg
ICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgY29uc3QgVW5pY29k
ZVN0cmluZyYgZ2V0UnVsZXModm9pZCkgY29uc3Q7CisKKyAgICAvLz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cisg
ICAgLy8gQnJlYWtJdGVyYXRvciBvdmVycmlkZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAg
ICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBSZXR1cm4gYSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVy
IHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIFRoZSByZXR1cm5lZCBjaGFyYWN0ZXIg
aXRlcmF0b3IgaXMgb3duZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLCBhbmQgbXVzdAorICAgICAq
IG5vdCBiZSBkZWxldGVkIGJ5IHRoZSBjYWxsZXIuICBSZXBlYXRlZCBjYWxscyB0byB0aGlzIGZ1
bmN0aW9uIG1heQorICAgICAqIHJldHVybiB0aGUgc2FtZSBDaGFyYWN0ZXJJdGVyYXRvci4KKyAg
ICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogVGhlIHJldHVybmVkIGNoYXJhY3RlciBpdGVy
YXRvciBtdXN0IG5vdCBiZSB1c2VkIGNvbmN1cnJlbnRseSB3aXRoCisgICAgICogdGhlIGJyZWFr
IGl0ZXJhdG9yLiAgSWYgY29uY3VycmVudCBvcGVyYXRpb24gaXMgbmVlZGVkLCBjbG9uZSB0aGUK
KyAgICAgKiByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0b3IgZmlyc3QgYW5kIG9wZXJhdGUgb24g
dGhlIGNsb25lLgorICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIHRoZSBicmVh
ayBpdGVyYXRvciBpcyBvcGVyYXRpbmcgb24gdGV4dCBzdXBwbGllZCB2aWEgYSBVVGV4dCwKKyAg
ICAgKiB0aGlzIGZ1bmN0aW9uIHdpbGwgZmFpbC4gIExhY2tpbmcgYW55IHdheSB0byBzaWduYWwg
ZmFpbHVyZXMsIGl0CisgICAgICogcmV0dXJucyBhbiBDaGFyYWN0ZXJJdGVyYXRvciBjb250YWlu
aW5nIG5vIHRleHQuCisgICAgICogVGhlIGZ1bmN0aW9uIGdldFVUZXh0KCkgcHJvdmlkZXMgc2lt
aWxhciBmdW5jdGlvbmFsaXR5LAorICAgICAqIGlzIHJlbGlhYmxlLCBhbmQgaXMgbW9yZSBlZmZp
Y2llbnQuCisgICAgICogPC9wPgorICAgICAqCisgICAgICogVE9ETzogIGRlcHJlY2F0ZSB0aGlz
IGZ1bmN0aW9uPworICAgICAqCisgICAgICogQHJldHVybiBBbiBpdGVyYXRvciBvdmVyIHRoZSB0
ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgIENoYXJhY3Rlckl0ZXJhdG9yJiBnZXRUZXh0KHZvaWQpIGNvbnN0OworCisKKyAg
ICAvKioKKyAgICAgICogIEdldCBhIFVUZXh0IGZvciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4K
KyAgICAgICogIFRoZSByZXR1cm5lZCBVVGV4dCBpcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIFVU
ZXh0IHVzZWQgaW50ZXJuYWxseQorICAgICAgKiAgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxl
bWVudGF0aW9uLiAgSXQgY2FuIHNhZmVseSBiZSB1c2VkIHRvCisgICAgICAqICBhY2Nlc3MgdGhl
IHRleHQgd2l0aG91dCBpbXBhY3RpbmcgYW55IGJyZWFrIGl0ZXJhdG9yIG9wZXJhdGlvbnMsCisg
ICAgICAqICBidXQgdGhlIHVuZGVybHlpbmcgdGV4dCBpdHNlbGYgbXVzdCBub3QgYmUgYWx0ZXJl
ZC4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGZpbGxJbiBBIFVUZXh0IHRvIGJlIGZpbGxlZCBp
bi4gIElmIE5VTEwsIGEgbmV3IFVUZXh0IHdpbGwgYmUKKyAgICAgICogICAgICAgICAgIGFsbG9j
YXRlZCB0byBob2xkIHRoZSByZXN1bHQuCisgICAgICAqIEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMg
YW55IGVycm9yIGNvZGVzLgorICAgICAgKiBAcmV0dXJuICAgVGhlIGN1cnJlbnQgVVRleHQgZm9y
IHRoaXMgYnJlYWsgaXRlcmF0b3IuICBJZiBhbiBpbnB1dAorICAgICAgKiAgICAgICAgICAgVVRl
eHQgd2FzIHByb3ZpZGVkLCBpdCB3aWxsIGFsd2F5cyBiZSByZXR1cm5lZC4KKyAgICAgICogQHN0
YWJsZSBJQ1UgMy40CisgICAgICAqLworICAgICB2aXJ0dWFsIFVUZXh0ICpnZXRVVGV4dChVVGV4
dCAqZmlsbEluLCBVRXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICog
U2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1
bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0
aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IEFuIGl0ZXJh
dG9yIG92ZXIgdGhlIHRleHQgdG8gYW5hbHl6ZS4gIFRoZSBCcmVha0l0ZXJhdG9yCisgICAgICog
dGFrZXMgb3duZXJzaGlwIG9mIHRoZSBjaGFyYWN0ZXIgaXRlcmF0b3IuICBUaGUgY2FsbGVyIE1V
U1QgTk9UIGRlbGV0ZSBpdCEKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCB2b2lkIGFkb3B0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciogbmV3VGV4dCk7CisKKyAg
ICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHRvIGFuYWx5emUgYSBuZXcgcGllY2Ugb2Yg
dGV4dC4gIFRoaXMgZnVuY3Rpb24gcmVzZXRzCisgICAgICogdGhlIGN1cnJlbnQgaXRlcmF0aW9u
IHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogQHBhcmFtIG5l
d1RleHQgVGhlIHRleHQgdG8gYW5hbHl6ZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCB2b2lkIHNldFRleHQoY29uc3QgVW5pY29kZVN0cmluZyYgbmV3VGV4
dCk7CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdG8gb3BlcmF0
ZSBvdmVyIHRoZSB0ZXh0IHJlcHJlc2VudGVkIGJ5CisgICAgICogdGhlIFVUZXh0LiAgVGhlIGl0
ZXJhdG9yIHBvc2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKgorICAgICAqIFRo
aXMgZnVuY3Rpb24gbWFrZXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBzdXBwbGllZCBVVGV4dC4g
IFRoaXMgbWVhbnMKKyAgICAgKiB0aGF0IHRoZSBjYWxsZXIgaXMgZnJlZSB0byBpbW1lZGlhdGVs
eSBjbG9zZSBvciBvdGhlcndpc2UgcmV1c2UgdGhlCisgICAgICogVXRleHQgdGhhdCB3YXMgcGFz
c2VkIGFzIGEgcGFyYW1ldGVyLCBidXQgdGhhdCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2VsZgor
ICAgICAqIG11c3Qgbm90IGJlIGFsdGVyZWQgd2hpbGUgYmVpbmcgcmVmZXJlbmNlZCBieSB0aGUg
YnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCAgICBUaGUgVVRleHQg
dXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHBhcmFtIHN0YXR1cyAgUmVjZWl2ZXMg
YW55IGVycm9yIGNvZGVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAqLworICAgIHZp
cnR1YWwgdm9pZCAgc2V0VGV4dChVVGV4dCAqdGV4dCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKwor
ICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRo
ZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHBvc2l0aW9uIHplcm8uCisgICAgICogQHJldHVybiBU
aGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHplcm8uCisgICAgICogIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmaXJzdCh2b2lkKTsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRv
IHRoZSBlbmQgb2YgdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgdGV4dCdzIHBhc3QtdGhl
LWVuZCBvZmZzZXQuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgaW50MzJfdCBsYXN0KHZvaWQpOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0
ZXJhdG9yIGVpdGhlciBmb3J3YXJkIG9yIGJhY2t3YXJkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9m
IHN0ZXBzLgorICAgICAqIE5lZ2F0aXZlIHZhbHVlcyBtb3ZlIGJhY2t3YXJkLCBhbmQgcG9zaXRp
dmUgdmFsdWVzIG1vdmUgZm9yd2FyZC4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHJl
cGVhdGVkbHkgY2FsbGluZyBuZXh0KCkgb3IgcHJldmlvdXMoKS4KKyAgICAgKiBAcGFyYW0gbiBU
aGUgbnVtYmVyIG9mIHN0ZXBzIHRvIG1vdmUuICBUaGUgc2lnbiBpbmRpY2F0ZXMgdGhlIGRpcmVj
dGlvbgorICAgICAqIChuZWdhdGl2ZSBpcyBiYWNrd2FyZHMsIGFuZCBwb3NpdGl2ZSBpcyBmb3J3
YXJkcykuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgYm91bmRh
cnkgcG9zaXRpb24gbiBib3VuZGFyaWVzIGF3YXkgZnJvbQorICAgICAqIHRoZSBjdXJyZW50IG9u
ZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90
IG5leHQoaW50MzJfdCBuKTsKKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRv
ciB0byB0aGUgbmV4dCBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3Np
dGlvbiBvZiB0aGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhpcyBvbmUuCisgICAgICogIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KHZvaWQpOworCisg
ICAgLyoqCisgICAgICogTW92ZXMgdGhlIGl0ZXJhdG9yIGJhY2t3YXJkcywgdG8gdGhlIGxhc3Qg
Ym91bmRhcnkgcHJlY2VkaW5nIHRoaXMgb25lLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9u
IG9mIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIHByZWNlZGluZyB0aGlzIG9uZS4KKyAgICAg
KiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHByZXZpb3Vz
KHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8g
dGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGZvbGxvd2luZworICAgICAqIHRoZSBzcGVjaWZp
ZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNldCBUaGUgcG9zaXRpb24gZnJvbSB3aGlj
aCB0byBiZWdpbiBzZWFyY2hpbmcgZm9yIGEgYnJlYWsgcG9zaXRpb24uCisgICAgICogQHJldHVy
biBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJyZWFrIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0
aW9uLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMy
X3QgZm9sbG93aW5nKGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIGJlZm9yZSB0
aGUKKyAgICAgKiBzcGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNldCBUaGUg
cG9zaXRpb24gdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBhIGJyZWFrIGZyb20uCisgICAgICogQHJl
dHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzdGFydGlu
ZyBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90IHByZWNlZGluZyhpbnQzMl90IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBS
ZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRp
b24uICBBcyBhIHNpZGUKKyAgICAgKiBlZmZlY3QsIGxlYXZlcyB0aGUgaXRlcmF0b3IgcG9pbnRp
bmcgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGF0CisgICAgICogb3IgYWZ0ZXIgIm9m
ZnNldCIuCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNrLgorICAgICAq
IEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAq
ICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIGlzQm91bmRhcnko
aW50MzJfdCBvZmZzZXQpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBp
dGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBpdGVyYXRpb24g
cG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBp
bnQzMl90IGN1cnJlbnQodm9pZCkgY29uc3Q7CisKKworICAgIC8qKgorICAgICAqIFJldHVybiB0
aGUgc3RhdHVzIHRhZyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9z
dCByZWNlbnRseQorICAgICAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLiAgRm9yIGJyZWFrIHJ1
bGVzIHRoYXQgZG8gbm90IHNwZWNpZnkgYQorICAgICAqIHN0YXR1cywgYSBkZWZhdWx0IHZhbHVl
IG9mIDAgaXMgcmV0dXJuZWQuICBJZiBtb3JlIHRoYW4gb25lIGJyZWFrIHJ1bGUKKyAgICAgKiB3
b3VsZCBjYXVzZSBhIGJvdW5kYXJ5IHRvIGJlIGxvY2F0ZWQgYXQgc29tZSBwb3NpdGlvbiBpbiB0
aGUgdGV4dCwKKyAgICAgKiB0aGUgbnVtZXJpY2FsbHkgbGFyZ2VzdCBvZiB0aGUgYXBwbGljYWJs
ZSBzdGF0dXMgdmFsdWVzIGlzIHJldHVybmVkLgorICAgICAqIDxwPgorICAgICAqIE9mIHRoZSBz
dGFuZGFyZCB0eXBlcyBvZiBJQ1UgYnJlYWsgaXRlcmF0b3JzLCBvbmx5IHdvcmQgYnJlYWsgYW5k
CisgICAgICogbGluZSBicmVhayBwcm92aWRlIHN0YXR1cyB2YWx1ZXMuICBUaGUgdmFsdWVzIGFy
ZSBkZWZpbmVkIGluCisgICAgICogdGhlIGhlYWRlciBmaWxlIHVicmsuaC4gIEZvciBXb3JkIGJy
ZWFrcywgdGhlIHN0YXR1cyBhbGxvd3MgZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbiB3b3JkcworICAg
ICAqIHRoYXQgY29udGFpbiBhbHBoYWJldGljIGxldHRlcnMsICJ3b3JkcyIgdGhhdCBhcHBlYXIg
dG8gYmUgbnVtYmVycywKKyAgICAgKiBwdW5jdHVhdGlvbiBhbmQgc3BhY2VzLCB3b3JkcyBjb250
YWluaW5nIGlkZW9ncmFwaGljIGNoYXJhY3RlcnMsIGFuZAorICAgICAqIG1vcmUuICBGb3IgTGlu
ZSBCcmVhaywgdGhlIHN0YXR1cyBkaXN0aW5ndWlzaGVzIGJldHdlZW4gaGFyZCAobWFuZGF0b3J5
KSBicmVha3MKKyAgICAgKiBhbmQgc29mdCAocG90ZW50aWFsKSBicmVhayBwb3NpdGlvbnMuCisg
ICAgICogPHA+CisgICAgICogPGNvZGU+Z2V0UnVsZVN0YXR1cygpPC9jb2RlPiBjYW4gYmUgY2Fs
bGVkIGFmdGVyIG9idGFpbmluZyBhIGJvdW5kYXJ5CisgICAgICogcG9zaXRpb24gZnJvbSA8Y29k
ZT5uZXh0KCk8L2NvZGU+LCA8Y29kZT5wcmV2aW91cygpPC9jb2RlPiwgb3IKKyAgICAgKiBhbnkg
b3RoZXIgYnJlYWsgaXRlcmF0b3IgZnVuY3Rpb25zIHRoYXQgcmV0dXJucyBhIGJvdW5kYXJ5IHBv
c2l0aW9uLgorICAgICAqIDxwPgorICAgICAqIFdoZW4gY3JlYXRpbmcgY3VzdG9tIGJyZWFrIHJ1
bGVzLCBvbmUgaXMgZnJlZSB0byBkZWZpbmUgd2hhdGV2ZXIKKyAgICAgKiBzdGF0dXMgdmFsdWVz
IG1heSBiZSBjb252ZW5pZW50IGZvciB0aGUgYXBwbGljYXRpb24uCisgICAgICogPHA+CisgICAg
ICogTm90ZTogdGhpcyBmdW5jdGlvbiBpcyBub3QgdGhyZWFkIHNhZmUuICBJdCBzaG91bGQgbm90
IGhhdmUgYmVlbgorICAgICAqICAgICAgIGRlY2xhcmVkIGNvbnN0LCBhbmQgdGhlIGNvbnN0IHJl
bWFpbnMgb25seSBmb3IgY29tcGF0aWJpbGl0eQorICAgICAqICAgICAgIHJlYXNvbnMuICAoVGhl
IGZ1bmN0aW9uIGlzIGxvZ2ljYWxseSBjb25zdCwgYnV0IG5vdCBiaXQtd2lzZSBjb25zdCkuCisg
ICAgICogPHA+CisgICAgICogQHJldHVybiB0aGUgc3RhdHVzIGZyb20gdGhlIGJyZWFrIHJ1bGUg
dGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogcmV0dXJuZWQgYnJlYWsg
cG9zaXRpb24uCisgICAgICoKKyAgICAgKiBAc2VlIFVXb3JkQnJlYWsKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1cygpIGNv
bnN0OworCisgICAvKioKKyAgICAqIEdldCB0aGUgc3RhdHVzICh0YWcpIHZhbHVlcyBmcm9tIHRo
ZSBicmVhayBydWxlKHMpIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdAorICAgICogcmVjZW50bHkg
cmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgKiA8cD4KKyAgICAqIFRoZSByZXR1cm5lZCBz
dGF0dXMgdmFsdWUocykgYXJlIHN0b3JlZCBpbnRvIGFuIGFycmF5IHByb3ZpZGVkIGJ5IHRoZSBj
YWxsZXIuCisgICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gc29ydGVkIChhc2NlbmRpbmcp
IG9yZGVyLgorICAgICogSWYgdGhlIGNhcGFjaXR5IG9mIHRoZSBvdXRwdXQgYXJyYXkgaXMgaW5z
dWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgICAgKiAgdGhlIG91dHB1dCB3aWxsIGJlIHRy
dW5jYXRlZCB0byB0aGUgYXZhaWxhYmxlIGxlbmd0aCwgYW5kIGEKKyAgICAqICBVX0JVRkZFUl9P
VkVSRkxPV19FUlJPUiB3aWxsIGJlIHNpZ25hbGVkLgorICAgICoKKyAgICAqIEBwYXJhbSBmaWxs
SW5WZWMgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGluIHdpdGggdGhlIHN0YXR1cyB2YWx1ZXMuCisg
ICAgKiBAcGFyYW0gY2FwYWNpdHkgIHRoZSBsZW5ndGggb2YgdGhlIHN1cHBsaWVkIHZlY3Rvci4g
IEEgbGVuZ3RoIG9mIHplcm8gY2F1c2VzCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBmdW5j
dGlvbiB0byByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzLCBpbiB0aGUKKyAgICAq
ICAgICAgICAgICAgICAgICAgbm9ybWFsIHdheSwgd2l0aG91dCBhdHRlbXRwaW5nIHRvIHN0b3Jl
IGFueSB2YWx1ZXMuCisgICAgKiBAcGFyYW0gc3RhdHVzICAgIHJlY2VpdmVzIGVycm9yIGNvZGVz
LgorICAgICogQHJldHVybiAgICAgICAgICBUaGUgbnVtYmVyIG9mIHJ1bGUgc3RhdHVzIHZhbHVl
cyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZAorICAgICogICAgICAgICAgICAgICAgICB0aGUg
bW9zdCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAg
ICogICAgICAgICAgICAgICAgICBJbiB0aGUgZXZlbnQgb2YgYSBVX0JVRkZFUl9PVkVSRkxPV19F
UlJPUiwgdGhlIHJldHVybiB2YWx1ZQorICAgICogICAgICAgICAgICAgICAgICBpcyB0aGUgdG90
YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCB3ZXJlIGF2YWlsYWJsZSwKKyAgICAqICAg
ICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2VkIG51bWJlciB0aGF0IHdlcmUgYWN0dWFsbHkg
cmV0dXJuZWQuCisgICAgKiBAc2VlIGdldFJ1bGVTdGF0dXMKKyAgICAqIEBzdGFibGUgSUNVIDMu
MAorICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXNWZWMoaW50MzJfdCAq
ZmlsbEluVmVjLCBpbnQzMl90IGNhcGFjaXR5LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAg
LyoqCisgICAgICogUmV0dXJucyBhIHVuaXF1ZSBjbGFzcyBJRCBQT0xZTU9SUEhJQ0FMTFkuICBQ
dXJlIHZpcnR1YWwgb3ZlcnJpZGUuCisgICAgICogVGhpcyBtZXRob2QgaXMgdG8gaW1wbGVtZW50
IGEgc2ltcGxlIHZlcnNpb24gb2YgUlRUSSwgc2luY2Ugbm90IGFsbAorICAgICAqIEMrKyBjb21w
aWxlcnMgc3VwcG9ydCBnZW51aW5lIFJUVEkuICBQb2x5bW9ycGhpYyBvcGVyYXRvcj09KCkgYW5k
CisgICAgICogY2xvbmUoKSBtZXRob2RzIGNhbGwgdGhpcyBtZXRob2QuCisgICAgICoKKyAgICAg
KiBAcmV0dXJuICAgICAgICAgIFRoZSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuIEFsbCBvYmpl
Y3RzIG9mIGEKKyAgICAgKiAgICAgICAgICAgICAgICAgIGdpdmVuIGNsYXNzIGhhdmUgdGhlIHNh
bWUgY2xhc3MgSUQuICBPYmplY3RzIG9mCisgICAgICogICAgICAgICAgICAgICAgICBvdGhlciBj
bGFzc2VzIGhhdmUgZGlmZmVyZW50IGNsYXNzIElEcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNv
bnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY2xhc3MgSUQgZm9yIHRoaXMgY2xh
c3MuICBUaGlzIGlzIHVzZWZ1bCBvbmx5IGZvcgorICAgICAqIGNvbXBhcmluZyB0byBhIHJldHVy
biB2YWx1ZSBmcm9tIGdldER5bmFtaWNDbGFzc0lEKCkuICBGb3IgZXhhbXBsZToKKyAgICAgKgor
ICAgICAqICAgICAgQmFzZSogcG9seW1vcnBoaWNfcG9pbnRlciA9IGNyZWF0ZVBvbHltb3JwaGlj
T2JqZWN0KCk7CisgICAgICogICAgICBpZiAocG9seW1vcnBoaWNfcG9pbnRlci0+Z2V0RHluYW1p
Y0NsYXNzSUQoKSA9PQorICAgICAqICAgICAgICAgIERlcml2ZWQ6OmdldFN0YXRpY0NsYXNzSUQo
KSkgLi4uCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBjbGFzcyBJRCBmb3Ig
YWxsIG9iamVjdHMgb2YgdGhpcyBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQodm9pZCk7
CisKKyAgICAvKioKKyAgICAgKiBEZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkuIFVzZSBjbG9uZSgp
IGluc3RlYWQuCisgICAgICoKKyAgICAgKiBDcmVhdGUgYSBjbG9uZSAoY29weSkgb2YgdGhpcyBi
cmVhayBpdGVyYXRvciBpbiBtZW1vcnkgcHJvdmlkZWQKKyAgICAgKiAgYnkgdGhlIGNhbGxlci4g
IFRoZSBpZGVhIGlzIHRvIGluY3JlYXNlIHBlcmZvcm1hbmNlIGJ5IGF2b2lkaW5nCisgICAgICog
IGEgc3RvcmFnZSBhbGxvY2F0aW9uLiAgVXNlIG9mIHRoaXMgZnVuY3RvaW4gaXMgTk9UIFJFQ09N
TUVOREVELgorICAgICAqICBQZXJmb3JtYW5jZSBnYWlucyBhcmUgbWluaW1hbCwgYW5kIGNvcnJl
Y3QgYnVmZmVyIG1hbmFnZW1lbnQgaXMKKyAgICAgKiAgdHJpY2t5LiAgVXNlIGNsb25lKCkgaW5z
dGVhZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGFja0J1ZmZlciAgVGhlIHBvaW50ZXIgdG8g
dGhlIG1lbW9yeSBpbnRvIHdoaWNoIHRoZSBjbG9uZWQgb2JqZWN0CisgICAgICogICAgICAgICAg
ICAgICAgICAgICBzaG91bGQgYmUgcGxhY2VkLiAgSWYgTlVMTCwgIGFsbG9jYXRlIGhlYXAgbWVt
b3J5CisgICAgICogICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIGNsb25lZCBvYmplY3QuCisg
ICAgICogQHBhcmFtIEJ1ZmZlclNpemUgICBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyLiAgSWYgemVy
bywgcmV0dXJuIHRoZSByZXF1aXJlZAorICAgICAqICAgICAgICAgICAgICAgICAgICAgYnVmZmVy
IHNpemUsIGJ1dCBkbyBub3QgY2xvbmUgdGhlIG9iamVjdC4gIElmIHRoZQorICAgICAqICAgICAg
ICAgICAgICAgICAgICAgc2l6ZSB3YXMgdG9vIHNtYWxsIChidXQgbm90IHplcm8pLCBhbGxvY2F0
ZSBoZWFwCisgICAgICogICAgICAgICAgICAgICAgICAgICBzdG9yYWdlIGZvciB0aGUgY2xvbmVk
IG9iamVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgICAgRXJyb3Igc3RhdHVz
LiAgVV9TQUZFQ0xPTkVfQUxMT0NBVEVEX1dBUk5JTkcgd2lsbCBiZQorICAgICAqICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuZWQgaWYgdGhlIHRoZSBwcm92aWRlZCBidWZmZXIgd2FzIHRvbyBz
bWFsbCwgYW5kCisgICAgICogICAgICAgICAgICAgICAgICAgICB0aGUgY2xvbmUgd2FzIHRoZXJl
Zm9yZSBwdXQgb24gdGhlIGhlYXAuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICBQb2ludGVyIHRv
IHRoZSBjbG9uZSBvYmplY3QuICBUaGlzIG1heSBkaWZmZXIgZnJvbSB0aGUgc3RhY2tCdWZmZXIK
KyAgICAgKiAgICAgICAgICBhZGRyZXNzIGlmIHRoZSBieXRlIGFsaWdubWVudCBvZiB0aGUgc3Rh
Y2sgYnVmZmVyIHdhcyBub3Qgc3VpdGFibGUKKyAgICAgKiAgICAgICAgICBvciBpZiB0aGUgc3Rh
Y2tCdWZmZXIgd2FzIHRvbyBzbWFsbCB0byBob2xkIHRoZSBjbG9uZS4KKyAgICAgKiBAZGVwcmVj
YXRlZCBJQ1UgNTIuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICovCisgICAgdmlydHVhbCBC
cmVha0l0ZXJhdG9yICogIGNyZWF0ZUJ1ZmZlckNsb25lKHZvaWQgKnN0YWNrQnVmZmVyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICZCdWZm
ZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBV
RXJyb3JDb2RlICZzdGF0dXMpOworCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGJpbmFy
eSBmb3JtIG9mIGNvbXBpbGVkIGJyZWFrIHJ1bGVzLAorICAgICAqIHdoaWNoIGNhbiB0aGVuIGJl
IHVzZWQgdG8gY3JlYXRlIGEgbmV3IGJyZWFrIGl0ZXJhdG9yIGF0IHNvbWUKKyAgICAgKiB0aW1l
IGluIHRoZSBmdXR1cmUuICBDcmVhdGluZyBhIGJyZWFrIGl0ZXJhdG9yIGZyb20gcHJlLWNvbXBp
bGVkIHJ1bGVzCisgICAgICogaXMgbXVjaCBmYXN0ZXIgdGhhbiBidWlsZGluZyBvbmUgZnJvbSB0
aGUgc291cmNlIGZvcm0gb2YgdGhlCisgICAgICogYnJlYWsgcnVsZXMuCisgICAgICoKKyAgICAg
KiBUaGUgYmluYXJ5IGRhdGEgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIHRoZSBzYW1lIHZlcnNpb24g
b2YgSUNVCisgICAgICogIGFuZCBvbiB0aGUgc2FtZSBwbGF0Zm9ybSB0eXBlIChwcm9jZXNzb3Ig
ZW5kaWFuLW5lc3MpCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGVuZ3RoIFJldHVybnMgdGhlIGxl
bmd0aCBvZiB0aGUgYmluYXJ5IGRhdGEuICAoT3V0IHBhcmFtdGVyLikKKyAgICAgKgorICAgICAq
IEByZXR1cm4gICBBIHBvaW50ZXIgdG8gdGhlIGJpbmFyeSAoY29tcGlsZWQpIHJ1bGUgZGF0YS4g
IFRoZSBzdG9yYWdlCisgICAgICogICAgICAgICAgIGJlbG9uZ3MgdG8gdGhlIFJ1bGVzQmFzZWRC
cmVha0l0ZXJhdG9yIG9iamVjdCwgbm90IHRoZQorICAgICAqICAgICAgICAgICBjYWxsZXIsIGFu
ZCBtdXN0IG5vdCBiZSBtb2RpZmllZCBvciBkZWxldGVkLgorICAgICAqIEBzdGFibGUgSUNVIDQu
OAorICAgICAqLworICAgIHZpcnR1YWwgY29uc3QgdWludDhfdCAqZ2V0QmluYXJ5UnVsZXModWlu
dDMyX3QgJmxlbmd0aCk7CisKKyAgICAvKioKKyAgICAgKiAgU2V0IHRoZSBzdWJqZWN0IHRleHQg
c3RyaW5nIHVwb24gd2hpY2ggdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9wZXJhdGluZworICAgICAq
ICB3aXRob3V0IGNoYW5naW5nIGFueSBvdGhlciBhc3BlY3Qgb2YgdGhlIG1hdGNoaW5nIHN0YXRl
LgorICAgICAqICBUaGUgbmV3IGFuZCBwcmV2aW91cyB0ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRo
ZSBzYW1lIGNvbnRlbnQuCisgICAgICoKKyAgICAgKiAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRl
ZCBmb3IgdXNlIGluIGVudmlyb25tZW50cyB3aGVyZSBJQ1UgaXMgb3BlcmF0aW5nIG9uCisgICAg
ICogIHN0cmluZ3MgdGhhdCBtYXkgbW92ZSBhcm91bmQgaW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMg
YSBtZWNoYW5pc20gZm9yIG5vdGlmeWluZworICAgICAqICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhh
cyBiZWVuIHJlbG9jYXRlZCwgYW5kIHByb3ZpZGluZyBhIG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhl
CisgICAgICogIHN0cmluZyBpbiBpdHMgbmV3IHBvc2l0aW9uLgorICAgICAqCisgICAgICogIE5v
dGUgdGhhdCB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24gbmV2ZXIgY29waWVzIHRo
ZSB1bmRlcmx5aW5nIHRleHQKKyAgICAgKiAgb2YgYSBzdHJpbmcgYmVpbmcgcHJvY2Vzc2VkLCBi
dXQgYWx3YXlzIG9wZXJhdGVzIGRpcmVjdGx5IG9uIHRoZSBvcmlnaW5hbCB0ZXh0CisgICAgICog
IHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiBSZWZyZXNoaW5nIHNpbXBseSBkcm9wcyB0aGUgcmVmZXJl
bmNlcyB0byB0aGUgb2xkIHRleHQKKyAgICAgKiAgYW5kIHJlcGxhY2VzIHRoZW0gd2l0aCByZWZl
cmVuY2VzIHRvIHRoZSBuZXcuCisgICAgICoKKyAgICAgKiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rp
b24gaXMgbm9ybWFsbHkgdXNlZCBvbmx5IGJ5IHZlcnkgc3BlY2lhbGl6ZWQsCisgICAgICogIHN5
c3RlbS1sZXZlbCBjb2RlLiAgT25lIGV4YW1wbGUgdXNlIGNhc2UgaXMgd2l0aCBnYXJiYWdlIGNv
bGxlY3Rpb24gdGhhdCBtb3ZlcworICAgICAqICB0aGUgdGV4dCBpbiBtZW1vcnkuCisgICAgICoK
KyAgICAgKiBAcGFyYW0gaW5wdXQgICAgICBUaGUgbmV3IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisg
ICAgICogQHBhcmFtIHN0YXR1cyAgICAgUmVjZWl2ZXMgZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMg
ZnVuY3Rpb24uCisgICAgICogQHJldHVybiAgICAgICAgICAgKnRoaXMKKyAgICAgKgorICAgICAq
IEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdmlydHVhbCBSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yICZyZWZyZXNoSW5wdXRUZXh0KFVUZXh0ICppbnB1dCwgVUVycm9yQ29kZSAmc3RhdHVzKTsK
KworCitwcm90ZWN0ZWQ6CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIGltcGxlbWVudGF0
aW9uCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8qKgorICAgICAqIER1bXBzIGNhY2hlcyBh
bmQgcGVyZm9ybXMgb3RoZXIgYWN0aW9ucyBhc3NvY2lhdGVkIHdpdGggYSBjb21wbGV0ZSBjaGFu
Z2UKKyAgICAgKiBpbiB0ZXh0IG9yIGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKiBAaW50ZXJu
YWwKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXQodm9pZCk7CisKKyNpZiAwCisgICAg
LyoqCisgICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBjYXRlZ29yeSBsb29rdXAgZm9yIHRoaXMg
Y2hhcgorICAgICAgKiBpbmRpY2F0ZXMgdGhhdCBpdCBpcyBpbiB0aGUgc2V0IG9mIGRpY3Rpb25h
cnkgbG9va3VwIGNoYXJzLgorICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1
c2UgYnkgZGljdGlvbmFyeSBiYXNlZCBicmVhayBpdGVyYXRvcnMuCisgICAgICAqIEByZXR1cm4g
dHJ1ZSBpZiB0aGUgY2F0ZWdvcnkgbG9va3VwIGZvciB0aGlzIGNoYXIKKyAgICAgICogaW5kaWNh
dGVzIHRoYXQgaXQgaXMgaW4gdGhlIHNldCBvZiBkaWN0aW9uYXJ5IGxvb2t1cCBjaGFycy4KKyAg
ICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNEaWN0aW9uYXJ5
Q2hhcihVQ2hhcjMyKTsKKworICAgIC8qKgorICAgICAgKiBHZXQgdGhlIHR5cGUgb2YgdGhlIGJy
ZWFrIGl0ZXJhdG9yLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisgICAgdmlydHVhbCBp
bnQzMl90IGdldEJyZWFrVHlwZSgpIGNvbnN0OworI2VuZGlmCisKKyAgICAvKioKKyAgICAgICog
U2V0IHRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgICogQGludGVybmFsCisg
ICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzZXRCcmVha1R5cGUoaW50MzJfdCB0eXBlKTsKKwor
I2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICAqIENvbW1vbiBpbml0
aWFsaXphdGlvbiBmdW5jdGlvbiwgdXNlZCBieSBjb25zdHJ1Y3RvcnMgYW5kIGJ1ZmZlckNsb25l
LgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisgICAgdm9pZCBpbml0KCk7CisjZW5kaWYg
IC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworcHJpdmF0ZToKKworICAgIC8qKgorICAgICAq
IFRoaXMgbWV0aG9kIGJhY2tzIHRoZSBpdGVyYXRvciBiYWNrIHVwIHRvIGEgInNhZmUgcG9zaXRp
b24iIGluIHRoZSB0ZXh0LgorICAgICAqIFRoaXMgaXMgYSBwb3NpdGlvbiB0aGF0IHdlIGtub3cs
IHdpdGhvdXQgYW55IGNvbnRleHQsIG11c3QgYmUgYSBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBU
aGUgdmFyaW91cyBjYWxsaW5nIG1ldGhvZHMgdGhlbiBpdGVyYXRlIGZvcndhcmQgZnJvbSB0aGlz
IHNhZmUgcG9zaXRpb24gdG8KKyAgICAgKiB0aGUgYXBwcm9wcmlhdGUgcG9zaXRpb24gdG8gcmV0
dXJuLiAgKEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRlc2NyaXB0aW9uCisgICAgICog
b2YgYnVpbGRCYWNrd2FyZHNTdGF0ZVRhYmxlKCkgaW4gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5C
dWlsZGVyLikKKyAgICAgKiBAcGFyYW0gc3RhdGV0YWJsZSBzdGF0ZSB0YWJsZSB1c2VkIG9mIG1v
dmluZyBiYWNrd2FyZHMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGhh
bmRsZVByZXZpb3VzKGNvbnN0IFJCQklTdGF0ZVRhYmxlICpzdGF0ZXRhYmxlKTsKKworICAgIC8q
KgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gb2YgdGhl
IG5leHQoKSBtZXRob2QuICBBbGwgaXRlcmF0aW9uCisgICAgICogdmVjdG9ycyB0aHJvdWdoIGhl
cmUuICBUaGlzIG1ldGhvZCBpbml0aWFsaXplcyB0aGUgc3RhdGUgbWFjaGluZSB0byBzdGF0ZSAx
CisgICAgICogYW5kIGFkdmFuY2VzIHRocm91Z2ggdGhlIHRleHQgY2hhcmFjdGVyIGJ5IGNoYXJh
Y3RlciB1bnRpbCB3ZSByZWFjaCB0aGUgZW5kCisgICAgICogb2YgdGhlIHRleHQgb3IgdGhlIHN0
YXRlIG1hY2hpbmUgdHJhbnNpdGlvbnMgdG8gc3RhdGUgMC4gIFdlIHVwZGF0ZSBvdXIgcmV0dXJu
CisgICAgICogdmFsdWUgZXZlcnkgdGltZSB0aGUgc3RhdGUgbWFjaGluZSBwYXNzZXMgdGhyb3Vn
aCBhIHBvc3NpYmxlIGVuZCBzdGF0ZS4KKyAgICAgKiBAcGFyYW0gc3RhdGV0YWJsZSBzdGF0ZSB0
YWJsZSB1c2VkIG9mIG1vdmluZyBmb3J3YXJkcworICAgICAqIEBpbnRlcm5hbAorICAgICAqLwor
ICAgIGludDMyX3QgaGFuZGxlTmV4dChjb25zdCBSQkJJU3RhdGVUYWJsZSAqc3RhdGV0YWJsZSk7
CisKK3Byb3RlY3RlZDoKKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoqCisg
ICAgICogVGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBhY3R1YWxseSBpbXBsZW1lbnRzIGRpY3Rp
b25hcnktYmFzZWQKKyAgICAgKiBicmVha2luZy4gIENvdmVyaW5nIGF0IGxlYXN0IHRoZSByYW5n
ZSBmcm9tIHN0YXJ0UG9zIHRvIGVuZFBvcywKKyAgICAgKiBpdCBjaGVja3MgZm9yIGRpY3Rpb25h
cnkgY2hhcmFjdGVycywgYW5kIGlmIGl0IGZpbmRzIHRoZW0gZGV0ZXJtaW5lcworICAgICAqIHRo
ZSBhcHByb3ByaWF0ZSBvYmplY3QgdG8gZGVhbCB3aXRoIHRoZW0uIEl0IG1heSBjYWNoZSBmb3Vu
ZCBicmVha3MgaW4KKyAgICAgKiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMgYXMgaXQgZ29lcy4gSXQg
bWF5IHdlbGwgYWxzbyBsb29rIGF0IHRleHQgb3V0c2lkZQorICAgICAqIHRoZSByYW5nZSBzdGFy
dFBvcyB0byBlbmRQb3MuCisgICAgICogSWYgZ29pbmcgZm9yd2FyZCwgZW5kUG9zIGlzIHRoZSBu
b3JtYWwgVW5pY29kZSBicmVhayByZXN1bHQsIGFuZAorICAgICAqIGlmIGdvaW5kIGluIHJldmVy
c2UsIHN0YXJ0UG9zIGlzIHRoZSBub3JtYWwgVW5pY29kZSBicmVhayByZXN1bHQKKyAgICAgKiBA
cGFyYW0gc3RhcnRQb3MgIFRoZSBzdGFydCBwb3NpdGlvbiBvZiBhIHJhbmdlIG9mIHRleHQKKyAg
ICAgKiBAcGFyYW0gZW5kUG9zICAgIFRoZSBlbmQgcG9zaXRpb24gb2YgYSByYW5nZSBvZiB0ZXh0
CisgICAgICogQHBhcmFtIHJldmVyc2UgICBUaGUgY2FsbCBpcyBmb3IgdGhlIHJldmVyc2UgZGly
ZWN0aW9uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCBjaGVja0RpY3Rp
b25hcnkoaW50MzJfdCBzdGFydFBvcywgaW50MzJfdCBlbmRQb3MsIFVCb29sIHJldmVyc2UpOwor
I2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKK3ByaXZhdGU6CisKKyAgICAvKioK
KyAgICAgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFwcHJvcHJpYXRlIExhbmd1YWdlQnJl
YWtFbmdpbmUgZm9yIGEKKyAgICAgKiBnaXZlbiBjaGFyYWN0ZXIgYy4KKyAgICAgKiBAcGFyYW0g
YyAgICAgICAgIEEgY2hhcmFjdGVyIGluIHRoZSBkaWN0aW9uYXJ5IHNldAorICAgICAqIEBpbnRl
cm5hbAorICAgICAqLworICAgIGNvbnN0IExhbmd1YWdlQnJlYWtFbmdpbmUgKmdldExhbmd1YWdl
QnJlYWtFbmdpbmUoVUNoYXIzMiBjKTsKKworICAgIC8qKgorICAgICAqICBAaW50ZXJuYWwKKyAg
ICAgKi8KKyAgICB2b2lkIG1ha2VSdWxlU3RhdHVzVmFsaWQoKTsKKworfTsKKworLy8tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgIElubGluZSBGdW5jdGlvbnMgRGVmaW5pdGlvbnMgLi4u
CisvLworLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworaW5saW5lIFVCb29sIFJ1bGVCYXNlZEJy
ZWFrSXRlcmF0b3I6Om9wZXJhdG9yIT0oY29uc3QgQnJlYWtJdGVyYXRvciYgdGhhdCkgY29uc3Qg
eworICAgIHJldHVybiAhb3BlcmF0b3I9PSh0aGF0KTsKK30KKworVV9OQU1FU1BBQ0VfRU5ECisK
KyNlbmRpZiAvKiAjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OICovCisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oIGIvU291cmNlL1dU
Ri9pY3UvdW5pY29kZS9zY2hyaXRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwYjVlMjI1MDNjZmYyNjFkMmNk
MjQwZmYxMjAwN2Y5MzdmNzgzYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3NjaHJpdGVyLmgKQEAgLTAsMCArMSwxODcgQEAKKy8qCisqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNp
bmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJl
c2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgc2Nocml0ZXIuaAor
KgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAg
ICBEZXNjcmlwdGlvbgorKiAgMDUvMDUvOTkgICAgIHN0ZXBoZW4gICAgIENsZWFuZWQgdXAuCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgU0NIUklURVJfSAorI2RlZmluZSBT
Q0hSSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNv
ZGUvY2hhcml0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VjaHJpdGVyLmgiCisKKy8qKgorICog
XGZpbGUgCisgKiBcYnJpZWYgQysrIEFQSTogU3RyaW5nIENoYXJhY3RlciBJdGVyYXRvcgorICov
CisgCitVX05BTUVTUEFDRV9CRUdJTgorLyoqCisgKiBBIGNvbmNyZXRlIHN1YmNsYXNzIG9mIENo
YXJhY3Rlckl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciB0aGUKKyAqIGNoYXJhY3RlcnMgKGNv
ZGUgdW5pdHMgb3IgY29kZSBwb2ludHMpIGluIGEgVW5pY29kZVN0cmluZy4KKyAqIEl0J3MgcG9z
c2libGUgbm90IG9ubHkgdG8gY3JlYXRlIGFuCisgKiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92
ZXIgYW4gZW50aXJlIFVuaWNvZGVTdHJpbmcsIGJ1dCBhbHNvIHRvCisgKiBjcmVhdGUgb25lIHRo
YXQgaXRlcmF0ZXMgb3ZlciBvbmx5IGEgc3VicmFuZ2Ugb2YgYSBVbmljb2RlU3RyaW5nCisgKiAo
aXRlcmF0b3JzIG92ZXIgZGlmZmVyZW50IHN1YnJhbmdlcyBvZiB0aGUgc2FtZSBVbmljb2RlU3Ry
aW5nIGRvbid0CisgKiBjb21wYXJlIGVxdWFsKS4KKyAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IK
KyAqIEBzZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc3RhYmxlIElDVSAyLjAKKyAq
LworY2xhc3MgVV9DT01NT05fQVBJIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIDogcHVibGljIFVD
aGFyQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGljOgorICAvKioKKyAgICogQ3JlYXRlIGFuIGl0
ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJyZWQgdG8gYnkgInRleHRTdHIiLgor
ICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaXMgY29waWVkLgorICAgKiBUaGUgaXRlcmF0
aW9uIHJhbmdlIGlzIHRoZSB3aG9sZSBzdHJpbmcsIGFuZCB0aGUgc3RhcnRpbmcgcG9zaXRpb24g
aXMgMC4KKyAgICogQHBhcmFtIHRleHRTdHIgVGhlIHVuaWNvZGUgc3RyaW5nIHVzZWQgdG8gY3Jl
YXRlIGFuIGl0ZXJhdG9yCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hh
cmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYgdGV4dFN0cik7CisKKyAgLyoqCisg
ICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJlZmVycmVkIHRv
IGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyB0aGUgd2hvbGUgc3Ry
aW5nLCBhbmQgdGhlIHN0YXJ0aW5nCisgICAqIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAidGV4
dFBvcyIuICBJZiAidGV4dFBvcyIgaXMgb3V0c2lkZSB0aGUgdmFsaWQKKyAgICogaXRlcmF0aW9u
IHJhbmdlLCB0aGUgYmVoYXZpb3Igb2YgdGhpcyBvYmplY3QgaXMgdW5kZWZpbmVkLgorICAgKiBA
cGFyYW0gdGV4dFN0ciBUaGUgdW5pY29kZSBzdHJpbmcgdXNlZCB0byBjcmVhdGUgYW4gaXRlcmF0
b3IKKyAgICogQHBhcmFtIHRleHRQb3MgVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVy
YXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVy
YXRvcihjb25zdCBVbmljb2RlU3RyaW5nJiAgICB0ZXh0U3RyLAorICAgICAgICAgICAgICBpbnQz
Ml90ICAgICAgICAgICAgICB0ZXh0UG9zKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJh
dG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJyZWQgdG8gYnkgInRleHRTdHIiLgorICAg
KiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaXMgY29waWVkLgorICAgKiBUaGUgaXRlcmF0aW9u
IHJhbmdlIGJlZ2lucyB3aXRoIHRoZSBjb2RlIHVuaXQgc3BlY2lmaWVkIGJ5CisgICAqICJ0ZXh0
QmVnaW4iIGFuZCBlbmRzIHdpdGggdGhlIGNvZGUgdW5pdCBCRUZPUkUgdGhlIGNvZGUgdW5pdCBz
cGVjZmllZAorICAgKiBieSAidGV4dEVuZCIuICBUaGUgc3RhcnRpbmcgcG9zaXRpb24gaXMgc3Bl
Y2lmaWVkIGJ5ICJ0ZXh0UG9zIi4gIElmCisgICAqICJ0ZXh0QmVnaW4iIGFuZCAidGV4dEVuZCIg
ZG9uJ3QgZm9ybSBhIHZhbGlkIHJhbmdlIG9uICJ0ZXh0IiAoaS5lLiwKKyAgICogdGV4dEJlZ2lu
ID49IHRleHRFbmQgb3IgZWl0aGVyIGlzIG5lZ2F0aXZlIG9yIGdyZWF0ZXIgdGhhbiB0ZXh0LnNp
emUoKSksCisgICAqIG9yICJ0ZXh0UG9zIiBpcyBvdXRzaWRlIHRoZSByYW5nZSBkZWZpbmVkIGJ5
ICJ0ZXh0QmVnaW4iIGFuZCAidGV4dEVuZCIsCisgICAqIHRoZSBiZWhhdmlvciBvZiB0aGlzIGl0
ZXJhdG9yIGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRTdHIgICAgVGhlIHVuaWNvZGUg
c3RyaW5nIHVzZWQgdG8gY3JlYXRlIHRoZSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcgorICAgKiBA
cGFyYW0gdGV4dEJlZ2luICBUaGUgYmVnaW4gcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5n
ZQorICAgKiBAcGFyYW0gdGV4dEVuZCAgICBUaGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRp
b24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRQb3MgICAgVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9m
IHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFy
YWN0ZXJJdGVyYXRvcihjb25zdCBVbmljb2RlU3RyaW5nJiAgICB0ZXh0U3RyLAorICAgICAgICAg
ICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0QmVnaW4sCisgICAgICAgICAgICAgIGludDMy
X3QgICAgICAgICAgICAgIHRleHRFbmQsCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAg
ICAgIHRleHRQb3MpOworCisgIC8qKgorICAgKiBDb3B5IGNvbnN0cnVjdG9yLiAgVGhlIG5ldyBp
dGVyYXRvciBpdGVyYXRlcyBvdmVyIHRoZSBzYW1lIHJhbmdlCisgICAqIG9mIHRoZSBzYW1lIHN0
cmluZyBhcyAidGhhdCIsIGFuZCBpdHMgaW5pdGlhbCBwb3NpdGlvbiBpcyB0aGUKKyAgICogc2Ft
ZSBhcyAidGhhdCIncyBjdXJyZW50IHBvc2l0aW9uLgorICAgKiBUaGUgVW5pY29kZVN0cmluZyBv
YmplY3QgaW4gInRoYXQiIGlzIGNvcGllZC4KKyAgICogQHBhcmFtIHRoYXQgVGhlIFN0cmluZ0No
YXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvcGllZAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9y
JiAgdGhhdCk7CisKKyAgLyoqCisgICAqIERlc3RydWN0b3IuCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCB+U3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAvKioK
KyAgICogQXNzaWdubWVudCBvcGVyYXRvci4gICp0aGlzIGlzIGFsdGVyZWQgdG8gaXRlcmF0ZSBv
dmVyIHRoZSBzYW1lCisgICAqIHJhbmdlIG9mIHRoZSBzYW1lIHN0cmluZyBhcyAidGhhdCIsIGFu
ZCByZWZlcnMgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIHdpdGhpbiB0aGF0IHN0cmluZyBh
cyAidGhhdCIgZG9lcy4KKyAgICogQHBhcmFtIHRoYXQgVGhlIG9iamVjdCB0byBiZSBjb3BpZWQu
CisgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LgorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJgorICBvcGVyYXRvcj0oY29u
c3QgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImICAgIHRoYXQpOworCisgIC8qKgorICAgKiBSZXR1
cm5zIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2Yg
dGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFj
dGVyLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJl
IGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGl0ZXJhdG9y
cyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFu
ZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgICAgb3BlcmF0b3I9PShjb25zdCBGb3J3
YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1cm5z
IGEgbmV3IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgc2FtZQorICAg
KiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzIHRoaXMg
b25lLiAgVGhlCisgICAqIGNhbGxlciBtdXN0IGRlbGV0ZSB0aGUgbmV3IGl0ZXJhdG9yLgorICAg
KiBAcmV0dXJuIHRoZSBuZXdseSBjbG9uZWQgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0Owor
CisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgdGhlIHByb3Zp
ZGVkIHN0cmluZy4KKyAgICogQHBhcmFtIG5ld1RleHQgVGhlIHN0cmluZyB0byBiZSBpdGVyYXRl
ZCBvdmVyCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdm9pZCBzZXRUZXh0KGNvbnN0
IFVuaWNvZGVTdHJpbmcmIG5ld1RleHQpOworCisgIC8qKgorICAgKiBDb3BpZXMgdGhlIFVuaWNv
ZGVTdHJpbmcgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcKKyAgICogcmVm
ZXJyZWQgdG8gYnkgInJlc3VsdCIuICBFdmVuIGlmIHRoaXMgaXRlcmF0b3IgaXRlcmF0ZXMgYWNy
b3NzCisgICAqIG9ubHkgYSBwYXJ0IG9mIHRoaXMgc3RyaW5nLCB0aGUgd2hvbGUgc3RyaW5nIGlz
IGNvcGllZC4KKyAgICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRleHQg
dW5kZXIgaXRlcmF0aW9uLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwg
dm9pZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0cmluZyYgcmVzdWx0KTsKKworICAvKioK
KyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0IChub3QgcmVhbGx5IHB1Ymxp
YykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDbGFzc0lEICAgICAgICAgZ2V0RHluYW1pY0Ns
YXNzSUQodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0
aGlzIGNsYXNzIChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZv
ciB0aGlzIGNsYXNzCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgc3RhdGljIFVDbGFz
c0lEICAgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQodm9pZCk7CisKK3Byb3RlY3RlZDoKKyAg
LyoqCisgICAqIERlZmF1bHQgY29uc3RydWN0b3IsIGl0ZXJhdGlvbiBvdmVyIGVtcHR5IHN0cmlu
Zy4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRv
cigpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgdGhl
IHByb3ZpZGVkIHN0cmluZy4KKyAgICogQHBhcmFtIG5ld1RleHQgVGhlIHN0cmluZyB0byBiZSBp
dGVyYXRlZCBvdmVyCisgICAqIEBwYXJhbSBuZXdUZXh0TGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhl
IFN0cmluZworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZvaWQgc2V0VGV4dChjb25z
dCBVQ2hhciogbmV3VGV4dCwgaW50MzJfdCBuZXdUZXh0TGVuZ3RoKTsKKworICAvKioKKyAgICog
Q29weSBvZiB0aGUgaXRlcmF0ZWQgc3RyaW5nIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAqLworICBVbmljb2RlU3RyaW5nICAgICAgICAgICAgdGV4dDsKKworfTsKKworVV9OQU1F
U1BBQ0VfRU5ECisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNh
c2VtYXAuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNhc2VtYXAuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
MzdlMTY1ODg2OTdmMWE5MzAxOTFlZTNkZjgxNmM2M2I3YmQzOGMxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1hcC5oCkBAIC0wLDAgKzEsNDIzIEBACisv
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEy
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
ICAgZmlsZSBuYW1lOiAgdWNhc2VtYXAuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAg
dGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0
ZWQgb246IDIwMDVtYXkwNgorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqCisq
ICAgQ2FzZSBtYXBwaW5nIHNlcnZpY2Ugb2JqZWN0IGFuZCBmdW5jdGlvbnMgdXNpbmcgaXQuCisq
LworCisjaWZuZGVmIF9fVUNBU0VNQVBfSF9fCisjZGVmaW5lIF9fVUNBU0VNQVBfSF9fCisKKyNp
bmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXN0cmluZy5oIgor
I2luY2x1ZGUgInVuaWNvZGUvbG9jYWxwb2ludGVyLmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxi
cmllZiBDIEFQSTogVW5pY29kZSBjYXNlIG1hcHBpbmcgZnVuY3Rpb25zIHVzaW5nIGEgVUNhc2VN
YXAgc2VydmljZSBvYmplY3QuCisgKgorICogVGhlIHNlcnZpY2Ugb2JqZWN0IHRha2VzIGNhcmUg
b2YgbWVtb3J5IGFsbG9jYXRpb25zLCBkYXRhIGxvYWRpbmcsIGFuZCBzZXR1cAorICogZm9yIHRo
ZSBhdHRyaWJ1dGVzLCBhcyB1c3VhbC4KKyAqCisgKiBDdXJyZW50bHksIHRoZSBmdW5jdGlvbmFs
aXR5IHByb3ZpZGVkIGhlcmUgZG9lcyBub3Qgb3ZlcmxhcCB3aXRoIHVjaGFyLmgKKyAqIGFuZCB1
c3RyaW5nLmgsIGV4Y2VwdCBmb3IgdWNhc2VtYXBfdG9UaXRsZSgpLgorICoKKyAqIHVjYXNlbWFw
X3V0ZjhYWVooKSBmdW5jdGlvbnMgb3BlcmF0ZSBkaXJlY3RseSBvbiBVVEYtOCBzdHJpbmdzLgor
ICovCisKKy8qKgorICogVUNhc2VNYXAgaXMgYW4gb3BhcXVlIHNlcnZpY2Ugb2JqZWN0IGZvciBu
ZXdlciBJQ1UgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucy4KKyAqIE9sZGVyIGZ1bmN0aW9ucyBkaWQg
bm90IHVzZSBhIHNlcnZpY2Ugb2JqZWN0LgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK3N0cnVj
dCBVQ2FzZU1hcDsKK3R5cGVkZWYgc3RydWN0IFVDYXNlTWFwIFVDYXNlTWFwOyAvKio8IEMgdHlw
ZWRlZiBmb3Igc3RydWN0IFVDYXNlTWFwLiBAc3RhYmxlIElDVSAzLjQgKi8KKworLyoqCisgKiBP
cGVuIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QgZm9yIGEgbG9jYWxlIGFuZCBhIHNldCBvZiBv
cHRpb25zLgorICogVGhlIGxvY2FsZSBJRCBhbmQgb3B0aW9ucyBhcmUgcHJlcHJvY2Vzc2VkIHNv
IHRoYXQgZnVuY3Rpb25zIHVzaW5nIHRoZQorICogc2VydmljZSBvYmplY3QgbmVlZCBub3QgcHJv
Y2VzcyB0aGVtIGluIGVhY2ggY2FsbC4KKyAqCisgKiBAcGFyYW0gbG9jYWxlIElDVSBsb2NhbGUg
SUQsIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudAorICogICAgICAgICAgICAgICB1cHBlci0v
bG93ZXItL3RpdGxlLWNhc2luZyBhY2NvcmRpbmcgdG8gdGhlIFVuaWNvZGUgc3RhbmRhcmQuCisg
KiAgICAgICAgICAgICAgIFVzdWFsIHNlbWFudGljczogIiI9cm9vdCwgTlVMTD1kZWZhdWx0IGxv
Y2FsZSwgZXRjLgorICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBiaXQgc2V0LCB1c2VkIGZvciBj
YXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29ucy4KKyAqICAgICAgICAgICAgICAgIFNh
bWUgZmxhZ3MgYXMgZm9yIHVfZm9sZENhc2UoKSwgdV9zdHJGb2xkQ2FzZSgpLAorICogICAgICAg
ICAgICAgICAgdV9zdHJDYXNlQ29tcGFyZSgpLCBldGMuCisgKiAgICAgICAgICAgICAgICBVc2Ug
MCBvciBVX0ZPTERfQ0FTRV9ERUZBVUxUIGZvciBkZWZhdWx0IGJlaGF2aW9yLgorICogQHBhcmFt
IHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1
ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVy
ZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFBvaW50ZXIgdG8gYSBVQ2Fz
ZU1hcCBzZXJ2aWNlIG9iamVjdCwgaWYgc3VjY2Vzc2Z1bC4KKyAqCisgKiBAc2VlIFVfRk9MRF9D
QVNFX0RFRkFVTFQKKyAqIEBzZWUgVV9GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKKyAqIEBz
ZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0JSRUFL
X0FESlVTVE1FTlQKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSBVQ2FzZU1hcCAq
IFVfRVhQT1JUMgordWNhc2VtYXBfb3Blbihjb25zdCBjaGFyICpsb2NhbGUsIHVpbnQzMl90IG9w
dGlvbnMsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENsb3NlIGEgVUNhc2VN
YXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gY3NtIE9iamVjdCB0byBiZSBjbG9zZWQuCisg
KiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFw
X2Nsb3NlKFVDYXNlTWFwICpjc20pOworCisjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKworVV9O
QU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBcY2xhc3MgTG9jYWxVQ2FzZU1hcFBvaW50ZXIKKyAq
ICJTbWFydCBwb2ludGVyIiBjbGFzcywgY2xvc2VzIGEgVUNhc2VNYXAgdmlhIHVjYXNlbWFwX2Ns
b3NlKCkuCisgKiBGb3IgbW9zdCBtZXRob2RzIHNlZSB0aGUgTG9jYWxQb2ludGVyQmFzZSBiYXNl
IGNsYXNzLgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVyQmFzZQorICogQHNlZSBMb2NhbFBvaW50
ZXIKKyAqIEBzdGFibGUgSUNVIDQuNAorICovCitVX0RFRklORV9MT0NBTF9PUEVOX1BPSU5URVIo
TG9jYWxVQ2FzZU1hcFBvaW50ZXIsIFVDYXNlTWFwLCB1Y2FzZW1hcF9jbG9zZSk7CisKK1VfTkFN
RVNQQUNFX0VORAorCisjZW5kaWYKKworLyoqCisgKiBHZXQgdGhlIGxvY2FsZSBJRCB0aGF0IGlz
IHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVudCBjYXNlIG1hcHBpbmdzLgorICogQHBhcmFtIGNz
bSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1cm4gbG9jYWxlIElECisgKiBAc3Rh
YmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgY29uc3QgY2hhciAqIFVfRVhQT1JUMgordWNhc2Vt
YXBfZ2V0TG9jYWxlKGNvbnN0IFVDYXNlTWFwICpjc20pOworCisvKioKKyAqIEdldCB0aGUgb3B0
aW9ucyBiaXQgc2V0IHRoYXQgaXMgdXNlZCBmb3IgY2FzZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29t
cGFyaXNvbnMuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHJl
dHVybiBvcHRpb25zIGJpdCBzZXQKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSB1
aW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldE9wdGlvbnMoY29uc3QgVUNhc2VNYXAgKmNz
bSk7CisKKy8qKgorICogU2V0IHRoZSBsb2NhbGUgSUQgdGhhdCBpcyB1c2VkIGZvciBsYW5ndWFn
ZS1kZXBlbmRlbnQgY2FzZSBtYXBwaW5ncy4KKyAqCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNl
cnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGxvY2FsZSBMb2NhbGUgSUQsIHNlZSB1Y2FzZW1hcF9v
cGVuKCkuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBh
biBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3Qg
aW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqCisgKiBAc2Vl
IHVjYXNlbWFwX29wZW4KKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSB2b2lkIFVf
RVhQT1JUMgordWNhc2VtYXBfc2V0TG9jYWxlKFVDYXNlTWFwICpjc20sIGNvbnN0IGNoYXIgKmxv
Y2FsZSwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogU2V0IHRoZSBvcHRpb25z
IGJpdCBzZXQgdGhhdCBpcyB1c2VkIGZvciBjYXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21wYXJp
c29ucy4KKyAqCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBh
cmFtIG9wdGlvbnMgT3B0aW9ucyBiaXQgc2V0LCBzZWUgdWNhc2VtYXBfb3BlbigpLgorICogQHBh
cmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2
YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFp
bHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF9vcGVu
CisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNl
bWFwX3NldE9wdGlvbnMoVUNhc2VNYXAgKmNzbSwgdWludDMyX3Qgb3B0aW9ucywgVUVycm9yQ29k
ZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogRG8gbm90IGxvd2VyY2FzZSBub24taW5pdGlhbCBw
YXJ0cyBvZiB3b3JkcyB3aGVuIHRpdGxlY2FzaW5nLgorICogT3B0aW9uIGJpdCBmb3IgdGl0bGVj
YXNpbmcgQVBJcyB0aGF0IHRha2UgYW4gb3B0aW9ucyBiaXQgc2V0LgorICoKKyAqIEJ5IGRlZmF1
bHQsIHRpdGxlY2FzaW5nIHdpbGwgdGl0bGVjYXNlIHRoZSBmaXJzdCBjYXNlZCBjaGFyYWN0ZXIK
KyAqIG9mIGEgd29yZCBhbmQgbG93ZXJjYXNlIGFsbCBvdGhlciBjaGFyYWN0ZXJzLgorICogV2l0
aCB0aGlzIG9wdGlvbiwgdGhlIG90aGVyIGNoYXJhY3RlcnMgd2lsbCBub3QgYmUgbW9kaWZpZWQu
CisgKgorICogQHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25zCisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0
bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUKKyAqIEBzZWUgVW5pY29kZVN0cmluZzo6
dG9UaXRsZQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KKyNkZWZpbmUgVV9USVRMRUNBU0VfTk9f
TE9XRVJDQVNFIDB4MTAwCisKKy8qKgorICogRG8gbm90IGFkanVzdCB0aGUgdGl0bGVjYXNpbmcg
aW5kZXhlcyBmcm9tIEJyZWFrSXRlcmF0b3I6Om5leHQoKSBpbmRleGVzOworICogdGl0bGVjYXNl
IGV4YWN0bHkgdGhlIGNoYXJhY3RlcnMgYXQgYnJlYWtzIGZyb20gdGhlIGl0ZXJhdG9yLgorICog
T3B0aW9uIGJpdCBmb3IgdGl0bGVjYXNpbmcgQVBJcyB0aGF0IHRha2UgYW4gb3B0aW9ucyBiaXQg
c2V0LgorICoKKyAqIEJ5IGRlZmF1bHQsIHRpdGxlY2FzaW5nIHdpbGwgdGFrZSBlYWNoIGJyZWFr
IGl0ZXJhdG9yIGluZGV4LAorICogYWRqdXN0IGl0IGJ5IGxvb2tpbmcgZm9yIHRoZSBuZXh0IGNh
c2VkIGNoYXJhY3RlciwgYW5kIHRpdGxlY2FzZSB0aGF0IG9uZS4KKyAqIE90aGVyIGNoYXJhY3Rl
cnMgYXJlIGxvd2VyY2FzZWQuCisgKgorICogVGhpcyBmb2xsb3dzIFVuaWNvZGUgNCAmIDUgc2Vj
dGlvbiAzLjEzIERlZmF1bHQgQ2FzZSBPcGVyYXRpb25zOgorICoKKyAqIFIzICB0b1RpdGxlY2Fz
ZShYKTogRmluZCB0aGUgd29yZCBib3VuZGFyaWVzIGJhc2VkIG9uIFVuaWNvZGUgU3RhbmRhcmQg
QW5uZXgKKyAqICMyOSwgIlRleHQgQm91bmRhcmllcy4iIEJldHdlZW4gZWFjaCBwYWlyIG9mIHdv
cmQgYm91bmRhcmllcywgZmluZCB0aGUgZmlyc3QKKyAqIGNhc2VkIGNoYXJhY3RlciBGLiBJZiBG
IGV4aXN0cywgbWFwIEYgdG8gZGVmYXVsdF90aXRsZShGKTsgdGhlbiBtYXAgZWFjaAorICogc3Vi
c2VxdWVudCBjaGFyYWN0ZXIgQyB0byBkZWZhdWx0X2xvd2VyKEMpLgorICoKKyAqIEBzZWUgdWNh
c2VtYXBfc2V0T3B0aW9ucworICogQHNlZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBAc2VlIHVjYXNl
bWFwX3V0ZjhUb1RpdGxlCisgKiBAc2VlIFVuaWNvZGVTdHJpbmc6OnRvVGl0bGUKKyAqIEBzZWUg
VV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworI2RlZmlu
ZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5UIDB4MjAwCisKKyNpZiAhVUNPTkZJR19O
T19CUkVBS19JVEVSQVRJT04KKworLyoqCisgKiBHZXQgdGhlIGJyZWFrIGl0ZXJhdG9yIHRoYXQg
aXMgdXNlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBEbyBub3QgbW9kaWZ5IHRoZSByZXR1cm5lZCBi
cmVhayBpdGVyYXRvci4KKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisg
KiBAcmV0dXJuIHRpdGxlY2FzaW5nIGJyZWFrIGl0ZXJhdG9yCisgKiBAc3RhYmxlIElDVSAzLjgK
KyAqLworVV9TVEFCTEUgY29uc3QgVUJyZWFrSXRlcmF0b3IgKiBVX0VYUE9SVDIKK3VjYXNlbWFw
X2dldEJyZWFrSXRlcmF0b3IoY29uc3QgVUNhc2VNYXAgKmNzbSk7CisKKy8qKgorICogU2V0IHRo
ZSBicmVhayBpdGVyYXRvciB0aGF0IGlzIHVzZWQgZm9yIHRpdGxlY2FzaW5nLgorICogVGhlIFVD
YXNlTWFwIHNlcnZpY2Ugb2JqZWN0IHJlbGVhc2VzIGEgcHJldmlvdXNseSBzZXQgYnJlYWsgaXRl
cmF0b3IKKyAqIGFuZCAiYWRvcHRzIiB0aGlzIG5ldyBvbmUsIHRha2luZyBvd25lcnNoaXAgb2Yg
aXQuCisgKiBJdCB3aWxsIGJlIHJlbGVhc2VkIGluIGEgc3Vic2VxdWVudCBjYWxsIHRvIHVjYXNl
bWFwX3NldEJyZWFrSXRlcmF0b3IoKQorICogb3IgdWNhc2VtYXBfY2xvc2UoKS4KKyAqCisgKiBC
cmVhayBpdGVyYXRvciBvcGVyYXRpb25zIGFyZSBub3QgdGhyZWFkLXNhZmUuIFRoZXJlZm9yZSwg
dGl0bGVjYXNpbmcKKyAqIGZ1bmN0aW9ucyB1c2Ugbm9uLWNvbnN0IFVDYXNlTWFwIG9iamVjdHMu
IEl0IGlzIG5vdCBwb3NzaWJsZSB0byB0aXRsZWNhc2UKKyAqIHN0cmluZ3MgY29uY3VycmVudGx5
IHVzaW5nIHRoZSBzYW1lIFVDYXNlTWFwLgorICoKKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2Vy
dmljZSBvYmplY3QuCisgKiBAcGFyYW0gaXRlclRvQWRvcHQgQnJlYWsgaXRlcmF0b3IgdG8gYmUg
YWRvcHRlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEg
dmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAg
ICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24g
Y2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRm
OFRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JU
MgordWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcihVQ2FzZU1hcCAqY3NtLCBVQnJlYWtJdGVyYXRv
ciAqaXRlclRvQWRvcHQsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIFRpdGxl
Y2FzZSBhIFVURi0xNiBzdHJpbmcuIFRoaXMgZnVuY3Rpb24gaXMgYWxtb3N0IGEgZHVwbGljYXRl
IG9mIHVfc3RyVG9UaXRsZSgpLAorICogZXhjZXB0IHRoYXQgaXQgdGFrZXMgdWNhc2VtYXBfc2V0
T3B0aW9ucygpIGludG8gYWNjb3VudCBhbmQgaGFzIHBlcmZvcm1hbmNlCisgKiBhZHZhbnRhZ2Vz
IGZyb20gYmVpbmcgYWJsZSB0byB1c2UgYSBVQ2FzZU1hcCBvYmplY3QgZm9yIG11bHRpcGxlIGNh
c2UgbWFwcGluZworICogb3BlcmF0aW9ucywgc2F2aW5nIHNldHVwIHRpbWUuCisgKgorICogQ2Fz
aW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGl0bGVj
YXNpbmcgdXNlcyBhIGJyZWFrIGl0ZXJhdG9yIHRvIGZpbmQgdGhlIGZpcnN0IGNoYXJhY3RlcnMg
b2Ygd29yZHMKKyAqIHRoYXQgYXJlIHRvIGJlIHRpdGxlY2FzZWQuIEl0IHRpdGxlY2FzZXMgdGhv
c2UgY2hhcmFjdGVycyBhbmQgbG93ZXJjYXNlcworICogYWxsIG90aGVycy4gKFRoaXMgY2FuIGJl
IG1vZGlmaWVkIHdpdGggdWNhc2VtYXBfc2V0T3B0aW9ucygpLikKKyAqCisgKiBOb3RlOiBUaGlz
IGZ1bmN0aW9uIHRha2VzIGEgbm9uLWNvbnN0IFVDYXNlTWFwIHBvaW50ZXIgYmVjYXVzZSBpdCB3
aWxsCisgKiBvcGVuIGEgZGVmYXVsdCBicmVhayBpdGVyYXRvciBpZiBubyBicmVhayBpdGVyYXRv
ciB3YXMgc2V0IHlldCwKKyAqIGFuZCBlZmZlY3RpdmVseSBjYWxsIHVjYXNlbWFwX3NldEJyZWFr
SXRlcmF0b3IoKTsKKyAqIGFsc28gYmVjYXVzZSB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgc3RhdGVm
dWwgYW5kIHdpbGwgYmUgbW9kaWZpZWQgZHVyaW5nCisgKiB0aGUgaXRlcmF0aW9uLgorICoKKyAq
IFRoZSB0aXRsZWNhc2UgYnJlYWsgaXRlcmF0b3IgY2FuIGJlIHByb3ZpZGVkIHRvIGN1c3RvbWl6
ZSBmb3IgYXJiaXRyYXJ5CisgKiBzdHlsZXMsIHVzaW5nIHJ1bGVzIGFuZCBkaWN0aW9uYXJpZXMg
YmV5b25kIHRoZSBzdGFuZGFyZCBpdGVyYXRvcnMuCisgKiBUaGUgc3RhbmRhcmQgdGl0bGVjYXNl
IGl0ZXJhdG9yIGZvciB0aGUgcm9vdCBsb2NhbGUgaW1wbGVtZW50cyB0aGUKKyAqIGFsZ29yaXRo
bSBvZiBVbmljb2RlIFRSIDIxLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gdXNlcyBvbmx5IHRoZSBz
ZXRVVGV4dCgpLCBmaXJzdCgpLCBuZXh0KCkgYW5kIGNsb3NlKCkgbWV0aG9kcyBvZiB0aGUKKyAq
IHByb3ZpZGVkIGJyZWFrIGl0ZXJhdG9yLgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdl
ciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5k
IHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0g
Y3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LiBUaGlzIHBvaW50ZXIgaXMgbm9uLWNv
bnN0IQorICogICAgICAgICAgICAgICAgICBTZWUgdGhlIG5vdGUgYWJvdmUgZm9yIGRldGFpbHMu
CisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhl
IHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRo
ZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVu
dHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNp
dHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwg
dGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rp
b24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAg
ICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBw
YXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGgg
VGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBi
ZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBw
b2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNo
IG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisg
KiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwg
LSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBj
YXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVf
c3RyVG9UaXRsZQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9F
WFBPUlQyCit1Y2FzZW1hcF90b1RpdGxlKFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAg
IFVDaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgY29u
c3QgVUNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgIFVFcnJv
ckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYKKworLyoqCisgKiBMb3dlcmNhc2UgdGhlIGNo
YXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVu
dCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Ig
c2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUg
ZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAg
ICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBidWZm
ZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0
ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2guCisg
KiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBvZiBm
YWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChu
dW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAgIGRl
c3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5n
dGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcgYW55
IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2luYWwg
c3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBz
dHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBhcmFt
IHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1
ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJl
IGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUg
cmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIgb3Zl
cmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRoYW4g
ZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb0xvd2VyCisgKiBAc3RhYmxlIElDVSAz
LjQKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhUb0xvd2Vy
KGNvbnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBp
bnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNy
YywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKworLyoqCisgKiBVcHBlcmNhc2UgdGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYt
OCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgY29udGV4dC1zZW5z
aXRpdmUuCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBv
cmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVy
IG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2
aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQg
c3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAg
ICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAg
IFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFt
IGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJ
ZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5k
IHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAor
ICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3Ry
aW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFt
IHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVu
IHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBi
ZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAg
ICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rp
b24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYg
c3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAg
IGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoK
KyAqIEBzZWUgdV9zdHJUb1VwcGVyCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUg
aW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhUb1VwcGVyKGNvbnN0IFVDYXNlTWFwICpj
c20sCisgICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0
eSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5n
dGgsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2lm
ICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCisvKioKKyAqIFRpdGxlY2FzZSBhIFVURi04
IHN0cmluZy4KKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNlbnNp
dGl2ZS4KKyAqIFRpdGxlY2FzaW5nIHVzZXMgYSBicmVhayBpdGVyYXRvciB0byBmaW5kIHRoZSBm
aXJzdCBjaGFyYWN0ZXJzIG9mIHdvcmRzCisgKiB0aGF0IGFyZSB0byBiZSB0aXRsZWNhc2VkLiBJ
dCB0aXRsZWNhc2VzIHRob3NlIGNoYXJhY3RlcnMgYW5kIGxvd2VyY2FzZXMKKyAqIGFsbCBvdGhl
cnMuIChUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHVjYXNlbWFwX3NldE9wdGlvbnMoKS4pCisg
KgorICogTm90ZTogVGhpcyBmdW5jdGlvbiB0YWtlcyBhIG5vbi1jb25zdCBVQ2FzZU1hcCBwb2lu
dGVyIGJlY2F1c2UgaXQgd2lsbAorICogb3BlbiBhIGRlZmF1bHQgYnJlYWsgaXRlcmF0b3IgaWYg
bm8gYnJlYWsgaXRlcmF0b3Igd2FzIHNldCB5ZXQsCisgKiBhbmQgZWZmZWN0aXZlbHkgY2FsbCB1
Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCk7CisgKiBhbHNvIGJlY2F1c2UgdGhlIGJyZWFrIGl0
ZXJhdG9yIGlzIHN0YXRlZnVsIGFuZCB3aWxsIGJlIG1vZGlmaWVkIGR1cmluZworICogdGhlIGl0
ZXJhdGlvbi4KKyAqCisgKiBUaGUgdGl0bGVjYXNlIGJyZWFrIGl0ZXJhdG9yIGNhbiBiZSBwcm92
aWRlZCB0byBjdXN0b21pemUgZm9yIGFyYml0cmFyeQorICogc3R5bGVzLCB1c2luZyBydWxlcyBh
bmQgZGljdGlvbmFyaWVzIGJleW9uZCB0aGUgc3RhbmRhcmQgaXRlcmF0b3JzLgorICogVGhlIHN0
YW5kYXJkIHRpdGxlY2FzZSBpdGVyYXRvciBmb3IgdGhlIHJvb3QgbG9jYWxlIGltcGxlbWVudHMg
dGhlCisgKiBhbGdvcml0aG0gb2YgVW5pY29kZSBUUiAyMS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9u
IHVzZXMgb25seSB0aGUgc2V0VVRleHQoKSwgZmlyc3QoKSwgbmV4dCgpIGFuZCBjbG9zZSgpIG1l
dGhvZHMgb2YgdGhlCisgKiBwcm92aWRlZCBicmVhayBpdGVyYXRvci4KKyAqCisgKiBUaGUgcmVz
dWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBz
b3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAu
CisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4gVGhpcyBw
b2ludGVyIGlzIG5vbi1jb25zdCEKKyAqICAgICAgICAgICAgICAgICAgU2VlIHRoZSBub3RlIGFi
b3ZlIGZvciBkZXRhaWxzLgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJl
c3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAg
ICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAg
ICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBA
cGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRl
cykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVM
TCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVz
dWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3Vs
dCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBA
cGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEs
IHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBN
dXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAg
ICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBm
dW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5n
LCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAg
ICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHku
CisgKgorICogQHNlZSB1X3N0clRvVGl0bGUKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJD
QVNFCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0JSRUFLX0FESlVTVE1FTlQKKyAqIEBzdGFibGUg
SUNVIDMuOAorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOFRv
VGl0bGUoVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50
MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNyYywg
aW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJv
ckNvZGUpOworCisjZW5kaWYKKworLyoqCisgKiBDYXNlLWZvbGRzIHRoZSBjaGFyYWN0ZXJzIGlu
IGEgVVRGLTggc3RyaW5nLgorICoKKyAqIENhc2UtZm9sZGluZyBpcyBsb2NhbGUtaW5kZXBlbmRl
bnQgYW5kIG5vdCBjb250ZXh0LXNlbnNpdGl2ZSwKKyAqIGJ1dCB0aGVyZSBpcyBhbiBvcHRpb24g
Zm9yIHdoZXRoZXIgdG8gaW5jbHVkZSBvciBleGNsdWRlIG1hcHBpbmdzIGZvciBkb3R0ZWQgSQor
ICogYW5kIGRvdGxlc3MgaSB0aGF0IGFyZSBtYXJrZWQgd2l0aCAnVCcgaW4gQ2FzZUZvbGRpbmcu
dHh0LgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhl
IG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZm
ZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNl
cnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3Vs
dCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAg
ICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAg
ICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFy
YW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcyku
IElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBh
bmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0
CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBz
dHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFy
YW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRo
ZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0
IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAg
ICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5j
dGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBp
ZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAg
ICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisg
KgorICogQHNlZSB1X3N0ckZvbGRDYXNlCisgKiBAc2VlIHVjYXNlbWFwX3NldE9wdGlvbnMKKyAq
IEBzZWUgVV9GT0xEX0NBU0VfREVGQVVMVAorICogQHNlZSBVX0ZPTERfQ0FTRV9FWENMVURFX1NQ
RUNJQUxfSQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBP
UlQyCit1Y2FzZW1hcF91dGY4Rm9sZENhc2UoY29uc3QgVUNhc2VNYXAgKmNzbSwKKyAgICAgICAg
ICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAg
ICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1
L3VuaWNvZGUvdWNocml0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDVhOTkwZjdiN2VkM2Q1YmFjZjJkYTg0
NzFlZjhmZjk0MjJmOTljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS91Y2hyaXRlci5oCkBAIC0wLDAgKzEsMzgxIEBACisvKgorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENv
cHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisq
ICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqLworCisjaWZuZGVmIFVDSFJJVEVSX0gKKyNkZWZpbmUgVUNIUklURVJfSAorCisj
aW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVyLmgi
CisKKy8qKgorICogXGZpbGUgCisgKiBcYnJpZWYgQysrIEFQSTogVUNoYXIgQ2hhcmFjdGVyIEl0
ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogQSBjb25jcmV0ZSBz
dWJjbGFzcyBvZiBDaGFyYWN0ZXJJdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgdGhlCisgKiBj
aGFyYWN0ZXJzIChjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzKSBpbiBhIFVDaGFyIGFycmF5Lgor
ICogSXQncyBwb3NzaWJsZSBub3Qgb25seSB0byBjcmVhdGUgYW4KKyAqIGl0ZXJhdG9yIHRoYXQg
aXRlcmF0ZXMgb3ZlciBhbiBlbnRpcmUgVUNoYXIgYXJyYXksIGJ1dCBhbHNvIHRvCisgKiBjcmVh
dGUgb25lIHRoYXQgaXRlcmF0ZXMgb3ZlciBvbmx5IGEgc3VicmFuZ2Ugb2YgYSBVQ2hhciBhcnJh
eQorICogKGl0ZXJhdG9ycyBvdmVyIGRpZmZlcmVudCBzdWJyYW5nZXMgb2YgdGhlIHNhbWUgVUNo
YXIgYXJyYXkgZG9uJ3QKKyAqIGNvbXBhcmUgZXF1YWwpLgorICogQHNlZSBDaGFyYWN0ZXJJdGVy
YXRvcgorICogQHNlZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDIu
MAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciA6IHB1Ymxp
YyBDaGFyYWN0ZXJJdGVyYXRvciB7CitwdWJsaWM6CisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRl
cmF0b3Igb3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAg
KiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNvZGU+bGVuZ3RoLTE8L2NvZGU+LgorICAg
KiB0ZXh0IGlzIG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9y
IHdpbGwgbm90IGRlbGV0ZSBpdCkuCisgICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJh
eSB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0
aGUgVUNoYXIgYXJyYXkKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJh
Y3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyKiB0ZXh0UHRyLCBpbnQzMl90IGxlbmd0aCk7CisKKyAg
LyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVQ2hhciBhcnJheSByZWZlcnJl
ZCB0byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgMCB0byA8Y29k
ZT5sZW5ndGgtMTwvY29kZT4uCisgICAqIHRleHQgaXMgb25seSBhbGlhc2VkLCBub3QgYWRvcHRl
ZCAodGhlCisgICAqIGRlc3RydWN0b3Igd2lsbCBub3QgZGVsZXRlIGl0KS4KKyAgICogVGhlIHN0
YXJ0aW5nCisgICAqIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAicG9zaXRpb24iLiBJZiAicG9z
aXRpb24iIGlzIG91dHNpZGUgdGhlIHZhbGlkCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJl
aGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRQdHIg
VGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGQgb3ZlcgorICAgKiBAcGFyYW0gbGVuZ3RoIFRo
ZSBsZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAqIEBwYXJhbSBwb3NpdGlvbiBUaGUgc3Rh
cnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVUNoYXIqIHRleHRQdHIsIGludDMy
X3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcG9zaXRpb24pOwor
CisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVm
ZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8g
PGNvZGU+ZW5kLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlzIG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0
ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90IGRlbGV0ZSBpdCkuCisgICAqIFRoZSBz
dGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInBvc2l0aW9uIi4gSWYgYmVn
aW4gYW5kIGVuZCBkbyBub3QKKyAgICogZm9ybSBhIHZhbGlkIGl0ZXJhdGlvbiByYW5nZSBvciAi
cG9zaXRpb24iIGlzIG91dHNpZGUgdGhlIHZhbGlkCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhl
IGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRQ
dHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICogQHBhcmFtIGxlbmd0
aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQorICAgKiBAcGFyYW0gdGV4dEJlZ2luICBU
aGUgYmVnaW4gcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0gdGV4
dEVuZCAgICBUaGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBh
cmFtIHBvc2l0aW9uICAgIFRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25z
dCBVQ2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50MzJfdCB0ZXh0QmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCB0
ZXh0RW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcG9zaXRpb24pOworCisg
IC8qKgorICAgKiBDb3B5IGNvbnN0cnVjdG9yLiAgVGhlIG5ldyBpdGVyYXRvciBpdGVyYXRlcyBv
dmVyIHRoZSBzYW1lIHJhbmdlCisgICAqIG9mIHRoZSBzYW1lIHN0cmluZyBhcyAidGhhdCIsIGFu
ZCBpdHMgaW5pdGlhbCBwb3NpdGlvbiBpcyB0aGUKKyAgICogc2FtZSBhcyAidGhhdCIncyBjdXJy
ZW50IHBvc2l0aW9uLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgVUNoYXJDaGFyYWN0ZXJJdGVyYXRv
ciB0byBiZSBjb3BpZWQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJh
Y3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImICB0aGF0KTsKKworICAv
KioKKyAgICogRGVzdHJ1Y3Rvci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIH5VQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgLyoqCisgICAqIEFzc2lnbm1lbnQg
b3BlcmF0b3IuICAqdGhpcyBpcyBhbHRlcmVkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgc2FuZQorICAg
KiByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgcmVmZXJzIHRvIHRoZSBz
YW1lCisgICAqIGNoYXJhY3RlciB3aXRoaW4gdGhhdCBzdHJpbmcgYXMgInRoYXQiIGRvZXMuCisg
ICAqIEBwYXJhbSB0aGF0IFRoZSBvYmplY3QgdG8gYmUgY29waWVkCisgICAqIEByZXR1cm4gdGhl
IG5ld2x5IGNyZWF0ZWQgb2JqZWN0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNo
YXJDaGFyYWN0ZXJJdGVyYXRvciYKKyAgb3BlcmF0b3I9KGNvbnN0IFVDaGFyQ2hhcmFjdGVySXRl
cmF0b3ImICAgIHRoYXQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGl0ZXJh
dG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3RyaW5n
IGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAcGFyYW0gdGhh
dCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHVzZWQgdG8gYmUgY29tcGFyZWQgZm9yIGVx
dWFsaXR5CisgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0
aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGluZyBh
dCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCBVQm9vbCAgICAgICAgICBvcGVyYXRvcj09KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVy
YXRvciYgdGhhdCkgY29uc3Q7CisKKyAgLyoqCisgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBm
b3IgdGhpcyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0aGUgaGFzaCBjb2RlLgorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgaW50MzJfdCAgICAgICAgIGhhc2hDb2RlKHZv
aWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1cm5zIGEgbmV3IFVDaGFyQ2hhcmFjdGVySXRl
cmF0b3IgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSBy
YW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgdGhpcyBvbmUuICBUaGUKKyAgICogY2FsbGVyIG11
c3QgZGVsZXRlIHRoZSBuZXcgaXRlcmF0b3IuCisgICAqIEByZXR1cm4gdGhlIENoYXJhY3Rlckl0
ZXJhdG9yIG5ld2x5IGNyZWF0ZWQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICog
U2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMK
KyAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICog
VGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0KCkuCisgICAq
IEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdCh2
b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZp
cnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQg
Y29kZSB1bml0LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAqIHRvIHRoZSBzZWNvbmQgY29k
ZSB1bml0LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAgKiBmb3Ig
Zm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpLgorICAgKiBAcmV0dXJuIHRoZSBm
aXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdFBvc3RJbmModm9pZCk7CisK
KyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2Rl
IHBvaW50IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29k
ZSB1bml0LAorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRo
IG5leHQzMigpLgorICAgKiBOb3RlIHRoYXQgYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdElu
YygpLCBiZWdpbm5pbmcgd2l0aCwKKyAgICogZS5nLiwgc2V0VG9TdGFydCgpIG9yIGZpcnN0UG9z
dEluYygpLCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSBw
b2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzIodm9pZCk7CisKKyAgLyoqCisgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cwor
ICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LCBhbmQgbW92ZXMg
dGhlIHBvc2l0aW9uCisgICAqIHRvIHRoZSBzZWNvbmQgY29kZSBwb2ludC4gVGhpcyBpcyBhbiBh
bHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdp
dGggbmV4dDMyUG9zdEluYygpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGlu
IGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmly
dHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzJQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBT
ZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHVuaXQgaW4gaXRzCisg
ICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIFRo
aXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKS4KKyAg
ICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbGFzdCh2
b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxh
c3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0
aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRp
b24gd2l0aCBwcmV2aW91czMyKCkuCisgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSBwb2ludCBp
biBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZp
cnR1YWwgVUNoYXIzMiAgICAgICBsYXN0MzIodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgKiBp
biB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAg
ICogcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3Np
dGlvbiB3aXRoaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICogQHJldHVybiB0aGUgY29k
ZSB1bml0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAg
ICAgIHNldEluZGV4KGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBp
dGVyYXRvciB0byByZWZlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjb2RlIHBvaW50CisgICAq
IHRoYXQgY29udGFpbnMgdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAqIGluIHRoZSB0
ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgKiByZXR1
cm5zIHRoYXQgY29kZSBwb2ludC4KKyAgICogVGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgYWRqdXN0
ZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgKiAoaXRzIGZpcnN0IGNv
ZGUgdW5pdCkuCisgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0
ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAqIEByZXR1cm4gdGhlIGNvZGUgdW5pdAorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBzZXRJbmRleDMyKGlu
dDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBSZXR1cm5zIHRoZSBjb2RlIHVuaXQgdGhl
IGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEByZXR1cm4gdGhlIGNvZGUgdW5p
dCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgY3VycmVudCh2b2lkKSBjb25zdDsKKwor
ICAvKioKKyAgICogUmV0dXJucyB0aGUgY29kZSBwb2ludCB0aGUgaXRlcmF0b3IgY3VycmVudGx5
IHJlZmVycyB0by4KKyAgICogQHJldHVybiB0aGUgY29kZSBwb2ludCB0aGUgaXRlcmF0b3IgY3Vy
cmVudGx5IHJlZmVycyB0by4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFs
IFVDaGFyMzIgICAgICAgY3VycmVudDMyKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBBZHZh
bmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJk
CisgICAqIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJl
IGFyZSBubyBtb3JlCisgICAqIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisg
ICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHQo
dm9pZCk7CisKKyAgLyoqCisgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSB1bml0IGZvciByZXR1
cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgdW5pdAorICAgKiBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlCisgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAg
ICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0
dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dFBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAq
IEFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAo
dG93YXJkCisgICAqIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJ
ZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMg
RE9ORS4KKyAgICogTm90ZSB0aGF0IGl0ZXJhdGlvbiB3aXRoICJwcmUtaW5jcmVtZW50IiBzZW1h
bnRpY3MgaXMgbGVzcworICAgKiBlZmZpY2llbnQgdGhhbiBpdGVyYXRpb24gd2l0aCAicG9zdC1p
bmNyZW1lbnQiIHNlbWFudGljcworICAgKiB0aGF0IGlzIHByb3ZpZGVkIGJ5IG5leHQzMlBvc3RJ
bmMoKS4KKyAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24g
cmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAg
ICAgIG5leHQzMih2b2lkKTsKKworICAvKioKKyAgICogR2V0cyB0aGUgY3VycmVudCBjb2RlIHBv
aW50IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAg
ICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAgSWYg
dGhlcmUgYXJlCisgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERP
TkUuCisgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgcG9pbnQuCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMlBvc3RJbmModm9pZCk7CisK
KyAgLyoqCisgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0
cyBvciBjb2RlIHBvaW50cworICAgKiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBp
biB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBuZXh0UG9zdElu
YygpIG9yIG5leHQzMlBvc3RJbmMoKSBpbiBmb3J3YXJkCisgICAqIGl0ZXJhdGlvbi4KKyAgICog
QHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9p
bnRzCisgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRp
b24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9vbCAg
ICAgICAgaGFzTmV4dCgpOworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMg
Y29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBzdGFydEluZGV4
KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZSBubyBtb3JlCisg
ICAqIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhl
IHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBwcmV2aW91cyh2b2lkKTsK
KworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhl
IGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5z
IHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZSBubyBtb3JlCisgICAqIGNvZGUgcG9pbnRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2Rl
IHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHByZXZpb3VzMzIodm9pZCk7CisKKyAgLyoqCisg
ICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2Rl
IHBvaW50cworICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlv
biByYW5nZS4KKyAgICogVGhpcyBpcyB1c2VkIHdpdGggcHJldmlvdXMoKSBvciBwcmV2aW91czMy
KCkgaW4gYmFja3dhcmQKKyAgICogaXRlcmF0aW9uLgorICAgKiBAcmV0dXJuIEZBTFNFIGlmIHRo
ZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYmVmb3JlIHRo
ZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzUHJldmlvdXMoKTsKKwor
ICAvKioKKyAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0
YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0
aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNz
ZWQgaW4gbnVtYmVycyBvZiBjb2RlIHVuaXRzIGZvcndhcmQKKyAgICogb3IgYmFja3dhcmQgYnkg
c3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgKiBAcGFyYW0gZGVs
dGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFu
cyBmb3J3YXJkOworICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAgKiBA
cGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0K
KyAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92ZShpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9y
aWdpbik7CisKKyAgLyoqCisgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZl
IHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgb3IgcmVs
YXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgKiBUaGUgbW92ZW1lbnQg
aXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSBwb2ludHMgZm9yd2FyZAorICAgKiBvciBi
YWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAq
IEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZl
IGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMgYmFja3dh
cmQuCisgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJy
ZW50LCBrRW5kfQorICAgKiBAcmV0dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICB2aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlMzIoaW50MzJfdCBkZWx0
YSwgRU9yaWdpbiBvcmlnaW4pOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBp
dGVyYXRlIG92ZXIgYSBuZXcgcmFuZ2Ugb2YgdGV4dAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVQ2hhciogbmV3VGV4dCwgaW50MzJfdCBuZXdUZXh0
TGVuZ3RoKTsKKworICAvKioKKyAgICogQ29waWVzIHRoZSBVQ2hhciBhcnJheSB1bmRlciBpdGVy
YXRpb24gaW50byB0aGUgVW5pY29kZVN0cmluZworICAgKiByZWZlcnJlZCB0byBieSAicmVzdWx0
Ii4gIEV2ZW4gaWYgdGhpcyBpdGVyYXRvciBpdGVyYXRlcyBhY3Jvc3MKKyAgICogb25seSBhIHBh
cnQgb2YgdGhpcyBzdHJpbmcsIHRoZSB3aG9sZSBzdHJpbmcgaXMgY29waWVkLgorICAgKiBAcGFy
YW0gcmVzdWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB2b2lkICAgICAgICAgICAgZ2V0
VGV4dChVbmljb2RlU3RyaW5nJiByZXN1bHQpOworCisgIC8qKgorICAgKiBSZXR1cm4gYSBjbGFz
cyBJRCBmb3IgdGhpcyBjbGFzcyAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1cm4gYSBj
bGFzcyBJRCBmb3IgdGhpcyBjbGFzcworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHN0
YXRpYyBVQ2xhc3NJRCAgICAgICAgIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKHZvaWQpOwor
CisgIC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QgKG5vdCByZWFs
bHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0LgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNsYXNzSUQgICAgICAgIGdldER5
bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgIC8qKgorICAgKiBQcm90
ZWN0ZWQgY29uc3RydWN0b3IKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNo
YXJhY3Rlckl0ZXJhdG9yKCk7CisgIC8qKgorICAgKiBQcm90ZWN0ZWQgbWVtYmVyIHRleHQKKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBjb25zdCBVQ2hhciogICAgICAgICAgICB0ZXh0
OworCit9OworCitVX05BTUVTUEFDRV9FTkQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9pY3UvdW5pY29kZS91Y2xlYW4uaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNsZWFuLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDlhMWU1MzkwNThjZGU4NWVmZDJhYTg0Y2I3MDdkMzc0MTc0MjVmZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNsZWFuLmgKQEAgLTAsMCAr
MSwyNTggQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29weXJpZ2h0IChDKSAyMDAx
LTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICAgICAgICAgICAgICAg
Q29ycG9yYXRpb24gYW5kIG90aGVycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVjbGVhbi5oCisqICAgZW5jb2Rpbmc6ICAgVVMt
QVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0Cisq
CisqICAgY3JlYXRlZCBvbjogMjAwMUp1bHkwNQorKiAgIGNyZWF0ZWQgYnk6IEdlb3JnZSBSaG90
ZW4KKyovCisKKyNpZm5kZWYgX19VQ0xFQU5fSF9fCisjZGVmaW5lIF9fVUNMRUFOX0hfXworCisj
aW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQ
STogSW5pdGlhbGl6ZSBhbmQgY2xlYW4gdXAgSUNVCisgKi8KKyAKKy8qKgorICogIEluaXRpYWxp
emUgSUNVLgorICoKKyAqICBVc2Ugb2YgdGhpcyBmdW5jdGlvbiBpcyBvcHRpb25hbC4gIEl0IGlz
IE9LIHRvIHNpbXBseSB1c2UgSUNVCisgKiAgc2VydmljZXMgYW5kIGZ1bmN0aW9ucyB3aXRob3V0
IGZpcnN0IGhhdmluZyBpbml0aWFsaXplZAorICogIElDVSBieSBjYWxsaW5nIHVfaW5pdCgpLgor
ICoKKyAqICB1X2luaXQoKSB3aWxsIGF0dGVtcHQgdG8gbG9hZCBzb21lIHBhcnQgb2YgSUNVJ3Mg
ZGF0YSwgYW5kIGlzCisgKiAgdXNlZnVsIGFzIGEgdGVzdCBmb3IgY29uZmlndXJhdGlvbiBvciBp
bnN0YWxsYXRpb24gcHJvYmxlbXMgdGhhdAorICogIGxlYXZlIHRoZSBJQ1UgZGF0YSBpbmFjY2Vz
c2libGUuICBBIHN1Y2Nlc3NmdWwgaW52b2NhdGlvbiBvZiB1X2luaXQoKQorICogIGRvZXMgbm90
LCBob3dldmVyLCBndWFyYW50ZWUgdGhhdCBhbGwgSUNVIGRhdGEgaXMgYWNjZXNzaWJsZS4KKyAq
CisgKiAgTXVsdGlwbGUgY2FsbHMgdG8gdV9pbml0KCkgY2F1c2Ugbm8gaGFybSwgYXNpZGUgZnJv
bSB0aGUgc21hbGwgYW1vdW50CisgKiAgb2YgdGltZSByZXF1aXJlZC4KKyAqCisgKiAgSW4gb2xk
IHZlcnNpb25zIG9mIElDVSwgdV9pbml0KCkgd2FzIHJlcXVpcmVkIGluIG11bHRpLXRocmVhZGVk
IGFwcGxpY2F0aW9ucworICogIHRvIGVuc3VyZSB0aGUgdGhyZWFkIHNhZmV0eSBvZiBJQ1UuICB1
X2luaXQoKSBpcyBubyBsb25nZXIgbmVlZGVkIGZvciB0aGlzIHB1cnBvc2UuCisgKgorICogQHBh
cmFtIHN0YXR1cyBBbiBJQ1UgVUVycm9yQ29kZSBwYXJhbWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxj
b2RlPk5VTEw8L2NvZGU+LgorICogICAgQW4gRXJyb3Igd2lsbCBiZSByZXR1cm5lZCBpZiBzb21l
IHJlcXVpcmVkIHBhcnQgb2YgSUNVIGRhdGEgY2FuIG5vdAorICogICAgYmUgbG9hZGVkIG9yIGlu
aXRpYWxpemVkLgorICogICAgVGhlIGZ1bmN0aW9uIHJldHVybnMgaW1tZWRpYXRlbHkgaWYgdGhl
IGlucHV0IGVycm9yIGNvZGUgaW5kaWNhdGVzIGEKKyAqICAgIGZhaWx1cmUsIGFzIHVzdWFsLgor
ICoKKyAqIEBzdGFibGUgSUNVIDIuNgorICovICAKK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyIAor
dV9pbml0KFVFcnJvckNvZGUgKnN0YXR1cyk7CisKKyNpZm5kZWYgVV9ISURFX1NZU1RFTV9BUEkK
Ky8qKgorICogQ2xlYW4gdXAgdGhlIHN5c3RlbSByZXNvdXJjZXMsIHN1Y2ggYXMgYWxsb2NhdGVk
IG1lbW9yeSBvciBvcGVuIGZpbGVzLAorICogdXNlZCBpbiBhbGwgSUNVIGxpYnJhcmllcy4gVGhp
cyB3aWxsIGZyZWUvZGVsZXRlIGFsbCBtZW1vcnkgb3duZWQgYnkgdGhlCisgKiBJQ1UgbGlicmFy
aWVzLCBhbmQgcmV0dXJuIHRoZW0gdG8gdGhlaXIgb3JpZ2luYWwgbG9hZCBzdGF0ZS4gQWxsIG9w
ZW4gSUNVCisgKiBpdGVtcyAoY29sbGF0b3JzLCByZXNvdXJjZSBidW5kbGVzLCBjb252ZXJ0ZXJz
LCBldGMuKSBtdXN0IGJlIGNsb3NlZCBiZWZvcmUKKyAqIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwg
b3RoZXJ3aXNlIElDVSBtYXkgbm90IGZyZWUgaXRzIGFsbG9jYXRlZCBtZW1vcnkKKyAqIChlLmcu
IGNsb3NlIHlvdXIgY29udmVydGVycyBhbmQgcmVzb3VyY2UgYnVuZGxlcyBiZWZvcmUgY2FsbGlu
ZyB0aGlzCisgKiBmdW5jdGlvbikuIEdlbmVyYWxseSwgdGhpcyBmdW5jdGlvbiBzaG91bGQgYmUg
Y2FsbGVkIG9uY2UganVzdCBiZWZvcmUKKyAqIGFuIGFwcGxpY2F0aW9uIGV4aXRzLiBGb3IgYXBw
bGljYXRpb25zIHRoYXQgZHluYW1pY2FsbHkgbG9hZCBhbmQgdW5sb2FkCisgKiB0aGUgSUNVIGxp
YnJhcmllcyAocmVsYXRpdmVseSB1bmNvbW1vbiksIHVfY2xlYW51cCgpIHNob3VsZCBiZSBjYWxs
ZWQKKyAqIGp1c3QgYmVmb3JlIHRoZSBsaWJyYXJ5IHVubG9hZC4KKyAqIDxwPgorICogdV9jbGVh
bnVwKCkgYWxzbyBjbGVhcnMgYW55IElDVSBoZWFwIGZ1bmN0aW9ucywgbXV0ZXggZnVuY3Rpb25z
IG9yCisgKiB0cmFjZSBmdW5jdGlvbnMgdGhhdCBtYXkgaGF2ZSBiZWVuIHNldCBmb3IgdGhlIHBy
b2Nlc3MuICAKKyAqIFRoaXMgaGFzIHRoZSBlZmZlY3Qgb2YgcmVzdG9yaW5nIElDVSB0byBpdHMg
aW5pdGlhbCBjb25kaXRpb24sIGJlZm9yZQorICogYW55IG9mIHRoZXNlIG92ZXJyaWRlIGZ1bmN0
aW9ucyB3ZXJlIGluc3RhbGxlZC4gIFJlZmVyIHRvCisgKiB1X3NldE1lbW9yeUZ1bmN0aW9ucygp
LCB1X3NldE11dGV4RnVuY3Rpb25zIGFuZCAKKyAqIHV0cmFjZV9zZXRGdW5jdGlvbnMoKS4gIElm
IElDVSBpcyB0byBiZSByZWluaXRpYWxpemVkIGFmdGVyIGFmdGVyCisgKiBjYWxsaW5nIHVfY2xl
YW51cCgpLCB0aGVzZSBydW50aW1lIG92ZXJyaWRlIGZ1bmN0aW9ucyB3aWxsIG5lZWQgdG8KKyAq
IGJlIHNldCB1cCBhZ2FpbiBpZiB0aGV5IGFyZSBzdGlsbCByZXF1aXJlZC4KKyAqIDxwPgorICog
dV9jbGVhbnVwKCkgaXMgbm90IHRocmVhZCBzYWZlLiAgQWxsIG90aGVyIHRocmVhZHMgc2hvdWxk
IHN0b3AgdXNpbmcgSUNVCisgKiBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgorICogPHA+
CisgKiBBbnkgb3BlbiBJQ1UgaXRlbXMgd2lsbCBiZSBsZWZ0IGluIGFuIHVuZGVmaW5lZCBzdGF0
ZSBieSB1X2NsZWFudXAoKSwKKyAqIGFuZCBhbnkgc3Vic2VxdWVudCBhdHRlbXB0IHRvIHVzZSBz
dWNoIGFuIGl0ZW0gd2lsbCBnaXZlIHVucHJlZGljdGFibGUKKyAqIHJlc3VsdHMuCisgKiA8cD4K
KyAqIEFmdGVyIGNhbGxpbmcgdV9jbGVhbnVwKCksIGFuIGFwcGxpY2F0aW9uIG1heSBjb250aW51
ZSB0byB1c2UgSUNVIGJ5CisgKiBjYWxsaW5nIHVfaW5pdCgpLiAgQW4gYXBwbGljYXRpb24gbXVz
dCBpbnZva2UgdV9pbml0KCkgZmlyc3QgZnJvbSBvbmUgc2luZ2xlCisgKiB0aHJlYWQgYmVmb3Jl
IGFsbG93aW5nIG90aGVyIHRocmVhZHMgY2FsbCB1X2luaXQoKS4gIEFsbCB0aHJlYWRzIGV4aXN0
aW5nCisgKiBhdCB0aGUgdGltZSBvZiB0aGUgZmlyc3QgdGhyZWFkJ3MgY2FsbCB0byB1X2luaXQo
KSBtdXN0IGFsc28gY2FsbAorICogdV9pbml0KCkgdGhlbXNlbHZlcyBiZWZvcmUgY29udGludWlu
ZyB3aXRoIG90aGVyIElDVSBvcGVyYXRpb25zLiAgCisgKiA8cD4KKyAqIFRoZSB1c2Ugb2YgdV9j
bGVhbnVwKCkganVzdCBiZWZvcmUgYW4gYXBwbGljYXRpb24gdGVybWluYXRlcyBpcyBvcHRpb25h
bCwKKyAqIGJ1dCBpdCBzaG91bGQgYmUgY2FsbGVkIG9ubHkgb25jZSBmb3IgcGVyZm9ybWFuY2Ug
cmVhc29ucy4gVGhlIHByaW1hcnkKKyAqIGJlbmVmaXQgaXMgdG8gZWxpbWluYXRlIHJlcG9ydHMg
b2YgbWVtb3J5IG9yIHJlc291cmNlIGxlYWtzIG9yaWdpbmF0aW5nCisgKiBpbiBJQ1UgY29kZSBm
cm9tIHRoZSByZXN1bHRzIGdlbmVyYXRlZCBieSBoZWFwIGFuYWx5c2lzIHRvb2xzLgorICogPHA+
CisgKiA8c3Ryb25nPlVzZSB0aGlzIGZ1bmN0aW9uIHdpdGggZ3JlYXQgY2FyZSE8L3N0cm9uZz4K
KyAqIDwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqIEBzeXN0ZW0KKyAqLworVV9TVEFC
TEUgdm9pZCBVX0VYUE9SVDIgCit1X2NsZWFudXAodm9pZCk7CisKKworLyoqCisgICogIFBvaW50
ZXIgdHlwZSBmb3IgYSB1c2VyIHN1cHBsaWVkIG1lbW9yeSBhbGxvY2F0aW9uIGZ1bmN0aW9uLgor
ICAqICBAcGFyYW0gY29udGV4dCB1c2VyIHN1cHBsaWVkIHZhbHVlLCBvYnRhaW5lZCBmcm9tIGZy
b20gdV9zZXRNZW1vcnlGdW5jdGlvbnMoKS4KKyAgKiAgQHBhcmFtIHNpemUgICAgVGhlIG51bWJl
ciBvZiBieXRlcyB0byBiZSBhbGxvY2F0ZWQKKyAgKiAgQHJldHVybiAgICAgICAgUG9pbnRlciB0
byB0aGUgbmV3bHkgYWxsb2NhdGVkIG1lbW9yeSwgb3IgTlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBm
YWlsZWQuCisgICogIEBzdGFibGUgSUNVIDIuOAorICAqICBAc3lzdGVtCisgICovCit0eXBlZGVm
IHZvaWQgKlVfQ0FMTENPTlYgVU1lbUFsbG9jRm4oY29uc3Qgdm9pZCAqY29udGV4dCwgc2l6ZV90
IHNpemUpOworLyoqCisgICogIFBvaW50ZXIgdHlwZSBmb3IgYSB1c2VyIHN1cHBsaWVkIG1lbW9y
eSByZS1hbGxvY2F0aW9uIGZ1bmN0aW9uLgorICAqICBAcGFyYW0gY29udGV4dCB1c2VyIHN1cHBs
aWVkIHZhbHVlLCBvYnRhaW5lZCBmcm9tIGZyb20gdV9zZXRNZW1vcnlGdW5jdGlvbnMoKS4KKyAg
KiAgQHBhcmFtIHNpemUgICAgVGhlIG51bWJlciBvZiBieXRlcyB0byBiZSBhbGxvY2F0ZWQKKyAg
KiAgQHJldHVybiAgICAgICAgUG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2NhdGVkIG1lbW9yeSwg
b3IgTlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQuCisgICogIEBzdGFibGUgSUNVIDIuOAor
ICAqICBAc3lzdGVtCisgICovCit0eXBlZGVmIHZvaWQgKlVfQ0FMTENPTlYgVU1lbVJlYWxsb2NG
bihjb25zdCB2b2lkICpjb250ZXh0LCB2b2lkICptZW0sIHNpemVfdCBzaXplKTsKKy8qKgorICAq
ICBQb2ludGVyIHR5cGUgZm9yIGEgdXNlciBzdXBwbGllZCBtZW1vcnkgZnJlZSAgZnVuY3Rpb24u
ICBCZWhhdmlvciBzaG91bGQgYmUKKyAgKiAgc2ltaWxhciB0aGUgc3RhbmRhcmQgQyBsaWJyYXJ5
IGZyZWUoKS4KKyAgKiAgQHBhcmFtIGNvbnRleHQgdXNlciBzdXBwbGllZCB2YWx1ZSwgb2J0YWlu
ZWQgZnJvbSBmcm9tIHVfc2V0TWVtb3J5RnVuY3Rpb25zKCkuCisgICogIEBwYXJhbSBtZW0gICAg
IFBvaW50ZXIgdG8gdGhlIG1lbW9yeSBibG9jayB0byBiZSByZXNpemVkCisgICogIEBwYXJhbSBz
aXplICAgIFRoZSBuZXcgc2l6ZSBmb3IgdGhlIGJsb2NrCisgICogIEByZXR1cm4gICAgICAgIFBv
aW50ZXIgdG8gdGhlIHJlc2l6ZWQgbWVtb3J5IGJsb2NrLCBvciBOVUxMIGlmIHRoZSByZXNpemlu
ZyBmYWlsZWQuCisgICogIEBzdGFibGUgSUNVIDIuOAorICAqICBAc3lzdGVtCisgICovCit0eXBl
ZGVmIHZvaWQgIFVfQ0FMTENPTlYgVU1lbUZyZWVGbiAoY29uc3Qgdm9pZCAqY29udGV4dCwgdm9p
ZCAqbWVtKTsKKworLyoqCisgKiAgU2V0IHRoZSBmdW5jdGlvbnMgdGhhdCBJQ1Ugd2lsbCB1c2Ug
Zm9yIG1lbW9yeSBhbGxvY2F0aW9uLgorICogIFVzZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIG9wdGlv
bmFsOyBieSBkZWZhdWx0ICh3aXRob3V0IHRoaXMgZnVuY3Rpb24pLCBJQ1Ugd2lsbAorICogIHVz
ZSB0aGUgc3RhbmRhcmQgQyBsaWJyYXJ5IG1hbGxvYygpIGFuZCBmcmVlKCkgZnVuY3Rpb25zLgor
ICogIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgdXNlZCB3aGVuIElDVSBpcyBpbiBhbiBpbml0
aWFsLCB1bnVzZWQgc3RhdGUsIGJlZm9yZQorICogIHVfaW5pdCgpIGhhcyBiZWVuIGNhbGxlZC4K
KyAqICBAcGFyYW0gY29udGV4dCBUaGlzIHBvaW50ZXIgdmFsdWUgd2lsbCBiZSBzYXZlZCwgYW5k
IHRoZW4gKGxhdGVyKSBwYXNzZWQgYXMKKyAqICAgICAgICAgICAgICAgICBhIHBhcmFtZXRlciB0
byB0aGUgbWVtb3J5IGZ1bmN0aW9ucyBlYWNoIHRpbWUgdGhleQorICogICAgICAgICAgICAgICAg
IGFyZSBjYWxsZWQuCisgKiAgQHBhcmFtIGEgICAgICAgUG9pbnRlciB0byBhIHVzZXItc3VwcGxp
ZWQgbWFsbG9jIGZ1bmN0aW9uLgorICogIEBwYXJhbSByICAgICAgIFBvaW50ZXIgdG8gYSB1c2Vy
LXN1cHBsaWVkIHJlYWxsb2MgZnVuY3Rpb24uCisgKiAgQHBhcmFtIGYgICAgICAgUG9pbnRlciB0
byBhIHVzZXItc3VwcGxpZWQgZnJlZSBmdW5jdGlvbi4KKyAqICBAcGFyYW0gc3RhdHVzICBSZWNl
aXZlcyBlcnJvciB2YWx1ZXMuCisgKiAgQHN0YWJsZSBJQ1UgMi44CisgKiAgQHN5c3RlbQorICov
ICAKK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyIAordV9zZXRNZW1vcnlGdW5jdGlvbnMoY29uc3Qg
dm9pZCAqY29udGV4dCwgVU1lbUFsbG9jRm4gKmEsIFVNZW1SZWFsbG9jRm4gKnIsIFVNZW1GcmVl
Rm4gKmYsIAorICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOworCisKKyNp
Zm5kZWYgVV9ISURFX0RFUFJFQ0FURURfQVBJCisvKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg
KgorICogRGVwcmVjYXRlZCBGdW5jdGlvbnMKKyAqCisgKiAgICBUaGUgZm9sbG93aW5nIGZ1bmN0
aW9ucyBmb3IgdXNlciBzdXBwbGllZCBtdXRleGVzIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkLgor
ICogICAgQW55IGF0dGVtcHQgdG8gdXNlIHRoZW0gd2lsbCByZXR1cm4gYSBVX1VOU1VQUE9SVEVE
X0VSUk9SLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioKKyAgKiBBbiBv
cGFxdWUgcG9pbnRlciB0eXBlIHRoYXQgcmVwcmVzZW50cyBhbiBJQ1UgbXV0ZXguCisgICogRm9y
IHVzZXItaW1wbGVtZW50ZWQgbXV0ZXhlcywgdGhlIHZhbHVlIHdpbGwgdHlwaWNhbGx5IHBvaW50
IHRvIGEKKyAgKiAgc3RydWN0IG9yIG9iamVjdCB0aGF0IGltcGxlbWVudHMgdGhlIG11dGV4Lgor
ICAqIEBkZXByZWNhdGVkIElDVSA1Mi4gVGhpcyB0eXBlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQu
CisgICogQHN5c3RlbQorICAqLwordHlwZWRlZiB2b2lkICpVTVRYOworCisvKioKKyAgKiAgRnVu
Y3Rpb24gUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3VwcGxpZWQgbXV0ZXggaW5pdGlhbGl6YXRp
b24gZnVuY3Rpb24uCisgICogIFRoZSB1c2VyLXN1cHBsaWVkIGZ1bmN0aW9uIHdpbGwgYmUgY2Fs
bGVkIGJ5IElDVSB3aGVuZXZlciBJQ1UgbmVlZHMgdG8gY3JlYXRlIGEKKyAgKiAgbmV3IG11dGV4
LiAgVGhlIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uIHNob3VsZCBjcmVhdGUgYSBtdXRleCwgYW5k
IHN0b3JlIGEgcG9pbnRlcgorICAqICB0byBzb21ldGhpbmcgdGhhdCB1bmlxdWVseSBpZGVudGlm
aWVzIHRoZSBtdXRleCBpbnRvIHRoZSBVTVRYIHRoYXQgaXMgc3VwcGxpZWQKKyAgKiAgYXMgYSBw
YXJhbXRlci4KKyAgKiAgQHBhcmFtIGNvbnRleHQgdXNlciBzdXBwbGllZCB2YWx1ZSwgb2J0YWlu
ZWQgZnJvbSBmcm9tIHVfc2V0TXV0ZXhGdW5jdGlvbnMoKS4KKyAgKiAgQHBhcmFtIG11dGV4ICAg
UmVjZWl2ZXMgYSBwb2ludGVyIHRoYXQgaWRlbnRpZmllcyB0aGUgbmV3IG11dGV4LgorICAqICAg
ICAgICAgICAgICAgICBUaGUgbXV0ZXggaW5pdCBmdW5jdGlvbiBtdXN0IHNldCB0aGUgVU1UWCB0
byBhIG5vbi1udWxsIHZhbHVlLiAgIAorICAqICAgICAgICAgICAgICAgICBTdWJzZXF1ZW50IGNh
bGxzIGJ5IElDVSB0byBsb2NrLCB1bmxvY2ssIG9yIGRlc3Ryb3kgYSBtdXRleCB3aWxsIAorICAq
ICAgICAgICAgICAgICAgICBpZGVudGlmeSB0aGUgbXV0ZXggYnkgdGhlIFVNVFggdmFsdWUuCisg
ICogIEBwYXJhbSBzdGF0dXMgIEVycm9yIHN0YXR1cy4gIFJlcG9ydCBlcnJvcnMgYmFjayB0byBJ
Q1UgYnkgc2V0dGluZyB0aGlzIHZhcmlhYmxlCisgICogICAgICAgICAgICAgICAgIHdpdGggYW4g
ZXJyb3IgY29kZS4KKyAgKiAgQGRlcHJlY2F0ZWQgSUNVIDUyLiBUaGlzIGZ1bmN0aW9uIGlzIG5v
IGxvbmdlciBzdXBwb3J0ZWQuCisgICogIEBzeXN0ZW0KKyAgKi8KK3R5cGVkZWYgdm9pZCBVX0NB
TExDT05WIFVNdHhJbml0Rm4gKGNvbnN0IHZvaWQgKmNvbnRleHQsIFVNVFggICptdXRleCwgVUVy
cm9yQ29kZSogc3RhdHVzKTsKKworCisvKioKKyAgKiAgRnVuY3Rpb24gUG9pbnRlciB0eXBlIGZv
ciBhIHVzZXIgc3VwcGxpZWQgbXV0ZXggZnVuY3Rpb25zLgorICAqICBPbmUgb2YgdGhlICB1c2Vy
LXN1cHBsaWVkIGZ1bmN0aW9ucyB3aXRoIHRoaXMgc2lnbmF0dXJlIHdpbGwgYmUgY2FsbGVkIGJ5
IElDVQorICAqICB3aGVuZXZlciBJQ1UgbmVlZHMgdG8gbG9jaywgdW5sb2NrLCBvciBkZXN0cm95
IGEgbXV0ZXguCisgICogIEBwYXJhbSBjb250ZXh0IHVzZXIgc3VwcGxpZWQgdmFsdWUsIG9idGFp
bmVkIGZyb20gZnJvbSB1X3NldE11dGV4RnVuY3Rpb25zKCkuCisgICogIEBwYXJhbSBtdXRleCAg
IHNwZWNpZnkgdGhlIG11dGV4IG9uIHdoaWNoIHRvIG9wZXJhdGUuCisgICogIEBkZXByZWNhdGVk
IElDVSA1Mi4gVGhpcyBmdW5jdGlvbiBpcyBubyBsb25nZXIgc3VwcG9ydGVkLgorICAqICBAc3lz
dGVtCisgICovCit0eXBlZGVmIHZvaWQgVV9DQUxMQ09OViBVTXR4Rm4gICAoY29uc3Qgdm9pZCAq
Y29udGV4dCwgVU1UWCAgKm11dGV4KTsKKworCisvKioKKyAgKiAgU2V0IHRoZSBmdW5jdGlvbnMg
dGhhdCBJQ1Ugd2lsbCB1c2UgZm9yIG11dGV4IG9wZXJhdGlvbnMKKyAgKiAgVXNlIG9mIHRoaXMg
ZnVuY3Rpb24gaXMgb3B0aW9uYWw7IGJ5IGRlZmF1bHQgKHdpdGhvdXQgdGhpcyBmdW5jdGlvbiks
IElDVSB3aWxsCisgICogIGRpcmVjdGx5IGFjY2VzcyBzeXN0ZW0gZnVuY3Rpb25zIGZvciBtdXRl
eCBvcGVyYXRpb25zCisgICogIFRoaXMgZnVuY3Rpb24gY2FuIG9ubHkgYmUgdXNlZCB3aGVuIElD
VSBpcyBpbiBhbiBpbml0aWFsLCB1bnVzZWQgc3RhdGUsIGJlZm9yZQorICAqICB1X2luaXQoKSBo
YXMgYmVlbiBjYWxsZWQuCisgICogIEBwYXJhbSBjb250ZXh0IFRoaXMgcG9pbnRlciB2YWx1ZSB3
aWxsIGJlIHNhdmVkLCBhbmQgdGhlbiAobGF0ZXIpIHBhc3NlZCBhcworICAqICAgICAgICAgICAg
ICAgICBhIHBhcmFtZXRlciB0byB0aGUgdXNlci1zdXBwbGllZCBtdXRleCBmdW5jdGlvbnMgZWFj
aCB0aW1lIHRoZXkKKyAgKiAgICAgICAgICAgICAgICAgYXJlIGNhbGxlZC4gCisgICogIEBwYXJh
bSBpbml0ICAgIFBvaW50ZXIgdG8gYSBtdXRleCBpbml0aWFsaXphdGlvbiBmdW5jdGlvbi4gIE11
c3QgYmUgbm9uLW51bGwuCisgICogIEBwYXJhbSBkZXN0cm95IFBvaW50ZXIgdG8gdGhlIG11dGV4
IGRlc3Ryb3kgZnVuY3Rpb24uICBNdXN0IGJlIG5vbi1udWxsLgorICAqICBAcGFyYW0gbG9jayAg
ICBwb2ludGVyIHRvIHRoZSBtdXRleCBsb2NrIGZ1bmN0aW9uLiAgTXVzdCBiZSBub24tbnVsbC4K
KyAgKiAgQHBhcmFtIHVubG9jayAgUG9pbnRlciB0byB0aGUgbXV0ZXggdW5sb2NrIGZ1bmN0aW9u
LiAgTXVzdCBiZSBub24tbnVsbC4KKyAgKiAgQHBhcmFtIHN0YXR1cyAgUmVjZWl2ZXMgZXJyb3Ig
dmFsdWVzLgorICAqICBAZGVwcmVjYXRlZCBJQ1UgNTIuIFRoaXMgZnVuY3Rpb24gaXMgbm8gbG9u
Z2VyIHN1cHBvcnRlZC4KKyAgKiAgQHN5c3RlbQorICAqLyAgCitVX0RFUFJFQ0FURUQgdm9pZCBV
X0VYUE9SVDIgCit1X3NldE11dGV4RnVuY3Rpb25zKGNvbnN0IHZvaWQgKmNvbnRleHQsIFVNdHhJ
bml0Rm4gKmluaXQsIFVNdHhGbiAqZGVzdHJveSwgVU10eEZuICpsb2NrLCBVTXR4Rm4gKnVubG9j
aywKKyAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworCisvKioKKyAg
KiAgUG9pbnRlciB0eXBlIGZvciBhIHVzZXIgc3VwcGxpZWQgYXRvbWljIGluY3JlbWVudCBvciBk
ZWNyZW1lbnQgZnVuY3Rpb24uCisgICogIEBwYXJhbSBjb250ZXh0IHVzZXIgc3VwcGxpZWQgdmFs
dWUsIG9idGFpbmVkIGZyb20gZnJvbSB1X3NldEF0b21pY0luY0RlY0Z1bmN0aW9ucygpLgorICAq
ICBAcGFyYW0gcCAgIFBvaW50ZXIgdG8gYSAzMiBiaXQgaW50IHRvIGJlIGluY3JlbWVudGVkIG9y
IGRlY3JlbWVudGVkCisgICogIEByZXR1cm4gICAgVGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSBh
ZnRlciB0aGUgaW5jIG9yIGRlYyBvcGVyYXRpb24uCisgICogIEBkZXByZWNhdGVkIElDVSA1Mi4g
VGhpcyBmdW5jdGlvbiBpcyBubyBsb25nZXIgc3VwcG9ydGVkLgorICAqICBAc3lzdGVtCisgICov
Cit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OViBVTXR4QXRvbWljRm4oY29uc3Qgdm9pZCAqY29u
dGV4dCwgaW50MzJfdCAqcCk7CisKKy8qKgorICogIFNldCB0aGUgZnVuY3Rpb25zIHRoYXQgSUNV
IHdpbGwgdXNlIGZvciBhdG9taWMgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgb2YgaW50MzJfdCB2
YWx1ZXMuCisgKiAgVXNlIG9mIHRoaXMgZnVuY3Rpb24gaXMgb3B0aW9uYWw7IGJ5IGRlZmF1bHQg
KHdpdGhvdXQgdGhpcyBmdW5jdGlvbiksIElDVSB3aWxsCisgKiAgdXNlIGl0cyBvd24gaW50ZXJu
YWwgaW1wbGVtZW50YXRpb24gb2YgYXRvbWljIGluY3JlbWVudC9kZWNyZW1lbnQuCisgKiAgVGhp
cyBmdW5jdGlvbiBjYW4gb25seSBiZSB1c2VkIHdoZW4gSUNVIGlzIGluIGFuIGluaXRpYWwsIHVu
dXNlZCBzdGF0ZSwgYmVmb3JlCisgKiAgdV9pbml0KCkgaGFzIGJlZW4gY2FsbGVkLgorICogIEBw
YXJhbSBjb250ZXh0IFRoaXMgcG9pbnRlciB2YWx1ZSB3aWxsIGJlIHNhdmVkLCBhbmQgdGhlbiAo
bGF0ZXIpIHBhc3NlZCBhcworICogICAgICAgICAgICAgICAgIGEgcGFyYW1ldGVyIHRvIHRoZSBp
bmNyZW1lbnQgYW5kIGRlY3JlbWVudCBmdW5jdGlvbnMgZWFjaCB0aW1lIHRoZXkKKyAqICAgICAg
ICAgICAgICAgICBhcmUgY2FsbGVkLiAgVGhpcyBmdW5jdGlvbiBjYW4gb25seSBiZSBjYWxsZWQg
CisgKiAgQHBhcmFtIGluYyAgICAgUG9pbnRlciB0byBhIGZ1bmN0aW9uIHRvIGRvIGFuIGF0b21p
YyBpbmNyZW1lbnQgb3BlcmF0aW9uLiAgTXVzdCBiZSBub24tbnVsbC4KKyAqICBAcGFyYW0gZGVj
ICAgICBQb2ludGVyIHRvIGEgZnVuY3Rpb24gdG8gZG8gYW4gYXRvbWljIGRlY3JlbWVudCBvcGVy
YXRpb24uICBNdXN0IGJlIG5vbi1udWxsLgorICogIEBwYXJhbSBzdGF0dXMgIFJlY2VpdmVzIGVy
cm9yIHZhbHVlcy4KKyAqICBAZGVwcmVjYXRlZCBJQ1UgNTIuIFRoaXMgZnVuY3Rpb24gaXMgbm8g
bG9uZ2VyIHN1cHBvcnRlZC4KKyAqICBAc3lzdGVtCisgKi8gIAorVV9ERVBSRUNBVEVEIHZvaWQg
VV9FWFBPUlQyIAordV9zZXRBdG9taWNJbmNEZWNGdW5jdGlvbnMoY29uc3Qgdm9pZCAqY29udGV4
dCwgVU10eEF0b21pY0ZuICppbmMsIFVNdHhBdG9taWNGbiAqZGVjLAorICAgICAgICAgICAgICAg
ICAgICBVRXJyb3JDb2RlICpzdGF0dXMpOworCisjZW5kaWYgIC8qIFVfSElERV9ERVBSRUNBVEVE
X0FQSSAqLworI2VuZGlmICAvKiBVX0hJREVfU1lTVEVNX0FQSSAqLworCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaCBiL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvdWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWU0NjYzMGQ1Mzk4ZDgyNzM4ZDFkNjFmZmM0ZDJj
OTE0ZThjNjhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91ZGF0
YS5oCkBAIC0wLDAgKzEsNDMwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAg
Q29weXJpZ2h0IChDKSAxOTk5LTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMK
KyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVkYXRhLmgKKyogICBlbmNvZGlu
ZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0
aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0MjUKKyogICBjcmVhdGVkIGJ5OiBNYXJr
dXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBfX1VEQVRBX0hfXworI2RlZmluZSBfX1VEQVRB
X0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2xv
Y2FscG9pbnRlci5oIgorCitVX0NERUNMX0JFR0lOCisKKy8qKgorICogXGZpbGUKKyAqIFxicmll
ZiBDIEFQSTogRGF0YSBsb2FkaW5nIGludGVyZmFjZQorICoKKyAqIDxoMj5JbmZvcm1hdGlvbiBh
Ym91dCBkYXRhIGxvYWRpbmcgaW50ZXJmYWNlPC9oMj4KKyAqCisgKiBUaGlzIEFQSSBpcyB1c2Vk
IHRvIGZpbmQgYW5kIGVmZmljaWVudGx5IGxvYWQgZGF0YSBmb3IgSUNVIGFuZCBhcHBsaWNhdGlv
bnMKKyAqIHVzaW5nIElDVS4gSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQg
c3BlY2lmaWVzIGEgZGF0YSB0eXBlIGFuZAorICogbmFtZSB0byBmaW5kIGFuZCBsb2FkIHRoZSBk
YXRhLiBOb3JtYWxseSB0aGlzIEFQSSBpcyB1c2VkIGJ5IG90aGVyIElDVSBBUElzCisgKiB0byBs
b2FkIHJlcXVpcmVkIGRhdGEgb3V0IG9mIHRoZSBJQ1UgZGF0YSBsaWJyYXJ5LCBidXQgaXQgY2Fu
IGJlIHVzZWQgdG8KKyAqIGxvYWQgZGF0YSBvdXQgb2Ygb3RoZXIgcGxhY2VzLgorICoKKyAqIFNl
ZSB0aGUgVXNlciBHdWlkZSBEYXRhIE1hbmFnZW1lbnQgY2hhcHRlci4KKyAqLworIAorI2lmbmRl
ZiBVX0hJREVfSU5URVJOQUxfQVBJCisvKioKKyAqIENoYXJhY3RlciB1c2VkIHRvIHNlcGFyYXRl
IHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAorICogQGludGVybmFsIElDVSAzLjAKKyAq
LworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SICctJworCisvKioKKyAqIFN0cmluZyB1c2VkIHRv
IHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAorICogQGludGVybmFsIElD
VSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SX1NUUklORyAiLSIKKworLyoqCisg
KiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYXJ0cyBvZiBlbnRyeSBuYW1lcworICogQGlu
dGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfRU5UUllfU0VQX0NIQVIgJy8nCisK
Ky8qKgorICogU3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgcGFydHMgb2YgZW50cnkgbmFtZXMKKyAq
IEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX0VOVFJZX1NFUF9TVFJJTkcg
Ii8iCisKKy8qKgorICogQWxpYXMgZm9yIHN0YW5kYXJkIElDVSBkYXRhIAorICogQGludGVybmFs
IElDVSAzLjAKKyAqLworI2RlZmluZSBVX0lDVURBVEFfQUxJQVMgIklDVURBVEEiCisKKyNlbmRp
ZiAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKy8qKgorICogVURhdGFJbmZvIGNvbnRhaW5z
IHRoZSBwcm9wZXJ0aWVzIGFib3V0IHRoZSByZXF1ZXN0ZWQgZGF0YS4KKyAqIFRoaXMgaXMgbWV0
YSBkYXRhLgorICoKKyAqIDxwPlRoaXMgc3RydWN0dXJlIG1heSBncm93IGluIHRoZSBmdXR1cmUs
IGluZGljYXRlZCBieSB0aGUKKyAqIDxjb2RlPnNpemU8L2NvZGU+IGZpZWxkLjwvcD4KKyAqCisg
KiA8cD5JQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAx
Ni1hbGlnbmVkLgorICogVGhlIFVEYXRhSW5mbyBzdHJ1Y3QgYmVnaW5zIDQgYnl0ZXMgYWZ0ZXIg
dGhlIHN0YXJ0IG9mIHRoZSBkYXRhIGl0ZW0sCisgKiBzbyBpdCBpcyA0LWFsaWduZWQuCisgKgor
ICogPHA+VGhlIHBsYXRmb3JtIGRhdGEgcHJvcGVydHkgZmllbGRzIGhlbHAgZGV0ZXJtaW5lIGlm
IGEgZGF0YQorICogZmlsZSBjYW4gYmUgZWZmaWNpZW50bHkgdXNlZCBvbiBhIGdpdmVuIG1hY2hp
bmUuCisgKiBUaGUgcGFydGljdWxhciBmaWVsZHMgYXJlIG9mIGltcG9ydGFuY2Ugb25seSBpZiB0
aGUgZGF0YQorICogaXMgYWZmZWN0ZWQgYnkgdGhlIHByb3BlcnRpZXMgLSBpZiB0aGVyZSBpcyBp
bnRlZ2VyIGRhdGEKKyAqIHdpdGggd29yZCBzaXplcyA+IDEgYnl0ZSwgY2hhciogdGV4dCwgb3Ig
VUNoYXIqIHRleHQuPC9wPgorICoKKyAqIDxwPlRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIDxj
b2RlPnVkYXRhX29wZW5bQ2hvaWNlXSgpPC9jb2RlPgorICogZnVuY3Rpb25zIG1heSByZWplY3Qg
ZGF0YSBiYXNlZCBvbiB0aGUgdmFsdWUgaW4gPGNvZGU+aXNCaWdFbmRpYW48L2NvZGU+LgorICog
Tm8gb3RoZXIgZmllbGQgaXMgdXNlZCBieSB0aGUgPGNvZGU+dWRhdGE8L2NvZGU+IEFQSSBpbXBs
ZW1lbnRhdGlvbi48L3A+CisgKgorICogPHA+VGhlIDxjb2RlPmRhdGFGb3JtYXQ8L2NvZGU+IG1h
eSBiZSB1c2VkIHRvIGlkZW50aWZ5CisgKiB0aGUga2luZCBvZiBkYXRhLCBlLmcuIGEgY29udmVy
dGVyIHRhYmxlLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+Zm9ybWF0VmVyc2lvbjwvY29kZT4g
ZmllbGQgc2hvdWxkIGJlIHVzZWQgdG8KKyAqIG1ha2Ugc3VyZSB0aGF0IHRoZSBmb3JtYXQgY2Fu
IGJlIGludGVycHJldGVkLgorICogSXQgbWF5IGJlIGEgZ29vZCBpZGVhIHRvIGNoZWNrIG9ubHkg
Zm9yIHRoZSBvbmUgb3IgdHdvIGhpZ2hlc3QKKyAqIG9mIHRoZSB2ZXJzaW9uIGVsZW1lbnRzIHRv
IGFsbG93IHRoZSBkYXRhIG1lbW9yeSB0bworICogZ2V0IG1vcmUgb3Igc29tZXdoYXQgcmVhcnJh
bmdlZCBjb250ZW50cywgZm9yIGFzIGxvbmcKKyAqIGFzIHRoZSB1c2luZyBjb2RlIGNhbiBzdGls
bCBpbnRlcnByZXQgdGhlIG9sZGVyIGNvbnRlbnRzLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+
ZGF0YVZlcnNpb248L2NvZGU+IGZpZWxkIGlzIGludGVuZGVkIHRvIGJlIGEKKyAqIGNvbW1vbiBw
bGFjZSB0byBzdG9yZSB0aGUgc291cmNlIHZlcnNpb24gb2YgdGhlIGRhdGE7CisgKiBmb3IgZGF0
YSBmcm9tIHRoZSBVbmljb2RlIGNoYXJhY3RlciBkYXRhYmFzZSwgdGhpcyBjb3VsZAorICogcmVm
bGVjdCB0aGUgVW5pY29kZSB2ZXJzaW9uLjwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAq
LwordHlwZWRlZiBzdHJ1Y3QgeworICAgIC8qKiBzaXplb2YoVURhdGFJbmZvKQorICAgICAqICBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50MTZfdCBzaXplOworCisgICAgLyoqIHVudXNlZCwg
c2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDE2X3QgcmVzZXJ2
ZWRXb3JkOworCisgICAgLyogcGxhdGZvcm0gZGF0YSBwcm9wZXJ0aWVzICovCisgICAgLyoqIDAg
Zm9yIGxpdHRsZS1lbmRpYW4gbWFjaGluZSwgMSBmb3IgYmlnLWVuZGlhbgorICAgICAqICBAc3Rh
YmxlIElDVSAyLjAgKi8KKyAgICB1aW50OF90IGlzQmlnRW5kaWFuOworCisgICAgLyoqIHNlZSBV
X0NIQVJTRVRfRkFNSUxZIHZhbHVlcyBpbiB1dHlwZXMuaCAKKyAgICAgKiAgQHN0YWJsZSBJQ1Ug
Mi4wKi8KKyAgICB1aW50OF90IGNoYXJzZXRGYW1pbHk7CisKKyAgICAvKiogc2l6ZW9mKFVDaGFy
KSwgb25lIG9mIHsgMSwgMiwgNCB9IAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVp
bnQ4X3Qgc2l6ZW9mVUNoYXI7CisKKyAgICAvKiogdW51c2VkLCBzZXQgdG8gMCAKKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHJlc2VydmVkQnl0ZTsKKworICAgIC8qKiBk
YXRhIGZvcm1hdCBpZGVudGlmaWVyIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVp
bnQ4X3QgZGF0YUZvcm1hdFs0XTsKKworICAgIC8qKiB2ZXJzaW9uczogWzBdIG1ham9yIFsxXSBt
aW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAg
IHVpbnQ4X3QgZm9ybWF0VmVyc2lvbls0XTsKKworICAgIC8qKiB2ZXJzaW9uczogWzBdIG1ham9y
IFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAq
LworICAgIHVpbnQ4X3QgZGF0YVZlcnNpb25bNF07Cit9IFVEYXRhSW5mbzsKKworLyogQVBJIGZv
ciByZWFkaW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0qLworCisvKioKKyAqIEZvcndhcmQgZGVjbGFyYXRpb24gb2YgdGhlIGRhdGEg
bWVtb3J5IHR5cGUuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgVURh
dGFNZW1vcnkgVURhdGFNZW1vcnk7CisKKy8qKgorICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHVk
YXRhX29wZW5DaG9pY2UoKS4KKyAqIEBwYXJhbSBjb250ZXh0IHBhcmFtZXRlciBwYXNzZWQgaW50
byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICogQHBhcmFtIHR5cGUgVGhlIHR5
cGUgb2YgdGhlIGRhdGEgYXMgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9j
b2RlPi4KKyAqICAgICAgICAgICAgIEl0IG1heSBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEBw
YXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBpbnRvIDxjb2RlPnVkYXRh
X29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiBAcGFyYW0gcEluZm8gQSBwb2ludGVyIHRvIHRoZSA8
Y29kZT5VRGF0YUluZm88L2NvZGU+IHN0cnVjdHVyZQorICogICAgICAgICAgICAgIG9mIGRhdGEg
dGhhdCBoYXMgYmVlbiBsb2FkZWQgYW5kIHdpbGwgYmUgcmV0dXJuZWQKKyAqICAgICAgICAgICAg
ICBieSA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+IGlmIHRoaXMgZnVuY3Rpb24KKyAq
ICAgICAgICAgICAgICByZXR1cm5zIDxjb2RlPlRSVUU8L2NvZGU+LgorICogQHJldHVybiBUUlVF
IGlmIHRoZSBjdXJyZW50IGRhdGEgbWVtb3J5IGlzIGFjY2VwdGFibGUKKyAqIEBzdGFibGUgSUNV
IDIuMAorICovCit0eXBlZGVmIFVCb29sIFVfQ0FMTENPTlYKK1VEYXRhTWVtb3J5SXNBY2NlcHRh
YmxlKHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp0
eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVURh
dGFJbmZvICpwSW5mbyk7CisKKworLyoqCisgKiBDb252ZW5pZW5jZSBmdW5jdGlvbi4KKyAqIFRo
aXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgYXMgPGNvZGU+dWRhdGFfb3BlbkNob2ljZTwvY29k
ZT4KKyAqIGV4Y2VwdCB0aGF0IGFueSBkYXRhIHRoYXQgbWF0Y2hlcyB0aGUgdHlwZSBhbmQgbmFt
ZQorICogaXMgYXNzdW1lZCB0byBiZSBhY2NlcHRhYmxlLgorICogQHBhcmFtIHBhdGggU3BlY2lm
aWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFzZW5hbWUgZm9yIHRoZQorICogICAgICAg
ICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0uCisgKiAgICAgICAg
ICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRhdGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0
cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxvYWRlZC4KKyAqICAg
ICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBidW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0
eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVyc2lvbiB0YWJsZXMgd2l0aCB0eXBlICJj
bnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwvY29kZT4gb3IgZW1w
dHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0
aGUgZGF0YS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIEFuIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRl
ci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRl
ciAoaGFuZGxlKSB0byBhIGRhdGEgbWVtb3J5IG9iamVjdCwgb3IgPGNvZGU+TlVMTDwvY29kZT4K
KyAqICAgICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzLiBDYWxsIDxjb2RlPnVkYXRhX2dldE1lbW9y
eSgpPC9jb2RlPgorICogICAgICAgICB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0
YS4KKyAqCisgKiBAc2VlIHVkYXRhX29wZW5DaG9pY2UKKyAqIEBzdGFibGUgSUNVIDIuMAorICov
CitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRhdGFfb3Blbihjb25zdCBjaGFy
ICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICBV
RXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBEYXRhIGxvYWRpbmcgZnVuY3Rpb24u
CisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZmluZCBhbmQgbG9hZCBlZmZpY2llbnRseSBk
YXRhIGZvcgorICogSUNVIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgSUNVLgorICogSXQgcHJvdmlk
ZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgYWxsb3dzIHRvIHNwZWNpZnkgYSBkYXRhCisg
KiB0eXBlIGFuZCBuYW1lIHRvIGZpbmQgYW5kIGxvYWQgdGhlIGRhdGEuCisgKgorICogPHA+VGhl
IGltcGxlbWVudGF0aW9uIGRlcGVuZHMgb24gcGxhdGZvcm0gcHJvcGVydGllcyBhbmQgdXNlciBw
cmVmZXJlbmNlcworICogYW5kIG1heSBpbnZvbHZlIGxvYWRpbmcgc2hhcmVkIGxpYnJhcmllcyAo
RExMcyksIG1hcHBpbmcKKyAqIGZpbGVzIGludG8gbWVtb3J5LCBvciBmb3BlbigpL2ZyZWFkKCkg
ZmlsZXMuCisgKiBJdCBtYXkgYWxzbyBpbnZvbHZlIHVzaW5nIHN0YXRpYyBtZW1vcnkgb3IgZGF0
YWJhc2UgcXVlcmllcyBldGMuCisgKiBTZXZlcmFsIG9yIGFsbCBkYXRhIGl0ZW1zIG1heSBiZSBj
b21iaW5lZCBpbnRvIG9uZSBlbnRpdHkKKyAqIChETEwsIG1lbW9yeS1tYXBwYWJsZSBmaWxlKS48
L3A+CisgKgorICogPHA+VGhlIGRhdGEgaXMgYWx3YXlzIHByZWNlZGVkIGJ5IGEgaGVhZGVyIHRo
YXQgaW5jbHVkZXMKKyAqIGEgPGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1Y3R1cmUuCisgKiBU
aGUgY2FsbGVyJ3MgPGNvZGU+aXNBY2NlcHRhYmxlKCk8L2NvZGU+IGZ1bmN0aW9uIGlzIGNhbGxl
ZCB0byBtYWtlCisgKiBzdXJlIHRoYXQgdGhlIGRhdGEgaXMgdXNlZnVsLiBJdCBtYXkgYmUgY2Fs
bGVkIHNldmVyYWwgdGltZXMgaWYgaXQKKyAqIHJlamVjdHMgdGhlIGRhdGEgYW5kIHRoZXJlIGlz
IG1vcmUgdGhhbiBvbmUgbG9jYXRpb24gd2l0aCBkYXRhCisgKiBtYXRjaGluZyB0aGUgdHlwZSBh
bmQgbmFtZS48L3A+CisgKgorICogPHA+SWYgPGNvZGU+cGF0aD09TlVMTDwvY29kZT4sIHRoZW4g
SUNVIGRhdGEgaXMgbG9hZGVkLgorICogT3RoZXJ3aXNlLCBpdCBpcyBzZXBhcmF0ZWQgaW50byBh
IGJhc2VuYW1lIGFuZCBhIGJhc2VuYW1lLWxlc3MgZGlyZWN0b3J5IHN0cmluZy4KKyAqIFRoZSBi
YXNlbmFtZSBpcyB1c2VkIGFzIHRoZSBkYXRhIHBhY2thZ2UgbmFtZSwgYW5kIHRoZSBkaXJlY3Rv
cnkgaXMKKyAqIGxvZ2ljYWxseSBwcmVwZW5kZWQgdG8gdGhlIElDVSBkYXRhIGRpcmVjdG9yeSBz
dHJpbmcuPC9wPgorICoKKyAqIDxwPkZvciBkZXRhaWxzIGFib3V0IElDVSBkYXRhIGxvYWRpbmcg
c2VlIHRoZSBVc2VyIEd1aWRlCisgKiBEYXRhIE1hbmFnZW1lbnQgY2hhcHRlci4gKGh0dHA6Ly9p
Y3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL2ljdWRhdGEuaHRtbCk8L3A+CisgKgorICogQHBhcmFt
IHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFzZW5hbWUgZm9yIHRo
ZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0u
CisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRhdGEuCisgKiBAcGFy
YW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxv
YWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBidW5kbGVzIGFyZSBs
b2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVyc2lvbiB0YWJsZXMg
d2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwv
Y29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0
aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBpc0FjY2VwdGFibGUgVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRoYXQgbG9hZGVkIGRhdGEKKyAqICAgICAgICAgICAgICAg
ICAgICAgaXMgdXNlZnVsIGZvciB0aGUgY2xpZW50IGNvZGUuIElmIGl0IHJldHVybnMgRkFMU0UK
KyAqICAgICAgICAgICAgICAgICAgICAgZm9yIGFsbCBkYXRhIGl0ZW1zLCB0aGVuIDxjb2RlPnVk
YXRhX29wZW5DaG9pY2UoKTwvY29kZT4KKyAqICAgICAgICAgICAgICAgICAgICAgd2lsbCByZXR1
cm4gd2l0aCBhbiBlcnJvci4KKyAqIEBwYXJhbSBjb250ZXh0IEFyYml0cmFyeSBwYXJhbWV0ZXIg
dG8gYmUgcGFzc2VkIGludG8gaXNBY2NlcHRhYmxlLgorICogQHBhcmFtIHBFcnJvckNvZGUgQW4g
SUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJdCBtdXN0IG5vdCBiZSA8Y29kZT5OVUxMPC9jb2Rl
Pi4KKyAqIEByZXR1cm4gQSBwb2ludGVyIChoYW5kbGUpIHRvIGEgZGF0YSBtZW1vcnkgb2JqZWN0
LCBvciA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAgICBpZiBhbiBlcnJvciBvY2N1cnMuIENh
bGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+CisgKiAgICAgICAgIHRvIGdldCBhIHBv
aW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RB
QkxFIFVEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1ZGF0YV9vcGVuQ2hvaWNlKGNvbnN0IGNoYXIg
KnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAg
ICAgIFVEYXRhTWVtb3J5SXNBY2NlcHRhYmxlICppc0FjY2VwdGFibGUsIHZvaWQgKmNvbnRleHQs
CisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENs
b3NlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgdG8g
YWxsb3cgdGhlIHN5c3RlbSB0bworICogcmVsZWFzZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRo
IHRoaXMgZGF0YSBtZW1vcnkuCisgKiBAcGFyYW0gcERhdGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBt
ZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VY
UE9SVDIKK3VkYXRhX2Nsb3NlKFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKyNpZiBVX1NIT1dfQ1BM
VVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFxjbGFzcyBMb2NhbFVE
YXRhTWVtb3J5UG9pbnRlcgorICogIlNtYXJ0IHBvaW50ZXIiIGNsYXNzLCBjbG9zZXMgYSBVRGF0
YU1lbW9yeSB2aWEgdWRhdGFfY2xvc2UoKS4KKyAqIEZvciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBM
b2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKgorICogQHNlZSBMb2NhbFBvaW50ZXJCYXNl
CisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0YWJsZSBJQ1UgNC40CisgKi8KK1VfREVGSU5F
X0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVEYXRhTWVtb3J5UG9pbnRlciwgVURhdGFNZW1vcnks
IHVkYXRhX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZgorCisvKioKKyAqIEdl
dCB0aGUgcG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEgaW5zaWRlIHRoZSBkYXRhIG1lbW9yeS4K
KyAqIFRoZSBkYXRhIGlzIHJlYWQtb25seS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxl
YXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICoKKyAqIEBwYXJhbSBw
RGF0YSBUaGUgcG9pbnRlciB0byBkYXRhIG1lbW9yeSBvYmplY3QKKyAqIEBzdGFibGUgSUNVIDIu
MAorICovCitVX1NUQUJMRSBjb25zdCB2b2lkICogVV9FWFBPUlQyCit1ZGF0YV9nZXRNZW1vcnko
VURhdGFNZW1vcnkgKnBEYXRhKTsKKworLyoqCisgKiBHZXQgdGhlIGluZm9ybWF0aW9uIGZyb20g
dGhlIGRhdGEgbWVtb3J5IGhlYWRlci4KKyAqIFRoaXMgYWxsb3dzIHRvIGdldCBhY2Nlc3MgdG8g
dGhlIGhlYWRlciBjb250YWluaW5nCisgKiBwbGF0Zm9ybSBkYXRhIHByb3BlcnRpZXMgZXRjLiB3
aGljaCBpcyBub3QgcGFydCBvZgorICogdGhlIGRhdGEgaXRzZWxmIGFuZCBjYW4gdGhlcmVmb3Jl
IG5vdCBiZSBhY2Nlc3NlZAorICogdmlhIHRoZSBwb2ludGVyIHRoYXQgPGNvZGU+dWRhdGFfZ2V0
TWVtb3J5KCk8L2NvZGU+IHJldHVybnMuCisgKgorICogQHBhcmFtIHBEYXRhIHBvaW50ZXIgdG8g
dGhlIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHBhcmFtIHBJbmZvIHBvaW50ZXIgdG8gYSBVRGF0
YUluZm8gb2JqZWN0OworICogICAgICAgICAgICAgIGl0cyA8Y29kZT5zaXplPC9jb2RlPiBmaWVs
ZCBtdXN0IGJlIHNldCBjb3JyZWN0bHksCisgKiAgICAgICAgICAgICAgdHlwaWNhbGx5IHRvIDxj
b2RlPnNpemVvZihVRGF0YUluZm8pPC9jb2RlPi4KKyAqCisgKiA8Y29kZT4qcEluZm88L2NvZGU+
IHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIFVEYXRhSW5mbyBzdHJ1Y3R1cmUKKyAqIGluIHRoZSBk
YXRhIG1lbW9yeSBvYmplY3QuIElmIHRoaXMgc3RydWN0dXJlIGlzIHNtYWxsZXIgdGhhbgorICog
PGNvZGU+cEluZm8tPnNpemU8L2NvZGU+LCB0aGVuIHRoZSA8Y29kZT5zaXplPC9jb2RlPiB3aWxs
IGJlCisgKiBhZGp1c3RlZCBhbmQgb25seSBwYXJ0IG9mIHRoZSBzdHJ1Y3R1cmUgd2lsbCBiZSBm
aWxsZWQuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIK
K3VkYXRhX2dldEluZm8oVURhdGFNZW1vcnkgKnBEYXRhLCBVRGF0YUluZm8gKnBJbmZvKTsKKwor
LyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNVIGRhdGEgbG9hZGlu
ZyBwcm9jZXNzIGFuZAorICogYWxsb3dzIHlvdSB0byBmb3JjZSBJQ1UncyBzeXN0ZW0gZGF0YSB0
byBjb21lIG91dCBvZiBhIHVzZXItc3BlY2lmaWVkCisgKiBhcmVhIGluIG1lbW9yeS4KKyAqCisg
KiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1h
bGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL2ljdWRhdGEK
KyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBpcyB0aGF0IG9mIHRoZSBpY3UgY29tbW9u
IGRhdGEgZmlsZSwgYXMgaXMKKyAqIGdlbmVyYXRlZCBieSB0aGUgcGtnZGF0YSB0b29sIHdpdGgg
bW9kZT1jb21tb24gb3IgbW9kZT1kbGwuCisgKiBZb3UgY2FuIHJlYWQgaW4gYSB3aG9sZSBjb21t
b24gbW9kZSBmaWxlIGFuZCBwYXNzIHRoZSBhZGRyZXNzIHRvIHRoZSBzdGFydCBvZiB0aGUKKyAq
IGRhdGEsIG9yICh3aXRoIHRoZSBhcHByb3ByaWF0ZSBsaW5rIG9wdGlvbnMpIHBhc3MgaW4gdGhl
IHBvaW50ZXIgdG8KKyAqIHRoZSBkYXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVkIGZyb20gYSBkbGwg
YnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0sCisgKiBhcyBzaG93biBpbiB0aGlzIGNvZGU6CisgKgor
ICogICAgICAgZXh0ZXJuIGNvbnN0IGNoYXIgVV9JTVBPUlQgVV9JQ1VEQVRBX0VOVFJZX1BPSU5U
IFtdOworICogICAgICAgIC8vIFVfSUNVREFUQV9FTlRSWV9QT0lOVCBpcyBzYW1lIGFzIGVudHJ5
IHBvaW50IHNwZWNpZmllZCB0byBwa2dkYXRhIHRvb2wKKyAqICAgICAgIFVFcnJvckNvZGUgIHN0
YXR1cyA9IFVfWkVST19FUlJPUjsKKyAqCisgKiAgICAgICB1ZGF0YV9zZXRDb21tb25EYXRhKCZV
X0lDVURBVEFfRU5UUllfUE9JTlQsICZzdGF0dXMpOworICoKKyAqIEl0IGlzIGltcG9ydGFudCB0
aGF0IHRoZSBkZWNsYXJhdGlvbiBiZSBhcyBhYm92ZS4gVGhlIGVudHJ5IHBvaW50CisgKiBtdXN0
IG5vdCBiZSBkZWNsYXJlZCBhcyBhbiBleHRlcm4gdm9pZCouCisgKgorICogU3RhcnRpbmcgd2l0
aCBJQ1UgNC40LCBpdCBpcyBwb3NzaWJsZSB0byBzZXQgc2V2ZXJhbCBkYXRhIHBhY2thZ2VzLAor
ICogb25lIHBlciBjYWxsIHRvIHRoaXMgZnVuY3Rpb24uCisgKiB1ZGF0YV9vcGVuKCkgd2lsbCBs
b29rIGZvciBkYXRhIGluIHRoZSBtdWx0aXBsZSBkYXRhIHBhY2thZ2VzIGluIHRoZSBvcmRlcgor
ICogaW4gd2hpY2ggdGhleSB3ZXJlIHNldC4KKyAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGlua2Vk
LWluIG9yIGRlZmF1bHQtbmFtZSBJQ1UgLmRhdGEgcGFja2FnZSBpbiB0aGUKKyAqIHNlYXJjaCBs
aXN0IGRlcGVuZHMgb24gd2hlbiB0aGUgZmlyc3QgZGF0YSBpdGVtIGlzIGxvYWRlZCB0aGF0IGlz
IG5vdCBjb250YWluZWQKKyAqIGluIHRoZSBhbHJlYWR5IGV4cGxpY2l0bHkgc2V0IHBhY2thZ2Vz
LgorICogSWYgZGF0YSB3YXMgbG9hZGVkIGltcGxpY2l0bHkgYmVmb3JlIHRoZSBmaXJzdCBjYWxs
IHRvIHRoaXMgZnVuY3Rpb24KKyAqIChmb3IgZXhhbXBsZSwgdmlhIG9wZW5pbmcgYSBjb252ZXJ0
ZXIsIGNvbnN0cnVjdGluZyBhIFVuaWNvZGVTdHJpbmcKKyAqIGZyb20gZGVmYXVsdC1jb2RlcGFn
ZSBkYXRhLCB1c2luZyBmb3JtYXR0aW5nIG9yIGNvbGxhdGlvbiBBUElzLCBldGMuKSwKKyAqIHRo
ZW4gdGhlIGRlZmF1bHQgZGF0YSB3aWxsIGJlIGZpcnN0IGluIHRoZSBsaXN0LgorICoKKyAqIFRo
aXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVjdCBvbiBhcHBsaWNhdGlvbiAobm9uIElDVSkgZGF0YS4g
IFNlZSB1ZGF0YV9zZXRBcHBEYXRhKCkKKyAqIGZvciBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgZm9y
IGFwcGxpY2F0aW9uIGRhdGEuCisgKgorICogQHBhcmFtIGRhdGEgcG9pbnRlciB0byBJQ1UgY29t
bW9uIGRhdGEKKyAqIEBwYXJhbSBlcnIgb3V0Z29pbmcgZXJyb3Igc3RhdHVzIDxjb2RlPlVfVVNJ
TkdfREVGQVVMVF9XQVJOSU5HLCBVX1VOU1VQUE9SVEVEX0VSUk9SPC9jb2RlPgorICogQHN0YWJs
ZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRDb21tb25E
YXRhKGNvbnN0IHZvaWQgKmRhdGEsIFVFcnJvckNvZGUgKmVycik7CisKKworLyoqCisgKiBUaGlz
IGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNVIGRhdGEgbG9hZGluZyBwcm9jZXNzIGZv
ciBhcHBsaWNhdGlvbi1zcGVjaWZpYworICogZGF0YSBhbmQgYWxsb3dzIHlvdSB0byBmb3JjZSB0
aGUgaXQgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNpZmllZAorICogcG9pbnRlci4KKyAqCisg
KiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1h
bGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL2ljdWRhdGEK
KyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBpcyB0aGF0IG9mIHRoZSBpY3UgY29tbW9u
IGRhdGEgZmlsZSwgbGlrZSAnaWN1ZHQyNmwuZGF0JworICogb3IgdGhlIGNvcnJlc3BvbmRpbmcg
c2hhcmVkIGxpYnJhcnkgKERMTCkgZmlsZS4KKyAqIFRoZSBhcHBsaWNhdGlvbiBtdXN0IHJlYWQg
aW4gb3Igb3RoZXJ3aXNlIGNvbnN0cnVjdCBhbiBpbWFnZSBvZiB0aGUgZGF0YSBhbmQgdGhlbgor
ICogcGFzcyB0aGUgYWRkcmVzcyBvZiBpdCB0byB0aGlzIGZ1bmN0aW9uLgorICoKKyAqCisgKiBX
YXJuaW5nOiAgc2V0QXBwRGF0YSB3aWxsIHNldCBhIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGNv
ZGUgaWYKKyAqICAgICAgICAgICBkYXRhIHdpdGggdGhlIHNwZWNpZmVkIHBhdGggdGhhdCBoYXMg
YWxyZWFkeSBiZWVuIG9wZW5lZCwgb3IKKyAqICAgICAgICAgICBpZiBzZXRBcHBEYXRhIHdpdGgg
dGhlIHNhbWUgcGF0aCBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZC4KKyAqICAgICAgICAgICBBbnkg
c3VjaCBjYWxscyB0byBzZXRBcHBEYXRhIHdpbGwgaGF2ZSBubyBlZmZlY3QuCisgKgorICoKKyAq
IEBwYXJhbSBwYWNrYWdlTmFtZSB0aGUgcGFja2FnZSBuYW1lIGJ5IHdoaWNoIHRoZSBhcHBsaWNh
dGlvbiB3aWxsIHJlZmVyCisgKiAgICAgICAgICAgICB0byAob3BlbikgdGhpcyBkYXRhCisgKiBA
cGFyYW0gZGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhCisgKiBAcGFyYW0gZXJyIG91dGdvaW5nIGVy
cm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9VTlNVUFBPUlRFRF9F
UlJPUjwvY29kZT4KKyAqIEBzZWUgdWRhdGFfc2V0Q29tbW9uRGF0YQorICogQHN0YWJsZSBJQ1Ug
Mi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRBcHBEYXRhKGNvbnN0
IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25zdCB2b2lkICpkYXRhLCBVRXJyb3JDb2RlICplcnIpOwor
CisvKioKKyAqIFBvc3NpYmxlIHNldHRpbmdzIGZvciB1ZGF0YV9zZXRGaWxlQWNjZXNzKCkKKyAq
IEBzZWUgdWRhdGFfc2V0RmlsZUFjY2VzcworICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK3R5cGVk
ZWYgZW51bSBVRGF0YUZpbGVBY2Nlc3MgeworICAgIC8qKiBJQ1UgbG9va3MgZm9yIGRhdGEgaW4g
c2luZ2xlIGZpbGVzIGZpcnN0LCB0aGVuIGluIHBhY2thZ2VzLiAoZGVmYXVsdCkgQHN0YWJsZSBJ
Q1UgMy40ICovCisgICAgVURBVEFfRklMRVNfRklSU1QsCisgICAgLyoqIEFuIGFsaWFzIGZvciB0
aGUgZGVmYXVsdCBhY2Nlc3MgbW9kZS4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfREVG
QVVMVF9BQ0NFU1MgPSBVREFUQV9GSUxFU19GSVJTVCwKKyAgICAvKiogSUNVIG9ubHkgbG9hZHMg
ZGF0YSBmcm9tIHBhY2thZ2VzLCBub3QgZnJvbSBzaW5nbGUgZmlsZXMuIEBzdGFibGUgSUNVIDMu
NCAqLworICAgIFVEQVRBX09OTFlfUEFDS0FHRVMsCisgICAgLyoqIElDVSBsb2FkcyBkYXRhIGZy
b20gcGFja2FnZXMgZmlyc3QsIGFuZCBvbmx5IGZyb20gc2luZ2xlIGZpbGVzCisgICAgICAgIGlm
IHRoZSBkYXRhIGNhbm5vdCBiZSBmb3VuZCBpbiBhIHBhY2thZ2UuIEBzdGFibGUgSUNVIDMuNCAq
LworICAgIFVEQVRBX1BBQ0tBR0VTX0ZJUlNULAorICAgIC8qKiBJQ1UgZG9lcyBub3QgYWNjZXNz
IHRoZSBmaWxlIHN5c3RlbSBmb3IgZGF0YSBsb2FkaW5nLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAg
ICBVREFUQV9OT19GSUxFUywKKyAgICAvKiogTnVtYmVyIG9mIHJlYWwgVURhdGFGaWxlQWNjZXNz
IHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRV9BQ0NFU1NfQ09VTlQK
K30gVURhdGFGaWxlQWNjZXNzOworCisvKioKKyAqIFRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxl
ZCB0byBjb250cm9sIGhvdyBJQ1UgbG9hZHMgZGF0YS4gSXQgbXVzdCBiZSBjYWxsZWQKKyAqIGJl
Zm9yZSBhbnkgSUNVIGRhdGEgaXMgbG9hZGVkLCBpbmNsdWRpbmcgYXBwbGljYXRpb24gZGF0YSBs
b2FkZWQgd2l0aCAKKyAqIHVyZXMvUmVzb3VyY2VCdW5kbGUgb3IgdWRhdGEgQVBJcy4gVGhpcyBm
dW5jdGlvbiBpcyBub3QgbXVsdGl0aHJlYWQgc2FmZS4gIAorICogVGhlIHJlc3VsdHMgb2YgY2Fs
bGluZyBpdCB3aGlsZSBvdGhlciB0aHJlYWRzIGFyZSBsb2FkaW5nIGRhdGEgYXJlIHVuZGVmaW5l
ZC4KKyAqIEBwYXJhbSBhY2Nlc3MgVGhlIHR5cGUgb2YgZmlsZSBhY2Nlc3MgdG8gYmUgdXNlZAor
ICogQHBhcmFtIHN0YXR1cyBFcnJvciBjb2RlLgorICogQHNlZSBVRGF0YUZpbGVBY2Nlc3MKKyAq
IEBzdGFibGUgSUNVIDMuNCAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3Nl
dEZpbGVBY2Nlc3MoVURhdGFGaWxlQWNjZXNzIGFjY2VzcywgVUVycm9yQ29kZSAqc3RhdHVzKTsK
KworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3VtaXNjLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDg1NDUxZmM3NjdjMDU4MzVmNmMxNWY1NjZmMzU2MmUyZDRhZjgzNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1pc2MuaApAQCAtMCwwICsxLDYwIEBACisvKgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA2LCBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdW1pc2MuaAorKiAg
IGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAg
aW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDE5OTlvY3QxNQorKiAgIGNyZWF0ZWQg
Ynk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisjaWZuZGVmIFVNSVNDX0gKKyNkZWZpbmUgVU1J
U0NfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworLyoqCisgKiBcZmlsZQorICog
XGJyaWVmICBDIEFQSTptaXNjIGRlZmluaXRpb25zIAorICoKKyAqICBUaGlzIGZpbGUgY29udGFp
bnMgbWlzY2VsbGFuZW91cyBkZWZpbml0aW9ucyBmb3IgdGhlIEMgQVBJcy4gCisgKi8KKworVV9D
REVDTF9CRUdJTgorCisvKiogQSBzdHJ1Y3QgcmVwcmVzZW50aW5nIGEgcmFuZ2Ugb2YgdGV4dCBj
b250YWluaW5nIGEgc3BlY2lmaWMgZmllbGQgCisgKiAgQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5
cGVkZWYgc3RydWN0IFVGaWVsZFBvc2l0aW9uIHsKKyAgLyoqCisgICAqIFRoZSBmaWVsZCAKKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90IGZpZWxkOworICAvKioKKyAgICog
VGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHJhbmdlIGNvbnRhaW5pbmcgZmllbGQgCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBiZWdpbkluZGV4OworICAvKiogCisgICAqIFRo
ZSBsaW1pdCBvZiB0aGUgdGV4dCByYW5nZSBjb250YWluaW5nIGZpZWxkIAorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIGludDMyX3QgZW5kSW5kZXg7Cit9IFVGaWVsZFBvc2l0aW9uOwor
CisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorLyoqCisgKiBPcGFxdWUgdHlwZSByZXR1cm5lZCBi
eSByZWdpc3Rlckluc3RhbmNlLCByZWdpc3RlckZhY3RvcnkgYW5kIHVucmVnaXN0ZXIgZm9yIHNl
cnZpY2UgcmVnaXN0cmF0aW9uLgorICogQHN0YWJsZSBJQ1UgMi42CisgKi8KK3R5cGVkZWYgY29u
c3Qgdm9pZCogVVJlZ2lzdHJ5S2V5OworI2VuZGlmCisKK1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0
Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAwOTk3ZDllYWM0Nzk1ODFmZjFmZDQ3NjljY2M0YjU0NjYy
ZWZkNzE0Li41Mzc5YjY5ZjFjMGViOGMyNjQ1NGEwNmI4NjMwNDJlMzBiOGM4ODg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9D
TWFrZUxpc3RzLnR4dApAQCAtMjcyLDYgKzI3Miw0MiBAQCBpZiAoTk9UIFVTRV9TWVNURU1fTUFM
TE9DKQogICAgIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMgYm1hbGxvYykKIGVuZGlmICgpCiAK
K3NldChXVEZfQlJFQUtJTkdfUlVMRVNfU09VUkNFUworICAgIHRleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQKKyAgICB0ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKKyAgICB0ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKKykK
KworbWFjcm8oR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMgX2lucHV0IF9zeW1ib2xOYW1lIF9vdXRw
dXQpCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgJHtfb3V0cHV0fQor
ICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQorICAgICAgICBERVBFTkRTICR7Q01BS0Vf
Q1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQ
cm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKKyAgICAgICAgQ09NTUFO
RCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dURl9ESVJ9L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
R2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IC1pbmNsdWRlRGVmaW5lcyAke19zeW1ib2xO
YW1lfVJ1bGVzICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VSUkVOVF9T
T1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50
eHQgPiAke19vdXRwdXR9CisgICAgICAgIFZFUkJBVElNKQorICAgIGxpc3QoQVBQRU5EIFdURl9T
T1VSQ0VTICR7X291dHB1dH0pCisgICAgQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtfaW5wdXR9
ICR7X291dHB1dH0pCitlbmRtYWNybygpCisKK2ZvcmVhY2ggKF9maWxlICR7V1RGX0JSRUFLSU5H
X1JVTEVTX1NPVVJDRVN9KQorICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtfZmls
ZX0gTkFNRV9XRSkKKyAgICBHRU5FUkFURV9CUkVBS0lOR19SVUxFUygke0NNQUtFX0NVUlJFTlRf
U09VUkNFX0RJUn0vJHtfZmlsZX0gJHtfbmFtZX0gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0v
QnJlYWtpbmdSdWxlcy8ke19uYW1lfS5jcHApCitlbmRmb3JlYWNoICgpCisKK2FkZF9jdXN0b21f
Y29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdS
dWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgTUFJTl9ERVBFTkRFTkNZ
ICR7V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0
cmluZ3MucHkKKyAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorICAgIENPTU1BTkQg
JHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dl
bmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAtaW5jbHVkZURlZmluZXMgY3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5n
UnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCA+ICR7REVSSVZFRF9TT1VSQ0VT
X1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcAor
ICAgIFZFUkJBVElNKQorbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNf
V1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwKQor
QUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQv
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICR7REVSSVZFRF9T
T1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LmNwcCkKKwogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKICAgICB1bmljb2RlL2ljdS9Db2xsYXRv
cklDVS5jcHAKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZjk1
MmY3NWY2ZDAxZWZmYWMxZTc5ZGJmOTlmYzIzMGExNzZkNzAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0wLDAgKzEsODEgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK0JSRUFLSU5HX1JVTEVTX0ZJTEVTID0g
XAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmJyayBcCisg
ICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmJyayBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmJyayBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuYnJrIFwKKyAgICBCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5icmsgXAorICAgIEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5icmsgXAorICAgIEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5icmsgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5icmsgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5icmsKKworQlJF
QUtJTkdfUlVMRVNfREVGSU5JVElPTlMgPSBcCisgICAgQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb25DSksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZUNKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsTm9uQ0pLLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Q0pLLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLmNwcAorCitpZmVxICgkKHNoZWxsICQoQ0MpIC1zdGQ9Z251KysxMSAt
eCBjKysgLUUgLVAgLWRNICQoU0RLX0ZMQUdTKSAkKEZSQU1FV09SS19GTEFHUykgJChIRUFERVJf
RkxBR1MpIC1JICQoV1RGKSAtaW5jbHVkZSAiJChXVEYpL3d0Zi9QbGF0Zm9ybS5oIiAvZGV2L251
bGwgfCBncmVwICcgV1RGX1BMQVRGT1JNX0lPUyAnIHwgY3V0IC1kJyAnIC1mMyksIDEpCisgICAg
V1RGX1BMQVRGT1JNX0lPUyA9IDEKK2Vsc2UKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMAorZW5k
aWYKKworaWZlcSAoJChXVEZfUExBVEZPUk1fSU9TKSwgMSkKKwlBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVOVCA9IDAKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRT
ID0gMAorZWxzZQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5U
ID0gJChBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQpCisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VU
UyA9IDEKK2VuZGlmCisKK0RFUEVOREVOQ0lFUyA9ICQoQlJFQUtJTkdfUlVMRVNfREVGSU5JVElP
TlMpCisKK2lmZXEgKCQoT1MpLE1BQ09TKQorREVQRU5ERU5DSUVTICs9ICQoQlJFQUtJTkdfUlVM
RVNfRklMRVMpCitlbmRpZgorCithbGwgOiAkKERFUEVOREVOQ0lFUykKKworQnJlYWtpbmdSdWxl
cy8lLmJyayA6IEJyZWFraW5nUnVsZXMvJS5wcAorCS4uLy4uL2dlbmJyayAtYyAtciAkPCAtbyAk
QAorCitCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgOiBCcmVh
a2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcAorCXB5dGhvbiAkKFdURikv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgY3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzICQ8ID4gJEAKKworQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvciUuY3BwIDogQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUucHAKKwlw
eXRob24gJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVT
dHJpbmdzLnB5IGxpbmVCcmVha0l0ZXJhdG9yJCpSdWxlcyAkPCA+ICRACisKK0JyZWFraW5nUnVs
ZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorCS11bmlmZGVmIC1EQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJT
T1JfTU9WRU1FTlQpIC1ESEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNV
X05BTUVEX1NFVFMpIC1vICRAICQ8CisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3Il
LnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9s
b2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3Il
LnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxv
Z3VlLnR4dAorCS1jYXQgJD8gfCB1bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQo
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9JChI
QVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNTkxMGJmYTVlMGU2MzNkYmQ3MjU5M2FjMWYzMzBhZjNlZTQz
ZGRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKQEAgLTAsMCArMSwxNzQgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBydWxlIHNldCBpcyBiYXNl
ZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRwOi8v
c291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3Nv
dXJjZS9kYXRhL2Jya2l0ci8+LgorIyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3Jp
Z2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5
ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOworIyAq
IFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHBy
ZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZl
bnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1
YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0aGF0
IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgg
a2F0YWthcmEgdm9pY2VkIG1hcmtzLgorIyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRp
Y2F0b3Igc3ltYm9scy4KKworJENSICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IENSfV07CiskTEYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsKKyRD
b250cm9sID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9pY2VN
YXJrcyA9IFtcdUZGOUVcdUZGOUZdOyAjIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9p
Y2VkIG1hcmtzCiskRXh0ZW5kICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5k
fSAkVm9pY2VNYXJrcyAtIFtcdTBFMzAgXHUwRTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07Cisk
U3BhY2luZ01hcmsgPSBbW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRF
eHRlbmRdOworJEwgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsKKyRW
ICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9IFtc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOworJExWICAgICAgPSBbXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IExWfV07CiskTFZUICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gTFZUfV07CiskSGluMCAgICA9IFtcdTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExl
dHRlciBBLC4uLixIYQorJEhpblYgICAgPSBcdTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZpcmFt
YQorJEhpbjEgICAgPSBbXHUwOTE1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4u
LEhhCiskQmVuMCAgICA9IFtcdTA5ODUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4uLixI
YQorJEJlblYgICAgPSBcdTA5Q0Q7ICMgQmVuZ2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAgPSBb
XHUwOTk1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9IFtc
dTBBMDUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0gXHUw
QTREOyAjIEd1cm11a2hpIFNpZ24gVmlyYW1hCiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5XTsg
IyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5XTsg
IyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKKyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFyYXRp
IFNpZ24gVmlyYW1hCiskR3VqMSAgICA9IFtcdTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0
ZXIgS2EsLi4uLEhhCiskT3JpMCAgICA9IFtcdTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIg
QSwuLi4sSGEKKyRPcmlWICAgID0gXHUwQjREOyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3JpMSAg
ICA9IFtcdTBCMTUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAgICA9
IFtcdTBDMDUtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9IFx1
MEM0RDsgIyBUZWx1Z3UgU2lnbiBWaXJhbWEKKyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzldOyAj
IFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCiskS2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsgIyBL
YW5uYWRhIExldHRlciBBLC4uLixIYQorJEthblYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBTaWdu
IFZpcmFtYQorJEthbjEgICAgPSBbXHUwQzk1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwu
Li4sSGEKKyRNYWwwICAgID0gW1x1MEQwNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwu
Li4sSGEgCiskTWFsViAgICA9IFx1MEQ0RDsgIyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRNYWwx
ICAgID0gW1x1MEQxNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRSSSAg
ICAgID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9y
cworJFpXSiAgICAgPSBcdTIwMEQ7ICMgWmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9IFtc
dUZFMEZdOyAjIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgorCisjaWYgQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUy
NkY5IFx1Mjc2NCBcVTAwMDFGMzA4IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxV
MDAwMUYzQ0MgXFUwMDAxRjNGMyBcVTAwMDFGNDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAw
MDFGNDZFLVxVMDAwMUY0NkYgXFUwMDAxRjQ3MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAx
RjQ4MS1cVTAwMDFGNDgyIFxVMDAwMUY0ODYtXFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1
NzUgXFUwMDAxRjVFOCBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRE
LVxVMDAwMUY2NEUgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjZdOyAjIEVtb2ppIHRo
YXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUy
NjFEIFx1MjZGOSBcdTI3MEEtXHUyNzBEIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0
IFxVMDAwMUYzQ0EgXFUwMDAxRjNDQiBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1c
VTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUw
MDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAw
MUY0QUEgXFUwMDAxRjU3NSBcVTAwMDFGNTkwIFxVMDAwMUY1OTUgXFUwMDAxRjU5NiBcVTAwMDFG
NjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZC
NC1cVTAwMDFGNkI2IFxVMDAwMUY2QzAgXFUwMDAxRjkxOF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBG
aXR6cGF0cmljayBtb2RpZmllcnMKKworI2Vsc2UKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUy
NzY0IFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDhCXTsgIyBFbW9qaSB0aGF0IHBhcnRp
Y2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI3
MEEtXHUyNzBDIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcgXFUw
MDAxRjNDQSBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAw
MUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFG
NDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU5
NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMg
XFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0
enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkIt
XFUwMDAxRjNGRl07ICMgRml0enBhdHJpY2sgbW9kaWZpZXJzCishIWNoYWluOworCisjaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIVJJTm9DaGFpbjsKKworI2VuZGlmCisKKyEh
Zm9yd2FyZDsKKyRDUiAkTEY7CiskTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8ICRW
KSAoJFYgfCAkVCk7CisoJExWVCB8ICRUKSAkVDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVAorCisgICAgJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsKKyAgICAkUkkgJFJJICRFeHRlbmQq
OworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAk
TEZdICRTcGFjaW5nTWFyazsKKworI2Vsc2UKKworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4
dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKyAgICAkUkkgJFJJ
IC8gJFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMCAkSGluViAkSGluMTsgIyBE
ZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKKyRCZW4wICRCZW5WICRCZW4xOyAjIEJlbmdhbGkg
VmlyYW1hIChmb3J3YXJkKQorJFBhbjAgJFBhblYgJFBhbjE7ICMgR3VybXVraGkgVmlyYW1hIChm
b3J3YXJkKQorJEd1ajAgJEd1alYgJEd1ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQor
JE9yaTAgJE9yaVYgJE9yaTE7ICMgT3JpeWEgVmlyYW1hIChmb3J3YXJkKQorJFRlbDAgJFRlbFYg
JFRlbDE7ICMgVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKKyRLYW4wICRLYW5WICRLYW4xOyAjIEth
bm5hZGEgVmlyYW1hIChmb3J3YXJkKQorJE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFsYXlhbGFtIFZp
cmFtYSAoZm9yd2FyZCkKKyRaV0ogJEVtb2ppRm9yU2VxczsgIyBEb250IGJyZWFrIGluIGVtb2pp
IFpXSiBzZXF1ZW5jZXMKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyAjIERv
bnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24g
c2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorISFyZXZlcnNlOworJExGICRDUjsK
KygkTCB8ICRWIHwgJExWIHwgJExWVCkgJEw7CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRUICgk
TFZUIHwgJFQpOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRXh0ZW5k
KiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kKiAkUkkgJFJJOworICAg
ICRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRD
b250cm9sICRDUiAkTEZdOworCisjZWxzZQorCisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wg
JENSICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFJJ
ICRSSSAvICRSSSAkUkk7CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4xICRIaW5WICRI
aW4wOyAjIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKKyRCZW4xICRCZW5WICRCZW4wOyAj
IEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKKyRQYW4xICRQYW5WICRQYW4wOyAjIEd1cm11a2hp
IFZpcmFtYSAoYmFja3dhcmQpCiskR3VqMSAkR3VqViAkR3VqMDsgIyBHdWphcmF0aSBWaXJhbWEg
KGJhY2t3YXJkKQorJE9yaTEgJE9yaVYgJE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2Fy
ZCkKKyRUZWwxICRUZWxWICRUZWwwOyAjIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQorJEthbjEg
JEthblYgJEthbjA7ICMgS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQorJE1hbDEgJE1hbFYgJE1h
bDA7ICMgTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCiskRW1vamlGb3JTZXFzICRaV0o7ICMg
RG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlNb2RzICRFbW9qaVZhcj8g
JEVtb2ppRm9yTW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3Np
Ymx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKwor
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgISFzYWZlX3JldmVyc2U7CisgICAg
JFJJICRSSSs7CisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAg
ICAhIXNhZmVfZm9yd2FyZDsKKyAgICAkUkkgJFJJKzsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1v
amlWYXIgJEVtb2ppTW9kc10rOworCisjZWxzZQorCisgICAgWyRFbW9qaVZhciAkRW1vamlNb2Rz
XSsgJEVtb2ppRm9yTW9kczsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9k
c10rOworICAgICEhc2FmZV9yZXZlcnNlOworICAgICEhc2FmZV9mb3J3YXJkOworCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJy
ZWFraW5nUnVsZVN0cmluZ3MucHkgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
R2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2YjA0NzY5ZmNhMzk4
YWNjOTk3ODY5MmI3NzcwNjQwNWVkMDQ4YTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CkBA
IC0wLDAgKzEsMTEwIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBzeXMKK2ltcG9ydCByZQorCitoZWFkZXIg
PSAiIiIvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8iIiIKKworCitkZWYgbWFpbihhcmd2PU5vbmUpOgorICAgIGlmIG5vdCBh
cmd2OgorICAgICAgICBhcmd2ID0gc3lzLmFyZ3YKKyAgICBmaWxlTmFtZVN0YXJ0SW5kZXggPSAx
CisKKyAgICBpbmNsdWRlRGVmaW5lcyA9IEZhbHNlCisgICAgaWYgYXJndltmaWxlTmFtZVN0YXJ0
SW5kZXhdID09ICItaW5jbHVkZURlZmluZXMiOgorICAgICAgICBpbmNsdWRlRGVmaW5lcyA9IFRy
dWUKKyAgICAgICAgZmlsZU5hbWVTdGFydEluZGV4ID0gZmlsZU5hbWVTdGFydEluZGV4ICsgMQor
CisgICAgc3ltYm9sTmFtZSA9IGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4XVswXS5sb3dlcigpICsg
YXJndltmaWxlTmFtZVN0YXJ0SW5kZXhdWzE6XQorICAgIGZpbGVOYW1lU3RhcnRJbmRleCA9IGZp
bGVOYW1lU3RhcnRJbmRleCArIDEKKyAgICBmaWxlTmFtZXMgPSBhcmd2W2ZpbGVOYW1lU3RhcnRJ
bmRleDpdCisKKyAgICBwcmludChoZWFkZXIpCisgICAgcHJpbnQoIiIpCisgICAgcHJpbnQoIi8v
IERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkg
dGhlIHNjcmlwdCIpCisgICAgcHJpbnQoIi8vIFdURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dl
bmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSIpCisgICAgcHJpbnQoIiIpCisgICAgcHJpbnQo
IiNpbmNsdWRlIFwiY29uZmlnLmhcIiIpCisgICAgcHJpbnQoIiNpbmNsdWRlIDx1bmljb2RlL3V2
ZXJudW0uaD4iKQorICAgIHByaW50KCIiKQorICAgIGlmIGluY2x1ZGVEZWZpbmVzOgorICAgICAg
ICBwcmludCgiI2RlZmluZSBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElPUykg
fHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDExMDApKSIpCisgICAgICAgIHByaW50KCIjZGVmaW5lIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NF
VFMgKChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5P
Ul9OVU0gPj0gOSkpIikKKyAgICAgICAgcHJpbnQoIiIpCisgICAgcHJpbnQoIm5hbWVzcGFjZSBX
VEYgeyIpCisgICAgcHJpbnQoIiIpCisgICAgcHJpbnQoImNvbnN0IGNoYXIqICIgKyBzeW1ib2xO
YW1lICsgIiA9ICIpCisKKyAgICBmb3IgZmlsZU5hbWUgaW4gZmlsZU5hbWVzOgorICAgICAgICBm
b3IgbCBpbiBvcGVuKGZpbGVOYW1lLCAncicpOgorICAgICAgICAgICAgbGluZSA9IGwucnN0cmlw
KCkKKyAgICAgICAgICAgIGlmIHJlLm1hdGNoKCJeXHMqJCIsIGxpbmUpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjICIpOgorICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZSA9PSAiIyI6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoIiMiKToKKyAgICAg
ICAgICAgICAgICBwcmludChsaW5lKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBtYXRjaCA9IHJlLm1hdGNoKCJeKC4qKTsoICMgLiopPyQiLCBsaW5lKQorICAgICAgICAgICAg
ICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAiXCIiICsgbWF0Y2gu
Z3JvdXAoMSkucmVwbGFjZSgiXFwiLCAiXFxcXCIpICsgIjtcIiIKKyAgICAgICAgICAgICAgICAg
ICAgaWYgbWF0Y2guZ3JvdXAoMik6CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0g
IiAvLyAiICsgbWF0Y2guZ3JvdXAoMilbMzpdCisgICAgICAgICAgICAgICAgICAgIHByaW50KHJl
c3VsdCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBleGl0KDEp
CisKKyAgICBwcmludCgiOyIpCisgICAgcHJpbnQoIn0iKQorCitpZiBfX25hbWVfXyA9PSAnX19t
YWluX18nOgorICAgIHN5cy5leGl0KG1haW4oc3lzLmFyZ3YpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBp
bG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxODVkM2MxYTZlZTIxNzYyZjY0Y2FkMjlmN2FjZWY0YjI4
YTNlYWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKQEAgLTAsMCArMSwzNzAgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRBSSA9IFs6TGluZUJyZWFrID0gQW1i
aWd1b3VzOl07CiskQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsKKyRCQSA9IFtbOkxp
bmVCcmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsKKyRCQiA9IFs6TGluZUJyZWFrID0g
QnJlYWtfQmVmb3JlOl07CiskQksgPSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOwor
JEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19Cb3RoOl07CiskQ0IgPSBbOkxpbmVCcmVhayA9IENv
bnRpbmdlbnRfQnJlYWs6XTsKKyRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246
XTsKKyRDTSA9IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsKKyRDUCA9IFs6TGluZUJy
ZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsKKyRDUiA9IFs6TGluZUJyZWFrID0gQ2FycmlhZ2Vf
UmV0dXJuOl07CiskRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0gJEVYX1NVQl07
CiskR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsKKworI2lmIEhBVkVfRVhUUkFfSUNVX05BTUVE
X1NFVFMKKworICAgICRITCA9IFs6TGluZUJyZWFrID0gSGVicmV3X0xldHRlcjpdOworCisjZWxz
ZQorCisgICAgJEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsKKworI2VuZGlmCisKKyRI
WSA9IFs6TGluZUJyZWFrID0gSHlwaGVuOl07CiskSDIgPSBbOkxpbmVCcmVhayA9IEgyOl07Cisk
SDMgPSBbOkxpbmVCcmVhayA9IEgzOl07CiskSUQgPSBbW1tbOkxpbmVCcmVhayA9IElkZW9ncmFw
aGljOl0gLSAkQ0pdICRJRF9BRERdIC0gJElEX1NVQl07CiskSU4gPSBbWzpMaW5lQnJlYWsgPSBJ
bnNlcGFyYWJsZTpdIC0gJElOX1NVQl07CiskSVMgPSBbWzpMaW5lQnJlYWsgPSBJbmZpeF9OdW1l
cmljOl0gLSAkSVNfU1VCXTsKKyRKTCA9IFs6TGluZUJyZWFrID0gSkw6XTsKKyRKViA9IFs6TGlu
ZUJyZWFrID0gSlY6XTsKKyRKVCA9IFs6TGluZUJyZWFrID0gSlQ6XTsKKyRMRiA9IFs6TGluZUJy
ZWFrID0gTGluZV9GZWVkOl07CiskTkwgPSBbOkxpbmVCcmVhayA9IE5leHRfTGluZTpdOworJE5T
ID0gW1tbWzpMaW5lQnJlYWsgPSBOb25zdGFydGVyOl0gLSAkQ0pdICROU19BRERdIC0gJE5TX1NV
Ql07CiskTlUgPSBbOkxpbmVCcmVhayA9IE51bWVyaWM6XTsKKyRPUCA9IFs6TGluZUJyZWFrID0g
T3Blbl9QdW5jdHVhdGlvbjpdOworJFBPID0gW1s6TGluZUJyZWFrID0gUG9zdGZpeF9OdW1lcmlj
Ol0gLSAkUE9fU1VCXTsKKyRQUiA9IFtbOkxpbmVCcmVhayA9IFByZWZpeF9OdW1lcmljOl0gLSAk
UFJfU1VCXTsKKyRRVSA9IFs6TGluZUJyZWFrID0gUXVvdGF0aW9uOl07CiskUkkgPSBbXFUwMDAx
RjFFNi1cVTAwMDFGMUZGXTsKKyRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07
CiskU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOworJFNQID0gWzpMaW5lQnJlYWsgPSBT
cGFjZTpdOworJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07CiskV0ogPSBbOkxp
bmVCcmVhayA9IFdvcmRfSm9pbmVyOl07CiskWFggPSBbOkxpbmVCcmVhayA9IFVua25vd246XTsK
KyRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpdOworJFpXSiA9IFx1MjAwRDsKKyRFbW9qaVZh
ciA9IFx1RkUwRjsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEVtb2pp
Rm9yU2VxcyA9IFtcdTI2NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUwMDAxRjMwOCBcVTAwMDFG
M0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAwMUYzRjMgXFUwMDAxRjQ0
MSBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDZGIFxVMDAwMUY0NzEg
XFUwMDAxRjQ3MyBcVTAwMDFGNDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MiBcVTAwMDFGNDg2LVxV
MDAwMUY0ODcgXFUwMDAxRjQ4QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTggXFUwMDAxRjY0NS1cVTAw
MDFGNjQ3IFxVMDAwMUY2NEIgXFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxVMDAwMUY2QTMgXFUwMDAx
RjZCNC1cVTAwMDFGNkI2XTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5j
ZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1MjcwRCBcVTAw
MDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxVMDAwMUYzQ0IgXFUwMDAx
RjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0
NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgz
IFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1NzUgXFUwMDAxRjU5MCBc
VTAwMDFGNTk1IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUw
MDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwIFxVMDAw
MUY5MThdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbHNl
CisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUw
MDAxRjQ4Ql07CisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBBLVx1MjcwQyBcVTAw
MDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0M3IFxVMDAwMUYzQ0EgXFUwMDAx
RjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0
NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgz
IFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1c
VTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUw
MDAxRjZCNiBcVTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlm
aWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYzRkZdOwor
JGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOworJEFMUGx1cyA9
IFskQUwgJEFJICRTQSAkU0cgJFhYXTsKKyRBTGNtID0gJEFMUGx1cyAkQ00qOworJEJBY20gPSAk
QkEgJENNKjsKKyRCQmNtID0gJEJCICRDTSo7CiskQjJjbSA9ICRCMiAkQ00qOworJENMY20gPSAk
Q0wgJENNKjsKKyRDUGNtID0gJENQICRDTSo7CiskRVhjbSA9ICRFWCAkQ00qOworJEdMY20gPSAk
R0wgJENNKjsKKyRITGNtID0gJEhMICRDTSo7CiskSFljbSA9ICRIWSAkQ00qOworJEgyY20gPSAk
SDIgJENNKjsKKyRIM2NtID0gJEgzICRDTSo7CiskSURjbSA9ICRJRCAkQ00qOworJElOY20gPSAk
SU4gJENNKjsKKyRJU2NtID0gJElTICRDTSo7CiskSkxjbSA9ICRKTCAkQ00qOworJEpWY20gPSAk
SlYgJENNKjsKKyRKVGNtID0gJEpUICRDTSo7CiskTlNjbSA9ICROUyAkQ00qOworJE5VY20gPSAk
TlUgJENNKjsKKyRPUGNtID0gJE9QICRDTSo7CiskUE9jbSA9ICRQTyAkQ00qOworJFBSY20gPSAk
UFIgJENNKjsKKyRRVWNtID0gJFFVICRDTSo7CiskUkljbSA9ICRSSSAkQ00qOworJFNZY20gPSAk
U1kgJENNKjsKKyRXSmNtID0gJFdKICRDTSo7CisKKyEhZm9yd2FyZDsKKyRDQU5fQ00gPSBbXiRT
UCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07CiskQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYg
JE5MICRaVyAkQ01dOworJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQ
XTsKKyRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRHTCAkT1Ag
JFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107CiskQUxfRk9MTE9XID0gWyRBTF9GT0xM
T1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsKKyRMQjRCcmVha3MgPSBbJEJLICRDUiAkTEYgJE5MXTsK
KyRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICROTF07CiskTEI4QnJlYWtzID0gWyRMQjRC
cmVha3MgJFpXXTsKKyRMQjhOb25CcmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOwor
JExCMThOb25CcmVha3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsKKyRMQjE4QnJlYWtzID0g
WyRMQjhCcmVha3MgJFNQXTsKKyRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENC
XTsKKyRBTFBsdXMgJENNKzsKKyRCQSAkQ00rOworJEJCICRDTSs7CiskQjIgJENNKzsKKyRDTCAk
Q00rOworJENQICRDTSs7CiskRVggJENNKzsKKyRHTCAkQ00rOworJEhMICRDTSs7CiskSFkgJENN
KzsKKyRIMiAkQ00rOworJEgzICRDTSs7CiskSUQgJENNKzsKKyRJTiAkQ00rOworJElTICRDTSs7
CiskSkwgJENNKzsKKyRKViAkQ00rOworJEpUICRDTSs7CiskTlMgJENNKzsKKyROVSAkQ00rOwor
JE9QICRDTSs7CiskUE8gJENNKzsKKyRQUiAkQ00rOworJFFVICRDTSs7CiskUkkgJENNKzsKKyRT
WSAkQ00rOworJFdKICRDTSs7CiskQ1IgJExGIHsxMDB9OworJExCNE5vbkJyZWFrcz8gJExCNEJy
ZWFrcyB7MTAwfTsKKyRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OworJENNKyAkTEI0QnJl
YWtzIHsxMDB9OworJExCNE5vbkJyZWFrcyBbJFNQICRaV107CiskQ0FOX0NNICRDTSogWyRTUCAk
WlddOworJENNKyBbJFNQICRaV107CiskRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9k
cz8gJFpXSiAkRW1vamlGb3JTZXFzOworJENBTl9DTSAkQ00rOworJENNKzsKKyRDQU5fQ00gJENN
KiAkV0pjbTsKKyRMQjhOb25CcmVha3MgJFdKY207CiskQ00rICRXSmNtOworJFdKY20gJENBTlRf
Q007CiskV0pjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FO
VF9DTTsKK1tbJExCOE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOworJENN
KyBHTGNtOworJExCOE5vbkJyZWFrcyAkQ0w7CiskQ0FOX0NNICRDTSogJENMOworJENNKyAkQ0w7
CiskTEI4Tm9uQnJlYWtzICRDUDsKKyRDQU5fQ00gJENNKiAkQ1A7CiskQ00rICRDUDsKKyRMQjhO
b25CcmVha3MgJEVYOworJENBTl9DTSAkQ00qICRFWDsKKyRDTSsgJEVYOworJExCOE5vbkJyZWFr
cyAkSVM7CiskQ0FOX0NNICRDTSogJElTOworJENNKyAkSVM7CiskTEI4Tm9uQnJlYWtzICRTWTsK
KyRDQU5fQ00gJENNKiAkU1k7CiskQ00rICRTWTsKKyRPUGNtICRTUCogJENBTl9DTSAkQ00qOwor
JE9QY20gJFNQKiAkQ0FOVF9DTTsKKyRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsKKyRRVWNt
ICRTUCogJE9QY207CisoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsKKyRCMmNtICRTUCogJEIy
Y207CiskTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOworJENNKyAkUVVjbTsKKyRRVWNtIC4/Owor
JFFVY20gJExCMThOb25CcmVha3MgJENNKjsKKyRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwg
JEhZY20gfCAkTlNjbSk7IAorJEJCY20gW14kQ0JdOworJEJCY20gJExCMjBOb25CcmVha3MgJENN
KjsKKyRITGNtICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OworJFNZY20gJEhMY207CisoJEFMY20g
fCAkSExjbSkgJElOY207CiskQ00rICRJTmNtOworJEVYY20gJElOY207CiskSURjbSAkSU5jbTsK
KyRJTmNtICRJTmNtOworJE5VY20gJElOY207CiskSURjbSAkUE9jbTsKKyRBTGNtICROVWNtOwor
JEhMY20gJE5VY207CiskQ00rICROVWNtOworJE5VY20gJEFMY207CiskTlVjbSAkSExjbTsKKyRQ
UmNtICRJRGNtOworJFBSY20gKCRBTGNtIHwgJEhMY20pOworJFBPY20gKCRBTGNtIHwgJEhMY20p
OworKCRQUmNtIHwgJFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNt
IHwgJElTY20pKiAoJENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87CiskSkxjbSAoJEpM
Y20gfCAkSlZjbSB8ICRIMmNtIHwgJEgzY20pOworKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRK
VGNtKTsKKygkSlRjbSB8ICRIM2NtKSAkSlRjbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAk
SDJjbSB8ICRIM2NtKSAkSU5jbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRI
M2NtKSAkUE9jbTsKKyRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2Nt
KTsKKygkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7CiskQ00rICgkQUxjbSB8ICRITGNt
KTsKKyRJU2NtICgkQUxjbSB8ICRITGNtKTsKKygkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNt
OworJENNKyAkT1BjbTsKKyRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOworCisjaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUkljbSAkUkljbTsKKworI2VuZGlmCisKKyRF
bW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOworCishIXJldmVyc2U7CiskQ00rICRB
TFBsdXM7CiskQ00rICRCQTsKKyRDTSsgJEJCOworJENNKyAkQjI7CiskQ00rICRDTDsKKyRDTSsg
JENQOworJENNKyAkRVg7CiskQ00rICRHTDsKKyRDTSsgJEhMOworJENNKyAkSFk7CiskQ00rICRI
MjsKKyRDTSsgJEgzOworJENNKyAkSUQ7CiskQ00rICRJTjsKKyRDTSsgJElTOworJENNKyAkSkw7
CiskQ00rICRKVjsKKyRDTSsgJEpUOworJENNKyAkTlM7CiskQ00rICROVTsKKyRDTSsgJE9QOwor
JENNKyAkUE87CiskQ00rICRQUjsKKyRDTSsgJFFVOworCisjaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCisKKyAgICAkQ00rICRSSTsKKworI2VuZGlmCisKKyRDTSsgJFNZOworJENNKyAkV0o7
CiskQ00rOworJEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8
ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0p
KTsKK1skUFJdIC8gJENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOworJExCNEJy
ZWFrcyBbJExCNE5vbkJyZWFrcy0kQ01dOworJExCNEJyZWFrcyAkQ00rICRDQU5fQ007CiskTEYg
JENSOworWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07CitbJFNQICRaV10gJENNKyAkQ0FO
X0NNOworJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZhcj8gJEVtb2ppRm9y
U2VxczsKKyRDTSsgJENBTl9DTTsKKyRDTSogJFdKICRDTSogJENBTl9DTTsKKyRDTSogJFdKIFsk
TEI4Tm9uQnJlYWtzLSRDTV07CiskQ0FOVF9DTSAkQ00qICRXSjsKKyRDTSogJENBTl9DTSAkQ00q
ICRXSjsKKyRDTSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOwor
JENBTlRfQ00gJENNKiAkR0w7CiskQ00qICRDQU5fQ00gJENNKiAkR0w7CiskQ0wgJENNKyAkQ0FO
X0NNOworJENQICRDTSsgJENBTl9DTTsKKyRFWCAkQ00rICRDQU5fQ007CiskSVMgJENNKyAkQ0FO
X0NNOworJFNZICRDTSsgJENBTl9DTTsKKyRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOworJENQIFsk
TEI4Tm9uQnJlYWtzLSRDTV07CiskRVggWyRMQjhOb25CcmVha3MtJENNXTsKKyRJUyBbJExCOE5v
bkJyZWFrcy0kQ01dOworJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07CitbJENMICRDUCAkRVggJElT
ICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAKKyRDTSogJENBTl9DTSAkU1AqICRDTSogJE9QOwor
JENBTlRfQ00gJFNQKiAkQ00qICRPUDsKKyRBTF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAk
T1A7CiskQUxfRk9MTE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9QOworJENNKiAkQUxfRk9MTE9X
X0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRTWSAkQ00gJFNQKyAkT1A7CiskQ00qICRPUCAkU1Aq
ICRDTSogJFFVOworJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOworJENNKiAkQjIgJFNQ
KiAkQ00qICRCMjsKKyRDTSogJFFVICRDTSogJENBTl9DTTsKKyRDTSogJFFVICRMQjE4Tm9uQnJl
YWtzOworJENNKiAkQ0FOX0NNICRDTSogJFFVOworJENBTlRfQ00gJENNKiAkUVU7CiskQ00qICgk
QkEgfCAkSFkgfCAkTlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV07CiskQ00qIFskTEIyME5v
bkJyZWFrcy0kQ01dICRDTSogJEJCOworW14kQ0JdICRDTSogJEJCOworW14kQ0JdICRDTSogKCRI
WSB8ICRCQSkgJENNKiAkSEw7CiskQ00qICRITCAkQ00qICRTWTsKKyRDTSogJElOICRDTSogKCRB
TFBsdXMgfCAkSEwpOworJENNKiAkSU4gJENNKiAkRVg7CiskQ00qICRJTiAkQ00qICRJRDsKKyRD
TSogJElOICRDTSogJElOOworJENNKiAkSU4gJENNKiAkTlU7CiskQ00qICRQTyAkQ00qICRJRDsK
KyRDTSogJE5VICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENN
KiAkTlU7CiskQ00qICRJRCAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBS
OworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87CisoJENNKiAoJFBSIHwgJFBPKSk/ICgk
Q00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRTWSkpKiAkQ00qICROVSAoJENN
KiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87CiskQ00qICgkSDMgfCAkSDIgfCAk
SlYgfCAkSkwpICRDTSogJEpMOworJENNKiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOwor
JENNKiAkSlQgJENNKiAoJEgzIHwgJEpUKTsKKyRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRK
VCB8ICRKViB8ICRKTCk7CiskQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAk
SkwpOworJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsKKyRDTSog
KCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRI
TCkgJENNKiAkSVM7CiskQ00qICRPUCAkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKTsKKyRDTSog
KCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOworCisjaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCisKKyAgICAkQ00qICRSSSAkQ00qICRSSTsKKworI2VuZGlmCisKKyRFbW9qaU1vZHMg
JEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOworCishIXNhZmVfZm9yd2FyZDsKK1skQ00gJE9QICRR
VSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnldKyBbXiRDTSAkT1AgJFFV
ICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsKKyRkaWN0aW9uYXJ5ICRkaWN0
aW9uYXJ5OworICAgIAorISFzYWZlX3JldmVyc2U7CiskQ00rIFteJENNICRCSyAkQ1IgJExGICRO
TCAkWlcgJFNQXTsKKyRDTSsgJFNQIC8gLjsKKyRTUCsgJENNKiAkT1A7CiskU1ArICRDTSogJFFV
OworJFNQKyAkQ00qICgkQ0wgfCAkQ1ApOworJFNQKyAkQ00qICRCMjsKKyRDTSogKCRIWSB8ICRC
QSkgJENNKiAkSEw7CisoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOworKCRDTCB8ICRDUCkg
JENNKiAoJE5VIHwgJElTIHwgJFNZKTsKKyRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
UHJvbG9ndWUudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yUHJvbG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyODgzNTU2MzFlNDM3OTJkM2YzYzky
MzMzNzI3NjZhY2RlYzFiNDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKQEAgLTAsMCArMSwz
NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworISFjaGFpbjsKKyEh
TEJDTU5vQ2hhaW47CishIWxvb2tBaGVhZEhhcmRCcmVhazsKKworI2lmIEhBVkVfRVhUUkFfSUNV
X05BTUVEX1NFVFMKKworICAgICRDSiA9IFs6TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNl
X1N0YXJ0ZXI6XTsKKworI2Vsc2UKKworICAgICRDSiA9IFtcdTMwNDFcdTMwNDNcdTMwNDVcdTMw
NDdcdTMwNDlcdTMwNjNcdTMwODNcdTMwODVcdTMwODdcdTMwOEVcdTMwOTVcdTMwOTZcdTMwQTFc
dTMwQTNcdTMwQTVcdTMwQTdcdTMwQTlcdTMwQzNcdTMwRTNcdTMwRTVcdTMwRTdcdTMwRUVcdTMw
RjVcdTMwRjZcdTMwRkNcdTMxRjBcdTMxRjFcdTMxRjJcdTMxRjNcdTMxRjRcdTMxRjVcdTMxRjZc
dTMxRjdcdTMxRjhcdTMxRjlcdTMxRkFcdTMxRkJcdTMxRkNcdTMxRkRcdTMxRkVcdTMxRkZcdUZG
NjdcdUZGNjhcdUZGNjlcdUZGNkFcdUZGNkJcdUZGNkNcdUZGNkRcdUZGNkVcdUZGNkZcdUZGNzBd
OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMGJj
ZTVlZTllNjc5NjliYzg2YjA4NzUwNjYxNTRmN2ZjMzkzMTYxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksudHh0CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSAnJzsKKyRJTl9TVUIg
PSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUzMDFDXHUz
MEEwXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKICRCQV9T
VUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlMDNlNTExZWI5ODRmY2FhNjQ4NTQ0YWNjZWVmNmU3ODE1
ODgwMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisj
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1
MjAxM107CiskRVhfU1VCID0gW1x1MDAyMVx1MDAzRlx1RkYwMVx1RkYxRl07CiskSURfU1VCID0g
Jyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gW1x1MDAzQVx1MDAzQl07
CiskTlNfU1VCID0gW1x1MjAzQ1x1MjA0N1x1MjA0OFx1MjA0OVx1MzAwNVx1MzAxQ1x1MzAzQlx1
MzA5RFx1MzA5RVx1MzBBMFx1MzBGQlx1MzBGRFx1MzBGRVx1RkYxQVx1RkYxQlx1RkY2NV07Cisk
UE9fU1VCID0gW1x1MDAyNVx1MDBBMlx1MDBCMFx1MjAzMFx1MjAzMlx1MjAzM1x1MjEwM1x1RkYw
NVx1RkZFMF07CiskUFJfU1VCID0gW1x1MDAyNFx1MDBBM1x1MDBBNVx1MjBBQ1x1MjExNlx1RkYw
NFx1RkZFMVx1RkZFNV07CiskSURfQUREID0gWyRDSiAkQkFfU1VCICRFWF9TVUIgJElOX1NVQiAk
SVNfU1VCICROU19TVUIgJFBPX1NVQiAkUFJfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY4ZThlMWI1
YjY1YmM2MzQzYjUwMTJkOGY5OWQ4NDRhNDA0YWRkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VO
b25DSksudHh0CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
IyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJ
Tl9TVUIgPSBbXHUyMDI1XHUyMDI2XTsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUzMDA1
XHUzMDNCXHUzMDlEXHUzMDlFXHUzMEZEXHUzMEZFXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIg
PSAnJzsKKyRJRF9BREQgPSBbJENKICRJTl9TVUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZlYWI2OTQ5ODZl
ZjgyZDlhYjk1ZmIxOWI0MzUyYjY2MmQyNjNkYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4
dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0g
Jyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VC
ID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzBiY2U1ZWU5ZTY3OTY5YmM4NmIw
ODc1MDY2MTU0ZjdmYzM5MzE2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dApAQCAt
MCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFf
U1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSURf
U1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAxQ1x1MzBBMF07CiskUE9f
U1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJd
OworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0IGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25D
SksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM0OTQ1ODJjY2U5ZmQ0ZDA3ZDk4N2UzOTllYzk3NTIyNzNiNGRi
ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVY
X1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOwor
JE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFsk
Q0pdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0IGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ2ZWFiNjk0OTg2ZWY4MmQ5YWI5NWZiMTliNDM1MmI2NjJkMjYzZGIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
IyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9
ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NV
QiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5T
X0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0IGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ2ZWFiNjk0OTg2ZWY4MmQ5YWI5NWZiMTliNDM1MmI2NjJkMjYzZGIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisj
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NV
QiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5T
X1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOwor
JE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL2dlbmJyay9jbWVtb3J5LmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvZ2VuYnJrL2NtZW1vcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTgyYjVhYTdkMTY2OTMwMDY5ZDUyNDIz
YzdhMzczZTcyY2ViNTI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL2dlbmJyay9jbWVtb3J5LmgKQEAgLTAsMCArMSw2MDAgQEAKKy8qCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxNSwgSW50ZXJu
YXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBB
bGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUg
Q01FTU9SWS5ICisqCisqICBDb250YWlucyBzdGRsaWIuaC9zdHJpbmcuaCBtZW1vcnkgZnVuY3Rp
b25zCisqCisqIEBhdXRob3IgICAgICAgQmVydHJhbmQgQS4gRGFtaWJhCisqCisqIE1vZGlmaWNh
dGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9u
CisqICAgNi8yMC85OCAgICAgQmVydHJhbmQgICAgQ3JlYXRlZC4KKyogIDA1LzAzLzk5ICAgICBz
dGVwaGVuICAgICBDaGFuZ2VkIGZyb20gZnVuY3Rpb25zIHRvIG1hY3Jvcy4KKyoKKyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBDTUVNT1JZX0gKKyNkZWZpbmUgQ01FTU9SWV9I
CisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisjaW5jbHVkZSA8c3RkZGVmLmg+Cisj
aW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSAidW5pY29kZS9sb2NhbHBvaW50ZXIuaCIKKwor
I2lmIFVfREVCVUcgJiYgZGVmaW5lZChVUFJWX01BTExPQ19DT1VOVCkKKyNpbmNsdWRlIDxzdGRp
by5oPgorI2VuZGlmCisKKyNpZiBVX0RFQlVHCisKKy8qCisgKiBUaGUgQysrIHN0YW5kYXJkIHJl
cXVpcmVzIHRoYXQgdGhlIHNvdXJjZSBwb2ludGVyIGZvciBtZW1jcHkoKSAmIG1lbW1vdmUoKQor
ICogaXMgdmFsaWQsIG5vdCBOVUxMLCBhbmQgbm90IGF0IHRoZSBlbmQgb2YgYW4gYWxsb2NhdGVk
IG1lbW9yeSBibG9jay4KKyAqIEluIGRlYnVnIG1vZGUsIHdlIHJlYWQgb25lIGJ5dGUgZnJvbSB0
aGUgc291cmNlIHBvaW50IHRvIHZlcmlmeSB0aGF0IGl0J3MKKyAqIGEgdmFsaWQsIHJlYWRhYmxl
IHBvaW50ZXIuCisgKi8KKworVV9DQVBJIHZvaWQgdXBydl9jaGVja1ZhbGlkTWVtb3J5KGNvbnN0
IHZvaWQgKnAsIHNpemVfdCBuKTsKKworI2RlZmluZSB1cHJ2X21lbWNweShkc3QsIHNyYywgc2l6
ZSkgKCBcCisgICAgdXBydl9jaGVja1ZhbGlkTWVtb3J5KHNyYywgMSksIFwKKyAgICBVX1NUQU5E
QVJEX0NQUF9OQU1FU1BBQ0UgbWVtY3B5KGRzdCwgc3JjLCBzaXplKSkKKyNkZWZpbmUgdXBydl9t
ZW1tb3ZlKGRzdCwgc3JjLCBzaXplKSAoIFwKKyAgICB1cHJ2X2NoZWNrVmFsaWRNZW1vcnkoc3Jj
LCAxKSwgXAorICAgIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBtZW1tb3ZlKGRzdCwgc3JjLCBz
aXplKSkKKworI2Vsc2UKKworI2RlZmluZSB1cHJ2X21lbWNweShkc3QsIHNyYywgc2l6ZSkgVV9T
VEFOREFSRF9DUFBfTkFNRVNQQUNFIG1lbWNweShkc3QsIHNyYywgc2l6ZSkKKyNkZWZpbmUgdXBy
dl9tZW1tb3ZlKGRzdCwgc3JjLCBzaXplKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0UgbWVtbW92
ZShkc3QsIHNyYywgc2l6ZSkKKworI2VuZGlmICAvKiBVX0RFQlVHICovCisKKy8qKgorICogXGRl
ZiBVUFJWX0xFTkdUSE9GCisgKiBDb252ZW5pZW5jZSBtYWNybyB0byBkZXRlcm1pbmUgdGhlIGxl
bmd0aCBvZiBhIGZpeGVkIGFycmF5IGF0IGNvbXBpbGUtdGltZS4KKyAqIEBwYXJhbSBhcnJheSBB
IGZpeGVkIGxlbmd0aCBhcnJheQorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSBhcnJheSwg
aW4gZWxlbWVudHMKKyAqIEBpbnRlcm5hbAorICovCisjZGVmaW5lIFVQUlZfTEVOR1RIT0YoYXJy
YXkpIChpbnQzMl90KShzaXplb2YoYXJyYXkpL3NpemVvZigoYXJyYXkpWzBdKSkKKyNkZWZpbmUg
dXBydl9tZW1zZXQoYnVmZmVyLCBtYXJrLCBzaXplKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ug
bWVtc2V0KGJ1ZmZlciwgbWFyaywgc2l6ZSkKKyNkZWZpbmUgdXBydl9tZW1jbXAoYnVmZmVyMSwg
YnVmZmVyMiwgc2l6ZSkgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIG1lbWNtcChidWZmZXIxLCBi
dWZmZXIyLHNpemUpCisKK1VfQ0FQSSB2b2lkICogVV9FWFBPUlQyCit1cHJ2X21hbGxvYyhzaXpl
X3QgcykgVV9NQUxMT0NfQVRUUiBVX0FMTE9DX1NJWkVfQVRUUigxKTsKKworVV9DQVBJIHZvaWQg
KiBVX0VYUE9SVDIKK3VwcnZfcmVhbGxvYyh2b2lkICptZW0sIHNpemVfdCBzaXplKSBVX0FMTE9D
X1NJWkVfQVRUUigyKTsKKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1cHJ2X2ZyZWUodm9pZCAq
bWVtKTsKKworVV9DQVBJIHZvaWQgKiBVX0VYUE9SVDIKK3VwcnZfY2FsbG9jKHNpemVfdCBudW0s
IHNpemVfdCBzaXplKSBVX01BTExPQ19BVFRSIFVfQUxMT0NfU0laRV9BVFRSMigxLDIpOworCisv
KioKKyAqIFRoaXMgc2hvdWxkIGFsaWduIHRoZSBtZW1vcnkgcHJvcGVybHkgb24gYW55IG1hY2hp
bmUuCisgKiBUaGlzIGlzIHZlcnkgdXNlZnVsIGZvciB0aGUgc2FmZUNsb25lIGZ1bmN0aW9ucy4K
KyAqLwordHlwZWRlZiB1bmlvbiB7CisgICAgbG9uZyAgICB0MTsKKyAgICBkb3VibGUgIHQyOwor
ICAgIHZvaWQgICAqdDM7Cit9IFVBbGlnbmVkTWVtb3J5OworCisvKioKKyAqIEdldCB0aGUgbGVh
c3Qgc2lnbmlmaWNhbnQgYml0cyBvZiBhIHBvaW50ZXIgKGEgbWVtb3J5IGFkZHJlc3MpLgorICog
Rm9yIGV4YW1wbGUsIHdpdGggYSBtYXNrIG9mIDMsIHRoZSBtYWNybyBnZXRzIHRoZSAyIGxlYXN0
IHNpZ25pZmljYW50IGJpdHMsCisgKiB3aGljaCB3aWxsIGJlIDAgaWYgdGhlIHBvaW50ZXIgaXMg
MzItYml0ICg0LWJ5dGUpIGFsaWduZWQuCisgKgorICogcHRyZGlmZl90IGlzIHRoZSBtb3N0IGFw
cHJvcHJpYXRlIGludGVnZXIgdHlwZSB0byBjYXN0IHRvLgorICogc2l6ZV90IHNob3VsZCB3b3Jr
IHRvbywgc2luY2Ugb24gbW9zdCAob3IgYWxsPykgcGxhdGZvcm1zIGl0IGhhcyB0aGUgc2FtZQor
ICogd2lkdGggYXMgcHRyZGlmZl90LgorICovCisjZGVmaW5lIFVfUE9JTlRFUl9NQVNLX0xTQihw
dHIsIG1hc2spICgoKHB0cmRpZmZfdCkoY2hhciAqKShwdHIpKSAmIChtYXNrKSkKKworLyoqCisg
KiBHZXQgdGhlIGFtb3VudCBvZiBieXRlcyB0aGF0IGEgcG9pbnRlciBpcyBvZmYgYnkgZnJvbQor
ICogdGhlIHByZXZpb3VzIFVBbGlnbmVkTWVtb3J5LWFsaWduZWQgcG9pbnRlci4KKyAqLworI2Rl
ZmluZSBVX0FMSUdOTUVOVF9PRkZTRVQocHRyKSBVX1BPSU5URVJfTUFTS19MU0IocHRyLCBzaXpl
b2YoVUFsaWduZWRNZW1vcnkpIC0gMSkKKworLyoqCisgKiBHZXQgdGhlIGFtb3VudCBvZiBieXRl
cyB0byBhZGQgdG8gYSBwb2ludGVyCisgKiBpbiBvcmRlciB0byBnZXQgdGhlIG5leHQgVUFsaWdu
ZWRNZW1vcnktYWxpZ25lZCBhZGRyZXNzLgorICovCisjZGVmaW5lIFVfQUxJR05NRU5UX09GRlNF
VF9VUChwdHIpIChzaXplb2YoVUFsaWduZWRNZW1vcnkpIC0gVV9BTElHTk1FTlRfT0ZGU0VUKHB0
cikpCisKKy8qKgorICAqICBIZWFwIGNsZWFuIHVwIGZ1bmN0aW9uLCBjYWxsZWQgZnJvbSB1X2Ns
ZWFudXAoKQorICAqICAgIENsZWFycyBhbnkgdXNlciBoZWFwIGZ1bmN0aW9ucyBmcm9tIHVfc2V0
TWVtb3J5RnVuY3Rpb25zKCkKKyAgKiAgICBEb2VzIE5PVCBkZWFsbG9jYXRlIGFueSByZW1haW5p
bmcgYWxsb2NhdGVkIG1lbW9yeS4KKyAgKi8KK1VfQ0ZVTkMgVUJvb2wgCitjbWVtb3J5X2NsZWFu
dXAodm9pZCk7CisKKy8qKgorICogQSBmdW5jdGlvbiBjYWxsZWQgYnkgPFRUPnVoYXNoX3JlbW92
ZTwvVFQ+LAorICogPFRUPnVoYXNoX2Nsb3NlPC9UVD4sIG9yIDxUVD51aGFzaF9wdXQ8L1RUPiB0
byBkZWxldGUKKyAqIGFuIGV4aXN0aW5nIGtleSBvciB2YWx1ZS4KKyAqIEBwYXJhbSBvYmogQSBr
ZXkgb3IgdmFsdWUgc3RvcmVkIGluIGEgaGFzaHRhYmxlCisgKiBAc2VlIHVwcnZfZGVsZXRlVU9i
amVjdAorICovCit0eXBlZGVmIHZvaWQgVV9DQUxMQ09OViBVT2JqZWN0RGVsZXRlcih2b2lkKiBv
YmopOworCisvKioKKyAqIERlbGV0ZXIgZm9yIFVPYmplY3QgaW5zdGFuY2VzLgorICogV29ya3Mg
Zm9yIGFsbCBzdWJjbGFzc2VzIG9mIFVPYmplY3QgYmVjYXVzZSBpdCBoYXMgYSB2aXJ0dWFsIGRl
c3RydWN0b3IuCisgKi8KK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordXBydl9kZWxldGVVT2JqZWN0
KHZvaWQgKm9iaik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworCitVX05BTUVTUEFDRV9CRUdJTgor
CisvKioKKyAqICJTbWFydCBwb2ludGVyIiBjbGFzcywgZGVsZXRlcyBtZW1vcnkgdmlhIHVwcnZf
ZnJlZSgpLgorICogRm9yIG1vc3QgbWV0aG9kcyBzZWUgdGhlIExvY2FsUG9pbnRlckJhc2UgYmFz
ZSBjbGFzcy4KKyAqIEFkZHMgb3BlcmF0b3JbXSBmb3IgYXJyYXkgaXRlbSBhY2Nlc3MuCisgKgor
ICogQHNlZSBMb2NhbFBvaW50ZXJCYXNlCisgKi8KK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFz
cyBMb2NhbE1lbW9yeSA6IHB1YmxpYyBMb2NhbFBvaW50ZXJCYXNlPFQ+IHsKK3B1YmxpYzoKKyAg
ICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciB0YWtlcyBvd25lcnNoaXAuCisgICAgICogQHBhcmFt
IHAgc2ltcGxlIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgVCBpdGVtcyB0aGF0IGlzIGFkb3B0ZWQK
KyAgICAgKi8KKyAgICBleHBsaWNpdCBMb2NhbE1lbW9yeShUICpwPU5VTEwpIDogTG9jYWxQb2lu
dGVyQmFzZTxUPihwKSB7fQorICAgIC8qKgorICAgICAqIERlc3RydWN0b3IgZGVsZXRlcyB0aGUg
bWVtb3J5IGl0IG93bnMuCisgICAgICovCisgICAgfkxvY2FsTWVtb3J5KCkgeworICAgICAgICB1
cHJ2X2ZyZWUoTG9jYWxQb2ludGVyQmFzZTxUPjo6cHRyKTsKKyAgICB9CisgICAgLyoqCisgICAg
ICogRGVsZXRlcyB0aGUgYXJyYXkgaXQgb3ducywKKyAgICAgKiBhbmQgYWRvcHRzICh0YWtlcyBv
d25lcnNoaXAgb2YpIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSBwIHNpbXBsZSBw
b2ludGVyIHRvIGFuIGFycmF5IG9mIFQgaXRlbXMgdGhhdCBpcyBhZG9wdGVkCisgICAgICovCisg
ICAgdm9pZCBhZG9wdEluc3RlYWQoVCAqcCkgeworICAgICAgICB1cHJ2X2ZyZWUoTG9jYWxQb2lu
dGVyQmFzZTxUPjo6cHRyKTsKKyAgICAgICAgTG9jYWxQb2ludGVyQmFzZTxUPjo6cHRyPXA7Cisg
ICAgfQorICAgIC8qKgorICAgICAqIERlbGV0ZXMgdGhlIGFycmF5IGl0IG93bnMsIGFsbG9jYXRl
cyBhIG5ldyBvbmUgYW5kIHJlc2V0IGl0cyBieXRlcyB0byAwLgorICAgICAqIFJldHVybnMgdGhl
IG5ldyBhcnJheSBwb2ludGVyLgorICAgICAqIElmIHRoZSBhbGxvY2F0aW9uIGZhaWxzLCB0aGVu
IHRoZSBjdXJyZW50IGFycmF5IGlzIHVuY2hhbmdlZCBhbmQKKyAgICAgKiB0aGlzIG1ldGhvZCBy
ZXR1cm5zIE5VTEwuCisgICAgICogQHBhcmFtIG5ld0NhcGFjaXR5IG11c3QgYmUgPjAKKyAgICAg
KiBAcmV0dXJuIHRoZSBhbGxvY2F0ZWQgYXJyYXkgcG9pbnRlciwgb3IgTlVMTCBpZiB0aGUgYWxs
b2NhdGlvbiBmYWlsZWQKKyAgICAgKi8KKyAgICBpbmxpbmUgVCAqYWxsb2NhdGVJbnN0ZWFkQW5k
UmVzZXQoaW50MzJfdCBuZXdDYXBhY2l0eT0xKTsKKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRo
ZSBhcnJheSBpdCBvd25zIGFuZCBhbGxvY2F0ZXMgYSBuZXcgb25lLCBjb3B5aW5nIGxlbmd0aCBU
IGl0ZW1zLgorICAgICAqIFJldHVybnMgdGhlIG5ldyBhcnJheSBwb2ludGVyLgorICAgICAqIElm
IHRoZSBhbGxvY2F0aW9uIGZhaWxzLCB0aGVuIHRoZSBjdXJyZW50IGFycmF5IGlzIHVuY2hhbmdl
ZCBhbmQKKyAgICAgKiB0aGlzIG1ldGhvZCByZXR1cm5zIE5VTEwuCisgICAgICogQHBhcmFtIG5l
d0NhcGFjaXR5IG11c3QgYmUgPjAKKyAgICAgKiBAcGFyYW0gbGVuZ3RoIG51bWJlciBvZiBUIGl0
ZW1zIHRvIGJlIGNvcGllZCBmcm9tIHRoZSBvbGQgYXJyYXkgdG8gdGhlIG5ldyBvbmU7CisgICAg
ICogICAgICAgICAgICAgICBtdXN0IGJlIG5vIG1vcmUgdGhhbiB0aGUgY2FwYWNpdHkgb2YgdGhl
IG9sZCBhcnJheSwKKyAgICAgKiAgICAgICAgICAgICAgIHdoaWNoIHRoZSBjYWxsZXIgbXVzdCB0
cmFjayBiZWNhdXNlIHRoZSBMb2NhbE1lbW9yeSBkb2VzIG5vdCB0cmFjayBpdAorICAgICAqIEBy
ZXR1cm4gdGhlIGFsbG9jYXRlZCBhcnJheSBwb2ludGVyLCBvciBOVUxMIGlmIHRoZSBhbGxvY2F0
aW9uIGZhaWxlZAorICAgICAqLworICAgIGlubGluZSBUICphbGxvY2F0ZUluc3RlYWRBbmRDb3B5
KGludDMyX3QgbmV3Q2FwYWNpdHk9MSwgaW50MzJfdCBsZW5ndGg9MCk7CisgICAgLyoqCisgICAg
ICogQXJyYXkgaXRlbSBhY2Nlc3MgKHdyaXRhYmxlKS4KKyAgICAgKiBObyBpbmRleCBib3VuZHMg
Y2hlY2suCisgICAgICogQHBhcmFtIGkgYXJyYXkgaW5kZXgKKyAgICAgKiBAcmV0dXJuIHJlZmVy
ZW5jZSB0byB0aGUgYXJyYXkgaXRlbQorICAgICAqLworICAgIFQgJm9wZXJhdG9yW10ocHRyZGlm
Zl90IGkpIGNvbnN0IHsgcmV0dXJuIExvY2FsUG9pbnRlckJhc2U8VD46OnB0cltpXTsgfQorfTsK
KwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSBUICpMb2NhbE1lbW9yeTxUPjo6YWxsb2Nh
dGVJbnN0ZWFkQW5kUmVzZXQoaW50MzJfdCBuZXdDYXBhY2l0eSkgeworICAgIGlmKG5ld0NhcGFj
aXR5PjApIHsKKyAgICAgICAgVCAqcD0oVCAqKXVwcnZfbWFsbG9jKG5ld0NhcGFjaXR5KnNpemVv
ZihUKSk7CisgICAgICAgIGlmKHAhPU5VTEwpIHsKKyAgICAgICAgICAgIHVwcnZfbWVtc2V0KHAs
IDAsIG5ld0NhcGFjaXR5KnNpemVvZihUKSk7CisgICAgICAgICAgICB1cHJ2X2ZyZWUoTG9jYWxQ
b2ludGVyQmFzZTxUPjo6cHRyKTsKKyAgICAgICAgICAgIExvY2FsUG9pbnRlckJhc2U8VD46OnB0
cj1wOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwOworICAgIH0gZWxzZSB7CisgICAgICAg
IHJldHVybiBOVUxMOworICAgIH0KK30KKworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5l
IFQgKkxvY2FsTWVtb3J5PFQ+OjphbGxvY2F0ZUluc3RlYWRBbmRDb3B5KGludDMyX3QgbmV3Q2Fw
YWNpdHksIGludDMyX3QgbGVuZ3RoKSB7CisgICAgaWYobmV3Q2FwYWNpdHk+MCkgeworICAgICAg
ICBUICpwPShUICopdXBydl9tYWxsb2MobmV3Q2FwYWNpdHkqc2l6ZW9mKFQpKTsKKyAgICAgICAg
aWYocCE9TlVMTCkgeworICAgICAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAgICAgICAgICAg
ICBpZihsZW5ndGg+bmV3Q2FwYWNpdHkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVuZ3RoPW5l
d0NhcGFjaXR5OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1cHJ2X21lbWNw
eShwLCBMb2NhbFBvaW50ZXJCYXNlPFQ+OjpwdHIsIGxlbmd0aCpzaXplb2YoVCkpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgdXBydl9mcmVlKExvY2FsUG9pbnRlckJhc2U8VD46OnB0cik7
CisgICAgICAgICAgICBMb2NhbFBvaW50ZXJCYXNlPFQ+OjpwdHI9cDsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gcDsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9
Cit9CisKKy8qKgorICogU2ltcGxlIGFycmF5L2J1ZmZlciBtYW5hZ2VtZW50IGNsYXNzIHVzaW5n
IHVwcnZfbWFsbG9jKCkgYW5kIHVwcnZfZnJlZSgpLgorICogUHJvdmlkZXMgYW4gaW50ZXJuYWwg
YXJyYXkgd2l0aCBmaXhlZCBjYXBhY2l0eS4gQ2FuIGFsaWFzIGFub3RoZXIgYXJyYXkKKyAqIG9y
IGFsbG9jYXRlIG9uZS4KKyAqCisgKiBUaGUgYXJyYXkgYWRkcmVzcyBpcyBwcm9wZXJseSBhbGln
bmVkIGZvciB0eXBlIFQuIEl0IG1pZ2h0IG5vdCBiZSBwcm9wZXJseQorICogYWxpZ25lZCBmb3Ig
dHlwZXMgbGFyZ2VyIHRoYW4gVCAob3IgbGFyZ2VyIHRoYW4gdGhlIGxhcmdlc3Qgc3VidHlwZSBv
ZiBUKS4KKyAqCisgKiBVbmxpa2UgTG9jYWxNZW1vcnkgYW5kIExvY2FsQXJyYXksIHRoaXMgY2xh
c3MgbmV2ZXIgYWRvcHRzCisgKiAodGFrZXMgb3duZXJzaGlwIG9mKSBhbm90aGVyIGFycmF5Lgor
ICovCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBpbnQzMl90IHN0YWNrQ2FwYWNpdHk+CitjbGFzcyBN
YXliZVN0YWNrQXJyYXkgeworcHVibGljOgorICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3Ry
dWN0b3IgaW5pdGlhbGl6ZXMgd2l0aCBpbnRlcm5hbCBUW3N0YWNrQ2FwYWNpdHldIGJ1ZmZlci4K
KyAgICAgKi8KKyAgICBNYXliZVN0YWNrQXJyYXkoKSA6IHB0cihzdGFja0FycmF5KSwgY2FwYWNp
dHkoc3RhY2tDYXBhY2l0eSksIG5lZWRUb1JlbGVhc2UoRkFMU0UpIHt9CisgICAgLyoqCisgICAg
ICogRGVzdHJ1Y3RvciBkZWxldGVzIHRoZSBhcnJheSAoaWYgb3duZWQpLgorICAgICAqLworICAg
IH5NYXliZVN0YWNrQXJyYXkoKSB7IHJlbGVhc2VBcnJheSgpOyB9CisgICAgLyoqCisgICAgICog
UmV0dXJucyB0aGUgYXJyYXkgY2FwYWNpdHkgKG51bWJlciBvZiBUIGl0ZW1zKS4KKyAgICAgKiBA
cmV0dXJuIGFycmF5IGNhcGFjaXR5CisgICAgICovCisgICAgaW50MzJfdCBnZXRDYXBhY2l0eSgp
IGNvbnN0IHsgcmV0dXJuIGNhcGFjaXR5OyB9CisgICAgLyoqCisgICAgICogQWNjZXNzIHdpdGhv
dXQgb3duZXJzaGlwIGNoYW5nZS4KKyAgICAgKiBAcmV0dXJuIHRoZSBhcnJheSBwb2ludGVyCisg
ICAgICovCisgICAgVCAqZ2V0QWxpYXMoKSBjb25zdCB7IHJldHVybiBwdHI7IH0KKyAgICAvKioK
KyAgICAgKiBSZXR1cm5zIHRoZSBhcnJheSBsaW1pdC4gU2ltcGxlIGNvbnZlbmllbmNlIG1ldGhv
ZC4KKyAgICAgKiBAcmV0dXJuIGdldEFsaWFzKCkrZ2V0Q2FwYWNpdHkoKQorICAgICAqLworICAg
IFQgKmdldEFycmF5TGltaXQoKSBjb25zdCB7IHJldHVybiBnZXRBbGlhcygpK2NhcGFjaXR5OyB9
CisgICAgLy8gTm8gIm9wZXJhdG9yIFQgKigpIGNvbnN0IiBiZWNhdXNlIHRoYXQgY2FuIG1ha2UK
KyAgICAvLyBleHByZXNzaW9ucyBsaWtlIG1ic1tpbmRleF0gYW1iaWd1b3VzIGZvciBzb21lIGNv
bXBpbGVycy4KKyAgICAvKioKKyAgICAgKiBBcnJheSBpdGVtIGFjY2VzcyAoY29uc3QpLgorICAg
ICAqIE5vIGluZGV4IGJvdW5kcyBjaGVjay4KKyAgICAgKiBAcGFyYW0gaSBhcnJheSBpbmRleAor
ICAgICAqIEByZXR1cm4gcmVmZXJlbmNlIHRvIHRoZSBhcnJheSBpdGVtCisgICAgICovCisgICAg
Y29uc3QgVCAmb3BlcmF0b3JbXShwdHJkaWZmX3QgaSkgY29uc3QgeyByZXR1cm4gcHRyW2ldOyB9
CisgICAgLyoqCisgICAgICogQXJyYXkgaXRlbSBhY2Nlc3MgKHdyaXRhYmxlKS4KKyAgICAgKiBO
byBpbmRleCBib3VuZHMgY2hlY2suCisgICAgICogQHBhcmFtIGkgYXJyYXkgaW5kZXgKKyAgICAg
KiBAcmV0dXJuIHJlZmVyZW5jZSB0byB0aGUgYXJyYXkgaXRlbQorICAgICAqLworICAgIFQgJm9w
ZXJhdG9yW10ocHRyZGlmZl90IGkpIHsgcmV0dXJuIHB0cltpXTsgfQorICAgIC8qKgorICAgICAq
IERlbGV0ZXMgdGhlIGFycmF5IChpZiBvd25lZCkgYW5kIGFsaWFzZXMgYW5vdGhlciBvbmUsIG5v
IHRyYW5zZmVyIG9mIG93bmVyc2hpcC4KKyAgICAgKiBJZiB0aGUgYXJndW1lbnRzIGFyZSBpbGxl
Z2FsLCB0aGVuIHRoZSBjdXJyZW50IGFycmF5IGlzIHVuY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0g
b3RoZXJBcnJheSBtdXN0IG5vdCBiZSBOVUxMCisgICAgICogQHBhcmFtIG90aGVyQ2FwYWNpdHkg
bXVzdCBiZSA+MAorICAgICAqLworICAgIHZvaWQgYWxpYXNJbnN0ZWFkKFQgKm90aGVyQXJyYXks
IGludDMyX3Qgb3RoZXJDYXBhY2l0eSkgeworICAgICAgICBpZihvdGhlckFycmF5IT1OVUxMICYm
IG90aGVyQ2FwYWNpdHk+MCkgeworICAgICAgICAgICAgcmVsZWFzZUFycmF5KCk7CisgICAgICAg
ICAgICBwdHI9b3RoZXJBcnJheTsKKyAgICAgICAgICAgIGNhcGFjaXR5PW90aGVyQ2FwYWNpdHk7
CisgICAgICAgICAgICBuZWVkVG9SZWxlYXNlPUZBTFNFOworICAgICAgICB9CisgICAgfQorICAg
IC8qKgorICAgICAqIERlbGV0ZXMgdGhlIGFycmF5IChpZiBvd25lZCkgYW5kIGFsbG9jYXRlcyBh
IG5ldyBvbmUsIGNvcHlpbmcgbGVuZ3RoIFQgaXRlbXMuCisgICAgICogUmV0dXJucyB0aGUgbmV3
IGFycmF5IHBvaW50ZXIuCisgICAgICogSWYgdGhlIGFsbG9jYXRpb24gZmFpbHMsIHRoZW4gdGhl
IGN1cnJlbnQgYXJyYXkgaXMgdW5jaGFuZ2VkIGFuZAorICAgICAqIHRoaXMgbWV0aG9kIHJldHVy
bnMgTlVMTC4KKyAgICAgKiBAcGFyYW0gbmV3Q2FwYWNpdHkgY2FuIGJlIGxlc3MgdGhhbiBvciBn
cmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgY2FwYWNpdHk7CisgICAgICogICAgICAgICAgICAgICAg
ICAgIG11c3QgYmUgPjAKKyAgICAgKiBAcGFyYW0gbGVuZ3RoIG51bWJlciBvZiBUIGl0ZW1zIHRv
IGJlIGNvcGllZCBmcm9tIHRoZSBvbGQgYXJyYXkgdG8gdGhlIG5ldyBvbmUKKyAgICAgKiBAcmV0
dXJuIHRoZSBhbGxvY2F0ZWQgYXJyYXkgcG9pbnRlciwgb3IgTlVMTCBpZiB0aGUgYWxsb2NhdGlv
biBmYWlsZWQKKyAgICAgKi8KKyAgICBpbmxpbmUgVCAqcmVzaXplKGludDMyX3QgbmV3Q2FwYWNp
dHksIGludDMyX3QgbGVuZ3RoPTApOworICAgIC8qKgorICAgICAqIEdpdmVzIHVwIG93bmVyc2hp
cCBvZiB0aGUgYXJyYXkgaWYgb3duZWQsIG9yIGVsc2UgY2xvbmVzIGl0LAorICAgICAqIGNvcHlp
bmcgbGVuZ3RoIFQgaXRlbXM7IHJlc2V0cyBpdHNlbGYgdG8gdGhlIGludGVybmFsIHN0YWNrIGFy
cmF5LgorICAgICAqIFJldHVybnMgTlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBmYWlsZWQuCisgICAg
ICogQHBhcmFtIGxlbmd0aCBudW1iZXIgb2YgVCBpdGVtcyB0byBjb3B5IHdoZW4gY2xvbmluZywK
KyAgICAgKiAgICAgICAgYW5kIGNhcGFjaXR5IG9mIHRoZSBjbG9uZSB3aGVuIGNsb25pbmcKKyAg
ICAgKiBAcGFyYW0gcmVzdWx0Q2FwYWNpdHkgd2lsbCBiZSBzZXQgdG8gdGhlIHJldHVybmVkIGFy
cmF5J3MgY2FwYWNpdHkgKG91dHB1dC1vbmx5KQorICAgICAqIEByZXR1cm4gdGhlIGFycmF5IHBv
aW50ZXI7CisgICAgICogICAgICAgICBjYWxsZXIgYmVjb21lcyByZXNwb25zaWJsZSBmb3IgZGVs
ZXRpbmcgdGhlIGFycmF5CisgICAgICovCisgICAgaW5saW5lIFQgKm9ycGhhbk9yQ2xvbmUoaW50
MzJfdCBsZW5ndGgsIGludDMyX3QgJnJlc3VsdENhcGFjaXR5KTsKK3ByaXZhdGU6CisgICAgVCAq
cHRyOworICAgIGludDMyX3QgY2FwYWNpdHk7CisgICAgVUJvb2wgbmVlZFRvUmVsZWFzZTsKKyAg
ICBUIHN0YWNrQXJyYXlbc3RhY2tDYXBhY2l0eV07CisgICAgdm9pZCByZWxlYXNlQXJyYXkoKSB7
CisgICAgICAgIGlmKG5lZWRUb1JlbGVhc2UpIHsKKyAgICAgICAgICAgIHVwcnZfZnJlZShwdHIp
OworICAgICAgICB9CisgICAgfQorICAgIC8qIE5vIGNvbXBhcmlzb24gb3BlcmF0b3JzIHdpdGgg
b3RoZXIgTWF5YmVTdGFja0FycmF5J3MuICovCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1h
eWJlU3RhY2tBcnJheSAmIC8qb3RoZXIqLykge3JldHVybiBGQUxTRTt9CisgICAgYm9vbCBvcGVy
YXRvciE9KGNvbnN0IE1heWJlU3RhY2tBcnJheSAmIC8qb3RoZXIqLykge3JldHVybiBUUlVFO30K
KyAgICAvKiBObyBvd25lcnNoaXAgdHJhbnNmZXI6IE5vIGNvcHkgY29uc3RydWN0b3IsIG5vIGFz
c2lnbm1lbnQgb3BlcmF0b3IuICovCisgICAgTWF5YmVTdGFja0FycmF5KGNvbnN0IE1heWJlU3Rh
Y2tBcnJheSAmIC8qb3RoZXIqLykge30KKyAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBNYXliZVN0
YWNrQXJyYXkgJiAvKm90aGVyKi8pIHt9CisKKyAgICAvLyBObyBoZWFwIGFsbG9jYXRpb24uIFVz
ZSBvbmx5IG9uIHRoZSBzdGFjay4KKyAgICAvLyAgIChEZWNsYXJpbmcgdGhlc2UgZnVuY3Rpb25z
IHByaXZhdGUgdHJpZ2dlcnMgYSBjYXNjYWRlIG9mIHByb2JsZW1zOgorICAgIC8vICAgICAgTVNW
QyBpbnNpc3RzIG9uIGV4cG9ydGluZyBhbiBpbnN0YW50aWF0aW9uIG9mIE1heWJlU3RhY2tBcnJh
eSwgd2hpY2gKKyAgICAvLyAgICAgIHJlcXVpcmVzIHRoYXQgYWxsIGZ1bmN0aW9ucyBiZSBkZWZp
bmVkLgorICAgIC8vICAgICAgQW4gZW1wdHkgaW1wbGVtZW50YXRpb24gb2YgbmV3KCkgaXMgcmVq
ZWN0ZWQsIGl0IG11c3QgcmV0dXJuIGEgdmFsdWUuCisgICAgLy8gICAgICBSZXR1cm5pbmcgTlVM
TCBpcyByZWplY3RlZCBieSBnY2MgZm9yIG9wZXJhdG9yIG5ldy4KKyAgICAvLyAgICAgIFRoZSBl
eHBlZGllbnQgdGhpbmcgaXMganVzdCBub3QgdG8gb3ZlcnJpZGUgb3BlcmF0b3IgbmV3LgorICAg
IC8vICAgICAgV2hpbGUgcmVsYXRpdmVseSBwb2ludGxlc3MsIGhlYXAgYWxsb2NhdGVkIGluc3Rh
bmNlcyB3aWxsIGZ1bmN0aW9uLgorICAgIC8vIHN0YXRpYyB2b2lkICogVV9FWFBPUlQyIG9wZXJh
dG9yIG5ldyhzaXplX3Qgc2l6ZSk7IAorICAgIC8vIHN0YXRpYyB2b2lkICogVV9FWFBPUlQyIG9w
ZXJhdG9yIG5ld1tdKHNpemVfdCBzaXplKTsKKyNpZiBVX0hBVkVfUExBQ0VNRU5UX05FVworICAg
IC8vIHN0YXRpYyB2b2lkICogVV9FWFBPUlQyIG9wZXJhdG9yIG5ldyhzaXplX3QsIHZvaWQgKnB0
cik7CisjZW5kaWYKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIGludDMyX3Qgc3RhY2tDYXBh
Y2l0eT4KK2lubGluZSBUICpNYXliZVN0YWNrQXJyYXk8VCwgc3RhY2tDYXBhY2l0eT46OnJlc2l6
ZShpbnQzMl90IG5ld0NhcGFjaXR5LCBpbnQzMl90IGxlbmd0aCkgeworICAgIGlmKG5ld0NhcGFj
aXR5PjApIHsKKyNpZiBVX0RFQlVHICYmIGRlZmluZWQoVVBSVl9NQUxMT0NfQ09VTlQpCisgICAg
ICA6OmZwcmludGYoOjpzdGRlcnIsIk1heWJlU3RhY0FycmF5IChyZXNpemUpIGFsbG9jICVkICog
JWx1XG4iLCBuZXdDYXBhY2l0eSxzaXplb2YoVCkpOworI2VuZGlmCisgICAgICAgIFQgKnA9KFQg
Kil1cHJ2X21hbGxvYyhuZXdDYXBhY2l0eSpzaXplb2YoVCkpOworICAgICAgICBpZihwIT1OVUxM
KSB7CisgICAgICAgICAgICBpZihsZW5ndGg+MCkgeworICAgICAgICAgICAgICAgIGlmKGxlbmd0
aD5jYXBhY2l0eSkgeworICAgICAgICAgICAgICAgICAgICBsZW5ndGg9Y2FwYWNpdHk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGxlbmd0aD5uZXdDYXBhY2l0eSkgewor
ICAgICAgICAgICAgICAgICAgICBsZW5ndGg9bmV3Q2FwYWNpdHk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIHVwcnZfbWVtY3B5KHAsIHB0ciwgbGVuZ3RoKnNpemVvZihUKSk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZWxlYXNlQXJyYXkoKTsKKyAgICAgICAgICAg
IHB0cj1wOworICAgICAgICAgICAgY2FwYWNpdHk9bmV3Q2FwYWNpdHk7CisgICAgICAgICAgICBu
ZWVkVG9SZWxlYXNlPVRSVUU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHA7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCBpbnQzMl90IHN0YWNrQ2FwYWNpdHk+CitpbmxpbmUgVCAqTWF5YmVTdGFja0FycmF5PFQs
IHN0YWNrQ2FwYWNpdHk+OjpvcnBoYW5PckNsb25lKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90ICZy
ZXN1bHRDYXBhY2l0eSkgeworICAgIFQgKnA7CisgICAgaWYobmVlZFRvUmVsZWFzZSkgeworICAg
ICAgICBwPXB0cjsKKyAgICB9IGVsc2UgaWYobGVuZ3RoPD0wKSB7CisgICAgICAgIHJldHVybiBO
VUxMOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmKGxlbmd0aD5jYXBhY2l0eSkgeworICAgICAg
ICAgICAgbGVuZ3RoPWNhcGFjaXR5OworICAgICAgICB9CisgICAgICAgIHA9KFQgKil1cHJ2X21h
bGxvYyhsZW5ndGgqc2l6ZW9mKFQpKTsKKyNpZiBVX0RFQlVHICYmIGRlZmluZWQoVVBSVl9NQUxM
T0NfQ09VTlQpCisgICAgICA6OmZwcmludGYoOjpzdGRlcnIsIk1heWJlU3RhY0FycmF5IChvcnBo
YW4pIGFsbG9jICVkICogJWx1XG4iLCBsZW5ndGgsc2l6ZW9mKFQpKTsKKyNlbmRpZgorICAgICAg
ICBpZihwPT1OVUxMKSB7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAg
ICAgICB1cHJ2X21lbWNweShwLCBwdHIsIGxlbmd0aCpzaXplb2YoVCkpOworICAgIH0KKyAgICBy
ZXN1bHRDYXBhY2l0eT1sZW5ndGg7CisgICAgcHRyPXN0YWNrQXJyYXk7CisgICAgY2FwYWNpdHk9
c3RhY2tDYXBhY2l0eTsKKyAgICBuZWVkVG9SZWxlYXNlPUZBTFNFOworICAgIHJldHVybiBwOwor
fQorCisvKioKKyAqIFZhcmlhbnQgb2YgTWF5YmVTdGFja0FycmF5IHRoYXQgYWxsb2NhdGVzIGEg
aGVhZGVyIHN0cnVjdCBhbmQgYW4gYXJyYXkKKyAqIGluIG9uZSBjb250aWd1b3VzIG1lbW9yeSBi
bG9jaywgdXNpbmcgdXBydl9tYWxsb2MoKSBhbmQgdXBydl9mcmVlKCkuCisgKiBQcm92aWRlcyBp
bnRlcm5hbCBtZW1vcnkgd2l0aCBmaXhlZCBhcnJheSBjYXBhY2l0eS4gQ2FuIGFsaWFzIGFub3Ro
ZXIgbWVtb3J5CisgKiBibG9jayBvciBhbGxvY2F0ZSBvbmUuCisgKiBUaGUgc3RhY2tDYXBhY2l0
eSBpcyB0aGUgbnVtYmVyIG9mIFQgaXRlbXMgaW4gdGhlIGludGVybmFsIG1lbW9yeSwKKyAqIG5v
dCBjb3VudGluZyB0aGUgSCBoZWFkZXIuCisgKiBVbmxpa2UgTG9jYWxNZW1vcnkgYW5kIExvY2Fs
QXJyYXksIHRoaXMgY2xhc3MgbmV2ZXIgYWRvcHRzCisgKiAodGFrZXMgb3duZXJzaGlwIG9mKSBh
bm90aGVyIG1lbW9yeSBibG9jay4KKyAqLwordGVtcGxhdGU8dHlwZW5hbWUgSCwgdHlwZW5hbWUg
VCwgaW50MzJfdCBzdGFja0NhcGFjaXR5PgorY2xhc3MgTWF5YmVTdGFja0hlYWRlckFuZEFycmF5
IHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yIGluaXRpYWxp
emVzIHdpdGggaW50ZXJuYWwgSCtUW3N0YWNrQ2FwYWNpdHldIGJ1ZmZlci4KKyAgICAgKi8KKyAg
ICBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkoKSA6IHB0cigmc3RhY2tIZWFkZXIpLCBjYXBhY2l0
eShzdGFja0NhcGFjaXR5KSwgbmVlZFRvUmVsZWFzZShGQUxTRSkge30KKyAgICAvKioKKyAgICAg
KiBEZXN0cnVjdG9yIGRlbGV0ZXMgdGhlIG1lbW9yeSAoaWYgb3duZWQpLgorICAgICAqLworICAg
IH5NYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkoKSB7IHJlbGVhc2VNZW1vcnkoKTsgfQorICAgIC8q
KgorICAgICAqIFJldHVybnMgdGhlIGFycmF5IGNhcGFjaXR5IChudW1iZXIgb2YgVCBpdGVtcyku
CisgICAgICogQHJldHVybiBhcnJheSBjYXBhY2l0eQorICAgICAqLworICAgIGludDMyX3QgZ2V0
Q2FwYWNpdHkoKSBjb25zdCB7IHJldHVybiBjYXBhY2l0eTsgfQorICAgIC8qKgorICAgICAqIEFj
Y2VzcyB3aXRob3V0IG93bmVyc2hpcCBjaGFuZ2UuCisgICAgICogQHJldHVybiB0aGUgaGVhZGVy
IHBvaW50ZXIKKyAgICAgKi8KKyAgICBIICpnZXRBbGlhcygpIGNvbnN0IHsgcmV0dXJuIHB0cjsg
fQorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGFycmF5IHN0YXJ0LgorICAgICAqIEByZXR1
cm4gYXJyYXkgc3RhcnQsIHNhbWUgYWRkcmVzcyBhcyBnZXRBbGlhcygpKzEKKyAgICAgKi8KKyAg
ICBUICpnZXRBcnJheVN0YXJ0KCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUICo+
KGdldEFsaWFzKCkrMSk7IH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBhcnJheSBsaW1p
dC4KKyAgICAgKiBAcmV0dXJuIGFycmF5IGxpbWl0CisgICAgICovCisgICAgVCAqZ2V0QXJyYXlM
aW1pdCgpIGNvbnN0IHsgcmV0dXJuIGdldEFycmF5U3RhcnQoKStjYXBhY2l0eTsgfQorICAgIC8q
KgorICAgICAqIEFjY2VzcyB3aXRob3V0IG93bmVyc2hpcCBjaGFuZ2UuIFNhbWUgYXMgZ2V0QWxp
YXMoKS4KKyAgICAgKiBBIGNsYXNzIGluc3RhbmNlIGNhbiBiZSB1c2VkIGRpcmVjdGx5IGluIGV4
cHJlc3Npb25zIHRoYXQgdGFrZSBhIFQgKi4KKyAgICAgKiBAcmV0dXJuIHRoZSBoZWFkZXIgcG9p
bnRlcgorICAgICAqLworICAgIG9wZXJhdG9yIEggKigpIGNvbnN0IHsgcmV0dXJuIHB0cjsgfQor
ICAgIC8qKgorICAgICAqIEFycmF5IGl0ZW0gYWNjZXNzICh3cml0YWJsZSkuCisgICAgICogTm8g
aW5kZXggYm91bmRzIGNoZWNrLgorICAgICAqIEBwYXJhbSBpIGFycmF5IGluZGV4CisgICAgICog
QHJldHVybiByZWZlcmVuY2UgdG8gdGhlIGFycmF5IGl0ZW0KKyAgICAgKi8KKyAgICBUICZvcGVy
YXRvcltdKHB0cmRpZmZfdCBpKSB7IHJldHVybiBnZXRBcnJheVN0YXJ0KClbaV07IH0KKyAgICAv
KioKKyAgICAgKiBEZWxldGVzIHRoZSBtZW1vcnkgYmxvY2sgKGlmIG93bmVkKSBhbmQgYWxpYXNl
cyBhbm90aGVyIG9uZSwgbm8gdHJhbnNmZXIgb2Ygb3duZXJzaGlwLgorICAgICAqIElmIHRoZSBh
cmd1bWVudHMgYXJlIGlsbGVnYWwsIHRoZW4gdGhlIGN1cnJlbnQgbWVtb3J5IGlzIHVuY2hhbmdl
ZC4KKyAgICAgKiBAcGFyYW0gb3RoZXJBcnJheSBtdXN0IG5vdCBiZSBOVUxMCisgICAgICogQHBh
cmFtIG90aGVyQ2FwYWNpdHkgbXVzdCBiZSA+MAorICAgICAqLworICAgIHZvaWQgYWxpYXNJbnN0
ZWFkKEggKm90aGVyTWVtb3J5LCBpbnQzMl90IG90aGVyQ2FwYWNpdHkpIHsKKyAgICAgICAgaWYo
b3RoZXJNZW1vcnkhPU5VTEwgJiYgb3RoZXJDYXBhY2l0eT4wKSB7CisgICAgICAgICAgICByZWxl
YXNlTWVtb3J5KCk7CisgICAgICAgICAgICBwdHI9b3RoZXJNZW1vcnk7CisgICAgICAgICAgICBj
YXBhY2l0eT1vdGhlckNhcGFjaXR5OworICAgICAgICAgICAgbmVlZFRvUmVsZWFzZT1GQUxTRTsK
KyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBtZW1vcnkgYmxv
Y2sgKGlmIG93bmVkKSBhbmQgYWxsb2NhdGVzIGEgbmV3IG9uZSwKKyAgICAgKiBjb3B5aW5nIHRo
ZSBoZWFkZXIgYW5kIGxlbmd0aCBUIGFycmF5IGl0ZW1zLgorICAgICAqIFJldHVybnMgdGhlIG5l
dyBoZWFkZXIgcG9pbnRlci4KKyAgICAgKiBJZiB0aGUgYWxsb2NhdGlvbiBmYWlscywgdGhlbiB0
aGUgY3VycmVudCBtZW1vcnkgaXMgdW5jaGFuZ2VkIGFuZAorICAgICAqIHRoaXMgbWV0aG9kIHJl
dHVybnMgTlVMTC4KKyAgICAgKiBAcGFyYW0gbmV3Q2FwYWNpdHkgY2FuIGJlIGxlc3MgdGhhbiBv
ciBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgY2FwYWNpdHk7CisgICAgICogICAgICAgICAgICAg
ICAgICAgIG11c3QgYmUgPjAKKyAgICAgKiBAcGFyYW0gbGVuZ3RoIG51bWJlciBvZiBUIGl0ZW1z
IHRvIGJlIGNvcGllZCBmcm9tIHRoZSBvbGQgYXJyYXkgdG8gdGhlIG5ldyBvbmUKKyAgICAgKiBA
cmV0dXJuIHRoZSBhbGxvY2F0ZWQgcG9pbnRlciwgb3IgTlVMTCBpZiB0aGUgYWxsb2NhdGlvbiBm
YWlsZWQKKyAgICAgKi8KKyAgICBpbmxpbmUgSCAqcmVzaXplKGludDMyX3QgbmV3Q2FwYWNpdHks
IGludDMyX3QgbGVuZ3RoPTApOworICAgIC8qKgorICAgICAqIEdpdmVzIHVwIG93bmVyc2hpcCBv
ZiB0aGUgbWVtb3J5IGlmIG93bmVkLCBvciBlbHNlIGNsb25lcyBpdCwKKyAgICAgKiBjb3B5aW5n
IHRoZSBoZWFkZXIgYW5kIGxlbmd0aCBUIGFycmF5IGl0ZW1zOyByZXNldHMgaXRzZWxmIHRvIHRo
ZSBpbnRlcm5hbCBtZW1vcnkuCisgICAgICogUmV0dXJucyBOVUxMIGlmIHRoZSBhbGxvY2F0aW9u
IGZhaWxlZC4KKyAgICAgKiBAcGFyYW0gbGVuZ3RoIG51bWJlciBvZiBUIGl0ZW1zIHRvIGNvcHkg
d2hlbiBjbG9uaW5nLAorICAgICAqICAgICAgICBhbmQgYXJyYXkgY2FwYWNpdHkgb2YgdGhlIGNs
b25lIHdoZW4gY2xvbmluZworICAgICAqIEBwYXJhbSByZXN1bHRDYXBhY2l0eSB3aWxsIGJlIHNl
dCB0byB0aGUgcmV0dXJuZWQgYXJyYXkncyBjYXBhY2l0eSAob3V0cHV0LW9ubHkpCisgICAgICog
QHJldHVybiB0aGUgaGVhZGVyIHBvaW50ZXI7CisgICAgICogICAgICAgICBjYWxsZXIgYmVjb21l
cyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgdGhlIGFycmF5CisgICAgICovCisgICAgaW5saW5l
IEggKm9ycGhhbk9yQ2xvbmUoaW50MzJfdCBsZW5ndGgsIGludDMyX3QgJnJlc3VsdENhcGFjaXR5
KTsKK3ByaXZhdGU6CisgICAgSCAqcHRyOworICAgIGludDMyX3QgY2FwYWNpdHk7CisgICAgVUJv
b2wgbmVlZFRvUmVsZWFzZTsKKyAgICAvLyBzdGFja0hlYWRlciBtdXN0IHByZWNlZGUgc3RhY2tB
cnJheSBpbW1lZGlhdGVseS4KKyAgICBIIHN0YWNrSGVhZGVyOworICAgIFQgc3RhY2tBcnJheVtz
dGFja0NhcGFjaXR5XTsKKyAgICB2b2lkIHJlbGVhc2VNZW1vcnkoKSB7CisgICAgICAgIGlmKG5l
ZWRUb1JlbGVhc2UpIHsKKyAgICAgICAgICAgIHVwcnZfZnJlZShwdHIpOworICAgICAgICB9Cisg
ICAgfQorICAgIC8qIE5vIGNvbXBhcmlzb24gb3BlcmF0b3JzIHdpdGggb3RoZXIgTWF5YmVTdGFj
a0hlYWRlckFuZEFycmF5J3MuICovCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1heWJlU3Rh
Y2tIZWFkZXJBbmRBcnJheSAmIC8qb3RoZXIqLykge3JldHVybiBGQUxTRTt9CisgICAgYm9vbCBv
cGVyYXRvciE9KGNvbnN0IE1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSAmIC8qb3RoZXIqLykge3Jl
dHVybiBUUlVFO30KKyAgICAvKiBObyBvd25lcnNoaXAgdHJhbnNmZXI6IE5vIGNvcHkgY29uc3Ry
dWN0b3IsIG5vIGFzc2lnbm1lbnQgb3BlcmF0b3IuICovCisgICAgTWF5YmVTdGFja0hlYWRlckFu
ZEFycmF5KGNvbnN0IE1heWJlU3RhY2tIZWFkZXJBbmRBcnJheSAmIC8qb3RoZXIqLykge30KKyAg
ICB2b2lkIG9wZXJhdG9yPShjb25zdCBNYXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgJiAvKm90aGVy
Ki8pIHt9CisKKyAgICAvLyBObyBoZWFwIGFsbG9jYXRpb24uIFVzZSBvbmx5IG9uIHRoZSBzdGFj
ay4KKyAgICAvLyAgIChEZWNsYXJpbmcgdGhlc2UgZnVuY3Rpb25zIHByaXZhdGUgdHJpZ2dlcnMg
YSBjYXNjYWRlIG9mIHByb2JsZW1zOworICAgIC8vICAgIHNlZSB0aGUgTWF5YmVTdGFja0FycmF5
IGNsYXNzIGZvciBkZXRhaWxzLikKKyAgICAvLyBzdGF0aWMgdm9pZCAqIFVfRVhQT1JUMiBvcGVy
YXRvciBuZXcoc2l6ZV90IHNpemUpOyAKKyAgICAvLyBzdGF0aWMgdm9pZCAqIFVfRVhQT1JUMiBv
cGVyYXRvciBuZXdbXShzaXplX3Qgc2l6ZSk7CisjaWYgVV9IQVZFX1BMQUNFTUVOVF9ORVcKKyAg
ICAvLyBzdGF0aWMgdm9pZCAqIFVfRVhQT1JUMiBvcGVyYXRvciBuZXcoc2l6ZV90LCB2b2lkICpw
dHIpOworI2VuZGlmCit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBILCB0eXBlbmFtZSBULCBpbnQz
Ml90IHN0YWNrQ2FwYWNpdHk+CitpbmxpbmUgSCAqTWF5YmVTdGFja0hlYWRlckFuZEFycmF5PEgs
IFQsIHN0YWNrQ2FwYWNpdHk+OjpyZXNpemUoaW50MzJfdCBuZXdDYXBhY2l0eSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQzMl90IGxlbmd0aCkgeworICAgIGlmKG5ld0NhcGFjaXR5Pj0wKSB7CisjaWYgVV9ERUJVRyAm
JiBkZWZpbmVkKFVQUlZfTUFMTE9DX0NPVU5UKQorICAgICAgOjpmcHJpbnRmKDo6c3RkZXJyLCJN
YXliZVN0YWNrSGVhZGVyQW5kQXJyYXkgYWxsb2MgJWQgKyAlZCAqICV1bFxuIiwgc2l6ZW9mKEgp
LG5ld0NhcGFjaXR5LHNpemVvZihUKSk7CisjZW5kaWYKKyAgICAgICAgSCAqcD0oSCAqKXVwcnZf
bWFsbG9jKHNpemVvZihIKStuZXdDYXBhY2l0eSpzaXplb2YoVCkpOworICAgICAgICBpZihwIT1O
VUxMKSB7CisgICAgICAgICAgICBpZihsZW5ndGg8MCkgeworICAgICAgICAgICAgICAgIGxlbmd0
aD0wOworICAgICAgICAgICAgfSBlbHNlIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICAgICAg
aWYobGVuZ3RoPmNhcGFjaXR5KSB7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD1jYXBhY2l0
eTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYobGVuZ3RoPm5ld0NhcGFj
aXR5KSB7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aD1uZXdDYXBhY2l0eTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB1cHJ2X21lbWNweShwLCBwdHIs
IHNpemVvZihIKStsZW5ndGgqc2l6ZW9mKFQpKTsKKyAgICAgICAgICAgIHJlbGVhc2VNZW1vcnko
KTsKKyAgICAgICAgICAgIHB0cj1wOworICAgICAgICAgICAgY2FwYWNpdHk9bmV3Q2FwYWNpdHk7
CisgICAgICAgICAgICBuZWVkVG9SZWxlYXNlPVRSVUU7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIHA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBILCB0eXBlbmFtZSBULCBpbnQzMl90IHN0YWNrQ2FwYWNpdHk+Citp
bmxpbmUgSCAqTWF5YmVTdGFja0hlYWRlckFuZEFycmF5PEgsIFQsIHN0YWNrQ2FwYWNpdHk+Ojpv
cnBoYW5PckNsb25lKGludDMyX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICZyZXN1
bHRDYXBhY2l0eSkgeworICAgIEggKnA7CisgICAgaWYobmVlZFRvUmVsZWFzZSkgeworICAgICAg
ICBwPXB0cjsKKyAgICB9IGVsc2UgeworICAgICAgICBpZihsZW5ndGg8MCkgeworICAgICAgICAg
ICAgbGVuZ3RoPTA7CisgICAgICAgIH0gZWxzZSBpZihsZW5ndGg+Y2FwYWNpdHkpIHsKKyAgICAg
ICAgICAgIGxlbmd0aD1jYXBhY2l0eTsKKyAgICAgICAgfQorI2lmIFVfREVCVUcgJiYgZGVmaW5l
ZChVUFJWX01BTExPQ19DT1VOVCkKKyAgICAgIDo6ZnByaW50Zig6OnN0ZGVyciwiTWF5YmVTdGFj
a0hlYWRlckFuZEFycmF5IChvcnBoYW4pIGFsbG9jICV1bCArICVkICogJWx1XG4iLCBzaXplb2Yo
SCksbGVuZ3RoLHNpemVvZihUKSk7CisjZW5kaWYKKyAgICAgICAgcD0oSCAqKXVwcnZfbWFsbG9j
KHNpemVvZihIKStsZW5ndGgqc2l6ZW9mKFQpKTsKKyAgICAgICAgaWYocD09TlVMTCkgeworICAg
ICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgdXBydl9tZW1jcHkocCwg
cHRyLCBzaXplb2YoSCkrbGVuZ3RoKnNpemVvZihUKSk7CisgICAgfQorICAgIHJlc3VsdENhcGFj
aXR5PWxlbmd0aDsKKyAgICBwdHI9JnN0YWNrSGVhZGVyOworICAgIGNhcGFjaXR5PXN0YWNrQ2Fw
YWNpdHk7CisgICAgbmVlZFRvUmVsZWFzZT1GQUxTRTsKKyAgICByZXR1cm4gcDsKK30KKworVV9O
QU1FU1BBQ0VfRU5ECisKKyNlbmRpZiAgLyogX19jcGx1c3BsdXMgKi8KKyNlbmRpZiAgLyogQ01F
TU9SWV9IICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Z2VuYnJrL2NzdHJpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5i
cmsvY3N0cmluZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0YjY4ZmZhYmIyNmJjYjkxNTYyNmVkNGQxMTVlOTQy
ZDM3YmI3NzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvZ2VuYnJrL2NzdHJpbmcuaApAQCAtMCwwICsxLDE0MCBAQAorLyoKKyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDEyLCBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBDU1RSSU5H
LkgKKyoKKyogQ29udGFpbnMgQ1N0cmluZyBpbnRlcmZhY2UKKyoKKyogQGF1dGhvciAgICAgICBI
ZWxlbmEgU2hpaAorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAg
ICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDYvMTcvOTggICAgIGhzaGloICAgICAgIENy
ZWF0ZWQuCisqICAwNS8wMy85OSAgICAgc3RlcGhlbiAgICAgQ2hhbmdlZCBmcm9tIGZ1bmN0aW9u
cyB0byBtYWNyb3MuCisqICAwNi8xNC85OSAgICAgc3RlcGhlbiAgICAgQWRkZWQgaWN1X3N0cm5j
YXQsIGljdV9zdHJuY21wLCBpY3VfdG9sb3dlcgorKgorKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
LworCisjaWZuZGVmIENTVFJJTkdfSAorI2RlZmluZSBDU1RSSU5HX0ggMQorCisjaW5jbHVkZSAi
dW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJjbWVtb3J5LmgiCisjaW5jbHVkZSA8c3RyaW5n
Lmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKworI2RlZmluZSB1
cHJ2X3N0cmNweShkc3QsIHNyYykgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFICBzdHJjcHkoZHN0
LCBzcmMpCisjZGVmaW5lIHVwcnZfc3RybGVuKHN0cikgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNF
IHN0cmxlbihzdHIpCisjZGVmaW5lIHVwcnZfc3RyY21wKHMxLCBzMikgVV9TVEFOREFSRF9DUFBf
TkFNRVNQQUNFIHN0cmNtcChzMSwgczIpCisjZGVmaW5lIHVwcnZfc3RyY2F0KGRzdCwgc3JjKSBV
X1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RyY2F0KGRzdCwgc3JjKQorI2RlZmluZSB1cHJ2X3N0
cmNocihzLCBjKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BBQ0Ugc3RyY2hyKHMsIGMpCisjZGVmaW5l
IHVwcnZfc3Ryc3RyKHMsIGMpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJzdHIocywgYykK
KyNkZWZpbmUgdXBydl9zdHJyY2hyKHMsIGMpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJy
Y2hyKHMsIGMpCisKKyNpZiBVX0RFQlVHCisKKyNkZWZpbmUgdXBydl9zdHJuY3B5KGRzdCwgc3Jj
LCBzaXplKSAoIFwKKyAgICB1cHJ2X2NoZWNrVmFsaWRNZW1vcnkoc3JjLCAxKSwgXAorICAgIFVf
U1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJuY3B5KGRzdCwgc3JjLCBzaXplKSkKKyNkZWZpbmUg
dXBydl9zdHJuY21wKHMxLCBzMiwgbikgKCBcCisgICAgdXBydl9jaGVja1ZhbGlkTWVtb3J5KHMx
LCAxKSwgXAorICAgIHVwcnZfY2hlY2tWYWxpZE1lbW9yeShzMiwgMSksIFwKKyAgICBVX1NUQU5E
QVJEX0NQUF9OQU1FU1BBQ0Ugc3RybmNtcChzMSwgczIsIG4pKQorI2RlZmluZSB1cHJ2X3N0cm5j
YXQoZHN0LCBzcmMsIG4pICggXAorICAgIHVwcnZfY2hlY2tWYWxpZE1lbW9yeShzcmMsIDEpLCBc
CisgICAgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cm5jYXQoZHN0LCBzcmMsIG4pKQorCisj
ZWxzZQorCisjZGVmaW5lIHVwcnZfc3RybmNweShkc3QsIHNyYywgc2l6ZSkgVV9TVEFOREFSRF9D
UFBfTkFNRVNQQUNFIHN0cm5jcHkoZHN0LCBzcmMsIHNpemUpCisjZGVmaW5lIHVwcnZfc3RybmNt
cChzMSwgczIsIG4pIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJuY21wKHMxLCBzMiwgbikK
KyNkZWZpbmUgdXBydl9zdHJuY2F0KGRzdCwgc3JjLCBuKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BB
Q0Ugc3RybmNhdChkc3QsIHNyYywgbikKKworI2VuZGlmICAvKiBVX0RFQlVHICovCisKKy8qKgor
ICogSXMgYyBhbiBBU0NJSS1yZXBlcnRvaXJlIGxldHRlciBhLXogb3IgQS1aPworICogTm90ZTog
VGhlIGltcGxlbWVudGF0aW9uIGlzIHNwZWNpZmljIHRvIHdoZXRoZXIgSUNVIGlzIGNvbXBpbGVk
IGZvcgorICogYW4gQVNDSUktYmFzZWQgb3IgRUJDRElDLWJhc2VkIG1hY2hpbmUuIFRoZXJlIGp1
c3QgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGJldHRlciBuYW1lIGZvciB0aGlzLgorICovCitVX0NB
UEkgVUJvb2wgVV9FWFBPUlQyCit1cHJ2X2lzQVNDSUlMZXR0ZXIoY2hhciBjKTsKKworVV9DQVBJ
IGNoYXIgVV9FWFBPUlQyCit1cHJ2X3RvdXBwZXIoY2hhciBjKTsKKworCitVX0NBUEkgY2hhciBV
X0VYUE9SVDIKK3VwcnZfYXNjaWl0b2xvd2VyKGNoYXIgYyk7CisKK1VfQ0FQSSBjaGFyIFVfRVhQ
T1JUMgordXBydl9lYmNkaWN0b2xvd2VyKGNoYXIgYyk7CisKKyNpZiBVX0NIQVJTRVRfRkFNSUxZ
PT1VX0FTQ0lJX0ZBTUlMWQorIyAgIGRlZmluZSB1cHJ2X3RvbG93ZXIgdXBydl9hc2NpaXRvbG93
ZXIKKyNlbGlmIFVfQ0hBUlNFVF9GQU1JTFk9PVVfRUJDRElDX0ZBTUlMWQorIyAgIGRlZmluZSB1
cHJ2X3RvbG93ZXIgdXBydl9lYmNkaWN0b2xvd2VyCisjZWxzZQorIyAgIGVycm9yIFVfQ0hBUlNF
VF9GQU1JTFkgaXMgbm90IHZhbGlkCisjZW5kaWYKKworI2RlZmluZSB1cHJ2X3N0cnRvZChzb3Vy
Y2UsIGVuZCkgVV9TVEFOREFSRF9DUFBfTkFNRVNQQUNFIHN0cnRvZChzb3VyY2UsIGVuZCkKKyNk
ZWZpbmUgdXBydl9zdHJ0b3VsKHN0ciwgZW5kLCBiYXNlKSBVX1NUQU5EQVJEX0NQUF9OQU1FU1BB
Q0Ugc3RydG91bChzdHIsIGVuZCwgYmFzZSkKKyNkZWZpbmUgdXBydl9zdHJ0b2woc3RyLCBlbmQs
IGJhc2UpIFVfU1RBTkRBUkRfQ1BQX05BTUVTUEFDRSBzdHJ0b2woc3RyLCBlbmQsIGJhc2UpCisK
Ky8qIENvbnZlcnNpb24gZnJvbSBhIGRpZ2l0IHRvIHRoZSBjaGFyYWN0ZXIgd2l0aCByYWRpeCBi
YXNlIGZyb20gMi0xOSAqLworLyogTWF5IG5lZWQgdG8gdXNlIFVfVVBQRVJfT1JESU5BTCovCisj
ZGVmaW5lIFRfQ1N0cmluZ19pdG9zT2Zmc2V0KGEpICgoYSk8PTk/KCcwJysoYSkpOignQScrKGEp
LTEwKSkKKworVV9DQVBJIGNoYXIqIFVfRVhQT1JUMgordXBydl9zdHJkdXAoY29uc3QgY2hhciAq
c3JjKTsKKworLyoqCisgKiB1cHJ2X21hbGxvYyBuKzEgYnl0ZXMsIGFuZCBjb3B5IG4gYnl0ZXMg
ZnJvbSBzcmMgaW50byB0aGUgbmV3IHN0cmluZy4KKyAqIFRlcm1pbmF0ZSB3aXRoIGEgbnVsbCBh
dCBvZmZzZXQgbi4gICBJZiBuIGlzIC0xLCB3b3JrcyBsaWtlIHVwcnZfc3RyZHVwCisgKiBAcGFy
YW0gc3JjCisgKiBAcGFyYW0gbiBsZW5ndGggb2YgdGhlIGlucHV0IHN0cmluZywgbm90IGluY2x1
ZGluZyBudWxsLgorICogQHJldHVybiBuZXcgc3RyaW5nIChvd25lZCBieSBjYWxsZXIsIHVzZSB1
cHJ2X2ZyZWUgdG8gZnJlZSkuCisgKiBAaW50ZXJuYWwKKyAqLworVV9DQVBJIGNoYXIqIFVfRVhQ
T1JUMgordXBydl9zdHJuZHVwKGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBuKTsKKworVV9DQVBJ
IGNoYXIqIFVfRVhQT1JUMgorVF9DU3RyaW5nX3RvTG93ZXJDYXNlKGNoYXIqIHN0cik7CisKK1Vf
Q0FQSSBjaGFyKiBVX0VYUE9SVDIKK1RfQ1N0cmluZ190b1VwcGVyQ2FzZShjaGFyKiBzdHIpOwor
CitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfQ1N0cmluZ19pbnRlZ2VyVG9TdHJpbmcoY2hh
ciAqYnVmZmVyLCBpbnQzMl90IG4sIGludDMyX3QgcmFkaXgpOworCitVX0NBUEkgaW50MzJfdCBV
X0VYUE9SVDIKK1RfQ1N0cmluZ19pbnQ2NFRvU3RyaW5nKGNoYXIgKmJ1ZmZlciwgaW50NjRfdCBu
LCB1aW50MzJfdCByYWRpeCk7CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9DU3RyaW5n
X3N0cmluZ1RvSW50ZWdlcihjb25zdCBjaGFyICppbnRlZ2VyU3RyaW5nLCBpbnQzMl90IHJhZGl4
KTsKKworLyoqCisgKiBDYXNlLWluc2Vuc2l0aXZlLCBsYW5ndWFnZS1pbmRlcGVuZGVudCBzdHJp
bmcgY29tcGFyaXNvbgorICogbGltaXRlZCB0byB0aGUgQVNDSUkgY2hhcmFjdGVyIHJlcGVydG9p
cmUuCisgKi8KK1VfQ0FQSSBpbnQgVV9FWFBPUlQyCit1cHJ2X3N0cmljbXAoY29uc3QgY2hhciAq
c3RyMSwgY29uc3QgY2hhciAqc3RyMik7CisKKy8qKgorICogQ2FzZS1pbnNlbnNpdGl2ZSwgbGFu
Z3VhZ2UtaW5kZXBlbmRlbnQgc3RyaW5nIGNvbXBhcmlzb24KKyAqIGxpbWl0ZWQgdG8gdGhlIEFT
Q0lJIGNoYXJhY3RlciByZXBlcnRvaXJlLgorICovCitVX0NBUEkgaW50IFVfRVhQT1JUMgordXBy
dl9zdHJuaWNtcChjb25zdCBjaGFyICpzdHIxLCBjb25zdCBjaGFyICpzdHIyLCB1aW50MzJfdCBu
KTsKKworI2VuZGlmIC8qICEgQ1NUUklOR19IICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVzdHJtLmMgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL2ZpbGVzdHJtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzMwOTc0N2M3
MDViZDEzNzY1YTNjNWI3MWU3YThiYmQ0ODExNGNhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvZmlsZXN0cm0uYwpAQCAtMCwwICsx
LDIyNSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykg
MTk5Ny0yMDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRp
b24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKyoKKyogRmlsZSBGSUxFU1RSTS5DCisqCisqIEBhdXRob3IgICAgICAgR2xlbm4gTWFy
Y3kKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAg
ICAgICAgRGVzY3JpcHRpb24KKyogICA1LzgvOTggICAgICBnbSAgICAgICAgICBDcmVhdGVkCisq
ICAwMy8wMi85OSAgICAgc3RlcGhlbiAgICAgUmVvcmRlcmVkIHBhcmFtcyBpbiB1bmdldGMgdG8g
bWF0Y2ggc3RkaW8KKyogICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRlZCB3b3BlbgorKiAg
IDMvMjkvOTkgICAgIGhlbGVuYSAgICAgIE1lcmdlZCBTdGVwaGVuIGFuZCBCZXJ0cmFuZCdzIGNo
YW5nZXMuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpbmNsdWRlICJmaWxlc3Ry
bS5oIgorCisjaW5jbHVkZSAiY21lbW9yeS5oIgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKworVV9D
QVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX29wZW4oY29uc3QgY2hhciog
ZmlsZW5hbWUsIGNvbnN0IGNoYXIqIG1vZGUpCit7CisgICAgaWYoZmlsZW5hbWUgIT0gTlVMTCAm
JiAqZmlsZW5hbWUgIT0gMCAmJiBtb2RlICE9IE5VTEwgJiYgKm1vZGUgIT0gMCkgeworICAgICAg
ICBGSUxFICpmaWxlID0gZm9wZW4oZmlsZW5hbWUsIG1vZGUpOworICAgICAgICByZXR1cm4gKEZp
bGVTdHJlYW0qKWZpbGU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAg
fQorfQorCisvKgorVV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3dv
cGVuKGNvbnN0IHdjaGFyX3QqIGZpbGVuYW1lLCBjb25zdCB3Y2hhcl90KiBtb2RlKQoreworICAg
Ly8gVEJEOiBfd2ZvcGVuIGlzIGJlbGlldmVkIHRvIGJlIE1TLXNwZWNpZmljPyAKKyNpZiBVX1BM
QVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKKyAgICBGSUxFKiByZXN1bHQgPSBfd2ZvcGVuKGZp
bGVuYW1lLCBtb2RlKTsKKyAgICByZXR1cm4gKEZpbGVTdHJlYW0qKXJlc3VsdDsKKyNlbHNlCisg
ICAgc2l6ZV90IGZuTWJzU2l6ZSwgbWRNYnNTaXplOworICAgIGNoYXIgKmZuLCAqbWQ7CisgICAg
RklMRSAqcmVzdWx0OworCisgICAgLy8gY29udmVydCBmcm9tIHdjaGFyX3QgdG8gY2hhciAKKyAg
ICBmbk1ic1NpemUgPSB3Y3N0b21icyhOVUxMLCBmaWxlbmFtZSwgKChzaXplX3QpLTEpID4+IDEp
OworICAgIGZuID0gKGNoYXIqKXVwcnZfbWFsbG9jKGZuTWJzU2l6ZSsyKTsKKyAgICB3Y3N0b21i
cyhmbiwgZmlsZW5hbWUsIGZuTWJzU2l6ZSk7CisgICAgZm5bZm5NYnNTaXplXSA9IDA7CisKKyAg
ICBtZE1ic1NpemUgPSB3Y3N0b21icyhOVUxMLCBtb2RlLCAoKHNpemVfdCktMSkgPj4gMSk7Cisg
ICAgbWQgPSAoY2hhciopdXBydl9tYWxsb2MobWRNYnNTaXplKzIpOworICAgIHdjc3RvbWJzKG1k
LCBtb2RlLCBtZE1ic1NpemUpOworICAgIG1kW21kTWJzU2l6ZV0gPSAwOworCisgICAgcmVzdWx0
ID0gZm9wZW4oZm4sIG1kKTsKKyAgICB1cHJ2X2ZyZWUoZm4pOworICAgIHVwcnZfZnJlZShtZCk7
CisgICAgcmV0dXJuIChGaWxlU3RyZWFtKilyZXN1bHQ7CisjZW5kaWYKK30KKyovCitVX0NBUEkg
dm9pZCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9jbG9zZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFt
KQoreworICAgIGlmIChmaWxlU3RyZWFtICE9IDApCisgICAgICAgIGZjbG9zZSgoRklMRSopZmls
ZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSBVQm9vbCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9maWxl
X2V4aXN0cyhjb25zdCBjaGFyKiBmaWxlbmFtZSkKK3sKKyAgICBGSUxFKiB0ZW1wID0gZm9wZW4o
ZmlsZW5hbWUsICJyIik7CisgICAgaWYgKHRlbXApIHsKKyAgICAgICAgZmNsb3NlKHRlbXApOwor
ICAgICAgICByZXR1cm4gVFJVRTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmV0dXJuIEZBTFNFOwor
fQorCisvKnN0YXRpYyBjb25zdCBpbnQzMl90IGtFT0Y7Citjb25zdCBpbnQzMl90IEZpbGVTdHJl
YW06OmtFT0YgPSBFT0Y7Ki8KKworLyoKK1VfQ0FQSSBGaWxlU3RyZWFtKgorVF9GaWxlU3RyZWFt
X3RtcGZpbGUoKQoreworICAgIEZJTEUqIGZpbGUgPSB0bXBmaWxlKCk7CisgICAgcmV0dXJuIChG
aWxlU3RyZWFtKilmaWxlOworfQorKi8KKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0Zp
bGVTdHJlYW1fcmVhZChGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCB2b2lkKiBhZGRyLCBpbnQzMl90
IGxlbikKK3sKKyAgICByZXR1cm4gZnJlYWQoYWRkciwgMSwgbGVuLCAoRklMRSopZmlsZVN0cmVh
bSk7Cit9CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3dyaXRlKEZp
bGVTdHJlYW0qIGZpbGVTdHJlYW0sIGNvbnN0IHZvaWQqIGFkZHIsIGludDMyX3QgbGVuKQorewor
CisgICAgcmV0dXJuIGZ3cml0ZShhZGRyLCAxLCBsZW4sIChGSUxFKilmaWxlU3RyZWFtKTsKK30K
KworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcmV3aW5kKEZpbGVTdHJlYW0q
IGZpbGVTdHJlYW0pCit7CisgICAgcmV3aW5kKChGSUxFKilmaWxlU3RyZWFtKTsKK30KKworVV9D
QVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcHV0YyhGaWxlU3RyZWFtKiBmaWxl
U3RyZWFtLCBpbnQzMl90IGNoKQoreworICAgIGludDMyX3QgYyA9IGZwdXRjKGNoLCAoRklMRSop
ZmlsZVN0cmVhbSk7CisgICAgcmV0dXJuIGM7Cit9CisKK1VfQ0FQSSBpbnQgVV9FWFBPUlQyCitU
X0ZpbGVTdHJlYW1fZ2V0YyhGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIGludCBjID0g
ZmdldGMoKEZJTEUqKWZpbGVTdHJlYW0pOworICAgIHJldHVybiBjOworfQorCitVX0NBUEkgaW50
MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV91bmdldGMoaW50MzJfdCBjaCwgRmlsZVN0cmVh
bSogZmlsZVN0cmVhbSkKK3sKKworICAgIGludDMyX3QgYyA9IHVuZ2V0YyhjaCwgKEZJTEUqKWZp
bGVTdHJlYW0pOworICAgIHJldHVybiBjOworfQorCitVX0NBUEkgaW50MzJfdCBVX0VYUE9SVDIK
K1RfRmlsZVN0cmVhbV9wZWVrKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisgICAgaW50MzJf
dCBjID0gZmdldGMoKEZJTEUqKWZpbGVTdHJlYW0pOworICAgIHJldHVybiB1bmdldGMoYywgKEZJ
TEUqKWZpbGVTdHJlYW0pOworfQorCitVX0NBUEkgY2hhciogVV9FWFBPUlQyCitUX0ZpbGVTdHJl
YW1fcmVhZExpbmUoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgY2hhciogYnVmZmVyLCBpbnQzMl90
IGxlbmd0aCkKK3sKKyAgICByZXR1cm4gZmdldHMoYnVmZmVyLCBsZW5ndGgsIChGSUxFKilmaWxl
U3RyZWFtKTsKK30KKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fd3Jp
dGVMaW5lKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0sIGNvbnN0IGNoYXIqIGJ1ZmZlcikKK3sKKyAg
ICByZXR1cm4gZnB1dHMoYnVmZmVyLCAoRklMRSopZmlsZVN0cmVhbSk7Cit9CisKK1VfQ0FQSSBp
bnQzMl90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3NpemUoRmlsZVN0cmVhbSogZmlsZVN0cmVh
bSkKK3sKKyAgICBpbnQzMl90IHNhdmVkUG9zID0gZnRlbGwoKEZJTEUqKWZpbGVTdHJlYW0pOwor
ICAgIGludDMyX3Qgc2l6ZSA9IDA7CisKKyAgICAvKkNoYW5nZXMgYnkgQmVydHJhbmQgQS4gRC4g
ZG9lc24ndCBhZmZlY3QgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAgICBnb2VzIHRvIHRoZSBlbmQg
b2YgdGhlIGZpbGUgYmVmb3JlIGZ0ZWxsKi8KKyAgICBmc2VlaygoRklMRSopZmlsZVN0cmVhbSwg
MCwgU0VFS19FTkQpOworICAgIHNpemUgPSAoaW50MzJfdClmdGVsbCgoRklMRSopZmlsZVN0cmVh
bSk7CisgICAgZnNlZWsoKEZJTEUqKWZpbGVTdHJlYW0sIHNhdmVkUG9zLCBTRUVLX1NFVCk7Cisg
ICAgcmV0dXJuIHNpemU7Cit9CisKK1VfQ0FQSSBpbnQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1f
ZW9mKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pCit7CisgICAgcmV0dXJuIGZlb2YoKEZJTEUqKWZp
bGVTdHJlYW0pOworfQorCisvKgorIFdhcm5pbmcgCisgVGhpcyBmdW5jdGlvbiBtYXkgbm90IHdv
cmsgY29uc2lzdGVudGx5IG9uIGFsbCBwbGF0Zm9ybXMKKyAoZS5nLiBIUC1VWCwgRnJlZUJTRCBh
bmQgTWFjT1NYIGRvbid0IHJldHVybiBhbiBlcnJvciB3aGVuCisgcHV0YyBpcyB1c2VkIG9uIGEg
ZmlsZSBvcGVuZWQgYXMgcmVhZG9ubHkpCisqLworVV9DQVBJIGludCBVX0VYUE9SVDIKK1RfRmls
ZVN0cmVhbV9lcnJvcihGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKQoreworICAgIHJldHVybiAoZmls
ZVN0cmVhbSA9PSAwIHx8IGZlcnJvcigoRklMRSopZmlsZVN0cmVhbSkpOworfQorCisvKiBUaGlz
IGZ1bmN0aW9uIGRvZXNuJ3Qgd29yay4gKi8KKy8qIGZvcmNlIHRoZSBzdHJlYW0gdG8gc2V0IGl0
cyBlcnJvciBmbGFnKi8KKy8qVV9DQVBJIHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc2V0
RXJyb3IoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSkKK3sKKyAgICBmc2VlaygoRklMRSopZmlsZVN0
cmVhbSwgOTk5OTksIFNFRUtfU0VUKTsKK30KKyovCisKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VY
UE9SVDIKK1RfRmlsZVN0cmVhbV9zdGRpbih2b2lkKQoreworICAgIHJldHVybiAoRmlsZVN0cmVh
bSopc3RkaW47Cit9CisKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVh
bV9zdGRvdXQodm9pZCkKK3sKKyAgICByZXR1cm4gKEZpbGVTdHJlYW0qKXN0ZG91dDsKK30KKwor
CitVX0NBUEkgRmlsZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3RkZXJyKHZvaWQp
Cit7CisgICAgcmV0dXJuIChGaWxlU3RyZWFtKilzdGRlcnI7Cit9CisKK1VfQ0FQSSBVQm9vbCBV
X0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9yZW1vdmUoY29uc3QgY2hhciogZmlsZU5hbWUpeworICAg
IHJldHVybiAocmVtb3ZlKGZpbGVOYW1lKSA9PSAwKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvZmlsZXN0cm0uaCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvZmlsZXN0cm0uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWVi
YTk4YjY2MWZkNjE3ODExMWIwYmUwOWU5MzE5ZWI5ZjExYTAwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9maWxlc3RybS5oCkBAIC0w
LDAgKzEsMTA0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0
IChDKSAxOTk3LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jw
b3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgorKgorKiBGaWxlIEZJTEVTVFJNLkgKKyoKKyogQ29udGFpbnMgRmlsZVN0cmVh
bSBpbnRlcmZhY2UKKyoKKyogQGF1dGhvciAgICAgICBHbGVubiBNYXJjeQorKgorKiBNb2RpZmlj
YXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlv
bgorKiAgIDUvOC85OCAgICAgIGdtICAgICAgICAgIENyZWF0ZWQuCisqICAwMy8wMi85OSAgICAg
c3RlcGhlbiAgICAgUmVvcmRlcmVkIHBhcmFtcyBpbiB1bmdldGMgdG8gbWF0Y2ggc3RkaW8KKyog
ICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRlZCB3b3BlbgorKgorKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqLworCisjaWZuZGVmIEZJTEVTVFJNX0gKKyNkZWZpbmUgRklMRVNUUk1fSAorCisj
aW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKwordHlwZWRlZiBzdHJ1Y3QgX0ZpbGVTdHJlYW0g
RmlsZVN0cmVhbTsKKworVV9DQVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFt
X29wZW4oY29uc3QgY2hhciogZmlsZW5hbWUsIGNvbnN0IGNoYXIqIG1vZGUpOworCisvKgorVV9D
QVBJIEZpbGVTdHJlYW0qIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3dvcGVuKGNvbnN0IHdjaGFy
X3QqIGZpbGVuYW1lLCBjb25zdCB3Y2hhcl90KiBtb2RlKTsKKyovCitVX0NBUEkgdm9pZCBVX0VY
UE9SVDIKK1RfRmlsZVN0cmVhbV9jbG9zZShGaWxlU3RyZWFtKiBmaWxlU3RyZWFtKTsKKworVV9D
QVBJIFVCb29sIFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX2ZpbGVfZXhpc3RzKGNvbnN0IGNoYXIq
IGZpbGVuYW1lKTsKKworLyoKK1VfQ0FQSSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0
cmVhbV90bXBmaWxlKHZvaWQpOworKi8KKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0Zp
bGVTdHJlYW1fcmVhZChGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCB2b2lkKiBhZGRyLCBpbnQzMl90
IGxlbik7CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3dyaXRlKEZp
bGVTdHJlYW0qIGZpbGVTdHJlYW0sIGNvbnN0IHZvaWQqIGFkZHIsIGludDMyX3QgbGVuKTsKKwor
VV9DQVBJIHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fcmV3aW5kKEZpbGVTdHJlYW0qIGZp
bGVTdHJlYW0pOworCisvKkFkZGVkIGJ5IEJlcnRyYW5kIEEuIEQuICovCitVX0NBUEkgY2hhciAq
IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3JlYWRMaW5lKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0s
IGNoYXIqIGJ1ZmZlciwgaW50MzJfdCBsZW5ndGgpOworCitVX0NBUEkgaW50MzJfdCBVX0VYUE9S
VDIKK1RfRmlsZVN0cmVhbV93cml0ZUxpbmUoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSwgY29uc3Qg
Y2hhciogYnVmZmVyKTsKKworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1f
cHV0YyhGaWxlU3RyZWFtKiBmaWxlU3RyZWFtLCBpbnQzMl90IGNoKTsKKworVV9DQVBJIGludCBV
X0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9nZXRjKEZpbGVTdHJlYW0qIGZpbGVTdHJlYW0pOworCitV
X0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV91bmdldGMoaW50MzJfdCBjaCwg
RmlsZVN0cmVhbSAqZmlsZVN0cmVhbSk7CisKK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgorVF9G
aWxlU3RyZWFtX3BlZWsoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSk7CisKK1VfQ0FQSSBpbnQzMl90
IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX3NpemUoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSk7CisK
K1VfQ0FQSSBpbnQgVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fZW9mKEZpbGVTdHJlYW0qIGZpbGVT
dHJlYW0pOworCitVX0NBUEkgaW50IFVfRVhQT1JUMgorVF9GaWxlU3RyZWFtX2Vycm9yKEZpbGVT
dHJlYW0qIGZpbGVTdHJlYW0pOworCisvKgorVV9DQVBJIHZvaWQgVV9FWFBPUlQyCitUX0ZpbGVT
dHJlYW1fc2V0RXJyb3IoRmlsZVN0cmVhbSogZmlsZVN0cmVhbSk7CisqLworCitVX0NBUEkgRmls
ZVN0cmVhbSogVV9FWFBPUlQyCitUX0ZpbGVTdHJlYW1fc3RkaW4odm9pZCk7CisKK1VfQ0FQSSBG
aWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9zdGRvdXQodm9pZCk7CisKK1VfQ0FQ
SSBGaWxlU3RyZWFtKiBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9zdGRlcnIodm9pZCk7CisKK1Vf
Q0FQSSBVQm9vbCBVX0VYUE9SVDIKK1RfRmlsZVN0cmVhbV9yZW1vdmUoY29uc3QgY2hhciogZmls
ZU5hbWUpOworCisjZW5kaWYgLyogX0ZJTEVTVFJNKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvZ2VuYnJrLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvZ2VuYnJrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MmM2Y2Zm
ZTdiNTI5NmRlODY3OGVmYWUwNGI0NzU5NzQwOGY2YTA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay9nZW5icmsuY3BwCkBAIC0wLDAg
KzEsMzQ2IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMjAwMi0yMDA5
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgZ2Vu
YnJrLmMKKyovCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vCisvLyAgIFRvb2wgZm9yIGdlbmVyYXRpbmcg
UnVsZUJhc2VkQnJlYWtJdGVyYXRvciBkYXRhIGZpbGVzICguYnJrIGZpbGVzKS4KKy8vICAgLmJy
ayBmaWxlcyBjb250YWluIHRoZSBwcmVjb21waWxlZCBydWxlcyBmb3Igc3RhbmRhcmQgdHlwZXMK
Ky8vICAgb2YgaXRlcmF0b3JzIC0gd29yZCwgbGluZSwgc2VudGVuY2UsIGV0Yy4KKy8vCisvLyAg
IFVzYWdlOiAgZ2VuYnJrIFtvcHRpb25zXSAtciBydWxlLWZpbGUudHh0ICAtbyBvdXRwdXQtZmls
ZS5icmsKKy8vCisvLyAgICAgICBvcHRpb25zOiAgIC12ICAgICAgICAgdmVyYm9zZQorLy8gICAg
ICAgICAgICAgICAgICAtPyBvciAtaCAgIGhlbHAKKy8vCisvLyAgIFRoZSBpbnB1dCBydWxlIGZp
bGUgaXMgYSBwbGFpbiB0ZXh0IGZpbGUgY29udGFpbmluZyBicmVhayBydWxlcworLy8gICAgaW4g
dGhlIGlucHV0IGZvcm1hdCBhY2NlcHRlZCBieSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9ycy4gIFRo
ZQorLy8gICAgZmlsZSBjYW4gYmUgZW5jb2RlZCBhcyB1dGYtOCwgb3IgdXRmLTE2IChlaXRoZXIg
ZW5kaWFuKSwgb3IKKy8vICAgIGluIHRoZSBkZWZhdWx0IGNvZGUgcGFnZSAocGxhdGZvcm0gZGVw
ZW5kZW50LikuICB1dGYgZW5jb2RlZAorLy8gICAgZmlsZXMgbXVzdCBpbmNsdWRlIGEgQk9NLgor
Ly8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVk
ZSAidW5pY29kZS91Y252LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIKKyNpbmNsdWRl
ICJ1bmljb2RlL3JiYmkuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VjbGVhbi5oIgorI2luY2x1ZGUg
InVuaWNvZGUvdWRhdGEuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3B1dGlsLmgiCisKKyNpbmNsdWRl
ICJ1b3B0aW9ucy5oIgorI2luY2x1ZGUgInVuZXdkYXRhLmgiCisjaW5jbHVkZSAidWNtbmRhdGEu
aCIKKyNpbmNsdWRlICJyYmJpZGF0YS5oIgorI2luY2x1ZGUgImNtZW1vcnkuaCIKKworI2luY2x1
ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisK
K1VfTkFNRVNQQUNFX1VTRQorCitzdGF0aWMgY2hhciAqcHJvZ05hbWU7CitzdGF0aWMgVU9wdGlv
biBvcHRpb25zW109eworICAgIFVPUFRJT05fSEVMUF9ILCAgICAgICAgICAgICAvKiAwICovCisg
ICAgVU9QVElPTl9IRUxQX1FVRVNUSU9OX01BUkssIC8qIDEgKi8KKyAgICBVT1BUSU9OX1ZFUkJP
U0UsICAgICAgICAgICAgLyogMiAqLworICAgIHsgInJ1bGVzIiwgTlVMTCwgTlVMTCwgTlVMTCwg
J3InLCBVT1BUX1JFUVVJUkVTX0FSRywgMCB9LCAgIC8qIDMgKi8KKyAgICB7ICJvdXQiLCAgIE5V
TEwsIE5VTEwsIE5VTEwsICdvJywgVU9QVF9SRVFVSVJFU19BUkcsIDAgfSwgICAvKiA0ICovCisg
ICAgVU9QVElPTl9JQ1VEQVRBRElSLCAgICAgICAgIC8qIDUgKi8KKyAgICBVT1BUSU9OX0RFU1RE
SVIsICAgICAgICAgICAgLyogNiAqLworICAgIFVPUFRJT05fQ09QWVJJR0hULCAgICAgICAgICAv
KiA3ICovCit9OworCit2b2lkIHVzYWdlQW5kRGllKGludCByZXRDb2RlKSB7CisgICAgICAgIHBy
aW50ZigiVXNhZ2U6ICVzIFstdl0gWy1vcHRpb25zXSAtciBydWxlLWZpbGUgLW8gb3V0cHV0LWZp
bGVcbiIsIHByb2dOYW1lKTsKKyAgICAgICAgcHJpbnRmKCJcdFJlYWQgaW4gYnJlYWsgaXRlcmF0
aW9uIHJ1bGVzIHRleHQgYW5kIHdyaXRlIG91dCB0aGUgYmluYXJ5IGRhdGFcbiIKKyAgICAgICAg
ICAgICJvcHRpb25zOlxuIgorICAgICAgICAgICAgIlx0LWggb3IgLT8gb3IgLS1oZWxwICB0aGlz
IHVzYWdlIHRleHRcbiIKKyAgICAgICAgICAgICJcdC1WIG9yIC0tdmVyc2lvbiAgICAgc2hvdyBh
IHZlcnNpb24gbWVzc2FnZVxuIgorICAgICAgICAgICAgIlx0LWMgb3IgLS1jb3B5cmlnaHQgICBp
bmNsdWRlIGEgY29weXJpZ2h0IG5vdGljZVxuIgorICAgICAgICAgICAgIlx0LXYgb3IgLS12ZXJi
b3NlICAgICB0dXJuIG9uIHZlcmJvc2Ugb3V0cHV0XG4iCisgICAgICAgICAgICAiXHQtaSBvciAt
LWljdWRhdGFkaXIgIGRpcmVjdG9yeSBmb3IgbG9jYXRpbmcgYW55IG5lZWRlZCBpbnRlcm1lZGlh
dGUgZGF0YSBmaWxlcyxcbiIKKyAgICAgICAgICAgICJcdCAgICAgICAgICAgICAgICAgICAgZm9s
bG93ZWQgYnkgcGF0aCwgZGVmYXVsdHMgdG8gJXNcbiIKKyAgICAgICAgICAgICJcdC1kIG9yIC0t
ZGVzdGRpciAgICAgZGVzdGluYXRpb24gZGlyZWN0b3J5LCBmb2xsb3dlZCBieSB0aGUgcGF0aFxu
IiwKKyAgICAgICAgICAgIHVfZ2V0RGF0YURpcmVjdG9yeSgpKTsKKyAgICAgICAgZXhpdCAocmV0
Q29kZSk7Cit9CisKKworI2lmIFVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OIHx8IFVDT05GSUdf
Tk9fRklMRV9JTworCisvKiBkdW1teSBVRGF0YUluZm8gY2YuIHVkYXRhLmggKi8KK3N0YXRpYyBV
RGF0YUluZm8gZHVtbXlEYXRhSW5mbyA9IHsKKyAgICBzaXplb2YoVURhdGFJbmZvKSwKKyAgICAw
LAorCisgICAgVV9JU19CSUdfRU5ESUFOLAorICAgIFVfQ0hBUlNFVF9GQU1JTFksCisgICAgVV9T
SVpFT0ZfVUNIQVIsCisgICAgMCwKKworICAgIHsgMCwgMCwgMCwgMCB9LCAgICAgICAgICAgICAg
ICAgLyogZHVtbXkgZGF0YUZvcm1hdCAqLworICAgIHsgMCwgMCwgMCwgMCB9LCAgICAgICAgICAg
ICAgICAgLyogZHVtbXkgZm9ybWF0VmVyc2lvbiAqLworICAgIHsgMCwgMCwgMCwgMCB9ICAgICAg
ICAgICAgICAgICAgLyogZHVtbXkgZGF0YVZlcnNpb24gKi8KK307CisKKyNlbHNlCisKKy8vCisv
LyAgU2V0IHVwIHRoZSBJQ1UgZGF0YSBoZWFkZXIsIGRlZmluZWQgaW4gdWNtbmRhdGEuaAorLy8K
K0RhdGFIZWFkZXIgZGggPXsKKyAgICB7c2l6ZW9mKERhdGFIZWFkZXIpLCAgICAgICAgICAgLy8g
U3RydWN0IE1hcHBlZERhdGEKKyAgICAgICAgMHhkYSwKKyAgICAgICAgMHgyN30sCisKKyAgICB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0cnVjdCBVRGF0YUluZm8KKyAgICAg
ICAgc2l6ZW9mKFVEYXRhSW5mbyksICAgICAgICAgIC8vICAgICBzaXplCisgICAgICAgIDAsICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgcmVzZXJ2ZWQKKyAgICAgICAgVV9JU19CSUdf
RU5ESUFOLAorICAgICAgICBVX0NIQVJTRVRfRkFNSUxZLAorICAgICAgICBVX1NJWkVPRl9VQ0hB
UiwKKyAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICByZXNlcnZlZAor
CisgICAgeyAweDQyLCAweDcyLCAweDZiLCAweDIwIH0sICAgICAvLyAgICAgZGF0YUZvcm1hdD0i
QnJrICIKKyAgICB7IDB4ZmYsIDAsIDAsIDAgfSwgICAgICAgICAgICAgIC8vICAgICBmb3JtYXRW
ZXJzaW9uLiAgRmlsbGVkIGluIGxhdGVyIHdpdGggdmFsdWVzCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAgICAgIGZyb20gdGhlIFJCQkkgcnVsZSBidWlsZGVyLiAgVGhl
ICB2YWx1ZXMgZGVjbGFyZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
ICAgICAgaGVyZSBzaG91bGQgbmV2ZXIgYXBwZWFyIGluIGFueSByZWFsIFJCQkkgZGF0YS4KKyAg
ICAgICAgeyA0LCAxLCAwLCAwIH0gICAgICAgICAgICAgIC8vICAgZGF0YVZlcnNpb24gKFVuaWNv
ZGUgdmVyc2lvbikKKyAgICB9fTsKKworI2VuZGlmCisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
Ly8KKy8vICBtYWluICAgICAgZm9yIGdlbmJyaworLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
aW50ICBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIFVFcnJvckNvZGUgIHN0YXR1
cyA9IFVfWkVST19FUlJPUjsKKyAgICBjb25zdCBjaGFyICpydWxlRmlsZU5hbWU7CisgICAgY29u
c3QgY2hhciAqb3V0RmlsZU5hbWU7CisgICAgY29uc3QgY2hhciAqb3V0RGlyID0gTlVMTDsKKyAg
ICBjb25zdCBjaGFyICpjb3B5cmlnaHQgPSBOVUxMOworCisgICAgLy8KKyAgICAvLyBQaWNrIHVw
IGFuZCBjaGVjayB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50cywKKyAgICAvLyAgICB1c2luZyB0
aGUgc3RhbmRhcmQgSUNVIHRvb2wgdXRpbHMgb3B0aW9uIGhhbmRsaW5nLgorICAgIC8vCisgICAg
VV9NQUlOX0lOSVRfQVJHUyhhcmdjLCBhcmd2KTsKKyAgICBwcm9nTmFtZSA9IGFyZ3ZbMF07Cisg
ICAgYXJnYz11X3BhcnNlQXJncyhhcmdjLCBhcmd2LCBzaXplb2Yob3B0aW9ucykvc2l6ZW9mKG9w
dGlvbnNbMF0pLCBvcHRpb25zKTsKKyAgICBpZihhcmdjPDApIHsKKyAgICAgICAgLy8gVW5yZWNv
Z25pemVkIG9wdGlvbgorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImVycm9yIGluIGNvbW1hbmQg
bGluZSBhcmd1bWVudCBcIiVzXCJcbiIsIGFyZ3ZbLWFyZ2NdKTsKKyAgICAgICAgdXNhZ2VBbmRE
aWUoVV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SKTsKKyAgICB9CisKKyAgICBpZihvcHRpb25zWzBd
LmRvZXNPY2N1ciB8fCBvcHRpb25zWzFdLmRvZXNPY2N1cikgeworICAgICAgICAvLyAgLT8gb3Ig
LWggZm9yIGhlbHAuCisgICAgICAgIHVzYWdlQW5kRGllKDApOworICAgIH0KKworICAgIGlmICgh
KG9wdGlvbnNbM10uZG9lc09jY3VyICYmIG9wdGlvbnNbNF0uZG9lc09jY3VyKSkgeworICAgICAg
ICBmcHJpbnRmKHN0ZGVyciwgInJ1bGUgZmlsZSBhbmQgb3V0cHV0IGZpbGUgbXVzdCBib3RoIGJl
IHNwZWNpZmllZC5cbiIpOworICAgICAgICB1c2FnZUFuZERpZShVX0lMTEVHQUxfQVJHVU1FTlRf
RVJST1IpOworICAgIH0KKyAgICBydWxlRmlsZU5hbWUgPSBvcHRpb25zWzNdLnZhbHVlOworICAg
IG91dEZpbGVOYW1lICA9IG9wdGlvbnNbNF0udmFsdWU7CisKKyAgICBpZiAob3B0aW9uc1s1XS5k
b2VzT2NjdXIpIHsKKyAgICAgICAgdV9zZXREYXRhRGlyZWN0b3J5KG9wdGlvbnNbNV0udmFsdWUp
OworICAgIH0KKworICAgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKworICAgIC8qIENvbWJpbmUg
dGhlIGRpcmVjdG9yeSB3aXRoIHRoZSBmaWxlIG5hbWUgKi8KKyAgICBpZihvcHRpb25zWzZdLmRv
ZXNPY2N1cikgeworICAgICAgICBvdXREaXIgPSBvcHRpb25zWzZdLnZhbHVlOworICAgIH0KKyAg
ICBpZiAob3B0aW9uc1s3XS5kb2VzT2NjdXIpIHsKKyAgICAgICAgY29weXJpZ2h0ID0gVV9DT1BZ
UklHSFRfU1RSSU5HOworICAgIH0KKworI2lmIFVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OIHx8
IFVDT05GSUdfTk9fRklMRV9JTworCisgICAgVU5ld0RhdGFNZW1vcnkgKnBEYXRhOworICAgIGNo
YXIgbXNnWzEwMjRdOworCisgICAgLyogd3JpdGUgbWVzc2FnZSB3aXRoIGp1c3QgdGhlIG5hbWUg
Ki8KKyAgICBzcHJpbnRmKG1zZywgImdlbmJyayB3cml0ZXMgZHVtbXkgJXMgYmVjYXVzZSBvZiBV
Q09ORklHX05PX0JSRUFLX0lURVJBVElPTiBhbmQvb3IgVUNPTkZJR19OT19GSUxFX0lPLCBzZWUg
dWNvbmZpZy5oIiwgb3V0RmlsZU5hbWUpOworICAgIGZwcmludGYoc3RkZXJyLCAiJXNcbiIsIG1z
Zyk7CisKKyAgICAvKiB3cml0ZSB0aGUgZHVtbXkgZGF0YSBmaWxlICovCisgICAgcERhdGEgPSB1
ZGF0YV9jcmVhdGUob3V0RGlyLCBOVUxMLCBvdXRGaWxlTmFtZSwgJmR1bW15RGF0YUluZm8sIE5V
TEwsICZzdGF0dXMpOworICAgIHVkYXRhX3dyaXRlQmxvY2socERhdGEsIG1zZywgc3RybGVuKG1z
ZykpOworICAgIHVkYXRhX2ZpbmlzaChwRGF0YSwgJnN0YXR1cyk7CisgICAgcmV0dXJuIChpbnQp
c3RhdHVzOworCisjZWxzZQorICAgIC8qIEluaXRpYWxpemUgSUNVICovCisgICAgdV9pbml0KCZz
dGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgIiVzOiBjYW4gbm90IGluaXRpYWxpemUgSUNVLiAgc3RhdHVzID0gJXNcbiIsCisgICAg
ICAgICAgICBhcmd2WzBdLCB1X2Vycm9yTmFtZShzdGF0dXMpKTsKKyAgICAgICAgZXhpdCgxKTsK
KyAgICB9CisgICAgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworCisgICAgLy8KKyAgICAvLyAgUmVh
ZCBpbiB0aGUgcnVsZSBzb3VyY2UgZmlsZQorICAgIC8vCisgICAgbG9uZyAgICAgICAgcmVzdWx0
OworICAgIGxvbmcgICAgICAgIHJ1bGVGaWxlU2l6ZTsKKyAgICBGSUxFICAgICAgICAqZmlsZTsK
KyAgICBjaGFyICAgICAgICAqcnVsZUJ1ZmZlckM7CisKKyAgICBmaWxlID0gZm9wZW4ocnVsZUZp
bGVOYW1lLCAicmIiKTsKKyAgICBpZiggZmlsZSA9PSAwICkgeworICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgIkNvdWxkIG5vdCBvcGVuIGZpbGUgXCIlc1wiXG4iLCBydWxlRmlsZU5hbWUpOworICAg
ICAgICBleGl0KC0xKTsKKyAgICB9CisgICAgZnNlZWsoZmlsZSwgMCwgU0VFS19FTkQpOworICAg
IHJ1bGVGaWxlU2l6ZSA9IGZ0ZWxsKGZpbGUpOworICAgIGZzZWVrKGZpbGUsIDAsIFNFRUtfU0VU
KTsKKyAgICBydWxlQnVmZmVyQyA9IG5ldyBjaGFyW3J1bGVGaWxlU2l6ZSsxMF07CisKKyAgICBy
ZXN1bHQgPSAobG9uZylmcmVhZChydWxlQnVmZmVyQywgMSwgcnVsZUZpbGVTaXplLCBmaWxlKTsK
KyAgICBpZiAocmVzdWx0ICE9IHJ1bGVGaWxlU2l6ZSkgIHsKKyAgICAgICAgZnByaW50ZihzdGRl
cnIsICJFcnJvciByZWFkaW5nIGZpbGUgXCIlc1wiXG4iLCBydWxlRmlsZU5hbWUpOworICAgICAg
ICBleGl0ICgtMSk7CisgICAgfQorICAgIHJ1bGVCdWZmZXJDW3J1bGVGaWxlU2l6ZV09MDsKKyAg
ICBmY2xvc2UoZmlsZSk7CisKKyAgICAvLworICAgIC8vIExvb2sgZm9yIGEgVW5pY29kZSBTaWdu
YXR1cmUgKEJPTSkgb24gdGhlIHJ1bGUgZmlsZQorICAgIC8vCisgICAgaW50MzJfdCAgICAgICAg
c2lnbmF0dXJlTGVuZ3RoOworICAgIGNvbnN0IGNoYXIgKiAgIHJ1bGVTb3VyY2VDID0gcnVsZUJ1
ZmZlckM7CisgICAgY29uc3QgY2hhciogICAgZW5jb2RpbmcgPSB1Y252X2RldGVjdFVuaWNvZGVT
aWduYXR1cmUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlU291cmNlQywgcnVsZUZp
bGVTaXplLCAmc2lnbmF0dXJlTGVuZ3RoLCAmc3RhdHVzKTsKKyAgICBpZiAoVV9GQUlMVVJFKHN0
YXR1cykpIHsKKyAgICAgICAgZXhpdChzdGF0dXMpOworICAgIH0KKyAgICBpZihlbmNvZGluZyE9
TlVMTCApeworICAgICAgICBydWxlU291cmNlQyAgKz0gc2lnbmF0dXJlTGVuZ3RoOworICAgICAg
ICBydWxlRmlsZVNpemUgLT0gc2lnbmF0dXJlTGVuZ3RoOworICAgIH0KKworICAgIC8vCisgICAg
Ly8gT3BlbiBhIGNvbnZlcnRlciB0byB0YWtlIHRoZSBydWxlIGZpbGUgdG8gVVRGLTE2CisgICAg
Ly8KKyAgICBVQ29udmVydGVyKiBjb252OworICAgIGNvbnYgPSB1Y252X29wZW4oZW5jb2Rpbmcs
ICZzdGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgInVjbnZfb3BlbjogSUNVIEVycm9yIFwiJXNcIlxuIiwgdV9lcnJvck5hbWUoc3Rh
dHVzKSk7CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9CisKKyAgICAvLworICAgIC8vIENv
bnZlcnQgdGhlIHJ1bGVzIHRvIFVDaGFyLgorICAgIC8vICBQcmVmbGlnaHQgZmlyc3QgdG8gZGV0
ZXJtaW5lIHJlcXVpcmVkIGJ1ZmZlciBzaXplLgorICAgIC8vCisgICAgdWludDMyX3QgZGVzdENh
cCA9IHVjbnZfdG9VQ2hhcnMoY29udiwKKyAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgICAg
ICAgICAgIC8vICBkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAwLCAgICAgICAgICAgICAg
Ly8gIGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgcnVsZVNvdXJjZUMsCisg
ICAgICAgICAgICAgICAgICAgICAgIHJ1bGVGaWxlU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgJnN0YXR1cyk7CisgICAgaWYgKHN0YXR1cyAhPSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUikg
eworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInVjbnZfdG9VQ2hhcnM6IElDVSBFcnJvciBcIiVz
XCJcbiIsIHVfZXJyb3JOYW1lKHN0YXR1cykpOworICAgICAgICBleGl0KHN0YXR1cyk7CisgICAg
fTsKKworICAgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBVQ2hhciAqcnVsZVNvdXJjZVUg
PSBuZXcgVUNoYXJbZGVzdENhcCsxXTsKKyAgICB1Y252X3RvVUNoYXJzKGNvbnYsCisgICAgICAg
ICAgICAgICAgICBydWxlU291cmNlVSwgICAgIC8vICBkZXN0LAorICAgICAgICAgICAgICAgICAg
ZGVzdENhcCsxLAorICAgICAgICAgICAgICAgICAgcnVsZVNvdXJjZUMsCisgICAgICAgICAgICAg
ICAgICBydWxlRmlsZVNpemUsCisgICAgICAgICAgICAgICAgICAmc3RhdHVzKTsKKyAgICBpZiAo
VV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJ1Y252X3RvVUNo
YXJzOiBJQ1UgRXJyb3IgXCIlc1wiXG4iLCB1X2Vycm9yTmFtZShzdGF0dXMpKTsKKyAgICAgICAg
ZXhpdChzdGF0dXMpOworICAgIH07CisgICAgdWNudl9jbG9zZShjb252KTsKKworCisgICAgLy8K
KyAgICAvLyAgUHV0IHRoZSBzb3VyY2UgcnVsZXMgaW50byBhIFVuaWNvZGVTdHJpbmcKKyAgICAv
LworICAgIFVuaWNvZGVTdHJpbmcgcnVsZVNvdXJjZVMoRkFMU0UsIHJ1bGVTb3VyY2VVLCBkZXN0
Q2FwKTsKKworICAgIC8vCisgICAgLy8gIENyZWF0ZSB0aGUgYnJlYWsgaXRlcmF0b3IgZnJvbSB0
aGUgcnVsZXMKKyAgICAvLyAgICAgVGhpcyB3aWxsIGNvbXBpbGUgdGhlIHJ1bGVzLgorICAgIC8v
CisgICAgVVBhcnNlRXJyb3IgcGFyc2VFcnJvcjsKKyAgICBwYXJzZUVycm9yLmxpbmUgPSAwOwor
ICAgIHBhcnNlRXJyb3Iub2Zmc2V0ID0gMDsKKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yICpi
aSA9IG5ldyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKHJ1bGVTb3VyY2VTLCBwYXJzZUVycm9yLCBz
dGF0dXMpOworICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgImNyZWF0ZVJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I6IElDVSBFcnJvciBcIiVzXCIgIGF0
IGxpbmUgJWQsIGNvbHVtbiAlZFxuIiwKKyAgICAgICAgICAgICAgICB1X2Vycm9yTmFtZShzdGF0
dXMpLCAoaW50KXBhcnNlRXJyb3IubGluZSwgKGludClwYXJzZUVycm9yLm9mZnNldCk7CisgICAg
ICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9OworCisKKyAgICAvLworICAgIC8vICBHZXQgdGhlIGNv
bXBpbGVkIHJ1bGUgZGF0YSBmcm9tIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAvLworICAgIHVp
bnQzMl90ICAgICAgICBvdXREYXRhU2l6ZTsKKyAgICBjb25zdCB1aW50OF90ICAqb3V0RGF0YTsK
KyAgICBvdXREYXRhID0gYmktPmdldEJpbmFyeVJ1bGVzKG91dERhdGFTaXplKTsKKworICAgIC8v
IENvcHkgdGhlIGRhdGEgZm9ybWF0IHZlcnNpb24gbnVtYmVycyBmcm9tIHRoZSBSQkJJIGRhdGEg
aGVhZGVyIGludG8gdGhlIFVEYXRhTWVtb3J5IGhlYWRlci4KKyAgICB1cHJ2X21lbWNweShkaC5p
bmZvLmZvcm1hdFZlcnNpb24sICgoUkJCSURhdGFIZWFkZXIgKilvdXREYXRhKS0+ZkZvcm1hdFZl
cnNpb24sIHNpemVvZihkaC5pbmZvLmZvcm1hdFZlcnNpb24pKTsKKworICAgIC8vCisgICAgLy8g
IENyZWF0ZSB0aGUgb3V0cHV0IGZpbGUKKyAgICAvLworICAgIHNpemVfdCBieXRlc1dyaXR0ZW47
CisgICAgVU5ld0RhdGFNZW1vcnkgKnBEYXRhOworICAgIHBEYXRhID0gdWRhdGFfY3JlYXRlKG91
dERpciwgTlVMTCwgb3V0RmlsZU5hbWUsICYoZGguaW5mbyksIGNvcHlyaWdodCwgJnN0YXR1cyk7
CisgICAgaWYoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJn
ZW5icms6IENvdWxkIG5vdCBvcGVuIG91dHB1dCBmaWxlIFwiJXNcIiwgXCIlc1wiXG4iLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBvdXRGaWxlTmFtZSwgdV9lcnJvck5hbWUoc3RhdHVzKSk7
CisgICAgICAgIGV4aXQoc3RhdHVzKTsKKyAgICB9CisKKworICAgIC8vICBXcml0ZSB0aGUgZGF0
YSBpdHNlbGYuCisgICAgdWRhdGFfd3JpdGVCbG9jayhwRGF0YSwgb3V0RGF0YSwgb3V0RGF0YVNp
emUpOworICAgIC8vIGZpbmlzaCB1cCAKKyAgICBieXRlc1dyaXR0ZW4gPSB1ZGF0YV9maW5pc2go
cERhdGEsICZzdGF0dXMpOworICAgIGlmKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgIGZw
cmludGYoc3RkZXJyLCAiZ2VuYnJrOiBlcnJvciAlZCB3cml0aW5nIHRoZSBvdXRwdXQgZmlsZVxu
Iiwgc3RhdHVzKTsKKyAgICAgICAgZXhpdChzdGF0dXMpOworICAgIH0KKyAgICAKKyAgICBpZiAo
Ynl0ZXNXcml0dGVuICE9IG91dERhdGFTaXplKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAi
RXJyb3Igd3JpdGluZyB0byBvdXRwdXQgZmlsZSBcIiVzXCJcbiIsIG91dEZpbGVOYW1lKTsKKyAg
ICAgICAgZXhpdCgtMSk7CisgICAgfQorCisgICAgZGVsZXRlIGJpOworICAgIGRlbGV0ZVtdIHJ1
bGVTb3VyY2VVOworICAgIGRlbGV0ZVtdIHJ1bGVCdWZmZXJDOworICAgIHVfY2xlYW51cCgpOwor
CisKKyAgICBwcmludGYoImdlbmJyazogdG9vbCBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LlxuIik7
CisgICAgcmV0dXJuIDA7CisKKyNlbmRpZiAvKiAjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFU
SU9OICovCit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9nZW5icmsvcHV0aWxpbXAuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9n
ZW5icmsvcHV0aWxpbXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMmMxYzY2ZjE3MDE0NWMzZDBiYzAyM2I2MTcw
OTU3MzM0MDIwNWI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL2dlbmJyay9wdXRpbGltcC5oCkBAIC0wLDAgKzEsNjExIEBACisvKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTQsIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgRklMRSBO
QU1FIDogcHV0aWxpbXAuaAorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0
aW9uCisqICAgMTAvMTcvMDQgICAgZ3Job3RlbiAgICAgTW92ZSBpbnRlcm5hbCBmdW5jdGlvbnMg
ZnJvbSBwdXRpbC5oIHRvIHRoaXMgZmlsZS4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKwor
I2lmbmRlZiBQVVRJTElNUF9ICisjZGVmaW5lIFBVVElMSU1QX0gKKworI2luY2x1ZGUgInVuaWNv
ZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS9wdXRpbC5oIgorCisvKioKKyAqIFxkZWYg
VV9TSUdORURfUklHSFRfU0hJRlRfSVNfQVJJVEhNRVRJQworICogTmVhcmx5IGFsbCBDUFVzIGFu
ZCBjb21waWxlcnMgaW1wbGVtZW50IGEgcmlnaHQtc2hpZnQgb2YgYSBzaWduZWQgaW50ZWdlcgor
ICogYXMgYW4gQXJpdGhtZXRpYyBTaGlmdCBSaWdodCB3aGljaCBjb3BpZXMgdGhlIHNpZ24gYml0
ICh0aGUgTW9zdCBTaWduaWZpY2FudCBCaXQgKE1TQikpCisgKiBpbnRvIHRoZSB2YWNhdGVkIGJp
dHMgKHNpZ24gZXh0ZW5zaW9uKS4KKyAqIEZvciBleGFtcGxlLCAoaW50MzJfdCkweGZmZjVmZmYz
Pj40IGJlY29tZXMgMHhmZmZmNWZmZiBhbmQgLTE+PjE9LTEuCisgKgorICogVGhpcyBjYW4gYmUg
dXNlZnVsIGZvciBzdG9yaW5nIGEgc2lnbmVkIHZhbHVlIGluIHRoZSB1cHBlciBiaXRzCisgKiBh
bmQgYW5vdGhlciBiaXQgZmllbGQgaW4gdGhlIGxvd2VyIGJpdHMuCisgKiBUaGUgc2lnbmVkIHZh
bHVlIGNhbiBiZSByZXRyaWV2ZWQgYnkgc2ltcGxlIHJpZ2h0LXNoaWZ0aW5nLgorICoKKyAqIFRo
aXMgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBKYXZhIGxhbmd1YWdlLgorICoKKyAqIEhvd2V2ZXIs
IHRoZSBDIHN0YW5kYXJkIGFsbG93cyBjb21waWxlcnMgdG8gaW1wbGVtZW50IGEgcmlnaHQtc2hp
ZnQgb2YgYSBzaWduZWQgaW50ZWdlcgorICogYXMgYSBMb2dpY2FsIFNoaWZ0IFJpZ2h0IHdoaWNo
IGNvcGllcyBhIDAgaW50byB0aGUgdmFjYXRlZCBiaXRzLgorICogRm9yIGV4YW1wbGUsIChpbnQz
Ml90KTB4ZmZmNWZmZjM+PjQgYmVjb21lcyAweDBmZmY1ZmZmIGFuZCAtMT4+MT0weDdmZmZmZmZm
LgorICoKKyAqIENvZGUgdGhhdCBkZXBlbmRzIG9uIHRoZSBuYXR1cmFsIGJlaGF2aW9yIHNob3Vs
ZCBiZSBndWFyZGVkIHdpdGggdGhpcyBtYWNybywKKyAqIHdpdGggYW4gYWx0ZXJuYXRlIHBhdGgg
Zm9yIHVudXN1YWwgcGxhdGZvcm1zLgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX1NJR05F
RF9SSUdIVF9TSElGVF9JU19BUklUSE1FVElDCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZh
bHVlLiAqLworI2Vsc2UKKyAgICAvKgorICAgICAqIE5lYXJseSBhbGwgQ1BVcyAmIGNvbXBpbGVy
cyBpbXBsZW1lbnQgYSByaWdodC1zaGlmdCBvZiBhIHNpZ25lZCBpbnRlZ2VyCisgICAgICogYXMg
YW4gQXJpdGhtZXRpYyBTaGlmdCBSaWdodCAod2l0aCBzaWduIGV4dGVuc2lvbikuCisgICAgICov
CisjICAgZGVmaW5lIFVfU0lHTkVEX1JJR0hUX1NISUZUX0lTX0FSSVRITUVUSUMgMQorI2VuZGlm
CisKKy8qKiBEZWZpbmUgdGhpcyB0byAxIGlmIHlvdXIgcGxhdGZvcm0gc3VwcG9ydHMgSUVFRSA3
NTQgZmxvYXRpbmcgcG9pbnQsCisgICB0byAwIGlmIGl0IGRvZXMgbm90LiAqLworI2lmbmRlZiBJ
RUVFXzc1NAorIyAgIGRlZmluZSBJRUVFXzc1NCAxCisjZW5kaWYKKworLyoqCisgKiB1aW50cHRy
X3QgaXMgYW4gb3B0aW9uYWwgcGFydCBvZiB0aGUgc3RhbmRhcmQgZGVmaW5pdGlvbnMgaW4gc3Rk
aW50LmguCisgKiBUaGUgb3Blbmdyb3VwLm9yZyBkb2N1bWVudGF0aW9uIGZvciBzdGRpbnQuaCBz
YXlzCisgKiAiT24gWFNJLWNvbmZvcm1hbnQgc3lzdGVtcywgdGhlIGludHB0cl90IGFuZCB1aW50
cHRyX3QgdHlwZXMgYXJlIHJlcXVpcmVkOworICogb3RoZXJ3aXNlLCB0aGV5IGFyZSBvcHRpb25h
bC4iCisgKiBXZSBhc3N1bWUgdGhhdCB3aGVuIHVpbnRwdHJfdCBpcyBkZWZpbmVkLCBVSU5UUFRS
X01BWCBpcyBkZWZpbmVkIGFzIHdlbGwuCisgKgorICogRG8gbm90IHVzZSBwdHJkaWZmX3Qgc2lu
Y2UgaXQgaXMgc2lnbmVkLiBzaXplX3QgaXMgdW5zaWduZWQuCisgKi8KKy8qIFRPRE86IFRoaXMg
Y2hlY2sgZmFpbHMgb24gc29tZSB6IGVudmlyb25tZW50cy4gRmlsZWQgYSB0aWNrZXQgIzkzNTcg
Zm9yIHRoaXMuICovCisjaWYgIWRlZmluZWQoX19pbnRwdHJfdF9kZWZpbmVkKSAmJiAhZGVmaW5l
ZChVSU5UUFRSX01BWCkgJiYgKFVfUExBVEZPUk0gIT0gVV9QRl9PUzM5MCkKK3R5cGVkZWYgc2l6
ZV90IHVpbnRwdHJfdDsKKyNlbmRpZgorCisvKioKKyAqIFxkZWYgVV9IQVZFX01TVkNfMjAwM19P
Ul9FQVJMSUVSCisgKiBGbGFnIGZvciB3b3JrYXJvdW5kIG9mIE1TVkMgMjAwMyBvcHRpbWl6YXRp
b24gYnVncworICogQGludGVybmFsCisgKi8KKyNpZiAhZGVmaW5lZChVX0hBVkVfTVNWQ18yMDAz
X09SX0VBUkxJRVIpICYmIGRlZmluZWQoX01TQ19WRVIpICYmIChfTVNDX1ZFUiA8IDE0MDApCisj
ZGVmaW5lIFVfSEFWRV9NU1ZDXzIwMDNfT1JfRUFSTElFUgorI2VuZGlmCisKKy8qPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ki8KKy8qKiBAeyBJbmZvcm1hdGlvbiBhYm91dCBQT1NJWCBzdXBwb3J0ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ki8KKworI2lmZGVmIFVfSEFWRV9OTF9MQU5HSU5GT19DT0RFU0VUCisgICAgLyogVXNlIHRoZSBw
cmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STV9IQVNfV0lOMzJfQVBJIHx8IFVf
UExBVEZPUk0gPT0gVV9QRl9BTkRST0lEIHx8IFVfUExBVEZPUk0gPT0gVV9QRl9RTlgKKyMgICBk
ZWZpbmUgVV9IQVZFX05MX0xBTkdJTkZPX0NPREVTRVQgMAorI2Vsc2UKKyMgICBkZWZpbmUgVV9I
QVZFX05MX0xBTkdJTkZPX0NPREVTRVQgMQorI2VuZGlmCisKKyNpZmRlZiBVX05MX0xBTkdJTkZP
X0NPREVTRVQKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiAhVV9I
QVZFX05MX0xBTkdJTkZPX0NPREVTRVQKKyMgICBkZWZpbmUgVV9OTF9MQU5HSU5GT19DT0RFU0VU
IC0xCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAKKyAgIC8qIG5vdCBkZWZpbmVkICov
CisjZWxzZQorIyAgIGRlZmluZSBVX05MX0xBTkdJTkZPX0NPREVTRVQgQ09ERVNFVAorI2VuZGlm
CisKKyNpZmRlZiBVX1RaU0VUCisgICAgLyogVXNlIHRoZSBwcmVkZWZpbmVkIHZhbHVlLiAqLwor
I2VsaWYgVV9QTEFURk9STV9VU0VTX09OTFlfV0lOMzJfQVBJCisjICAgZGVmaW5lIFVfVFpTRVQg
X3R6c2V0CisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAKKyAgIC8qIG5vdCBkZWZpbmVk
ICovCisjZWxzZQorIyAgIGRlZmluZSBVX1RaU0VUIHR6c2V0CisjZW5kaWYKKworI2lmIGRlZmlu
ZWQoVV9USU1FWk9ORSkgfHwgZGVmaW5lZChVX0hBVkVfVElNRVpPTkUpCisgICAgLyogVXNlIHRo
ZSBwcmVkZWZpbmVkIHZhbHVlLiAqLworI2VsaWYgVV9QTEFURk9STSA9PSBVX1BGX0FORFJPSUQK
KyMgICBkZWZpbmUgVV9USU1FWk9ORSB0aW1lem9uZQorI2VsaWYgVV9QTEFURk9STV9JU19MSU5V
WF9CQVNFRAorIyAgIGlmIGRlZmluZWQoX19VQ0xJQkNfXykKKyAgICAgICAvKiB1Q2xpYmMgZG9l
cyBub3QgaGF2ZSBfX3RpbWV6b25lIG9yIF90aW1lem9uZS4gKi8KKyMgICBlbGlmIGRlZmluZWQo
X05FV0xJQl9WRVJTSU9OKQorIyAgICAgIGRlZmluZSBVX1RJTUVaT05FICAgICAgX3RpbWV6b25l
CisjICAgZWxpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgICAgICAvKiBnbGliYyAqLworIyAgICAg
IGRlZmluZSBVX1RJTUVaT05FICAgICAgX190aW1lem9uZQorIyAgIGVuZGlmCisjZWxpZiBVX1BM
QVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKKyMgICBkZWZpbmUgVV9USU1FWk9ORSBfdGltZXpv
bmUKKyNlbGlmIFVfUExBVEZPUk0gPT0gVV9QRl9CU0QgJiYgIWRlZmluZWQoX19OZXRCU0RfXykK
KyAgIC8qIG5vdCBkZWZpbmVkICovCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAKKyAg
IC8qIG5vdCBkZWZpbmVkICovCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfSVBIT05FCisgICAv
KiBub3QgZGVmaW5lZCAqLworI2Vsc2UKKyMgICBkZWZpbmUgVV9USU1FWk9ORSB0aW1lem9uZQor
I2VuZGlmCisKKyNpZmRlZiBVX1RaTkFNRQorICAgIC8qIFVzZSB0aGUgcHJlZGVmaW5lZCB2YWx1
ZS4gKi8KKyNlbGlmIFVfUExBVEZPUk1fVVNFU19PTkxZX1dJTjMyX0FQSQorIyAgIGRlZmluZSBV
X1RaTkFNRSBfdHpuYW1lCisjZWxpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAKKyAgIC8qIG5v
dCBkZWZpbmVkICovCisjZWxzZQorIyAgIGRlZmluZSBVX1RaTkFNRSB0em5hbWUKKyNlbmRpZgor
CisjaWZkZWYgVV9IQVZFX01NQVAKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICov
CisjZWxpZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkKKyMgICBkZWZpbmUgVV9IQVZFX01NQVAg
MAorI2Vsc2UKKyMgICBkZWZpbmUgVV9IQVZFX01NQVAgMQorI2VuZGlmCisKKyNpZmRlZiBVX0hB
VkVfUE9QRU4KKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BM
QVRGT1JNX1VTRVNfT05MWV9XSU4zMl9BUEkKKyMgICBkZWZpbmUgVV9IQVZFX1BPUEVOIDAKKyNl
bGlmIFVfUExBVEZPUk0gPT0gVV9QRl9PUzQwMAorIyAgIGRlZmluZSBVX0hBVkVfUE9QRU4gMAor
I2Vsc2UKKyMgICBkZWZpbmUgVV9IQVZFX1BPUEVOIDEKKyNlbmRpZgorCisvKioKKyAqIFxkZWYg
VV9IQVZFX0RJUkVOVF9ICisgKiBEZWZpbmVzIHdoZXRoZXIgZGlyZW50LmggaXMgYXZhaWxhYmxl
LgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX0hBVkVfRElSRU5UX0gKKyAgICAvKiBVc2Ug
dGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BMQVRGT1JNX0hBU19XSU4zMl9BUEkK
KyMgICBkZWZpbmUgVV9IQVZFX0RJUkVOVF9IIDAKKyNlbHNlCisjICAgZGVmaW5lIFVfSEFWRV9E
SVJFTlRfSCAxCisjZW5kaWYKKworLyoqIEB9ICovCisKKy8qPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8K
Ky8qKiBAeyBHQ0MgYnVpbHQgaW4gZnVuY3Rpb25zIGZvciBhdG9taWMgbWVtb3J5IG9wZXJhdGlv
bnMgICAgICAgICAgICAgICAgICAgKi8KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KKworLyoqCisg
KiBcZGVmIFVfSEFWRV9HQ0NfQVRPTUlDUworICogQGludGVybmFsCisgKi8KKyNpZmRlZiBVX0hB
VkVfR0NDX0FUT01JQ1MKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxp
ZiBVX1BMQVRGT1JNID09IFVfUEZfTUlOR1cKKyAgICAjZGVmaW5lIFVfSEFWRV9HQ0NfQVRPTUlD
UyAwCisjZWxpZiBVX0dDQ19NQUpPUl9NSU5PUiA+PSA0MDQgfHwgZGVmaW5lZChfX2NsYW5nX18p
CisgICAgLyogVE9ETzogSW50ZWwgaWNjIGFuZCBJQk0geGxjIG9uIEFJWCBhbHNvIHN1cHBvcnQg
Z2NjIGF0b21pY3MuICAoSW50ZWwgb3JpZ2luYXRlZCB0aGVtLikKKyAgICAgKiAgICAgICBBZGQg
dGhlbSBmb3IgdGhlc2UgY29tcGlsZXJzLgorICAgICAqIE5vdGU6IENsYW5nIHNldHMgX19HTlVD
X18gZGVmaW5lcyBmb3IgdmVyc2lvbiA0LjIsIHNvIG1pc3NlcyB0aGUgNC40IHRlc3QgaGVyZS4K
KyAgICAgKi8KKyMgICBkZWZpbmUgVV9IQVZFX0dDQ19BVE9NSUNTIDEKKyNlbHNlCisjICAgZGVm
aW5lIFVfSEFWRV9HQ0NfQVRPTUlDUyAwCisjZW5kaWYKKworLyoqIEB9ICovCisKKy8qKgorICog
XGRlZiBVX0hBVkVfU1REX0FUT01JQ1MKKyAqIERlZmluZXMgd2hldGhlciB0aGUgc3RhbmRhcmQg
QysrMTEgPGF0b21pYz4gaXMgYXZhaWxhYmxlLgorICogSUNVIHdpbGwgdXNlIHRoaXMgd2hlbiBh
dmlhbGFibGUsCisgKiBvdGhlcndpc2Ugd2lsbCBmYWxsIGJhY2sgdG8gY29tcGlsZXIgb3IgcGxh
dGZvcm0gc3BlY2lmaWMgYWx0ZXJuYXRpdmVzLgorICogQGludGVybmFsCisgKi8KKyNpZmRlZiBV
X0hBVkVfU1REX0FUT01JQ1MKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisj
ZWxpZiAhZGVmaW5lZChfX2NwbHVzcGx1cykgfHwgX19jcGx1c3BsdXM8MjAxMTAzTAorICAgIC8q
IE5vdCBDKysxMSwgZGlzYWJsZSB1c2Ugb2YgYXRvbWljcyAqLworIyAgIGRlZmluZSBVX0hBVkVf
U1REX0FUT01JQ1MgMAorI2VsaWYgX19jbGFuZ19fICYmIF9fY2xhbmdfbWFqb3JfXz09MyAmJiBf
X2NsYW5nX21pbm9yX188PTEKKyAgICAvKiBDbGFuZyAzLjEsIGhhcyBhdG9taWMgdmFyaWFibGUg
aW5pdGlhbGl6ZXIgYnVnLiAqLworIyAgIGRlZmluZSBVX0hBVkVfU1REX0FUT01JQ1MgMAorI2Vs
c2UgCisgICAgLyogVV9IQVZFX0FUT01JQyBpcyB0eXBpY2FsbHkgc2V0IGJ5IGFuIGF1dG9jb25m
IHRlc3Qgb2YgI2luY2x1ZGUgPGF0b21pYz4gICovCisgICAgLyogICBDYW4gYmUgc2V0IG1hbnVh
bGx5LCBvciBsZWZ0IHVuZGVmaW5lZCwgb24gcGxhdGZvcm1zIHdpdGhvdXQgYXV0b2NvbmYuICov
CisjICAgaWYgZGVmaW5lZChVX0hBVkVfQVRPTUlDKSAmJiAgVV9IQVZFX0FUT01JQyAKKyMgICAg
ICBkZWZpbmUgVV9IQVZFX1NURF9BVE9NSUNTIDEKKyMgICBlbHNlCisjICAgICAgZGVmaW5lIFVf
SEFWRV9TVERfQVRPTUlDUyAwCisjICAgZW5kaWYKKyNlbmRpZgorCisKKy8qPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ki8KKy8qKiBAeyBDb2RlIGFsaWdubWVudCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8K
KworLyoqCisgKiBcZGVmIFVfQUxJR05fQ09ERQorICogVGhpcyBpcyB1c2VkIHRvIGFsaWduIGNv
ZGUgZnJhZ21lbnRzIHRvIGEgc3BlY2lmaWMgYnl0ZSBib3VuZGFyeS4KKyAqIFRoaXMgaXMgdXNl
ZnVsIGZvciBnZXR0aW5nIGNvbnNpc3RlbnQgcGVyZm9ybWFuY2UgdGVzdCByZXN1bHRzLgorICog
QGludGVybmFsCisgKi8KKyNpZmRlZiBVX0FMSUdOX0NPREUKKyAgICAvKiBVc2UgdGhlIHByZWRl
ZmluZWQgdmFsdWUuICovCisjZWxpZiBkZWZpbmVkKF9NU0NfVkVSKSAmJiBkZWZpbmVkKF9NX0lY
ODYpICYmICFkZWZpbmVkKF9NQU5BR0VEKQorIyAgIGRlZmluZSBVX0FMSUdOX0NPREUoYm91bmRh
cnlTaXplKSBfX2FzbSAgYWxpZ24gYm91bmRhcnlTaXplCisjZWxzZQorIyAgIGRlZmluZSBVX0FM
SUdOX0NPREUoYm91bmRhcnlTaXplKSAKKyNlbmRpZgorCisvKiogQH0gKi8KKworLyo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0qLworLyoqIEB7IFByb2dyYW1zIHVzZWQgYnkgSUNVIGNvZGUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0qLworCisvKioKKyAqIFxkZWYgVV9NQUtFX0lTX05NQUtFCisgKiBEZWZpbmVzIHdoZXRoZXIg
dGhlICJtYWtlIiBwcm9ncmFtIGlzIFdpbmRvd3Mgbm1ha2UuCisgKi8KKyNpZmRlZiBVX01BS0Vf
SVNfTk1BS0UKKyAgICAvKiBVc2UgdGhlIHByZWRlZmluZWQgdmFsdWUuICovCisjZWxpZiBVX1BM
QVRGT1JNID09IFVfUEZfV0lORE9XUworIyAgIGRlZmluZSBVX01BS0VfSVNfTk1BS0UgMQorI2Vs
c2UKKyMgICBkZWZpbmUgVV9NQUtFX0lTX05NQUtFIDAKKyNlbmRpZgorCisvKiogQH0gKi8KKwor
Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSovCisvKiBQbGF0Zm9ybSB1dGlsaXRpZXMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0qLworCisvKioKKyAqIFBsYXRmb3JtIHV0aWxpdGllcyBpc29sYXRlcyB0aGUgcGxh
dGZvcm0gZGVwZW5kZW5jaWVzIG9mIHRoZQorICogbGliYXJhcnkuICBGb3IgZWFjaCBwbGF0Zm9y
bSB3aGljaCB0aGlzIGNvZGUgaXMgcG9ydGVkIHRvLCB0aGVzZQorICogZnVuY3Rpb25zIG1heSBo
YXZlIHRvIGJlIHJlLWltcGxlbWVudGVkLgorICovCisKKy8qKgorICogRmxvYXRpbmcgcG9pbnQg
dXRpbGl0eSB0byBkZXRlcm1pbmUgaWYgYSBkb3VibGUgaXMgTm90IGEgTnVtYmVyIChOYU4pLgor
ICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgVUJvb2wgICBVX0VYUE9SVDIgdXBydl9pc05h
Tihkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gZGV0ZXJtaW5l
IGlmIGEgZG91YmxlIGhhcyBhbiBpbmZpbml0ZSB2YWx1ZS4KKyAqIEBpbnRlcm5hbAorICovCitV
X0lOVEVSTkFMIFVCb29sICAgVV9FWFBPUlQyIHVwcnZfaXNJbmZpbml0ZShkb3VibGUgZCk7Cisv
KioKKyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gZGV0ZXJtaW5lIGlmIGEgZG91YmxlIGhh
cyBhIHBvc2l0aXZlIGluZmluaXRlIHZhbHVlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJO
QUwgVUJvb2wgICBVX0VYUE9SVDIgdXBydl9pc1Bvc2l0aXZlSW5maW5pdHkoZG91YmxlIGQpOwor
LyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGlsaXR5IHRvIGRldGVybWluZSBpZiBhIGRvdWJsZSBo
YXMgYSBuZWdhdGl2ZSBpbmZpbml0ZSB2YWx1ZS4KKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVS
TkFMIFVCb29sICAgVV9FWFBPUlQyIHVwcnZfaXNOZWdhdGl2ZUluZmluaXR5KGRvdWJsZSBkKTsK
Ky8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0aGF0IHJldHVybnMgYSBOb3QgYSBOdW1i
ZXIgKE5hTikgdmFsdWUuCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBkb3VibGUgIFVf
RVhQT1JUMiB1cHJ2X2dldE5hTih2b2lkKTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0
eSB0aGF0IHJldHVybnMgYW4gaW5maW5pdGUgdmFsdWUuCisgKiBAaW50ZXJuYWwKKyAqLworVV9J
TlRFUk5BTCBkb3VibGUgIFVfRVhQT1JUMiB1cHJ2X2dldEluZmluaXR5KHZvaWQpOworCisvKioK
KyAqIEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gdHJ1bmNhdGUgYSBkb3VibGUuCisgKiBAaW50
ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBkb3VibGUgIFVfRVhQT1JUMiB1cHJ2X3RydW5jKGRvdWJs
ZSBkKTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIGZs
b29yIG9mIGEgZG91YmxlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBV
X0VYUE9SVDIgdXBydl9mbG9vcihkb3VibGUgZCk7CisvKioKKyAqIEZsb2F0aW5nIHBvaW50IHV0
aWxpdHkgdG8gY2FsY3VsYXRlIHRoZSBjZWlsaW5nIG9mIGEgZG91YmxlLgorICogQGludGVybmFs
CisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9jZWlsKGRvdWJsZSBkKTsK
Ky8qKgorICogRmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIGFic29sdXRl
IHZhbHVlIG9mIGEgZG91YmxlLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91Ymxl
ICBVX0VYUE9SVDIgdXBydl9mYWJzKGRvdWJsZSBkKTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQg
dXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIGZyYWN0aW9uYWwgYW5kIGludGVnZXIgcGFydHMgb2Yg
YSBkb3VibGUuCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBkb3VibGUgIFVfRVhQT1JU
MiB1cHJ2X21vZGYoZG91YmxlIGQsIGRvdWJsZSogcGludGVnZXIpOworLyoqCisgKiBGbG9hdGlu
ZyBwb2ludCB1dGlsaXR5IHRvIGNhbGN1bGF0ZSB0aGUgcmVtYWluZGVyIG9mIGEgZG91YmxlIGRp
dmlkZWQgYnkgYW5vdGhlciBkb3VibGUuCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBk
b3VibGUgIFVfRVhQT1JUMiB1cHJ2X2Ztb2QoZG91YmxlIGQsIGRvdWJsZSB5KTsKKy8qKgorICog
RmxvYXRpbmcgcG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgZCB0byB0aGUgcG93ZXIgb2YgZXhw
b25lbnQgKGReZXhwb25lbnQpLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91Ymxl
ICBVX0VYUE9SVDIgdXBydl9wb3coZG91YmxlIGQsIGRvdWJsZSBleHBvbmVudCk7CisvKioKKyAq
IEZsb2F0aW5nIHBvaW50IHV0aWxpdHkgdG8gY2FsY3VsYXRlIDEwIHRvIHRoZSBwb3dlciBvZiBl
eHBvbmVudCAoMTBeZXhwb25lbnQpLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91
YmxlICBVX0VYUE9SVDIgdXBydl9wb3cxMChpbnQzMl90IGV4cG9uZW50KTsKKy8qKgorICogRmxv
YXRpbmcgcG9pbnQgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIG1heGltdW0gdmFsdWUgb2YgdHdv
IGRvdWJsZXMuCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBkb3VibGUgIFVfRVhQT1JU
MiB1cHJ2X2ZtYXgoZG91YmxlIGQsIGRvdWJsZSB5KTsKKy8qKgorICogRmxvYXRpbmcgcG9pbnQg
dXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIG1pbmltdW0gdmFsdWUgb2YgdHdvIGRvdWJsZXMuCisg
KiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBkb3VibGUgIFVfRVhQT1JUMiB1cHJ2X2ZtaW4o
ZG91YmxlIGQsIGRvdWJsZSB5KTsKKy8qKgorICogUHJpdmF0ZSB1dGlsaXR5IHRvIGNhbGN1bGF0
ZSB0aGUgbWF4aW11bSB2YWx1ZSBvZiB0d28gaW50ZWdlcnMuCisgKiBAaW50ZXJuYWwKKyAqLwor
VV9JTlRFUk5BTCBpbnQzMl90IFVfRVhQT1JUMiB1cHJ2X21heChpbnQzMl90IGQsIGludDMyX3Qg
eSk7CisvKioKKyAqIFByaXZhdGUgdXRpbGl0eSB0byBjYWxjdWxhdGUgdGhlIG1pbmltdW0gdmFs
dWUgb2YgdHdvIGludGVnZXJzLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgaW50MzJf
dCBVX0VYUE9SVDIgdXBydl9taW4oaW50MzJfdCBkLCBpbnQzMl90IHkpOworCisjaWYgVV9JU19C
SUdfRU5ESUFOCisjICAgZGVmaW5lIHVwcnZfaXNOZWdhdGl2ZShudW1iZXIpICgqKChzaWduZWQg
Y2hhciAqKSYobnVtYmVyKSk8MCkKKyNlbHNlCisjICAgZGVmaW5lIHVwcnZfaXNOZWdhdGl2ZShu
dW1iZXIpICgqKChzaWduZWQgY2hhciAqKSYobnVtYmVyKStzaXplb2YobnVtYmVyKS0xKTwwKQor
I2VuZGlmCisKKy8qKgorICogUmV0dXJuIHRoZSBsYXJnZXN0IHBvc2l0aXZlIG51bWJlciB0aGF0
IGNhbiBiZSByZXByZXNlbnRlZCBieSBhbiBpbnRlZ2VyCisgKiB0eXBlIG9mIGFyYml0cmFyeSBi
aXQgbGVuZ3RoLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9S
VDIgdXBydl9tYXhNYW50aXNzYSh2b2lkKTsKKworLyoqCisgKiBGbG9hdGluZyBwb2ludCB1dGls
aXR5IHRvIGNhbGN1bGF0ZSB0aGUgbG9nYXJpdGhtIG9mIGEgZG91YmxlLgorICogQGludGVybmFs
CisgKi8KK1VfSU5URVJOQUwgZG91YmxlICBVX0VYUE9SVDIgdXBydl9sb2coZG91YmxlIGQpOwor
CisvKioKKyAqIERvZXMgY29tbW9uIG5vdGlvbiBvZiByb3VuZGluZyBlLmcuIHVwcnZfZmxvb3Io
eCArIDAuNSk7CisgKiBAcGFyYW0geCB0aGUgZG91YmxlIG51bWJlcgorICogQHJldHVybiB0aGUg
cm91bmRlZCBkb3VibGUKKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGRvdWJsZSAgVV9F
WFBPUlQyIHVwcnZfcm91bmQoZG91YmxlIHgpOworCisjaWYgMAorLyoqCisgKiBSZXR1cm5zIHRo
ZSBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50IGluIGEgZG91YmxlIG51
bWJlciB4LgorICoKKyAqIEBwYXJhbSB4IHRoZSBkb3VibGUgbnVtYmVyCisgKiBAcmV0dXJuIHRo
ZSBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50IGluIGEgZG91YmxlIG51
bWJlciB4LgorICogQGludGVybmFsCisgKi8KKy8qVV9JTlRFUk5BTCBpbnQzMl90ICBVX0VYUE9S
VDIgdXBydl9kaWdpdHNBZnRlckRlY2ltYWwoZG91YmxlIHgpOyovCisjZW5kaWYKKworI2lmICFV
X0NIQVJTRVRfSVNfVVRGOAorLyoqCisgKiBQbGVhc2UgdXNlIHVjbnZfZ2V0RGVmYXVsdE5hbWUo
KSBpbnN0ZWFkLgorICogUmV0dXJuIHRoZSBkZWZhdWx0IGNvZGVwYWdlIGZvciB0aGlzIHBsYXRm
b3JtIGFuZCBsb2NhbGUuCisgKiBUaGlzIGZ1bmN0aW9uIGNhbiBjYWxsIHNldGxvY2FsZSgpIG9u
IFVuaXggcGxhdGZvcm1zLiBQbGVhc2UgcmVhZCB0aGUKKyAqIHBsYXRmb3JtIGRvY3VtZW50YXRp
b24gb24gc2V0bG9jYWxlKCkgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KKyAqIEByZXR1
cm4gdGhlIGRlZmF1bHQgY29kZXBhZ2UgZm9yIHRoaXMgcGxhdGZvcm0gCisgKiBAaW50ZXJuYWwK
KyAqLworVV9JTlRFUk5BTCBjb25zdCBjaGFyKiAgVV9FWFBPUlQyIHVwcnZfZ2V0RGVmYXVsdENv
ZGVwYWdlKHZvaWQpOworI2VuZGlmCisKKy8qKgorICogUGxlYXNlIHVzZSB1bG9jX2dldERlZmF1
bHQoKSBpbnN0ZWFkLgorICogUmV0dXJuIHRoZSBkZWZhdWx0IGxvY2FsZSBJRCBzdHJpbmcgYnkg
cXVlcnlpbmcgdGhzIHN5c3RlbSwgb3IKKyAqICAgICB6ZXJvIGlmIG9uZSBjYW5ub3QgYmUgZm91
bmQuIAorICogVGhpcyBmdW5jdGlvbiBjYW4gY2FsbCBzZXRsb2NhbGUoKSBvbiBVbml4IHBsYXRm
b3Jtcy4gUGxlYXNlIHJlYWQgdGhlCisgKiBwbGF0Zm9ybSBkb2N1bWVudGF0aW9uIG9uIHNldGxv
Y2FsZSgpIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCisgKiBAcmV0dXJuIHRoZSBkZWZh
dWx0IGxvY2FsZSBJRCBzdHJpbmcKKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIGNvbnN0
IGNoYXIqICBVX0VYUE9SVDIgdXBydl9nZXREZWZhdWx0TG9jYWxlSUQodm9pZCk7CisKKy8qKgor
ICogVGltZSB6b25lIHV0aWxpdGllcworICoKKyAqIFdyYXBwZXJzIGZvciBDIHJ1bnRpbWUgbGli
cmFyeSBmdW5jdGlvbnMgcmVsYXRpbmcgdG8gdGltZXpvbmVzLgorICogVGhlIHRfdHpzZXQoKSBm
dW5jdGlvbiAoc2ltaWxhciB0byB0enNldCkgdXNlcyB0aGUgY3VycmVudCBzZXR0aW5nCisgKiBv
ZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgVFogdG8gYXNzaWduIHZhbHVlcyB0byB0aHJlZSBn
bG9iYWwKKyAqIHZhcmlhYmxlczogZGF5bGlnaHQsIHRpbWV6b25lLCBhbmQgdHpuYW1lLiBUaGVz
ZSB2YXJpYWJsZXMgaGF2ZSB0aGUKKyAqIGZvbGxvd2luZyBtZWFuaW5ncywgYW5kIGFyZSBkZWNs
YXJlZCBpbiAmbHQ7dGltZS5oJmd0Oy4KKyAqCisgKiAgIGRheWxpZ2h0ICAgTm9uemVybyBpZiBk
YXlsaWdodC1zYXZpbmctdGltZSB6b25lIChEU1QpIGlzIHNwZWNpZmllZAorICogICAgICAgICAg
ICAgIGluIFRaOyBvdGhlcndpc2UsIDAuIERlZmF1bHQgdmFsdWUgaXMgMS4KKyAqICAgdGltZXpv
bmUgICBEaWZmZXJlbmNlIGluIHNlY29uZHMgYmV0d2VlbiBjb29yZGluYXRlZCB1bml2ZXJzYWwK
KyAqICAgICAgICAgICAgICB0aW1lIGFuZCBsb2NhbCB0aW1lLiBFLmcuLCAtMjgsODAwIGZvciBQ
U1QgKEdNVC04aHJzKQorICogICB0em5hbWUoMCkgIFRocmVlLWxldHRlciB0aW1lLXpvbmUgbmFt
ZSBkZXJpdmVkIGZyb20gVFogZW52aXJvbm1lbnQKKyAqICAgICAgICAgICAgICB2YXJpYWJsZS4g
RS5nLiwgIlBTVCIuCisgKiAgIHR6bmFtZSgxKSAgVGhyZWUtbGV0dGVyIERTVCB6b25lIG5hbWUg
ZGVyaXZlZCBmcm9tIFRaIGVudmlyb25tZW50CisgKiAgICAgICAgICAgICAgdmFyaWFibGUuICBF
LmcuLCAiUERUIi4gSWYgRFNUIHpvbmUgaXMgb21pdHRlZCBmcm9tIFRaLAorICogICAgICAgICAg
ICAgIHR6bmFtZSgxKSBpcyBhbiBlbXB0eSBzdHJpbmcuCisgKgorICogTm90ZXM6IEZvciBleGFt
cGxlLCB0byBzZXQgdGhlIFRaIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGNvcnJlc3BvbmQKKyAq
IHRvIHRoZSBjdXJyZW50IHRpbWUgem9uZSBpbiBHZXJtYW55LCB5b3UgY2FuIHVzZSBvbmUgb2Yg
dGhlCisgKiBmb2xsb3dpbmcgc3RhdGVtZW50czoKKyAqCisgKiAgIHNldCBUWj1HU1QxR0RUCisg
KiAgIHNldCBUWj1HU1QrMUdEVAorICoKKyAqIElmIHRoZSBUWiB2YWx1ZSBpcyBub3Qgc2V0LCB0
X3R6c2V0KCkgYXR0ZW1wdHMgdG8gdXNlIHRoZSB0aW1lIHpvbmUKKyAqIGluZm9ybWF0aW9uIHNw
ZWNpZmllZCBieSB0aGUgb3BlcmF0aW5nIHN5c3RlbS4gVW5kZXIgV2luZG93cyBOVAorICogYW5k
IFdpbmRvd3MgOTUsIHRoaXMgaW5mb3JtYXRpb24gaXMgc3BlY2lmaWVkIGluIHRoZSBDb250cm9s
IFBhbmVsJ3MKKyAqIERhdGUvVGltZSBhcHBsaWNhdGlvbi4KKyAqIEBpbnRlcm5hbAorICovCitV
X0lOVEVSTkFMIHZvaWQgICAgIFVfRVhQT1JUMiB1cHJ2X3R6c2V0KHZvaWQpOworCisvKioKKyAq
IERpZmZlcmVuY2UgaW4gc2Vjb25kcyBiZXR3ZWVuIGNvb3JkaW5hdGVkIHVuaXZlcnNhbAorICog
dGltZSBhbmQgbG9jYWwgdGltZS4gRS5nLiwgLTI4LDgwMCBmb3IgUFNUIChHTVQtOGhycykKKyAq
IEByZXR1cm4gdGhlIGRpZmZlcmVuY2UgaW4gc2Vjb25kcyBiZXR3ZWVuIGNvb3JkaW5hdGVkIHVu
aXZlcnNhbCB0aW1lIGFuZCBsb2NhbCB0aW1lLgorICogQGludGVybmFsCisgKi8KK1VfSU5URVJO
QUwgaW50MzJfdCAgVV9FWFBPUlQyIHVwcnZfdGltZXpvbmUodm9pZCk7CisKKy8qKgorICogICB0
em5hbWUoMCkgIFRocmVlLWxldHRlciB0aW1lLXpvbmUgbmFtZSBkZXJpdmVkIGZyb20gVFogZW52
aXJvbm1lbnQKKyAqICAgICAgICAgICAgICB2YXJpYWJsZS4gRS5nLiwgIlBTVCIuCisgKiAgIHR6
bmFtZSgxKSAgVGhyZWUtbGV0dGVyIERTVCB6b25lIG5hbWUgZGVyaXZlZCBmcm9tIFRaIGVudmly
b25tZW50CisgKiAgICAgICAgICAgICAgdmFyaWFibGUuICBFLmcuLCAiUERUIi4gSWYgRFNUIHpv
bmUgaXMgb21pdHRlZCBmcm9tIFRaLAorICogICAgICAgICAgICAgIHR6bmFtZSgxKSBpcyBhbiBl
bXB0eSBzdHJpbmcuCisgKiBAaW50ZXJuYWwKKyAqLworVV9JTlRFUk5BTCBjb25zdCBjaGFyKiBV
X0VYUE9SVDIgdXBydl90em5hbWUoaW50IG4pOworCisvKioKKyAqIEdldCBVVEMgKEdNVCkgdGlt
ZSBtZWFzdXJlZCBpbiBtaWxsaXNlY29uZHMgc2luY2UgMDowMCBvbiAxLzEvMTk3MC4KKyAqIFRo
aXMgZnVuY3Rpb24gaXMgYWZmZWN0ZWQgYnkgJ2Zha2V0aW1lJyBhbmQgc2hvdWxkIGJlIHRoZSBi
b3R0bGVuZWNrIGZvciBhbGwgdXNlci12aXNpYmxlIElDVSB0aW1lIGZ1bmN0aW9ucy4KKyAqIEBy
ZXR1cm4gdGhlIFVUQyB0aW1lIG1lYXN1cmVkIGluIG1pbGxpc2Vjb25kcworICogQGludGVybmFs
CisgKi8KK1VfSU5URVJOQUwgVURhdGUgVV9FWFBPUlQyIHVwcnZfZ2V0VVRDdGltZSh2b2lkKTsK
KworLyoqCisgKiBHZXQgVVRDIChHTVQpIHRpbWUgbWVhc3VyZWQgaW4gbWlsbGlzZWNvbmRzIHNp
bmNlIDA6MDAgb24gMS8xLzE5NzAuCisgKiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBhZmZlY3RlZCBi
eSAnZmFrZXRpbWUnLCBzbyBpdCBzaG91bGQgb25seSBiZSB1c2VkIGJ5IGxvdyBsZXZlbCB0ZXN0
IGZ1bmN0aW9ucy0gbm90IGJ5IGFueXRoaW5nIHRoYXQKKyAqIGV4cG9zZXMgdGltZSB0byB0aGUg
ZW5kIHVzZXIuCisgKiBAcmV0dXJuIHRoZSBVVEMgdGltZSBtZWFzdXJlZCBpbiBtaWxsaXNlY29u
ZHMKKyAqIEBpbnRlcm5hbAorICovCitVX0lOVEVSTkFMIFVEYXRlIFVfRVhQT1JUMiB1cHJ2X2dl
dFJhd1VUQ3RpbWUodm9pZCk7CisKKy8qKgorICogRGV0ZXJtaW5lIHdoZXRoZXIgYSBwYXRobmFt
ZSBpcyBhYnNvbHV0ZSBvciBub3QsIGFzIGRlZmluZWQgYnkgdGhlIHBsYXRmb3JtLgorICogQHBh
cmFtIHBhdGggUGF0aG5hbWUgdG8gdGVzdAorICogQHJldHVybiBUUlVFIGlmIHRoZSBwYXRoIGlz
IGFic29sdXRlCisgKiBAaW50ZXJuYWwgKElDVSAzLjApCisgKi8KK1VfSU5URVJOQUwgVUJvb2wg
VV9FWFBPUlQyIHVwcnZfcGF0aElzQWJzb2x1dGUoY29uc3QgY2hhciAqcGF0aCk7CisKKy8qKgor
ICogVXNlIFVfTUFYX1BUUiBpbnN0ZWFkIG9mIHRoaXMgZnVuY3Rpb24uCisgKiBAcGFyYW0gdm9p
ZCBwb2ludGVyIHRvIHRlc3QKKyAqIEByZXR1cm4gdGhlIGxhcmdlc3QgcG9zc2libGUgcG9pbnRl
ciBncmVhdGVyIHRoYW4gdGhlIGJhc2UKKyAqIEBpbnRlcm5hbCAoSUNVIDMuOCkKKyAqLworVV9J
TlRFUk5BTCB2b2lkICogVV9FWFBPUlQyIHVwcnZfbWF4aW11bVB0cih2b2lkICpiYXNlKTsKKwor
LyoqCisgKiBNYXhpbXVtIHZhbHVlIG9mIGEgKHZvaWQqKSAtIHVzZSB0byBpbmRpY2F0ZSB0aGUg
bGltaXQgb2YgYW4gJ2luZmluaXRlJyBidWZmZXIuCisgKiBJbiBmYWN0LCBidWZmZXIgc2l6ZXMg
bXVzdCBub3QgZXhjZWVkIDJHQiBzbyB0aGF0IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4KKyAqIHRo
ZSBidWZmZXIgbGltaXQgYW5kIHRoZSBidWZmZXIgc3RhcnQgY2FuIGJlIGV4cHJlc3NlZCBpbiBh
biBpbnQzMl90LgorICoKKyAqIFRoZSBkZWZpbml0aW9uIG9mIFVfTUFYX1BUUiBtdXN0IGZ1bGZp
bGwgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICogLSByZXR1cm4gdGhlIGxhcmdlc3QgcG9z
c2libGUgcG9pbnRlciBncmVhdGVyIHRoYW4gYmFzZQorICogLSByZXR1cm4gYSB2YWxpZCBwb2lu
dGVyIGFjY29yZGluZyB0byB0aGUgbWFjaGluZSBhcmNoaXRlY3R1cmUgKEFTLzQwMCwgNjQtYml0
LCBldGMuKQorICogLSBhdm9pZCB3cmFwcGluZyBhcm91bmQgYXQgaGlnaCBhZGRyZXNzZXMKKyAq
IC0gbWFrZSBzdXJlIHRoYXQgdGhlIHJldHVybmVkIHBvaW50ZXIgaXMgbm90IGZhcnRoZXIgZnJv
bSBiYXNlIHRoYW4gMHg3ZmZmZmZmZiBieXRlcworICoKKyAqIEBwYXJhbSBiYXNlIFRoZSBiZWdp
bm5pbmcgb2YgYSBidWZmZXIgdG8gZmluZCB0aGUgbWF4aW11bSBvZmZzZXQgZnJvbQorICogQGlu
dGVybmFsCisgKi8KKyNpZm5kZWYgVV9NQVhfUFRSCisjICBpZiBVX1BMQVRGT1JNID09IFVfUEZf
T1MzOTAgJiYgIWRlZmluZWQoX0xQNjQpCisgICAgLyogV2UgaGF2ZSAzMS1iaXQgcG9pbnRlcnMu
ICovCisjICAgIGRlZmluZSBVX01BWF9QVFIoYmFzZSkgKCh2b2lkICopMHg3ZmZmZmZmZikKKyMg
IGVsaWYgVV9QTEFURk9STSA9PSBVX1BGX09TNDAwCisjICAgIGRlZmluZSBVX01BWF9QVFIoYmFz
ZSkgdXBydl9tYXhpbXVtUHRyKCh2b2lkICopYmFzZSkKKyMgIGVsaWYgMAorICAgIC8qCisgICAg
ICogRm9yIHBsYXRmb3JtcyB3aGVyZSBwb2ludGVycyBhcmUgc2NhbGFyIHZhbHVlcyAod2hpY2gg
aXMgbm9ybWFsLCBidXQgdW5saWtlIGk1L09TKQorICAgICAqIGJ1dCB0aGF0IGRvIG5vdCBkZWZp
bmUgdWludHB0cl90LgorICAgICAqCisgICAgICogSG93ZXZlciwgdGhpcyBkb2VzIG5vdCB3b3Jr
IG9uIG1vZGVybiBjb21waWxlcnM6CisgICAgICogVGhlIEMrKyBzdGFuZGFyZCBkb2VzIG5vdCBk
ZWZpbmUgcG9pbnRlciBvdmVyZmxvdywgYW5kIGFsbG93cyBjb21waWxlcnMgdG8KKyAgICAgKiBh
c3N1bWUgdGhhdCBwK3U+cCBmb3IgYW55IHBvaW50ZXIgcCBhbmQgYW55IGludGVnZXIgdT4wLgor
ICAgICAqIFRodXMsIG1vZGVybiBjb21waWxlcnMgb3B0aW1pemUgYXdheSB0aGUgIj4iIGNvbXBh
cmlzb24uCisgICAgICogKFNlZSBJQ1UgdGlja2V0cyAjNzE4NyBhbmQgIzgwOTYuKQorICAgICAq
LworIyAgICBkZWZpbmUgVV9NQVhfUFRSKGJhc2UpIFwKKyAgICAoKHZvaWQgKikoKChjaGFyICop
KGJhc2UpKzB4N2ZmZmZmZmZ1KSA+IChjaGFyICopKGJhc2UpIFwKKyAgICAgICAgPyAoKGNoYXIg
KikoYmFzZSkrMHg3ZmZmZmZmZnUpIFwKKyAgICAgICAgOiAoY2hhciAqKS0xKSkKKyMgIGVsc2UK
KyAgICAvKiBEZWZhdWx0IHZlcnNpb24uIEMrKyBzdGFuZGFyZCBjb21wbGlhbnQgZm9yIHNjYWxh
ciBwb2ludGVycy4gKi8KKyMgICAgZGVmaW5lIFVfTUFYX1BUUihiYXNlKSBcCisgICAgKCh2b2lk
ICopKCgodWludHB0cl90KShiYXNlKSsweDdmZmZmZmZmdSkgPiAodWludHB0cl90KShiYXNlKSBc
CisgICAgICAgID8gKCh1aW50cHRyX3QpKGJhc2UpKzB4N2ZmZmZmZmZ1KSBcCisgICAgICAgIDog
KHVpbnRwdHJfdCktMSkpCisjICBlbmRpZgorI2VuZGlmCisKKy8qICBEeW5hbWljIExpYnJhcnkg
RnVuY3Rpb25zICovCisKK3R5cGVkZWYgdm9pZCAoVVZvaWRGdW5jdGlvbikodm9pZCk7CisKKyNp
ZiBVX0VOQUJMRV9EWUxPQUQKKy8qKgorICogTG9hZCBhIGxpYnJhcnkKKyAqIEBpbnRlcm5hbCAo
SUNVIDQuNCkKKyAqLworVV9JTlRFUk5BTCB2b2lkICogVV9FWFBPUlQyIHVwcnZfZGxfb3Blbihj
b25zdCBjaGFyICpsaWJOYW1lLCBVRXJyb3JDb2RlICpzdGF0dXMpOworCisvKioKKyAqIENsb3Nl
IGEgbGlicmFyeQorICogQGludGVybmFsIChJQ1UgNC40KQorICovCitVX0lOVEVSTkFMIHZvaWQg
VV9FWFBPUlQyIHVwcnZfZGxfY2xvc2UoIHZvaWQgKmxpYiwgVUVycm9yQ29kZSAqc3RhdHVzKTsK
KworLyoqCisgKiBFeHRyYWN0IGEgc3ltYm9sIGZyb20gYSBsaWJyYXJ5IChmdW5jdGlvbikKKyAq
IEBpbnRlcm5hbCAoSUNVIDQuOCkKKyAqLworVV9JTlRFUk5BTCBVVm9pZEZ1bmN0aW9uKiBVX0VY
UE9SVDIgdXBydl9kbHN5bV9mdW5jKCB2b2lkICpsaWIsIGNvbnN0IGNoYXIgKnN5bWJvbE5hbWUs
IFVFcnJvckNvZGUgKnN0YXR1cyk7CisKKy8qKgorICogRXh0cmFjdCBhIHN5bWJvbCBmcm9tIGEg
bGlicmFyeSAoZnVuY3Rpb24pCisgKiBOb3QgaW1wbGVtZW50ZWQsIG5vIGNsaWVudHMuCisgKiBA
aW50ZXJuYWwKKyAqLworLyogVV9JTlRFUk5BTCB2b2lkICogVV9FWFBPUlQyIHVwcnZfZGxzeW1f
ZGF0YSggdm9pZCAqbGliLCBjb25zdCBjaGFyICpzeW1ib2xOYW1lLCBVRXJyb3JDb2RlICpzdGF0
dXMpOyAqLworCisjZW5kaWYKKworLyoqCisgKiBEZWZpbmUgbWFsbG9jIGFuZCByZWxhdGVkIGZ1
bmN0aW9ucworICogQGludGVybmFsCisgKi8KKyNpZiBVX1BMQVRGT1JNID09IFVfUEZfT1M0MDAK
KyMgZGVmaW5lIHVwcnZfZGVmYXVsdF9tYWxsb2MoeCkgX0NfVFNfbWFsbG9jKHgpCisjIGRlZmlu
ZSB1cHJ2X2RlZmF1bHRfcmVhbGxvYyh4LHkpIF9DX1RTX3JlYWxsb2MoeCx5KQorIyBkZWZpbmUg
dXBydl9kZWZhdWx0X2ZyZWUoeCkgX0NfVFNfZnJlZSh4KQorLyogYWxzbyBfQ19UU19jYWxsb2Mo
eCkgKi8KKyNlbHNlCisvKiBDIGRlZmF1bHRzICovCisjIGRlZmluZSB1cHJ2X2RlZmF1bHRfbWFs
bG9jKHgpIG1hbGxvYyh4KQorIyBkZWZpbmUgdXBydl9kZWZhdWx0X3JlYWxsb2MoeCx5KSByZWFs
bG9jKHgseSkKKyMgZGVmaW5lIHVwcnZfZGVmYXVsdF9mcmVlKHgpIGZyZWUoeCkKKyNlbmRpZgor
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L2dlbmJyay9yYmJpZGF0YS5oIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dl
bmJyay9yYmJpZGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1Mjc0YzNhZGJiZjQ5MjU3MWU3MjEzY2M1MjI0
ZDRiMTFjZWQzM2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvZ2VuYnJrL3JiYmlkYXRhLmgKQEAgLTAsMCArMSwyMDAgQEAKKy8qCisqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwg
UmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFt
ZTogIHJiYmlkYXRhLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAg
IDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBSQkJJIGRhdGEgZm9ybWF0
cyAgSW5jbHVkZXMKKyoKKyogICAgICAgICAgICAgICAgICAgICAgICAgIFN0cnVjdHMgdGhhdCBk
ZXNjcmliZXMgdGhlIGZvcm1hdCBvZiB0aGUgQmluYXJ5IFJCQkkgZGF0YSwKKyogICAgICAgICAg
ICAgICAgICAgICAgICAgIGFzIGl0IGlzIHN0b3JlZCBpbiBJQ1UncyBkYXRhIGZpbGUuCisqCisq
ICAgICAgUkJCSURhdGFXcmFwcGVyICAtICBJbnN0YW5jZXMgb2YgdGhpcyBjbGFzcyBzaXQgYmV0
d2VlbiB0aGUKKyogICAgICAgICAgICAgICAgICAgICAgICAgIHJhdyBkYXRhIHN0cnVjdHMgYW5k
IHRoZSBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvciBvYmplY3RzCisqICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGF0IGFyZSBjcmVhdGVkIGJ5IGFwcGxpY2F0aW9ucy4gIFRoZSB3cmFwcGVyIGNs
YXNzCisqICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlcyByZWZlcmVuY2UgY291bnRp
bmcgZm9yIHRoZSB1bmRlcmx5aW5nIGRhdGEsCisqICAgICAgICAgICAgICAgICAgICAgICAgICBh
bmQgZGlyZWN0IHBvaW50ZXJzIHRvIGRhdGEgdGhhdCB3b3VsZCBub3Qgb3RoZXJ3aXNlCisqICAg
ICAgICAgICAgICAgICAgICAgICAgICBiZSBhY2Nlc3NpYmxlIHdpdGhvdXQgdWdseSBwb2ludGVy
IGFyaXRobWV0aWMuICBUaGUKKyogICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXIgZG9l
cyBub3QgYXR0ZW1wdCB0byBwcm92aWRlIGFueSBoaWdoZXIgbGV2ZWwKKyogICAgICAgICAgICAg
ICAgICAgICAgICAgIGFic3RyYWN0aW9ucyBmb3IgdGhlIGRhdGEgaXRzZWxmLgorKgorKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgVGhlcmUgd2lsbCBiZSBvbmx5IG9uZSBpbnN0YW5jZSBvZiBS
QkJJRGF0YVdyYXBwZXIgZm9yIGFueQorKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0IG9m
IFJCQkkgcnVuIHRpbWUgZGF0YSBiZWluZyBzaGFyZWQgYnkgaW5zdGFuY2VzCisqICAgICAgICAg
ICAgICAgICAgICAgICAgICAoY2xvbmVzKSBvZiBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvci4KKyov
CisKKyNpZm5kZWYgX19SQkJJREFUQV9IX18KKyNkZWZpbmUgX19SQkJJREFUQV9IX18KKworI2lu
Y2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgorI2lu
Y2x1ZGUgInVkYXRhc3dwLmgiCisKKy8qKgorICogU3dhcCBSQkJJIGRhdGEuIFNlZSB1ZGF0YXN3
cC5oLgorICogQGludGVybmFsCisgKi8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgordWJya19z
d2FwKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsCisgICAgICAgICAgY29uc3Qgdm9pZCAqaW5EYXRh
LCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAgICBVRXJyb3JDb2RlICpw
RXJyb3JDb2RlKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCisKKyNpbmNsdWRlICJ1bmljb2RlL3Vv
YmplY3QuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VuaXN0ci5oIgorI2luY2x1ZGUgInVtdXRleC5o
IgorI2luY2x1ZGUgInV0cmllLmgiCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qICAKKyAqICAg
VGhlIGZvbGxvd2luZyBzdHJ1Y3RzIG1hcCBleGFjdGx5IG9udG8gdGhlIHJhdyBkYXRhIGZyb20g
SUNVIGNvbW1vbiBkYXRhIGZpbGUuIAorICovCitzdHJ1Y3QgUkJCSURhdGFIZWFkZXIgeworICAg
IHVpbnQzMl90ICAgICAgICAgZk1hZ2ljOyAgICAgICAgICAgLyogID09IDB4YmxhMCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50OF90ICAg
ICAgICAgIGZGb3JtYXRWZXJzaW9uWzRdOyAvKiBEYXRhIEZvcm1hdC4gIFNhbWUgYXMgdGhlIHZh
bHVlIGluIHN0cnVjdCBVRGF0YUluZm8gICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyogICBpZiB0aGVyZSBpcyBvbmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMg
ZGF0YS4gICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8qICAgICAodmVyc2lvbiBvcmlnaW5hdGVzIGluIHJiYmksIGlzIGNvcGllZCB0byBVRGF0
YUluZm8pICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIEZv
ciBJQ1UgMy4yIGFuZCBlYXJsaWVyLCB0aGlzIGZpZWxkIHdhcyAgICAgICAgICAgICAgICAqLwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgdWludDMyX3Qg
IGZWZXJzaW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgd2l0aCBhIHZhbHVlIG9mIDEuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgdWludDMyX3QgICAgICAgICBm
TGVuZ3RoOyAgICAgICAgICAvKiAgVG90YWwgbGVuZ3RoIGluIGJ5dGVzIG9mIHRoaXMgUkJCSSBE
YXRhLCAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLyogICAgICBpbmNsdWRpbmcgYWxsIHNlY3Rpb25zLCBub3QganVzdCB0aGUgaGVhZGVy
LiAgICAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZDYXRDb3VudDsgICAgICAgIC8qICBO
dW1iZXIgb2YgY2hhcmFjdGVyIGNhdGVnb3JpZXMuICAgICAgICAgICAgICAgICAgICAgICAgICov
CisKKyAgICAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgLyogIE9mZnNldHMgYW5kIHNpemVzIG9m
IGVhY2ggb2YgdGhlIHN1YnNlY3Rpb25zIHdpdGhpbiB0aGUgUkJCSSBkYXRhLiAgICAqLworICAg
IC8qICBBbGwgb2Zmc2V0cyBhcmUgYnl0ZXMgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIFJCQklEYXRh
SGVhZGVyLiAgICAgICAgICAgKi8KKyAgICAvKiAgQWxsIHNpemVzIGFyZSBpbiBieXRlcy4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgLyogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICAgZkZUYWJsZTsgICAgICAgICAvKiAg
Zm9yd2FyZCBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlLiAqLworICAgIHVpbnQzMl90ICAgICAgICAg
ZkZUYWJsZUxlbjsKKyAgICB1aW50MzJfdCAgICAgICAgIGZSVGFibGU7ICAgICAgICAgLyogIE9m
ZnNldCB0byB0aGUgcmV2ZXJzZSBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlLiAqLworICAgIHVpbnQz
Ml90ICAgICAgICAgZlJUYWJsZUxlbjsKKyAgICB1aW50MzJfdCAgICAgICAgIGZTRlRhYmxlOyAg
ICAgICAgLyogIHNhZmUgcG9pbnQgZm9yd2FyZCB0cmFuc2l0aW9uIHRhYmxlICovCisgICAgdWlu
dDMyX3QgICAgICAgICBmU0ZUYWJsZUxlbjsKKyAgICB1aW50MzJfdCAgICAgICAgIGZTUlRhYmxl
OyAgICAgICAgLyogIHNhZmUgcG9pbnQgcmV2ZXJzZSB0cmFuc2l0aW9uIHRhYmxlICovCisgICAg
dWludDMyX3QgICAgICAgICBmU1JUYWJsZUxlbjsKKyAgICB1aW50MzJfdCAgICAgICAgIGZUcmll
OyAgICAgICAgICAgLyogIE9mZnNldCB0byBUcmllIGRhdGEgZm9yIGNoYXJhY3RlciBjYXRlZ29y
aWVzICovCisgICAgdWludDMyX3QgICAgICAgICBmVHJpZUxlbjsKKyAgICB1aW50MzJfdCAgICAg
ICAgIGZSdWxlU291cmNlOyAgICAgLyogIE9mZnNldCB0byB0aGUgc291cmNlIGZvciBmb3IgdGhl
IGJyZWFrICovCisgICAgdWludDMyX3QgICAgICAgICBmUnVsZVNvdXJjZUxlbjsgIC8qICAgIHJ1
bGVzLiAgU3RvcmVkIFVDaGFyICouICovCisgICAgdWludDMyX3QgICAgICAgICBmU3RhdHVzVGFi
bGU7ICAgIC8qIE9mZnNldCB0byB0aGUgdGFibGUgb2YgcnVsZSBzdGF0dXMgdmFsdWVzICovCisg
ICAgdWludDMyX3QgICAgICAgICBmU3RhdHVzVGFibGVMZW47CisKKyAgICB1aW50MzJfdCAgICAg
ICAgIGZSZXNlcnZlZFs2XTsgICAgLyogIFJlc2VydmVkIGZvciBleHBhbnNpb24gKi8KKworfTsK
KworCisKK3N0cnVjdCAgUkJCSVN0YXRlVGFibGVSb3cgeworICAgIGludDE2X3QgICAgICAgICAg
ZkFjY2VwdGluZzsgICAgLyogIE5vbi16ZXJvIGlmIHRoaXMgcm93IGlzIGZvciBhbiBhY2NlcHRp
bmcgc3RhdGUuICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBW
YWx1ZSAwOiBub3QgYW4gYWNjZXB0aW5nIHN0YXRlLiAgICAgICAgICAgICAgICAgICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgICAtMTogVW5jb25kaXRpb25h
bCBBY2NlcHRpbmcgc3RhdGUuICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLyogICAgcG9zaXRpdmU6ICBMb29rLWFoZWFkIG1hdGNoIGhhcyBjb21wbGV0
ZWQuICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgICAg
ICAgICBBY3R1YWwgYm91bmRhcnkgcG9zaXRpb24gaGFwcGVuZWQgZWFybGllciAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgIFZhbHVlIGhlcmUgPT0g
Zkxvb2tBaGVhZCBpbiBlYXJsaWVyICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8qICAgICAgICAgICAgICBzdGF0ZSwgYXQgYWN0dWFsIGJvdW5kYXJ5IHBvcy4g
ICAgICAgICovCisgICAgaW50MTZfdCAgICAgICAgICBmTG9va0FoZWFkOyAgICAvKiAgTm9uLXpl
cm8gaWYgdGhpcyByb3cgaXMgZm9yIGEgc3RhdGUgdGhhdCAgICAgICAgICAqLworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgY29ycmVzcG9uZHMgdG8gYSAnLycgaW4g
dGhlIHJ1bGUgc291cmNlLiAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8qICAgIFZhbHVlIGlzIHRoZSBzYW1lIGFzIHRoZSBmQWNjZXB0aW5nICAgICAgICAg
ICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgIHZhbHVl
IGZvciB0aGUgcnVsZSAod2hpY2ggd2lsbCBhcHBlYXIgICAgICAgICAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgICBpbiBhIGRpZmZlcmVudCBzdGF0ZS4gICAg
ICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICBpbnQxNl90ICAgICAgICAgIGZUYWdJZHg7ICAg
ICAgIC8qICBOb24temVybyBpZiB0aGlzIHJvdyBjb3ZlcnMgYSB7dGFnZ2VkfSBwb3NpdGlvbiAg
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgICAgZnJvbSBhIHJ1
bGUuICBWYWx1ZSBpcyB0aGUgaW5kZXggaW4gdGhlICAgICAgICAqLworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyogICAgIFN0YXR1c1RhYmxlIG9mIHRoZSBzZXQgb2YgbWF0
Y2hpbmcgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8qICAgICB0YWdzIChydWxlIHN0YXR1cyB2YWx1ZXMpICAgICAgICAgICAgICAgICAgICAgICov
CisgICAgaW50MTZfdCAgICAgICAgICBmUmVzZXJ2ZWQ7CisgICAgdWludDE2X3QgICAgICAgICBm
TmV4dFN0YXRlWzJdOyAvKiAgTmV4dCBTdGF0ZSwgaW5kZXhlZCBieSBjaGFyIGNhdGVnb3J5LiAg
ICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIFRo
aXMgYXJyYXkgZG9lcyBub3QgaGF2ZSB0d28gZWxlbWVudHMgICAgICAgICAgICAgKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICAgIEFycmF5IFNpemUgaXMgYWN0dWFs
bHkgZkRhdGEtPmZIZWFkZXItPmZDYXRDb3VudCAgICAgICAgICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKiAgICBDQVVUSU9OOiAgc2VlIFJCQklUYWJsZUJ1aWxkZXI6
OmdldFRhYmxlU2l6ZSgpICAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyogICAgICAgICAgICAgIGJlZm9yZSBjaGFuZ2luZyBhbnl0aGluZyBoZXJlLiAgICAgICAgKi8K
K307CisKKworc3RydWN0IFJCQklTdGF0ZVRhYmxlIHsKKyAgICB1aW50MzJfdCAgICAgICAgIGZO
dW1TdGF0ZXM7ICAgIC8qICBOdW1iZXIgb2Ygc3RhdGVzLiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICovCisgICAgdWludDMyX3QgICAgICAgICBmUm93TGVuOyAgICAgICAvKiAgTGVu
Z3RoIG9mIGEgc3RhdGUgdGFibGUgcm93LCBpbiBieXRlcy4gICAgICAgICAgICAqLworICAgIHVp
bnQzMl90ICAgICAgICAgZkZsYWdzOyAgICAgICAgLyogIE9wdGlvbiBGbGFncyBmb3IgdGhpcyBz
dGF0ZSB0YWJsZSAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgIGZSZXNl
cnZlZDsgICAgIC8qICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICovCisgICAgY2hhciAgICAgICAgICAgICBmVGFibGVEYXRhWzRdOyAvKiAgRmlyc3Qg
UkJCSVN0YXRlVGFibGVSb3cgYmVnaW5zIGhlcmUuICAgICAgICAgICAgICAqLworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogICAgKG1ha2luZyBpdCBjaGFyW10gc2ltcGxp
ZmllcyB1Z2x5IGFkZHJlc3MgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8qICAgICBhcml0aG1ldGljIGZvciBpbmRleGluZyB2YXJpYWJsZSBsZW5ndGggcm93
cy4pICovCit9OworCit0eXBlZGVmIGVudW0geworICAgIFJCQklfTE9PS0FIRUFEX0hBUkRfQlJF
QUsgPSAxLAorICAgIFJCQklfQk9GX1JFUVVJUkVEID0gMgorfSBSQkJJU3RhdGVUYWJsZUZsYWdz
OworCisKKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAg
IFRoZSByZWZlcmVuY2UgY291bnRpbmcgd3JhcHBlciBjbGFzcyAqLworLyogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KK2NsYXNzIFJCQklEYXRhV3JhcHBlciA6IHB1
YmxpYyBVTWVtb3J5IHsKK3B1YmxpYzoKKyAgICBlbnVtIEVEb250QWRvcHQgeworICAgICAgICBr
RG9udEFkb3B0CisgICAgfTsKKyAgICBSQkJJRGF0YVdyYXBwZXIoY29uc3QgUkJCSURhdGFIZWFk
ZXIgKmRhdGEsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisgICAgUkJCSURhdGFXcmFwcGVyKGNvbnN0
IFJCQklEYXRhSGVhZGVyICpkYXRhLCBlbnVtIEVEb250QWRvcHQgZG9udEFkb3B0LCBVRXJyb3JD
b2RlICZzdGF0dXMpOworICAgIFJCQklEYXRhV3JhcHBlcihVRGF0YU1lbW9yeSogdWRtLCBVRXJy
b3JDb2RlICZzdGF0dXMpOworICAgIH5SQkJJRGF0YVdyYXBwZXIoKTsKKworICAgIHZvaWQgICAg
ICAgICAgICAgICAgICBpbml0MCgpOworICAgIHZvaWQgICAgICAgICAgICAgICAgICBpbml0KGNv
bnN0IFJCQklEYXRhSGVhZGVyICpkYXRhLCBVRXJyb3JDb2RlICZzdGF0dXMpOworICAgIFJCQklE
YXRhV3JhcHBlciAgICAgICphZGRSZWZlcmVuY2UoKTsKKyAgICB2b2lkICAgICAgICAgICAgICAg
ICAgcmVtb3ZlUmVmZXJlbmNlKCk7CisgICAgVUJvb2wgICAgICAgICAgICAgICAgIG9wZXJhdG9y
ID09KGNvbnN0IFJCQklEYXRhV3JhcHBlciAmb3RoZXIpIGNvbnN0OworICAgIGludDMyX3QgICAg
ICAgICAgICAgICBoYXNoQ29kZSgpOworICAgIGNvbnN0IFVuaWNvZGVTdHJpbmcgICZnZXRSdWxl
U291cmNlU3RyaW5nKCkgY29uc3Q7CisjaWZkZWYgUkJCSV9ERUJVRworICAgIHZvaWQgICAgICAg
ICAgICAgICAgICBwcmludERhdGEoKTsKKyAgICB2b2lkICAgICAgICAgICAgICAgICAgcHJpbnRU
YWJsZShjb25zdCBjaGFyICpoZWFkaW5nLCBjb25zdCBSQkJJU3RhdGVUYWJsZSAqdGFibGUpOwor
I2Vsc2UKKyAgICAjZGVmaW5lIHByaW50RGF0YSgpCisgICAgI2RlZmluZSBwcmludFRhYmxlKGhl
YWRpbmcsIHRhYmxlKQorI2VuZGlmCisKKyAgICAvKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqLworICAgIC8qICAgUG9pbnRlcnMgdG8gaXRlbXMgd2l0aGluIHRoZSBkYXRh
ICovCisgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICBj
b25zdCBSQkJJRGF0YUhlYWRlciAgICAgKmZIZWFkZXI7CisgICAgY29uc3QgUkJCSVN0YXRlVGFi
bGUgICAgICpmRm9yd2FyZFRhYmxlOworICAgIGNvbnN0IFJCQklTdGF0ZVRhYmxlICAgICAqZlJl
dmVyc2VUYWJsZTsKKyAgICBjb25zdCBSQkJJU3RhdGVUYWJsZSAgICAgKmZTYWZlRndkVGFibGU7
CisgICAgY29uc3QgUkJCSVN0YXRlVGFibGUgICAgICpmU2FmZVJldlRhYmxlOworICAgIGNvbnN0
IFVDaGFyICAgICAgICAgICAgICAqZlJ1bGVTb3VyY2U7CisgICAgY29uc3QgaW50MzJfdCAgICAg
ICAgICAgICpmUnVsZVN0YXR1c1RhYmxlOyAKKworICAgIC8qIG51bWJlciBvZiBpbnQzMl90IHZh
bHVlcyBpbiB0aGUgcnVsZSBzdGF0dXMgdGFibGUuICAgVXNlZCB0byBzYW5pdHkgY2hlY2sgaW5k
ZXhpbmcgKi8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZTdGF0dXNNYXhJZHg7CisKKyAgICBV
VHJpZSAgICAgICAgICAgICAgIGZUcmllOworCitwcml2YXRlOgorICAgIHVfYXRvbWljX2ludDMy
X3QgICAgZlJlZkNvdW50OworICAgIFVEYXRhTWVtb3J5ICAqZlVEYXRhTWVtOworICAgIFVuaWNv
ZGVTdHJpbmcgICAgICAgZlJ1bGVTdHJpbmc7CisgICAgVUJvb2wgICAgICAgICAgICAgICBmRG9u
dEZyZWVEYXRhOworCisgICAgUkJCSURhdGFXcmFwcGVyKGNvbnN0IFJCQklEYXRhV3JhcHBlciAm
b3RoZXIpOyAvKiAgZm9yYmlkIGNvcHlpbmcgb2YgdGhpcyBjbGFzcyAqLworICAgIFJCQklEYXRh
V3JhcHBlciAmb3BlcmF0b3I9KGNvbnN0IFJCQklEYXRhV3JhcHBlciAmb3RoZXIpOyAvKiAgZm9y
YmlkIGNvcHlpbmcgb2YgdGhpcyBjbGFzcyAqLworfTsKKworCisKK1VfTkFNRVNQQUNFX0VORAor
CisjZW5kaWYgLyogQysrICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91Y21uZGF0YS5oIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL2dlbmJyay91Y21uZGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2MTYzYzUwOGI5
Nzc0YjhmOWQyYmI0YWJlMjJjMzQxNDE4MjU0ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvZ2VuYnJrL3VjbW5kYXRhLmgKQEAgLTAsMCArMSwx
MTEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5
OTktMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9u
IGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqLworCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqICAgVUNvbW1vbkRh
dGEgICBBbiBhYnN0cmFjdCBpbnRlcmZhY2UgZm9yIGRlYWxpbmcgd2l0aCBJQ1UgQ29tbW9uIERh
dGEgRmlsZXMuCisgKiAgICAgICAgICAgICAgICAgSUNVIENvbW1vbiBEYXRhIEZpbGVzIGFyZSBh
IGdyb3VwaW5nIG9mIGEgbnVtYmVyIG9mIGluZGl2aWR1YWwKKyAqICAgICAgICAgICAgICAgICBk
YXRhIGl0ZW1zIChyZXNvdXJjZXMsIGNvbnZlcnRlcnMsIHRhYmxlcywgYW55dGhpbmcpIGludG8g
YQorICogICAgICAgICAgICAgICAgIHNpbmdsZSBmaWxlIG9yIGRsbC4gIFRoZSBjb21iaW5lZCBm
b3JtYXQgaW5jbHVkZXMgYSB0YWJsZSBvZgorICogICAgICAgICAgICAgICAgIGNvbnRlbnRzIGZv
ciBsb2NhdGluZyB0aGUgaW5kaXZpZHVhbCBpdGVtcyBieSBuYW1lLgorICoKKyAqICAgICAgICAg
ICAgICAgICBUd28gZm9ybWF0cyBmb3IgdGhlIHRhYmxlIG9mIGNvbnRlbnRzIGFyZSBzdXBwb3J0
ZWQsIHdoaWNoIGlzCisgKiAgICAgICAgICAgICAgICAgd2h5IHRoZXJlIGlzIGFuIGFic3RyYWN0
IGludGVmYWNlIGludm9sdmVkLgorICoKKyAqICAgICAgICAgICAgICAgICBUaGVzZSBmdW5jdGlv
bnMgYXJlIHBhcnQgb2YgdGhlIElDVSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiwgYW5kCisgKiAg
ICAgICAgICAgICAgICAgYXJlIG5vdCBpbnRlZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgYnkgYXBw
bGljYXRpb25zLgorICovCisKKyNpZm5kZWYgX19VQ01OREFUQV9IX18KKyNkZWZpbmUgX19VQ01O
REFUQV9IX18KKworI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKyNpbmNsdWRlICJ1bWFwZmls
ZS5oIgorCisKKyNkZWZpbmUgQ09NTU9OX0RBVEFfTkFNRSBVX0lDVURBVEFfTkFNRQorCit0eXBl
ZGVmIHN0cnVjdCAgeworICAgIHVpbnQxNl90ICAgIGhlYWRlclNpemU7CisgICAgdWludDhfdCAg
ICAgbWFnaWMxOworICAgIHVpbnQ4X3QgICAgIG1hZ2ljMjsKK30gTWFwcGVkRGF0YTsKKworCit0
eXBlZGVmIHN0cnVjdCAgeworICAgIE1hcHBlZERhdGEgIGRhdGFIZWFkZXI7CisgICAgVURhdGFJ
bmZvICAgaW5mbzsKK30gRGF0YUhlYWRlcjsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHVpbnQz
Ml90IG5hbWVPZmZzZXQ7CisgICAgdWludDMyX3QgZGF0YU9mZnNldDsKK30gVURhdGFPZmZzZXRU
T0NFbnRyeTsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHVpbnQzMl90IGNvdW50OworICAgIFVE
YXRhT2Zmc2V0VE9DRW50cnkgZW50cnlbMl07ICAgIC8qIEFjdHVhbCBzaXplIG9mIGFycmF5IGlz
IGZyb20gY291bnQuICovCit9IFVEYXRhT2Zmc2V0VE9DOworCisvKioKKyAqIEdldCB0aGUgaGVh
ZGVyIHNpemUgZnJvbSBhIGNvbnN0IERhdGFIZWFkZXIgKnVkaC4KKyAqIEhhbmRsZXMgb3Bwb3Np
dGUtZW5kaWFuIGRhdGEuCisgKgorICogQGludGVybmFsCisgKi8KK1VfQ0ZVTkMgdWludDE2X3QK
K3VkYXRhX2dldEhlYWRlclNpemUoY29uc3QgRGF0YUhlYWRlciAqdWRoKTsKKworLyoqCisgKiBH
ZXQgdGhlIFVEYXRhSW5mby5zaXplIGZyb20gYSBjb25zdCBVRGF0YUluZm8gKmluZm8uCisgKiBI
YW5kbGVzIG9wcG9zaXRlLWVuZGlhbiBkYXRhLgorICoKKyAqIEBpbnRlcm5hbAorICovCitVX0NG
VU5DIHVpbnQxNl90Cit1ZGF0YV9nZXRJbmZvU2l6ZShjb25zdCBVRGF0YUluZm8gKmluZm8pOwor
CitVX0NERUNMX0JFR0lOCisvKgorICogICJWaXJ0dWFsIiBmdW5jdGlvbnMgZm9yIGRhdGEgbG9v
a3VwLgorICogIFRvIGNhbGwgb25lLCBnaXZlbiBhIFVEYXRhTWVtb3J5ICpwLCB0aGUgY29kZSBs
b29rcyBsaWtlIHRoaXM6CisgKiAgICAgcC0+dkZ1bmNzLkxvb2t1cChwLCB0b2NFbnRyeU5hbWUs
IHBFcnJvckNvZGUpOworICogICAgICAgICAgKEkgc3VyZSBkbyB3aXNoIHRoaXMgd2FzIHdyaXR0
ZW4gaW4gQysrLCBub3QgQykKKyAqLworCit0eXBlZGVmIGNvbnN0IERhdGFIZWFkZXIgKgorKFVf
Q0FMTENPTlYgKiBMb29rdXBGbikoY29uc3QgVURhdGFNZW1vcnkgKnBEYXRhLAorICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqdG9jRW50cnlOYW1lLAorICAgICAgICAgICAgICAg
ICAgICAgICAgaW50MzJfdCAqcExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJv
ckNvZGUgKnBFcnJvckNvZGUpOworCit0eXBlZGVmIHVpbnQzMl90CisoVV9DQUxMQ09OViAqIE51
bUVudHJpZXNGbikoY29uc3QgVURhdGFNZW1vcnkgKnBEYXRhKTsKKworVV9DREVDTF9FTkQKKwor
dHlwZWRlZiBzdHJ1Y3QgeworICAgIExvb2t1cEZuICAgICAgTG9va3VwOworICAgIE51bUVudHJp
ZXNGbiAgTnVtRW50cmllczsgCit9IGNvbW1vbkRhdGFGdW5jczsKKworCisvKgorICogIEZ1bmN0
aW9ucyB0byBjaGVjayB3aGV0aGVyIGEgVURhdGFNZW1vcnkgcmVmZXJzIHRvIG1lbW9yeSBjb250
YWluaW5nIAorICogICAgIGEgcmVjb2duaXphYmxlIGhlYWRlciBhbmQgdGFibGUgb2YgY29udGVu
dHMgYSBDb21tb24gRGF0YSBGb3JtYXQKKyAqCisgKiAgICAgSWYgYSB2YWxpZCBoZWFkZXIgYW5k
IFRPQyBhcmUgZm91bmQsCisgKiAgICAgICAgIHNldCB0aGUgQ29tbW9uRGF0YUZ1bmNzIGZ1bmN0
aW9uIGRpc3BhdGNoIHZlY3RvciBpbiB0aGUgVURhdGFNZW1vcnkKKyAqICAgICAgICAgICAgIHRv
IHBvaW50IHRvIHRoZSByaWdodCBmdW5jdGlvbnMgZm9yIHRoZSBUT0MgdHlwZS4KKyAqICAgICBv
dGhlcndpc2UKKyAqICAgICAgICAgc2V0IGFuIGVycm9yY29kZS4KKyAqLworVV9DRlVOQyB2b2lk
IHVkYXRhX2NoZWNrQ29tbW9uRGF0YShVRGF0YU1lbW9yeSAqcERhdGEsIFVFcnJvckNvZGUgKnBF
cnJvckNvZGUpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9nZW5icmsvdWRhdGFzd3AuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9nZW5icmsvdWRhdGFzd3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NmM4NDk1NTY3NjcwODZlYWIx
YjVmYjliMDMyZWY1MDY3MDBkYzcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91ZGF0YXN3cC5oCkBAIC0wLDAgKzEsMzUxIEBACisv
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMjAwMy0yMDE0
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
ICAgZmlsZSBuYW1lOiAgdWRhdGFzd3AuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAg
dGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0
ZWQgb246IDIwMDNqdW4wNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqCisq
ICAgRGVmaW5pdGlvbnMgZm9yIElDVSBkYXRhIHRyYW5zZm9ybWF0aW9ucyBmb3IgZGlmZmVyZW50
IHBsYXRmb3JtcywKKyogICBjaGFuZ2luZyBiZXR3ZWVuIGJpZy0gYW5kIGxpdHRsZS1lbmRpYW4g
ZGF0YSBhbmQvb3IgYmV0d2VlbgorKiAgIGNoYXJzZXQgZmFtaWxpZXMgKEFTQ0lJPC0+RUJDRElD
KS4KKyovCisKKyNpZm5kZWYgX19VREFUQVNXUF9IX18KKyNkZWZpbmUgX19VREFUQVNXUF9IX18K
KworI2luY2x1ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8q
IGZvcndhcmQgZGVjbGFyYXRpb24gKi8KKworVV9DREVDTF9CRUdJTgorCitzdHJ1Y3QgVURhdGFT
d2FwcGVyOwordHlwZWRlZiBzdHJ1Y3QgVURhdGFTd2FwcGVyIFVEYXRhU3dhcHBlcjsKKworLyoq
CisgKiBGdW5jdGlvbiB0eXBlIGZvciBkYXRhIHRyYW5zZm9ybWF0aW9uLgorICogVHJhbnNmb3Jt
cyBkYXRhLCBvciBqdXN0IHJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YSBpZgorICogdGhl
IGlucHV0IGxlbmd0aCBpcyAtMS4KKyAqIFN3YXAgZnVuY3Rpb25zIGFzc3VtZSB0aGF0IHRoZWly
IGRhdGEgcG9pbnRlcnMgYXJlIGFsaWduZWQgcHJvcGVybHkuCisgKgorICogUXVpY2sgaW1wbGVt
ZW50YXRpb24gb3V0bGluZToKKyAqIChiZXN0IHRvIGNvcHkgYW5kIGFkYXB0IGFuZCBleGlzdGlu
ZyBzd2FwcGVyIGltcGxlbWVudGF0aW9uKQorICogY2hlY2sgdGhhdCB0aGUgZGF0YSBsb29rcyBs
aWtlIHRoZSBleHBlY3RlZCBmb3JtYXQKKyAqIGlmKGxlbmd0aDwwKSB7CisgKiAgIHByZWZsaWdo
dDoKKyAqICAgbmV2ZXIgZGVyZWZlcmVuY2Ugb3V0RGF0YQorICogICByZWFkIGluRGF0YSBhbmQg
ZGV0ZXJtaW5lIHRoZSBkYXRhIHNpemUKKyAqICAgYXNzdW1lIHRoYXQgaW5EYXRhIGlzIGxvbmcg
ZW5vdWdoIGZvciB0aGlzCisgKiB9IGVsc2UgeworICogICBvdXREYXRhIGNhbiBiZSBOVUxMIGlm
IGxlbmd0aD09MAorICogICBpbkRhdGE9PW91dERhdGEgKGluLXBsYWNlIHN3YXBwaW5nKSBwb3Nz
aWJsZSBidXQgbm90IHJlcXVpcmVkIQorICogICB2ZXJpZnkgdGhhdCBsZW5ndGg+PShhY3R1YWwg
c2l6ZSkKKyAqICAgaWYgdGhlcmUgaXMgYSBjaGFuY2UgdGhhdCBub3QgZXZlcnkgYnl0ZSB1cCB0
byBzaXplIGlzIHJlYWNoZWQKKyAqICAgICBkdWUgdG8gcGFkZGluZyBldGMuOgorICogICBpZihp
bkRhdGEhPW91dERhdGEpIHsKKyAqICAgICBtZW1jcHkob3V0RGF0YSwgaW5EYXRhLCBhY3R1YWwg
c2l6ZSk7CisgKiAgIH0KKyAqICAgc3dhcCBjb250ZW50cworICogfQorICogcmV0dXJuIGFjdHVh
bCBzaXplCisgKgorICogRnVydGhlciBpbXBsZW1lbnRhdGlvbiBub3RlczoKKyAqIC0gcmVhZCBp
bnRlZ2VycyBmcm9tIGluRGF0YSBiZWZvcmUgc3dhcHBpbmcgdGhlbQorICogICBiZWNhdXNlIGlu
LXBsYWNlIHN3YXBwaW5nIGNhbiBtYWtlIHRoZW0gdW5yZWFkYWJsZQorICogLSBjb21wYXJlSW52
Q2hhcnMgY29tcGFyZXMgYSBsb2NhbCBVbmljb2RlIHN0cmluZyB3aXRoIGFscmVhZHktc3dhcHBl
ZAorICogICBvdXRwdXQgY2hhcnNldCBzdHJpbmdzCisgKgorICogQHBhcmFtIGRzIFBvaW50ZXIg
dG8gVURhdGFTd2FwcGVyIGNvbnRhaW5pbmcgZ2xvYmFsIGRhdGEgYWJvdXQgdGhlCisgKiAgICAg
ICAgICAgdHJhbnNmb3JtYXRpb24gYW5kIGZ1bmN0aW9uIHBvaW50ZXJzIGZvciBoYW5kbGluZyBw
cmltaXRpdmUKKyAqICAgICAgICAgICB0eXBlcy4KKyAqIEBwYXJhbSBpbkRhdGEgUG9pbnRlciB0
byB0aGUgaW5wdXQgZGF0YSB0byBiZSB0cmFuc2Zvcm1lZCBvciBleGFtaW5lZC4KKyAqIEBwYXJh
bSBsZW5ndGggTGVuZ3RoIG9mIHRoZSBkYXRhLCBjb3VudGluZyBieXRlcy4gTWF5IGJlIC0xIGZv
ciBwcmVmbGlnaHRpbmcuCisgKiAgICAgICAgICAgICAgIElmIGxlbmd0aD49MCwgdGhlbiB0cmFu
c2Zvcm0gdGhlIGRhdGEuCisgKiAgICAgICAgICAgICAgIElmIGxlbmd0aD09LTEsIHRoZW4gb25s
eSBkZXRlcm1pbmUgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YS4KKyAqICAgICAgICAgICAgICAgVGhl
IGxlbmd0aCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBmcm9tIHRoZSBkYXRhIGl0c2VsZiBmb3IgYWxs
CisgKiAgICAgICAgICAgICAgIHR5cGVzIG9mIGRhdGEgKGUuZy4sIG5vdCBmb3Igc2ltcGxlIGFy
cmF5cyBvZiBpbnRlZ2VycykuCisgKiBAcGFyYW0gb3V0RGF0YSBQb2ludGVyIHRvIHRoZSBvdXRw
dXQgZGF0YSBidWZmZXIuCisgKiAgICAgICAgICAgICAgICBJZiBsZW5ndGg+PTAgKHRyYW5zZm9y
bWF0aW9uKSwgdGhlbiB0aGUgb3V0cHV0IGJ1ZmZlciBtdXN0CisgKiAgICAgICAgICAgICAgICBo
YXZlIGEgY2FwYWNpdHkgb2YgYXQgbGVhc3QgbGVuZ3RoLgorICogICAgICAgICAgICAgICAgSWYg
bGVuZ3RoPT0tMSwgdGhlbiBvdXREYXRhIHdpbGwgbm90IGJlIHVzZWQgYW5kIGNhbiBiZSBOVUxM
LgorICogQHBhcmFtIHBFcnJvckNvZGUgSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLCBtdXN0IG5v
dCBiZSBOVUxMIGFuZCBtdXN0CisgKiAgICAgICAgICAgICAgICAgICBmdWxmaWxsIFVfU1VDQ0VT
UyBvbiBpbnB1dC4KKyAqIEByZXR1cm4gVGhlIGFjdHVhbCBsZW5ndGggb2YgdGhlIGRhdGEuCisg
KgorICogQHNlZSBVRGF0YVN3YXBwZXIKKyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK3R5cGVk
ZWYgaW50MzJfdCBVX0NBTExDT05WCitVRGF0YVN3YXBGbihjb25zdCBVRGF0YVN3YXBwZXIgKmRz
LAorICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAq
b3V0RGF0YSwKKyAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAq
IENvbnZlcnQgb25lIHVpbnQxNl90IGZyb20gaW5wdXQgdG8gcGxhdGZvcm0gZW5kaWFubmVzcy4K
KyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK3R5cGVkZWYgdWludDE2X3QgVV9DQUxMQ09OVgor
VURhdGFSZWFkVUludDE2KHVpbnQxNl90IHgpOworCisvKioKKyAqIENvbnZlcnQgb25lIHVpbnQz
Ml90IGZyb20gaW5wdXQgdG8gcGxhdGZvcm0gZW5kaWFubmVzcy4KKyAqIEBpbnRlcm5hbCBJQ1Ug
Mi44CisgKi8KK3R5cGVkZWYgdWludDMyX3QgVV9DQUxMQ09OVgorVURhdGFSZWFkVUludDMyKHVp
bnQzMl90IHgpOworCisvKioKKyAqIENvbnZlcnQgb25lIHVpbnQxNl90IGZyb20gcGxhdGZvcm0g
dG8gaW5wdXQgZW5kaWFubmVzcy4KKyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK3R5cGVkZWYg
dm9pZCBVX0NBTExDT05WCitVRGF0YVdyaXRlVUludDE2KHVpbnQxNl90ICpwLCB1aW50MTZfdCB4
KTsKKworLyoqCisgKiBDb252ZXJ0IG9uZSB1aW50MzJfdCBmcm9tIHBsYXRmb3JtIHRvIGlucHV0
IGVuZGlhbm5lc3MuCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCit0eXBlZGVmIHZvaWQgVV9D
QUxMQ09OVgorVURhdGFXcml0ZVVJbnQzMih1aW50MzJfdCAqcCwgdWludDMyX3QgeCk7CisKKy8q
KgorICogQ29tcGFyZSBpbnZhcmlhbnQtY2hhcmFjdGVyIHN0cmluZ3MsIG9uZSBpbiB0aGUgb3V0
cHV0IGRhdGEgYW5kIHRoZQorICogb3RoZXIgb25lIGNhbGxlci1wcm92aWRlZCBpbiBVbmljb2Rl
LgorICogQW4gb3V0cHV0IGRhdGEgc3RyaW5nIGlzIGNvbXBhcmVkIGJlY2F1c2Ugc3RyaW5ncyBh
cmUgdXN1YWxseSBzd2FwcGVkCisgKiBiZWZvcmUgdGhlIHJlc3Qgb2YgdGhlIGRhdGEsIHRvIGFs
bG93IGZvciBzb3J0aW5nIG9mIHN0cmluZyB0YWJsZXMKKyAqIGFjY29yZGluZyB0byB0aGUgb3V0
cHV0IGNoYXJzZXQuCisgKiBZb3UgY2FuIHVzZSAtMSBmb3IgdGhlIGxlbmd0aCBwYXJhbWV0ZXJz
IG9mIE5VTC10ZXJtaW5hdGVkIHN0cmluZ3MgYXMgdXN1YWwuCisgKiBSZXR1cm5zIFVuaWNvZGUg
Y29kZSBwb2ludCBvcmRlciBmb3IgaW52YXJpYW50IGNoYXJhY3RlcnMuCisgKiBAaW50ZXJuYWwg
SUNVIDIuOAorICovCit0eXBlZGVmIGludDMyX3QgVV9DQUxMQ09OVgorVURhdGFDb21wYXJlSW52
Q2hhcnMoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIgKm91dFN0cmluZywgaW50MzJfdCBvdXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBVQ2hhciAqbG9jYWxTdHJpbmcsIGludDMyX3QgbG9jYWxMZW5ndGgpOworCisvKioK
KyAqIEZ1bmN0aW9uIGZvciBtZXNzYWdlIG91dHB1dCB3aGVuIGFuIGVycm9yIG9jY3VycyBkdXJp
bmcgZGF0YSBzd2FwcGluZy4KKyAqIEEgZm9ybWF0IHN0cmluZyBhbmQgdmFyaWFibGUgbnVtYmVy
IG9mIGFyZ3VtZW50cyBhcmUgcGFzc2VkCisgKiBsaWtlIGZvciB2cHJpbnRmKCkuCisgKgorICog
QHBhcmFtIGNvbnRleHQgQSBmdW5jdGlvbi1zcGVjaWZpYyBjb250ZXh0IHBvaW50ZXIuCisgKiBA
cGFyYW0gZm10IFRoZSBmb3JtYXQgc3RyaW5nLgorICogQHBhcmFtIGFyZ3MgVGhlIGFyZ3VtZW50
cyBmb3IgZm9ybWF0IHN0cmluZyBpbnNlcnRzLgorICoKKyAqIEBpbnRlcm5hbCBJQ1UgMi44Cisg
Ki8KK3R5cGVkZWYgdm9pZCBVX0NBTExDT05WCitVRGF0YVByaW50RXJyb3Iodm9pZCAqY29udGV4
dCwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpOworCitzdHJ1Y3QgVURhdGFTd2FwcGVy
IHsKKyAgICAvKiogSW5wdXQgZW5kaWFubmVzcy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBV
Qm9vbCBpbklzQmlnRW5kaWFuOworICAgIC8qKiBJbnB1dCBjaGFyc2V0IGZhbWlseS4gQHNlZSBV
X0NIQVJTRVRfRkFNSUxZIEBpbnRlcm5hbCBJQ1UgMi44ICovCisgICAgdWludDhfdCBpbkNoYXJz
ZXQ7CisgICAgLyoqIE91dHB1dCBlbmRpYW5uZXNzLiBAaW50ZXJuYWwgSUNVIDIuOCAqLworICAg
IFVCb29sIG91dElzQmlnRW5kaWFuOworICAgIC8qKiBPdXRwdXQgY2hhcnNldCBmYW1pbHkuIEBz
ZWUgVV9DSEFSU0VUX0ZBTUlMWSBAaW50ZXJuYWwgSUNVIDIuOCAqLworICAgIHVpbnQ4X3Qgb3V0
Q2hhcnNldDsKKworICAgIC8qIGJhc2ljIGZ1bmN0aW9ucyBmb3IgcmVhZGluZyBkYXRhIHZhbHVl
cyAqLworCisgICAgLyoqIENvbnZlcnQgb25lIHVpbnQxNl90IGZyb20gaW5wdXQgdG8gcGxhdGZv
cm0gZW5kaWFubmVzcy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVJlYWRVSW50MTYg
KnJlYWRVSW50MTY7CisgICAgLyoqIENvbnZlcnQgb25lIHVpbnQzMl90IGZyb20gaW5wdXQgdG8g
cGxhdGZvcm0gZW5kaWFubmVzcy4gQGludGVybmFsIElDVSAyLjggKi8KKyAgICBVRGF0YVJlYWRV
SW50MzIgKnJlYWRVSW50MzI7CisgICAgLyoqIENvbXBhcmUgYW4gaW52YXJpYW50LWNoYXJhY3Rl
ciBvdXRwdXQgc3RyaW5nIHdpdGggYSBsb2NhbCBvbmUuIEBpbnRlcm5hbCBJQ1UgMi44ICovCisg
ICAgVURhdGFDb21wYXJlSW52Q2hhcnMgKmNvbXBhcmVJbnZDaGFyczsKKworICAgIC8qIGJhc2lj
IGZ1bmN0aW9ucyBmb3Igd3JpdGluZyBkYXRhIHZhbHVlcyAqLworCisgICAgLyoqIENvbnZlcnQg
b25lIHVpbnQxNl90IGZyb20gcGxhdGZvcm0gdG8gaW5wdXQgZW5kaWFubmVzcy4gQGludGVybmFs
IElDVSAyLjggKi8KKyAgICBVRGF0YVdyaXRlVUludDE2ICp3cml0ZVVJbnQxNjsKKyAgICAvKiog
Q29udmVydCBvbmUgdWludDMyX3QgZnJvbSBwbGF0Zm9ybSB0byBpbnB1dCBlbmRpYW5uZXNzLiBA
aW50ZXJuYWwgSUNVIDIuOCAqLworICAgIFVEYXRhV3JpdGVVSW50MzIgKndyaXRlVUludDMyOwor
CisgICAgLyogYmFzaWMgZnVuY3Rpb25zIGZvciBkYXRhIHRyYW5zZm9ybWF0aW9ucyAqLworCisg
ICAgLyoqIFRyYW5zZm9ybSBhbiBhcnJheSBvZiAxNi1iaXQgaW50ZWdlcnMuIEBpbnRlcm5hbCBJ
Q1UgMi44ICovCisgICAgVURhdGFTd2FwRm4gKnN3YXBBcnJheTE2OworICAgIC8qKiBUcmFuc2Zv
cm0gYW4gYXJyYXkgb2YgMzItYml0IGludGVnZXJzLiBAaW50ZXJuYWwgSUNVIDIuOCAqLworICAg
IFVEYXRhU3dhcEZuICpzd2FwQXJyYXkzMjsKKyAgICAvKiogVHJhbnNmb3JtIGFuIGFycmF5IG9m
IDY0LWJpdCBpbnRlZ2Vycy4gQGludGVybmFsIElDVSA1MyAqLworICAgIFVEYXRhU3dhcEZuICpz
d2FwQXJyYXk2NDsKKyAgICAvKiogVHJhbnNmb3JtIGFuIGludmFyaWFudC1jaGFyYWN0ZXIgc3Ry
aW5nLiBAaW50ZXJuYWwgSUNVIDIuOCAqLworICAgIFVEYXRhU3dhcEZuICpzd2FwSW52Q2hhcnM7
CisKKyAgICAvKioKKyAgICAgKiBGdW5jdGlvbiBmb3IgbWVzc2FnZSBvdXRwdXQgd2hlbiBhbiBl
cnJvciBvY2N1cnMgZHVyaW5nIGRhdGEgc3dhcHBpbmcuCisgICAgICogQ2FuIGJlIE5VTEwuCisg
ICAgICogQGludGVybmFsIElDVSAyLjgKKyAgICAgKi8KKyAgICBVRGF0YVByaW50RXJyb3IgKnBy
aW50RXJyb3I7CisgICAgLyoqIENvbnRleHQgcG9pbnRlciBmb3IgcHJpbnRFcnJvci4gQGludGVy
bmFsIElDVSAyLjggKi8KKyAgICB2b2lkICpwcmludEVycm9yQ29udGV4dDsKK307CisKK1VfQ0RF
Q0xfRU5ECisKK1VfQ0FQSSBVRGF0YVN3YXBwZXIgKiBVX0VYUE9SVDIKK3VkYXRhX29wZW5Td2Fw
cGVyKFVCb29sIGluSXNCaWdFbmRpYW4sIHVpbnQ4X3QgaW5DaGFyc2V0LAorICAgICAgICAgICAg
ICAgICAgVUJvb2wgb3V0SXNCaWdFbmRpYW4sIHVpbnQ4X3Qgb3V0Q2hhcnNldCwKKyAgICAgICAg
ICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIE9wZW4gYSBVRGF0
YVN3YXBwZXIgZm9yIHRoZSBnaXZlbiBpbnB1dCBkYXRhIGFuZCB0aGUgc3BlY2lmaWVkIG91dHB1
dAorICogY2hhcmFjdGVyaXN0aWNzLgorICogVmFsdWVzIG9mIC0xIGZvciBhbnkgb2YgdGhlIGNo
YXJhY3RlcmlzdGljcyBtZWFuIHRoZSBsb2NhbCBwbGF0Zm9ybSdzCisgKiBjaGFyYWN0ZXJpc3Rp
Y3MuCisgKgorICogQHNlZSB1ZGF0YV9zd2FwCisgKiBAaW50ZXJuYWwgSUNVIDIuOAorICovCitV
X0NBUEkgVURhdGFTd2FwcGVyICogVV9FWFBPUlQyCit1ZGF0YV9vcGVuU3dhcHBlckZvcklucHV0
RGF0YShjb25zdCB2b2lkICpkYXRhLCBpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFVCb29sIG91dElzQmlnRW5kaWFuLCB1aW50OF90IG91dENoYXJzZXQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKwor
VV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9jbG9zZVN3YXBwZXIoVURhdGFTd2FwcGVyICpk
cyk7CisKKy8qKgorICogUmVhZCB0aGUgYmVnaW5uaW5nIG9mIGFuIElDVSBkYXRhIHBpZWNlLCBy
ZWNvZ25pemUgbWFnaWMgYnl0ZXMsCisgKiBzd2FwIHRoZSBzdHJ1Y3R1cmUuCisgKiBTZXQgYSBV
X1VOU1VQUE9SVEVEX0VSUk9SIGlmIGl0IGRvZXMgbm90IGxvb2sgbGlrZSBhbiBJQ1UgZGF0YSBw
aWVjZS4KKyAqCisgKiBAcmV0dXJuIFRoZSBzaXplIG9mIHRoZSBkYXRhIGhlYWRlciwgaW4gYnl0
ZXMuCisgKgorICogQGludGVybmFsIElDVSAyLjgKKyAqLworVV9DQVBJIGludDMyX3QgVV9FWFBP
UlQyCit1ZGF0YV9zd2FwRGF0YUhlYWRlcihjb25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAg
ICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAq
b3V0RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOwor
CisvKioKKyAqIENvbnZlcnQgb25lIGludDE2X3QgZnJvbSBpbnB1dCB0byBwbGF0Zm9ybSBlbmRp
YW5uZXNzLgorICogQGludGVybmFsIElDVSAyLjgKKyAqLworVV9DQVBJIGludDE2X3QgVV9FWFBP
UlQyCit1ZGF0YV9yZWFkSW50MTYoY29uc3QgVURhdGFTd2FwcGVyICpkcywgaW50MTZfdCB4KTsK
KworLyoqCisgKiBDb252ZXJ0IG9uZSBpbnQzMl90IGZyb20gaW5wdXQgdG8gcGxhdGZvcm0gZW5k
aWFubmVzcy4KKyAqIEBpbnRlcm5hbCBJQ1UgMi44CisgKi8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQ
T1JUMgordWRhdGFfcmVhZEludDMyKGNvbnN0IFVEYXRhU3dhcHBlciAqZHMsIGludDMyX3QgeCk7
CisKKy8qKgorICogU3dhcCBhIGJsb2NrIG9mIGludmFyaWFudCwgTlVMLXRlcm1pbmF0ZWQgc3Ry
aW5ncywgYnV0IG5vdCBwYWRkaW5nCisgKiBieXRlcyBhZnRlciB0aGUgbGFzdCBzdHJpbmcuCisg
KiBAaW50ZXJuYWwKKyAqLworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCit1ZGF0YV9zd2FwSW52
U3RyaW5nQmxvY2soY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCB2b2lkICppbkRhdGEsIGludDMyX3QgbGVuZ3RoLCB2b2lkICpvdXREYXRhLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCitVX0NB
UEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3ByaW50RXJyb3IoY29uc3QgVURhdGFTd2FwcGVyICpk
cywKKyAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZm10LAorICAgICAgICAgICAgICAgICAu
Li4pOworCisvKiBpbnRlcm5hbCBleHBvcnRzIGZyb20gcHV0aWwuYyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisvKiBkZWNsYXJlZCBoZXJlIHRvIGtl
ZXAgdGhlbSBvdXQgb2YgdGhlIHB1YmxpYyBwdXRpbC5oICovCisKKy8qKgorICogU3dhcCBpbnZh
cmlhbnQgY2hhciAqIHN0cmluZ3MgQVNDSUktPkVCQ0RJQy4KKyAqIEBpbnRlcm5hbAorICovCitV
X0NBUEkgaW50MzJfdCBVX0VYUE9SVDIKK3VwcnZfZWJjZGljRnJvbUFzY2lpKGNvbnN0IFVEYXRh
U3dhcHBlciAqZHMsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICppbkRhdGEsIGlu
dDMyX3QgbGVuZ3RoLCB2b2lkICpvdXREYXRhLAorICAgICAgICAgICAgICAgICAgICAgVUVycm9y
Q29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogQ29weSBpbnZhcmlhbnQgQVNDSUkgY2hhciAq
IHN0cmluZ3MgYW5kIHZlcmlmeSB0aGV5IGFyZSBpbnZhcmlhbnQuCisgKiBAaW50ZXJuYWwKKyAq
LworVV9DRlVOQyBpbnQzMl90Cit1cHJ2X2NvcHlBc2NpaShjb25zdCBVRGF0YVN3YXBwZXIgKmRz
LAorICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW5EYXRhLCBpbnQzMl90IGxlbmd0aCwgdm9p
ZCAqb3V0RGF0YSwKKyAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisv
KioKKyAqIFN3YXAgaW52YXJpYW50IGNoYXIgKiBzdHJpbmdzIEVCQ0RJQy0+QVNDSUkuCisgKiBA
aW50ZXJuYWwKKyAqLworVV9DRlVOQyBpbnQzMl90Cit1cHJ2X2FzY2lpRnJvbUViY2RpYyhjb25z
dCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW5E
YXRhLCBpbnQzMl90IGxlbmd0aCwgdm9pZCAqb3V0RGF0YSwKKyAgICAgICAgICAgICAgICAgICAg
IFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENvcHkgaW52YXJpYW50IEVCQ0RJ
QyBjaGFyICogc3RyaW5ncyBhbmQgdmVyaWZ5IHRoZXkgYXJlIGludmFyaWFudC4KKyAqIEBpbnRl
cm5hbAorICovCitVX0NGVU5DIGludDMyX3QKK3VwcnZfY29weUViY2RpYyhjb25zdCBVRGF0YVN3
YXBwZXIgKmRzLAorICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluRGF0YSwgaW50MzJfdCBs
ZW5ndGgsIHZvaWQgKm91dERhdGEsCisgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9y
Q29kZSk7CisKKy8qKgorICogQ29tcGFyZSBBU0NJSSBpbnZhcmlhbnQgY2hhciAqIHdpdGggVW5p
Y29kZSBpbnZhcmlhbnQgVUNoYXIgKgorICogQGludGVybmFsCisgKi8KK1VfQ0ZVTkMgaW50MzJf
dAordXBydl9jb21wYXJlSW52QXNjaWkoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm91dFN0cmluZywgaW50MzJfdCBvdXRMZW5ndGgsCisg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqbG9jYWxTdHJpbmcsIGludDMyX3QgbG9j
YWxMZW5ndGgpOworCisvKioKKyAqIENvbXBhcmUgRUJDRElDIGludmFyaWFudCBjaGFyICogd2l0
aCBVbmljb2RlIGludmFyaWFudCBVQ2hhciAqCisgKiBAaW50ZXJuYWwKKyAqLworVV9DRlVOQyBp
bnQzMl90Cit1cHJ2X2NvbXBhcmVJbnZFYmNkaWMoY29uc3QgVURhdGFTd2FwcGVyICpkcywKKyAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpvdXRTdHJpbmcsIGludDMyX3Qgb3V0TGVu
Z3RoLAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyICpsb2NhbFN0cmluZywgaW50
MzJfdCBsb2NhbExlbmd0aCk7CisKKy8qIG1hdGVyaWFsLi4uIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKyNpZiAwCisK
Ky8qIHVkYXRhLmggKi8KKworLyoqCisgKiBQdWJsaWMgQVBJIGZ1bmN0aW9uIGluIHVkYXRhLmMK
KyAqCisgKiBTYW1lIGFzIHVkYXRhX29wZW5DaG9pY2UoKSBidXQgYXV0b21hdGljYWxseSBzd2Fw
cyB0aGUgZGF0YS4KKyAqIGlzQWNjZXB0YWJsZSwgaWYgbm90IE5VTEwsIG1heSBhY2NlcHQgZGF0
YSB3aXRoIGVuZGlhbm5lc3MgYW5kIGNoYXJzZXQgZmFtaWx5CisgKiBkaWZmZXJlbnQgZnJvbSB0
aGUgY3VycmVudCBwbGF0Zm9ybSdzIHByb3BlcnRpZXMuCisgKiBJZiB0aGUgZGF0YSBpcyBhY2Nl
cHRhYmxlIGFuZCB0aGUgcGxhdGZvcm0gcHJvcGVydGllcyBkbyBub3QgbWF0Y2gsIHRoZW4KKyAq
IHRoZSBzd2FwIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBzd2FwIGFuIGFsbG9jYXRlZCB2ZXJzaW9u
IG9mIHRoZSBkYXRhLgorICogUHJlZmxpZ2h0aW5nIG1heSBvciBtYXkgbm90IGJlIHBlcmZvcm1l
ZCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgc2l6ZSBvZgorICogdGhlIGxvYWRlZCBkYXRhIGl0
ZW0gaXMga25vd24uCisgKgorICogQHBhcmFtIGlzQWNjZXB0YWJsZSBTYW1lIGFzIGZvciB1ZGF0
YV9vcGVuQ2hvaWNlKCkuIE1heSBiZSBOVUxMLgorICoKKyAqIEBpbnRlcm5hbCBJQ1UgMi44Cisg
Ki8KK1VfQ0FQSSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRhdGFfb3BlblN3YXAoY29uc3Qg
Y2hhciAqcGF0aCwgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAg
ICAgICAgIFVEYXRhTWVtb3J5SXNBY2NlcHRhYmxlICppc0FjY2VwdGFibGUsIHZvaWQgKmlzQWNj
ZXB0YWJsZUNvbnRleHQsCisgICAgICAgICAgICAgICBVRGF0YVN3YXBGbiAqc3dhcCwKKyAgICAg
ICAgICAgICAgIFVEYXRhUHJpbnRFcnJvciAqcHJpbnRFcnJvciwgdm9pZCAqcHJpbnRFcnJvckNv
bnRleHQsCisgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlm
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L2dlbmJyay91bWFwZmlsZS5oIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dl
bmJyay91bWFwZmlsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5OTVlMzgxZWQzMGMwYjkwMzI2YjI0ZWNkZjEy
MjQ5ZmQ0MzQ1NDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvZ2VuYnJrL3VtYXBmaWxlLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDExLCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICoKKyAqICAgICAgIE1lbW9yeSBtYXBwZWQgZmlsZSB3cmFwcGVy
cyBmb3IgdXNlIGJ5IHRoZSBJQ1UgRGF0YSBJbXBsZW1lbnRhdGlvbgorICoKKyAqICAgICAgICAg
ICBQb3J0aW5nIG5vdGU6ICBUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhlc2UgZnVuY3Rpb25zIGlz
IHZlcnkgcGxhdGZvcm0gc3BlY2lmaWMuCisgKiAgICAgICAgICAgICBOb3QgYWxsIHBsYXRmb3Jt
cyBjYW4gZG8gcmVhbCBtZW1vcnkgbWFwcGluZy4gIFRob3NlIHRoYXQgY2FuJ3QKKyAqICAgICAg
ICAgICAgIHN0aWxsIG11c3QgaW1wbGVtZW50IHRoZXNlIGZ1bmN0aW9ucywgZ2V0dGluZyB0aGUg
ZGF0YSBpbnRvIG1lbW9yeSB1c2luZworICogICAgICAgICAgICAgd2hhdGV2ZXIgbWVhbnMgYXJl
IGF2YWlsYWJsZS4KKyAqCisgKiAgICAgICAgICAgIFRoZXNlIGZ1bmN0aW9ucyBhcmUgcGFydCBv
ZiB0aGUgSUNVIGludGVybmFsIGltcGxlbWVudGF0aW9uLCBhbmQKKyAqICAgICAgICAgICAgYXJl
IG5vdCBpbnRlZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgYnkgYXBwbGljYXRpb25zLgorICoKKyAq
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKyNpZm5kZWYgX19VTUFQRklMRV9IX18KKyNk
ZWZpbmUgX19VTUFQRklMRV9IX18KKworI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKKyNpbmNs
dWRlICJ1bmljb2RlL3VkYXRhLmgiCisjaW5jbHVkZSAicHV0aWxpbXAuaCIKKworVV9DRlVOQyBV
Qm9vbCB1cHJ2X21hcEZpbGUoVURhdGFNZW1vcnkgKnBkbSwgY29uc3QgY2hhciAqcGF0aCk7CitV
X0NGVU5DIHZvaWQgIHVwcnZfdW5tYXBGaWxlKFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKy8qIE1B
UF9OT05FOiBubyBtZW1vcnkgbWFwcGluZywgbm8gZmlsZSBhY2Nlc3MgYXQgYWxsICovCisjZGVm
aW5lIE1BUF9OT05FICAgICAgICAwCisjZGVmaW5lIE1BUF9XSU4zMiAgICAgICAxCisjZGVmaW5l
IE1BUF9QT1NJWCAgICAgICAyCisjZGVmaW5lIE1BUF9TVERJTyAgICAgICAzCisjZGVmaW5lIE1B
UF8zOTBETEwgICAgICA0CisKKyNpZiBVQ09ORklHX05PX0ZJTEVfSU8KKyMgICBkZWZpbmUgTUFQ
X0lNUExFTUVOVEFUSU9OIE1BUF9OT05FCisjZWxpZiBVX1BMQVRGT1JNX1VTRVNfT05MWV9XSU4z
Ml9BUEkKKyMgICBkZWZpbmUgTUFQX0lNUExFTUVOVEFUSU9OIE1BUF9XSU4zMgorI2VsaWYgVV9I
QVZFX01NQVAgfHwgVV9QTEFURk9STSA9PSBVX1BGX09TMzkwCisjICAgaWYgVV9QTEFURk9STSA9
PSBVX1BGX09TMzkwICYmIGRlZmluZWQgKE9TMzkwX1NUVUJEQVRBKQorICAgICAgICAvKiAgIE5v
IG1lbW9yeSBtYXBwaW5nIGZvciAzOTAgYmF0Y2ggbW9kZS4gIEZha2UgaXQgdXNpbmcgZGxsIGxv
YWRpbmcuICAqLworIyAgICAgICBkZWZpbmUgTUFQX0lNUExFTUVOVEFUSU9OIE1BUF8zOTBETEwK
KyMgICBlbHNlCisjICAgICAgIGRlZmluZSBNQVBfSU1QTEVNRU5UQVRJT04gTUFQX1BPU0lYCisj
ICAgZW5kaWYKKyNlbHNlIC8qIHVua25vd24gcGxhdGZvcm0sIG5vIG1lbW9yeSBtYXAgaW1wbGVt
ZW50YXRpb246IHVzZSBzdGRpby5oIGFuZCB1cHJ2X21hbGxvYygpIGluc3RlYWQgKi8KKyMgICBk
ZWZpbmUgTUFQX0lNUExFTUVOVEFUSU9OIE1BUF9TVERJTworI2VuZGlmCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bXV0ZXgu
aCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW11dGV4LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTBhZDBkM2MwMzY1NGQ2MWEwMjNhMDgyNTQ4NTYzZDhkNGMwM2M2MQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW11
dGV4LmgKQEAgLTAsMCArMSw0MjQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0
IChDKSAxOTk3LTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jw
b3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyoKKyogRmlsZSBVTVVURVguSAorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBE
YXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDA0LzAyLzk3ICBhbGl1ICAg
ICAgICBDcmVhdGlvbi4KKyogICAwNC8wNy85OSAgc3JsICAgICAgICAgcmV3cml0ZSAtIEMgaW50
ZXJmYWNlLCBtdWx0aXBsZSBtdXRpY2VzCisqICAgMDUvMTMvOTkgIHN0ZXBoZW4gICAgIENoYW5n
ZWQgdG8gdW11dGV4IChmcm9tIGNtdXRleCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKwor
I2lmbmRlZiBVTVVURVhfSAorI2RlZmluZSBVTVVURVhfSAorCisjaW5jbHVkZSAidW5pY29kZS91
dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VjbGVhbi5oIgorI2luY2x1ZGUgInB1dGlsaW1w
LmgiCisKKworCisvLyBGb3J3YXJkIERlY2xhcmF0aW9ucy4gVU11dGV4IGlzIG5vdCBpbiB0aGUg
SUNVIG5hbWVzcGFjZSAoeWV0KSBiZWNhdXNlCisvLyAgICAgICAgICAgICAgICAgICAgICAgdGhl
cmUgYXJlIHNvbWUgcmVtYWluaW5nIHJlZmVyZW5jZXMgZnJvbSBwbGFpbiBDLgorc3RydWN0IFVN
dXRleDsKK3N0cnVjdCBVQ29uZGl0aW9uVmFyOworCitVX05BTUVTUEFDRV9CRUdJTgorc3RydWN0
IFVJbml0T25jZTsKK1VfTkFNRVNQQUNFX0VORAorCisvLyBTdHJpbmdpZnkgbWFjcm9zLCB0byBh
bGxvdyAjaW5jbHVkZSBvZiB1c2VyIHN1cHBsaWVkIGF0b21pYyAmIG11dGV4IGZpbGVzLgorI2Rl
ZmluZSBVX01VVEVYX1NUUihzKSAjcworI2RlZmluZSBVX01VVEVYX1hTVFIocykgVV9NVVRFWF9T
VFIocykKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgIExvdyBMZXZlbCBBdG9taWMg
T3BlcmF0aW9ucy4KKyAqICAgICAgQ29tcGlsZXIgZGVwZW5kZW50LiBOb3Qgb3BlcmF0aW5nIHN5
c3RlbSBkZXBlbmRlbnQuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWYgZGVmaW5lZCAo
VV9VU0VSX0FUT01JQ1NfSCkKKyNpbmNsdWRlIFVfTVVURVhfWFNUUihVX1VTRVJfQVRPTUlDU19I
KQorCisjZWxpZiBVX0hBVkVfU1REX0FUT01JQ1MKKworLy8gIEMrKzExIGF0b21pY3MgYXJlIGF2
YWlsYWJsZS4KKworI2luY2x1ZGUgPGF0b21pYz4KKworVV9OQU1FU1BBQ0VfQkVHSU4KKwordHlw
ZWRlZiBzdGQ6OmF0b21pYzxpbnQzMl90PiB1X2F0b21pY19pbnQzMl90OworI2RlZmluZSBBVE9N
SUNfSU5UMzJfVF9JTklUSUFMSVpFUih2YWwpIEFUT01JQ19WQVJfSU5JVCh2YWwpCisKK2lubGlu
ZSBpbnQzMl90IHVtdHhfbG9hZEFjcXVpcmUodV9hdG9taWNfaW50MzJfdCAmdmFyKSB7CisgICAg
cmV0dXJuIHZhci5sb2FkKHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUpOworfQorCitpbmxpbmUg
dm9pZCB1bXR4X3N0b3JlUmVsZWFzZSh1X2F0b21pY19pbnQzMl90ICZ2YXIsIGludDMyX3QgdmFs
KSB7CisgICAgdmFyLnN0b3JlKHZhbCwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7Cit9CisK
K2lubGluZSBpbnQzMl90IHVtdHhfYXRvbWljX2luYyh1X2F0b21pY19pbnQzMl90ICp2YXIpIHsK
KyAgICByZXR1cm4gdmFyLT5mZXRjaF9hZGQoMSkgKyAxOworfQorCitpbmxpbmUgaW50MzJfdCB1
bXR4X2F0b21pY19kZWModV9hdG9taWNfaW50MzJfdCAqdmFyKSB7CisgICAgcmV0dXJuIHZhci0+
ZmV0Y2hfc3ViKDEpIC0gMTsKK30KK1VfTkFNRVNQQUNFX0VORAorCisjZWxpZiBVX1BMQVRGT1JN
X0hBU19XSU4zMl9BUEkKKworLy8gTVNWQyBjb21waWxlci4gUmVhZHMgYW5kIHdyaXRlcyBvZiB2
b2xhdGlsZSB2YXJpYWJsZXMgaGF2ZQorLy8gICAgICAgICAgICAgICAgYWNxdWlyZSBhbmQgcmVs
ZWFzZSBtZW1vcnkgc2VtYW50aWNzLCByZXNwZWN0aXZlbHkuCisvLyAgICAgICAgICAgICAgICBU
aGlzIGlzIGEgTWljcm9zb2Z0IGV4dGVuc2lvbiwgbm90IHN0YW5kYXJkIEMrKyBiZWhhdmlvci4K
Ky8vCisvLyAgIFVwZGF0ZTogICAgICBjYW4ndCB1c2UgdGhpcyBiZWNhdXNlIG9mIE1pbkdXLCBi
dWlsdCB3aXRoIGdjYy4KKy8vICAgICAgICAgICAgICAgIE9yaWdpbmFsIHBsYW4gd2FzIHRvIHVz
ZSBnY2MgYXRvbWljcyBmb3IgTWluR1csIGJ1dCB0aGV5CisvLyAgICAgICAgICAgICAgICBhcmVu
J3Qgc3VwcG9ydGVkLCBzbyB3ZSBmb2xkIE1pbkdXIGludG8gdGhpcyBwYXRoLgorCisjIGRlZmlu
ZSBXSU4zMl9MRUFOX0FORF9NRUFOCisjIGRlZmluZSBWQ19FWFRSQUxFQU4KKyMgZGVmaW5lIE5P
VVNFUgorIyBkZWZpbmUgTk9TRVJWSUNFCisjIGRlZmluZSBOT0lNRQorIyBkZWZpbmUgTk9NQ1gK
KyMgaWZuZGVmIE5PTUlOTUFYCisjIGRlZmluZSBOT01JTk1BWAorIyBlbmRpZgorIyBpbmNsdWRl
IDx3aW5kb3dzLmg+CisKK1VfTkFNRVNQQUNFX0JFR0lOCit0eXBlZGVmIHZvbGF0aWxlIExPTkcg
dV9hdG9taWNfaW50MzJfdDsKKyNkZWZpbmUgQVRPTUlDX0lOVDMyX1RfSU5JVElBTElaRVIodmFs
KSB2YWwKKworaW5saW5lIGludDMyX3QgdW10eF9sb2FkQWNxdWlyZSh1X2F0b21pY19pbnQzMl90
ICZ2YXIpIHsKKyAgICByZXR1cm4gSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UoJnZhciwgMCwg
MCk7Cit9CisKK2lubGluZSB2b2lkIHVtdHhfc3RvcmVSZWxlYXNlKHVfYXRvbWljX2ludDMyX3Qg
JnZhciwgaW50MzJfdCB2YWwpIHsKKyAgICBJbnRlcmxvY2tlZEV4Y2hhbmdlKCZ2YXIsIHZhbCk7
Cit9CisKKworaW5saW5lIGludDMyX3QgdW10eF9hdG9taWNfaW5jKHVfYXRvbWljX2ludDMyX3Qg
KnZhcikgeworICAgIHJldHVybiBJbnRlcmxvY2tlZEluY3JlbWVudCh2YXIpOworfQorCitpbmxp
bmUgaW50MzJfdCB1bXR4X2F0b21pY19kZWModV9hdG9taWNfaW50MzJfdCAqdmFyKSB7CisgICAg
cmV0dXJuIEludGVybG9ja2VkRGVjcmVtZW50KHZhcik7Cit9CitVX05BTUVTUEFDRV9FTkQKKwor
CisjZWxpZiBVX0hBVkVfR0NDX0FUT01JQ1MKKy8qCisgKiBnY2MgYXRvbWljIG9wcy4gVGhlc2Ug
YXJlIGF2YWlsYWJsZSBvbiBzZXZlcmFsIG90aGVyIGNvbXBpbGVycyBhcyB3ZWxsLgorICovCisK
K1VfTkFNRVNQQUNFX0JFR0lOCit0eXBlZGVmIGludDMyX3QgdV9hdG9taWNfaW50MzJfdDsKKyNk
ZWZpbmUgQVRPTUlDX0lOVDMyX1RfSU5JVElBTElaRVIodmFsKSB2YWwKKworaW5saW5lIGludDMy
X3QgdW10eF9sb2FkQWNxdWlyZSh1X2F0b21pY19pbnQzMl90ICZ2YXIpIHsKKyAgICBpbnQzMl90
IHZhbCA9IHZhcjsKKyAgICBfX3N5bmNfc3luY2hyb25pemUoKTsKKyAgICByZXR1cm4gdmFsOwor
fQorCitpbmxpbmUgdm9pZCB1bXR4X3N0b3JlUmVsZWFzZSh1X2F0b21pY19pbnQzMl90ICZ2YXIs
IGludDMyX3QgdmFsKSB7CisgICAgX19zeW5jX3N5bmNocm9uaXplKCk7CisgICAgdmFyID0gdmFs
OworfQorCitpbmxpbmUgaW50MzJfdCB1bXR4X2F0b21pY19pbmModV9hdG9taWNfaW50MzJfdCAq
cCkgIHsKKyAgIHJldHVybiBfX3N5bmNfYWRkX2FuZF9mZXRjaChwLCAxKTsKK30KKworaW5saW5l
IGludDMyX3QgdW10eF9hdG9taWNfZGVjKHVfYXRvbWljX2ludDMyX3QgKnApICB7CisgICByZXR1
cm4gX19zeW5jX3N1Yl9hbmRfZmV0Y2gocCwgMSk7Cit9CitVX05BTUVTUEFDRV9FTkQKKworI2Vs
c2UKKworLyoKKyAqIFVua25vd24gUGxhdGZvcm0uIFVzZSBvdXQtb2YtbGluZSBmdW5jdGlvbnMs
IHdoaWNoIGluIHR1cm4gdXNlIG11dGV4ZXMuCisgKiAgICAgICAgICAgICAgICAgICBTbG93IGJ1
dCBjb3JyZWN0LgorICovCisKKyNkZWZpbmUgVV9OT19QTEFURk9STV9BVE9NSUNTCisKK1VfTkFN
RVNQQUNFX0JFR0lOCit0eXBlZGVmIGludDMyX3QgdV9hdG9taWNfaW50MzJfdDsKKyNkZWZpbmUg
QVRPTUlDX0lOVDMyX1RfSU5JVElBTElaRVIodmFsKSB2YWwKKworVV9DT01NT05fQVBJIGludDMy
X3QgVV9FWFBPUlQyIAordW10eF9sb2FkQWNxdWlyZSh1X2F0b21pY19pbnQzMl90ICZ2YXIpOwor
CitVX0NPTU1PTl9BUEkgdm9pZCBVX0VYUE9SVDIgCit1bXR4X3N0b3JlUmVsZWFzZSh1X2F0b21p
Y19pbnQzMl90ICZ2YXIsIGludDMyX3QgdmFsKTsKKworVV9DT01NT05fQVBJIGludDMyX3QgVV9F
WFBPUlQyIAordW10eF9hdG9taWNfaW5jKHVfYXRvbWljX2ludDMyX3QgKnApOworCitVX0NPTU1P
Tl9BUEkgaW50MzJfdCBVX0VYUE9SVDIgCit1bXR4X2F0b21pY19kZWModV9hdG9taWNfaW50MzJf
dCAqcCk7CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYgIC8qIExvdyBMZXZlbCBBdG9taWMg
T3BzIFBsYXRmcm9tIENoYWluICovCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorICoKKyAqICBVSW5pdE9uY2UgRGVmaW5pdGlvbnMuCisgKiAgICAgVGhl
c2UgYXJlIHBsYXRmb3JtIG5ldXRyYWwuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKiovCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKK3N0cnVjdCBVSW5pdE9uY2Ug
eworICAgIHVfYXRvbWljX2ludDMyX3QgICBmU3RhdGU7CisgICAgVUVycm9yQ29kZSAgICAgICBm
RXJyQ29kZTsKKyAgICB2b2lkIHJlc2V0KCkge2ZTdGF0ZSA9IDA7fTsKKyAgICBVQm9vbCBpc1Jl
c2V0KCkge3JldHVybiB1bXR4X2xvYWRBY3F1aXJlKGZTdGF0ZSkgPT0gMDt9OworLy8gTm90ZTog
aXNSZXNldCgpIGlzIHVzZWQgYnkgc2VydmljZSByZWdpc3RyYXRpb24gY29kZS4KKy8vICAgICAg
ICAgICAgICAgICBUaHJlYWQgc2FmZXR5IG9mIHRoaXMgdXNhZ2UgbmVlZHMgcmV2aWV3LgorfTsK
KworI2RlZmluZSBVX0lOSVRPTkNFX0lOSVRJQUxJWkVSIHtBVE9NSUNfSU5UMzJfVF9JTklUSUFM
SVpFUigwKSwgVV9aRVJPX0VSUk9SfQorCisKK1VfQ09NTU9OX0FQSSBVQm9vbCBVX0VYUE9SVDIg
dW10eF9pbml0SW1wbFByZUluaXQoVUluaXRPbmNlICYpOworVV9DT01NT05fQVBJIHZvaWQgIFVf
RVhQT1JUMiB1bXR4X2luaXRJbXBsUG9zdEluaXQoVUluaXRPbmNlICYpOworCit0ZW1wbGF0ZTxj
bGFzcyBUPiB2b2lkIHVtdHhfaW5pdE9uY2UoVUluaXRPbmNlICZ1aW8sIFQgKm9iaiwgdm9pZCAo
VDo6KmZwKSgpKSB7CisgICAgaWYgKHVtdHhfbG9hZEFjcXVpcmUodWlvLmZTdGF0ZSkgPT0gMikg
eworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICh1bXR4X2luaXRJbXBsUHJlSW5pdCh1
aW8pKSB7CisgICAgICAgIChvYmotPipmcCkoKTsKKyAgICAgICAgdW10eF9pbml0SW1wbFBvc3RJ
bml0KHVpbyk7CisgICAgfQorfQorCisKKy8vIHVtdHhfaW5pdE9uY2UgdmFyaWFudCBmb3IgcGxh
aW4gZnVuY3Rpb25zLCBvciBzdGF0aWMgY2xhc3MgZnVuY3Rpb25zLgorLy8gICAgICAgICAgICAg
ICBObyBjb250ZXh0IHBhcmFtZXRlci4KK2lubGluZSB2b2lkIHVtdHhfaW5pdE9uY2UoVUluaXRP
bmNlICZ1aW8sIHZvaWQgKCpmcCkoKSkgeworICAgIGlmICh1bXR4X2xvYWRBY3F1aXJlKHVpby5m
U3RhdGUpID09IDIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAodW10eF9pbml0
SW1wbFByZUluaXQodWlvKSkgeworICAgICAgICAoKmZwKSgpOworICAgICAgICB1bXR4X2luaXRJ
bXBsUG9zdEluaXQodWlvKTsKKyAgICB9Cit9CisKKy8vIHVtdHhfaW5pdE9uY2UgdmFyaWFudCBm
b3IgcGxhaW4gZnVuY3Rpb25zLCBvciBzdGF0aWMgY2xhc3MgZnVuY3Rpb25zLgorLy8gICAgICAg
ICAgICAgICBXaXRoIEVycm9yQ29kZSwgTm8gY29udGV4dCBwYXJhbWV0ZXIuCitpbmxpbmUgdm9p
ZCB1bXR4X2luaXRPbmNlKFVJbml0T25jZSAmdWlvLCB2b2lkICgqZnApKFVFcnJvckNvZGUgJiks
IFVFcnJvckNvZGUgJmVyckNvZGUpIHsKKyAgICBpZiAoVV9GQUlMVVJFKGVyckNvZGUpKSB7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHVtdHhfbG9hZEFjcXVpcmUodWlvLmZTdGF0
ZSkgIT0gMiAmJiB1bXR4X2luaXRJbXBsUHJlSW5pdCh1aW8pKSB7CisgICAgICAgIC8vIFdlIHJ1
biB0aGUgaW5pdGlhbGl6YXRpb24uCisgICAgICAgICgqZnApKGVyckNvZGUpOworICAgICAgICB1
aW8uZkVyckNvZGUgPSBlcnJDb2RlOworICAgICAgICB1bXR4X2luaXRJbXBsUG9zdEluaXQodWlv
KTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBTb21lb25lIGVsc2UgYWxyZWFkeSByYW4gdGhl
IGluaXRpYWxpemF0aW9uLgorICAgICAgICBpZiAoVV9GQUlMVVJFKHVpby5mRXJyQ29kZSkpIHsK
KyAgICAgICAgICAgIGVyckNvZGUgPSB1aW8uZkVyckNvZGU7CisgICAgICAgIH0KKyAgICB9Cit9
CisKKy8vIHVtdHhfaW5pdE9uY2UgdmFyaWFudCBmb3IgcGxhaW4gZnVuY3Rpb25zLCBvciBzdGF0
aWMgY2xhc3MgZnVuY3Rpb25zLAorLy8gICAgICAgICAgICAgICB3aXRoIGEgY29udGV4dCBwYXJh
bWV0ZXIuCit0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkIHVtdHhfaW5pdE9uY2UoVUluaXRPbmNlICZ1
aW8sIHZvaWQgKCpmcCkoVCksIFQgY29udGV4dCkgeworICAgIGlmICh1bXR4X2xvYWRBY3F1aXJl
KHVpby5mU3RhdGUpID09IDIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAodW10
eF9pbml0SW1wbFByZUluaXQodWlvKSkgeworICAgICAgICAoKmZwKShjb250ZXh0KTsKKyAgICAg
ICAgdW10eF9pbml0SW1wbFBvc3RJbml0KHVpbyk7CisgICAgfQorfQorCisvLyB1bXR4X2luaXRP
bmNlIHZhcmlhbnQgZm9yIHBsYWluIGZ1bmN0aW9ucywgb3Igc3RhdGljIGNsYXNzIGZ1bmN0aW9u
cywKKy8vICAgICAgICAgICAgICAgd2l0aCBhIGNvbnRleHQgcGFyYW1ldGVyIGFuZCBhbiBlcnJv
ciBjb2RlLgordGVtcGxhdGU8Y2xhc3MgVD4gdm9pZCB1bXR4X2luaXRPbmNlKFVJbml0T25jZSAm
dWlvLCB2b2lkICgqZnApKFQsIFVFcnJvckNvZGUgJiksIFQgY29udGV4dCwgVUVycm9yQ29kZSAm
ZXJyQ29kZSkgeworICAgIGlmIChVX0ZBSUxVUkUoZXJyQ29kZSkpIHsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBpZiAodW10eF9sb2FkQWNxdWlyZSh1aW8uZlN0YXRlKSAhPSAyICYmIHVt
dHhfaW5pdEltcGxQcmVJbml0KHVpbykpIHsKKyAgICAgICAgLy8gV2UgcnVuIHRoZSBpbml0aWFs
aXphdGlvbi4KKyAgICAgICAgKCpmcCkoY29udGV4dCwgZXJyQ29kZSk7CisgICAgICAgIHVpby5m
RXJyQ29kZSA9IGVyckNvZGU7CisgICAgICAgIHVtdHhfaW5pdEltcGxQb3N0SW5pdCh1aW8pOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFNvbWVvbmUgZWxzZSBhbHJlYWR5IHJhbiB0aGUgaW5p
dGlhbGl6YXRpb24uCisgICAgICAgIGlmIChVX0ZBSUxVUkUodWlvLmZFcnJDb2RlKSkgeworICAg
ICAgICAgICAgZXJyQ29kZSA9IHVpby5mRXJyQ29kZTsKKyAgICAgICAgfQorICAgIH0KK30KKwor
VV9OQU1FU1BBQ0VfRU5ECisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgorICoKKyAqICBNdXRleCBEZWZpbml0aW9ucy4gUGxhdGZvcm0gRGVwZW5kZW50LCAj
aWYgcGxhdGZvcm0gY2hhaW4gZm9sbG93cy4KKyAqICAgICAgICAgVE9ETzogIEFkZCBhIEMrKzEx
IHZlcnNpb24uCisgKiAgICAgICAgICAgICAgICBOZWVkIHRvIGNvbnZlcnQgYWxsIG11dGV4IHVz
aW5nIGZpbGVzIHRvIEMrKyBmaXJzdC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKi8KKworI2lmIGRlZmluZWQoVV9VU0VSX01VVEVYX0gpCisvLyAjaW5sY3Vk
ZSAiVV9VU0VSX01VVEVYX0giCisjaW5jbHVkZSBVX01VVEVYX1hTVFIoVV9VU0VSX01VVEVYX0gp
CisKKyNlbGlmIFVfUExBVEZPUk1fSEFTX1dJTjMyX0FQSQorCisvKiBXaW5kb3dzIERlZmluaXRp
b25zLgorICogICAgV2luZG93cyBjb21lcyBmaXJzdCBpbiB0aGUgcGxhdGZvcm0gY2hhaW4uCisg
KiAgICBDeWd3aW4gKGFuZCBwb3NzaWJseSBvdGhlcnMpIGhhdmUgYm90aCBXSU4zMiBhbmQgUE9T
SVggQVBJcy4gUHJlZmVyIFdpbjMyIGluIHRoaXMgY2FzZS4KKyAqLworCisKKy8qIEZvciBDUklU
SUNBTF9TRUNUSU9OICovCisKKy8qCisgKiAgIE5vdGU6IHRoZXJlIGlzIGFuIGVhcmxpZXIgaW5j
bHVkZSBvZiB3aW5kb3dzLmggaW4gdGhpcyBmaWxlLCBidXQgaXQgaXMgaW4KKyAqICAgICAgICAg
ZGlmZmVyZW50IGNvbmRpdGlvbmFscy4KKyAqICAgICAgICAgVGhpcyBvbmUgaXMgbmVlZGVkIGlm
IHdlIGFyZSB1c2luZyBDKysxMSBmb3IgYXRvbWljIG9wcywgYnV0CisgKiAgICAgICAgIHdpbjMy
IEFQSXMgZm9yIENyaXRpY2FsIFNlY3Rpb25zLgorICovCisKKyMgZGVmaW5lIFdJTjMyX0xFQU5f
QU5EX01FQU4KKyMgZGVmaW5lIFZDX0VYVFJBTEVBTgorIyBkZWZpbmUgTk9VU0VSCisjIGRlZmlu
ZSBOT1NFUlZJQ0UKKyMgZGVmaW5lIE5PSU1FCisjIGRlZmluZSBOT01DWAorIyBpZm5kZWYgTk9N
SU5NQVgKKyMgZGVmaW5lIE5PTUlOTUFYCisjIGVuZGlmCisjIGluY2x1ZGUgPHdpbmRvd3MuaD4K
KworCit0eXBlZGVmIHN0cnVjdCBVTXV0ZXggeworICAgIGljdTo6VUluaXRPbmNlICAgIGZJbml0
T25jZTsKKyAgICBDUklUSUNBTF9TRUNUSU9OICBmQ1M7Cit9IFVNdXRleDsKKworLyogSW5pdGlh
bGl6ZXIgZm9yIGEgc3RhdGljIFVNVVRFWC4gRGVsaWJlcmF0ZWx5IGNvbnRhaW5zIG5vIHZhbHVl
IGZvciB0aGUKKyAqICBDUklUSUNBTF9TRUNUSU9OLgorICovCisjZGVmaW5lIFVfTVVURVhfSU5J
VElBTElaRVIge1VfSU5JVE9OQ0VfSU5JVElBTElaRVJ9CisKK3N0cnVjdCBVQ29uZGl0aW9uVmFy
IHsKKyAgICBIQU5ETEUgICAgICAgICAgIGZFbnRyeUdhdGU7CisgICAgSEFORExFICAgICAgICAg
ICBmRXhpdEdhdGU7CisgICAgaW50MzJfdCAgICAgICAgICBmV2FpdENvdW50OworfTsKKworI2Rl
ZmluZSBVX0NPTkRJVElPTl9JTklUSUFMSVpFUiB7TlVMTCwgTlVMTCwgMH0KKyAgICAKKworCisj
ZWxpZiBVX1BMQVRGT1JNX0lNUExFTUVOVFNfUE9TSVgKKworLyoKKyAqICBQT1NJWCBwbGF0Zm9y
bQorICovCisKKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisKK3N0cnVjdCBVTXV0ZXggeworICAgIHB0
aHJlYWRfbXV0ZXhfdCAgZk11dGV4OworfTsKK3R5cGVkZWYgc3RydWN0IFVNdXRleCBVTXV0ZXg7
CisjZGVmaW5lIFVfTVVURVhfSU5JVElBTElaRVIgIHtQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVS
fQorCitzdHJ1Y3QgVUNvbmRpdGlvblZhciB7CisgICAgcHRocmVhZF9jb25kX3QgICBmQ29uZGl0
aW9uOworfTsKKyNkZWZpbmUgVV9DT05ESVRJT05fSU5JVElBTElaRVIge1BUSFJFQURfQ09ORF9J
TklUSUFMSVpFUn0KKworI2Vsc2UKKworLyoKKyAqICBVbmtub3cgcGxhdGZvcm0gdHlwZS4KKyAq
ICAgICAgVGhpcyBpcyBhbiBlcnJvciBjb25kaXRpb24uIElDVSByZXF1aXJlcyBtdXRleGVzLgor
ICovCisKKyNlcnJvciBVbmtub3duIFBsYXRmb3JtLgorCisjZW5kaWYKKworCisKKy8qKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqICBNdXRleCBJbXBsZW1lbnRhdGlvbiBmdW5j
dGlvbiBkZWNsYXJhdGF0aW9ucy4KKyAqICAgICBEZWNsYXJhdGlvbnMgYXJlIHBsYXRmb3JtIG5l
dXRyYWwuCisgKiAgICAgSW1wbGVtZW50YXRpb25zLCBpbiB1bXV0ZXguY3BwLCBhcmUgcGxhdGZv
cm0gc3BlY2lmaWMuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogTG9j
ayBhIG11dGV4LgorICogQHBhcmFtIG11dGV4IFRoZSBnaXZlbiBtdXRleCB0byBiZSBsb2NrZWQu
ICBQYXNzIE5VTEwgdG8gc3BlY2lmeQorICogICAgICAgICAgICAgIHRoZSBnbG9iYWwgSUNVIG11
dGV4LiAgUmVjdXJzaXZlIGxvY2tzIGFyZSBhbiBlcnJvcgorICogICAgICAgICAgICAgIGFuZCBt
YXkgY2F1c2UgYSBkZWFkbG9jayBvbiBzb21lIHBsYXRmb3Jtcy4KKyAqLworVV9JTlRFUk5BTCB2
b2lkIFVfRVhQT1JUMiB1bXR4X2xvY2soVU11dGV4KiBtdXRleCk7CisKKy8qIFVubG9jayBhIG11
dGV4LgorICogQHBhcmFtIG11dGV4IFRoZSBnaXZlbiBtdXRleCB0byBiZSB1bmxvY2tlZC4gIFBh
c3MgTlVMTCB0byBzcGVjaWZ5CisgKiAgICAgICAgICAgICAgdGhlIGdsb2JhbCBJQ1UgbXV0ZXgu
CisgKi8KK1VfSU5URVJOQUwgdm9pZCBVX0VYUE9SVDIgdW10eF91bmxvY2sgKFVNdXRleCogbXV0
ZXgpOworCisvKgorICogV2FpdCBvbiBhIGNvbmRpdGlvbiB2YXJpYWJsZS4KKyAqIFRoZSBjYWxs
aW5nIHRocmVhZCB3aWxsIHVubG9jayB0aGUgbXV0ZXggYW5kIHdhaXQgb24gdGhlIGNvbmRpdGlv
biB2YXJpYWJsZS4KKyAqIFRoZSBtdXRleCBtdXN0IGJlIGxvY2tlZCBieSB0aGUgY2FsbGluZyB0
aHJlYWQgd2hlbiBpbnZva2luZyB0aGlzIGZ1bmN0aW9uLgorICoKKyAqIEBwYXJhbSBjb25kIHRo
ZSBjb25kaXRpb24gdmFyaWFibGUgdG8gd2FpdCBvbi4KKyAqIEBwYXJhbSBtdXRleCB0aGUgYXNz
b2NpYXRlZCBtdXRleC4KKyAqLworCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyIHVtdHhfY29u
ZFdhaXQoVUNvbmRpdGlvblZhciAqY29uZCwgVU11dGV4ICptdXRleCk7CisKKworLyoKKyAqIEJy
b2FkY2FzdCB3YWtldXAgb2YgYWxsIHRocmVhZHMgd2FpdGluZyBvbiBhIENvbmRpdGlvbi4KKyAq
IFRoZSBhc3NvY2lhdGVkIG11dGV4IG11c3QgYmUgbG9ja2VkIGJ5IHRoZSBjYWxsaW5nIHRocmVh
ZCB3aGVuIGNhbGxpbmcKKyAqIHRoaXMgZnVuY3Rpb247IHRoaXMgaXMgYSB0ZW1wb3JhcnkgSUNV
IHJlc3RyaWN0aW9uLgorICogCisgKiBAcGFyYW0gY29uZCB0aGUgY29uZGl0aW9uIHZhcmlhYmxl
LgorICovCitVX0lOVEVSTkFMIHZvaWQgVV9FWFBPUlQyIHVtdHhfY29uZEJyb2FkY2FzdChVQ29u
ZGl0aW9uVmFyICpjb25kKTsKKworLyoKKyAqIFNpZ25hbCBhIGNvbmRpdGlvbiB2YXJpYWJsZSwg
d2FraW5nIHVwIG9uZSB3YWl0aW5nIHRocmVhZC4KKyAqIENBVVRJT046IERvIG5vdCB1c2UuIFBs
YWNlIGhvbGRlciBvbmx5LiBOb3QgaW1wbGVtZW50ZWQgZm9yIFdpbmRvd3MuCisgKi8KK1VfSU5U
RVJOQUwgdm9pZCBVX0VYUE9SVDIgdW10eF9jb25kU2lnbmFsKFVDb25kaXRpb25WYXIgKmNvbmQp
OworCisjZW5kaWYgLyogVU1VVEVYX0ggKi8KKy8qZW9mKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW5ld2RhdGEuYyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW5ld2RhdGEuYwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWE2
MGQ1NjY4Mzk2NDAzN2JiMzZkZTcyOGI1MmYxYmM0MWZlYzY2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bmV3ZGF0YS5jCkBAIC0w
LDAgKzEsMjc0IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdo
dCAoQykgMTk5OS0yMDEwLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29y
cG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdW5ld2RhdGEuYworKiAgIGVuY29kaW5nOiAg
IFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246
NAorKgorKiAgIGNyZWF0ZWQgb246IDE5OTlvY3QyNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBX
LiBTY2hlcmVyCisqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlICJ1bmljb2RlL3V0
eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3Vz
dHJpbmcuaCIKKyNpbmNsdWRlICJjbWVtb3J5LmgiCisjaW5jbHVkZSAiY3N0cmluZy5oIgorI2lu
Y2x1ZGUgImZpbGVzdHJtLmgiCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgorI2luY2x1ZGUg
InVuZXdkYXRhLmgiCisKK3N0cnVjdCBVTmV3RGF0YU1lbW9yeSB7CisgICAgRmlsZVN0cmVhbSAq
ZmlsZTsKKyAgICB1aW50MTZfdCBoZWFkZXJTaXplOworICAgIHVpbnQ4X3QgbWFnaWMxLCBtYWdp
YzI7Cit9OworCitVX0NBUEkgVU5ld0RhdGFNZW1vcnkgKiBVX0VYUE9SVDIKK3VkYXRhX2NyZWF0
ZShjb25zdCBjaGFyICpkaXIsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisg
ICAgICAgICAgICAgY29uc3QgVURhdGFJbmZvICpwSW5mbywKKyAgICAgICAgICAgICBjb25zdCBj
aGFyICpjb21tZW50LAorICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpIHsKKyAg
ICBVTmV3RGF0YU1lbW9yeSAqcERhdGE7CisgICAgdWludDE2X3QgaGVhZGVyU2l6ZSwgY29tbWVu
dExlbmd0aDsKKyAgICBjaGFyIGZpbGVuYW1lWzUxMl07CisgICAgdWludDhfdCBieXRlc1sxNl07
CisgICAgaW50IGxlbmd0aDsKKworICAgIGlmKHBFcnJvckNvZGU9PU5VTEwgfHwgVV9GQUlMVVJF
KCpwRXJyb3JDb2RlKSkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9IGVsc2UgaWYobmFt
ZT09TlVMTCB8fCAqbmFtZT09MCB8fCBwSW5mbz09TlVMTCkgeworICAgICAgICAqcEVycm9yQ29k
ZT1VX0lMTEVHQUxfQVJHVU1FTlRfRVJST1I7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0K
KworICAgIC8qIGFsbG9jYXRlIHRoZSBkYXRhIHN0cnVjdHVyZSAqLworICAgIHBEYXRhPShVTmV3
RGF0YU1lbW9yeSAqKXVwcnZfbWFsbG9jKHNpemVvZihVTmV3RGF0YU1lbW9yeSkpOworICAgIGlm
KHBEYXRhPT1OVUxMKSB7CisgICAgICAgICpwRXJyb3JDb2RlPVVfTUVNT1JZX0FMTE9DQVRJT05f
RVJST1I7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICAKKyAgICAvKiBDaGVjayB0
aGF0IHRoZSBmdWxsIHBhdGggd29uJ3QgYmUgdG9vIGxvbmcgKi8KKyAgICBsZW5ndGggPSAwOwkJ
CQkJLyogU3RhcnQgd2l0aCBub3RoaW5nICovCisgICAgaWYoZGlyICE9IE5VTEwgICYmICpkaXIg
IT0wKQkvKiBBZGQgZGlyZWN0b3J5IGxlbmd0aCBpZiBvbmUgd2FzIGdpdmVuICovCisgICAgewor
ICAgIAlsZW5ndGggKz0gc3RybGVuKGRpcik7CisJCisgICAgCS8qIEFkZCAxIGlmIGRpciBkb2Vz
bid0IGVuZCB3aXRoIHBhdGggc2VwICovCisgICAgICAgIGlmIChkaXJbc3RybGVuKGRpcikgLSAx
XSE9IFVfRklMRV9TRVBfQ0hBUikgeworICAgICAgICAgICAgbGVuZ3RoKys7CisgICAgICAgIH0K
Kwl9CisgICAgbGVuZ3RoICs9IHN0cmxlbihuYW1lKTsJCS8qIEFkZCB0aGUgZmlsZW5hbWUgbGVu
Z3RoICovCisKKyAgICBpZih0eXBlICE9IE5VTEwgICYmICp0eXBlICE9MCkgeyAvKiBBZGQgZGly
ZWN0b3J5IGxlbmd0aCBpZiAgZ2l2ZW4gKi8KKyAgICAgICAgbGVuZ3RoICs9IHN0cmxlbih0eXBl
KTsKKyAgICB9CisKKyAgICAgICAgCisgICAgIC8qIExESCBidWZmZXIgTGVuZ3RoIGVycm9yIGNo
ZWNrICovCisgICAgaWYobGVuZ3RoICA+IChzaXplb2YoZmlsZW5hbWUpIC0gMSkpCisgICAgewor
ICAgCSAgICAqcEVycm9yQ29kZSA9IFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SOworICAgCSAgICB1
cHJ2X2ZyZWUocERhdGEpOworCSAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAKKyAgICAvKiBv
cGVuIHRoZSBvdXRwdXQgZmlsZSAqLworICAgIGlmKGRpciE9TlVMTCAmJiAqZGlyIT0wKSB7IC8q
IGlmIGRpciBoYXMgYSB2YWx1ZSwgd2UgcHJlcGVuZCBpdCB0byB0aGUgZmlsZW5hbWUgKi8KKyAg
ICAgICAgY2hhciAqcD1maWxlbmFtZStzdHJsZW4oZGlyKTsKKyAgICAgICAgdXBydl9zdHJjcHko
ZmlsZW5hbWUsIGRpcik7CisgICAgICAgIGlmICgqKHAtMSkhPVVfRklMRV9TRVBfQ0hBUikgewor
ICAgICAgICAgICAgKnArKz1VX0ZJTEVfU0VQX0NIQVI7CisgICAgICAgICAgICAqcD0wOworICAg
ICAgICB9CisgICAgfSBlbHNlIHsgLyogb3RoZXJ3aXNlLCB3ZSdsbCBvdXRwdXQgdG8gdGhlIGN1
cnJlbnQgZGlyICovCisgICAgICAgIGZpbGVuYW1lWzBdPTA7CisgICAgfQorICAgIHVwcnZfc3Ry
Y2F0KGZpbGVuYW1lLCBuYW1lKTsKKyAgICBpZih0eXBlIT1OVUxMICYmICp0eXBlIT0wKSB7Cisg
ICAgICAgIHVwcnZfc3RyY2F0KGZpbGVuYW1lLCAiLiIpOworICAgICAgICB1cHJ2X3N0cmNhdChm
aWxlbmFtZSwgdHlwZSk7CisgICAgfQorICAgIHBEYXRhLT5maWxlPVRfRmlsZVN0cmVhbV9vcGVu
KGZpbGVuYW1lLCAid2IiKTsKKyAgICBpZihwRGF0YS0+ZmlsZT09TlVMTCkgeworICAgICAgICB1
cHJ2X2ZyZWUocERhdGEpOworICAgICAgICAqcEVycm9yQ29kZT1VX0ZJTEVfQUNDRVNTX0VSUk9S
OworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiB3cml0ZSB0aGUgaGVhZGVy
IGluZm9ybWF0aW9uICovCisgICAgaGVhZGVyU2l6ZT0odWludDE2X3QpKHBJbmZvLT5zaXplKzQp
OworICAgIGlmKGNvbW1lbnQhPU5VTEwgJiYgKmNvbW1lbnQhPTApIHsKKyAgICAgICAgY29tbWVu
dExlbmd0aD0odWludDE2X3QpKHVwcnZfc3RybGVuKGNvbW1lbnQpKzEpOworICAgICAgICBoZWFk
ZXJTaXplKz1jb21tZW50TGVuZ3RoOworICAgIH0gZWxzZSB7CisgICAgICAgIGNvbW1lbnRMZW5n
dGg9MDsKKyAgICB9CisKKyAgICAvKiB3cml0ZSB0aGUgc2l6ZSBvZiB0aGUgaGVhZGVyLCB0YWtl
IHBhZGRpbmcgaW50byBhY2NvdW50ICovCisgICAgcERhdGEtPmhlYWRlclNpemU9KHVpbnQxNl90
KSgoaGVhZGVyU2l6ZSsxNSkmfjB4Zik7CisgICAgcERhdGEtPm1hZ2ljMT0weGRhOworICAgIHBE
YXRhLT5tYWdpYzI9MHgyNzsKKyAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsICZw
RGF0YS0+aGVhZGVyU2l6ZSwgNCk7CisKKyAgICAvKiB3cml0ZSB0aGUgaW5mb3JtYXRpb24gZGF0
YSAqLworICAgIFRfRmlsZVN0cmVhbV93cml0ZShwRGF0YS0+ZmlsZSwgcEluZm8sIHBJbmZvLT5z
aXplKTsKKworICAgIC8qIHdyaXRlIHRoZSBjb21tZW50ICovCisgICAgaWYoY29tbWVudExlbmd0
aD4wKSB7CisgICAgICAgIFRfRmlsZVN0cmVhbV93cml0ZShwRGF0YS0+ZmlsZSwgY29tbWVudCwg
Y29tbWVudExlbmd0aCk7CisgICAgfQorCisgICAgLyogd3JpdGUgcGFkZGluZyBieXRlcyB0byBh
bGlnbiB0aGUgZGF0YSBzZWN0aW9uIHRvIDE2IGJ5dGVzICovCisgICAgaGVhZGVyU2l6ZSY9MHhm
OworICAgIGlmKGhlYWRlclNpemUhPTApIHsKKyAgICAgICAgaGVhZGVyU2l6ZT0odWludDE2X3Qp
KDE2LWhlYWRlclNpemUpOworICAgICAgICB1cHJ2X21lbXNldChieXRlcywgMCwgaGVhZGVyU2l6
ZSk7CisgICAgICAgIFRfRmlsZVN0cmVhbV93cml0ZShwRGF0YS0+ZmlsZSwgYnl0ZXMsIGhlYWRl
clNpemUpOworICAgIH0KKworICAgIHJldHVybiBwRGF0YTsKK30KKworVV9DQVBJIHVpbnQzMl90
IFVfRVhQT1JUMgordWRhdGFfZmluaXNoKFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgVUVycm9yQ29k
ZSAqcEVycm9yQ29kZSkgeworICAgIHVpbnQzMl90IGZpbGVMZW5ndGg9MDsKKworICAgIGlmKHBF
cnJvckNvZGU9PU5VTEwgfHwgVV9GQUlMVVJFKCpwRXJyb3JDb2RlKSkgeworICAgICAgICByZXR1
cm4gMDsKKyAgICB9CisKKyAgICBpZihwRGF0YSE9TlVMTCkgeworICAgICAgICBpZihwRGF0YS0+
ZmlsZSE9TlVMTCkgeworICAgICAgICAgICAgLyogZmZsdXNoKHBEYXRhLT5maWxlKTsqLworICAg
ICAgICAgICAgZmlsZUxlbmd0aD1UX0ZpbGVTdHJlYW1fc2l6ZShwRGF0YS0+ZmlsZSk7CisgICAg
ICAgICAgICBpZihUX0ZpbGVTdHJlYW1fZXJyb3IocERhdGEtPmZpbGUpKSB7CisgICAgICAgICAg
ICAgICAgKnBFcnJvckNvZGU9VV9GSUxFX0FDQ0VTU19FUlJPUjsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgZmlsZUxlbmd0aC09cERhdGEtPmhlYWRlclNpemU7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBUX0ZpbGVTdHJlYW1fY2xvc2UocERhdGEtPmZpbGUpOwor
ICAgICAgICB9CisgICAgICAgIHVwcnZfZnJlZShwRGF0YSk7CisgICAgfQorCisgICAgcmV0dXJu
IGZpbGVMZW5ndGg7Cit9CisKKy8qIGR1bW15IFVEYXRhSW5mbyBjZi4gdWRhdGEuaCAqLworc3Rh
dGljIGNvbnN0IFVEYXRhSW5mbyBkdW1teURhdGFJbmZvID0geworICAgIHNpemVvZihVRGF0YUlu
Zm8pLAorICAgIDAsCisKKyAgICBVX0lTX0JJR19FTkRJQU4sCisgICAgVV9DSEFSU0VUX0ZBTUlM
WSwKKyAgICBVX1NJWkVPRl9VQ0hBUiwKKyAgICAwLAorCisgICAgeyAwLCAwLCAwLCAwIH0sICAg
ICAgICAgICAgICAgICAvKiBkdW1teSBkYXRhRm9ybWF0ICovCisgICAgeyAwLCAwLCAwLCAwIH0s
ICAgICAgICAgICAgICAgICAvKiBkdW1teSBmb3JtYXRWZXJzaW9uICovCisgICAgeyAwLCAwLCAw
LCAwIH0gICAgICAgICAgICAgICAgICAvKiBkdW1teSBkYXRhVmVyc2lvbiAqLworfTsKKworVV9D
QVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9jcmVhdGVEdW1teShjb25zdCBjaGFyICpkaXIsIGNv
bnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUp
IHsKKyAgICBpZihVX1NVQ0NFU1MoKnBFcnJvckNvZGUpKSB7CisgICAgICAgIHVkYXRhX2Zpbmlz
aCh1ZGF0YV9jcmVhdGUoZGlyLCB0eXBlLCBuYW1lLCAmZHVtbXlEYXRhSW5mbywgTlVMTCwgcEVy
cm9yQ29kZSksIHBFcnJvckNvZGUpOworICAgICAgICBpZihVX0ZBSUxVUkUoKnBFcnJvckNvZGUp
KSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImVycm9yICVzIHdyaXRpbmcgZHVtbXkg
ZGF0YSBmaWxlICVzIiBVX0ZJTEVfU0VQX1NUUklORyAiJXMuJXNcbiIsCisgICAgICAgICAgICAg
ICAgICAgIHVfZXJyb3JOYW1lKCpwRXJyb3JDb2RlKSwgZGlyLCBuYW1lLCB0eXBlKTsKKyAgICAg
ICAgICAgIGV4aXQoKnBFcnJvckNvZGUpOworICAgICAgICB9CisgICAgfQorfQorCitVX0NBUEkg
dm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlOChVTmV3RGF0YU1lbW9yeSAqcERhdGEsIHVpbnQ4
X3QgYnl0ZSkgeworICAgIGlmKHBEYXRhIT1OVUxMICYmIHBEYXRhLT5maWxlIT1OVUxMKSB7Cisg
ICAgICAgIFRfRmlsZVN0cmVhbV93cml0ZShwRGF0YS0+ZmlsZSwgJmJ5dGUsIDEpOworICAgIH0K
K30KKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZTE2KFVOZXdEYXRhTWVtb3J5
ICpwRGF0YSwgdWludDE2X3Qgd29yZCkgeworICAgIGlmKHBEYXRhIT1OVUxMICYmIHBEYXRhLT5m
aWxlIT1OVUxMKSB7CisgICAgICAgIFRfRmlsZVN0cmVhbV93cml0ZShwRGF0YS0+ZmlsZSwgJndv
cmQsIDIpOworICAgIH0KK30KKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0ZTMy
KFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgdWludDMyX3Qgd3lkZSkgeworICAgIGlmKHBEYXRhIT1O
VUxMICYmIHBEYXRhLT5maWxlIT1OVUxMKSB7CisgICAgICAgIFRfRmlsZVN0cmVhbV93cml0ZShw
RGF0YS0+ZmlsZSwgJnd5ZGUsIDQpOworICAgIH0KK30KKworVV9DQVBJIHZvaWQgVV9FWFBPUlQy
Cit1ZGF0YV93cml0ZUJsb2NrKFVOZXdEYXRhTWVtb3J5ICpwRGF0YSwgY29uc3Qgdm9pZCAqcywg
aW50MzJfdCBsZW5ndGgpIHsKKyAgICBpZihwRGF0YSE9TlVMTCAmJiBwRGF0YS0+ZmlsZSE9TlVM
TCkgeworICAgICAgICBpZihsZW5ndGg+MCkgeworICAgICAgICAgICAgVF9GaWxlU3RyZWFtX3dy
aXRlKHBEYXRhLT5maWxlLCBzLCBsZW5ndGgpOworICAgICAgICB9CisgICAgfQorfQorCitVX0NB
UEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlUGFkZGluZyhVTmV3RGF0YU1lbW9yeSAqcERh
dGEsIGludDMyX3QgbGVuZ3RoKSB7CisgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgcGFkZGluZ1sx
Nl09eworICAgICAgICAweGFhLCAweGFhLCAweGFhLCAweGFhLAorICAgICAgICAweGFhLCAweGFh
LCAweGFhLCAweGFhLAorICAgICAgICAweGFhLCAweGFhLCAweGFhLCAweGFhLAorICAgICAgICAw
eGFhLCAweGFhLCAweGFhLCAweGFhCisgICAgfTsKKyAgICBpZihwRGF0YSE9TlVMTCAmJiBwRGF0
YS0+ZmlsZSE9TlVMTCkgeworICAgICAgICB3aGlsZShsZW5ndGg+PTE2KSB7CisgICAgICAgICAg
ICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsIHBhZGRpbmcsIDE2KTsKKyAgICAgICAg
ICAgIGxlbmd0aC09MTY7CisgICAgICAgIH0KKyAgICAgICAgaWYobGVuZ3RoPjApIHsKKyAgICAg
ICAgICAgIFRfRmlsZVN0cmVhbV93cml0ZShwRGF0YS0+ZmlsZSwgcGFkZGluZywgbGVuZ3RoKTsK
KyAgICAgICAgfQorICAgIH0KK30KKworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV93cml0
ZVN0cmluZyhVTmV3RGF0YU1lbW9yeSAqcERhdGEsIGNvbnN0IGNoYXIgKnMsIGludDMyX3QgbGVu
Z3RoKSB7CisgICAgaWYocERhdGEhPU5VTEwgJiYgcERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAg
ICAgaWYobGVuZ3RoPT0tMSkgeworICAgICAgICAgICAgbGVuZ3RoPShpbnQzMl90KXVwcnZfc3Ry
bGVuKHMpOworICAgICAgICB9CisgICAgICAgIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICBU
X0ZpbGVTdHJlYW1fd3JpdGUocERhdGEtPmZpbGUsIHMsIGxlbmd0aCk7CisgICAgICAgIH0KKyAg
ICB9Cit9CisKK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGVVU3RyaW5nKFVOZXdE
YXRhTWVtb3J5ICpwRGF0YSwgY29uc3QgVUNoYXIgKnMsIGludDMyX3QgbGVuZ3RoKSB7CisgICAg
aWYocERhdGEhPU5VTEwgJiYgcERhdGEtPmZpbGUhPU5VTEwpIHsKKyAgICAgICAgaWYobGVuZ3Ro
PT0tMSkgeworICAgICAgICAgICAgbGVuZ3RoPXVfc3RybGVuKHMpOworICAgICAgICB9CisgICAg
ICAgIGlmKGxlbmd0aD4wKSB7CisgICAgICAgICAgICBUX0ZpbGVTdHJlYW1fd3JpdGUocERhdGEt
PmZpbGUsIHMsIGxlbmd0aCpzaXplb2YoVUNoYXIpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwor
LyoKKyAqIEhleSwgRW1hY3MsIHBsZWFzZSBzZXQgdGhlIGZvbGxvd2luZzoKKyAqCisgKiBMb2Nh
bCBWYXJpYWJsZXM6CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqCisgKi8K
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91
bmV3ZGF0YS5oIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91bmV3
ZGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQyNWI4ZTlmNzQ5ODQ3NDI3ZDEwYWJjZWJlMmI0M2FlYjg3MDNm
NzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Z2VuYnJrL3VuZXdkYXRhLmgKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTAsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5hbWU6ICB1bmV3
ZGF0YS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTogICA4IChub3Qg
dXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMTk5OW9jdDI1Cisq
ICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisKKyNpZm5kZWYgX19VTkVXREFU
QV9IX18KKyNkZWZpbmUgX19VTkVXREFUQV9IX18KKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVz
LmgiCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgorCisvKiBBUEkgZm9yIHdyaXRpbmcgZGF0
YSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSov
CisKKy8qKiBAbWVtbyBGb3J3YXJkIGRlY2xhcmF0aW9uIG9mIHRoZSBkYXRhIG1lbW9yeSBjcmVh
dGlvbiB0eXBlLiAqLwordHlwZWRlZiBzdHJ1Y3QgVU5ld0RhdGFNZW1vcnkgVU5ld0RhdGFNZW1v
cnk7CisKKy8qKgorICogQ3JlYXRlIGEgbmV3IGJpbmFyeSBkYXRhIGZpbGUuCisgKiBUaGUgZmls
ZS13cml0aW5nIDxjb2RlPnVkYXRhXzwvY29kZT4gZnVuY3Rpb25zIGZhY2lsaXRhdGUgd3JpdGlu
ZworICogYmluYXJ5IGRhdGEgZmlsZXMgdGhhdCBjYW4gYmUgcmVhZCBieSBJQ1UncyA8Y29kZT51
ZGF0YTwvY29kZT4gQVBJLgorICogVGhpcyBmdW5jdGlvbiBvcGVucyBhIG5ldyBmaWxlIHdpdGgg
YSBmaWxlbmFtZSBkZXRlcm1pbmVkIGZyb20gaXRzCisgKiBwYXJhbWV0ZXJzIC0gb2YgdGhlIGZv
cm0gIm5hbWUudHlwZSIuCisgKiBJdCB0aGVuIHdyaXRlcyBhIHNob3J0IGhlYWRlciwgZm9sbG93
ZWQgYnkgdGhlIDxjb2RlPlVEYXRhSW5mbzwvY29kZT4KKyAqIHN0cnVjdHVyZSBhbmQsIG9wdGlv
bmFsbHksIGJ5IHRoZSBjb21tZW50IHN0cmluZy4KKyAqIEl0IHRoZW4gd3JpdGVzIHBhZGRpbmcg
Ynl0ZXMgdG8gcm91bmQgdXAgdG8gYSBtdWx0aXBsZSBvZiAxNiBieXRlcy4KKyAqIFN1YnNlcXVl
bnQgd3JpdGUgb3BlcmF0aW9ucyB3aWxsIHRodXMgc3RhcnQgYXQgYW4gb2Zmc2V0IGluIHRoZSBm
aWxlCisgKiB0aGF0IGlzIGEgbXVsdGlwbGUgb2YgMTYuIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgp
PC9jb2RlPiB3aWxsIHJldHVybgorICogYSBwb2ludGVyIHRvIHRoaXMgc2FtZSBzdGFydGluZyBv
ZmZzZXQuCisgKgorICogU2VlIHVkYXRhLmggLgorICoKKyAqIEBwYXJhbSBkaXIgQSBzdHJpbmcg
dGhhdCBzcGVjaWZpZXMgdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgZGF0YSB3aWxsIGJlCisgKiAg
ICAgICAgICAgIHdyaXR0ZW4uIElmIDxjb2RlPk5VTEw8L2NvZGU+LCB0aGVuCisgKiAgICAgICAg
ICAgIDxjb2RlPnVfZ2V0RGF0YURpcmVjdG9yeTwvY29kZT4gaXMgdXNlZC4KKyAqIEBwYXJhbSB0
eXBlIEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSB0eXBlIG9mIGRhdGEgdG8gYmUgd3JpdHRl
bi4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBidW5kbGVzIGFyZSB3cml0
dGVuIHdpdGggdHlwZSAicmVzIiwKKyAqICAgICAgICAgICAgIGNvbnZlcnNpb24gdGFibGVzIHdp
dGggdHlwZSAiY252Ii4KKyAqICAgICAgICAgICAgIFRoaXMgbWF5IGJlIDxjb2RlPk5VTEw8L2Nv
ZGU+IG9yIGVtcHR5LgorICogQHBhcmFtIG5hbWUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhl
IG5hbWUgb2YgdGhlIGRhdGEuCisgKiBAcGFyYW0gcEluZm8gQSBwb2ludGVyIHRvIGEgY29ycmVj
dGx5IGZpbGxlZCA8Y29kZT5VRGF0YUluZm88L2NvZGU+CisgKiAgICAgICAgICAgICAgc3RydWN0
dXJlIHRoYXQgd2lsbCBiZSBjb3BpZWQgaW50byB0aGUgZmlsZS4KKyAqIEBwYXJhbSBjb21tZW50
IEEgc3RyaW5nIChlLmcuLCBhIGNvcHlyaWdodCBzdGF0ZW1lbnQpIHRoYXQgd2lsbCBiZQorICog
ICAgICAgICAgICAgICAgY29waWVkIGludG8gdGhlIGZpbGUgaWYgaXQgaXMgbm90IDxjb2RlPk5V
TEw8L2NvZGU+CisgKiAgICAgICAgICAgICAgICBvciBlbXB0eS4gVGhpcyBzdHJpbmcgc2VydmVz
IG9ubHkgYXMgYSBjb21tZW50IGluIHRoZSBiaW5hcnkKKyAqICAgICAgICAgICAgICAgIGZpbGUu
IEl0IHdpbGwgbm90IGJlIGFjY2Vzc2libGUgYnkgYW55IEFQSS4KKyAqIEBwYXJhbSBwRXJyb3JD
b2RlIEFuIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+TlVM
TDwvY29kZT4uCisgKi8KK1VfQ0FQSSBVTmV3RGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRhdGFf
Y3JlYXRlKGNvbnN0IGNoYXIgKmRpciwgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFt
ZSwKKyAgICAgICAgICAgICBjb25zdCBVRGF0YUluZm8gKnBJbmZvLAorICAgICAgICAgICAgIGNv
bnN0IGNoYXIgKmNvbW1lbnQsCisgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7
CisKKy8qKiBAbWVtbyBDbG9zZSBhIG5ld2x5IHdyaXR0ZW4gYmluYXJ5IGZpbGUuICovCitVX0NB
UEkgdWludDMyX3QgVV9FWFBPUlQyCit1ZGF0YV9maW5pc2goVU5ld0RhdGFNZW1vcnkgKnBEYXRh
LCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqIEBtZW1vIFdyaXRlIGEgZHVtbXkgZGF0
YSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9jcmVhdGVEdW1teShjb25z
dCBjaGFyICpkaXIsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsIFVFcnJvckNv
ZGUgKnBFcnJvckNvZGUpOworCisvKiogQG1lbW8gV3JpdGUgYW4gOC1iaXQgYnl0ZSB0byB0aGUg
ZmlsZS4gKi8KK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGU4KFVOZXdEYXRhTWVt
b3J5ICpwRGF0YSwgdWludDhfdCBieXRlKTsKKworLyoqIEBtZW1vIFdyaXRlIGEgMTYtYml0IHdv
cmQgdG8gdGhlIGZpbGUuICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlMTYo
VU5ld0RhdGFNZW1vcnkgKnBEYXRhLCB1aW50MTZfdCB3b3JkKTsKKworLyoqIEBtZW1vIFdyaXRl
IGEgMzItYml0IHdvcmQgdG8gdGhlIGZpbGUuICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3Vk
YXRhX3dyaXRlMzIoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCB1aW50MzJfdCB3eWRlKTsKKworLyoq
IEBtZW1vIFdyaXRlIGEgYmxvY2sgb2YgYnl0ZXMgdG8gdGhlIGZpbGUuICovCitVX0NBUEkgdm9p
ZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlQmxvY2soVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBjb25z
dCB2b2lkICpzLCBpbnQzMl90IGxlbmd0aCk7CisKKy8qKiBAbWVtbyBXcml0ZSBhIGJsb2NrIG9m
IGFyYml0cmFyeSBwYWRkaW5nIGJ5dGVzIHRvIHRoZSBmaWxlLiAqLworVV9DQVBJIHZvaWQgVV9F
WFBPUlQyCit1ZGF0YV93cml0ZVBhZGRpbmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRhLCBpbnQzMl90
IGxlbmd0aCk7CisKKy8qKiBAbWVtbyBXcml0ZSBhIDxjb2RlPmNoYXIqPC9jb2RlPiBzdHJpbmcg
b2YgcGxhdGZvcm0gImludmFyaWFudCBjaGFyYWN0ZXJzIiB0byB0aGUgZmlsZS4gKi8KK1VfQ0FQ
SSB2b2lkIFVfRVhQT1JUMgordWRhdGFfd3JpdGVTdHJpbmcoVU5ld0RhdGFNZW1vcnkgKnBEYXRh
LCBjb25zdCBjaGFyICpzLCBpbnQzMl90IGxlbmd0aCk7CisKKy8qKiBAbWVtbyBXcml0ZSBhIDxj
b2RlPlVDaGFyKjwvY29kZT4gc3RyaW5nIG9mIFVuaWNvZGUgY2hhcmFjdGVyIGNvZGUgdW5pdHMg
dG8gdGhlIGZpbGUuICovCitVX0NBUEkgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3dyaXRlVVN0cmlu
ZyhVTmV3RGF0YU1lbW9yeSAqcERhdGEsIGNvbnN0IFVDaGFyICpzLCBpbnQzMl90IGxlbmd0aCk7
CisKKworLyoKKyAqIEhleSwgRW1hY3MsIHBsZWFzZSBzZXQgdGhlIGZvbGxvd2luZzoKKyAqCisg
KiBMb2NhbCBWYXJpYWJsZXM6CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAq
CisgKi8KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvZ2VuYnJrL3VvcHRpb25zLmMgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvZ2VuYnJrL3VvcHRpb25zLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVlZmMxNzBjYmRmNzUxM2RkNTdlYmY3
Nzc5Yjk4MmU5N2EyMWQ5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9nZW5icmsvdW9wdGlvbnMuYwpAQCAtMCwwICsxLDEyMiBAQAorLyoKKyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDIwMDAsIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5h
bWU6ICB1b3B0aW9ucy5jCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTog
ICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAw
MGFwcjE3CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyoKKyogICBUaGlzIGZp
bGUgcHJvdmlkZXMgYSBjb21tYW5kIGxpbmUgYXJndW1lbnQgcGFyc2VyLgorKi8KKworI2luY2x1
ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAiY3N0cmluZy5oIgorI2luY2x1ZGUgInVv
cHRpb25zLmgiCisKK1VfQ0FQSSBpbnQgVV9FWFBPUlQyCit1X3BhcnNlQXJncyhpbnQgYXJnYywg
Y2hhciogYXJndltdLAorICAgICAgICAgICAgaW50IG9wdGlvbkNvdW50LCBVT3B0aW9uIG9wdGlv
bnNbXSkgeworICAgIGNoYXIgKmFyZzsKKyAgICBpbnQgaT0xLCByZW1haW5pbmc9MTsKKyAgICBj
aGFyIGMsIHN0b3BPcHRpb25zPTA7CisKKyAgICB3aGlsZShpPGFyZ2MpIHsKKyAgICAgICAgYXJn
PWFyZ3ZbaV07CisgICAgICAgIGlmKCFzdG9wT3B0aW9ucyAmJiAqYXJnPT0nLScgJiYgKGM9YXJn
WzFdKSE9MCkgeworICAgICAgICAgICAgLyogcHJvY2VzcyBhbiBvcHRpb24gKi8KKyAgICAgICAg
ICAgIFVPcHRpb24gKm9wdGlvbj1OVUxMOworICAgICAgICAgICAgYXJnKz0yOworICAgICAgICAg
ICAgaWYoYz09Jy0nKSB7CisgICAgICAgICAgICAgICAgLyogcHJvY2VzcyBhIGxvbmcgb3B0aW9u
ICovCisgICAgICAgICAgICAgICAgaWYoKmFyZz09MCkgeworICAgICAgICAgICAgICAgICAgICAv
KiBzdG9wIHByb2Nlc3Npbmcgb3B0aW9ucyBhZnRlciAiLS0iICovCisgICAgICAgICAgICAgICAg
ICAgIHN0b3BPcHRpb25zPTE7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgLyogc2VhcmNoIGZvciB0aGUgb3B0aW9uIHN0cmluZyAqLworICAgICAgICAgICAg
ICAgICAgICBpbnQgajsKKyAgICAgICAgICAgICAgICAgICAgZm9yKGo9MDsgajxvcHRpb25Db3Vu
dDsgKytqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZihvcHRpb25zW2pdLmxvbmdOYW1l
ICYmIHVwcnZfc3RyY21wKGFyZywgb3B0aW9uc1tqXS5sb25nTmFtZSk9PTApIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvcHRpb249b3B0aW9ucytqOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmKG9wdGlvbj09TlVMTCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgLyogbm8gb3B0aW9uIG1hdGNoZXMgKi8KKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAtaTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBvcHRpb24tPmRvZXNPY2N1cj0xOworCisgICAgICAgICAgICAgICAgICAgIGlmKG9w
dGlvbi0+aGFzQXJnIT1VT1BUX05PX0FSRykgeworICAgICAgICAgICAgICAgICAgICAgICAgLyog
cGFyc2UgdGhlIGFyZ3VtZW50IGZvciB0aGUgb3B0aW9uLCBpZiBhbnkgKi8KKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmKGkrMTxhcmdjICYmICEoYXJndltpKzFdWzBdPT0nLScgJiYgYXJndltp
KzFdWzFdIT0wKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGFyZ3VtZW50IGlu
IHRoZSBuZXh0IGFyZ3ZbXSwgYW5kIHRoZXJlIGlzIG5vdCBhbiBvcHRpb24gaW4gdGhlcmUgKi8K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24tPnZhbHVlPWFyZ3ZbKytpXTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZihvcHRpb24tPmhhc0FyZz09VU9QVF9SRVFV
SVJFU19BUkcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGVyZSBpcyBubyBh
cmd1bWVudCwgYnV0IG9uZSBpcyByZXF1aXJlZDogcmV0dXJuIHdpdGggZXJyb3IgKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLWk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8qIHByb2Nlc3Mgb25lIG9yIG1vcmUgc2hvcnQg
b3B0aW9ucyAqLworICAgICAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICAgICAgLyog
c2VhcmNoIGZvciB0aGUgb3B0aW9uIGxldHRlciAqLworICAgICAgICAgICAgICAgICAgICBpbnQg
ajsKKyAgICAgICAgICAgICAgICAgICAgZm9yKGo9MDsgajxvcHRpb25Db3VudDsgKytqKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZihjPT1vcHRpb25zW2pdLnNob3J0TmFtZSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbj1vcHRpb25zK2o7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYob3B0aW9uPT1OVUxMKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAvKiBubyBvcHRpb24gbWF0Y2hlcyAqLworICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIC1pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIG9wdGlvbi0+ZG9lc09jY3VyPTE7CisKKyAgICAgICAgICAgICAgICAgICAg
aWYob3B0aW9uLT5oYXNBcmchPVVPUFRfTk9fQVJHKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAvKiBwYXJzZSB0aGUgYXJndW1lbnQgZm9yIHRoZSBvcHRpb24sIGlmIGFueSAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYoKmFyZyE9MCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8qIGFyZ3VtZW50IGZvbGxvd2luZyBpbiB0aGUgc2FtZSBhcmd2W10gKi8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvcHRpb24tPnZhbHVlPWFyZzsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiBkbyBub3QgcHJvY2VzcyB0aGUgcmVzdCBvZiB0aGlzIGFyZyBhcyBvcHRp
b24gbGV0dGVycyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKGkrMTxhcmdjICYmICEoYXJndltpKzFdWzBdPT0n
LScgJiYgYXJndltpKzFdWzFdIT0wKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q
IGFyZ3VtZW50IGluIHRoZSBuZXh0IGFyZ3ZbXSwgYW5kIHRoZXJlIGlzIG5vdCBhbiBvcHRpb24g
aW4gdGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24tPnZhbHVlPWFy
Z3ZbKytpXTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0aGlzIGJyZWFrIGlzIHJl
ZHVuZGFudCBiZWNhdXNlIHdlIGtub3cgdGhhdCAqYXJnPT0wICovCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYob3B0
aW9uLT5oYXNBcmc9PVVPUFRfUkVRVUlSRVNfQVJHKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLyogdGhlcmUgaXMgbm8gYXJndW1lbnQsIGJ1dCBvbmUgaXMgcmVxdWlyZWQ6IHJldHVy
biB3aXRoIGVycm9yICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1pOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgICAgICAgLyogZ2V0IHRoZSBuZXh0IG9wdGlvbiBsZXR0ZXIgKi8KKyAgICAgICAg
ICAgICAgICAgICAgb3B0aW9uPU5VTEw7CisgICAgICAgICAgICAgICAgICAgIGM9KmFyZysrOwor
ICAgICAgICAgICAgICAgIH0gd2hpbGUoYyE9MCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGlmKG9wdGlvbiE9MCAmJiBvcHRpb24tPm9wdGlvbkZuIT0wICYmIG9wdGlvbi0+b3B0aW9u
Rm4ob3B0aW9uLT5jb250ZXh0LCBvcHRpb24pPDApIHsKKyAgICAgICAgICAgICAgICAvKiB0aGUg
b3B0aW9uIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYW5kIHJldHVybmVkIGFuIGVycm9yICovCisgICAg
ICAgICAgICAgICAgcmV0dXJuIC1pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBn
byB0byBuZXh0IGFyZ3ZbXSAqLworICAgICAgICAgICAgKytpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgLyogbW92ZSBhIG5vbi1vcHRpb24gdXAgaW4gYXJndltdICovCisgICAgICAg
ICAgICBhcmd2W3JlbWFpbmluZysrXT1hcmc7CisgICAgICAgICAgICArK2k7CisgICAgICAgIH0K
KyAgICB9CisgICAgcmV0dXJuIHJlbWFpbmluZzsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW9wdGlvbnMuaCBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9nZW5icmsvdW9wdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2RiNjVm
MjgxZmMxOTM0Y2I4ODgzNjM2NjBjYjMzMTc1NTM0YWMyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL2dlbmJyay91b3B0aW9ucy5oCkBAIC0wLDAg
KzEsMTQxIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAo
QykgMjAwMC0yMDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9y
YXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdW9wdGlvbnMuaAorKiAgIGVuY29kaW5nOiAgIFVT
LUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAor
KgorKiAgIGNyZWF0ZWQgb246IDIwMDBhcHIxNworKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBT
Y2hlcmVyCisqCisqICAgVGhpcyBmaWxlIHByb3ZpZGVzIGEgY29tbWFuZCBsaW5lIGFyZ3VtZW50
IHBhcnNlci4KKyovCisKKyNpZm5kZWYgX19VT1BUSU9OU19IX18KKyNkZWZpbmUgX19VT1BUSU9O
U19IX18KKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8qIFRoaXMgc2hvdWxkIHVz
dWFsbHkgYmUgY2FsbGVkIGJlZm9yZSBjYWxsaW5nIHVfcGFyc2VBcmdzICovCisvKiNpZiBVX1BM
QVRGT1JNID09IFVfUEZfT1MzOTAgJiYgKFVfQ0hBUlNFVF9GQU1JTFkgPT0gVV9BU0NJSV9GQU1J
TFkpKi8KKyAgICAvKiB0cmFuc2xhdGUgYXJncyBmcm9tIEVCQ0RJQyB0byBBU0NJSSAqLworLyoj
ICAgZGVmaW5lIFVfTUFJTl9JTklUX0FSR1MoYXJnYywgYXJndikgX19hcmd2dG9hc2NpaV9hKGFy
Z2MsIGFyZ3YpKi8KKy8qI2VsaWYgZGVmaW5lZChYUF9NQUNfQ09OU09MRSkqLworI2lmIGRlZmlu
ZWQoWFBfTUFDX0NPTlNPTEUpCisjICAgaW5jbHVkZSA8Y29uc29sZS5oPgorICAgIC8qIEdldCB0
aGUgYXJndW1lbnRzIGZyb20gdGhlIEdVSSwgc2luY2Ugb2xkIE1hY3MgZG9uJ3QgaGF2ZSBhIGNv
bnNvbGUgV2luZG93LiAqLworIyAgIGRlZmluZSBVX01BSU5fSU5JVF9BUkdTKGFyZ2MsIGFyZ3Yp
IGFyZ2MgPSBjY29tbWFuZCgoY2hhcioqKikmYXJndikKKyNlbHNlCisgICAgLyogTm9ybWFsbHkg
d2UgZG8gbm90aGluZy4gKi8KKyMgICBkZWZpbmUgVV9NQUlOX0lOSVRfQVJHUyhhcmdjLCBhcmd2
KQorI2VuZGlmCisKKworCisvKiBmb3J3YXJkIGRlY2xhcmF0aW9ucyBmb3IgdGhlIGZ1bmN0aW9u
IGRlY2xhcmF0aW9uICovCitzdHJ1Y3QgVU9wdGlvbjsKK3R5cGVkZWYgc3RydWN0IFVPcHRpb24g
VU9wdGlvbjsKKworLyogZnVuY3Rpb24gdG8gYmUgY2FsbGVkIGZvciBhIGNvbW1hbmQgbGluZSBv
cHRpb24gKi8KK3R5cGVkZWYgaW50IFVPcHRpb25Gbih2b2lkICpjb250ZXh0LCBVT3B0aW9uICpv
cHRpb24pOworCisvKiB2YWx1ZXMgb2YgVU9wdGlvbi5oYXNBcmcgKi8KK2VudW0geyBVT1BUX05P
X0FSRywgVU9QVF9SRVFVSVJFU19BUkcsIFVPUFRfT1BUSU9OQUxfQVJHIH07CisKKy8qIHN0cnVj
dHVyZSBkZXNjcmliaW5nIGEgY29tbWFuZCBsaW5lIG9wdGlvbiAqLworc3RydWN0IFVPcHRpb24g
eworICAgIGNvbnN0IGNoYXIgKmxvbmdOYW1lOyAgIC8qICJmb28iIGZvciAtLWZvbyAqLworICAg
IGNvbnN0IGNoYXIgKnZhbHVlOyAgICAgIC8qIG91dHB1dCBwbGFjZWhvbGRlciwgd2lsbCBwb2lu
dCB0byB0aGUgYXJndW1lbnQgc3RyaW5nLCBpZiBhbnkgKi8KKyAgICBVT3B0aW9uRm4gKm9wdGlv
bkZuOyAgICAvKiBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGlzIG9wdGlvbiBvY2N1cnMg
Ki8KKyAgICB2b2lkICpjb250ZXh0OyAgICAgICAgICAvKiBwYXJhbWV0ZXIgZm9yIHRoZSBmdW5j
dGlvbiAqLworICAgIGNoYXIgc2hvcnROYW1lOyAgICAgICAgIC8qICdmJyBmb3IgLWYgKi8KKyAg
ICBjaGFyIGhhc0FyZzsgICAgICAgICAgICAvKiBlbnVtIHZhbHVlOiBvcHRpb24gdGFrZXMgbm8v
cmVxdWlyZXMvbWF5IGhhdmUgYXJndW1lbnQgKi8KKyAgICBjaGFyIGRvZXNPY2N1cjsgICAgICAg
ICAvKiBib29sZWFuIGZvciAidGhpcyBvbmUgb2NjdXJlZCIgKi8KK307CisKKy8qIG1hY3JvIGZv
ciBhbiBlbnRyeSBpbiBhIGRlY2xhcmF0aW9uIG9mIFVPcHRpb25bXSAqLworI2RlZmluZSBVT1BU
SU9OX0RFRihsb25nTmFtZSwgc2hvcnROYW1lLCBoYXNBcmcpIFwKKyAgICB7IGxvbmdOYW1lLCBO
VUxMLCBOVUxMLCBOVUxMLCBzaG9ydE5hbWUsIGhhc0FyZywgMCB9CisKKy8qIElDVSBUb29scyBv
cHRpb24gZGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVU9QVElPTl9IRUxQX0ggICAgICAgICAgICAg
IFVPUFRJT05fREVGKCJoZWxwIiwgJ2gnLCBVT1BUX05PX0FSRykKKyNkZWZpbmUgVU9QVElPTl9I
RUxQX1FVRVNUSU9OX01BUksgIFVPUFRJT05fREVGKCJoZWxwIiwgJz8nLCBVT1BUX05PX0FSRykK
KyNkZWZpbmUgVU9QVElPTl9WRVJCT1NFICAgICAgICAgICAgIFVPUFRJT05fREVGKCJ2ZXJib3Nl
IiwgJ3YnLCBVT1BUX05PX0FSRykKKyNkZWZpbmUgVU9QVElPTl9RVUlFVCAgICAgICAgICAgICAg
IFVPUFRJT05fREVGKCJxdWlldCIsICdxJywgVU9QVF9OT19BUkcpCisjZGVmaW5lIFVPUFRJT05f
VkVSU0lPTiAgICAgICAgICAgICBVT1BUSU9OX0RFRigidmVyc2lvbiIsICdWJywgVU9QVF9OT19B
UkcpCisjZGVmaW5lIFVPUFRJT05fQ09QWVJJR0hUICAgICAgICAgICBVT1BUSU9OX0RFRigiY29w
eXJpZ2h0IiwgJ2MnLCBVT1BUX05PX0FSRykKKworI2RlZmluZSBVT1BUSU9OX0RFU1RESVIgICAg
ICAgICAgICAgVU9QVElPTl9ERUYoImRlc3RkaXIiLCAnZCcsIFVPUFRfUkVRVUlSRVNfQVJHKQor
I2RlZmluZSBVT1BUSU9OX1NPVVJDRURJUiAgICAgICAgICAgVU9QVElPTl9ERUYoInNvdXJjZWRp
ciIsICdzJywgVU9QVF9SRVFVSVJFU19BUkcpCisjZGVmaW5lIFVPUFRJT05fRU5DT0RJTkcgICAg
ICAgICAgICBVT1BUSU9OX0RFRigiZW5jb2RpbmciLCAnZScsIFVPUFRfUkVRVUlSRVNfQVJHKQor
I2RlZmluZSBVT1BUSU9OX0lDVURBVEFESVIgICAgICAgICAgVU9QVElPTl9ERUYoImljdWRhdGFk
aXIiLCAnaScsIFVPUFRfUkVRVUlSRVNfQVJHKQorI2RlZmluZSBVT1BUSU9OX1dSSVRFX0pBVkEg
ICAgICAgICAgVU9QVElPTl9ERUYoIndyaXRlLWphdmEiLCAnaicsIFVPUFRfT1BUSU9OQUxfQVJH
KQorI2RlZmluZSBVT1BUSU9OX1BBQ0tBR0VfTkFNRSAgICAgICAgVU9QVElPTl9ERUYoInBhY2th
Z2UtbmFtZSIsICdwJywgVU9QVF9SRVFVSVJFU19BUkcpCisjZGVmaW5lIFVPUFRJT05fQlVORExF
X05BTUUgICAgICAgICBVT1BUSU9OX0RFRigiYnVuZGxlLW5hbWUiLCAnYicsIFVPUFRfUkVRVUlS
RVNfQVJHKQorCisvKioKKyAqIEMgQ29tbWFuZCBsaW5lIGFyZ3VtZW50IHBhcnNlci4KKyAqCisg
KiBUaGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBhcmd2W2FyZ2NdIGNvbW1hbmQgbGluZSBhbmQgYSBk
ZXNjcmlwdGlvbiBvZgorICogdGhlIHByb2dyYW0ncyBvcHRpb25zIGluIGZvcm0gb2YgYW4gYXJy
YXkgb2YgVU9wdGlvbiBzdHJ1Y3R1cmVzLgorICogRWFjaCBVT3B0aW9uIGRlZmluZXMgYSBsb25n
IGFuZCBhIHNob3J0IG5hbWUgKGEgc3RyaW5nIGFuZCBhIGNoYXJhY3RlcikKKyAqIGZvciBvcHRp
b25zIGxpa2UgIi0tZm9vIiBhbmQgIi1mIi4KKyAqCisgKiBFYWNoIG9wdGlvbiBpcyBtYXJrZWQg
d2l0aCB3aGV0aGVyIGl0IGRvZXMgbm90IHRha2UgYW4gYXJndW1lbnQsCisgKiByZXF1aXJlcyBv
bmUsIG9yIG9wdGlvbmFsbHkgdGFrZXMgb25lLiBUaGUgYXJndW1lbnQgbWF5IGZvbGxvdyBpbgor
ICogdGhlIHNhbWUgYXJndltdIGVudHJ5IGZvciBzaG9ydCBvcHRpb25zLCBvciBpdCBtYXkgYWx3
YXlzIGZvbGxvdworICogaW4gdGhlIG5leHQgYXJndltdIGVudHJ5LgorICoKKyAqIEFuIGFyZ3Vt
ZW50IGlzIGluIHRoZSBuZXh0IGFyZ3ZbXSBlbnRyeSBmb3IgYm90aCBsb25nIGFuZCBzaG9ydCBu
YW1lCisgKiBvcHRpb25zLCBleGNlcHQgaXQgaXMgdGFrZW4gZnJvbSBkaXJlY3RseSBiZWhpbmQg
dGhlIHNob3J0IG5hbWUgaW4KKyAqIGl0cyBvd24gYXJndltdIGVudHJ5IGlmIHRoZXJlIGFyZSBj
aGFyYWN0ZXJzIGZvbGxvd2luZyB0aGUgb3B0aW9uIGxldHRlci4KKyAqIEFuIGFyZ3VtZW50IGlu
IGl0cyBvd24gYXJndltdIGVudHJ5IG11c3Qgbm90IGJlZ2luIHdpdGggYSAnLScKKyAqIHVubGVz
cyBpdCBpcyBvbmx5IHRoZSAnLScgaXRzZWxmLiBUaGVyZSBpcyBubyByZXN0cmljdGlvbiBvZiB0
aGUKKyAqIGFyZ3VtZW50IGZvcm1hdCBpZiBpdCBpcyBwYXJ0IG9mIHRoZSBzaG9ydCBuYW1lIG9w
dGlvbnMncyBhcmd2W10gZW50cnkuCisgKgorICogVGhlIGFyZ3VtZW50IGlzIHN0b3JlZCBpbiB0
aGUgdmFsdWUgZmllbGQgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyAqIFVPcHRpb24gZW50cnksIGFu
ZCB0aGUgZG9lc09jY3VyIGZpZWxkIGlzIHNldCB0byAxIGlmIHRoZSBvcHRpb24KKyAqIGlzIGZv
dW5kIGF0IGFsbC4KKyAqCisgKiBTaG9ydCBuYW1lIG9wdGlvbnMgd2l0aG91dCBhcmd1bWVudHMg
Y2FuIGJlIGNvbGxhcHNlZCBpbnRvIGEgc2luZ2xlCisgKiBhcmd2W10gZW50cnkuIEFmdGVyIGFu
IG9wdGlvbiBsZXR0ZXIgdGFrZXMgYW4gYXJndW1lbnQsIGZvbGxvd2luZworICogbGV0dGVycyB3
aWxsIGJlIHRha2VuIGFzIGl0cyBhcmd1bWVudC4KKyAqCisgKiBJZiB0aGUgc2FtZSBvcHRpb24g
aXMgZm91bmQgc2V2ZXJhbCB0aW1lcywgdGhlbiB0aGUgbGFzdAorICogYXJndW1lbnQgdmFsdWUg
d2lsbCBiZSBzdG9yZWQgaW4gdGhlIHZhbHVlIGZpZWxkLgorICoKKyAqIEZvciBlYWNoIG9wdGlv
biwgYSBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkLiBUaGlzIGNvdWxkIGJlIHVzZWQKKyAqIGZvciBv
cHRpb25zIHRoYXQgb2NjdXIgbXVsdGlwbGUgdGltZXMgYW5kIGFsbCBhcmd1bWVudHMgYXJlIHRv
CisgKiBiZSBjb2xsZWN0ZWQuCisgKgorICogQWxsIG9wdGlvbnMgYXJlIHJlbW92ZWQgZnJvbSB0
aGUgYXJndltdIGFycmF5IGl0c2VsZi4gSWYgdGhlIHBhcnNlcgorICogaXMgc3VjY2Vzc2Z1bCwg
dGhlbiBpdCByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVtYWluaW5nIG5vbi1vcHRpb24KKyAqIHN0
cmluZ3MgKGluY2x1ZGluZyBhcmd2WzBdKS4KKyAqIGFyZ3ZbMF0sIHRoZSBwcm9ncmFtIG5hbWUs
IGlzIG5ldmVyIHJlYWQgb3IgbW9kaWZpZWQuCisgKgorICogQW4gb3B0aW9uICItLSIgZW5kcyBv
cHRpb24gcHJvY2Vzc2luZzsgZXZlcnl0aGluZyBhZnRlciB0aGlzCisgKiByZW1haW5zIGluIHRo
ZSBhcmd2W10gYXJyYXkuCisgKgorICogQW4gb3B0aW9uIHN0cmluZyAiLSIgYWxvbmUgaXMgdHJl
YXRlZCBhcyBhIG5vbi1vcHRpb24uCisgKgorICogSWYgYW4gb3B0aW9uIGlzIG5vdCByZWNvZ25p
emVkIG9yIGFuIGFyZ3VtZW50IG1pc3NpbmcsIHRoZW4KKyAqIHRoZSBwYXJzZXIgcmV0dXJucyB3
aXRoIHRoZSBuZWdhdGl2ZSBpbmRleCBvZiB0aGUgYXJndltdIGVudHJ5CisgKiB3aGVyZSB0aGUg
ZXJyb3Igd2FzIGRldGVjdGVkLgorICoKKyAqIFRoZSBPUy80MDAgY29tcGlsZXIgcmVxdWlyZXMg
dGhhdCBhcmd2IGVpdGhlciBiZSAiY2hhciogYXJndltdIiwKKyAqIG9yICJjb25zdCBjaGFyKiBj
b25zdCBhcmd2W10iLCBhbmQgaXQgd2lsbCBub3QgYWNjZXB0LCAKKyAqICJjb25zdCBjaGFyKiBh
cmd2W10iIGFzIGEgZGVmaW5pdGlvbiBmb3IgbWFpbigpLgorICoKKyAqIEBwYXJhbSBhcmd2IFRo
aXMgcGFyYW1ldGVyIGlzIG1vZGlmaWVkCisgKiBAcGFyYW0gb3B0aW9ucyBUaGlzIHBhcmFtZXRl
ciBpcyBtb2RpZmllZAorICovCitVX0NBUEkgaW50IFVfRVhQT1JUMgordV9wYXJzZUFyZ3MoaW50
IGFyZ2MsIGNoYXIqIGFyZ3ZbXSwKKyAgICAgICAgICAgIGludCBvcHRpb25Db3VudCwgVU9wdGlv
biBvcHRpb25zW10pOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9nZW5icmsvdXRyaWUuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9nZW5icmsvdXRyaWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zY2VjMDI3ZmUzNDU5NWU1Yjc1ZTFm
Mjg1MGQyMDZiNjJhOTRlZjg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL2dlbmJyay91dHJpZS5oCkBAIC0wLDAgKzEsNzk1IEBACisvKgorKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTEsIEludGVy
bmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAg
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUg
bmFtZTogIHV0cmllLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAg
IDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDAx
bm92MDgKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBf
X1VUUklFX0hfXworI2RlZmluZSBfX1VUUklFX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlw
ZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3V0ZjE2LmgiCisjaW5jbHVkZSAidWRhdGFzd3AuaCIK
KworVV9DREVDTF9CRUdJTgorCisvKioKKyAqIFxmaWxlCisgKgorICogVGhpcyBpcyBhIGNvbW1v
biBpbXBsZW1lbnRhdGlvbiBvZiBhICJmb2xkZWQiIHRyaWUuCisgKiBJdCBpcyBhIGtpbmQgb2Yg
Y29tcHJlc3NlZCwgc2VyaWFsaXphYmxlIHRhYmxlIG9mIDE2LSBvciAzMi1iaXQgdmFsdWVzIGFz
c29jaWF0ZWQgd2l0aAorICogVW5pY29kZSBjb2RlIHBvaW50cyAoMC4uMHgxMGZmZmYpLgorICoK
KyAqIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgb3B0aW1pemVkIGZvciBnZXR0aW5nIHZhbHVlcyB3
aGlsZSB3YWxraW5nIGZvcndhcmQKKyAqIHRocm91Z2ggYSBVVEYtMTYgc3RyaW5nLgorICogVGhl
cmVmb3JlLCB0aGUgc2ltcGxlc3QgYW5kIGZhc3Rlc3QgYWNjZXNzIG1hY3JvcyBhcmUgdGhlCisg
KiBfRlJPTV9MRUFEKCkgYW5kIF9GUk9NX09GRlNFVF9UUkFJTCgpIG1hY3Jvcy4KKyAqCisgKiBU
aGUgX0ZST01fQk1QKCkgbWFjcm9zIGFyZSBhIGxpdHRsZSBtb3JlIGNvbXBsaWNhdGVkOyB0aGV5
IGdldCB2YWx1ZXMKKyAqIGV2ZW4gZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgX3BvaW50c18sIHdo
aWxlIHRoZSBfRlJPTV9MRUFEKCkgbWFjcm9zCisgKiBnZXQgc3BlY2lhbCAiZm9sZGVkIiB2YWx1
ZXMgZm9yIGxlYWQgc3Vycm9nYXRlIGNvZGUgX3VuaXRzXyBpZgorICogdGhlcmUgaXMgcmVsZXZh
bnQgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlbS4KKyAqIEZyb20gc3VjaCBhIGZvbGRlZCB2YWx1
ZSwgYW4gb2Zmc2V0IG5lZWRzIHRvIGJlIGV4dHJhY3RlZCB0byBzdXBwbHkKKyAqIHRvIHRoZSBf
RlJPTV9PRkZTRVRfVFJBSUwoKSBtYWNyb3MuCisgKgorICogTW9zdCBvZiB0aGUgbW9yZSBjb21w
bGV4IChhbmQgbW9yZSBjb252ZW5pZW50KSBmdW5jdGlvbnMvbWFjcm9zIGNhbGwgYSBjYWxsYmFj
ayBmdW5jdGlvbgorICogdG8gZ2V0IHRoYXQgb2Zmc2V0IGZyb20gdGhlIGZvbGRlZCB2YWx1ZSBm
b3IgYSBsZWFkIHN1cnJvZ2F0ZSB1bml0LgorICovCisKKy8qKgorICogVHJpZSBjb25zdGFudHMs
IGRlZmluaW5nIHNoaWZ0IHdpZHRocywgaW5kZXggYXJyYXkgbGVuZ3RocywgZXRjLgorICovCitl
bnVtIHsKKyAgICAvKiogU2hpZnQgc2l6ZSBmb3Igc2hpZnRpbmcgcmlnaHQgdGhlIGlucHV0IGlu
ZGV4LiAxLi45ICovCisgICAgVVRSSUVfU0hJRlQ9NSwKKworICAgIC8qKiBOdW1iZXIgb2YgZGF0
YSB2YWx1ZXMgaW4gYSBzdGFnZSAyIChkYXRhIGFycmF5KSBibG9jay4gMiwgNCwgOCwgLi4sIDB4
MjAwICovCisgICAgVVRSSUVfREFUQV9CTE9DS19MRU5HVEg9MTw8VVRSSUVfU0hJRlQsCisKKyAg
ICAvKiogTWFzayBmb3IgZ2V0dGluZyB0aGUgbG93ZXIgYml0cyBmcm9tIHRoZSBpbnB1dCBpbmRl
eC4gKi8KKyAgICBVVFJJRV9NQVNLPVVUUklFX0RBVEFfQkxPQ0tfTEVOR1RILTEsCisKKyAgICAv
KioKKyAgICAgKiBMZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cycgaW5kZXggZGlzcGxhY2VtZW50
IGluIHRoZSBpbmRleCBhcnJheS4KKyAgICAgKiAweDEwMDAwLTB4ZDgwMD0weDI4MDAKKyAgICAg
Ki8KKyAgICBVVFJJRV9MRUFEX0lOREVYX0RJU1A9MHgyODAwPj5VVFJJRV9TSElGVCwKKworICAg
IC8qKgorICAgICAqIFNoaWZ0IHNpemUgZm9yIHNoaWZ0aW5nIGxlZnQgdGhlIGluZGV4IGFycmF5
IHZhbHVlcy4KKyAgICAgKiBJbmNyZWFzZXMgcG9zc2libGUgZGF0YSBzaXplIHdpdGggMTYtYml0
IGluZGV4IHZhbHVlcyBhdCB0aGUgY29zdAorICAgICAqIG9mIGNvbXBhY3RhYmlsaXR5LgorICAg
ICAqIFRoaXMgcmVxdWlyZXMgYmxvY2tzIG9mIHN0YWdlIDIgZGF0YSB0byBiZSBhbGlnbmVkIGJ5
IFVUUklFX0RBVEFfR1JBTlVMQVJJVFkuCisgICAgICogMC4uVVRSSUVfU0hJRlQKKyAgICAgKi8K
KyAgICBVVFJJRV9JTkRFWF9TSElGVD0yLAorCisgICAgLyoqIFRoZSBhbGlnbm1lbnQgc2l6ZSBv
ZiBhIHN0YWdlIDIgZGF0YSBibG9jay4gQWxzbyB0aGUgZ3JhbnVsYXJpdHkgZm9yIGNvbXBhY3Rp
b24uICovCisgICAgVVRSSUVfREFUQV9HUkFOVUxBUklUWT0xPDxVVFJJRV9JTkRFWF9TSElGVCwK
KworICAgIC8qKiBOdW1iZXIgb2YgYml0cyBvZiBhIHRyYWlsIHN1cnJvZ2F0ZSB0aGF0IGFyZSB1
c2VkIGluIGluZGV4IHRhYmxlIGxvb2t1cHMuICovCisgICAgVVRSSUVfU1VSUk9HQVRFX0JMT0NL
X0JJVFM9MTAtVVRSSUVfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgb2YgaW5kZXgg
KHN0YWdlIDEpIGVudHJpZXMgcGVyIGxlYWQgc3Vycm9nYXRlLgorICAgICAqIFNhbWUgYXMgbnVt
YmVyIG9mIGluZGV4IGVudHJpZXMgZm9yIDEwMjQgdHJhaWwgc3Vycm9nYXRlcywKKyAgICAgKiA9
PTB4NDAwPj5VVFJJRV9TSElGVAorICAgICAqLworICAgIFVUUklFX1NVUlJPR0FURV9CTE9DS19D
T1VOVD0oMTw8VVRSSUVfU1VSUk9HQVRFX0JMT0NLX0JJVFMpLAorCisgICAgLyoqIExlbmd0aCBv
ZiB0aGUgQk1QIHBvcnRpb24gb2YgdGhlIGluZGV4IChzdGFnZSAxKSBhcnJheS4gKi8KKyAgICBV
VFJJRV9CTVBfSU5ERVhfTEVOR1RIPTB4MTAwMDA+PlVUUklFX1NISUZUCit9OworCisvKioKKyAq
IExlbmd0aCBvZiB0aGUgaW5kZXggKHN0YWdlIDEpIGFycmF5IGJlZm9yZSBmb2xkaW5nLgorICog
TWF4aW11bSBudW1iZXIgb2YgVW5pY29kZSBjb2RlIHBvaW50cyAoMHgxMTAwMDApIHNoaWZ0ZWQg
cmlnaHQgYnkgVVRSSUVfU0hJRlQuCisgKi8KKyNkZWZpbmUgVVRSSUVfTUFYX0lOREVYX0xFTkdU
SCAoMHgxMTAwMDA+PlVUUklFX1NISUZUKQorCisvKioKKyAqIE1heGltdW0gbGVuZ3RoIG9mIHRo
ZSBydW50aW1lIGRhdGEgKHN0YWdlIDIpIGFycmF5LgorICogTGltaXRlZCBieSAxNi1iaXQgaW5k
ZXggdmFsdWVzIHRoYXQgYXJlIGxlZnQtc2hpZnRlZCBieSBVVFJJRV9JTkRFWF9TSElGVC4KKyAq
LworI2RlZmluZSBVVFJJRV9NQVhfREFUQV9MRU5HVEggKDB4MTAwMDA8PFVUUklFX0lOREVYX1NI
SUZUKQorCisvKioKKyAqIE1heGltdW0gbGVuZ3RoIG9mIHRoZSBidWlsZC10aW1lIGRhdGEgKHN0
YWdlIDIpIGFycmF5LgorICogVGhlIG1heGltdW0gbGVuZ3RoIGlzIDB4MTEwMDAwK1VUUklFX0RB
VEFfQkxPQ0tfTEVOR1RIKzB4NDAwLgorICogKE51bWJlciBvZiBVbmljb2RlIGNvZGUgcG9pbnRz
ICsgb25lIGFsbC1pbml0aWFsLXZhbHVlIGJsb2NrICsKKyAqICBwb3NzaWJsZSBkdXBsaWNhdGUg
ZW50cmllcyBmb3IgMTAyNCBsZWFkIHN1cnJvZ2F0ZXMuKQorICovCisjZGVmaW5lIFVUUklFX01B
WF9CVUlMRF9USU1FX0RBVEFfTEVOR1RIICgweDExMDAwMCtVVFJJRV9EQVRBX0JMT0NLX0xFTkdU
SCsweDQwMCkKKworLyoqCisgKiBOdW1iZXIgb2YgYnl0ZXMgZm9yIGEgZHVtbXkgdHJpZS4KKyAq
IEEgZHVtbXkgdHJpZSBpcyBhbiBlbXB0eSBydW50aW1lIHRyaWUsIHVzZWQgd2hlbiBhIHJlYWwg
ZGF0YSB0cmllIGNhbm5vdAorICogYmUgbG9hZGVkLgorICogVGhlIG51bWJlciBvZiBieXRlcyB3
b3JrcyBmb3IgTGF0aW4tMS1saW5lYXIgdHJpZXMgd2l0aCAzMi1iaXQgZGF0YQorICogKHdvcnN0
IGNhc2UpLgorICoKKyAqIENhbGN1bGF0aW9uOgorICogICBCTVAgaW5kZXggKyAxIGluZGV4IGJs
b2NrIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cyArCisgKiAgIExhdGluLTEtbGluZWFy
IGFycmF5ICsgMSBkYXRhIGJsb2NrIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cworICoK
KyAqIExhdGluLTE6IGlmKFVUUklFX1NISUZUPD04KSB7IDI1NiB9IGVsc2UgeyBpbmNsdWRlZCBp
biBmaXJzdCBkYXRhIGJsb2NrIH0KKyAqCisgKiBAc2VlIHV0cmllX3Vuc2VyaWFsaXplRHVtbXkK
KyAqLworI2RlZmluZSBVVFJJRV9EVU1NWV9TSVpFICgoVVRSSUVfQk1QX0lOREVYX0xFTkdUSCtV
VFJJRV9TVVJST0dBVEVfQkxPQ0tfQ09VTlQpKjIrKFVUUklFX1NISUZUPD04PzI1NjpVVFJJRV9E
QVRBX0JMT0NLX0xFTkdUSCkqNCtVVFJJRV9EQVRBX0JMT0NLX0xFTkdUSCo0KQorCisvKioKKyAq
IFJ1bnRpbWUgVVRyaWUgY2FsbGJhY2sgZnVuY3Rpb24uCisgKiBFeHRyYWN0IGZyb20gYSBsZWFk
IHN1cnJvZ2F0ZSdzIGRhdGEgdGhlCisgKiBpbmRleCBhcnJheSBvZmZzZXQgb2YgdGhlIGluZGV4
ZXMgZm9yIHRoYXQgbGVhZCBzdXJyb2dhdGUuCisgKgorICogQHBhcmFtIGRhdGEgZGF0YSB2YWx1
ZSBmb3IgYSBzdXJyb2dhdGUgZnJvbSB0aGUgdHJpZSwgaW5jbHVkaW5nIHRoZSBmb2xkaW5nIG9m
ZnNldAorICogQHJldHVybiBvZmZzZXQ+PVVUUklFX0JNUF9JTkRFWF9MRU5HVEgsIG9yIDAgaWYg
dGhlcmUgaXMgbm8gZGF0YSBmb3IgdGhlIGxlYWQgc3Vycm9nYXRlCisgKi8KK3R5cGVkZWYgaW50
MzJfdCBVX0NBTExDT05WCitVVHJpZUdldEZvbGRpbmdPZmZzZXQodWludDMyX3QgZGF0YSk7CisK
Ky8qKgorICogUnVuLXRpbWUgVHJpZSBzdHJ1Y3R1cmUuCisgKgorICogRWl0aGVyIHRoZSBkYXRh
IHRhYmxlIGlzIDE2IGJpdHMgd2lkZSBhbmQgYWNjZXNzZWQgdmlhIHRoZSBpbmRleAorICogcG9p
bnRlciwgd2l0aCBlYWNoIGluZGV4IGl0ZW0gaW5jcmVhc2VkIGJ5IGluZGV4TGVuZ3RoOworICog
aW4gdGhpcyBjYXNlLCBkYXRhMzI9PU5VTEwuCisgKgorICogT3IgdGhlIGRhdGEgdGFibGUgaXMg
MzIgYml0cyB3aWRlIGFuZCBhY2Nlc3NlZCB2aWEgdGhlIGRhdGEzMiBwb2ludGVyLgorICovCitz
dHJ1Y3QgVVRyaWUgeworICAgIGNvbnN0IHVpbnQxNl90ICppbmRleDsKKyAgICBjb25zdCB1aW50
MzJfdCAqZGF0YTMyOyAvKiBOVUxMIGlmIDE2YiBkYXRhIGlzIHVzZWQgdmlhIGluZGV4ICovCisK
KyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCB1c2VkIGluIF9GUk9NX0xFQUQs
IF9GUk9NX0JNUCwgYW5kIF9GUk9NX09GRlNFVF9UUkFJTCBtYWNyb3MuCisgICAgICogSWYgY29u
dmVuaWVuY2UgbWFjcm9zIGxpa2UgX0dFVDE2IG9yIF9ORVhUMzIgYXJlIHVzZWQsIHRoaXMgZnVu
Y3Rpb24gbXVzdCBiZSBzZXQuCisgICAgICoKKyAgICAgKiB1dHJpZV91bnNlcmlhbGl6ZSgpIHNl
dHMgYSBkZWZhdWx0IGZ1bmN0aW9uIHdoaWNoIHNpbXBseSByZXR1cm5zCisgICAgICogdGhlIGxl
YWQgc3Vycm9nYXRlJ3MgdmFsdWUgaXRzZWxmIC0gd2hpY2ggaXMgdGhlIGludmVyc2Ugb2YgdGhl
IGRlZmF1bHQKKyAgICAgKiBmb2xkaW5nIGZ1bmN0aW9uIHVzZWQgYnkgdXRyaWVfc2VyaWFsaXpl
KCkuCisgICAgICoKKyAgICAgKiBAc2VlIFVUcmllR2V0Rm9sZGluZ09mZnNldAorICAgICAqLwor
ICAgIFVUcmllR2V0Rm9sZGluZ09mZnNldCAqZ2V0Rm9sZGluZ09mZnNldDsKKworICAgIGludDMy
X3QgaW5kZXhMZW5ndGgsIGRhdGFMZW5ndGg7CisgICAgdWludDMyX3QgaW5pdGlhbFZhbHVlOwor
ICAgIFVCb29sIGlzTGF0aW4xTGluZWFyOworfTsKKworI2lmbmRlZiBfX1VUUklFMl9IX18KK3R5
cGVkZWYgc3RydWN0IFVUcmllIFVUcmllOworI2VuZGlmCisKKy8qKiBJbnRlcm5hbCB0cmllIGdl
dHRlciBmcm9tIGFuIG9mZnNldCAoMCBpZiBjMTYgaXMgYSBCTVAvbGVhZCB1bml0cykgYW5kIGEg
MTYtYml0IHVuaXQgKi8KKyNkZWZpbmUgX1VUUklFX0dFVF9SQVcodHJpZSwgZGF0YSwgb2Zmc2V0
LCBjMTYpIFwKKyAgICAodHJpZSktPmRhdGFbIFwKKyAgICAgICAgKChpbnQzMl90KSgodHJpZSkt
PmluZGV4WyhvZmZzZXQpKygoYzE2KT4+VVRSSUVfU0hJRlQpXSk8PFVUUklFX0lOREVYX1NISUZU
KSsgXAorICAgICAgICAoKGMxNikmVVRSSUVfTUFTSykgXAorICAgIF0KKworLyoqIEludGVybmFs
IHRyaWUgZ2V0dGVyIGZyb20gYSBwYWlyIG9mIHN1cnJvZ2F0ZXMgKi8KKyNkZWZpbmUgX1VUUklF
X0dFVF9GUk9NX1BBSVIodHJpZSwgZGF0YSwgYywgYzIsIHJlc3VsdCwgcmVzdWx0VHlwZSkgeyBc
CisgICAgaW50MzJfdCBfX29mZnNldDsgXAorXAorICAgIC8qIGdldCBkYXRhIGZvciBsZWFkIHN1
cnJvZ2F0ZSAqLyBcCisgICAgKHJlc3VsdCk9X1VUUklFX0dFVF9SQVcoKHRyaWUpLCBkYXRhLCAw
LCAoYykpOyBcCisgICAgX19vZmZzZXQ9KHRyaWUpLT5nZXRGb2xkaW5nT2Zmc2V0KHJlc3VsdCk7
IFwKK1wKKyAgICAvKiBnZXQgdGhlIHJlYWwgZGF0YSBmcm9tIHRoZSBmb2xkZWQgbGVhZC90cmFp
bCB1bml0cyAqLyBcCisgICAgaWYoX19vZmZzZXQ+MCkgeyBcCisgICAgICAgIChyZXN1bHQpPV9V
VFJJRV9HRVRfUkFXKCh0cmllKSwgZGF0YSwgX19vZmZzZXQsIChjMikmMHgzZmYpOyBcCisgICAg
fSBlbHNlIHsgXAorICAgICAgICAocmVzdWx0KT0ocmVzdWx0VHlwZSkoKHRyaWUpLT5pbml0aWFs
VmFsdWUpOyBcCisgICAgfSBcCit9CisKKy8qKiBJbnRlcm5hbCB0cmllIGdldHRlciBmcm9tIGEg
Qk1QIGNvZGUgcG9pbnQsIHRyZWF0aW5nIGEgbGVhZCBzdXJyb2dhdGUgYXMgYSBub3JtYWwgY29k
ZSBwb2ludCAqLworI2RlZmluZSBfVVRSSUVfR0VUX0ZST01fQk1QKHRyaWUsIGRhdGEsIGMxNikg
XAorICAgIF9VVFJJRV9HRVRfUkFXKHRyaWUsIGRhdGEsIDB4ZDgwMDw9KGMxNikgJiYgKGMxNik8
PTB4ZGJmZiA/IFVUUklFX0xFQURfSU5ERVhfRElTUCA6IDAsIGMxNik7CisKKy8qKgorICogSW50
ZXJuYWwgdHJpZSBnZXR0ZXIgZnJvbSBhIGNvZGUgcG9pbnQuCisgKiBDb3VsZCBiZSBmYXN0ZXIo
PykgYnV0IGxvbmdlciB3aXRoCisgKiAgIGlmKChjMzIpPD0weGQ3ZmYpIHsgKHJlc3VsdCk9X1VU
UklFX0dFVF9SQVcodHJpZSwgZGF0YSwgMCwgYzMyKTsgfQorICovCisjZGVmaW5lIF9VVFJJRV9H
RVQodHJpZSwgZGF0YSwgYzMyLCByZXN1bHQsIHJlc3VsdFR5cGUpIFwKKyAgICBpZigodWludDMy
X3QpKGMzMik8PTB4ZmZmZikgeyBcCisgICAgICAgIC8qIEJNUCBjb2RlIHBvaW50cyAqLyBcCisg
ICAgICAgIChyZXN1bHQpPV9VVFJJRV9HRVRfRlJPTV9CTVAodHJpZSwgZGF0YSwgYzMyKTsgXAor
ICAgIH0gZWxzZSBpZigodWludDMyX3QpKGMzMik8PTB4MTBmZmZmKSB7IFwKKyAgICAgICAgLyog
c3VwcGxlbWVudGFyeSBjb2RlIHBvaW50ICovIFwKKyAgICAgICAgVUNoYXIgX19sZWFkMTY9VTE2
X0xFQUQoYzMyKTsgXAorICAgICAgICBfVVRSSUVfR0VUX0ZST01fUEFJUih0cmllLCBkYXRhLCBf
X2xlYWQxNiwgYzMyLCByZXN1bHQsIHJlc3VsdFR5cGUpOyBcCisgICAgfSBlbHNlIHsgXAorICAg
ICAgICAvKiBvdXQgb2YgcmFuZ2UgKi8gXAorICAgICAgICAocmVzdWx0KT0ocmVzdWx0VHlwZSko
KHRyaWUpLT5pbml0aWFsVmFsdWUpOyBcCisgICAgfQorCisvKiogSW50ZXJuYWwgbmV4dC1wb3N0
LWluY3JlbWVudDogZ2V0IHRoZSBuZXh0IGNvZGUgcG9pbnQgKGMsIGMyKSBhbmQgaXRzIGRhdGEg
Ki8KKyNkZWZpbmUgX1VUUklFX05FWFQodHJpZSwgZGF0YSwgc3JjLCBsaW1pdCwgYywgYzIsIHJl
c3VsdCwgcmVzdWx0VHlwZSkgeyBcCisgICAgKGMpPSooc3JjKSsrOyBcCisgICAgaWYoIVUxNl9J
U19MRUFEKGMpKSB7IFwKKyAgICAgICAgKGMyKT0wOyBcCisgICAgICAgIChyZXN1bHQpPV9VVFJJ
RV9HRVRfUkFXKCh0cmllKSwgZGF0YSwgMCwgKGMpKTsgXAorICAgIH0gZWxzZSBpZigoc3JjKSE9
KGxpbWl0KSAmJiBVMTZfSVNfVFJBSUwoKGMyKT0qKHNyYykpKSB7IFwKKyAgICAgICAgKysoc3Jj
KTsgXAorICAgICAgICBfVVRSSUVfR0VUX0ZST01fUEFJUigodHJpZSksIGRhdGEsIChjKSwgKGMy
KSwgKHJlc3VsdCksIHJlc3VsdFR5cGUpOyBcCisgICAgfSBlbHNlIHsgXAorICAgICAgICAvKiB1
bnBhaXJlZCBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50ICovIFwKKyAgICAgICAgKGMyKT0wOyBc
CisgICAgICAgIChyZXN1bHQpPV9VVFJJRV9HRVRfUkFXKCh0cmllKSwgZGF0YSwgVVRSSUVfTEVB
RF9JTkRFWF9ESVNQLCAoYykpOyBcCisgICAgfSBcCit9CisKKy8qKiBJbnRlcm5hbCBwcmV2aW91
czogZ2V0IHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IChjLCBjMikgYW5kIGl0cyBkYXRhICovCisj
ZGVmaW5lIF9VVFJJRV9QUkVWSU9VUyh0cmllLCBkYXRhLCBzdGFydCwgc3JjLCBjLCBjMiwgcmVz
dWx0LCByZXN1bHRUeXBlKSB7IFwKKyAgICAoYyk9Ki0tKHNyYyk7IFwKKyAgICBpZighVTE2X0lT
X1NVUlJPR0FURShjKSkgeyBcCisgICAgICAgIChjMik9MDsgXAorICAgICAgICAocmVzdWx0KT1f
VVRSSUVfR0VUX1JBVygodHJpZSksIGRhdGEsIDAsIChjKSk7IFwKKyAgICB9IGVsc2UgaWYoIVUx
Nl9JU19TVVJST0dBVEVfTEVBRChjKSkgeyBcCisgICAgICAgIC8qIHRyYWlsIHN1cnJvZ2F0ZSAq
LyBcCisgICAgICAgIGlmKChzdGFydCkhPShzcmMpICYmIFUxNl9JU19MRUFEKChjMik9Kigoc3Jj
KS0xKSkpIHsgXAorICAgICAgICAgICAgLS0oc3JjKTsgXAorICAgICAgICAgICAgKHJlc3VsdCk9
KGMpOyAoYyk9KGMyKTsgKGMyKT0oVUNoYXIpKHJlc3VsdCk7IC8qIHN3YXAgYywgYzIgKi8gXAor
ICAgICAgICAgICAgX1VUUklFX0dFVF9GUk9NX1BBSVIoKHRyaWUpLCBkYXRhLCAoYyksIChjMiks
IChyZXN1bHQpLCByZXN1bHRUeXBlKTsgXAorICAgICAgICB9IGVsc2UgeyBcCisgICAgICAgICAg
ICAvKiB1bnBhaXJlZCB0cmFpbCBzdXJyb2dhdGUgY29kZSBwb2ludCAqLyBcCisgICAgICAgICAg
ICAoYzIpPTA7IFwKKyAgICAgICAgICAgIChyZXN1bHQpPV9VVFJJRV9HRVRfUkFXKCh0cmllKSwg
ZGF0YSwgMCwgKGMpKTsgXAorICAgICAgICB9IFwKKyAgICB9IGVsc2UgeyBcCisgICAgICAgIC8q
IHVucGFpcmVkIGxlYWQgc3Vycm9nYXRlIGNvZGUgcG9pbnQgKi8gXAorICAgICAgICAoYzIpPTA7
IFwKKyAgICAgICAgKHJlc3VsdCk9X1VUUklFX0dFVF9SQVcoKHRyaWUpLCBkYXRhLCBVVFJJRV9M
RUFEX0lOREVYX0RJU1AsIChjKSk7IFwKKyAgICB9IFwKK30KKworLyogUHVibGljIFVUcmllIEFQ
SSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0qLworCisvKioKKyAqIEdldCBhIHBvaW50ZXIgdG8gdGhlIGNvbnRpZ3VvdXMgcGFydCBvZiB0
aGUgZGF0YSBhcnJheQorICogZm9yIHRoZSBMYXRpbi0xIHJhbmdlIChVKzAwMDAuLlUrMDBmZiku
CisgKiBNdXN0IGJlIHVzZWQgb25seSBpZiB0aGUgTGF0aW4tMSByYW5nZSBpcyBpbiBmYWN0IGxp
bmVhcgorICogKHRyaWUtPmlzTGF0aW4xTGluZWFyKS4KKyAqCisgKiBAcGFyYW0gdHJpZSAoY29u
c3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQor
ICogQHJldHVybiAoY29uc3QgdWludDE2X3QgKikgcG9pbnRlciB0byB2YWx1ZXMgZm9yIExhdGlu
LTEgY29kZSBwb2ludHMKKyAqLworI2RlZmluZSBVVFJJRV9HRVQxNl9MQVRJTjEodHJpZSkgKCh0
cmllKS0+aW5kZXgrKHRyaWUpLT5pbmRleExlbmd0aCtVVFJJRV9EQVRBX0JMT0NLX0xFTkdUSCkK
KworLyoqCisgKiBHZXQgYSBwb2ludGVyIHRvIHRoZSBjb250aWd1b3VzIHBhcnQgb2YgdGhlIGRh
dGEgYXJyYXkKKyAqIGZvciB0aGUgTGF0aW4tMSByYW5nZSAoVSswMDAwLi5VKzAwZmYpLgorICog
TXVzdCBiZSB1c2VkIG9ubHkgaWYgdGhlIExhdGluLTEgcmFuZ2UgaXMgaW4gZmFjdCBsaW5lYXIK
KyAqICh0cmllLT5pc0xhdGluMUxpbmVhcikuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVU
cmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBy
ZXR1cm4gKGNvbnN0IHVpbnQzMl90ICopIHBvaW50ZXIgdG8gdmFsdWVzIGZvciBMYXRpbi0xIGNv
ZGUgcG9pbnRzCisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMzJfTEFUSU4xKHRyaWUpICgodHJpZSkt
PmRhdGEzMitVVFJJRV9EQVRBX0JMT0NLX0xFTkdUSCkKKworLyoqCisgKiBHZXQgYSAxNi1iaXQg
dHJpZSB2YWx1ZSBmcm9tIGEgQk1QIGNvZGUgcG9pbnQgKFVDaGFyLCA8PVUrZmZmZikuCisgKiBj
MTYgbWF5IGJlIGEgbGVhZCBzdXJyb2dhdGUsIHdoaWNoIG1heSBoYXZlIGEgdmFsdWUgaW5jbHVk
aW5nIGEgZm9sZGluZyBvZmZzZXQuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICos
IGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBj
MTYgKFVDaGFyLCBpbikgdGhlIGlucHV0IEJNUCBjb2RlIHBvaW50CisgKiBAcmV0dXJuICh1aW50
MTZfdCkgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMTZfRlJPTV9M
RUFEKHRyaWUsIGMxNikgX1VUUklFX0dFVF9SQVcodHJpZSwgaW5kZXgsIDAsIGMxNikKKworLyoq
CisgKiBHZXQgYSAzMi1iaXQgdHJpZSB2YWx1ZSBmcm9tIGEgQk1QIGNvZGUgcG9pbnQgKFVDaGFy
LCA8PVUrZmZmZikuCisgKiBjMTYgbWF5IGJlIGEgbGVhZCBzdXJyb2dhdGUsIHdoaWNoIG1heSBo
YXZlIGEgdmFsdWUgaW5jbHVkaW5nIGEgZm9sZGluZyBvZmZzZXQuCisgKgorICogQHBhcmFtIHRy
aWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1
Y3R1cmUKKyAqIEBwYXJhbSBjMTYgKFVDaGFyLCBpbikgdGhlIGlucHV0IEJNUCBjb2RlIHBvaW50
CisgKiBAcmV0dXJuICh1aW50MzJfdCkgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUg
VVRSSUVfR0VUMzJfRlJPTV9MRUFEKHRyaWUsIGMxNikgX1VUUklFX0dFVF9SQVcodHJpZSwgZGF0
YTMyLCAwLCBjMTYpCisKKy8qKgorICogR2V0IGEgMTYtYml0IHRyaWUgdmFsdWUgZnJvbSBhIEJN
UCBjb2RlIHBvaW50IChVQ2hhciwgPD1VK2ZmZmYpLgorICogRXZlbiBsZWFkIHN1cnJvZ2F0ZSBj
b2RlIHBvaW50cyBhcmUgdHJlYXRlZCBhcyBub3JtYWwgY29kZSBwb2ludHMsCisgKiB3aXRoIHVu
Zm9sZGVkIHZhbHVlcyB0aGF0IG1heSBkaWZmZXIgZnJvbSBfRlJPTV9MRUFEKCkgbWFjcm8gcmVz
dWx0cyBmb3IgdGhlbS4KKyAqCisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwgaW4pIGEg
cG9pbnRlciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIGMxNiAoVUNo
YXIsIGluKSB0aGUgaW5wdXQgQk1QIGNvZGUgcG9pbnQKKyAqIEByZXR1cm4gKHVpbnQxNl90KSB0
cmllIGxvb2t1cCByZXN1bHQKKyAqLworI2RlZmluZSBVVFJJRV9HRVQxNl9GUk9NX0JNUCh0cmll
LCBjMTYpIF9VVFJJRV9HRVRfRlJPTV9CTVAodHJpZSwgaW5kZXgsIGMxNikKKworLyoqCisgKiBH
ZXQgYSAzMi1iaXQgdHJpZSB2YWx1ZSBmcm9tIGEgQk1QIGNvZGUgcG9pbnQgKFVDaGFyLCA8PVUr
ZmZmZikuCisgKiBFdmVuIGxlYWQgc3Vycm9nYXRlIGNvZGUgcG9pbnRzIGFyZSB0cmVhdGVkIGFz
IG5vcm1hbCBjb2RlIHBvaW50cywKKyAqIHdpdGggdW5mb2xkZWQgdmFsdWVzIHRoYXQgbWF5IGRp
ZmZlciBmcm9tIF9GUk9NX0xFQUQoKSBtYWNybyByZXN1bHRzIGZvciB0aGVtLgorICoKKyAqIEBw
YXJhbSB0cmllIChjb25zdCBVVHJpZSAqLCBpbikgYSBwb2ludGVyIHRvIHRoZSBydW50aW1lIHRy
aWUgc3RydWN0dXJlCisgKiBAcGFyYW0gYzE2IChVQ2hhciwgaW4pIHRoZSBpbnB1dCBCTVAgY29k
ZSBwb2ludAorICogQHJldHVybiAodWludDMyX3QpIHRyaWUgbG9va3VwIHJlc3VsdAorICovCisj
ZGVmaW5lIFVUUklFX0dFVDMyX0ZST01fQk1QKHRyaWUsIGMxNikgX1VUUklFX0dFVF9GUk9NX0JN
UCh0cmllLCBkYXRhMzIsIGMxNikKKworLyoqCisgKiBHZXQgYSAxNi1iaXQgdHJpZSB2YWx1ZSBm
cm9tIGEgY29kZSBwb2ludC4KKyAqIEV2ZW4gbGVhZCBzdXJyb2dhdGUgY29kZSBwb2ludHMgYXJl
IHRyZWF0ZWQgYXMgbm9ybWFsIGNvZGUgcG9pbnRzLAorICogd2l0aCB1bmZvbGRlZCB2YWx1ZXMg
dGhhdCBtYXkgZGlmZmVyIGZyb20gX0ZST01fTEVBRCgpIG1hY3JvIHJlc3VsdHMgZm9yIHRoZW0u
CisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhl
IHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBjMzIgKFVDaGFyMzIsIGluKSB0aGUg
aW5wdXQgY29kZSBwb2ludAorICogQHBhcmFtIHJlc3VsdCAodWludDE2X3QsIG91dCkgdWludDE2
X3QgdmFyaWFibGUgZm9yIHRoZSB0cmllIGxvb2t1cCByZXN1bHQKKyAqLworI2RlZmluZSBVVFJJ
RV9HRVQxNih0cmllLCBjMzIsIHJlc3VsdCkgX1VUUklFX0dFVCh0cmllLCBpbmRleCwgYzMyLCBy
ZXN1bHQsIHVpbnQxNl90KQorCisvKioKKyAqIEdldCBhIDMyLWJpdCB0cmllIHZhbHVlIGZyb20g
YSBjb2RlIHBvaW50LgorICogRXZlbiBsZWFkIHN1cnJvZ2F0ZSBjb2RlIHBvaW50cyBhcmUgdHJl
YXRlZCBhcyBub3JtYWwgY29kZSBwb2ludHMsCisgKiB3aXRoIHVuZm9sZGVkIHZhbHVlcyB0aGF0
IG1heSBkaWZmZXIgZnJvbSBfRlJPTV9MRUFEKCkgbWFjcm8gcmVzdWx0cyBmb3IgdGhlbS4KKyAq
CisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRlciB0byB0aGUgcnVu
dGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIGMzMiAoVUNoYXIzMiwgaW4pIHRoZSBpbnB1
dCBjb2RlIHBvaW50CisgKiBAcGFyYW0gcmVzdWx0ICh1aW50MzJfdCwgb3V0KSB1aW50MzJfdCB2
YXJpYWJsZSBmb3IgdGhlIHRyaWUgbG9va3VwIHJlc3VsdAorICovCisjZGVmaW5lIFVUUklFX0dF
VDMyKHRyaWUsIGMzMiwgcmVzdWx0KSBfVVRSSUVfR0VUKHRyaWUsIGRhdGEzMiwgYzMyLCByZXN1
bHQsIHVpbnQzMl90KQorCisvKioKKyAqIEdldCB0aGUgbmV4dCBjb2RlIHBvaW50IChjLCBjMiks
IHBvc3QtaW5jcmVtZW50IHNyYywKKyAqIGFuZCBnZXQgYSAxNi1iaXQgdmFsdWUgZnJvbSB0aGUg
dHJpZS4KKyAqCisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRlciB0
byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIHNyYyAoY29uc3QgVUNoYXIg
KiwgaW4vb3V0KSB0aGUgc291cmNlIHRleHQgcG9pbnRlcgorICogQHBhcmFtIGxpbWl0IChjb25z
dCBVQ2hhciAqLCBpbikgdGhlIGxpbWl0IHBvaW50ZXIgZm9yIHRoZSB0ZXh0LCBvciBOVUxMCisg
KiBAcGFyYW0gYyAoVUNoYXIsIG91dCkgdmFyaWFibGUgZm9yIHRoZSBCTVAgb3IgbGVhZCBjb2Rl
IHVuaXQKKyAqIEBwYXJhbSBjMiAoVUNoYXIsIG91dCkgdmFyaWFibGUgZm9yIDAgb3IgdGhlIHRy
YWlsIGNvZGUgdW5pdAorICogQHBhcmFtIHJlc3VsdCAodWludDE2X3QsIG91dCkgdWludDE2X3Qg
dmFyaWFibGUgZm9yIHRoZSB0cmllIGxvb2t1cCByZXN1bHQKKyAqLworI2RlZmluZSBVVFJJRV9O
RVhUMTYodHJpZSwgc3JjLCBsaW1pdCwgYywgYzIsIHJlc3VsdCkgX1VUUklFX05FWFQodHJpZSwg
aW5kZXgsIHNyYywgbGltaXQsIGMsIGMyLCByZXN1bHQsIHVpbnQxNl90KQorCisvKioKKyAqIEdl
dCB0aGUgbmV4dCBjb2RlIHBvaW50IChjLCBjMiksIHBvc3QtaW5jcmVtZW50IHNyYywKKyAqIGFu
ZCBnZXQgYSAzMi1iaXQgdmFsdWUgZnJvbSB0aGUgdHJpZS4KKyAqCisgKiBAcGFyYW0gdHJpZSAo
Y29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0cmllIHN0cnVjdHVy
ZQorICogQHBhcmFtIHNyYyAoY29uc3QgVUNoYXIgKiwgaW4vb3V0KSB0aGUgc291cmNlIHRleHQg
cG9pbnRlcgorICogQHBhcmFtIGxpbWl0IChjb25zdCBVQ2hhciAqLCBpbikgdGhlIGxpbWl0IHBv
aW50ZXIgZm9yIHRoZSB0ZXh0LCBvciBOVUxMCisgKiBAcGFyYW0gYyAoVUNoYXIsIG91dCkgdmFy
aWFibGUgZm9yIHRoZSBCTVAgb3IgbGVhZCBjb2RlIHVuaXQKKyAqIEBwYXJhbSBjMiAoVUNoYXIs
IG91dCkgdmFyaWFibGUgZm9yIDAgb3IgdGhlIHRyYWlsIGNvZGUgdW5pdAorICogQHBhcmFtIHJl
c3VsdCAodWludDMyX3QsIG91dCkgdWludDMyX3QgdmFyaWFibGUgZm9yIHRoZSB0cmllIGxvb2t1
cCByZXN1bHQKKyAqLworI2RlZmluZSBVVFJJRV9ORVhUMzIodHJpZSwgc3JjLCBsaW1pdCwgYywg
YzIsIHJlc3VsdCkgX1VUUklFX05FWFQodHJpZSwgZGF0YTMyLCBzcmMsIGxpbWl0LCBjLCBjMiwg
cmVzdWx0LCB1aW50MzJfdCkKKworLyoqCisgKiBHZXQgdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQg
KGMsIGMyKSwgcHJlLWRlY3JlbWVudCBzcmMsCisgKiBhbmQgZ2V0IGEgMTYtYml0IHZhbHVlIGZy
b20gdGhlIHRyaWUuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBv
aW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBzdGFydCAoY29u
c3QgVUNoYXIgKiwgaW4pIHRoZSBzdGFydCBwb2ludGVyIGZvciB0aGUgdGV4dCwgb3IgTlVMTAor
ICogQHBhcmFtIHNyYyAoY29uc3QgVUNoYXIgKiwgaW4vb3V0KSB0aGUgc291cmNlIHRleHQgcG9p
bnRlcgorICogQHBhcmFtIGMgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciB0aGUgQk1QIG9yIGxl
YWQgY29kZSB1bml0CisgKiBAcGFyYW0gYzIgKFVDaGFyLCBvdXQpIHZhcmlhYmxlIGZvciAwIG9y
IHRoZSB0cmFpbCBjb2RlIHVuaXQKKyAqIEBwYXJhbSByZXN1bHQgKHVpbnQxNl90LCBvdXQpIHVp
bnQxNl90IHZhcmlhYmxlIGZvciB0aGUgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNkZWZpbmUg
VVRSSUVfUFJFVklPVVMxNih0cmllLCBzdGFydCwgc3JjLCBjLCBjMiwgcmVzdWx0KSBfVVRSSUVf
UFJFVklPVVModHJpZSwgaW5kZXgsIHN0YXJ0LCBzcmMsIGMsIGMyLCByZXN1bHQsIHVpbnQxNl90
KQorCisvKioKKyAqIEdldCB0aGUgcHJldmlvdXMgY29kZSBwb2ludCAoYywgYzIpLCBwcmUtZGVj
cmVtZW50IHNyYywKKyAqIGFuZCBnZXQgYSAzMi1iaXQgdmFsdWUgZnJvbSB0aGUgdHJpZS4KKyAq
CisgKiBAcGFyYW0gdHJpZSAoY29uc3QgVVRyaWUgKiwgaW4pIGEgcG9pbnRlciB0byB0aGUgcnVu
dGltZSB0cmllIHN0cnVjdHVyZQorICogQHBhcmFtIHN0YXJ0IChjb25zdCBVQ2hhciAqLCBpbikg
dGhlIHN0YXJ0IHBvaW50ZXIgZm9yIHRoZSB0ZXh0LCBvciBOVUxMCisgKiBAcGFyYW0gc3JjIChj
b25zdCBVQ2hhciAqLCBpbi9vdXQpIHRoZSBzb3VyY2UgdGV4dCBwb2ludGVyCisgKiBAcGFyYW0g
YyAoVUNoYXIsIG91dCkgdmFyaWFibGUgZm9yIHRoZSBCTVAgb3IgbGVhZCBjb2RlIHVuaXQKKyAq
IEBwYXJhbSBjMiAoVUNoYXIsIG91dCkgdmFyaWFibGUgZm9yIDAgb3IgdGhlIHRyYWlsIGNvZGUg
dW5pdAorICogQHBhcmFtIHJlc3VsdCAodWludDMyX3QsIG91dCkgdWludDMyX3QgdmFyaWFibGUg
Zm9yIHRoZSB0cmllIGxvb2t1cCByZXN1bHQKKyAqLworI2RlZmluZSBVVFJJRV9QUkVWSU9VUzMy
KHRyaWUsIHN0YXJ0LCBzcmMsIGMsIGMyLCByZXN1bHQpIF9VVFJJRV9QUkVWSU9VUyh0cmllLCBk
YXRhMzIsIHN0YXJ0LCBzcmMsIGMsIGMyLCByZXN1bHQsIHVpbnQzMl90KQorCisvKioKKyAqIEdl
dCBhIDE2LWJpdCB0cmllIHZhbHVlIGZyb20gYSBwYWlyIG9mIHN1cnJvZ2F0ZXMuCisgKgorICog
QHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUg
dHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBjIChVQ2hhciwgaW4pIGEgbGVhZCBzdXJyb2dhdGUK
KyAqIEBwYXJhbSBjMiAoVUNoYXIsIGluKSBhIHRyYWlsIHN1cnJvZ2F0ZQorICogQHBhcmFtIHJl
c3VsdCAodWludDE2X3QsIG91dCkgdWludDE2X3QgdmFyaWFibGUgZm9yIHRoZSB0cmllIGxvb2t1
cCByZXN1bHQKKyAqLworI2RlZmluZSBVVFJJRV9HRVQxNl9GUk9NX1BBSVIodHJpZSwgYywgYzIs
IHJlc3VsdCkgX1VUUklFX0dFVF9GUk9NX1BBSVIodHJpZSwgaW5kZXgsIGMsIGMyLCByZXN1bHQs
IHVpbnQxNl90KQorCisvKioKKyAqIEdldCBhIDMyLWJpdCB0cmllIHZhbHVlIGZyb20gYSBwYWly
IG9mIHN1cnJvZ2F0ZXMuCisgKgorICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBh
IHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBjIChVQ2hh
ciwgaW4pIGEgbGVhZCBzdXJyb2dhdGUKKyAqIEBwYXJhbSBjMiAoVUNoYXIsIGluKSBhIHRyYWls
IHN1cnJvZ2F0ZQorICogQHBhcmFtIHJlc3VsdCAodWludDMyX3QsIG91dCkgdWludDMyX3QgdmFy
aWFibGUgZm9yIHRoZSB0cmllIGxvb2t1cCByZXN1bHQKKyAqLworI2RlZmluZSBVVFJJRV9HRVQz
Ml9GUk9NX1BBSVIodHJpZSwgYywgYzIsIHJlc3VsdCkgX1VUUklFX0dFVF9GUk9NX1BBSVIodHJp
ZSwgZGF0YTMyLCBjLCBjMiwgcmVzdWx0LCB1aW50MzJfdCkKKworLyoqCisgKiBHZXQgYSAxNi1i
aXQgdHJpZSB2YWx1ZSBmcm9tIGEgZm9sZGluZyBvZmZzZXQgKGZyb20gdGhlIHZhbHVlIG9mIGEg
bGVhZCBzdXJyb2dhdGUpCisgKiBhbmQgYSB0cmFpbCBzdXJyb2dhdGUuCisgKgorICogQHBhcmFt
IHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUgdHJpZSBz
dHJ1Y3R1cmUKKyAqIEBwYXJhbSBvZmZzZXQgKGludDMyX3QsIGluKSB0aGUgZm9sZGluZyBvZmZz
ZXQgZnJvbSB0aGUgdmFsdWUgb2YgYSBsZWFkIHN1cnJvZ2F0ZQorICogQHBhcmFtIGMyIChVQ2hh
ciwgaW4pIGEgdHJhaWwgc3Vycm9nYXRlIChvbmx5IHRoZSAxMCBsb3cgYml0cyBhcmUgc2lnbmlm
aWNhbnQpCisgKiBAcmV0dXJuICh1aW50MTZfdCkgdHJpZSBsb29rdXAgcmVzdWx0CisgKi8KKyNk
ZWZpbmUgVVRSSUVfR0VUMTZfRlJPTV9PRkZTRVRfVFJBSUwodHJpZSwgb2Zmc2V0LCBjMikgX1VU
UklFX0dFVF9SQVcodHJpZSwgaW5kZXgsIG9mZnNldCwgKGMyKSYweDNmZikKKworLyoqCisgKiBH
ZXQgYSAzMi1iaXQgdHJpZSB2YWx1ZSBmcm9tIGEgZm9sZGluZyBvZmZzZXQgKGZyb20gdGhlIHZh
bHVlIG9mIGEgbGVhZCBzdXJyb2dhdGUpCisgKiBhbmQgYSB0cmFpbCBzdXJyb2dhdGUuCisgKgor
ICogQHBhcmFtIHRyaWUgKGNvbnN0IFVUcmllICosIGluKSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRp
bWUgdHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBvZmZzZXQgKGludDMyX3QsIGluKSB0aGUgZm9s
ZGluZyBvZmZzZXQgZnJvbSB0aGUgdmFsdWUgb2YgYSBsZWFkIHN1cnJvZ2F0ZQorICogQHBhcmFt
IGMyIChVQ2hhciwgaW4pIGEgdHJhaWwgc3Vycm9nYXRlIChvbmx5IHRoZSAxMCBsb3cgYml0cyBh
cmUgc2lnbmlmaWNhbnQpCisgKiBAcmV0dXJuICh1aW50MzJfdCkgdHJpZSBsb29rdXAgcmVzdWx0
CisgKi8KKyNkZWZpbmUgVVRSSUVfR0VUMzJfRlJPTV9PRkZTRVRfVFJBSUwodHJpZSwgb2Zmc2V0
LCBjMikgX1VUUklFX0dFVF9SQVcodHJpZSwgZGF0YTMyLCBvZmZzZXQsIChjMikmMHgzZmYpCisK
Ky8qIGVudW1lcmF0aW9uIGNhbGxiYWNrIHR5cGVzICovCisKKy8qKgorICogQ2FsbGJhY2sgZnJv
bSB1dHJpZV9lbnVtKCksIGV4dHJhY3RzIGEgdWludDMyX3QgdmFsdWUgZnJvbSBhCisgKiB0cmll
IHZhbHVlLiBUaGlzIHZhbHVlIHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBVVHJpZUVudW1SYW5n
ZSBmdW5jdGlvbi4KKyAqCisgKiBAcGFyYW0gY29udGV4dCBhbiBvcGFxdWUgcG9pbnRlciwgYXMg
cGFzc2VkIGludG8gdXRyaWVfZW51bSgpCisgKiBAcGFyYW0gdmFsdWUgYSB2YWx1ZSBmcm9tIHRo
ZSB0cmllCisgKiBAcmV0dXJuIHRoZSB2YWx1ZSB0aGF0IGlzIHRvIGJlIHBhc3NlZCBvbiB0byB0
aGUgVVRyaWVFbnVtUmFuZ2UgZnVuY3Rpb24KKyAqLwordHlwZWRlZiB1aW50MzJfdCBVX0NBTExD
T05WCitVVHJpZUVudW1WYWx1ZShjb25zdCB2b2lkICpjb250ZXh0LCB1aW50MzJfdCB2YWx1ZSk7
CisKKy8qKgorICogQ2FsbGJhY2sgZnJvbSB1dHJpZV9lbnVtKCksIGlzIGNhbGxlZCBmb3IgZWFj
aCBjb250aWd1b3VzIHJhbmdlCisgKiBvZiBjb2RlIHBvaW50cyB3aXRoIHRoZSBzYW1lIHZhbHVl
IGFzIHJldHJpZXZlZCBmcm9tIHRoZSB0cmllIGFuZAorICogdHJhbnNmb3JtZWQgYnkgdGhlIFVU
cmllRW51bVZhbHVlIGZ1bmN0aW9uLgorICoKKyAqIFRoZSBjYWxsYmFjayBmdW5jdGlvbiBjYW4g
c3RvcCB0aGUgZW51bWVyYXRpb24gYnkgcmV0dXJuaW5nIEZBTFNFLgorICoKKyAqIEBwYXJhbSBj
b250ZXh0IGFuIG9wYXF1ZSBwb2ludGVyLCBhcyBwYXNzZWQgaW50byB1dHJpZV9lbnVtKCkKKyAq
IEBwYXJhbSBzdGFydCB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBhIGNvbnRpZ3VvdXMgcmFuZ2Ug
d2l0aCB2YWx1ZQorICogQHBhcmFtIGxpbWl0IG9uZSBwYXN0IHRoZSBsYXN0IGNvZGUgcG9pbnQg
aW4gYSBjb250aWd1b3VzIHJhbmdlIHdpdGggdmFsdWUKKyAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFs
dWUgdGhhdCBpcyBzZXQgZm9yIGFsbCBjb2RlIHBvaW50cyBpbiBbc3RhcnQuLmxpbWl0WworICog
QHJldHVybiBGQUxTRSB0byBzdG9wIHRoZSBlbnVtZXJhdGlvbgorICovCit0eXBlZGVmIFVCb29s
IFVfQ0FMTENPTlYKK1VUcmllRW51bVJhbmdlKGNvbnN0IHZvaWQgKmNvbnRleHQsIFVDaGFyMzIg
c3RhcnQsIFVDaGFyMzIgbGltaXQsIHVpbnQzMl90IHZhbHVlKTsKKworLyoqCisgKiBFbnVtZXJh
dGUgZWZmaWNpZW50bHkgYWxsIHZhbHVlcyBpbiBhIHRyaWUuCisgKiBGb3IgZWFjaCBlbnRyeSBp
biB0aGUgdHJpZSwgdGhlIHZhbHVlIHRvIGJlIGRlbGl2ZXJlZCBpcyBwYXNzZWQgdGhyb3VnaAor
ICogdGhlIFVUcmllRW51bVZhbHVlIGZ1bmN0aW9uLgorICogVGhlIHZhbHVlIGlzIHVuY2hhbmdl
ZCBpZiB0aGF0IGZ1bmN0aW9uIHBvaW50ZXIgaXMgTlVMTC4KKyAqCisgKiBGb3IgZWFjaCBjb250
aWd1b3VzIHJhbmdlIG9mIGNvZGUgcG9pbnRzIHdpdGggYSBnaXZlbiB2YWx1ZSwKKyAqIHRoZSBV
VHJpZUVudW1SYW5nZSBmdW5jdGlvbiBpcyBjYWxsZWQuCisgKgorICogQHBhcmFtIHRyaWUgYSBw
b2ludGVyIHRvIHRoZSBydW50aW1lIHRyaWUgc3RydWN0dXJlCisgKiBAcGFyYW0gZW51bVZhbHVl
IGEgcG9pbnRlciB0byBhIGZ1bmN0aW9uIHRoYXQgbWF5IHRyYW5zZm9ybSB0aGUgdHJpZSBlbnRy
eSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgb3IgTlVMTCBpZiB0aGUgdmFsdWVzIGZyb20g
dGhlIHRyaWUgYXJlIHRvIGJlIHVzZWQgZGlyZWN0bHkKKyAqIEBwYXJhbSBlbnVtUmFuZ2UgYSBw
b2ludGVyIHRvIGEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgZm9yIGVhY2ggY29udGlndW91cyBy
YW5nZQorICogICAgICAgICAgICAgICAgICBvZiBjb2RlIHBvaW50cyB3aXRoIHRoZSBzYW1lIHZh
bHVlCisgKiBAcGFyYW0gY29udGV4dCBhbiBvcGFxdWUgcG9pbnRlciB0aGF0IGlzIHBhc3NlZCBv
biB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb25zCisgKi8KK1VfQ0FQSSB2b2lkIFVfRVhQT1JUMgor
dXRyaWVfZW51bShjb25zdCBVVHJpZSAqdHJpZSwKKyAgICAgICAgICAgVVRyaWVFbnVtVmFsdWUg
KmVudW1WYWx1ZSwgVVRyaWVFbnVtUmFuZ2UgKmVudW1SYW5nZSwgY29uc3Qgdm9pZCAqY29udGV4
dCk7CisKKy8qKgorICogVW5zZXJpYWxpemUgYSB0cmllIGZyb20gMzItYml0LWFsaWduZWQgbWVt
b3J5LgorICogSW52ZXJzZSBvZiB1dHJpZV9zZXJpYWxpemUoKS4KKyAqIEZpbGxzIHRoZSBVVHJp
ZSBydW50aW1lIHRyaWUgc3RydWN0dXJlIHdpdGggdGhlIHNldHRpbmdzIGZvciB0aGUgdHJpZSBk
YXRhLgorICoKKyAqIEBwYXJhbSB0cmllIGEgcG9pbnRlciB0byB0aGUgcnVudGltZSB0cmllIHN0
cnVjdHVyZQorICogQHBhcmFtIGRhdGEgYSBwb2ludGVyIHRvIDMyLWJpdC1hbGlnbmVkIG1lbW9y
eSBjb250YWluaW5nIHRyaWUgZGF0YQorICogQHBhcmFtIGxlbmd0aCB0aGUgbnVtYmVyIG9mIGJ5
dGVzIGF2YWlsYWJsZSBhdCBkYXRhCisgKiBAcGFyYW0gcEVycm9yQ29kZSBhbiBpbi9vdXQgSUNV
IFVFcnJvckNvZGUKKyAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyBhdCBkYXRhIHRha2Vu
IHVwIGJ5IHRoZSB0cmllIGRhdGEKKyAqLworVV9DQVBJIGludDMyX3QgVV9FWFBPUlQyCit1dHJp
ZV91bnNlcmlhbGl6ZShVVHJpZSAqdHJpZSwgY29uc3Qgdm9pZCAqZGF0YSwgaW50MzJfdCBsZW5n
dGgsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqICJVbnNlcmlhbGl6ZSIgYSBk
dW1teSB0cmllLgorICogQSBkdW1teSB0cmllIGlzIGFuIGVtcHR5IHJ1bnRpbWUgdHJpZSwgdXNl
ZCB3aGVuIGEgcmVhbCBkYXRhIHRyaWUgY2Fubm90CisgKiBiZSBsb2FkZWQuCisgKgorICogVGhl
IGlucHV0IG1lbW9yeSBpcyBmaWxsZWQgc28gdGhhdCB0aGUgdHJpZSBhbHdheXMgcmV0dXJucyB0
aGUgaW5pdGlhbFZhbHVlLAorICogb3IgdGhlIGxlYWRVbml0VmFsdWUgZm9yIGxlYWQgc3Vycm9n
YXRlIGNvZGUgcG9pbnRzLgorICogVGhlIExhdGluLTEgcGFydCBpcyBhbHdheXMgc2V0IHVwIHRv
IGJlIGxpbmVhci4KKyAqCisgKiBAcGFyYW0gdHJpZSBhIHBvaW50ZXIgdG8gdGhlIHJ1bnRpbWUg
dHJpZSBzdHJ1Y3R1cmUKKyAqIEBwYXJhbSBkYXRhIGEgcG9pbnRlciB0byAzMi1iaXQtYWxpZ25l
ZCBtZW1vcnkgdG8gYmUgZmlsbGVkIHdpdGggdGhlIGR1bW15IHRyaWUgZGF0YQorICogQHBhcmFt
IGxlbmd0aCB0aGUgbnVtYmVyIG9mIGJ5dGVzIGF2YWlsYWJsZSBhdCBkYXRhIChyZWNvbW1lbmRl
ZCB0byB1c2UgVVRSSUVfRFVNTVlfU0laRSkKKyAqIEBwYXJhbSBpbml0aWFsVmFsdWUgdGhlIGlu
aXRpYWwgdmFsdWUgdGhhdCBpcyBzZXQgZm9yIGFsbCBjb2RlIHBvaW50cworICogQHBhcmFtIGxl
YWRVbml0VmFsdWUgdGhlIHZhbHVlIGZvciBsZWFkIHN1cnJvZ2F0ZSBjb2RlIF91bml0c18gdGhh
dCBkbyBub3QKKyAqICAgICAgICAgICAgICAgICAgICAgIGhhdmUgYXNzb2NpYXRlZCBzdXBwbGVt
ZW50YXJ5IGRhdGEKKyAqIEBwYXJhbSBwRXJyb3JDb2RlIGFuIGluL291dCBJQ1UgVUVycm9yQ29k
ZQorICoKKyAqIEBzZWUgVVRSSUVfRFVNTVlfU0laRQorICogQHNlZSB1dHJpZV9vcGVuCisgKi8K
K1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgordXRyaWVfdW5zZXJpYWxpemVEdW1teShVVHJpZSAq
dHJpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGF0YSwgaW50MzJfdCBsZW5ndGgs
CisgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGluaXRpYWxWYWx1ZSwgdWludDMyX3Qg
bGVhZFVuaXRWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgVUJvb2wgbWFrZTE2Qml0VHJp
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8q
KgorICogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3IgVVRyaWUuZ2V0Rm9sZGluZ09mZnNldCwg
c2V0IGF1dG9tYXRpY2FsbHkgYnkKKyAqIHV0cmllX3Vuc2VyaWFsaXplKCkuCisgKiBTaW1wbHkg
cmV0dXJucyB0aGUgbGVhZCBzdXJyb2dhdGUncyB2YWx1ZSBpdHNlbGYgLSB3aGljaCBpcyB0aGUg
aW52ZXJzZQorICogb2YgdGhlIGRlZmF1bHQgZm9sZGluZyBmdW5jdGlvbiB1c2VkIGJ5IHV0cmll
X3NlcmlhbGl6ZSgpLgorICogRXhwb3J0ZWQgZm9yIHN0YXRpYyBjb25zdCBVVHJpZSBzdHJ1Y3R1
cmVzLgorICoKKyAqIEBzZWUgVVRyaWVHZXRGb2xkaW5nT2Zmc2V0CisgKi8KK1VfQ0FQSSBpbnQz
Ml90IFVfRVhQT1JUMgordXRyaWVfZGVmYXVsdEdldEZvbGRpbmdPZmZzZXQodWludDMyX3QgZGF0
YSk7CisKKy8qIEJ1aWxkaW5nIGEgdHJpZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBCdWlsZC10aW1lIHRyaWUg
c3RydWN0dXJlLgorICogT3BhcXVlIGRlZmluaXRpb24sIGhlcmUgb25seSB0byBtYWtlIGZpbGxJ
biBwYXJhbWV0ZXJzIHBvc3NpYmxlCisgKiBmb3IgdXRyaWVfb3BlbigpIGFuZCB1dHJpZV9jbG9u
ZSgpLgorICovCitzdHJ1Y3QgVU5ld1RyaWUgeworICAgIC8qKgorICAgICAqIEluZGV4IHZhbHVl
cyBhdCBidWlsZC10aW1lIGFyZSAzMiBiaXRzIHdpZGUgZm9yIGVhc2llciBwcm9jZXNzaW5nLgor
ICAgICAqIEJpdCAzMSBpcyBzZXQgaWYgdGhlIGRhdGEgYmxvY2sgaXMgdXNlZCBieSBtdWx0aXBs
ZSBpbmRleCB2YWx1ZXMgKGZyb20gdXRyaWVfc2V0UmFuZ2UoKSkuCisgICAgICovCisgICAgaW50
MzJfdCBpbmRleFtVVFJJRV9NQVhfSU5ERVhfTEVOR1RIXTsKKyAgICB1aW50MzJfdCAqZGF0YTsK
KworICAgIHVpbnQzMl90IGxlYWRVbml0VmFsdWU7CisgICAgaW50MzJfdCBpbmRleExlbmd0aCwg
ZGF0YUNhcGFjaXR5LCBkYXRhTGVuZ3RoOworICAgIFVCb29sIGlzQWxsb2NhdGVkLCBpc0RhdGFB
bGxvY2F0ZWQ7CisgICAgVUJvb2wgaXNMYXRpbjFMaW5lYXIsIGlzQ29tcGFjdGVkOworCisgICAg
LyoqCisgICAgICogTWFwIG9mIGFkanVzdGVkIGluZGV4ZXMsIHVzZWQgaW4gdXRyaWVfY29tcGFj
dCgpLgorICAgICAqIE1hcHMgZnJvbSBvcmlnaW5hbCBpbmRleGVzIHRvIG5ldyBvbmVzLgorICAg
ICAqLworICAgIGludDMyX3QgbWFwW1VUUklFX01BWF9CVUlMRF9USU1FX0RBVEFfTEVOR1RIPj5V
VFJJRV9TSElGVF07Cit9OworCit0eXBlZGVmIHN0cnVjdCBVTmV3VHJpZSBVTmV3VHJpZTsKKwor
LyoqCisgKiBCdWlsZC10aW1lIHRyaWUgY2FsbGJhY2sgZnVuY3Rpb24sIHVzZWQgd2l0aCB1dHJp
ZV9zZXJpYWxpemUoKS4KKyAqIFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyBhIGxlYWQgc3Vycm9n
YXRlJ3MgdmFsdWUgaW5jbHVkaW5nIGEgZm9sZGluZyBvZmZzZXQKKyAqIGZyb20gdGhlIDEwMjQg
c3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cyBbc3RhcnQuLnN0YXJ0KzEwMjRbIC4KKyAqIEl0IGlz
IFUrMTAwMDAgPD0gc3RhcnQgPD0gVSsxMGZjMDAgYW5kIChzdGFydCYweDNmZik9PTAuCisgKgor
ICogVGhlIGZvbGRpbmcgb2Zmc2V0IGlzIHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIuCisgKiBJdCBp
cyBvZmZzZXQ9VVRSSUVfQk1QX0lOREVYX0xFTkdUSCtuKlVUUklFX1NVUlJPR0FURV9CTE9DS19D
T1VOVCB3aXRoIG49MC4uMTAyMy4KKyAqIEluc3RlYWQgb2YgdGhlIG9mZnNldCBpdHNlbGYsIG4g
Y2FuIGJlIHN0b3JlZCBpbiAxMCBiaXRzIC0KKyAqIG9yIGZld2VyIGlmIGl0IGNhbiBiZSBhc3N1
bWVkIHRoYXQgZmV3IGxlYWQgc3Vycm9nYXRlcyBoYXZlIGFzc29jaWF0ZWQgZGF0YS4KKyAqCisg
KiBUaGUgcmV0dXJuZWQgdmFsdWUgbXVzdCBiZQorICogLSBub3QgemVybyBpZiBhbmQgb25seSBp
ZiB0aGVyZSBpcyByZWxldmFudCBkYXRhCisgKiAgIGZvciB0aGUgY29ycmVzcG9uZGluZyAxMDI0
IHN1cHBsZW1lbnRhcnkgY29kZSBwb2ludHMKKyAqIC0gc3VjaCB0aGF0IFVUcmllLmdldEZvbGRp
bmdPZmZzZXQoVU5ld1RyaWVHZXRGb2xkZWRWYWx1ZSguLi4sIG9mZnNldCkpPT1vZmZzZXQKKyAq
CisgKiBAcmV0dXJuIGEgZm9sZGVkIHZhbHVlLCBvciAwIGlmIHRoZXJlIGlzIG5vIHJlbGV2YW50
IGRhdGEgZm9yIHRoZSBsZWFkIHN1cnJvZ2F0ZS4KKyAqLwordHlwZWRlZiB1aW50MzJfdCBVX0NB
TExDT05WCitVTmV3VHJpZUdldEZvbGRlZFZhbHVlKFVOZXdUcmllICp0cmllLCBVQ2hhcjMyIHN0
YXJ0LCBpbnQzMl90IG9mZnNldCk7CisKKy8qKgorICogT3BlbiBhIGJ1aWxkLXRpbWUgdHJpZSBz
dHJ1Y3R1cmUuCisgKiBUaGUgc2l6ZSBvZiB0aGUgYnVpbGQtdGltZSBkYXRhIGFycmF5IGlzIHNw
ZWNpZmllZCB0byBhdm9pZCBhbGxvY2F0aW5nIGEgbGFyZ2UKKyAqIGFycmF5IGluIGFsbCBjYXNl
cy4gVGhlIGFycmF5IGl0c2VsZiBjYW4gYWxzbyBiZSBwYXNzZWQgaW4uCisgKgorICogQWx0aG91
Z2ggdGhlIHRyaWUgaXMgbmV2ZXIgZnVsbHkgZXhwYW5kZWQgdG8gYSBsaW5lYXIgYXJyYXksIGVz
cGVjaWFsbHkgd2hlbgorICogdXRyaWVfc2V0UmFuZ2UzMigpIGlzIHVzZWQsIHRoZSBkYXRhIGFy
cmF5IGNvdWxkIGJlIGxhcmdlIGR1cmluZyBidWlsZCB0aW1lLgorICogVGhlIG1heGltdW0gbGVu
Z3RoIGlzCisgKiBVVFJJRV9NQVhfQlVJTERfVElNRV9EQVRBX0xFTkdUSD0weDExMDAwMCtVVFJJ
RV9EQVRBX0JMT0NLX0xFTkdUSCsweDQwMC4KKyAqIChOdW1iZXIgb2YgVW5pY29kZSBjb2RlIHBv
aW50cyArIG9uZSBhbGwtaW5pdGlhbC12YWx1ZSBibG9jayArCisgKiAgcG9zc2libGUgZHVwbGlj
YXRlIGVudHJpZXMgZm9yIDEwMjQgbGVhZCBzdXJyb2dhdGVzLikKKyAqIChVVFJJRV9EQVRBX0JM
T0NLX0xFTkdUSDw9MHgyMDAgaW4gYWxsIGNhc2VzLikKKyAqCisgKiBAcGFyYW0gZmlsbEluIGEg
cG9pbnRlciB0byBhIFVOZXdUcmllIHN0cnVjdHVyZSB0byBiZSBpbml0aWFsaXplZCAod2lsbCBu
b3QgYmUgcmVsZWFzZWQpLCBvcgorICogICAgICAgICAgICAgICBOVUxMIGlmIG9uZSBpcyB0byBi
ZSBhbGxvY2F0ZWQKKyAqIEBwYXJhbSBhbGlhc0RhdGEgYSBwb2ludGVyIHRvIGEgZGF0YSBhcnJh
eSB0byBiZSB1c2VkICh3aWxsIG5vdCBiZSByZWxlYXNlZCksIG9yCisgKiAgICAgICAgICAgICAg
ICAgIE5VTEwgaWYgb25lIGlzIHRvIGJlIGFsbG9jYXRlZAorICogQHBhcmFtIG1heERhdGFMZW5n
dGggdGhlIGNhcGFjaXR5IG9mIGFsaWFzRGF0YSAoaWYgbm90IE5VTEwpIG9yCisgKiAgICAgICAg
ICAgICAgICAgICAgICB0aGUgbGVuZ3RoIG9mIHRoZSBkYXRhIGFycmF5IHRvIGJlIGFsbG9jYXRl
ZAorICogQHBhcmFtIGluaXRpYWxWYWx1ZSB0aGUgaW5pdGlhbCB2YWx1ZSB0aGF0IGlzIHNldCBm
b3IgYWxsIGNvZGUgcG9pbnRzCisgKiBAcGFyYW0gbGVhZFVuaXRWYWx1ZSB0aGUgdmFsdWUgZm9y
IGxlYWQgc3Vycm9nYXRlIGNvZGUgX3VuaXRzXyB0aGF0IGRvIG5vdAorICogICAgICAgICAgICAg
ICAgICAgICAgaGF2ZSBhc3NvY2lhdGVkIHN1cHBsZW1lbnRhcnkgZGF0YQorICogQHBhcmFtIGxh
dGluMUxpbmVhciBhIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBMYXRpbi0xIHJhbmdlIGlz
IHRvIGJlIGFsbG9jYXRlZCBhbmQKKyAqICAgICAgICAgICAgICAgICAgICAga2VwdCBpbiBhIGxp
bmVhciwgY29udGlndW91cyBwYXJ0IG9mIHRoZSBkYXRhIGFycmF5CisgKiBAcmV0dXJuIGEgcG9p
bnRlciB0byB0aGUgaW5pdGlhbGl6ZWQgZmlsbEluIG9yIHRoZSBhbGxvY2F0ZWQgYW5kIGluaXRp
YWxpemVkIG5ldyBVTmV3VHJpZQorICovCitVX0NBUEkgVU5ld1RyaWUgKiBVX0VYUE9SVDIKK3V0
cmllX29wZW4oVU5ld1RyaWUgKmZpbGxJbiwKKyAgICAgICAgICAgdWludDMyX3QgKmFsaWFzRGF0
YSwgaW50MzJfdCBtYXhEYXRhTGVuZ3RoLAorICAgICAgICAgICB1aW50MzJfdCBpbml0aWFsVmFs
dWUsIHVpbnQzMl90IGxlYWRVbml0VmFsdWUsCisgICAgICAgICAgIFVCb29sIGxhdGluMUxpbmVh
cik7CisKKy8qKgorICogQ2xvbmUgYSBidWlsZC10aW1lIHRyaWUgc3RydWN0dXJlIHdpdGggYWxs
IGVudHJpZXMuCisgKgorICogQHBhcmFtIGZpbGxJbiBsaWtlIGluIHV0cmllX29wZW4oKQorICog
QHBhcmFtIG90aGVyIHRoZSBidWlsZC10aW1lIHRyaWUgc3RydWN0dXJlIHRvIGNsb25lCisgKiBA
cGFyYW0gYWxpYXNEYXRhIGxpa2UgaW4gdXRyaWVfb3BlbigpLAorICogICAgICAgICAgICAgICAg
ICB1c2VkIGlmIGFsaWFzRGF0YUxlbmd0aD49KGNhcGFjaXR5IG9mIG90aGVyJ3MgZGF0YSBhcnJh
eSkKKyAqIEBwYXJhbSBhbGlhc0RhdGFMZW5ndGggdGhlIGxlbmd0aCBvZiBhbGlhc0RhdGEKKyAq
IEByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBpbml0aWFsaXplZCBmaWxsSW4gb3IgdGhlIGFsbG9j
YXRlZCBhbmQgaW5pdGlhbGl6ZWQgbmV3IFVOZXdUcmllCisgKi8KK1VfQ0FQSSBVTmV3VHJpZSAq
IFVfRVhQT1JUMgordXRyaWVfY2xvbmUoVU5ld1RyaWUgKmZpbGxJbiwgY29uc3QgVU5ld1RyaWUg
Km90aGVyLCB1aW50MzJfdCAqYWxpYXNEYXRhLCBpbnQzMl90IGFsaWFzRGF0YUxlbmd0aCk7CisK
Ky8qKgorICogQ2xvc2UgYSBidWlsZC10aW1lIHRyaWUgc3RydWN0dXJlLCBhbmQgcmVsZWFzZSBt
ZW1vcnkKKyAqIHRoYXQgd2FzIGFsbG9jYXRlZCBieSB1dHJpZV9vcGVuKCkgb3IgdXRyaWVfY2xv
bmUoKS4KKyAqCisgKiBAcGFyYW0gdHJpZSB0aGUgYnVpbGQtdGltZSB0cmllCisgKi8KK1VfQ0FQ
SSB2b2lkIFVfRVhQT1JUMgordXRyaWVfY2xvc2UoVU5ld1RyaWUgKnRyaWUpOworCisvKioKKyAq
IEdldCB0aGUgZGF0YSBhcnJheSBvZiBhIGJ1aWxkLXRpbWUgdHJpZS4KKyAqIFRoZSBkYXRhIG1h
eSBiZSBtb2RpZmllZCwgYnV0IGVudHJpZXMgdGhhdCBhcmUgZXF1YWwgYmVmb3JlCisgKiBtdXN0
IHN0aWxsIGJlIGVxdWFsIGFmdGVyIG1vZGlmaWNhdGlvbi4KKyAqCisgKiBAcGFyYW0gdHJpZSB0
aGUgYnVpbGQtdGltZSB0cmllCisgKiBAcGFyYW0gcExlbmd0aCAob3V0KSBhIHBvaW50ZXIgdG8g
YSB2YXJpYWJsZSB0aGF0IHJlY2VpdmVzIHRoZSBudW1iZXIKKyAqICAgICAgICAgICAgICAgIG9m
IGVudHJpZXMgaW4gdGhlIGRhdGEgYXJyYXkKKyAqIEByZXR1cm4gdGhlIGRhdGEgYXJyYXkKKyAq
LworVV9DQVBJIHVpbnQzMl90ICogVV9FWFBPUlQyCit1dHJpZV9nZXREYXRhKFVOZXdUcmllICp0
cmllLCBpbnQzMl90ICpwTGVuZ3RoKTsKKworLyoqCisgKiBTZXQgYSB2YWx1ZSBmb3IgYSBjb2Rl
IHBvaW50LgorICoKKyAqIEBwYXJhbSB0cmllIHRoZSBidWlsZC10aW1lIHRyaWUKKyAqIEBwYXJh
bSBjIHRoZSBjb2RlIHBvaW50CisgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlCisgKiBAcmV0dXJu
IEZBTFNFIGlmIGEgZmFpbHVyZSBvY2N1cnJlZCAoaWxsZWdhbCBhcmd1bWVudCBvciBkYXRhIGFy
cmF5IG92ZXJydW4pCisgKi8KK1VfQ0FQSSBVQm9vbCBVX0VYUE9SVDIKK3V0cmllX3NldDMyKFVO
ZXdUcmllICp0cmllLCBVQ2hhcjMyIGMsIHVpbnQzMl90IHZhbHVlKTsKKworLyoqCisgKiBHZXQg
YSB2YWx1ZSBmcm9tIGEgY29kZSBwb2ludCBhcyBzdG9yZWQgaW4gdGhlIGJ1aWxkLXRpbWUgdHJp
ZS4KKyAqCisgKiBAcGFyYW0gdHJpZSB0aGUgYnVpbGQtdGltZSB0cmllCisgKiBAcGFyYW0gYyB0
aGUgY29kZSBwb2ludAorICogQHBhcmFtIHBJbkJsb2NrWmVybyBpZiBub3QgTlVMTCwgdGhlbiAq
cEluQmxvY2taZXJvIGlzIHNldCB0byBUUlVFCisgKiAgICAgICAgICAgICAgICAgICAgIGlmZiB0
aGUgdmFsdWUgaXMgcmV0cmlldmVkIGZyb20gYmxvY2sgMDsKKyAqICAgICAgICAgICAgICAgICAg
ICAgYmxvY2sgMCBpcyB0aGUgYWxsLWluaXRpYWwtdmFsdWUgaW5pdGlhbCBibG9jaworICogQHJl
dHVybiB0aGUgdmFsdWUKKyAqLworVV9DQVBJIHVpbnQzMl90IFVfRVhQT1JUMgordXRyaWVfZ2V0
MzIoVU5ld1RyaWUgKnRyaWUsIFVDaGFyMzIgYywgVUJvb2wgKnBJbkJsb2NrWmVybyk7CisKKy8q
KgorICogU2V0IGEgdmFsdWUgaW4gYSByYW5nZSBvZiBjb2RlIHBvaW50cyBbc3RhcnQuLmxpbWl0
Wy4KKyAqIEFsbCBjb2RlIHBvaW50cyBjIHdpdGggc3RhcnQ8PWM8bGltaXQgd2lsbCBnZXQgdGhl
IHZhbHVlIGlmCisgKiBvdmVyd3JpdGUgaXMgVFJVRSBvciBpZiB0aGUgb2xkIHZhbHVlIGlzIDAu
CisgKgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQorICogQHBhcmFtIHN0YXJ0
IHRoZSBmaXJzdCBjb2RlIHBvaW50IHRvIGdldCB0aGUgdmFsdWUKKyAqIEBwYXJhbSBsaW1pdCBv
bmUgcGFzdCB0aGUgbGFzdCBjb2RlIHBvaW50IHRvIGdldCB0aGUgdmFsdWUKKyAqIEBwYXJhbSB2
YWx1ZSB0aGUgdmFsdWUKKyAqIEBwYXJhbSBvdmVyd3JpdGUgZmxhZyBmb3Igd2hldGhlciBvbGQg
bm9uLWluaXRpYWwgdmFsdWVzIGFyZSB0byBiZSBvdmVyd3JpdHRlbgorICogQHJldHVybiBGQUxT
RSBpZiBhIGZhaWx1cmUgb2NjdXJyZWQgKGlsbGVnYWwgYXJndW1lbnQgb3IgZGF0YSBhcnJheSBv
dmVycnVuKQorICovCitVX0NBUEkgVUJvb2wgVV9FWFBPUlQyCit1dHJpZV9zZXRSYW5nZTMyKFVO
ZXdUcmllICp0cmllLCBVQ2hhcjMyIHN0YXJ0LCBVQ2hhcjMyIGxpbWl0LCB1aW50MzJfdCB2YWx1
ZSwgVUJvb2wgb3ZlcndyaXRlKTsKKworLyoqCisgKiBDb21wYWN0IHRoZSBidWlsZC10aW1lIHRy
aWUgYWZ0ZXIgYWxsIHZhbHVlcyBhcmUgc2V0LCBhbmQgdGhlbgorICogc2VyaWFsaXplIGl0IGlu
dG8gMzItYml0IGFsaWduZWQgbWVtb3J5LgorICoKKyAqIEFmdGVyIHRoaXMsIHRoZSB0cmllIGNh
biBvbmx5IGJlIHNlcml6YWxpemVkIGFnYWluIGFuZC9vciBjbG9zZWQ7CisgKiBubyBmdXJ0aGVy
IHZhbHVlcyBjYW4gYmUgYWRkZWQuCisgKgorICogQHNlZSB1dHJpZV91bnNlcmlhbGl6ZSgpCisg
KgorICogQHBhcmFtIHRyaWUgdGhlIGJ1aWxkLXRpbWUgdHJpZQorICogQHBhcmFtIGRhdGEgYSBw
b2ludGVyIHRvIDMyLWJpdC1hbGlnbmVkIG1lbW9yeSBmb3IgdGhlIHRyaWUgZGF0YQorICogQHBh
cmFtIGNhcGFjaXR5IHRoZSBudW1iZXIgb2YgYnl0ZXMgYXZhaWxhYmxlIGF0IGRhdGEKKyAqIEBw
YXJhbSBnZXRGb2xkZWRWYWx1ZSBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgY2FsY3VsYXRlcyB0
aGUgdmFsdWUgZm9yCisgKiAgICAgICAgICAgICAgICAgICAgICAgYSBsZWFkIHN1cnJvZ2F0ZSBm
cm9tIGFsbCBvZiBpdHMgc3VwcGxlbWVudGFyeSBjb2RlIHBvaW50cworICogICAgICAgICAgICAg
ICAgICAgICAgIGFuZCB0aGUgZm9sZGluZyBvZmZzZXQ7CisgKiAgICAgICAgICAgICAgICAgICAg
ICAgaWYgTlVMTCwgdGhlbiBhIGRlZmF1bHQgZnVuY3Rpb24gaXMgdXNlZCB3aGljaCByZXR1cm5z
IGp1c3QKKyAqICAgICAgICAgICAgICAgICAgICAgICB0aGUgaW5wdXQgb2Zmc2V0IHdoZW4gdGhl
cmUgYXJlIGFueSBub24taW5pdGlhbC12YWx1ZSBlbnRyaWVzCisgKiBAcGFyYW0gcmVkdWNlVG8x
NkJpdHMgZmxhZyBmb3Igd2hldGhlciB0aGUgdmFsdWVzIGFyZSB0byBiZSByZWR1Y2VkIHRvIGEK
KyAqICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCBvZiAxNiBiaXRzIGZvciBzZXJpYWxpemF0
aW9uIGFuZCBydW50aW1lCisgKiBAcGFyYW0gcEVycm9yQ29kZSBhIFVFcnJvckNvZGUgYXJndW1l
bnQ7IGFtb25nIG90aGVyIHBvc3NpYmxlIGVycm9yIGNvZGVzOgorICogLSBVX0JVRkZFUl9PVkVS
RkxPV19FUlJPUiBpZiB0aGUgZGF0YSBzdG9yYWdlIGJsb2NrIGlzIHRvbyBzbWFsbCBmb3Igc2Vy
aWFsaXphdGlvbgorICogLSBVX01FTU9SWV9BTExPQ0FUSU9OX0VSUk9SIGlmIHRoZSB0cmllIGRh
dGEgYXJyYXkgaXMgdG9vIHNtYWxsCisgKiAtIFVfSU5ERVhfT1VUT0ZCT1VORFNfRVJST1IgaWYg
dGhlIGluZGV4IG9yIGRhdGEgYXJyYXlzIGFyZSB0b28gbG9uZyBhZnRlciBjb21wYWN0aW9uIGZv
ciBzZXJpYWxpemF0aW9uCisgKgorICogQHJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0
ZW4gZm9yIHRoZSB0cmllCisgKi8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgordXRyaWVfc2Vy
aWFsaXplKFVOZXdUcmllICp0cmllLCB2b2lkICpkYXRhLCBpbnQzMl90IGNhcGFjaXR5LAorICAg
ICAgICAgICAgICAgIFVOZXdUcmllR2V0Rm9sZGVkVmFsdWUgKmdldEZvbGRlZFZhbHVlLAorICAg
ICAgICAgICAgICAgIFVCb29sIHJlZHVjZVRvMTZCaXRzLAorICAgICAgICAgICAgICAgIFVFcnJv
ckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIFN3YXAgYSBzZXJpYWxpemVkIFVUcmllLgor
ICogQGludGVybmFsCisgKi8KK1VfQ0FQSSBpbnQzMl90IFVfRVhQT1JUMgordXRyaWVfc3dhcChj
b25zdCBVRGF0YVN3YXBwZXIgKmRzLAorICAgICAgICAgICBjb25zdCB2b2lkICppbkRhdGEsIGlu
dDMyX3QgbGVuZ3RoLCB2b2lkICpvdXREYXRhLAorICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJy
b3JDb2RlKTsKKworLyogc2VyaWFsaXphdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyoqCisgKiBUcmllIGRhdGEg
c3RydWN0dXJlIGluIHNlcmlhbGl6ZWQgZm9ybToKKyAqCisgKiBVVHJpZUhlYWRlciBoZWFkZXI7
CisgKiB1aW50MTZfdCBpbmRleFtoZWFkZXIuaW5kZXhMZW5ndGhdOworICogdWludDE2X3QgZGF0
YVtoZWFkZXIuZGF0YUxlbmd0aF07CisgKiBAaW50ZXJuYWwKKyAqLwordHlwZWRlZiBzdHJ1Y3Qg
VVRyaWVIZWFkZXIgeworICAgIC8qKiAiVHJpZSIgaW4gYmlnLWVuZGlhbiBVUy1BU0NJSSAoMHg1
NDcyNjk2NSkgKi8KKyAgICB1aW50MzJfdCBzaWduYXR1cmU7CisKKyAgICAvKioKKyAgICAgKiBv
cHRpb25zIGJpdCBmaWVsZDoKKyAgICAgKiAgICAgOSAgICAxPUxhdGluLTEgZGF0YSBpcyBzdG9y
ZWQgbGluZWFybHkgYXQgZGF0YStVVFJJRV9EQVRBX0JMT0NLX0xFTkdUSAorICAgICAqICAgICA4
ICAgIDA9MTYtYml0IGRhdGEsIDE9MzItYml0IGRhdGEKKyAgICAgKiAgNy4uNCAgICBVVFJJRV9J
TkRFWF9TSElGVCAgIC8vIDAuLlVUUklFX1NISUZUCisgICAgICogIDMuLjAgICAgVVRSSUVfU0hJ
RlQgICAgICAgICAvLyAxLi45CisgICAgICovCisgICAgdWludDMyX3Qgb3B0aW9uczsKKworICAg
IC8qKiBpbmRleExlbmd0aCBpcyBhIG11bHRpcGxlIG9mIFVUUklFX1NVUlJPR0FURV9CTE9DS19D
T1VOVCAqLworICAgIGludDMyX3QgaW5kZXhMZW5ndGg7CisKKyAgICAvKiogZGF0YUxlbmd0aD49
VVRSSUVfREFUQV9CTE9DS19MRU5HVEggKi8KKyAgICBpbnQzMl90IGRhdGFMZW5ndGg7Cit9IFVU
cmllSGVhZGVyOworCisvKioKKyAqIENvbnN0YW50cyBmb3IgdXNlIHdpdGggVVRyaWVIZWFkZXIu
b3B0aW9ucy4KKyAqIEBpbnRlcm5hbAorICovCitlbnVtIHsKKyAgICAvKiogTWFzayB0byBnZXQg
dGhlIFVUUklFX1NISUZUIHZhbHVlIGZyb20gb3B0aW9ucy4gKi8KKyAgICBVVFJJRV9PUFRJT05T
X1NISUZUX01BU0s9MHhmLAorCisgICAgLyoqIFNoaWZ0IG9wdGlvbnMgcmlnaHQgdGhpcyBtdWNo
IHRvIGdldCB0aGUgVVRSSUVfSU5ERVhfU0hJRlQgdmFsdWUuICovCisgICAgVVRSSUVfT1BUSU9O
U19JTkRFWF9TSElGVD00LAorCisgICAgLyoqIElmIHNldCwgdGhlbiB0aGUgZGF0YSAoc3RhZ2Ug
MikgYXJyYXkgaXMgMzIgYml0cyB3aWRlLiAqLworICAgIFVUUklFX09QVElPTlNfREFUQV9JU18z
Ml9CSVQ9MHgxMDAsCisKKyAgICAvKioKKyAgICAgKiBJZiBzZXQsIHRoZW4gTGF0aW4tMSBkYXRh
IChmb3IgVSswMDAwLi5VKzAwZmYpIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSAoc3RhZ2UgMikgYXJy
YXkKKyAgICAgKiBhcyBhIHNpbXBsZSwgbGluZWFyIGFycmF5IGF0IGRhdGErVVRSSUVfREFUQV9C
TE9DS19MRU5HVEguCisgICAgICovCisgICAgVVRSSUVfT1BUSU9OU19MQVRJTjFfSVNfTElORUFS
PTB4MjAwCit9OworCitVX0NERUNMX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5jcHAKaW5kZXggMzFhM2YwMmIzZWNhOGUwNTNkZDUyNTI1MDUxMjUz
NWZlMTBiYmIzYi4uNzA5ZDQwNjRmNjMyNmMyZWQwNGZmZDY0YTU1NTkyYjY1ODljZDM4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKQEAgLTI5LDkgKzI5LDYg
QEAKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1Zp
ZXcuaD4KIAotLy8gRklYTUU6IFRoaXMgbmVlZHMgYSBiZXR0ZXIgbmFtZQotI2RlZmluZSBBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApKQotCiBuYW1lc3BhY2Ug
V1RGIHsKIAogLy8gSXRlcmF0b3IgaW5pdGlhbGl6YXRpb24KQEAgLTU5LDYgKzU2LDEyIEBAIHN0
YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGNvbnN0
IGNoYXIqIGJyZWFrUnVsZXMpCiAKICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBM
QVRGT1JNKElPUykKK1RleHRCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQo
QnJlYWtpbmdSdWxlU2V0KQoreworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCiAKIC8v
IEl0ZXJhdG9yIHRleHQgc2V0dGluZwogCkBAIC0xNjIsMTM1ICsxNjUsMjAgQEAgVGV4dEJyZWFr
SXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZykKICAgICBy
ZXR1cm4gc2V0VGV4dEZvckl0ZXJhdG9yKCpzdGF0aWNTZW50ZW5jZUJyZWFrSXRlcmF0b3IsIHN0
cmluZyk7CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9TKQorc3RhdGljIFRleHRCcmVha0l0ZXJhdG9y
KiBjcmVhdGVDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKCkKK3sKKyAgICBpZiAo
YXV0byogaXRlcmF0b3IgPSBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0
OjpDdXJzb3JNb3ZlbWVudCkpCisgICAgICAgIHJldHVybiBpdGVyYXRvcjsKKyAgICByZXR1cm4g
aW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyk7
Cit9CisjZW5kaWYKKwogVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3Io
U3RyaW5nVmlldyBzdHJpbmcpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAvLyBUaGlzIHJ1
bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1Ug
NTcKLSAgICAvLyA8aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90
YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KLSAgICAvLyBUaGUgbWFqb3Ig
ZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgotICAg
IC8vICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9
XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0n
IGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7Ci0gICAgLy8gKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJl
dmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAy
NDM0Mik7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBt
b3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwg
KEJ1ZyAxNTc5MCksIGFuZDsKLSAgICAvLyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1
cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2lj
ZWQgbWFya3MuCi0gICAgLy8gKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5
bWJvbHMuCi0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGtSdWxlcyA9Ci0gICAgICAgICIkQ1IgICAg
ICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07IgotICAgICAgICAiJExGICAg
ICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1dOyIKLSAgICAgICAgIiRDb250
cm9sID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOyIKLSAgICAgICAg
IiRWb2ljZU1hcmtzID0gW1xcdUZGOUVcXHVGRjlGXTsiIC8vIEphcGFuZXNlIGhhbGYtd2lkdGgg
a2F0YWthbmEgdm9pY2VkIG1hcmtzCi0gICAgICAgICIkRXh0ZW5kICA9IFtcXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXFx1MEUzMCBcXHUwRTMyIFxc
dTBFNDUgXFx1MEVCMCBcXHUwRUIyXV07IgotICAgICAgICAiJFNwYWNpbmdNYXJrID0gW1tcXHB7
R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31dIC0gJEV4dGVuZF07IgotICAgICAgICAi
JEwgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07IgotICAgICAgICAi
JFYgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07IgotICAgICAgICAi
JFQgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07IgotICAgICAgICAi
JExWICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOyIKLSAgICAgICAg
IiRMVlQgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07IgotICAgICAg
ICAiJEhpbjAgICAgPSBbXFx1MDkwNS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkSGluViAgICA9IFxcdTA5NEQ7IiAvLyBEZXZhbmFnYXJpIFNpZ24g
VmlyYW1hCi0gICAgICAgICIkSGluMSAgICA9IFtcXHUwOTE1LVxcdTA5MzldOyIgLy8gRGV2YW5h
Z2FyaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkQmVuMCAgICA9IFtcXHUwOTg1LVxcdTA5
QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRCZW5WICAgID0gXFx1
MDlDRDsiIC8vIEJlbmdhbGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRCZW4xICAgID0gW1xcdTA5
OTUtXFx1MDlCOV07IiAvLyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRQYW4w
ICAgID0gW1xcdTBBMDUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKLSAg
ICAgICAgIiRQYW5WICAgID0gXFx1MEE0RDsiIC8vIEd1cm11a2hpIFNpZ24gVmlyYW1hCi0gICAg
ICAgICIkUGFuMSAgICA9IFtcXHUwQTE1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEth
LC4uLixIYQotICAgICAgICAiJEd1ajAgICAgPSBbXFx1MEE4NS1cXHUwQUI5XTsiIC8vIEd1amFy
YXRpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEd1alYgICAgPSBcXHUwQUNEOyIgLy8gR3Vq
YXJhdGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRHdWoxICAgID0gW1xcdTBBOTUtXFx1MEFCOV07
IiAvLyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkT3JpMCAgICA9IFtcXHUw
QjA1LVxcdTBCMzldOyIgLy8gT3JpeWEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkT3JpViAg
ICA9IFxcdTBCNEQ7IiAvLyBPcml5YSBTaWduIFZpcmFtYQotICAgICAgICAiJE9yaTEgICAgPSBb
XFx1MEIxNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRU
ZWwwICAgID0gW1xcdTBDMDUtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCi0g
ICAgICAgICIkVGVsViAgICA9IFxcdTBDNEQ7IiAvLyBUZWx1Z3UgU2lnbiBWaXJhbWEKLSAgICAg
ICAgIiRUZWwxICAgID0gW1xcdTBDMTQtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEthLC4u
LixIYQotICAgICAgICAiJEthbjAgICAgPSBbXFx1MEM4NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEg
TGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkS2FuViAgICA9IFxcdTBDQ0Q7IiAvLyBLYW5uYWRh
IFNpZ24gVmlyYW1hCi0gICAgICAgICIkS2FuMSAgICA9IFtcXHUwQzk1LVxcdTBDQjldOyIgLy8g
S2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWwwICAgID0gW1xcdTBEMDUtXFx1
MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsViAgICA9
IFxcdTBENEQ7IiAvLyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKLSAgICAgICAgIiRNYWwxICAgID0g
W1xcdTBEMTUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAg
ICIkUkkgICAgICA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IiAvLyBFbW9qaSByZWdpb25h
bCBpbmRpY2F0b3JzCi0gICAgICAgICIkWldKICAgICA9IFxcdTIwMEQ7IiAvLyBaZXJvIHdpZHRo
IGpvaW5lcgotICAgICAgICAiJEVtb2ppVmFyID0gW1xcdUZFMEZdOyIgLy8gRW1vamktc3R5bGUg
dmFyaWF0aW9uIHNlbGVjdG9yCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAg
ICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAw
MUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxV
MDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUt
XFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0
ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAw
MUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxV
MDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjZd
OyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIk
RW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYz
ODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAw
MUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxV
MDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEt
XFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1
NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAw
MUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxV
MDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MThdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBG
aXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNlCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xc
dTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIgLy8gRW1vamkgdGhh
dCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0g
W1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFG
M0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAw
MDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxc
VTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1
LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFG
NjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAw
MDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9k
aWZpZXJzCi0jZW5kaWYKLSAgICAgICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAw
MUYzRkZdOyIgLy8gRml0enBhdHJpY2sgbW9kaWZpZXJzCi0gICAgICAgICIhIWNoYWluOyIKLSNp
ZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEhUklOb0NoYWluOyIKLSNlbmRp
ZgotICAgICAgICAiISFmb3J3YXJkOyIKLSAgICAgICAgIiRDUiAkTEY7IgotICAgICAgICAiJEwg
KCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsiCi0gICAgICAgICIoJExWIHwgJFYpICgkViB8ICRUKTsi
Ci0gICAgICAgICIoJExWVCB8ICRUKSAkVDsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
Ci0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkkgJEV4
dGVuZCo7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAg
IlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSNlbHNlCi0gICAgICAgICJbXiRD
b250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAk
U3BhY2luZ01hcms7IgotICAgICAgICAiJFJJICRSSSAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJ
OyIKLSNlbmRpZgotICAgICAgICAiJEhpbjAgJEhpblYgJEhpbjE7IiAvLyBEZXZhbmFnYXJpIFZp
cmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRCZW4wICRCZW5WICRCZW4xOyIgLy8gQmVuZ2FsaSBW
aXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkUGFuMCAkUGFuViAkUGFuMTsiIC8vIEd1cm11a2hp
IFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRHdWowICRHdWpWICRHdWoxOyIgLy8gR3VqYXJh
dGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE9yaTAgJE9yaVYgJE9yaTE7IiAvLyBPcml5
YSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkVGVsMCAkVGVsViAkVGVsMTsiIC8vIFRlbHVn
dSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkS2FuMCAkS2FuViAkS2FuMTsiIC8vIEthbm5h
ZGEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE1hbDAgJE1hbFYgJE1hbDE7IiAvLyBNYWxh
eWFsYW0gVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFpXSiAkRW1vamlGb3JTZXFzOyIgLy8g
RG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9k
cyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50
IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNr
IG1vZGlmaWVyCi0gICAgICAgICIhIXJldmVyc2U7IgotICAgICAgICAiJExGICRDUjsiCi0gICAg
ICAgICIoJEwgfCAkViB8ICRMViB8ICRMVlQpICRMOyIKLSAgICAgICAgIigkViB8ICRUKSAoJExW
IHwgJFYpOyIKLSAgICAgICAgIiRUICgkTFZUIHwgJFQpOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOyIK
LSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVuZCAgICAgIFteJENv
bnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRM
Rl07IgotI2Vsc2UKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIK
LSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRS
SSAkUkkgLyAkUkkgJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIk
SGluMSAkSGluViAkSGluMDsiIC8vIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAg
ICAgIiRCZW4xICRCZW5WICRCZW4wOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQotICAg
ICAgICAiJFBhbjEgJFBhblYgJFBhbjA7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQot
ICAgICAgICAiJEd1ajEgJEd1alYgJEd1ajA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJk
KQotICAgICAgICAiJE9yaTEgJE9yaVYgJE9yaTA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3
YXJkKQotICAgICAgICAiJFRlbDEgJFRlbFYgJFRlbDA7IiAvLyBUZWx1Z3UgVmlyYW1hIChiYWNr
d2FyZCkKLSAgICAgICAgIiRLYW4xICRLYW5WICRLYW4wOyIgLy8gS2FubmFkYSBWaXJhbWEgKGJh
Y2t3YXJkKQotICAgICAgICAiJE1hbDEgJE1hbFYgJE1hbDA7IiAvLyBNYWxheWFsYW0gVmlyYW1h
IChiYWNrd2FyZCkKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgJFpXSjsiIC8vIERvbid0IGJyZWFr
IGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAk
RW1vamlGb3JNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9z
c2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgot
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiISFzYWZlX3JldmVyc2U7Igot
ICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVt
b2ppRm9yTW9kczsiCi0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsiCi0gICAgICAgICIkUkkgJFJJ
KzsiCi0gICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyI7Cisg
ICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
ID0gY3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjaygpOwogI2Vsc2UKLSAg
ICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAi
JEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiCi0gICAgICAgICIhIXNhZmVf
cmV2ZXJzZTsiCi0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsiOwotI2VuZGlmCi0gICAgc3RhdGlj
IFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlh
bGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGtSdWxlcyk7Ci0jZWxzZSAvLyBQTEFURk9STShJT1MpCiAg
ICAgLy8gVXNlIHRoZSBzcGVjaWFsIFRoYWkgY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGZvciBh
bGwgbG9jYWxlcwogICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcihVQlJLX0NIQVJBQ1RFUiwgInRoIik7
CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKQEAgLTMxNyw0NDIgKzIwNSwyMCBAQCB2b2lkIHJl
bGVhc2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiAgICAg
TGluZUJyZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQb29sKCkucHV0KGl0ZXJhdG9yKTsKIH0KIAot
c3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UHJvbG9ndWUgPQotICAgICIhIWNoYWluOyIKLSAgICAi
ISFMQkNNTm9DaGFpbjsiCi0gICAgIiEhbG9va0FoZWFkSGFyZEJyZWFrOyI7Ci0KLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQmVmb3JlID0KLSAgICAvLyBleHBsaWNpdGx5IGVu
dW1lcmF0ZSAkQ0ogc2luY2UgSUNVIHZlcnNpb25zIHByaW9yIHRvIDQ5IGRvbid0IHN1cHBvcnQg
OkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOgotICAgICIkQ0ogPSBbIgot
I2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5P
Ul9OVU0gPj0gOSkKLSAgICAiOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVy
OiIKLSNlbHNlCi0gICAgIlxcdTMwNDFcXHUzMDQzXFx1MzA0NVxcdTMwNDdcXHUzMDQ5XFx1MzA2
M1xcdTMwODNcXHUzMDg1XFx1MzA4N1xcdTMwOEVcXHUzMDk1XFx1MzA5NlxcdTMwQTFcXHUzMEEz
XFx1MzBBNVxcdTMwQTciCi0gICAgIlxcdTMwQTlcXHUzMEMzXFx1MzBFM1xcdTMwRTVcXHUzMEU3
XFx1MzBFRVxcdTMwRjVcXHUzMEY2XFx1MzBGQyIKLSAgICAiXFx1MzFGMFxcdTMxRjFcXHUzMUYy
XFx1MzFGM1xcdTMxRjRcXHUzMUY1XFx1MzFGNlxcdTMxRjdcXHUzMUY4XFx1MzFGOVxcdTMxRkFc
XHUzMUZCXFx1MzFGQ1xcdTMxRkRcXHUzMUZFXFx1MzFGRiIKLSAgICAiXFx1RkY2N1xcdUZGNjhc
XHVGRjY5XFx1RkY2QVxcdUZGNkJcXHVGRjZDXFx1RkY2RFxcdUZGNkVcXHVGRjZGXFx1RkY3MCIK
LSNlbmRpZgotICAgICJdOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tTG9vc2VDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAg
IiRFWF9TVUIgPSBbXFx1MDAyMVxcdTAwM0ZcXHVGRjAxXFx1RkYxRl07IgotICAgICIkSURfU1VC
ID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIg
PSBbXFx1MDAzQVxcdTAwM0JdOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUyMDNDXFx1MjA0N1xcdTIw
NDhcXHUyMDQ5XFx1MzAwNVxcdTMwMUNcXHUzMDNCXFx1MzA5RFxcdTMwOUVcXHUzMEEwXFx1MzBG
QlxcdTMwRkRcXHUzMEZFXFx1RkYxQVxcdUZGMUJcXHVGRjY1XTsiCi0gICAgIiRQT19TVUIgPSBb
XFx1MDAyNVxcdTAwQTJcXHUwMEIwXFx1MjAzMFxcdTIwMzJcXHUyMDMzXFx1MjEwM1xcdUZGMDVc
XHVGRkUwXTsiCi0gICAgIiRQUl9TVUIgPSBbXFx1MDAyNFxcdTAwQTNcXHUwMEE1XFx1MjBBQ1xc
dTIxMTZcXHVGRjA0XFx1RkZFMVxcdUZGRTVdOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NV
QiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07IgotICAg
ICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHND
dXN0b21Mb29zZU5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAn
JzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZd
OyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDA1XFx1MzAzQlxc
dTMwOURcXHUzMDlFXFx1MzBGRFxcdTMwRkVdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAi
JFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsiCi0g
ICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50
c0N1c3RvbU5vcm1hbENKSyA9Ci0gICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAg
ICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcn
OyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDFDXFx1MzBBMF07
IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQURE
ID0gWyRDSiAkQkFfU1VCICROU19TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRp
YyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pLID0KLSAgICAi
JEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIK
LSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9
ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElE
X0FERCA9IFskQ0pdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFy
KiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIK
LSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9
ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBP
X1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9ICcnOyIKLSAg
ICAiJE5TX0FERCA9IFskQ0pdOyI7Ci0KLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0
cmljdE5vbkNKSyAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksKLSNkZWZpbmUg
dWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHRDSksgICAgICAgIHVheDE0QXNzaWdubWVudHND
dXN0b21Ob3JtYWxDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25D
SksgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSksKLQotc3RhdGljIGNvbnN0
IGNoYXIqIHVheDE0QXNzaWdubWVudHNBZnRlciA9Ci0gICAgIiRBSSA9IFs6TGluZUJyZWFrID0g
QW1iaWd1b3VzOl07IgotICAgICIkQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsiCi0g
ICAgIiRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsiCi0gICAg
IiRCQiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07IgotICAgICIkQksgPSBbOkxpbmVC
cmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOyIKLSAgICAiJEIyID0gWzpMaW5lQnJlYWsgPSBCcmVh
a19Cb3RoOl07IgotICAgICIkQ0IgPSBbOkxpbmVCcmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsi
Ci0gICAgIiRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246XTsiCi0gICAgIiRD
TSA9IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsiCi0gICAgIiRDUCA9IFs6TGluZUJy
ZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsiCi0gICAgIiRDUiA9IFs6TGluZUJyZWFrID0gQ2Fy
cmlhZ2VfUmV0dXJuOl07IgotICAgICIkRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpd
IC0gJEVYX1NVQl07IgotICAgICIkR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsiCi0jaWYgKFVf
SUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+
PSA5KQotICAgICIkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsiCi0jZWxzZQot
ICAgICIkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1dOyIKLSNlbmRpZgotICAgICIkSFkg
PSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOyIKLSAgICAiJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpd
OyIKLSAgICAiJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOyIKLSAgICAiJElEID0gW1tbWzpMaW5l
QnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOyIKLSAgICAi
JElOID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOyIKLSAgICAiJElT
ID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07IgotICAgICIkSkwg
PSBbOkxpbmVCcmVhayA9IEpMOl07IgotICAgICIkSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07Igot
ICAgICIkSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07IgotICAgICIkTEYgPSBbOkxpbmVCcmVhayA9
IExpbmVfRmVlZDpdOyIKLSAgICAiJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsiCi0g
ICAgIiROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAt
ICROU19TVUJdOyIKLSAgICAiJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07IgotICAgICIk
T1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsiCi0gICAgIiRQTyA9IFtbOkxp
bmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07IgotICAgICIkUFIgPSBbWzpM
aW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07IgotICAgICIkUVUgPSBbOkxp
bmVCcmVhayA9IFF1b3RhdGlvbjpdOyIKLSAgICAiJFJJID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFG
MUZGXTsiCi0gICAgIiRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAg
ICIkU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOyIKLSAgICAiJFNQID0gWzpMaW5lQnJl
YWsgPSBTcGFjZTpdOyIKLSAgICAiJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07
IgotICAgICIkV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9pbmVyOl07IgotICAgICIkWFggPSBb
OkxpbmVCcmVhayA9IFVua25vd246XTsiCi0gICAgIiRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFj
ZTpdOyIKLSAgICAiJFpXSiA9IFxcdTIwMEQ7IgotICAgICIkRW1vamlWYXIgPSBcXHVGRTBGOyIK
LSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUy
NjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAw
MDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxc
VTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcx
IFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFG
NDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAw
MDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxc
VTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2XTsiIC8vIEVtb2ppIHRoYXQgcGFydGlj
aXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1
MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQg
XFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0
NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAw
MUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxV
MDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUg
XFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2
NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAw
MUY5MThdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNl
Ci0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBc
XFUwMDAxRjQ4Ql07IgotICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1cXHUy
NzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxcVTAw
MDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxc
VTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdD
IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFG
NEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAw
MDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwXSA7
IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAgICAi
JEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07IgotICAgICIkZGljdGlvbmFy
eSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIkQUxQbHVzID0gWyRB
TCAkQUkgJFNBICRTRyAkWFhdOyIKLSAgICAiJEFMY20gPSAkQUxQbHVzICRDTSo7IgotICAgICIk
QkFjbSA9ICRCQSAkQ00qOyIKLSAgICAiJEJCY20gPSAkQkIgJENNKjsiCi0gICAgIiRCMmNtID0g
JEIyICRDTSo7IgotICAgICIkQ0xjbSA9ICRDTCAkQ00qOyIKLSAgICAiJENQY20gPSAkQ1AgJENN
KjsiCi0gICAgIiRFWGNtID0gJEVYICRDTSo7IgotICAgICIkR0xjbSA9ICRHTCAkQ00qOyIKLSAg
ICAiJEhMY20gPSAkSEwgJENNKjsiCi0gICAgIiRIWWNtID0gJEhZICRDTSo7IgotICAgICIkSDJj
bSA9ICRIMiAkQ00qOyIKLSAgICAiJEgzY20gPSAkSDMgJENNKjsiCi0gICAgIiRJRGNtID0gJElE
ICRDTSo7IgotICAgICIkSU5jbSA9ICRJTiAkQ00qOyIKLSAgICAiJElTY20gPSAkSVMgJENNKjsi
Ci0gICAgIiRKTGNtID0gJEpMICRDTSo7IgotICAgICIkSlZjbSA9ICRKViAkQ00qOyIKLSAgICAi
JEpUY20gPSAkSlQgJENNKjsiCi0gICAgIiROU2NtID0gJE5TICRDTSo7IgotICAgICIkTlVjbSA9
ICROVSAkQ00qOyIKLSAgICAiJE9QY20gPSAkT1AgJENNKjsiCi0gICAgIiRQT2NtID0gJFBPICRD
TSo7IgotICAgICIkUFJjbSA9ICRQUiAkQ00qOyIKLSAgICAiJFFVY20gPSAkUVUgJENNKjsiCi0g
ICAgIiRSSWNtID0gJFJJICRDTSo7IgotICAgICIkU1ljbSA9ICRTWSAkQ00qOyIKLSAgICAiJFdK
Y20gPSAkV0ogJENNKjsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRGb3J3YXJkID0KLSAg
ICAiISFmb3J3YXJkOyIKLSAgICAiJENBTl9DTSA9IFteJFNQICRCSyAkQ1IgJExGICROTCAkWlcg
JENNXTsiCi0gICAgIiRDQU5UX0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07Igot
ICAgICIkQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOyIKLSAgICAi
JEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRTWSAkV0ogJEdMICRPUCAkUVUg
JEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsiCi0gICAgIiRBTF9GT0xMT1cgPSBbJEFMX0ZP
TExPV19OT0NNICRBTF9GT0xMT1dfQ01dOyIKLSAgICAiJExCNEJyZWFrcyA9IFskQksgJENSICRM
RiAkTkxdOyIKLSAgICAiJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5MXTsiCi0gICAg
IiRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOyIKLSAgICAiJExCOE5vbkJyZWFrcyA9IFtb
JExCNE5vbkJyZWFrc10gLSBbJFpXXV07IgotICAgICIkTEIxOE5vbkJyZWFrcyA9IFskTEI4Tm9u
QnJlYWtzIC0gWyRTUF1dOyIKLSAgICAiJExCMThCcmVha3MgPSBbJExCOEJyZWFrcyAkU1BdOyIK
LSAgICAiJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVha3MgLSAkQ0JdOyIKLSAgICAiJEFM
UGx1cyAkQ00rOyIKLSAgICAiJEJBICRDTSs7IgotICAgICIkQkIgJENNKzsiCi0gICAgIiRCMiAk
Q00rOyIKLSAgICAiJENMICRDTSs7IgotICAgICIkQ1AgJENNKzsiCi0gICAgIiRFWCAkQ00rOyIK
LSAgICAiJEdMICRDTSs7IgotICAgICIkSEwgJENNKzsiCi0gICAgIiRIWSAkQ00rOyIKLSAgICAi
JEgyICRDTSs7IgotICAgICIkSDMgJENNKzsiCi0gICAgIiRJRCAkQ00rOyIKLSAgICAiJElOICRD
TSs7IgotICAgICIkSVMgJENNKzsiCi0gICAgIiRKTCAkQ00rOyIKLSAgICAiJEpWICRDTSs7Igot
ICAgICIkSlQgJENNKzsiCi0gICAgIiROUyAkQ00rOyIKLSAgICAiJE5VICRDTSs7IgotICAgICIk
T1AgJENNKzsiCi0gICAgIiRQTyAkQ00rOyIKLSAgICAiJFBSICRDTSs7IgotICAgICIkUVUgJENN
KzsiCi0gICAgIiRSSSAkQ00rOyIKLSAgICAiJFNZICRDTSs7IgotICAgICIkV0ogJENNKzsiCi0g
ICAgIiRDUiAkTEYgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzPyAkTEI0QnJlYWtzIHsxMDB9
OyIKLSAgICAiJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEwMH07IgotICAgICIkQ00rICRMQjRC
cmVha3MgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsiCi0gICAgIiRDQU5f
Q00gJENNKiBbJFNQICRaV107IgotICAgICIkQ00rIFskU1AgJFpXXTsiCi0gICAgIiRFbW9qaUZv
clNlcXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7IgotICAgICIk
Q0FOX0NNICRDTSs7IgotICAgICIkQ00rOyIKLSAgICAiJENBTl9DTSAkQ00qICRXSmNtOyIKLSAg
ICAiJExCOE5vbkJyZWFrcyAkV0pjbTsiCi0gICAgIiRDTSsgJFdKY207IgotICAgICIkV0pjbSAk
Q0FOVF9DTTsiCi0gICAgIiRXSmNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5fQ00g
JENNKjsiCi0gICAgIiRHTGNtICRDQU5UX0NNOyIKLSAgICAiW1skTEI4Tm9uQnJlYWtzXSAtIFsk
U1AgJEJBICRIWV1dICRDTSogJEdMY207IgotICAgICIkQ00rIEdMY207IgotICAgICIkTEI4Tm9u
QnJlYWtzICRDTDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ0w7IgotICAgICIkQ00rICRDTDsiCi0g
ICAgIiRMQjhOb25CcmVha3MgJENQOyIKLSAgICAiJENBTl9DTSAkQ00qICRDUDsiCi0gICAgIiRD
TSsgJENQOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkRVg7IgotICAgICIkQ0FOX0NNICRDTSogJEVY
OyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkTEI4Tm9uQnJlYWtzICRJUzsiCi0gICAgIiRDQU5f
Q00gJENNKiAkSVM7IgotICAgICIkQ00rICRJUzsiCi0gICAgIiRMQjhOb25CcmVha3MgJFNZOyIK
LSAgICAiJENBTl9DTSAkQ00qICRTWTsiCi0gICAgIiRDTSsgJFNZOyIKLSAgICAiJE9QY20gJFNQ
KiAkQ0FOX0NNICRDTSo7IgotICAgICIkT1BjbSAkU1AqICRDQU5UX0NNOyIKLSAgICAiJE9QY20g
JFNQKyAkQ00rICRBTF9GT0xMT1c/OyIKLSAgICAiJFFVY20gJFNQKiAkT1BjbTsiCi0gICAgIigk
Q0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOyIKLSAgICAiJEIyY20gJFNQKiAkQjJjbTsiCi0gICAg
IiRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207IgotICAgICIkQ00rICRRVWNtOyIKLSAgICAiJFFV
Y20gLj87IgotICAgICIkUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJExCMjBOb25C
cmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsgIgotICAgICIkQkJjbSBbXiRDQl07
IgotICAgICIkQkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJEhMY20gKCRIWWNtIHwg
JEJBY20pIFteJENCXT87IgotICAgICIkU1ljbSAkSExjbTsiCi0gICAgIigkQUxjbSB8ICRITGNt
KSAkSU5jbTsiCi0gICAgIiRDTSsgJElOY207IgotICAgICIkRVhjbSAkSU5jbTsiCi0gICAgIiRJ
RGNtICRJTmNtOyIKLSAgICAiJElOY20gJElOY207IgotICAgICIkTlVjbSAkSU5jbTsiCi0gICAg
IiRJRGNtICRQT2NtOyIKLSAgICAiJEFMY20gJE5VY207IgotICAgICIkSExjbSAkTlVjbTsiCi0g
ICAgIiRDTSsgJE5VY207IgotICAgICIkTlVjbSAkQUxjbTsiCi0gICAgIiROVWNtICRITGNtOyIK
LSAgICAiJFBSY20gJElEY207IgotICAgICIkUFJjbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIk
UE9jbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJFBSY20gfCAkUE9jbSk/ICgkT1BjbSB8ICRI
WWNtKT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRDUGNtKT8gKCRQ
UmNtIHwgJFBPY20pPzsiCi0gICAgIiRKTGNtICgkSkxjbSB8ICRKVmNtIHwgJEgyY20gfCAkSDNj
bSk7IgotICAgICIoJEpWY20gfCAkSDJjbSkgKCRKVmNtIHwgJEpUY20pOyIKLSAgICAiKCRKVGNt
IHwgJEgzY20pICRKVGNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwg
JEgzY20pICRJTmNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgz
Y20pICRQT2NtOyIKLSAgICAiJFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwg
JEgzY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRD
TSsgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJElTY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAi
KCRBTGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207IgotICAgICIkQ00rICRPUGNtOyIKLSAgICAi
JENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVAotICAgICIkUkljbSAkUkljbTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppRm9yTW9kcyAkRW1v
amlWYXI/ICRFbW9qaU1vZHM7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UmV2ZXJzZSA9
Ci0gICAgIiEhcmV2ZXJzZTsiCi0gICAgIiRDTSsgJEFMUGx1czsiCi0gICAgIiRDTSsgJEJBOyIK
LSAgICAiJENNKyAkQkI7IgotICAgICIkQ00rICRCMjsiCi0gICAgIiRDTSsgJENMOyIKLSAgICAi
JENNKyAkQ1A7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRDTSsgJEdMOyIKLSAgICAiJENNKyAk
SEw7IgotICAgICIkQ00rICRIWTsiCi0gICAgIiRDTSsgJEgyOyIKLSAgICAiJENNKyAkSDM7Igot
ICAgICIkQ00rICRJRDsiCi0gICAgIiRDTSsgJElOOyIKLSAgICAiJENNKyAkSVM7IgotICAgICIk
Q00rICRKTDsiCi0gICAgIiRDTSsgJEpWOyIKLSAgICAiJENNKyAkSlQ7IgotICAgICIkQ00rICRO
UzsiCi0gICAgIiRDTSsgJE5VOyIKLSAgICAiJENNKyAkT1A7IgotICAgICIkQ00rICRQTzsiCi0g
ICAgIiRDTSsgJFBSOyIKLSAgICAiJENNKyAkUVU7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVAotICAgICIkQ00rICRSSTsiCi0jZW5kaWYKLSAgICAiJENNKyAkU1k7IgotICAgICIkQ00r
ICRXSjsiCi0gICAgIiRDTSs7IgotICAgICIkQUxfRk9MTE9XICRDTSsgLyAoWyRCSyAkQ1IgJExG
ICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14kT1AgJENNICRT
UF0gfCBbJEFMIHtlb2Z9XSkpOyIKLSAgICAiWyRQUl0gLyAkQ00rIFskQksgJENSICRMRiAkTkwg
JFpXICRTUCB7ZW9mfV07IgotICAgICIkTEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtzLSRDTV07Igot
ICAgICIkTEI0QnJlYWtzICRDTSsgJENBTl9DTTsiCi0gICAgIiRMRiAkQ1I7IgotICAgICJbJFNQ
ICRaV10gWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIlskU1AgJFpXXSAkQ00rICRDQU5fQ007
IgotICAgICIkRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2ppVmFyPyAkRW1vamlG
b3JTZXFzOyIKLSAgICAiJENNKyAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogJENNKiAkQ0FOX0NN
OyIKLSAgICAiJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRDQU5UX0NNICRD
TSogJFdKOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkR0wgJENN
KiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZXV07IgotICAgICIkQ0FOVF9DTSAkQ00q
ICRHTDsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRHTDsiCi0gICAgIiRDTCAkQ00rICRDQU5f
Q007IgotICAgICIkQ1AgJENNKyAkQ0FOX0NNOyIKLSAgICAiJEVYICRDTSsgJENBTl9DTTsiCi0g
ICAgIiRJUyAkQ00rICRDQU5fQ007IgotICAgICIkU1kgJENNKyAkQ0FOX0NNOyIKLSAgICAiJENM
IFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ1AgWyRMQjhOb25CcmVha3MtJENNXTsiCi0g
ICAgIiRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJElTIFskTEI4Tm9uQnJlYWtzLSRD
TV07IgotICAgICIkU1kgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIlskQ0wgJENQICRFWCAk
SVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7ICIKLSAgICAiJENNKiAkQ0FOX0NNICRTUCogJENN
KiAkT1A7IgotICAgICIkQ0FOVF9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAiJEFMX0ZPTExPVz8g
JENNKyAkU1AgJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xMT1dfTk9DTSAkQ00rICRTUCsg
JENNKiAkT1A7IgotICAgICIkQ00qICRBTF9GT0xMT1dfQ00gJENNKyAkU1ArICRDTSogJE9QOyIK
LSAgICAiJFNZICRDTSAkU1ArICRPUDsiCi0gICAgIiRDTSogJE9QICRTUCogJENNKiAkUVU7Igot
ICAgICIkQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIkQ00qICRCMiAkU1Aq
ICRDTSogJEIyOyIKLSAgICAiJENNKiAkUVUgJENNKiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkUVUg
JExCMThOb25CcmVha3M7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkUVU7IgotICAgICIkQ0FO
VF9DTSAkQ00qICRRVTsiCi0gICAgIiRDTSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBbJExCMjBO
b25CcmVha3MtJENNXTsiCi0gICAgIiRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV0gJENNKiAkQkI7
IgotICAgICJbXiRDQl0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAoJEhZIHwgJEJBKSAk
Q00qICRITDsiCi0gICAgIiRDTSogJEhMICRDTSogJFNZOyIKLSAgICAiJENNKiAkSU4gJENNKiAo
JEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICRJTiAkQ00qICRFWDsiCi0gICAgIiRDTSogJElO
ICRDTSogJElEOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSU47IgotICAgICIkQ00qICRJTiAkQ00q
ICROVTsiCi0gICAgIiRDTSogJFBPICRDTSogJElEOyIKLSAgICAiJENNKiAkTlUgJENNKiAoJEFM
UGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICROVTsiCi0gICAg
IiRDTSogJElEICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUFI7
IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQTzsiCi0gICAgIigkQ00qICgkUFIg
fCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElTIHwgJFNZKSkqICRD
TSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykpPzsiCi0gICAgIiRD
TSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7IgotICAgICIkQ00qICgkSlQgfCAk
SlYpICRDTSogKCRIMiB8ICRKVik7IgotICAgICIkQ00qICRKVCAkQ00qICgkSDMgfCAkSlQpOyIK
LSAgICAiJENNKiAkSU4gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsiCi0gICAg
IiRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7IgotICAgICIkQ00q
ICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFM
UGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwg
JEhMKSAkQ00qICRJUzsiCi0gICAgIiRDTSogJE9QICRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUp
OyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7IgotI2lmIEFERElU
SU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00qICRSSSAkQ00qICRSSTsiCi0jZW5kaWYKLSAg
ICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7IjsKLQotc3RhdGljIGNvbnN0
IGNoYXIqIHVheDE0U2FmZUZvcndhcmQgPQotICAgICIhIXNhZmVfZm9yd2FyZDsiCi0gICAgIlsk
Q00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnldKyBbXiRD
TSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsiCi0gICAgIiRk
aWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVS
ZXZlcnNlID0KLSAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICIkQ00rIFteJENNICRCSyAkQ1Ig
JExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRDTSsgJFNQIC8gLjsiCi0gICAgIiRTUCsgJENNKiAk
T1A7IgotICAgICIkU1ArICRDTSogJFFVOyIKLSAgICAiJFNQKyAkQ00qICgkQ0wgfCAkQ1ApOyIK
LSAgICAiJFNQKyAkQ00qICRCMjsiCi0gICAgIiRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7Igot
ICAgICIoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOyIKLSAgICAiKCRDTCB8ICRDUCkgJENN
KiAoJE5VIHwgJElTIHwgJFNZKTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0K
IHN0YXRpYyBTdHJpbmcgbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMoTGluZUJyZWFrSXRlcmF0
b3JNb2RlIG1vZGUsIGJvb2wgaXNDSkspCiB7Ci0gICAgU3RyaW5nQnVpbGRlciBydWxlc0J1aWxk
ZXI7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFByb2xvZ3VlKTsKLSAgICBydWxlc0J1
aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNCZWZvcmUpOwogICAgIHN3aXRjaCAobW9kZSkg
ewogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTQ6Ci0gICAgICAgIHJ1bGVzQnVp
bGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdENKSyA6IHVh
eDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAg
ICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSktSdWxlcyA6IGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9y
TW9kZVVBWDE0TG9vc2U6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgx
NEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VO
b25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlQ0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VO
b25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0Tm9ybWFsOgot
ICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3Rv
bU5vcm1hbENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxOb25DSkspOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOwog
ICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRTdHJpY3Q6Ci0gICAgICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLIDog
dWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAg
ICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLUnVsZXMg
OiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CiAgICAgfQotICAgIHJ1
bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0FmdGVyKTsKLSAgICBydWxlc0J1aWxk
ZXIuYXBwZW5kKHVheDE0Rm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFJl
dmVyc2UpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZlRm9yd2FyZCk7Ci0gICAg
cnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVSZXZlcnNlKTsKLSAgICByZXR1cm4gcnVsZXNC
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
ICIiOwogfQogCiAvLyBSZWNvZ25pemUgQkNQNDcgY29tcGxpYW50IHByaW1hcnkgbGFuZ3VhZ2Ug
dmFsdWVzIG9mICd6aCcsICdqYScsICdrbycKQEAgLTc4Niw5ICsyNTIsMjkgQEAgVGV4dEJyZWFr
SXRlcmF0b3IqIG9wZW5MaW5lQnJlYWtJdGVyYXRvcihjb25zdCBBdG9taWNTdHJpbmcmIGxvY2Fs
ZSwgTGluZUJyZWFrSXQKICAgICBpZiAobW9kZSA9PSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgx
NCkKICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBsb2NhbGVJc0VtcHR5
ID8gY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkgOiBsb2NhbGUuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOwogICAgIGVsc2UgewotICAgICAgICBVUGFyc2VFcnJv
ciBwYXJzZVN0YXR1czsKLSAgICAgICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVU
b1J1bGVzKG1vZGUsIGlzQ0pLKTsKLSAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW5SdWxlcyhT
dHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcnVsZXMubGVuZ3RoKCks
IDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0dXMpOworICAgICAgICBCcmVha2luZ1J1bGVT
ZXQgcnVsZVNldDsKKyAgICAgICAgc3dpdGNoIChtb2RlKSB7CisgICAgICAgIGNhc2UgTGluZUJy
ZWFrSXRlcmF0b3JNb2RlVUFYMTQ6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVh
a2luZ1J1bGVTZXQ6OlVBWDE0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZVVBWDE0
TG9vc2U6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVB
WDE0TG9vc2VDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGVVQVgxNE5vcm1h
bDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRO
b3JtYWxDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pLOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlVUFYMTRTdHJpY3Q6
CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3Ry
aWN0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdE5vbkNKSzsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gY3JlYXRl
SXRlcmF0b3JGb3JSdWxlU2V0KHJ1bGVTZXQpKQorICAgICAgICAgICAgdWJya0l0ZXIgPSByZWlu
dGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpOworICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgIFVQYXJzZUVycm9yIHBhcnNlU3RhdHVzOworICAgICAgICAgICAgYXV0byBy
dWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsKKyAgICAgICAg
ICAgIHVicmtJdGVyID0gdWJya19vcGVuUnVsZXMoU3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0
ZWRDaGFyYWN0ZXJzKCksIHJ1bGVzLmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVu
U3RhdHVzKTsKKyAgICAgICAgfQogICAgIH0KICAgICAvLyBsb2NhbGUgY29tZXMgZnJvbSBhIHdl
YiBwYWdlIGFuZCBpdCBjYW4gYmUgaW52YWxpZCwgbGVhZGluZyBJQ1UKICAgICAvLyB0byBmYWls
LCBpbiB3aGljaCBjYXNlIHdlIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCBsb2NhbGUuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmggYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKaW5kZXggZDkwMzIxNWFlNDEzN2U0YzNh
OWVhMzViM2QwMjViZjUyZTQ1MThlYy4uZDgyMWIzMTY3OTE5YjQ0MjlmYTU0YzFlNWIzZjQ2N2M1
MjA2MTM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRv
ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaApAQCAtMzgs
NiArMzgsMzAgQEAgZW51bSBMaW5lQnJlYWtJdGVyYXRvck1vZGUgewogICAgIExpbmVCcmVha0l0
ZXJhdG9yTW9kZVVBWDE0U3RyaWN0LAogfTsKIAorZW51bSBjbGFzcyBCcmVha2luZ1J1bGVTZXQg
eworICAgIEN1cnNvck1vdmVtZW50LAorICAgIFVBWDE0Q0pLLAorICAgIFVBWDE0Tm9uQ0pLLAor
ICAgIFVBWDE0TG9vc2VDSkssCisgICAgVUFYMTRMb29zZU5vbkNKSywKKyAgICBVQVgxNE5vcm1h
bENKSywKKyAgICBVQVgxNE5vcm1hbE5vbkNKSywKKyAgICBVQVgxNFN0cmljdENKSywKKyAgICBV
QVgxNFN0cmljdE5vbkNKSworfTsKKworZXh0ZXJuIGNvbnN0IGNoYXIqIGN1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0
Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
S1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
S1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3ROb25DSktSdWxlczsKKworVGV4dEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9y
Rm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpOworCiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8gY2hh
cmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRvCiAv
LyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0aGlz
IGNhbiBiZSBkaWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlzIFRo
YWkgcHJlcGVuZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0K
aW5kZXggYmVmNWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVlOGU4OGEzODkyYy4uMmFlY2YwOWU4
MjU0NGM2NmI3ZDFjMWU1YWFhYzY0ZjVmZmYzMDJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCkBA
IC0yMSwxMiArMjEsMTIwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dEJy
ZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3Iu
aCIKKworI2lmIGRlZmluZWQoVV9TSE9XX0NQTFVTUExVU19BUEkpCisjdW5kZWYgVV9TSE9XX0NQ
TFVTUExVU19BUEkKKyNlbmRpZgorI2RlZmluZSBVX1NIT1dfQ1BMVVNQTFVTX0FQSSAxCisKKyNp
bmNsdWRlIDx1bmljb2RlL3JiYmkuaD4KKyNpbmNsdWRlIDx1bmljb2RlL3VkYXRhLmg+CisjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCitAaW50ZXJmYWNlIFdURkJ1bmRsZUZpbmRlciA6
IE5TT2JqZWN0CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXVEZCdW5kbGVGaW5kZXIKK0BlbmQK
KwogbmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdCBpbnQgbWF4TG9jYWxlU3RyaW5nTGVu
Z3RoID0gMzI7CiAKK3N0cnVjdCBSdWxlQ2FjaGUgeworICAgIHN0ZDo6dW5pcXVlX3B0cjxSdWxl
QmFzZWRCcmVha0l0ZXJhdG9yPiBpdGVyYXRvcjsKKyAgICBib29sIGZhaWxlZCB7IGZhbHNlIH07
Cit9OworCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFr
aW5nUnVsZVNldCBydWxlU2V0KQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2Fj
aGU+IGN1cnNvck1vdmVtZW50SXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1
bGVDYWNoZT4gbGluZUJyZWFrVUFYMTRDSktJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNE5vbkNKS0l0ZXJhdG9yOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0TG9vc2VDSktJdGVyYXRv
cjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNExv
b3NlTm9uQ0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4g
bGluZUJyZWFrVUFYMTROb3JtYWxDSktJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNE5vcm1hbE5vbkNKS0l0ZXJhdG9yOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0U3RyaWN0Q0pLSXRl
cmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFY
MTRTdHJpY3ROb25DSktJdGVyYXRvcjsKKworICAgIE5TU3RyaW5nICpmaWxlTmFtZUJhc2U7Cisg
ICAgUnVsZUNhY2hlKiBjYWNoZSA9IG51bGxwdHI7CisKKyAgICBzd2l0Y2ggKHJ1bGVTZXQpIHsK
KyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQ6CisgICAgICAgIGZpbGVO
YW1lQmFzZSA9IEAiQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzIjsKKyAgICAgICAgY2FjaGUg
PSAmY3Vyc29yTW92ZW1lbnRJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxp
bmVCcmVha0l0ZXJhdG9yVUFYMTRDSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgx
NENKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVs
ZVNldDo6VUFYMTROb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vbkNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0Tm9uQ0pL
SXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0
OjpVQVgxNExvb3NlQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZUNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0TG9vc2VD
SktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVT
ZXQ6OlVBWDE0TG9vc2VOb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFY
MTRMb29zZU5vbkNKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJy
ZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAi
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVC
cmVha1VBWDE0Tm9ybWFsQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVC
YXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLIjsKKyAgICAgICAgY2Fj
aGUgPSAmbGluZUJyZWFrVUFYMTROb3JtYWxOb25DSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Q0pLOgorICAgICAg
ICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksiOworICAg
ICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNFN0cmljdENKS0l0ZXJhdG9yLmdldCgpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3ROb25DSks6
CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5v
bkNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0U3RyaWN0Tm9uQ0pLSXRlcmF0
b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEFTU0VSVChjYWNoZSk7CisK
KyAgICBpZiAoY2FjaGUtPmZhaWxlZCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBp
ZiAoIWNhY2hlLT5pdGVyYXRvcikgeworICAgICAgICBOU0J1bmRsZSAqYnVuZGxlID0gW05TQnVu
ZGxlIGJ1bmRsZUZvckNsYXNzOltXVEZCdW5kbGVGaW5kZXIgY2xhc3NdXTsKKyAgICAgICAgTlNT
dHJpbmcgKnBhdGggPSBbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpmaWxlTmFtZUJhc2Ugb2ZUeXBl
OkAiYnJrIiBpbkRpcmVjdG9yeTpAIkJyZWFraW5nUnVsZXMiXTsKKyAgICAgICAgaWYgKCFwYXRo
KSB7CisgICAgICAgICAgICBjYWNoZS0+ZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgTlNTdHJpbmcgKmRpcmVjdG9yeSA9IFtw
YXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF07CisgICAgICAgIFVFcnJvckNv
ZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAgICAgICBMb2NhbFVEYXRhTWVtb3J5UG9p
bnRlciBkYXRhKHVkYXRhX29wZW4oW2RpcmVjdG9yeSBVVEY4U3RyaW5nXSwgImJyayIsIFtmaWxl
TmFtZUJhc2UgVVRGOFN0cmluZ10sICZlcnJvckNvZGUpKTsKKyAgICAgICAgaWYgKGVycm9yQ29k
ZSAhPSBVX1pFUk9fRVJST1IpIHsKKyAgICAgICAgICAgIGNhY2hlLT5mYWlsZWQgPSB0cnVlOwor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBjYWNoZS0+
aXRlcmF0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+KGRhdGEu
b3JwaGFuKCksIGVycm9yQ29kZSk7CisgICAgICAgIGlmIChlcnJvckNvZGUgIT0gVV9aRVJPX0VS
Uk9SKSB7CisgICAgICAgICAgICBjYWNoZS0+ZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGNh
Y2hlLT5pdGVyYXRvciA9IG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRleHRCcmVha0l0
ZXJhdG9yKj4oc3RkOjptYWtlX3VuaXF1ZTxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPigqY2FjaGUt
Pml0ZXJhdG9yKS5yZWxlYXNlKCkpOworfQorCiBzdGF0aWMgaW5saW5lIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gdGV4dEJyZWFrTG9jYWxlUHJlZmVyZW5jZSgpCiB7CiAgICAgUmV0YWluUHRyPENG
UHJvcGVydHlMaXN0UmVmPiBsb2NhbGUgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5VmFsdWUo
Q0ZTVFIoIkFwcGxlVGV4dEJyZWFrTG9jYWxlIiksCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
V2ViS2l0RlMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKaW5kZXggMjlhMDk2
OTAzOGZhYTc0NGUxYThjNThmMzU2YWQwNzNmMDA1MjViZC4uODFmNTRhNTZhZDY5NTNkN2IxZTIw
Yzg4ZmE4NWJiZGRkMWYwN2U4YyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdEZTLmNt
YWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQpAQCAtMjQsNiArMjQsNyBAQCBp
ZiAoTk9UIFRPT0xTX0RJUikKIGVuZGlmICgpCiAKIHNldChERVJJVkVEX1NPVVJDRVNfRElSICIk
e0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzIikKK3NldChERVJJVkVEX1NPVVJDRVNf
V1RGX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XVEYiKQogc2V0KERF
UklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVy
aXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJDT1JF
X0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJDb3JlIikKIHNldChE
RVJJVkVEX1NPVVJDRVNfV0VCS0lUTEVHQUNZX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJp
dmVkU291cmNlcy9XZWJLaXRMZWdhY3kiKQpAQCAtMzIsNiArMzMsOCBAQCBzZXQoREVSSVZFRF9T
T1VSQ0VTX1dFQktJVDJfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVIgIiR7Q01BS0Vf
QklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9yVUkiKQogCiBmaWxlKE1BS0Vf
RElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0pCitmaWxlKE1B
S0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9KQorZmlsZShNQUtFX0RJUkVD
VE9SWSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzKQogZmlsZShNQUtF
X0RJUkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lKQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RP
UlVJX0RJUn0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297121</attachid>
            <date>2016-12-14 13:36:04 -0800</date>
            <delta_ts>2016-12-14 14:01:03 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20161214133513.patch</filename>
            <type>text/plain</type>
            <size>114237</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NDIzNzczZWJmOWU0N2U2ODQ2YWU4NmUzZDg5ZTAwYWNjZDNlODlhLi45YmZlY2JlZDhmYmNlYjMy
ZGIwOGM0MmFmYWZiOGQxNDEzYzhiNTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0xMi0xNCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMTItMTQgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCBkaXNhYmxlIGNvbmN1cnJlbnQgR0Mgb24gQVJNIHdoaWxlIHdl
IGludmVzdGlnYXRlIGEgbWVtb3J5IHVzZSByZWdyZXNzaW9uLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBmMmVjODQyOWZkMmYz
ZDVlNGY0MTI5MTVhMWU2MmVjYWI3NjJhYmIxLi5iODRlMGU1YjgyNTc3OGY5YWI4NTk0OTBhYjM4
NDk3NTBlMGUyZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE2LTEyLTE0ICBNeWxlcyBDLiBN
YXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJQ1UgYnJl
YWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi9nZW5icms6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dDogQWRkZWQuCisgICAg
ICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclByb2xvZ3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQ6
IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9y
LmNwcDoKKyAgICAgICAgKFdURjo6aXRlcmF0b3JGb3JSdWxlU2V0KToKKyAgICAgICAgKFdURjo6
Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6CisgICAgICAgIChXVEY6Om9wZW5MaW5lQnJlYWtJdGVy
YXRvcik6CisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDoKKyAgICAgICAg
KiB3dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbToKKyAgICAg
ICAgKFdURjo6aXRlcmF0b3JGb3JSdWxlU2V0KToKKwogMjAxNi0xMi0xNCAgRW5yaXF1ZSBPY2HD
sWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjIwNzg3OS0yMDc4OTEpOiBbR1N0cmVhbWVyXSBJbnRyb2R1Y2VkIG1hbnkgbGF5b3V0IHRlc3Qg
ZmFpbHVyZXMgYW5kIGNyYXNoZXMsIGJvdHMgZXhpdGluZyBlYXJseQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBhZWFjZjYwNmI0ZjE3MDRlZjNmNGExMWY1ODViNDA4MDAwMGVlZDA5
Li5iMTBlMjdlM2QyYmQ3YjBmYTNjMTkyZjI5NGM4MGM1YzJjYjNlMDBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTIwNSw2ICsxMjA1LDcgQEAKIAkJMUEyOEQ0QTgxNzdCNzFD
ODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyOEQ0QTcxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3Ry
aW5nUmVmUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFBODgyNkIxNjUzQzRDRDFBNjQyOTgzQiAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5
VGFibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OEI0N0YyMzQzNjZDNEI3MkFDODUyQTdFIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAg
Ki87IH07CiAJCTFBQ0Y3Mzc3MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQ0Y3Mzc2MTcxQ0E2RkIwMEM5
QkIxRSAvKiBXZWFrLmNwcCAqLzsgfTsKKwkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJy
ZWFraW5nUnVsZXMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDRDE4NzhGMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovOyB9OwogCQky
NjAwQjVBNjE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1QTQxNTJCQUFBNzAwOTFF
RTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLzsgfTsKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFF
RTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIu
aCAqLzsgfTsKIAkJMjYyRDg1QjYxQzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdp
c3RlclN0YWxscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyNjJEODVCNDFDMEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3Rh
bGxzLmNwcCAqLzsgfTsKQEAgLTM1ODgsNiArMzU4OSw3IEBACiAJCTFDOTA1MTQ1MEJBOUU4QTcw
MDgxRTlEMCAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9
IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRBMEQz
MkMzOUEwMDQxQkNGRiAvKiBKYXZhU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEphdmFTY3JpcHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThC
NEIwRDMyQzM5QTAwNDFCQ0ZGIC8qIEphdmFTY3JpcHRDb3JlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHRDb3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDRDE4NzhGMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZm9sZGVyOyBuYW1lID0g
QnJlYWtpbmdSdWxlczsgcGF0aCA9IC4uL1dURi9CcmVha2luZ1J1bGVzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2lu
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2lu
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5
MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNTdHJpbmdKb2luZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYyRDg1
QjQxQzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJT
dGFsbHMuY3BwOyBwYXRoID0gYjMvYWlyL0FpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01OTA0LDYgKzU5MDYsNyBAQAogCQk2NTBG
REY4RDA5RDBGQ0E3MDA3NjlFNTQgLyogRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMg
LyogQnJlYWtpbmdSdWxlcyAqLywKIAkJCQlBRDJGQ0MwQTFEQjU5QzU5MDBCM0U3MzYgLyogV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5sdXQuaCAqLywKIAkJCQlBRDJGQ0MwQjFE
QjU5QzU5MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUubHV0Lmgg
Ki8sCiAJCQkJQUQyRkNDMEMxREI1OUM1OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5SW5zdGFuY2VD
b25zdHJ1Y3Rvci5sdXQuaCAqLywKQEAgLTkyNTcsNiArOTI2MCw3IEBACiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAw
NzJFQjZEIC8qIGZyYW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMUNEMTg3OTAxRDU1
OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmVmZjViNzYzY2E4ZTBmMzZkMmFm
ZGJmN2E1MWU5ZDdhMTgzOWE2OC4uNTI1ZjZkZTMyNjYzNDRlZThmY2NkNDk3N2E0NTQ1OGUwZTQ5
NjY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYg
KzcsMTcgQEAKIAlvYmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2Vj
dGlvbiAqLworCQkxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICov
ID0geworCQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9u
TGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMwMENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxp
c3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxk
UGhhc2VzID0gKAorCQkJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJp
dmVkIFNvdXJjZXMgKi8sCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5h
bWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXByb2R1Y3ROYW1lID0gIkNvcHkgV1RGIEhlYWRl
cnMiOworCQl9OwogCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVy
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJh
dGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlv
biBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAt
ODEsNyArOTIsNiBAQAogCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5m
cmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07
CiAJCTE0NDdBRUM3MThGQ0U1ODAwMEIzRDdGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMjQ3QjYyMTQ2ODlCODYwMEU3OEI3
NiAvKiBsaWJXVEYuYSAqLzsgfTsKIAkJMTQ0N0FFQzkxOEZDRTU5NDAwQjNEN0ZGIC8qIG1ibWFs
bG9jLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
NDdBRUM4MThGQ0U1OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAgKi87IH07Ci0JCTE0NDdBRUNC
MThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8q
IGxpYmljdWNvcmUuZHlsaWIgKi87IH07CiAJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBS
dW5Mb29wVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE0Njk0MTkwMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkxNDY5NDE5MzE2RUFBRjZEMDAyNEUxNDYg
LyogUnVuTG9vcFRpbWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTQ2OTQxOTExNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNw
cCAqLzsgfTsKIAkJMTQ2OTQxOTYxNkVBQUZGODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2OTQxOTQxNkVB
QUZGODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oICovOyB9OwpAQCAtMzM0LDYgKzM0NCwxNiBA
QAogCQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4QjE1MUE4MjY0MDA0MTIzRkYg
LyogY29uZmlnLmggKi87IH07CiAJCUFEN0M0MzRCMUREMkE0QTcwMDI2ODg4QiAvKiBFeHBlY3Rl
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ3QzQz
NEExREQyQTRBNzAwMjY4ODhCIC8qIEV4cGVjdGVkLmggKi87IH07CiAJCUIzOEZEN0JEMTY4OTUz
RTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVE
ZWZpbmVzLmggKi87IH07CisJCUMyQkE1NDNFMUQ1ODZBRjQwMDBBMzMzMiAvKiBsaWJpY3Vjb3Jl
LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi87IH07CisJCUMy
Q0EzN0U5MUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTAx
RDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi87IH07
CisJCUMyQ0EzN0VBMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pL
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Ez
N0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLzsg
fTsKKwkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZUNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUQxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwICovOyB9OworCQlDMkNBMzdFRTFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNTFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi87IH07CisJ
CUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Tm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RjAxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwICovOyB9OworCQlDMkNBMzdGMTFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFODFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAgKi87IH07CiAJCUM0
RjhBOTM3MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBT
dG9wd2F0Y2guaCAqLzsgfTsKIAkJQzhCMEUxQTFFMDFBNDg2RUI5NUUwRDExIC8qIEluZGV4U2V0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM3RTFE
N0RCRDg0QUMzOEZBRTREMzQgLyogSW5kZXhTZXQuaCAqLzsgfTsKIAkJQzkxNkI5NzVGMDJGNEY3
RThCNEFCMTJEIC8qIEluZGV4TWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QjQzMzgzQTVEMEI0NjNDOTQzM0Q5MzMgLyogSW5kZXhNYXAuaCAqLzsg
fTsKQEAgLTM2OCw2ICszODgsMTMgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdC
NjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3
ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlz
YSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5
MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7
CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJ
CXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5
RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENv
bnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYw
MEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTQ3Niw2ICs1MDMsMTggQEAKIAkJMUMx
ODFDOEQxRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM4RTFEMzA3QUI4MDBGNUZBMTYgLyogVVRl
eHRQcm92aWRlclVURjE2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUZXh0
UHJvdmlkZXJVVEYxNi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM5NTFE
MzA4MDBBMDBGNUZBMTYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRleHRCcmVha0l0ZXJhdG9ySW50
ZXJuYWxJQ1VNYWMubW07IHBhdGggPSBtYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlG
RTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQ0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlB
OTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDQjRGQjk4MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNC
NEZCOTkxRDU1OUFFRjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25D
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5
QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUMxRDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0
ZXJhdG9yRXBpbG9ndWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJh
dG9yRXBpbG9ndWUudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFE
NTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNv
dXJjZXMubWFrZTsgcGF0aCA9IHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB1c2VzVGFicyA9IDE7IH07CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAv
KiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1
NTk5NjUwMENDN0RFQyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJl
YWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVh
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2
OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkNvcmVUaHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgx
NUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzA1LDYgKzc0NCwxNiBAQAogCQlBOEE0NzQ4QjE1
MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IGNvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDdDNDM0QTFERDJB
NEE3MDAyNjg4OEIgLyogRXhwZWN0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRXhwZWN0ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjM4RkQ3QkMxNjg5
NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUMyQkE1NDNGMUQ1ODc0RTYwMDBBMzMzMiAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3Mu
cHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnNjcmlwdC5weXRob247IHBhdGggPSBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHk7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBD
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgcGF0aCA9IEJyZWFr
aW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNB
MzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0Uz
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJD
QTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNTFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U2MUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3
RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3RDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdF
ODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRpbWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTczNiw3ICs3ODUsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTE0NDdBRUM2MThGQ0U1NzcwMEIzRDdGRiAv
KiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTE0NDdBRUNCMThG
Q0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCisJCQkJ
QzJCQTU0M0UxRDU4NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3Jr
cyAqLywKIAkJCQkxNDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3
b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKQEAgLTc3Myw2ICs4MjIsMjUgQEAKIAkJCXBhdGggPSBpY3U7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OworCQkxQ0QxODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdS
dWxlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQzJC
QTU0M0YxRDU4NzRFNjAwMEEzMzMyIC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAq
LywKKwkJCQkxQ0QxODc5MjFENTU5OEUxMDBDQzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLnR4dCAqLywKKwkJCQkxQ0QxODc5MzFENTU5OTY1MDBDQzdERUMgLyogTGluZUJyZWFr
SXRlcmF0b3JQcm9sb2d1ZS50eHQgKi8sCisJCQkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0ICovLAorCQkJCTFDQjRGQjk1MUQ1NTlBNjkw
MEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0
RkI5NjFENTU5QTkwMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4
dCAqLywKKwkJCQkxQ0I0RkI5NzFENTU5QUE4MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5ODFENTU5QUQyMDBGOUZFMzggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQgKi8sCisJCQkJMUNCNEZCOTkxRDU1
OUFFRjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICov
LAorCQkJCTFDQjRGQjlBMUQ1NTlCMjMwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QjFENTU5QjNFMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUMxRDU1OUI2
NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovLAorCQkJKTsKKwkJ
CXBhdGggPSBCcmVha2luZ1J1bGVzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsK
IAkJMUZBNDdDODcxNTI1MDJEQTAwNTY4RDFCIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC03OTQsMTAgKzg2MiwxMiBAQAogCQk1RDI0N0I1NzE0
Njg5Qjg2MDBFNzhCNzYgPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCTFDRDE4NzhBMUQ1NThBRDMwMENDN0RFQyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovLAog
CQkJCTVEMjQ3QjZEMTQ2ODlDNDcwMEU3OEI3NiAvKiBDb25maWd1cmF0aW9ucyAqLywKIAkJCQkx
NDAyMkYzRjE4RjVDM0U1MDA3RkYwRUIgLyogTGlicmFyaWVzICovLAogCQkJCTVEMjQ3QjYzMTQ2
ODlCODYwMEU3OEI3NiAvKiBQcm9kdWN0cyAqLywKIAkJCQk1RDI0N0I3NjE0Njg5RDc2MDBFNzhC
NzYgLyogU291cmNlICovLAorCQkJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVk
IFNvdXJjZXMgKi8sCiAJCQkJMTQ0N0FFQzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24u
ZnJhbWV3b3JrICovLAogCQkJCTE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3Jl
LmR5bGliICovLAogCQkJKTsKQEAgLTExNTMsNiArMTIyMyw3IEBACiAJCUE4QTQ3MzFCMTUxQTgy
NUIwMDQxMjNGRiAvKiB0ZXh0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQkxQ0QxODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywK
IAkJCQlBNUJBMTVGNjE4MjQzNTlFMDBBODJFNjkgLyogY2YgKi8sCiAJCQkJMUMxODFDODgxRDMw
N0FCODAwRjVGQTE2IC8qIGljdSAqLywKIAkJCQlBNUJBMTVGMTE4MjQzMzlGMDBBODJFNjkgLyog
bWFjICovLApAQCAtMTIzMCw2ICsxMzAxLDIzIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQzJDQTM3REYxRDU1QzhEODAwNDg2Qjk4IC8qIERl
cml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAgKi8sCisJCQkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksuY3BwICovLAorCQkJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwICovLAorCQkJCUMyQ0EzN0UzMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovLAor
CQkJCUMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9u
Q0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovLAorCQkJCUMyQ0Ez
N0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNw
cCAqLywKKwkJCQlDMkNBMzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKSy5jcHAgKi8sCisJCQkpOworCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJj
ZXMiOworCQkJcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dURjsKKwkJCXNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7CisJCX07CiAJCUNFNDY1MTZDMTlEQjFGQjQwMDNFQ0EwNSAvKiBjb2Nv
YSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNTU5LDYg
KzE2NDcsNyBAQAogCQkJYnVpbGRSdWxlcyA9ICgKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMgPSAo
CisJCQkJMUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8s
CiAJCQkJNjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8s
CiAJCQkpOwogCQkJbmFtZSA9IFdURjsKQEAgLTE1ODksMTIgKzE2NzgsMjcgQEAKIAkJCXRhcmdl
dHMgPSAoCiAJCQkJNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLywKIAkJCQk2NUFG
QTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLywKKwkJCQkxQ0QxODc4
MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0NDdBRUJEMThG
Q0U1NjkwMEIzRDdGRiAvKiBtYm1hbGxvYyAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJYUHJv
amVjdCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0
aW9uICovCisJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNv
dXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQ
YXRocyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNlcyI7CisJ
CQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJt
a2RpciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuY2Qg
XCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcblxuL2Jpbi9sbiAt
c2ZoIFwiJHtTUkNST09UfVwiIFdURlxuZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsgISAtZCBC
cmVha2luZ1J1bGVzIF07IHRoZW5cbiAgICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxuXG5pZiBb
IFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdOyB0aGVuXG4gICAg
ZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0wXG5lbHNlXG4gICAgZXhwb3J0IEFERElU
SU9OQUxfRU1PSklfU1VQUE9SVD0xXG5maVxuXG5pZiBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RB
UkdFVFwiID09IFwiMTAuMTBcIiBdIHx8IFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIg
PT0gXCIxMC4xMVwiIF07IHRoZW5cbiAgICBleHBvcnQgSEFWRV9JQ1VHRU5CUks9MFxuZWxzZVxu
ICAgIGV4cG9ydCBIQVZFX0lDVUdFTkJSSz0xXG5maVxuXG5pZiBbIFwiJHtBQ1RJT059XCIgPSBc
ImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtBQ1RJT059XCIg
PSBcImluc3RhbGxoZHJzXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGFwaVwiIF07IHRo
ZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwiV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5t
YWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCBTREtST09UPVwiJHtT
REtST09UfVwiXG5maSI7CisJCX07CiAJCTY1QUZBMTcwMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5
IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE2MjUsNiArMTcyOSw4IEBACiAJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQThBNDcz
ODYxNTFBODI1QjAwNDEyM0ZGIC8qIEFzc2VydGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDc0MzUxNTFBODI1QjAwNDEyM0ZGIC8qIEF0b21pY1N0cmluZy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3MEVDQTYwRDFCMDI0MjY4MDA0NDk3MzkgLyogQXRvbWljU3RyaW5nSW1wbC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUJBMTVGQTE4MjQzNUE2MDBBODJFNjkgLyogQXRvbWlj
U3RyaW5nSW1wbENGLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTY1NCw2ICsxNzYwLDcgQEAKIAkJ
CQlBOEE0NzNCMDE1MUE4MjVCMDA0MTIzRkYgLyogZG91YmxlLWNvbnZlcnNpb24uY2MgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzNCQTE1MUE4MjVCMDA0MTIzRkYgLyogZHRvYS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzNCMzE1MUE4MjVCMDA0MTIzRkYgLyogZmFzdC1kdG9hLmNjIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQzMxNTFBODI1
QjAwNDEyM0ZGIC8qIEZhc3RNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDMzNjAx
NjVEQkE3MzAwNUFEMzg3IC8qIEZpbGVQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOEE0NzNCNTE1MUE4MjVCMDA0MTIzRkYgLyogZml4ZWQtZHRvYS5jYyBpbiBTb3VyY2VzICov
LApAQCAtMTY2Niw2ICsxNzczLDcgQEAKIAkJCQlBOEE0NzNFOTE1MUE4MjVCMDA0MTIzRkYgLyog
TUQ1LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMzMCAvKiBN
ZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRUMxNTFBODI1QjAwNDEyM0ZG
IC8qIE1ldGFBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RjAxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQThBNDczRjQxNTFBODI1QjAwNDEyM0ZGIC8qIE51bWJlck9mQ29yZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3QzVGQjYxRDg4NUNGMjAwNDRGNUUyIC8qIEZhc3RCaXRW
ZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRjcxNTFBODI1QjAwNDEyM0ZGIC8q
IE9TQWxsb2NhdG9yUG9zaXguY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNjczLDYgKzE3ODEsNyBA
QAogCQkJCUE4QTQ3NDAyMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdlQmxvY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZGRjE5REMxQkIzMzRFQjAwODg2RDkxIC8qIFBhcmFsbGVsSGVscGVyUG9v
bC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjgyNEE2ODFCNzQ0M0EwMDAyRTM0NUQgLyogUGFy
a2luZ0xvdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlEQ0VFMjIwMzFDRUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDMzNjIxNjVEQkE3MzAwNUFEMzg3IC8q
IFByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0M0Y2MTFGMTU2NUYwRjkwMERC
NTE0QSAvKiBSQU1TaXplLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTcxNSw4ICsxODI0LDEyIEBA
CiAJCQkJMUMxODFDOTExRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJMYXRpbjEuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUMxODFDOTMxRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJv
dmlkZXJVVEYxNi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ2OTE1MUE4MjVCMDA0MTIz
RkYgLyogVVRGOC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFGQTQ3QzhBMTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRTQ0NzlDMUI3QUFBMDMwMDk0OThFQiAvKiBXb3JkTG9jay5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VCMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBMEFEMzkxQTk2MjQ1NTAwNTM2REY2
IC8qIFdvcmtRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEwQUQzRDFBOTYyNTNDMDA1
MzZERjYgLyogV29ya1F1ZXVlQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0NDUx
NTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE3MzMs
NiArMTg0NiwxMSBAQAogCQkJdGFyZ2V0ID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdU
RiAqLzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FFQzMxOEZDRTU3MDAwQjNEN0ZGIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJMUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8q
IFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5
OworCQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNl
cyAqLzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJNjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8q
IFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5
OwogCQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRl
cnMgKi87CkBAIC0xNzYyLDYgKzE4ODAsMzAgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlv
bjsKIAkJfTsKKwkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICovID0geworCQkJ
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5j
ZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87
CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1F
KSI7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQkxQ0QxODc4NTFENTU2OTVDMDBD
QzdERUMgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwor
CQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYg
LyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQ
Uk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNl
OworCQl9OworCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJvZHVjdGlvbiAqLyA9IHsK
KwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZl
cmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmln
ICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRf
TkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDI0N0I2NDE0
Njg5Qjg2MDBFNzhCNzYgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJh
dGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAw
RTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKQEAgLTE4NDUsNiArMTk4NywxNiBA
QAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZp
Z3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODMxRDU1Njk1QzAwQ0M3
REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJE
ZXJpdmVkIFNvdXJjZXMiICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJ
CWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8q
IERlYnVnICovLAorCQkJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovLAor
CQkJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJ
CWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0
aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjVDMTQ2ODlCODYwMEU3OEI3NiAv
KiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldURiIgKi8gPSB7CiAJ
CQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggYzA1MTNmMWJjYzczODc1NWY4OWE2ZTNjYjgxZDZkZmE2
MDhiODU3Ni4uNzE4YmE5MGE5ZjQ5ZTVhNWUyOTY5OTFkZWQ1ZWVmMTAxYjFmZjNkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQKQEAgLTI5MSw2ICsyOTEsNDIgQEAgaWYgKE5PVCBVU0VfU1lTVEVNX01B
TExPQykKICAgICBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTIGJtYWxsb2MpCiBlbmRpZiAoKQog
CitzZXQoV1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVMKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0CisgICAgdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0CisgICAgdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CisgICAgdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0Cisp
CisKK21hY3JvKEdFTkVSQVRFX0JSRUFLSU5HX1JVTEVTIF9pbnB1dCBfc3ltYm9sTmFtZSBfb3V0
cHV0KQorICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVUICR7X291dHB1dH0K
KyAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKKyAgICAgICAgREVQRU5EUyAke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
UHJvbG9ndWUudHh0ICR7X2lucHV0fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisgICAgICAgIENPTU1B
TkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAtaW5jbHVkZURlZmluZXMgJHtfc3ltYm9s
TmFtZX1SdWxlcyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICR7X2lucHV0fSAke0NNQUtFX0NVUlJFTlRf
U09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0ID4gJHtfb3V0cHV0fQorICAgICAgICBWRVJCQVRJTSkKKyAgICBsaXN0KEFQUEVORCBXVEZf
U09VUkNFUyAke19vdXRwdXR9KQorICAgIEFERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7X2lucHV0
fSAke19vdXRwdXR9KQorZW5kbWFjcm8oKQorCitmb3JlYWNoIChfZmlsZSAke1dURl9CUkVBS0lO
R19SVUxFU19TT1VSQ0VTfSkKKyAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2Zp
bGV9IE5BTUVfV0UpCisgICAgR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMoJHtDTUFLRV9DVVJSRU5U
X1NPVVJDRV9ESVJ9LyR7X2ZpbGV9ICR7X25hbWV9ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9
L0JyZWFraW5nUnVsZXMvJHtfbmFtZX0uY3BwKQorZW5kZm9yZWFjaCAoKQorCithZGRfY3VzdG9t
X2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5n
UnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcAorICAgIE1BSU5fREVQRU5ERU5D
WSAke1dURl9ESVJ9L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVT
dHJpbmdzLnB5CisgICAgREVQRU5EUyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9C
cmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKyAgICBDT01NQU5E
ICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9H
ZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgLWluY2x1ZGVEZWZpbmVzIGN1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2lu
Z1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgPiAke0RFUklWRURfU09VUkNF
U19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAK
KyAgICBWRVJCQVRJTSkKK2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VT
X1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCkK
K0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0
L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAke0RFUklWRURf
U09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxl
cy5jcHApCisKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgdW5pY29kZS9pY3UvQ29sbGF0
b3JJQ1UuY3BwCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5t
YWtlIGIvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjUz
MmRmMjdiMzdmOTdiZTc1MGZlY2RhOWYyN2JlN2E5ODg1ZmQ0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMCwwICsxLDgzIEBACisjIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitCUkVBS0lOR19SVUxFU19GSUxFUyA9
IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5icmsgXAor
ICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5icmsgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5icmsgXAorICAgIEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmJyayBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuYnJrIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuYnJrIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuYnJrIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuYnJrIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuYnJrCisKK0JS
RUFLSU5HX1JVTEVTX0RFRklOSVRJT05TID0gXAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Q0pLLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLmNwcCBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VDSksuY3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZU5vbkNKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbENKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbE5vbkNKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy5jcHAgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKSy5jcHAKKworaWZlcSAoJChzaGVsbCAkKENDKSAtc3RkPWdudSsrMTEg
LXggYysrIC1FIC1QIC1kTSAkKFNES19GTEFHUykgJChGUkFNRVdPUktfRkxBR1MpICQoSEVBREVS
X0ZMQUdTKSAtSSAkKFdURikgLWluY2x1ZGUgIiQoV1RGKS93dGYvUGxhdGZvcm0uaCIgL2Rldi9u
dWxsIHwgZ3JlcCAnIFdURl9QTEFURk9STV9JT1MgJyB8IGN1dCAtZCcgJyAtZjMpLCAxKQorICAg
IFdURl9QTEFURk9STV9JT1MgPSAxCitlbHNlCisgICAgV1RGX1BMQVRGT1JNX0lPUyA9IDAKK2Vu
ZGlmCisKK2lmZXEgKCQoV1RGX1BMQVRGT1JNX0lPUyksIDEpCisJQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQgPSAwCisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VU
UyA9IDAKK2Vsc2UKKwlBRERJVElPTkFMX0VNT0pJX1NVUFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVO
VCA9ICQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKQorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NF
VFMgPSAxCitlbmRpZgorCitERVBFTkRFTkNJRVMgPSAkKEJSRUFLSU5HX1JVTEVTX0RFRklOSVRJ
T05TKQorCitpZmVxICgkKE9TKSxNQUNPUykKK2lmZXEgKCQoSEFWRV9JQ1VHRU5CUkspLCAxKQor
REVQRU5ERU5DSUVTICs9ICQoQlJFQUtJTkdfUlVMRVNfRklMRVMpCitlbmRpZgorZW5kaWYKKwor
YWxsIDogJChERVBFTkRFTkNJRVMpCisKK0JyZWFraW5nUnVsZXMvJS5icmsgOiBCcmVha2luZ1J1
bGVzLyUucHAKKwlpY3VnZW5icmsgLWMgLXIgJDwgLW8gJEAKKworQnJlYWtpbmdSdWxlcy9DdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIDogQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMucHAKKwlweXRob24gJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
R2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxl
cyAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLmNwcCA6IEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwCisJcHl0aG9uICQoV1RGKS93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBsaW5lQnJlYWtJdGVy
YXRvciQqUnVsZXMgJDwgPiAkQAorCitCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy5wcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy50eHQKKwktdW5pZmRlZiAtREFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0k
KEFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5UKSAtREhBVkVfRVhU
UkFfSUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQCAkPAor
CitCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS5wcCA6ICQoV1RGKS93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICQoV1RGKS93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS50eHQgJChXVEYpL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKKwktY2F0ICQ/IHwgdW5p
ZmRlZiAtREFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VCkgLURIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTPSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VU
UykgLW8gJEAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9D
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU5
MTBiZmE1ZTBlNjMzZGJkNzI1OTNhYzFmMzMwYWYzZWU0M2RkZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMudHh0CkBAIC0wLDAgKzEsMTc0IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCisjIFRoaXMgcnVsZSBzZXQgaXMgYmFzZWQgb24gY2hhcmFjdGVyLWJyZWFrIGl0
ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NworIyA8aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcv
cmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KKyMg
VGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBi
ZWxvdzoKKyMgKiBSZXBsYWNlZCAnW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBTcGFjaW5n
TWFya31dJyB3aXRoICdbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya30gLSAkRXh0
ZW5kXScgZm9yIElDVSAzLjggb3IgZWFybGllcjsKKyMgKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJl
dmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAy
NDM0Mik7CisjICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5n
IGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChCdWcg
MTU3OTApLCBhbmQ7CisjICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20g
bW92aW5nIGJlZm9yZSBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJrcy4K
KyMgKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCisKKyRDUiAg
ICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOworJExGICAgICAgPSBbXHB7
R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExGfV07CiskQ29udHJvbCA9IFtccHtHcmFwaGVtZV9D
bHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOworJFZvaWNlTWFya3MgPSBbXHVGRjlFXHVGRjlGXTsg
IyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcworJEV4dGVuZCAgPSBb
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXHUwRTMw
IFx1MEUzMiBcdTBFNDUgXHUwRUIwIFx1MEVCMl1dOworJFNwYWNpbmdNYXJrID0gW1tccHtHZW5l
cmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfV0gLSAkRXh0ZW5kXTsKKyRMICAgICAgID0gW1xw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07CiskViAgICAgICA9IFtccHtHcmFwaGVtZV9D
bHVzdGVyX0JyZWFrID0gVn1dOworJFQgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVh
ayA9IFR9XTsKKyRMViAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOwor
JExWVCAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1dOworJEhpbjAgICAg
PSBbXHUwOTA1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEKKyRIaW5WICAg
ID0gXHUwOTREOyAjIERldmFuYWdhcmkgU2lnbiBWaXJhbWEKKyRIaW4xICAgID0gW1x1MDkxNS1c
dTA5MzldOyAjIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQorJEJlbjAgICAgPSBbXHUwOTg1
LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEKKyRCZW5WICAgID0gXHUwOUNEOyAj
IEJlbmdhbGkgU2lnbiBWaXJhbWEKKyRCZW4xICAgID0gW1x1MDk5NS1cdTA5QjldOyAjIEJlbmdh
bGkgTGV0dGVyIEthLC4uLixIYQorJFBhbjAgICAgPSBbXHUwQTA1LVx1MEEzOV07ICMgR3VybXVr
aGkgTGV0dGVyIEEsLi4uLEhhCiskUGFuViAgICA9IFx1MEE0RDsgIyBHdXJtdWtoaSBTaWduIFZp
cmFtYQorJFBhbjEgICAgPSBbXHUwQTE1LVx1MEEzOV07ICMgR3VybXVraGkgTGV0dGVyIEthLC4u
LixIYQorJEd1ajAgICAgPSBbXHUwQTg1LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0dGVyIEEsLi4u
LEhhCiskR3VqViAgICA9IFx1MEFDRDsgIyBHdWphcmF0aSBTaWduIFZpcmFtYQorJEd1ajEgICAg
PSBbXHUwQTk1LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQorJE9yaTAgICAg
PSBbXHUwQjA1LVx1MEIzOV07ICMgT3JpeWEgTGV0dGVyIEEsLi4uLEhhCiskT3JpViAgICA9IFx1
MEI0RDsgIyBPcml5YSBTaWduIFZpcmFtYQorJE9yaTEgICAgPSBbXHUwQjE1LVx1MEIzOV07ICMg
T3JpeWEgTGV0dGVyIEthLC4uLixIYQorJFRlbDAgICAgPSBbXHUwQzA1LVx1MEMzOV07ICMgVGVs
dWd1IExldHRlciBBLC4uLixIYQorJFRlbFYgICAgPSBcdTBDNEQ7ICMgVGVsdWd1IFNpZ24gVmly
YW1hCiskVGVsMSAgICA9IFtcdTBDMTQtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEthLC4uLixI
YQorJEthbjAgICAgPSBbXHUwQzg1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEK
KyRLYW5WICAgID0gXHUwQ0NEOyAjIEthbm5hZGEgU2lnbiBWaXJhbWEKKyRLYW4xICAgID0gW1x1
MEM5NS1cdTBDQjldOyAjIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCiskTWFsMCAgICA9IFtcdTBE
MDUtXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhIAorJE1hbFYgICAgPSBcdTBE
NEQ7ICMgTWFsYXlhbGFtIFNpZ24gVmlyYW1hCiskTWFsMSAgICA9IFtcdTBEMTUtXHUwRDM5XTsg
IyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCiskUkkgICAgICA9IFtcVTAwMDFGMUU2LVxVMDAw
MUYxRkZdOyAjIEVtb2ppIHJlZ2lvbmFsIGluZGljYXRvcnMKKyRaV0ogICAgID0gXHUyMDBEOyAj
IFplcm8gd2lkdGggam9pbmVyCiskRW1vamlWYXIgPSBbXHVGRTBGXTsgIyBFbW9qaS1zdHlsZSB2
YXJpYXRpb24gc2VsZWN0b3IKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAg
JEVtb2ppRm9yU2VxcyA9IFtcdTI2NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUwMDAxRjMwOCBc
VTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAwMUYzRjMgXFUw
MDAxRjQ0MSBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDZGIFxVMDAw
MUY0NzEgXFUwMDAxRjQ3MyBcVTAwMDFGNDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MiBcVTAwMDFG
NDg2LVxVMDAwMUY0ODcgXFUwMDAxRjQ4QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTggXFUwMDAxRjY0
NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEIgXFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxVMDAwMUY2QTMg
XFUwMDAxRjZCNC1cVTAwMDFGNkI2XTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBz
ZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1Mjcw
RCBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxVMDAwMUYzQ0Ig
XFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxV
MDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAw
MDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1NzUgXFUwMDAx
RjU5MCBcVTAwMDFGNTk1IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2
NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMw
IFxVMDAwMUY5MThdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisK
KyNlbHNlCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAwMUY0
NjkgXFUwMDAxRjQ4Ql07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2Vz
CisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBBLVx1MjcwQyBcVTAwMDFGMzg1IFxV
MDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0M3IFxVMDAwMUYzQ0EgXFUwMDAxRjQ0Mi1cVTAw
MDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAx
RjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0
ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3
IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBc
VTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisj
ZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYzRkZdOyAjIEZpdHpwYXRy
aWNrIG1vZGlmaWVycworISFjaGFpbjsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAor
CisgICAgISFSSU5vQ2hhaW47CisKKyNlbmRpZgorCishIWZvcndhcmQ7CiskQ1IgJExGOworJEwg
KCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsKKygkTFYgfCAkVikgKCRWIHwgJFQpOworKCRMVlQgfCAk
VCkgJFQ7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRSSSAkUkkgJEV4
dGVuZCogLyAkUkk7CisgICAgJFJJICRSSSAkRXh0ZW5kKjsKKyAgICBbXiRDb250cm9sICRDUiAk
TEZdICRFeHRlbmQ7CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7CisKKyNl
bHNlCisKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7CisgICAgW14kQ29udHJvbCAk
Q1IgJExGXSAkU3BhY2luZ01hcms7CisgICAgJFJJICRSSSAvICRSSTsKKyAgICAkUkkgJFJJOwor
CisjZW5kaWYKKworJEhpbjAgJEhpblYgJEhpbjE7ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndh
cmQpCiskQmVuMCAkQmVuViAkQmVuMTsgIyBCZW5nYWxpIFZpcmFtYSAoZm9yd2FyZCkKKyRQYW4w
ICRQYW5WICRQYW4xOyAjIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkKKyRHdWowICRHdWpWICRH
dWoxOyAjIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKKyRPcmkwICRPcmlWICRPcmkxOyAjIE9y
aXlhIFZpcmFtYSAoZm9yd2FyZCkKKyRUZWwwICRUZWxWICRUZWwxOyAjIFRlbHVndSBWaXJhbWEg
KGZvcndhcmQpCiskS2FuMCAkS2FuViAkS2FuMTsgIyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkK
KyRNYWwwICRNYWxWICRNYWwxOyAjIE1hbGF5YWxhbSBWaXJhbWEgKGZvcndhcmQpCiskWldKICRF
bW9qaUZvclNlcXM7ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlG
b3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZh
bnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJp
Y2sgbW9kaWZpZXIKKyEhcmV2ZXJzZTsKKyRMRiAkQ1I7CisoJEwgfCAkViB8ICRMViB8ICRMVlQp
ICRMOworKCRWIHwgJFQpICgkTFYgfCAkVik7CiskVCAoJExWVCB8ICRUKTsKKworI2lmIEFERElU
SU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEV4dGVuZCogJFJJICRSSSAvICRFeHRlbmQqICRS
SSAkUkk7CisgICAgJEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kICAgICAgW14kQ29udHJv
bCAkQ1IgJExGXTsKKyAgICAkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsKKworI2Vs
c2UKKworICAgICRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5n
TWFyayBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRSSSAkUkkgLyAkUkkgJFJJOworICAgICRS
SSAkUkk7CisKKyNlbmRpZgorCiskSGluMSAkSGluViAkSGluMDsgIyBEZXZhbmFnYXJpIFZpcmFt
YSAoYmFja3dhcmQpCiskQmVuMSAkQmVuViAkQmVuMDsgIyBCZW5nYWxpIFZpcmFtYSAoYmFja3dh
cmQpCiskUGFuMSAkUGFuViAkUGFuMDsgIyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQorJEd1
ajEgJEd1alYgJEd1ajA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRPcmkxICRPcmlW
ICRPcmkwOyAjIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCiskVGVsMSAkVGVsViAkVGVsMDsg
IyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKKyRLYW4xICRLYW5WICRLYW4wOyAjIEthbm5hZGEg
VmlyYW1hIChiYWNrd2FyZCkKKyRNYWwxICRNYWxWICRNYWwwOyAjIE1hbGF5YWxhbSBWaXJhbWEg
KGJhY2t3YXJkKQorJEVtb2ppRm9yU2VxcyAkWldKOyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldK
IHNlcXVlbmNlcworJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7ICMgRG9udCBi
cmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxl
Y3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQKKworICAgICEhc2FmZV9yZXZlcnNlOworICAgICRSSSAkUkkrOworICAgIFskRW1vamlW
YXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7CisgICAgISFzYWZlX2ZvcndhcmQ7CisgICAg
JFJJICRSSSs7CisgICAgJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsKKwor
I2Vsc2UKKworICAgIFskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7CisgICAg
JEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsKKyAgICAhIXNhZmVfcmV2ZXJz
ZTsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3Ry
aW5ncy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45NmIwNDc2OWZjYTM5OGFjYzk5Nzg2OTJiNzc3MDY0MDVlZDA0
OGE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQpAQCAtMCwwICsxLDExMCBAQAorIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CitpbXBvcnQgc3lzCitpbXBvcnQgcmUKKworaGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisKKwor
ZGVmIG1haW4oYXJndj1Ob25lKToKKyAgICBpZiBub3QgYXJndjoKKyAgICAgICAgYXJndiA9IHN5
cy5hcmd2CisgICAgZmlsZU5hbWVTdGFydEluZGV4ID0gMQorCisgICAgaW5jbHVkZURlZmluZXMg
PSBGYWxzZQorICAgIGlmIGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4XSA9PSAiLWluY2x1ZGVEZWZp
bmVzIjoKKyAgICAgICAgaW5jbHVkZURlZmluZXMgPSBUcnVlCisgICAgICAgIGZpbGVOYW1lU3Rh
cnRJbmRleCA9IGZpbGVOYW1lU3RhcnRJbmRleCArIDEKKworICAgIHN5bWJvbE5hbWUgPSBhcmd2
W2ZpbGVOYW1lU3RhcnRJbmRleF1bMF0ubG93ZXIoKSArIGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4
XVsxOl0KKyAgICBmaWxlTmFtZVN0YXJ0SW5kZXggPSBmaWxlTmFtZVN0YXJ0SW5kZXggKyAxCisg
ICAgZmlsZU5hbWVzID0gYXJndltmaWxlTmFtZVN0YXJ0SW5kZXg6XQorCisgICAgcHJpbnQoaGVh
ZGVyKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCIvLyBETyBOT1QgRURJVCBUSElTIEZJTEUu
IEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHRoZSBzY3JpcHQiKQorICAgIHByaW50
KCIvLyBXVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmlu
Z3MucHkiKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCIjaW5jbHVkZSBcImNvbmZpZy5oXCIi
KQorICAgIHByaW50KCIjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+IikKKyAgICBwcmludCgi
IikKKyAgICBpZiBpbmNsdWRlRGVmaW5lczoKKyAgICAgICAgcHJpbnQoIiNkZWZpbmUgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkiKQorICAgICAgICBwcmlu
dCgiI2RlZmluZSBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTICgoVV9JQ1VfVkVSU0lPTl9NQUpP
Ul9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpKSIpCisgICAgICAg
IHByaW50KCIiKQorICAgIHByaW50KCJuYW1lc3BhY2UgV1RGIHsiKQorICAgIHByaW50KCIiKQor
ICAgIHByaW50KCJjb25zdCBjaGFyKiAiICsgc3ltYm9sTmFtZSArICIgPSAiKQorCisgICAgZm9y
IGZpbGVOYW1lIGluIGZpbGVOYW1lczoKKyAgICAgICAgZm9yIGwgaW4gb3BlbihmaWxlTmFtZSwg
J3InKToKKyAgICAgICAgICAgIGxpbmUgPSBsLnJzdHJpcCgpCisgICAgICAgICAgICBpZiByZS5t
YXRjaCgiXlxzKiQiLCBsaW5lKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBl
bGlmIGxpbmUuc3RhcnRzd2l0aCgiIyAiKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICAgICBlbGlmIGxpbmUgPT0gIiMiOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAg
IGVsaWYgbGluZS5zdGFydHN3aXRoKCIjIik6CisgICAgICAgICAgICAgICAgcHJpbnQobGluZSkK
KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgiXigu
Kik7KCAjIC4qKT8kIiwgbGluZSkKKyAgICAgICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gIlwiIiArIG1hdGNoLmdyb3VwKDEpLnJlcGxhY2UoIlxcIiwg
IlxcXFwiKSArICI7XCIiCisgICAgICAgICAgICAgICAgICAgIGlmIG1hdGNoLmdyb3VwKDIpOgor
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIp
WzM6XQorICAgICAgICAgICAgICAgICAgICBwcmludChyZXN1bHQpCisgICAgICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAg
IHByaW50KCJ9IikKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdCht
YWluKHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
MTg1ZDNjMWE2ZWUyMTc2MmY2NGNhZDI5ZjdhY2VmNGIyOGEzZWFhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBp
bG9ndWUudHh0CkBAIC0wLDAgKzEsMzcwIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCiskQUkgPSBbOkxpbmVCcmVhayA9IEFtYmlndW91czpdOworJEFMID0gWzpMaW5l
QnJlYWsgPSBBbHBoYWJldGljOl07CiskQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpd
IC0gJEJBX1NVQl07CiskQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0g
WzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJl
YWtfQm90aDpdOworJENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wg
PSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9
IENvbWJpbmluZ19NYXJrOl07CiskQ1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lz
Ol07CiskQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdlX1JldHVybjpdOworJEVYID0gW1s6TGlu
ZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9TVUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBH
bHVlOl07CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxp
bmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsKKworI2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJl
dzpdICYgWzpMZXR0ZXI6XV07CisKKyNlbmRpZgorCiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhl
bjpdOworJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpd
OworJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAt
ICRJRF9TVUJdOworJElOID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJd
OworJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwg
PSBbOkxpbmVCcmVhayA9IEpMOl07CiskSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBb
OkxpbmVCcmVhayA9IEpUOl07CiskTEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5M
ID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsKKyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9u
c3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICROU19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsg
PSBOdW1lcmljOl07CiskT1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQ
TyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBb
WzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVC
cmVhayA9IFF1b3RhdGlvbjpdOworJFJJID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07CiskU0Eg
PSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOworJFNHID0gWzpMaW5lQnJlYWsgPSBT
dXJyb2dhdGU6XTsKKyRTUCA9IFs6TGluZUJyZWFrID0gU3BhY2U6XTsKKyRTWSA9IFs6TGluZUJy
ZWFrID0gQnJlYWtfU3ltYm9sczpdOworJFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpd
OworJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3duOl07CiskWlcgPSBbOkxpbmVCcmVhayA9IFpX
U3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7CiskRW1vamlWYXIgPSBcdUZFMEY7CisKKyNpZiBBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0
MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYz
Q0EtXFUwMDAxRjNDQyBcVTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5
IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBc
VTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUw
MDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAw
MUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1v
amkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9
IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAw
MUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFG
NDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3
OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcg
XFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxV
MDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAw
MDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0
YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9
IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0OEJdOworICAgICRFbW9qaUZv
ck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAw
MUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFGM0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFG
NDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3
OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcg
XFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxV
MDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAj
IEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9q
aU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAwMDFGM0ZGXTsKKyRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJl
YWsgPSBDb21wbGV4X0NvbnRleHQ6XTsKKyRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07
CiskQUxjbSA9ICRBTFBsdXMgJENNKjsKKyRCQWNtID0gJEJBICRDTSo7CiskQkJjbSA9ICRCQiAk
Q00qOworJEIyY20gPSAkQjIgJENNKjsKKyRDTGNtID0gJENMICRDTSo7CiskQ1BjbSA9ICRDUCAk
Q00qOworJEVYY20gPSAkRVggJENNKjsKKyRHTGNtID0gJEdMICRDTSo7CiskSExjbSA9ICRITCAk
Q00qOworJEhZY20gPSAkSFkgJENNKjsKKyRIMmNtID0gJEgyICRDTSo7CiskSDNjbSA9ICRIMyAk
Q00qOworJElEY20gPSAkSUQgJENNKjsKKyRJTmNtID0gJElOICRDTSo7CiskSVNjbSA9ICRJUyAk
Q00qOworJEpMY20gPSAkSkwgJENNKjsKKyRKVmNtID0gJEpWICRDTSo7CiskSlRjbSA9ICRKVCAk
Q00qOworJE5TY20gPSAkTlMgJENNKjsKKyROVWNtID0gJE5VICRDTSo7CiskT1BjbSA9ICRPUCAk
Q00qOworJFBPY20gPSAkUE8gJENNKjsKKyRQUmNtID0gJFBSICRDTSo7CiskUVVjbSA9ICRRVSAk
Q00qOworJFJJY20gPSAkUkkgJENNKjsKKyRTWWNtID0gJFNZICRDTSo7CiskV0pjbSA9ICRXSiAk
Q00qOworCishIWZvcndhcmQ7CiskQ0FOX0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAk
Q01dOworJENBTlRfQ00gPSBbJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRBTF9GT0xM
T1dfTk9DTSA9IFskQksgJENSICRMRiAkTkwgJFpXICRTUF07CiskQUxfRk9MTE9XX0NNID0gWyRD
TCAkQ1AgJEVYICRITCAkSVMgJFNZICRXSiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5V
ICRBTFBsdXNdOworJEFMX0ZPTExPVyA9IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07
CiskTEI0QnJlYWtzID0gWyRCSyAkQ1IgJExGICROTF07CiskTEI0Tm9uQnJlYWtzID0gW14kQksg
JENSICRMRiAkTkxdOworJExCOEJyZWFrcyA9IFskTEI0QnJlYWtzICRaV107CiskTEI4Tm9uQnJl
YWtzID0gW1skTEI0Tm9uQnJlYWtzXSAtIFskWlddXTsKKyRMQjE4Tm9uQnJlYWtzID0gWyRMQjhO
b25CcmVha3MgLSBbJFNQXV07CiskTEIxOEJyZWFrcyA9IFskTEI4QnJlYWtzICRTUF07CiskTEIy
ME5vbkJyZWFrcyA9IFskTEIxOE5vbkJyZWFrcyAtICRDQl07CiskQUxQbHVzICRDTSs7CiskQkEg
JENNKzsKKyRCQiAkQ00rOworJEIyICRDTSs7CiskQ0wgJENNKzsKKyRDUCAkQ00rOworJEVYICRD
TSs7CiskR0wgJENNKzsKKyRITCAkQ00rOworJEhZICRDTSs7CiskSDIgJENNKzsKKyRIMyAkQ00r
OworJElEICRDTSs7CiskSU4gJENNKzsKKyRJUyAkQ00rOworJEpMICRDTSs7CiskSlYgJENNKzsK
KyRKVCAkQ00rOworJE5TICRDTSs7CiskTlUgJENNKzsKKyRPUCAkQ00rOworJFBPICRDTSs7Cisk
UFIgJENNKzsKKyRRVSAkQ00rOworJFJJICRDTSs7CiskU1kgJENNKzsKKyRXSiAkQ00rOworJENS
ICRMRiB7MTAwfTsKKyRMQjROb25CcmVha3M/ICRMQjRCcmVha3MgezEwMH07CiskQ0FOX0NNICRD
TSogJExCNEJyZWFrcyB7MTAwfTsKKyRDTSsgJExCNEJyZWFrcyB7MTAwfTsKKyRMQjROb25CcmVh
a3MgWyRTUCAkWlddOworJENBTl9DTSAkQ00qIFskU1AgJFpXXTsKKyRDTSsgWyRTUCAkWlddOwor
JEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsK
KyRDQU5fQ00gJENNKzsKKyRDTSs7CiskQ0FOX0NNICRDTSogJFdKY207CiskTEI4Tm9uQnJlYWtz
ICRXSmNtOworJENNKyAkV0pjbTsKKyRXSmNtICRDQU5UX0NNOworJFdKY20gJENBTl9DTSAkQ00q
OworJEdMY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTlRfQ007CitbWyRMQjhOb25CcmVha3Nd
IC0gWyRTUCAkQkEgJEhZXV0gJENNKiAkR0xjbTsKKyRDTSsgR0xjbTsKKyRMQjhOb25CcmVha3Mg
JENMOworJENBTl9DTSAkQ00qICRDTDsKKyRDTSsgJENMOworJExCOE5vbkJyZWFrcyAkQ1A7Cisk
Q0FOX0NNICRDTSogJENQOworJENNKyAkQ1A7CiskTEI4Tm9uQnJlYWtzICRFWDsKKyRDQU5fQ00g
JENNKiAkRVg7CiskQ00rICRFWDsKKyRMQjhOb25CcmVha3MgJElTOworJENBTl9DTSAkQ00qICRJ
UzsKKyRDTSsgJElTOworJExCOE5vbkJyZWFrcyAkU1k7CiskQ0FOX0NNICRDTSogJFNZOworJENN
KyAkU1k7CiskT1BjbSAkU1AqICRDQU5fQ00gJENNKjsKKyRPUGNtICRTUCogJENBTlRfQ007Cisk
T1BjbSAkU1ArICRDTSsgJEFMX0ZPTExPVz87CiskUVVjbSAkU1AqICRPUGNtOworKCRDTGNtIHwg
JENQY20pICRTUCogJE5TY207CiskQjJjbSAkU1AqICRCMmNtOworJExCMThOb25CcmVha3MgJENN
KiAkUVVjbTsKKyRDTSsgJFFVY207CiskUVVjbSAuPzsKKyRRVWNtICRMQjE4Tm9uQnJlYWtzICRD
TSo7CiskTEIyME5vbkJyZWFrcyAkQ00qICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAKKyRCQmNt
IFteJENCXTsKKyRCQmNtICRMQjIwTm9uQnJlYWtzICRDTSo7CiskSExjbSAoJEhZY20gfCAkQkFj
bSkgW14kQ0JdPzsKKyRTWWNtICRITGNtOworKCRBTGNtIHwgJEhMY20pICRJTmNtOworJENNKyAk
SU5jbTsKKyRFWGNtICRJTmNtOworJElEY20gJElOY207CiskSU5jbSAkSU5jbTsKKyROVWNtICRJ
TmNtOworJElEY20gJFBPY207CiskQUxjbSAkTlVjbTsKKyRITGNtICROVWNtOworJENNKyAkTlVj
bTsKKyROVWNtICRBTGNtOworJE5VY20gJEhMY207CiskUFJjbSAkSURjbTsKKyRQUmNtICgkQUxj
bSB8ICRITGNtKTsKKyRQT2NtICgkQUxjbSB8ICRITGNtKTsKKygkUFJjbSB8ICRQT2NtKT8gKCRP
UGNtIHwgJEhZY20pPyAkTlVjbSAoJE5VY20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQ
Y20pPyAoJFBSY20gfCAkUE9jbSk/OworJEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRI
M2NtKTsKKygkSlZjbSB8ICRIMmNtKSAoJEpWY20gfCAkSlRjbSk7CisoJEpUY20gfCAkSDNjbSkg
JEpUY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207Ciso
JEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJFBPY207CiskUFJjbSAoJEpM
Y20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSk7CisoJEFMY20gfCAkSExjbSkgKCRB
TGNtIHwgJEhMY20pOworJENNKyAoJEFMY20gfCAkSExjbSk7CiskSVNjbSAoJEFMY20gfCAkSExj
bSk7CisoJEFMY20gfCAkSExjbSB8ICROVWNtKSAkT1BjbTsKKyRDTSsgJE9QY207CiskQ1BjbSAo
JEFMY20gfCAkSExjbSB8ICROVWNtKTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAor
CisgICAgJFJJY20gJFJJY207CisKKyNlbmRpZgorCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8g
JEVtb2ppTW9kczsKKworISFyZXZlcnNlOworJENNKyAkQUxQbHVzOworJENNKyAkQkE7CiskQ00r
ICRCQjsKKyRDTSsgJEIyOworJENNKyAkQ0w7CiskQ00rICRDUDsKKyRDTSsgJEVYOworJENNKyAk
R0w7CiskQ00rICRITDsKKyRDTSsgJEhZOworJENNKyAkSDI7CiskQ00rICRIMzsKKyRDTSsgJElE
OworJENNKyAkSU47CiskQ00rICRJUzsKKyRDTSsgJEpMOworJENNKyAkSlY7CiskQ00rICRKVDsK
KyRDTSsgJE5TOworJENNKyAkTlU7CiskQ00rICRPUDsKKyRDTSsgJFBPOworJENNKyAkUFI7Cisk
Q00rICRRVTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKyAkUkk7
CisKKyNlbmRpZgorCiskQ00rICRTWTsKKyRDTSsgJFdKOworJENNKzsKKyRBTF9GT0xMT1cgJENN
KyAvIChbJEJLICRDUiAkTEYgJE5MICRaVyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAk
Q00qIChbXiRPUCAkQ00gJFNQXSB8IFskQUwge2VvZn1dKSk7CitbJFBSXSAvICRDTSsgWyRCSyAk
Q1IgJExGICROTCAkWlcgJFNQIHtlb2Z9XTsKKyRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENN
XTsKKyRMQjRCcmVha3MgJENNKyAkQ0FOX0NNOworJExGICRDUjsKK1skU1AgJFpXXSBbJExCNE5v
bkJyZWFrcy0kQ01dOworWyRTUCAkWlddICRDTSsgJENBTl9DTTsKKyRFbW9qaUZvclNlcXMgJFpX
SiAkRW1vamlNb2RzPyAkRW1vamlWYXI/ICRFbW9qaUZvclNlcXM7CiskQ00rICRDQU5fQ007Cisk
Q00qICRXSiAkQ00qICRDQU5fQ007CiskQ00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOworJENB
TlRfQ00gJENNKiAkV0o7CiskQ00qICRDQU5fQ00gJENNKiAkV0o7CiskQ00qICRHTCAkQ00qIFsk
TEI4Tm9uQnJlYWtzLVskQ00gJFNQICRCQSAkSFldXTsKKyRDQU5UX0NNICRDTSogJEdMOworJENN
KiAkQ0FOX0NNICRDTSogJEdMOworJENMICRDTSsgJENBTl9DTTsKKyRDUCAkQ00rICRDQU5fQ007
CiskRVggJENNKyAkQ0FOX0NNOworJElTICRDTSsgJENBTl9DTTsKKyRTWSAkQ00rICRDQU5fQ007
CiskQ0wgWyRMQjhOb25CcmVha3MtJENNXTsKKyRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOworJEVY
IFskTEI4Tm9uQnJlYWtzLSRDTV07CiskSVMgWyRMQjhOb25CcmVha3MtJENNXTsKKyRTWSBbJExC
OE5vbkJyZWFrcy0kQ01dOworWyRDTCAkQ1AgJEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRP
UDsgCiskQ00qICRDQU5fQ00gJFNQKiAkQ00qICRPUDsKKyRDQU5UX0NNICRTUCogJENNKiAkT1A7
CiskQUxfRk9MTE9XPyAkQ00rICRTUCAkU1AqICRDTSogJE9QOworJEFMX0ZPTExPV19OT0NNICRD
TSsgJFNQKyAkQ00qICRPUDsKKyRDTSogJEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7
CiskU1kgJENNICRTUCsgJE9QOworJENNKiAkT1AgJFNQKiAkQ00qICRRVTsKKyRDTSogJE5TICRT
UCogJENNKiAoJENMIHwgJENQKTsKKyRDTSogJEIyICRTUCogJENNKiAkQjI7CiskQ00qICRRVSAk
Q00qICRDQU5fQ007CiskQ00qICRRVSAkTEIxOE5vbkJyZWFrczsKKyRDTSogJENBTl9DTSAkQ00q
ICRRVTsKKyRDQU5UX0NNICRDTSogJFFVOworJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFsk
TEIyME5vbkJyZWFrcy0kQ01dOworJENNKiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsK
K1teJENCXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworJENN
KiAkSEwgJENNKiAkU1k7CiskQ00qICRJTiAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogJElO
ICRDTSogJEVYOworJENNKiAkSU4gJENNKiAkSUQ7CiskQ00qICRJTiAkQ00qICRJTjsKKyRDTSog
JElOICRDTSogJE5VOworJENNKiAkUE8gJENNKiAkSUQ7CiskQ00qICROVSAkQ00qICgkQUxQbHVz
IHwgJEhMKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJE5VOworJENNKiAkSUQgJENNKiAk
UFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwp
ICRDTSogJFBPOworKCRDTSogKCRQUiB8ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00q
ICgkTlUgfCAkSVMgfCAkU1kpKSogJENNKiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAo
JFBSIHwgJFBPKSk/OworJENNKiAoJEgzIHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsKKyRD
TSogKCRKVCB8ICRKVikgJENNKiAoJEgyIHwgJEpWKTsKKyRDTSogJEpUICRDTSogKCRIMyB8ICRK
VCk7CiskQ00qICRJTiAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAk
UE8gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsKKyRDTSogKCRIMyB8ICRIMiB8
ICRKVCB8ICRKViB8ICRKTCkgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgk
QUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJElTOworJENNKiAkT1Ag
JENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSk7CiskQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAk
Q00qICRDUDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKiAkUkkg
JENNKiAkUkk7CisKKyNlbmRpZgorCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9k
czsKKworISFzYWZlX2ZvcndhcmQ7CitbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAk
QkEgJFNQICRkaWN0aW9uYXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRC
QSAkZGljdGlvbmFyeV07CiskZGljdGlvbmFyeSAkZGljdGlvbmFyeTsKKyAgICAKKyEhc2FmZV9y
ZXZlcnNlOworJENNKyBbXiRDTSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07CiskQ00rICRTUCAv
IC47CiskU1ArICRDTSogJE9QOworJFNQKyAkQ00qICRRVTsKKyRTUCsgJENNKiAoJENMIHwgJENQ
KTsKKyRTUCsgJENNKiAkQjI7CiskQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworKCRDTSogKCRJ
UyB8ICRTWSkpKyAkQ00qICROVTsKKygkQ0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7
CiskZGljdGlvbmFyeSAkZGljdGlvbmFyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMjg4MzU1NjMxZTQzNzkyZDNmM2M5MjMzMzcyNzY2YWNkZWMxYjQyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yUHJvbG9ndWUudHh0CkBAIC0wLDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
IyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyEhY2hhaW47CishIUxCQ01Ob0NoYWluOworISFsb29rQWhl
YWRIYXJkQnJlYWs7CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkQ0og
PSBbOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOl07CisKKyNlbHNlCisK
KyAgICAkQ0ogPSBbXHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgzXHUz
MDg1XHUzMDg3XHUzMDhFXHUzMDk1XHUzMDk2XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3XHUzMEE5
XHUzMEMzXHUzMEUzXHUzMEU1XHUzMEU3XHUzMEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYwXHUz
MUYxXHUzMUYyXHUzMUYzXHUzMUY0XHUzMUY1XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUzMUZB
XHUzMUZCXHUzMUZDXHUzMUZEXHUzMUZFXHUzMUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZBXHVG
RjZCXHVGRjZDXHVGRjZEXHVGRjZFXHVGRjZGXHVGRjcwXTsKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzBiY2U1ZWU5ZTY3OTY5YmM4NmIwODc1MDY2
MTU0ZjdmYzM5MzE2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApAQCAtMCwwICsxLDMzIEBA
CisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAx
MFx1MjAxM107CiskRVhfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7Cisk
SVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7Cisk
UFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9
ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZTAzZTUxMWViOTg0ZmNhYTY0ODU0NGFjY2VlZjZlNzgxNTg4MDFmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9IFtcdTAw
MjFcdTAwM0ZcdUZGMDFcdUZGMUZdOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVc
dTIwMjZdOworJElTX1NVQiA9IFtcdTAwM0FcdTAwM0JdOworJE5TX1NVQiA9IFtcdTIwM0NcdTIw
NDdcdTIwNDhcdTIwNDlcdTMwMDVcdTMwMUNcdTMwM0JcdTMwOURcdTMwOUVcdTMwQTBcdTMwRkJc
dTMwRkRcdTMwRkVcdUZGMUFcdUZGMUJcdUZGNjVdOworJFBPX1NVQiA9IFtcdTAwMjVcdTAwQTJc
dTAwQjBcdTIwMzBcdTIwMzJcdTIwMzNcdTIxMDNcdUZGMDVcdUZGRTBdOworJFBSX1NVQiA9IFtc
dTAwMjRcdTAwQTNcdTAwQTVcdTIwQUNcdTIxMTZcdUZGMDRcdUZGRTFcdUZGRTVdOworJElEX0FE
RCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIg
JFBSX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmOGU4ZTFiNWI2NWJjNjM0M2I1MDEyZDhmOTlkODQ0
YTQwNGFkZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApAQCAtMCwwICsxLDMz
IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7
CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07
CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBG
RFx1MzBGRV07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAk
SU5fU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0IGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2ZWFiNjk0OTg2ZWY4MmQ5YWI5NWZiMTliNDM1MmI2NjJk
MjYzZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisj
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NV
QiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5T
X1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOwor
JE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0IGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjMwYmNlNWVlOWU2Nzk2OWJjODZiMDg3NTA2NjE1NGY3ZmMzOTMxNjEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOwor
JEVYX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcn
OworJE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcn
OworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDk0
NTgyY2NlOWZkNGQwN2Q5ODdlMzk5ZWM5NzUyMjczYjRkYmU3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSksudHh0CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAn
JzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIg
PSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKXTsKKyROU19BREQgPSAnJzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5
NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJiNjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3RDSksudHh0CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
IyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJ
Tl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsK
KyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5
NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJiNjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksudHh0CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMg
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsK
KyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAn
JzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291cmNl
L1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKaW5kZXggMDVhNTE5NTYwNWUxZDhm
YmY3NjIzMTM5N2Q4OWMwODE1MzIwOTMyNy4uMDk4ZmI3ZmI1OTY3MDk4MTNmYjIxNzllMTBiZTkz
ZjNhNDcyYTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVy
YXRvci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAK
QEAgLTMxLDkgKzMxLDYgQEAKICNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0dGVy
IG5hbWUKLSNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8
IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MTAwKSkKLQogbmFtZXNwYWNlIFdURiB7CiAKIC8vIEl0ZXJhdG9yIGluaXRpYWxpemF0aW9uCkBA
IC02MSw2ICs1OCwxMiBAQCBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIGluaXRpYWxpemVJdGVy
YXRvcldpdGhSdWxlcyhjb25zdCBjaGFyKiBicmVha1J1bGVzKQogCiAjZW5kaWYKIAorI2lmICFQ
TEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRl
SXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCkKK3sKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKyNlbmRpZgogCiAvLyBJdGVyYXRvciB0ZXh0IHNldHRpbmcKIApAQCAtMTY0LDEzNSAr
MTY3LDIwIEBAIFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoU3RyaW5n
VmlldyBzdHJpbmcpCiAgICAgcmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqc3RhdGljU2VudGVu
Y2VCcmVha0l0ZXJhdG9yLCBzdHJpbmcpOwogfQogCisjaWYgIVBMQVRGT1JNKElPUykKK3N0YXRp
YyBUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxs
YmFjaygpCit7CisgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3JGb3JSdWxl
U2V0KEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQpKQorICAgICAgICByZXR1cm4gaXRl
cmF0b3I7CisgICAgcmV0dXJuIGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhjdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMpOworfQorI2VuZGlmCisKIFRleHRCcmVha0l0ZXJhdG9yKiBjdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogewogI2lmICFQTEFURk9STShJ
T1MpCi0gICAgLy8gVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRl
cmF0b3IgcnVsZXMgb2YgSUNVIDU3Ci0gICAgLy8gPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qu
b3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4u
Ci0gICAgLy8gVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJl
IGxpc3RlZCBiZWxvdzoKLSAgICAvLyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9C
cmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2lu
ZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOwotICAgIC8vICogUmVt
b3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVu
ZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOwotICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2
ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5n
dWFnZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7Ci0gICAgLy8gKiBBZGRlZCBydWxl
cyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYt
d2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgotICAgIC8vICogQWRkZWQgcnVsZXMgZm9yIHJl
Z2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBrUnVsZXMg
PQotICAgICAgICAiJENSICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1d
OyIKLSAgICAgICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9
XTsiCi0gICAgICAgICIkQ29udHJvbCA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENv
bnRyb2x9XTsiCi0gICAgICAgICIkVm9pY2VNYXJrcyA9IFtcXHVGRjlFXFx1RkY5Rl07IiAvLyBK
YXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcwotICAgICAgICAiJEV4dGVu
ZCAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0g
W1xcdTBFMzAgXFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVCMl1dOyIKLSAgICAgICAgIiRT
cGFjaW5nTWFyayA9IFtbXFxwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRF
eHRlbmRdOyIKLSAgICAgICAgIiRMICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gTH1dOyIKLSAgICAgICAgIiRWICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gVn1dOyIKLSAgICAgICAgIiRUICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gVH1dOyIKLSAgICAgICAgIiRMViAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gTFZ9XTsiCi0gICAgICAgICIkTFZUICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVh
ayA9IExWVH1dOyIKLSAgICAgICAgIiRIaW4wICAgID0gW1xcdTA5MDUtXFx1MDkzOV07IiAvLyBE
ZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEhpblYgICAgPSBcXHUwOTREOyIg
Ly8gRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQotICAgICAgICAiJEhpbjEgICAgPSBbXFx1MDkxNS1c
XHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEJlbjAg
ICAgPSBbXFx1MDk4NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCi0gICAg
ICAgICIkQmVuViAgICA9IFxcdTA5Q0Q7IiAvLyBCZW5nYWxpIFNpZ24gVmlyYW1hCi0gICAgICAg
ICIkQmVuMSAgICA9IFtcXHUwOTk1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgS2EsLi4u
LEhhCi0gICAgICAgICIkUGFuMCAgICA9IFtcXHUwQTA1LVxcdTBBMzldOyIgLy8gR3VybXVraGkg
TGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUGFuViAgICA9IFxcdTBBNEQ7IiAvLyBHdXJtdWto
aSBTaWduIFZpcmFtYQotICAgICAgICAiJFBhbjEgICAgPSBbXFx1MEExNS1cXHUwQTM5XTsiIC8v
IEd1cm11a2hpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRHdWowICAgID0gW1xcdTBBODUt
XFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRHdWpWICAg
ID0gXFx1MEFDRDsiIC8vIEd1amFyYXRpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkR3VqMSAgICA9
IFtcXHUwQTk1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQotICAgICAg
ICAiJE9yaTAgICAgPSBbXFx1MEIwNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBBLC4uLixI
YQotICAgICAgICAiJE9yaVYgICAgPSBcXHUwQjREOyIgLy8gT3JpeWEgU2lnbiBWaXJhbWEKLSAg
ICAgICAgIiRPcmkxICAgID0gW1xcdTBCMTUtXFx1MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIgS2Es
Li4uLEhhCi0gICAgICAgICIkVGVsMCAgICA9IFtcXHUwQzA1LVxcdTBDMzldOyIgLy8gVGVsdWd1
IExldHRlciBBLC4uLixIYQotICAgICAgICAiJFRlbFYgICAgPSBcXHUwQzREOyIgLy8gVGVsdWd1
IFNpZ24gVmlyYW1hCi0gICAgICAgICIkVGVsMSAgICA9IFtcXHUwQzE0LVxcdTBDMzldOyIgLy8g
VGVsdWd1IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRLYW4wICAgID0gW1xcdTBDODUtXFx1
MENCOV07IiAvLyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEthblYgICAgPSBc
XHUwQ0NEOyIgLy8gS2FubmFkYSBTaWduIFZpcmFtYQotICAgICAgICAiJEthbjEgICAgPSBbXFx1
MEM5NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFs
MCAgICA9IFtcXHUwRDA1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQot
ICAgICAgICAiJE1hbFYgICAgPSBcXHUwRDREOyIgLy8gTWFsYXlhbGFtIFNpZ24gVmlyYW1hCi0g
ICAgICAgICIkTWFsMSAgICA9IFtcXHUwRDE1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRl
ciBBLC4uLixIYQotICAgICAgICAiJFJJICAgICAgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZd
OyIgLy8gRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycwotICAgICAgICAiJFpXSiAgICAgPSBcXHUy
MDBEOyIgLy8gWmVybyB3aWR0aCBqb2luZXIKLSAgICAgICAgIiRFbW9qaVZhciA9IFtcXHVGRTBG
XTsiIC8vIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgotI2lmIEFERElUSU9OQUxfRU1P
SklfU1VQUE9SVAotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1
MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFG
M0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAw
MDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxc
VTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3
IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFG
NjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAw
MDFGNkI0LVxcVTAwMDFGNkI2IFxcdTI2OTUtXFx1MjY5NiBcXHUyNzA4IFxcVTAwMDFGMzNFIFxc
VTAwMDFGMzczIFxcVTAwMDFGMzkzIFxcVTAwMDFGM0E0IFxcVTAwMDFGM0E4IFxcVTAwMDFGM0VC
IFxcVTAwMDFGM0VEIFxcVTAwMDFGNEJCLVxcVTAwMDFGNEJDIFxcVTAwMDFGNTI3IFxcVTAwMDFG
NTJDIFxcVTAwMDFGNjgwIFxcVTAwMDFGNjkyIFxcVTAwMDFGOTI2IFxcVTAwMDFGOTM3LVxcVTAw
MDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBh
dGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxc
dTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0
IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFG
NDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAw
MDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxc
VTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1
IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFG
NjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAw
MDFGOTE4IFxcVTAwMDFGM0MyIFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NDIFxcVTAwMDFGNTc0IFxc
VTAwMDFGNTdBIFxcVTAwMDFGNkNDIFxcVTAwMDFGOTE5LVxcVTAwMDFGOTFFIFxcVTAwMDFGOTI2
IFxcVTAwMDFGOTMwIFxcVTAwMDFGOTMzLVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFG
OTNFXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZWxzZQot
ICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5
IFxcVTAwMDFGNDhCXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNl
cwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUw
MDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBc
XFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2
Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAx
RjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUw
MDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBc
XFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1v
amkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAgICAgICIkRW1v
amlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiIC8vIEZpdHpwYXRyaWNrIG1vZGlm
aWVycwotICAgICAgICAiISFjaGFpbjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0g
ICAgICAgICIhIVJJTm9DaGFpbjsiCi0jZW5kaWYKLSAgICAgICAgIiEhZm9yd2FyZDsiCi0gICAg
ICAgICIkQ1IgJExGOyIKLSAgICAgICAgIiRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7IgotICAg
ICAgICAiKCRMViB8ICRWKSAoJFYgfCAkVCk7IgotICAgICAgICAiKCRMVlQgfCAkVCkgJFQ7Igot
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKiAv
ICRSSTsiCi0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqOyIKLSAgICAgICAgIlteJENvbnRyb2wg
JENSICRMRl0gJEV4dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5n
TWFyazsiCi0jZWxzZQotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAg
ICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSAgICAgICAgIiRSSSAk
UkkgLyAkUkk7IgotICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4wICRI
aW5WICRIaW4xOyIgLy8gRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkQmVu
MCAkQmVuViAkQmVuMTsiIC8vIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFBh
bjAgJFBhblYgJFBhbjE7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIk
R3VqMCAkR3VqViAkR3VqMTsiIC8vIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAg
IiRPcmkwICRPcmlWICRPcmkxOyIgLy8gT3JpeWEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAi
JFRlbDAgJFRlbFYgJFRlbDE7IiAvLyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAi
JEthbjAgJEthblYgJEthbjE7IiAvLyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAg
IiRNYWwwICRNYWxWICRNYWwxOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAg
ICAgIiRaV0ogJEVtb2ppRm9yU2VxczsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1
ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyIgLy8g
RG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRp
b24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotICAgICAgICAiISFyZXZlcnNl
OyIKLSAgICAgICAgIiRMRiAkQ1I7IgotICAgICAgICAiKCRMIHwgJFYgfCAkTFYgfCAkTFZUKSAk
TDsiCi0gICAgICAgICIoJFYgfCAkVCkgKCRMViB8ICRWKTsiCi0gICAgICAgICIkVCAoJExWVCB8
ICRUKTsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRXh0ZW5kKiAk
UkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJOyIK
LSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRT
cGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSNlbHNlCi0gICAgICAgICIkRXh0ZW5k
ICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29u
dHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJICRSSTsiCi0gICAgICAgICIk
UkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAiJEhpbjEgJEhpblYgJEhpbjA7IiAvLyBEZXZhbmFn
YXJpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkQmVuMSAkQmVuViAkQmVuMDsiIC8vIEJl
bmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRQYW4xICRQYW5WICRQYW4wOyIgLy8g
R3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRHdWoxICRHdWpWICRHdWowOyIg
Ly8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRPcmkxICRPcmlWICRPcmkw
OyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRUZWwxICRUZWxWICRU
ZWwwOyIgLy8gVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkS2FuMSAkS2FuViAk
S2FuMDsiIC8vIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRNYWwxICRNYWxW
ICRNYWwwOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkRW1vamlG
b3JTZXFzICRaV0o7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAg
ICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiIC8vIERvbid0IGJyZWFr
IGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9y
KSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQK
LSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAg
IlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiISFzYWZl
X2ZvcndhcmQ7IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBb
JEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiOworICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciog
c3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGNyZWF0ZUN1cnNvck1vdmVtZW50SXRlcmF0
b3JXaXRoRmFsbGJhY2soKTsKICNlbHNlCi0gICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNd
KyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1v
amlNb2RzXSs7IgotICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiISFzYWZlX2Zv
cndhcmQ7IjsKLSNlbmRpZgotICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhrUnVsZXMp
OwotI2Vsc2UgLy8gUExBVEZPUk0oSU9TKQogICAgIC8vIFVzZSB0aGUgc3BlY2lhbCBUaGFpIGNo
YXJhY3RlciBicmVhayBpdGVyYXRvciBmb3IgYWxsIGxvY2FsZXMKICAgICBzdGF0aWMgVGV4dEJy
ZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRl
cmF0b3IoVUJSS19DSEFSQUNURVIsICJ0aCIpOwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCkBA
IC0zMTksNDQyICsyMDcsMjAgQEAgdm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJy
ZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQogICAgIExpbmVCcmVha0l0ZXJhdG9yUG9vbDo6c2hhcmVk
UG9vbCgpLnB1dChpdGVyYXRvcik7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFByb2xv
Z3VlID0KLSAgICAiISFjaGFpbjsiCi0gICAgIiEhTEJDTU5vQ2hhaW47IgotICAgICIhIWxvb2tB
aGVhZEhhcmRCcmVhazsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0Jl
Zm9yZSA9Ci0gICAgLy8gZXhwbGljaXRseSBlbnVtZXJhdGUgJENKIHNpbmNlIElDVSB2ZXJzaW9u
cyBwcmlvciB0byA0OSBkb24ndCBzdXBwb3J0IDpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5l
c2VfU3RhcnRlcjoKLSAgICAiJENKID0gWyIKLSNpZiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0g
Pj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpCi0gICAgIjpMaW5lQnJlYWs9
Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoiCi0jZWxzZQotICAgICJcXHUzMDQxXFx1MzA0
M1xcdTMwNDVcXHUzMDQ3XFx1MzA0OVxcdTMwNjNcXHUzMDgzXFx1MzA4NVxcdTMwODdcXHUzMDhF
XFx1MzA5NVxcdTMwOTZcXHUzMEExXFx1MzBBM1xcdTMwQTVcXHUzMEE3IgotICAgICJcXHUzMEE5
XFx1MzBDM1xcdTMwRTNcXHUzMEU1XFx1MzBFN1xcdTMwRUVcXHUzMEY1XFx1MzBGNlxcdTMwRkMi
Ci0gICAgIlxcdTMxRjBcXHUzMUYxXFx1MzFGMlxcdTMxRjNcXHUzMUY0XFx1MzFGNVxcdTMxRjZc
XHUzMUY3XFx1MzFGOFxcdTMxRjlcXHUzMUZBXFx1MzFGQlxcdTMxRkNcXHUzMUZEXFx1MzFGRVxc
dTMxRkYiCi0gICAgIlxcdUZGNjdcXHVGRjY4XFx1RkY2OVxcdUZGNkFcXHVGRjZCXFx1RkY2Q1xc
dUZGNkRcXHVGRjZFXFx1RkY2RlxcdUZGNzAiCi0jZW5kaWYKLSAgICAiXTsiOwotCi1zdGF0aWMg
Y29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLID0KLSAgICAiJEJBX1NV
QiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAgICIkRVhfU1VCID0gW1xcdTAwMjFcXHUwMDNGXFx1
RkYwMVxcdUZGMUZdOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtcXHUy
MDI1XFx1MjAyNl07IgotICAgICIkSVNfU1VCID0gW1xcdTAwM0FcXHUwMDNCXTsiCi0gICAgIiRO
U19TVUIgPSBbXFx1MjAzQ1xcdTIwNDdcXHUyMDQ4XFx1MjA0OVxcdTMwMDVcXHUzMDFDXFx1MzAz
QlxcdTMwOURcXHUzMDlFXFx1MzBBMFxcdTMwRkJcXHUzMEZEXFx1MzBGRVxcdUZGMUFcXHVGRjFC
XFx1RkY2NV07IgotICAgICIkUE9fU1VCID0gW1xcdTAwMjVcXHUwMEEyXFx1MDBCMFxcdTIwMzBc
XHUyMDMyXFx1MjAzM1xcdTIxMDNcXHVGRjA1XFx1RkZFMF07IgotICAgICIkUFJfU1VCID0gW1xc
dTAwMjRcXHUwMEEzXFx1MDBBNVxcdTIwQUNcXHUyMTE2XFx1RkYwNFxcdUZGRTFcXHVGRkU1XTsi
Ci0gICAgIiRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVYX1NVQiAkSU5fU1VCICRJU19TVUIgJE5T
X1NVQiAkUE9fU1VCICRQUl9TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSksgPQotICAgICIkQkFf
U1VCID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAg
ICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAg
IiROU19TVUIgPSBbXFx1MzAwNVxcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwRkRcXHUzMEZFXTsi
Ci0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQg
PSBbJENKICRJTl9TVUIgJE5TX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGlj
IGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksgPQotICAgICIkQkFf
U1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJTl9T
VUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAg
IiROU19TVUIgPSBbXFx1MzAxQ1xcdTMwQTBdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAi
JFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsiCi0g
ICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50
c0N1c3RvbU5vcm1hbE5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIg
PSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJ
U19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0g
ICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKXTsiCi0gICAgIiROU19BREQg
PSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmlj
dENKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJ
RF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0g
ICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAn
JzsiCi0gICAgIiRJRF9BREQgPSAnJzsiCi0gICAgIiROU19BREQgPSBbJENKXTsiOwotCi0jZGVm
aW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSksgICAgICB1YXgxNEFzc2lnbm1l
bnRzQ3VzdG9tU3RyaWN0Q0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0
Q0pLICAgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pLCi0jZGVmaW5lIHVheDE0
QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9t
U3RyaWN0Tm9uQ0pLCi0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIg
PQotICAgICIkQUkgPSBbOkxpbmVCcmVhayA9IEFtYmlndW91czpdOyIKLSAgICAiJEFMID0gWzpM
aW5lQnJlYWsgPSBBbHBoYWJldGljOl07IgotICAgICIkQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVh
a19BZnRlcjpdIC0gJEJBX1NVQl07IgotICAgICIkQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0Jl
Zm9yZTpdOyIKLSAgICAiJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsiCi0g
ICAgIiRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOyIKLSAgICAiJENCID0gWzpMaW5l
QnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07IgotICAgICIkQ0wgPSBbOkxpbmVCcmVhayA9IENs
b3NlX1B1bmN0dWF0aW9uOl07IgotICAgICIkQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19N
YXJrOl07IgotICAgICIkQ1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07Igot
ICAgICIkQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdlX1JldHVybjpdOyIKLSAgICAiJEVYID0g
W1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9TVUJdOyIKLSAgICAiJEdMID0gWzpM
aW5lQnJlYWsgPSBHbHVlOl07IgotI2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAm
JiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAgICAiJEhMID0gWzpMaW5lQnJlYWsg
PSBIZWJyZXdfTGV0dGVyOl07IgotI2Vsc2UKLSAgICAiJEhMID0gW1s6SGVicmV3Ol0gJiBbOkxl
dHRlcjpdXTsiCi0jZW5kaWYKLSAgICAiJEhZID0gWzpMaW5lQnJlYWsgPSBIeXBoZW46XTsiCi0g
ICAgIiRIMiA9IFs6TGluZUJyZWFrID0gSDI6XTsiCi0gICAgIiRIMyA9IFs6TGluZUJyZWFrID0g
SDM6XTsiCi0gICAgIiRJRCA9IFtbW1s6TGluZUJyZWFrID0gSWRlb2dyYXBoaWM6XSAtICRDSl0g
JElEX0FERF0gLSAkSURfU1VCXTsiCi0gICAgIiRJTiA9IFtbOkxpbmVCcmVhayA9IEluc2VwYXJh
YmxlOl0gLSAkSU5fU1VCXTsiCi0gICAgIiRJUyA9IFtbOkxpbmVCcmVhayA9IEluZml4X051bWVy
aWM6XSAtICRJU19TVUJdOyIKLSAgICAiJEpMID0gWzpMaW5lQnJlYWsgPSBKTDpdOyIKLSAgICAi
JEpWID0gWzpMaW5lQnJlYWsgPSBKVjpdOyIKLSAgICAiJEpUID0gWzpMaW5lQnJlYWsgPSBKVDpd
OyIKLSAgICAiJExGID0gWzpMaW5lQnJlYWsgPSBMaW5lX0ZlZWQ6XTsiCi0gICAgIiROTCA9IFs6
TGluZUJyZWFrID0gTmV4dF9MaW5lOl07IgotICAgICIkTlMgPSBbW1tbOkxpbmVCcmVhayA9IE5v
bnN0YXJ0ZXI6XSAtICRDSl0gJE5TX0FERF0gLSAkTlNfU1VCXTsiCi0gICAgIiROVSA9IFs6TGlu
ZUJyZWFrID0gTnVtZXJpYzpdOyIKLSAgICAiJE9QID0gWzpMaW5lQnJlYWsgPSBPcGVuX1B1bmN0
dWF0aW9uOl07IgotICAgICIkUE8gPSBbWzpMaW5lQnJlYWsgPSBQb3N0Zml4X051bWVyaWM6XSAt
ICRQT19TVUJdOyIKLSAgICAiJFBSID0gW1s6TGluZUJyZWFrID0gUHJlZml4X051bWVyaWM6XSAt
ICRQUl9TVUJdOyIKLSAgICAiJFFVID0gWzpMaW5lQnJlYWsgPSBRdW90YXRpb246XTsiCi0gICAg
IiRSSSA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IgotICAgICIkU0EgPSBbOkxpbmVCcmVh
ayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dh
dGU6XTsiCi0gICAgIiRTUCA9IFs6TGluZUJyZWFrID0gU3BhY2U6XTsiCi0gICAgIiRTWSA9IFs6
TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOyIKLSAgICAiJFdKID0gWzpMaW5lQnJlYWsgPSBX
b3JkX0pvaW5lcjpdOyIKLSAgICAiJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3duOl07IgotICAg
ICIkWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsiCi0gICAgIiRaV0ogPSBcXHUyMDBEOyIK
LSAgICAiJEVtb2ppVmFyID0gXFx1RkUwRjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
Ci0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBc
XFUwMDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAxRjND
QyBcXFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAx
RjQ2RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUw
MDAxRjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBc
XFUwMDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0
QiBcXFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAx
RjZCNiBcXHUyNjk1LVxcdTI2OTYgXFx1MjcwOCBcXFUwMDAxRjMzRSBcXFUwMDAxRjM3MyBcXFUw
MDAxRjM5MyBcXFUwMDAxRjNBNCBcXFUwMDAxRjNBOCBcXFUwMDAxRjNFQiBcXFUwMDAxRjNFRCBc
XFUwMDAxRjRCQi1cXFUwMDAxRjRCQyBcXFUwMDAxRjUyNyBcXFUwMDAxRjUyQyBcXFUwMDAxRjY4
MCBcXFUwMDAxRjY5MiBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzNy1cXFUwMDAxRjkzOSBcXFUwMDAx
RjkzQy1cXFUwMDAxRjkzRV07IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1
ZW5jZXMKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUy
NzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAw
MDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxc
VTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdD
IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFG
NEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAw
MDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxc
VTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4IFxcVTAwMDFGM0My
IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NDIFxcVTAwMDFGNTc0IFxcVTAwMDFGNTdBIFxcVTAwMDFG
NkNDIFxcVTAwMDFGOTE5LVxcVTAwMDFGOTFFIFxcVTAwMDFGOTI2IFxcVTAwMDFGOTMwIFxcVTAw
MDFGOTMzLVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXSA7IiAvLyBFbW9qaSB0
aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZWxzZQotICAgICIkRW1vamlGb3JTZXFz
ID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIKLSAgICAi
JEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUw
MDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1c
XFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2
OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAx
RjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUw
MDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBc
XFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtl
IEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAw
MUYzRkItXFxVMDAwMUYzRkZdOyIKLSAgICAiJGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENv
bXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJEFMUGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsi
Ci0gICAgIiRBTGNtID0gJEFMUGx1cyAkQ00qOyIKLSAgICAiJEJBY20gPSAkQkEgJENNKjsiCi0g
ICAgIiRCQmNtID0gJEJCICRDTSo7IgotICAgICIkQjJjbSA9ICRCMiAkQ00qOyIKLSAgICAiJENM
Y20gPSAkQ0wgJENNKjsiCi0gICAgIiRDUGNtID0gJENQICRDTSo7IgotICAgICIkRVhjbSA9ICRF
WCAkQ00qOyIKLSAgICAiJEdMY20gPSAkR0wgJENNKjsiCi0gICAgIiRITGNtID0gJEhMICRDTSo7
IgotICAgICIkSFljbSA9ICRIWSAkQ00qOyIKLSAgICAiJEgyY20gPSAkSDIgJENNKjsiCi0gICAg
IiRIM2NtID0gJEgzICRDTSo7IgotICAgICIkSURjbSA9ICRJRCAkQ00qOyIKLSAgICAiJElOY20g
PSAkSU4gJENNKjsiCi0gICAgIiRJU2NtID0gJElTICRDTSo7IgotICAgICIkSkxjbSA9ICRKTCAk
Q00qOyIKLSAgICAiJEpWY20gPSAkSlYgJENNKjsiCi0gICAgIiRKVGNtID0gJEpUICRDTSo7Igot
ICAgICIkTlNjbSA9ICROUyAkQ00qOyIKLSAgICAiJE5VY20gPSAkTlUgJENNKjsiCi0gICAgIiRP
UGNtID0gJE9QICRDTSo7IgotICAgICIkUE9jbSA9ICRQTyAkQ00qOyIKLSAgICAiJFBSY20gPSAk
UFIgJENNKjsiCi0gICAgIiRRVWNtID0gJFFVICRDTSo7IgotICAgICIkUkljbSA9ICRSSSAkQ00q
OyIKLSAgICAiJFNZY20gPSAkU1kgJENNKjsiCi0gICAgIiRXSmNtID0gJFdKICRDTSo7IjsKLQot
c3RhdGljIGNvbnN0IGNoYXIqIHVheDE0Rm9yd2FyZCA9Ci0gICAgIiEhZm9yd2FyZDsiCi0gICAg
IiRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07IgotICAgICIkQ0FOVF9D
TSA9IFskU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOyIKLSAgICAiJEFMX0ZPTExPV19OT0NN
ID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRBTF9GT0xMT1dfQ00gPSBbJENM
ICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRHTCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAkTlUg
JEFMUGx1c107IgotICAgICIkQUxfRk9MTE9XID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9X
X0NNXTsiCi0gICAgIiRMQjRCcmVha3MgPSBbJEJLICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjRO
b25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICROTF07IgotICAgICIkTEI4QnJlYWtzID0gWyRMQjRC
cmVha3MgJFpXXTsiCi0gICAgIiRMQjhOb25CcmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRa
V11dOyIKLSAgICAiJExCMThOb25CcmVha3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsiCi0g
ICAgIiRMQjE4QnJlYWtzID0gWyRMQjhCcmVha3MgJFNQXTsiCi0gICAgIiRMQjIwTm9uQnJlYWtz
ID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsiCi0gICAgIiRBTFBsdXMgJENNKzsiCi0gICAgIiRC
QSAkQ00rOyIKLSAgICAiJEJCICRDTSs7IgotICAgICIkQjIgJENNKzsiCi0gICAgIiRDTCAkQ00r
OyIKLSAgICAiJENQICRDTSs7IgotICAgICIkRVggJENNKzsiCi0gICAgIiRHTCAkQ00rOyIKLSAg
ICAiJEhMICRDTSs7IgotICAgICIkSFkgJENNKzsiCi0gICAgIiRIMiAkQ00rOyIKLSAgICAiJEgz
ICRDTSs7IgotICAgICIkSUQgJENNKzsiCi0gICAgIiRJTiAkQ00rOyIKLSAgICAiJElTICRDTSs7
IgotICAgICIkSkwgJENNKzsiCi0gICAgIiRKViAkQ00rOyIKLSAgICAiJEpUICRDTSs7IgotICAg
ICIkTlMgJENNKzsiCi0gICAgIiROVSAkQ00rOyIKLSAgICAiJE9QICRDTSs7IgotICAgICIkUE8g
JENNKzsiCi0gICAgIiRQUiAkQ00rOyIKLSAgICAiJFFVICRDTSs7IgotICAgICIkUkkgJENNKzsi
Ci0gICAgIiRTWSAkQ00rOyIKLSAgICAiJFdKICRDTSs7IgotICAgICIkQ1IgJExGIHsxMDB9OyIK
LSAgICAiJExCNE5vbkJyZWFrcz8gJExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRDQU5fQ00gJENN
KiAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJENNKyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAi
JExCNE5vbkJyZWFrcyBbJFNQICRaV107IgotICAgICIkQ0FOX0NNICRDTSogWyRTUCAkWlddOyIK
LSAgICAiJENNKyBbJFNQICRaV107IgotICAgICIkRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVt
b2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFzOyIKLSAgICAiJENBTl9DTSAkQ00rOyIKLSAgICAi
JENNKzsiCi0gICAgIiRDQU5fQ00gJENNKiAkV0pjbTsiCi0gICAgIiRMQjhOb25CcmVha3MgJFdK
Y207IgotICAgICIkQ00rICRXSmNtOyIKLSAgICAiJFdKY20gJENBTlRfQ007IgotICAgICIkV0pj
bSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xjbSAk
Q0FOVF9DTTsiCi0gICAgIltbJExCOE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRH
TGNtOyIKLSAgICAiJENNKyBHTGNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkQ0w7IgotICAgICIk
Q0FOX0NNICRDTSogJENMOyIKLSAgICAiJENNKyAkQ0w7IgotICAgICIkTEI4Tm9uQnJlYWtzICRD
UDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ1A7IgotICAgICIkQ00rICRDUDsiCi0gICAgIiRMQjhO
b25CcmVha3MgJEVYOyIKLSAgICAiJENBTl9DTSAkQ00qICRFWDsiCi0gICAgIiRDTSsgJEVYOyIK
LSAgICAiJExCOE5vbkJyZWFrcyAkSVM7IgotICAgICIkQ0FOX0NNICRDTSogJElTOyIKLSAgICAi
JENNKyAkSVM7IgotICAgICIkTEI4Tm9uQnJlYWtzICRTWTsiCi0gICAgIiRDQU5fQ00gJENNKiAk
U1k7IgotICAgICIkQ00rICRTWTsiCi0gICAgIiRPUGNtICRTUCogJENBTl9DTSAkQ00qOyIKLSAg
ICAiJE9QY20gJFNQKiAkQ0FOVF9DTTsiCi0gICAgIiRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9X
PzsiCi0gICAgIiRRVWNtICRTUCogJE9QY207IgotICAgICIoJENMY20gfCAkQ1BjbSkgJFNQKiAk
TlNjbTsiCi0gICAgIiRCMmNtICRTUCogJEIyY207IgotICAgICIkTEIxOE5vbkJyZWFrcyAkQ00q
ICRRVWNtOyIKLSAgICAiJENNKyAkUVVjbTsiCi0gICAgIiRRVWNtIC4/OyIKLSAgICAiJFFVY20g
JExCMThOb25CcmVha3MgJENNKjsiCi0gICAgIiRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwg
JEhZY20gfCAkTlNjbSk7ICIKLSAgICAiJEJCY20gW14kQ0JdOyIKLSAgICAiJEJCY20gJExCMjBO
b25CcmVha3MgJENNKjsiCi0gICAgIiRITGNtICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OyIKLSAg
ICAiJFNZY20gJEhMY207IgotICAgICIoJEFMY20gfCAkSExjbSkgJElOY207IgotICAgICIkQ00r
ICRJTmNtOyIKLSAgICAiJEVYY20gJElOY207IgotICAgICIkSURjbSAkSU5jbTsiCi0gICAgIiRJ
TmNtICRJTmNtOyIKLSAgICAiJE5VY20gJElOY207IgotICAgICIkSURjbSAkUE9jbTsiCi0gICAg
IiRBTGNtICROVWNtOyIKLSAgICAiJEhMY20gJE5VY207IgotICAgICIkQ00rICROVWNtOyIKLSAg
ICAiJE5VY20gJEFMY207IgotICAgICIkTlVjbSAkSExjbTsiCi0gICAgIiRQUmNtICRJRGNtOyIK
LSAgICAiJFBSY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJFBPY20gKCRBTGNtIHwgJEhMY20p
OyIKLSAgICAiKCRQUmNtIHwgJFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8
ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87IgotICAg
ICIkSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRIMmNtIHwgJEgzY20pOyIKLSAgICAiKCRKVmNtIHwg
JEgyY20pICgkSlZjbSB8ICRKVGNtKTsiCi0gICAgIigkSlRjbSB8ICRIM2NtKSAkSlRjbTsiCi0g
ICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsiCi0gICAg
IigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkUE9jbTsiCi0gICAgIiRQ
UmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKTsiCi0gICAgIigkQUxj
bSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7IgotICAgICIkQ00rICgkQUxjbSB8ICRITGNtKTsi
Ci0gICAgIiRJU2NtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIigkQUxjbSB8ICRITGNtIHwgJE5V
Y20pICRPUGNtOyIKLSAgICAiJENNKyAkT1BjbTsiCi0gICAgIiRDUGNtICgkQUxjbSB8ICRITGNt
IHwgJE5VY20pOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJFJJY20gJFJJ
Y207IgotI2VuZGlmCi0gICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyI7
Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFJldmVyc2UgPQotICAgICIhIXJldmVyc2U7Igot
ICAgICIkQ00rICRBTFBsdXM7IgotICAgICIkQ00rICRCQTsiCi0gICAgIiRDTSsgJEJCOyIKLSAg
ICAiJENNKyAkQjI7IgotICAgICIkQ00rICRDTDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJENN
KyAkRVg7IgotICAgICIkQ00rICRHTDsiCi0gICAgIiRDTSsgJEhMOyIKLSAgICAiJENNKyAkSFk7
IgotICAgICIkQ00rICRIMjsiCi0gICAgIiRDTSsgJEgzOyIKLSAgICAiJENNKyAkSUQ7IgotICAg
ICIkQ00rICRJTjsiCi0gICAgIiRDTSsgJElTOyIKLSAgICAiJENNKyAkSkw7IgotICAgICIkQ00r
ICRKVjsiCi0gICAgIiRDTSsgJEpUOyIKLSAgICAiJENNKyAkTlM7IgotICAgICIkQ00rICROVTsi
Ci0gICAgIiRDTSsgJE9QOyIKLSAgICAiJENNKyAkUE87IgotICAgICIkQ00rICRQUjsiCi0gICAg
IiRDTSsgJFFVOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKyAkUkk7
IgotI2VuZGlmCi0gICAgIiRDTSsgJFNZOyIKLSAgICAiJENNKyAkV0o7IgotICAgICIkQ00rOyIK
LSAgICAiJEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRT
UCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsi
Ci0gICAgIlskUFJdIC8gJENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOyIKLSAg
ICAiJExCNEJyZWFrcyBbJExCNE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJExCNEJyZWFrcyAkQ00r
ICRDQU5fQ007IgotICAgICIkTEYgJENSOyIKLSAgICAiWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtz
LSRDTV07IgotICAgICJbJFNQICRaV10gJENNKyAkQ0FOX0NNOyIKLSAgICAiJEVtb2ppRm9yU2Vx
cyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZhcj8gJEVtb2ppRm9yU2VxczsiCi0gICAgIiRDTSsg
JENBTl9DTTsiCi0gICAgIiRDTSogJFdKICRDTSogJENBTl9DTTsiCi0gICAgIiRDTSogJFdKIFsk
TEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ0FOVF9DTSAkQ00qICRXSjsiCi0gICAgIiRDTSog
JENBTl9DTSAkQ00qICRXSjsiCi0gICAgIiRDTSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRD
TSAkU1AgJEJBICRIWV1dOyIKLSAgICAiJENBTlRfQ00gJENNKiAkR0w7IgotICAgICIkQ00qICRD
QU5fQ00gJENNKiAkR0w7IgotICAgICIkQ0wgJENNKyAkQ0FOX0NNOyIKLSAgICAiJENQICRDTSsg
JENBTl9DTTsiCi0gICAgIiRFWCAkQ00rICRDQU5fQ007IgotICAgICIkSVMgJENNKyAkQ0FOX0NN
OyIKLSAgICAiJFNZICRDTSsgJENBTl9DTTsiCi0gICAgIiRDTCBbJExCOE5vbkJyZWFrcy0kQ01d
OyIKLSAgICAiJENQIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkRVggWyRMQjhOb25CcmVh
a3MtJENNXTsiCi0gICAgIiRJUyBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJFNZIFskTEI4
Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJENMICRDUCAkRVggJElTICRTWV0gJENNKyAkU1ArICRD
TSogJE9QOyAiCi0gICAgIiRDTSogJENBTl9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAiJENBTlRf
Q00gJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAk
T1A7IgotICAgICIkQUxfRk9MTE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJENN
KiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAkQ00qICRPUDsiCi0gICAgIiRTWSAkQ00gJFNQKyAk
T1A7IgotICAgICIkQ00qICRPUCAkU1AqICRDTSogJFFVOyIKLSAgICAiJENNKiAkTlMgJFNQKiAk
Q00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJENNKiAkQjIgJFNQKiAkQ00qICRCMjsiCi0gICAgIiRD
TSogJFFVICRDTSogJENBTl9DTTsiCi0gICAgIiRDTSogJFFVICRMQjE4Tm9uQnJlYWtzOyIKLSAg
ICAiJENNKiAkQ0FOX0NNICRDTSogJFFVOyIKLSAgICAiJENBTlRfQ00gJENNKiAkUVU7IgotICAg
ICIkQ00qICgkQkEgfCAkSFkgfCAkTlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV07IgotICAg
ICIkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSog
JEJCOyIKLSAgICAiW14kQ0JdICRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIkQ00q
ICRITCAkQ00qICRTWTsiCi0gICAgIiRDTSogJElOICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAg
ICAiJENNKiAkSU4gJENNKiAkRVg7IgotICAgICIkQ00qICRJTiAkQ00qICRJRDsiCi0gICAgIiRD
TSogJElOICRDTSogJElOOyIKLSAgICAiJENNKiAkSU4gJENNKiAkTlU7IgotICAgICIkQ00qICRQ
TyAkQ00qICRJRDsiCi0gICAgIiRDTSogJE5VICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAi
JENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkTlU7IgotICAgICIkQ00qICRJRCAkQ00qICRQUjsi
Ci0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1
cyB8ICRITCkgJENNKiAkUE87IgotICAgICIoJENNKiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wg
fCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRTWSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwg
JEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlYg
fCAkSkwpICRDTSogJEpMOyIKLSAgICAiJENNKiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYp
OyIKLSAgICAiJENNKiAkSlQgJENNKiAoJEgzIHwgJEpUKTsiCi0gICAgIiRDTSogJElOICRDTSog
KCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7IgotICAgICIkQ00qICRQTyAkQ00qICgkSDMg
fCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIKLSAgICAiJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwg
JEpWIHwgJEpMKSAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogKCRB
TFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkSVM7IgotICAg
ICIkQ00qICRPUCAkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKTsiCi0gICAgIiRDTSogKCRBTFBs
dXMgfCAkSEwgfCAkTlUpICRDTSogJENQOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQK
LSAgICAiJENNKiAkUkkgJENNKiAkUkk7IgotI2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgJEVtb2pp
VmFyPyAkRW1vamlGb3JNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVGb3J3
YXJkID0KLSAgICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICJbJENNICRPUCAkUVUgJENMICRDUCAk
QjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRC
MiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlvbmFy
eTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRTYWZlUmV2ZXJzZSA9Ci0gICAgIiEhc2Fm
ZV9yZXZlcnNlOyIKLSAgICAiJENNKyBbXiRDTSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07Igot
ICAgICIkQ00rICRTUCAvIC47IgotICAgICIkU1ArICRDTSogJE9QOyIKLSAgICAiJFNQKyAkQ00q
ICRRVTsiCi0gICAgIiRTUCsgJENNKiAoJENMIHwgJENQKTsiCi0gICAgIiRTUCsgJENNKiAkQjI7
IgotICAgICIkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOyIKLSAgICAiKCRDTSogKCRJUyB8ICRT
WSkpKyAkQ00qICROVTsiCi0gICAgIigkQ0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7
IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsiOwotCiBzdGF0aWMgU3RyaW5nIG1hcExp
bmVJdGVyYXRvck1vZGVUb1J1bGVzKExpbmVCcmVha0l0ZXJhdG9yTW9kZSBtb2RlLCBib29sIGlz
Q0pLKQogewotICAgIFN0cmluZ0J1aWxkZXIgcnVsZXNCdWlsZGVyOwotICAgIHJ1bGVzQnVpbGRl
ci5hcHBlbmQodWF4MTRQcm9sb2d1ZSk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFz
c2lnbm1lbnRzQmVmb3JlKTsKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAgICBjYXNlIExpbmVCcmVh
a0l0ZXJhdG9yTW9kZTo6RGVmYXVsdDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NK
SyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1
c3RvbURlZmF1bHROb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pL
ID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpMb29zZToKLSAg
ICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21M
b29zZUNKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZU5vbkNKSyk7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VD
SktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKS1J1bGVzOwogICAgIGNh
c2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpOb3JtYWw6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5h
cHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pLIDogdWF4MTRBc3Np
Z25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1
cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLUnVsZXMgOiBsaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVy
YXRvck1vZGU6OlN0cmljdDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVh
eDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3Ry
aWN0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSktSdWxlczsKICAgICB9Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFz
c2lnbm1lbnRzQWZ0ZXIpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRGb3J3YXJkKTsK
LSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0UmV2ZXJzZSk7Ci0gICAgcnVsZXNCdWlsZGVy
LmFwcGVuZCh1YXgxNFNhZmVGb3J3YXJkKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0
U2FmZVJldmVyc2UpOwotICAgIHJldHVybiBydWxlc0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gIiI7CiB9CiAKIC8vIFJlY29nbml6ZSBC
Q1A0NyBjb21wbGlhbnQgcHJpbWFyeSBsYW5ndWFnZSB2YWx1ZXMgb2YgJ3poJywgJ2phJywgJ2tv
JwpAQCAtNzg4LDkgKzI1NCwyOSBAQCBUZXh0QnJlYWtJdGVyYXRvciogb3BlbkxpbmVCcmVha0l0
ZXJhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBMaW5lQnJlYWtJdAogICAgIGlmICht
b2RlID09IExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6RGVmYXVsdCkKICAgICAgICAgdWJya0l0ZXIg
PSB1YnJrX29wZW4oVUJSS19MSU5FLCBsb2NhbGVJc0VtcHR5ID8gY3VycmVudFRleHRCcmVha0xv
Y2FsZUlEKCkgOiBsb2NhbGUuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgMCwgMCwgJm9wZW5TdGF0
dXMpOwogICAgIGVsc2UgewotICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKLSAgICAg
ICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsK
LSAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNv
bnZlcnRlZENoYXJhY3RlcnMoKSwgcnVsZXMubGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywg
Jm9wZW5TdGF0dXMpOworICAgICAgICBCcmVha2luZ1J1bGVTZXQgcnVsZVNldDsKKyAgICAgICAg
c3dpdGNoIChtb2RlKSB7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpEZWZh
dWx0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgx
NENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Okxvb3NlOgorICAgICAgICAgICAg
cnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLIDogQnJlYWtp
bmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpOb3JtYWw6CisgICAgICAgICAgICBydWxlU2V0
ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLIDogQnJlYWtpbmdSdWxl
U2V0OjpVQVgxNE5vcm1hbE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6U3RyaWN0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlz
Q0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdENKSyA6IEJyZWFraW5nUnVsZVNldDo6
VUFYMTRTdHJpY3ROb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChydWxlU2V0
KSkKKyAgICAgICAgICAgIHVicmtJdGVyID0gcmVpbnRlcnByZXRfY2FzdDxVQnJlYWtJdGVyYXRv
cio+KGl0ZXJhdG9yKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBVUGFyc2VFcnJvciBw
YXJzZVN0YXR1czsKKyAgICAgICAgICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRlcmF0b3JNb2Rl
VG9SdWxlcyhtb2RlLCBpc0NKSyk7CisgICAgICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlblJ1
bGVzKFN0cmluZ1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBydWxlcy5sZW5n
dGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7CisgICAgICAgIH0KICAgICB9
CiAgICAgLy8gbG9jYWxlIGNvbWVzIGZyb20gYSB3ZWIgcGFnZSBhbmQgaXQgY2FuIGJlIGludmFs
aWQsIGxlYWRpbmcgSUNVCiAgICAgLy8gdG8gZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSBmYWxsIGJh
Y2sgdG8gdGhlIGRlZmF1bHQgbG9jYWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4
dC9UZXh0QnJlYWtJdGVyYXRvci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVy
YXRvci5oCmluZGV4IDhhZmI1NTgwMjAxMDAyYmJkMmVkZDU3NTY1YmMzNDFiMWEwMDZhOWUuLjk0
ZmY3ZDYwNTM3NDQ4M2I3NTNkMGI1ZGFiZDc0NmNlY2UwMmU0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKQEAgLTMxLDYgKzMxLDMwIEBAIGNsYXNzIFRleHRCcmVh
a0l0ZXJhdG9yOwogCiBlbnVtIGNsYXNzIExpbmVCcmVha0l0ZXJhdG9yTW9kZSB7IERlZmF1bHQs
IExvb3NlLCBOb3JtYWwsIFN0cmljdCB9OwogCitlbnVtIGNsYXNzIEJyZWFraW5nUnVsZVNldCB7
CisgICAgQ3Vyc29yTW92ZW1lbnQsCisgICAgVUFYMTRDSkssCisgICAgVUFYMTROb25DSkssCisg
ICAgVUFYMTRMb29zZUNKSywKKyAgICBVQVgxNExvb3NlTm9uQ0pLLAorICAgIFVBWDE0Tm9ybWFs
Q0pLLAorICAgIFVBWDE0Tm9ybWFsTm9uQ0pLLAorICAgIFVBWDE0U3RyaWN0Q0pLLAorICAgIFVB
WDE0U3RyaWN0Tm9uQ0pLCit9OworCitleHRlcm4gY29uc3QgY2hhciogY3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
UnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pL
UnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9u
Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdE5vbkNKS1J1bGVzOworCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JG
b3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCk7CisKIC8vIFRoaXMgaXMgc2ltaWxhciB0byBjaGFy
YWN0ZXIgYnJlYWsgaXRlcmF0b3IgaW4gbW9zdCBjYXNlcywgYnV0IGlzIHN1YmplY3QgdG8KIC8v
IHBsYXRmb3JtIFVJIGNvbnZlbnRpb25zLiBPbmUgbm90YWJsZSBleGFtcGxlIHdoZXJlIHRoaXMg
Y2FuIGJlIGRpZmZlcmVudAogLy8gZnJvbSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgaXMgVGhh
aSBwcmVwZW5kIGNoYXJhY3RlcnMsIHNlZSBidWcgMjQzNDIuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tIGIvU291
cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQpp
bmRleCBiZWY1ZGFhNjQyODg4MjFlMjBmMjYyOGM2ODU1ZWU4ZTg4YTM4OTJjLi4yYWVjZjA5ZTgy
NTQ0YzY2YjdkMWMxZTVhYWFjNjRmNWZmZjMwMmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KQEAg
LTIxLDEyICsyMSwxMjAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0QnJl
YWtJdGVyYXRvckludGVybmFsSUNVLmgiCiAKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5o
IgorCisjaWYgZGVmaW5lZChVX1NIT1dfQ1BMVVNQTFVTX0FQSSkKKyN1bmRlZiBVX1NIT1dfQ1BM
VVNQTFVTX0FQSQorI2VuZGlmCisjZGVmaW5lIFVfU0hPV19DUExVU1BMVVNfQVBJIDEKKworI2lu
Y2x1ZGUgPHVuaWNvZGUvcmJiaS5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWRhdGEuaD4KKyNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKK0BpbnRlcmZhY2UgV1RGQnVuZGxlRmluZGVyIDog
TlNPYmplY3QKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdURkJ1bmRsZUZpbmRlcgorQGVuZAor
CiBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0IGludCBtYXhMb2NhbGVTdHJpbmdMZW5n
dGggPSAzMjsKIAorc3RydWN0IFJ1bGVDYWNoZSB7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJ1bGVC
YXNlZEJyZWFrSXRlcmF0b3I+IGl0ZXJhdG9yOworICAgIGJvb2wgZmFpbGVkIHsgZmFsc2UgfTsK
K307CisKK1RleHRCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtp
bmdSdWxlU2V0IHJ1bGVTZXQpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNo
ZT4gY3Vyc29yTW92ZW1lbnRJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVs
ZUNhY2hlPiBsaW5lQnJlYWtVQVgxNENKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0Tm9uQ0pLSXRlcmF0b3I7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTRMb29zZUNKS0l0ZXJhdG9y
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0TG9v
c2VOb25DSktJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBs
aW5lQnJlYWtVQVgxNE5vcm1hbENKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0Tm9ybWFsTm9uQ0pLSXRlcmF0b3I7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTRTdHJpY3RDSktJdGVy
YXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgx
NFN0cmljdE5vbkNKS0l0ZXJhdG9yOworCisgICAgTlNTdHJpbmcgKmZpbGVOYW1lQmFzZTsKKyAg
ICBSdWxlQ2FjaGUqIGNhY2hlID0gbnVsbHB0cjsKKworICAgIHN3aXRjaCAocnVsZVNldCkgewor
ICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpDdXJzb3JNb3ZlbWVudDoKKyAgICAgICAgZmlsZU5h
bWVCYXNlID0gQCJDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMiOworICAgICAgICBjYWNoZSA9
ICZjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEJyZWFraW5nUnVsZVNldDo6VUFYMTRDSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0
Q0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxl
U2V0OjpVQVgxNE5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTROb25DSktJ
dGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6
OlVBWDE0TG9vc2VDSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlQ0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTRMb29zZUNK
S0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNl
dDo6VUFYMTRMb29zZU5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VOb25DSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgx
NExvb3NlTm9uQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJl
YWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbENKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJy
ZWFrVUFYMTROb3JtYWxDSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJh
c2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksiOworICAgICAgICBjYWNo
ZSA9ICZsaW5lQnJlYWtVQVgxNE5vcm1hbE5vbkNKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3RDSks6CisgICAgICAg
IGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSyI7CisgICAg
ICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0U3RyaWN0Q0pLSXRlcmF0b3IuZ2V0KCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdE5vbkNKSzoK
KyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9u
Q0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTRTdHJpY3ROb25DSktJdGVyYXRv
ci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgQVNTRVJUKGNhY2hlKTsKKwor
ICAgIGlmIChjYWNoZS0+ZmFpbGVkKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlm
ICghY2FjaGUtPml0ZXJhdG9yKSB7CisgICAgICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5k
bGUgYnVuZGxlRm9yQ2xhc3M6W1dURkJ1bmRsZUZpbmRlciBjbGFzc11dOworICAgICAgICBOU1N0
cmluZyAqcGF0aCA9IFtidW5kbGUgcGF0aEZvclJlc291cmNlOmZpbGVOYW1lQmFzZSBvZlR5cGU6
QCJicmsiIGluRGlyZWN0b3J5OkAiQnJlYWtpbmdSdWxlcyJdOworICAgICAgICBpZiAoIXBhdGgp
IHsKKyAgICAgICAgICAgIGNhY2hlLT5mYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBOU1N0cmluZyAqZGlyZWN0b3J5ID0gW3Bh
dGggc3RyaW5nQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50XTsKKyAgICAgICAgVUVycm9yQ29k
ZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAgICAgIExvY2FsVURhdGFNZW1vcnlQb2lu
dGVyIGRhdGEodWRhdGFfb3BlbihbZGlyZWN0b3J5IFVURjhTdHJpbmddLCAiYnJrIiwgW2ZpbGVO
YW1lQmFzZSBVVEY4U3RyaW5nXSwgJmVycm9yQ29kZSkpOworICAgICAgICBpZiAoZXJyb3JDb2Rl
ICE9IFVfWkVST19FUlJPUikgeworICAgICAgICAgICAgY2FjaGUtPmZhaWxlZCA9IHRydWU7Cisg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIGNhY2hlLT5p
dGVyYXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4oZGF0YS5v
cnBoYW4oKSwgZXJyb3JDb2RlKTsKKyAgICAgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJS
T1IpIHsKKyAgICAgICAgICAgIGNhY2hlLT5mYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgY2Fj
aGUtPml0ZXJhdG9yID0gbnVsbHB0cjsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAg
ICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGV4dEJyZWFrSXRl
cmF0b3IqPihzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+KCpjYWNoZS0+
aXRlcmF0b3IpLnJlbGVhc2UoKSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENGU3Ry
aW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVmZXJlbmNlKCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZQ
cm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlWYWx1ZShD
RlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUiKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9X
ZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQppbmRleCAyOWEwOTY5
MDM4ZmFhNzQ0ZTFhOGM1OGYzNTZhZDA3M2YwMDUyNWJkLi44MWY1NGE1NmFkNjk1M2Q3YjFlMjBj
ODhmYTg1YmJkZGQxZjA3ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21h
a2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlCkBAIC0yNCw2ICsyNCw3IEBAIGlm
IChOT1QgVE9PTFNfRElSKQogZW5kaWYgKCkKIAogc2V0KERFUklWRURfU09VUkNFU19ESVIgIiR7
Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMiKQorc2V0KERFUklWRURfU09VUkNFU19X
VEZfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURiIpCiBzZXQoREVS
SVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJp
dmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZSIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVf
RElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUiKQogc2V0KERF
UklWRURfU09VUkNFU19XRUJLSVRMRUdBQ1lfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2
ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIpCkBAIC0zMiw2ICszMyw4IEBAIHNldChERVJJVkVEX1NP
VVJDRVNfV0VCS0lUMl9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0MiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUiAiJHtDTUFLRV9C
SU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJJbnNwZWN0b3JVSSIpCiAKIGZpbGUoTUFLRV9E
SVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfSkKK2ZpbGUoTUFL
RV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0pCitmaWxlKE1BS0VfRElSRUNU
T1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMpCiBmaWxlKE1BS0Vf
RElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0vU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9S
VUlfRElSfSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297122</attachid>
            <date>2016-12-14 14:01:10 -0800</date>
            <delta_ts>2016-12-14 14:23:53 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20161214140019.patch</filename>
            <type>text/plain</type>
            <size>114696</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NGViZjQ3NGFkODg3OWY2MjRjOWI5MzAwYTVhNzQ4YzkzMTY5MDYzLi44YmY4NmExYTA3Yzg3OWQz
ZWVmYTFhZmY0Y2JmNmZmNTc3MmYyZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0xMi0xNCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMTItMTQgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViQXNzZW1ibHkgSlMgQVBJOiBpbXBsZW1lbnQgR2xvYmFsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4
IDk1OTcwOTMzMzA4YmM2MWJhZDQzOWE0ZDYzMTNmYjQ4ZDMxZDQyODcuLjllYjVmMDMwNmU2YTEw
YjM5ZjhkY2U5YzgxZGQ0Zjc2ZTIzYjUyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMTIt
MTQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBD
b21waWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBy
dW4gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYwNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNv
dXJjZXMubWFrZTogQWRkZWQuCisgICAgICAgICogd3RmL2dlbmJyazogQWRkZWQuCisgICAgICAg
ICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yRXBpbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZUNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQu
CisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4
dEJyZWFrSXRlcmF0b3IuY3BwOgorICAgICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgor
ICAgICAgICAoV1RGOjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3Bl
bkxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRv
ci5oOgorICAgICAgICAqIHd0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNV
TWFjLm1tOgorICAgICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorCiAyMDE2LTEyLTE0
ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMjA5Nzk1LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAwYzI0NDNhZDE0MmYwMzdhZWM3N2NlYTk1MWE0NjNjMjVhZTA2MTRiLi45MjQ0Njk4MDU0
NjRlZTgyYzk5ZDY1ZDk3MmQ4MjFjOWNmNGJhMTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTIwNiw2ICsxMjA2LDcgQEAKIAkJMUEyOEQ0QTgxNzdCNzFDODAwMDdGQTNDIC8q
IEpTU3RyaW5nUmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUEyOEQ0QTcxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVmUHJpdmF0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFB
ODgyNkIxNjUzQzRDRDFBNjQyOTgzQiAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5VGFibGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEI0N0YyMzQzNjZD
NEI3MkFDODUyQTdFIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgKi87IH07CiAJCTFB
Q0Y3Mzc3MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQ0Y3Mzc2MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFr
LmNwcCAqLzsgfTsKKwkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRDE4NzhG
MUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovOyB9OwogCQkyNjAwQjVBNjE1MkJB
QUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmNwcCAqLzsgfTsKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLzsgfTsKIAkJ
MjYyRDg1QjYxQzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjJEODVC
NDFDMEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLzsg
fTsKQEAgLTM1OTAsNiArMzU5MSw3IEBACiAJCTFDOTA1MTQ1MEJBOUU4QTcwMDgxRTlEMCAvKiBC
YXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25m
aWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRBMEQzMkMzOUEwMDQxQkNG
RiAvKiBKYXZhU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFT
Y3JpcHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEIwRDMyQzM5QTAw
NDFCQ0ZGIC8qIEphdmFTY3JpcHRDb3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEphdmFTY3JpcHRDb3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4
NzhGMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZm9sZGVyOyBuYW1lID0gQnJlYWtpbmdSdWxl
czsgcGF0aCA9IC4uL1dURi9CcmVha2luZ1J1bGVzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNT
dHJpbmdKb2luZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdK
b2luZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYyRDg1QjQxQzBENjUwRjAw
NkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBw
YXRoID0gYjMvYWlyL0FpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC01OTA3LDYgKzU5MDksNyBAQAogCQk2NTBGREY4RDA5RDBGQ0E3
MDA3NjlFNTQgLyogRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdS
dWxlcyAqLywKIAkJCQlBRDJGQ0MwQTFEQjU5QzU5MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3JDb25zdHJ1Y3Rvci5sdXQuaCAqLywKIAkJCQlBRDJGQ0MwQjFEQjU5QzU5MDBCM0U3
MzYgLyogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUubHV0LmggKi8sCiAJCQkJQUQy
RkNDMEMxREI1OUM1OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5s
dXQuaCAqLywKQEAgLTkyNjAsNiArOTI2Myw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZy
YW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVD
IC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDllMjU5NmU1OGFlZjU3M2M3MzhjYWM4YTc0NTVkYTU1
NzUzMjI1Yi4uMGI1YjU1NmVlNjc1ZWRhOTFiMmQ2MTA3NDhhMTllZjczZmRlMzM2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcsMTcgQEAKIAlv
YmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkx
Q0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNh
ID0gUEJYQWdncmVnYXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4
NzgzMUQ1NTY5NUMwMENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFn
Z3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAor
CQkJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMg
Ki8sCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZl
ZCBTb3VyY2VzIjsKKwkJCXByb2R1Y3ROYW1lID0gIkNvcHkgV1RGIEhlYWRlcnMiOworCQl9Owog
CQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2
NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQ
QlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtODQsNyArOTUsNiBA
QAogCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4g
RnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDNTE4
RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CiAJCTE0NDdBRUM3
MThGQ0U1ODAwMEIzRDdGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMjQ3QjYyMTQ2ODlCODYwMEU3OEI3NiAvKiBsaWJXVEYu
YSAqLzsgfTsKIAkJMTQ0N0FFQzkxOEZDRTU5NDAwQjNEN0ZGIC8qIG1ibWFsbG9jLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUM4MThGQ0U1
OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAgKi87IH07Ci0JCTE0NDdBRUNCMThGQ0U1QjkwMEIz
RDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUu
ZHlsaWIgKi87IH07CiAJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTkw
MTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9ICgpOyB9OyB9OwogCQkxNDY5NDE5MzE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRp
bWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTQ2OTQxOTExNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCAqLzsgfTsKIAkJ
MTQ2OTQxOTYxNkVBQUZGODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2OTQxOTQxNkVBQUZGODAwMjRFMTQ2
IC8qIFNjaGVkdWxlUGFpci5oICovOyB9OwpAQCAtMzM3LDYgKzM0NywxNiBAQAogCQlBOEE0NzQ4
QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4QjE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmgg
Ki87IH07CiAJCUFEN0M0MzRCMUREMkE0QTcwMDI2ODg4QiAvKiBFeHBlY3RlZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ3QzQzNEExREQyQTRBNzAw
MjY4ODhCIC8qIEV4cGVjdGVkLmggKi87IH07CiAJCUIzOEZEN0JEMTY4OTUzRTgwMDY1Qzk2OSAv
KiBGZWF0dXJlRGVmaW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggKi87
IH07CisJCUMyQkE1NDNFMUQ1ODZBRjQwMDBBMzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZD
RTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi87IH07CisJCUMyQ0EzN0U5MUQ1NUM5
NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTAxRDU1Qzk3MTAwNDg2
Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi87IH07CisJCUMyQ0EzN0VB
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UxMUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3
RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMjFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCAqLzsg
fTsKKwkJQzJDQTM3RUMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZU5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwICovOyB9OworCQlDMkNBMzdFRTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VGMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U2MUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAq
LzsgfTsKKwkJQzJDQTM3RjAxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksuY3BwICovOyB9OworCQlDMkNBMzdGMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAgKi87IH07CiAJCUM0RjhBOTM3MTlDNjVF
QjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAq
LzsgfTsKIAkJQzhCMEUxQTFFMDFBNDg2RUI5NUUwRDExIC8qIEluZGV4U2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM3RTFEN0RCRDg0QUMzOEZB
RTREMzQgLyogSW5kZXhTZXQuaCAqLzsgfTsKIAkJQzkxNkI5NzVGMDJGNEY3RThCNEFCMTJEIC8q
IEluZGV4TWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QjQzMzgzQTVEMEI0NjNDOTQzM0Q5MzMgLyogSW5kZXhNYXAuaCAqLzsgfTsKQEAgLTM3MSw2
ICszOTEsMTMgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAw
RTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAw
Q0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRh
aW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3
OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVH
bG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8g
PSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Q
cm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQ
cm9qZWN0IG9iamVjdCAqLzsKQEAgLTQ4Miw2ICs1MDksMTggQEAKIAkJMUMxODFDOEQxRDMwN0FC
ODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQzE4MUM4RTFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVU
RjE2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYx
Ni5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZB
MTYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMu
bW07IHBhdGggPSBtYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0
RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQjRGQjk4MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkxRDU1OUFF
RjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNCNEZCOUMxRDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9n
dWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdE
RUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMubWFrZTsg
cGF0aCA9IHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1
c2VzVGFicyA9IDE7IH07CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RF
QyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUZBNDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJD
b3JlVGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUaHJl
YWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAwRERC
OTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzExLDYgKzc1MCwxNiBAQAogCQlBOEE0NzQ4QjE1MUE4MjY0MDA0MTIz
RkYgLyogY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNvbmZpZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDdDNDM0QTFERDJBNEE3MDAyNjg4OEIg
LyogRXhwZWN0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhwZWN0ZWQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5
IC8qIEZlYXR1cmVEZWZpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZl
YXR1cmVEZWZpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDNGMUQ1
ODc0RTYwMDBBMzMzMiAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRo
b247IHBhdGggPSBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHk7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMjFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9u
Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTQxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5j
cHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcDsg
cGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksu
Y3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9u
Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTcxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENK
Sy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RD
SksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFODFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0RjhBOTM2MTlD
NjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FB
MTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRpbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTc0Miw3ICs3OTEsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
IAkJCWZpbGVzID0gKAogCQkJCTE0NDdBRUM2MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9u
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTE0NDdBRUNCMThGQ0U1QjkwMEIzRDdG
RiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCisJCQkJQzJCQTU0M0UxRDU4
NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQkx
NDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3b3JrcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTc3OSw2
ICs4MjgsMjUgQEAKIAkJCXBhdGggPSBpY3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwog
CQl9OworCQkxQ0QxODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQzJCQTU0M0YxRDU4NzRF
NjAwMEEzMzMyIC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAqLywKKwkJCQkxQ0Qx
ODc5MjFENTU5OEUxMDBDQzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAq
LywKKwkJCQkxQ0QxODc5MzFENTU5OTY1MDBDQzdERUMgLyogTGluZUJyZWFrSXRlcmF0b3JQcm9s
b2d1ZS50eHQgKi8sCisJCQkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksudHh0ICovLAorCQkJCTFDQjRGQjk1MUQ1NTlBNjkwMEY5RkUzOCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NjFENTU5QTkw
MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5NzFENTU5QUE4MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9u
Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5ODFENTU5QUQyMDBGOUZFMzggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy50eHQgKi8sCisJCQkJMUNCNEZCOTkxRDU1OUFFRjAwRjlGRTM4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovLAorCQkJCTFDQjRG
QjlBMUQ1NTlCMjMwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4
dCAqLywKKwkJCQkxQ0I0RkI5QjFENTU5QjNFMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUMxRDU1OUI2NzAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovLAorCQkJKTsKKwkJCXBhdGggPSBCcmVh
a2luZ1J1bGVzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMUZBNDdDODcx
NTI1MDJEQTAwNTY4RDFCIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC04MDAsMTAgKzg2OCwxMiBAQAogCQk1RDI0N0I1NzE0Njg5Qjg2MDBFNzhC
NzYgPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzhB
MUQ1NThBRDMwMENDN0RFQyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovLAogCQkJCTVEMjQ3QjZE
MTQ2ODlDNDcwMEU3OEI3NiAvKiBDb25maWd1cmF0aW9ucyAqLywKIAkJCQkxNDAyMkYzRjE4RjVD
M0U1MDA3RkYwRUIgLyogTGlicmFyaWVzICovLAogCQkJCTVEMjQ3QjYzMTQ2ODlCODYwMEU3OEI3
NiAvKiBQcm9kdWN0cyAqLywKIAkJCQk1RDI0N0I3NjE0Njg5RDc2MDBFNzhCNzYgLyogU291cmNl
ICovLAorCQkJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8s
CiAJCQkJMTQ0N0FFQzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICov
LAogCQkJCTE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICovLAog
CQkJKTsKQEAgLTExNjIsNiArMTIzMiw3IEBACiAJCUE4QTQ3MzFCMTUxQTgyNUIwMDQxMjNGRiAv
KiB0ZXh0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkx
Q0QxODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJCQlBNUJBMTVG
NjE4MjQzNTlFMDBBODJFNjkgLyogY2YgKi8sCiAJCQkJMUMxODFDODgxRDMwN0FCODAwRjVGQTE2
IC8qIGljdSAqLywKIAkJCQlBNUJBMTVGMTE4MjQzMzlGMDBBODJFNjkgLyogbWFjICovLApAQCAt
MTIzOSw2ICsxMzEwLDIzIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKKwkJQzJDQTM3REYxRDU1QzhEODAwNDg2Qjk4IC8qIERlcml2ZWQgU291cmNl
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQzJDQTM3
RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8s
CisJCQkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksuY3BwICovLAorCQkJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksuY3BwICovLAorCQkJCUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U0
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLywK
KwkJCQlDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U3MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLywKKwkJCQlD
MkNBMzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5v
bkNKSy5jcHAgKi8sCisJCQkpOworCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQkJcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dURjsKKwkJCXNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7CisJCX07CiAJCUNFNDY1MTZDMTlEQjFGQjQwMDNFQ0EwNSAvKiBjb2NvYSAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNTcwLDYgKzE2NTgsNyBAQAog
CQkJYnVpbGRSdWxlcyA9ICgKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJMUNEMTg3
ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJNjVBRkEy
OEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkpOwogCQkJ
bmFtZSA9IFdURjsKQEAgLTE2MDAsMTIgKzE2ODksMjcgQEAKIAkJCXRhcmdldHMgPSAoCiAJCQkJ
NUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLywKIAkJCQk2NUFGQTE2RjE2MzBCOTc3
MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLywKKwkJCQkxQ0QxODc4MTFENTU2OTVDMDBD
QzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0NDdBRUJEMThGQ0U1NjkwMEIzRDdG
RiAvKiBtYm1hbGxvYyAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9u
ICovCiAKIC8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCisJCTFD
RDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7
CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJ
CSk7CisJCQluYW1lID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNlcyI7CisJCQlvdXRwdXRQYXRo
cyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
KwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7
QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuY2QgXCIke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcblxuL2Jpbi9sbiAtc2ZoIFwiJHtTUkNS
T09UfVwiIFdURlxuZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsgISAtZCBCcmVha2luZ1J1bGVz
IF07IHRoZW5cbiAgICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxuXG5pZiBbIFwiJE1BQ09TWF9E
RVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdIHx8IFsgXCIkTUFDT1NYX0RFUExPWU1F
TlRfVEFSR0VUXCIgPT0gXCIxMC4xMVwiIF0gfHwgWyBcIiRTREtfVkVSU0lPTl9NQUpPUlwiID09
IFwiOTAwMDBcIiBdOyB0aGVuXG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0w
XG5lbHNlXG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0xXG5maVxuXG5pZiBb
IFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdIHx8IFsgXCIkTUFD
T1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMVwiIF07IHRoZW5cbiAgICBleHBvcnQg
SEFWRV9JQ1VHRU5CUks9MFxuZWxzZVxuICAgIGV4cG9ydCBIQVZFX0lDVUdFTkJSSz0xXG5maVxu
XG5pZiBbIFwiJHtBQ1RJT059XCIgPSBcImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5z
dGFsbFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxoZHJzXCIgLW8gXCIke0FDVElPTn1c
IiA9IFwiaW5zdGFsbGFwaVwiIF07IHRoZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwi
V1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcu
YWN0aXZlY3B1YCBTREtST09UPVwiJHtTREtST09UfVwiXG5maSI7CisJCX07CiAJCTY1QUZBMTcw
MTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJY
U2hlbGxTY3JpcHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
QEAgLTE2MzYsNiArMTc0MCw4IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3Owog
CQkJZmlsZXMgPSAoCiAJCQkJQThBNDczODYxNTFBODI1QjAwNDEyM0ZGIC8qIEFzc2VydGlvbnMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJD
QTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25D
SksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzUxNTFBODI1QjAwNDEyM0ZGIC8qIEF0
b21pY1N0cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MEVDQTYwRDFCMDI0MjY4MDA0NDk3
MzkgLyogQXRvbWljU3RyaW5nSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUJBMTVGQTE4
MjQzNUE2MDBBODJFNjkgLyogQXRvbWljU3RyaW5nSW1wbENGLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMTY2NSw2ICsxNzcxLDcgQEAKIAkJCQlBOEE0NzNCMDE1MUE4MjVCMDA0MTIzRkYgLyogZG91
YmxlLWNvbnZlcnNpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCQTE1MUE4MjVCMDA0
MTIzRkYgLyogZHRvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCMzE1MUE4MjVCMDA0
MTIzRkYgLyogZmFzdC1kdG9hLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUQxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY2MEYzMkYxREZDQkQxQjAwNDE2RDZDIC8qIExvY2tlZFByaW50U3RyZWFtLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0MzMTUxQTgyNUIwMDQxMjNGRiAvKiBGYXN0TWFs
bG9jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQzMzYwMTY1REJBNzMwMDVBRDM4NyAvKiBG
aWxlUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNjc4LDYgKzE3ODUsNyBAQAog
CQkJCUE4QTQ3M0U5MTUxQTgyNUIwMDQxMjNGRiAvKiBNRDUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0Q1NDk3QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzNFQzE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9jYXRvci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlDMkNBMzdGMDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGNDE1MUE4
MjVCMDA0MTIzRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjdD
NUZCNjFEODg1Q0YyMDA0NEY1RTIgLyogRmFzdEJpdFZlY3Rvci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEE0NzNGNzE1MUE4MjVCMDA0MTIzRkYgLyogT1NBbGxvY2F0b3JQb3NpeC5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTE2ODUsNiArMTc5Myw3IEBACiAJCQkJQThBNDc0MDIxNTFBODI1QjAw
NDEyM0ZGIC8qIFBhZ2VCbG9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkZGMTlEQzFCQjMz
NEVCMDA4ODZEOTEgLyogUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGODI0QTY4MUI3NDQzQTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDRUUyMjAzMUNFQTc1NTEwMDBDMjM5
NiAvKiBQbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCQkwRjlEMzM2MjE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0xNzI3LDggKzE4MzYsMTIgQEAKIAkJCQkxQzE4MUM5MTFEMzA3QUI4MDBG
NUZBMTYgLyogVVRleHRQcm92aWRlckxhdGluMS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzE4
MUM5MzFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QTQ3NDY5MTUxQTgyNUIwMDQxMjNGRiAvKiBVVEY4LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUZBNDdDOEExNTI1MDJEQTAw
NTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFNDQ3OUMx
QjdBQUEwMzAwOTQ5OEVCIC8qIFdvcmRMb2NrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0Ez
N0U5MUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQTFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlFNEEwQUQzOTFBOTYyNDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUU0QTBBRDNEMUE5NjI1M0MwMDUzNkRGNiAvKiBXb3JrUXVldWVDb2NvYS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0NTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3Ry
aW5nLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTc0NSw2ICsxODU4LDExIEBACiAJCQl0YXJnZXQg
PSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovOwogCQkJdGFyZ2V0UHJveHkgPSAx
NDQ3QUVDMzE4RkNFNTcwMDBCM0Q3RkYgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9
OworCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9
IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQgPSAxQ0QxODc4MTFE
NTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovOworCQkJdGFyZ2V0UHJveHkgPSAx
Q0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9
OwogCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9
IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSA2NUFGQTE2RjE2
MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLzsKQEAgLTE3NzQsNiArMTg5Miwz
MCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFENTU2
OTVDMDBDQzdERUMgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlv
bjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4
Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJ
CQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVi
dWc7CisJCX07CisJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0gewor
CQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVy
ZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcg
Ki87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9O
QU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTFDRDE4Nzg2MUQ1NTY5
NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcw
MEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0g
eworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9
IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAvKiBEZWJ1ZyAq
LyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRp
b25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhj
Y29uZmlnICovOwpAQCAtMTg1Nyw2ICsxOTk5LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlv
bklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9u
OwogCQl9OworCQkxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlv
biBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJ
CQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgK
KwkJCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUx
RDU1Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3
REVDIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zp
c2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJ
fTsKIAkJNUQyNDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlz
dCBmb3IgUEJYUHJvamVjdCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxp
c3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCBl
MzRkMzdmOTM2ZWNmM2I4MjcxMDIzMDAxNzE3ZDk4ZDdjMzczZjQ4Li5hZDRhY2VjYjdkZGRkYTg3
YmYwMjdkOWRhYTFiYTNjYzdiMDE2MTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMjk0LDYg
KzI5NCw0MiBAQCBpZiAoTk9UIFVTRV9TWVNURU1fTUFMTE9DKQogICAgIGxpc3QoQVBQRU5EIFdU
Rl9MSUJSQVJJRVMgYm1hbGxvYykKIGVuZGlmICgpCiAKK3NldChXVEZfQlJFQUtJTkdfUlVMRVNf
U09VUkNFUworICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pL
LnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VD
SksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKKykKKworbWFjcm8oR0VORVJBVEVfQlJFQUtJ
TkdfUlVMRVMgX2lucHV0IF9zeW1ib2xOYW1lIF9vdXRwdXQpCisgICAgYWRkX2N1c3RvbV9jb21t
YW5kKAorICAgICAgICBPVVRQVVQgJHtfb3V0cHV0fQorICAgICAgICBNQUlOX0RFUEVOREVOQ1kg
JHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3Ry
aW5ncy5weQorICAgICAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7
Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JFcGlsb2d1ZS50eHQKKyAgICAgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAk
e1dURl9ESVJ9L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJp
bmdzLnB5IC1pbmNsdWRlRGVmaW5lcyAke19zeW1ib2xOYW1lfVJ1bGVzICR7Q01BS0VfQ1VSUkVO
VF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1
ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgPiAke19vdXRwdXR9CisgICAgICAg
IFZFUkJBVElNKQorICAgIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7X291dHB1dH0pCisgICAg
QUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtfaW5wdXR9ICR7X291dHB1dH0pCitlbmRtYWNybygp
CisKK2ZvcmVhY2ggKF9maWxlICR7V1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVN9KQorICAgIGdl
dF9maWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtfZmlsZX0gTkFNRV9XRSkKKyAgICBHRU5FUkFU
RV9CUkVBS0lOR19SVUxFUygke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtfZmlsZX0gJHtf
bmFtZX0gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy8ke19uYW1lfS5j
cHApCitlbmRmb3JlYWNoICgpCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtE
RVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMuY3BwCisgICAgTUFJTl9ERVBFTkRFTkNZICR7V1RGX0RJUn0vd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKKyAgICBERVBFTkRTICR7
Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLnR4dAorICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtX
VEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5n
cy5weSAtaW5jbHVkZURlZmluZXMgY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzICR7Q01BS0Vf
Q1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzLnR4dCA+ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMv
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcAorICAgIFZFUkJBVElNKQorbGlzdChBUFBF
TkQgV1RGX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9D
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwKQorQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMo
JHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMudHh0ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5n
UnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCkKKwogbGlzdChBUFBFTkQgV1RG
X1NPVVJDRVMKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKICkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJp
dmVkU291cmNlcy5tYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmNTMyZGYyN2IzN2Y5N2JlNzUwZmVjZGE5ZjI3
YmU3YTk4ODVmZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC0wLDAgKzEsODMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
IyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKK0JSRUFLSU5HX1JVTEVTX0ZJTEVTID0gXAorICAgIEJyZWFraW5nUnVsZXMvQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Q0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZU5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdE5vbkNKSy5icmsKKworQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlMg
PSBcCisgICAgQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIFwK
KyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgXAorICAgIEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBcCisgICAg
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBcCisgICAg
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcAorCitp
ZmVxICgkKHNoZWxsICQoQ0MpIC1zdGQ9Z251KysxMSAteCBjKysgLUUgLVAgLWRNICQoU0RLX0ZM
QUdTKSAkKEZSQU1FV09SS19GTEFHUykgJChIRUFERVJfRkxBR1MpIC1JICQoV1RGKSAtaW5jbHVk
ZSAiJChXVEYpL3d0Zi9QbGF0Zm9ybS5oIiAvZGV2L251bGwgfCBncmVwICcgV1RGX1BMQVRGT1JN
X0lPUyAnIHwgY3V0IC1kJyAnIC1mMyksIDEpCisgICAgV1RGX1BMQVRGT1JNX0lPUyA9IDEKK2Vs
c2UKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMAorZW5kaWYKKworaWZlcSAoJChXVEZfUExBVEZP
Uk1fSU9TKSwgMSkKKwlBRERJVElPTkFMX0VNT0pJX1NVUFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVO
VCA9IDAKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMAorZWxzZQorCUFERElUSU9OQUxf
RU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5UID0gJChBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQpCisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyA9IDEKK2VuZGlmCisKK0RFUEVOREVO
Q0lFUyA9ICQoQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlMpCisKK2lmZXEgKCQoT1MpLE1BQ09T
KQoraWZlcSAoJChIQVZFX0lDVUdFTkJSSyksIDEpCitERVBFTkRFTkNJRVMgKz0gJChCUkVBS0lO
R19SVUxFU19GSUxFUykKK2VuZGlmCitlbmRpZgorCithbGwgOiAkKERFUEVOREVOQ0lFUykKKwor
QnJlYWtpbmdSdWxlcy8lLmJyayA6IEJyZWFraW5nUnVsZXMvJS5wcAorCWljdWdlbmJyayAtYyAt
ciAkPCAtbyAkQAorCitCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5j
cHAgOiBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcAorCXB5dGhv
biAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmlu
Z3MucHkgY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzICQ8ID4gJEAKKworQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvciUuY3BwIDogQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
ciUucHAKKwlweXRob24gJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVh
a2luZ1J1bGVTdHJpbmdzLnB5IGxpbmVCcmVha0l0ZXJhdG9yJCpSdWxlcyAkPCA+ICRACisKK0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwIDogJChXVEYpL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorCS11bmlm
ZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
X0ZPUl9DVVJTT1JfTU9WRU1FTlQpIC1ESEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUz0kKEhBVkVf
RVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRAICQ8CisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3IlLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvckVwaWxvZ3VlLnR4dAorCS1jYXQgJD8gfCB1bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhUUkFfSUNVX05BTUVE
X1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXgg
NmY5Mjc1OTc5Y2UzMjYzYTI0YjVjOTQ1ZDZkNGM2MjAyY2RhZjI5Mi4uNjQwOWE0MTY5MjkyOWJj
YWQwN2RkNjY1ZGI4ZTM3Mzc1YTI1ZDQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMjA4LDcgKzEyMDgs
NyBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
QVhfQUxMT1dFRCA+PSAxMDEyMDEgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEyMDAKLSNkZWZpbmUgSEFWRV9UT1VDSF9CQVIgMQorI2RlZmluZSBIQVZFX1RPVUNIX0JB
UiAwCiAjZGVmaW5lIEhBVkVfQURWQU5DRURfU1BFTExfQ0hFQ0tJTkcgMQogCiAjaWYgZGVmaW5l
ZChfX0xQNjRfXykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzU5MTBiZmE1ZTBlNjMzZGJkNzI1OTNhYzFmMzMwYWYzZWU0M2RkZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMudHh0CkBAIC0wLDAgKzEsMTc0IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisj
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCisjIFRoaXMgcnVsZSBzZXQgaXMgYmFzZWQgb24gY2hhcmFjdGVyLWJyZWFr
IGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NworIyA8aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5v
cmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4K
KyMgVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxpc3Rl
ZCBiZWxvdzoKKyMgKiBSZXBsYWNlZCAnW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBTcGFj
aW5nTWFya31dJyB3aXRoICdbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya30gLSAk
RXh0ZW5kXScgZm9yIElDVSAzLjggb3IgZWFybGllcjsKKyMgKiBSZW1vdmVkIHJ1bGVzIHRoYXQg
cHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1
ZyAyNDM0Mik7CisjICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92
aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChC
dWcgMTU3OTApLCBhbmQ7CisjICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZy
b20gbW92aW5nIGJlZm9yZSBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJr
cy4KKyMgKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCisKKyRD
UiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOworJExGICAgICAgPSBb
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExGfV07CiskQ29udHJvbCA9IFtccHtHcmFwaGVt
ZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOworJFZvaWNlTWFya3MgPSBbXHVGRjlFXHVGRjlG
XTsgIyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcworJEV4dGVuZCAg
PSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXHUw
RTMwIFx1MEUzMiBcdTBFNDUgXHUwRUIwIFx1MEVCMl1dOworJFNwYWNpbmdNYXJrID0gW1tccHtH
ZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfV0gLSAkRXh0ZW5kXTsKKyRMICAgICAgID0g
W1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07CiskViAgICAgICA9IFtccHtHcmFwaGVt
ZV9DbHVzdGVyX0JyZWFrID0gVn1dOworJFQgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9C
cmVhayA9IFR9XTsKKyRMViAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1d
OworJExWVCAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1dOworJEhpbjAg
ICAgPSBbXHUwOTA1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEKKyRIaW5W
ICAgID0gXHUwOTREOyAjIERldmFuYWdhcmkgU2lnbiBWaXJhbWEKKyRIaW4xICAgID0gW1x1MDkx
NS1cdTA5MzldOyAjIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQorJEJlbjAgICAgPSBbXHUw
OTg1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEKKyRCZW5WICAgID0gXHUwOUNE
OyAjIEJlbmdhbGkgU2lnbiBWaXJhbWEKKyRCZW4xICAgID0gW1x1MDk5NS1cdTA5QjldOyAjIEJl
bmdhbGkgTGV0dGVyIEthLC4uLixIYQorJFBhbjAgICAgPSBbXHUwQTA1LVx1MEEzOV07ICMgR3Vy
bXVraGkgTGV0dGVyIEEsLi4uLEhhCiskUGFuViAgICA9IFx1MEE0RDsgIyBHdXJtdWtoaSBTaWdu
IFZpcmFtYQorJFBhbjEgICAgPSBbXHUwQTE1LVx1MEEzOV07ICMgR3VybXVraGkgTGV0dGVyIEth
LC4uLixIYQorJEd1ajAgICAgPSBbXHUwQTg1LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0dGVyIEEs
Li4uLEhhCiskR3VqViAgICA9IFx1MEFDRDsgIyBHdWphcmF0aSBTaWduIFZpcmFtYQorJEd1ajEg
ICAgPSBbXHUwQTk1LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQorJE9yaTAg
ICAgPSBbXHUwQjA1LVx1MEIzOV07ICMgT3JpeWEgTGV0dGVyIEEsLi4uLEhhCiskT3JpViAgICA9
IFx1MEI0RDsgIyBPcml5YSBTaWduIFZpcmFtYQorJE9yaTEgICAgPSBbXHUwQjE1LVx1MEIzOV07
ICMgT3JpeWEgTGV0dGVyIEthLC4uLixIYQorJFRlbDAgICAgPSBbXHUwQzA1LVx1MEMzOV07ICMg
VGVsdWd1IExldHRlciBBLC4uLixIYQorJFRlbFYgICAgPSBcdTBDNEQ7ICMgVGVsdWd1IFNpZ24g
VmlyYW1hCiskVGVsMSAgICA9IFtcdTBDMTQtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEthLC4u
LixIYQorJEthbjAgICAgPSBbXHUwQzg1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4s
SGEKKyRLYW5WICAgID0gXHUwQ0NEOyAjIEthbm5hZGEgU2lnbiBWaXJhbWEKKyRLYW4xICAgID0g
W1x1MEM5NS1cdTBDQjldOyAjIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCiskTWFsMCAgICA9IFtc
dTBEMDUtXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhIAorJE1hbFYgICAgPSBc
dTBENEQ7ICMgTWFsYXlhbGFtIFNpZ24gVmlyYW1hCiskTWFsMSAgICA9IFtcdTBEMTUtXHUwRDM5
XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCiskUkkgICAgICA9IFtcVTAwMDFGMUU2LVxV
MDAwMUYxRkZdOyAjIEVtb2ppIHJlZ2lvbmFsIGluZGljYXRvcnMKKyRaV0ogICAgID0gXHUyMDBE
OyAjIFplcm8gd2lkdGggam9pbmVyCiskRW1vamlWYXIgPSBbXHVGRTBGXTsgIyBFbW9qaS1zdHls
ZSB2YXJpYXRpb24gc2VsZWN0b3IKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisg
ICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI2NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUwMDAxRjMw
OCBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAwMUYzRjMg
XFUwMDAxRjQ0MSBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDZGIFxV
MDAwMUY0NzEgXFUwMDAxRjQ3MyBcVTAwMDFGNDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MiBcVTAw
MDFGNDg2LVxVMDAwMUY0ODcgXFUwMDAxRjQ4QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTggXFUwMDAx
RjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEIgXFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxVMDAwMUY2
QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2XTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpX
SiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1
MjcwRCBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxVMDAwMUYz
Q0IgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2
LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1c
VTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1NzUgXFUw
MDAxRjU5MCBcVTAwMDFGNTk1IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAw
MUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFG
NkMwIFxVMDAwMUY5MThdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJz
CisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAw
MUY0NjkgXFUwMDAxRjQ4Ql07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVu
Y2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBBLVx1MjcwQyBcVTAwMDFGMzg1
IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0M3IFxVMDAwMUYzQ0EgXFUwMDAxRjQ0Mi1c
VTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUw
MDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAw
MUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFG
NjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZC
NiBcVTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwor
CisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYzRkZdOyAjIEZpdHpw
YXRyaWNrIG1vZGlmaWVycworISFjaGFpbjsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAorCisgICAgISFSSU5vQ2hhaW47CisKKyNlbmRpZgorCishIWZvcndhcmQ7CiskQ1IgJExGOwor
JEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsKKygkTFYgfCAkVikgKCRWIHwgJFQpOworKCRMVlQg
fCAkVCkgJFQ7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRSSSAkUkkg
JEV4dGVuZCogLyAkUkk7CisgICAgJFJJICRSSSAkRXh0ZW5kKjsKKyAgICBbXiRDb250cm9sICRD
UiAkTEZdICRFeHRlbmQ7CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7CisK
KyNlbHNlCisKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7CisgICAgW14kQ29udHJv
bCAkQ1IgJExGXSAkU3BhY2luZ01hcms7CisgICAgJFJJICRSSSAvICRSSTsKKyAgICAkUkkgJFJJ
OworCisjZW5kaWYKKworJEhpbjAgJEhpblYgJEhpbjE7ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGZv
cndhcmQpCiskQmVuMCAkQmVuViAkQmVuMTsgIyBCZW5nYWxpIFZpcmFtYSAoZm9yd2FyZCkKKyRQ
YW4wICRQYW5WICRQYW4xOyAjIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkKKyRHdWowICRHdWpW
ICRHdWoxOyAjIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKKyRPcmkwICRPcmlWICRPcmkxOyAj
IE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKKyRUZWwwICRUZWxWICRUZWwxOyAjIFRlbHVndSBWaXJh
bWEgKGZvcndhcmQpCiskS2FuMCAkS2FuViAkS2FuMTsgIyBLYW5uYWRhIFZpcmFtYSAoZm9yd2Fy
ZCkKKyRNYWwwICRNYWxWICRNYWwxOyAjIE1hbGF5YWxhbSBWaXJhbWEgKGZvcndhcmQpCiskWldK
ICRFbW9qaUZvclNlcXM7ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1v
amlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVs
ZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBh
dHJpY2sgbW9kaWZpZXIKKyEhcmV2ZXJzZTsKKyRMRiAkQ1I7CisoJEwgfCAkViB8ICRMViB8ICRM
VlQpICRMOworKCRWIHwgJFQpICgkTFYgfCAkVik7CiskVCAoJExWVCB8ICRUKTsKKworI2lmIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEV4dGVuZCogJFJJICRSSSAvICRFeHRlbmQq
ICRSSSAkUkk7CisgICAgJEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kICAgICAgW14kQ29u
dHJvbCAkQ1IgJExGXTsKKyAgICAkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsKKwor
I2Vsc2UKKworICAgICRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRTcGFj
aW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRSSSAkUkkgLyAkUkkgJFJJOworICAg
ICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMSAkSGluViAkSGluMDsgIyBEZXZhbmFnYXJpIFZp
cmFtYSAoYmFja3dhcmQpCiskQmVuMSAkQmVuViAkQmVuMDsgIyBCZW5nYWxpIFZpcmFtYSAoYmFj
a3dhcmQpCiskUGFuMSAkUGFuViAkUGFuMDsgIyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQor
JEd1ajEgJEd1alYgJEd1ajA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRPcmkxICRP
cmlWICRPcmkwOyAjIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCiskVGVsMSAkVGVsViAkVGVs
MDsgIyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKKyRLYW4xICRLYW5WICRLYW4wOyAjIEthbm5h
ZGEgVmlyYW1hIChiYWNrd2FyZCkKKyRNYWwxICRNYWxWICRNYWwwOyAjIE1hbGF5YWxhbSBWaXJh
bWEgKGJhY2t3YXJkKQorJEVtb2ppRm9yU2VxcyAkWldKOyAjIERvbnQgYnJlYWsgaW4gZW1vamkg
WldKIHNlcXVlbmNlcworJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7ICMgRG9u
dCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBz
ZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCisKKyNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKKworICAgICEhc2FmZV9yZXZlcnNlOworICAgICRSSSAkUkkrOworICAgIFskRW1v
amlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7CisgICAgISFzYWZlX2ZvcndhcmQ7Cisg
ICAgJFJJICRSSSs7CisgICAgJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsK
KworI2Vsc2UKKworICAgIFskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7Cisg
ICAgJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsKKyAgICAhIXNhZmVfcmV2
ZXJzZTsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxl
U3RyaW5ncy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmIwNDc2OWZjYTM5OGFjYzk5Nzg2OTJiNzc3MDY0MDVl
ZDA0OGE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQpAQCAtMCwwICsxLDExMCBAQAorIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1l
dDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisj
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCitpbXBvcnQgc3lzCitpbXBvcnQgcmUKKworaGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisK
KworZGVmIG1haW4oYXJndj1Ob25lKToKKyAgICBpZiBub3QgYXJndjoKKyAgICAgICAgYXJndiA9
IHN5cy5hcmd2CisgICAgZmlsZU5hbWVTdGFydEluZGV4ID0gMQorCisgICAgaW5jbHVkZURlZmlu
ZXMgPSBGYWxzZQorICAgIGlmIGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4XSA9PSAiLWluY2x1ZGVE
ZWZpbmVzIjoKKyAgICAgICAgaW5jbHVkZURlZmluZXMgPSBUcnVlCisgICAgICAgIGZpbGVOYW1l
U3RhcnRJbmRleCA9IGZpbGVOYW1lU3RhcnRJbmRleCArIDEKKworICAgIHN5bWJvbE5hbWUgPSBh
cmd2W2ZpbGVOYW1lU3RhcnRJbmRleF1bMF0ubG93ZXIoKSArIGFyZ3ZbZmlsZU5hbWVTdGFydElu
ZGV4XVsxOl0KKyAgICBmaWxlTmFtZVN0YXJ0SW5kZXggPSBmaWxlTmFtZVN0YXJ0SW5kZXggKyAx
CisgICAgZmlsZU5hbWVzID0gYXJndltmaWxlTmFtZVN0YXJ0SW5kZXg6XQorCisgICAgcHJpbnQo
aGVhZGVyKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCIvLyBETyBOT1QgRURJVCBUSElTIEZJ
TEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHRoZSBzY3JpcHQiKQorICAgIHBy
aW50KCIvLyBXVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0
cmluZ3MucHkiKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCIjaW5jbHVkZSBcImNvbmZpZy5o
XCIiKQorICAgIHByaW50KCIjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+IikKKyAgICBwcmlu
dCgiIikKKyAgICBpZiBpbmNsdWRlRGVmaW5lczoKKyAgICAgICAgcHJpbnQoIiNkZWZpbmUgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkiKQorICAgICAgICBw
cmludCgiI2RlZmluZSBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTICgoVV9JQ1VfVkVSU0lPTl9N
QUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpKSIpCisgICAg
ICAgIHByaW50KCIiKQorICAgIHByaW50KCJuYW1lc3BhY2UgV1RGIHsiKQorICAgIHByaW50KCIi
KQorICAgIHByaW50KCJjb25zdCBjaGFyKiAiICsgc3ltYm9sTmFtZSArICIgPSAiKQorCisgICAg
Zm9yIGZpbGVOYW1lIGluIGZpbGVOYW1lczoKKyAgICAgICAgZm9yIGwgaW4gb3BlbihmaWxlTmFt
ZSwgJ3InKToKKyAgICAgICAgICAgIGxpbmUgPSBsLnJzdHJpcCgpCisgICAgICAgICAgICBpZiBy
ZS5tYXRjaCgiXlxzKiQiLCBsaW5lKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAg
ICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyAiKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
ICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjIik6CisgICAgICAgICAgICAgICAgcHJpbnQobGlu
ZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgi
XiguKik7KCAjIC4qKT8kIiwgbGluZSkKKyAgICAgICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gIlwiIiArIG1hdGNoLmdyb3VwKDEpLnJlcGxhY2UoIlxc
IiwgIlxcXFwiKSArICI7XCIiCisgICAgICAgICAgICAgICAgICAgIGlmIG1hdGNoLmdyb3VwKDIp
OgorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3Vw
KDIpWzM6XQorICAgICAgICAgICAgICAgICAgICBwcmludChyZXN1bHQpCisgICAgICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQor
ICAgIHByaW50KCJ9IikKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhp
dChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41MTg1ZDNjMWE2ZWUyMTc2MmY2NGNhZDI5ZjdhY2VmNGIyOGEzZWFhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
RXBpbG9ndWUudHh0CkBAIC0wLDAgKzEsMzcwIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisj
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCiskQUkgPSBbOkxpbmVCcmVhayA9IEFtYmlndW91czpdOworJEFMID0gWzpM
aW5lQnJlYWsgPSBBbHBoYWJldGljOl07CiskQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRl
cjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOworJEJL
ID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsKKyRCMiA9IFs6TGluZUJyZWFrID0g
QnJlYWtfQm90aDpdOworJENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07Cisk
Q0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07CiskQ00gPSBbOkxpbmVCcmVh
ayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhl
c2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdlX1JldHVybjpdOworJEVYID0gW1s6
TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9TVUJdOworJEdMID0gWzpMaW5lQnJlYWsg
PSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkSEwgPSBb
OkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsKKworI2Vsc2UKKworICAgICRITCA9IFtbOkhl
YnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNlbmRpZgorCiskSFkgPSBbOkxpbmVCcmVhayA9IEh5
cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOworJEgzID0gWzpMaW5lQnJlYWsgPSBI
MzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQURE
XSAtICRJRF9TVUJdOworJElOID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9T
VUJdOworJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07Cisk
SkwgPSBbOkxpbmVCcmVhayA9IEpMOl07CiskSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07CiskSlQg
PSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOwor
JE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsKKyROUyA9IFtbW1s6TGluZUJyZWFrID0g
Tm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICROU19TVUJdOworJE5VID0gWzpMaW5lQnJl
YWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsK
KyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07CiskUFIg
PSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07CiskUVUgPSBbOkxp
bmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07Cisk
U0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOworJFNHID0gWzpMaW5lQnJlYWsg
PSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGluZUJyZWFrID0gU3BhY2U6XTsKKyRTWSA9IFs6TGlu
ZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOworJFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5l
cjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3duOl07CiskWlcgPSBbOkxpbmVCcmVhayA9
IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7CiskRW1vamlWYXIgPSBcdUZFMEY7CisKKyNpZiBB
RERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1
MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAw
MUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFG
NDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3
NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIg
XFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxV
MDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMg
RW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9k
cyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxV
MDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAw
MDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAx
RjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0
ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2
IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBc
VTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhh
dCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2Vx
cyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0OEJdOworICAgICRFbW9q
aUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxV
MDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFGM0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAw
MDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAx
RjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0
ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRC
LVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0g
OyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRF
bW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAwMDFGM0ZGXTsKKyRkaWN0aW9uYXJ5ID0gWzpMaW5l
QnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsKKyRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRY
WF07CiskQUxjbSA9ICRBTFBsdXMgJENNKjsKKyRCQWNtID0gJEJBICRDTSo7CiskQkJjbSA9ICRC
QiAkQ00qOworJEIyY20gPSAkQjIgJENNKjsKKyRDTGNtID0gJENMICRDTSo7CiskQ1BjbSA9ICRD
UCAkQ00qOworJEVYY20gPSAkRVggJENNKjsKKyRHTGNtID0gJEdMICRDTSo7CiskSExjbSA9ICRI
TCAkQ00qOworJEhZY20gPSAkSFkgJENNKjsKKyRIMmNtID0gJEgyICRDTSo7CiskSDNjbSA9ICRI
MyAkQ00qOworJElEY20gPSAkSUQgJENNKjsKKyRJTmNtID0gJElOICRDTSo7CiskSVNjbSA9ICRJ
UyAkQ00qOworJEpMY20gPSAkSkwgJENNKjsKKyRKVmNtID0gJEpWICRDTSo7CiskSlRjbSA9ICRK
VCAkQ00qOworJE5TY20gPSAkTlMgJENNKjsKKyROVWNtID0gJE5VICRDTSo7CiskT1BjbSA9ICRP
UCAkQ00qOworJFBPY20gPSAkUE8gJENNKjsKKyRQUmNtID0gJFBSICRDTSo7CiskUVVjbSA9ICRR
VSAkQ00qOworJFJJY20gPSAkUkkgJENNKjsKKyRTWWNtID0gJFNZICRDTSo7CiskV0pjbSA9ICRX
SiAkQ00qOworCishIWZvcndhcmQ7CiskQ0FOX0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRa
VyAkQ01dOworJENBTlRfQ00gPSBbJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRBTF9G
T0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAkTkwgJFpXICRTUF07CiskQUxfRk9MTE9XX0NNID0g
WyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRXSiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4g
JE5VICRBTFBsdXNdOworJEFMX0ZPTExPVyA9IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19D
TV07CiskTEI0QnJlYWtzID0gWyRCSyAkQ1IgJExGICROTF07CiskTEI0Tm9uQnJlYWtzID0gW14k
QksgJENSICRMRiAkTkxdOworJExCOEJyZWFrcyA9IFskTEI0QnJlYWtzICRaV107CiskTEI4Tm9u
QnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAtIFskWlddXTsKKyRMQjE4Tm9uQnJlYWtzID0gWyRM
QjhOb25CcmVha3MgLSBbJFNQXV07CiskTEIxOEJyZWFrcyA9IFskTEI4QnJlYWtzICRTUF07Cisk
TEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJyZWFrcyAtICRDQl07CiskQUxQbHVzICRDTSs7Cisk
QkEgJENNKzsKKyRCQiAkQ00rOworJEIyICRDTSs7CiskQ0wgJENNKzsKKyRDUCAkQ00rOworJEVY
ICRDTSs7CiskR0wgJENNKzsKKyRITCAkQ00rOworJEhZICRDTSs7CiskSDIgJENNKzsKKyRIMyAk
Q00rOworJElEICRDTSs7CiskSU4gJENNKzsKKyRJUyAkQ00rOworJEpMICRDTSs7CiskSlYgJENN
KzsKKyRKVCAkQ00rOworJE5TICRDTSs7CiskTlUgJENNKzsKKyRPUCAkQ00rOworJFBPICRDTSs7
CiskUFIgJENNKzsKKyRRVSAkQ00rOworJFJJICRDTSs7CiskU1kgJENNKzsKKyRXSiAkQ00rOwor
JENSICRMRiB7MTAwfTsKKyRMQjROb25CcmVha3M/ICRMQjRCcmVha3MgezEwMH07CiskQ0FOX0NN
ICRDTSogJExCNEJyZWFrcyB7MTAwfTsKKyRDTSsgJExCNEJyZWFrcyB7MTAwfTsKKyRMQjROb25C
cmVha3MgWyRTUCAkWlddOworJENBTl9DTSAkQ00qIFskU1AgJFpXXTsKKyRDTSsgWyRTUCAkWldd
OworJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2Vx
czsKKyRDQU5fQ00gJENNKzsKKyRDTSs7CiskQ0FOX0NNICRDTSogJFdKY207CiskTEI4Tm9uQnJl
YWtzICRXSmNtOworJENNKyAkV0pjbTsKKyRXSmNtICRDQU5UX0NNOworJFdKY20gJENBTl9DTSAk
Q00qOworJEdMY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTlRfQ007CitbWyRMQjhOb25CcmVh
a3NdIC0gWyRTUCAkQkEgJEhZXV0gJENNKiAkR0xjbTsKKyRDTSsgR0xjbTsKKyRMQjhOb25CcmVh
a3MgJENMOworJENBTl9DTSAkQ00qICRDTDsKKyRDTSsgJENMOworJExCOE5vbkJyZWFrcyAkQ1A7
CiskQ0FOX0NNICRDTSogJENQOworJENNKyAkQ1A7CiskTEI4Tm9uQnJlYWtzICRFWDsKKyRDQU5f
Q00gJENNKiAkRVg7CiskQ00rICRFWDsKKyRMQjhOb25CcmVha3MgJElTOworJENBTl9DTSAkQ00q
ICRJUzsKKyRDTSsgJElTOworJExCOE5vbkJyZWFrcyAkU1k7CiskQ0FOX0NNICRDTSogJFNZOwor
JENNKyAkU1k7CiskT1BjbSAkU1AqICRDQU5fQ00gJENNKjsKKyRPUGNtICRTUCogJENBTlRfQ007
CiskT1BjbSAkU1ArICRDTSsgJEFMX0ZPTExPVz87CiskUVVjbSAkU1AqICRPUGNtOworKCRDTGNt
IHwgJENQY20pICRTUCogJE5TY207CiskQjJjbSAkU1AqICRCMmNtOworJExCMThOb25CcmVha3Mg
JENNKiAkUVVjbTsKKyRDTSsgJFFVY207CiskUVVjbSAuPzsKKyRRVWNtICRMQjE4Tm9uQnJlYWtz
ICRDTSo7CiskTEIyME5vbkJyZWFrcyAkQ00qICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAKKyRC
QmNtIFteJENCXTsKKyRCQmNtICRMQjIwTm9uQnJlYWtzICRDTSo7CiskSExjbSAoJEhZY20gfCAk
QkFjbSkgW14kQ0JdPzsKKyRTWWNtICRITGNtOworKCRBTGNtIHwgJEhMY20pICRJTmNtOworJENN
KyAkSU5jbTsKKyRFWGNtICRJTmNtOworJElEY20gJElOY207CiskSU5jbSAkSU5jbTsKKyROVWNt
ICRJTmNtOworJElEY20gJFBPY207CiskQUxjbSAkTlVjbTsKKyRITGNtICROVWNtOworJENNKyAk
TlVjbTsKKyROVWNtICRBTGNtOworJE5VY20gJEhMY207CiskUFJjbSAkSURjbTsKKyRQUmNtICgk
QUxjbSB8ICRITGNtKTsKKyRQT2NtICgkQUxjbSB8ICRITGNtKTsKKygkUFJjbSB8ICRQT2NtKT8g
KCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5VY20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwg
JENQY20pPyAoJFBSY20gfCAkUE9jbSk/OworJEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8
ICRIM2NtKTsKKygkSlZjbSB8ICRIMmNtKSAoJEpWY20gfCAkSlRjbSk7CisoJEpUY20gfCAkSDNj
bSkgJEpUY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207
CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJFBPY207CiskUFJjbSAo
JEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSk7CisoJEFMY20gfCAkSExjbSkg
KCRBTGNtIHwgJEhMY20pOworJENNKyAoJEFMY20gfCAkSExjbSk7CiskSVNjbSAoJEFMY20gfCAk
SExjbSk7CisoJEFMY20gfCAkSExjbSB8ICROVWNtKSAkT1BjbTsKKyRDTSsgJE9QY207CiskQ1Bj
bSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAorCisgICAgJFJJY20gJFJJY207CisKKyNlbmRpZgorCiskRW1vamlGb3JNb2RzICRFbW9qaVZh
cj8gJEVtb2ppTW9kczsKKworISFyZXZlcnNlOworJENNKyAkQUxQbHVzOworJENNKyAkQkE7Cisk
Q00rICRCQjsKKyRDTSsgJEIyOworJENNKyAkQ0w7CiskQ00rICRDUDsKKyRDTSsgJEVYOworJENN
KyAkR0w7CiskQ00rICRITDsKKyRDTSsgJEhZOworJENNKyAkSDI7CiskQ00rICRIMzsKKyRDTSsg
JElEOworJENNKyAkSU47CiskQ00rICRJUzsKKyRDTSsgJEpMOworJENNKyAkSlY7CiskQ00rICRK
VDsKKyRDTSsgJE5TOworJENNKyAkTlU7CiskQ00rICRPUDsKKyRDTSsgJFBPOworJENNKyAkUFI7
CiskQ00rICRRVTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKyAk
Ukk7CisKKyNlbmRpZgorCiskQ00rICRTWTsKKyRDTSsgJFdKOworJENNKzsKKyRBTF9GT0xMT1cg
JENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRaVyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQ
KyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFskQUwge2VvZn1dKSk7CitbJFBSXSAvICRDTSsgWyRC
SyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9XTsKKyRMQjRCcmVha3MgWyRMQjROb25CcmVha3Mt
JENNXTsKKyRMQjRCcmVha3MgJENNKyAkQ0FOX0NNOworJExGICRDUjsKK1skU1AgJFpXXSBbJExC
NE5vbkJyZWFrcy0kQ01dOworWyRTUCAkWlddICRDTSsgJENBTl9DTTsKKyRFbW9qaUZvclNlcXMg
JFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/ICRFbW9qaUZvclNlcXM7CiskQ00rICRDQU5fQ007
CiskQ00qICRXSiAkQ00qICRDQU5fQ007CiskQ00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOwor
JENBTlRfQ00gJENNKiAkV0o7CiskQ00qICRDQU5fQ00gJENNKiAkV0o7CiskQ00qICRHTCAkQ00q
IFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRCQSAkSFldXTsKKyRDQU5UX0NNICRDTSogJEdMOwor
JENNKiAkQ0FOX0NNICRDTSogJEdMOworJENMICRDTSsgJENBTl9DTTsKKyRDUCAkQ00rICRDQU5f
Q007CiskRVggJENNKyAkQ0FOX0NNOworJElTICRDTSsgJENBTl9DTTsKKyRTWSAkQ00rICRDQU5f
Q007CiskQ0wgWyRMQjhOb25CcmVha3MtJENNXTsKKyRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOwor
JEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskSVMgWyRMQjhOb25CcmVha3MtJENNXTsKKyRTWSBb
JExCOE5vbkJyZWFrcy0kQ01dOworWyRDTCAkQ1AgJEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00q
ICRPUDsgCiskQ00qICRDQU5fQ00gJFNQKiAkQ00qICRPUDsKKyRDQU5UX0NNICRTUCogJENNKiAk
T1A7CiskQUxfRk9MTE9XPyAkQ00rICRTUCAkU1AqICRDTSogJE9QOworJEFMX0ZPTExPV19OT0NN
ICRDTSsgJFNQKyAkQ00qICRPUDsKKyRDTSogJEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAk
T1A7CiskU1kgJENNICRTUCsgJE9QOworJENNKiAkT1AgJFNQKiAkQ00qICRRVTsKKyRDTSogJE5T
ICRTUCogJENNKiAoJENMIHwgJENQKTsKKyRDTSogJEIyICRTUCogJENNKiAkQjI7CiskQ00qICRR
VSAkQ00qICRDQU5fQ007CiskQ00qICRRVSAkTEIxOE5vbkJyZWFrczsKKyRDTSogJENBTl9DTSAk
Q00qICRRVTsKKyRDQU5UX0NNICRDTSogJFFVOworJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00q
IFskTEIyME5vbkJyZWFrcy0kQ01dOworJENNKiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00qICRC
QjsKK1teJENCXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOwor
JENNKiAkSEwgJENNKiAkU1k7CiskQ00qICRJTiAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSog
JElOICRDTSogJEVYOworJENNKiAkSU4gJENNKiAkSUQ7CiskQ00qICRJTiAkQ00qICRJTjsKKyRD
TSogJElOICRDTSogJE5VOworJENNKiAkUE8gJENNKiAkSUQ7CiskQ00qICROVSAkQ00qICgkQUxQ
bHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJE5VOworJENNKiAkSUQgJENN
KiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAk
SEwpICRDTSogJFBPOworKCRDTSogKCRQUiB8ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgk
Q00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENNKiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENN
KiAoJFBSIHwgJFBPKSk/OworJENNKiAoJEgzIHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsK
KyRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgyIHwgJEpWKTsKKyRDTSogJEpUICRDTSogKCRIMyB8
ICRKVCk7CiskQ00qICRJTiAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENN
KiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsKKyRDTSogKCRIMyB8ICRI
MiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00q
ICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJElTOworJENNKiAk
T1AgJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSk7CiskQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5V
KSAkQ00qICRDUDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKiAk
UkkgJENNKiAkUkk7CisKKyNlbmRpZgorCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9y
TW9kczsKKworISFzYWZlX2ZvcndhcmQ7CitbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRI
WSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZ
ICRCQSAkZGljdGlvbmFyeV07CiskZGljdGlvbmFyeSAkZGljdGlvbmFyeTsKKyAgICAKKyEhc2Fm
ZV9yZXZlcnNlOworJENNKyBbXiRDTSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07CiskQ00rICRT
UCAvIC47CiskU1ArICRDTSogJE9QOworJFNQKyAkQ00qICRRVTsKKyRTUCsgJENNKiAoJENMIHwg
JENQKTsKKyRTUCsgJENNKiAkQjI7CiskQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworKCRDTSog
KCRJUyB8ICRTWSkpKyAkQ00qICROVTsKKygkQ0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRT
WSk7CiskZGljdGlvbmFyeSAkZGljdGlvbmFyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jMjg4MzU1NjMxZTQzNzkyZDNmM2M5MjMzMzcyNzY2YWNkZWMxYjQyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0CkBAIC0wLDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyEhY2hhaW47CishIUxCQ01Ob0NoYWluOworISFsb29r
QWhlYWRIYXJkQnJlYWs7CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAk
Q0ogPSBbOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOl07CisKKyNlbHNl
CisKKyAgICAkQ0ogPSBbXHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgz
XHUzMDg1XHUzMDg3XHUzMDhFXHUzMDk1XHUzMDk2XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3XHUz
MEE5XHUzMEMzXHUzMEUzXHUzMEU1XHUzMEU3XHUzMEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYw
XHUzMUYxXHUzMUYyXHUzMUYzXHUzMUY0XHUzMUY1XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUz
MUZBXHUzMUZCXHUzMUZDXHUzMUZEXHUzMUZFXHUzMUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZB
XHVGRjZCXHVGRjZDXHVGRjZEXHVGRjZFXHVGRjZGXHVGRjcwXTsKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzBiY2U1ZWU5ZTY3OTY5YmM4NmIwODc1
MDY2MTU0ZjdmYzM5MzE2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApAQCAtMCwwICsxLDMz
IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1
MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7
CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7
CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOworJE5TX0FE
RCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xZTAzZTUxMWViOTg0ZmNhYTY0ODU0NGFjY2VlZjZlNzgxNTg4MDFmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9IFtc
dTAwMjFcdTAwM0ZcdUZGMDFcdUZGMUZdOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIw
MjVcdTIwMjZdOworJElTX1NVQiA9IFtcdTAwM0FcdTAwM0JdOworJE5TX1NVQiA9IFtcdTIwM0Nc
dTIwNDdcdTIwNDhcdTIwNDlcdTMwMDVcdTMwMUNcdTMwM0JcdTMwOURcdTMwOUVcdTMwQTBcdTMw
RkJcdTMwRkRcdTMwRkVcdUZGMUFcdUZGMUJcdUZGNjVdOworJFBPX1NVQiA9IFtcdTAwMjVcdTAw
QTJcdTAwQjBcdTIwMzBcdTIwMzJcdTIwMzNcdTIxMDNcdUZGMDVcdUZGRTBdOworJFBSX1NVQiA9
IFtcdTAwMjRcdTAwQTNcdTAwQTVcdTIwQUNcdTIxMTZcdUZGMDRcdUZGRTFcdUZGRTVdOworJElE
X0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19T
VUIgJFBSX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmOGU4ZTFiNWI2NWJjNjM0M2I1MDEyZDhmOTlk
ODQ0YTQwNGFkZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApAQCAtMCwwICsx
LDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0g
Jyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAy
Nl07CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1
MzBGRFx1MzBGRV07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRD
SiAkSU5fU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2ZWFiNjk0OTg2ZWY4MmQ5YWI5NWZiMTliNDM1MmI2
NjJkMjYzZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVY
X1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOwor
JE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcn
OworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0IGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjMwYmNlNWVlOWU2Nzk2OWJjODZiMDg3NTA2NjE1NGY3ZmMzOTMxNjEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
IyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNd
OworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9
ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9
ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
NDk0NTgyY2NlOWZkNGQwN2Q5ODdlMzk5ZWM5NzUyMjczYjRkYmU3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxOb25DSksudHh0CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIg
PSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19T
VUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKXTsKKyROU19BREQgPSAnJzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVh
YjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJiNjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksudHh0CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMg
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsK
KyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAn
JzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVh
YjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJiNjYyZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksudHh0CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAn
JzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIg
PSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291
cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKaW5kZXggMDVhNTE5NTYwNWUx
ZDhmYmY3NjIzMTM5N2Q4OWMwODE1MzIwOTMyNy4uMDk4ZmI3ZmI1OTY3MDk4MTNmYjIxNzllMTBi
ZTkzZjNhNDcyYTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJ
dGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5j
cHAKQEAgLTMxLDkgKzMxLDYgQEAKICNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0
dGVyIG5hbWUKLSNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1Mp
IHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMTAwKSkKLQogbmFtZXNwYWNlIFdURiB7CiAKIC8vIEl0ZXJhdG9yIGluaXRpYWxpemF0aW9u
CkBAIC02MSw2ICs1OCwxMiBAQCBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIGluaXRpYWxpemVJ
dGVyYXRvcldpdGhSdWxlcyhjb25zdCBjaGFyKiBicmVha1J1bGVzKQogCiAjZW5kaWYKIAorI2lm
ICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCitUZXh0QnJlYWtJdGVyYXRvciogY3Jl
YXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCkKK3sKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKyNlbmRpZgogCiAvLyBJdGVyYXRvciB0ZXh0IHNldHRpbmcKIApAQCAtMTY0LDEz
NSArMTY3LDIwIEBAIFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoU3Ry
aW5nVmlldyBzdHJpbmcpCiAgICAgcmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqc3RhdGljU2Vu
dGVuY2VCcmVha0l0ZXJhdG9yLCBzdHJpbmcpOwogfQogCisjaWYgIVBMQVRGT1JNKElPUykKK3N0
YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhG
YWxsYmFjaygpCit7CisgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3JGb3JS
dWxlU2V0KEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQpKQorICAgICAgICByZXR1cm4g
aXRlcmF0b3I7CisgICAgcmV0dXJuIGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhjdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMpOworfQorI2VuZGlmCisKIFRleHRCcmVha0l0ZXJhdG9yKiBj
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogewogI2lmICFQTEFURk9S
TShJT1MpCi0gICAgLy8gVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsg
aXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3Ci0gICAgLy8gPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2pl
Y3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRy
Lz4uCi0gICAgLy8gVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMg
YXJlIGxpc3RlZCBiZWxvdzoKLSAgICAvLyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rl
cl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3Bh
Y2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOwotICAgIC8vICog
UmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJl
cGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOwotICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBw
cmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBs
YW5ndWFnZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7Ci0gICAgLy8gKiBBZGRlZCBy
dWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhh
bGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgotICAgIC8vICogQWRkZWQgcnVsZXMgZm9y
IHJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBrUnVs
ZXMgPQotICAgICAgICAiJENSICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBD
Un1dOyIKLSAgICAgICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
TEZ9XTsiCi0gICAgICAgICIkQ29udHJvbCA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IENvbnRyb2x9XTsiCi0gICAgICAgICIkVm9pY2VNYXJrcyA9IFtcXHVGRjlFXFx1RkY5Rl07IiAv
LyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcwotICAgICAgICAiJEV4
dGVuZCAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtz
IC0gW1xcdTBFMzAgXFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVCMl1dOyIKLSAgICAgICAg
IiRTcGFjaW5nTWFyayA9IFtbXFxwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAt
ICRFeHRlbmRdOyIKLSAgICAgICAgIiRMICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gTH1dOyIKLSAgICAgICAgIiRWICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gVn1dOyIKLSAgICAgICAgIiRUICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gVH1dOyIKLSAgICAgICAgIiRMViAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gTFZ9XTsiCi0gICAgICAgICIkTFZUICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9C
cmVhayA9IExWVH1dOyIKLSAgICAgICAgIiRIaW4wICAgID0gW1xcdTA5MDUtXFx1MDkzOV07IiAv
LyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEhpblYgICAgPSBcXHUwOTRE
OyIgLy8gRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQotICAgICAgICAiJEhpbjEgICAgPSBbXFx1MDkx
NS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEJl
bjAgICAgPSBbXFx1MDk4NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCi0g
ICAgICAgICIkQmVuViAgICA9IFxcdTA5Q0Q7IiAvLyBCZW5nYWxpIFNpZ24gVmlyYW1hCi0gICAg
ICAgICIkQmVuMSAgICA9IFtcXHUwOTk1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgS2Es
Li4uLEhhCi0gICAgICAgICIkUGFuMCAgICA9IFtcXHUwQTA1LVxcdTBBMzldOyIgLy8gR3VybXVr
aGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUGFuViAgICA9IFxcdTBBNEQ7IiAvLyBHdXJt
dWtoaSBTaWduIFZpcmFtYQotICAgICAgICAiJFBhbjEgICAgPSBbXFx1MEExNS1cXHUwQTM5XTsi
IC8vIEd1cm11a2hpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRHdWowICAgID0gW1xcdTBB
ODUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRHdWpW
ICAgID0gXFx1MEFDRDsiIC8vIEd1amFyYXRpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkR3VqMSAg
ICA9IFtcXHUwQTk1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQotICAg
ICAgICAiJE9yaTAgICAgPSBbXFx1MEIwNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBBLC4u
LixIYQotICAgICAgICAiJE9yaVYgICAgPSBcXHUwQjREOyIgLy8gT3JpeWEgU2lnbiBWaXJhbWEK
LSAgICAgICAgIiRPcmkxICAgID0gW1xcdTBCMTUtXFx1MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIg
S2EsLi4uLEhhCi0gICAgICAgICIkVGVsMCAgICA9IFtcXHUwQzA1LVxcdTBDMzldOyIgLy8gVGVs
dWd1IExldHRlciBBLC4uLixIYQotICAgICAgICAiJFRlbFYgICAgPSBcXHUwQzREOyIgLy8gVGVs
dWd1IFNpZ24gVmlyYW1hCi0gICAgICAgICIkVGVsMSAgICA9IFtcXHUwQzE0LVxcdTBDMzldOyIg
Ly8gVGVsdWd1IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRLYW4wICAgID0gW1xcdTBDODUt
XFx1MENCOV07IiAvLyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEthblYgICAg
PSBcXHUwQ0NEOyIgLy8gS2FubmFkYSBTaWduIFZpcmFtYQotICAgICAgICAiJEthbjEgICAgPSBb
XFx1MEM5NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIk
TWFsMCAgICA9IFtcXHUwRDA1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixI
YQotICAgICAgICAiJE1hbFYgICAgPSBcXHUwRDREOyIgLy8gTWFsYXlhbGFtIFNpZ24gVmlyYW1h
Ci0gICAgICAgICIkTWFsMSAgICA9IFtcXHUwRDE1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExl
dHRlciBBLC4uLixIYQotICAgICAgICAiJFJJICAgICAgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYx
RkZdOyIgLy8gRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycwotICAgICAgICAiJFpXSiAgICAgPSBc
XHUyMDBEOyIgLy8gWmVybyB3aWR0aCBqb2luZXIKLSAgICAgICAgIiRFbW9qaVZhciA9IFtcXHVG
RTBGXTsiIC8vIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgotI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIg
XFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAw
MDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxc
VTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDcz
IFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFG
NDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAw
MDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxc
VTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcdTI2OTUtXFx1MjY5NiBcXHUyNzA4IFxcVTAwMDFGMzNF
IFxcVTAwMDFGMzczIFxcVTAwMDFGMzkzIFxcVTAwMDFGM0E0IFxcVTAwMDFGM0E4IFxcVTAwMDFG
M0VCIFxcVTAwMDFGM0VEIFxcVTAwMDFGNEJCLVxcVTAwMDFGNEJDIFxcVTAwMDFGNTI3IFxcVTAw
MDFGNTJDIFxcVTAwMDFGNjgwIFxcVTAwMDFGNjkyIFxcVTAwMDFGOTI2IFxcVTAwMDFGOTM3LVxc
VTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXTsiIC8vIEVtb2ppIHRoYXQgcGFydGlj
aXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFE
IFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFG
M0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAw
MDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxc
VTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1
LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFG
NTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAw
MDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxc
VTAwMDFGOTE4IFxcVTAwMDFGM0MyIFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NDIFxcVTAwMDFGNTc0
IFxcVTAwMDFGNTdBIFxcVTAwMDFGNkNDIFxcVTAwMDFGOTE5LVxcVTAwMDFGOTFFIFxcVTAwMDFG
OTI2IFxcVTAwMDFGOTMwIFxcVTAwMDFGOTMzLVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAw
MDFGOTNFXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZWxz
ZQotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFG
NDY5IFxcVTAwMDFGNDhCXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVl
bmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBc
XFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjND
QSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAx
RjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUw
MDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBc
XFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0
RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8g
RW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAgICAgICIk
RW1vamlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiIC8vIEZpdHpwYXRyaWNrIG1v
ZGlmaWVycwotICAgICAgICAiISFjaGFpbjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
Ci0gICAgICAgICIhIVJJTm9DaGFpbjsiCi0jZW5kaWYKLSAgICAgICAgIiEhZm9yd2FyZDsiCi0g
ICAgICAgICIkQ1IgJExGOyIKLSAgICAgICAgIiRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7Igot
ICAgICAgICAiKCRMViB8ICRWKSAoJFYgfCAkVCk7IgotICAgICAgICAiKCRMVlQgfCAkVCkgJFQ7
IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJFJJICRSSSAkRXh0ZW5k
KiAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqOyIKLSAgICAgICAgIlteJENvbnRy
b2wgJENSICRMRl0gJEV4dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFj
aW5nTWFyazsiCi0jZWxzZQotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIK
LSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSAgICAgICAgIiRS
SSAkUkkgLyAkUkk7IgotICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4w
ICRIaW5WICRIaW4xOyIgLy8gRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIk
QmVuMCAkQmVuViAkQmVuMTsiIC8vIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAi
JFBhbjAgJFBhblYgJFBhbjE7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAg
ICIkR3VqMCAkR3VqViAkR3VqMTsiIC8vIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAg
ICAgIiRPcmkwICRPcmlWICRPcmkxOyIgLy8gT3JpeWEgVmlyYW1hIChmb3J3YXJkKQotICAgICAg
ICAiJFRlbDAgJFRlbFYgJFRlbDE7IiAvLyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQotICAgICAg
ICAiJEthbjAgJEthblYgJEthbjE7IiAvLyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAg
ICAgIiRNYWwwICRNYWxWICRNYWwxOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKLSAg
ICAgICAgIiRaV0ogJEVtb2ppRm9yU2VxczsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBz
ZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyIg
Ly8gRG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJp
YXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotICAgICAgICAiISFyZXZl
cnNlOyIKLSAgICAgICAgIiRMRiAkQ1I7IgotICAgICAgICAiKCRMIHwgJFYgfCAkTFYgfCAkTFZU
KSAkTDsiCi0gICAgICAgICIoJFYgfCAkVCkgKCRMViB8ICRWKTsiCi0gICAgICAgICIkVCAoJExW
VCB8ICRUKTsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRXh0ZW5k
KiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJ
OyIKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAg
IiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSNlbHNlCi0gICAgICAgICIkRXh0
ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgW14k
Q29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJICRSSTsiCi0gICAgICAg
ICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAiJEhpbjEgJEhpblYgJEhpbjA7IiAvLyBEZXZh
bmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkQmVuMSAkQmVuViAkQmVuMDsiIC8v
IEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRQYW4xICRQYW5WICRQYW4wOyIg
Ly8gR3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRHdWoxICRHdWpWICRHdWow
OyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRPcmkxICRPcmlWICRP
cmkwOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRUZWwxICRUZWxW
ICRUZWwwOyIgLy8gVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkS2FuMSAkS2Fu
ViAkS2FuMDsiIC8vIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRNYWwxICRN
YWxWICRNYWwwOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkRW1v
amlGb3JTZXFzICRaV0o7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0g
ICAgICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiIC8vIERvbid0IGJy
ZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVj
dG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBP
UlQKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAg
ICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiISFz
YWZlX2ZvcndhcmQ7IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiJEVtb2ppRm9yTW9k
cyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiOworICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRv
ciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGNyZWF0ZUN1cnNvck1vdmVtZW50SXRl
cmF0b3JXaXRoRmFsbGJhY2soKTsKICNlbHNlCi0gICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1v
ZHNdKyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAk
RW1vamlNb2RzXSs7IgotICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiISFzYWZl
X2ZvcndhcmQ7IjsKLSNlbmRpZgotICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGlj
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhrUnVs
ZXMpOwotI2Vsc2UgLy8gUExBVEZPUk0oSU9TKQogICAgIC8vIFVzZSB0aGUgc3BlY2lhbCBUaGFp
IGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBmb3IgYWxsIGxvY2FsZXMKICAgICBzdGF0aWMgVGV4
dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXpl
SXRlcmF0b3IoVUJSS19DSEFSQUNURVIsICJ0aCIpOwogI2VuZGlmIC8vICFQTEFURk9STShJT1Mp
CkBAIC0zMTksNDQyICsyMDcsMjAgQEAgdm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4
dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQogICAgIExpbmVCcmVha0l0ZXJhdG9yUG9vbDo6c2hh
cmVkUG9vbCgpLnB1dChpdGVyYXRvcik7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFBy
b2xvZ3VlID0KLSAgICAiISFjaGFpbjsiCi0gICAgIiEhTEJDTU5vQ2hhaW47IgotICAgICIhIWxv
b2tBaGVhZEhhcmRCcmVhazsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50
c0JlZm9yZSA9Ci0gICAgLy8gZXhwbGljaXRseSBlbnVtZXJhdGUgJENKIHNpbmNlIElDVSB2ZXJz
aW9ucyBwcmlvciB0byA0OSBkb24ndCBzdXBwb3J0IDpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFw
YW5lc2VfU3RhcnRlcjoKLSAgICAiJENKID0gWyIKLSNpZiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9O
VU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpCi0gICAgIjpMaW5lQnJl
YWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoiCi0jZWxzZQotICAgICJcXHUzMDQxXFx1
MzA0M1xcdTMwNDVcXHUzMDQ3XFx1MzA0OVxcdTMwNjNcXHUzMDgzXFx1MzA4NVxcdTMwODdcXHUz
MDhFXFx1MzA5NVxcdTMwOTZcXHUzMEExXFx1MzBBM1xcdTMwQTVcXHUzMEE3IgotICAgICJcXHUz
MEE5XFx1MzBDM1xcdTMwRTNcXHUzMEU1XFx1MzBFN1xcdTMwRUVcXHUzMEY1XFx1MzBGNlxcdTMw
RkMiCi0gICAgIlxcdTMxRjBcXHUzMUYxXFx1MzFGMlxcdTMxRjNcXHUzMUY0XFx1MzFGNVxcdTMx
RjZcXHUzMUY3XFx1MzFGOFxcdTMxRjlcXHUzMUZBXFx1MzFGQlxcdTMxRkNcXHUzMUZEXFx1MzFG
RVxcdTMxRkYiCi0gICAgIlxcdUZGNjdcXHVGRjY4XFx1RkY2OVxcdUZGNkFcXHVGRjZCXFx1RkY2
Q1xcdUZGNkRcXHVGRjZFXFx1RkY2RlxcdUZGNzAiCi0jZW5kaWYKLSAgICAiXTsiOwotCi1zdGF0
aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLID0KLSAgICAiJEJB
X1NVQiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAgICIkRVhfU1VCID0gW1xcdTAwMjFcXHUwMDNG
XFx1RkYwMVxcdUZGMUZdOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtc
XHUyMDI1XFx1MjAyNl07IgotICAgICIkSVNfU1VCID0gW1xcdTAwM0FcXHUwMDNCXTsiCi0gICAg
IiROU19TVUIgPSBbXFx1MjAzQ1xcdTIwNDdcXHUyMDQ4XFx1MjA0OVxcdTMwMDVcXHUzMDFDXFx1
MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBBMFxcdTMwRkJcXHUzMEZEXFx1MzBGRVxcdUZGMUFcXHVG
RjFCXFx1RkY2NV07IgotICAgICIkUE9fU1VCID0gW1xcdTAwMjVcXHUwMEEyXFx1MDBCMFxcdTIw
MzBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHVGRjA1XFx1RkZFMF07IgotICAgICIkUFJfU1VCID0g
W1xcdTAwMjRcXHUwMEEzXFx1MDBBNVxcdTIwQUNcXHUyMTE2XFx1RkYwNFxcdUZGRTFcXHVGRkU1
XTsiCi0gICAgIiRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVYX1NVQiAkSU5fU1VCICRJU19TVUIg
JE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRp
YyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSksgPQotICAgICIk
QkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7Igot
ICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0g
ICAgIiROU19TVUIgPSBbXFx1MzAwNVxcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwRkRcXHUzMEZF
XTsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9B
REQgPSBbJENKICRJTl9TVUIgJE5TX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3Rh
dGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksgPQotICAgICIk
QkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJ
Tl9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0g
ICAgIiROU19TVUIgPSBbXFx1MzAxQ1xcdTMwQTBdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAg
ICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsi
Ci0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25t
ZW50c0N1c3RvbU5vcm1hbE5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9T
VUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAg
IiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsi
Ci0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKXTsiCi0gICAgIiROU19B
REQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0
cmljdENKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAg
IiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsi
Ci0gICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIg
PSAnJzsiCi0gICAgIiRJRF9BREQgPSAnJzsiCi0gICAgIiROU19BREQgPSBbJENKXTsiOwotCi0j
ZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSksgICAgICB1YXgxNEFzc2ln
bm1lbnRzQ3VzdG9tU3RyaWN0Q0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZh
dWx0Q0pLICAgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pLCi0jZGVmaW5lIHVh
eDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLICAgICB1YXgxNEFzc2lnbm1lbnRzQ3Vz
dG9tU3RyaWN0Tm9uQ0pLCi0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQWZ0
ZXIgPQotICAgICIkQUkgPSBbOkxpbmVCcmVhayA9IEFtYmlndW91czpdOyIKLSAgICAiJEFMID0g
WzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07IgotICAgICIkQkEgPSBbWzpMaW5lQnJlYWsgPSBC
cmVha19BZnRlcjpdIC0gJEJBX1NVQl07IgotICAgICIkQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFr
X0JlZm9yZTpdOyIKLSAgICAiJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsi
Ci0gICAgIiRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOyIKLSAgICAiJENCID0gWzpM
aW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07IgotICAgICIkQ0wgPSBbOkxpbmVCcmVhayA9
IENsb3NlX1B1bmN0dWF0aW9uOl07IgotICAgICIkQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmlu
Z19NYXJrOl07IgotICAgICIkQ1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07
IgotICAgICIkQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdlX1JldHVybjpdOyIKLSAgICAiJEVY
ID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9TVUJdOyIKLSAgICAiJEdMID0g
WzpMaW5lQnJlYWsgPSBHbHVlOl07IgotI2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0
KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAgICAiJEhMID0gWzpMaW5lQnJl
YWsgPSBIZWJyZXdfTGV0dGVyOl07IgotI2Vsc2UKLSAgICAiJEhMID0gW1s6SGVicmV3Ol0gJiBb
OkxldHRlcjpdXTsiCi0jZW5kaWYKLSAgICAiJEhZID0gWzpMaW5lQnJlYWsgPSBIeXBoZW46XTsi
Ci0gICAgIiRIMiA9IFs6TGluZUJyZWFrID0gSDI6XTsiCi0gICAgIiRIMyA9IFs6TGluZUJyZWFr
ID0gSDM6XTsiCi0gICAgIiRJRCA9IFtbW1s6TGluZUJyZWFrID0gSWRlb2dyYXBoaWM6XSAtICRD
Sl0gJElEX0FERF0gLSAkSURfU1VCXTsiCi0gICAgIiRJTiA9IFtbOkxpbmVCcmVhayA9IEluc2Vw
YXJhYmxlOl0gLSAkSU5fU1VCXTsiCi0gICAgIiRJUyA9IFtbOkxpbmVCcmVhayA9IEluZml4X051
bWVyaWM6XSAtICRJU19TVUJdOyIKLSAgICAiJEpMID0gWzpMaW5lQnJlYWsgPSBKTDpdOyIKLSAg
ICAiJEpWID0gWzpMaW5lQnJlYWsgPSBKVjpdOyIKLSAgICAiJEpUID0gWzpMaW5lQnJlYWsgPSBK
VDpdOyIKLSAgICAiJExGID0gWzpMaW5lQnJlYWsgPSBMaW5lX0ZlZWQ6XTsiCi0gICAgIiROTCA9
IFs6TGluZUJyZWFrID0gTmV4dF9MaW5lOl07IgotICAgICIkTlMgPSBbW1tbOkxpbmVCcmVhayA9
IE5vbnN0YXJ0ZXI6XSAtICRDSl0gJE5TX0FERF0gLSAkTlNfU1VCXTsiCi0gICAgIiROVSA9IFs6
TGluZUJyZWFrID0gTnVtZXJpYzpdOyIKLSAgICAiJE9QID0gWzpMaW5lQnJlYWsgPSBPcGVuX1B1
bmN0dWF0aW9uOl07IgotICAgICIkUE8gPSBbWzpMaW5lQnJlYWsgPSBQb3N0Zml4X051bWVyaWM6
XSAtICRQT19TVUJdOyIKLSAgICAiJFBSID0gW1s6TGluZUJyZWFrID0gUHJlZml4X051bWVyaWM6
XSAtICRQUl9TVUJdOyIKLSAgICAiJFFVID0gWzpMaW5lQnJlYWsgPSBRdW90YXRpb246XTsiCi0g
ICAgIiRSSSA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IgotICAgICIkU0EgPSBbOkxpbmVC
cmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJy
b2dhdGU6XTsiCi0gICAgIiRTUCA9IFs6TGluZUJyZWFrID0gU3BhY2U6XTsiCi0gICAgIiRTWSA9
IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOyIKLSAgICAiJFdKID0gWzpMaW5lQnJlYWsg
PSBXb3JkX0pvaW5lcjpdOyIKLSAgICAiJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3duOl07Igot
ICAgICIkWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsiCi0gICAgIiRaV0ogPSBcXHUyMDBE
OyIKLSAgICAiJEVtb2ppVmFyID0gXFx1RkUwRjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2
NCBcXFUwMDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAx
RjNDQyBcXFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUw
MDAxRjQ2RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBc
XFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4
QiBcXFUwMDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAx
RjY0QiBcXFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUw
MDAxRjZCNiBcXHUyNjk1LVxcdTI2OTYgXFx1MjcwOCBcXFUwMDAxRjMzRSBcXFUwMDAxRjM3MyBc
XFUwMDAxRjM5MyBcXFUwMDAxRjNBNCBcXFUwMDAxRjNBOCBcXFUwMDAxRjNFQiBcXFUwMDAxRjNF
RCBcXFUwMDAxRjRCQi1cXFUwMDAxRjRCQyBcXFUwMDAxRjUyNyBcXFUwMDAxRjUyQyBcXFUwMDAx
RjY4MCBcXFUwMDAxRjY5MiBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzNy1cXFUwMDAxRjkzOSBcXFUw
MDAxRjkzQy1cXFUwMDAxRjkzRV07IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBz
ZXF1ZW5jZXMKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1c
XHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxc
VTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUw
IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFG
NDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAw
MDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxc
VTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEz
IFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4IFxcVTAwMDFG
M0MyIFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NDIFxcVTAwMDFGNTc0IFxcVTAwMDFGNTdBIFxcVTAw
MDFGNkNDIFxcVTAwMDFGOTE5LVxcVTAwMDFGOTFFIFxcVTAwMDFGOTI2IFxcVTAwMDFGOTMwIFxc
VTAwMDFGOTMzLVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXSA7IiAvLyBFbW9q
aSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZWxzZQotICAgICIkRW1vamlGb3JT
ZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIKLSAg
ICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBc
XFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0
Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAx
RjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUw
MDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBc
XFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZB
MyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0
YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgPSBbXFxV
MDAwMUYzRkItXFxVMDAwMUYzRkZdOyIKLSAgICAiJGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9
IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJEFMUGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhY
XTsiCi0gICAgIiRBTGNtID0gJEFMUGx1cyAkQ00qOyIKLSAgICAiJEJBY20gPSAkQkEgJENNKjsi
Ci0gICAgIiRCQmNtID0gJEJCICRDTSo7IgotICAgICIkQjJjbSA9ICRCMiAkQ00qOyIKLSAgICAi
JENMY20gPSAkQ0wgJENNKjsiCi0gICAgIiRDUGNtID0gJENQICRDTSo7IgotICAgICIkRVhjbSA9
ICRFWCAkQ00qOyIKLSAgICAiJEdMY20gPSAkR0wgJENNKjsiCi0gICAgIiRITGNtID0gJEhMICRD
TSo7IgotICAgICIkSFljbSA9ICRIWSAkQ00qOyIKLSAgICAiJEgyY20gPSAkSDIgJENNKjsiCi0g
ICAgIiRIM2NtID0gJEgzICRDTSo7IgotICAgICIkSURjbSA9ICRJRCAkQ00qOyIKLSAgICAiJElO
Y20gPSAkSU4gJENNKjsiCi0gICAgIiRJU2NtID0gJElTICRDTSo7IgotICAgICIkSkxjbSA9ICRK
TCAkQ00qOyIKLSAgICAiJEpWY20gPSAkSlYgJENNKjsiCi0gICAgIiRKVGNtID0gJEpUICRDTSo7
IgotICAgICIkTlNjbSA9ICROUyAkQ00qOyIKLSAgICAiJE5VY20gPSAkTlUgJENNKjsiCi0gICAg
IiRPUGNtID0gJE9QICRDTSo7IgotICAgICIkUE9jbSA9ICRQTyAkQ00qOyIKLSAgICAiJFBSY20g
PSAkUFIgJENNKjsiCi0gICAgIiRRVWNtID0gJFFVICRDTSo7IgotICAgICIkUkljbSA9ICRSSSAk
Q00qOyIKLSAgICAiJFNZY20gPSAkU1kgJENNKjsiCi0gICAgIiRXSmNtID0gJFdKICRDTSo7IjsK
LQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0Rm9yd2FyZCA9Ci0gICAgIiEhZm9yd2FyZDsiCi0g
ICAgIiRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07IgotICAgICIkQ0FO
VF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOyIKLSAgICAiJEFMX0ZPTExPV19O
T0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRBTF9GT0xMT1dfQ00gPSBb
JENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRHTCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAk
TlUgJEFMUGx1c107IgotICAgICIkQUxfRk9MTE9XID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9M
TE9XX0NNXTsiCi0gICAgIiRMQjRCcmVha3MgPSBbJEJLICRDUiAkTEYgJE5MXTsiCi0gICAgIiRM
QjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICROTF07IgotICAgICIkTEI4QnJlYWtzID0gWyRM
QjRCcmVha3MgJFpXXTsiCi0gICAgIiRMQjhOb25CcmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0g
WyRaV11dOyIKLSAgICAiJExCMThOb25CcmVha3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsi
Ci0gICAgIiRMQjE4QnJlYWtzID0gWyRMQjhCcmVha3MgJFNQXTsiCi0gICAgIiRMQjIwTm9uQnJl
YWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsiCi0gICAgIiRBTFBsdXMgJENNKzsiCi0gICAg
IiRCQSAkQ00rOyIKLSAgICAiJEJCICRDTSs7IgotICAgICIkQjIgJENNKzsiCi0gICAgIiRDTCAk
Q00rOyIKLSAgICAiJENQICRDTSs7IgotICAgICIkRVggJENNKzsiCi0gICAgIiRHTCAkQ00rOyIK
LSAgICAiJEhMICRDTSs7IgotICAgICIkSFkgJENNKzsiCi0gICAgIiRIMiAkQ00rOyIKLSAgICAi
JEgzICRDTSs7IgotICAgICIkSUQgJENNKzsiCi0gICAgIiRJTiAkQ00rOyIKLSAgICAiJElTICRD
TSs7IgotICAgICIkSkwgJENNKzsiCi0gICAgIiRKViAkQ00rOyIKLSAgICAiJEpUICRDTSs7Igot
ICAgICIkTlMgJENNKzsiCi0gICAgIiROVSAkQ00rOyIKLSAgICAiJE9QICRDTSs7IgotICAgICIk
UE8gJENNKzsiCi0gICAgIiRQUiAkQ00rOyIKLSAgICAiJFFVICRDTSs7IgotICAgICIkUkkgJENN
KzsiCi0gICAgIiRTWSAkQ00rOyIKLSAgICAiJFdKICRDTSs7IgotICAgICIkQ1IgJExGIHsxMDB9
OyIKLSAgICAiJExCNE5vbkJyZWFrcz8gJExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRDQU5fQ00g
JENNKiAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJENNKyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAg
ICAiJExCNE5vbkJyZWFrcyBbJFNQICRaV107IgotICAgICIkQ0FOX0NNICRDTSogWyRTUCAkWldd
OyIKLSAgICAiJENNKyBbJFNQICRaV107IgotICAgICIkRW1vamlGb3JTZXFzICRFbW9qaVZhcj8g
JEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFzOyIKLSAgICAiJENBTl9DTSAkQ00rOyIKLSAg
ICAiJENNKzsiCi0gICAgIiRDQU5fQ00gJENNKiAkV0pjbTsiCi0gICAgIiRMQjhOb25CcmVha3Mg
JFdKY207IgotICAgICIkQ00rICRXSmNtOyIKLSAgICAiJFdKY20gJENBTlRfQ007IgotICAgICIk
V0pjbSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xj
bSAkQ0FOVF9DTTsiCi0gICAgIltbJExCOE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00q
ICRHTGNtOyIKLSAgICAiJENNKyBHTGNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkQ0w7IgotICAg
ICIkQ0FOX0NNICRDTSogJENMOyIKLSAgICAiJENNKyAkQ0w7IgotICAgICIkTEI4Tm9uQnJlYWtz
ICRDUDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ1A7IgotICAgICIkQ00rICRDUDsiCi0gICAgIiRM
QjhOb25CcmVha3MgJEVYOyIKLSAgICAiJENBTl9DTSAkQ00qICRFWDsiCi0gICAgIiRDTSsgJEVY
OyIKLSAgICAiJExCOE5vbkJyZWFrcyAkSVM7IgotICAgICIkQ0FOX0NNICRDTSogJElTOyIKLSAg
ICAiJENNKyAkSVM7IgotICAgICIkTEI4Tm9uQnJlYWtzICRTWTsiCi0gICAgIiRDQU5fQ00gJENN
KiAkU1k7IgotICAgICIkQ00rICRTWTsiCi0gICAgIiRPUGNtICRTUCogJENBTl9DTSAkQ00qOyIK
LSAgICAiJE9QY20gJFNQKiAkQ0FOVF9DTTsiCi0gICAgIiRPUGNtICRTUCsgJENNKyAkQUxfRk9M
TE9XPzsiCi0gICAgIiRRVWNtICRTUCogJE9QY207IgotICAgICIoJENMY20gfCAkQ1BjbSkgJFNQ
KiAkTlNjbTsiCi0gICAgIiRCMmNtICRTUCogJEIyY207IgotICAgICIkTEIxOE5vbkJyZWFrcyAk
Q00qICRRVWNtOyIKLSAgICAiJENNKyAkUVVjbTsiCi0gICAgIiRRVWNtIC4/OyIKLSAgICAiJFFV
Y20gJExCMThOb25CcmVha3MgJENNKjsiCi0gICAgIiRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNt
IHwgJEhZY20gfCAkTlNjbSk7ICIKLSAgICAiJEJCY20gW14kQ0JdOyIKLSAgICAiJEJCY20gJExC
MjBOb25CcmVha3MgJENNKjsiCi0gICAgIiRITGNtICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OyIK
LSAgICAiJFNZY20gJEhMY207IgotICAgICIoJEFMY20gfCAkSExjbSkgJElOY207IgotICAgICIk
Q00rICRJTmNtOyIKLSAgICAiJEVYY20gJElOY207IgotICAgICIkSURjbSAkSU5jbTsiCi0gICAg
IiRJTmNtICRJTmNtOyIKLSAgICAiJE5VY20gJElOY207IgotICAgICIkSURjbSAkUE9jbTsiCi0g
ICAgIiRBTGNtICROVWNtOyIKLSAgICAiJEhMY20gJE5VY207IgotICAgICIkQ00rICROVWNtOyIK
LSAgICAiJE5VY20gJEFMY207IgotICAgICIkTlVjbSAkSExjbTsiCi0gICAgIiRQUmNtICRJRGNt
OyIKLSAgICAiJFBSY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJFBPY20gKCRBTGNtIHwgJEhM
Y20pOyIKLSAgICAiKCRQUmNtIHwgJFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVj
bSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87Igot
ICAgICIkSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRIMmNtIHwgJEgzY20pOyIKLSAgICAiKCRKVmNt
IHwgJEgyY20pICgkSlZjbSB8ICRKVGNtKTsiCi0gICAgIigkSlRjbSB8ICRIM2NtKSAkSlRjbTsi
Ci0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsiCi0g
ICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkUE9jbTsiCi0gICAg
IiRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKTsiCi0gICAgIigk
QUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7IgotICAgICIkQ00rICgkQUxjbSB8ICRITGNt
KTsiCi0gICAgIiRJU2NtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIigkQUxjbSB8ICRITGNtIHwg
JE5VY20pICRPUGNtOyIKLSAgICAiJENNKyAkT1BjbTsiCi0gICAgIiRDUGNtICgkQUxjbSB8ICRI
TGNtIHwgJE5VY20pOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJFJJY20g
JFJJY207IgotI2VuZGlmCi0gICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2Rz
OyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFJldmVyc2UgPQotICAgICIhIXJldmVyc2U7
IgotICAgICIkQ00rICRBTFBsdXM7IgotICAgICIkQ00rICRCQTsiCi0gICAgIiRDTSsgJEJCOyIK
LSAgICAiJENNKyAkQjI7IgotICAgICIkQ00rICRDTDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAi
JENNKyAkRVg7IgotICAgICIkQ00rICRHTDsiCi0gICAgIiRDTSsgJEhMOyIKLSAgICAiJENNKyAk
SFk7IgotICAgICIkQ00rICRIMjsiCi0gICAgIiRDTSsgJEgzOyIKLSAgICAiJENNKyAkSUQ7Igot
ICAgICIkQ00rICRJTjsiCi0gICAgIiRDTSsgJElTOyIKLSAgICAiJENNKyAkSkw7IgotICAgICIk
Q00rICRKVjsiCi0gICAgIiRDTSsgJEpUOyIKLSAgICAiJENNKyAkTlM7IgotICAgICIkQ00rICRO
VTsiCi0gICAgIiRDTSsgJE9QOyIKLSAgICAiJENNKyAkUE87IgotICAgICIkQ00rICRQUjsiCi0g
ICAgIiRDTSsgJFFVOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKyAk
Ukk7IgotI2VuZGlmCi0gICAgIiRDTSsgJFNZOyIKLSAgICAiJENNKyAkV0o7IgotICAgICIkQ00r
OyIKLSAgICAiJEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8
ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0p
KTsiCi0gICAgIlskUFJdIC8gJENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOyIK
LSAgICAiJExCNEJyZWFrcyBbJExCNE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJExCNEJyZWFrcyAk
Q00rICRDQU5fQ007IgotICAgICIkTEYgJENSOyIKLSAgICAiWyRTUCAkWlddIFskTEI0Tm9uQnJl
YWtzLSRDTV07IgotICAgICJbJFNQICRaV10gJENNKyAkQ0FOX0NNOyIKLSAgICAiJEVtb2ppRm9y
U2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZhcj8gJEVtb2ppRm9yU2VxczsiCi0gICAgIiRD
TSsgJENBTl9DTTsiCi0gICAgIiRDTSogJFdKICRDTSogJENBTl9DTTsiCi0gICAgIiRDTSogJFdK
IFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ0FOVF9DTSAkQ00qICRXSjsiCi0gICAgIiRD
TSogJENBTl9DTSAkQ00qICRXSjsiCi0gICAgIiRDTSogJEdMICRDTSogWyRMQjhOb25CcmVha3Mt
WyRDTSAkU1AgJEJBICRIWV1dOyIKLSAgICAiJENBTlRfQ00gJENNKiAkR0w7IgotICAgICIkQ00q
ICRDQU5fQ00gJENNKiAkR0w7IgotICAgICIkQ0wgJENNKyAkQ0FOX0NNOyIKLSAgICAiJENQICRD
TSsgJENBTl9DTTsiCi0gICAgIiRFWCAkQ00rICRDQU5fQ007IgotICAgICIkSVMgJENNKyAkQ0FO
X0NNOyIKLSAgICAiJFNZICRDTSsgJENBTl9DTTsiCi0gICAgIiRDTCBbJExCOE5vbkJyZWFrcy0k
Q01dOyIKLSAgICAiJENQIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkRVggWyRMQjhOb25C
cmVha3MtJENNXTsiCi0gICAgIiRJUyBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJFNZIFsk
TEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJENMICRDUCAkRVggJElTICRTWV0gJENNKyAkU1Ar
ICRDTSogJE9QOyAiCi0gICAgIiRDTSogJENBTl9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAiJENB
TlRfQ00gJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENN
KiAkT1A7IgotICAgICIkQUxfRk9MTE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAi
JENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAkQ00qICRPUDsiCi0gICAgIiRTWSAkQ00gJFNQ
KyAkT1A7IgotICAgICIkQ00qICRPUCAkU1AqICRDTSogJFFVOyIKLSAgICAiJENNKiAkTlMgJFNQ
KiAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJENNKiAkQjIgJFNQKiAkQ00qICRCMjsiCi0gICAg
IiRDTSogJFFVICRDTSogJENBTl9DTTsiCi0gICAgIiRDTSogJFFVICRMQjE4Tm9uQnJlYWtzOyIK
LSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFFVOyIKLSAgICAiJENBTlRfQ00gJENNKiAkUVU7Igot
ICAgICIkQ00qICgkQkEgfCAkSFkgfCAkTlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV07Igot
ICAgICIkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRD
TSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIk
Q00qICRITCAkQ00qICRTWTsiCi0gICAgIiRDTSogJElOICRDTSogKCRBTFBsdXMgfCAkSEwpOyIK
LSAgICAiJENNKiAkSU4gJENNKiAkRVg7IgotICAgICIkQ00qICRJTiAkQ00qICRJRDsiCi0gICAg
IiRDTSogJElOICRDTSogJElOOyIKLSAgICAiJENNKiAkSU4gJENNKiAkTlU7IgotICAgICIkQ00q
ICRQTyAkQ00qICRJRDsiCi0gICAgIiRDTSogJE5VICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAg
ICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkTlU7IgotICAgICIkQ00qICRJRCAkQ00qICRQ
UjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFM
UGx1cyB8ICRITCkgJENNKiAkUE87IgotICAgICIoJENNKiAoJFBSIHwgJFBPKSk/ICgkQ00qICgk
Q0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRTWSkpKiAkQ00qICROVSAoJENNKiAoJE9Q
IHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAk
SlYgfCAkSkwpICRDTSogJEpMOyIKLSAgICAiJENNKiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAk
SlYpOyIKLSAgICAiJENNKiAkSlQgJENNKiAoJEgzIHwgJEpUKTsiCi0gICAgIiRDTSogJElOICRD
TSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7IgotICAgICIkQ00qICRQTyAkQ00qICgk
SDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIKLSAgICAiJENNKiAoJEgzIHwgJEgyIHwgJEpU
IHwgJEpWIHwgJEpMKSAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSog
KCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkSVM7Igot
ICAgICIkQ00qICRPUCAkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKTsiCi0gICAgIiRDTSogKCRB
TFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBP
UlQKLSAgICAiJENNKiAkUkkgJENNKiAkUkk7IgotI2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgJEVt
b2ppVmFyPyAkRW1vamlGb3JNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVG
b3J3YXJkID0KLSAgICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICJbJENNICRPUCAkUVUgJENMICRD
UCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQ
ICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlv
bmFyeTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRTYWZlUmV2ZXJzZSA9Ci0gICAgIiEh
c2FmZV9yZXZlcnNlOyIKLSAgICAiJENNKyBbXiRDTSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07
IgotICAgICIkQ00rICRTUCAvIC47IgotICAgICIkU1ArICRDTSogJE9QOyIKLSAgICAiJFNQKyAk
Q00qICRRVTsiCi0gICAgIiRTUCsgJENNKiAoJENMIHwgJENQKTsiCi0gICAgIiRTUCsgJENNKiAk
QjI7IgotICAgICIkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOyIKLSAgICAiKCRDTSogKCRJUyB8
ICRTWSkpKyAkQ00qICROVTsiCi0gICAgIigkQ0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRT
WSk7IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsiOwotCiBzdGF0aWMgU3RyaW5nIG1h
cExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKExpbmVCcmVha0l0ZXJhdG9yTW9kZSBtb2RlLCBib29s
IGlzQ0pLKQogewotICAgIFN0cmluZ0J1aWxkZXIgcnVsZXNCdWlsZGVyOwotICAgIHJ1bGVzQnVp
bGRlci5hcHBlbmQodWF4MTRQcm9sb2d1ZSk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgx
NEFzc2lnbm1lbnRzQmVmb3JlKTsKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAgICBjYXNlIExpbmVC
cmVha0l0ZXJhdG9yTW9kZTo6RGVmYXVsdDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChp
c0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Q0pLIDogdWF4MTRBc3NpZ25tZW50
c0N1c3RvbURlZmF1bHROb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlz
Q0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpMb29zZToK
LSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0
b21Mb29zZUNKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZU5vbkNKSyk7Ci0gICAgICAg
IGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKS1J1bGVzOwogICAg
IGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpOb3JtYWw6Ci0gICAgICAgIHJ1bGVzQnVpbGRl
ci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pLIDogdWF4MTRB
c3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICBy
ZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLUnVsZXMgOiBsaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJ
dGVyYXRvck1vZGU6OlN0cmljdDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/
IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9t
U3RyaWN0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3ROb25DSktSdWxlczsKICAgICB9Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgx
NEFzc2lnbm1lbnRzQWZ0ZXIpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRGb3J3YXJk
KTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0UmV2ZXJzZSk7Ci0gICAgcnVsZXNCdWls
ZGVyLmFwcGVuZCh1YXgxNFNhZmVGb3J3YXJkKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVh
eDE0U2FmZVJldmVyc2UpOwotICAgIHJldHVybiBydWxlc0J1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gIiI7CiB9CiAKIC8vIFJlY29nbml6
ZSBCQ1A0NyBjb21wbGlhbnQgcHJpbWFyeSBsYW5ndWFnZSB2YWx1ZXMgb2YgJ3poJywgJ2phJywg
J2tvJwpAQCAtNzg4LDkgKzI1NCwyOSBAQCBUZXh0QnJlYWtJdGVyYXRvciogb3BlbkxpbmVCcmVh
a0l0ZXJhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBMaW5lQnJlYWtJdAogICAgIGlm
IChtb2RlID09IExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6RGVmYXVsdCkKICAgICAgICAgdWJya0l0
ZXIgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBsb2NhbGVJc0VtcHR5ID8gY3VycmVudFRleHRCcmVh
a0xvY2FsZUlEKCkgOiBsb2NhbGUuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgMCwgMCwgJm9wZW5T
dGF0dXMpOwogICAgIGVsc2UgewotICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKLSAg
ICAgICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pL
KTsKLSAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51
cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcnVsZXMubGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1
cywgJm9wZW5TdGF0dXMpOworICAgICAgICBCcmVha2luZ1J1bGVTZXQgcnVsZVNldDsKKyAgICAg
ICAgc3dpdGNoIChtb2RlKSB7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpE
ZWZhdWx0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpV
QVgxNENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Okxvb3NlOgorICAgICAgICAg
ICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLIDogQnJl
YWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpOb3JtYWw6CisgICAgICAgICAgICBydWxl
U2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLIDogQnJlYWtpbmdS
dWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6U3RyaWN0OgorICAgICAgICAgICAgcnVsZVNldCA9
IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdENKSyA6IEJyZWFraW5nUnVsZVNl
dDo6VUFYMTRTdHJpY3ROb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChydWxl
U2V0KSkKKyAgICAgICAgICAgIHVicmtJdGVyID0gcmVpbnRlcnByZXRfY2FzdDxVQnJlYWtJdGVy
YXRvcio+KGl0ZXJhdG9yKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBVUGFyc2VFcnJv
ciBwYXJzZVN0YXR1czsKKyAgICAgICAgICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRlcmF0b3JN
b2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7CisgICAgICAgICAgICB1YnJrSXRlciA9IHVicmtfb3Bl
blJ1bGVzKFN0cmluZ1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBydWxlcy5s
ZW5ndGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7CisgICAgICAgIH0KICAg
ICB9CiAgICAgLy8gbG9jYWxlIGNvbWVzIGZyb20gYSB3ZWIgcGFnZSBhbmQgaXQgY2FuIGJlIGlu
dmFsaWQsIGxlYWRpbmcgSUNVCiAgICAgLy8gdG8gZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSBmYWxs
IGJhY2sgdG8gdGhlIGRlZmF1bHQgbG9jYWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJ
dGVyYXRvci5oCmluZGV4IDhhZmI1NTgwMjAxMDAyYmJkMmVkZDU3NTY1YmMzNDFiMWEwMDZhOWUu
Ljk0ZmY3ZDYwNTM3NDQ4M2I3NTNkMGI1ZGFiZDc0NmNlY2UwMmU0MWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKQEAgLTMxLDYgKzMxLDMwIEBAIGNsYXNzIFRleHRC
cmVha0l0ZXJhdG9yOwogCiBlbnVtIGNsYXNzIExpbmVCcmVha0l0ZXJhdG9yTW9kZSB7IERlZmF1
bHQsIExvb3NlLCBOb3JtYWwsIFN0cmljdCB9OwogCitlbnVtIGNsYXNzIEJyZWFraW5nUnVsZVNl
dCB7CisgICAgQ3Vyc29yTW92ZW1lbnQsCisgICAgVUFYMTRDSkssCisgICAgVUFYMTROb25DSkss
CisgICAgVUFYMTRMb29zZUNKSywKKyAgICBVQVgxNExvb3NlTm9uQ0pLLAorICAgIFVBWDE0Tm9y
bWFsQ0pLLAorICAgIFVBWDE0Tm9ybWFsTm9uQ0pLLAorICAgIFVBWDE0U3RyaWN0Q0pLLAorICAg
IFVBWDE0U3RyaWN0Tm9uQ0pLCit9OworCitleHRlcm4gY29uc3QgY2hhciogY3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9u
Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Tm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKS1J1bGVzOworCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0
b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCk7CisKIC8vIFRoaXMgaXMgc2ltaWxhciB0byBj
aGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgaW4gbW9zdCBjYXNlcywgYnV0IGlzIHN1YmplY3QgdG8K
IC8vIHBsYXRmb3JtIFVJIGNvbnZlbnRpb25zLiBPbmUgbm90YWJsZSBleGFtcGxlIHdoZXJlIHRo
aXMgY2FuIGJlIGRpZmZlcmVudAogLy8gZnJvbSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgaXMg
VGhhaSBwcmVwZW5kIGNoYXJhY3RlcnMsIHNlZSBidWcgMjQzNDIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tIGIv
U291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5t
bQppbmRleCBiZWY1ZGFhNjQyODg4MjFlMjBmMjYyOGM2ODU1ZWU4ZTg4YTM4OTJjLi4yYWVjZjA5
ZTgyNTQ0YzY2YjdkMWMxZTVhYWFjNjRmNWZmZjMwMmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0K
QEAgLTIxLDEyICsyMSwxMjAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0
QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgiCiAKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRv
ci5oIgorCisjaWYgZGVmaW5lZChVX1NIT1dfQ1BMVVNQTFVTX0FQSSkKKyN1bmRlZiBVX1NIT1df
Q1BMVVNQTFVTX0FQSQorI2VuZGlmCisjZGVmaW5lIFVfU0hPV19DUExVU1BMVVNfQVBJIDEKKwor
I2luY2x1ZGUgPHVuaWNvZGUvcmJiaS5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWRhdGEuaD4KKyNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4K
ICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKK0BpbnRlcmZhY2UgV1RGQnVuZGxlRmluZGVy
IDogTlNPYmplY3QKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdURkJ1bmRsZUZpbmRlcgorQGVu
ZAorCiBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0IGludCBtYXhMb2NhbGVTdHJpbmdM
ZW5ndGggPSAzMjsKIAorc3RydWN0IFJ1bGVDYWNoZSB7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJ1
bGVCYXNlZEJyZWFrSXRlcmF0b3I+IGl0ZXJhdG9yOworICAgIGJvb2wgZmFpbGVkIHsgZmFsc2Ug
fTsKK307CisKK1RleHRCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJl
YWtpbmdSdWxlU2V0IHJ1bGVTZXQpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVD
YWNoZT4gY3Vyc29yTW92ZW1lbnRJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNENKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0Tm9uQ0pLSXRlcmF0b3I7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTRMb29zZUNKS0l0ZXJh
dG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0
TG9vc2VOb25DSktJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hl
PiBsaW5lQnJlYWtVQVgxNE5vcm1hbENKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0Tm9ybWFsTm9uQ0pLSXRlcmF0b3I7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTRTdHJpY3RDSktJ
dGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtV
QVgxNFN0cmljdE5vbkNKS0l0ZXJhdG9yOworCisgICAgTlNTdHJpbmcgKmZpbGVOYW1lQmFzZTsK
KyAgICBSdWxlQ2FjaGUqIGNhY2hlID0gbnVsbHB0cjsKKworICAgIHN3aXRjaCAocnVsZVNldCkg
eworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpDdXJzb3JNb3ZlbWVudDoKKyAgICAgICAgZmls
ZU5hbWVCYXNlID0gQCJDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMiOworICAgICAgICBjYWNo
ZSA9ICZjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRDSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAi
TGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VB
WDE0Q0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdS
dWxlU2V0OjpVQVgxNE5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9uQ0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTROb25D
SktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVT
ZXQ6OlVBWDE0TG9vc2VDSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlQ0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTRMb29z
ZUNKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVs
ZVNldDo6VUFYMTRMb29zZU5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJl
YWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtV
QVgxNExvb3NlTm9uQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbENKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0g
QCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGlu
ZUJyZWFrVUFYMTROb3JtYWxDSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pLOgorICAgICAgICBmaWxlTmFt
ZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksiOworICAgICAgICBj
YWNoZSA9ICZsaW5lQnJlYWtVQVgxNE5vcm1hbE5vbkNKS0l0ZXJhdG9yLmdldCgpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3RDSks6CisgICAg
ICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSyI7Cisg
ICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0U3RyaWN0Q0pLSXRlcmF0b3IuZ2V0KCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdE5vbkNK
SzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTRTdHJpY3ROb25DSktJdGVy
YXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgQVNTRVJUKGNhY2hlKTsK
KworICAgIGlmIChjYWNoZS0+ZmFpbGVkKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IGlmICghY2FjaGUtPml0ZXJhdG9yKSB7CisgICAgICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNC
dW5kbGUgYnVuZGxlRm9yQ2xhc3M6W1dURkJ1bmRsZUZpbmRlciBjbGFzc11dOworICAgICAgICBO
U1N0cmluZyAqcGF0aCA9IFtidW5kbGUgcGF0aEZvclJlc291cmNlOmZpbGVOYW1lQmFzZSBvZlR5
cGU6QCJicmsiIGluRGlyZWN0b3J5OkAiQnJlYWtpbmdSdWxlcyJdOworICAgICAgICBpZiAoIXBh
dGgpIHsKKyAgICAgICAgICAgIGNhY2hlLT5mYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBOU1N0cmluZyAqZGlyZWN0b3J5ID0g
W3BhdGggc3RyaW5nQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50XTsKKyAgICAgICAgVUVycm9y
Q29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAgICAgIExvY2FsVURhdGFNZW1vcnlQ
b2ludGVyIGRhdGEodWRhdGFfb3BlbihbZGlyZWN0b3J5IFVURjhTdHJpbmddLCAiYnJrIiwgW2Zp
bGVOYW1lQmFzZSBVVEY4U3RyaW5nXSwgJmVycm9yQ29kZSkpOworICAgICAgICBpZiAoZXJyb3JD
b2RlICE9IFVfWkVST19FUlJPUikgeworICAgICAgICAgICAgY2FjaGUtPmZhaWxlZCA9IHRydWU7
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIGNhY2hl
LT5pdGVyYXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4oZGF0
YS5vcnBoYW4oKSwgZXJyb3JDb2RlKTsKKyAgICAgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9f
RVJST1IpIHsKKyAgICAgICAgICAgIGNhY2hlLT5mYWlsZWQgPSB0cnVlOworICAgICAgICAgICAg
Y2FjaGUtPml0ZXJhdG9yID0gbnVsbHB0cjsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGV4dEJyZWFr
SXRlcmF0b3IqPihzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+KCpjYWNo
ZS0+aXRlcmF0b3IpLnJlbGVhc2UoKSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVmZXJlbmNlKCkKIHsKICAgICBSZXRhaW5QdHI8
Q0ZQcm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlWYWx1
ZShDRlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUiKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFr
ZS9XZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQppbmRleCAyOWEw
OTY5MDM4ZmFhNzQ0ZTFhOGM1OGYzNTZhZDA3M2YwMDUyNWJkLi44MWY1NGE1NmFkNjk1M2Q3YjFl
MjBjODhmYTg1YmJkZGQxZjA3ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMu
Y21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlCkBAIC0yNCw2ICsyNCw3IEBA
IGlmIChOT1QgVE9PTFNfRElSKQogZW5kaWYgKCkKIAogc2V0KERFUklWRURfU09VUkNFU19ESVIg
IiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMiKQorc2V0KERFUklWRURfU09VUkNF
U19XVEZfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURiIpCiBzZXQo
REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9E
ZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZSIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUiKQogc2V0
KERFUklWRURfU09VUkNFU19XRUJLSVRMRUdBQ1lfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rl
cml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIpCkBAIC0zMiw2ICszMyw4IEBAIHNldChERVJJVkVE
X1NPVVJDRVNfV0VCS0lUMl9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMv
V2ViS2l0MiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUiAiJHtDTUFL
RV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJJbnNwZWN0b3JVSSIpCiAKIGZpbGUoTUFL
RV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfSkKK2ZpbGUo
TUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0pCitmaWxlKE1BS0VfRElS
RUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMpCiBmaWxlKE1B
S0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0vU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVD
VE9SVUlfRElSfSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297126</attachid>
            <date>2016-12-14 14:24:01 -0800</date>
            <delta_ts>2016-12-14 16:31:45 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20161214142309.patch</filename>
            <type>text/plain</type>
            <size>288894</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NGViZjQ3NGFkODg3OWY2MjRjOWI5MzAwYTVhNzQ4YzkzMTY5MDYzLi44YmY4NmExYTA3Yzg3OWQz
ZWVmYTFhZmY0Y2JmNmZmNTc3MmYyZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNi0xMi0xNCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTYtMTItMTQgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViQXNzZW1ibHkgSlMgQVBJOiBpbXBsZW1lbnQgR2xvYmFsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4
IDk1OTcwOTMzMzA4YmM2MWJhZDQzOWE0ZDYzMTNmYjQ4ZDMxZDQyODcuLjllYjVmMDMwNmU2YTEw
YjM5ZjhkY2U5YzgxZGQ0Zjc2ZTIzYjUyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTYtMTIt
MTQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBD
b21waWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBy
dW4gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYwNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNv
dXJjZXMubWFrZTogQWRkZWQuCisgICAgICAgICogd3RmL2dlbmJyazogQWRkZWQuCisgICAgICAg
ICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yRXBpbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZUNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQu
CisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4
dEJyZWFrSXRlcmF0b3IuY3BwOgorICAgICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgor
ICAgICAgICAoV1RGOjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6b3Bl
bkxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRv
ci5oOgorICAgICAgICAqIHd0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNV
TWFjLm1tOgorICAgICAgICAoV1RGOjppdGVyYXRvckZvclJ1bGVTZXQpOgorCiAyMDE2LTEyLTE0
ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMjA5Nzk1LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAwYzI0NDNhZDE0MmYwMzdhZWM3N2NlYTk1MWE0NjNjMjVhZTA2MTRiLi45MjQ0Njk4MDU0
NjRlZTgyYzk5ZDY1ZDk3MmQ4MjFjOWNmNGJhMTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTIwNiw2ICsxMjA2LDcgQEAKIAkJMUEyOEQ0QTgxNzdCNzFDODAwMDdGQTNDIC8q
IEpTU3RyaW5nUmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUEyOEQ0QTcxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVmUHJpdmF0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFB
ODgyNkIxNjUzQzRDRDFBNjQyOTgzQiAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5VGFibGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEI0N0YyMzQzNjZD
NEI3MkFDODUyQTdFIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgKi87IH07CiAJCTFB
Q0Y3Mzc3MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQ0Y3Mzc2MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFr
LmNwcCAqLzsgfTsKKwkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRDE4NzhG
MUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovOyB9OwogCQkyNjAwQjVBNjE1MkJB
QUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmNwcCAqLzsgfTsKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLzsgfTsKIAkJ
MjYyRDg1QjYxQzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjJEODVC
NDFDMEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLzsg
fTsKQEAgLTM1OTAsNiArMzU5MSw3IEBACiAJCTFDOTA1MTQ1MEJBOUU4QTcwMDgxRTlEMCAvKiBC
YXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25m
aWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRBMEQzMkMzOUEwMDQxQkNG
RiAvKiBKYXZhU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFT
Y3JpcHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEIwRDMyQzM5QTAw
NDFCQ0ZGIC8qIEphdmFTY3JpcHRDb3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEphdmFTY3JpcHRDb3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4
NzhGMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZm9sZGVyOyBuYW1lID0gQnJlYWtpbmdSdWxl
czsgcGF0aCA9IC4uL1dURi9CcmVha2luZ1J1bGVzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNT
dHJpbmdKb2luZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdK
b2luZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYyRDg1QjQxQzBENjUwRjAw
NkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBw
YXRoID0gYjMvYWlyL0FpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC01OTA3LDYgKzU5MDksNyBAQAogCQk2NTBGREY4RDA5RDBGQ0E3
MDA3NjlFNTQgLyogRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdS
dWxlcyAqLywKIAkJCQlBRDJGQ0MwQTFEQjU5QzU5MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3JDb25zdHJ1Y3Rvci5sdXQuaCAqLywKIAkJCQlBRDJGQ0MwQjFEQjU5QzU5MDBCM0U3
MzYgLyogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUubHV0LmggKi8sCiAJCQkJQUQy
RkNDMEMxREI1OUM1OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5s
dXQuaCAqLywKQEAgLTkyNjAsNiArOTI2Myw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZy
YW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVD
IC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDllMjU5NmU1OGFlZjU3M2M3MzhjYWM4YTc0NTVkYTU1
NzUzMjI1Yi4uOGU5NjA0MDNjNTVhMDdlNWZiMjJiMzY3ZDJhMzhkOTg1NGI5MzgxOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcsMTcgQEAKIAlv
YmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQkx
Q0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNh
ID0gUEJYQWdncmVnYXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFDRDE4
NzgzMUQ1NTY5NUMwMENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFn
Z3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAor
CQkJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMg
Ki8sCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZl
ZCBTb3VyY2VzIjsKKwkJCXByb2R1Y3ROYW1lID0gIkNvcHkgV1RGIEhlYWRlcnMiOworCQl9Owog
CQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2
NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQ
QlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtODQsNyArOTUsNiBA
QAogCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4g
RnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDNTE4
RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CiAJCTE0NDdBRUM3
MThGQ0U1ODAwMEIzRDdGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMjQ3QjYyMTQ2ODlCODYwMEU3OEI3NiAvKiBsaWJXVEYu
YSAqLzsgfTsKIAkJMTQ0N0FFQzkxOEZDRTU5NDAwQjNEN0ZGIC8qIG1ibWFsbG9jLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUM4MThGQ0U1
OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAgKi87IH07Ci0JCTE0NDdBRUNCMThGQ0U1QjkwMEIz
RDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUu
ZHlsaWIgKi87IH07CiAJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTkw
MTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9ICgpOyB9OyB9OwogCQkxNDY5NDE5MzE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRp
bWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTQ2OTQxOTExNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCAqLzsgfTsKIAkJ
MTQ2OTQxOTYxNkVBQUZGODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2OTQxOTQxNkVBQUZGODAwMjRFMTQ2
IC8qIFNjaGVkdWxlUGFpci5oICovOyB9OwpAQCAtMzM3LDYgKzM0NywxNiBAQAogCQlBOEE0NzQ4
QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4QjE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmgg
Ki87IH07CiAJCUFEN0M0MzRCMUREMkE0QTcwMDI2ODg4QiAvKiBFeHBlY3RlZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ3QzQzNEExREQyQTRBNzAw
MjY4ODhCIC8qIEV4cGVjdGVkLmggKi87IH07CiAJCUIzOEZEN0JEMTY4OTUzRTgwMDY1Qzk2OSAv
KiBGZWF0dXJlRGVmaW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggKi87
IH07CisJCUMyQkE1NDNFMUQ1ODZBRjQwMDBBMzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZD
RTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi87IH07CisJCUMyQ0EzN0U5MUQ1NUM5
NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTAxRDU1Qzk3MTAwNDg2
Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi87IH07CisJCUMyQ0EzN0VB
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UxMUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3
RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMjFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCAqLzsg
fTsKKwkJQzJDQTM3RUMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZU5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwICovOyB9OworCQlDMkNBMzdFRTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VGMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U2MUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAq
LzsgfTsKKwkJQzJDQTM3RjAxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksuY3BwICovOyB9OworCQlDMkNBMzdGMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAgKi87IH07CiAJCUM0RjhBOTM3MTlDNjVF
QjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAq
LzsgfTsKIAkJQzhCMEUxQTFFMDFBNDg2RUI5NUUwRDExIC8qIEluZGV4U2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM3RTFEN0RCRDg0QUMzOEZB
RTREMzQgLyogSW5kZXhTZXQuaCAqLzsgfTsKIAkJQzkxNkI5NzVGMDJGNEY3RThCNEFCMTJEIC8q
IEluZGV4TWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QjQzMzgzQTVEMEI0NjNDOTQzM0Q5MzMgLyogSW5kZXhNYXAuaCAqLzsgfTsKQEAgLTM3MSw2
ICszOTEsMTMgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAw
RTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAw
Q0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRh
aW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3
OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVH
bG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8g
PSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Q
cm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQ
cm9qZWN0IG9iamVjdCAqLzsKQEAgLTQ4Miw2ICs1MDksMTggQEAKIAkJMUMxODFDOEQxRDMwN0FC
ODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQzE4MUM4RTFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVU
RjE2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYx
Ni5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZB
MTYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMu
bW07IHBhdGggPSBtYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0
RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQjRGQjk4MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkxRDU1OUFF
RjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNCNEZCOUMxRDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9n
dWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdE
RUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMubWFrZTsg
cGF0aCA9IHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1
c2VzVGFicyA9IDE7IH07CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RF
QyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUZBNDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJD
b3JlVGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUaHJl
YWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAwRERC
OTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzExLDYgKzc1MCwxNiBAQAogCQlBOEE0NzQ4QjE1MUE4MjY0MDA0MTIz
RkYgLyogY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNvbmZpZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDdDNDM0QTFERDJBNEE3MDAyNjg4OEIg
LyogRXhwZWN0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhwZWN0ZWQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5
IC8qIEZlYXR1cmVEZWZpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZl
YXR1cmVEZWZpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQkE1NDNGMUQ1
ODc0RTYwMDBBMzMzMiAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRo
b247IHBhdGggPSBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHk7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMjFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9u
Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTQxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5j
cHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcDsg
cGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksu
Y3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9u
Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTcxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENK
Sy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RD
SksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFODFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0RjhBOTM2MTlD
NjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FB
MTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRpbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTc0Miw3ICs3OTEsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
IAkJCWZpbGVzID0gKAogCQkJCTE0NDdBRUM2MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9u
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTE0NDdBRUNCMThGQ0U1QjkwMEIzRDdG
RiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCisJCQkJQzJCQTU0M0UxRDU4
NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQkx
NDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3b3JrcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTc3OSw2
ICs4MjgsMjUgQEAKIAkJCXBhdGggPSBpY3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwog
CQl9OworCQkxQ0QxODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQzJCQTU0M0YxRDU4NzRF
NjAwMEEzMzMyIC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAqLywKKwkJCQkxQ0Qx
ODc5MjFENTU5OEUxMDBDQzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAq
LywKKwkJCQkxQ0QxODc5MzFENTU5OTY1MDBDQzdERUMgLyogTGluZUJyZWFrSXRlcmF0b3JQcm9s
b2d1ZS50eHQgKi8sCisJCQkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksudHh0ICovLAorCQkJCTFDQjRGQjk1MUQ1NTlBNjkwMEY5RkUzOCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NjFENTU5QTkw
MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5NzFENTU5QUE4MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9u
Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5ODFENTU5QUQyMDBGOUZFMzggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy50eHQgKi8sCisJCQkJMUNCNEZCOTkxRDU1OUFFRjAwRjlGRTM4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovLAorCQkJCTFDQjRG
QjlBMUQ1NTlCMjMwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4
dCAqLywKKwkJCQkxQ0I0RkI5QjFENTU5QjNFMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUMxRDU1OUI2NzAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovLAorCQkJKTsKKwkJCXBhdGggPSBCcmVh
a2luZ1J1bGVzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMUZBNDdDODcx
NTI1MDJEQTAwNTY4RDFCIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC04MDAsMTAgKzg2OCwxMiBAQAogCQk1RDI0N0I1NzE0Njg5Qjg2MDBFNzhC
NzYgPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzhB
MUQ1NThBRDMwMENDN0RFQyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovLAogCQkJCTVEMjQ3QjZE
MTQ2ODlDNDcwMEU3OEI3NiAvKiBDb25maWd1cmF0aW9ucyAqLywKIAkJCQkxNDAyMkYzRjE4RjVD
M0U1MDA3RkYwRUIgLyogTGlicmFyaWVzICovLAogCQkJCTVEMjQ3QjYzMTQ2ODlCODYwMEU3OEI3
NiAvKiBQcm9kdWN0cyAqLywKIAkJCQk1RDI0N0I3NjE0Njg5RDc2MDBFNzhCNzYgLyogU291cmNl
ICovLAorCQkJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8s
CiAJCQkJMTQ0N0FFQzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICov
LAogCQkJCTE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICovLAog
CQkJKTsKQEAgLTExNjIsNiArMTIzMiw3IEBACiAJCUE4QTQ3MzFCMTUxQTgyNUIwMDQxMjNGRiAv
KiB0ZXh0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkx
Q0QxODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJCQlBNUJBMTVG
NjE4MjQzNTlFMDBBODJFNjkgLyogY2YgKi8sCiAJCQkJMUMxODFDODgxRDMwN0FCODAwRjVGQTE2
IC8qIGljdSAqLywKIAkJCQlBNUJBMTVGMTE4MjQzMzlGMDBBODJFNjkgLyogbWFjICovLApAQCAt
MTIzOSw2ICsxMzEwLDIzIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKKwkJQzJDQTM3REYxRDU1QzhEODAwNDg2Qjk4IC8qIERlcml2ZWQgU291cmNl
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQzJDQTM3
RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8s
CisJCQkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksuY3BwICovLAorCQkJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksuY3BwICovLAorCQkJCUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U0
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLywK
KwkJCQlDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U3MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLywKKwkJCQlD
MkNBMzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5v
bkNKSy5jcHAgKi8sCisJCQkpOworCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQkJcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dURjsKKwkJCXNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7CisJCX07CiAJCUNFNDY1MTZDMTlEQjFGQjQwMDNFQ0EwNSAvKiBjb2NvYSAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNTcwLDYgKzE2NTgsNyBAQAog
CQkJYnVpbGRSdWxlcyA9ICgKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJMUNEMTg3
ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJNjVBRkEy
OEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkpOwogCQkJ
bmFtZSA9IFdURjsKQEAgLTE2MDAsMTIgKzE2ODksMjcgQEAKIAkJCXRhcmdldHMgPSAoCiAJCQkJ
NUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLywKIAkJCQk2NUFGQTE2RjE2MzBCOTc3
MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLywKKwkJCQkxQ0QxODc4MTFENTU2OTVDMDBD
QzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0NDdBRUJEMThGQ0U1NjkwMEIzRDdG
RiAvKiBtYm1hbGxvYyAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9u
ICovCiAKIC8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCisJCTFD
RDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7
CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJ
CSk7CisJCQluYW1lID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNlcyI7CisJCQlvdXRwdXRQYXRo
cyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
KwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7
QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuY2QgXCIke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcbmVudlxuL2Jpbi9sbiAtc2ZoIFwiJHtT
UkNST09UfVwiIFdURlxuZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsgISAtZCBCcmVha2luZ1J1
bGVzIF07IHRoZW5cbiAgICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxuXG5pZiBbIFwiJE1BQ09T
WF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdIDsgdGhlblxuICAgIGV4cG9ydCBB
RERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9MFxuZWxzZVxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQ9MVxuZmlcblxuaWYgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9
PSBcIjEwLjEwXCIgXSB8fCBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAu
MTFcIiBdIHx8IFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMlwiIF0g
fHwgWyBcIiRTREtfVkVSU0lPTl9NQUpPUlwiID09IFwiOTAwMDBcIiBdIHx8IFsgXCIkU0RLX1ZF
UlNJT05fTUFKT1JcIiA9PSBcIjEwMDAwMFwiIF07IHRoZW5cbiAgICBleHBvcnQgSEFWRV9JQ1VH
RU5CUks9MFxuZWxzZVxuICAgIGV4cG9ydCBIQVZFX0lDVUdFTkJSSz0xXG5maVxuXG5pZiBbIFwi
JHtBQ1RJT059XCIgPSBcImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1v
IFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxoZHJzXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5z
dGFsbGFwaVwiIF07IHRoZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwiV1RGL3d0Zi9E
ZXJpdmVkU291cmNlcy5tYWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1
YCBTREtST09UPVwiJHtTREtST09UfVwiXG5maSI7CisJCX07CiAJCTY1QUZBMTcwMTYzMEI5Nzcw
MDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3Jp
cHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE2MzYs
NiArMTc0MCw4IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMg
PSAoCiAJCQkJQThBNDczODYxNTFBODI1QjAwNDEyM0ZGIC8qIEFzc2VydGlvbnMuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUYxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzUxNTFBODI1QjAwNDEyM0ZGIC8qIEF0b21pY1N0cmlu
Zy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MEVDQTYwRDFCMDI0MjY4MDA0NDk3MzkgLyogQXRv
bWljU3RyaW5nSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUJBMTVGQTE4MjQzNUE2MDBB
ODJFNjkgLyogQXRvbWljU3RyaW5nSW1wbENGLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTY2NSw2
ICsxNzcxLDcgQEAKIAkJCQlBOEE0NzNCMDE1MUE4MjVCMDA0MTIzRkYgLyogZG91YmxlLWNvbnZl
cnNpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCQTE1MUE4MjVCMDA0MTIzRkYgLyog
ZHRvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCMzE1MUE4MjVCMDA0MTIzRkYgLyog
ZmFzdC1kdG9hLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUQxRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY2MEYzMkYxREZDQkQxQjAwNDE2RDZDIC8qIExvY2tlZFByaW50U3RyZWFtLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4QTQ3M0MzMTUxQTgyNUIwMDQxMjNGRiAvKiBGYXN0TWFsbG9jLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGOUQzMzYwMTY1REJBNzMwMDVBRDM4NyAvKiBGaWxlUHJpbnRT
dHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNjc4LDYgKzE3ODUsNyBAQAogCQkJCUE4QTQ3
M0U5MTUxQTgyNUIwMDQxMjNGRiAvKiBNRDUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1NDk3
QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OEE0NzNFQzE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlDMkNBMzdGMDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdENKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGNDE1MUE4MjVCMDA0MTIz
RkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjdDNUZCNjFEODg1
Q0YyMDA0NEY1RTIgLyogRmFzdEJpdFZlY3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0
NzNGNzE1MUE4MjVCMDA0MTIzRkYgLyogT1NBbGxvY2F0b3JQb3NpeC5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTE2ODUsNiArMTc5Myw3IEBACiAJCQkJQThBNDc0MDIxNTFBODI1QjAwNDEyM0ZGIC8q
IFBhZ2VCbG9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkZGMTlEQzFCQjMzNEVCMDA4ODZE
OTEgLyogUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGODI0QTY4
MUI3NDQzQTAwMDJFMzQ1RCAvKiBQYXJraW5nTG90LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMy
Q0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pL
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDRUUyMjAzMUNFQTc1NTEwMDBDMjM5NiAvKiBQbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjlE
MzM2MjE2NURCQTczMDA1QUQzODcgLyogUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0xNzI3LDggKzE4MzYsMTIgQEAKIAkJCQkxQzE4MUM5MTFEMzA3QUI4MDBGNUZBMTYgLyog
VVRleHRQcm92aWRlckxhdGluMS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzE4MUM5MzFEMzA3
QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4QTQ3NDY5MTUxQTgyNUIwMDQxMjNGRiAvKiBVVEY4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUZBNDdDOEExNTI1MDJEQTAwNTY4RDFCIC8q
IFdlYkNvcmVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFNDQ3OUMxQjdBQUEwMzAw
OTQ5OEVCIC8qIFdvcmRMb2NrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0U5MUQ1NUM5
NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
NEEwQUQzOTFBOTYyNDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUU0QTBBRDNEMUE5NjI1M0MwMDUzNkRGNiAvKiBXb3JrUXVldWVDb2NvYS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzQ0NTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmNwcCBp
biBTb3VyY2VzICovLApAQCAtMTc0NSw2ICsxODU4LDExIEBACiAJCQl0YXJnZXQgPSA1RDI0N0I2
MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovOwogCQkJdGFyZ2V0UHJveHkgPSAxNDQ3QUVDMzE4
RkNFNTcwMDBCM0Q3RkYgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9OworCQkxQ0Qx
ODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlz
YSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQgPSAxQ0QxODc4MTFENTU2OTVDMDBD
QzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovOworCQkJdGFyZ2V0UHJveHkgPSAxQ0QxODc4NzFE
NTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9OwogCQk2NUFG
QTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlz
YSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSA2NUFGQTE2RjE2MzBCOTc3MDAz
RDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLzsKQEAgLTE3NzQsNiArMTg5MiwzMCBAQAogCQkJ
fTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdE
RUMgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJh
c2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERl
YnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVD
VF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07
CisJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0g
WENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVE
MjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQli
dWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJ
CQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RF
QyAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJ
CQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAv
KiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBS
T0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rp
b247CisJCX07CiAJCTVEMjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJ
CWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVu
Y2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICov
OwpAQCAtMTg1Nyw2ICsxOTk5LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJs
ZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9Owor
CQkxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZv
ciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBY
Q0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkxQ0Qx
ODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1Njk1QzAw
Q0M3REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFBy
b2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAw
OworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQy
NDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJY
UHJvamVjdCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQli
dWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9icmtpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jya2l0ZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YWE1ZTU1Mjc5NjA5MGVhZWJjZDdjZTdiN2QyNzVhYThiMzc3NWI0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmgKQEAgLTAsMCArMSw2NTUgQEAK
Ky8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDE0
LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90
aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgor
KiBGaWxlIGJya2l0ZXIuaAorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRl
ICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAyLzE4Lzk3ICAgIGFsaXUgICAg
ICAgIEFkZGVkIHR5cGVkZWYgZm9yIFRleHRDb3VudC4gIE1hZGUgRE9ORSBjb25zdC4KKyogICAw
NS8wNy85NyAgICBhbGl1ICAgICAgICBGaXhlZCBETEwgZGVjbGFyYXRpb24uCisqICAgMDcvMDkv
OTcgICAgamZpdHogICAgICAgUmVuYW1lZCBCcmVha0l0ZXJhdG9yIGFuZCBpbnRlcmZhY2Ugc3lu
Y2VkIHdpdGggSkRLCisqICAgMDgvMTEvOTggICAgaGVsZW5hICAgICAgU3luYy11cCBKREsxLjIu
CisqICAgMDEvMTMvMjAwMCAgaGVsZW5hICAgICAgQWRkZWQgVUVycm9yQ29kZSBwYXJhbWV0ZXIg
dG8gY3JlYXRlWFhYSW5zdGFuY2UgbWV0aG9kcy4KKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
LworCisjaWZuZGVmIEJSS0lURVJfSAorI2RlZmluZSBCUktJVEVSX0gKKworI2luY2x1ZGUgInVu
aWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBCcmVh
ayBJdGVyYXRvci4KKyAqLworCisjaWYgVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworVV9O
QU1FU1BBQ0VfQkVHSU4KKworLyoKKyAqIEFsbG93IHRoZSBkZWNsYXJhdGlvbiBvZiBBUElzIHdp
dGggcG9pbnRlcnMgdG8gQnJlYWtJdGVyYXRvcgorICogZXZlbiB3aGVuIGJyZWFrIGl0ZXJhdGlv
biBpcyByZW1vdmVkIGZyb20gdGhlIGJ1aWxkLgorICovCitjbGFzcyBCcmVha0l0ZXJhdG9yOwor
CitVX05BTUVTUEFDRV9FTkQKKworI2Vsc2UKKworI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisjaW5jbHVkZSAidW5pY29kZS9jaGFyaXRl
ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9jaWQuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3Vicmsu
aCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVudW0uaCIKKyNpbmNsdWRlICJ1bmljb2RlL3V0ZXh0
LmgiCisjaW5jbHVkZSAidW5pY29kZS91bWlzYy5oIgorCitVX05BTUVTUEFDRV9CRUdJTgorCisv
KioKKyAqIFRoZSBCcmVha0l0ZXJhdG9yIGNsYXNzIGltcGxlbWVudHMgbWV0aG9kcyBmb3IgZmlu
ZGluZyB0aGUgbG9jYXRpb24KKyAqIG9mIGJvdW5kYXJpZXMgaW4gdGV4dC4gQnJlYWtJdGVyYXRv
ciBpcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzLgorICogSW5zdGFuY2VzIG9mIEJyZWFrSXRlcmF0
b3IgbWFpbnRhaW4gYSBjdXJyZW50IHBvc2l0aW9uIGFuZCBzY2FuIG92ZXIKKyAqIHRleHQgcmV0
dXJuaW5nIHRoZSBpbmRleCBvZiBjaGFyYWN0ZXJzIHdoZXJlIGJvdW5kYXJpZXMgb2NjdXIuCisg
KiA8cD4KKyAqIExpbmUgYm91bmRhcnkgYW5hbHlzaXMgZGV0ZXJtaW5lcyB3aGVyZSBhIHRleHQg
c3RyaW5nIGNhbiBiZSBicm9rZW4KKyAqIHdoZW4gbGluZS13cmFwcGluZy4gVGhlIG1lY2hhbmlz
bSBjb3JyZWN0bHkgaGFuZGxlcyBwdW5jdHVhdGlvbiBhbmQKKyAqIGh5cGhlbmF0ZWQgd29yZHMu
CisgKiA8cD4KKyAqIFNlbnRlbmNlIGJvdW5kYXJ5IGFuYWx5c2lzIGFsbG93cyBzZWxlY3Rpb24g
d2l0aCBjb3JyZWN0CisgKiBpbnRlcnByZXRhdGlvbiBvZiBwZXJpb2RzIHdpdGhpbiBudW1iZXJz
IGFuZCBhYmJyZXZpYXRpb25zLCBhbmQKKyAqIHRyYWlsaW5nIHB1bmN0dWF0aW9uIG1hcmtzIHN1
Y2ggYXMgcXVvdGF0aW9uIG1hcmtzIGFuZCBwYXJlbnRoZXNlcy4KKyAqIDxwPgorICogV29yZCBi
b3VuZGFyeSBhbmFseXNpcyBpcyB1c2VkIGJ5IHNlYXJjaCBhbmQgcmVwbGFjZSBmdW5jdGlvbnMs
IGFzCisgKiB3ZWxsIGFzIHdpdGhpbiB0ZXh0IGVkaXRpbmcgYXBwbGljYXRpb25zIHRoYXQgYWxs
b3cgdGhlIHVzZXIgdG8KKyAqIHNlbGVjdCB3b3JkcyB3aXRoIGEgZG91YmxlIGNsaWNrLiBXb3Jk
IHNlbGVjdGlvbiBwcm92aWRlcyBjb3JyZWN0CisgKiBpbnRlcnByZXRhdGlvbiBvZiBwdW5jdHVh
dGlvbiBtYXJrcyB3aXRoaW4gYW5kIGZvbGxvd2luZworICogd29yZHMuIENoYXJhY3RlcnMgdGhh
dCBhcmUgbm90IHBhcnQgb2YgYSB3b3JkLCBzdWNoIGFzIHN5bWJvbHMgb3IKKyAqIHB1bmN0dWF0
aW9uIG1hcmtzLCBoYXZlIHdvcmQtYnJlYWtzIG9uIGJvdGggc2lkZXMuCisgKiA8cD4KKyAqIENo
YXJhY3RlciBib3VuZGFyeSBhbmFseXNpcyBhbGxvd3MgdXNlcnMgdG8gaW50ZXJhY3Qgd2l0aAor
ICogY2hhcmFjdGVycyBhcyB0aGV5IGV4cGVjdCB0bywgZm9yIGV4YW1wbGUsIHdoZW4gbW92aW5n
IHRoZSBjdXJzb3IKKyAqIHRocm91Z2ggYSB0ZXh0IHN0cmluZy4gQ2hhcmFjdGVyIGJvdW5kYXJ5
IGFuYWx5c2lzIHByb3ZpZGVzIGNvcnJlY3QKKyAqIG5hdmlnYXRpb24gb2YgdGhyb3VnaCBjaGFy
YWN0ZXIgc3RyaW5ncywgcmVnYXJkbGVzcyBvZiBob3cgdGhlCisgKiBjaGFyYWN0ZXIgaXMgc3Rv
cmVkLiAgRm9yIGV4YW1wbGUsIGFuIGFjY2VudGVkIGNoYXJhY3RlciBtaWdodCBiZQorICogc3Rv
cmVkIGFzIGEgYmFzZSBjaGFyYWN0ZXIgYW5kIGEgZGlhY3JpdGljYWwgbWFyay4gV2hhdCB1c2Vy
cworICogY29uc2lkZXIgdG8gYmUgYSBjaGFyYWN0ZXIgY2FuIGRpZmZlciBiZXR3ZWVuIGxhbmd1
YWdlcy4KKyAqIDxwPgorICogVGhlIHRleHQgYm91bmRhcnkgcG9zaXRpb25zIGFyZSBmb3VuZCBh
Y2NvcmRpbmcgdG8gdGhlIHJ1bGVzCisgKiBkZXNjcmliZWQgaW4gVW5pY29kZSBTdGFuZGFyZCBB
bm5leCAjMjksIFRleHQgQm91bmRhcmllcywgYW5kCisgKiBVbmljb2RlIFN0YW5kYXJkIEFubmV4
ICMxNCwgTGluZSBCcmVha2luZyBQcm9wZXJ0aWVzLiAgVGhlc2UKKyAqIGFyZSBhdmFpbGFibGUg
YXQgaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMTQvIGFuZAorICogaHR0cDovL3d3
dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkvLgorICogPHA+CisgKiBJbiBhZGRpdGlvbiB0byB0
aGUgQysrIEFQSSBkZWZpbmVkIGluIHRoaXMgaGVhZGVyIGZpbGUsIGEKKyAqIHBsYWluIEMgQVBJ
IHdpdGggZXF1aXZhbGVudCBmdW5jdGlvbmFsaXR5IGlzIGRlZmluZWQgaW4gdGhlCisgKiBmaWxl
IHVicmsuaAorICogPHA+CisgKiBDb2RlIHNuaXBwZXRzIGlsbHVzdHJhdGluZyB0aGUgdXNlIG9m
IHRoZSBCcmVhayBJdGVyYXRvciBBUElzCisgKiBhcmUgYXZhaWxhYmxlIGluIHRoZSBJQ1UgVXNl
ciBHdWlkZSwKKyAqIGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL2JvdW5kYXJ5QW5h
bHlzaXMuaHRtbAorICogYW5kIGluIHRoZSBzYW1wbGUgcHJvZ3JhbSBpY3Uvc291cmNlL3NhbXBs
ZXMvYnJlYWsvYnJlYWsuY3BwCisgKgorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgQnJlYWtJdGVy
YXRvciA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiAgZGVzdHJ1
Y3RvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIH5CcmVh
a0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiBhbm90aGVyIG9i
amVjdCBpcyBzZW1hbnRpY2FsbHkgZXF1YWwgdG8gdGhpcworICAgICAqIG9uZS4gVGhlIG90aGVy
IG9iamVjdCBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2YgdGhlIHNhbWUgc3ViY2xhc3Mgb2YKKyAg
ICAgKiBCcmVha0l0ZXJhdG9yLiBPYmplY3RzIG9mIGRpZmZlcmVudCBzdWJjbGFzc2VzIGFyZSBj
b25zaWRlcmVkCisgICAgICogdW5lcXVhbC4KKyAgICAgKiA8UD4KKyAgICAgKiBSZXR1cm4gdHJ1
ZSBpZiB0aGlzIEJyZWFrSXRlcmF0b3IgaXMgYXQgdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlCisg
ICAgICogc2FtZSB0ZXh0LCBhbmQgaXMgdGhlIHNhbWUgY2xhc3MgYW5kIHR5cGUgKHdvcmQsIGxp
bmUsIGV0Yy4pIG9mCisgICAgICogQnJlYWtJdGVyYXRvciwgYXMgdGhlIGFyZ3VtZW50LiAgVGV4
dCBpcyBjb25zaWRlcmVkIHRoZSBzYW1lIGlmCisgICAgICogaXQgY29udGFpbnMgdGhlIHNhbWUg
Y2hhcmFjdGVycywgaXQgbmVlZCBub3QgYmUgdGhlIHNhbWUKKyAgICAgKiBvYmplY3QsIGFuZCBz
dHlsZXMgYXJlIG5vdCBjb25zaWRlcmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBCcmVha0l0ZXJhdG9yJikgY29u
c3QgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29tcGxlbWVudCBvZiB0aGUg
cmVzdWx0IG9mIG9wZXJhdG9yPT0KKyAgICAgKiBAcGFyYW0gcmhzIFRoZSBCcmVha0l0ZXJhdG9y
IHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5CisgICAgICogQHJldHVybiB0aGUgY29tcGxl
bWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJhdG9yPT0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHJocykg
Y29uc3QgeyByZXR1cm4gIW9wZXJhdG9yPT0ocmhzKTsgfQorCisgICAgLyoqCisgICAgICogUmV0
dXJuIGEgcG9seW1vcnBoaWMgY29weSBvZiB0aGlzIG9iamVjdC4gIFRoaXMgaXMgYW4gYWJzdHJh
Y3QKKyAgICAgKiBtZXRob2Qgd2hpY2ggc3ViY2xhc3NlcyBpbXBsZW1lbnQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yKiBjbG9uZSh2
b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBwb2x5bW9ycGhpYyBj
bGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuIERpZmZlcmVudCBzdWJjbGFzc2VzCisgICAgICogd2ls
bCByZXR1cm4gZGlzdGluY3QgdW5lcXVhbCB2YWx1ZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBj
b25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBDaGFyYWN0ZXJJdGVyYXRvciBv
dmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3ImIGdldFRleHQodm9pZCkgY29uc3Qg
PSAwOworCisKKyAgICAvKioKKyAgICAgICogIEdldCBhIFVUZXh0IGZvciB0aGUgdGV4dCBiZWlu
ZyBhbmFseXplZC4KKyAgICAgICogIFRoZSByZXR1cm5lZCBVVGV4dCBpcyBhIHNoYWxsb3cgY2xv
bmUgb2YgdGhlIFVUZXh0IHVzZWQgaW50ZXJuYWxseQorICAgICAgKiAgYnkgdGhlIGJyZWFrIGl0
ZXJhdG9yIGltcGxlbWVudGF0aW9uLiAgSXQgY2FuIHNhZmVseSBiZSB1c2VkIHRvCisgICAgICAq
ICBhY2Nlc3MgdGhlIHRleHQgd2l0aG91dCBpbXBhY3RpbmcgYW55IGJyZWFrIGl0ZXJhdG9yIG9w
ZXJhdGlvbnMsCisgICAgICAqICBidXQgdGhlIHVuZGVybHlpbmcgdGV4dCBpdHNlbGYgbXVzdCBu
b3QgYmUgYWx0ZXJlZC4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGZpbGxJbiBBIFVUZXh0IHRv
IGJlIGZpbGxlZCBpbi4gIElmIE5VTEwsIGEgbmV3IFVUZXh0IHdpbGwgYmUKKyAgICAgICogICAg
ICAgICAgIGFsbG9jYXRlZCB0byBob2xkIHRoZSByZXN1bHQuCisgICAgICAqIEBwYXJhbSBzdGF0
dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAgKiBAcmV0dXJuICAgVGhlIGN1cnJl
bnQgVVRleHQgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuICBJZiBhbiBpbnB1dAorICAgICAgKiAg
ICAgICAgICAgVVRleHQgd2FzIHByb3ZpZGVkLCBpdCB3aWxsIGFsd2F5cyBiZSByZXR1cm5lZC4K
KyAgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICAqLworICAgICB2aXJ0dWFsIFVUZXh0ICpn
ZXRVVGV4dChVVGV4dCAqZmlsbEluLCBVRXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0ID0gMDsKKwor
ICAgIC8qKgorICAgICAqIENoYW5nZSB0aGUgdGV4dCBvdmVyIHdoaWNoIHRoaXMgb3BlcmF0ZXMu
IFRoZSB0ZXh0IGJvdW5kYXJ5IGlzCisgICAgICogcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAq
IEBwYXJhbSB0ZXh0IFRoZSBVbmljb2RlU3RyaW5nIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0Lgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4
dChjb25zdCBVbmljb2RlU3RyaW5nICZ0ZXh0KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXNl
dCB0aGUgYnJlYWsgaXRlcmF0b3IgdG8gb3BlcmF0ZSBvdmVyIHRoZSB0ZXh0IHJlcHJlc2VudGVk
IGJ5CisgICAgICogdGhlIFVUZXh0LiAgVGhlIGl0ZXJhdG9yIHBvc2l0aW9uIGlzIHJlc2V0IHRv
IHRoZSBzdGFydC4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gbWFrZXMgYSBzaGFsbG93
IGNsb25lIG9mIHRoZSBzdXBwbGllZCBVVGV4dC4gIFRoaXMgbWVhbnMKKyAgICAgKiB0aGF0IHRo
ZSBjYWxsZXIgaXMgZnJlZSB0byBpbW1lZGlhdGVseSBjbG9zZSBvciBvdGhlcndpc2UgcmV1c2Ug
dGhlCisgICAgICogVXRleHQgdGhhdCB3YXMgcGFzc2VkIGFzIGEgcGFyYW1ldGVyLCBidXQgdGhh
dCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2VsZgorICAgICAqIG11c3Qgbm90IGJlIGFsdGVyZWQg
d2hpbGUgYmVpbmcgcmVmZXJlbmNlZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAg
ICAgKiBBbGwgaW5kZXggcG9zaXRpb25zIHJldHVybmVkIGJ5IGJyZWFrIGl0ZXJhdG9yIGZ1bmN0
aW9ucyBhcmUKKyAgICAgKiBuYXRpdmUgaW5kaWNlcyBmcm9tIHRoZSBVVGV4dC4gRm9yIGV4YW1w
bGUsIHdoZW4gYnJlYWtpbmcgVVRGLTgKKyAgICAgKiBlbmNvZGVkIHRleHQsIHRoZSBicmVhayBw
b3NpdGlvbnMgcmV0dXJuZWQgYnkgbmV4dCgpLCBwcmV2aW91cygpLCBldGMuCisgICAgICogd2ls
bCBiZSBVVEYtOCBzdHJpbmcgaW5kaWNlcywgbm90IFVURi0xNiBwb3NpdGlvbnMuCisgICAgICoK
KyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgVVRleHQgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisg
ICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3IgY29kZXMuCisgICAgICogQHN0
YWJsZSBJQ1UgMy40CisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBzZXRUZXh0KFVUZXh0ICp0
ZXh0LCBVRXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKworICAgIC8qKgorICAgICAqIENoYW5nZSB0
aGUgdGV4dCBvdmVyIHdoaWNoIHRoaXMgb3BlcmF0ZXMuIFRoZSB0ZXh0IGJvdW5kYXJ5IGlzCisg
ICAgICogcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqIE5vdGUgdGhhdCBzZXRUZXh0KFVUZXh0
ICopIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSB0byB0aGlzIGZ1bmN0aW9uLAorICAg
ICAqIGFuZCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICAgKiBAcGFyYW0gaXQgVGhlIENoYXJhY3Rl
ckl0ZXJhdG9yIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgYWRvcHRUZXh0KENoYXJhY3Rlckl0ZXJhdG9y
KiBpdCkgPSAwOworCisgICAgZW51bSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBET05FIGlz
IHJldHVybmVkIGJ5IHByZXZpb3VzKCkgYW5kIG5leHQoKSBhZnRlciBhbGwgdmFsaWQKKyAgICAg
ICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQuCisgICAgICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgRE9ORSA9IChpbnQzMl90KS0xCisgICAgfTsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRv
IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHBvc2l0aW9uIHplcm8uCisgICAgICogQHJldHVy
biBUaGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHplcm8uCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGZpcnN0KHZvaWQp
ID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhl
IGluZGV4IGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQg
YmVpbmcgc2Nhbm5lZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBpbmRleCBpbW1lZGlhdGVseSBCRVlP
TkQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJlaW5nIHNjYW5uZWQuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGxhc3Qodm9pZCkg
PSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUg
Ym91bmRhcnkgcHJlY2VkaW5nIHRoZSBjdXJyZW50IGJvdW5kYXJ5LgorICAgICAqIEByZXR1cm4g
VGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgcHJldmlvdXMgdGV4dCBib3VuZGFyeSBvciBET05F
IGlmIGFsbAorICAgICAqIGJvdW5kYXJpZXMgaGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmV2aW91cyh2b2lk
KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlIHRoZSBpdGVyYXRvciB0byB0aGUgYm91
bmRhcnkgZm9sbG93aW5nIHRoZSBjdXJyZW50IGJvdW5kYXJ5LgorICAgICAqIEByZXR1cm4gVGhl
IGNoYXJhY3RlciBpbmRleCBvZiB0aGUgbmV4dCB0ZXh0IGJvdW5kYXJ5IG9yIERPTkUgaWYgYWxs
CisgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQodm9pZCkgPSAwOworCisg
ICAgLyoqCisgICAgICogUmV0dXJuIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgY3VycmVudCBpbnRl
cmF0b3IgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gVGhlIGJvdW5k
YXJ5IG1vc3QgcmVjZW50bHkgcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBpbnQzMl90IGN1cnJlbnQodm9pZCkgY29uc3QgPSAwOworCisgICAg
LyoqCisgICAgICogQWR2YW5jZSB0aGUgaXRlcmF0b3IgdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IGZv
bGxvd2luZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBUaGUgdmFsdWUgcmV0dXJuZWQg
aXMgYWx3YXlzIGdyZWF0ZXIgdGhhbiB0aGUgb2Zmc2V0IG9yCisgICAgICogdGhlIHZhbHVlIEJy
ZWFrSXRlcmF0b3IuRE9ORQorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBiZWdp
biBzY2FubmluZy4KKyAgICAgKiBAcmV0dXJuIFRoZSBmaXJzdCBib3VuZGFyeSBhZnRlciB0aGUg
c3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgZm9sbG93aW5nKGludDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioK
KyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBw
cmVjZWRpbmcgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICogVGhlIHZhbHVlIHJldHVybmVk
IGlzIGFsd2F5cyBzbWFsbGVyIHRoYW4gdGhlIG9mZnNldCBvcgorICAgICAqIHRoZSB2YWx1ZSBC
cmVha0l0ZXJhdG9yLkRPTkUKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gYmVn
aW4gc2Nhbm5pbmcuCisgICAgICogQHJldHVybiBUaGUgZmlyc3QgYm91bmRhcnkgYmVmb3JlIHRo
ZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmcoaW50MzJfdCBvZmZzZXQpID0gMDsKKworICAgIC8q
KgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBzcGVjZmllZCBwb3NpdGlvbiBpcyBhIGJvdW5k
YXJ5IHBvc2l0aW9uLgorICAgICAqIEFzIGEgc2lkZSBlZmZlY3QsIHRoZSBjdXJyZW50IHBvc2l0
aW9uIG9mIHRoZSBpdGVyYXRvciBpcyBzZXQKKyAgICAgKiB0byB0aGUgZmlyc3QgYm91bmRhcnkg
cG9zaXRpb24gYXQgb3IgZm9sbG93aW5nIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBw
YXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuIFRydWUgaWYg
Im9mZnNldCIgaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIGlzQm91bmRhcnkoaW50MzJfdCBvZmZzZXQpID0g
MDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIG50
aCBib3VuZGFyeSBmcm9tIHRoZSBjdXJyZW50IGJvdW5kYXJ5CisgICAgICogQHBhcmFtIG4gdGhl
IG51bWJlciBvZiBib3VuZGFyaWVzIHRvIG1vdmUgYnkuICBBIHZhbHVlIG9mIDAKKyAgICAgKiBk
b2VzIG5vdGhpbmcuICBOZWdhdGl2ZSB2YWx1ZXMgbW92ZSB0byBwcmV2aW91cyBib3VuZGFyaWVz
CisgICAgICogYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3ZlIHRvIGxhdGVyIGJvdW5kYXJpZXMuCisg
ICAgICogQHJldHVybiBUaGUgbmV3IGl0ZXJhdG9yIHBvc2l0aW9uLCBvcgorICAgICAqIERPTkUg
aWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gfG58IGJvdW5kYXJpZXMgaW4gdGhlIHNwZWNmaWVkIGRp
cmVjdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGlu
dDMyX3QgbmV4dChpbnQzMl90IG4pID0gMDsKKworICAgLyoqCisgICAgICogRm9yIFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3JzLCByZXR1cm4gdGhlIHN0YXR1cyB0YWcgZnJvbSB0aGUgCisgICAgICog
YnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1
cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBGb3IgYnJlYWsgaXRlcmF0
b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBhIHJ1bGUgc3RhdHVzLAorICAgICAqIGEgZGVm
YXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVkLgorICAgICAqIDxwPgorICAgICAqIEByZXR1cm4g
dGhlIHN0YXR1cyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCBy
ZWNlbnRseQorICAgICAqICAgICAgICAgcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisgICAgICog
QHNlZSBSdWxlQmFzZUJyZWFrSXRlcmF0b3I6OmdldFJ1bGVTdGF0dXMoKQorICAgICAqIEBzZWUg
VVdvcmRCcmVhaworICAgICAqIEBzdGFibGUgSUNVIDUyCisgICAgICovCisgICAgdmlydHVhbCBp
bnQzMl90IGdldFJ1bGVTdGF0dXMoKSBjb25zdDsKKworICAgLyoqCisgICAgKiBGb3IgUnVsZUJh
c2VkQnJlYWtJdGVyYXRvcnMsIGdldCB0aGUgc3RhdHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBi
cmVhayBydWxlKHMpIAorICAgICogdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5IHJl
dHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICogPHA+CisgICAgKiBGb3IgYnJlYWsgaXRlcmF0
b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBydWxlIHN0YXR1cywKKyAgICAqIG5vIHZhbHVl
cyBhcmUgcmV0dXJuZWQuCisgICAgKiA8cD4KKyAgICAqIFRoZSByZXR1cm5lZCBzdGF0dXMgdmFs
dWUocykgYXJlIHN0b3JlZCBpbnRvIGFuIGFycmF5IHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIuCisg
ICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gc29ydGVkIChhc2NlbmRpbmcpIG9yZGVyLgor
ICAgICogSWYgdGhlIGNhcGFjaXR5IG9mIHRoZSBvdXRwdXQgYXJyYXkgaXMgaW5zdWZmaWNpZW50
IHRvIGhvbGQgdGhlIGRhdGEsCisgICAgKiAgdGhlIG91dHB1dCB3aWxsIGJlIHRydW5jYXRlZCB0
byB0aGUgYXZhaWxhYmxlIGxlbmd0aCwgYW5kIGEKKyAgICAqICBVX0JVRkZFUl9PVkVSRkxPV19F
UlJPUiB3aWxsIGJlIHNpZ25hbGVkLgorICAgICogPHA+CisgICAgKiBAc2VlIFJ1bGVCYXNlQnJl
YWtJdGVyYXRvcjo6Z2V0UnVsZVN0YXR1c1ZlYworICAgICoKKyAgICAqIEBwYXJhbSBmaWxsSW5W
ZWMgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGluIHdpdGggdGhlIHN0YXR1cyB2YWx1ZXMuCisgICAg
KiBAcGFyYW0gY2FwYWNpdHkgIHRoZSBsZW5ndGggb2YgdGhlIHN1cHBsaWVkIHZlY3Rvci4gIEEg
bGVuZ3RoIG9mIHplcm8gY2F1c2VzCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBmdW5jdGlv
biB0byByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzLCBpbiB0aGUKKyAgICAqICAg
ICAgICAgICAgICAgICAgbm9ybWFsIHdheSwgd2l0aG91dCBhdHRlbXRwaW5nIHRvIHN0b3JlIGFu
eSB2YWx1ZXMuCisgICAgKiBAcGFyYW0gc3RhdHVzICAgIHJlY2VpdmVzIGVycm9yIGNvZGVzLgor
ICAgICogQHJldHVybiAgICAgICAgICBUaGUgbnVtYmVyIG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyBm
cm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZAorICAgICogICAgICAgICAgICAgICAgICB0aGUgbW9z
dCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICog
ICAgICAgICAgICAgICAgICBJbiB0aGUgZXZlbnQgb2YgYSBVX0JVRkZFUl9PVkVSRkxPV19FUlJP
UiwgdGhlIHJldHVybiB2YWx1ZQorICAgICogICAgICAgICAgICAgICAgICBpcyB0aGUgdG90YWwg
bnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCB3ZXJlIGF2YWlsYWJsZSwKKyAgICAqICAgICAg
ICAgICAgICAgICAgbm90IHRoZSByZWR1Y2VkIG51bWJlciB0aGF0IHdlcmUgYWN0dWFsbHkgcmV0
dXJuZWQuCisgICAgKiBAc2VlIGdldFJ1bGVTdGF0dXMKKyAgICAqIEBzdGFibGUgSUNVIDUyCisg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1c1ZlYyhpbnQzMl90ICpmaWxs
SW5WZWMsIGludDMyX3QgY2FwYWNpdHksIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioK
KyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3Igd29yZC1icmVha3MgdXNpbmcgdGhlIGdp
dmVuIGxvY2FsZS4KKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRv
ciBpbXBsZW1lbnRpbmcgd29yZCBicmVha3MuCisgICAgICogV29yZEJyZWFrIGlzIHVzZWZ1bCBm
b3Igd29yZCBzZWxlY3Rpb24gKGV4LiBkb3VibGUgY2xpY2spCisgICAgICogQHBhcmFtIHdoZXJl
IHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyB0aGUgZXJyb3IgY29kZQorICAgICAq
IEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciB3b3JkLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2Rl
JiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9y
bWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVj
dGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVl
IG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlv
biwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMg
d2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dB
Uk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisg
ICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91
bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJO
SU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVz
ZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNr
IGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMg
dGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0Lgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9y
KiBVX0VYUE9SVDIKKyAgICBjcmVhdGVXb3JkSW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwg
VUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJh
dG9yIGZvciBsaW5lLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqIFJldHVy
bnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyBsaW5lIGJyZWFr
cy4gTGluZQorICAgICAqIGJyZWFrcyBhcmUgbG9naWNhbGx5IHBvc3NpYmxlIGxpbmUgYnJlYWtz
LCBhY3R1YWwgbGluZSBicmVha3MgYXJlCisgICAgICogdXN1YWxseSBkZXRlcm1pbmVkIGJhc2Vk
IG9uIGRpc3BsYXkgd2lkdGguCisgICAgICogTGluZUJyZWFrIGlzIHVzZWZ1bCBmb3Igd29yZCB3
cmFwcGluZyB0ZXh0LgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBw
YXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0
b3IgZm9yIGxpbmUtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFt
ZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisg
ICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3Qs
IHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJ
ZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hl
Y2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBz
dWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBh
IGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gn
IHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMK
KyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhl
IGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVz
dGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxk
IGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFu
ZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0
ZUxpbmVJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOwor
CisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIGNoYXJhY3Rlci1icmVh
a3MgdXNpbmcgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2Yg
YSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyBjaGFyYWN0ZXIgYnJlYWtzLgorICAgICAqIENo
YXJhY3RlciBicmVha3MgYXJlIGJvdW5kYXJpZXMgb2YgY29tYmluaW5nIGNoYXJhY3RlciBzZXF1
ZW5jZXMuCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0
YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3Ig
Y2hhcmFjdGVyLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0
ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAg
ICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5
b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYg
eW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNr
IGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3Vj
Y2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBm
YWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3
YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisg
ICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBk
ZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3Rl
ZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBi
ZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQg
aXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVD
aGFyYWN0ZXJJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMp
OworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIHNlbnRlbmNlLWJy
ZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxlCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBv
ZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIHNlbnRlbmNlIGJyZWFrcy4KKyAgICAgKiBA
cGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBlcnJvciBj
b2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciBzZW50ZW5jZS1icmVha3Mu
ICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0
dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0
aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjawor
ICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0
YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25h
bCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9V
U0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3
YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0
IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VT
SU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0
YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkg
b2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAgICog
VGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZv
ciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0
aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlU2VudGVuY2VJbnN0YW5jZShj
b25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAg
ICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIHRpdGxlLWNhc2luZyBicmVha3MgdXNpbmcgdGhl
IHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJ
dGVyYXRvciBpbXBsZW1lbnRpbmcgdGl0bGUgYnJlYWtzLgorICAgICAqIFRoZSBpdGVyYXRvciBy
ZXR1cm5lZCBsb2NhdGVzIHRpdGxlIGJvdW5kYXJpZXMgYXMgZGVzY3JpYmVkIGZvcgorICAgICAq
IFVuaWNvZGUgMy4yIG9ubHkuIEZvciBVbmljb2RlIDQuMCBhbmQgYWJvdmUgdGl0bGUgYm91bmRh
cnkgaXRlcmF0aW9uLAorICAgICAqIHBsZWFzZSB1c2UgV29yZCBCb3VuZGFyeSBpdGVyYXRvci57
QGxpbmsgI2NyZWF0ZVdvcmRJbnN0YW5jZSB9CisgICAgICoKKyAgICAgKiBAcGFyYW0gd2hlcmUg
dGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAq
IEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciB0aXRsZS1icmVha3MuICBUaGUgVUVycm9yQ29k
ZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZv
cm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1
Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1
ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRp
b24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRz
IHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19X
QVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgor
ICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZv
dW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FS
TklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1
c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFj
ayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25z
IHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRv
ciogVV9FWFBPUlQyCisgICAgY3JlYXRlVGl0bGVJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJl
LCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBzZXQgb2Yg
TG9jYWxlcyBmb3Igd2hpY2ggVGV4dEJvdW5kYXJpZXMgYXJlIGluc3RhbGxlZC4KKyAgICAgKiA8
cD48Yj5Ob3RlOjwvYj4gdGhpcyB3aWxsIG5vdCByZXR1cm4gbG9jYWxlcyBhZGRlZCB0aHJvdWdo
IHRoZSByZWdpc3RlcgorICAgICAqIGNhbGwuIFRvIHNlZSB0aGUgcmVnaXN0ZXJlZCBsb2NhbGVz
IHRvbywgdXNlIHRoZSBnZXRBdmFpbGFibGVMb2NhbGVzCisgICAgICogZnVuY3Rpb24gdGhhdCBy
ZXR1cm5zIGEgU3RyaW5nRW51bWVyYXRpb24gb2JqZWN0IDwvcD4KKyAgICAgKiBAcGFyYW0gY291
bnQgdGhlIG91dHB1dCBwYXJhbWV0ZXIgb2YgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBsb2Nh
bGUgbGlzdAorICAgICAqIEByZXR1cm4gYXZhaWxhYmxlIGxvY2FsZXMKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlKiBVX0VYUE9SVDIgZ2V0
QXZhaWxhYmxlTG9jYWxlcyhpbnQzMl90JiBjb3VudCk7CisKKyAgICAvKioKKyAgICAgKiBHZXQg
bmFtZSBvZiB0aGUgb2JqZWN0IGZvciB0aGUgZGVzaXJlZCBMb2NhbGUsIGluIHRoZSBkZXNpcmVk
IGxhbmdhdWdlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUgbXVzdCBiZSBmcm9tIGdldEF2
YWlsYWJsZUxvY2FsZXMuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgc3BlY2lmaWVzIHRo
ZSBkZXNpcmVkIGxvY2FsZSBmb3Igb3V0cHV0LgorICAgICAqIEBwYXJhbSBuYW1lIHRoZSBmaWxs
LWluIHBhcmFtZXRlciBvZiB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogVXNlcyBiZXN0IG1hdGNo
LgorICAgICAqIEByZXR1cm4gdXNlci1kaXNwbGF5YWJsZSBuYW1lCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVuaWNvZGVTdHJpbmcmIFVfRVhQT1JUMiBnZXRE
aXNwbGF5TmFtZShjb25zdCBMb2NhbGUmIG9iamVjdExvY2FsZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxlJiBkaXNwbGF5TG9jYWxlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBuYW1l
KTsKKworICAgIC8qKgorICAgICAqIEdldCBuYW1lIG9mIHRoZSBvYmplY3QgZm9yIHRoZSBkZXNp
cmVkIExvY2FsZSwgaW4gdGhlIGxhbmdhdWdlIG9mIHRoZQorICAgICAqIGRlZmF1bHQgbG9jYWxl
LgorICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUgbXVzdCBiZSBmcm9tIGdldE1hdGNoaW5nTG9j
YWxlcworICAgICAqIEBwYXJhbSBuYW1lIHRoZSBmaWxsLWluIHBhcmFtZXRlciBvZiB0aGUgcmV0
dXJuIHZhbHVlCisgICAgICogQHJldHVybiB1c2VyLWRpc3BsYXlhYmxlIG5hbWUKKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgVV9FWFBP
UlQyIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgb2JqZWN0TG9jYWxlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiBuYW1lKTsKKwor
ICAgIC8qKgorICAgICAqIERlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0eS4gVXNlIGNsb25lKCkgaW5z
dGVhZC4KKyAgICAgKgorICAgICAqIFRocmVhZCBzYWZlIGNsaWVudC1idWZmZXItYmFzZWQgY2xv
bmluZyBvcGVyYXRpb24KKyAgICAgKiAgICBEbyBOT1QgY2FsbCBkZWxldGUgb24gYSBzYWZlY2xv
bmUsIHNpbmNlICduZXcnIGlzIG5vdCB1c2VkIHRvIGNyZWF0ZSBpdC4KKyAgICAgKiBAcGFyYW0g
c3RhY2tCdWZmZXIgdXNlciBhbGxvY2F0ZWQgc3BhY2UgZm9yIHRoZSBuZXcgY2xvbmUuIElmIE5V
TEwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4KKyAgICAgKiBJZiBidWZmZXIgaXMgbm90
IGxhcmdlIGVub3VnaCwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4KKyAgICAgKiBAcGFy
YW0gQnVmZmVyU2l6ZSByZWZlcmVuY2UgdG8gc2l6ZSBvZiBhbGxvY2F0ZWQgc3BhY2UuCisgICAg
ICogSWYgQnVmZmVyU2l6ZSA9PSAwLCBhIHN1ZmZpY2llbnQgc2l6ZSBmb3IgdXNlIGluIGNsb25p
bmcgd2lsbAorICAgICAqIGJlIHJldHVybmVkICgncHJlLWZsaWdodGluZycpCisgICAgICogSWYg
QnVmZmVyU2l6ZSBpcyBub3QgZW5vdWdoIGZvciBhIHN0YWNrLWJhc2VkIHNhZmUgY2xvbmUsCisg
ICAgICogbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4KKyAgICAgKiBAcGFyYW0gc3RhdHVz
IHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIG9wZXJhdGlvbiB3ZW50IG9uIHNtb290aGx5IG9yIHRo
ZXJlIHdlcmUgZXJyb3JzCisgICAgICogIEFuIGluZm9ybWF0aW9uYWwgc3RhdHVzIHZhbHVlLCBV
X1NBRkVDTE9ORV9BTExPQ0FURURfRVJST1IsIGlzIHVzZWQgaWYgYW55IGFsbG9jYXRpb25zIHdl
cmUKKyAgICAgKiAgbmVjZXNzYXJ5LgorICAgICAqIEByZXR1cm4gcG9pbnRlciB0byB0aGUgbmV3
IGNsb25lCisgICAgICoKKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgNTIuIFVzZSBjbG9uZSgpIGlu
c3RlYWQuCisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yICogIGNyZWF0ZUJ1ZmZl
ckNsb25lKHZvaWQgKnN0YWNrQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQzMl90ICZCdWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKwor
I2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworICAgIC8qKgorICAgICAqICAgRGV0ZXJt
aW5lIHdoZXRoZXIgdGhlIEJyZWFrSXRlcmF0b3Igd2FzIGNyZWF0ZWQgaW4gdXNlciBtZW1vcnkg
YnkKKyAgICAgKiAgIGNyZWF0ZUJ1ZmZlckNsb25lKCksIGFuZCB0aHVzIHNob3VsZCBub3QgYmUg
ZGVsZXRlZC4gIFN1Y2ggb2JqZWN0cworICAgICAqICAgbXVzdCBiZSBjbG9zZWQgYnkgYW4gZXhw
bGljaXQgY2FsbCB0byB0aGUgZGVzdHJ1Y3RvciAobm90IGRlbGV0ZSkuCisgICAgICogQGRlcHJl
Y2F0ZWQgSUNVIDUyLiBBbHdheXMgZGVsZXRlIHRoZSBCcmVha0l0ZXJhdG9yLgorICAgICAqLwor
ICAgIGlubGluZSBVQm9vbCBpc0J1ZmZlckNsb25lKHZvaWQpOworCisjZW5kaWYgLyogVV9ISURF
X0RFUFJFQ0FURURfQVBJICovCisKKyNpZiAhVUNPTkZJR19OT19TRVJWSUNFCisgICAgLyoqCisg
ICAgICogUmVnaXN0ZXIgYSBuZXcgYnJlYWsgaXRlcmF0b3Igb2YgdGhlIGluZGljYXRlZCBraW5k
LCB0byB1c2UgaW4gdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBUaGUgYnJlYWsgaXRlcmF0b3Ig
d2lsbCBiZSBhZG9wdGVkLiAgQ2xvbmVzIG9mIHRoZSBpdGVyYXRvciB3aWxsIGJlIHJldHVybmVk
CisgICAgICogaWYgYSByZXF1ZXN0IGZvciBhIGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBnaXZlbiBr
aW5kIG1hdGNoZXMgb3IgZmFsbHMgYmFjayB0bworICAgICAqIHRoaXMgbG9jYWxlLgorICAgICAq
IEJlY2F1c2UgSUNVIG1heSBjaG9vc2UgdG8gY2FjaGUgQnJlYWtJdGVyYXRvcnMgaW50ZXJuYWxs
eSwgdGhpcyBtdXN0CisgICAgICogYmUgY2FsbGVkIGF0IGFwcGxpY2F0aW9uIHN0YXJ0dXAsIHBy
aW9yIHRvIGFueSBjYWxscyB0bworICAgICAqIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZVhYWEluc3Rh
bmNlIHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhhdmlvci4KKyAgICAgKiBAcGFyYW0gdG9BZG9wdCB0
aGUgQnJlYWtJdGVyYXRvciBpbnN0YW5jZSB0byBiZSBhZG9wdGVkCisgICAgICogQHBhcmFtIGxv
Y2FsZSB0aGUgTG9jYWxlIGZvciB3aGljaCB0aGlzIGluc3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVy
ZWQKKyAgICAgKiBAcGFyYW0ga2luZCB0aGUgdHlwZSBvZiBpdGVyYXRvciBmb3Igd2hpY2ggdGhp
cyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAgICogQHBhcmFtIHN0YXR1cyB0aGUg
aW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVjaWFsIG1lYW5pbmdzIGFyZSBhc3NpZ25lZAorICAg
ICAqIEByZXR1cm4gYSByZWdpc3RyeSBrZXkgdGhhdCBjYW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVy
IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBzdGF0
aWMgVVJlZ2lzdHJ5S2V5IFVfRVhQT1JUMiByZWdpc3Rlckluc3RhbmNlKEJyZWFrSXRlcmF0b3Iq
IHRvQWRvcHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
TG9jYWxlJiBsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VUJyZWFrSXRlcmF0b3JUeXBlIGtpbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFVucmVnaXN0
ZXIgYSBwcmV2aW91c2x5LXJlZ2lzdGVyZWQgQnJlYWtJdGVyYXRvciB1c2luZyB0aGUga2V5IHJl
dHVybmVkIGZyb20gdGhlCisgICAgICogcmVnaXN0ZXIgY2FsbC4gIEtleSBiZWNvbWVzIGludmFs
aWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBhZ2Fpbi4K
KyAgICAgKiBUaGUgQnJlYWtJdGVyYXRvciBjb3JyZXNwb25kaW5nIHRvIHRoZSBrZXkgd2lsbCBi
ZSBkZWxldGVkLgorICAgICAqIEJlY2F1c2UgSUNVIG1heSBjaG9vc2UgdG8gY2FjaGUgQnJlYWtJ
dGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBzaG91bGQKKyAgICAgKiBiZSBjYWxsZWQgZHVyaW5n
IGFwcGxpY2F0aW9uIHNodXRkb3duLCBhZnRlciBhbGwgY2FsbHMgdG8KKyAgICAgKiBCcmVha0l0
ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0byBhdm9pZCB1bmRlZmluZWQgYmVoYXZpb3IuCisg
ICAgICogQHBhcmFtIGtleSB0aGUgcmVnaXN0cnkga2V5IHJldHVybmVkIGJ5IGEgcHJldmlvdXMg
Y2FsbCB0byByZWdpc3Rlckluc3RhbmNlCisgICAgICogQHBhcmFtIHN0YXR1cyB0aGUgaW4vb3V0
IHN0YXR1cyBjb2RlLCBubyBzcGVjaWFsIG1lYW5pbmdzIGFyZSBhc3NpZ25lZAorICAgICAqIEBy
ZXR1cm4gVFJVRSBpZiB0aGUgaXRlcmF0b3IgZm9yIHRoZSBrZXkgd2FzIHN1Y2Nlc3NmdWxseSB1
bnJlZ2lzdGVyZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBzdGF0aWMg
VUJvb2wgVV9FWFBPUlQyIHVucmVnaXN0ZXIoVVJlZ2lzdHJ5S2V5IGtleSwgVUVycm9yQ29kZSYg
c3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIFN0cmluZ0VudW1lcmF0aW9uIG92
ZXIgdGhlIGxvY2FsZXMgYXZhaWxhYmxlIGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsLAorICAgICAq
IGluY2x1ZGluZyByZWdpc3RlcmVkIGxvY2FsZXMuCisgICAgICogQHJldHVybiBhIFN0cmluZ0Vu
dW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMgYXZhaWxhYmxlIGF0IHRoZSB0aW1lIG9mIHRoZSBj
YWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgc3RhdGljIFN0cmluZ0Vu
dW1lcmF0aW9uKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxlTG9jYWxlcyh2b2lkKTsKKyNlbmRpZgor
CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlIGZvciB0aGlzIGJyZWFrIGl0ZXJh
dG9yLiBUd28gZmxhdm9ycyBhcmUgYXZhaWxhYmxlOiB2YWxpZCBhbmQKKyAgICAgKiBhY3R1YWwg
bG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIExvY2FsZSBnZXRM
b2NhbGUoVUxvY0RhdGFMb2NhbGVUeXBlIHR5cGUsIFVFcnJvckNvZGUmIHN0YXR1cykgY29uc3Q7
CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKiBHZXQgdGhlIGxvY2FsZSBm
b3IgdGhpcyBicmVhayBpdGVyYXRvciBvYmplY3QuIFlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdmFs
aWQgYW5kIGFjdHVhbCBsb2NhbGUuCisgICAgICogIEBwYXJhbSB0eXBlIHR5cGUgb2YgdGhlIGxv
Y2FsZSB3ZSdyZSBsb29raW5nIGZvciAodmFsaWQgb3IgYWN0dWFsKQorICAgICAqICBAcGFyYW0g
c3RhdHVzIGVycm9yIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24KKyAgICAgKiAgQHJldHVybiB0aGUg
bG9jYWxlCisgICAgICogIEBpbnRlcm5hbAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKmdldExv
Y2FsZUlEKFVMb2NEYXRhTG9jYWxlVHlwZSB0eXBlLCBVRXJyb3JDb2RlJiBzdGF0dXMpIGNvbnN0
OworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKyAgICAvKioKKyAgICAgKiAg
U2V0IHRoZSBzdWJqZWN0IHRleHQgc3RyaW5nIHVwb24gd2hpY2ggdGhlIGJyZWFrIGl0ZXJhdG9y
IGlzIG9wZXJhdGluZworICAgICAqICB3aXRob3V0IGNoYW5naW5nIGFueSBvdGhlciBhc3BlY3Qg
b2YgdGhlIG1hdGNoaW5nIHN0YXRlLgorICAgICAqICBUaGUgbmV3IGFuZCBwcmV2aW91cyB0ZXh0
IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuCisgICAgICoKKyAgICAgKiAgVGhp
cyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGluIGVudmlyb25tZW50cyB3aGVyZSBJQ1Ug
aXMgb3BlcmF0aW5nIG9uCisgICAgICogIHN0cmluZ3MgdGhhdCBtYXkgbW92ZSBhcm91bmQgaW4g
bWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIG5vdGlmeWluZworICAgICAqICBJ
Q1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVuIHJlbG9jYXRlZCwgYW5kIHByb3ZpZGluZyBhIG5l
dyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICAgICogIHN0cmluZyBpbiBpdHMgbmV3IHBvc2l0aW9u
LgorICAgICAqCisgICAgICogIE5vdGUgdGhhdCB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50
YXRpb24gbmV2ZXIgY29waWVzIHRoZSB1bmRlcmx5aW5nIHRleHQKKyAgICAgKiAgb2YgYSBzdHJp
bmcgYmVpbmcgcHJvY2Vzc2VkLCBidXQgYWx3YXlzIG9wZXJhdGVzIGRpcmVjdGx5IG9uIHRoZSBv
cmlnaW5hbCB0ZXh0CisgICAgICogIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiBSZWZyZXNoaW5nIHNp
bXBseSBkcm9wcyB0aGUgcmVmZXJlbmNlcyB0byB0aGUgb2xkIHRleHQKKyAgICAgKiAgYW5kIHJl
cGxhY2VzIHRoZW0gd2l0aCByZWZlcmVuY2VzIHRvIHRoZSBuZXcuCisgICAgICoKKyAgICAgKiAg
Q2F1dGlvbjogIHRoaXMgZnVuY3Rpb24gaXMgbm9ybWFsbHkgdXNlZCBvbmx5IGJ5IHZlcnkgc3Bl
Y2lhbGl6ZWQsCisgICAgICogIHN5c3RlbS1sZXZlbCBjb2RlLiAgT25lIGV4YW1wbGUgdXNlIGNh
c2UgaXMgd2l0aCBnYXJiYWdlIGNvbGxlY3Rpb24gdGhhdCBtb3ZlcworICAgICAqICB0aGUgdGV4
dCBpbiBtZW1vcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5wdXQgICAgICBUaGUgbmV3ICht
b3ZlZCkgdGV4dCBzdHJpbmcuCisgICAgICogQHBhcmFtIHN0YXR1cyAgICAgUmVjZWl2ZXMgZXJy
b3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCisgICAgICogQHJldHVybiAgICAgICAgICAg
KnRoaXMKKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdmlydHVh
bCBCcmVha0l0ZXJhdG9yICZyZWZyZXNoSW5wdXRUZXh0KFVUZXh0ICppbnB1dCwgVUVycm9yQ29k
ZSAmc3RhdHVzKSA9IDA7CisKKyBwcml2YXRlOgorICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBi
dWlsZEluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBjb25zdCBjaGFyICp0eXBlLCBpbnQzMl90
IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIGNy
ZWF0ZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUm
IHN0YXR1cyk7CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIG1ha2VJbnN0YW5jZShjb25zdCBM
b2NhbGUmIGxvYywgaW50MzJfdCBraW5kLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgZnJp
ZW5kIGNsYXNzIElDVUJyZWFrSXRlcmF0b3JGYWN0b3J5OworICAgIGZyaWVuZCBjbGFzcyBJQ1VC
cmVha0l0ZXJhdG9yU2VydmljZTsKKworcHJvdGVjdGVkOgorICAgIC8vIERvIG5vdCBlbmNsb3Nl
IHByb3RlY3RlZCBkZWZhdWx0L2NvcHkgY29uc3RydWN0b3JzIHdpdGggI2lmbmRlZiBVX0hJREVf
SU5URVJOQUxfQVBJCisgICAgLy8gb3IgZWxzZSB0aGUgY29tcGlsZXIgd2lsbCBjcmVhdGUgYSBw
dWJsaWMgb25lcy4KKyAgICAvKiogQGludGVybmFsICovCisgICAgQnJlYWtJdGVyYXRvcigpOwor
ICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJhdG9yIChjb25zdCBCcmVha0l0ZXJh
dG9yICZvdGhlcikgOiBVT2JqZWN0KG90aGVyKSB7fQorICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAg
ICBCcmVha0l0ZXJhdG9yIChjb25zdCBMb2NhbGUmIHZhbGlkLCBjb25zdCBMb2NhbGUmIGFjdHVh
bCk7Citwcml2YXRlOgorCisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIGNoYXIgYWN0dWFsTG9j
YWxlW1VMT0NfRlVMTE5BTUVfQ0FQQUNJVFldOworICAgIGNoYXIgdmFsaWRMb2NhbGVbVUxPQ19G
VUxMTkFNRV9DQVBBQ0lUWV07CisKKyAgICAvKioKKyAgICAgKiBUaGUgYXNzaWdubWVudCBvcGVy
YXRvciBoYXMgbm8gcmVhbCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiBJdCdzIHByb3ZpZGVkIHRv
IG1ha2UgdGhlIGNvbXBpbGVyIGhhcHB5LiBEbyBub3QgY2FsbC4KKyAgICAgKi8KKyAgICBCcmVh
a0l0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3QgQnJlYWtJdGVyYXRvciYpOworfTsKKworI2lmbmRl
ZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworaW5saW5lIFVCb29sIEJyZWFrSXRlcmF0b3I6Omlz
QnVmZmVyQ2xvbmUoKQoreworICAgIHJldHVybiBGQUxTRTsKK30KKworI2VuZGlmIC8qIFVfSElE
RV9ERVBSRUNBVEVEX0FQSSAqLworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmIC8qICNpZiAh
VUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gKi8KKworI2VuZGlmIC8vIF9CUktJVEVSCisvL2Vv
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9jaGFyaXRlci5oIGIvU291cmNl
L1dURi9pY3UvdW5pY29kZS9jaGFyaXRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4ZDY1MDkwYTQwYTYwODU5
NTFjNzMzMDdmNzRhY2Y4M2JhMWJiYzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2lj
dS91bmljb2RlL2NoYXJpdGVyLmgKQEAgLTAsMCArMSw3MjIgQEAKKy8qCisqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor
KgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDExLCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1h
Y2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBDSEFSSVRFUl9ICisjZGVmaW5lIENIQVJJ
VEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91
b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIKKy8qKgorICogXGZpbGUKKyAq
IFxicmllZiBDKysgQVBJOiBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAqLworIAorVV9OQU1FU1BBQ0Vf
QkVHSU4KKy8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhhdCBkZWZpbmVzIGFuIEFQSSBmb3IgZm9y
d2FyZC1vbmx5IGl0ZXJhdGlvbgorICogb24gdGV4dCBvYmplY3RzLgorICogVGhpcyBpcyBhIG1p
bmltYWwgaW50ZXJmYWNlIGZvciBpdGVyYXRpb24gd2l0aG91dCByYW5kb20gYWNjZXNzCisgKiBv
ciBiYWNrd2FyZHMgaXRlcmF0aW9uLiBJdCBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBmb3Igd3JhcHBp
bmcKKyAqIHN0cmVhbXMgd2l0aCBjb252ZXJ0ZXJzIGludG8gYW4gb2JqZWN0IGZvciBjb2xsYXRp
b24gb3IKKyAqIG5vcm1hbGl6YXRpb24uCisgKgorICogPHA+Q2hhcmFjdGVycyBjYW4gYmUgYWNj
ZXNzZWQgaW4gdHdvIHdheXM6IGFzIGNvZGUgdW5pdHMgb3IgYXMKKyAqIGNvZGUgcG9pbnRzLgor
ICogVW5pY29kZSBjb2RlIHBvaW50cyBhcmUgMjEtYml0IGludGVnZXJzIGFuZCBhcmUgdGhlIHNj
YWxhciB2YWx1ZXMKKyAqIG9mIFVuaWNvZGUgY2hhcmFjdGVycy4gSUNVIHVzZXMgdGhlIHR5cGUg
VUNoYXIzMiBmb3IgdGhlbS4KKyAqIFVuaWNvZGUgY29kZSB1bml0cyBhcmUgdGhlIHN0b3JhZ2Ug
dW5pdHMgb2YgYSBnaXZlbgorICogVW5pY29kZS9VQ1MgVHJhbnNmb3JtYXRpb24gRm9ybWF0IChh
IGNoYXJhY3RlciBlbmNvZGluZyBzY2hlbWUpLgorICogV2l0aCBVVEYtMTYsIGFsbCBjb2RlIHBv
aW50cyBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aCBlaXRoZXIgb25lCisgKiBvciB0d28gY29kZSB1
bml0cyAoInN1cnJvZ2F0ZXMiKS4KKyAqIFN0cmluZyBzdG9yYWdlIGlzIHR5cGljYWxseSBiYXNl
ZCBvbiBjb2RlIHVuaXRzLCB3aGlsZSBwcm9wZXJ0aWVzCisgKiBvZiBjaGFyYWN0ZXJzIGFyZSB0
eXBpY2FsbHkgZGV0ZXJtaW5lZCB1c2luZyBjb2RlIHBvaW50IHZhbHVlcy4KKyAqIFNvbWUgcHJv
Y2Vzc2VzIG1heSBiZSBkZXNpZ25lZCB0byB3b3JrIHdpdGggc2VxdWVuY2VzIG9mIGNvZGUgdW5p
dHMsCisgKiBvciBpdCBtYXkgYmUga25vd24gdGhhdCBhbGwgY2hhcmFjdGVycyB0aGF0IGFyZSBp
bXBvcnRhbnQgdG8gYW4KKyAqIGFsZ29yaXRobSBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aCBzaW5n
bGUgY29kZSB1bml0cy4KKyAqIE90aGVyIHByb2Nlc3NlcyB3aWxsIG5lZWQgdG8gdXNlIHRoZSBj
b2RlIHBvaW50IGFjY2VzcyBmdW5jdGlvbnMuPC9wPgorICoKKyAqIDxwPkZvcndhcmRDaGFyYWN0
ZXJJdGVyYXRvciBwcm92aWRlcyBuZXh0UG9zdEluYygpIHRvIGFjY2VzcworICogYSBjb2RlIHVu
aXQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwgcG9zaXRpb24gaW50byB0aGUgdGV4dCBvYmplY3Qs
CisgKiBzaW1pbGFyIHRvIGEgPGNvZGU+cmV0dXJuIHRleHRbcG9zaXRpb24rK108L2NvZGU+Ljxi
cj4KKyAqIEl0IHByb3ZpZGVzIG5leHQzMlBvc3RJbmMoKSB0byBhY2Nlc3MgYSBjb2RlIHBvaW50
IGFuZCBhZHZhbmNlIGFuIGludGVybmFsCisgKiBwb3NpdGlvbi48L3A+CisgKgorICogPHA+bmV4
dDMyUG9zdEluYygpIGFzc3VtZXMgdGhhdCB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyB0aGF0IG9m
CisgKiB0aGUgYmVnaW5uaW5nIG9mIGEgY29kZSBwb2ludCwgaS5lLiwgb2YgaXRzIGZpcnN0IGNv
ZGUgdW5pdC4KKyAqIEFmdGVyIG5leHQzMlBvc3RJbmMoKSwgdGhpcyB3aWxsIGJlIHRydWUgYWdh
aW4uCisgKiBJbiBnZW5lcmFsLCBhY2Nlc3MgdG8gY29kZSB1bml0cyBhbmQgY29kZSBwb2ludHMg
aW4gdGhlIHNhbWUKKyAqIGl0ZXJhdGlvbiBsb29wIHNob3VsZCBub3QgYmUgbWl4ZWQuIEluIFVU
Ri0xNiwgaWYgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAqIGlzIG9uIGEgc2Vjb25kIGNvZGUgdW5p
dCAoTG93IFN1cnJvZ2F0ZSksIHRoZW4gb25seSB0aGF0IGNvZGUgdW5pdAorICogaXMgcmV0dXJu
ZWQgZXZlbiBieSBuZXh0MzJQb3N0SW5jKCkuPC9wPgorICoKKyAqIDxwPkZvciBpdGVyYXRpb24g
d2l0aCBlaXRoZXIgZnVuY3Rpb24sIHRoZXJlIGFyZSB0d28gd2F5cyB0bworICogY2hlY2sgZm9y
IHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbi4gV2hlbiB0aGVyZSBhcmUgbm8gbW9yZQorICogY2hh
cmFjdGVycyBpbiB0aGUgdGV4dCBvYmplY3Q6CisgKiA8dWw+CisgKiA8bGk+VGhlIGhhc05leHQo
KSBmdW5jdGlvbiByZXR1cm5zIEZBTFNFLjwvbGk+CisgKiA8bGk+bmV4dFBvc3RJbmMoKSBhbmQg
bmV4dDMyUG9zdEluYygpIHJldHVybiBET05FCisgKiAgICAgd2hlbiBvbmUgYXR0ZW1wdHMgdG8g
cmVhZCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgdGV4dCBvYmplY3QuPC9saT4KKyAqIDwvdWw+Cisg
KgorICogRXhhbXBsZToKKyAqIFxjb2RlIAorICogdm9pZCBmdW5jdGlvbjEoRm9yd2FyZENoYXJh
Y3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyMzIgYzsKKyAqICAgICB3aGlsZShpdC5o
YXNOZXh0KCkpIHsKKyAqICAgICAgICAgYz1pdC5uZXh0MzJQb3N0SW5jKCk7CisgKiAgICAgICAg
IC8vIHVzZSBjCisgKiAgICAgfQorICogfQorICoKKyAqIHZvaWQgZnVuY3Rpb24xKEZvcndhcmRD
aGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhciBjOworICogICAgIHdoaWxlKChj
PWl0Lm5leHRQb3N0SW5jKCkpIT1Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I6OkRPTkUpIHsKKyAq
ICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3A+
CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBGb3J3YXJk
Q2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgVU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqCisg
ICAgICogVmFsdWUgcmV0dXJuZWQgYnkgbW9zdCBvZiBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3In
cyBmdW5jdGlvbnMKKyAgICAgKiB3aGVuIHRoZSBpdGVyYXRvciBoYXMgcmVhY2hlZCB0aGUgbGlt
aXRzIG9mIGl0cyBpdGVyYXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgZW51bSB7IERPTkUgPSAweGZmZmYgfTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBEZXN0cnVj
dG9yLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+Rm9y
d2FyZENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0
cnVlIHdoZW4gYm90aCBpdGVyYXRvcnMgcmVmZXIgdG8gdGhlIHNhbWUKKyAgICAgKiBjaGFyYWN0
ZXIgaW4gdGhlIHNhbWUgY2hhcmFjdGVyLXN0b3JhZ2Ugb2JqZWN0LiAgCisgICAgICogQHBhcmFt
IHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgZXF1
YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRydWUgd2hlbiBib3RoIGl0ZXJhdG9ycyByZWZlciB0byB0
aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSBjaGFyYWN0ZXItc3RvcmFnZSBv
YmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29s
IG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdCA9
IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIGl0ZXJhdG9y
cyByZWZlciB0byBkaWZmZXJlbnQKKyAgICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0cywgb3IgdG8g
ZGlmZmVyZW50IGNoYXJhY3RlcnMgaW4gdGhlCisgICAgICogc2FtZSB0ZXh0LXN0b3JhZ2Ugb2Jq
ZWN0LiAgCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0
byBiZSBjb21wYXJlZCBmb3IgaW5lcXVhbGl0eQorICAgICAqIEByZXR1cm4gdHJ1ZSB3aGVuIHRo
ZSBpdGVyYXRvcnMgcmVmZXIgdG8gZGlmZmVyZW50CisgICAgICogdGV4dC1zdG9yYWdlIG9iamVj
dHMsIG9yIHRvIGRpZmZlcmVudCBjaGFyYWN0ZXJzIGluIHRoZQorICAgICAqIHNhbWUgdGV4dC1z
dG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGlu
ZSBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkg
Y29uc3Q7CisgICAgCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0
aGlzIGl0ZXJhdG9yLiAgCisgICAgICogQHJldHVybiB0aGUgaGFzaCBjb2RlLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBoYXNoQ29kZSh2b2lk
KSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIFVDbGFzc0lEIGZv
ciB0aGlzIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAoInBvb3IgbWFuJ3MKKyAgICAgKiBSVFRJ
IikuPFA+IERlc3BpdGUgdGhlIGZhY3QgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIHB1YmxpYywKKyAg
ICAgKiBETyBOT1QgQ09OU0lERVIgSVQgUEFSVCBPRiBDSEFSQUNURVJJVEVSQVRPUidTIEFQSSEg
CisgICAgICogQHJldHVybiBhIFVDbGFzc0lEIGZvciB0aGlzIEZvcndhcmRDaGFyYWN0ZXJJdGVy
YXRvciAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFz
c0lEIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0ID0gMDsKKyAgICAKKyAgICAvKioKKyAg
ICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgdW5pdCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNl
cyB0byB0aGUgbmV4dCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisg
ICAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUg
Y29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBj
dXJyZW50IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dFBvc3RJbmModm9pZCkgPSAwOworICAgIAorICAgIC8q
KgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSBwb2ludCBmb3IgcmV0dXJuaW5nIGFuZCBh
ZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAgICogaW4gdGhlIGl0ZXJhdGlvbiBy
YW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBu
byBtb3JlIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgICAqIEByZXR1
cm4gdGhlIGN1cnJlbnQgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyUG9zdEluYyh2b2lkKSA9IDA7Cisg
ICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBj
b2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQg
cG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBUaGlzIGlzIHVzZWQgd2l0
aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMoKSBpbiBmb3J3YXJkCisgICAgICogaXRl
cmF0aW9uLgorICAgICAqIEByZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUg
dW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAgKiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3Np
dGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc05leHQoKSA9IDA7CisgICAgCitwcm90
ZWN0ZWQ6CisgICAgLyoqIERlZmF1bHQgY29uc3RydWN0b3IgdG8gYmUgb3ZlcnJpZGRlbiBpbiB0
aGUgaW1wbGVtZW50aW5nIGNsYXNzLiBAc3RhYmxlIElDVSAyLjAqLworICAgIEZvcndhcmRDaGFy
YWN0ZXJJdGVyYXRvcigpOworICAgIAorICAgIC8qKiBDb3B5IGNvbnN0cnVjdG9yIHRvIGJlIG92
ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGluZyBjbGFzcy4gQHN0YWJsZSBJQ1UgMi4wKi8KKyAg
ICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
ICZvdGhlcik7CisgICAgCisgICAgLyoqCisgICAgICogQXNzaWdubWVudCBvcGVyYXRvciB0byBi
ZSBvdmVycmlkZGVuIGluIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3MuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZvcGVyYXRvcj0o
Y29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJikgeyByZXR1cm4gKnRoaXM7IH0KK307CisK
Ky8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhhdCBkZWZpbmVzIGFuIEFQSSBmb3IgaXRlcmF0aW9u
CisgKiBvbiB0ZXh0IG9iamVjdHMuCisgKiBUaGlzIGlzIGFuIGludGVyZmFjZSBmb3IgZm9yd2Fy
ZCBhbmQgYmFja3dhcmQgaXRlcmF0aW9uCisgKiBhbmQgcmFuZG9tIGFjY2VzcyBpbnRvIGEgdGV4
dCBvYmplY3QuCisgKgorICogPHA+VGhlIEFQSSBwcm92aWRlcyBiYWNrd2FyZCBjb21wYXRpYmls
aXR5IHRvIHRoZSBKYXZhIGFuZCBvbGRlciBJQ1UKKyAqIENoYXJhY3Rlckl0ZXJhdG9yIGNsYXNz
ZXMgYnV0IGV4dGVuZHMgdGhlbSBzaWduaWZpY2FudGx5OgorICogPG9sPgorICogPGxpPkNoYXJh
Y3Rlckl0ZXJhdG9yIGlzIG5vdyBhIHN1YmNsYXNzIG9mIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRv
ci48L2xpPgorICogPGxpPldoaWxlIHRoZSBvbGQgQVBJIGZ1bmN0aW9ucyBwcm92aWRlZCBmb3J3
YXJkIGl0ZXJhdGlvbiB3aXRoCisgKiAgICAgInByZS1pbmNyZW1lbnQiIHNlbWFudGljcywgdGhl
IG5ldyBvbmUgYWxzbyBwcm92aWRlcyBmdW5jdGlvbnMKKyAqICAgICB3aXRoICJwb3N0LWluY3Jl
bWVudCIgc2VtYW50aWNzLiBUaGV5IGFyZSBtb3JlIGVmZmljaWVudCBhbmQgc2hvdWxkCisgKiAg
ICAgYmUgdGhlIHByZWZlcnJlZCBpdGVyYXRvciBmdW5jdGlvbnMgZm9yIG5ldyBpbXBsZW1lbnRh
dGlvbnMuCisgKiAgICAgVGhlIGJhY2t3YXJkIGl0ZXJhdGlvbiBhbHdheXMgaGFkICJwcmUtZGVj
cmVtZW50IiBzZW1hbnRpY3MsIHdoaWNoCisgKiAgICAgYXJlIGVmZmljaWVudC48L2xpPgorICog
PGxpPkp1c3QgbGlrZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IsIGl0IHByb3ZpZGVzIGFjY2Vz
cyB0bworICogICAgIGJvdGggY29kZSB1bml0cyBhbmQgY29kZSBwb2ludHMuIENvZGUgcG9pbnQg
YWNjZXNzIHZlcnNpb25zIGFyZSBhdmFpbGFibGUKKyAqICAgICBmb3IgdGhlIG9sZCBhbmQgdGhl
IG5ldyBpdGVyYXRpb24gc2VtYW50aWNzLjwvbGk+CisgKiA8bGk+VGhlcmUgYXJlIG5ldyBmdW5j
dGlvbnMgZm9yIHNldHRpbmcgYW5kIG1vdmluZyB0aGUgY3VycmVudCBwb3NpdGlvbgorICogICAg
IHdpdGhvdXQgcmV0dXJuaW5nIGEgY2hhcmFjdGVyLCBmb3IgZWZmaWNpZW5jeS48L2xpPgorICog
PC9vbD4KKyAqCisgKiBTZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIGZvciBleGFtcGxlcyBm
b3IgdXNpbmcgdGhlIG5ldyBmb3J3YXJkIGl0ZXJhdGlvbgorICogZnVuY3Rpb25zLiBGb3IgYmFj
a3dhcmQgaXRlcmF0aW9uLCB0aGVyZSBpcyBhbHNvIGEgaGFzUHJldmlvdXMoKSBmdW5jdGlvbgor
ICogdGhhdCBjYW4gYmUgdXNlZCBhbmFsb2dvdXNseSB0byBoYXNOZXh0KCkuCisgKiBUaGUgb2xk
IGZ1bmN0aW9ucyB3b3JrIGFzIGJlZm9yZSBhbmQgYXJlIHNob3duIGJlbG93LjwvcD4KKyAqCisg
KiA8cD5FeGFtcGxlcyBmb3Igc29tZSBvZiB0aGUgbmV3IGZ1bmN0aW9uczo8L3A+CisgKgorICog
Rm9yd2FyZCBpdGVyYXRpb24gd2l0aCBoYXNOZXh0KCk6CisgKiBcY29kZQorICogdm9pZCBmb3J3
YXJkMShDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhcjMyIGM7CisgKiAgICAg
Zm9yKGl0LnNldFRvU3RhcnQoKTsgaXQuaGFzTmV4dCgpOykgeworICogICAgICAgICBjPWl0Lm5l
eHQzMlBvc3RJbmMoKTsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICB9CisgKiAgfQorICog
XGVuZGNvZGUKKyAqIEZvcndhcmQgaXRlcmF0aW9uIG1vcmUgc2ltaWxhciB0byBsb29wcyB3aXRo
IHRoZSBvbGQgZm9yd2FyZCBpdGVyYXRpb24sCisgKiBzaG93aW5nIGEgd2F5IHRvIGNvbnZlcnQg
c2ltcGxlIGZvcigpIGxvb3BzOgorICogXGNvZGUKKyAqIHZvaWQgZm9yd2FyZDIoQ2hhcmFjdGVy
SXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAgICBmb3IoYz1pdC5maXJzdFBv
c3RJbmMoKTsgYyE9Q2hhcmFjdGVySXRlcmF0b3I6OkRPTkU7IGM9aXQubmV4dFBvc3RJbmMoKSkg
eworICogICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICogfQorICogXGVuZGNvZGUKKyAq
IEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIHNldFRvRW5kKCkgYW5kIGhhc1ByZXZpb3VzKCk6Cisg
KiBcY29kZQorICogIHZvaWQgYmFja3dhcmQxKENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICog
ICAgICBVQ2hhcjMyIGM7CisgKiAgICAgIGZvcihpdC5zZXRUb0VuZCgpOyBpdC5oYXNQcmV2aW91
cygpOykgeworICogICAgICAgICBjPWl0LnByZXZpb3VzMzIoKTsKKyAqICAgICAgICAgIC8vIHVz
ZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogQmFja3dhcmQgaXRlcmF0aW9u
IHdpdGggYSBtb3JlIHRyYWRpdGlvbmFsIGZvcigpIGxvb3A6CisgKiBcY29kZQorICogdm9pZCBi
YWNrd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAg
ICBmb3IoYz1pdC5sYXN0KCk7IGMhPUNoYXJhY3Rlckl0ZXJhdG9yOjpET05FOyBjPWl0LnByZXZp
b3VzKCkpIHsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRj
b2RlCisgKgorICogRXhhbXBsZSBmb3IgcmFuZG9tIGFjY2VzczoKKyAqIFxjb2RlCisgKiAgdm9p
ZCByYW5kb20oQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgIC8vIHNldCB0byB0aGUg
dGhpcmQgY29kZSBwb2ludCBmcm9tIHRoZSBiZWdpbm5pbmcKKyAqICAgICAgaXQubW92ZTMyKDMs
IENoYXJhY3Rlckl0ZXJhdG9yOjprU3RhcnQpOworICogICAgICAvLyBnZXQgYSBjb2RlIHBvaW50
IGZyb20gaGVyZSB3aXRob3V0IG1vdmluZyB0aGUgcG9zaXRpb24KKyAqICAgICAgVUNoYXIzMiBj
PWl0LmN1cnJlbnQzMigpOworICogICAgICAvLyBnZXQgdGhlIHBvc2l0aW9uCisgKiAgICAgIGlu
dDMyX3QgcG9zPWl0LmdldEluZGV4KCk7CisgKiAgICAgIC8vIGdldCB0aGUgcHJldmlvdXMgY29k
ZSB1bml0CisgKiAgICAgIFVDaGFyIHU9aXQucHJldmlvdXMoKTsKKyAqICAgICAgLy8gbW92ZSBi
YWNrIG9uZSBtb3JlIGNvZGUgdW5pdAorICogICAgICBpdC5tb3ZlKC0xLCBDaGFyYWN0ZXJJdGVy
YXRvcjo6a0N1cnJlbnQpOworICogICAgICAvLyBzZXQgdGhlIHBvc2l0aW9uIGJhY2sgdG8gd2hl
cmUgaXQgd2FzCisgKiAgICAgIC8vIGFuZCByZWFkIHRoZSBzYW1lIGNvZGUgcG9pbnQgYyBhbmQg
bW92ZSBiZXlvbmQgaXQKKyAqICAgICAgaXQuc2V0SW5kZXgocG9zKTsKKyAqICAgICAgaWYoYyE9
aXQubmV4dDMyUG9zdEluYygpKSB7CisgKiAgICAgICAgICBleGl0KDEpOyAvLyBDaGFyYWN0ZXJJ
dGVyYXRvciBpbmNvbnNpc3RlbnQKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKgor
ICogPHA+RXhhbXBsZXMsIGVzcGVjaWFsbHkgZm9yIHRoZSBvbGQgQVBJOjwvcD4KKyAqCisgKiBG
dW5jdGlvbiBwcm9jZXNzaW5nIGNoYXJhY3RlcnMsIGluIHRoaXMgZXhhbXBsZSBzaW1wbGUgb3V0
cHV0CisgKiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIHByb2Nlc3NDaGFyKCBVQ2hhciBjICkK
KyAqICB7CisgKiAgICAgIGNvdXQgPDwgIiAiIDw8IGM7CisgKiAgfQorICogXGVuZGNvZGUKKyAq
IDwvcHJlPgorICogVHJhdmVyc2UgdGhlIHRleHQgZnJvbSBzdGFydCB0byBmaW5pc2gKKyAqIDxw
cmU+IAorICogXGNvZGUKKyAqICB2b2lkIHRyYXZlcnNlRm9yd2FyZChDaGFyYWN0ZXJJdGVyYXRv
ciYgaXRlcikKKyAqICB7CisgKiAgICAgIGZvcihVQ2hhciBjID0gaXRlci5maXJzdCgpOyBjICE9
IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMgPSBpdGVyLm5leHQoKSkgeworICogICAgICAgICAg
cHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+
CisgKiBUcmF2ZXJzZSB0aGUgdGV4dCBiYWNrd2FyZHMsIGZyb20gZW5kIHRvIHN0YXJ0CisgKiA8
cHJlPgorICogXGNvZGUKKyAqICB2b2lkIHRyYXZlcnNlQmFja3dhcmQoQ2hhcmFjdGVySXRlcmF0
b3ImIGl0ZXIpCisgKiAgeworICogICAgICBmb3IoVUNoYXIgYyA9IGl0ZXIubGFzdCgpOyBjICE9
IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMgPSBpdGVyLnByZXZpb3VzKCkpIHsKKyAqICAgICAg
ICAgIHByb2Nlc3NDaGFyKGMpOworICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwv
cHJlPgorICogVHJhdmVyc2UgYm90aCBmb3J3YXJkIGFuZCBiYWNrd2FyZCBmcm9tIGEgZ2l2ZW4g
cG9zaXRpb24gaW4gdGhlIHRleHQuIAorICogQ2FsbHMgdG8gbm90Qm91bmRhcnkoKSBpbiB0aGlz
IGV4YW1wbGUgcmVwcmVzZW50cyBzb21lIGFkZGl0aW9uYWwgc3RvcHBpbmcgY3JpdGVyaWEuCisg
KiA8cHJlPgorICogXGNvZGUKKyAqIHZvaWQgdHJhdmVyc2VPdXQoQ2hhcmFjdGVySXRlcmF0b3Im
IGl0ZXIsIGludDMyX3QgcG9zKQorICogeworICogICAgICBVQ2hhciBjOworICogICAgICBmb3Ig
KGMgPSBpdGVyLnNldEluZGV4KHBvcyk7CisgKiAgICAgIGMgIT0gQ2hhcmFjdGVySXRlcmF0b3Iu
RE9ORSAmJiAoVW5pY29kZTo6aXNMZXR0ZXIoYykgfHwgVW5pY29kZTo6aXNEaWdpdChjKSk7Cisg
KiAgICAgICAgICBjID0gaXRlci5uZXh0KCkpIHt9CisgKiAgICAgIGludDMyX3QgZW5kID0gaXRl
ci5nZXRJbmRleCgpOworICogICAgICBmb3IgKGMgPSBpdGVyLnNldEluZGV4KHBvcyk7CisgKiAg
ICAgICAgICBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYgKFVuaWNvZGU6OmlzTGV0dGVy
KGMpIHx8IFVuaWNvZGU6OmlzRGlnaXQoYykpOworICogICAgICAgICAgYyA9IGl0ZXIucHJldmlv
dXMoKSkge30KKyAqICAgICAgaW50MzJfdCBzdGFydCA9IGl0ZXIuZ2V0SW5kZXgoKSArIDE7Cisg
KiAgCisgKiAgICAgIGNvdXQgPDwgInN0YXJ0OiAiIDw8IHN0YXJ0IDw8ICIgZW5kOiAiIDw8IGVu
ZCA8PCBlbmRsOworICogICAgICBmb3IgKGMgPSBpdGVyLnNldEluZGV4KHN0YXJ0KTsgaXRlci5n
ZXRJbmRleCgpIDwgZW5kOyBjID0gaXRlci5uZXh0KCkgKSB7CisgKiAgICAgICAgICBwcm9jZXNz
Q2hhcihjKTsKKyAqICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogQ3Jl
YXRpbmcgYSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBhbmQgY2FsbGluZyB0aGUgdGVzdCBmdW5j
dGlvbnMKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZvaWQgQ2hhcmFjdGVySXRlcmF0b3JfRXhh
bXBsZSggdm9pZCApCisgKiAgIHsKKyAqICAgICAgIGNvdXQgPDwgZW5kbCA8PCAiPT09PT0gQ2hh
cmFjdGVySXRlcmF0b3JfRXhhbXBsZTogPT09PT0iIDw8IGVuZGw7CisgKiAgICAgICBVbmljb2Rl
U3RyaW5nIHRleHQoIkVpbiBrbGVpbmVyIFNhdHouIik7CisgKiAgICAgICBTdHJpbmdDaGFyYWN0
ZXJJdGVyYXRvciBpdGVyYXRvcih0ZXh0KTsKKyAqICAgICAgIGNvdXQgPDwgIi0tLS0tIHRyYXZl
cnNlRm9yd2FyZDogLS0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZUZvcndh
cmQoIGl0ZXJhdG9yICk7CisgKiAgICAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0g
dHJhdmVyc2VCYWNrd2FyZDogLS0tLS0tLS0tLSIgPDwgZW5kbDsKKyAqICAgICAgIHRyYXZlcnNl
QmFja3dhcmQoIGl0ZXJhdG9yICk7CisgKiAgICAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAi
LS0tLS0gdHJhdmVyc2VPdXQ6IC0tLS0tLS0tLS0tLS0tLSIgPDwgZW5kbDsKKyAqICAgICAgIHRy
YXZlcnNlT3V0KCBpdGVyYXRvciwgNyApOworICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwg
PDwgIi0tLS0tIiA8PCBlbmRsOworICogICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKgor
ICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBDaGFyYWN0ZXJJdGVy
YXRvciA6IHB1YmxpYyBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGljOgorICAgIC8q
KgorICAgICAqIE9yaWdpbiBlbnVtZXJhdGlvbiBmb3IgdGhlIG1vdmUoKSBhbmQgbW92ZTMyKCkg
ZnVuY3Rpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGVudW0gRU9y
aWdpbiB7IGtTdGFydCwga0N1cnJlbnQsIGtFbmQgfTsKKworICAgIC8qKgorICAgICAqIERlc3Ry
dWN0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+Q2hh
cmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBwb2ludGVyIHRv
IGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yIG9mIHRoZSBzYW1lCisgICAgICogY29uY3JldGUgY2xh
c3MgYXMgdGhpcyBvbmUsIGFuZCByZWZlcnJpbmcgdG8gdGhlIHNhbWUKKyAgICAgKiBjaGFyYWN0
ZXIgaW4gdGhlIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdCBhcyB0aGlzIG9uZS4gIFRoZQorICAg
ICAqIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgdGhlIG5ldyBjbG9uZS4gIAor
ICAgICAqIEByZXR1cm4gYSBwb2ludGVyIHRvIGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRv
ciogY2xvbmUodm9pZCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICAgKiBpdGVy
YXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgICAqIFRoaXMgY2Fu
IGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4dCgpLgorICAgICAqIEByZXR1
cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdCh2
b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0
byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0
dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgICAqIHRvIHRo
ZSBzZWNvbmQgY29kZSB1bml0LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQo
KQorICAgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHRQb3N0SW5jKCkuCisgICAg
ICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAg
IGZpcnN0UG9zdEluYyh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9y
IHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlv
biByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsCisgICAgICogVGhpcyBjYW4gYmUg
dXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzIoKS4KKyAgICAgKiBOb3RlIHRo
YXQgYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLCBiZWdpbm5pbmcgd2l0aCwKKyAg
ICAgKiBlLmcuLCBzZXRUb1N0YXJ0KCkgb3IgZmlyc3RQb3N0SW5jKCksIGlzIG1vcmUgZWZmaWNp
ZW50LgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlv
biByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVD
aGFyMzIgICAgICAgZmlyc3QzMih2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRo
ZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAg
KiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LCBhbmQgbW92ZXMgdGhl
IHBvc2l0aW9uCisgICAgICogdG8gdGhlIHNlY29uZCBjb2RlIHBvaW50LiBUaGlzIGlzIGFuIGFs
dGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3
aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50
IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzJQb3N0SW5jKHZvaWQpOworCisgICAg
LyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUg
dW5pdCBvciBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZS4gVGhpcyBj
YW4gYmUgdXNlZCB0byBiZWdpbiBhIGZvcndhcmQKKyAgICAgKiBpdGVyYXRpb24gd2l0aCBuZXh0
UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGFydCBw
b3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgc2V0VG9TdGFydCgpOworCisgICAgLyoqCisg
ICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSB1bml0IGlu
IGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQu
CisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2
aW91cygpLgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSB1bml0LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBsYXN0KHZvaWQp
ID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVm
ZXIgdG8gdGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2Us
IGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8g
YmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMzMigpLgorICAgICAqIEByZXR1cm4gdGhl
IGxhc3QgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMyKHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAq
IFNldHMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBlbmQgb2YgaXRzIGl0ZXJhdGlvbiByYW5nZSwganVz
dCBiZWhpbmQKKyAgICAgKiB0aGUgbGFzdCBjb2RlIHVuaXQgb3IgY29kZSBwb2ludC4gVGhpcyBj
YW4gYmUgdXNlZCB0byBiZWdpbiBhIGJhY2t3YXJkCisgICAgICogaXRlcmF0aW9uIHdpdGggcHJl
dmlvdXMoKSBvciBwcmV2aW91czMyKCkuCisgICAgICogQHJldHVybiB0aGUgZW5kIHBvc2l0aW9u
IG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBpbmxpbmUgaW50MzJfdCAgICBzZXRUb0VuZCgpOworCisgICAgLyoqCisgICAgICogU2V0
cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0Cisg
ICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVycyB0bywg
YW5kCisgICAgICogcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4gIAorICAgICAqIEBwYXJhbSBwb3Np
dGlvbiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmpl
Y3QKKyAgICAgKiBAcmV0dXJuIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgc2V0SW5k
ZXgoaW50MzJfdCBwb3NpdGlvbikgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgICAq
IHRoYXQgY29udGFpbnMgdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAgICogaW4gdGhl
IHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAgICog
cmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisgICAgICogVGhlIGN1cnJlbnQgcG9zaXRpb24gaXMg
YWRqdXN0ZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgICAqIChpdHMg
Zmlyc3QgY29kZSB1bml0KS4KKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlICJwb3NpdGlvbiIt
dGggY29kZSB1bml0IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHJldHVybiB0
aGUgInBvc2l0aW9uIi10aCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBzZXRJbmRleDMyKGludDMyX3QgcG9zaXRp
b24pID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvZGUgdW5pdCB0aGUgaXRl
cmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4gCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBj
b2RlIHVuaXQuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
VUNoYXIgICAgICAgICBjdXJyZW50KHZvaWQpIGNvbnN0ID0gMDsKKyAgICAgICAgCisgICAgLyoq
CisgICAgICogUmV0dXJucyB0aGUgY29kZSBwb2ludCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJl
ZmVycyB0by4gIAorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSBwb2ludC4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgY3Vy
cmVudDMyKHZvaWQpIGNvbnN0ID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogQWR2YW5j
ZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAo
dG93YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJl
IGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4K
KyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dCh2b2lkKSA9IDA7Cisg
ICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQg
aW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5kZXgoKSksIGFuZCBy
ZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29k
ZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICogTm90ZSB0aGF0IGl0ZXJh
dGlvbiB3aXRoICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MgaXMgbGVzcworICAgICAqIGVmZmlj
aWVudCB0aGFuIGl0ZXJhdGlvbiB3aXRoICJwb3N0LWluY3JlbWVudCIgc2VtYW50aWNzCisgICAg
ICogdGhhdCBpcyBwcm92aWRlZCBieSBuZXh0MzJQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0
aGUgbmV4dCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzIodm9pZCkgPSAwOworICAgICAgICAKKyAgICAv
KioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSB1bml0IGluIHRoZSBpdGVy
YXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRo
YXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRzIHRv
IHJldHVybiwgcmV0dXJucyBET05FLiAgCisgICAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29k
ZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNo
YXIgICAgICAgICBwcmV2aW91cyh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNl
cyB0byB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAg
ICogKHRvd2FyZCBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJ
ZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJu
cyBET05FLiAKKyAgICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50LiAKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgcHJl
dmlvdXMzMih2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRo
ZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAgKiBiZWZvcmUg
dGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBUaGlz
IGlzIHVzZWQgd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIoKSBpbiBiYWNrd2FyZAorICAg
ICAqIGl0ZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3Jl
IGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9z
aXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJuIFRSVUUgb3RoZXJ3aXNlLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhh
c1ByZXZpb3VzKCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyBp
bmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhl
IGNoYXJhY3RlciByZXR1cm5lZCBieSBmaXJzdCgpLiAgU2luY2UgaXQncworICAgICAqIHBvc3Np
YmxlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVzIGFjcm9zcyBvbmx5CisgICAg
ICogcGFydCBvZiBhIHRleHQtc3RvcmFnZSBvYmplY3QsIHRoaXMgbnVtYmVyIGlzbid0CisgICAg
ICogbmVjZXNzYXJpbHkgMC4gIAorICAgICAqIEByZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGlu
IHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFj
dGVyIHJldHVybmVkIGJ5IGZpcnN0KCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgaW5saW5lIGludDMyX3QgICAgICAgc3RhcnRJbmRleCh2b2lkKSBjb25zdDsKKyAgICAg
ICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5k
ZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIHBvc2l0aW9uIGltbWVk
aWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVyCisgICAgICogcmV0dXJuZWQgYnkgbGFzdCgpLiAg
CisgICAgICogQHJldHVybiB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0
LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5IEJFWU9O
RCB0aGUgY2hhcmFjdGVyCisgICAgICogcmV0dXJuZWQgYnkgbGFzdCgpLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgICAgIGVuZEluZGV4KHZv
aWQpIGNvbnN0OworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmlj
IGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0
aGUgY2hhcmFjdGVyIHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvCisgICAgICogKGku
ZS4sIHRoZSBjaGFyYWN0ZXIgcmV0dXJuZWQgYnkgY3VycmVudCgpKS4gIAorICAgICAqIEByZXR1
cm4gdGhlIG51bWJlcmljIGluZGV4IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IG9mIAorICAg
ICAqIHRoZSBjaGFyYWN0ZXIgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBnZXRJ
bmRleCh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxlbmd0aCBv
ZiB0aGUgZW50aXJlIHRleHQgaW4gdGhlIHVuZGVybHlpbmcKKyAgICAgKiB0ZXh0LXN0b3JhZ2Ug
b2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgZW50aXJlIHRleHQgaW4g
dGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBpbmxpbmUgaW50MzJfdCAgICAgICAgICAgZ2V0TGVuZ3RoKCkgY29uc3Q7CisKKyAgICAv
KioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3Rh
cnQgb3IgZW5kIG9mIHRoZQorICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8g
dGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgICAqIFRoZSBtb3ZlbWVudCBpcyBleHBy
ZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHVuaXRzIGZvcndhcmQKKyAgICAgKiBvciBiYWNrd2Fy
ZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAgICogQHBh
cmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVs
dGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJk
LgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJy
ZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUoaW50MzJf
dCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pID0gMDsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRo
ZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisg
ICAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBwb3NpdGlv
biBpdHNlbGYuCisgICAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9m
IGNvZGUgcG9pbnRzIGZvcndhcmQKKyAgICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEg
cG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3Np
dGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsK
KyAgICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAgICAqIEBwYXJhbSBv
cmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgICAq
IEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUzMihpbnQzMl90IGRlbHRhLCBFT3JpZ2lu
IG9yaWdpbikgPSAwOworCisgICAgLyoqCisgICAgICogQ29waWVzIHRoZSB0ZXh0IHVuZGVyIGl0
ZXJhdGlvbiBpbnRvIHRoZSBVbmljb2RlU3RyaW5nCisgICAgICogcmVmZXJyZWQgdG8gYnkgInJl
c3VsdCIuICAKKyAgICAgKiBAcGFyYW0gcmVzdWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUgdGV4
dCB1bmRlciBpdGVyYXRpb24uICAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNvZGVTdHJpbmcmICByZXN1bHQp
ID0gMDsKKworcHJvdGVjdGVkOgorICAgIC8qKgorICAgICAqIEVtcHR5IGNvbnN0cnVjdG9yLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKCk7
CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGgg
ZmllbGQgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3QgbGVuZ3RoKTsKKworICAgIC8qKgorICAg
ICAqIENvbnN0cnVjdG9yLCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0aCBhbmQgcG9zaXRpb24gZmll
bGRzIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0aCwgaW50MzJfdCBwb3NpdGlvbik7
CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGgs
IHN0YXJ0LCBlbmQsIGFuZCBwb3NpdGlvbiBmaWVsZHMgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMy
X3QgbGVuZ3RoLCBpbnQzMl90IHRleHRCZWdpbiwgaW50MzJfdCB0ZXh0RW5kLCBpbnQzMl90IHBv
c2l0aW9uKTsKKyAgCisgICAgLyoqCisgICAgICogQ29weSBjb25zdHJ1Y3Rvci4KKyAgICAgKgor
ICAgICAqIEBwYXJhbSB0aGF0IFRoZSBDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihjb25z
dCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBBc3NpZ25tZW50
IG9wZXJhdG9yLiAgU2V0cyB0aGlzIENoYXJhY3Rlckl0ZXJhdG9yIHRvIGhhdmUgdGhlIHNhbWUg
YmVoYXZpb3IsCisgICAgICogYXMgdGhlIG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRo
YXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHBhc3NlZCBpbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBu
ZXdseSBzZXQgQ2hhcmFjdGVySXRlcmF0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IgJm9wZXJhdG9yPShjb25zdCBDaGFyYWN0ZXJJdGVy
YXRvciAmdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNzIHRleHQgbGVuZ3RoIGZp
ZWxkLgorICAgICAqIE5lY2Vzc2FyeSB0aGlzIGZvciBjb3JyZWN0IGdldFRleHQoKSBhbmQgaGFz
aENvZGUoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90IHRl
eHRMZW5ndGg7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0aGUgY3Vy
cmVudCBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQz
Ml90ICBwb3M7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0aGUgc3Rh
cnQgb2YgdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBpbnQzMl90ICBiZWdpbjsKKworICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgZmll
bGQgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBlbmQ7Cit9OworCitpbmxpbmUgVUJvb2wKK0Zv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvcjo6b3BlcmF0b3IhPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVy
SXRlcmF0b3ImIHRoYXQpIGNvbnN0IHsKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0odGhhdCk7Cit9
CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6c2V0VG9TdGFydCgpIHsKKyAg
ICByZXR1cm4gbW92ZSgwLCBrU3RhcnQpOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVy
SXRlcmF0b3I6OnNldFRvRW5kKCkgeworICAgIHJldHVybiBtb3ZlKDAsIGtFbmQpOworfQorCitp
bmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnN0YXJ0SW5kZXgodm9pZCkgY29uc3Qg
eworICAgIHJldHVybiBiZWdpbjsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJh
dG9yOjplbmRJbmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIGVuZDsKK30KKworaW5saW5l
IGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpnZXRJbmRleCh2b2lkKSBjb25zdCB7CisgICAg
cmV0dXJuIHBvczsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpnZXRM
ZW5ndGgodm9pZCkgY29uc3QgeworICAgIHJldHVybiB0ZXh0TGVuZ3RoOworfQorCitVX05BTUVT
UEFDRV9FTkQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9sb2Np
ZC5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9sb2NpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhZDVjYjU0
NmViZTM5N2VmNDM2ZGYzNjUwM2ViNDM3MWMzODY2OTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmgKQEAgLTAsMCArMSw4MTQgQEAKKy8qCisqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTYtMjAxNSwgSW50ZXJuYXRp
b25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwg
UmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgbG9j
aWQuaAorKgorKiBDcmVhdGVkIGJ5OiBIZWxlbmEgU2hpaAorKgorKiBNb2RpZmljYXRpb24gSGlz
dG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDAy
LzExLzk3ICAgIGFsaXUgICAgICAgIENoYW5nZWQgZ0xvY1BhdGggdG8gZmdMb2NQYXRoIGFuZCBh
ZGRlZCBtZXRob2RzIHRvCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0IGFuZCBzZXQg
aXQuCisqICAgMDQvMDIvOTcgICAgYWxpdSAgICAgICAgTWFkZSBvcGVyYXRvciE9IGlubGluZTsg
Zml4ZWQgcmV0dXJuIHZhbHVlIG9mIGdldE5hbWUoKS4KKyogICAwNC8xNS85NyAgICBhbGl1ICAg
ICAgICBDbGVhbnVwIGZvciBBSVgvV2luMzIuCisqICAgMDQvMjQvOTcgICAgYWxpdSAgICAgICAg
TnVtZXJvdXMgY2hhbmdlcyBwZXIgY29kZSByZXZpZXcuCisqICAgMDgvMTgvOTggICAgc3RlcGhl
biAgICAgQWRkZWQgdG9rZW5pemVTdHJpbmcoKSxjaGFuZ2VkIGdldERpc3BsYXlOYW1lKCkKKyog
ICAwOS8wOC85OCAgICBzdGVwaGVuICAgICBNb3ZlZCBkZWZpbml0aW9uIG9mIGtFbXB0eVN0cmlu
ZyBmb3IgTWFjIFBvcnQKKyogICAxMS8wOS85OSAgICB3ZWl2ICAgICAgICBBZGRlZCBjb25zdCBj
aGFyICogZ2V0TmFtZSgpIGNvbnN0OworKiAgIDA0LzEyLzAwICAgIHNybCAgICAgICAgIHJlbW92
aW5nIHVuaWNvZGVzdHJpbmcgYXBpJ3MgYW5kIGNhY2hlZCBoYXNoIGNvZGUKKyogICAwOC8xMC8w
MSAgICBncmhvdGVuICAgICBDaGFuZ2UgdGhlIHN0YXRpYyBMb2NhbGVzIHRvIGFjY2Vzc29yIGZ1
bmN0aW9ucworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIExPQ0lEX0gKKyNk
ZWZpbmUgTE9DSURfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1
bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VuaXN0ci5oIgorI2luY2x1ZGUg
InVuaWNvZGUvcHV0aWwuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3Vsb2MuaCIKKyNpbmNsdWRlICJ1
bmljb2RlL3N0cmVudW0uaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IExv
Y2FsZSBJRCBvYmplY3QuCisgKi8KKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLy8gRm9yd2FyZCBE
ZWNsYXJhdGlvbnMKK3ZvaWQgVV9DQUxMQ09OViBsb2NhbGVfYXZhaWxhYmxlX2luaXQoKTsgLyoq
PCBAaW50ZXJuYWwgKi8KKworLyoqCisgKiBBIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IHJl
cHJlc2VudHMgYSBzcGVjaWZpYyBnZW9ncmFwaGljYWwsIHBvbGl0aWNhbCwKKyAqIG9yIGN1bHR1
cmFsIHJlZ2lvbi4gQW4gb3BlcmF0aW9uIHRoYXQgcmVxdWlyZXMgYSA8Y29kZT5Mb2NhbGU8L2Nv
ZGU+IHRvIHBlcmZvcm0KKyAqIGl0cyB0YXNrIGlzIGNhbGxlZCA8ZW0+bG9jYWxlLXNlbnNpdGl2
ZTwvZW0+IGFuZCB1c2VzIHRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+CisgKiB0byB0YWlsb3IgaW5m
b3JtYXRpb24gZm9yIHRoZSB1c2VyLiBGb3IgZXhhbXBsZSwgZGlzcGxheWluZyBhIG51bWJlcgor
ICogaXMgYSBsb2NhbGUtc2Vuc2l0aXZlIG9wZXJhdGlvbi0tdGhlIG51bWJlciBzaG91bGQgYmUg
Zm9ybWF0dGVkCisgKiBhY2NvcmRpbmcgdG8gdGhlIGN1c3RvbXMvY29udmVudGlvbnMgb2YgdGhl
IHVzZXIncyBuYXRpdmUgY291bnRyeSwKKyAqIHJlZ2lvbiwgb3IgY3VsdHVyZS4KKyAqCisgKiBU
aGUgTG9jYWxlIGNsYXNzIGlzIG5vdCBzdWl0YWJsZSBmb3Igc3ViY2xhc3NpbmcuCisgKgorICog
PFA+CisgKiBZb3UgY2FuIGNyZWF0ZSBhIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IHVzaW5n
IHRoZSBjb25zdHJ1Y3RvciBpbgorICogdGhpcyBjbGFzczoKKyAqIFxodG1sb25seTxibG9ja3F1
b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICAgIExvY2FsZSggY29uc3QgICBjaGFy
KiAgbGFuZ3VhZ2UsCisgKiAgICAgICAgICAgICAgIGNvbnN0ICAgY2hhciogIGNvdW50cnksCisg
KiAgICAgICAgICAgICAgIGNvbnN0ICAgY2hhciogIHZhcmlhbnQpOworICogPC9wcmU+CisgKiBc
aHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBUaGUgZmlyc3QgYXJndW1lbnQg
dG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZhbGlkIDxTVFJPTkc+SVNPCisgKiBMYW5ndWFnZSBD
b2RlLjwvU1RST05HPiBUaGVzZSBjb2RlcyBhcmUgdGhlIGxvd2VyLWNhc2UgdHdvLWxldHRlcgor
ICogY29kZXMgYXMgZGVmaW5lZCBieSBJU08tNjM5LgorICogWW91IGNhbiBmaW5kIGEgZnVsbCBs
aXN0IG9mIHRoZXNlIGNvZGVzIGF0OgorICogPEJSPjxhIGhyZWYgPSJodHRwOi8vd3d3LmxvYy5n
b3Yvc3RhbmRhcmRzL2lzbzYzOS0yLyI+CisgKiBodHRwOi8vd3d3LmxvYy5nb3Yvc3RhbmRhcmRz
L2lzbzYzOS0yLzwvYT4KKyAqCisgKiA8UD4KKyAqIFRoZSBzZWNvbmQgYXJndW1lbnQgdG8gdGhl
IGNvbnN0cnVjdG9ycyBpcyBhIHZhbGlkIDxTVFJPTkc+SVNPIENvdW50cnkKKyAqIENvZGUuPC9T
VFJPTkc+IFRoZXNlIGNvZGVzIGFyZSB0aGUgdXBwZXItY2FzZSB0d28tbGV0dGVyIGNvZGVzCisg
KiBhcyBkZWZpbmVkIGJ5IElTTy0zMTY2LgorICogWW91IGNhbiBmaW5kIGEgZnVsbCBsaXN0IG9m
IHRoZXNlIGNvZGVzIGF0IGEgbnVtYmVyIG9mIHNpdGVzLCBzdWNoIGFzOgorICogPEJSPjxhIGhy
ZWY9Imh0dHA6Ly93d3cuaXNvLm9yZy9pc28vZW4vcHJvZHMtc2VydmljZXMvaXNvMzE2Nm1hL2lu
ZGV4Lmh0bWwiPgorICogaHR0cDovL3d3dy5pc28ub3JnL2lzby9lbi9wcm9kcy1zZXJ2aWNlcy9p
c28zMTY2bWEvaW5kZXguaHRtbDwvYT4KKyAqCisgKiA8UD4KKyAqIFRoZSB0aGlyZCBjb25zdHJ1
Y3RvciByZXF1aXJlcyBhIHRoaXJkIGFyZ3VtZW50LS10aGUgPFNUUk9ORz5WYXJpYW50LjwvU1RS
T05HPgorICogVGhlIFZhcmlhbnQgY29kZXMgYXJlIHZlbmRvciBhbmQgYnJvd3Nlci1zcGVjaWZp
Yy4KKyAqIEZvciBleGFtcGxlLCB1c2UgUkVWSVNFRCBmb3IgYSBsYW5nYXVnZSdzIHJldmlzZWQg
c2NyaXB0IG9ydGhvZ3JhcGh5LCBhbmQgUE9TSVggZm9yIFBPU0lYLgorICogV2hlcmUgdGhlcmUg
YXJlIHR3byB2YXJpYW50cywgc2VwYXJhdGUgdGhlbSB3aXRoIGFuIHVuZGVyc2NvcmUsIGFuZAor
ICogcHV0IHRoZSBtb3N0IGltcG9ydGFudCBvbmUgZmlyc3QuIEZvcgorICogZXhhbXBsZSwgYSBU
cmFkaXRpb25hbCBTcGFuaXNoIGNvbGxhdGlvbiBtaWdodCBiZSByZWZlcmVuY2VkLCB3aXRoCisg
KiAiRVMiLCAiRVMiLCAiVHJhZGl0aW9uYWxfUE9TSVgiLgorICoKKyAqIDxQPgorICogQmVjYXVz
ZSBhIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IGlzIGp1c3QgYW4gaWRlbnRpZmllciBmb3Ig
YSByZWdpb24sCisgKiBubyB2YWxpZGl0eSBjaGVjayBpcyBwZXJmb3JtZWQgd2hlbiB5b3UgY29u
c3RydWN0IGEgPGNvZGU+TG9jYWxlPC9jb2RlPi4KKyAqIElmIHlvdSB3YW50IHRvIHNlZSB3aGV0
aGVyIHBhcnRpY3VsYXIgcmVzb3VyY2VzIGFyZSBhdmFpbGFibGUgZm9yIHRoZQorICogPGNvZGU+
TG9jYWxlPC9jb2RlPiB5b3UgY29uc3RydWN0LCB5b3UgbXVzdCBxdWVyeSB0aG9zZSByZXNvdXJj
ZXMuIEZvcgorICogZXhhbXBsZSwgYXNrIHRoZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGZv
ciB0aGUgbG9jYWxlcyBpdCBzdXBwb3J0cworICogdXNpbmcgaXRzIDxjb2RlPmdldEF2YWlsYWJs
ZUxvY2FsZXM8L2NvZGU+IG1ldGhvZC4KKyAqIDxCUj48U1RST05HPk5vdGU6PC9TVFJPTkc+IFdo
ZW4geW91IGFzayBmb3IgYSByZXNvdXJjZSBmb3IgYSBwYXJ0aWN1bGFyCisgKiBsb2NhbGUsIHlv
dSBnZXQgYmFjayB0aGUgYmVzdCBhdmFpbGFibGUgbWF0Y2gsIG5vdCBuZWNlc3NhcmlseQorICog
cHJlY2lzZWx5IHdoYXQgeW91IGFza2VkIGZvci4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIGxvb2sg
YXQKKyAqIDxjb2RlPlJlc291cmNlQnVuZGxlPC9jb2RlPi4KKyAqCisgKiA8UD4KKyAqIFRoZSA8
Y29kZT5Mb2NhbGU8L2NvZGU+IGNsYXNzIHByb3ZpZGVzIGEgbnVtYmVyIG9mIGNvbnZlbmllbnQg
Y29uc3RhbnRzCisgKiB0aGF0IHlvdSBjYW4gdXNlIHRvIGNyZWF0ZSA8Y29kZT5Mb2NhbGU8L2Nv
ZGU+IG9iamVjdHMgZm9yIGNvbW1vbmx5IHVzZWQKKyAqIGxvY2FsZXMuIEZvciBleGFtcGxlLCB0
aGUgZm9sbG93aW5nIHJlZmVycyB0byBhIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0CisgKiBm
b3IgdGhlIFVuaXRlZCBTdGF0ZXM6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9u
bHkKKyAqIDxwcmU+CisgKiAgICAgICBMb2NhbGU6OmdldFVTKCkKKyAqIDwvcHJlPgorICogXGh0
bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICoKKyAqIDxQPgorICogT25jZSB5b3Un
dmUgY3JlYXRlZCBhIDxjb2RlPkxvY2FsZTwvY29kZT4geW91IGNhbiBxdWVyeSBpdCBmb3IgaW5m
b3JtYXRpb24gYWJvdXQKKyAqIGl0c2VsZi4gVXNlIDxjb2RlPmdldENvdW50cnk8L2NvZGU+IHRv
IGdldCB0aGUgSVNPIENvdW50cnkgQ29kZSBhbmQKKyAqIDxjb2RlPmdldExhbmd1YWdlPC9jb2Rl
PiB0byBnZXQgdGhlIElTTyBMYW5ndWFnZSBDb2RlLiBZb3UgY2FuCisgKiB1c2UgPGNvZGU+Z2V0
RGlzcGxheUNvdW50cnk8L2NvZGU+IHRvIGdldCB0aGUKKyAqIG5hbWUgb2YgdGhlIGNvdW50cnkg
c3VpdGFibGUgZm9yIGRpc3BsYXlpbmcgdG8gdGhlIHVzZXIuIFNpbWlsYXJseSwKKyAqIHlvdSBj
YW4gdXNlIDxjb2RlPmdldERpc3BsYXlMYW5ndWFnZTwvY29kZT4gdG8gZ2V0IHRoZSBuYW1lIG9m
CisgKiB0aGUgbGFuZ3VhZ2Ugc3VpdGFibGUgZm9yIGRpc3BsYXlpbmcgdG8gdGhlIHVzZXIuIElu
dGVyZXN0aW5nbHksCisgKiB0aGUgPGNvZGU+Z2V0RGlzcGxheVhYWDwvY29kZT4gbWV0aG9kcyBh
cmUgdGhlbXNlbHZlcyBsb2NhbGUtc2Vuc2l0aXZlCisgKiBhbmQgaGF2ZSB0d28gdmVyc2lvbnM6
IG9uZSB0aGF0IHVzZXMgdGhlIGRlZmF1bHQgbG9jYWxlIGFuZCBvbmUKKyAqIHRoYXQgdGFrZXMg
YSBsb2NhbGUgYXMgYW4gYXJndW1lbnQgYW5kIGRpc3BsYXlzIHRoZSBuYW1lIG9yIGNvdW50cnkg
aW4KKyAqIGEgbGFuZ3VhZ2UgYXBwcm9wcmlhdGUgdG8gdGhhdCBsb2NhbGUuCisgKgorICogPFA+
CisgKiBJQ1UgcHJvdmlkZXMgYSBudW1iZXIgb2YgY2xhc3NlcyB0aGF0IHBlcmZvcm0gbG9jYWxl
LXNlbnNpdGl2ZQorICogb3BlcmF0aW9ucy4gRm9yIGV4YW1wbGUsIHRoZSA8Y29kZT5OdW1iZXJG
b3JtYXQ8L2NvZGU+IGNsYXNzIGZvcm1hdHMKKyAqIG51bWJlcnMsIGN1cnJlbmN5LCBvciBwZXJj
ZW50YWdlcyBpbiBhIGxvY2FsZS1zZW5zaXRpdmUgbWFubmVyLiBDbGFzc2VzCisgKiBzdWNoIGFz
IDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gaGF2ZSBhIG51bWJlciBvZiBjb252ZW5pZW5jZSBt
ZXRob2RzCisgKiBmb3IgY3JlYXRpbmcgYSBkZWZhdWx0IG9iamVjdCBvZiB0aGF0IHR5cGUuIEZv
ciBleGFtcGxlLCB0aGUKKyAqIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gY2xhc3MgcHJvdmlk
ZXMgdGhlc2UgdGhyZWUgY29udmVuaWVuY2UgbWV0aG9kcworICogZm9yIGNyZWF0aW5nIGEgZGVm
YXVsdCA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IG9iamVjdDoKKyAqIFxodG1sb25seTxibG9j
a3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICBVRXJyb3JDb2RlIHN1Y2Nlc3Mg
PSBVX1pFUk9fRVJST1I7CisgKiAgICAgTG9jYWxlIG15TG9jYWxlOworICogICAgIE51bWJlckZv
cm1hdCAqbmY7CisgKgorICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVJbnN0YW5jZSgg
c3VjY2VzcyApOyAgICAgICAgICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6
OmNyZWF0ZUN1cnJlbmN5SW5zdGFuY2UoIHN1Y2Nlc3MgKTsgIGRlbGV0ZSBuZjsKKyAqICAgICBu
ZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlUGVyY2VudEluc3RhbmNlKCBzdWNjZXNzICk7ICAgZGVs
ZXRlIG5mOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5
CisgKiBFYWNoIG9mIHRoZXNlIG1ldGhvZHMgaGFzIHR3byB2YXJpYW50czsgb25lIHdpdGggYW4g
ZXhwbGljaXQgbG9jYWxlCisgKiBhbmQgb25lIHdpdGhvdXQ7IHRoZSBsYXR0ZXIgdXNpbmcgdGhl
IGRlZmF1bHQgbG9jYWxlLgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5Cisg
KiA8cHJlPgorICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVJbnN0YW5jZSggbXlMb2Nh
bGUsIHN1Y2Nlc3MgKTsgICAgICAgICAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9y
bWF0OjpjcmVhdGVDdXJyZW5jeUluc3RhbmNlKCBteUxvY2FsZSwgc3VjY2VzcyApOyAgZGVsZXRl
IG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVQZXJjZW50SW5zdGFuY2UoIG15
TG9jYWxlLCBzdWNjZXNzICk7ICAgZGVsZXRlIG5mOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8
L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBBIDxjb2RlPkxvY2FsZTwvY29kZT4gaXMgdGhl
IG1lY2hhbmlzbSBmb3IgaWRlbnRpZnlpbmcgdGhlIGtpbmQgb2Ygb2JqZWN0CisgKiAoPGNvZGU+
TnVtYmVyRm9ybWF0PC9jb2RlPikgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBnZXQuIFRoZSBsb2Nh
bGUgaXMKKyAqIDxTVFJPTkc+anVzdDwvU1RST05HPiBhIG1lY2hhbmlzbSBmb3IgaWRlbnRpZnlp
bmcgb2JqZWN0cywKKyAqIDxTVFJPTkc+bm90PC9TVFJPTkc+IGEgY29udGFpbmVyIGZvciB0aGUg
b2JqZWN0cyB0aGVtc2VsdmVzLgorICoKKyAqIDxQPgorICogRWFjaCBjbGFzcyB0aGF0IHBlcmZv
cm1zIGxvY2FsZS1zZW5zaXRpdmUgb3BlcmF0aW9ucyBhbGxvd3MgeW91CisgKiB0byBnZXQgYWxs
IHRoZSBhdmFpbGFibGUgb2JqZWN0cyBvZiB0aGF0IHR5cGUuIFlvdSBjYW4gc2lmdAorICogdGhy
b3VnaCB0aGVzZSBvYmplY3RzIGJ5IGxhbmd1YWdlLCBjb3VudHJ5LCBvciB2YXJpYW50LAorICog
YW5kIHVzZSB0aGUgZGlzcGxheSBuYW1lcyB0byBwcmVzZW50IGEgbWVudSB0byB0aGUgdXNlci4K
KyAqIEZvciBleGFtcGxlLCB5b3UgY2FuIGNyZWF0ZSBhIG1lbnUgb2YgYWxsIHRoZSBjb2xsYXRp
b24gb2JqZWN0cworICogc3VpdGFibGUgZm9yIGEgZ2l2ZW4gbGFuZ3VhZ2UuIFN1Y2ggY2xhc3Nl
cyBpbXBsZW1lbnQgdGhlc2UKKyAqIHRocmVlIGNsYXNzIG1ldGhvZHM6CisgKiBcaHRtbG9ubHk8
YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgICBzdGF0aWMgTG9jYWxl
KiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIG51bUxvY2FsZXMpCisgKiAgICAgICBzdGF0
aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxheU5hbWUoY29uc3QgTG9jYWxlJiAgb2JqZWN0TG9j
YWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IExvY2FsZSYgIGRpc3BsYXlMb2NhbGUsCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcGxheU5hbWUpCisgKiAgICAgICBzdGF0
aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxheU5hbWUoY29uc3QgTG9jYWxlJiAgb2JqZWN0TG9j
YWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNv
ZGVTdHJpbmcmIGRpc3BsYXlOYW1lKQorICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVv
dGU+XGVuZGh0bWxvbmx5CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKiBAc2VlIFJlc291cmNl
QnVuZGxlCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBMb2NhbGUgOiBwdWJsaWMgVU9iamVjdCB7
CitwdWJsaWM6CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhlIFJvb3QgbG9jYWxlLiBA
c3RhYmxlIElDVSA0LjQgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0
Um9vdCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0
RW5nbGlzaCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdl
LiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIg
Z2V0RnJlbmNoKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3Vh
Z2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JU
MiBnZXRHZXJtYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5n
dWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBP
UlQyIGdldEl0YWxpYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBs
YW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9F
WFBPUlQyIGdldEphcGFuZXNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRo
aXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUg
JlVfRVhQT1JUMiBnZXRLb3JlYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3Ig
dGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2Fs
ZSAmVV9FWFBPUlQyIGdldENoaW5lc2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBm
b3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExv
Y2FsZSAmVV9FWFBPUlQyIGdldFNpbXBsaWZpZWRDaGluZXNlKHZvaWQpOworICAgIC8qKiBVc2Vm
dWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRUcmFkaXRpb25hbENoaW5lc2Uodm9pZCk7
CisKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3Rh
YmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RnJh
bmNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdp
b24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JU
MiBnZXRHZXJtYW55KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291
bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUg
JlVfRVhQT1JUMiBnZXRJdGFseSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0
aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3Qg
TG9jYWxlICZVX0VYUE9SVDIgZ2V0SmFwYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFu
dCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEtvcmVhKHZvaWQpOworICAgIC8qKiBVc2VmdWwg
Y29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAg
IHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDaGluYSh2b2lkKTsKKyAgICAvKiog
VXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAg
Ki8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0UFJDKHZvaWQpOworICAg
IC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNV
IDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRUYWl3YW4odm9p
ZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0
YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFVL
KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24u
IEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBn
ZXRVUyh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVn
aW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9S
VDIgZ2V0Q2FuYWRhKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291
bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUg
JlVfRVhQT1JUMiBnZXRDYW5hZGFGcmVuY2godm9pZCk7CisKKworICAgIC8qKgorICAgICAqIENv
bnN0cnVjdCBhIGRlZmF1bHQgbG9jYWxlIG9iamVjdCwgYSBMb2NhbGUgZm9yIHRoZSBkZWZhdWx0
IGxvY2FsZSBJRC4KKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RGVmYXVsdAorICAgICAqIEBzZWUg
dWxvY19nZXREZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9j
YWxlKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBsb2NhbGUgZnJvbSBsYW5ndWFn
ZSwgY291bnRyeSwgdmFyaWFudC4KKyAgICAgKiBJZiBhbiBlcnJvciBvY2N1cnMsIHRoZW4gdGhl
IGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlICJib2d1cyIKKyAgICAgKiAoaXNCb2d1cygpIHdp
bGwgcmV0dXJuIFRSVUUpLgorICAgICAqCisgICAgICogQHBhcmFtIGxhbmd1YWdlIExvd2VyY2Fz
ZSB0d28tbGV0dGVyIG9yIHRocmVlLWxldHRlciBJU08tNjM5IGNvZGUuCisgICAgICogIFRoaXMg
cGFyYW1ldGVyIGNhbiBpbnN0ZWFkIGJlIGFuIElDVSBzdHlsZSBDIGxvY2FsZSAoZS5nLiAiZW5f
VVMiKSwKKyAgICAgKiAgYnV0IHRoZSBvdGhlciBwYXJhbWV0ZXJzIG11c3Qgbm90IGJlIHVzZWQu
CisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSBOVUxMOyBpZiBzbywKKyAgICAgKiAgdGhl
IGxvY2FsZSBpcyBpbml0aWFsaXplZCB0byBtYXRjaCB0aGUgY3VycmVudCBkZWZhdWx0IGxvY2Fs
ZS4KKyAgICAgKiAgKFRoaXMgaXMgdGhlIHNhbWUgYXMgdXNpbmcgdGhlIGRlZmF1bHQgY29uc3Ry
dWN0b3IuKQorICAgICAqICBQbGVhc2Ugbm90ZTogVGhlIEphdmEgTG9jYWxlIGNsYXNzIGRvZXMg
Tk9UIGFjY2VwdCB0aGUgZm9ybQorICAgICAqICAnbmV3IExvY2FsZSgiZW5fVVMiKScgYnV0IG9u
bHkgJ25ldyBMb2NhbGUoImVuIiwiVVMiKScKKyAgICAgKgorICAgICAqIEBwYXJhbSBjb3VudHJ5
ICBVcHBlcmNhc2UgdHdvLWxldHRlciBJU08tMzE2NiBjb2RlLiAob3B0aW9uYWwpCisgICAgICog
QHBhcmFtIHZhcmlhbnQgIFVwcGVyY2FzZSB2ZW5kb3IgYW5kIGJyb3dzZXIgc3BlY2lmaWMgY29k
ZS4gU2VlIGNsYXNzCisgICAgICogICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLiAob3B0aW9u
YWwpCisgICAgICogQHBhcmFtIGtleXdvcmRzQW5kVmFsdWVzIEEgc3RyaW5nIGNvbnNpc3Rpbmcg
b2Yga2V5d29yZC92YWx1ZXMgcGFpcnMsIHN1Y2ggYXMKKyAgICAgKiAgICAgICAgICAgICAgICAg
ImNvbGxhdGlvbj1waG9uZWJvb2s7Y3VycmVuY3k9ZXVybyIKKyAgICAgKgorICAgICAqIEBzZWUg
Z2V0RGVmYXVsdAorICAgICAqIEBzZWUgdWxvY19nZXREZWZhdWx0CisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgTG9jYWxlKCBjb25zdCAgIGNoYXIgKiBsYW5ndWFnZSwKKyAg
ICAgICAgICAgIGNvbnN0ICAgY2hhciAqIGNvdW50cnkgID0gMCwKKyAgICAgICAgICAgIGNvbnN0
ICAgY2hhciAqIHZhcmlhbnQgID0gMCwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIGtleXdv
cmRzQW5kVmFsdWVzID0gMCk7CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplcyBhIExvY2Fs
ZSBvYmplY3QgZnJvbSBhbm90aGVyIExvY2FsZSBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFy
YW0gb3RoZXIgVGhlIExvY2FsZSBvYmplY3QgYmVpbmcgY29waWVkIGluLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZShjb25zdCAgICBMb2NhbGUmIG90aGVyKTsK
KworCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3RvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgfkxvY2FsZSgpIDsKKworICAgIC8qKgorICAgICAqIFJlcGxh
Y2VzIHRoZSBlbnRpcmUgY29udGVudHMgb2YgKnRoaXMgd2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVl
LgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBMb2NhbGUgb2JqZWN0IGJlaW5nIGNv
cGllZCBpbi4KKyAgICAgKiBAcmV0dXJuICAgICAgKnRoaXMKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBMb2NhbGUmIG9wZXJhdG9yPShjb25zdCBMb2NhbGUmIG90aGVyKTsK
KworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0d28gbG9jYWxlIGtleXMgYXJlIHRoZSBzYW1l
LgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBsb2NhbGUga2V5IG9iamVjdCB0byBi
ZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAgICogQHJldHVybiAgICAgIFRydWUgaWYgdGhlIHR3
byBsb2NhbGUga2V5cyBhcmUgdGhlIHNhbWUsIGZhbHNlIG90aGVyd2lzZS4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCAgIG9wZXJhdG9yPT0oY29uc3QgICAgTG9j
YWxlJiAgICAgb3RoZXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHR3byBs
b2NhbGUga2V5cyBhcmUgbm90IHRoZSBzYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVy
IFRoZSBsb2NhbGUga2V5IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAgICog
QHJldHVybiAgICAgIFRydWUgaWYgdGhlIHR3byBsb2NhbGUga2V5cyBhcmUgbm90IHRoZSBzYW1l
LCBmYWxzZQorICAgICAqICAgICAgICAgICAgICBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgVUJvb2wgICBvcGVyYXRvciE9KGNvbnN0ICAgIExvY2FsZSYg
ICAgIG90aGVyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENsb25lIHRoaXMgb2JqZWN0Lgor
ICAgICAqIENsb25lcyBjYW4gYmUgdXNlZCBjb25jdXJyZW50bHkgaW4gbXVsdGlwbGUgdGhyZWFk
cy4KKyAgICAgKiBJZiBhbiBlcnJvciBvY2N1cnMsIHRoZW4gTlVMTCBpcyByZXR1cm5lZC4KKyAg
ICAgKiBUaGUgY2FsbGVyIG11c3QgZGVsZXRlIHRoZSBjbG9uZS4KKyAgICAgKgorICAgICAqIEBy
ZXR1cm4gYSBjbG9uZSBvZiB0aGlzIG9iamVjdAorICAgICAqCisgICAgICogQHNlZSBnZXREeW5h
bWljQ2xhc3NJRAorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIExvY2FsZSAq
Y2xvbmUoKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfU1lTVEVNX0FQSQorICAgIC8qKgorICAg
ICAqIENvbW1vbiBtZXRob2RzIG9mIGdldHRpbmcgdGhlIGN1cnJlbnQgZGVmYXVsdCBMb2NhbGUu
IFVzZWQgZm9yIHRoZQorICAgICAqIHByZXNlbnRhdGlvbjogbWVudXMsIGRpYWxvZ3MsIGV0Yy4g
R2VuZXJhbGx5IHNldCBvbmNlIHdoZW4geW91ciBhcHBsZXQgb3IKKyAgICAgKiBhcHBsaWNhdGlv
biBpcyBpbml0aWFsaXplZCwgdGhlbiBuZXZlciByZXNldC4gKElmIHlvdSBkbyByZXNldCB0aGUK
KyAgICAgKiBkZWZhdWx0IGxvY2FsZSwgeW91IHByb2JhYmx5IHdhbnQgdG8gcmVsb2FkIHlvdXIg
R1VJLCBzbyB0aGF0IHRoZSBjaGFuZ2UKKyAgICAgKiBpcyByZWZsZWN0ZWQgaW4geW91ciBpbnRl
cmZhY2UuKQorICAgICAqCisgICAgICogTW9yZSBhZHZhbmNlZCBwcm9ncmFtcyB3aWxsIGFsbG93
IHVzZXJzIHRvIHVzZSBkaWZmZXJlbnQgbG9jYWxlcyBmb3IKKyAgICAgKiBkaWZmZXJlbnQgZmll
bGRzLCBlLmcuIGluIGEgc3ByZWFkc2hlZXQuCisgICAgICoKKyAgICAgKiBOb3RlIHRoYXQgdGhl
IGluaXRpYWwgc2V0dGluZyB3aWxsIG1hdGNoIHRoZSBob3N0IHN5c3RlbS4KKyAgICAgKiBAcmV0
dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSBMb2NhbGUgb2JqZWN0IGZvciB0aGUgZGVmYXVsdCBsb2Nh
bGUgSUQKKyAgICAgKiBAc3lzdGVtCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgc3RhdGljIGNvbnN0IExvY2FsZSYgVV9FWFBPUlQyIGdldERlZmF1bHQodm9pZCk7CisKKyAg
ICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWZhdWx0LiBOb3JtYWxseSBzZXQgb25jZSBhdCB0aGUg
YmVnaW5uaW5nIG9mIGEgcHJvY2VzcywKKyAgICAgKiB0aGVuIG5ldmVyIHJlc2V0LgorICAgICAq
IHNldERlZmF1bHQoKSBvbmx5IGNoYW5nZXMgSUNVJ3MgZGVmYXVsdCBsb2NhbGUgSUQsIDxzdHJv
bmc+bm90PC9zdHJvbmc+CisgICAgICogdGhlIGRlZmF1bHQgbG9jYWxlIElEIG9mIHRoZSBydW50
aW1lIGVudmlyb25tZW50LgorICAgICAqCisgICAgICogQHBhcmFtIG5ld0xvY2FsZSBMb2NhbGUg
dG8gc2V0IHRvLiAgSWYgTlVMTCwgc2V0IHRvIHRoZSB2YWx1ZSBvYnRhaW5lZAorICAgICAqICAg
ICAgICAgICAgICAgICAgZnJvbSB0aGUgcnVudGltZSBlbnZpcm9uZW1lbnQuCisgICAgICogQHBh
cmFtIHN1Y2Nlc3MgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHN5c3RlbQorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyB2b2lkIFVfRVhQT1JUMiBzZXREZWZhdWx0
KGNvbnN0IExvY2FsZSYgbmV3TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVFcnJvckNvZGUmICAgc3VjY2Vzcyk7CisjZW5kaWYgIC8qIFVfSElERV9TWVNURU1f
QVBJICovCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbG9jYWxlIHdoaWNoIGhhcyBoYWQg
bWluaW1hbCBjYW5vbmljYWxpemF0aW9uCisgICAgICogYXMgcGVyIHVsb2NfZ2V0TmFtZSgpLgor
ICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIHRvIGNyZWF0ZSBmcm9tLiAgSWYgbmFtZSBpcyBu
dWxsLAorICAgICAqICB0aGUgZGVmYXVsdCBMb2NhbGUgaXMgdXNlZC4KKyAgICAgKiBAcmV0dXJu
IG5ldyBsb2NhbGUgb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICogQHNlZSB1
bG9jX2dldE5hbWUKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9jYWxlIFVfRVhQT1JUMiBjcmVhdGVG
cm9tTmFtZShjb25zdCBjaGFyICpuYW1lKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBs
b2NhbGUgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nIGFmdGVyIGNhbm9uaWNhbGl6aW5nCisgICAgICog
dGhlIHN0cmluZyBieSBjYWxsaW5nIHVsb2NfY2Fub25pY2FsaXplKCkuCisgICAgICogQHBhcmFt
IG5hbWUgdGhlIGxvY2FsZSBJRCB0byBjcmVhdGUgZnJvbS4gIE11c3Qgbm90IGJlIE5VTEwuCisg
ICAgICogQHJldHVybiBhIG5ldyBsb2NhbGUgb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdp
dmVuIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAgKiBAc2VlIHVsb2NfY2Fub25p
Y2FsaXplCisgICAgICovCisgICAgc3RhdGljIExvY2FsZSBVX0VYUE9SVDIgY3JlYXRlQ2Fub25p
Y2FsKGNvbnN0IGNoYXIqIG5hbWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9j
YWxlJ3MgSVNPLTYzOSBsYW5ndWFnZSBjb2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlh
cyB0byB0aGUgY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGlu
ZSBjb25zdCBjaGFyICogIGdldExhbmd1YWdlKCApIGNvbnN0OworCisgICAgLyoqCisgICAgICog
UmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTE1OTI0IGFiYnJldmlhdGlvbiBzY3JpcHQgY29kZS4K
KyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc2VlIHVz
Y3JpcHRfZ2V0U2hvcnROYW1lCisgICAgICogQHNlZSB1c2NyaXB0X2dldENvZGUKKyAgICAgKiBA
c3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRTY3Jp
cHQoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08t
MzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBj
b2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNo
YXIgKiAgZ2V0Q291bnRyeSggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhl
IGxvY2FsZSdzIHZhcmlhbnQgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8g
dGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29u
c3QgY2hhciAqICBnZXRWYXJpYW50KCApIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJu
cyB0aGUgcHJvZ3JhbW1hdGljIG5hbWUgb2YgdGhlIGVudGlyZSBsb2NhbGUsIHdpdGggdGhlIGxh
bmd1YWdlLAorICAgICAqIGNvdW50cnkgYW5kIHZhcmlhbnQgc2VwYXJhdGVkIGJ5IHVuZGVyYmFy
cy4gSWYgYSBmaWVsZCBpcyBtaXNzaW5nLCB1cAorICAgICAqIHRvIHR3byBsZWFkaW5nIHVuZGVy
YmFycyB3aWxsIG9jY3VyLiBFeGFtcGxlOiAiZW4iLCAiZGVfREUiLCAiZW5fVVNfV0lOIiwKKyAg
ICAgKiAiZGVfX1BPU0lYIiwgImZyX19NQUMiLCAiX19NQUMiLCAiX01UIiwgIl9GUl9FVVJPIgor
ICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogZ2V0TmFtZSgpIGNvbnN0
OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcHJvZ3JhbW1hdGljIG5hbWUgb2YgdGhl
IGVudGlyZSBsb2NhbGUgYXMgZ2V0TmFtZSgpIHdvdWxkIHJldHVybiwKKyAgICAgKiBidXQgd2l0
aG91dCBrZXl3b3Jkcy4KKyAgICAgKiBAcmV0dXJuICAgICAgQSBwb2ludGVyIHRvICJuYW1lIi4K
KyAgICAgKiBAc2VlIGdldE5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAg
ICBjb25zdCBjaGFyICogZ2V0QmFzZU5hbWUoKSBjb25zdDsKKworCisgICAgLyoqCisgICAgICog
R2V0cyB0aGUgbGlzdCBvZiBrZXl3b3JkcyBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUuCisgICAg
ICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBzdGF0dXMgY29kZQorICAgICAqIEByZXR1cm4g
cG9pbnRlciB0byBTdHJpbmdFbnVtZXJhdGlvbiBjbGFzcywgb3IgTlVMTCBpZiB0aGVyZSBhcmUg
bm8ga2V5d29yZHMuIAorICAgICAqIENsaWVudCBtdXN0IGRpc3Bvc2Ugb2YgaXQgYnkgY2FsbGlu
ZyBkZWxldGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgU3RyaW5nRW51
bWVyYXRpb24gKiBjcmVhdGVLZXl3b3JkcyhVRXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogR2V0cyB0aGUgdmFsdWUgZm9yIGEga2V5d29yZC4KKyAgICAgKgorICAg
ICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3JkIGZvciB3aGljaCB3ZSB3
YW50IHRoZSB2YWx1ZS4gQ2FzZSBpbnNlbnNpdGl2ZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIFRo
ZSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUga2V5d29yZCB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gYnVm
ZmVyQ2FwYWNpdHkgVGhlIGNhcGFjaXR5IG9mIHJlY2VpdmluZyBidWZmZXIKKyAgICAgKiBAcGFy
YW0gc3RhdHVzIFJldHVybnMgYW55IGVycm9yIGluZm9ybWF0aW9uIHdoaWxlIHBlcmZvcm1pbmcg
dGhpcyBvcGVyYXRpb24uCisgICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBrZXl3b3Jk
IHZhbHVlCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBpbnQz
Ml90IGdldEtleXdvcmRWYWx1ZShjb25zdCBjaGFyKiBrZXl3b3JkTmFtZSwgY2hhciAqYnVmZmVy
LCBpbnQzMl90IGJ1ZmZlckNhcGFjaXR5LCBVRXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogU2V0cyBvciByZW1vdmVzIHRoZSB2YWx1ZSBmb3IgYSBrZXl3b3JkLgor
ICAgICAqCisgICAgICogRm9yIHJlbW92aW5nIGFsbCBrZXl3b3JkcywgdXNlIGdldEJhc2VOYW1l
KCksCisgICAgICogYW5kIGNvbnN0cnVjdCBhIG5ldyBMb2NhbGUgaWYgaXQgZGlmZmVycyBmcm9t
IGdldE5hbWUoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRo
ZSBrZXl3b3JkIHRvIGJlIHNldC4gQ2FzZSBpbnNlbnNpdGl2ZS4KKyAgICAgKiBAcGFyYW0ga2V5
d29yZFZhbHVlIHZhbHVlIG9mIHRoZSBrZXl3b3JkIHRvIGJlIHNldC4gSWYgMC1sZW5ndGggb3IK
KyAgICAgKiAgTlVMTCwgd2lsbCByZXN1bHQgaW4gdGhlIGtleXdvcmQgYmVpbmcgcmVtb3ZlZC4g
Tm8gZXJyb3IgaXMgZ2l2ZW4gaWYKKyAgICAgKiAgdGhhdCBrZXl3b3JkIGRvZXMgbm90IGV4aXN0
LgorICAgICAqIEBwYXJhbSBzdGF0dXMgUmV0dXJucyBhbnkgZXJyb3IgaW5mb3JtYXRpb24gd2hp
bGUgcGVyZm9ybWluZyB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNV
IDQ5CisgICAgICovCisgICAgdm9pZCBzZXRLZXl3b3JkVmFsdWUoY29uc3QgY2hhcioga2V5d29y
ZE5hbWUsIGNvbnN0IGNoYXIqIGtleXdvcmRWYWx1ZSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKwor
ICAgIC8qKgorICAgICAqIHJldHVybnMgdGhlIGxvY2FsZSdzIHRocmVlLWxldHRlciBsYW5ndWFn
ZSBjb2RlLCBhcyBzcGVjaWZpZWQKKyAgICAgKiBpbiBJU08gZHJhZnQgc3RhbmRhcmQgSVNPLTYz
OS0yLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZSwgb3IgYW4gZW1w
dHkgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgY29uc3QgY2hh
ciAqIGdldElTTzNMYW5ndWFnZSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4g
Im5hbWUiIHdpdGggdGhlIGxvY2FsZSdzIHRocmVlLWxldHRlciBJU08tMzE2NiBjb3VudHJ5IGNv
ZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlLCBvciBhbiBlbXB0
eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBjb25zdCBjaGFy
ICogZ2V0SVNPM0NvdW50cnkoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhl
IFdpbmRvd3MgTENJRCB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoaXMgbG9jYWxlLgorICAgICAq
IFRoaXMgdmFsdWUgaXMgc3RvcmVkIGluIHRoZSByZXNvdXJjZSBkYXRhIGZvciB0aGUgbG9jYWxl
IGFzIGEgb25lLXRvLWZvdXItZGlnaXQKKyAgICAgKiBoZXhhZGVjaW1hbCBudW1iZXIuICBJZiB0
aGUgcmVzb3VyY2UgaXMgbWlzc2luZywgaW4gdGhlIHdyb25nIGZvcm1hdCwgb3IKKyAgICAgKiB0
aGVyZSBpcyBubyBXaW5kb3dzIExDSUQgdmFsdWUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGlzIGxv
Y2FsZSwgcmV0dXJucyAwLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHVp
bnQzMl90ICAgICAgICBnZXRMQ0lEKHZvaWQpIGNvbnN0OworCisjaWZuZGVmIFVfSElERV9EUkFG
VF9BUEkKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhpcyBsb2NhbGUncyBzY3Jp
cHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0LgorICAgICAqIElmIHRoZXJlIGlzIG5vIHNjcmlw
dCBzdWJ0YWcsIHRoZW4gdGhlIGxpa2VseSBzY3JpcHQgaXMgdXNlZCwgc2VlIHVsb2NfYWRkTGlr
ZWx5U3VidGFncygpLgorICAgICAqIElmIG5vIGxpa2VseSBzY3JpcHQgaXMga25vd24sIHRoZW4g
RkFMU0UgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBBIHNjcmlwdCBpcyByaWdodC10by1s
ZWZ0IGFjY29yZGluZyB0byB0aGUgQ0xEUiBzY3JpcHQgbWV0YWRhdGEKKyAgICAgKiB3aGljaCBj
b3JyZXNwb25kcyB0byB3aGV0aGVyIHRoZSBzY3JpcHQncyBsZXR0ZXJzIGhhdmUgQmlkaV9DbGFz
cz1SIG9yIEFMLgorICAgICAqCisgICAgICogUmV0dXJucyBUUlVFIGZvciAiYXIiIGFuZCAiZW4t
SGViciIsIEZBTFNFIGZvciAiemgiIGFuZCAiZmEtQ3lybCIuCisgICAgICoKKyAgICAgKiBAcmV0
dXJuIFRSVUUgaWYgdGhlIGxvY2FsZSdzIHNjcmlwdCBpcyB3cml0dGVuIHJpZ2h0LXRvLWxlZnQK
KyAgICAgKiBAZHJhZnQgSUNVIDU0CisgICAgICovCisgICAgVUJvb2wgaXNSaWdodFRvTGVmdCgp
IGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJICovCisKKyAgICAvKioKKyAgICAg
KiBGaWxscyBpbiAiZGlzcExhbmciIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBsYW5n
dWFnZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IKKyAgICAgKiB1c2VyIGRpc3BsYXkgaW4gdGhl
IGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncyBsYW5ndWFnZSBj
b2RlIGlzCisgICAgICogImZyIiBhbmQgdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29k
ZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BMYW5nIHRvICJG
cmVuY2giLgorICAgICAqIEBwYXJhbSBkaXNwTGFuZyAgUmVjZWl2ZXMgdGhlIGxhbmd1YWdlJ3Mg
ZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRp
c3BMYW5nIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3Ry
aW5nJiAgZ2V0RGlzcGxheUxhbmd1YWdlKFVuaWNvZGVTdHJpbmcmICAgZGlzcExhbmcpIGNvbnN0
OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BMYW5nIiB3aXRoIHRoZSBuYW1lIG9m
IHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9yCisgICAgICog
dXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4g
IEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBsYW5ndWFnZSBjb2RlIGlzICJl
biIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJmciIsIHRoaXMgZnVuY3Rp
b24gd291bGQgc2V0CisgICAgICogZGlzcExhbmcgdG8gIkFuZ2xhaXMiLgorICAgICAqIEBwYXJh
bSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3Bs
YXkgdGhlIG5hbWUuICBJbiBvdGhlciB3b3JkcywKKyAgICAgKiAgICAgICAgICAgICAgICAgIGlm
IHRoZSBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHBhc3NpbmcgTG9jYWxlOjpnZXRG
cmVuY2goKSBmb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgIGRpc3BsYXlMb2NhbGUgd291bGQg
cmVzdWx0IGluICJBbmdsYWlzIiwgd2hpbGUgcGFzc2luZyBMb2NhbGU6OmdldEdlcm1hbigpCisg
ICAgICogICAgICAgICAgICAgICAgICBmb3IgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4g
IkVuZ2xpc2NoIi4KKyAgICAgKiBAcGFyYW0gZGlzcExhbmcgIFJlY2VpdmVzIHRoZSBsYW5ndWFn
ZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRv
ICJkaXNwTGFuZyIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29k
ZVN0cmluZyYgIGdldERpc3BsYXlMYW5ndWFnZSggY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlz
cGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwTGFuZykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBG
aWxscyBpbiAiZGlzcFNjcmlwdCIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHNjcmlw
dCBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRl
ZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncyBzY3JpcHQgY29kZQor
ICAgICAqIGlzICJMQVROIiBhbmQgdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBp
cyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BTY3JpcHQgdG8gIkxh
dGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcFNjcmlwdCAgICBSZWNlaXZlcyB0aGUgc2NyaXB0cydz
IGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0
byAiZGlzcFNjcmlwdCIuCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgVW5p
Y29kZVN0cmluZyYgIGdldERpc3BsYXlTY3JpcHQoICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRp
c3BTY3JpcHQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BTY3JpcHQi
IHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRh
YmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAi
ZGlzcGxheUxvY2FsZSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzCisgICAgICogc2Ny
aXB0IGNvZGUgaXMgIkxBVE4iIGFuZCBkaXNwbGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAi
ZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BTY3JpcHQgdG8gIkxhdGlu
Ii4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgICAgIFNwZWNpZmllcyB0aGUgbG9jYWxl
IHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIEluIG90aGVyCisgICAgICogICAgICAg
ICAgICAgICAgICAgICAgd29yZHMsIGlmIHRoZSBsb2NhbGUncyBzY3JpcHQgY29kZSBpcyAiTEFU
TiIsIHBhc3NpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBMb2NhbGU6OmdldEZyZW5j
aCgpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiIiwgd2hpbGUKKyAgICAgKiAg
ICAgICAgICAgICAgICAgICAgICBwYXNzaW5nIExvY2FsZTo6Z2V0R2VybWFuKCkgZm9yIGRpc3Bs
YXlMb2NhbGUgd291bGQgcmVzdWx0IGluCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIiIu
CisgICAgICogQHBhcmFtIGRpc3BTY3JpcHQgICAgUmVjZWl2ZXMgdGhlIHNjcmlwdHMncyBkaXNw
bGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRp
c3BTY3JpcHQiLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFVuaWNvZGVT
dHJpbmcmICBnZXREaXNwbGF5U2NyaXB0KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxh
eUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VW5pY29kZVN0cmluZyYgIGRpc3BTY3JpcHQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmls
bHMgaW4gImRpc3BDb3VudHJ5IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgY291bnRy
eSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRl
ZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncyBjb3VudHJ5IGNvZGUK
KyAgICAgKiBpcyAiRlIiIGFuZCB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlz
ICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcENvdW50cnkgdG8gIkZy
YW5jZSIuCisgICAgICogQHBhcmFtIGRpc3BDb3VudHJ5ICAgUmVjZWl2ZXMgdGhlIGNvdW50cnkn
cyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2Ug
dG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBV
bmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNvdW50cnkoICAgICAgICAgIFVuaWNvZGVTdHJpbmcm
IGRpc3BDb3VudHJ5KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwQ291
bnRyeSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGNvdW50cnkgaW4gYSBmb3JtYXQg
c3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVk
IGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MKKyAgICAg
KiBjb3VudHJ5IGNvZGUgaXMgIlVTIiBhbmQgZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUg
aXMgImZyIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwQ291bnRyeSB0byAi
JkVhY3V0ZTt0YXRzLVVuaXMiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICAgICAgU3Bl
Y2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLiAgSW4gb3Ro
ZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB3b3JkcywgaWYgdGhlIGxvY2FsZSdzIGNv
dW50cnkgY29kZSBpcyAiVVMiLCBwYXNzaW5nCisgICAgICogICAgICAgICAgICAgICAgICAgICAg
TG9jYWxlOjpnZXRGcmVuY2goKSBmb3IgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIiZF
YWN1dGU7dGF0cy1VbmlzIiwgd2hpbGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBwYXNz
aW5nIExvY2FsZTo6Z2V0R2VybWFuKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGlu
CisgICAgICogICAgICAgICAgICAgICAgICAgICAgIlZlcmVpbmlndGUgU3RhYXRlbiIuCisgICAg
ICogQHBhcmFtIGRpc3BDb3VudHJ5ICAgUmVjZWl2ZXMgdGhlIGNvdW50cnkncyBkaXNwbGF5IG5h
bWUuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BDb3Vu
dHJ5Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5n
JiAgZ2V0RGlzcGxheUNvdW50cnkoICBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9j
YWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5p
Y29kZVN0cmluZyYgIGRpc3BDb3VudHJ5KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxz
IGluICJkaXNwVmFyIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgdmFyaWFudCBjb2Rl
IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVm
YXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BWYXIgICBSZWNlaXZlcyB0aGUgdmFyaWFu
dCdzIG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFZh
ciIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYg
IGdldERpc3BsYXlWYXJpYW50KCAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BWYXIpIGNvbnN0Owor
CisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BWYXIiIHdpdGggdGhlIG5hbWUgb2YgdGhp
cyBsb2NhbGUncyB2YXJpYW50IGNvZGUgaW4gYSBmb3JtYXQKKyAgICAgKiBzdWl0YWJsZSBmb3Ig
dXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4K
KyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUg
dXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEBwYXJhbSBkaXNwVmFyICAgUmVjZWl2
ZXMgdGhlIHZhcmlhbnQncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBB
IHJlZmVyZW5jZSB0byAiZGlzcFZhciIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlWYXJpYW50KCAgY29uc3QgICBMb2NhbGUm
ICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwVmFyKSBjb25zdDsKKworICAgIC8q
KgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlIGlu
IGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkKKyAgICAgKiBpbiB0aGUgZGVmYXVs
dCBsb2NhbGUuICBUaGlzIGZ1bmN0aW9uIHVzZXMgZ2V0RGlzcGxheUxhbmd1YWdlKCksIGdldERp
c3BsYXlDb3VudHJ5KCksCisgICAgICogYW5kIGdldERpc3BsYXlWYXJpYW50KCkgdG8gZG8gaXRz
IHdvcmssIGFuZCBvdXRwdXRzIHRoZSBkaXNwbGF5IG5hbWUgaW4gdGhlIGZvcm1hdAorICAgICAq
ICJsYW5ndWFnZSAoY291bnRyeVssdmFyaWFudF0pIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgZGVm
YXVsdCBsb2NhbGUgaXMgZW5fVVMsIHRoZW4KKyAgICAgKiBmcl9GUidzIGRpc3BsYXkgbmFtZSB3
b3VsZCBiZSAiRnJlbmNoIChGcmFuY2UpIiwgYW5kIGVzX01YX1RyYWRpdGlvbmFsJ3MgZGlzcGxh
eSBuYW1lCisgICAgICogd291bGQgYmUgIlNwYW5pc2ggKE1leGljbyxUcmFkaXRpb25hbCkiLgor
ICAgICAqIEBwYXJhbSBuYW1lICBSZWNlaXZlcyB0aGUgbG9jYWxlJ3MgZGlzcGxheSBuYW1lLgor
ICAgICAqIEByZXR1cm4gICAgICBBIHJlZmVyZW5jZSB0byAibmFtZSIuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlOYW1lKCAg
ICAgICAgIFVuaWNvZGVTdHJpbmcmICBuYW1lKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZp
bGxzIGluICJuYW1lIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlIGluIGEgZm9ybWF0IHN1
aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkKKyAgICAgKiBpbiB0aGUgbG9jYWxlIHNwZWNmaWVkIGJ5
ICJkaXNwbGF5TG9jYWxlIi4gIFRoaXMgZnVuY3Rpb24gdXNlcyBnZXREaXNwbGF5TGFuZ3VhZ2Uo
KSwKKyAgICAgKiBnZXREaXNwbGF5Q291bnRyeSgpLCBhbmQgZ2V0RGlzcGxheVZhcmlhbnQoKSB0
byBkbyBpdHMgd29yaywgYW5kIG91dHB1dHMgdGhlIGRpc3BsYXkKKyAgICAgKiBuYW1lIGluIHRo
ZSBmb3JtYXQgImxhbmd1YWdlIChjb3VudHJ5Wyx2YXJpYW50XSkiLiAgRm9yIGV4YW1wbGUsIGlm
IGRpc3BsYXlMb2NhbGUgaXMKKyAgICAgKiBmcl9GUiwgdGhlbiBlbl9VUydzIGRpc3BsYXkgbmFt
ZSB3b3VsZCBiZSAiQW5nbGFpcyAoJkVhY3V0ZTt0YXRzLVVuaXMpIiwgYW5kIG5vX05PX05ZJ3MK
KyAgICAgKiBkaXNwbGF5IG5hbWUgd291bGQgYmUgIm5vcnYmZWFjdXRlO2dpZW4gKE5vcnYmZWdy
YXZlO2dlLE5ZKSIuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUg
bG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcGFyYW0gbmFt
ZSAgICAgIFJlY2VpdmVzIHRoZSBsb2NhbGUncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVy
biAgICAgICAgICBBIHJlZmVyZW5jZSB0byAibmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlOYW1lKCBjb25zdCAgIExv
Y2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgbmFtZSkgY29uc3Q7CisKKyAgICAvKioK
KyAgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoZSBsb2NhbGUuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCAgICAgICAgIGhhc2hDb2RlKHZvaWQp
IGNvbnN0OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbG9jYWxlIHRvIGJvZ3VzCisgICAg
ICogQSBib2d1cyBsb2NhbGUgcmVwcmVzZW50cyBhIG5vbi1leGlzdGluZyBsb2NhbGUgYXNzb2Np
YXRlZAorICAgICAqIHdpdGggc2VydmljZXMgdGhhdCBjYW4gYmUgaW5zdGFudGlhdGVkIGZyb20g
bm9uLWxvY2FsZSBkYXRhCisgICAgICogaW4gYWRkaXRpb24gdG8gbG9jYWxlIChmb3IgZXhhbXBs
ZSwgY29sbGF0aW9uIGNhbiBiZQorICAgICAqIGluc3RhbnRpYXRlZCBmcm9tIGEgbG9jYWxlIGFu
ZCBmcm9tIGEgcnVsZSBzZXQpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAg
IHZvaWQgc2V0VG9Cb2d1cygpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgYm9ndXMgc3Rh
dGUuIExvY2FsZSBvYmplY3QgY2FuIGJlIGJvZ3VzIGlmIGl0IGRvZXNuJ3QgZXhpc3QKKyAgICAg
KiBAcmV0dXJuIEZBTFNFIGlmIGl0IGlzIGEgcmVhbCBsb2NhbGUsIFRSVUUgaWYgaXQgaXMgYSBi
b2d1cyBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICBVQm9vbCBp
c0JvZ3VzKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2Yg
YWxsIGluc3RhbGxlZCBsb2NhbGVzLgorICAgICAqIEBwYXJhbSBjb3VudCBSZWNlaXZlcyB0aGUg
bnVtYmVyIG9mIGxvY2FsZXMgaW4gdGhlIGxpc3QuCisgICAgICogQHJldHVybiAgICAgIEEgcG9p
bnRlciB0byBhbiBhcnJheSBvZiBMb2NhbGUgb2JqZWN0cy4gIFRoaXMgYXJyYXkgaXMgdGhlIGxp
c3QKKyAgICAgKiAgICAgICAgICAgICAgb2YgYWxsIGxvY2FsZXMgd2l0aCBpbnN0YWxsZWQgcmVz
b3VyY2UgZmlsZXMuICBUaGUgY2FsbGVkIGRvZXMgTk9UCisgICAgICogICAgICAgICAgICAgIGdl
dCBvd25lcnNoaXAgb2YgdGhpcyBsaXN0LCBhbmQgbXVzdCBOT1QgZGVsZXRlIGl0LgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUqIFVfRVhQ
T1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIGNvdW50KTsKKworICAgIC8qKgorICAg
ICAqIEdldHMgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgMi1sZXR0ZXIgY291bnRyeSBjb2RlcyBk
ZWZpbmVkIGluIElTTyAzMTY2LiAgVGhpcyBpcyBhCisgICAgICogcG9pbnRlciB0byBhbiBhcnJh
eSBvZiBwb2ludGVycyB0byBhcnJheXMgb2YgY2hhci4gIEFsbCBvZiB0aGVzZSBwb2ludGVycyBh
cmUKKyAgICAgKiBvd25lZCBieSBJQ1UtLSBkbyBub3QgZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qg
d3JpdGUgdGhyb3VnaCB0aGVtLiAgVGhlIGFycmF5IGlzCisgICAgICogdGVybWluYXRlZCB3aXRo
IGEgbnVsbCBwb2ludGVyLgorICAgICAqIEByZXR1cm4gYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUg
Y291bnRyeSBjb2RlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBPUlQyIGdldElTT0NvdW50cmllcygpOworCisgICAg
LyoqCisgICAgICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBsYW5ndWFnZSBjb2RlcyBk
ZWZpbmVkIGluIElTTyA2MzkuICBUaGlzIGlzIGEgcG9pbnRlcgorICAgICAqIHRvIGFuIGFycmF5
IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBvZiBjaGFyLiAgQWxsIG9mIHRoZXNlIHBvaW50ZXJzIGFy
ZSBvd25lZAorICAgICAqIGJ5IElDVS0tIGRvIG5vdCBkZWxldGUgdGhlbSwgYW5kIGRvIG5vdCB3
cml0ZSB0aHJvdWdoIHRoZW0uICBUaGUgYXJyYXkgaXMKKyAgICAgKiB0ZXJtaW5hdGVkIHdpdGgg
YSBudWxsIHBvaW50ZXIuCisgICAgICogQHJldHVybiBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBs
YW5ndWFnZSBjb2RlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBPUlQyIGdldElTT0xhbmd1YWdlcygpOworCisgICAg
LyoqCisgICAgICogSUNVICJwb29yIG1hbidzIFJUVEkiLCByZXR1cm5zIGEgVUNsYXNzSUQgZm9y
IHRoaXMgY2xhc3MuCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAg
ICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQoKTsKKworICAgIC8q
KgorICAgICAqIElDVSAicG9vciBtYW4ncyBSVFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0
aGUgYWN0dWFsIGNsYXNzLgorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICov
CisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJRCgpIGNvbnN0OworCitwcm90
ZWN0ZWQ6IC8qIG9ubHkgcHJvdGVjdGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiBETyBOT1QgVVNF
LiAqLworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICogU2V0IHRo
aXMgZnJvbSBhIHNpbmdsZSBQT1NJWCBzdHlsZSBsb2NhbGUgc3RyaW5nLgorICAgICAqIEBpbnRl
cm5hbAorICAgICAqLworICAgIHZvaWQgc2V0RnJvbVBPU0lYSUQoY29uc3QgY2hhciAqcG9zaXhJ
RCk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworcHJpdmF0ZToKKyAgICAv
KioKKyAgICAgKiBJbml0aWFsaXplIHRoZSBsb2NhbGUgb2JqZWN0IHdpdGggYSBuZXcgbmFtZS4K
KyAgICAgKiBXYXMgZGVwcmVjYXRlZCAtIHVzZWQgaW4gaW1wbGVtZW50YXRpb24gLSBtb3ZlZCBp
bnRlcm5hbAorICAgICAqCisgICAgICogQHBhcmFtIGNMb2NhbGVJRCBUaGUgbmV3IGxvY2FsZSBu
YW1lLgorICAgICAqIEBwYXJhbSBjYW5vbmljYWxpemUgd2hldGhlciB0byBjYWxsIHVsb2NfY2Fu
b25pY2FsaXplIG9uIGNMb2NhbGVJRAorICAgICAqLworICAgIExvY2FsZSYgaW5pdChjb25zdCBj
aGFyKiBjTG9jYWxlSUQsIFVCb29sIGNhbm9uaWNhbGl6ZSk7CisKKyAgICAvKgorICAgICAqIElu
dGVybmFsIGNvbnN0cnVjdG9yIHRvIGFsbG93IGNvbnN0cnVjdGlvbiBvZiBhIGxvY2FsZSBvYmpl
Y3Qgd2l0aAorICAgICAqICAgTk8gc2lkZSBlZmZlY3RzLiAgIChEZWZhdWx0IGNvbnN0cnVjdG9y
IHRyaWVzIHRvIGdldAorICAgICAqICAgdGhlIGRlZmF1bHQgbG9jYWxlLikKKyAgICAgKi8KKyAg
ICBlbnVtIEVMb2NhbGVUeXBlIHsKKyAgICAgICAgZUJPR1VTCisgICAgfTsKKyAgICBMb2NhbGUo
RUxvY2FsZVR5cGUpOworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSB0aGUgbG9jYWxlIGNh
Y2hlIGZvciBjb21tb25seSB1c2VkIGxvY2FsZXMKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9jYWxl
ICpnZXRMb2NhbGVDYWNoZSh2b2lkKTsKKworICAgIGNoYXIgbGFuZ3VhZ2VbVUxPQ19MQU5HX0NB
UEFDSVRZXTsKKyAgICBjaGFyIHNjcmlwdFtVTE9DX1NDUklQVF9DQVBBQ0lUWV07CisgICAgY2hh
ciBjb3VudHJ5W1VMT0NfQ09VTlRSWV9DQVBBQ0lUWV07CisgICAgaW50MzJfdCB2YXJpYW50QmVn
aW47CisgICAgY2hhciogZnVsbE5hbWU7CisgICAgY2hhciBmdWxsTmFtZUJ1ZmZlcltVTE9DX0ZV
TExOQU1FX0NBUEFDSVRZXTsKKyAgICAvLyBuYW1lIHdpdGhvdXQga2V5d29yZHMKKyAgICBjaGFy
KiBiYXNlTmFtZTsKKyAgICB2b2lkIGluaXRCYXNlTmFtZShVRXJyb3JDb2RlJiBzdGF0dXMpOwor
CisgICAgVUJvb2wgZklzQm9ndXM7CisKKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZnZXRMb2Nh
bGUoaW50IGxvY2lkKTsKKworICAgIC8qKgorICAgICAqIEEgZnJpZW5kIHRvIGFsbG93IHRoZSBk
ZWZhdWx0IGxvY2FsZSB0byBiZSBzZXQgYnkgZWl0aGVyIHRoZSBDIG9yIEMrKyBBUEkuCisgICAg
ICogQGludGVybmFsCisgICAgICovCisgICAgZnJpZW5kIExvY2FsZSAqbG9jYWxlX3NldF9kZWZh
dWx0X2ludGVybmFsKGNvbnN0IGNoYXIgKiwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8q
KgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGZyaWVuZCB2b2lkIFVfQ0FMTENPTlYg
bG9jYWxlX2F2YWlsYWJsZV9pbml0KCk7Cit9OworCitpbmxpbmUgVUJvb2wKK0xvY2FsZTo6b3Bl
cmF0b3IhPShjb25zdCAgICBMb2NhbGUmICAgICBvdGhlcikgY29uc3QKK3sKKyAgICByZXR1cm4g
IW9wZXJhdG9yPT0ob3RoZXIpOworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6Omdl
dENvdW50cnkoKSBjb25zdAoreworICAgIHJldHVybiBjb3VudHJ5OworfQorCitpbmxpbmUgY29u
c3QgY2hhciAqCitMb2NhbGU6OmdldExhbmd1YWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbGFu
Z3VhZ2U7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0U2NyaXB0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gc2NyaXB0OworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2Nh
bGU6OmdldFZhcmlhbnQoKSBjb25zdAoreworICAgIHJldHVybiAmYmFzZU5hbWVbdmFyaWFudEJl
Z2luXTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXROYW1lKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZnVsbE5hbWU7Cit9CisKK2lubGluZSBVQm9vbAorTG9jYWxlOjppc0Jv
Z3VzKHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gZklzQm9ndXM7Cit9CisKK1VfTkFNRVNQQUNF
X0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5o
IGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ3NTk4YTUwZTZm
YTNiYWIyYWQ0OWUwMjJhYWYzOTZjYWMzMjllNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvcmJiaS5oCkBAIC0wLDAgKzEsNzgyIEBACisvKgorKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQgSW50ZXJuYXRpb25hbCBCdXNpbmVz
cyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiAgICoKKyogICBhbmQgb3RoZXJzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBE
ZXNjcmlwdGlvbgorKiAgIDEwLzIyLzk5ICAgIGFsYW4gICAgICAgIENyZWF0aW9uLgorKiAgIDEx
LzExLzk5ICAgIHJnaWxsYW0gICAgIENvbXBsZXRlIHBvcnQgZnJvbSBKYXZhLgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorKi8KKworI2lmbmRlZiBSQkJJX0gKKyNkZWZpbmUgUkJCSV9ICisKKyNpbmNsdWRlICJ1
bmljb2RlL3V0eXBlcy5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTogUnVs
ZSBCYXNlZCBCcmVhayBJdGVyYXRvcgorICovCisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVS
QVRJT04KKworI2luY2x1ZGUgInVuaWNvZGUvYnJraXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUv
dWRhdGEuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3BhcnNlZXJyLmgiCisjaW5jbHVkZSAidW5pY29k
ZS9zY2hyaXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWNocml0ZXIuaCIKKworCitzdHJ1Y3Qg
VVRyaWU7CisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKiBAaW50ZXJuYWwgKi8KK3N0cnVjdCBS
QkJJRGF0YUhlYWRlcjsKK2NsYXNzICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yVGFibGVzOworY2xh
c3MgIEJyZWFrSXRlcmF0b3I7CitjbGFzcyAgUkJCSURhdGFXcmFwcGVyOworY2xhc3MgIFVTdGFj
azsKK2NsYXNzICBMYW5ndWFnZUJyZWFrRW5naW5lOworY2xhc3MgIFVuaGFuZGxlZEVuZ2luZTsK
K3N0cnVjdCBSQkJJU3RhdGVUYWJsZTsKKworCisKKworLyoqCisgKgorICogQSBzdWJjbGFzcyBv
ZiBCcmVha0l0ZXJhdG9yIHdob3NlIGJlaGF2aW9yIGlzIHNwZWNpZmllZCB1c2luZyBhIGxpc3Qg
b2YgcnVsZXMuCisgKiA8cD5JbnN0YW5jZXMgb2YgdGhpcyBjbGFzcyBhcmUgbW9zdCBjb21tb25s
eSBjcmVhdGVkIGJ5IHRoZSBmYWN0b3J5IG1ldGhvZHMgb2YKKyAqICBCcmVha0l0ZXJhdG9yOjpj
cmVhdGVXb3JkSW5zdGFuY2UoKSwgQnJlYWtJdGVyYXRvcjo6Y3JlYXRlTGluZUluc3RhbmNlKCks
IGV0Yy4sCisgKiAgYW5kIHRoZW4gdXNlZCB2aWEgdGhlIGFic3RyYWN0IEFQSSBpbiBjbGFzcyBC
cmVha0l0ZXJhdG9yPC9wPgorICoKKyAqIDxwPlNlZSB0aGUgSUNVIFVzZXIgR3VpZGUgZm9yIGlu
Zm9ybWF0aW9uIG9uIEJyZWFrIEl0ZXJhdG9yIFJ1bGVzLjwvcD4KKyAqCisgKiA8cD5UaGlzIGNs
YXNzIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBzdWJjbGFzc2VkLiAgKENsYXNzIERpY3Rpb25hcnlC
YXNlZEJyZWFrSXRlcmF0b3IKKyAqICAgIGlzIGEgc3ViY2xhc3MsIGJ1dCB0aGF0IHJlbGF0aW9u
c2hpcCBpcyBlZmZlY3RpdmVseSBpbnRlcm5hbCB0byB0aGUgSUNVCisgKiAgICBpbXBsZW1lbnRh
dGlvbi4gIFRoZSBzdWJjbGFzc2luZyBpbnRlcmZhY2UgdG8gUnVsZXNCYXNlZEJyZWFrSXRlcmF0
b3IgaXMKKyAqICAgIG5vdCBwYXJ0IG9mIHRoZSBJQ1UgQVBJLCBhbmQgbWF5IG5vdCByZW1haW4g
c3RhYmxlLjwvcD4KKyAqCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yIC8qVV9GSU5BTCovIDogcHVibGljIEJyZWFrSXRlcmF0b3IgeworCitwcm90ZWN0ZWQ6
CisgICAgLyoqCisgICAgICogVGhlIFVUZXh0IHRocm91Z2ggd2hpY2ggdGhpcyBCcmVha0l0ZXJh
dG9yIGFjY2Vzc2VzIHRoZSB0ZXh0CisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVVRl
eHQgICpmVGV4dDsKKworICAgIC8qKgorICAgICAqICAgQSBjaGFyYWN0ZXIgaXRlcmF0b3IgdGhh
dCByZWZlcnMgdG8gdGhlIHNhbWUgdGV4dCBhcyB0aGUgVVRleHQsIGFib3ZlLgorICAgICAqICAg
T25seSBpbmNsdWRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBBUEksIHdoaWNoIHdhcyBi
YXNlZCBvbiBDaGFyYWN0ZXJJdGVyYXRvcnMuCisgICAgICogICBWYWx1ZSBtYXkgYmUgYWRvcHRl
ZCBmcm9tIG91dHNpZGUsIG9yIG9uZSBvZiBmU0NoYXJJdGVyIG9yIGZEQ2hhckl0ZXIsIGJlbG93
LgorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yICAqZkNoYXJJdGVyOworCisgICAgLyoq
CisgICAgICogICBXaGVuIHRoZSBpbnB1dCB0ZXh0IGlzIHByb3ZpZGVkIGJ5IGEgVW5pY29kZVN0
cmluZywgdGhpcyB3aWxsIHBvaW50IHRvCisgICAgICogICAgYSBjaGFyYWN0ZXJJdGVyYXRvciB0
aGF0IHdyYXBzIHRoYXQgZGF0YS4gIE5lZWRlZCBvbmx5IGZvciB0aGUKKyAgICAgKiAgICBpbXBs
ZW1lbnRhdGlvbiBvZiBnZXRUZXh0KCksIGEgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaXNzdWUu
CisgICAgICovCisgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgKmZTQ2hhckl0ZXI7CisKKyAg
ICAvKioKKyAgICAgKiAgV2hlbiB0aGUgaW5wdXQgdGV4dCBpcyBwcm92aWRlZCBieSBhIFVUZXh0
LCB0aGlzCisgICAgICogICAgZHVtbXkgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciBhbiBlbXB0eSBz
dHJpbmcgd2lsbAorICAgICAqICAgIGJlIHJldHVybmVkIGZyb20gZ2V0VGV4dCgpCisgICAgICov
CisgICAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciAqZkRDaGFySXRlcjsKKworICAgIC8qKgorICAg
ICAqIFRoZSBydWxlIGRhdGEgZm9yIHRoaXMgQnJlYWtJdGVyYXRvciBpbnN0YW5jZQorICAgICAq
IEBpbnRlcm5hbAorICAgICAqLworICAgIFJCQklEYXRhV3JhcHBlciAgICAqZkRhdGE7CisKKyAg
ICAvKiogSW5kZXggb2YgdGhlIFJ1bGUge3RhZ30gdmFsdWVzIGZvciB0aGUgbW9zdCByZWNlbnQg
bWF0Y2guCisgICAgICogIEBpbnRlcm5hbAorICAgICovCisgICAgaW50MzJfdCAgICAgICAgICAg
ICBmTGFzdFJ1bGVTdGF0dXNJbmRleDsKKworICAgIC8qKgorICAgICAqIFJ1bGUgdGFnIHZhbHVl
IHZhbGlkIGZsYWcuCisgICAgICogU29tZSBpdGVyYXRvciBvcGVyYXRpb25zIGRvbid0IGludHJp
bnNpY2FsbHkgc2V0IHRoZSBjb3JyZWN0IHRhZyB2YWx1ZS4KKyAgICAgKiBUaGlzIGZsYWcgbGV0
cyB1cyBsYXppbHkgY29tcHV0ZSB0aGUgdmFsdWUgaWYgd2UgYXJlIGV2ZXIgYXNrZWQgZm9yIGl0
LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVCb29sICAgICAgICAgICAgICAgZkxh
c3RTdGF0dXNJbmRleFZhbGlkOworCisgICAgLyoqCisgICAgICogQ291bnRlciBmb3IgdGhlIG51
bWJlciBvZiBjaGFyYWN0ZXJzIGVuY291bnRlcmVkIHdpdGggdGhlICJkaWN0aW9uYXJ5IgorICAg
ICAqICAgZmxhZyBzZXQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgdWludDMyX3Qg
ICAgICAgICAgICBmRGljdGlvbmFyeUNoYXJDb3VudDsKKworICAgIC8qKgorICAgICAqIFdoZW4g
YSByYW5nZSBvZiBjaGFyYWN0ZXJzIGlzIGRpdmlkZWQgdXAgdXNpbmcgdGhlIGRpY3Rpb25hcnks
IHRoZSBicmVhaworICAgICAqIHBvc2l0aW9ucyB0aGF0IGFyZSBkaXNjb3ZlcmVkIGFyZSBzdG9y
ZWQgaGVyZSwgcHJldmVudGluZyB1cyBmcm9tIGhhdmluZworICAgICAqIHRvIHVzZSBlaXRoZXIg
dGhlIGRpY3Rpb25hcnkgb3IgdGhlIHN0YXRlIHRhYmxlIGFnYWluIHVudGlsIHRoZSBpdGVyYXRv
cgorICAgICAqIGxlYXZlcyB0aGlzIHJhbmdlIG9mIHRleHQuIEhhcyB0aGUgbW9zdCBpbXBhY3Qg
Zm9yIGxpbmUgYnJlYWtpbmcuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJf
dCogICAgICAgICAgICBmQ2FjaGVkQnJlYWtQb3NpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBU
aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGZDYWNoZWRCcmVha1Bvc2l0aW9ucworICAgICAqIEBp
bnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZk51bUNhY2hlZEJyZWFr
UG9zaXRpb25zOworCisgICAgLyoqCisgICAgICogaWYgZkNhY2hlZEJyZWFrUG9zaXRpb25zIGlz
IG5vdCBudWxsLCB0aGlzIGluZGljYXRlcyB3aGljaCBpdGVtIGluIHRoZQorICAgICAqIGNhY2hl
IHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiByZWZlcnMgdG8KKyAgICAgKiBAaW50ZXJu
YWwKKyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZQb3NpdGlvbkluQ2FjaGU7Cisg
ICAgCisgICAgLyoqCisgICAgICoKKyAgICAgKiBJZiBwcmVzZW50LCBVU3RhY2sgb2YgTGFuZ3Vh
Z2VCcmVha0VuZ2luZSBvYmplY3RzIHRoYXQgbWlnaHQgaGFuZGxlCisgICAgICogZGljdGlvbmFy
eSBjaGFyYWN0ZXJzLiBTZWFyY2hlZCBmcm9tIHRvcCB0byBib3R0b20gdG8gZmluZCBhbiBvYmpl
Y3QgdG8KKyAgICAgKiBoYW5kbGUgYSBnaXZlbiBjaGFyYWN0ZXIuCisgICAgICogQGludGVybmFs
CisgICAgICovCisgICAgVVN0YWNrICAgICAgICAgICAgICAqZkxhbmd1YWdlQnJlYWtFbmdpbmVz
OworICAgIAorICAgIC8qKgorICAgICAqCisgICAgICogSWYgcHJlc2VudCwgdGhlIHNwZWNpYWwg
TGFuZ3VhZ2VCcmVha0VuZ2luZSB1c2VkIGZvciBoYW5kbGluZworICAgICAqIGNoYXJhY3RlcnMg
dGhhdCBhcmUgaW4gdGhlIGRpY3Rpb25hcnkgc2V0LCBidXQgbm90IGhhbmRsZWQgYnkgYW55Cisg
ICAgICogTGFuZ3VnYWdlQnJlYWtFbmdpbmUuCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgVW5oYW5kbGVkRW5naW5lICAgICAqZlVuaGFuZGxlZEJyZWFrRW5naW5lOworICAgIAorICAg
IC8qKgorICAgICAqCisgICAgICogVGhlIHR5cGUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLCBvciAt
MSBpZiBpdCBoYXMgbm90IGJlZW4gc2V0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAg
IGludDMyX3QgICAgICAgICAgICAgZkJyZWFrVHlwZTsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICAv
Lz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisgICAgLy8gY29uc3RydWN0b3JzCisgICAgLy89PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgKiBDb25zdGFu
dCB0byBiZSB1c2VkIGluIHRoZSBjb25zdHJ1Y3RvcgorICAgICAqIFJ1bGVCYXNlZEJyZWFrSXRl
cmF0b3IoUkJCSURhdGFIZWFkZXIqLCBFRG9udEFkb3B0LCBVRXJyb3JDb2RlICYpOworICAgICAq
IHdoaWNoIGRvZXMgbm90IGFkb3B0IHRoZSBtZW1vcnkgaW5kaWNhdGVkIGJ5IHRoZSBSQkJJRGF0
YUhlYWRlcioKKyAgICAgKiBwYXJhbWV0ZXIuCisgICAgICoKKyAgICAgKiBAaW50ZXJuYWwKKyAg
ICAgKi8KKyAgICBlbnVtIEVEb250QWRvcHQgeworICAgICAgICBrRG9udEFkb3B0CisgICAgfTsK
KworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZyb20gYSBmbGF0dGVuZWQgc2V0IG9mIFJC
QkkgZGF0YSBpbiBtYWxsb2NlZCBtZW1vcnkuCisgICAgICogICAgICAgICAgICAgUnVsZXNCYXNl
ZEJyZWFrSXRlcmF0b3JzIGJ1aWx0IGZyb20gYSBjdXN0b20gc2V0IG9mIHJ1bGVzCisgICAgICog
ICAgICAgICAgICAgYXJlIGNyZWF0ZWQgdmlhIHRoaXMgY29uc3RydWN0b3I7IHRoZSBydWxlcyBh
cmUgY29tcGlsZWQKKyAgICAgKiAgICAgICAgICAgICBpbnRvIG1lbW9yeSwgdGhlbiB0aGUgYnJl
YWsgaXRlcmF0b3IgaXMgY29uc3RydWN0ZWQgaGVyZS4KKyAgICAgKgorICAgICAqICAgICAgICAg
ICAgIFRoZSBicmVhayBpdGVyYXRvciBhZG9wdHMgdGhlIG1lbW9yeSwgYW5kIHdpbGwKKyAgICAg
KiAgICAgICAgICAgICBmcmVlIGl0IHdoZW4gZG9uZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAg
Ki8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFJCQklEYXRhSGVhZGVyKiBkYXRhLCBVRXJy
b3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IgZnJvbSBhIGZs
YXR0ZW5lZCBzZXQgb2YgUkJCSSBkYXRhIGluIG1lbW9yeSB3aGljaCBuZWVkIG5vdAorICAgICAq
ICAgICAgICAgICAgIGJlIG1hbGxvY2VkIChlLmcuIGl0IG1heSBiZSBhIG1lbW9yeS1tYXBwZWQg
ZmlsZSwgZXRjLikuCisgICAgICoKKyAgICAgKiAgICAgICAgICAgICBUaGlzIHZlcnNpb24gZG9l
cyBub3QgYWRvcHQgdGhlIG1lbW9yeSwgYW5kIGRvZXMgbm90CisgICAgICogICAgICAgICAgICAg
ZnJlZSBpdCB3aGVuIGRvbmUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgUnVsZUJh
c2VkQnJlYWtJdGVyYXRvcihjb25zdCBSQkJJRGF0YUhlYWRlciogZGF0YSwgZW51bSBFRG9udEFk
b3B0IGRvbnRBZG9wdCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKyNlbmRpZiAgLyogVV9ISURFX0lO
VEVSTkFMX0FQSSAqLworCisKKyAgICBmcmllbmQgY2xhc3MgUkJCSVJ1bGVCdWlsZGVyOworICAg
IC8qKiBAaW50ZXJuYWwgKi8KKyAgICBmcmllbmQgY2xhc3MgQnJlYWtJdGVyYXRvcjsKKworCisK
K3B1YmxpYzoKKworICAgIC8qKiBEZWZhdWx0IGNvbnN0cnVjdG9yLiAgQ3JlYXRlcyBhbiBlbXB0
eSBzaGVsbCBvZiBhbiBpdGVyYXRvciwgd2l0aCBubworICAgICAqICBydWxlcyBvciB0ZXh0IHRv
IGl0ZXJhdGUgb3Zlci4gICBPYmplY3QgY2FuIHN1YnNlcXVlbnRseSBiZSBhc3NpZ25lZCB0by4K
KyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVy
YXRvcigpOworCisgICAgLyoqCisgICAgICogQ29weSBjb25zdHJ1Y3Rvci4gIFdpbGwgcHJvZHVj
ZSBhIGJyZWFrIGl0ZXJhdG9yIHdpdGggdGhlIHNhbWUgYmVoYXZpb3IsCisgICAgICogYW5kIHdo
aWNoIGl0ZXJhdGVzIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhlIG9uZSBwYXNzZWQgaW4uCisg
ICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgcGFzc2VkIHRvIGJl
IGNvcGllZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFJ1bGVCYXNlZEJy
ZWFrSXRlcmF0b3IoY29uc3QgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciYgdGhhdCk7CisKKyAgICAv
KioKKyAgICAgKiBDb25zdHJ1Y3QgYSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGZyb20gYSBzZXQg
b2YgcnVsZXMgc3VwcGxpZWQgYXMgYSBzdHJpbmcuCisgICAgICogQHBhcmFtIHJ1bGVzIFRoZSBi
cmVhayBydWxlcyB0byBiZSB1c2VkLgorICAgICAqIEBwYXJhbSBwYXJzZUVycm9yICBJbiB0aGUg
ZXZlbnQgb2YgYSBzeW50YXggZXJyb3IgaW4gdGhlIHJ1bGVzLCBwcm92aWRlcyB0aGUgbG9jYXRp
b24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgd2l0aGluIHRoZSBydWxlcyBvZiB0aGUgcHJv
YmxlbS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5j
b3VudGVyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvciggY29uc3QgVW5pY29kZVN0cmluZyAgICAmcnVsZXMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVQYXJzZUVycm9yICAgICAgICAgICAmcGFyc2VFcnJvciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAgICAgICAgICAgICZzdGF0dXMp
OworCisgICAgLyoqCisgICAgICogQ29udHJ1Y3QgYSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGZy
b20gYSBzZXQgb2YgcHJlY29tcGlsZWQgYmluYXJ5IHJ1bGVzLgorICAgICAqIEJpbmFyeSBydWxl
cyBhcmUgb2J0YWluZWQgZnJvbSBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvcjo6Z2V0QmluYXJ5UnVs
ZXMoKS4KKyAgICAgKiBDb25zdHJ1Y3Rpb24gb2YgYSBicmVhayBpdGVyYXRvciBpbiB0aGlzIHdh
eSBpcyBzdWJzdGFudGlhbGx5IGZhc3RlciB0aGFuCisgICAgICogY29uc3R1Y3Rpb24gZnJvbSBz
b3VyY2UgcnVsZXMuCisgICAgICoKKyAgICAgKiBPd25lcnNoaXAgb2YgdGhlIHN0b3JhZ2UgY29u
dGFpbmluZyB0aGUgY29tcGlsZWQgcnVsZXMgcmVtYWlucyB3aXRoIHRoZQorICAgICAqIGNhbGxl
ciBvZiB0aGlzIGZ1bmN0aW9uLiAgVGhlIGNvbXBpbGVkIHJ1bGVzIG11c3Qgbm90IGJlICBtb2Rp
ZmllZCBvciAKKyAgICAgKiBkZWxldGVkIGR1cmluZyB0aGUgbGlmZSBvZiB0aGUgYnJlYWsgaXRl
cmF0b3IuCisgICAgICoKKyAgICAgKiBUaGUgY29tcGlsZWQgcnVsZXMgYXJlIG5vdCBjb21wYXRp
YmxlIGFjcm9zcyBkaWZmZXJlbnQgbWFqb3IgdmVyc2lvbnMgb2YgSUNVLgorICAgICAqIFRoZSBj
b21waWxlZCBydWxlcyBhcmUgY29tYXB0aWJsZSBvbmx5IGJldHdlZW4gbWFjaGluZXMgd2l0aCB0
aGUgc2FtZQorICAgICAqIGJ5dGUgb3JkZXJpbmcgKGxpdHRsZSBvciBiaWcgZW5kaWFuKSBhbmQg
dGhlIHNhbWUgYmFzZSBjaGFyYWN0ZXIgc2V0IGZhbWlseQorICAgICAqIChBU0NJSSBvciBFQkNE
SUMpLgorICAgICAqCisgICAgICogQHNlZSAjZ2V0QmluYXJ5UnVsZXMKKyAgICAgKiBAcGFyYW0g
Y29tcGlsZWRSdWxlcyBBIHBvaW50ZXIgdG8gdGhlIGNvbXBpbGVkIGJyZWFrIHJ1bGVzIHRvIGJl
IHVzZWQuCisgICAgICogQHBhcmFtIHJ1bGVMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgY29tcGls
ZWQgYnJlYWsgcnVsZXMsIGluIGJ5dGVzLiAgVGhpcworICAgICAqICAgY29ycmVzcG9uZHMgdG8g
dGhlIGxlbmd0aCB2YWx1ZSBwcm9kdWNlZCBieSBnZXRCaW5hcnlSdWxlcygpLgorICAgICAqIEBw
YXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24gYW55IGVycm9ycyBlbmNvdW50ZXJlZCwgaW5jbHVk
aW5nIGludmFsaWQKKyAgICAgKiAgIGJpbmFyeSBydWxlcy4KKyAgICAgKiBAc3RhYmxlIElDVSA0
LjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKGNvbnN0IHVpbnQ4X3QgKmNv
bXBpbGVkUnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICBy
dWxlTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAgICAmc3Rh
dHVzKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgY29uc3RydWN0b3IgdXNlcyB0aGUgdWRhdGEg
aW50ZXJmYWNlIHRvIGNyZWF0ZSBhIEJyZWFrSXRlcmF0b3IKKyAgICAgKiB3aG9zZSBpbnRlcm5h
bCB0YWJsZXMgbGl2ZSBpbiBhIG1lbW9yeS1tYXBwZWQgZmlsZS4gICJpbWFnZSIgaXMgYW4KKyAg
ICAgKiBJQ1UgVURhdGFNZW1vcnkgaGFuZGxlIGZvciB0aGUgcHJlLWNvbXBpbGVkIGJyZWFrIGl0
ZXJhdG9yIHRhYmxlcy4KKyAgICAgKiBAcGFyYW0gaW1hZ2UgaGFuZGxlIHRvIHRoZSBtZW1vcnkg
aW1hZ2UgZm9yIHRoZSBicmVhayBpdGVyYXRvciBkYXRhLgorICAgICAqICAgICAgICBPd25lcnNo
aXAgb2YgdGhlIFVEYXRhTWVtb3J5IGhhbmRsZSBwYXNzZXMgdG8gdGhlIEJyZWFrIEl0ZXJhdG9y
LAorICAgICAqICAgICAgICB3aGljaCB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBjbG9zaW5nIGl0
IHdoZW4gaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIEluZm9y
bWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQuCisgICAgICogQHNlZSB1ZGF0YV9vcGVu
CisgICAgICogQHNlZSAjZ2V0QmluYXJ5UnVsZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAg
ICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFVEYXRhTWVtb3J5KiBpbWFnZSwgVUVy
cm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIERlc3RydWN0b3IKKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+UnVsZUJhc2VkQnJlYWtJdGVy
YXRvcigpOworCisgICAgLyoqCisgICAgICogQXNzaWdubWVudCBvcGVyYXRvci4gIFNldHMgdGhp
cyBpdGVyYXRvciB0byBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLAorICAgICAqIGFuZCBpdGVyYXRl
IG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhlIG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFt
IHRoYXQgVGhlIFJ1bGVCYXNlZEJyZWFrSXRlcnRvciBwYXNzZWQgaW4KKyAgICAgKiBAcmV0dXJu
IHRoZSBuZXdseSBjcmVhdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IKKyAgICAgKiAgQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciYgb3BlcmF0b3I9
KGNvbnN0IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIHRoYXQpOworCisgICAgLyoqCisgICAgICog
RXF1YWxpdHkgb3BlcmF0b3IuICBSZXR1cm5zIFRSVUUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBh
cmUgb2YgdGhlCisgICAgICogc2FtZSBjbGFzcywgaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwgYW5k
IGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBCcmVh
a0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgICAqIEByZXR1cm4gVFJV
RSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBvZiB0aGUKKyAgICAgKiBzYW1lIGNsYXNzLCBo
YXZlIHRoZSBzYW1lIGJlaGF2aW9yLCBhbmQgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHRleHQuCisg
ICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0
b3I9PShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IE5vdC1lcXVhbCBvcGVyYXRvci4gIElmIG9wZXJhdG9yPT0gcmV0dXJucyBUUlVFLCB0aGlzIHJl
dHVybnMgRkFMU0UsCisgICAgICogYW5kIHZpY2UgdmVyc2EuCisgICAgICogQHBhcmFtIHRoYXQg
VGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGluZXF1YWxpdHkKKyAgICAgKiBA
cmV0dXJuIFRSVUUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBhcmUgbm90IHNhbWUuCisgICAgICog
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgQnJl
YWtJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbmV3
bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciB3aXRoIHRoZSBzYW1lCisgICAg
ICogYmVoYXZpb3IsIGFuZCBpdGVyYXRpbmcgb3ZlciB0aGUgc2FtZSB0ZXh0LCBhcyB0aGlzIG9u
ZS4KKyAgICAgKiBEaWZmZXJzIGZyb20gdGhlIGNvcHkgY29uc3RydWN0b3IgaW4gdGhhdCBpdCBp
cyBwb2x5bW9ycGhpYywgYW5kCisgICAgICogd2lsbCBjb3JyZWN0bHkgY2xvbmUgKGNvcHkpIGEg
ZGVyaXZlZCBjbGFzcy4KKyAgICAgKiBjbG9uZSgpIGlzIHRocmVhZCBzYWZlLiAgTXVsdGlwbGUg
dGhyZWFkcyBtYXkgc2ltdWx0YWVuZW91c2x5CisgICAgICogY2xvbmUgdGhlIHNhbWUgc291cmNl
IGJyZWFrIGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gYSBuZXdseS1jb25zdHJ1Y3RlZCBSdWxl
QmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBCcmVha0l0ZXJhdG9yKiBjbG9uZSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICog
Q29tcHV0ZSBhIGhhc2ggY29kZSBmb3IgdGhpcyBCcmVha0l0ZXJhdG9yCisgICAgICogQHJldHVy
biBBIGhhc2ggY29kZQorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIGludDMyX3QgaGFzaENvZGUodm9pZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHRoZSBkZXNjcmlwdGlvbiB1c2VkIHRvIGNyZWF0ZSB0aGlzIGl0ZXJhdG9yCisgICAgICog
QHJldHVybiB0aGUgZGVzY3JpcHRpb24gdXNlZCB0byBjcmVhdGUgdGhpcyBpdGVyYXRvcgorICAg
ICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGNvbnN0IFVuaWNvZGVT
dHJpbmcmIGdldFJ1bGVzKHZvaWQpIGNvbnN0OworCisgICAgLy89PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAg
IC8vIEJyZWFrSXRlcmF0b3Igb3ZlcnJpZGVzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAg
LyoqCisgICAgICogPHA+CisgICAgICogUmV0dXJuIGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0
aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBUaGUgcmV0dXJuZWQgY2hhcmFjdGVyIGl0
ZXJhdG9yIGlzIG93bmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvciwgYW5kIG11c3QKKyAgICAgKiBu
b3QgYmUgZGVsZXRlZCBieSB0aGUgY2FsbGVyLiAgUmVwZWF0ZWQgY2FsbHMgdG8gdGhpcyBmdW5j
dGlvbiBtYXkKKyAgICAgKiByZXR1cm4gdGhlIHNhbWUgQ2hhcmFjdGVySXRlcmF0b3IuCisgICAg
ICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoZSByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0
b3IgbXVzdCBub3QgYmUgdXNlZCBjb25jdXJyZW50bHkgd2l0aAorICAgICAqIHRoZSBicmVhayBp
dGVyYXRvci4gIElmIGNvbmN1cnJlbnQgb3BlcmF0aW9uIGlzIG5lZWRlZCwgY2xvbmUgdGhlCisg
ICAgICogcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIGZpcnN0IGFuZCBvcGVyYXRlIG9uIHRo
ZSBjbG9uZS4KKyAgICAgKiA8L3A+CisgICAgICogPHA+CisgICAgICogV2hlbiB0aGUgYnJlYWsg
aXRlcmF0b3IgaXMgb3BlcmF0aW5nIG9uIHRleHQgc3VwcGxpZWQgdmlhIGEgVVRleHQsCisgICAg
ICogdGhpcyBmdW5jdGlvbiB3aWxsIGZhaWwuICBMYWNraW5nIGFueSB3YXkgdG8gc2lnbmFsIGZh
aWx1cmVzLCBpdAorICAgICAqIHJldHVybnMgYW4gQ2hhcmFjdGVySXRlcmF0b3IgY29udGFpbmlu
ZyBubyB0ZXh0LgorICAgICAqIFRoZSBmdW5jdGlvbiBnZXRVVGV4dCgpIHByb3ZpZGVzIHNpbWls
YXIgZnVuY3Rpb25hbGl0eSwKKyAgICAgKiBpcyByZWxpYWJsZSwgYW5kIGlzIG1vcmUgZWZmaWNp
ZW50LgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIFRPRE86ICBkZXByZWNhdGUgdGhpcyBm
dW5jdGlvbj8KKyAgICAgKgorICAgICAqIEByZXR1cm4gQW4gaXRlcmF0b3Igb3ZlciB0aGUgdGV4
dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsICBDaGFyYWN0ZXJJdGVyYXRvciYgZ2V0VGV4dCh2b2lkKSBjb25zdDsKKworCisgICAg
LyoqCisgICAgICAqICBHZXQgYSBVVGV4dCBmb3IgdGhlIHRleHQgYmVpbmcgYW5hbHl6ZWQuCisg
ICAgICAqICBUaGUgcmV0dXJuZWQgVVRleHQgaXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBVVGV4
dCB1c2VkIGludGVybmFsbHkKKyAgICAgICogIGJ5IHRoZSBicmVhayBpdGVyYXRvciBpbXBsZW1l
bnRhdGlvbi4gIEl0IGNhbiBzYWZlbHkgYmUgdXNlZCB0bworICAgICAgKiAgYWNjZXNzIHRoZSB0
ZXh0IHdpdGhvdXQgaW1wYWN0aW5nIGFueSBicmVhayBpdGVyYXRvciBvcGVyYXRpb25zLAorICAg
ICAgKiAgYnV0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmIG11c3Qgbm90IGJlIGFsdGVyZWQu
CisgICAgICAqCisgICAgICAqIEBwYXJhbSBmaWxsSW4gQSBVVGV4dCB0byBiZSBmaWxsZWQgaW4u
ICBJZiBOVUxMLCBhIG5ldyBVVGV4dCB3aWxsIGJlCisgICAgICAqICAgICAgICAgICBhbGxvY2F0
ZWQgdG8gaG9sZCB0aGUgcmVzdWx0LgorICAgICAgKiBAcGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFu
eSBlcnJvciBjb2Rlcy4KKyAgICAgICogQHJldHVybiAgIFRoZSBjdXJyZW50IFVUZXh0IGZvciB0
aGlzIGJyZWFrIGl0ZXJhdG9yLiAgSWYgYW4gaW5wdXQKKyAgICAgICogICAgICAgICAgIFVUZXh0
IHdhcyBwcm92aWRlZCwgaXQgd2lsbCBhbHdheXMgYmUgcmV0dXJuZWQuCisgICAgICAqIEBzdGFi
bGUgSUNVIDMuNAorICAgICAgKi8KKyAgICAgdmlydHVhbCBVVGV4dCAqZ2V0VVRleHQoVVRleHQg
KmZpbGxJbiwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFNl
dCB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhpcyBmdW5j
dGlvbiByZXNldHMKKyAgICAgKiB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhl
IGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBBbiBpdGVyYXRv
ciBvdmVyIHRoZSB0ZXh0IHRvIGFuYWx5emUuICBUaGUgQnJlYWtJdGVyYXRvcgorICAgICAqIHRh
a2VzIG93bmVyc2hpcCBvZiB0aGUgY2hhcmFjdGVyIGl0ZXJhdG9yLiAgVGhlIGNhbGxlciBNVVNU
IE5PVCBkZWxldGUgaXQhCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgdm9pZCBhZG9wdFRleHQoQ2hhcmFjdGVySXRlcmF0b3IqIG5ld1RleHQpOworCisgICAg
LyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRl
eHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBw
b3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdU
ZXh0IFRoZSB0ZXh0IHRvIGFuYWx5emUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0KGNvbnN0IFVuaWNvZGVTdHJpbmcmIG5ld1RleHQp
OworCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGJyZWFrIGl0ZXJhdG9yIHRvIG9wZXJhdGUg
b3ZlciB0aGUgdGV4dCByZXByZXNlbnRlZCBieQorICAgICAqIHRoZSBVVGV4dC4gIFRoZSBpdGVy
YXRvciBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgc3RhcnQuCisgICAgICoKKyAgICAgKiBUaGlz
IGZ1bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgc3VwcGxpZWQgVVRleHQuICBU
aGlzIG1lYW5zCisgICAgICogdGhhdCB0aGUgY2FsbGVyIGlzIGZyZWUgdG8gaW1tZWRpYXRlbHkg
Y2xvc2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRoZQorICAgICAqIFV0ZXh0IHRoYXQgd2FzIHBhc3Nl
ZCBhcyBhIHBhcmFtZXRlciwgYnV0IHRoYXQgdGhlIHVuZGVybHlpbmcgdGV4dCBpdHNlbGYKKyAg
ICAgKiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdoaWxlIGJlaW5nIHJlZmVyZW5jZWQgYnkgdGhlIGJy
ZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIHRleHQgICAgVGhlIFVUZXh0IHVz
ZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBzdGF0dXMgIFJlY2VpdmVzIGFu
eSBlcnJvciBjb2Rlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAzLjQKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIHZvaWQgIHNldFRleHQoVVRleHQgKnRleHQsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAg
ICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUg
YmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCBwb3NpdGlvbiB6ZXJvLgorICAgICAqIEByZXR1cm4gVGhl
IG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCB6ZXJvLgorICAgICAqICBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZmlyc3Qodm9pZCk7CisK
KyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0
aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4gVGhlIHRleHQncyBwYXN0LXRoZS1l
bmQgb2Zmc2V0LgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IGludDMyX3QgbGFzdCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVy
YXRvciBlaXRoZXIgZm9yd2FyZCBvciBiYWNrd2FyZCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBz
dGVwcy4KKyAgICAgKiBOZWdhdGl2ZSB2YWx1ZXMgbW92ZSBiYWNrd2FyZCwgYW5kIHBvc2l0aXZl
IHZhbHVlcyBtb3ZlIGZvcndhcmQuICBUaGlzIGlzCisgICAgICogZXF1aXZhbGVudCB0byByZXBl
YXRlZGx5IGNhbGxpbmcgbmV4dCgpIG9yIHByZXZpb3VzKCkuCisgICAgICogQHBhcmFtIG4gVGhl
IG51bWJlciBvZiBzdGVwcyB0byBtb3ZlLiAgVGhlIHNpZ24gaW5kaWNhdGVzIHRoZSBkaXJlY3Rp
b24KKyAgICAgKiAobmVnYXRpdmUgaXMgYmFja3dhcmRzLCBhbmQgcG9zaXRpdmUgaXMgZm9yd2Fy
ZHMpLgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBvZmZzZXQgb2YgdGhlIGJvdW5kYXJ5
IHBvc2l0aW9uIG4gYm91bmRhcmllcyBhd2F5IGZyb20KKyAgICAgKiB0aGUgY3VycmVudCBvbmUu
CisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBu
ZXh0KGludDMyX3Qgbik7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3Ig
dG8gdGhlIG5leHQgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRp
b24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRoaXMgb25lLgorICAgICAqICBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dCh2b2lkKTsKKworICAg
IC8qKgorICAgICAqIE1vdmVzIHRoZSBpdGVyYXRvciBiYWNrd2FyZHMsIHRvIHRoZSBsYXN0IGJv
dW5kYXJ5IHByZWNlZGluZyB0aGlzIG9uZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBv
ZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICog
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmV2aW91cyh2
b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRo
ZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBmb2xsb3dpbmcKKyAgICAgKiB0aGUgc3BlY2lmaWVk
IHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIGZyb20gd2hpY2gg
dG8gYmVnaW4gc2VhcmNoaW5nIGZvciBhIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4g
VGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBicmVhayBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlv
bi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90
IGZvbGxvd2luZyhpbnQzMl90IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBp
dGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBiZWZvcmUgdGhl
CisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBv
c2l0aW9uIHRvIGJlZ2luIHNlYXJjaGluZyBmb3IgYSBicmVhayBmcm9tLgorICAgICAqIEByZXR1
cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3RhcnRpbmcg
cG9zaXRpb24uCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
aW50MzJfdCBwcmVjZWRpbmcoaW50MzJfdCBvZmZzZXQpOworCisgICAgLyoqCisgICAgICogUmV0
dXJucyB0cnVlIGlmIHRoZSBzcGVjZmllZCBwb3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9u
LiAgQXMgYSBzaWRlCisgICAgICogZWZmZWN0LCBsZWF2ZXMgdGhlIGl0ZXJhdG9yIHBvaW50aW5n
IHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBhdAorICAgICAqIG9yIGFmdGVyICJvZmZz
ZXQiLgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBjaGVjay4KKyAgICAgKiBA
cmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBpc0JvdW5kYXJ5KGlu
dDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgaXRl
cmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBv
c2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50
MzJfdCBjdXJyZW50KHZvaWQpIGNvbnN0OworCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhl
IHN0YXR1cyB0YWcgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3Qg
cmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4gIEZvciBicmVhayBydWxl
cyB0aGF0IGRvIG5vdCBzcGVjaWZ5IGEKKyAgICAgKiBzdGF0dXMsIGEgZGVmYXVsdCB2YWx1ZSBv
ZiAwIGlzIHJldHVybmVkLiAgSWYgbW9yZSB0aGFuIG9uZSBicmVhayBydWxlCisgICAgICogd291
bGQgY2F1c2UgYSBib3VuZGFyeSB0byBiZSBsb2NhdGVkIGF0IHNvbWUgcG9zaXRpb24gaW4gdGhl
IHRleHQsCisgICAgICogdGhlIG51bWVyaWNhbGx5IGxhcmdlc3Qgb2YgdGhlIGFwcGxpY2FibGUg
c3RhdHVzIHZhbHVlcyBpcyByZXR1cm5lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBPZiB0aGUgc3Rh
bmRhcmQgdHlwZXMgb2YgSUNVIGJyZWFrIGl0ZXJhdG9ycywgb25seSB3b3JkIGJyZWFrIGFuZAor
ICAgICAqIGxpbmUgYnJlYWsgcHJvdmlkZSBzdGF0dXMgdmFsdWVzLiAgVGhlIHZhbHVlcyBhcmUg
ZGVmaW5lZCBpbgorICAgICAqIHRoZSBoZWFkZXIgZmlsZSB1YnJrLmguICBGb3IgV29yZCBicmVh
a3MsIHRoZSBzdGF0dXMgYWxsb3dzIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4gd29yZHMKKyAgICAg
KiB0aGF0IGNvbnRhaW4gYWxwaGFiZXRpYyBsZXR0ZXJzLCAid29yZHMiIHRoYXQgYXBwZWFyIHRv
IGJlIG51bWJlcnMsCisgICAgICogcHVuY3R1YXRpb24gYW5kIHNwYWNlcywgd29yZHMgY29udGFp
bmluZyBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzLCBhbmQKKyAgICAgKiBtb3JlLiAgRm9yIExpbmUg
QnJlYWssIHRoZSBzdGF0dXMgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIGhhcmQgKG1hbmRhdG9yeSkg
YnJlYWtzCisgICAgICogYW5kIHNvZnQgKHBvdGVudGlhbCkgYnJlYWsgcG9zaXRpb25zLgorICAg
ICAqIDxwPgorICAgICAqIDxjb2RlPmdldFJ1bGVTdGF0dXMoKTwvY29kZT4gY2FuIGJlIGNhbGxl
ZCBhZnRlciBvYnRhaW5pbmcgYSBib3VuZGFyeQorICAgICAqIHBvc2l0aW9uIGZyb20gPGNvZGU+
bmV4dCgpPC9jb2RlPiwgPGNvZGU+cHJldmlvdXMoKTwvY29kZT4sIG9yCisgICAgICogYW55IG90
aGVyIGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyB0aGF0IHJldHVybnMgYSBib3VuZGFyeSBwb3Np
dGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIGNyZWF0aW5nIGN1c3RvbSBicmVhayBydWxl
cywgb25lIGlzIGZyZWUgdG8gZGVmaW5lIHdoYXRldmVyCisgICAgICogc3RhdHVzIHZhbHVlcyBt
YXkgYmUgY29udmVuaWVudCBmb3IgdGhlIGFwcGxpY2F0aW9uLgorICAgICAqIDxwPgorICAgICAq
IE5vdGU6IHRoaXMgZnVuY3Rpb24gaXMgbm90IHRocmVhZCBzYWZlLiAgSXQgc2hvdWxkIG5vdCBo
YXZlIGJlZW4KKyAgICAgKiAgICAgICBkZWNsYXJlZCBjb25zdCwgYW5kIHRoZSBjb25zdCByZW1h
aW5zIG9ubHkgZm9yIGNvbXBhdGliaWxpdHkKKyAgICAgKiAgICAgICByZWFzb25zLiAgKFRoZSBm
dW5jdGlvbiBpcyBsb2dpY2FsbHkgY29uc3QsIGJ1dCBub3QgYml0LXdpc2UgY29uc3QpLgorICAg
ICAqIDxwPgorICAgICAqIEByZXR1cm4gdGhlIHN0YXR1cyBmcm9tIHRoZSBicmVhayBydWxlIHRo
YXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqIHJldHVybmVkIGJyZWFrIHBv
c2l0aW9uLgorICAgICAqCisgICAgICogQHNlZSBVV29yZEJyZWFrCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4yCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXMoKSBjb25z
dDsKKworICAgLyoqCisgICAgKiBHZXQgdGhlIHN0YXR1cyAodGFnKSB2YWx1ZXMgZnJvbSB0aGUg
YnJlYWsgcnVsZShzKSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QKKyAgICAqIHJlY2VudGx5IHJl
dHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICogPHA+CisgICAgKiBUaGUgcmV0dXJuZWQgc3Rh
dHVzIHZhbHVlKHMpIGFyZSBzdG9yZWQgaW50byBhbiBhcnJheSBwcm92aWRlZCBieSB0aGUgY2Fs
bGVyLgorICAgICogVGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHNvcnRlZCAoYXNjZW5kaW5nKSBv
cmRlci4KKyAgICAqIElmIHRoZSBjYXBhY2l0eSBvZiB0aGUgb3V0cHV0IGFycmF5IGlzIGluc3Vm
ZmljaWVudCB0byBob2xkIHRoZSBkYXRhLAorICAgICogIHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVu
Y2F0ZWQgdG8gdGhlIGF2YWlsYWJsZSBsZW5ndGgsIGFuZCBhCisgICAgKiAgVV9CVUZGRVJfT1ZF
UkZMT1dfRVJST1Igd2lsbCBiZSBzaWduYWxlZC4KKyAgICAqCisgICAgKiBAcGFyYW0gZmlsbElu
VmVjIGFuIGFycmF5IHRvIGJlIGZpbGxlZCBpbiB3aXRoIHRoZSBzdGF0dXMgdmFsdWVzLgorICAg
ICogQHBhcmFtIGNhcGFjaXR5ICB0aGUgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCB2ZWN0b3IuICBB
IGxlbmd0aCBvZiB6ZXJvIGNhdXNlcworICAgICogICAgICAgICAgICAgICAgICB0aGUgZnVuY3Rp
b24gdG8gcmV0dXJuIHRoZSBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcywgaW4gdGhlCisgICAgKiAg
ICAgICAgICAgICAgICAgIG5vcm1hbCB3YXksIHdpdGhvdXQgYXR0ZW10cGluZyB0byBzdG9yZSBh
bnkgdmFsdWVzLgorICAgICogQHBhcmFtIHN0YXR1cyAgICByZWNlaXZlcyBlcnJvciBjb2Rlcy4K
KyAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIG51bWJlciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMg
ZnJvbSBydWxlcyB0aGF0IGRldGVybWluZWQKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIG1v
c3QgcmVjZW50IGJvdW5kYXJ5IHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAq
ICAgICAgICAgICAgICAgICAgSW4gdGhlIGV2ZW50IG9mIGEgVV9CVUZGRVJfT1ZFUkZMT1dfRVJS
T1IsIHRoZSByZXR1cm4gdmFsdWUKKyAgICAqICAgICAgICAgICAgICAgICAgaXMgdGhlIHRvdGFs
IG51bWJlciBvZiBzdGF0dXMgdmFsdWVzIHRoYXQgd2VyZSBhdmFpbGFibGUsCisgICAgKiAgICAg
ICAgICAgICAgICAgIG5vdCB0aGUgcmVkdWNlZCBudW1iZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJl
dHVybmVkLgorICAgICogQHNlZSBnZXRSdWxlU3RhdHVzCisgICAgKiBAc3RhYmxlIElDVSAzLjAK
KyAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3RhdHVzVmVjKGludDMyX3QgKmZp
bGxJblZlYywgaW50MzJfdCBjYXBhY2l0eSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8q
KgorICAgICAqIFJldHVybnMgYSB1bmlxdWUgY2xhc3MgSUQgUE9MWU1PUlBISUNBTExZLiAgUHVy
ZSB2aXJ0dWFsIG92ZXJyaWRlLgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHRvIGltcGxlbWVudCBh
IHNpbXBsZSB2ZXJzaW9uIG9mIFJUVEksIHNpbmNlIG5vdCBhbGwKKyAgICAgKiBDKysgY29tcGls
ZXJzIHN1cHBvcnQgZ2VudWluZSBSVFRJLiAgUG9seW1vcnBoaWMgb3BlcmF0b3I9PSgpIGFuZAor
ICAgICAqIGNsb25lKCkgbWV0aG9kcyBjYWxsIHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICog
QHJldHVybiAgICAgICAgICBUaGUgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0LiBBbGwgb2JqZWN0
cyBvZiBhCisgICAgICogICAgICAgICAgICAgICAgICBnaXZlbiBjbGFzcyBoYXZlIHRoZSBzYW1l
IGNsYXNzIElELiAgT2JqZWN0cyBvZgorICAgICAqICAgICAgICAgICAgICAgICAgb3RoZXIgY2xh
c3NlcyBoYXZlIGRpZmZlcmVudCBjbGFzcyBJRHMuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNsYXNzIElEIGZvciB0aGlzIGNsYXNz
LiAgVGhpcyBpcyB1c2VmdWwgb25seSBmb3IKKyAgICAgKiBjb21wYXJpbmcgdG8gYSByZXR1cm4g
dmFsdWUgZnJvbSBnZXREeW5hbWljQ2xhc3NJRCgpLiAgRm9yIGV4YW1wbGU6CisgICAgICoKKyAg
ICAgKiAgICAgIEJhc2UqIHBvbHltb3JwaGljX3BvaW50ZXIgPSBjcmVhdGVQb2x5bW9ycGhpY09i
amVjdCgpOworICAgICAqICAgICAgaWYgKHBvbHltb3JwaGljX3BvaW50ZXItPmdldER5bmFtaWND
bGFzc0lEKCkgPT0KKyAgICAgKiAgICAgICAgICBEZXJpdmVkOjpnZXRTdGF0aWNDbGFzc0lEKCkp
IC4uLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICBUaGUgY2xhc3MgSUQgZm9yIGFs
bCBvYmplY3RzIG9mIHRoaXMgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgc3RhdGljIFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKHZvaWQpOwor
CisgICAgLyoqCisgICAgICogRGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5LiBVc2UgY2xvbmUoKSBp
bnN0ZWFkLgorICAgICAqCisgICAgICogQ3JlYXRlIGEgY2xvbmUgKGNvcHkpIG9mIHRoaXMgYnJl
YWsgaXRlcmF0b3IgaW4gbWVtb3J5IHByb3ZpZGVkCisgICAgICogIGJ5IHRoZSBjYWxsZXIuICBU
aGUgaWRlYSBpcyB0byBpbmNyZWFzZSBwZXJmb3JtYW5jZSBieSBhdm9pZGluZworICAgICAqICBh
IHN0b3JhZ2UgYWxsb2NhdGlvbi4gIFVzZSBvZiB0aGlzIGZ1bmN0b2luIGlzIE5PVCBSRUNPTU1F
TkRFRC4KKyAgICAgKiAgUGVyZm9ybWFuY2UgZ2FpbnMgYXJlIG1pbmltYWwsIGFuZCBjb3JyZWN0
IGJ1ZmZlciBtYW5hZ2VtZW50IGlzCisgICAgICogIHRyaWNreS4gIFVzZSBjbG9uZSgpIGluc3Rl
YWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhY2tCdWZmZXIgIFRoZSBwb2ludGVyIHRvIHRo
ZSBtZW1vcnkgaW50byB3aGljaCB0aGUgY2xvbmVkIG9iamVjdAorICAgICAqICAgICAgICAgICAg
ICAgICAgICAgc2hvdWxkIGJlIHBsYWNlZC4gIElmIE5VTEwsICBhbGxvY2F0ZSBoZWFwIG1lbW9y
eQorICAgICAqICAgICAgICAgICAgICAgICAgICAgZm9yIHRoZSBjbG9uZWQgb2JqZWN0LgorICAg
ICAqIEBwYXJhbSBCdWZmZXJTaXplICAgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlci4gIElmIHplcm8s
IHJldHVybiB0aGUgcmVxdWlyZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciBz
aXplLCBidXQgZG8gbm90IGNsb25lIHRoZSBvYmplY3QuICBJZiB0aGUKKyAgICAgKiAgICAgICAg
ICAgICAgICAgICAgIHNpemUgd2FzIHRvbyBzbWFsbCAoYnV0IG5vdCB6ZXJvKSwgYWxsb2NhdGUg
aGVhcAorICAgICAqICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZSBmb3IgdGhlIGNsb25lZCBv
YmplY3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzICAgICAgIEVycm9yIHN0YXR1cy4g
IFVfU0FGRUNMT05FX0FMTE9DQVRFRF9XQVJOSU5HIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybmVkIGlmIHRoZSB0aGUgcHJvdmlkZWQgYnVmZmVyIHdhcyB0b28gc21h
bGwsIGFuZAorICAgICAqICAgICAgICAgICAgICAgICAgICAgdGhlIGNsb25lIHdhcyB0aGVyZWZv
cmUgcHV0IG9uIHRoZSBoZWFwLgorICAgICAqCisgICAgICogQHJldHVybiAgUG9pbnRlciB0byB0
aGUgY2xvbmUgb2JqZWN0LiAgVGhpcyBtYXkgZGlmZmVyIGZyb20gdGhlIHN0YWNrQnVmZmVyCisg
ICAgICogICAgICAgICAgYWRkcmVzcyBpZiB0aGUgYnl0ZSBhbGlnbm1lbnQgb2YgdGhlIHN0YWNr
IGJ1ZmZlciB3YXMgbm90IHN1aXRhYmxlCisgICAgICogICAgICAgICAgb3IgaWYgdGhlIHN0YWNr
QnVmZmVyIHdhcyB0b28gc21hbGwgdG8gaG9sZCB0aGUgY2xvbmUuCisgICAgICogQGRlcHJlY2F0
ZWQgSUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqLworICAgIHZpcnR1YWwgQnJl
YWtJdGVyYXRvciAqICBjcmVhdGVCdWZmZXJDbG9uZSh2b2lkICpzdGFja0J1ZmZlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCAmQnVmZmVy
U2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVy
cm9yQ29kZSAmc3RhdHVzKTsKKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBiaW5hcnkg
Zm9ybSBvZiBjb21waWxlZCBicmVhayBydWxlcywKKyAgICAgKiB3aGljaCBjYW4gdGhlbiBiZSB1
c2VkIHRvIGNyZWF0ZSBhIG5ldyBicmVhayBpdGVyYXRvciBhdCBzb21lCisgICAgICogdGltZSBp
biB0aGUgZnV0dXJlLiAgQ3JlYXRpbmcgYSBicmVhayBpdGVyYXRvciBmcm9tIHByZS1jb21waWxl
ZCBydWxlcworICAgICAqIGlzIG11Y2ggZmFzdGVyIHRoYW4gYnVpbGRpbmcgb25lIGZyb20gdGhl
IHNvdXJjZSBmb3JtIG9mIHRoZQorICAgICAqIGJyZWFrIHJ1bGVzLgorICAgICAqCisgICAgICog
VGhlIGJpbmFyeSBkYXRhIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCB0aGUgc2FtZSB2ZXJzaW9uIG9m
IElDVQorICAgICAqICBhbmQgb24gdGhlIHNhbWUgcGxhdGZvcm0gdHlwZSAocHJvY2Vzc29yIGVu
ZGlhbi1uZXNzKQorICAgICAqCisgICAgICogQHBhcmFtIGxlbmd0aCBSZXR1cm5zIHRoZSBsZW5n
dGggb2YgdGhlIGJpbmFyeSBkYXRhLiAgKE91dCBwYXJhbXRlci4pCisgICAgICoKKyAgICAgKiBA
cmV0dXJuICAgQSBwb2ludGVyIHRvIHRoZSBiaW5hcnkgKGNvbXBpbGVkKSBydWxlIGRhdGEuICBU
aGUgc3RvcmFnZQorICAgICAqICAgICAgICAgICBiZWxvbmdzIHRvIHRoZSBSdWxlc0Jhc2VkQnJl
YWtJdGVyYXRvciBvYmplY3QsIG5vdCB0aGUKKyAgICAgKiAgICAgICAgICAgY2FsbGVyLCBhbmQg
bXVzdCBub3QgYmUgbW9kaWZpZWQgb3IgZGVsZXRlZC4KKyAgICAgKiBAc3RhYmxlIElDVSA0LjgK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIGNvbnN0IHVpbnQ4X3QgKmdldEJpbmFyeVJ1bGVzKHVpbnQz
Ml90ICZsZW5ndGgpOworCisgICAgLyoqCisgICAgICogIFNldCB0aGUgc3ViamVjdCB0ZXh0IHN0
cmluZyB1cG9uIHdoaWNoIHRoZSBicmVhayBpdGVyYXRvciBpcyBvcGVyYXRpbmcKKyAgICAgKiAg
d2l0aG91dCBjaGFuZ2luZyBhbnkgb3RoZXIgYXNwZWN0IG9mIHRoZSBtYXRjaGluZyBzdGF0ZS4K
KyAgICAgKiAgVGhlIG5ldyBhbmQgcHJldmlvdXMgdGV4dCBzdHJpbmdzIG11c3QgaGF2ZSB0aGUg
c2FtZSBjb250ZW50LgorICAgICAqCisgICAgICogIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQg
Zm9yIHVzZSBpbiBlbnZpcm9ubWVudHMgd2hlcmUgSUNVIGlzIG9wZXJhdGluZyBvbgorICAgICAq
ICBzdHJpbmdzIHRoYXQgbWF5IG1vdmUgYXJvdW5kIGluIG1lbW9yeS4gIEl0IHByb3ZpZGVzIGEg
bWVjaGFuaXNtIGZvciBub3RpZnlpbmcKKyAgICAgKiAgSUNVIHRoYXQgdGhlIHN0cmluZyBoYXMg
YmVlbiByZWxvY2F0ZWQsIGFuZCBwcm92aWRpbmcgYSBuZXcgVVRleHQgdG8gYWNjZXNzIHRoZQor
ICAgICAqICBzdHJpbmcgaW4gaXRzIG5ldyBwb3NpdGlvbi4KKyAgICAgKgorICAgICAqICBOb3Rl
IHRoYXQgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uIG5ldmVyIGNvcGllcyB0aGUg
dW5kZXJseWluZyB0ZXh0CisgICAgICogIG9mIGEgc3RyaW5nIGJlaW5nIHByb2Nlc3NlZCwgYnV0
IGFsd2F5cyBvcGVyYXRlcyBkaXJlY3RseSBvbiB0aGUgb3JpZ2luYWwgdGV4dAorICAgICAqICBw
cm92aWRlZCBieSB0aGUgdXNlci4gUmVmcmVzaGluZyBzaW1wbHkgZHJvcHMgdGhlIHJlZmVyZW5j
ZXMgdG8gdGhlIG9sZCB0ZXh0CisgICAgICogIGFuZCByZXBsYWNlcyB0aGVtIHdpdGggcmVmZXJl
bmNlcyB0byB0aGUgbmV3LgorICAgICAqCisgICAgICogIENhdXRpb246ICB0aGlzIGZ1bmN0aW9u
IGlzIG5vcm1hbGx5IHVzZWQgb25seSBieSB2ZXJ5IHNwZWNpYWxpemVkLAorICAgICAqICBzeXN0
ZW0tbGV2ZWwgY29kZS4gIE9uZSBleGFtcGxlIHVzZSBjYXNlIGlzIHdpdGggZ2FyYmFnZSBjb2xs
ZWN0aW9uIHRoYXQgbW92ZXMKKyAgICAgKiAgdGhlIHRleHQgaW4gbWVtb3J5LgorICAgICAqCisg
ICAgICogQHBhcmFtIGlucHV0ICAgICAgVGhlIG5ldyAobW92ZWQpIHRleHQgc3RyaW5nLgorICAg
ICAqIEBwYXJhbSBzdGF0dXMgICAgIFJlY2VpdmVzIGVycm9ycyBkZXRlY3RlZCBieSB0aGlzIGZ1
bmN0aW9uLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICp0aGlzCisgICAgICoKKyAgICAgKiBA
c3RhYmxlIElDVSA0OQorICAgICAqLworICAgIHZpcnR1YWwgUnVsZUJhc2VkQnJlYWtJdGVyYXRv
ciAmcmVmcmVzaElucHV0VGV4dChVVGV4dCAqaW5wdXQsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisK
KworcHJvdGVjdGVkOgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBpbXBsZW1lbnRhdGlv
bgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvKioKKyAgICAgKiBEdW1wcyBjYWNoZXMgYW5k
IHBlcmZvcm1zIG90aGVyIGFjdGlvbnMgYXNzb2NpYXRlZCB3aXRoIGEgY29tcGxldGUgY2hhbmdl
CisgICAgICogaW4gdGV4dCBvciBpdGVyYXRpb24gcG9zaXRpb24uCisgICAgICogQGludGVybmFs
CisgICAgICovCisgICAgdmlydHVhbCB2b2lkIHJlc2V0KHZvaWQpOworCisjaWYgMAorICAgIC8q
KgorICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2F0ZWdvcnkgbG9va3VwIGZvciB0aGlzIGNo
YXIKKyAgICAgICogaW5kaWNhdGVzIHRoYXQgaXQgaXMgaW4gdGhlIHNldCBvZiBkaWN0aW9uYXJ5
IGxvb2t1cCBjaGFycy4KKyAgICAgICogVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNl
IGJ5IGRpY3Rpb25hcnkgYmFzZWQgYnJlYWsgaXRlcmF0b3JzLgorICAgICAgKiBAcmV0dXJuIHRy
dWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBmb3IgdGhpcyBjaGFyCisgICAgICAqIGluZGljYXRl
cyB0aGF0IGl0IGlzIGluIHRoZSBzZXQgb2YgZGljdGlvbmFyeSBsb29rdXAgY2hhcnMuCisgICAg
ICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIGlzRGljdGlvbmFyeUNo
YXIoVUNoYXIzMik7CisKKyAgICAvKioKKyAgICAgICogR2V0IHRoZSB0eXBlIG9mIHRoZSBicmVh
ayBpdGVyYXRvci4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZpcnR1YWwgaW50
MzJfdCBnZXRCcmVha1R5cGUoKSBjb25zdDsKKyNlbmRpZgorCisgICAgLyoqCisgICAgICAqIFNl
dCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICAqIEBpbnRlcm5hbAorICAg
ICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgc2V0QnJlYWtUeXBlKGludDMyX3QgdHlwZSk7CisKKyNp
Zm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAgKiBDb21tb24gaW5pdGlh
bGl6YXRpb24gZnVuY3Rpb24sIHVzZWQgYnkgY29uc3RydWN0b3JzIGFuZCBidWZmZXJDbG9uZS4K
KyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZvaWQgaW5pdCgpOworI2VuZGlmICAv
KiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKK3ByaXZhdGU6CisKKyAgICAvKioKKyAgICAgKiBU
aGlzIG1ldGhvZCBiYWNrcyB0aGUgaXRlcmF0b3IgYmFjayB1cCB0byBhICJzYWZlIHBvc2l0aW9u
IiBpbiB0aGUgdGV4dC4KKyAgICAgKiBUaGlzIGlzIGEgcG9zaXRpb24gdGhhdCB3ZSBrbm93LCB3
aXRob3V0IGFueSBjb250ZXh0LCBtdXN0IGJlIGEgYnJlYWsgcG9zaXRpb24uCisgICAgICogVGhl
IHZhcmlvdXMgY2FsbGluZyBtZXRob2RzIHRoZW4gaXRlcmF0ZSBmb3J3YXJkIGZyb20gdGhpcyBz
YWZlIHBvc2l0aW9uIHRvCisgICAgICogdGhlIGFwcHJvcHJpYXRlIHBvc2l0aW9uIHRvIHJldHVy
bi4gIChGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkZXNjcmlwdGlvbgorICAgICAqIG9m
IGJ1aWxkQmFja3dhcmRzU3RhdGVUYWJsZSgpIGluIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IuQnVp
bGRlci4pCisgICAgICogQHBhcmFtIHN0YXRldGFibGUgc3RhdGUgdGFibGUgdXNlZCBvZiBtb3Zp
bmcgYmFja3dhcmRzCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCBoYW5k
bGVQcmV2aW91cyhjb25zdCBSQkJJU3RhdGVUYWJsZSAqc3RhdGV0YWJsZSk7CisKKyAgICAvKioK
KyAgICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBu
ZXh0KCkgbWV0aG9kLiAgQWxsIGl0ZXJhdGlvbgorICAgICAqIHZlY3RvcnMgdGhyb3VnaCBoZXJl
LiAgVGhpcyBtZXRob2QgaW5pdGlhbGl6ZXMgdGhlIHN0YXRlIG1hY2hpbmUgdG8gc3RhdGUgMQor
ICAgICAqIGFuZCBhZHZhbmNlcyB0aHJvdWdoIHRoZSB0ZXh0IGNoYXJhY3RlciBieSBjaGFyYWN0
ZXIgdW50aWwgd2UgcmVhY2ggdGhlIGVuZAorICAgICAqIG9mIHRoZSB0ZXh0IG9yIHRoZSBzdGF0
ZSBtYWNoaW5lIHRyYW5zaXRpb25zIHRvIHN0YXRlIDAuICBXZSB1cGRhdGUgb3VyIHJldHVybgor
ICAgICAqIHZhbHVlIGV2ZXJ5IHRpbWUgdGhlIHN0YXRlIG1hY2hpbmUgcGFzc2VzIHRocm91Z2gg
YSBwb3NzaWJsZSBlbmQgc3RhdGUuCisgICAgICogQHBhcmFtIHN0YXRldGFibGUgc3RhdGUgdGFi
bGUgdXNlZCBvZiBtb3ZpbmcgZm9yd2FyZHMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAg
ICBpbnQzMl90IGhhbmRsZU5leHQoY29uc3QgUkJCSVN0YXRlVGFibGUgKnN0YXRldGFibGUpOwor
Citwcm90ZWN0ZWQ6CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAg
ICAqIFRoaXMgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgYWN0dWFsbHkgaW1wbGVtZW50cyBkaWN0aW9u
YXJ5LWJhc2VkCisgICAgICogYnJlYWtpbmcuICBDb3ZlcmluZyBhdCBsZWFzdCB0aGUgcmFuZ2Ug
ZnJvbSBzdGFydFBvcyB0byBlbmRQb3MsCisgICAgICogaXQgY2hlY2tzIGZvciBkaWN0aW9uYXJ5
IGNoYXJhY3RlcnMsIGFuZCBpZiBpdCBmaW5kcyB0aGVtIGRldGVybWluZXMKKyAgICAgKiB0aGUg
YXBwcm9wcmlhdGUgb2JqZWN0IHRvIGRlYWwgd2l0aCB0aGVtLiBJdCBtYXkgY2FjaGUgZm91bmQg
YnJlYWtzIGluCisgICAgICogZkNhY2hlZEJyZWFrUG9zaXRpb25zIGFzIGl0IGdvZXMuIEl0IG1h
eSB3ZWxsIGFsc28gbG9vayBhdCB0ZXh0IG91dHNpZGUKKyAgICAgKiB0aGUgcmFuZ2Ugc3RhcnRQ
b3MgdG8gZW5kUG9zLgorICAgICAqIElmIGdvaW5nIGZvcndhcmQsIGVuZFBvcyBpcyB0aGUgbm9y
bWFsIFVuaWNvZGUgYnJlYWsgcmVzdWx0LCBhbmQKKyAgICAgKiBpZiBnb2luZCBpbiByZXZlcnNl
LCBzdGFydFBvcyBpcyB0aGUgbm9ybWFsIFVuaWNvZGUgYnJlYWsgcmVzdWx0CisgICAgICogQHBh
cmFtIHN0YXJ0UG9zICBUaGUgc3RhcnQgcG9zaXRpb24gb2YgYSByYW5nZSBvZiB0ZXh0CisgICAg
ICogQHBhcmFtIGVuZFBvcyAgICBUaGUgZW5kIHBvc2l0aW9uIG9mIGEgcmFuZ2Ugb2YgdGV4dAor
ICAgICAqIEBwYXJhbSByZXZlcnNlICAgVGhlIGNhbGwgaXMgZm9yIHRoZSByZXZlcnNlIGRpcmVj
dGlvbgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgY2hlY2tEaWN0aW9u
YXJ5KGludDMyX3Qgc3RhcnRQb3MsIGludDMyX3QgZW5kUG9zLCBVQm9vbCByZXZlcnNlKTsKKyNl
bmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCitwcml2YXRlOgorCisgICAgLyoqCisg
ICAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBMYW5ndWFnZUJyZWFr
RW5naW5lIGZvciBhCisgICAgICogZ2l2ZW4gY2hhcmFjdGVyIGMuCisgICAgICogQHBhcmFtIGMg
ICAgICAgICBBIGNoYXJhY3RlciBpbiB0aGUgZGljdGlvbmFyeSBzZXQKKyAgICAgKiBAaW50ZXJu
YWwKKyAgICAgKi8KKyAgICBjb25zdCBMYW5ndWFnZUJyZWFrRW5naW5lICpnZXRMYW5ndWFnZUJy
ZWFrRW5naW5lKFVDaGFyMzIgYyk7CisKKyAgICAvKioKKyAgICAgKiAgQGludGVybmFsCisgICAg
ICovCisgICAgdm9pZCBtYWtlUnVsZVN0YXR1c1ZhbGlkKCk7CisKK307CisKKy8vLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisvLworLy8gICBJbmxpbmUgRnVuY3Rpb25zIERlZmluaXRpb25zIC4uLgor
Ly8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lubGluZSBVQm9vbCBSdWxlQmFzZWRCcmVh
a0l0ZXJhdG9yOjpvcGVyYXRvciE9KGNvbnN0IEJyZWFrSXRlcmF0b3ImIHRoYXQpIGNvbnN0IHsK
KyAgICByZXR1cm4gIW9wZXJhdG9yPT0odGhhdCk7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisj
ZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTiAqLworCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0ZXIuaCBiL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvc2Nocml0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGI1ZTIyNTAzY2ZmMjYxZDJjZDI0
MGZmMTIwMDdmOTM3Zjc4M2IyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5p
Y29kZS9zY2hyaXRlci5oCkBAIC0wLDAgKzEsMTg3IEBACisvKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5l
c3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxlIHNjaHJpdGVyLmgKKyoK
KyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAg
RGVzY3JpcHRpb24KKyogIDA1LzA1Lzk5ICAgICBzdGVwaGVuICAgICBDbGVhbmVkIHVwLgorKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIFNDSFJJVEVSX0gKKyNkZWZpbmUgU0NI
UklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L2NoYXJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2hyaXRlci5oIgorCisvKioKKyAqIFxm
aWxlIAorICogXGJyaWVmIEMrKyBBUEk6IFN0cmluZyBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAqLwor
IAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgorICogQSBjb25jcmV0ZSBzdWJjbGFzcyBvZiBDaGFy
YWN0ZXJJdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgdGhlCisgKiBjaGFyYWN0ZXJzIChjb2Rl
IHVuaXRzIG9yIGNvZGUgcG9pbnRzKSBpbiBhIFVuaWNvZGVTdHJpbmcuCisgKiBJdCdzIHBvc3Np
YmxlIG5vdCBvbmx5IHRvIGNyZWF0ZSBhbgorICogaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVy
IGFuIGVudGlyZSBVbmljb2RlU3RyaW5nLCBidXQgYWxzbyB0bworICogY3JlYXRlIG9uZSB0aGF0
IGl0ZXJhdGVzIG92ZXIgb25seSBhIHN1YnJhbmdlIG9mIGEgVW5pY29kZVN0cmluZworICogKGl0
ZXJhdG9ycyBvdmVyIGRpZmZlcmVudCBzdWJyYW5nZXMgb2YgdGhlIHNhbWUgVW5pY29kZVN0cmlu
ZyBkb24ndAorICogY29tcGFyZSBlcXVhbCkuCisgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yCisg
KiBAc2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8K
K2NsYXNzIFVfQ09NTU9OX0FQSSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBVQ2hh
ckNoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVy
YXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJlZmVycmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAg
ICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlzIGNvcGllZC4KKyAgICogVGhlIGl0ZXJhdGlv
biByYW5nZSBpcyB0aGUgd2hvbGUgc3RyaW5nLCBhbmQgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGlz
IDAuCisgICAqIEBwYXJhbSB0ZXh0U3RyIFRoZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0
ZSBhbiBpdGVyYXRvcgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJh
Y3Rlckl0ZXJhdG9yKGNvbnN0IFVuaWNvZGVTdHJpbmcmIHRleHRTdHIpOworCisgIC8qKgorICAg
KiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVW5pY29kZVN0cmluZyByZWZlcnJlZCB0byBi
eSAidGV4dFN0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgdGhlIHdob2xlIHN0cmlu
ZywgYW5kIHRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInRleHRQ
b3MiLiAgSWYgInRleHRQb3MiIGlzIG91dHNpZGUgdGhlIHZhbGlkCisgICAqIGl0ZXJhdGlvbiBy
YW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlzIHVuZGVmaW5lZC4KKyAgICogQHBh
cmFtIHRleHRTdHIgVGhlIHVuaWNvZGUgc3RyaW5nIHVzZWQgdG8gY3JlYXRlIGFuIGl0ZXJhdG9y
CisgICAqIEBwYXJhbSB0ZXh0UG9zIFRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0
aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0
b3IoY29uc3QgVW5pY29kZVN0cmluZyYgICAgdGV4dFN0ciwKKyAgICAgICAgICAgICAgaW50MzJf
dCAgICAgICAgICAgICAgdGV4dFBvcyk7CisKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRv
ciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJlZmVycmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICog
VGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlzIGNvcGllZC4KKyAgICogVGhlIGl0ZXJhdGlvbiBy
YW5nZSBiZWdpbnMgd2l0aCB0aGUgY29kZSB1bml0IHNwZWNpZmllZCBieQorICAgKiAidGV4dEJl
Z2luIiBhbmQgZW5kcyB3aXRoIHRoZSBjb2RlIHVuaXQgQkVGT1JFIHRoZSBjb2RlIHVuaXQgc3Bl
Y2ZpZWQKKyAgICogYnkgInRleHRFbmQiLiAgVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGlzIHNwZWNp
ZmllZCBieSAidGV4dFBvcyIuICBJZgorICAgKiAidGV4dEJlZ2luIiBhbmQgInRleHRFbmQiIGRv
bid0IGZvcm0gYSB2YWxpZCByYW5nZSBvbiAidGV4dCIgKGkuZS4sCisgICAqIHRleHRCZWdpbiA+
PSB0ZXh0RW5kIG9yIGVpdGhlciBpcyBuZWdhdGl2ZSBvciBncmVhdGVyIHRoYW4gdGV4dC5zaXpl
KCkpLAorICAgKiBvciAidGV4dFBvcyIgaXMgb3V0c2lkZSB0aGUgcmFuZ2UgZGVmaW5lZCBieSAi
dGV4dEJlZ2luIiBhbmQgInRleHRFbmQiLAorICAgKiB0aGUgYmVoYXZpb3Igb2YgdGhpcyBpdGVy
YXRvciBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0U3RyICAgIFRoZSB1bmljb2RlIHN0
cmluZyB1c2VkIHRvIGNyZWF0ZSB0aGUgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IKKyAgICogQHBh
cmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UK
KyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9u
IHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0UG9zICAgIFRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0
aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFj
dGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYgICAgdGV4dFN0ciwKKyAgICAgICAgICAg
ICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dEJlZ2luLAorICAgICAgICAgICAgICBpbnQzMl90
ICAgICAgICAgICAgICB0ZXh0RW5kLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAg
ICB0ZXh0UG9zKTsKKworICAvKioKKyAgICogQ29weSBjb25zdHJ1Y3Rvci4gIFRoZSBuZXcgaXRl
cmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSByYW5nZQorICAgKiBvZiB0aGUgc2FtZSBzdHJp
bmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRpYWwgcG9zaXRpb24gaXMgdGhlCisgICAqIHNhbWUg
YXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2Jq
ZWN0IGluICJ0aGF0IiBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBTdHJpbmdDaGFy
YWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciYg
IHRoYXQpOworCisgIC8qKgorICAgKiBEZXN0cnVjdG9yLgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgflN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgLyoqCisg
ICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICAqdGhpcyBpcyBhbHRlcmVkIHRvIGl0ZXJhdGUgb3Zl
ciB0aGUgc2FtZQorICAgKiByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQg
cmVmZXJzIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciB3aXRoaW4gdGhhdCBzdHJpbmcgYXMg
InRoYXQiIGRvZXMuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBvYmplY3QgdG8gYmUgY29waWVkLgor
ICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciYKKyAgb3BlcmF0b3I9KGNvbnN0
IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJiAgICB0aGF0KTsKKworICAvKioKKyAgICogUmV0dXJu
cyB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRo
ZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rl
ci4KKyAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBj
b21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICogQHJldHVybiB0cnVlIGlmIHRoZSBpdGVyYXRvcnMg
aXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQg
YXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICAgIG9wZXJhdG9yPT0oY29uc3QgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKworICAvKioKKyAgICogUmV0dXJucyBh
IG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciByZWZlcnJpbmcgdG8gdGhlIHNhbWUKKyAgICog
Y2hhcmFjdGVyIGluIHRoZSBzYW1lIHJhbmdlIG9mIHRoZSBzYW1lIHN0cmluZyBhcyB0aGlzIG9u
ZS4gIFRoZQorICAgKiBjYWxsZXIgbXVzdCBkZWxldGUgdGhlIG5ldyBpdGVyYXRvci4KKyAgICog
QHJldHVybiB0aGUgbmV3bHkgY2xvbmVkIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAqLworICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdDsKKwor
ICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBwcm92aWRl
ZCBzdHJpbmcuCisgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSBzdHJpbmcgdG8gYmUgaXRlcmF0ZWQg
b3ZlcgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBV
bmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKworICAvKioKKyAgICogQ29waWVzIHRoZSBVbmljb2Rl
U3RyaW5nIHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBVbmljb2RlU3RyaW5nCisgICAqIHJlZmVy
cmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZlbiBpZiB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIGFjcm9z
cworICAgKiBvbmx5IGEgcGFydCBvZiB0aGlzIHN0cmluZywgdGhlIHdob2xlIHN0cmluZyBpcyBj
b3BpZWQuCisgICAqIEBwYXJhbSByZXN1bHQgUmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVu
ZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIHZv
aWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNvZGVTdHJpbmcmIHJlc3VsdCk7CisKKyAgLyoqCisg
ICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdCAobm90IHJlYWxseSBwdWJsaWMp
CisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2xhc3NJRCAgICAgICAgIGdldER5bmFtaWNDbGFz
c0lEKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhp
cyBjbGFzcyAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3Ig
dGhpcyBjbGFzcworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHN0YXRpYyBVQ2xhc3NJ
RCAgIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKHZvaWQpOworCitwcm90ZWN0ZWQ6CisgIC8q
KgorICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yLCBpdGVyYXRpb24gb3ZlciBlbXB0eSBzdHJpbmcu
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3Io
KTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBw
cm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSBzdHJpbmcgdG8gYmUgaXRl
cmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbmV3VGV4dExlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBT
dHJpbmcKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3Qg
VUNoYXIqIG5ld1RleHQsIGludDMyX3QgbmV3VGV4dExlbmd0aCk7CisKKyAgLyoqCisgICAqIENv
cHkgb2YgdGhlIGl0ZXJhdGVkIHN0cmluZyBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgVW5pY29kZVN0cmluZyAgICAgICAgICAgIHRleHQ7CisKK307CisKK1VfTkFNRVNQ
QUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjYXNl
bWFwLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjYXNlbWFwLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM3
ZTE2NTg4Njk3ZjFhOTMwMTkxZWUzZGY4MTZjNjNiN2JkMzhjMQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNhc2VtYXAuaApAQCAtMCwwICsxLDQyMyBAQAorLyoK
KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxMiwg
SW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhl
cnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IGZpbGUgbmFtZTogIHVjYXNlbWFwLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRh
YiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVk
IG9uOiAyMDA1bWF5MDYKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKgorKiAg
IENhc2UgbWFwcGluZyBzZXJ2aWNlIG9iamVjdCBhbmQgZnVuY3Rpb25zIHVzaW5nIGl0LgorKi8K
KworI2lmbmRlZiBfX1VDQVNFTUFQX0hfXworI2RlZmluZSBfX1VDQVNFTUFQX0hfXworCisjaW5j
bHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VzdHJpbmcuaCIKKyNp
bmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJp
ZWYgQyBBUEk6IFVuaWNvZGUgY2FzZSBtYXBwaW5nIGZ1bmN0aW9ucyB1c2luZyBhIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICoKKyAqIFRoZSBzZXJ2aWNlIG9iamVjdCB0YWtlcyBjYXJlIG9m
IG1lbW9yeSBhbGxvY2F0aW9ucywgZGF0YSBsb2FkaW5nLCBhbmQgc2V0dXAKKyAqIGZvciB0aGUg
YXR0cmlidXRlcywgYXMgdXN1YWwuCisgKgorICogQ3VycmVudGx5LCB0aGUgZnVuY3Rpb25hbGl0
eSBwcm92aWRlZCBoZXJlIGRvZXMgbm90IG92ZXJsYXAgd2l0aCB1Y2hhci5oCisgKiBhbmQgdXN0
cmluZy5oLCBleGNlcHQgZm9yIHVjYXNlbWFwX3RvVGl0bGUoKS4KKyAqCisgKiB1Y2FzZW1hcF91
dGY4WFlaKCkgZnVuY3Rpb25zIG9wZXJhdGUgZGlyZWN0bHkgb24gVVRGLTggc3RyaW5ncy4KKyAq
LworCisvKioKKyAqIFVDYXNlTWFwIGlzIGFuIG9wYXF1ZSBzZXJ2aWNlIG9iamVjdCBmb3IgbmV3
ZXIgSUNVIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMuCisgKiBPbGRlciBmdW5jdGlvbnMgZGlkIG5v
dCB1c2UgYSBzZXJ2aWNlIG9iamVjdC4KKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitzdHJ1Y3Qg
VUNhc2VNYXA7Cit0eXBlZGVmIHN0cnVjdCBVQ2FzZU1hcCBVQ2FzZU1hcDsgLyoqPCBDIHR5cGVk
ZWYgZm9yIHN0cnVjdCBVQ2FzZU1hcC4gQHN0YWJsZSBJQ1UgMy40ICovCisKKy8qKgorICogT3Bl
biBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0IGZvciBhIGxvY2FsZSBhbmQgYSBzZXQgb2Ygb3B0
aW9ucy4KKyAqIFRoZSBsb2NhbGUgSUQgYW5kIG9wdGlvbnMgYXJlIHByZXByb2Nlc3NlZCBzbyB0
aGF0IGZ1bmN0aW9ucyB1c2luZyB0aGUKKyAqIHNlcnZpY2Ugb2JqZWN0IG5lZWQgbm90IHByb2Nl
c3MgdGhlbSBpbiBlYWNoIGNhbGwuCisgKgorICogQHBhcmFtIGxvY2FsZSBJQ1UgbG9jYWxlIElE
LCB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQKKyAqICAgICAgICAgICAgICAgdXBwZXItL2xv
d2VyLS90aXRsZS1jYXNpbmcgYWNjb3JkaW5nIHRvIHRoZSBVbmljb2RlIHN0YW5kYXJkLgorICog
ICAgICAgICAgICAgICBVc3VhbCBzZW1hbnRpY3M6ICIiPXJvb3QsIE5VTEw9ZGVmYXVsdCBsb2Nh
bGUsIGV0Yy4KKyAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgYml0IHNldCwgdXNlZCBmb3IgY2Fz
ZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKiAgICAgICAgICAgICAgICBTYW1l
IGZsYWdzIGFzIGZvciB1X2ZvbGRDYXNlKCksIHVfc3RyRm9sZENhc2UoKSwKKyAqICAgICAgICAg
ICAgICAgIHVfc3RyQ2FzZUNvbXBhcmUoKSwgZXRjLgorICogICAgICAgICAgICAgICAgVXNlIDAg
b3IgVV9GT0xEX0NBU0VfREVGQVVMVCBmb3IgZGVmYXVsdCBiZWhhdmlvci4KKyAqIEBwYXJhbSBw
RXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUs
CisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUg
YmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBQb2ludGVyIHRvIGEgVUNhc2VN
YXAgc2VydmljZSBvYmplY3QsIGlmIHN1Y2Nlc3NmdWwuCisgKgorICogQHNlZSBVX0ZPTERfQ0FT
RV9ERUZBVUxUCisgKiBAc2VlIFVfRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JCisgKiBAc2Vl
IFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19CUkVBS19B
REpVU1RNRU5UCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgVUNhc2VNYXAgKiBV
X0VYUE9SVDIKK3VjYXNlbWFwX29wZW4oY29uc3QgY2hhciAqbG9jYWxlLCB1aW50MzJfdCBvcHRp
b25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBDbG9zZSBhIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGNzbSBPYmplY3QgdG8gYmUgY2xvc2VkLgorICog
QHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9j
bG9zZShVQ2FzZU1hcCAqY3NtKTsKKworI2lmIFVfU0hPV19DUExVU1BMVVNfQVBJCisKK1VfTkFN
RVNQQUNFX0JFR0lOCisKKy8qKgorICogXGNsYXNzIExvY2FsVUNhc2VNYXBQb2ludGVyCisgKiAi
U21hcnQgcG9pbnRlciIgY2xhc3MsIGNsb3NlcyBhIFVDYXNlTWFwIHZpYSB1Y2FzZW1hcF9jbG9z
ZSgpLgorICogRm9yIG1vc3QgbWV0aG9kcyBzZWUgdGhlIExvY2FsUG9pbnRlckJhc2UgYmFzZSBj
bGFzcy4KKyAqCisgKiBAc2VlIExvY2FsUG9pbnRlckJhc2UKKyAqIEBzZWUgTG9jYWxQb2ludGVy
CisgKiBAc3RhYmxlIElDVSA0LjQKKyAqLworVV9ERUZJTkVfTE9DQUxfT1BFTl9QT0lOVEVSKExv
Y2FsVUNhc2VNYXBQb2ludGVyLCBVQ2FzZU1hcCwgdWNhc2VtYXBfY2xvc2UpOworCitVX05BTUVT
UEFDRV9FTkQKKworI2VuZGlmCisKKy8qKgorICogR2V0IHRoZSBsb2NhbGUgSUQgdGhhdCBpcyB1
c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQgY2FzZSBtYXBwaW5ncy4KKyAqIEBwYXJhbSBjc20g
VUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIGxvY2FsZSBJRAorICogQHN0YWJs
ZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGNvbnN0IGNoYXIgKiBVX0VYUE9SVDIKK3VjYXNlbWFw
X2dldExvY2FsZShjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoqCisgKiBHZXQgdGhlIG9wdGlv
bnMgYml0IHNldCB0aGF0IGlzIHVzZWQgZm9yIGNhc2UgZm9sZGluZyBhbmQgc3RyaW5nIGNvbXBh
cmlzb25zLgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1
cm4gb3B0aW9ucyBiaXQgc2V0CisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgdWlu
dDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRPcHRpb25zKGNvbnN0IFVDYXNlTWFwICpjc20p
OworCisvKioKKyAqIFNldCB0aGUgbG9jYWxlIElEIHRoYXQgaXMgdXNlZCBmb3IgbGFuZ3VhZ2Ut
ZGVwZW5kZW50IGNhc2UgbWFwcGluZ3MuCisgKgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2
aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBsb2NhbGUgTG9jYWxlIElELCBzZWUgdWNhc2VtYXBfb3Bl
bigpLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4g
ZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGlu
ZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1
Y2FzZW1hcF9vcGVuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VY
UE9SVDIKK3VjYXNlbWFwX3NldExvY2FsZShVQ2FzZU1hcCAqY3NtLCBjb25zdCBjaGFyICpsb2Nh
bGUsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIFNldCB0aGUgb3B0aW9ucyBi
aXQgc2V0IHRoYXQgaXMgdXNlZCBmb3IgY2FzZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNv
bnMuCisgKgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJh
bSBvcHRpb25zIE9wdGlvbnMgYml0IHNldCwgc2VlIHVjYXNlbWFwX29wZW4oKS4KKyAqIEBwYXJh
bSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFs
dWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1
cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfb3Blbgor
ICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1h
cF9zZXRPcHRpb25zKFVDYXNlTWFwICpjc20sIHVpbnQzMl90IG9wdGlvbnMsIFVFcnJvckNvZGUg
KnBFcnJvckNvZGUpOworCisvKioKKyAqIERvIG5vdCBsb3dlcmNhc2Ugbm9uLWluaXRpYWwgcGFy
dHMgb2Ygd29yZHMgd2hlbiB0aXRsZWNhc2luZy4KKyAqIE9wdGlvbiBiaXQgZm9yIHRpdGxlY2Fz
aW5nIEFQSXMgdGhhdCB0YWtlIGFuIG9wdGlvbnMgYml0IHNldC4KKyAqCisgKiBCeSBkZWZhdWx0
LCB0aXRsZWNhc2luZyB3aWxsIHRpdGxlY2FzZSB0aGUgZmlyc3QgY2FzZWQgY2hhcmFjdGVyCisg
KiBvZiBhIHdvcmQgYW5kIGxvd2VyY2FzZSBhbGwgb3RoZXIgY2hhcmFjdGVycy4KKyAqIFdpdGgg
dGhpcyBvcHRpb24sIHRoZSBvdGhlciBjaGFyYWN0ZXJzIHdpbGwgbm90IGJlIG1vZGlmaWVkLgor
ICoKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNlZSB1Y2FzZW1hcF90b1RpdGxl
CisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc2VlIFVuaWNvZGVTdHJpbmc6OnRv
VGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCisjZGVmaW5lIFVfVElUTEVDQVNFX05PX0xP
V0VSQ0FTRSAweDEwMAorCisvKioKKyAqIERvIG5vdCBhZGp1c3QgdGhlIHRpdGxlY2FzaW5nIGlu
ZGV4ZXMgZnJvbSBCcmVha0l0ZXJhdG9yOjpuZXh0KCkgaW5kZXhlczsKKyAqIHRpdGxlY2FzZSBl
eGFjdGx5IHRoZSBjaGFyYWN0ZXJzIGF0IGJyZWFrcyBmcm9tIHRoZSBpdGVyYXRvci4KKyAqIE9w
dGlvbiBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQSXMgdGhhdCB0YWtlIGFuIG9wdGlvbnMgYml0IHNl
dC4KKyAqCisgKiBCeSBkZWZhdWx0LCB0aXRsZWNhc2luZyB3aWxsIHRha2UgZWFjaCBicmVhayBp
dGVyYXRvciBpbmRleCwKKyAqIGFkanVzdCBpdCBieSBsb29raW5nIGZvciB0aGUgbmV4dCBjYXNl
ZCBjaGFyYWN0ZXIsIGFuZCB0aXRsZWNhc2UgdGhhdCBvbmUuCisgKiBPdGhlciBjaGFyYWN0ZXJz
IGFyZSBsb3dlcmNhc2VkLgorICoKKyAqIFRoaXMgZm9sbG93cyBVbmljb2RlIDQgJiA1IHNlY3Rp
b24gMy4xMyBEZWZhdWx0IENhc2UgT3BlcmF0aW9uczoKKyAqCisgKiBSMyAgdG9UaXRsZWNhc2Uo
WCk6IEZpbmQgdGhlIHdvcmQgYm91bmRhcmllcyBiYXNlZCBvbiBVbmljb2RlIFN0YW5kYXJkIEFu
bmV4CisgKiAjMjksICJUZXh0IEJvdW5kYXJpZXMuIiBCZXR3ZWVuIGVhY2ggcGFpciBvZiB3b3Jk
IGJvdW5kYXJpZXMsIGZpbmQgdGhlIGZpcnN0CisgKiBjYXNlZCBjaGFyYWN0ZXIgRi4gSWYgRiBl
eGlzdHMsIG1hcCBGIHRvIGRlZmF1bHRfdGl0bGUoRik7IHRoZW4gbWFwIGVhY2gKKyAqIHN1YnNl
cXVlbnQgY2hhcmFjdGVyIEMgdG8gZGVmYXVsdF9sb3dlcihDKS4KKyAqCisgKiBAc2VlIHVjYXNl
bWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgdWNhc2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2FzZW1h
cF91dGY4VG9UaXRsZQorICogQHNlZSBVbmljb2RlU3RyaW5nOjp0b1RpdGxlCisgKiBAc2VlIFVf
VElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KKyNkZWZpbmUg
VV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVCAweDIwMAorCisjaWYgIVVDT05GSUdfTk9f
QlJFQUtfSVRFUkFUSU9OCisKKy8qKgorICogR2V0IHRoZSBicmVhayBpdGVyYXRvciB0aGF0IGlz
IHVzZWQgZm9yIHRpdGxlY2FzaW5nLgorICogRG8gbm90IG1vZGlmeSB0aGUgcmV0dXJuZWQgYnJl
YWsgaXRlcmF0b3IuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICog
QHJldHVybiB0aXRsZWNhc2luZyBicmVhayBpdGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMy44Cisg
Ki8KK1VfU1RBQkxFIGNvbnN0IFVCcmVha0l0ZXJhdG9yICogVV9FWFBPUlQyCit1Y2FzZW1hcF9n
ZXRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDYXNlTWFwICpjc20pOworCisvKioKKyAqIFNldCB0aGUg
YnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2VkIGZvciB0aXRsZWNhc2luZy4KKyAqIFRoZSBVQ2Fz
ZU1hcCBzZXJ2aWNlIG9iamVjdCByZWxlYXNlcyBhIHByZXZpb3VzbHkgc2V0IGJyZWFrIGl0ZXJh
dG9yCisgKiBhbmQgImFkb3B0cyIgdGhpcyBuZXcgb25lLCB0YWtpbmcgb3duZXJzaGlwIG9mIGl0
LgorICogSXQgd2lsbCBiZSByZWxlYXNlZCBpbiBhIHN1YnNlcXVlbnQgY2FsbCB0byB1Y2FzZW1h
cF9zZXRCcmVha0l0ZXJhdG9yKCkKKyAqIG9yIHVjYXNlbWFwX2Nsb3NlKCkuCisgKgorICogQnJl
YWsgaXRlcmF0b3Igb3BlcmF0aW9ucyBhcmUgbm90IHRocmVhZC1zYWZlLiBUaGVyZWZvcmUsIHRp
dGxlY2FzaW5nCisgKiBmdW5jdGlvbnMgdXNlIG5vbi1jb25zdCBVQ2FzZU1hcCBvYmplY3RzLiBJ
dCBpcyBub3QgcG9zc2libGUgdG8gdGl0bGVjYXNlCisgKiBzdHJpbmdzIGNvbmN1cnJlbnRseSB1
c2luZyB0aGUgc2FtZSBVQ2FzZU1hcC4KKyAqCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZp
Y2Ugb2JqZWN0LgorICogQHBhcmFtIGl0ZXJUb0Fkb3B0IEJyZWFrIGl0ZXJhdG9yIHRvIGJlIGFk
b3B0ZWQgZm9yIHRpdGxlY2FzaW5nLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZh
bGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAg
IHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNh
bGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhU
b1RpdGxlCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIK
K3VjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoVUNhc2VNYXAgKmNzbSwgVUJyZWFrSXRlcmF0b3Ig
Kml0ZXJUb0Fkb3B0LCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBUaXRsZWNh
c2UgYSBVVEYtMTYgc3RyaW5nLiBUaGlzIGZ1bmN0aW9uIGlzIGFsbW9zdCBhIGR1cGxpY2F0ZSBv
ZiB1X3N0clRvVGl0bGUoKSwKKyAqIGV4Y2VwdCB0aGF0IGl0IHRha2VzIHVjYXNlbWFwX3NldE9w
dGlvbnMoKSBpbnRvIGFjY291bnQgYW5kIGhhcyBwZXJmb3JtYW5jZQorICogYWR2YW50YWdlcyBm
cm9tIGJlaW5nIGFibGUgdG8gdXNlIGEgVUNhc2VNYXAgb2JqZWN0IGZvciBtdWx0aXBsZSBjYXNl
IG1hcHBpbmcKKyAqIG9wZXJhdGlvbnMsIHNhdmluZyBzZXR1cCB0aW1lLgorICoKKyAqIENhc2lu
ZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRpdGxlY2Fz
aW5nIHVzZXMgYSBicmVhayBpdGVyYXRvciB0byBmaW5kIHRoZSBmaXJzdCBjaGFyYWN0ZXJzIG9m
IHdvcmRzCisgKiB0aGF0IGFyZSB0byBiZSB0aXRsZWNhc2VkLiBJdCB0aXRsZWNhc2VzIHRob3Nl
IGNoYXJhY3RlcnMgYW5kIGxvd2VyY2FzZXMKKyAqIGFsbCBvdGhlcnMuIChUaGlzIGNhbiBiZSBt
b2RpZmllZCB3aXRoIHVjYXNlbWFwX3NldE9wdGlvbnMoKS4pCisgKgorICogTm90ZTogVGhpcyBm
dW5jdGlvbiB0YWtlcyBhIG5vbi1jb25zdCBVQ2FzZU1hcCBwb2ludGVyIGJlY2F1c2UgaXQgd2ls
bAorICogb3BlbiBhIGRlZmF1bHQgYnJlYWsgaXRlcmF0b3IgaWYgbm8gYnJlYWsgaXRlcmF0b3Ig
d2FzIHNldCB5ZXQsCisgKiBhbmQgZWZmZWN0aXZlbHkgY2FsbCB1Y2FzZW1hcF9zZXRCcmVha0l0
ZXJhdG9yKCk7CisgKiBhbHNvIGJlY2F1c2UgdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIHN0YXRlZnVs
IGFuZCB3aWxsIGJlIG1vZGlmaWVkIGR1cmluZworICogdGhlIGl0ZXJhdGlvbi4KKyAqCisgKiBU
aGUgdGl0bGVjYXNlIGJyZWFrIGl0ZXJhdG9yIGNhbiBiZSBwcm92aWRlZCB0byBjdXN0b21pemUg
Zm9yIGFyYml0cmFyeQorICogc3R5bGVzLCB1c2luZyBydWxlcyBhbmQgZGljdGlvbmFyaWVzIGJl
eW9uZCB0aGUgc3RhbmRhcmQgaXRlcmF0b3JzLgorICogVGhlIHN0YW5kYXJkIHRpdGxlY2FzZSBp
dGVyYXRvciBmb3IgdGhlIHJvb3QgbG9jYWxlIGltcGxlbWVudHMgdGhlCisgKiBhbGdvcml0aG0g
b2YgVW5pY29kZSBUUiAyMS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHVzZXMgb25seSB0aGUgc2V0
VVRleHQoKSwgZmlyc3QoKSwgbmV4dCgpIGFuZCBjbG9zZSgpIG1ldGhvZHMgb2YgdGhlCisgKiBw
cm92aWRlZCBicmVhayBpdGVyYXRvci4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIg
b3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0
aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNz
bSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4gVGhpcyBwb2ludGVyIGlzIG5vbi1jb25z
dCEKKyAqICAgICAgICAgICAgICAgICAgU2VlIHRoZSBub3RlIGFib3ZlIGZvciBkZXRhaWxzLgor
ICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRoZSBy
ZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0aGUg
YnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnRz
IGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFjaXR5
IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAsIHRo
ZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9u
IHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAgICAg
ICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBAcGFy
YW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRo
ZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3QgYmUg
TlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9p
bnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGljaCBt
dXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICog
QHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0g
b3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2ggY2Fz
ZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1X3N0
clRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQ
T1JUMgordWNhc2VtYXBfdG9UaXRsZShVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICBV
Q2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgIGNvbnN0
IFVDaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCisKKy8qKgorICogTG93ZXJjYXNlIHRoZSBjaGFy
YWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQg
YW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNo
b3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRl
c3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAg
ICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVy
IGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVk
IGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICog
ICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFp
bHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVt
YmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0
IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3Ro
IG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBv
ZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0
cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3Ry
aW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBw
RXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUs
CisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBi
ZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJl
c3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJm
bG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRl
c3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9Mb3dlcgorICogQHN0YWJsZSBJQ1UgMy40
CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4VG9Mb3dlcihj
b25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50
MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMs
IGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVy
cm9yQ29kZSk7CisKKy8qKgorICogVXBwZXJjYXNlIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTgg
c3RyaW5nLgorICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0
aXZlLgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3Jp
Z2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBt
dXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2Vydmlj
ZSBvYmplY3QuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0
cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAg
ICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBU
aGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBk
ZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYg
aXQgaXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0
aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAq
ICAgICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmlu
Zy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBz
cmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBz
cmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUg
YSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAg
ICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9u
IGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1
Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBp
biB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisg
KiBAc2VlIHVfc3RyVG9VcHBlcgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGlu
dDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4VG9VcHBlcihjb25zdCBVQ2FzZU1hcCAqY3Nt
LAorICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHks
CisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3Ro
LAorICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNpZiAh
VUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworLyoqCisgKiBUaXRsZWNhc2UgYSBVVEYtOCBz
dHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRp
dmUuCisgKiBUaXRsZWNhc2luZyB1c2VzIGEgYnJlYWsgaXRlcmF0b3IgdG8gZmluZCB0aGUgZmly
c3QgY2hhcmFjdGVycyBvZiB3b3JkcworICogdGhhdCBhcmUgdG8gYmUgdGl0bGVjYXNlZC4gSXQg
dGl0bGVjYXNlcyB0aG9zZSBjaGFyYWN0ZXJzIGFuZCBsb3dlcmNhc2VzCisgKiBhbGwgb3RoZXJz
LiAoVGhpcyBjYW4gYmUgbW9kaWZpZWQgd2l0aCB1Y2FzZW1hcF9zZXRPcHRpb25zKCkuKQorICoK
KyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBub24tY29uc3QgVUNhc2VNYXAgcG9pbnRl
ciBiZWNhdXNlIGl0IHdpbGwKKyAqIG9wZW4gYSBkZWZhdWx0IGJyZWFrIGl0ZXJhdG9yIGlmIG5v
IGJyZWFrIGl0ZXJhdG9yIHdhcyBzZXQgeWV0LAorICogYW5kIGVmZmVjdGl2ZWx5IGNhbGwgdWNh
c2VtYXBfc2V0QnJlYWtJdGVyYXRvcigpOworICogYWxzbyBiZWNhdXNlIHRoZSBicmVhayBpdGVy
YXRvciBpcyBzdGF0ZWZ1bCBhbmQgd2lsbCBiZSBtb2RpZmllZCBkdXJpbmcKKyAqIHRoZSBpdGVy
YXRpb24uCisgKgorICogVGhlIHRpdGxlY2FzZSBicmVhayBpdGVyYXRvciBjYW4gYmUgcHJvdmlk
ZWQgdG8gY3VzdG9taXplIGZvciBhcmJpdHJhcnkKKyAqIHN0eWxlcywgdXNpbmcgcnVsZXMgYW5k
IGRpY3Rpb25hcmllcyBiZXlvbmQgdGhlIHN0YW5kYXJkIGl0ZXJhdG9ycy4KKyAqIFRoZSBzdGFu
ZGFyZCB0aXRsZWNhc2UgaXRlcmF0b3IgZm9yIHRoZSByb290IGxvY2FsZSBpbXBsZW1lbnRzIHRo
ZQorICogYWxnb3JpdGhtIG9mIFVuaWNvZGUgVFIgMjEuCisgKgorICogVGhpcyBmdW5jdGlvbiB1
c2VzIG9ubHkgdGhlIHNldFVUZXh0KCksIGZpcnN0KCksIG5leHQoKSBhbmQgY2xvc2UoKSBtZXRo
b2RzIG9mIHRoZQorICogcHJvdmlkZWQgYnJlYWsgaXRlcmF0b3IuCisgKgorICogVGhlIHJlc3Vs
dCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291
cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgor
ICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuIFRoaXMgcG9p
bnRlciBpcyBub24tY29uc3QhCisgKiAgICAgICAgICAgICAgICAgIFNlZSB0aGUgbm90ZSBhYm92
ZSBmb3IgZGV0YWlscy4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1
bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAg
ICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAg
ICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBh
cmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMp
LiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwg
YW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3Vs
dAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQg
c3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBh
cmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0
aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVz
dCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAg
ICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVu
Y3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywg
aWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAg
ICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5Lgor
ICoKKyAqIEBzZWUgdV9zdHJUb1RpdGxlCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FT
RQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5UCisgKiBAc3RhYmxlIElD
VSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhUb1Rp
dGxlKFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMy
X3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIGlu
dDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKTsKKworI2VuZGlmCisKKy8qKgorICogQ2FzZS1mb2xkcyB0aGUgY2hhcmFjdGVycyBpbiBh
IFVURi04IHN0cmluZy4KKyAqCisgKiBDYXNlLWZvbGRpbmcgaXMgbG9jYWxlLWluZGVwZW5kZW50
IGFuZCBub3QgY29udGV4dC1zZW5zaXRpdmUsCisgKiBidXQgdGhlcmUgaXMgYW4gb3B0aW9uIGZv
ciB3aGV0aGVyIHRvIGluY2x1ZGUgb3IgZXhjbHVkZSBtYXBwaW5ncyBmb3IgZG90dGVkIEkKKyAq
IGFuZCBkb3RsZXNzIGkgdGhhdCBhcmUgbWFya2VkIHdpdGggJ1QnIGluIENhc2VGb2xkaW5nLnR4
dC4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBv
cmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVy
IG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2
aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQg
c3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAg
ICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAg
IFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFt
IGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJ
ZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5k
IHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAor
ICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3Ry
aW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFt
IHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVu
IHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBi
ZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAg
ICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rp
b24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYg
c3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAg
IGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoK
KyAqIEBzZWUgdV9zdHJGb2xkQ2FzZQorICogQHNlZSB1Y2FzZW1hcF9zZXRPcHRpb25zCisgKiBA
c2VlIFVfRk9MRF9DQVNFX0RFRkFVTFQKKyAqIEBzZWUgVV9GT0xEX0NBU0VfRVhDTFVERV9TUEVD
SUFMX0kKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JU
MgordWNhc2VtYXBfdXRmOEZvbGRDYXNlKGNvbnN0IFVDYXNlTWFwICpjc20sCisgICAgICAgICAg
ICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAg
ICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3VjaHJpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ1YTk5MGY3YjdlZDNkNWJhY2YyZGE4NDcx
ZWY4ZmY5NDIyZjk5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUv
dWNocml0ZXIuaApAQCAtMCwwICsxLDM4MSBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5
cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorKi8KKworI2lmbmRlZiBVQ0hSSVRFUl9ICisjZGVmaW5lIFVDSFJJVEVSX0gKKworI2lu
Y2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgor
CisvKioKKyAqIFxmaWxlIAorICogXGJyaWVmIEMrKyBBUEk6IFVDaGFyIENoYXJhY3RlciBJdGVy
YXRvcgorICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAqIEEgY29uY3JldGUgc3Vi
Y2xhc3Mgb2YgQ2hhcmFjdGVySXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIHRoZQorICogY2hh
cmFjdGVycyAoY29kZSB1bml0cyBvciBjb2RlIHBvaW50cykgaW4gYSBVQ2hhciBhcnJheS4KKyAq
IEl0J3MgcG9zc2libGUgbm90IG9ubHkgdG8gY3JlYXRlIGFuCisgKiBpdGVyYXRvciB0aGF0IGl0
ZXJhdGVzIG92ZXIgYW4gZW50aXJlIFVDaGFyIGFycmF5LCBidXQgYWxzbyB0bworICogY3JlYXRl
IG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25seSBhIHN1YnJhbmdlIG9mIGEgVUNoYXIgYXJyYXkK
KyAqIChpdGVyYXRvcnMgb3ZlciBkaWZmZXJlbnQgc3VicmFuZ2VzIG9mIHRoZSBzYW1lIFVDaGFy
IGFycmF5IGRvbid0CisgKiBjb21wYXJlIGVxdWFsKS4KKyAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0
b3IKKyAqIEBzZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqLworY2xhc3MgVV9DT01NT05fQVBJIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMg
Q2hhcmFjdGVySXRlcmF0b3IgeworcHVibGljOgorICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJh
dG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICog
VGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmxlbmd0aC0xPC9jb2RlPi4KKyAgICog
dGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3
aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIgYXJyYXkg
dG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhl
IFVDaGFyIGFycmF5CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0
ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5ndGgpOworCisgIC8q
KgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJyZWQg
dG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNvZGU+
bGVuZ3RoLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlzIG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0ZWQg
KHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90IGRlbGV0ZSBpdCkuCisgICAqIFRoZSBzdGFy
dGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInBvc2l0aW9uIi4gSWYgInBvc2l0
aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhh
dmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0UHRyIFRo
ZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRkIG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUg
bGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQorICAgKiBAcGFyYW0gcG9zaXRpb24gVGhlIHN0YXJ0
aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyKiB0ZXh0UHRyLCBpbnQzMl90
IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHBvc2l0aW9uKTsKKwor
ICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVy
cmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxj
b2RlPmVuZC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVk
ICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBUaGUgc3Rh
cnRpbmcKKyAgICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJwb3NpdGlvbiIuIElmIGJlZ2lu
IGFuZCBlbmQgZG8gbm90CisgICAqIGZvcm0gYSB2YWxpZCBpdGVyYXRpb24gcmFuZ2Ugb3IgInBv
c2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBi
ZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0UHRy
IFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAqIEBwYXJhbSBsZW5ndGgg
VGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIgYXJyYXkKKyAgICogQHBhcmFtIHRleHRCZWdpbiAgVGhl
IGJlZ2luIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRF
bmQgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJh
bSBwb3NpdGlvbiAgICBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IoY29uc3Qg
VUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAg
IGludDMyX3QgdGV4dEJlZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGV4
dEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHBvc2l0aW9uKTsKKworICAv
KioKKyAgICogQ29weSBjb25zdHJ1Y3Rvci4gIFRoZSBuZXcgaXRlcmF0b3IgaXRlcmF0ZXMgb3Zl
ciB0aGUgc2FtZSByYW5nZQorICAgKiBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQg
aXRzIGluaXRpYWwgcG9zaXRpb24gaXMgdGhlCisgICAqIHNhbWUgYXMgInRoYXQiJ3MgY3VycmVu
dCBwb3NpdGlvbi4KKyAgICogQHBhcmFtIHRoYXQgVGhlIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3Ig
dG8gYmUgY29waWVkCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0
ZXJJdGVyYXRvcihjb25zdCBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yJiAgdGhhdCk7CisKKyAgLyoq
CisgICAqIERlc3RydWN0b3IuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVh
bCB+VUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8qKgorICAgKiBBc3NpZ25tZW50IG9w
ZXJhdG9yLiAgKnRoaXMgaXMgYWx0ZXJlZCB0byBpdGVyYXRlIG92ZXIgdGhlIHNhbmUKKyAgICog
cmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIHJlZmVycyB0byB0aGUgc2Ft
ZQorICAgKiBjaGFyYWN0ZXIgd2l0aGluIHRoYXQgc3RyaW5nIGFzICJ0aGF0IiBkb2VzLgorICAg
KiBAcGFyYW0gdGhhdCBUaGUgb2JqZWN0IHRvIGJlIGNvcGllZAorICAgKiBAcmV0dXJuIHRoZSBu
ZXdseSBjcmVhdGVkIG9iamVjdAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFy
Q2hhcmFjdGVySXRlcmF0b3ImCisgIG9wZXJhdG9yPShjb25zdCBVQ2hhckNoYXJhY3Rlckl0ZXJh
dG9yJiAgICB0aGF0KTsKKworICAvKioKKyAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBpdGVyYXRv
cnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBh
bmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICogQHBhcmFtIHRoYXQg
VGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB1c2VkIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVh
bGl0eQorICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhl
IHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQg
dGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUJvb2wgICAgICAgICAgb3BlcmF0b3I9PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0
b3ImIHRoYXQpIGNvbnN0OworCisgIC8qKgorICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9y
IHRoaXMgaXRlcmF0b3IuCisgICAqIEByZXR1cm4gdGhlIGhhc2ggY29kZS4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIGludDMyX3QgICAgICAgICBoYXNoQ29kZSh2b2lk
KSBjb25zdDsKKworICAvKioKKyAgICogUmV0dXJucyBhIG5ldyBVQ2hhckNoYXJhY3Rlckl0ZXJh
dG9yIHJlZmVycmluZyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgcmFu
Z2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzIHRoaXMgb25lLiAgVGhlCisgICAqIGNhbGxlciBtdXN0
IGRlbGV0ZSB0aGUgbmV3IGl0ZXJhdG9yLgorICAgKiBAcmV0dXJuIHRoZSBDaGFyYWN0ZXJJdGVy
YXRvciBuZXdseSBjcmVhdGVkCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVh
bCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisg
ICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIFRo
aXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4dCgpLgorICAgKiBA
cmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3Qodm9p
ZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJz
dCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNv
ZGUgdW5pdCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgKiB0byB0aGUgc2Vjb25kIGNvZGUg
dW5pdC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICogZm9yIGZv
cndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUgZmly
c3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3RQb3N0SW5jKHZvaWQpOworCisg
IC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSBw
b2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUg
dW5pdCwKKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBu
ZXh0MzIoKS4KKyAgICogTm90ZSB0aGF0IGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMo
KSwgYmVnaW5uaW5nIHdpdGgsCisgICAqIGUuZy4sIHNldFRvU3RhcnQoKSBvciBmaXJzdFBvc3RJ
bmMoKSwgaXMgbW9yZSBlZmZpY2llbnQuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9p
bnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRz
IHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAg
ICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSBwb2ludCwgYW5kIG1vdmVzIHRo
ZSBwb3NpdGlvbgorICAgKiB0byB0aGUgc2Vjb25kIGNvZGUgcG9pbnQuIFRoaXMgaXMgYW4gYWx0
ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRo
IG5leHQzMlBvc3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBp
dHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyUG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogU2V0
cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSB1bml0IGluIGl0cworICAg
KiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBUaGlz
IGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkuCisgICAq
IEByZXR1cm4gdGhlIGxhc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGxhc3Qodm9p
ZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0
IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhh
dCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9u
IHdpdGggcHJldmlvdXMzMigpLgorICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4g
aXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIFVDaGFyMzIgICAgICAgbGFzdDMyKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBp
dGVyYXRvciB0byByZWZlciB0byB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICogaW4g
dGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAq
IHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRp
b24gd2l0aGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAqIEByZXR1cm4gdGhlIGNvZGUg
dW5pdAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAg
ICBzZXRJbmRleChpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgKiB0
aGF0IGNvbnRhaW5zIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgKiBpbiB0aGUgdGV4
dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAgICogcmV0dXJu
cyB0aGF0IGNvZGUgcG9pbnQuCisgICAqIFRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIGFkanVzdGVk
IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICogKGl0cyBmaXJzdCBjb2Rl
IHVuaXQpLgorICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIHdpdGhpbiB0aGUgdGV4
dC1zdG9yYWdlIG9iamVjdAorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQKKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgc2V0SW5kZXgzMihpbnQz
Ml90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogUmV0dXJucyB0aGUgY29kZSB1bml0IHRoZSBp
dGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQg
dGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGN1cnJlbnQodm9pZCkgY29uc3Q7CisKKyAg
LyoqCisgICAqIFJldHVybnMgdGhlIGNvZGUgcG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSBy
ZWZlcnMgdG8uCisgICAqIEByZXR1cm4gdGhlIGNvZGUgcG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJl
bnRseSByZWZlcnMgdG8uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBV
Q2hhcjMyICAgICAgIGN1cnJlbnQzMih2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogQWR2YW5j
ZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAor
ICAgKiBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBh
cmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAg
KiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0KHZv
aWQpOworCisgIC8qKgorICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgdW5pdCBmb3IgcmV0dXJu
aW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIGl0ZXJh
dGlvbiByYW5nZQorICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAq
IG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVy
biB0aGUgY3VycmVudCBjb2RlIHVuaXQuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
dmlydHVhbCBVQ2hhciAgICAgICAgIG5leHRQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBB
ZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRv
d2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYg
dGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERP
TkUuCisgICAqIE5vdGUgdGhhdCBpdGVyYXRpb24gd2l0aCAicHJlLWluY3JlbWVudCIgc2VtYW50
aWNzIGlzIGxlc3MKKyAgICogZWZmaWNpZW50IHRoYW4gaXRlcmF0aW9uIHdpdGggInBvc3QtaW5j
cmVtZW50IiBzZW1hbnRpY3MKKyAgICogdGhhdCBpcyBwcm92aWRlZCBieSBuZXh0MzJQb3N0SW5j
KCkuCisgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJh
bmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAg
ICBuZXh0MzIodm9pZCk7CisKKyAgLyoqCisgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSBwb2lu
dCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAq
IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRo
ZXJlIGFyZQorICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05F
LgorICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHBvaW50LgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzJQb3N0SW5jKHZvaWQpOworCisg
IC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMg
b3IgY29kZSBwb2ludHMKKyAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4g
dGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogVGhpcyBpcyB1c2VkIHdpdGggbmV4dFBvc3RJbmMo
KSBvciBuZXh0MzJQb3N0SW5jKCkgaW4gZm9yd2FyZAorICAgKiBpdGVyYXRpb24uCisgICAqIEBy
ZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50
cworICAgKiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9u
IHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAg
ICAgIGhhc05leHQoKTsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNv
ZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAgICogc3RhcnRJbmRleCgp
KSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAg
KiBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBw
cmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgcHJldmlvdXModm9pZCk7CisK
KyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSBp
dGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0
aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHBvaW50cyB0
byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSBw
b2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBwcmV2aW91czMyKHZvaWQpOworCisgIC8qKgorICAg
KiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBw
b2ludHMKKyAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24g
cmFuZ2UuCisgICAqIFRoaXMgaXMgdXNlZCB3aXRoIHByZXZpb3VzKCkgb3IgcHJldmlvdXMzMigp
IGluIGJhY2t3YXJkCisgICAqIGl0ZXJhdGlvbi4KKyAgICogQHJldHVybiBGQUxTRSBpZiB0aGVy
ZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAqIGJlZm9yZSB0aGUg
Y3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc1ByZXZpb3VzKCk7CisKKyAg
LyoqCisgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFy
dCBvciBlbmQgb2YgdGhlCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhl
IGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2Vk
IGluIG51bWJlcnMgb2YgY29kZSB1bml0cyBmb3J3YXJkCisgICAqIG9yIGJhY2t3YXJkIGJ5IHNw
ZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAgICogQHBhcmFtIGRlbHRh
IHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMg
Zm9yd2FyZDsKKyAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICogQHBh
cmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9Cisg
ICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmln
aW4pOworCisgIC8qKgorICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0
byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0
aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGl0c2VsZi4KKyAgICogVGhlIG1vdmVtZW50IGlz
IGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgcG9pbnRzIGZvcndhcmQKKyAgICogb3IgYmFj
a3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgKiBA
cGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBk
ZWx0YSBtZWFucyBmb3J3YXJkOworICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJk
LgorICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVu
dCwga0VuZH0KKyAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgKi8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92ZTMyKGludDMyX3QgZGVsdGEs
IEVPcmlnaW4gb3JpZ2luKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gaXRl
cmF0ZSBvdmVyIGEgbmV3IHJhbmdlIG9mIHRleHQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICB2b2lkIHNldFRleHQoY29uc3QgVUNoYXIqIG5ld1RleHQsIGludDMyX3QgbmV3VGV4dExl
bmd0aCk7CisKKyAgLyoqCisgICAqIENvcGllcyB0aGUgVUNoYXIgYXJyYXkgdW5kZXIgaXRlcmF0
aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcKKyAgICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIu
ICBFdmVuIGlmIHRoaXMgaXRlcmF0b3IgaXRlcmF0ZXMgYWNyb3NzCisgICAqIG9ubHkgYSBwYXJ0
IG9mIHRoaXMgc3RyaW5nLCB0aGUgd2hvbGUgc3RyaW5nIGlzIGNvcGllZC4KKyAgICogQHBhcmFt
IHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uLgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgdm9pZCAgICAgICAgICAgIGdldFRl
eHQoVW5pY29kZVN0cmluZyYgcmVzdWx0KTsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3Mg
SUQgZm9yIHRoaXMgY2xhc3MgKG5vdCByZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xh
c3MgSUQgZm9yIHRoaXMgY2xhc3MKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBzdGF0
aWMgVUNsYXNzSUQgICAgICAgICBVX0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKwor
ICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0IChub3QgcmVhbGx5
IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDbGFzc0lEICAgICAgICBnZXREeW5h
bWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKworcHJvdGVjdGVkOgorICAvKioKKyAgICogUHJvdGVj
dGVkIGNvbnN0cnVjdG9yCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFy
YWN0ZXJJdGVyYXRvcigpOworICAvKioKKyAgICogUHJvdGVjdGVkIG1lbWJlciB0ZXh0CisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgY29uc3QgVUNoYXIqICAgICAgICAgICAgdGV4dDsK
KworfTsKKworVV9OQU1FU1BBQ0VfRU5ECisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvdWRhdGEuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yOWU0NjYzMGQ1Mzk4ZDgyNzM4ZDFkNjFmZmM0ZDJjOTE0ZThjNjhiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91ZGF0YS5oCkBAIC0wLDAgKzEsNDMw
IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5
LTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBh
bmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorKiAgIGZpbGUgbmFtZTogIHVkYXRhLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAg
IHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVh
dGVkIG9uOiAxOTk5b2N0MjUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8K
KworI2lmbmRlZiBfX1VEQVRBX0hfXworI2RlZmluZSBfX1VEQVRBX0hfXworCisjaW5jbHVkZSAi
dW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCitV
X0NERUNMX0JFR0lOCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogRGF0YSBsb2Fk
aW5nIGludGVyZmFjZQorICoKKyAqIDxoMj5JbmZvcm1hdGlvbiBhYm91dCBkYXRhIGxvYWRpbmcg
aW50ZXJmYWNlPC9oMj4KKyAqCisgKiBUaGlzIEFQSSBpcyB1c2VkIHRvIGZpbmQgYW5kIGVmZmlj
aWVudGx5IGxvYWQgZGF0YSBmb3IgSUNVIGFuZCBhcHBsaWNhdGlvbnMKKyAqIHVzaW5nIElDVS4g
SXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgc3BlY2lmaWVzIGEgZGF0YSB0
eXBlIGFuZAorICogbmFtZSB0byBmaW5kIGFuZCBsb2FkIHRoZSBkYXRhLiBOb3JtYWxseSB0aGlz
IEFQSSBpcyB1c2VkIGJ5IG90aGVyIElDVSBBUElzCisgKiB0byBsb2FkIHJlcXVpcmVkIGRhdGEg
b3V0IG9mIHRoZSBJQ1UgZGF0YSBsaWJyYXJ5LCBidXQgaXQgY2FuIGJlIHVzZWQgdG8KKyAqIGxv
YWQgZGF0YSBvdXQgb2Ygb3RoZXIgcGxhY2VzLgorICoKKyAqIFNlZSB0aGUgVXNlciBHdWlkZSBE
YXRhIE1hbmFnZW1lbnQgY2hhcHRlci4KKyAqLworIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxf
QVBJCisvKioKKyAqIENoYXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJv
bSB0cmVlIG5hbWVzIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVf
U0VQQVJBVE9SICctJworCisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2Ug
bmFtZXMgZnJvbSB0cmVlIG5hbWVzIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmlu
ZSBVX1RSRUVfU0VQQVJBVE9SX1NUUklORyAiLSIKKworLyoqCisgKiBDaGFyYWN0ZXIgdXNlZCB0
byBzZXBhcmF0ZSBwYXJ0cyBvZiBlbnRyeSBuYW1lcworICogQGludGVybmFsIElDVSAzLjAKKyAq
LworI2RlZmluZSBVX1RSRUVfRU5UUllfU0VQX0NIQVIgJy8nCisKKy8qKgorICogU3RyaW5nIHVz
ZWQgdG8gc2VwYXJhdGUgcGFydHMgb2YgZW50cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4w
CisgKi8KKyNkZWZpbmUgVV9UUkVFX0VOVFJZX1NFUF9TVFJJTkcgIi8iCisKKy8qKgorICogQWxp
YXMgZm9yIHN0YW5kYXJkIElDVSBkYXRhIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2Rl
ZmluZSBVX0lDVURBVEFfQUxJQVMgIklDVURBVEEiCisKKyNlbmRpZiAvKiBVX0hJREVfSU5URVJO
QUxfQVBJICovCisKKy8qKgorICogVURhdGFJbmZvIGNvbnRhaW5zIHRoZSBwcm9wZXJ0aWVzIGFi
b3V0IHRoZSByZXF1ZXN0ZWQgZGF0YS4KKyAqIFRoaXMgaXMgbWV0YSBkYXRhLgorICoKKyAqIDxw
PlRoaXMgc3RydWN0dXJlIG1heSBncm93IGluIHRoZSBmdXR1cmUsIGluZGljYXRlZCBieSB0aGUK
KyAqIDxjb2RlPnNpemU8L2NvZGU+IGZpZWxkLjwvcD4KKyAqCisgKiA8cD5JQ1UgZGF0YSBtdXN0
IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogVGhl
IFVEYXRhSW5mbyBzdHJ1Y3QgYmVnaW5zIDQgYnl0ZXMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIHRoZSBk
YXRhIGl0ZW0sCisgKiBzbyBpdCBpcyA0LWFsaWduZWQuCisgKgorICogPHA+VGhlIHBsYXRmb3Jt
IGRhdGEgcHJvcGVydHkgZmllbGRzIGhlbHAgZGV0ZXJtaW5lIGlmIGEgZGF0YQorICogZmlsZSBj
YW4gYmUgZWZmaWNpZW50bHkgdXNlZCBvbiBhIGdpdmVuIG1hY2hpbmUuCisgKiBUaGUgcGFydGlj
dWxhciBmaWVsZHMgYXJlIG9mIGltcG9ydGFuY2Ugb25seSBpZiB0aGUgZGF0YQorICogaXMgYWZm
ZWN0ZWQgYnkgdGhlIHByb3BlcnRpZXMgLSBpZiB0aGVyZSBpcyBpbnRlZ2VyIGRhdGEKKyAqIHdp
dGggd29yZCBzaXplcyA+IDEgYnl0ZSwgY2hhciogdGV4dCwgb3IgVUNoYXIqIHRleHQuPC9wPgor
ICoKKyAqIDxwPlRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIDxjb2RlPnVkYXRhX29wZW5bQ2hv
aWNlXSgpPC9jb2RlPgorICogZnVuY3Rpb25zIG1heSByZWplY3QgZGF0YSBiYXNlZCBvbiB0aGUg
dmFsdWUgaW4gPGNvZGU+aXNCaWdFbmRpYW48L2NvZGU+LgorICogTm8gb3RoZXIgZmllbGQgaXMg
dXNlZCBieSB0aGUgPGNvZGU+dWRhdGE8L2NvZGU+IEFQSSBpbXBsZW1lbnRhdGlvbi48L3A+Cisg
KgorICogPHA+VGhlIDxjb2RlPmRhdGFGb3JtYXQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIGlkZW50
aWZ5CisgKiB0aGUga2luZCBvZiBkYXRhLCBlLmcuIGEgY29udmVydGVyIHRhYmxlLjwvcD4KKyAq
CisgKiA8cD5UaGUgPGNvZGU+Zm9ybWF0VmVyc2lvbjwvY29kZT4gZmllbGQgc2hvdWxkIGJlIHVz
ZWQgdG8KKyAqIG1ha2Ugc3VyZSB0aGF0IHRoZSBmb3JtYXQgY2FuIGJlIGludGVycHJldGVkLgor
ICogSXQgbWF5IGJlIGEgZ29vZCBpZGVhIHRvIGNoZWNrIG9ubHkgZm9yIHRoZSBvbmUgb3IgdHdv
IGhpZ2hlc3QKKyAqIG9mIHRoZSB2ZXJzaW9uIGVsZW1lbnRzIHRvIGFsbG93IHRoZSBkYXRhIG1l
bW9yeSB0bworICogZ2V0IG1vcmUgb3Igc29tZXdoYXQgcmVhcnJhbmdlZCBjb250ZW50cywgZm9y
IGFzIGxvbmcKKyAqIGFzIHRoZSB1c2luZyBjb2RlIGNhbiBzdGlsbCBpbnRlcnByZXQgdGhlIG9s
ZGVyIGNvbnRlbnRzLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+ZGF0YVZlcnNpb248L2NvZGU+
IGZpZWxkIGlzIGludGVuZGVkIHRvIGJlIGEKKyAqIGNvbW1vbiBwbGFjZSB0byBzdG9yZSB0aGUg
c291cmNlIHZlcnNpb24gb2YgdGhlIGRhdGE7CisgKiBmb3IgZGF0YSBmcm9tIHRoZSBVbmljb2Rl
IGNoYXJhY3RlciBkYXRhYmFzZSwgdGhpcyBjb3VsZAorICogcmVmbGVjdCB0aGUgVW5pY29kZSB2
ZXJzaW9uLjwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3Qg
eworICAgIC8qKiBzaXplb2YoVURhdGFJbmZvKQorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8K
KyAgICB1aW50MTZfdCBzaXplOworCisgICAgLyoqIHVudXNlZCwgc2V0IHRvIDAgCisgICAgICog
IEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDE2X3QgcmVzZXJ2ZWRXb3JkOworCisgICAgLyog
cGxhdGZvcm0gZGF0YSBwcm9wZXJ0aWVzICovCisgICAgLyoqIDAgZm9yIGxpdHRsZS1lbmRpYW4g
bWFjaGluZSwgMSBmb3IgYmlnLWVuZGlhbgorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAg
ICB1aW50OF90IGlzQmlnRW5kaWFuOworCisgICAgLyoqIHNlZSBVX0NIQVJTRVRfRkFNSUxZIHZh
bHVlcyBpbiB1dHlwZXMuaCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90
IGNoYXJzZXRGYW1pbHk7CisKKyAgICAvKiogc2l6ZW9mKFVDaGFyKSwgb25lIG9mIHsgMSwgMiwg
NCB9IAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3Qgc2l6ZW9mVUNoYXI7
CisKKyAgICAvKiogdW51c2VkLCBzZXQgdG8gMCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8K
KyAgICB1aW50OF90IHJlc2VydmVkQnl0ZTsKKworICAgIC8qKiBkYXRhIGZvcm1hdCBpZGVudGlm
aWVyIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YUZvcm1hdFs0
XTsKKworICAgIC8qKiB2ZXJzaW9uczogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNd
IG1pY3JvIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZm9ybWF0VmVy
c2lvbls0XTsKKworICAgIC8qKiB2ZXJzaW9uczogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWls
bGkgWzNdIG1pY3JvIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0
YVZlcnNpb25bNF07Cit9IFVEYXRhSW5mbzsKKworLyogQVBJIGZvciByZWFkaW5nIGRhdGEgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisv
KioKKyAqIEZvcndhcmQgZGVjbGFyYXRpb24gb2YgdGhlIGRhdGEgbWVtb3J5IHR5cGUuCisgKiBA
c3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgVURhdGFNZW1vcnkgVURhdGFNZW1v
cnk7CisKKy8qKgorICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHVkYXRhX29wZW5DaG9pY2UoKS4K
KyAqIEBwYXJhbSBjb250ZXh0IHBhcmFtZXRlciBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVu
Q2hvaWNlKCk8L2NvZGU+LgorICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIGRhdGEgYXMg
cGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPi4KKyAqICAgICAgICAg
ICAgIEl0IG1heSBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEBwYXJhbSBuYW1lIFRoZSBuYW1l
IG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBpbnRvIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29k
ZT4uCisgKiBAcGFyYW0gcEluZm8gQSBwb2ludGVyIHRvIHRoZSA8Y29kZT5VRGF0YUluZm88L2Nv
ZGU+IHN0cnVjdHVyZQorICogICAgICAgICAgICAgIG9mIGRhdGEgdGhhdCBoYXMgYmVlbiBsb2Fk
ZWQgYW5kIHdpbGwgYmUgcmV0dXJuZWQKKyAqICAgICAgICAgICAgICBieSA8Y29kZT51ZGF0YV9v
cGVuQ2hvaWNlKCk8L2NvZGU+IGlmIHRoaXMgZnVuY3Rpb24KKyAqICAgICAgICAgICAgICByZXR1
cm5zIDxjb2RlPlRSVUU8L2NvZGU+LgorICogQHJldHVybiBUUlVFIGlmIHRoZSBjdXJyZW50IGRh
dGEgbWVtb3J5IGlzIGFjY2VwdGFibGUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVm
IFVCb29sIFVfQ0FMTENPTlYKK1VEYXRhTWVtb3J5SXNBY2NlcHRhYmxlKHZvaWQgKmNvbnRleHQs
CisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpu
YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVURhdGFJbmZvICpwSW5mbyk7CisK
KworLyoqCisgKiBDb252ZW5pZW5jZSBmdW5jdGlvbi4KKyAqIFRoaXMgZnVuY3Rpb24gd29ya3Mg
dGhlIHNhbWUgYXMgPGNvZGU+dWRhdGFfb3BlbkNob2ljZTwvY29kZT4KKyAqIGV4Y2VwdCB0aGF0
IGFueSBkYXRhIHRoYXQgbWF0Y2hlcyB0aGUgdHlwZSBhbmQgbmFtZQorICogaXMgYXNzdW1lZCB0
byBiZSBhY2NlcHRhYmxlLgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBh
dGggYW5kL29yIGEgYmFzZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0
aGUgZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9j
b2RlPiBmb3IgSUNVIGRhdGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmll
cyB0aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFt
cGxlLCByZXNvdXJjZSBidW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAg
ICAgICAgICAgY29udmVyc2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAg
ICAgVGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFt
ZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJh
bSBwRXJyb3JDb2RlIEFuIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUg
PGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAoaGFuZGxlKSB0byBhIGRh
dGEgbWVtb3J5IG9iamVjdCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAqICAgICAgICAgaWYgYW4g
ZXJyb3Igb2NjdXJzLiBDYWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPgorICogICAg
ICAgICB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4KKyAqCisgKiBAc2VlIHVk
YXRhX29wZW5DaG9pY2UKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1l
bW9yeSAqIFVfRVhQT1JUMgordWRhdGFfb3Blbihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFy
ICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKTsKKworLyoqCisgKiBEYXRhIGxvYWRpbmcgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9u
IGlzIHVzZWQgdG8gZmluZCBhbmQgbG9hZCBlZmZpY2llbnRseSBkYXRhIGZvcgorICogSUNVIGFu
ZCBhcHBsaWNhdGlvbnMgdXNpbmcgSUNVLgorICogSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50
ZXJmYWNlIHRoYXQgYWxsb3dzIHRvIHNwZWNpZnkgYSBkYXRhCisgKiB0eXBlIGFuZCBuYW1lIHRv
IGZpbmQgYW5kIGxvYWQgdGhlIGRhdGEuCisgKgorICogPHA+VGhlIGltcGxlbWVudGF0aW9uIGRl
cGVuZHMgb24gcGxhdGZvcm0gcHJvcGVydGllcyBhbmQgdXNlciBwcmVmZXJlbmNlcworICogYW5k
IG1heSBpbnZvbHZlIGxvYWRpbmcgc2hhcmVkIGxpYnJhcmllcyAoRExMcyksIG1hcHBpbmcKKyAq
IGZpbGVzIGludG8gbWVtb3J5LCBvciBmb3BlbigpL2ZyZWFkKCkgZmlsZXMuCisgKiBJdCBtYXkg
YWxzbyBpbnZvbHZlIHVzaW5nIHN0YXRpYyBtZW1vcnkgb3IgZGF0YWJhc2UgcXVlcmllcyBldGMu
CisgKiBTZXZlcmFsIG9yIGFsbCBkYXRhIGl0ZW1zIG1heSBiZSBjb21iaW5lZCBpbnRvIG9uZSBl
bnRpdHkKKyAqIChETEwsIG1lbW9yeS1tYXBwYWJsZSBmaWxlKS48L3A+CisgKgorICogPHA+VGhl
IGRhdGEgaXMgYWx3YXlzIHByZWNlZGVkIGJ5IGEgaGVhZGVyIHRoYXQgaW5jbHVkZXMKKyAqIGEg
PGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1Y3R1cmUuCisgKiBUaGUgY2FsbGVyJ3MgPGNvZGU+
aXNBY2NlcHRhYmxlKCk8L2NvZGU+IGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBtYWtlCisgKiBzdXJl
IHRoYXQgdGhlIGRhdGEgaXMgdXNlZnVsLiBJdCBtYXkgYmUgY2FsbGVkIHNldmVyYWwgdGltZXMg
aWYgaXQKKyAqIHJlamVjdHMgdGhlIGRhdGEgYW5kIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgbG9j
YXRpb24gd2l0aCBkYXRhCisgKiBtYXRjaGluZyB0aGUgdHlwZSBhbmQgbmFtZS48L3A+CisgKgor
ICogPHA+SWYgPGNvZGU+cGF0aD09TlVMTDwvY29kZT4sIHRoZW4gSUNVIGRhdGEgaXMgbG9hZGVk
LgorICogT3RoZXJ3aXNlLCBpdCBpcyBzZXBhcmF0ZWQgaW50byBhIGJhc2VuYW1lIGFuZCBhIGJh
c2VuYW1lLWxlc3MgZGlyZWN0b3J5IHN0cmluZy4KKyAqIFRoZSBiYXNlbmFtZSBpcyB1c2VkIGFz
IHRoZSBkYXRhIHBhY2thZ2UgbmFtZSwgYW5kIHRoZSBkaXJlY3RvcnkgaXMKKyAqIGxvZ2ljYWxs
eSBwcmVwZW5kZWQgdG8gdGhlIElDVSBkYXRhIGRpcmVjdG9yeSBzdHJpbmcuPC9wPgorICoKKyAq
IDxwPkZvciBkZXRhaWxzIGFib3V0IElDVSBkYXRhIGxvYWRpbmcgc2VlIHRoZSBVc2VyIEd1aWRl
CisgKiBEYXRhIE1hbmFnZW1lbnQgY2hhcHRlci4gKGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNl
cmd1aWRlL2ljdWRhdGEuaHRtbCk8L3A+CisgKgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFu
IGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFzZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAg
ZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8
Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRhdGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0
aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAg
ICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBidW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJy
ZXMiLAorICogICAgICAgICAgICAgY29udmVyc2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgor
ICogICAgICAgICAgICAgVGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisg
KiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0
YS4KKyAqIEBwYXJhbSBpc0FjY2VwdGFibGUgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gdmVy
aWZ5IHRoYXQgbG9hZGVkIGRhdGEKKyAqICAgICAgICAgICAgICAgICAgICAgaXMgdXNlZnVsIGZv
ciB0aGUgY2xpZW50IGNvZGUuIElmIGl0IHJldHVybnMgRkFMU0UKKyAqICAgICAgICAgICAgICAg
ICAgICAgZm9yIGFsbCBkYXRhIGl0ZW1zLCB0aGVuIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwv
Y29kZT4KKyAqICAgICAgICAgICAgICAgICAgICAgd2lsbCByZXR1cm4gd2l0aCBhbiBlcnJvci4K
KyAqIEBwYXJhbSBjb250ZXh0IEFyYml0cmFyeSBwYXJhbWV0ZXIgdG8gYmUgcGFzc2VkIGludG8g
aXNBY2NlcHRhYmxlLgorICogQHBhcmFtIHBFcnJvckNvZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFy
YW1ldGVyLiBJdCBtdXN0IG5vdCBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEByZXR1cm4gQSBw
b2ludGVyIChoYW5kbGUpIHRvIGEgZGF0YSBtZW1vcnkgb2JqZWN0LCBvciA8Y29kZT5OVUxMPC9j
b2RlPgorICogICAgICAgICBpZiBhbiBlcnJvciBvY2N1cnMuIENhbGwgPGNvZGU+dWRhdGFfZ2V0
TWVtb3J5KCk8L2NvZGU+CisgKiAgICAgICAgIHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGFjdHVh
bCBkYXRhLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIFVEYXRhTWVtb3J5ICog
VV9FWFBPUlQyCit1ZGF0YV9vcGVuQ2hvaWNlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIg
KnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgIFVEYXRhTWVtb3J5SXNB
Y2NlcHRhYmxlICppc0FjY2VwdGFibGUsIHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAg
IFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENsb3NlIHRoZSBkYXRhIG1lbW9y
eS4KKyAqIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgdG8gYWxsb3cgdGhlIHN5c3RlbSB0
bworICogcmVsZWFzZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGF0YSBtZW1vcnku
CisgKiBAcGFyYW0gcERhdGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBtZW1vcnkgb2JqZWN0CisgKiBA
c3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2Nsb3Nl
KFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKyNpZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05B
TUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFxjbGFzcyBMb2NhbFVEYXRhTWVtb3J5UG9pbnRlcgor
ICogIlNtYXJ0IHBvaW50ZXIiIGNsYXNzLCBjbG9zZXMgYSBVRGF0YU1lbW9yeSB2aWEgdWRhdGFf
Y2xvc2UoKS4KKyAqIEZvciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJh
c2UgY2xhc3MuCisgKgorICogQHNlZSBMb2NhbFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9p
bnRlcgorICogQHN0YWJsZSBJQ1UgNC40CisgKi8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRF
UihMb2NhbFVEYXRhTWVtb3J5UG9pbnRlciwgVURhdGFNZW1vcnksIHVkYXRhX2Nsb3NlKTsKKwor
VV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZgorCisvKioKKyAqIEdldCB0aGUgcG9pbnRlciB0byB0
aGUgYWN0dWFsIGRhdGEgaW5zaWRlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoZSBkYXRhIGlzIHJl
YWQtb25seS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5k
IHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICoKKyAqIEBwYXJhbSBwRGF0YSBUaGUgcG9pbnRlciB0
byBkYXRhIG1lbW9yeSBvYmplY3QKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBj
b25zdCB2b2lkICogVV9FWFBPUlQyCit1ZGF0YV9nZXRNZW1vcnkoVURhdGFNZW1vcnkgKnBEYXRh
KTsKKworLyoqCisgKiBHZXQgdGhlIGluZm9ybWF0aW9uIGZyb20gdGhlIGRhdGEgbWVtb3J5IGhl
YWRlci4KKyAqIFRoaXMgYWxsb3dzIHRvIGdldCBhY2Nlc3MgdG8gdGhlIGhlYWRlciBjb250YWlu
aW5nCisgKiBwbGF0Zm9ybSBkYXRhIHByb3BlcnRpZXMgZXRjLiB3aGljaCBpcyBub3QgcGFydCBv
ZgorICogdGhlIGRhdGEgaXRzZWxmIGFuZCBjYW4gdGhlcmVmb3JlIG5vdCBiZSBhY2Nlc3NlZAor
ICogdmlhIHRoZSBwb2ludGVyIHRoYXQgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+IHJl
dHVybnMuCisgKgorICogQHBhcmFtIHBEYXRhIHBvaW50ZXIgdG8gdGhlIGRhdGEgbWVtb3J5IG9i
amVjdAorICogQHBhcmFtIHBJbmZvIHBvaW50ZXIgdG8gYSBVRGF0YUluZm8gb2JqZWN0OworICog
ICAgICAgICAgICAgIGl0cyA8Y29kZT5zaXplPC9jb2RlPiBmaWVsZCBtdXN0IGJlIHNldCBjb3Jy
ZWN0bHksCisgKiAgICAgICAgICAgICAgdHlwaWNhbGx5IHRvIDxjb2RlPnNpemVvZihVRGF0YUlu
Zm8pPC9jb2RlPi4KKyAqCisgKiA8Y29kZT4qcEluZm88L2NvZGU+IHdpbGwgYmUgZmlsbGVkIHdp
dGggdGhlIFVEYXRhSW5mbyBzdHJ1Y3R1cmUKKyAqIGluIHRoZSBkYXRhIG1lbW9yeSBvYmplY3Qu
IElmIHRoaXMgc3RydWN0dXJlIGlzIHNtYWxsZXIgdGhhbgorICogPGNvZGU+cEluZm8tPnNpemU8
L2NvZGU+LCB0aGVuIHRoZSA8Y29kZT5zaXplPC9jb2RlPiB3aWxsIGJlCisgKiBhZGp1c3RlZCBh
bmQgb25seSBwYXJ0IG9mIHRoZSBzdHJ1Y3R1cmUgd2lsbCBiZSBmaWxsZWQuCisgKiBAc3RhYmxl
IElDVSAyLjAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2dldEluZm8oVURh
dGFNZW1vcnkgKnBEYXRhLCBVRGF0YUluZm8gKnBJbmZvKTsKKworLyoqCisgKiBUaGlzIGZ1bmN0
aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNVIGRhdGEgbG9hZGluZyBwcm9jZXNzIGFuZAorICog
YWxsb3dzIHlvdSB0byBmb3JjZSBJQ1UncyBzeXN0ZW0gZGF0YSB0byBjb21lIG91dCBvZiBhIHVz
ZXItc3BlY2lmaWVkCisgKiBhcmVhIGluIG1lbW9yeS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJl
IGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0
dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0
IG9mIHRoaXMgZGF0YSBpcyB0aGF0IG9mIHRoZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgYXMgaXMK
KyAqIGdlbmVyYXRlZCBieSB0aGUgcGtnZGF0YSB0b29sIHdpdGggbW9kZT1jb21tb24gb3IgbW9k
ZT1kbGwuCisgKiBZb3UgY2FuIHJlYWQgaW4gYSB3aG9sZSBjb21tb24gbW9kZSBmaWxlIGFuZCBw
YXNzIHRoZSBhZGRyZXNzIHRvIHRoZSBzdGFydCBvZiB0aGUKKyAqIGRhdGEsIG9yICh3aXRoIHRo
ZSBhcHByb3ByaWF0ZSBsaW5rIG9wdGlvbnMpIHBhc3MgaW4gdGhlIHBvaW50ZXIgdG8KKyAqIHRo
ZSBkYXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVkIGZyb20gYSBkbGwgYnkgdGhlIG9wZXJhdGluZyBz
eXN0ZW0sCisgKiBhcyBzaG93biBpbiB0aGlzIGNvZGU6CisgKgorICogICAgICAgZXh0ZXJuIGNv
bnN0IGNoYXIgVV9JTVBPUlQgVV9JQ1VEQVRBX0VOVFJZX1BPSU5UIFtdOworICogICAgICAgIC8v
IFVfSUNVREFUQV9FTlRSWV9QT0lOVCBpcyBzYW1lIGFzIGVudHJ5IHBvaW50IHNwZWNpZmllZCB0
byBwa2dkYXRhIHRvb2wKKyAqICAgICAgIFVFcnJvckNvZGUgIHN0YXR1cyA9IFVfWkVST19FUlJP
UjsKKyAqCisgKiAgICAgICB1ZGF0YV9zZXRDb21tb25EYXRhKCZVX0lDVURBVEFfRU5UUllfUE9J
TlQsICZzdGF0dXMpOworICoKKyAqIEl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBkZWNsYXJhdGlv
biBiZSBhcyBhYm92ZS4gVGhlIGVudHJ5IHBvaW50CisgKiBtdXN0IG5vdCBiZSBkZWNsYXJlZCBh
cyBhbiBleHRlcm4gdm9pZCouCisgKgorICogU3RhcnRpbmcgd2l0aCBJQ1UgNC40LCBpdCBpcyBw
b3NzaWJsZSB0byBzZXQgc2V2ZXJhbCBkYXRhIHBhY2thZ2VzLAorICogb25lIHBlciBjYWxsIHRv
IHRoaXMgZnVuY3Rpb24uCisgKiB1ZGF0YV9vcGVuKCkgd2lsbCBsb29rIGZvciBkYXRhIGluIHRo
ZSBtdWx0aXBsZSBkYXRhIHBhY2thZ2VzIGluIHRoZSBvcmRlcgorICogaW4gd2hpY2ggdGhleSB3
ZXJlIHNldC4KKyAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGlua2VkLWluIG9yIGRlZmF1bHQtbmFt
ZSBJQ1UgLmRhdGEgcGFja2FnZSBpbiB0aGUKKyAqIHNlYXJjaCBsaXN0IGRlcGVuZHMgb24gd2hl
biB0aGUgZmlyc3QgZGF0YSBpdGVtIGlzIGxvYWRlZCB0aGF0IGlzIG5vdCBjb250YWluZWQKKyAq
IGluIHRoZSBhbHJlYWR5IGV4cGxpY2l0bHkgc2V0IHBhY2thZ2VzLgorICogSWYgZGF0YSB3YXMg
bG9hZGVkIGltcGxpY2l0bHkgYmVmb3JlIHRoZSBmaXJzdCBjYWxsIHRvIHRoaXMgZnVuY3Rpb24K
KyAqIChmb3IgZXhhbXBsZSwgdmlhIG9wZW5pbmcgYSBjb252ZXJ0ZXIsIGNvbnN0cnVjdGluZyBh
IFVuaWNvZGVTdHJpbmcKKyAqIGZyb20gZGVmYXVsdC1jb2RlcGFnZSBkYXRhLCB1c2luZyBmb3Jt
YXR0aW5nIG9yIGNvbGxhdGlvbiBBUElzLCBldGMuKSwKKyAqIHRoZW4gdGhlIGRlZmF1bHQgZGF0
YSB3aWxsIGJlIGZpcnN0IGluIHRoZSBsaXN0LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaGFzIG5v
IGVmZmVjdCBvbiBhcHBsaWNhdGlvbiAobm9uIElDVSkgZGF0YS4gIFNlZSB1ZGF0YV9zZXRBcHBE
YXRhKCkKKyAqIGZvciBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgZm9yIGFwcGxpY2F0aW9uIGRhdGEu
CisgKgorICogQHBhcmFtIGRhdGEgcG9pbnRlciB0byBJQ1UgY29tbW9uIGRhdGEKKyAqIEBwYXJh
bSBlcnIgb3V0Z29pbmcgZXJyb3Igc3RhdHVzIDxjb2RlPlVfVVNJTkdfREVGQVVMVF9XQVJOSU5H
LCBVX1VOU1VQUE9SVEVEX0VSUk9SPC9jb2RlPgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1Vf
U1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRDb21tb25EYXRhKGNvbnN0IHZvaWQgKmRh
dGEsIFVFcnJvckNvZGUgKmVycik7CisKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2Vz
IHRoZSBub3JtYWwgSUNVIGRhdGEgbG9hZGluZyBwcm9jZXNzIGZvciBhcHBsaWNhdGlvbi1zcGVj
aWZpYworICogZGF0YSBhbmQgYWxsb3dzIHlvdSB0byBmb3JjZSB0aGUgaXQgdG8gY29tZSBvdXQg
b2YgYSB1c2VyLXNwZWNpZmllZAorICogcG9pbnRlci4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJl
IGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0
dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0
IG9mIHRoaXMgZGF0YSBpcyB0aGF0IG9mIHRoZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgbGlrZSAn
aWN1ZHQyNmwuZGF0JworICogb3IgdGhlIGNvcnJlc3BvbmRpbmcgc2hhcmVkIGxpYnJhcnkgKERM
TCkgZmlsZS4KKyAqIFRoZSBhcHBsaWNhdGlvbiBtdXN0IHJlYWQgaW4gb3Igb3RoZXJ3aXNlIGNv
bnN0cnVjdCBhbiBpbWFnZSBvZiB0aGUgZGF0YSBhbmQgdGhlbgorICogcGFzcyB0aGUgYWRkcmVz
cyBvZiBpdCB0byB0aGlzIGZ1bmN0aW9uLgorICoKKyAqCisgKiBXYXJuaW5nOiAgc2V0QXBwRGF0
YSB3aWxsIHNldCBhIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGNvZGUgaWYKKyAqICAgICAgICAg
ICBkYXRhIHdpdGggdGhlIHNwZWNpZmVkIHBhdGggdGhhdCBoYXMgYWxyZWFkeSBiZWVuIG9wZW5l
ZCwgb3IKKyAqICAgICAgICAgICBpZiBzZXRBcHBEYXRhIHdpdGggdGhlIHNhbWUgcGF0aCBoYXMg
YWxyZWFkeSBiZWVuIGNhbGxlZC4KKyAqICAgICAgICAgICBBbnkgc3VjaCBjYWxscyB0byBzZXRB
cHBEYXRhIHdpbGwgaGF2ZSBubyBlZmZlY3QuCisgKgorICoKKyAqIEBwYXJhbSBwYWNrYWdlTmFt
ZSB0aGUgcGFja2FnZSBuYW1lIGJ5IHdoaWNoIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZmVyCisg
KiAgICAgICAgICAgICB0byAob3BlbikgdGhpcyBkYXRhCisgKiBAcGFyYW0gZGF0YSBwb2ludGVy
IHRvIHRoZSBkYXRhCisgKiBAcGFyYW0gZXJyIG91dGdvaW5nIGVycm9yIHN0YXR1cyA8Y29kZT5V
X1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9VTlNVUFBPUlRFRF9FUlJPUjwvY29kZT4KKyAqIEBz
ZWUgdWRhdGFfc2V0Q29tbW9uRGF0YQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxF
IHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRBcHBEYXRhKGNvbnN0IGNoYXIgKnBhY2thZ2VOYW1l
LCBjb25zdCB2b2lkICpkYXRhLCBVRXJyb3JDb2RlICplcnIpOworCisvKioKKyAqIFBvc3NpYmxl
IHNldHRpbmdzIGZvciB1ZGF0YV9zZXRGaWxlQWNjZXNzKCkKKyAqIEBzZWUgdWRhdGFfc2V0Rmls
ZUFjY2VzcworICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK3R5cGVkZWYgZW51bSBVRGF0YUZpbGVB
Y2Nlc3MgeworICAgIC8qKiBJQ1UgbG9va3MgZm9yIGRhdGEgaW4gc2luZ2xlIGZpbGVzIGZpcnN0
LCB0aGVuIGluIHBhY2thZ2VzLiAoZGVmYXVsdCkgQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURB
VEFfRklMRVNfRklSU1QsCisgICAgLyoqIEFuIGFsaWFzIGZvciB0aGUgZGVmYXVsdCBhY2Nlc3Mg
bW9kZS4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfREVGQVVMVF9BQ0NFU1MgPSBVREFU
QV9GSUxFU19GSVJTVCwKKyAgICAvKiogSUNVIG9ubHkgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2Vz
LCBub3QgZnJvbSBzaW5nbGUgZmlsZXMuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX09O
TFlfUEFDS0FHRVMsCisgICAgLyoqIElDVSBsb2FkcyBkYXRhIGZyb20gcGFja2FnZXMgZmlyc3Qs
IGFuZCBvbmx5IGZyb20gc2luZ2xlIGZpbGVzCisgICAgICAgIGlmIHRoZSBkYXRhIGNhbm5vdCBi
ZSBmb3VuZCBpbiBhIHBhY2thZ2UuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX1BBQ0tB
R0VTX0ZJUlNULAorICAgIC8qKiBJQ1UgZG9lcyBub3QgYWNjZXNzIHRoZSBmaWxlIHN5c3RlbSBm
b3IgZGF0YSBsb2FkaW5nLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9OT19GSUxFUywK
KyAgICAvKiogTnVtYmVyIG9mIHJlYWwgVURhdGFGaWxlQWNjZXNzIHZhbHVlcy4gQHN0YWJsZSBJ
Q1UgMy40ICovCisgICAgVURBVEFfRklMRV9BQ0NFU1NfQ09VTlQKK30gVURhdGFGaWxlQWNjZXNz
OworCisvKioKKyAqIFRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCB0byBjb250cm9sIGhvdyBJ
Q1UgbG9hZHMgZGF0YS4gSXQgbXVzdCBiZSBjYWxsZWQKKyAqIGJlZm9yZSBhbnkgSUNVIGRhdGEg
aXMgbG9hZGVkLCBpbmNsdWRpbmcgYXBwbGljYXRpb24gZGF0YSBsb2FkZWQgd2l0aCAKKyAqIHVy
ZXMvUmVzb3VyY2VCdW5kbGUgb3IgdWRhdGEgQVBJcy4gVGhpcyBmdW5jdGlvbiBpcyBub3QgbXVs
dGl0aHJlYWQgc2FmZS4gIAorICogVGhlIHJlc3VsdHMgb2YgY2FsbGluZyBpdCB3aGlsZSBvdGhl
ciB0aHJlYWRzIGFyZSBsb2FkaW5nIGRhdGEgYXJlIHVuZGVmaW5lZC4KKyAqIEBwYXJhbSBhY2Nl
c3MgVGhlIHR5cGUgb2YgZmlsZSBhY2Nlc3MgdG8gYmUgdXNlZAorICogQHBhcmFtIHN0YXR1cyBF
cnJvciBjb2RlLgorICogQHNlZSBVRGF0YUZpbGVBY2Nlc3MKKyAqIEBzdGFibGUgSUNVIDMuNCAK
KyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3NldEZpbGVBY2Nlc3MoVURhdGFG
aWxlQWNjZXNzIGFjY2VzcywgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworVV9DREVDTF9FTkQKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmggYi9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg1NDUxZmM3NjdjMDU4MzVm
NmMxNWY1NjZmMzU2MmUyZDRhZjgzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1
L3VuaWNvZGUvdW1pc2MuaApAQCAtMCwwICsxLDYwIEBACisvKgorKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IENvcHlyaWdodCAoQykgMTk5OS0yMDA2LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdW1pc2MuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFT
Q0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgor
KiAgIGNyZWF0ZWQgb246IDE5OTlvY3QxNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hl
cmVyCisqLworCisjaWZuZGVmIFVNSVNDX0gKKyNkZWZpbmUgVU1JU0NfSAorCisjaW5jbHVkZSAi
dW5pY29kZS91dHlwZXMuaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmICBDIEFQSTptaXNj
IGRlZmluaXRpb25zIAorICoKKyAqICBUaGlzIGZpbGUgY29udGFpbnMgbWlzY2VsbGFuZW91cyBk
ZWZpbml0aW9ucyBmb3IgdGhlIEMgQVBJcy4gCisgKi8KKworVV9DREVDTF9CRUdJTgorCisvKiog
QSBzdHJ1Y3QgcmVwcmVzZW50aW5nIGEgcmFuZ2Ugb2YgdGV4dCBjb250YWluaW5nIGEgc3BlY2lm
aWMgZmllbGQgCisgKiAgQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IFVGaWVs
ZFBvc2l0aW9uIHsKKyAgLyoqCisgICAqIFRoZSBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAqLworICBpbnQzMl90IGZpZWxkOworICAvKioKKyAgICogVGhlIHN0YXJ0IG9mIHRoZSB0
ZXh0IHJhbmdlIGNvbnRhaW5pbmcgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgaW50MzJfdCBiZWdpbkluZGV4OworICAvKiogCisgICAqIFRoZSBsaW1pdCBvZiB0aGUgdGV4
dCByYW5nZSBjb250YWluaW5nIGZpZWxkIAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IGludDMyX3QgZW5kSW5kZXg7Cit9IFVGaWVsZFBvc2l0aW9uOworCisjaWYgIVVDT05GSUdfTk9f
U0VSVklDRQorLyoqCisgKiBPcGFxdWUgdHlwZSByZXR1cm5lZCBieSByZWdpc3Rlckluc3RhbmNl
LCByZWdpc3RlckZhY3RvcnkgYW5kIHVucmVnaXN0ZXIgZm9yIHNlcnZpY2UgcmVnaXN0cmF0aW9u
LgorICogQHN0YWJsZSBJQ1UgMi42CisgKi8KK3R5cGVkZWYgY29uc3Qgdm9pZCogVVJlZ2lzdHJ5
S2V5OworI2VuZGlmCisKK1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApp
bmRleCBlMzRkMzdmOTM2ZWNmM2I4MjcxMDIzMDAxNzE3ZDk4ZDdjMzczZjQ4Li5hZDRhY2VjYjdk
ZGRkYTg3YmYwMjdkOWRhYTFiYTNjYzdiMDE2MTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAt
Mjk0LDYgKzI5NCw0MiBAQCBpZiAoTk9UIFVTRV9TWVNURU1fTUFMTE9DKQogICAgIGxpc3QoQVBQ
RU5EIFdURl9MSUJSQVJJRVMgYm1hbGxvYykKIGVuZGlmICgpCiAKK3NldChXVEZfQlJFQUtJTkdf
UlVMRVNfU09VUkNFUworICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Q0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKKykKKworbWFjcm8oR0VORVJBVEVf
QlJFQUtJTkdfUlVMRVMgX2lucHV0IF9zeW1ib2xOYW1lIF9vdXRwdXQpCisgICAgYWRkX2N1c3Rv
bV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgJHtfb3V0cHV0fQorICAgICAgICBNQUlOX0RFUEVO
REVOQ1kgJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdS
dWxlU3RyaW5ncy5weQorICAgICAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElS
fS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJHtfaW5w
dXR9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKKyAgICAgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRB
QkxFfSAke1dURl9ESVJ9L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1
bGVTdHJpbmdzLnB5IC1pbmNsdWRlRGVmaW5lcyAke19zeW1ib2xOYW1lfVJ1bGVzICR7Q01BS0Vf
Q1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQ
cm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgPiAke19vdXRwdXR9Cisg
ICAgICAgIFZFUkJBVElNKQorICAgIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7X291dHB1dH0p
CisgICAgQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtfaW5wdXR9ICR7X291dHB1dH0pCitlbmRt
YWNybygpCisKK2ZvcmVhY2ggKF9maWxlICR7V1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVN9KQor
ICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtfZmlsZX0gTkFNRV9XRSkKKyAgICBH
RU5FUkFURV9CUkVBS0lOR19SVUxFUygke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtfZmls
ZX0gJHtfbmFtZX0gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy8ke19u
YW1lfS5jcHApCitlbmRmb3JlYWNoICgpCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQ
VVQgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgTUFJTl9ERVBFTkRFTkNZICR7V1RGX0RJUn0vd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKKyAgICBERVBF
TkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJM
RX0gJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxl
U3RyaW5ncy5weSAtaW5jbHVkZURlZmluZXMgY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzICR7
Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLnR4dCA+ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5n
UnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcAorICAgIFZFUkJBVElNKQorbGlz
dChBUFBFTkQgV1RGX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdS
dWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwKQorQUREX1NPVVJDRV9ERVBFTkRF
TkNJRVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCkKKwogbGlzdChBUFBF
TkQgV1RGX1NPVVJDRVMKICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKICkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV1RGL3d0
Zi9EZXJpdmVkU291cmNlcy5tYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmNTMyZGYyN2IzN2Y5N2JlNzUwZmVj
ZGE5ZjI3YmU3YTk4ODVmZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC0wLDAgKzEsODMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKK0JSRUFLSU5HX1JVTEVTX0ZJTEVTID0gXAorICAgIEJyZWFraW5nUnVs
ZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vcm1hbENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5icmsKKworQlJFQUtJTkdfUlVMRVNfREVGSU5J
VElPTlMgPSBcCisgICAgQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwIFwK
KyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIFwKKyAg
ICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgXAorICAg
IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBcCisg
ICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBcCisg
ICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBc
CisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBc
CisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNw
cAorCitpZmVxICgkKHNoZWxsICQoQ0MpIC1zdGQ9Z251KysxMSAteCBjKysgLUUgLVAgLWRNICQo
U0RLX0ZMQUdTKSAkKEZSQU1FV09SS19GTEFHUykgJChIRUFERVJfRkxBR1MpIC1JICQoV1RGKSAt
aW5jbHVkZSAiJChXVEYpL3d0Zi9QbGF0Zm9ybS5oIiAvZGV2L251bGwgfCBncmVwICcgV1RGX1BM
QVRGT1JNX0lPUyAnIHwgY3V0IC1kJyAnIC1mMyksIDEpCisgICAgV1RGX1BMQVRGT1JNX0lPUyA9
IDEKK2Vsc2UKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMAorZW5kaWYKKworaWZlcSAoJChXVEZf
UExBVEZPUk1fSU9TKSwgMSkKKwlBRERJVElPTkFMX0VNT0pJX1NVUFBPUlRfRk9SX0NVUlNPUl9N
T1ZFTUVOVCA9IDAKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMAorZWxzZQorCUFERElU
SU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5UID0gJChBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQpCisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyA9IDEKK2VuZGlmCisKK0RF
UEVOREVOQ0lFUyA9ICQoQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlMpCisKK2lmZXEgKCQoT1Mp
LE1BQ09TKQoraWZlcSAoJChIQVZFX0lDVUdFTkJSSyksIDEpCitERVBFTkRFTkNJRVMgKz0gJChC
UkVBS0lOR19SVUxFU19GSUxFUykKK2VuZGlmCitlbmRpZgorCithbGwgOiAkKERFUEVOREVOQ0lF
UykKKworQnJlYWtpbmdSdWxlcy8lLmJyayA6IEJyZWFraW5nUnVsZXMvJS5wcAorCWljdWdlbmJy
ayAtYyAtciAkPCAtbyAkQAorCitCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAgOiBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcAor
CXB5dGhvbiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVs
ZVN0cmluZ3MucHkgY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzICQ8ID4gJEAKKworQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUuY3BwIDogQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvciUucHAKKwlweXRob24gJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJh
dGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGxpbmVCcmVha0l0ZXJhdG9yJCpSdWxlcyAkPCA+ICRA
CisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwIDogJChXVEYp
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAor
CS11bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQpIC1ESEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUz0k
KEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRAICQ8CisKK0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3IlLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCS1jYXQgJD8gfCB1bmlmZGVmIC1EQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhUUkFfSUNV
X05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgK
aW5kZXggNmY5Mjc1OTc5Y2UzMjYzYTI0YjVjOTQ1ZDZkNGM2MjAyY2RhZjI5Mi4uNjQwOWE0MTY5
MjkyOWJjYWQwN2RkNjY1ZGI4ZTM3Mzc1YTI1ZDQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMjA4LDcg
KzEyMDgsNyBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEyMDEgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDEyMDAKLSNkZWZpbmUgSEFWRV9UT1VDSF9CQVIgMQorI2RlZmluZSBIQVZFX1RP
VUNIX0JBUiAwCiAjZGVmaW5lIEhBVkVfQURWQU5DRURfU1BFTExfQ0hFQ0tJTkcgMQogCiAjaWYg
ZGVmaW5lZChfX0xQNjRfXykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0IGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzU5MTBiZmE1ZTBlNjMzZGJkNzI1OTNhYzFmMzMwYWYzZWU0M2RkZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMudHh0CkBAIC0wLDAgKzEsMTc0IEBACisjIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjIFRoaXMgcnVsZSBzZXQgaXMgYmFzZWQgb24gY2hhcmFjdGVy
LWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NworIyA8aHR0cDovL3NvdXJjZS5pY3UtcHJv
amVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtp
dHIvPi4KKyMgVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJl
IGxpc3RlZCBiZWxvdzoKKyMgKiBSZXBsYWNlZCAnW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBTcGFjaW5nTWFya31dJyB3aXRoICdbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFy
a30gLSAkRXh0ZW5kXScgZm9yIElDVSAzLjggb3IgZWFybGllcjsKKyMgKiBSZW1vdmVkIHJ1bGVz
IHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3Rl
cnMgKEJ1ZyAyNDM0Mik7CisjICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZy
b20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRh
bWlsIChCdWcgMTU3OTApLCBhbmQ7CisjICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vy
c29yIGZyb20gbW92aW5nIGJlZm9yZSBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNl
ZCBtYXJrcy4KKyMgKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMu
CisKKyRDUiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOworJExGICAg
ICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExGfV07CiskQ29udHJvbCA9IFtccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOworJFZvaWNlTWFya3MgPSBbXHVGRjlF
XHVGRjlGXTsgIyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcworJEV4
dGVuZCAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNlTWFya3Mg
LSBbXHUwRTMwIFx1MEUzMiBcdTBFNDUgXHUwRUIwIFx1MEVCMl1dOworJFNwYWNpbmdNYXJrID0g
W1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfV0gLSAkRXh0ZW5kXTsKKyRMICAg
ICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07CiskViAgICAgICA9IFtccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOworJFQgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IFR9XTsKKyRMViAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBMVn1dOworJExWVCAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1dOwor
JEhpbjAgICAgPSBbXHUwOTA1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEK
KyRIaW5WICAgID0gXHUwOTREOyAjIERldmFuYWdhcmkgU2lnbiBWaXJhbWEKKyRIaW4xICAgID0g
W1x1MDkxNS1cdTA5MzldOyAjIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQorJEJlbjAgICAg
PSBbXHUwOTg1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEKKyRCZW5WICAgID0g
XHUwOUNEOyAjIEJlbmdhbGkgU2lnbiBWaXJhbWEKKyRCZW4xICAgID0gW1x1MDk5NS1cdTA5Qjld
OyAjIEJlbmdhbGkgTGV0dGVyIEthLC4uLixIYQorJFBhbjAgICAgPSBbXHUwQTA1LVx1MEEzOV07
ICMgR3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCiskUGFuViAgICA9IFx1MEE0RDsgIyBHdXJtdWto
aSBTaWduIFZpcmFtYQorJFBhbjEgICAgPSBbXHUwQTE1LVx1MEEzOV07ICMgR3VybXVraGkgTGV0
dGVyIEthLC4uLixIYQorJEd1ajAgICAgPSBbXHUwQTg1LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0
dGVyIEEsLi4uLEhhCiskR3VqViAgICA9IFx1MEFDRDsgIyBHdWphcmF0aSBTaWduIFZpcmFtYQor
JEd1ajEgICAgPSBbXHUwQTk1LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQor
JE9yaTAgICAgPSBbXHUwQjA1LVx1MEIzOV07ICMgT3JpeWEgTGV0dGVyIEEsLi4uLEhhCiskT3Jp
ViAgICA9IFx1MEI0RDsgIyBPcml5YSBTaWduIFZpcmFtYQorJE9yaTEgICAgPSBbXHUwQjE1LVx1
MEIzOV07ICMgT3JpeWEgTGV0dGVyIEthLC4uLixIYQorJFRlbDAgICAgPSBbXHUwQzA1LVx1MEMz
OV07ICMgVGVsdWd1IExldHRlciBBLC4uLixIYQorJFRlbFYgICAgPSBcdTBDNEQ7ICMgVGVsdWd1
IFNpZ24gVmlyYW1hCiskVGVsMSAgICA9IFtcdTBDMTQtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVy
IEthLC4uLixIYQorJEthbjAgICAgPSBbXHUwQzg1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIg
QSwuLi4sSGEKKyRLYW5WICAgID0gXHUwQ0NEOyAjIEthbm5hZGEgU2lnbiBWaXJhbWEKKyRLYW4x
ICAgID0gW1x1MEM5NS1cdTBDQjldOyAjIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCiskTWFsMCAg
ICA9IFtcdTBEMDUtXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhIAorJE1hbFYg
ICAgPSBcdTBENEQ7ICMgTWFsYXlhbGFtIFNpZ24gVmlyYW1hCiskTWFsMSAgICA9IFtcdTBEMTUt
XHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCiskUkkgICAgICA9IFtcVTAwMDFG
MUU2LVxVMDAwMUYxRkZdOyAjIEVtb2ppIHJlZ2lvbmFsIGluZGljYXRvcnMKKyRaV0ogICAgID0g
XHUyMDBEOyAjIFplcm8gd2lkdGggam9pbmVyCiskRW1vamlWYXIgPSBbXHVGRTBGXTsgIyBFbW9q
aS1zdHlsZSB2YXJpYXRpb24gc2VsZWN0b3IKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI2NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUw
MDAxRjMwOCBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAw
MUYzRjMgXFUwMDAxRjQ0MSBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFG
NDZGIFxVMDAwMUY0NzEgXFUwMDAxRjQ3MyBcVTAwMDFGNDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4
MiBcVTAwMDFGNDg2LVxVMDAwMUY0ODcgXFUwMDAxRjQ4QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTgg
XFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEIgXFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxV
MDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2XTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRl
IGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI2RjkgXHUy
NzBBLVx1MjcwRCBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxV
MDAwMUYzQ0IgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAw
MDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAx
RjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1
NzUgXFUwMDAxRjU5MCBcVTAwMDFGNTk1IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3
IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBc
VTAwMDFGNkMwIFxVMDAwMUY5MThdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9k
aWZpZXJzCisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2
LVxVMDAwMUY0NjkgXFUwMDAxRjQ4Ql07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0og
c2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBBLVx1MjcwQyBcVTAw
MDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0M3IFxVMDAwMUYzQ0EgXFUwMDAx
RjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0
NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgz
IFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1c
VTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUw
MDAxRjZCNiBcVTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlm
aWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYzRkZdOyAj
IEZpdHpwYXRyaWNrIG1vZGlmaWVycworISFjaGFpbjsKKworI2lmIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVAorCisgICAgISFSSU5vQ2hhaW47CisKKyNlbmRpZgorCishIWZvcndhcmQ7CiskQ1Ig
JExGOworJEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsKKygkTFYgfCAkVikgKCRWIHwgJFQpOwor
KCRMVlQgfCAkVCkgJFQ7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRS
SSAkUkkgJEV4dGVuZCogLyAkUkk7CisgICAgJFJJICRSSSAkRXh0ZW5kKjsKKyAgICBbXiRDb250
cm9sICRDUiAkTEZdICRFeHRlbmQ7CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01h
cms7CisKKyNlbHNlCisKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7CisgICAgW14k
Q29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7CisgICAgJFJJICRSSSAvICRSSTsKKyAgICAk
UkkgJFJJOworCisjZW5kaWYKKworJEhpbjAgJEhpblYgJEhpbjE7ICMgRGV2YW5hZ2FyaSBWaXJh
bWEgKGZvcndhcmQpCiskQmVuMCAkQmVuViAkQmVuMTsgIyBCZW5nYWxpIFZpcmFtYSAoZm9yd2Fy
ZCkKKyRQYW4wICRQYW5WICRQYW4xOyAjIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkKKyRHdWow
ICRHdWpWICRHdWoxOyAjIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKKyRPcmkwICRPcmlWICRP
cmkxOyAjIE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKKyRUZWwwICRUZWxWICRUZWwxOyAjIFRlbHVn
dSBWaXJhbWEgKGZvcndhcmQpCiskS2FuMCAkS2FuViAkS2FuMTsgIyBLYW5uYWRhIFZpcmFtYSAo
Zm9yd2FyZCkKKyRNYWwwICRNYWxWICRNYWwxOyAjIE1hbGF5YWxhbSBWaXJhbWEgKGZvcndhcmQp
CiskWldKICRFbW9qaUZvclNlcXM7ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2Vz
CiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsgIyBEb250IGJyZWFrIGJldHdl
ZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQg
Rml0enBhdHJpY2sgbW9kaWZpZXIKKyEhcmV2ZXJzZTsKKyRMRiAkQ1I7CisoJEwgfCAkViB8ICRM
ViB8ICRMVlQpICRMOworKCRWIHwgJFQpICgkTFYgfCAkVik7CiskVCAoJExWVCB8ICRUKTsKKwor
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEV4dGVuZCogJFJJICRSSSAvICRF
eHRlbmQqICRSSSAkUkk7CisgICAgJEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kICAgICAg
W14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExG
XTsKKworI2Vsc2UKKworICAgICRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworICAg
ICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRSSSAkUkkgLyAkUkkgJFJJ
OworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMSAkSGluViAkSGluMDsgIyBEZXZhbmFn
YXJpIFZpcmFtYSAoYmFja3dhcmQpCiskQmVuMSAkQmVuViAkQmVuMDsgIyBCZW5nYWxpIFZpcmFt
YSAoYmFja3dhcmQpCiskUGFuMSAkUGFuViAkUGFuMDsgIyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3
YXJkKQorJEd1ajEgJEd1alYgJEd1ajA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRP
cmkxICRPcmlWICRPcmkwOyAjIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCiskVGVsMSAkVGVs
ViAkVGVsMDsgIyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKKyRLYW4xICRLYW5WICRLYW4wOyAj
IEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKKyRNYWwxICRNYWxWICRNYWwwOyAjIE1hbGF5YWxh
bSBWaXJhbWEgKGJhY2t3YXJkKQorJEVtb2ppRm9yU2VxcyAkWldKOyAjIERvbnQgYnJlYWsgaW4g
ZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7
ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlh
dGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCisKKyNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKKworICAgICEhc2FmZV9yZXZlcnNlOworICAgICRSSSAkUkkrOworICAg
IFskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7CisgICAgISFzYWZlX2Zvcndh
cmQ7CisgICAgJFJJICRSSSs7CisgICAgJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1v
ZHNdKzsKKworI2Vsc2UKKworICAgIFskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1v
ZHM7CisgICAgJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsKKyAgICAhIXNh
ZmVfcmV2ZXJzZTsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJp
bmdzLnB5IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtp
bmdSdWxlU3RyaW5ncy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmIwNDc2OWZjYTM5OGFjYzk5Nzg2OTJiNzc3
MDY0MDVlZDA0OGE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQpAQCAtMCwwICsxLDExMCBA
QAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCitpbXBvcnQgc3lzCitpbXBvcnQgcmUKKworaGVhZGVyID0gIiIiLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
IiIiCisKKworZGVmIG1haW4oYXJndj1Ob25lKToKKyAgICBpZiBub3QgYXJndjoKKyAgICAgICAg
YXJndiA9IHN5cy5hcmd2CisgICAgZmlsZU5hbWVTdGFydEluZGV4ID0gMQorCisgICAgaW5jbHVk
ZURlZmluZXMgPSBGYWxzZQorICAgIGlmIGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4XSA9PSAiLWlu
Y2x1ZGVEZWZpbmVzIjoKKyAgICAgICAgaW5jbHVkZURlZmluZXMgPSBUcnVlCisgICAgICAgIGZp
bGVOYW1lU3RhcnRJbmRleCA9IGZpbGVOYW1lU3RhcnRJbmRleCArIDEKKworICAgIHN5bWJvbE5h
bWUgPSBhcmd2W2ZpbGVOYW1lU3RhcnRJbmRleF1bMF0ubG93ZXIoKSArIGFyZ3ZbZmlsZU5hbWVT
dGFydEluZGV4XVsxOl0KKyAgICBmaWxlTmFtZVN0YXJ0SW5kZXggPSBmaWxlTmFtZVN0YXJ0SW5k
ZXggKyAxCisgICAgZmlsZU5hbWVzID0gYXJndltmaWxlTmFtZVN0YXJ0SW5kZXg6XQorCisgICAg
cHJpbnQoaGVhZGVyKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCIvLyBETyBOT1QgRURJVCBU
SElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHRoZSBzY3JpcHQiKQor
ICAgIHByaW50KCIvLyBXVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5n
UnVsZVN0cmluZ3MucHkiKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCIjaW5jbHVkZSBcImNv
bmZpZy5oXCIiKQorICAgIHByaW50KCIjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+IikKKyAg
ICBwcmludCgiIikKKyAgICBpZiBpbmNsdWRlRGVmaW5lczoKKyAgICAgICAgcHJpbnQoIiNkZWZp
bmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9STShN
QUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkiKQorICAg
ICAgICBwcmludCgiI2RlZmluZSBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTICgoVV9JQ1VfVkVS
U0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpKSIp
CisgICAgICAgIHByaW50KCIiKQorICAgIHByaW50KCJuYW1lc3BhY2UgV1RGIHsiKQorICAgIHBy
aW50KCIiKQorICAgIHByaW50KCJjb25zdCBjaGFyKiAiICsgc3ltYm9sTmFtZSArICIgPSAiKQor
CisgICAgZm9yIGZpbGVOYW1lIGluIGZpbGVOYW1lczoKKyAgICAgICAgZm9yIGwgaW4gb3Blbihm
aWxlTmFtZSwgJ3InKToKKyAgICAgICAgICAgIGxpbmUgPSBsLnJzdHJpcCgpCisgICAgICAgICAg
ICBpZiByZS5tYXRjaCgiXlxzKiQiLCBsaW5lKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyAiKToKKyAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjIik6CisgICAgICAgICAgICAgICAgcHJp
bnQobGluZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWF0Y2ggPSByZS5t
YXRjaCgiXiguKik7KCAjIC4qKT8kIiwgbGluZSkKKyAgICAgICAgICAgICAgICBpZiBtYXRjaDoK
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gIlwiIiArIG1hdGNoLmdyb3VwKDEpLnJlcGxh
Y2UoIlxcIiwgIlxcXFwiKSArICI7XCIiCisgICAgICAgICAgICAgICAgICAgIGlmIG1hdGNoLmdy
b3VwKDIpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgLy8gIiArIG1hdGNo
Lmdyb3VwKDIpWzM6XQorICAgICAgICAgICAgICAgICAgICBwcmludChyZXN1bHQpCisgICAgICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZXhpdCgxKQorCisgICAgcHJpbnQo
IjsiKQorICAgIHByaW50KCJ9IikKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBz
eXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41MTg1ZDNjMWE2ZWUyMTc2MmY2NGNhZDI5ZjdhY2VmNGIyOGEzZWFhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0wLDAgKzEsMzcwIEBACisjIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCiskQUkgPSBbOkxpbmVCcmVhayA9IEFtYmlndW91czpdOworJEFM
ID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07CiskQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVh
a19BZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpd
OworJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsKKyRCMiA9IFs6TGluZUJy
ZWFrID0gQnJlYWtfQm90aDpdOworJENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFr
Ol07CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07CiskQ00gPSBbOkxp
bmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1Bh
cmVudGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdlX1JldHVybjpdOworJEVY
ID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9TVUJdOworJEdMID0gWzpMaW5l
QnJlYWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAk
SEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsKKworI2Vsc2UKKworICAgICRITCA9
IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNlbmRpZgorCiskSFkgPSBbOkxpbmVCcmVh
ayA9IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOworJEgzID0gWzpMaW5lQnJl
YWsgPSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAk
SURfQUREXSAtICRJRF9TVUJdOworJElOID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAt
ICRJTl9TVUJdOworJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NV
Ql07CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07CiskSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07
CiskSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVl
ZDpdOworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsKKyROUyA9IFtbW1s6TGluZUJy
ZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICROU19TVUJdOworJE5VID0gWzpM
aW5lQnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRp
b246XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07
CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07CiskUVUg
PSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFG
Rl07CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOworJFNHID0gWzpMaW5l
QnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGluZUJyZWFrID0gU3BhY2U6XTsKKyRTWSA9
IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOworJFdKID0gWzpMaW5lQnJlYWsgPSBXb3Jk
X0pvaW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3duOl07CiskWlcgPSBbOkxpbmVC
cmVhayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7CiskRW1vamlWYXIgPSBcdUZFMEY7CisK
KyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUy
NjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0
IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1c
VTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUw
MDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAw
MUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFG
NjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZC
Nl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2pp
Rm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFG
M0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0
MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUt
XFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxV
MDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAw
MDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAx
RjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1v
amkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZWxzZQorCisgICAgJEVtb2pp
Rm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0OEJdOworICAg
ICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFG
M0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFGM0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0
MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUt
XFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxV
MDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAw
MDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAx
RjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2VuZGlm
CisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAwMDFGM0ZGXTsKKyRkaWN0aW9uYXJ5ID0g
WzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsKKyRBTFBsdXMgPSBbJEFMICRBSSAkU0Eg
JFNHICRYWF07CiskQUxjbSA9ICRBTFBsdXMgJENNKjsKKyRCQWNtID0gJEJBICRDTSo7CiskQkJj
bSA9ICRCQiAkQ00qOworJEIyY20gPSAkQjIgJENNKjsKKyRDTGNtID0gJENMICRDTSo7CiskQ1Bj
bSA9ICRDUCAkQ00qOworJEVYY20gPSAkRVggJENNKjsKKyRHTGNtID0gJEdMICRDTSo7CiskSExj
bSA9ICRITCAkQ00qOworJEhZY20gPSAkSFkgJENNKjsKKyRIMmNtID0gJEgyICRDTSo7CiskSDNj
bSA9ICRIMyAkQ00qOworJElEY20gPSAkSUQgJENNKjsKKyRJTmNtID0gJElOICRDTSo7CiskSVNj
bSA9ICRJUyAkQ00qOworJEpMY20gPSAkSkwgJENNKjsKKyRKVmNtID0gJEpWICRDTSo7CiskSlRj
bSA9ICRKVCAkQ00qOworJE5TY20gPSAkTlMgJENNKjsKKyROVWNtID0gJE5VICRDTSo7CiskT1Bj
bSA9ICRPUCAkQ00qOworJFBPY20gPSAkUE8gJENNKjsKKyRQUmNtID0gJFBSICRDTSo7CiskUVVj
bSA9ICRRVSAkQ00qOworJFJJY20gPSAkUkkgJENNKjsKKyRTWWNtID0gJFNZICRDTSo7CiskV0pj
bSA9ICRXSiAkQ00qOworCishIWZvcndhcmQ7CiskQ0FOX0NNID0gW14kU1AgJEJLICRDUiAkTEYg
JE5MICRaVyAkQ01dOworJENBTlRfQ00gPSBbJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsK
KyRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAkTkwgJFpXICRTUF07CiskQUxfRk9MTE9X
X0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRXSiAkR0wgJE9QICRRVSAkQkEgJEhZICRO
UyAkSU4gJE5VICRBTFBsdXNdOworJEFMX0ZPTExPVyA9IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZP
TExPV19DTV07CiskTEI0QnJlYWtzID0gWyRCSyAkQ1IgJExGICROTF07CiskTEI0Tm9uQnJlYWtz
ID0gW14kQksgJENSICRMRiAkTkxdOworJExCOEJyZWFrcyA9IFskTEI0QnJlYWtzICRaV107Cisk
TEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAtIFskWlddXTsKKyRMQjE4Tm9uQnJlYWtz
ID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07CiskTEIxOEJyZWFrcyA9IFskTEI4QnJlYWtzICRT
UF07CiskTEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJyZWFrcyAtICRDQl07CiskQUxQbHVzICRD
TSs7CiskQkEgJENNKzsKKyRCQiAkQ00rOworJEIyICRDTSs7CiskQ0wgJENNKzsKKyRDUCAkQ00r
OworJEVYICRDTSs7CiskR0wgJENNKzsKKyRITCAkQ00rOworJEhZICRDTSs7CiskSDIgJENNKzsK
KyRIMyAkQ00rOworJElEICRDTSs7CiskSU4gJENNKzsKKyRJUyAkQ00rOworJEpMICRDTSs7Cisk
SlYgJENNKzsKKyRKVCAkQ00rOworJE5TICRDTSs7CiskTlUgJENNKzsKKyRPUCAkQ00rOworJFBP
ICRDTSs7CiskUFIgJENNKzsKKyRRVSAkQ00rOworJFJJICRDTSs7CiskU1kgJENNKzsKKyRXSiAk
Q00rOworJENSICRMRiB7MTAwfTsKKyRMQjROb25CcmVha3M/ICRMQjRCcmVha3MgezEwMH07Cisk
Q0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsKKyRDTSsgJExCNEJyZWFrcyB7MTAwfTsKKyRM
QjROb25CcmVha3MgWyRTUCAkWlddOworJENBTl9DTSAkQ00qIFskU1AgJFpXXTsKKyRDTSsgWyRT
UCAkWlddOworJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2pp
Rm9yU2VxczsKKyRDQU5fQ00gJENNKzsKKyRDTSs7CiskQ0FOX0NNICRDTSogJFdKY207CiskTEI4
Tm9uQnJlYWtzICRXSmNtOworJENNKyAkV0pjbTsKKyRXSmNtICRDQU5UX0NNOworJFdKY20gJENB
Tl9DTSAkQ00qOworJEdMY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTlRfQ007CitbWyRMQjhO
b25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENNKiAkR0xjbTsKKyRDTSsgR0xjbTsKKyRMQjhO
b25CcmVha3MgJENMOworJENBTl9DTSAkQ00qICRDTDsKKyRDTSsgJENMOworJExCOE5vbkJyZWFr
cyAkQ1A7CiskQ0FOX0NNICRDTSogJENQOworJENNKyAkQ1A7CiskTEI4Tm9uQnJlYWtzICRFWDsK
KyRDQU5fQ00gJENNKiAkRVg7CiskQ00rICRFWDsKKyRMQjhOb25CcmVha3MgJElTOworJENBTl9D
TSAkQ00qICRJUzsKKyRDTSsgJElTOworJExCOE5vbkJyZWFrcyAkU1k7CiskQ0FOX0NNICRDTSog
JFNZOworJENNKyAkU1k7CiskT1BjbSAkU1AqICRDQU5fQ00gJENNKjsKKyRPUGNtICRTUCogJENB
TlRfQ007CiskT1BjbSAkU1ArICRDTSsgJEFMX0ZPTExPVz87CiskUVVjbSAkU1AqICRPUGNtOwor
KCRDTGNtIHwgJENQY20pICRTUCogJE5TY207CiskQjJjbSAkU1AqICRCMmNtOworJExCMThOb25C
cmVha3MgJENNKiAkUVVjbTsKKyRDTSsgJFFVY207CiskUVVjbSAuPzsKKyRRVWNtICRMQjE4Tm9u
QnJlYWtzICRDTSo7CiskTEIyME5vbkJyZWFrcyAkQ00qICgkQkFjbSB8ICRIWWNtIHwgJE5TY20p
OyAKKyRCQmNtIFteJENCXTsKKyRCQmNtICRMQjIwTm9uQnJlYWtzICRDTSo7CiskSExjbSAoJEhZ
Y20gfCAkQkFjbSkgW14kQ0JdPzsKKyRTWWNtICRITGNtOworKCRBTGNtIHwgJEhMY20pICRJTmNt
OworJENNKyAkSU5jbTsKKyRFWGNtICRJTmNtOworJElEY20gJElOY207CiskSU5jbSAkSU5jbTsK
KyROVWNtICRJTmNtOworJElEY20gJFBPY207CiskQUxjbSAkTlVjbTsKKyRITGNtICROVWNtOwor
JENNKyAkTlVjbTsKKyROVWNtICRBTGNtOworJE5VY20gJEhMY207CiskUFJjbSAkSURjbTsKKyRQ
UmNtICgkQUxjbSB8ICRITGNtKTsKKyRQT2NtICgkQUxjbSB8ICRITGNtKTsKKygkUFJjbSB8ICRQ
T2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5VY20gfCAkU1ljbSB8ICRJU2NtKSogKCRD
TGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/OworJEpMY20gKCRKTGNtIHwgJEpWY20gfCAk
SDJjbSB8ICRIM2NtKTsKKygkSlZjbSB8ICRIMmNtKSAoJEpWY20gfCAkSlRjbSk7CisoJEpUY20g
fCAkSDNjbSkgJEpUY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkg
JElOY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJFBPY207Cisk
UFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSk7CisoJEFMY20gfCAk
SExjbSkgKCRBTGNtIHwgJEhMY20pOworJENNKyAoJEFMY20gfCAkSExjbSk7CiskSVNjbSAoJEFM
Y20gfCAkSExjbSk7CisoJEFMY20gfCAkSExjbSB8ICROVWNtKSAkT1BjbTsKKyRDTSsgJE9QY207
CiskQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsKKworI2lmIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVAorCisgICAgJFJJY20gJFJJY207CisKKyNlbmRpZgorCiskRW1vamlGb3JNb2RzICRF
bW9qaVZhcj8gJEVtb2ppTW9kczsKKworISFyZXZlcnNlOworJENNKyAkQUxQbHVzOworJENNKyAk
QkE7CiskQ00rICRCQjsKKyRDTSsgJEIyOworJENNKyAkQ0w7CiskQ00rICRDUDsKKyRDTSsgJEVY
OworJENNKyAkR0w7CiskQ00rICRITDsKKyRDTSsgJEhZOworJENNKyAkSDI7CiskQ00rICRIMzsK
KyRDTSsgJElEOworJENNKyAkSU47CiskQ00rICRJUzsKKyRDTSsgJEpMOworJENNKyAkSlY7Cisk
Q00rICRKVDsKKyRDTSsgJE5TOworJENNKyAkTlU7CiskQ00rICRPUDsKKyRDTSsgJFBPOworJENN
KyAkUFI7CiskQ00rICRRVTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAg
JENNKyAkUkk7CisKKyNlbmRpZgorCiskQ00rICRTWTsKKyRDTSsgJFdKOworJENNKzsKKyRBTF9G
T0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRaVyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQ
IHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFskQUwge2VvZn1dKSk7CitbJFBSXSAvICRD
TSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9XTsKKyRMQjRCcmVha3MgWyRMQjROb25C
cmVha3MtJENNXTsKKyRMQjRCcmVha3MgJENNKyAkQ0FOX0NNOworJExGICRDUjsKK1skU1AgJFpX
XSBbJExCNE5vbkJyZWFrcy0kQ01dOworWyRTUCAkWlddICRDTSsgJENBTl9DTTsKKyRFbW9qaUZv
clNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/ICRFbW9qaUZvclNlcXM7CiskQ00rICRD
QU5fQ007CiskQ00qICRXSiAkQ00qICRDQU5fQ007CiskQ00qICRXSiBbJExCOE5vbkJyZWFrcy0k
Q01dOworJENBTlRfQ00gJENNKiAkV0o7CiskQ00qICRDQU5fQ00gJENNKiAkV0o7CiskQ00qICRH
TCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRCQSAkSFldXTsKKyRDQU5UX0NNICRDTSog
JEdMOworJENNKiAkQ0FOX0NNICRDTSogJEdMOworJENMICRDTSsgJENBTl9DTTsKKyRDUCAkQ00r
ICRDQU5fQ007CiskRVggJENNKyAkQ0FOX0NNOworJElTICRDTSsgJENBTl9DTTsKKyRTWSAkQ00r
ICRDQU5fQ007CiskQ0wgWyRMQjhOb25CcmVha3MtJENNXTsKKyRDUCBbJExCOE5vbkJyZWFrcy0k
Q01dOworJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskSVMgWyRMQjhOb25CcmVha3MtJENNXTsK
KyRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOworWyRDTCAkQ1AgJEVYICRJUyAkU1ldICRDTSsgJFNQ
KyAkQ00qICRPUDsgCiskQ00qICRDQU5fQ00gJFNQKiAkQ00qICRPUDsKKyRDQU5UX0NNICRTUCog
JENNKiAkT1A7CiskQUxfRk9MTE9XPyAkQ00rICRTUCAkU1AqICRDTSogJE9QOworJEFMX0ZPTExP
V19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRDTSogJEFMX0ZPTExPV19DTSAkQ00rICRTUCsg
JENNKiAkT1A7CiskU1kgJENNICRTUCsgJE9QOworJENNKiAkT1AgJFNQKiAkQ00qICRRVTsKKyRD
TSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsKKyRDTSogJEIyICRTUCogJENNKiAkQjI7Cisk
Q00qICRRVSAkQ00qICRDQU5fQ007CiskQ00qICRRVSAkTEIxOE5vbkJyZWFrczsKKyRDTSogJENB
Tl9DTSAkQ00qICRRVTsKKyRDQU5UX0NNICRDTSogJFFVOworJENNKiAoJEJBIHwgJEhZIHwgJE5T
KSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOworJENNKiBbJExCMjBOb25CcmVha3MtJENNXSAk
Q00qICRCQjsKK1teJENCXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICgkSFkgfCAkQkEpICRDTSog
JEhMOworJENNKiAkSEwgJENNKiAkU1k7CiskQ00qICRJTiAkQ00qICgkQUxQbHVzIHwgJEhMKTsK
KyRDTSogJElOICRDTSogJEVYOworJENNKiAkSU4gJENNKiAkSUQ7CiskQ00qICRJTiAkQ00qICRJ
TjsKKyRDTSogJElOICRDTSogJE5VOworJENNKiAkUE8gJENNKiAkSUQ7CiskQ00qICROVSAkQ00q
ICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJE5VOworJENNKiAk
SUQgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQUjsKKyRDTSogKCRBTFBs
dXMgfCAkSEwpICRDTSogJFBPOworKCRDTSogKCRQUiB8ICRQTykpPyAoJENNKiAoJENMIHwgJENQ
KSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENNKiAkTlUgKCRDTSogKCRPUCB8ICRIWSkp
PyAoJENNKiAoJFBSIHwgJFBPKSk/OworJENNKiAoJEgzIHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00q
ICRKTDsKKyRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgyIHwgJEpWKTsKKyRDTSogJEpUICRDTSog
KCRIMyB8ICRKVCk7CiskQ00qICRJTiAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwp
OworJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsKKyRDTSogKCRI
MyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhM
KSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJElTOwor
JENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSk7CiskQ00qICgkQUxQbHVzIHwgJEhM
IHwgJE5VKSAkQ00qICRDUDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAg
JENNKiAkUkkgJENNKiAkUkk7CisKKyNlbmRpZgorCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVt
b2ppRm9yTW9kczsKKworISFzYWZlX2ZvcndhcmQ7CitbJENNICRPUCAkUVUgJENMICRDUCAkQjIg
JFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAk
UFIgJEhZICRCQSAkZGljdGlvbmFyeV07CiskZGljdGlvbmFyeSAkZGljdGlvbmFyeTsKKyAgICAK
KyEhc2FmZV9yZXZlcnNlOworJENNKyBbXiRDTSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07Cisk
Q00rICRTUCAvIC47CiskU1ArICRDTSogJE9QOworJFNQKyAkQ00qICRRVTsKKyRTUCsgJENNKiAo
JENMIHwgJENQKTsKKyRTUCsgJENNKiAkQjI7CiskQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOwor
KCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsKKygkQ0wgfCAkQ1ApICRDTSogKCROVSB8ICRJ
UyB8ICRTWSk7CiskZGljdGlvbmFyeSAkZGljdGlvbmFyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xv
Z3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jMjg4MzU1NjMxZTQzNzkyZDNmM2M5MjMzMzcyNzY2YWNkZWMx
YjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0CkBAIC0wLDAgKzEsMzYgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyEhY2hhaW47CishIUxCQ01Ob0NoYWluOwor
ISFsb29rQWhlYWRIYXJkQnJlYWs7CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisK
KyAgICAkQ0ogPSBbOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOl07CisK
KyNlbHNlCisKKyAgICAkQ0ogPSBbXHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYz
XHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhFXHUzMDk1XHUzMDk2XHUzMEExXHUzMEEzXHUzMEE1XHUz
MEE3XHUzMEE5XHUzMEMzXHUzMEUzXHUzMEU1XHUzMEU3XHUzMEVFXHUzMEY1XHUzMEY2XHUzMEZD
XHUzMUYwXHUzMUYxXHUzMUYyXHUzMUYzXHUzMUY0XHUzMUY1XHUzMUY2XHUzMUY3XHUzMUY4XHUz
MUY5XHUzMUZBXHUzMUZCXHUzMUZDXHUzMUZEXHUzMUZFXHUzMUZGXHVGRjY3XHVGRjY4XHVGRjY5
XHVGRjZBXHVGRjZCXHVGRjZDXHVGRjZEXHVGRjZFXHVGRjZGXHVGRjcwXTsKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzBiY2U1ZWU5ZTY3OTY5YmM4
NmIwODc1MDY2MTU0ZjdmYzM5MzE2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApAQCAtMCww
ICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VC
ID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSURfU1VC
ID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAxQ1x1MzBBMF07CiskUE9fU1VC
ID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOwor
JE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xZTAzZTUxMWViOTg0ZmNhYTY0ODU0NGFjY2VlZjZlNzgxNTg4MDFmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NV
QiA9IFtcdTAwMjFcdTAwM0ZcdUZGMDFcdUZGMUZdOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9
IFtcdTIwMjVcdTIwMjZdOworJElTX1NVQiA9IFtcdTAwM0FcdTAwM0JdOworJE5TX1NVQiA9IFtc
dTIwM0NcdTIwNDdcdTIwNDhcdTIwNDlcdTMwMDVcdTMwMUNcdTMwM0JcdTMwOURcdTMwOUVcdTMw
QTBcdTMwRkJcdTMwRkRcdTMwRkVcdUZGMUFcdUZGMUJcdUZGNjVdOworJFBPX1NVQiA9IFtcdTAw
MjVcdTAwQTJcdTAwQjBcdTIwMzBcdTIwMzJcdTIwMzNcdTIxMDNcdUZGMDVcdUZGRTBdOworJFBS
X1NVQiA9IFtcdTAwMjRcdTAwQTNcdTAwQTVcdTIwQUNcdTIxMTZcdUZGMDRcdUZGRTFcdUZGRTVd
OworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VC
ICRQT19TVUIgJFBSX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pL
LnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmOGU4ZTFiNWI2NWJjNjM0M2I1MDEy
ZDhmOTlkODQ0YTQwNGFkZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApAQCAt
MCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFf
U1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAy
NVx1MjAyNl07CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1
MzA5RVx1MzBGRFx1MzBGRV07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQURE
ID0gWyRDSiAkSU5fU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25D
SksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2ZWFiNjk0OTg2ZWY4MmQ5YWI5NWZiMTli
NDM1MmI2NjJkMjYzZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKQEAgLTAsMCArMSwz
MyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcn
OworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9
ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FE
RCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0IGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYmNlNWVlOWU2Nzk2OWJjODZiMDg3NTA2NjE1NGY3ZmMz
OTMxNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKQEAgLTAsMCArMSwzMyBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBc
dTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElT
X1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBS
X1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAn
JzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jNDk0NTgyY2NlOWZkNGQwN2Q5ODdlMzk5ZWM5NzUyMjczYjRkYmU3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxOb25DSksudHh0CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJ
RF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsK
KyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKXTsKKyROU19BREQg
PSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40NmVhYjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJiNjYyZDI2M2RiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3RDSksudHh0CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIg
PSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19T
VUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40NmVhYjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJiNjYyZDI2M2RiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3ROb25DSksudHh0CkBAIC0wLDAgKzEsMzMgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
IyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9T
VUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQ
T19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENK
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3Bw
IGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKaW5kZXggMDVhNTE5
NTYwNWUxZDhmYmY3NjIzMTM5N2Q4OWMwODE1MzIwOTMyNy4uMDk4ZmI3ZmI1OTY3MDk4MTNmYjIx
NzllMTBiZTkzZjNhNDcyYTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0
QnJlYWtJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVy
YXRvci5jcHAKQEAgLTMxLDkgKzMxLDYgQEAKICNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLS8vIEZJWE1FOiBUaGlzIG5lZWRz
IGEgYmV0dGVyIG5hbWUKLSNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9S
TShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwKSkKLQogbmFtZXNwYWNlIFdURiB7CiAKIC8vIEl0ZXJhdG9yIGluaXRpYWxp
emF0aW9uCkBAIC02MSw2ICs1OCwxMiBAQCBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIGluaXRp
YWxpemVJdGVyYXRvcldpdGhSdWxlcyhjb25zdCBjaGFyKiBicmVha1J1bGVzKQogCiAjZW5kaWYK
IAorI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCitUZXh0QnJlYWtJdGVyYXRv
ciogY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCkKK3sKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKyNlbmRpZgogCiAvLyBJdGVyYXRvciB0ZXh0IHNldHRpbmcKIApAQCAt
MTY0LDEzNSArMTY3LDIwIEBAIFRleHRCcmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0
b3IoU3RyaW5nVmlldyBzdHJpbmcpCiAgICAgcmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqc3Rh
dGljU2VudGVuY2VCcmVha0l0ZXJhdG9yLCBzdHJpbmcpOwogfQogCisjaWYgIVBMQVRGT1JNKElP
UykKK3N0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
cldpdGhGYWxsYmFjaygpCit7CisgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0
b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQpKQorICAgICAgICBy
ZXR1cm4gaXRlcmF0b3I7CisgICAgcmV0dXJuIGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhj
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMpOworfQorI2VuZGlmCisKIFRleHRCcmVha0l0ZXJh
dG9yKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogewogI2lmICFQ
TEFURk9STShJT1MpCi0gICAgLy8gVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXIt
YnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3Ci0gICAgLy8gPGh0dHA6Ly9zb3VyY2UuaWN1
LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEv
YnJraXRyLz4uCi0gICAgLy8gVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFs
IG9uZXMgYXJlIGxpc3RlZCBiZWxvdzoKLSAgICAvLyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5
ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOwotICAg
IC8vICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0
ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOwotICAgIC8vICogQWRkZWQgcnVsZXMg
dGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJ
bmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7Ci0gICAgLy8gKiBB
ZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFu
ZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgotICAgIC8vICogQWRkZWQgcnVs
ZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgotICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBrUnVsZXMgPQotICAgICAgICAiJENSICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJl
YWsgPSBDUn1dOyIKLSAgICAgICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gTEZ9XTsiCi0gICAgICAgICIkQ29udHJvbCA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9C
cmVhayA9IENvbnRyb2x9XTsiCi0gICAgICAgICIkVm9pY2VNYXJrcyA9IFtcXHVGRjlFXFx1RkY5
Rl07IiAvLyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcwotICAgICAg
ICAiJEV4dGVuZCAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2lj
ZU1hcmtzIC0gW1xcdTBFMzAgXFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVCMl1dOyIKLSAg
ICAgICAgIiRTcGFjaW5nTWFyayA9IFtbXFxwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1h
cmt9XSAtICRFeHRlbmRdOyIKLSAgICAgICAgIiRMICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gTH1dOyIKLSAgICAgICAgIiRWICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gVn1dOyIKLSAgICAgICAgIiRUICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gVH1dOyIKLSAgICAgICAgIiRMViAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gTFZ9XTsiCi0gICAgICAgICIkTFZUICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IExWVH1dOyIKLSAgICAgICAgIiRIaW4wICAgID0gW1xcdTA5MDUtXFx1MDkz
OV07IiAvLyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEhpblYgICAgPSBc
XHUwOTREOyIgLy8gRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQotICAgICAgICAiJEhpbjEgICAgPSBb
XFx1MDkxNS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQotICAgICAg
ICAiJEJlbjAgICAgPSBbXFx1MDk4NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0dGVyIEEsLi4u
LEhhCi0gICAgICAgICIkQmVuViAgICA9IFxcdTA5Q0Q7IiAvLyBCZW5nYWxpIFNpZ24gVmlyYW1h
Ci0gICAgICAgICIkQmVuMSAgICA9IFtcXHUwOTk1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0
ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkUGFuMCAgICA9IFtcXHUwQTA1LVxcdTBBMzldOyIgLy8g
R3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUGFuViAgICA9IFxcdTBBNEQ7IiAv
LyBHdXJtdWtoaSBTaWduIFZpcmFtYQotICAgICAgICAiJFBhbjEgICAgPSBbXFx1MEExNS1cXHUw
QTM5XTsiIC8vIEd1cm11a2hpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRHdWowICAgID0g
W1xcdTBBODUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAg
IiRHdWpWICAgID0gXFx1MEFDRDsiIC8vIEd1amFyYXRpIFNpZ24gVmlyYW1hCi0gICAgICAgICIk
R3VqMSAgICA9IFtcXHUwQTk1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEthLC4uLixI
YQotICAgICAgICAiJE9yaTAgICAgPSBbXFx1MEIwNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRl
ciBBLC4uLixIYQotICAgICAgICAiJE9yaVYgICAgPSBcXHUwQjREOyIgLy8gT3JpeWEgU2lnbiBW
aXJhbWEKLSAgICAgICAgIiRPcmkxICAgID0gW1xcdTBCMTUtXFx1MEIzOV07IiAvLyBPcml5YSBM
ZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkVGVsMCAgICA9IFtcXHUwQzA1LVxcdTBDMzldOyIg
Ly8gVGVsdWd1IExldHRlciBBLC4uLixIYQotICAgICAgICAiJFRlbFYgICAgPSBcXHUwQzREOyIg
Ly8gVGVsdWd1IFNpZ24gVmlyYW1hCi0gICAgICAgICIkVGVsMSAgICA9IFtcXHUwQzE0LVxcdTBD
MzldOyIgLy8gVGVsdWd1IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRLYW4wICAgID0gW1xc
dTBDODUtXFx1MENCOV07IiAvLyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEth
blYgICAgPSBcXHUwQ0NEOyIgLy8gS2FubmFkYSBTaWduIFZpcmFtYQotICAgICAgICAiJEthbjEg
ICAgPSBbXFx1MEM5NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAg
ICAgICIkTWFsMCAgICA9IFtcXHUwRDA1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBB
LC4uLixIYQotICAgICAgICAiJE1hbFYgICAgPSBcXHUwRDREOyIgLy8gTWFsYXlhbGFtIFNpZ24g
VmlyYW1hCi0gICAgICAgICIkTWFsMSAgICA9IFtcXHUwRDE1LVxcdTBEMzldOyIgLy8gTWFsYXlh
bGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAiJFJJICAgICAgPSBbXFxVMDAwMUYxRTYtXFxV
MDAwMUYxRkZdOyIgLy8gRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycwotICAgICAgICAiJFpXSiAg
ICAgPSBcXHUyMDBEOyIgLy8gWmVybyB3aWR0aCBqb2luZXIKLSAgICAgICAgIiRFbW9qaVZhciA9
IFtcXHVGRTBGXTsiIC8vIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgotI2lmIEFERElU
SU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxc
dTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0
IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFG
NDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAw
MDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxc
VTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1
LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFG
NkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcdTI2OTUtXFx1MjY5NiBcXHUyNzA4IFxcVTAw
MDFGMzNFIFxcVTAwMDFGMzczIFxcVTAwMDFGMzkzIFxcVTAwMDFGM0E0IFxcVTAwMDFGM0E4IFxc
VTAwMDFGM0VCIFxcVTAwMDFGM0VEIFxcVTAwMDFGNEJCLVxcVTAwMDFGNEJDIFxcVTAwMDFGNTI3
IFxcVTAwMDFGNTJDIFxcVTAwMDFGNjgwIFxcVTAwMDFGNjkyIFxcVTAwMDFGOTI2IFxcVTAwMDFG
OTM3LVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXTsiIC8vIEVtb2ppIHRoYXQg
cGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtc
XHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxc
VTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQz
IFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFG
NDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAw
MDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxc
VTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRC
LVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFG
NkMwIFxcVTAwMDFGOTE4IFxcVTAwMDFGM0MyIFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NDIFxcVTAw
MDFGNTc0IFxcVTAwMDFGNTdBIFxcVTAwMDFGNkNDIFxcVTAwMDFGOTE5LVxcVTAwMDFGOTFFIFxc
VTAwMDFGOTI2IFxcVTAwMDFGOTMwIFxcVTAwMDFGOTMzLVxcVTAwMDFGOTM5IFxcVTAwMDFGOTND
LVxcVTAwMDFGOTNFXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJz
Ci0jZWxzZQotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxc
VTAwMDFGNDY5IFxcVTAwMDFGNDhCXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldK
IHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1
MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUw
MDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBc
XFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3
QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAx
RjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUw
MDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0g
OyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAg
ICAgICIkRW1vamlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiIC8vIEZpdHpwYXRy
aWNrIG1vZGlmaWVycwotICAgICAgICAiISFjaGFpbjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCi0gICAgICAgICIhIVJJTm9DaGFpbjsiCi0jZW5kaWYKLSAgICAgICAgIiEhZm9yd2Fy
ZDsiCi0gICAgICAgICIkQ1IgJExGOyIKLSAgICAgICAgIiRMICgkTCB8ICRWIHwgJExWIHwgJExW
VCk7IgotICAgICAgICAiKCRMViB8ICRWKSAoJFYgfCAkVCk7IgotICAgICAgICAiKCRMVlQgfCAk
VCkgJFQ7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJFJJICRSSSAk
RXh0ZW5kKiAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqOyIKLSAgICAgICAgIlte
JENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZd
ICRTcGFjaW5nTWFyazsiCi0jZWxzZQotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0
ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSAgICAg
ICAgIiRSSSAkUkkgLyAkUkk7IgotICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAg
IiRIaW4wICRIaW5WICRIaW4xOyIgLy8gRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCi0gICAg
ICAgICIkQmVuMCAkQmVuViAkQmVuMTsiIC8vIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQotICAg
ICAgICAiJFBhbjAgJFBhblYgJFBhbjE7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCi0g
ICAgICAgICIkR3VqMCAkR3VqViAkR3VqMTsiIC8vIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkK
LSAgICAgICAgIiRPcmkwICRPcmlWICRPcmkxOyIgLy8gT3JpeWEgVmlyYW1hIChmb3J3YXJkKQot
ICAgICAgICAiJFRlbDAgJFRlbFYgJFRlbDE7IiAvLyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQot
ICAgICAgICAiJEthbjAgJEthblYgJEthbjE7IiAvLyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkK
LSAgICAgICAgIiRNYWwwICRNYWxWICRNYWwxOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2Fy
ZCkKLSAgICAgICAgIiRaV0ogJEVtb2ppRm9yU2VxczsiIC8vIERvbid0IGJyZWFrIGluIGVtb2pp
IFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlN
b2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0
aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotICAgICAgICAi
ISFyZXZlcnNlOyIKLSAgICAgICAgIiRMRiAkQ1I7IgotICAgICAgICAiKCRMIHwgJFYgfCAkTFYg
fCAkTFZUKSAkTDsiCi0gICAgICAgICIoJFYgfCAkVCkgKCRMViB8ICRWKTsiCi0gICAgICAgICIk
VCAoJExWVCB8ICRUKTsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIk
RXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kKiAk
UkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAg
ICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSNlbHNlCi0gICAgICAg
ICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01h
cmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJICRSSTsiCi0g
ICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAiJEhpbjEgJEhpblYgJEhpbjA7IiAv
LyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkQmVuMSAkQmVuViAkQmVu
MDsiIC8vIEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRQYW4xICRQYW5WICRQ
YW4wOyIgLy8gR3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRHdWoxICRHdWpW
ICRHdWowOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRPcmkxICRP
cmlWICRPcmkwOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRUZWwx
ICRUZWxWICRUZWwwOyIgLy8gVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkS2Fu
MSAkS2FuViAkS2FuMDsiIC8vIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRN
YWwxICRNYWxWICRNYWwwOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAg
ICIkRW1vamlGb3JTZXFzICRaV0o7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVu
Y2VzCi0gICAgICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiIC8vIERv
bid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9u
IHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKLSNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiRSSSAkUkkrOyIK
LSAgICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAg
ICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiJEVtb2pp
Rm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiOworICAgIHN0YXRpYyBUZXh0QnJlYWtJ
dGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGNyZWF0ZUN1cnNvck1vdmVt
ZW50SXRlcmF0b3JXaXRoRmFsbGJhY2soKTsKICNlbHNlCi0gICAgICAgICJbJEVtb2ppVmFyICRF
bW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9q
aVZhciAkRW1vamlNb2RzXSs7IgotICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAi
ISFzYWZlX2ZvcndhcmQ7IjsKLSNlbmRpZgotICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciog
c3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxl
cyhrUnVsZXMpOwotI2Vsc2UgLy8gUExBVEZPUk0oSU9TKQogICAgIC8vIFVzZSB0aGUgc3BlY2lh
bCBUaGFpIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBmb3IgYWxsIGxvY2FsZXMKICAgICBzdGF0
aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0
aWFsaXplSXRlcmF0b3IoVUJSS19DSEFSQUNURVIsICJ0aCIpOwogI2VuZGlmIC8vICFQTEFURk9S
TShJT1MpCkBAIC0zMTksNDQyICsyMDcsMjAgQEAgdm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0
b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQogICAgIExpbmVCcmVha0l0ZXJhdG9yUG9v
bDo6c2hhcmVkUG9vbCgpLnB1dChpdGVyYXRvcik7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiB1
YXgxNFByb2xvZ3VlID0KLSAgICAiISFjaGFpbjsiCi0gICAgIiEhTEJDTU5vQ2hhaW47IgotICAg
ICIhIWxvb2tBaGVhZEhhcmRCcmVhazsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3Np
Z25tZW50c0JlZm9yZSA9Ci0gICAgLy8gZXhwbGljaXRseSBlbnVtZXJhdGUgJENKIHNpbmNlIElD
VSB2ZXJzaW9ucyBwcmlvciB0byA0OSBkb24ndCBzdXBwb3J0IDpMaW5lQnJlYWs9Q29uZGl0aW9u
YWxfSmFwYW5lc2VfU3RhcnRlcjoKLSAgICAiJENKID0gWyIKLSNpZiAoVV9JQ1VfVkVSU0lPTl9N
QUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpCi0gICAgIjpM
aW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoiCi0jZWxzZQotICAgICJcXHUz
MDQxXFx1MzA0M1xcdTMwNDVcXHUzMDQ3XFx1MzA0OVxcdTMwNjNcXHUzMDgzXFx1MzA4NVxcdTMw
ODdcXHUzMDhFXFx1MzA5NVxcdTMwOTZcXHUzMEExXFx1MzBBM1xcdTMwQTVcXHUzMEE3IgotICAg
ICJcXHUzMEE5XFx1MzBDM1xcdTMwRTNcXHUzMEU1XFx1MzBFN1xcdTMwRUVcXHUzMEY1XFx1MzBG
NlxcdTMwRkMiCi0gICAgIlxcdTMxRjBcXHUzMUYxXFx1MzFGMlxcdTMxRjNcXHUzMUY0XFx1MzFG
NVxcdTMxRjZcXHUzMUY3XFx1MzFGOFxcdTMxRjlcXHUzMUZBXFx1MzFGQlxcdTMxRkNcXHUzMUZE
XFx1MzFGRVxcdTMxRkYiCi0gICAgIlxcdUZGNjdcXHVGRjY4XFx1RkY2OVxcdUZGNkFcXHVGRjZC
XFx1RkY2Q1xcdUZGNkRcXHVGRjZFXFx1RkY2RlxcdUZGNzAiCi0jZW5kaWYKLSAgICAiXTsiOwot
Ci1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLID0KLSAg
ICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAgICIkRVhfU1VCID0gW1xcdTAwMjFc
XHUwMDNGXFx1RkYwMVxcdUZGMUZdOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NV
QiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAgICIkSVNfU1VCID0gW1xcdTAwM0FcXHUwMDNCXTsi
Ci0gICAgIiROU19TVUIgPSBbXFx1MjAzQ1xcdTIwNDdcXHUyMDQ4XFx1MjA0OVxcdTMwMDVcXHUz
MDFDXFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBBMFxcdTMwRkJcXHUzMEZEXFx1MzBGRVxcdUZG
MUFcXHVGRjFCXFx1RkY2NV07IgotICAgICIkUE9fU1VCID0gW1xcdTAwMjVcXHUwMEEyXFx1MDBC
MFxcdTIwMzBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHVGRjA1XFx1RkZFMF07IgotICAgICIkUFJf
U1VCID0gW1xcdTAwMjRcXHUwMEEzXFx1MDBBNVxcdTIwQUNcXHUyMTE2XFx1RkYwNFxcdUZGRTFc
XHVGRkU1XTsiCi0gICAgIiRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVYX1NVQiAkSU5fU1VCICRJ
U19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0K
LXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSksgPQot
ICAgICIkQkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0g
Jyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSAn
JzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAwNVxcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwRkRc
XHUzMEZFXTsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAg
IiRJRF9BREQgPSBbJENKICRJTl9TVUIgJE5TX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsK
LQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksgPQot
ICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0g
ICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAn
JzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAxQ1xcdTMwQTBdOyIKLSAgICAiJFBPX1NVQiA9ICcn
OyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNf
U1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRB
c3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAg
IiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsi
Ci0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIg
PSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKXTsiCi0gICAg
IiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1
c3RvbVN0cmljdENKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsi
Ci0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIg
PSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQ
Ul9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSAnJzsiCi0gICAgIiROU19BREQgPSBbJENKXTsi
OwotCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSksgICAgICB1YXgx
NEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0
b21EZWZhdWx0Q0pLICAgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pLCi0jZGVm
aW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLICAgICB1YXgxNEFzc2lnbm1l
bnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLCi0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1l
bnRzQWZ0ZXIgPQotICAgICIkQUkgPSBbOkxpbmVCcmVhayA9IEFtYmlndW91czpdOyIKLSAgICAi
JEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07IgotICAgICIkQkEgPSBbWzpMaW5lQnJl
YWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07IgotICAgICIkQkIgPSBbOkxpbmVCcmVhayA9
IEJyZWFrX0JlZm9yZTpdOyIKLSAgICAiJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJl
YWs6XTsiCi0gICAgIiRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOyIKLSAgICAiJENC
ID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07IgotICAgICIkQ0wgPSBbOkxpbmVC
cmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07IgotICAgICIkQ00gPSBbOkxpbmVCcmVhayA9IENv
bWJpbmluZ19NYXJrOl07IgotICAgICIkQ1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhl
c2lzOl07IgotICAgICIkQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdlX1JldHVybjpdOyIKLSAg
ICAiJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9TVUJdOyIKLSAgICAi
JEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07IgotI2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05V
TSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAgICAiJEhMID0gWzpM
aW5lQnJlYWsgPSBIZWJyZXdfTGV0dGVyOl07IgotI2Vsc2UKLSAgICAiJEhMID0gW1s6SGVicmV3
Ol0gJiBbOkxldHRlcjpdXTsiCi0jZW5kaWYKLSAgICAiJEhZID0gWzpMaW5lQnJlYWsgPSBIeXBo
ZW46XTsiCi0gICAgIiRIMiA9IFs6TGluZUJyZWFrID0gSDI6XTsiCi0gICAgIiRIMyA9IFs6TGlu
ZUJyZWFrID0gSDM6XTsiCi0gICAgIiRJRCA9IFtbW1s6TGluZUJyZWFrID0gSWRlb2dyYXBoaWM6
XSAtICRDSl0gJElEX0FERF0gLSAkSURfU1VCXTsiCi0gICAgIiRJTiA9IFtbOkxpbmVCcmVhayA9
IEluc2VwYXJhYmxlOl0gLSAkSU5fU1VCXTsiCi0gICAgIiRJUyA9IFtbOkxpbmVCcmVhayA9IElu
Zml4X051bWVyaWM6XSAtICRJU19TVUJdOyIKLSAgICAiJEpMID0gWzpMaW5lQnJlYWsgPSBKTDpd
OyIKLSAgICAiJEpWID0gWzpMaW5lQnJlYWsgPSBKVjpdOyIKLSAgICAiJEpUID0gWzpMaW5lQnJl
YWsgPSBKVDpdOyIKLSAgICAiJExGID0gWzpMaW5lQnJlYWsgPSBMaW5lX0ZlZWQ6XTsiCi0gICAg
IiROTCA9IFs6TGluZUJyZWFrID0gTmV4dF9MaW5lOl07IgotICAgICIkTlMgPSBbW1tbOkxpbmVC
cmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRDSl0gJE5TX0FERF0gLSAkTlNfU1VCXTsiCi0gICAgIiRO
VSA9IFs6TGluZUJyZWFrID0gTnVtZXJpYzpdOyIKLSAgICAiJE9QID0gWzpMaW5lQnJlYWsgPSBP
cGVuX1B1bmN0dWF0aW9uOl07IgotICAgICIkUE8gPSBbWzpMaW5lQnJlYWsgPSBQb3N0Zml4X051
bWVyaWM6XSAtICRQT19TVUJdOyIKLSAgICAiJFBSID0gW1s6TGluZUJyZWFrID0gUHJlZml4X051
bWVyaWM6XSAtICRQUl9TVUJdOyIKLSAgICAiJFFVID0gWzpMaW5lQnJlYWsgPSBRdW90YXRpb246
XTsiCi0gICAgIiRSSSA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IgotICAgICIkU0EgPSBb
OkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJFNHID0gWzpMaW5lQnJlYWsg
PSBTdXJyb2dhdGU6XTsiCi0gICAgIiRTUCA9IFs6TGluZUJyZWFrID0gU3BhY2U6XTsiCi0gICAg
IiRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOyIKLSAgICAiJFdKID0gWzpMaW5l
QnJlYWsgPSBXb3JkX0pvaW5lcjpdOyIKLSAgICAiJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3du
Ol07IgotICAgICIkWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsiCi0gICAgIiRaV0ogPSBc
XHUyMDBEOyIKLSAgICAiJEVtb2ppVmFyID0gXFx1RkUwRjsiCi0jaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2Rjkg
XFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1c
XFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2
OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAx
RjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUw
MDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBc
XFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZC
NC1cXFUwMDAxRjZCNiBcXHUyNjk1LVxcdTI2OTYgXFx1MjcwOCBcXFUwMDAxRjMzRSBcXFUwMDAx
RjM3MyBcXFUwMDAxRjM5MyBcXFUwMDAxRjNBNCBcXFUwMDAxRjNBOCBcXFUwMDAxRjNFQiBcXFUw
MDAxRjNFRCBcXFUwMDAxRjRCQi1cXFUwMDAxRjRCQyBcXFUwMDAxRjUyNyBcXFUwMDAxRjUyQyBc
XFUwMDAxRjY4MCBcXFUwMDAxRjY5MiBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzNy1cXFUwMDAxRjkz
OSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV07IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGlu
IFpXSiBzZXF1ZW5jZXMKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1
MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFG
M0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAw
MDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxc
VTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3
IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFG
NTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAw
MDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4IFxc
VTAwMDFGM0MyIFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NDIFxcVTAwMDFGNTc0IFxcVTAwMDFGNTdB
IFxcVTAwMDFGNkNDIFxcVTAwMDFGOTE5LVxcVTAwMDFGOTFFIFxcVTAwMDFGOTI2IFxcVTAwMDFG
OTMwIFxcVTAwMDFGOTMzLVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXSA7IiAv
LyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZWxzZQotICAgICIkRW1v
amlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJd
OyIKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAx
RjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUw
MDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1c
XFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4
MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAx
RjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUw
MDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1vamkg
dGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAgIiRFbW9qaU1vZHMg
PSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIKLSAgICAiJGRpY3Rpb25hcnkgPSBbOkxpbmVC
cmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJEFMUGx1cyA9IFskQUwgJEFJICRTQSAk
U0cgJFhYXTsiCi0gICAgIiRBTGNtID0gJEFMUGx1cyAkQ00qOyIKLSAgICAiJEJBY20gPSAkQkEg
JENNKjsiCi0gICAgIiRCQmNtID0gJEJCICRDTSo7IgotICAgICIkQjJjbSA9ICRCMiAkQ00qOyIK
LSAgICAiJENMY20gPSAkQ0wgJENNKjsiCi0gICAgIiRDUGNtID0gJENQICRDTSo7IgotICAgICIk
RVhjbSA9ICRFWCAkQ00qOyIKLSAgICAiJEdMY20gPSAkR0wgJENNKjsiCi0gICAgIiRITGNtID0g
JEhMICRDTSo7IgotICAgICIkSFljbSA9ICRIWSAkQ00qOyIKLSAgICAiJEgyY20gPSAkSDIgJENN
KjsiCi0gICAgIiRIM2NtID0gJEgzICRDTSo7IgotICAgICIkSURjbSA9ICRJRCAkQ00qOyIKLSAg
ICAiJElOY20gPSAkSU4gJENNKjsiCi0gICAgIiRJU2NtID0gJElTICRDTSo7IgotICAgICIkSkxj
bSA9ICRKTCAkQ00qOyIKLSAgICAiJEpWY20gPSAkSlYgJENNKjsiCi0gICAgIiRKVGNtID0gJEpU
ICRDTSo7IgotICAgICIkTlNjbSA9ICROUyAkQ00qOyIKLSAgICAiJE5VY20gPSAkTlUgJENNKjsi
Ci0gICAgIiRPUGNtID0gJE9QICRDTSo7IgotICAgICIkUE9jbSA9ICRQTyAkQ00qOyIKLSAgICAi
JFBSY20gPSAkUFIgJENNKjsiCi0gICAgIiRRVWNtID0gJFFVICRDTSo7IgotICAgICIkUkljbSA9
ICRSSSAkQ00qOyIKLSAgICAiJFNZY20gPSAkU1kgJENNKjsiCi0gICAgIiRXSmNtID0gJFdKICRD
TSo7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0Rm9yd2FyZCA9Ci0gICAgIiEhZm9yd2Fy
ZDsiCi0gICAgIiRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07IgotICAg
ICIkQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOyIKLSAgICAiJEFMX0ZP
TExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRBTF9GT0xMT1df
Q00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRHTCAkT1AgJFFVICRCQSAkSFkgJE5T
ICRJTiAkTlUgJEFMUGx1c107IgotICAgICIkQUxfRk9MTE9XID0gWyRBTF9GT0xMT1dfTk9DTSAk
QUxfRk9MTE9XX0NNXTsiCi0gICAgIiRMQjRCcmVha3MgPSBbJEJLICRDUiAkTEYgJE5MXTsiCi0g
ICAgIiRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICROTF07IgotICAgICIkTEI4QnJlYWtz
ID0gWyRMQjRCcmVha3MgJFpXXTsiCi0gICAgIiRMQjhOb25CcmVha3MgPSBbWyRMQjROb25CcmVh
a3NdIC0gWyRaV11dOyIKLSAgICAiJExCMThOb25CcmVha3MgPSBbJExCOE5vbkJyZWFrcyAtIFsk
U1BdXTsiCi0gICAgIiRMQjE4QnJlYWtzID0gWyRMQjhCcmVha3MgJFNQXTsiCi0gICAgIiRMQjIw
Tm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsiCi0gICAgIiRBTFBsdXMgJENNKzsi
Ci0gICAgIiRCQSAkQ00rOyIKLSAgICAiJEJCICRDTSs7IgotICAgICIkQjIgJENNKzsiCi0gICAg
IiRDTCAkQ00rOyIKLSAgICAiJENQICRDTSs7IgotICAgICIkRVggJENNKzsiCi0gICAgIiRHTCAk
Q00rOyIKLSAgICAiJEhMICRDTSs7IgotICAgICIkSFkgJENNKzsiCi0gICAgIiRIMiAkQ00rOyIK
LSAgICAiJEgzICRDTSs7IgotICAgICIkSUQgJENNKzsiCi0gICAgIiRJTiAkQ00rOyIKLSAgICAi
JElTICRDTSs7IgotICAgICIkSkwgJENNKzsiCi0gICAgIiRKViAkQ00rOyIKLSAgICAiJEpUICRD
TSs7IgotICAgICIkTlMgJENNKzsiCi0gICAgIiROVSAkQ00rOyIKLSAgICAiJE9QICRDTSs7Igot
ICAgICIkUE8gJENNKzsiCi0gICAgIiRQUiAkQ00rOyIKLSAgICAiJFFVICRDTSs7IgotICAgICIk
UkkgJENNKzsiCi0gICAgIiRTWSAkQ00rOyIKLSAgICAiJFdKICRDTSs7IgotICAgICIkQ1IgJExG
IHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcz8gJExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRD
QU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJENNKyAkTEI0QnJlYWtzIHsxMDB9
OyIKLSAgICAiJExCNE5vbkJyZWFrcyBbJFNQICRaV107IgotICAgICIkQ0FOX0NNICRDTSogWyRT
UCAkWlddOyIKLSAgICAiJENNKyBbJFNQICRaV107IgotICAgICIkRW1vamlGb3JTZXFzICRFbW9q
aVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFzOyIKLSAgICAiJENBTl9DTSAkQ00r
OyIKLSAgICAiJENNKzsiCi0gICAgIiRDQU5fQ00gJENNKiAkV0pjbTsiCi0gICAgIiRMQjhOb25C
cmVha3MgJFdKY207IgotICAgICIkQ00rICRXSmNtOyIKLSAgICAiJFdKY20gJENBTlRfQ007Igot
ICAgICIkV0pjbSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FOX0NNICRDTSo7IgotICAg
ICIkR0xjbSAkQ0FOVF9DTTsiCi0gICAgIltbJExCOE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFld
XSAkQ00qICRHTGNtOyIKLSAgICAiJENNKyBHTGNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkQ0w7
IgotICAgICIkQ0FOX0NNICRDTSogJENMOyIKLSAgICAiJENNKyAkQ0w7IgotICAgICIkTEI4Tm9u
QnJlYWtzICRDUDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ1A7IgotICAgICIkQ00rICRDUDsiCi0g
ICAgIiRMQjhOb25CcmVha3MgJEVYOyIKLSAgICAiJENBTl9DTSAkQ00qICRFWDsiCi0gICAgIiRD
TSsgJEVYOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkSVM7IgotICAgICIkQ0FOX0NNICRDTSogJElT
OyIKLSAgICAiJENNKyAkSVM7IgotICAgICIkTEI4Tm9uQnJlYWtzICRTWTsiCi0gICAgIiRDQU5f
Q00gJENNKiAkU1k7IgotICAgICIkQ00rICRTWTsiCi0gICAgIiRPUGNtICRTUCogJENBTl9DTSAk
Q00qOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOVF9DTTsiCi0gICAgIiRPUGNtICRTUCsgJENNKyAk
QUxfRk9MTE9XPzsiCi0gICAgIiRRVWNtICRTUCogJE9QY207IgotICAgICIoJENMY20gfCAkQ1Bj
bSkgJFNQKiAkTlNjbTsiCi0gICAgIiRCMmNtICRTUCogJEIyY207IgotICAgICIkTEIxOE5vbkJy
ZWFrcyAkQ00qICRRVWNtOyIKLSAgICAiJENNKyAkUVVjbTsiCi0gICAgIiRRVWNtIC4/OyIKLSAg
ICAiJFFVY20gJExCMThOb25CcmVha3MgJENNKjsiCi0gICAgIiRMQjIwTm9uQnJlYWtzICRDTSog
KCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7ICIKLSAgICAiJEJCY20gW14kQ0JdOyIKLSAgICAiJEJC
Y20gJExCMjBOb25CcmVha3MgJENNKjsiCi0gICAgIiRITGNtICgkSFljbSB8ICRCQWNtKSBbXiRD
Ql0/OyIKLSAgICAiJFNZY20gJEhMY207IgotICAgICIoJEFMY20gfCAkSExjbSkgJElOY207Igot
ICAgICIkQ00rICRJTmNtOyIKLSAgICAiJEVYY20gJElOY207IgotICAgICIkSURjbSAkSU5jbTsi
Ci0gICAgIiRJTmNtICRJTmNtOyIKLSAgICAiJE5VY20gJElOY207IgotICAgICIkSURjbSAkUE9j
bTsiCi0gICAgIiRBTGNtICROVWNtOyIKLSAgICAiJEhMY20gJE5VY207IgotICAgICIkQ00rICRO
VWNtOyIKLSAgICAiJE5VY20gJEFMY207IgotICAgICIkTlVjbSAkSExjbTsiCi0gICAgIiRQUmNt
ICRJRGNtOyIKLSAgICAiJFBSY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJFBPY20gKCRBTGNt
IHwgJEhMY20pOyIKLSAgICAiKCRQUmNtIHwgJFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICROVWNt
ICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2Nt
KT87IgotICAgICIkSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRIMmNtIHwgJEgzY20pOyIKLSAgICAi
KCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNtKTsiCi0gICAgIigkSlRjbSB8ICRIM2NtKSAk
SlRjbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkSU5j
bTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkUE9jbTsi
Ci0gICAgIiRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKTsiCi0g
ICAgIigkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7IgotICAgICIkQ00rICgkQUxjbSB8
ICRITGNtKTsiCi0gICAgIiRJU2NtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIigkQUxjbSB8ICRI
TGNtIHwgJE5VY20pICRPUGNtOyIKLSAgICAiJENNKyAkT1BjbTsiCi0gICAgIiRDUGNtICgkQUxj
bSB8ICRITGNtIHwgJE5VY20pOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAi
JFJJY20gJFJJY207IgotI2VuZGlmCi0gICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1v
amlNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFJldmVyc2UgPQotICAgICIhIXJl
dmVyc2U7IgotICAgICIkQ00rICRBTFBsdXM7IgotICAgICIkQ00rICRCQTsiCi0gICAgIiRDTSsg
JEJCOyIKLSAgICAiJENNKyAkQjI7IgotICAgICIkQ00rICRDTDsiCi0gICAgIiRDTSsgJENQOyIK
LSAgICAiJENNKyAkRVg7IgotICAgICIkQ00rICRHTDsiCi0gICAgIiRDTSsgJEhMOyIKLSAgICAi
JENNKyAkSFk7IgotICAgICIkQ00rICRIMjsiCi0gICAgIiRDTSsgJEgzOyIKLSAgICAiJENNKyAk
SUQ7IgotICAgICIkQ00rICRJTjsiCi0gICAgIiRDTSsgJElTOyIKLSAgICAiJENNKyAkSkw7Igot
ICAgICIkQ00rICRKVjsiCi0gICAgIiRDTSsgJEpUOyIKLSAgICAiJENNKyAkTlM7IgotICAgICIk
Q00rICROVTsiCi0gICAgIiRDTSsgJE9QOyIKLSAgICAiJENNKyAkUE87IgotICAgICIkQ00rICRQ
UjsiCi0gICAgIiRDTSsgJFFVOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAi
JENNKyAkUkk7IgotI2VuZGlmCi0gICAgIiRDTSsgJFNZOyIKLSAgICAiJENNKyAkV0o7IgotICAg
ICIkQ00rOyIKLSAgICAiJEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRMRiAkTkwgJFpXIHtl
b2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAkU1BdIHwgWyRBTCB7
ZW9mfV0pKTsiCi0gICAgIlskUFJdIC8gJENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1Age2Vv
Zn1dOyIKLSAgICAiJExCNEJyZWFrcyBbJExCNE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJExCNEJy
ZWFrcyAkQ00rICRDQU5fQ007IgotICAgICIkTEYgJENSOyIKLSAgICAiWyRTUCAkWlddIFskTEI0
Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJFNQICRaV10gJENNKyAkQ0FOX0NNOyIKLSAgICAiJEVt
b2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZhcj8gJEVtb2ppRm9yU2VxczsiCi0g
ICAgIiRDTSsgJENBTl9DTTsiCi0gICAgIiRDTSogJFdKICRDTSogJENBTl9DTTsiCi0gICAgIiRD
TSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ0FOVF9DTSAkQ00qICRXSjsiCi0g
ICAgIiRDTSogJENBTl9DTSAkQ00qICRXSjsiCi0gICAgIiRDTSogJEdMICRDTSogWyRMQjhOb25C
cmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOyIKLSAgICAiJENBTlRfQ00gJENNKiAkR0w7IgotICAg
ICIkQ00qICRDQU5fQ00gJENNKiAkR0w7IgotICAgICIkQ0wgJENNKyAkQ0FOX0NNOyIKLSAgICAi
JENQICRDTSsgJENBTl9DTTsiCi0gICAgIiRFWCAkQ00rICRDQU5fQ007IgotICAgICIkSVMgJENN
KyAkQ0FOX0NNOyIKLSAgICAiJFNZICRDTSsgJENBTl9DTTsiCi0gICAgIiRDTCBbJExCOE5vbkJy
ZWFrcy0kQ01dOyIKLSAgICAiJENQIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkRVggWyRM
QjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRJUyBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAi
JFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJENMICRDUCAkRVggJElTICRTWV0gJENN
KyAkU1ArICRDTSogJE9QOyAiCi0gICAgIiRDTSogJENBTl9DTSAkU1AqICRDTSogJE9QOyIKLSAg
ICAiJENBTlRfQ00gJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xMT1c/ICRDTSsgJFNQICRT
UCogJENNKiAkT1A7IgotICAgICIkQUxfRk9MTE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9QOyIK
LSAgICAiJENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAkQ00qICRPUDsiCi0gICAgIiRTWSAk
Q00gJFNQKyAkT1A7IgotICAgICIkQ00qICRPUCAkU1AqICRDTSogJFFVOyIKLSAgICAiJENNKiAk
TlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJENNKiAkQjIgJFNQKiAkQ00qICRCMjsi
Ci0gICAgIiRDTSogJFFVICRDTSogJENBTl9DTTsiCi0gICAgIiRDTSogJFFVICRMQjE4Tm9uQnJl
YWtzOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFFVOyIKLSAgICAiJENBTlRfQ00gJENNKiAk
UVU7IgotICAgICIkQ00qICgkQkEgfCAkSFkgfCAkTlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRD
TV07IgotICAgICIkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dICRDTSogJEJCOyIKLSAgICAiW14k
Q0JdICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7Igot
ICAgICIkQ00qICRITCAkQ00qICRTWTsiCi0gICAgIiRDTSogJElOICRDTSogKCRBTFBsdXMgfCAk
SEwpOyIKLSAgICAiJENNKiAkSU4gJENNKiAkRVg7IgotICAgICIkQ00qICRJTiAkQ00qICRJRDsi
Ci0gICAgIiRDTSogJElOICRDTSogJElOOyIKLSAgICAiJENNKiAkSU4gJENNKiAkTlU7IgotICAg
ICIkQ00qICRQTyAkQ00qICRJRDsiCi0gICAgIiRDTSogJE5VICRDTSogKCRBTFBsdXMgfCAkSEwp
OyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkTlU7IgotICAgICIkQ00qICRJRCAk
Q00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBSOyIKLSAgICAiJENN
KiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87IgotICAgICIoJENNKiAoJFBSIHwgJFBPKSk/ICgk
Q00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRTWSkpKiAkQ00qICROVSAoJENN
KiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87IgotICAgICIkQ00qICgkSDMgfCAk
SDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOyIKLSAgICAiJENNKiAoJEpUIHwgJEpWKSAkQ00qICgk
SDIgfCAkSlYpOyIKLSAgICAiJENNKiAkSlQgJENNKiAoJEgzIHwgJEpUKTsiCi0gICAgIiRDTSog
JElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7IgotICAgICIkQ00qICRQTyAk
Q00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIKLSAgICAiJENNKiAoJEgzIHwgJEgy
IHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwp
ICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAk
SVM7IgotICAgICIkQ00qICRPUCAkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKTsiCi0gICAgIiRD
TSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKLSAgICAiJENNKiAkUkkgJENNKiAkUkk7IgotI2VuZGlmCi0gICAgIiRFbW9qaU1v
ZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgx
NFNhZmVGb3J3YXJkID0KLSAgICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICJbJENNICRPUCAkUVUg
JENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14kQ00gJE9QICRRVSAk
Q0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07IgotICAgICIkZGljdGlvbmFyeSAk
ZGljdGlvbmFyeTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRTYWZlUmV2ZXJzZSA9Ci0g
ICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAiJENNKyBbXiRDTSAkQksgJENSICRMRiAkTkwgJFpX
ICRTUF07IgotICAgICIkQ00rICRTUCAvIC47IgotICAgICIkU1ArICRDTSogJE9QOyIKLSAgICAi
JFNQKyAkQ00qICRRVTsiCi0gICAgIiRTUCsgJENNKiAoJENMIHwgJENQKTsiCi0gICAgIiRTUCsg
JENNKiAkQjI7IgotICAgICIkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOyIKLSAgICAiKCRDTSog
KCRJUyB8ICRTWSkpKyAkQ00qICROVTsiCi0gICAgIigkQ0wgfCAkQ1ApICRDTSogKCROVSB8ICRJ
UyB8ICRTWSk7IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsiOwotCiBzdGF0aWMgU3Ry
aW5nIG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKExpbmVCcmVha0l0ZXJhdG9yTW9kZSBtb2Rl
LCBib29sIGlzQ0pLKQogewotICAgIFN0cmluZ0J1aWxkZXIgcnVsZXNCdWlsZGVyOwotICAgIHJ1
bGVzQnVpbGRlci5hcHBlbmQodWF4MTRQcm9sb2d1ZSk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVu
ZCh1YXgxNEFzc2lnbm1lbnRzQmVmb3JlKTsKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAgICBjYXNl
IExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6RGVmYXVsdDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFw
cGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Q0pLIDogdWF4MTRBc3Np
Z25tZW50c0N1c3RvbURlZmF1bHROb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0
dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNENKS1J1bGVzIDogbGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpM
b29zZToKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVu
dHNDdXN0b21Mb29zZUNKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZU5vbkNKSyk7Ci0g
ICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKS1J1bGVz
OwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpOb3JtYWw6Ci0gICAgICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pLIDog
dWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAg
ICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLUnVsZXMg
OiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5l
QnJlYWtJdGVyYXRvck1vZGU6OlN0cmljdDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChp
c0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksgOiB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tU3RyaWN0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NK
SyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsKICAgICB9Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVu
ZCh1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRG
b3J3YXJkKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0UmV2ZXJzZSk7Ci0gICAgcnVs
ZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVGb3J3YXJkKTsKLSAgICBydWxlc0J1aWxkZXIuYXBw
ZW5kKHVheDE0U2FmZVJldmVyc2UpOwotICAgIHJldHVybiBydWxlc0J1aWxkZXIudG9TdHJpbmco
KTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gIiI7CiB9CiAKIC8vIFJl
Y29nbml6ZSBCQ1A0NyBjb21wbGlhbnQgcHJpbWFyeSBsYW5ndWFnZSB2YWx1ZXMgb2YgJ3poJywg
J2phJywgJ2tvJwpAQCAtNzg4LDkgKzI1NCwyOSBAQCBUZXh0QnJlYWtJdGVyYXRvciogb3Blbkxp
bmVCcmVha0l0ZXJhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBMaW5lQnJlYWtJdAog
ICAgIGlmIChtb2RlID09IExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6RGVmYXVsdCkKICAgICAgICAg
dWJya0l0ZXIgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBsb2NhbGVJc0VtcHR5ID8gY3VycmVudFRl
eHRCcmVha0xvY2FsZUlEKCkgOiBsb2NhbGUuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgMCwgMCwg
Jm9wZW5TdGF0dXMpOwogICAgIGVsc2UgewotICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1
czsKLSAgICAgICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUs
IGlzQ0pLKTsKLSAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW5SdWxlcyhTdHJpbmdWaWV3KHJ1
bGVzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcnVsZXMubGVuZ3RoKCksIDAsIDAsICZwYXJz
ZVN0YXR1cywgJm9wZW5TdGF0dXMpOworICAgICAgICBCcmVha2luZ1J1bGVTZXQgcnVsZVNldDsK
KyAgICAgICAgc3dpdGNoIChtb2RlKSB7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JN
b2RlOjpEZWZhdWx0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxl
U2V0OjpVQVgxNENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Okxvb3NlOgorICAg
ICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pL
IDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpOb3JtYWw6CisgICAgICAgICAg
ICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLIDogQnJl
YWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6U3RyaWN0OgorICAgICAgICAgICAgcnVs
ZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdENKSyA6IEJyZWFraW5n
UnVsZVNldDo6VUFYMTRTdHJpY3ROb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNl
dChydWxlU2V0KSkKKyAgICAgICAgICAgIHVicmtJdGVyID0gcmVpbnRlcnByZXRfY2FzdDxVQnJl
YWtJdGVyYXRvcio+KGl0ZXJhdG9yKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBVUGFy
c2VFcnJvciBwYXJzZVN0YXR1czsKKyAgICAgICAgICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRl
cmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7CisgICAgICAgICAgICB1YnJrSXRlciA9IHVi
cmtfb3BlblJ1bGVzKFN0cmluZ1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBy
dWxlcy5sZW5ndGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7CisgICAgICAg
IH0KICAgICB9CiAgICAgLy8gbG9jYWxlIGNvbWVzIGZyb20gYSB3ZWIgcGFnZSBhbmQgaXQgY2Fu
IGJlIGludmFsaWQsIGxlYWRpbmcgSUNVCiAgICAgLy8gdG8gZmFpbCwgaW4gd2hpY2ggY2FzZSB3
ZSBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgbG9jYWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0
QnJlYWtJdGVyYXRvci5oCmluZGV4IDhhZmI1NTgwMjAxMDAyYmJkMmVkZDU3NTY1YmMzNDFiMWEw
MDZhOWUuLjk0ZmY3ZDYwNTM3NDQ4M2I3NTNkMGI1ZGFiZDc0NmNlY2UwMmU0MWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKQEAgLTMxLDYgKzMxLDMwIEBAIGNsYXNz
IFRleHRCcmVha0l0ZXJhdG9yOwogCiBlbnVtIGNsYXNzIExpbmVCcmVha0l0ZXJhdG9yTW9kZSB7
IERlZmF1bHQsIExvb3NlLCBOb3JtYWwsIFN0cmljdCB9OwogCitlbnVtIGNsYXNzIEJyZWFraW5n
UnVsZVNldCB7CisgICAgQ3Vyc29yTW92ZW1lbnQsCisgICAgVUFYMTRDSkssCisgICAgVUFYMTRO
b25DSkssCisgICAgVUFYMTRMb29zZUNKSywKKyAgICBVQVgxNExvb3NlTm9uQ0pLLAorICAgIFVB
WDE0Tm9ybWFsQ0pLLAorICAgIFVBWDE0Tm9ybWFsTm9uQ0pLLAorICAgIFVBWDE0U3RyaWN0Q0pL
LAorICAgIFVBWDE0U3RyaWN0Tm9uQ0pLCit9OworCitleHRlcm4gY29uc3QgY2hhciogY3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxOb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdE5vbkNKS1J1bGVzOworCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRl
SXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCk7CisKIC8vIFRoaXMgaXMgc2ltaWxh
ciB0byBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgaW4gbW9zdCBjYXNlcywgYnV0IGlzIHN1Ympl
Y3QgdG8KIC8vIHBsYXRmb3JtIFVJIGNvbnZlbnRpb25zLiBPbmUgbm90YWJsZSBleGFtcGxlIHdo
ZXJlIHRoaXMgY2FuIGJlIGRpZmZlcmVudAogLy8gZnJvbSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0
b3IgaXMgVGhhaSBwcmVwZW5kIGNoYXJhY3RlcnMsIHNlZSBidWcgMjQzNDIuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFj
Lm1tIGIvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElD
VU1hYy5tbQppbmRleCBiZWY1ZGFhNjQyODg4MjFlMjBmMjYyOGM2ODU1ZWU4ZTg4YTM4OTJjLi4y
YWVjZjA5ZTgyNTQ0YzY2YjdkMWMxZTVhYWFjNjRmNWZmZjMwMmJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VN
YWMubW0KQEAgLTIxLDEyICsyMSwxMjAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgiCiAKKyNpbmNsdWRlICJUZXh0QnJlYWtJ
dGVyYXRvci5oIgorCisjaWYgZGVmaW5lZChVX1NIT1dfQ1BMVVNQTFVTX0FQSSkKKyN1bmRlZiBV
X1NIT1dfQ1BMVVNQTFVTX0FQSQorI2VuZGlmCisjZGVmaW5lIFVfU0hPV19DUExVU1BMVVNfQVBJ
IDEKKworI2luY2x1ZGUgPHVuaWNvZGUvcmJiaS5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWRhdGEu
aD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKK0BpbnRlcmZhY2UgV1RGQnVuZGxl
RmluZGVyIDogTlNPYmplY3QKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdURkJ1bmRsZUZpbmRl
cgorQGVuZAorCiBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0IGludCBtYXhMb2NhbGVT
dHJpbmdMZW5ndGggPSAzMjsKIAorc3RydWN0IFJ1bGVDYWNoZSB7CisgICAgc3RkOjp1bmlxdWVf
cHRyPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+IGl0ZXJhdG9yOworICAgIGJvb2wgZmFpbGVkIHsg
ZmFsc2UgfTsKK307CisKK1RleHRCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVyYXRvckZvclJ1bGVT
ZXQoQnJlYWtpbmdSdWxlU2V0IHJ1bGVTZXQpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFJ1bGVDYWNoZT4gY3Vyc29yTW92ZW1lbnRJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNENKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0Tm9uQ0pLSXRlcmF0b3I7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTRMb29zZUNK
S0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVh
a1VBWDE0TG9vc2VOb25DSktJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVs
ZUNhY2hlPiBsaW5lQnJlYWtVQVgxNE5vcm1hbENKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0Tm9ybWFsTm9uQ0pLSXRlcmF0b3I7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTRTdHJp
Y3RDSktJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5l
QnJlYWtVQVgxNFN0cmljdE5vbkNKS0l0ZXJhdG9yOworCisgICAgTlNTdHJpbmcgKmZpbGVOYW1l
QmFzZTsKKyAgICBSdWxlQ2FjaGUqIGNhY2hlID0gbnVsbHB0cjsKKworICAgIHN3aXRjaCAocnVs
ZVNldCkgeworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpDdXJzb3JNb3ZlbWVudDoKKyAgICAg
ICAgZmlsZU5hbWVCYXNlID0gQCJDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMiOworICAgICAg
ICBjYWNoZSA9ICZjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRDSks6CisgICAgICAgIGZpbGVOYW1lQmFz
ZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVC
cmVha1VBWDE0Q0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJl
YWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFY
MTROb25DSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2lu
Z1J1bGVTZXQ6OlVBWDE0TG9vc2VDSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFY
MTRMb29zZUNKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFr
aW5nUnVsZVNldDo6VUFYMTRMb29zZU5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksiOworICAgICAgICBjYWNoZSA9ICZsaW5l
QnJlYWtVQVgxNExvb3NlTm9uQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbENKSzoKKyAgICAgICAgZmlsZU5hbWVC
YXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLIjsKKyAgICAgICAgY2FjaGUg
PSAmbGluZUJyZWFrVUFYMTROb3JtYWxDSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pLOgorICAgICAgICBm
aWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksiOworICAg
ICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNE5vcm1hbE5vbkNKS0l0ZXJhdG9yLmdldCgpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3RDSks6
CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENK
SyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0U3RyaWN0Q0pLSXRlcmF0b3IuZ2V0
KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmlj
dE5vbkNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTRTdHJpY3ROb25D
SktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgQVNTRVJUKGNh
Y2hlKTsKKworICAgIGlmIChjYWNoZS0+ZmFpbGVkKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIGlmICghY2FjaGUtPml0ZXJhdG9yKSB7CisgICAgICAgIE5TQnVuZGxlICpidW5kbGUg
PSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6W1dURkJ1bmRsZUZpbmRlciBjbGFzc11dOworICAg
ICAgICBOU1N0cmluZyAqcGF0aCA9IFtidW5kbGUgcGF0aEZvclJlc291cmNlOmZpbGVOYW1lQmFz
ZSBvZlR5cGU6QCJicmsiIGluRGlyZWN0b3J5OkAiQnJlYWtpbmdSdWxlcyJdOworICAgICAgICBp
ZiAoIXBhdGgpIHsKKyAgICAgICAgICAgIGNhY2hlLT5mYWlsZWQgPSB0cnVlOworICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBOU1N0cmluZyAqZGlyZWN0
b3J5ID0gW3BhdGggc3RyaW5nQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50XTsKKyAgICAgICAg
VUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAgICAgIExvY2FsVURhdGFN
ZW1vcnlQb2ludGVyIGRhdGEodWRhdGFfb3BlbihbZGlyZWN0b3J5IFVURjhTdHJpbmddLCAiYnJr
IiwgW2ZpbGVOYW1lQmFzZSBVVEY4U3RyaW5nXSwgJmVycm9yQ29kZSkpOworICAgICAgICBpZiAo
ZXJyb3JDb2RlICE9IFVfWkVST19FUlJPUikgeworICAgICAgICAgICAgY2FjaGUtPmZhaWxlZCA9
IHRydWU7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAg
IGNhY2hlLT5pdGVyYXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJhc2VkQnJlYWtJdGVyYXRv
cj4oZGF0YS5vcnBoYW4oKSwgZXJyb3JDb2RlKTsKKyAgICAgICAgaWYgKGVycm9yQ29kZSAhPSBV
X1pFUk9fRVJST1IpIHsKKyAgICAgICAgICAgIGNhY2hlLT5mYWlsZWQgPSB0cnVlOworICAgICAg
ICAgICAgY2FjaGUtPml0ZXJhdG9yID0gbnVsbHB0cjsKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGV4
dEJyZWFrSXRlcmF0b3IqPihzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+
KCpjYWNoZS0+aXRlcmF0b3IpLnJlbGVhc2UoKSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVmZXJlbmNlKCkKIHsKICAgICBSZXRh
aW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0Nv
cHlWYWx1ZShDRlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUiKSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9jbWFrZS9XZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQppbmRl
eCAyOWEwOTY5MDM4ZmFhNzQ0ZTFhOGM1OGYzNTZhZDA3M2YwMDUyNWJkLi44MWY1NGE1NmFkNjk1
M2Q3YjFlMjBjODhmYTg1YmJkZGQxZjA3ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2Vi
S2l0RlMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlCkBAIC0yNCw2ICsy
NCw3IEBAIGlmIChOT1QgVE9PTFNfRElSKQogZW5kaWYgKCkKIAogc2V0KERFUklWRURfU09VUkNF
U19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMiKQorc2V0KERFUklWRURf
U09VUkNFU19XVEZfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURiIp
CiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllf
RElSfS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZSIpCiBzZXQoREVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUi
KQogc2V0KERFUklWRURfU09VUkNFU19XRUJLSVRMRUdBQ1lfRElSICIke0NNQUtFX0JJTkFSWV9E
SVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIpCkBAIC0zMiw2ICszMyw4IEBAIHNldChE
RVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNv
dXJjZXMvV2ViS2l0MiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUiAi
JHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJJbnNwZWN0b3JVSSIpCiAKIGZp
bGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfSkK
K2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0pCitmaWxlKE1B
S0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMpCiBm
aWxlKE1BS0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0vU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV0VC
SU5TUEVDVE9SVUlfRElSfSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297143</attachid>
            <date>2016-12-14 16:31:52 -0800</date>
            <delta_ts>2016-12-14 18:41:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20161214163101.patch</filename>
            <type>text/plain</type>
            <size>291879</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NGViZjQ3NGFkODg3OWY2MjRjOWI5MzAwYTVhNzQ4YzkzMTY5MDYzLi4wN2VhOGJiNWFlN2M1YmNi
NzJkMjYyZGI2MTE0ZDg1NTdjYjdjM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNi0xMi0xNCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbmNsdWRlIHRoZSBieXRlY29kZSBmaWxlcyBpbnNpZGUgdGhl
IEphdmFTY3JpcHRDb3JlIGJ1bmRsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMTItMTQgIEtlaXRoIE1pbGxlciAgPGtlaXRo
X21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViQXNzZW1ibHkgSlMgQVBJOiBpbXBsZW1l
bnQgR2xvYmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCmluZGV4IDk1OTcwOTMzMzA4YmM2MWJhZDQzOWE0ZDYzMTNmYjQ4ZDMxZDQyODcu
LjI3MTdlYjI5NzE3YTY2MWM0OWE2YmM1MTY0ZjJjMGRmMzY5MzdmZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
ODQgQEAKKzIwMTYtMTItMTQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KKworICAgICAgICBDb21waWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGlt
ZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIG1hY09TIGFuZCBpT1MgU0RLcyBpbmNsdWRlIGEgdG9vbCwgaWN1
Z2VuYnJrLCB3aGljaCBjb21waWxlcyBJQ1UgYnJrIGJyZWFraW5nCisgICAgICAgIHJ1bGVzIGlu
dG8gYnl0ZWNvZGUuIFByZXZpb3VzbHksIHRoaXMgY29tcGlsYXRpb24gd2FzIGRvbmUgYXQgcnVu
dGltZSBpbnNpZGUgdGhlIElDVQorICAgICAgICB1YnJrX29wZW5SdWxlcygpIGZ1bmN0aW9uLiBN
b3ZpbmcgdGhpcyBjb21waWxhdGlvbiBzdGVwIHRvIGNvbXBpbGUgdGltZSByYXRoZXIgdGhhbgor
ICAgICAgICBidWlsZCB0aW1lIGNhdXNlcyBhIHBlcmZvcm1hbmNlIGJvb3N0LgorCisgICAgICAg
IFByZXZpb3VzbHksIHRoZSBzb3VyY2UgZm9yIHRoZSBicmVha2luZyBydWxlcyB3YXMgYXNzZW1i
bGVkIGJ5IGNvbmNhdGVuYXRpbmcgQyBzdHJpbmdzCisgICAgICAgIGF0IHJ1bnRpbWUuIE5vdywg
dGhlIHNvdXJjZSBpcyBjb250YWluZWQgd2l0aGluIGEgZmV3IHRleHQgZmlsZXMgaW5zaWRlCisg
ICAgICAgIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMuIEEgYnVpbGQgc3RlcCAodXNpbmcgYSBNYWtl
ZmlsZSkgd2lsbCBnZW5lcmF0ZSBzb3VyY2UgY29kZQorICAgICAgICBjb250YWluaW5nIHRoZXNl
IHN0cmluZ3MsIGFuZCBXVEYgd2lsbCBpbmNsdWRlIHRoZXNlIHNvdXJjZSBmaWxlcyBpbiB0aGUg
c2FtZSB3YXkgYW55CisgICAgICAgIG9mIG91ciBwcm9qZWN0cyB1c2UgZ2VuZXJhdGVkIHNvdXJj
ZXMuIEhvd2V2ZXIsIGFkZGl0aW9uYWxseSwgb24gT1NlcyB3aGljaCBzdXBwb3J0IGl0LAorICAg
ICAgICB0aGVzZSBzdHJpbmdzIGdldCBjb21waWxlZCBkaXJlY3RseSBpbnRvIElDVSBieXRlY29k
ZSwgYW5kIHRoZW4gaW5jbHVkZWQgaW4gdGhlCisgICAgICAgIGZyYW1ld29yayBidW5kbGUuIEJl
Y2F1c2UgV1RGIGdldHMgc3RhdGljYWxseSBsaW5rZWQgaW50byBKYXZhU2NyaXB0Q29yZSwgdGhp
cyBpcyB0aGUKKyAgICAgICAgYnVuZGxlIHdoaWNoIGluY2x1ZGVzIHRoZSBieXRlY29kZSBmaWxl
cy4KKworICAgICAgICBBdCBydW50aW1lLCB3ZSBmaXJzdCBjaGVjayBpZiB3ZSBoYXZlIGEgZmls
ZSBpbiBvdXIgYnVuZGxlIG9mIHRoZSBhcHByb3ByaWF0ZSBuYW1lLAorICAgICAgICBhbmQgdGhl
biBzZWUgaWYgSUNVIGNhbiBvcGVuIGl0IHVzaW5nIGl0cyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
IGludGVyZmFjZSAod2hpY2gKKyAgICAgICAgaW5jbHVkZXMgYSB2ZXJzaW9uIGNoZWNrKS4gSWYg
YW55IG9mIHRoZXNlIGNoZWNrcyBmYWlsLCBvciBpZiB3ZSdyZSBvbiBhIHBvcnQgd2hpY2gKKyAg
ICAgICAgZG9lc24ndCBoYXZlIHRoZSBub3Rpb24gb2YgYnVuZGxlcywgd2Ugd2lsbCB1c2UgdGhl
IEMgc3RyaW5ncyBnZW5lcmF0ZWQgYWJvdmUsIGFuZAorICAgICAgICBwYXNzIHRoZW0gdG8gdWJy
a19vcGVuUnVsZXMoKSB0aGUgc2FtZSB3YXkgd2Ugd2VyZSBkb2luZyBiZWZvcmUgdGhpcyBwYXRj
aC4KKworICAgICAgICBUaGUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBpbnRlcmZhY2UgaW4gSUNV
IHJlcXVpcmVzIGFkZGluZyBzb21lIG1vcmUgb2YgSUNVJ3MgcHVibGljCisgICAgICAgIGhlYWRl
cnMgaW50byBXZWJLaXQuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBpY3UvdW5pY29kZS9icmtpdGVyLmg6IEFkZGVkLgorICAgICAgICAoQnJl
YWtJdGVyYXRvcjo6aXNCdWZmZXJDbG9uZSk6CisgICAgICAgICogaWN1L3VuaWNvZGUvY2hhcml0
ZXIuaDogQWRkZWQuCisgICAgICAgIChGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I6Om9wZXJhdG9y
IT0pOgorICAgICAgICAoQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvU3RhcnQpOgorICAgICAgICAo
Q2hhcmFjdGVySXRlcmF0b3I6OnNldFRvRW5kKToKKyAgICAgICAgKENoYXJhY3Rlckl0ZXJhdG9y
OjpzdGFydEluZGV4KToKKyAgICAgICAgKENoYXJhY3Rlckl0ZXJhdG9yOjplbmRJbmRleCk6Cisg
ICAgICAgIChDaGFyYWN0ZXJJdGVyYXRvcjo6Z2V0SW5kZXgpOgorICAgICAgICAoQ2hhcmFjdGVy
SXRlcmF0b3I6OmdldExlbmd0aCk6CisgICAgICAgICogaWN1L3VuaWNvZGUvbG9jaWQuaDogQWRk
ZWQuCisgICAgICAgIChMb2NhbGU6Om9wZXJhdG9yIT0pOgorICAgICAgICAoTG9jYWxlOjpnZXRD
b3VudHJ5KToKKyAgICAgICAgKExvY2FsZTo6Z2V0TGFuZ3VhZ2UpOgorICAgICAgICAoTG9jYWxl
OjpnZXRTY3JpcHQpOgorICAgICAgICAoTG9jYWxlOjpnZXRWYXJpYW50KToKKyAgICAgICAgKExv
Y2FsZTo6Z2V0TmFtZSk6CisgICAgICAgIChMb2NhbGU6OmlzQm9ndXMpOgorICAgICAgICAqIGlj
dS91bmljb2RlL3JiYmkuaDogQWRkZWQuCisgICAgICAgIChSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
OjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBpY3UvdW5pY29kZS9zY2hyaXRlci5oOiBBZGRlZC4K
KyAgICAgICAgKiBpY3UvdW5pY29kZS91Y2FzZW1hcC5oOiBBZGRlZC4KKyAgICAgICAgKiBpY3Uv
dW5pY29kZS91Y2hyaXRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBpY3UvdW5pY29kZS91ZGF0YS5o
OiBBZGRlZC4KKyAgICAgICAgKiBpY3UvdW5pY29kZS91bWlzYy5oOiBBZGRlZC4KKyAgICAgICAg
KiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U6
IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6
CisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxv
Z3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclByb2xvZ3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZU5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ6IEFkZGVk
LgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0
ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KToKKyAg
ICAgICAgKFdURjo6Y3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjayk6Cisg
ICAgICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3IpOgorICAgICAgICAoV1RGOjptYXBM
aW5lSXRlcmF0b3JNb2RlVG9SdWxlcyk6CisgICAgICAgIChXVEY6Om9wZW5MaW5lQnJlYWtJdGVy
YXRvcik6CisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDoKKyAgICAgICAg
KiB3dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbToKKyAgICAg
ICAgKFdURjo6Y3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KToKKwogMjAxNi0xMi0xNCAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjIwOTc5NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGMy
NDQzYWQxNDJmMDM3YWVjNzdjZWE5NTFhNDYzYzI1YWUwNjE0Yi4uOTI0NDY5ODA1NDY0ZWU4MmM5
OWQ2NWQ5NzJkODIxYzljZjRiYTE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTEyMDYsNiArMTIwNiw3IEBACiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmlu
Z1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTg4MjZCMTY1
M0M0Q0QxQTY0Mjk4M0IgLyogVGVtcGxhdGVSZWdpc3RyeUtleVRhYmxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhCNDdGMjM0MzY2QzRCNzJBQzg1
MkE3RSAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5VGFibGUuY3BwICovOyB9OwogCQkxQUNGNzM3NzE3
MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgKi87
IH07CisJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFENTU5NjEy
MDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFBNzAwOTFF
RTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5l
ci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5l
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1
QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2MkQ4NUI2
MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQxQzBENjUw
RjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07CkBAIC0z
NTkwLDYgKzM1OTEsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFzZS54Y2Nv
bmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYgLyogSmF2
YVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQxQkNGRiAv
KiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZh
U2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4RjFENTU5
NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7IHBhdGgg
PSAuLi9XVEYvQnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYw
MEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9p
bmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZBQ0I2MSAv
KiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0aCA9IGIz
L2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTkwNyw2ICs1OTA5LDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAwNzY5RTU0
IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8s
CiAJCQkJQUQyRkNDMEExREI1OUM1OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9y
Q29uc3RydWN0b3IubHV0LmggKi8sCiAJCQkJQUQyRkNDMEIxREI1OUM1OTAwQjNFNzM2IC8qIFdl
YkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlLmx1dC5oICovLAogCQkJCUFEMkZDQzBDMURC
NTlDNTkwMEIzRTczNiAvKiBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IubHV0LmggKi8s
CkBAIC05MjYwLDYgKzkyNjMsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
IAkJCWZpbGVzID0gKAogCQkJCUE1M0YxQUMwMThDOTBGOEYwMDcyRUI2RCAvKiBmcmFtZXdvcmsu
c2IgaW4gUmVzb3VyY2VzICovLAorCQkJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVh
a2luZ1J1bGVzIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGQ5ZTI1OTZlNThhZWY1NzNjNzM4Y2FjOGE3NDU1ZGE1NTc1MzIyNWIu
LjhlOTYwNDAzYzU1YTA3ZTVmYjIyYjM2N2QyYTM4ZDk4NTRiOTM4MTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNyw2ICs3LDE3IEBACiAJb2JqZWN0cyA9
IHsKIAogLyogQmVnaW4gUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KKwkJMUNEMTg3ODEx
RDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEFn
Z3JlZ2F0ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxQ0QxODc4MzFENTU2
OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQkxQ0Qx
ODc4MjFENTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovLAorCQkJ
KTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNl
cyI7CisJCQlwcm9kdWN0TmFtZSA9ICJDb3B5IFdURiBIZWFkZXJzIjsKKwkJfTsKIAkJNjVBRkEx
NkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhBZ2dyZWdhdGVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNjVBRkEyODgx
NjMwQjk3NzAwM0Q3MjNDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVn
YXRlVGFyZ2V0ICJDb3B5IFdURiBIZWFkZXJzIiAqLzsKQEAgLTg0LDcgKzk1LDYgQEAKIAkJMTQ0
N0FFQzYxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQzUxOEZDRTU3NzAw
QjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OwogCQkxNDQ3QUVDNzE4RkNFNTgw
MDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi87IH07
CiAJCTE0NDdBRUM5MThGQ0U1OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDODE4RkNFNTk0MDBCM0Q3
RkYgLyogbWJtYWxsb2MuY3BwICovOyB9OwotCQkxNDQ3QUVDQjE4RkNFNUI5MDBCM0Q3RkYgLyog
bGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICov
OyB9OwogCQkxNDY5NDE5MjE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDY5NDE5MDE2RUFBRjZE
MDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
KTsgfTsgfTsKIAkJMTQ2OTQxOTMxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTkx
MTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXJDRi5jcHAgKi87IH07CiAJCTE0Njk0MTk2
MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTk0MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hl
ZHVsZVBhaXIuaCAqLzsgfTsKQEAgLTMzNyw2ICszNDcsMTYgQEAKIAkJQThBNDc0OEMxNTFBODI2
NDAwNDEyM0ZGIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThBNDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovOyB9Owog
CQlBRDdDNDM0QjFERDJBNEE3MDAyNjg4OEIgLyogRXhwZWN0ZWQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEN0M0MzRBMUREMkE0QTcwMDI2ODg4QiAv
KiBFeHBlY3RlZC5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVy
ZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovOyB9OworCQlD
MkJBNTQzRTFENTg2QUY0MDAwQTMzMzIgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIz
RDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZC
OTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBD
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMy
Q0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25D
SksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJD
QTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNK
Sy5jcHAgKi87IH07CisJCUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJ
CUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMy
Q0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LmNwcCAqLzsgfTsKKwkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICovOyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIx
NUQgLyogU3RvcHdhdGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJ
CUM4QjBFMUExRTAxQTQ4NkVCOTVFMEQxMSAvKiBJbmRleFNldC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzN0UxRDdEQkQ4NEFDMzhGQUU0RDM0IC8q
IEluZGV4U2V0LmggKi87IH07CiAJCUM5MTZCOTc1RjAyRjRGN0U4QjRBQjEyRCAvKiBJbmRleE1h
cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUI0MzM4
M0E1RDBCNDYzQzk0MzNEOTMzIC8qIEluZGV4TWFwLmggKi87IH07CkBAIC0zNzEsNiArMzkxLDEz
IEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NjsK
IAkJCXJlbW90ZUluZm8gPSBXVEY7CiAJCX07CisJCTFDRDE4Nzg3MUQ1NTY5ODgwMENDN0RFQyAv
KiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CisJCQlpc2EgPSBQQlhDb250YWluZXJJdGVt
UHJveHk7CisJCQljb250YWluZXJQb3J0YWwgPSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyog
UHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94eVR5cGUgPSAxOworCQkJcmVtb3RlR2xvYmFsSURT
dHJpbmcgPSAxQ0QxODc4MTFENTU2OTVDMDBDQzdERUM7CisJCQlyZW1vdGVJbmZvID0gIkRlcml2
ZWQgU291cmNlcyI7CisJCX07CiAJCTY1QUZBMjhEMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhDb250
YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CiAJ
CQljb250YWluZXJQb3J0YWwgPSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBv
YmplY3QgKi87CkBAIC00ODIsNiArNTA5LDE4IEBACiAJCTFDMTgxQzhEMUQzMDdBQjgwMEY1RkEx
NiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUMxODFDOEUxRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVVGV4dFByb3ZpZGVyVVRGMTYuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMxODFDOTUxRDMwODAwQTAwRjVGQTE2IC8qIFRl
eHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOyBwYXRo
ID0gbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTUxRDU1
OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NjFENTU5QTkwMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQ0I0RkI5NzFENTU5QUE4MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5
ODFENTU5QUQyMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUz
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQ0I0RkI5QjFENTU5QjNFMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
QjRGQjlDMUQ1NTlCNjcwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERl
cml2ZWRTb3VyY2VzLm1ha2UgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnhtbDsgbmFtZSA9IERlcml2ZWRTb3VyY2VzLm1ha2U7IHBhdGggPSB3
dGYvRGVyaXZlZFNvdXJjZXMubWFrZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdXNlc1RhYnMg
PSAxOyB9OworCQkxQ0QxODc5MjFENTU5OEUxMDBDQzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc5MzFENTU5OTY1MDBDQzdERUMgLyogTGlu
ZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJy
ZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFG
QTQ3Qzg4MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRkE0N0M4OTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVh
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MTQ3QjA4MTVERENDREMwMEREQjkwNyAvKiBJ
bnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTcxMSw2ICs3NTAsMTYgQEAKIAkJQThBNDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNv
bmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ3QzQzNEExREQyQTRBNzAwMjY4ODhCIC8qIEV4cGVj
dGVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4cGVjdGVkLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0
dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJlRGVm
aW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQzRjFENTg3NEU2MDAw
QTMzMzIgLyogR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRo
ID0gR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0Ez
N0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBw
YXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7
IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwOyBwYXRo
ID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7IHBhdGggPSBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgcGF0
aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwOyBw
YXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5j
cHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25D
SksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNEY4QTkzNjE5QzY1RUI0MDBC
MkIxNUQgLyogU3RvcHdhdGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAz
MDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1lZGlhVGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5
N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03
NDIsNyArNzkxLDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxl
cyA9ICgKIAkJCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdv
cmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCQkxNDQ3QUVDQjE4RkNFNUI5MDBCM0Q3RkYgLyogbGli
aWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovLAorCQkJCUMyQkE1NDNFMUQ1ODZBRjQwMDBB
MzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMTQ0N0FFQzcx
OEZDRTU4MDAwQjNEN0ZGIC8qIGxpYldURi5hIGluIEZyYW1ld29ya3MgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC03NzksNiArODI4LDI1
IEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
MUNEMTg3OTExRDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDNGMUQ1ODc0RTYwMDBBMzMz
MiAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8sCisJCQkJMUNEMTg3OTIxRDU1
OThFMTAwQ0M3REVDIC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8sCisJCQkJ
MUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0
ICovLAorCQkJCTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTcx
RDU1OUFBODAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQg
Ki8sCisJCQkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksudHh0ICovLAorCQkJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QTFENTU5
QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8sCisJ
CQkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksudHh0ICovLAorCQkJCTFDQjRGQjlDMUQ1NTlCNjcwMEY5RkUzOCAvKiBMaW5lQnJl
YWtJdGVyYXRvckVwaWxvZ3VlLnR4dCAqLywKKwkJCSk7CisJCQlwYXRoID0gQnJlYWtpbmdSdWxl
czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFGQTQ3Qzg3MTUyNTAyREEw
MDU2OEQxQiAvKiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApAQCAtODAwLDEwICs4NjgsMTIgQEAKIAkJNUQyNDdCNTcxNDY4OUI4NjAwRTc4Qjc2ID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc4QTFENTU4QUQz
MDBDQzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKIAkJCQk1RDI0N0I2RDE0Njg5QzQ3
MDBFNzhCNzYgLyogQ29uZmlndXJhdGlvbnMgKi8sCiAJCQkJMTQwMjJGM0YxOEY1QzNFNTAwN0ZG
MEVCIC8qIExpYnJhcmllcyAqLywKIAkJCQk1RDI0N0I2MzE0Njg5Qjg2MDBFNzhCNzYgLyogUHJv
ZHVjdHMgKi8sCiAJCQkJNUQyNDdCNzYxNDY4OUQ3NjAwRTc4Qjc2IC8qIFNvdXJjZSAqLywKKwkJ
CQlDMkNBMzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0
NDdBRUM1MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKIAkJCQkx
NDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLywKIAkJCSk7CkBA
IC0xMTYyLDYgKzEyMzIsNyBAQAogCQlBOEE0NzMxQjE1MUE4MjVCMDA0MTIzRkYgLyogdGV4dCAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OTEx
RDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJQTVCQTE1RjYxODI0MzU5
RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3Ug
Ki8sCiAJCQkJQTVCQTE1RjExODI0MzM5RjAwQTgyRTY5IC8qIG1hYyAqLywKQEAgLTEyMzksNiAr
MTMxMCwyMyBAQAogCQkJcGF0aCA9IGljdTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQ0EzN0UwMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovLAorCQkJCUMy
Q0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAq
LywKKwkJCQlDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNDFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi8sCisJCQkJQzJD
QTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
Y3BwICovLAorCQkJCUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTgx
RDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3Bw
ICovLAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXBhdGggPSBEZXJp
dmVkU291cmNlcy9XVEY7CisJCQlzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOworCQl9
OwogCQlDRTQ2NTE2QzE5REIxRkI0MDAzRUNBMDUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTU3MCw2ICsxNjU4LDcgQEAKIAkJCWJ1aWxk
UnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTFDRDE4Nzg4MUQ1NTY5
ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTY1QUZBMjhFMTYzMEI5
OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBX
VEY7CkBAIC0xNjAwLDEyICsxNjg5LDI3IEBACiAJCQl0YXJnZXRzID0gKAogCQkJCTVEMjQ3QjYx
MTQ2ODlCODYwMEU3OEI3NiAvKiBXVEYgKi8sCiAJCQkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjND
IC8qIENvcHkgV1RGIEhlYWRlcnMgKi8sCisJCQkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8q
IERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVCRDE4RkNFNTY5MDBCM0Q3RkYgLyogbWJt
YWxsb2MgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLworCQkxQ0QxODc4MjFE
NTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNh
ID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4
MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJ
bmFtZSA9ICJHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMiOworCQkJb3V0cHV0UGF0aHMgPSAoCisJ
CQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCQlzaGVs
bFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAibWtkaXIgLXAgXCIke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcbmNkIFwiJHtCVUlMVF9QUk9EVUNUU19E
SVJ9L0Rlcml2ZWRTb3VyY2VzL1dURlwiXG5lbnZcbi9iaW4vbG4gLXNmaCBcIiR7U1JDUk9PVH1c
IiBXVEZcbmV4cG9ydCBXVEY9XCJXVEZcIlxuXG5pZiBbICEgLWQgQnJlYWtpbmdSdWxlcyBdOyB0
aGVuXG4gICAgbWtkaXIgQnJlYWtpbmdSdWxlc1xuZmlcblxuaWYgWyBcIiRNQUNPU1hfREVQTE9Z
TUVOVF9UQVJHRVRcIiA9PSBcIjEwLjEwXCIgXSA7IHRoZW5cbiAgICBleHBvcnQgQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUPTBcbmVsc2VcbiAgICBleHBvcnQgQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUPTFcbmZpXG5cbmlmIFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4x
MFwiIF0gfHwgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEwLjExXCIgXSB8
fCBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTJcIiBdIHx8IFsgXCIk
U0RLX1ZFUlNJT05fTUFKT1JcIiA9PSBcIjkwMDAwXCIgXSB8fCBbIFwiJFNES19WRVJTSU9OX01B
Sk9SXCIgPT0gXCIxMDAwMDBcIiBdOyB0aGVuXG4gICAgZXhwb3J0IEhBVkVfSUNVR0VOQlJLPTBc
bmVsc2VcbiAgICBleHBvcnQgSEFWRV9JQ1VHRU5CUks9MVxuZmlcblxuaWYgWyBcIiR7QUNUSU9O
fVwiID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxcIiAtbyBcIiR7QUNU
SU9OfVwiID0gXCJpbnN0YWxsaGRyc1wiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxhcGlc
IiBdOyB0aGVuXG5tYWtlIC0tbm8tYnVpbHRpbi1ydWxlcyAtZiBcIldURi93dGYvRGVyaXZlZFNv
dXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9P
VD1cIiR7U0RLUk9PVH1cIlxuZmkiOworCQl9OwogCQk2NUFGQTE3MDE2MzBCOTc3MDAzRDcyM0Mg
LyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQ
aGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNjM2LDYgKzE3NDAs
OCBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJ
CUE4QTQ3Mzg2MTUxQTgyNUIwMDQxMjNGRiAvKiBBc3NlcnRpb25zLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUMyQ0EzN0YxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QTQ3NDM1MTUxQTgyNUIwMDQxMjNGRiAvKiBBdG9taWNTdHJpbmcuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNzBFQ0E2MEQxQjAyNDI2ODAwNDQ5NzM5IC8qIEF0b21pY1N0cmlu
Z0ltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVCQTE1RkExODI0MzVBNjAwQTgyRTY5IC8q
IEF0b21pY1N0cmluZ0ltcGxDRi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE2NjUsNiArMTc3MSw3
IEBACiAJCQkJQThBNDczQjAxNTFBODI1QjAwNDEyM0ZGIC8qIGRvdWJsZS1jb252ZXJzaW9uLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQkExNTFBODI1QjAwNDEyM0ZGIC8qIGR0b2EuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQjMxNTFBODI1QjAwNDEyM0ZGIC8qIGZhc3QtZHRv
YS5jYyBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjBGMzJG
MURGQ0JEMUIwMDQxNkQ2QyAvKiBMb2NrZWRQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEE0NzNDMzE1MUE4MjVCMDA0MTIzRkYgLyogRmFzdE1hbGxvYy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjlEMzM2MDE2NURCQTczMDA1QUQzODcgLyogRmlsZVByaW50U3RyZWFtLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMTY3OCw2ICsxNzg1LDcgQEAKIAkJCQlBOEE0NzNFOTE1MUE4
MjVCMDA0MTIzRkYgLyogTUQ1LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENTQ5N0FDMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRUMx
NTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QzJDQTM3RjAxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RD
SksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRjQxNTFBODI1QjAwNDEyM0ZGIC8qIE51
bWJlck9mQ29yZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3QzVGQjYxRDg4NUNGMjAwNDRG
NUUyIC8qIEZhc3RCaXRWZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRjcxNTFB
ODI1QjAwNDEyM0ZGIC8qIE9TQWxsb2NhdG9yUG9zaXguY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0x
Njg1LDYgKzE3OTMsNyBAQAogCQkJCUE4QTQ3NDAyMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdlQmxv
Y2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGRjE5REMxQkIzMzRFQjAwODg2RDkxIC8qIFBh
cmFsbGVsSGVscGVyUG9vbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjgyNEE2ODFCNzQ0M0Ew
MDAyRTM0NUQgLyogUGFya2luZ0xvdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRTFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlEQ0VFMjIwMzFDRUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDMzNjIxNjVE
QkE3MzAwNUFEMzg3IC8qIFByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0M0Y2
MTFGMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTcy
Nyw4ICsxODM2LDEyIEBACiAJCQkJMUMxODFDOTExRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJv
dmlkZXJMYXRpbjEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMxODFDOTMxRDMwN0FCODAwRjVG
QTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ2
OTE1MUE4MjVCMDA0MTIzRkYgLyogVVRGOC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdF
QzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFGQTQ3QzhBMTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3Jl
VGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTQ0NzlDMUI3QUFBMDMwMDk0OThFQiAv
KiBXb3JkTG9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZC
OTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VD
SksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBMEFEMzkx
QTk2MjQ1NTAwNTM2REY2IC8qIFdvcmtRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEw
QUQzRDFBOTYyNTNDMDA1MzZERjYgLyogV29ya1F1ZXVlQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDc0NDUxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTE3NDUsNiArMTg1OCwxMSBAQAogCQkJdGFyZ2V0ID0gNUQyNDdCNjExNDY4OUI4
NjAwRTc4Qjc2IC8qIFdURiAqLzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FFQzMxOEZDRTU3MDAw
QjNEN0ZGIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJMUNEMTg3ODgxRDU1
Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhU
YXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8q
IERlcml2ZWQgU291cmNlcyAqLzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3ODcxRDU1Njk4ODAw
Q0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJNjVBRkEyOEUxNjMw
Qjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhU
YXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8q
IENvcHkgV1RGIEhlYWRlcnMgKi87CkBAIC0xNzc0LDYgKzE4OTIsMzAgQEAKIAkJCX07CiAJCQlu
YW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERl
YnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmln
dXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVh
c2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9
ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQkxQ0Qx
ODc4NTFENTU2OTVDMDBDQzdERUMgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRD
b25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0
Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0
aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJ
CW5hbWUgPSBSZWxlYXNlOworCQl9OworCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJv
ZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNv
bmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdS
ZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05B
TUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9
OwogCQk1RDI0N0I2NDE0Njg5Qjg2MDBFNzhCNzYgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBY
Q0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQy
NDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKQEAgLTE4
NTcsNiArMTk5OSwxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwog
CQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3
ODMxRDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdn
cmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovID0geworCQkJaXNhID0gWENDb25maWd1
cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJMUNEMTg3ODQxRDU1
Njk1QzAwQ0M3REVDIC8qIERlYnVnICovLAorCQkJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAv
KiBSZWxlYXNlICovLAorCQkJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9u
ICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRl
ZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjVDMTQ2
ODlCODYwMEU3OEI3NiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3Qg
IldURiIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25m
aWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvYnJraXRl
ci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFhNWU1
NTI3OTYwOTBlYWViY2Q3Y2U3YjdkMjc1YWE4YjM3NzViNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvYnJraXRlci5oCkBAIC0wLDAgKzEsNjU1IEBACisvKgorKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxNCwgSW50ZXJu
YXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBB
bGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBi
cmtpdGVyLmgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAg
TmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwMi8xOC85NyAgICBhbGl1ICAgICAgICBBZGRl
ZCB0eXBlZGVmIGZvciBUZXh0Q291bnQuICBNYWRlIERPTkUgY29uc3QuCisqICAgMDUvMDcvOTcg
ICAgYWxpdSAgICAgICAgRml4ZWQgRExMIGRlY2xhcmF0aW9uLgorKiAgIDA3LzA5Lzk3ICAgIGpm
aXR6ICAgICAgIFJlbmFtZWQgQnJlYWtJdGVyYXRvciBhbmQgaW50ZXJmYWNlIHN5bmNlZCB3aXRo
IEpESworKiAgIDA4LzExLzk4ICAgIGhlbGVuYSAgICAgIFN5bmMtdXAgSkRLMS4yLgorKiAgIDAx
LzEzLzIwMDAgIGhlbGVuYSAgICAgIEFkZGVkIFVFcnJvckNvZGUgcGFyYW1ldGVyIHRvIGNyZWF0
ZVhYWEluc3RhbmNlIG1ldGhvZHMuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lm
bmRlZiBCUktJVEVSX0gKKyNkZWZpbmUgQlJLSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0
eXBlcy5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTogQnJlYWsgSXRlcmF0
b3IuCisgKi8KKworI2lmIFVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKK1VfTkFNRVNQQUNF
X0JFR0lOCisKKy8qCisgKiBBbGxvdyB0aGUgZGVjbGFyYXRpb24gb2YgQVBJcyB3aXRoIHBvaW50
ZXJzIHRvIEJyZWFrSXRlcmF0b3IKKyAqIGV2ZW4gd2hlbiBicmVhayBpdGVyYXRpb24gaXMgcmVt
b3ZlZCBmcm9tIHRoZSBidWlsZC4KKyAqLworY2xhc3MgQnJlYWtJdGVyYXRvcjsKKworVV9OQU1F
U1BBQ0VfRU5ECisKKyNlbHNlCisKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNs
dWRlICJ1bmljb2RlL3VuaXN0ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKyNp
bmNsdWRlICJ1bmljb2RlL2xvY2lkLmgiCisjaW5jbHVkZSAidW5pY29kZS91YnJrLmgiCisjaW5j
bHVkZSAidW5pY29kZS9zdHJlbnVtLmgiCisjaW5jbHVkZSAidW5pY29kZS91dGV4dC5oIgorI2lu
Y2x1ZGUgInVuaWNvZGUvdW1pc2MuaCIKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBU
aGUgQnJlYWtJdGVyYXRvciBjbGFzcyBpbXBsZW1lbnRzIG1ldGhvZHMgZm9yIGZpbmRpbmcgdGhl
IGxvY2F0aW9uCisgKiBvZiBib3VuZGFyaWVzIGluIHRleHQuIEJyZWFrSXRlcmF0b3IgaXMgYW4g
YWJzdHJhY3QgYmFzZSBjbGFzcy4KKyAqIEluc3RhbmNlcyBvZiBCcmVha0l0ZXJhdG9yIG1haW50
YWluIGEgY3VycmVudCBwb3NpdGlvbiBhbmQgc2NhbiBvdmVyCisgKiB0ZXh0IHJldHVybmluZyB0
aGUgaW5kZXggb2YgY2hhcmFjdGVycyB3aGVyZSBib3VuZGFyaWVzIG9jY3VyLgorICogPHA+Cisg
KiBMaW5lIGJvdW5kYXJ5IGFuYWx5c2lzIGRldGVybWluZXMgd2hlcmUgYSB0ZXh0IHN0cmluZyBj
YW4gYmUgYnJva2VuCisgKiB3aGVuIGxpbmUtd3JhcHBpbmcuIFRoZSBtZWNoYW5pc20gY29ycmVj
dGx5IGhhbmRsZXMgcHVuY3R1YXRpb24gYW5kCisgKiBoeXBoZW5hdGVkIHdvcmRzLgorICogPHA+
CisgKiBTZW50ZW5jZSBib3VuZGFyeSBhbmFseXNpcyBhbGxvd3Mgc2VsZWN0aW9uIHdpdGggY29y
cmVjdAorICogaW50ZXJwcmV0YXRpb24gb2YgcGVyaW9kcyB3aXRoaW4gbnVtYmVycyBhbmQgYWJi
cmV2aWF0aW9ucywgYW5kCisgKiB0cmFpbGluZyBwdW5jdHVhdGlvbiBtYXJrcyBzdWNoIGFzIHF1
b3RhdGlvbiBtYXJrcyBhbmQgcGFyZW50aGVzZXMuCisgKiA8cD4KKyAqIFdvcmQgYm91bmRhcnkg
YW5hbHlzaXMgaXMgdXNlZCBieSBzZWFyY2ggYW5kIHJlcGxhY2UgZnVuY3Rpb25zLCBhcworICog
d2VsbCBhcyB3aXRoaW4gdGV4dCBlZGl0aW5nIGFwcGxpY2F0aW9ucyB0aGF0IGFsbG93IHRoZSB1
c2VyIHRvCisgKiBzZWxlY3Qgd29yZHMgd2l0aCBhIGRvdWJsZSBjbGljay4gV29yZCBzZWxlY3Rp
b24gcHJvdmlkZXMgY29ycmVjdAorICogaW50ZXJwcmV0YXRpb24gb2YgcHVuY3R1YXRpb24gbWFy
a3Mgd2l0aGluIGFuZCBmb2xsb3dpbmcKKyAqIHdvcmRzLiBDaGFyYWN0ZXJzIHRoYXQgYXJlIG5v
dCBwYXJ0IG9mIGEgd29yZCwgc3VjaCBhcyBzeW1ib2xzIG9yCisgKiBwdW5jdHVhdGlvbiBtYXJr
cywgaGF2ZSB3b3JkLWJyZWFrcyBvbiBib3RoIHNpZGVzLgorICogPHA+CisgKiBDaGFyYWN0ZXIg
Ym91bmRhcnkgYW5hbHlzaXMgYWxsb3dzIHVzZXJzIHRvIGludGVyYWN0IHdpdGgKKyAqIGNoYXJh
Y3RlcnMgYXMgdGhleSBleHBlY3QgdG8sIGZvciBleGFtcGxlLCB3aGVuIG1vdmluZyB0aGUgY3Vy
c29yCisgKiB0aHJvdWdoIGEgdGV4dCBzdHJpbmcuIENoYXJhY3RlciBib3VuZGFyeSBhbmFseXNp
cyBwcm92aWRlcyBjb3JyZWN0CisgKiBuYXZpZ2F0aW9uIG9mIHRocm91Z2ggY2hhcmFjdGVyIHN0
cmluZ3MsIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZQorICogY2hhcmFjdGVyIGlzIHN0b3JlZC4gIEZv
ciBleGFtcGxlLCBhbiBhY2NlbnRlZCBjaGFyYWN0ZXIgbWlnaHQgYmUKKyAqIHN0b3JlZCBhcyBh
IGJhc2UgY2hhcmFjdGVyIGFuZCBhIGRpYWNyaXRpY2FsIG1hcmsuIFdoYXQgdXNlcnMKKyAqIGNv
bnNpZGVyIHRvIGJlIGEgY2hhcmFjdGVyIGNhbiBkaWZmZXIgYmV0d2VlbiBsYW5ndWFnZXMuCisg
KiA8cD4KKyAqIFRoZSB0ZXh0IGJvdW5kYXJ5IHBvc2l0aW9ucyBhcmUgZm91bmQgYWNjb3JkaW5n
IHRvIHRoZSBydWxlcworICogZGVzY3JpYmVkIGluIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXggIzI5
LCBUZXh0IEJvdW5kYXJpZXMsIGFuZAorICogVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMTQsIExp
bmUgQnJlYWtpbmcgUHJvcGVydGllcy4gIFRoZXNlCisgKiBhcmUgYXZhaWxhYmxlIGF0IGh0dHA6
Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjE0LyBhbmQKKyAqIGh0dHA6Ly93d3cudW5pY29k
ZS5vcmcvcmVwb3J0cy90cjI5Ly4KKyAqIDxwPgorICogSW4gYWRkaXRpb24gdG8gdGhlIEMrKyBB
UEkgZGVmaW5lZCBpbiB0aGlzIGhlYWRlciBmaWxlLCBhCisgKiBwbGFpbiBDIEFQSSB3aXRoIGVx
dWl2YWxlbnQgZnVuY3Rpb25hbGl0eSBpcyBkZWZpbmVkIGluIHRoZQorICogZmlsZSB1YnJrLmgK
KyAqIDxwPgorICogQ29kZSBzbmlwcGV0cyBpbGx1c3RyYXRpbmcgdGhlIHVzZSBvZiB0aGUgQnJl
YWsgSXRlcmF0b3IgQVBJcworICogYXJlIGF2YWlsYWJsZSBpbiB0aGUgSUNVIFVzZXIgR3VpZGUs
CisgKiBodHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9ib3VuZGFyeUFuYWx5c2lzLmh0
bWwKKyAqIGFuZCBpbiB0aGUgc2FtcGxlIHByb2dyYW0gaWN1L3NvdXJjZS9zYW1wbGVzL2JyZWFr
L2JyZWFrLmNwcAorICoKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIEJyZWFrSXRlcmF0b3IgOiBw
dWJsaWMgVU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogIGRlc3RydWN0b3IKKyAg
ICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+QnJlYWtJdGVyYXRv
cigpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgYW5vdGhlciBvYmplY3QgaXMg
c2VtYW50aWNhbGx5IGVxdWFsIHRvIHRoaXMKKyAgICAgKiBvbmUuIFRoZSBvdGhlciBvYmplY3Qg
c2hvdWxkIGJlIGFuIGluc3RhbmNlIG9mIHRoZSBzYW1lIHN1YmNsYXNzIG9mCisgICAgICogQnJl
YWtJdGVyYXRvci4gT2JqZWN0cyBvZiBkaWZmZXJlbnQgc3ViY2xhc3NlcyBhcmUgY29uc2lkZXJl
ZAorICAgICAqIHVuZXF1YWwuCisgICAgICogPFA+CisgICAgICogUmV0dXJuIHRydWUgaWYgdGhp
cyBCcmVha0l0ZXJhdG9yIGlzIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZQorICAgICAqIHNh
bWUgdGV4dCwgYW5kIGlzIHRoZSBzYW1lIGNsYXNzIGFuZCB0eXBlICh3b3JkLCBsaW5lLCBldGMu
KSBvZgorICAgICAqIEJyZWFrSXRlcmF0b3IsIGFzIHRoZSBhcmd1bWVudC4gIFRleHQgaXMgY29u
c2lkZXJlZCB0aGUgc2FtZSBpZgorICAgICAqIGl0IGNvbnRhaW5zIHRoZSBzYW1lIGNoYXJhY3Rl
cnMsIGl0IG5lZWQgbm90IGJlIHRoZSBzYW1lCisgICAgICogb2JqZWN0LCBhbmQgc3R5bGVzIGFy
ZSBub3QgY29uc2lkZXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29uc3QgQnJlYWtJdGVyYXRvciYpIGNvbnN0ID0gMDsK
KworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvbXBsZW1lbnQgb2YgdGhlIHJlc3VsdCBv
ZiBvcGVyYXRvcj09CisgICAgICogQHBhcmFtIHJocyBUaGUgQnJlYWtJdGVyYXRvciB0byBiZSBj
b21wYXJlZCBmb3IgaW5lcXVhbGl0eQorICAgICAqIEByZXR1cm4gdGhlIGNvbXBsZW1lbnQgb2Yg
dGhlIHJlc3VsdCBvZiBvcGVyYXRvcj09CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgVUJvb2wgb3BlcmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiByaHMpIGNvbnN0IHsg
cmV0dXJuICFvcGVyYXRvcj09KHJocyk7IH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHBv
bHltb3JwaGljIGNvcHkgb2YgdGhpcyBvYmplY3QuICBUaGlzIGlzIGFuIGFic3RyYWN0CisgICAg
ICogbWV0aG9kIHdoaWNoIHN1YmNsYXNzZXMgaW1wbGVtZW50LgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciogY2xvbmUodm9pZCkgY29u
c3QgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcG9seW1vcnBoaWMgY2xhc3MgSUQg
Zm9yIHRoaXMgb2JqZWN0LiBEaWZmZXJlbnQgc3ViY2xhc3NlcworICAgICAqIHdpbGwgcmV0dXJu
IGRpc3RpbmN0IHVuZXF1YWwgdmFsdWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3QgPSAw
OworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUg
dGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yJiBnZXRUZXh0KHZvaWQpIGNvbnN0ID0gMDsKKwor
CisgICAgLyoqCisgICAgICAqICBHZXQgYSBVVGV4dCBmb3IgdGhlIHRleHQgYmVpbmcgYW5hbHl6
ZWQuCisgICAgICAqICBUaGUgcmV0dXJuZWQgVVRleHQgaXMgYSBzaGFsbG93IGNsb25lIG9mIHRo
ZSBVVGV4dCB1c2VkIGludGVybmFsbHkKKyAgICAgICogIGJ5IHRoZSBicmVhayBpdGVyYXRvciBp
bXBsZW1lbnRhdGlvbi4gIEl0IGNhbiBzYWZlbHkgYmUgdXNlZCB0bworICAgICAgKiAgYWNjZXNz
IHRoZSB0ZXh0IHdpdGhvdXQgaW1wYWN0aW5nIGFueSBicmVhayBpdGVyYXRvciBvcGVyYXRpb25z
LAorICAgICAgKiAgYnV0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmIG11c3Qgbm90IGJlIGFs
dGVyZWQuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBmaWxsSW4gQSBVVGV4dCB0byBiZSBmaWxs
ZWQgaW4uICBJZiBOVUxMLCBhIG5ldyBVVGV4dCB3aWxsIGJlCisgICAgICAqICAgICAgICAgICBh
bGxvY2F0ZWQgdG8gaG9sZCB0aGUgcmVzdWx0LgorICAgICAgKiBAcGFyYW0gc3RhdHVzIHJlY2Vp
dmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgICogQHJldHVybiAgIFRoZSBjdXJyZW50IFVUZXh0
IGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiAgSWYgYW4gaW5wdXQKKyAgICAgICogICAgICAgICAg
IFVUZXh0IHdhcyBwcm92aWRlZCwgaXQgd2lsbCBhbHdheXMgYmUgcmV0dXJuZWQuCisgICAgICAq
IEBzdGFibGUgSUNVIDMuNAorICAgICAgKi8KKyAgICAgdmlydHVhbCBVVGV4dCAqZ2V0VVRleHQo
VVRleHQgKmZpbGxJbiwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdCA9IDA7CisKKyAgICAvKioK
KyAgICAgKiBDaGFuZ2UgdGhlIHRleHQgb3ZlciB3aGljaCB0aGlzIG9wZXJhdGVzLiBUaGUgdGV4
dCBib3VuZGFyeSBpcworICAgICAqIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKiBAcGFyYW0g
dGV4dCBUaGUgVW5pY29kZVN0cmluZyB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoY29uc3Qg
VW5pY29kZVN0cmluZyAmdGV4dCkgPSAwOworCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGJy
ZWFrIGl0ZXJhdG9yIHRvIG9wZXJhdGUgb3ZlciB0aGUgdGV4dCByZXByZXNlbnRlZCBieQorICAg
ICAqIHRoZSBVVGV4dC4gIFRoZSBpdGVyYXRvciBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgc3Rh
cnQuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBjbG9uZSBv
ZiB0aGUgc3VwcGxpZWQgVVRleHQuICBUaGlzIG1lYW5zCisgICAgICogdGhhdCB0aGUgY2FsbGVy
IGlzIGZyZWUgdG8gaW1tZWRpYXRlbHkgY2xvc2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRoZQorICAg
ICAqIFV0ZXh0IHRoYXQgd2FzIHBhc3NlZCBhcyBhIHBhcmFtZXRlciwgYnV0IHRoYXQgdGhlIHVu
ZGVybHlpbmcgdGV4dCBpdHNlbGYKKyAgICAgKiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdoaWxlIGJl
aW5nIHJlZmVyZW5jZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQWxs
IGluZGV4IHBvc2l0aW9ucyByZXR1cm5lZCBieSBicmVhayBpdGVyYXRvciBmdW5jdGlvbnMgYXJl
CisgICAgICogbmF0aXZlIGluZGljZXMgZnJvbSB0aGUgVVRleHQuIEZvciBleGFtcGxlLCB3aGVu
IGJyZWFraW5nIFVURi04CisgICAgICogZW5jb2RlZCB0ZXh0LCB0aGUgYnJlYWsgcG9zaXRpb25z
IHJldHVybmVkIGJ5IG5leHQoKSwgcHJldmlvdXMoKSwgZXRjLgorICAgICAqIHdpbGwgYmUgVVRG
LTggc3RyaW5nIGluZGljZXMsIG5vdCBVVEYtMTYgcG9zaXRpb25zLgorICAgICAqCisgICAgICog
QHBhcmFtIHRleHQgVGhlIFVUZXh0IHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBw
YXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAqIEBzdGFibGUgSUNV
IDMuNAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChVVGV4dCAqdGV4dCwgVUVy
cm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDaGFuZ2UgdGhlIHRleHQg
b3ZlciB3aGljaCB0aGlzIG9wZXJhdGVzLiBUaGUgdGV4dCBib3VuZGFyeSBpcworICAgICAqIHJl
c2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKiBOb3RlIHRoYXQgc2V0VGV4dChVVGV4dCAqKSBwcm92
aWRlcyBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgdG8gdGhpcyBmdW5jdGlvbiwKKyAgICAgKiBhbmQg
aXMgbW9yZSBlZmZpY2llbnQuCisgICAgICogQHBhcmFtIGl0IFRoZSBDaGFyYWN0ZXJJdGVyYXRv
ciB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIHZvaWQgIGFkb3B0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciogaXQpID0g
MDsKKworICAgIGVudW0geworICAgICAgICAvKioKKyAgICAgICAgICogRE9ORSBpcyByZXR1cm5l
ZCBieSBwcmV2aW91cygpIGFuZCBuZXh0KCkgYWZ0ZXIgYWxsIHZhbGlkCisgICAgICAgICAqIGJv
dW5kYXJpZXMgaGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgICAgICovCisgICAgICAgIERPTkUgPSAoaW50MzJfdCktMQorICAgIH07CisKKyAgICAv
KioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVn
aW5uaW5nIG9mIHRoZSB0ZXh0LCBwb3NpdGlvbiB6ZXJvLgorICAgICAqIEByZXR1cm4gVGhlIG9m
ZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCB6ZXJvLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmaXJzdCh2b2lkKSA9IDA7CisK
KyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBpbmRleCBp
bW1lZGlhdGVseSBCRVlPTkQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJlaW5nIHNj
YW5uZWQuCisgICAgICogQHJldHVybiBUaGUgaW5kZXggaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBs
YXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCBiZWluZyBzY2FubmVkLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBsYXN0KHZvaWQpID0gMDsKKwor
ICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGJvdW5kYXJ5
IHByZWNlZGluZyB0aGUgY3VycmVudCBib3VuZGFyeS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFy
YWN0ZXIgaW5kZXggb2YgdGhlIHByZXZpb3VzIHRleHQgYm91bmRhcnkgb3IgRE9ORSBpZiBhbGwK
KyAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJldmlvdXModm9pZCkgPSAwOwor
CisgICAgLyoqCisgICAgICogQWR2YW5jZSB0aGUgaXRlcmF0b3IgdG8gdGhlIGJvdW5kYXJ5IGZv
bGxvd2luZyB0aGUgY3VycmVudCBib3VuZGFyeS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0
ZXIgaW5kZXggb2YgdGhlIG5leHQgdGV4dCBib3VuZGFyeSBvciBET05FIGlmIGFsbAorICAgICAq
IGJvdW5kYXJpZXMgaGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KHZvaWQpID0gMDsKKworICAgIC8qKgor
ICAgICAqIFJldHVybiBjaGFyYWN0ZXIgaW5kZXggb2YgdGhlIGN1cnJlbnQgaW50ZXJhdG9yIHBv
c2l0aW9uIHdpdGhpbiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSBib3VuZGFyeSBtb3N0
IHJlY2VudGx5IHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBjdXJyZW50KHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAg
ICAqIEFkdmFuY2UgdGhlIGl0ZXJhdG9yIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBmb2xsb3dpbmcg
dGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5
cyBncmVhdGVyIHRoYW4gdGhlIG9mZnNldCBvcgorICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0ZXJh
dG9yLkRPTkUKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nhbm5p
bmcuCisgICAgICogQHJldHVybiBUaGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhlIHNwZWNpZmll
ZCBvZmZzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBp
bnQzMl90IGZvbGxvd2luZyhpbnQzMl90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICog
U2V0IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgZmlyc3QgYm91bmRhcnkgcHJlY2VkaW5n
IHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhbHdh
eXMgc21hbGxlciB0aGFuIHRoZSBvZmZzZXQgb3IKKyAgICAgKiB0aGUgdmFsdWUgQnJlYWtJdGVy
YXRvci5ET05FCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGJlZ2luIHNjYW5u
aW5nLgorICAgICAqIEByZXR1cm4gVGhlIGZpcnN0IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3BlY2lm
aWVkIG9mZnNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IGludDMyX3QgcHJlY2VkaW5nKGludDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc3BlY2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3Np
dGlvbi4KKyAgICAgKiBBcyBhIHNpZGUgZWZmZWN0LCB0aGUgY3VycmVudCBwb3NpdGlvbiBvZiB0
aGUgaXRlcmF0b3IgaXMgc2V0CisgICAgICogdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9u
IGF0IG9yIGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBAcGFyYW0gb2Zm
c2V0IHRoZSBvZmZzZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBUcnVlIGlmICJvZmZzZXQi
IGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBVQm9vbCBpc0JvdW5kYXJ5KGludDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBudGggYm91bmRh
cnkgZnJvbSB0aGUgY3VycmVudCBib3VuZGFyeQorICAgICAqIEBwYXJhbSBuIHRoZSBudW1iZXIg
b2YgYm91bmRhcmllcyB0byBtb3ZlIGJ5LiAgQSB2YWx1ZSBvZiAwCisgICAgICogZG9lcyBub3Ro
aW5nLiAgTmVnYXRpdmUgdmFsdWVzIG1vdmUgdG8gcHJldmlvdXMgYm91bmRhcmllcworICAgICAq
IGFuZCBwb3NpdGl2ZSB2YWx1ZXMgbW92ZSB0byBsYXRlciBib3VuZGFyaWVzLgorICAgICAqIEBy
ZXR1cm4gVGhlIG5ldyBpdGVyYXRvciBwb3NpdGlvbiwgb3IKKyAgICAgKiBET05FIGlmIHRoZXJl
IGFyZSBmZXdlciB0aGFuIHxufCBib3VuZGFyaWVzIGluIHRoZSBzcGVjZmllZCBkaXJlY3Rpb24u
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IG5l
eHQoaW50MzJfdCBuKSA9IDA7CisKKyAgIC8qKgorICAgICAqIEZvciBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9ycywgcmV0dXJuIHRoZSBzdGF0dXMgdGFnIGZyb20gdGhlIAorICAgICAqIGJyZWFrIHJ1
bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogcmV0dXJuZWQgYnJl
YWsgcG9zaXRpb24uCisgICAgICogPHA+CisgICAgICogRm9yIGJyZWFrIGl0ZXJhdG9yIHR5cGVz
IHRoYXQgZG8gbm90IHN1cHBvcnQgYSBydWxlIHN0YXR1cywKKyAgICAgKiBhIGRlZmF1bHQgdmFs
dWUgb2YgMCBpcyByZXR1cm5lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGF0
dXMgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkK
KyAgICAgKiAgICAgICAgIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIEBzZWUgUnVs
ZUJhc2VCcmVha0l0ZXJhdG9yOjpnZXRSdWxlU3RhdHVzKCkKKyAgICAgKiBAc2VlIFVXb3JkQnJl
YWsKKyAgICAgKiBAc3RhYmxlIElDVSA1MgorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBn
ZXRSdWxlU3RhdHVzKCkgY29uc3Q7CisKKyAgIC8qKgorICAgICogRm9yIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3JzLCBnZXQgdGhlIHN0YXR1cyAodGFnKSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsgcnVs
ZShzKSAKKyAgICAqIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseSByZXR1cm5lZCBi
cmVhayBwb3NpdGlvbi4KKyAgICAqIDxwPgorICAgICogRm9yIGJyZWFrIGl0ZXJhdG9yIHR5cGVz
IHRoYXQgZG8gbm90IHN1cHBvcnQgcnVsZSBzdGF0dXMsCisgICAgKiBubyB2YWx1ZXMgYXJlIHJl
dHVybmVkLgorICAgICogPHA+CisgICAgKiBUaGUgcmV0dXJuZWQgc3RhdHVzIHZhbHVlKHMpIGFy
ZSBzdG9yZWQgaW50byBhbiBhcnJheSBwcm92aWRlZCBieSB0aGUgY2FsbGVyLgorICAgICogVGhl
IHZhbHVlcyBhcmUgc3RvcmVkIGluIHNvcnRlZCAoYXNjZW5kaW5nKSBvcmRlci4KKyAgICAqIElm
IHRoZSBjYXBhY2l0eSBvZiB0aGUgb3V0cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xk
IHRoZSBkYXRhLAorICAgICogIHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2
YWlsYWJsZSBsZW5ndGgsIGFuZCBhCisgICAgKiAgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1Igd2ls
bCBiZSBzaWduYWxlZC4KKyAgICAqIDxwPgorICAgICogQHNlZSBSdWxlQmFzZUJyZWFrSXRlcmF0
b3I6OmdldFJ1bGVTdGF0dXNWZWMKKyAgICAqCisgICAgKiBAcGFyYW0gZmlsbEluVmVjIGFuIGFy
cmF5IHRvIGJlIGZpbGxlZCBpbiB3aXRoIHRoZSBzdGF0dXMgdmFsdWVzLgorICAgICogQHBhcmFt
IGNhcGFjaXR5ICB0aGUgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0aCBv
ZiB6ZXJvIGNhdXNlcworICAgICogICAgICAgICAgICAgICAgICB0aGUgZnVuY3Rpb24gdG8gcmV0
dXJuIHRoZSBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcywgaW4gdGhlCisgICAgKiAgICAgICAgICAg
ICAgICAgIG5vcm1hbCB3YXksIHdpdGhvdXQgYXR0ZW10cGluZyB0byBzdG9yZSBhbnkgdmFsdWVz
LgorICAgICogQHBhcmFtIHN0YXR1cyAgICByZWNlaXZlcyBlcnJvciBjb2Rlcy4KKyAgICAqIEBy
ZXR1cm4gICAgICAgICAgVGhlIG51bWJlciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxl
cyB0aGF0IGRldGVybWluZWQKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50
IGJvdW5kYXJ5IHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAqICAgICAgICAg
ICAgICAgICAgSW4gdGhlIGV2ZW50IG9mIGEgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRoZSBy
ZXR1cm4gdmFsdWUKKyAgICAqICAgICAgICAgICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBv
ZiBzdGF0dXMgdmFsdWVzIHRoYXQgd2VyZSBhdmFpbGFibGUsCisgICAgKiAgICAgICAgICAgICAg
ICAgIG5vdCB0aGUgcmVkdWNlZCBudW1iZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgor
ICAgICogQHNlZSBnZXRSdWxlU3RhdHVzCisgICAgKiBAc3RhYmxlIElDVSA1MgorICAgICovCisg
ICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXNWZWMoaW50MzJfdCAqZmlsbEluVmVjLCBp
bnQzMl90IGNhcGFjaXR5LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICog
Q3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIHdvcmQtYnJlYWtzIHVzaW5nIHRoZSBnaXZlbiBsb2Nh
bGUuCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVt
ZW50aW5nIHdvcmQgYnJlYWtzLgorICAgICAqIFdvcmRCcmVhayBpcyB1c2VmdWwgZm9yIHdvcmQg
c2VsZWN0aW9uIChleC4gZG91YmxlIGNsaWNrKQorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9j
YWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGVycm9yIGNvZGUKKyAgICAgKiBAcmV0dXJu
IEEgQnJlYWtJdGVyYXRvciBmb3Igd29yZC1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVz
CisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0
byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3Vj
Y2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NV
Q0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQor
ICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0
aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGlu
ZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4
YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJl
LCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRp
Y2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0
aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVz
CisgICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1
cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBP
UlQyCisgICAgY3JlYXRlV29yZEluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNv
ZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3Ig
bGluZS1icmVha3MgdXNpbmcgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBSZXR1cm5zIGFuIGlu
c3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgbGluZSBicmVha3MuIExpbmUK
KyAgICAgKiBicmVha3MgYXJlIGxvZ2ljYWxseSBwb3NzaWJsZSBsaW5lIGJyZWFrcywgYWN0dWFs
IGxpbmUgYnJlYWtzIGFyZQorICAgICAqIHVzdWFsbHkgZGV0ZXJtaW5lZCBiYXNlZCBvbiBkaXNw
bGF5IHdpZHRoLgorICAgICAqIExpbmVCcmVhayBpcyB1c2VmdWwgZm9yIHdvcmQgd3JhcHBpbmcg
dGV4dC4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3Rh
dHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciBs
aW5lLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMg
dXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRv
IGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hv
dWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdp
c2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBp
bmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4K
KyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJh
Y2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVx
dWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICog
dXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0
IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2Nh
bGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3Vu
ZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVz
cG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVMaW5lSW5z
dGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8q
KgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBjaGFyYWN0ZXItYnJlYWtzIHVzaW5n
IHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJ
dGVyYXRvciBpbXBsZW1lbnRpbmcgY2hhcmFjdGVyIGJyZWFrcy4KKyAgICAgKiBDaGFyYWN0ZXIg
YnJlYWtzIGFyZSBib3VuZGFyaWVzIG9mIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVuY2VzLgor
ICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhl
IGVycm9yIGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIGNoYXJhY3Rl
ci1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVz
ZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBj
aGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3Vs
ZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNo
IG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5m
b3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisg
ICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNr
IGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVl
c3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVz
ZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBs
b2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxl
IG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQu
CisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3Bv
bnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlQ2hhcmFjdGVy
SW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAg
IC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBzZW50ZW5jZS1icmVha3MgdXNp
bmcgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVh
a0l0ZXJhdG9yIGltcGxlbWVudGluZyBzZW50ZW5jZSBicmVha3MuCisgICAgICogQHBhcmFtIHdo
ZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAg
ICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3Igc2VudGVuY2UtYnJlYWtzLiAgVGhlIFVF
cnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0
dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUg
Y29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0
aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGlu
Zm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3Ig
cmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFM
TEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQu
ICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5n
IHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZB
VUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisg
ICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBm
YWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxs
ZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRp
bmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFr
SXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZVNlbnRlbmNlSW5zdGFuY2UoY29uc3QgTG9j
YWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENyZWF0
ZSBCcmVha0l0ZXJhdG9yIGZvciB0aXRsZS1jYXNpbmcgYnJlYWtzIHVzaW5nIHRoZSBzcGVjaWZp
ZWQgbG9jYWxlCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3Ig
aW1wbGVtZW50aW5nIHRpdGxlIGJyZWFrcy4KKyAgICAgKiBUaGUgaXRlcmF0b3IgcmV0dXJuZWQg
bG9jYXRlcyB0aXRsZSBib3VuZGFyaWVzIGFzIGRlc2NyaWJlZCBmb3IKKyAgICAgKiBVbmljb2Rl
IDMuMiBvbmx5LiBGb3IgVW5pY29kZSA0LjAgYW5kIGFib3ZlIHRpdGxlIGJvdW5kYXJ5IGl0ZXJh
dGlvbiwKKyAgICAgKiBwbGVhc2UgdXNlIFdvcmQgQm91bmRhcnkgaXRlcmF0b3Iue0BsaW5rICNj
cmVhdGVXb3JkSW5zdGFuY2UgfQorICAgICAqCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2Nh
bGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJu
IEEgQnJlYWtJdGVyYXRvciBmb3IgdGl0bGUtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1
cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24g
dG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1
Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9T
VUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UK
KyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBz
dGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBp
bmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBl
eGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVy
ZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5k
aWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVp
dGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxl
cworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0
dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQ
T1JUMgorICAgIGNyZWF0ZVRpdGxlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9y
Q29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc2V0IG9mIExvY2FsZXMg
Zm9yIHdoaWNoIFRleHRCb3VuZGFyaWVzIGFyZSBpbnN0YWxsZWQuCisgICAgICogPHA+PGI+Tm90
ZTo8L2I+IHRoaXMgd2lsbCBub3QgcmV0dXJuIGxvY2FsZXMgYWRkZWQgdGhyb3VnaCB0aGUgcmVn
aXN0ZXIKKyAgICAgKiBjYWxsLiBUbyBzZWUgdGhlIHJlZ2lzdGVyZWQgbG9jYWxlcyB0b28sIHVz
ZSB0aGUgZ2V0QXZhaWxhYmxlTG9jYWxlcworICAgICAqIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBh
IFN0cmluZ0VudW1lcmF0aW9uIG9iamVjdCA8L3A+CisgICAgICogQHBhcmFtIGNvdW50IHRoZSBv
dXRwdXQgcGFyYW1ldGVyIG9mIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgbG9jYWxlIGxpc3QK
KyAgICAgKiBAcmV0dXJuIGF2YWlsYWJsZSBsb2NhbGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSogVV9FWFBPUlQyIGdldEF2YWlsYWJs
ZUxvY2FsZXMoaW50MzJfdCYgY291bnQpOworCisgICAgLyoqCisgICAgICogR2V0IG5hbWUgb2Yg
dGhlIG9iamVjdCBmb3IgdGhlIGRlc2lyZWQgTG9jYWxlLCBpbiB0aGUgZGVzaXJlZCBsYW5nYXVn
ZS4KKyAgICAgKiBAcGFyYW0gb2JqZWN0TG9jYWxlIG11c3QgYmUgZnJvbSBnZXRBdmFpbGFibGVM
b2NhbGVzLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHNwZWNpZmllcyB0aGUgZGVzaXJl
ZCBsb2NhbGUgZm9yIG91dHB1dC4KKyAgICAgKiBAcGFyYW0gbmFtZSB0aGUgZmlsbC1pbiBwYXJh
bWV0ZXIgb2YgdGhlIHJldHVybiB2YWx1ZQorICAgICAqIFVzZXMgYmVzdCBtYXRjaC4KKyAgICAg
KiBAcmV0dXJuIHVzZXItZGlzcGxheWFibGUgbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBVX0VYUE9SVDIgZ2V0RGlzcGxheU5h
bWUoY29uc3QgTG9jYWxlJiBvYmplY3RMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgbmFtZSk7CisKKyAg
ICAvKioKKyAgICAgKiBHZXQgbmFtZSBvZiB0aGUgb2JqZWN0IGZvciB0aGUgZGVzaXJlZCBMb2Nh
bGUsIGluIHRoZSBsYW5nYXVnZSBvZiB0aGUKKyAgICAgKiBkZWZhdWx0IGxvY2FsZS4KKyAgICAg
KiBAcGFyYW0gb2JqZWN0TG9jYWxlIG11c3QgYmUgZnJvbSBnZXRNYXRjaGluZ0xvY2FsZXMKKyAg
ICAgKiBAcGFyYW0gbmFtZSB0aGUgZmlsbC1pbiBwYXJhbWV0ZXIgb2YgdGhlIHJldHVybiB2YWx1
ZQorICAgICAqIEByZXR1cm4gdXNlci1kaXNwbGF5YWJsZSBuYW1lCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVuaWNvZGVTdHJpbmcmIFVfRVhQT1JUMiBnZXRE
aXNwbGF5TmFtZShjb25zdCBMb2NhbGUmIG9iamVjdExvY2FsZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgbmFtZSk7CisKKyAgICAvKioK
KyAgICAgKiBEZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisg
ICAgICoKKyAgICAgKiBUaHJlYWQgc2FmZSBjbGllbnQtYnVmZmVyLWJhc2VkIGNsb25pbmcgb3Bl
cmF0aW9uCisgICAgICogICAgRG8gTk9UIGNhbGwgZGVsZXRlIG9uIGEgc2FmZWNsb25lLCBzaW5j
ZSAnbmV3JyBpcyBub3QgdXNlZCB0byBjcmVhdGUgaXQuCisgICAgICogQHBhcmFtIHN0YWNrQnVm
ZmVyIHVzZXIgYWxsb2NhdGVkIHNwYWNlIGZvciB0aGUgbmV3IGNsb25lLiBJZiBOVUxMIG5ldyBt
ZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogSWYgYnVmZmVyIGlzIG5vdCBsYXJnZSBl
bm91Z2gsIG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogQHBhcmFtIEJ1ZmZl
clNpemUgcmVmZXJlbmNlIHRvIHNpemUgb2YgYWxsb2NhdGVkIHNwYWNlLgorICAgICAqIElmIEJ1
ZmZlclNpemUgPT0gMCwgYSBzdWZmaWNpZW50IHNpemUgZm9yIHVzZSBpbiBjbG9uaW5nIHdpbGwK
KyAgICAgKiBiZSByZXR1cm5lZCAoJ3ByZS1mbGlnaHRpbmcnKQorICAgICAqIElmIEJ1ZmZlclNp
emUgaXMgbm90IGVub3VnaCBmb3IgYSBzdGFjay1iYXNlZCBzYWZlIGNsb25lLAorICAgICAqIG5l
dyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogQHBhcmFtIHN0YXR1cyB0byBpbmRp
Y2F0ZSB3aGV0aGVyIHRoZSBvcGVyYXRpb24gd2VudCBvbiBzbW9vdGhseSBvciB0aGVyZSB3ZXJl
IGVycm9ycworICAgICAqICBBbiBpbmZvcm1hdGlvbmFsIHN0YXR1cyB2YWx1ZSwgVV9TQUZFQ0xP
TkVfQUxMT0NBVEVEX0VSUk9SLCBpcyB1c2VkIGlmIGFueSBhbGxvY2F0aW9ucyB3ZXJlCisgICAg
ICogIG5lY2Vzc2FyeS4KKyAgICAgKiBAcmV0dXJuIHBvaW50ZXIgdG8gdGhlIG5ldyBjbG9uZQor
ICAgICAqCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgor
ICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciAqICBjcmVhdGVCdWZmZXJDbG9uZSh2
b2lkICpzdGFja0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50MzJfdCAmQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyNpZm5kZWYg
VV9ISURFX0RFUFJFQ0FURURfQVBJCisKKyAgICAvKioKKyAgICAgKiAgIERldGVybWluZSB3aGV0
aGVyIHRoZSBCcmVha0l0ZXJhdG9yIHdhcyBjcmVhdGVkIGluIHVzZXIgbWVtb3J5IGJ5CisgICAg
ICogICBjcmVhdGVCdWZmZXJDbG9uZSgpLCBhbmQgdGh1cyBzaG91bGQgbm90IGJlIGRlbGV0ZWQu
ICBTdWNoIG9iamVjdHMKKyAgICAgKiAgIG11c3QgYmUgY2xvc2VkIGJ5IGFuIGV4cGxpY2l0IGNh
bGwgdG8gdGhlIGRlc3RydWN0b3IgKG5vdCBkZWxldGUpLgorICAgICAqIEBkZXByZWNhdGVkIElD
VSA1Mi4gQWx3YXlzIGRlbGV0ZSB0aGUgQnJlYWtJdGVyYXRvci4KKyAgICAgKi8KKyAgICBpbmxp
bmUgVUJvb2wgaXNCdWZmZXJDbG9uZSh2b2lkKTsKKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNB
VEVEX0FQSSAqLworCisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorICAgIC8qKgorICAgICAqIFJl
Z2lzdGVyIGEgbmV3IGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBpbmRpY2F0ZWQga2luZCwgdG8gdXNl
IGluIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogVGhlIGJyZWFrIGl0ZXJhdG9yIHdpbGwgYmUg
YWRvcHRlZC4gIENsb25lcyBvZiB0aGUgaXRlcmF0b3Igd2lsbCBiZSByZXR1cm5lZAorICAgICAq
IGlmIGEgcmVxdWVzdCBmb3IgYSBicmVhayBpdGVyYXRvciBvZiB0aGUgZ2l2ZW4ga2luZCBtYXRj
aGVzIG9yIGZhbGxzIGJhY2sgdG8KKyAgICAgKiB0aGlzIGxvY2FsZS4KKyAgICAgKiBCZWNhdXNl
IElDVSBtYXkgY2hvb3NlIHRvIGNhY2hlIEJyZWFrSXRlcmF0b3JzIGludGVybmFsbHksIHRoaXMg
bXVzdAorICAgICAqIGJlIGNhbGxlZCBhdCBhcHBsaWNhdGlvbiBzdGFydHVwLCBwcmlvciB0byBh
bnkgY2FsbHMgdG8KKyAgICAgKiBCcmVha0l0ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0byBh
dm9pZCB1bmRlZmluZWQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIHRvQWRvcHQgdGhlIEJyZWFr
SXRlcmF0b3IgaW5zdGFuY2UgdG8gYmUgYWRvcHRlZAorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhl
IExvY2FsZSBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAg
ICogQHBhcmFtIGtpbmQgdGhlIHR5cGUgb2YgaXRlcmF0b3IgZm9yIHdoaWNoIHRoaXMgaW5zdGFu
Y2UgaXMgdG8gYmUgcmVnaXN0ZXJlZAorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGluL291dCBz
dGF0dXMgY29kZSwgbm8gc3BlY2lhbCBtZWFuaW5ncyBhcmUgYXNzaWduZWQKKyAgICAgKiBAcmV0
dXJuIGEgcmVnaXN0cnkga2V5IHRoYXQgY2FuIGJlIHVzZWQgdG8gdW5yZWdpc3RlciB0aGlzIGlu
c3RhbmNlCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgc3RhdGljIFVSZWdp
c3RyeUtleSBVX0VYUE9SVDIgcmVnaXN0ZXJJbnN0YW5jZShCcmVha0l0ZXJhdG9yKiB0b0Fkb3B0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYg
bG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVCcmVha0l0
ZXJhdG9yVHlwZSBraW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGEgcHJl
dmlvdXNseS1yZWdpc3RlcmVkIEJyZWFrSXRlcmF0b3IgdXNpbmcgdGhlIGtleSByZXR1cm5lZCBm
cm9tIHRoZQorICAgICAqIHJlZ2lzdGVyIGNhbGwuICBLZXkgYmVjb21lcyBpbnZhbGlkIGFmdGVy
IGEgc3VjY2Vzc2Z1bCBjYWxsIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYWdhaW4uCisgICAgICog
VGhlIEJyZWFrSXRlcmF0b3IgY29ycmVzcG9uZGluZyB0byB0aGUga2V5IHdpbGwgYmUgZGVsZXRl
ZC4KKyAgICAgKiBCZWNhdXNlIElDVSBtYXkgY2hvb3NlIHRvIGNhY2hlIEJyZWFrSXRlcmF0b3Jz
IGludGVybmFsbHksIHRoaXMgc2hvdWxkCisgICAgICogYmUgY2FsbGVkIGR1cmluZyBhcHBsaWNh
dGlvbiBzaHV0ZG93biwgYWZ0ZXIgYWxsIGNhbGxzIHRvCisgICAgICogQnJlYWtJdGVyYXRvcjo6
Y3JlYXRlWFhYSW5zdGFuY2UgdG8gYXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9yLgorICAgICAqIEBw
YXJhbSBrZXkgdGhlIHJlZ2lzdHJ5IGtleSByZXR1cm5lZCBieSBhIHByZXZpb3VzIGNhbGwgdG8g
cmVnaXN0ZXJJbnN0YW5jZQorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGluL291dCBzdGF0dXMg
Y29kZSwgbm8gc3BlY2lhbCBtZWFuaW5ncyBhcmUgYXNzaWduZWQKKyAgICAgKiBAcmV0dXJuIFRS
VUUgaWYgdGhlIGl0ZXJhdG9yIGZvciB0aGUga2V5IHdhcyBzdWNjZXNzZnVsbHkgdW5yZWdpc3Rl
cmVkCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgc3RhdGljIFVCb29sIFVf
RVhQT1JUMiB1bnJlZ2lzdGVyKFVSZWdpc3RyeUtleSBrZXksIFVFcnJvckNvZGUmIHN0YXR1cyk7
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBTdHJpbmdFbnVtZXJhdGlvbiBvdmVyIHRoZSBs
b2NhbGVzIGF2YWlsYWJsZSBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbCwKKyAgICAgKiBpbmNsdWRp
bmcgcmVnaXN0ZXJlZCBsb2NhbGVzLgorICAgICAqIEByZXR1cm4gYSBTdHJpbmdFbnVtZXJhdGlv
biBvdmVyIHRoZSBsb2NhbGVzIGF2YWlsYWJsZSBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbAorICAg
ICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHN0YXRpYyBTdHJpbmdFbnVtZXJhdGlv
biogVV9FWFBPUlQyIGdldEF2YWlsYWJsZUxvY2FsZXModm9pZCk7CisjZW5kaWYKKworICAgIC8q
KgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSBmb3IgdGhpcyBicmVhayBpdGVyYXRvci4gVHdv
IGZsYXZvcnMgYXJlIGF2YWlsYWJsZTogdmFsaWQgYW5kCisgICAgICogYWN0dWFsIGxvY2FsZS4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBMb2NhbGUgZ2V0TG9jYWxlKFVM
b2NEYXRhTG9jYWxlVHlwZSB0eXBlLCBVRXJyb3JDb2RlJiBzdGF0dXMpIGNvbnN0OworCisjaWZu
ZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKiogR2V0IHRoZSBsb2NhbGUgZm9yIHRoaXMg
YnJlYWsgaXRlcmF0b3Igb2JqZWN0LiBZb3UgY2FuIGNob29zZSBiZXR3ZWVuIHZhbGlkIGFuZCBh
Y3R1YWwgbG9jYWxlLgorICAgICAqICBAcGFyYW0gdHlwZSB0eXBlIG9mIHRoZSBsb2NhbGUgd2Un
cmUgbG9va2luZyBmb3IgKHZhbGlkIG9yIGFjdHVhbCkKKyAgICAgKiAgQHBhcmFtIHN0YXR1cyBl
cnJvciBjb2RlIGZvciB0aGUgb3BlcmF0aW9uCisgICAgICogIEByZXR1cm4gdGhlIGxvY2FsZQor
ICAgICAqICBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICpnZXRMb2NhbGVJRChV
TG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwgVUVycm9yQ29kZSYgc3RhdHVzKSBjb25zdDsKKyNlbmRp
ZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisgICAgLyoqCisgICAgICogIFNldCB0aGUg
c3ViamVjdCB0ZXh0IHN0cmluZyB1cG9uIHdoaWNoIHRoZSBicmVhayBpdGVyYXRvciBpcyBvcGVy
YXRpbmcKKyAgICAgKiAgd2l0aG91dCBjaGFuZ2luZyBhbnkgb3RoZXIgYXNwZWN0IG9mIHRoZSBt
YXRjaGluZyBzdGF0ZS4KKyAgICAgKiAgVGhlIG5ldyBhbmQgcHJldmlvdXMgdGV4dCBzdHJpbmdz
IG11c3QgaGF2ZSB0aGUgc2FtZSBjb250ZW50LgorICAgICAqCisgICAgICogIFRoaXMgZnVuY3Rp
b24gaXMgaW50ZW5kZWQgZm9yIHVzZSBpbiBlbnZpcm9ubWVudHMgd2hlcmUgSUNVIGlzIG9wZXJh
dGluZyBvbgorICAgICAqICBzdHJpbmdzIHRoYXQgbWF5IG1vdmUgYXJvdW5kIGluIG1lbW9yeS4g
IEl0IHByb3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBub3RpZnlpbmcKKyAgICAgKiAgSUNVIHRoYXQg
dGhlIHN0cmluZyBoYXMgYmVlbiByZWxvY2F0ZWQsIGFuZCBwcm92aWRpbmcgYSBuZXcgVVRleHQg
dG8gYWNjZXNzIHRoZQorICAgICAqICBzdHJpbmcgaW4gaXRzIG5ldyBwb3NpdGlvbi4KKyAgICAg
KgorICAgICAqICBOb3RlIHRoYXQgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uIG5l
dmVyIGNvcGllcyB0aGUgdW5kZXJseWluZyB0ZXh0CisgICAgICogIG9mIGEgc3RyaW5nIGJlaW5n
IHByb2Nlc3NlZCwgYnV0IGFsd2F5cyBvcGVyYXRlcyBkaXJlY3RseSBvbiB0aGUgb3JpZ2luYWwg
dGV4dAorICAgICAqICBwcm92aWRlZCBieSB0aGUgdXNlci4gUmVmcmVzaGluZyBzaW1wbHkgZHJv
cHMgdGhlIHJlZmVyZW5jZXMgdG8gdGhlIG9sZCB0ZXh0CisgICAgICogIGFuZCByZXBsYWNlcyB0
aGVtIHdpdGggcmVmZXJlbmNlcyB0byB0aGUgbmV3LgorICAgICAqCisgICAgICogIENhdXRpb246
ICB0aGlzIGZ1bmN0aW9uIGlzIG5vcm1hbGx5IHVzZWQgb25seSBieSB2ZXJ5IHNwZWNpYWxpemVk
LAorICAgICAqICBzeXN0ZW0tbGV2ZWwgY29kZS4gIE9uZSBleGFtcGxlIHVzZSBjYXNlIGlzIHdp
dGggZ2FyYmFnZSBjb2xsZWN0aW9uIHRoYXQgbW92ZXMKKyAgICAgKiAgdGhlIHRleHQgaW4gbWVt
b3J5LgorICAgICAqCisgICAgICogQHBhcmFtIGlucHV0ICAgICAgVGhlIG5ldyAobW92ZWQpIHRl
eHQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgIFJlY2VpdmVzIGVycm9ycyBkZXRl
Y3RlZCBieSB0aGlzIGZ1bmN0aW9uLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICp0aGlzCisg
ICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJ
dGVyYXRvciAmcmVmcmVzaElucHV0VGV4dChVVGV4dCAqaW5wdXQsIFVFcnJvckNvZGUgJnN0YXR1
cykgPSAwOworCisgcHJpdmF0ZToKKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogYnVpbGRJbnN0
YW5jZShjb25zdCBMb2NhbGUmIGxvYywgY29uc3QgY2hhciAqdHlwZSwgaW50MzJfdCBraW5kLCBV
RXJyb3JDb2RlJiBzdGF0dXMpOworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBjcmVhdGVJbnN0
YW5jZShjb25zdCBMb2NhbGUmIGxvYywgaW50MzJfdCBraW5kLCBVRXJyb3JDb2RlJiBzdGF0dXMp
OworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBtYWtlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBs
b2MsIGludDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIGZyaWVuZCBjbGFz
cyBJQ1VCcmVha0l0ZXJhdG9yRmFjdG9yeTsKKyAgICBmcmllbmQgY2xhc3MgSUNVQnJlYWtJdGVy
YXRvclNlcnZpY2U7CisKK3Byb3RlY3RlZDoKKyAgICAvLyBEbyBub3QgZW5jbG9zZSBwcm90ZWN0
ZWQgZGVmYXVsdC9jb3B5IGNvbnN0cnVjdG9ycyB3aXRoICNpZm5kZWYgVV9ISURFX0lOVEVSTkFM
X0FQSQorICAgIC8vIG9yIGVsc2UgdGhlIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGEgcHVibGljIG9u
ZXMuCisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFrSXRlcmF0b3IoKTsKKyAgICAvKiog
QGludGVybmFsICovCisgICAgQnJlYWtJdGVyYXRvciAoY29uc3QgQnJlYWtJdGVyYXRvciAmb3Ro
ZXIpIDogVU9iamVjdChvdGhlcikge30KKyAgICAvKiogQGludGVybmFsICovCisgICAgQnJlYWtJ
dGVyYXRvciAoY29uc3QgTG9jYWxlJiB2YWxpZCwgY29uc3QgTG9jYWxlJiBhY3R1YWwpOworcHJp
dmF0ZToKKworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBjaGFyIGFjdHVhbExvY2FsZVtVTE9D
X0ZVTExOQU1FX0NBUEFDSVRZXTsKKyAgICBjaGFyIHZhbGlkTG9jYWxlW1VMT0NfRlVMTE5BTUVf
Q0FQQUNJVFldOworCisgICAgLyoqCisgICAgICogVGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IgaGFz
IG5vIHJlYWwgaW1wbGVtZW50YXRpb24uCisgICAgICogSXQncyBwcm92aWRlZCB0byBtYWtlIHRo
ZSBjb21waWxlciBoYXBweS4gRG8gbm90IGNhbGwuCisgICAgICovCisgICAgQnJlYWtJdGVyYXRv
ciYgb3BlcmF0b3I9KGNvbnN0IEJyZWFrSXRlcmF0b3ImKTsKK307CisKKyNpZm5kZWYgVV9ISURF
X0RFUFJFQ0FURURfQVBJCisKK2lubGluZSBVQm9vbCBCcmVha0l0ZXJhdG9yOjppc0J1ZmZlckNs
b25lKCkKK3sKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVD
QVRFRF9BUEkgKi8KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZiAvKiAjaWYgIVVDT05GSUdf
Tk9fQlJFQUtfSVRFUkFUSU9OICovCisKKyNlbmRpZiAvLyBfQlJLSVRFUgorLy9lb2YKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1
L3VuaWNvZGUvY2hhcml0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGQ2NTA5MGE0MGE2MDg1OTUxYzczMzA3
Zjc0YWNmODNiYTFiYmM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9jaGFyaXRlci5oCkBAIC0wLDAgKzEsNzIyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBD
b3B5cmlnaHQgKEMpIDE5OTctMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwor
KiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyovCisKKyNpZm5kZWYgQ0hBUklURVJfSAorI2RlZmluZSBDSEFSSVRFUl9ICisK
KyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYg
QysrIEFQSTogQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lOCisv
KioKKyAqIEFic3RyYWN0IGNsYXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGZvcndhcmQtb25s
eSBpdGVyYXRpb24KKyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMgaXMgYSBtaW5pbWFsIGlu
dGVyZmFjZSBmb3IgaXRlcmF0aW9uIHdpdGhvdXQgcmFuZG9tIGFjY2VzcworICogb3IgYmFja3dh
cmRzIGl0ZXJhdGlvbi4gSXQgaXMgZXNwZWNpYWxseSB1c2VmdWwgZm9yIHdyYXBwaW5nCisgKiBz
dHJlYW1zIHdpdGggY29udmVydGVycyBpbnRvIGFuIG9iamVjdCBmb3IgY29sbGF0aW9uIG9yCisg
KiBub3JtYWxpemF0aW9uLgorICoKKyAqIDxwPkNoYXJhY3RlcnMgY2FuIGJlIGFjY2Vzc2VkIGlu
IHR3byB3YXlzOiBhcyBjb2RlIHVuaXRzIG9yIGFzCisgKiBjb2RlIHBvaW50cy4KKyAqIFVuaWNv
ZGUgY29kZSBwb2ludHMgYXJlIDIxLWJpdCBpbnRlZ2VycyBhbmQgYXJlIHRoZSBzY2FsYXIgdmFs
dWVzCisgKiBvZiBVbmljb2RlIGNoYXJhY3RlcnMuIElDVSB1c2VzIHRoZSB0eXBlIFVDaGFyMzIg
Zm9yIHRoZW0uCisgKiBVbmljb2RlIGNvZGUgdW5pdHMgYXJlIHRoZSBzdG9yYWdlIHVuaXRzIG9m
IGEgZ2l2ZW4KKyAqIFVuaWNvZGUvVUNTIFRyYW5zZm9ybWF0aW9uIEZvcm1hdCAoYSBjaGFyYWN0
ZXIgZW5jb2Rpbmcgc2NoZW1lKS4KKyAqIFdpdGggVVRGLTE2LCBhbGwgY29kZSBwb2ludHMgY2Fu
IGJlIHJlcHJlc2VudGVkIHdpdGggZWl0aGVyIG9uZQorICogb3IgdHdvIGNvZGUgdW5pdHMgKCJz
dXJyb2dhdGVzIikuCisgKiBTdHJpbmcgc3RvcmFnZSBpcyB0eXBpY2FsbHkgYmFzZWQgb24gY29k
ZSB1bml0cywgd2hpbGUgcHJvcGVydGllcworICogb2YgY2hhcmFjdGVycyBhcmUgdHlwaWNhbGx5
IGRldGVybWluZWQgdXNpbmcgY29kZSBwb2ludCB2YWx1ZXMuCisgKiBTb21lIHByb2Nlc3NlcyBt
YXkgYmUgZGVzaWduZWQgdG8gd29yayB3aXRoIHNlcXVlbmNlcyBvZiBjb2RlIHVuaXRzLAorICog
b3IgaXQgbWF5IGJlIGtub3duIHRoYXQgYWxsIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW1wb3J0YW50
IHRvIGFuCisgKiBhbGdvcml0aG0gY2FuIGJlIHJlcHJlc2VudGVkIHdpdGggc2luZ2xlIGNvZGUg
dW5pdHMuCisgKiBPdGhlciBwcm9jZXNzZXMgd2lsbCBuZWVkIHRvIHVzZSB0aGUgY29kZSBwb2lu
dCBhY2Nlc3MgZnVuY3Rpb25zLjwvcD4KKyAqCisgKiA8cD5Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0
b3IgcHJvdmlkZXMgbmV4dFBvc3RJbmMoKSB0byBhY2Nlc3MKKyAqIGEgY29kZSB1bml0IGFuZCBh
ZHZhbmNlIGFuIGludGVybmFsIHBvc2l0aW9uIGludG8gdGhlIHRleHQgb2JqZWN0LAorICogc2lt
aWxhciB0byBhIDxjb2RlPnJldHVybiB0ZXh0W3Bvc2l0aW9uKytdPC9jb2RlPi48YnI+CisgKiBJ
dCBwcm92aWRlcyBuZXh0MzJQb3N0SW5jKCkgdG8gYWNjZXNzIGEgY29kZSBwb2ludCBhbmQgYWR2
YW5jZSBhbiBpbnRlcm5hbAorICogcG9zaXRpb24uPC9wPgorICoKKyAqIDxwPm5leHQzMlBvc3RJ
bmMoKSBhc3N1bWVzIHRoYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgdGhhdCBvZgorICogdGhl
IGJlZ2lubmluZyBvZiBhIGNvZGUgcG9pbnQsIGkuZS4sIG9mIGl0cyBmaXJzdCBjb2RlIHVuaXQu
CisgKiBBZnRlciBuZXh0MzJQb3N0SW5jKCksIHRoaXMgd2lsbCBiZSB0cnVlIGFnYWluLgorICog
SW4gZ2VuZXJhbCwgYWNjZXNzIHRvIGNvZGUgdW5pdHMgYW5kIGNvZGUgcG9pbnRzIGluIHRoZSBz
YW1lCisgKiBpdGVyYXRpb24gbG9vcCBzaG91bGQgbm90IGJlIG1peGVkLiBJbiBVVEYtMTYsIGlm
IHRoZSBjdXJyZW50IHBvc2l0aW9uCisgKiBpcyBvbiBhIHNlY29uZCBjb2RlIHVuaXQgKExvdyBT
dXJyb2dhdGUpLCB0aGVuIG9ubHkgdGhhdCBjb2RlIHVuaXQKKyAqIGlzIHJldHVybmVkIGV2ZW4g
YnkgbmV4dDMyUG9zdEluYygpLjwvcD4KKyAqCisgKiA8cD5Gb3IgaXRlcmF0aW9uIHdpdGggZWl0
aGVyIGZ1bmN0aW9uLCB0aGVyZSBhcmUgdHdvIHdheXMgdG8KKyAqIGNoZWNrIGZvciB0aGUgZW5k
IG9mIHRoZSBpdGVyYXRpb24uIFdoZW4gdGhlcmUgYXJlIG5vIG1vcmUKKyAqIGNoYXJhY3RlcnMg
aW4gdGhlIHRleHQgb2JqZWN0OgorICogPHVsPgorICogPGxpPlRoZSBoYXNOZXh0KCkgZnVuY3Rp
b24gcmV0dXJucyBGQUxTRS48L2xpPgorICogPGxpPm5leHRQb3N0SW5jKCkgYW5kIG5leHQzMlBv
c3RJbmMoKSByZXR1cm4gRE9ORQorICogICAgIHdoZW4gb25lIGF0dGVtcHRzIHRvIHJlYWQgYmV5
b25kIHRoZSBlbmQgb2YgdGhlIHRleHQgb2JqZWN0LjwvbGk+CisgKiA8L3VsPgorICoKKyAqIEV4
YW1wbGU6CisgKiBcY29kZSAKKyAqIHZvaWQgZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0ZXJJdGVy
YXRvciAmaXQpIHsKKyAqICAgICBVQ2hhcjMyIGM7CisgKiAgICAgd2hpbGUoaXQuaGFzTmV4dCgp
KSB7CisgKiAgICAgICAgIGM9aXQubmV4dDMyUG9zdEluYygpOworICogICAgICAgICAvLyB1c2Ug
YworICogICAgIH0KKyAqIH0KKyAqCisgKiB2b2lkIGZ1bmN0aW9uMShGb3J3YXJkQ2hhcmFjdGVy
SXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAgICB3aGlsZSgoYz1pdC5uZXh0
UG9zdEluYygpKSE9Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yOjpET05FKSB7CisgKiAgICAgICAg
IC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wPgorICoKKyAq
IEBzdGFibGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgRm9yd2FyZENoYXJhY3Rl
ckl0ZXJhdG9yIDogcHVibGljIFVPYmplY3QgeworcHVibGljOgorICAgIC8qKgorICAgICAqIFZh
bHVlIHJldHVybmVkIGJ5IG1vc3Qgb2YgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJ3MgZnVuY3Rp
b25zCisgICAgICogd2hlbiB0aGUgaXRlcmF0b3IgaGFzIHJlYWNoZWQgdGhlIGxpbWl0cyBvZiBp
dHMgaXRlcmF0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGVudW0g
eyBET05FID0gMHhmZmZmIH07CisgICAgCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3Rvci4gIAor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkZvcndhcmRDaGFy
YWN0ZXJJdGVyYXRvcigpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSB3aGVu
IGJvdGggaXRlcmF0b3JzIHJlZmVyIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRo
ZSBzYW1lIGNoYXJhY3Rlci1zdG9yYWdlIG9iamVjdC4gIAorICAgICAqIEBwYXJhbSB0aGF0IFRo
ZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5Cisg
ICAgICogQHJldHVybiB0cnVlIHdoZW4gYm90aCBpdGVyYXRvcnMgcmVmZXIgdG8gdGhlIHNhbWUK
KyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgY2hhcmFjdGVyLXN0b3JhZ2Ugb2JqZWN0Cisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRv
cj09KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3QgPSAwOworICAg
IAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBpdGVyYXRvcnMgcmVmZXIg
dG8gZGlmZmVyZW50CisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdHMsIG9yIHRvIGRpZmZlcmVu
dCBjaGFyYWN0ZXJzIGluIHRoZQorICAgICAqIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdC4gIAor
ICAgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29t
cGFyZWQgZm9yIGluZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRydWUgd2hlbiB0aGUgaXRlcmF0
b3JzIHJlZmVyIHRvIGRpZmZlcmVudAorICAgICAqIHRleHQtc3RvcmFnZSBvYmplY3RzLCBvciB0
byBkaWZmZXJlbnQgY2hhcmFjdGVycyBpbiB0aGUKKyAgICAgKiBzYW1lIHRleHQtc3RvcmFnZSBv
YmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgVUJvb2wg
b3BlcmF0b3IhPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0Owor
ICAgIAorICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhpcyBpdGVy
YXRvci4gIAorICAgICAqIEByZXR1cm4gdGhlIGhhc2ggY29kZS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgaGFzaENvZGUodm9pZCkgY29uc3Qg
PSAwOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhpcyBG
b3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgKCJwb29yIG1hbidzCisgICAgICogUlRUSSIpLjxQPiBE
ZXNwaXRlIHRoZSBmYWN0IHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBwdWJsaWMsCisgICAgICogRE8g
Tk9UIENPTlNJREVSIElUIFBBUlQgT0YgQ0hBUkFDVEVSSVRFUkFUT1InUyBBUEkhIAorICAgICAq
IEByZXR1cm4gYSBVQ2xhc3NJRCBmb3IgdGhpcyBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXRE
eW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogR2V0
cyB0aGUgY3VycmVudCBjb2RlIHVuaXQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhl
IG5leHQgY29kZSB1bml0CisgICAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0
b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgdW5p
dHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBj
b2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBV
Q2hhciAgICAgICAgIG5leHRQb3N0SW5jKHZvaWQpID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAg
KiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMg
dG8gdGhlIG5leHQgY29kZSBwb2ludAorICAgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAg
ICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBj
b2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBj
dXJyZW50IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMlBvc3RJbmModm9pZCkgPSAwOworICAgIAorICAg
IC8qKgorICAgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0
cyBvciBjb2RlIHBvaW50cworICAgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9u
IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogVGhpcyBpcyB1c2VkIHdpdGggbmV4dFBv
c3RJbmMoKSBvciBuZXh0MzJQb3N0SW5jKCkgaW4gZm9yd2FyZAorICAgICAqIGl0ZXJhdGlvbi4K
KyAgICAgKiBAcmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9y
IGNvZGUgcG9pbnRzCisgICAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4g
dGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNOZXh0KCkgPSAwOworICAgIAorcHJvdGVjdGVkOgor
ICAgIC8qKiBEZWZhdWx0IGNvbnN0cnVjdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxl
bWVudGluZyBjbGFzcy4gQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRl
cmF0b3IoKTsKKyAgICAKKyAgICAvKiogQ29weSBjb25zdHJ1Y3RvciB0byBiZSBvdmVycmlkZGVu
IGluIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3MuIEBzdGFibGUgSUNVIDIuMCovCisgICAgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmb3RoZXIp
OworICAgIAorICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IgdG8gYmUgb3ZlcnJp
ZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmb3BlcmF0b3I9KGNvbnN0IEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciYpIHsgcmV0dXJuICp0aGlzOyB9Cit9OworCisvKioKKyAq
IEFic3RyYWN0IGNsYXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGl0ZXJhdGlvbgorICogb24g
dGV4dCBvYmplY3RzLgorICogVGhpcyBpcyBhbiBpbnRlcmZhY2UgZm9yIGZvcndhcmQgYW5kIGJh
Y2t3YXJkIGl0ZXJhdGlvbgorICogYW5kIHJhbmRvbSBhY2Nlc3MgaW50byBhIHRleHQgb2JqZWN0
LgorICoKKyAqIDxwPlRoZSBBUEkgcHJvdmlkZXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB0byB0
aGUgSmF2YSBhbmQgb2xkZXIgSUNVCisgKiBDaGFyYWN0ZXJJdGVyYXRvciBjbGFzc2VzIGJ1dCBl
eHRlbmRzIHRoZW0gc2lnbmlmaWNhbnRseToKKyAqIDxvbD4KKyAqIDxsaT5DaGFyYWN0ZXJJdGVy
YXRvciBpcyBub3cgYSBzdWJjbGFzcyBvZiBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuPC9saT4K
KyAqIDxsaT5XaGlsZSB0aGUgb2xkIEFQSSBmdW5jdGlvbnMgcHJvdmlkZWQgZm9yd2FyZCBpdGVy
YXRpb24gd2l0aAorICogICAgICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MsIHRoZSBuZXcgb25l
IGFsc28gcHJvdmlkZXMgZnVuY3Rpb25zCisgKiAgICAgd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNl
bWFudGljcy4gVGhleSBhcmUgbW9yZSBlZmZpY2llbnQgYW5kIHNob3VsZAorICogICAgIGJlIHRo
ZSBwcmVmZXJyZWQgaXRlcmF0b3IgZnVuY3Rpb25zIGZvciBuZXcgaW1wbGVtZW50YXRpb25zLgor
ICogICAgIFRoZSBiYWNrd2FyZCBpdGVyYXRpb24gYWx3YXlzIGhhZCAicHJlLWRlY3JlbWVudCIg
c2VtYW50aWNzLCB3aGljaAorICogICAgIGFyZSBlZmZpY2llbnQuPC9saT4KKyAqIDxsaT5KdXN0
IGxpa2UgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLCBpdCBwcm92aWRlcyBhY2Nlc3MgdG8KKyAq
ICAgICBib3RoIGNvZGUgdW5pdHMgYW5kIGNvZGUgcG9pbnRzLiBDb2RlIHBvaW50IGFjY2VzcyB2
ZXJzaW9ucyBhcmUgYXZhaWxhYmxlCisgKiAgICAgZm9yIHRoZSBvbGQgYW5kIHRoZSBuZXcgaXRl
cmF0aW9uIHNlbWFudGljcy48L2xpPgorICogPGxpPlRoZXJlIGFyZSBuZXcgZnVuY3Rpb25zIGZv
ciBzZXR0aW5nIGFuZCBtb3ZpbmcgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICB3aXRob3V0
IHJldHVybmluZyBhIGNoYXJhY3RlciwgZm9yIGVmZmljaWVuY3kuPC9saT4KKyAqIDwvb2w+Cisg
KgorICogU2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciBmb3IgZXhhbXBsZXMgZm9yIHVzaW5n
IHRoZSBuZXcgZm9yd2FyZCBpdGVyYXRpb24KKyAqIGZ1bmN0aW9ucy4gRm9yIGJhY2t3YXJkIGl0
ZXJhdGlvbiwgdGhlcmUgaXMgYWxzbyBhIGhhc1ByZXZpb3VzKCkgZnVuY3Rpb24KKyAqIHRoYXQg
Y2FuIGJlIHVzZWQgYW5hbG9nb3VzbHkgdG8gaGFzTmV4dCgpLgorICogVGhlIG9sZCBmdW5jdGlv
bnMgd29yayBhcyBiZWZvcmUgYW5kIGFyZSBzaG93biBiZWxvdy48L3A+CisgKgorICogPHA+RXhh
bXBsZXMgZm9yIHNvbWUgb2YgdGhlIG5ldyBmdW5jdGlvbnM6PC9wPgorICoKKyAqIEZvcndhcmQg
aXRlcmF0aW9uIHdpdGggaGFzTmV4dCgpOgorICogXGNvZGUKKyAqIHZvaWQgZm9yd2FyZDEoQ2hh
cmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIzMiBjOworICogICAgIGZvcihpdC5z
ZXRUb1N0YXJ0KCk7IGl0Lmhhc05leHQoKTspIHsKKyAqICAgICAgICAgYz1pdC5uZXh0MzJQb3N0
SW5jKCk7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgfQorICogIH0KKyAqIFxlbmRjb2Rl
CisgKiBGb3J3YXJkIGl0ZXJhdGlvbiBtb3JlIHNpbWlsYXIgdG8gbG9vcHMgd2l0aCB0aGUgb2xk
IGZvcndhcmQgaXRlcmF0aW9uLAorICogc2hvd2luZyBhIHdheSB0byBjb252ZXJ0IHNpbXBsZSBm
b3IoKSBsb29wczoKKyAqIFxjb2RlCisgKiB2b2lkIGZvcndhcmQyKENoYXJhY3Rlckl0ZXJhdG9y
ICZpdCkgeworICogICAgIFVDaGFyIGM7CisgKiAgICAgZm9yKGM9aXQuZmlyc3RQb3N0SW5jKCk7
IGMhPUNoYXJhY3Rlckl0ZXJhdG9yOjpET05FOyBjPWl0Lm5leHRQb3N0SW5jKCkpIHsKKyAqICAg
ICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqIH0KKyAqIFxlbmRjb2RlCisgKiBCYWNrd2Fy
ZCBpdGVyYXRpb24gd2l0aCBzZXRUb0VuZCgpIGFuZCBoYXNQcmV2aW91cygpOgorICogXGNvZGUK
KyAqICB2b2lkIGJhY2t3YXJkMShDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICAgVUNo
YXIzMiBjOworICogICAgICBmb3IoaXQuc2V0VG9FbmQoKTsgaXQuaGFzUHJldmlvdXMoKTspIHsK
KyAqICAgICAgICAgYz1pdC5wcmV2aW91czMyKCk7CisgKiAgICAgICAgICAvLyB1c2UgYworICog
ICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIGEg
bW9yZSB0cmFkaXRpb25hbCBmb3IoKSBsb29wOgorICogXGNvZGUKKyAqIHZvaWQgYmFja3dhcmQy
KENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyIGM7CisgKiAgICAgZm9yKGM9
aXQubGFzdCgpOyBjIT1DaGFyYWN0ZXJJdGVyYXRvcjo6RE9ORTsgYz1pdC5wcmV2aW91cygpKSB7
CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICoK
KyAqIEV4YW1wbGUgZm9yIHJhbmRvbSBhY2Nlc3M6CisgKiBcY29kZQorICogIHZvaWQgcmFuZG9t
KENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgICAvLyBzZXQgdG8gdGhlIHRoaXJkIGNv
ZGUgcG9pbnQgZnJvbSB0aGUgYmVnaW5uaW5nCisgKiAgICAgIGl0Lm1vdmUzMigzLCBDaGFyYWN0
ZXJJdGVyYXRvcjo6a1N0YXJ0KTsKKyAqICAgICAgLy8gZ2V0IGEgY29kZSBwb2ludCBmcm9tIGhl
cmUgd2l0aG91dCBtb3ZpbmcgdGhlIHBvc2l0aW9uCisgKiAgICAgIFVDaGFyMzIgYz1pdC5jdXJy
ZW50MzIoKTsKKyAqICAgICAgLy8gZ2V0IHRoZSBwb3NpdGlvbgorICogICAgICBpbnQzMl90IHBv
cz1pdC5nZXRJbmRleCgpOworICogICAgICAvLyBnZXQgdGhlIHByZXZpb3VzIGNvZGUgdW5pdAor
ICogICAgICBVQ2hhciB1PWl0LnByZXZpb3VzKCk7CisgKiAgICAgIC8vIG1vdmUgYmFjayBvbmUg
bW9yZSBjb2RlIHVuaXQKKyAqICAgICAgaXQubW92ZSgtMSwgQ2hhcmFjdGVySXRlcmF0b3I6OmtD
dXJyZW50KTsKKyAqICAgICAgLy8gc2V0IHRoZSBwb3NpdGlvbiBiYWNrIHRvIHdoZXJlIGl0IHdh
cworICogICAgICAvLyBhbmQgcmVhZCB0aGUgc2FtZSBjb2RlIHBvaW50IGMgYW5kIG1vdmUgYmV5
b25kIGl0CisgKiAgICAgIGl0LnNldEluZGV4KHBvcyk7CisgKiAgICAgIGlmKGMhPWl0Lm5leHQz
MlBvc3RJbmMoKSkgeworICogICAgICAgICAgZXhpdCgxKTsgLy8gQ2hhcmFjdGVySXRlcmF0b3Ig
aW5jb25zaXN0ZW50CisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICoKKyAqIDxwPkV4
YW1wbGVzLCBlc3BlY2lhbGx5IGZvciB0aGUgb2xkIEFQSTo8L3A+CisgKgorICogRnVuY3Rpb24g
cHJvY2Vzc2luZyBjaGFyYWN0ZXJzLCBpbiB0aGlzIGV4YW1wbGUgc2ltcGxlIG91dHB1dAorICog
PHByZT4KKyAqIFxjb2RlCisgKiAgdm9pZCBwcm9jZXNzQ2hhciggVUNoYXIgYyApCisgKiAgewor
ICogICAgICBjb3V0IDw8ICIgIiA8PCBjOworICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4K
KyAqIFRyYXZlcnNlIHRoZSB0ZXh0IGZyb20gc3RhcnQgdG8gZmluaXNoCisgKiA8cHJlPiAKKyAq
IFxjb2RlCisgKiAgdm9pZCB0cmF2ZXJzZUZvcndhcmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIp
CisgKiAgeworICogICAgICBmb3IoVUNoYXIgYyA9IGl0ZXIuZmlyc3QoKTsgYyAhPSBDaGFyYWN0
ZXJJdGVyYXRvci5ET05FOyBjID0gaXRlci5uZXh0KCkpIHsKKyAqICAgICAgICAgIHByb2Nlc3ND
aGFyKGMpOworICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJh
dmVyc2UgdGhlIHRleHQgYmFja3dhcmRzLCBmcm9tIGVuZCB0byBzdGFydAorICogPHByZT4KKyAq
IFxjb2RlCisgKiAgdm9pZCB0cmF2ZXJzZUJhY2t3YXJkKENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVy
KQorICogIHsKKyAqICAgICAgZm9yKFVDaGFyIGMgPSBpdGVyLmxhc3QoKTsgYyAhPSBDaGFyYWN0
ZXJJdGVyYXRvci5ET05FOyBjID0gaXRlci5wcmV2aW91cygpKSB7CisgKiAgICAgICAgICBwcm9j
ZXNzQ2hhcihjKTsKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAq
IFRyYXZlcnNlIGJvdGggZm9yd2FyZCBhbmQgYmFja3dhcmQgZnJvbSBhIGdpdmVuIHBvc2l0aW9u
IGluIHRoZSB0ZXh0LiAKKyAqIENhbGxzIHRvIG5vdEJvdW5kYXJ5KCkgaW4gdGhpcyBleGFtcGxl
IHJlcHJlc2VudHMgc29tZSBhZGRpdGlvbmFsIHN0b3BwaW5nIGNyaXRlcmlhLgorICogPHByZT4K
KyAqIFxjb2RlCisgKiB2b2lkIHRyYXZlcnNlT3V0KENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyLCBp
bnQzMl90IHBvcykKKyAqIHsKKyAqICAgICAgVUNoYXIgYzsKKyAqICAgICAgZm9yIChjID0gaXRl
ci5zZXRJbmRleChwb3MpOworICogICAgICBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYg
KFVuaWNvZGU6OmlzTGV0dGVyKGMpIHx8IFVuaWNvZGU6OmlzRGlnaXQoYykpOworICogICAgICAg
ICAgYyA9IGl0ZXIubmV4dCgpKSB7fQorICogICAgICBpbnQzMl90IGVuZCA9IGl0ZXIuZ2V0SW5k
ZXgoKTsKKyAqICAgICAgZm9yIChjID0gaXRlci5zZXRJbmRleChwb3MpOworICogICAgICAgICAg
YyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIChVbmljb2RlOjppc0xldHRlcihjKSB8fCBV
bmljb2RlOjppc0RpZ2l0KGMpKTsKKyAqICAgICAgICAgIGMgPSBpdGVyLnByZXZpb3VzKCkpIHt9
CisgKiAgICAgIGludDMyX3Qgc3RhcnQgPSBpdGVyLmdldEluZGV4KCkgKyAxOworICogIAorICog
ICAgICBjb3V0IDw8ICJzdGFydDogIiA8PCBzdGFydCA8PCAiIGVuZDogIiA8PCBlbmQgPDwgZW5k
bDsKKyAqICAgICAgZm9yIChjID0gaXRlci5zZXRJbmRleChzdGFydCk7IGl0ZXIuZ2V0SW5kZXgo
KSA8IGVuZDsgYyA9IGl0ZXIubmV4dCgpICkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7
CisgKiAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIENyZWF0aW5nIGEg
U3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgYW5kIGNhbGxpbmcgdGhlIHRlc3QgZnVuY3Rpb25zCisg
KiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIENoYXJhY3Rlckl0ZXJhdG9yX0V4YW1wbGUoIHZv
aWQgKQorICogICB7CisgKiAgICAgICBjb3V0IDw8IGVuZGwgPDwgIj09PT09IENoYXJhY3Rlckl0
ZXJhdG9yX0V4YW1wbGU6ID09PT09IiA8PCBlbmRsOworICogICAgICAgVW5pY29kZVN0cmluZyB0
ZXh0KCJFaW4ga2xlaW5lciBTYXR6LiIpOworICogICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0
b3IgaXRlcmF0b3IodGV4dCk7CisgKiAgICAgICBjb3V0IDw8ICItLS0tLSB0cmF2ZXJzZUZvcndh
cmQ6IC0tLS0tLS0tLS0tIiA8PCBlbmRsOworICogICAgICAgdHJhdmVyc2VGb3J3YXJkKCBpdGVy
YXRvciApOworICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIHRyYXZlcnNl
QmFja3dhcmQ6IC0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZUJhY2t3YXJk
KCBpdGVyYXRvciApOworICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIHRy
YXZlcnNlT3V0OiAtLS0tLS0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZU91
dCggaXRlcmF0b3IsIDcgKTsKKyAqICAgICAgIGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICItLS0t
LSIgPDwgZW5kbDsKKyAqICAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICoKKyAqIEBzdGFi
bGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgQ2hhcmFjdGVySXRlcmF0b3IgOiBw
dWJsaWMgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAg
KiBPcmlnaW4gZW51bWVyYXRpb24gZm9yIHRoZSBtb3ZlKCkgYW5kIG1vdmUzMigpIGZ1bmN0aW9u
cy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBlbnVtIEVPcmlnaW4geyBr
U3RhcnQsIGtDdXJyZW50LCBrRW5kIH07CisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkNoYXJhY3Rlckl0
ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcG9pbnRlciB0byBhIG5ldyBD
aGFyYWN0ZXJJdGVyYXRvciBvZiB0aGUgc2FtZQorICAgICAqIGNvbmNyZXRlIGNsYXNzIGFzIHRo
aXMgb25lLCBhbmQgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRo
ZSBzYW1lIHRleHQtc3RvcmFnZSBvYmplY3QgYXMgdGhpcyBvbmUuICBUaGUKKyAgICAgKiBjYWxs
ZXIgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSBuZXcgY2xvbmUuICAKKyAgICAgKiBA
cmV0dXJuIGEgcG9pbnRlciB0byBhIG5ldyBDaGFyYWN0ZXJJdGVyYXRvcgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3IqIGNsb25l
KHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJh
bmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2Vk
IHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBm
aXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3Qodm9pZCkgPSAw
OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZp
cnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhh
dCBjb2RlIHVuaXQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICAgKiB0byB0aGUgc2Vjb25k
IGNvZGUgdW5pdC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICAg
KiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpLgorICAgICAqIEByZXR1
cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdFBv
c3RJbmModm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZl
ciB0byB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2Us
IGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LAorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8g
YmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyKCkuCisgICAgICogTm90ZSB0aGF0IGFuIGl0
ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKSwgYmVnaW5uaW5nIHdpdGgsCisgICAgICogZS5n
Liwgc2V0VG9TdGFydCgpIG9yIGZpcnN0UG9zdEluYygpLCBpcyBtb3JlIGVmZmljaWVudC4KKyAg
ICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2Uu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAg
ICAgIGZpcnN0MzIodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0
b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0
aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSBwb2ludCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlv
bgorICAgICAqIHRvIHRoZSBzZWNvbmQgY29kZSBwb2ludC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2
ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0
MzJQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMg
aXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyUG9zdEluYyh2b2lkKTsKKworICAgIC8qKgorICAg
ICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgb3Ig
Y29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UuIFRoaXMgY2FuIGJlIHVz
ZWQgdG8gYmVnaW4gYSBmb3J3YXJkCisgICAgICogaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMo
KSBvciBuZXh0MzJQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgc3RhcnQgcG9zaXRpb24g
b2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIGlubGluZSBpbnQzMl90ICAgIHNldFRvU3RhcnQoKTsKKworICAgIC8qKgorICAgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMKKyAg
ICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgICAq
IFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKS4K
KyAgICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbGFzdCh2b2lkKSA9IDA7Cisg
ICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRo
ZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0
dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFu
IGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzMzIoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNv
ZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBV
Q2hhcjMyICAgICAgIGxhc3QzMih2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRo
ZSBpdGVyYXRvciB0byB0aGUgZW5kIG9mIGl0cyBpdGVyYXRpb24gcmFuZ2UsIGp1c3QgYmVoaW5k
CisgICAgICogdGhlIGxhc3QgY29kZSB1bml0IG9yIGNvZGUgcG9pbnQuIFRoaXMgY2FuIGJlIHVz
ZWQgdG8gYmVnaW4gYSBiYWNrd2FyZAorICAgICAqIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkg
b3IgcHJldmlvdXMzMigpLgorICAgICAqIEByZXR1cm4gdGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUg
aXRlcmF0aW9uIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5s
aW5lIGludDMyX3QgICAgc2V0VG9FbmQoKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0
ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgICAqIGlu
IHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAg
ICAqIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICAKKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhl
ICJwb3NpdGlvbiItdGggY29kZSB1bml0IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAg
ICogQHJldHVybiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIHNldEluZGV4KGludDMy
X3QgcG9zaXRpb24pID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiB0aGF0IGNv
bnRhaW5zIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgICAqIGluIHRoZSB0ZXh0LXN0
b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgICAqIHJldHVybnMg
dGhhdCBjb2RlIHBvaW50LgorICAgICAqIFRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIGFkanVzdGVk
IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiAoaXRzIGZpcnN0IGNv
ZGUgdW5pdCkuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSAicG9zaXRpb24iLXRoIGNvZGUg
dW5pdCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlICJwb3Np
dGlvbiItdGggY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgc2V0SW5kZXgzMihpbnQzMl90IHBvc2l0aW9uKSA9IDA7
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1
cnJlbnRseSByZWZlcnMgdG8uIAorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSB1bml0
LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAg
ICAgICAgY3VycmVudCh2b2lkKSBjb25zdCA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIGNvZGUgcG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8u
ICAKKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGN1cnJlbnQzMih2
b2lkKSBjb25zdCA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRo
ZSBuZXh0IGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBl
bmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUKKyAg
ICAgKiBubyBtb3JlIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICog
QHJldHVybiB0aGUgbmV4dCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHQodm9pZCkgPSAwOworICAgICAgICAK
KyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRoZSBp
dGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0
aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgICAqIE5vdGUgdGhhdCBpdGVyYXRpb24gd2l0
aCAicHJlLWluY3JlbWVudCIgc2VtYW50aWNzIGlzIGxlc3MKKyAgICAgKiBlZmZpY2llbnQgdGhh
biBpdGVyYXRpb24gd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNlbWFudGljcworICAgICAqIHRoYXQg
aXMgcHJvdmlkZWQgYnkgbmV4dDMyUG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhlIG5leHQg
Y29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IFVDaGFyMzIgICAgICAgbmV4dDMyKHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAg
ICogQWR2YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJh
bmdlCisgICAgICogKHRvd2FyZCBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUg
dW5pdC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4s
IHJldHVybnMgRE9ORS4gIAorICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgdW5pdC4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAg
ICAgcHJldmlvdXModm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhl
IHByZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dh
cmQgc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUg
YXJlCisgICAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4g
CisgICAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSBwb2ludC4gCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHByZXZpb3VzMzIo
dm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUg
bm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYmVmb3JlIHRoZSBjdXJy
ZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogVGhpcyBpcyB1c2Vk
IHdpdGggcHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkgaW4gYmFja3dhcmQKKyAgICAgKiBpdGVy
YXRpb24uCisgICAgICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVu
aXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UsIHJldHVybiBUUlVFIG90aGVyd2lzZS4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNQcmV2aW91
cygpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4g
dGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0
ZXIgcmV0dXJuZWQgYnkgZmlyc3QoKS4gIFNpbmNlIGl0J3MKKyAgICAgKiBwb3NzaWJsZSB0byBj
cmVhdGUgYW4gaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBhY3Jvc3Mgb25seQorICAgICAqIHBhcnQg
b2YgYSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LCB0aGlzIG51bWJlciBpc24ndAorICAgICAqIG5lY2Vz
c2FyaWx5IDAuICAKKyAgICAgKiBAcmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5k
ZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciByZXR1
cm5lZCBieSBmaXJzdCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlu
bGluZSBpbnQzMl90ICAgICAgIHN0YXJ0SW5kZXgodm9pZCkgY29uc3Q7CisgICAgICAgIAorICAg
IC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcg
dGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBwb3NpdGlvbiBpbW1lZGlhdGVseSBC
RVlPTkQgdGhlIGNoYXJhY3RlcgorICAgICAqIHJldHVybmVkIGJ5IGxhc3QoKS4gIAorICAgICAq
IEByZXR1cm4gdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdl
CisgICAgICogb2JqZWN0IG9mIHRoZSBwb3NpdGlvbiBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGNo
YXJhY3RlcgorICAgICAqIHJldHVybmVkIGJ5IGxhc3QoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBlbmRJbmRleCh2b2lkKSBjb25z
dDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBp
biB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJh
Y3RlciB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0bworICAgICAqIChpLmUuLCB0aGUg
Y2hhcmFjdGVyIHJldHVybmVkIGJ5IGN1cnJlbnQoKSkuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBu
dW1iZXJpYyBpbmRleCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCBvZiAKKyAgICAgKiB0aGUg
Y2hhcmFjdGVyIHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAgZ2V0SW5kZXgodm9p
ZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGVu
dGlyZSB0ZXh0IGluIHRoZSB1bmRlcmx5aW5nCisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdC4K
KyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGVudGlyZSB0ZXh0IGluIHRoZSB0ZXh0
LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5s
aW5lIGludDMyX3QgICAgICAgICAgIGdldExlbmd0aCgpIGNvbnN0OworCisgICAgLyoqCisgICAg
ICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVu
ZCBvZiB0aGUKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJy
ZW50IHBvc2l0aW9uIGl0c2VsZi4KKyAgICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGlu
IG51bWJlcnMgb2YgY29kZSB1bml0cyBmb3J3YXJkCisgICAgICogb3IgYmFja3dhcmQgYnkgc3Bl
Y2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgICAqIEBwYXJhbSBkZWx0
YSB0aGUgcG9zaXRpb24gcmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5z
IGZvcndhcmQ7CisgICAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICAg
KiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0Vu
ZH0KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlKGludDMyX3QgZGVsdGEs
IEVPcmlnaW4gb3JpZ2luKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVu
dCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgICAqIGl0
ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxm
LgorICAgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHBv
aW50cyBmb3J3YXJkCisgICAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZl
IG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVs
YXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAgICog
YSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICAgKiBAcGFyYW0gb3JpZ2luIE9y
aWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICAgKiBAcmV0dXJu
IHRoZSBuZXcgcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlMzIoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4p
ID0gMDsKKworICAgIC8qKgorICAgICAqIENvcGllcyB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24g
aW50byB0aGUgVW5pY29kZVN0cmluZworICAgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAg
CisgICAgICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5kZXIg
aXRlcmF0aW9uLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCB2b2lkICAgICAgICAgICAgZ2V0VGV4dChVbmljb2RlU3RyaW5nJiAgcmVzdWx0KSA9IDA7CisK
K3Byb3RlY3RlZDoKKyAgICAvKioKKyAgICAgKiBFbXB0eSBjb25zdHJ1Y3Rvci4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgICAg
LyoqCisgICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoIGZpZWxkIGlu
IHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBD
aGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0aCk7CisKKyAgICAvKioKKyAgICAgKiBDb25z
dHJ1Y3RvciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGggYW5kIHBvc2l0aW9uIGZpZWxkcyBpbiB0
aGlzIGJhc2UgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hh
cmFjdGVySXRlcmF0b3IoaW50MzJfdCBsZW5ndGgsIGludDMyX3QgcG9zaXRpb24pOworCisgICAg
LyoqCisgICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoLCBzdGFydCwg
ZW5kLCBhbmQgcG9zaXRpb24gZmllbGRzIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0
aCwgaW50MzJfdCB0ZXh0QmVnaW4sIGludDMyX3QgdGV4dEVuZCwgaW50MzJfdCBwb3NpdGlvbik7
CisgIAorICAgIC8qKgorICAgICAqIENvcHkgY29uc3RydWN0b3IuCisgICAgICoKKyAgICAgKiBA
cGFyYW0gdGhhdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgQ2hhcmFj
dGVySXRlcmF0b3IgJnRoYXQpOworCisgICAgLyoqCisgICAgICogQXNzaWdubWVudCBvcGVyYXRv
ci4gIFNldHMgdGhpcyBDaGFyYWN0ZXJJdGVyYXRvciB0byBoYXZlIHRoZSBzYW1lIGJlaGF2aW9y
LAorICAgICAqIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBD
aGFyYWN0ZXJJdGVyYXRvciBwYXNzZWQgaW4uCisgICAgICogQHJldHVybiB0aGUgbmV3bHkgc2V0
IENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IENoYXJhY3Rlckl0ZXJhdG9yICZvcGVyYXRvcj0oY29uc3QgQ2hhcmFjdGVySXRlcmF0b3IgJnRo
YXQpOworCisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyB0ZXh0IGxlbmd0aCBmaWVsZC4KKyAg
ICAgKiBOZWNlc3NhcnkgdGhpcyBmb3IgY29ycmVjdCBnZXRUZXh0KCkgYW5kIGhhc2hDb2RlKCku
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCB0ZXh0TGVuZ3Ro
OworCisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIGN1cnJlbnQgcG9z
aXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCAgcG9z
OworCisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIHN0YXJ0IG9mIHRo
ZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
aW50MzJfdCAgYmVnaW47CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0
aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgaW50MzJfdCAgZW5kOworfTsKKworaW5saW5lIFVCb29sCitGb3J3YXJkQ2hh
cmFjdGVySXRlcmF0b3I6Om9wZXJhdG9yIT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
JiB0aGF0KSBjb25zdCB7CisgICAgcmV0dXJuICFvcGVyYXRvcj09KHRoYXQpOworfQorCitpbmxp
bmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvU3RhcnQoKSB7CisgICAgcmV0dXJu
IG1vdmUoMCwga1N0YXJ0KTsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9y
OjpzZXRUb0VuZCgpIHsKKyAgICByZXR1cm4gbW92ZSgwLCBrRW5kKTsKK30KKworaW5saW5lIGlu
dDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpzdGFydEluZGV4KHZvaWQpIGNvbnN0IHsKKyAgICBy
ZXR1cm4gYmVnaW47Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6ZW5k
SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBlbmQ7Cit9CisKK2lubGluZSBpbnQzMl90
CitDaGFyYWN0ZXJJdGVyYXRvcjo6Z2V0SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBw
b3M7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6Z2V0TGVuZ3RoKHZv
aWQpIGNvbnN0IHsKKyAgICByZXR1cm4gdGV4dExlbmd0aDsKK30KKworVV9OQU1FU1BBQ0VfRU5E
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaCBiL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWQ1Y2I1NDZlYmUzOTdl
ZjQzNmRmMzY1MDNlYjQzNzFjMzg2Njk2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9p
Y3UvdW5pY29kZS9sb2NpZC5oCkBAIC0wLDAgKzEsODE0IEBACisvKgorKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMTUsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxlIGxvY2lkLmgKKyoK
KyogQ3JlYXRlZCBieTogSGVsZW5hIFNoaWgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6Cisq
CisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwMi8xMS85NyAg
ICBhbGl1ICAgICAgICBDaGFuZ2VkIGdMb2NQYXRoIHRvIGZnTG9jUGF0aCBhbmQgYWRkZWQgbWV0
aG9kcyB0bworKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldCBhbmQgc2V0IGl0LgorKiAg
IDA0LzAyLzk3ICAgIGFsaXUgICAgICAgIE1hZGUgb3BlcmF0b3IhPSBpbmxpbmU7IGZpeGVkIHJl
dHVybiB2YWx1ZSBvZiBnZXROYW1lKCkuCisqICAgMDQvMTUvOTcgICAgYWxpdSAgICAgICAgQ2xl
YW51cCBmb3IgQUlYL1dpbjMyLgorKiAgIDA0LzI0Lzk3ICAgIGFsaXUgICAgICAgIE51bWVyb3Vz
IGNoYW5nZXMgcGVyIGNvZGUgcmV2aWV3LgorKiAgIDA4LzE4Lzk4ICAgIHN0ZXBoZW4gICAgIEFk
ZGVkIHRva2VuaXplU3RyaW5nKCksY2hhbmdlZCBnZXREaXNwbGF5TmFtZSgpCisqICAgMDkvMDgv
OTggICAgc3RlcGhlbiAgICAgTW92ZWQgZGVmaW5pdGlvbiBvZiBrRW1wdHlTdHJpbmcgZm9yIE1h
YyBQb3J0CisqICAgMTEvMDkvOTkgICAgd2VpdiAgICAgICAgQWRkZWQgY29uc3QgY2hhciAqIGdl
dE5hbWUoKSBjb25zdDsKKyogICAwNC8xMi8wMCAgICBzcmwgICAgICAgICByZW1vdmluZyB1bmlj
b2Rlc3RyaW5nIGFwaSdzIGFuZCBjYWNoZWQgaGFzaCBjb2RlCisqICAgMDgvMTAvMDEgICAgZ3Jo
b3RlbiAgICAgQ2hhbmdlIHRoZSBzdGF0aWMgTG9jYWxlcyB0byBhY2Nlc3NvciBmdW5jdGlvbnMK
KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBMT0NJRF9ICisjZGVmaW5lIExP
Q0lEX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91
b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3B1dGlsLmgiCisjaW5jbHVkZSAidW5pY29kZS91bG9jLmgiCisjaW5jbHVkZSAidW5pY29kZS9z
dHJlbnVtLmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBMb2NhbGUgSUQg
b2JqZWN0LgorICovCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8vIEZvcndhcmQgRGVjbGFyYXRp
b25zCit2b2lkIFVfQ0FMTENPTlYgbG9jYWxlX2F2YWlsYWJsZV9pbml0KCk7IC8qKjwgQGludGVy
bmFsICovCisKKy8qKgorICogQSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCByZXByZXNlbnRz
IGEgc3BlY2lmaWMgZ2VvZ3JhcGhpY2FsLCBwb2xpdGljYWwsCisgKiBvciBjdWx0dXJhbCByZWdp
b24uIEFuIG9wZXJhdGlvbiB0aGF0IHJlcXVpcmVzIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiB0byBw
ZXJmb3JtCisgKiBpdHMgdGFzayBpcyBjYWxsZWQgPGVtPmxvY2FsZS1zZW5zaXRpdmU8L2VtPiBh
bmQgdXNlcyB0aGUgPGNvZGU+TG9jYWxlPC9jb2RlPgorICogdG8gdGFpbG9yIGluZm9ybWF0aW9u
IGZvciB0aGUgdXNlci4gRm9yIGV4YW1wbGUsIGRpc3BsYXlpbmcgYSBudW1iZXIKKyAqIGlzIGEg
bG9jYWxlLXNlbnNpdGl2ZSBvcGVyYXRpb24tLXRoZSBudW1iZXIgc2hvdWxkIGJlIGZvcm1hdHRl
ZAorICogYWNjb3JkaW5nIHRvIHRoZSBjdXN0b21zL2NvbnZlbnRpb25zIG9mIHRoZSB1c2VyJ3Mg
bmF0aXZlIGNvdW50cnksCisgKiByZWdpb24sIG9yIGN1bHR1cmUuCisgKgorICogVGhlIExvY2Fs
ZSBjbGFzcyBpcyBub3Qgc3VpdGFibGUgZm9yIHN1YmNsYXNzaW5nLgorICoKKyAqIDxQPgorICog
WW91IGNhbiBjcmVhdGUgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCB1c2luZyB0aGUgY29u
c3RydWN0b3IgaW4KKyAqIHRoaXMgY2xhc3M6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5k
aHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgICBMb2NhbGUoIGNvbnN0ICAgY2hhciogIGxhbmd1
YWdlLAorICogICAgICAgICAgICAgICBjb25zdCAgIGNoYXIqICBjb3VudHJ5LAorICogICAgICAg
ICAgICAgICBjb25zdCAgIGNoYXIqICB2YXJpYW50KTsKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5
PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBj
b25zdHJ1Y3RvcnMgaXMgYSB2YWxpZCA8U1RST05HPklTTworICogTGFuZ3VhZ2UgQ29kZS48L1NU
Uk9ORz4gVGhlc2UgY29kZXMgYXJlIHRoZSBsb3dlci1jYXNlIHR3by1sZXR0ZXIKKyAqIGNvZGVz
IGFzIGRlZmluZWQgYnkgSVNPLTYzOS4KKyAqIFlvdSBjYW4gZmluZCBhIGZ1bGwgbGlzdCBvZiB0
aGVzZSBjb2RlcyBhdDoKKyAqIDxCUj48YSBocmVmID0iaHR0cDovL3d3dy5sb2MuZ292L3N0YW5k
YXJkcy9pc282MzktMi8iPgorICogaHR0cDovL3d3dy5sb2MuZ292L3N0YW5kYXJkcy9pc282Mzkt
Mi88L2E+CisgKgorICogPFA+CisgKiBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1
Y3RvcnMgaXMgYSB2YWxpZCA8U1RST05HPklTTyBDb3VudHJ5CisgKiBDb2RlLjwvU1RST05HPiBU
aGVzZSBjb2RlcyBhcmUgdGhlIHVwcGVyLWNhc2UgdHdvLWxldHRlciBjb2RlcworICogYXMgZGVm
aW5lZCBieSBJU08tMzE2Ni4KKyAqIFlvdSBjYW4gZmluZCBhIGZ1bGwgbGlzdCBvZiB0aGVzZSBj
b2RlcyBhdCBhIG51bWJlciBvZiBzaXRlcywgc3VjaCBhczoKKyAqIDxCUj48YSBocmVmPSJodHRw
Oi8vd3d3Lmlzby5vcmcvaXNvL2VuL3Byb2RzLXNlcnZpY2VzL2lzbzMxNjZtYS9pbmRleC5odG1s
Ij4KKyAqIGh0dHA6Ly93d3cuaXNvLm9yZy9pc28vZW4vcHJvZHMtc2VydmljZXMvaXNvMzE2Nm1h
L2luZGV4Lmh0bWw8L2E+CisgKgorICogPFA+CisgKiBUaGUgdGhpcmQgY29uc3RydWN0b3IgcmVx
dWlyZXMgYSB0aGlyZCBhcmd1bWVudC0tdGhlIDxTVFJPTkc+VmFyaWFudC48L1NUUk9ORz4KKyAq
IFRoZSBWYXJpYW50IGNvZGVzIGFyZSB2ZW5kb3IgYW5kIGJyb3dzZXItc3BlY2lmaWMuCisgKiBG
b3IgZXhhbXBsZSwgdXNlIFJFVklTRUQgZm9yIGEgbGFuZ2F1Z2UncyByZXZpc2VkIHNjcmlwdCBv
cnRob2dyYXBoeSwgYW5kIFBPU0lYIGZvciBQT1NJWC4KKyAqIFdoZXJlIHRoZXJlIGFyZSB0d28g
dmFyaWFudHMsIHNlcGFyYXRlIHRoZW0gd2l0aCBhbiB1bmRlcnNjb3JlLCBhbmQKKyAqIHB1dCB0
aGUgbW9zdCBpbXBvcnRhbnQgb25lIGZpcnN0LiBGb3IKKyAqIGV4YW1wbGUsIGEgVHJhZGl0aW9u
YWwgU3BhbmlzaCBjb2xsYXRpb24gbWlnaHQgYmUgcmVmZXJlbmNlZCwgd2l0aAorICogIkVTIiwg
IkVTIiwgIlRyYWRpdGlvbmFsX1BPU0lYIi4KKyAqCisgKiA8UD4KKyAqIEJlY2F1c2UgYSA8Y29k
ZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCBpcyBqdXN0IGFuIGlkZW50aWZpZXIgZm9yIGEgcmVnaW9u
LAorICogbm8gdmFsaWRpdHkgY2hlY2sgaXMgcGVyZm9ybWVkIHdoZW4geW91IGNvbnN0cnVjdCBh
IDxjb2RlPkxvY2FsZTwvY29kZT4uCisgKiBJZiB5b3Ugd2FudCB0byBzZWUgd2hldGhlciBwYXJ0
aWN1bGFyIHJlc291cmNlcyBhcmUgYXZhaWxhYmxlIGZvciB0aGUKKyAqIDxjb2RlPkxvY2FsZTwv
Y29kZT4geW91IGNvbnN0cnVjdCwgeW91IG11c3QgcXVlcnkgdGhvc2UgcmVzb3VyY2VzLiBGb3IK
KyAqIGV4YW1wbGUsIGFzayB0aGUgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBmb3IgdGhlIGxv
Y2FsZXMgaXQgc3VwcG9ydHMKKyAqIHVzaW5nIGl0cyA8Y29kZT5nZXRBdmFpbGFibGVMb2NhbGVz
PC9jb2RlPiBtZXRob2QuCisgKiA8QlI+PFNUUk9ORz5Ob3RlOjwvU1RST05HPiBXaGVuIHlvdSBh
c2sgZm9yIGEgcmVzb3VyY2UgZm9yIGEgcGFydGljdWxhcgorICogbG9jYWxlLCB5b3UgZ2V0IGJh
Y2sgdGhlIGJlc3QgYXZhaWxhYmxlIG1hdGNoLCBub3QgbmVjZXNzYXJpbHkKKyAqIHByZWNpc2Vs
eSB3aGF0IHlvdSBhc2tlZCBmb3IuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBsb29rIGF0CisgKiA8
Y29kZT5SZXNvdXJjZUJ1bmRsZTwvY29kZT4uCisgKgorICogPFA+CisgKiBUaGUgPGNvZGU+TG9j
YWxlPC9jb2RlPiBjbGFzcyBwcm92aWRlcyBhIG51bWJlciBvZiBjb252ZW5pZW50IGNvbnN0YW50
cworICogdGhhdCB5b3UgY2FuIHVzZSB0byBjcmVhdGUgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmpl
Y3RzIGZvciBjb21tb25seSB1c2VkCisgKiBsb2NhbGVzLiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxv
d2luZyByZWZlcnMgdG8gYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdAorICogZm9yIHRoZSBV
bml0ZWQgU3RhdGVzOgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8
cHJlPgorICogICAgICAgTG9jYWxlOjpnZXRVUygpCisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwv
YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqCisgKiA8UD4KKyAqIE9uY2UgeW91J3ZlIGNyZWF0
ZWQgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHlvdSBjYW4gcXVlcnkgaXQgZm9yIGluZm9ybWF0aW9u
IGFib3V0CisgKiBpdHNlbGYuIFVzZSA8Y29kZT5nZXRDb3VudHJ5PC9jb2RlPiB0byBnZXQgdGhl
IElTTyBDb3VudHJ5IENvZGUgYW5kCisgKiA8Y29kZT5nZXRMYW5ndWFnZTwvY29kZT4gdG8gZ2V0
IHRoZSBJU08gTGFuZ3VhZ2UgQ29kZS4gWW91IGNhbgorICogdXNlIDxjb2RlPmdldERpc3BsYXlD
b3VudHJ5PC9jb2RlPiB0byBnZXQgdGhlCisgKiBuYW1lIG9mIHRoZSBjb3VudHJ5IHN1aXRhYmxl
IGZvciBkaXNwbGF5aW5nIHRvIHRoZSB1c2VyLiBTaW1pbGFybHksCisgKiB5b3UgY2FuIHVzZSA8
Y29kZT5nZXREaXNwbGF5TGFuZ3VhZ2U8L2NvZGU+IHRvIGdldCB0aGUgbmFtZSBvZgorICogdGhl
IGxhbmd1YWdlIHN1aXRhYmxlIGZvciBkaXNwbGF5aW5nIHRvIHRoZSB1c2VyLiBJbnRlcmVzdGlu
Z2x5LAorICogdGhlIDxjb2RlPmdldERpc3BsYXlYWFg8L2NvZGU+IG1ldGhvZHMgYXJlIHRoZW1z
ZWx2ZXMgbG9jYWxlLXNlbnNpdGl2ZQorICogYW5kIGhhdmUgdHdvIHZlcnNpb25zOiBvbmUgdGhh
dCB1c2VzIHRoZSBkZWZhdWx0IGxvY2FsZSBhbmQgb25lCisgKiB0aGF0IHRha2VzIGEgbG9jYWxl
IGFzIGFuIGFyZ3VtZW50IGFuZCBkaXNwbGF5cyB0aGUgbmFtZSBvciBjb3VudHJ5IGluCisgKiBh
IGxhbmd1YWdlIGFwcHJvcHJpYXRlIHRvIHRoYXQgbG9jYWxlLgorICoKKyAqIDxQPgorICogSUNV
IHByb3ZpZGVzIGEgbnVtYmVyIG9mIGNsYXNzZXMgdGhhdCBwZXJmb3JtIGxvY2FsZS1zZW5zaXRp
dmUKKyAqIG9wZXJhdGlvbnMuIEZvciBleGFtcGxlLCB0aGUgPGNvZGU+TnVtYmVyRm9ybWF0PC9j
b2RlPiBjbGFzcyBmb3JtYXRzCisgKiBudW1iZXJzLCBjdXJyZW5jeSwgb3IgcGVyY2VudGFnZXMg
aW4gYSBsb2NhbGUtc2Vuc2l0aXZlIG1hbm5lci4gQ2xhc3NlcworICogc3VjaCBhcyA8Y29kZT5O
dW1iZXJGb3JtYXQ8L2NvZGU+IGhhdmUgYSBudW1iZXIgb2YgY29udmVuaWVuY2UgbWV0aG9kcwor
ICogZm9yIGNyZWF0aW5nIGEgZGVmYXVsdCBvYmplY3Qgb2YgdGhhdCB0eXBlLiBGb3IgZXhhbXBs
ZSwgdGhlCisgKiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGNsYXNzIHByb3ZpZGVzIHRoZXNl
IHRocmVlIGNvbnZlbmllbmNlIG1ldGhvZHMKKyAqIGZvciBjcmVhdGluZyBhIGRlZmF1bHQgPGNv
ZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBvYmplY3Q6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5c
ZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgVUVycm9yQ29kZSBzdWNjZXNzID0gVV9aRVJP
X0VSUk9SOworICogICAgIExvY2FsZSBteUxvY2FsZTsKKyAqICAgICBOdW1iZXJGb3JtYXQgKm5m
OworICoKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlSW5zdGFuY2UoIHN1Y2Nlc3Mg
KTsgICAgICAgICAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVD
dXJyZW5jeUluc3RhbmNlKCBzdWNjZXNzICk7ICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1i
ZXJGb3JtYXQ6OmNyZWF0ZVBlcmNlbnRJbnN0YW5jZSggc3VjY2VzcyApOyAgIGRlbGV0ZSBuZjsK
KyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogRWFj
aCBvZiB0aGVzZSBtZXRob2RzIGhhcyB0d28gdmFyaWFudHM7IG9uZSB3aXRoIGFuIGV4cGxpY2l0
IGxvY2FsZQorICogYW5kIG9uZSB3aXRob3V0OyB0aGUgbGF0dGVyIHVzaW5nIHRoZSBkZWZhdWx0
IGxvY2FsZS4KKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4K
KyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlSW5zdGFuY2UoIG15TG9jYWxlLCBzdWNj
ZXNzICk7ICAgICAgICAgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3Jl
YXRlQ3VycmVuY3lJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgIGRlbGV0ZSBuZjsKKyAq
ICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlUGVyY2VudEluc3RhbmNlKCBteUxvY2FsZSwg
c3VjY2VzcyApOyAgIGRlbGV0ZSBuZjsKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1
b3RlPlxlbmRodG1sb25seQorICogQSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGlzIHRoZSBtZWNoYW5p
c20gZm9yIGlkZW50aWZ5aW5nIHRoZSBraW5kIG9mIG9iamVjdAorICogKDxjb2RlPk51bWJlckZv
cm1hdDwvY29kZT4pIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gZ2V0LiBUaGUgbG9jYWxlIGlzCisg
KiA8U1RST05HPmp1c3Q8L1NUUk9ORz4gYSBtZWNoYW5pc20gZm9yIGlkZW50aWZ5aW5nIG9iamVj
dHMsCisgKiA8U1RST05HPm5vdDwvU1RST05HPiBhIGNvbnRhaW5lciBmb3IgdGhlIG9iamVjdHMg
dGhlbXNlbHZlcy4KKyAqCisgKiA8UD4KKyAqIEVhY2ggY2xhc3MgdGhhdCBwZXJmb3JtcyBsb2Nh
bGUtc2Vuc2l0aXZlIG9wZXJhdGlvbnMgYWxsb3dzIHlvdQorICogdG8gZ2V0IGFsbCB0aGUgYXZh
aWxhYmxlIG9iamVjdHMgb2YgdGhhdCB0eXBlLiBZb3UgY2FuIHNpZnQKKyAqIHRocm91Z2ggdGhl
c2Ugb2JqZWN0cyBieSBsYW5ndWFnZSwgY291bnRyeSwgb3IgdmFyaWFudCwKKyAqIGFuZCB1c2Ug
dGhlIGRpc3BsYXkgbmFtZXMgdG8gcHJlc2VudCBhIG1lbnUgdG8gdGhlIHVzZXIuCisgKiBGb3Ig
ZXhhbXBsZSwgeW91IGNhbiBjcmVhdGUgYSBtZW51IG9mIGFsbCB0aGUgY29sbGF0aW9uIG9iamVj
dHMKKyAqIHN1aXRhYmxlIGZvciBhIGdpdmVuIGxhbmd1YWdlLiBTdWNoIGNsYXNzZXMgaW1wbGVt
ZW50IHRoZXNlCisgKiB0aHJlZSBjbGFzcyBtZXRob2RzOgorICogXGh0bWxvbmx5PGJsb2NrcXVv
dGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgICAgc3RhdGljIExvY2FsZSogZ2V0QXZh
aWxhYmxlTG9jYWxlcyhpbnQzMl90JiBudW1Mb2NhbGVzKQorICogICAgICAgc3RhdGljIFVuaWNv
ZGVTdHJpbmcmIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgIG9iamVjdExvY2FsZSwKKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMb2NhbGUm
ICBkaXNwbGF5TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BsYXlOYW1lKQorICogICAgICAgc3RhdGljIFVuaWNv
ZGVTdHJpbmcmIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgIG9iamVjdExvY2FsZSwKKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5n
JiBkaXNwbGF5TmFtZSkKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRo
dG1sb25seQorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICogQHNlZSBSZXNvdXJjZUJ1bmRsZQor
ICovCitjbGFzcyBVX0NPTU1PTl9BUEkgTG9jYWxlIDogcHVibGljIFVPYmplY3QgeworcHVibGlj
OgorICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoZSBSb290IGxvY2FsZS4gQHN0YWJsZSBJ
Q1UgNC40ICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFJvb3Qodm9p
ZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJ
Q1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEVuZ2xpc2go
dm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJs
ZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEZyZW5j
aCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3Rh
YmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0R2Vy
bWFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBz
dGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRJ
dGFsaWFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2Uu
IEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBn
ZXRKYXBhbmVzZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1
YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9S
VDIgZ2V0S29yZWFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFu
Z3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQ
T1JUMiBnZXRDaGluZXNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMg
bGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVf
RVhQT1JUMiBnZXRTaW1wbGlmaWVkQ2hpbmVzZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0
YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VHJhZGl0aW9uYWxDaGluZXNlKHZvaWQpOworCisgICAg
LyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1Ug
Mi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEZyYW5jZSh2b2lk
KTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3Rh
YmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0R2Vy
bWFueSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVn
aW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9S
VDIgZ2V0SXRhbHkodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3Vu
dHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAm
VV9FWFBPUlQyIGdldEphcGFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRo
aXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBM
b2NhbGUgJlVfRVhQT1JUMiBnZXRLb3JlYSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50
IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMg
Y29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2hpbmEodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBj
b25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAg
c3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFBSQyh2b2lkKTsKKyAgICAvKiogVXNl
ZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8K
KyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VGFpd2FuKHZvaWQpOworICAg
IC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNV
IDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRVSyh2b2lkKTsK
KyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxl
IElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VVModm9p
ZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0
YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENh
bmFkYSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVn
aW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9S
VDIgZ2V0Q2FuYWRhRnJlbmNoKHZvaWQpOworCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Qg
YSBkZWZhdWx0IGxvY2FsZSBvYmplY3QsIGEgTG9jYWxlIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUg
SUQuCisgICAgICoKKyAgICAgKiBAc2VlIGdldERlZmF1bHQKKyAgICAgKiBAc2VlIHVsb2NfZ2V0
RGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZSgpOwor
CisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbG9jYWxlIGZyb20gbGFuZ3VhZ2UsIGNvdW50
cnksIHZhcmlhbnQuCisgICAgICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVuIHRoZSBjb25zdHJ1
Y3RlZCBvYmplY3Qgd2lsbCBiZSAiYm9ndXMiCisgICAgICogKGlzQm9ndXMoKSB3aWxsIHJldHVy
biBUUlVFKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYW5ndWFnZSBMb3dlcmNhc2UgdHdvLWxl
dHRlciBvciB0aHJlZS1sZXR0ZXIgSVNPLTYzOSBjb2RlLgorICAgICAqICBUaGlzIHBhcmFtZXRl
ciBjYW4gaW5zdGVhZCBiZSBhbiBJQ1Ugc3R5bGUgQyBsb2NhbGUgKGUuZy4gImVuX1VTIiksCisg
ICAgICogIGJ1dCB0aGUgb3RoZXIgcGFyYW1ldGVycyBtdXN0IG5vdCBiZSB1c2VkLgorICAgICAq
ICBUaGlzIHBhcmFtZXRlciBjYW4gYmUgTlVMTDsgaWYgc28sCisgICAgICogIHRoZSBsb2NhbGUg
aXMgaW5pdGlhbGl6ZWQgdG8gbWF0Y2ggdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAg
ICogIChUaGlzIGlzIHRoZSBzYW1lIGFzIHVzaW5nIHRoZSBkZWZhdWx0IGNvbnN0cnVjdG9yLikK
KyAgICAgKiAgUGxlYXNlIG5vdGU6IFRoZSBKYXZhIExvY2FsZSBjbGFzcyBkb2VzIE5PVCBhY2Nl
cHQgdGhlIGZvcm0KKyAgICAgKiAgJ25ldyBMb2NhbGUoImVuX1VTIiknIGJ1dCBvbmx5ICduZXcg
TG9jYWxlKCJlbiIsIlVTIiknCisgICAgICoKKyAgICAgKiBAcGFyYW0gY291bnRyeSAgVXBwZXJj
YXNlIHR3by1sZXR0ZXIgSVNPLTMxNjYgY29kZS4gKG9wdGlvbmFsKQorICAgICAqIEBwYXJhbSB2
YXJpYW50ICBVcHBlcmNhc2UgdmVuZG9yIGFuZCBicm93c2VyIHNwZWNpZmljIGNvZGUuIFNlZSBj
bGFzcworICAgICAqICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbi4gKG9wdGlvbmFsKQorICAg
ICAqIEBwYXJhbSBrZXl3b3Jkc0FuZFZhbHVlcyBBIHN0cmluZyBjb25zaXN0aW5nIG9mIGtleXdv
cmQvdmFsdWVzIHBhaXJzLCBzdWNoIGFzCisgICAgICogICAgICAgICAgICAgICAgICJjb2xsYXRp
b249cGhvbmVib29rO2N1cnJlbmN5PWV1cm8iCisgICAgICoKKyAgICAgKiBAc2VlIGdldERlZmF1
bHQKKyAgICAgKiBAc2VlIHVsb2NfZ2V0RGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIExvY2FsZSggY29uc3QgICBjaGFyICogbGFuZ3VhZ2UsCisgICAgICAgICAg
ICBjb25zdCAgIGNoYXIgKiBjb3VudHJ5ICA9IDAsCisgICAgICAgICAgICBjb25zdCAgIGNoYXIg
KiB2YXJpYW50ICA9IDAsCisgICAgICAgICAgICBjb25zdCAgIGNoYXIgKiBrZXl3b3Jkc0FuZFZh
bHVlcyA9IDApOworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgYSBMb2NhbGUgb2JqZWN0
IGZyb20gYW5vdGhlciBMb2NhbGUgb2JqZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVy
IFRoZSBMb2NhbGUgb2JqZWN0IGJlaW5nIGNvcGllZCBpbi4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBMb2NhbGUoY29uc3QgICAgTG9jYWxlJiBvdGhlcik7CisKKworICAg
IC8qKgorICAgICAqIERlc3RydWN0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIH5Mb2NhbGUoKSA7CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlcyB0aGUg
ZW50aXJlIGNvbnRlbnRzIG9mICp0aGlzIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAg
KgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgTG9jYWxlIG9iamVjdCBiZWluZyBjb3BpZWQgaW4u
CisgICAgICogQHJldHVybiAgICAgICp0aGlzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgTG9jYWxlJiBvcGVyYXRvcj0oY29uc3QgTG9jYWxlJiBvdGhlcik7CisKKyAgICAv
KioKKyAgICAgKiBDaGVja3MgaWYgdHdvIGxvY2FsZSBrZXlzIGFyZSB0aGUgc2FtZS4KKyAgICAg
KgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgbG9jYWxlIGtleSBvYmplY3QgdG8gYmUgY29tcGFy
ZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1cm4gICAgICBUcnVlIGlmIHRoZSB0d28gbG9jYWxl
IGtleXMgYXJlIHRoZSBzYW1lLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgVUJvb2wgICBvcGVyYXRvcj09KGNvbnN0ICAgIExvY2FsZSYgICAg
IG90aGVyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0d28gbG9jYWxlIGtl
eXMgYXJlIG5vdCB0aGUgc2FtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgbG9j
YWxlIGtleSBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1cm4g
ICAgICBUcnVlIGlmIHRoZSB0d28gbG9jYWxlIGtleXMgYXJlIG5vdCB0aGUgc2FtZSwgZmFsc2UK
KyAgICAgKiAgICAgICAgICAgICAgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIFVCb29sICAgb3BlcmF0b3IhPShjb25zdCAgICBMb2NhbGUmICAgICBvdGhl
cikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBDbG9uZSB0aGlzIG9iamVjdC4KKyAgICAgKiBD
bG9uZXMgY2FuIGJlIHVzZWQgY29uY3VycmVudGx5IGluIG11bHRpcGxlIHRocmVhZHMuCisgICAg
ICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVuIE5VTEwgaXMgcmV0dXJuZWQuCisgICAgICogVGhl
IGNhbGxlciBtdXN0IGRlbGV0ZSB0aGUgY2xvbmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEg
Y2xvbmUgb2YgdGhpcyBvYmplY3QKKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RHluYW1pY0NsYXNz
SUQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBMb2NhbGUgKmNsb25lKCkg
Y29uc3Q7CisKKyNpZm5kZWYgVV9ISURFX1NZU1RFTV9BUEkKKyAgICAvKioKKyAgICAgKiBDb21t
b24gbWV0aG9kcyBvZiBnZXR0aW5nIHRoZSBjdXJyZW50IGRlZmF1bHQgTG9jYWxlLiBVc2VkIGZv
ciB0aGUKKyAgICAgKiBwcmVzZW50YXRpb246IG1lbnVzLCBkaWFsb2dzLCBldGMuIEdlbmVyYWxs
eSBzZXQgb25jZSB3aGVuIHlvdXIgYXBwbGV0IG9yCisgICAgICogYXBwbGljYXRpb24gaXMgaW5p
dGlhbGl6ZWQsIHRoZW4gbmV2ZXIgcmVzZXQuIChJZiB5b3UgZG8gcmVzZXQgdGhlCisgICAgICog
ZGVmYXVsdCBsb2NhbGUsIHlvdSBwcm9iYWJseSB3YW50IHRvIHJlbG9hZCB5b3VyIEdVSSwgc28g
dGhhdCB0aGUgY2hhbmdlCisgICAgICogaXMgcmVmbGVjdGVkIGluIHlvdXIgaW50ZXJmYWNlLikK
KyAgICAgKgorICAgICAqIE1vcmUgYWR2YW5jZWQgcHJvZ3JhbXMgd2lsbCBhbGxvdyB1c2VycyB0
byB1c2UgZGlmZmVyZW50IGxvY2FsZXMgZm9yCisgICAgICogZGlmZmVyZW50IGZpZWxkcywgZS5n
LiBpbiBhIHNwcmVhZHNoZWV0LgorICAgICAqCisgICAgICogTm90ZSB0aGF0IHRoZSBpbml0aWFs
IHNldHRpbmcgd2lsbCBtYXRjaCB0aGUgaG9zdCBzeXN0ZW0uCisgICAgICogQHJldHVybiBhIHJl
ZmVyZW5jZSB0byB0aGUgTG9jYWxlIG9iamVjdCBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIElECisg
ICAgICogQHN5c3RlbQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRp
YyBjb25zdCBMb2NhbGUmIFVfRVhQT1JUMiBnZXREZWZhdWx0KHZvaWQpOworCisgICAgLyoqCisg
ICAgICogU2V0cyB0aGUgZGVmYXVsdC4gTm9ybWFsbHkgc2V0IG9uY2UgYXQgdGhlIGJlZ2lubmlu
ZyBvZiBhIHByb2Nlc3MsCisgICAgICogdGhlbiBuZXZlciByZXNldC4KKyAgICAgKiBzZXREZWZh
dWx0KCkgb25seSBjaGFuZ2VzIElDVSdzIGRlZmF1bHQgbG9jYWxlIElELCA8c3Ryb25nPm5vdDwv
c3Ryb25nPgorICAgICAqIHRoZSBkZWZhdWx0IGxvY2FsZSBJRCBvZiB0aGUgcnVudGltZSBlbnZp
cm9ubWVudC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuZXdMb2NhbGUgTG9jYWxlIHRvIHNldCB0
by4gIElmIE5VTEwsIHNldCB0byB0aGUgdmFsdWUgb2J0YWluZWQKKyAgICAgKiAgICAgICAgICAg
ICAgICAgIGZyb20gdGhlIHJ1bnRpbWUgZW52aXJvbmVtZW50LgorICAgICAqIEBwYXJhbSBzdWNj
ZXNzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEBzeXN0ZW0KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBVX0VYUE9SVDIgc2V0RGVmYXVsdChjb25zdCBM
b2NhbGUmIG5ld0xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBV
RXJyb3JDb2RlJiAgIHN1Y2Nlc3MpOworI2VuZGlmICAvKiBVX0hJREVfU1lTVEVNX0FQSSAqLwor
CisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGxvY2FsZSB3aGljaCBoYXMgaGFkIG1pbmltYWwg
Y2Fub25pY2FsaXphdGlvbgorICAgICAqIGFzIHBlciB1bG9jX2dldE5hbWUoKS4KKyAgICAgKiBA
cGFyYW0gbmFtZSBUaGUgbmFtZSB0byBjcmVhdGUgZnJvbS4gIElmIG5hbWUgaXMgbnVsbCwKKyAg
ICAgKiAgdGhlIGRlZmF1bHQgTG9jYWxlIGlzIHVzZWQuCisgICAgICogQHJldHVybiBuZXcgbG9j
YWxlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqIEBzZWUgdWxvY19nZXRO
YW1lCisgICAgICovCisgICAgc3RhdGljIExvY2FsZSBVX0VYUE9SVDIgY3JlYXRlRnJvbU5hbWUo
Y29uc3QgY2hhciAqbmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbG9jYWxlIGZy
b20gdGhlIGdpdmVuIHN0cmluZyBhZnRlciBjYW5vbmljYWxpemluZworICAgICAqIHRoZSBzdHJp
bmcgYnkgY2FsbGluZyB1bG9jX2Nhbm9uaWNhbGl6ZSgpLgorICAgICAqIEBwYXJhbSBuYW1lIHRo
ZSBsb2NhbGUgSUQgdG8gY3JlYXRlIGZyb20uICBNdXN0IG5vdCBiZSBOVUxMLgorICAgICAqIEBy
ZXR1cm4gYSBuZXcgbG9jYWxlIG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBuYW1l
CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICogQHNlZSB1bG9jX2Nhbm9uaWNhbGl6ZQor
ICAgICAqLworICAgIHN0YXRpYyBMb2NhbGUgVV9FWFBPUlQyIGNyZWF0ZUNhbm9uaWNhbChjb25z
dCBjaGFyKiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIElT
Ty02MzkgbGFuZ3VhZ2UgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhl
IGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3Qg
Y2hhciAqICBnZXRMYW5ndWFnZSggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMg
dGhlIGxvY2FsZSdzIElTTy0xNTkyNCBhYmJyZXZpYXRpb24gc2NyaXB0IGNvZGUuCisgICAgICog
QHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHNlZSB1c2NyaXB0X2dl
dFNob3J0TmFtZQorICAgICAqIEBzZWUgdXNjcmlwdF9nZXRDb2RlCisgICAgICogQHN0YWJsZSBJ
Q1UgMi44CisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0U2NyaXB0KCApIGNv
bnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTMxNjYgY291
bnRyeSBjb2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdl
dENvdW50cnkoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUn
cyB2YXJpYW50IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2Rl
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIg
KiAgZ2V0VmFyaWFudCggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHBy
b2dyYW1tYXRpYyBuYW1lIG9mIHRoZSBlbnRpcmUgbG9jYWxlLCB3aXRoIHRoZSBsYW5ndWFnZSwK
KyAgICAgKiBjb3VudHJ5IGFuZCB2YXJpYW50IHNlcGFyYXRlZCBieSB1bmRlcmJhcnMuIElmIGEg
ZmllbGQgaXMgbWlzc2luZywgdXAKKyAgICAgKiB0byB0d28gbGVhZGluZyB1bmRlcmJhcnMgd2ls
bCBvY2N1ci4gRXhhbXBsZTogImVuIiwgImRlX0RFIiwgImVuX1VTX1dJTiIsCisgICAgICogImRl
X19QT1NJWCIsICJmcl9fTUFDIiwgIl9fTUFDIiwgIl9NVCIsICJfRlJfRVVSTyIKKyAgICAgKiBA
cmV0dXJuICAgICAgQSBwb2ludGVyIHRvICJuYW1lIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqIGdldE5hbWUoKSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIFJldHVybnMgdGhlIHByb2dyYW1tYXRpYyBuYW1lIG9mIHRoZSBlbnRpcmUg
bG9jYWxlIGFzIGdldE5hbWUoKSB3b3VsZCByZXR1cm4sCisgICAgICogYnV0IHdpdGhvdXQga2V5
d29yZHMuCisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0byAibmFtZSIuCisgICAgICog
QHNlZSBnZXROYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgY29uc3Qg
Y2hhciAqIGdldEJhc2VOYW1lKCkgY29uc3Q7CisKKworICAgIC8qKgorICAgICAqIEdldHMgdGhl
IGxpc3Qgb2Yga2V5d29yZHMgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqCisgICAg
ICogQHBhcmFtIHN0YXR1cyB0aGUgc3RhdHVzIGNvZGUKKyAgICAgKiBAcmV0dXJuIHBvaW50ZXIg
dG8gU3RyaW5nRW51bWVyYXRpb24gY2xhc3MsIG9yIE5VTEwgaWYgdGhlcmUgYXJlIG5vIGtleXdv
cmRzLiAKKyAgICAgKiBDbGllbnQgbXVzdCBkaXNwb3NlIG9mIGl0IGJ5IGNhbGxpbmcgZGVsZXRl
LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFN0cmluZ0VudW1lcmF0aW9u
ICogY3JlYXRlS2V5d29yZHMoVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIEdldHMgdGhlIHZhbHVlIGZvciBhIGtleXdvcmQuCisgICAgICoKKyAgICAgKiBAcGFy
YW0ga2V5d29yZE5hbWUgbmFtZSBvZiB0aGUga2V5d29yZCBmb3Igd2hpY2ggd2Ugd2FudCB0aGUg
dmFsdWUuIENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHBhcmFtIGJ1ZmZlciBUaGUgYnVmZmVy
IHRvIHJlY2VpdmUgdGhlIGtleXdvcmQgdmFsdWUuCisgICAgICogQHBhcmFtIGJ1ZmZlckNhcGFj
aXR5IFRoZSBjYXBhY2l0eSBvZiByZWNlaXZpbmcgYnVmZmVyCisgICAgICogQHBhcmFtIHN0YXR1
cyBSZXR1cm5zIGFueSBlcnJvciBpbmZvcm1hdGlvbiB3aGlsZSBwZXJmb3JtaW5nIHRoaXMgb3Bl
cmF0aW9uLgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUga2V5d29yZCB2YWx1ZQor
ICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgaW50MzJfdCBnZXRL
ZXl3b3JkVmFsdWUoY29uc3QgY2hhcioga2V5d29yZE5hbWUsIGNoYXIgKmJ1ZmZlciwgaW50MzJf
dCBidWZmZXJDYXBhY2l0eSwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIFNldHMgb3IgcmVtb3ZlcyB0aGUgdmFsdWUgZm9yIGEga2V5d29yZC4KKyAgICAgKgor
ICAgICAqIEZvciByZW1vdmluZyBhbGwga2V5d29yZHMsIHVzZSBnZXRCYXNlTmFtZSgpLAorICAg
ICAqIGFuZCBjb25zdHJ1Y3QgYSBuZXcgTG9jYWxlIGlmIGl0IGRpZmZlcnMgZnJvbSBnZXROYW1l
KCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5d29yZE5hbWUgbmFtZSBvZiB0aGUga2V5d29y
ZCB0byBiZSBzZXQuIENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHBhcmFtIGtleXdvcmRWYWx1
ZSB2YWx1ZSBvZiB0aGUga2V5d29yZCB0byBiZSBzZXQuIElmIDAtbGVuZ3RoIG9yCisgICAgICog
IE5VTEwsIHdpbGwgcmVzdWx0IGluIHRoZSBrZXl3b3JkIGJlaW5nIHJlbW92ZWQuIE5vIGVycm9y
IGlzIGdpdmVuIGlmCisgICAgICogIHRoYXQga2V5d29yZCBkb2VzIG5vdCBleGlzdC4KKyAgICAg
KiBAcGFyYW0gc3RhdHVzIFJldHVybnMgYW55IGVycm9yIGluZm9ybWF0aW9uIHdoaWxlIHBlcmZv
cm1pbmcgdGhpcyBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAg
ICAqLworICAgIHZvaWQgc2V0S2V5d29yZFZhbHVlKGNvbnN0IGNoYXIqIGtleXdvcmROYW1lLCBj
b25zdCBjaGFyKiBrZXl3b3JkVmFsdWUsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioK
KyAgICAgKiByZXR1cm5zIHRoZSBsb2NhbGUncyB0aHJlZS1sZXR0ZXIgbGFuZ3VhZ2UgY29kZSwg
YXMgc3BlY2lmaWVkCisgICAgICogaW4gSVNPIGRyYWZ0IHN0YW5kYXJkIElTTy02MzktMi4KKyAg
ICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUsIG9yIGFuIGVtcHR5IHN0cmlu
ZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRJ
U08zTGFuZ3VhZ2UoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3
aXRoIHRoZSBsb2NhbGUncyB0aHJlZS1sZXR0ZXIgSVNPLTMxNjYgY291bnRyeSBjb2RlLgorICAg
ICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZSwgb3IgYW4gZW1wdHkgc3RyaW5n
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgY29uc3QgY2hhciAqIGdldElT
TzNDb3VudHJ5KCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBXaW5kb3dz
IExDSUQgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGlzIGxvY2FsZS4KKyAgICAgKiBUaGlzIHZh
bHVlIGlzIHN0b3JlZCBpbiB0aGUgcmVzb3VyY2UgZGF0YSBmb3IgdGhlIGxvY2FsZSBhcyBhIG9u
ZS10by1mb3VyLWRpZ2l0CisgICAgICogaGV4YWRlY2ltYWwgbnVtYmVyLiAgSWYgdGhlIHJlc291
cmNlIGlzIG1pc3NpbmcsIGluIHRoZSB3cm9uZyBmb3JtYXQsIG9yCisgICAgICogdGhlcmUgaXMg
bm8gV2luZG93cyBMQ0lEIHZhbHVlIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhpcyBsb2NhbGUsIHJl
dHVybnMgMC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB1aW50MzJfdCAg
ICAgICAgZ2V0TENJRCh2b2lkKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGlzIHdy
aXR0ZW4gcmlnaHQtdG8tbGVmdC4KKyAgICAgKiBJZiB0aGVyZSBpcyBubyBzY3JpcHQgc3VidGFn
LCB0aGVuIHRoZSBsaWtlbHkgc2NyaXB0IGlzIHVzZWQsIHNlZSB1bG9jX2FkZExpa2VseVN1YnRh
Z3MoKS4KKyAgICAgKiBJZiBubyBsaWtlbHkgc2NyaXB0IGlzIGtub3duLCB0aGVuIEZBTFNFIGlz
IHJldHVybmVkLgorICAgICAqCisgICAgICogQSBzY3JpcHQgaXMgcmlnaHQtdG8tbGVmdCBhY2Nv
cmRpbmcgdG8gdGhlIENMRFIgc2NyaXB0IG1ldGFkYXRhCisgICAgICogd2hpY2ggY29ycmVzcG9u
ZHMgdG8gd2hldGhlciB0aGUgc2NyaXB0J3MgbGV0dGVycyBoYXZlIEJpZGlfQ2xhc3M9UiBvciBB
TC4KKyAgICAgKgorICAgICAqIFJldHVybnMgVFJVRSBmb3IgImFyIiBhbmQgImVuLUhlYnIiLCBG
QUxTRSBmb3IgInpoIiBhbmQgImZhLUN5cmwiLgorICAgICAqCisgICAgICogQHJldHVybiBUUlVF
IGlmIHRoZSBsb2NhbGUncyBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0CisgICAgICog
QGRyYWZ0IElDVSA1NAorICAgICAqLworICAgIFVCb29sIGlzUmlnaHRUb0xlZnQoKSBjb25zdDsK
KyNlbmRpZiAgLyogVV9ISURFX0RSQUZUX0FQSSAqLworCisgICAgLyoqCisgICAgICogRmlsbHMg
aW4gImRpc3BMYW5nIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgaW4g
YSBmb3JtYXQgc3VpdGFibGUgZm9yCisgICAgICogdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0
IGxvY2FsZS4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcwor
ICAgICAqICJmciIgYW5kIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVu
IiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwTGFuZyB0byAiRnJlbmNoIi4K
KyAgICAgKiBAcGFyYW0gZGlzcExhbmcgIFJlY2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRpc3BsYXkg
bmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwTGFuZyIu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdl
dERpc3BsYXlMYW5ndWFnZShVbmljb2RlU3RyaW5nJiAgIGRpc3BMYW5nKSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwTGFuZyIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxv
Y2FsZSdzIGxhbmd1YWdlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvcgorICAgICAqIHVzZXIgZGlz
cGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3IgZXhh
bXBsZSwgaWYgdGhlIGxvY2FsZSdzCisgICAgICogbGFuZ3VhZ2UgY29kZSBpcyAiZW4iIGFuZCBk
aXNwbGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZnIiLCB0aGlzIGZ1bmN0aW9uIHdvdWxk
IHNldAorICAgICAqIGRpc3BMYW5nIHRvICJBbmdsYWlzIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxh
eUxvY2FsZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBu
YW1lLiAgSW4gb3RoZXIgd29yZHMsCisgICAgICogICAgICAgICAgICAgICAgICBpZiB0aGUgbG9j
YWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCBwYXNzaW5nIExvY2FsZTo6Z2V0RnJlbmNoKCkg
Zm9yCisgICAgICogICAgICAgICAgICAgICAgICBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBp
biAiQW5nbGFpcyIsIHdoaWxlIHBhc3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKQorICAgICAqICAg
ICAgICAgICAgICAgICAgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICJFbmdsaXNj
aCIuCisgICAgICogQHBhcmFtIGRpc3BMYW5nICBSZWNlaXZlcyB0aGUgbGFuZ3VhZ2UncyBkaXNw
bGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcExh
bmciLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcm
ICBnZXREaXNwbGF5TGFuZ3VhZ2UoIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2Nh
bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmlj
b2RlU3RyaW5nJiAgZGlzcExhbmcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4g
ImRpc3BTY3JpcHQiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBzY3JpcHQgaW4gYSBm
b3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxv
Y2FsZS4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGNvZGUKKyAgICAgKiBp
cyAiTEFUTiIgYW5kIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwg
dGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwU2NyaXB0IHRvICJMYXRpbiIuCisg
ICAgICogQHBhcmFtIGRpc3BTY3JpcHQgICAgUmVjZWl2ZXMgdGhlIHNjcmlwdHMncyBkaXNwbGF5
IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BT
Y3JpcHQiLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFVuaWNvZGVTdHJp
bmcmICBnZXREaXNwbGF5U2NyaXB0KCAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwU2NyaXB0
KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwU2NyaXB0IiB3aXRoIHRo
ZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAg
ICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlM
b2NhbGUiLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncworICAgICAqIHNjcmlwdCBjb2Rl
IGlzICJMQVROIiBhbmQgZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhp
cyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwU2NyaXB0IHRvICJMYXRpbiIuCisgICAg
ICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1
c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlcgorICAgICAqICAgICAgICAgICAgICAg
ICAgICAgIHdvcmRzLCBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGNvZGUgaXMgIkxBVE4iLCBwYXNz
aW5nCisgICAgICogICAgICAgICAgICAgICAgICAgICAgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3Ig
ZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIiIsIHdoaWxlCisgICAgICogICAgICAgICAg
ICAgICAgICAgICAgcGFzc2luZyBMb2NhbGU6OmdldEdlcm1hbigpIGZvciBkaXNwbGF5TG9jYWxl
IHdvdWxkIHJlc3VsdCBpbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICIiLgorICAgICAq
IEBwYXJhbSBkaXNwU2NyaXB0ICAgIFJlY2VpdmVzIHRoZSBzY3JpcHRzJ3MgZGlzcGxheSBuYW1l
LgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwU2NyaXB0
Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAg
Z2V0RGlzcGxheVNjcmlwdCggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVT
dHJpbmcmICBkaXNwU2NyaXB0KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJk
aXNwQ291bnRyeSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGNvdW50cnkgaW4gYSBm
b3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxv
Y2FsZS4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MgY291bnRyeSBjb2RlCisgICAgICog
aXMgIkZSIiBhbmQgdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0
aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BDb3VudHJ5IHRvICJGcmFuY2UiLgor
ICAgICAqIEBwYXJhbSBkaXNwQ291bnRyeSAgIFJlY2VpdmVzIHRoZSBjb3VudHJ5J3MgZGlzcGxh
eSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNw
Q291bnRyeSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0
cmluZyYgIGdldERpc3BsYXlDb3VudHJ5KCAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwQ291
bnRyeSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcENvdW50cnkiIHdp
dGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxl
CisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlz
cGxheUxvY2FsZSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzCisgICAgICogY291bnRy
eSBjb2RlIGlzICJVUyIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJmciIs
IHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcENvdW50cnkgdG8gIiZFYWN1dGU7
dGF0cy1VbmlzIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgICAgIFNwZWNpZmllcyB0
aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIEluIG90aGVyCisgICAg
ICogICAgICAgICAgICAgICAgICAgICAgd29yZHMsIGlmIHRoZSBsb2NhbGUncyBjb3VudHJ5IGNv
ZGUgaXMgIlVTIiwgcGFzc2luZworICAgICAqICAgICAgICAgICAgICAgICAgICAgIExvY2FsZTo6
Z2V0RnJlbmNoKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICImRWFjdXRlO3Rh
dHMtVW5pcyIsIHdoaWxlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgcGFzc2luZyBMb2Nh
bGU6OmdldEdlcm1hbigpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbgorICAgICAq
ICAgICAgICAgICAgICAgICAgICAgICJWZXJlaW5pZ3RlIFN0YWF0ZW4iLgorICAgICAqIEBwYXJh
bSBkaXNwQ291bnRyeSAgIFJlY2VpdmVzIHRoZSBjb3VudHJ5J3MgZGlzcGxheSBuYW1lLgorICAg
ICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwQ291bnRyeSIuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERp
c3BsYXlDb3VudHJ5KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJp
bmcmICBkaXNwQ291bnRyeSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlz
cFZhciIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgY29kZSBpbiBhIGZv
cm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9j
YWxlLgorICAgICAqIEBwYXJhbSBkaXNwVmFyICAgUmVjZWl2ZXMgdGhlIHZhcmlhbnQncyBuYW1l
LgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BWYXIiLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNw
bGF5VmFyaWFudCggICAgICBVbmljb2RlU3RyaW5nJiBkaXNwVmFyKSBjb25zdDsKKworICAgIC8q
KgorICAgICAqIEZpbGxzIGluICJkaXNwVmFyIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxl
J3MgdmFyaWFudCBjb2RlIGluIGEgZm9ybWF0CisgICAgICogc3VpdGFibGUgZm9yIHVzZXIgZGlz
cGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuCisgICAgICog
QHBhcmFtIGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8g
ZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcGFyYW0gZGlzcFZhciAgIFJlY2VpdmVzIHRoZSB2
YXJpYW50J3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVu
Y2UgdG8gImRpc3BWYXIiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVu
aWNvZGVTdHJpbmcmICBnZXREaXNwbGF5VmFyaWFudCggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAg
IGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBVbmljb2RlU3RyaW5nJiAgZGlzcFZhcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAg
KiBGaWxscyBpbiAibmFtZSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSBpbiBhIGZvcm1h
dCBzdWl0YWJsZSBmb3IgdXNlciBkaXNwbGF5CisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9jYWxl
LiAgVGhpcyBmdW5jdGlvbiB1c2VzIGdldERpc3BsYXlMYW5ndWFnZSgpLCBnZXREaXNwbGF5Q291
bnRyeSgpLAorICAgICAqIGFuZCBnZXREaXNwbGF5VmFyaWFudCgpIHRvIGRvIGl0cyB3b3JrLCBh
bmQgb3V0cHV0cyB0aGUgZGlzcGxheSBuYW1lIGluIHRoZSBmb3JtYXQKKyAgICAgKiAibGFuZ3Vh
Z2UgKGNvdW50cnlbLHZhcmlhbnRdKSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGRlZmF1bHQgbG9j
YWxlIGlzIGVuX1VTLCB0aGVuCisgICAgICogZnJfRlIncyBkaXNwbGF5IG5hbWUgd291bGQgYmUg
IkZyZW5jaCAoRnJhbmNlKSIsIGFuZCBlc19NWF9UcmFkaXRpb25hbCdzIGRpc3BsYXkgbmFtZQor
ICAgICAqIHdvdWxkIGJlICJTcGFuaXNoIChNZXhpY28sVHJhZGl0aW9uYWwpIi4KKyAgICAgKiBA
cGFyYW0gbmFtZSAgUmVjZWl2ZXMgdGhlIGxvY2FsZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBA
cmV0dXJuICAgICAgQSByZWZlcmVuY2UgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TmFtZSggICAgICAgICBV
bmljb2RlU3RyaW5nJiAgbmFtZSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAi
bmFtZSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBm
b3IgdXNlciBkaXNwbGF5CisgICAgICogaW4gdGhlIGxvY2FsZSBzcGVjZmllZCBieSAiZGlzcGxh
eUxvY2FsZSIuICBUaGlzIGZ1bmN0aW9uIHVzZXMgZ2V0RGlzcGxheUxhbmd1YWdlKCksCisgICAg
ICogZ2V0RGlzcGxheUNvdW50cnkoKSwgYW5kIGdldERpc3BsYXlWYXJpYW50KCkgdG8gZG8gaXRz
IHdvcmssIGFuZCBvdXRwdXRzIHRoZSBkaXNwbGF5CisgICAgICogbmFtZSBpbiB0aGUgZm9ybWF0
ICJsYW5ndWFnZSAoY291bnRyeVssdmFyaWFudF0pIi4gIEZvciBleGFtcGxlLCBpZiBkaXNwbGF5
TG9jYWxlIGlzCisgICAgICogZnJfRlIsIHRoZW4gZW5fVVMncyBkaXNwbGF5IG5hbWUgd291bGQg
YmUgIkFuZ2xhaXMgKCZFYWN1dGU7dGF0cy1VbmlzKSIsIGFuZCBub19OT19OWSdzCisgICAgICog
ZGlzcGxheSBuYW1lIHdvdWxkIGJlICJub3J2JmVhY3V0ZTtnaWVuIChOb3J2JmVncmF2ZTtnZSxO
WSkiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0
byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHBhcmFtIG5hbWUgICAgICBS
ZWNlaXZlcyB0aGUgbG9jYWxlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAg
ICAgQSByZWZlcmVuY2UgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TmFtZSggY29uc3QgICBMb2NhbGUmICAg
ICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVW5pY29kZVN0cmluZyYgIG5hbWUpIGNvbnN0OworCisgICAgLyoqCisgICAgICog
R2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGUgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICBoYXNoQ29kZSh2b2lkKSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGxvY2FsZSB0byBib2d1cworICAgICAqIEEgYm9n
dXMgbG9jYWxlIHJlcHJlc2VudHMgYSBub24tZXhpc3RpbmcgbG9jYWxlIGFzc29jaWF0ZWQKKyAg
ICAgKiB3aXRoIHNlcnZpY2VzIHRoYXQgY2FuIGJlIGluc3RhbnRpYXRlZCBmcm9tIG5vbi1sb2Nh
bGUgZGF0YQorICAgICAqIGluIGFkZGl0aW9uIHRvIGxvY2FsZSAoZm9yIGV4YW1wbGUsIGNvbGxh
dGlvbiBjYW4gYmUKKyAgICAgKiBpbnN0YW50aWF0ZWQgZnJvbSBhIGxvY2FsZSBhbmQgZnJvbSBh
IHJ1bGUgc2V0KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICB2b2lkIHNl
dFRvQm9ndXMoKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGJvZ3VzIHN0YXRlLiBMb2Nh
bGUgb2JqZWN0IGNhbiBiZSBib2d1cyBpZiBpdCBkb2Vzbid0IGV4aXN0CisgICAgICogQHJldHVy
biBGQUxTRSBpZiBpdCBpcyBhIHJlYWwgbG9jYWxlLCBUUlVFIGlmIGl0IGlzIGEgYm9ndXMgbG9j
YWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgVUJvb2wgaXNCb2d1cyh2
b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBpbnN0
YWxsZWQgbG9jYWxlcy4KKyAgICAgKiBAcGFyYW0gY291bnQgUmVjZWl2ZXMgdGhlIG51bWJlciBv
ZiBsb2NhbGVzIGluIHRoZSBsaXN0LgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8g
YW4gYXJyYXkgb2YgTG9jYWxlIG9iamVjdHMuICBUaGlzIGFycmF5IGlzIHRoZSBsaXN0CisgICAg
ICogICAgICAgICAgICAgIG9mIGFsbCBsb2NhbGVzIHdpdGggaW5zdGFsbGVkIHJlc291cmNlIGZp
bGVzLiAgVGhlIGNhbGxlZCBkb2VzIE5PVAorICAgICAqICAgICAgICAgICAgICBnZXQgb3duZXJz
aGlwIG9mIHRoaXMgbGlzdCwgYW5kIG11c3QgTk9UIGRlbGV0ZSBpdC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlKiBVX0VYUE9SVDIgZ2V0
QXZhaWxhYmxlTG9jYWxlcyhpbnQzMl90JiBjb3VudCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRz
IGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIDItbGV0dGVyIGNvdW50cnkgY29kZXMgZGVmaW5lZCBp
biBJU08gMzE2Ni4gIFRoaXMgaXMgYQorICAgICAqIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgcG9p
bnRlcnMgdG8gYXJyYXlzIG9mIGNoYXIuICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlCisgICAg
ICogb3duZWQgYnkgSUNVLS0gZG8gbm90IGRlbGV0ZSB0aGVtLCBhbmQgZG8gbm90IHdyaXRlIHRo
cm91Z2ggdGhlbS4gIFRoZSBhcnJheSBpcworICAgICAqIHRlcm1pbmF0ZWQgd2l0aCBhIG51bGwg
cG9pbnRlci4KKyAgICAgKiBAcmV0dXJuIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGNvdW50cnkg
Y29kZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3Qg
Y2hhciogY29uc3QqIFVfRVhQT1JUMiBnZXRJU09Db3VudHJpZXMoKTsKKworICAgIC8qKgorICAg
ICAqIEdldHMgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgbGFuZ3VhZ2UgY29kZXMgZGVmaW5lZCBp
biBJU08gNjM5LiAgVGhpcyBpcyBhIHBvaW50ZXIKKyAgICAgKiB0byBhbiBhcnJheSBvZiBwb2lu
dGVycyB0byBhcnJheXMgb2YgY2hhci4gIEFsbCBvZiB0aGVzZSBwb2ludGVycyBhcmUgb3duZWQK
KyAgICAgKiBieSBJQ1UtLSBkbyBub3QgZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhy
b3VnaCB0aGVtLiAgVGhlIGFycmF5IGlzCisgICAgICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBw
b2ludGVyLgorICAgICAqIEByZXR1cm4gYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgbGFuZ3VhZ2Ug
Y29kZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3Qg
Y2hhciogY29uc3QqIFVfRVhQT1JUMiBnZXRJU09MYW5ndWFnZXMoKTsKKworICAgIC8qKgorICAg
ICAqIElDVSAicG9vciBtYW4ncyBSVFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGlzIGNs
YXNzLgorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgc3RhdGlj
IFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKCk7CisKKyAgICAvKioKKyAgICAg
KiBJQ1UgInBvb3IgbWFuJ3MgUlRUSSIsIHJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhlIGFjdHVh
bCBjbGFzcy4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHZp
cnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQoKSBjb25zdDsKKworcHJvdGVjdGVkOiAv
KiBvbmx5IHByb3RlY3RlZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gRE8gTk9UIFVTRS4gKi8KKyNp
Zm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAqIFNldCB0aGlzIGZyb20g
YSBzaW5nbGUgUE9TSVggc3R5bGUgbG9jYWxlIHN0cmluZy4KKyAgICAgKiBAaW50ZXJuYWwKKyAg
ICAgKi8KKyAgICB2b2lkIHNldEZyb21QT1NJWElEKGNvbnN0IGNoYXIgKnBvc2l4SUQpOworI2Vu
ZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKK3ByaXZhdGU6CisgICAgLyoqCisgICAg
ICogSW5pdGlhbGl6ZSB0aGUgbG9jYWxlIG9iamVjdCB3aXRoIGEgbmV3IG5hbWUuCisgICAgICog
V2FzIGRlcHJlY2F0ZWQgLSB1c2VkIGluIGltcGxlbWVudGF0aW9uIC0gbW92ZWQgaW50ZXJuYWwK
KyAgICAgKgorICAgICAqIEBwYXJhbSBjTG9jYWxlSUQgVGhlIG5ldyBsb2NhbGUgbmFtZS4KKyAg
ICAgKiBAcGFyYW0gY2Fub25pY2FsaXplIHdoZXRoZXIgdG8gY2FsbCB1bG9jX2Nhbm9uaWNhbGl6
ZSBvbiBjTG9jYWxlSUQKKyAgICAgKi8KKyAgICBMb2NhbGUmIGluaXQoY29uc3QgY2hhciogY0xv
Y2FsZUlELCBVQm9vbCBjYW5vbmljYWxpemUpOworCisgICAgLyoKKyAgICAgKiBJbnRlcm5hbCBj
b25zdHJ1Y3RvciB0byBhbGxvdyBjb25zdHJ1Y3Rpb24gb2YgYSBsb2NhbGUgb2JqZWN0IHdpdGgK
KyAgICAgKiAgIE5PIHNpZGUgZWZmZWN0cy4gICAoRGVmYXVsdCBjb25zdHJ1Y3RvciB0cmllcyB0
byBnZXQKKyAgICAgKiAgIHRoZSBkZWZhdWx0IGxvY2FsZS4pCisgICAgICovCisgICAgZW51bSBF
TG9jYWxlVHlwZSB7CisgICAgICAgIGVCT0dVUworICAgIH07CisgICAgTG9jYWxlKEVMb2NhbGVU
eXBlKTsKKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgdGhlIGxvY2FsZSBjYWNoZSBmb3Ig
Y29tbW9ubHkgdXNlZCBsb2NhbGVzCisgICAgICovCisgICAgc3RhdGljIExvY2FsZSAqZ2V0TG9j
YWxlQ2FjaGUodm9pZCk7CisKKyAgICBjaGFyIGxhbmd1YWdlW1VMT0NfTEFOR19DQVBBQ0lUWV07
CisgICAgY2hhciBzY3JpcHRbVUxPQ19TQ1JJUFRfQ0FQQUNJVFldOworICAgIGNoYXIgY291bnRy
eVtVTE9DX0NPVU5UUllfQ0FQQUNJVFldOworICAgIGludDMyX3QgdmFyaWFudEJlZ2luOworICAg
IGNoYXIqIGZ1bGxOYW1lOworICAgIGNoYXIgZnVsbE5hbWVCdWZmZXJbVUxPQ19GVUxMTkFNRV9D
QVBBQ0lUWV07CisgICAgLy8gbmFtZSB3aXRob3V0IGtleXdvcmRzCisgICAgY2hhciogYmFzZU5h
bWU7CisgICAgdm9pZCBpbml0QmFzZU5hbWUoVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIFVC
b29sIGZJc0JvZ3VzOworCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmZ2V0TG9jYWxlKGludCBs
b2NpZCk7CisKKyAgICAvKioKKyAgICAgKiBBIGZyaWVuZCB0byBhbGxvdyB0aGUgZGVmYXVsdCBs
b2NhbGUgdG8gYmUgc2V0IGJ5IGVpdGhlciB0aGUgQyBvciBDKysgQVBJLgorICAgICAqIEBpbnRl
cm5hbAorICAgICAqLworICAgIGZyaWVuZCBMb2NhbGUgKmxvY2FsZV9zZXRfZGVmYXVsdF9pbnRl
cm5hbChjb25zdCBjaGFyICosIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAg
KiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBmcmllbmQgdm9pZCBVX0NBTExDT05WIGxvY2FsZV9h
dmFpbGFibGVfaW5pdCgpOworfTsKKworaW5saW5lIFVCb29sCitMb2NhbGU6Om9wZXJhdG9yIT0o
Y29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuICFvcGVyYXRv
cj09KG90aGVyKTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRDb3VudHJ5
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gY291bnRyeTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIg
KgorTG9jYWxlOjpnZXRMYW5ndWFnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGxhbmd1YWdlOwor
fQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldFNjcmlwdCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHNjcmlwdDsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRW
YXJpYW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gJmJhc2VOYW1lW3ZhcmlhbnRCZWdpbl07Cit9
CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGZ1bGxOYW1lOworfQorCitpbmxpbmUgVUJvb2wKK0xvY2FsZTo6aXNCb2d1cyh2b2lk
KSBjb25zdCB7CisgICAgcmV0dXJuIGZJc0JvZ3VzOworfQorCitVX05BTUVTUEFDRV9FTkQKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JiYmkuaCBiL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NzU5OGE1MGU2ZmEzYmFiMmFk
NDllMDIyYWFmMzk2Y2FjMzI5ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3JiYmkuaApAQCAtMCwwICsxLDc4MiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor
KiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMgQ29ycG9yYXRpb24gICAqCisqICAgYW5kIG90aGVycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRp
b24KKyogICAxMC8yMi85OSAgICBhbGFuICAgICAgICBDcmVhdGlvbi4KKyogICAxMS8xMS85OSAg
ICByZ2lsbGFtICAgICBDb21wbGV0ZSBwb3J0IGZyb20gSmF2YS4KKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyov
CisKKyNpZm5kZWYgUkJCSV9ICisjZGVmaW5lIFJCQklfSAorCisjaW5jbHVkZSAidW5pY29kZS91
dHlwZXMuaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IFJ1bGUgQmFzZWQg
QnJlYWsgSXRlcmF0b3IKKyAqLworCisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisK
KyNpbmNsdWRlICJ1bmljb2RlL2Jya2l0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgi
CisjaW5jbHVkZSAidW5pY29kZS9wYXJzZWVyci5oIgorI2luY2x1ZGUgInVuaWNvZGUvc2Nocml0
ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VjaHJpdGVyLmgiCisKKworc3RydWN0IFVUcmllOwor
CitVX05BTUVTUEFDRV9CRUdJTgorCisvKiogQGludGVybmFsICovCitzdHJ1Y3QgUkJCSURhdGFI
ZWFkZXI7CitjbGFzcyAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvclRhYmxlczsKK2NsYXNzICBCcmVh
a0l0ZXJhdG9yOworY2xhc3MgIFJCQklEYXRhV3JhcHBlcjsKK2NsYXNzICBVU3RhY2s7CitjbGFz
cyAgTGFuZ3VhZ2VCcmVha0VuZ2luZTsKK2NsYXNzICBVbmhhbmRsZWRFbmdpbmU7CitzdHJ1Y3Qg
UkJCSVN0YXRlVGFibGU7CisKKworCisKKy8qKgorICoKKyAqIEEgc3ViY2xhc3Mgb2YgQnJlYWtJ
dGVyYXRvciB3aG9zZSBiZWhhdmlvciBpcyBzcGVjaWZpZWQgdXNpbmcgYSBsaXN0IG9mIHJ1bGVz
LgorICogPHA+SW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgYXJlIG1vc3QgY29tbW9ubHkgY3JlYXRl
ZCBieSB0aGUgZmFjdG9yeSBtZXRob2RzIG9mCisgKiAgQnJlYWtJdGVyYXRvcjo6Y3JlYXRlV29y
ZEluc3RhbmNlKCksIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZUxpbmVJbnN0YW5jZSgpLCBldGMuLAor
ICogIGFuZCB0aGVuIHVzZWQgdmlhIHRoZSBhYnN0cmFjdCBBUEkgaW4gY2xhc3MgQnJlYWtJdGVy
YXRvcjwvcD4KKyAqCisgKiA8cD5TZWUgdGhlIElDVSBVc2VyIEd1aWRlIGZvciBpbmZvcm1hdGlv
biBvbiBCcmVhayBJdGVyYXRvciBSdWxlcy48L3A+CisgKgorICogPHA+VGhpcyBjbGFzcyBpcyBu
b3QgaW50ZW5kZWQgdG8gYmUgc3ViY2xhc3NlZC4gIChDbGFzcyBEaWN0aW9uYXJ5QmFzZWRCcmVh
a0l0ZXJhdG9yCisgKiAgICBpcyBhIHN1YmNsYXNzLCBidXQgdGhhdCByZWxhdGlvbnNoaXAgaXMg
ZWZmZWN0aXZlbHkgaW50ZXJuYWwgdG8gdGhlIElDVQorICogICAgaW1wbGVtZW50YXRpb24uICBU
aGUgc3ViY2xhc3NpbmcgaW50ZXJmYWNlIHRvIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yIGlzCisg
KiAgICBub3QgcGFydCBvZiB0aGUgSUNVIEFQSSwgYW5kIG1heSBub3QgcmVtYWluIHN0YWJsZS48
L3A+CisgKgorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAv
KlVfRklOQUwqLyA6IHB1YmxpYyBCcmVha0l0ZXJhdG9yIHsKKworcHJvdGVjdGVkOgorICAgIC8q
KgorICAgICAqIFRoZSBVVGV4dCB0aHJvdWdoIHdoaWNoIHRoaXMgQnJlYWtJdGVyYXRvciBhY2Nl
c3NlcyB0aGUgdGV4dAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVUZXh0ICAqZlRl
eHQ7CisKKyAgICAvKioKKyAgICAgKiAgIEEgY2hhcmFjdGVyIGl0ZXJhdG9yIHRoYXQgcmVmZXJz
IHRvIHRoZSBzYW1lIHRleHQgYXMgdGhlIFVUZXh0LCBhYm92ZS4KKyAgICAgKiAgIE9ubHkgaW5j
bHVkZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgQVBJLCB3aGljaCB3YXMgYmFzZWQgb24g
Q2hhcmFjdGVySXRlcmF0b3JzLgorICAgICAqICAgVmFsdWUgbWF5IGJlIGFkb3B0ZWQgZnJvbSBv
dXRzaWRlLCBvciBvbmUgb2YgZlNDaGFySXRlciBvciBmRENoYXJJdGVyLCBiZWxvdy4KKyAgICAg
Ki8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvciAgKmZDaGFySXRlcjsKKworICAgIC8qKgorICAgICAq
ICAgV2hlbiB0aGUgaW5wdXQgdGV4dCBpcyBwcm92aWRlZCBieSBhIFVuaWNvZGVTdHJpbmcsIHRo
aXMgd2lsbCBwb2ludCB0bworICAgICAqICAgIGEgY2hhcmFjdGVySXRlcmF0b3IgdGhhdCB3cmFw
cyB0aGF0IGRhdGEuICBOZWVkZWQgb25seSBmb3IgdGhlCisgICAgICogICAgaW1wbGVtZW50YXRp
b24gb2YgZ2V0VGV4dCgpLCBhIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGlzc3VlLgorICAgICAq
LworICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yICpmU0NoYXJJdGVyOworCisgICAgLyoqCisg
ICAgICogIFdoZW4gdGhlIGlucHV0IHRleHQgaXMgcHJvdmlkZWQgYnkgYSBVVGV4dCwgdGhpcwor
ICAgICAqICAgIGR1bW15IENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgYW4gZW1wdHkgc3RyaW5nIHdp
bGwKKyAgICAgKiAgICBiZSByZXR1cm5lZCBmcm9tIGdldFRleHQoKQorICAgICAqLworICAgIFVD
aGFyQ2hhcmFjdGVySXRlcmF0b3IgKmZEQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiBUaGUg
cnVsZSBkYXRhIGZvciB0aGlzIEJyZWFrSXRlcmF0b3IgaW5zdGFuY2UKKyAgICAgKiBAaW50ZXJu
YWwKKyAgICAgKi8KKyAgICBSQkJJRGF0YVdyYXBwZXIgICAgKmZEYXRhOworCisgICAgLyoqIElu
ZGV4IG9mIHRoZSBSdWxlIHt0YWd9IHZhbHVlcyBmb3IgdGhlIG1vc3QgcmVjZW50IG1hdGNoLgor
ICAgICAqICBAaW50ZXJuYWwKKyAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZkxhc3RS
dWxlU3RhdHVzSW5kZXg7CisKKyAgICAvKioKKyAgICAgKiBSdWxlIHRhZyB2YWx1ZSB2YWxpZCBm
bGFnLgorICAgICAqIFNvbWUgaXRlcmF0b3Igb3BlcmF0aW9ucyBkb24ndCBpbnRyaW5zaWNhbGx5
IHNldCB0aGUgY29ycmVjdCB0YWcgdmFsdWUuCisgICAgICogVGhpcyBmbGFnIGxldHMgdXMgbGF6
aWx5IGNvbXB1dGUgdGhlIHZhbHVlIGlmIHdlIGFyZSBldmVyIGFza2VkIGZvciBpdC4KKyAgICAg
KiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBVQm9vbCAgICAgICAgICAgICAgIGZMYXN0U3RhdHVz
SW5kZXhWYWxpZDsKKworICAgIC8qKgorICAgICAqIENvdW50ZXIgZm9yIHRoZSBudW1iZXIgb2Yg
Y2hhcmFjdGVycyBlbmNvdW50ZXJlZCB3aXRoIHRoZSAiZGljdGlvbmFyeSIKKyAgICAgKiAgIGZs
YWcgc2V0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICAg
ICAgZkRpY3Rpb25hcnlDaGFyQ291bnQ7CisKKyAgICAvKioKKyAgICAgKiBXaGVuIGEgcmFuZ2Ug
b2YgY2hhcmFjdGVycyBpcyBkaXZpZGVkIHVwIHVzaW5nIHRoZSBkaWN0aW9uYXJ5LCB0aGUgYnJl
YWsKKyAgICAgKiBwb3NpdGlvbnMgdGhhdCBhcmUgZGlzY292ZXJlZCBhcmUgc3RvcmVkIGhlcmUs
IHByZXZlbnRpbmcgdXMgZnJvbSBoYXZpbmcKKyAgICAgKiB0byB1c2UgZWl0aGVyIHRoZSBkaWN0
aW9uYXJ5IG9yIHRoZSBzdGF0ZSB0YWJsZSBhZ2FpbiB1bnRpbCB0aGUgaXRlcmF0b3IKKyAgICAg
KiBsZWF2ZXMgdGhpcyByYW5nZSBvZiB0ZXh0LiBIYXMgdGhlIG1vc3QgaW1wYWN0IGZvciBsaW5l
IGJyZWFraW5nLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QqICAgICAg
ICAgICAgZkNhY2hlZEJyZWFrUG9zaXRpb25zOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJl
ciBvZiBlbGVtZW50cyBpbiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMKKyAgICAgKiBAaW50ZXJuYWwK
KyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZOdW1DYWNoZWRCcmVha1Bvc2l0aW9u
czsKKworICAgIC8qKgorICAgICAqIGlmIGZDYWNoZWRCcmVha1Bvc2l0aW9ucyBpcyBub3QgbnVs
bCwgdGhpcyBpbmRpY2F0ZXMgd2hpY2ggaXRlbSBpbiB0aGUKKyAgICAgKiBjYWNoZSB0aGUgY3Vy
cmVudCBpdGVyYXRpb24gcG9zaXRpb24gcmVmZXJzIHRvCisgICAgICogQGludGVybmFsCisgICAg
ICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmUG9zaXRpb25JbkNhY2hlOworICAgIAorICAg
IC8qKgorICAgICAqCisgICAgICogSWYgcHJlc2VudCwgVVN0YWNrIG9mIExhbmd1YWdlQnJlYWtF
bmdpbmUgb2JqZWN0cyB0aGF0IG1pZ2h0IGhhbmRsZQorICAgICAqIGRpY3Rpb25hcnkgY2hhcmFj
dGVycy4gU2VhcmNoZWQgZnJvbSB0b3AgdG8gYm90dG9tIHRvIGZpbmQgYW4gb2JqZWN0IHRvCisg
ICAgICogaGFuZGxlIGEgZ2l2ZW4gY2hhcmFjdGVyLgorICAgICAqIEBpbnRlcm5hbAorICAgICAq
LworICAgIFVTdGFjayAgICAgICAgICAgICAgKmZMYW5ndWFnZUJyZWFrRW5naW5lczsKKyAgICAK
KyAgICAvKioKKyAgICAgKgorICAgICAqIElmIHByZXNlbnQsIHRoZSBzcGVjaWFsIExhbmd1YWdl
QnJlYWtFbmdpbmUgdXNlZCBmb3IgaGFuZGxpbmcKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgYXJl
IGluIHRoZSBkaWN0aW9uYXJ5IHNldCwgYnV0IG5vdCBoYW5kbGVkIGJ5IGFueQorICAgICAqIExh
bmd1Z2FnZUJyZWFrRW5naW5lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVuaGFu
ZGxlZEVuZ2luZSAgICAgKmZVbmhhbmRsZWRCcmVha0VuZ2luZTsKKyAgICAKKyAgICAvKioKKyAg
ICAgKgorICAgICAqIFRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvciwgb3IgLTEgaWYgaXQg
aGFzIG5vdCBiZWVuIHNldC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90
ICAgICAgICAgICAgIGZCcmVha1R5cGU7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgLy89PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorICAgIC8vIGNvbnN0cnVjdG9ycworICAgIC8vPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworI2lm
bmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgdG8gYmUg
dXNlZCBpbiB0aGUgY29uc3RydWN0b3IKKyAgICAgKiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFJC
QklEYXRhSGVhZGVyKiwgRURvbnRBZG9wdCwgVUVycm9yQ29kZSAmKTsKKyAgICAgKiB3aGljaCBk
b2VzIG5vdCBhZG9wdCB0aGUgbWVtb3J5IGluZGljYXRlZCBieSB0aGUgUkJCSURhdGFIZWFkZXIq
CisgICAgICogcGFyYW1ldGVyLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgZW51bSBFRG9udEFkb3B0IHsKKyAgICAgICAga0RvbnRBZG9wdAorICAgIH07CisKKyAgICAv
KioKKyAgICAgKiBDb25zdHJ1Y3RvciBmcm9tIGEgZmxhdHRlbmVkIHNldCBvZiBSQkJJIGRhdGEg
aW4gbWFsbG9jZWQgbWVtb3J5LgorICAgICAqICAgICAgICAgICAgIFJ1bGVzQmFzZWRCcmVha0l0
ZXJhdG9ycyBidWlsdCBmcm9tIGEgY3VzdG9tIHNldCBvZiBydWxlcworICAgICAqICAgICAgICAg
ICAgIGFyZSBjcmVhdGVkIHZpYSB0aGlzIGNvbnN0cnVjdG9yOyB0aGUgcnVsZXMgYXJlIGNvbXBp
bGVkCisgICAgICogICAgICAgICAgICAgaW50byBtZW1vcnksIHRoZW4gdGhlIGJyZWFrIGl0ZXJh
dG9yIGlzIGNvbnN0cnVjdGVkIGhlcmUuCisgICAgICoKKyAgICAgKiAgICAgICAgICAgICBUaGUg
YnJlYWsgaXRlcmF0b3IgYWRvcHRzIHRoZSBtZW1vcnksIGFuZCB3aWxsCisgICAgICogICAgICAg
ICAgICAgZnJlZSBpdCB3aGVuIGRvbmUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAg
UnVsZUJhc2VkQnJlYWtJdGVyYXRvcihSQkJJRGF0YUhlYWRlciogZGF0YSwgVUVycm9yQ29kZSAm
c3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZyb20gYSBmbGF0dGVuZWQg
c2V0IG9mIFJCQkkgZGF0YSBpbiBtZW1vcnkgd2hpY2ggbmVlZCBub3QKKyAgICAgKiAgICAgICAg
ICAgICBiZSBtYWxsb2NlZCAoZS5nLiBpdCBtYXkgYmUgYSBtZW1vcnktbWFwcGVkIGZpbGUsIGV0
Yy4pLgorICAgICAqCisgICAgICogICAgICAgICAgICAgVGhpcyB2ZXJzaW9uIGRvZXMgbm90IGFk
b3B0IHRoZSBtZW1vcnksIGFuZCBkb2VzIG5vdAorICAgICAqICAgICAgICAgICAgIGZyZWUgaXQg
d2hlbiBkb25lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IoY29uc3QgUkJCSURhdGFIZWFkZXIqIGRhdGEsIGVudW0gRURvbnRBZG9wdCBkb250
QWRvcHQsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9B
UEkgKi8KKworCisgICAgZnJpZW5kIGNsYXNzIFJCQklSdWxlQnVpbGRlcjsKKyAgICAvKiogQGlu
dGVybmFsICovCisgICAgZnJpZW5kIGNsYXNzIEJyZWFrSXRlcmF0b3I7CisKKworCitwdWJsaWM6
CisKKyAgICAvKiogRGVmYXVsdCBjb25zdHJ1Y3Rvci4gIENyZWF0ZXMgYW4gZW1wdHkgc2hlbGwg
b2YgYW4gaXRlcmF0b3IsIHdpdGggbm8KKyAgICAgKiAgcnVsZXMgb3IgdGV4dCB0byBpdGVyYXRl
IG92ZXIuICAgT2JqZWN0IGNhbiBzdWJzZXF1ZW50bHkgYmUgYXNzaWduZWQgdG8uCisgICAgICog
IEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKTsK
KworICAgIC8qKgorICAgICAqIENvcHkgY29uc3RydWN0b3IuICBXaWxsIHByb2R1Y2UgYSBicmVh
ayBpdGVyYXRvciB3aXRoIHRoZSBzYW1lIGJlaGF2aW9yLAorICAgICAqIGFuZCB3aGljaCBpdGVy
YXRlcyBvdmVyIHRoZSBzYW1lIHRleHQsIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBw
YXJhbSB0aGF0IFRoZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHBhc3NlZCB0byBiZSBjb3BpZWQK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yKGNvbnN0IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIHRoYXQpOworCisgICAgLyoqCisgICAg
ICogQ29uc3RydWN0IGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEgc2V0IG9mIHJ1bGVz
IHN1cHBsaWVkIGFzIGEgc3RyaW5nLgorICAgICAqIEBwYXJhbSBydWxlcyBUaGUgYnJlYWsgcnVs
ZXMgdG8gYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gcGFyc2VFcnJvciAgSW4gdGhlIGV2ZW50IG9m
IGEgc3ludGF4IGVycm9yIGluIHRoZSBydWxlcywgcHJvdmlkZXMgdGhlIGxvY2F0aW9uCisgICAg
ICogICAgICAgICAgICAgICAgICAgIHdpdGhpbiB0aGUgcnVsZXMgb2YgdGhlIHByb2JsZW0uCisg
ICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkgZXJyb3JzIGVuY291bnRlcmVk
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRl
cmF0b3IoIGNvbnN0IFVuaWNvZGVTdHJpbmcgICAgJnJ1bGVzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBVUGFyc2VFcnJvciAgICAgICAgICAgJnBhcnNlRXJyb3IsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgICAgICAgICAmc3RhdHVzKTsKKworICAg
IC8qKgorICAgICAqIENvbnRydWN0IGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEgc2V0
IG9mIHByZWNvbXBpbGVkIGJpbmFyeSBydWxlcy4KKyAgICAgKiBCaW5hcnkgcnVsZXMgYXJlIG9i
dGFpbmVkIGZyb20gUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3I6OmdldEJpbmFyeVJ1bGVzKCkuCisg
ICAgICogQ29uc3RydWN0aW9uIG9mIGEgYnJlYWsgaXRlcmF0b3IgaW4gdGhpcyB3YXkgaXMgc3Vi
c3RhbnRpYWxseSBmYXN0ZXIgdGhhbgorICAgICAqIGNvbnN0dWN0aW9uIGZyb20gc291cmNlIHJ1
bGVzLgorICAgICAqCisgICAgICogT3duZXJzaGlwIG9mIHRoZSBzdG9yYWdlIGNvbnRhaW5pbmcg
dGhlIGNvbXBpbGVkIHJ1bGVzIHJlbWFpbnMgd2l0aCB0aGUKKyAgICAgKiBjYWxsZXIgb2YgdGhp
cyBmdW5jdGlvbi4gIFRoZSBjb21waWxlZCBydWxlcyBtdXN0IG5vdCBiZSAgbW9kaWZpZWQgb3Ig
CisgICAgICogZGVsZXRlZCBkdXJpbmcgdGhlIGxpZmUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLgor
ICAgICAqCisgICAgICogVGhlIGNvbXBpbGVkIHJ1bGVzIGFyZSBub3QgY29tcGF0aWJsZSBhY3Jv
c3MgZGlmZmVyZW50IG1ham9yIHZlcnNpb25zIG9mIElDVS4KKyAgICAgKiBUaGUgY29tcGlsZWQg
cnVsZXMgYXJlIGNvbWFwdGlibGUgb25seSBiZXR3ZWVuIG1hY2hpbmVzIHdpdGggdGhlIHNhbWUK
KyAgICAgKiBieXRlIG9yZGVyaW5nIChsaXR0bGUgb3IgYmlnIGVuZGlhbikgYW5kIHRoZSBzYW1l
IGJhc2UgY2hhcmFjdGVyIHNldCBmYW1pbHkKKyAgICAgKiAoQVNDSUkgb3IgRUJDRElDKS4KKyAg
ICAgKgorICAgICAqIEBzZWUgI2dldEJpbmFyeVJ1bGVzCisgICAgICogQHBhcmFtIGNvbXBpbGVk
UnVsZXMgQSBwb2ludGVyIHRvIHRoZSBjb21waWxlZCBicmVhayBydWxlcyB0byBiZSB1c2VkLgor
ICAgICAqIEBwYXJhbSBydWxlTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIGNvbXBpbGVkIGJyZWFr
IHJ1bGVzLCBpbiBieXRlcy4gIFRoaXMKKyAgICAgKiAgIGNvcnJlc3BvbmRzIHRvIHRoZSBsZW5n
dGggdmFsdWUgcHJvZHVjZWQgYnkgZ2V0QmluYXJ5UnVsZXMoKS4KKyAgICAgKiBAcGFyYW0gc3Rh
dHVzIEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQsIGluY2x1ZGluZyBpbnZh
bGlkCisgICAgICogICBiaW5hcnkgcnVsZXMuCisgICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAg
ICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCB1aW50OF90ICpjb21waWxlZFJ1
bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgcnVsZUxlbmd0
aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgJnN0YXR1cyk7CisK
KyAgICAvKioKKyAgICAgKiBUaGlzIGNvbnN0cnVjdG9yIHVzZXMgdGhlIHVkYXRhIGludGVyZmFj
ZSB0byBjcmVhdGUgYSBCcmVha0l0ZXJhdG9yCisgICAgICogd2hvc2UgaW50ZXJuYWwgdGFibGVz
IGxpdmUgaW4gYSBtZW1vcnktbWFwcGVkIGZpbGUuICAiaW1hZ2UiIGlzIGFuCisgICAgICogSUNV
IFVEYXRhTWVtb3J5IGhhbmRsZSBmb3IgdGhlIHByZS1jb21waWxlZCBicmVhayBpdGVyYXRvciB0
YWJsZXMuCisgICAgICogQHBhcmFtIGltYWdlIGhhbmRsZSB0byB0aGUgbWVtb3J5IGltYWdlIGZv
ciB0aGUgYnJlYWsgaXRlcmF0b3IgZGF0YS4KKyAgICAgKiAgICAgICAgT3duZXJzaGlwIG9mIHRo
ZSBVRGF0YU1lbW9yeSBoYW5kbGUgcGFzc2VzIHRvIHRoZSBCcmVhayBJdGVyYXRvciwKKyAgICAg
KiAgICAgICAgd2hpY2ggd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgY2xvc2luZyBpdCB3aGVuIGl0
IGlzIG5vIGxvbmdlciBuZWVkZWQuCisgICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBv
biBhbnkgZXJyb3JzIGVuY291bnRlcmVkLgorICAgICAqIEBzZWUgdWRhdGFfb3BlbgorICAgICAq
IEBzZWUgI2dldEJpbmFyeVJ1bGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisg
ICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihVRGF0YU1lbW9yeSogaW1hZ2UsIFVFcnJvckNvZGUg
JnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yCisgICAgICogIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgflJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKTsK
KworICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICBTZXRzIHRoaXMgaXRlcmF0
b3IgdG8gaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwKKyAgICAgKiBhbmQgaXRlcmF0ZSBvdmVyIHRo
ZSBzYW1lIHRleHQsIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRo
ZSBSdWxlQmFzZWRCcmVha0l0ZXJ0b3IgcGFzc2VkIGluCisgICAgICogQHJldHVybiB0aGUgbmV3
bHkgY3JlYXRlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIG9wZXJhdG9yPShjb25zdCBS
dWxlQmFzZWRCcmVha0l0ZXJhdG9yJiB0aGF0KTsKKworICAgIC8qKgorICAgICAqIEVxdWFsaXR5
IG9wZXJhdG9yLiAgUmV0dXJucyBUUlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG9mIHRo
ZQorICAgICAqIHNhbWUgY2xhc3MsIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsIGFuZCBpdGVyYXRl
IG92ZXIgdGhlIHNhbWUgdGV4dC4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQnJlYWtJdGVyYXRv
ciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgYm90
aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhlCisgICAgICogc2FtZSBjbGFzcywgaGF2ZSB0aGUg
c2FtZSBiZWhhdmlvciwgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAqICBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29u
c3QgQnJlYWtJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBOb3QtZXF1
YWwgb3BlcmF0b3IuICBJZiBvcGVyYXRvcj09IHJldHVybnMgVFJVRSwgdGhpcyByZXR1cm5zIEZB
TFNFLAorICAgICAqIGFuZCB2aWNlIHZlcnNhLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBCcmVh
a0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5CisgICAgICogQHJldHVybiBU
UlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG5vdCBzYW1lLgorICAgICAqICBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEJyZWFrSXRlcmF0
b3ImIHRoYXQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ld2x5LWNvbnN0
cnVjdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd2l0aCB0aGUgc2FtZQorICAgICAqIGJlaGF2
aW9yLCBhbmQgaXRlcmF0aW5nIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhpcyBvbmUuCisgICAg
ICogRGlmZmVycyBmcm9tIHRoZSBjb3B5IGNvbnN0cnVjdG9yIGluIHRoYXQgaXQgaXMgcG9seW1v
cnBoaWMsIGFuZAorICAgICAqIHdpbGwgY29ycmVjdGx5IGNsb25lIChjb3B5KSBhIGRlcml2ZWQg
Y2xhc3MuCisgICAgICogY2xvbmUoKSBpcyB0aHJlYWQgc2FmZS4gIE11bHRpcGxlIHRocmVhZHMg
bWF5IHNpbXVsdGFlbmVvdXNseQorICAgICAqIGNsb25lIHRoZSBzYW1lIHNvdXJjZSBicmVhayBp
dGVyYXRvci4KKyAgICAgKiBAcmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
QnJlYWtJdGVyYXRvciogY2xvbmUoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENvbXB1dGUg
YSBoYXNoIGNvZGUgZm9yIHRoaXMgQnJlYWtJdGVyYXRvcgorICAgICAqIEByZXR1cm4gQSBoYXNo
IGNvZGUKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQz
Ml90IGhhc2hDb2RlKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUg
ZGVzY3JpcHRpb24gdXNlZCB0byBjcmVhdGUgdGhpcyBpdGVyYXRvcgorICAgICAqIEByZXR1cm4g
dGhlIGRlc2NyaXB0aW9uIHVzZWQgdG8gY3JlYXRlIHRoaXMgaXRlcmF0b3IKKyAgICAgKiAgQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBjb25zdCBVbmljb2RlU3RyaW5nJiBn
ZXRSdWxlcyh2b2lkKSBjb25zdDsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBCcmVh
a0l0ZXJhdG9yIG92ZXJyaWRlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAg
ICAqIDxwPgorICAgICAqIFJldHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQg
YmVpbmcgYW5hbHl6ZWQuCisgICAgICogVGhlIHJldHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBp
cyBvd25lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IsIGFuZCBtdXN0CisgICAgICogbm90IGJlIGRl
bGV0ZWQgYnkgdGhlIGNhbGxlci4gIFJlcGVhdGVkIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gbWF5
CisgICAgICogcmV0dXJuIHRoZSBzYW1lIENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIDwvcD4K
KyAgICAgKiA8cD4KKyAgICAgKiBUaGUgcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIG11c3Qg
bm90IGJlIHVzZWQgY29uY3VycmVudGx5IHdpdGgKKyAgICAgKiB0aGUgYnJlYWsgaXRlcmF0b3Iu
ICBJZiBjb25jdXJyZW50IG9wZXJhdGlvbiBpcyBuZWVkZWQsIGNsb25lIHRoZQorICAgICAqIHJl
dHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBmaXJzdCBhbmQgb3BlcmF0ZSBvbiB0aGUgY2xvbmUu
CisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFdoZW4gdGhlIGJyZWFrIGl0ZXJhdG9y
IGlzIG9wZXJhdGluZyBvbiB0ZXh0IHN1cHBsaWVkIHZpYSBhIFVUZXh0LAorICAgICAqIHRoaXMg
ZnVuY3Rpb24gd2lsbCBmYWlsLiAgTGFja2luZyBhbnkgd2F5IHRvIHNpZ25hbCBmYWlsdXJlcywg
aXQKKyAgICAgKiByZXR1cm5zIGFuIENoYXJhY3Rlckl0ZXJhdG9yIGNvbnRhaW5pbmcgbm8gdGV4
dC4KKyAgICAgKiBUaGUgZnVuY3Rpb24gZ2V0VVRleHQoKSBwcm92aWRlcyBzaW1pbGFyIGZ1bmN0
aW9uYWxpdHksCisgICAgICogaXMgcmVsaWFibGUsIGFuZCBpcyBtb3JlIGVmZmljaWVudC4KKyAg
ICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBUT0RPOiAgZGVwcmVjYXRlIHRoaXMgZnVuY3Rpb24/
CisgICAgICoKKyAgICAgKiBAcmV0dXJuIEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcg
YW5hbHl6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCAg
Q2hhcmFjdGVySXRlcmF0b3ImIGdldFRleHQodm9pZCkgY29uc3Q7CisKKworICAgIC8qKgorICAg
ICAgKiAgR2V0IGEgVVRleHQgZm9yIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAgKiAg
VGhlIHJldHVybmVkIFVUZXh0IGlzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgVVRleHQgdXNlZCBp
bnRlcm5hbGx5CisgICAgICAqICBieSB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24u
ICBJdCBjYW4gc2FmZWx5IGJlIHVzZWQgdG8KKyAgICAgICogIGFjY2VzcyB0aGUgdGV4dCB3aXRo
b3V0IGltcGFjdGluZyBhbnkgYnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucywKKyAgICAgICogIGJ1
dCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2VsZiBtdXN0IG5vdCBiZSBhbHRlcmVkLgorICAgICAg
KgorICAgICAgKiBAcGFyYW0gZmlsbEluIEEgVVRleHQgdG8gYmUgZmlsbGVkIGluLiAgSWYgTlVM
TCwgYSBuZXcgVVRleHQgd2lsbCBiZQorICAgICAgKiAgICAgICAgICAgYWxsb2NhdGVkIHRvIGhv
bGQgdGhlIHJlc3VsdC4KKyAgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3Ig
Y29kZXMuCisgICAgICAqIEByZXR1cm4gICBUaGUgY3VycmVudCBVVGV4dCBmb3IgdGhpcyBicmVh
ayBpdGVyYXRvci4gIElmIGFuIGlucHV0CisgICAgICAqICAgICAgICAgICBVVGV4dCB3YXMgcHJv
dmlkZWQsIGl0IHdpbGwgYWx3YXlzIGJlIHJldHVybmVkLgorICAgICAgKiBAc3RhYmxlIElDVSAz
LjQKKyAgICAgICovCisgICAgIHZpcnR1YWwgVVRleHQgKmdldFVUZXh0KFVUZXh0ICpmaWxsSW4s
IFVFcnJvckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0
ZXJhdG9yIHRvIGFuYWx5emUgYSBuZXcgcGllY2Ugb2YgdGV4dC4gIFRoaXMgZnVuY3Rpb24gcmVz
ZXRzCisgICAgICogdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5p
bmcgb2YgdGhlIHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgQW4gaXRlcmF0b3Igb3ZlciB0
aGUgdGV4dCB0byBhbmFseXplLiAgVGhlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiB0YWtlcyBvd25l
cnNoaXAgb2YgdGhlIGNoYXJhY3RlciBpdGVyYXRvci4gIFRoZSBjYWxsZXIgTVVTVCBOT1QgZGVs
ZXRlIGl0IQorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZv
aWQgYWRvcHRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKiBuZXdUZXh0KTsKKworICAgIC8qKgorICAg
ICAqIFNldCB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhp
cyBmdW5jdGlvbiByZXNldHMKKyAgICAgKiB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24g
dG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUg
dGV4dCB0byBhbmFseXplLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKworICAg
IC8qKgorICAgICAqIFJlc2V0IHRoZSBicmVhayBpdGVyYXRvciB0byBvcGVyYXRlIG92ZXIgdGhl
IHRleHQgcmVwcmVzZW50ZWQgYnkKKyAgICAgKiB0aGUgVVRleHQuICBUaGUgaXRlcmF0b3IgcG9z
aXRpb24gaXMgcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlv
biBtYWtlcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIHN1cHBsaWVkIFVUZXh0LiAgVGhpcyBtZWFu
cworICAgICAqIHRoYXQgdGhlIGNhbGxlciBpcyBmcmVlIHRvIGltbWVkaWF0ZWx5IGNsb3NlIG9y
IG90aGVyd2lzZSByZXVzZSB0aGUKKyAgICAgKiBVdGV4dCB0aGF0IHdhcyBwYXNzZWQgYXMgYSBw
YXJhbWV0ZXIsIGJ1dCB0aGF0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmCisgICAgICogbXVz
dCBub3QgYmUgYWx0ZXJlZCB3aGlsZSBiZWluZyByZWZlcmVuY2VkIGJ5IHRoZSBicmVhayBpdGVy
YXRvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0ICAgIFRoZSBVVGV4dCB1c2VkIHRvIGNo
YW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzICBSZWNlaXZlcyBhbnkgZXJyb3Ig
Y29kZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICovCisgICAgdmlydHVhbCB2b2lk
ICBzZXRUZXh0KFVUZXh0ICp0ZXh0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisg
ICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmlu
ZyBvZiB0aGUgdGV4dCwgcG9zaXRpb24gemVyby4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZzZXQg
b2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgemVyby4KKyAgICAgKiAgQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGZpcnN0KHZvaWQpOworCisgICAgLyoq
CisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGVuZCBv
ZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSB0ZXh0J3MgcGFzdC10aGUtZW5kIG9mZnNl
dC4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90
IGxhc3Qodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgZWl0
aGVyIGZvcndhcmQgb3IgYmFja3dhcmQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc3RlcHMuCisg
ICAgICogTmVnYXRpdmUgdmFsdWVzIG1vdmUgYmFja3dhcmQsIGFuZCBwb3NpdGl2ZSB2YWx1ZXMg
bW92ZSBmb3J3YXJkLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gcmVwZWF0ZWRseSBj
YWxsaW5nIG5leHQoKSBvciBwcmV2aW91cygpLgorICAgICAqIEBwYXJhbSBuIFRoZSBudW1iZXIg
b2Ygc3RlcHMgdG8gbW92ZS4gIFRoZSBzaWduIGluZGljYXRlcyB0aGUgZGlyZWN0aW9uCisgICAg
ICogKG5lZ2F0aXZlIGlzIGJhY2t3YXJkcywgYW5kIHBvc2l0aXZlIGlzIGZvcndhcmRzKS4KKyAg
ICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgb2Zmc2V0IG9mIHRoZSBib3VuZGFyeSBwb3NpdGlv
biBuIGJvdW5kYXJpZXMgYXdheSBmcm9tCisgICAgICogdGhlIGN1cnJlbnQgb25lLgorICAgICAq
ICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dChpbnQz
Ml90IG4pOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBu
ZXh0IGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRo
ZSBmaXJzdCBib3VuZGFyeSBhZnRlciB0aGlzIG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQodm9pZCk7CisKKyAgICAvKioKKyAg
ICAgKiBNb3ZlcyB0aGUgaXRlcmF0b3IgYmFja3dhcmRzLCB0byB0aGUgbGFzdCBib3VuZGFyeSBw
cmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxh
c3QgYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoaXMgb25lLgorICAgICAqICBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJldmlvdXModm9pZCk7CisK
KyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3Qg
Ym91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nCisgICAgICogdGhlIHNwZWNpZmllZCBwb3NpdGlv
bi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiBmcm9tIHdoaWNoIHRvIGJlZ2lu
IHNlYXJjaGluZyBmb3IgYSBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3Np
dGlvbiBvZiB0aGUgZmlyc3QgYnJlYWsgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisgICAg
ICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmb2xsb3dp
bmcoaW50MzJfdCBvZmZzZXQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3Ig
dG8gcmVmZXIgdG8gdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlIHRoZQorICAgICAq
IHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiB0
byBiZWdpbiBzZWFyY2hpbmcgZm9yIGEgYnJlYWsgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRoZSBw
b3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBiZWZvcmUgdGhlIHN0YXJ0aW5nIHBvc2l0aW9u
LgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3Qg
cHJlY2VkaW5nKGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1
ZSBpZiB0aGUgc3BlY2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4gIEFzIGEg
c2lkZQorICAgICAqIGVmZmVjdCwgbGVhdmVzIHRoZSBpdGVyYXRvciBwb2ludGluZyB0byB0aGUg
Zmlyc3QgYm91bmRhcnkgcG9zaXRpb24gYXQKKyAgICAgKiBvciBhZnRlciAib2Zmc2V0Ii4KKyAg
ICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBU
cnVlIGlmICJvZmZzZXQiIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNCb3VuZGFyeShpbnQzMl90IG9m
ZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBw
b3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbi4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgY3Vy
cmVudCh2b2lkKSBjb25zdDsKKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGF0dXMg
dGFnIGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5
CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uICBGb3IgYnJlYWsgcnVsZXMgdGhhdCBk
byBub3Qgc3BlY2lmeSBhCisgICAgICogc3RhdHVzLCBhIGRlZmF1bHQgdmFsdWUgb2YgMCBpcyBy
ZXR1cm5lZC4gIElmIG1vcmUgdGhhbiBvbmUgYnJlYWsgcnVsZQorICAgICAqIHdvdWxkIGNhdXNl
IGEgYm91bmRhcnkgdG8gYmUgbG9jYXRlZCBhdCBzb21lIHBvc2l0aW9uIGluIHRoZSB0ZXh0LAor
ICAgICAqIHRoZSBudW1lcmljYWxseSBsYXJnZXN0IG9mIHRoZSBhcHBsaWNhYmxlIHN0YXR1cyB2
YWx1ZXMgaXMgcmV0dXJuZWQuCisgICAgICogPHA+CisgICAgICogT2YgdGhlIHN0YW5kYXJkIHR5
cGVzIG9mIElDVSBicmVhayBpdGVyYXRvcnMsIG9ubHkgd29yZCBicmVhayBhbmQKKyAgICAgKiBs
aW5lIGJyZWFrIHByb3ZpZGUgc3RhdHVzIHZhbHVlcy4gIFRoZSB2YWx1ZXMgYXJlIGRlZmluZWQg
aW4KKyAgICAgKiB0aGUgaGVhZGVyIGZpbGUgdWJyay5oLiAgRm9yIFdvcmQgYnJlYWtzLCB0aGUg
c3RhdHVzIGFsbG93cyBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuIHdvcmRzCisgICAgICogdGhhdCBj
b250YWluIGFscGhhYmV0aWMgbGV0dGVycywgIndvcmRzIiB0aGF0IGFwcGVhciB0byBiZSBudW1i
ZXJzLAorICAgICAqIHB1bmN0dWF0aW9uIGFuZCBzcGFjZXMsIHdvcmRzIGNvbnRhaW5pbmcgaWRl
b2dyYXBoaWMgY2hhcmFjdGVycywgYW5kCisgICAgICogbW9yZS4gIEZvciBMaW5lIEJyZWFrLCB0
aGUgc3RhdHVzIGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiBoYXJkIChtYW5kYXRvcnkpIGJyZWFrcwor
ICAgICAqIGFuZCBzb2Z0IChwb3RlbnRpYWwpIGJyZWFrIHBvc2l0aW9ucy4KKyAgICAgKiA8cD4K
KyAgICAgKiA8Y29kZT5nZXRSdWxlU3RhdHVzKCk8L2NvZGU+IGNhbiBiZSBjYWxsZWQgYWZ0ZXIg
b2J0YWluaW5nIGEgYm91bmRhcnkKKyAgICAgKiBwb3NpdGlvbiBmcm9tIDxjb2RlPm5leHQoKTwv
Y29kZT4sIDxjb2RlPnByZXZpb3VzKCk8L2NvZGU+LCBvcgorICAgICAqIGFueSBvdGhlciBicmVh
ayBpdGVyYXRvciBmdW5jdGlvbnMgdGhhdCByZXR1cm5zIGEgYm91bmRhcnkgcG9zaXRpb24uCisg
ICAgICogPHA+CisgICAgICogV2hlbiBjcmVhdGluZyBjdXN0b20gYnJlYWsgcnVsZXMsIG9uZSBp
cyBmcmVlIHRvIGRlZmluZSB3aGF0ZXZlcgorICAgICAqIHN0YXR1cyB2YWx1ZXMgbWF5IGJlIGNv
bnZlbmllbnQgZm9yIHRoZSBhcHBsaWNhdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlOiB0
aGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZS4gIEl0IHNob3VsZCBub3QgaGF2ZSBiZWVu
CisgICAgICogICAgICAgZGVjbGFyZWQgY29uc3QsIGFuZCB0aGUgY29uc3QgcmVtYWlucyBvbmx5
IGZvciBjb21wYXRpYmlsaXR5CisgICAgICogICAgICAgcmVhc29ucy4gIChUaGUgZnVuY3Rpb24g
aXMgbG9naWNhbGx5IGNvbnN0LCBidXQgbm90IGJpdC13aXNlIGNvbnN0KS4KKyAgICAgKiA8cD4K
KyAgICAgKiBAcmV0dXJuIHRoZSBzdGF0dXMgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVy
bWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4K
KyAgICAgKgorICAgICAqIEBzZWUgVVdvcmRCcmVhaworICAgICAqIEBzdGFibGUgSUNVIDIuMgor
ICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3RhdHVzKCkgY29uc3Q7CisKKyAg
IC8qKgorICAgICogR2V0IHRoZSBzdGF0dXMgKHRhZykgdmFsdWVzIGZyb20gdGhlIGJyZWFrIHJ1
bGUocykgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0CisgICAgKiByZWNlbnRseSByZXR1cm5lZCBi
cmVhayBwb3NpdGlvbi4KKyAgICAqIDxwPgorICAgICogVGhlIHJldHVybmVkIHN0YXR1cyB2YWx1
ZShzKSBhcmUgc3RvcmVkIGludG8gYW4gYXJyYXkgcHJvdmlkZWQgYnkgdGhlIGNhbGxlci4KKyAg
ICAqIFRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiBzb3J0ZWQgKGFzY2VuZGluZykgb3JkZXIuCisg
ICAgKiBJZiB0aGUgY2FwYWNpdHkgb2YgdGhlIG91dHB1dCBhcnJheSBpcyBpbnN1ZmZpY2llbnQg
dG8gaG9sZCB0aGUgZGF0YSwKKyAgICAqICB0aGUgb3V0cHV0IHdpbGwgYmUgdHJ1bmNhdGVkIHRv
IHRoZSBhdmFpbGFibGUgbGVuZ3RoLCBhbmQgYQorICAgICogIFVfQlVGRkVSX09WRVJGTE9XX0VS
Uk9SIHdpbGwgYmUgc2lnbmFsZWQuCisgICAgKgorICAgICogQHBhcmFtIGZpbGxJblZlYyBhbiBh
cnJheSB0byBiZSBmaWxsZWQgaW4gd2l0aCB0aGUgc3RhdHVzIHZhbHVlcy4KKyAgICAqIEBwYXJh
bSBjYXBhY2l0eSAgdGhlIGxlbmd0aCBvZiB0aGUgc3VwcGxpZWQgdmVjdG9yLiAgQSBsZW5ndGgg
b2YgemVybyBjYXVzZXMKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIGZ1bmN0aW9uIHRvIHJl
dHVybiB0aGUgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMsIGluIHRoZQorICAgICogICAgICAgICAg
ICAgICAgICBub3JtYWwgd2F5LCB3aXRob3V0IGF0dGVtdHBpbmcgdG8gc3RvcmUgYW55IHZhbHVl
cy4KKyAgICAqIEBwYXJhbSBzdGF0dXMgICAgcmVjZWl2ZXMgZXJyb3IgY29kZXMuCisgICAgKiBA
cmV0dXJuICAgICAgICAgIFRoZSBudW1iZXIgb2YgcnVsZSBzdGF0dXMgdmFsdWVzIGZyb20gcnVs
ZXMgdGhhdCBkZXRlcm1pbmVkCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJlY2Vu
dCBib3VuZGFyeSByZXR1cm5lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgKiAgICAgICAg
ICAgICAgICAgIEluIHRoZSBldmVudCBvZiBhIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SLCB0aGUg
cmV0dXJuIHZhbHVlCisgICAgKiAgICAgICAgICAgICAgICAgIGlzIHRoZSB0b3RhbCBudW1iZXIg
b2Ygc3RhdHVzIHZhbHVlcyB0aGF0IHdlcmUgYXZhaWxhYmxlLAorICAgICogICAgICAgICAgICAg
ICAgICBub3QgdGhlIHJlZHVjZWQgbnVtYmVyIHRoYXQgd2VyZSBhY3R1YWxseSByZXR1cm5lZC4K
KyAgICAqIEBzZWUgZ2V0UnVsZVN0YXR1cworICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8K
KyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1c1ZlYyhpbnQzMl90ICpmaWxsSW5WZWMs
IGludDMyX3QgY2FwYWNpdHksIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm5zIGEgdW5pcXVlIGNsYXNzIElEIFBPTFlNT1JQSElDQUxMWS4gIFB1cmUgdmlydHVh
bCBvdmVycmlkZS4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB0byBpbXBsZW1lbnQgYSBzaW1wbGUg
dmVyc2lvbiBvZiBSVFRJLCBzaW5jZSBub3QgYWxsCisgICAgICogQysrIGNvbXBpbGVycyBzdXBw
b3J0IGdlbnVpbmUgUlRUSS4gIFBvbHltb3JwaGljIG9wZXJhdG9yPT0oKSBhbmQKKyAgICAgKiBj
bG9uZSgpIG1ldGhvZHMgY2FsbCB0aGlzIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4g
ICAgICAgICAgVGhlIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4gQWxsIG9iamVjdHMgb2YgYQor
ICAgICAqICAgICAgICAgICAgICAgICAgZ2l2ZW4gY2xhc3MgaGF2ZSB0aGUgc2FtZSBjbGFzcyBJ
RC4gIE9iamVjdHMgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgIG90aGVyIGNsYXNzZXMgaGF2
ZSBkaWZmZXJlbnQgY2xhc3MgSURzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3Q7CisKKyAg
ICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcy4gIFRoaXMg
aXMgdXNlZnVsIG9ubHkgZm9yCisgICAgICogY29tcGFyaW5nIHRvIGEgcmV0dXJuIHZhbHVlIGZy
b20gZ2V0RHluYW1pY0NsYXNzSUQoKS4gIEZvciBleGFtcGxlOgorICAgICAqCisgICAgICogICAg
ICBCYXNlKiBwb2x5bW9ycGhpY19wb2ludGVyID0gY3JlYXRlUG9seW1vcnBoaWNPYmplY3QoKTsK
KyAgICAgKiAgICAgIGlmIChwb2x5bW9ycGhpY19wb2ludGVyLT5nZXREeW5hbWljQ2xhc3NJRCgp
ID09CisgICAgICogICAgICAgICAgRGVyaXZlZDo6Z2V0U3RhdGljQ2xhc3NJRCgpKSAuLi4KKyAg
ICAgKgorICAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIGNsYXNzIElEIGZvciBhbGwgb2JqZWN0
cyBvZiB0aGlzIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0
YXRpYyBVQ2xhc3NJRCBVX0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworICAgIC8q
KgorICAgICAqIERlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0eS4gVXNlIGNsb25lKCkgaW5zdGVhZC4K
KyAgICAgKgorICAgICAqIENyZWF0ZSBhIGNsb25lIChjb3B5KSBvZiB0aGlzIGJyZWFrIGl0ZXJh
dG9yIGluIG1lbW9yeSBwcm92aWRlZAorICAgICAqICBieSB0aGUgY2FsbGVyLiAgVGhlIGlkZWEg
aXMgdG8gaW5jcmVhc2UgcGVyZm9ybWFuY2UgYnkgYXZvaWRpbmcKKyAgICAgKiAgYSBzdG9yYWdl
IGFsbG9jYXRpb24uICBVc2Ugb2YgdGhpcyBmdW5jdG9pbiBpcyBOT1QgUkVDT01NRU5ERUQuCisg
ICAgICogIFBlcmZvcm1hbmNlIGdhaW5zIGFyZSBtaW5pbWFsLCBhbmQgY29ycmVjdCBidWZmZXIg
bWFuYWdlbWVudCBpcworICAgICAqICB0cmlja3kuICBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAg
ICAqCisgICAgICogQHBhcmFtIHN0YWNrQnVmZmVyICBUaGUgcG9pbnRlciB0byB0aGUgbWVtb3J5
IGludG8gd2hpY2ggdGhlIGNsb25lZCBvYmplY3QKKyAgICAgKiAgICAgICAgICAgICAgICAgICAg
IHNob3VsZCBiZSBwbGFjZWQuICBJZiBOVUxMLCAgYWxsb2NhdGUgaGVhcCBtZW1vcnkKKyAgICAg
KiAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgY2xvbmVkIG9iamVjdC4KKyAgICAgKiBAcGFy
YW0gQnVmZmVyU2l6ZSAgIFRoZSBzaXplIG9mIHRoZSBidWZmZXIuICBJZiB6ZXJvLCByZXR1cm4g
dGhlIHJlcXVpcmVkCisgICAgICogICAgICAgICAgICAgICAgICAgICBidWZmZXIgc2l6ZSwgYnV0
IGRvIG5vdCBjbG9uZSB0aGUgb2JqZWN0LiAgSWYgdGhlCisgICAgICogICAgICAgICAgICAgICAg
ICAgICBzaXplIHdhcyB0b28gc21hbGwgKGJ1dCBub3QgemVybyksIGFsbG9jYXRlIGhlYXAKKyAg
ICAgKiAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2UgZm9yIHRoZSBjbG9uZWQgb2JqZWN0Lgor
ICAgICAqCisgICAgICogQHBhcmFtIHN0YXR1cyAgICAgICBFcnJvciBzdGF0dXMuICBVX1NBRkVD
TE9ORV9BTExPQ0FURURfV0FSTklORyB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgICAgICAg
ICByZXR1cm5lZCBpZiB0aGUgdGhlIHByb3ZpZGVkIGJ1ZmZlciB3YXMgdG9vIHNtYWxsLCBhbmQK
KyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9uZSB3YXMgdGhlcmVmb3JlIHB1dCBv
biB0aGUgaGVhcC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIFBvaW50ZXIgdG8gdGhlIGNsb25l
IG9iamVjdC4gIFRoaXMgbWF5IGRpZmZlciBmcm9tIHRoZSBzdGFja0J1ZmZlcgorICAgICAqICAg
ICAgICAgIGFkZHJlc3MgaWYgdGhlIGJ5dGUgYWxpZ25tZW50IG9mIHRoZSBzdGFjayBidWZmZXIg
d2FzIG5vdCBzdWl0YWJsZQorICAgICAqICAgICAgICAgIG9yIGlmIHRoZSBzdGFja0J1ZmZlciB3
YXMgdG9vIHNtYWxsIHRvIGhvbGQgdGhlIGNsb25lLgorICAgICAqIEBkZXByZWNhdGVkIElDVSA1
Mi4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0
b3IgKiAgY3JlYXRlQnVmZmVyQ2xvbmUodm9pZCAqc3RhY2tCdWZmZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgJkJ1ZmZlclNpemUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUg
JnN0YXR1cyk7CisKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmluYXJ5IGZvcm0gb2Yg
Y29tcGlsZWQgYnJlYWsgcnVsZXMsCisgICAgICogd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCB0byBj
cmVhdGUgYSBuZXcgYnJlYWsgaXRlcmF0b3IgYXQgc29tZQorICAgICAqIHRpbWUgaW4gdGhlIGZ1
dHVyZS4gIENyZWF0aW5nIGEgYnJlYWsgaXRlcmF0b3IgZnJvbSBwcmUtY29tcGlsZWQgcnVsZXMK
KyAgICAgKiBpcyBtdWNoIGZhc3RlciB0aGFuIGJ1aWxkaW5nIG9uZSBmcm9tIHRoZSBzb3VyY2Ug
Zm9ybSBvZiB0aGUKKyAgICAgKiBicmVhayBydWxlcy4KKyAgICAgKgorICAgICAqIFRoZSBiaW5h
cnkgZGF0YSBjYW4gb25seSBiZSB1c2VkIHdpdGggdGhlIHNhbWUgdmVyc2lvbiBvZiBJQ1UKKyAg
ICAgKiAgYW5kIG9uIHRoZSBzYW1lIHBsYXRmb3JtIHR5cGUgKHByb2Nlc3NvciBlbmRpYW4tbmVz
cykKKyAgICAgKgorICAgICAqIEBwYXJhbSBsZW5ndGggUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRo
ZSBiaW5hcnkgZGF0YS4gIChPdXQgcGFyYW10ZXIuKQorICAgICAqCisgICAgICogQHJldHVybiAg
IEEgcG9pbnRlciB0byB0aGUgYmluYXJ5IChjb21waWxlZCkgcnVsZSBkYXRhLiAgVGhlIHN0b3Jh
Z2UKKyAgICAgKiAgICAgICAgICAgYmVsb25ncyB0byB0aGUgUnVsZXNCYXNlZEJyZWFrSXRlcmF0
b3Igb2JqZWN0LCBub3QgdGhlCisgICAgICogICAgICAgICAgIGNhbGxlciwgYW5kIG11c3Qgbm90
IGJlIG1vZGlmaWVkIG9yIGRlbGV0ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgICov
CisgICAgdmlydHVhbCBjb25zdCB1aW50OF90ICpnZXRCaW5hcnlSdWxlcyh1aW50MzJfdCAmbGVu
Z3RoKTsKKworICAgIC8qKgorICAgICAqICBTZXQgdGhlIHN1YmplY3QgdGV4dCBzdHJpbmcgdXBv
biB3aGljaCB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nCisgICAgICogIHdpdGhvdXQg
Y2hhbmdpbmcgYW55IG90aGVyIGFzcGVjdCBvZiB0aGUgbWF0Y2hpbmcgc3RhdGUuCisgICAgICog
IFRoZSBuZXcgYW5kIHByZXZpb3VzIHRleHQgc3RyaW5ncyBtdXN0IGhhdmUgdGhlIHNhbWUgY29u
dGVudC4KKyAgICAgKgorICAgICAqICBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2Ug
aW4gZW52aXJvbm1lbnRzIHdoZXJlIElDVSBpcyBvcGVyYXRpbmcgb24KKyAgICAgKiAgc3RyaW5n
cyB0aGF0IG1heSBtb3ZlIGFyb3VuZCBpbiBtZW1vcnkuICBJdCBwcm92aWRlcyBhIG1lY2hhbmlz
bSBmb3Igbm90aWZ5aW5nCisgICAgICogIElDVSB0aGF0IHRoZSBzdHJpbmcgaGFzIGJlZW4gcmVs
b2NhdGVkLCBhbmQgcHJvdmlkaW5nIGEgbmV3IFVUZXh0IHRvIGFjY2VzcyB0aGUKKyAgICAgKiAg
c3RyaW5nIGluIGl0cyBuZXcgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiAgTm90ZSB0aGF0IHRo
ZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbiBuZXZlciBjb3BpZXMgdGhlIHVuZGVybHlp
bmcgdGV4dAorICAgICAqICBvZiBhIHN0cmluZyBiZWluZyBwcm9jZXNzZWQsIGJ1dCBhbHdheXMg
b3BlcmF0ZXMgZGlyZWN0bHkgb24gdGhlIG9yaWdpbmFsIHRleHQKKyAgICAgKiAgcHJvdmlkZWQg
YnkgdGhlIHVzZXIuIFJlZnJlc2hpbmcgc2ltcGx5IGRyb3BzIHRoZSByZWZlcmVuY2VzIHRvIHRo
ZSBvbGQgdGV4dAorICAgICAqICBhbmQgcmVwbGFjZXMgdGhlbSB3aXRoIHJlZmVyZW5jZXMgdG8g
dGhlIG5ldy4KKyAgICAgKgorICAgICAqICBDYXV0aW9uOiAgdGhpcyBmdW5jdGlvbiBpcyBub3Jt
YWxseSB1c2VkIG9ubHkgYnkgdmVyeSBzcGVjaWFsaXplZCwKKyAgICAgKiAgc3lzdGVtLWxldmVs
IGNvZGUuICBPbmUgZXhhbXBsZSB1c2UgY2FzZSBpcyB3aXRoIGdhcmJhZ2UgY29sbGVjdGlvbiB0
aGF0IG1vdmVzCisgICAgICogIHRoZSB0ZXh0IGluIG1lbW9yeS4KKyAgICAgKgorICAgICAqIEBw
YXJhbSBpbnB1dCAgICAgIFRoZSBuZXcgKG1vdmVkKSB0ZXh0IHN0cmluZy4KKyAgICAgKiBAcGFy
YW0gc3RhdHVzICAgICBSZWNlaXZlcyBlcnJvcnMgZGV0ZWN0ZWQgYnkgdGhpcyBmdW5jdGlvbi4K
KyAgICAgKiBAcmV0dXJuICAgICAgICAgICAqdGhpcworICAgICAqCisgICAgICogQHN0YWJsZSBJ
Q1UgNDkKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgJnJlZnJl
c2hJbnB1dFRleHQoVVRleHQgKmlucHV0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisKK3Byb3Rl
Y3RlZDoKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gaW1wbGVtZW50YXRpb24KKyAgICAv
Lz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisgICAgLyoqCisgICAgICogRHVtcHMgY2FjaGVzIGFuZCBwZXJmb3Jt
cyBvdGhlciBhY3Rpb25zIGFzc29jaWF0ZWQgd2l0aCBhIGNvbXBsZXRlIGNoYW5nZQorICAgICAq
IGluIHRleHQgb3IgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBpbnRlcm5hbAorICAgICAq
LworICAgIHZpcnR1YWwgdm9pZCByZXNldCh2b2lkKTsKKworI2lmIDAKKyAgICAvKioKKyAgICAg
ICogUmV0dXJuIHRydWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBmb3IgdGhpcyBjaGFyCisgICAg
ICAqIGluZGljYXRlcyB0aGF0IGl0IGlzIGluIHRoZSBzZXQgb2YgZGljdGlvbmFyeSBsb29rdXAg
Y2hhcnMuCisgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBkaWN0
aW9uYXJ5IGJhc2VkIGJyZWFrIGl0ZXJhdG9ycy4KKyAgICAgICogQHJldHVybiB0cnVlIGlmIHRo
ZSBjYXRlZ29yeSBsb29rdXAgZm9yIHRoaXMgY2hhcgorICAgICAgKiBpbmRpY2F0ZXMgdGhhdCBp
dCBpcyBpbiB0aGUgc2V0IG9mIGRpY3Rpb25hcnkgbG9va3VwIGNoYXJzLgorICAgICAgKiBAaW50
ZXJuYWwKKyAgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBpc0RpY3Rpb25hcnlDaGFyKFVDaGFy
MzIpOworCisgICAgLyoqCisgICAgICAqIEdldCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0
b3IuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0
QnJlYWtUeXBlKCkgY29uc3Q7CisjZW5kaWYKKworICAgIC8qKgorICAgICAgKiBTZXQgdGhlIHR5
cGUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisg
ICAgdmlydHVhbCB2b2lkIHNldEJyZWFrVHlwZShpbnQzMl90IHR5cGUpOworCisjaWZuZGVmIFVf
SElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgICogQ29tbW9uIGluaXRpYWxpemF0aW9u
IGZ1bmN0aW9uLCB1c2VkIGJ5IGNvbnN0cnVjdG9ycyBhbmQgYnVmZmVyQ2xvbmUuCisgICAgICAq
IEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2b2lkIGluaXQoKTsKKyNlbmRpZiAgLyogVV9ISURF
X0lOVEVSTkFMX0FQSSAqLworCitwcml2YXRlOgorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRo
b2QgYmFja3MgdGhlIGl0ZXJhdG9yIGJhY2sgdXAgdG8gYSAic2FmZSBwb3NpdGlvbiIgaW4gdGhl
IHRleHQuCisgICAgICogVGhpcyBpcyBhIHBvc2l0aW9uIHRoYXQgd2Uga25vdywgd2l0aG91dCBh
bnkgY29udGV4dCwgbXVzdCBiZSBhIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIFRoZSB2YXJpb3Vz
IGNhbGxpbmcgbWV0aG9kcyB0aGVuIGl0ZXJhdGUgZm9yd2FyZCBmcm9tIHRoaXMgc2FmZSBwb3Np
dGlvbiB0bworICAgICAqIHRoZSBhcHByb3ByaWF0ZSBwb3NpdGlvbiB0byByZXR1cm4uICAoRm9y
IG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBvZiBidWlsZEJh
Y2t3YXJkc1N0YXRlVGFibGUoKSBpbiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkJ1aWxkZXIuKQor
ICAgICAqIEBwYXJhbSBzdGF0ZXRhYmxlIHN0YXRlIHRhYmxlIHVzZWQgb2YgbW92aW5nIGJhY2t3
YXJkcworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgaGFuZGxlUHJldmlv
dXMoY29uc3QgUkJCSVN0YXRlVGFibGUgKnN0YXRldGFibGUpOworCisgICAgLyoqCisgICAgICog
VGhpcyBtZXRob2QgaXMgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV4dCgpIG1l
dGhvZC4gIEFsbCBpdGVyYXRpb24KKyAgICAgKiB2ZWN0b3JzIHRocm91Z2ggaGVyZS4gIFRoaXMg
bWV0aG9kIGluaXRpYWxpemVzIHRoZSBzdGF0ZSBtYWNoaW5lIHRvIHN0YXRlIDEKKyAgICAgKiBh
bmQgYWR2YW5jZXMgdGhyb3VnaCB0aGUgdGV4dCBjaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIHVudGls
IHdlIHJlYWNoIHRoZSBlbmQKKyAgICAgKiBvZiB0aGUgdGV4dCBvciB0aGUgc3RhdGUgbWFjaGlu
ZSB0cmFuc2l0aW9ucyB0byBzdGF0ZSAwLiAgV2UgdXBkYXRlIG91ciByZXR1cm4KKyAgICAgKiB2
YWx1ZSBldmVyeSB0aW1lIHRoZSBzdGF0ZSBtYWNoaW5lIHBhc3NlcyB0aHJvdWdoIGEgcG9zc2li
bGUgZW5kIHN0YXRlLgorICAgICAqIEBwYXJhbSBzdGF0ZXRhYmxlIHN0YXRlIHRhYmxlIHVzZWQg
b2YgbW92aW5nIGZvcndhcmRzCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJf
dCBoYW5kbGVOZXh0KGNvbnN0IFJCQklTdGF0ZVRhYmxlICpzdGF0ZXRhYmxlKTsKKworcHJvdGVj
dGVkOgorCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgKiBUaGlz
IGlzIHRoZSBmdW5jdGlvbiB0aGF0IGFjdHVhbGx5IGltcGxlbWVudHMgZGljdGlvbmFyeS1iYXNl
ZAorICAgICAqIGJyZWFraW5nLiAgQ292ZXJpbmcgYXQgbGVhc3QgdGhlIHJhbmdlIGZyb20gc3Rh
cnRQb3MgdG8gZW5kUG9zLAorICAgICAqIGl0IGNoZWNrcyBmb3IgZGljdGlvbmFyeSBjaGFyYWN0
ZXJzLCBhbmQgaWYgaXQgZmluZHMgdGhlbSBkZXRlcm1pbmVzCisgICAgICogdGhlIGFwcHJvcHJp
YXRlIG9iamVjdCB0byBkZWFsIHdpdGggdGhlbS4gSXQgbWF5IGNhY2hlIGZvdW5kIGJyZWFrcyBp
bgorICAgICAqIGZDYWNoZWRCcmVha1Bvc2l0aW9ucyBhcyBpdCBnb2VzLiBJdCBtYXkgd2VsbCBh
bHNvIGxvb2sgYXQgdGV4dCBvdXRzaWRlCisgICAgICogdGhlIHJhbmdlIHN0YXJ0UG9zIHRvIGVu
ZFBvcy4KKyAgICAgKiBJZiBnb2luZyBmb3J3YXJkLCBlbmRQb3MgaXMgdGhlIG5vcm1hbCBVbmlj
b2RlIGJyZWFrIHJlc3VsdCwgYW5kCisgICAgICogaWYgZ29pbmQgaW4gcmV2ZXJzZSwgc3RhcnRQ
b3MgaXMgdGhlIG5vcm1hbCBVbmljb2RlIGJyZWFrIHJlc3VsdAorICAgICAqIEBwYXJhbSBzdGFy
dFBvcyAgVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIGEgcmFuZ2Ugb2YgdGV4dAorICAgICAqIEBwYXJh
bSBlbmRQb3MgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiBhIHJhbmdlIG9mIHRleHQKKyAgICAgKiBA
cGFyYW0gcmV2ZXJzZSAgIFRoZSBjYWxsIGlzIGZvciB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24KKyAg
ICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGNoZWNrRGljdGlvbmFyeShpbnQz
Ml90IHN0YXJ0UG9zLCBpbnQzMl90IGVuZFBvcywgVUJvb2wgcmV2ZXJzZSk7CisjZW5kaWYgIC8q
IFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworcHJpdmF0ZToKKworICAgIC8qKgorICAgICAqIFRo
aXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgTGFuZ3VhZ2VCcmVha0VuZ2luZSBm
b3IgYQorICAgICAqIGdpdmVuIGNoYXJhY3RlciBjLgorICAgICAqIEBwYXJhbSBjICAgICAgICAg
QSBjaGFyYWN0ZXIgaW4gdGhlIGRpY3Rpb25hcnkgc2V0CisgICAgICogQGludGVybmFsCisgICAg
ICovCisgICAgY29uc3QgTGFuZ3VhZ2VCcmVha0VuZ2luZSAqZ2V0TGFuZ3VhZ2VCcmVha0VuZ2lu
ZShVQ2hhcjMyIGMpOworCisgICAgLyoqCisgICAgICogIEBpbnRlcm5hbAorICAgICAqLworICAg
IHZvaWQgbWFrZVJ1bGVTdGF0dXNWYWxpZCgpOworCit9OworCisvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorLy8KKy8vICAgSW5saW5lIEZ1bmN0aW9ucyBEZWZpbml0aW9ucyAuLi4KKy8vCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCitpbmxpbmUgVUJvb2wgUnVsZUJhc2VkQnJlYWtJdGVyYXRv
cjo6b3BlcmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdCB7CisgICAgcmV0
dXJuICFvcGVyYXRvcj09KHRoYXQpOworfQorCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmIC8q
ICNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gKi8KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3NjaHJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3NjaHJpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBiNWUyMjUwM2NmZjI2MWQyY2QyNDBmZjEyMDA3
ZjkzN2Y3ODNiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2No
cml0ZXIuaApAQCAtMCwwICsxLDE4NyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgor
KiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisq
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBzY2hyaXRlci5oCisqCisqIE1vZGlm
aWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0
aW9uCisqICAwNS8wNS85OSAgICAgc3RlcGhlbiAgICAgQ2xlYW5lZCB1cC4KKyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgorKi8KKworI2lmbmRlZiBTQ0hSSVRFUl9ICisjZGVmaW5lIFNDSFJJVEVSX0gK
KworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS9jaGFyaXRl
ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWNocml0ZXIuaCIKKworLyoqCisgKiBcZmlsZSAKKyAq
IFxicmllZiBDKysgQVBJOiBTdHJpbmcgQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFN
RVNQQUNFX0JFR0lOCisvKioKKyAqIEEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ2hhcmFjdGVySXRl
cmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIHRoZQorICogY2hhcmFjdGVycyAoY29kZSB1bml0cyBv
ciBjb2RlIHBvaW50cykgaW4gYSBVbmljb2RlU3RyaW5nLgorICogSXQncyBwb3NzaWJsZSBub3Qg
b25seSB0byBjcmVhdGUgYW4KKyAqIGl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciBhbiBlbnRp
cmUgVW5pY29kZVN0cmluZywgYnV0IGFsc28gdG8KKyAqIGNyZWF0ZSBvbmUgdGhhdCBpdGVyYXRl
cyBvdmVyIG9ubHkgYSBzdWJyYW5nZSBvZiBhIFVuaWNvZGVTdHJpbmcKKyAqIChpdGVyYXRvcnMg
b3ZlciBkaWZmZXJlbnQgc3VicmFuZ2VzIG9mIHRoZSBzYW1lIFVuaWNvZGVTdHJpbmcgZG9uJ3QK
KyAqIGNvbXBhcmUgZXF1YWwpLgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQHNlZSBG
b3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitjbGFzcyBV
X0NPTU1PTl9BUEkgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgVUNoYXJDaGFyYWN0
ZXJJdGVyYXRvciB7CitwdWJsaWM6CisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3Zl
ciB0aGUgVW5pY29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBV
bmljb2RlU3RyaW5nIG9iamVjdCBpcyBjb3BpZWQuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2Ug
aXMgdGhlIHdob2xlIHN0cmluZywgYW5kIHRoZSBzdGFydGluZyBwb3NpdGlvbiBpcyAwLgorICAg
KiBAcGFyYW0gdGV4dFN0ciBUaGUgdW5pY29kZSBzdHJpbmcgdXNlZCB0byBjcmVhdGUgYW4gaXRl
cmF0b3IKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVy
YXRvcihjb25zdCBVbmljb2RlU3RyaW5nJiB0ZXh0U3RyKTsKKworICAvKioKKyAgICogQ3JlYXRl
IGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJyZWQgdG8gYnkgInRleHRT
dHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIHRoZSB3aG9sZSBzdHJpbmcsIGFuZCB0
aGUgc3RhcnRpbmcKKyAgICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJ0ZXh0UG9zIi4gIElm
ICJ0ZXh0UG9zIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRo
ZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0
U3RyIFRoZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSBhbiBpdGVyYXRvcgorICAgKiBA
cGFyYW0gdGV4dFBvcyBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0
IFVuaWNvZGVTdHJpbmcmICAgIHRleHRTdHIsCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAg
ICAgICAgIHRleHRQb3MpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0
aGUgVW5pY29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBVbmlj
b2RlU3RyaW5nIG9iamVjdCBpcyBjb3BpZWQuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgYmVn
aW5zIHdpdGggdGhlIGNvZGUgdW5pdCBzcGVjaWZpZWQgYnkKKyAgICogInRleHRCZWdpbiIgYW5k
IGVuZHMgd2l0aCB0aGUgY29kZSB1bml0IEJFRk9SRSB0aGUgY29kZSB1bml0IHNwZWNmaWVkCisg
ICAqIGJ5ICJ0ZXh0RW5kIi4gIFRoZSBzdGFydGluZyBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkg
InRleHRQb3MiLiAgSWYKKyAgICogInRleHRCZWdpbiIgYW5kICJ0ZXh0RW5kIiBkb24ndCBmb3Jt
IGEgdmFsaWQgcmFuZ2Ugb24gInRleHQiIChpLmUuLAorICAgKiB0ZXh0QmVnaW4gPj0gdGV4dEVu
ZCBvciBlaXRoZXIgaXMgbmVnYXRpdmUgb3IgZ3JlYXRlciB0aGFuIHRleHQuc2l6ZSgpKSwKKyAg
ICogb3IgInRleHRQb3MiIGlzIG91dHNpZGUgdGhlIHJhbmdlIGRlZmluZWQgYnkgInRleHRCZWdp
biIgYW5kICJ0ZXh0RW5kIiwKKyAgICogdGhlIGJlaGF2aW9yIG9mIHRoaXMgaXRlcmF0b3IgaXMg
dW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFN0ciAgICBUaGUgdW5pY29kZSBzdHJpbmcgdXNl
ZCB0byBjcmVhdGUgdGhlIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yCisgICAqIEBwYXJhbSB0ZXh0
QmVnaW4gIFRoZSBiZWdpbiBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBw
YXJhbSB0ZXh0RW5kICAgIFRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQor
ICAgKiBAcGFyYW0gdGV4dFBvcyAgICBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJh
dGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJh
dG9yKGNvbnN0IFVuaWNvZGVTdHJpbmcmICAgIHRleHRTdHIsCisgICAgICAgICAgICAgIGludDMy
X3QgICAgICAgICAgICAgIHRleHRCZWdpbiwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAg
ICAgICAgdGV4dEVuZCwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dFBv
cyk7CisKKyAgLyoqCisgICAqIENvcHkgY29uc3RydWN0b3IuICBUaGUgbmV3IGl0ZXJhdG9yIGl0
ZXJhdGVzIG92ZXIgdGhlIHNhbWUgcmFuZ2UKKyAgICogb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0
aGF0IiwgYW5kIGl0cyBpbml0aWFsIHBvc2l0aW9uIGlzIHRoZQorICAgKiBzYW1lIGFzICJ0aGF0
IidzIGN1cnJlbnQgcG9zaXRpb24uCisgICAqIFRoZSBVbmljb2RlU3RyaW5nIG9iamVjdCBpbiAi
dGhhdCIgaXMgY29waWVkLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgU3RyaW5nQ2hhcmFjdGVySXRl
cmF0b3IgdG8gYmUgY29waWVkCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5n
Q2hhcmFjdGVySXRlcmF0b3IoY29uc3QgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImICB0aGF0KTsK
KworICAvKioKKyAgICogRGVzdHJ1Y3Rvci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICB2aXJ0dWFsIH5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8qKgorICAgKiBBc3Np
Z25tZW50IG9wZXJhdG9yLiAgKnRoaXMgaXMgYWx0ZXJlZCB0byBpdGVyYXRlIG92ZXIgdGhlIHNh
bWUKKyAgICogcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIHJlZmVycyB0
byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgd2l0aGluIHRoYXQgc3RyaW5nIGFzICJ0aGF0IiBk
b2VzLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgb2JqZWN0IHRvIGJlIGNvcGllZC4KKyAgICogQHJl
dHVybiB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImCisgIG9wZXJhdG9yPShjb25zdCBTdHJpbmdD
aGFyYWN0ZXJJdGVyYXRvciYgICAgdGhhdCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgdHJ1ZSBp
ZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICog
c2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAq
IEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQg
Zm9yIGVxdWFsaXR5CisgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUg
b3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2lu
dGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgdmlydHVhbCBVQm9vbCAgICAgICAgICBvcGVyYXRvcj09KGNvbnN0IEZvcndhcmRDaGFyYWN0
ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgYSBuZXcgU3Ry
aW5nQ2hhcmFjdGVySXRlcmF0b3IgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3Rl
ciBpbiB0aGUgc2FtZSByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgdGhpcyBvbmUuICBUaGUK
KyAgICogY2FsbGVyIG11c3QgZGVsZXRlIHRoZSBuZXcgaXRlcmF0b3IuCisgICAqIEByZXR1cm4g
dGhlIG5ld2x5IGNsb25lZCBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
dmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3Q7CisKKyAgLyoqCisg
ICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgcHJvdmlkZWQgc3RyaW5n
LgorICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUgc3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVW5pY29kZVN0
cmluZyYgbmV3VGV4dCk7CisKKyAgLyoqCisgICAqIENvcGllcyB0aGUgVW5pY29kZVN0cmluZyB1
bmRlciBpdGVyYXRpb24gaW50byB0aGUgVW5pY29kZVN0cmluZworICAgKiByZWZlcnJlZCB0byBi
eSAicmVzdWx0Ii4gIEV2ZW4gaWYgdGhpcyBpdGVyYXRvciBpdGVyYXRlcyBhY3Jvc3MKKyAgICog
b25seSBhIHBhcnQgb2YgdGhpcyBzdHJpbmcsIHRoZSB3aG9sZSBzdHJpbmcgaXMgY29waWVkLgor
ICAgKiBAcGFyYW0gcmVzdWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVy
YXRpb24uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB2b2lkICAgICAg
ICAgICAgZ2V0VGV4dChVbmljb2RlU3RyaW5nJiByZXN1bHQpOworCisgIC8qKgorICAgKiBSZXR1
cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QgKG5vdCByZWFsbHkgcHVibGljKQorICAgKiBA
cmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgVUNsYXNzSUQgICAgICAgICBnZXREeW5hbWljQ2xhc3NJRCh2b2lk
KSBjb25zdDsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3Mg
KG5vdCByZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xh
c3MKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBzdGF0aWMgVUNsYXNzSUQgICBVX0VY
UE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworcHJvdGVjdGVkOgorICAvKioKKyAgICog
RGVmYXVsdCBjb25zdHJ1Y3RvciwgaXRlcmF0aW9uIG92ZXIgZW1wdHkgc3RyaW5nLgorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAg
LyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgcHJvdmlkZWQg
c3RyaW5nLgorICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUgc3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92
ZXIKKyAgICogQHBhcmFtIG5ld1RleHRMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgU3RyaW5nCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdm9pZCBzZXRUZXh0KGNvbnN0IFVDaGFyKiBu
ZXdUZXh0LCBpbnQzMl90IG5ld1RleHRMZW5ndGgpOworCisgIC8qKgorICAgKiBDb3B5IG9mIHRo
ZSBpdGVyYXRlZCBzdHJpbmcgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IFVuaWNvZGVTdHJpbmcgICAgICAgICAgICB0ZXh0OworCit9OworCitVX05BTUVTUEFDRV9FTkQK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1hcC5oIGIv
U291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1hcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzN2UxNjU4ODY5
N2YxYTkzMDE5MWVlM2RmODE2YzYzYjdiZDM4YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL2ljdS91bmljb2RlL3VjYXNlbWFwLmgKQEAgLTAsMCArMSw0MjMgQEAKKy8qCisqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTIsIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5h
bWU6ICB1Y2FzZW1hcC5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTog
ICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAw
NW1heTA2CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyoKKyogICBDYXNlIG1h
cHBpbmcgc2VydmljZSBvYmplY3QgYW5kIGZ1bmN0aW9ucyB1c2luZyBpdC4KKyovCisKKyNpZm5k
ZWYgX19VQ0FTRU1BUF9IX18KKyNkZWZpbmUgX19VQ0FTRU1BUF9IX18KKworI2luY2x1ZGUgInVu
aWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91c3RyaW5nLmgiCisjaW5jbHVkZSAi
dW5pY29kZS9sb2NhbHBvaW50ZXIuaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMgQVBJ
OiBVbmljb2RlIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMgdXNpbmcgYSBVQ2FzZU1hcCBzZXJ2aWNl
IG9iamVjdC4KKyAqCisgKiBUaGUgc2VydmljZSBvYmplY3QgdGFrZXMgY2FyZSBvZiBtZW1vcnkg
YWxsb2NhdGlvbnMsIGRhdGEgbG9hZGluZywgYW5kIHNldHVwCisgKiBmb3IgdGhlIGF0dHJpYnV0
ZXMsIGFzIHVzdWFsLgorICoKKyAqIEN1cnJlbnRseSwgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlk
ZWQgaGVyZSBkb2VzIG5vdCBvdmVybGFwIHdpdGggdWNoYXIuaAorICogYW5kIHVzdHJpbmcuaCwg
ZXhjZXB0IGZvciB1Y2FzZW1hcF90b1RpdGxlKCkuCisgKgorICogdWNhc2VtYXBfdXRmOFhZWigp
IGZ1bmN0aW9ucyBvcGVyYXRlIGRpcmVjdGx5IG9uIFVURi04IHN0cmluZ3MuCisgKi8KKworLyoq
CisgKiBVQ2FzZU1hcCBpcyBhbiBvcGFxdWUgc2VydmljZSBvYmplY3QgZm9yIG5ld2VyIElDVSBj
YXNlIG1hcHBpbmcgZnVuY3Rpb25zLgorICogT2xkZXIgZnVuY3Rpb25zIGRpZCBub3QgdXNlIGEg
c2VydmljZSBvYmplY3QuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworc3RydWN0IFVDYXNlTWFw
OwordHlwZWRlZiBzdHJ1Y3QgVUNhc2VNYXAgVUNhc2VNYXA7IC8qKjwgQyB0eXBlZGVmIGZvciBz
dHJ1Y3QgVUNhc2VNYXAuIEBzdGFibGUgSUNVIDMuNCAqLworCisvKioKKyAqIE9wZW4gYSBVQ2Fz
ZU1hcCBzZXJ2aWNlIG9iamVjdCBmb3IgYSBsb2NhbGUgYW5kIGEgc2V0IG9mIG9wdGlvbnMuCisg
KiBUaGUgbG9jYWxlIElEIGFuZCBvcHRpb25zIGFyZSBwcmVwcm9jZXNzZWQgc28gdGhhdCBmdW5j
dGlvbnMgdXNpbmcgdGhlCisgKiBzZXJ2aWNlIG9iamVjdCBuZWVkIG5vdCBwcm9jZXNzIHRoZW0g
aW4gZWFjaCBjYWxsLgorICoKKyAqIEBwYXJhbSBsb2NhbGUgSUNVIGxvY2FsZSBJRCwgdXNlZCBm
b3IgbGFuZ3VhZ2UtZGVwZW5kZW50CisgKiAgICAgICAgICAgICAgIHVwcGVyLS9sb3dlci0vdGl0
bGUtY2FzaW5nIGFjY29yZGluZyB0byB0aGUgVW5pY29kZSBzdGFuZGFyZC4KKyAqICAgICAgICAg
ICAgICAgVXN1YWwgc2VtYW50aWNzOiAiIj1yb290LCBOVUxMPWRlZmF1bHQgbG9jYWxlLCBldGMu
CisgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGJpdCBzZXQsIHVzZWQgZm9yIGNhc2UgZm9sZGlu
ZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICogICAgICAgICAgICAgICAgU2FtZSBmbGFncyBh
cyBmb3IgdV9mb2xkQ2FzZSgpLCB1X3N0ckZvbGRDYXNlKCksCisgKiAgICAgICAgICAgICAgICB1
X3N0ckNhc2VDb21wYXJlKCksIGV0Yy4KKyAqICAgICAgICAgICAgICAgIFVzZSAwIG9yIFVfRk9M
RF9DQVNFX0RFRkFVTFQgZm9yIGRlZmF1bHQgYmVoYXZpb3IuCisgKiBAcGFyYW0gcEVycm9yQ29k
ZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAg
ICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0
aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gUG9pbnRlciB0byBhIFVDYXNlTWFwIHNlcnZp
Y2Ugb2JqZWN0LCBpZiBzdWNjZXNzZnVsLgorICoKKyAqIEBzZWUgVV9GT0xEX0NBU0VfREVGQVVM
VAorICogQHNlZSBVX0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICogQHNlZSBVX1RJVExF
Q0FTRV9OT19MT1dFUkNBU0UKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVO
VAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIFVDYXNlTWFwICogVV9FWFBPUlQy
Cit1Y2FzZW1hcF9vcGVuKGNvbnN0IGNoYXIgKmxvY2FsZSwgdWludDMyX3Qgb3B0aW9ucywgVUVy
cm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogQ2xvc2UgYSBVQ2FzZU1hcCBzZXJ2aWNl
IG9iamVjdC4KKyAqIEBwYXJhbSBjc20gT2JqZWN0IHRvIGJlIGNsb3NlZC4KKyAqIEBzdGFibGUg
SUNVIDMuNAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfY2xvc2UoVUNh
c2VNYXAgKmNzbSk7CisKKyNpZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9C
RUdJTgorCisvKioKKyAqIFxjbGFzcyBMb2NhbFVDYXNlTWFwUG9pbnRlcgorICogIlNtYXJ0IHBv
aW50ZXIiIGNsYXNzLCBjbG9zZXMgYSBVQ2FzZU1hcCB2aWEgdWNhc2VtYXBfY2xvc2UoKS4KKyAq
IEZvciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisg
KgorICogQHNlZSBMb2NhbFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0
YWJsZSBJQ1UgNC40CisgKi8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVDYXNl
TWFwUG9pbnRlciwgVUNhc2VNYXAsIHVjYXNlbWFwX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5E
CisKKyNlbmRpZgorCisvKioKKyAqIEdldCB0aGUgbG9jYWxlIElEIHRoYXQgaXMgdXNlZCBmb3Ig
bGFuZ3VhZ2UtZGVwZW5kZW50IGNhc2UgbWFwcGluZ3MuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVybiBsb2NhbGUgSUQKKyAqIEBzdGFibGUgSUNVIDMu
NAorICovCitVX1NUQUJMRSBjb25zdCBjaGFyICogVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRMb2Nh
bGUoY29uc3QgVUNhc2VNYXAgKmNzbSk7CisKKy8qKgorICogR2V0IHRoZSBvcHRpb25zIGJpdCBz
ZXQgdGhhdCBpcyB1c2VkIGZvciBjYXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29ucy4K
KyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIG9wdGlv
bnMgYml0IHNldAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHVpbnQzMl90IFVf
RVhQT1JUMgordWNhc2VtYXBfZ2V0T3B0aW9ucyhjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoq
CisgKiBTZXQgdGhlIGxvY2FsZSBJRCB0aGF0IGlzIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVu
dCBjYXNlIG1hcHBpbmdzLgorICoKKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmpl
Y3QuCisgKiBAcGFyYW0gbG9jYWxlIExvY2FsZSBJRCwgc2VlIHVjYXNlbWFwX29wZW4oKS4KKyAq
IEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNv
ZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBh
IGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAqIEBzZWUgdWNhc2VtYXBf
b3BlbgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1
Y2FzZW1hcF9zZXRMb2NhbGUoVUNhc2VNYXAgKmNzbSwgY29uc3QgY2hhciAqbG9jYWxlLCBVRXJy
b3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBTZXQgdGhlIG9wdGlvbnMgYml0IHNldCB0
aGF0IGlzIHVzZWQgZm9yIGNhc2UgZm9sZGluZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICoK
KyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gb3B0aW9u
cyBPcHRpb25zIGJpdCBzZXQsIHNlZSB1Y2FzZW1hcF9vcGVuKCkuCisgKiBAcGFyYW0gcEVycm9y
Q29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICog
ICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9y
ZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX29wZW4KKyAqIEBzdGFi
bGUgSUNVIDMuNAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0T3B0
aW9ucyhVQ2FzZU1hcCAqY3NtLCB1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKTsKKworLyoqCisgKiBEbyBub3QgbG93ZXJjYXNlIG5vbi1pbml0aWFsIHBhcnRzIG9mIHdv
cmRzIHdoZW4gdGl0bGVjYXNpbmcuCisgKiBPcHRpb24gYml0IGZvciB0aXRsZWNhc2luZyBBUElz
IHRoYXQgdGFrZSBhbiBvcHRpb25zIGJpdCBzZXQuCisgKgorICogQnkgZGVmYXVsdCwgdGl0bGVj
YXNpbmcgd2lsbCB0aXRsZWNhc2UgdGhlIGZpcnN0IGNhc2VkIGNoYXJhY3RlcgorICogb2YgYSB3
b3JkIGFuZCBsb3dlcmNhc2UgYWxsIG90aGVyIGNoYXJhY3RlcnMuCisgKiBXaXRoIHRoaXMgb3B0
aW9uLCB0aGUgb3RoZXIgY2hhcmFjdGVycyB3aWxsIG5vdCBiZSBtb2RpZmllZC4KKyAqCisgKiBA
c2VlIHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgdWNhc2VtYXBfdG9UaXRsZQorICogQHNl
ZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICogQHNlZSBVbmljb2RlU3RyaW5nOjp0b1RpdGxlCisg
KiBAc3RhYmxlIElDVSAzLjgKKyAqLworI2RlZmluZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNBU0Ug
MHgxMDAKKworLyoqCisgKiBEbyBub3QgYWRqdXN0IHRoZSB0aXRsZWNhc2luZyBpbmRleGVzIGZy
b20gQnJlYWtJdGVyYXRvcjo6bmV4dCgpIGluZGV4ZXM7CisgKiB0aXRsZWNhc2UgZXhhY3RseSB0
aGUgY2hhcmFjdGVycyBhdCBicmVha3MgZnJvbSB0aGUgaXRlcmF0b3IuCisgKiBPcHRpb24gYml0
IGZvciB0aXRsZWNhc2luZyBBUElzIHRoYXQgdGFrZSBhbiBvcHRpb25zIGJpdCBzZXQuCisgKgor
ICogQnkgZGVmYXVsdCwgdGl0bGVjYXNpbmcgd2lsbCB0YWtlIGVhY2ggYnJlYWsgaXRlcmF0b3Ig
aW5kZXgsCisgKiBhZGp1c3QgaXQgYnkgbG9va2luZyBmb3IgdGhlIG5leHQgY2FzZWQgY2hhcmFj
dGVyLCBhbmQgdGl0bGVjYXNlIHRoYXQgb25lLgorICogT3RoZXIgY2hhcmFjdGVycyBhcmUgbG93
ZXJjYXNlZC4KKyAqCisgKiBUaGlzIGZvbGxvd3MgVW5pY29kZSA0ICYgNSBzZWN0aW9uIDMuMTMg
RGVmYXVsdCBDYXNlIE9wZXJhdGlvbnM6CisgKgorICogUjMgIHRvVGl0bGVjYXNlKFgpOiBGaW5k
IHRoZSB3b3JkIGJvdW5kYXJpZXMgYmFzZWQgb24gVW5pY29kZSBTdGFuZGFyZCBBbm5leAorICog
IzI5LCAiVGV4dCBCb3VuZGFyaWVzLiIgQmV0d2VlbiBlYWNoIHBhaXIgb2Ygd29yZCBib3VuZGFy
aWVzLCBmaW5kIHRoZSBmaXJzdAorICogY2FzZWQgY2hhcmFjdGVyIEYuIElmIEYgZXhpc3RzLCBt
YXAgRiB0byBkZWZhdWx0X3RpdGxlKEYpOyB0aGVuIG1hcCBlYWNoCisgKiBzdWJzZXF1ZW50IGNo
YXJhY3RlciBDIHRvIGRlZmF1bHRfbG93ZXIoQykuCisgKgorICogQHNlZSB1Y2FzZW1hcF9zZXRP
cHRpb25zCisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRv
VGl0bGUKKyAqIEBzZWUgVW5pY29kZVN0cmluZzo6dG9UaXRsZQorICogQHNlZSBVX1RJVExFQ0FT
RV9OT19MT1dFUkNBU0UKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCisjZGVmaW5lIFVfVElUTEVD
QVNFX05PX0JSRUFLX0FESlVTVE1FTlQgMHgyMDAKKworI2lmICFVQ09ORklHX05PX0JSRUFLX0lU
RVJBVElPTgorCisvKioKKyAqIEdldCB0aGUgYnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2VkIGZv
ciB0aXRsZWNhc2luZy4KKyAqIERvIG5vdCBtb2RpZnkgdGhlIHJldHVybmVkIGJyZWFrIGl0ZXJh
dG9yLgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1cm4g
dGl0bGVjYXNpbmcgYnJlYWsgaXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NU
QUJMRSBjb25zdCBVQnJlYWtJdGVyYXRvciAqIFVfRVhQT1JUMgordWNhc2VtYXBfZ2V0QnJlYWtJ
dGVyYXRvcihjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoqCisgKiBTZXQgdGhlIGJyZWFrIGl0
ZXJhdG9yIHRoYXQgaXMgdXNlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBUaGUgVUNhc2VNYXAgc2Vy
dmljZSBvYmplY3QgcmVsZWFzZXMgYSBwcmV2aW91c2x5IHNldCBicmVhayBpdGVyYXRvcgorICog
YW5kICJhZG9wdHMiIHRoaXMgbmV3IG9uZSwgdGFraW5nIG93bmVyc2hpcCBvZiBpdC4KKyAqIEl0
IHdpbGwgYmUgcmVsZWFzZWQgaW4gYSBzdWJzZXF1ZW50IGNhbGwgdG8gdWNhc2VtYXBfc2V0QnJl
YWtJdGVyYXRvcigpCisgKiBvciB1Y2FzZW1hcF9jbG9zZSgpLgorICoKKyAqIEJyZWFrIGl0ZXJh
dG9yIG9wZXJhdGlvbnMgYXJlIG5vdCB0aHJlYWQtc2FmZS4gVGhlcmVmb3JlLCB0aXRsZWNhc2lu
ZworICogZnVuY3Rpb25zIHVzZSBub24tY29uc3QgVUNhc2VNYXAgb2JqZWN0cy4gSXQgaXMgbm90
IHBvc3NpYmxlIHRvIHRpdGxlY2FzZQorICogc3RyaW5ncyBjb25jdXJyZW50bHkgdXNpbmcgdGhl
IHNhbWUgVUNhc2VNYXAuCisgKgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVj
dC4KKyAqIEBwYXJhbSBpdGVyVG9BZG9wdCBCcmVhayBpdGVyYXRvciB0byBiZSBhZG9wdGVkIGZv
ciB0aXRsZWNhc2luZy4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2lu
dGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBt
dXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoK
KyAqIEBzZWUgdWNhc2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQor
ICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1h
cF9zZXRCcmVha0l0ZXJhdG9yKFVDYXNlTWFwICpjc20sIFVCcmVha0l0ZXJhdG9yICppdGVyVG9B
ZG9wdCwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogVGl0bGVjYXNlIGEgVVRG
LTE2IHN0cmluZy4gVGhpcyBmdW5jdGlvbiBpcyBhbG1vc3QgYSBkdXBsaWNhdGUgb2YgdV9zdHJU
b1RpdGxlKCksCisgKiBleGNlcHQgdGhhdCBpdCB0YWtlcyB1Y2FzZW1hcF9zZXRPcHRpb25zKCkg
aW50byBhY2NvdW50IGFuZCBoYXMgcGVyZm9ybWFuY2UKKyAqIGFkdmFudGFnZXMgZnJvbSBiZWlu
ZyBhYmxlIHRvIHVzZSBhIFVDYXNlTWFwIG9iamVjdCBmb3IgbXVsdGlwbGUgY2FzZSBtYXBwaW5n
CisgKiBvcGVyYXRpb25zLCBzYXZpbmcgc2V0dXAgdGltZS4KKyAqCisgKiBDYXNpbmcgaXMgbG9j
YWxlLWRlcGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaXRsZWNhc2luZyB1c2Vz
IGEgYnJlYWsgaXRlcmF0b3IgdG8gZmluZCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiB3b3Jkcwor
ICogdGhhdCBhcmUgdG8gYmUgdGl0bGVjYXNlZC4gSXQgdGl0bGVjYXNlcyB0aG9zZSBjaGFyYWN0
ZXJzIGFuZCBsb3dlcmNhc2VzCisgKiBhbGwgb3RoZXJzLiAoVGhpcyBjYW4gYmUgbW9kaWZpZWQg
d2l0aCB1Y2FzZW1hcF9zZXRPcHRpb25zKCkuKQorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24g
dGFrZXMgYSBub24tY29uc3QgVUNhc2VNYXAgcG9pbnRlciBiZWNhdXNlIGl0IHdpbGwKKyAqIG9w
ZW4gYSBkZWZhdWx0IGJyZWFrIGl0ZXJhdG9yIGlmIG5vIGJyZWFrIGl0ZXJhdG9yIHdhcyBzZXQg
eWV0LAorICogYW5kIGVmZmVjdGl2ZWx5IGNhbGwgdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigp
OworICogYWxzbyBiZWNhdXNlIHRoZSBicmVhayBpdGVyYXRvciBpcyBzdGF0ZWZ1bCBhbmQgd2ls
bCBiZSBtb2RpZmllZCBkdXJpbmcKKyAqIHRoZSBpdGVyYXRpb24uCisgKgorICogVGhlIHRpdGxl
Y2FzZSBicmVhayBpdGVyYXRvciBjYW4gYmUgcHJvdmlkZWQgdG8gY3VzdG9taXplIGZvciBhcmJp
dHJhcnkKKyAqIHN0eWxlcywgdXNpbmcgcnVsZXMgYW5kIGRpY3Rpb25hcmllcyBiZXlvbmQgdGhl
IHN0YW5kYXJkIGl0ZXJhdG9ycy4KKyAqIFRoZSBzdGFuZGFyZCB0aXRsZWNhc2UgaXRlcmF0b3Ig
Zm9yIHRoZSByb290IGxvY2FsZSBpbXBsZW1lbnRzIHRoZQorICogYWxnb3JpdGhtIG9mIFVuaWNv
ZGUgVFIgMjEuCisgKgorICogVGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHNldFVUZXh0KCks
IGZpcnN0KCksIG5leHQoKSBhbmQgY2xvc2UoKSBtZXRob2RzIG9mIHRoZQorICogcHJvdmlkZWQg
YnJlYWsgaXRlcmF0b3IuCisgKgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0
ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3Rp
bmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAg
VUNhc2VNYXAgc2VydmljZSBvYmplY3QuIFRoaXMgcG9pbnRlciBpcyBub24tY29uc3QhCisgKiAg
ICAgICAgICAgICAgICAgIFNlZSB0aGUgbm90ZSBhYm92ZSBmb3IgZGV0YWlscy4KKyAqIEBwYXJh
bSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdp
bGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBp
cyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRl
ZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6
ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAg
ICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9u
bHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3
aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAg
ICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3Ro
IG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJt
aW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8g
YW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3Qg
aW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4g
VGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNh
c2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2ls
bCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1RpdGxl
CisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3Vj
YXNlbWFwX3RvVGl0bGUoVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgVUNoYXIgKmRl
c3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAq
c3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVy
cm9yQ29kZSk7CisKKyNlbmRpZgorCisvKioKKyAqIExvd2VyY2FzZSB0aGUgY2hhcmFjdGVycyBp
biBhIFVURi04IHN0cmluZy4KKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250
ZXh0LXNlbnNpdGl2ZS4KKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRo
YW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlv
biBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNl
TWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhl
IHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICog
ICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAg
ICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisg
KiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBi
eXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUg
TlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUg
cmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJl
c3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisg
KiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYg
LTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29k
ZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAg
ICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRo
ZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3Ry
aW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAq
ICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNp
dHkuCisgKgorICogQHNlZSB1X3N0clRvTG93ZXIKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitV
X1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOFRvTG93ZXIoY29uc3QgVUNh
c2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVz
dENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90
IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUp
OworCisvKioKKyAqIFVwcGVyY2FzZSB0aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmluZy4K
KyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAq
IFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgor
ICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qg
b3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0
LgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRo
ZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0
aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRl
bnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFj
aXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAs
IHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0
aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAg
ICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBA
cGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3Ro
IFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3Qg
YmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQg
cG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGlj
aCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgor
ICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVs
IC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2gg
Y2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1
X3N0clRvVXBwZXIKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSBpbnQzMl90IFVf
RVhQT1JUMgordWNhc2VtYXBfdXRmOFRvVXBwZXIoY29uc3QgVUNhc2VNYXAgKmNzbSwKKyAgICAg
ICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAg
ICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjaWYgIVVDT05GSUdf
Tk9fQlJFQUtfSVRFUkFUSU9OCisKKy8qKgorICogVGl0bGVjYXNlIGEgVVRGLTggc3RyaW5nLgor
ICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICog
VGl0bGVjYXNpbmcgdXNlcyBhIGJyZWFrIGl0ZXJhdG9yIHRvIGZpbmQgdGhlIGZpcnN0IGNoYXJh
Y3RlcnMgb2Ygd29yZHMKKyAqIHRoYXQgYXJlIHRvIGJlIHRpdGxlY2FzZWQuIEl0IHRpdGxlY2Fz
ZXMgdGhvc2UgY2hhcmFjdGVycyBhbmQgbG93ZXJjYXNlcworICogYWxsIG90aGVycy4gKFRoaXMg
Y2FuIGJlIG1vZGlmaWVkIHdpdGggdWNhc2VtYXBfc2V0T3B0aW9ucygpLikKKyAqCisgKiBOb3Rl
OiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgbm9uLWNvbnN0IFVDYXNlTWFwIHBvaW50ZXIgYmVjYXVz
ZSBpdCB3aWxsCisgKiBvcGVuIGEgZGVmYXVsdCBicmVhayBpdGVyYXRvciBpZiBubyBicmVhayBp
dGVyYXRvciB3YXMgc2V0IHlldCwKKyAqIGFuZCBlZmZlY3RpdmVseSBjYWxsIHVjYXNlbWFwX3Nl
dEJyZWFrSXRlcmF0b3IoKTsKKyAqIGFsc28gYmVjYXVzZSB0aGUgYnJlYWsgaXRlcmF0b3IgaXMg
c3RhdGVmdWwgYW5kIHdpbGwgYmUgbW9kaWZpZWQgZHVyaW5nCisgKiB0aGUgaXRlcmF0aW9uLgor
ICoKKyAqIFRoZSB0aXRsZWNhc2UgYnJlYWsgaXRlcmF0b3IgY2FuIGJlIHByb3ZpZGVkIHRvIGN1
c3RvbWl6ZSBmb3IgYXJiaXRyYXJ5CisgKiBzdHlsZXMsIHVzaW5nIHJ1bGVzIGFuZCBkaWN0aW9u
YXJpZXMgYmV5b25kIHRoZSBzdGFuZGFyZCBpdGVyYXRvcnMuCisgKiBUaGUgc3RhbmRhcmQgdGl0
bGVjYXNlIGl0ZXJhdG9yIGZvciB0aGUgcm9vdCBsb2NhbGUgaW1wbGVtZW50cyB0aGUKKyAqIGFs
Z29yaXRobSBvZiBVbmljb2RlIFRSIDIxLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gdXNlcyBvbmx5
IHRoZSBzZXRVVGV4dCgpLCBmaXJzdCgpLCBuZXh0KCkgYW5kIGNsb3NlKCkgbWV0aG9kcyBvZiB0
aGUKKyAqIHByb3ZpZGVkIGJyZWFrIGl0ZXJhdG9yLgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJl
IGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJp
bmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBA
cGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LiBUaGlzIHBvaW50ZXIgaXMg
bm9uLWNvbnN0IQorICogICAgICAgICAgICAgICAgICBTZWUgdGhlIG5vdGUgYWJvdmUgZm9yIGRl
dGFpbHMuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmlu
Zy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAg
ICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUg
Y29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0
Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQg
aXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUg
ZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAg
ICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4K
KyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNM
ZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMg
bXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2
YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAg
IHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNh
bGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nl
c3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3
aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBA
c2VlIHVfc3RyVG9UaXRsZQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNBU0UKKyAqIEBz
ZWUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVAorICogQHN0YWJsZSBJQ1UgMy44Cisg
Ki8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4VG9UaXRsZShVQ2Fz
ZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RD
YXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNy
Y0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisK
KyNlbmRpZgorCisvKioKKyAqIENhc2UtZm9sZHMgdGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBz
dHJpbmcuCisgKgorICogQ2FzZS1mb2xkaW5nIGlzIGxvY2FsZS1pbmRlcGVuZGVudCBhbmQgbm90
IGNvbnRleHQtc2Vuc2l0aXZlLAorICogYnV0IHRoZXJlIGlzIGFuIG9wdGlvbiBmb3Igd2hldGhl
ciB0byBpbmNsdWRlIG9yIGV4Y2x1ZGUgbWFwcGluZ3MgZm9yIGRvdHRlZCBJCisgKiBhbmQgZG90
bGVzcyBpIHRoYXQgYXJlIG1hcmtlZCB3aXRoICdUJyBpbiBDYXNlRm9sZGluZy50eHQuCisgKgor
ICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwu
CisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5v
dCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmpl
Y3QuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4g
VGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAg
IHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29u
dGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2Fw
YWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMg
MCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVu
Y3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAg
ICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAq
IEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5n
dGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVz
dCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxp
ZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdo
aWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwu
CisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3Nm
dWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGlj
aCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2Vl
IHVfc3RyRm9sZENhc2UKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNlZSBVX0ZP
TERfQ0FTRV9ERUZBVUxUCisgKiBAc2VlIFVfRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JCisg
KiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNl
bWFwX3V0ZjhGb2xkQ2FzZShjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAg
ICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9pY3UvdW5pY29kZS91Y2hyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91
Y2hyaXRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkNWE5OTBmN2I3ZWQzZDViYWNmMmRhODQ3MWVmOGZmOTQy
MmY5OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVy
LmgKQEAgLTAsMCArMSwzODEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChD
KSAxOTk4LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3Jh
dGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyov
CisKKyNpZm5kZWYgVUNIUklURVJfSAorI2RlZmluZSBVQ0hSSVRFUl9ICisKKyNpbmNsdWRlICJ1
bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKworLyoqCisg
KiBcZmlsZSAKKyAqIFxicmllZiBDKysgQVBJOiBVQ2hhciBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAq
LworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBBIGNvbmNyZXRlIHN1YmNsYXNzIG9m
IENoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciB0aGUKKyAqIGNoYXJhY3RlcnMg
KGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMpIGluIGEgVUNoYXIgYXJyYXkuCisgKiBJdCdzIHBv
c3NpYmxlIG5vdCBvbmx5IHRvIGNyZWF0ZSBhbgorICogaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBv
dmVyIGFuIGVudGlyZSBVQ2hhciBhcnJheSwgYnV0IGFsc28gdG8KKyAqIGNyZWF0ZSBvbmUgdGhh
dCBpdGVyYXRlcyBvdmVyIG9ubHkgYSBzdWJyYW5nZSBvZiBhIFVDaGFyIGFycmF5CisgKiAoaXRl
cmF0b3JzIG92ZXIgZGlmZmVyZW50IHN1YnJhbmdlcyBvZiB0aGUgc2FtZSBVQ2hhciBhcnJheSBk
b24ndAorICogY29tcGFyZSBlcXVhbCkuCisgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yCisgKiBA
c2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2Ns
YXNzIFVfQ09NTU9OX0FQSSBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIDogcHVibGljIENoYXJhY3Rl
ckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVy
IHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVy
YXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5sZW5ndGgtMTwvY29kZT4uCisgICAqIHRleHQgaXMg
b25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisgICAqIGRlc3RydWN0b3Igd2lsbCBub3Qg
ZGVsZXRlIGl0KS4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0
ZXJhdGVkIG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBh
cnJheQorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0
b3IoY29uc3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoKTsKKworICAvKioKKyAgICog
Q3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0
ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmxlbmd0aC0x
PC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAg
ICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBUaGUgc3RhcnRpbmcKKyAg
ICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJwb3NpdGlvbiIuIElmICJwb3NpdGlvbiIgaXMg
b3V0c2lkZSB0aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2Yg
dGhpcyBvYmplY3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIg
YXJyYXkgdG8gYmUgaXRlcmF0ZCBvdmVyCisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBv
ZiB0aGUgVUNoYXIgYXJyYXkKKyAgICogQHBhcmFtIHBvc2l0aW9uIFRoZSBzdGFydGluZyBwb3Np
dGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNo
YXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5ndGgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisg
ICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0byBi
eSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5lbmQt
MTwvY29kZT4uCisgICAqIHRleHQgaXMgb25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisg
ICAqIGRlc3RydWN0b3Igd2lsbCBub3QgZGVsZXRlIGl0KS4KKyAgICogVGhlIHN0YXJ0aW5nCisg
ICAqIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAicG9zaXRpb24iLiBJZiBiZWdpbiBhbmQgZW5k
IGRvIG5vdAorICAgKiBmb3JtIGEgdmFsaWQgaXRlcmF0aW9uIHJhbmdlIG9yICJwb3NpdGlvbiIg
aXMgb3V0c2lkZSB0aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Ig
b2YgdGhpcyBvYmplY3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNo
YXIgYXJyYXkgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5n
dGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAqIEBwYXJhbSB0ZXh0QmVnaW4gIFRoZSBiZWdpbiBw
b3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0RW5kICAgIFRo
ZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0gcG9zaXRp
b24gICAgVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyKiB0
ZXh0UHRyLCBpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90
IHRleHRCZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRleHRFbmQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAq
IENvcHkgY29uc3RydWN0b3IuICBUaGUgbmV3IGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgdGhlIHNh
bWUgcmFuZ2UKKyAgICogb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIGl0cyBpbml0
aWFsIHBvc2l0aW9uIGlzIHRoZQorICAgKiBzYW1lIGFzICJ0aGF0IidzIGN1cnJlbnQgcG9zaXRp
b24uCisgICAqIEBwYXJhbSB0aGF0IFRoZSBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNv
cGllZAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0
b3IoY29uc3QgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYgIHRoYXQpOworCisgIC8qKgorICAgKiBE
ZXN0cnVjdG9yLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgflVDaGFy
Q2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogQXNzaWdubWVudCBvcGVyYXRvci4g
ICp0aGlzIGlzIGFsdGVyZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBzYW5lCisgICAqIHJhbmdlIG9m
IHRoZSBzYW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCByZWZlcnMgdG8gdGhlIHNhbWUKKyAgICog
Y2hhcmFjdGVyIHdpdGhpbiB0aGF0IHN0cmluZyBhcyAidGhhdCIgZG9lcy4KKyAgICogQHBhcmFt
IHRoYXQgVGhlIG9iamVjdCB0byBiZSBjb3BpZWQKKyAgICogQHJldHVybiB0aGUgbmV3bHkgY3Jl
YXRlZCBvYmplY3QKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rl
ckl0ZXJhdG9yJgorICBvcGVyYXRvcj0oY29uc3QgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYgICAg
dGhhdCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJh
dGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBw
b2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3
YXJkQ2hhcmFjdGVySXRlcmF0b3IgdXNlZCB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAg
ICogQHJldHVybiB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJh
bmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1l
IGNoYXJhY3Rlci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29s
ICAgICAgICAgIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0
KSBjb25zdDsKKworICAvKioKKyAgICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGlzIGl0
ZXJhdG9yLgorICAgKiBAcmV0dXJuIHRoZSBoYXNoIGNvZGUuCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgICAgaGFzaENvZGUodm9pZCkgY29uc3Q7
CisKKyAgLyoqCisgICAqIFJldHVybnMgYSBuZXcgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciByZWZl
cnJpbmcgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHJhbmdlIG9mIHRo
ZSBzYW1lIHN0cmluZyBhcyB0aGlzIG9uZS4gIFRoZQorICAgKiBjYWxsZXIgbXVzdCBkZWxldGUg
dGhlIG5ldyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0aGUgQ2hhcmFjdGVySXRlcmF0b3IgbmV3
bHkgY3JlYXRlZAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgQ2hhcmFj
dGVySXRlcmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBTZXRzIHRoZSBp
dGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAgKiBpdGVy
YXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBUaGlzIGNhbiBi
ZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQoKS4KKyAgICogQHJldHVybiB0
aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0KHZvaWQpOworCisg
IC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1
bml0IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHVuaXQs
IGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICogdG8gdGhlIHNlY29uZCBjb2RlIHVuaXQuIFRo
aXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAqIGZvciBmb3J3YXJkIGl0
ZXJhdGlvbiB3aXRoIG5leHRQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUg
dW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0UG9zdEluYyh2b2lkKTsKKworICAvKioKKyAg
ICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4g
aXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsCisg
ICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyKCku
CisgICAqIE5vdGUgdGhhdCBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0SW5jKCksIGJlZ2lu
bmluZyB3aXRoLAorICAgKiBlLmcuLCBzZXRUb1N0YXJ0KCkgb3IgZmlyc3RQb3N0SW5jKCksIGlz
IG1vcmUgZWZmaWNpZW50LgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0
cyBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFs
IFVDaGFyMzIgICAgICAgZmlyc3QzMih2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0ZXJh
dGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRp
b24KKyAgICogdG8gdGhlIHNlY29uZCBjb2RlIHBvaW50LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZl
IHRvIHNldFRvU3RhcnQoKQorICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0MzJQ
b3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJh
dGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFy
MzIgICAgICAgZmlyc3QzMlBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0
ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0
aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUg
dXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpLgorICAgKiBAcmV0dXJu
IHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBsYXN0KHZvaWQpOworCisg
IC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHBv
aW50IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1
bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIHBy
ZXZpb3VzMzIoKS4KKyAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVy
YXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hh
cjMyICAgICAgIGxhc3QzMih2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3Ig
dG8gcmVmZXIgdG8gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAqIGluIHRoZSB0ZXh0
LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgKiByZXR1cm5z
IHRoYXQgY29kZSB1bml0LgorICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIHdpdGhp
biB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQKKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgc2V0SW5k
ZXgoaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICogdGhhdCBjb250
YWlucyB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIHRleHQtc3RvcmFn
ZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAqIHJldHVybnMgdGhhdCBj
b2RlIHBvaW50LgorICAgKiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyBhZGp1c3RlZCB0byB0aGUg
YmVnaW5uaW5nIG9mIHRoZSBjb2RlIHBvaW50CisgICAqIChpdHMgZmlyc3QgY29kZSB1bml0KS4K
KyAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQtc3RvcmFn
ZSBvYmplY3QKKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0CisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHNldEluZGV4MzIoaW50MzJfdCBwb3Np
dGlvbik7CisKKyAgLyoqCisgICAqIFJldHVybnMgdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3Ig
Y3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0IHRoZSBpdGVy
YXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgVUNoYXIgICAgICAgICBjdXJyZW50KHZvaWQpIGNvbnN0OworCisgIC8qKgorICAg
KiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRv
LgorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVm
ZXJzIHRvLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAg
ICAgICBjdXJyZW50MzIodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRo
ZSBuZXh0IGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAgICogZW5k
SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlIG5vIG1v
cmUKKyAgICogY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVy
biB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dCh2b2lkKTsKKwor
ICAvKioKKyAgICogR2V0cyB0aGUgY3VycmVudCBjb2RlIHVuaXQgZm9yIHJldHVybmluZyBhbmQg
YWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0CisgICAqIGluIHRoZSBpdGVyYXRpb24gcmFu
Z2UKKyAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgKiBubyBtb3Jl
IGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIGN1
cnJlbnQgY29kZSB1bml0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwg
VUNoYXIgICAgICAgICBuZXh0UG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogQWR2YW5jZXMg
dG8gdGhlIG5leHQgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAg
ICogZW5kSW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFy
ZSBubyBtb3JlCisgICAqIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAg
KiBOb3RlIHRoYXQgaXRlcmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIHNlbWFudGljcyBpcyBs
ZXNzCisgICAqIGVmZmljaWVudCB0aGFuIGl0ZXJhdGlvbiB3aXRoICJwb3N0LWluY3JlbWVudCIg
c2VtYW50aWNzCisgICAqIHRoYXQgaXMgcHJvdmlkZWQgYnkgbmV4dDMyUG9zdEluYygpLgorICAg
KiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMy
KHZvaWQpOworCisgIC8qKgorICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgZm9yIHJl
dHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludAorICAgKiBpbiB0aGUg
aXRlcmF0aW9uIHJhbmdlCisgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUK
KyAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICog
QHJldHVybiB0aGUgY3VycmVudCBwb2ludC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyUG9zdEluYyh2b2lkKTsKKworICAvKioKKyAg
ICogUmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUg
cG9pbnRzCisgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVy
YXRpb24gcmFuZ2UuCisgICAqIFRoaXMgaXMgdXNlZCB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4
dDMyUG9zdEluYygpIGluIGZvcndhcmQKKyAgICogaXRlcmF0aW9uLgorICAgKiBAcmV0dXJuIEZB
TFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICog
YXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4K
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNO
ZXh0KCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQg
aW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIHN0YXJ0SW5kZXgoKSksIGFuZCBy
ZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSB1
bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgcHJldmlvdXMg
Y29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIHByZXZpb3VzKHZvaWQpOworCisgIC8qKgor
ICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9u
IHJhbmdlICh0b3dhcmQKKyAgICogc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2Rl
IHBvaW50LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSBwb2ludHMgdG8gcmV0dXJu
LCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgaW4g
dGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIFVDaGFyMzIgICAgICAgcHJldmlvdXMzMih2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJu
cyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisg
ICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgor
ICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIoKSBpbiBiYWNr
d2FyZAorICAgKiBpdGVyYXRpb24uCisgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5v
IG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQg
cG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNQcmV2aW91cygpOworCisgIC8qKgorICAg
KiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5k
IG9mIHRoZQorICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50
IHBvc2l0aW9uIGl0c2VsZi4KKyAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1i
ZXJzIG9mIGNvZGUgdW5pdHMgZm9yd2FyZAorICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5n
IGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9z
aXRpb24gcmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7
CisgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAqIEBwYXJhbSBvcmln
aW4gT3JpZ2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgKiBAcmV0
dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIGludDMyX3QgICAgICBtb3ZlKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKTsKKwor
ICAvKioKKyAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0
YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0
aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNz
ZWQgaW4gbnVtYmVycyBvZiBjb2RlIHBvaW50cyBmb3J3YXJkCisgICAqIG9yIGJhY2t3YXJkIGJ5
IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAgICogQHBhcmFtIGRl
bHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVh
bnMgZm9yd2FyZDsKKyAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICog
QHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9
CisgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUzMihpbnQzMl90IGRlbHRhLCBFT3JpZ2lu
IG9yaWdpbik7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3Zl
ciBhIG5ldyByYW5nZSBvZiB0ZXh0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdm9p
ZCBzZXRUZXh0KGNvbnN0IFVDaGFyKiBuZXdUZXh0LCBpbnQzMl90IG5ld1RleHRMZW5ndGgpOwor
CisgIC8qKgorICAgKiBDb3BpZXMgdGhlIFVDaGFyIGFycmF5IHVuZGVyIGl0ZXJhdGlvbiBpbnRv
IHRoZSBVbmljb2RlU3RyaW5nCisgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZlbiBp
ZiB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIGFjcm9zcworICAgKiBvbmx5IGEgcGFydCBvZiB0aGlz
IHN0cmluZywgdGhlIHdob2xlIHN0cmluZyBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSByZXN1bHQg
UmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNv
ZGVTdHJpbmcmIHJlc3VsdCk7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0
aGlzIGNsYXNzIChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZv
ciB0aGlzIGNsYXNzCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgc3RhdGljIFVDbGFz
c0lEICAgICAgICAgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQodm9pZCk7CisKKyAgLyoqCisg
ICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdCAobm90IHJlYWxseSBwdWJsaWMp
CisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2xhc3NJRCAgICAgICAgZ2V0RHluYW1pY0NsYXNz
SUQodm9pZCkgY29uc3Q7CisKK3Byb3RlY3RlZDoKKyAgLyoqCisgICAqIFByb3RlY3RlZCBjb25z
dHJ1Y3RvcgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRl
cmF0b3IoKTsKKyAgLyoqCisgICAqIFByb3RlY3RlZCBtZW1iZXIgdGV4dAorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIGNvbnN0IFVDaGFyKiAgICAgICAgICAgIHRleHQ7CisKK307CisK
K1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3VkYXRhLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VkYXRhLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjllNDY2MzBkNTM5OGQ4MjczOGQxZDYxZmZjNGQyYzkxNGU4YzY4YgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaApAQCAtMCwwICsxLDQzMCBAQAorLyoK
KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0LCBJ
bnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVy
cy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBm
aWxlIG5hbWU6ICB1ZGF0YS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6
ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjog
MTk5OW9jdDI1CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisKKyNpZm5k
ZWYgX19VREFUQV9IX18KKyNkZWZpbmUgX19VREFUQV9IX18KKworI2luY2x1ZGUgInVuaWNvZGUv
dXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS9sb2NhbHBvaW50ZXIuaCIKKworVV9DREVDTF9C
RUdJTgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IERhdGEgbG9hZGluZyBpbnRl
cmZhY2UKKyAqCisgKiA8aDI+SW5mb3JtYXRpb24gYWJvdXQgZGF0YSBsb2FkaW5nIGludGVyZmFj
ZTwvaDI+CisgKgorICogVGhpcyBBUEkgaXMgdXNlZCB0byBmaW5kIGFuZCBlZmZpY2llbnRseSBs
b2FkIGRhdGEgZm9yIElDVSBhbmQgYXBwbGljYXRpb25zCisgKiB1c2luZyBJQ1UuIEl0IHByb3Zp
ZGVzIGFuIGFic3RyYWN0IGludGVyZmFjZSB0aGF0IHNwZWNpZmllcyBhIGRhdGEgdHlwZSBhbmQK
KyAqIG5hbWUgdG8gZmluZCBhbmQgbG9hZCB0aGUgZGF0YS4gTm9ybWFsbHkgdGhpcyBBUEkgaXMg
dXNlZCBieSBvdGhlciBJQ1UgQVBJcworICogdG8gbG9hZCByZXF1aXJlZCBkYXRhIG91dCBvZiB0
aGUgSUNVIGRhdGEgbGlicmFyeSwgYnV0IGl0IGNhbiBiZSB1c2VkIHRvCisgKiBsb2FkIGRhdGEg
b3V0IG9mIG90aGVyIHBsYWNlcy4KKyAqCisgKiBTZWUgdGhlIFVzZXIgR3VpZGUgRGF0YSBNYW5h
Z2VtZW50IGNoYXB0ZXIuCisgKi8KKyAKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorLyoq
CisgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZyb20gdHJlZSBu
YW1lcyAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX1NFUEFSQVRP
UiAnLScKKworLyoqCisgKiBTdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZy
b20gdHJlZSBuYW1lcyAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVF
X1NFUEFSQVRPUl9TVFJJTkcgIi0iCisKKy8qKgorICogQ2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJh
dGUgcGFydHMgb2YgZW50cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZp
bmUgVV9UUkVFX0VOVFJZX1NFUF9DSEFSICcvJworCisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNl
cGFyYXRlIHBhcnRzIG9mIGVudHJ5IG5hbWVzCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisj
ZGVmaW5lIFVfVFJFRV9FTlRSWV9TRVBfU1RSSU5HICIvIgorCisvKioKKyAqIEFsaWFzIGZvciBz
dGFuZGFyZCBJQ1UgZGF0YSAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9J
Q1VEQVRBX0FMSUFTICJJQ1VEQVRBIgorCisjZW5kaWYgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAq
LworCisvKioKKyAqIFVEYXRhSW5mbyBjb250YWlucyB0aGUgcHJvcGVydGllcyBhYm91dCB0aGUg
cmVxdWVzdGVkIGRhdGEuCisgKiBUaGlzIGlzIG1ldGEgZGF0YS4KKyAqCisgKiA8cD5UaGlzIHN0
cnVjdHVyZSBtYXkgZ3JvdyBpbiB0aGUgZnV0dXJlLCBpbmRpY2F0ZWQgYnkgdGhlCisgKiA8Y29k
ZT5zaXplPC9jb2RlPiBmaWVsZC48L3A+CisgKgorICogPHA+SUNVIGRhdGEgbXVzdCBiZSBhdCBs
ZWFzdCA4LWFsaWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFRoZSBVRGF0YUlu
Zm8gc3RydWN0IGJlZ2lucyA0IGJ5dGVzIGFmdGVyIHRoZSBzdGFydCBvZiB0aGUgZGF0YSBpdGVt
LAorICogc28gaXQgaXMgNC1hbGlnbmVkLgorICoKKyAqIDxwPlRoZSBwbGF0Zm9ybSBkYXRhIHBy
b3BlcnR5IGZpZWxkcyBoZWxwIGRldGVybWluZSBpZiBhIGRhdGEKKyAqIGZpbGUgY2FuIGJlIGVm
ZmljaWVudGx5IHVzZWQgb24gYSBnaXZlbiBtYWNoaW5lLgorICogVGhlIHBhcnRpY3VsYXIgZmll
bGRzIGFyZSBvZiBpbXBvcnRhbmNlIG9ubHkgaWYgdGhlIGRhdGEKKyAqIGlzIGFmZmVjdGVkIGJ5
IHRoZSBwcm9wZXJ0aWVzIC0gaWYgdGhlcmUgaXMgaW50ZWdlciBkYXRhCisgKiB3aXRoIHdvcmQg
c2l6ZXMgPiAxIGJ5dGUsIGNoYXIqIHRleHQsIG9yIFVDaGFyKiB0ZXh0LjwvcD4KKyAqCisgKiA8
cD5UaGUgaW1wbGVtZW50YXRpb24gZm9yIHRoZSA8Y29kZT51ZGF0YV9vcGVuW0Nob2ljZV0oKTwv
Y29kZT4KKyAqIGZ1bmN0aW9ucyBtYXkgcmVqZWN0IGRhdGEgYmFzZWQgb24gdGhlIHZhbHVlIGlu
IDxjb2RlPmlzQmlnRW5kaWFuPC9jb2RlPi4KKyAqIE5vIG90aGVyIGZpZWxkIGlzIHVzZWQgYnkg
dGhlIDxjb2RlPnVkYXRhPC9jb2RlPiBBUEkgaW1wbGVtZW50YXRpb24uPC9wPgorICoKKyAqIDxw
PlRoZSA8Y29kZT5kYXRhRm9ybWF0PC9jb2RlPiBtYXkgYmUgdXNlZCB0byBpZGVudGlmeQorICog
dGhlIGtpbmQgb2YgZGF0YSwgZS5nLiBhIGNvbnZlcnRlciB0YWJsZS48L3A+CisgKgorICogPHA+
VGhlIDxjb2RlPmZvcm1hdFZlcnNpb248L2NvZGU+IGZpZWxkIHNob3VsZCBiZSB1c2VkIHRvCisg
KiBtYWtlIHN1cmUgdGhhdCB0aGUgZm9ybWF0IGNhbiBiZSBpbnRlcnByZXRlZC4KKyAqIEl0IG1h
eSBiZSBhIGdvb2QgaWRlYSB0byBjaGVjayBvbmx5IGZvciB0aGUgb25lIG9yIHR3byBoaWdoZXN0
CisgKiBvZiB0aGUgdmVyc2lvbiBlbGVtZW50cyB0byBhbGxvdyB0aGUgZGF0YSBtZW1vcnkgdG8K
KyAqIGdldCBtb3JlIG9yIHNvbWV3aGF0IHJlYXJyYW5nZWQgY29udGVudHMsIGZvciBhcyBsb25n
CisgKiBhcyB0aGUgdXNpbmcgY29kZSBjYW4gc3RpbGwgaW50ZXJwcmV0IHRoZSBvbGRlciBjb250
ZW50cy48L3A+CisgKgorICogPHA+VGhlIDxjb2RlPmRhdGFWZXJzaW9uPC9jb2RlPiBmaWVsZCBp
cyBpbnRlbmRlZCB0byBiZSBhCisgKiBjb21tb24gcGxhY2UgdG8gc3RvcmUgdGhlIHNvdXJjZSB2
ZXJzaW9uIG9mIHRoZSBkYXRhOworICogZm9yIGRhdGEgZnJvbSB0aGUgVW5pY29kZSBjaGFyYWN0
ZXIgZGF0YWJhc2UsIHRoaXMgY291bGQKKyAqIHJlZmxlY3QgdGhlIFVuaWNvZGUgdmVyc2lvbi48
L3A+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICAv
Kiogc2l6ZW9mKFVEYXRhSW5mbykKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWlu
dDE2X3Qgc2l6ZTsKKworICAgIC8qKiB1bnVzZWQsIHNldCB0byAwIAorICAgICAqICBAc3RhYmxl
IElDVSAyLjAqLworICAgIHVpbnQxNl90IHJlc2VydmVkV29yZDsKKworICAgIC8qIHBsYXRmb3Jt
IGRhdGEgcHJvcGVydGllcyAqLworICAgIC8qKiAwIGZvciBsaXR0bGUtZW5kaWFuIG1hY2hpbmUs
IDEgZm9yIGJpZy1lbmRpYW4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWludDhf
dCBpc0JpZ0VuZGlhbjsKKworICAgIC8qKiBzZWUgVV9DSEFSU0VUX0ZBTUlMWSB2YWx1ZXMgaW4g
dXR5cGVzLmggCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBjaGFyc2V0
RmFtaWx5OworCisgICAgLyoqIHNpemVvZihVQ2hhciksIG9uZSBvZiB7IDEsIDIsIDQgfSAKKyAg
ICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHNpemVvZlVDaGFyOworCisgICAg
LyoqIHVudXNlZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWlu
dDhfdCByZXNlcnZlZEJ5dGU7CisKKyAgICAvKiogZGF0YSBmb3JtYXQgaWRlbnRpZmllciAKKyAg
ICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGRhdGFGb3JtYXRbNF07CisKKyAg
ICAvKiogdmVyc2lvbnM6IFswXSBtYWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBtaWNybyAK
KyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGZvcm1hdFZlcnNpb25bNF07
CisKKyAgICAvKiogdmVyc2lvbnM6IFswXSBtYWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBt
aWNybyAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGRhdGFWZXJzaW9u
WzRdOworfSBVRGF0YUluZm87CisKKy8qIEFQSSBmb3IgcmVhZGluZyBkYXRhIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBG
b3J3YXJkIGRlY2xhcmF0aW9uIG9mIHRoZSBkYXRhIG1lbW9yeSB0eXBlLgorICogQHN0YWJsZSBJ
Q1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IFVEYXRhTWVtb3J5IFVEYXRhTWVtb3J5OworCisv
KioKKyAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB1ZGF0YV9vcGVuQ2hvaWNlKCkuCisgKiBAcGFy
YW0gY29udGV4dCBwYXJhbWV0ZXIgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgp
PC9jb2RlPi4KKyAqIEBwYXJhbSB0eXBlIFRoZSB0eXBlIG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBp
bnRvIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiAgICAgICAgICAgICBJdCBt
YXkgYmUgPGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUg
ZGF0YSBhcyBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICog
QHBhcmFtIHBJbmZvIEEgcG9pbnRlciB0byB0aGUgPGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1
Y3R1cmUKKyAqICAgICAgICAgICAgICBvZiBkYXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVkIGFuZCB3
aWxsIGJlIHJldHVybmVkCisgKiAgICAgICAgICAgICAgYnkgPGNvZGU+dWRhdGFfb3BlbkNob2lj
ZSgpPC9jb2RlPiBpZiB0aGlzIGZ1bmN0aW9uCisgKiAgICAgICAgICAgICAgcmV0dXJucyA8Y29k
ZT5UUlVFPC9jb2RlPi4KKyAqIEByZXR1cm4gVFJVRSBpZiB0aGUgY3VycmVudCBkYXRhIG1lbW9y
eSBpcyBhY2NlcHRhYmxlCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBVQm9vbCBV
X0NBTExDT05WCitVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSh2b2lkICpjb250ZXh0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVEYXRhSW5mbyAqcEluZm8pOworCisKKy8qKgor
ICogQ29udmVuaWVuY2UgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIHdvcmtzIHRoZSBzYW1l
IGFzIDxjb2RlPnVkYXRhX29wZW5DaG9pY2U8L2NvZGU+CisgKiBleGNlcHQgdGhhdCBhbnkgZGF0
YSB0aGF0IG1hdGNoZXMgdGhlIHR5cGUgYW5kIG5hbWUKKyAqIGlzIGFzc3VtZWQgdG8gYmUgYWNj
ZXB0YWJsZS4KKyAqIEBwYXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0ZSBwYXRoIGFuZC9v
ciBhIGJhc2VuYW1lIGZvciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcgb2YgdGhlIGRhdGEg
aW4gdGhlIGZpbGUgc3lzdGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVMTDwvY29kZT4gZm9y
IElDVSBkYXRhLgorICogQHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHR5
cGUgb2YgZGF0YSB0byBiZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVz
b3VyY2UgYnVuZGxlcyBhcmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAqICAgICAgICAgICAg
IGNvbnZlcnNpb24gdGFibGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAgICAgICAgIFRoaXMg
bWF5IGJlIDxjb2RlPk5VTEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFtIG5hbWUgQSBzdHJp
bmcgdGhhdCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBAcGFyYW0gcEVycm9y
Q29kZSBBbiBJQ1UgVUVycm9yQ29kZSBwYXJhbWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5V
TEw8L2NvZGU+LgorICogQHJldHVybiBBIHBvaW50ZXIgKGhhbmRsZSkgdG8gYSBkYXRhIG1lbW9y
eSBvYmplY3QsIG9yIDxjb2RlPk5VTEw8L2NvZGU+CisgKiAgICAgICAgIGlmIGFuIGVycm9yIG9j
Y3Vycy4gQ2FsbCA8Y29kZT51ZGF0YV9nZXRNZW1vcnkoKTwvY29kZT4KKyAqICAgICAgICAgdG8g
Z2V0IGEgcG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEuCisgKgorICogQHNlZSB1ZGF0YV9vcGVu
Q2hvaWNlCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgVURhdGFNZW1vcnkgKiBV
X0VYUE9SVDIKK3VkYXRhX29wZW4oY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqdHlwZSwg
Y29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisK
Ky8qKgorICogRGF0YSBsb2FkaW5nIGZ1bmN0aW9uLgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2Vk
IHRvIGZpbmQgYW5kIGxvYWQgZWZmaWNpZW50bHkgZGF0YSBmb3IKKyAqIElDVSBhbmQgYXBwbGlj
YXRpb25zIHVzaW5nIElDVS4KKyAqIEl0IHByb3ZpZGVzIGFuIGFic3RyYWN0IGludGVyZmFjZSB0
aGF0IGFsbG93cyB0byBzcGVjaWZ5IGEgZGF0YQorICogdHlwZSBhbmQgbmFtZSB0byBmaW5kIGFu
ZCBsb2FkIHRoZSBkYXRhLgorICoKKyAqIDxwPlRoZSBpbXBsZW1lbnRhdGlvbiBkZXBlbmRzIG9u
IHBsYXRmb3JtIHByb3BlcnRpZXMgYW5kIHVzZXIgcHJlZmVyZW5jZXMKKyAqIGFuZCBtYXkgaW52
b2x2ZSBsb2FkaW5nIHNoYXJlZCBsaWJyYXJpZXMgKERMTHMpLCBtYXBwaW5nCisgKiBmaWxlcyBp
bnRvIG1lbW9yeSwgb3IgZm9wZW4oKS9mcmVhZCgpIGZpbGVzLgorICogSXQgbWF5IGFsc28gaW52
b2x2ZSB1c2luZyBzdGF0aWMgbWVtb3J5IG9yIGRhdGFiYXNlIHF1ZXJpZXMgZXRjLgorICogU2V2
ZXJhbCBvciBhbGwgZGF0YSBpdGVtcyBtYXkgYmUgY29tYmluZWQgaW50byBvbmUgZW50aXR5Cisg
KiAoRExMLCBtZW1vcnktbWFwcGFibGUgZmlsZSkuPC9wPgorICoKKyAqIDxwPlRoZSBkYXRhIGlz
IGFsd2F5cyBwcmVjZWRlZCBieSBhIGhlYWRlciB0aGF0IGluY2x1ZGVzCisgKiBhIDxjb2RlPlVE
YXRhSW5mbzwvY29kZT4gc3RydWN0dXJlLgorICogVGhlIGNhbGxlcidzIDxjb2RlPmlzQWNjZXB0
YWJsZSgpPC9jb2RlPiBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gbWFrZQorICogc3VyZSB0aGF0IHRo
ZSBkYXRhIGlzIHVzZWZ1bC4gSXQgbWF5IGJlIGNhbGxlZCBzZXZlcmFsIHRpbWVzIGlmIGl0Cisg
KiByZWplY3RzIHRoZSBkYXRhIGFuZCB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGxvY2F0aW9uIHdp
dGggZGF0YQorICogbWF0Y2hpbmcgdGhlIHR5cGUgYW5kIG5hbWUuPC9wPgorICoKKyAqIDxwPklm
IDxjb2RlPnBhdGg9PU5VTEw8L2NvZGU+LCB0aGVuIElDVSBkYXRhIGlzIGxvYWRlZC4KKyAqIE90
aGVyd2lzZSwgaXQgaXMgc2VwYXJhdGVkIGludG8gYSBiYXNlbmFtZSBhbmQgYSBiYXNlbmFtZS1s
ZXNzIGRpcmVjdG9yeSBzdHJpbmcuCisgKiBUaGUgYmFzZW5hbWUgaXMgdXNlZCBhcyB0aGUgZGF0
YSBwYWNrYWdlIG5hbWUsIGFuZCB0aGUgZGlyZWN0b3J5IGlzCisgKiBsb2dpY2FsbHkgcHJlcGVu
ZGVkIHRvIHRoZSBJQ1UgZGF0YSBkaXJlY3Rvcnkgc3RyaW5nLjwvcD4KKyAqCisgKiA8cD5Gb3Ig
ZGV0YWlscyBhYm91dCBJQ1UgZGF0YSBsb2FkaW5nIHNlZSB0aGUgVXNlciBHdWlkZQorICogRGF0
YSBNYW5hZ2VtZW50IGNoYXB0ZXIuIChodHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9p
Y3VkYXRhLmh0bWwpPC9wPgorICoKKyAqIEBwYXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0
ZSBwYXRoIGFuZC9vciBhIGJhc2VuYW1lIGZvciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcg
b2YgdGhlIGRhdGEgaW4gdGhlIGZpbGUgc3lzdGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVM
TDwvY29kZT4gZm9yIElDVSBkYXRhLgorICogQHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVj
aWZpZXMgdGhlIHR5cGUgb2YgZGF0YSB0byBiZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3Ig
ZXhhbXBsZSwgcmVzb3VyY2UgYnVuZGxlcyBhcmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAq
ICAgICAgICAgICAgIGNvbnZlcnNpb24gdGFibGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAg
ICAgICAgIFRoaXMgbWF5IGJlIDxjb2RlPk5VTEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFt
IG5hbWUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBA
cGFyYW0gaXNBY2NlcHRhYmxlIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIHZlcmlmeSB0aGF0
IGxvYWRlZCBkYXRhCisgKiAgICAgICAgICAgICAgICAgICAgIGlzIHVzZWZ1bCBmb3IgdGhlIGNs
aWVudCBjb2RlLiBJZiBpdCByZXR1cm5zIEZBTFNFCisgKiAgICAgICAgICAgICAgICAgICAgIGZv
ciBhbGwgZGF0YSBpdGVtcywgdGhlbiA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+Cisg
KiAgICAgICAgICAgICAgICAgICAgIHdpbGwgcmV0dXJuIHdpdGggYW4gZXJyb3IuCisgKiBAcGFy
YW0gY29udGV4dCBBcmJpdHJhcnkgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCBpbnRvIGlzQWNjZXB0
YWJsZS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIEFuIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4g
SXQgbXVzdCBub3QgYmUgPGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAo
aGFuZGxlKSB0byBhIGRhdGEgbWVtb3J5IG9iamVjdCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAq
ICAgICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzLiBDYWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgp
PC9jb2RlPgorICogICAgICAgICB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4K
KyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JU
MgordWRhdGFfb3BlbkNob2ljZShjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBj
b25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICBVRGF0YU1lbW9yeUlzQWNjZXB0YWJs
ZSAqaXNBY2NlcHRhYmxlLCB2b2lkICpjb250ZXh0LAorICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBDbG9zZSB0aGUgZGF0YSBtZW1vcnkuCisgKiBU
aGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHRvIGFsbG93IHRoZSBzeXN0ZW0gdG8KKyAqIHJl
bGVhc2UgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRhdGEgbWVtb3J5LgorICogQHBh
cmFtIHBEYXRhIFRoZSBwb2ludGVyIHRvIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHN0YWJsZSBJ
Q1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9jbG9zZShVRGF0YU1l
bW9yeSAqcERhdGEpOworCisjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0Vf
QkVHSU4KKworLyoqCisgKiBcY2xhc3MgTG9jYWxVRGF0YU1lbW9yeVBvaW50ZXIKKyAqICJTbWFy
dCBwb2ludGVyIiBjbGFzcywgY2xvc2VzIGEgVURhdGFNZW1vcnkgdmlhIHVkYXRhX2Nsb3NlKCku
CisgKiBGb3IgbW9zdCBtZXRob2RzIHNlZSB0aGUgTG9jYWxQb2ludGVyQmFzZSBiYXNlIGNsYXNz
LgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVyQmFzZQorICogQHNlZSBMb2NhbFBvaW50ZXIKKyAq
IEBzdGFibGUgSUNVIDQuNAorICovCitVX0RFRklORV9MT0NBTF9PUEVOX1BPSU5URVIoTG9jYWxV
RGF0YU1lbW9yeVBvaW50ZXIsIFVEYXRhTWVtb3J5LCB1ZGF0YV9jbG9zZSk7CisKK1VfTkFNRVNQ
QUNFX0VORAorCisjZW5kaWYKKworLyoqCisgKiBHZXQgdGhlIHBvaW50ZXIgdG8gdGhlIGFjdHVh
bCBkYXRhIGluc2lkZSB0aGUgZGF0YSBtZW1vcnkuCisgKiBUaGUgZGF0YSBpcyByZWFkLW9ubHku
CisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQsIGFuZCBzaG91bGQg
YmUgMTYtYWxpZ25lZC4KKyAqCisgKiBAcGFyYW0gcERhdGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBt
ZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgY29uc3Qgdm9p
ZCAqIFVfRVhQT1JUMgordWRhdGFfZ2V0TWVtb3J5KFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKy8q
KgorICogR2V0IHRoZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkYXRhIG1lbW9yeSBoZWFkZXIuCisg
KiBUaGlzIGFsbG93cyB0byBnZXQgYWNjZXNzIHRvIHRoZSBoZWFkZXIgY29udGFpbmluZworICog
cGxhdGZvcm0gZGF0YSBwcm9wZXJ0aWVzIGV0Yy4gd2hpY2ggaXMgbm90IHBhcnQgb2YKKyAqIHRo
ZSBkYXRhIGl0c2VsZiBhbmQgY2FuIHRoZXJlZm9yZSBub3QgYmUgYWNjZXNzZWQKKyAqIHZpYSB0
aGUgcG9pbnRlciB0aGF0IDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPiByZXR1cm5zLgor
ICoKKyAqIEBwYXJhbSBwRGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QKKyAq
IEBwYXJhbSBwSW5mbyBwb2ludGVyIHRvIGEgVURhdGFJbmZvIG9iamVjdDsKKyAqICAgICAgICAg
ICAgICBpdHMgPGNvZGU+c2l6ZTwvY29kZT4gZmllbGQgbXVzdCBiZSBzZXQgY29ycmVjdGx5LAor
ICogICAgICAgICAgICAgIHR5cGljYWxseSB0byA8Y29kZT5zaXplb2YoVURhdGFJbmZvKTwvY29k
ZT4uCisgKgorICogPGNvZGU+KnBJbmZvPC9jb2RlPiB3aWxsIGJlIGZpbGxlZCB3aXRoIHRoZSBV
RGF0YUluZm8gc3RydWN0dXJlCisgKiBpbiB0aGUgZGF0YSBtZW1vcnkgb2JqZWN0LiBJZiB0aGlz
IHN0cnVjdHVyZSBpcyBzbWFsbGVyIHRoYW4KKyAqIDxjb2RlPnBJbmZvLT5zaXplPC9jb2RlPiwg
dGhlbiB0aGUgPGNvZGU+c2l6ZTwvY29kZT4gd2lsbCBiZQorICogYWRqdXN0ZWQgYW5kIG9ubHkg
cGFydCBvZiB0aGUgc3RydWN0dXJlIHdpbGwgYmUgZmlsbGVkLgorICogQHN0YWJsZSBJQ1UgMi4w
CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9nZXRJbmZvKFVEYXRhTWVtb3J5
ICpwRGF0YSwgVURhdGFJbmZvICpwSW5mbyk7CisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBh
c3NlcyB0aGUgbm9ybWFsIElDVSBkYXRhIGxvYWRpbmcgcHJvY2VzcyBhbmQKKyAqIGFsbG93cyB5
b3UgdG8gZm9yY2UgSUNVJ3Mgc3lzdGVtIGRhdGEgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNp
ZmllZAorICogYXJlYSBpbiBtZW1vcnkuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFz
dCA4LWFsaWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNl
cmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9pY3VkYXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlz
IGRhdGEgaXMgdGhhdCBvZiB0aGUgaWN1IGNvbW1vbiBkYXRhIGZpbGUsIGFzIGlzCisgKiBnZW5l
cmF0ZWQgYnkgdGhlIHBrZ2RhdGEgdG9vbCB3aXRoIG1vZGU9Y29tbW9uIG9yIG1vZGU9ZGxsLgor
ICogWW91IGNhbiByZWFkIGluIGEgd2hvbGUgY29tbW9uIG1vZGUgZmlsZSBhbmQgcGFzcyB0aGUg
YWRkcmVzcyB0byB0aGUgc3RhcnQgb2YgdGhlCisgKiBkYXRhLCBvciAod2l0aCB0aGUgYXBwcm9w
cmlhdGUgbGluayBvcHRpb25zKSBwYXNzIGluIHRoZSBwb2ludGVyIHRvCisgKiB0aGUgZGF0YSB0
aGF0IGhhcyBiZWVuIGxvYWRlZCBmcm9tIGEgZGxsIGJ5IHRoZSBvcGVyYXRpbmcgc3lzdGVtLAor
ICogYXMgc2hvd24gaW4gdGhpcyBjb2RlOgorICoKKyAqICAgICAgIGV4dGVybiBjb25zdCBjaGFy
IFVfSU1QT1JUIFVfSUNVREFUQV9FTlRSWV9QT0lOVCBbXTsKKyAqICAgICAgICAvLyBVX0lDVURB
VEFfRU5UUllfUE9JTlQgaXMgc2FtZSBhcyBlbnRyeSBwb2ludCBzcGVjaWZpZWQgdG8gcGtnZGF0
YSB0b29sCisgKiAgICAgICBVRXJyb3JDb2RlICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgKgor
ICogICAgICAgdWRhdGFfc2V0Q29tbW9uRGF0YSgmVV9JQ1VEQVRBX0VOVFJZX1BPSU5ULCAmc3Rh
dHVzKTsKKyAqCisgKiBJdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgZGVjbGFyYXRpb24gYmUgYXMg
YWJvdmUuIFRoZSBlbnRyeSBwb2ludAorICogbXVzdCBub3QgYmUgZGVjbGFyZWQgYXMgYW4gZXh0
ZXJuIHZvaWQqLgorICoKKyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQuNCwgaXQgaXMgcG9zc2libGUg
dG8gc2V0IHNldmVyYWwgZGF0YSBwYWNrYWdlcywKKyAqIG9uZSBwZXIgY2FsbCB0byB0aGlzIGZ1
bmN0aW9uLgorICogdWRhdGFfb3BlbigpIHdpbGwgbG9vayBmb3IgZGF0YSBpbiB0aGUgbXVsdGlw
bGUgZGF0YSBwYWNrYWdlcyBpbiB0aGUgb3JkZXIKKyAqIGluIHdoaWNoIHRoZXkgd2VyZSBzZXQu
CisgKiBUaGUgcG9zaXRpb24gb2YgdGhlIGxpbmtlZC1pbiBvciBkZWZhdWx0LW5hbWUgSUNVIC5k
YXRhIHBhY2thZ2UgaW4gdGhlCisgKiBzZWFyY2ggbGlzdCBkZXBlbmRzIG9uIHdoZW4gdGhlIGZp
cnN0IGRhdGEgaXRlbSBpcyBsb2FkZWQgdGhhdCBpcyBub3QgY29udGFpbmVkCisgKiBpbiB0aGUg
YWxyZWFkeSBleHBsaWNpdGx5IHNldCBwYWNrYWdlcy4KKyAqIElmIGRhdGEgd2FzIGxvYWRlZCBp
bXBsaWNpdGx5IGJlZm9yZSB0aGUgZmlyc3QgY2FsbCB0byB0aGlzIGZ1bmN0aW9uCisgKiAoZm9y
IGV4YW1wbGUsIHZpYSBvcGVuaW5nIGEgY29udmVydGVyLCBjb25zdHJ1Y3RpbmcgYSBVbmljb2Rl
U3RyaW5nCisgKiBmcm9tIGRlZmF1bHQtY29kZXBhZ2UgZGF0YSwgdXNpbmcgZm9ybWF0dGluZyBv
ciBjb2xsYXRpb24gQVBJcywgZXRjLiksCisgKiB0aGVuIHRoZSBkZWZhdWx0IGRhdGEgd2lsbCBi
ZSBmaXJzdCBpbiB0aGUgbGlzdC4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGhhcyBubyBlZmZlY3Qg
b24gYXBwbGljYXRpb24gKG5vbiBJQ1UpIGRhdGEuICBTZWUgdWRhdGFfc2V0QXBwRGF0YSgpCisg
KiBmb3Igc2ltaWxhciBmdW5jdGlvbmFsaXR5IGZvciBhcHBsaWNhdGlvbiBkYXRhLgorICoKKyAq
IEBwYXJhbSBkYXRhIHBvaW50ZXIgdG8gSUNVIGNvbW1vbiBkYXRhCisgKiBAcGFyYW0gZXJyIG91
dGdvaW5nIGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9VTlNV
UFBPUlRFRF9FUlJPUjwvY29kZT4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2
b2lkIFVfRVhQT1JUMgordWRhdGFfc2V0Q29tbW9uRGF0YShjb25zdCB2b2lkICpkYXRhLCBVRXJy
b3JDb2RlICplcnIpOworCisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgbm9y
bWFsIElDVSBkYXRhIGxvYWRpbmcgcHJvY2VzcyBmb3IgYXBwbGljYXRpb24tc3BlY2lmaWMKKyAq
IGRhdGEgYW5kIGFsbG93cyB5b3UgdG8gZm9yY2UgdGhlIGl0IHRvIGNvbWUgb3V0IG9mIGEgdXNl
ci1zcGVjaWZpZWQKKyAqIHBvaW50ZXIuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFz
dCA4LWFsaWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNl
cmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9pY3VkYXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlz
IGRhdGEgaXMgdGhhdCBvZiB0aGUgaWN1IGNvbW1vbiBkYXRhIGZpbGUsIGxpa2UgJ2ljdWR0MjZs
LmRhdCcKKyAqIG9yIHRoZSBjb3JyZXNwb25kaW5nIHNoYXJlZCBsaWJyYXJ5IChETEwpIGZpbGUu
CisgKiBUaGUgYXBwbGljYXRpb24gbXVzdCByZWFkIGluIG9yIG90aGVyd2lzZSBjb25zdHJ1Y3Qg
YW4gaW1hZ2Ugb2YgdGhlIGRhdGEgYW5kIHRoZW4KKyAqIHBhc3MgdGhlIGFkZHJlc3Mgb2YgaXQg
dG8gdGhpcyBmdW5jdGlvbi4KKyAqCisgKgorICogV2FybmluZzogIHNldEFwcERhdGEgd2lsbCBz
ZXQgYSBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBjb2RlIGlmCisgKiAgICAgICAgICAgZGF0YSB3
aXRoIHRoZSBzcGVjaWZlZCBwYXRoIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBvcGVuZWQsIG9yCisg
KiAgICAgICAgICAgaWYgc2V0QXBwRGF0YSB3aXRoIHRoZSBzYW1lIHBhdGggaGFzIGFscmVhZHkg
YmVlbiBjYWxsZWQuCisgKiAgICAgICAgICAgQW55IHN1Y2ggY2FsbHMgdG8gc2V0QXBwRGF0YSB3
aWxsIGhhdmUgbm8gZWZmZWN0LgorICoKKyAqCisgKiBAcGFyYW0gcGFja2FnZU5hbWUgdGhlIHBh
Y2thZ2UgbmFtZSBieSB3aGljaCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWZlcgorICogICAgICAg
ICAgICAgdG8gKG9wZW4pIHRoaXMgZGF0YQorICogQHBhcmFtIGRhdGEgcG9pbnRlciB0byB0aGUg
ZGF0YQorICogQHBhcmFtIGVyciBvdXRnb2luZyBlcnJvciBzdGF0dXMgPGNvZGU+VV9VU0lOR19E
RUZBVUxUX1dBUk5JTkcsIFVfVU5TVVBQT1JURURfRVJST1I8L2NvZGU+CisgKiBAc2VlIHVkYXRh
X3NldENvbW1vbkRhdGEKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVf
RVhQT1JUMgordWRhdGFfc2V0QXBwRGF0YShjb25zdCBjaGFyICpwYWNrYWdlTmFtZSwgY29uc3Qg
dm9pZCAqZGF0YSwgVUVycm9yQ29kZSAqZXJyKTsKKworLyoqCisgKiBQb3NzaWJsZSBzZXR0aW5n
cyBmb3IgdWRhdGFfc2V0RmlsZUFjY2VzcygpCisgKiBAc2VlIHVkYXRhX3NldEZpbGVBY2Nlc3MK
KyAqIEBzdGFibGUgSUNVIDMuNAorICovCit0eXBlZGVmIGVudW0gVURhdGFGaWxlQWNjZXNzIHsK
KyAgICAvKiogSUNVIGxvb2tzIGZvciBkYXRhIGluIHNpbmdsZSBmaWxlcyBmaXJzdCwgdGhlbiBp
biBwYWNrYWdlcy4gKGRlZmF1bHQpIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX0ZJTEVT
X0ZJUlNULAorICAgIC8qKiBBbiBhbGlhcyBmb3IgdGhlIGRlZmF1bHQgYWNjZXNzIG1vZGUuIEBz
dGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX0RFRkFVTFRfQUNDRVNTID0gVURBVEFfRklMRVNf
RklSU1QsCisgICAgLyoqIElDVSBvbmx5IGxvYWRzIGRhdGEgZnJvbSBwYWNrYWdlcywgbm90IGZy
b20gc2luZ2xlIGZpbGVzLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9PTkxZX1BBQ0tB
R0VTLAorICAgIC8qKiBJQ1UgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzIGZpcnN0LCBhbmQgb25s
eSBmcm9tIHNpbmdsZSBmaWxlcworICAgICAgICBpZiB0aGUgZGF0YSBjYW5ub3QgYmUgZm91bmQg
aW4gYSBwYWNrYWdlLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9QQUNLQUdFU19GSVJT
VCwKKyAgICAvKiogSUNVIGRvZXMgbm90IGFjY2VzcyB0aGUgZmlsZSBzeXN0ZW0gZm9yIGRhdGEg
bG9hZGluZy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfTk9fRklMRVMsCisgICAgLyoq
IE51bWJlciBvZiByZWFsIFVEYXRhRmlsZUFjY2VzcyB2YWx1ZXMuIEBzdGFibGUgSUNVIDMuNCAq
LworICAgIFVEQVRBX0ZJTEVfQUNDRVNTX0NPVU5UCit9IFVEYXRhRmlsZUFjY2VzczsKKworLyoq
CisgKiBUaGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgdG8gY29udHJvbCBob3cgSUNVIGxvYWRz
IGRhdGEuIEl0IG11c3QgYmUgY2FsbGVkCisgKiBiZWZvcmUgYW55IElDVSBkYXRhIGlzIGxvYWRl
ZCwgaW5jbHVkaW5nIGFwcGxpY2F0aW9uIGRhdGEgbG9hZGVkIHdpdGggCisgKiB1cmVzL1Jlc291
cmNlQnVuZGxlIG9yIHVkYXRhIEFQSXMuIFRoaXMgZnVuY3Rpb24gaXMgbm90IG11bHRpdGhyZWFk
IHNhZmUuICAKKyAqIFRoZSByZXN1bHRzIG9mIGNhbGxpbmcgaXQgd2hpbGUgb3RoZXIgdGhyZWFk
cyBhcmUgbG9hZGluZyBkYXRhIGFyZSB1bmRlZmluZWQuCisgKiBAcGFyYW0gYWNjZXNzIFRoZSB0
eXBlIG9mIGZpbGUgYWNjZXNzIHRvIGJlIHVzZWQKKyAqIEBwYXJhbSBzdGF0dXMgRXJyb3IgY29k
ZS4KKyAqIEBzZWUgVURhdGFGaWxlQWNjZXNzCisgKiBAc3RhYmxlIElDVSAzLjQgCisgKi8KK1Vf
U1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEYXRhRmlsZUFjY2Vz
cyBhY2Nlc3MsIFVFcnJvckNvZGUgKnN0YXR1cyk7CisKK1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91bWlzYy5oIGIvU291cmNlL1dURi9p
Y3UvdW5pY29kZS91bWlzYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4NTQ1MWZjNzY3YzA1ODM1ZjZjMTVmNTY2
ZjM1NjJlMmQ0YWY4MzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3VtaXNjLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmln
aHQgKEMpIDE5OTktMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENv
cnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorKiAgIGZpbGUgbmFtZTogIHVtaXNjLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAg
IHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVh
dGVkIG9uOiAxOTk5b2N0MTUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8K
KworI2lmbmRlZiBVTUlTQ19ICisjZGVmaW5lIFVNSVNDX0gKKworI2luY2x1ZGUgInVuaWNvZGUv
dXR5cGVzLmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiAgQyBBUEk6bWlzYyBkZWZpbml0
aW9ucyAKKyAqCisgKiAgVGhpcyBmaWxlIGNvbnRhaW5zIG1pc2NlbGxhbmVvdXMgZGVmaW5pdGlv
bnMgZm9yIHRoZSBDIEFQSXMuIAorICovCisKK1VfQ0RFQ0xfQkVHSU4KKworLyoqIEEgc3RydWN0
IHJlcHJlc2VudGluZyBhIHJhbmdlIG9mIHRleHQgY29udGFpbmluZyBhIHNwZWNpZmljIGZpZWxk
IAorICogIEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIHN0cnVjdCBVRmllbGRQb3NpdGlv
biB7CisgIC8qKgorICAgKiBUaGUgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgaW50MzJfdCBmaWVsZDsKKyAgLyoqCisgICAqIFRoZSBzdGFydCBvZiB0aGUgdGV4dCByYW5n
ZSBjb250YWluaW5nIGZpZWxkIAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMy
X3QgYmVnaW5JbmRleDsKKyAgLyoqIAorICAgKiBUaGUgbGltaXQgb2YgdGhlIHRleHQgcmFuZ2Ug
Y29udGFpbmluZyBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90
IGVuZEluZGV4OworfSBVRmllbGRQb3NpdGlvbjsKKworI2lmICFVQ09ORklHX05PX1NFUlZJQ0UK
Ky8qKgorICogT3BhcXVlIHR5cGUgcmV0dXJuZWQgYnkgcmVnaXN0ZXJJbnN0YW5jZSwgcmVnaXN0
ZXJGYWN0b3J5IGFuZCB1bnJlZ2lzdGVyIGZvciBzZXJ2aWNlIHJlZ2lzdHJhdGlvbi4KKyAqIEBz
dGFibGUgSUNVIDIuNgorICovCit0eXBlZGVmIGNvbnN0IHZvaWQqIFVSZWdpc3RyeUtleTsKKyNl
bmRpZgorCitVX0NERUNMX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggZTM0
ZDM3ZjkzNmVjZjNiODI3MTAyMzAwMTcxN2Q5OGQ3YzM3M2Y0OC4uYWQ0YWNlY2I3ZGRkZGE4N2Jm
MDI3ZDlkYWExYmEzY2M3YjAxNjEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTI5NCw2ICsy
OTQsNDIgQEAgaWYgKE5PVCBVU0VfU1lTVEVNX01BTExPQykKICAgICBsaXN0KEFQUEVORCBXVEZf
TElCUkFSSUVTIGJtYWxsb2MpCiBlbmRpZiAoKQogCitzZXQoV1RGX0JSRUFLSU5HX1JVTEVTX1NP
VVJDRVMKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50
eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pL
LnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VO
b25DSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b25DSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxOb25DSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3RDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CispCisKK21hY3JvKEdFTkVSQVRFX0JSRUFLSU5H
X1JVTEVTIF9pbnB1dCBfc3ltYm9sTmFtZSBfb3V0cHV0KQorICAgIGFkZF9jdXN0b21fY29tbWFu
ZCgKKyAgICAgICAgT1VUUFVUICR7X291dHB1dH0KKyAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7
V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmlu
Z3MucHkKKyAgICAgICAgREVQRU5EUyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICR7X2lucHV0fSAke0NN
QUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yRXBpbG9ndWUudHh0CisgICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtX
VEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5n
cy5weSAtaW5jbHVkZURlZmluZXMgJHtfc3ltYm9sTmFtZX1SdWxlcyAke0NNQUtFX0NVUlJFTlRf
U09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUu
dHh0ICR7X2lucHV0fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ID4gJHtfb3V0cHV0fQorICAgICAgICBW
RVJCQVRJTSkKKyAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke19vdXRwdXR9KQorICAgIEFE
RF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7X2lucHV0fSAke19vdXRwdXR9KQorZW5kbWFjcm8oKQor
Citmb3JlYWNoIChfZmlsZSAke1dURl9CUkVBS0lOR19SVUxFU19TT1VSQ0VTfSkKKyAgICBnZXRf
ZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCisgICAgR0VORVJBVEVf
QlJFQUtJTkdfUlVMRVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7X2ZpbGV9ICR7X25h
bWV9ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvJHtfbmFtZX0uY3Bw
KQorZW5kZm9yZWFjaCAoKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVS
SVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcAorICAgIE1BSU5fREVQRU5ERU5DWSAke1dURl9ESVJ9L3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CisgICAgREVQRU5EUyAke0NN
QUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy50eHQKKyAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RG
X0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3Mu
cHkgLWluY2x1ZGVEZWZpbmVzIGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy50eHQgPiAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAKKyAgICBWRVJCQVRJTSkKK2xpc3QoQVBQRU5E
IFdURl9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCkKK0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7
Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLnR4dCAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1
bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHApCisKIGxpc3QoQVBQRU5EIFdURl9T
T1VSQ0VTCiAgICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCiApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dURi93dGYvRGVyaXZl
ZFNvdXJjZXMubWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjUzMmRmMjdiMzdmOTdiZTc1MGZlY2RhOWYyN2Jl
N2E5ODg1ZmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMCwwICsxLDgzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMg
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCitCUkVBS0lOR19SVUxFU19GSUxFUyA9IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3RDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSksuYnJrCisKK0JSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TID0g
XAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBcCisg
ICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIFwKKyAgICBCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgXAorICAgIEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgXAorICAgIEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAKKworaWZl
cSAoJChzaGVsbCAkKENDKSAtc3RkPWdudSsrMTEgLXggYysrIC1FIC1QIC1kTSAkKFNES19GTEFH
UykgJChGUkFNRVdPUktfRkxBR1MpICQoSEVBREVSX0ZMQUdTKSAtSSAkKFdURikgLWluY2x1ZGUg
IiQoV1RGKS93dGYvUGxhdGZvcm0uaCIgL2Rldi9udWxsIHwgZ3JlcCAnIFdURl9QTEFURk9STV9J
T1MgJyB8IGN1dCAtZCcgJyAtZjMpLCAxKQorICAgIFdURl9QTEFURk9STV9JT1MgPSAxCitlbHNl
CisgICAgV1RGX1BMQVRGT1JNX0lPUyA9IDAKK2VuZGlmCisKK2lmZXEgKCQoV1RGX1BMQVRGT1JN
X0lPUyksIDEpCisJQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQg
PSAwCisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyA9IDAKK2Vsc2UKKwlBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVOVCA9ICQoQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUKQorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAxCitlbmRpZgorCitERVBFTkRFTkNJ
RVMgPSAkKEJSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TKQorCitpZmVxICgkKE9TKSxNQUNPUykK
K2lmZXEgKCQoSEFWRV9JQ1VHRU5CUkspLCAxKQorREVQRU5ERU5DSUVTICs9ICQoQlJFQUtJTkdf
UlVMRVNfRklMRVMpCitlbmRpZgorZW5kaWYKKworYWxsIDogJChERVBFTkRFTkNJRVMpCisKK0Jy
ZWFraW5nUnVsZXMvJS5icmsgOiBCcmVha2luZ1J1bGVzLyUucHAKKwlpY3VnZW5icmsgLWMgLXIg
JDwgLW8gJEAKKworQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
IDogQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMucHAKKwlweXRob24g
JChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdz
LnB5IGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3IlLmNwcCA6IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3Il
LnBwCisJcHl0aG9uICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtp
bmdSdWxlU3RyaW5ncy5weSBsaW5lQnJlYWtJdGVyYXRvciQqUnVsZXMgJDwgPiAkQAorCitCcmVh
a2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcCA6ICQoV1RGKS93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKwktdW5pZmRl
ZiAtREFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9G
T1JfQ1VSU09SX01PVkVNRU5UKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZFX0VY
VFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQCAkPAorCitCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yJS5wcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yUHJvbG9ndWUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yJS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JFcGlsb2d1ZS50eHQKKwktY2F0ICQ/IHwgdW5pZmRlZiAtREFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCkgLURIQVZFX0VYVFJBX0lDVV9OQU1FRF9T
RVRTPSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUykgLW8gJEAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
dHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU5MTBiZmE1ZTBlNjMzZGJkNzI1OTNhYzFmMzMw
YWYzZWU0M2RkZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0CkBAIC0wLDAgKzEsMTc0IEBA
CisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFRoaXMgcnVsZSBzZXQg
aXMgYmFzZWQgb24gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NworIyA8
aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2Ut
NTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KKyMgVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20g
dGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBiZWxvdzoKKyMgKiBSZXBsYWNlZCAnW1xwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBTcGFjaW5nTWFya31dJyB3aXRoICdbXHB7R2VuZXJhbF9D
YXRlZ29yeSA9IFNwYWNpbmcgTWFya30gLSAkRXh0ZW5kXScgZm9yIElDVSAzLjggb3IgZWFybGll
cjsKKyMgKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBh
ZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7CisjICogQWRkZWQgcnVsZXMgdGhh
dCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRp
YyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7CisjICogQWRkZWQgcnVs
ZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGJlZm9yZSBKYXBhbmVzZSBoYWxm
LXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJrcy4KKyMgKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9u
YWwgaW5kaWNhdG9yIHN5bWJvbHMuCisKKyRDUiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJf
QnJlYWsgPSBDUn1dOworJExGICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExG
fV07CiskQ29udHJvbCA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOwor
JFZvaWNlTWFya3MgPSBbXHVGRjlFXHVGRjlGXTsgIyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFr
YW5hIHZvaWNlZCBtYXJrcworJEV4dGVuZCAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXHUwRTMwIFx1MEUzMiBcdTBFNDUgXHUwRUIwIFx1MEVC
Ml1dOworJFNwYWNpbmdNYXJrID0gW1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJr
fV0gLSAkRXh0ZW5kXTsKKyRMICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBM
fV07CiskViAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOworJFQgICAg
ICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFR9XTsKKyRMViAgICAgID0gW1xwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOworJExWVCAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IExWVH1dOworJEhpbjAgICAgPSBbXHUwOTA1LVx1MDkzOV07ICMgRGV2YW5h
Z2FyaSBMZXR0ZXIgQSwuLi4sSGEKKyRIaW5WICAgID0gXHUwOTREOyAjIERldmFuYWdhcmkgU2ln
biBWaXJhbWEKKyRIaW4xICAgID0gW1x1MDkxNS1cdTA5MzldOyAjIERldmFuYWdhcmkgTGV0dGVy
IEthLC4uLixIYQorJEJlbjAgICAgPSBbXHUwOTg1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIg
QSwuLi4sSGEKKyRCZW5WICAgID0gXHUwOUNEOyAjIEJlbmdhbGkgU2lnbiBWaXJhbWEKKyRCZW4x
ICAgID0gW1x1MDk5NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVyIEthLC4uLixIYQorJFBhbjAg
ICAgPSBbXHUwQTA1LVx1MEEzOV07ICMgR3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCiskUGFuViAg
ICA9IFx1MEE0RDsgIyBHdXJtdWtoaSBTaWduIFZpcmFtYQorJFBhbjEgICAgPSBbXHUwQTE1LVx1
MEEzOV07ICMgR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQorJEd1ajAgICAgPSBbXHUwQTg1LVx1
MEFCOV07ICMgR3VqYXJhdGkgTGV0dGVyIEEsLi4uLEhhCiskR3VqViAgICA9IFx1MEFDRDsgIyBH
dWphcmF0aSBTaWduIFZpcmFtYQorJEd1ajEgICAgPSBbXHUwQTk1LVx1MEFCOV07ICMgR3VqYXJh
dGkgTGV0dGVyIEthLC4uLixIYQorJE9yaTAgICAgPSBbXHUwQjA1LVx1MEIzOV07ICMgT3JpeWEg
TGV0dGVyIEEsLi4uLEhhCiskT3JpViAgICA9IFx1MEI0RDsgIyBPcml5YSBTaWduIFZpcmFtYQor
JE9yaTEgICAgPSBbXHUwQjE1LVx1MEIzOV07ICMgT3JpeWEgTGV0dGVyIEthLC4uLixIYQorJFRl
bDAgICAgPSBbXHUwQzA1LVx1MEMzOV07ICMgVGVsdWd1IExldHRlciBBLC4uLixIYQorJFRlbFYg
ICAgPSBcdTBDNEQ7ICMgVGVsdWd1IFNpZ24gVmlyYW1hCiskVGVsMSAgICA9IFtcdTBDMTQtXHUw
QzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEthLC4uLixIYQorJEthbjAgICAgPSBbXHUwQzg1LVx1MENC
OV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKKyRLYW5WICAgID0gXHUwQ0NEOyAjIEthbm5h
ZGEgU2lnbiBWaXJhbWEKKyRLYW4xICAgID0gW1x1MEM5NS1cdTBDQjldOyAjIEthbm5hZGEgTGV0
dGVyIEEsLi4uLEhhCiskTWFsMCAgICA9IFtcdTBEMDUtXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0
dGVyIEEsLi4uLEhhIAorJE1hbFYgICAgPSBcdTBENEQ7ICMgTWFsYXlhbGFtIFNpZ24gVmlyYW1h
CiskTWFsMSAgICA9IFtcdTBEMTUtXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhh
CiskUkkgICAgICA9IFtcVTAwMDFGMUU2LVxVMDAwMUYxRkZdOyAjIEVtb2ppIHJlZ2lvbmFsIGlu
ZGljYXRvcnMKKyRaV0ogICAgID0gXHUyMDBEOyAjIFplcm8gd2lkdGggam9pbmVyCiskRW1vamlW
YXIgPSBbXHVGRTBGXTsgIyBFbW9qaS1zdHlsZSB2YXJpYXRpb24gc2VsZWN0b3IKKworI2lmIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI2NDAgXHUy
NjQyIFx1MjZGOSBcdTI3NjQgXFUwMDAxRjMwOCBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAx
RjNDQS1cVTAwMDFGM0NDIFxVMDAwMUYzRjMgXFUwMDAxRjQ0MSBcVTAwMDFGNDY2LVxVMDAwMUY0
NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDZGIFxVMDAwMUY0NzEgXFUwMDAxRjQ3MyBcVTAwMDFGNDc3
IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MiBcVTAwMDFGNDg2LVxVMDAwMUY0ODcgXFUwMDAxRjQ4QiBc
VTAwMDFGNTc1IFxVMDAwMUY1RTggXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEIgXFUw
MDAxRjY0RC1cVTAwMDFGNjRFIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2XTsgIyBF
bW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2Rz
ID0gW1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1MjcwRCBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUw
MDAxRjNDNCBcVTAwMDFGM0NBIFxVMDAwMUYzQ0IgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAw
MUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFG
NDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4
NyBcVTAwMDFGNEFBIFxVMDAwMUY1NzUgXFUwMDAxRjU5MCBcVTAwMDFGNTk1IFxVMDAwMUY1OTYg
XFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxV
MDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwIFxVMDAwMUY5MThdIDsgIyBFbW9qaSB0aGF0
IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JTZXFz
ID0gW1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ4Ql07ICMgRW1vamkgdGhh
dCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2
MUQgXHUyNzBBLVx1MjcwQyBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFG
M0M3IFxVMDAwMUYzQ0EgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1
MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0Mg
XFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxV
MDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAw
MDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0
YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAw
MDFGM0ZCLVxVMDAwMUYzRkZdOyAjIEZpdHpwYXRyaWNrIG1vZGlmaWVycworISFjaGFpbjsKKwor
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgISFSSU5vQ2hhaW47CisKKyNlbmRp
ZgorCishIWZvcndhcmQ7CiskQ1IgJExGOworJEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsKKygk
TFYgfCAkVikgKCRWIHwgJFQpOworKCRMVlQgfCAkVCkgJFQ7CisKKyNpZiBBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQKKworICAgICRSSSAkUkkgJEV4dGVuZCogLyAkUkk7CisgICAgJFJJICRSSSAk
RXh0ZW5kKjsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7CisgICAgW14kQ29udHJv
bCAkQ1IgJExGXSAkU3BhY2luZ01hcms7CisKKyNlbHNlCisKKyAgICBbXiRDb250cm9sICRDUiAk
TEZdICRFeHRlbmQ7CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7CisgICAg
JFJJICRSSSAvICRSSTsKKyAgICAkUkkgJFJJOworCisjZW5kaWYKKworJEhpbjAgJEhpblYgJEhp
bjE7ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCiskQmVuMCAkQmVuViAkQmVuMTsgIyBC
ZW5nYWxpIFZpcmFtYSAoZm9yd2FyZCkKKyRQYW4wICRQYW5WICRQYW4xOyAjIEd1cm11a2hpIFZp
cmFtYSAoZm9yd2FyZCkKKyRHdWowICRHdWpWICRHdWoxOyAjIEd1amFyYXRpIFZpcmFtYSAoZm9y
d2FyZCkKKyRPcmkwICRPcmlWICRPcmkxOyAjIE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKKyRUZWww
ICRUZWxWICRUZWwxOyAjIFRlbHVndSBWaXJhbWEgKGZvcndhcmQpCiskS2FuMCAkS2FuViAkS2Fu
MTsgIyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKKyRNYWwwICRNYWxWICRNYWwxOyAjIE1hbGF5
YWxhbSBWaXJhbWEgKGZvcndhcmQpCiskWldKICRFbW9qaUZvclNlcXM7ICMgRG9udCBicmVhayBp
biBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9k
czsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFy
aWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKyEhcmV2ZXJzZTsKKyRM
RiAkQ1I7CisoJEwgfCAkViB8ICRMViB8ICRMVlQpICRMOworKCRWIHwgJFQpICgkTFYgfCAkVik7
CiskVCAoJExWVCB8ICRUKTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAg
JEV4dGVuZCogJFJJICRSSSAvICRFeHRlbmQqICRSSSAkUkk7CisgICAgJEV4dGVuZCogJFJJICRS
STsKKyAgICAkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkU3BhY2luZ01h
cmsgW14kQ29udHJvbCAkQ1IgJExGXTsKKworI2Vsc2UKKworICAgICRFeHRlbmQgICAgICBbXiRD
b250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOwor
ICAgICRSSSAkUkkgLyAkUkkgJFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMSAk
SGluViAkSGluMDsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCiskQmVuMSAkQmVuViAk
QmVuMDsgIyBCZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQpCiskUGFuMSAkUGFuViAkUGFuMDsgIyBH
dXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQorJEd1ajEgJEd1alYgJEd1ajA7ICMgR3VqYXJhdGkg
VmlyYW1hIChiYWNrd2FyZCkKKyRPcmkxICRPcmlWICRPcmkwOyAjIEd1amFyYXRpIFZpcmFtYSAo
YmFja3dhcmQpCiskVGVsMSAkVGVsViAkVGVsMDsgIyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkK
KyRLYW4xICRLYW5WICRLYW4wOyAjIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKKyRNYWwxICRN
YWxWICRNYWwwOyAjIE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3YXJkKQorJEVtb2ppRm9yU2VxcyAk
WldKOyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2ppTW9kcyAkRW1v
amlWYXI/ICRFbW9qaUZvck1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2pp
IChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlm
aWVyCisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICEhc2FmZV9yZXZlcnNl
OworICAgICRSSSAkUkkrOworICAgIFskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1v
ZHM7CisgICAgISFzYWZlX2ZvcndhcmQ7CisgICAgJFJJICRSSSs7CisgICAgJEVtb2ppRm9yTW9k
cyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsKKworI2Vsc2UKKworICAgIFskRW1vamlWYXIgJEVt
b2ppTW9kc10rICRFbW9qaUZvck1vZHM7CisgICAgJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRF
bW9qaU1vZHNdKzsKKyAgICAhIXNhZmVfcmV2ZXJzZTsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2Vu
ZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmIwNDc2
OWZjYTM5OGFjYzk5Nzg2OTJiNzc3MDY0MDVlZDA0OGE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5n
cy5weQpAQCAtMCwwICsxLDExMCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgc3lzCitpbXBvcnQgcmUKKwor
aGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisKKworZGVmIG1haW4oYXJndj1Ob25lKToKKyAgICBp
ZiBub3QgYXJndjoKKyAgICAgICAgYXJndiA9IHN5cy5hcmd2CisgICAgZmlsZU5hbWVTdGFydElu
ZGV4ID0gMQorCisgICAgaW5jbHVkZURlZmluZXMgPSBGYWxzZQorICAgIGlmIGFyZ3ZbZmlsZU5h
bWVTdGFydEluZGV4XSA9PSAiLWluY2x1ZGVEZWZpbmVzIjoKKyAgICAgICAgaW5jbHVkZURlZmlu
ZXMgPSBUcnVlCisgICAgICAgIGZpbGVOYW1lU3RhcnRJbmRleCA9IGZpbGVOYW1lU3RhcnRJbmRl
eCArIDEKKworICAgIHN5bWJvbE5hbWUgPSBhcmd2W2ZpbGVOYW1lU3RhcnRJbmRleF1bMF0ubG93
ZXIoKSArIGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4XVsxOl0KKyAgICBmaWxlTmFtZVN0YXJ0SW5k
ZXggPSBmaWxlTmFtZVN0YXJ0SW5kZXggKyAxCisgICAgZmlsZU5hbWVzID0gYXJndltmaWxlTmFt
ZVN0YXJ0SW5kZXg6XQorCisgICAgcHJpbnQoaGVhZGVyKQorICAgIHByaW50KCIiKQorICAgIHBy
aW50KCIvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJh
dGVkIGJ5IHRoZSBzY3JpcHQiKQorICAgIHByaW50KCIvLyBXVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkiKQorICAgIHByaW50KCIiKQorICAg
IHByaW50KCIjaW5jbHVkZSBcImNvbmZpZy5oXCIiKQorICAgIHByaW50KCIjaW5jbHVkZSA8dW5p
Y29kZS91dmVybnVtLmg+IikKKyAgICBwcmludCgiIikKKyAgICBpZiBpbmNsdWRlRGVmaW5lczoK
KyAgICAgICAgcHJpbnQoIiNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9S
TShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwKSkiKQorICAgICAgICBwcmludCgiI2RlZmluZSBIQVZFX0VYVFJBX0lDVV9O
QU1FRF9TRVRTICgoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJ
T05fTUlOT1JfTlVNID49IDkpKSIpCisgICAgICAgIHByaW50KCIiKQorICAgIHByaW50KCJuYW1l
c3BhY2UgV1RGIHsiKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCJjb25zdCBjaGFyKiAiICsg
c3ltYm9sTmFtZSArICIgPSAiKQorCisgICAgZm9yIGZpbGVOYW1lIGluIGZpbGVOYW1lczoKKyAg
ICAgICAgZm9yIGwgaW4gb3BlbihmaWxlTmFtZSwgJ3InKToKKyAgICAgICAgICAgIGxpbmUgPSBs
LnJzdHJpcCgpCisgICAgICAgICAgICBpZiByZS5tYXRjaCgiXlxzKiQiLCBsaW5lKToKKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyAiKToK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjIik6
CisgICAgICAgICAgICAgICAgcHJpbnQobGluZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgiXiguKik7KCAjIC4qKT8kIiwgbGluZSkKKyAgICAg
ICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gIlwiIiAr
IG1hdGNoLmdyb3VwKDEpLnJlcGxhY2UoIlxcIiwgIlxcXFwiKSArICI7XCIiCisgICAgICAgICAg
ICAgICAgICAgIGlmIG1hdGNoLmdyb3VwKDIpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIpWzM6XQorICAgICAgICAgICAgICAgICAgICBw
cmludChyZXN1bHQpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
ZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAgIHByaW50KCJ9IikKKworaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxv
Z3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTg1ZDNjMWE2ZWUyMTc2MmY2NGNhZDI5Zjdh
Y2VmNGIyOGEzZWFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0wLDAgKzEsMzcwIEBA
CisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQUkgPSBbOkxpbmVCcmVh
ayA9IEFtYmlndW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07CiskQkEg
PSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxpbmVC
cmVhayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJl
YWs6XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENCID0gWzpMaW5lQnJl
YWsgPSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0
dWF0aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1AgPSBb
OkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9IENh
cnJpYWdlX1JldHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRF
WF9TVUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJBX0lD
VV9OQU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsK
KworI2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNlbmRp
ZgorCiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsgPSBI
MjpdOworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJ
ZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElOID0gW1s6TGluZUJy
ZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGluZUJyZWFrID0gSW5m
aXhfTnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07CiskSlYg
PSBbOkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYgPSBb
OkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6
XTsKKyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAt
ICROU19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxpbmVC
cmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhf
TnVtZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJp
YzpdIC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJID0g
W1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29u
dGV4dDpdOworJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGluZUJy
ZWFrID0gU3BhY2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOworJFdK
ID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtu
b3duOl07CiskWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7Cisk
RW1vamlWYXIgPSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAg
ICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYzMDgg
XFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0YzIFxV
MDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBcVTAw
MDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUwMDAx
RjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAwMUY2
NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFGNkEz
IFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0og
c2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3
MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NC
IFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1c
VTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUw
MDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxVMDAw
MUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFG
NjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZD
MCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwor
CisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAwMDFG
NDY5IFxVMDAwMUY0OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3
MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFGM0NB
IFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1c
VTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUw
MDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxVMDAw
MUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFG
NkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmlj
ayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAwMDFG
M0ZGXTsKKyRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsKKyRB
TFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07CiskQUxjbSA9ICRBTFBsdXMgJENNKjsKKyRC
QWNtID0gJEJBICRDTSo7CiskQkJjbSA9ICRCQiAkQ00qOworJEIyY20gPSAkQjIgJENNKjsKKyRD
TGNtID0gJENMICRDTSo7CiskQ1BjbSA9ICRDUCAkQ00qOworJEVYY20gPSAkRVggJENNKjsKKyRH
TGNtID0gJEdMICRDTSo7CiskSExjbSA9ICRITCAkQ00qOworJEhZY20gPSAkSFkgJENNKjsKKyRI
MmNtID0gJEgyICRDTSo7CiskSDNjbSA9ICRIMyAkQ00qOworJElEY20gPSAkSUQgJENNKjsKKyRJ
TmNtID0gJElOICRDTSo7CiskSVNjbSA9ICRJUyAkQ00qOworJEpMY20gPSAkSkwgJENNKjsKKyRK
VmNtID0gJEpWICRDTSo7CiskSlRjbSA9ICRKVCAkQ00qOworJE5TY20gPSAkTlMgJENNKjsKKyRO
VWNtID0gJE5VICRDTSo7CiskT1BjbSA9ICRPUCAkQ00qOworJFBPY20gPSAkUE8gJENNKjsKKyRQ
UmNtID0gJFBSICRDTSo7CiskUVVjbSA9ICRRVSAkQ00qOworJFJJY20gPSAkUkkgJENNKjsKKyRT
WWNtID0gJFNZICRDTSo7CiskV0pjbSA9ICRXSiAkQ00qOworCishIWZvcndhcmQ7CiskQ0FOX0NN
ID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJENBTlRfQ00gPSBbJFNQICRCSyAk
Q1IgJExGICROTCAkWlcgJENNXTsKKyRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAkTkwg
JFpXICRTUF07CiskQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRXSiAk
R0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOworJEFMX0ZPTExPVyA9IFsk
QUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07CiskTEI0QnJlYWtzID0gWyRCSyAkQ1IgJExG
ICROTF07CiskTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOworJExCOEJyZWFrcyA9
IFskTEI0QnJlYWtzICRaV107CiskTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAtIFsk
WlddXTsKKyRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07CiskTEIxOEJy
ZWFrcyA9IFskTEI4QnJlYWtzICRTUF07CiskTEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJyZWFr
cyAtICRDQl07CiskQUxQbHVzICRDTSs7CiskQkEgJENNKzsKKyRCQiAkQ00rOworJEIyICRDTSs7
CiskQ0wgJENNKzsKKyRDUCAkQ00rOworJEVYICRDTSs7CiskR0wgJENNKzsKKyRITCAkQ00rOwor
JEhZICRDTSs7CiskSDIgJENNKzsKKyRIMyAkQ00rOworJElEICRDTSs7CiskSU4gJENNKzsKKyRJ
UyAkQ00rOworJEpMICRDTSs7CiskSlYgJENNKzsKKyRKVCAkQ00rOworJE5TICRDTSs7CiskTlUg
JENNKzsKKyRPUCAkQ00rOworJFBPICRDTSs7CiskUFIgJENNKzsKKyRRVSAkQ00rOworJFJJICRD
TSs7CiskU1kgJENNKzsKKyRXSiAkQ00rOworJENSICRMRiB7MTAwfTsKKyRMQjROb25CcmVha3M/
ICRMQjRCcmVha3MgezEwMH07CiskQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsKKyRDTSsg
JExCNEJyZWFrcyB7MTAwfTsKKyRMQjROb25CcmVha3MgWyRTUCAkWlddOworJENBTl9DTSAkQ00q
IFskU1AgJFpXXTsKKyRDTSsgWyRTUCAkWlddOworJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/ICRF
bW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsKKyRDQU5fQ00gJENNKzsKKyRDTSs7CiskQ0FO
X0NNICRDTSogJFdKY207CiskTEI4Tm9uQnJlYWtzICRXSmNtOworJENNKyAkV0pjbTsKKyRXSmNt
ICRDQU5UX0NNOworJFdKY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTl9DTSAkQ00qOworJEdM
Y20gJENBTlRfQ007CitbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENNKiAkR0xj
bTsKKyRDTSsgR0xjbTsKKyRMQjhOb25CcmVha3MgJENMOworJENBTl9DTSAkQ00qICRDTDsKKyRD
TSsgJENMOworJExCOE5vbkJyZWFrcyAkQ1A7CiskQ0FOX0NNICRDTSogJENQOworJENNKyAkQ1A7
CiskTEI4Tm9uQnJlYWtzICRFWDsKKyRDQU5fQ00gJENNKiAkRVg7CiskQ00rICRFWDsKKyRMQjhO
b25CcmVha3MgJElTOworJENBTl9DTSAkQ00qICRJUzsKKyRDTSsgJElTOworJExCOE5vbkJyZWFr
cyAkU1k7CiskQ0FOX0NNICRDTSogJFNZOworJENNKyAkU1k7CiskT1BjbSAkU1AqICRDQU5fQ00g
JENNKjsKKyRPUGNtICRTUCogJENBTlRfQ007CiskT1BjbSAkU1ArICRDTSsgJEFMX0ZPTExPVz87
CiskUVVjbSAkU1AqICRPUGNtOworKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207CiskQjJjbSAk
U1AqICRCMmNtOworJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsKKyRDTSsgJFFVY207CiskUVVj
bSAuPzsKKyRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7CiskTEIyME5vbkJyZWFrcyAkQ00qICgk
QkFjbSB8ICRIWWNtIHwgJE5TY20pOyAKKyRCQmNtIFteJENCXTsKKyRCQmNtICRMQjIwTm9uQnJl
YWtzICRDTSo7CiskSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsKKyRTWWNtICRITGNtOwor
KCRBTGNtIHwgJEhMY20pICRJTmNtOworJENNKyAkSU5jbTsKKyRFWGNtICRJTmNtOworJElEY20g
JElOY207CiskSU5jbSAkSU5jbTsKKyROVWNtICRJTmNtOworJElEY20gJFBPY207CiskQUxjbSAk
TlVjbTsKKyRITGNtICROVWNtOworJENNKyAkTlVjbTsKKyROVWNtICRBTGNtOworJE5VY20gJEhM
Y207CiskUFJjbSAkSURjbTsKKyRQUmNtICgkQUxjbSB8ICRITGNtKTsKKyRQT2NtICgkQUxjbSB8
ICRITGNtKTsKKygkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5VY20g
fCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/OworJEpM
Y20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkSlZjbSB8ICRIMmNtKSAoJEpW
Y20gfCAkSlRjbSk7CisoJEpUY20gfCAkSDNjbSkgJEpUY207CisoJEpMY20gfCAkSlZjbSB8ICRK
VGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgy
Y20gfCAkSDNjbSkgJFBPY207CiskUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20g
fCAkSDNjbSk7CisoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOworJENNKyAoJEFMY20g
fCAkSExjbSk7CiskSVNjbSAoJEFMY20gfCAkSExjbSk7CisoJEFMY20gfCAkSExjbSB8ICROVWNt
KSAkT1BjbTsKKyRDTSsgJE9QY207CiskQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsKKwor
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJY20gJFJJY207CisKKyNlbmRp
ZgorCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsKKworISFyZXZlcnNlOwor
JENNKyAkQUxQbHVzOworJENNKyAkQkE7CiskQ00rICRCQjsKKyRDTSsgJEIyOworJENNKyAkQ0w7
CiskQ00rICRDUDsKKyRDTSsgJEVYOworJENNKyAkR0w7CiskQ00rICRITDsKKyRDTSsgJEhZOwor
JENNKyAkSDI7CiskQ00rICRIMzsKKyRDTSsgJElEOworJENNKyAkSU47CiskQ00rICRJUzsKKyRD
TSsgJEpMOworJENNKyAkSlY7CiskQ00rICRKVDsKKyRDTSsgJE5TOworJENNKyAkTlU7CiskQ00r
ICRPUDsKKyRDTSsgJFBPOworJENNKyAkUFI7CiskQ00rICRRVTsKKworI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAorCisgICAgJENNKyAkUkk7CisKKyNlbmRpZgorCiskQ00rICRTWTsKKyRD
TSsgJFdKOworJENNKzsKKyRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRaVyB7
ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFskQUwg
e2VvZn1dKSk7CitbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9XTsK
KyRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENNXTsKKyRMQjRCcmVha3MgJENNKyAkQ0FOX0NN
OworJExGICRDUjsKK1skU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOworWyRTUCAkWlddICRD
TSsgJENBTl9DTTsKKyRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/ICRF
bW9qaUZvclNlcXM7CiskQ00rICRDQU5fQ007CiskQ00qICRXSiAkQ00qICRDQU5fQ007CiskQ00q
ICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOworJENBTlRfQ00gJENNKiAkV0o7CiskQ00qICRDQU5f
Q00gJENNKiAkV0o7CiskQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRCQSAk
SFldXTsKKyRDQU5UX0NNICRDTSogJEdMOworJENNKiAkQ0FOX0NNICRDTSogJEdMOworJENMICRD
TSsgJENBTl9DTTsKKyRDUCAkQ00rICRDQU5fQ007CiskRVggJENNKyAkQ0FOX0NNOworJElTICRD
TSsgJENBTl9DTTsKKyRTWSAkQ00rICRDQU5fQ007CiskQ0wgWyRMQjhOb25CcmVha3MtJENNXTsK
KyRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOworJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskSVMg
WyRMQjhOb25CcmVha3MtJENNXTsKKyRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOworWyRDTCAkQ1Ag
JEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgCiskQ00qICRDQU5fQ00gJFNQKiAkQ00q
ICRPUDsKKyRDQU5UX0NNICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XPyAkQ00rICRTUCAkU1Aq
ICRDTSogJE9QOworJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRDTSogJEFM
X0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskU1kgJENNICRTUCsgJE9QOworJENNKiAk
T1AgJFNQKiAkQ00qICRRVTsKKyRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsKKyRDTSog
JEIyICRTUCogJENNKiAkQjI7CiskQ00qICRRVSAkQ00qICRDQU5fQ007CiskQ00qICRRVSAkTEIx
OE5vbkJyZWFrczsKKyRDTSogJENBTl9DTSAkQ00qICRRVTsKKyRDQU5UX0NNICRDTSogJFFVOwor
JENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOworJENNKiBb
JExCMjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICRCQjsKK1teJENCXSAk
Q00qICgkSFkgfCAkQkEpICRDTSogJEhMOworJENNKiAkSEwgJENNKiAkU1k7CiskQ00qICRJTiAk
Q00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogJElOICRDTSogJEVYOworJENNKiAkSU4gJENNKiAk
SUQ7CiskQ00qICRJTiAkQ00qICRJTjsKKyRDTSogJElOICRDTSogJE5VOworJENNKiAkUE8gJENN
KiAkSUQ7CiskQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMgfCAk
SEwpICRDTSogJE5VOworJENNKiAkSUQgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAk
Q00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOworKCRDTSogKCRQUiB8ICRQ
TykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENNKiAk
TlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OworJENNKiAoJEgzIHwg
JEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsKKyRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgyIHwg
JEpWKTsKKyRDTSogJEpUICRDTSogKCRIMyB8ICRKVCk7CiskQ00qICRJTiAkQ00qICgkSDMgfCAk
SDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwg
JEpWIHwgJEpMKTsKKyRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAkUFI7
CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBs
dXMgfCAkSEwpICRDTSogJElTOworJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSk7
CiskQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsKKworI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAorCisgICAgJENNKiAkUkkgJENNKiAkUkk7CisKKyNlbmRpZgorCiskRW1v
amlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsKKworISFzYWZlX2ZvcndhcmQ7CitbJENN
ICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14kQ00g
JE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07CiskZGljdGlvbmFy
eSAkZGljdGlvbmFyeTsKKyAgICAKKyEhc2FmZV9yZXZlcnNlOworJENNKyBbXiRDTSAkQksgJENS
ICRMRiAkTkwgJFpXICRTUF07CiskQ00rICRTUCAvIC47CiskU1ArICRDTSogJE9QOworJFNQKyAk
Q00qICRRVTsKKyRTUCsgJENNKiAoJENMIHwgJENQKTsKKyRTUCsgJENNKiAkQjI7CiskQ00qICgk
SFkgfCAkQkEpICRDTSogJEhMOworKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsKKygkQ0wg
fCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7CiskZGljdGlvbmFyeSAkZGljdGlvbmFyeTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclByb2xvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjg4MzU1NjMxZTQzNzky
ZDNmM2M5MjMzMzcyNzY2YWNkZWMxYjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0CkBAIC0w
LDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
IyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyEhY2hh
aW47CishIUxCQ01Ob0NoYWluOworISFsb29rQWhlYWRIYXJkQnJlYWs7CisKKyNpZiBIQVZFX0VY
VFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkQ0ogPSBbOkxpbmVCcmVhaz1Db25kaXRpb25hbF9K
YXBhbmVzZV9TdGFydGVyOl07CisKKyNlbHNlCisKKyAgICAkQ0ogPSBbXHUzMDQxXHUzMDQzXHUz
MDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhFXHUzMDk1XHUzMDk2
XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3XHUzMEE5XHUzMEMzXHUzMEUzXHUzMEU1XHUzMEU3XHUz
MEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYwXHUzMUYxXHUzMUYyXHUzMUYzXHUzMUY0XHUzMUY1
XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUzMUZBXHUzMUZCXHUzMUZDXHUzMUZEXHUzMUZFXHUz
MUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZBXHVGRjZCXHVGRjZDXHVGRjZEXHVGRjZFXHVGRjZG
XHVGRjcwXTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzBiY2U1ZWU5ZTY3OTY5YmM4NmIwODc1MDY2MTU0ZjdmYzM5MzE2MQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisj
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7Cisk
SU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1
MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRD
SiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50
eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTAzZTUxMWViOTg0ZmNhYTY0ODU0NGFjY2Vl
ZjZlNzgxNTg4MDFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKQEAgLTAsMCArMSwz
MyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtc
dTIwMTBcdTIwMTNdOworJEVYX1NVQiA9IFtcdTAwMjFcdTAwM0ZcdUZGMDFcdUZGMUZdOworJElE
X1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NVQiA9IFtcdTAwM0Fc
dTAwM0JdOworJE5TX1NVQiA9IFtcdTIwM0NcdTIwNDdcdTIwNDhcdTIwNDlcdTMwMDVcdTMwMUNc
dTMwM0JcdTMwOURcdTMwOUVcdTMwQTBcdTMwRkJcdTMwRkRcdTMwRkVcdUZGMUFcdUZGMUJcdUZG
NjVdOworJFBPX1NVQiA9IFtcdTAwMjVcdTAwQTJcdTAwQjBcdTIwMzBcdTIwMzJcdTIwMzNcdTIx
MDNcdUZGMDVcdUZGRTBdOworJFBSX1NVQiA9IFtcdTAwMjRcdTAwQTNcdTAwQTVcdTIwQUNcdTIx
MTZcdUZGMDRcdUZGRTFcdUZGRTVdOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJ
Tl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07CiskTlNfQUREID0gJyc7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZm
OGU4ZTFiNWI2NWJjNjM0M2I1MDEyZDhmOTlkODQ0YTQwNGFkZGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlTm9uQ0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0g
Jyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0g
W1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBGRFx1MzBGRV07CiskUE9fU1VCID0gJyc7Cisk
UFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJdOworJE5TX0FERCA9
ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2ZWFi
Njk0OTg2ZWY4MmQ5YWI5NWZiMTliNDM1MmI2NjJkMjYzZGIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
bkNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisj
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElO
X1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOwor
JFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYmNlNWVlOWU2Nzk2
OWJjODZiMDg3NTA2NjE1NGY3ZmMzOTMxNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50
eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9ICcn
OworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBd
OworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAk
TlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDk0NTgyY2NlOWZkNGQwN2Q5ODdlMzk5ZWM5NzUy
MjczYjRkYmU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0CkBAIC0wLDAgKzEs
MzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAn
JzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIg
PSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9B
REQgPSBbJENKXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJiNjYy
ZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CkBAIC0wLDAgKzEsMzMgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRF
WF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsK
KyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAn
JzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJiNjYy
ZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CkBAIC0wLDAgKzEsMzMg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsK
KyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAn
JzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQg
PSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVy
YXRvci5jcHAKaW5kZXggMDVhNTE5NTYwNWUxZDhmYmY3NjIzMTM5N2Q4OWMwODE1MzIwOTMyNy4u
Y2JkZjE0MDUyODQzYTRiY2Q1YTRkNmViYTc3ZGY1ZWM0YmNjZTZkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKQEAgLTMxLDkgKzMxLDYgQEAKICNpbmNsdWRl
IDx1bmljb2RlL3VicmsuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAK
LS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0dGVyIG5hbWUKLSNkZWZpbmUgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkKLQogbmFtZXNwYWNlIFdURiB7CiAK
IC8vIEl0ZXJhdG9yIGluaXRpYWxpemF0aW9uCkBAIC02MSw2ICs1OCwxMiBAQCBzdGF0aWMgVGV4
dEJyZWFrSXRlcmF0b3IqIGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhjb25zdCBjaGFyKiBi
cmVha1J1bGVzKQogCiAjZW5kaWYKIAorI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJ
T1MpCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5n
UnVsZVNldCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgogCiAvLyBJdGVyYXRv
ciB0ZXh0IHNldHRpbmcKIApAQCAtMTY0LDEzNSArMTY3LDIwIEBAIFRleHRCcmVha0l0ZXJhdG9y
KiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiAgICAgcmV0dXJuIHNl
dFRleHRGb3JJdGVyYXRvcigqc3RhdGljU2VudGVuY2VCcmVha0l0ZXJhdG9yLCBzdHJpbmcpOwog
fQogCisjaWYgIVBMQVRGT1JNKElPUykKK3N0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRl
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjaygpCit7CisgICAgaWYgKGF1dG8qIGl0
ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldDo6Q3Vyc29y
TW92ZW1lbnQpKQorICAgICAgICByZXR1cm4gaXRlcmF0b3I7CisgICAgcmV0dXJuIGluaXRpYWxp
emVJdGVyYXRvcldpdGhSdWxlcyhjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMpOworfQorI2Vu
ZGlmCisKIFRleHRCcmVha0l0ZXJhdG9yKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKFN0cmluZ1Zp
ZXcgc3RyaW5nKQogewogI2lmICFQTEFURk9STShJT1MpCi0gICAgLy8gVGhpcyBydWxlIHNldCBp
cyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3Ci0gICAg
Ly8gPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxl
YXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCi0gICAgLy8gVGhlIG1ham9yIGRpZmZlcmVu
Y2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBiZWxvdzoKLSAgICAvLyAqIFJl
cGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGgg
J1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNV
IDMuOCBvciBlYXJsaWVyOwotICAgIC8vICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBj
dXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOwot
ICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFm
dGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3
OTApLCBhbmQ7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJv
bSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtz
LgotICAgIC8vICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgot
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBrUnVsZXMgPQotICAgICAgICAiJENSICAgICAgPSBbXFxw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOyIKLSAgICAgICAgIiRMRiAgICAgID0gW1xc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsiCi0gICAgICAgICIkQ29udHJvbCA9IFtc
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsiCi0gICAgICAgICIkVm9pY2VN
YXJrcyA9IFtcXHVGRjlFXFx1RkY5Rl07IiAvLyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5h
IHZvaWNlZCBtYXJrcwotICAgICAgICAiJEV4dGVuZCAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJf
QnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1xcdTBFMzAgXFx1MEUzMiBcXHUwRTQ1IFxc
dTBFQjAgXFx1MEVCMl1dOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayA9IFtbXFxwe0dlbmVyYWxf
Q2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOyIKLSAgICAgICAgIiRMICAgICAg
ID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOyIKLSAgICAgICAgIiRWICAgICAg
ID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOyIKLSAgICAgICAgIiRUICAgICAg
ID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOyIKLSAgICAgICAgIiRMViAgICAg
ID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsiCi0gICAgICAgICIkTFZUICAg
ICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1dOyIKLSAgICAgICAgIiRIaW4w
ICAgID0gW1xcdTA5MDUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQot
ICAgICAgICAiJEhpblYgICAgPSBcXHUwOTREOyIgLy8gRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQot
ICAgICAgICAiJEhpbjEgICAgPSBbXFx1MDkxNS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0
dGVyIEthLC4uLixIYQotICAgICAgICAiJEJlbjAgICAgPSBbXFx1MDk4NS1cXHUwOUI5XTsiIC8v
IEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkQmVuViAgICA9IFxcdTA5Q0Q7IiAv
LyBCZW5nYWxpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkQmVuMSAgICA9IFtcXHUwOTk1LVxcdTA5
QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkUGFuMCAgICA9IFtc
XHUwQTA1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIk
UGFuViAgICA9IFxcdTBBNEQ7IiAvLyBHdXJtdWtoaSBTaWduIFZpcmFtYQotICAgICAgICAiJFBh
bjEgICAgPSBbXFx1MEExNS1cXHUwQTM5XTsiIC8vIEd1cm11a2hpIExldHRlciBLYSwuLi4sSGEK
LSAgICAgICAgIiRHdWowICAgID0gW1xcdTBBODUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0
ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRHdWpWICAgID0gXFx1MEFDRDsiIC8vIEd1amFyYXRpIFNp
Z24gVmlyYW1hCi0gICAgICAgICIkR3VqMSAgICA9IFtcXHUwQTk1LVxcdTBBQjldOyIgLy8gR3Vq
YXJhdGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJE9yaTAgICAgPSBbXFx1MEIwNS1cXHUw
QjM5XTsiIC8vIE9yaXlhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJE9yaVYgICAgPSBcXHUw
QjREOyIgLy8gT3JpeWEgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRPcmkxICAgID0gW1xcdTBCMTUt
XFx1MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkVGVsMCAgICA9
IFtcXHUwQzA1LVxcdTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBBLC4uLixIYQotICAgICAgICAi
JFRlbFYgICAgPSBcXHUwQzREOyIgLy8gVGVsdWd1IFNpZ24gVmlyYW1hCi0gICAgICAgICIkVGVs
MSAgICA9IFtcXHUwQzE0LVxcdTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBLYSwuLi4sSGEKLSAg
ICAgICAgIiRLYW4wICAgID0gW1xcdTBDODUtXFx1MENCOV07IiAvLyBLYW5uYWRhIExldHRlciBB
LC4uLixIYQotICAgICAgICAiJEthblYgICAgPSBcXHUwQ0NEOyIgLy8gS2FubmFkYSBTaWduIFZp
cmFtYQotICAgICAgICAiJEthbjEgICAgPSBbXFx1MEM5NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEg
TGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsMCAgICA9IFtcXHUwRDA1LVxcdTBEMzldOyIg
Ly8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAiJE1hbFYgICAgPSBcXHUwRDRE
OyIgLy8gTWFsYXlhbGFtIFNpZ24gVmlyYW1hCi0gICAgICAgICIkTWFsMSAgICA9IFtcXHUwRDE1
LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAiJFJJICAg
ICAgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIgLy8gRW1vamkgcmVnaW9uYWwgaW5kaWNh
dG9ycwotICAgICAgICAiJFpXSiAgICAgPSBcXHUyMDBEOyIgLy8gWmVybyB3aWR0aCBqb2luZXIK
LSAgICAgICAgIiRFbW9qaVZhciA9IFtcXHVGRTBGXTsiIC8vIEVtb2ppLXN0eWxlIHZhcmlhdGlv
biBzZWxlY3RvcgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJEVtb2pp
Rm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxc
VTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0Yz
IFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFG
NDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAw
MDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxc
VTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRE
LVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcdTI2OTUt
XFx1MjY5NiBcXHUyNzA4IFxcVTAwMDFGMzNFIFxcVTAwMDFGMzczIFxcVTAwMDFGMzkzIFxcVTAw
MDFGM0E0IFxcVTAwMDFGM0E4IFxcVTAwMDFGM0VCIFxcVTAwMDFGM0VEIFxcVTAwMDFGNEJCLVxc
VTAwMDFGNEJDIFxcVTAwMDFGNTI3IFxcVTAwMDFGNTJDIFxcVTAwMDFGNjgwIFxcVTAwMDFGNjky
IFxcVTAwMDFGOTI2IFxcVTAwMDFGOTM3LVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFG
OTNFXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAg
ICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAw
MDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxc
VTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2
LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFG
NDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAw
MDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxc
VTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0
LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4IFxcVTAwMDFGM0MyIFxcVTAwMDFG
M0M3IFxcVTAwMDFGM0NDIFxcVTAwMDFGNTc0IFxcVTAwMDFGNTdBIFxcVTAwMDFGNkNDIFxcVTAw
MDFGOTE5LVxcVTAwMDFGOTFFIFxcVTAwMDFGOTI2IFxcVTAwMDFGOTMwIFxcVTAwMDFGOTMzLVxc
VTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXSA7IiAvLyBFbW9qaSB0aGF0IHRha2Ug
Rml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZWxzZQotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtc
XHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDhCXTsiIC8vIEVtb2ppIHRo
YXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9
IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAx
RjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUw
MDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1c
XFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4
NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAx
RjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUw
MDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1v
ZGlmaWVycwotI2VuZGlmCi0gICAgICAgICIkRW1vamlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAw
MDFGM0ZGXTsiIC8vIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotICAgICAgICAiISFjaGFpbjsiCi0j
aWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIhIVJJTm9DaGFpbjsiCi0jZW5k
aWYKLSAgICAgICAgIiEhZm9yd2FyZDsiCi0gICAgICAgICIkQ1IgJExGOyIKLSAgICAgICAgIiRM
ICgkTCB8ICRWIHwgJExWIHwgJExWVCk7IgotICAgICAgICAiKCRMViB8ICRWKSAoJFYgfCAkVCk7
IgotICAgICAgICAiKCRMVlQgfCAkVCkgJFQ7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJICRF
eHRlbmQqOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsiCi0gICAgICAg
ICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsiCi0jZWxzZQotICAgICAgICAiW14k
Q29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0g
JFNwYWNpbmdNYXJrOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkk7IgotICAgICAgICAiJFJJICRS
STsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4wICRIaW5WICRIaW4xOyIgLy8gRGV2YW5hZ2FyaSBW
aXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkQmVuMCAkQmVuViAkQmVuMTsiIC8vIEJlbmdhbGkg
VmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFBhbjAgJFBhblYgJFBhbjE7IiAvLyBHdXJtdWto
aSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkR3VqMCAkR3VqViAkR3VqMTsiIC8vIEd1amFy
YXRpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRPcmkwICRPcmlWICRPcmkxOyIgLy8gT3Jp
eWEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFRlbDAgJFRlbFYgJFRlbDE7IiAvLyBUZWx1
Z3UgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEthbjAgJEthblYgJEthbjE7IiAvLyBLYW5u
YWRhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRNYWwwICRNYWxWICRNYWwxOyIgLy8gTWFs
YXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRaV0ogJEVtb2ppRm9yU2VxczsiIC8v
IERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1v
ZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFu
dCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmlj
ayBtb2RpZmllcgotICAgICAgICAiISFyZXZlcnNlOyIKLSAgICAgICAgIiRMRiAkQ1I7IgotICAg
ICAgICAiKCRMIHwgJFYgfCAkTFYgfCAkTFZUKSAkTDsiCi0gICAgICAgICIoJFYgfCAkVCkgKCRM
ViB8ICRWKTsiCi0gICAgICAgICIkVCAoJExWVCB8ICRUKTsiCi0jaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsi
Ci0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRD
b250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAk
TEZdOyIKLSNlbHNlCi0gICAgICAgICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsi
Ci0gICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIk
UkkgJFJJIC8gJFJJICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAi
JEhpbjEgJEhpblYgJEhpbjA7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAg
ICAgICIkQmVuMSAkQmVuViAkQmVuMDsiIC8vIEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKLSAg
ICAgICAgIiRQYW4xICRQYW5WICRQYW4wOyIgLy8gR3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkK
LSAgICAgICAgIiRHdWoxICRHdWpWICRHdWowOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2Fy
ZCkKLSAgICAgICAgIiRPcmkxICRPcmlWICRPcmkwOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNr
d2FyZCkKLSAgICAgICAgIiRUZWwxICRUZWxWICRUZWwwOyIgLy8gVGVsdWd1IFZpcmFtYSAoYmFj
a3dhcmQpCi0gICAgICAgICIkS2FuMSAkS2FuViAkS2FuMDsiIC8vIEthbm5hZGEgVmlyYW1hIChi
YWNrd2FyZCkKLSAgICAgICAgIiRNYWwxICRNYWxWICRNYWwwOyIgLy8gTWFsYXlhbGFtIFZpcmFt
YSAoYmFja3dhcmQpCi0gICAgICAgICIkRW1vamlGb3JTZXFzICRaV0o7IiAvLyBEb24ndCBicmVh
ayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8g
JEVtb2ppRm9yTW9kczsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBv
c3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIK
LSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIK
LSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRF
bW9qaUZvck1vZHM7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICAgICAiJFJJICRS
SSs7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiOwor
ICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
ciA9IGNyZWF0ZUN1cnNvck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2soKTsKICNlbHNlCi0g
ICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAg
IiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IgotICAgICAgICAiISFzYWZl
X3JldmVyc2U7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IjsKLSNlbmRpZgotICAgIHN0YXRp
YyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRp
YWxpemVJdGVyYXRvcldpdGhSdWxlcyhrUnVsZXMpOwotI2Vsc2UgLy8gUExBVEZPUk0oSU9TKQog
ICAgIC8vIFVzZSB0aGUgc3BlY2lhbCBUaGFpIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBmb3Ig
YWxsIGxvY2FsZXMKICAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1v
dmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3IoVUJSS19DSEFSQUNURVIsICJ0aCIp
OwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCkBAIC0zMTksNDQyICsyMDcsMjAgQEAgdm9pZCBy
ZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQogICAg
IExpbmVCcmVha0l0ZXJhdG9yUG9vbDo6c2hhcmVkUG9vbCgpLnB1dChpdGVyYXRvcik7CiB9CiAK
LXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFByb2xvZ3VlID0KLSAgICAiISFjaGFpbjsiCi0gICAg
IiEhTEJDTU5vQ2hhaW47IgotICAgICIhIWxvb2tBaGVhZEhhcmRCcmVhazsiOwotCi1zdGF0aWMg
Y29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0JlZm9yZSA9Ci0gICAgLy8gZXhwbGljaXRseSBl
bnVtZXJhdGUgJENKIHNpbmNlIElDVSB2ZXJzaW9ucyBwcmlvciB0byA0OSBkb24ndCBzdXBwb3J0
IDpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoKLSAgICAiJENKID0gWyIK
LSNpZiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlO
T1JfTlVNID49IDkpCi0gICAgIjpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRl
cjoiCi0jZWxzZQotICAgICJcXHUzMDQxXFx1MzA0M1xcdTMwNDVcXHUzMDQ3XFx1MzA0OVxcdTMw
NjNcXHUzMDgzXFx1MzA4NVxcdTMwODdcXHUzMDhFXFx1MzA5NVxcdTMwOTZcXHUzMEExXFx1MzBB
M1xcdTMwQTVcXHUzMEE3IgotICAgICJcXHUzMEE5XFx1MzBDM1xcdTMwRTNcXHUzMEU1XFx1MzBF
N1xcdTMwRUVcXHUzMEY1XFx1MzBGNlxcdTMwRkMiCi0gICAgIlxcdTMxRjBcXHUzMUYxXFx1MzFG
MlxcdTMxRjNcXHUzMUY0XFx1MzFGNVxcdTMxRjZcXHUzMUY3XFx1MzFGOFxcdTMxRjlcXHUzMUZB
XFx1MzFGQlxcdTMxRkNcXHUzMUZEXFx1MzFGRVxcdTMxRkYiCi0gICAgIlxcdUZGNjdcXHVGRjY4
XFx1RkY2OVxcdUZGNkFcXHVGRjZCXFx1RkY2Q1xcdUZGNkRcXHVGRjZFXFx1RkY2RlxcdUZGNzAi
Ci0jZW5kaWYKLSAgICAiXTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50
c0N1c3RvbUxvb3NlQ0pLID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAg
ICIkRVhfU1VCID0gW1xcdTAwMjFcXHUwMDNGXFx1RkYwMVxcdUZGMUZdOyIKLSAgICAiJElEX1NV
QiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAgICIkSVNfU1VC
ID0gW1xcdTAwM0FcXHUwMDNCXTsiCi0gICAgIiROU19TVUIgPSBbXFx1MjAzQ1xcdTIwNDdcXHUy
MDQ4XFx1MjA0OVxcdTMwMDVcXHUzMDFDXFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBBMFxcdTMw
RkJcXHUzMEZEXFx1MzBGRVxcdUZGMUFcXHVGRjFCXFx1RkY2NV07IgotICAgICIkUE9fU1VCID0g
W1xcdTAwMjVcXHUwMEEyXFx1MDBCMFxcdTIwMzBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHVGRjA1
XFx1RkZFMF07IgotICAgICIkUFJfU1VCID0gW1xcdTAwMjRcXHUwMEEzXFx1MDBBNVxcdTIwQUNc
XHUyMTE2XFx1RkYwNFxcdUZGRTFcXHVGRkU1XTsiCi0gICAgIiRJRF9BREQgPSBbJENKICRCQV9T
VUIgJEVYX1NVQiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOyIKLSAg
ICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tTG9vc2VOb25DSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0g
Jyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2
XTsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAwNVxcdTMwM0Jc
XHUzMDlEXFx1MzA5RVxcdTMwRkRcXHUzMEZFXTsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAg
IiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKICRJTl9TVUIgJE5TX1NVQl07Igot
ICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVu
dHNDdXN0b21Ob3JtYWxDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0g
ICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAn
JzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAxQ1xcdTMwQTBd
OyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FE
RCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0
aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyA9Ci0gICAg
IiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsi
Ci0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIg
PSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJ
RF9BREQgPSBbJENKXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hh
ciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsi
Ci0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIg
PSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQ
T19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSAnJzsiCi0g
ICAgIiROU19BREQgPSBbJENKXTsiOwotCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21T
dHJpY3ROb25DSksgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLCi0jZGVmaW5l
IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Q0pLICAgICAgICB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tTm9ybWFsQ0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9u
Q0pLICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLCi0KLXN0YXRpYyBjb25z
dCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIgPQotICAgICIkQUkgPSBbOkxpbmVCcmVhayA9
IEFtYmlndW91czpdOyIKLSAgICAiJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07Igot
ICAgICIkQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07IgotICAg
ICIkQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOyIKLSAgICAiJEJLID0gWzpMaW5l
QnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsiCi0gICAgIiRCMiA9IFs6TGluZUJyZWFrID0gQnJl
YWtfQm90aDpdOyIKLSAgICAiJENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07
IgotICAgICIkQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07IgotICAgICIk
Q00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07IgotICAgICIkQ1AgPSBbOkxpbmVC
cmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07IgotICAgICIkQ1IgPSBbOkxpbmVCcmVhayA9IENh
cnJpYWdlX1JldHVybjpdOyIKLSAgICAiJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246
XSAtICRFWF9TVUJdOyIKLSAgICAiJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07IgotI2lmIChV
X0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0g
Pj0gOSkKLSAgICAiJEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdfTGV0dGVyOl07IgotI2Vsc2UK
LSAgICAiJEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsiCi0jZW5kaWYKLSAgICAiJEhZ
ID0gWzpMaW5lQnJlYWsgPSBIeXBoZW46XTsiCi0gICAgIiRIMiA9IFs6TGluZUJyZWFrID0gSDI6
XTsiCi0gICAgIiRIMyA9IFs6TGluZUJyZWFrID0gSDM6XTsiCi0gICAgIiRJRCA9IFtbW1s6TGlu
ZUJyZWFrID0gSWRlb2dyYXBoaWM6XSAtICRDSl0gJElEX0FERF0gLSAkSURfU1VCXTsiCi0gICAg
IiRJTiA9IFtbOkxpbmVCcmVhayA9IEluc2VwYXJhYmxlOl0gLSAkSU5fU1VCXTsiCi0gICAgIiRJ
UyA9IFtbOkxpbmVCcmVhayA9IEluZml4X051bWVyaWM6XSAtICRJU19TVUJdOyIKLSAgICAiJEpM
ID0gWzpMaW5lQnJlYWsgPSBKTDpdOyIKLSAgICAiJEpWID0gWzpMaW5lQnJlYWsgPSBKVjpdOyIK
LSAgICAiJEpUID0gWzpMaW5lQnJlYWsgPSBKVDpdOyIKLSAgICAiJExGID0gWzpMaW5lQnJlYWsg
PSBMaW5lX0ZlZWQ6XTsiCi0gICAgIiROTCA9IFs6TGluZUJyZWFrID0gTmV4dF9MaW5lOl07Igot
ICAgICIkTlMgPSBbW1tbOkxpbmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRDSl0gJE5TX0FERF0g
LSAkTlNfU1VCXTsiCi0gICAgIiROVSA9IFs6TGluZUJyZWFrID0gTnVtZXJpYzpdOyIKLSAgICAi
JE9QID0gWzpMaW5lQnJlYWsgPSBPcGVuX1B1bmN0dWF0aW9uOl07IgotICAgICIkUE8gPSBbWzpM
aW5lQnJlYWsgPSBQb3N0Zml4X051bWVyaWM6XSAtICRQT19TVUJdOyIKLSAgICAiJFBSID0gW1s6
TGluZUJyZWFrID0gUHJlZml4X051bWVyaWM6XSAtICRQUl9TVUJdOyIKLSAgICAiJFFVID0gWzpM
aW5lQnJlYWsgPSBRdW90YXRpb246XTsiCi0gICAgIiRSSSA9IFtcXFUwMDAxRjFFNi1cXFUwMDAx
RjFGRl07IgotICAgICIkU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAg
ICAiJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsiCi0gICAgIiRTUCA9IFs6TGluZUJy
ZWFrID0gU3BhY2U6XTsiCi0gICAgIiRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpd
OyIKLSAgICAiJFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOyIKLSAgICAiJFhYID0g
WzpMaW5lQnJlYWsgPSBVbmtub3duOl07IgotICAgICIkWlcgPSBbOkxpbmVCcmVhayA9IFpXU3Bh
Y2U6XTsiCi0gICAgIiRaV0ogPSBcXHUyMDBEOyIKLSAgICAiJEVtb2ppVmFyID0gXFx1RkUwRjsi
Ci0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1
MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUw
MDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBc
XFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3
MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAx
RjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUw
MDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBc
XFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXHUyNjk1LVxcdTI2OTYgXFx1Mjcw
OCBcXFUwMDAxRjMzRSBcXFUwMDAxRjM3MyBcXFUwMDAxRjM5MyBcXFUwMDAxRjNBNCBcXFUwMDAx
RjNBOCBcXFUwMDAxRjNFQiBcXFUwMDAxRjNFRCBcXFUwMDAxRjRCQi1cXFUwMDAxRjRCQyBcXFUw
MDAxRjUyNyBcXFUwMDAxRjUyQyBcXFUwMDAxRjY4MCBcXFUwMDAxRjY5MiBcXFUwMDAxRjkyNiBc
XFUwMDAxRjkzNy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV07IiAvLyBFbW9q
aSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAiJEVtb2ppRm9yTW9kcyA9
IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0Mz
LVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFG
NDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAw
MDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxc
VTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkw
IFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFG
NjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAw
MDFGNkMwIFxcVTAwMDFGOTE4IFxcVTAwMDFGM0MyIFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NDIFxc
VTAwMDFGNTc0IFxcVTAwMDFGNTdBIFxcVTAwMDFGNkNDIFxcVTAwMDFGOTE5LVxcVTAwMDFGOTFF
IFxcVTAwMDFGOTI2IFxcVTAwMDFGOTMwIFxcVTAwMDFGOTMzLVxcVTAwMDFGOTM5IFxcVTAwMDFG
OTNDLVxcVTAwMDFGOTNFXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZp
ZXJzCi0jZWxzZQotICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxV
MDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxc
dTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAx
RjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUw
MDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBc
XFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4
NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAx
RjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUw
MDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2Vu
ZGlmCi0gICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIKLSAgICAi
JGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJEFM
UGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsiCi0gICAgIiRBTGNtID0gJEFMUGx1cyAkQ00q
OyIKLSAgICAiJEJBY20gPSAkQkEgJENNKjsiCi0gICAgIiRCQmNtID0gJEJCICRDTSo7IgotICAg
ICIkQjJjbSA9ICRCMiAkQ00qOyIKLSAgICAiJENMY20gPSAkQ0wgJENNKjsiCi0gICAgIiRDUGNt
ID0gJENQICRDTSo7IgotICAgICIkRVhjbSA9ICRFWCAkQ00qOyIKLSAgICAiJEdMY20gPSAkR0wg
JENNKjsiCi0gICAgIiRITGNtID0gJEhMICRDTSo7IgotICAgICIkSFljbSA9ICRIWSAkQ00qOyIK
LSAgICAiJEgyY20gPSAkSDIgJENNKjsiCi0gICAgIiRIM2NtID0gJEgzICRDTSo7IgotICAgICIk
SURjbSA9ICRJRCAkQ00qOyIKLSAgICAiJElOY20gPSAkSU4gJENNKjsiCi0gICAgIiRJU2NtID0g
JElTICRDTSo7IgotICAgICIkSkxjbSA9ICRKTCAkQ00qOyIKLSAgICAiJEpWY20gPSAkSlYgJENN
KjsiCi0gICAgIiRKVGNtID0gJEpUICRDTSo7IgotICAgICIkTlNjbSA9ICROUyAkQ00qOyIKLSAg
ICAiJE5VY20gPSAkTlUgJENNKjsiCi0gICAgIiRPUGNtID0gJE9QICRDTSo7IgotICAgICIkUE9j
bSA9ICRQTyAkQ00qOyIKLSAgICAiJFBSY20gPSAkUFIgJENNKjsiCi0gICAgIiRRVWNtID0gJFFV
ICRDTSo7IgotICAgICIkUkljbSA9ICRSSSAkQ00qOyIKLSAgICAiJFNZY20gPSAkU1kgJENNKjsi
Ci0gICAgIiRXSmNtID0gJFdKICRDTSo7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0Rm9y
d2FyZCA9Ci0gICAgIiEhZm9yd2FyZDsiCi0gICAgIiRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRM
RiAkTkwgJFpXICRDTV07IgotICAgICIkQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5MICRa
VyAkQ01dOyIKLSAgICAiJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQ
XTsiCi0gICAgIiRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRH
TCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107IgotICAgICIkQUxfRk9MTE9X
ID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsiCi0gICAgIiRMQjRCcmVha3MgPSBb
JEJLICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICRO
TF07IgotICAgICIkTEI4QnJlYWtzID0gWyRMQjRCcmVha3MgJFpXXTsiCi0gICAgIiRMQjhOb25C
cmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOyIKLSAgICAiJExCMThOb25CcmVha3Mg
PSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsiCi0gICAgIiRMQjE4QnJlYWtzID0gWyRMQjhCcmVh
a3MgJFNQXTsiCi0gICAgIiRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsi
Ci0gICAgIiRBTFBsdXMgJENNKzsiCi0gICAgIiRCQSAkQ00rOyIKLSAgICAiJEJCICRDTSs7Igot
ICAgICIkQjIgJENNKzsiCi0gICAgIiRDTCAkQ00rOyIKLSAgICAiJENQICRDTSs7IgotICAgICIk
RVggJENNKzsiCi0gICAgIiRHTCAkQ00rOyIKLSAgICAiJEhMICRDTSs7IgotICAgICIkSFkgJENN
KzsiCi0gICAgIiRIMiAkQ00rOyIKLSAgICAiJEgzICRDTSs7IgotICAgICIkSUQgJENNKzsiCi0g
ICAgIiRJTiAkQ00rOyIKLSAgICAiJElTICRDTSs7IgotICAgICIkSkwgJENNKzsiCi0gICAgIiRK
ViAkQ00rOyIKLSAgICAiJEpUICRDTSs7IgotICAgICIkTlMgJENNKzsiCi0gICAgIiROVSAkQ00r
OyIKLSAgICAiJE9QICRDTSs7IgotICAgICIkUE8gJENNKzsiCi0gICAgIiRQUiAkQ00rOyIKLSAg
ICAiJFFVICRDTSs7IgotICAgICIkUkkgJENNKzsiCi0gICAgIiRTWSAkQ00rOyIKLSAgICAiJFdK
ICRDTSs7IgotICAgICIkQ1IgJExGIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcz8gJExCNEJy
ZWFrcyB7MTAwfTsiCi0gICAgIiRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAi
JENNKyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcyBbJFNQICRaV107Igot
ICAgICIkQ0FOX0NNICRDTSogWyRTUCAkWlddOyIKLSAgICAiJENNKyBbJFNQICRaV107IgotICAg
ICIkRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFz
OyIKLSAgICAiJENBTl9DTSAkQ00rOyIKLSAgICAiJENNKzsiCi0gICAgIiRDQU5fQ00gJENNKiAk
V0pjbTsiCi0gICAgIiRMQjhOb25CcmVha3MgJFdKY207IgotICAgICIkQ00rICRXSmNtOyIKLSAg
ICAiJFdKY20gJENBTlRfQ007IgotICAgICIkV0pjbSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xj
bSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FOVF9DTTsiCi0gICAgIltbJExCOE5vbkJy
ZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOyIKLSAgICAiJENNKyBHTGNtOyIKLSAg
ICAiJExCOE5vbkJyZWFrcyAkQ0w7IgotICAgICIkQ0FOX0NNICRDTSogJENMOyIKLSAgICAiJENN
KyAkQ0w7IgotICAgICIkTEI4Tm9uQnJlYWtzICRDUDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ1A7
IgotICAgICIkQ00rICRDUDsiCi0gICAgIiRMQjhOb25CcmVha3MgJEVYOyIKLSAgICAiJENBTl9D
TSAkQ00qICRFWDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkSVM7Igot
ICAgICIkQ0FOX0NNICRDTSogJElTOyIKLSAgICAiJENNKyAkSVM7IgotICAgICIkTEI4Tm9uQnJl
YWtzICRTWTsiCi0gICAgIiRDQU5fQ00gJENNKiAkU1k7IgotICAgICIkQ00rICRTWTsiCi0gICAg
IiRPUGNtICRTUCogJENBTl9DTSAkQ00qOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOVF9DTTsiCi0g
ICAgIiRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsiCi0gICAgIiRRVWNtICRTUCogJE9QY207
IgotICAgICIoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsiCi0gICAgIiRCMmNtICRTUCogJEIy
Y207IgotICAgICIkTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOyIKLSAgICAiJENNKyAkUVVjbTsi
Ci0gICAgIiRRVWNtIC4/OyIKLSAgICAiJFFVY20gJExCMThOb25CcmVha3MgJENNKjsiCi0gICAg
IiRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7ICIKLSAgICAiJEJC
Y20gW14kQ0JdOyIKLSAgICAiJEJCY20gJExCMjBOb25CcmVha3MgJENNKjsiCi0gICAgIiRITGNt
ICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OyIKLSAgICAiJFNZY20gJEhMY207IgotICAgICIoJEFM
Y20gfCAkSExjbSkgJElOY207IgotICAgICIkQ00rICRJTmNtOyIKLSAgICAiJEVYY20gJElOY207
IgotICAgICIkSURjbSAkSU5jbTsiCi0gICAgIiRJTmNtICRJTmNtOyIKLSAgICAiJE5VY20gJElO
Y207IgotICAgICIkSURjbSAkUE9jbTsiCi0gICAgIiRBTGNtICROVWNtOyIKLSAgICAiJEhMY20g
JE5VY207IgotICAgICIkQ00rICROVWNtOyIKLSAgICAiJE5VY20gJEFMY207IgotICAgICIkTlVj
bSAkSExjbTsiCi0gICAgIiRQUmNtICRJRGNtOyIKLSAgICAiJFBSY20gKCRBTGNtIHwgJEhMY20p
OyIKLSAgICAiJFBPY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiKCRQUmNtIHwgJFBPY20pPyAo
JE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAk
Q1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87IgotICAgICIkSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRI
MmNtIHwgJEgzY20pOyIKLSAgICAiKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNtKTsiCi0g
ICAgIigkSlRjbSB8ICRIM2NtKSAkSlRjbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20g
fCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAk
SDJjbSB8ICRIM2NtKSAkUE9jbTsiCi0gICAgIiRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20g
fCAkSDJjbSB8ICRIM2NtKTsiCi0gICAgIigkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7
IgotICAgICIkQ00rICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRJU2NtICgkQUxjbSB8ICRITGNt
KTsiCi0gICAgIigkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNtOyIKLSAgICAiJENNKyAkT1Bj
bTsiCi0gICAgIiRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOyIKLSNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKLSAgICAiJFJJY20gJFJJY207IgotI2VuZGlmCi0gICAgIiRFbW9qaUZv
ck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgx
NFJldmVyc2UgPQotICAgICIhIXJldmVyc2U7IgotICAgICIkQ00rICRBTFBsdXM7IgotICAgICIk
Q00rICRCQTsiCi0gICAgIiRDTSsgJEJCOyIKLSAgICAiJENNKyAkQjI7IgotICAgICIkQ00rICRD
TDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkQ00rICRHTDsiCi0g
ICAgIiRDTSsgJEhMOyIKLSAgICAiJENNKyAkSFk7IgotICAgICIkQ00rICRIMjsiCi0gICAgIiRD
TSsgJEgzOyIKLSAgICAiJENNKyAkSUQ7IgotICAgICIkQ00rICRJTjsiCi0gICAgIiRDTSsgJElT
OyIKLSAgICAiJENNKyAkSkw7IgotICAgICIkQ00rICRKVjsiCi0gICAgIiRDTSsgJEpUOyIKLSAg
ICAiJENNKyAkTlM7IgotICAgICIkQ00rICROVTsiCi0gICAgIiRDTSsgJE9QOyIKLSAgICAiJENN
KyAkUE87IgotICAgICIkQ00rICRQUjsiCi0gICAgIiRDTSsgJFFVOyIKLSNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKyAkUkk7IgotI2VuZGlmCi0gICAgIiRDTSsgJFNZOyIK
LSAgICAiJENNKyAkV0o7IgotICAgICIkQ00rOyIKLSAgICAiJEFMX0ZPTExPVyAkQ00rIC8gKFsk
QksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFte
JE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsiCi0gICAgIlskUFJdIC8gJENNKyBbJEJLICRD
UiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOyIKLSAgICAiJExCNEJyZWFrcyBbJExCNE5vbkJyZWFr
cy0kQ01dOyIKLSAgICAiJExCNEJyZWFrcyAkQ00rICRDQU5fQ007IgotICAgICIkTEYgJENSOyIK
LSAgICAiWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJFNQICRaV10gJENN
KyAkQ0FOX0NNOyIKLSAgICAiJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZh
cj8gJEVtb2ppRm9yU2VxczsiCi0gICAgIiRDTSsgJENBTl9DTTsiCi0gICAgIiRDTSogJFdKICRD
TSogJENBTl9DTTsiCi0gICAgIiRDTSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIk
Q0FOVF9DTSAkQ00qICRXSjsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRXSjsiCi0gICAgIiRD
TSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOyIKLSAgICAiJENB
TlRfQ00gJENNKiAkR0w7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkR0w7IgotICAgICIkQ0wg
JENNKyAkQ0FOX0NNOyIKLSAgICAiJENQICRDTSsgJENBTl9DTTsiCi0gICAgIiRFWCAkQ00rICRD
QU5fQ007IgotICAgICIkSVMgJENNKyAkQ0FOX0NNOyIKLSAgICAiJFNZICRDTSsgJENBTl9DTTsi
Ci0gICAgIiRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENQIFskTEI4Tm9uQnJlYWtz
LSRDTV07IgotICAgICIkRVggWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRJUyBbJExCOE5v
bkJyZWFrcy0kQ01dOyIKLSAgICAiJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJENM
ICRDUCAkRVggJElTICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAiCi0gICAgIiRDTSogJENBTl9D
TSAkU1AqICRDTSogJE9QOyIKLSAgICAiJENBTlRfQ00gJFNQKiAkQ00qICRPUDsiCi0gICAgIiRB
TF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAkT1A7IgotICAgICIkQUxfRk9MTE9XX05PQ00g
JENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAk
Q00qICRPUDsiCi0gICAgIiRTWSAkQ00gJFNQKyAkT1A7IgotICAgICIkQ00qICRPUCAkU1AqICRD
TSogJFFVOyIKLSAgICAiJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJENN
KiAkQjIgJFNQKiAkQ00qICRCMjsiCi0gICAgIiRDTSogJFFVICRDTSogJENBTl9DTTsiCi0gICAg
IiRDTSogJFFVICRMQjE4Tm9uQnJlYWtzOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFFVOyIK
LSAgICAiJENBTlRfQ00gJENNKiAkUVU7IgotICAgICIkQ00qICgkQkEgfCAkSFkgfCAkTlMpICRD
TSogWyRMQjIwTm9uQnJlYWtzLSRDTV07IgotICAgICIkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01d
ICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogKCRI
WSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIkQ00qICRITCAkQ00qICRTWTsiCi0gICAgIiRDTSog
JElOICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAkSU4gJENNKiAkRVg7IgotICAg
ICIkQ00qICRJTiAkQ00qICRJRDsiCi0gICAgIiRDTSogJElOICRDTSogJElOOyIKLSAgICAiJENN
KiAkSU4gJENNKiAkTlU7IgotICAgICIkQ00qICRQTyAkQ00qICRJRDsiCi0gICAgIiRDTSogJE5V
ICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAk
TlU7IgotICAgICIkQ00qICRJRCAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwp
ICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87IgotICAgICIo
JENNKiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8
ICRTWSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87
IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOyIKLSAgICAiJENN
KiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOyIKLSAgICAiJENNKiAkSlQgJENNKiAoJEgz
IHwgJEpUKTsiCi0gICAgIiRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRK
TCk7IgotICAgICIkQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIK
LSAgICAiJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsiCi0gICAg
IiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAo
JEFMUGx1cyB8ICRITCkgJENNKiAkSVM7IgotICAgICIkQ00qICRPUCAkQ00qICgkQUxQbHVzIHwg
JEhMIHwgJE5VKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOyIK
LSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKiAkUkkgJENNKiAkUkk7Igot
I2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyI7Ci0KLXN0
YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVGb3J3YXJkID0KLSAgICAiISFzYWZlX2ZvcndhcmQ7
IgotICAgICJbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9u
YXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07
IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciog
dWF4MTRTYWZlUmV2ZXJzZSA9Ci0gICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAiJENNKyBbXiRD
TSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07IgotICAgICIkQ00rICRTUCAvIC47IgotICAgICIk
U1ArICRDTSogJE9QOyIKLSAgICAiJFNQKyAkQ00qICRRVTsiCi0gICAgIiRTUCsgJENNKiAoJENM
IHwgJENQKTsiCi0gICAgIiRTUCsgJENNKiAkQjI7IgotICAgICIkQ00qICgkSFkgfCAkQkEpICRD
TSogJEhMOyIKLSAgICAiKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsiCi0gICAgIigkQ0wg
fCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlv
bmFyeTsiOwotCiBzdGF0aWMgU3RyaW5nIG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKExpbmVC
cmVha0l0ZXJhdG9yTW9kZSBtb2RlLCBib29sIGlzQ0pLKQogewotICAgIFN0cmluZ0J1aWxkZXIg
cnVsZXNCdWlsZGVyOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRQcm9sb2d1ZSk7Ci0g
ICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1lbnRzQmVmb3JlKTsKICAgICBzd2l0
Y2ggKG1vZGUpIHsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6RGVmYXVsdDoKLSAg
ICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21E
ZWZhdWx0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25DSkspOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
S1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGlu
ZUJyZWFrSXRlcmF0b3JNb2RlOjpMb29zZToKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChp
c0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZUNKSyA6IHVheDE0QXNzaWdubWVudHND
dXN0b21Mb29zZU5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksg
PyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZU5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpO
b3JtYWw6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1l
bnRzQ3VzdG9tTm9ybWFsQ0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
UnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OlN0cmljdDoKLSAgICAgICAg
cnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RD
SksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7
CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSktS
dWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsKICAgICB9Ci0g
ICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIpOwotICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQodWF4MTRGb3J3YXJkKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVh
eDE0UmV2ZXJzZSk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVGb3J3YXJkKTsK
LSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2FmZVJldmVyc2UpOwotICAgIHJldHVybiBy
dWxlc0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gIiI7CiB9CiAKIC8vIFJlY29nbml6ZSBCQ1A0NyBjb21wbGlhbnQgcHJpbWFyeSBsYW5n
dWFnZSB2YWx1ZXMgb2YgJ3poJywgJ2phJywgJ2tvJwpAQCAtNzg4LDkgKzI1NCwyOSBAQCBUZXh0
QnJlYWtJdGVyYXRvciogb3BlbkxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYg
bG9jYWxlLCBMaW5lQnJlYWtJdAogICAgIGlmIChtb2RlID09IExpbmVCcmVha0l0ZXJhdG9yTW9k
ZTo6RGVmYXVsdCkKICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBsb2Nh
bGVJc0VtcHR5ID8gY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkgOiBsb2NhbGUuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOwogICAgIGVsc2UgewotICAgICAgICBV
UGFyc2VFcnJvciBwYXJzZVN0YXR1czsKLSAgICAgICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVy
YXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsKLSAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29w
ZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcnVsZXMu
bGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0dXMpOworICAgICAgICBCcmVh
a2luZ1J1bGVTZXQgcnVsZVNldCA9IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks7CisgICAg
ICAgIHN3aXRjaCAobW9kZSkgeworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6
RGVmYXVsdDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6
VUFYMTRDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpMb29zZToKKyAgICAgICAg
ICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZUNKSyA6IEJy
ZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZU5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6Tm9ybWFsOgorICAgICAgICAgICAgcnVs
ZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbENKSyA6IEJyZWFraW5n
UnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OlN0cmljdDoKKyAgICAgICAgICAgIHJ1bGVTZXQg
PSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3RDSksgOiBCcmVha2luZ1J1bGVT
ZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQocnVs
ZVNldCkpCisgICAgICAgICAgICB1YnJrSXRlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8VUJyZWFrSXRl
cmF0b3IqPihpdGVyYXRvcik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgVVBhcnNlRXJy
b3IgcGFyc2VTdGF0dXM7CisgICAgICAgICAgICBhdXRvIHJ1bGVzID0gbWFwTGluZUl0ZXJhdG9y
TW9kZVRvUnVsZXMobW9kZSwgaXNDSkspOworICAgICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29w
ZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcnVsZXMu
bGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0dXMpOworICAgICAgICB9CiAg
ICAgfQogICAgIC8vIGxvY2FsZSBjb21lcyBmcm9tIGEgd2ViIHBhZ2UgYW5kIGl0IGNhbiBiZSBp
bnZhbGlkLCBsZWFkaW5nIElDVQogICAgIC8vIHRvIGZhaWwsIGluIHdoaWNoIGNhc2Ugd2UgZmFs
bCBiYWNrIHRvIHRoZSBkZWZhdWx0IGxvY2FsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFr
SXRlcmF0b3IuaAppbmRleCA4YWZiNTU4MDIwMTAwMmJiZDJlZGQ1NzU2NWJjMzQxYjFhMDA2YTll
Li45NGZmN2Q2MDUzNzQ0ODNiNzUzZDBiNWRhYmQ3NDZjZWNlMDJlNDFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCkBAIC0zMSw2ICszMSwzMCBAQCBjbGFzcyBUZXh0
QnJlYWtJdGVyYXRvcjsKIAogZW51bSBjbGFzcyBMaW5lQnJlYWtJdGVyYXRvck1vZGUgeyBEZWZh
dWx0LCBMb29zZSwgTm9ybWFsLCBTdHJpY3QgfTsKIAorZW51bSBjbGFzcyBCcmVha2luZ1J1bGVT
ZXQgeworICAgIEN1cnNvck1vdmVtZW50LAorICAgIFVBWDE0Q0pLLAorICAgIFVBWDE0Tm9uQ0pL
LAorICAgIFVBWDE0TG9vc2VDSkssCisgICAgVUFYMTRMb29zZU5vbkNKSywKKyAgICBVQVgxNE5v
cm1hbENKSywKKyAgICBVQVgxNE5vcm1hbE5vbkNKSywKKyAgICBVQVgxNFN0cmljdENKSywKKyAg
ICBVQVgxNFN0cmljdE5vbkNKSworfTsKKworZXh0ZXJuIGNvbnN0IGNoYXIqIGN1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
bkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZUNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3ROb25DSktSdWxlczsKKworVGV4dEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJh
dG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpOworCiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8g
Y2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRv
CiAvLyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0
aGlzIGNhbiBiZSBkaWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlz
IFRoYWkgcHJlcGVuZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMu
bW0KaW5kZXggYmVmNWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVlOGU4OGEzODkyYy4uMmFlY2Yw
OWU4MjU0NGM2NmI3ZDFjMWU1YWFhYzY0ZjVmZmYzMDJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1t
CkBAIC0yMSwxMiArMjEsMTIwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0
b3IuaCIKKworI2lmIGRlZmluZWQoVV9TSE9XX0NQTFVTUExVU19BUEkpCisjdW5kZWYgVV9TSE9X
X0NQTFVTUExVU19BUEkKKyNlbmRpZgorI2RlZmluZSBVX1NIT1dfQ1BMVVNQTFVTX0FQSSAxCisK
KyNpbmNsdWRlIDx1bmljb2RlL3JiYmkuaD4KKyNpbmNsdWRlIDx1bmljb2RlL3VkYXRhLmg+Cisj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCitAaW50ZXJmYWNlIFdURkJ1bmRsZUZpbmRl
ciA6IE5TT2JqZWN0CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXVEZCdW5kbGVGaW5kZXIKK0Bl
bmQKKwogbmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdCBpbnQgbWF4TG9jYWxlU3RyaW5n
TGVuZ3RoID0gMzI7CiAKK3N0cnVjdCBSdWxlQ2FjaGUgeworICAgIHN0ZDo6dW5pcXVlX3B0cjxS
dWxlQmFzZWRCcmVha0l0ZXJhdG9yPiBpdGVyYXRvcjsKKyAgICBib29sIGZhaWxlZCB7IGZhbHNl
IH07Cit9OworCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJy
ZWFraW5nUnVsZVNldCBydWxlU2V0KQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxl
Q2FjaGU+IGN1cnNvck1vdmVtZW50SXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTRDSktJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNE5vbkNKS0l0ZXJhdG9yOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0TG9vc2VDSktJdGVy
YXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgx
NExvb3NlTm9uQ0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNo
ZT4gbGluZUJyZWFrVUFYMTROb3JtYWxDSktJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNE5vcm1hbE5vbkNKS0l0ZXJhdG9yOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0U3RyaWN0Q0pL
SXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFr
VUFYMTRTdHJpY3ROb25DSktJdGVyYXRvcjsKKworICAgIE5TU3RyaW5nICpmaWxlTmFtZUJhc2U7
CisgICAgUnVsZUNhY2hlKiBjYWNoZSA9IG51bGxwdHI7CisKKyAgICBzd2l0Y2ggKHJ1bGVTZXQp
IHsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQ6CisgICAgICAgIGZp
bGVOYW1lQmFzZSA9IEAiQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzIjsKKyAgICAgICAgY2Fj
aGUgPSAmY3Vyc29yTW92ZW1lbnRJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBA
IkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtV
QVgxNENKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5n
UnVsZVNldDo6VUFYMTROb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vbkNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0Tm9u
Q0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxl
U2V0OjpVQVgxNExvb3NlQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0TG9v
c2VDSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1
bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFr
VUFYMTRMb29zZU5vbkNKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9
IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSyI7CisgICAgICAgIGNhY2hlID0gJmxp
bmVCcmVha1VBWDE0Tm9ybWFsQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzoKKyAgICAgICAgZmlsZU5h
bWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLIjsKKyAgICAgICAg
Y2FjaGUgPSAmbGluZUJyZWFrVUFYMTROb3JtYWxOb25DSktJdGVyYXRvci5nZXQoKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Q0pLOgorICAg
ICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksiOwor
ICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNFN0cmljdENKS0l0ZXJhdG9yLmdldCgpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3ROb25D
Sks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0U3RyaWN0Tm9uQ0pLSXRl
cmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEFTU0VSVChjYWNoZSk7
CisKKyAgICBpZiAoY2FjaGUtPmZhaWxlZCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICBpZiAoIWNhY2hlLT5pdGVyYXRvcikgeworICAgICAgICBOU0J1bmRsZSAqYnVuZGxlID0gW05T
QnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXVEZCdW5kbGVGaW5kZXIgY2xhc3NdXTsKKyAgICAgICAg
TlNTdHJpbmcgKnBhdGggPSBbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpmaWxlTmFtZUJhc2Ugb2ZU
eXBlOkAiYnJrIiBpbkRpcmVjdG9yeTpAIkJyZWFraW5nUnVsZXMiXTsKKyAgICAgICAgaWYgKCFw
YXRoKSB7CisgICAgICAgICAgICBjYWNoZS0+ZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgTlNTdHJpbmcgKmRpcmVjdG9yeSA9
IFtwYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF07CisgICAgICAgIFVFcnJv
ckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAgICAgICBMb2NhbFVEYXRhTWVtb3J5
UG9pbnRlciBkYXRhKHVkYXRhX29wZW4oW2RpcmVjdG9yeSBVVEY4U3RyaW5nXSwgImJyayIsIFtm
aWxlTmFtZUJhc2UgVVRGOFN0cmluZ10sICZlcnJvckNvZGUpKTsKKyAgICAgICAgaWYgKGVycm9y
Q29kZSAhPSBVX1pFUk9fRVJST1IpIHsKKyAgICAgICAgICAgIGNhY2hlLT5mYWlsZWQgPSB0cnVl
OworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBjYWNo
ZS0+aXRlcmF0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+KGRh
dGEub3JwaGFuKCksIGVycm9yQ29kZSk7CisgICAgICAgIGlmIChlcnJvckNvZGUgIT0gVV9aRVJP
X0VSUk9SKSB7CisgICAgICAgICAgICBjYWNoZS0+ZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAg
IGNhY2hlLT5pdGVyYXRvciA9IG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRleHRCcmVh
a0l0ZXJhdG9yKj4oc3RkOjptYWtlX3VuaXF1ZTxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPigqY2Fj
aGUtPml0ZXJhdG9yKS5yZWxlYXNlKCkpOworfQorCiBzdGF0aWMgaW5saW5lIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gdGV4dEJyZWFrTG9jYWxlUHJlZmVyZW5jZSgpCiB7CiAgICAgUmV0YWluUHRy
PENGUHJvcGVydHlMaXN0UmVmPiBsb2NhbGUgPSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5VmFs
dWUoQ0ZTVFIoIkFwcGxlVGV4dEJyZWFrTG9jYWxlIiksCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21h
a2UvV2ViS2l0RlMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKaW5kZXggMjlh
MDk2OTAzOGZhYTc0NGUxYThjNThmMzU2YWQwNzNmMDA1MjViZC4uODFmNTRhNTZhZDY5NTNkN2Ix
ZTIwYzg4ZmE4NWJiZGRkMWYwN2U4YyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdEZT
LmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQpAQCAtMjQsNiArMjQsNyBA
QCBpZiAoTk9UIFRPT0xTX0RJUikKIGVuZGlmICgpCiAKIHNldChERVJJVkVEX1NPVVJDRVNfRElS
ICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzIikKK3NldChERVJJVkVEX1NPVVJD
RVNfV1RGX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XVEYiKQogc2V0
KERFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0v
RGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJD
T1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJDb3JlIikKIHNl
dChERVJJVkVEX1NPVVJDRVNfV0VCS0lUTEVHQUNZX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9E
ZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3kiKQpAQCAtMzIsNiArMzMsOCBAQCBzZXQoREVSSVZF
RF9TT1VSQ0VTX1dFQktJVDJfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVIgIiR7Q01B
S0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9yVUkiKQogCiBmaWxlKE1B
S0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0pCitmaWxl
KE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9KQorZmlsZShNQUtFX0RJ
UkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzKQogZmlsZShN
QUtFX0RJUkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lKQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BF
Q1RPUlVJX0RJUn0pCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMWNm
YWRiNTM3YzI3YjNjZmQ5ZDZlZjc3NWVlZWQyN2UyYjFmYzBkNS4uODEyOTk4YTE0ZDMyMjNmMWY5
MjcyZTgzY2U3NGZmYzk1MTRhN2ZmNCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE2LTEyLTE0ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJQ1UgYnJlYWtpbmcgaXRlcmF0
b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdEZTLmNt
YWtlOgorCiAyMDE2LTEyLTEwICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5y
dT4KIAogICAgICAgICBbY21ha2VdIEluY2x1ZGUgV1RGLCBKU0MsIGFuZCBXZWJDb3JlIGhlYWRl
cnMgYXV0b21hdGljYWxseSB0byB0YXJnZXJzIHVzaW5nIHRoZW0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297155</attachid>
            <date>2016-12-14 18:41:47 -0800</date>
            <delta_ts>2016-12-15 11:23:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20161214184055.patch</filename>
            <type>text/plain</type>
            <size>292202</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NGViZjQ3NGFkODg3OWY2MjRjOWI5MzAwYTVhNzQ4YzkzMTY5MDYzLi4wN2VhOGJiNWFlN2M1YmNi
NzJkMjYyZGI2MTE0ZDg1NTdjYjdjM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNi0xMi0xNCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbmNsdWRlIHRoZSBieXRlY29kZSBmaWxlcyBpbnNpZGUgdGhl
IEphdmFTY3JpcHRDb3JlIGJ1bmRsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMTItMTQgIEtlaXRoIE1pbGxlciAgPGtlaXRo
X21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViQXNzZW1ibHkgSlMgQVBJOiBpbXBsZW1l
bnQgR2xvYmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCmluZGV4IDk1OTcwOTMzMzA4YmM2MWJhZDQzOWE0ZDYzMTNmYjQ4ZDMxZDQyODcu
LjI3MTdlYjI5NzE3YTY2MWM0OWE2YmM1MTY0ZjJjMGRmMzY5MzdmZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
ODQgQEAKKzIwMTYtMTItMTQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KKworICAgICAgICBDb21waWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGlt
ZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIG1hY09TIGFuZCBpT1MgU0RLcyBpbmNsdWRlIGEgdG9vbCwgaWN1
Z2VuYnJrLCB3aGljaCBjb21waWxlcyBJQ1UgYnJrIGJyZWFraW5nCisgICAgICAgIHJ1bGVzIGlu
dG8gYnl0ZWNvZGUuIFByZXZpb3VzbHksIHRoaXMgY29tcGlsYXRpb24gd2FzIGRvbmUgYXQgcnVu
dGltZSBpbnNpZGUgdGhlIElDVQorICAgICAgICB1YnJrX29wZW5SdWxlcygpIGZ1bmN0aW9uLiBN
b3ZpbmcgdGhpcyBjb21waWxhdGlvbiBzdGVwIHRvIGNvbXBpbGUgdGltZSByYXRoZXIgdGhhbgor
ICAgICAgICBidWlsZCB0aW1lIGNhdXNlcyBhIHBlcmZvcm1hbmNlIGJvb3N0LgorCisgICAgICAg
IFByZXZpb3VzbHksIHRoZSBzb3VyY2UgZm9yIHRoZSBicmVha2luZyBydWxlcyB3YXMgYXNzZW1i
bGVkIGJ5IGNvbmNhdGVuYXRpbmcgQyBzdHJpbmdzCisgICAgICAgIGF0IHJ1bnRpbWUuIE5vdywg
dGhlIHNvdXJjZSBpcyBjb250YWluZWQgd2l0aGluIGEgZmV3IHRleHQgZmlsZXMgaW5zaWRlCisg
ICAgICAgIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMuIEEgYnVpbGQgc3RlcCAodXNpbmcgYSBNYWtl
ZmlsZSkgd2lsbCBnZW5lcmF0ZSBzb3VyY2UgY29kZQorICAgICAgICBjb250YWluaW5nIHRoZXNl
IHN0cmluZ3MsIGFuZCBXVEYgd2lsbCBpbmNsdWRlIHRoZXNlIHNvdXJjZSBmaWxlcyBpbiB0aGUg
c2FtZSB3YXkgYW55CisgICAgICAgIG9mIG91ciBwcm9qZWN0cyB1c2UgZ2VuZXJhdGVkIHNvdXJj
ZXMuIEhvd2V2ZXIsIGFkZGl0aW9uYWxseSwgb24gT1NlcyB3aGljaCBzdXBwb3J0IGl0LAorICAg
ICAgICB0aGVzZSBzdHJpbmdzIGdldCBjb21waWxlZCBkaXJlY3RseSBpbnRvIElDVSBieXRlY29k
ZSwgYW5kIHRoZW4gaW5jbHVkZWQgaW4gdGhlCisgICAgICAgIGZyYW1ld29yayBidW5kbGUuIEJl
Y2F1c2UgV1RGIGdldHMgc3RhdGljYWxseSBsaW5rZWQgaW50byBKYXZhU2NyaXB0Q29yZSwgdGhp
cyBpcyB0aGUKKyAgICAgICAgYnVuZGxlIHdoaWNoIGluY2x1ZGVzIHRoZSBieXRlY29kZSBmaWxl
cy4KKworICAgICAgICBBdCBydW50aW1lLCB3ZSBmaXJzdCBjaGVjayBpZiB3ZSBoYXZlIGEgZmls
ZSBpbiBvdXIgYnVuZGxlIG9mIHRoZSBhcHByb3ByaWF0ZSBuYW1lLAorICAgICAgICBhbmQgdGhl
biBzZWUgaWYgSUNVIGNhbiBvcGVuIGl0IHVzaW5nIGl0cyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
IGludGVyZmFjZSAod2hpY2gKKyAgICAgICAgaW5jbHVkZXMgYSB2ZXJzaW9uIGNoZWNrKS4gSWYg
YW55IG9mIHRoZXNlIGNoZWNrcyBmYWlsLCBvciBpZiB3ZSdyZSBvbiBhIHBvcnQgd2hpY2gKKyAg
ICAgICAgZG9lc24ndCBoYXZlIHRoZSBub3Rpb24gb2YgYnVuZGxlcywgd2Ugd2lsbCB1c2UgdGhl
IEMgc3RyaW5ncyBnZW5lcmF0ZWQgYWJvdmUsIGFuZAorICAgICAgICBwYXNzIHRoZW0gdG8gdWJy
a19vcGVuUnVsZXMoKSB0aGUgc2FtZSB3YXkgd2Ugd2VyZSBkb2luZyBiZWZvcmUgdGhpcyBwYXRj
aC4KKworICAgICAgICBUaGUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBpbnRlcmZhY2UgaW4gSUNV
IHJlcXVpcmVzIGFkZGluZyBzb21lIG1vcmUgb2YgSUNVJ3MgcHVibGljCisgICAgICAgIGhlYWRl
cnMgaW50byBXZWJLaXQuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBpY3UvdW5pY29kZS9icmtpdGVyLmg6IEFkZGVkLgorICAgICAgICAoQnJl
YWtJdGVyYXRvcjo6aXNCdWZmZXJDbG9uZSk6CisgICAgICAgICogaWN1L3VuaWNvZGUvY2hhcml0
ZXIuaDogQWRkZWQuCisgICAgICAgIChGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I6Om9wZXJhdG9y
IT0pOgorICAgICAgICAoQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvU3RhcnQpOgorICAgICAgICAo
Q2hhcmFjdGVySXRlcmF0b3I6OnNldFRvRW5kKToKKyAgICAgICAgKENoYXJhY3Rlckl0ZXJhdG9y
OjpzdGFydEluZGV4KToKKyAgICAgICAgKENoYXJhY3Rlckl0ZXJhdG9yOjplbmRJbmRleCk6Cisg
ICAgICAgIChDaGFyYWN0ZXJJdGVyYXRvcjo6Z2V0SW5kZXgpOgorICAgICAgICAoQ2hhcmFjdGVy
SXRlcmF0b3I6OmdldExlbmd0aCk6CisgICAgICAgICogaWN1L3VuaWNvZGUvbG9jaWQuaDogQWRk
ZWQuCisgICAgICAgIChMb2NhbGU6Om9wZXJhdG9yIT0pOgorICAgICAgICAoTG9jYWxlOjpnZXRD
b3VudHJ5KToKKyAgICAgICAgKExvY2FsZTo6Z2V0TGFuZ3VhZ2UpOgorICAgICAgICAoTG9jYWxl
OjpnZXRTY3JpcHQpOgorICAgICAgICAoTG9jYWxlOjpnZXRWYXJpYW50KToKKyAgICAgICAgKExv
Y2FsZTo6Z2V0TmFtZSk6CisgICAgICAgIChMb2NhbGU6OmlzQm9ndXMpOgorICAgICAgICAqIGlj
dS91bmljb2RlL3JiYmkuaDogQWRkZWQuCisgICAgICAgIChSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
OjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBpY3UvdW5pY29kZS9zY2hyaXRlci5oOiBBZGRlZC4K
KyAgICAgICAgKiBpY3UvdW5pY29kZS91Y2FzZW1hcC5oOiBBZGRlZC4KKyAgICAgICAgKiBpY3Uv
dW5pY29kZS91Y2hyaXRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBpY3UvdW5pY29kZS91ZGF0YS5o
OiBBZGRlZC4KKyAgICAgICAgKiBpY3UvdW5pY29kZS91bWlzYy5oOiBBZGRlZC4KKyAgICAgICAg
KiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U6
IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6
CisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxv
Z3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclByb2xvZ3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZU5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ6IEFkZGVk
LgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0
ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KToKKyAg
ICAgICAgKFdURjo6Y3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjayk6Cisg
ICAgICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3IpOgorICAgICAgICAoV1RGOjptYXBM
aW5lSXRlcmF0b3JNb2RlVG9SdWxlcyk6CisgICAgICAgIChXVEY6Om9wZW5MaW5lQnJlYWtJdGVy
YXRvcik6CisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDoKKyAgICAgICAg
KiB3dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbToKKyAgICAg
ICAgKFdURjo6Y3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KToKKwogMjAxNi0xMi0xNCAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjIwOTc5NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGMy
NDQzYWQxNDJmMDM3YWVjNzdjZWE5NTFhNDYzYzI1YWUwNjE0Yi4uOTI0NDY5ODA1NDY0ZWU4MmM5
OWQ2NWQ5NzJkODIxYzljZjRiYTE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTEyMDYsNiArMTIwNiw3IEBACiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmlu
Z1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTg4MjZCMTY1
M0M0Q0QxQTY0Mjk4M0IgLyogVGVtcGxhdGVSZWdpc3RyeUtleVRhYmxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhCNDdGMjM0MzY2QzRCNzJBQzg1
MkE3RSAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5VGFibGUuY3BwICovOyB9OwogCQkxQUNGNzM3NzE3
MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgKi87
IH07CisJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFENTU5NjEy
MDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFBNzAwOTFF
RTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5l
ci5jcHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5l
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1
QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2MkQ4NUI2
MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQxQzBENjUw
RjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07CkBAIC0z
NTkwLDYgKzM1OTEsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFzZS54Y2Nv
bmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYgLyogSmF2
YVNjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQxQkNGRiAv
KiBKYXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZh
U2NyaXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4RjFENTU5
NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7IHBhdGgg
PSAuLi9XVEYvQnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYw
MEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9p
bmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZBQ0I2MSAv
KiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0aCA9IGIz
L2Fpci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTkwNyw2ICs1OTA5LDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAwNzY5RTU0
IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8s
CiAJCQkJQUQyRkNDMEExREI1OUM1OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9y
Q29uc3RydWN0b3IubHV0LmggKi8sCiAJCQkJQUQyRkNDMEIxREI1OUM1OTAwQjNFNzM2IC8qIFdl
YkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlLmx1dC5oICovLAogCQkJCUFEMkZDQzBDMURC
NTlDNTkwMEIzRTczNiAvKiBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IubHV0LmggKi8s
CkBAIC05MjYwLDYgKzkyNjMsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
IAkJCWZpbGVzID0gKAogCQkJCUE1M0YxQUMwMThDOTBGOEYwMDcyRUI2RCAvKiBmcmFtZXdvcmsu
c2IgaW4gUmVzb3VyY2VzICovLAorCQkJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVh
a2luZ1J1bGVzIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGQ5ZTI1OTZlNThhZWY1NzNjNzM4Y2FjOGE3NDU1ZGE1NTc1MzIyNWIu
LjhlOTYwNDAzYzU1YTA3ZTVmYjIyYjM2N2QyYTM4ZDk4NTRiOTM4MTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNyw2ICs3LDE3IEBACiAJb2JqZWN0cyA9
IHsKIAogLyogQmVnaW4gUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KKwkJMUNEMTg3ODEx
RDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEFn
Z3JlZ2F0ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxQ0QxODc4MzFENTU2
OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQkxQ0Qx
ODc4MjFENTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovLAorCQkJ
KTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNl
cyI7CisJCQlwcm9kdWN0TmFtZSA9ICJDb3B5IFdURiBIZWFkZXJzIjsKKwkJfTsKIAkJNjVBRkEx
NkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhBZ2dyZWdhdGVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNjVBRkEyODgx
NjMwQjk3NzAwM0Q3MjNDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVn
YXRlVGFyZ2V0ICJDb3B5IFdURiBIZWFkZXJzIiAqLzsKQEAgLTg0LDcgKzk1LDYgQEAKIAkJMTQ0
N0FFQzYxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQzUxOEZDRTU3NzAw
QjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OwogCQkxNDQ3QUVDNzE4RkNFNTgw
MDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi87IH07
CiAJCTE0NDdBRUM5MThGQ0U1OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDODE4RkNFNTk0MDBCM0Q3
RkYgLyogbWJtYWxsb2MuY3BwICovOyB9OwotCQkxNDQ3QUVDQjE4RkNFNUI5MDBCM0Q3RkYgLyog
bGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICov
OyB9OwogCQkxNDY5NDE5MjE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDY5NDE5MDE2RUFBRjZE
MDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
KTsgfTsgfTsKIAkJMTQ2OTQxOTMxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTkx
MTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXJDRi5jcHAgKi87IH07CiAJCTE0Njk0MTk2
MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTk0MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hl
ZHVsZVBhaXIuaCAqLzsgfTsKQEAgLTMzNyw2ICszNDcsMTYgQEAKIAkJQThBNDc0OEMxNTFBODI2
NDAwNDEyM0ZGIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThBNDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovOyB9Owog
CQlBRDdDNDM0QjFERDJBNEE3MDAyNjg4OEIgLyogRXhwZWN0ZWQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEN0M0MzRBMUREMkE0QTcwMDI2ODg4QiAv
KiBFeHBlY3RlZC5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVy
ZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovOyB9OworCQlD
MkJBNTQzRTFENTg2QUY0MDAwQTMzMzIgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIz
RDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZC
OTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBD
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMy
Q0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25D
SksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJD
QTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNK
Sy5jcHAgKi87IH07CisJCUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJ
CUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMy
Q0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LmNwcCAqLzsgfTsKKwkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICovOyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIx
NUQgLyogU3RvcHdhdGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJ
CUM4QjBFMUExRTAxQTQ4NkVCOTVFMEQxMSAvKiBJbmRleFNldC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzN0UxRDdEQkQ4NEFDMzhGQUU0RDM0IC8q
IEluZGV4U2V0LmggKi87IH07CiAJCUM5MTZCOTc1RjAyRjRGN0U4QjRBQjEyRCAvKiBJbmRleE1h
cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUI0MzM4
M0E1RDBCNDYzQzk0MzNEOTMzIC8qIEluZGV4TWFwLmggKi87IH07CkBAIC0zNzEsNiArMzkxLDEz
IEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NjsK
IAkJCXJlbW90ZUluZm8gPSBXVEY7CiAJCX07CisJCTFDRDE4Nzg3MUQ1NTY5ODgwMENDN0RFQyAv
KiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CisJCQlpc2EgPSBQQlhDb250YWluZXJJdGVt
UHJveHk7CisJCQljb250YWluZXJQb3J0YWwgPSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyog
UHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94eVR5cGUgPSAxOworCQkJcmVtb3RlR2xvYmFsSURT
dHJpbmcgPSAxQ0QxODc4MTFENTU2OTVDMDBDQzdERUM7CisJCQlyZW1vdGVJbmZvID0gIkRlcml2
ZWQgU291cmNlcyI7CisJCX07CiAJCTY1QUZBMjhEMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhDb250
YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CiAJ
CQljb250YWluZXJQb3J0YWwgPSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBv
YmplY3QgKi87CkBAIC00ODIsNiArNTA5LDE4IEBACiAJCTFDMTgxQzhEMUQzMDdBQjgwMEY1RkEx
NiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUMxODFDOEUxRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVVGV4dFByb3ZpZGVyVVRGMTYuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMxODFDOTUxRDMwODAwQTAwRjVGQTE2IC8qIFRl
eHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOyBwYXRo
ID0gbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTUxRDU1
OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NjFENTU5QTkwMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQ0I0RkI5NzFENTU5QUE4MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5
ODFENTU5QUQyMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUz
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQ0I0RkI5QjFENTU5QjNFMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
QjRGQjlDMUQ1NTlCNjcwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERl
cml2ZWRTb3VyY2VzLm1ha2UgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnhtbDsgbmFtZSA9IERlcml2ZWRTb3VyY2VzLm1ha2U7IHBhdGggPSB3
dGYvRGVyaXZlZFNvdXJjZXMubWFrZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdXNlc1RhYnMg
PSAxOyB9OworCQkxQ0QxODc5MjFENTU5OEUxMDBDQzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc5MzFENTU5OTY1MDBDQzdERUMgLyogTGlu
ZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJy
ZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFG
QTQ3Qzg4MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRkE0N0M4OTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVh
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MTQ3QjA4MTVERENDREMwMEREQjkwNyAvKiBJ
bnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTcxMSw2ICs3NTAsMTYgQEAKIAkJQThBNDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNv
bmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ3QzQzNEExREQyQTRBNzAwMjY4ODhCIC8qIEV4cGVj
dGVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4cGVjdGVkLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0
dXJlRGVmaW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJlRGVm
aW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkJBNTQzRjFENTg3NEU2MDAw
QTMzMzIgLyogR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRo
ID0gR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0Ez
N0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBw
YXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHA7
IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwOyBwYXRo
ID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7IHBhdGggPSBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgcGF0
aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwOyBw
YXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5j
cHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25D
SksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNEY4QTkzNjE5QzY1RUI0MDBC
MkIxNUQgLyogU3RvcHdhdGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAz
MDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1lZGlhVGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5
N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03
NDIsNyArNzkxLDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxl
cyA9ICgKIAkJCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdv
cmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCQkxNDQ3QUVDQjE4RkNFNUI5MDBCM0Q3RkYgLyogbGli
aWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovLAorCQkJCUMyQkE1NDNFMUQ1ODZBRjQwMDBB
MzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMTQ0N0FFQzcx
OEZDRTU4MDAwQjNEN0ZGIC8qIGxpYldURi5hIGluIEZyYW1ld29ya3MgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC03NzksNiArODI4LDI1
IEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
MUNEMTg3OTExRDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQkE1NDNGMUQ1ODc0RTYwMDBBMzMz
MiAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8sCisJCQkJMUNEMTg3OTIxRDU1
OThFMTAwQ0M3REVDIC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8sCisJCQkJ
MUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0
ICovLAorCQkJCTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTcx
RDU1OUFBODAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQg
Ki8sCisJCQkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksudHh0ICovLAorCQkJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QTFENTU5
QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8sCisJ
CQkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksudHh0ICovLAorCQkJCTFDQjRGQjlDMUQ1NTlCNjcwMEY5RkUzOCAvKiBMaW5lQnJl
YWtJdGVyYXRvckVwaWxvZ3VlLnR4dCAqLywKKwkJCSk7CisJCQlwYXRoID0gQnJlYWtpbmdSdWxl
czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFGQTQ3Qzg3MTUyNTAyREEw
MDU2OEQxQiAvKiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApAQCAtODAwLDEwICs4NjgsMTIgQEAKIAkJNUQyNDdCNTcxNDY4OUI4NjAwRTc4Qjc2ID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc4QTFENTU4QUQz
MDBDQzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKIAkJCQk1RDI0N0I2RDE0Njg5QzQ3
MDBFNzhCNzYgLyogQ29uZmlndXJhdGlvbnMgKi8sCiAJCQkJMTQwMjJGM0YxOEY1QzNFNTAwN0ZG
MEVCIC8qIExpYnJhcmllcyAqLywKIAkJCQk1RDI0N0I2MzE0Njg5Qjg2MDBFNzhCNzYgLyogUHJv
ZHVjdHMgKi8sCiAJCQkJNUQyNDdCNzYxNDY4OUQ3NjAwRTc4Qjc2IC8qIFNvdXJjZSAqLywKKwkJ
CQlDMkNBMzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0
NDdBRUM1MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKIAkJCQkx
NDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLywKIAkJCSk7CkBA
IC0xMTYyLDYgKzEyMzIsNyBAQAogCQlBOEE0NzMxQjE1MUE4MjVCMDA0MTIzRkYgLyogdGV4dCAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OTEx
RDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJQTVCQTE1RjYxODI0MzU5
RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3Ug
Ki8sCiAJCQkJQTVCQTE1RjExODI0MzM5RjAwQTgyRTY5IC8qIG1hYyAqLywKQEAgLTEyMzksNiAr
MTMxMCwyMyBAQAogCQkJcGF0aCA9IGljdTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQ0EzN0UwMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovLAorCQkJCUMy
Q0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAq
LywKKwkJCQlDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNDFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi8sCisJCQkJQzJD
QTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
Y3BwICovLAorCQkJCUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTgx
RDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3Bw
ICovLAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXBhdGggPSBEZXJp
dmVkU291cmNlcy9XVEY7CisJCQlzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOworCQl9
OwogCQlDRTQ2NTE2QzE5REIxRkI0MDAzRUNBMDUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTU3MCw2ICsxNjU4LDcgQEAKIAkJCWJ1aWxk
UnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTFDRDE4Nzg4MUQ1NTY5
ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTY1QUZBMjhFMTYzMEI5
OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBX
VEY7CkBAIC0xNjAwLDEyICsxNjg5LDI3IEBACiAJCQl0YXJnZXRzID0gKAogCQkJCTVEMjQ3QjYx
MTQ2ODlCODYwMEU3OEI3NiAvKiBXVEYgKi8sCiAJCQkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjND
IC8qIENvcHkgV1RGIEhlYWRlcnMgKi8sCisJCQkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8q
IERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVCRDE4RkNFNTY5MDBCM0Q3RkYgLyogbWJt
YWxsb2MgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLworCQkxQ0QxODc4MjFE
NTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNh
ID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4
MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJ
bmFtZSA9ICJHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMiOworCQkJb3V0cHV0UGF0aHMgPSAoCisJ
CQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCQlzaGVs
bFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAibWtkaXIgLXAgXCIke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcbmNkIFwiJHtCVUlMVF9QUk9EVUNUU19E
SVJ9L0Rlcml2ZWRTb3VyY2VzL1dURlwiXG5lbnZcbi9iaW4vbG4gLXNmaCBcIiR7U1JDUk9PVH1c
IiBXVEZcbmV4cG9ydCBXVEY9XCJXVEZcIlxuXG5pZiBbICEgLWQgQnJlYWtpbmdSdWxlcyBdOyB0
aGVuXG4gICAgbWtkaXIgQnJlYWtpbmdSdWxlc1xuZmlcblxuaWYgWyBcIiRNQUNPU1hfREVQTE9Z
TUVOVF9UQVJHRVRcIiA9PSBcIjEwLjEwXCIgXSA7IHRoZW5cbiAgICBleHBvcnQgQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUPTBcbmVsc2VcbiAgICBleHBvcnQgQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUPTFcbmZpXG5cbmlmIFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4x
MFwiIF0gfHwgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEwLjExXCIgXSB8
fCBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTJcIiBdIHx8IFsgXCIk
U0RLX1ZFUlNJT05fTUFKT1JcIiA9PSBcIjkwMDAwXCIgXSB8fCBbIFwiJFNES19WRVJTSU9OX01B
Sk9SXCIgPT0gXCIxMDAwMDBcIiBdOyB0aGVuXG4gICAgZXhwb3J0IEhBVkVfSUNVR0VOQlJLPTBc
bmVsc2VcbiAgICBleHBvcnQgSEFWRV9JQ1VHRU5CUks9MVxuZmlcblxuaWYgWyBcIiR7QUNUSU9O
fVwiID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxcIiAtbyBcIiR7QUNU
SU9OfVwiID0gXCJpbnN0YWxsaGRyc1wiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxhcGlc
IiBdOyB0aGVuXG5tYWtlIC0tbm8tYnVpbHRpbi1ydWxlcyAtZiBcIldURi93dGYvRGVyaXZlZFNv
dXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9P
VD1cIiR7U0RLUk9PVH1cIlxuZmkiOworCQl9OwogCQk2NUFGQTE3MDE2MzBCOTc3MDAzRDcyM0Mg
LyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQ
aGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNjM2LDYgKzE3NDAs
OCBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJ
CUE4QTQ3Mzg2MTUxQTgyNUIwMDQxMjNGRiAvKiBBc3NlcnRpb25zLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUMyQ0EzN0YxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QTQ3NDM1MTUxQTgyNUIwMDQxMjNGRiAvKiBBdG9taWNTdHJpbmcuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNzBFQ0E2MEQxQjAyNDI2ODAwNDQ5NzM5IC8qIEF0b21pY1N0cmlu
Z0ltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVCQTE1RkExODI0MzVBNjAwQTgyRTY5IC8q
IEF0b21pY1N0cmluZ0ltcGxDRi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE2NjUsNiArMTc3MSw3
IEBACiAJCQkJQThBNDczQjAxNTFBODI1QjAwNDEyM0ZGIC8qIGRvdWJsZS1jb252ZXJzaW9uLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQkExNTFBODI1QjAwNDEyM0ZGIC8qIGR0b2EuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQjMxNTFBODI1QjAwNDEyM0ZGIC8qIGZhc3QtZHRv
YS5jYyBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjBGMzJG
MURGQ0JEMUIwMDQxNkQ2QyAvKiBMb2NrZWRQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEE0NzNDMzE1MUE4MjVCMDA0MTIzRkYgLyogRmFzdE1hbGxvYy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjlEMzM2MDE2NURCQTczMDA1QUQzODcgLyogRmlsZVByaW50U3RyZWFtLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMTY3OCw2ICsxNzg1LDcgQEAKIAkJCQlBOEE0NzNFOTE1MUE4
MjVCMDA0MTIzRkYgLyogTUQ1LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENTQ5N0FDMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRUMx
NTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QzJDQTM3RjAxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RD
SksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRjQxNTFBODI1QjAwNDEyM0ZGIC8qIE51
bWJlck9mQ29yZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3QzVGQjYxRDg4NUNGMjAwNDRG
NUUyIC8qIEZhc3RCaXRWZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRjcxNTFB
ODI1QjAwNDEyM0ZGIC8qIE9TQWxsb2NhdG9yUG9zaXguY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0x
Njg1LDYgKzE3OTMsNyBAQAogCQkJCUE4QTQ3NDAyMTUxQTgyNUIwMDQxMjNGRiAvKiBQYWdlQmxv
Y2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGRjE5REMxQkIzMzRFQjAwODg2RDkxIC8qIFBh
cmFsbGVsSGVscGVyUG9vbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjgyNEE2ODFCNzQ0M0Ew
MDAyRTM0NUQgLyogUGFya2luZ0xvdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRTFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlEQ0VFMjIwMzFDRUE3NTUxMDAwQzIzOTYgLyogUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDMzNjIxNjVE
QkE3MzAwNUFEMzg3IC8qIFByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0M0Y2
MTFGMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTcy
Nyw4ICsxODM2LDEyIEBACiAJCQkJMUMxODFDOTExRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJv
dmlkZXJMYXRpbjEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMxODFDOTMxRDMwN0FCODAwRjVG
QTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ2
OTE1MUE4MjVCMDA0MTIzRkYgLyogVVRGOC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdF
QzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFGQTQ3QzhBMTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3Jl
VGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTQ0NzlDMUI3QUFBMDMwMDk0OThFQiAv
KiBXb3JkTG9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZC
OTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VD
SksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBMEFEMzkx
QTk2MjQ1NTAwNTM2REY2IC8qIFdvcmtRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNEEw
QUQzRDFBOTYyNTNDMDA1MzZERjYgLyogV29ya1F1ZXVlQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDc0NDUxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTE3NDUsNiArMTg1OCwxMSBAQAogCQkJdGFyZ2V0ID0gNUQyNDdCNjExNDY4OUI4
NjAwRTc4Qjc2IC8qIFdURiAqLzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FFQzMxOEZDRTU3MDAw
QjNEN0ZGIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJMUNEMTg3ODgxRDU1
Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhU
YXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8q
IERlcml2ZWQgU291cmNlcyAqLzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3ODcxRDU1Njk4ODAw
Q0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJNjVBRkEyOEUxNjMw
Qjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhU
YXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8q
IENvcHkgV1RGIEhlYWRlcnMgKi87CkBAIC0xNzc0LDYgKzE4OTIsMzAgQEAKIAkJCX07CiAJCQlu
YW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERl
YnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmln
dXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVh
c2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9
ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQkxQ0Qx
ODc4NTFENTU2OTVDMDBDQzdERUMgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRD
b25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0
Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0
aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJ
CW5hbWUgPSBSZWxlYXNlOworCQl9OworCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJv
ZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNv
bmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdS
ZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05B
TUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9
OwogCQk1RDI0N0I2NDE0Njg5Qjg2MDBFNzhCNzYgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBY
Q0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQy
NDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKQEAgLTE4
NTcsNiArMTk5OSwxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwog
CQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3
ODMxRDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdn
cmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovID0geworCQkJaXNhID0gWENDb25maWd1
cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJMUNEMTg3ODQxRDU1
Njk1QzAwQ0M3REVDIC8qIERlYnVnICovLAorCQkJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAv
KiBSZWxlYXNlICovLAorCQkJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9u
ICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRl
ZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjVDMTQ2
ODlCODYwMEU3OEI3NiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3Qg
IldURiIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25m
aWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvYnJraXRl
ci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFhNWU1
NTI3OTYwOTBlYWViY2Q3Y2U3YjdkMjc1YWE4YjM3NzViNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvYnJraXRlci5oCkBAIC0wLDAgKzEsNjU1IEBACisvKgorKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTctMjAxNCwgSW50ZXJu
YXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBB
bGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBi
cmtpdGVyLmgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0ZSAgICAgICAg
TmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwMi8xOC85NyAgICBhbGl1ICAgICAgICBBZGRl
ZCB0eXBlZGVmIGZvciBUZXh0Q291bnQuICBNYWRlIERPTkUgY29uc3QuCisqICAgMDUvMDcvOTcg
ICAgYWxpdSAgICAgICAgRml4ZWQgRExMIGRlY2xhcmF0aW9uLgorKiAgIDA3LzA5Lzk3ICAgIGpm
aXR6ICAgICAgIFJlbmFtZWQgQnJlYWtJdGVyYXRvciBhbmQgaW50ZXJmYWNlIHN5bmNlZCB3aXRo
IEpESworKiAgIDA4LzExLzk4ICAgIGhlbGVuYSAgICAgIFN5bmMtdXAgSkRLMS4yLgorKiAgIDAx
LzEzLzIwMDAgIGhlbGVuYSAgICAgIEFkZGVkIFVFcnJvckNvZGUgcGFyYW1ldGVyIHRvIGNyZWF0
ZVhYWEluc3RhbmNlIG1ldGhvZHMuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lm
bmRlZiBCUktJVEVSX0gKKyNkZWZpbmUgQlJLSVRFUl9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0
eXBlcy5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTogQnJlYWsgSXRlcmF0
b3IuCisgKi8KKworI2lmIFVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKK1VfTkFNRVNQQUNF
X0JFR0lOCisKKy8qCisgKiBBbGxvdyB0aGUgZGVjbGFyYXRpb24gb2YgQVBJcyB3aXRoIHBvaW50
ZXJzIHRvIEJyZWFrSXRlcmF0b3IKKyAqIGV2ZW4gd2hlbiBicmVhayBpdGVyYXRpb24gaXMgcmVt
b3ZlZCBmcm9tIHRoZSBidWlsZC4KKyAqLworY2xhc3MgQnJlYWtJdGVyYXRvcjsKKworVV9OQU1F
U1BBQ0VfRU5ECisKKyNlbHNlCisKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNs
dWRlICJ1bmljb2RlL3VuaXN0ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKyNp
bmNsdWRlICJ1bmljb2RlL2xvY2lkLmgiCisjaW5jbHVkZSAidW5pY29kZS91YnJrLmgiCisjaW5j
bHVkZSAidW5pY29kZS9zdHJlbnVtLmgiCisjaW5jbHVkZSAidW5pY29kZS91dGV4dC5oIgorI2lu
Y2x1ZGUgInVuaWNvZGUvdW1pc2MuaCIKKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBU
aGUgQnJlYWtJdGVyYXRvciBjbGFzcyBpbXBsZW1lbnRzIG1ldGhvZHMgZm9yIGZpbmRpbmcgdGhl
IGxvY2F0aW9uCisgKiBvZiBib3VuZGFyaWVzIGluIHRleHQuIEJyZWFrSXRlcmF0b3IgaXMgYW4g
YWJzdHJhY3QgYmFzZSBjbGFzcy4KKyAqIEluc3RhbmNlcyBvZiBCcmVha0l0ZXJhdG9yIG1haW50
YWluIGEgY3VycmVudCBwb3NpdGlvbiBhbmQgc2NhbiBvdmVyCisgKiB0ZXh0IHJldHVybmluZyB0
aGUgaW5kZXggb2YgY2hhcmFjdGVycyB3aGVyZSBib3VuZGFyaWVzIG9jY3VyLgorICogPHA+Cisg
KiBMaW5lIGJvdW5kYXJ5IGFuYWx5c2lzIGRldGVybWluZXMgd2hlcmUgYSB0ZXh0IHN0cmluZyBj
YW4gYmUgYnJva2VuCisgKiB3aGVuIGxpbmUtd3JhcHBpbmcuIFRoZSBtZWNoYW5pc20gY29ycmVj
dGx5IGhhbmRsZXMgcHVuY3R1YXRpb24gYW5kCisgKiBoeXBoZW5hdGVkIHdvcmRzLgorICogPHA+
CisgKiBTZW50ZW5jZSBib3VuZGFyeSBhbmFseXNpcyBhbGxvd3Mgc2VsZWN0aW9uIHdpdGggY29y
cmVjdAorICogaW50ZXJwcmV0YXRpb24gb2YgcGVyaW9kcyB3aXRoaW4gbnVtYmVycyBhbmQgYWJi
cmV2aWF0aW9ucywgYW5kCisgKiB0cmFpbGluZyBwdW5jdHVhdGlvbiBtYXJrcyBzdWNoIGFzIHF1
b3RhdGlvbiBtYXJrcyBhbmQgcGFyZW50aGVzZXMuCisgKiA8cD4KKyAqIFdvcmQgYm91bmRhcnkg
YW5hbHlzaXMgaXMgdXNlZCBieSBzZWFyY2ggYW5kIHJlcGxhY2UgZnVuY3Rpb25zLCBhcworICog
d2VsbCBhcyB3aXRoaW4gdGV4dCBlZGl0aW5nIGFwcGxpY2F0aW9ucyB0aGF0IGFsbG93IHRoZSB1
c2VyIHRvCisgKiBzZWxlY3Qgd29yZHMgd2l0aCBhIGRvdWJsZSBjbGljay4gV29yZCBzZWxlY3Rp
b24gcHJvdmlkZXMgY29ycmVjdAorICogaW50ZXJwcmV0YXRpb24gb2YgcHVuY3R1YXRpb24gbWFy
a3Mgd2l0aGluIGFuZCBmb2xsb3dpbmcKKyAqIHdvcmRzLiBDaGFyYWN0ZXJzIHRoYXQgYXJlIG5v
dCBwYXJ0IG9mIGEgd29yZCwgc3VjaCBhcyBzeW1ib2xzIG9yCisgKiBwdW5jdHVhdGlvbiBtYXJr
cywgaGF2ZSB3b3JkLWJyZWFrcyBvbiBib3RoIHNpZGVzLgorICogPHA+CisgKiBDaGFyYWN0ZXIg
Ym91bmRhcnkgYW5hbHlzaXMgYWxsb3dzIHVzZXJzIHRvIGludGVyYWN0IHdpdGgKKyAqIGNoYXJh
Y3RlcnMgYXMgdGhleSBleHBlY3QgdG8sIGZvciBleGFtcGxlLCB3aGVuIG1vdmluZyB0aGUgY3Vy
c29yCisgKiB0aHJvdWdoIGEgdGV4dCBzdHJpbmcuIENoYXJhY3RlciBib3VuZGFyeSBhbmFseXNp
cyBwcm92aWRlcyBjb3JyZWN0CisgKiBuYXZpZ2F0aW9uIG9mIHRocm91Z2ggY2hhcmFjdGVyIHN0
cmluZ3MsIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZQorICogY2hhcmFjdGVyIGlzIHN0b3JlZC4gIEZv
ciBleGFtcGxlLCBhbiBhY2NlbnRlZCBjaGFyYWN0ZXIgbWlnaHQgYmUKKyAqIHN0b3JlZCBhcyBh
IGJhc2UgY2hhcmFjdGVyIGFuZCBhIGRpYWNyaXRpY2FsIG1hcmsuIFdoYXQgdXNlcnMKKyAqIGNv
bnNpZGVyIHRvIGJlIGEgY2hhcmFjdGVyIGNhbiBkaWZmZXIgYmV0d2VlbiBsYW5ndWFnZXMuCisg
KiA8cD4KKyAqIFRoZSB0ZXh0IGJvdW5kYXJ5IHBvc2l0aW9ucyBhcmUgZm91bmQgYWNjb3JkaW5n
IHRvIHRoZSBydWxlcworICogZGVzY3JpYmVkIGluIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXggIzI5
LCBUZXh0IEJvdW5kYXJpZXMsIGFuZAorICogVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMTQsIExp
bmUgQnJlYWtpbmcgUHJvcGVydGllcy4gIFRoZXNlCisgKiBhcmUgYXZhaWxhYmxlIGF0IGh0dHA6
Ly93d3cudW5pY29kZS5vcmcvcmVwb3J0cy90cjE0LyBhbmQKKyAqIGh0dHA6Ly93d3cudW5pY29k
ZS5vcmcvcmVwb3J0cy90cjI5Ly4KKyAqIDxwPgorICogSW4gYWRkaXRpb24gdG8gdGhlIEMrKyBB
UEkgZGVmaW5lZCBpbiB0aGlzIGhlYWRlciBmaWxlLCBhCisgKiBwbGFpbiBDIEFQSSB3aXRoIGVx
dWl2YWxlbnQgZnVuY3Rpb25hbGl0eSBpcyBkZWZpbmVkIGluIHRoZQorICogZmlsZSB1YnJrLmgK
KyAqIDxwPgorICogQ29kZSBzbmlwcGV0cyBpbGx1c3RyYXRpbmcgdGhlIHVzZSBvZiB0aGUgQnJl
YWsgSXRlcmF0b3IgQVBJcworICogYXJlIGF2YWlsYWJsZSBpbiB0aGUgSUNVIFVzZXIgR3VpZGUs
CisgKiBodHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9ib3VuZGFyeUFuYWx5c2lzLmh0
bWwKKyAqIGFuZCBpbiB0aGUgc2FtcGxlIHByb2dyYW0gaWN1L3NvdXJjZS9zYW1wbGVzL2JyZWFr
L2JyZWFrLmNwcAorICoKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIEJyZWFrSXRlcmF0b3IgOiBw
dWJsaWMgVU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogIGRlc3RydWN0b3IKKyAg
ICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB+QnJlYWtJdGVyYXRv
cigpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgYW5vdGhlciBvYmplY3QgaXMg
c2VtYW50aWNhbGx5IGVxdWFsIHRvIHRoaXMKKyAgICAgKiBvbmUuIFRoZSBvdGhlciBvYmplY3Qg
c2hvdWxkIGJlIGFuIGluc3RhbmNlIG9mIHRoZSBzYW1lIHN1YmNsYXNzIG9mCisgICAgICogQnJl
YWtJdGVyYXRvci4gT2JqZWN0cyBvZiBkaWZmZXJlbnQgc3ViY2xhc3NlcyBhcmUgY29uc2lkZXJl
ZAorICAgICAqIHVuZXF1YWwuCisgICAgICogPFA+CisgICAgICogUmV0dXJuIHRydWUgaWYgdGhp
cyBCcmVha0l0ZXJhdG9yIGlzIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZQorICAgICAqIHNh
bWUgdGV4dCwgYW5kIGlzIHRoZSBzYW1lIGNsYXNzIGFuZCB0eXBlICh3b3JkLCBsaW5lLCBldGMu
KSBvZgorICAgICAqIEJyZWFrSXRlcmF0b3IsIGFzIHRoZSBhcmd1bWVudC4gIFRleHQgaXMgY29u
c2lkZXJlZCB0aGUgc2FtZSBpZgorICAgICAqIGl0IGNvbnRhaW5zIHRoZSBzYW1lIGNoYXJhY3Rl
cnMsIGl0IG5lZWQgbm90IGJlIHRoZSBzYW1lCisgICAgICogb2JqZWN0LCBhbmQgc3R5bGVzIGFy
ZSBub3QgY29uc2lkZXJlZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29uc3QgQnJlYWtJdGVyYXRvciYpIGNvbnN0ID0gMDsK
KworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNvbXBsZW1lbnQgb2YgdGhlIHJlc3VsdCBv
ZiBvcGVyYXRvcj09CisgICAgICogQHBhcmFtIHJocyBUaGUgQnJlYWtJdGVyYXRvciB0byBiZSBj
b21wYXJlZCBmb3IgaW5lcXVhbGl0eQorICAgICAqIEByZXR1cm4gdGhlIGNvbXBsZW1lbnQgb2Yg
dGhlIHJlc3VsdCBvZiBvcGVyYXRvcj09CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgVUJvb2wgb3BlcmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiByaHMpIGNvbnN0IHsg
cmV0dXJuICFvcGVyYXRvcj09KHJocyk7IH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHBv
bHltb3JwaGljIGNvcHkgb2YgdGhpcyBvYmplY3QuICBUaGlzIGlzIGFuIGFic3RyYWN0CisgICAg
ICogbWV0aG9kIHdoaWNoIHN1YmNsYXNzZXMgaW1wbGVtZW50LgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciogY2xvbmUodm9pZCkgY29u
c3QgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcG9seW1vcnBoaWMgY2xhc3MgSUQg
Zm9yIHRoaXMgb2JqZWN0LiBEaWZmZXJlbnQgc3ViY2xhc3NlcworICAgICAqIHdpbGwgcmV0dXJu
IGRpc3RpbmN0IHVuZXF1YWwgdmFsdWVzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3QgPSAw
OworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgQ2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUg
dGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yJiBnZXRUZXh0KHZvaWQpIGNvbnN0ID0gMDsKKwor
CisgICAgLyoqCisgICAgICAqICBHZXQgYSBVVGV4dCBmb3IgdGhlIHRleHQgYmVpbmcgYW5hbHl6
ZWQuCisgICAgICAqICBUaGUgcmV0dXJuZWQgVVRleHQgaXMgYSBzaGFsbG93IGNsb25lIG9mIHRo
ZSBVVGV4dCB1c2VkIGludGVybmFsbHkKKyAgICAgICogIGJ5IHRoZSBicmVhayBpdGVyYXRvciBp
bXBsZW1lbnRhdGlvbi4gIEl0IGNhbiBzYWZlbHkgYmUgdXNlZCB0bworICAgICAgKiAgYWNjZXNz
IHRoZSB0ZXh0IHdpdGhvdXQgaW1wYWN0aW5nIGFueSBicmVhayBpdGVyYXRvciBvcGVyYXRpb25z
LAorICAgICAgKiAgYnV0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmIG11c3Qgbm90IGJlIGFs
dGVyZWQuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBmaWxsSW4gQSBVVGV4dCB0byBiZSBmaWxs
ZWQgaW4uICBJZiBOVUxMLCBhIG5ldyBVVGV4dCB3aWxsIGJlCisgICAgICAqICAgICAgICAgICBh
bGxvY2F0ZWQgdG8gaG9sZCB0aGUgcmVzdWx0LgorICAgICAgKiBAcGFyYW0gc3RhdHVzIHJlY2Vp
dmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgICogQHJldHVybiAgIFRoZSBjdXJyZW50IFVUZXh0
IGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiAgSWYgYW4gaW5wdXQKKyAgICAgICogICAgICAgICAg
IFVUZXh0IHdhcyBwcm92aWRlZCwgaXQgd2lsbCBhbHdheXMgYmUgcmV0dXJuZWQuCisgICAgICAq
IEBzdGFibGUgSUNVIDMuNAorICAgICAgKi8KKyAgICAgdmlydHVhbCBVVGV4dCAqZ2V0VVRleHQo
VVRleHQgKmZpbGxJbiwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdCA9IDA7CisKKyAgICAvKioK
KyAgICAgKiBDaGFuZ2UgdGhlIHRleHQgb3ZlciB3aGljaCB0aGlzIG9wZXJhdGVzLiBUaGUgdGV4
dCBib3VuZGFyeSBpcworICAgICAqIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKiBAcGFyYW0g
dGV4dCBUaGUgVW5pY29kZVN0cmluZyB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoY29uc3Qg
VW5pY29kZVN0cmluZyAmdGV4dCkgPSAwOworCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGJy
ZWFrIGl0ZXJhdG9yIHRvIG9wZXJhdGUgb3ZlciB0aGUgdGV4dCByZXByZXNlbnRlZCBieQorICAg
ICAqIHRoZSBVVGV4dC4gIFRoZSBpdGVyYXRvciBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgc3Rh
cnQuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBjbG9uZSBv
ZiB0aGUgc3VwcGxpZWQgVVRleHQuICBUaGlzIG1lYW5zCisgICAgICogdGhhdCB0aGUgY2FsbGVy
IGlzIGZyZWUgdG8gaW1tZWRpYXRlbHkgY2xvc2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRoZQorICAg
ICAqIFV0ZXh0IHRoYXQgd2FzIHBhc3NlZCBhcyBhIHBhcmFtZXRlciwgYnV0IHRoYXQgdGhlIHVu
ZGVybHlpbmcgdGV4dCBpdHNlbGYKKyAgICAgKiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdoaWxlIGJl
aW5nIHJlZmVyZW5jZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQWxs
IGluZGV4IHBvc2l0aW9ucyByZXR1cm5lZCBieSBicmVhayBpdGVyYXRvciBmdW5jdGlvbnMgYXJl
CisgICAgICogbmF0aXZlIGluZGljZXMgZnJvbSB0aGUgVVRleHQuIEZvciBleGFtcGxlLCB3aGVu
IGJyZWFraW5nIFVURi04CisgICAgICogZW5jb2RlZCB0ZXh0LCB0aGUgYnJlYWsgcG9zaXRpb25z
IHJldHVybmVkIGJ5IG5leHQoKSwgcHJldmlvdXMoKSwgZXRjLgorICAgICAqIHdpbGwgYmUgVVRG
LTggc3RyaW5nIGluZGljZXMsIG5vdCBVVEYtMTYgcG9zaXRpb25zLgorICAgICAqCisgICAgICog
QHBhcmFtIHRleHQgVGhlIFVUZXh0IHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBw
YXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAqIEBzdGFibGUgSUNV
IDMuNAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChVVGV4dCAqdGV4dCwgVUVy
cm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDaGFuZ2UgdGhlIHRleHQg
b3ZlciB3aGljaCB0aGlzIG9wZXJhdGVzLiBUaGUgdGV4dCBib3VuZGFyeSBpcworICAgICAqIHJl
c2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKiBOb3RlIHRoYXQgc2V0VGV4dChVVGV4dCAqKSBwcm92
aWRlcyBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgdG8gdGhpcyBmdW5jdGlvbiwKKyAgICAgKiBhbmQg
aXMgbW9yZSBlZmZpY2llbnQuCisgICAgICogQHBhcmFtIGl0IFRoZSBDaGFyYWN0ZXJJdGVyYXRv
ciB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIHZvaWQgIGFkb3B0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciogaXQpID0g
MDsKKworICAgIGVudW0geworICAgICAgICAvKioKKyAgICAgICAgICogRE9ORSBpcyByZXR1cm5l
ZCBieSBwcmV2aW91cygpIGFuZCBuZXh0KCkgYWZ0ZXIgYWxsIHZhbGlkCisgICAgICAgICAqIGJv
dW5kYXJpZXMgaGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgICAgICovCisgICAgICAgIERPTkUgPSAoaW50MzJfdCktMQorICAgIH07CisKKyAgICAv
KioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVn
aW5uaW5nIG9mIHRoZSB0ZXh0LCBwb3NpdGlvbiB6ZXJvLgorICAgICAqIEByZXR1cm4gVGhlIG9m
ZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCB6ZXJvLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmaXJzdCh2b2lkKSA9IDA7CisK
KyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBpbmRleCBp
bW1lZGlhdGVseSBCRVlPTkQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJlaW5nIHNj
YW5uZWQuCisgICAgICogQHJldHVybiBUaGUgaW5kZXggaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBs
YXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCBiZWluZyBzY2FubmVkLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBsYXN0KHZvaWQpID0gMDsKKwor
ICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGJvdW5kYXJ5
IHByZWNlZGluZyB0aGUgY3VycmVudCBib3VuZGFyeS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFy
YWN0ZXIgaW5kZXggb2YgdGhlIHByZXZpb3VzIHRleHQgYm91bmRhcnkgb3IgRE9ORSBpZiBhbGwK
KyAgICAgKiBib3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJldmlvdXModm9pZCkgPSAwOwor
CisgICAgLyoqCisgICAgICogQWR2YW5jZSB0aGUgaXRlcmF0b3IgdG8gdGhlIGJvdW5kYXJ5IGZv
bGxvd2luZyB0aGUgY3VycmVudCBib3VuZGFyeS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0
ZXIgaW5kZXggb2YgdGhlIG5leHQgdGV4dCBib3VuZGFyeSBvciBET05FIGlmIGFsbAorICAgICAq
IGJvdW5kYXJpZXMgaGF2ZSBiZWVuIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KHZvaWQpID0gMDsKKworICAgIC8qKgor
ICAgICAqIFJldHVybiBjaGFyYWN0ZXIgaW5kZXggb2YgdGhlIGN1cnJlbnQgaW50ZXJhdG9yIHBv
c2l0aW9uIHdpdGhpbiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSBib3VuZGFyeSBtb3N0
IHJlY2VudGx5IHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBjdXJyZW50KHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAg
ICAqIEFkdmFuY2UgdGhlIGl0ZXJhdG9yIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBmb2xsb3dpbmcg
dGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5
cyBncmVhdGVyIHRoYW4gdGhlIG9mZnNldCBvcgorICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0ZXJh
dG9yLkRPTkUKKyAgICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nhbm5p
bmcuCisgICAgICogQHJldHVybiBUaGUgZmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhlIHNwZWNpZmll
ZCBvZmZzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBp
bnQzMl90IGZvbGxvd2luZyhpbnQzMl90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICog
U2V0IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgZmlyc3QgYm91bmRhcnkgcHJlY2VkaW5n
IHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhbHdh
eXMgc21hbGxlciB0aGFuIHRoZSBvZmZzZXQgb3IKKyAgICAgKiB0aGUgdmFsdWUgQnJlYWtJdGVy
YXRvci5ET05FCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGJlZ2luIHNjYW5u
aW5nLgorICAgICAqIEByZXR1cm4gVGhlIGZpcnN0IGJvdW5kYXJ5IGJlZm9yZSB0aGUgc3BlY2lm
aWVkIG9mZnNldC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IGludDMyX3QgcHJlY2VkaW5nKGludDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc3BlY2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3Np
dGlvbi4KKyAgICAgKiBBcyBhIHNpZGUgZWZmZWN0LCB0aGUgY3VycmVudCBwb3NpdGlvbiBvZiB0
aGUgaXRlcmF0b3IgaXMgc2V0CisgICAgICogdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHBvc2l0aW9u
IGF0IG9yIGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBAcGFyYW0gb2Zm
c2V0IHRoZSBvZmZzZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBUcnVlIGlmICJvZmZzZXQi
IGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBVQm9vbCBpc0JvdW5kYXJ5KGludDMyX3Qgb2Zmc2V0KSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBudGggYm91bmRh
cnkgZnJvbSB0aGUgY3VycmVudCBib3VuZGFyeQorICAgICAqIEBwYXJhbSBuIHRoZSBudW1iZXIg
b2YgYm91bmRhcmllcyB0byBtb3ZlIGJ5LiAgQSB2YWx1ZSBvZiAwCisgICAgICogZG9lcyBub3Ro
aW5nLiAgTmVnYXRpdmUgdmFsdWVzIG1vdmUgdG8gcHJldmlvdXMgYm91bmRhcmllcworICAgICAq
IGFuZCBwb3NpdGl2ZSB2YWx1ZXMgbW92ZSB0byBsYXRlciBib3VuZGFyaWVzLgorICAgICAqIEBy
ZXR1cm4gVGhlIG5ldyBpdGVyYXRvciBwb3NpdGlvbiwgb3IKKyAgICAgKiBET05FIGlmIHRoZXJl
IGFyZSBmZXdlciB0aGFuIHxufCBib3VuZGFyaWVzIGluIHRoZSBzcGVjZmllZCBkaXJlY3Rpb24u
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IG5l
eHQoaW50MzJfdCBuKSA9IDA7CisKKyAgIC8qKgorICAgICAqIEZvciBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9ycywgcmV0dXJuIHRoZSBzdGF0dXMgdGFnIGZyb20gdGhlIAorICAgICAqIGJyZWFrIHJ1
bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogcmV0dXJuZWQgYnJl
YWsgcG9zaXRpb24uCisgICAgICogPHA+CisgICAgICogRm9yIGJyZWFrIGl0ZXJhdG9yIHR5cGVz
IHRoYXQgZG8gbm90IHN1cHBvcnQgYSBydWxlIHN0YXR1cywKKyAgICAgKiBhIGRlZmF1bHQgdmFs
dWUgb2YgMCBpcyByZXR1cm5lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBAcmV0dXJuIHRoZSBzdGF0
dXMgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkK
KyAgICAgKiAgICAgICAgIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIEBzZWUgUnVs
ZUJhc2VCcmVha0l0ZXJhdG9yOjpnZXRSdWxlU3RhdHVzKCkKKyAgICAgKiBAc2VlIFVXb3JkQnJl
YWsKKyAgICAgKiBAc3RhYmxlIElDVSA1MgorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBn
ZXRSdWxlU3RhdHVzKCkgY29uc3Q7CisKKyAgIC8qKgorICAgICogRm9yIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3JzLCBnZXQgdGhlIHN0YXR1cyAodGFnKSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsgcnVs
ZShzKSAKKyAgICAqIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseSByZXR1cm5lZCBi
cmVhayBwb3NpdGlvbi4KKyAgICAqIDxwPgorICAgICogRm9yIGJyZWFrIGl0ZXJhdG9yIHR5cGVz
IHRoYXQgZG8gbm90IHN1cHBvcnQgcnVsZSBzdGF0dXMsCisgICAgKiBubyB2YWx1ZXMgYXJlIHJl
dHVybmVkLgorICAgICogPHA+CisgICAgKiBUaGUgcmV0dXJuZWQgc3RhdHVzIHZhbHVlKHMpIGFy
ZSBzdG9yZWQgaW50byBhbiBhcnJheSBwcm92aWRlZCBieSB0aGUgY2FsbGVyLgorICAgICogVGhl
IHZhbHVlcyBhcmUgc3RvcmVkIGluIHNvcnRlZCAoYXNjZW5kaW5nKSBvcmRlci4KKyAgICAqIElm
IHRoZSBjYXBhY2l0eSBvZiB0aGUgb3V0cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xk
IHRoZSBkYXRhLAorICAgICogIHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2
YWlsYWJsZSBsZW5ndGgsIGFuZCBhCisgICAgKiAgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1Igd2ls
bCBiZSBzaWduYWxlZC4KKyAgICAqIDxwPgorICAgICogQHNlZSBSdWxlQmFzZUJyZWFrSXRlcmF0
b3I6OmdldFJ1bGVTdGF0dXNWZWMKKyAgICAqCisgICAgKiBAcGFyYW0gZmlsbEluVmVjIGFuIGFy
cmF5IHRvIGJlIGZpbGxlZCBpbiB3aXRoIHRoZSBzdGF0dXMgdmFsdWVzLgorICAgICogQHBhcmFt
IGNhcGFjaXR5ICB0aGUgbGVuZ3RoIG9mIHRoZSBzdXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0aCBv
ZiB6ZXJvIGNhdXNlcworICAgICogICAgICAgICAgICAgICAgICB0aGUgZnVuY3Rpb24gdG8gcmV0
dXJuIHRoZSBudW1iZXIgb2Ygc3RhdHVzIHZhbHVlcywgaW4gdGhlCisgICAgKiAgICAgICAgICAg
ICAgICAgIG5vcm1hbCB3YXksIHdpdGhvdXQgYXR0ZW10cGluZyB0byBzdG9yZSBhbnkgdmFsdWVz
LgorICAgICogQHBhcmFtIHN0YXR1cyAgICByZWNlaXZlcyBlcnJvciBjb2Rlcy4KKyAgICAqIEBy
ZXR1cm4gICAgICAgICAgVGhlIG51bWJlciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxl
cyB0aGF0IGRldGVybWluZWQKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50
IGJvdW5kYXJ5IHJldHVybmVkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAqICAgICAgICAg
ICAgICAgICAgSW4gdGhlIGV2ZW50IG9mIGEgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRoZSBy
ZXR1cm4gdmFsdWUKKyAgICAqICAgICAgICAgICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBv
ZiBzdGF0dXMgdmFsdWVzIHRoYXQgd2VyZSBhdmFpbGFibGUsCisgICAgKiAgICAgICAgICAgICAg
ICAgIG5vdCB0aGUgcmVkdWNlZCBudW1iZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgor
ICAgICogQHNlZSBnZXRSdWxlU3RhdHVzCisgICAgKiBAc3RhYmxlIElDVSA1MgorICAgICovCisg
ICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXNWZWMoaW50MzJfdCAqZmlsbEluVmVjLCBp
bnQzMl90IGNhcGFjaXR5LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICog
Q3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIHdvcmQtYnJlYWtzIHVzaW5nIHRoZSBnaXZlbiBsb2Nh
bGUuCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVt
ZW50aW5nIHdvcmQgYnJlYWtzLgorICAgICAqIFdvcmRCcmVhayBpcyB1c2VmdWwgZm9yIHdvcmQg
c2VsZWN0aW9uIChleC4gZG91YmxlIGNsaWNrKQorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9j
YWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGVycm9yIGNvZGUKKyAgICAgKiBAcmV0dXJu
IEEgQnJlYWtJdGVyYXRvciBmb3Igd29yZC1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVz
CisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0
byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3Vj
Y2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NV
Q0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQor
ICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0
aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGlu
ZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4
YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJl
LCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRp
Y2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0
aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVz
CisgICAgICogY291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1
cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBP
UlQyCisgICAgY3JlYXRlV29yZEluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNv
ZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3Ig
bGluZS1icmVha3MgdXNpbmcgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKiBSZXR1cm5zIGFuIGlu
c3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgbGluZSBicmVha3MuIExpbmUK
KyAgICAgKiBicmVha3MgYXJlIGxvZ2ljYWxseSBwb3NzaWJsZSBsaW5lIGJyZWFrcywgYWN0dWFs
IGxpbmUgYnJlYWtzIGFyZQorICAgICAqIHVzdWFsbHkgZGV0ZXJtaW5lZCBiYXNlZCBvbiBkaXNw
bGF5IHdpZHRoLgorICAgICAqIExpbmVCcmVhayBpcyB1c2VmdWwgZm9yIHdvcmQgd3JhcHBpbmcg
dGV4dC4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3Rh
dHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciBs
aW5lLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMg
dXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRv
IGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hv
dWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdp
c2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBp
bmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4K
KyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJh
Y2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVx
dWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICog
dXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0
IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2Nh
bGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3Vu
ZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVz
cG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVMaW5lSW5z
dGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8q
KgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBjaGFyYWN0ZXItYnJlYWtzIHVzaW5n
IHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJ
dGVyYXRvciBpbXBsZW1lbnRpbmcgY2hhcmFjdGVyIGJyZWFrcy4KKyAgICAgKiBDaGFyYWN0ZXIg
YnJlYWtzIGFyZSBib3VuZGFyaWVzIG9mIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVuY2VzLgor
ICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhl
IGVycm9yIGNvZGUuCisgICAgICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIGNoYXJhY3Rl
ci1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVz
ZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBj
aGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3Vs
ZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNo
IG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5m
b3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisg
ICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNr
IGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVl
c3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVz
ZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBs
b2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxl
IG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQu
CisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3Bv
bnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlQ2hhcmFjdGVy
SW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAg
IC8qKgorICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBzZW50ZW5jZS1icmVha3MgdXNp
bmcgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVh
a0l0ZXJhdG9yIGltcGxlbWVudGluZyBzZW50ZW5jZSBicmVha3MuCisgICAgICogQHBhcmFtIHdo
ZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAg
ICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3Igc2VudGVuY2UtYnJlYWtzLiAgVGhlIFVF
cnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0
dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUg
Y29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0
aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGlu
Zm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3Ig
cmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFM
TEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQu
ICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5n
IHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZB
VUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisg
ICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBm
YWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxs
ZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRp
bmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFr
SXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZVNlbnRlbmNlSW5zdGFuY2UoY29uc3QgTG9j
YWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENyZWF0
ZSBCcmVha0l0ZXJhdG9yIGZvciB0aXRsZS1jYXNpbmcgYnJlYWtzIHVzaW5nIHRoZSBzcGVjaWZp
ZWQgbG9jYWxlCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3Ig
aW1wbGVtZW50aW5nIHRpdGxlIGJyZWFrcy4KKyAgICAgKiBUaGUgaXRlcmF0b3IgcmV0dXJuZWQg
bG9jYXRlcyB0aXRsZSBib3VuZGFyaWVzIGFzIGRlc2NyaWJlZCBmb3IKKyAgICAgKiBVbmljb2Rl
IDMuMiBvbmx5LiBGb3IgVW5pY29kZSA0LjAgYW5kIGFib3ZlIHRpdGxlIGJvdW5kYXJ5IGl0ZXJh
dGlvbiwKKyAgICAgKiBwbGVhc2UgdXNlIFdvcmQgQm91bmRhcnkgaXRlcmF0b3Iue0BsaW5rICNj
cmVhdGVXb3JkSW5zdGFuY2UgfQorICAgICAqCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2Nh
bGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJu
IEEgQnJlYWtJdGVyYXRvciBmb3IgdGl0bGUtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1
cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24g
dG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1
Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9T
VUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UK
KyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBz
dGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBp
bmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBl
eGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVy
ZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5k
aWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVp
dGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxl
cworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0
dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQ
T1JUMgorICAgIGNyZWF0ZVRpdGxlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9y
Q29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc2V0IG9mIExvY2FsZXMg
Zm9yIHdoaWNoIFRleHRCb3VuZGFyaWVzIGFyZSBpbnN0YWxsZWQuCisgICAgICogPHA+PGI+Tm90
ZTo8L2I+IHRoaXMgd2lsbCBub3QgcmV0dXJuIGxvY2FsZXMgYWRkZWQgdGhyb3VnaCB0aGUgcmVn
aXN0ZXIKKyAgICAgKiBjYWxsLiBUbyBzZWUgdGhlIHJlZ2lzdGVyZWQgbG9jYWxlcyB0b28sIHVz
ZSB0aGUgZ2V0QXZhaWxhYmxlTG9jYWxlcworICAgICAqIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBh
IFN0cmluZ0VudW1lcmF0aW9uIG9iamVjdCA8L3A+CisgICAgICogQHBhcmFtIGNvdW50IHRoZSBv
dXRwdXQgcGFyYW1ldGVyIG9mIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgbG9jYWxlIGxpc3QK
KyAgICAgKiBAcmV0dXJuIGF2YWlsYWJsZSBsb2NhbGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSogVV9FWFBPUlQyIGdldEF2YWlsYWJs
ZUxvY2FsZXMoaW50MzJfdCYgY291bnQpOworCisgICAgLyoqCisgICAgICogR2V0IG5hbWUgb2Yg
dGhlIG9iamVjdCBmb3IgdGhlIGRlc2lyZWQgTG9jYWxlLCBpbiB0aGUgZGVzaXJlZCBsYW5nYXVn
ZS4KKyAgICAgKiBAcGFyYW0gb2JqZWN0TG9jYWxlIG11c3QgYmUgZnJvbSBnZXRBdmFpbGFibGVM
b2NhbGVzLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlIHNwZWNpZmllcyB0aGUgZGVzaXJl
ZCBsb2NhbGUgZm9yIG91dHB1dC4KKyAgICAgKiBAcGFyYW0gbmFtZSB0aGUgZmlsbC1pbiBwYXJh
bWV0ZXIgb2YgdGhlIHJldHVybiB2YWx1ZQorICAgICAqIFVzZXMgYmVzdCBtYXRjaC4KKyAgICAg
KiBAcmV0dXJuIHVzZXItZGlzcGxheWFibGUgbmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBVX0VYUE9SVDIgZ2V0RGlzcGxheU5h
bWUoY29uc3QgTG9jYWxlJiBvYmplY3RMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgbmFtZSk7CisKKyAg
ICAvKioKKyAgICAgKiBHZXQgbmFtZSBvZiB0aGUgb2JqZWN0IGZvciB0aGUgZGVzaXJlZCBMb2Nh
bGUsIGluIHRoZSBsYW5nYXVnZSBvZiB0aGUKKyAgICAgKiBkZWZhdWx0IGxvY2FsZS4KKyAgICAg
KiBAcGFyYW0gb2JqZWN0TG9jYWxlIG11c3QgYmUgZnJvbSBnZXRNYXRjaGluZ0xvY2FsZXMKKyAg
ICAgKiBAcGFyYW0gbmFtZSB0aGUgZmlsbC1pbiBwYXJhbWV0ZXIgb2YgdGhlIHJldHVybiB2YWx1
ZQorICAgICAqIEByZXR1cm4gdXNlci1kaXNwbGF5YWJsZSBuYW1lCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVuaWNvZGVTdHJpbmcmIFVfRVhQT1JUMiBnZXRE
aXNwbGF5TmFtZShjb25zdCBMb2NhbGUmIG9iamVjdExvY2FsZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgbmFtZSk7CisKKyAgICAvKioK
KyAgICAgKiBEZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisg
ICAgICoKKyAgICAgKiBUaHJlYWQgc2FmZSBjbGllbnQtYnVmZmVyLWJhc2VkIGNsb25pbmcgb3Bl
cmF0aW9uCisgICAgICogICAgRG8gTk9UIGNhbGwgZGVsZXRlIG9uIGEgc2FmZWNsb25lLCBzaW5j
ZSAnbmV3JyBpcyBub3QgdXNlZCB0byBjcmVhdGUgaXQuCisgICAgICogQHBhcmFtIHN0YWNrQnVm
ZmVyIHVzZXIgYWxsb2NhdGVkIHNwYWNlIGZvciB0aGUgbmV3IGNsb25lLiBJZiBOVUxMIG5ldyBt
ZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogSWYgYnVmZmVyIGlzIG5vdCBsYXJnZSBl
bm91Z2gsIG5ldyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogQHBhcmFtIEJ1ZmZl
clNpemUgcmVmZXJlbmNlIHRvIHNpemUgb2YgYWxsb2NhdGVkIHNwYWNlLgorICAgICAqIElmIEJ1
ZmZlclNpemUgPT0gMCwgYSBzdWZmaWNpZW50IHNpemUgZm9yIHVzZSBpbiBjbG9uaW5nIHdpbGwK
KyAgICAgKiBiZSByZXR1cm5lZCAoJ3ByZS1mbGlnaHRpbmcnKQorICAgICAqIElmIEJ1ZmZlclNp
emUgaXMgbm90IGVub3VnaCBmb3IgYSBzdGFjay1iYXNlZCBzYWZlIGNsb25lLAorICAgICAqIG5l
dyBtZW1vcnkgd2lsbCBiZSBhbGxvY2F0ZWQuCisgICAgICogQHBhcmFtIHN0YXR1cyB0byBpbmRp
Y2F0ZSB3aGV0aGVyIHRoZSBvcGVyYXRpb24gd2VudCBvbiBzbW9vdGhseSBvciB0aGVyZSB3ZXJl
IGVycm9ycworICAgICAqICBBbiBpbmZvcm1hdGlvbmFsIHN0YXR1cyB2YWx1ZSwgVV9TQUZFQ0xP
TkVfQUxMT0NBVEVEX0VSUk9SLCBpcyB1c2VkIGlmIGFueSBhbGxvY2F0aW9ucyB3ZXJlCisgICAg
ICogIG5lY2Vzc2FyeS4KKyAgICAgKiBAcmV0dXJuIHBvaW50ZXIgdG8gdGhlIG5ldyBjbG9uZQor
ICAgICAqCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgor
ICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciAqICBjcmVhdGVCdWZmZXJDbG9uZSh2
b2lkICpzdGFja0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50MzJfdCAmQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyNpZm5kZWYg
VV9ISURFX0RFUFJFQ0FURURfQVBJCisKKyAgICAvKioKKyAgICAgKiAgIERldGVybWluZSB3aGV0
aGVyIHRoZSBCcmVha0l0ZXJhdG9yIHdhcyBjcmVhdGVkIGluIHVzZXIgbWVtb3J5IGJ5CisgICAg
ICogICBjcmVhdGVCdWZmZXJDbG9uZSgpLCBhbmQgdGh1cyBzaG91bGQgbm90IGJlIGRlbGV0ZWQu
ICBTdWNoIG9iamVjdHMKKyAgICAgKiAgIG11c3QgYmUgY2xvc2VkIGJ5IGFuIGV4cGxpY2l0IGNh
bGwgdG8gdGhlIGRlc3RydWN0b3IgKG5vdCBkZWxldGUpLgorICAgICAqIEBkZXByZWNhdGVkIElD
VSA1Mi4gQWx3YXlzIGRlbGV0ZSB0aGUgQnJlYWtJdGVyYXRvci4KKyAgICAgKi8KKyAgICBpbmxp
bmUgVUJvb2wgaXNCdWZmZXJDbG9uZSh2b2lkKTsKKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNB
VEVEX0FQSSAqLworCisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorICAgIC8qKgorICAgICAqIFJl
Z2lzdGVyIGEgbmV3IGJyZWFrIGl0ZXJhdG9yIG9mIHRoZSBpbmRpY2F0ZWQga2luZCwgdG8gdXNl
IGluIHRoZSBnaXZlbiBsb2NhbGUuCisgICAgICogVGhlIGJyZWFrIGl0ZXJhdG9yIHdpbGwgYmUg
YWRvcHRlZC4gIENsb25lcyBvZiB0aGUgaXRlcmF0b3Igd2lsbCBiZSByZXR1cm5lZAorICAgICAq
IGlmIGEgcmVxdWVzdCBmb3IgYSBicmVhayBpdGVyYXRvciBvZiB0aGUgZ2l2ZW4ga2luZCBtYXRj
aGVzIG9yIGZhbGxzIGJhY2sgdG8KKyAgICAgKiB0aGlzIGxvY2FsZS4KKyAgICAgKiBCZWNhdXNl
IElDVSBtYXkgY2hvb3NlIHRvIGNhY2hlIEJyZWFrSXRlcmF0b3JzIGludGVybmFsbHksIHRoaXMg
bXVzdAorICAgICAqIGJlIGNhbGxlZCBhdCBhcHBsaWNhdGlvbiBzdGFydHVwLCBwcmlvciB0byBh
bnkgY2FsbHMgdG8KKyAgICAgKiBCcmVha0l0ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0byBh
dm9pZCB1bmRlZmluZWQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIHRvQWRvcHQgdGhlIEJyZWFr
SXRlcmF0b3IgaW5zdGFuY2UgdG8gYmUgYWRvcHRlZAorICAgICAqIEBwYXJhbSBsb2NhbGUgdGhl
IExvY2FsZSBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAg
ICogQHBhcmFtIGtpbmQgdGhlIHR5cGUgb2YgaXRlcmF0b3IgZm9yIHdoaWNoIHRoaXMgaW5zdGFu
Y2UgaXMgdG8gYmUgcmVnaXN0ZXJlZAorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGluL291dCBz
dGF0dXMgY29kZSwgbm8gc3BlY2lhbCBtZWFuaW5ncyBhcmUgYXNzaWduZWQKKyAgICAgKiBAcmV0
dXJuIGEgcmVnaXN0cnkga2V5IHRoYXQgY2FuIGJlIHVzZWQgdG8gdW5yZWdpc3RlciB0aGlzIGlu
c3RhbmNlCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgc3RhdGljIFVSZWdp
c3RyeUtleSBVX0VYUE9SVDIgcmVnaXN0ZXJJbnN0YW5jZShCcmVha0l0ZXJhdG9yKiB0b0Fkb3B0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYg
bG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVCcmVha0l0
ZXJhdG9yVHlwZSBraW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBVbnJlZ2lzdGVyIGEgcHJl
dmlvdXNseS1yZWdpc3RlcmVkIEJyZWFrSXRlcmF0b3IgdXNpbmcgdGhlIGtleSByZXR1cm5lZCBm
cm9tIHRoZQorICAgICAqIHJlZ2lzdGVyIGNhbGwuICBLZXkgYmVjb21lcyBpbnZhbGlkIGFmdGVy
IGEgc3VjY2Vzc2Z1bCBjYWxsIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYWdhaW4uCisgICAgICog
VGhlIEJyZWFrSXRlcmF0b3IgY29ycmVzcG9uZGluZyB0byB0aGUga2V5IHdpbGwgYmUgZGVsZXRl
ZC4KKyAgICAgKiBCZWNhdXNlIElDVSBtYXkgY2hvb3NlIHRvIGNhY2hlIEJyZWFrSXRlcmF0b3Jz
IGludGVybmFsbHksIHRoaXMgc2hvdWxkCisgICAgICogYmUgY2FsbGVkIGR1cmluZyBhcHBsaWNh
dGlvbiBzaHV0ZG93biwgYWZ0ZXIgYWxsIGNhbGxzIHRvCisgICAgICogQnJlYWtJdGVyYXRvcjo6
Y3JlYXRlWFhYSW5zdGFuY2UgdG8gYXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9yLgorICAgICAqIEBw
YXJhbSBrZXkgdGhlIHJlZ2lzdHJ5IGtleSByZXR1cm5lZCBieSBhIHByZXZpb3VzIGNhbGwgdG8g
cmVnaXN0ZXJJbnN0YW5jZQorICAgICAqIEBwYXJhbSBzdGF0dXMgdGhlIGluL291dCBzdGF0dXMg
Y29kZSwgbm8gc3BlY2lhbCBtZWFuaW5ncyBhcmUgYXNzaWduZWQKKyAgICAgKiBAcmV0dXJuIFRS
VUUgaWYgdGhlIGl0ZXJhdG9yIGZvciB0aGUga2V5IHdhcyBzdWNjZXNzZnVsbHkgdW5yZWdpc3Rl
cmVkCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICovCisgICAgc3RhdGljIFVCb29sIFVf
RVhQT1JUMiB1bnJlZ2lzdGVyKFVSZWdpc3RyeUtleSBrZXksIFVFcnJvckNvZGUmIHN0YXR1cyk7
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBTdHJpbmdFbnVtZXJhdGlvbiBvdmVyIHRoZSBs
b2NhbGVzIGF2YWlsYWJsZSBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbCwKKyAgICAgKiBpbmNsdWRp
bmcgcmVnaXN0ZXJlZCBsb2NhbGVzLgorICAgICAqIEByZXR1cm4gYSBTdHJpbmdFbnVtZXJhdGlv
biBvdmVyIHRoZSBsb2NhbGVzIGF2YWlsYWJsZSBhdCB0aGUgdGltZSBvZiB0aGUgY2FsbAorICAg
ICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHN0YXRpYyBTdHJpbmdFbnVtZXJhdGlv
biogVV9FWFBPUlQyIGdldEF2YWlsYWJsZUxvY2FsZXModm9pZCk7CisjZW5kaWYKKworICAgIC8q
KgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSBmb3IgdGhpcyBicmVhayBpdGVyYXRvci4gVHdv
IGZsYXZvcnMgYXJlIGF2YWlsYWJsZTogdmFsaWQgYW5kCisgICAgICogYWN0dWFsIGxvY2FsZS4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBMb2NhbGUgZ2V0TG9jYWxlKFVM
b2NEYXRhTG9jYWxlVHlwZSB0eXBlLCBVRXJyb3JDb2RlJiBzdGF0dXMpIGNvbnN0OworCisjaWZu
ZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKiogR2V0IHRoZSBsb2NhbGUgZm9yIHRoaXMg
YnJlYWsgaXRlcmF0b3Igb2JqZWN0LiBZb3UgY2FuIGNob29zZSBiZXR3ZWVuIHZhbGlkIGFuZCBh
Y3R1YWwgbG9jYWxlLgorICAgICAqICBAcGFyYW0gdHlwZSB0eXBlIG9mIHRoZSBsb2NhbGUgd2Un
cmUgbG9va2luZyBmb3IgKHZhbGlkIG9yIGFjdHVhbCkKKyAgICAgKiAgQHBhcmFtIHN0YXR1cyBl
cnJvciBjb2RlIGZvciB0aGUgb3BlcmF0aW9uCisgICAgICogIEByZXR1cm4gdGhlIGxvY2FsZQor
ICAgICAqICBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICpnZXRMb2NhbGVJRChV
TG9jRGF0YUxvY2FsZVR5cGUgdHlwZSwgVUVycm9yQ29kZSYgc3RhdHVzKSBjb25zdDsKKyNlbmRp
ZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisgICAgLyoqCisgICAgICogIFNldCB0aGUg
c3ViamVjdCB0ZXh0IHN0cmluZyB1cG9uIHdoaWNoIHRoZSBicmVhayBpdGVyYXRvciBpcyBvcGVy
YXRpbmcKKyAgICAgKiAgd2l0aG91dCBjaGFuZ2luZyBhbnkgb3RoZXIgYXNwZWN0IG9mIHRoZSBt
YXRjaGluZyBzdGF0ZS4KKyAgICAgKiAgVGhlIG5ldyBhbmQgcHJldmlvdXMgdGV4dCBzdHJpbmdz
IG11c3QgaGF2ZSB0aGUgc2FtZSBjb250ZW50LgorICAgICAqCisgICAgICogIFRoaXMgZnVuY3Rp
b24gaXMgaW50ZW5kZWQgZm9yIHVzZSBpbiBlbnZpcm9ubWVudHMgd2hlcmUgSUNVIGlzIG9wZXJh
dGluZyBvbgorICAgICAqICBzdHJpbmdzIHRoYXQgbWF5IG1vdmUgYXJvdW5kIGluIG1lbW9yeS4g
IEl0IHByb3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBub3RpZnlpbmcKKyAgICAgKiAgSUNVIHRoYXQg
dGhlIHN0cmluZyBoYXMgYmVlbiByZWxvY2F0ZWQsIGFuZCBwcm92aWRpbmcgYSBuZXcgVVRleHQg
dG8gYWNjZXNzIHRoZQorICAgICAqICBzdHJpbmcgaW4gaXRzIG5ldyBwb3NpdGlvbi4KKyAgICAg
KgorICAgICAqICBOb3RlIHRoYXQgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uIG5l
dmVyIGNvcGllcyB0aGUgdW5kZXJseWluZyB0ZXh0CisgICAgICogIG9mIGEgc3RyaW5nIGJlaW5n
IHByb2Nlc3NlZCwgYnV0IGFsd2F5cyBvcGVyYXRlcyBkaXJlY3RseSBvbiB0aGUgb3JpZ2luYWwg
dGV4dAorICAgICAqICBwcm92aWRlZCBieSB0aGUgdXNlci4gUmVmcmVzaGluZyBzaW1wbHkgZHJv
cHMgdGhlIHJlZmVyZW5jZXMgdG8gdGhlIG9sZCB0ZXh0CisgICAgICogIGFuZCByZXBsYWNlcyB0
aGVtIHdpdGggcmVmZXJlbmNlcyB0byB0aGUgbmV3LgorICAgICAqCisgICAgICogIENhdXRpb246
ICB0aGlzIGZ1bmN0aW9uIGlzIG5vcm1hbGx5IHVzZWQgb25seSBieSB2ZXJ5IHNwZWNpYWxpemVk
LAorICAgICAqICBzeXN0ZW0tbGV2ZWwgY29kZS4gIE9uZSBleGFtcGxlIHVzZSBjYXNlIGlzIHdp
dGggZ2FyYmFnZSBjb2xsZWN0aW9uIHRoYXQgbW92ZXMKKyAgICAgKiAgdGhlIHRleHQgaW4gbWVt
b3J5LgorICAgICAqCisgICAgICogQHBhcmFtIGlucHV0ICAgICAgVGhlIG5ldyAobW92ZWQpIHRl
eHQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgIFJlY2VpdmVzIGVycm9ycyBkZXRl
Y3RlZCBieSB0aGlzIGZ1bmN0aW9uLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICp0aGlzCisg
ICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJ
dGVyYXRvciAmcmVmcmVzaElucHV0VGV4dChVVGV4dCAqaW5wdXQsIFVFcnJvckNvZGUgJnN0YXR1
cykgPSAwOworCisgcHJpdmF0ZToKKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogYnVpbGRJbnN0
YW5jZShjb25zdCBMb2NhbGUmIGxvYywgY29uc3QgY2hhciAqdHlwZSwgaW50MzJfdCBraW5kLCBV
RXJyb3JDb2RlJiBzdGF0dXMpOworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBjcmVhdGVJbnN0
YW5jZShjb25zdCBMb2NhbGUmIGxvYywgaW50MzJfdCBraW5kLCBVRXJyb3JDb2RlJiBzdGF0dXMp
OworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBtYWtlSW5zdGFuY2UoY29uc3QgTG9jYWxlJiBs
b2MsIGludDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIGZyaWVuZCBjbGFz
cyBJQ1VCcmVha0l0ZXJhdG9yRmFjdG9yeTsKKyAgICBmcmllbmQgY2xhc3MgSUNVQnJlYWtJdGVy
YXRvclNlcnZpY2U7CisKK3Byb3RlY3RlZDoKKyAgICAvLyBEbyBub3QgZW5jbG9zZSBwcm90ZWN0
ZWQgZGVmYXVsdC9jb3B5IGNvbnN0cnVjdG9ycyB3aXRoICNpZm5kZWYgVV9ISURFX0lOVEVSTkFM
X0FQSQorICAgIC8vIG9yIGVsc2UgdGhlIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGEgcHVibGljIG9u
ZXMuCisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFrSXRlcmF0b3IoKTsKKyAgICAvKiog
QGludGVybmFsICovCisgICAgQnJlYWtJdGVyYXRvciAoY29uc3QgQnJlYWtJdGVyYXRvciAmb3Ro
ZXIpIDogVU9iamVjdChvdGhlcikge30KKyAgICAvKiogQGludGVybmFsICovCisgICAgQnJlYWtJ
dGVyYXRvciAoY29uc3QgTG9jYWxlJiB2YWxpZCwgY29uc3QgTG9jYWxlJiBhY3R1YWwpOworcHJp
dmF0ZToKKworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBjaGFyIGFjdHVhbExvY2FsZVtVTE9D
X0ZVTExOQU1FX0NBUEFDSVRZXTsKKyAgICBjaGFyIHZhbGlkTG9jYWxlW1VMT0NfRlVMTE5BTUVf
Q0FQQUNJVFldOworCisgICAgLyoqCisgICAgICogVGhlIGFzc2lnbm1lbnQgb3BlcmF0b3IgaGFz
IG5vIHJlYWwgaW1wbGVtZW50YXRpb24uCisgICAgICogSXQncyBwcm92aWRlZCB0byBtYWtlIHRo
ZSBjb21waWxlciBoYXBweS4gRG8gbm90IGNhbGwuCisgICAgICovCisgICAgQnJlYWtJdGVyYXRv
ciYgb3BlcmF0b3I9KGNvbnN0IEJyZWFrSXRlcmF0b3ImKTsKK307CisKKyNpZm5kZWYgVV9ISURF
X0RFUFJFQ0FURURfQVBJCisKK2lubGluZSBVQm9vbCBCcmVha0l0ZXJhdG9yOjppc0J1ZmZlckNs
b25lKCkKK3sKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVD
QVRFRF9BUEkgKi8KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZiAvKiAjaWYgIVVDT05GSUdf
Tk9fQlJFQUtfSVRFUkFUSU9OICovCisKKyNlbmRpZiAvLyBfQlJLSVRFUgorLy9lb2YKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvY2hhcml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1
L3VuaWNvZGUvY2hhcml0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGQ2NTA5MGE0MGE2MDg1OTUxYzczMzA3
Zjc0YWNmODNiYTFiYmM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9jaGFyaXRlci5oCkBAIC0wLDAgKzEsNzIyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBD
b3B5cmlnaHQgKEMpIDE5OTctMjAxMSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwor
KiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyovCisKKyNpZm5kZWYgQ0hBUklURVJfSAorI2RlZmluZSBDSEFSSVRFUl9ICisK
KyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW9iamVjdC5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYg
QysrIEFQSTogQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFNRVNQQUNFX0JFR0lOCisv
KioKKyAqIEFic3RyYWN0IGNsYXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGZvcndhcmQtb25s
eSBpdGVyYXRpb24KKyAqIG9uIHRleHQgb2JqZWN0cy4KKyAqIFRoaXMgaXMgYSBtaW5pbWFsIGlu
dGVyZmFjZSBmb3IgaXRlcmF0aW9uIHdpdGhvdXQgcmFuZG9tIGFjY2VzcworICogb3IgYmFja3dh
cmRzIGl0ZXJhdGlvbi4gSXQgaXMgZXNwZWNpYWxseSB1c2VmdWwgZm9yIHdyYXBwaW5nCisgKiBz
dHJlYW1zIHdpdGggY29udmVydGVycyBpbnRvIGFuIG9iamVjdCBmb3IgY29sbGF0aW9uIG9yCisg
KiBub3JtYWxpemF0aW9uLgorICoKKyAqIDxwPkNoYXJhY3RlcnMgY2FuIGJlIGFjY2Vzc2VkIGlu
IHR3byB3YXlzOiBhcyBjb2RlIHVuaXRzIG9yIGFzCisgKiBjb2RlIHBvaW50cy4KKyAqIFVuaWNv
ZGUgY29kZSBwb2ludHMgYXJlIDIxLWJpdCBpbnRlZ2VycyBhbmQgYXJlIHRoZSBzY2FsYXIgdmFs
dWVzCisgKiBvZiBVbmljb2RlIGNoYXJhY3RlcnMuIElDVSB1c2VzIHRoZSB0eXBlIFVDaGFyMzIg
Zm9yIHRoZW0uCisgKiBVbmljb2RlIGNvZGUgdW5pdHMgYXJlIHRoZSBzdG9yYWdlIHVuaXRzIG9m
IGEgZ2l2ZW4KKyAqIFVuaWNvZGUvVUNTIFRyYW5zZm9ybWF0aW9uIEZvcm1hdCAoYSBjaGFyYWN0
ZXIgZW5jb2Rpbmcgc2NoZW1lKS4KKyAqIFdpdGggVVRGLTE2LCBhbGwgY29kZSBwb2ludHMgY2Fu
IGJlIHJlcHJlc2VudGVkIHdpdGggZWl0aGVyIG9uZQorICogb3IgdHdvIGNvZGUgdW5pdHMgKCJz
dXJyb2dhdGVzIikuCisgKiBTdHJpbmcgc3RvcmFnZSBpcyB0eXBpY2FsbHkgYmFzZWQgb24gY29k
ZSB1bml0cywgd2hpbGUgcHJvcGVydGllcworICogb2YgY2hhcmFjdGVycyBhcmUgdHlwaWNhbGx5
IGRldGVybWluZWQgdXNpbmcgY29kZSBwb2ludCB2YWx1ZXMuCisgKiBTb21lIHByb2Nlc3NlcyBt
YXkgYmUgZGVzaWduZWQgdG8gd29yayB3aXRoIHNlcXVlbmNlcyBvZiBjb2RlIHVuaXRzLAorICog
b3IgaXQgbWF5IGJlIGtub3duIHRoYXQgYWxsIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW1wb3J0YW50
IHRvIGFuCisgKiBhbGdvcml0aG0gY2FuIGJlIHJlcHJlc2VudGVkIHdpdGggc2luZ2xlIGNvZGUg
dW5pdHMuCisgKiBPdGhlciBwcm9jZXNzZXMgd2lsbCBuZWVkIHRvIHVzZSB0aGUgY29kZSBwb2lu
dCBhY2Nlc3MgZnVuY3Rpb25zLjwvcD4KKyAqCisgKiA8cD5Gb3J3YXJkQ2hhcmFjdGVySXRlcmF0
b3IgcHJvdmlkZXMgbmV4dFBvc3RJbmMoKSB0byBhY2Nlc3MKKyAqIGEgY29kZSB1bml0IGFuZCBh
ZHZhbmNlIGFuIGludGVybmFsIHBvc2l0aW9uIGludG8gdGhlIHRleHQgb2JqZWN0LAorICogc2lt
aWxhciB0byBhIDxjb2RlPnJldHVybiB0ZXh0W3Bvc2l0aW9uKytdPC9jb2RlPi48YnI+CisgKiBJ
dCBwcm92aWRlcyBuZXh0MzJQb3N0SW5jKCkgdG8gYWNjZXNzIGEgY29kZSBwb2ludCBhbmQgYWR2
YW5jZSBhbiBpbnRlcm5hbAorICogcG9zaXRpb24uPC9wPgorICoKKyAqIDxwPm5leHQzMlBvc3RJ
bmMoKSBhc3N1bWVzIHRoYXQgdGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgdGhhdCBvZgorICogdGhl
IGJlZ2lubmluZyBvZiBhIGNvZGUgcG9pbnQsIGkuZS4sIG9mIGl0cyBmaXJzdCBjb2RlIHVuaXQu
CisgKiBBZnRlciBuZXh0MzJQb3N0SW5jKCksIHRoaXMgd2lsbCBiZSB0cnVlIGFnYWluLgorICog
SW4gZ2VuZXJhbCwgYWNjZXNzIHRvIGNvZGUgdW5pdHMgYW5kIGNvZGUgcG9pbnRzIGluIHRoZSBz
YW1lCisgKiBpdGVyYXRpb24gbG9vcCBzaG91bGQgbm90IGJlIG1peGVkLiBJbiBVVEYtMTYsIGlm
IHRoZSBjdXJyZW50IHBvc2l0aW9uCisgKiBpcyBvbiBhIHNlY29uZCBjb2RlIHVuaXQgKExvdyBT
dXJyb2dhdGUpLCB0aGVuIG9ubHkgdGhhdCBjb2RlIHVuaXQKKyAqIGlzIHJldHVybmVkIGV2ZW4g
YnkgbmV4dDMyUG9zdEluYygpLjwvcD4KKyAqCisgKiA8cD5Gb3IgaXRlcmF0aW9uIHdpdGggZWl0
aGVyIGZ1bmN0aW9uLCB0aGVyZSBhcmUgdHdvIHdheXMgdG8KKyAqIGNoZWNrIGZvciB0aGUgZW5k
IG9mIHRoZSBpdGVyYXRpb24uIFdoZW4gdGhlcmUgYXJlIG5vIG1vcmUKKyAqIGNoYXJhY3RlcnMg
aW4gdGhlIHRleHQgb2JqZWN0OgorICogPHVsPgorICogPGxpPlRoZSBoYXNOZXh0KCkgZnVuY3Rp
b24gcmV0dXJucyBGQUxTRS48L2xpPgorICogPGxpPm5leHRQb3N0SW5jKCkgYW5kIG5leHQzMlBv
c3RJbmMoKSByZXR1cm4gRE9ORQorICogICAgIHdoZW4gb25lIGF0dGVtcHRzIHRvIHJlYWQgYmV5
b25kIHRoZSBlbmQgb2YgdGhlIHRleHQgb2JqZWN0LjwvbGk+CisgKiA8L3VsPgorICoKKyAqIEV4
YW1wbGU6CisgKiBcY29kZSAKKyAqIHZvaWQgZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0ZXJJdGVy
YXRvciAmaXQpIHsKKyAqICAgICBVQ2hhcjMyIGM7CisgKiAgICAgd2hpbGUoaXQuaGFzTmV4dCgp
KSB7CisgKiAgICAgICAgIGM9aXQubmV4dDMyUG9zdEluYygpOworICogICAgICAgICAvLyB1c2Ug
YworICogICAgIH0KKyAqIH0KKyAqCisgKiB2b2lkIGZ1bmN0aW9uMShGb3J3YXJkQ2hhcmFjdGVy
SXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAqICAgICB3aGlsZSgoYz1pdC5uZXh0
UG9zdEluYygpKSE9Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yOjpET05FKSB7CisgKiAgICAgICAg
IC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wPgorICoKKyAq
IEBzdGFibGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgRm9yd2FyZENoYXJhY3Rl
ckl0ZXJhdG9yIDogcHVibGljIFVPYmplY3QgeworcHVibGljOgorICAgIC8qKgorICAgICAqIFZh
bHVlIHJldHVybmVkIGJ5IG1vc3Qgb2YgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJ3MgZnVuY3Rp
b25zCisgICAgICogd2hlbiB0aGUgaXRlcmF0b3IgaGFzIHJlYWNoZWQgdGhlIGxpbWl0cyBvZiBp
dHMgaXRlcmF0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGVudW0g
eyBET05FID0gMHhmZmZmIH07CisgICAgCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3Rvci4gIAor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkZvcndhcmRDaGFy
YWN0ZXJJdGVyYXRvcigpOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSB3aGVu
IGJvdGggaXRlcmF0b3JzIHJlZmVyIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRo
ZSBzYW1lIGNoYXJhY3Rlci1zdG9yYWdlIG9iamVjdC4gIAorICAgICAqIEBwYXJhbSB0aGF0IFRo
ZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5Cisg
ICAgICogQHJldHVybiB0cnVlIHdoZW4gYm90aCBpdGVyYXRvcnMgcmVmZXIgdG8gdGhlIHNhbWUK
KyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgY2hhcmFjdGVyLXN0b3JhZ2Ugb2JqZWN0Cisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRv
cj09KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3QgPSAwOworICAg
IAorICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBpdGVyYXRvcnMgcmVmZXIg
dG8gZGlmZmVyZW50CisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdHMsIG9yIHRvIGRpZmZlcmVu
dCBjaGFyYWN0ZXJzIGluIHRoZQorICAgICAqIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdC4gIAor
ICAgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29t
cGFyZWQgZm9yIGluZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRydWUgd2hlbiB0aGUgaXRlcmF0
b3JzIHJlZmVyIHRvIGRpZmZlcmVudAorICAgICAqIHRleHQtc3RvcmFnZSBvYmplY3RzLCBvciB0
byBkaWZmZXJlbnQgY2hhcmFjdGVycyBpbiB0aGUKKyAgICAgKiBzYW1lIHRleHQtc3RvcmFnZSBv
YmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgVUJvb2wg
b3BlcmF0b3IhPShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0Owor
ICAgIAorICAgIC8qKgorICAgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhpcyBpdGVy
YXRvci4gIAorICAgICAqIEByZXR1cm4gdGhlIGhhc2ggY29kZS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgaGFzaENvZGUodm9pZCkgY29uc3Qg
PSAwOworICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhpcyBG
b3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgKCJwb29yIG1hbidzCisgICAgICogUlRUSSIpLjxQPiBE
ZXNwaXRlIHRoZSBmYWN0IHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBwdWJsaWMsCisgICAgICogRE8g
Tk9UIENPTlNJREVSIElUIFBBUlQgT0YgQ0hBUkFDVEVSSVRFUkFUT1InUyBBUEkhIAorICAgICAq
IEByZXR1cm4gYSBVQ2xhc3NJRCBmb3IgdGhpcyBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXRE
eW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogR2V0
cyB0aGUgY3VycmVudCBjb2RlIHVuaXQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhl
IG5leHQgY29kZSB1bml0CisgICAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0
b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgdW5p
dHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBj
b2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBV
Q2hhciAgICAgICAgIG5leHRQb3N0SW5jKHZvaWQpID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAg
KiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgZm9yIHJldHVybmluZyBhbmQgYWR2YW5jZXMg
dG8gdGhlIG5leHQgY29kZSBwb2ludAorICAgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAg
ICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBj
b2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBj
dXJyZW50IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMlBvc3RJbmModm9pZCkgPSAwOworICAgIAorICAg
IC8qKgorICAgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0
cyBvciBjb2RlIHBvaW50cworICAgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9u
IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogVGhpcyBpcyB1c2VkIHdpdGggbmV4dFBv
c3RJbmMoKSBvciBuZXh0MzJQb3N0SW5jKCkgaW4gZm9yd2FyZAorICAgICAqIGl0ZXJhdGlvbi4K
KyAgICAgKiBAcmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9y
IGNvZGUgcG9pbnRzCisgICAgICogYXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4g
dGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNOZXh0KCkgPSAwOworICAgIAorcHJvdGVjdGVkOgor
ICAgIC8qKiBEZWZhdWx0IGNvbnN0cnVjdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxl
bWVudGluZyBjbGFzcy4gQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRl
cmF0b3IoKTsKKyAgICAKKyAgICAvKiogQ29weSBjb25zdHJ1Y3RvciB0byBiZSBvdmVycmlkZGVu
IGluIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3MuIEBzdGFibGUgSUNVIDIuMCovCisgICAgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmb3RoZXIp
OworICAgIAorICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IgdG8gYmUgb3ZlcnJp
ZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmb3BlcmF0b3I9KGNvbnN0IEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciYpIHsgcmV0dXJuICp0aGlzOyB9Cit9OworCisvKioKKyAq
IEFic3RyYWN0IGNsYXNzIHRoYXQgZGVmaW5lcyBhbiBBUEkgZm9yIGl0ZXJhdGlvbgorICogb24g
dGV4dCBvYmplY3RzLgorICogVGhpcyBpcyBhbiBpbnRlcmZhY2UgZm9yIGZvcndhcmQgYW5kIGJh
Y2t3YXJkIGl0ZXJhdGlvbgorICogYW5kIHJhbmRvbSBhY2Nlc3MgaW50byBhIHRleHQgb2JqZWN0
LgorICoKKyAqIDxwPlRoZSBBUEkgcHJvdmlkZXMgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB0byB0
aGUgSmF2YSBhbmQgb2xkZXIgSUNVCisgKiBDaGFyYWN0ZXJJdGVyYXRvciBjbGFzc2VzIGJ1dCBl
eHRlbmRzIHRoZW0gc2lnbmlmaWNhbnRseToKKyAqIDxvbD4KKyAqIDxsaT5DaGFyYWN0ZXJJdGVy
YXRvciBpcyBub3cgYSBzdWJjbGFzcyBvZiBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IuPC9saT4K
KyAqIDxsaT5XaGlsZSB0aGUgb2xkIEFQSSBmdW5jdGlvbnMgcHJvdmlkZWQgZm9yd2FyZCBpdGVy
YXRpb24gd2l0aAorICogICAgICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MsIHRoZSBuZXcgb25l
IGFsc28gcHJvdmlkZXMgZnVuY3Rpb25zCisgKiAgICAgd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNl
bWFudGljcy4gVGhleSBhcmUgbW9yZSBlZmZpY2llbnQgYW5kIHNob3VsZAorICogICAgIGJlIHRo
ZSBwcmVmZXJyZWQgaXRlcmF0b3IgZnVuY3Rpb25zIGZvciBuZXcgaW1wbGVtZW50YXRpb25zLgor
ICogICAgIFRoZSBiYWNrd2FyZCBpdGVyYXRpb24gYWx3YXlzIGhhZCAicHJlLWRlY3JlbWVudCIg
c2VtYW50aWNzLCB3aGljaAorICogICAgIGFyZSBlZmZpY2llbnQuPC9saT4KKyAqIDxsaT5KdXN0
IGxpa2UgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLCBpdCBwcm92aWRlcyBhY2Nlc3MgdG8KKyAq
ICAgICBib3RoIGNvZGUgdW5pdHMgYW5kIGNvZGUgcG9pbnRzLiBDb2RlIHBvaW50IGFjY2VzcyB2
ZXJzaW9ucyBhcmUgYXZhaWxhYmxlCisgKiAgICAgZm9yIHRoZSBvbGQgYW5kIHRoZSBuZXcgaXRl
cmF0aW9uIHNlbWFudGljcy48L2xpPgorICogPGxpPlRoZXJlIGFyZSBuZXcgZnVuY3Rpb25zIGZv
ciBzZXR0aW5nIGFuZCBtb3ZpbmcgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAqICAgICB3aXRob3V0
IHJldHVybmluZyBhIGNoYXJhY3RlciwgZm9yIGVmZmljaWVuY3kuPC9saT4KKyAqIDwvb2w+Cisg
KgorICogU2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciBmb3IgZXhhbXBsZXMgZm9yIHVzaW5n
IHRoZSBuZXcgZm9yd2FyZCBpdGVyYXRpb24KKyAqIGZ1bmN0aW9ucy4gRm9yIGJhY2t3YXJkIGl0
ZXJhdGlvbiwgdGhlcmUgaXMgYWxzbyBhIGhhc1ByZXZpb3VzKCkgZnVuY3Rpb24KKyAqIHRoYXQg
Y2FuIGJlIHVzZWQgYW5hbG9nb3VzbHkgdG8gaGFzTmV4dCgpLgorICogVGhlIG9sZCBmdW5jdGlv
bnMgd29yayBhcyBiZWZvcmUgYW5kIGFyZSBzaG93biBiZWxvdy48L3A+CisgKgorICogPHA+RXhh
bXBsZXMgZm9yIHNvbWUgb2YgdGhlIG5ldyBmdW5jdGlvbnM6PC9wPgorICoKKyAqIEZvcndhcmQg
aXRlcmF0aW9uIHdpdGggaGFzTmV4dCgpOgorICogXGNvZGUKKyAqIHZvaWQgZm9yd2FyZDEoQ2hh
cmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIzMiBjOworICogICAgIGZvcihpdC5z
ZXRUb1N0YXJ0KCk7IGl0Lmhhc05leHQoKTspIHsKKyAqICAgICAgICAgYz1pdC5uZXh0MzJQb3N0
SW5jKCk7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgfQorICogIH0KKyAqIFxlbmRjb2Rl
CisgKiBGb3J3YXJkIGl0ZXJhdGlvbiBtb3JlIHNpbWlsYXIgdG8gbG9vcHMgd2l0aCB0aGUgb2xk
IGZvcndhcmQgaXRlcmF0aW9uLAorICogc2hvd2luZyBhIHdheSB0byBjb252ZXJ0IHNpbXBsZSBm
b3IoKSBsb29wczoKKyAqIFxjb2RlCisgKiB2b2lkIGZvcndhcmQyKENoYXJhY3Rlckl0ZXJhdG9y
ICZpdCkgeworICogICAgIFVDaGFyIGM7CisgKiAgICAgZm9yKGM9aXQuZmlyc3RQb3N0SW5jKCk7
IGMhPUNoYXJhY3Rlckl0ZXJhdG9yOjpET05FOyBjPWl0Lm5leHRQb3N0SW5jKCkpIHsKKyAqICAg
ICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqIH0KKyAqIFxlbmRjb2RlCisgKiBCYWNrd2Fy
ZCBpdGVyYXRpb24gd2l0aCBzZXRUb0VuZCgpIGFuZCBoYXNQcmV2aW91cygpOgorICogXGNvZGUK
KyAqICB2b2lkIGJhY2t3YXJkMShDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICAgVUNo
YXIzMiBjOworICogICAgICBmb3IoaXQuc2V0VG9FbmQoKTsgaXQuaGFzUHJldmlvdXMoKTspIHsK
KyAqICAgICAgICAgYz1pdC5wcmV2aW91czMyKCk7CisgKiAgICAgICAgICAvLyB1c2UgYworICog
ICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIGEg
bW9yZSB0cmFkaXRpb25hbCBmb3IoKSBsb29wOgorICogXGNvZGUKKyAqIHZvaWQgYmFja3dhcmQy
KENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyIGM7CisgKiAgICAgZm9yKGM9
aXQubGFzdCgpOyBjIT1DaGFyYWN0ZXJJdGVyYXRvcjo6RE9ORTsgYz1pdC5wcmV2aW91cygpKSB7
CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICoK
KyAqIEV4YW1wbGUgZm9yIHJhbmRvbSBhY2Nlc3M6CisgKiBcY29kZQorICogIHZvaWQgcmFuZG9t
KENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgICAvLyBzZXQgdG8gdGhlIHRoaXJkIGNv
ZGUgcG9pbnQgZnJvbSB0aGUgYmVnaW5uaW5nCisgKiAgICAgIGl0Lm1vdmUzMigzLCBDaGFyYWN0
ZXJJdGVyYXRvcjo6a1N0YXJ0KTsKKyAqICAgICAgLy8gZ2V0IGEgY29kZSBwb2ludCBmcm9tIGhl
cmUgd2l0aG91dCBtb3ZpbmcgdGhlIHBvc2l0aW9uCisgKiAgICAgIFVDaGFyMzIgYz1pdC5jdXJy
ZW50MzIoKTsKKyAqICAgICAgLy8gZ2V0IHRoZSBwb3NpdGlvbgorICogICAgICBpbnQzMl90IHBv
cz1pdC5nZXRJbmRleCgpOworICogICAgICAvLyBnZXQgdGhlIHByZXZpb3VzIGNvZGUgdW5pdAor
ICogICAgICBVQ2hhciB1PWl0LnByZXZpb3VzKCk7CisgKiAgICAgIC8vIG1vdmUgYmFjayBvbmUg
bW9yZSBjb2RlIHVuaXQKKyAqICAgICAgaXQubW92ZSgtMSwgQ2hhcmFjdGVySXRlcmF0b3I6OmtD
dXJyZW50KTsKKyAqICAgICAgLy8gc2V0IHRoZSBwb3NpdGlvbiBiYWNrIHRvIHdoZXJlIGl0IHdh
cworICogICAgICAvLyBhbmQgcmVhZCB0aGUgc2FtZSBjb2RlIHBvaW50IGMgYW5kIG1vdmUgYmV5
b25kIGl0CisgKiAgICAgIGl0LnNldEluZGV4KHBvcyk7CisgKiAgICAgIGlmKGMhPWl0Lm5leHQz
MlBvc3RJbmMoKSkgeworICogICAgICAgICAgZXhpdCgxKTsgLy8gQ2hhcmFjdGVySXRlcmF0b3Ig
aW5jb25zaXN0ZW50CisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICoKKyAqIDxwPkV4
YW1wbGVzLCBlc3BlY2lhbGx5IGZvciB0aGUgb2xkIEFQSTo8L3A+CisgKgorICogRnVuY3Rpb24g
cHJvY2Vzc2luZyBjaGFyYWN0ZXJzLCBpbiB0aGlzIGV4YW1wbGUgc2ltcGxlIG91dHB1dAorICog
PHByZT4KKyAqIFxjb2RlCisgKiAgdm9pZCBwcm9jZXNzQ2hhciggVUNoYXIgYyApCisgKiAgewor
ICogICAgICBjb3V0IDw8ICIgIiA8PCBjOworICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4K
KyAqIFRyYXZlcnNlIHRoZSB0ZXh0IGZyb20gc3RhcnQgdG8gZmluaXNoCisgKiA8cHJlPiAKKyAq
IFxjb2RlCisgKiAgdm9pZCB0cmF2ZXJzZUZvcndhcmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIp
CisgKiAgeworICogICAgICBmb3IoVUNoYXIgYyA9IGl0ZXIuZmlyc3QoKTsgYyAhPSBDaGFyYWN0
ZXJJdGVyYXRvci5ET05FOyBjID0gaXRlci5uZXh0KCkpIHsKKyAqICAgICAgICAgIHByb2Nlc3ND
aGFyKGMpOworICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJh
dmVyc2UgdGhlIHRleHQgYmFja3dhcmRzLCBmcm9tIGVuZCB0byBzdGFydAorICogPHByZT4KKyAq
IFxjb2RlCisgKiAgdm9pZCB0cmF2ZXJzZUJhY2t3YXJkKENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVy
KQorICogIHsKKyAqICAgICAgZm9yKFVDaGFyIGMgPSBpdGVyLmxhc3QoKTsgYyAhPSBDaGFyYWN0
ZXJJdGVyYXRvci5ET05FOyBjID0gaXRlci5wcmV2aW91cygpKSB7CisgKiAgICAgICAgICBwcm9j
ZXNzQ2hhcihjKTsKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAq
IFRyYXZlcnNlIGJvdGggZm9yd2FyZCBhbmQgYmFja3dhcmQgZnJvbSBhIGdpdmVuIHBvc2l0aW9u
IGluIHRoZSB0ZXh0LiAKKyAqIENhbGxzIHRvIG5vdEJvdW5kYXJ5KCkgaW4gdGhpcyBleGFtcGxl
IHJlcHJlc2VudHMgc29tZSBhZGRpdGlvbmFsIHN0b3BwaW5nIGNyaXRlcmlhLgorICogPHByZT4K
KyAqIFxjb2RlCisgKiB2b2lkIHRyYXZlcnNlT3V0KENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyLCBp
bnQzMl90IHBvcykKKyAqIHsKKyAqICAgICAgVUNoYXIgYzsKKyAqICAgICAgZm9yIChjID0gaXRl
ci5zZXRJbmRleChwb3MpOworICogICAgICBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUgJiYg
KFVuaWNvZGU6OmlzTGV0dGVyKGMpIHx8IFVuaWNvZGU6OmlzRGlnaXQoYykpOworICogICAgICAg
ICAgYyA9IGl0ZXIubmV4dCgpKSB7fQorICogICAgICBpbnQzMl90IGVuZCA9IGl0ZXIuZ2V0SW5k
ZXgoKTsKKyAqICAgICAgZm9yIChjID0gaXRlci5zZXRJbmRleChwb3MpOworICogICAgICAgICAg
YyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIChVbmljb2RlOjppc0xldHRlcihjKSB8fCBV
bmljb2RlOjppc0RpZ2l0KGMpKTsKKyAqICAgICAgICAgIGMgPSBpdGVyLnByZXZpb3VzKCkpIHt9
CisgKiAgICAgIGludDMyX3Qgc3RhcnQgPSBpdGVyLmdldEluZGV4KCkgKyAxOworICogIAorICog
ICAgICBjb3V0IDw8ICJzdGFydDogIiA8PCBzdGFydCA8PCAiIGVuZDogIiA8PCBlbmQgPDwgZW5k
bDsKKyAqICAgICAgZm9yIChjID0gaXRlci5zZXRJbmRleChzdGFydCk7IGl0ZXIuZ2V0SW5kZXgo
KSA8IGVuZDsgYyA9IGl0ZXIubmV4dCgpICkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7
CisgKiAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIENyZWF0aW5nIGEg
U3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgYW5kIGNhbGxpbmcgdGhlIHRlc3QgZnVuY3Rpb25zCisg
KiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIENoYXJhY3Rlckl0ZXJhdG9yX0V4YW1wbGUoIHZv
aWQgKQorICogICB7CisgKiAgICAgICBjb3V0IDw8IGVuZGwgPDwgIj09PT09IENoYXJhY3Rlckl0
ZXJhdG9yX0V4YW1wbGU6ID09PT09IiA8PCBlbmRsOworICogICAgICAgVW5pY29kZVN0cmluZyB0
ZXh0KCJFaW4ga2xlaW5lciBTYXR6LiIpOworICogICAgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0
b3IgaXRlcmF0b3IodGV4dCk7CisgKiAgICAgICBjb3V0IDw8ICItLS0tLSB0cmF2ZXJzZUZvcndh
cmQ6IC0tLS0tLS0tLS0tIiA8PCBlbmRsOworICogICAgICAgdHJhdmVyc2VGb3J3YXJkKCBpdGVy
YXRvciApOworICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIHRyYXZlcnNl
QmFja3dhcmQ6IC0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZUJhY2t3YXJk
KCBpdGVyYXRvciApOworICogICAgICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIHRy
YXZlcnNlT3V0OiAtLS0tLS0tLS0tLS0tLS0iIDw8IGVuZGw7CisgKiAgICAgICB0cmF2ZXJzZU91
dCggaXRlcmF0b3IsIDcgKTsKKyAqICAgICAgIGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICItLS0t
LSIgPDwgZW5kbDsKKyAqICAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICoKKyAqIEBzdGFi
bGUgSUNVIDIuMAorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgQ2hhcmFjdGVySXRlcmF0b3IgOiBw
dWJsaWMgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAg
KiBPcmlnaW4gZW51bWVyYXRpb24gZm9yIHRoZSBtb3ZlKCkgYW5kIG1vdmUzMigpIGZ1bmN0aW9u
cy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBlbnVtIEVPcmlnaW4geyBr
U3RhcnQsIGtDdXJyZW50LCBrRW5kIH07CisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkNoYXJhY3Rlckl0
ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgcG9pbnRlciB0byBhIG5ldyBD
aGFyYWN0ZXJJdGVyYXRvciBvZiB0aGUgc2FtZQorICAgICAqIGNvbmNyZXRlIGNsYXNzIGFzIHRo
aXMgb25lLCBhbmQgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAgICogY2hhcmFjdGVyIGluIHRo
ZSBzYW1lIHRleHQtc3RvcmFnZSBvYmplY3QgYXMgdGhpcyBvbmUuICBUaGUKKyAgICAgKiBjYWxs
ZXIgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIHRoZSBuZXcgY2xvbmUuICAKKyAgICAgKiBA
cmV0dXJuIGEgcG9pbnRlciB0byBhIG5ldyBDaGFyYWN0ZXJJdGVyYXRvcgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3IqIGNsb25l
KHZvaWQpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJh
bmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2Vk
IHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBm
aXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3Qodm9pZCkgPSAw
OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZp
cnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhh
dCBjb2RlIHVuaXQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICAgKiB0byB0aGUgc2Vjb25k
IGNvZGUgdW5pdC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICAg
KiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpLgorICAgICAqIEByZXR1
cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdFBv
c3RJbmModm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZl
ciB0byB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2Us
IGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LAorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8g
YmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyKCkuCisgICAgICogTm90ZSB0aGF0IGFuIGl0
ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKSwgYmVnaW5uaW5nIHdpdGgsCisgICAgICogZS5n
Liwgc2V0VG9TdGFydCgpIG9yIGZpcnN0UG9zdEluYygpLCBpcyBtb3JlIGVmZmljaWVudC4KKyAg
ICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2Uu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAg
ICAgIGZpcnN0MzIodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0
b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0
aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSBwb2ludCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlv
bgorICAgICAqIHRvIHRoZSBzZWNvbmQgY29kZSBwb2ludC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2
ZSB0byBzZXRUb1N0YXJ0KCkKKyAgICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0
MzJQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMg
aXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyUG9zdEluYyh2b2lkKTsKKworICAgIC8qKgorICAg
ICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgb3Ig
Y29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UuIFRoaXMgY2FuIGJlIHVz
ZWQgdG8gYmVnaW4gYSBmb3J3YXJkCisgICAgICogaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMo
KSBvciBuZXh0MzJQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgc3RhcnQgcG9zaXRpb24g
b2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIGlubGluZSBpbnQzMl90ICAgIHNldFRvU3RhcnQoKTsKKworICAgIC8qKgorICAgICAqIFNl
dHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMKKyAg
ICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgICAq
IFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKS4K
KyAgICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbGFzdCh2b2lkKSA9IDA7Cisg
ICAgICAgIAorICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRo
ZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0
dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFu
IGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzMzIoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBsYXN0IGNv
ZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBV
Q2hhcjMyICAgICAgIGxhc3QzMih2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRo
ZSBpdGVyYXRvciB0byB0aGUgZW5kIG9mIGl0cyBpdGVyYXRpb24gcmFuZ2UsIGp1c3QgYmVoaW5k
CisgICAgICogdGhlIGxhc3QgY29kZSB1bml0IG9yIGNvZGUgcG9pbnQuIFRoaXMgY2FuIGJlIHVz
ZWQgdG8gYmVnaW4gYSBiYWNrd2FyZAorICAgICAqIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkg
b3IgcHJldmlvdXMzMigpLgorICAgICAqIEByZXR1cm4gdGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUg
aXRlcmF0aW9uIHJhbmdlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5s
aW5lIGludDMyX3QgICAgc2V0VG9FbmQoKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0
ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgICAqIGlu
IHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAg
ICAqIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICAKKyAgICAgKiBAcGFyYW0gcG9zaXRpb24gdGhl
ICJwb3NpdGlvbiItdGggY29kZSB1bml0IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0CisgICAg
ICogQHJldHVybiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIHNldEluZGV4KGludDMy
X3QgcG9zaXRpb24pID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiB0aGF0IGNv
bnRhaW5zIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgICAqIGluIHRoZSB0ZXh0LXN0
b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgICAqIHJldHVybnMg
dGhhdCBjb2RlIHBvaW50LgorICAgICAqIFRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIGFkanVzdGVk
IHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICAgKiAoaXRzIGZpcnN0IGNv
ZGUgdW5pdCkuCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSAicG9zaXRpb24iLXRoIGNvZGUg
dW5pdCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEByZXR1cm4gdGhlICJwb3Np
dGlvbiItdGggY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgc2V0SW5kZXgzMihpbnQzMl90IHBvc2l0aW9uKSA9IDA7
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1
cnJlbnRseSByZWZlcnMgdG8uIAorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSB1bml0
LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAg
ICAgICAgY3VycmVudCh2b2lkKSBjb25zdCA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIGNvZGUgcG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8u
ICAKKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGN1cnJlbnQzMih2
b2lkKSBjb25zdCA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRo
ZSBuZXh0IGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBl
bmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUKKyAg
ICAgKiBubyBtb3JlIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICog
QHJldHVybiB0aGUgbmV4dCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHQodm9pZCkgPSAwOworICAgICAgICAK
KyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRoZSBp
dGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0
aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgICAqIE5vdGUgdGhhdCBpdGVyYXRpb24gd2l0
aCAicHJlLWluY3JlbWVudCIgc2VtYW50aWNzIGlzIGxlc3MKKyAgICAgKiBlZmZpY2llbnQgdGhh
biBpdGVyYXRpb24gd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNlbWFudGljcworICAgICAqIHRoYXQg
aXMgcHJvdmlkZWQgYnkgbmV4dDMyUG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhlIG5leHQg
Y29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IFVDaGFyMzIgICAgICAgbmV4dDMyKHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAg
ICogQWR2YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJh
bmdlCisgICAgICogKHRvd2FyZCBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUg
dW5pdC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4s
IHJldHVybnMgRE9ORS4gIAorICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgdW5pdC4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAg
ICAgcHJldmlvdXModm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhl
IHByZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dh
cmQgc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUg
YXJlCisgICAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4g
CisgICAgICogQHJldHVybiB0aGUgcHJldmlvdXMgY29kZSBwb2ludC4gCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHByZXZpb3VzMzIo
dm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUg
bm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYmVmb3JlIHRoZSBjdXJy
ZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogVGhpcyBpcyB1c2Vk
IHdpdGggcHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkgaW4gYmFja3dhcmQKKyAgICAgKiBpdGVy
YXRpb24uCisgICAgICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVu
aXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uIGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UsIHJldHVybiBUUlVFIG90aGVyd2lzZS4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNQcmV2aW91
cygpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4g
dGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0
ZXIgcmV0dXJuZWQgYnkgZmlyc3QoKS4gIFNpbmNlIGl0J3MKKyAgICAgKiBwb3NzaWJsZSB0byBj
cmVhdGUgYW4gaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBhY3Jvc3Mgb25seQorICAgICAqIHBhcnQg
b2YgYSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LCB0aGlzIG51bWJlciBpc24ndAorICAgICAqIG5lY2Vz
c2FyaWx5IDAuICAKKyAgICAgKiBAcmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5k
ZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciByZXR1
cm5lZCBieSBmaXJzdCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlu
bGluZSBpbnQzMl90ICAgICAgIHN0YXJ0SW5kZXgodm9pZCkgY29uc3Q7CisgICAgICAgIAorICAg
IC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcg
dGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBwb3NpdGlvbiBpbW1lZGlhdGVseSBC
RVlPTkQgdGhlIGNoYXJhY3RlcgorICAgICAqIHJldHVybmVkIGJ5IGxhc3QoKS4gIAorICAgICAq
IEByZXR1cm4gdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdl
CisgICAgICogb2JqZWN0IG9mIHRoZSBwb3NpdGlvbiBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGNo
YXJhY3RlcgorICAgICAqIHJldHVybmVkIGJ5IGxhc3QoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICBlbmRJbmRleCh2b2lkKSBjb25z
dDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBp
biB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJh
Y3RlciB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0bworICAgICAqIChpLmUuLCB0aGUg
Y2hhcmFjdGVyIHJldHVybmVkIGJ5IGN1cnJlbnQoKSkuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBu
dW1iZXJpYyBpbmRleCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCBvZiAKKyAgICAgKiB0aGUg
Y2hhcmFjdGVyIHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAgZ2V0SW5kZXgodm9p
ZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGVu
dGlyZSB0ZXh0IGluIHRoZSB1bmRlcmx5aW5nCisgICAgICogdGV4dC1zdG9yYWdlIG9iamVjdC4K
KyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGVudGlyZSB0ZXh0IGluIHRoZSB0ZXh0
LXN0b3JhZ2Ugb2JqZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5s
aW5lIGludDMyX3QgICAgICAgICAgIGdldExlbmd0aCgpIGNvbnN0OworCisgICAgLyoqCisgICAg
ICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVu
ZCBvZiB0aGUKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJy
ZW50IHBvc2l0aW9uIGl0c2VsZi4KKyAgICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGlu
IG51bWJlcnMgb2YgY29kZSB1bml0cyBmb3J3YXJkCisgICAgICogb3IgYmFja3dhcmQgYnkgc3Bl
Y2lmeWluZyBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgICAqIEBwYXJhbSBkZWx0
YSB0aGUgcG9zaXRpb24gcmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5z
IGZvcndhcmQ7CisgICAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICAg
KiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0Vu
ZH0KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlKGludDMyX3QgZGVsdGEs
IEVPcmlnaW4gb3JpZ2luKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVu
dCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgICAqIGl0
ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxm
LgorICAgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHBv
aW50cyBmb3J3YXJkCisgICAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZl
IG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9zaXRpb24gcmVs
YXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7CisgICAgICog
YSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICAgKiBAcGFyYW0gb3JpZ2luIE9y
aWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICAgKiBAcmV0dXJu
IHRoZSBuZXcgcG9zaXRpb24KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlMzIoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4p
ID0gMDsKKworICAgIC8qKgorICAgICAqIENvcGllcyB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24g
aW50byB0aGUgVW5pY29kZVN0cmluZworICAgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAg
CisgICAgICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5kZXIg
aXRlcmF0aW9uLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCB2b2lkICAgICAgICAgICAgZ2V0VGV4dChVbmljb2RlU3RyaW5nJiAgcmVzdWx0KSA9IDA7CisK
K3Byb3RlY3RlZDoKKyAgICAvKioKKyAgICAgKiBFbXB0eSBjb25zdHJ1Y3Rvci4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgICAg
LyoqCisgICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoIGZpZWxkIGlu
IHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBD
aGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0aCk7CisKKyAgICAvKioKKyAgICAgKiBDb25z
dHJ1Y3RvciwganVzdCBzZXR0aW5nIHRoZSBsZW5ndGggYW5kIHBvc2l0aW9uIGZpZWxkcyBpbiB0
aGlzIGJhc2UgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hh
cmFjdGVySXRlcmF0b3IoaW50MzJfdCBsZW5ndGgsIGludDMyX3QgcG9zaXRpb24pOworCisgICAg
LyoqCisgICAgICogQ29uc3RydWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoLCBzdGFydCwg
ZW5kLCBhbmQgcG9zaXRpb24gZmllbGRzIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0
aCwgaW50MzJfdCB0ZXh0QmVnaW4sIGludDMyX3QgdGV4dEVuZCwgaW50MzJfdCBwb3NpdGlvbik7
CisgIAorICAgIC8qKgorICAgICAqIENvcHkgY29uc3RydWN0b3IuCisgICAgICoKKyAgICAgKiBA
cGFyYW0gdGhhdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgQ2hhcmFj
dGVySXRlcmF0b3IgJnRoYXQpOworCisgICAgLyoqCisgICAgICogQXNzaWdubWVudCBvcGVyYXRv
ci4gIFNldHMgdGhpcyBDaGFyYWN0ZXJJdGVyYXRvciB0byBoYXZlIHRoZSBzYW1lIGJlaGF2aW9y
LAorICAgICAqIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBD
aGFyYWN0ZXJJdGVyYXRvciBwYXNzZWQgaW4uCisgICAgICogQHJldHVybiB0aGUgbmV3bHkgc2V0
IENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IENoYXJhY3Rlckl0ZXJhdG9yICZvcGVyYXRvcj0oY29uc3QgQ2hhcmFjdGVySXRlcmF0b3IgJnRo
YXQpOworCisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyB0ZXh0IGxlbmd0aCBmaWVsZC4KKyAg
ICAgKiBOZWNlc3NhcnkgdGhpcyBmb3IgY29ycmVjdCBnZXRUZXh0KCkgYW5kIGhhc2hDb2RlKCku
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCB0ZXh0TGVuZ3Ro
OworCisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIGN1cnJlbnQgcG9z
aXRpb24uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCAgcG9z
OworCisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhlIHN0YXJ0IG9mIHRo
ZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
aW50MzJfdCAgYmVnaW47CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNsYXNzIGZpZWxkIGZvciB0
aGUgZW5kIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgaW50MzJfdCAgZW5kOworfTsKKworaW5saW5lIFVCb29sCitGb3J3YXJkQ2hh
cmFjdGVySXRlcmF0b3I6Om9wZXJhdG9yIT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
JiB0aGF0KSBjb25zdCB7CisgICAgcmV0dXJuICFvcGVyYXRvcj09KHRoYXQpOworfQorCitpbmxp
bmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvU3RhcnQoKSB7CisgICAgcmV0dXJu
IG1vdmUoMCwga1N0YXJ0KTsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9y
OjpzZXRUb0VuZCgpIHsKKyAgICByZXR1cm4gbW92ZSgwLCBrRW5kKTsKK30KKworaW5saW5lIGlu
dDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpzdGFydEluZGV4KHZvaWQpIGNvbnN0IHsKKyAgICBy
ZXR1cm4gYmVnaW47Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6ZW5k
SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBlbmQ7Cit9CisKK2lubGluZSBpbnQzMl90
CitDaGFyYWN0ZXJJdGVyYXRvcjo6Z2V0SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBw
b3M7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6Z2V0TGVuZ3RoKHZv
aWQpIGNvbnN0IHsKKyAgICByZXR1cm4gdGV4dExlbmd0aDsKK30KKworVV9OQU1FU1BBQ0VfRU5E
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaCBiL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvbG9jaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWQ1Y2I1NDZlYmUzOTdl
ZjQzNmRmMzY1MDNlYjQzNzFjMzg2Njk2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9p
Y3UvdW5pY29kZS9sb2NpZC5oCkBAIC0wLDAgKzEsODE0IEBACisvKgorKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk2LTIwMTUsIEludGVybmF0aW9uYWwgQnVz
aW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxlIGxvY2lkLmgKKyoK
KyogQ3JlYXRlZCBieTogSGVsZW5hIFNoaWgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6Cisq
CisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogICAwMi8xMS85NyAg
ICBhbGl1ICAgICAgICBDaGFuZ2VkIGdMb2NQYXRoIHRvIGZnTG9jUGF0aCBhbmQgYWRkZWQgbWV0
aG9kcyB0bworKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldCBhbmQgc2V0IGl0LgorKiAg
IDA0LzAyLzk3ICAgIGFsaXUgICAgICAgIE1hZGUgb3BlcmF0b3IhPSBpbmxpbmU7IGZpeGVkIHJl
dHVybiB2YWx1ZSBvZiBnZXROYW1lKCkuCisqICAgMDQvMTUvOTcgICAgYWxpdSAgICAgICAgQ2xl
YW51cCBmb3IgQUlYL1dpbjMyLgorKiAgIDA0LzI0Lzk3ICAgIGFsaXUgICAgICAgIE51bWVyb3Vz
IGNoYW5nZXMgcGVyIGNvZGUgcmV2aWV3LgorKiAgIDA4LzE4Lzk4ICAgIHN0ZXBoZW4gICAgIEFk
ZGVkIHRva2VuaXplU3RyaW5nKCksY2hhbmdlZCBnZXREaXNwbGF5TmFtZSgpCisqICAgMDkvMDgv
OTggICAgc3RlcGhlbiAgICAgTW92ZWQgZGVmaW5pdGlvbiBvZiBrRW1wdHlTdHJpbmcgZm9yIE1h
YyBQb3J0CisqICAgMTEvMDkvOTkgICAgd2VpdiAgICAgICAgQWRkZWQgY29uc3QgY2hhciAqIGdl
dE5hbWUoKSBjb25zdDsKKyogICAwNC8xMi8wMCAgICBzcmwgICAgICAgICByZW1vdmluZyB1bmlj
b2Rlc3RyaW5nIGFwaSdzIGFuZCBjYWNoZWQgaGFzaCBjb2RlCisqICAgMDgvMTAvMDEgICAgZ3Jo
b3RlbiAgICAgQ2hhbmdlIHRoZSBzdGF0aWMgTG9jYWxlcyB0byBhY2Nlc3NvciBmdW5jdGlvbnMK
KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBMT0NJRF9ICisjZGVmaW5lIExP
Q0lEX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91
b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3B1dGlsLmgiCisjaW5jbHVkZSAidW5pY29kZS91bG9jLmgiCisjaW5jbHVkZSAidW5pY29kZS9z
dHJlbnVtLmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBMb2NhbGUgSUQg
b2JqZWN0LgorICovCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8vIEZvcndhcmQgRGVjbGFyYXRp
b25zCit2b2lkIFVfQ0FMTENPTlYgbG9jYWxlX2F2YWlsYWJsZV9pbml0KCk7IC8qKjwgQGludGVy
bmFsICovCisKKy8qKgorICogQSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCByZXByZXNlbnRz
IGEgc3BlY2lmaWMgZ2VvZ3JhcGhpY2FsLCBwb2xpdGljYWwsCisgKiBvciBjdWx0dXJhbCByZWdp
b24uIEFuIG9wZXJhdGlvbiB0aGF0IHJlcXVpcmVzIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiB0byBw
ZXJmb3JtCisgKiBpdHMgdGFzayBpcyBjYWxsZWQgPGVtPmxvY2FsZS1zZW5zaXRpdmU8L2VtPiBh
bmQgdXNlcyB0aGUgPGNvZGU+TG9jYWxlPC9jb2RlPgorICogdG8gdGFpbG9yIGluZm9ybWF0aW9u
IGZvciB0aGUgdXNlci4gRm9yIGV4YW1wbGUsIGRpc3BsYXlpbmcgYSBudW1iZXIKKyAqIGlzIGEg
bG9jYWxlLXNlbnNpdGl2ZSBvcGVyYXRpb24tLXRoZSBudW1iZXIgc2hvdWxkIGJlIGZvcm1hdHRl
ZAorICogYWNjb3JkaW5nIHRvIHRoZSBjdXN0b21zL2NvbnZlbnRpb25zIG9mIHRoZSB1c2VyJ3Mg
bmF0aXZlIGNvdW50cnksCisgKiByZWdpb24sIG9yIGN1bHR1cmUuCisgKgorICogVGhlIExvY2Fs
ZSBjbGFzcyBpcyBub3Qgc3VpdGFibGUgZm9yIHN1YmNsYXNzaW5nLgorICoKKyAqIDxQPgorICog
WW91IGNhbiBjcmVhdGUgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCB1c2luZyB0aGUgY29u
c3RydWN0b3IgaW4KKyAqIHRoaXMgY2xhc3M6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5k
aHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgICBMb2NhbGUoIGNvbnN0ICAgY2hhciogIGxhbmd1
YWdlLAorICogICAgICAgICAgICAgICBjb25zdCAgIGNoYXIqICBjb3VudHJ5LAorICogICAgICAg
ICAgICAgICBjb25zdCAgIGNoYXIqICB2YXJpYW50KTsKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5
PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogVGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBj
b25zdHJ1Y3RvcnMgaXMgYSB2YWxpZCA8U1RST05HPklTTworICogTGFuZ3VhZ2UgQ29kZS48L1NU
Uk9ORz4gVGhlc2UgY29kZXMgYXJlIHRoZSBsb3dlci1jYXNlIHR3by1sZXR0ZXIKKyAqIGNvZGVz
IGFzIGRlZmluZWQgYnkgSVNPLTYzOS4KKyAqIFlvdSBjYW4gZmluZCBhIGZ1bGwgbGlzdCBvZiB0
aGVzZSBjb2RlcyBhdDoKKyAqIDxCUj48YSBocmVmID0iaHR0cDovL3d3dy5sb2MuZ292L3N0YW5k
YXJkcy9pc282MzktMi8iPgorICogaHR0cDovL3d3dy5sb2MuZ292L3N0YW5kYXJkcy9pc282Mzkt
Mi88L2E+CisgKgorICogPFA+CisgKiBUaGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1
Y3RvcnMgaXMgYSB2YWxpZCA8U1RST05HPklTTyBDb3VudHJ5CisgKiBDb2RlLjwvU1RST05HPiBU
aGVzZSBjb2RlcyBhcmUgdGhlIHVwcGVyLWNhc2UgdHdvLWxldHRlciBjb2RlcworICogYXMgZGVm
aW5lZCBieSBJU08tMzE2Ni4KKyAqIFlvdSBjYW4gZmluZCBhIGZ1bGwgbGlzdCBvZiB0aGVzZSBj
b2RlcyBhdCBhIG51bWJlciBvZiBzaXRlcywgc3VjaCBhczoKKyAqIDxCUj48YSBocmVmPSJodHRw
Oi8vd3d3Lmlzby5vcmcvaXNvL2VuL3Byb2RzLXNlcnZpY2VzL2lzbzMxNjZtYS9pbmRleC5odG1s
Ij4KKyAqIGh0dHA6Ly93d3cuaXNvLm9yZy9pc28vZW4vcHJvZHMtc2VydmljZXMvaXNvMzE2Nm1h
L2luZGV4Lmh0bWw8L2E+CisgKgorICogPFA+CisgKiBUaGUgdGhpcmQgY29uc3RydWN0b3IgcmVx
dWlyZXMgYSB0aGlyZCBhcmd1bWVudC0tdGhlIDxTVFJPTkc+VmFyaWFudC48L1NUUk9ORz4KKyAq
IFRoZSBWYXJpYW50IGNvZGVzIGFyZSB2ZW5kb3IgYW5kIGJyb3dzZXItc3BlY2lmaWMuCisgKiBG
b3IgZXhhbXBsZSwgdXNlIFJFVklTRUQgZm9yIGEgbGFuZ2F1Z2UncyByZXZpc2VkIHNjcmlwdCBv
cnRob2dyYXBoeSwgYW5kIFBPU0lYIGZvciBQT1NJWC4KKyAqIFdoZXJlIHRoZXJlIGFyZSB0d28g
dmFyaWFudHMsIHNlcGFyYXRlIHRoZW0gd2l0aCBhbiB1bmRlcnNjb3JlLCBhbmQKKyAqIHB1dCB0
aGUgbW9zdCBpbXBvcnRhbnQgb25lIGZpcnN0LiBGb3IKKyAqIGV4YW1wbGUsIGEgVHJhZGl0aW9u
YWwgU3BhbmlzaCBjb2xsYXRpb24gbWlnaHQgYmUgcmVmZXJlbmNlZCwgd2l0aAorICogIkVTIiwg
IkVTIiwgIlRyYWRpdGlvbmFsX1BPU0lYIi4KKyAqCisgKiA8UD4KKyAqIEJlY2F1c2UgYSA8Y29k
ZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCBpcyBqdXN0IGFuIGlkZW50aWZpZXIgZm9yIGEgcmVnaW9u
LAorICogbm8gdmFsaWRpdHkgY2hlY2sgaXMgcGVyZm9ybWVkIHdoZW4geW91IGNvbnN0cnVjdCBh
IDxjb2RlPkxvY2FsZTwvY29kZT4uCisgKiBJZiB5b3Ugd2FudCB0byBzZWUgd2hldGhlciBwYXJ0
aWN1bGFyIHJlc291cmNlcyBhcmUgYXZhaWxhYmxlIGZvciB0aGUKKyAqIDxjb2RlPkxvY2FsZTwv
Y29kZT4geW91IGNvbnN0cnVjdCwgeW91IG11c3QgcXVlcnkgdGhvc2UgcmVzb3VyY2VzLiBGb3IK
KyAqIGV4YW1wbGUsIGFzayB0aGUgPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBmb3IgdGhlIGxv
Y2FsZXMgaXQgc3VwcG9ydHMKKyAqIHVzaW5nIGl0cyA8Y29kZT5nZXRBdmFpbGFibGVMb2NhbGVz
PC9jb2RlPiBtZXRob2QuCisgKiA8QlI+PFNUUk9ORz5Ob3RlOjwvU1RST05HPiBXaGVuIHlvdSBh
c2sgZm9yIGEgcmVzb3VyY2UgZm9yIGEgcGFydGljdWxhcgorICogbG9jYWxlLCB5b3UgZ2V0IGJh
Y2sgdGhlIGJlc3QgYXZhaWxhYmxlIG1hdGNoLCBub3QgbmVjZXNzYXJpbHkKKyAqIHByZWNpc2Vs
eSB3aGF0IHlvdSBhc2tlZCBmb3IuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBsb29rIGF0CisgKiA8
Y29kZT5SZXNvdXJjZUJ1bmRsZTwvY29kZT4uCisgKgorICogPFA+CisgKiBUaGUgPGNvZGU+TG9j
YWxlPC9jb2RlPiBjbGFzcyBwcm92aWRlcyBhIG51bWJlciBvZiBjb252ZW5pZW50IGNvbnN0YW50
cworICogdGhhdCB5b3UgY2FuIHVzZSB0byBjcmVhdGUgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmpl
Y3RzIGZvciBjb21tb25seSB1c2VkCisgKiBsb2NhbGVzLiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxv
d2luZyByZWZlcnMgdG8gYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdAorICogZm9yIHRoZSBV
bml0ZWQgU3RhdGVzOgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8
cHJlPgorICogICAgICAgTG9jYWxlOjpnZXRVUygpCisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwv
YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqCisgKiA8UD4KKyAqIE9uY2UgeW91J3ZlIGNyZWF0
ZWQgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHlvdSBjYW4gcXVlcnkgaXQgZm9yIGluZm9ybWF0aW9u
IGFib3V0CisgKiBpdHNlbGYuIFVzZSA8Y29kZT5nZXRDb3VudHJ5PC9jb2RlPiB0byBnZXQgdGhl
IElTTyBDb3VudHJ5IENvZGUgYW5kCisgKiA8Y29kZT5nZXRMYW5ndWFnZTwvY29kZT4gdG8gZ2V0
IHRoZSBJU08gTGFuZ3VhZ2UgQ29kZS4gWW91IGNhbgorICogdXNlIDxjb2RlPmdldERpc3BsYXlD
b3VudHJ5PC9jb2RlPiB0byBnZXQgdGhlCisgKiBuYW1lIG9mIHRoZSBjb3VudHJ5IHN1aXRhYmxl
IGZvciBkaXNwbGF5aW5nIHRvIHRoZSB1c2VyLiBTaW1pbGFybHksCisgKiB5b3UgY2FuIHVzZSA8
Y29kZT5nZXREaXNwbGF5TGFuZ3VhZ2U8L2NvZGU+IHRvIGdldCB0aGUgbmFtZSBvZgorICogdGhl
IGxhbmd1YWdlIHN1aXRhYmxlIGZvciBkaXNwbGF5aW5nIHRvIHRoZSB1c2VyLiBJbnRlcmVzdGlu
Z2x5LAorICogdGhlIDxjb2RlPmdldERpc3BsYXlYWFg8L2NvZGU+IG1ldGhvZHMgYXJlIHRoZW1z
ZWx2ZXMgbG9jYWxlLXNlbnNpdGl2ZQorICogYW5kIGhhdmUgdHdvIHZlcnNpb25zOiBvbmUgdGhh
dCB1c2VzIHRoZSBkZWZhdWx0IGxvY2FsZSBhbmQgb25lCisgKiB0aGF0IHRha2VzIGEgbG9jYWxl
IGFzIGFuIGFyZ3VtZW50IGFuZCBkaXNwbGF5cyB0aGUgbmFtZSBvciBjb3VudHJ5IGluCisgKiBh
IGxhbmd1YWdlIGFwcHJvcHJpYXRlIHRvIHRoYXQgbG9jYWxlLgorICoKKyAqIDxQPgorICogSUNV
IHByb3ZpZGVzIGEgbnVtYmVyIG9mIGNsYXNzZXMgdGhhdCBwZXJmb3JtIGxvY2FsZS1zZW5zaXRp
dmUKKyAqIG9wZXJhdGlvbnMuIEZvciBleGFtcGxlLCB0aGUgPGNvZGU+TnVtYmVyRm9ybWF0PC9j
b2RlPiBjbGFzcyBmb3JtYXRzCisgKiBudW1iZXJzLCBjdXJyZW5jeSwgb3IgcGVyY2VudGFnZXMg
aW4gYSBsb2NhbGUtc2Vuc2l0aXZlIG1hbm5lci4gQ2xhc3NlcworICogc3VjaCBhcyA8Y29kZT5O
dW1iZXJGb3JtYXQ8L2NvZGU+IGhhdmUgYSBudW1iZXIgb2YgY29udmVuaWVuY2UgbWV0aG9kcwor
ICogZm9yIGNyZWF0aW5nIGEgZGVmYXVsdCBvYmplY3Qgb2YgdGhhdCB0eXBlLiBGb3IgZXhhbXBs
ZSwgdGhlCisgKiA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGNsYXNzIHByb3ZpZGVzIHRoZXNl
IHRocmVlIGNvbnZlbmllbmNlIG1ldGhvZHMKKyAqIGZvciBjcmVhdGluZyBhIGRlZmF1bHQgPGNv
ZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBvYmplY3Q6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5c
ZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgVUVycm9yQ29kZSBzdWNjZXNzID0gVV9aRVJP
X0VSUk9SOworICogICAgIExvY2FsZSBteUxvY2FsZTsKKyAqICAgICBOdW1iZXJGb3JtYXQgKm5m
OworICoKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlSW5zdGFuY2UoIHN1Y2Nlc3Mg
KTsgICAgICAgICAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVD
dXJyZW5jeUluc3RhbmNlKCBzdWNjZXNzICk7ICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1i
ZXJGb3JtYXQ6OmNyZWF0ZVBlcmNlbnRJbnN0YW5jZSggc3VjY2VzcyApOyAgIGRlbGV0ZSBuZjsK
KyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogRWFj
aCBvZiB0aGVzZSBtZXRob2RzIGhhcyB0d28gdmFyaWFudHM7IG9uZSB3aXRoIGFuIGV4cGxpY2l0
IGxvY2FsZQorICogYW5kIG9uZSB3aXRob3V0OyB0aGUgbGF0dGVyIHVzaW5nIHRoZSBkZWZhdWx0
IGxvY2FsZS4KKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4K
KyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlSW5zdGFuY2UoIG15TG9jYWxlLCBzdWNj
ZXNzICk7ICAgICAgICAgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3Jl
YXRlQ3VycmVuY3lJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgIGRlbGV0ZSBuZjsKKyAq
ICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlUGVyY2VudEluc3RhbmNlKCBteUxvY2FsZSwg
c3VjY2VzcyApOyAgIGRlbGV0ZSBuZjsKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1
b3RlPlxlbmRodG1sb25seQorICogQSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGlzIHRoZSBtZWNoYW5p
c20gZm9yIGlkZW50aWZ5aW5nIHRoZSBraW5kIG9mIG9iamVjdAorICogKDxjb2RlPk51bWJlckZv
cm1hdDwvY29kZT4pIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gZ2V0LiBUaGUgbG9jYWxlIGlzCisg
KiA8U1RST05HPmp1c3Q8L1NUUk9ORz4gYSBtZWNoYW5pc20gZm9yIGlkZW50aWZ5aW5nIG9iamVj
dHMsCisgKiA8U1RST05HPm5vdDwvU1RST05HPiBhIGNvbnRhaW5lciBmb3IgdGhlIG9iamVjdHMg
dGhlbXNlbHZlcy4KKyAqCisgKiA8UD4KKyAqIEVhY2ggY2xhc3MgdGhhdCBwZXJmb3JtcyBsb2Nh
bGUtc2Vuc2l0aXZlIG9wZXJhdGlvbnMgYWxsb3dzIHlvdQorICogdG8gZ2V0IGFsbCB0aGUgYXZh
aWxhYmxlIG9iamVjdHMgb2YgdGhhdCB0eXBlLiBZb3UgY2FuIHNpZnQKKyAqIHRocm91Z2ggdGhl
c2Ugb2JqZWN0cyBieSBsYW5ndWFnZSwgY291bnRyeSwgb3IgdmFyaWFudCwKKyAqIGFuZCB1c2Ug
dGhlIGRpc3BsYXkgbmFtZXMgdG8gcHJlc2VudCBhIG1lbnUgdG8gdGhlIHVzZXIuCisgKiBGb3Ig
ZXhhbXBsZSwgeW91IGNhbiBjcmVhdGUgYSBtZW51IG9mIGFsbCB0aGUgY29sbGF0aW9uIG9iamVj
dHMKKyAqIHN1aXRhYmxlIGZvciBhIGdpdmVuIGxhbmd1YWdlLiBTdWNoIGNsYXNzZXMgaW1wbGVt
ZW50IHRoZXNlCisgKiB0aHJlZSBjbGFzcyBtZXRob2RzOgorICogXGh0bWxvbmx5PGJsb2NrcXVv
dGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgICAgc3RhdGljIExvY2FsZSogZ2V0QXZh
aWxhYmxlTG9jYWxlcyhpbnQzMl90JiBudW1Mb2NhbGVzKQorICogICAgICAgc3RhdGljIFVuaWNv
ZGVTdHJpbmcmIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgIG9iamVjdExvY2FsZSwKKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMb2NhbGUm
ICBkaXNwbGF5TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BsYXlOYW1lKQorICogICAgICAgc3RhdGljIFVuaWNv
ZGVTdHJpbmcmIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgIG9iamVjdExvY2FsZSwKKyAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5n
JiBkaXNwbGF5TmFtZSkKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRo
dG1sb25seQorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICogQHNlZSBSZXNvdXJjZUJ1bmRsZQor
ICovCitjbGFzcyBVX0NPTU1PTl9BUEkgTG9jYWxlIDogcHVibGljIFVPYmplY3QgeworcHVibGlj
OgorICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoZSBSb290IGxvY2FsZS4gQHN0YWJsZSBJ
Q1UgNC40ICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFJvb3Qodm9p
ZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJ
Q1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEVuZ2xpc2go
dm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJs
ZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEZyZW5j
aCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3Rh
YmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0R2Vy
bWFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBz
dGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRJ
dGFsaWFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2Uu
IEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBn
ZXRKYXBhbmVzZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1
YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9S
VDIgZ2V0S29yZWFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFu
Z3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQ
T1JUMiBnZXRDaGluZXNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMg
bGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVf
RVhQT1JUMiBnZXRTaW1wbGlmaWVkQ2hpbmVzZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0
YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VHJhZGl0aW9uYWxDaGluZXNlKHZvaWQpOworCisgICAg
LyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1Ug
Mi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEZyYW5jZSh2b2lk
KTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3Rh
YmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0R2Vy
bWFueSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVn
aW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9S
VDIgZ2V0SXRhbHkodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3Vu
dHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAm
VV9FWFBPUlQyIGdldEphcGFuKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRo
aXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBM
b2NhbGUgJlVfRVhQT1JUMiBnZXRLb3JlYSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50
IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMg
Y29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2hpbmEodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBj
b25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAg
c3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFBSQyh2b2lkKTsKKyAgICAvKiogVXNl
ZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8K
KyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VGFpd2FuKHZvaWQpOworICAg
IC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNV
IDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRVSyh2b2lkKTsK
KyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxl
IElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VVModm9p
ZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0
YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENh
bmFkYSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVn
aW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9S
VDIgZ2V0Q2FuYWRhRnJlbmNoKHZvaWQpOworCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Qg
YSBkZWZhdWx0IGxvY2FsZSBvYmplY3QsIGEgTG9jYWxlIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUg
SUQuCisgICAgICoKKyAgICAgKiBAc2VlIGdldERlZmF1bHQKKyAgICAgKiBAc2VlIHVsb2NfZ2V0
RGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZSgpOwor
CisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbG9jYWxlIGZyb20gbGFuZ3VhZ2UsIGNvdW50
cnksIHZhcmlhbnQuCisgICAgICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVuIHRoZSBjb25zdHJ1
Y3RlZCBvYmplY3Qgd2lsbCBiZSAiYm9ndXMiCisgICAgICogKGlzQm9ndXMoKSB3aWxsIHJldHVy
biBUUlVFKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYW5ndWFnZSBMb3dlcmNhc2UgdHdvLWxl
dHRlciBvciB0aHJlZS1sZXR0ZXIgSVNPLTYzOSBjb2RlLgorICAgICAqICBUaGlzIHBhcmFtZXRl
ciBjYW4gaW5zdGVhZCBiZSBhbiBJQ1Ugc3R5bGUgQyBsb2NhbGUgKGUuZy4gImVuX1VTIiksCisg
ICAgICogIGJ1dCB0aGUgb3RoZXIgcGFyYW1ldGVycyBtdXN0IG5vdCBiZSB1c2VkLgorICAgICAq
ICBUaGlzIHBhcmFtZXRlciBjYW4gYmUgTlVMTDsgaWYgc28sCisgICAgICogIHRoZSBsb2NhbGUg
aXMgaW5pdGlhbGl6ZWQgdG8gbWF0Y2ggdGhlIGN1cnJlbnQgZGVmYXVsdCBsb2NhbGUuCisgICAg
ICogIChUaGlzIGlzIHRoZSBzYW1lIGFzIHVzaW5nIHRoZSBkZWZhdWx0IGNvbnN0cnVjdG9yLikK
KyAgICAgKiAgUGxlYXNlIG5vdGU6IFRoZSBKYXZhIExvY2FsZSBjbGFzcyBkb2VzIE5PVCBhY2Nl
cHQgdGhlIGZvcm0KKyAgICAgKiAgJ25ldyBMb2NhbGUoImVuX1VTIiknIGJ1dCBvbmx5ICduZXcg
TG9jYWxlKCJlbiIsIlVTIiknCisgICAgICoKKyAgICAgKiBAcGFyYW0gY291bnRyeSAgVXBwZXJj
YXNlIHR3by1sZXR0ZXIgSVNPLTMxNjYgY29kZS4gKG9wdGlvbmFsKQorICAgICAqIEBwYXJhbSB2
YXJpYW50ICBVcHBlcmNhc2UgdmVuZG9yIGFuZCBicm93c2VyIHNwZWNpZmljIGNvZGUuIFNlZSBj
bGFzcworICAgICAqICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbi4gKG9wdGlvbmFsKQorICAg
ICAqIEBwYXJhbSBrZXl3b3Jkc0FuZFZhbHVlcyBBIHN0cmluZyBjb25zaXN0aW5nIG9mIGtleXdv
cmQvdmFsdWVzIHBhaXJzLCBzdWNoIGFzCisgICAgICogICAgICAgICAgICAgICAgICJjb2xsYXRp
b249cGhvbmVib29rO2N1cnJlbmN5PWV1cm8iCisgICAgICoKKyAgICAgKiBAc2VlIGdldERlZmF1
bHQKKyAgICAgKiBAc2VlIHVsb2NfZ2V0RGVmYXVsdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIExvY2FsZSggY29uc3QgICBjaGFyICogbGFuZ3VhZ2UsCisgICAgICAgICAg
ICBjb25zdCAgIGNoYXIgKiBjb3VudHJ5ICA9IDAsCisgICAgICAgICAgICBjb25zdCAgIGNoYXIg
KiB2YXJpYW50ICA9IDAsCisgICAgICAgICAgICBjb25zdCAgIGNoYXIgKiBrZXl3b3Jkc0FuZFZh
bHVlcyA9IDApOworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgYSBMb2NhbGUgb2JqZWN0
IGZyb20gYW5vdGhlciBMb2NhbGUgb2JqZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVy
IFRoZSBMb2NhbGUgb2JqZWN0IGJlaW5nIGNvcGllZCBpbi4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBMb2NhbGUoY29uc3QgICAgTG9jYWxlJiBvdGhlcik7CisKKworICAg
IC8qKgorICAgICAqIERlc3RydWN0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIH5Mb2NhbGUoKSA7CisKKyAgICAvKioKKyAgICAgKiBSZXBsYWNlcyB0aGUg
ZW50aXJlIGNvbnRlbnRzIG9mICp0aGlzIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAg
KgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgTG9jYWxlIG9iamVjdCBiZWluZyBjb3BpZWQgaW4u
CisgICAgICogQHJldHVybiAgICAgICp0aGlzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgTG9jYWxlJiBvcGVyYXRvcj0oY29uc3QgTG9jYWxlJiBvdGhlcik7CisKKyAgICAv
KioKKyAgICAgKiBDaGVja3MgaWYgdHdvIGxvY2FsZSBrZXlzIGFyZSB0aGUgc2FtZS4KKyAgICAg
KgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgbG9jYWxlIGtleSBvYmplY3QgdG8gYmUgY29tcGFy
ZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1cm4gICAgICBUcnVlIGlmIHRoZSB0d28gbG9jYWxl
IGtleXMgYXJlIHRoZSBzYW1lLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgVUJvb2wgICBvcGVyYXRvcj09KGNvbnN0ICAgIExvY2FsZSYgICAg
IG90aGVyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0d28gbG9jYWxlIGtl
eXMgYXJlIG5vdCB0aGUgc2FtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBUaGUgbG9j
YWxlIGtleSBvYmplY3QgdG8gYmUgY29tcGFyZWQgd2l0aCB0aGlzLgorICAgICAqIEByZXR1cm4g
ICAgICBUcnVlIGlmIHRoZSB0d28gbG9jYWxlIGtleXMgYXJlIG5vdCB0aGUgc2FtZSwgZmFsc2UK
KyAgICAgKiAgICAgICAgICAgICAgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIFVCb29sICAgb3BlcmF0b3IhPShjb25zdCAgICBMb2NhbGUmICAgICBvdGhl
cikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBDbG9uZSB0aGlzIG9iamVjdC4KKyAgICAgKiBD
bG9uZXMgY2FuIGJlIHVzZWQgY29uY3VycmVudGx5IGluIG11bHRpcGxlIHRocmVhZHMuCisgICAg
ICogSWYgYW4gZXJyb3Igb2NjdXJzLCB0aGVuIE5VTEwgaXMgcmV0dXJuZWQuCisgICAgICogVGhl
IGNhbGxlciBtdXN0IGRlbGV0ZSB0aGUgY2xvbmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEg
Y2xvbmUgb2YgdGhpcyBvYmplY3QKKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RHluYW1pY0NsYXNz
SUQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBMb2NhbGUgKmNsb25lKCkg
Y29uc3Q7CisKKyNpZm5kZWYgVV9ISURFX1NZU1RFTV9BUEkKKyAgICAvKioKKyAgICAgKiBDb21t
b24gbWV0aG9kcyBvZiBnZXR0aW5nIHRoZSBjdXJyZW50IGRlZmF1bHQgTG9jYWxlLiBVc2VkIGZv
ciB0aGUKKyAgICAgKiBwcmVzZW50YXRpb246IG1lbnVzLCBkaWFsb2dzLCBldGMuIEdlbmVyYWxs
eSBzZXQgb25jZSB3aGVuIHlvdXIgYXBwbGV0IG9yCisgICAgICogYXBwbGljYXRpb24gaXMgaW5p
dGlhbGl6ZWQsIHRoZW4gbmV2ZXIgcmVzZXQuIChJZiB5b3UgZG8gcmVzZXQgdGhlCisgICAgICog
ZGVmYXVsdCBsb2NhbGUsIHlvdSBwcm9iYWJseSB3YW50IHRvIHJlbG9hZCB5b3VyIEdVSSwgc28g
dGhhdCB0aGUgY2hhbmdlCisgICAgICogaXMgcmVmbGVjdGVkIGluIHlvdXIgaW50ZXJmYWNlLikK
KyAgICAgKgorICAgICAqIE1vcmUgYWR2YW5jZWQgcHJvZ3JhbXMgd2lsbCBhbGxvdyB1c2VycyB0
byB1c2UgZGlmZmVyZW50IGxvY2FsZXMgZm9yCisgICAgICogZGlmZmVyZW50IGZpZWxkcywgZS5n
LiBpbiBhIHNwcmVhZHNoZWV0LgorICAgICAqCisgICAgICogTm90ZSB0aGF0IHRoZSBpbml0aWFs
IHNldHRpbmcgd2lsbCBtYXRjaCB0aGUgaG9zdCBzeXN0ZW0uCisgICAgICogQHJldHVybiBhIHJl
ZmVyZW5jZSB0byB0aGUgTG9jYWxlIG9iamVjdCBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIElECisg
ICAgICogQHN5c3RlbQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRp
YyBjb25zdCBMb2NhbGUmIFVfRVhQT1JUMiBnZXREZWZhdWx0KHZvaWQpOworCisgICAgLyoqCisg
ICAgICogU2V0cyB0aGUgZGVmYXVsdC4gTm9ybWFsbHkgc2V0IG9uY2UgYXQgdGhlIGJlZ2lubmlu
ZyBvZiBhIHByb2Nlc3MsCisgICAgICogdGhlbiBuZXZlciByZXNldC4KKyAgICAgKiBzZXREZWZh
dWx0KCkgb25seSBjaGFuZ2VzIElDVSdzIGRlZmF1bHQgbG9jYWxlIElELCA8c3Ryb25nPm5vdDwv
c3Ryb25nPgorICAgICAqIHRoZSBkZWZhdWx0IGxvY2FsZSBJRCBvZiB0aGUgcnVudGltZSBlbnZp
cm9ubWVudC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuZXdMb2NhbGUgTG9jYWxlIHRvIHNldCB0
by4gIElmIE5VTEwsIHNldCB0byB0aGUgdmFsdWUgb2J0YWluZWQKKyAgICAgKiAgICAgICAgICAg
ICAgICAgIGZyb20gdGhlIHJ1bnRpbWUgZW52aXJvbmVtZW50LgorICAgICAqIEBwYXJhbSBzdWNj
ZXNzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEBzeXN0ZW0KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBVX0VYUE9SVDIgc2V0RGVmYXVsdChjb25zdCBM
b2NhbGUmIG5ld0xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBV
RXJyb3JDb2RlJiAgIHN1Y2Nlc3MpOworI2VuZGlmICAvKiBVX0hJREVfU1lTVEVNX0FQSSAqLwor
CisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGxvY2FsZSB3aGljaCBoYXMgaGFkIG1pbmltYWwg
Y2Fub25pY2FsaXphdGlvbgorICAgICAqIGFzIHBlciB1bG9jX2dldE5hbWUoKS4KKyAgICAgKiBA
cGFyYW0gbmFtZSBUaGUgbmFtZSB0byBjcmVhdGUgZnJvbS4gIElmIG5hbWUgaXMgbnVsbCwKKyAg
ICAgKiAgdGhlIGRlZmF1bHQgTG9jYWxlIGlzIHVzZWQuCisgICAgICogQHJldHVybiBuZXcgbG9j
YWxlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqIEBzZWUgdWxvY19nZXRO
YW1lCisgICAgICovCisgICAgc3RhdGljIExvY2FsZSBVX0VYUE9SVDIgY3JlYXRlRnJvbU5hbWUo
Y29uc3QgY2hhciAqbmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbG9jYWxlIGZy
b20gdGhlIGdpdmVuIHN0cmluZyBhZnRlciBjYW5vbmljYWxpemluZworICAgICAqIHRoZSBzdHJp
bmcgYnkgY2FsbGluZyB1bG9jX2Nhbm9uaWNhbGl6ZSgpLgorICAgICAqIEBwYXJhbSBuYW1lIHRo
ZSBsb2NhbGUgSUQgdG8gY3JlYXRlIGZyb20uICBNdXN0IG5vdCBiZSBOVUxMLgorICAgICAqIEBy
ZXR1cm4gYSBuZXcgbG9jYWxlIG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBuYW1l
CisgICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgICogQHNlZSB1bG9jX2Nhbm9uaWNhbGl6ZQor
ICAgICAqLworICAgIHN0YXRpYyBMb2NhbGUgVV9FWFBPUlQyIGNyZWF0ZUNhbm9uaWNhbChjb25z
dCBjaGFyKiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIElT
Ty02MzkgbGFuZ3VhZ2UgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhl
IGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3Qg
Y2hhciAqICBnZXRMYW5ndWFnZSggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMg
dGhlIGxvY2FsZSdzIElTTy0xNTkyNCBhYmJyZXZpYXRpb24gc2NyaXB0IGNvZGUuCisgICAgICog
QHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHNlZSB1c2NyaXB0X2dl
dFNob3J0TmFtZQorICAgICAqIEBzZWUgdXNjcmlwdF9nZXRDb2RlCisgICAgICogQHN0YWJsZSBJ
Q1UgMi44CisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0U2NyaXB0KCApIGNv
bnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTMxNjYgY291
bnRyeSBjb2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdl
dENvdW50cnkoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUn
cyB2YXJpYW50IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2Rl
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIg
KiAgZ2V0VmFyaWFudCggKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHBy
b2dyYW1tYXRpYyBuYW1lIG9mIHRoZSBlbnRpcmUgbG9jYWxlLCB3aXRoIHRoZSBsYW5ndWFnZSwK
KyAgICAgKiBjb3VudHJ5IGFuZCB2YXJpYW50IHNlcGFyYXRlZCBieSB1bmRlcmJhcnMuIElmIGEg
ZmllbGQgaXMgbWlzc2luZywgdXAKKyAgICAgKiB0byB0d28gbGVhZGluZyB1bmRlcmJhcnMgd2ls
bCBvY2N1ci4gRXhhbXBsZTogImVuIiwgImRlX0RFIiwgImVuX1VTX1dJTiIsCisgICAgICogImRl
X19QT1NJWCIsICJmcl9fTUFDIiwgIl9fTUFDIiwgIl9NVCIsICJfRlJfRVVSTyIKKyAgICAgKiBA
cmV0dXJuICAgICAgQSBwb2ludGVyIHRvICJuYW1lIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqIGdldE5hbWUoKSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIFJldHVybnMgdGhlIHByb2dyYW1tYXRpYyBuYW1lIG9mIHRoZSBlbnRpcmUg
bG9jYWxlIGFzIGdldE5hbWUoKSB3b3VsZCByZXR1cm4sCisgICAgICogYnV0IHdpdGhvdXQga2V5
d29yZHMuCisgICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0byAibmFtZSIuCisgICAgICog
QHNlZSBnZXROYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgY29uc3Qg
Y2hhciAqIGdldEJhc2VOYW1lKCkgY29uc3Q7CisKKworICAgIC8qKgorICAgICAqIEdldHMgdGhl
IGxpc3Qgb2Yga2V5d29yZHMgZm9yIHRoZSBzcGVjaWZpZWQgbG9jYWxlLgorICAgICAqCisgICAg
ICogQHBhcmFtIHN0YXR1cyB0aGUgc3RhdHVzIGNvZGUKKyAgICAgKiBAcmV0dXJuIHBvaW50ZXIg
dG8gU3RyaW5nRW51bWVyYXRpb24gY2xhc3MsIG9yIE5VTEwgaWYgdGhlcmUgYXJlIG5vIGtleXdv
cmRzLiAKKyAgICAgKiBDbGllbnQgbXVzdCBkaXNwb3NlIG9mIGl0IGJ5IGNhbGxpbmcgZGVsZXRl
LgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFN0cmluZ0VudW1lcmF0aW9u
ICogY3JlYXRlS2V5d29yZHMoVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIEdldHMgdGhlIHZhbHVlIGZvciBhIGtleXdvcmQuCisgICAgICoKKyAgICAgKiBAcGFy
YW0ga2V5d29yZE5hbWUgbmFtZSBvZiB0aGUga2V5d29yZCBmb3Igd2hpY2ggd2Ugd2FudCB0aGUg
dmFsdWUuIENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHBhcmFtIGJ1ZmZlciBUaGUgYnVmZmVy
IHRvIHJlY2VpdmUgdGhlIGtleXdvcmQgdmFsdWUuCisgICAgICogQHBhcmFtIGJ1ZmZlckNhcGFj
aXR5IFRoZSBjYXBhY2l0eSBvZiByZWNlaXZpbmcgYnVmZmVyCisgICAgICogQHBhcmFtIHN0YXR1
cyBSZXR1cm5zIGFueSBlcnJvciBpbmZvcm1hdGlvbiB3aGlsZSBwZXJmb3JtaW5nIHRoaXMgb3Bl
cmF0aW9uLgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUga2V5d29yZCB2YWx1ZQor
ICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgaW50MzJfdCBnZXRL
ZXl3b3JkVmFsdWUoY29uc3QgY2hhcioga2V5d29yZE5hbWUsIGNoYXIgKmJ1ZmZlciwgaW50MzJf
dCBidWZmZXJDYXBhY2l0eSwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIFNldHMgb3IgcmVtb3ZlcyB0aGUgdmFsdWUgZm9yIGEga2V5d29yZC4KKyAgICAgKgor
ICAgICAqIEZvciByZW1vdmluZyBhbGwga2V5d29yZHMsIHVzZSBnZXRCYXNlTmFtZSgpLAorICAg
ICAqIGFuZCBjb25zdHJ1Y3QgYSBuZXcgTG9jYWxlIGlmIGl0IGRpZmZlcnMgZnJvbSBnZXROYW1l
KCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5d29yZE5hbWUgbmFtZSBvZiB0aGUga2V5d29y
ZCB0byBiZSBzZXQuIENhc2UgaW5zZW5zaXRpdmUuCisgICAgICogQHBhcmFtIGtleXdvcmRWYWx1
ZSB2YWx1ZSBvZiB0aGUga2V5d29yZCB0byBiZSBzZXQuIElmIDAtbGVuZ3RoIG9yCisgICAgICog
IE5VTEwsIHdpbGwgcmVzdWx0IGluIHRoZSBrZXl3b3JkIGJlaW5nIHJlbW92ZWQuIE5vIGVycm9y
IGlzIGdpdmVuIGlmCisgICAgICogIHRoYXQga2V5d29yZCBkb2VzIG5vdCBleGlzdC4KKyAgICAg
KiBAcGFyYW0gc3RhdHVzIFJldHVybnMgYW55IGVycm9yIGluZm9ybWF0aW9uIHdoaWxlIHBlcmZv
cm1pbmcgdGhpcyBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAg
ICAqLworICAgIHZvaWQgc2V0S2V5d29yZFZhbHVlKGNvbnN0IGNoYXIqIGtleXdvcmROYW1lLCBj
b25zdCBjaGFyKiBrZXl3b3JkVmFsdWUsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioK
KyAgICAgKiByZXR1cm5zIHRoZSBsb2NhbGUncyB0aHJlZS1sZXR0ZXIgbGFuZ3VhZ2UgY29kZSwg
YXMgc3BlY2lmaWVkCisgICAgICogaW4gSVNPIGRyYWZ0IHN0YW5kYXJkIElTTy02MzktMi4KKyAg
ICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUsIG9yIGFuIGVtcHR5IHN0cmlu
ZworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRJ
U08zTGFuZ3VhZ2UoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3
aXRoIHRoZSBsb2NhbGUncyB0aHJlZS1sZXR0ZXIgSVNPLTMxNjYgY291bnRyeSBjb2RlLgorICAg
ICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZSwgb3IgYW4gZW1wdHkgc3RyaW5n
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgY29uc3QgY2hhciAqIGdldElT
TzNDb3VudHJ5KCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBXaW5kb3dz
IExDSUQgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGlzIGxvY2FsZS4KKyAgICAgKiBUaGlzIHZh
bHVlIGlzIHN0b3JlZCBpbiB0aGUgcmVzb3VyY2UgZGF0YSBmb3IgdGhlIGxvY2FsZSBhcyBhIG9u
ZS10by1mb3VyLWRpZ2l0CisgICAgICogaGV4YWRlY2ltYWwgbnVtYmVyLiAgSWYgdGhlIHJlc291
cmNlIGlzIG1pc3NpbmcsIGluIHRoZSB3cm9uZyBmb3JtYXQsIG9yCisgICAgICogdGhlcmUgaXMg
bm8gV2luZG93cyBMQ0lEIHZhbHVlIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhpcyBsb2NhbGUsIHJl
dHVybnMgMC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB1aW50MzJfdCAg
ICAgICAgZ2V0TENJRCh2b2lkKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfRFJBRlRfQVBJCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGlzIHdy
aXR0ZW4gcmlnaHQtdG8tbGVmdC4KKyAgICAgKiBJZiB0aGVyZSBpcyBubyBzY3JpcHQgc3VidGFn
LCB0aGVuIHRoZSBsaWtlbHkgc2NyaXB0IGlzIHVzZWQsIHNlZSB1bG9jX2FkZExpa2VseVN1YnRh
Z3MoKS4KKyAgICAgKiBJZiBubyBsaWtlbHkgc2NyaXB0IGlzIGtub3duLCB0aGVuIEZBTFNFIGlz
IHJldHVybmVkLgorICAgICAqCisgICAgICogQSBzY3JpcHQgaXMgcmlnaHQtdG8tbGVmdCBhY2Nv
cmRpbmcgdG8gdGhlIENMRFIgc2NyaXB0IG1ldGFkYXRhCisgICAgICogd2hpY2ggY29ycmVzcG9u
ZHMgdG8gd2hldGhlciB0aGUgc2NyaXB0J3MgbGV0dGVycyBoYXZlIEJpZGlfQ2xhc3M9UiBvciBB
TC4KKyAgICAgKgorICAgICAqIFJldHVybnMgVFJVRSBmb3IgImFyIiBhbmQgImVuLUhlYnIiLCBG
QUxTRSBmb3IgInpoIiBhbmQgImZhLUN5cmwiLgorICAgICAqCisgICAgICogQHJldHVybiBUUlVF
IGlmIHRoZSBsb2NhbGUncyBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0CisgICAgICog
QGRyYWZ0IElDVSA1NAorICAgICAqLworICAgIFVCb29sIGlzUmlnaHRUb0xlZnQoKSBjb25zdDsK
KyNlbmRpZiAgLyogVV9ISURFX0RSQUZUX0FQSSAqLworCisgICAgLyoqCisgICAgICogRmlsbHMg
aW4gImRpc3BMYW5nIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgaW4g
YSBmb3JtYXQgc3VpdGFibGUgZm9yCisgICAgICogdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0
IGxvY2FsZS4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcwor
ICAgICAqICJmciIgYW5kIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVu
IiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwTGFuZyB0byAiRnJlbmNoIi4K
KyAgICAgKiBAcGFyYW0gZGlzcExhbmcgIFJlY2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRpc3BsYXkg
bmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwTGFuZyIu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdl
dERpc3BsYXlMYW5ndWFnZShVbmljb2RlU3RyaW5nJiAgIGRpc3BMYW5nKSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwTGFuZyIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxv
Y2FsZSdzIGxhbmd1YWdlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvcgorICAgICAqIHVzZXIgZGlz
cGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3IgZXhh
bXBsZSwgaWYgdGhlIGxvY2FsZSdzCisgICAgICogbGFuZ3VhZ2UgY29kZSBpcyAiZW4iIGFuZCBk
aXNwbGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZnIiLCB0aGlzIGZ1bmN0aW9uIHdvdWxk
IHNldAorICAgICAqIGRpc3BMYW5nIHRvICJBbmdsYWlzIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxh
eUxvY2FsZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBu
YW1lLiAgSW4gb3RoZXIgd29yZHMsCisgICAgICogICAgICAgICAgICAgICAgICBpZiB0aGUgbG9j
YWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCBwYXNzaW5nIExvY2FsZTo6Z2V0RnJlbmNoKCkg
Zm9yCisgICAgICogICAgICAgICAgICAgICAgICBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBp
biAiQW5nbGFpcyIsIHdoaWxlIHBhc3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKQorICAgICAqICAg
ICAgICAgICAgICAgICAgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICJFbmdsaXNj
aCIuCisgICAgICogQHBhcmFtIGRpc3BMYW5nICBSZWNlaXZlcyB0aGUgbGFuZ3VhZ2UncyBkaXNw
bGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcExh
bmciLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcm
ICBnZXREaXNwbGF5TGFuZ3VhZ2UoIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2Nh
bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmlj
b2RlU3RyaW5nJiAgZGlzcExhbmcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4g
ImRpc3BTY3JpcHQiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBzY3JpcHQgaW4gYSBm
b3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxv
Y2FsZS4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGNvZGUKKyAgICAgKiBp
cyAiTEFUTiIgYW5kIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwg
dGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwU2NyaXB0IHRvICJMYXRpbiIuCisg
ICAgICogQHBhcmFtIGRpc3BTY3JpcHQgICAgUmVjZWl2ZXMgdGhlIHNjcmlwdHMncyBkaXNwbGF5
IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BT
Y3JpcHQiLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIFVuaWNvZGVTdHJp
bmcmICBnZXREaXNwbGF5U2NyaXB0KCAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwU2NyaXB0
KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwU2NyaXB0IiB3aXRoIHRo
ZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAg
ICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlM
b2NhbGUiLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncworICAgICAqIHNjcmlwdCBjb2Rl
IGlzICJMQVROIiBhbmQgZGlzcGxheUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhp
cyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwU2NyaXB0IHRvICJMYXRpbiIuCisgICAg
ICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1
c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlcgorICAgICAqICAgICAgICAgICAgICAg
ICAgICAgIHdvcmRzLCBpZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGNvZGUgaXMgIkxBVE4iLCBwYXNz
aW5nCisgICAgICogICAgICAgICAgICAgICAgICAgICAgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3Ig
ZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIiIsIHdoaWxlCisgICAgICogICAgICAgICAg
ICAgICAgICAgICAgcGFzc2luZyBMb2NhbGU6OmdldEdlcm1hbigpIGZvciBkaXNwbGF5TG9jYWxl
IHdvdWxkIHJlc3VsdCBpbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICIiLgorICAgICAq
IEBwYXJhbSBkaXNwU2NyaXB0ICAgIFJlY2VpdmVzIHRoZSBzY3JpcHRzJ3MgZGlzcGxheSBuYW1l
LgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwU2NyaXB0
Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAg
Z2V0RGlzcGxheVNjcmlwdCggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVT
dHJpbmcmICBkaXNwU2NyaXB0KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJk
aXNwQ291bnRyeSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGNvdW50cnkgaW4gYSBm
b3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxv
Y2FsZS4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MgY291bnRyeSBjb2RlCisgICAgICog
aXMgIkZSIiBhbmQgdGhlIGRlZmF1bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0
aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BDb3VudHJ5IHRvICJGcmFuY2UiLgor
ICAgICAqIEBwYXJhbSBkaXNwQ291bnRyeSAgIFJlY2VpdmVzIHRoZSBjb3VudHJ5J3MgZGlzcGxh
eSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNw
Q291bnRyeSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0
cmluZyYgIGdldERpc3BsYXlDb3VudHJ5KCAgICAgICAgICBVbmljb2RlU3RyaW5nJiBkaXNwQ291
bnRyeSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcENvdW50cnkiIHdp
dGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxl
CisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlz
cGxheUxvY2FsZSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzCisgICAgICogY291bnRy
eSBjb2RlIGlzICJVUyIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJmciIs
IHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcENvdW50cnkgdG8gIiZFYWN1dGU7
dGF0cy1VbmlzIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgICAgIFNwZWNpZmllcyB0
aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIEluIG90aGVyCisgICAg
ICogICAgICAgICAgICAgICAgICAgICAgd29yZHMsIGlmIHRoZSBsb2NhbGUncyBjb3VudHJ5IGNv
ZGUgaXMgIlVTIiwgcGFzc2luZworICAgICAqICAgICAgICAgICAgICAgICAgICAgIExvY2FsZTo6
Z2V0RnJlbmNoKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICImRWFjdXRlO3Rh
dHMtVW5pcyIsIHdoaWxlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgcGFzc2luZyBMb2Nh
bGU6OmdldEdlcm1hbigpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbgorICAgICAq
ICAgICAgICAgICAgICAgICAgICAgICJWZXJlaW5pZ3RlIFN0YWF0ZW4iLgorICAgICAqIEBwYXJh
bSBkaXNwQ291bnRyeSAgIFJlY2VpdmVzIHRoZSBjb3VudHJ5J3MgZGlzcGxheSBuYW1lLgorICAg
ICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwQ291bnRyeSIuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERp
c3BsYXlDb3VudHJ5KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJp
bmcmICBkaXNwQ291bnRyeSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlz
cFZhciIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIHZhcmlhbnQgY29kZSBpbiBhIGZv
cm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9j
YWxlLgorICAgICAqIEBwYXJhbSBkaXNwVmFyICAgUmVjZWl2ZXMgdGhlIHZhcmlhbnQncyBuYW1l
LgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BWYXIiLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNw
bGF5VmFyaWFudCggICAgICBVbmljb2RlU3RyaW5nJiBkaXNwVmFyKSBjb25zdDsKKworICAgIC8q
KgorICAgICAqIEZpbGxzIGluICJkaXNwVmFyIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxl
J3MgdmFyaWFudCBjb2RlIGluIGEgZm9ybWF0CisgICAgICogc3VpdGFibGUgZm9yIHVzZXIgZGlz
cGxheSBpbiB0aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuCisgICAgICog
QHBhcmFtIGRpc3BsYXlMb2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8g
ZGlzcGxheSB0aGUgbmFtZS4KKyAgICAgKiBAcGFyYW0gZGlzcFZhciAgIFJlY2VpdmVzIHRoZSB2
YXJpYW50J3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVu
Y2UgdG8gImRpc3BWYXIiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVu
aWNvZGVTdHJpbmcmICBnZXREaXNwbGF5VmFyaWFudCggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAg
IGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBVbmljb2RlU3RyaW5nJiAgZGlzcFZhcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAg
KiBGaWxscyBpbiAibmFtZSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSBpbiBhIGZvcm1h
dCBzdWl0YWJsZSBmb3IgdXNlciBkaXNwbGF5CisgICAgICogaW4gdGhlIGRlZmF1bHQgbG9jYWxl
LiAgVGhpcyBmdW5jdGlvbiB1c2VzIGdldERpc3BsYXlMYW5ndWFnZSgpLCBnZXREaXNwbGF5Q291
bnRyeSgpLAorICAgICAqIGFuZCBnZXREaXNwbGF5VmFyaWFudCgpIHRvIGRvIGl0cyB3b3JrLCBh
bmQgb3V0cHV0cyB0aGUgZGlzcGxheSBuYW1lIGluIHRoZSBmb3JtYXQKKyAgICAgKiAibGFuZ3Vh
Z2UgKGNvdW50cnlbLHZhcmlhbnRdKSIuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGRlZmF1bHQgbG9j
YWxlIGlzIGVuX1VTLCB0aGVuCisgICAgICogZnJfRlIncyBkaXNwbGF5IG5hbWUgd291bGQgYmUg
IkZyZW5jaCAoRnJhbmNlKSIsIGFuZCBlc19NWF9UcmFkaXRpb25hbCdzIGRpc3BsYXkgbmFtZQor
ICAgICAqIHdvdWxkIGJlICJTcGFuaXNoIChNZXhpY28sVHJhZGl0aW9uYWwpIi4KKyAgICAgKiBA
cGFyYW0gbmFtZSAgUmVjZWl2ZXMgdGhlIGxvY2FsZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBA
cmV0dXJuICAgICAgQSByZWZlcmVuY2UgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TmFtZSggICAgICAgICBV
bmljb2RlU3RyaW5nJiAgbmFtZSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAi
bmFtZSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBm
b3IgdXNlciBkaXNwbGF5CisgICAgICogaW4gdGhlIGxvY2FsZSBzcGVjZmllZCBieSAiZGlzcGxh
eUxvY2FsZSIuICBUaGlzIGZ1bmN0aW9uIHVzZXMgZ2V0RGlzcGxheUxhbmd1YWdlKCksCisgICAg
ICogZ2V0RGlzcGxheUNvdW50cnkoKSwgYW5kIGdldERpc3BsYXlWYXJpYW50KCkgdG8gZG8gaXRz
IHdvcmssIGFuZCBvdXRwdXRzIHRoZSBkaXNwbGF5CisgICAgICogbmFtZSBpbiB0aGUgZm9ybWF0
ICJsYW5ndWFnZSAoY291bnRyeVssdmFyaWFudF0pIi4gIEZvciBleGFtcGxlLCBpZiBkaXNwbGF5
TG9jYWxlIGlzCisgICAgICogZnJfRlIsIHRoZW4gZW5fVVMncyBkaXNwbGF5IG5hbWUgd291bGQg
YmUgIkFuZ2xhaXMgKCZFYWN1dGU7dGF0cy1VbmlzKSIsIGFuZCBub19OT19OWSdzCisgICAgICog
ZGlzcGxheSBuYW1lIHdvdWxkIGJlICJub3J2JmVhY3V0ZTtnaWVuIChOb3J2JmVncmF2ZTtnZSxO
WSkiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0
byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuCisgICAgICogQHBhcmFtIG5hbWUgICAgICBS
ZWNlaXZlcyB0aGUgbG9jYWxlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAg
ICAgQSByZWZlcmVuY2UgdG8gIm5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5TmFtZSggY29uc3QgICBMb2NhbGUmICAg
ICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVW5pY29kZVN0cmluZyYgIG5hbWUpIGNvbnN0OworCisgICAgLyoqCisgICAgICog
R2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGUgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICBoYXNoQ29kZSh2b2lkKSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGxvY2FsZSB0byBib2d1cworICAgICAqIEEgYm9n
dXMgbG9jYWxlIHJlcHJlc2VudHMgYSBub24tZXhpc3RpbmcgbG9jYWxlIGFzc29jaWF0ZWQKKyAg
ICAgKiB3aXRoIHNlcnZpY2VzIHRoYXQgY2FuIGJlIGluc3RhbnRpYXRlZCBmcm9tIG5vbi1sb2Nh
bGUgZGF0YQorICAgICAqIGluIGFkZGl0aW9uIHRvIGxvY2FsZSAoZm9yIGV4YW1wbGUsIGNvbGxh
dGlvbiBjYW4gYmUKKyAgICAgKiBpbnN0YW50aWF0ZWQgZnJvbSBhIGxvY2FsZSBhbmQgZnJvbSBh
IHJ1bGUgc2V0KS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAgICB2b2lkIHNl
dFRvQm9ndXMoKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGJvZ3VzIHN0YXRlLiBMb2Nh
bGUgb2JqZWN0IGNhbiBiZSBib2d1cyBpZiBpdCBkb2Vzbid0IGV4aXN0CisgICAgICogQHJldHVy
biBGQUxTRSBpZiBpdCBpcyBhIHJlYWwgbG9jYWxlLCBUUlVFIGlmIGl0IGlzIGEgYm9ndXMgbG9j
YWxlCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgVUJvb2wgaXNCb2d1cyh2
b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBsaXN0IG9mIGFsbCBpbnN0
YWxsZWQgbG9jYWxlcy4KKyAgICAgKiBAcGFyYW0gY291bnQgUmVjZWl2ZXMgdGhlIG51bWJlciBv
ZiBsb2NhbGVzIGluIHRoZSBsaXN0LgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8g
YW4gYXJyYXkgb2YgTG9jYWxlIG9iamVjdHMuICBUaGlzIGFycmF5IGlzIHRoZSBsaXN0CisgICAg
ICogICAgICAgICAgICAgIG9mIGFsbCBsb2NhbGVzIHdpdGggaW5zdGFsbGVkIHJlc291cmNlIGZp
bGVzLiAgVGhlIGNhbGxlZCBkb2VzIE5PVAorICAgICAqICAgICAgICAgICAgICBnZXQgb3duZXJz
aGlwIG9mIHRoaXMgbGlzdCwgYW5kIG11c3QgTk9UIGRlbGV0ZSBpdC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlKiBVX0VYUE9SVDIgZ2V0
QXZhaWxhYmxlTG9jYWxlcyhpbnQzMl90JiBjb3VudCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRz
IGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIDItbGV0dGVyIGNvdW50cnkgY29kZXMgZGVmaW5lZCBp
biBJU08gMzE2Ni4gIFRoaXMgaXMgYQorICAgICAqIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgcG9p
bnRlcnMgdG8gYXJyYXlzIG9mIGNoYXIuICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlCisgICAg
ICogb3duZWQgYnkgSUNVLS0gZG8gbm90IGRlbGV0ZSB0aGVtLCBhbmQgZG8gbm90IHdyaXRlIHRo
cm91Z2ggdGhlbS4gIFRoZSBhcnJheSBpcworICAgICAqIHRlcm1pbmF0ZWQgd2l0aCBhIG51bGwg
cG9pbnRlci4KKyAgICAgKiBAcmV0dXJuIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGNvdW50cnkg
Y29kZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3Qg
Y2hhciogY29uc3QqIFVfRVhQT1JUMiBnZXRJU09Db3VudHJpZXMoKTsKKworICAgIC8qKgorICAg
ICAqIEdldHMgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgbGFuZ3VhZ2UgY29kZXMgZGVmaW5lZCBp
biBJU08gNjM5LiAgVGhpcyBpcyBhIHBvaW50ZXIKKyAgICAgKiB0byBhbiBhcnJheSBvZiBwb2lu
dGVycyB0byBhcnJheXMgb2YgY2hhci4gIEFsbCBvZiB0aGVzZSBwb2ludGVycyBhcmUgb3duZWQK
KyAgICAgKiBieSBJQ1UtLSBkbyBub3QgZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhy
b3VnaCB0aGVtLiAgVGhlIGFycmF5IGlzCisgICAgICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBw
b2ludGVyLgorICAgICAqIEByZXR1cm4gYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgbGFuZ3VhZ2Ug
Y29kZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3Qg
Y2hhciogY29uc3QqIFVfRVhQT1JUMiBnZXRJU09MYW5ndWFnZXMoKTsKKworICAgIC8qKgorICAg
ICAqIElDVSAicG9vciBtYW4ncyBSVFRJIiwgcmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGlzIGNs
YXNzLgorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgc3RhdGlj
IFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKCk7CisKKyAgICAvKioKKyAgICAg
KiBJQ1UgInBvb3IgbWFuJ3MgUlRUSSIsIHJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhlIGFjdHVh
bCBjbGFzcy4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHZp
cnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQoKSBjb25zdDsKKworcHJvdGVjdGVkOiAv
KiBvbmx5IHByb3RlY3RlZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gRE8gTk9UIFVTRS4gKi8KKyNp
Zm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAqIFNldCB0aGlzIGZyb20g
YSBzaW5nbGUgUE9TSVggc3R5bGUgbG9jYWxlIHN0cmluZy4KKyAgICAgKiBAaW50ZXJuYWwKKyAg
ICAgKi8KKyAgICB2b2lkIHNldEZyb21QT1NJWElEKGNvbnN0IGNoYXIgKnBvc2l4SUQpOworI2Vu
ZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKK3ByaXZhdGU6CisgICAgLyoqCisgICAg
ICogSW5pdGlhbGl6ZSB0aGUgbG9jYWxlIG9iamVjdCB3aXRoIGEgbmV3IG5hbWUuCisgICAgICog
V2FzIGRlcHJlY2F0ZWQgLSB1c2VkIGluIGltcGxlbWVudGF0aW9uIC0gbW92ZWQgaW50ZXJuYWwK
KyAgICAgKgorICAgICAqIEBwYXJhbSBjTG9jYWxlSUQgVGhlIG5ldyBsb2NhbGUgbmFtZS4KKyAg
ICAgKiBAcGFyYW0gY2Fub25pY2FsaXplIHdoZXRoZXIgdG8gY2FsbCB1bG9jX2Nhbm9uaWNhbGl6
ZSBvbiBjTG9jYWxlSUQKKyAgICAgKi8KKyAgICBMb2NhbGUmIGluaXQoY29uc3QgY2hhciogY0xv
Y2FsZUlELCBVQm9vbCBjYW5vbmljYWxpemUpOworCisgICAgLyoKKyAgICAgKiBJbnRlcm5hbCBj
b25zdHJ1Y3RvciB0byBhbGxvdyBjb25zdHJ1Y3Rpb24gb2YgYSBsb2NhbGUgb2JqZWN0IHdpdGgK
KyAgICAgKiAgIE5PIHNpZGUgZWZmZWN0cy4gICAoRGVmYXVsdCBjb25zdHJ1Y3RvciB0cmllcyB0
byBnZXQKKyAgICAgKiAgIHRoZSBkZWZhdWx0IGxvY2FsZS4pCisgICAgICovCisgICAgZW51bSBF
TG9jYWxlVHlwZSB7CisgICAgICAgIGVCT0dVUworICAgIH07CisgICAgTG9jYWxlKEVMb2NhbGVU
eXBlKTsKKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgdGhlIGxvY2FsZSBjYWNoZSBmb3Ig
Y29tbW9ubHkgdXNlZCBsb2NhbGVzCisgICAgICovCisgICAgc3RhdGljIExvY2FsZSAqZ2V0TG9j
YWxlQ2FjaGUodm9pZCk7CisKKyAgICBjaGFyIGxhbmd1YWdlW1VMT0NfTEFOR19DQVBBQ0lUWV07
CisgICAgY2hhciBzY3JpcHRbVUxPQ19TQ1JJUFRfQ0FQQUNJVFldOworICAgIGNoYXIgY291bnRy
eVtVTE9DX0NPVU5UUllfQ0FQQUNJVFldOworICAgIGludDMyX3QgdmFyaWFudEJlZ2luOworICAg
IGNoYXIqIGZ1bGxOYW1lOworICAgIGNoYXIgZnVsbE5hbWVCdWZmZXJbVUxPQ19GVUxMTkFNRV9D
QVBBQ0lUWV07CisgICAgLy8gbmFtZSB3aXRob3V0IGtleXdvcmRzCisgICAgY2hhciogYmFzZU5h
bWU7CisgICAgdm9pZCBpbml0QmFzZU5hbWUoVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIFVC
b29sIGZJc0JvZ3VzOworCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmZ2V0TG9jYWxlKGludCBs
b2NpZCk7CisKKyAgICAvKioKKyAgICAgKiBBIGZyaWVuZCB0byBhbGxvdyB0aGUgZGVmYXVsdCBs
b2NhbGUgdG8gYmUgc2V0IGJ5IGVpdGhlciB0aGUgQyBvciBDKysgQVBJLgorICAgICAqIEBpbnRl
cm5hbAorICAgICAqLworICAgIGZyaWVuZCBMb2NhbGUgKmxvY2FsZV9zZXRfZGVmYXVsdF9pbnRl
cm5hbChjb25zdCBjaGFyICosIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAg
KiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBmcmllbmQgdm9pZCBVX0NBTExDT05WIGxvY2FsZV9h
dmFpbGFibGVfaW5pdCgpOworfTsKKworaW5saW5lIFVCb29sCitMb2NhbGU6Om9wZXJhdG9yIT0o
Y29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuICFvcGVyYXRv
cj09KG90aGVyKTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRDb3VudHJ5
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gY291bnRyeTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIg
KgorTG9jYWxlOjpnZXRMYW5ndWFnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGxhbmd1YWdlOwor
fQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldFNjcmlwdCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHNjcmlwdDsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRW
YXJpYW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gJmJhc2VOYW1lW3ZhcmlhbnRCZWdpbl07Cit9
CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGZ1bGxOYW1lOworfQorCitpbmxpbmUgVUJvb2wKK0xvY2FsZTo6aXNCb2d1cyh2b2lk
KSBjb25zdCB7CisgICAgcmV0dXJuIGZJc0JvZ3VzOworfQorCitVX05BTUVTUEFDRV9FTkQKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3JiYmkuaCBiL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NzU5OGE1MGU2ZmEzYmFiMmFk
NDllMDIyYWFmMzk2Y2FjMzI5ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3JiYmkuaApAQCAtMCwwICsxLDc4MiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor
KiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMgQ29ycG9yYXRpb24gICAqCisqICAgYW5kIG90aGVycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqICAgRGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRp
b24KKyogICAxMC8yMi85OSAgICBhbGFuICAgICAgICBDcmVhdGlvbi4KKyogICAxMS8xMS85OSAg
ICByZ2lsbGFtICAgICBDb21wbGV0ZSBwb3J0IGZyb20gSmF2YS4KKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyov
CisKKyNpZm5kZWYgUkJCSV9ICisjZGVmaW5lIFJCQklfSAorCisjaW5jbHVkZSAidW5pY29kZS91
dHlwZXMuaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IFJ1bGUgQmFzZWQg
QnJlYWsgSXRlcmF0b3IKKyAqLworCisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisK
KyNpbmNsdWRlICJ1bmljb2RlL2Jya2l0ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VkYXRhLmgi
CisjaW5jbHVkZSAidW5pY29kZS9wYXJzZWVyci5oIgorI2luY2x1ZGUgInVuaWNvZGUvc2Nocml0
ZXIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VjaHJpdGVyLmgiCisKKworc3RydWN0IFVUcmllOwor
CitVX05BTUVTUEFDRV9CRUdJTgorCisvKiogQGludGVybmFsICovCitzdHJ1Y3QgUkJCSURhdGFI
ZWFkZXI7CitjbGFzcyAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvclRhYmxlczsKK2NsYXNzICBCcmVh
a0l0ZXJhdG9yOworY2xhc3MgIFJCQklEYXRhV3JhcHBlcjsKK2NsYXNzICBVU3RhY2s7CitjbGFz
cyAgTGFuZ3VhZ2VCcmVha0VuZ2luZTsKK2NsYXNzICBVbmhhbmRsZWRFbmdpbmU7CitzdHJ1Y3Qg
UkJCSVN0YXRlVGFibGU7CisKKworCisKKy8qKgorICoKKyAqIEEgc3ViY2xhc3Mgb2YgQnJlYWtJ
dGVyYXRvciB3aG9zZSBiZWhhdmlvciBpcyBzcGVjaWZpZWQgdXNpbmcgYSBsaXN0IG9mIHJ1bGVz
LgorICogPHA+SW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgYXJlIG1vc3QgY29tbW9ubHkgY3JlYXRl
ZCBieSB0aGUgZmFjdG9yeSBtZXRob2RzIG9mCisgKiAgQnJlYWtJdGVyYXRvcjo6Y3JlYXRlV29y
ZEluc3RhbmNlKCksIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZUxpbmVJbnN0YW5jZSgpLCBldGMuLAor
ICogIGFuZCB0aGVuIHVzZWQgdmlhIHRoZSBhYnN0cmFjdCBBUEkgaW4gY2xhc3MgQnJlYWtJdGVy
YXRvcjwvcD4KKyAqCisgKiA8cD5TZWUgdGhlIElDVSBVc2VyIEd1aWRlIGZvciBpbmZvcm1hdGlv
biBvbiBCcmVhayBJdGVyYXRvciBSdWxlcy48L3A+CisgKgorICogPHA+VGhpcyBjbGFzcyBpcyBu
b3QgaW50ZW5kZWQgdG8gYmUgc3ViY2xhc3NlZC4gIChDbGFzcyBEaWN0aW9uYXJ5QmFzZWRCcmVh
a0l0ZXJhdG9yCisgKiAgICBpcyBhIHN1YmNsYXNzLCBidXQgdGhhdCByZWxhdGlvbnNoaXAgaXMg
ZWZmZWN0aXZlbHkgaW50ZXJuYWwgdG8gdGhlIElDVQorICogICAgaW1wbGVtZW50YXRpb24uICBU
aGUgc3ViY2xhc3NpbmcgaW50ZXJmYWNlIHRvIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yIGlzCisg
KiAgICBub3QgcGFydCBvZiB0aGUgSUNVIEFQSSwgYW5kIG1heSBub3QgcmVtYWluIHN0YWJsZS48
L3A+CisgKgorICovCitjbGFzcyBVX0NPTU1PTl9BUEkgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAv
KlVfRklOQUwqLyA6IHB1YmxpYyBCcmVha0l0ZXJhdG9yIHsKKworcHJvdGVjdGVkOgorICAgIC8q
KgorICAgICAqIFRoZSBVVGV4dCB0aHJvdWdoIHdoaWNoIHRoaXMgQnJlYWtJdGVyYXRvciBhY2Nl
c3NlcyB0aGUgdGV4dAorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVUZXh0ICAqZlRl
eHQ7CisKKyAgICAvKioKKyAgICAgKiAgIEEgY2hhcmFjdGVyIGl0ZXJhdG9yIHRoYXQgcmVmZXJz
IHRvIHRoZSBzYW1lIHRleHQgYXMgdGhlIFVUZXh0LCBhYm92ZS4KKyAgICAgKiAgIE9ubHkgaW5j
bHVkZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgQVBJLCB3aGljaCB3YXMgYmFzZWQgb24g
Q2hhcmFjdGVySXRlcmF0b3JzLgorICAgICAqICAgVmFsdWUgbWF5IGJlIGFkb3B0ZWQgZnJvbSBv
dXRzaWRlLCBvciBvbmUgb2YgZlNDaGFySXRlciBvciBmRENoYXJJdGVyLCBiZWxvdy4KKyAgICAg
Ki8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvciAgKmZDaGFySXRlcjsKKworICAgIC8qKgorICAgICAq
ICAgV2hlbiB0aGUgaW5wdXQgdGV4dCBpcyBwcm92aWRlZCBieSBhIFVuaWNvZGVTdHJpbmcsIHRo
aXMgd2lsbCBwb2ludCB0bworICAgICAqICAgIGEgY2hhcmFjdGVySXRlcmF0b3IgdGhhdCB3cmFw
cyB0aGF0IGRhdGEuICBOZWVkZWQgb25seSBmb3IgdGhlCisgICAgICogICAgaW1wbGVtZW50YXRp
b24gb2YgZ2V0VGV4dCgpLCBhIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGlzc3VlLgorICAgICAq
LworICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yICpmU0NoYXJJdGVyOworCisgICAgLyoqCisg
ICAgICogIFdoZW4gdGhlIGlucHV0IHRleHQgaXMgcHJvdmlkZWQgYnkgYSBVVGV4dCwgdGhpcwor
ICAgICAqICAgIGR1bW15IENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgYW4gZW1wdHkgc3RyaW5nIHdp
bGwKKyAgICAgKiAgICBiZSByZXR1cm5lZCBmcm9tIGdldFRleHQoKQorICAgICAqLworICAgIFVD
aGFyQ2hhcmFjdGVySXRlcmF0b3IgKmZEQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiBUaGUg
cnVsZSBkYXRhIGZvciB0aGlzIEJyZWFrSXRlcmF0b3IgaW5zdGFuY2UKKyAgICAgKiBAaW50ZXJu
YWwKKyAgICAgKi8KKyAgICBSQkJJRGF0YVdyYXBwZXIgICAgKmZEYXRhOworCisgICAgLyoqIElu
ZGV4IG9mIHRoZSBSdWxlIHt0YWd9IHZhbHVlcyBmb3IgdGhlIG1vc3QgcmVjZW50IG1hdGNoLgor
ICAgICAqICBAaW50ZXJuYWwKKyAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZkxhc3RS
dWxlU3RhdHVzSW5kZXg7CisKKyAgICAvKioKKyAgICAgKiBSdWxlIHRhZyB2YWx1ZSB2YWxpZCBm
bGFnLgorICAgICAqIFNvbWUgaXRlcmF0b3Igb3BlcmF0aW9ucyBkb24ndCBpbnRyaW5zaWNhbGx5
IHNldCB0aGUgY29ycmVjdCB0YWcgdmFsdWUuCisgICAgICogVGhpcyBmbGFnIGxldHMgdXMgbGF6
aWx5IGNvbXB1dGUgdGhlIHZhbHVlIGlmIHdlIGFyZSBldmVyIGFza2VkIGZvciBpdC4KKyAgICAg
KiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBVQm9vbCAgICAgICAgICAgICAgIGZMYXN0U3RhdHVz
SW5kZXhWYWxpZDsKKworICAgIC8qKgorICAgICAqIENvdW50ZXIgZm9yIHRoZSBudW1iZXIgb2Yg
Y2hhcmFjdGVycyBlbmNvdW50ZXJlZCB3aXRoIHRoZSAiZGljdGlvbmFyeSIKKyAgICAgKiAgIGZs
YWcgc2V0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICAg
ICAgZkRpY3Rpb25hcnlDaGFyQ291bnQ7CisKKyAgICAvKioKKyAgICAgKiBXaGVuIGEgcmFuZ2Ug
b2YgY2hhcmFjdGVycyBpcyBkaXZpZGVkIHVwIHVzaW5nIHRoZSBkaWN0aW9uYXJ5LCB0aGUgYnJl
YWsKKyAgICAgKiBwb3NpdGlvbnMgdGhhdCBhcmUgZGlzY292ZXJlZCBhcmUgc3RvcmVkIGhlcmUs
IHByZXZlbnRpbmcgdXMgZnJvbSBoYXZpbmcKKyAgICAgKiB0byB1c2UgZWl0aGVyIHRoZSBkaWN0
aW9uYXJ5IG9yIHRoZSBzdGF0ZSB0YWJsZSBhZ2FpbiB1bnRpbCB0aGUgaXRlcmF0b3IKKyAgICAg
KiBsZWF2ZXMgdGhpcyByYW5nZSBvZiB0ZXh0LiBIYXMgdGhlIG1vc3QgaW1wYWN0IGZvciBsaW5l
IGJyZWFraW5nLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QqICAgICAg
ICAgICAgZkNhY2hlZEJyZWFrUG9zaXRpb25zOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJl
ciBvZiBlbGVtZW50cyBpbiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMKKyAgICAgKiBAaW50ZXJuYWwK
KyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZOdW1DYWNoZWRCcmVha1Bvc2l0aW9u
czsKKworICAgIC8qKgorICAgICAqIGlmIGZDYWNoZWRCcmVha1Bvc2l0aW9ucyBpcyBub3QgbnVs
bCwgdGhpcyBpbmRpY2F0ZXMgd2hpY2ggaXRlbSBpbiB0aGUKKyAgICAgKiBjYWNoZSB0aGUgY3Vy
cmVudCBpdGVyYXRpb24gcG9zaXRpb24gcmVmZXJzIHRvCisgICAgICogQGludGVybmFsCisgICAg
ICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmUG9zaXRpb25JbkNhY2hlOworICAgIAorICAg
IC8qKgorICAgICAqCisgICAgICogSWYgcHJlc2VudCwgVVN0YWNrIG9mIExhbmd1YWdlQnJlYWtF
bmdpbmUgb2JqZWN0cyB0aGF0IG1pZ2h0IGhhbmRsZQorICAgICAqIGRpY3Rpb25hcnkgY2hhcmFj
dGVycy4gU2VhcmNoZWQgZnJvbSB0b3AgdG8gYm90dG9tIHRvIGZpbmQgYW4gb2JqZWN0IHRvCisg
ICAgICogaGFuZGxlIGEgZ2l2ZW4gY2hhcmFjdGVyLgorICAgICAqIEBpbnRlcm5hbAorICAgICAq
LworICAgIFVTdGFjayAgICAgICAgICAgICAgKmZMYW5ndWFnZUJyZWFrRW5naW5lczsKKyAgICAK
KyAgICAvKioKKyAgICAgKgorICAgICAqIElmIHByZXNlbnQsIHRoZSBzcGVjaWFsIExhbmd1YWdl
QnJlYWtFbmdpbmUgdXNlZCBmb3IgaGFuZGxpbmcKKyAgICAgKiBjaGFyYWN0ZXJzIHRoYXQgYXJl
IGluIHRoZSBkaWN0aW9uYXJ5IHNldCwgYnV0IG5vdCBoYW5kbGVkIGJ5IGFueQorICAgICAqIExh
bmd1Z2FnZUJyZWFrRW5naW5lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVuaGFu
ZGxlZEVuZ2luZSAgICAgKmZVbmhhbmRsZWRCcmVha0VuZ2luZTsKKyAgICAKKyAgICAvKioKKyAg
ICAgKgorICAgICAqIFRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvciwgb3IgLTEgaWYgaXQg
aGFzIG5vdCBiZWVuIHNldC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90
ICAgICAgICAgICAgIGZCcmVha1R5cGU7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgLy89PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorICAgIC8vIGNvbnN0cnVjdG9ycworICAgIC8vPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworI2lm
bmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgdG8gYmUg
dXNlZCBpbiB0aGUgY29uc3RydWN0b3IKKyAgICAgKiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFJC
QklEYXRhSGVhZGVyKiwgRURvbnRBZG9wdCwgVUVycm9yQ29kZSAmKTsKKyAgICAgKiB3aGljaCBk
b2VzIG5vdCBhZG9wdCB0aGUgbWVtb3J5IGluZGljYXRlZCBieSB0aGUgUkJCSURhdGFIZWFkZXIq
CisgICAgICogcGFyYW1ldGVyLgorICAgICAqCisgICAgICogQGludGVybmFsCisgICAgICovCisg
ICAgZW51bSBFRG9udEFkb3B0IHsKKyAgICAgICAga0RvbnRBZG9wdAorICAgIH07CisKKyAgICAv
KioKKyAgICAgKiBDb25zdHJ1Y3RvciBmcm9tIGEgZmxhdHRlbmVkIHNldCBvZiBSQkJJIGRhdGEg
aW4gbWFsbG9jZWQgbWVtb3J5LgorICAgICAqICAgICAgICAgICAgIFJ1bGVzQmFzZWRCcmVha0l0
ZXJhdG9ycyBidWlsdCBmcm9tIGEgY3VzdG9tIHNldCBvZiBydWxlcworICAgICAqICAgICAgICAg
ICAgIGFyZSBjcmVhdGVkIHZpYSB0aGlzIGNvbnN0cnVjdG9yOyB0aGUgcnVsZXMgYXJlIGNvbXBp
bGVkCisgICAgICogICAgICAgICAgICAgaW50byBtZW1vcnksIHRoZW4gdGhlIGJyZWFrIGl0ZXJh
dG9yIGlzIGNvbnN0cnVjdGVkIGhlcmUuCisgICAgICoKKyAgICAgKiAgICAgICAgICAgICBUaGUg
YnJlYWsgaXRlcmF0b3IgYWRvcHRzIHRoZSBtZW1vcnksIGFuZCB3aWxsCisgICAgICogICAgICAg
ICAgICAgZnJlZSBpdCB3aGVuIGRvbmUuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAg
UnVsZUJhc2VkQnJlYWtJdGVyYXRvcihSQkJJRGF0YUhlYWRlciogZGF0YSwgVUVycm9yQ29kZSAm
c3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZyb20gYSBmbGF0dGVuZWQg
c2V0IG9mIFJCQkkgZGF0YSBpbiBtZW1vcnkgd2hpY2ggbmVlZCBub3QKKyAgICAgKiAgICAgICAg
ICAgICBiZSBtYWxsb2NlZCAoZS5nLiBpdCBtYXkgYmUgYSBtZW1vcnktbWFwcGVkIGZpbGUsIGV0
Yy4pLgorICAgICAqCisgICAgICogICAgICAgICAgICAgVGhpcyB2ZXJzaW9uIGRvZXMgbm90IGFk
b3B0IHRoZSBtZW1vcnksIGFuZCBkb2VzIG5vdAorICAgICAqICAgICAgICAgICAgIGZyZWUgaXQg
d2hlbiBkb25lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IoY29uc3QgUkJCSURhdGFIZWFkZXIqIGRhdGEsIGVudW0gRURvbnRBZG9wdCBkb250
QWRvcHQsIFVFcnJvckNvZGUgJnN0YXR1cyk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9B
UEkgKi8KKworCisgICAgZnJpZW5kIGNsYXNzIFJCQklSdWxlQnVpbGRlcjsKKyAgICAvKiogQGlu
dGVybmFsICovCisgICAgZnJpZW5kIGNsYXNzIEJyZWFrSXRlcmF0b3I7CisKKworCitwdWJsaWM6
CisKKyAgICAvKiogRGVmYXVsdCBjb25zdHJ1Y3Rvci4gIENyZWF0ZXMgYW4gZW1wdHkgc2hlbGwg
b2YgYW4gaXRlcmF0b3IsIHdpdGggbm8KKyAgICAgKiAgcnVsZXMgb3IgdGV4dCB0byBpdGVyYXRl
IG92ZXIuICAgT2JqZWN0IGNhbiBzdWJzZXF1ZW50bHkgYmUgYXNzaWduZWQgdG8uCisgICAgICog
IEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKTsK
KworICAgIC8qKgorICAgICAqIENvcHkgY29uc3RydWN0b3IuICBXaWxsIHByb2R1Y2UgYSBicmVh
ayBpdGVyYXRvciB3aXRoIHRoZSBzYW1lIGJlaGF2aW9yLAorICAgICAqIGFuZCB3aGljaCBpdGVy
YXRlcyBvdmVyIHRoZSBzYW1lIHRleHQsIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBw
YXJhbSB0aGF0IFRoZSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHBhc3NlZCB0byBiZSBjb3BpZWQK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yKGNvbnN0IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIHRoYXQpOworCisgICAgLyoqCisgICAg
ICogQ29uc3RydWN0IGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEgc2V0IG9mIHJ1bGVz
IHN1cHBsaWVkIGFzIGEgc3RyaW5nLgorICAgICAqIEBwYXJhbSBydWxlcyBUaGUgYnJlYWsgcnVs
ZXMgdG8gYmUgdXNlZC4KKyAgICAgKiBAcGFyYW0gcGFyc2VFcnJvciAgSW4gdGhlIGV2ZW50IG9m
IGEgc3ludGF4IGVycm9yIGluIHRoZSBydWxlcywgcHJvdmlkZXMgdGhlIGxvY2F0aW9uCisgICAg
ICogICAgICAgICAgICAgICAgICAgIHdpdGhpbiB0aGUgcnVsZXMgb2YgdGhlIHByb2JsZW0uCisg
ICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBvbiBhbnkgZXJyb3JzIGVuY291bnRlcmVk
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRl
cmF0b3IoIGNvbnN0IFVuaWNvZGVTdHJpbmcgICAgJnJ1bGVzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBVUGFyc2VFcnJvciAgICAgICAgICAgJnBhcnNlRXJyb3IsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgICAgICAgICAmc3RhdHVzKTsKKworICAg
IC8qKgorICAgICAqIENvbnRydWN0IGEgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBmcm9tIGEgc2V0
IG9mIHByZWNvbXBpbGVkIGJpbmFyeSBydWxlcy4KKyAgICAgKiBCaW5hcnkgcnVsZXMgYXJlIG9i
dGFpbmVkIGZyb20gUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3I6OmdldEJpbmFyeVJ1bGVzKCkuCisg
ICAgICogQ29uc3RydWN0aW9uIG9mIGEgYnJlYWsgaXRlcmF0b3IgaW4gdGhpcyB3YXkgaXMgc3Vi
c3RhbnRpYWxseSBmYXN0ZXIgdGhhbgorICAgICAqIGNvbnN0dWN0aW9uIGZyb20gc291cmNlIHJ1
bGVzLgorICAgICAqCisgICAgICogT3duZXJzaGlwIG9mIHRoZSBzdG9yYWdlIGNvbnRhaW5pbmcg
dGhlIGNvbXBpbGVkIHJ1bGVzIHJlbWFpbnMgd2l0aCB0aGUKKyAgICAgKiBjYWxsZXIgb2YgdGhp
cyBmdW5jdGlvbi4gIFRoZSBjb21waWxlZCBydWxlcyBtdXN0IG5vdCBiZSAgbW9kaWZpZWQgb3Ig
CisgICAgICogZGVsZXRlZCBkdXJpbmcgdGhlIGxpZmUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLgor
ICAgICAqCisgICAgICogVGhlIGNvbXBpbGVkIHJ1bGVzIGFyZSBub3QgY29tcGF0aWJsZSBhY3Jv
c3MgZGlmZmVyZW50IG1ham9yIHZlcnNpb25zIG9mIElDVS4KKyAgICAgKiBUaGUgY29tcGlsZWQg
cnVsZXMgYXJlIGNvbWFwdGlibGUgb25seSBiZXR3ZWVuIG1hY2hpbmVzIHdpdGggdGhlIHNhbWUK
KyAgICAgKiBieXRlIG9yZGVyaW5nIChsaXR0bGUgb3IgYmlnIGVuZGlhbikgYW5kIHRoZSBzYW1l
IGJhc2UgY2hhcmFjdGVyIHNldCBmYW1pbHkKKyAgICAgKiAoQVNDSUkgb3IgRUJDRElDKS4KKyAg
ICAgKgorICAgICAqIEBzZWUgI2dldEJpbmFyeVJ1bGVzCisgICAgICogQHBhcmFtIGNvbXBpbGVk
UnVsZXMgQSBwb2ludGVyIHRvIHRoZSBjb21waWxlZCBicmVhayBydWxlcyB0byBiZSB1c2VkLgor
ICAgICAqIEBwYXJhbSBydWxlTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIGNvbXBpbGVkIGJyZWFr
IHJ1bGVzLCBpbiBieXRlcy4gIFRoaXMKKyAgICAgKiAgIGNvcnJlc3BvbmRzIHRvIHRoZSBsZW5n
dGggdmFsdWUgcHJvZHVjZWQgYnkgZ2V0QmluYXJ5UnVsZXMoKS4KKyAgICAgKiBAcGFyYW0gc3Rh
dHVzIEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQsIGluY2x1ZGluZyBpbnZh
bGlkCisgICAgICogICBiaW5hcnkgcnVsZXMuCisgICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAg
ICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCB1aW50OF90ICpjb21waWxlZFJ1
bGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgcnVsZUxlbmd0
aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgJnN0YXR1cyk7CisK
KyAgICAvKioKKyAgICAgKiBUaGlzIGNvbnN0cnVjdG9yIHVzZXMgdGhlIHVkYXRhIGludGVyZmFj
ZSB0byBjcmVhdGUgYSBCcmVha0l0ZXJhdG9yCisgICAgICogd2hvc2UgaW50ZXJuYWwgdGFibGVz
IGxpdmUgaW4gYSBtZW1vcnktbWFwcGVkIGZpbGUuICAiaW1hZ2UiIGlzIGFuCisgICAgICogSUNV
IFVEYXRhTWVtb3J5IGhhbmRsZSBmb3IgdGhlIHByZS1jb21waWxlZCBicmVhayBpdGVyYXRvciB0
YWJsZXMuCisgICAgICogQHBhcmFtIGltYWdlIGhhbmRsZSB0byB0aGUgbWVtb3J5IGltYWdlIGZv
ciB0aGUgYnJlYWsgaXRlcmF0b3IgZGF0YS4KKyAgICAgKiAgICAgICAgT3duZXJzaGlwIG9mIHRo
ZSBVRGF0YU1lbW9yeSBoYW5kbGUgcGFzc2VzIHRvIHRoZSBCcmVhayBJdGVyYXRvciwKKyAgICAg
KiAgICAgICAgd2hpY2ggd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgY2xvc2luZyBpdCB3aGVuIGl0
IGlzIG5vIGxvbmdlciBuZWVkZWQuCisgICAgICogQHBhcmFtIHN0YXR1cyBJbmZvcm1hdGlvbiBv
biBhbnkgZXJyb3JzIGVuY291bnRlcmVkLgorICAgICAqIEBzZWUgdWRhdGFfb3BlbgorICAgICAq
IEBzZWUgI2dldEJpbmFyeVJ1bGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisg
ICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihVRGF0YU1lbW9yeSogaW1hZ2UsIFVFcnJvckNvZGUg
JnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yCisgICAgICogIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgflJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoKTsK
KworICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICBTZXRzIHRoaXMgaXRlcmF0
b3IgdG8gaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwKKyAgICAgKiBhbmQgaXRlcmF0ZSBvdmVyIHRo
ZSBzYW1lIHRleHQsIGFzIHRoZSBvbmUgcGFzc2VkIGluLgorICAgICAqIEBwYXJhbSB0aGF0IFRo
ZSBSdWxlQmFzZWRCcmVha0l0ZXJ0b3IgcGFzc2VkIGluCisgICAgICogQHJldHVybiB0aGUgbmV3
bHkgY3JlYXRlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICogIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIG9wZXJhdG9yPShjb25zdCBS
dWxlQmFzZWRCcmVha0l0ZXJhdG9yJiB0aGF0KTsKKworICAgIC8qKgorICAgICAqIEVxdWFsaXR5
IG9wZXJhdG9yLiAgUmV0dXJucyBUUlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG9mIHRo
ZQorICAgICAqIHNhbWUgY2xhc3MsIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsIGFuZCBpdGVyYXRl
IG92ZXIgdGhlIHNhbWUgdGV4dC4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQnJlYWtJdGVyYXRv
ciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgYm90
aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhlCisgICAgICogc2FtZSBjbGFzcywgaGF2ZSB0aGUg
c2FtZSBiZWhhdmlvciwgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAqICBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29u
c3QgQnJlYWtJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBOb3QtZXF1
YWwgb3BlcmF0b3IuICBJZiBvcGVyYXRvcj09IHJldHVybnMgVFJVRSwgdGhpcyByZXR1cm5zIEZB
TFNFLAorICAgICAqIGFuZCB2aWNlIHZlcnNhLgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBCcmVh
a0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5CisgICAgICogQHJldHVybiBU
UlVFIGlmIGJvdGggQnJlYWtJdGVyYXRvcnMgYXJlIG5vdCBzYW1lLgorICAgICAqICBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEJyZWFrSXRlcmF0
b3ImIHRoYXQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIG5ld2x5LWNvbnN0
cnVjdGVkIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3Igd2l0aCB0aGUgc2FtZQorICAgICAqIGJlaGF2
aW9yLCBhbmQgaXRlcmF0aW5nIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhpcyBvbmUuCisgICAg
ICogRGlmZmVycyBmcm9tIHRoZSBjb3B5IGNvbnN0cnVjdG9yIGluIHRoYXQgaXQgaXMgcG9seW1v
cnBoaWMsIGFuZAorICAgICAqIHdpbGwgY29ycmVjdGx5IGNsb25lIChjb3B5KSBhIGRlcml2ZWQg
Y2xhc3MuCisgICAgICogY2xvbmUoKSBpcyB0aHJlYWQgc2FmZS4gIE11bHRpcGxlIHRocmVhZHMg
bWF5IHNpbXVsdGFlbmVvdXNseQorICAgICAqIGNsb25lIHRoZSBzYW1lIHNvdXJjZSBicmVhayBp
dGVyYXRvci4KKyAgICAgKiBAcmV0dXJuIGEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvcgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
QnJlYWtJdGVyYXRvciogY2xvbmUoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIENvbXB1dGUg
YSBoYXNoIGNvZGUgZm9yIHRoaXMgQnJlYWtJdGVyYXRvcgorICAgICAqIEByZXR1cm4gQSBoYXNo
IGNvZGUKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQz
Ml90IGhhc2hDb2RlKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUg
ZGVzY3JpcHRpb24gdXNlZCB0byBjcmVhdGUgdGhpcyBpdGVyYXRvcgorICAgICAqIEByZXR1cm4g
dGhlIGRlc2NyaXB0aW9uIHVzZWQgdG8gY3JlYXRlIHRoaXMgaXRlcmF0b3IKKyAgICAgKiAgQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBjb25zdCBVbmljb2RlU3RyaW5nJiBn
ZXRSdWxlcyh2b2lkKSBjb25zdDsKKworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvLyBCcmVh
a0l0ZXJhdG9yIG92ZXJyaWRlcworICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgIC8qKgorICAg
ICAqIDxwPgorICAgICAqIFJldHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRleHQg
YmVpbmcgYW5hbHl6ZWQuCisgICAgICogVGhlIHJldHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBp
cyBvd25lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IsIGFuZCBtdXN0CisgICAgICogbm90IGJlIGRl
bGV0ZWQgYnkgdGhlIGNhbGxlci4gIFJlcGVhdGVkIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24gbWF5
CisgICAgICogcmV0dXJuIHRoZSBzYW1lIENoYXJhY3Rlckl0ZXJhdG9yLgorICAgICAqIDwvcD4K
KyAgICAgKiA8cD4KKyAgICAgKiBUaGUgcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIG11c3Qg
bm90IGJlIHVzZWQgY29uY3VycmVudGx5IHdpdGgKKyAgICAgKiB0aGUgYnJlYWsgaXRlcmF0b3Iu
ICBJZiBjb25jdXJyZW50IG9wZXJhdGlvbiBpcyBuZWVkZWQsIGNsb25lIHRoZQorICAgICAqIHJl
dHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBmaXJzdCBhbmQgb3BlcmF0ZSBvbiB0aGUgY2xvbmUu
CisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFdoZW4gdGhlIGJyZWFrIGl0ZXJhdG9y
IGlzIG9wZXJhdGluZyBvbiB0ZXh0IHN1cHBsaWVkIHZpYSBhIFVUZXh0LAorICAgICAqIHRoaXMg
ZnVuY3Rpb24gd2lsbCBmYWlsLiAgTGFja2luZyBhbnkgd2F5IHRvIHNpZ25hbCBmYWlsdXJlcywg
aXQKKyAgICAgKiByZXR1cm5zIGFuIENoYXJhY3Rlckl0ZXJhdG9yIGNvbnRhaW5pbmcgbm8gdGV4
dC4KKyAgICAgKiBUaGUgZnVuY3Rpb24gZ2V0VVRleHQoKSBwcm92aWRlcyBzaW1pbGFyIGZ1bmN0
aW9uYWxpdHksCisgICAgICogaXMgcmVsaWFibGUsIGFuZCBpcyBtb3JlIGVmZmljaWVudC4KKyAg
ICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBUT0RPOiAgZGVwcmVjYXRlIHRoaXMgZnVuY3Rpb24/
CisgICAgICoKKyAgICAgKiBAcmV0dXJuIEFuIGl0ZXJhdG9yIG92ZXIgdGhlIHRleHQgYmVpbmcg
YW5hbHl6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCAg
Q2hhcmFjdGVySXRlcmF0b3ImIGdldFRleHQodm9pZCkgY29uc3Q7CisKKworICAgIC8qKgorICAg
ICAgKiAgR2V0IGEgVVRleHQgZm9yIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAgKiAg
VGhlIHJldHVybmVkIFVUZXh0IGlzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUgVVRleHQgdXNlZCBp
bnRlcm5hbGx5CisgICAgICAqICBieSB0aGUgYnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24u
ICBJdCBjYW4gc2FmZWx5IGJlIHVzZWQgdG8KKyAgICAgICogIGFjY2VzcyB0aGUgdGV4dCB3aXRo
b3V0IGltcGFjdGluZyBhbnkgYnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucywKKyAgICAgICogIGJ1
dCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2VsZiBtdXN0IG5vdCBiZSBhbHRlcmVkLgorICAgICAg
KgorICAgICAgKiBAcGFyYW0gZmlsbEluIEEgVVRleHQgdG8gYmUgZmlsbGVkIGluLiAgSWYgTlVM
TCwgYSBuZXcgVVRleHQgd2lsbCBiZQorICAgICAgKiAgICAgICAgICAgYWxsb2NhdGVkIHRvIGhv
bGQgdGhlIHJlc3VsdC4KKyAgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJyb3Ig
Y29kZXMuCisgICAgICAqIEByZXR1cm4gICBUaGUgY3VycmVudCBVVGV4dCBmb3IgdGhpcyBicmVh
ayBpdGVyYXRvci4gIElmIGFuIGlucHV0CisgICAgICAqICAgICAgICAgICBVVGV4dCB3YXMgcHJv
dmlkZWQsIGl0IHdpbGwgYWx3YXlzIGJlIHJldHVybmVkLgorICAgICAgKiBAc3RhYmxlIElDVSAz
LjQKKyAgICAgICovCisgICAgIHZpcnR1YWwgVVRleHQgKmdldFVUZXh0KFVUZXh0ICpmaWxsSW4s
IFVFcnJvckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0
ZXJhdG9yIHRvIGFuYWx5emUgYSBuZXcgcGllY2Ugb2YgdGV4dC4gIFRoaXMgZnVuY3Rpb24gcmVz
ZXRzCisgICAgICogdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5p
bmcgb2YgdGhlIHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgQW4gaXRlcmF0b3Igb3ZlciB0
aGUgdGV4dCB0byBhbmFseXplLiAgVGhlIEJyZWFrSXRlcmF0b3IKKyAgICAgKiB0YWtlcyBvd25l
cnNoaXAgb2YgdGhlIGNoYXJhY3RlciBpdGVyYXRvci4gIFRoZSBjYWxsZXIgTVVTVCBOT1QgZGVs
ZXRlIGl0IQorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZv
aWQgYWRvcHRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKiBuZXdUZXh0KTsKKworICAgIC8qKgorICAg
ICAqIFNldCB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVjZSBvZiB0ZXh0LiAgVGhp
cyBmdW5jdGlvbiByZXNldHMKKyAgICAgKiB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24g
dG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUg
dGV4dCB0byBhbmFseXplLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKworICAg
IC8qKgorICAgICAqIFJlc2V0IHRoZSBicmVhayBpdGVyYXRvciB0byBvcGVyYXRlIG92ZXIgdGhl
IHRleHQgcmVwcmVzZW50ZWQgYnkKKyAgICAgKiB0aGUgVVRleHQuICBUaGUgaXRlcmF0b3IgcG9z
aXRpb24gaXMgcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlv
biBtYWtlcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIHN1cHBsaWVkIFVUZXh0LiAgVGhpcyBtZWFu
cworICAgICAqIHRoYXQgdGhlIGNhbGxlciBpcyBmcmVlIHRvIGltbWVkaWF0ZWx5IGNsb3NlIG9y
IG90aGVyd2lzZSByZXVzZSB0aGUKKyAgICAgKiBVdGV4dCB0aGF0IHdhcyBwYXNzZWQgYXMgYSBw
YXJhbWV0ZXIsIGJ1dCB0aGF0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxmCisgICAgICogbXVz
dCBub3QgYmUgYWx0ZXJlZCB3aGlsZSBiZWluZyByZWZlcmVuY2VkIGJ5IHRoZSBicmVhayBpdGVy
YXRvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZXh0ICAgIFRoZSBVVGV4dCB1c2VkIHRvIGNo
YW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzICBSZWNlaXZlcyBhbnkgZXJyb3Ig
Y29kZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICovCisgICAgdmlydHVhbCB2b2lk
ICBzZXRUZXh0KFVUZXh0ICp0ZXh0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisg
ICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmlu
ZyBvZiB0aGUgdGV4dCwgcG9zaXRpb24gemVyby4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZzZXQg
b2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgemVyby4KKyAgICAgKiAgQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGZpcnN0KHZvaWQpOworCisgICAgLyoq
CisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGVuZCBv
ZiB0aGUgdGV4dC4KKyAgICAgKiBAcmV0dXJuIFRoZSB0ZXh0J3MgcGFzdC10aGUtZW5kIG9mZnNl
dC4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90
IGxhc3Qodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgZWl0
aGVyIGZvcndhcmQgb3IgYmFja3dhcmQgdGhlIHNwZWNpZmllZCBudW1iZXIgb2Ygc3RlcHMuCisg
ICAgICogTmVnYXRpdmUgdmFsdWVzIG1vdmUgYmFja3dhcmQsIGFuZCBwb3NpdGl2ZSB2YWx1ZXMg
bW92ZSBmb3J3YXJkLiAgVGhpcyBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gcmVwZWF0ZWRseSBj
YWxsaW5nIG5leHQoKSBvciBwcmV2aW91cygpLgorICAgICAqIEBwYXJhbSBuIFRoZSBudW1iZXIg
b2Ygc3RlcHMgdG8gbW92ZS4gIFRoZSBzaWduIGluZGljYXRlcyB0aGUgZGlyZWN0aW9uCisgICAg
ICogKG5lZ2F0aXZlIGlzIGJhY2t3YXJkcywgYW5kIHBvc2l0aXZlIGlzIGZvcndhcmRzKS4KKyAg
ICAgKiBAcmV0dXJuIFRoZSBjaGFyYWN0ZXIgb2Zmc2V0IG9mIHRoZSBib3VuZGFyeSBwb3NpdGlv
biBuIGJvdW5kYXJpZXMgYXdheSBmcm9tCisgICAgICogdGhlIGN1cnJlbnQgb25lLgorICAgICAq
ICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dChpbnQz
Ml90IG4pOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBu
ZXh0IGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRo
ZSBmaXJzdCBib3VuZGFyeSBhZnRlciB0aGlzIG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQodm9pZCk7CisKKyAgICAvKioKKyAg
ICAgKiBNb3ZlcyB0aGUgaXRlcmF0b3IgYmFja3dhcmRzLCB0byB0aGUgbGFzdCBib3VuZGFyeSBw
cmVjZWRpbmcgdGhpcyBvbmUuCisgICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGxh
c3QgYm91bmRhcnkgcG9zaXRpb24gcHJlY2VkaW5nIHRoaXMgb25lLgorICAgICAqICBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgcHJldmlvdXModm9pZCk7CisK
KyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3Qg
Ym91bmRhcnkgcG9zaXRpb24gZm9sbG93aW5nCisgICAgICogdGhlIHNwZWNpZmllZCBwb3NpdGlv
bi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiBmcm9tIHdoaWNoIHRvIGJlZ2lu
IHNlYXJjaGluZyBmb3IgYSBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3Np
dGlvbiBvZiB0aGUgZmlyc3QgYnJlYWsgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24uCisgICAg
ICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmb2xsb3dp
bmcoaW50MzJfdCBvZmZzZXQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3Ig
dG8gcmVmZXIgdG8gdGhlIGxhc3QgYm91bmRhcnkgcG9zaXRpb24gYmVmb3JlIHRoZQorICAgICAq
IHNwZWNpZmllZCBwb3NpdGlvbi4KKyAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBwb3NpdGlvbiB0
byBiZWdpbiBzZWFyY2hpbmcgZm9yIGEgYnJlYWsgZnJvbS4KKyAgICAgKiBAcmV0dXJuIFRoZSBw
b3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBiZWZvcmUgdGhlIHN0YXJ0aW5nIHBvc2l0aW9u
LgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3Qg
cHJlY2VkaW5nKGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1
ZSBpZiB0aGUgc3BlY2ZpZWQgcG9zaXRpb24gaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4gIEFzIGEg
c2lkZQorICAgICAqIGVmZmVjdCwgbGVhdmVzIHRoZSBpdGVyYXRvciBwb2ludGluZyB0byB0aGUg
Zmlyc3QgYm91bmRhcnkgcG9zaXRpb24gYXQKKyAgICAgKiBvciBhZnRlciAib2Zmc2V0Ii4KKyAg
ICAgKiBAcGFyYW0gb2Zmc2V0IHRoZSBvZmZzZXQgdG8gY2hlY2suCisgICAgICogQHJldHVybiBU
cnVlIGlmICJvZmZzZXQiIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNCb3VuZGFyeShpbnQzMl90IG9m
ZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBw
b3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbi4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgY3Vy
cmVudCh2b2lkKSBjb25zdDsKKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzdGF0dXMg
dGFnIGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5
CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uICBGb3IgYnJlYWsgcnVsZXMgdGhhdCBk
byBub3Qgc3BlY2lmeSBhCisgICAgICogc3RhdHVzLCBhIGRlZmF1bHQgdmFsdWUgb2YgMCBpcyBy
ZXR1cm5lZC4gIElmIG1vcmUgdGhhbiBvbmUgYnJlYWsgcnVsZQorICAgICAqIHdvdWxkIGNhdXNl
IGEgYm91bmRhcnkgdG8gYmUgbG9jYXRlZCBhdCBzb21lIHBvc2l0aW9uIGluIHRoZSB0ZXh0LAor
ICAgICAqIHRoZSBudW1lcmljYWxseSBsYXJnZXN0IG9mIHRoZSBhcHBsaWNhYmxlIHN0YXR1cyB2
YWx1ZXMgaXMgcmV0dXJuZWQuCisgICAgICogPHA+CisgICAgICogT2YgdGhlIHN0YW5kYXJkIHR5
cGVzIG9mIElDVSBicmVhayBpdGVyYXRvcnMsIG9ubHkgd29yZCBicmVhayBhbmQKKyAgICAgKiBs
aW5lIGJyZWFrIHByb3ZpZGUgc3RhdHVzIHZhbHVlcy4gIFRoZSB2YWx1ZXMgYXJlIGRlZmluZWQg
aW4KKyAgICAgKiB0aGUgaGVhZGVyIGZpbGUgdWJyay5oLiAgRm9yIFdvcmQgYnJlYWtzLCB0aGUg
c3RhdHVzIGFsbG93cyBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuIHdvcmRzCisgICAgICogdGhhdCBj
b250YWluIGFscGhhYmV0aWMgbGV0dGVycywgIndvcmRzIiB0aGF0IGFwcGVhciB0byBiZSBudW1i
ZXJzLAorICAgICAqIHB1bmN0dWF0aW9uIGFuZCBzcGFjZXMsIHdvcmRzIGNvbnRhaW5pbmcgaWRl
b2dyYXBoaWMgY2hhcmFjdGVycywgYW5kCisgICAgICogbW9yZS4gIEZvciBMaW5lIEJyZWFrLCB0
aGUgc3RhdHVzIGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiBoYXJkIChtYW5kYXRvcnkpIGJyZWFrcwor
ICAgICAqIGFuZCBzb2Z0IChwb3RlbnRpYWwpIGJyZWFrIHBvc2l0aW9ucy4KKyAgICAgKiA8cD4K
KyAgICAgKiA8Y29kZT5nZXRSdWxlU3RhdHVzKCk8L2NvZGU+IGNhbiBiZSBjYWxsZWQgYWZ0ZXIg
b2J0YWluaW5nIGEgYm91bmRhcnkKKyAgICAgKiBwb3NpdGlvbiBmcm9tIDxjb2RlPm5leHQoKTwv
Y29kZT4sIDxjb2RlPnByZXZpb3VzKCk8L2NvZGU+LCBvcgorICAgICAqIGFueSBvdGhlciBicmVh
ayBpdGVyYXRvciBmdW5jdGlvbnMgdGhhdCByZXR1cm5zIGEgYm91bmRhcnkgcG9zaXRpb24uCisg
ICAgICogPHA+CisgICAgICogV2hlbiBjcmVhdGluZyBjdXN0b20gYnJlYWsgcnVsZXMsIG9uZSBp
cyBmcmVlIHRvIGRlZmluZSB3aGF0ZXZlcgorICAgICAqIHN0YXR1cyB2YWx1ZXMgbWF5IGJlIGNv
bnZlbmllbnQgZm9yIHRoZSBhcHBsaWNhdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBOb3RlOiB0
aGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQgc2FmZS4gIEl0IHNob3VsZCBub3QgaGF2ZSBiZWVu
CisgICAgICogICAgICAgZGVjbGFyZWQgY29uc3QsIGFuZCB0aGUgY29uc3QgcmVtYWlucyBvbmx5
IGZvciBjb21wYXRpYmlsaXR5CisgICAgICogICAgICAgcmVhc29ucy4gIChUaGUgZnVuY3Rpb24g
aXMgbG9naWNhbGx5IGNvbnN0LCBidXQgbm90IGJpdC13aXNlIGNvbnN0KS4KKyAgICAgKiA8cD4K
KyAgICAgKiBAcmV0dXJuIHRoZSBzdGF0dXMgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0IGRldGVy
bWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4K
KyAgICAgKgorICAgICAqIEBzZWUgVVdvcmRCcmVhaworICAgICAqIEBzdGFibGUgSUNVIDIuMgor
ICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3RhdHVzKCkgY29uc3Q7CisKKyAg
IC8qKgorICAgICogR2V0IHRoZSBzdGF0dXMgKHRhZykgdmFsdWVzIGZyb20gdGhlIGJyZWFrIHJ1
bGUocykgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0CisgICAgKiByZWNlbnRseSByZXR1cm5lZCBi
cmVhayBwb3NpdGlvbi4KKyAgICAqIDxwPgorICAgICogVGhlIHJldHVybmVkIHN0YXR1cyB2YWx1
ZShzKSBhcmUgc3RvcmVkIGludG8gYW4gYXJyYXkgcHJvdmlkZWQgYnkgdGhlIGNhbGxlci4KKyAg
ICAqIFRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiBzb3J0ZWQgKGFzY2VuZGluZykgb3JkZXIuCisg
ICAgKiBJZiB0aGUgY2FwYWNpdHkgb2YgdGhlIG91dHB1dCBhcnJheSBpcyBpbnN1ZmZpY2llbnQg
dG8gaG9sZCB0aGUgZGF0YSwKKyAgICAqICB0aGUgb3V0cHV0IHdpbGwgYmUgdHJ1bmNhdGVkIHRv
IHRoZSBhdmFpbGFibGUgbGVuZ3RoLCBhbmQgYQorICAgICogIFVfQlVGRkVSX09WRVJGTE9XX0VS
Uk9SIHdpbGwgYmUgc2lnbmFsZWQuCisgICAgKgorICAgICogQHBhcmFtIGZpbGxJblZlYyBhbiBh
cnJheSB0byBiZSBmaWxsZWQgaW4gd2l0aCB0aGUgc3RhdHVzIHZhbHVlcy4KKyAgICAqIEBwYXJh
bSBjYXBhY2l0eSAgdGhlIGxlbmd0aCBvZiB0aGUgc3VwcGxpZWQgdmVjdG9yLiAgQSBsZW5ndGgg
b2YgemVybyBjYXVzZXMKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIGZ1bmN0aW9uIHRvIHJl
dHVybiB0aGUgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMsIGluIHRoZQorICAgICogICAgICAgICAg
ICAgICAgICBub3JtYWwgd2F5LCB3aXRob3V0IGF0dGVtdHBpbmcgdG8gc3RvcmUgYW55IHZhbHVl
cy4KKyAgICAqIEBwYXJhbSBzdGF0dXMgICAgcmVjZWl2ZXMgZXJyb3IgY29kZXMuCisgICAgKiBA
cmV0dXJuICAgICAgICAgIFRoZSBudW1iZXIgb2YgcnVsZSBzdGF0dXMgdmFsdWVzIGZyb20gcnVs
ZXMgdGhhdCBkZXRlcm1pbmVkCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJlY2Vu
dCBib3VuZGFyeSByZXR1cm5lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgKiAgICAgICAg
ICAgICAgICAgIEluIHRoZSBldmVudCBvZiBhIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SLCB0aGUg
cmV0dXJuIHZhbHVlCisgICAgKiAgICAgICAgICAgICAgICAgIGlzIHRoZSB0b3RhbCBudW1iZXIg
b2Ygc3RhdHVzIHZhbHVlcyB0aGF0IHdlcmUgYXZhaWxhYmxlLAorICAgICogICAgICAgICAgICAg
ICAgICBub3QgdGhlIHJlZHVjZWQgbnVtYmVyIHRoYXQgd2VyZSBhY3R1YWxseSByZXR1cm5lZC4K
KyAgICAqIEBzZWUgZ2V0UnVsZVN0YXR1cworICAgICogQHN0YWJsZSBJQ1UgMy4wCisgICAgKi8K
KyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1c1ZlYyhpbnQzMl90ICpmaWxsSW5WZWMs
IGludDMyX3QgY2FwYWNpdHksIFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm5zIGEgdW5pcXVlIGNsYXNzIElEIFBPTFlNT1JQSElDQUxMWS4gIFB1cmUgdmlydHVh
bCBvdmVycmlkZS4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB0byBpbXBsZW1lbnQgYSBzaW1wbGUg
dmVyc2lvbiBvZiBSVFRJLCBzaW5jZSBub3QgYWxsCisgICAgICogQysrIGNvbXBpbGVycyBzdXBw
b3J0IGdlbnVpbmUgUlRUSS4gIFBvbHltb3JwaGljIG9wZXJhdG9yPT0oKSBhbmQKKyAgICAgKiBj
bG9uZSgpIG1ldGhvZHMgY2FsbCB0aGlzIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4g
ICAgICAgICAgVGhlIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4gQWxsIG9iamVjdHMgb2YgYQor
ICAgICAqICAgICAgICAgICAgICAgICAgZ2l2ZW4gY2xhc3MgaGF2ZSB0aGUgc2FtZSBjbGFzcyBJ
RC4gIE9iamVjdHMgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgIG90aGVyIGNsYXNzZXMgaGF2
ZSBkaWZmZXJlbnQgY2xhc3MgSURzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkgY29uc3Q7CisKKyAg
ICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcy4gIFRoaXMg
aXMgdXNlZnVsIG9ubHkgZm9yCisgICAgICogY29tcGFyaW5nIHRvIGEgcmV0dXJuIHZhbHVlIGZy
b20gZ2V0RHluYW1pY0NsYXNzSUQoKS4gIEZvciBleGFtcGxlOgorICAgICAqCisgICAgICogICAg
ICBCYXNlKiBwb2x5bW9ycGhpY19wb2ludGVyID0gY3JlYXRlUG9seW1vcnBoaWNPYmplY3QoKTsK
KyAgICAgKiAgICAgIGlmIChwb2x5bW9ycGhpY19wb2ludGVyLT5nZXREeW5hbWljQ2xhc3NJRCgp
ID09CisgICAgICogICAgICAgICAgRGVyaXZlZDo6Z2V0U3RhdGljQ2xhc3NJRCgpKSAuLi4KKyAg
ICAgKgorICAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIGNsYXNzIElEIGZvciBhbGwgb2JqZWN0
cyBvZiB0aGlzIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0
YXRpYyBVQ2xhc3NJRCBVX0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworICAgIC8q
KgorICAgICAqIERlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0eS4gVXNlIGNsb25lKCkgaW5zdGVhZC4K
KyAgICAgKgorICAgICAqIENyZWF0ZSBhIGNsb25lIChjb3B5KSBvZiB0aGlzIGJyZWFrIGl0ZXJh
dG9yIGluIG1lbW9yeSBwcm92aWRlZAorICAgICAqICBieSB0aGUgY2FsbGVyLiAgVGhlIGlkZWEg
aXMgdG8gaW5jcmVhc2UgcGVyZm9ybWFuY2UgYnkgYXZvaWRpbmcKKyAgICAgKiAgYSBzdG9yYWdl
IGFsbG9jYXRpb24uICBVc2Ugb2YgdGhpcyBmdW5jdG9pbiBpcyBOT1QgUkVDT01NRU5ERUQuCisg
ICAgICogIFBlcmZvcm1hbmNlIGdhaW5zIGFyZSBtaW5pbWFsLCBhbmQgY29ycmVjdCBidWZmZXIg
bWFuYWdlbWVudCBpcworICAgICAqICB0cmlja3kuICBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAg
ICAqCisgICAgICogQHBhcmFtIHN0YWNrQnVmZmVyICBUaGUgcG9pbnRlciB0byB0aGUgbWVtb3J5
IGludG8gd2hpY2ggdGhlIGNsb25lZCBvYmplY3QKKyAgICAgKiAgICAgICAgICAgICAgICAgICAg
IHNob3VsZCBiZSBwbGFjZWQuICBJZiBOVUxMLCAgYWxsb2NhdGUgaGVhcCBtZW1vcnkKKyAgICAg
KiAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgY2xvbmVkIG9iamVjdC4KKyAgICAgKiBAcGFy
YW0gQnVmZmVyU2l6ZSAgIFRoZSBzaXplIG9mIHRoZSBidWZmZXIuICBJZiB6ZXJvLCByZXR1cm4g
dGhlIHJlcXVpcmVkCisgICAgICogICAgICAgICAgICAgICAgICAgICBidWZmZXIgc2l6ZSwgYnV0
IGRvIG5vdCBjbG9uZSB0aGUgb2JqZWN0LiAgSWYgdGhlCisgICAgICogICAgICAgICAgICAgICAg
ICAgICBzaXplIHdhcyB0b28gc21hbGwgKGJ1dCBub3QgemVybyksIGFsbG9jYXRlIGhlYXAKKyAg
ICAgKiAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2UgZm9yIHRoZSBjbG9uZWQgb2JqZWN0Lgor
ICAgICAqCisgICAgICogQHBhcmFtIHN0YXR1cyAgICAgICBFcnJvciBzdGF0dXMuICBVX1NBRkVD
TE9ORV9BTExPQ0FURURfV0FSTklORyB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgICAgICAg
ICByZXR1cm5lZCBpZiB0aGUgdGhlIHByb3ZpZGVkIGJ1ZmZlciB3YXMgdG9vIHNtYWxsLCBhbmQK
KyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHRoZSBjbG9uZSB3YXMgdGhlcmVmb3JlIHB1dCBv
biB0aGUgaGVhcC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIFBvaW50ZXIgdG8gdGhlIGNsb25l
IG9iamVjdC4gIFRoaXMgbWF5IGRpZmZlciBmcm9tIHRoZSBzdGFja0J1ZmZlcgorICAgICAqICAg
ICAgICAgIGFkZHJlc3MgaWYgdGhlIGJ5dGUgYWxpZ25tZW50IG9mIHRoZSBzdGFjayBidWZmZXIg
d2FzIG5vdCBzdWl0YWJsZQorICAgICAqICAgICAgICAgIG9yIGlmIHRoZSBzdGFja0J1ZmZlciB3
YXMgdG9vIHNtYWxsIHRvIGhvbGQgdGhlIGNsb25lLgorICAgICAqIEBkZXByZWNhdGVkIElDVSA1
Mi4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0
b3IgKiAgY3JlYXRlQnVmZmVyQ2xvbmUodm9pZCAqc3RhY2tCdWZmZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgJkJ1ZmZlclNpemUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUg
JnN0YXR1cyk7CisKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmluYXJ5IGZvcm0gb2Yg
Y29tcGlsZWQgYnJlYWsgcnVsZXMsCisgICAgICogd2hpY2ggY2FuIHRoZW4gYmUgdXNlZCB0byBj
cmVhdGUgYSBuZXcgYnJlYWsgaXRlcmF0b3IgYXQgc29tZQorICAgICAqIHRpbWUgaW4gdGhlIGZ1
dHVyZS4gIENyZWF0aW5nIGEgYnJlYWsgaXRlcmF0b3IgZnJvbSBwcmUtY29tcGlsZWQgcnVsZXMK
KyAgICAgKiBpcyBtdWNoIGZhc3RlciB0aGFuIGJ1aWxkaW5nIG9uZSBmcm9tIHRoZSBzb3VyY2Ug
Zm9ybSBvZiB0aGUKKyAgICAgKiBicmVhayBydWxlcy4KKyAgICAgKgorICAgICAqIFRoZSBiaW5h
cnkgZGF0YSBjYW4gb25seSBiZSB1c2VkIHdpdGggdGhlIHNhbWUgdmVyc2lvbiBvZiBJQ1UKKyAg
ICAgKiAgYW5kIG9uIHRoZSBzYW1lIHBsYXRmb3JtIHR5cGUgKHByb2Nlc3NvciBlbmRpYW4tbmVz
cykKKyAgICAgKgorICAgICAqIEBwYXJhbSBsZW5ndGggUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRo
ZSBiaW5hcnkgZGF0YS4gIChPdXQgcGFyYW10ZXIuKQorICAgICAqCisgICAgICogQHJldHVybiAg
IEEgcG9pbnRlciB0byB0aGUgYmluYXJ5IChjb21waWxlZCkgcnVsZSBkYXRhLiAgVGhlIHN0b3Jh
Z2UKKyAgICAgKiAgICAgICAgICAgYmVsb25ncyB0byB0aGUgUnVsZXNCYXNlZEJyZWFrSXRlcmF0
b3Igb2JqZWN0LCBub3QgdGhlCisgICAgICogICAgICAgICAgIGNhbGxlciwgYW5kIG11c3Qgbm90
IGJlIG1vZGlmaWVkIG9yIGRlbGV0ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgNC44CisgICAgICov
CisgICAgdmlydHVhbCBjb25zdCB1aW50OF90ICpnZXRCaW5hcnlSdWxlcyh1aW50MzJfdCAmbGVu
Z3RoKTsKKworICAgIC8qKgorICAgICAqICBTZXQgdGhlIHN1YmplY3QgdGV4dCBzdHJpbmcgdXBv
biB3aGljaCB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nCisgICAgICogIHdpdGhvdXQg
Y2hhbmdpbmcgYW55IG90aGVyIGFzcGVjdCBvZiB0aGUgbWF0Y2hpbmcgc3RhdGUuCisgICAgICog
IFRoZSBuZXcgYW5kIHByZXZpb3VzIHRleHQgc3RyaW5ncyBtdXN0IGhhdmUgdGhlIHNhbWUgY29u
dGVudC4KKyAgICAgKgorICAgICAqICBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2Ug
aW4gZW52aXJvbm1lbnRzIHdoZXJlIElDVSBpcyBvcGVyYXRpbmcgb24KKyAgICAgKiAgc3RyaW5n
cyB0aGF0IG1heSBtb3ZlIGFyb3VuZCBpbiBtZW1vcnkuICBJdCBwcm92aWRlcyBhIG1lY2hhbmlz
bSBmb3Igbm90aWZ5aW5nCisgICAgICogIElDVSB0aGF0IHRoZSBzdHJpbmcgaGFzIGJlZW4gcmVs
b2NhdGVkLCBhbmQgcHJvdmlkaW5nIGEgbmV3IFVUZXh0IHRvIGFjY2VzcyB0aGUKKyAgICAgKiAg
c3RyaW5nIGluIGl0cyBuZXcgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiAgTm90ZSB0aGF0IHRo
ZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbiBuZXZlciBjb3BpZXMgdGhlIHVuZGVybHlp
bmcgdGV4dAorICAgICAqICBvZiBhIHN0cmluZyBiZWluZyBwcm9jZXNzZWQsIGJ1dCBhbHdheXMg
b3BlcmF0ZXMgZGlyZWN0bHkgb24gdGhlIG9yaWdpbmFsIHRleHQKKyAgICAgKiAgcHJvdmlkZWQg
YnkgdGhlIHVzZXIuIFJlZnJlc2hpbmcgc2ltcGx5IGRyb3BzIHRoZSByZWZlcmVuY2VzIHRvIHRo
ZSBvbGQgdGV4dAorICAgICAqICBhbmQgcmVwbGFjZXMgdGhlbSB3aXRoIHJlZmVyZW5jZXMgdG8g
dGhlIG5ldy4KKyAgICAgKgorICAgICAqICBDYXV0aW9uOiAgdGhpcyBmdW5jdGlvbiBpcyBub3Jt
YWxseSB1c2VkIG9ubHkgYnkgdmVyeSBzcGVjaWFsaXplZCwKKyAgICAgKiAgc3lzdGVtLWxldmVs
IGNvZGUuICBPbmUgZXhhbXBsZSB1c2UgY2FzZSBpcyB3aXRoIGdhcmJhZ2UgY29sbGVjdGlvbiB0
aGF0IG1vdmVzCisgICAgICogIHRoZSB0ZXh0IGluIG1lbW9yeS4KKyAgICAgKgorICAgICAqIEBw
YXJhbSBpbnB1dCAgICAgIFRoZSBuZXcgKG1vdmVkKSB0ZXh0IHN0cmluZy4KKyAgICAgKiBAcGFy
YW0gc3RhdHVzICAgICBSZWNlaXZlcyBlcnJvcnMgZGV0ZWN0ZWQgYnkgdGhpcyBmdW5jdGlvbi4K
KyAgICAgKiBAcmV0dXJuICAgICAgICAgICAqdGhpcworICAgICAqCisgICAgICogQHN0YWJsZSBJ
Q1UgNDkKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgJnJlZnJl
c2hJbnB1dFRleHQoVVRleHQgKmlucHV0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisKK3Byb3Rl
Y3RlZDoKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gaW1wbGVtZW50YXRpb24KKyAgICAv
Lz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisgICAgLyoqCisgICAgICogRHVtcHMgY2FjaGVzIGFuZCBwZXJmb3Jt
cyBvdGhlciBhY3Rpb25zIGFzc29jaWF0ZWQgd2l0aCBhIGNvbXBsZXRlIGNoYW5nZQorICAgICAq
IGluIHRleHQgb3IgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBpbnRlcm5hbAorICAgICAq
LworICAgIHZpcnR1YWwgdm9pZCByZXNldCh2b2lkKTsKKworI2lmIDAKKyAgICAvKioKKyAgICAg
ICogUmV0dXJuIHRydWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBmb3IgdGhpcyBjaGFyCisgICAg
ICAqIGluZGljYXRlcyB0aGF0IGl0IGlzIGluIHRoZSBzZXQgb2YgZGljdGlvbmFyeSBsb29rdXAg
Y2hhcnMuCisgICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBkaWN0
aW9uYXJ5IGJhc2VkIGJyZWFrIGl0ZXJhdG9ycy4KKyAgICAgICogQHJldHVybiB0cnVlIGlmIHRo
ZSBjYXRlZ29yeSBsb29rdXAgZm9yIHRoaXMgY2hhcgorICAgICAgKiBpbmRpY2F0ZXMgdGhhdCBp
dCBpcyBpbiB0aGUgc2V0IG9mIGRpY3Rpb25hcnkgbG9va3VwIGNoYXJzLgorICAgICAgKiBAaW50
ZXJuYWwKKyAgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBpc0RpY3Rpb25hcnlDaGFyKFVDaGFy
MzIpOworCisgICAgLyoqCisgICAgICAqIEdldCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0
b3IuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0
QnJlYWtUeXBlKCkgY29uc3Q7CisjZW5kaWYKKworICAgIC8qKgorICAgICAgKiBTZXQgdGhlIHR5
cGUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisg
ICAgdmlydHVhbCB2b2lkIHNldEJyZWFrVHlwZShpbnQzMl90IHR5cGUpOworCisjaWZuZGVmIFVf
SElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgICogQ29tbW9uIGluaXRpYWxpemF0aW9u
IGZ1bmN0aW9uLCB1c2VkIGJ5IGNvbnN0cnVjdG9ycyBhbmQgYnVmZmVyQ2xvbmUuCisgICAgICAq
IEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2b2lkIGluaXQoKTsKKyNlbmRpZiAgLyogVV9ISURF
X0lOVEVSTkFMX0FQSSAqLworCitwcml2YXRlOgorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRo
b2QgYmFja3MgdGhlIGl0ZXJhdG9yIGJhY2sgdXAgdG8gYSAic2FmZSBwb3NpdGlvbiIgaW4gdGhl
IHRleHQuCisgICAgICogVGhpcyBpcyBhIHBvc2l0aW9uIHRoYXQgd2Uga25vdywgd2l0aG91dCBh
bnkgY29udGV4dCwgbXVzdCBiZSBhIGJyZWFrIHBvc2l0aW9uLgorICAgICAqIFRoZSB2YXJpb3Vz
IGNhbGxpbmcgbWV0aG9kcyB0aGVuIGl0ZXJhdGUgZm9yd2FyZCBmcm9tIHRoaXMgc2FmZSBwb3Np
dGlvbiB0bworICAgICAqIHRoZSBhcHByb3ByaWF0ZSBwb3NpdGlvbiB0byByZXR1cm4uICAoRm9y
IG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZGVzY3JpcHRpb24KKyAgICAgKiBvZiBidWlsZEJh
Y2t3YXJkc1N0YXRlVGFibGUoKSBpbiBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yLkJ1aWxkZXIuKQor
ICAgICAqIEBwYXJhbSBzdGF0ZXRhYmxlIHN0YXRlIHRhYmxlIHVzZWQgb2YgbW92aW5nIGJhY2t3
YXJkcworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgaGFuZGxlUHJldmlv
dXMoY29uc3QgUkJCSVN0YXRlVGFibGUgKnN0YXRldGFibGUpOworCisgICAgLyoqCisgICAgICog
VGhpcyBtZXRob2QgaXMgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV4dCgpIG1l
dGhvZC4gIEFsbCBpdGVyYXRpb24KKyAgICAgKiB2ZWN0b3JzIHRocm91Z2ggaGVyZS4gIFRoaXMg
bWV0aG9kIGluaXRpYWxpemVzIHRoZSBzdGF0ZSBtYWNoaW5lIHRvIHN0YXRlIDEKKyAgICAgKiBh
bmQgYWR2YW5jZXMgdGhyb3VnaCB0aGUgdGV4dCBjaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIHVudGls
IHdlIHJlYWNoIHRoZSBlbmQKKyAgICAgKiBvZiB0aGUgdGV4dCBvciB0aGUgc3RhdGUgbWFjaGlu
ZSB0cmFuc2l0aW9ucyB0byBzdGF0ZSAwLiAgV2UgdXBkYXRlIG91ciByZXR1cm4KKyAgICAgKiB2
YWx1ZSBldmVyeSB0aW1lIHRoZSBzdGF0ZSBtYWNoaW5lIHBhc3NlcyB0aHJvdWdoIGEgcG9zc2li
bGUgZW5kIHN0YXRlLgorICAgICAqIEBwYXJhbSBzdGF0ZXRhYmxlIHN0YXRlIHRhYmxlIHVzZWQg
b2YgbW92aW5nIGZvcndhcmRzCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJf
dCBoYW5kbGVOZXh0KGNvbnN0IFJCQklTdGF0ZVRhYmxlICpzdGF0ZXRhYmxlKTsKKworcHJvdGVj
dGVkOgorCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgKiBUaGlz
IGlzIHRoZSBmdW5jdGlvbiB0aGF0IGFjdHVhbGx5IGltcGxlbWVudHMgZGljdGlvbmFyeS1iYXNl
ZAorICAgICAqIGJyZWFraW5nLiAgQ292ZXJpbmcgYXQgbGVhc3QgdGhlIHJhbmdlIGZyb20gc3Rh
cnRQb3MgdG8gZW5kUG9zLAorICAgICAqIGl0IGNoZWNrcyBmb3IgZGljdGlvbmFyeSBjaGFyYWN0
ZXJzLCBhbmQgaWYgaXQgZmluZHMgdGhlbSBkZXRlcm1pbmVzCisgICAgICogdGhlIGFwcHJvcHJp
YXRlIG9iamVjdCB0byBkZWFsIHdpdGggdGhlbS4gSXQgbWF5IGNhY2hlIGZvdW5kIGJyZWFrcyBp
bgorICAgICAqIGZDYWNoZWRCcmVha1Bvc2l0aW9ucyBhcyBpdCBnb2VzLiBJdCBtYXkgd2VsbCBh
bHNvIGxvb2sgYXQgdGV4dCBvdXRzaWRlCisgICAgICogdGhlIHJhbmdlIHN0YXJ0UG9zIHRvIGVu
ZFBvcy4KKyAgICAgKiBJZiBnb2luZyBmb3J3YXJkLCBlbmRQb3MgaXMgdGhlIG5vcm1hbCBVbmlj
b2RlIGJyZWFrIHJlc3VsdCwgYW5kCisgICAgICogaWYgZ29pbmQgaW4gcmV2ZXJzZSwgc3RhcnRQ
b3MgaXMgdGhlIG5vcm1hbCBVbmljb2RlIGJyZWFrIHJlc3VsdAorICAgICAqIEBwYXJhbSBzdGFy
dFBvcyAgVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIGEgcmFuZ2Ugb2YgdGV4dAorICAgICAqIEBwYXJh
bSBlbmRQb3MgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiBhIHJhbmdlIG9mIHRleHQKKyAgICAgKiBA
cGFyYW0gcmV2ZXJzZSAgIFRoZSBjYWxsIGlzIGZvciB0aGUgcmV2ZXJzZSBkaXJlY3Rpb24KKyAg
ICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGNoZWNrRGljdGlvbmFyeShpbnQz
Ml90IHN0YXJ0UG9zLCBpbnQzMl90IGVuZFBvcywgVUJvb2wgcmV2ZXJzZSk7CisjZW5kaWYgIC8q
IFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworcHJpdmF0ZToKKworICAgIC8qKgorICAgICAqIFRo
aXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgTGFuZ3VhZ2VCcmVha0VuZ2luZSBm
b3IgYQorICAgICAqIGdpdmVuIGNoYXJhY3RlciBjLgorICAgICAqIEBwYXJhbSBjICAgICAgICAg
QSBjaGFyYWN0ZXIgaW4gdGhlIGRpY3Rpb25hcnkgc2V0CisgICAgICogQGludGVybmFsCisgICAg
ICovCisgICAgY29uc3QgTGFuZ3VhZ2VCcmVha0VuZ2luZSAqZ2V0TGFuZ3VhZ2VCcmVha0VuZ2lu
ZShVQ2hhcjMyIGMpOworCisgICAgLyoqCisgICAgICogIEBpbnRlcm5hbAorICAgICAqLworICAg
IHZvaWQgbWFrZVJ1bGVTdGF0dXNWYWxpZCgpOworCit9OworCisvLy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorLy8KKy8vICAgSW5saW5lIEZ1bmN0aW9ucyBEZWZpbml0aW9ucyAuLi4KKy8vCisvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCitpbmxpbmUgVUJvb2wgUnVsZUJhc2VkQnJlYWtJdGVyYXRv
cjo6b3BlcmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25zdCB7CisgICAgcmV0
dXJuICFvcGVyYXRvcj09KHRoYXQpOworfQorCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmIC8q
ICNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gKi8KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3NjaHJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3NjaHJpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBiNWUyMjUwM2NmZjI2MWQyY2QyNDBmZjEyMDA3
ZjkzN2Y3ODNiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2No
cml0ZXIuaApAQCAtMCwwICsxLDE4NyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgor
KiAgIENvcHlyaWdodCAoQykgMTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hp
bmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisq
CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBzY2hyaXRlci5oCisqCisqIE1vZGlm
aWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0
aW9uCisqICAwNS8wNS85OSAgICAgc3RlcGhlbiAgICAgQ2xlYW5lZCB1cC4KKyoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgorKi8KKworI2lmbmRlZiBTQ0hSSVRFUl9ICisjZGVmaW5lIFNDSFJJVEVSX0gK
KworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS9jaGFyaXRl
ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWNocml0ZXIuaCIKKworLyoqCisgKiBcZmlsZSAKKyAq
IFxicmllZiBDKysgQVBJOiBTdHJpbmcgQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8KKyAKK1VfTkFN
RVNQQUNFX0JFR0lOCisvKioKKyAqIEEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ2hhcmFjdGVySXRl
cmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIHRoZQorICogY2hhcmFjdGVycyAoY29kZSB1bml0cyBv
ciBjb2RlIHBvaW50cykgaW4gYSBVbmljb2RlU3RyaW5nLgorICogSXQncyBwb3NzaWJsZSBub3Qg
b25seSB0byBjcmVhdGUgYW4KKyAqIGl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciBhbiBlbnRp
cmUgVW5pY29kZVN0cmluZywgYnV0IGFsc28gdG8KKyAqIGNyZWF0ZSBvbmUgdGhhdCBpdGVyYXRl
cyBvdmVyIG9ubHkgYSBzdWJyYW5nZSBvZiBhIFVuaWNvZGVTdHJpbmcKKyAqIChpdGVyYXRvcnMg
b3ZlciBkaWZmZXJlbnQgc3VicmFuZ2VzIG9mIHRoZSBzYW1lIFVuaWNvZGVTdHJpbmcgZG9uJ3QK
KyAqIGNvbXBhcmUgZXF1YWwpLgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQHNlZSBG
b3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitjbGFzcyBV
X0NPTU1PTl9BUEkgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgVUNoYXJDaGFyYWN0
ZXJJdGVyYXRvciB7CitwdWJsaWM6CisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3Zl
ciB0aGUgVW5pY29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBV
bmljb2RlU3RyaW5nIG9iamVjdCBpcyBjb3BpZWQuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2Ug
aXMgdGhlIHdob2xlIHN0cmluZywgYW5kIHRoZSBzdGFydGluZyBwb3NpdGlvbiBpcyAwLgorICAg
KiBAcGFyYW0gdGV4dFN0ciBUaGUgdW5pY29kZSBzdHJpbmcgdXNlZCB0byBjcmVhdGUgYW4gaXRl
cmF0b3IKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVy
YXRvcihjb25zdCBVbmljb2RlU3RyaW5nJiB0ZXh0U3RyKTsKKworICAvKioKKyAgICogQ3JlYXRl
IGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJyZWQgdG8gYnkgInRleHRT
dHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIHRoZSB3aG9sZSBzdHJpbmcsIGFuZCB0
aGUgc3RhcnRpbmcKKyAgICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJ0ZXh0UG9zIi4gIElm
ICJ0ZXh0UG9zIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVyYXRpb24gcmFuZ2UsIHRo
ZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0
U3RyIFRoZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSBhbiBpdGVyYXRvcgorICAgKiBA
cGFyYW0gdGV4dFBvcyBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0
IFVuaWNvZGVTdHJpbmcmICAgIHRleHRTdHIsCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAg
ICAgICAgIHRleHRQb3MpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0
aGUgVW5pY29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBVbmlj
b2RlU3RyaW5nIG9iamVjdCBpcyBjb3BpZWQuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgYmVn
aW5zIHdpdGggdGhlIGNvZGUgdW5pdCBzcGVjaWZpZWQgYnkKKyAgICogInRleHRCZWdpbiIgYW5k
IGVuZHMgd2l0aCB0aGUgY29kZSB1bml0IEJFRk9SRSB0aGUgY29kZSB1bml0IHNwZWNmaWVkCisg
ICAqIGJ5ICJ0ZXh0RW5kIi4gIFRoZSBzdGFydGluZyBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkg
InRleHRQb3MiLiAgSWYKKyAgICogInRleHRCZWdpbiIgYW5kICJ0ZXh0RW5kIiBkb24ndCBmb3Jt
IGEgdmFsaWQgcmFuZ2Ugb24gInRleHQiIChpLmUuLAorICAgKiB0ZXh0QmVnaW4gPj0gdGV4dEVu
ZCBvciBlaXRoZXIgaXMgbmVnYXRpdmUgb3IgZ3JlYXRlciB0aGFuIHRleHQuc2l6ZSgpKSwKKyAg
ICogb3IgInRleHRQb3MiIGlzIG91dHNpZGUgdGhlIHJhbmdlIGRlZmluZWQgYnkgInRleHRCZWdp
biIgYW5kICJ0ZXh0RW5kIiwKKyAgICogdGhlIGJlaGF2aW9yIG9mIHRoaXMgaXRlcmF0b3IgaXMg
dW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFN0ciAgICBUaGUgdW5pY29kZSBzdHJpbmcgdXNl
ZCB0byBjcmVhdGUgdGhlIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yCisgICAqIEBwYXJhbSB0ZXh0
QmVnaW4gIFRoZSBiZWdpbiBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBw
YXJhbSB0ZXh0RW5kICAgIFRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQor
ICAgKiBAcGFyYW0gdGV4dFBvcyAgICBUaGUgc3RhcnRpbmcgcG9zaXRpb24gb2YgdGhlIGl0ZXJh
dGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJh
dG9yKGNvbnN0IFVuaWNvZGVTdHJpbmcmICAgIHRleHRTdHIsCisgICAgICAgICAgICAgIGludDMy
X3QgICAgICAgICAgICAgIHRleHRCZWdpbiwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAg
ICAgICAgdGV4dEVuZCwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dFBv
cyk7CisKKyAgLyoqCisgICAqIENvcHkgY29uc3RydWN0b3IuICBUaGUgbmV3IGl0ZXJhdG9yIGl0
ZXJhdGVzIG92ZXIgdGhlIHNhbWUgcmFuZ2UKKyAgICogb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0
aGF0IiwgYW5kIGl0cyBpbml0aWFsIHBvc2l0aW9uIGlzIHRoZQorICAgKiBzYW1lIGFzICJ0aGF0
IidzIGN1cnJlbnQgcG9zaXRpb24uCisgICAqIFRoZSBVbmljb2RlU3RyaW5nIG9iamVjdCBpbiAi
dGhhdCIgaXMgY29waWVkLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgU3RyaW5nQ2hhcmFjdGVySXRl
cmF0b3IgdG8gYmUgY29waWVkCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5n
Q2hhcmFjdGVySXRlcmF0b3IoY29uc3QgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImICB0aGF0KTsK
KworICAvKioKKyAgICogRGVzdHJ1Y3Rvci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICB2aXJ0dWFsIH5TdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8qKgorICAgKiBBc3Np
Z25tZW50IG9wZXJhdG9yLiAgKnRoaXMgaXMgYWx0ZXJlZCB0byBpdGVyYXRlIG92ZXIgdGhlIHNh
bWUKKyAgICogcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIHJlZmVycyB0
byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgd2l0aGluIHRoYXQgc3RyaW5nIGFzICJ0aGF0IiBk
b2VzLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgb2JqZWN0IHRvIGJlIGNvcGllZC4KKyAgICogQHJl
dHVybiB0aGUgbmV3bHkgY3JlYXRlZCBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3ImCisgIG9wZXJhdG9yPShjb25zdCBTdHJpbmdD
aGFyYWN0ZXJJdGVyYXRvciYgICAgdGhhdCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgdHJ1ZSBp
ZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICog
c2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAq
IEBwYXJhbSB0aGF0IFRoZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29tcGFyZWQg
Zm9yIGVxdWFsaXR5CisgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUg
b3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2lu
dGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgdmlydHVhbCBVQm9vbCAgICAgICAgICBvcGVyYXRvcj09KGNvbnN0IEZvcndhcmRDaGFyYWN0
ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgYSBuZXcgU3Ry
aW5nQ2hhcmFjdGVySXRlcmF0b3IgcmVmZXJyaW5nIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3Rl
ciBpbiB0aGUgc2FtZSByYW5nZSBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgdGhpcyBvbmUuICBUaGUK
KyAgICogY2FsbGVyIG11c3QgZGVsZXRlIHRoZSBuZXcgaXRlcmF0b3IuCisgICAqIEByZXR1cm4g
dGhlIG5ld2x5IGNsb25lZCBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
dmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3Q7CisKKyAgLyoqCisg
ICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgcHJvdmlkZWQgc3RyaW5n
LgorICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUgc3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVW5pY29kZVN0
cmluZyYgbmV3VGV4dCk7CisKKyAgLyoqCisgICAqIENvcGllcyB0aGUgVW5pY29kZVN0cmluZyB1
bmRlciBpdGVyYXRpb24gaW50byB0aGUgVW5pY29kZVN0cmluZworICAgKiByZWZlcnJlZCB0byBi
eSAicmVzdWx0Ii4gIEV2ZW4gaWYgdGhpcyBpdGVyYXRvciBpdGVyYXRlcyBhY3Jvc3MKKyAgICog
b25seSBhIHBhcnQgb2YgdGhpcyBzdHJpbmcsIHRoZSB3aG9sZSBzdHJpbmcgaXMgY29waWVkLgor
ICAgKiBAcGFyYW0gcmVzdWx0IFJlY2VpdmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVy
YXRpb24uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB2b2lkICAgICAg
ICAgICAgZ2V0VGV4dChVbmljb2RlU3RyaW5nJiByZXN1bHQpOworCisgIC8qKgorICAgKiBSZXR1
cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QgKG5vdCByZWFsbHkgcHVibGljKQorICAgKiBA
cmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgVUNsYXNzSUQgICAgICAgICBnZXREeW5hbWljQ2xhc3NJRCh2b2lk
KSBjb25zdDsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3Mg
KG5vdCByZWFsbHkgcHVibGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xh
c3MKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBzdGF0aWMgVUNsYXNzSUQgICBVX0VY
UE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworcHJvdGVjdGVkOgorICAvKioKKyAgICog
RGVmYXVsdCBjb25zdHJ1Y3RvciwgaXRlcmF0aW9uIG92ZXIgZW1wdHkgc3RyaW5nLgorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAg
LyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3ZlciB0aGUgcHJvdmlkZWQg
c3RyaW5nLgorICAgKiBAcGFyYW0gbmV3VGV4dCBUaGUgc3RyaW5nIHRvIGJlIGl0ZXJhdGVkIG92
ZXIKKyAgICogQHBhcmFtIG5ld1RleHRMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgU3RyaW5nCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdm9pZCBzZXRUZXh0KGNvbnN0IFVDaGFyKiBu
ZXdUZXh0LCBpbnQzMl90IG5ld1RleHRMZW5ndGgpOworCisgIC8qKgorICAgKiBDb3B5IG9mIHRo
ZSBpdGVyYXRlZCBzdHJpbmcgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IFVuaWNvZGVTdHJpbmcgICAgICAgICAgICB0ZXh0OworCit9OworCitVX05BTUVTUEFDRV9FTkQK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1hcC5oIGIv
U291cmNlL1dURi9pY3UvdW5pY29kZS91Y2FzZW1hcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzN2UxNjU4ODY5
N2YxYTkzMDE5MWVlM2RmODE2YzYzYjdiZDM4YzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL2ljdS91bmljb2RlL3VjYXNlbWFwLmgKQEAgLTAsMCArMSw0MjMgQEAKKy8qCisqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTIsIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBmaWxlIG5h
bWU6ICB1Y2FzZW1hcC5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6ZTog
ICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjogMjAw
NW1heTA2CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyoKKyogICBDYXNlIG1h
cHBpbmcgc2VydmljZSBvYmplY3QgYW5kIGZ1bmN0aW9ucyB1c2luZyBpdC4KKyovCisKKyNpZm5k
ZWYgX19VQ0FTRU1BUF9IX18KKyNkZWZpbmUgX19VQ0FTRU1BUF9IX18KKworI2luY2x1ZGUgInVu
aWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS91c3RyaW5nLmgiCisjaW5jbHVkZSAi
dW5pY29kZS9sb2NhbHBvaW50ZXIuaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMgQVBJ
OiBVbmljb2RlIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMgdXNpbmcgYSBVQ2FzZU1hcCBzZXJ2aWNl
IG9iamVjdC4KKyAqCisgKiBUaGUgc2VydmljZSBvYmplY3QgdGFrZXMgY2FyZSBvZiBtZW1vcnkg
YWxsb2NhdGlvbnMsIGRhdGEgbG9hZGluZywgYW5kIHNldHVwCisgKiBmb3IgdGhlIGF0dHJpYnV0
ZXMsIGFzIHVzdWFsLgorICoKKyAqIEN1cnJlbnRseSwgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlk
ZWQgaGVyZSBkb2VzIG5vdCBvdmVybGFwIHdpdGggdWNoYXIuaAorICogYW5kIHVzdHJpbmcuaCwg
ZXhjZXB0IGZvciB1Y2FzZW1hcF90b1RpdGxlKCkuCisgKgorICogdWNhc2VtYXBfdXRmOFhZWigp
IGZ1bmN0aW9ucyBvcGVyYXRlIGRpcmVjdGx5IG9uIFVURi04IHN0cmluZ3MuCisgKi8KKworLyoq
CisgKiBVQ2FzZU1hcCBpcyBhbiBvcGFxdWUgc2VydmljZSBvYmplY3QgZm9yIG5ld2VyIElDVSBj
YXNlIG1hcHBpbmcgZnVuY3Rpb25zLgorICogT2xkZXIgZnVuY3Rpb25zIGRpZCBub3QgdXNlIGEg
c2VydmljZSBvYmplY3QuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworc3RydWN0IFVDYXNlTWFw
OwordHlwZWRlZiBzdHJ1Y3QgVUNhc2VNYXAgVUNhc2VNYXA7IC8qKjwgQyB0eXBlZGVmIGZvciBz
dHJ1Y3QgVUNhc2VNYXAuIEBzdGFibGUgSUNVIDMuNCAqLworCisvKioKKyAqIE9wZW4gYSBVQ2Fz
ZU1hcCBzZXJ2aWNlIG9iamVjdCBmb3IgYSBsb2NhbGUgYW5kIGEgc2V0IG9mIG9wdGlvbnMuCisg
KiBUaGUgbG9jYWxlIElEIGFuZCBvcHRpb25zIGFyZSBwcmVwcm9jZXNzZWQgc28gdGhhdCBmdW5j
dGlvbnMgdXNpbmcgdGhlCisgKiBzZXJ2aWNlIG9iamVjdCBuZWVkIG5vdCBwcm9jZXNzIHRoZW0g
aW4gZWFjaCBjYWxsLgorICoKKyAqIEBwYXJhbSBsb2NhbGUgSUNVIGxvY2FsZSBJRCwgdXNlZCBm
b3IgbGFuZ3VhZ2UtZGVwZW5kZW50CisgKiAgICAgICAgICAgICAgIHVwcGVyLS9sb3dlci0vdGl0
bGUtY2FzaW5nIGFjY29yZGluZyB0byB0aGUgVW5pY29kZSBzdGFuZGFyZC4KKyAqICAgICAgICAg
ICAgICAgVXN1YWwgc2VtYW50aWNzOiAiIj1yb290LCBOVUxMPWRlZmF1bHQgbG9jYWxlLCBldGMu
CisgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGJpdCBzZXQsIHVzZWQgZm9yIGNhc2UgZm9sZGlu
ZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICogICAgICAgICAgICAgICAgU2FtZSBmbGFncyBh
cyBmb3IgdV9mb2xkQ2FzZSgpLCB1X3N0ckZvbGRDYXNlKCksCisgKiAgICAgICAgICAgICAgICB1
X3N0ckNhc2VDb21wYXJlKCksIGV0Yy4KKyAqICAgICAgICAgICAgICAgIFVzZSAwIG9yIFVfRk9M
RF9DQVNFX0RFRkFVTFQgZm9yIGRlZmF1bHQgYmVoYXZpb3IuCisgKiBAcGFyYW0gcEVycm9yQ29k
ZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAg
ICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0
aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gUG9pbnRlciB0byBhIFVDYXNlTWFwIHNlcnZp
Y2Ugb2JqZWN0LCBpZiBzdWNjZXNzZnVsLgorICoKKyAqIEBzZWUgVV9GT0xEX0NBU0VfREVGQVVM
VAorICogQHNlZSBVX0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICogQHNlZSBVX1RJVExF
Q0FTRV9OT19MT1dFUkNBU0UKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVO
VAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIFVDYXNlTWFwICogVV9FWFBPUlQy
Cit1Y2FzZW1hcF9vcGVuKGNvbnN0IGNoYXIgKmxvY2FsZSwgdWludDMyX3Qgb3B0aW9ucywgVUVy
cm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogQ2xvc2UgYSBVQ2FzZU1hcCBzZXJ2aWNl
IG9iamVjdC4KKyAqIEBwYXJhbSBjc20gT2JqZWN0IHRvIGJlIGNsb3NlZC4KKyAqIEBzdGFibGUg
SUNVIDMuNAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfY2xvc2UoVUNh
c2VNYXAgKmNzbSk7CisKKyNpZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9C
RUdJTgorCisvKioKKyAqIFxjbGFzcyBMb2NhbFVDYXNlTWFwUG9pbnRlcgorICogIlNtYXJ0IHBv
aW50ZXIiIGNsYXNzLCBjbG9zZXMgYSBVQ2FzZU1hcCB2aWEgdWNhc2VtYXBfY2xvc2UoKS4KKyAq
IEZvciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisg
KgorICogQHNlZSBMb2NhbFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0
YWJsZSBJQ1UgNC40CisgKi8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVDYXNl
TWFwUG9pbnRlciwgVUNhc2VNYXAsIHVjYXNlbWFwX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5E
CisKKyNlbmRpZgorCisvKioKKyAqIEdldCB0aGUgbG9jYWxlIElEIHRoYXQgaXMgdXNlZCBmb3Ig
bGFuZ3VhZ2UtZGVwZW5kZW50IGNhc2UgbWFwcGluZ3MuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVybiBsb2NhbGUgSUQKKyAqIEBzdGFibGUgSUNVIDMu
NAorICovCitVX1NUQUJMRSBjb25zdCBjaGFyICogVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRMb2Nh
bGUoY29uc3QgVUNhc2VNYXAgKmNzbSk7CisKKy8qKgorICogR2V0IHRoZSBvcHRpb25zIGJpdCBz
ZXQgdGhhdCBpcyB1c2VkIGZvciBjYXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29ucy4K
KyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIG9wdGlv
bnMgYml0IHNldAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHVpbnQzMl90IFVf
RVhQT1JUMgordWNhc2VtYXBfZ2V0T3B0aW9ucyhjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoq
CisgKiBTZXQgdGhlIGxvY2FsZSBJRCB0aGF0IGlzIHVzZWQgZm9yIGxhbmd1YWdlLWRlcGVuZGVu
dCBjYXNlIG1hcHBpbmdzLgorICoKKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmpl
Y3QuCisgKiBAcGFyYW0gbG9jYWxlIExvY2FsZSBJRCwgc2VlIHVjYXNlbWFwX29wZW4oKS4KKyAq
IEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNv
ZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBh
IGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAqIEBzZWUgdWNhc2VtYXBf
b3BlbgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1
Y2FzZW1hcF9zZXRMb2NhbGUoVUNhc2VNYXAgKmNzbSwgY29uc3QgY2hhciAqbG9jYWxlLCBVRXJy
b3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBTZXQgdGhlIG9wdGlvbnMgYml0IHNldCB0
aGF0IGlzIHVzZWQgZm9yIGNhc2UgZm9sZGluZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICoK
KyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gb3B0aW9u
cyBPcHRpb25zIGJpdCBzZXQsIHNlZSB1Y2FzZW1hcF9vcGVuKCkuCisgKiBAcGFyYW0gcEVycm9y
Q29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICog
ICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9y
ZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX29wZW4KKyAqIEBzdGFi
bGUgSUNVIDMuNAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBfc2V0T3B0
aW9ucyhVQ2FzZU1hcCAqY3NtLCB1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKTsKKworLyoqCisgKiBEbyBub3QgbG93ZXJjYXNlIG5vbi1pbml0aWFsIHBhcnRzIG9mIHdv
cmRzIHdoZW4gdGl0bGVjYXNpbmcuCisgKiBPcHRpb24gYml0IGZvciB0aXRsZWNhc2luZyBBUElz
IHRoYXQgdGFrZSBhbiBvcHRpb25zIGJpdCBzZXQuCisgKgorICogQnkgZGVmYXVsdCwgdGl0bGVj
YXNpbmcgd2lsbCB0aXRsZWNhc2UgdGhlIGZpcnN0IGNhc2VkIGNoYXJhY3RlcgorICogb2YgYSB3
b3JkIGFuZCBsb3dlcmNhc2UgYWxsIG90aGVyIGNoYXJhY3RlcnMuCisgKiBXaXRoIHRoaXMgb3B0
aW9uLCB0aGUgb3RoZXIgY2hhcmFjdGVycyB3aWxsIG5vdCBiZSBtb2RpZmllZC4KKyAqCisgKiBA
c2VlIHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgdWNhc2VtYXBfdG9UaXRsZQorICogQHNl
ZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICogQHNlZSBVbmljb2RlU3RyaW5nOjp0b1RpdGxlCisg
KiBAc3RhYmxlIElDVSAzLjgKKyAqLworI2RlZmluZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNBU0Ug
MHgxMDAKKworLyoqCisgKiBEbyBub3QgYWRqdXN0IHRoZSB0aXRsZWNhc2luZyBpbmRleGVzIGZy
b20gQnJlYWtJdGVyYXRvcjo6bmV4dCgpIGluZGV4ZXM7CisgKiB0aXRsZWNhc2UgZXhhY3RseSB0
aGUgY2hhcmFjdGVycyBhdCBicmVha3MgZnJvbSB0aGUgaXRlcmF0b3IuCisgKiBPcHRpb24gYml0
IGZvciB0aXRsZWNhc2luZyBBUElzIHRoYXQgdGFrZSBhbiBvcHRpb25zIGJpdCBzZXQuCisgKgor
ICogQnkgZGVmYXVsdCwgdGl0bGVjYXNpbmcgd2lsbCB0YWtlIGVhY2ggYnJlYWsgaXRlcmF0b3Ig
aW5kZXgsCisgKiBhZGp1c3QgaXQgYnkgbG9va2luZyBmb3IgdGhlIG5leHQgY2FzZWQgY2hhcmFj
dGVyLCBhbmQgdGl0bGVjYXNlIHRoYXQgb25lLgorICogT3RoZXIgY2hhcmFjdGVycyBhcmUgbG93
ZXJjYXNlZC4KKyAqCisgKiBUaGlzIGZvbGxvd3MgVW5pY29kZSA0ICYgNSBzZWN0aW9uIDMuMTMg
RGVmYXVsdCBDYXNlIE9wZXJhdGlvbnM6CisgKgorICogUjMgIHRvVGl0bGVjYXNlKFgpOiBGaW5k
IHRoZSB3b3JkIGJvdW5kYXJpZXMgYmFzZWQgb24gVW5pY29kZSBTdGFuZGFyZCBBbm5leAorICog
IzI5LCAiVGV4dCBCb3VuZGFyaWVzLiIgQmV0d2VlbiBlYWNoIHBhaXIgb2Ygd29yZCBib3VuZGFy
aWVzLCBmaW5kIHRoZSBmaXJzdAorICogY2FzZWQgY2hhcmFjdGVyIEYuIElmIEYgZXhpc3RzLCBt
YXAgRiB0byBkZWZhdWx0X3RpdGxlKEYpOyB0aGVuIG1hcCBlYWNoCisgKiBzdWJzZXF1ZW50IGNo
YXJhY3RlciBDIHRvIGRlZmF1bHRfbG93ZXIoQykuCisgKgorICogQHNlZSB1Y2FzZW1hcF9zZXRP
cHRpb25zCisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRv
VGl0bGUKKyAqIEBzZWUgVW5pY29kZVN0cmluZzo6dG9UaXRsZQorICogQHNlZSBVX1RJVExFQ0FT
RV9OT19MT1dFUkNBU0UKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCisjZGVmaW5lIFVfVElUTEVD
QVNFX05PX0JSRUFLX0FESlVTVE1FTlQgMHgyMDAKKworI2lmICFVQ09ORklHX05PX0JSRUFLX0lU
RVJBVElPTgorCisvKioKKyAqIEdldCB0aGUgYnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2VkIGZv
ciB0aXRsZWNhc2luZy4KKyAqIERvIG5vdCBtb2RpZnkgdGhlIHJldHVybmVkIGJyZWFrIGl0ZXJh
dG9yLgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1cm4g
dGl0bGVjYXNpbmcgYnJlYWsgaXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NU
QUJMRSBjb25zdCBVQnJlYWtJdGVyYXRvciAqIFVfRVhQT1JUMgordWNhc2VtYXBfZ2V0QnJlYWtJ
dGVyYXRvcihjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKworLyoqCisgKiBTZXQgdGhlIGJyZWFrIGl0
ZXJhdG9yIHRoYXQgaXMgdXNlZCBmb3IgdGl0bGVjYXNpbmcuCisgKiBUaGUgVUNhc2VNYXAgc2Vy
dmljZSBvYmplY3QgcmVsZWFzZXMgYSBwcmV2aW91c2x5IHNldCBicmVhayBpdGVyYXRvcgorICog
YW5kICJhZG9wdHMiIHRoaXMgbmV3IG9uZSwgdGFraW5nIG93bmVyc2hpcCBvZiBpdC4KKyAqIEl0
IHdpbGwgYmUgcmVsZWFzZWQgaW4gYSBzdWJzZXF1ZW50IGNhbGwgdG8gdWNhc2VtYXBfc2V0QnJl
YWtJdGVyYXRvcigpCisgKiBvciB1Y2FzZW1hcF9jbG9zZSgpLgorICoKKyAqIEJyZWFrIGl0ZXJh
dG9yIG9wZXJhdGlvbnMgYXJlIG5vdCB0aHJlYWQtc2FmZS4gVGhlcmVmb3JlLCB0aXRsZWNhc2lu
ZworICogZnVuY3Rpb25zIHVzZSBub24tY29uc3QgVUNhc2VNYXAgb2JqZWN0cy4gSXQgaXMgbm90
IHBvc3NpYmxlIHRvIHRpdGxlY2FzZQorICogc3RyaW5ncyBjb25jdXJyZW50bHkgdXNpbmcgdGhl
IHNhbWUgVUNhc2VNYXAuCisgKgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVj
dC4KKyAqIEBwYXJhbSBpdGVyVG9BZG9wdCBCcmVhayBpdGVyYXRvciB0byBiZSBhZG9wdGVkIGZv
ciB0aXRsZWNhc2luZy4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2lu
dGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBt
dXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoK
KyAqIEBzZWUgdWNhc2VtYXBfdG9UaXRsZQorICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQor
ICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1h
cF9zZXRCcmVha0l0ZXJhdG9yKFVDYXNlTWFwICpjc20sIFVCcmVha0l0ZXJhdG9yICppdGVyVG9B
ZG9wdCwgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogVGl0bGVjYXNlIGEgVVRG
LTE2IHN0cmluZy4gVGhpcyBmdW5jdGlvbiBpcyBhbG1vc3QgYSBkdXBsaWNhdGUgb2YgdV9zdHJU
b1RpdGxlKCksCisgKiBleGNlcHQgdGhhdCBpdCB0YWtlcyB1Y2FzZW1hcF9zZXRPcHRpb25zKCkg
aW50byBhY2NvdW50IGFuZCBoYXMgcGVyZm9ybWFuY2UKKyAqIGFkdmFudGFnZXMgZnJvbSBiZWlu
ZyBhYmxlIHRvIHVzZSBhIFVDYXNlTWFwIG9iamVjdCBmb3IgbXVsdGlwbGUgY2FzZSBtYXBwaW5n
CisgKiBvcGVyYXRpb25zLCBzYXZpbmcgc2V0dXAgdGltZS4KKyAqCisgKiBDYXNpbmcgaXMgbG9j
YWxlLWRlcGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaXRsZWNhc2luZyB1c2Vz
IGEgYnJlYWsgaXRlcmF0b3IgdG8gZmluZCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiB3b3Jkcwor
ICogdGhhdCBhcmUgdG8gYmUgdGl0bGVjYXNlZC4gSXQgdGl0bGVjYXNlcyB0aG9zZSBjaGFyYWN0
ZXJzIGFuZCBsb3dlcmNhc2VzCisgKiBhbGwgb3RoZXJzLiAoVGhpcyBjYW4gYmUgbW9kaWZpZWQg
d2l0aCB1Y2FzZW1hcF9zZXRPcHRpb25zKCkuKQorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24g
dGFrZXMgYSBub24tY29uc3QgVUNhc2VNYXAgcG9pbnRlciBiZWNhdXNlIGl0IHdpbGwKKyAqIG9w
ZW4gYSBkZWZhdWx0IGJyZWFrIGl0ZXJhdG9yIGlmIG5vIGJyZWFrIGl0ZXJhdG9yIHdhcyBzZXQg
eWV0LAorICogYW5kIGVmZmVjdGl2ZWx5IGNhbGwgdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigp
OworICogYWxzbyBiZWNhdXNlIHRoZSBicmVhayBpdGVyYXRvciBpcyBzdGF0ZWZ1bCBhbmQgd2ls
bCBiZSBtb2RpZmllZCBkdXJpbmcKKyAqIHRoZSBpdGVyYXRpb24uCisgKgorICogVGhlIHRpdGxl
Y2FzZSBicmVhayBpdGVyYXRvciBjYW4gYmUgcHJvdmlkZWQgdG8gY3VzdG9taXplIGZvciBhcmJp
dHJhcnkKKyAqIHN0eWxlcywgdXNpbmcgcnVsZXMgYW5kIGRpY3Rpb25hcmllcyBiZXlvbmQgdGhl
IHN0YW5kYXJkIGl0ZXJhdG9ycy4KKyAqIFRoZSBzdGFuZGFyZCB0aXRsZWNhc2UgaXRlcmF0b3Ig
Zm9yIHRoZSByb290IGxvY2FsZSBpbXBsZW1lbnRzIHRoZQorICogYWxnb3JpdGhtIG9mIFVuaWNv
ZGUgVFIgMjEuCisgKgorICogVGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHNldFVUZXh0KCks
IGZpcnN0KCksIG5leHQoKSBhbmQgY2xvc2UoKSBtZXRob2RzIG9mIHRoZQorICogcHJvdmlkZWQg
YnJlYWsgaXRlcmF0b3IuCisgKgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0
ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3Rp
bmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAg
VUNhc2VNYXAgc2VydmljZSBvYmplY3QuIFRoaXMgcG9pbnRlciBpcyBub24tY29uc3QhCisgKiAg
ICAgICAgICAgICAgICAgIFNlZSB0aGUgbm90ZSBhYm92ZSBmb3IgZGV0YWlscy4KKyAqIEBwYXJh
bSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdp
bGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBp
cyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRl
ZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6
ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAg
ICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9u
bHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3
aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAg
ICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3Ro
IG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJt
aW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8g
YW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3Qg
aW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4g
VGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNh
c2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2ls
bCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1RpdGxl
CisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3Vj
YXNlbWFwX3RvVGl0bGUoVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgVUNoYXIgKmRl
c3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAq
c3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVy
cm9yQ29kZSk7CisKKyNlbmRpZgorCisvKioKKyAqIExvd2VyY2FzZSB0aGUgY2hhcmFjdGVycyBp
biBhIFVURi04IHN0cmluZy4KKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250
ZXh0LXNlbnNpdGl2ZS4KKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRo
YW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlv
biBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNl
TWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhl
IHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICog
ICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAg
ICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisg
KiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBi
eXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUg
TlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUg
cmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJl
c3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisg
KiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYg
LTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29k
ZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAg
ICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRo
ZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3Ry
aW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAq
ICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNp
dHkuCisgKgorICogQHNlZSB1X3N0clRvTG93ZXIKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitV
X1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOFRvTG93ZXIoY29uc3QgVUNh
c2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVz
dENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90
IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUp
OworCisvKioKKyAqIFVwcGVyY2FzZSB0aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmluZy4K
KyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAq
IFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgor
ICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qg
b3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0
LgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRo
ZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0
aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRl
bnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFj
aXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAs
IHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0
aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAg
ICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBA
cGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3Ro
IFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3Qg
YmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQg
cG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGlj
aCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgor
ICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVs
IC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2gg
Y2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1
X3N0clRvVXBwZXIKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSBpbnQzMl90IFVf
RVhQT1JUMgordWNhc2VtYXBfdXRmOFRvVXBwZXIoY29uc3QgVUNhc2VNYXAgKmNzbSwKKyAgICAg
ICAgICAgICAgICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNyY0xlbmd0aCwKKyAgICAg
ICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjaWYgIVVDT05GSUdf
Tk9fQlJFQUtfSVRFUkFUSU9OCisKKy8qKgorICogVGl0bGVjYXNlIGEgVVRGLTggc3RyaW5nLgor
ICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICog
VGl0bGVjYXNpbmcgdXNlcyBhIGJyZWFrIGl0ZXJhdG9yIHRvIGZpbmQgdGhlIGZpcnN0IGNoYXJh
Y3RlcnMgb2Ygd29yZHMKKyAqIHRoYXQgYXJlIHRvIGJlIHRpdGxlY2FzZWQuIEl0IHRpdGxlY2Fz
ZXMgdGhvc2UgY2hhcmFjdGVycyBhbmQgbG93ZXJjYXNlcworICogYWxsIG90aGVycy4gKFRoaXMg
Y2FuIGJlIG1vZGlmaWVkIHdpdGggdWNhc2VtYXBfc2V0T3B0aW9ucygpLikKKyAqCisgKiBOb3Rl
OiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgbm9uLWNvbnN0IFVDYXNlTWFwIHBvaW50ZXIgYmVjYXVz
ZSBpdCB3aWxsCisgKiBvcGVuIGEgZGVmYXVsdCBicmVhayBpdGVyYXRvciBpZiBubyBicmVhayBp
dGVyYXRvciB3YXMgc2V0IHlldCwKKyAqIGFuZCBlZmZlY3RpdmVseSBjYWxsIHVjYXNlbWFwX3Nl
dEJyZWFrSXRlcmF0b3IoKTsKKyAqIGFsc28gYmVjYXVzZSB0aGUgYnJlYWsgaXRlcmF0b3IgaXMg
c3RhdGVmdWwgYW5kIHdpbGwgYmUgbW9kaWZpZWQgZHVyaW5nCisgKiB0aGUgaXRlcmF0aW9uLgor
ICoKKyAqIFRoZSB0aXRsZWNhc2UgYnJlYWsgaXRlcmF0b3IgY2FuIGJlIHByb3ZpZGVkIHRvIGN1
c3RvbWl6ZSBmb3IgYXJiaXRyYXJ5CisgKiBzdHlsZXMsIHVzaW5nIHJ1bGVzIGFuZCBkaWN0aW9u
YXJpZXMgYmV5b25kIHRoZSBzdGFuZGFyZCBpdGVyYXRvcnMuCisgKiBUaGUgc3RhbmRhcmQgdGl0
bGVjYXNlIGl0ZXJhdG9yIGZvciB0aGUgcm9vdCBsb2NhbGUgaW1wbGVtZW50cyB0aGUKKyAqIGFs
Z29yaXRobSBvZiBVbmljb2RlIFRSIDIxLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gdXNlcyBvbmx5
IHRoZSBzZXRVVGV4dCgpLCBmaXJzdCgpLCBuZXh0KCkgYW5kIGNsb3NlKCkgbWV0aG9kcyBvZiB0
aGUKKyAqIHByb3ZpZGVkIGJyZWFrIGl0ZXJhdG9yLgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJl
IGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJp
bmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBA
cGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LiBUaGlzIHBvaW50ZXIgaXMg
bm9uLWNvbnN0IQorICogICAgICAgICAgICAgICAgICBTZWUgdGhlIG5vdGUgYWJvdmUgZm9yIGRl
dGFpbHMuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmlu
Zy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAg
ICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUg
Y29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0
Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQg
aXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUg
ZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAg
ICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4K
KyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNM
ZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMg
bXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2
YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAg
IHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNh
bGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nl
c3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3
aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBA
c2VlIHVfc3RyVG9UaXRsZQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19MT1dFUkNBU0UKKyAqIEBz
ZWUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVAorICogQHN0YWJsZSBJQ1UgMy44Cisg
Ki8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4VG9UaXRsZShVQ2Fz
ZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RD
YXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90IHNy
Y0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisK
KyNlbmRpZgorCisvKioKKyAqIENhc2UtZm9sZHMgdGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBz
dHJpbmcuCisgKgorICogQ2FzZS1mb2xkaW5nIGlzIGxvY2FsZS1pbmRlcGVuZGVudCBhbmQgbm90
IGNvbnRleHQtc2Vuc2l0aXZlLAorICogYnV0IHRoZXJlIGlzIGFuIG9wdGlvbiBmb3Igd2hldGhl
ciB0byBpbmNsdWRlIG9yIGV4Y2x1ZGUgbWFwcGluZ3MgZm9yIGRvdHRlZCBJCisgKiBhbmQgZG90
bGVzcyBpIHRoYXQgYXJlIG1hcmtlZCB3aXRoICdUJyBpbiBDYXNlRm9sZGluZy50eHQuCisgKgor
ICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwu
CisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5v
dCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmpl
Y3QuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4g
VGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAg
IHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29u
dGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2Fw
YWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMg
MCwgdGhlbgorICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVu
Y3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAg
ICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAq
IEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5n
dGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVz
dCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxp
ZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdo
aWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwu
CisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3Nm
dWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGlj
aCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2Vl
IHVfc3RyRm9sZENhc2UKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICogQHNlZSBVX0ZP
TERfQ0FTRV9ERUZBVUxUCisgKiBAc2VlIFVfRk9MRF9DQVNFX0VYQ0xVREVfU1BFQ0lBTF9JCisg
KiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNl
bWFwX3V0ZjhGb2xkQ2FzZShjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAg
ICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9pY3UvdW5pY29kZS91Y2hyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91
Y2hyaXRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkNWE5OTBmN2I3ZWQzZDViYWNmMmRhODQ3MWVmOGZmOTQy
MmY5OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVy
LmgKQEAgLTAsMCArMSwzODEgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChD
KSAxOTk4LTIwMDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3Jh
dGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyov
CisKKyNpZm5kZWYgVUNIUklURVJfSAorI2RlZmluZSBVQ0hSSVRFUl9ICisKKyNpbmNsdWRlICJ1
bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIuaCIKKworLyoqCisg
KiBcZmlsZSAKKyAqIFxicmllZiBDKysgQVBJOiBVQ2hhciBDaGFyYWN0ZXIgSXRlcmF0b3IKKyAq
LworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqCisgKiBBIGNvbmNyZXRlIHN1YmNsYXNzIG9m
IENoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciB0aGUKKyAqIGNoYXJhY3RlcnMg
KGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMpIGluIGEgVUNoYXIgYXJyYXkuCisgKiBJdCdzIHBv
c3NpYmxlIG5vdCBvbmx5IHRvIGNyZWF0ZSBhbgorICogaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBv
dmVyIGFuIGVudGlyZSBVQ2hhciBhcnJheSwgYnV0IGFsc28gdG8KKyAqIGNyZWF0ZSBvbmUgdGhh
dCBpdGVyYXRlcyBvdmVyIG9ubHkgYSBzdWJyYW5nZSBvZiBhIFVDaGFyIGFycmF5CisgKiAoaXRl
cmF0b3JzIG92ZXIgZGlmZmVyZW50IHN1YnJhbmdlcyBvZiB0aGUgc2FtZSBVQ2hhciBhcnJheSBk
b24ndAorICogY29tcGFyZSBlcXVhbCkuCisgKiBAc2VlIENoYXJhY3Rlckl0ZXJhdG9yCisgKiBA
c2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2Ns
YXNzIFVfQ09NTU9OX0FQSSBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIDogcHVibGljIENoYXJhY3Rl
ckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgLyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVy
IHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0byBieSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVy
YXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5sZW5ndGgtMTwvY29kZT4uCisgICAqIHRleHQgaXMg
b25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisgICAqIGRlc3RydWN0b3Igd2lsbCBub3Qg
ZGVsZXRlIGl0KS4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFycmF5IHRvIGJlIGl0
ZXJhdGVkIG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBh
cnJheQorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0
b3IoY29uc3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoKTsKKworICAvKioKKyAgICog
Q3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0
ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmxlbmd0aC0x
PC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAg
ICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBUaGUgc3RhcnRpbmcKKyAg
ICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJwb3NpdGlvbiIuIElmICJwb3NpdGlvbiIgaXMg
b3V0c2lkZSB0aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Igb2Yg
dGhpcyBvYmplY3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNoYXIg
YXJyYXkgdG8gYmUgaXRlcmF0ZCBvdmVyCisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBv
ZiB0aGUgVUNoYXIgYXJyYXkKKyAgICogQHBhcmFtIHBvc2l0aW9uIFRoZSBzdGFydGluZyBwb3Np
dGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNo
YXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50MzJfdCBsZW5ndGgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisg
ICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0byBi
eSAidGV4dFB0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5lbmQt
MTwvY29kZT4uCisgICAqIHRleHQgaXMgb25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisg
ICAqIGRlc3RydWN0b3Igd2lsbCBub3QgZGVsZXRlIGl0KS4KKyAgICogVGhlIHN0YXJ0aW5nCisg
ICAqIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAicG9zaXRpb24iLiBJZiBiZWdpbiBhbmQgZW5k
IGRvIG5vdAorICAgKiBmb3JtIGEgdmFsaWQgaXRlcmF0aW9uIHJhbmdlIG9yICJwb3NpdGlvbiIg
aXMgb3V0c2lkZSB0aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUgYmVoYXZpb3Ig
b2YgdGhpcyBvYmplY3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFB0ciBUaGUgVUNo
YXIgYXJyYXkgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5n
dGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAqIEBwYXJhbSB0ZXh0QmVnaW4gIFRoZSBiZWdpbiBw
b3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0RW5kICAgIFRo
ZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0gcG9zaXRp
b24gICAgVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVDaGFyKiB0
ZXh0UHRyLCBpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90
IHRleHRCZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRleHRFbmQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAq
IENvcHkgY29uc3RydWN0b3IuICBUaGUgbmV3IGl0ZXJhdG9yIGl0ZXJhdGVzIG92ZXIgdGhlIHNh
bWUgcmFuZ2UKKyAgICogb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0IiwgYW5kIGl0cyBpbml0
aWFsIHBvc2l0aW9uIGlzIHRoZQorICAgKiBzYW1lIGFzICJ0aGF0IidzIGN1cnJlbnQgcG9zaXRp
b24uCisgICAqIEBwYXJhbSB0aGF0IFRoZSBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNv
cGllZAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0
b3IoY29uc3QgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYgIHRoYXQpOworCisgIC8qKgorICAgKiBE
ZXN0cnVjdG9yLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgflVDaGFy
Q2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogQXNzaWdubWVudCBvcGVyYXRvci4g
ICp0aGlzIGlzIGFsdGVyZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBzYW5lCisgICAqIHJhbmdlIG9m
IHRoZSBzYW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCByZWZlcnMgdG8gdGhlIHNhbWUKKyAgICog
Y2hhcmFjdGVyIHdpdGhpbiB0aGF0IHN0cmluZyBhcyAidGhhdCIgZG9lcy4KKyAgICogQHBhcmFt
IHRoYXQgVGhlIG9iamVjdCB0byBiZSBjb3BpZWQKKyAgICogQHJldHVybiB0aGUgbmV3bHkgY3Jl
YXRlZCBvYmplY3QKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rl
ckl0ZXJhdG9yJgorICBvcGVyYXRvcj0oY29uc3QgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciYgICAg
dGhhdCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJh
dGUgb3ZlciB0aGUgc2FtZSByYW5nZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBw
b2ludGluZyBhdCB0aGUgc2FtZSBjaGFyYWN0ZXIuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBGb3J3
YXJkQ2hhcmFjdGVySXRlcmF0b3IgdXNlZCB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAg
ICogQHJldHVybiB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJh
bmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1l
IGNoYXJhY3Rlci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29s
ICAgICAgICAgIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0
KSBjb25zdDsKKworICAvKioKKyAgICogR2VuZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGlzIGl0
ZXJhdG9yLgorICAgKiBAcmV0dXJuIHRoZSBoYXNoIGNvZGUuCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAgICAgaGFzaENvZGUodm9pZCkgY29uc3Q7
CisKKyAgLyoqCisgICAqIFJldHVybnMgYSBuZXcgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciByZWZl
cnJpbmcgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHJhbmdlIG9mIHRo
ZSBzYW1lIHN0cmluZyBhcyB0aGlzIG9uZS4gIFRoZQorICAgKiBjYWxsZXIgbXVzdCBkZWxldGUg
dGhlIG5ldyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0aGUgQ2hhcmFjdGVySXRlcmF0b3IgbmV3
bHkgY3JlYXRlZAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgQ2hhcmFj
dGVySXRlcmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBTZXRzIHRoZSBp
dGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAgKiBpdGVy
YXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgKiBUaGlzIGNhbiBi
ZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQoKS4KKyAgICogQHJldHVybiB0
aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0KHZvaWQpOworCisg
IC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1
bml0IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHVuaXQs
IGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24KKyAgICogdG8gdGhlIHNlY29uZCBjb2RlIHVuaXQuIFRo
aXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAqIGZvciBmb3J3YXJkIGl0
ZXJhdGlvbiB3aXRoIG5leHRQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUg
dW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0UG9zdEluYyh2b2lkKTsKKworICAvKioKKyAg
ICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4g
aXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQsCisg
ICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyKCku
CisgICAqIE5vdGUgdGhhdCBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzJQb3N0SW5jKCksIGJlZ2lu
bmluZyB3aXRoLAorICAgKiBlLmcuLCBzZXRUb1N0YXJ0KCkgb3IgZmlyc3RQb3N0SW5jKCksIGlz
IG1vcmUgZWZmaWNpZW50LgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0
cyBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFs
IFVDaGFyMzIgICAgICAgZmlyc3QzMih2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0ZXJh
dGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRp
b24KKyAgICogdG8gdGhlIHNlY29uZCBjb2RlIHBvaW50LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZl
IHRvIHNldFRvU3RhcnQoKQorICAgKiBmb3IgZm9yd2FyZCBpdGVyYXRpb24gd2l0aCBuZXh0MzJQ
b3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJh
dGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFy
MzIgICAgICAgZmlyc3QzMlBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0
ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0
aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUg
dXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpLgorICAgKiBAcmV0dXJu
IHRoZSBsYXN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBsYXN0KHZvaWQpOworCisg
IC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHBv
aW50IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1
bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIHBy
ZXZpb3VzMzIoKS4KKyAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVy
YXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hh
cjMyICAgICAgIGxhc3QzMih2b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3Ig
dG8gcmVmZXIgdG8gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAqIGluIHRoZSB0ZXh0
LXN0b3JhZ2Ugb2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgKiByZXR1cm5z
IHRoYXQgY29kZSB1bml0LgorICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBvc2l0aW9uIHdpdGhp
biB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQKKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgc2V0SW5k
ZXgoaW50MzJfdCBwb3NpdGlvbik7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQKKyAgICogdGhhdCBjb250
YWlucyB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIHRleHQtc3RvcmFn
ZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAqIHJldHVybnMgdGhhdCBj
b2RlIHBvaW50LgorICAgKiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyBhZGp1c3RlZCB0byB0aGUg
YmVnaW5uaW5nIG9mIHRoZSBjb2RlIHBvaW50CisgICAqIChpdHMgZmlyc3QgY29kZSB1bml0KS4K
KyAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiB3aXRoaW4gdGhlIHRleHQtc3RvcmFn
ZSBvYmplY3QKKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0CisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIHNldEluZGV4MzIoaW50MzJfdCBwb3Np
dGlvbik7CisKKyAgLyoqCisgICAqIFJldHVybnMgdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3Ig
Y3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0IHRoZSBpdGVy
YXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgVUNoYXIgICAgICAgICBjdXJyZW50KHZvaWQpIGNvbnN0OworCisgIC8qKgorICAg
KiBSZXR1cm5zIHRoZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRv
LgorICAgKiBAcmV0dXJuIHRoZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVm
ZXJzIHRvLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAg
ICAgICBjdXJyZW50MzIodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRo
ZSBuZXh0IGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAgICogZW5k
SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlIG5vIG1v
cmUKKyAgICogY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVy
biB0aGUgbmV4dCBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dCh2b2lkKTsKKwor
ICAvKioKKyAgICogR2V0cyB0aGUgY3VycmVudCBjb2RlIHVuaXQgZm9yIHJldHVybmluZyBhbmQg
YWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0CisgICAqIGluIHRoZSBpdGVyYXRpb24gcmFu
Z2UKKyAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgKiBubyBtb3Jl
IGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIGN1
cnJlbnQgY29kZSB1bml0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwg
VUNoYXIgICAgICAgICBuZXh0UG9zdEluYyh2b2lkKTsKKworICAvKioKKyAgICogQWR2YW5jZXMg
dG8gdGhlIG5leHQgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dhcmQKKyAg
ICogZW5kSW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFy
ZSBubyBtb3JlCisgICAqIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAg
KiBOb3RlIHRoYXQgaXRlcmF0aW9uIHdpdGggInByZS1pbmNyZW1lbnQiIHNlbWFudGljcyBpcyBs
ZXNzCisgICAqIGVmZmljaWVudCB0aGFuIGl0ZXJhdGlvbiB3aXRoICJwb3N0LWluY3JlbWVudCIg
c2VtYW50aWNzCisgICAqIHRoYXQgaXMgcHJvdmlkZWQgYnkgbmV4dDMyUG9zdEluYygpLgorICAg
KiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMy
KHZvaWQpOworCisgIC8qKgorICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgcG9pbnQgZm9yIHJl
dHVybmluZyBhbmQgYWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludAorICAgKiBpbiB0aGUg
aXRlcmF0aW9uIHJhbmdlCisgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUK
KyAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICog
QHJldHVybiB0aGUgY3VycmVudCBwb2ludC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMyUG9zdEluYyh2b2lkKTsKKworICAvKioKKyAg
ICogUmV0dXJucyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUg
cG9pbnRzCisgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVy
YXRpb24gcmFuZ2UuCisgICAqIFRoaXMgaXMgdXNlZCB3aXRoIG5leHRQb3N0SW5jKCkgb3IgbmV4
dDMyUG9zdEluYygpIGluIGZvcndhcmQKKyAgICogaXRlcmF0aW9uLgorICAgKiBAcmV0dXJuIEZB
TFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICog
YXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4K
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNO
ZXh0KCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQg
aW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIHN0YXJ0SW5kZXgoKSksIGFuZCBy
ZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSB1
bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgcHJldmlvdXMg
Y29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIHByZXZpb3VzKHZvaWQpOworCisgIC8qKgor
ICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9u
IHJhbmdlICh0b3dhcmQKKyAgICogc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2Rl
IHBvaW50LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSBwb2ludHMgdG8gcmV0dXJu
LCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgaW4g
dGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIFVDaGFyMzIgICAgICAgcHJldmlvdXMzMih2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJu
cyBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisg
ICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgor
ICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3VzMzIoKSBpbiBiYWNr
d2FyZAorICAgKiBpdGVyYXRpb24uCisgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5v
IG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQg
cG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICBoYXNQcmV2aW91cygpOworCisgIC8qKgorICAg
KiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5k
IG9mIHRoZQorICAgKiBpdGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50
IHBvc2l0aW9uIGl0c2VsZi4KKyAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1i
ZXJzIG9mIGNvZGUgdW5pdHMgZm9yd2FyZAorICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5n
IGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAqIEBwYXJhbSBkZWx0YSB0aGUgcG9z
aXRpb24gcmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5zIGZvcndhcmQ7
CisgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAqIEBwYXJhbSBvcmln
aW4gT3JpZ2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgKiBAcmV0
dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0
dWFsIGludDMyX3QgICAgICBtb3ZlKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKTsKKwor
ICAvKioKKyAgICogTW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0
YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0
aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNz
ZWQgaW4gbnVtYmVycyBvZiBjb2RlIHBvaW50cyBmb3J3YXJkCisgICAqIG9yIGJhY2t3YXJkIGJ5
IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAgICogQHBhcmFtIGRl
bHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVh
bnMgZm9yd2FyZDsKKyAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFucyBiYWNrd2FyZC4KKyAgICog
QHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9
CisgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUzMihpbnQzMl90IGRlbHRhLCBFT3JpZ2lu
IG9yaWdpbik7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIGl0ZXJhdGUgb3Zl
ciBhIG5ldyByYW5nZSBvZiB0ZXh0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdm9p
ZCBzZXRUZXh0KGNvbnN0IFVDaGFyKiBuZXdUZXh0LCBpbnQzMl90IG5ld1RleHRMZW5ndGgpOwor
CisgIC8qKgorICAgKiBDb3BpZXMgdGhlIFVDaGFyIGFycmF5IHVuZGVyIGl0ZXJhdGlvbiBpbnRv
IHRoZSBVbmljb2RlU3RyaW5nCisgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZlbiBp
ZiB0aGlzIGl0ZXJhdG9yIGl0ZXJhdGVzIGFjcm9zcworICAgKiBvbmx5IGEgcGFydCBvZiB0aGlz
IHN0cmluZywgdGhlIHdob2xlIHN0cmluZyBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSByZXN1bHQg
UmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNv
ZGVTdHJpbmcmIHJlc3VsdCk7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0
aGlzIGNsYXNzIChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZv
ciB0aGlzIGNsYXNzCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgc3RhdGljIFVDbGFz
c0lEICAgICAgICAgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQodm9pZCk7CisKKyAgLyoqCisg
ICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdCAobm90IHJlYWxseSBwdWJsaWMp
CisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2xhc3NJRCAgICAgICAgZ2V0RHluYW1pY0NsYXNz
SUQodm9pZCkgY29uc3Q7CisKK3Byb3RlY3RlZDoKKyAgLyoqCisgICAqIFByb3RlY3RlZCBjb25z
dHJ1Y3RvcgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRl
cmF0b3IoKTsKKyAgLyoqCisgICAqIFByb3RlY3RlZCBtZW1iZXIgdGV4dAorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIGNvbnN0IFVDaGFyKiAgICAgICAgICAgIHRleHQ7CisKK307CisK
K1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL3VkYXRhLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VkYXRhLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjllNDY2MzBkNTM5OGQ4MjczOGQxZDYxZmZjNGQyYzkxNGU4YzY4YgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaApAQCAtMCwwICsxLDQzMCBAQAorLyoK
KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDE0LCBJ
bnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVy
cy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBm
aWxlIG5hbWU6ICB1ZGF0YS5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0YWIgc2l6
ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRlZCBvbjog
MTk5OW9jdDI1CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisKKyNpZm5k
ZWYgX19VREFUQV9IX18KKyNkZWZpbmUgX19VREFUQV9IX18KKworI2luY2x1ZGUgInVuaWNvZGUv
dXR5cGVzLmgiCisjaW5jbHVkZSAidW5pY29kZS9sb2NhbHBvaW50ZXIuaCIKKworVV9DREVDTF9C
RUdJTgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IERhdGEgbG9hZGluZyBpbnRl
cmZhY2UKKyAqCisgKiA8aDI+SW5mb3JtYXRpb24gYWJvdXQgZGF0YSBsb2FkaW5nIGludGVyZmFj
ZTwvaDI+CisgKgorICogVGhpcyBBUEkgaXMgdXNlZCB0byBmaW5kIGFuZCBlZmZpY2llbnRseSBs
b2FkIGRhdGEgZm9yIElDVSBhbmQgYXBwbGljYXRpb25zCisgKiB1c2luZyBJQ1UuIEl0IHByb3Zp
ZGVzIGFuIGFic3RyYWN0IGludGVyZmFjZSB0aGF0IHNwZWNpZmllcyBhIGRhdGEgdHlwZSBhbmQK
KyAqIG5hbWUgdG8gZmluZCBhbmQgbG9hZCB0aGUgZGF0YS4gTm9ybWFsbHkgdGhpcyBBUEkgaXMg
dXNlZCBieSBvdGhlciBJQ1UgQVBJcworICogdG8gbG9hZCByZXF1aXJlZCBkYXRhIG91dCBvZiB0
aGUgSUNVIGRhdGEgbGlicmFyeSwgYnV0IGl0IGNhbiBiZSB1c2VkIHRvCisgKiBsb2FkIGRhdGEg
b3V0IG9mIG90aGVyIHBsYWNlcy4KKyAqCisgKiBTZWUgdGhlIFVzZXIgR3VpZGUgRGF0YSBNYW5h
Z2VtZW50IGNoYXB0ZXIuCisgKi8KKyAKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorLyoq
CisgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZyb20gdHJlZSBu
YW1lcyAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX1NFUEFSQVRP
UiAnLScKKworLyoqCisgKiBTdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSBwYWNrYWdlIG5hbWVzIGZy
b20gdHJlZSBuYW1lcyAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVF
X1NFUEFSQVRPUl9TVFJJTkcgIi0iCisKKy8qKgorICogQ2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJh
dGUgcGFydHMgb2YgZW50cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZp
bmUgVV9UUkVFX0VOVFJZX1NFUF9DSEFSICcvJworCisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNl
cGFyYXRlIHBhcnRzIG9mIGVudHJ5IG5hbWVzCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisj
ZGVmaW5lIFVfVFJFRV9FTlRSWV9TRVBfU1RSSU5HICIvIgorCisvKioKKyAqIEFsaWFzIGZvciBz
dGFuZGFyZCBJQ1UgZGF0YSAKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9J
Q1VEQVRBX0FMSUFTICJJQ1VEQVRBIgorCisjZW5kaWYgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAq
LworCisvKioKKyAqIFVEYXRhSW5mbyBjb250YWlucyB0aGUgcHJvcGVydGllcyBhYm91dCB0aGUg
cmVxdWVzdGVkIGRhdGEuCisgKiBUaGlzIGlzIG1ldGEgZGF0YS4KKyAqCisgKiA8cD5UaGlzIHN0
cnVjdHVyZSBtYXkgZ3JvdyBpbiB0aGUgZnV0dXJlLCBpbmRpY2F0ZWQgYnkgdGhlCisgKiA8Y29k
ZT5zaXplPC9jb2RlPiBmaWVsZC48L3A+CisgKgorICogPHA+SUNVIGRhdGEgbXVzdCBiZSBhdCBs
ZWFzdCA4LWFsaWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFRoZSBVRGF0YUlu
Zm8gc3RydWN0IGJlZ2lucyA0IGJ5dGVzIGFmdGVyIHRoZSBzdGFydCBvZiB0aGUgZGF0YSBpdGVt
LAorICogc28gaXQgaXMgNC1hbGlnbmVkLgorICoKKyAqIDxwPlRoZSBwbGF0Zm9ybSBkYXRhIHBy
b3BlcnR5IGZpZWxkcyBoZWxwIGRldGVybWluZSBpZiBhIGRhdGEKKyAqIGZpbGUgY2FuIGJlIGVm
ZmljaWVudGx5IHVzZWQgb24gYSBnaXZlbiBtYWNoaW5lLgorICogVGhlIHBhcnRpY3VsYXIgZmll
bGRzIGFyZSBvZiBpbXBvcnRhbmNlIG9ubHkgaWYgdGhlIGRhdGEKKyAqIGlzIGFmZmVjdGVkIGJ5
IHRoZSBwcm9wZXJ0aWVzIC0gaWYgdGhlcmUgaXMgaW50ZWdlciBkYXRhCisgKiB3aXRoIHdvcmQg
c2l6ZXMgPiAxIGJ5dGUsIGNoYXIqIHRleHQsIG9yIFVDaGFyKiB0ZXh0LjwvcD4KKyAqCisgKiA8
cD5UaGUgaW1wbGVtZW50YXRpb24gZm9yIHRoZSA8Y29kZT51ZGF0YV9vcGVuW0Nob2ljZV0oKTwv
Y29kZT4KKyAqIGZ1bmN0aW9ucyBtYXkgcmVqZWN0IGRhdGEgYmFzZWQgb24gdGhlIHZhbHVlIGlu
IDxjb2RlPmlzQmlnRW5kaWFuPC9jb2RlPi4KKyAqIE5vIG90aGVyIGZpZWxkIGlzIHVzZWQgYnkg
dGhlIDxjb2RlPnVkYXRhPC9jb2RlPiBBUEkgaW1wbGVtZW50YXRpb24uPC9wPgorICoKKyAqIDxw
PlRoZSA8Y29kZT5kYXRhRm9ybWF0PC9jb2RlPiBtYXkgYmUgdXNlZCB0byBpZGVudGlmeQorICog
dGhlIGtpbmQgb2YgZGF0YSwgZS5nLiBhIGNvbnZlcnRlciB0YWJsZS48L3A+CisgKgorICogPHA+
VGhlIDxjb2RlPmZvcm1hdFZlcnNpb248L2NvZGU+IGZpZWxkIHNob3VsZCBiZSB1c2VkIHRvCisg
KiBtYWtlIHN1cmUgdGhhdCB0aGUgZm9ybWF0IGNhbiBiZSBpbnRlcnByZXRlZC4KKyAqIEl0IG1h
eSBiZSBhIGdvb2QgaWRlYSB0byBjaGVjayBvbmx5IGZvciB0aGUgb25lIG9yIHR3byBoaWdoZXN0
CisgKiBvZiB0aGUgdmVyc2lvbiBlbGVtZW50cyB0byBhbGxvdyB0aGUgZGF0YSBtZW1vcnkgdG8K
KyAqIGdldCBtb3JlIG9yIHNvbWV3aGF0IHJlYXJyYW5nZWQgY29udGVudHMsIGZvciBhcyBsb25n
CisgKiBhcyB0aGUgdXNpbmcgY29kZSBjYW4gc3RpbGwgaW50ZXJwcmV0IHRoZSBvbGRlciBjb250
ZW50cy48L3A+CisgKgorICogPHA+VGhlIDxjb2RlPmRhdGFWZXJzaW9uPC9jb2RlPiBmaWVsZCBp
cyBpbnRlbmRlZCB0byBiZSBhCisgKiBjb21tb24gcGxhY2UgdG8gc3RvcmUgdGhlIHNvdXJjZSB2
ZXJzaW9uIG9mIHRoZSBkYXRhOworICogZm9yIGRhdGEgZnJvbSB0aGUgVW5pY29kZSBjaGFyYWN0
ZXIgZGF0YWJhc2UsIHRoaXMgY291bGQKKyAqIHJlZmxlY3QgdGhlIFVuaWNvZGUgdmVyc2lvbi48
L3A+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICAv
Kiogc2l6ZW9mKFVEYXRhSW5mbykKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWlu
dDE2X3Qgc2l6ZTsKKworICAgIC8qKiB1bnVzZWQsIHNldCB0byAwIAorICAgICAqICBAc3RhYmxl
IElDVSAyLjAqLworICAgIHVpbnQxNl90IHJlc2VydmVkV29yZDsKKworICAgIC8qIHBsYXRmb3Jt
IGRhdGEgcHJvcGVydGllcyAqLworICAgIC8qKiAwIGZvciBsaXR0bGUtZW5kaWFuIG1hY2hpbmUs
IDEgZm9yIGJpZy1lbmRpYW4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wICovCisgICAgdWludDhf
dCBpc0JpZ0VuZGlhbjsKKworICAgIC8qKiBzZWUgVV9DSEFSU0VUX0ZBTUlMWSB2YWx1ZXMgaW4g
dXR5cGVzLmggCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBjaGFyc2V0
RmFtaWx5OworCisgICAgLyoqIHNpemVvZihVQ2hhciksIG9uZSBvZiB7IDEsIDIsIDQgfSAKKyAg
ICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHNpemVvZlVDaGFyOworCisgICAg
LyoqIHVudXNlZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWlu
dDhfdCByZXNlcnZlZEJ5dGU7CisKKyAgICAvKiogZGF0YSBmb3JtYXQgaWRlbnRpZmllciAKKyAg
ICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGRhdGFGb3JtYXRbNF07CisKKyAg
ICAvKiogdmVyc2lvbnM6IFswXSBtYWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBtaWNybyAK
KyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGZvcm1hdFZlcnNpb25bNF07
CisKKyAgICAvKiogdmVyc2lvbnM6IFswXSBtYWpvciBbMV0gbWlub3IgWzJdIG1pbGxpIFszXSBt
aWNybyAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGRhdGFWZXJzaW9u
WzRdOworfSBVRGF0YUluZm87CisKKy8qIEFQSSBmb3IgcmVhZGluZyBkYXRhIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoqCisgKiBG
b3J3YXJkIGRlY2xhcmF0aW9uIG9mIHRoZSBkYXRhIG1lbW9yeSB0eXBlLgorICogQHN0YWJsZSBJ
Q1UgMi4wCisgKi8KK3R5cGVkZWYgc3RydWN0IFVEYXRhTWVtb3J5IFVEYXRhTWVtb3J5OworCisv
KioKKyAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB1ZGF0YV9vcGVuQ2hvaWNlKCkuCisgKiBAcGFy
YW0gY29udGV4dCBwYXJhbWV0ZXIgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgp
PC9jb2RlPi4KKyAqIEBwYXJhbSB0eXBlIFRoZSB0eXBlIG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBp
bnRvIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiAgICAgICAgICAgICBJdCBt
YXkgYmUgPGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUg
ZGF0YSBhcyBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICog
QHBhcmFtIHBJbmZvIEEgcG9pbnRlciB0byB0aGUgPGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1
Y3R1cmUKKyAqICAgICAgICAgICAgICBvZiBkYXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVkIGFuZCB3
aWxsIGJlIHJldHVybmVkCisgKiAgICAgICAgICAgICAgYnkgPGNvZGU+dWRhdGFfb3BlbkNob2lj
ZSgpPC9jb2RlPiBpZiB0aGlzIGZ1bmN0aW9uCisgKiAgICAgICAgICAgICAgcmV0dXJucyA8Y29k
ZT5UUlVFPC9jb2RlPi4KKyAqIEByZXR1cm4gVFJVRSBpZiB0aGUgY3VycmVudCBkYXRhIG1lbW9y
eSBpcyBhY2NlcHRhYmxlCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBVQm9vbCBV
X0NBTExDT05WCitVRGF0YU1lbW9yeUlzQWNjZXB0YWJsZSh2b2lkICpjb250ZXh0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVEYXRhSW5mbyAqcEluZm8pOworCisKKy8qKgor
ICogQ29udmVuaWVuY2UgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIHdvcmtzIHRoZSBzYW1l
IGFzIDxjb2RlPnVkYXRhX29wZW5DaG9pY2U8L2NvZGU+CisgKiBleGNlcHQgdGhhdCBhbnkgZGF0
YSB0aGF0IG1hdGNoZXMgdGhlIHR5cGUgYW5kIG5hbWUKKyAqIGlzIGFzc3VtZWQgdG8gYmUgYWNj
ZXB0YWJsZS4KKyAqIEBwYXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0ZSBwYXRoIGFuZC9v
ciBhIGJhc2VuYW1lIGZvciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcgb2YgdGhlIGRhdGEg
aW4gdGhlIGZpbGUgc3lzdGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVMTDwvY29kZT4gZm9y
IElDVSBkYXRhLgorICogQHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHR5
cGUgb2YgZGF0YSB0byBiZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3IgZXhhbXBsZSwgcmVz
b3VyY2UgYnVuZGxlcyBhcmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAqICAgICAgICAgICAg
IGNvbnZlcnNpb24gdGFibGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAgICAgICAgIFRoaXMg
bWF5IGJlIDxjb2RlPk5VTEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFtIG5hbWUgQSBzdHJp
bmcgdGhhdCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBAcGFyYW0gcEVycm9y
Q29kZSBBbiBJQ1UgVUVycm9yQ29kZSBwYXJhbWV0ZXIuIEl0IG11c3Qgbm90IGJlIDxjb2RlPk5V
TEw8L2NvZGU+LgorICogQHJldHVybiBBIHBvaW50ZXIgKGhhbmRsZSkgdG8gYSBkYXRhIG1lbW9y
eSBvYmplY3QsIG9yIDxjb2RlPk5VTEw8L2NvZGU+CisgKiAgICAgICAgIGlmIGFuIGVycm9yIG9j
Y3Vycy4gQ2FsbCA8Y29kZT51ZGF0YV9nZXRNZW1vcnkoKTwvY29kZT4KKyAqICAgICAgICAgdG8g
Z2V0IGEgcG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEuCisgKgorICogQHNlZSB1ZGF0YV9vcGVu
Q2hvaWNlCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgVURhdGFNZW1vcnkgKiBV
X0VYUE9SVDIKK3VkYXRhX29wZW4oY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqdHlwZSwg
Y29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisK
Ky8qKgorICogRGF0YSBsb2FkaW5nIGZ1bmN0aW9uLgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2Vk
IHRvIGZpbmQgYW5kIGxvYWQgZWZmaWNpZW50bHkgZGF0YSBmb3IKKyAqIElDVSBhbmQgYXBwbGlj
YXRpb25zIHVzaW5nIElDVS4KKyAqIEl0IHByb3ZpZGVzIGFuIGFic3RyYWN0IGludGVyZmFjZSB0
aGF0IGFsbG93cyB0byBzcGVjaWZ5IGEgZGF0YQorICogdHlwZSBhbmQgbmFtZSB0byBmaW5kIGFu
ZCBsb2FkIHRoZSBkYXRhLgorICoKKyAqIDxwPlRoZSBpbXBsZW1lbnRhdGlvbiBkZXBlbmRzIG9u
IHBsYXRmb3JtIHByb3BlcnRpZXMgYW5kIHVzZXIgcHJlZmVyZW5jZXMKKyAqIGFuZCBtYXkgaW52
b2x2ZSBsb2FkaW5nIHNoYXJlZCBsaWJyYXJpZXMgKERMTHMpLCBtYXBwaW5nCisgKiBmaWxlcyBp
bnRvIG1lbW9yeSwgb3IgZm9wZW4oKS9mcmVhZCgpIGZpbGVzLgorICogSXQgbWF5IGFsc28gaW52
b2x2ZSB1c2luZyBzdGF0aWMgbWVtb3J5IG9yIGRhdGFiYXNlIHF1ZXJpZXMgZXRjLgorICogU2V2
ZXJhbCBvciBhbGwgZGF0YSBpdGVtcyBtYXkgYmUgY29tYmluZWQgaW50byBvbmUgZW50aXR5Cisg
KiAoRExMLCBtZW1vcnktbWFwcGFibGUgZmlsZSkuPC9wPgorICoKKyAqIDxwPlRoZSBkYXRhIGlz
IGFsd2F5cyBwcmVjZWRlZCBieSBhIGhlYWRlciB0aGF0IGluY2x1ZGVzCisgKiBhIDxjb2RlPlVE
YXRhSW5mbzwvY29kZT4gc3RydWN0dXJlLgorICogVGhlIGNhbGxlcidzIDxjb2RlPmlzQWNjZXB0
YWJsZSgpPC9jb2RlPiBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gbWFrZQorICogc3VyZSB0aGF0IHRo
ZSBkYXRhIGlzIHVzZWZ1bC4gSXQgbWF5IGJlIGNhbGxlZCBzZXZlcmFsIHRpbWVzIGlmIGl0Cisg
KiByZWplY3RzIHRoZSBkYXRhIGFuZCB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGxvY2F0aW9uIHdp
dGggZGF0YQorICogbWF0Y2hpbmcgdGhlIHR5cGUgYW5kIG5hbWUuPC9wPgorICoKKyAqIDxwPklm
IDxjb2RlPnBhdGg9PU5VTEw8L2NvZGU+LCB0aGVuIElDVSBkYXRhIGlzIGxvYWRlZC4KKyAqIE90
aGVyd2lzZSwgaXQgaXMgc2VwYXJhdGVkIGludG8gYSBiYXNlbmFtZSBhbmQgYSBiYXNlbmFtZS1s
ZXNzIGRpcmVjdG9yeSBzdHJpbmcuCisgKiBUaGUgYmFzZW5hbWUgaXMgdXNlZCBhcyB0aGUgZGF0
YSBwYWNrYWdlIG5hbWUsIGFuZCB0aGUgZGlyZWN0b3J5IGlzCisgKiBsb2dpY2FsbHkgcHJlcGVu
ZGVkIHRvIHRoZSBJQ1UgZGF0YSBkaXJlY3Rvcnkgc3RyaW5nLjwvcD4KKyAqCisgKiA8cD5Gb3Ig
ZGV0YWlscyBhYm91dCBJQ1UgZGF0YSBsb2FkaW5nIHNlZSB0aGUgVXNlciBHdWlkZQorICogRGF0
YSBNYW5hZ2VtZW50IGNoYXB0ZXIuIChodHRwOi8vaWN1LXByb2plY3Qub3JnL3VzZXJndWlkZS9p
Y3VkYXRhLmh0bWwpPC9wPgorICoKKyAqIEBwYXJhbSBwYXRoIFNwZWNpZmllcyBhbiBhYnNvbHV0
ZSBwYXRoIGFuZC9vciBhIGJhc2VuYW1lIGZvciB0aGUKKyAqICAgICAgICAgICAgIGZpbmRpbmcg
b2YgdGhlIGRhdGEgaW4gdGhlIGZpbGUgc3lzdGVtLgorICogICAgICAgICAgICAgPGNvZGU+TlVM
TDwvY29kZT4gZm9yIElDVSBkYXRhLgorICogQHBhcmFtIHR5cGUgQSBzdHJpbmcgdGhhdCBzcGVj
aWZpZXMgdGhlIHR5cGUgb2YgZGF0YSB0byBiZSBsb2FkZWQuCisgKiAgICAgICAgICAgICBGb3Ig
ZXhhbXBsZSwgcmVzb3VyY2UgYnVuZGxlcyBhcmUgbG9hZGVkIHdpdGggdHlwZSAicmVzIiwKKyAq
ICAgICAgICAgICAgIGNvbnZlcnNpb24gdGFibGVzIHdpdGggdHlwZSAiY252Ii4KKyAqICAgICAg
ICAgICAgIFRoaXMgbWF5IGJlIDxjb2RlPk5VTEw8L2NvZGU+IG9yIGVtcHR5LgorICogQHBhcmFt
IG5hbWUgQSBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIGRhdGEuCisgKiBA
cGFyYW0gaXNBY2NlcHRhYmxlIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIHZlcmlmeSB0aGF0
IGxvYWRlZCBkYXRhCisgKiAgICAgICAgICAgICAgICAgICAgIGlzIHVzZWZ1bCBmb3IgdGhlIGNs
aWVudCBjb2RlLiBJZiBpdCByZXR1cm5zIEZBTFNFCisgKiAgICAgICAgICAgICAgICAgICAgIGZv
ciBhbGwgZGF0YSBpdGVtcywgdGhlbiA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+Cisg
KiAgICAgICAgICAgICAgICAgICAgIHdpbGwgcmV0dXJuIHdpdGggYW4gZXJyb3IuCisgKiBAcGFy
YW0gY29udGV4dCBBcmJpdHJhcnkgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCBpbnRvIGlzQWNjZXB0
YWJsZS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIEFuIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4g
SXQgbXVzdCBub3QgYmUgPGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAo
aGFuZGxlKSB0byBhIGRhdGEgbWVtb3J5IG9iamVjdCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAq
ICAgICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzLiBDYWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgp
PC9jb2RlPgorICogICAgICAgICB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4K
KyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JU
MgordWRhdGFfb3BlbkNob2ljZShjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBj
b25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICBVRGF0YU1lbW9yeUlzQWNjZXB0YWJs
ZSAqaXNBY2NlcHRhYmxlLCB2b2lkICpjb250ZXh0LAorICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBDbG9zZSB0aGUgZGF0YSBtZW1vcnkuCisgKiBU
aGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHRvIGFsbG93IHRoZSBzeXN0ZW0gdG8KKyAqIHJl
bGVhc2UgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRhdGEgbWVtb3J5LgorICogQHBh
cmFtIHBEYXRhIFRoZSBwb2ludGVyIHRvIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHN0YWJsZSBJ
Q1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9jbG9zZShVRGF0YU1l
bW9yeSAqcERhdGEpOworCisjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0Vf
QkVHSU4KKworLyoqCisgKiBcY2xhc3MgTG9jYWxVRGF0YU1lbW9yeVBvaW50ZXIKKyAqICJTbWFy
dCBwb2ludGVyIiBjbGFzcywgY2xvc2VzIGEgVURhdGFNZW1vcnkgdmlhIHVkYXRhX2Nsb3NlKCku
CisgKiBGb3IgbW9zdCBtZXRob2RzIHNlZSB0aGUgTG9jYWxQb2ludGVyQmFzZSBiYXNlIGNsYXNz
LgorICoKKyAqIEBzZWUgTG9jYWxQb2ludGVyQmFzZQorICogQHNlZSBMb2NhbFBvaW50ZXIKKyAq
IEBzdGFibGUgSUNVIDQuNAorICovCitVX0RFRklORV9MT0NBTF9PUEVOX1BPSU5URVIoTG9jYWxV
RGF0YU1lbW9yeVBvaW50ZXIsIFVEYXRhTWVtb3J5LCB1ZGF0YV9jbG9zZSk7CisKK1VfTkFNRVNQ
QUNFX0VORAorCisjZW5kaWYKKworLyoqCisgKiBHZXQgdGhlIHBvaW50ZXIgdG8gdGhlIGFjdHVh
bCBkYXRhIGluc2lkZSB0aGUgZGF0YSBtZW1vcnkuCisgKiBUaGUgZGF0YSBpcyByZWFkLW9ubHku
CisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFzdCA4LWFsaWduZWQsIGFuZCBzaG91bGQg
YmUgMTYtYWxpZ25lZC4KKyAqCisgKiBAcGFyYW0gcERhdGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBt
ZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgY29uc3Qgdm9p
ZCAqIFVfRVhQT1JUMgordWRhdGFfZ2V0TWVtb3J5KFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKy8q
KgorICogR2V0IHRoZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkYXRhIG1lbW9yeSBoZWFkZXIuCisg
KiBUaGlzIGFsbG93cyB0byBnZXQgYWNjZXNzIHRvIHRoZSBoZWFkZXIgY29udGFpbmluZworICog
cGxhdGZvcm0gZGF0YSBwcm9wZXJ0aWVzIGV0Yy4gd2hpY2ggaXMgbm90IHBhcnQgb2YKKyAqIHRo
ZSBkYXRhIGl0c2VsZiBhbmQgY2FuIHRoZXJlZm9yZSBub3QgYmUgYWNjZXNzZWQKKyAqIHZpYSB0
aGUgcG9pbnRlciB0aGF0IDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPiByZXR1cm5zLgor
ICoKKyAqIEBwYXJhbSBwRGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QKKyAq
IEBwYXJhbSBwSW5mbyBwb2ludGVyIHRvIGEgVURhdGFJbmZvIG9iamVjdDsKKyAqICAgICAgICAg
ICAgICBpdHMgPGNvZGU+c2l6ZTwvY29kZT4gZmllbGQgbXVzdCBiZSBzZXQgY29ycmVjdGx5LAor
ICogICAgICAgICAgICAgIHR5cGljYWxseSB0byA8Y29kZT5zaXplb2YoVURhdGFJbmZvKTwvY29k
ZT4uCisgKgorICogPGNvZGU+KnBJbmZvPC9jb2RlPiB3aWxsIGJlIGZpbGxlZCB3aXRoIHRoZSBV
RGF0YUluZm8gc3RydWN0dXJlCisgKiBpbiB0aGUgZGF0YSBtZW1vcnkgb2JqZWN0LiBJZiB0aGlz
IHN0cnVjdHVyZSBpcyBzbWFsbGVyIHRoYW4KKyAqIDxjb2RlPnBJbmZvLT5zaXplPC9jb2RlPiwg
dGhlbiB0aGUgPGNvZGU+c2l6ZTwvY29kZT4gd2lsbCBiZQorICogYWRqdXN0ZWQgYW5kIG9ubHkg
cGFydCBvZiB0aGUgc3RydWN0dXJlIHdpbGwgYmUgZmlsbGVkLgorICogQHN0YWJsZSBJQ1UgMi4w
CisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9nZXRJbmZvKFVEYXRhTWVtb3J5
ICpwRGF0YSwgVURhdGFJbmZvICpwSW5mbyk7CisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBh
c3NlcyB0aGUgbm9ybWFsIElDVSBkYXRhIGxvYWRpbmcgcHJvY2VzcyBhbmQKKyAqIGFsbG93cyB5
b3UgdG8gZm9yY2UgSUNVJ3Mgc3lzdGVtIGRhdGEgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNp
ZmllZAorICogYXJlYSBpbiBtZW1vcnkuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFz
dCA4LWFsaWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNl
cmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9pY3VkYXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlz
IGRhdGEgaXMgdGhhdCBvZiB0aGUgaWN1IGNvbW1vbiBkYXRhIGZpbGUsIGFzIGlzCisgKiBnZW5l
cmF0ZWQgYnkgdGhlIHBrZ2RhdGEgdG9vbCB3aXRoIG1vZGU9Y29tbW9uIG9yIG1vZGU9ZGxsLgor
ICogWW91IGNhbiByZWFkIGluIGEgd2hvbGUgY29tbW9uIG1vZGUgZmlsZSBhbmQgcGFzcyB0aGUg
YWRkcmVzcyB0byB0aGUgc3RhcnQgb2YgdGhlCisgKiBkYXRhLCBvciAod2l0aCB0aGUgYXBwcm9w
cmlhdGUgbGluayBvcHRpb25zKSBwYXNzIGluIHRoZSBwb2ludGVyIHRvCisgKiB0aGUgZGF0YSB0
aGF0IGhhcyBiZWVuIGxvYWRlZCBmcm9tIGEgZGxsIGJ5IHRoZSBvcGVyYXRpbmcgc3lzdGVtLAor
ICogYXMgc2hvd24gaW4gdGhpcyBjb2RlOgorICoKKyAqICAgICAgIGV4dGVybiBjb25zdCBjaGFy
IFVfSU1QT1JUIFVfSUNVREFUQV9FTlRSWV9QT0lOVCBbXTsKKyAqICAgICAgICAvLyBVX0lDVURB
VEFfRU5UUllfUE9JTlQgaXMgc2FtZSBhcyBlbnRyeSBwb2ludCBzcGVjaWZpZWQgdG8gcGtnZGF0
YSB0b29sCisgKiAgICAgICBVRXJyb3JDb2RlICBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgKgor
ICogICAgICAgdWRhdGFfc2V0Q29tbW9uRGF0YSgmVV9JQ1VEQVRBX0VOVFJZX1BPSU5ULCAmc3Rh
dHVzKTsKKyAqCisgKiBJdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgZGVjbGFyYXRpb24gYmUgYXMg
YWJvdmUuIFRoZSBlbnRyeSBwb2ludAorICogbXVzdCBub3QgYmUgZGVjbGFyZWQgYXMgYW4gZXh0
ZXJuIHZvaWQqLgorICoKKyAqIFN0YXJ0aW5nIHdpdGggSUNVIDQuNCwgaXQgaXMgcG9zc2libGUg
dG8gc2V0IHNldmVyYWwgZGF0YSBwYWNrYWdlcywKKyAqIG9uZSBwZXIgY2FsbCB0byB0aGlzIGZ1
bmN0aW9uLgorICogdWRhdGFfb3BlbigpIHdpbGwgbG9vayBmb3IgZGF0YSBpbiB0aGUgbXVsdGlw
bGUgZGF0YSBwYWNrYWdlcyBpbiB0aGUgb3JkZXIKKyAqIGluIHdoaWNoIHRoZXkgd2VyZSBzZXQu
CisgKiBUaGUgcG9zaXRpb24gb2YgdGhlIGxpbmtlZC1pbiBvciBkZWZhdWx0LW5hbWUgSUNVIC5k
YXRhIHBhY2thZ2UgaW4gdGhlCisgKiBzZWFyY2ggbGlzdCBkZXBlbmRzIG9uIHdoZW4gdGhlIGZp
cnN0IGRhdGEgaXRlbSBpcyBsb2FkZWQgdGhhdCBpcyBub3QgY29udGFpbmVkCisgKiBpbiB0aGUg
YWxyZWFkeSBleHBsaWNpdGx5IHNldCBwYWNrYWdlcy4KKyAqIElmIGRhdGEgd2FzIGxvYWRlZCBp
bXBsaWNpdGx5IGJlZm9yZSB0aGUgZmlyc3QgY2FsbCB0byB0aGlzIGZ1bmN0aW9uCisgKiAoZm9y
IGV4YW1wbGUsIHZpYSBvcGVuaW5nIGEgY29udmVydGVyLCBjb25zdHJ1Y3RpbmcgYSBVbmljb2Rl
U3RyaW5nCisgKiBmcm9tIGRlZmF1bHQtY29kZXBhZ2UgZGF0YSwgdXNpbmcgZm9ybWF0dGluZyBv
ciBjb2xsYXRpb24gQVBJcywgZXRjLiksCisgKiB0aGVuIHRoZSBkZWZhdWx0IGRhdGEgd2lsbCBi
ZSBmaXJzdCBpbiB0aGUgbGlzdC4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGhhcyBubyBlZmZlY3Qg
b24gYXBwbGljYXRpb24gKG5vbiBJQ1UpIGRhdGEuICBTZWUgdWRhdGFfc2V0QXBwRGF0YSgpCisg
KiBmb3Igc2ltaWxhciBmdW5jdGlvbmFsaXR5IGZvciBhcHBsaWNhdGlvbiBkYXRhLgorICoKKyAq
IEBwYXJhbSBkYXRhIHBvaW50ZXIgdG8gSUNVIGNvbW1vbiBkYXRhCisgKiBAcGFyYW0gZXJyIG91
dGdvaW5nIGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9VTlNV
UFBPUlRFRF9FUlJPUjwvY29kZT4KKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2
b2lkIFVfRVhQT1JUMgordWRhdGFfc2V0Q29tbW9uRGF0YShjb25zdCB2b2lkICpkYXRhLCBVRXJy
b3JDb2RlICplcnIpOworCisKKy8qKgorICogVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgbm9y
bWFsIElDVSBkYXRhIGxvYWRpbmcgcHJvY2VzcyBmb3IgYXBwbGljYXRpb24tc3BlY2lmaWMKKyAq
IGRhdGEgYW5kIGFsbG93cyB5b3UgdG8gZm9yY2UgdGhlIGl0IHRvIGNvbWUgb3V0IG9mIGEgdXNl
ci1zcGVjaWZpZWQKKyAqIHBvaW50ZXIuCisgKgorICogSUNVIGRhdGEgbXVzdCBiZSBhdCBsZWFz
dCA4LWFsaWduZWQsIGFuZCBzaG91bGQgYmUgMTYtYWxpZ25lZC4KKyAqIFNlZSBodHRwOi8vdXNl
cmd1aWRlLmljdS1wcm9qZWN0Lm9yZy9pY3VkYXRhCisgKgorICogVGhlIGZvcm1hdCBvZiB0aGlz
IGRhdGEgaXMgdGhhdCBvZiB0aGUgaWN1IGNvbW1vbiBkYXRhIGZpbGUsIGxpa2UgJ2ljdWR0MjZs
LmRhdCcKKyAqIG9yIHRoZSBjb3JyZXNwb25kaW5nIHNoYXJlZCBsaWJyYXJ5IChETEwpIGZpbGUu
CisgKiBUaGUgYXBwbGljYXRpb24gbXVzdCByZWFkIGluIG9yIG90aGVyd2lzZSBjb25zdHJ1Y3Qg
YW4gaW1hZ2Ugb2YgdGhlIGRhdGEgYW5kIHRoZW4KKyAqIHBhc3MgdGhlIGFkZHJlc3Mgb2YgaXQg
dG8gdGhpcyBmdW5jdGlvbi4KKyAqCisgKgorICogV2FybmluZzogIHNldEFwcERhdGEgd2lsbCBz
ZXQgYSBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBjb2RlIGlmCisgKiAgICAgICAgICAgZGF0YSB3
aXRoIHRoZSBzcGVjaWZlZCBwYXRoIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBvcGVuZWQsIG9yCisg
KiAgICAgICAgICAgaWYgc2V0QXBwRGF0YSB3aXRoIHRoZSBzYW1lIHBhdGggaGFzIGFscmVhZHkg
YmVlbiBjYWxsZWQuCisgKiAgICAgICAgICAgQW55IHN1Y2ggY2FsbHMgdG8gc2V0QXBwRGF0YSB3
aWxsIGhhdmUgbm8gZWZmZWN0LgorICoKKyAqCisgKiBAcGFyYW0gcGFja2FnZU5hbWUgdGhlIHBh
Y2thZ2UgbmFtZSBieSB3aGljaCB0aGUgYXBwbGljYXRpb24gd2lsbCByZWZlcgorICogICAgICAg
ICAgICAgdG8gKG9wZW4pIHRoaXMgZGF0YQorICogQHBhcmFtIGRhdGEgcG9pbnRlciB0byB0aGUg
ZGF0YQorICogQHBhcmFtIGVyciBvdXRnb2luZyBlcnJvciBzdGF0dXMgPGNvZGU+VV9VU0lOR19E
RUZBVUxUX1dBUk5JTkcsIFVfVU5TVVBQT1JURURfRVJST1I8L2NvZGU+CisgKiBAc2VlIHVkYXRh
X3NldENvbW1vbkRhdGEKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVf
RVhQT1JUMgordWRhdGFfc2V0QXBwRGF0YShjb25zdCBjaGFyICpwYWNrYWdlTmFtZSwgY29uc3Qg
dm9pZCAqZGF0YSwgVUVycm9yQ29kZSAqZXJyKTsKKworLyoqCisgKiBQb3NzaWJsZSBzZXR0aW5n
cyBmb3IgdWRhdGFfc2V0RmlsZUFjY2VzcygpCisgKiBAc2VlIHVkYXRhX3NldEZpbGVBY2Nlc3MK
KyAqIEBzdGFibGUgSUNVIDMuNAorICovCit0eXBlZGVmIGVudW0gVURhdGFGaWxlQWNjZXNzIHsK
KyAgICAvKiogSUNVIGxvb2tzIGZvciBkYXRhIGluIHNpbmdsZSBmaWxlcyBmaXJzdCwgdGhlbiBp
biBwYWNrYWdlcy4gKGRlZmF1bHQpIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX0ZJTEVT
X0ZJUlNULAorICAgIC8qKiBBbiBhbGlhcyBmb3IgdGhlIGRlZmF1bHQgYWNjZXNzIG1vZGUuIEBz
dGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX0RFRkFVTFRfQUNDRVNTID0gVURBVEFfRklMRVNf
RklSU1QsCisgICAgLyoqIElDVSBvbmx5IGxvYWRzIGRhdGEgZnJvbSBwYWNrYWdlcywgbm90IGZy
b20gc2luZ2xlIGZpbGVzLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9PTkxZX1BBQ0tB
R0VTLAorICAgIC8qKiBJQ1UgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzIGZpcnN0LCBhbmQgb25s
eSBmcm9tIHNpbmdsZSBmaWxlcworICAgICAgICBpZiB0aGUgZGF0YSBjYW5ub3QgYmUgZm91bmQg
aW4gYSBwYWNrYWdlLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9QQUNLQUdFU19GSVJT
VCwKKyAgICAvKiogSUNVIGRvZXMgbm90IGFjY2VzcyB0aGUgZmlsZSBzeXN0ZW0gZm9yIGRhdGEg
bG9hZGluZy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfTk9fRklMRVMsCisgICAgLyoq
IE51bWJlciBvZiByZWFsIFVEYXRhRmlsZUFjY2VzcyB2YWx1ZXMuIEBzdGFibGUgSUNVIDMuNCAq
LworICAgIFVEQVRBX0ZJTEVfQUNDRVNTX0NPVU5UCit9IFVEYXRhRmlsZUFjY2VzczsKKworLyoq
CisgKiBUaGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgdG8gY29udHJvbCBob3cgSUNVIGxvYWRz
IGRhdGEuIEl0IG11c3QgYmUgY2FsbGVkCisgKiBiZWZvcmUgYW55IElDVSBkYXRhIGlzIGxvYWRl
ZCwgaW5jbHVkaW5nIGFwcGxpY2F0aW9uIGRhdGEgbG9hZGVkIHdpdGggCisgKiB1cmVzL1Jlc291
cmNlQnVuZGxlIG9yIHVkYXRhIEFQSXMuIFRoaXMgZnVuY3Rpb24gaXMgbm90IG11bHRpdGhyZWFk
IHNhZmUuICAKKyAqIFRoZSByZXN1bHRzIG9mIGNhbGxpbmcgaXQgd2hpbGUgb3RoZXIgdGhyZWFk
cyBhcmUgbG9hZGluZyBkYXRhIGFyZSB1bmRlZmluZWQuCisgKiBAcGFyYW0gYWNjZXNzIFRoZSB0
eXBlIG9mIGZpbGUgYWNjZXNzIHRvIGJlIHVzZWQKKyAqIEBwYXJhbSBzdGF0dXMgRXJyb3IgY29k
ZS4KKyAqIEBzZWUgVURhdGFGaWxlQWNjZXNzCisgKiBAc3RhYmxlIElDVSAzLjQgCisgKi8KK1Vf
U1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEYXRhRmlsZUFjY2Vz
cyBhY2Nlc3MsIFVFcnJvckNvZGUgKnN0YXR1cyk7CisKK1VfQ0RFQ0xfRU5ECisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91bWlzYy5oIGIvU291cmNlL1dURi9p
Y3UvdW5pY29kZS91bWlzYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4NTQ1MWZjNzY3YzA1ODM1ZjZjMTVmNTY2
ZjM1NjJlMmQ0YWY4MzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3VtaXNjLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBDb3B5cmln
aHQgKEMpIDE5OTktMjAwNiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENv
cnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorKiAgIGZpbGUgbmFtZTogIHVtaXNjLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAg
IHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVh
dGVkIG9uOiAxOTk5b2N0MTUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8K
KworI2lmbmRlZiBVTUlTQ19ICisjZGVmaW5lIFVNSVNDX0gKKworI2luY2x1ZGUgInVuaWNvZGUv
dXR5cGVzLmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiAgQyBBUEk6bWlzYyBkZWZpbml0
aW9ucyAKKyAqCisgKiAgVGhpcyBmaWxlIGNvbnRhaW5zIG1pc2NlbGxhbmVvdXMgZGVmaW5pdGlv
bnMgZm9yIHRoZSBDIEFQSXMuIAorICovCisKK1VfQ0RFQ0xfQkVHSU4KKworLyoqIEEgc3RydWN0
IHJlcHJlc2VudGluZyBhIHJhbmdlIG9mIHRleHQgY29udGFpbmluZyBhIHNwZWNpZmljIGZpZWxk
IAorICogIEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIHN0cnVjdCBVRmllbGRQb3NpdGlv
biB7CisgIC8qKgorICAgKiBUaGUgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgaW50MzJfdCBmaWVsZDsKKyAgLyoqCisgICAqIFRoZSBzdGFydCBvZiB0aGUgdGV4dCByYW5n
ZSBjb250YWluaW5nIGZpZWxkIAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMy
X3QgYmVnaW5JbmRleDsKKyAgLyoqIAorICAgKiBUaGUgbGltaXQgb2YgdGhlIHRleHQgcmFuZ2Ug
Y29udGFpbmluZyBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90
IGVuZEluZGV4OworfSBVRmllbGRQb3NpdGlvbjsKKworI2lmICFVQ09ORklHX05PX1NFUlZJQ0UK
Ky8qKgorICogT3BhcXVlIHR5cGUgcmV0dXJuZWQgYnkgcmVnaXN0ZXJJbnN0YW5jZSwgcmVnaXN0
ZXJGYWN0b3J5IGFuZCB1bnJlZ2lzdGVyIGZvciBzZXJ2aWNlIHJlZ2lzdHJhdGlvbi4KKyAqIEBz
dGFibGUgSUNVIDIuNgorICovCit0eXBlZGVmIGNvbnN0IHZvaWQqIFVSZWdpc3RyeUtleTsKKyNl
bmRpZgorCitVX0NERUNMX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggZTM0
ZDM3ZjkzNmVjZjNiODI3MTAyMzAwMTcxN2Q5OGQ3YzM3M2Y0OC4uYWQ0YWNlY2I3ZGRkZGE4N2Jm
MDI3ZDlkYWExYmEzY2M3YjAxNjEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTI5NCw2ICsy
OTQsNDIgQEAgaWYgKE5PVCBVU0VfU1lTVEVNX01BTExPQykKICAgICBsaXN0KEFQUEVORCBXVEZf
TElCUkFSSUVTIGJtYWxsb2MpCiBlbmRpZiAoKQogCitzZXQoV1RGX0JSRUFLSU5HX1JVTEVTX1NP
VVJDRVMKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50
eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pL
LnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VO
b25DSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b25DSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxOb25DSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3RDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CispCisKK21hY3JvKEdFTkVSQVRFX0JSRUFLSU5H
X1JVTEVTIF9pbnB1dCBfc3ltYm9sTmFtZSBfb3V0cHV0KQorICAgIGFkZF9jdXN0b21fY29tbWFu
ZCgKKyAgICAgICAgT1VUUFVUICR7X291dHB1dH0KKyAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7
V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmlu
Z3MucHkKKyAgICAgICAgREVQRU5EUyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICR7X2lucHV0fSAke0NN
QUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yRXBpbG9ndWUudHh0CisgICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtX
VEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5n
cy5weSAtaW5jbHVkZURlZmluZXMgJHtfc3ltYm9sTmFtZX1SdWxlcyAke0NNQUtFX0NVUlJFTlRf
U09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUu
dHh0ICR7X2lucHV0fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ID4gJHtfb3V0cHV0fQorICAgICAgICBW
RVJCQVRJTSkKKyAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke19vdXRwdXR9KQorICAgIEFE
RF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7X2lucHV0fSAke19vdXRwdXR9KQorZW5kbWFjcm8oKQor
Citmb3JlYWNoIChfZmlsZSAke1dURl9CUkVBS0lOR19SVUxFU19TT1VSQ0VTfSkKKyAgICBnZXRf
ZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCisgICAgR0VORVJBVEVf
QlJFQUtJTkdfUlVMRVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7X2ZpbGV9ICR7X25h
bWV9ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvJHtfbmFtZX0uY3Bw
KQorZW5kZm9yZWFjaCAoKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVS
SVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcAorICAgIE1BSU5fREVQRU5ERU5DWSAke1dURl9ESVJ9L3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CisgICAgREVQRU5EUyAke0NN
QUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy50eHQKKyAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RG
X0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3Mu
cHkgLWluY2x1ZGVEZWZpbmVzIGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy50eHQgPiAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAKKyAgICBWRVJCQVRJTSkKK2xpc3QoQVBQRU5E
IFdURl9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCkKK0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7
Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLnR4dCAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1
bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHApCisKIGxpc3QoQVBQRU5EIFdURl9T
T1VSQ0VTCiAgICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCiApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dURi93dGYvRGVyaXZl
ZFNvdXJjZXMubWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjUzMmRmMjdiMzdmOTdiZTc1MGZlY2RhOWYyN2Jl
N2E5ODg1ZmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMCwwICsxLDgzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMg
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCitCUkVBS0lOR19SVUxFU19GSUxFUyA9IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3RDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSksuYnJrCisKK0JSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TID0g
XAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBcCisg
ICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIFwKKyAgICBCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgXAorICAgIEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgXAorICAgIEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAKKworaWZl
cSAoJChzaGVsbCAkKENDKSAtc3RkPWdudSsrMTEgLXggYysrIC1FIC1QIC1kTSAkKFNES19GTEFH
UykgJChGUkFNRVdPUktfRkxBR1MpICQoSEVBREVSX0ZMQUdTKSAtSSAkKFdURikgLWluY2x1ZGUg
IiQoV1RGKS93dGYvUGxhdGZvcm0uaCIgL2Rldi9udWxsIHwgZ3JlcCAnIFdURl9QTEFURk9STV9J
T1MgJyB8IGN1dCAtZCcgJyAtZjMpLCAxKQorICAgIFdURl9QTEFURk9STV9JT1MgPSAxCitlbHNl
CisgICAgV1RGX1BMQVRGT1JNX0lPUyA9IDAKK2VuZGlmCisKK2lmZXEgKCQoV1RGX1BMQVRGT1JN
X0lPUyksIDEpCisJQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQg
PSAwCisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyA9IDAKK2Vsc2UKKwlBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVOVCA9ICQoQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUKQorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAxCitlbmRpZgorCitERVBFTkRFTkNJ
RVMgPSAkKEJSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TKQorCitpZmVxICgkKE9TKSxNQUNPUykK
K2lmZXEgKCQoSEFWRV9JQ1VHRU5CUkspLCAxKQorREVQRU5ERU5DSUVTICs9ICQoQlJFQUtJTkdf
UlVMRVNfRklMRVMpCitlbmRpZgorZW5kaWYKKworYWxsIDogJChERVBFTkRFTkNJRVMpCisKK0Jy
ZWFraW5nUnVsZXMvJS5icmsgOiBCcmVha2luZ1J1bGVzLyUucHAKKwlpY3VnZW5icmsgLWMgLXIg
JDwgLW8gJEAKKworQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
IDogQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMucHAKKwlweXRob24g
JChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdz
LnB5IGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3IlLmNwcCA6IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3Il
LnBwCisJcHl0aG9uICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtp
bmdSdWxlU3RyaW5ncy5weSBsaW5lQnJlYWtJdGVyYXRvciQqUnVsZXMgJDwgPiAkQAorCitCcmVh
a2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcCA6ICQoV1RGKS93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKwktdW5pZmRl
ZiAtREFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9G
T1JfQ1VSU09SX01PVkVNRU5UKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZFX0VY
VFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQCAkPAorCitCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yJS5wcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yUHJvbG9ndWUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yJS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JFcGlsb2d1ZS50eHQKKwktY2F0ICQ/IHwgdW5pZmRlZiAtREFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCkgLURIQVZFX0VYVFJBX0lDVV9OQU1FRF9T
RVRTPSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUykgLW8gJEAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
dHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU5MTBiZmE1ZTBlNjMzZGJkNzI1OTNhYzFmMzMw
YWYzZWU0M2RkZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0CkBAIC0wLDAgKzEsMTc0IEBA
CisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFRoaXMgcnVsZSBzZXQg
aXMgYmFzZWQgb24gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NworIyA8
aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2Ut
NTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KKyMgVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20g
dGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBiZWxvdzoKKyMgKiBSZXBsYWNlZCAnW1xwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBTcGFjaW5nTWFya31dJyB3aXRoICdbXHB7R2VuZXJhbF9D
YXRlZ29yeSA9IFNwYWNpbmcgTWFya30gLSAkRXh0ZW5kXScgZm9yIElDVSAzLjggb3IgZWFybGll
cjsKKyMgKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBh
ZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7CisjICogQWRkZWQgcnVsZXMgdGhh
dCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRp
YyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7CisjICogQWRkZWQgcnVs
ZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGJlZm9yZSBKYXBhbmVzZSBoYWxm
LXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJrcy4KKyMgKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9u
YWwgaW5kaWNhdG9yIHN5bWJvbHMuCisKKyRDUiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJf
QnJlYWsgPSBDUn1dOworJExGICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExG
fV07CiskQ29udHJvbCA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOwor
JFZvaWNlTWFya3MgPSBbXHVGRjlFXHVGRjlGXTsgIyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFr
YW5hIHZvaWNlZCBtYXJrcworJEV4dGVuZCAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXHUwRTMwIFx1MEUzMiBcdTBFNDUgXHUwRUIwIFx1MEVC
Ml1dOworJFNwYWNpbmdNYXJrID0gW1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJr
fV0gLSAkRXh0ZW5kXTsKKyRMICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBM
fV07CiskViAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOworJFQgICAg
ICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFR9XTsKKyRMViAgICAgID0gW1xwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOworJExWVCAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IExWVH1dOworJEhpbjAgICAgPSBbXHUwOTA1LVx1MDkzOV07ICMgRGV2YW5h
Z2FyaSBMZXR0ZXIgQSwuLi4sSGEKKyRIaW5WICAgID0gXHUwOTREOyAjIERldmFuYWdhcmkgU2ln
biBWaXJhbWEKKyRIaW4xICAgID0gW1x1MDkxNS1cdTA5MzldOyAjIERldmFuYWdhcmkgTGV0dGVy
IEthLC4uLixIYQorJEJlbjAgICAgPSBbXHUwOTg1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIg
QSwuLi4sSGEKKyRCZW5WICAgID0gXHUwOUNEOyAjIEJlbmdhbGkgU2lnbiBWaXJhbWEKKyRCZW4x
ICAgID0gW1x1MDk5NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVyIEthLC4uLixIYQorJFBhbjAg
ICAgPSBbXHUwQTA1LVx1MEEzOV07ICMgR3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCiskUGFuViAg
ICA9IFx1MEE0RDsgIyBHdXJtdWtoaSBTaWduIFZpcmFtYQorJFBhbjEgICAgPSBbXHUwQTE1LVx1
MEEzOV07ICMgR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQorJEd1ajAgICAgPSBbXHUwQTg1LVx1
MEFCOV07ICMgR3VqYXJhdGkgTGV0dGVyIEEsLi4uLEhhCiskR3VqViAgICA9IFx1MEFDRDsgIyBH
dWphcmF0aSBTaWduIFZpcmFtYQorJEd1ajEgICAgPSBbXHUwQTk1LVx1MEFCOV07ICMgR3VqYXJh
dGkgTGV0dGVyIEthLC4uLixIYQorJE9yaTAgICAgPSBbXHUwQjA1LVx1MEIzOV07ICMgT3JpeWEg
TGV0dGVyIEEsLi4uLEhhCiskT3JpViAgICA9IFx1MEI0RDsgIyBPcml5YSBTaWduIFZpcmFtYQor
JE9yaTEgICAgPSBbXHUwQjE1LVx1MEIzOV07ICMgT3JpeWEgTGV0dGVyIEthLC4uLixIYQorJFRl
bDAgICAgPSBbXHUwQzA1LVx1MEMzOV07ICMgVGVsdWd1IExldHRlciBBLC4uLixIYQorJFRlbFYg
ICAgPSBcdTBDNEQ7ICMgVGVsdWd1IFNpZ24gVmlyYW1hCiskVGVsMSAgICA9IFtcdTBDMTQtXHUw
QzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEthLC4uLixIYQorJEthbjAgICAgPSBbXHUwQzg1LVx1MENC
OV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKKyRLYW5WICAgID0gXHUwQ0NEOyAjIEthbm5h
ZGEgU2lnbiBWaXJhbWEKKyRLYW4xICAgID0gW1x1MEM5NS1cdTBDQjldOyAjIEthbm5hZGEgTGV0
dGVyIEEsLi4uLEhhCiskTWFsMCAgICA9IFtcdTBEMDUtXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0
dGVyIEEsLi4uLEhhIAorJE1hbFYgICAgPSBcdTBENEQ7ICMgTWFsYXlhbGFtIFNpZ24gVmlyYW1h
CiskTWFsMSAgICA9IFtcdTBEMTUtXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhh
CiskUkkgICAgICA9IFtcVTAwMDFGMUU2LVxVMDAwMUYxRkZdOyAjIEVtb2ppIHJlZ2lvbmFsIGlu
ZGljYXRvcnMKKyRaV0ogICAgID0gXHUyMDBEOyAjIFplcm8gd2lkdGggam9pbmVyCiskRW1vamlW
YXIgPSBbXHVGRTBGXTsgIyBFbW9qaS1zdHlsZSB2YXJpYXRpb24gc2VsZWN0b3IKKworI2lmIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI2NDAgXHUy
NjQyIFx1MjZGOSBcdTI3NjQgXFUwMDAxRjMwOCBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAx
RjNDQS1cVTAwMDFGM0NDIFxVMDAwMUYzRjMgXFUwMDAxRjQ0MSBcVTAwMDFGNDY2LVxVMDAwMUY0
NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDZGIFxVMDAwMUY0NzEgXFUwMDAxRjQ3MyBcVTAwMDFGNDc3
IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MiBcVTAwMDFGNDg2LVxVMDAwMUY0ODcgXFUwMDAxRjQ4QiBc
VTAwMDFGNTc1IFxVMDAwMUY1RTggXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEIgXFUw
MDAxRjY0RC1cVTAwMDFGNjRFIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2XTsgIyBF
bW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2Rz
ID0gW1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1MjcwRCBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUw
MDAxRjNDNCBcVTAwMDFGM0NBIFxVMDAwMUYzQ0IgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAw
MUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFG
NDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4
NyBcVTAwMDFGNEFBIFxVMDAwMUY1NzUgXFUwMDAxRjU5MCBcVTAwMDFGNTk1IFxVMDAwMUY1OTYg
XFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxV
MDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwIFxVMDAwMUY5MThdIDsgIyBFbW9qaSB0aGF0
IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JTZXFz
ID0gW1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ4Ql07ICMgRW1vamkgdGhh
dCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2
MUQgXHUyNzBBLVx1MjcwQyBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFG
M0M3IFxVMDAwMUYzQ0EgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1
MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0Mg
XFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxV
MDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAw
MDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0
YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAw
MDFGM0ZCLVxVMDAwMUYzRkZdOyAjIEZpdHpwYXRyaWNrIG1vZGlmaWVycworISFjaGFpbjsKKwor
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgISFSSU5vQ2hhaW47CisKKyNlbmRp
ZgorCishIWZvcndhcmQ7CiskQ1IgJExGOworJEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsKKygk
TFYgfCAkVikgKCRWIHwgJFQpOworKCRMVlQgfCAkVCkgJFQ7CisKKyNpZiBBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQKKworICAgICRSSSAkUkkgJEV4dGVuZCogLyAkUkk7CisgICAgJFJJICRSSSAk
RXh0ZW5kKjsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7CisgICAgW14kQ29udHJv
bCAkQ1IgJExGXSAkU3BhY2luZ01hcms7CisKKyNlbHNlCisKKyAgICBbXiRDb250cm9sICRDUiAk
TEZdICRFeHRlbmQ7CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7CisgICAg
JFJJICRSSSAvICRSSTsKKyAgICAkUkkgJFJJOworCisjZW5kaWYKKworJEhpbjAgJEhpblYgJEhp
bjE7ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCiskQmVuMCAkQmVuViAkQmVuMTsgIyBC
ZW5nYWxpIFZpcmFtYSAoZm9yd2FyZCkKKyRQYW4wICRQYW5WICRQYW4xOyAjIEd1cm11a2hpIFZp
cmFtYSAoZm9yd2FyZCkKKyRHdWowICRHdWpWICRHdWoxOyAjIEd1amFyYXRpIFZpcmFtYSAoZm9y
d2FyZCkKKyRPcmkwICRPcmlWICRPcmkxOyAjIE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKKyRUZWww
ICRUZWxWICRUZWwxOyAjIFRlbHVndSBWaXJhbWEgKGZvcndhcmQpCiskS2FuMCAkS2FuViAkS2Fu
MTsgIyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKKyRNYWwwICRNYWxWICRNYWwxOyAjIE1hbGF5
YWxhbSBWaXJhbWEgKGZvcndhcmQpCiskWldKICRFbW9qaUZvclNlcXM7ICMgRG9udCBicmVhayBp
biBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9k
czsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFy
aWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKyEhcmV2ZXJzZTsKKyRM
RiAkQ1I7CisoJEwgfCAkViB8ICRMViB8ICRMVlQpICRMOworKCRWIHwgJFQpICgkTFYgfCAkVik7
CiskVCAoJExWVCB8ICRUKTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAg
JEV4dGVuZCogJFJJICRSSSAvICRFeHRlbmQqICRSSSAkUkk7CisgICAgJEV4dGVuZCogJFJJICRS
STsKKyAgICAkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkU3BhY2luZ01h
cmsgW14kQ29udHJvbCAkQ1IgJExGXTsKKworI2Vsc2UKKworICAgICRFeHRlbmQgICAgICBbXiRD
b250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOwor
ICAgICRSSSAkUkkgLyAkUkkgJFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMSAk
SGluViAkSGluMDsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCiskQmVuMSAkQmVuViAk
QmVuMDsgIyBCZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQpCiskUGFuMSAkUGFuViAkUGFuMDsgIyBH
dXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQorJEd1ajEgJEd1alYgJEd1ajA7ICMgR3VqYXJhdGkg
VmlyYW1hIChiYWNrd2FyZCkKKyRPcmkxICRPcmlWICRPcmkwOyAjIEd1amFyYXRpIFZpcmFtYSAo
YmFja3dhcmQpCiskVGVsMSAkVGVsViAkVGVsMDsgIyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkK
KyRLYW4xICRLYW5WICRLYW4wOyAjIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKKyRNYWwxICRN
YWxWICRNYWwwOyAjIE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3YXJkKQorJEVtb2ppRm9yU2VxcyAk
WldKOyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2ppTW9kcyAkRW1v
amlWYXI/ICRFbW9qaUZvck1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2pp
IChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlm
aWVyCisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICEhc2FmZV9yZXZlcnNl
OworICAgICRSSSAkUkkrOworICAgIFskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1v
ZHM7CisgICAgISFzYWZlX2ZvcndhcmQ7CisgICAgJFJJICRSSSs7CisgICAgJEVtb2ppRm9yTW9k
cyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsKKworI2Vsc2UKKworICAgIFskRW1vamlWYXIgJEVt
b2ppTW9kc10rICRFbW9qaUZvck1vZHM7CisgICAgJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRF
bW9qaU1vZHNdKzsKKyAgICAhIXNhZmVfcmV2ZXJzZTsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2Vu
ZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmIwNDc2
OWZjYTM5OGFjYzk5Nzg2OTJiNzc3MDY0MDVlZDA0OGE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5n
cy5weQpAQCAtMCwwICsxLDExMCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgc3lzCitpbXBvcnQgcmUKKwor
aGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisKKworZGVmIG1haW4oYXJndj1Ob25lKToKKyAgICBp
ZiBub3QgYXJndjoKKyAgICAgICAgYXJndiA9IHN5cy5hcmd2CisgICAgZmlsZU5hbWVTdGFydElu
ZGV4ID0gMQorCisgICAgaW5jbHVkZURlZmluZXMgPSBGYWxzZQorICAgIGlmIGFyZ3ZbZmlsZU5h
bWVTdGFydEluZGV4XSA9PSAiLWluY2x1ZGVEZWZpbmVzIjoKKyAgICAgICAgaW5jbHVkZURlZmlu
ZXMgPSBUcnVlCisgICAgICAgIGZpbGVOYW1lU3RhcnRJbmRleCA9IGZpbGVOYW1lU3RhcnRJbmRl
eCArIDEKKworICAgIHN5bWJvbE5hbWUgPSBhcmd2W2ZpbGVOYW1lU3RhcnRJbmRleF1bMF0ubG93
ZXIoKSArIGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4XVsxOl0KKyAgICBmaWxlTmFtZVN0YXJ0SW5k
ZXggPSBmaWxlTmFtZVN0YXJ0SW5kZXggKyAxCisgICAgZmlsZU5hbWVzID0gYXJndltmaWxlTmFt
ZVN0YXJ0SW5kZXg6XQorCisgICAgcHJpbnQoaGVhZGVyKQorICAgIHByaW50KCIiKQorICAgIHBy
aW50KCIvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJh
dGVkIGJ5IHRoZSBzY3JpcHQiKQorICAgIHByaW50KCIvLyBXVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkiKQorICAgIHByaW50KCIiKQorICAg
IHByaW50KCIjaW5jbHVkZSBcImNvbmZpZy5oXCIiKQorICAgIHByaW50KCIjaW5jbHVkZSA8dW5p
Y29kZS91dmVybnVtLmg+IikKKyAgICBwcmludCgiIikKKyAgICBpZiBpbmNsdWRlRGVmaW5lczoK
KyAgICAgICAgcHJpbnQoIiNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9S
TShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwKSkiKQorICAgICAgICBwcmludCgiI2RlZmluZSBIQVZFX0VYVFJBX0lDVV9O
QU1FRF9TRVRTICgoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJ
T05fTUlOT1JfTlVNID49IDkpKSIpCisgICAgICAgIHByaW50KCIiKQorICAgIHByaW50KCJuYW1l
c3BhY2UgV1RGIHsiKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCJjb25zdCBjaGFyKiAiICsg
c3ltYm9sTmFtZSArICIgPSAiKQorCisgICAgZm9yIGZpbGVOYW1lIGluIGZpbGVOYW1lczoKKyAg
ICAgICAgZm9yIGwgaW4gb3BlbihmaWxlTmFtZSwgJ3InKToKKyAgICAgICAgICAgIGxpbmUgPSBs
LnJzdHJpcCgpCisgICAgICAgICAgICBpZiByZS5tYXRjaCgiXlxzKiQiLCBsaW5lKToKKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyAiKToK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjIik6
CisgICAgICAgICAgICAgICAgcHJpbnQobGluZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgiXiguKik7KCAjIC4qKT8kIiwgbGluZSkKKyAgICAg
ICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gIlwiIiAr
IG1hdGNoLmdyb3VwKDEpLnJlcGxhY2UoIlxcIiwgIlxcXFwiKSArICI7XCIiCisgICAgICAgICAg
ICAgICAgICAgIGlmIG1hdGNoLmdyb3VwKDIpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIpWzM6XQorICAgICAgICAgICAgICAgICAgICBw
cmludChyZXN1bHQpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
ZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAgIHByaW50KCJ9IikKKworaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxv
Z3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTg1ZDNjMWE2ZWUyMTc2MmY2NGNhZDI5Zjdh
Y2VmNGIyOGEzZWFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0wLDAgKzEsMzcwIEBA
CisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQUkgPSBbOkxpbmVCcmVh
ayA9IEFtYmlndW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07CiskQkEg
PSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxpbmVC
cmVhayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJl
YWs6XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENCID0gWzpMaW5lQnJl
YWsgPSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0
dWF0aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1AgPSBb
OkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9IENh
cnJpYWdlX1JldHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRF
WF9TVUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJBX0lD
VV9OQU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsK
KworI2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNlbmRp
ZgorCiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsgPSBI
MjpdOworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJ
ZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElOID0gW1s6TGluZUJy
ZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGluZUJyZWFrID0gSW5m
aXhfTnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07CiskSlYg
PSBbOkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYgPSBb
OkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6
XTsKKyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAt
ICROU19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxpbmVC
cmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhf
TnVtZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJp
YzpdIC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJID0g
W1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29u
dGV4dDpdOworJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGluZUJy
ZWFrID0gU3BhY2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOworJFdK
ID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtu
b3duOl07CiskWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7Cisk
RW1vamlWYXIgPSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAg
ICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYzMDgg
XFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0YzIFxV
MDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBcVTAw
MDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUwMDAx
RjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAwMUY2
NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFGNkEz
IFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0og
c2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3
MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NC
IFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1c
VTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUw
MDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxVMDAw
MUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFG
NjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZD
MCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwor
CisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAwMDFG
NDY5IFxVMDAwMUY0OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3
MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFGM0NB
IFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1c
VTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUw
MDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxVMDAw
MUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFG
NkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmlj
ayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAwMDFG
M0ZGXTsKKyRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsKKyRB
TFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07CiskQUxjbSA9ICRBTFBsdXMgJENNKjsKKyRC
QWNtID0gJEJBICRDTSo7CiskQkJjbSA9ICRCQiAkQ00qOworJEIyY20gPSAkQjIgJENNKjsKKyRD
TGNtID0gJENMICRDTSo7CiskQ1BjbSA9ICRDUCAkQ00qOworJEVYY20gPSAkRVggJENNKjsKKyRH
TGNtID0gJEdMICRDTSo7CiskSExjbSA9ICRITCAkQ00qOworJEhZY20gPSAkSFkgJENNKjsKKyRI
MmNtID0gJEgyICRDTSo7CiskSDNjbSA9ICRIMyAkQ00qOworJElEY20gPSAkSUQgJENNKjsKKyRJ
TmNtID0gJElOICRDTSo7CiskSVNjbSA9ICRJUyAkQ00qOworJEpMY20gPSAkSkwgJENNKjsKKyRK
VmNtID0gJEpWICRDTSo7CiskSlRjbSA9ICRKVCAkQ00qOworJE5TY20gPSAkTlMgJENNKjsKKyRO
VWNtID0gJE5VICRDTSo7CiskT1BjbSA9ICRPUCAkQ00qOworJFBPY20gPSAkUE8gJENNKjsKKyRQ
UmNtID0gJFBSICRDTSo7CiskUVVjbSA9ICRRVSAkQ00qOworJFJJY20gPSAkUkkgJENNKjsKKyRT
WWNtID0gJFNZICRDTSo7CiskV0pjbSA9ICRXSiAkQ00qOworCishIWZvcndhcmQ7CiskQ0FOX0NN
ID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJENBTlRfQ00gPSBbJFNQICRCSyAk
Q1IgJExGICROTCAkWlcgJENNXTsKKyRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAkTkwg
JFpXICRTUF07CiskQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRXSiAk
R0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOworJEFMX0ZPTExPVyA9IFsk
QUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07CiskTEI0QnJlYWtzID0gWyRCSyAkQ1IgJExG
ICROTF07CiskTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOworJExCOEJyZWFrcyA9
IFskTEI0QnJlYWtzICRaV107CiskTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAtIFsk
WlddXTsKKyRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07CiskTEIxOEJy
ZWFrcyA9IFskTEI4QnJlYWtzICRTUF07CiskTEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJyZWFr
cyAtICRDQl07CiskQUxQbHVzICRDTSs7CiskQkEgJENNKzsKKyRCQiAkQ00rOworJEIyICRDTSs7
CiskQ0wgJENNKzsKKyRDUCAkQ00rOworJEVYICRDTSs7CiskR0wgJENNKzsKKyRITCAkQ00rOwor
JEhZICRDTSs7CiskSDIgJENNKzsKKyRIMyAkQ00rOworJElEICRDTSs7CiskSU4gJENNKzsKKyRJ
UyAkQ00rOworJEpMICRDTSs7CiskSlYgJENNKzsKKyRKVCAkQ00rOworJE5TICRDTSs7CiskTlUg
JENNKzsKKyRPUCAkQ00rOworJFBPICRDTSs7CiskUFIgJENNKzsKKyRRVSAkQ00rOworJFJJICRD
TSs7CiskU1kgJENNKzsKKyRXSiAkQ00rOworJENSICRMRiB7MTAwfTsKKyRMQjROb25CcmVha3M/
ICRMQjRCcmVha3MgezEwMH07CiskQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsKKyRDTSsg
JExCNEJyZWFrcyB7MTAwfTsKKyRMQjROb25CcmVha3MgWyRTUCAkWlddOworJENBTl9DTSAkQ00q
IFskU1AgJFpXXTsKKyRDTSsgWyRTUCAkWlddOworJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/ICRF
bW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsKKyRDQU5fQ00gJENNKzsKKyRDTSs7CiskQ0FO
X0NNICRDTSogJFdKY207CiskTEI4Tm9uQnJlYWtzICRXSmNtOworJENNKyAkV0pjbTsKKyRXSmNt
ICRDQU5UX0NNOworJFdKY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTl9DTSAkQ00qOworJEdM
Y20gJENBTlRfQ007CitbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENNKiAkR0xj
bTsKKyRDTSsgR0xjbTsKKyRMQjhOb25CcmVha3MgJENMOworJENBTl9DTSAkQ00qICRDTDsKKyRD
TSsgJENMOworJExCOE5vbkJyZWFrcyAkQ1A7CiskQ0FOX0NNICRDTSogJENQOworJENNKyAkQ1A7
CiskTEI4Tm9uQnJlYWtzICRFWDsKKyRDQU5fQ00gJENNKiAkRVg7CiskQ00rICRFWDsKKyRMQjhO
b25CcmVha3MgJElTOworJENBTl9DTSAkQ00qICRJUzsKKyRDTSsgJElTOworJExCOE5vbkJyZWFr
cyAkU1k7CiskQ0FOX0NNICRDTSogJFNZOworJENNKyAkU1k7CiskT1BjbSAkU1AqICRDQU5fQ00g
JENNKjsKKyRPUGNtICRTUCogJENBTlRfQ007CiskT1BjbSAkU1ArICRDTSsgJEFMX0ZPTExPVz87
CiskUVVjbSAkU1AqICRPUGNtOworKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207CiskQjJjbSAk
U1AqICRCMmNtOworJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsKKyRDTSsgJFFVY207CiskUVVj
bSAuPzsKKyRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7CiskTEIyME5vbkJyZWFrcyAkQ00qICgk
QkFjbSB8ICRIWWNtIHwgJE5TY20pOyAKKyRCQmNtIFteJENCXTsKKyRCQmNtICRMQjIwTm9uQnJl
YWtzICRDTSo7CiskSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsKKyRTWWNtICRITGNtOwor
KCRBTGNtIHwgJEhMY20pICRJTmNtOworJENNKyAkSU5jbTsKKyRFWGNtICRJTmNtOworJElEY20g
JElOY207CiskSU5jbSAkSU5jbTsKKyROVWNtICRJTmNtOworJElEY20gJFBPY207CiskQUxjbSAk
TlVjbTsKKyRITGNtICROVWNtOworJENNKyAkTlVjbTsKKyROVWNtICRBTGNtOworJE5VY20gJEhM
Y207CiskUFJjbSAkSURjbTsKKyRQUmNtICgkQUxjbSB8ICRITGNtKTsKKyRQT2NtICgkQUxjbSB8
ICRITGNtKTsKKygkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5VY20g
fCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/OworJEpM
Y20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkSlZjbSB8ICRIMmNtKSAoJEpW
Y20gfCAkSlRjbSk7CisoJEpUY20gfCAkSDNjbSkgJEpUY207CisoJEpMY20gfCAkSlZjbSB8ICRK
VGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgy
Y20gfCAkSDNjbSkgJFBPY207CiskUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20g
fCAkSDNjbSk7CisoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOworJENNKyAoJEFMY20g
fCAkSExjbSk7CiskSVNjbSAoJEFMY20gfCAkSExjbSk7CisoJEFMY20gfCAkSExjbSB8ICROVWNt
KSAkT1BjbTsKKyRDTSsgJE9QY207CiskQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsKKwor
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJY20gJFJJY207CisKKyNlbmRp
ZgorCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsKKworISFyZXZlcnNlOwor
JENNKyAkQUxQbHVzOworJENNKyAkQkE7CiskQ00rICRCQjsKKyRDTSsgJEIyOworJENNKyAkQ0w7
CiskQ00rICRDUDsKKyRDTSsgJEVYOworJENNKyAkR0w7CiskQ00rICRITDsKKyRDTSsgJEhZOwor
JENNKyAkSDI7CiskQ00rICRIMzsKKyRDTSsgJElEOworJENNKyAkSU47CiskQ00rICRJUzsKKyRD
TSsgJEpMOworJENNKyAkSlY7CiskQ00rICRKVDsKKyRDTSsgJE5TOworJENNKyAkTlU7CiskQ00r
ICRPUDsKKyRDTSsgJFBPOworJENNKyAkUFI7CiskQ00rICRRVTsKKworI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAorCisgICAgJENNKyAkUkk7CisKKyNlbmRpZgorCiskQ00rICRTWTsKKyRD
TSsgJFdKOworJENNKzsKKyRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRaVyB7
ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFskQUwg
e2VvZn1dKSk7CitbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9XTsK
KyRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENNXTsKKyRMQjRCcmVha3MgJENNKyAkQ0FOX0NN
OworJExGICRDUjsKK1skU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOworWyRTUCAkWlddICRD
TSsgJENBTl9DTTsKKyRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/ICRF
bW9qaUZvclNlcXM7CiskQ00rICRDQU5fQ007CiskQ00qICRXSiAkQ00qICRDQU5fQ007CiskQ00q
ICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOworJENBTlRfQ00gJENNKiAkV0o7CiskQ00qICRDQU5f
Q00gJENNKiAkV0o7CiskQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRCQSAk
SFldXTsKKyRDQU5UX0NNICRDTSogJEdMOworJENNKiAkQ0FOX0NNICRDTSogJEdMOworJENMICRD
TSsgJENBTl9DTTsKKyRDUCAkQ00rICRDQU5fQ007CiskRVggJENNKyAkQ0FOX0NNOworJElTICRD
TSsgJENBTl9DTTsKKyRTWSAkQ00rICRDQU5fQ007CiskQ0wgWyRMQjhOb25CcmVha3MtJENNXTsK
KyRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOworJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskSVMg
WyRMQjhOb25CcmVha3MtJENNXTsKKyRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOworWyRDTCAkQ1Ag
JEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgCiskQ00qICRDQU5fQ00gJFNQKiAkQ00q
ICRPUDsKKyRDQU5UX0NNICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XPyAkQ00rICRTUCAkU1Aq
ICRDTSogJE9QOworJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRDTSogJEFM
X0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskU1kgJENNICRTUCsgJE9QOworJENNKiAk
T1AgJFNQKiAkQ00qICRRVTsKKyRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsKKyRDTSog
JEIyICRTUCogJENNKiAkQjI7CiskQ00qICRRVSAkQ00qICRDQU5fQ007CiskQ00qICRRVSAkTEIx
OE5vbkJyZWFrczsKKyRDTSogJENBTl9DTSAkQ00qICRRVTsKKyRDQU5UX0NNICRDTSogJFFVOwor
JENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOworJENNKiBb
JExCMjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICRCQjsKK1teJENCXSAk
Q00qICgkSFkgfCAkQkEpICRDTSogJEhMOworJENNKiAkSEwgJENNKiAkU1k7CiskQ00qICRJTiAk
Q00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogJElOICRDTSogJEVYOworJENNKiAkSU4gJENNKiAk
SUQ7CiskQ00qICRJTiAkQ00qICRJTjsKKyRDTSogJElOICRDTSogJE5VOworJENNKiAkUE8gJENN
KiAkSUQ7CiskQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMgfCAk
SEwpICRDTSogJE5VOworJENNKiAkSUQgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAk
Q00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOworKCRDTSogKCRQUiB8ICRQ
TykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENNKiAk
TlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OworJENNKiAoJEgzIHwg
JEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsKKyRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgyIHwg
JEpWKTsKKyRDTSogJEpUICRDTSogKCRIMyB8ICRKVCk7CiskQ00qICRJTiAkQ00qICgkSDMgfCAk
SDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwg
JEpWIHwgJEpMKTsKKyRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAkUFI7
CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBs
dXMgfCAkSEwpICRDTSogJElTOworJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSk7
CiskQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsKKworI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAorCisgICAgJENNKiAkUkkgJENNKiAkUkk7CisKKyNlbmRpZgorCiskRW1v
amlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsKKworISFzYWZlX2ZvcndhcmQ7CitbJENN
ICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14kQ00g
JE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07CiskZGljdGlvbmFy
eSAkZGljdGlvbmFyeTsKKyAgICAKKyEhc2FmZV9yZXZlcnNlOworJENNKyBbXiRDTSAkQksgJENS
ICRMRiAkTkwgJFpXICRTUF07CiskQ00rICRTUCAvIC47CiskU1ArICRDTSogJE9QOworJFNQKyAk
Q00qICRRVTsKKyRTUCsgJENNKiAoJENMIHwgJENQKTsKKyRTUCsgJENNKiAkQjI7CiskQ00qICgk
SFkgfCAkQkEpICRDTSogJEhMOworKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsKKygkQ0wg
fCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7CiskZGljdGlvbmFyeSAkZGljdGlvbmFyeTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclByb2xvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjg4MzU1NjMxZTQzNzky
ZDNmM2M5MjMzMzcyNzY2YWNkZWMxYjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0CkBAIC0w
LDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
IyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyEhY2hh
aW47CishIUxCQ01Ob0NoYWluOworISFsb29rQWhlYWRIYXJkQnJlYWs7CisKKyNpZiBIQVZFX0VY
VFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkQ0ogPSBbOkxpbmVCcmVhaz1Db25kaXRpb25hbF9K
YXBhbmVzZV9TdGFydGVyOl07CisKKyNlbHNlCisKKyAgICAkQ0ogPSBbXHUzMDQxXHUzMDQzXHUz
MDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhFXHUzMDk1XHUzMDk2
XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3XHUzMEE5XHUzMEMzXHUzMEUzXHUzMEU1XHUzMEU3XHUz
MEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYwXHUzMUYxXHUzMUYyXHUzMUYzXHUzMUY0XHUzMUY1
XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUzMUZBXHUzMUZCXHUzMUZDXHUzMUZEXHUzMUZFXHUz
MUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZBXHVGRjZCXHVGRjZDXHVGRjZEXHVGRjZFXHVGRjZG
XHVGRjcwXTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzBiY2U1ZWU5ZTY3OTY5YmM4NmIwODc1MDY2MTU0ZjdmYzM5MzE2MQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisj
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7Cisk
SU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1
MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRD
SiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50
eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTAzZTUxMWViOTg0ZmNhYTY0ODU0NGFjY2Vl
ZjZlNzgxNTg4MDFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKQEAgLTAsMCArMSwz
MyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtc
dTIwMTBcdTIwMTNdOworJEVYX1NVQiA9IFtcdTAwMjFcdTAwM0ZcdUZGMDFcdUZGMUZdOworJElE
X1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NVQiA9IFtcdTAwM0Fc
dTAwM0JdOworJE5TX1NVQiA9IFtcdTIwM0NcdTIwNDdcdTIwNDhcdTIwNDlcdTMwMDVcdTMwMUNc
dTMwM0JcdTMwOURcdTMwOUVcdTMwQTBcdTMwRkJcdTMwRkRcdTMwRkVcdUZGMUFcdUZGMUJcdUZG
NjVdOworJFBPX1NVQiA9IFtcdTAwMjVcdTAwQTJcdTAwQjBcdTIwMzBcdTIwMzJcdTIwMzNcdTIx
MDNcdUZGMDVcdUZGRTBdOworJFBSX1NVQiA9IFtcdTAwMjRcdTAwQTNcdTAwQTVcdTIwQUNcdTIx
MTZcdUZGMDRcdUZGRTFcdUZGRTVdOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJ
Tl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07CiskTlNfQUREID0gJyc7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZm
OGU4ZTFiNWI2NWJjNjM0M2I1MDEyZDhmOTlkODQ0YTQwNGFkZGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlTm9uQ0pLLnR4dApAQCAtMCwwICsxLDMzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0g
Jyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0g
W1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBGRFx1MzBGRV07CiskUE9fU1VCID0gJyc7Cisk
UFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJdOworJE5TX0FERCA9
ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2ZWFi
Njk0OTg2ZWY4MmQ5YWI5NWZiMTliNDM1MmI2NjJkMjYzZGIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
bkNKSy50eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisj
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElO
X1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOwor
JFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYmNlNWVlOWU2Nzk2
OWJjODZiMDg3NTA2NjE1NGY3ZmMzOTMxNjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50
eHQKQEAgLTAsMCArMSwzMyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9ICcn
OworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBd
OworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAk
TlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDk0NTgyY2NlOWZkNGQwN2Q5ODdlMzk5ZWM5NzUy
MjczYjRkYmU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0CkBAIC0wLDAgKzEs
MzMgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAn
JzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIg
PSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9B
REQgPSBbJENKXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJiNjYy
ZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CkBAIC0wLDAgKzEsMzMgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRF
WF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsK
KyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAn
JzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmVhYjY5NDk4NmVmODJkOWFiOTVmYjE5YjQzNTJiNjYy
ZDI2M2RiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CkBAIC0wLDAgKzEsMzMg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsK
KyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAn
JzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQg
PSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVy
YXRvci5jcHAKaW5kZXggMDVhNTE5NTYwNWUxZDhmYmY3NjIzMTM5N2Q4OWMwODE1MzIwOTMyNy4u
Y2JkZjE0MDUyODQzYTRiY2Q1YTRkNmViYTc3ZGY1ZWM0YmNjZTZkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKQEAgLTMxLDkgKzMxLDYgQEAKICNpbmNsdWRl
IDx1bmljb2RlL3VicmsuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAK
LS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0dGVyIG5hbWUKLSNkZWZpbmUgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkKLQogbmFtZXNwYWNlIFdURiB7CiAK
IC8vIEl0ZXJhdG9yIGluaXRpYWxpemF0aW9uCkBAIC02MSw2ICs1OCwxMiBAQCBzdGF0aWMgVGV4
dEJyZWFrSXRlcmF0b3IqIGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhjb25zdCBjaGFyKiBi
cmVha1J1bGVzKQogCiAjZW5kaWYKIAorI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJ
T1MpCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5n
UnVsZVNldCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgogCiAvLyBJdGVyYXRv
ciB0ZXh0IHNldHRpbmcKIApAQCAtMTY0LDEzNSArMTY3LDIwIEBAIFRleHRCcmVha0l0ZXJhdG9y
KiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiAgICAgcmV0dXJuIHNl
dFRleHRGb3JJdGVyYXRvcigqc3RhdGljU2VudGVuY2VCcmVha0l0ZXJhdG9yLCBzdHJpbmcpOwog
fQogCisjaWYgIVBMQVRGT1JNKElPUykKK3N0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRl
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjaygpCit7CisgICAgaWYgKGF1dG8qIGl0
ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldDo6Q3Vyc29y
TW92ZW1lbnQpKQorICAgICAgICByZXR1cm4gaXRlcmF0b3I7CisgICAgcmV0dXJuIGluaXRpYWxp
emVJdGVyYXRvcldpdGhSdWxlcyhjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMpOworfQorI2Vu
ZGlmCisKIFRleHRCcmVha0l0ZXJhdG9yKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKFN0cmluZ1Zp
ZXcgc3RyaW5nKQogewogI2lmICFQTEFURk9STShJT1MpCi0gICAgLy8gVGhpcyBydWxlIHNldCBp
cyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3Ci0gICAg
Ly8gPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxl
YXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCi0gICAgLy8gVGhlIG1ham9yIGRpZmZlcmVu
Y2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBiZWxvdzoKLSAgICAvLyAqIFJl
cGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGgg
J1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNV
IDMuOCBvciBlYXJsaWVyOwotICAgIC8vICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBj
dXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOwot
ICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFm
dGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3
OTApLCBhbmQ7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJv
bSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtz
LgotICAgIC8vICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgot
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBrUnVsZXMgPQotICAgICAgICAiJENSICAgICAgPSBbXFxw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOyIKLSAgICAgICAgIiRMRiAgICAgID0gW1xc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsiCi0gICAgICAgICIkQ29udHJvbCA9IFtc
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsiCi0gICAgICAgICIkVm9pY2VN
YXJrcyA9IFtcXHVGRjlFXFx1RkY5Rl07IiAvLyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5h
IHZvaWNlZCBtYXJrcwotICAgICAgICAiJEV4dGVuZCAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJf
QnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1xcdTBFMzAgXFx1MEUzMiBcXHUwRTQ1IFxc
dTBFQjAgXFx1MEVCMl1dOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayA9IFtbXFxwe0dlbmVyYWxf
Q2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOyIKLSAgICAgICAgIiRMICAgICAg
ID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOyIKLSAgICAgICAgIiRWICAgICAg
ID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOyIKLSAgICAgICAgIiRUICAgICAg
ID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOyIKLSAgICAgICAgIiRMViAgICAg
ID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsiCi0gICAgICAgICIkTFZUICAg
ICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1dOyIKLSAgICAgICAgIiRIaW4w
ICAgID0gW1xcdTA5MDUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQot
ICAgICAgICAiJEhpblYgICAgPSBcXHUwOTREOyIgLy8gRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQot
ICAgICAgICAiJEhpbjEgICAgPSBbXFx1MDkxNS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0
dGVyIEthLC4uLixIYQotICAgICAgICAiJEJlbjAgICAgPSBbXFx1MDk4NS1cXHUwOUI5XTsiIC8v
IEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkQmVuViAgICA9IFxcdTA5Q0Q7IiAv
LyBCZW5nYWxpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkQmVuMSAgICA9IFtcXHUwOTk1LVxcdTA5
QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkUGFuMCAgICA9IFtc
XHUwQTA1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIk
UGFuViAgICA9IFxcdTBBNEQ7IiAvLyBHdXJtdWtoaSBTaWduIFZpcmFtYQotICAgICAgICAiJFBh
bjEgICAgPSBbXFx1MEExNS1cXHUwQTM5XTsiIC8vIEd1cm11a2hpIExldHRlciBLYSwuLi4sSGEK
LSAgICAgICAgIiRHdWowICAgID0gW1xcdTBBODUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0
ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRHdWpWICAgID0gXFx1MEFDRDsiIC8vIEd1amFyYXRpIFNp
Z24gVmlyYW1hCi0gICAgICAgICIkR3VqMSAgICA9IFtcXHUwQTk1LVxcdTBBQjldOyIgLy8gR3Vq
YXJhdGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJE9yaTAgICAgPSBbXFx1MEIwNS1cXHUw
QjM5XTsiIC8vIE9yaXlhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJE9yaVYgICAgPSBcXHUw
QjREOyIgLy8gT3JpeWEgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRPcmkxICAgID0gW1xcdTBCMTUt
XFx1MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkVGVsMCAgICA9
IFtcXHUwQzA1LVxcdTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBBLC4uLixIYQotICAgICAgICAi
JFRlbFYgICAgPSBcXHUwQzREOyIgLy8gVGVsdWd1IFNpZ24gVmlyYW1hCi0gICAgICAgICIkVGVs
MSAgICA9IFtcXHUwQzE0LVxcdTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBLYSwuLi4sSGEKLSAg
ICAgICAgIiRLYW4wICAgID0gW1xcdTBDODUtXFx1MENCOV07IiAvLyBLYW5uYWRhIExldHRlciBB
LC4uLixIYQotICAgICAgICAiJEthblYgICAgPSBcXHUwQ0NEOyIgLy8gS2FubmFkYSBTaWduIFZp
cmFtYQotICAgICAgICAiJEthbjEgICAgPSBbXFx1MEM5NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEg
TGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsMCAgICA9IFtcXHUwRDA1LVxcdTBEMzldOyIg
Ly8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAiJE1hbFYgICAgPSBcXHUwRDRE
OyIgLy8gTWFsYXlhbGFtIFNpZ24gVmlyYW1hCi0gICAgICAgICIkTWFsMSAgICA9IFtcXHUwRDE1
LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAiJFJJICAg
ICAgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIgLy8gRW1vamkgcmVnaW9uYWwgaW5kaWNh
dG9ycwotICAgICAgICAiJFpXSiAgICAgPSBcXHUyMDBEOyIgLy8gWmVybyB3aWR0aCBqb2luZXIK
LSAgICAgICAgIiRFbW9qaVZhciA9IFtcXHVGRTBGXTsiIC8vIEVtb2ppLXN0eWxlIHZhcmlhdGlv
biBzZWxlY3RvcgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJEVtb2pp
Rm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxc
VTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0Yz
IFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFG
NDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAw
MDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxc
VTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRE
LVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcdTI2OTUt
XFx1MjY5NiBcXHUyNzA4IFxcVTAwMDFGMzNFIFxcVTAwMDFGMzczIFxcVTAwMDFGMzkzIFxcVTAw
MDFGM0E0IFxcVTAwMDFGM0E4IFxcVTAwMDFGM0VCIFxcVTAwMDFGM0VEIFxcVTAwMDFGNEJCLVxc
VTAwMDFGNEJDIFxcVTAwMDFGNTI3IFxcVTAwMDFGNTJDIFxcVTAwMDFGNjgwIFxcVTAwMDFGNjky
IFxcVTAwMDFGOTI2IFxcVTAwMDFGOTM3LVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFG
OTNFXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAg
ICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAw
MDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxc
VTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2
LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFG
NDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAw
MDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxc
VTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0
LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4IFxcVTAwMDFGM0MyIFxcVTAwMDFG
M0M3IFxcVTAwMDFGM0NDIFxcVTAwMDFGNTc0IFxcVTAwMDFGNTdBIFxcVTAwMDFGNkNDIFxcVTAw
MDFGOTE5LVxcVTAwMDFGOTFFIFxcVTAwMDFGOTI2IFxcVTAwMDFGOTMwIFxcVTAwMDFGOTMzLVxc
VTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXSA7IiAvLyBFbW9qaSB0aGF0IHRha2Ug
Rml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZWxzZQotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtc
XHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDhCXTsiIC8vIEVtb2ppIHRo
YXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9
IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAx
RjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUw
MDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1c
XFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4
NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAx
RjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUw
MDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1v
ZGlmaWVycwotI2VuZGlmCi0gICAgICAgICIkRW1vamlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAw
MDFGM0ZGXTsiIC8vIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotICAgICAgICAiISFjaGFpbjsiCi0j
aWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIhIVJJTm9DaGFpbjsiCi0jZW5k
aWYKLSAgICAgICAgIiEhZm9yd2FyZDsiCi0gICAgICAgICIkQ1IgJExGOyIKLSAgICAgICAgIiRM
ICgkTCB8ICRWIHwgJExWIHwgJExWVCk7IgotICAgICAgICAiKCRMViB8ICRWKSAoJFYgfCAkVCk7
IgotICAgICAgICAiKCRMVlQgfCAkVCkgJFQ7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJICRF
eHRlbmQqOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsiCi0gICAgICAg
ICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsiCi0jZWxzZQotICAgICAgICAiW14k
Q29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0g
JFNwYWNpbmdNYXJrOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkk7IgotICAgICAgICAiJFJJICRS
STsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4wICRIaW5WICRIaW4xOyIgLy8gRGV2YW5hZ2FyaSBW
aXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkQmVuMCAkQmVuViAkQmVuMTsiIC8vIEJlbmdhbGkg
VmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFBhbjAgJFBhblYgJFBhbjE7IiAvLyBHdXJtdWto
aSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkR3VqMCAkR3VqViAkR3VqMTsiIC8vIEd1amFy
YXRpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRPcmkwICRPcmlWICRPcmkxOyIgLy8gT3Jp
eWEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFRlbDAgJFRlbFYgJFRlbDE7IiAvLyBUZWx1
Z3UgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEthbjAgJEthblYgJEthbjE7IiAvLyBLYW5u
YWRhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRNYWwwICRNYWxWICRNYWwxOyIgLy8gTWFs
YXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRaV0ogJEVtb2ppRm9yU2VxczsiIC8v
IERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1v
ZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFu
dCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmlj
ayBtb2RpZmllcgotICAgICAgICAiISFyZXZlcnNlOyIKLSAgICAgICAgIiRMRiAkQ1I7IgotICAg
ICAgICAiKCRMIHwgJFYgfCAkTFYgfCAkTFZUKSAkTDsiCi0gICAgICAgICIoJFYgfCAkVCkgKCRM
ViB8ICRWKTsiCi0gICAgICAgICIkVCAoJExWVCB8ICRUKTsiCi0jaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsi
Ci0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRD
b250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAk
TEZdOyIKLSNlbHNlCi0gICAgICAgICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsi
Ci0gICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIk
UkkgJFJJIC8gJFJJICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAi
JEhpbjEgJEhpblYgJEhpbjA7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAg
ICAgICIkQmVuMSAkQmVuViAkQmVuMDsiIC8vIEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKLSAg
ICAgICAgIiRQYW4xICRQYW5WICRQYW4wOyIgLy8gR3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkK
LSAgICAgICAgIiRHdWoxICRHdWpWICRHdWowOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2Fy
ZCkKLSAgICAgICAgIiRPcmkxICRPcmlWICRPcmkwOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNr
d2FyZCkKLSAgICAgICAgIiRUZWwxICRUZWxWICRUZWwwOyIgLy8gVGVsdWd1IFZpcmFtYSAoYmFj
a3dhcmQpCi0gICAgICAgICIkS2FuMSAkS2FuViAkS2FuMDsiIC8vIEthbm5hZGEgVmlyYW1hIChi
YWNrd2FyZCkKLSAgICAgICAgIiRNYWwxICRNYWxWICRNYWwwOyIgLy8gTWFsYXlhbGFtIFZpcmFt
YSAoYmFja3dhcmQpCi0gICAgICAgICIkRW1vamlGb3JTZXFzICRaV0o7IiAvLyBEb24ndCBicmVh
ayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8g
JEVtb2ppRm9yTW9kczsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBv
c3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIK
LSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIK
LSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRF
bW9qaUZvck1vZHM7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICAgICAiJFJJICRS
SSs7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiOwor
ICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
ciA9IGNyZWF0ZUN1cnNvck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2soKTsKICNlbHNlCi0g
ICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAg
IiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IgotICAgICAgICAiISFzYWZl
X3JldmVyc2U7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IjsKLSNlbmRpZgotICAgIHN0YXRp
YyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRp
YWxpemVJdGVyYXRvcldpdGhSdWxlcyhrUnVsZXMpOwotI2Vsc2UgLy8gUExBVEZPUk0oSU9TKQog
ICAgIC8vIFVzZSB0aGUgc3BlY2lhbCBUaGFpIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBmb3Ig
YWxsIGxvY2FsZXMKICAgICBzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1v
dmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3IoVUJSS19DSEFSQUNURVIsICJ0aCIp
OwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCkBAIC0zMTksNDQyICsyMDcsMjAgQEAgdm9pZCBy
ZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQogICAg
IExpbmVCcmVha0l0ZXJhdG9yUG9vbDo6c2hhcmVkUG9vbCgpLnB1dChpdGVyYXRvcik7CiB9CiAK
LXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFByb2xvZ3VlID0KLSAgICAiISFjaGFpbjsiCi0gICAg
IiEhTEJDTU5vQ2hhaW47IgotICAgICIhIWxvb2tBaGVhZEhhcmRCcmVhazsiOwotCi1zdGF0aWMg
Y29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0JlZm9yZSA9Ci0gICAgLy8gZXhwbGljaXRseSBl
bnVtZXJhdGUgJENKIHNpbmNlIElDVSB2ZXJzaW9ucyBwcmlvciB0byA0OSBkb24ndCBzdXBwb3J0
IDpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoKLSAgICAiJENKID0gWyIK
LSNpZiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlO
T1JfTlVNID49IDkpCi0gICAgIjpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRl
cjoiCi0jZWxzZQotICAgICJcXHUzMDQxXFx1MzA0M1xcdTMwNDVcXHUzMDQ3XFx1MzA0OVxcdTMw
NjNcXHUzMDgzXFx1MzA4NVxcdTMwODdcXHUzMDhFXFx1MzA5NVxcdTMwOTZcXHUzMEExXFx1MzBB
M1xcdTMwQTVcXHUzMEE3IgotICAgICJcXHUzMEE5XFx1MzBDM1xcdTMwRTNcXHUzMEU1XFx1MzBF
N1xcdTMwRUVcXHUzMEY1XFx1MzBGNlxcdTMwRkMiCi0gICAgIlxcdTMxRjBcXHUzMUYxXFx1MzFG
MlxcdTMxRjNcXHUzMUY0XFx1MzFGNVxcdTMxRjZcXHUzMUY3XFx1MzFGOFxcdTMxRjlcXHUzMUZB
XFx1MzFGQlxcdTMxRkNcXHUzMUZEXFx1MzFGRVxcdTMxRkYiCi0gICAgIlxcdUZGNjdcXHVGRjY4
XFx1RkY2OVxcdUZGNkFcXHVGRjZCXFx1RkY2Q1xcdUZGNkRcXHVGRjZFXFx1RkY2RlxcdUZGNzAi
Ci0jZW5kaWYKLSAgICAiXTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50
c0N1c3RvbUxvb3NlQ0pLID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAg
ICIkRVhfU1VCID0gW1xcdTAwMjFcXHUwMDNGXFx1RkYwMVxcdUZGMUZdOyIKLSAgICAiJElEX1NV
QiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAgICIkSVNfU1VC
ID0gW1xcdTAwM0FcXHUwMDNCXTsiCi0gICAgIiROU19TVUIgPSBbXFx1MjAzQ1xcdTIwNDdcXHUy
MDQ4XFx1MjA0OVxcdTMwMDVcXHUzMDFDXFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBBMFxcdTMw
RkJcXHUzMEZEXFx1MzBGRVxcdUZGMUFcXHVGRjFCXFx1RkY2NV07IgotICAgICIkUE9fU1VCID0g
W1xcdTAwMjVcXHUwMEEyXFx1MDBCMFxcdTIwMzBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHVGRjA1
XFx1RkZFMF07IgotICAgICIkUFJfU1VCID0gW1xcdTAwMjRcXHUwMEEzXFx1MDBBNVxcdTIwQUNc
XHUyMTE2XFx1RkYwNFxcdUZGRTFcXHVGRkU1XTsiCi0gICAgIiRJRF9BREQgPSBbJENKICRCQV9T
VUIgJEVYX1NVQiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOyIKLSAg
ICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tTG9vc2VOb25DSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0g
Jyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2
XTsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAwNVxcdTMwM0Jc
XHUzMDlEXFx1MzA5RVxcdTMwRkRcXHUzMEZFXTsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAg
IiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKICRJTl9TVUIgJE5TX1NVQl07Igot
ICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVu
dHNDdXN0b21Ob3JtYWxDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0g
ICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAn
JzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAxQ1xcdTMwQTBd
OyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FE
RCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0
aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyA9Ci0gICAg
IiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsi
Ci0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIg
PSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJ
RF9BREQgPSBbJENKXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hh
ciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsi
Ci0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIg
PSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQ
T19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSAnJzsiCi0g
ICAgIiROU19BREQgPSBbJENKXTsiOwotCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21T
dHJpY3ROb25DSksgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLCi0jZGVmaW5l
IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Q0pLICAgICAgICB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tTm9ybWFsQ0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9u
Q0pLICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLCi0KLXN0YXRpYyBjb25z
dCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIgPQotICAgICIkQUkgPSBbOkxpbmVCcmVhayA9
IEFtYmlndW91czpdOyIKLSAgICAiJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07Igot
ICAgICIkQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07IgotICAg
ICIkQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOyIKLSAgICAiJEJLID0gWzpMaW5l
QnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsiCi0gICAgIiRCMiA9IFs6TGluZUJyZWFrID0gQnJl
YWtfQm90aDpdOyIKLSAgICAiJENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07
IgotICAgICIkQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07IgotICAgICIk
Q00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07IgotICAgICIkQ1AgPSBbOkxpbmVC
cmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07IgotICAgICIkQ1IgPSBbOkxpbmVCcmVhayA9IENh
cnJpYWdlX1JldHVybjpdOyIKLSAgICAiJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246
XSAtICRFWF9TVUJdOyIKLSAgICAiJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07IgotI2lmIChV
X0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0g
Pj0gOSkKLSAgICAiJEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdfTGV0dGVyOl07IgotI2Vsc2UK
LSAgICAiJEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsiCi0jZW5kaWYKLSAgICAiJEhZ
ID0gWzpMaW5lQnJlYWsgPSBIeXBoZW46XTsiCi0gICAgIiRIMiA9IFs6TGluZUJyZWFrID0gSDI6
XTsiCi0gICAgIiRIMyA9IFs6TGluZUJyZWFrID0gSDM6XTsiCi0gICAgIiRJRCA9IFtbW1s6TGlu
ZUJyZWFrID0gSWRlb2dyYXBoaWM6XSAtICRDSl0gJElEX0FERF0gLSAkSURfU1VCXTsiCi0gICAg
IiRJTiA9IFtbOkxpbmVCcmVhayA9IEluc2VwYXJhYmxlOl0gLSAkSU5fU1VCXTsiCi0gICAgIiRJ
UyA9IFtbOkxpbmVCcmVhayA9IEluZml4X051bWVyaWM6XSAtICRJU19TVUJdOyIKLSAgICAiJEpM
ID0gWzpMaW5lQnJlYWsgPSBKTDpdOyIKLSAgICAiJEpWID0gWzpMaW5lQnJlYWsgPSBKVjpdOyIK
LSAgICAiJEpUID0gWzpMaW5lQnJlYWsgPSBKVDpdOyIKLSAgICAiJExGID0gWzpMaW5lQnJlYWsg
PSBMaW5lX0ZlZWQ6XTsiCi0gICAgIiROTCA9IFs6TGluZUJyZWFrID0gTmV4dF9MaW5lOl07Igot
ICAgICIkTlMgPSBbW1tbOkxpbmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRDSl0gJE5TX0FERF0g
LSAkTlNfU1VCXTsiCi0gICAgIiROVSA9IFs6TGluZUJyZWFrID0gTnVtZXJpYzpdOyIKLSAgICAi
JE9QID0gWzpMaW5lQnJlYWsgPSBPcGVuX1B1bmN0dWF0aW9uOl07IgotICAgICIkUE8gPSBbWzpM
aW5lQnJlYWsgPSBQb3N0Zml4X051bWVyaWM6XSAtICRQT19TVUJdOyIKLSAgICAiJFBSID0gW1s6
TGluZUJyZWFrID0gUHJlZml4X051bWVyaWM6XSAtICRQUl9TVUJdOyIKLSAgICAiJFFVID0gWzpM
aW5lQnJlYWsgPSBRdW90YXRpb246XTsiCi0gICAgIiRSSSA9IFtcXFUwMDAxRjFFNi1cXFUwMDAx
RjFGRl07IgotICAgICIkU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAg
ICAiJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsiCi0gICAgIiRTUCA9IFs6TGluZUJy
ZWFrID0gU3BhY2U6XTsiCi0gICAgIiRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpd
OyIKLSAgICAiJFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOyIKLSAgICAiJFhYID0g
WzpMaW5lQnJlYWsgPSBVbmtub3duOl07IgotICAgICIkWlcgPSBbOkxpbmVCcmVhayA9IFpXU3Bh
Y2U6XTsiCi0gICAgIiRaV0ogPSBcXHUyMDBEOyIKLSAgICAiJEVtb2ppVmFyID0gXFx1RkUwRjsi
Ci0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1
MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUw
MDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBc
XFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3
MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAx
RjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUw
MDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBc
XFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXHUyNjk1LVxcdTI2OTYgXFx1Mjcw
OCBcXFUwMDAxRjMzRSBcXFUwMDAxRjM3MyBcXFUwMDAxRjM5MyBcXFUwMDAxRjNBNCBcXFUwMDAx
RjNBOCBcXFUwMDAxRjNFQiBcXFUwMDAxRjNFRCBcXFUwMDAxRjRCQi1cXFUwMDAxRjRCQyBcXFUw
MDAxRjUyNyBcXFUwMDAxRjUyQyBcXFUwMDAxRjY4MCBcXFUwMDAxRjY5MiBcXFUwMDAxRjkyNiBc
XFUwMDAxRjkzNy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV07IiAvLyBFbW9q
aSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAiJEVtb2ppRm9yTW9kcyA9
IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0Mz
LVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFG
NDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAw
MDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxc
VTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkw
IFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFG
NjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAw
MDFGNkMwIFxcVTAwMDFGOTE4IFxcVTAwMDFGM0MyIFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NDIFxc
VTAwMDFGNTc0IFxcVTAwMDFGNTdBIFxcVTAwMDFGNkNDIFxcVTAwMDFGOTE5LVxcVTAwMDFGOTFF
IFxcVTAwMDFGOTI2IFxcVTAwMDFGOTMwIFxcVTAwMDFGOTMzLVxcVTAwMDFGOTM5IFxcVTAwMDFG
OTNDLVxcVTAwMDFGOTNFXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZp
ZXJzCi0jZWxzZQotICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxV
MDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxc
dTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAx
RjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUw
MDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBc
XFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4
NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAx
RjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUw
MDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2Vu
ZGlmCi0gICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIKLSAgICAi
JGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJEFM
UGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsiCi0gICAgIiRBTGNtID0gJEFMUGx1cyAkQ00q
OyIKLSAgICAiJEJBY20gPSAkQkEgJENNKjsiCi0gICAgIiRCQmNtID0gJEJCICRDTSo7IgotICAg
ICIkQjJjbSA9ICRCMiAkQ00qOyIKLSAgICAiJENMY20gPSAkQ0wgJENNKjsiCi0gICAgIiRDUGNt
ID0gJENQICRDTSo7IgotICAgICIkRVhjbSA9ICRFWCAkQ00qOyIKLSAgICAiJEdMY20gPSAkR0wg
JENNKjsiCi0gICAgIiRITGNtID0gJEhMICRDTSo7IgotICAgICIkSFljbSA9ICRIWSAkQ00qOyIK
LSAgICAiJEgyY20gPSAkSDIgJENNKjsiCi0gICAgIiRIM2NtID0gJEgzICRDTSo7IgotICAgICIk
SURjbSA9ICRJRCAkQ00qOyIKLSAgICAiJElOY20gPSAkSU4gJENNKjsiCi0gICAgIiRJU2NtID0g
JElTICRDTSo7IgotICAgICIkSkxjbSA9ICRKTCAkQ00qOyIKLSAgICAiJEpWY20gPSAkSlYgJENN
KjsiCi0gICAgIiRKVGNtID0gJEpUICRDTSo7IgotICAgICIkTlNjbSA9ICROUyAkQ00qOyIKLSAg
ICAiJE5VY20gPSAkTlUgJENNKjsiCi0gICAgIiRPUGNtID0gJE9QICRDTSo7IgotICAgICIkUE9j
bSA9ICRQTyAkQ00qOyIKLSAgICAiJFBSY20gPSAkUFIgJENNKjsiCi0gICAgIiRRVWNtID0gJFFV
ICRDTSo7IgotICAgICIkUkljbSA9ICRSSSAkQ00qOyIKLSAgICAiJFNZY20gPSAkU1kgJENNKjsi
Ci0gICAgIiRXSmNtID0gJFdKICRDTSo7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0Rm9y
d2FyZCA9Ci0gICAgIiEhZm9yd2FyZDsiCi0gICAgIiRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRM
RiAkTkwgJFpXICRDTV07IgotICAgICIkQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5MICRa
VyAkQ01dOyIKLSAgICAiJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQ
XTsiCi0gICAgIiRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRH
TCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107IgotICAgICIkQUxfRk9MTE9X
ID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsiCi0gICAgIiRMQjRCcmVha3MgPSBb
JEJLICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICRO
TF07IgotICAgICIkTEI4QnJlYWtzID0gWyRMQjRCcmVha3MgJFpXXTsiCi0gICAgIiRMQjhOb25C
cmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOyIKLSAgICAiJExCMThOb25CcmVha3Mg
PSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsiCi0gICAgIiRMQjE4QnJlYWtzID0gWyRMQjhCcmVh
a3MgJFNQXTsiCi0gICAgIiRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsi
Ci0gICAgIiRBTFBsdXMgJENNKzsiCi0gICAgIiRCQSAkQ00rOyIKLSAgICAiJEJCICRDTSs7Igot
ICAgICIkQjIgJENNKzsiCi0gICAgIiRDTCAkQ00rOyIKLSAgICAiJENQICRDTSs7IgotICAgICIk
RVggJENNKzsiCi0gICAgIiRHTCAkQ00rOyIKLSAgICAiJEhMICRDTSs7IgotICAgICIkSFkgJENN
KzsiCi0gICAgIiRIMiAkQ00rOyIKLSAgICAiJEgzICRDTSs7IgotICAgICIkSUQgJENNKzsiCi0g
ICAgIiRJTiAkQ00rOyIKLSAgICAiJElTICRDTSs7IgotICAgICIkSkwgJENNKzsiCi0gICAgIiRK
ViAkQ00rOyIKLSAgICAiJEpUICRDTSs7IgotICAgICIkTlMgJENNKzsiCi0gICAgIiROVSAkQ00r
OyIKLSAgICAiJE9QICRDTSs7IgotICAgICIkUE8gJENNKzsiCi0gICAgIiRQUiAkQ00rOyIKLSAg
ICAiJFFVICRDTSs7IgotICAgICIkUkkgJENNKzsiCi0gICAgIiRTWSAkQ00rOyIKLSAgICAiJFdK
ICRDTSs7IgotICAgICIkQ1IgJExGIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcz8gJExCNEJy
ZWFrcyB7MTAwfTsiCi0gICAgIiRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAi
JENNKyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcyBbJFNQICRaV107Igot
ICAgICIkQ0FOX0NNICRDTSogWyRTUCAkWlddOyIKLSAgICAiJENNKyBbJFNQICRaV107IgotICAg
ICIkRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFz
OyIKLSAgICAiJENBTl9DTSAkQ00rOyIKLSAgICAiJENNKzsiCi0gICAgIiRDQU5fQ00gJENNKiAk
V0pjbTsiCi0gICAgIiRMQjhOb25CcmVha3MgJFdKY207IgotICAgICIkQ00rICRXSmNtOyIKLSAg
ICAiJFdKY20gJENBTlRfQ007IgotICAgICIkV0pjbSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xj
bSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FOVF9DTTsiCi0gICAgIltbJExCOE5vbkJy
ZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOyIKLSAgICAiJENNKyBHTGNtOyIKLSAg
ICAiJExCOE5vbkJyZWFrcyAkQ0w7IgotICAgICIkQ0FOX0NNICRDTSogJENMOyIKLSAgICAiJENN
KyAkQ0w7IgotICAgICIkTEI4Tm9uQnJlYWtzICRDUDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ1A7
IgotICAgICIkQ00rICRDUDsiCi0gICAgIiRMQjhOb25CcmVha3MgJEVYOyIKLSAgICAiJENBTl9D
TSAkQ00qICRFWDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkSVM7Igot
ICAgICIkQ0FOX0NNICRDTSogJElTOyIKLSAgICAiJENNKyAkSVM7IgotICAgICIkTEI4Tm9uQnJl
YWtzICRTWTsiCi0gICAgIiRDQU5fQ00gJENNKiAkU1k7IgotICAgICIkQ00rICRTWTsiCi0gICAg
IiRPUGNtICRTUCogJENBTl9DTSAkQ00qOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOVF9DTTsiCi0g
ICAgIiRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsiCi0gICAgIiRRVWNtICRTUCogJE9QY207
IgotICAgICIoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsiCi0gICAgIiRCMmNtICRTUCogJEIy
Y207IgotICAgICIkTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOyIKLSAgICAiJENNKyAkUVVjbTsi
Ci0gICAgIiRRVWNtIC4/OyIKLSAgICAiJFFVY20gJExCMThOb25CcmVha3MgJENNKjsiCi0gICAg
IiRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7ICIKLSAgICAiJEJC
Y20gW14kQ0JdOyIKLSAgICAiJEJCY20gJExCMjBOb25CcmVha3MgJENNKjsiCi0gICAgIiRITGNt
ICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OyIKLSAgICAiJFNZY20gJEhMY207IgotICAgICIoJEFM
Y20gfCAkSExjbSkgJElOY207IgotICAgICIkQ00rICRJTmNtOyIKLSAgICAiJEVYY20gJElOY207
IgotICAgICIkSURjbSAkSU5jbTsiCi0gICAgIiRJTmNtICRJTmNtOyIKLSAgICAiJE5VY20gJElO
Y207IgotICAgICIkSURjbSAkUE9jbTsiCi0gICAgIiRBTGNtICROVWNtOyIKLSAgICAiJEhMY20g
JE5VY207IgotICAgICIkQ00rICROVWNtOyIKLSAgICAiJE5VY20gJEFMY207IgotICAgICIkTlVj
bSAkSExjbTsiCi0gICAgIiRQUmNtICRJRGNtOyIKLSAgICAiJFBSY20gKCRBTGNtIHwgJEhMY20p
OyIKLSAgICAiJFBPY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiKCRQUmNtIHwgJFBPY20pPyAo
JE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAk
Q1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87IgotICAgICIkSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRI
MmNtIHwgJEgzY20pOyIKLSAgICAiKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNtKTsiCi0g
ICAgIigkSlRjbSB8ICRIM2NtKSAkSlRjbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20g
fCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAk
SDJjbSB8ICRIM2NtKSAkUE9jbTsiCi0gICAgIiRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20g
fCAkSDJjbSB8ICRIM2NtKTsiCi0gICAgIigkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7
IgotICAgICIkQ00rICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRJU2NtICgkQUxjbSB8ICRITGNt
KTsiCi0gICAgIigkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNtOyIKLSAgICAiJENNKyAkT1Bj
bTsiCi0gICAgIiRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOyIKLSNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKLSAgICAiJFJJY20gJFJJY207IgotI2VuZGlmCi0gICAgIiRFbW9qaUZv
ck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgx
NFJldmVyc2UgPQotICAgICIhIXJldmVyc2U7IgotICAgICIkQ00rICRBTFBsdXM7IgotICAgICIk
Q00rICRCQTsiCi0gICAgIiRDTSsgJEJCOyIKLSAgICAiJENNKyAkQjI7IgotICAgICIkQ00rICRD
TDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkQ00rICRHTDsiCi0g
ICAgIiRDTSsgJEhMOyIKLSAgICAiJENNKyAkSFk7IgotICAgICIkQ00rICRIMjsiCi0gICAgIiRD
TSsgJEgzOyIKLSAgICAiJENNKyAkSUQ7IgotICAgICIkQ00rICRJTjsiCi0gICAgIiRDTSsgJElT
OyIKLSAgICAiJENNKyAkSkw7IgotICAgICIkQ00rICRKVjsiCi0gICAgIiRDTSsgJEpUOyIKLSAg
ICAiJENNKyAkTlM7IgotICAgICIkQ00rICROVTsiCi0gICAgIiRDTSsgJE9QOyIKLSAgICAiJENN
KyAkUE87IgotICAgICIkQ00rICRQUjsiCi0gICAgIiRDTSsgJFFVOyIKLSNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKyAkUkk7IgotI2VuZGlmCi0gICAgIiRDTSsgJFNZOyIK
LSAgICAiJENNKyAkV0o7IgotICAgICIkQ00rOyIKLSAgICAiJEFMX0ZPTExPVyAkQ00rIC8gKFsk
QksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFte
JE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsiCi0gICAgIlskUFJdIC8gJENNKyBbJEJLICRD
UiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOyIKLSAgICAiJExCNEJyZWFrcyBbJExCNE5vbkJyZWFr
cy0kQ01dOyIKLSAgICAiJExCNEJyZWFrcyAkQ00rICRDQU5fQ007IgotICAgICIkTEYgJENSOyIK
LSAgICAiWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJFNQICRaV10gJENN
KyAkQ0FOX0NNOyIKLSAgICAiJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZh
cj8gJEVtb2ppRm9yU2VxczsiCi0gICAgIiRDTSsgJENBTl9DTTsiCi0gICAgIiRDTSogJFdKICRD
TSogJENBTl9DTTsiCi0gICAgIiRDTSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIk
Q0FOVF9DTSAkQ00qICRXSjsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRXSjsiCi0gICAgIiRD
TSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOyIKLSAgICAiJENB
TlRfQ00gJENNKiAkR0w7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkR0w7IgotICAgICIkQ0wg
JENNKyAkQ0FOX0NNOyIKLSAgICAiJENQICRDTSsgJENBTl9DTTsiCi0gICAgIiRFWCAkQ00rICRD
QU5fQ007IgotICAgICIkSVMgJENNKyAkQ0FOX0NNOyIKLSAgICAiJFNZICRDTSsgJENBTl9DTTsi
Ci0gICAgIiRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENQIFskTEI4Tm9uQnJlYWtz
LSRDTV07IgotICAgICIkRVggWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRJUyBbJExCOE5v
bkJyZWFrcy0kQ01dOyIKLSAgICAiJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJENM
ICRDUCAkRVggJElTICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAiCi0gICAgIiRDTSogJENBTl9D
TSAkU1AqICRDTSogJE9QOyIKLSAgICAiJENBTlRfQ00gJFNQKiAkQ00qICRPUDsiCi0gICAgIiRB
TF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAkT1A7IgotICAgICIkQUxfRk9MTE9XX05PQ00g
JENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAk
Q00qICRPUDsiCi0gICAgIiRTWSAkQ00gJFNQKyAkT1A7IgotICAgICIkQ00qICRPUCAkU1AqICRD
TSogJFFVOyIKLSAgICAiJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJENN
KiAkQjIgJFNQKiAkQ00qICRCMjsiCi0gICAgIiRDTSogJFFVICRDTSogJENBTl9DTTsiCi0gICAg
IiRDTSogJFFVICRMQjE4Tm9uQnJlYWtzOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFFVOyIK
LSAgICAiJENBTlRfQ00gJENNKiAkUVU7IgotICAgICIkQ00qICgkQkEgfCAkSFkgfCAkTlMpICRD
TSogWyRMQjIwTm9uQnJlYWtzLSRDTV07IgotICAgICIkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01d
ICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogKCRI
WSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIkQ00qICRITCAkQ00qICRTWTsiCi0gICAgIiRDTSog
JElOICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAkSU4gJENNKiAkRVg7IgotICAg
ICIkQ00qICRJTiAkQ00qICRJRDsiCi0gICAgIiRDTSogJElOICRDTSogJElOOyIKLSAgICAiJENN
KiAkSU4gJENNKiAkTlU7IgotICAgICIkQ00qICRQTyAkQ00qICRJRDsiCi0gICAgIiRDTSogJE5V
ICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAk
TlU7IgotICAgICIkQ00qICRJRCAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwp
ICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87IgotICAgICIo
JENNKiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8
ICRTWSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87
IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOyIKLSAgICAiJENN
KiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOyIKLSAgICAiJENNKiAkSlQgJENNKiAoJEgz
IHwgJEpUKTsiCi0gICAgIiRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRK
TCk7IgotICAgICIkQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIK
LSAgICAiJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsiCi0gICAg
IiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAo
JEFMUGx1cyB8ICRITCkgJENNKiAkSVM7IgotICAgICIkQ00qICRPUCAkQ00qICgkQUxQbHVzIHwg
JEhMIHwgJE5VKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOyIK
LSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKiAkUkkgJENNKiAkUkk7Igot
I2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyI7Ci0KLXN0
YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVGb3J3YXJkID0KLSAgICAiISFzYWZlX2ZvcndhcmQ7
IgotICAgICJbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9u
YXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07
IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciog
dWF4MTRTYWZlUmV2ZXJzZSA9Ci0gICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAiJENNKyBbXiRD
TSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07IgotICAgICIkQ00rICRTUCAvIC47IgotICAgICIk
U1ArICRDTSogJE9QOyIKLSAgICAiJFNQKyAkQ00qICRRVTsiCi0gICAgIiRTUCsgJENNKiAoJENM
IHwgJENQKTsiCi0gICAgIiRTUCsgJENNKiAkQjI7IgotICAgICIkQ00qICgkSFkgfCAkQkEpICRD
TSogJEhMOyIKLSAgICAiKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsiCi0gICAgIigkQ0wg
fCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlv
bmFyeTsiOwotCiBzdGF0aWMgU3RyaW5nIG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKExpbmVC
cmVha0l0ZXJhdG9yTW9kZSBtb2RlLCBib29sIGlzQ0pLKQogewotICAgIFN0cmluZ0J1aWxkZXIg
cnVsZXNCdWlsZGVyOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRQcm9sb2d1ZSk7Ci0g
ICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1lbnRzQmVmb3JlKTsKICAgICBzd2l0
Y2ggKG1vZGUpIHsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6RGVmYXVsdDoKLSAg
ICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21E
ZWZhdWx0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25DSkspOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
S1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGlu
ZUJyZWFrSXRlcmF0b3JNb2RlOjpMb29zZToKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChp
c0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZUNKSyA6IHVheDE0QXNzaWdubWVudHND
dXN0b21Mb29zZU5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksg
PyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZU5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpO
b3JtYWw6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1l
bnRzQ3VzdG9tTm9ybWFsQ0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
UnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OlN0cmljdDoKLSAgICAgICAg
cnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RD
SksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7
CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSktS
dWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsKICAgICB9Ci0g
ICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIpOwotICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQodWF4MTRGb3J3YXJkKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVh
eDE0UmV2ZXJzZSk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVGb3J3YXJkKTsK
LSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2FmZVJldmVyc2UpOwotICAgIHJldHVybiBy
dWxlc0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gIiI7CiB9CiAKIC8vIFJlY29nbml6ZSBCQ1A0NyBjb21wbGlhbnQgcHJpbWFyeSBsYW5n
dWFnZSB2YWx1ZXMgb2YgJ3poJywgJ2phJywgJ2tvJwpAQCAtNzg4LDkgKzI1NCwyOSBAQCBUZXh0
QnJlYWtJdGVyYXRvciogb3BlbkxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYg
bG9jYWxlLCBMaW5lQnJlYWtJdAogICAgIGlmIChtb2RlID09IExpbmVCcmVha0l0ZXJhdG9yTW9k
ZTo6RGVmYXVsdCkKICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBsb2Nh
bGVJc0VtcHR5ID8gY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkgOiBsb2NhbGUuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOwogICAgIGVsc2UgewotICAgICAgICBV
UGFyc2VFcnJvciBwYXJzZVN0YXR1czsKLSAgICAgICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVy
YXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsKLSAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29w
ZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcnVsZXMu
bGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0dXMpOworICAgICAgICBCcmVh
a2luZ1J1bGVTZXQgcnVsZVNldCA9IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks7CisgICAg
ICAgIHN3aXRjaCAobW9kZSkgeworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6
RGVmYXVsdDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6
VUFYMTRDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpMb29zZToKKyAgICAgICAg
ICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZUNKSyA6IEJy
ZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZU5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6Tm9ybWFsOgorICAgICAgICAgICAgcnVs
ZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbENKSyA6IEJyZWFraW5n
UnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OlN0cmljdDoKKyAgICAgICAgICAgIHJ1bGVTZXQg
PSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3RDSksgOiBCcmVha2luZ1J1bGVT
ZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQocnVs
ZVNldCkpCisgICAgICAgICAgICB1YnJrSXRlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8VUJyZWFrSXRl
cmF0b3IqPihpdGVyYXRvcik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgVVBhcnNlRXJy
b3IgcGFyc2VTdGF0dXM7CisgICAgICAgICAgICBhdXRvIHJ1bGVzID0gbWFwTGluZUl0ZXJhdG9y
TW9kZVRvUnVsZXMobW9kZSwgaXNDSkspOworICAgICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29w
ZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcnVsZXMu
bGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0dXMpOworICAgICAgICB9CiAg
ICAgfQogICAgIC8vIGxvY2FsZSBjb21lcyBmcm9tIGEgd2ViIHBhZ2UgYW5kIGl0IGNhbiBiZSBp
bnZhbGlkLCBsZWFkaW5nIElDVQogICAgIC8vIHRvIGZhaWwsIGluIHdoaWNoIGNhc2Ugd2UgZmFs
bCBiYWNrIHRvIHRoZSBkZWZhdWx0IGxvY2FsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFr
SXRlcmF0b3IuaAppbmRleCA4YWZiNTU4MDIwMTAwMmJiZDJlZGQ1NzU2NWJjMzQxYjFhMDA2YTll
Li45NGZmN2Q2MDUzNzQ0ODNiNzUzZDBiNWRhYmQ3NDZjZWNlMDJlNDFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCkBAIC0zMSw2ICszMSwzMCBAQCBjbGFzcyBUZXh0
QnJlYWtJdGVyYXRvcjsKIAogZW51bSBjbGFzcyBMaW5lQnJlYWtJdGVyYXRvck1vZGUgeyBEZWZh
dWx0LCBMb29zZSwgTm9ybWFsLCBTdHJpY3QgfTsKIAorZW51bSBjbGFzcyBCcmVha2luZ1J1bGVT
ZXQgeworICAgIEN1cnNvck1vdmVtZW50LAorICAgIFVBWDE0Q0pLLAorICAgIFVBWDE0Tm9uQ0pL
LAorICAgIFVBWDE0TG9vc2VDSkssCisgICAgVUFYMTRMb29zZU5vbkNKSywKKyAgICBVQVgxNE5v
cm1hbENKSywKKyAgICBVQVgxNE5vcm1hbE5vbkNKSywKKyAgICBVQVgxNFN0cmljdENKSywKKyAg
ICBVQVgxNFN0cmljdE5vbkNKSworfTsKKworZXh0ZXJuIGNvbnN0IGNoYXIqIGN1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
bkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZUNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3ROb25DSktSdWxlczsKKworVGV4dEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJh
dG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpOworCiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8g
Y2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRv
CiAvLyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0
aGlzIGNhbiBiZSBkaWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlz
IFRoYWkgcHJlcGVuZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMu
bW0KaW5kZXggYmVmNWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVlOGU4OGEzODkyYy4uM2FiNjgy
NTM5NzY4NjUyMjU0M2ZhY2I5MWEzOWY1OTBlYTg4YzA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1t
CkBAIC0yMSwxMiArMjEsMTMzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0
b3IuaCIKKworI2lmIGRlZmluZWQoVV9TSE9XX0NQTFVTUExVU19BUEkpCisjdW5kZWYgVV9TSE9X
X0NQTFVTUExVU19BUEkKKyNlbmRpZgorI2RlZmluZSBVX1NIT1dfQ1BMVVNQTFVTX0FQSSAxCisK
KyNpbmNsdWRlIDx1bmljb2RlL3JiYmkuaD4KKyNpbmNsdWRlIDx1bmljb2RlL3VkYXRhLmg+Cisj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCitAaW50ZXJmYWNlIFdURkJ1bmRsZUZpbmRl
ciA6IE5TT2JqZWN0CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXVEZCdW5kbGVGaW5kZXIKK0Bl
bmQKKwogbmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdCBpbnQgbWF4TG9jYWxlU3RyaW5n
TGVuZ3RoID0gMzI7CiAKK3N0cnVjdCBSdWxlQ2FjaGUgeworICAgIHN0ZDo6dW5pcXVlX3B0cjxS
dWxlQmFzZWRCcmVha0l0ZXJhdG9yPiBpdGVyYXRvcjsKKyAgICBib29sIGZhaWxlZCB7IGZhbHNl
IH07Cit9OworCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJy
ZWFraW5nUnVsZVNldCBydWxlU2V0KQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxl
Q2FjaGU+IGN1cnNvck1vdmVtZW50SXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTRDSktJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNE5vbkNKS0l0ZXJhdG9yOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0TG9vc2VDSktJdGVy
YXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgx
NExvb3NlTm9uQ0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNo
ZT4gbGluZUJyZWFrVUFYMTROb3JtYWxDSktJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNE5vcm1hbE5vbkNKS0l0ZXJhdG9yOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0U3RyaWN0Q0pL
SXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFr
VUFYMTRTdHJpY3ROb25DSktJdGVyYXRvcjsKKworICAgIE5TU3RyaW5nICpmaWxlTmFtZUJhc2U7
CisgICAgUnVsZUNhY2hlKiBjYWNoZSA9IG51bGxwdHI7CisKKyAgICBzd2l0Y2ggKHJ1bGVTZXQp
IHsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQ6CisgICAgICAgIGZp
bGVOYW1lQmFzZSA9IEAiQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzIjsKKyAgICAgICAgY2Fj
aGUgPSAmY3Vyc29yTW92ZW1lbnRJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBA
IkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtV
QVgxNENKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5n
UnVsZVNldDo6VUFYMTROb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vbkNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0Tm9u
Q0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxl
U2V0OjpVQVgxNExvb3NlQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0TG9v
c2VDSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1
bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFr
VUFYMTRMb29zZU5vbkNKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9
IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSyI7CisgICAgICAgIGNhY2hlID0gJmxp
bmVCcmVha1VBWDE0Tm9ybWFsQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzoKKyAgICAgICAgZmlsZU5h
bWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLIjsKKyAgICAgICAg
Y2FjaGUgPSAmbGluZUJyZWFrVUFYMTROb3JtYWxOb25DSktJdGVyYXRvci5nZXQoKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Q0pLOgorICAg
ICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksiOwor
ICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNFN0cmljdENKS0l0ZXJhdG9yLmdldCgpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3ROb25D
Sks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0U3RyaWN0Tm9uQ0pLSXRl
cmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEFTU0VSVChjYWNoZSk7
CisKKyAgICBpZiAoY2FjaGUtPmZhaWxlZCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICBpZiAoIWNhY2hlLT5pdGVyYXRvcikgeworICAgICAgICBOU0J1bmRsZSAqYnVuZGxlID0gW05T
QnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXVEZCdW5kbGVGaW5kZXIgY2xhc3NdXTsKKyAgICAgICAg
TlNTdHJpbmcgKnBhdGggPSBbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpmaWxlTmFtZUJhc2Ugb2ZU
eXBlOkAiYnJrIiBpbkRpcmVjdG9yeTpAIkJyZWFraW5nUnVsZXMiXTsKKyAgICAgICAgaWYgKCFw
YXRoKSB7CisgICAgICAgICAgICBjYWNoZS0+ZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgTlNTdHJpbmcgKmRpcmVjdG9yeSA9
IFtwYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF07CisgICAgICAgIFVFcnJv
ckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworCisjaWYgUExBVEZPUk0oSU9TKQorICAg
ICAgICB1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEQVRBX0ZJTEVTX0ZJUlNULCAmZXJyb3JDb2RlKTsK
KyAgICAgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJST1IpCisgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyNlbmRpZgorCisgICAgICAgIExvY2FsVURhdGFNZW1vcnlQb2ludGVyIGRh
dGEodWRhdGFfb3BlbihbZGlyZWN0b3J5IFVURjhTdHJpbmddLCAiYnJrIiwgW2ZpbGVOYW1lQmFz
ZSBVVEY4U3RyaW5nXSwgJmVycm9yQ29kZSkpOworICAgICAgICBpZiAoZXJyb3JDb2RlICE9IFVf
WkVST19FUlJPUikgeworICAgICAgICAgICAgY2FjaGUtPmZhaWxlZCA9IHRydWU7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorCisjaWYgUExBVEZPUk0oSU9TKQorICAg
ICAgICB1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEQVRBX0RFRkFVTFRfQUNDRVNTLCAmZXJyb3JDb2Rl
KTsKKyAgICAgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJST1IpCisgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorCisgICAgICAgIGNhY2hlLT5pdGVyYXRvciA9IHN0ZDo6
bWFrZV91bmlxdWU8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4oZGF0YS5vcnBoYW4oKSwgZXJyb3JD
b2RlKTsKKyAgICAgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJST1IpIHsKKyAgICAgICAg
ICAgIGNhY2hlLT5mYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgY2FjaGUtPml0ZXJhdG9yID0g
bnVsbHB0cjsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgfQor
CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGV4dEJyZWFrSXRlcmF0b3IqPihzdGQ6Om1h
a2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+KCpjYWNoZS0+aXRlcmF0b3IpLnJlbGVh
c2UoKSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0ZXh0QnJl
YWtMb2NhbGVQcmVmZXJlbmNlKCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+
IGxvY2FsZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlWYWx1ZShDRlNUUigiQXBwbGVUZXh0
QnJlYWtMb2NhbGUiKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZSBi
L1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQppbmRleCAyOWEwOTY5MDM4ZmFhNzQ0ZTFhOGM1
OGYzNTZhZDA3M2YwMDUyNWJkLi44MWY1NGE1NmFkNjk1M2Q3YjFlMjBjODhmYTg1YmJkZGQxZjA3
ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKKysrIGIvU291cmNl
L2NtYWtlL1dlYktpdEZTLmNtYWtlCkBAIC0yNCw2ICsyNCw3IEBAIGlmIChOT1QgVE9PTFNfRElS
KQogZW5kaWYgKCkKIAogc2V0KERFUklWRURfU09VUkNFU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJ
Un0vRGVyaXZlZFNvdXJjZXMiKQorc2V0KERFUklWRURfU09VUkNFU19XVEZfRElSICIke0NNQUtF
X0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pB
VkFTQ1JJUFRDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9KYXZh
U2NyaXB0Q29yZSIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSICIke0NNQUtFX0JJ
TkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUiKQogc2V0KERFUklWRURfU09VUkNFU19X
RUJLSVRMRUdBQ1lfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktp
dExlZ2FjeSIpCkBAIC0zMiw2ICszMyw4IEBAIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9E
SVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0MiIpCiBzZXQoREVS
SVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJp
dmVkU291cmNlcy9XZWJJbnNwZWN0b3JVSSIpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJ
VkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfSkKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtE
RVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9T
T1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMpCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7Q01B
S0VfQklOQVJZX0RJUn0vU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUpCiAKIGZpbGUoTUFL
RV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfSkKZGlmZiAt
LWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAxY2ZhZGI1MzdjMjdiM2NmZDlkNmVm
Nzc1ZWVlZDI3ZTJiMWZjMGQ1Li44MTI5OThhMTRkMzIyM2YxZjkyNzJlODNjZTc0ZmZjOTUxNGE3
ZmY0IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTYtMTItMTQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
KworICAgICAgICBDb21waWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSBy
YXRoZXIgdGhhbiBydW4gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2U6CisKIDIwMTYtMTItMTAg
IEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAgICAgICAgIFtjbWFr
ZV0gSW5jbHVkZSBXVEYsIEpTQywgYW5kIFdlYkNvcmUgaGVhZGVycyBhdXRvbWF0aWNhbGx5IHRv
IHRhcmdlcnMgdXNpbmcgdGhlbQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297205</attachid>
            <date>2016-12-15 11:24:07 -0800</date>
            <delta_ts>2016-12-15 15:27:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20161215112314.patch</filename>
            <type>text/plain</type>
            <size>293163</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
NDM4ZWFmYzk2NTk4NmY3ZTNjODQ4M2IwODk2MDhkN2M2YzYxNWQ1Li5hNDdjYWRkM2RiZTVkMmUw
MWFmODBkYzEyOTIzMTFlNmNiYjFiMmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNi0xMi0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbmNsdWRlIHRoZSBieXRlY29kZSBmaWxlcyBpbnNpZGUgdGhl
IEphdmFTY3JpcHRDb3JlIGJ1bmRsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMTItMTUgIEtlaXRoIE1pbGxlciAgPGtlaXRo
X21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IDY0LWJpdCBzaGlmdCBmYW1pbHkgV2Fz
bSBvcGNvZGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCmluZGV4IGMzZjI3ZGE2YWRjMGE5NTFkMjNkZDhlNDRjNmU2MGIzYTBlNjhmNGEu
LjFkYmY3YzQ2MzlkZTMwZmQzMGI1YjBlODI1NDFkZGRmNDVlYjkyMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
ODQgQEAKKzIwMTYtMTItMTUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KKworICAgICAgICBDb21waWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGlt
ZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIG1hY09TIGFuZCBpT1MgU0RLcyBpbmNsdWRlIGEgdG9vbCwgaWN1
Z2VuYnJrLCB3aGljaCBjb21waWxlcyBJQ1UgYnJrIGJyZWFraW5nCisgICAgICAgIHJ1bGVzIGlu
dG8gYnl0ZWNvZGUuIFByZXZpb3VzbHksIHRoaXMgY29tcGlsYXRpb24gd2FzIGRvbmUgYXQgcnVu
dGltZSBpbnNpZGUgdGhlIElDVQorICAgICAgICB1YnJrX29wZW5SdWxlcygpIGZ1bmN0aW9uLiBN
b3ZpbmcgdGhpcyBjb21waWxhdGlvbiBzdGVwIHRvIGNvbXBpbGUgdGltZSByYXRoZXIgdGhhbgor
ICAgICAgICBidWlsZCB0aW1lIGNhdXNlcyBhIHBlcmZvcm1hbmNlIGJvb3N0LgorCisgICAgICAg
IFByZXZpb3VzbHksIHRoZSBzb3VyY2UgZm9yIHRoZSBicmVha2luZyBydWxlcyB3YXMgYXNzZW1i
bGVkIGJ5IGNvbmNhdGVuYXRpbmcgQyBzdHJpbmdzCisgICAgICAgIGF0IHJ1bnRpbWUuIE5vdywg
dGhlIHNvdXJjZSBpcyBjb250YWluZWQgd2l0aGluIGEgZmV3IHRleHQgZmlsZXMgaW5zaWRlCisg
ICAgICAgIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMuIEEgYnVpbGQgc3RlcCAodXNpbmcgYSBNYWtl
ZmlsZSkgd2lsbCBnZW5lcmF0ZSBzb3VyY2UgY29kZQorICAgICAgICBjb250YWluaW5nIHRoZXNl
IHN0cmluZ3MsIGFuZCBXVEYgd2lsbCBpbmNsdWRlIHRoZXNlIHNvdXJjZSBmaWxlcyBpbiB0aGUg
c2FtZSB3YXkgYW55CisgICAgICAgIG9mIG91ciBwcm9qZWN0cyB1c2UgZ2VuZXJhdGVkIHNvdXJj
ZXMuIEhvd2V2ZXIsIGFkZGl0aW9uYWxseSwgb24gT1NlcyB3aGljaCBzdXBwb3J0IGl0LAorICAg
ICAgICB0aGVzZSBzdHJpbmdzIGdldCBjb21waWxlZCBkaXJlY3RseSBpbnRvIElDVSBieXRlY29k
ZSwgYW5kIHRoZW4gaW5jbHVkZWQgaW4gdGhlCisgICAgICAgIGZyYW1ld29yayBidW5kbGUuIEJl
Y2F1c2UgV1RGIGdldHMgc3RhdGljYWxseSBsaW5rZWQgaW50byBKYXZhU2NyaXB0Q29yZSwgdGhp
cyBpcyB0aGUKKyAgICAgICAgYnVuZGxlIHdoaWNoIGluY2x1ZGVzIHRoZSBieXRlY29kZSBmaWxl
cy4KKworICAgICAgICBBdCBydW50aW1lLCB3ZSBmaXJzdCBjaGVjayBpZiB3ZSBoYXZlIGEgZmls
ZSBpbiBvdXIgYnVuZGxlIG9mIHRoZSBhcHByb3ByaWF0ZSBuYW1lLAorICAgICAgICBhbmQgdGhl
biBzZWUgaWYgSUNVIGNhbiBvcGVuIGl0IHVzaW5nIGl0cyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
IGludGVyZmFjZSAod2hpY2gKKyAgICAgICAgaW5jbHVkZXMgYSB2ZXJzaW9uIGNoZWNrKS4gSWYg
YW55IG9mIHRoZXNlIGNoZWNrcyBmYWlsLCBvciBpZiB3ZSdyZSBvbiBhIHBvcnQgd2hpY2gKKyAg
ICAgICAgZG9lc24ndCBoYXZlIHRoZSBub3Rpb24gb2YgYnVuZGxlcywgd2Ugd2lsbCB1c2UgdGhl
IEMgc3RyaW5ncyBnZW5lcmF0ZWQgYWJvdmUsIGFuZAorICAgICAgICBwYXNzIHRoZW0gdG8gdWJy
a19vcGVuUnVsZXMoKSB0aGUgc2FtZSB3YXkgd2Ugd2VyZSBkb2luZyBiZWZvcmUgdGhpcyBwYXRj
aC4KKworICAgICAgICBUaGUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBpbnRlcmZhY2UgaW4gSUNV
IHJlcXVpcmVzIGFkZGluZyBzb21lIG1vcmUgb2YgSUNVJ3MgcHVibGljCisgICAgICAgIGhlYWRl
cnMgaW50byBXZWJLaXQuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBpY3UvdW5pY29kZS9icmtpdGVyLmg6IEFkZGVkLgorICAgICAgICAoQnJl
YWtJdGVyYXRvcjo6aXNCdWZmZXJDbG9uZSk6CisgICAgICAgICogaWN1L3VuaWNvZGUvY2hhcml0
ZXIuaDogQWRkZWQuCisgICAgICAgIChGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3I6Om9wZXJhdG9y
IT0pOgorICAgICAgICAoQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvU3RhcnQpOgorICAgICAgICAo
Q2hhcmFjdGVySXRlcmF0b3I6OnNldFRvRW5kKToKKyAgICAgICAgKENoYXJhY3Rlckl0ZXJhdG9y
OjpzdGFydEluZGV4KToKKyAgICAgICAgKENoYXJhY3Rlckl0ZXJhdG9yOjplbmRJbmRleCk6Cisg
ICAgICAgIChDaGFyYWN0ZXJJdGVyYXRvcjo6Z2V0SW5kZXgpOgorICAgICAgICAoQ2hhcmFjdGVy
SXRlcmF0b3I6OmdldExlbmd0aCk6CisgICAgICAgICogaWN1L3VuaWNvZGUvbG9jaWQuaDogQWRk
ZWQuCisgICAgICAgIChMb2NhbGU6Om9wZXJhdG9yIT0pOgorICAgICAgICAoTG9jYWxlOjpnZXRD
b3VudHJ5KToKKyAgICAgICAgKExvY2FsZTo6Z2V0TGFuZ3VhZ2UpOgorICAgICAgICAoTG9jYWxl
OjpnZXRTY3JpcHQpOgorICAgICAgICAoTG9jYWxlOjpnZXRWYXJpYW50KToKKyAgICAgICAgKExv
Y2FsZTo6Z2V0TmFtZSk6CisgICAgICAgIChMb2NhbGU6OmlzQm9ndXMpOgorICAgICAgICAqIGlj
dS91bmljb2RlL3JiYmkuaDogQWRkZWQuCisgICAgICAgIChSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
OjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBpY3UvdW5pY29kZS9zY2hyaXRlci5oOiBBZGRlZC4K
KyAgICAgICAgKiBpY3UvdW5pY29kZS91Y2FzZW1hcC5oOiBBZGRlZC4KKyAgICAgICAgKiBpY3Uv
dW5pY29kZS91Y2hyaXRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBpY3UvdW5pY29kZS91ZGF0YS5o
OiBBZGRlZC4KKyAgICAgICAgKiBpY3UvdW5pY29kZS91bWlzYy5oOiBBZGRlZC4KKyAgICAgICAg
KiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U6
IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6
CisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxv
Z3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclByb2xvZ3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZU5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ6IEFkZGVk
LgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0
ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KToKKyAg
ICAgICAgKFdURjo6Y3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjayk6Cisg
ICAgICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3IpOgorICAgICAgICAoV1RGOjptYXBM
aW5lSXRlcmF0b3JNb2RlVG9SdWxlcyk6CisgICAgICAgIChXVEY6Om9wZW5MaW5lQnJlYWtJdGVy
YXRvcik6CisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDoKKyAgICAgICAg
KiB3dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbToKKyAgICAg
ICAgKFdURjo6Y3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KToKKwogMjAxNi0xMi0xNSAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBPcHRpbWl6
ZSBLcmFrZW4gc3RyaW5naWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBjMjQ0
M2FkMTQyZjAzN2FlYzc3Y2VhOTUxYTQ2M2MyNWFlMDYxNGIuLjkyNDQ2OTgwNTQ2NGVlODJjOTlk
NjVkOTcyZDgyMWM5Y2Y0YmExN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
MjA2LDYgKzEyMDYsNyBAQAogCQkxQTI4RDRBODE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdS
ZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQTI4RDRBNzE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUE4ODI2QjE2NTND
NENEMUE2NDI5ODNCIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QjQ3RjIzNDM2NkM0QjcyQUM4NTJB
N0UgLyogVGVtcGxhdGVSZWdpc3RyeUtleVRhYmxlLmNwcCAqLzsgfTsKIAkJMUFDRjczNzcxNzFD
QTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUFDRjczNzYxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwICovOyB9
OworCQkxQ0QxODc5MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNEMTg3OEYxRDU1OTYxMjAw
Q0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi87IH07CiAJCTI2MDBCNUE2MTUyQkFBQTcwMDkxRUU1
RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIu
Y3BwICovOyB9OwogCQkyNjAwQjVBNzE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE1
MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oICovOyB9OwogCQkyNjJEODVCNjFD
MEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MkQ4NUI0MUMwRDY1MEYw
MDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovOyB9OwpAQCAtMzU5
MCw2ICszNTkxLDcgQEAKIAkJMUM5MDUxNDUwQkE5RThBNzAwODFFOUQwIC8qIEJhc2UueGNjb25m
aWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZpZzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEEwRDMyQzM5QTAwNDFCQ0ZGIC8qIEphdmFT
Y3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNjcmlwdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QjBEMzJDMzlBMDA0MUJDRkYgLyog
SmF2YVNjcmlwdENvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNj
cmlwdENvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OEYxRDU1OTYx
MjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBmb2xkZXI7IG5hbWUgPSBCcmVha2luZ1J1bGVzOyBwYXRoID0g
Li4vV1RGL0JyZWFraW5nUnVsZXM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MDBC
NUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0cmluZ0pvaW5lci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5l
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0cmluZ0pvaW5lci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjJEODVCNDFDMEQ2NTBGMDA2QUNCNjEgLyog
QWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHBhdGggPSBiMy9h
aXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTU5MDcsNiArNTkwOSw3IEBACiAJCTY1MEZERjhEMDlEMEZDQTcwMDc2OUU1NCAv
KiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTFDRDE4NzhGMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovLAog
CQkJCUFEMkZDQzBBMURCNTlDNTkwMEIzRTczNiAvKiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNv
bnN0cnVjdG9yLmx1dC5oICovLAogCQkJCUFEMkZDQzBCMURCNTlDNTkwMEIzRTczNiAvKiBXZWJB
c3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5sdXQuaCAqLywKIAkJCQlBRDJGQ0MwQzFEQjU5
QzU5MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmx1dC5oICovLApA
QCAtOTI2MCw2ICs5MjYzLDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJ
CQlmaWxlcyA9ICgKIAkJCQlBNTNGMUFDMDE4QzkwRjhGMDA3MkVCNkQgLyogZnJhbWV3b3JrLnNi
IGluIFJlc291cmNlcyAqLywKKwkJCQkxQ0QxODc5MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtp
bmdSdWxlcyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBkOWUyNTk2ZTU4YWVmNTczYzczOGNhYzhhNzQ1NWRhNTU3NTMyMjViLi44
ZTk2MDQwM2M1NWEwN2U1ZmIyMmIzNjdkMmEzOGQ5ODU0YjkzODE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcsNiArNywxNyBAQAogCW9iamVjdHMgPSB7
CiAKIC8qIEJlZ2luIFBCWEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICovCisJCTFDRDE4NzgxMUQ1
NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhBZ2dy
ZWdhdGVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMUNEMTg3ODMxRDU1Njk1
QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFy
Z2V0ICJEZXJpdmVkIFNvdXJjZXMiICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJCQkJMUNEMTg3
ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVyYXRlIERlcml2ZWQgU291cmNlcyAqLywKKwkJCSk7
CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkpOworCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMi
OworCQkJcHJvZHVjdE5hbWUgPSAiQ29weSBXVEYgSGVhZGVycyI7CisJCX07CiAJCTY1QUZBMTZG
MTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJY
QWdncmVnYXRlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDY1QUZBMjg4MTYz
MEI5NzcwMDNENzIzQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0
ZVRhcmdldCAiQ29weSBXVEYgSGVhZGVycyIgKi87CkBAIC04NCw3ICs5NSw2IEBACiAJCTE0NDdB
RUM2MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUM1MThGQ0U1NzcwMEIz
RDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKIAkJMTQ0N0FFQzcxOEZDRTU4MDAw
QjNEN0ZGIC8qIGxpYldURi5hIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUQyNDdCNjIxNDY4OUI4NjAwRTc4Qjc2IC8qIGxpYldURi5hICovOyB9Owog
CQkxNDQ3QUVDOTE4RkNFNTk0MDBCM0Q3RkYgLyogbWJtYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQzgxOEZDRTU5NDAwQjNEN0ZG
IC8qIG1ibWFsbG9jLmNwcCAqLzsgfTsKLQkJMTQ0N0FFQ0IxOEZDRTVCOTAwQjNEN0ZGIC8qIGxp
YmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLzsg
fTsKIAkJMTQ2OTQxOTIxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2OTQxOTAxNkVBQUY2RDAw
MjRFMTQ2IC8qIFJ1bkxvb3BUaW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7
IH07IH07CiAJCTE0Njk0MTkzMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXJDRi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDY5NDE5MTE2
RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyQ0YuY3BwICovOyB9OwogCQkxNDY5NDE5NjE2
RUFBRkY4MDAyNEUxNDYgLyogU2NoZWR1bGVQYWlyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDY5NDE5NDE2RUFBRkY4MDAyNEUxNDYgLyogU2NoZWR1
bGVQYWlyLmggKi87IH07CkBAIC0zMzcsNiArMzQ3LDE2IEBACiAJCUE4QTQ3NDhDMTUxQTgyNjQw
MDQxMjNGRiAvKiBjb25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAvKiBjb25maWcuaCAqLzsgfTsKIAkJ
QUQ3QzQzNEIxREQyQTRBNzAwMjY4ODhCIC8qIEV4cGVjdGVkLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDdDNDM0QTFERDJBNEE3MDAyNjg4OEIgLyog
RXhwZWN0ZWQuaCAqLzsgfTsKIAkJQjM4RkQ3QkQxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVE
ZWZpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MzhGRDdCQzE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCAqLzsgfTsKKwkJQzJC
QTU0M0UxRDU4NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDQTE4RkNFNUI5MDBCM0Q3
RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLzsgfTsKKwkJQzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4
IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUExRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwICovOyB9OworCQlDMkNBMzdFQjFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UyMUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwICovOyB9OworCQlDMkNB
MzdFQzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Ez
N0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksu
Y3BwICovOyB9OworCQlDMkNBMzdFRDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMkNBMzdFNDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTYxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovOyB9OworCQlD
MkNBMzdGMDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENK
Sy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNB
MzdFNzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5j
cHAgKi87IH07CisJCUMyQ0EzN0YxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLzsgfTsKIAkJQzRGOEE5MzcxOUM2NUVCNDAwQjJCMTVE
IC8qIFN0b3B3YXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzRGOEE5MzYxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oICovOyB9OwogCQlD
OEIwRTFBMUUwMUE0ODZFQjk1RTBEMTEgLyogSW5kZXhTZXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzdFMUQ3REJEODRBQzM4RkFFNEQzNCAvKiBJ
bmRleFNldC5oICovOyB9OwogCQlDOTE2Qjk3NUYwMkY0RjdFOEI0QUIxMkQgLyogSW5kZXhNYXAu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVCNDMzODNB
NUQwQjQ2M0M5NDMzRDkzMyAvKiBJbmRleE1hcC5oICovOyB9OwpAQCAtMzcxLDYgKzM5MSwxMyBA
QAogCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzY7CiAJ
CQlyZW1vdGVJbmZvID0gV1RGOwogCQl9OworCQkxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyog
UEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVBy
b3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gNUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFBy
b2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3Ry
aW5nID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDOworCQkJcmVtb3RlSW5mbyA9ICJEZXJpdmVk
IFNvdXJjZXMiOworCQl9OwogCQk2NUFGQTI4RDE2MzBCOTlFMDAzRDcyM0MgLyogUEJYQ29udGFp
bmVySXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJ
Y29udGFpbmVyUG9ydGFsID0gNUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2Jq
ZWN0ICovOwpAQCAtNDgyLDYgKzUwOSwxOCBAQAogCQkxQzE4MUM4RDFEMzA3QUI4MDBGNUZBMTYg
LyogVVRleHRQcm92aWRlclVURjE2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFDMTgxQzhFMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzk1MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0
QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgcGF0aCA9
IG1hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQ0I0RkI5NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk1MUQ1NTlB
NjkwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlTm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTgx
RDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0ICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlBMUQ1NTlCMjMwMEY5RkUzOCAvKiBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3ROb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0
RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQ7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhBMUQ1NThBRDMwMENDN0RFQyAvKiBEZXJp
dmVkU291cmNlcy5tYWtlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC54bWw7IG5hbWUgPSBEZXJpdmVkU291cmNlcy5tYWtlOyBwYXRoID0gd3Rm
L0Rlcml2ZWRTb3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHVzZXNUYWJzID0g
MTsgfTsKKwkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVDIC8qIEN1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVC
cmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVh
a0l0ZXJhdG9yUHJvbG9ndWUudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkE0
N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODkxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVRocmVhZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjE0N0IwODE1RERDQ0RDMDBEREI5MDcgLyogSW50
ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC03MTEsNiArNzUwLDE2IEBACiAJCUE4QTQ3NDhCMTUxQTgyNjQwMDQxMjNGRiAvKiBjb25m
aWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEN0M0MzRBMUREMkE0QTcwMDI2ODg4QiAvKiBFeHBlY3Rl
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeHBlY3RlZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCMzhGRDdCQzE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVy
ZURlZmluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmVhdHVyZURlZmlu
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJCQTU0M0YxRDU4NzRFNjAwMEEz
MzMyIC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9
IEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdF
MTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pL
LmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcDsgcGF0
aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwOyBw
YXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNDFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgcGF0aCA9
IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBwYXRoID0gQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7IHBhdGgg
PSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsgcGF0
aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3Bw
OyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzRGOEE5MzYxOUM2NUVCNDAwQjJC
MTVEIC8qIFN0b3B3YXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9w
d2F0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUExNTg1N0QwMzAw
QjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNZWRpYVRpbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdB
QjE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhVGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzQy
LDcgKzc5MSw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMg
PSAoCiAJCQkJMTQ0N0FFQzYxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8sCi0JCQkJMTQ0N0FFQ0IxOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmlj
dWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQlDMkJBNTQzRTFENTg2QUY0MDAwQTMz
MzIgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovLAogCQkJCTE0NDdBRUM3MThG
Q0U1ODAwMEIzRDdGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtNzc5LDYgKzgyOCwyNSBA
QAogCQkJcGF0aCA9IGljdTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTFD
RDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0geworCQkJaXNhID0g
UEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDMkJBNTQzRjFENTg3NEU2MDAwQTMzMzIg
LyogR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ICovLAorCQkJCTFDRDE4NzkyMUQ1NTk4
RTEwMENDN0RFQyAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFD
RDE4NzkzMUQ1NTk5NjUwMENDN0RFQyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAq
LywKKwkJCQkxQ0I0RkI5NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NENKSy50eHQgKi8sCisJCQkJMUNCNEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1
NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICov
LAorCQkJCTFDQjRGQjk4MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIy
MzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJ
CTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFr
SXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8sCisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7
CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1
NjhEMUIgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTgwMCwxMCArODY4LDEyIEBACiAJCTVEMjQ3QjU3MTQ2ODlCODYwMEU3OEI3NiA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OEExRDU1OEFEMzAw
Q0M3REVDIC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAw
RTc4Qjc2IC8qIENvbmZpZ3VyYXRpb25zICovLAogCQkJCTE0MDIyRjNGMThGNUMzRTUwMDdGRjBF
QiAvKiBMaWJyYXJpZXMgKi8sCiAJCQkJNUQyNDdCNjMxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2R1
Y3RzICovLAogCQkJCTVEMjQ3Qjc2MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJCQkJ
QzJDQTM3REYxRDU1QzhEODAwNDg2Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3
QUVDNTE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0
N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAt
MTE2Miw2ICsxMjMyLDcgQEAKIAkJQThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1
NTk4RTEwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovLAogCQkJCUE1QkExNUY2MTgyNDM1OUUw
MEE4MkU2OSAvKiBjZiAqLywKIAkJCQkxQzE4MUM4ODFEMzA3QUI4MDBGNUZBMTYgLyogaWN1ICov
LAogCQkJCUE1QkExNUYxMTgyNDMzOUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMjM5LDYgKzEz
MTAsMjMgQEAKIAkJCXBhdGggPSBpY3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9
OworCQlDMkNBMzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFENTVDOTcx
MDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJCQlDMkNB
MzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8s
CisJCQkJQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZUNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTQxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwICovLAorCQkJCUMyQ0Ez
N0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNw
cCAqLywKKwkJCQlDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwICovLAorCQkJCUMyQ0EzN0U4MUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAq
LywKKwkJCSk7CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV1RGOworCQkJc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsK
IAkJQ0U0NjUxNkMxOURCMUZCNDAwM0VDQTA1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE1NzAsNiArMTY1OCw3IEBACiAJCQlidWlsZFJ1
bGVzID0gKAogCQkJKTsKIAkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCQkxQ0QxODc4ODFENTU2OTg4
MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2MzBCOTlF
MDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gV1RG
OwpAQCAtMTYwMCwxMiArMTY4OSwyNyBAQAogCQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0
Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovLAogCQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAv
KiBDb3B5IFdURiBIZWFkZXJzICovLAorCQkJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBE
ZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMTQ0N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFs
bG9jICovLAogCQkJKTsKIAkJfTsKIC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyog
QmVnaW4gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3ODIxRDU1
Njk1QzAwQ0M3REVDIC8qIEdlbmVyYXRlIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5h
bWUgPSAiR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJ
KTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQ
YXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9E
VUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElS
fS9EZXJpdmVkU291cmNlcy9XVEZcIlxuZW52XG4vYmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIg
V1RGXG5leHBvcnQgV1RGPVwiV1RGXCJcblxuaWYgWyAhIC1kIEJyZWFraW5nUnVsZXMgXTsgdGhl
blxuICAgIG1rZGlyIEJyZWFraW5nUnVsZXNcbmZpXG5cbmlmIFsgXCIkTUFDT1NYX0RFUExPWU1F
TlRfVEFSR0VUXCIgPT0gXCIxMC4xMFwiIF0gOyB0aGVuXG4gICAgZXhwb3J0IEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVD0wXG5lbHNlXG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VD0xXG5maVxuXG5pZiBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBc
IiBdIHx8IFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMVwiIF0gfHwg
WyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEwLjEyXCIgXSB8fCBbIFwiJFNE
S19WRVJTSU9OX01BSk9SXCIgPT0gXCI5MDAwMFwiIF0gfHwgWyBcIiRTREtfVkVSU0lPTl9NQUpP
UlwiID09IFwiMTAwMDAwXCIgXTsgdGhlblxuICAgIGV4cG9ydCBIQVZFX0lDVUdFTkJSSz0wXG5l
bHNlXG4gICAgZXhwb3J0IEhBVkVfSUNVR0VOQlJLPTFcbmZpXG5cbmlmIFsgXCIke0FDVElPTn1c
IiA9IFwiYnVpbGRcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsXCIgLW8gXCIke0FDVElP
Tn1cIiA9IFwiaW5zdGFsbGhkcnNcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsYXBpXCIg
XTsgdGhlblxubWFrZSAtLW5vLWJ1aWx0aW4tcnVsZXMgLWYgXCJXVEYvd3RmL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2VcIiAtaiBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5hY3RpdmVjcHVgIFNES1JPT1Q9
XCIke1NES1JPT1R9XCJcbmZpIjsKKwkJfTsKIAkJNjVBRkExNzAxNjMwQjk3NzAwM0Q3MjNDIC8q
IENvcHkgV1RGIEhlYWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhh
c2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMTYzNiw2ICsxNzQwLDgg
QEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQlB
OEE0NzM4NjE1MUE4MjVCMDA0MTIzRkYgLyogQXNzZXJ0aW9ucy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlDMkNBMzdGMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzQzNTE1MUE4MjVCMDA0MTIzRkYgLyogQXRvbWljU3RyaW5nLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTcwRUNBNjBEMUIwMjQyNjgwMDQ0OTczOSAvKiBBdG9taWNTdHJpbmdJ
bXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QkExNUZBMTgyNDM1QTYwMEE4MkU2OSAvKiBB
dG9taWNTdHJpbmdJbXBsQ0YuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNjY1LDYgKzE3NzEsNyBA
QAogCQkJCUE4QTQ3M0IwMTUxQTgyNUIwMDQxMjNGRiAvKiBkb3VibGUtY29udmVyc2lvbi5jYyBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0JBMTUxQTgyNUIwMDQxMjNGRiAvKiBkdG9hLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0IzMTUxQTgyNUIwMDQxMjNGRiAvKiBmYXN0LWR0b2Eu
Y2MgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjYwRjMyRjFE
RkNCRDFCMDA0MTZENkMgLyogTG9ja2VkUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQThBNDczQzMxNTFBODI1QjAwNDEyM0ZGIC8qIEZhc3RNYWxsb2MuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY5RDMzNjAxNjVEQkE3MzAwNUFEMzg3IC8qIEZpbGVQcmludFN0cmVhbS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTE2NzgsNiArMTc4NSw3IEBACiAJCQkJQThBNDczRTkxNTFBODI1
QjAwNDEyM0ZGIC8qIE1ENS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDU0OTdBQzE1ODU3RDAz
MDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0VDMTUx
QTgyNUIwMDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMy
Q0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y0MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1i
ZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGN0M1RkI2MUQ4ODVDRjIwMDQ0RjVF
MiAvKiBGYXN0Qml0VmVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y3MTUxQTgy
NUIwMDQxMjNGRiAvKiBPU0FsbG9jYXRvclBvc2l4LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTY4
NSw2ICsxNzkzLDcgQEAKIAkJCQlBOEE0NzQwMjE1MUE4MjVCMDA0MTIzRkYgLyogUGFnZUJsb2Nr
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRkYxOURDMUJCMzM0RUIwMDg4NkQ5MSAvKiBQYXJh
bGxlbEhlbHBlclBvb2wuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4MjRBNjgxQjc0NDNBMDAw
MkUzNDVEIC8qIFBhcmtpbmdMb3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUUxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRENFRTIyMDMxQ0VBNzU1MTAwMEMyMzk2IC8qIFBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQzMzYyMTY1REJB
NzMwMDVBRDM4NyAvKiBQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDNGNjEx
RjE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE3Mjcs
OCArMTgzNiwxMiBAQAogCQkJCTFDMTgxQzkxMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3Zp
ZGVyTGF0aW4xLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMTgxQzkzMUQzMDdBQjgwMEY1RkEx
NiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0Njkx
NTFBODI1QjAwNDEyM0ZGIC8qIFVURjguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUMx
RDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxRkE0N0M4QTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRo
cmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkU0NDc5QzFCN0FBQTAzMDA5NDk4RUIgLyog
V29yZExvY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4
IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlD
MkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pL
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VBMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0QTBBRDM5MUE5
NjI0NTUwMDUzNkRGNiAvKiBXb3JrUXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBMEFE
M0QxQTk2MjUzQzAwNTM2REY2IC8qIFdvcmtRdWV1ZUNvY29hLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QTQ3NDQ1MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZTdHJpbmcuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0xNzQ1LDYgKzE4NTgsMTEgQEAKIAkJCXRhcmdldCA9IDVEMjQ3QjYxMTQ2ODlCODYw
MEU3OEI3NiAvKiBXVEYgKi87CiAJCQl0YXJnZXRQcm94eSA9IDE0NDdBRUMzMThGQ0U1NzAwMEIz
RDdGRiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJCTFDRDE4Nzg4MUQ1NTY5
ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFy
Z2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBE
ZXJpdmVkIFNvdXJjZXMgKi87CisJCQl0YXJnZXRQcm94eSA9IDFDRDE4Nzg3MUQ1NTY5ODgwMEND
N0RFQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CisJCX07CiAJCTY1QUZBMjhFMTYzMEI5
OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewogCQkJaXNhID0gUEJYVGFy
Z2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9IDY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBD
b3B5IFdURiBIZWFkZXJzICovOwpAQCAtMTc3NCw2ICsxODkyLDMwIEBACiAJCQl9OwogCQkJbmFt
ZSA9IFByb2R1Y3Rpb247CiAJCX07CisJCTFDRDE4Nzg0MUQ1NTY5NUMwMENDN0RFQyAvKiBEZWJ1
ZyAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3Vy
YXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNl
LnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAi
JChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJMUNEMTg3
ODUxRDU1Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29u
ZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4
OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGlu
Z3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQlu
YW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1
Y3Rpb24gKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25m
aWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVs
ZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1F
ID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsK
IAkJNUQyNDdCNjQxNDY4OUI4NjAwRTc4Qjc2IC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENC
dWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3
QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CkBAIC0xODU3
LDYgKzE5OTksMTYgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJ
CWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJCTFDRDE4Nzgz
MUQ1NTY5NUMwMENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3Jl
Z2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2VzIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJh
dGlvbkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTFDRDE4Nzg0MUQ1NTY5
NUMwMENDN0RFQyAvKiBEZWJ1ZyAqLywKKwkJCQkxQ0QxODc4NTFENTU2OTVDMDBDQzdERUMgLyog
UmVsZWFzZSAqLywKKwkJCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJvZHVjdGlvbiAq
LywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZh
dWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDI0N0I1QzE0Njg5
Qjg2MDBFNzhCNzYgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJX
VEYiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmln
dXJhdGlvbnMgPSAoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2Jya2l0ZXIu
aCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvYnJraXRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhYTVlNTUy
Nzk2MDkwZWFlYmNkN2NlN2I3ZDI3NWFhOGIzNzc1YjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL2Jya2l0ZXIuaApAQCAtMCwwICsxLDY1NSBAQAorLyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAxOTk3LTIwMTQsIEludGVybmF0
aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgYnJr
aXRlci5oCisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgorKiAgIERhdGUgICAgICAgIE5h
bWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMDIvMTgvOTcgICAgYWxpdSAgICAgICAgQWRkZWQg
dHlwZWRlZiBmb3IgVGV4dENvdW50LiAgTWFkZSBET05FIGNvbnN0LgorKiAgIDA1LzA3Lzk3ICAg
IGFsaXUgICAgICAgIEZpeGVkIERMTCBkZWNsYXJhdGlvbi4KKyogICAwNy8wOS85NyAgICBqZml0
eiAgICAgICBSZW5hbWVkIEJyZWFrSXRlcmF0b3IgYW5kIGludGVyZmFjZSBzeW5jZWQgd2l0aCBK
REsKKyogICAwOC8xMS85OCAgICBoZWxlbmEgICAgICBTeW5jLXVwIEpESzEuMi4KKyogICAwMS8x
My8yMDAwICBoZWxlbmEgICAgICBBZGRlZCBVRXJyb3JDb2RlIHBhcmFtZXRlciB0byBjcmVhdGVY
WFhJbnN0YW5jZSBtZXRob2RzLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5k
ZWYgQlJLSVRFUl9ICisjZGVmaW5lIEJSS0lURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlw
ZXMuaCIKKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMrKyBBUEk6IEJyZWFrIEl0ZXJhdG9y
LgorICovCisKKyNpZiBVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCitVX05BTUVTUEFDRV9C
RUdJTgorCisvKgorICogQWxsb3cgdGhlIGRlY2xhcmF0aW9uIG9mIEFQSXMgd2l0aCBwb2ludGVy
cyB0byBCcmVha0l0ZXJhdG9yCisgKiBldmVuIHdoZW4gYnJlYWsgaXRlcmF0aW9uIGlzIHJlbW92
ZWQgZnJvbSB0aGUgYnVpbGQuCisgKi8KK2NsYXNzIEJyZWFrSXRlcmF0b3I7CisKK1VfTkFNRVNQ
QUNFX0VORAorCisjZWxzZQorCisjaW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVk
ZSAidW5pY29kZS91bmlzdHIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisjaW5j
bHVkZSAidW5pY29kZS9sb2NpZC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWJyay5oIgorI2luY2x1
ZGUgInVuaWNvZGUvc3RyZW51bS5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXRleHQuaCIKKyNpbmNs
dWRlICJ1bmljb2RlL3VtaXNjLmgiCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogVGhl
IEJyZWFrSXRlcmF0b3IgY2xhc3MgaW1wbGVtZW50cyBtZXRob2RzIGZvciBmaW5kaW5nIHRoZSBs
b2NhdGlvbgorICogb2YgYm91bmRhcmllcyBpbiB0ZXh0LiBCcmVha0l0ZXJhdG9yIGlzIGFuIGFi
c3RyYWN0IGJhc2UgY2xhc3MuCisgKiBJbnN0YW5jZXMgb2YgQnJlYWtJdGVyYXRvciBtYWludGFp
biBhIGN1cnJlbnQgcG9zaXRpb24gYW5kIHNjYW4gb3ZlcgorICogdGV4dCByZXR1cm5pbmcgdGhl
IGluZGV4IG9mIGNoYXJhY3RlcnMgd2hlcmUgYm91bmRhcmllcyBvY2N1ci4KKyAqIDxwPgorICog
TGluZSBib3VuZGFyeSBhbmFseXNpcyBkZXRlcm1pbmVzIHdoZXJlIGEgdGV4dCBzdHJpbmcgY2Fu
IGJlIGJyb2tlbgorICogd2hlbiBsaW5lLXdyYXBwaW5nLiBUaGUgbWVjaGFuaXNtIGNvcnJlY3Rs
eSBoYW5kbGVzIHB1bmN0dWF0aW9uIGFuZAorICogaHlwaGVuYXRlZCB3b3Jkcy4KKyAqIDxwPgor
ICogU2VudGVuY2UgYm91bmRhcnkgYW5hbHlzaXMgYWxsb3dzIHNlbGVjdGlvbiB3aXRoIGNvcnJl
Y3QKKyAqIGludGVycHJldGF0aW9uIG9mIHBlcmlvZHMgd2l0aGluIG51bWJlcnMgYW5kIGFiYnJl
dmlhdGlvbnMsIGFuZAorICogdHJhaWxpbmcgcHVuY3R1YXRpb24gbWFya3Mgc3VjaCBhcyBxdW90
YXRpb24gbWFya3MgYW5kIHBhcmVudGhlc2VzLgorICogPHA+CisgKiBXb3JkIGJvdW5kYXJ5IGFu
YWx5c2lzIGlzIHVzZWQgYnkgc2VhcmNoIGFuZCByZXBsYWNlIGZ1bmN0aW9ucywgYXMKKyAqIHdl
bGwgYXMgd2l0aGluIHRleHQgZWRpdGluZyBhcHBsaWNhdGlvbnMgdGhhdCBhbGxvdyB0aGUgdXNl
ciB0bworICogc2VsZWN0IHdvcmRzIHdpdGggYSBkb3VibGUgY2xpY2suIFdvcmQgc2VsZWN0aW9u
IHByb3ZpZGVzIGNvcnJlY3QKKyAqIGludGVycHJldGF0aW9uIG9mIHB1bmN0dWF0aW9uIG1hcmtz
IHdpdGhpbiBhbmQgZm9sbG93aW5nCisgKiB3b3Jkcy4gQ2hhcmFjdGVycyB0aGF0IGFyZSBub3Qg
cGFydCBvZiBhIHdvcmQsIHN1Y2ggYXMgc3ltYm9scyBvcgorICogcHVuY3R1YXRpb24gbWFya3Ms
IGhhdmUgd29yZC1icmVha3Mgb24gYm90aCBzaWRlcy4KKyAqIDxwPgorICogQ2hhcmFjdGVyIGJv
dW5kYXJ5IGFuYWx5c2lzIGFsbG93cyB1c2VycyB0byBpbnRlcmFjdCB3aXRoCisgKiBjaGFyYWN0
ZXJzIGFzIHRoZXkgZXhwZWN0IHRvLCBmb3IgZXhhbXBsZSwgd2hlbiBtb3ZpbmcgdGhlIGN1cnNv
cgorICogdGhyb3VnaCBhIHRleHQgc3RyaW5nLiBDaGFyYWN0ZXIgYm91bmRhcnkgYW5hbHlzaXMg
cHJvdmlkZXMgY29ycmVjdAorICogbmF2aWdhdGlvbiBvZiB0aHJvdWdoIGNoYXJhY3RlciBzdHJp
bmdzLCByZWdhcmRsZXNzIG9mIGhvdyB0aGUKKyAqIGNoYXJhY3RlciBpcyBzdG9yZWQuICBGb3Ig
ZXhhbXBsZSwgYW4gYWNjZW50ZWQgY2hhcmFjdGVyIG1pZ2h0IGJlCisgKiBzdG9yZWQgYXMgYSBi
YXNlIGNoYXJhY3RlciBhbmQgYSBkaWFjcml0aWNhbCBtYXJrLiBXaGF0IHVzZXJzCisgKiBjb25z
aWRlciB0byBiZSBhIGNoYXJhY3RlciBjYW4gZGlmZmVyIGJldHdlZW4gbGFuZ3VhZ2VzLgorICog
PHA+CisgKiBUaGUgdGV4dCBib3VuZGFyeSBwb3NpdGlvbnMgYXJlIGZvdW5kIGFjY29yZGluZyB0
byB0aGUgcnVsZXMKKyAqIGRlc2NyaWJlZCBpbiBVbmljb2RlIFN0YW5kYXJkIEFubmV4ICMyOSwg
VGV4dCBCb3VuZGFyaWVzLCBhbmQKKyAqIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXggIzE0LCBMaW5l
IEJyZWFraW5nIFByb3BlcnRpZXMuICBUaGVzZQorICogYXJlIGF2YWlsYWJsZSBhdCBodHRwOi8v
d3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIxNC8gYW5kCisgKiBodHRwOi8vd3d3LnVuaWNvZGUu
b3JnL3JlcG9ydHMvdHIyOS8uCisgKiA8cD4KKyAqIEluIGFkZGl0aW9uIHRvIHRoZSBDKysgQVBJ
IGRlZmluZWQgaW4gdGhpcyBoZWFkZXIgZmlsZSwgYQorICogcGxhaW4gQyBBUEkgd2l0aCBlcXVp
dmFsZW50IGZ1bmN0aW9uYWxpdHkgaXMgZGVmaW5lZCBpbiB0aGUKKyAqIGZpbGUgdWJyay5oCisg
KiA8cD4KKyAqIENvZGUgc25pcHBldHMgaWxsdXN0cmF0aW5nIHRoZSB1c2Ugb2YgdGhlIEJyZWFr
IEl0ZXJhdG9yIEFQSXMKKyAqIGFyZSBhdmFpbGFibGUgaW4gdGhlIElDVSBVc2VyIEd1aWRlLAor
ICogaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy91c2VyZ3VpZGUvYm91bmRhcnlBbmFseXNpcy5odG1s
CisgKiBhbmQgaW4gdGhlIHNhbXBsZSBwcm9ncmFtIGljdS9zb3VyY2Uvc2FtcGxlcy9icmVhay9i
cmVhay5jcHAKKyAqCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBCcmVha0l0ZXJhdG9yIDogcHVi
bGljIFVPYmplY3QgeworcHVibGljOgorICAgIC8qKgorICAgICAqICBkZXN0cnVjdG9yCisgICAg
ICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkJyZWFrSXRlcmF0b3Io
KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIGFub3RoZXIgb2JqZWN0IGlzIHNl
bWFudGljYWxseSBlcXVhbCB0byB0aGlzCisgICAgICogb25lLiBUaGUgb3RoZXIgb2JqZWN0IHNo
b3VsZCBiZSBhbiBpbnN0YW5jZSBvZiB0aGUgc2FtZSBzdWJjbGFzcyBvZgorICAgICAqIEJyZWFr
SXRlcmF0b3IuIE9iamVjdHMgb2YgZGlmZmVyZW50IHN1YmNsYXNzZXMgYXJlIGNvbnNpZGVyZWQK
KyAgICAgKiB1bmVxdWFsLgorICAgICAqIDxQPgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoaXMg
QnJlYWtJdGVyYXRvciBpcyBhdCB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUKKyAgICAgKiBzYW1l
IHRleHQsIGFuZCBpcyB0aGUgc2FtZSBjbGFzcyBhbmQgdHlwZSAod29yZCwgbGluZSwgZXRjLikg
b2YKKyAgICAgKiBCcmVha0l0ZXJhdG9yLCBhcyB0aGUgYXJndW1lbnQuICBUZXh0IGlzIGNvbnNp
ZGVyZWQgdGhlIHNhbWUgaWYKKyAgICAgKiBpdCBjb250YWlucyB0aGUgc2FtZSBjaGFyYWN0ZXJz
LCBpdCBuZWVkIG5vdCBiZSB0aGUgc2FtZQorICAgICAqIG9iamVjdCwgYW5kIHN0eWxlcyBhcmUg
bm90IGNvbnNpZGVyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBVQm9vbCBvcGVyYXRvcj09KGNvbnN0IEJyZWFrSXRlcmF0b3ImKSBjb25zdCA9IDA7CisK
KyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjb21wbGVtZW50IG9mIHRoZSByZXN1bHQgb2Yg
b3BlcmF0b3I9PQorICAgICAqIEBwYXJhbSByaHMgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29t
cGFyZWQgZm9yIGluZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRoZSBjb21wbGVtZW50IG9mIHRo
ZSByZXN1bHQgb2Ygb3BlcmF0b3I9PQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIFVCb29sIG9wZXJhdG9yIT0oY29uc3QgQnJlYWtJdGVyYXRvciYgcmhzKSBjb25zdCB7IHJl
dHVybiAhb3BlcmF0b3I9PShyaHMpOyB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBwb2x5
bW9ycGhpYyBjb3B5IG9mIHRoaXMgb2JqZWN0LiAgVGhpcyBpcyBhbiBhYnN0cmFjdAorICAgICAq
IG1ldGhvZCB3aGljaCBzdWJjbGFzc2VzIGltcGxlbWVudC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0
ID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHBvbHltb3JwaGljIGNsYXNzIElEIGZv
ciB0aGlzIG9iamVjdC4gRGlmZmVyZW50IHN1YmNsYXNzZXMKKyAgICAgKiB3aWxsIHJldHVybiBk
aXN0aW5jdCB1bmVxdWFsIHZhbHVlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0ID0gMDsK
KworICAgIC8qKgorICAgICAqIFJldHVybiBhIENoYXJhY3Rlckl0ZXJhdG9yIG92ZXIgdGhlIHRl
eHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciYgZ2V0VGV4dCh2b2lkKSBjb25zdCA9IDA7CisKKwor
ICAgIC8qKgorICAgICAgKiAgR2V0IGEgVVRleHQgZm9yIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVk
LgorICAgICAgKiAgVGhlIHJldHVybmVkIFVUZXh0IGlzIGEgc2hhbGxvdyBjbG9uZSBvZiB0aGUg
VVRleHQgdXNlZCBpbnRlcm5hbGx5CisgICAgICAqICBieSB0aGUgYnJlYWsgaXRlcmF0b3IgaW1w
bGVtZW50YXRpb24uICBJdCBjYW4gc2FmZWx5IGJlIHVzZWQgdG8KKyAgICAgICogIGFjY2VzcyB0
aGUgdGV4dCB3aXRob3V0IGltcGFjdGluZyBhbnkgYnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucywK
KyAgICAgICogIGJ1dCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2VsZiBtdXN0IG5vdCBiZSBhbHRl
cmVkLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gZmlsbEluIEEgVVRleHQgdG8gYmUgZmlsbGVk
IGluLiAgSWYgTlVMTCwgYSBuZXcgVVRleHQgd2lsbCBiZQorICAgICAgKiAgICAgICAgICAgYWxs
b2NhdGVkIHRvIGhvbGQgdGhlIHJlc3VsdC4KKyAgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZl
cyBhbnkgZXJyb3IgY29kZXMuCisgICAgICAqIEByZXR1cm4gICBUaGUgY3VycmVudCBVVGV4dCBm
b3IgdGhpcyBicmVhayBpdGVyYXRvci4gIElmIGFuIGlucHV0CisgICAgICAqICAgICAgICAgICBV
VGV4dCB3YXMgcHJvdmlkZWQsIGl0IHdpbGwgYWx3YXlzIGJlIHJldHVybmVkLgorICAgICAgKiBA
c3RhYmxlIElDVSAzLjQKKyAgICAgICovCisgICAgIHZpcnR1YWwgVVRleHQgKmdldFVUZXh0KFVU
ZXh0ICpmaWxsSW4sIFVFcnJvckNvZGUgJnN0YXR1cykgY29uc3QgPSAwOworCisgICAgLyoqCisg
ICAgICogQ2hhbmdlIHRoZSB0ZXh0IG92ZXIgd2hpY2ggdGhpcyBvcGVyYXRlcy4gVGhlIHRleHQg
Ym91bmRhcnkgaXMKKyAgICAgKiByZXNldCB0byB0aGUgc3RhcnQuCisgICAgICogQHBhcmFtIHRl
eHQgVGhlIFVuaWNvZGVTdHJpbmcgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lkICBzZXRUZXh0KGNvbnN0IFVu
aWNvZGVTdHJpbmcgJnRleHQpID0gMDsKKworICAgIC8qKgorICAgICAqIFJlc2V0IHRoZSBicmVh
ayBpdGVyYXRvciB0byBvcGVyYXRlIG92ZXIgdGhlIHRleHQgcmVwcmVzZW50ZWQgYnkKKyAgICAg
KiB0aGUgVVRleHQuICBUaGUgaXRlcmF0b3IgcG9zaXRpb24gaXMgcmVzZXQgdG8gdGhlIHN0YXJ0
LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtYWtlcyBhIHNoYWxsb3cgY2xvbmUgb2Yg
dGhlIHN1cHBsaWVkIFVUZXh0LiAgVGhpcyBtZWFucworICAgICAqIHRoYXQgdGhlIGNhbGxlciBp
cyBmcmVlIHRvIGltbWVkaWF0ZWx5IGNsb3NlIG9yIG90aGVyd2lzZSByZXVzZSB0aGUKKyAgICAg
KiBVdGV4dCB0aGF0IHdhcyBwYXNzZWQgYXMgYSBwYXJhbWV0ZXIsIGJ1dCB0aGF0IHRoZSB1bmRl
cmx5aW5nIHRleHQgaXRzZWxmCisgICAgICogbXVzdCBub3QgYmUgYWx0ZXJlZCB3aGlsZSBiZWlu
ZyByZWZlcmVuY2VkIGJ5IHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgKgorICAgICAqIEFsbCBp
bmRleCBwb3NpdGlvbnMgcmV0dXJuZWQgYnkgYnJlYWsgaXRlcmF0b3IgZnVuY3Rpb25zIGFyZQor
ICAgICAqIG5hdGl2ZSBpbmRpY2VzIGZyb20gdGhlIFVUZXh0LiBGb3IgZXhhbXBsZSwgd2hlbiBi
cmVha2luZyBVVEYtOAorICAgICAqIGVuY29kZWQgdGV4dCwgdGhlIGJyZWFrIHBvc2l0aW9ucyBy
ZXR1cm5lZCBieSBuZXh0KCksIHByZXZpb3VzKCksIGV0Yy4KKyAgICAgKiB3aWxsIGJlIFVURi04
IHN0cmluZyBpbmRpY2VzLCBub3QgVVRGLTE2IHBvc2l0aW9ucy4KKyAgICAgKgorICAgICAqIEBw
YXJhbSB0ZXh0IFRoZSBVVGV4dCB1c2VkIHRvIGNoYW5nZSB0aGUgdGV4dC4KKyAgICAgKiBAcGFy
YW0gc3RhdHVzIHJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAz
LjQKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoVVRleHQgKnRleHQsIFVFcnJv
ckNvZGUgJnN0YXR1cykgPSAwOworCisgICAgLyoqCisgICAgICogQ2hhbmdlIHRoZSB0ZXh0IG92
ZXIgd2hpY2ggdGhpcyBvcGVyYXRlcy4gVGhlIHRleHQgYm91bmRhcnkgaXMKKyAgICAgKiByZXNl
dCB0byB0aGUgc3RhcnQuCisgICAgICogTm90ZSB0aGF0IHNldFRleHQoVVRleHQgKikgcHJvdmlk
ZXMgc2ltaWxhciBmdW5jdGlvbmFsaXR5IHRvIHRoaXMgZnVuY3Rpb24sCisgICAgICogYW5kIGlz
IG1vcmUgZWZmaWNpZW50LgorICAgICAqIEBwYXJhbSBpdCBUaGUgQ2hhcmFjdGVySXRlcmF0b3Ig
dXNlZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCB2b2lkICBhZG9wdFRleHQoQ2hhcmFjdGVySXRlcmF0b3IqIGl0KSA9IDA7
CisKKyAgICBlbnVtIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIERPTkUgaXMgcmV0dXJuZWQg
YnkgcHJldmlvdXMoKSBhbmQgbmV4dCgpIGFmdGVyIGFsbCB2YWxpZAorICAgICAgICAgKiBib3Vu
ZGFyaWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICAgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICAgICAqLworICAgICAgICBET05FID0gKGludDMyX3QpLTEKKyAgICB9OworCisgICAgLyoq
CisgICAgICogU2V0cyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lu
bmluZyBvZiB0aGUgdGV4dCwgcG9zaXRpb24gemVyby4KKyAgICAgKiBAcmV0dXJuIFRoZSBvZmZz
ZXQgb2YgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dCwgemVyby4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZmlyc3Qodm9pZCkgPSAwOworCisg
ICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgaW5kZXggaW1t
ZWRpYXRlbHkgQkVZT05EIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgdGV4dCBiZWluZyBzY2Fu
bmVkLgorICAgICAqIEByZXR1cm4gVGhlIGluZGV4IGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgbGFz
dCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgYmVpbmcgc2Nhbm5lZC4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbGFzdCh2b2lkKSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRvIHRoZSBib3VuZGFyeSBw
cmVjZWRpbmcgdGhlIGN1cnJlbnQgYm91bmRhcnkuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFj
dGVyIGluZGV4IG9mIHRoZSBwcmV2aW91cyB0ZXh0IGJvdW5kYXJ5IG9yIERPTkUgaWYgYWxsCisg
ICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHByZXZpb3VzKHZvaWQpID0gMDsKKwor
ICAgIC8qKgorICAgICAqIEFkdmFuY2UgdGhlIGl0ZXJhdG9yIHRvIHRoZSBib3VuZGFyeSBmb2xs
b3dpbmcgdGhlIGN1cnJlbnQgYm91bmRhcnkuCisgICAgICogQHJldHVybiBUaGUgY2hhcmFjdGVy
IGluZGV4IG9mIHRoZSBuZXh0IHRleHQgYm91bmRhcnkgb3IgRE9ORSBpZiBhbGwKKyAgICAgKiBi
b3VuZGFyaWVzIGhhdmUgYmVlbiByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm4gY2hhcmFjdGVyIGluZGV4IG9mIHRoZSBjdXJyZW50IGludGVyYXRvciBwb3Np
dGlvbiB3aXRoaW4gdGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgYm91bmRhcnkgbW9zdCBy
ZWNlbnRseSByZXR1cm5lZC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGludDMyX3QgY3VycmVudCh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBBZHZhbmNlIHRoZSBpdGVyYXRvciB0byB0aGUgZmlyc3QgYm91bmRhcnkgZm9sbG93aW5nIHRo
ZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhbHdheXMg
Z3JlYXRlciB0aGFuIHRoZSBvZmZzZXQgb3IKKyAgICAgKiB0aGUgdmFsdWUgQnJlYWtJdGVyYXRv
ci5ET05FCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGJlZ2luIHNjYW5uaW5n
LgorICAgICAqIEByZXR1cm4gVGhlIGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRoZSBzcGVjaWZpZWQg
b2Zmc2V0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50
MzJfdCBmb2xsb3dpbmcoaW50MzJfdCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNl
dCB0aGUgaXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGZpcnN0IGJvdW5kYXJ5IHByZWNlZGluZyB0
aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgYWx3YXlz
IHNtYWxsZXIgdGhhbiB0aGUgb2Zmc2V0IG9yCisgICAgICogdGhlIHZhbHVlIEJyZWFrSXRlcmF0
b3IuRE9ORQorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBiZWdpbiBzY2Fubmlu
Zy4KKyAgICAgKiBAcmV0dXJuIFRoZSBmaXJzdCBib3VuZGFyeSBiZWZvcmUgdGhlIHNwZWNpZmll
ZCBvZmZzZXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBp
bnQzMl90IHByZWNlZGluZyhpbnQzMl90IG9mZnNldCkgPSAwOworCisgICAgLyoqCisgICAgICog
UmV0dXJuIHRydWUgaWYgdGhlIHNwZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRp
b24uCisgICAgICogQXMgYSBzaWRlIGVmZmVjdCwgdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgdGhl
IGl0ZXJhdG9yIGlzIHNldAorICAgICAqIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBh
dCBvciBmb2xsb3dpbmcgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAgICogQHBhcmFtIG9mZnNl
dCB0aGUgb2Zmc2V0IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiAib2Zmc2V0IiBp
cyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgVUJvb2wgaXNCb3VuZGFyeShpbnQzMl90IG9mZnNldCkgPSAwOworCisgICAg
LyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciBwb3NpdGlvbiB0byB0aGUgbnRoIGJvdW5kYXJ5
IGZyb20gdGhlIGN1cnJlbnQgYm91bmRhcnkKKyAgICAgKiBAcGFyYW0gbiB0aGUgbnVtYmVyIG9m
IGJvdW5kYXJpZXMgdG8gbW92ZSBieS4gIEEgdmFsdWUgb2YgMAorICAgICAqIGRvZXMgbm90aGlu
Zy4gIE5lZ2F0aXZlIHZhbHVlcyBtb3ZlIHRvIHByZXZpb3VzIGJvdW5kYXJpZXMKKyAgICAgKiBh
bmQgcG9zaXRpdmUgdmFsdWVzIG1vdmUgdG8gbGF0ZXIgYm91bmRhcmllcy4KKyAgICAgKiBAcmV0
dXJuIFRoZSBuZXcgaXRlcmF0b3IgcG9zaXRpb24sIG9yCisgICAgICogRE9ORSBpZiB0aGVyZSBh
cmUgZmV3ZXIgdGhhbiB8bnwgYm91bmRhcmllcyBpbiB0aGUgc3BlY2ZpZWQgZGlyZWN0aW9uLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0
KGludDMyX3QgbikgPSAwOworCisgICAvKioKKyAgICAgKiBGb3IgUnVsZUJhc2VkQnJlYWtJdGVy
YXRvcnMsIHJldHVybiB0aGUgc3RhdHVzIHRhZyBmcm9tIHRoZSAKKyAgICAgKiBicmVhayBydWxl
IHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqIHJldHVybmVkIGJyZWFr
IHBvc2l0aW9uLgorICAgICAqIDxwPgorICAgICAqIEZvciBicmVhayBpdGVyYXRvciB0eXBlcyB0
aGF0IGRvIG5vdCBzdXBwb3J0IGEgcnVsZSBzdGF0dXMsCisgICAgICogYSBkZWZhdWx0IHZhbHVl
IG9mIDAgaXMgcmV0dXJuZWQuCisgICAgICogPHA+CisgICAgICogQHJldHVybiB0aGUgc3RhdHVz
IGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1pbmVkIHRoZSBtb3N0IHJlY2VudGx5Cisg
ICAgICogICAgICAgICByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBAc2VlIFJ1bGVC
YXNlQnJlYWtJdGVyYXRvcjo6Z2V0UnVsZVN0YXR1cygpCisgICAgICogQHNlZSBVV29yZEJyZWFr
CisgICAgICogQHN0YWJsZSBJQ1UgNTIKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0
UnVsZVN0YXR1cygpIGNvbnN0OworCisgICAvKioKKyAgICAqIEZvciBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9ycywgZ2V0IHRoZSBzdGF0dXMgKHRhZykgdmFsdWVzIGZyb20gdGhlIGJyZWFrIHJ1bGUo
cykgCisgICAgKiB0aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkgcmV0dXJuZWQgYnJl
YWsgcG9zaXRpb24uCisgICAgKiA8cD4KKyAgICAqIEZvciBicmVhayBpdGVyYXRvciB0eXBlcyB0
aGF0IGRvIG5vdCBzdXBwb3J0IHJ1bGUgc3RhdHVzLAorICAgICogbm8gdmFsdWVzIGFyZSByZXR1
cm5lZC4KKyAgICAqIDxwPgorICAgICogVGhlIHJldHVybmVkIHN0YXR1cyB2YWx1ZShzKSBhcmUg
c3RvcmVkIGludG8gYW4gYXJyYXkgcHJvdmlkZWQgYnkgdGhlIGNhbGxlci4KKyAgICAqIFRoZSB2
YWx1ZXMgYXJlIHN0b3JlZCBpbiBzb3J0ZWQgKGFzY2VuZGluZykgb3JkZXIuCisgICAgKiBJZiB0
aGUgY2FwYWNpdHkgb2YgdGhlIG91dHB1dCBhcnJheSBpcyBpbnN1ZmZpY2llbnQgdG8gaG9sZCB0
aGUgZGF0YSwKKyAgICAqICB0aGUgb3V0cHV0IHdpbGwgYmUgdHJ1bmNhdGVkIHRvIHRoZSBhdmFp
bGFibGUgbGVuZ3RoLCBhbmQgYQorICAgICogIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SIHdpbGwg
YmUgc2lnbmFsZWQuCisgICAgKiA8cD4KKyAgICAqIEBzZWUgUnVsZUJhc2VCcmVha0l0ZXJhdG9y
OjpnZXRSdWxlU3RhdHVzVmVjCisgICAgKgorICAgICogQHBhcmFtIGZpbGxJblZlYyBhbiBhcnJh
eSB0byBiZSBmaWxsZWQgaW4gd2l0aCB0aGUgc3RhdHVzIHZhbHVlcy4KKyAgICAqIEBwYXJhbSBj
YXBhY2l0eSAgdGhlIGxlbmd0aCBvZiB0aGUgc3VwcGxpZWQgdmVjdG9yLiAgQSBsZW5ndGggb2Yg
emVybyBjYXVzZXMKKyAgICAqICAgICAgICAgICAgICAgICAgdGhlIGZ1bmN0aW9uIHRvIHJldHVy
biB0aGUgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMsIGluIHRoZQorICAgICogICAgICAgICAgICAg
ICAgICBub3JtYWwgd2F5LCB3aXRob3V0IGF0dGVtdHBpbmcgdG8gc3RvcmUgYW55IHZhbHVlcy4K
KyAgICAqIEBwYXJhbSBzdGF0dXMgICAgcmVjZWl2ZXMgZXJyb3IgY29kZXMuCisgICAgKiBAcmV0
dXJuICAgICAgICAgIFRoZSBudW1iZXIgb2YgcnVsZSBzdGF0dXMgdmFsdWVzIGZyb20gcnVsZXMg
dGhhdCBkZXRlcm1pbmVkCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBtb3N0IHJlY2VudCBi
b3VuZGFyeSByZXR1cm5lZCBieSB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgKiAgICAgICAgICAg
ICAgICAgIEluIHRoZSBldmVudCBvZiBhIFVfQlVGRkVSX09WRVJGTE9XX0VSUk9SLCB0aGUgcmV0
dXJuIHZhbHVlCisgICAgKiAgICAgICAgICAgICAgICAgIGlzIHRoZSB0b3RhbCBudW1iZXIgb2Yg
c3RhdHVzIHZhbHVlcyB0aGF0IHdlcmUgYXZhaWxhYmxlLAorICAgICogICAgICAgICAgICAgICAg
ICBub3QgdGhlIHJlZHVjZWQgbnVtYmVyIHRoYXQgd2VyZSBhY3R1YWxseSByZXR1cm5lZC4KKyAg
ICAqIEBzZWUgZ2V0UnVsZVN0YXR1cworICAgICogQHN0YWJsZSBJQ1UgNTIKKyAgICAqLworICAg
IHZpcnR1YWwgaW50MzJfdCBnZXRSdWxlU3RhdHVzVmVjKGludDMyX3QgKmZpbGxJblZlYywgaW50
MzJfdCBjYXBhY2l0eSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIENy
ZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciB3b3JkLWJyZWFrcyB1c2luZyB0aGUgZ2l2ZW4gbG9jYWxl
LgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVu
dGluZyB3b3JkIGJyZWFrcy4KKyAgICAgKiBXb3JkQnJlYWsgaXMgdXNlZnVsIGZvciB3b3JkIHNl
bGVjdGlvbiAoZXguIGRvdWJsZSBjbGljaykKKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2Fs
ZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBlcnJvciBjb2RlCisgICAgICogQHJldHVybiBB
IEJyZWFrSXRlcmF0b3IgZm9yIHdvcmQtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cwor
ICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8g
dGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2Nl
ZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUND
RVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAg
ICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGls
bCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRp
Y2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFt
cGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwg
c28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNh
dGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhl
ciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcwor
ICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJu
ZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JU
MgorICAgIGNyZWF0ZVdvcmRJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2Rl
JiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIGxp
bmUtYnJlYWtzIHVzaW5nIHNwZWNpZmllZCBsb2NhbGUuCisgICAgICogUmV0dXJucyBhbiBpbnN0
YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIGxpbmUgYnJlYWtzLiBMaW5lCisg
ICAgICogYnJlYWtzIGFyZSBsb2dpY2FsbHkgcG9zc2libGUgbGluZSBicmVha3MsIGFjdHVhbCBs
aW5lIGJyZWFrcyBhcmUKKyAgICAgKiB1c3VhbGx5IGRldGVybWluZWQgYmFzZWQgb24gZGlzcGxh
eSB3aWR0aC4KKyAgICAgKiBMaW5lQnJlYWsgaXMgdXNlZnVsIGZvciB3b3JkIHdyYXBwaW5nIHRl
eHQuCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1
cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJuIEEgQnJlYWtJdGVyYXRvciBmb3IgbGlu
ZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVz
ZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBj
aGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3Vs
ZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNo
IG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5m
b3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisg
ICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNr
IGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVl
c3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVz
ZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBs
b2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxl
IG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQu
CisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3Bv
bnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlTGluZUluc3Rh
bmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioK
KyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3IgY2hhcmFjdGVyLWJyZWFrcyB1c2luZyBz
cGVjaWZpZWQgbG9jYWxlCisgICAgICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRl
cmF0b3IgaW1wbGVtZW50aW5nIGNoYXJhY3RlciBicmVha3MuCisgICAgICogQ2hhcmFjdGVyIGJy
ZWFrcyBhcmUgYm91bmRhcmllcyBvZiBjb21iaW5pbmcgY2hhcmFjdGVyIHNlcXVlbmNlcy4KKyAg
ICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRoZSBl
cnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciBjaGFyYWN0ZXIt
YnJlYWtzLiAgVGhlIFVFcnJvckNvZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2Vk
IHRvIHJldHVybiBzdGF0dXMgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hl
Y2sgd2hldGhlciB0aGUgY29uc3RydWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQg
Y2hlY2sKKyAgICAgKiB0aGUgdmFsdWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBt
b3JlIGRldGFpbGVkIGluZm9ybWF0aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9y
bWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAg
ICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBs
b2NhbGUgd2FzIHVzZWQuICBGb3IKKyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0
ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2Vk
LiAgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9j
YWxlIGRhdGEgd2FzCisgICAgICogdXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBu
b3IgYW55IG9mIGl0cyBmYWxsIGJhY2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgor
ICAgICAqIFRoZSBjYWxsZXIgb3ducyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25z
aWJsZSBmb3IgZGVsZXRpbmcgaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZUNoYXJhY3Rlcklu
c3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAv
KioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3Igc2VudGVuY2UtYnJlYWtzIHVzaW5n
IHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJ
dGVyYXRvciBpbXBsZW1lbnRpbmcgc2VudGVuY2UgYnJlYWtzLgorICAgICAqIEBwYXJhbSB3aGVy
ZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUuCisgICAg
ICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIHNlbnRlbmNlLWJyZWFrcy4gIFRoZSBVRXJy
b3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVz
IGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNv
bnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhl
IHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZv
cm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJl
c3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExC
QUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAg
Rm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3
YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVM
VF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAg
ICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFs
bCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVy
IG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5n
IGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0
ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVTZW50ZW5jZUluc3RhbmNlKGNvbnN0IExvY2Fs
ZSYgd2hlcmUsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUg
QnJlYWtJdGVyYXRvciBmb3IgdGl0bGUtY2FzaW5nIGJyZWFrcyB1c2luZyB0aGUgc3BlY2lmaWVk
IGxvY2FsZQorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGlt
cGxlbWVudGluZyB0aXRsZSBicmVha3MuCisgICAgICogVGhlIGl0ZXJhdG9yIHJldHVybmVkIGxv
Y2F0ZXMgdGl0bGUgYm91bmRhcmllcyBhcyBkZXNjcmliZWQgZm9yCisgICAgICogVW5pY29kZSAz
LjIgb25seS4gRm9yIFVuaWNvZGUgNC4wIGFuZCBhYm92ZSB0aXRsZSBib3VuZGFyeSBpdGVyYXRp
b24sCisgICAgICogcGxlYXNlIHVzZSBXb3JkIEJvdW5kYXJ5IGl0ZXJhdG9yLntAbGluayAjY3Jl
YXRlV29yZEluc3RhbmNlIH0KKyAgICAgKgorICAgICAqIEBwYXJhbSB3aGVyZSB0aGUgbG9jYWxl
LgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICogQHJldHVybiBB
IEJyZWFrSXRlcmF0b3IgZm9yIHRpdGxlLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMK
KyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRv
IHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNj
ZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VD
Q0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91Cisg
ICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3Rp
bGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5k
aWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhh
bXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUs
IHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGlj
YXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRo
ZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMK
KyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVy
bmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBz
dGFibGUgSUNVIDIuMQorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9S
VDIKKyAgICBjcmVhdGVUaXRsZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgd2hlcmUsIFVFcnJvckNv
ZGUmIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHNldCBvZiBMb2NhbGVzIGZv
ciB3aGljaCBUZXh0Qm91bmRhcmllcyBhcmUgaW5zdGFsbGVkLgorICAgICAqIDxwPjxiPk5vdGU6
PC9iPiB0aGlzIHdpbGwgbm90IHJldHVybiBsb2NhbGVzIGFkZGVkIHRocm91Z2ggdGhlIHJlZ2lz
dGVyCisgICAgICogY2FsbC4gVG8gc2VlIHRoZSByZWdpc3RlcmVkIGxvY2FsZXMgdG9vLCB1c2Ug
dGhlIGdldEF2YWlsYWJsZUxvY2FsZXMKKyAgICAgKiBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBT
dHJpbmdFbnVtZXJhdGlvbiBvYmplY3QgPC9wPgorICAgICAqIEBwYXJhbSBjb3VudCB0aGUgb3V0
cHV0IHBhcmFtZXRlciBvZiBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGxvY2FsZSBsaXN0Cisg
ICAgICogQHJldHVybiBhdmFpbGFibGUgbG9jYWxlcworICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUqIFVfRVhQT1JUMiBnZXRBdmFpbGFibGVM
b2NhbGVzKGludDMyX3QmIGNvdW50KTsKKworICAgIC8qKgorICAgICAqIEdldCBuYW1lIG9mIHRo
ZSBvYmplY3QgZm9yIHRoZSBkZXNpcmVkIExvY2FsZSwgaW4gdGhlIGRlc2lyZWQgbGFuZ2F1Z2Uu
CisgICAgICogQHBhcmFtIG9iamVjdExvY2FsZSBtdXN0IGJlIGZyb20gZ2V0QXZhaWxhYmxlTG9j
YWxlcy4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSBzcGVjaWZpZXMgdGhlIGRlc2lyZWQg
bG9jYWxlIGZvciBvdXRwdXQuCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGZpbGwtaW4gcGFyYW1l
dGVyIG9mIHRoZSByZXR1cm4gdmFsdWUKKyAgICAgKiBVc2VzIGJlc3QgbWF0Y2guCisgICAgICog
QHJldHVybiB1c2VyLWRpc3BsYXlhYmxlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgVV9FWFBPUlQyIGdldERpc3BsYXlOYW1l
KGNvbnN0IExvY2FsZSYgb2JqZWN0TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBMb2NhbGUmIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIG5hbWUpOworCisgICAg
LyoqCisgICAgICogR2V0IG5hbWUgb2YgdGhlIG9iamVjdCBmb3IgdGhlIGRlc2lyZWQgTG9jYWxl
LCBpbiB0aGUgbGFuZ2F1Z2Ugb2YgdGhlCisgICAgICogZGVmYXVsdCBsb2NhbGUuCisgICAgICog
QHBhcmFtIG9iamVjdExvY2FsZSBtdXN0IGJlIGZyb20gZ2V0TWF0Y2hpbmdMb2NhbGVzCisgICAg
ICogQHBhcmFtIG5hbWUgdGhlIGZpbGwtaW4gcGFyYW1ldGVyIG9mIHRoZSByZXR1cm4gdmFsdWUK
KyAgICAgKiBAcmV0dXJuIHVzZXItZGlzcGxheWFibGUgbmFtZQorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHN0YXRpYyBVbmljb2RlU3RyaW5nJiBVX0VYUE9SVDIgZ2V0RGlz
cGxheU5hbWUoY29uc3QgTG9jYWxlJiBvYmplY3RMb2NhbGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIG5hbWUpOworCisgICAgLyoqCisg
ICAgICogRGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5LiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAg
ICAqCisgICAgICogVGhyZWFkIHNhZmUgY2xpZW50LWJ1ZmZlci1iYXNlZCBjbG9uaW5nIG9wZXJh
dGlvbgorICAgICAqICAgIERvIE5PVCBjYWxsIGRlbGV0ZSBvbiBhIHNhZmVjbG9uZSwgc2luY2Ug
J25ldycgaXMgbm90IHVzZWQgdG8gY3JlYXRlIGl0LgorICAgICAqIEBwYXJhbSBzdGFja0J1ZmZl
ciB1c2VyIGFsbG9jYXRlZCBzcGFjZSBmb3IgdGhlIG5ldyBjbG9uZS4gSWYgTlVMTCBuZXcgbWVt
b3J5IHdpbGwgYmUgYWxsb2NhdGVkLgorICAgICAqIElmIGJ1ZmZlciBpcyBub3QgbGFyZ2UgZW5v
dWdoLCBuZXcgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgorICAgICAqIEBwYXJhbSBCdWZmZXJT
aXplIHJlZmVyZW5jZSB0byBzaXplIG9mIGFsbG9jYXRlZCBzcGFjZS4KKyAgICAgKiBJZiBCdWZm
ZXJTaXplID09IDAsIGEgc3VmZmljaWVudCBzaXplIGZvciB1c2UgaW4gY2xvbmluZyB3aWxsCisg
ICAgICogYmUgcmV0dXJuZWQgKCdwcmUtZmxpZ2h0aW5nJykKKyAgICAgKiBJZiBCdWZmZXJTaXpl
IGlzIG5vdCBlbm91Z2ggZm9yIGEgc3RhY2stYmFzZWQgc2FmZSBjbG9uZSwKKyAgICAgKiBuZXcg
bWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkLgorICAgICAqIEBwYXJhbSBzdGF0dXMgdG8gaW5kaWNh
dGUgd2hldGhlciB0aGUgb3BlcmF0aW9uIHdlbnQgb24gc21vb3RobHkgb3IgdGhlcmUgd2VyZSBl
cnJvcnMKKyAgICAgKiAgQW4gaW5mb3JtYXRpb25hbCBzdGF0dXMgdmFsdWUsIFVfU0FGRUNMT05F
X0FMTE9DQVRFRF9FUlJPUiwgaXMgdXNlZCBpZiBhbnkgYWxsb2NhdGlvbnMgd2VyZQorICAgICAq
ICBuZWNlc3NhcnkuCisgICAgICogQHJldHVybiBwb2ludGVyIHRvIHRoZSBuZXcgY2xvbmUKKyAg
ICAgKgorICAgICAqIEBkZXByZWNhdGVkIElDVSA1Mi4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRlcmF0b3IgKiAgY3JlYXRlQnVmZmVyQ2xvbmUodm9p
ZCAqc3RhY2tCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludDMyX3QgJkJ1ZmZlclNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgJnN0YXR1cykgPSAwOworCisjaWZuZGVmIFVf
SElERV9ERVBSRUNBVEVEX0FQSQorCisgICAgLyoqCisgICAgICogICBEZXRlcm1pbmUgd2hldGhl
ciB0aGUgQnJlYWtJdGVyYXRvciB3YXMgY3JlYXRlZCBpbiB1c2VyIG1lbW9yeSBieQorICAgICAq
ICAgY3JlYXRlQnVmZmVyQ2xvbmUoKSwgYW5kIHRodXMgc2hvdWxkIG5vdCBiZSBkZWxldGVkLiAg
U3VjaCBvYmplY3RzCisgICAgICogICBtdXN0IGJlIGNsb3NlZCBieSBhbiBleHBsaWNpdCBjYWxs
IHRvIHRoZSBkZXN0cnVjdG9yIChub3QgZGVsZXRlKS4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1Ug
NTIuIEFsd2F5cyBkZWxldGUgdGhlIEJyZWFrSXRlcmF0b3IuCisgICAgICovCisgICAgaW5saW5l
IFVCb29sIGlzQnVmZmVyQ2xvbmUodm9pZCk7CisKKyNlbmRpZiAvKiBVX0hJREVfREVQUkVDQVRF
RF9BUEkgKi8KKworI2lmICFVQ09ORklHX05PX1NFUlZJQ0UKKyAgICAvKioKKyAgICAgKiBSZWdp
c3RlciBhIG5ldyBicmVhayBpdGVyYXRvciBvZiB0aGUgaW5kaWNhdGVkIGtpbmQsIHRvIHVzZSBp
biB0aGUgZ2l2ZW4gbG9jYWxlLgorICAgICAqIFRoZSBicmVhayBpdGVyYXRvciB3aWxsIGJlIGFk
b3B0ZWQuICBDbG9uZXMgb2YgdGhlIGl0ZXJhdG9yIHdpbGwgYmUgcmV0dXJuZWQKKyAgICAgKiBp
ZiBhIHJlcXVlc3QgZm9yIGEgYnJlYWsgaXRlcmF0b3Igb2YgdGhlIGdpdmVuIGtpbmQgbWF0Y2hl
cyBvciBmYWxscyBiYWNrIHRvCisgICAgICogdGhpcyBsb2NhbGUuCisgICAgICogQmVjYXVzZSBJ
Q1UgbWF5IGNob29zZSB0byBjYWNoZSBCcmVha0l0ZXJhdG9ycyBpbnRlcm5hbGx5LCB0aGlzIG11
c3QKKyAgICAgKiBiZSBjYWxsZWQgYXQgYXBwbGljYXRpb24gc3RhcnR1cCwgcHJpb3IgdG8gYW55
IGNhbGxzIHRvCisgICAgICogQnJlYWtJdGVyYXRvcjo6Y3JlYXRlWFhYSW5zdGFuY2UgdG8gYXZv
aWQgdW5kZWZpbmVkIGJlaGF2aW9yLgorICAgICAqIEBwYXJhbSB0b0Fkb3B0IHRoZSBCcmVha0l0
ZXJhdG9yIGluc3RhbmNlIHRvIGJlIGFkb3B0ZWQKKyAgICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBM
b2NhbGUgZm9yIHdoaWNoIHRoaXMgaW5zdGFuY2UgaXMgdG8gYmUgcmVnaXN0ZXJlZAorICAgICAq
IEBwYXJhbSBraW5kIHRoZSB0eXBlIG9mIGl0ZXJhdG9yIGZvciB3aGljaCB0aGlzIGluc3RhbmNl
IGlzIHRvIGJlIHJlZ2lzdGVyZWQKKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBpbi9vdXQgc3Rh
dHVzIGNvZGUsIG5vIHNwZWNpYWwgbWVhbmluZ3MgYXJlIGFzc2lnbmVkCisgICAgICogQHJldHVy
biBhIHJlZ2lzdHJ5IGtleSB0aGF0IGNhbiBiZSB1c2VkIHRvIHVucmVnaXN0ZXIgdGhpcyBpbnN0
YW5jZQorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHN0YXRpYyBVUmVnaXN0
cnlLZXkgVV9FWFBPUlQyIHJlZ2lzdGVySW5zdGFuY2UoQnJlYWtJdGVyYXRvciogdG9BZG9wdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBMb2NhbGUmIGxv
Y2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQnJlYWtJdGVy
YXRvclR5cGUga2luZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBV
RXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciBhIHByZXZp
b3VzbHktcmVnaXN0ZXJlZCBCcmVha0l0ZXJhdG9yIHVzaW5nIHRoZSBrZXkgcmV0dXJuZWQgZnJv
bSB0aGUKKyAgICAgKiByZWdpc3RlciBjYWxsLiAgS2V5IGJlY29tZXMgaW52YWxpZCBhZnRlciBh
IHN1Y2Nlc3NmdWwgY2FsbCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGFnYWluLgorICAgICAqIFRo
ZSBCcmVha0l0ZXJhdG9yIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGtleSB3aWxsIGJlIGRlbGV0ZWQu
CisgICAgICogQmVjYXVzZSBJQ1UgbWF5IGNob29zZSB0byBjYWNoZSBCcmVha0l0ZXJhdG9ycyBp
bnRlcm5hbGx5LCB0aGlzIHNob3VsZAorICAgICAqIGJlIGNhbGxlZCBkdXJpbmcgYXBwbGljYXRp
b24gc2h1dGRvd24sIGFmdGVyIGFsbCBjYWxscyB0bworICAgICAqIEJyZWFrSXRlcmF0b3I6OmNy
ZWF0ZVhYWEluc3RhbmNlIHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhhdmlvci4KKyAgICAgKiBAcGFy
YW0ga2V5IHRoZSByZWdpc3RyeSBrZXkgcmV0dXJuZWQgYnkgYSBwcmV2aW91cyBjYWxsIHRvIHJl
Z2lzdGVySW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBpbi9vdXQgc3RhdHVzIGNv
ZGUsIG5vIHNwZWNpYWwgbWVhbmluZ3MgYXJlIGFzc2lnbmVkCisgICAgICogQHJldHVybiBUUlVF
IGlmIHRoZSBpdGVyYXRvciBmb3IgdGhlIGtleSB3YXMgc3VjY2Vzc2Z1bGx5IHVucmVnaXN0ZXJl
ZAorICAgICAqIEBzdGFibGUgSUNVIDIuNAorICAgICAqLworICAgIHN0YXRpYyBVQm9vbCBVX0VY
UE9SVDIgdW5yZWdpc3RlcihVUmVnaXN0cnlLZXkga2V5LCBVRXJyb3JDb2RlJiBzdGF0dXMpOwor
CisgICAgLyoqCisgICAgICogUmV0dXJuIGEgU3RyaW5nRW51bWVyYXRpb24gb3ZlciB0aGUgbG9j
YWxlcyBhdmFpbGFibGUgYXQgdGhlIHRpbWUgb2YgdGhlIGNhbGwsCisgICAgICogaW5jbHVkaW5n
IHJlZ2lzdGVyZWQgbG9jYWxlcy4KKyAgICAgKiBAcmV0dXJuIGEgU3RyaW5nRW51bWVyYXRpb24g
b3ZlciB0aGUgbG9jYWxlcyBhdmFpbGFibGUgYXQgdGhlIHRpbWUgb2YgdGhlIGNhbGwKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjQKKyAgICAgKi8KKyAgICBzdGF0aWMgU3RyaW5nRW51bWVyYXRpb24q
IFVfRVhQT1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKHZvaWQpOworI2VuZGlmCisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuIFR3byBm
bGF2b3JzIGFyZSBhdmFpbGFibGU6IHZhbGlkIGFuZAorICAgICAqIGFjdHVhbCBsb2NhbGUuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgTG9jYWxlIGdldExvY2FsZShVTG9j
RGF0YUxvY2FsZVR5cGUgdHlwZSwgVUVycm9yQ29kZSYgc3RhdHVzKSBjb25zdDsKKworI2lmbmRl
ZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoqIEdldCB0aGUgbG9jYWxlIGZvciB0aGlzIGJy
ZWFrIGl0ZXJhdG9yIG9iamVjdC4gWW91IGNhbiBjaG9vc2UgYmV0d2VlbiB2YWxpZCBhbmQgYWN0
dWFsIGxvY2FsZS4KKyAgICAgKiAgQHBhcmFtIHR5cGUgdHlwZSBvZiB0aGUgbG9jYWxlIHdlJ3Jl
IGxvb2tpbmcgZm9yICh2YWxpZCBvciBhY3R1YWwpCisgICAgICogIEBwYXJhbSBzdGF0dXMgZXJy
b3IgY29kZSBmb3IgdGhlIG9wZXJhdGlvbgorICAgICAqICBAcmV0dXJuIHRoZSBsb2NhbGUKKyAg
ICAgKiAgQGludGVybmFsCisgICAgICovCisgICAgY29uc3QgY2hhciAqZ2V0TG9jYWxlSUQoVUxv
Y0RhdGFMb2NhbGVUeXBlIHR5cGUsIFVFcnJvckNvZGUmIHN0YXR1cykgY29uc3Q7CisjZW5kaWYg
IC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8KKworICAgIC8qKgorICAgICAqICBTZXQgdGhlIHN1
YmplY3QgdGV4dCBzdHJpbmcgdXBvbiB3aGljaCB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0
aW5nCisgICAgICogIHdpdGhvdXQgY2hhbmdpbmcgYW55IG90aGVyIGFzcGVjdCBvZiB0aGUgbWF0
Y2hpbmcgc3RhdGUuCisgICAgICogIFRoZSBuZXcgYW5kIHByZXZpb3VzIHRleHQgc3RyaW5ncyBt
dXN0IGhhdmUgdGhlIHNhbWUgY29udGVudC4KKyAgICAgKgorICAgICAqICBUaGlzIGZ1bmN0aW9u
IGlzIGludGVuZGVkIGZvciB1c2UgaW4gZW52aXJvbm1lbnRzIHdoZXJlIElDVSBpcyBvcGVyYXRp
bmcgb24KKyAgICAgKiAgc3RyaW5ncyB0aGF0IG1heSBtb3ZlIGFyb3VuZCBpbiBtZW1vcnkuICBJ
dCBwcm92aWRlcyBhIG1lY2hhbmlzbSBmb3Igbm90aWZ5aW5nCisgICAgICogIElDVSB0aGF0IHRo
ZSBzdHJpbmcgaGFzIGJlZW4gcmVsb2NhdGVkLCBhbmQgcHJvdmlkaW5nIGEgbmV3IFVUZXh0IHRv
IGFjY2VzcyB0aGUKKyAgICAgKiAgc3RyaW5nIGluIGl0cyBuZXcgcG9zaXRpb24uCisgICAgICoK
KyAgICAgKiAgTm90ZSB0aGF0IHRoZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbiBuZXZl
ciBjb3BpZXMgdGhlIHVuZGVybHlpbmcgdGV4dAorICAgICAqICBvZiBhIHN0cmluZyBiZWluZyBw
cm9jZXNzZWQsIGJ1dCBhbHdheXMgb3BlcmF0ZXMgZGlyZWN0bHkgb24gdGhlIG9yaWdpbmFsIHRl
eHQKKyAgICAgKiAgcHJvdmlkZWQgYnkgdGhlIHVzZXIuIFJlZnJlc2hpbmcgc2ltcGx5IGRyb3Bz
IHRoZSByZWZlcmVuY2VzIHRvIHRoZSBvbGQgdGV4dAorICAgICAqICBhbmQgcmVwbGFjZXMgdGhl
bSB3aXRoIHJlZmVyZW5jZXMgdG8gdGhlIG5ldy4KKyAgICAgKgorICAgICAqICBDYXV0aW9uOiAg
dGhpcyBmdW5jdGlvbiBpcyBub3JtYWxseSB1c2VkIG9ubHkgYnkgdmVyeSBzcGVjaWFsaXplZCwK
KyAgICAgKiAgc3lzdGVtLWxldmVsIGNvZGUuICBPbmUgZXhhbXBsZSB1c2UgY2FzZSBpcyB3aXRo
IGdhcmJhZ2UgY29sbGVjdGlvbiB0aGF0IG1vdmVzCisgICAgICogIHRoZSB0ZXh0IGluIG1lbW9y
eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnB1dCAgICAgIFRoZSBuZXcgKG1vdmVkKSB0ZXh0
IHN0cmluZy4KKyAgICAgKiBAcGFyYW0gc3RhdHVzICAgICBSZWNlaXZlcyBlcnJvcnMgZGV0ZWN0
ZWQgYnkgdGhpcyBmdW5jdGlvbi4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAqdGhpcworICAg
ICAqCisgICAgICogQHN0YWJsZSBJQ1UgNDkKKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJyZWFrSXRl
cmF0b3IgJnJlZnJlc2hJbnB1dFRleHQoVVRleHQgKmlucHV0LCBVRXJyb3JDb2RlICZzdGF0dXMp
ID0gMDsKKworIHByaXZhdGU6CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3IqIGJ1aWxkSW5zdGFu
Y2UoY29uc3QgTG9jYWxlJiBsb2MsIGNvbnN0IGNoYXIgKnR5cGUsIGludDMyX3Qga2luZCwgVUVy
cm9yQ29kZSYgc3RhdHVzKTsKKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogY3JlYXRlSW5zdGFu
Y2UoY29uc3QgTG9jYWxlJiBsb2MsIGludDMyX3Qga2luZCwgVUVycm9yQ29kZSYgc3RhdHVzKTsK
KyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogbWFrZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9j
LCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICBmcmllbmQgY2xhc3Mg
SUNVQnJlYWtJdGVyYXRvckZhY3Rvcnk7CisgICAgZnJpZW5kIGNsYXNzIElDVUJyZWFrSXRlcmF0
b3JTZXJ2aWNlOworCitwcm90ZWN0ZWQ6CisgICAgLy8gRG8gbm90IGVuY2xvc2UgcHJvdGVjdGVk
IGRlZmF1bHQvY29weSBjb25zdHJ1Y3RvcnMgd2l0aCAjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9B
UEkKKyAgICAvLyBvciBlbHNlIHRoZSBjb21waWxlciB3aWxsIGNyZWF0ZSBhIHB1YmxpYyBvbmVz
LgorICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJhdG9yKCk7CisgICAgLyoqIEBp
bnRlcm5hbCAqLworICAgIEJyZWFrSXRlcmF0b3IgKGNvbnN0IEJyZWFrSXRlcmF0b3IgJm90aGVy
KSA6IFVPYmplY3Qob3RoZXIpIHt9CisgICAgLyoqIEBpbnRlcm5hbCAqLworICAgIEJyZWFrSXRl
cmF0b3IgKGNvbnN0IExvY2FsZSYgdmFsaWQsIGNvbnN0IExvY2FsZSYgYWN0dWFsKTsKK3ByaXZh
dGU6CisKKyAgICAvKiogQGludGVybmFsICovCisgICAgY2hhciBhY3R1YWxMb2NhbGVbVUxPQ19G
VUxMTkFNRV9DQVBBQ0lUWV07CisgICAgY2hhciB2YWxpZExvY2FsZVtVTE9DX0ZVTExOQU1FX0NB
UEFDSVRZXTsKKworICAgIC8qKgorICAgICAqIFRoZSBhc3NpZ25tZW50IG9wZXJhdG9yIGhhcyBu
byByZWFsIGltcGxlbWVudGF0aW9uLgorICAgICAqIEl0J3MgcHJvdmlkZWQgdG8gbWFrZSB0aGUg
Y29tcGlsZXIgaGFwcHkuIERvIG5vdCBjYWxsLgorICAgICAqLworICAgIEJyZWFrSXRlcmF0b3Im
IG9wZXJhdG9yPShjb25zdCBCcmVha0l0ZXJhdG9yJik7Cit9OworCisjaWZuZGVmIFVfSElERV9E
RVBSRUNBVEVEX0FQSQorCitpbmxpbmUgVUJvb2wgQnJlYWtJdGVyYXRvcjo6aXNCdWZmZXJDbG9u
ZSgpCit7CisgICAgcmV0dXJuIEZBTFNFOworfQorCisjZW5kaWYgLyogVV9ISURFX0RFUFJFQ0FU
RURfQVBJICovCisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05P
X0JSRUFLX0lURVJBVElPTiAqLworCisjZW5kaWYgLy8gX0JSS0lURVIKKy8vZW9mCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL2NoYXJpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThkNjUwOTBhNDBhNjA4NTk1MWM3MzMwN2Y3
NGFjZjgzYmExYmJjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUv
Y2hhcml0ZXIuaApAQCAtMCwwICsxLDcyMiBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29w
eXJpZ2h0IChDKSAxOTk3LTIwMTEsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyog
ICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqLworCisjaWZuZGVmIENIQVJJVEVSX0gKKyNkZWZpbmUgQ0hBUklURVJfSAorCisj
aW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIK
KyNpbmNsdWRlICJ1bmljb2RlL3VuaXN0ci5oIgorLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMr
KyBBUEk6IENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorLyoq
CisgKiBBYnN0cmFjdCBjbGFzcyB0aGF0IGRlZmluZXMgYW4gQVBJIGZvciBmb3J3YXJkLW9ubHkg
aXRlcmF0aW9uCisgKiBvbiB0ZXh0IG9iamVjdHMuCisgKiBUaGlzIGlzIGEgbWluaW1hbCBpbnRl
cmZhY2UgZm9yIGl0ZXJhdGlvbiB3aXRob3V0IHJhbmRvbSBhY2Nlc3MKKyAqIG9yIGJhY2t3YXJk
cyBpdGVyYXRpb24uIEl0IGlzIGVzcGVjaWFsbHkgdXNlZnVsIGZvciB3cmFwcGluZworICogc3Ry
ZWFtcyB3aXRoIGNvbnZlcnRlcnMgaW50byBhbiBvYmplY3QgZm9yIGNvbGxhdGlvbiBvcgorICog
bm9ybWFsaXphdGlvbi4KKyAqCisgKiA8cD5DaGFyYWN0ZXJzIGNhbiBiZSBhY2Nlc3NlZCBpbiB0
d28gd2F5czogYXMgY29kZSB1bml0cyBvciBhcworICogY29kZSBwb2ludHMuCisgKiBVbmljb2Rl
IGNvZGUgcG9pbnRzIGFyZSAyMS1iaXQgaW50ZWdlcnMgYW5kIGFyZSB0aGUgc2NhbGFyIHZhbHVl
cworICogb2YgVW5pY29kZSBjaGFyYWN0ZXJzLiBJQ1UgdXNlcyB0aGUgdHlwZSBVQ2hhcjMyIGZv
ciB0aGVtLgorICogVW5pY29kZSBjb2RlIHVuaXRzIGFyZSB0aGUgc3RvcmFnZSB1bml0cyBvZiBh
IGdpdmVuCisgKiBVbmljb2RlL1VDUyBUcmFuc2Zvcm1hdGlvbiBGb3JtYXQgKGEgY2hhcmFjdGVy
IGVuY29kaW5nIHNjaGVtZSkuCisgKiBXaXRoIFVURi0xNiwgYWxsIGNvZGUgcG9pbnRzIGNhbiBi
ZSByZXByZXNlbnRlZCB3aXRoIGVpdGhlciBvbmUKKyAqIG9yIHR3byBjb2RlIHVuaXRzICgic3Vy
cm9nYXRlcyIpLgorICogU3RyaW5nIHN0b3JhZ2UgaXMgdHlwaWNhbGx5IGJhc2VkIG9uIGNvZGUg
dW5pdHMsIHdoaWxlIHByb3BlcnRpZXMKKyAqIG9mIGNoYXJhY3RlcnMgYXJlIHR5cGljYWxseSBk
ZXRlcm1pbmVkIHVzaW5nIGNvZGUgcG9pbnQgdmFsdWVzLgorICogU29tZSBwcm9jZXNzZXMgbWF5
IGJlIGRlc2lnbmVkIHRvIHdvcmsgd2l0aCBzZXF1ZW5jZXMgb2YgY29kZSB1bml0cywKKyAqIG9y
IGl0IG1heSBiZSBrbm93biB0aGF0IGFsbCBjaGFyYWN0ZXJzIHRoYXQgYXJlIGltcG9ydGFudCB0
byBhbgorICogYWxnb3JpdGhtIGNhbiBiZSByZXByZXNlbnRlZCB3aXRoIHNpbmdsZSBjb2RlIHVu
aXRzLgorICogT3RoZXIgcHJvY2Vzc2VzIHdpbGwgbmVlZCB0byB1c2UgdGhlIGNvZGUgcG9pbnQg
YWNjZXNzIGZ1bmN0aW9ucy48L3A+CisgKgorICogPHA+Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
IHByb3ZpZGVzIG5leHRQb3N0SW5jKCkgdG8gYWNjZXNzCisgKiBhIGNvZGUgdW5pdCBhbmQgYWR2
YW5jZSBhbiBpbnRlcm5hbCBwb3NpdGlvbiBpbnRvIHRoZSB0ZXh0IG9iamVjdCwKKyAqIHNpbWls
YXIgdG8gYSA8Y29kZT5yZXR1cm4gdGV4dFtwb3NpdGlvbisrXTwvY29kZT4uPGJyPgorICogSXQg
cHJvdmlkZXMgbmV4dDMyUG9zdEluYygpIHRvIGFjY2VzcyBhIGNvZGUgcG9pbnQgYW5kIGFkdmFu
Y2UgYW4gaW50ZXJuYWwKKyAqIHBvc2l0aW9uLjwvcD4KKyAqCisgKiA8cD5uZXh0MzJQb3N0SW5j
KCkgYXNzdW1lcyB0aGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uIGlzIHRoYXQgb2YKKyAqIHRoZSBi
ZWdpbm5pbmcgb2YgYSBjb2RlIHBvaW50LCBpLmUuLCBvZiBpdHMgZmlyc3QgY29kZSB1bml0Lgor
ICogQWZ0ZXIgbmV4dDMyUG9zdEluYygpLCB0aGlzIHdpbGwgYmUgdHJ1ZSBhZ2Fpbi4KKyAqIElu
IGdlbmVyYWwsIGFjY2VzcyB0byBjb2RlIHVuaXRzIGFuZCBjb2RlIHBvaW50cyBpbiB0aGUgc2Ft
ZQorICogaXRlcmF0aW9uIGxvb3Agc2hvdWxkIG5vdCBiZSBtaXhlZC4gSW4gVVRGLTE2LCBpZiB0
aGUgY3VycmVudCBwb3NpdGlvbgorICogaXMgb24gYSBzZWNvbmQgY29kZSB1bml0IChMb3cgU3Vy
cm9nYXRlKSwgdGhlbiBvbmx5IHRoYXQgY29kZSB1bml0CisgKiBpcyByZXR1cm5lZCBldmVuIGJ5
IG5leHQzMlBvc3RJbmMoKS48L3A+CisgKgorICogPHA+Rm9yIGl0ZXJhdGlvbiB3aXRoIGVpdGhl
ciBmdW5jdGlvbiwgdGhlcmUgYXJlIHR3byB3YXlzIHRvCisgKiBjaGVjayBmb3IgdGhlIGVuZCBv
ZiB0aGUgaXRlcmF0aW9uLiBXaGVuIHRoZXJlIGFyZSBubyBtb3JlCisgKiBjaGFyYWN0ZXJzIGlu
IHRoZSB0ZXh0IG9iamVjdDoKKyAqIDx1bD4KKyAqIDxsaT5UaGUgaGFzTmV4dCgpIGZ1bmN0aW9u
IHJldHVybnMgRkFMU0UuPC9saT4KKyAqIDxsaT5uZXh0UG9zdEluYygpIGFuZCBuZXh0MzJQb3N0
SW5jKCkgcmV0dXJuIERPTkUKKyAqICAgICB3aGVuIG9uZSBhdHRlbXB0cyB0byByZWFkIGJleW9u
ZCB0aGUgZW5kIG9mIHRoZSB0ZXh0IG9iamVjdC48L2xpPgorICogPC91bD4KKyAqCisgKiBFeGFt
cGxlOgorICogXGNvZGUgCisgKiB2b2lkIGZ1bmN0aW9uMShGb3J3YXJkQ2hhcmFjdGVySXRlcmF0
b3IgJml0KSB7CisgKiAgICAgVUNoYXIzMiBjOworICogICAgIHdoaWxlKGl0Lmhhc05leHQoKSkg
eworICogICAgICAgICBjPWl0Lm5leHQzMlBvc3RJbmMoKTsKKyAqICAgICAgICAgLy8gdXNlIGMK
KyAqICAgICB9CisgKiB9CisgKgorICogdm9pZCBmdW5jdGlvbjEoRm9yd2FyZENoYXJhY3Rlckl0
ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyIGM7CisgKiAgICAgd2hpbGUoKGM9aXQubmV4dFBv
c3RJbmMoKSkhPUZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjo6RE9ORSkgeworICogICAgICAgICAv
LyB1c2UgYworICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcD4KKyAqCisgKiBA
c3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIEZvcndhcmRDaGFyYWN0ZXJJ
dGVyYXRvciA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1YmxpYzoKKyAgICAvKioKKyAgICAgKiBWYWx1
ZSByZXR1cm5lZCBieSBtb3N0IG9mIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcidzIGZ1bmN0aW9u
cworICAgICAqIHdoZW4gdGhlIGl0ZXJhdG9yIGhhcyByZWFjaGVkIHRoZSBsaW1pdHMgb2YgaXRz
IGl0ZXJhdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBlbnVtIHsg
RE9ORSA9IDB4ZmZmZiB9OworICAgIAorICAgIC8qKgorICAgICAqIERlc3RydWN0b3IuICAKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIH5Gb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3IoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgd2hlbiBi
b3RoIGl0ZXJhdG9ycyByZWZlciB0byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUg
c2FtZSBjaGFyYWN0ZXItc3RvcmFnZSBvYmplY3QuICAKKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUg
Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAg
ICAqIEByZXR1cm4gdHJ1ZSB3aGVuIGJvdGggaXRlcmF0b3JzIHJlZmVyIHRvIHRoZSBzYW1lCisg
ICAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIGNoYXJhY3Rlci1zdG9yYWdlIG9iamVjdAorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9
PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0ID0gMDsKKyAgICAK
KyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgd2hlbiB0aGUgaXRlcmF0b3JzIHJlZmVyIHRv
IGRpZmZlcmVudAorICAgICAqIHRleHQtc3RvcmFnZSBvYmplY3RzLCBvciB0byBkaWZmZXJlbnQg
Y2hhcmFjdGVycyBpbiB0aGUKKyAgICAgKiBzYW1lIHRleHQtc3RvcmFnZSBvYmplY3QuICAKKyAg
ICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvbXBh
cmVkIGZvciBpbmVxdWFsaXR5CisgICAgICogQHJldHVybiB0cnVlIHdoZW4gdGhlIGl0ZXJhdG9y
cyByZWZlciB0byBkaWZmZXJlbnQKKyAgICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0cywgb3IgdG8g
ZGlmZmVyZW50IGNoYXJhY3RlcnMgaW4gdGhlCisgICAgICogc2FtZSB0ZXh0LXN0b3JhZ2Ugb2Jq
ZWN0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIFVCb29sIG9w
ZXJhdG9yIT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKyAg
ICAKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgaXRlcmF0
b3IuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBoYXNoIGNvZGUuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGhhc2hDb2RlKHZvaWQpIGNvbnN0ID0g
MDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoaXMgRm9y
d2FyZENoYXJhY3Rlckl0ZXJhdG9yICgicG9vciBtYW4ncworICAgICAqIFJUVEkiKS48UD4gRGVz
cGl0ZSB0aGUgZmFjdCB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgcHVibGljLAorICAgICAqIERPIE5P
VCBDT05TSURFUiBJVCBQQVJUIE9GIENIQVJBQ1RFUklURVJBVE9SJ1MgQVBJISAKKyAgICAgKiBA
cmV0dXJuIGEgVUNsYXNzSUQgZm9yIHRoaXMgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIAorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNsYXNzSUQgZ2V0RHlu
YW1pY0NsYXNzSUQodm9pZCkgY29uc3QgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIEdldHMg
dGhlIGN1cnJlbnQgY29kZSB1bml0IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBu
ZXh0IGNvZGUgdW5pdAorICAgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93
YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHVuaXRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29k
ZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNo
YXIgICAgICAgICBuZXh0UG9zdEluYyh2b2lkKSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICog
R2V0cyB0aGUgY3VycmVudCBjb2RlIHBvaW50IGZvciByZXR1cm5pbmcgYW5kIGFkdmFuY2VzIHRv
IHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAg
ICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29k
ZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAgICogQHJldHVybiB0aGUgY3Vy
cmVudCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzJQb3N0SW5jKHZvaWQpID0gMDsKKyAgICAKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMg
b3IgY29kZSBwb2ludHMKKyAgICAgKiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBp
biB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIFRoaXMgaXMgdXNlZCB3aXRoIG5leHRQb3N0
SW5jKCkgb3IgbmV4dDMyUG9zdEluYygpIGluIGZvcndhcmQKKyAgICAgKiBpdGVyYXRpb24uCisg
ICAgICogQHJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBj
b2RlIHBvaW50cworICAgICAqIGF0IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRo
ZSBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBVQm9vbCAgICAgICAgaGFzTmV4dCgpID0gMDsKKyAgICAKK3Byb3RlY3RlZDoKKyAg
ICAvKiogRGVmYXVsdCBjb25zdHJ1Y3RvciB0byBiZSBvdmVycmlkZGVuIGluIHRoZSBpbXBsZW1l
bnRpbmcgY2xhc3MuIEBzdGFibGUgSUNVIDIuMCovCisgICAgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yKCk7CisgICAgCisgICAgLyoqIENvcHkgY29uc3RydWN0b3IgdG8gYmUgb3ZlcnJpZGRlbiBp
biB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLiBAc3RhYmxlIElDVSAyLjAqLworICAgIEZvcndhcmRD
aGFyYWN0ZXJJdGVyYXRvcihjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgJm90aGVyKTsK
KyAgICAKKyAgICAvKioKKyAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yIHRvIGJlIG92ZXJyaWRk
ZW4gaW4gdGhlIGltcGxlbWVudGluZyBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgJm9wZXJhdG9yPShjb25zdCBGb3J3
YXJkQ2hhcmFjdGVySXRlcmF0b3ImKSB7IHJldHVybiAqdGhpczsgfQorfTsKKworLyoqCisgKiBB
YnN0cmFjdCBjbGFzcyB0aGF0IGRlZmluZXMgYW4gQVBJIGZvciBpdGVyYXRpb24KKyAqIG9uIHRl
eHQgb2JqZWN0cy4KKyAqIFRoaXMgaXMgYW4gaW50ZXJmYWNlIGZvciBmb3J3YXJkIGFuZCBiYWNr
d2FyZCBpdGVyYXRpb24KKyAqIGFuZCByYW5kb20gYWNjZXNzIGludG8gYSB0ZXh0IG9iamVjdC4K
KyAqCisgKiA8cD5UaGUgQVBJIHByb3ZpZGVzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgdG8gdGhl
IEphdmEgYW5kIG9sZGVyIElDVQorICogQ2hhcmFjdGVySXRlcmF0b3IgY2xhc3NlcyBidXQgZXh0
ZW5kcyB0aGVtIHNpZ25pZmljYW50bHk6CisgKiA8b2w+CisgKiA8bGk+Q2hhcmFjdGVySXRlcmF0
b3IgaXMgbm93IGEgc3ViY2xhc3Mgb2YgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yLjwvbGk+Cisg
KiA8bGk+V2hpbGUgdGhlIG9sZCBBUEkgZnVuY3Rpb25zIHByb3ZpZGVkIGZvcndhcmQgaXRlcmF0
aW9uIHdpdGgKKyAqICAgICAicHJlLWluY3JlbWVudCIgc2VtYW50aWNzLCB0aGUgbmV3IG9uZSBh
bHNvIHByb3ZpZGVzIGZ1bmN0aW9ucworICogICAgIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1h
bnRpY3MuIFRoZXkgYXJlIG1vcmUgZWZmaWNpZW50IGFuZCBzaG91bGQKKyAqICAgICBiZSB0aGUg
cHJlZmVycmVkIGl0ZXJhdG9yIGZ1bmN0aW9ucyBmb3IgbmV3IGltcGxlbWVudGF0aW9ucy4KKyAq
ICAgICBUaGUgYmFja3dhcmQgaXRlcmF0aW9uIGFsd2F5cyBoYWQgInByZS1kZWNyZW1lbnQiIHNl
bWFudGljcywgd2hpY2gKKyAqICAgICBhcmUgZWZmaWNpZW50LjwvbGk+CisgKiA8bGk+SnVzdCBs
aWtlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciwgaXQgcHJvdmlkZXMgYWNjZXNzIHRvCisgKiAg
ICAgYm90aCBjb2RlIHVuaXRzIGFuZCBjb2RlIHBvaW50cy4gQ29kZSBwb2ludCBhY2Nlc3MgdmVy
c2lvbnMgYXJlIGF2YWlsYWJsZQorICogICAgIGZvciB0aGUgb2xkIGFuZCB0aGUgbmV3IGl0ZXJh
dGlvbiBzZW1hbnRpY3MuPC9saT4KKyAqIDxsaT5UaGVyZSBhcmUgbmV3IGZ1bmN0aW9ucyBmb3Ig
c2V0dGluZyBhbmQgbW92aW5nIHRoZSBjdXJyZW50IHBvc2l0aW9uCisgKiAgICAgd2l0aG91dCBy
ZXR1cm5pbmcgYSBjaGFyYWN0ZXIsIGZvciBlZmZpY2llbmN5LjwvbGk+CisgKiA8L29sPgorICoK
KyAqIFNlZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgZm9yIGV4YW1wbGVzIGZvciB1c2luZyB0
aGUgbmV3IGZvcndhcmQgaXRlcmF0aW9uCisgKiBmdW5jdGlvbnMuIEZvciBiYWNrd2FyZCBpdGVy
YXRpb24sIHRoZXJlIGlzIGFsc28gYSBoYXNQcmV2aW91cygpIGZ1bmN0aW9uCisgKiB0aGF0IGNh
biBiZSB1c2VkIGFuYWxvZ291c2x5IHRvIGhhc05leHQoKS4KKyAqIFRoZSBvbGQgZnVuY3Rpb25z
IHdvcmsgYXMgYmVmb3JlIGFuZCBhcmUgc2hvd24gYmVsb3cuPC9wPgorICoKKyAqIDxwPkV4YW1w
bGVzIGZvciBzb21lIG9mIHRoZSBuZXcgZnVuY3Rpb25zOjwvcD4KKyAqCisgKiBGb3J3YXJkIGl0
ZXJhdGlvbiB3aXRoIGhhc05leHQoKToKKyAqIFxjb2RlCisgKiB2b2lkIGZvcndhcmQxKENoYXJh
Y3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyMzIgYzsKKyAqICAgICBmb3IoaXQuc2V0
VG9TdGFydCgpOyBpdC5oYXNOZXh0KCk7KSB7CisgKiAgICAgICAgIGM9aXQubmV4dDMyUG9zdElu
YygpOworICogICAgICAgICAvLyB1c2UgYworICogICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQor
ICogRm9yd2FyZCBpdGVyYXRpb24gbW9yZSBzaW1pbGFyIHRvIGxvb3BzIHdpdGggdGhlIG9sZCBm
b3J3YXJkIGl0ZXJhdGlvbiwKKyAqIHNob3dpbmcgYSB3YXkgdG8gY29udmVydCBzaW1wbGUgZm9y
KCkgbG9vcHM6CisgKiBcY29kZQorICogdm9pZCBmb3J3YXJkMihDaGFyYWN0ZXJJdGVyYXRvciAm
aXQpIHsKKyAqICAgICBVQ2hhciBjOworICogICAgIGZvcihjPWl0LmZpcnN0UG9zdEluYygpOyBj
IT1DaGFyYWN0ZXJJdGVyYXRvcjo6RE9ORTsgYz1pdC5uZXh0UG9zdEluYygpKSB7CisgKiAgICAg
ICAgICAvLyB1c2UgYworICogICAgICB9CisgKiB9CisgKiBcZW5kY29kZQorICogQmFja3dhcmQg
aXRlcmF0aW9uIHdpdGggc2V0VG9FbmQoKSBhbmQgaGFzUHJldmlvdXMoKToKKyAqIFxjb2RlCisg
KiAgdm9pZCBiYWNrd2FyZDEoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgIFVDaGFy
MzIgYzsKKyAqICAgICAgZm9yKGl0LnNldFRvRW5kKCk7IGl0Lmhhc1ByZXZpb3VzKCk7KSB7Cisg
KiAgICAgICAgIGM9aXQucHJldmlvdXMzMigpOworICogICAgICAgICAgLy8gdXNlIGMKKyAqICAg
ICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiBCYWNrd2FyZCBpdGVyYXRpb24gd2l0aCBhIG1v
cmUgdHJhZGl0aW9uYWwgZm9yKCkgbG9vcDoKKyAqIFxjb2RlCisgKiB2b2lkIGJhY2t3YXJkMihD
aGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hhciBjOworICogICAgIGZvcihjPWl0
Lmxhc3QoKTsgYyE9Q2hhcmFjdGVySXRlcmF0b3I6OkRPTkU7IGM9aXQucHJldmlvdXMoKSkgewor
ICogICAgICAgICAvLyB1c2UgYworICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqCisg
KiBFeGFtcGxlIGZvciByYW5kb20gYWNjZXNzOgorICogXGNvZGUKKyAqICB2b2lkIHJhbmRvbShD
aGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICAgLy8gc2V0IHRvIHRoZSB0aGlyZCBjb2Rl
IHBvaW50IGZyb20gdGhlIGJlZ2lubmluZworICogICAgICBpdC5tb3ZlMzIoMywgQ2hhcmFjdGVy
SXRlcmF0b3I6OmtTdGFydCk7CisgKiAgICAgIC8vIGdldCBhIGNvZGUgcG9pbnQgZnJvbSBoZXJl
IHdpdGhvdXQgbW92aW5nIHRoZSBwb3NpdGlvbgorICogICAgICBVQ2hhcjMyIGM9aXQuY3VycmVu
dDMyKCk7CisgKiAgICAgIC8vIGdldCB0aGUgcG9zaXRpb24KKyAqICAgICAgaW50MzJfdCBwb3M9
aXQuZ2V0SW5kZXgoKTsKKyAqICAgICAgLy8gZ2V0IHRoZSBwcmV2aW91cyBjb2RlIHVuaXQKKyAq
ICAgICAgVUNoYXIgdT1pdC5wcmV2aW91cygpOworICogICAgICAvLyBtb3ZlIGJhY2sgb25lIG1v
cmUgY29kZSB1bml0CisgKiAgICAgIGl0Lm1vdmUoLTEsIENoYXJhY3Rlckl0ZXJhdG9yOjprQ3Vy
cmVudCk7CisgKiAgICAgIC8vIHNldCB0aGUgcG9zaXRpb24gYmFjayB0byB3aGVyZSBpdCB3YXMK
KyAqICAgICAgLy8gYW5kIHJlYWQgdGhlIHNhbWUgY29kZSBwb2ludCBjIGFuZCBtb3ZlIGJleW9u
ZCBpdAorICogICAgICBpdC5zZXRJbmRleChwb3MpOworICogICAgICBpZihjIT1pdC5uZXh0MzJQ
b3N0SW5jKCkpIHsKKyAqICAgICAgICAgIGV4aXQoMSk7IC8vIENoYXJhY3Rlckl0ZXJhdG9yIGlu
Y29uc2lzdGVudAorICogICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqCisgKiA8cD5FeGFt
cGxlcywgZXNwZWNpYWxseSBmb3IgdGhlIG9sZCBBUEk6PC9wPgorICoKKyAqIEZ1bmN0aW9uIHBy
b2Nlc3NpbmcgY2hhcmFjdGVycywgaW4gdGhpcyBleGFtcGxlIHNpbXBsZSBvdXRwdXQKKyAqIDxw
cmU+CisgKiBcY29kZQorICogIHZvaWQgcHJvY2Vzc0NoYXIoIFVDaGFyIGMgKQorICogIHsKKyAq
ICAgICAgY291dCA8PCAiICIgPDwgYzsKKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+Cisg
KiBUcmF2ZXJzZSB0aGUgdGV4dCBmcm9tIHN0YXJ0IHRvIGZpbmlzaAorICogPHByZT4gCisgKiBc
Y29kZQorICogIHZvaWQgdHJhdmVyc2VGb3J3YXJkKENoYXJhY3Rlckl0ZXJhdG9yJiBpdGVyKQor
ICogIHsKKyAqICAgICAgZm9yKFVDaGFyIGMgPSBpdGVyLmZpcnN0KCk7IGMgIT0gQ2hhcmFjdGVy
SXRlcmF0b3IuRE9ORTsgYyA9IGl0ZXIubmV4dCgpKSB7CisgKiAgICAgICAgICBwcm9jZXNzQ2hh
cihjKTsKKyAqICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqIFRyYXZl
cnNlIHRoZSB0ZXh0IGJhY2t3YXJkcywgZnJvbSBlbmQgdG8gc3RhcnQKKyAqIDxwcmU+CisgKiBc
Y29kZQorICogIHZvaWQgdHJhdmVyc2VCYWNrd2FyZChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlcikK
KyAqICB7CisgKiAgICAgIGZvcihVQ2hhciBjID0gaXRlci5sYXN0KCk7IGMgIT0gQ2hhcmFjdGVy
SXRlcmF0b3IuRE9ORTsgYyA9IGl0ZXIucHJldmlvdXMoKSkgeworICogICAgICAgICAgcHJvY2Vz
c0NoYXIoYyk7CisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBU
cmF2ZXJzZSBib3RoIGZvcndhcmQgYW5kIGJhY2t3YXJkIGZyb20gYSBnaXZlbiBwb3NpdGlvbiBp
biB0aGUgdGV4dC4gCisgKiBDYWxscyB0byBub3RCb3VuZGFyeSgpIGluIHRoaXMgZXhhbXBsZSBy
ZXByZXNlbnRzIHNvbWUgYWRkaXRpb25hbCBzdG9wcGluZyBjcml0ZXJpYS4KKyAqIDxwcmU+Cisg
KiBcY29kZQorICogdm9pZCB0cmF2ZXJzZU91dChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlciwgaW50
MzJfdCBwb3MpCisgKiB7CisgKiAgICAgIFVDaGFyIGM7CisgKiAgICAgIGZvciAoYyA9IGl0ZXIu
c2V0SW5kZXgocG9zKTsKKyAqICAgICAgYyAhPSBDaGFyYWN0ZXJJdGVyYXRvci5ET05FICYmIChV
bmljb2RlOjppc0xldHRlcihjKSB8fCBVbmljb2RlOjppc0RpZ2l0KGMpKTsKKyAqICAgICAgICAg
IGMgPSBpdGVyLm5leHQoKSkge30KKyAqICAgICAgaW50MzJfdCBlbmQgPSBpdGVyLmdldEluZGV4
KCk7CisgKiAgICAgIGZvciAoYyA9IGl0ZXIuc2V0SW5kZXgocG9zKTsKKyAqICAgICAgICAgIGMg
IT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJiAoVW5pY29kZTo6aXNMZXR0ZXIoYykgfHwgVW5p
Y29kZTo6aXNEaWdpdChjKSk7CisgKiAgICAgICAgICBjID0gaXRlci5wcmV2aW91cygpKSB7fQor
ICogICAgICBpbnQzMl90IHN0YXJ0ID0gaXRlci5nZXRJbmRleCgpICsgMTsKKyAqICAKKyAqICAg
ICAgY291dCA8PCAic3RhcnQ6ICIgPDwgc3RhcnQgPDwgIiBlbmQ6ICIgPDwgZW5kIDw8IGVuZGw7
CisgKiAgICAgIGZvciAoYyA9IGl0ZXIuc2V0SW5kZXgoc3RhcnQpOyBpdGVyLmdldEluZGV4KCkg
PCBlbmQ7IGMgPSBpdGVyLm5leHQoKSApIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMpOwor
ICogICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBDcmVhdGluZyBhIFN0
cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIGFuZCBjYWxsaW5nIHRoZSB0ZXN0IGZ1bmN0aW9ucworICog
PHByZT4KKyAqIFxjb2RlCisgKiAgdm9pZCBDaGFyYWN0ZXJJdGVyYXRvcl9FeGFtcGxlKCB2b2lk
ICkKKyAqICAgeworICogICAgICAgY291dCA8PCBlbmRsIDw8ICI9PT09PSBDaGFyYWN0ZXJJdGVy
YXRvcl9FeGFtcGxlOiA9PT09PSIgPDwgZW5kbDsKKyAqICAgICAgIFVuaWNvZGVTdHJpbmcgdGV4
dCgiRWluIGtsZWluZXIgU2F0ei4iKTsKKyAqICAgICAgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9y
IGl0ZXJhdG9yKHRleHQpOworICogICAgICAgY291dCA8PCAiLS0tLS0gdHJhdmVyc2VGb3J3YXJk
OiAtLS0tLS0tLS0tLSIgPDwgZW5kbDsKKyAqICAgICAgIHRyYXZlcnNlRm9yd2FyZCggaXRlcmF0
b3IgKTsKKyAqICAgICAgIGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICItLS0tLSB0cmF2ZXJzZUJh
Y2t3YXJkOiAtLS0tLS0tLS0tIiA8PCBlbmRsOworICogICAgICAgdHJhdmVyc2VCYWNrd2FyZCgg
aXRlcmF0b3IgKTsKKyAqICAgICAgIGNvdXQgPDwgZW5kbCA8PCBlbmRsIDw8ICItLS0tLSB0cmF2
ZXJzZU91dDogLS0tLS0tLS0tLS0tLS0tIiA8PCBlbmRsOworICogICAgICAgdHJhdmVyc2VPdXQo
IGl0ZXJhdG9yLCA3ICk7CisgKiAgICAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0i
IDw8IGVuZGw7CisgKiAgIH0KKyAqIFxlbmRjb2RlCisgKiA8L3ByZT4KKyAqCisgKiBAc3RhYmxl
IElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIENoYXJhY3Rlckl0ZXJhdG9yIDogcHVi
bGljIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICog
T3JpZ2luIGVudW1lcmF0aW9uIGZvciB0aGUgbW92ZSgpIGFuZCBtb3ZlMzIoKSBmdW5jdGlvbnMu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgZW51bSBFT3JpZ2luIHsga1N0
YXJ0LCBrQ3VycmVudCwga0VuZCB9OworCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3Rvci4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIH5DaGFyYWN0ZXJJdGVy
YXRvcigpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHBvaW50ZXIgdG8gYSBuZXcgQ2hh
cmFjdGVySXRlcmF0b3Igb2YgdGhlIHNhbWUKKyAgICAgKiBjb25jcmV0ZSBjbGFzcyBhcyB0aGlz
IG9uZSwgYW5kIHJlZmVycmluZyB0byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUg
c2FtZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0IGFzIHRoaXMgb25lLiAgVGhlCisgICAgICogY2FsbGVy
IGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyB0aGUgbmV3IGNsb25lLiAgCisgICAgICogQHJl
dHVybiBhIHBvaW50ZXIgdG8gYSBuZXcgQ2hhcmFjdGVySXRlcmF0b3IKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBjbG9uZSh2
b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBy
ZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5n
ZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0
byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0KCkuCisgICAgICogQHJldHVybiB0aGUgZmly
c3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0KHZvaWQpID0gMDsK
KworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJz
dCBjb2RlIHVuaXQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQg
Y29kZSB1bml0LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAgICogdG8gdGhlIHNlY29uZCBj
b2RlIHVuaXQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAgICog
Zm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMoKS4KKyAgICAgKiBAcmV0dXJu
IHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmlyc3RQb3N0
SW5jKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIg
dG8gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBh
bmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwKKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJl
Z2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQzMigpLgorICAgICAqIE5vdGUgdGhhdCBhbiBpdGVy
YXRpb24gd2l0aCBuZXh0MzJQb3N0SW5jKCksIGJlZ2lubmluZyB3aXRoLAorICAgICAqIGUuZy4s
IHNldFRvU3RhcnQoKSBvciBmaXJzdFBvc3RJbmMoKSwgaXMgbW9yZSBlZmZpY2llbnQuCisgICAg
ICogQHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAg
ICBmaXJzdDMyKHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9y
IHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlv
biByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQsIGFuZCBtb3ZlcyB0aGUgcG9zaXRpb24K
KyAgICAgKiB0byB0aGUgc2Vjb25kIGNvZGUgcG9pbnQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUg
dG8gc2V0VG9TdGFydCgpCisgICAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dDMy
UG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0
ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIFVDaGFyMzIgICAgICAgZmlyc3QzMlBvc3RJbmModm9pZCk7CisKKyAgICAvKioKKyAgICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IG9yIGNv
ZGUgcG9pbnQgaW4gaXRzCisgICAgICogaXRlcmF0aW9uIHJhbmdlLiBUaGlzIGNhbiBiZSB1c2Vk
IHRvIGJlZ2luIGEgZm9yd2FyZAorICAgICAqIGl0ZXJhdGlvbiB3aXRoIG5leHRQb3N0SW5jKCkg
b3IgbmV4dDMyUG9zdEluYygpLgorICAgICAqIEByZXR1cm4gdGhlIHN0YXJ0IHBvc2l0aW9uIG9m
IHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICBpbmxpbmUgaW50MzJfdCAgICBzZXRUb1N0YXJ0KCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRz
IHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAg
ICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICAgKiBU
aGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIHByZXZpb3VzKCkuCisg
ICAgICogQHJldHVybiB0aGUgbGFzdCBjb2RlIHVuaXQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGxhc3Qodm9pZCkgPSAwOworICAg
ICAgICAKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUg
bGFzdCBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVy
bnMgdGhhdCBjb2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBp
dGVyYXRpb24gd2l0aCBwcmV2aW91czMyKCkuCisgICAgICogQHJldHVybiB0aGUgbGFzdCBjb2Rl
IHBvaW50LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNo
YXIzMiAgICAgICBsYXN0MzIodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUg
aXRlcmF0b3IgdG8gdGhlIGVuZCBvZiBpdHMgaXRlcmF0aW9uIHJhbmdlLCBqdXN0IGJlaGluZAor
ICAgICAqIHRoZSBsYXN0IGNvZGUgdW5pdCBvciBjb2RlIHBvaW50LiBUaGlzIGNhbiBiZSB1c2Vk
IHRvIGJlZ2luIGEgYmFja3dhcmQKKyAgICAgKiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpIG9y
IHByZXZpb3VzMzIoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIGl0
ZXJhdGlvbiByYW5nZQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGlu
ZSBpbnQzMl90ICAgIHNldFRvRW5kKCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVy
YXRvciB0byByZWZlciB0byB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0
aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAgICAg
KiByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgCisgICAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSAi
cG9zaXRpb24iLXRoIGNvZGUgdW5pdCBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAq
IEByZXR1cm4gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBzZXRJbmRleChpbnQzMl90
IHBvc2l0aW9uKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBy
ZWZlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjb2RlIHBvaW50CisgICAgICogdGhhdCBjb250
YWlucyB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0aGUgdGV4dC1zdG9y
YWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAgICAgKiByZXR1cm5zIHRo
YXQgY29kZSBwb2ludC4KKyAgICAgKiBUaGUgY3VycmVudCBwb3NpdGlvbiBpcyBhZGp1c3RlZCB0
byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjb2RlIHBvaW50CisgICAgICogKGl0cyBmaXJzdCBjb2Rl
IHVuaXQpLgorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVu
aXQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAcmV0dXJuIHRoZSAicG9zaXRp
b24iLXRoIGNvZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBVQ2hhcjMyICAgICAgIHNldEluZGV4MzIoaW50MzJfdCBwb3NpdGlvbikgPSAwOwor
CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBjdXJy
ZW50bHkgcmVmZXJzIHRvLiAKKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4g
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAg
ICAgIGN1cnJlbnQodm9pZCkgY29uc3QgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBS
ZXR1cm5zIHRoZSBjb2RlIHBvaW50IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLiAg
CisgICAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBjdXJyZW50MzIodm9p
ZCkgY29uc3QgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUg
bmV4dCBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5k
SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlCisgICAg
ICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgICAqIEBy
ZXR1cm4gdGhlIG5leHQgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBuZXh0KHZvaWQpID0gMDsKKyAgICAgICAgCisg
ICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSBwb2ludCBpbiB0aGUgaXRl
cmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhh
dCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlCisgICAgICogbm8gbW9yZSBjb2RlIHBvaW50cyB0
byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBOb3RlIHRoYXQgaXRlcmF0aW9uIHdpdGgg
InByZS1pbmNyZW1lbnQiIHNlbWFudGljcyBpcyBsZXNzCisgICAgICogZWZmaWNpZW50IHRoYW4g
aXRlcmF0aW9uIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1hbnRpY3MKKyAgICAgKiB0aGF0IGlz
IHByb3ZpZGVkIGJ5IG5leHQzMlBvc3RJbmMoKS4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNv
ZGUgcG9pbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBV
Q2hhcjMyICAgICAgIG5leHQzMih2b2lkKSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAq
IEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5n
ZQorICAgICAqICh0b3dhcmQgc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVu
aXQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCBy
ZXR1cm5zIERPTkUuICAKKyAgICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhciAgICAgICAg
IHByZXZpb3VzKHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRvIHRoZSBw
cmV2aW91cyBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJk
IHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFy
ZQorICAgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuIAor
ICAgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQuIAorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBwcmV2aW91czMyKHZv
aWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5v
IG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgICAqIGJlZm9yZSB0aGUgY3VycmVu
dCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIFRoaXMgaXMgdXNlZCB3
aXRoIHByZXZpb3VzKCkgb3IgcHJldmlvdXMzMigpIGluIGJhY2t3YXJkCisgICAgICogaXRlcmF0
aW9uLgorICAgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0
cyBvciBjb2RlIHBvaW50cworICAgICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0
aGUgaXRlcmF0aW9uIHJhbmdlLCByZXR1cm4gVFJVRSBvdGhlcndpc2UuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzUHJldmlvdXMo
KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRo
ZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVy
IHJldHVybmVkIGJ5IGZpcnN0KCkuICBTaW5jZSBpdCdzCisgICAgICogcG9zc2libGUgdG8gY3Jl
YXRlIGFuIGl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgYWNyb3NzIG9ubHkKKyAgICAgKiBwYXJ0IG9m
IGEgdGV4dC1zdG9yYWdlIG9iamVjdCwgdGhpcyBudW1iZXIgaXNuJ3QKKyAgICAgKiBuZWNlc3Nh
cmlseSAwLiAgCisgICAgICogQHJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4gdGhlIHVuZGVy
bHlpbmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0ZXIgcmV0dXJu
ZWQgYnkgZmlyc3QoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxp
bmUgaW50MzJfdCAgICAgICBzdGFydEluZGV4KHZvaWQpIGNvbnN0OworICAgICAgICAKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRl
eHQtc3RvcmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgcG9zaXRpb24gaW1tZWRpYXRlbHkgQkVZ
T05EIHRoZSBjaGFyYWN0ZXIKKyAgICAgKiByZXR1cm5lZCBieSBsYXN0KCkuICAKKyAgICAgKiBA
cmV0dXJuIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQor
ICAgICAqIG9iamVjdCBvZiB0aGUgcG9zaXRpb24gaW1tZWRpYXRlbHkgQkVZT05EIHRoZSBjaGFy
YWN0ZXIKKyAgICAgKiByZXR1cm5lZCBieSBsYXN0KCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAgZW5kSW5kZXgodm9pZCkgY29uc3Q7
CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWVyaWMgaW5kZXggaW4g
dGhlIHVuZGVybHlpbmcgdGV4dC1zdG9yYWdlCisgICAgICogb2JqZWN0IG9mIHRoZSBjaGFyYWN0
ZXIgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8KKyAgICAgKiAoaS5lLiwgdGhlIGNo
YXJhY3RlciByZXR1cm5lZCBieSBjdXJyZW50KCkpLiAgCisgICAgICogQHJldHVybiB0aGUgbnVt
YmVyaWMgaW5kZXggaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3Qgb2YgCisgICAgICogdGhlIGNo
YXJhY3RlciB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0bworICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQzMl90ICAgICAgIGdldEluZGV4KHZvaWQp
IGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSBlbnRp
cmUgdGV4dCBpbiB0aGUgdW5kZXJseWluZworICAgICAqIHRleHQtc3RvcmFnZSBvYmplY3QuCisg
ICAgICogQHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBlbnRpcmUgdGV4dCBpbiB0aGUgdGV4dC1z
dG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGlu
ZSBpbnQzMl90ICAgICAgICAgICBnZXRMZW5ndGgoKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQg
b2YgdGhlCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVu
dCBwb3NpdGlvbiBpdHNlbGYuCisgICAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBu
dW1iZXJzIG9mIGNvZGUgdW5pdHMgZm9yd2FyZAorICAgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNp
ZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0YS4KKyAgICAgKiBAcGFyYW0gZGVsdGEg
dGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBm
b3J3YXJkOworICAgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAgICog
QHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9
CisgICAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90ICAgICAgbW92ZShpbnQzMl90IGRlbHRhLCBF
T3JpZ2luIG9yaWdpbikgPSAwOworCisgICAgLyoqCisgICAgICogTW92ZXMgdGhlIGN1cnJlbnQg
cG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBvZiB0aGUKKyAgICAgKiBpdGVy
YXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGl0c2VsZi4K
KyAgICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSBwb2lu
dHMgZm9yd2FyZAorICAgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBv
ciBuZWdhdGl2ZSBkZWx0YS4KKyAgICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0
aXZlIHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgICAqIGEg
bmVnYXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAgICogQHBhcmFtIG9yaWdpbiBPcmln
aW4gZW51bWVyYXRpb24ge2tTdGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAgICogQHJldHVybiB0
aGUgbmV3IHBvc2l0aW9uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBpbnQzMl90ICAgICAgbW92ZTMyKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKSA9
IDA7CisKKyAgICAvKioKKyAgICAgKiBDb3BpZXMgdGhlIHRleHQgdW5kZXIgaXRlcmF0aW9uIGlu
dG8gdGhlIFVuaWNvZGVTdHJpbmcKKyAgICAgKiByZWZlcnJlZCB0byBieSAicmVzdWx0Ii4gIAor
ICAgICAqIEBwYXJhbSByZXN1bHQgUmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0
ZXJhdGlvbi4gIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
dm9pZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0cmluZyYgIHJlc3VsdCkgPSAwOworCitw
cm90ZWN0ZWQ6CisgICAgLyoqCisgICAgICogRW1wdHkgY29uc3RydWN0b3IuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8q
KgorICAgICAqIENvbnN0cnVjdG9yLCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0aCBmaWVsZCBpbiB0
aGlzIGJhc2UgY2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hh
cmFjdGVySXRlcmF0b3IoaW50MzJfdCBsZW5ndGgpOworCisgICAgLyoqCisgICAgICogQ29uc3Ry
dWN0b3IsIGp1c3Qgc2V0dGluZyB0aGUgbGVuZ3RoIGFuZCBwb3NpdGlvbiBmaWVsZHMgaW4gdGhp
cyBiYXNlIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJh
Y3Rlckl0ZXJhdG9yKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90IHBvc2l0aW9uKTsKKworICAgIC8q
KgorICAgICAqIENvbnN0cnVjdG9yLCBqdXN0IHNldHRpbmcgdGhlIGxlbmd0aCwgc3RhcnQsIGVu
ZCwgYW5kIHBvc2l0aW9uIGZpZWxkcyBpbiB0aGlzIGJhc2UgY2xhc3MuCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IoaW50MzJfdCBsZW5ndGgs
IGludDMyX3QgdGV4dEJlZ2luLCBpbnQzMl90IHRleHRFbmQsIGludDMyX3QgcG9zaXRpb24pOwor
ICAKKyAgICAvKioKKyAgICAgKiBDb3B5IGNvbnN0cnVjdG9yLgorICAgICAqCisgICAgICogQHBh
cmFtIHRoYXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvcGllZAorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IENoYXJhY3Rl
ckl0ZXJhdG9yICZ0aGF0KTsKKworICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3Iu
ICBTZXRzIHRoaXMgQ2hhcmFjdGVySXRlcmF0b3IgdG8gaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciwK
KyAgICAgKiBhcyB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQ2hh
cmFjdGVySXRlcmF0b3IgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4gdGhlIG5ld2x5IHNldCBD
aGFyYWN0ZXJJdGVyYXRvci4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBD
aGFyYWN0ZXJJdGVyYXRvciAmb3BlcmF0b3I9KGNvbnN0IENoYXJhY3Rlckl0ZXJhdG9yICZ0aGF0
KTsKKworICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgdGV4dCBsZW5ndGggZmllbGQuCisgICAg
ICogTmVjZXNzYXJ5IHRoaXMgZm9yIGNvcnJlY3QgZ2V0VGV4dCgpIGFuZCBoYXNoQ29kZSgpLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgdGV4dExlbmd0aDsK
KworICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgZmllbGQgZm9yIHRoZSBjdXJyZW50IHBvc2l0
aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGludDMyX3QgIHBvczsK
KworICAgIC8qKgorICAgICAqIEJhc2UgY2xhc3MgZmllbGQgZm9yIHRoZSBzdGFydCBvZiB0aGUg
aXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlu
dDMyX3QgIGJlZ2luOworCisgICAgLyoqCisgICAgICogQmFzZSBjbGFzcyBmaWVsZCBmb3IgdGhl
IGVuZCBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIGludDMyX3QgIGVuZDsKK307CisKK2lubGluZSBVQm9vbAorRm9yd2FyZENoYXJh
Y3Rlckl0ZXJhdG9yOjpvcGVyYXRvciE9KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYg
dGhhdCkgY29uc3QgeworICAgIHJldHVybiAhb3BlcmF0b3I9PSh0aGF0KTsKK30KKworaW5saW5l
IGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpzZXRUb1N0YXJ0KCkgeworICAgIHJldHVybiBt
b3ZlKDAsIGtTdGFydCk7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRvcjo6
c2V0VG9FbmQoKSB7CisgICAgcmV0dXJuIG1vdmUoMCwga0VuZCk7Cit9CisKK2lubGluZSBpbnQz
Ml90CitDaGFyYWN0ZXJJdGVyYXRvcjo6c3RhcnRJbmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0
dXJuIGJlZ2luOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OmVuZElu
ZGV4KHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gZW5kOworfQorCitpbmxpbmUgaW50MzJfdAor
Q2hhcmFjdGVySXRlcmF0b3I6OmdldEluZGV4KHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gcG9z
OworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OmdldExlbmd0aCh2b2lk
KSBjb25zdCB7CisgICAgcmV0dXJuIHRleHRMZW5ndGg7Cit9CisKK1VfTkFNRVNQQUNFX0VORAor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmggYi9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFkNWNiNTQ2ZWJlMzk3ZWY0
MzZkZjM2NTAzZWI0MzcxYzM4NjY5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1
L3VuaWNvZGUvbG9jaWQuaApAQCAtMCwwICsxLDgxNCBAQAorLyoKKyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ni0yMDE1LCBJbnRlcm5hdGlvbmFsIEJ1c2lu
ZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZSBsb2NpZC5oCisqCisq
IENyZWF0ZWQgYnk6IEhlbGVuYSBTaGloCisqCisqIE1vZGlmaWNhdGlvbiBIaXN0b3J5OgorKgor
KiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9uCisqICAgMDIvMTEvOTcgICAg
YWxpdSAgICAgICAgQ2hhbmdlZCBnTG9jUGF0aCB0byBmZ0xvY1BhdGggYW5kIGFkZGVkIG1ldGhv
ZHMgdG8KKyogICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQgYW5kIHNldCBpdC4KKyogICAw
NC8wMi85NyAgICBhbGl1ICAgICAgICBNYWRlIG9wZXJhdG9yIT0gaW5saW5lOyBmaXhlZCByZXR1
cm4gdmFsdWUgb2YgZ2V0TmFtZSgpLgorKiAgIDA0LzE1Lzk3ICAgIGFsaXUgICAgICAgIENsZWFu
dXAgZm9yIEFJWC9XaW4zMi4KKyogICAwNC8yNC85NyAgICBhbGl1ICAgICAgICBOdW1lcm91cyBj
aGFuZ2VzIHBlciBjb2RlIHJldmlldy4KKyogICAwOC8xOC85OCAgICBzdGVwaGVuICAgICBBZGRl
ZCB0b2tlbml6ZVN0cmluZygpLGNoYW5nZWQgZ2V0RGlzcGxheU5hbWUoKQorKiAgIDA5LzA4Lzk4
ICAgIHN0ZXBoZW4gICAgIE1vdmVkIGRlZmluaXRpb24gb2Yga0VtcHR5U3RyaW5nIGZvciBNYWMg
UG9ydAorKiAgIDExLzA5Lzk5ICAgIHdlaXYgICAgICAgIEFkZGVkIGNvbnN0IGNoYXIgKiBnZXRO
YW1lKCkgY29uc3Q7CisqICAgMDQvMTIvMDAgICAgc3JsICAgICAgICAgcmVtb3ZpbmcgdW5pY29k
ZXN0cmluZyBhcGkncyBhbmQgY2FjaGVkIGhhc2ggY29kZQorKiAgIDA4LzEwLzAxICAgIGdyaG90
ZW4gICAgIENoYW5nZSB0aGUgc3RhdGljIExvY2FsZXMgdG8gYWNjZXNzb3IgZnVuY3Rpb25zCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyovCisKKyNpZm5kZWYgTE9DSURfSAorI2RlZmluZSBMT0NJ
RF9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW9i
amVjdC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisjaW5jbHVkZSAidW5pY29kZS9w
dXRpbC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWxvYy5oIgorI2luY2x1ZGUgInVuaWNvZGUvc3Ry
ZW51bS5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQysrIEFQSTogTG9jYWxlIElEIG9i
amVjdC4KKyAqLworCitVX05BTUVTUEFDRV9CRUdJTgorCisvLyBGb3J3YXJkIERlY2xhcmF0aW9u
cwordm9pZCBVX0NBTExDT05WIGxvY2FsZV9hdmFpbGFibGVfaW5pdCgpOyAvKio8IEBpbnRlcm5h
bCAqLworCisvKioKKyAqIEEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3QgcmVwcmVzZW50cyBh
IHNwZWNpZmljIGdlb2dyYXBoaWNhbCwgcG9saXRpY2FsLAorICogb3IgY3VsdHVyYWwgcmVnaW9u
LiBBbiBvcGVyYXRpb24gdGhhdCByZXF1aXJlcyBhIDxjb2RlPkxvY2FsZTwvY29kZT4gdG8gcGVy
Zm9ybQorICogaXRzIHRhc2sgaXMgY2FsbGVkIDxlbT5sb2NhbGUtc2Vuc2l0aXZlPC9lbT4gYW5k
IHVzZXMgdGhlIDxjb2RlPkxvY2FsZTwvY29kZT4KKyAqIHRvIHRhaWxvciBpbmZvcm1hdGlvbiBm
b3IgdGhlIHVzZXIuIEZvciBleGFtcGxlLCBkaXNwbGF5aW5nIGEgbnVtYmVyCisgKiBpcyBhIGxv
Y2FsZS1zZW5zaXRpdmUgb3BlcmF0aW9uLS10aGUgbnVtYmVyIHNob3VsZCBiZSBmb3JtYXR0ZWQK
KyAqIGFjY29yZGluZyB0byB0aGUgY3VzdG9tcy9jb252ZW50aW9ucyBvZiB0aGUgdXNlcidzIG5h
dGl2ZSBjb3VudHJ5LAorICogcmVnaW9uLCBvciBjdWx0dXJlLgorICoKKyAqIFRoZSBMb2NhbGUg
Y2xhc3MgaXMgbm90IHN1aXRhYmxlIGZvciBzdWJjbGFzc2luZy4KKyAqCisgKiA8UD4KKyAqIFlv
dSBjYW4gY3JlYXRlIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3QgdXNpbmcgdGhlIGNvbnN0
cnVjdG9yIGluCisgKiB0aGlzIGNsYXNzOgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVuZGh0
bWxvbmx5CisgKiA8cHJlPgorICogICAgICAgTG9jYWxlKCBjb25zdCAgIGNoYXIqICBsYW5ndWFn
ZSwKKyAqICAgICAgICAgICAgICAgY29uc3QgICBjaGFyKiAgY291bnRyeSwKKyAqICAgICAgICAg
ICAgICAgY29uc3QgICBjaGFyKiAgdmFyaWFudCk7CisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwv
YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIFRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUgY29u
c3RydWN0b3JzIGlzIGEgdmFsaWQgPFNUUk9ORz5JU08KKyAqIExhbmd1YWdlIENvZGUuPC9TVFJP
Tkc+IFRoZXNlIGNvZGVzIGFyZSB0aGUgbG93ZXItY2FzZSB0d28tbGV0dGVyCisgKiBjb2RlcyBh
cyBkZWZpbmVkIGJ5IElTTy02MzkuCisgKiBZb3UgY2FuIGZpbmQgYSBmdWxsIGxpc3Qgb2YgdGhl
c2UgY29kZXMgYXQ6CisgKiA8QlI+PGEgaHJlZiA9Imh0dHA6Ly93d3cubG9jLmdvdi9zdGFuZGFy
ZHMvaXNvNjM5LTIvIj4KKyAqIGh0dHA6Ly93d3cubG9jLmdvdi9zdGFuZGFyZHMvaXNvNjM5LTIv
PC9hPgorICoKKyAqIDxQPgorICogVGhlIHNlY29uZCBhcmd1bWVudCB0byB0aGUgY29uc3RydWN0
b3JzIGlzIGEgdmFsaWQgPFNUUk9ORz5JU08gQ291bnRyeQorICogQ29kZS48L1NUUk9ORz4gVGhl
c2UgY29kZXMgYXJlIHRoZSB1cHBlci1jYXNlIHR3by1sZXR0ZXIgY29kZXMKKyAqIGFzIGRlZmlu
ZWQgYnkgSVNPLTMxNjYuCisgKiBZb3UgY2FuIGZpbmQgYSBmdWxsIGxpc3Qgb2YgdGhlc2UgY29k
ZXMgYXQgYSBudW1iZXIgb2Ygc2l0ZXMsIHN1Y2ggYXM6CisgKiA8QlI+PGEgaHJlZj0iaHR0cDov
L3d3dy5pc28ub3JnL2lzby9lbi9wcm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEvaW5kZXguaHRtbCI+
CisgKiBodHRwOi8vd3d3Lmlzby5vcmcvaXNvL2VuL3Byb2RzLXNlcnZpY2VzL2lzbzMxNjZtYS9p
bmRleC5odG1sPC9hPgorICoKKyAqIDxQPgorICogVGhlIHRoaXJkIGNvbnN0cnVjdG9yIHJlcXVp
cmVzIGEgdGhpcmQgYXJndW1lbnQtLXRoZSA8U1RST05HPlZhcmlhbnQuPC9TVFJPTkc+CisgKiBU
aGUgVmFyaWFudCBjb2RlcyBhcmUgdmVuZG9yIGFuZCBicm93c2VyLXNwZWNpZmljLgorICogRm9y
IGV4YW1wbGUsIHVzZSBSRVZJU0VEIGZvciBhIGxhbmdhdWdlJ3MgcmV2aXNlZCBzY3JpcHQgb3J0
aG9ncmFwaHksIGFuZCBQT1NJWCBmb3IgUE9TSVguCisgKiBXaGVyZSB0aGVyZSBhcmUgdHdvIHZh
cmlhbnRzLCBzZXBhcmF0ZSB0aGVtIHdpdGggYW4gdW5kZXJzY29yZSwgYW5kCisgKiBwdXQgdGhl
IG1vc3QgaW1wb3J0YW50IG9uZSBmaXJzdC4gRm9yCisgKiBleGFtcGxlLCBhIFRyYWRpdGlvbmFs
IFNwYW5pc2ggY29sbGF0aW9uIG1pZ2h0IGJlIHJlZmVyZW5jZWQsIHdpdGgKKyAqICJFUyIsICJF
UyIsICJUcmFkaXRpb25hbF9QT1NJWCIuCisgKgorICogPFA+CisgKiBCZWNhdXNlIGEgPGNvZGU+
TG9jYWxlPC9jb2RlPiBvYmplY3QgaXMganVzdCBhbiBpZGVudGlmaWVyIGZvciBhIHJlZ2lvbiwK
KyAqIG5vIHZhbGlkaXR5IGNoZWNrIGlzIHBlcmZvcm1lZCB3aGVuIHlvdSBjb25zdHJ1Y3QgYSA8
Y29kZT5Mb2NhbGU8L2NvZGU+LgorICogSWYgeW91IHdhbnQgdG8gc2VlIHdoZXRoZXIgcGFydGlj
dWxhciByZXNvdXJjZXMgYXJlIGF2YWlsYWJsZSBmb3IgdGhlCisgKiA8Y29kZT5Mb2NhbGU8L2Nv
ZGU+IHlvdSBjb25zdHJ1Y3QsIHlvdSBtdXN0IHF1ZXJ5IHRob3NlIHJlc291cmNlcy4gRm9yCisg
KiBleGFtcGxlLCBhc2sgdGhlIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gZm9yIHRoZSBsb2Nh
bGVzIGl0IHN1cHBvcnRzCisgKiB1c2luZyBpdHMgPGNvZGU+Z2V0QXZhaWxhYmxlTG9jYWxlczwv
Y29kZT4gbWV0aG9kLgorICogPEJSPjxTVFJPTkc+Tm90ZTo8L1NUUk9ORz4gV2hlbiB5b3UgYXNr
IGZvciBhIHJlc291cmNlIGZvciBhIHBhcnRpY3VsYXIKKyAqIGxvY2FsZSwgeW91IGdldCBiYWNr
IHRoZSBiZXN0IGF2YWlsYWJsZSBtYXRjaCwgbm90IG5lY2Vzc2FyaWx5CisgKiBwcmVjaXNlbHkg
d2hhdCB5b3UgYXNrZWQgZm9yLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgbG9vayBhdAorICogPGNv
ZGU+UmVzb3VyY2VCdW5kbGU8L2NvZGU+LgorICoKKyAqIDxQPgorICogVGhlIDxjb2RlPkxvY2Fs
ZTwvY29kZT4gY2xhc3MgcHJvdmlkZXMgYSBudW1iZXIgb2YgY29udmVuaWVudCBjb25zdGFudHMK
KyAqIHRoYXQgeW91IGNhbiB1c2UgdG8gY3JlYXRlIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0
cyBmb3IgY29tbW9ubHkgdXNlZAorICogbG9jYWxlcy4gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dp
bmcgcmVmZXJzIHRvIGEgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3QKKyAqIGZvciB0aGUgVW5p
dGVkIFN0YXRlczoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHBy
ZT4KKyAqICAgICAgIExvY2FsZTo6Z2V0VVMoKQorICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Js
b2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKgorICogPFA+CisgKiBPbmNlIHlvdSd2ZSBjcmVhdGVk
IGEgPGNvZGU+TG9jYWxlPC9jb2RlPiB5b3UgY2FuIHF1ZXJ5IGl0IGZvciBpbmZvcm1hdGlvbiBh
Ym91dAorICogaXRzZWxmLiBVc2UgPGNvZGU+Z2V0Q291bnRyeTwvY29kZT4gdG8gZ2V0IHRoZSBJ
U08gQ291bnRyeSBDb2RlIGFuZAorICogPGNvZGU+Z2V0TGFuZ3VhZ2U8L2NvZGU+IHRvIGdldCB0
aGUgSVNPIExhbmd1YWdlIENvZGUuIFlvdSBjYW4KKyAqIHVzZSA8Y29kZT5nZXREaXNwbGF5Q291
bnRyeTwvY29kZT4gdG8gZ2V0IHRoZQorICogbmFtZSBvZiB0aGUgY291bnRyeSBzdWl0YWJsZSBm
b3IgZGlzcGxheWluZyB0byB0aGUgdXNlci4gU2ltaWxhcmx5LAorICogeW91IGNhbiB1c2UgPGNv
ZGU+Z2V0RGlzcGxheUxhbmd1YWdlPC9jb2RlPiB0byBnZXQgdGhlIG5hbWUgb2YKKyAqIHRoZSBs
YW5ndWFnZSBzdWl0YWJsZSBmb3IgZGlzcGxheWluZyB0byB0aGUgdXNlci4gSW50ZXJlc3Rpbmds
eSwKKyAqIHRoZSA8Y29kZT5nZXREaXNwbGF5WFhYPC9jb2RlPiBtZXRob2RzIGFyZSB0aGVtc2Vs
dmVzIGxvY2FsZS1zZW5zaXRpdmUKKyAqIGFuZCBoYXZlIHR3byB2ZXJzaW9uczogb25lIHRoYXQg
dXNlcyB0aGUgZGVmYXVsdCBsb2NhbGUgYW5kIG9uZQorICogdGhhdCB0YWtlcyBhIGxvY2FsZSBh
cyBhbiBhcmd1bWVudCBhbmQgZGlzcGxheXMgdGhlIG5hbWUgb3IgY291bnRyeSBpbgorICogYSBs
YW5ndWFnZSBhcHByb3ByaWF0ZSB0byB0aGF0IGxvY2FsZS4KKyAqCisgKiA8UD4KKyAqIElDVSBw
cm92aWRlcyBhIG51bWJlciBvZiBjbGFzc2VzIHRoYXQgcGVyZm9ybSBsb2NhbGUtc2Vuc2l0aXZl
CisgKiBvcGVyYXRpb25zLiBGb3IgZXhhbXBsZSwgdGhlIDxjb2RlPk51bWJlckZvcm1hdDwvY29k
ZT4gY2xhc3MgZm9ybWF0cworICogbnVtYmVycywgY3VycmVuY3ksIG9yIHBlcmNlbnRhZ2VzIGlu
IGEgbG9jYWxlLXNlbnNpdGl2ZSBtYW5uZXIuIENsYXNzZXMKKyAqIHN1Y2ggYXMgPGNvZGU+TnVt
YmVyRm9ybWF0PC9jb2RlPiBoYXZlIGEgbnVtYmVyIG9mIGNvbnZlbmllbmNlIG1ldGhvZHMKKyAq
IGZvciBjcmVhdGluZyBhIGRlZmF1bHQgb2JqZWN0IG9mIHRoYXQgdHlwZS4gRm9yIGV4YW1wbGUs
IHRoZQorICogPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPiBjbGFzcyBwcm92aWRlcyB0aGVzZSB0
aHJlZSBjb252ZW5pZW5jZSBtZXRob2RzCisgKiBmb3IgY3JlYXRpbmcgYSBkZWZhdWx0IDxjb2Rl
Pk51bWJlckZvcm1hdDwvY29kZT4gb2JqZWN0OgorICogXGh0bWxvbmx5PGJsb2NrcXVvdGU+XGVu
ZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgIFVFcnJvckNvZGUgc3VjY2VzcyA9IFVfWkVST19F
UlJPUjsKKyAqICAgICBMb2NhbGUgbXlMb2NhbGU7CisgKiAgICAgTnVtYmVyRm9ybWF0ICpuZjsK
KyAqCisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUluc3RhbmNlKCBzdWNjZXNzICk7
ICAgICAgICAgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlQ3Vy
cmVuY3lJbnN0YW5jZSggc3VjY2VzcyApOyAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVy
Rm9ybWF0OjpjcmVhdGVQZXJjZW50SW5zdGFuY2UoIHN1Y2Nlc3MgKTsgICBkZWxldGUgbmY7Cisg
KiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIEVhY2gg
b2YgdGhlc2UgbWV0aG9kcyBoYXMgdHdvIHZhcmlhbnRzOyBvbmUgd2l0aCBhbiBleHBsaWNpdCBs
b2NhbGUKKyAqIGFuZCBvbmUgd2l0aG91dDsgdGhlIGxhdHRlciB1c2luZyB0aGUgZGVmYXVsdCBs
b2NhbGUuCisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+Cisg
KiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUluc3RhbmNlKCBteUxvY2FsZSwgc3VjY2Vz
cyApOyAgICAgICAgICBkZWxldGUgbmY7CisgKiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0
ZUN1cnJlbmN5SW5zdGFuY2UoIG15TG9jYWxlLCBzdWNjZXNzICk7ICBkZWxldGUgbmY7CisgKiAg
ICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZVBlcmNlbnRJbnN0YW5jZSggbXlMb2NhbGUsIHN1
Y2Nlc3MgKTsgICBkZWxldGUgbmY7CisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90
ZT5cZW5kaHRtbG9ubHkKKyAqIEEgPGNvZGU+TG9jYWxlPC9jb2RlPiBpcyB0aGUgbWVjaGFuaXNt
IGZvciBpZGVudGlmeWluZyB0aGUga2luZCBvZiBvYmplY3QKKyAqICg8Y29kZT5OdW1iZXJGb3Jt
YXQ8L2NvZGU+KSB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGdldC4gVGhlIGxvY2FsZSBpcworICog
PFNUUk9ORz5qdXN0PC9TVFJPTkc+IGEgbWVjaGFuaXNtIGZvciBpZGVudGlmeWluZyBvYmplY3Rz
LAorICogPFNUUk9ORz5ub3Q8L1NUUk9ORz4gYSBjb250YWluZXIgZm9yIHRoZSBvYmplY3RzIHRo
ZW1zZWx2ZXMuCisgKgorICogPFA+CisgKiBFYWNoIGNsYXNzIHRoYXQgcGVyZm9ybXMgbG9jYWxl
LXNlbnNpdGl2ZSBvcGVyYXRpb25zIGFsbG93cyB5b3UKKyAqIHRvIGdldCBhbGwgdGhlIGF2YWls
YWJsZSBvYmplY3RzIG9mIHRoYXQgdHlwZS4gWW91IGNhbiBzaWZ0CisgKiB0aHJvdWdoIHRoZXNl
IG9iamVjdHMgYnkgbGFuZ3VhZ2UsIGNvdW50cnksIG9yIHZhcmlhbnQsCisgKiBhbmQgdXNlIHRo
ZSBkaXNwbGF5IG5hbWVzIHRvIHByZXNlbnQgYSBtZW51IHRvIHRoZSB1c2VyLgorICogRm9yIGV4
YW1wbGUsIHlvdSBjYW4gY3JlYXRlIGEgbWVudSBvZiBhbGwgdGhlIGNvbGxhdGlvbiBvYmplY3Rz
CisgKiBzdWl0YWJsZSBmb3IgYSBnaXZlbiBsYW5ndWFnZS4gU3VjaCBjbGFzc2VzIGltcGxlbWVu
dCB0aGVzZQorICogdGhyZWUgY2xhc3MgbWV0aG9kczoKKyAqIFxodG1sb25seTxibG9ja3F1b3Rl
PlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICAgIHN0YXRpYyBMb2NhbGUqIGdldEF2YWls
YWJsZUxvY2FsZXMoaW50MzJfdCYgbnVtTG9jYWxlcykKKyAqICAgICAgIHN0YXRpYyBVbmljb2Rl
U3RyaW5nJiBnZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmICBvYmplY3RMb2NhbGUsCisgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxlJiAg
ZGlzcGxheUxvY2FsZSwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVbmljb2RlU3RyaW5nJiBkaXNwbGF5TmFtZSkKKyAqICAgICAgIHN0YXRpYyBVbmljb2Rl
U3RyaW5nJiBnZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmICBvYmplY3RMb2NhbGUsCisgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYg
ZGlzcGxheU5hbWUpCisgKiA8L3ByZT4KKyAqIFxodG1sb25seTwvYmxvY2txdW90ZT5cZW5kaHRt
bG9ubHkKKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqIEBzZWUgUmVzb3VyY2VCdW5kbGUKKyAq
LworY2xhc3MgVV9DT01NT05fQVBJIExvY2FsZSA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1YmxpYzoK
KyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGUgUm9vdCBsb2NhbGUuIEBzdGFibGUgSUNV
IDQuNCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRSb290KHZvaWQp
OworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNV
IDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRFbmdsaXNoKHZv
aWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUg
SUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRGcmVuY2go
dm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJs
ZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEdlcm1h
bih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3Rh
YmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SXRh
bGlhbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0
SmFwYW5lc2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFn
ZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQy
IGdldEtvcmVhbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxhbmd1
YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9S
VDIgZ2V0Q2hpbmVzZSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGxh
bmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VY
UE9SVDIgZ2V0U2ltcGxpZmllZENoaW5lc2Uodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFu
dCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0
IExvY2FsZSAmVV9FWFBPUlQyIGdldFRyYWRpdGlvbmFsQ2hpbmVzZSh2b2lkKTsKKworICAgIC8q
KiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIu
MCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRGcmFuY2Uodm9pZCk7
CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJs
ZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEdlcm1h
bnkodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lv
bi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQy
IGdldEl0YWx5KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRy
eS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVf
RVhQT1JUMiBnZXRKYXBhbih2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlz
IGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9j
YWxlICZVX0VYUE9SVDIgZ2V0S29yZWEodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBm
b3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNv
bnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENoaW5hKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRQUkModm9pZCk7CisgICAgLyoqIFVzZWZ1
bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisg
ICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFRhaXdhbih2b2lkKTsKKyAgICAv
KiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAy
LjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0VUsodm9pZCk7Cisg
ICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJ
Q1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFVTKHZvaWQp
OworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFi
bGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDYW5h
ZGEodm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lv
bi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQy
IGdldENhbmFkYUZyZW5jaCh2b2lkKTsKKworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEg
ZGVmYXVsdCBsb2NhbGUgb2JqZWN0LCBhIExvY2FsZSBmb3IgdGhlIGRlZmF1bHQgbG9jYWxlIElE
LgorICAgICAqCisgICAgICogQHNlZSBnZXREZWZhdWx0CisgICAgICogQHNlZSB1bG9jX2dldERl
ZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUoKTsKKwor
ICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIGxvY2FsZSBmcm9tIGxhbmd1YWdlLCBjb3VudHJ5
LCB2YXJpYW50LgorICAgICAqIElmIGFuIGVycm9yIG9jY3VycywgdGhlbiB0aGUgY29uc3RydWN0
ZWQgb2JqZWN0IHdpbGwgYmUgImJvZ3VzIgorICAgICAqIChpc0JvZ3VzKCkgd2lsbCByZXR1cm4g
VFJVRSkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGFuZ3VhZ2UgTG93ZXJjYXNlIHR3by1sZXR0
ZXIgb3IgdGhyZWUtbGV0dGVyIElTTy02MzkgY29kZS4KKyAgICAgKiAgVGhpcyBwYXJhbWV0ZXIg
Y2FuIGluc3RlYWQgYmUgYW4gSUNVIHN0eWxlIEMgbG9jYWxlIChlLmcuICJlbl9VUyIpLAorICAg
ICAqICBidXQgdGhlIG90aGVyIHBhcmFtZXRlcnMgbXVzdCBub3QgYmUgdXNlZC4KKyAgICAgKiAg
VGhpcyBwYXJhbWV0ZXIgY2FuIGJlIE5VTEw7IGlmIHNvLAorICAgICAqICB0aGUgbG9jYWxlIGlz
IGluaXRpYWxpemVkIHRvIG1hdGNoIHRoZSBjdXJyZW50IGRlZmF1bHQgbG9jYWxlLgorICAgICAq
ICAoVGhpcyBpcyB0aGUgc2FtZSBhcyB1c2luZyB0aGUgZGVmYXVsdCBjb25zdHJ1Y3Rvci4pCisg
ICAgICogIFBsZWFzZSBub3RlOiBUaGUgSmF2YSBMb2NhbGUgY2xhc3MgZG9lcyBOT1QgYWNjZXB0
IHRoZSBmb3JtCisgICAgICogICduZXcgTG9jYWxlKCJlbl9VUyIpJyBidXQgb25seSAnbmV3IExv
Y2FsZSgiZW4iLCJVUyIpJworICAgICAqCisgICAgICogQHBhcmFtIGNvdW50cnkgIFVwcGVyY2Fz
ZSB0d28tbGV0dGVyIElTTy0zMTY2IGNvZGUuIChvcHRpb25hbCkKKyAgICAgKiBAcGFyYW0gdmFy
aWFudCAgVXBwZXJjYXNlIHZlbmRvciBhbmQgYnJvd3NlciBzcGVjaWZpYyBjb2RlLiBTZWUgY2xh
c3MKKyAgICAgKiAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24uIChvcHRpb25hbCkKKyAgICAg
KiBAcGFyYW0ga2V5d29yZHNBbmRWYWx1ZXMgQSBzdHJpbmcgY29uc2lzdGluZyBvZiBrZXl3b3Jk
L3ZhbHVlcyBwYWlycywgc3VjaCBhcworICAgICAqICAgICAgICAgICAgICAgICAiY29sbGF0aW9u
PXBob25lYm9vaztjdXJyZW5jeT1ldXJvIgorICAgICAqCisgICAgICogQHNlZSBnZXREZWZhdWx0
CisgICAgICogQHNlZSB1bG9jX2dldERlZmF1bHQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBMb2NhbGUoIGNvbnN0ICAgY2hhciAqIGxhbmd1YWdlLAorICAgICAgICAgICAg
Y29uc3QgICBjaGFyICogY291bnRyeSAgPSAwLAorICAgICAgICAgICAgY29uc3QgICBjaGFyICog
dmFyaWFudCAgPSAwLAorICAgICAgICAgICAgY29uc3QgICBjaGFyICoga2V5d29yZHNBbmRWYWx1
ZXMgPSAwKTsKKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIGEgTG9jYWxlIG9iamVjdCBm
cm9tIGFub3RoZXIgTG9jYWxlIG9iamVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvdGhlciBU
aGUgTG9jYWxlIG9iamVjdCBiZWluZyBjb3BpZWQgaW4uCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgTG9jYWxlKGNvbnN0ICAgIExvY2FsZSYgb3RoZXIpOworCisKKyAgICAv
KioKKyAgICAgKiBEZXN0cnVjdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCB+TG9jYWxlKCkgOworCisgICAgLyoqCisgICAgICogUmVwbGFjZXMgdGhlIGVu
dGlyZSBjb250ZW50cyBvZiAqdGhpcyB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICoK
KyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIExvY2FsZSBvYmplY3QgYmVpbmcgY29waWVkIGluLgor
ICAgICAqIEByZXR1cm4gICAgICAqdGhpcworICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIExvY2FsZSYgb3BlcmF0b3I9KGNvbnN0IExvY2FsZSYgb3RoZXIpOworCisgICAgLyoq
CisgICAgICogQ2hlY2tzIGlmIHR3byBsb2NhbGUga2V5cyBhcmUgdGhlIHNhbWUuCisgICAgICoK
KyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIGxvY2FsZSBrZXkgb2JqZWN0IHRvIGJlIGNvbXBhcmVk
IHdpdGggdGhpcy4KKyAgICAgKiBAcmV0dXJuICAgICAgVHJ1ZSBpZiB0aGUgdHdvIGxvY2FsZSBr
ZXlzIGFyZSB0aGUgc2FtZSwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIFVCb29sICAgb3BlcmF0b3I9PShjb25zdCAgICBMb2NhbGUmICAgICBv
dGhlcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBDaGVja3MgaWYgdHdvIGxvY2FsZSBrZXlz
IGFyZSBub3QgdGhlIHNhbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIGxvY2Fs
ZSBrZXkgb2JqZWN0IHRvIGJlIGNvbXBhcmVkIHdpdGggdGhpcy4KKyAgICAgKiBAcmV0dXJuICAg
ICAgVHJ1ZSBpZiB0aGUgdHdvIGxvY2FsZSBrZXlzIGFyZSBub3QgdGhlIHNhbWUsIGZhbHNlCisg
ICAgICogICAgICAgICAgICAgIG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBVQm9vbCAgIG9wZXJhdG9yIT0oY29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIp
IGNvbnN0OworCisgICAgLyoqCisgICAgICogQ2xvbmUgdGhpcyBvYmplY3QuCisgICAgICogQ2xv
bmVzIGNhbiBiZSB1c2VkIGNvbmN1cnJlbnRseSBpbiBtdWx0aXBsZSB0aHJlYWRzLgorICAgICAq
IElmIGFuIGVycm9yIG9jY3VycywgdGhlbiBOVUxMIGlzIHJldHVybmVkLgorICAgICAqIFRoZSBj
YWxsZXIgbXVzdCBkZWxldGUgdGhlIGNsb25lLgorICAgICAqCisgICAgICogQHJldHVybiBhIGNs
b25lIG9mIHRoaXMgb2JqZWN0CisgICAgICoKKyAgICAgKiBAc2VlIGdldER5bmFtaWNDbGFzc0lE
CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgTG9jYWxlICpjbG9uZSgpIGNv
bnN0OworCisjaWZuZGVmIFVfSElERV9TWVNURU1fQVBJCisgICAgLyoqCisgICAgICogQ29tbW9u
IG1ldGhvZHMgb2YgZ2V0dGluZyB0aGUgY3VycmVudCBkZWZhdWx0IExvY2FsZS4gVXNlZCBmb3Ig
dGhlCisgICAgICogcHJlc2VudGF0aW9uOiBtZW51cywgZGlhbG9ncywgZXRjLiBHZW5lcmFsbHkg
c2V0IG9uY2Ugd2hlbiB5b3VyIGFwcGxldCBvcgorICAgICAqIGFwcGxpY2F0aW9uIGlzIGluaXRp
YWxpemVkLCB0aGVuIG5ldmVyIHJlc2V0LiAoSWYgeW91IGRvIHJlc2V0IHRoZQorICAgICAqIGRl
ZmF1bHQgbG9jYWxlLCB5b3UgcHJvYmFibHkgd2FudCB0byByZWxvYWQgeW91ciBHVUksIHNvIHRo
YXQgdGhlIGNoYW5nZQorICAgICAqIGlzIHJlZmxlY3RlZCBpbiB5b3VyIGludGVyZmFjZS4pCisg
ICAgICoKKyAgICAgKiBNb3JlIGFkdmFuY2VkIHByb2dyYW1zIHdpbGwgYWxsb3cgdXNlcnMgdG8g
dXNlIGRpZmZlcmVudCBsb2NhbGVzIGZvcgorICAgICAqIGRpZmZlcmVudCBmaWVsZHMsIGUuZy4g
aW4gYSBzcHJlYWRzaGVldC4KKyAgICAgKgorICAgICAqIE5vdGUgdGhhdCB0aGUgaW5pdGlhbCBz
ZXR0aW5nIHdpbGwgbWF0Y2ggdGhlIGhvc3Qgc3lzdGVtLgorICAgICAqIEByZXR1cm4gYSByZWZl
cmVuY2UgdG8gdGhlIExvY2FsZSBvYmplY3QgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBJRAorICAg
ICAqIEBzeXN0ZW0KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMg
Y29uc3QgTG9jYWxlJiBVX0VYUE9SVDIgZ2V0RGVmYXVsdCh2b2lkKTsKKworICAgIC8qKgorICAg
ICAqIFNldHMgdGhlIGRlZmF1bHQuIE5vcm1hbGx5IHNldCBvbmNlIGF0IHRoZSBiZWdpbm5pbmcg
b2YgYSBwcm9jZXNzLAorICAgICAqIHRoZW4gbmV2ZXIgcmVzZXQuCisgICAgICogc2V0RGVmYXVs
dCgpIG9ubHkgY2hhbmdlcyBJQ1UncyBkZWZhdWx0IGxvY2FsZSBJRCwgPHN0cm9uZz5ub3Q8L3N0
cm9uZz4KKyAgICAgKiB0aGUgZGVmYXVsdCBsb2NhbGUgSUQgb2YgdGhlIHJ1bnRpbWUgZW52aXJv
bm1lbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmV3TG9jYWxlIExvY2FsZSB0byBzZXQgdG8u
ICBJZiBOVUxMLCBzZXQgdG8gdGhlIHZhbHVlIG9idGFpbmVkCisgICAgICogICAgICAgICAgICAg
ICAgICBmcm9tIHRoZSBydW50aW1lIGVudmlyb25lbWVudC4KKyAgICAgKiBAcGFyYW0gc3VjY2Vz
cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAc3lzdGVtCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgc3RhdGljIHZvaWQgVV9FWFBPUlQyIHNldERlZmF1bHQoY29uc3QgTG9j
YWxlJiBuZXdMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVy
cm9yQ29kZSYgICBzdWNjZXNzKTsKKyNlbmRpZiAgLyogVV9ISURFX1NZU1RFTV9BUEkgKi8KKwor
ICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBsb2NhbGUgd2hpY2ggaGFzIGhhZCBtaW5pbWFsIGNh
bm9uaWNhbGl6YXRpb24KKyAgICAgKiBhcyBwZXIgdWxvY19nZXROYW1lKCkuCisgICAgICogQHBh
cmFtIG5hbWUgVGhlIG5hbWUgdG8gY3JlYXRlIGZyb20uICBJZiBuYW1lIGlzIG51bGwsCisgICAg
ICogIHRoZSBkZWZhdWx0IExvY2FsZSBpcyB1c2VkLgorICAgICAqIEByZXR1cm4gbmV3IGxvY2Fs
ZSBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKiBAc2VlIHVsb2NfZ2V0TmFt
ZQorICAgICAqLworICAgIHN0YXRpYyBMb2NhbGUgVV9FWFBPUlQyIGNyZWF0ZUZyb21OYW1lKGNv
bnN0IGNoYXIgKm5hbWUpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGxvY2FsZSBmcm9t
IHRoZSBnaXZlbiBzdHJpbmcgYWZ0ZXIgY2Fub25pY2FsaXppbmcKKyAgICAgKiB0aGUgc3RyaW5n
IGJ5IGNhbGxpbmcgdWxvY19jYW5vbmljYWxpemUoKS4KKyAgICAgKiBAcGFyYW0gbmFtZSB0aGUg
bG9jYWxlIElEIHRvIGNyZWF0ZSBmcm9tLiAgTXVzdCBub3QgYmUgTlVMTC4KKyAgICAgKiBAcmV0
dXJuIGEgbmV3IGxvY2FsZSBvYmplY3QgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gbmFtZQor
ICAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICAqIEBzZWUgdWxvY19jYW5vbmljYWxpemUKKyAg
ICAgKi8KKyAgICBzdGF0aWMgTG9jYWxlIFVfRVhQT1JUMiBjcmVhdGVDYW5vbmljYWwoY29uc3Qg
Y2hhciogbmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsb2NhbGUncyBJU08t
NjM5IGxhbmd1YWdlIGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBj
b2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGNvbnN0IGNo
YXIgKiAgZ2V0TGFuZ3VhZ2UoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRo
ZSBsb2NhbGUncyBJU08tMTU5MjQgYWJicmV2aWF0aW9uIHNjcmlwdCBjb2RlLgorICAgICAqIEBy
ZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzZWUgdXNjcmlwdF9nZXRT
aG9ydE5hbWUKKyAgICAgKiBAc2VlIHVzY3JpcHRfZ2V0Q29kZQorICAgICAqIEBzdGFibGUgSUNV
IDIuOAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldFNjcmlwdCggKSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIElTTy0zMTY2IGNvdW50
cnkgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRD
b3VudHJ5KCApIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3Mg
dmFyaWFudCBjb2RlLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICog
IGdldFZhcmlhbnQoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBwcm9n
cmFtbWF0aWMgbmFtZSBvZiB0aGUgZW50aXJlIGxvY2FsZSwgd2l0aCB0aGUgbGFuZ3VhZ2UsCisg
ICAgICogY291bnRyeSBhbmQgdmFyaWFudCBzZXBhcmF0ZWQgYnkgdW5kZXJiYXJzLiBJZiBhIGZp
ZWxkIGlzIG1pc3NpbmcsIHVwCisgICAgICogdG8gdHdvIGxlYWRpbmcgdW5kZXJiYXJzIHdpbGwg
b2NjdXIuIEV4YW1wbGU6ICJlbiIsICJkZV9ERSIsICJlbl9VU19XSU4iLAorICAgICAqICJkZV9f
UE9TSVgiLCAiZnJfX01BQyIsICJfX01BQyIsICJfTVQiLCAiX0ZSX0VVUk8iCisgICAgICogQHJl
dHVybiAgICAgIEEgcG9pbnRlciB0byAibmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiBnZXROYW1lKCkgY29uc3Q7CisKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIHRoZSBwcm9ncmFtbWF0aWMgbmFtZSBvZiB0aGUgZW50aXJlIGxv
Y2FsZSBhcyBnZXROYW1lKCkgd291bGQgcmV0dXJuLAorICAgICAqIGJ1dCB3aXRob3V0IGtleXdv
cmRzLgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8gIm5hbWUiLgorICAgICAqIEBz
ZWUgZ2V0TmFtZQorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIGNvbnN0IGNo
YXIgKiBnZXRCYXNlTmFtZSgpIGNvbnN0OworCisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBs
aXN0IG9mIGtleXdvcmRzIGZvciB0aGUgc3BlY2lmaWVkIGxvY2FsZS4KKyAgICAgKgorICAgICAq
IEBwYXJhbSBzdGF0dXMgdGhlIHN0YXR1cyBjb2RlCisgICAgICogQHJldHVybiBwb2ludGVyIHRv
IFN0cmluZ0VudW1lcmF0aW9uIGNsYXNzLCBvciBOVUxMIGlmIHRoZXJlIGFyZSBubyBrZXl3b3Jk
cy4gCisgICAgICogQ2xpZW50IG11c3QgZGlzcG9zZSBvZiBpdCBieSBjYWxsaW5nIGRlbGV0ZS4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBTdHJpbmdFbnVtZXJhdGlvbiAq
IGNyZWF0ZUtleXdvcmRzKFVFcnJvckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBHZXRzIHRoZSB2YWx1ZSBmb3IgYSBrZXl3b3JkLgorICAgICAqCisgICAgICogQHBhcmFt
IGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQgZm9yIHdoaWNoIHdlIHdhbnQgdGhlIHZh
bHVlLiBDYXNlIGluc2Vuc2l0aXZlLgorICAgICAqIEBwYXJhbSBidWZmZXIgVGhlIGJ1ZmZlciB0
byByZWNlaXZlIHRoZSBrZXl3b3JkIHZhbHVlLgorICAgICAqIEBwYXJhbSBidWZmZXJDYXBhY2l0
eSBUaGUgY2FwYWNpdHkgb2YgcmVjZWl2aW5nIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBzdGF0dXMg
UmV0dXJucyBhbnkgZXJyb3IgaW5mb3JtYXRpb24gd2hpbGUgcGVyZm9ybWluZyB0aGlzIG9wZXJh
dGlvbi4KKyAgICAgKiBAcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGtleXdvcmQgdmFsdWUKKyAg
ICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAgIGludDMyX3QgZ2V0S2V5
d29yZFZhbHVlKGNvbnN0IGNoYXIqIGtleXdvcmROYW1lLCBjaGFyICpidWZmZXIsIGludDMyX3Qg
YnVmZmVyQ2FwYWNpdHksIFVFcnJvckNvZGUgJnN0YXR1cykgY29uc3Q7CisKKyAgICAvKioKKyAg
ICAgKiBTZXRzIG9yIHJlbW92ZXMgdGhlIHZhbHVlIGZvciBhIGtleXdvcmQuCisgICAgICoKKyAg
ICAgKiBGb3IgcmVtb3ZpbmcgYWxsIGtleXdvcmRzLCB1c2UgZ2V0QmFzZU5hbWUoKSwKKyAgICAg
KiBhbmQgY29uc3RydWN0IGEgbmV3IExvY2FsZSBpZiBpdCBkaWZmZXJzIGZyb20gZ2V0TmFtZSgp
LgorICAgICAqCisgICAgICogQHBhcmFtIGtleXdvcmROYW1lIG5hbWUgb2YgdGhlIGtleXdvcmQg
dG8gYmUgc2V0LiBDYXNlIGluc2Vuc2l0aXZlLgorICAgICAqIEBwYXJhbSBrZXl3b3JkVmFsdWUg
dmFsdWUgb2YgdGhlIGtleXdvcmQgdG8gYmUgc2V0LiBJZiAwLWxlbmd0aCBvcgorICAgICAqICBO
VUxMLCB3aWxsIHJlc3VsdCBpbiB0aGUga2V5d29yZCBiZWluZyByZW1vdmVkLiBObyBlcnJvciBp
cyBnaXZlbiBpZgorICAgICAqICB0aGF0IGtleXdvcmQgZG9lcyBub3QgZXhpc3QuCisgICAgICog
QHBhcmFtIHN0YXR1cyBSZXR1cm5zIGFueSBlcnJvciBpbmZvcm1hdGlvbiB3aGlsZSBwZXJmb3Jt
aW5nIHRoaXMgb3BlcmF0aW9uLgorICAgICAqCisgICAgICogQHN0YWJsZSBJQ1UgNDkKKyAgICAg
Ki8KKyAgICB2b2lkIHNldEtleXdvcmRWYWx1ZShjb25zdCBjaGFyKiBrZXl3b3JkTmFtZSwgY29u
c3QgY2hhcioga2V5d29yZFZhbHVlLCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisg
ICAgICogcmV0dXJucyB0aGUgbG9jYWxlJ3MgdGhyZWUtbGV0dGVyIGxhbmd1YWdlIGNvZGUsIGFz
IHNwZWNpZmllZAorICAgICAqIGluIElTTyBkcmFmdCBzdGFuZGFyZCBJU08tNjM5LTIuCisgICAg
ICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlLCBvciBhbiBlbXB0eSBzdHJpbmcK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0SVNP
M0xhbmd1YWdlKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAibmFtZSIgd2l0
aCB0aGUgbG9jYWxlJ3MgdGhyZWUtbGV0dGVyIElTTy0zMTY2IGNvdW50cnkgY29kZS4KKyAgICAg
KiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUsIG9yIGFuIGVtcHR5IHN0cmluZwor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGNvbnN0IGNoYXIgKiBnZXRJU08z
Q291bnRyeSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgV2luZG93cyBM
Q0lEIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBsb2NhbGUuCisgICAgICogVGhpcyB2YWx1
ZSBpcyBzdG9yZWQgaW4gdGhlIHJlc291cmNlIGRhdGEgZm9yIHRoZSBsb2NhbGUgYXMgYSBvbmUt
dG8tZm91ci1kaWdpdAorICAgICAqIGhleGFkZWNpbWFsIG51bWJlci4gIElmIHRoZSByZXNvdXJj
ZSBpcyBtaXNzaW5nLCBpbiB0aGUgd3JvbmcgZm9ybWF0LCBvcgorICAgICAqIHRoZXJlIGlzIG5v
IFdpbmRvd3MgTENJRCB2YWx1ZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoaXMgbG9jYWxlLCByZXR1
cm5zIDAuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdWludDMyX3QgICAg
ICAgIGdldExDSUQodm9pZCkgY29uc3Q7CisKKyNpZm5kZWYgVV9ISURFX0RSQUZUX0FQSQorICAg
IC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciB0aGlzIGxvY2FsZSdzIHNjcmlwdCBpcyB3cml0
dGVuIHJpZ2h0LXRvLWxlZnQuCisgICAgICogSWYgdGhlcmUgaXMgbm8gc2NyaXB0IHN1YnRhZywg
dGhlbiB0aGUgbGlrZWx5IHNjcmlwdCBpcyB1c2VkLCBzZWUgdWxvY19hZGRMaWtlbHlTdWJ0YWdz
KCkuCisgICAgICogSWYgbm8gbGlrZWx5IHNjcmlwdCBpcyBrbm93biwgdGhlbiBGQUxTRSBpcyBy
ZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEEgc2NyaXB0IGlzIHJpZ2h0LXRvLWxlZnQgYWNjb3Jk
aW5nIHRvIHRoZSBDTERSIHNjcmlwdCBtZXRhZGF0YQorICAgICAqIHdoaWNoIGNvcnJlc3BvbmRz
IHRvIHdoZXRoZXIgdGhlIHNjcmlwdCdzIGxldHRlcnMgaGF2ZSBCaWRpX0NsYXNzPVIgb3IgQUwu
CisgICAgICoKKyAgICAgKiBSZXR1cm5zIFRSVUUgZm9yICJhciIgYW5kICJlbi1IZWJyIiwgRkFM
U0UgZm9yICJ6aCIgYW5kICJmYS1DeXJsIi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVFJVRSBp
ZiB0aGUgbG9jYWxlJ3Mgc2NyaXB0IGlzIHdyaXR0ZW4gcmlnaHQtdG8tbGVmdAorICAgICAqIEBk
cmFmdCBJQ1UgNTQKKyAgICAgKi8KKyAgICBVQm9vbCBpc1JpZ2h0VG9MZWZ0KCkgY29uc3Q7Cisj
ZW5kaWYgIC8qIFVfSElERV9EUkFGVF9BUEkgKi8KKworICAgIC8qKgorICAgICAqIEZpbGxzIGlu
ICJkaXNwTGFuZyIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdzIGxhbmd1YWdlIGluIGEg
Zm9ybWF0IHN1aXRhYmxlIGZvcgorICAgICAqIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBs
b2NhbGUuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMKKyAg
ICAgKiAiZnIiIGFuZCB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIs
IHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcExhbmcgdG8gIkZyZW5jaCIuCisg
ICAgICogQHBhcmFtIGRpc3BMYW5nICBSZWNlaXZlcyB0aGUgbGFuZ3VhZ2UncyBkaXNwbGF5IG5h
bWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcExhbmciLgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXRE
aXNwbGF5TGFuZ3VhZ2UoVW5pY29kZVN0cmluZyYgICBkaXNwTGFuZykgY29uc3Q7CisKKyAgICAv
KioKKyAgICAgKiBGaWxscyBpbiAiZGlzcExhbmciIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2Nh
bGUncyBsYW5ndWFnZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IKKyAgICAgKiB1c2VyIGRpc3Bs
YXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLiAgRm9yIGV4YW1w
bGUsIGlmIHRoZSBsb2NhbGUncworICAgICAqIGxhbmd1YWdlIGNvZGUgaXMgImVuIiBhbmQgZGlz
cGxheUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImZyIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBz
ZXQKKyAgICAgKiBkaXNwTGFuZyB0byAiQW5nbGFpcyIuCisgICAgICogQHBhcmFtIGRpc3BsYXlM
b2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFt
ZS4gIEluIG90aGVyIHdvcmRzLAorICAgICAqICAgICAgICAgICAgICAgICAgaWYgdGhlIGxvY2Fs
ZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgcGFzc2luZyBMb2NhbGU6OmdldEZyZW5jaCgpIGZv
cgorICAgICAqICAgICAgICAgICAgICAgICAgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4g
IkFuZ2xhaXMiLCB3aGlsZSBwYXNzaW5nIExvY2FsZTo6Z2V0R2VybWFuKCkKKyAgICAgKiAgICAg
ICAgICAgICAgICAgIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiRW5nbGlzY2gi
LgorICAgICAqIEBwYXJhbSBkaXNwTGFuZyAgUmVjZWl2ZXMgdGhlIGxhbmd1YWdlJ3MgZGlzcGxh
eSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BMYW5n
Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAg
Z2V0RGlzcGxheUxhbmd1YWdlKCBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29k
ZVN0cmluZyYgIGRpc3BMYW5nKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJk
aXNwU2NyaXB0IiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3Mgc2NyaXB0IGluIGEgZm9y
bWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2Nh
bGUuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzIHNjcmlwdCBjb2RlCisgICAgICogaXMg
IkxBVE4iIGFuZCB0aGUgZGVmYXVsdCBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRo
aXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcFNjcmlwdCB0byAiTGF0aW4iLgorICAg
ICAqIEBwYXJhbSBkaXNwU2NyaXB0ICAgIFJlY2VpdmVzIHRoZSBzY3JpcHRzJ3MgZGlzcGxheSBu
YW1lLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwU2Ny
aXB0Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5n
JiAgZ2V0RGlzcGxheVNjcmlwdCggICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcFNjcmlwdCkg
Y29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFNjcmlwdCIgd2l0aCB0aGUg
bmFtZSBvZiB0aGlzIGxvY2FsZSdzIGNvdW50cnkgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAg
KiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9j
YWxlIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBzY3JpcHQgY29kZSBp
cyAiTEFUTiIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMg
ZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcFNjcmlwdCB0byAiTGF0aW4iLgorICAgICAq
IEBwYXJhbSBkaXNwbGF5TG9jYWxlICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNl
ZCB0byBkaXNwbGF5IHRoZSBuYW1lLiAgSW4gb3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAg
ICAgICB3b3JkcywgaWYgdGhlIGxvY2FsZSdzIHNjcmlwdCBjb2RlIGlzICJMQVROIiwgcGFzc2lu
ZworICAgICAqICAgICAgICAgICAgICAgICAgICAgIExvY2FsZTo6Z2V0RnJlbmNoKCkgZm9yIGRp
c3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICIiLCB3aGlsZQorICAgICAqICAgICAgICAgICAg
ICAgICAgICAgIHBhc3NpbmcgTG9jYWxlOjpnZXRHZXJtYW4oKSBmb3IgZGlzcGxheUxvY2FsZSB3
b3VsZCByZXN1bHQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAiIi4KKyAgICAgKiBA
cGFyYW0gZGlzcFNjcmlwdCAgICBSZWNlaXZlcyB0aGUgc2NyaXB0cydzIGRpc3BsYXkgbmFtZS4K
KyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFNjcmlwdCIu
CisgICAgICogQHN0YWJsZSBJQ1UgMi44CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdl
dERpc3BsYXlTY3JpcHQoICBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3Ry
aW5nJiAgZGlzcFNjcmlwdCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlz
cENvdW50cnkiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBjb3VudHJ5IGluIGEgZm9y
bWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2Nh
bGUuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGxvY2FsZSdzIGNvdW50cnkgY29kZQorICAgICAqIGlz
ICJGUiIgYW5kIHRoZSBkZWZhdWx0IGxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImVuIiwgdGhp
cyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAgICAgKiBkaXNwQ291bnRyeSB0byAiRnJhbmNlIi4KKyAg
ICAgKiBAcGFyYW0gZGlzcENvdW50cnkgICBSZWNlaXZlcyB0aGUgY291bnRyeSdzIGRpc3BsYXkg
bmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcENv
dW50cnkiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJp
bmcmICBnZXREaXNwbGF5Q291bnRyeSggICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcENvdW50
cnkpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BDb3VudHJ5IiB3aXRo
IHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQor
ICAgICAqIGZvciB1c2VyIGRpc3BsYXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3Bs
YXlMb2NhbGUiLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBsb2NhbGUncworICAgICAqIGNvdW50cnkg
Y29kZSBpcyAiVVMiIGFuZCBkaXNwbGF5TG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZnIiLCB0
aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAqIGRpc3BDb3VudHJ5IHRvICImRWFjdXRlO3Rh
dHMtVW5pcyIuCisgICAgICogQHBhcmFtIGRpc3BsYXlMb2NhbGUgICAgICBTcGVjaWZpZXMgdGhl
IGxvY2FsZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlcgorICAgICAq
ICAgICAgICAgICAgICAgICAgICAgIHdvcmRzLCBpZiB0aGUgbG9jYWxlJ3MgY291bnRyeSBjb2Rl
IGlzICJVUyIsIHBhc3NpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBMb2NhbGU6Omdl
dEZyZW5jaCgpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBpbiAiJkVhY3V0ZTt0YXRz
LVVuaXMiLCB3aGlsZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHBhc3NpbmcgTG9jYWxl
OjpnZXRHZXJtYW4oKSBmb3IgZGlzcGxheUxvY2FsZSB3b3VsZCByZXN1bHQgaW4KKyAgICAgKiAg
ICAgICAgICAgICAgICAgICAgICAiVmVyZWluaWd0ZSBTdGFhdGVuIi4KKyAgICAgKiBAcGFyYW0g
ZGlzcENvdW50cnkgICBSZWNlaXZlcyB0aGUgY291bnRyeSdzIGRpc3BsYXkgbmFtZS4KKyAgICAg
KiBAcmV0dXJuICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcENvdW50cnkiLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNw
bGF5Q291bnRyeSggIGNvbnN0ICAgTG9jYWxlJiAgICAgICAgIGRpc3BsYXlMb2NhbGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5n
JiAgZGlzcENvdW50cnkpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BW
YXIiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyB2YXJpYW50IGNvZGUgaW4gYSBmb3Jt
YXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IGxvY2Fs
ZS4KKyAgICAgKiBAcGFyYW0gZGlzcFZhciAgIFJlY2VpdmVzIHRoZSB2YXJpYW50J3MgbmFtZS4K
KyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwVmFyIi4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxh
eVZhcmlhbnQoICAgICAgVW5pY29kZVN0cmluZyYgZGlzcFZhcikgY29uc3Q7CisKKyAgICAvKioK
KyAgICAgKiBGaWxscyBpbiAiZGlzcFZhciIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdz
IHZhcmlhbnQgY29kZSBpbiBhIGZvcm1hdAorICAgICAqIHN1aXRhYmxlIGZvciB1c2VyIGRpc3Bs
YXkgaW4gdGhlIGxvY2FsZSBzcGVjaWZpZWQgYnkgImRpc3BsYXlMb2NhbGUiLgorICAgICAqIEBw
YXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2VkIHRvIGRp
c3BsYXkgdGhlIG5hbWUuCisgICAgICogQHBhcmFtIGRpc3BWYXIgICBSZWNlaXZlcyB0aGUgdmFy
aWFudCdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAgIEEgcmVmZXJlbmNl
IHRvICJkaXNwVmFyIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmlj
b2RlU3RyaW5nJiAgZ2V0RGlzcGxheVZhcmlhbnQoICBjb25zdCAgIExvY2FsZSYgICAgICAgICBk
aXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BWYXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICog
RmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUgaW4gYSBmb3JtYXQg
c3VpdGFibGUgZm9yIHVzZXIgZGlzcGxheQorICAgICAqIGluIHRoZSBkZWZhdWx0IGxvY2FsZS4g
IFRoaXMgZnVuY3Rpb24gdXNlcyBnZXREaXNwbGF5TGFuZ3VhZ2UoKSwgZ2V0RGlzcGxheUNvdW50
cnkoKSwKKyAgICAgKiBhbmQgZ2V0RGlzcGxheVZhcmlhbnQoKSB0byBkbyBpdHMgd29yaywgYW5k
IG91dHB1dHMgdGhlIGRpc3BsYXkgbmFtZSBpbiB0aGUgZm9ybWF0CisgICAgICogImxhbmd1YWdl
IChjb3VudHJ5Wyx2YXJpYW50XSkiLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBkZWZhdWx0IGxvY2Fs
ZSBpcyBlbl9VUywgdGhlbgorICAgICAqIGZyX0ZSJ3MgZGlzcGxheSBuYW1lIHdvdWxkIGJlICJG
cmVuY2ggKEZyYW5jZSkiLCBhbmQgZXNfTVhfVHJhZGl0aW9uYWwncyBkaXNwbGF5IG5hbWUKKyAg
ICAgKiB3b3VsZCBiZSAiU3BhbmlzaCAoTWV4aWNvLFRyYWRpdGlvbmFsKSIuCisgICAgICogQHBh
cmFtIG5hbWUgIFJlY2VpdmVzIHRoZSBsb2NhbGUncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJl
dHVybiAgICAgIEEgcmVmZXJlbmNlIHRvICJuYW1lIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheU5hbWUoICAgICAgICAgVW5p
Y29kZVN0cmluZyYgIG5hbWUpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5h
bWUiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUgaW4gYSBmb3JtYXQgc3VpdGFibGUgZm9y
IHVzZXIgZGlzcGxheQorICAgICAqIGluIHRoZSBsb2NhbGUgc3BlY2ZpZWQgYnkgImRpc3BsYXlM
b2NhbGUiLiAgVGhpcyBmdW5jdGlvbiB1c2VzIGdldERpc3BsYXlMYW5ndWFnZSgpLAorICAgICAq
IGdldERpc3BsYXlDb3VudHJ5KCksIGFuZCBnZXREaXNwbGF5VmFyaWFudCgpIHRvIGRvIGl0cyB3
b3JrLCBhbmQgb3V0cHV0cyB0aGUgZGlzcGxheQorICAgICAqIG5hbWUgaW4gdGhlIGZvcm1hdCAi
bGFuZ3VhZ2UgKGNvdW50cnlbLHZhcmlhbnRdKSIuICBGb3IgZXhhbXBsZSwgaWYgZGlzcGxheUxv
Y2FsZSBpcworICAgICAqIGZyX0ZSLCB0aGVuIGVuX1VTJ3MgZGlzcGxheSBuYW1lIHdvdWxkIGJl
ICJBbmdsYWlzICgmRWFjdXRlO3RhdHMtVW5pcykiLCBhbmQgbm9fTk9fTlkncworICAgICAqIGRp
c3BsYXkgbmFtZSB3b3VsZCBiZSAibm9ydiZlYWN1dGU7Z2llbiAoTm9ydiZlZ3JhdmU7Z2UsTlkp
Ii4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8g
YmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEBwYXJhbSBuYW1lICAgICAgUmVj
ZWl2ZXMgdGhlIGxvY2FsZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAgICAg
IEEgcmVmZXJlbmNlIHRvICJuYW1lIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8K
KyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheU5hbWUoIGNvbnN0ICAgTG9jYWxlJiAgICAg
ICAgIGRpc3BsYXlMb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVuaWNvZGVTdHJpbmcmICBuYW1lKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEdl
bmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhlIGxvY2FsZS4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAgaGFzaENvZGUodm9pZCkgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBsb2NhbGUgdG8gYm9ndXMKKyAgICAgKiBBIGJvZ3Vz
IGxvY2FsZSByZXByZXNlbnRzIGEgbm9uLWV4aXN0aW5nIGxvY2FsZSBhc3NvY2lhdGVkCisgICAg
ICogd2l0aCBzZXJ2aWNlcyB0aGF0IGNhbiBiZSBpbnN0YW50aWF0ZWQgZnJvbSBub24tbG9jYWxl
IGRhdGEKKyAgICAgKiBpbiBhZGRpdGlvbiB0byBsb2NhbGUgKGZvciBleGFtcGxlLCBjb2xsYXRp
b24gY2FuIGJlCisgICAgICogaW5zdGFudGlhdGVkIGZyb20gYSBsb2NhbGUgYW5kIGZyb20gYSBy
dWxlIHNldCkuCisgICAgICogQHN0YWJsZSBJQ1UgMi4xCisgICAgICovCisgICAgdm9pZCBzZXRU
b0JvZ3VzKCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBib2d1cyBzdGF0ZS4gTG9jYWxl
IG9iamVjdCBjYW4gYmUgYm9ndXMgaWYgaXQgZG9lc24ndCBleGlzdAorICAgICAqIEByZXR1cm4g
RkFMU0UgaWYgaXQgaXMgYSByZWFsIGxvY2FsZSwgVFJVRSBpZiBpdCBpcyBhIGJvZ3VzIGxvY2Fs
ZQorICAgICAqIEBzdGFibGUgSUNVIDIuMQorICAgICAqLworICAgIFVCb29sIGlzQm9ndXModm9p
ZCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgaW5zdGFs
bGVkIGxvY2FsZXMuCisgICAgICogQHBhcmFtIGNvdW50IFJlY2VpdmVzIHRoZSBudW1iZXIgb2Yg
bG9jYWxlcyBpbiB0aGUgbGlzdC4KKyAgICAgKiBAcmV0dXJuICAgICAgQSBwb2ludGVyIHRvIGFu
IGFycmF5IG9mIExvY2FsZSBvYmplY3RzLiAgVGhpcyBhcnJheSBpcyB0aGUgbGlzdAorICAgICAq
ICAgICAgICAgICAgICBvZiBhbGwgbG9jYWxlcyB3aXRoIGluc3RhbGxlZCByZXNvdXJjZSBmaWxl
cy4gIFRoZSBjYWxsZWQgZG9lcyBOT1QKKyAgICAgKiAgICAgICAgICAgICAgZ2V0IG93bmVyc2hp
cCBvZiB0aGlzIGxpc3QsIGFuZCBtdXN0IE5PVCBkZWxldGUgaXQuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSogVV9FWFBPUlQyIGdldEF2
YWlsYWJsZUxvY2FsZXMoaW50MzJfdCYgY291bnQpOworCisgICAgLyoqCisgICAgICogR2V0cyBh
IGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSAyLWxldHRlciBjb3VudHJ5IGNvZGVzIGRlZmluZWQgaW4g
SVNPIDMxNjYuICBUaGlzIGlzIGEKKyAgICAgKiBwb2ludGVyIHRvIGFuIGFycmF5IG9mIHBvaW50
ZXJzIHRvIGFycmF5cyBvZiBjaGFyLiAgQWxsIG9mIHRoZXNlIHBvaW50ZXJzIGFyZQorICAgICAq
IG93bmVkIGJ5IElDVS0tIGRvIG5vdCBkZWxldGUgdGhlbSwgYW5kIGRvIG5vdCB3cml0ZSB0aHJv
dWdoIHRoZW0uICBUaGUgYXJyYXkgaXMKKyAgICAgKiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBv
aW50ZXIuCisgICAgICogQHJldHVybiBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBjb3VudHJ5IGNv
ZGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IGNo
YXIqIGNvbnN0KiBVX0VYUE9SVDIgZ2V0SVNPQ291bnRyaWVzKCk7CisKKyAgICAvKioKKyAgICAg
KiBHZXRzIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGxhbmd1YWdlIGNvZGVzIGRlZmluZWQgaW4g
SVNPIDYzOS4gIFRoaXMgaXMgYSBwb2ludGVyCisgICAgICogdG8gYW4gYXJyYXkgb2YgcG9pbnRl
cnMgdG8gYXJyYXlzIG9mIGNoYXIuICBBbGwgb2YgdGhlc2UgcG9pbnRlcnMgYXJlIG93bmVkCisg
ICAgICogYnkgSUNVLS0gZG8gbm90IGRlbGV0ZSB0aGVtLCBhbmQgZG8gbm90IHdyaXRlIHRocm91
Z2ggdGhlbS4gIFRoZSBhcnJheSBpcworICAgICAqIHRlcm1pbmF0ZWQgd2l0aCBhIG51bGwgcG9p
bnRlci4KKyAgICAgKiBAcmV0dXJuIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIGxhbmd1YWdlIGNv
ZGVzCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IGNo
YXIqIGNvbnN0KiBVX0VYUE9SVDIgZ2V0SVNPTGFuZ3VhZ2VzKCk7CisKKyAgICAvKioKKyAgICAg
KiBJQ1UgInBvb3IgbWFuJ3MgUlRUSSIsIHJldHVybnMgYSBVQ2xhc3NJRCBmb3IgdGhpcyBjbGFz
cy4KKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDIuMgorICAgICAqLworICAgIHN0YXRpYyBV
Q2xhc3NJRCBVX0VYUE9SVDIgZ2V0U3RhdGljQ2xhc3NJRCgpOworCisgICAgLyoqCisgICAgICog
SUNVICJwb29yIG1hbidzIFJUVEkiLCByZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoZSBhY3R1YWwg
Y2xhc3MuCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKCkgY29uc3Q7CisKK3Byb3RlY3RlZDogLyog
b25seSBwcm90ZWN0ZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMuIERPIE5PVCBVU0UuICovCisjaWZu
ZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAgICAvKioKKyAgICAgKiBTZXQgdGhpcyBmcm9tIGEg
c2luZ2xlIFBPU0lYIHN0eWxlIGxvY2FsZSBzdHJpbmcuCisgICAgICogQGludGVybmFsCisgICAg
ICovCisgICAgdm9pZCBzZXRGcm9tUE9TSVhJRChjb25zdCBjaGFyICpwb3NpeElEKTsKKyNlbmRp
ZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCitwcml2YXRlOgorICAgIC8qKgorICAgICAq
IEluaXRpYWxpemUgdGhlIGxvY2FsZSBvYmplY3Qgd2l0aCBhIG5ldyBuYW1lLgorICAgICAqIFdh
cyBkZXByZWNhdGVkIC0gdXNlZCBpbiBpbXBsZW1lbnRhdGlvbiAtIG1vdmVkIGludGVybmFsCisg
ICAgICoKKyAgICAgKiBAcGFyYW0gY0xvY2FsZUlEIFRoZSBuZXcgbG9jYWxlIG5hbWUuCisgICAg
ICogQHBhcmFtIGNhbm9uaWNhbGl6ZSB3aGV0aGVyIHRvIGNhbGwgdWxvY19jYW5vbmljYWxpemUg
b24gY0xvY2FsZUlECisgICAgICovCisgICAgTG9jYWxlJiBpbml0KGNvbnN0IGNoYXIqIGNMb2Nh
bGVJRCwgVUJvb2wgY2Fub25pY2FsaXplKTsKKworICAgIC8qCisgICAgICogSW50ZXJuYWwgY29u
c3RydWN0b3IgdG8gYWxsb3cgY29uc3RydWN0aW9uIG9mIGEgbG9jYWxlIG9iamVjdCB3aXRoCisg
ICAgICogICBOTyBzaWRlIGVmZmVjdHMuICAgKERlZmF1bHQgY29uc3RydWN0b3IgdHJpZXMgdG8g
Z2V0CisgICAgICogICB0aGUgZGVmYXVsdCBsb2NhbGUuKQorICAgICAqLworICAgIGVudW0gRUxv
Y2FsZVR5cGUgeworICAgICAgICBlQk9HVVMKKyAgICB9OworICAgIExvY2FsZShFTG9jYWxlVHlw
ZSk7CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHRoZSBsb2NhbGUgY2FjaGUgZm9yIGNv
bW1vbmx5IHVzZWQgbG9jYWxlcworICAgICAqLworICAgIHN0YXRpYyBMb2NhbGUgKmdldExvY2Fs
ZUNhY2hlKHZvaWQpOworCisgICAgY2hhciBsYW5ndWFnZVtVTE9DX0xBTkdfQ0FQQUNJVFldOwor
ICAgIGNoYXIgc2NyaXB0W1VMT0NfU0NSSVBUX0NBUEFDSVRZXTsKKyAgICBjaGFyIGNvdW50cnlb
VUxPQ19DT1VOVFJZX0NBUEFDSVRZXTsKKyAgICBpbnQzMl90IHZhcmlhbnRCZWdpbjsKKyAgICBj
aGFyKiBmdWxsTmFtZTsKKyAgICBjaGFyIGZ1bGxOYW1lQnVmZmVyW1VMT0NfRlVMTE5BTUVfQ0FQ
QUNJVFldOworICAgIC8vIG5hbWUgd2l0aG91dCBrZXl3b3JkcworICAgIGNoYXIqIGJhc2VOYW1l
OworICAgIHZvaWQgaW5pdEJhc2VOYW1lKFVFcnJvckNvZGUmIHN0YXR1cyk7CisKKyAgICBVQm9v
bCBmSXNCb2d1czsKKworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJmdldExvY2FsZShpbnQgbG9j
aWQpOworCisgICAgLyoqCisgICAgICogQSBmcmllbmQgdG8gYWxsb3cgdGhlIGRlZmF1bHQgbG9j
YWxlIHRvIGJlIHNldCBieSBlaXRoZXIgdGhlIEMgb3IgQysrIEFQSS4KKyAgICAgKiBAaW50ZXJu
YWwKKyAgICAgKi8KKyAgICBmcmllbmQgTG9jYWxlICpsb2NhbGVfc2V0X2RlZmF1bHRfaW50ZXJu
YWwoY29uc3QgY2hhciAqLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICog
QGludGVybmFsCisgICAgICovCisgICAgZnJpZW5kIHZvaWQgVV9DQUxMQ09OViBsb2NhbGVfYXZh
aWxhYmxlX2luaXQoKTsKK307CisKK2lubGluZSBVQm9vbAorTG9jYWxlOjpvcGVyYXRvciE9KGNv
bnN0ICAgIExvY2FsZSYgICAgIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiAhb3BlcmF0b3I9
PShvdGhlcik7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0Q291bnRyeSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGNvdW50cnk7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoK
K0xvY2FsZTo6Z2V0TGFuZ3VhZ2UoKSBjb25zdAoreworICAgIHJldHVybiBsYW5ndWFnZTsKK30K
KworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9jYWxlOjpnZXRTY3JpcHQoKSBjb25zdAoreworICAg
IHJldHVybiBzY3JpcHQ7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xvY2FsZTo6Z2V0VmFy
aWFudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICZiYXNlTmFtZVt2YXJpYW50QmVnaW5dOworfQor
CitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldE5hbWUoKSBjb25zdAoreworICAgIHJl
dHVybiBmdWxsTmFtZTsKK30KKworaW5saW5lIFVCb29sCitMb2NhbGU6OmlzQm9ndXModm9pZCkg
Y29uc3QgeworICAgIHJldHVybiBmSXNCb2d1czsKK30KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmggYi9Tb3VyY2Uv
V1RGL2ljdS91bmljb2RlL3JiYmkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDc1OThhNTBlNmZhM2JhYjJhZDQ5
ZTAyMmFhZjM5NmNhYzMyOWU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5p
Y29kZS9yYmJpLmgKQEAgLTAsMCArMSw3ODIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyog
ICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxNCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
IENvcnBvcmF0aW9uICAgKgorKiAgIGFuZCBvdGhlcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKiAgIERhdGUgICAgICAgIE5hbWUgICAgICAgIERlc2NyaXB0aW9u
CisqICAgMTAvMjIvOTkgICAgYWxhbiAgICAgICAgQ3JlYXRpb24uCisqICAgMTEvMTEvOTkgICAg
cmdpbGxhbSAgICAgQ29tcGxldGUgcG9ydCBmcm9tIEphdmEuCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLwor
CisjaWZuZGVmIFJCQklfSAorI2RlZmluZSBSQkJJX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5
cGVzLmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBSdWxlIEJhc2VkIEJy
ZWFrIEl0ZXJhdG9yCisgKi8KKworI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJBVElPTgorCisj
aW5jbHVkZSAidW5pY29kZS9icmtpdGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS91ZGF0YS5oIgor
I2luY2x1ZGUgInVuaWNvZGUvcGFyc2VlcnIuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3NjaHJpdGVy
LmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2hyaXRlci5oIgorCisKK3N0cnVjdCBVVHJpZTsKKwor
VV9OQU1FU1BBQ0VfQkVHSU4KKworLyoqIEBpbnRlcm5hbCAqLworc3RydWN0IFJCQklEYXRhSGVh
ZGVyOworY2xhc3MgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JUYWJsZXM7CitjbGFzcyAgQnJlYWtJ
dGVyYXRvcjsKK2NsYXNzICBSQkJJRGF0YVdyYXBwZXI7CitjbGFzcyAgVVN0YWNrOworY2xhc3Mg
IExhbmd1YWdlQnJlYWtFbmdpbmU7CitjbGFzcyAgVW5oYW5kbGVkRW5naW5lOworc3RydWN0IFJC
QklTdGF0ZVRhYmxlOworCisKKworCisvKioKKyAqCisgKiBBIHN1YmNsYXNzIG9mIEJyZWFrSXRl
cmF0b3Igd2hvc2UgYmVoYXZpb3IgaXMgc3BlY2lmaWVkIHVzaW5nIGEgbGlzdCBvZiBydWxlcy4K
KyAqIDxwPkluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGFyZSBtb3N0IGNvbW1vbmx5IGNyZWF0ZWQg
YnkgdGhlIGZhY3RvcnkgbWV0aG9kcyBvZgorICogIEJyZWFrSXRlcmF0b3I6OmNyZWF0ZVdvcmRJ
bnN0YW5jZSgpLCBCcmVha0l0ZXJhdG9yOjpjcmVhdGVMaW5lSW5zdGFuY2UoKSwgZXRjLiwKKyAq
ICBhbmQgdGhlbiB1c2VkIHZpYSB0aGUgYWJzdHJhY3QgQVBJIGluIGNsYXNzIEJyZWFrSXRlcmF0
b3I8L3A+CisgKgorICogPHA+U2VlIHRoZSBJQ1UgVXNlciBHdWlkZSBmb3IgaW5mb3JtYXRpb24g
b24gQnJlYWsgSXRlcmF0b3IgUnVsZXMuPC9wPgorICoKKyAqIDxwPlRoaXMgY2xhc3MgaXMgbm90
IGludGVuZGVkIHRvIGJlIHN1YmNsYXNzZWQuICAoQ2xhc3MgRGljdGlvbmFyeUJhc2VkQnJlYWtJ
dGVyYXRvcgorICogICAgaXMgYSBzdWJjbGFzcywgYnV0IHRoYXQgcmVsYXRpb25zaGlwIGlzIGVm
ZmVjdGl2ZWx5IGludGVybmFsIHRvIHRoZSBJQ1UKKyAqICAgIGltcGxlbWVudGF0aW9uLiAgVGhl
IHN1YmNsYXNzaW5nIGludGVyZmFjZSB0byBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvciBpcworICog
ICAgbm90IHBhcnQgb2YgdGhlIElDVSBBUEksIGFuZCBtYXkgbm90IHJlbWFpbiBzdGFibGUuPC9w
PgorICoKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgLypV
X0ZJTkFMKi8gOiBwdWJsaWMgQnJlYWtJdGVyYXRvciB7CisKK3Byb3RlY3RlZDoKKyAgICAvKioK
KyAgICAgKiBUaGUgVVRleHQgdGhyb3VnaCB3aGljaCB0aGlzIEJyZWFrSXRlcmF0b3IgYWNjZXNz
ZXMgdGhlIHRleHQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBVVGV4dCAgKmZUZXh0
OworCisgICAgLyoqCisgICAgICogICBBIGNoYXJhY3RlciBpdGVyYXRvciB0aGF0IHJlZmVycyB0
byB0aGUgc2FtZSB0ZXh0IGFzIHRoZSBVVGV4dCwgYWJvdmUuCisgICAgICogICBPbmx5IGluY2x1
ZGVkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggb2xkIEFQSSwgd2hpY2ggd2FzIGJhc2VkIG9uIENo
YXJhY3Rlckl0ZXJhdG9ycy4KKyAgICAgKiAgIFZhbHVlIG1heSBiZSBhZG9wdGVkIGZyb20gb3V0
c2lkZSwgb3Igb25lIG9mIGZTQ2hhckl0ZXIgb3IgZkRDaGFySXRlciwgYmVsb3cuCisgICAgICov
CisgICAgQ2hhcmFjdGVySXRlcmF0b3IgICpmQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiAg
IFdoZW4gdGhlIGlucHV0IHRleHQgaXMgcHJvdmlkZWQgYnkgYSBVbmljb2RlU3RyaW5nLCB0aGlz
IHdpbGwgcG9pbnQgdG8KKyAgICAgKiAgICBhIGNoYXJhY3Rlckl0ZXJhdG9yIHRoYXQgd3JhcHMg
dGhhdCBkYXRhLiAgTmVlZGVkIG9ubHkgZm9yIHRoZQorICAgICAqICAgIGltcGxlbWVudGF0aW9u
IG9mIGdldFRleHQoKSwgYSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBpc3N1ZS4KKyAgICAgKi8K
KyAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciAqZlNDaGFySXRlcjsKKworICAgIC8qKgorICAg
ICAqICBXaGVuIHRoZSBpbnB1dCB0ZXh0IGlzIHByb3ZpZGVkIGJ5IGEgVVRleHQsIHRoaXMKKyAg
ICAgKiAgICBkdW1teSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIGFuIGVtcHR5IHN0cmluZyB3aWxs
CisgICAgICogICAgYmUgcmV0dXJuZWQgZnJvbSBnZXRUZXh0KCkKKyAgICAgKi8KKyAgICBVQ2hh
ckNoYXJhY3Rlckl0ZXJhdG9yICpmRENoYXJJdGVyOworCisgICAgLyoqCisgICAgICogVGhlIHJ1
bGUgZGF0YSBmb3IgdGhpcyBCcmVha0l0ZXJhdG9yIGluc3RhbmNlCisgICAgICogQGludGVybmFs
CisgICAgICovCisgICAgUkJCSURhdGFXcmFwcGVyICAgICpmRGF0YTsKKworICAgIC8qKiBJbmRl
eCBvZiB0aGUgUnVsZSB7dGFnfSB2YWx1ZXMgZm9yIHRoZSBtb3N0IHJlY2VudCBtYXRjaC4KKyAg
ICAgKiAgQGludGVybmFsCisgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAgICAgIGZMYXN0UnVs
ZVN0YXR1c0luZGV4OworCisgICAgLyoqCisgICAgICogUnVsZSB0YWcgdmFsdWUgdmFsaWQgZmxh
Zy4KKyAgICAgKiBTb21lIGl0ZXJhdG9yIG9wZXJhdGlvbnMgZG9uJ3QgaW50cmluc2ljYWxseSBz
ZXQgdGhlIGNvcnJlY3QgdGFnIHZhbHVlLgorICAgICAqIFRoaXMgZmxhZyBsZXRzIHVzIGxhemls
eSBjb21wdXRlIHRoZSB2YWx1ZSBpZiB3ZSBhcmUgZXZlciBhc2tlZCBmb3IgaXQuCisgICAgICog
QGludGVybmFsCisgICAgICovCisgICAgVUJvb2wgICAgICAgICAgICAgICBmTGFzdFN0YXR1c0lu
ZGV4VmFsaWQ7CisKKyAgICAvKioKKyAgICAgKiBDb3VudGVyIGZvciB0aGUgbnVtYmVyIG9mIGNo
YXJhY3RlcnMgZW5jb3VudGVyZWQgd2l0aCB0aGUgImRpY3Rpb25hcnkiCisgICAgICogICBmbGFn
IHNldC4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB1aW50MzJfdCAgICAgICAgICAg
IGZEaWN0aW9uYXJ5Q2hhckNvdW50OworCisgICAgLyoqCisgICAgICogV2hlbiBhIHJhbmdlIG9m
IGNoYXJhY3RlcnMgaXMgZGl2aWRlZCB1cCB1c2luZyB0aGUgZGljdGlvbmFyeSwgdGhlIGJyZWFr
CisgICAgICogcG9zaXRpb25zIHRoYXQgYXJlIGRpc2NvdmVyZWQgYXJlIHN0b3JlZCBoZXJlLCBw
cmV2ZW50aW5nIHVzIGZyb20gaGF2aW5nCisgICAgICogdG8gdXNlIGVpdGhlciB0aGUgZGljdGlv
bmFyeSBvciB0aGUgc3RhdGUgdGFibGUgYWdhaW4gdW50aWwgdGhlIGl0ZXJhdG9yCisgICAgICog
bGVhdmVzIHRoaXMgcmFuZ2Ugb2YgdGV4dC4gSGFzIHRoZSBtb3N0IGltcGFjdCBmb3IgbGluZSBi
cmVha2luZy4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90KiAgICAgICAg
ICAgIGZDYWNoZWRCcmVha1Bvc2l0aW9uczsKKworICAgIC8qKgorICAgICAqIFRoZSBudW1iZXIg
b2YgZWxlbWVudHMgaW4gZkNhY2hlZEJyZWFrUG9zaXRpb25zCisgICAgICogQGludGVybmFsCisg
ICAgICovCisgICAgaW50MzJfdCAgICAgICAgICAgICBmTnVtQ2FjaGVkQnJlYWtQb3NpdGlvbnM7
CisKKyAgICAvKioKKyAgICAgKiBpZiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMgaXMgbm90IG51bGws
IHRoaXMgaW5kaWNhdGVzIHdoaWNoIGl0ZW0gaW4gdGhlCisgICAgICogY2FjaGUgdGhlIGN1cnJl
bnQgaXRlcmF0aW9uIHBvc2l0aW9uIHJlZmVycyB0bworICAgICAqIEBpbnRlcm5hbAorICAgICAq
LworICAgIGludDMyX3QgICAgICAgICAgICAgZlBvc2l0aW9uSW5DYWNoZTsKKyAgICAKKyAgICAv
KioKKyAgICAgKgorICAgICAqIElmIHByZXNlbnQsIFVTdGFjayBvZiBMYW5ndWFnZUJyZWFrRW5n
aW5lIG9iamVjdHMgdGhhdCBtaWdodCBoYW5kbGUKKyAgICAgKiBkaWN0aW9uYXJ5IGNoYXJhY3Rl
cnMuIFNlYXJjaGVkIGZyb20gdG9wIHRvIGJvdHRvbSB0byBmaW5kIGFuIG9iamVjdCB0bworICAg
ICAqIGhhbmRsZSBhIGdpdmVuIGNoYXJhY3Rlci4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8K
KyAgICBVU3RhY2sgICAgICAgICAgICAgICpmTGFuZ3VhZ2VCcmVha0VuZ2luZXM7CisgICAgCisg
ICAgLyoqCisgICAgICoKKyAgICAgKiBJZiBwcmVzZW50LCB0aGUgc3BlY2lhbCBMYW5ndWFnZUJy
ZWFrRW5naW5lIHVzZWQgZm9yIGhhbmRsaW5nCisgICAgICogY2hhcmFjdGVycyB0aGF0IGFyZSBp
biB0aGUgZGljdGlvbmFyeSBzZXQsIGJ1dCBub3QgaGFuZGxlZCBieSBhbnkKKyAgICAgKiBMYW5n
dWdhZ2VCcmVha0VuZ2luZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBVbmhhbmRs
ZWRFbmdpbmUgICAgICpmVW5oYW5kbGVkQnJlYWtFbmdpbmU7CisgICAgCisgICAgLyoqCisgICAg
ICoKKyAgICAgKiBUaGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IsIG9yIC0xIGlmIGl0IGhh
cyBub3QgYmVlbiBzZXQuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCAg
ICAgICAgICAgICBmQnJlYWtUeXBlOworICAgIAorcHJvdGVjdGVkOgorICAgIC8vPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKyAgICAvLyBjb25zdHJ1Y3RvcnMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyNpZm5k
ZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgorICAgICAqIENvbnN0YW50IHRvIGJlIHVz
ZWQgaW4gdGhlIGNvbnN0cnVjdG9yCisgICAgICogUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihSQkJJ
RGF0YUhlYWRlciosIEVEb250QWRvcHQsIFVFcnJvckNvZGUgJik7CisgICAgICogd2hpY2ggZG9l
cyBub3QgYWRvcHQgdGhlIG1lbW9yeSBpbmRpY2F0ZWQgYnkgdGhlIFJCQklEYXRhSGVhZGVyKgor
ICAgICAqIHBhcmFtZXRlci4KKyAgICAgKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAg
IGVudW0gRURvbnRBZG9wdCB7CisgICAgICAgIGtEb250QWRvcHQKKyAgICB9OworCisgICAgLyoq
CisgICAgICogQ29uc3RydWN0b3IgZnJvbSBhIGZsYXR0ZW5lZCBzZXQgb2YgUkJCSSBkYXRhIGlu
IG1hbGxvY2VkIG1lbW9yeS4KKyAgICAgKiAgICAgICAgICAgICBSdWxlc0Jhc2VkQnJlYWtJdGVy
YXRvcnMgYnVpbHQgZnJvbSBhIGN1c3RvbSBzZXQgb2YgcnVsZXMKKyAgICAgKiAgICAgICAgICAg
ICBhcmUgY3JlYXRlZCB2aWEgdGhpcyBjb25zdHJ1Y3RvcjsgdGhlIHJ1bGVzIGFyZSBjb21waWxl
ZAorICAgICAqICAgICAgICAgICAgIGludG8gbWVtb3J5LCB0aGVuIHRoZSBicmVhayBpdGVyYXRv
ciBpcyBjb25zdHJ1Y3RlZCBoZXJlLgorICAgICAqCisgICAgICogICAgICAgICAgICAgVGhlIGJy
ZWFrIGl0ZXJhdG9yIGFkb3B0cyB0aGUgbWVtb3J5LCBhbmQgd2lsbAorICAgICAqICAgICAgICAg
ICAgIGZyZWUgaXQgd2hlbiBkb25lLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJ1
bGVCYXNlZEJyZWFrSXRlcmF0b3IoUkJCSURhdGFIZWFkZXIqIGRhdGEsIFVFcnJvckNvZGUgJnN0
YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciBmcm9tIGEgZmxhdHRlbmVkIHNl
dCBvZiBSQkJJIGRhdGEgaW4gbWVtb3J5IHdoaWNoIG5lZWQgbm90CisgICAgICogICAgICAgICAg
ICAgYmUgbWFsbG9jZWQgKGUuZy4gaXQgbWF5IGJlIGEgbWVtb3J5LW1hcHBlZCBmaWxlLCBldGMu
KS4KKyAgICAgKgorICAgICAqICAgICAgICAgICAgIFRoaXMgdmVyc2lvbiBkb2VzIG5vdCBhZG9w
dCB0aGUgbWVtb3J5LCBhbmQgZG9lcyBub3QKKyAgICAgKiAgICAgICAgICAgICBmcmVlIGl0IHdo
ZW4gZG9uZS4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yKGNvbnN0IFJCQklEYXRhSGVhZGVyKiBkYXRhLCBlbnVtIEVEb250QWRvcHQgZG9udEFk
b3B0LCBVRXJyb3JDb2RlICZzdGF0dXMpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJ
ICovCisKKworICAgIGZyaWVuZCBjbGFzcyBSQkJJUnVsZUJ1aWxkZXI7CisgICAgLyoqIEBpbnRl
cm5hbCAqLworICAgIGZyaWVuZCBjbGFzcyBCcmVha0l0ZXJhdG9yOworCisKKworcHVibGljOgor
CisgICAgLyoqIERlZmF1bHQgY29uc3RydWN0b3IuICBDcmVhdGVzIGFuIGVtcHR5IHNoZWxsIG9m
IGFuIGl0ZXJhdG9yLCB3aXRoIG5vCisgICAgICogIHJ1bGVzIG9yIHRleHQgdG8gaXRlcmF0ZSBv
dmVyLiAgIE9iamVjdCBjYW4gc3Vic2VxdWVudGx5IGJlIGFzc2lnbmVkIHRvLgorICAgICAqICBA
c3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCk7CisK
KyAgICAvKioKKyAgICAgKiBDb3B5IGNvbnN0cnVjdG9yLiAgV2lsbCBwcm9kdWNlIGEgYnJlYWsg
aXRlcmF0b3Igd2l0aCB0aGUgc2FtZSBiZWhhdmlvciwKKyAgICAgKiBhbmQgd2hpY2ggaXRlcmF0
ZXMgb3ZlciB0aGUgc2FtZSB0ZXh0LCBhcyB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFy
YW0gdGhhdCBUaGUgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBwYXNzZWQgdG8gYmUgY29waWVkCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRv
cihjb25zdCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yJiB0aGF0KTsKKworICAgIC8qKgorICAgICAq
IENvbnN0cnVjdCBhIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZnJvbSBhIHNldCBvZiBydWxlcyBz
dXBwbGllZCBhcyBhIHN0cmluZy4KKyAgICAgKiBAcGFyYW0gcnVsZXMgVGhlIGJyZWFrIHJ1bGVz
IHRvIGJlIHVzZWQuCisgICAgICogQHBhcmFtIHBhcnNlRXJyb3IgIEluIHRoZSBldmVudCBvZiBh
IHN5bnRheCBlcnJvciBpbiB0aGUgcnVsZXMsIHByb3ZpZGVzIHRoZSBsb2NhdGlvbgorICAgICAq
ICAgICAgICAgICAgICAgICAgICB3aXRoaW4gdGhlIHJ1bGVzIG9mIHRoZSBwcm9ibGVtLgorICAg
ICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24gYW55IGVycm9ycyBlbmNvdW50ZXJlZC4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yKCBjb25zdCBVbmljb2RlU3RyaW5nICAgICZydWxlcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVVBhcnNlRXJyb3IgICAgICAgICAgICZwYXJzZUVycm9yLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICAgICAgICAgICAgJnN0YXR1cyk7CisKKyAgICAv
KioKKyAgICAgKiBDb250cnVjdCBhIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgZnJvbSBhIHNldCBv
ZiBwcmVjb21waWxlZCBiaW5hcnkgcnVsZXMuCisgICAgICogQmluYXJ5IHJ1bGVzIGFyZSBvYnRh
aW5lZCBmcm9tIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9yOjpnZXRCaW5hcnlSdWxlcygpLgorICAg
ICAqIENvbnN0cnVjdGlvbiBvZiBhIGJyZWFrIGl0ZXJhdG9yIGluIHRoaXMgd2F5IGlzIHN1YnN0
YW50aWFsbHkgZmFzdGVyIHRoYW4KKyAgICAgKiBjb25zdHVjdGlvbiBmcm9tIHNvdXJjZSBydWxl
cy4KKyAgICAgKgorICAgICAqIE93bmVyc2hpcCBvZiB0aGUgc3RvcmFnZSBjb250YWluaW5nIHRo
ZSBjb21waWxlZCBydWxlcyByZW1haW5zIHdpdGggdGhlCisgICAgICogY2FsbGVyIG9mIHRoaXMg
ZnVuY3Rpb24uICBUaGUgY29tcGlsZWQgcnVsZXMgbXVzdCBub3QgYmUgIG1vZGlmaWVkIG9yIAor
ICAgICAqIGRlbGV0ZWQgZHVyaW5nIHRoZSBsaWZlIG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAg
ICAgKgorICAgICAqIFRoZSBjb21waWxlZCBydWxlcyBhcmUgbm90IGNvbXBhdGlibGUgYWNyb3Nz
IGRpZmZlcmVudCBtYWpvciB2ZXJzaW9ucyBvZiBJQ1UuCisgICAgICogVGhlIGNvbXBpbGVkIHJ1
bGVzIGFyZSBjb21hcHRpYmxlIG9ubHkgYmV0d2VlbiBtYWNoaW5lcyB3aXRoIHRoZSBzYW1lCisg
ICAgICogYnl0ZSBvcmRlcmluZyAobGl0dGxlIG9yIGJpZyBlbmRpYW4pIGFuZCB0aGUgc2FtZSBi
YXNlIGNoYXJhY3RlciBzZXQgZmFtaWx5CisgICAgICogKEFTQ0lJIG9yIEVCQ0RJQykuCisgICAg
ICoKKyAgICAgKiBAc2VlICNnZXRCaW5hcnlSdWxlcworICAgICAqIEBwYXJhbSBjb21waWxlZFJ1
bGVzIEEgcG9pbnRlciB0byB0aGUgY29tcGlsZWQgYnJlYWsgcnVsZXMgdG8gYmUgdXNlZC4KKyAg
ICAgKiBAcGFyYW0gcnVsZUxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBjb21waWxlZCBicmVhayBy
dWxlcywgaW4gYnl0ZXMuICBUaGlzCisgICAgICogICBjb3JyZXNwb25kcyB0byB0aGUgbGVuZ3Ro
IHZhbHVlIHByb2R1Y2VkIGJ5IGdldEJpbmFyeVJ1bGVzKCkuCisgICAgICogQHBhcmFtIHN0YXR1
cyBJbmZvcm1hdGlvbiBvbiBhbnkgZXJyb3JzIGVuY291bnRlcmVkLCBpbmNsdWRpbmcgaW52YWxp
ZAorICAgICAqICAgYmluYXJ5IHJ1bGVzLgorICAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICAq
LworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoY29uc3QgdWludDhfdCAqY29tcGlsZWRSdWxl
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgIHJ1bGVMZW5ndGgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICAgICZzdGF0dXMpOworCisg
ICAgLyoqCisgICAgICogVGhpcyBjb25zdHJ1Y3RvciB1c2VzIHRoZSB1ZGF0YSBpbnRlcmZhY2Ug
dG8gY3JlYXRlIGEgQnJlYWtJdGVyYXRvcgorICAgICAqIHdob3NlIGludGVybmFsIHRhYmxlcyBs
aXZlIGluIGEgbWVtb3J5LW1hcHBlZCBmaWxlLiAgImltYWdlIiBpcyBhbgorICAgICAqIElDVSBV
RGF0YU1lbW9yeSBoYW5kbGUgZm9yIHRoZSBwcmUtY29tcGlsZWQgYnJlYWsgaXRlcmF0b3IgdGFi
bGVzLgorICAgICAqIEBwYXJhbSBpbWFnZSBoYW5kbGUgdG8gdGhlIG1lbW9yeSBpbWFnZSBmb3Ig
dGhlIGJyZWFrIGl0ZXJhdG9yIGRhdGEuCisgICAgICogICAgICAgIE93bmVyc2hpcCBvZiB0aGUg
VURhdGFNZW1vcnkgaGFuZGxlIHBhc3NlcyB0byB0aGUgQnJlYWsgSXRlcmF0b3IsCisgICAgICog
ICAgICAgIHdoaWNoIHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIGNsb3NpbmcgaXQgd2hlbiBpdCBp
cyBubyBsb25nZXIgbmVlZGVkLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24g
YW55IGVycm9ycyBlbmNvdW50ZXJlZC4KKyAgICAgKiBAc2VlIHVkYXRhX29wZW4KKyAgICAgKiBA
c2VlICNnZXRCaW5hcnlSdWxlcworICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAgICAqLworICAg
IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoVURhdGFNZW1vcnkqIGltYWdlLCBVRXJyb3JDb2RlICZz
dGF0dXMpOworCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3RvcgorICAgICAqICBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIH5SdWxlQmFzZWRCcmVha0l0ZXJhdG9yKCk7CisK
KyAgICAvKioKKyAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgU2V0cyB0aGlzIGl0ZXJhdG9y
IHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsCisgICAgICogYW5kIGl0ZXJhdGUgb3ZlciB0aGUg
c2FtZSB0ZXh0LCBhcyB0aGUgb25lIHBhc3NlZCBpbi4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUg
UnVsZUJhc2VkQnJlYWtJdGVydG9yIHBhc3NlZCBpbgorICAgICAqIEByZXR1cm4gdGhlIG5ld2x5
IGNyZWF0ZWQgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3QgUnVs
ZUJhc2VkQnJlYWtJdGVyYXRvciYgdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBFcXVhbGl0eSBv
cGVyYXRvci4gIFJldHVybnMgVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBvZiB0aGUK
KyAgICAgKiBzYW1lIGNsYXNzLCBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLCBhbmQgaXRlcmF0ZSBv
dmVyIHRoZSBzYW1lIHRleHQuCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEJyZWFrSXRlcmF0b3Ig
dG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5CisgICAgICogQHJldHVybiBUUlVFIGlmIGJvdGgg
QnJlYWtJdGVyYXRvcnMgYXJlIG9mIHRoZQorICAgICAqIHNhbWUgY2xhc3MsIGhhdmUgdGhlIHNh
bWUgYmVoYXZpb3IsIGFuZCBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgdGV4dC4KKyAgICAgKiAgQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQm9vbCBvcGVyYXRvcj09KGNvbnN0
IEJyZWFrSXRlcmF0b3ImIHRoYXQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogTm90LWVxdWFs
IG9wZXJhdG9yLiAgSWYgb3BlcmF0b3I9PSByZXR1cm5zIFRSVUUsIHRoaXMgcmV0dXJucyBGQUxT
RSwKKyAgICAgKiBhbmQgdmljZSB2ZXJzYS4KKyAgICAgKiBAcGFyYW0gdGhhdCBUaGUgQnJlYWtJ
dGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgaW5lcXVhbGl0eQorICAgICAqIEByZXR1cm4gVFJV
RSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBub3Qgc2FtZS4KKyAgICAgKiAgQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgVUJvb2wgb3BlcmF0b3IhPShjb25zdCBCcmVha0l0ZXJhdG9y
JiB0aGF0KSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBuZXdseS1jb25zdHJ1
Y3RlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIHdpdGggdGhlIHNhbWUKKyAgICAgKiBiZWhhdmlv
ciwgYW5kIGl0ZXJhdGluZyBvdmVyIHRoZSBzYW1lIHRleHQsIGFzIHRoaXMgb25lLgorICAgICAq
IERpZmZlcnMgZnJvbSB0aGUgY29weSBjb25zdHJ1Y3RvciBpbiB0aGF0IGl0IGlzIHBvbHltb3Jw
aGljLCBhbmQKKyAgICAgKiB3aWxsIGNvcnJlY3RseSBjbG9uZSAoY29weSkgYSBkZXJpdmVkIGNs
YXNzLgorICAgICAqIGNsb25lKCkgaXMgdGhyZWFkIHNhZmUuICBNdWx0aXBsZSB0aHJlYWRzIG1h
eSBzaW11bHRhZW5lb3VzbHkKKyAgICAgKiBjbG9uZSB0aGUgc2FtZSBzb3VyY2UgYnJlYWsgaXRl
cmF0b3IuCisgICAgICogQHJldHVybiBhIG5ld2x5LWNvbnN0cnVjdGVkIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIEJy
ZWFrSXRlcmF0b3IqIGNsb25lKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGEg
aGFzaCBjb2RlIGZvciB0aGlzIEJyZWFrSXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIEEgaGFzaCBj
b2RlCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJf
dCBoYXNoQ29kZSh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRl
c2NyaXB0aW9uIHVzZWQgdG8gY3JlYXRlIHRoaXMgaXRlcmF0b3IKKyAgICAgKiBAcmV0dXJuIHRo
ZSBkZXNjcmlwdGlvbiB1c2VkIHRvIGNyZWF0ZSB0aGlzIGl0ZXJhdG9yCisgICAgICogIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgY29uc3QgVW5pY29kZVN0cmluZyYgZ2V0
UnVsZXModm9pZCkgY29uc3Q7CisKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gQnJlYWtJ
dGVyYXRvciBvdmVycmlkZXMKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAvKioKKyAgICAg
KiA8cD4KKyAgICAgKiBSZXR1cm4gYSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJl
aW5nIGFuYWx5emVkLgorICAgICAqIFRoZSByZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0b3IgaXMg
b3duZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLCBhbmQgbXVzdAorICAgICAqIG5vdCBiZSBkZWxl
dGVkIGJ5IHRoZSBjYWxsZXIuICBSZXBlYXRlZCBjYWxscyB0byB0aGlzIGZ1bmN0aW9uIG1heQor
ICAgICAqIHJldHVybiB0aGUgc2FtZSBDaGFyYWN0ZXJJdGVyYXRvci4KKyAgICAgKiA8L3A+Cisg
ICAgICogPHA+CisgICAgICogVGhlIHJldHVybmVkIGNoYXJhY3RlciBpdGVyYXRvciBtdXN0IG5v
dCBiZSB1c2VkIGNvbmN1cnJlbnRseSB3aXRoCisgICAgICogdGhlIGJyZWFrIGl0ZXJhdG9yLiAg
SWYgY29uY3VycmVudCBvcGVyYXRpb24gaXMgbmVlZGVkLCBjbG9uZSB0aGUKKyAgICAgKiByZXR1
cm5lZCBjaGFyYWN0ZXIgaXRlcmF0b3IgZmlyc3QgYW5kIG9wZXJhdGUgb24gdGhlIGNsb25lLgor
ICAgICAqIDwvcD4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIHRoZSBicmVhayBpdGVyYXRvciBp
cyBvcGVyYXRpbmcgb24gdGV4dCBzdXBwbGllZCB2aWEgYSBVVGV4dCwKKyAgICAgKiB0aGlzIGZ1
bmN0aW9uIHdpbGwgZmFpbC4gIExhY2tpbmcgYW55IHdheSB0byBzaWduYWwgZmFpbHVyZXMsIGl0
CisgICAgICogcmV0dXJucyBhbiBDaGFyYWN0ZXJJdGVyYXRvciBjb250YWluaW5nIG5vIHRleHQu
CisgICAgICogVGhlIGZ1bmN0aW9uIGdldFVUZXh0KCkgcHJvdmlkZXMgc2ltaWxhciBmdW5jdGlv
bmFsaXR5LAorICAgICAqIGlzIHJlbGlhYmxlLCBhbmQgaXMgbW9yZSBlZmZpY2llbnQuCisgICAg
ICogPC9wPgorICAgICAqCisgICAgICogVE9ETzogIGRlcHJlY2F0ZSB0aGlzIGZ1bmN0aW9uPwor
ICAgICAqCisgICAgICogQHJldHVybiBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFu
YWx5emVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgIENo
YXJhY3Rlckl0ZXJhdG9yJiBnZXRUZXh0KHZvaWQpIGNvbnN0OworCisKKyAgICAvKioKKyAgICAg
ICogIEdldCBhIFVUZXh0IGZvciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgICogIFRo
ZSByZXR1cm5lZCBVVGV4dCBpcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIFVUZXh0IHVzZWQgaW50
ZXJuYWxseQorICAgICAgKiAgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uLiAg
SXQgY2FuIHNhZmVseSBiZSB1c2VkIHRvCisgICAgICAqICBhY2Nlc3MgdGhlIHRleHQgd2l0aG91
dCBpbXBhY3RpbmcgYW55IGJyZWFrIGl0ZXJhdG9yIG9wZXJhdGlvbnMsCisgICAgICAqICBidXQg
dGhlIHVuZGVybHlpbmcgdGV4dCBpdHNlbGYgbXVzdCBub3QgYmUgYWx0ZXJlZC4KKyAgICAgICoK
KyAgICAgICogQHBhcmFtIGZpbGxJbiBBIFVUZXh0IHRvIGJlIGZpbGxlZCBpbi4gIElmIE5VTEws
IGEgbmV3IFVUZXh0IHdpbGwgYmUKKyAgICAgICogICAgICAgICAgIGFsbG9jYXRlZCB0byBob2xk
IHRoZSByZXN1bHQuCisgICAgICAqIEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNv
ZGVzLgorICAgICAgKiBAcmV0dXJuICAgVGhlIGN1cnJlbnQgVVRleHQgZm9yIHRoaXMgYnJlYWsg
aXRlcmF0b3IuICBJZiBhbiBpbnB1dAorICAgICAgKiAgICAgICAgICAgVVRleHQgd2FzIHByb3Zp
ZGVkLCBpdCB3aWxsIGFsd2F5cyBiZSByZXR1cm5lZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMy40
CisgICAgICAqLworICAgICB2aXJ0dWFsIFVUZXh0ICpnZXRVVGV4dChVVGV4dCAqZmlsbEluLCBV
RXJyb3JDb2RlICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVy
YXRvciB0byBhbmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0
cworICAgICAqIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5n
IG9mIHRoZSB0ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IEFuIGl0ZXJhdG9yIG92ZXIgdGhl
IHRleHQgdG8gYW5hbHl6ZS4gIFRoZSBCcmVha0l0ZXJhdG9yCisgICAgICogdGFrZXMgb3duZXJz
aGlwIG9mIHRoZSBjaGFyYWN0ZXIgaXRlcmF0b3IuICBUaGUgY2FsbGVyIE1VU1QgTk9UIGRlbGV0
ZSBpdCEKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCB2b2lk
IGFkb3B0VGV4dChDaGFyYWN0ZXJJdGVyYXRvciogbmV3VGV4dCk7CisKKyAgICAvKioKKyAgICAg
KiBTZXQgdGhlIGl0ZXJhdG9yIHRvIGFuYWx5emUgYSBuZXcgcGllY2Ugb2YgdGV4dC4gIFRoaXMg
ZnVuY3Rpb24gcmVzZXRzCisgICAgICogdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRv
IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQuCisgICAgICogQHBhcmFtIG5ld1RleHQgVGhlIHRl
eHQgdG8gYW5hbHl6ZS4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCB2b2lkIHNldFRleHQoY29uc3QgVW5pY29kZVN0cmluZyYgbmV3VGV4dCk7CisKKyAgICAv
KioKKyAgICAgKiBSZXNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdG8gb3BlcmF0ZSBvdmVyIHRoZSB0
ZXh0IHJlcHJlc2VudGVkIGJ5CisgICAgICogdGhlIFVUZXh0LiAgVGhlIGl0ZXJhdG9yIHBvc2l0
aW9uIGlzIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24g
bWFrZXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBzdXBwbGllZCBVVGV4dC4gIFRoaXMgbWVhbnMK
KyAgICAgKiB0aGF0IHRoZSBjYWxsZXIgaXMgZnJlZSB0byBpbW1lZGlhdGVseSBjbG9zZSBvciBv
dGhlcndpc2UgcmV1c2UgdGhlCisgICAgICogVXRleHQgdGhhdCB3YXMgcGFzc2VkIGFzIGEgcGFy
YW1ldGVyLCBidXQgdGhhdCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2VsZgorICAgICAqIG11c3Qg
bm90IGJlIGFsdGVyZWQgd2hpbGUgYmVpbmcgcmVmZXJlbmNlZCBieSB0aGUgYnJlYWsgaXRlcmF0
b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCAgICBUaGUgVVRleHQgdXNlZCB0byBjaGFu
Z2UgdGhlIHRleHQuCisgICAgICogQHBhcmFtIHN0YXR1cyAgUmVjZWl2ZXMgYW55IGVycm9yIGNv
ZGVzLgorICAgICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAg
c2V0VGV4dChVVGV4dCAqdGV4dCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAg
ICAqIFNldHMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcg
b2YgdGhlIHRleHQsIHBvc2l0aW9uIHplcm8uCisgICAgICogQHJldHVybiBUaGUgb2Zmc2V0IG9m
IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHplcm8uCisgICAgICogIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBmaXJzdCh2b2lkKTsKKworICAgIC8qKgor
ICAgICAqIFNldHMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBlbmQgb2Yg
dGhlIHRleHQuCisgICAgICogQHJldHVybiBUaGUgdGV4dCdzIHBhc3QtdGhlLWVuZCBvZmZzZXQu
CisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBs
YXN0KHZvaWQpOworCisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdGhlIGl0ZXJhdG9yIGVpdGhl
ciBmb3J3YXJkIG9yIGJhY2t3YXJkIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHN0ZXBzLgorICAg
ICAqIE5lZ2F0aXZlIHZhbHVlcyBtb3ZlIGJhY2t3YXJkLCBhbmQgcG9zaXRpdmUgdmFsdWVzIG1v
dmUgZm9yd2FyZC4gIFRoaXMgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHJlcGVhdGVkbHkgY2Fs
bGluZyBuZXh0KCkgb3IgcHJldmlvdXMoKS4KKyAgICAgKiBAcGFyYW0gbiBUaGUgbnVtYmVyIG9m
IHN0ZXBzIHRvIG1vdmUuICBUaGUgc2lnbiBpbmRpY2F0ZXMgdGhlIGRpcmVjdGlvbgorICAgICAq
IChuZWdhdGl2ZSBpcyBiYWNrd2FyZHMsIGFuZCBwb3NpdGl2ZSBpcyBmb3J3YXJkcykuCisgICAg
ICogQHJldHVybiBUaGUgY2hhcmFjdGVyIG9mZnNldCBvZiB0aGUgYm91bmRhcnkgcG9zaXRpb24g
biBib3VuZGFyaWVzIGF3YXkgZnJvbQorICAgICAqIHRoZSBjdXJyZW50IG9uZS4KKyAgICAgKiAg
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IG5leHQoaW50MzJf
dCBuKTsKKworICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciB0byB0aGUgbmV4
dCBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUg
Zmlyc3QgYm91bmRhcnkgYWZ0ZXIgdGhpcyBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KHZvaWQpOworCisgICAgLyoqCisgICAg
ICogTW92ZXMgdGhlIGl0ZXJhdG9yIGJhY2t3YXJkcywgdG8gdGhlIGxhc3QgYm91bmRhcnkgcHJl
Y2VkaW5nIHRoaXMgb25lLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0
IGJvdW5kYXJ5IHBvc2l0aW9uIHByZWNlZGluZyB0aGlzIG9uZS4KKyAgICAgKiAgQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHByZXZpb3VzKHZvaWQpOworCisg
ICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGJv
dW5kYXJ5IHBvc2l0aW9uIGZvbGxvd2luZworICAgICAqIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24u
CisgICAgICogQHBhcmFtIG9mZnNldCBUaGUgcG9zaXRpb24gZnJvbSB3aGljaCB0byBiZWdpbiBz
ZWFyY2hpbmcgZm9yIGEgYnJlYWsgcG9zaXRpb24uCisgICAgICogQHJldHVybiBUaGUgcG9zaXRp
b24gb2YgdGhlIGZpcnN0IGJyZWFrIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uLgorICAgICAq
ICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZm9sbG93aW5n
KGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHBvc2l0aW9uIGJlZm9yZSB0aGUKKyAgICAgKiBz
cGVjaWZpZWQgcG9zaXRpb24uCisgICAgICogQHBhcmFtIG9mZnNldCBUaGUgcG9zaXRpb24gdG8g
YmVnaW4gc2VhcmNoaW5nIGZvciBhIGJyZWFrIGZyb20uCisgICAgICogQHJldHVybiBUaGUgcG9z
aXRpb24gb2YgdGhlIGxhc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzdGFydGluZyBwb3NpdGlvbi4K
KyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IHBy
ZWNlZGluZyhpbnQzMl90IG9mZnNldCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUg
aWYgdGhlIHNwZWNmaWVkIHBvc2l0aW9uIGlzIGEgYm91bmRhcnkgcG9zaXRpb24uICBBcyBhIHNp
ZGUKKyAgICAgKiBlZmZlY3QsIGxlYXZlcyB0aGUgaXRlcmF0b3IgcG9pbnRpbmcgdG8gdGhlIGZp
cnN0IGJvdW5kYXJ5IHBvc2l0aW9uIGF0CisgICAgICogb3IgYWZ0ZXIgIm9mZnNldCIuCisgICAg
ICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IHRvIGNoZWNrLgorICAgICAqIEByZXR1cm4gVHJ1
ZSBpZiAib2Zmc2V0IiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqICBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIGlzQm91bmRhcnkoaW50MzJfdCBvZmZz
ZXQpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY3VycmVudCBpdGVyYXRpb24gcG9z
aXRpb24uCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBpdGVyYXRpb24gcG9zaXRpb24uCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGN1cnJl
bnQodm9pZCkgY29uc3Q7CisKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc3RhdHVzIHRh
ZyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQor
ICAgICAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLiAgRm9yIGJyZWFrIHJ1bGVzIHRoYXQgZG8g
bm90IHNwZWNpZnkgYQorICAgICAqIHN0YXR1cywgYSBkZWZhdWx0IHZhbHVlIG9mIDAgaXMgcmV0
dXJuZWQuICBJZiBtb3JlIHRoYW4gb25lIGJyZWFrIHJ1bGUKKyAgICAgKiB3b3VsZCBjYXVzZSBh
IGJvdW5kYXJ5IHRvIGJlIGxvY2F0ZWQgYXQgc29tZSBwb3NpdGlvbiBpbiB0aGUgdGV4dCwKKyAg
ICAgKiB0aGUgbnVtZXJpY2FsbHkgbGFyZ2VzdCBvZiB0aGUgYXBwbGljYWJsZSBzdGF0dXMgdmFs
dWVzIGlzIHJldHVybmVkLgorICAgICAqIDxwPgorICAgICAqIE9mIHRoZSBzdGFuZGFyZCB0eXBl
cyBvZiBJQ1UgYnJlYWsgaXRlcmF0b3JzLCBvbmx5IHdvcmQgYnJlYWsgYW5kCisgICAgICogbGlu
ZSBicmVhayBwcm92aWRlIHN0YXR1cyB2YWx1ZXMuICBUaGUgdmFsdWVzIGFyZSBkZWZpbmVkIGlu
CisgICAgICogdGhlIGhlYWRlciBmaWxlIHVicmsuaC4gIEZvciBXb3JkIGJyZWFrcywgdGhlIHN0
YXR1cyBhbGxvd3MgZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbiB3b3JkcworICAgICAqIHRoYXQgY29u
dGFpbiBhbHBoYWJldGljIGxldHRlcnMsICJ3b3JkcyIgdGhhdCBhcHBlYXIgdG8gYmUgbnVtYmVy
cywKKyAgICAgKiBwdW5jdHVhdGlvbiBhbmQgc3BhY2VzLCB3b3JkcyBjb250YWluaW5nIGlkZW9n
cmFwaGljIGNoYXJhY3RlcnMsIGFuZAorICAgICAqIG1vcmUuICBGb3IgTGluZSBCcmVhaywgdGhl
IHN0YXR1cyBkaXN0aW5ndWlzaGVzIGJldHdlZW4gaGFyZCAobWFuZGF0b3J5KSBicmVha3MKKyAg
ICAgKiBhbmQgc29mdCAocG90ZW50aWFsKSBicmVhayBwb3NpdGlvbnMuCisgICAgICogPHA+Cisg
ICAgICogPGNvZGU+Z2V0UnVsZVN0YXR1cygpPC9jb2RlPiBjYW4gYmUgY2FsbGVkIGFmdGVyIG9i
dGFpbmluZyBhIGJvdW5kYXJ5CisgICAgICogcG9zaXRpb24gZnJvbSA8Y29kZT5uZXh0KCk8L2Nv
ZGU+LCA8Y29kZT5wcmV2aW91cygpPC9jb2RlPiwgb3IKKyAgICAgKiBhbnkgb3RoZXIgYnJlYWsg
aXRlcmF0b3IgZnVuY3Rpb25zIHRoYXQgcmV0dXJucyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAg
ICAqIDxwPgorICAgICAqIFdoZW4gY3JlYXRpbmcgY3VzdG9tIGJyZWFrIHJ1bGVzLCBvbmUgaXMg
ZnJlZSB0byBkZWZpbmUgd2hhdGV2ZXIKKyAgICAgKiBzdGF0dXMgdmFsdWVzIG1heSBiZSBjb252
ZW5pZW50IGZvciB0aGUgYXBwbGljYXRpb24uCisgICAgICogPHA+CisgICAgICogTm90ZTogdGhp
cyBmdW5jdGlvbiBpcyBub3QgdGhyZWFkIHNhZmUuICBJdCBzaG91bGQgbm90IGhhdmUgYmVlbgor
ICAgICAqICAgICAgIGRlY2xhcmVkIGNvbnN0LCBhbmQgdGhlIGNvbnN0IHJlbWFpbnMgb25seSBm
b3IgY29tcGF0aWJpbGl0eQorICAgICAqICAgICAgIHJlYXNvbnMuICAoVGhlIGZ1bmN0aW9uIGlz
IGxvZ2ljYWxseSBjb25zdCwgYnV0IG5vdCBiaXQtd2lzZSBjb25zdCkuCisgICAgICogPHA+Cisg
ICAgICogQHJldHVybiB0aGUgc3RhdHVzIGZyb20gdGhlIGJyZWFrIHJ1bGUgdGhhdCBkZXRlcm1p
bmVkIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICogcmV0dXJuZWQgYnJlYWsgcG9zaXRpb24uCisg
ICAgICoKKyAgICAgKiBAc2VlIFVXb3JkQnJlYWsKKyAgICAgKiBAc3RhYmxlIElDVSAyLjIKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0YXR1cygpIGNvbnN0OworCisgICAv
KioKKyAgICAqIEdldCB0aGUgc3RhdHVzICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxl
KHMpIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdAorICAgICogcmVjZW50bHkgcmV0dXJuZWQgYnJl
YWsgcG9zaXRpb24uCisgICAgKiA8cD4KKyAgICAqIFRoZSByZXR1cm5lZCBzdGF0dXMgdmFsdWUo
cykgYXJlIHN0b3JlZCBpbnRvIGFuIGFycmF5IHByb3ZpZGVkIGJ5IHRoZSBjYWxsZXIuCisgICAg
KiBUaGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gc29ydGVkIChhc2NlbmRpbmcpIG9yZGVyLgorICAg
ICogSWYgdGhlIGNhcGFjaXR5IG9mIHRoZSBvdXRwdXQgYXJyYXkgaXMgaW5zdWZmaWNpZW50IHRv
IGhvbGQgdGhlIGRhdGEsCisgICAgKiAgdGhlIG91dHB1dCB3aWxsIGJlIHRydW5jYXRlZCB0byB0
aGUgYXZhaWxhYmxlIGxlbmd0aCwgYW5kIGEKKyAgICAqICBVX0JVRkZFUl9PVkVSRkxPV19FUlJP
UiB3aWxsIGJlIHNpZ25hbGVkLgorICAgICoKKyAgICAqIEBwYXJhbSBmaWxsSW5WZWMgYW4gYXJy
YXkgdG8gYmUgZmlsbGVkIGluIHdpdGggdGhlIHN0YXR1cyB2YWx1ZXMuCisgICAgKiBAcGFyYW0g
Y2FwYWNpdHkgIHRoZSBsZW5ndGggb2YgdGhlIHN1cHBsaWVkIHZlY3Rvci4gIEEgbGVuZ3RoIG9m
IHplcm8gY2F1c2VzCisgICAgKiAgICAgICAgICAgICAgICAgIHRoZSBmdW5jdGlvbiB0byByZXR1
cm4gdGhlIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzLCBpbiB0aGUKKyAgICAqICAgICAgICAgICAg
ICAgICAgbm9ybWFsIHdheSwgd2l0aG91dCBhdHRlbXRwaW5nIHRvIHN0b3JlIGFueSB2YWx1ZXMu
CisgICAgKiBAcGFyYW0gc3RhdHVzICAgIHJlY2VpdmVzIGVycm9yIGNvZGVzLgorICAgICogQHJl
dHVybiAgICAgICAgICBUaGUgbnVtYmVyIG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1bGVz
IHRoYXQgZGV0ZXJtaW5lZAorICAgICogICAgICAgICAgICAgICAgICB0aGUgbW9zdCByZWNlbnQg
Ym91bmRhcnkgcmV0dXJuZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICogICAgICAgICAg
ICAgICAgICBJbiB0aGUgZXZlbnQgb2YgYSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdGhlIHJl
dHVybiB2YWx1ZQorICAgICogICAgICAgICAgICAgICAgICBpcyB0aGUgdG90YWwgbnVtYmVyIG9m
IHN0YXR1cyB2YWx1ZXMgdGhhdCB3ZXJlIGF2YWlsYWJsZSwKKyAgICAqICAgICAgICAgICAgICAg
ICAgbm90IHRoZSByZWR1Y2VkIG51bWJlciB0aGF0IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQuCisg
ICAgKiBAc2VlIGdldFJ1bGVTdGF0dXMKKyAgICAqIEBzdGFibGUgSUNVIDMuMAorICAgICovCisg
ICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXNWZWMoaW50MzJfdCAqZmlsbEluVmVjLCBp
bnQzMl90IGNhcGFjaXR5LCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICog
UmV0dXJucyBhIHVuaXF1ZSBjbGFzcyBJRCBQT0xZTU9SUEhJQ0FMTFkuICBQdXJlIHZpcnR1YWwg
b3ZlcnJpZGUuCisgICAgICogVGhpcyBtZXRob2QgaXMgdG8gaW1wbGVtZW50IGEgc2ltcGxlIHZl
cnNpb24gb2YgUlRUSSwgc2luY2Ugbm90IGFsbAorICAgICAqIEMrKyBjb21waWxlcnMgc3VwcG9y
dCBnZW51aW5lIFJUVEkuICBQb2x5bW9ycGhpYyBvcGVyYXRvcj09KCkgYW5kCisgICAgICogY2xv
bmUoKSBtZXRob2RzIGNhbGwgdGhpcyBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAg
ICAgICAgIFRoZSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuIEFsbCBvYmplY3RzIG9mIGEKKyAg
ICAgKiAgICAgICAgICAgICAgICAgIGdpdmVuIGNsYXNzIGhhdmUgdGhlIHNhbWUgY2xhc3MgSUQu
ICBPYmplY3RzIG9mCisgICAgICogICAgICAgICAgICAgICAgICBvdGhlciBjbGFzc2VzIGhhdmUg
ZGlmZmVyZW50IGNsYXNzIElEcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCisgICAg
LyoqCisgICAgICogUmV0dXJucyB0aGUgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MuICBUaGlzIGlz
IHVzZWZ1bCBvbmx5IGZvcgorICAgICAqIGNvbXBhcmluZyB0byBhIHJldHVybiB2YWx1ZSBmcm9t
IGdldER5bmFtaWNDbGFzc0lEKCkuICBGb3IgZXhhbXBsZToKKyAgICAgKgorICAgICAqICAgICAg
QmFzZSogcG9seW1vcnBoaWNfcG9pbnRlciA9IGNyZWF0ZVBvbHltb3JwaGljT2JqZWN0KCk7Cisg
ICAgICogICAgICBpZiAocG9seW1vcnBoaWNfcG9pbnRlci0+Z2V0RHluYW1pY0NsYXNzSUQoKSA9
PQorICAgICAqICAgICAgICAgIERlcml2ZWQ6OmdldFN0YXRpY0NsYXNzSUQoKSkgLi4uCisgICAg
ICoKKyAgICAgKiBAcmV0dXJuICAgICAgICAgIFRoZSBjbGFzcyBJRCBmb3IgYWxsIG9iamVjdHMg
b2YgdGhpcyBjbGFzcy4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0
aWMgVUNsYXNzSUQgVV9FWFBPUlQyIGdldFN0YXRpY0NsYXNzSUQodm9pZCk7CisKKyAgICAvKioK
KyAgICAgKiBEZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisg
ICAgICoKKyAgICAgKiBDcmVhdGUgYSBjbG9uZSAoY29weSkgb2YgdGhpcyBicmVhayBpdGVyYXRv
ciBpbiBtZW1vcnkgcHJvdmlkZWQKKyAgICAgKiAgYnkgdGhlIGNhbGxlci4gIFRoZSBpZGVhIGlz
IHRvIGluY3JlYXNlIHBlcmZvcm1hbmNlIGJ5IGF2b2lkaW5nCisgICAgICogIGEgc3RvcmFnZSBh
bGxvY2F0aW9uLiAgVXNlIG9mIHRoaXMgZnVuY3RvaW4gaXMgTk9UIFJFQ09NTUVOREVELgorICAg
ICAqICBQZXJmb3JtYW5jZSBnYWlucyBhcmUgbWluaW1hbCwgYW5kIGNvcnJlY3QgYnVmZmVyIG1h
bmFnZW1lbnQgaXMKKyAgICAgKiAgdHJpY2t5LiAgVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAg
KgorICAgICAqIEBwYXJhbSBzdGFja0J1ZmZlciAgVGhlIHBvaW50ZXIgdG8gdGhlIG1lbW9yeSBp
bnRvIHdoaWNoIHRoZSBjbG9uZWQgb2JqZWN0CisgICAgICogICAgICAgICAgICAgICAgICAgICBz
aG91bGQgYmUgcGxhY2VkLiAgSWYgTlVMTCwgIGFsbG9jYXRlIGhlYXAgbWVtb3J5CisgICAgICog
ICAgICAgICAgICAgICAgICAgICBmb3IgdGhlIGNsb25lZCBvYmplY3QuCisgICAgICogQHBhcmFt
IEJ1ZmZlclNpemUgICBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyLiAgSWYgemVybywgcmV0dXJuIHRo
ZSByZXF1aXJlZAorICAgICAqICAgICAgICAgICAgICAgICAgICAgYnVmZmVyIHNpemUsIGJ1dCBk
byBub3QgY2xvbmUgdGhlIG9iamVjdC4gIElmIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAg
ICAgc2l6ZSB3YXMgdG9vIHNtYWxsIChidXQgbm90IHplcm8pLCBhbGxvY2F0ZSBoZWFwCisgICAg
ICogICAgICAgICAgICAgICAgICAgICBzdG9yYWdlIGZvciB0aGUgY2xvbmVkIG9iamVjdC4KKyAg
ICAgKgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgICAgRXJyb3Igc3RhdHVzLiAgVV9TQUZFQ0xP
TkVfQUxMT0NBVEVEX1dBUk5JTkcgd2lsbCBiZQorICAgICAqICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuZWQgaWYgdGhlIHRoZSBwcm92aWRlZCBidWZmZXIgd2FzIHRvbyBzbWFsbCwgYW5kCisg
ICAgICogICAgICAgICAgICAgICAgICAgICB0aGUgY2xvbmUgd2FzIHRoZXJlZm9yZSBwdXQgb24g
dGhlIGhlYXAuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICBQb2ludGVyIHRvIHRoZSBjbG9uZSBv
YmplY3QuICBUaGlzIG1heSBkaWZmZXIgZnJvbSB0aGUgc3RhY2tCdWZmZXIKKyAgICAgKiAgICAg
ICAgICBhZGRyZXNzIGlmIHRoZSBieXRlIGFsaWdubWVudCBvZiB0aGUgc3RhY2sgYnVmZmVyIHdh
cyBub3Qgc3VpdGFibGUKKyAgICAgKiAgICAgICAgICBvciBpZiB0aGUgc3RhY2tCdWZmZXIgd2Fz
IHRvbyBzbWFsbCB0byBob2xkIHRoZSBjbG9uZS4KKyAgICAgKiBAZGVwcmVjYXRlZCBJQ1UgNTIu
IFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9y
ICogIGNyZWF0ZUJ1ZmZlckNsb25lKHZvaWQgKnN0YWNrQnVmZmVyLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICZCdWZmZXJTaXplLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICZz
dGF0dXMpOworCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGJpbmFyeSBmb3JtIG9mIGNv
bXBpbGVkIGJyZWFrIHJ1bGVzLAorICAgICAqIHdoaWNoIGNhbiB0aGVuIGJlIHVzZWQgdG8gY3Jl
YXRlIGEgbmV3IGJyZWFrIGl0ZXJhdG9yIGF0IHNvbWUKKyAgICAgKiB0aW1lIGluIHRoZSBmdXR1
cmUuICBDcmVhdGluZyBhIGJyZWFrIGl0ZXJhdG9yIGZyb20gcHJlLWNvbXBpbGVkIHJ1bGVzCisg
ICAgICogaXMgbXVjaCBmYXN0ZXIgdGhhbiBidWlsZGluZyBvbmUgZnJvbSB0aGUgc291cmNlIGZv
cm0gb2YgdGhlCisgICAgICogYnJlYWsgcnVsZXMuCisgICAgICoKKyAgICAgKiBUaGUgYmluYXJ5
IGRhdGEgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIHRoZSBzYW1lIHZlcnNpb24gb2YgSUNVCisgICAg
ICogIGFuZCBvbiB0aGUgc2FtZSBwbGF0Zm9ybSB0eXBlIChwcm9jZXNzb3IgZW5kaWFuLW5lc3Mp
CisgICAgICoKKyAgICAgKiBAcGFyYW0gbGVuZ3RoIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUg
YmluYXJ5IGRhdGEuICAoT3V0IHBhcmFtdGVyLikKKyAgICAgKgorICAgICAqIEByZXR1cm4gICBB
IHBvaW50ZXIgdG8gdGhlIGJpbmFyeSAoY29tcGlsZWQpIHJ1bGUgZGF0YS4gIFRoZSBzdG9yYWdl
CisgICAgICogICAgICAgICAgIGJlbG9uZ3MgdG8gdGhlIFJ1bGVzQmFzZWRCcmVha0l0ZXJhdG9y
IG9iamVjdCwgbm90IHRoZQorICAgICAqICAgICAgICAgICBjYWxsZXIsIGFuZCBtdXN0IG5vdCBi
ZSBtb2RpZmllZCBvciBkZWxldGVkLgorICAgICAqIEBzdGFibGUgSUNVIDQuOAorICAgICAqLwor
ICAgIHZpcnR1YWwgY29uc3QgdWludDhfdCAqZ2V0QmluYXJ5UnVsZXModWludDMyX3QgJmxlbmd0
aCk7CisKKyAgICAvKioKKyAgICAgKiAgU2V0IHRoZSBzdWJqZWN0IHRleHQgc3RyaW5nIHVwb24g
d2hpY2ggdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9wZXJhdGluZworICAgICAqICB3aXRob3V0IGNo
YW5naW5nIGFueSBvdGhlciBhc3BlY3Qgb2YgdGhlIG1hdGNoaW5nIHN0YXRlLgorICAgICAqICBU
aGUgbmV3IGFuZCBwcmV2aW91cyB0ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbnRl
bnQuCisgICAgICoKKyAgICAgKiAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGlu
IGVudmlyb25tZW50cyB3aGVyZSBJQ1UgaXMgb3BlcmF0aW5nIG9uCisgICAgICogIHN0cmluZ3Mg
dGhhdCBtYXkgbW92ZSBhcm91bmQgaW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNoYW5pc20g
Zm9yIG5vdGlmeWluZworICAgICAqICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVuIHJlbG9j
YXRlZCwgYW5kIHByb3ZpZGluZyBhIG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICAgICogIHN0
cmluZyBpbiBpdHMgbmV3IHBvc2l0aW9uLgorICAgICAqCisgICAgICogIE5vdGUgdGhhdCB0aGUg
YnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24gbmV2ZXIgY29waWVzIHRoZSB1bmRlcmx5aW5n
IHRleHQKKyAgICAgKiAgb2YgYSBzdHJpbmcgYmVpbmcgcHJvY2Vzc2VkLCBidXQgYWx3YXlzIG9w
ZXJhdGVzIGRpcmVjdGx5IG9uIHRoZSBvcmlnaW5hbCB0ZXh0CisgICAgICogIHByb3ZpZGVkIGJ5
IHRoZSB1c2VyLiBSZWZyZXNoaW5nIHNpbXBseSBkcm9wcyB0aGUgcmVmZXJlbmNlcyB0byB0aGUg
b2xkIHRleHQKKyAgICAgKiAgYW5kIHJlcGxhY2VzIHRoZW0gd2l0aCByZWZlcmVuY2VzIHRvIHRo
ZSBuZXcuCisgICAgICoKKyAgICAgKiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rpb24gaXMgbm9ybWFs
bHkgdXNlZCBvbmx5IGJ5IHZlcnkgc3BlY2lhbGl6ZWQsCisgICAgICogIHN5c3RlbS1sZXZlbCBj
b2RlLiAgT25lIGV4YW1wbGUgdXNlIGNhc2UgaXMgd2l0aCBnYXJiYWdlIGNvbGxlY3Rpb24gdGhh
dCBtb3ZlcworICAgICAqICB0aGUgdGV4dCBpbiBtZW1vcnkuCisgICAgICoKKyAgICAgKiBAcGFy
YW0gaW5wdXQgICAgICBUaGUgbmV3IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisgICAgICogQHBhcmFt
IHN0YXR1cyAgICAgUmVjZWl2ZXMgZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCisg
ICAgICogQHJldHVybiAgICAgICAgICAgKnRoaXMKKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNV
IDQ5CisgICAgICovCisgICAgdmlydHVhbCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yICZyZWZyZXNo
SW5wdXRUZXh0KFVUZXh0ICppbnB1dCwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworCitwcm90ZWN0
ZWQ6CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIC8vIGltcGxlbWVudGF0aW9uCisgICAgLy89
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorICAgIC8qKgorICAgICAqIER1bXBzIGNhY2hlcyBhbmQgcGVyZm9ybXMg
b3RoZXIgYWN0aW9ucyBhc3NvY2lhdGVkIHdpdGggYSBjb21wbGV0ZSBjaGFuZ2UKKyAgICAgKiBp
biB0ZXh0IG9yIGl0ZXJhdGlvbiBwb3NpdGlvbi4KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8K
KyAgICB2aXJ0dWFsIHZvaWQgcmVzZXQodm9pZCk7CisKKyNpZiAwCisgICAgLyoqCisgICAgICAq
IFJldHVybiB0cnVlIGlmIHRoZSBjYXRlZ29yeSBsb29rdXAgZm9yIHRoaXMgY2hhcgorICAgICAg
KiBpbmRpY2F0ZXMgdGhhdCBpdCBpcyBpbiB0aGUgc2V0IG9mIGRpY3Rpb25hcnkgbG9va3VwIGNo
YXJzLgorICAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciB1c2UgYnkgZGljdGlv
bmFyeSBiYXNlZCBicmVhayBpdGVyYXRvcnMuCisgICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUg
Y2F0ZWdvcnkgbG9va3VwIGZvciB0aGlzIGNoYXIKKyAgICAgICogaW5kaWNhdGVzIHRoYXQgaXQg
aXMgaW4gdGhlIHNldCBvZiBkaWN0aW9uYXJ5IGxvb2t1cCBjaGFycy4KKyAgICAgICogQGludGVy
bmFsCisgICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgaXNEaWN0aW9uYXJ5Q2hhcihVQ2hhcjMy
KTsKKworICAgIC8qKgorICAgICAgKiBHZXQgdGhlIHR5cGUgb2YgdGhlIGJyZWFrIGl0ZXJhdG9y
LgorICAgICAgKiBAaW50ZXJuYWwKKyAgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldEJy
ZWFrVHlwZSgpIGNvbnN0OworI2VuZGlmCisKKyAgICAvKioKKyAgICAgICogU2V0IHRoZSB0eXBl
IG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAg
IHZpcnR1YWwgdm9pZCBzZXRCcmVha1R5cGUoaW50MzJfdCB0eXBlKTsKKworI2lmbmRlZiBVX0hJ
REVfSU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICAqIENvbW1vbiBpbml0aWFsaXphdGlvbiBm
dW5jdGlvbiwgdXNlZCBieSBjb25zdHJ1Y3RvcnMgYW5kIGJ1ZmZlckNsb25lLgorICAgICAgKiBA
aW50ZXJuYWwKKyAgICAgICovCisgICAgdm9pZCBpbml0KCk7CisjZW5kaWYgIC8qIFVfSElERV9J
TlRFUk5BTF9BUEkgKi8KKworcHJpdmF0ZToKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9k
IGJhY2tzIHRoZSBpdGVyYXRvciBiYWNrIHVwIHRvIGEgInNhZmUgcG9zaXRpb24iIGluIHRoZSB0
ZXh0LgorICAgICAqIFRoaXMgaXMgYSBwb3NpdGlvbiB0aGF0IHdlIGtub3csIHdpdGhvdXQgYW55
IGNvbnRleHQsIG11c3QgYmUgYSBicmVhayBwb3NpdGlvbi4KKyAgICAgKiBUaGUgdmFyaW91cyBj
YWxsaW5nIG1ldGhvZHMgdGhlbiBpdGVyYXRlIGZvcndhcmQgZnJvbSB0aGlzIHNhZmUgcG9zaXRp
b24gdG8KKyAgICAgKiB0aGUgYXBwcm9wcmlhdGUgcG9zaXRpb24gdG8gcmV0dXJuLiAgKEZvciBt
b3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIGRlc2NyaXB0aW9uCisgICAgICogb2YgYnVpbGRCYWNr
d2FyZHNTdGF0ZVRhYmxlKCkgaW4gUnVsZUJhc2VkQnJlYWtJdGVyYXRvci5CdWlsZGVyLikKKyAg
ICAgKiBAcGFyYW0gc3RhdGV0YWJsZSBzdGF0ZSB0YWJsZSB1c2VkIG9mIG1vdmluZyBiYWNrd2Fy
ZHMKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGhhbmRsZVByZXZpb3Vz
KGNvbnN0IFJCQklTdGF0ZVRhYmxlICpzdGF0ZXRhYmxlKTsKKworICAgIC8qKgorICAgICAqIFRo
aXMgbWV0aG9kIGlzIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIG5leHQoKSBtZXRo
b2QuICBBbGwgaXRlcmF0aW9uCisgICAgICogdmVjdG9ycyB0aHJvdWdoIGhlcmUuICBUaGlzIG1l
dGhvZCBpbml0aWFsaXplcyB0aGUgc3RhdGUgbWFjaGluZSB0byBzdGF0ZSAxCisgICAgICogYW5k
IGFkdmFuY2VzIHRocm91Z2ggdGhlIHRleHQgY2hhcmFjdGVyIGJ5IGNoYXJhY3RlciB1bnRpbCB3
ZSByZWFjaCB0aGUgZW5kCisgICAgICogb2YgdGhlIHRleHQgb3IgdGhlIHN0YXRlIG1hY2hpbmUg
dHJhbnNpdGlvbnMgdG8gc3RhdGUgMC4gIFdlIHVwZGF0ZSBvdXIgcmV0dXJuCisgICAgICogdmFs
dWUgZXZlcnkgdGltZSB0aGUgc3RhdGUgbWFjaGluZSBwYXNzZXMgdGhyb3VnaCBhIHBvc3NpYmxl
IGVuZCBzdGF0ZS4KKyAgICAgKiBAcGFyYW0gc3RhdGV0YWJsZSBzdGF0ZSB0YWJsZSB1c2VkIG9m
IG1vdmluZyBmb3J3YXJkcworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3Qg
aGFuZGxlTmV4dChjb25zdCBSQkJJU3RhdGVUYWJsZSAqc3RhdGV0YWJsZSk7CisKK3Byb3RlY3Rl
ZDoKKworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLyoqCisgICAgICogVGhpcyBp
cyB0aGUgZnVuY3Rpb24gdGhhdCBhY3R1YWxseSBpbXBsZW1lbnRzIGRpY3Rpb25hcnktYmFzZWQK
KyAgICAgKiBicmVha2luZy4gIENvdmVyaW5nIGF0IGxlYXN0IHRoZSByYW5nZSBmcm9tIHN0YXJ0
UG9zIHRvIGVuZFBvcywKKyAgICAgKiBpdCBjaGVja3MgZm9yIGRpY3Rpb25hcnkgY2hhcmFjdGVy
cywgYW5kIGlmIGl0IGZpbmRzIHRoZW0gZGV0ZXJtaW5lcworICAgICAqIHRoZSBhcHByb3ByaWF0
ZSBvYmplY3QgdG8gZGVhbCB3aXRoIHRoZW0uIEl0IG1heSBjYWNoZSBmb3VuZCBicmVha3MgaW4K
KyAgICAgKiBmQ2FjaGVkQnJlYWtQb3NpdGlvbnMgYXMgaXQgZ29lcy4gSXQgbWF5IHdlbGwgYWxz
byBsb29rIGF0IHRleHQgb3V0c2lkZQorICAgICAqIHRoZSByYW5nZSBzdGFydFBvcyB0byBlbmRQ
b3MuCisgICAgICogSWYgZ29pbmcgZm9yd2FyZCwgZW5kUG9zIGlzIHRoZSBub3JtYWwgVW5pY29k
ZSBicmVhayByZXN1bHQsIGFuZAorICAgICAqIGlmIGdvaW5kIGluIHJldmVyc2UsIHN0YXJ0UG9z
IGlzIHRoZSBub3JtYWwgVW5pY29kZSBicmVhayByZXN1bHQKKyAgICAgKiBAcGFyYW0gc3RhcnRQ
b3MgIFRoZSBzdGFydCBwb3NpdGlvbiBvZiBhIHJhbmdlIG9mIHRleHQKKyAgICAgKiBAcGFyYW0g
ZW5kUG9zICAgIFRoZSBlbmQgcG9zaXRpb24gb2YgYSByYW5nZSBvZiB0ZXh0CisgICAgICogQHBh
cmFtIHJldmVyc2UgICBUaGUgY2FsbCBpcyBmb3IgdGhlIHJldmVyc2UgZGlyZWN0aW9uCisgICAg
ICogQGludGVybmFsCisgICAgICovCisgICAgaW50MzJfdCBjaGVja0RpY3Rpb25hcnkoaW50MzJf
dCBzdGFydFBvcywgaW50MzJfdCBlbmRQb3MsIFVCb29sIHJldmVyc2UpOworI2VuZGlmICAvKiBV
X0hJREVfSU5URVJOQUxfQVBJICovCisKK3ByaXZhdGU6CisKKyAgICAvKioKKyAgICAgKiBUaGlz
IGZ1bmN0aW9uIHJldHVybnMgdGhlIGFwcHJvcHJpYXRlIExhbmd1YWdlQnJlYWtFbmdpbmUgZm9y
IGEKKyAgICAgKiBnaXZlbiBjaGFyYWN0ZXIgYy4KKyAgICAgKiBAcGFyYW0gYyAgICAgICAgIEEg
Y2hhcmFjdGVyIGluIHRoZSBkaWN0aW9uYXJ5IHNldAorICAgICAqIEBpbnRlcm5hbAorICAgICAq
LworICAgIGNvbnN0IExhbmd1YWdlQnJlYWtFbmdpbmUgKmdldExhbmd1YWdlQnJlYWtFbmdpbmUo
VUNoYXIzMiBjKTsKKworICAgIC8qKgorICAgICAqICBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICB2
b2lkIG1ha2VSdWxlU3RhdHVzVmFsaWQoKTsKKworfTsKKworLy8tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKy8vCisvLyAgIElubGluZSBGdW5jdGlvbnMgRGVmaW5pdGlvbnMgLi4uCisvLworLy8tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworaW5saW5lIFVCb29sIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I6
Om9wZXJhdG9yIT0oY29uc3QgQnJlYWtJdGVyYXRvciYgdGhhdCkgY29uc3QgeworICAgIHJldHVy
biAhb3BlcmF0b3I9PSh0aGF0KTsKK30KKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZiAvKiAj
aWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9zY2hyaXRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwYjVlMjI1MDNjZmYyNjFkMmNkMjQwZmYxMjAwN2Y5
MzdmNzgzYjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3NjaHJp
dGVyLmgKQEAgLTAsMCArMSwxODcgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyog
ICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5l
cworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGUgc2Nocml0ZXIuaAorKgorKiBNb2RpZmlj
YXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlv
bgorKiAgMDUvMDUvOTkgICAgIHN0ZXBoZW4gICAgIENsZWFuZWQgdXAuCisqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyovCisKKyNpZm5kZWYgU0NIUklURVJfSAorI2RlZmluZSBTQ0hSSVRFUl9ICisK
KyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvY2hhcml0ZXIu
aCIKKyNpbmNsdWRlICJ1bmljb2RlL3VjaHJpdGVyLmgiCisKKy8qKgorICogXGZpbGUgCisgKiBc
YnJpZWYgQysrIEFQSTogU3RyaW5nIENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVT
UEFDRV9CRUdJTgorLyoqCisgKiBBIGNvbmNyZXRlIHN1YmNsYXNzIG9mIENoYXJhY3Rlckl0ZXJh
dG9yIHRoYXQgaXRlcmF0ZXMgb3ZlciB0aGUKKyAqIGNoYXJhY3RlcnMgKGNvZGUgdW5pdHMgb3Ig
Y29kZSBwb2ludHMpIGluIGEgVW5pY29kZVN0cmluZy4KKyAqIEl0J3MgcG9zc2libGUgbm90IG9u
bHkgdG8gY3JlYXRlIGFuCisgKiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgYW4gZW50aXJl
IFVuaWNvZGVTdHJpbmcsIGJ1dCBhbHNvIHRvCisgKiBjcmVhdGUgb25lIHRoYXQgaXRlcmF0ZXMg
b3ZlciBvbmx5IGEgc3VicmFuZ2Ugb2YgYSBVbmljb2RlU3RyaW5nCisgKiAoaXRlcmF0b3JzIG92
ZXIgZGlmZmVyZW50IHN1YnJhbmdlcyBvZiB0aGUgc2FtZSBVbmljb2RlU3RyaW5nIGRvbid0Cisg
KiBjb21wYXJlIGVxdWFsKS4KKyAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzZWUgRm9y
d2FyZENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9D
T01NT05fQVBJIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yIDogcHVibGljIFVDaGFyQ2hhcmFjdGVy
SXRlcmF0b3IgeworcHVibGljOgorICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIg
dGhlIFVuaWNvZGVTdHJpbmcgcmVmZXJyZWQgdG8gYnkgInRleHRTdHIiLgorICAgKiBUaGUgVW5p
Y29kZVN0cmluZyBvYmplY3QgaXMgY29waWVkLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlz
IHRoZSB3aG9sZSBzdHJpbmcsIGFuZCB0aGUgc3RhcnRpbmcgcG9zaXRpb24gaXMgMC4KKyAgICog
QHBhcmFtIHRleHRTdHIgVGhlIHVuaWNvZGUgc3RyaW5nIHVzZWQgdG8gY3JlYXRlIGFuIGl0ZXJh
dG9yCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0
b3IoY29uc3QgVW5pY29kZVN0cmluZyYgdGV4dFN0cik7CisKKyAgLyoqCisgICAqIENyZWF0ZSBh
biBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJlZmVycmVkIHRvIGJ5ICJ0ZXh0U3Ry
Ii4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyB0aGUgd2hvbGUgc3RyaW5nLCBhbmQgdGhl
IHN0YXJ0aW5nCisgICAqIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAidGV4dFBvcyIuICBJZiAi
dGV4dFBvcyIgaXMgb3V0c2lkZSB0aGUgdmFsaWQKKyAgICogaXRlcmF0aW9uIHJhbmdlLCB0aGUg
YmVoYXZpb3Igb2YgdGhpcyBvYmplY3QgaXMgdW5kZWZpbmVkLgorICAgKiBAcGFyYW0gdGV4dFN0
ciBUaGUgdW5pY29kZSBzdHJpbmcgdXNlZCB0byBjcmVhdGUgYW4gaXRlcmF0b3IKKyAgICogQHBh
cmFtIHRleHRQb3MgVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBV
bmljb2RlU3RyaW5nJiAgICB0ZXh0U3RyLAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAg
ICAgICB0ZXh0UG9zKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhl
IFVuaWNvZGVTdHJpbmcgcmVmZXJyZWQgdG8gYnkgInRleHRTdHIiLgorICAgKiBUaGUgVW5pY29k
ZVN0cmluZyBvYmplY3QgaXMgY29waWVkLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGJlZ2lu
cyB3aXRoIHRoZSBjb2RlIHVuaXQgc3BlY2lmaWVkIGJ5CisgICAqICJ0ZXh0QmVnaW4iIGFuZCBl
bmRzIHdpdGggdGhlIGNvZGUgdW5pdCBCRUZPUkUgdGhlIGNvZGUgdW5pdCBzcGVjZmllZAorICAg
KiBieSAidGV4dEVuZCIuICBUaGUgc3RhcnRpbmcgcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5ICJ0
ZXh0UG9zIi4gIElmCisgICAqICJ0ZXh0QmVnaW4iIGFuZCAidGV4dEVuZCIgZG9uJ3QgZm9ybSBh
IHZhbGlkIHJhbmdlIG9uICJ0ZXh0IiAoaS5lLiwKKyAgICogdGV4dEJlZ2luID49IHRleHRFbmQg
b3IgZWl0aGVyIGlzIG5lZ2F0aXZlIG9yIGdyZWF0ZXIgdGhhbiB0ZXh0LnNpemUoKSksCisgICAq
IG9yICJ0ZXh0UG9zIiBpcyBvdXRzaWRlIHRoZSByYW5nZSBkZWZpbmVkIGJ5ICJ0ZXh0QmVnaW4i
IGFuZCAidGV4dEVuZCIsCisgICAqIHRoZSBiZWhhdmlvciBvZiB0aGlzIGl0ZXJhdG9yIGlzIHVu
ZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRTdHIgICAgVGhlIHVuaWNvZGUgc3RyaW5nIHVzZWQg
dG8gY3JlYXRlIHRoZSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcgorICAgKiBAcGFyYW0gdGV4dEJl
Z2luICBUaGUgYmVnaW4gcG9zaXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFy
YW0gdGV4dEVuZCAgICBUaGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAg
ICogQHBhcmFtIHRleHRQb3MgICAgVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRp
b24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRv
cihjb25zdCBVbmljb2RlU3RyaW5nJiAgICB0ZXh0U3RyLAorICAgICAgICAgICAgICBpbnQzMl90
ICAgICAgICAgICAgICB0ZXh0QmVnaW4sCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAg
ICAgIHRleHRFbmQsCisgICAgICAgICAgICAgIGludDMyX3QgICAgICAgICAgICAgIHRleHRQb3Mp
OworCisgIC8qKgorICAgKiBDb3B5IGNvbnN0cnVjdG9yLiAgVGhlIG5ldyBpdGVyYXRvciBpdGVy
YXRlcyBvdmVyIHRoZSBzYW1lIHJhbmdlCisgICAqIG9mIHRoZSBzYW1lIHN0cmluZyBhcyAidGhh
dCIsIGFuZCBpdHMgaW5pdGlhbCBwb3NpdGlvbiBpcyB0aGUKKyAgICogc2FtZSBhcyAidGhhdCIn
cyBjdXJyZW50IHBvc2l0aW9uLgorICAgKiBUaGUgVW5pY29kZVN0cmluZyBvYmplY3QgaW4gInRo
YXQiIGlzIGNvcGllZC4KKyAgICogQHBhcmFtIHRoYXQgVGhlIFN0cmluZ0NoYXJhY3Rlckl0ZXJh
dG9yIHRvIGJlIGNvcGllZAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFN0cmluZ0No
YXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJiAgdGhhdCk7CisK
KyAgLyoqCisgICAqIERlc3RydWN0b3IuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
dmlydHVhbCB+U3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogQXNzaWdu
bWVudCBvcGVyYXRvci4gICp0aGlzIGlzIGFsdGVyZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBzYW1l
CisgICAqIHJhbmdlIG9mIHRoZSBzYW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCByZWZlcnMgdG8g
dGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIHdpdGhpbiB0aGF0IHN0cmluZyBhcyAidGhhdCIgZG9l
cy4KKyAgICogQHBhcmFtIHRoYXQgVGhlIG9iamVjdCB0byBiZSBjb3BpZWQuCisgICAqIEByZXR1
cm4gdGhlIG5ld2x5IGNyZWF0ZWQgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJgorICBvcGVyYXRvcj0oY29uc3QgU3RyaW5nQ2hh
cmFjdGVySXRlcmF0b3ImICAgIHRoYXQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIHRydWUgaWYg
dGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNh
bWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBA
cGFyYW0gdGhhdCBUaGUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZv
ciBlcXVhbGl0eQorICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRlIG92
ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9pbnRp
bmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgVUJvb2wgICAgICAgICAgb3BlcmF0b3I9PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVy
SXRlcmF0b3ImIHRoYXQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1cm5zIGEgbmV3IFN0cmlu
Z0NoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIg
aW4gdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzIHRoaXMgb25lLiAgVGhlCisg
ICAqIGNhbGxlciBtdXN0IGRlbGV0ZSB0aGUgbmV3IGl0ZXJhdG9yLgorICAgKiBAcmV0dXJuIHRo
ZSBuZXdseSBjbG9uZWQgb2JqZWN0LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZp
cnR1YWwgQ2hhcmFjdGVySXRlcmF0b3IqIGNsb25lKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAg
KiBTZXRzIHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgdGhlIHByb3ZpZGVkIHN0cmluZy4K
KyAgICogQHBhcmFtIG5ld1RleHQgVGhlIHN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVyCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdm9pZCBzZXRUZXh0KGNvbnN0IFVuaWNvZGVTdHJp
bmcmIG5ld1RleHQpOworCisgIC8qKgorICAgKiBDb3BpZXMgdGhlIFVuaWNvZGVTdHJpbmcgdW5k
ZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcKKyAgICogcmVmZXJyZWQgdG8gYnkg
InJlc3VsdCIuICBFdmVuIGlmIHRoaXMgaXRlcmF0b3IgaXRlcmF0ZXMgYWNyb3NzCisgICAqIG9u
bHkgYSBwYXJ0IG9mIHRoaXMgc3RyaW5nLCB0aGUgd2hvbGUgc3RyaW5nIGlzIGNvcGllZC4KKyAg
ICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRleHQgdW5kZXIgaXRlcmF0
aW9uLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgdm9pZCAgICAgICAg
ICAgIGdldFRleHQoVW5pY29kZVN0cmluZyYgcmVzdWx0KTsKKworICAvKioKKyAgICogUmV0dXJu
IGEgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0IChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJl
dHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAqLworICB2aXJ0dWFsIFVDbGFzc0lEICAgICAgICAgZ2V0RHluYW1pY0NsYXNzSUQodm9pZCkg
Y29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNsYXNzIChu
b3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIGNsYXNz
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgc3RhdGljIFVDbGFzc0lEICAgVV9FWFBP
UlQyIGdldFN0YXRpY0NsYXNzSUQodm9pZCk7CisKK3Byb3RlY3RlZDoKKyAgLyoqCisgICAqIERl
ZmF1bHQgY29uc3RydWN0b3IsIGl0ZXJhdGlvbiBvdmVyIGVtcHR5IHN0cmluZy4KKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8q
KgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIgdGhlIHByb3ZpZGVkIHN0
cmluZy4KKyAgICogQHBhcmFtIG5ld1RleHQgVGhlIHN0cmluZyB0byBiZSBpdGVyYXRlZCBvdmVy
CisgICAqIEBwYXJhbSBuZXdUZXh0TGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFN0cmluZworICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZvaWQgc2V0VGV4dChjb25zdCBVQ2hhciogbmV3
VGV4dCwgaW50MzJfdCBuZXdUZXh0TGVuZ3RoKTsKKworICAvKioKKyAgICogQ29weSBvZiB0aGUg
aXRlcmF0ZWQgc3RyaW5nIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBV
bmljb2RlU3RyaW5nICAgICAgICAgICAgdGV4dDsKKworfTsKKworVV9OQU1FU1BBQ0VfRU5ECisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNhc2VtYXAuaCBiL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNhc2VtYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzdlMTY1ODg2OTdm
MWE5MzAxOTFlZTNkZjgxNmM2M2I3YmQzOGMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri9pY3UvdW5pY29kZS91Y2FzZW1hcC5oCkBAIC0wLDAgKzEsNDIzIEBACisvKgorKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMjAwNS0yMDEyLCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1l
OiAgdWNhc2VtYXAuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAg
OCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDIwMDVt
YXkwNgorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqCisqICAgQ2FzZSBtYXBw
aW5nIHNlcnZpY2Ugb2JqZWN0IGFuZCBmdW5jdGlvbnMgdXNpbmcgaXQuCisqLworCisjaWZuZGVm
IF9fVUNBU0VNQVBfSF9fCisjZGVmaW5lIF9fVUNBU0VNQVBfSF9fCisKKyNpbmNsdWRlICJ1bmlj
b2RlL3V0eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXN0cmluZy5oIgorI2luY2x1ZGUgInVu
aWNvZGUvbG9jYWxwb2ludGVyLmgiCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTog
VW5pY29kZSBjYXNlIG1hcHBpbmcgZnVuY3Rpb25zIHVzaW5nIGEgVUNhc2VNYXAgc2VydmljZSBv
YmplY3QuCisgKgorICogVGhlIHNlcnZpY2Ugb2JqZWN0IHRha2VzIGNhcmUgb2YgbWVtb3J5IGFs
bG9jYXRpb25zLCBkYXRhIGxvYWRpbmcsIGFuZCBzZXR1cAorICogZm9yIHRoZSBhdHRyaWJ1dGVz
LCBhcyB1c3VhbC4KKyAqCisgKiBDdXJyZW50bHksIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVk
IGhlcmUgZG9lcyBub3Qgb3ZlcmxhcCB3aXRoIHVjaGFyLmgKKyAqIGFuZCB1c3RyaW5nLmgsIGV4
Y2VwdCBmb3IgdWNhc2VtYXBfdG9UaXRsZSgpLgorICoKKyAqIHVjYXNlbWFwX3V0ZjhYWVooKSBm
dW5jdGlvbnMgb3BlcmF0ZSBkaXJlY3RseSBvbiBVVEYtOCBzdHJpbmdzLgorICovCisKKy8qKgor
ICogVUNhc2VNYXAgaXMgYW4gb3BhcXVlIHNlcnZpY2Ugb2JqZWN0IGZvciBuZXdlciBJQ1UgY2Fz
ZSBtYXBwaW5nIGZ1bmN0aW9ucy4KKyAqIE9sZGVyIGZ1bmN0aW9ucyBkaWQgbm90IHVzZSBhIHNl
cnZpY2Ugb2JqZWN0LgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK3N0cnVjdCBVQ2FzZU1hcDsK
K3R5cGVkZWYgc3RydWN0IFVDYXNlTWFwIFVDYXNlTWFwOyAvKio8IEMgdHlwZWRlZiBmb3Igc3Ry
dWN0IFVDYXNlTWFwLiBAc3RhYmxlIElDVSAzLjQgKi8KKworLyoqCisgKiBPcGVuIGEgVUNhc2VN
YXAgc2VydmljZSBvYmplY3QgZm9yIGEgbG9jYWxlIGFuZCBhIHNldCBvZiBvcHRpb25zLgorICog
VGhlIGxvY2FsZSBJRCBhbmQgb3B0aW9ucyBhcmUgcHJlcHJvY2Vzc2VkIHNvIHRoYXQgZnVuY3Rp
b25zIHVzaW5nIHRoZQorICogc2VydmljZSBvYmplY3QgbmVlZCBub3QgcHJvY2VzcyB0aGVtIGlu
IGVhY2ggY2FsbC4KKyAqCisgKiBAcGFyYW0gbG9jYWxlIElDVSBsb2NhbGUgSUQsIHVzZWQgZm9y
IGxhbmd1YWdlLWRlcGVuZGVudAorICogICAgICAgICAgICAgICB1cHBlci0vbG93ZXItL3RpdGxl
LWNhc2luZyBhY2NvcmRpbmcgdG8gdGhlIFVuaWNvZGUgc3RhbmRhcmQuCisgKiAgICAgICAgICAg
ICAgIFVzdWFsIHNlbWFudGljczogIiI9cm9vdCwgTlVMTD1kZWZhdWx0IGxvY2FsZSwgZXRjLgor
ICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBiaXQgc2V0LCB1c2VkIGZvciBjYXNlIGZvbGRpbmcg
YW5kIHN0cmluZyBjb21wYXJpc29ucy4KKyAqICAgICAgICAgICAgICAgIFNhbWUgZmxhZ3MgYXMg
Zm9yIHVfZm9sZENhc2UoKSwgdV9zdHJGb2xkQ2FzZSgpLAorICogICAgICAgICAgICAgICAgdV9z
dHJDYXNlQ29tcGFyZSgpLCBldGMuCisgKiAgICAgICAgICAgICAgICBVc2UgMCBvciBVX0ZPTERf
Q0FTRV9ERUZBVUxUIGZvciBkZWZhdWx0IGJlaGF2aW9yLgorICogQHBhcmFtIHBFcnJvckNvZGUg
TXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAg
ICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhl
IGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFBvaW50ZXIgdG8gYSBVQ2FzZU1hcCBzZXJ2aWNl
IG9iamVjdCwgaWYgc3VjY2Vzc2Z1bC4KKyAqCisgKiBAc2VlIFVfRk9MRF9DQVNFX0RFRkFVTFQK
KyAqIEBzZWUgVV9GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKKyAqIEBzZWUgVV9USVRMRUNB
U0VfTk9fTE9XRVJDQVNFCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0JSRUFLX0FESlVTVE1FTlQK
KyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSBVQ2FzZU1hcCAqIFVfRVhQT1JUMgor
dWNhc2VtYXBfb3Blbihjb25zdCBjaGFyICpsb2NhbGUsIHVpbnQzMl90IG9wdGlvbnMsIFVFcnJv
ckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENsb3NlIGEgVUNhc2VNYXAgc2VydmljZSBv
YmplY3QuCisgKiBAcGFyYW0gY3NtIE9iamVjdCB0byBiZSBjbG9zZWQuCisgKiBAc3RhYmxlIElD
VSAzLjQKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX2Nsb3NlKFVDYXNl
TWFwICpjc20pOworCisjaWYgVV9TSE9XX0NQTFVTUExVU19BUEkKKworVV9OQU1FU1BBQ0VfQkVH
SU4KKworLyoqCisgKiBcY2xhc3MgTG9jYWxVQ2FzZU1hcFBvaW50ZXIKKyAqICJTbWFydCBwb2lu
dGVyIiBjbGFzcywgY2xvc2VzIGEgVUNhc2VNYXAgdmlhIHVjYXNlbWFwX2Nsb3NlKCkuCisgKiBG
b3IgbW9zdCBtZXRob2RzIHNlZSB0aGUgTG9jYWxQb2ludGVyQmFzZSBiYXNlIGNsYXNzLgorICoK
KyAqIEBzZWUgTG9jYWxQb2ludGVyQmFzZQorICogQHNlZSBMb2NhbFBvaW50ZXIKKyAqIEBzdGFi
bGUgSUNVIDQuNAorICovCitVX0RFRklORV9MT0NBTF9PUEVOX1BPSU5URVIoTG9jYWxVQ2FzZU1h
cFBvaW50ZXIsIFVDYXNlTWFwLCB1Y2FzZW1hcF9jbG9zZSk7CisKK1VfTkFNRVNQQUNFX0VORAor
CisjZW5kaWYKKworLyoqCisgKiBHZXQgdGhlIGxvY2FsZSBJRCB0aGF0IGlzIHVzZWQgZm9yIGxh
bmd1YWdlLWRlcGVuZGVudCBjYXNlIG1hcHBpbmdzLgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBz
ZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1cm4gbG9jYWxlIElECisgKiBAc3RhYmxlIElDVSAzLjQK
KyAqLworVV9TVEFCTEUgY29uc3QgY2hhciAqIFVfRVhQT1JUMgordWNhc2VtYXBfZ2V0TG9jYWxl
KGNvbnN0IFVDYXNlTWFwICpjc20pOworCisvKioKKyAqIEdldCB0aGUgb3B0aW9ucyBiaXQgc2V0
IHRoYXQgaXMgdXNlZCBmb3IgY2FzZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisg
KiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVybiBvcHRpb25z
IGJpdCBzZXQKKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSB1aW50MzJfdCBVX0VY
UE9SVDIKK3VjYXNlbWFwX2dldE9wdGlvbnMoY29uc3QgVUNhc2VNYXAgKmNzbSk7CisKKy8qKgor
ICogU2V0IHRoZSBsb2NhbGUgSUQgdGhhdCBpcyB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQg
Y2FzZSBtYXBwaW5ncy4KKyAqCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0
LgorICogQHBhcmFtIGxvY2FsZSBMb2NhbGUgSUQsIHNlZSB1Y2FzZW1hcF9vcGVuKCkuCisgKiBA
cGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2Rl
IHZhbHVlLAorICogICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBm
YWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX29w
ZW4KKyAqIEBzdGFibGUgSUNVIDMuNAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNh
c2VtYXBfc2V0TG9jYWxlKFVDYXNlTWFwICpjc20sIGNvbnN0IGNoYXIgKmxvY2FsZSwgVUVycm9y
Q29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogU2V0IHRoZSBvcHRpb25zIGJpdCBzZXQgdGhh
dCBpcyB1c2VkIGZvciBjYXNlIGZvbGRpbmcgYW5kIHN0cmluZyBjb21wYXJpc29ucy4KKyAqCisg
KiBAcGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIG9wdGlvbnMg
T3B0aW9ucyBiaXQgc2V0LCBzZWUgdWNhc2VtYXBfb3BlbigpLgorICogQHBhcmFtIHBFcnJvckNv
ZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAg
ICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUg
dGhlIGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF9vcGVuCisgKiBAc3RhYmxl
IElDVSAzLjQKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldE9wdGlv
bnMoVUNhc2VNYXAgKmNzbSwgdWludDMyX3Qgb3B0aW9ucywgVUVycm9yQ29kZSAqcEVycm9yQ29k
ZSk7CisKKy8qKgorICogRG8gbm90IGxvd2VyY2FzZSBub24taW5pdGlhbCBwYXJ0cyBvZiB3b3Jk
cyB3aGVuIHRpdGxlY2FzaW5nLgorICogT3B0aW9uIGJpdCBmb3IgdGl0bGVjYXNpbmcgQVBJcyB0
aGF0IHRha2UgYW4gb3B0aW9ucyBiaXQgc2V0LgorICoKKyAqIEJ5IGRlZmF1bHQsIHRpdGxlY2Fz
aW5nIHdpbGwgdGl0bGVjYXNlIHRoZSBmaXJzdCBjYXNlZCBjaGFyYWN0ZXIKKyAqIG9mIGEgd29y
ZCBhbmQgbG93ZXJjYXNlIGFsbCBvdGhlciBjaGFyYWN0ZXJzLgorICogV2l0aCB0aGlzIG9wdGlv
biwgdGhlIG90aGVyIGNoYXJhY3RlcnMgd2lsbCBub3QgYmUgbW9kaWZpZWQuCisgKgorICogQHNl
ZSB1Y2FzZW1hcF9zZXRPcHRpb25zCisgKiBAc2VlIHVjYXNlbWFwX3RvVGl0bGUKKyAqIEBzZWUg
dWNhc2VtYXBfdXRmOFRvVGl0bGUKKyAqIEBzZWUgVW5pY29kZVN0cmluZzo6dG9UaXRsZQorICog
QHN0YWJsZSBJQ1UgMy44CisgKi8KKyNkZWZpbmUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFIDB4
MTAwCisKKy8qKgorICogRG8gbm90IGFkanVzdCB0aGUgdGl0bGVjYXNpbmcgaW5kZXhlcyBmcm9t
IEJyZWFrSXRlcmF0b3I6Om5leHQoKSBpbmRleGVzOworICogdGl0bGVjYXNlIGV4YWN0bHkgdGhl
IGNoYXJhY3RlcnMgYXQgYnJlYWtzIGZyb20gdGhlIGl0ZXJhdG9yLgorICogT3B0aW9uIGJpdCBm
b3IgdGl0bGVjYXNpbmcgQVBJcyB0aGF0IHRha2UgYW4gb3B0aW9ucyBiaXQgc2V0LgorICoKKyAq
IEJ5IGRlZmF1bHQsIHRpdGxlY2FzaW5nIHdpbGwgdGFrZSBlYWNoIGJyZWFrIGl0ZXJhdG9yIGlu
ZGV4LAorICogYWRqdXN0IGl0IGJ5IGxvb2tpbmcgZm9yIHRoZSBuZXh0IGNhc2VkIGNoYXJhY3Rl
ciwgYW5kIHRpdGxlY2FzZSB0aGF0IG9uZS4KKyAqIE90aGVyIGNoYXJhY3RlcnMgYXJlIGxvd2Vy
Y2FzZWQuCisgKgorICogVGhpcyBmb2xsb3dzIFVuaWNvZGUgNCAmIDUgc2VjdGlvbiAzLjEzIERl
ZmF1bHQgQ2FzZSBPcGVyYXRpb25zOgorICoKKyAqIFIzICB0b1RpdGxlY2FzZShYKTogRmluZCB0
aGUgd29yZCBib3VuZGFyaWVzIGJhc2VkIG9uIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXgKKyAqICMy
OSwgIlRleHQgQm91bmRhcmllcy4iIEJldHdlZW4gZWFjaCBwYWlyIG9mIHdvcmQgYm91bmRhcmll
cywgZmluZCB0aGUgZmlyc3QKKyAqIGNhc2VkIGNoYXJhY3RlciBGLiBJZiBGIGV4aXN0cywgbWFw
IEYgdG8gZGVmYXVsdF90aXRsZShGKTsgdGhlbiBtYXAgZWFjaAorICogc3Vic2VxdWVudCBjaGFy
YWN0ZXIgQyB0byBkZWZhdWx0X2xvd2VyKEMpLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0
aW9ucworICogQHNlZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1Rp
dGxlCisgKiBAc2VlIFVuaWNvZGVTdHJpbmc6OnRvVGl0bGUKKyAqIEBzZWUgVV9USVRMRUNBU0Vf
Tk9fTE9XRVJDQVNFCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworI2RlZmluZSBVX1RJVExFQ0FT
RV9OT19CUkVBS19BREpVU1RNRU5UIDB4MjAwCisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVS
QVRJT04KKworLyoqCisgKiBHZXQgdGhlIGJyZWFrIGl0ZXJhdG9yIHRoYXQgaXMgdXNlZCBmb3Ig
dGl0bGVjYXNpbmcuCisgKiBEbyBub3QgbW9kaWZ5IHRoZSByZXR1cm5lZCBicmVhayBpdGVyYXRv
ci4KKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJuIHRp
dGxlY2FzaW5nIGJyZWFrIGl0ZXJhdG9yCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFC
TEUgY29uc3QgVUJyZWFrSXRlcmF0b3IgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldEJyZWFrSXRl
cmF0b3IoY29uc3QgVUNhc2VNYXAgKmNzbSk7CisKKy8qKgorICogU2V0IHRoZSBicmVhayBpdGVy
YXRvciB0aGF0IGlzIHVzZWQgZm9yIHRpdGxlY2FzaW5nLgorICogVGhlIFVDYXNlTWFwIHNlcnZp
Y2Ugb2JqZWN0IHJlbGVhc2VzIGEgcHJldmlvdXNseSBzZXQgYnJlYWsgaXRlcmF0b3IKKyAqIGFu
ZCAiYWRvcHRzIiB0aGlzIG5ldyBvbmUsIHRha2luZyBvd25lcnNoaXAgb2YgaXQuCisgKiBJdCB3
aWxsIGJlIHJlbGVhc2VkIGluIGEgc3Vic2VxdWVudCBjYWxsIHRvIHVjYXNlbWFwX3NldEJyZWFr
SXRlcmF0b3IoKQorICogb3IgdWNhc2VtYXBfY2xvc2UoKS4KKyAqCisgKiBCcmVhayBpdGVyYXRv
ciBvcGVyYXRpb25zIGFyZSBub3QgdGhyZWFkLXNhZmUuIFRoZXJlZm9yZSwgdGl0bGVjYXNpbmcK
KyAqIGZ1bmN0aW9ucyB1c2Ugbm9uLWNvbnN0IFVDYXNlTWFwIG9iamVjdHMuIEl0IGlzIG5vdCBw
b3NzaWJsZSB0byB0aXRsZWNhc2UKKyAqIHN0cmluZ3MgY29uY3VycmVudGx5IHVzaW5nIHRoZSBz
YW1lIFVDYXNlTWFwLgorICoKKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3Qu
CisgKiBAcGFyYW0gaXRlclRvQWRvcHQgQnJlYWsgaXRlcmF0b3IgdG8gYmUgYWRvcHRlZCBmb3Ig
dGl0bGVjYXNpbmcuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRl
ciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICAgd2hpY2ggbXVz
dCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqCisg
KiBAc2VlIHVjYXNlbWFwX3RvVGl0bGUKKyAqIEBzZWUgdWNhc2VtYXBfdXRmOFRvVGl0bGUKKyAq
IEBzdGFibGUgSUNVIDMuOAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWNhc2VtYXBf
c2V0QnJlYWtJdGVyYXRvcihVQ2FzZU1hcCAqY3NtLCBVQnJlYWtJdGVyYXRvciAqaXRlclRvQWRv
cHQsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIFRpdGxlY2FzZSBhIFVURi0x
NiBzdHJpbmcuIFRoaXMgZnVuY3Rpb24gaXMgYWxtb3N0IGEgZHVwbGljYXRlIG9mIHVfc3RyVG9U
aXRsZSgpLAorICogZXhjZXB0IHRoYXQgaXQgdGFrZXMgdWNhc2VtYXBfc2V0T3B0aW9ucygpIGlu
dG8gYWNjb3VudCBhbmQgaGFzIHBlcmZvcm1hbmNlCisgKiBhZHZhbnRhZ2VzIGZyb20gYmVpbmcg
YWJsZSB0byB1c2UgYSBVQ2FzZU1hcCBvYmplY3QgZm9yIG11bHRpcGxlIGNhc2UgbWFwcGluZwor
ICogb3BlcmF0aW9ucywgc2F2aW5nIHNldHVwIHRpbWUuCisgKgorICogQ2FzaW5nIGlzIGxvY2Fs
ZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGl0bGVjYXNpbmcgdXNlcyBh
IGJyZWFrIGl0ZXJhdG9yIHRvIGZpbmQgdGhlIGZpcnN0IGNoYXJhY3RlcnMgb2Ygd29yZHMKKyAq
IHRoYXQgYXJlIHRvIGJlIHRpdGxlY2FzZWQuIEl0IHRpdGxlY2FzZXMgdGhvc2UgY2hhcmFjdGVy
cyBhbmQgbG93ZXJjYXNlcworICogYWxsIG90aGVycy4gKFRoaXMgY2FuIGJlIG1vZGlmaWVkIHdp
dGggdWNhc2VtYXBfc2V0T3B0aW9ucygpLikKKyAqCisgKiBOb3RlOiBUaGlzIGZ1bmN0aW9uIHRh
a2VzIGEgbm9uLWNvbnN0IFVDYXNlTWFwIHBvaW50ZXIgYmVjYXVzZSBpdCB3aWxsCisgKiBvcGVu
IGEgZGVmYXVsdCBicmVhayBpdGVyYXRvciBpZiBubyBicmVhayBpdGVyYXRvciB3YXMgc2V0IHll
dCwKKyAqIGFuZCBlZmZlY3RpdmVseSBjYWxsIHVjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoKTsK
KyAqIGFsc28gYmVjYXVzZSB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgc3RhdGVmdWwgYW5kIHdpbGwg
YmUgbW9kaWZpZWQgZHVyaW5nCisgKiB0aGUgaXRlcmF0aW9uLgorICoKKyAqIFRoZSB0aXRsZWNh
c2UgYnJlYWsgaXRlcmF0b3IgY2FuIGJlIHByb3ZpZGVkIHRvIGN1c3RvbWl6ZSBmb3IgYXJiaXRy
YXJ5CisgKiBzdHlsZXMsIHVzaW5nIHJ1bGVzIGFuZCBkaWN0aW9uYXJpZXMgYmV5b25kIHRoZSBz
dGFuZGFyZCBpdGVyYXRvcnMuCisgKiBUaGUgc3RhbmRhcmQgdGl0bGVjYXNlIGl0ZXJhdG9yIGZv
ciB0aGUgcm9vdCBsb2NhbGUgaW1wbGVtZW50cyB0aGUKKyAqIGFsZ29yaXRobSBvZiBVbmljb2Rl
IFRSIDIxLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gdXNlcyBvbmx5IHRoZSBzZXRVVGV4dCgpLCBm
aXJzdCgpLCBuZXh0KCkgYW5kIGNsb3NlKCkgbWV0aG9kcyBvZiB0aGUKKyAqIHByb3ZpZGVkIGJy
ZWFrIGl0ZXJhdG9yLgorICoKKyAqIFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVy
IHRoYW4gdGhlIG9yaWdpbmFsLgorICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5h
dGlvbiBidWZmZXIgbXVzdCBub3Qgb3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVD
YXNlTWFwIHNlcnZpY2Ugb2JqZWN0LiBUaGlzIHBvaW50ZXIgaXMgbm9uLWNvbnN0IQorICogICAg
ICAgICAgICAgICAgICBTZWUgdGhlIG5vdGUgYWJvdmUgZm9yIGRldGFpbHMuCisgKiBAcGFyYW0g
ZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxs
IGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMg
bGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZp
bmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUg
b2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAg
ICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5
IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0
aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAg
ICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBv
ZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWlu
YXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFu
IGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGlu
ZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRo
ZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNl
IG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwg
YmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9UaXRsZQor
ICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2Fz
ZW1hcF90b1RpdGxlKFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgIFVDaGFyICpkZXN0
LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKnNy
YywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJv
ckNvZGUpOworCisjZW5kaWYKKworLyoqCisgKiBMb3dlcmNhc2UgdGhlIGNoYXJhY3RlcnMgaW4g
YSBVVEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgY29udGV4
dC1zZW5zaXRpdmUuCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFu
IHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24g
YnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1h
cCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSBy
ZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAg
ICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAg
ICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICog
QHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0
ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5V
TEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJl
c3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1
bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICog
QHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0x
LCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUg
TXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAg
ICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUg
ZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmlu
ZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAg
ICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5
LgorICoKKyAqIEBzZWUgdV9zdHJUb0xvd2VyCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9T
VEFCTEUgaW50MzJfdCBVX0VYUE9SVDIKK3VjYXNlbWFwX3V0ZjhUb0xvd2VyKGNvbnN0IFVDYXNl
TWFwICpjc20sCisgICAgICAgICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RD
YXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBz
cmNMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsK
KworLyoqCisgKiBVcHBlcmNhc2UgdGhlIGNoYXJhY3RlcnMgaW4gYSBVVEYtOCBzdHJpbmcuCisg
KiBDYXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBU
aGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAq
IFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92
ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4K
KyAqIEBwYXJhbSBkZXN0ICAgICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUg
cmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhl
IGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50
cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0
eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0
aGVuCisgKiAgICAgICAgICAgICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlv
biB3aWxsIG9ubHkgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAg
ICAgICAgICB3aXRob3V0IHdyaXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBh
cmFtIHNyYyAgICAgICBUaGUgb3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBU
aGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJl
IE5VTC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBv
aW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2gg
bXVzdCBub3QgaW5kaWNhdGUgYSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAq
IEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAt
IG9yIGluIGNhc2Ugb2YgYSBidWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNh
c2UgaXQgd2lsbCBiZSBncmVhdGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9z
dHJUb1VwcGVyCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VY
UE9SVDIKK3VjYXNlbWFwX3V0ZjhUb1VwcGVyKGNvbnN0IFVDYXNlTWFwICpjc20sCisgICAgICAg
ICAgICAgICAgICAgICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNMZW5ndGgsCisgICAgICAg
ICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2lmICFVQ09ORklHX05P
X0JSRUFLX0lURVJBVElPTgorCisvKioKKyAqIFRpdGxlY2FzZSBhIFVURi04IHN0cmluZy4KKyAq
IENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNlbnNpdGl2ZS4KKyAqIFRp
dGxlY2FzaW5nIHVzZXMgYSBicmVhayBpdGVyYXRvciB0byBmaW5kIHRoZSBmaXJzdCBjaGFyYWN0
ZXJzIG9mIHdvcmRzCisgKiB0aGF0IGFyZSB0byBiZSB0aXRsZWNhc2VkLiBJdCB0aXRsZWNhc2Vz
IHRob3NlIGNoYXJhY3RlcnMgYW5kIGxvd2VyY2FzZXMKKyAqIGFsbCBvdGhlcnMuIChUaGlzIGNh
biBiZSBtb2RpZmllZCB3aXRoIHVjYXNlbWFwX3NldE9wdGlvbnMoKS4pCisgKgorICogTm90ZTog
VGhpcyBmdW5jdGlvbiB0YWtlcyBhIG5vbi1jb25zdCBVQ2FzZU1hcCBwb2ludGVyIGJlY2F1c2Ug
aXQgd2lsbAorICogb3BlbiBhIGRlZmF1bHQgYnJlYWsgaXRlcmF0b3IgaWYgbm8gYnJlYWsgaXRl
cmF0b3Igd2FzIHNldCB5ZXQsCisgKiBhbmQgZWZmZWN0aXZlbHkgY2FsbCB1Y2FzZW1hcF9zZXRC
cmVha0l0ZXJhdG9yKCk7CisgKiBhbHNvIGJlY2F1c2UgdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIHN0
YXRlZnVsIGFuZCB3aWxsIGJlIG1vZGlmaWVkIGR1cmluZworICogdGhlIGl0ZXJhdGlvbi4KKyAq
CisgKiBUaGUgdGl0bGVjYXNlIGJyZWFrIGl0ZXJhdG9yIGNhbiBiZSBwcm92aWRlZCB0byBjdXN0
b21pemUgZm9yIGFyYml0cmFyeQorICogc3R5bGVzLCB1c2luZyBydWxlcyBhbmQgZGljdGlvbmFy
aWVzIGJleW9uZCB0aGUgc3RhbmRhcmQgaXRlcmF0b3JzLgorICogVGhlIHN0YW5kYXJkIHRpdGxl
Y2FzZSBpdGVyYXRvciBmb3IgdGhlIHJvb3QgbG9jYWxlIGltcGxlbWVudHMgdGhlCisgKiBhbGdv
cml0aG0gb2YgVW5pY29kZSBUUiAyMS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHVzZXMgb25seSB0
aGUgc2V0VVRleHQoKSwgZmlyc3QoKSwgbmV4dCgpIGFuZCBjbG9zZSgpIG1ldGhvZHMgb2YgdGhl
CisgKiBwcm92aWRlZCBicmVhayBpdGVyYXRvci4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBiZSBs
b25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5n
IGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBh
cmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4gVGhpcyBwb2ludGVyIGlzIG5v
bi1jb25zdCEKKyAqICAgICAgICAgICAgICAgICAgU2VlIHRoZSBub3RlIGFib3ZlIGZvciBkZXRh
aWxzLgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcu
IFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAg
ICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNv
bnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENh
cGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlz
IDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1
bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAg
ICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisg
KiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVu
Z3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11
c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFs
aWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3
aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxs
LgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNz
ZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hp
Y2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNl
ZSB1X3N0clRvVGl0bGUKKyAqIEBzZWUgVV9USVRMRUNBU0VfTk9fTE9XRVJDQVNFCisgKiBAc2Vl
IFVfVElUTEVDQVNFX05PX0JSRUFLX0FESlVTVE1FTlQKKyAqIEBzdGFibGUgSUNVIDMuOAorICov
CitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOFRvVGl0bGUoVUNhc2VN
YXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2Fw
YWNpdHksCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNyYywgaW50MzJfdCBzcmNM
ZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisj
ZW5kaWYKKworLyoqCisgKiBDYXNlLWZvbGRzIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3Ry
aW5nLgorICoKKyAqIENhc2UtZm9sZGluZyBpcyBsb2NhbGUtaW5kZXBlbmRlbnQgYW5kIG5vdCBj
b250ZXh0LXNlbnNpdGl2ZSwKKyAqIGJ1dCB0aGVyZSBpcyBhbiBvcHRpb24gZm9yIHdoZXRoZXIg
dG8gaW5jbHVkZSBvciBleGNsdWRlIG1hcHBpbmdzIGZvciBkb3R0ZWQgSQorICogYW5kIGRvdGxl
c3MgaSB0aGF0IGFyZSBtYXJrZWQgd2l0aCAnVCcgaW4gQ2FzZUZvbGRpbmcudHh0LgorICoKKyAq
IFRoZSByZXN1bHQgbWF5IGJlIGxvbmdlciBvciBzaG9ydGVyIHRoYW4gdGhlIG9yaWdpbmFsLgor
ICogVGhlIHNvdXJjZSBzdHJpbmcgYW5kIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIgbXVzdCBub3Qg
b3ZlcmxhcC4KKyAqCisgKiBAcGFyYW0gY3NtICAgICAgIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0
LgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhlIHJlc3VsdCBzdHJpbmcuIFRo
ZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICogICAgICAgICAgICAgICAgICB0
aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAgICAgICAgICAgVGhlIGNvbnRl
bnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgKiBAcGFyYW0gZGVzdENhcGFj
aXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBieXRlcykuIElmIGl0IGlzIDAs
IHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUgTlVMTCBhbmQgdGhlIGZ1bmN0
aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiAgICAgICAg
ICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJlc3VsdCBzdHJpbmcuCisgKiBA
cGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjTGVuZ3Ro
IFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYgLTEsIHRoZW4gc3JjIG11c3Qg
YmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBNdXN0IGJlIGEgdmFsaWQg
cG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAgICAgICAgICAgICAgICB3aGlj
aCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgor
ICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3RyaW5nLCBpZiBzdWNjZXNzZnVs
IC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAqICAgICAgICAgaW4gd2hpY2gg
Y2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNpdHkuCisgKgorICogQHNlZSB1
X3N0ckZvbGRDYXNlCisgKiBAc2VlIHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgVV9GT0xE
X0NBU0VfREVGQVVMVAorICogQHNlZSBVX0ZPTERfQ0FTRV9FWENMVURFX1NQRUNJQUxfSQorICog
QHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1h
cF91dGY4Rm9sZENhc2UoY29uc3QgVUNhc2VNYXAgKmNzbSwKKyAgICAgICAgICAgICAgICAgICAg
ICBjaGFyICpkZXN0LCBpbnQzMl90IGRlc3RDYXBhY2l0eSwKKyAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAg
ICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNo
cml0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42ZDVhOTkwZjdiN2VkM2Q1YmFjZjJkYTg0NzFlZjhmZjk0MjJm
OTljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91Y2hyaXRlci5o
CkBAIC0wLDAgKzEsMzgxIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykg
MTk5OC0yMDA1LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRp
b24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLwor
CisjaWZuZGVmIFVDSFJJVEVSX0gKKyNkZWZpbmUgVUNIUklURVJfSAorCisjaW5jbHVkZSAidW5p
Y29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisKKy8qKgorICog
XGZpbGUgCisgKiBcYnJpZWYgQysrIEFQSTogVUNoYXIgQ2hhcmFjdGVyIEl0ZXJhdG9yCisgKi8K
KyAKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogQSBjb25jcmV0ZSBzdWJjbGFzcyBvZiBD
aGFyYWN0ZXJJdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgdGhlCisgKiBjaGFyYWN0ZXJzIChj
b2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzKSBpbiBhIFVDaGFyIGFycmF5LgorICogSXQncyBwb3Nz
aWJsZSBub3Qgb25seSB0byBjcmVhdGUgYW4KKyAqIGl0ZXJhdG9yIHRoYXQgaXRlcmF0ZXMgb3Zl
ciBhbiBlbnRpcmUgVUNoYXIgYXJyYXksIGJ1dCBhbHNvIHRvCisgKiBjcmVhdGUgb25lIHRoYXQg
aXRlcmF0ZXMgb3ZlciBvbmx5IGEgc3VicmFuZ2Ugb2YgYSBVQ2hhciBhcnJheQorICogKGl0ZXJh
dG9ycyBvdmVyIGRpZmZlcmVudCBzdWJyYW5nZXMgb2YgdGhlIHNhbWUgVUNoYXIgYXJyYXkgZG9u
J3QKKyAqIGNvbXBhcmUgZXF1YWwpLgorICogQHNlZSBDaGFyYWN0ZXJJdGVyYXRvcgorICogQHNl
ZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitjbGFz
cyBVX0NPTU1PTl9BUEkgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBDaGFyYWN0ZXJJ
dGVyYXRvciB7CitwdWJsaWM6CisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0
aGUgVUNoYXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUgaXRlcmF0
aW9uIHJhbmdlIGlzIDAgdG8gPGNvZGU+bGVuZ3RoLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlzIG9u
bHkgYWxpYXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90IGRl
bGV0ZSBpdCkuCisgICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVy
YXRlZCBvdmVyCisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIgYXJy
YXkKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9y
KGNvbnN0IFVDaGFyKiB0ZXh0UHRyLCBpbnQzMl90IGxlbmd0aCk7CisKKyAgLyoqCisgICAqIENy
ZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVQ2hhciBhcnJheSByZWZlcnJlZCB0byBieSAidGV4
dFB0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFuZ2UgaXMgMCB0byA8Y29kZT5sZW5ndGgtMTwv
Y29kZT4uCisgICAqIHRleHQgaXMgb25seSBhbGlhc2VkLCBub3QgYWRvcHRlZCAodGhlCisgICAq
IGRlc3RydWN0b3Igd2lsbCBub3QgZGVsZXRlIGl0KS4KKyAgICogVGhlIHN0YXJ0aW5nCisgICAq
IHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAicG9zaXRpb24iLiBJZiAicG9zaXRpb24iIGlzIG91
dHNpZGUgdGhlIHZhbGlkCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRo
aXMgb2JqZWN0IGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFyIGFy
cmF5IHRvIGJlIGl0ZXJhdGQgb3ZlcgorICAgKiBAcGFyYW0gbGVuZ3RoIFRoZSBsZW5ndGggb2Yg
dGhlIFVDaGFyIGFycmF5CisgICAqIEBwYXJhbSBwb3NpdGlvbiBUaGUgc3RhcnRpbmcgcG9zaXRp
b24gb2YgdGhlIGl0ZXJhdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFy
Q2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAg
KiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVUNoYXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkg
InRleHRQdHIiLgorICAgKiBUaGUgaXRlcmF0aW9uIHJhbmdlIGlzIDAgdG8gPGNvZGU+ZW5kLTE8
L2NvZGU+LgorICAgKiB0ZXh0IGlzIG9ubHkgYWxpYXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAg
KiBkZXN0cnVjdG9yIHdpbGwgbm90IGRlbGV0ZSBpdCkuCisgICAqIFRoZSBzdGFydGluZworICAg
KiBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgInBvc2l0aW9uIi4gSWYgYmVnaW4gYW5kIGVuZCBk
byBub3QKKyAgICogZm9ybSBhIHZhbGlkIGl0ZXJhdGlvbiByYW5nZSBvciAicG9zaXRpb24iIGlz
IG91dHNpZGUgdGhlIHZhbGlkCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9m
IHRoaXMgb2JqZWN0IGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRQdHIgVGhlIFVDaGFy
IGFycmF5IHRvIGJlIGl0ZXJhdGVkIG92ZXIKKyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3Ro
IG9mIHRoZSBVQ2hhciBhcnJheQorICAgKiBAcGFyYW0gdGV4dEJlZ2luICBUaGUgYmVnaW4gcG9z
aXRpb24gb2YgdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAcGFyYW0gdGV4dEVuZCAgICBUaGUg
ZW5kIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHBvc2l0aW9u
ICAgIFRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4
dFB0ciwgaW50MzJfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCB0
ZXh0QmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCB0ZXh0RW5kLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBD
b3B5IGNvbnN0cnVjdG9yLiAgVGhlIG5ldyBpdGVyYXRvciBpdGVyYXRlcyBvdmVyIHRoZSBzYW1l
IHJhbmdlCisgICAqIG9mIHRoZSBzYW1lIHN0cmluZyBhcyAidGhhdCIsIGFuZCBpdHMgaW5pdGlh
bCBwb3NpdGlvbiBpcyB0aGUKKyAgICogc2FtZSBhcyAidGhhdCIncyBjdXJyZW50IHBvc2l0aW9u
LgorICAgKiBAcGFyYW0gdGhhdCBUaGUgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb3Bp
ZWQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9y
KGNvbnN0IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImICB0aGF0KTsKKworICAvKioKKyAgICogRGVz
dHJ1Y3Rvci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIH5VQ2hhckNo
YXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgLyoqCisgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICAq
dGhpcyBpcyBhbHRlcmVkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgc2FuZQorICAgKiByYW5nZSBvZiB0
aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgcmVmZXJzIHRvIHRoZSBzYW1lCisgICAqIGNo
YXJhY3RlciB3aXRoaW4gdGhhdCBzdHJpbmcgYXMgInRoYXQiIGRvZXMuCisgICAqIEBwYXJhbSB0
aGF0IFRoZSBvYmplY3QgdG8gYmUgY29waWVkCisgICAqIEByZXR1cm4gdGhlIG5ld2x5IGNyZWF0
ZWQgb2JqZWN0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJ
dGVyYXRvciYKKyAgb3BlcmF0b3I9KGNvbnN0IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImICAgIHRo
YXQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGl0ZXJhdG9ycyBpdGVyYXRl
IG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3RyaW5nIGFuZCBhcmUgcG9p
bnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgRm9yd2Fy
ZENoYXJhY3Rlckl0ZXJhdG9yIHVzZWQgdG8gYmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5CisgICAq
IEByZXR1cm4gdHJ1ZSBpZiB0aGUgaXRlcmF0b3JzIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSByYW5n
ZSBvZiB0aGUKKyAgICogc2FtZSBzdHJpbmcgYW5kIGFyZSBwb2ludGluZyBhdCB0aGUgc2FtZSBj
aGFyYWN0ZXIuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9vbCAg
ICAgICAgICBvcGVyYXRvcj09KGNvbnN0IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkg
Y29uc3Q7CisKKyAgLyoqCisgICAqIEdlbmVyYXRlcyBhIGhhc2ggY29kZSBmb3IgdGhpcyBpdGVy
YXRvci4KKyAgICogQHJldHVybiB0aGUgaGFzaCBjb2RlLgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgaW50MzJfdCAgICAgICAgIGhhc2hDb2RlKHZvaWQpIGNvbnN0Owor
CisgIC8qKgorICAgKiBSZXR1cm5zIGEgbmV3IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgcmVmZXJy
aW5nIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciBpbiB0aGUgc2FtZSByYW5nZSBvZiB0aGUg
c2FtZSBzdHJpbmcgYXMgdGhpcyBvbmUuICBUaGUKKyAgICogY2FsbGVyIG11c3QgZGVsZXRlIHRo
ZSBuZXcgaXRlcmF0b3IuCisgICAqIEByZXR1cm4gdGhlIENoYXJhY3Rlckl0ZXJhdG9yIG5ld2x5
IGNyZWF0ZWQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIENoYXJhY3Rl
ckl0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRl
cmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMKKyAgICogaXRlcmF0
aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4KKyAgICogVGhpcyBjYW4gYmUg
dXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0KCkuCisgICAqIEByZXR1cm4gdGhl
IGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdCh2b2lkKTsKKworICAv
KioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5p
dCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29kZSB1bml0LCBh
bmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAqIHRvIHRoZSBzZWNvbmQgY29kZSB1bml0LiBUaGlz
IGlzIGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAgKiBmb3IgZm9yd2FyZCBpdGVy
YXRpb24gd2l0aCBuZXh0UG9zdEluYygpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVu
aXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgVUNoYXIgICAgICAgICBmaXJzdFBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAq
IFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0
cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LAorICAg
KiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3aXRoIG5leHQzMigpLgor
ICAgKiBOb3RlIHRoYXQgYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygpLCBiZWdpbm5p
bmcgd2l0aCwKKyAgICogZS5nLiwgc2V0VG9TdGFydCgpIG9yIGZpcnN0UG9zdEluYygpLCBpcyBt
b3JlIGVmZmljaWVudC4KKyAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMg
aXRlcmF0aW9uIHJhbmdlCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBV
Q2hhcjMyICAgICAgIGZpcnN0MzIodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJh
dG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cworICAgKiBpdGVyYXRp
b24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2RlIHBvaW50LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9u
CisgICAqIHRvIHRoZSBzZWNvbmQgY29kZSBwb2ludC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0
byBzZXRUb1N0YXJ0KCkKKyAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9z
dEluYygpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRp
b24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMy
ICAgICAgIGZpcnN0MzJQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVy
YXRvciB0byByZWZlciB0byB0aGUgbGFzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlv
biByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVz
ZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKS4KKyAgICogQHJldHVybiB0
aGUgbGFzdCBjb2RlIHVuaXQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbGFzdCh2b2lkKTsKKworICAv
KioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSBwb2lu
dCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5p
dC4KKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBwcmV2
aW91czMyKCkuCisgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0
aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIz
MiAgICAgICBsYXN0MzIodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRv
IHJlZmVyIHRvIHRoZSAicG9zaXRpb24iLXRoIGNvZGUgdW5pdAorICAgKiBpbiB0aGUgdGV4dC1z
dG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVmZXJzIHRvLCBhbmQKKyAgICogcmV0dXJucyB0
aGF0IGNvZGUgdW5pdC4KKyAgICogQHBhcmFtIHBvc2l0aW9uIHRoZSBwb3NpdGlvbiB3aXRoaW4g
dGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICogQHJldHVybiB0aGUgY29kZSB1bml0CisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIHNldEluZGV4
KGludDMyX3QgcG9zaXRpb24pOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBy
ZWZlciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjb2RlIHBvaW50CisgICAqIHRoYXQgY29udGFp
bnMgdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0CisgICAqIGluIHRoZSB0ZXh0LXN0b3JhZ2Ug
b2JqZWN0IHRoZSBpdGVyYXRvciByZWZlcnMgdG8sIGFuZAorICAgKiByZXR1cm5zIHRoYXQgY29k
ZSBwb2ludC4KKyAgICogVGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgYWRqdXN0ZWQgdG8gdGhlIGJl
Z2lubmluZyBvZiB0aGUgY29kZSBwb2ludAorICAgKiAoaXRzIGZpcnN0IGNvZGUgdW5pdCkuCisg
ICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LXN0b3JhZ2Ug
b2JqZWN0CisgICAqIEByZXR1cm4gdGhlIGNvZGUgdW5pdAorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBzZXRJbmRleDMyKGludDMyX3QgcG9zaXRp
b24pOworCisgIC8qKgorICAgKiBSZXR1cm5zIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1
cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEByZXR1cm4gdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0
b3IgY3VycmVudGx5IHJlZmVycyB0by4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2
aXJ0dWFsIFVDaGFyICAgICAgICAgY3VycmVudCh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICog
UmV0dXJucyB0aGUgY29kZSBwb2ludCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4K
KyAgICogQHJldHVybiB0aGUgY29kZSBwb2ludCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVy
cyB0by4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAg
ICAgY3VycmVudDMyKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUg
bmV4dCBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAqIGVuZElu
ZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZSBubyBtb3Jl
CisgICAqIGNvZGUgdW5pdHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4g
dGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHQodm9pZCk7CisKKyAg
LyoqCisgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSB1bml0IGZvciByZXR1cm5pbmcgYW5kIGFk
dmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgdW5pdAorICAgKiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdl
CisgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJZiB0aGVyZSBhcmUKKyAgICogbm8gbW9yZSBj
b2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBjdXJy
ZW50IGNvZGUgdW5pdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVD
aGFyICAgICAgICAgbmV4dFBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRv
IHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSAodG93YXJkCisgICAq
IGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUg
bm8gbW9yZQorICAgKiBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICog
Tm90ZSB0aGF0IGl0ZXJhdGlvbiB3aXRoICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3MgaXMgbGVz
cworICAgKiBlZmZpY2llbnQgdGhhbiBpdGVyYXRpb24gd2l0aCAicG9zdC1pbmNyZW1lbnQiIHNl
bWFudGljcworICAgKiB0aGF0IGlzIHByb3ZpZGVkIGJ5IG5leHQzMlBvc3RJbmMoKS4KKyAgICog
QHJldHVybiB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMih2
b2lkKTsKKworICAvKioKKyAgICogR2V0cyB0aGUgY3VycmVudCBjb2RlIHBvaW50IGZvciByZXR1
cm5pbmcgYW5kIGFkdmFuY2VzIHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQKKyAgICogaW4gdGhlIGl0
ZXJhdGlvbiByYW5nZQorICAgKiAodG93YXJkIGVuZEluZGV4KCkpLiAgSWYgdGhlcmUgYXJlCisg
ICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEBy
ZXR1cm4gdGhlIGN1cnJlbnQgcG9pbnQuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
dmlydHVhbCBVQ2hhcjMyICAgICAgIG5leHQzMlBvc3RJbmModm9pZCk7CisKKyAgLyoqCisgICAq
IFJldHVybnMgRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBv
aW50cworICAgKiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0
aW9uIHJhbmdlLgorICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQz
MlBvc3RJbmMoKSBpbiBmb3J3YXJkCisgICAqIGl0ZXJhdGlvbi4KKyAgICogQHJldHVybiBGQUxT
RSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAqIGF0
IG9yIGFmdGVyIHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzTmV4
dCgpOworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSB1bml0IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBzdGFydEluZGV4KCkpLCBhbmQgcmV0
dXJucyB0aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZSBubyBtb3JlCisgICAqIGNvZGUgdW5p
dHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIEByZXR1cm4gdGhlIHByZXZpb3VzIGNv
ZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBwcmV2aW91cyh2b2lkKTsKKworICAvKioKKyAg
ICogQWR2YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiBy
YW5nZSAodG93YXJkCisgICAqIHN0YXJ0SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBw
b2ludC4gIElmIHRoZXJlIGFyZSBubyBtb3JlCisgICAqIGNvZGUgcG9pbnRzIHRvIHJldHVybiwg
cmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHBvaW50IGluIHRo
ZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVh
bCBVQ2hhcjMyICAgICAgIHByZXZpb3VzMzIodm9pZCk7CisKKyAgLyoqCisgICAqIFJldHVybnMg
RkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAg
KiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAg
ICogVGhpcyBpcyB1c2VkIHdpdGggcHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkgaW4gYmFja3dh
cmQKKyAgICogaXRlcmF0aW9uLgorICAgKiBAcmV0dXJuIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBt
b3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBv
c2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
Ki8KKyAgdmlydHVhbCBVQm9vbCAgICAgICAgaGFzUHJldmlvdXMoKTsKKworICAvKioKKyAgICog
TW92ZXMgdGhlIGN1cnJlbnQgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9yIGVuZCBv
ZiB0aGUKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBw
b3NpdGlvbiBpdHNlbGYuCisgICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVy
cyBvZiBjb2RlIHVuaXRzIGZvcndhcmQKKyAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBh
IHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGRlbHRhLgorICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0
aW9uIHJlbGF0aXZlIHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOwor
ICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAgKiBAcGFyYW0gb3JpZ2lu
IE9yaWdpbiBlbnVtZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICogQHJldHVy
biB0aGUgbmV3IHBvc2l0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVh
bCBpbnQzMl90ICAgICAgbW92ZShpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbik7CisKKyAg
LyoqCisgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFy
dCBvciBlbmQgb2YgdGhlCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhl
IGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgKiBUaGUgbW92ZW1lbnQgaXMgZXhwcmVzc2Vk
IGluIG51bWJlcnMgb2YgY29kZSBwb2ludHMgZm9yd2FyZAorICAgKiBvciBiYWNrd2FyZCBieSBz
cGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAqIEBwYXJhbSBkZWx0
YSB0aGUgcG9zaXRpb24gcmVsYXRpdmUgdG8gb3JpZ2luLiBBIHBvc2l0aXZlIGRlbHRhIG1lYW5z
IGZvcndhcmQ7CisgICAqIGEgbmVnYXRpdmUgZGVsdGEgbWVhbnMgYmFja3dhcmQuCisgICAqIEBw
YXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQor
ICAgKiBAcmV0dXJuIHRoZSBuZXcgcG9zaXRpb24KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICB2aXJ0dWFsIGludDMyX3QgICAgICBtb3ZlMzIoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBv
cmlnaW4pOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBpdGVyYXRlIG92ZXIg
YSBuZXcgcmFuZ2Ugb2YgdGV4dAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZvaWQg
c2V0VGV4dChjb25zdCBVQ2hhciogbmV3VGV4dCwgaW50MzJfdCBuZXdUZXh0TGVuZ3RoKTsKKwor
ICAvKioKKyAgICogQ29waWVzIHRoZSBVQ2hhciBhcnJheSB1bmRlciBpdGVyYXRpb24gaW50byB0
aGUgVW5pY29kZVN0cmluZworICAgKiByZWZlcnJlZCB0byBieSAicmVzdWx0Ii4gIEV2ZW4gaWYg
dGhpcyBpdGVyYXRvciBpdGVyYXRlcyBhY3Jvc3MKKyAgICogb25seSBhIHBhcnQgb2YgdGhpcyBz
dHJpbmcsIHRoZSB3aG9sZSBzdHJpbmcgaXMgY29waWVkLgorICAgKiBAcGFyYW0gcmVzdWx0IFJl
Y2VpdmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB2b2lkICAgICAgICAgICAgZ2V0VGV4dChVbmljb2Rl
U3RyaW5nJiByZXN1bHQpOworCisgIC8qKgorICAgKiBSZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhp
cyBjbGFzcyAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3Ig
dGhpcyBjbGFzcworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHN0YXRpYyBVQ2xhc3NJ
RCAgICAgICAgIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKHZvaWQpOworCisgIC8qKgorICAg
KiBSZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QgKG5vdCByZWFsbHkgcHVibGljKQor
ICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgb2JqZWN0LgorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNsYXNzSUQgICAgICAgIGdldER5bmFtaWNDbGFzc0lE
KHZvaWQpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgIC8qKgorICAgKiBQcm90ZWN0ZWQgY29uc3Ry
dWN0b3IKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJh
dG9yKCk7CisgIC8qKgorICAgKiBQcm90ZWN0ZWQgbWVtYmVyIHRleHQKKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICBjb25zdCBVQ2hhciogICAgICAgICAgICB0ZXh0OworCit9OworCitV
X05BTUVTUEFDRV9FTkQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29k
ZS91ZGF0YS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91ZGF0YS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5
ZTQ2NjMwZDUzOThkODI3MzhkMWQ2MWZmYzRkMmM5MTRlOGM2OGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VkYXRhLmgKQEAgLTAsMCArMSw0MzAgQEAKKy8qCisq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMpIDE5OTktMjAxNCwgSW50
ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMu
ICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmls
ZSBuYW1lOiAgdWRhdGEuaAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6
ICAgOCAobm90IHVzZWQpCisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDE5
OTlvY3QyNQorKiAgIGNyZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisjaWZuZGVm
IF9fVURBVEFfSF9fCisjZGVmaW5lIF9fVURBVEFfSF9fCisKKyNpbmNsdWRlICJ1bmljb2RlL3V0
eXBlcy5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9jYWxwb2ludGVyLmgiCisKK1VfQ0RFQ0xfQkVH
SU4KKworLyoqCisgKiBcZmlsZQorICogXGJyaWVmIEMgQVBJOiBEYXRhIGxvYWRpbmcgaW50ZXJm
YWNlCisgKgorICogPGgyPkluZm9ybWF0aW9uIGFib3V0IGRhdGEgbG9hZGluZyBpbnRlcmZhY2U8
L2gyPgorICoKKyAqIFRoaXMgQVBJIGlzIHVzZWQgdG8gZmluZCBhbmQgZWZmaWNpZW50bHkgbG9h
ZCBkYXRhIGZvciBJQ1UgYW5kIGFwcGxpY2F0aW9ucworICogdXNpbmcgSUNVLiBJdCBwcm92aWRl
cyBhbiBhYnN0cmFjdCBpbnRlcmZhY2UgdGhhdCBzcGVjaWZpZXMgYSBkYXRhIHR5cGUgYW5kCisg
KiBuYW1lIHRvIGZpbmQgYW5kIGxvYWQgdGhlIGRhdGEuIE5vcm1hbGx5IHRoaXMgQVBJIGlzIHVz
ZWQgYnkgb3RoZXIgSUNVIEFQSXMKKyAqIHRvIGxvYWQgcmVxdWlyZWQgZGF0YSBvdXQgb2YgdGhl
IElDVSBkYXRhIGxpYnJhcnksIGJ1dCBpdCBjYW4gYmUgdXNlZCB0bworICogbG9hZCBkYXRhIG91
dCBvZiBvdGhlciBwbGFjZXMuCisgKgorICogU2VlIHRoZSBVc2VyIEd1aWRlIERhdGEgTWFuYWdl
bWVudCBjaGFwdGVyLgorICovCisgCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKy8qKgor
ICogQ2hhcmFjdGVyIHVzZWQgdG8gc2VwYXJhdGUgcGFja2FnZSBuYW1lcyBmcm9tIHRyZWUgbmFt
ZXMgCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisjZGVmaW5lIFVfVFJFRV9TRVBBUkFUT1Ig
Jy0nCisKKy8qKgorICogU3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgcGFja2FnZSBuYW1lcyBmcm9t
IHRyZWUgbmFtZXMgCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisjZGVmaW5lIFVfVFJFRV9T
RVBBUkFUT1JfU1RSSU5HICItIgorCisvKioKKyAqIENoYXJhY3RlciB1c2VkIHRvIHNlcGFyYXRl
IHBhcnRzIG9mIGVudHJ5IG5hbWVzCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisjZGVmaW5l
IFVfVFJFRV9FTlRSWV9TRVBfQ0hBUiAnLycKKworLyoqCisgKiBTdHJpbmcgdXNlZCB0byBzZXBh
cmF0ZSBwYXJ0cyBvZiBlbnRyeSBuYW1lcworICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2Rl
ZmluZSBVX1RSRUVfRU5UUllfU0VQX1NUUklORyAiLyIKKworLyoqCisgKiBBbGlhcyBmb3Igc3Rh
bmRhcmQgSUNVIGRhdGEgCisgKiBAaW50ZXJuYWwgSUNVIDMuMAorICovCisjZGVmaW5lIFVfSUNV
REFUQV9BTElBUyAiSUNVREFUQSIKKworI2VuZGlmIC8qIFVfSElERV9JTlRFUk5BTF9BUEkgKi8K
KworLyoqCisgKiBVRGF0YUluZm8gY29udGFpbnMgdGhlIHByb3BlcnRpZXMgYWJvdXQgdGhlIHJl
cXVlc3RlZCBkYXRhLgorICogVGhpcyBpcyBtZXRhIGRhdGEuCisgKgorICogPHA+VGhpcyBzdHJ1
Y3R1cmUgbWF5IGdyb3cgaW4gdGhlIGZ1dHVyZSwgaW5kaWNhdGVkIGJ5IHRoZQorICogPGNvZGU+
c2l6ZTwvY29kZT4gZmllbGQuPC9wPgorICoKKyAqIDxwPklDVSBkYXRhIG11c3QgYmUgYXQgbGVh
c3QgOC1hbGlnbmVkLCBhbmQgc2hvdWxkIGJlIDE2LWFsaWduZWQuCisgKiBUaGUgVURhdGFJbmZv
IHN0cnVjdCBiZWdpbnMgNCBieXRlcyBhZnRlciB0aGUgc3RhcnQgb2YgdGhlIGRhdGEgaXRlbSwK
KyAqIHNvIGl0IGlzIDQtYWxpZ25lZC4KKyAqCisgKiA8cD5UaGUgcGxhdGZvcm0gZGF0YSBwcm9w
ZXJ0eSBmaWVsZHMgaGVscCBkZXRlcm1pbmUgaWYgYSBkYXRhCisgKiBmaWxlIGNhbiBiZSBlZmZp
Y2llbnRseSB1c2VkIG9uIGEgZ2l2ZW4gbWFjaGluZS4KKyAqIFRoZSBwYXJ0aWN1bGFyIGZpZWxk
cyBhcmUgb2YgaW1wb3J0YW5jZSBvbmx5IGlmIHRoZSBkYXRhCisgKiBpcyBhZmZlY3RlZCBieSB0
aGUgcHJvcGVydGllcyAtIGlmIHRoZXJlIGlzIGludGVnZXIgZGF0YQorICogd2l0aCB3b3JkIHNp
emVzID4gMSBieXRlLCBjaGFyKiB0ZXh0LCBvciBVQ2hhciogdGV4dC48L3A+CisgKgorICogPHA+
VGhlIGltcGxlbWVudGF0aW9uIGZvciB0aGUgPGNvZGU+dWRhdGFfb3BlbltDaG9pY2VdKCk8L2Nv
ZGU+CisgKiBmdW5jdGlvbnMgbWF5IHJlamVjdCBkYXRhIGJhc2VkIG9uIHRoZSB2YWx1ZSBpbiA8
Y29kZT5pc0JpZ0VuZGlhbjwvY29kZT4uCisgKiBObyBvdGhlciBmaWVsZCBpcyB1c2VkIGJ5IHRo
ZSA8Y29kZT51ZGF0YTwvY29kZT4gQVBJIGltcGxlbWVudGF0aW9uLjwvcD4KKyAqCisgKiA8cD5U
aGUgPGNvZGU+ZGF0YUZvcm1hdDwvY29kZT4gbWF5IGJlIHVzZWQgdG8gaWRlbnRpZnkKKyAqIHRo
ZSBraW5kIG9mIGRhdGEsIGUuZy4gYSBjb252ZXJ0ZXIgdGFibGUuPC9wPgorICoKKyAqIDxwPlRo
ZSA8Y29kZT5mb3JtYXRWZXJzaW9uPC9jb2RlPiBmaWVsZCBzaG91bGQgYmUgdXNlZCB0bworICog
bWFrZSBzdXJlIHRoYXQgdGhlIGZvcm1hdCBjYW4gYmUgaW50ZXJwcmV0ZWQuCisgKiBJdCBtYXkg
YmUgYSBnb29kIGlkZWEgdG8gY2hlY2sgb25seSBmb3IgdGhlIG9uZSBvciB0d28gaGlnaGVzdAor
ICogb2YgdGhlIHZlcnNpb24gZWxlbWVudHMgdG8gYWxsb3cgdGhlIGRhdGEgbWVtb3J5IHRvCisg
KiBnZXQgbW9yZSBvciBzb21ld2hhdCByZWFycmFuZ2VkIGNvbnRlbnRzLCBmb3IgYXMgbG9uZwor
ICogYXMgdGhlIHVzaW5nIGNvZGUgY2FuIHN0aWxsIGludGVycHJldCB0aGUgb2xkZXIgY29udGVu
dHMuPC9wPgorICoKKyAqIDxwPlRoZSA8Y29kZT5kYXRhVmVyc2lvbjwvY29kZT4gZmllbGQgaXMg
aW50ZW5kZWQgdG8gYmUgYQorICogY29tbW9uIHBsYWNlIHRvIHN0b3JlIHRoZSBzb3VyY2UgdmVy
c2lvbiBvZiB0aGUgZGF0YTsKKyAqIGZvciBkYXRhIGZyb20gdGhlIFVuaWNvZGUgY2hhcmFjdGVy
IGRhdGFiYXNlLCB0aGlzIGNvdWxkCisgKiByZWZsZWN0IHRoZSBVbmljb2RlIHZlcnNpb24uPC9w
PgorICoKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgLyoq
IHNpemVvZihVRGF0YUluZm8pCisgICAgICogIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHVpbnQx
Nl90IHNpemU7CisKKyAgICAvKiogdW51c2VkLCBzZXQgdG8gMCAKKyAgICAgKiAgQHN0YWJsZSBJ
Q1UgMi4wKi8KKyAgICB1aW50MTZfdCByZXNlcnZlZFdvcmQ7CisKKyAgICAvKiBwbGF0Zm9ybSBk
YXRhIHByb3BlcnRpZXMgKi8KKyAgICAvKiogMCBmb3IgbGl0dGxlLWVuZGlhbiBtYWNoaW5lLCAx
IGZvciBiaWctZW5kaWFuCisgICAgICogIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHVpbnQ4X3Qg
aXNCaWdFbmRpYW47CisKKyAgICAvKiogc2VlIFVfQ0hBUlNFVF9GQU1JTFkgdmFsdWVzIGluIHV0
eXBlcy5oIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgY2hhcnNldEZh
bWlseTsKKworICAgIC8qKiBzaXplb2YoVUNoYXIpLCBvbmUgb2YgeyAxLCAyLCA0IH0gCisgICAg
ICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBzaXplb2ZVQ2hhcjsKKworICAgIC8q
KiB1bnVzZWQsIHNldCB0byAwIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4
X3QgcmVzZXJ2ZWRCeXRlOworCisgICAgLyoqIGRhdGEgZm9ybWF0IGlkZW50aWZpZXIgCisgICAg
ICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBkYXRhRm9ybWF0WzRdOworCisgICAg
LyoqIHZlcnNpb25zOiBbMF0gbWFqb3IgWzFdIG1pbm9yIFsyXSBtaWxsaSBbM10gbWljcm8gCisg
ICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBmb3JtYXRWZXJzaW9uWzRdOwor
CisgICAgLyoqIHZlcnNpb25zOiBbMF0gbWFqb3IgWzFdIG1pbm9yIFsyXSBtaWxsaSBbM10gbWlj
cm8gCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDhfdCBkYXRhVmVyc2lvbls0
XTsKK30gVURhdGFJbmZvOworCisvKiBBUEkgZm9yIHJlYWRpbmcgZGF0YSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qKgorICogRm9y
d2FyZCBkZWNsYXJhdGlvbiBvZiB0aGUgZGF0YSBtZW1vcnkgdHlwZS4KKyAqIEBzdGFibGUgSUNV
IDIuMAorICovCit0eXBlZGVmIHN0cnVjdCBVRGF0YU1lbW9yeSBVRGF0YU1lbW9yeTsKKworLyoq
CisgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdWRhdGFfb3BlbkNob2ljZSgpLgorICogQHBhcmFt
IGNvbnRleHQgcGFyYW1ldGVyIHBhc3NlZCBpbnRvIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwv
Y29kZT4uCisgKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSBvZiB0aGUgZGF0YSBhcyBwYXNzZWQgaW50
byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICogICAgICAgICAgICAgSXQgbWF5
IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGRh
dGEgYXMgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPi4KKyAqIEBw
YXJhbSBwSW5mbyBBIHBvaW50ZXIgdG8gdGhlIDxjb2RlPlVEYXRhSW5mbzwvY29kZT4gc3RydWN0
dXJlCisgKiAgICAgICAgICAgICAgb2YgZGF0YSB0aGF0IGhhcyBiZWVuIGxvYWRlZCBhbmQgd2ls
bCBiZSByZXR1cm5lZAorICogICAgICAgICAgICAgIGJ5IDxjb2RlPnVkYXRhX29wZW5DaG9pY2Uo
KTwvY29kZT4gaWYgdGhpcyBmdW5jdGlvbgorICogICAgICAgICAgICAgIHJldHVybnMgPGNvZGU+
VFJVRTwvY29kZT4uCisgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIGN1cnJlbnQgZGF0YSBtZW1vcnkg
aXMgYWNjZXB0YWJsZQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK3R5cGVkZWYgVUJvb2wgVV9D
QUxMQ09OVgorVURhdGFNZW1vcnlJc0FjY2VwdGFibGUodm9pZCAqY29udGV4dCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBVRGF0YUluZm8gKnBJbmZvKTsKKworCisvKioKKyAq
IENvbnZlbmllbmNlIGZ1bmN0aW9uLgorICogVGhpcyBmdW5jdGlvbiB3b3JrcyB0aGUgc2FtZSBh
cyA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlPC9jb2RlPgorICogZXhjZXB0IHRoYXQgYW55IGRhdGEg
dGhhdCBtYXRjaGVzIHRoZSB0eXBlIGFuZCBuYW1lCisgKiBpcyBhc3N1bWVkIHRvIGJlIGFjY2Vw
dGFibGUuCisgKiBAcGFyYW0gcGF0aCBTcGVjaWZpZXMgYW4gYWJzb2x1dGUgcGF0aCBhbmQvb3Ig
YSBiYXNlbmFtZSBmb3IgdGhlCisgKiAgICAgICAgICAgICBmaW5kaW5nIG9mIHRoZSBkYXRhIGlu
IHRoZSBmaWxlIHN5c3RlbS4KKyAqICAgICAgICAgICAgIDxjb2RlPk5VTEw8L2NvZGU+IGZvciBJ
Q1UgZGF0YS4KKyAqIEBwYXJhbSB0eXBlIEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSB0eXBl
IG9mIGRhdGEgdG8gYmUgbG9hZGVkLgorICogICAgICAgICAgICAgRm9yIGV4YW1wbGUsIHJlc291
cmNlIGJ1bmRsZXMgYXJlIGxvYWRlZCB3aXRoIHR5cGUgInJlcyIsCisgKiAgICAgICAgICAgICBj
b252ZXJzaW9uIHRhYmxlcyB3aXRoIHR5cGUgImNudiIuCisgKiAgICAgICAgICAgICBUaGlzIG1h
eSBiZSA8Y29kZT5OVUxMPC9jb2RlPiBvciBlbXB0eS4KKyAqIEBwYXJhbSBuYW1lIEEgc3RyaW5n
IHRoYXQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBkYXRhLgorICogQHBhcmFtIHBFcnJvckNv
ZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJdCBtdXN0IG5vdCBiZSA8Y29kZT5OVUxM
PC9jb2RlPi4KKyAqIEByZXR1cm4gQSBwb2ludGVyIChoYW5kbGUpIHRvIGEgZGF0YSBtZW1vcnkg
b2JqZWN0LCBvciA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAgICBpZiBhbiBlcnJvciBvY2N1
cnMuIENhbGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+CisgKiAgICAgICAgIHRvIGdl
dCBhIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhLgorICoKKyAqIEBzZWUgdWRhdGFfb3BlbkNo
b2ljZQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIFVEYXRhTWVtb3J5ICogVV9F
WFBPUlQyCit1ZGF0YV9vcGVuKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNv
bnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisv
KioKKyAqIERhdGEgbG9hZGluZyBmdW5jdGlvbi4KKyAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0
byBmaW5kIGFuZCBsb2FkIGVmZmljaWVudGx5IGRhdGEgZm9yCisgKiBJQ1UgYW5kIGFwcGxpY2F0
aW9ucyB1c2luZyBJQ1UuCisgKiBJdCBwcm92aWRlcyBhbiBhYnN0cmFjdCBpbnRlcmZhY2UgdGhh
dCBhbGxvd3MgdG8gc3BlY2lmeSBhIGRhdGEKKyAqIHR5cGUgYW5kIG5hbWUgdG8gZmluZCBhbmQg
bG9hZCB0aGUgZGF0YS4KKyAqCisgKiA8cD5UaGUgaW1wbGVtZW50YXRpb24gZGVwZW5kcyBvbiBw
bGF0Zm9ybSBwcm9wZXJ0aWVzIGFuZCB1c2VyIHByZWZlcmVuY2VzCisgKiBhbmQgbWF5IGludm9s
dmUgbG9hZGluZyBzaGFyZWQgbGlicmFyaWVzIChETExzKSwgbWFwcGluZworICogZmlsZXMgaW50
byBtZW1vcnksIG9yIGZvcGVuKCkvZnJlYWQoKSBmaWxlcy4KKyAqIEl0IG1heSBhbHNvIGludm9s
dmUgdXNpbmcgc3RhdGljIG1lbW9yeSBvciBkYXRhYmFzZSBxdWVyaWVzIGV0Yy4KKyAqIFNldmVy
YWwgb3IgYWxsIGRhdGEgaXRlbXMgbWF5IGJlIGNvbWJpbmVkIGludG8gb25lIGVudGl0eQorICog
KERMTCwgbWVtb3J5LW1hcHBhYmxlIGZpbGUpLjwvcD4KKyAqCisgKiA8cD5UaGUgZGF0YSBpcyBh
bHdheXMgcHJlY2VkZWQgYnkgYSBoZWFkZXIgdGhhdCBpbmNsdWRlcworICogYSA8Y29kZT5VRGF0
YUluZm88L2NvZGU+IHN0cnVjdHVyZS4KKyAqIFRoZSBjYWxsZXIncyA8Y29kZT5pc0FjY2VwdGFi
bGUoKTwvY29kZT4gZnVuY3Rpb24gaXMgY2FsbGVkIHRvIG1ha2UKKyAqIHN1cmUgdGhhdCB0aGUg
ZGF0YSBpcyB1c2VmdWwuIEl0IG1heSBiZSBjYWxsZWQgc2V2ZXJhbCB0aW1lcyBpZiBpdAorICog
cmVqZWN0cyB0aGUgZGF0YSBhbmQgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBsb2NhdGlvbiB3aXRo
IGRhdGEKKyAqIG1hdGNoaW5nIHRoZSB0eXBlIGFuZCBuYW1lLjwvcD4KKyAqCisgKiA8cD5JZiA8
Y29kZT5wYXRoPT1OVUxMPC9jb2RlPiwgdGhlbiBJQ1UgZGF0YSBpcyBsb2FkZWQuCisgKiBPdGhl
cndpc2UsIGl0IGlzIHNlcGFyYXRlZCBpbnRvIGEgYmFzZW5hbWUgYW5kIGEgYmFzZW5hbWUtbGVz
cyBkaXJlY3Rvcnkgc3RyaW5nLgorICogVGhlIGJhc2VuYW1lIGlzIHVzZWQgYXMgdGhlIGRhdGEg
cGFja2FnZSBuYW1lLCBhbmQgdGhlIGRpcmVjdG9yeSBpcworICogbG9naWNhbGx5IHByZXBlbmRl
ZCB0byB0aGUgSUNVIGRhdGEgZGlyZWN0b3J5IHN0cmluZy48L3A+CisgKgorICogPHA+Rm9yIGRl
dGFpbHMgYWJvdXQgSUNVIGRhdGEgbG9hZGluZyBzZWUgdGhlIFVzZXIgR3VpZGUKKyAqIERhdGEg
TWFuYWdlbWVudCBjaGFwdGVyLiAoaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy91c2VyZ3VpZGUvaWN1
ZGF0YS5odG1sKTwvcD4KKyAqCisgKiBAcGFyYW0gcGF0aCBTcGVjaWZpZXMgYW4gYWJzb2x1dGUg
cGF0aCBhbmQvb3IgYSBiYXNlbmFtZSBmb3IgdGhlCisgKiAgICAgICAgICAgICBmaW5kaW5nIG9m
IHRoZSBkYXRhIGluIHRoZSBmaWxlIHN5c3RlbS4KKyAqICAgICAgICAgICAgIDxjb2RlPk5VTEw8
L2NvZGU+IGZvciBJQ1UgZGF0YS4KKyAqIEBwYXJhbSB0eXBlIEEgc3RyaW5nIHRoYXQgc3BlY2lm
aWVzIHRoZSB0eXBlIG9mIGRhdGEgdG8gYmUgbG9hZGVkLgorICogICAgICAgICAgICAgRm9yIGV4
YW1wbGUsIHJlc291cmNlIGJ1bmRsZXMgYXJlIGxvYWRlZCB3aXRoIHR5cGUgInJlcyIsCisgKiAg
ICAgICAgICAgICBjb252ZXJzaW9uIHRhYmxlcyB3aXRoIHR5cGUgImNudiIuCisgKiAgICAgICAg
ICAgICBUaGlzIG1heSBiZSA8Y29kZT5OVUxMPC9jb2RlPiBvciBlbXB0eS4KKyAqIEBwYXJhbSBu
YW1lIEEgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBkYXRhLgorICogQHBh
cmFtIGlzQWNjZXB0YWJsZSBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byB2ZXJpZnkgdGhhdCBs
b2FkZWQgZGF0YQorICogICAgICAgICAgICAgICAgICAgICBpcyB1c2VmdWwgZm9yIHRoZSBjbGll
bnQgY29kZS4gSWYgaXQgcmV0dXJucyBGQUxTRQorICogICAgICAgICAgICAgICAgICAgICBmb3Ig
YWxsIGRhdGEgaXRlbXMsIHRoZW4gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPgorICog
ICAgICAgICAgICAgICAgICAgICB3aWxsIHJldHVybiB3aXRoIGFuIGVycm9yLgorICogQHBhcmFt
IGNvbnRleHQgQXJiaXRyYXJ5IHBhcmFtZXRlciB0byBiZSBwYXNzZWQgaW50byBpc0FjY2VwdGFi
bGUuCisgKiBAcGFyYW0gcEVycm9yQ29kZSBBbiBJQ1UgVUVycm9yQ29kZSBwYXJhbWV0ZXIuIEl0
IG11c3Qgbm90IGJlIDxjb2RlPk5VTEw8L2NvZGU+LgorICogQHJldHVybiBBIHBvaW50ZXIgKGhh
bmRsZSkgdG8gYSBkYXRhIG1lbW9yeSBvYmplY3QsIG9yIDxjb2RlPk5VTEw8L2NvZGU+CisgKiAg
ICAgICAgIGlmIGFuIGVycm9yIG9jY3Vycy4gQ2FsbCA8Y29kZT51ZGF0YV9nZXRNZW1vcnkoKTwv
Y29kZT4KKyAqICAgICAgICAgdG8gZ2V0IGEgcG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEuCisg
KiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgVURhdGFNZW1vcnkgKiBVX0VYUE9SVDIK
K3VkYXRhX29wZW5DaG9pY2UoY29uc3QgY2hhciAqcGF0aCwgY29uc3QgY2hhciAqdHlwZSwgY29u
c3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgVURhdGFNZW1vcnlJc0FjY2VwdGFibGUg
KmlzQWNjZXB0YWJsZSwgdm9pZCAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgVUVycm9yQ29k
ZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogQ2xvc2UgdGhlIGRhdGEgbWVtb3J5LgorICogVGhp
cyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCB0byBhbGxvdyB0aGUgc3lzdGVtIHRvCisgKiByZWxl
YXNlIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBkYXRhIG1lbW9yeS4KKyAqIEBwYXJh
bSBwRGF0YSBUaGUgcG9pbnRlciB0byBkYXRhIG1lbW9yeSBvYmplY3QKKyAqIEBzdGFibGUgSUNV
IDIuMAorICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWRhdGFfY2xvc2UoVURhdGFNZW1v
cnkgKnBEYXRhKTsKKworI2lmIFVfU0hPV19DUExVU1BMVVNfQVBJCisKK1VfTkFNRVNQQUNFX0JF
R0lOCisKKy8qKgorICogXGNsYXNzIExvY2FsVURhdGFNZW1vcnlQb2ludGVyCisgKiAiU21hcnQg
cG9pbnRlciIgY2xhc3MsIGNsb3NlcyBhIFVEYXRhTWVtb3J5IHZpYSB1ZGF0YV9jbG9zZSgpLgor
ICogRm9yIG1vc3QgbWV0aG9kcyBzZWUgdGhlIExvY2FsUG9pbnRlckJhc2UgYmFzZSBjbGFzcy4K
KyAqCisgKiBAc2VlIExvY2FsUG9pbnRlckJhc2UKKyAqIEBzZWUgTG9jYWxQb2ludGVyCisgKiBA
c3RhYmxlIElDVSA0LjQKKyAqLworVV9ERUZJTkVfTE9DQUxfT1BFTl9QT0lOVEVSKExvY2FsVURh
dGFNZW1vcnlQb2ludGVyLCBVRGF0YU1lbW9yeSwgdWRhdGFfY2xvc2UpOworCitVX05BTUVTUEFD
RV9FTkQKKworI2VuZGlmCisKKy8qKgorICogR2V0IHRoZSBwb2ludGVyIHRvIHRoZSBhY3R1YWwg
ZGF0YSBpbnNpZGUgdGhlIGRhdGEgbWVtb3J5LgorICogVGhlIGRhdGEgaXMgcmVhZC1vbmx5Lgor
ICoKKyAqIElDVSBkYXRhIG11c3QgYmUgYXQgbGVhc3QgOC1hbGlnbmVkLCBhbmQgc2hvdWxkIGJl
IDE2LWFsaWduZWQuCisgKgorICogQHBhcmFtIHBEYXRhIFRoZSBwb2ludGVyIHRvIGRhdGEgbWVt
b3J5IG9iamVjdAorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIGNvbnN0IHZvaWQg
KiBVX0VYUE9SVDIKK3VkYXRhX2dldE1lbW9yeShVRGF0YU1lbW9yeSAqcERhdGEpOworCisvKioK
KyAqIEdldCB0aGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgZGF0YSBtZW1vcnkgaGVhZGVyLgorICog
VGhpcyBhbGxvd3MgdG8gZ2V0IGFjY2VzcyB0byB0aGUgaGVhZGVyIGNvbnRhaW5pbmcKKyAqIHBs
YXRmb3JtIGRhdGEgcHJvcGVydGllcyBldGMuIHdoaWNoIGlzIG5vdCBwYXJ0IG9mCisgKiB0aGUg
ZGF0YSBpdHNlbGYgYW5kIGNhbiB0aGVyZWZvcmUgbm90IGJlIGFjY2Vzc2VkCisgKiB2aWEgdGhl
IHBvaW50ZXIgdGhhdCA8Y29kZT51ZGF0YV9nZXRNZW1vcnkoKTwvY29kZT4gcmV0dXJucy4KKyAq
CisgKiBAcGFyYW0gcERhdGEgcG9pbnRlciB0byB0aGUgZGF0YSBtZW1vcnkgb2JqZWN0CisgKiBA
cGFyYW0gcEluZm8gcG9pbnRlciB0byBhIFVEYXRhSW5mbyBvYmplY3Q7CisgKiAgICAgICAgICAg
ICAgaXRzIDxjb2RlPnNpemU8L2NvZGU+IGZpZWxkIG11c3QgYmUgc2V0IGNvcnJlY3RseSwKKyAq
ICAgICAgICAgICAgICB0eXBpY2FsbHkgdG8gPGNvZGU+c2l6ZW9mKFVEYXRhSW5mbyk8L2NvZGU+
LgorICoKKyAqIDxjb2RlPipwSW5mbzwvY29kZT4gd2lsbCBiZSBmaWxsZWQgd2l0aCB0aGUgVURh
dGFJbmZvIHN0cnVjdHVyZQorICogaW4gdGhlIGRhdGEgbWVtb3J5IG9iamVjdC4gSWYgdGhpcyBz
dHJ1Y3R1cmUgaXMgc21hbGxlciB0aGFuCisgKiA8Y29kZT5wSW5mby0+c2l6ZTwvY29kZT4sIHRo
ZW4gdGhlIDxjb2RlPnNpemU8L2NvZGU+IHdpbGwgYmUKKyAqIGFkanVzdGVkIGFuZCBvbmx5IHBh
cnQgb2YgdGhlIHN0cnVjdHVyZSB3aWxsIGJlIGZpbGxlZC4KKyAqIEBzdGFibGUgSUNVIDIuMAor
ICovCitVX1NUQUJMRSB2b2lkIFVfRVhQT1JUMgordWRhdGFfZ2V0SW5mbyhVRGF0YU1lbW9yeSAq
cERhdGEsIFVEYXRhSW5mbyAqcEluZm8pOworCisvKioKKyAqIFRoaXMgZnVuY3Rpb24gYnlwYXNz
ZXMgdGhlIG5vcm1hbCBJQ1UgZGF0YSBsb2FkaW5nIHByb2Nlc3MgYW5kCisgKiBhbGxvd3MgeW91
IHRvIGZvcmNlIElDVSdzIHN5c3RlbSBkYXRhIHRvIGNvbWUgb3V0IG9mIGEgdXNlci1zcGVjaWZp
ZWQKKyAqIGFyZWEgaW4gbWVtb3J5LgorICoKKyAqIElDVSBkYXRhIG11c3QgYmUgYXQgbGVhc3Qg
OC1hbGlnbmVkLCBhbmQgc2hvdWxkIGJlIDE2LWFsaWduZWQuCisgKiBTZWUgaHR0cDovL3VzZXJn
dWlkZS5pY3UtcHJvamVjdC5vcmcvaWN1ZGF0YQorICoKKyAqIFRoZSBmb3JtYXQgb2YgdGhpcyBk
YXRhIGlzIHRoYXQgb2YgdGhlIGljdSBjb21tb24gZGF0YSBmaWxlLCBhcyBpcworICogZ2VuZXJh
dGVkIGJ5IHRoZSBwa2dkYXRhIHRvb2wgd2l0aCBtb2RlPWNvbW1vbiBvciBtb2RlPWRsbC4KKyAq
IFlvdSBjYW4gcmVhZCBpbiBhIHdob2xlIGNvbW1vbiBtb2RlIGZpbGUgYW5kIHBhc3MgdGhlIGFk
ZHJlc3MgdG8gdGhlIHN0YXJ0IG9mIHRoZQorICogZGF0YSwgb3IgKHdpdGggdGhlIGFwcHJvcHJp
YXRlIGxpbmsgb3B0aW9ucykgcGFzcyBpbiB0aGUgcG9pbnRlciB0bworICogdGhlIGRhdGEgdGhh
dCBoYXMgYmVlbiBsb2FkZWQgZnJvbSBhIGRsbCBieSB0aGUgb3BlcmF0aW5nIHN5c3RlbSwKKyAq
IGFzIHNob3duIGluIHRoaXMgY29kZToKKyAqCisgKiAgICAgICBleHRlcm4gY29uc3QgY2hhciBV
X0lNUE9SVCBVX0lDVURBVEFfRU5UUllfUE9JTlQgW107CisgKiAgICAgICAgLy8gVV9JQ1VEQVRB
X0VOVFJZX1BPSU5UIGlzIHNhbWUgYXMgZW50cnkgcG9pbnQgc3BlY2lmaWVkIHRvIHBrZ2RhdGEg
dG9vbAorICogICAgICAgVUVycm9yQ29kZSAgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICoKKyAq
ICAgICAgIHVkYXRhX3NldENvbW1vbkRhdGEoJlVfSUNVREFUQV9FTlRSWV9QT0lOVCwgJnN0YXR1
cyk7CisgKgorICogSXQgaXMgaW1wb3J0YW50IHRoYXQgdGhlIGRlY2xhcmF0aW9uIGJlIGFzIGFi
b3ZlLiBUaGUgZW50cnkgcG9pbnQKKyAqIG11c3Qgbm90IGJlIGRlY2xhcmVkIGFzIGFuIGV4dGVy
biB2b2lkKi4KKyAqCisgKiBTdGFydGluZyB3aXRoIElDVSA0LjQsIGl0IGlzIHBvc3NpYmxlIHRv
IHNldCBzZXZlcmFsIGRhdGEgcGFja2FnZXMsCisgKiBvbmUgcGVyIGNhbGwgdG8gdGhpcyBmdW5j
dGlvbi4KKyAqIHVkYXRhX29wZW4oKSB3aWxsIGxvb2sgZm9yIGRhdGEgaW4gdGhlIG11bHRpcGxl
IGRhdGEgcGFja2FnZXMgaW4gdGhlIG9yZGVyCisgKiBpbiB3aGljaCB0aGV5IHdlcmUgc2V0Lgor
ICogVGhlIHBvc2l0aW9uIG9mIHRoZSBsaW5rZWQtaW4gb3IgZGVmYXVsdC1uYW1lIElDVSAuZGF0
YSBwYWNrYWdlIGluIHRoZQorICogc2VhcmNoIGxpc3QgZGVwZW5kcyBvbiB3aGVuIHRoZSBmaXJz
dCBkYXRhIGl0ZW0gaXMgbG9hZGVkIHRoYXQgaXMgbm90IGNvbnRhaW5lZAorICogaW4gdGhlIGFs
cmVhZHkgZXhwbGljaXRseSBzZXQgcGFja2FnZXMuCisgKiBJZiBkYXRhIHdhcyBsb2FkZWQgaW1w
bGljaXRseSBiZWZvcmUgdGhlIGZpcnN0IGNhbGwgdG8gdGhpcyBmdW5jdGlvbgorICogKGZvciBl
eGFtcGxlLCB2aWEgb3BlbmluZyBhIGNvbnZlcnRlciwgY29uc3RydWN0aW5nIGEgVW5pY29kZVN0
cmluZworICogZnJvbSBkZWZhdWx0LWNvZGVwYWdlIGRhdGEsIHVzaW5nIGZvcm1hdHRpbmcgb3Ig
Y29sbGF0aW9uIEFQSXMsIGV0Yy4pLAorICogdGhlbiB0aGUgZGVmYXVsdCBkYXRhIHdpbGwgYmUg
Zmlyc3QgaW4gdGhlIGxpc3QuCisgKgorICogVGhpcyBmdW5jdGlvbiBoYXMgbm8gZWZmZWN0IG9u
IGFwcGxpY2F0aW9uIChub24gSUNVKSBkYXRhLiAgU2VlIHVkYXRhX3NldEFwcERhdGEoKQorICog
Zm9yIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSBmb3IgYXBwbGljYXRpb24gZGF0YS4KKyAqCisgKiBA
cGFyYW0gZGF0YSBwb2ludGVyIHRvIElDVSBjb21tb24gZGF0YQorICogQHBhcmFtIGVyciBvdXRn
b2luZyBlcnJvciBzdGF0dXMgPGNvZGU+VV9VU0lOR19ERUZBVUxUX1dBUk5JTkcsIFVfVU5TVVBQ
T1JURURfRVJST1I8L2NvZGU+CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgdm9p
ZCBVX0VYUE9SVDIKK3VkYXRhX3NldENvbW1vbkRhdGEoY29uc3Qgdm9pZCAqZGF0YSwgVUVycm9y
Q29kZSAqZXJyKTsKKworCisvKioKKyAqIFRoaXMgZnVuY3Rpb24gYnlwYXNzZXMgdGhlIG5vcm1h
bCBJQ1UgZGF0YSBsb2FkaW5nIHByb2Nlc3MgZm9yIGFwcGxpY2F0aW9uLXNwZWNpZmljCisgKiBk
YXRhIGFuZCBhbGxvd3MgeW91IHRvIGZvcmNlIHRoZSBpdCB0byBjb21lIG91dCBvZiBhIHVzZXIt
c3BlY2lmaWVkCisgKiBwb2ludGVyLgorICoKKyAqIElDVSBkYXRhIG11c3QgYmUgYXQgbGVhc3Qg
OC1hbGlnbmVkLCBhbmQgc2hvdWxkIGJlIDE2LWFsaWduZWQuCisgKiBTZWUgaHR0cDovL3VzZXJn
dWlkZS5pY3UtcHJvamVjdC5vcmcvaWN1ZGF0YQorICoKKyAqIFRoZSBmb3JtYXQgb2YgdGhpcyBk
YXRhIGlzIHRoYXQgb2YgdGhlIGljdSBjb21tb24gZGF0YSBmaWxlLCBsaWtlICdpY3VkdDI2bC5k
YXQnCisgKiBvciB0aGUgY29ycmVzcG9uZGluZyBzaGFyZWQgbGlicmFyeSAoRExMKSBmaWxlLgor
ICogVGhlIGFwcGxpY2F0aW9uIG11c3QgcmVhZCBpbiBvciBvdGhlcndpc2UgY29uc3RydWN0IGFu
IGltYWdlIG9mIHRoZSBkYXRhIGFuZCB0aGVuCisgKiBwYXNzIHRoZSBhZGRyZXNzIG9mIGl0IHRv
IHRoaXMgZnVuY3Rpb24uCisgKgorICoKKyAqIFdhcm5pbmc6ICBzZXRBcHBEYXRhIHdpbGwgc2V0
IGEgVV9VU0lOR19ERUZBVUxUX1dBUk5JTkcgY29kZSBpZgorICogICAgICAgICAgIGRhdGEgd2l0
aCB0aGUgc3BlY2lmZWQgcGF0aCB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gb3BlbmVkLCBvcgorICog
ICAgICAgICAgIGlmIHNldEFwcERhdGEgd2l0aCB0aGUgc2FtZSBwYXRoIGhhcyBhbHJlYWR5IGJl
ZW4gY2FsbGVkLgorICogICAgICAgICAgIEFueSBzdWNoIGNhbGxzIHRvIHNldEFwcERhdGEgd2ls
bCBoYXZlIG5vIGVmZmVjdC4KKyAqCisgKgorICogQHBhcmFtIHBhY2thZ2VOYW1lIHRoZSBwYWNr
YWdlIG5hbWUgYnkgd2hpY2ggdGhlIGFwcGxpY2F0aW9uIHdpbGwgcmVmZXIKKyAqICAgICAgICAg
ICAgIHRvIChvcGVuKSB0aGlzIGRhdGEKKyAqIEBwYXJhbSBkYXRhIHBvaW50ZXIgdG8gdGhlIGRh
dGEKKyAqIEBwYXJhbSBlcnIgb3V0Z29pbmcgZXJyb3Igc3RhdHVzIDxjb2RlPlVfVVNJTkdfREVG
QVVMVF9XQVJOSU5HLCBVX1VOU1VQUE9SVEVEX0VSUk9SPC9jb2RlPgorICogQHNlZSB1ZGF0YV9z
ZXRDb21tb25EYXRhCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VY
UE9SVDIKK3VkYXRhX3NldEFwcERhdGEoY29uc3QgY2hhciAqcGFja2FnZU5hbWUsIGNvbnN0IHZv
aWQgKmRhdGEsIFVFcnJvckNvZGUgKmVycik7CisKKy8qKgorICogUG9zc2libGUgc2V0dGluZ3Mg
Zm9yIHVkYXRhX3NldEZpbGVBY2Nlc3MoKQorICogQHNlZSB1ZGF0YV9zZXRGaWxlQWNjZXNzCisg
KiBAc3RhYmxlIElDVSAzLjQKKyAqLwordHlwZWRlZiBlbnVtIFVEYXRhRmlsZUFjY2VzcyB7Cisg
ICAgLyoqIElDVSBsb29rcyBmb3IgZGF0YSBpbiBzaW5nbGUgZmlsZXMgZmlyc3QsIHRoZW4gaW4g
cGFja2FnZXMuIChkZWZhdWx0KSBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9GSUxFU19G
SVJTVCwKKyAgICAvKiogQW4gYWxpYXMgZm9yIHRoZSBkZWZhdWx0IGFjY2VzcyBtb2RlLiBAc3Rh
YmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9ERUZBVUxUX0FDQ0VTUyA9IFVEQVRBX0ZJTEVTX0ZJ
UlNULAorICAgIC8qKiBJQ1Ugb25seSBsb2FkcyBkYXRhIGZyb20gcGFja2FnZXMsIG5vdCBmcm9t
IHNpbmdsZSBmaWxlcy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfT05MWV9QQUNLQUdF
UywKKyAgICAvKiogSUNVIGxvYWRzIGRhdGEgZnJvbSBwYWNrYWdlcyBmaXJzdCwgYW5kIG9ubHkg
ZnJvbSBzaW5nbGUgZmlsZXMKKyAgICAgICAgaWYgdGhlIGRhdGEgY2Fubm90IGJlIGZvdW5kIGlu
IGEgcGFja2FnZS4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfUEFDS0FHRVNfRklSU1Qs
CisgICAgLyoqIElDVSBkb2VzIG5vdCBhY2Nlc3MgdGhlIGZpbGUgc3lzdGVtIGZvciBkYXRhIGxv
YWRpbmcuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX05PX0ZJTEVTLAorICAgIC8qKiBO
dW1iZXIgb2YgcmVhbCBVRGF0YUZpbGVBY2Nlc3MgdmFsdWVzLiBAc3RhYmxlIElDVSAzLjQgKi8K
KyAgICBVREFUQV9GSUxFX0FDQ0VTU19DT1VOVAorfSBVRGF0YUZpbGVBY2Nlc3M7CisKKy8qKgor
ICogVGhpcyBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIHRvIGNvbnRyb2wgaG93IElDVSBsb2FkcyBk
YXRhLiBJdCBtdXN0IGJlIGNhbGxlZAorICogYmVmb3JlIGFueSBJQ1UgZGF0YSBpcyBsb2FkZWQs
IGluY2x1ZGluZyBhcHBsaWNhdGlvbiBkYXRhIGxvYWRlZCB3aXRoIAorICogdXJlcy9SZXNvdXJj
ZUJ1bmRsZSBvciB1ZGF0YSBBUElzLiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBtdWx0aXRocmVhZCBz
YWZlLiAgCisgKiBUaGUgcmVzdWx0cyBvZiBjYWxsaW5nIGl0IHdoaWxlIG90aGVyIHRocmVhZHMg
YXJlIGxvYWRpbmcgZGF0YSBhcmUgdW5kZWZpbmVkLgorICogQHBhcmFtIGFjY2VzcyBUaGUgdHlw
ZSBvZiBmaWxlIGFjY2VzcyB0byBiZSB1c2VkCisgKiBAcGFyYW0gc3RhdHVzIEVycm9yIGNvZGUu
CisgKiBAc2VlIFVEYXRhRmlsZUFjY2VzcworICogQHN0YWJsZSBJQ1UgMy40IAorICovCitVX1NU
QUJMRSB2b2lkIFVfRVhQT1JUMgordWRhdGFfc2V0RmlsZUFjY2VzcyhVRGF0YUZpbGVBY2Nlc3Mg
YWNjZXNzLCBVRXJyb3JDb2RlICpzdGF0dXMpOworCitVX0NERUNMX0VORAorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1pc2MuaCBiL1NvdXJjZS9XVEYvaWN1
L3VuaWNvZGUvdW1pc2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODU0NTFmYzc2N2MwNTgzNWY2YzE1ZjU2NmYz
NTYyZTJkNGFmODM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91
bWlzYy5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0
IChDKSAxOTk5LTIwMDYsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jw
b3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK
KyogICBmaWxlIG5hbWU6ICB1bWlzYy5oCisqICAgZW5jb2Rpbmc6ICAgVVMtQVNDSUkKKyogICB0
YWIgc2l6ZTogICA4IChub3QgdXNlZCkKKyogICBpbmRlbnRhdGlvbjo0CisqCisqICAgY3JlYXRl
ZCBvbjogMTk5OW9jdDE1CisqICAgY3JlYXRlZCBieTogTWFya3VzIFcuIFNjaGVyZXIKKyovCisK
KyNpZm5kZWYgVU1JU0NfSAorI2RlZmluZSBVTUlTQ19ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0
eXBlcy5oIgorCisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgIEMgQVBJOm1pc2MgZGVmaW5pdGlv
bnMgCisgKgorICogIFRoaXMgZmlsZSBjb250YWlucyBtaXNjZWxsYW5lb3VzIGRlZmluaXRpb25z
IGZvciB0aGUgQyBBUElzLiAKKyAqLworCitVX0NERUNMX0JFR0lOCisKKy8qKiBBIHN0cnVjdCBy
ZXByZXNlbnRpbmcgYSByYW5nZSBvZiB0ZXh0IGNvbnRhaW5pbmcgYSBzcGVjaWZpYyBmaWVsZCAK
KyAqICBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgVUZpZWxkUG9zaXRpb24g
eworICAvKioKKyAgICogVGhlIGZpZWxkIAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IGludDMyX3QgZmllbGQ7CisgIC8qKgorICAgKiBUaGUgc3RhcnQgb2YgdGhlIHRleHQgcmFuZ2Ug
Y29udGFpbmluZyBmaWVsZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90
IGJlZ2luSW5kZXg7CisgIC8qKiAKKyAgICogVGhlIGxpbWl0IG9mIHRoZSB0ZXh0IHJhbmdlIGNv
bnRhaW5pbmcgZmllbGQgCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBl
bmRJbmRleDsKK30gVUZpZWxkUG9zaXRpb247CisKKyNpZiAhVUNPTkZJR19OT19TRVJWSUNFCisv
KioKKyAqIE9wYXF1ZSB0eXBlIHJldHVybmVkIGJ5IHJlZ2lzdGVySW5zdGFuY2UsIHJlZ2lzdGVy
RmFjdG9yeSBhbmQgdW5yZWdpc3RlciBmb3Igc2VydmljZSByZWdpc3RyYXRpb24uCisgKiBAc3Rh
YmxlIElDVSAyLjYKKyAqLwordHlwZWRlZiBjb25zdCB2b2lkKiBVUmVnaXN0cnlLZXk7CisjZW5k
aWYKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IGUzNGQz
N2Y5MzZlY2YzYjgyNzEwMjMwMDE3MTdkOThkN2MzNzNmNDguLmFkNGFjZWNiN2RkZGRhODdiZjAy
N2Q5ZGFhMWJhM2NjN2IwMTYxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC0yOTQsNiArMjk0
LDQyIEBAIGlmIChOT1QgVVNFX1NZU1RFTV9NQUxMT0MpCiAgICAgbGlzdChBUFBFTkQgV1RGX0xJ
QlJBUklFUyBibWFsbG9jKQogZW5kaWYgKCkKIAorc2V0KFdURl9CUkVBS0lOR19SVUxFU19TT1VS
Q0VTCisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0
CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50
eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9u
Q0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9u
Q0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsTm9uQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Q0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dAorKQorCittYWNybyhHRU5FUkFURV9CUkVBS0lOR19S
VUxFUyBfaW5wdXQgX3N5bWJvbE5hbWUgX291dHB1dCkKKyAgICBhZGRfY3VzdG9tX2NvbW1hbmQo
CisgICAgICAgIE9VVFBVVCAke19vdXRwdXR9CisgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke1dU
Rl9ESVJ9L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdz
LnB5CisgICAgICAgIERFUEVORFMgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAke19pbnB1dH0gJHtDTUFL
RV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
ckVwaWxvZ3VlLnR4dAorICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RG
X0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3Mu
cHkgLWluY2x1ZGVEZWZpbmVzICR7X3N5bWJvbE5hbWV9UnVsZXMgJHtDTUFLRV9DVVJSRU5UX1NP
VVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4
dCAke19pbnB1dH0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCA+ICR7X291dHB1dH0KKyAgICAgICAgVkVS
QkFUSU0pCisgICAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMgJHtfb3V0cHV0fSkKKyAgICBBRERf
U09VUkNFX0RFUEVOREVOQ0lFUygke19pbnB1dH0gJHtfb3V0cHV0fSkKK2VuZG1hY3JvKCkKKwor
Zm9yZWFjaCAoX2ZpbGUgJHtXVEZfQlJFQUtJTkdfUlVMRVNfU09VUkNFU30pCisgICAgZ2V0X2Zp
bGVuYW1lX2NvbXBvbmVudChfbmFtZSAke19maWxlfSBOQU1FX1dFKQorICAgIEdFTkVSQVRFX0JS
RUFLSU5HX1JVTEVTKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8ke19maWxlfSAke19uYW1l
fSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzLyR7X25hbWV9LmNwcCkK
K2VuZGZvcmVhY2ggKCkKKworYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklW
RURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAKKyAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQorICAgIERFUEVORFMgJHtDTUFL
RV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMudHh0CisgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dURl9E
SVJ9L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5
IC1pbmNsdWRlRGVmaW5lcyBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMgJHtDTUFLRV9DVVJS
RU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMudHh0ID4gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgVkVSQkFUSU0pCitsaXN0KEFQUEVORCBX
VEZfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHApCitBRERfU09VUkNFX0RFUEVOREVOQ0lFUygke0NN
QUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy50eHQgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxl
cy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwKQorCiBsaXN0KEFQUEVORCBXVEZfU09V
UkNFUwogICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAogKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzViMzgwMTY2MGZiNTc0NjZmMmI1YjcxNTBmYjM0NDY2
YzNiMjg2MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTAsMCArMSw4MSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
IyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworQlJFQUtJTkdfUlVMRVNfRklMRVMgPSBcCisgICAgQnJlYWtpbmdSdWxlcy9DdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Q0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLmJyaworCitCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUyA9IFwK
KyAgICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgXAorICAg
IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgXAorICAgIEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgXAorICAgIEJyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBcCisgICAgQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIFwKKyAgICBCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwIFwKKyAgICBCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwCisKK2lmZXEg
KCQoc2hlbGwgJChDQykgLXN0ZD1nbnUrKzExIC14IGMrKyAtRSAtUCAtZE0gJChTREtfRkxBR1Mp
ICQoRlJBTUVXT1JLX0ZMQUdTKSAkKEhFQURFUl9GTEFHUykgLUkgJChXVEYpIC1pbmNsdWRlICIk
KFdURikvd3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8IGdyZXAgJyBXVEZfUExBVEZPUk1fSU9T
ICcgfCBjdXQgLWQnICcgLWYzKSwgMSkKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMQorZWxzZQor
ICAgIFdURl9QTEFURk9STV9JT1MgPSAwCitlbmRpZgorCitpZmVxICgkKFdURl9QTEFURk9STV9J
T1MpLCAxKQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5UID0g
MAorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAwCitlbHNlCisJQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQgPSAkKEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VCkKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMQorZW5kaWYKKworREVQRU5ERU5DSUVT
ID0gJChCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUykKKworaWZlcSAoJChIQVZFX0lDVUdFTkJS
SyksIDEpCitERVBFTkRFTkNJRVMgKz0gJChCUkVBS0lOR19SVUxFU19GSUxFUykKK2VuZGlmCisK
K2FsbCA6ICQoREVQRU5ERU5DSUVTKQorCitCcmVha2luZ1J1bGVzLyUuYnJrIDogQnJlYWtpbmdS
dWxlcy8lLnBwCisJaWN1Z2VuYnJrIC1jIC1yICQ8IC1vICRACisKK0JyZWFraW5nUnVsZXMvQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCA6IEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLnBwCisJcHl0aG9uICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMgJDwgPiAkQAorCitCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS5jcHAgOiBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS5wcAorCXB5dGhvbiAkKFdURikvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgbGluZUJyZWFrSXRl
cmF0b3IkKlJ1bGVzICQ8ID4gJEAKKworQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMucHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMudHh0CisJLXVuaWZkZWYgLURBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9
JChBRERJVElPTkFMX0VNT0pJX1NVUFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVOVCkgLURIQVZFX0VY
VFJBX0lDVV9OQU1FRF9TRVRTPSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUykgLW8gJEAgJDwK
KworQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUucHAgOiAkKFdURikvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAkKFdURikvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUudHh0ICQoV1RGKS93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisJLWNhdCAkPyB8IHVu
aWZkZWYgLURBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9JChBRERJVElPTkFMX0VNT0pJX1NVUFBP
UlQpIC1ESEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NF
VFMpIC1vICRACmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEx
ZDQxOWJhZjg4ZGYzMTg5NTUwNDdjZTNiNDVkMmZlNTRiZGMyZTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLnR4dApAQCAtMCwwICsxLDE3NiBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9s
bEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5j
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBUaGlzIHJ1bGUg
c2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcK
KyMgPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxl
YXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCisjIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBm
cm9tIHRoZSBvcmlnaW5hbCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6CisjICogUmVwbGFjZWQgJ1tc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVy
YWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVh
cmxpZXI7CisjICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3Zp
bmcgYWZ0ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOworIyAqIEFkZGVkIHJ1bGVz
IHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciB2aXJhbWEgc2lnbnMgb2Yg
SW5kaWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwgYW5kOworIyAqIEFkZGVk
IHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2Ug
aGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCisjICogQWRkZWQgcnVsZXMgZm9yIHJl
Z2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgorCiskQ1IgICAgICA9IFtccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gQ1J9XTsKKyRMRiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBMRn1dOworJENvbnRyb2wgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9
XTsKKyRWb2ljZU1hcmtzID0gW1x1RkY5RVx1RkY5Rl07ICMgSmFwYW5lc2UgaGFsZi13aWR0aCBr
YXRha2FuYSB2b2ljZWQgbWFya3MKKyRFeHRlbmQgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJl
YWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1x1MEUzMCBcdTBFMzIgXHUwRTQ1IFx1MEVCMCBc
dTBFQjJdXTsKKyRTcGFjaW5nTWFyayA9IFtbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcg
TWFya31dIC0gJEV4dGVuZF07CiskTCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gTH1dOworJFYgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFZ9XTsKKyRU
ICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07CiskTFYgICAgICA9IFtc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsKKyRMVlQgICAgID0gW1xwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBMVlR9XTsKKyRIaW4wICAgID0gW1x1MDkwNS1cdTA5MzldOyAjIERl
dmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCiskSGluViAgICA9IFx1MDk0RDsgIyBEZXZhbmFnYXJp
IFNpZ24gVmlyYW1hCiskSGluMSAgICA9IFtcdTA5MTUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExl
dHRlciBLYSwuLi4sSGEKKyRCZW4wICAgID0gW1x1MDk4NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0
dGVyIEEsLi4uLEhhCiskQmVuViAgICA9IFx1MDlDRDsgIyBCZW5nYWxpIFNpZ24gVmlyYW1hCisk
QmVuMSAgICA9IFtcdTA5OTUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEKKyRQ
YW4wICAgID0gW1x1MEEwNS1cdTBBMzldOyAjIEd1cm11a2hpIExldHRlciBBLC4uLixIYQorJFBh
blYgICAgPSBcdTBBNEQ7ICMgR3VybXVraGkgU2lnbiBWaXJhbWEKKyRQYW4xICAgID0gW1x1MEEx
NS1cdTBBMzldOyAjIEd1cm11a2hpIExldHRlciBLYSwuLi4sSGEKKyRHdWowICAgID0gW1x1MEE4
NS1cdTBBQjldOyAjIEd1amFyYXRpIExldHRlciBBLC4uLixIYQorJEd1alYgICAgPSBcdTBBQ0Q7
ICMgR3VqYXJhdGkgU2lnbiBWaXJhbWEKKyRHdWoxICAgID0gW1x1MEE5NS1cdTBBQjldOyAjIEd1
amFyYXRpIExldHRlciBLYSwuLi4sSGEKKyRPcmkwICAgID0gW1x1MEIwNS1cdTBCMzldOyAjIE9y
aXlhIExldHRlciBBLC4uLixIYQorJE9yaVYgICAgPSBcdTBCNEQ7ICMgT3JpeWEgU2lnbiBWaXJh
bWEKKyRPcmkxICAgID0gW1x1MEIxNS1cdTBCMzldOyAjIE9yaXlhIExldHRlciBLYSwuLi4sSGEK
KyRUZWwwICAgID0gW1x1MEMwNS1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKKyRU
ZWxWICAgID0gXHUwQzREOyAjIFRlbHVndSBTaWduIFZpcmFtYQorJFRlbDEgICAgPSBbXHUwQzE0
LVx1MEMzOV07ICMgVGVsdWd1IExldHRlciBLYSwuLi4sSGEKKyRLYW4wICAgID0gW1x1MEM4NS1c
dTBDQjldOyAjIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCiskS2FuViAgICA9IFx1MENDRDsgIyBL
YW5uYWRhIFNpZ24gVmlyYW1hCiskS2FuMSAgICA9IFtcdTBDOTUtXHUwQ0I5XTsgIyBLYW5uYWRh
IExldHRlciBBLC4uLixIYQorJE1hbDAgICAgPSBbXHUwRDA1LVx1MEQzOV07ICMgTWFsYXlhbGFt
IExldHRlciBBLC4uLixIYSAKKyRNYWxWICAgID0gXHUwRDREOyAjIE1hbGF5YWxhbSBTaWduIFZp
cmFtYQorJE1hbDEgICAgPSBbXHUwRDE1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExldHRlciBBLC4u
LixIYQorJFJJICAgICAgPSBbXFUwMDAxRjFFNi1cVTAwMDFGMUZGXTsgIyBFbW9qaSByZWdpb25h
bCBpbmRpY2F0b3JzCiskWldKICAgICA9IFx1MjAwRDsgIyBaZXJvIHdpZHRoIGpvaW5lcgorJEVt
b2ppVmFyID0gW1x1RkUwRl07ICMgRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCisKKyNp
ZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQw
IFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxV
MDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAw
MDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAx
RjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0
OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRC
IFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07
ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9y
TW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0Mz
LVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBc
VTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUw
MDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAw
MUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFG
NTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZB
MyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkg
dGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZWxzZQorCisgICAgJEVtb2ppRm9y
U2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0OEJdOyAjIEVtb2pp
IHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBb
XHUyNjFEIFx1MjcwQS1cdTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUw
MDAxRjNDNyBcVTAwMDFGM0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAw
MUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFG
NDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRB
QSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYg
XFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRo
YXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBb
XFUwMDAxRjNGQi1cVTAwMDFGM0ZGXTsgIyBGaXR6cGF0cmljayBtb2RpZmllcnMKKyEhY2hhaW47
CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICEhUklOb0NoYWluOworCisj
ZW5kaWYKKworISFmb3J3YXJkOworJENSICRMRjsKKyRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7
CisoJExWIHwgJFYpICgkViB8ICRUKTsKKygkTFZUIHwgJFQpICRUOworCisjaWYgQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUkkgJFJJICRFeHRlbmQqIC8gJFJJOworICAgICRSSSAk
UkkgJEV4dGVuZCo7CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOworICAgIFteJENv
bnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOworCisjZWxzZQorCisgICAgW14kQ29udHJvbCAk
Q1IgJExGXSAkRXh0ZW5kOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOwor
ICAgICRSSSAkUkkgLyAkUkk7CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4wICRIaW5W
ICRIaW4xOyAjIERldmFuYWdhcmkgVmlyYW1hIChmb3J3YXJkKQorJEJlbjAgJEJlblYgJEJlbjE7
ICMgQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCiskUGFuMCAkUGFuViAkUGFuMTsgIyBHdXJtdWto
aSBWaXJhbWEgKGZvcndhcmQpCiskR3VqMCAkR3VqViAkR3VqMTsgIyBHdWphcmF0aSBWaXJhbWEg
KGZvcndhcmQpCiskT3JpMCAkT3JpViAkT3JpMTsgIyBPcml5YSBWaXJhbWEgKGZvcndhcmQpCisk
VGVsMCAkVGVsViAkVGVsMTsgIyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQorJEthbjAgJEthblYg
JEthbjE7ICMgS2FubmFkYSBWaXJhbWEgKGZvcndhcmQpCiskTWFsMCAkTWFsViAkTWFsMTsgIyBN
YWxheWFsYW0gVmlyYW1hIChmb3J3YXJkKQorJFpXSiAkRW1vamlGb3JTZXFzOyAjIERvbnQgYnJl
YWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9q
aU1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRo
IHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCishIXJldmVyc2U7
CiskTEYgJENSOworKCRMIHwgJFYgfCAkTFYgfCAkTFZUKSAkTDsKKygkViB8ICRUKSAoJExWIHwg
JFYpOworJFQgKCRMVlQgfCAkVCk7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKwor
ICAgICRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQqICRS
SSAkUkk7CisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFNwYWNp
bmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisKKyNlbHNlCisKKyAgICAkRXh0ZW5kICAgICAg
W14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExG
XTsKKyAgICAkUkkgJFJJIC8gJFJJICRSSTsKKyAgICAkUkkgJFJJOworCisjZW5kaWYKKworJEhp
bjEgJEhpblYgJEhpbjA7ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQorJEJlbjEgJEJl
blYgJEJlbjA7ICMgQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQorJFBhbjEgJFBhblYgJFBhbjA7
ICMgR3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkKKyRHdWoxICRHdWpWICRHdWowOyAjIEd1amFy
YXRpIFZpcmFtYSAoYmFja3dhcmQpCiskT3JpMSAkT3JpViAkT3JpMDsgIyBHdWphcmF0aSBWaXJh
bWEgKGJhY2t3YXJkKQorJFRlbDEgJFRlbFYgJFRlbDA7ICMgVGVsdWd1IFZpcmFtYSAoYmFja3dh
cmQpCiskS2FuMSAkS2FuViAkS2FuMDsgIyBLYW5uYWRhIFZpcmFtYSAoYmFja3dhcmQpCiskTWFs
MSAkTWFsViAkTWFsMDsgIyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKKyRFbW9qaUZvclNl
cXMgJFpXSjsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaU1vZHMg
JEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBl
bW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBt
b2RpZmllcgorCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIXNhZmVfcmV2
ZXJzZTsKKyAgICAkUkkgJFJJKzsKKyAgICBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlG
b3JNb2RzOworICAgICEhc2FmZV9mb3J3YXJkOworICAgICRSSSAkUkkrOworICAgICRFbW9qaUZv
ck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7CisKKyNlbHNlCisKKyAgICBbJEVtb2ppVmFy
ICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOworICAgICRFbW9qaUZvck1vZHMgWyRFbW9qaVZh
ciAkRW1vamlNb2RzXSs7CisgICAgISFzYWZlX3JldmVyc2U7CisgICAgISFzYWZlX2ZvcndhcmQ7
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZi
MDQ3NjlmY2EzOThhY2M5OTc4NjkyYjc3NzA2NDA1ZWQwNDhhNwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0
cmluZ3MucHkKQEAgLTAsMCArMSwxMTAgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisj
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5cworaW1wb3J0IHJl
CisKK2hlYWRlciA9ICIiIi8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLyIiIgorCisKK2RlZiBtYWluKGFyZ3Y9Tm9uZSk6Cisg
ICAgaWYgbm90IGFyZ3Y6CisgICAgICAgIGFyZ3YgPSBzeXMuYXJndgorICAgIGZpbGVOYW1lU3Rh
cnRJbmRleCA9IDEKKworICAgIGluY2x1ZGVEZWZpbmVzID0gRmFsc2UKKyAgICBpZiBhcmd2W2Zp
bGVOYW1lU3RhcnRJbmRleF0gPT0gIi1pbmNsdWRlRGVmaW5lcyI6CisgICAgICAgIGluY2x1ZGVE
ZWZpbmVzID0gVHJ1ZQorICAgICAgICBmaWxlTmFtZVN0YXJ0SW5kZXggPSBmaWxlTmFtZVN0YXJ0
SW5kZXggKyAxCisKKyAgICBzeW1ib2xOYW1lID0gYXJndltmaWxlTmFtZVN0YXJ0SW5kZXhdWzBd
Lmxvd2VyKCkgKyBhcmd2W2ZpbGVOYW1lU3RhcnRJbmRleF1bMTpdCisgICAgZmlsZU5hbWVTdGFy
dEluZGV4ID0gZmlsZU5hbWVTdGFydEluZGV4ICsgMQorICAgIGZpbGVOYW1lcyA9IGFyZ3ZbZmls
ZU5hbWVTdGFydEluZGV4Ol0KKworICAgIHByaW50KGhlYWRlcikKKyAgICBwcmludCgiIikKKyAg
ICBwcmludCgiLy8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdl
bmVyYXRlZCBieSB0aGUgc2NyaXB0IikKKyAgICBwcmludCgiLy8gV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IikKKyAgICBwcmludCgiIikK
KyAgICBwcmludCgiI2luY2x1ZGUgXCJjb25maWcuaFwiIikKKyAgICBwcmludCgiI2luY2x1ZGUg
PHVuaWNvZGUvdXZlcm51bS5oPiIpCisgICAgcHJpbnQoIiIpCisgICAgaWYgaW5jbHVkZURlZmlu
ZXM6CisgICAgICAgIHByaW50KCIjZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExB
VEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTEwMCkpIikKKyAgICAgICAgcHJpbnQoIiNkZWZpbmUgSEFWRV9FWFRSQV9J
Q1VfTkFNRURfU0VUUyAoKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9W
RVJTSU9OX01JTk9SX05VTSA+PSA5KSkiKQorICAgICAgICBwcmludCgiIikKKyAgICBwcmludCgi
bmFtZXNwYWNlIFdURiB7IikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiY29uc3QgY2hhciog
IiArIHN5bWJvbE5hbWUgKyAiID0gIikKKworICAgIGZvciBmaWxlTmFtZSBpbiBmaWxlTmFtZXM6
CisgICAgICAgIGZvciBsIGluIG9wZW4oZmlsZU5hbWUsICdyJyk6CisgICAgICAgICAgICBsaW5l
ID0gbC5yc3RyaXAoKQorICAgICAgICAgICAgaWYgcmUubWF0Y2goIl5ccyokIiwgbGluZSk6Cisg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoIiMg
Iik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lID09ICIjIjoK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgi
IyIpOgorICAgICAgICAgICAgICAgIHByaW50KGxpbmUpCisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIG1hdGNoID0gcmUubWF0Y2goIl4oLiopOyggIyAuKik/JCIsIGxpbmUpCisg
ICAgICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJc
IiIgKyBtYXRjaC5ncm91cCgxKS5yZXBsYWNlKCJcXCIsICJcXFxcIikgKyAiO1wiIgorICAgICAg
ICAgICAgICAgICAgICBpZiBtYXRjaC5ncm91cCgyKToKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdCArPSAiIC8vICIgKyBtYXRjaC5ncm91cCgyKVszOl0KKyAgICAgICAgICAgICAgICAg
ICAgcHJpbnQocmVzdWx0KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
ICAgIGV4aXQoMSkKKworICAgIHByaW50KCI7IikKKyAgICBwcmludCgifSIpCisKK2lmIF9fbmFt
ZV9fID09ICdfX21haW5fXyc6CisgICAgc3lzLmV4aXQobWFpbihzeXMuYXJndikpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JF
cGlsb2d1ZS50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JFcGlsb2d1ZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2JjNzA2NmFjNDIwZjkxN2FlYTMwMDlk
ZTU2NzRmYmFkYzdhNjQ4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApAQCAtMCwwICsxLDM3
MiBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworJEFJID0gWzpMaW5lQnJlYWsgPSBBbWJpZ3VvdXM6XTsKKyRB
TCA9IFs6TGluZUJyZWFrID0gQWxwaGFiZXRpYzpdOworJEJBID0gW1s6TGluZUJyZWFrID0gQnJl
YWtfQWZ0ZXI6XSAtICRCQV9TVUJdOworJEJCID0gWzpMaW5lQnJlYWsgPSBCcmVha19CZWZvcmU6
XTsKKyRCSyA9IFs6TGluZUJyZWFrID0gTWFuZGF0b3J5X0JyZWFrOl07CiskQjIgPSBbOkxpbmVC
cmVhayA9IEJyZWFrX0JvdGg6XTsKKyRDQiA9IFs6TGluZUJyZWFrID0gQ29udGluZ2VudF9CcmVh
azpdOworJENMID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QdW5jdHVhdGlvbjpdOworJENNID0gWzpM
aW5lQnJlYWsgPSBDb21iaW5pbmdfTWFyazpdOworJENQID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9Q
YXJlbnRoZXNpczpdOworJENSID0gWzpMaW5lQnJlYWsgPSBDYXJyaWFnZV9SZXR1cm46XTsKKyRF
WCA9IFtbOkxpbmVCcmVhayA9IEV4Y2xhbWF0aW9uOl0gLSAkRVhfU1VCXTsKKyRHTCA9IFs6TGlu
ZUJyZWFrID0gR2x1ZTpdOworCisjaWYgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUworCisgICAg
JEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdfTGV0dGVyOl07CisKKyNlbHNlCisKKyAgICAkSEwg
PSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1dOworCisjZW5kaWYKKworJEhZID0gWzpMaW5lQnJl
YWsgPSBIeXBoZW46XTsKKyRIMiA9IFs6TGluZUJyZWFrID0gSDI6XTsKKyRIMyA9IFs6TGluZUJy
ZWFrID0gSDM6XTsKKyRJRCA9IFtbW1s6TGluZUJyZWFrID0gSWRlb2dyYXBoaWM6XSAtICRDSl0g
JElEX0FERF0gLSAkSURfU1VCXTsKKyRJTiA9IFtbOkxpbmVCcmVhayA9IEluc2VwYXJhYmxlOl0g
LSAkSU5fU1VCXTsKKyRJUyA9IFtbOkxpbmVCcmVhayA9IEluZml4X051bWVyaWM6XSAtICRJU19T
VUJdOworJEpMID0gWzpMaW5lQnJlYWsgPSBKTDpdOworJEpWID0gWzpMaW5lQnJlYWsgPSBKVjpd
OworJEpUID0gWzpMaW5lQnJlYWsgPSBKVDpdOworJExGID0gWzpMaW5lQnJlYWsgPSBMaW5lX0Zl
ZWQ6XTsKKyROTCA9IFs6TGluZUJyZWFrID0gTmV4dF9MaW5lOl07CiskTlMgPSBbW1tbOkxpbmVC
cmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRDSl0gJE5TX0FERF0gLSAkTlNfU1VCXTsKKyROVSA9IFs6
TGluZUJyZWFrID0gTnVtZXJpYzpdOworJE9QID0gWzpMaW5lQnJlYWsgPSBPcGVuX1B1bmN0dWF0
aW9uOl07CiskUE8gPSBbWzpMaW5lQnJlYWsgPSBQb3N0Zml4X051bWVyaWM6XSAtICRQT19TVUJd
OworJFBSID0gW1s6TGluZUJyZWFrID0gUHJlZml4X051bWVyaWM6XSAtICRQUl9TVUJdOworJFFV
ID0gWzpMaW5lQnJlYWsgPSBRdW90YXRpb246XTsKKyRSSSA9IFtcVTAwMDFGMUU2LVxVMDAwMUYx
RkZdOworJFNBID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsKKyRTRyA9IFs6TGlu
ZUJyZWFrID0gU3Vycm9nYXRlOl07CiskU1AgPSBbOkxpbmVCcmVhayA9IFNwYWNlOl07CiskU1kg
PSBbOkxpbmVCcmVhayA9IEJyZWFrX1N5bWJvbHM6XTsKKyRXSiA9IFs6TGluZUJyZWFrID0gV29y
ZF9Kb2luZXI6XTsKKyRYWCA9IFs6TGluZUJyZWFrID0gVW5rbm93bjpdOworJFpXID0gWzpMaW5l
QnJlYWsgPSBaV1NwYWNlOl07CiskWldKID0gXHUyMDBEOworJEVtb2ppVmFyID0gXHVGRTBGOwor
CisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1
MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBcVTAwMDFGMzA4IFxVMDAwMUYzQzMtXFUwMDAxRjND
NCBcVTAwMDFGM0NBLVxVMDAwMUYzQ0MgXFUwMDAxRjNGMyBcVTAwMDFGNDQxIFxVMDAwMUY0NjYt
XFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NkYgXFUwMDAxRjQ3MSBcVTAwMDFGNDczIFxV
MDAwMUY0NzcgXFUwMDAxRjQ4MS1cVTAwMDFGNDgyIFxVMDAwMUY0ODYtXFUwMDAxRjQ4NyBcVTAw
MDFGNDhCIFxVMDAwMUY1NzUgXFUwMDAxRjVFOCBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAx
RjY0QiBcVTAwMDFGNjRELVxVMDAwMUY2NEUgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2
QjZdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9q
aUZvck1vZHMgPSBbXHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUyNzBEIFxVMDAwMUYzODUgXFUwMDAx
RjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EgXFUwMDAxRjNDQiBcVTAwMDFGNDQyLVxVMDAwMUY0
NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZF
LVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1c
VTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU3NSBcVTAwMDFGNTkwIFxVMDAwMUY1OTUgXFUw
MDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAw
MUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzAgXFUwMDAxRjkxOF0gOyAjIEVt
b2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2Vsc2UKKworICAgICRFbW9q
aUZvclNlcXMgPSBbXHUyNzY0IFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDhCXTsKKyAg
ICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI3MEEtXHUyNzBDIFxVMDAwMUYzODUgXFUwMDAx
RjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcgXFUwMDAxRjNDQSBcVTAwMDFGNDQyLVxVMDAwMUY0
NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZF
LVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1c
VTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUw
MDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAw
MUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbmRp
ZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUwMDAxRjNGRl07CiskZGljdGlvbmFyeSA9
IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07CiskQUxQbHVzID0gWyRBTCAkQUkgJFNB
ICRTRyAkWFhdOworJEFMY20gPSAkQUxQbHVzICRDTSo7CiskQkFjbSA9ICRCQSAkQ00qOworJEJC
Y20gPSAkQkIgJENNKjsKKyRCMmNtID0gJEIyICRDTSo7CiskQ0xjbSA9ICRDTCAkQ00qOworJENQ
Y20gPSAkQ1AgJENNKjsKKyRFWGNtID0gJEVYICRDTSo7CiskR0xjbSA9ICRHTCAkQ00qOworJEhM
Y20gPSAkSEwgJENNKjsKKyRIWWNtID0gJEhZICRDTSo7CiskSDJjbSA9ICRIMiAkQ00qOworJEgz
Y20gPSAkSDMgJENNKjsKKyRJRGNtID0gJElEICRDTSo7CiskSU5jbSA9ICRJTiAkQ00qOworJElT
Y20gPSAkSVMgJENNKjsKKyRKTGNtID0gJEpMICRDTSo7CiskSlZjbSA9ICRKViAkQ00qOworJEpU
Y20gPSAkSlQgJENNKjsKKyROU2NtID0gJE5TICRDTSo7CiskTlVjbSA9ICROVSAkQ00qOworJE9Q
Y20gPSAkT1AgJENNKjsKKyRQT2NtID0gJFBPICRDTSo7CiskUFJjbSA9ICRQUiAkQ00qOworJFFV
Y20gPSAkUVUgJENNKjsKKyRSSWNtID0gJFJJICRDTSo7CiskU1ljbSA9ICRTWSAkQ00qOworJFdK
Y20gPSAkV0ogJENNKjsKKworISFmb3J3YXJkOworJENBTl9DTSA9IFteJFNQICRCSyAkQ1IgJExG
ICROTCAkWlcgJENNXTsKKyRDQU5UX0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07
CiskQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOworJEFMX0ZPTExP
V19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRTWSAkV0ogJEdMICRPUCAkUVUgJEJBICRIWSAk
TlMgJElOICROVSAkQUxQbHVzXTsKKyRBTF9GT0xMT1cgPSBbJEFMX0ZPTExPV19OT0NNICRBTF9G
T0xMT1dfQ01dOworJExCNEJyZWFrcyA9IFskQksgJENSICRMRiAkTkxdOworJExCNE5vbkJyZWFr
cyA9IFteJEJLICRDUiAkTEYgJE5MXTsKKyRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOwor
JExCOE5vbkJyZWFrcyA9IFtbJExCNE5vbkJyZWFrc10gLSBbJFpXXV07CiskTEIxOE5vbkJyZWFr
cyA9IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOworJExCMThCcmVha3MgPSBbJExCOEJyZWFrcyAk
U1BdOworJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVha3MgLSAkQ0JdOworJEFMUGx1cyAk
Q00rOworJEJBICRDTSs7CiskQkIgJENNKzsKKyRCMiAkQ00rOworJENMICRDTSs7CiskQ1AgJENN
KzsKKyRFWCAkQ00rOworJEdMICRDTSs7CiskSEwgJENNKzsKKyRIWSAkQ00rOworJEgyICRDTSs7
CiskSDMgJENNKzsKKyRJRCAkQ00rOworJElOICRDTSs7CiskSVMgJENNKzsKKyRKTCAkQ00rOwor
JEpWICRDTSs7CiskSlQgJENNKzsKKyROUyAkQ00rOworJE5VICRDTSs7CiskT1AgJENNKzsKKyRQ
TyAkQ00rOworJFBSICRDTSs7CiskUVUgJENNKzsKKyRSSSAkQ00rOworJFNZICRDTSs7CiskV0og
JENNKzsKKyRDUiAkTEYgezEwMH07CiskTEI0Tm9uQnJlYWtzPyAkTEI0QnJlYWtzIHsxMDB9Owor
JENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEwMH07CiskQ00rICRMQjRCcmVha3MgezEwMH07Cisk
TEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsKKyRDQU5fQ00gJENNKiBbJFNQICRaV107CiskQ00rIFsk
U1AgJFpXXTsKKyRFbW9qaUZvclNlcXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRFbW9q
aUZvclNlcXM7CiskQ0FOX0NNICRDTSs7CiskQ00rOworJENBTl9DTSAkQ00qICRXSmNtOworJExC
OE5vbkJyZWFrcyAkV0pjbTsKKyRDTSsgJFdKY207CiskV0pjbSAkQ0FOVF9DTTsKKyRXSmNtICRD
QU5fQ00gJENNKjsKKyRHTGNtICRDQU5fQ00gJENNKjsKKyRHTGNtICRDQU5UX0NNOworW1skTEI4
Tm9uQnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSogJEdMY207CiskQ00rIEdMY207CiskTEI4
Tm9uQnJlYWtzICRDTDsKKyRDQU5fQ00gJENNKiAkQ0w7CiskQ00rICRDTDsKKyRMQjhOb25CcmVh
a3MgJENQOworJENBTl9DTSAkQ00qICRDUDsKKyRDTSsgJENQOworJExCOE5vbkJyZWFrcyAkRVg7
CiskQ0FOX0NNICRDTSogJEVYOworJENNKyAkRVg7CiskTEI4Tm9uQnJlYWtzICRJUzsKKyRDQU5f
Q00gJENNKiAkSVM7CiskQ00rICRJUzsKKyRMQjhOb25CcmVha3MgJFNZOworJENBTl9DTSAkQ00q
ICRTWTsKKyRDTSsgJFNZOworJE9QY20gJFNQKiAkQ0FOX0NNICRDTSo7CiskT1BjbSAkU1AqICRD
QU5UX0NNOworJE9QY20gJFNQKyAkQ00rICRBTF9GT0xMT1c/OworJFFVY20gJFNQKiAkT1BjbTsK
KygkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOworJEIyY20gJFNQKiAkQjJjbTsKKyRMQjE4Tm9u
QnJlYWtzICRDTSogJFFVY207CiskQ00rICRRVWNtOworJFFVY20gLj87CiskUVVjbSAkTEIxOE5v
bkJyZWFrcyAkQ00qOworJExCMjBOb25CcmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2Nt
KTsgCiskQkJjbSBbXiRDQl07CiskQkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOworJEhMY20gKCRI
WWNtIHwgJEJBY20pIFteJENCXT87CiskU1ljbSAkSExjbTsKKygkQUxjbSB8ICRITGNtKSAkSU5j
bTsKKyRDTSsgJElOY207CiskRVhjbSAkSU5jbTsKKyRJRGNtICRJTmNtOworJElOY20gJElOY207
CiskTlVjbSAkSU5jbTsKKyRJRGNtICRQT2NtOworJEFMY20gJE5VY207CiskSExjbSAkTlVjbTsK
KyRDTSsgJE5VY207CiskTlVjbSAkQUxjbTsKKyROVWNtICRITGNtOworJFBSY20gJElEY207Cisk
UFJjbSAoJEFMY20gfCAkSExjbSk7CiskUE9jbSAoJEFMY20gfCAkSExjbSk7CisoJFBSY20gfCAk
UE9jbSk/ICgkT1BjbSB8ICRIWWNtKT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkqICgk
Q0xjbSB8ICRDUGNtKT8gKCRQUmNtIHwgJFBPY20pPzsKKyRKTGNtICgkSkxjbSB8ICRKVmNtIHwg
JEgyY20gfCAkSDNjbSk7CisoJEpWY20gfCAkSDJjbSkgKCRKVmNtIHwgJEpUY20pOworKCRKVGNt
IHwgJEgzY20pICRKVGNtOworKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20p
ICRJTmNtOworKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRQT2NtOwor
JFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pOworKCRBTGNtIHwg
JEhMY20pICgkQUxjbSB8ICRITGNtKTsKKyRDTSsgKCRBTGNtIHwgJEhMY20pOworJElTY20gKCRB
TGNtIHwgJEhMY20pOworKCRBTGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207CiskQ00rICRPUGNt
OworJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKKworICAgICRSSWNtICRSSWNtOworCisjZW5kaWYKKworJEVtb2ppRm9yTW9kcyAk
RW1vamlWYXI/ICRFbW9qaU1vZHM7CisKKyEhcmV2ZXJzZTsKKyRDTSsgJEFMUGx1czsKKyRDTSsg
JEJBOworJENNKyAkQkI7CiskQ00rICRCMjsKKyRDTSsgJENMOworJENNKyAkQ1A7CiskQ00rICRF
WDsKKyRDTSsgJEdMOworJENNKyAkSEw7CiskQ00rICRIWTsKKyRDTSsgJEgyOworJENNKyAkSDM7
CiskQ00rICRJRDsKKyRDTSsgJElOOworJENNKyAkSVM7CiskQ00rICRKTDsKKyRDTSsgJEpWOwor
JENNKyAkSlQ7CiskQ00rICROUzsKKyRDTSsgJE5VOworJENNKyAkT1A7CiskQ00rICRQTzsKKyRD
TSsgJFBSOworJENNKyAkUVU7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAg
ICRDTSsgJFJJOworCisjZW5kaWYKKworJENNKyAkU1k7CiskQ00rICRXSjsKKyRDTSs7CiskQUxf
Rk9MTE9XICRDTSsgLyAoWyRCSyAkQ1IgJExGICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRT
UCB8ICRTUCsgJENNKiAoW14kT1AgJENNICRTUF0gfCBbJEFMIHtlb2Z9XSkpOworWyRQUl0gLyAk
Q00rIFskQksgJENSICRMRiAkTkwgJFpXICRTUCB7ZW9mfV07CiskTEI0QnJlYWtzIFskTEI0Tm9u
QnJlYWtzLSRDTV07CiskTEI0QnJlYWtzICRDTSsgJENBTl9DTTsKKyRMRiAkQ1I7CitbJFNQICRa
V10gWyRMQjROb25CcmVha3MtJENNXTsKK1skU1AgJFpXXSAkQ00rICRDQU5fQ007CiskRW1vamlG
b3JTZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2ppVmFyPyAkRW1vamlGb3JTZXFzOworJENNKyAk
Q0FOX0NNOworJENNKiAkV0ogJENNKiAkQ0FOX0NNOworJENNKiAkV0ogWyRMQjhOb25CcmVha3Mt
JENNXTsKKyRDQU5UX0NNICRDTSogJFdKOworJENNKiAkQ0FOX0NNICRDTSogJFdKOworJENNKiAk
R0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZXV07CiskQ0FOVF9DTSAkQ00q
ICRHTDsKKyRDTSogJENBTl9DTSAkQ00qICRHTDsKKyRDTCAkQ00rICRDQU5fQ007CiskQ1AgJENN
KyAkQ0FOX0NNOworJEVYICRDTSsgJENBTl9DTTsKKyRJUyAkQ00rICRDQU5fQ007CiskU1kgJENN
KyAkQ0FOX0NNOworJENMIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskQ1AgWyRMQjhOb25CcmVha3Mt
JENNXTsKKyRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOworJElTIFskTEI4Tm9uQnJlYWtzLSRDTV07
CiskU1kgWyRMQjhOb25CcmVha3MtJENNXTsKK1skQ0wgJENQICRFWCAkSVMgJFNZXSAkQ00rICRT
UCsgJENNKiAkT1A7IAorJENNKiAkQ0FOX0NNICRTUCogJENNKiAkT1A7CiskQ0FOVF9DTSAkU1Aq
ICRDTSogJE9QOworJEFMX0ZPTExPVz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsKKyRBTF9GT0xM
T1dfTk9DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskQ00qICRBTF9GT0xMT1dfQ00gJENNKyAkU1Ar
ICRDTSogJE9QOworJFNZICRDTSAkU1ArICRPUDsKKyRDTSogJE9QICRTUCogJENNKiAkUVU7Cisk
Q00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7CiskQ00qICRCMiAkU1AqICRDTSogJEIyOwor
JENNKiAkUVUgJENNKiAkQ0FOX0NNOworJENNKiAkUVUgJExCMThOb25CcmVha3M7CiskQ00qICRD
QU5fQ00gJENNKiAkUVU7CiskQ0FOVF9DTSAkQ00qICRRVTsKKyRDTSogKCRCQSB8ICRIWSB8ICRO
UykgJENNKiBbJExCMjBOb25CcmVha3MtJENNXTsKKyRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV0g
JENNKiAkQkI7CitbXiRDQl0gJENNKiAkQkI7CitbXiRDQl0gJENNKiAoJEhZIHwgJEJBKSAkQ00q
ICRITDsKKyRDTSogJEhMICRDTSogJFNZOworJENNKiAkSU4gJENNKiAoJEFMUGx1cyB8ICRITCk7
CiskQ00qICRJTiAkQ00qICRFWDsKKyRDTSogJElOICRDTSogJElEOworJENNKiAkSU4gJENNKiAk
SU47CiskQ00qICRJTiAkQ00qICROVTsKKyRDTSogJFBPICRDTSogJElEOworJENNKiAkTlUgJENN
KiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICROVTsKKyRDTSog
JElEICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUFI7CiskQ00qICgkQUxQ
bHVzIHwgJEhMKSAkQ00qICRQTzsKKygkQ00qICgkUFIgfCAkUE8pKT8gKCRDTSogKCRDTCB8ICRD
UCkpPyAoJENNKiAoJE5VIHwgJElTIHwgJFNZKSkqICRDTSogJE5VICgkQ00qICgkT1AgfCAkSFkp
KT8gKCRDTSogKCRQUiB8ICRQTykpPzsKKyRDTSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENN
KiAkSkw7CiskQ00qICgkSlQgfCAkSlYpICRDTSogKCRIMiB8ICRKVik7CiskQ00qICRKVCAkQ00q
ICgkSDMgfCAkSlQpOworJENNKiAkSU4gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpM
KTsKKyRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7CiskQ00qICgk
SDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRI
TCkgJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRJUzsK
KyRDTSogJE9QICRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpOworJENNKiAoJEFMUGx1cyB8ICRI
TCB8ICROVSkgJENNKiAkQ1A7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAg
ICRDTSogJFJJICRDTSogJFJJOworCisjZW5kaWYKKworJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRF
bW9qaUZvck1vZHM7CisKKyEhc2FmZV9mb3J3YXJkOworWyRDTSAkT1AgJFFVICRDTCAkQ1AgJEIy
ICRQUiAkSFkgJEJBICRTUCAkZGljdGlvbmFyeV0rIFteJENNICRPUCAkUVUgJENMICRDUCAkQjIg
JFBSICRIWSAkQkEgJGRpY3Rpb25hcnldOworJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7CisgICAg
CishIXNhZmVfcmV2ZXJzZTsKKyRDTSsgW14kQ00gJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOwor
JENNKyAkU1AgLyAuOworJFNQKyAkQ00qICRPUDsKKyRTUCsgJENNKiAkUVU7CiskU1ArICRDTSog
KCRDTCB8ICRDUCk7CiskU1ArICRDTSogJEIyOworJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsK
KygkQ00qICgkSVMgfCAkU1kpKSsgJENNKiAkTlU7CisoJENMIHwgJENQKSAkQ00qICgkTlUgfCAk
SVMgfCAkU1kpOworJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9s
b2d1ZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWIzZjY2ZjQyYWYxMzhlZDU4ZmY0MjFmNjc2OGQ4ZmQ1ODAx
MjgyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApAQCAtMCwwICsxLDM4IEBACisjIChDKSAx
OTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIw
MDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMg
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCishIWNoYWluOworISFMQkNNTm9DaGFpbjsKKyEhbG9va0FoZWFkSGFyZEJyZWFrOwor
CisjaWYgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUworCisgICAgJENKID0gWzpMaW5lQnJlYWs9
Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjpdOworCisjZWxzZQorCisgICAgJENKID0gW1x1
MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2M1x1MzA4M1x1MzA4NVx1MzA4N1x1MzA4
RVx1MzA5NVx1MzA5Nlx1MzBBMVx1MzBBM1x1MzBBNVx1MzBBN1x1MzBBOVx1MzBDM1x1MzBFM1x1
MzBFNVx1MzBFN1x1MzBFRVx1MzBGNVx1MzBGNlx1MzBGQ1x1MzFGMFx1MzFGMVx1MzFGMlx1MzFG
M1x1MzFGNFx1MzFGNVx1MzFGNlx1MzFGN1x1MzFGOFx1MzFGOVx1MzFGQVx1MzFGQlx1MzFGQ1x1
MzFGRFx1MzFGRVx1MzFGRlx1RkY2N1x1RkY2OFx1RkY2OVx1RkY2QVx1RkY2Qlx1RkY2Q1x1RkY2
RFx1RkY2RVx1RkY2Rlx1RkY3MF07CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0IGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjkwN2MwY2E1YWE3YjJmZmJmOGIyY2Q5MDkyYWE1ZjNlMWRiYTQwOTIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBM
YXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRv
cmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9ICcn
OworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBd
OworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAk
TlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0IGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWRiOGYwZmY1MTg1NmQ5N2M5YzE0ZTEyMTYzNzM0ZmRmYzk3Yzlj
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMp
IDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDct
MjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
IyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSBbXHUwMDIxXHUw
MDNGXHVGRjAxXHVGRjFGXTsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSBbXHUyMDI1XHUyMDI2
XTsKKyRJU19TVUIgPSBbXHUwMDNBXHUwMDNCXTsKKyROU19TVUIgPSBbXHUyMDNDXHUyMDQ3XHUy
MDQ4XHUyMDQ5XHUzMDA1XHUzMDFDXHUzMDNCXHUzMDlEXHUzMDlFXHUzMEEwXHUzMEZCXHUzMEZE
XHUzMEZFXHVGRjFBXHVGRjFCXHVGRjY1XTsKKyRQT19TVUIgPSBbXHUwMDI1XHUwMEEyXHUwMEIw
XHUyMDMwXHUyMDMyXHUyMDMzXHUyMTAzXHVGRjA1XHVGRkUwXTsKKyRQUl9TVUIgPSBbXHUwMDI0
XHUwMEEzXHUwMEE1XHUyMEFDXHUyMTE2XHVGRjA0XHVGRkUxXHVGRkU1XTsKKyRJRF9BREQgPSBb
JENKICRCQV9TVUIgJEVYX1NVQiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9T
VUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9u
Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43Y2JiYzhhODgxNWU0ZDBkY2ZiOTYwYzExMmY2MGE4MzhkM2E0
Mjg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQKQEAgLTAsMCArMSwzNSBAQAor
IyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykg
MjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcn
OworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtc
dTMwMDVcdTMwM0JcdTMwOURcdTMwOUVcdTMwRkRcdTMwRkVdOworJFBPX1NVQiA9ICcnOworJFBS
X1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAn
JzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzQyODc5
ZGQxZjgyZWI2MmQyOGQ4YWE3YmNkZGY0NDZkMDczODdmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25D
SksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2Rl
Lm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRF
WF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsK
KyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAn
JzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pL
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MDdjMGNhNWFhN2IyZmZiZjhiMmNkOTA5MmFhNWYzZTFkYmE0MDky
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMp
IDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDct
MjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
IyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSAnJzsKKyRJTl9T
VUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUzMDFD
XHUzMEEwXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKICRC
QV9TVUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50
eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJjZjZhMDgyNmFkYTRlZGNmY2YzOTQz
YjY4OWY4YzA2ZTBiZDc0OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApAQCAt
MCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENv
cHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7
CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0g
Jyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSl07CiskTlNf
QUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjc0Mjg3OWRkMWY4MmViNjJkMjhkOGFhN2JjZGRmNDQ2ZDA3Mzg3ZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMg
S25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2gg
TW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisk
QkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7
CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0g
Jyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5v
bkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc0Mjg3OWRkMWY4MmViNjJk
MjhkOGFhN2JjZGRmNDQ2ZDA3Mzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4
dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcp
CisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VC
ID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNf
U1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gJyc7Cisk
TlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVh
a0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3Bw
CmluZGV4IDA1YTUxOTU2MDVlMWQ4ZmJmNzYyMzEzOTdkODljMDgxNTMyMDkzMjcuLmNiZGYxNDA1
Mjg0M2E0YmNkNWE0ZDZlYmE3N2RmNWVjNGJjY2U2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3IuY3BwCkBAIC0zMSw5ICszMSw2IEBACiAjaW5jbHVkZSA8dW5pY29k
ZS91YnJrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCi0vLyBGSVhN
RTogVGhpcyBuZWVkcyBhIGJldHRlciBuYW1lCi0jZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVCAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkpCi0KIG5hbWVzcGFjZSBXVEYgewogCiAvLyBJdGVy
YXRvciBpbml0aWFsaXphdGlvbgpAQCAtNjEsNiArNTgsMTIgQEAgc3RhdGljIFRleHRCcmVha0l0
ZXJhdG9yKiBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoY29uc3QgY2hhciogYnJlYWtSdWxl
cykKIAogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorVGV4
dEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQp
Cit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKIAogLy8gSXRlcmF0b3IgdGV4dCBz
ZXR0aW5nCiAKQEAgLTE2NCwxMzUgKzE2NywyMCBAQCBUZXh0QnJlYWtJdGVyYXRvciogc2VudGVu
Y2VCcmVha0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogICAgIHJldHVybiBzZXRUZXh0Rm9y
SXRlcmF0b3IoKnN0YXRpY1NlbnRlbmNlQnJlYWtJdGVyYXRvciwgc3RyaW5nKTsKIH0KIAorI2lm
ICFQTEFURk9STShJT1MpCitzdGF0aWMgVGV4dEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUN1cnNvck1v
dmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2soKQoreworICAgIGlmIChhdXRvKiBpdGVyYXRvciA9
IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50
KSkKKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yOworICAgIHJldHVybiBpbml0aWFsaXplSXRlcmF0
b3JXaXRoUnVsZXMoY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzKTsKK30KKyNlbmRpZgorCiBU
ZXh0QnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcihTdHJpbmdWaWV3IHN0cmlu
ZykKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIC8vIFRoaXMgcnVsZSBzZXQgaXMgYmFzZWQg
b24gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NwotICAgIC8vIDxodHRw
Oi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0x
L3NvdXJjZS9kYXRhL2Jya2l0ci8+LgotICAgIC8vIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9t
IHRoZSBvcmlnaW5hbCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6Ci0gICAgLy8gKiBSZXBsYWNlZCAn
W1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBTcGFjaW5nTWFya31dJyB3aXRoICdbXHB7R2Vu
ZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya30gLSAkRXh0ZW5kXScgZm9yIElDVSAzLjggb3Ig
ZWFybGllcjsKLSAgICAvLyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZy
b20gbW92aW5nIGFmdGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKLSAgICAvLyAq
IEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciB2aXJh
bWEgc2lnbnMgb2YgSW5kaWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwgYW5k
OwotICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5n
IGJlZm9yZSBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJrcy4KLSAgICAv
LyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4KLSAgICBzdGF0
aWMgY29uc3QgY2hhcioga1J1bGVzID0KLSAgICAgICAgIiRDUiAgICAgID0gW1xccHtHcmFwaGVt
ZV9DbHVzdGVyX0JyZWFrID0gQ1J9XTsiCi0gICAgICAgICIkTEYgICAgICA9IFtcXHB7R3JhcGhl
bWVfQ2x1c3Rlcl9CcmVhayA9IExGfV07IgotICAgICAgICAiJENvbnRyb2wgPSBbXFxwe0dyYXBo
ZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07IgotICAgICAgICAiJFZvaWNlTWFya3MgPSBb
XFx1RkY5RVxcdUZGOUZdOyIgLy8gSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FuYSB2b2ljZWQg
bWFya3MKLSAgICAgICAgIiRFeHRlbmQgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
RXh0ZW5kfSAkVm9pY2VNYXJrcyAtIFtcXHUwRTMwIFxcdTBFMzIgXFx1MEU0NSBcXHUwRUIwIFxc
dTBFQjJdXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgPSBbW1xccHtHZW5lcmFsX0NhdGVnb3J5
ID0gU3BhY2luZyBNYXJrfV0gLSAkRXh0ZW5kXTsiCi0gICAgICAgICIkTCAgICAgICA9IFtcXHB7
R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsiCi0gICAgICAgICIkViAgICAgICA9IFtcXHB7
R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFZ9XTsiCi0gICAgICAgICIkVCAgICAgICA9IFtcXHB7
R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFR9XTsiCi0gICAgICAgICIkTFYgICAgICA9IFtcXHB7
R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07IgotICAgICAgICAiJExWVCAgICAgPSBbXFxw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVlR9XTsiCi0gICAgICAgICIkSGluMCAgICA9IFtc
XHUwOTA1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAg
IiRIaW5WICAgID0gXFx1MDk0RDsiIC8vIERldmFuYWdhcmkgU2lnbiBWaXJhbWEKLSAgICAgICAg
IiRIaW4xICAgID0gW1xcdTA5MTUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJpIExldHRlciBLYSwu
Li4sSGEKLSAgICAgICAgIiRCZW4wICAgID0gW1xcdTA5ODUtXFx1MDlCOV07IiAvLyBCZW5nYWxp
IExldHRlciBBLC4uLixIYQotICAgICAgICAiJEJlblYgICAgPSBcXHUwOUNEOyIgLy8gQmVuZ2Fs
aSBTaWduIFZpcmFtYQotICAgICAgICAiJEJlbjEgICAgPSBbXFx1MDk5NS1cXHUwOUI5XTsiIC8v
IEJlbmdhbGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJFBhbjAgICAgPSBbXFx1MEEwNS1c
XHUwQTM5XTsiIC8vIEd1cm11a2hpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJFBhblYgICAg
PSBcXHUwQTREOyIgLy8gR3VybXVraGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRQYW4xICAgID0g
W1xcdTBBMTUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAg
ICIkR3VqMCAgICA9IFtcXHUwQTg1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEEsLi4u
LEhhCi0gICAgICAgICIkR3VqViAgICA9IFxcdTBBQ0Q7IiAvLyBHdWphcmF0aSBTaWduIFZpcmFt
YQotICAgICAgICAiJEd1ajEgICAgPSBbXFx1MEE5NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRpIExl
dHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRPcmkwICAgID0gW1xcdTBCMDUtXFx1MEIzOV07IiAv
LyBPcml5YSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRPcmlWICAgID0gXFx1MEI0RDsiIC8v
IE9yaXlhIFNpZ24gVmlyYW1hCi0gICAgICAgICIkT3JpMSAgICA9IFtcXHUwQjE1LVxcdTBCMzld
OyIgLy8gT3JpeWEgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJFRlbDAgICAgPSBbXFx1MEMw
NS1cXHUwQzM5XTsiIC8vIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRUZWxWICAg
ID0gXFx1MEM0RDsiIC8vIFRlbHVndSBTaWduIFZpcmFtYQotICAgICAgICAiJFRlbDEgICAgPSBb
XFx1MEMxNC1cXHUwQzM5XTsiIC8vIFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIk
S2FuMCAgICA9IFtcXHUwQzg1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEK
LSAgICAgICAgIiRLYW5WICAgID0gXFx1MENDRDsiIC8vIEthbm5hZGEgU2lnbiBWaXJhbWEKLSAg
ICAgICAgIiRLYW4xICAgID0gW1xcdTBDOTUtXFx1MENCOV07IiAvLyBLYW5uYWRhIExldHRlciBB
LC4uLixIYQotICAgICAgICAiJE1hbDAgICAgPSBbXFx1MEQwNS1cXHUwRDM5XTsiIC8vIE1hbGF5
YWxhbSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWxWICAgID0gXFx1MEQ0RDsiIC8vIE1h
bGF5YWxhbSBTaWduIFZpcmFtYQotICAgICAgICAiJE1hbDEgICAgPSBbXFx1MEQxNS1cXHUwRDM5
XTsiIC8vIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRSSSAgICAgID0gW1xc
VTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsiIC8vIEVtb2ppIHJlZ2lvbmFsIGluZGljYXRvcnMKLSAg
ICAgICAgIiRaV0ogICAgID0gXFx1MjAwRDsiIC8vIFplcm8gd2lkdGggam9pbmVyCi0gICAgICAg
ICIkRW1vamlWYXIgPSBbXFx1RkUwRl07IiAvLyBFbW9qaS1zdHlsZSB2YXJpYXRpb24gc2VsZWN0
b3IKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFbW9qaUZvclNlcXMg
PSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAxRjND
My1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUwMDAx
RjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBcXFUw
MDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MiBc
XFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAxRjVF
OCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUwMDAx
RjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXHUyNjk1LVxcdTI2OTYg
XFx1MjcwOCBcXFUwMDAxRjMzRSBcXFUwMDAxRjM3MyBcXFUwMDAxRjM5MyBcXFUwMDAxRjNBNCBc
XFUwMDAxRjNBOCBcXFUwMDAxRjNFQiBcXFUwMDAxRjNFRCBcXFUwMDAxRjRCQi1cXFUwMDAxRjRC
QyBcXFUwMDAxRjUyNyBcXFUwMDAxRjUyQyBcXFUwMDAxRjY4MCBcXFUwMDAxRjY5MiBcXFUwMDAx
RjkyNiBcXFUwMDAxRjkzNy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV07IiAv
LyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9q
aUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNkY5IFxcdTI3MEEtXFx1MjcwRCBcXFUwMDAxRjM4NSBc
XFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQSBcXFUwMDAxRjNDQiBcXFUwMDAxRjQ0
Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAx
RjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUw
MDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU3NSBc
XFUwMDAxRjU5MCBcXFUwMDAxRjU5NSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0
NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAx
RjZCNiBcXFUwMDAxRjZDMCBcXFUwMDAxRjkxOCBcXFUwMDAxRjNDMiBcXFUwMDAxRjNDNyBcXFUw
MDAxRjNDQyBcXFUwMDAxRjU3NCBcXFUwMDAxRjU3QSBcXFUwMDAxRjZDQyBcXFUwMDAxRjkxOS1c
XFUwMDAxRjkxRSBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzMCBcXFUwMDAxRjkzMy1cXFUwMDAxRjkz
OSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRy
aWNrIG1vZGlmaWVycwotI2Vsc2UKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBc
XFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IiAvLyBFbW9qaSB0aGF0IHBhcnRp
Y2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYx
RCBcXHUyNzBBLVxcdTI3MEMgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxV
MDAwMUYzQzcgXFxVMDAwMUYzQ0EgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYt
XFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0
NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAw
MUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxV
MDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYg
XFxVMDAwMUY2QzBdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMK
LSNlbmRpZgotICAgICAgICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07
IiAvLyBGaXR6cGF0cmljayBtb2RpZmllcnMKLSAgICAgICAgIiEhY2hhaW47IgotI2lmIEFERElU
SU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiISFSSU5vQ2hhaW47IgotI2VuZGlmCi0gICAg
ICAgICIhIWZvcndhcmQ7IgotICAgICAgICAiJENSICRMRjsiCi0gICAgICAgICIkTCAoJEwgfCAk
ViB8ICRMViB8ICRMVlQpOyIKLSAgICAgICAgIigkTFYgfCAkVikgKCRWIHwgJFQpOyIKLSAgICAg
ICAgIigkTFZUIHwgJFQpICRUOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAg
ICAgIiRSSSAkUkkgJEV4dGVuZCogLyAkUkk7IgotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKjsi
Ci0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14kQ29u
dHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotI2Vsc2UKLSAgICAgICAgIlteJENvbnRyb2wg
JENSICRMRl0gJEV4dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5n
TWFyazsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7IgotI2Vu
ZGlmCi0gICAgICAgICIkSGluMCAkSGluViAkSGluMTsiIC8vIERldmFuYWdhcmkgVmlyYW1hIChm
b3J3YXJkKQotICAgICAgICAiJEJlbjAgJEJlblYgJEJlbjE7IiAvLyBCZW5nYWxpIFZpcmFtYSAo
Zm9yd2FyZCkKLSAgICAgICAgIiRQYW4wICRQYW5WICRQYW4xOyIgLy8gR3VybXVraGkgVmlyYW1h
IChmb3J3YXJkKQotICAgICAgICAiJEd1ajAgJEd1alYgJEd1ajE7IiAvLyBHdWphcmF0aSBWaXJh
bWEgKGZvcndhcmQpCi0gICAgICAgICIkT3JpMCAkT3JpViAkT3JpMTsiIC8vIE9yaXlhIFZpcmFt
YSAoZm9yd2FyZCkKLSAgICAgICAgIiRUZWwwICRUZWxWICRUZWwxOyIgLy8gVGVsdWd1IFZpcmFt
YSAoZm9yd2FyZCkKLSAgICAgICAgIiRLYW4wICRLYW5WICRLYW4xOyIgLy8gS2FubmFkYSBWaXJh
bWEgKGZvcndhcmQpCi0gICAgICAgICIkTWFsMCAkTWFsViAkTWFsMTsiIC8vIE1hbGF5YWxhbSBW
aXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkWldKICRFbW9qaUZvclNlcXM7IiAvLyBEb24ndCBi
cmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzICRFbW9q
aVZhcj8gJEVtb2ppTW9kczsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkg
KHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZp
ZXIKLSAgICAgICAgIiEhcmV2ZXJzZTsiCi0gICAgICAgICIkTEYgJENSOyIKLSAgICAgICAgIigk
TCB8ICRWIHwgJExWIHwgJExWVCkgJEw7IgotICAgICAgICAiKCRWIHwgJFQpICgkTFYgfCAkVik7
IgotICAgICAgICAiJFQgKCRMVlQgfCAkVCk7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAotICAgICAgICAiJEV4dGVuZCogJFJJICRSSSAvICRFeHRlbmQqICRSSSAkUkk7IgotICAgICAg
ICAiJEV4dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAk
Q1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0j
ZWxzZQotICAgICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAg
ICAiJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFJJICRSSSAv
ICRSSSAkUkk7IgotICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4xICRI
aW5WICRIaW4wOyIgLy8gRGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEJl
bjEgJEJlblYgJEJlbjA7IiAvLyBCZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIk
UGFuMSAkUGFuViAkUGFuMDsiIC8vIEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAg
ICIkR3VqMSAkR3VqViAkR3VqMDsiIC8vIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAg
ICAgICIkT3JpMSAkT3JpViAkT3JpMDsiIC8vIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCi0g
ICAgICAgICIkVGVsMSAkVGVsViAkVGVsMDsiIC8vIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQot
ICAgICAgICAiJEthbjEgJEthblYgJEthbjA7IiAvLyBLYW5uYWRhIFZpcmFtYSAoYmFja3dhcmQp
Ci0gICAgICAgICIkTWFsMSAkTWFsViAkTWFsMDsiIC8vIE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3
YXJkKQotICAgICAgICAiJEVtb2ppRm9yU2VxcyAkWldKOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1v
amkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZv
ck1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3
aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0jaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgICAg
ICIkUkkgJFJJKzsiCi0gICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JN
b2RzOyIKLSAgICAgICAgIiEhc2FmZV9mb3J3YXJkOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAg
ICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IjsKKyAgICBzdGF0
aWMgVGV4dEJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBjcmVh
dGVDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKCk7CiAjZWxzZQotICAgICAgICAi
WyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIkRW1vamlG
b3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyIKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNl
OyIKLSAgICAgICAgIiEhc2FmZV9mb3J3YXJkOyI7Ci0jZW5kaWYKLSAgICBzdGF0aWMgVGV4dEJy
ZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRl
cmF0b3JXaXRoUnVsZXMoa1J1bGVzKTsKLSNlbHNlIC8vIFBMQVRGT1JNKElPUykKICAgICAvLyBV
c2UgdGhlIHNwZWNpYWwgVGhhaSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgZm9yIGFsbCBsb2Nh
bGVzCiAgICAgc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yKFVCUktfQ0hBUkFDVEVSLCAidGgiKTsKICNlbmRp
ZiAvLyAhUExBVEZPUk0oSU9TKQpAQCAtMzE5LDQ0MiArMjA3LDIwIEBAIHZvaWQgcmVsZWFzZUxp
bmVCcmVha0l0ZXJhdG9yKFRleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKICAgICBMaW5lQnJl
YWtJdGVyYXRvclBvb2w6OnNoYXJlZFBvb2woKS5wdXQoaXRlcmF0b3IpOwogfQogCi1zdGF0aWMg
Y29uc3QgY2hhciogdWF4MTRQcm9sb2d1ZSA9Ci0gICAgIiEhY2hhaW47IgotICAgICIhIUxCQ01O
b0NoYWluOyIKLSAgICAiISFsb29rQWhlYWRIYXJkQnJlYWs7IjsKLQotc3RhdGljIGNvbnN0IGNo
YXIqIHVheDE0QXNzaWdubWVudHNCZWZvcmUgPQotICAgIC8vIGV4cGxpY2l0bHkgZW51bWVyYXRl
ICRDSiBzaW5jZSBJQ1UgdmVyc2lvbnMgcHJpb3IgdG8gNDkgZG9uJ3Qgc3VwcG9ydCA6TGluZUJy
ZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6Ci0gICAgIiRDSiA9IFsiCi0jaWYgKFVf
SUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+
PSA5KQotICAgICI6TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6IgotI2Vs
c2UKLSAgICAiXFx1MzA0MVxcdTMwNDNcXHUzMDQ1XFx1MzA0N1xcdTMwNDlcXHUzMDYzXFx1MzA4
M1xcdTMwODVcXHUzMDg3XFx1MzA4RVxcdTMwOTVcXHUzMDk2XFx1MzBBMVxcdTMwQTNcXHUzMEE1
XFx1MzBBNyIKLSAgICAiXFx1MzBBOVxcdTMwQzNcXHUzMEUzXFx1MzBFNVxcdTMwRTdcXHUzMEVF
XFx1MzBGNVxcdTMwRjZcXHUzMEZDIgotICAgICJcXHUzMUYwXFx1MzFGMVxcdTMxRjJcXHUzMUYz
XFx1MzFGNFxcdTMxRjVcXHUzMUY2XFx1MzFGN1xcdTMxRjhcXHUzMUY5XFx1MzFGQVxcdTMxRkJc
XHUzMUZDXFx1MzFGRFxcdTMxRkVcXHUzMUZGIgotICAgICJcXHVGRjY3XFx1RkY2OFxcdUZGNjlc
XHVGRjZBXFx1RkY2QlxcdUZGNkNcXHVGRjZEXFx1RkY2RVxcdUZGNkZcXHVGRjcwIgotI2VuZGlm
Ci0gICAgIl07IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21M
b29zZUNKSyA9Ci0gICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAgICAiJEVYX1NV
QiA9IFtcXHUwMDIxXFx1MDAzRlxcdUZGMDFcXHVGRjFGXTsiCi0gICAgIiRJRF9TVUIgPSAnJzsi
Ci0gICAgIiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAgICAiJElTX1NVQiA9IFtcXHUw
MDNBXFx1MDAzQl07IgotICAgICIkTlNfU1VCID0gW1xcdTIwM0NcXHUyMDQ3XFx1MjA0OFxcdTIw
NDlcXHUzMDA1XFx1MzAxQ1xcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwQTBcXHUzMEZCXFx1MzBG
RFxcdTMwRkVcXHVGRjFBXFx1RkYxQlxcdUZGNjVdOyIKLSAgICAiJFBPX1NVQiA9IFtcXHUwMDI1
XFx1MDBBMlxcdTAwQjBcXHUyMDMwXFx1MjAzMlxcdTIwMzNcXHUyMTAzXFx1RkYwNVxcdUZGRTBd
OyIKLSAgICAiJFBSX1NVQiA9IFtcXHUwMDI0XFx1MDBBM1xcdTAwQTVcXHUyMEFDXFx1MjExNlxc
dUZGMDRcXHVGRkUxXFx1RkZFNV07IgotICAgICIkSURfQUREID0gWyRDSiAkQkFfU1VCICRFWF9T
VUIgJElOX1NVQiAkSVNfU1VCICROU19TVUIgJFBPX1NVQiAkUFJfU1VCXTsiCi0gICAgIiROU19B
REQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxv
b3NlTm9uQ0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAg
ICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAg
ICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gW1xcdTMwMDVcXHUzMDNCXFx1MzA5RFxc
dTMwOUVcXHUzMEZEXFx1MzBGRV07IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VC
ID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJdOyIKLSAgICAiJE5T
X0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9t
Tm9ybWFsQ0pLID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAgICIkRVhf
U1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAg
ICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gW1xcdTMwMUNcXHUzMEEwXTsiCi0gICAg
IiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENK
ICRCQV9TVUIgJE5TX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0
IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxOb25DSksgPQotICAgICIkQkFfU1VC
ID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIk
SU5fU1VCID0gJyc7IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gJyc7Igot
ICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0g
WyRDSl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0
QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIk
RVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gJyc7Igot
ICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gJyc7IgotICAgICIkUE9fU1VCID0g
Jyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gJyc7IgotICAgICIkTlNf
QUREID0gWyRDSl07IjsKLQotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9u
Q0pLICAgICAgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSwotI2RlZmluZSB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tRGVmYXVsdENKSyAgICAgICAgdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5v
cm1hbENKSwotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNKSyAgICAg
dWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSwotCi1zdGF0aWMgY29uc3QgY2hhciog
dWF4MTRBc3NpZ25tZW50c0FmdGVyID0KLSAgICAiJEFJID0gWzpMaW5lQnJlYWsgPSBBbWJpZ3Vv
dXM6XTsiCi0gICAgIiRBTCA9IFs6TGluZUJyZWFrID0gQWxwaGFiZXRpYzpdOyIKLSAgICAiJEJB
ID0gW1s6TGluZUJyZWFrID0gQnJlYWtfQWZ0ZXI6XSAtICRCQV9TVUJdOyIKLSAgICAiJEJCID0g
WzpMaW5lQnJlYWsgPSBCcmVha19CZWZvcmU6XTsiCi0gICAgIiRCSyA9IFs6TGluZUJyZWFrID0g
TWFuZGF0b3J5X0JyZWFrOl07IgotICAgICIkQjIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JvdGg6
XTsiCi0gICAgIiRDQiA9IFs6TGluZUJyZWFrID0gQ29udGluZ2VudF9CcmVhazpdOyIKLSAgICAi
JENMID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QdW5jdHVhdGlvbjpdOyIKLSAgICAiJENNID0gWzpM
aW5lQnJlYWsgPSBDb21iaW5pbmdfTWFyazpdOyIKLSAgICAiJENQID0gWzpMaW5lQnJlYWsgPSBD
bG9zZV9QYXJlbnRoZXNpczpdOyIKLSAgICAiJENSID0gWzpMaW5lQnJlYWsgPSBDYXJyaWFnZV9S
ZXR1cm46XTsiCi0gICAgIiRFWCA9IFtbOkxpbmVCcmVhayA9IEV4Y2xhbWF0aW9uOl0gLSAkRVhf
U1VCXTsiCi0gICAgIiRHTCA9IFs6TGluZUJyZWFrID0gR2x1ZTpdOyIKLSNpZiAoVV9JQ1VfVkVS
U0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpCi0g
ICAgIiRITCA9IFs6TGluZUJyZWFrID0gSGVicmV3X0xldHRlcjpdOyIKLSNlbHNlCi0gICAgIiRI
TCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07IgotI2VuZGlmCi0gICAgIiRIWSA9IFs6TGlu
ZUJyZWFrID0gSHlwaGVuOl07IgotICAgICIkSDIgPSBbOkxpbmVCcmVhayA9IEgyOl07IgotICAg
ICIkSDMgPSBbOkxpbmVCcmVhayA9IEgzOl07IgotICAgICIkSUQgPSBbW1tbOkxpbmVCcmVhayA9
IElkZW9ncmFwaGljOl0gLSAkQ0pdICRJRF9BRERdIC0gJElEX1NVQl07IgotICAgICIkSU4gPSBb
WzpMaW5lQnJlYWsgPSBJbnNlcGFyYWJsZTpdIC0gJElOX1NVQl07IgotICAgICIkSVMgPSBbWzpM
aW5lQnJlYWsgPSBJbmZpeF9OdW1lcmljOl0gLSAkSVNfU1VCXTsiCi0gICAgIiRKTCA9IFs6TGlu
ZUJyZWFrID0gSkw6XTsiCi0gICAgIiRKViA9IFs6TGluZUJyZWFrID0gSlY6XTsiCi0gICAgIiRK
VCA9IFs6TGluZUJyZWFrID0gSlQ6XTsiCi0gICAgIiRMRiA9IFs6TGluZUJyZWFrID0gTGluZV9G
ZWVkOl07IgotICAgICIkTkwgPSBbOkxpbmVCcmVhayA9IE5leHRfTGluZTpdOyIKLSAgICAiJE5T
ID0gW1tbWzpMaW5lQnJlYWsgPSBOb25zdGFydGVyOl0gLSAkQ0pdICROU19BRERdIC0gJE5TX1NV
Ql07IgotICAgICIkTlUgPSBbOkxpbmVCcmVhayA9IE51bWVyaWM6XTsiCi0gICAgIiRPUCA9IFs6
TGluZUJyZWFrID0gT3Blbl9QdW5jdHVhdGlvbjpdOyIKLSAgICAiJFBPID0gW1s6TGluZUJyZWFr
ID0gUG9zdGZpeF9OdW1lcmljOl0gLSAkUE9fU1VCXTsiCi0gICAgIiRQUiA9IFtbOkxpbmVCcmVh
ayA9IFByZWZpeF9OdW1lcmljOl0gLSAkUFJfU1VCXTsiCi0gICAgIiRRVSA9IFs6TGluZUJyZWFr
ID0gUXVvdGF0aW9uOl07IgotICAgICIkUkkgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIK
LSAgICAiJFNBID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsiCi0gICAgIiRTRyA9
IFs6TGluZUJyZWFrID0gU3Vycm9nYXRlOl07IgotICAgICIkU1AgPSBbOkxpbmVCcmVhayA9IFNw
YWNlOl07IgotICAgICIkU1kgPSBbOkxpbmVCcmVhayA9IEJyZWFrX1N5bWJvbHM6XTsiCi0gICAg
IiRXSiA9IFs6TGluZUJyZWFrID0gV29yZF9Kb2luZXI6XTsiCi0gICAgIiRYWCA9IFs6TGluZUJy
ZWFrID0gVW5rbm93bjpdOyIKLSAgICAiJFpXID0gWzpMaW5lQnJlYWsgPSBaV1NwYWNlOl07Igot
ICAgICIkWldKID0gXFx1MjAwRDsiCi0gICAgIiRFbW9qaVZhciA9IFxcdUZFMEY7IgotI2lmIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1
MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQg
XFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0
NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAw
MUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxV
MDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUt
XFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2
QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFx1MjY5NS1cXHUyNjk2IFxcdTI3MDggXFxVMDAw
MUYzM0UgXFxVMDAwMUYzNzMgXFxVMDAwMUYzOTMgXFxVMDAwMUYzQTQgXFxVMDAwMUYzQTggXFxV
MDAwMUYzRUIgXFxVMDAwMUYzRUQgXFxVMDAwMUY0QkItXFxVMDAwMUY0QkMgXFxVMDAwMUY1Mjcg
XFxVMDAwMUY1MkMgXFxVMDAwMUY2ODAgXFxVMDAwMUY2OTIgXFxVMDAwMUY5MjYgXFxVMDAwMUY5
MzctXFxVMDAwMUY5MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdOyIgLy8gRW1vamkgdGhhdCBw
YXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYx
RCBcXHUyNkY5IFxcdTI3MEEtXFx1MjcwRCBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAx
RjNDNCBcXFUwMDAxRjNDQSBcXFUwMDAxRjNDQiBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUw
MDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1c
XFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4
NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU3NSBcXFUwMDAxRjU5MCBcXFUwMDAx
RjU5NSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUw
MDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMCBc
XFUwMDAxRjkxOCBcXFUwMDAxRjNDMiBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQyBcXFUwMDAxRjU3
NCBcXFUwMDAxRjU3QSBcXFUwMDAxRjZDQyBcXFUwMDAxRjkxOS1cXFUwMDAxRjkxRSBcXFUwMDAx
RjkyNiBcXFUwMDAxRjkzMCBcXFUwMDAxRjkzMy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUw
MDAxRjkzRV0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2Vs
c2UKLSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5
IFxcVTAwMDFGNDhCXTsiCi0gICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNzBBLVxc
dTI3MEMgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQzcgXFxV
MDAwMUYzQ0EgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAg
XFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0
N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAw
MUY0QUEgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxV
MDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzBd
IDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbmRpZgotICAg
ICIkRW1vamlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiCi0gICAgIiRkaWN0aW9u
YXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsiCi0gICAgIiRBTFBsdXMgPSBb
JEFMICRBSSAkU0EgJFNHICRYWF07IgotICAgICIkQUxjbSA9ICRBTFBsdXMgJENNKjsiCi0gICAg
IiRCQWNtID0gJEJBICRDTSo7IgotICAgICIkQkJjbSA9ICRCQiAkQ00qOyIKLSAgICAiJEIyY20g
PSAkQjIgJENNKjsiCi0gICAgIiRDTGNtID0gJENMICRDTSo7IgotICAgICIkQ1BjbSA9ICRDUCAk
Q00qOyIKLSAgICAiJEVYY20gPSAkRVggJENNKjsiCi0gICAgIiRHTGNtID0gJEdMICRDTSo7Igot
ICAgICIkSExjbSA9ICRITCAkQ00qOyIKLSAgICAiJEhZY20gPSAkSFkgJENNKjsiCi0gICAgIiRI
MmNtID0gJEgyICRDTSo7IgotICAgICIkSDNjbSA9ICRIMyAkQ00qOyIKLSAgICAiJElEY20gPSAk
SUQgJENNKjsiCi0gICAgIiRJTmNtID0gJElOICRDTSo7IgotICAgICIkSVNjbSA9ICRJUyAkQ00q
OyIKLSAgICAiJEpMY20gPSAkSkwgJENNKjsiCi0gICAgIiRKVmNtID0gJEpWICRDTSo7IgotICAg
ICIkSlRjbSA9ICRKVCAkQ00qOyIKLSAgICAiJE5TY20gPSAkTlMgJENNKjsiCi0gICAgIiROVWNt
ID0gJE5VICRDTSo7IgotICAgICIkT1BjbSA9ICRPUCAkQ00qOyIKLSAgICAiJFBPY20gPSAkUE8g
JENNKjsiCi0gICAgIiRQUmNtID0gJFBSICRDTSo7IgotICAgICIkUVVjbSA9ICRRVSAkQ00qOyIK
LSAgICAiJFJJY20gPSAkUkkgJENNKjsiCi0gICAgIiRTWWNtID0gJFNZICRDTSo7IgotICAgICIk
V0pjbSA9ICRXSiAkQ00qOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEZvcndhcmQgPQot
ICAgICIhIWZvcndhcmQ7IgotICAgICIkQ0FOX0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRa
VyAkQ01dOyIKLSAgICAiJENBTlRfQ00gPSBbJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsi
Ci0gICAgIiRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAkTkwgJFpXICRTUF07IgotICAg
ICIkQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRXSiAkR0wgJE9QICRR
VSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOyIKLSAgICAiJEFMX0ZPTExPVyA9IFskQUxf
Rk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07IgotICAgICIkTEI0QnJlYWtzID0gWyRCSyAkQ1Ig
JExGICROTF07IgotICAgICIkTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOyIKLSAg
ICAiJExCOEJyZWFrcyA9IFskTEI0QnJlYWtzICRaV107IgotICAgICIkTEI4Tm9uQnJlYWtzID0g
W1skTEI0Tm9uQnJlYWtzXSAtIFskWlddXTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzID0gWyRMQjhO
b25CcmVha3MgLSBbJFNQXV07IgotICAgICIkTEIxOEJyZWFrcyA9IFskTEI4QnJlYWtzICRTUF07
IgotICAgICIkTEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJyZWFrcyAtICRDQl07IgotICAgICIk
QUxQbHVzICRDTSs7IgotICAgICIkQkEgJENNKzsiCi0gICAgIiRCQiAkQ00rOyIKLSAgICAiJEIy
ICRDTSs7IgotICAgICIkQ0wgJENNKzsiCi0gICAgIiRDUCAkQ00rOyIKLSAgICAiJEVYICRDTSs7
IgotICAgICIkR0wgJENNKzsiCi0gICAgIiRITCAkQ00rOyIKLSAgICAiJEhZICRDTSs7IgotICAg
ICIkSDIgJENNKzsiCi0gICAgIiRIMyAkQ00rOyIKLSAgICAiJElEICRDTSs7IgotICAgICIkSU4g
JENNKzsiCi0gICAgIiRJUyAkQ00rOyIKLSAgICAiJEpMICRDTSs7IgotICAgICIkSlYgJENNKzsi
Ci0gICAgIiRKVCAkQ00rOyIKLSAgICAiJE5TICRDTSs7IgotICAgICIkTlUgJENNKzsiCi0gICAg
IiRPUCAkQ00rOyIKLSAgICAiJFBPICRDTSs7IgotICAgICIkUFIgJENNKzsiCi0gICAgIiRRVSAk
Q00rOyIKLSAgICAiJFJJICRDTSs7IgotICAgICIkU1kgJENNKzsiCi0gICAgIiRXSiAkQ00rOyIK
LSAgICAiJENSICRMRiB7MTAwfTsiCi0gICAgIiRMQjROb25CcmVha3M/ICRMQjRCcmVha3MgezEw
MH07IgotICAgICIkQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRDTSsgJExC
NEJyZWFrcyB7MTAwfTsiCi0gICAgIiRMQjROb25CcmVha3MgWyRTUCAkWlddOyIKLSAgICAiJENB
Tl9DTSAkQ00qIFskU1AgJFpXXTsiCi0gICAgIiRDTSsgWyRTUCAkWlddOyIKLSAgICAiJEVtb2pp
Rm9yU2VxcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsiCi0gICAg
IiRDQU5fQ00gJENNKzsiCi0gICAgIiRDTSs7IgotICAgICIkQ0FOX0NNICRDTSogJFdKY207Igot
ICAgICIkTEI4Tm9uQnJlYWtzICRXSmNtOyIKLSAgICAiJENNKyAkV0pjbTsiCi0gICAgIiRXSmNt
ICRDQU5UX0NNOyIKLSAgICAiJFdKY20gJENBTl9DTSAkQ00qOyIKLSAgICAiJEdMY20gJENBTl9D
TSAkQ00qOyIKLSAgICAiJEdMY20gJENBTlRfQ007IgotICAgICJbWyRMQjhOb25CcmVha3NdIC0g
WyRTUCAkQkEgJEhZXV0gJENNKiAkR0xjbTsiCi0gICAgIiRDTSsgR0xjbTsiCi0gICAgIiRMQjhO
b25CcmVha3MgJENMOyIKLSAgICAiJENBTl9DTSAkQ00qICRDTDsiCi0gICAgIiRDTSsgJENMOyIK
LSAgICAiJExCOE5vbkJyZWFrcyAkQ1A7IgotICAgICIkQ0FOX0NNICRDTSogJENQOyIKLSAgICAi
JENNKyAkQ1A7IgotICAgICIkTEI4Tm9uQnJlYWtzICRFWDsiCi0gICAgIiRDQU5fQ00gJENNKiAk
RVg7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRMQjhOb25CcmVha3MgJElTOyIKLSAgICAiJENB
Tl9DTSAkQ00qICRJUzsiCi0gICAgIiRDTSsgJElTOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkU1k7
IgotICAgICIkQ0FOX0NNICRDTSogJFNZOyIKLSAgICAiJENNKyAkU1k7IgotICAgICIkT1BjbSAk
U1AqICRDQU5fQ00gJENNKjsiCi0gICAgIiRPUGNtICRTUCogJENBTlRfQ007IgotICAgICIkT1Bj
bSAkU1ArICRDTSsgJEFMX0ZPTExPVz87IgotICAgICIkUVVjbSAkU1AqICRPUGNtOyIKLSAgICAi
KCRDTGNtIHwgJENQY20pICRTUCogJE5TY207IgotICAgICIkQjJjbSAkU1AqICRCMmNtOyIKLSAg
ICAiJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsiCi0gICAgIiRDTSsgJFFVY207IgotICAgICIk
UVVjbSAuPzsiCi0gICAgIiRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7IgotICAgICIkTEIyME5v
bkJyZWFrcyAkQ00qICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAiCi0gICAgIiRCQmNtIFteJENC
XTsiCi0gICAgIiRCQmNtICRMQjIwTm9uQnJlYWtzICRDTSo7IgotICAgICIkSExjbSAoJEhZY20g
fCAkQkFjbSkgW14kQ0JdPzsiCi0gICAgIiRTWWNtICRITGNtOyIKLSAgICAiKCRBTGNtIHwgJEhM
Y20pICRJTmNtOyIKLSAgICAiJENNKyAkSU5jbTsiCi0gICAgIiRFWGNtICRJTmNtOyIKLSAgICAi
JElEY20gJElOY207IgotICAgICIkSU5jbSAkSU5jbTsiCi0gICAgIiROVWNtICRJTmNtOyIKLSAg
ICAiJElEY20gJFBPY207IgotICAgICIkQUxjbSAkTlVjbTsiCi0gICAgIiRITGNtICROVWNtOyIK
LSAgICAiJENNKyAkTlVjbTsiCi0gICAgIiROVWNtICRBTGNtOyIKLSAgICAiJE5VY20gJEhMY207
IgotICAgICIkUFJjbSAkSURjbTsiCi0gICAgIiRQUmNtICgkQUxjbSB8ICRITGNtKTsiCi0gICAg
IiRQT2NtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIigkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwg
JEhZY20pPyAkTlVjbSAoJE5VY20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAo
JFBSY20gfCAkUE9jbSk/OyIKLSAgICAiJEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRI
M2NtKTsiCi0gICAgIigkSlZjbSB8ICRIMmNtKSAoJEpWY20gfCAkSlRjbSk7IgotICAgICIoJEpU
Y20gfCAkSDNjbSkgJEpUY207IgotICAgICIoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20g
fCAkSDNjbSkgJElOY207IgotICAgICIoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAk
SDNjbSkgJFBPY207IgotICAgICIkUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20g
fCAkSDNjbSk7IgotICAgICIoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAi
JENNKyAoJEFMY20gfCAkSExjbSk7IgotICAgICIkSVNjbSAoJEFMY20gfCAkSExjbSk7IgotICAg
ICIoJEFMY20gfCAkSExjbSB8ICROVWNtKSAkT1BjbTsiCi0gICAgIiRDTSsgJE9QY207IgotICAg
ICIkQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCi0gICAgIiRSSWNtICRSSWNtOyIKLSNlbmRpZgotICAgICIkRW1vamlGb3JNb2RzICRF
bW9qaVZhcj8gJEVtb2ppTW9kczsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRSZXZlcnNl
ID0KLSAgICAiISFyZXZlcnNlOyIKLSAgICAiJENNKyAkQUxQbHVzOyIKLSAgICAiJENNKyAkQkE7
IgotICAgICIkQ00rICRCQjsiCi0gICAgIiRDTSsgJEIyOyIKLSAgICAiJENNKyAkQ0w7IgotICAg
ICIkQ00rICRDUDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAiJENNKyAkR0w7IgotICAgICIkQ00r
ICRITDsiCi0gICAgIiRDTSsgJEhZOyIKLSAgICAiJENNKyAkSDI7IgotICAgICIkQ00rICRIMzsi
Ci0gICAgIiRDTSsgJElEOyIKLSAgICAiJENNKyAkSU47IgotICAgICIkQ00rICRJUzsiCi0gICAg
IiRDTSsgJEpMOyIKLSAgICAiJENNKyAkSlY7IgotICAgICIkQ00rICRKVDsiCi0gICAgIiRDTSsg
JE5TOyIKLSAgICAiJENNKyAkTlU7IgotICAgICIkQ00rICRPUDsiCi0gICAgIiRDTSsgJFBPOyIK
LSAgICAiJENNKyAkUFI7IgotICAgICIkQ00rICRRVTsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCi0gICAgIiRDTSsgJFJJOyIKLSNlbmRpZgotICAgICIkQ00rICRTWTsiCi0gICAgIiRD
TSsgJFdKOyIKLSAgICAiJENNKzsiCi0gICAgIiRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAk
TEYgJE5MICRaVyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00g
JFNQXSB8IFskQUwge2VvZn1dKSk7IgotICAgICJbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICRO
TCAkWlcgJFNQIHtlb2Z9XTsiCi0gICAgIiRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENNXTsi
Ci0gICAgIiRMQjRCcmVha3MgJENNKyAkQ0FOX0NNOyIKLSAgICAiJExGICRDUjsiCi0gICAgIlsk
U1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiWyRTUCAkWlddICRDTSsgJENBTl9D
TTsiCi0gICAgIiRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/ICRFbW9q
aUZvclNlcXM7IgotICAgICIkQ00rICRDQU5fQ007IgotICAgICIkQ00qICRXSiAkQ00qICRDQU5f
Q007IgotICAgICIkQ00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENBTlRfQ00g
JENNKiAkV0o7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkV0o7IgotICAgICIkQ00qICRHTCAk
Q00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRCQSAkSFldXTsiCi0gICAgIiRDQU5UX0NNICRD
TSogJEdMOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJEdMOyIKLSAgICAiJENMICRDTSsgJENB
Tl9DTTsiCi0gICAgIiRDUCAkQ00rICRDQU5fQ007IgotICAgICIkRVggJENNKyAkQ0FOX0NNOyIK
LSAgICAiJElTICRDTSsgJENBTl9DTTsiCi0gICAgIiRTWSAkQ00rICRDQU5fQ007IgotICAgICIk
Q0wgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOyIK
LSAgICAiJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkSVMgWyRMQjhOb25CcmVha3Mt
JENNXTsiCi0gICAgIiRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiWyRDTCAkQ1AgJEVY
ICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgIgotICAgICIkQ00qICRDQU5fQ00gJFNQKiAk
Q00qICRPUDsiCi0gICAgIiRDQU5UX0NNICRTUCogJENNKiAkT1A7IgotICAgICIkQUxfRk9MTE9X
PyAkQ00rICRTUCAkU1AqICRDTSogJE9QOyIKLSAgICAiJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQ
KyAkQ00qICRPUDsiCi0gICAgIiRDTSogJEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7
IgotICAgICIkU1kgJENNICRTUCsgJE9QOyIKLSAgICAiJENNKiAkT1AgJFNQKiAkQ00qICRRVTsi
Ci0gICAgIiRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsiCi0gICAgIiRDTSogJEIyICRT
UCogJENNKiAkQjI7IgotICAgICIkQ00qICRRVSAkQ00qICRDQU5fQ007IgotICAgICIkQ00qICRR
VSAkTEIxOE5vbkJyZWFrczsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRRVTsiCi0gICAgIiRD
QU5UX0NNICRDTSogJFFVOyIKLSAgICAiJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFskTEIy
ME5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENNKiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00qICRC
QjsiCi0gICAgIlteJENCXSAkQ00qICRCQjsiCi0gICAgIlteJENCXSAkQ00qICgkSFkgfCAkQkEp
ICRDTSogJEhMOyIKLSAgICAiJENNKiAkSEwgJENNKiAkU1k7IgotICAgICIkQ00qICRJTiAkQ00q
ICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogJElOICRDTSogJEVYOyIKLSAgICAiJENNKiAk
SU4gJENNKiAkSUQ7IgotICAgICIkQ00qICRJTiAkQ00qICRJTjsiCi0gICAgIiRDTSogJElOICRD
TSogJE5VOyIKLSAgICAiJENNKiAkUE8gJENNKiAkSUQ7IgotICAgICIkQ00qICROVSAkQ00qICgk
QUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJE5VOyIKLSAg
ICAiJENNKiAkSUQgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQ
UjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOyIKLSAgICAiKCRDTSogKCRQ
UiB8ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kpKSog
JENNKiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OyIKLSAgICAi
JENNKiAoJEgzIHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsiCi0gICAgIiRDTSogKCRKVCB8
ICRKVikgJENNKiAoJEgyIHwgJEpWKTsiCi0gICAgIiRDTSogJEpUICRDTSogKCRIMyB8ICRKVCk7
IgotICAgICIkQ00qICRJTiAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIKLSAg
ICAiJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsiCi0gICAgIiRD
TSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAkUFI7IgotICAgICIkQ00qICgk
QUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogKCRBTFBsdXMg
fCAkSEwpICRDTSogJElTOyIKLSAgICAiJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8ICRO
VSk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsiCi0jaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRDTSogJFJJICRDTSogJFJJOyIKLSNlbmRpZgot
ICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiOwotCi1zdGF0aWMgY29u
c3QgY2hhciogdWF4MTRTYWZlRm9yd2FyZCA9Ci0gICAgIiEhc2FmZV9mb3J3YXJkOyIKLSAgICAi
WyRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRTUCAkZGljdGlvbmFyeV0rIFte
JENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJGRpY3Rpb25hcnldOyIKLSAgICAi
JGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0U2Fm
ZVJldmVyc2UgPQotICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgIiRDTSsgW14kQ00gJEJLICRD
UiAkTEYgJE5MICRaVyAkU1BdOyIKLSAgICAiJENNKyAkU1AgLyAuOyIKLSAgICAiJFNQKyAkQ00q
ICRPUDsiCi0gICAgIiRTUCsgJENNKiAkUVU7IgotICAgICIkU1ArICRDTSogKCRDTCB8ICRDUCk7
IgotICAgICIkU1ArICRDTSogJEIyOyIKLSAgICAiJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsi
Ci0gICAgIigkQ00qICgkSVMgfCAkU1kpKSsgJENNKiAkTlU7IgotICAgICIoJENMIHwgJENQKSAk
Q00qICgkTlUgfCAkSVMgfCAkU1kpOyIKLSAgICAiJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7IjsK
LQogc3RhdGljIFN0cmluZyBtYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhMaW5lQnJlYWtJdGVy
YXRvck1vZGUgbW9kZSwgYm9vbCBpc0NKSykKIHsKLSAgICBTdHJpbmdCdWlsZGVyIHJ1bGVzQnVp
bGRlcjsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0UHJvbG9ndWUpOwotICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0JlZm9yZSk7CiAgICAgc3dpdGNoIChtb2Rl
KSB7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OkRlZmF1bHQ6Ci0gICAgICAgIHJ1
bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdENK
SyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7
CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSktSdWxlcyA6
IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0
ZXJhdG9yTW9kZTo6TG9vc2U6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1
YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9v
c2VOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VOb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6Tm9ybWFsOgot
ICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3Rv
bU5vcm1hbENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxOb25DSkspOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOwog
ICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpTdHJpY3Q6Ci0gICAgICAgIHJ1bGVzQnVp
bGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLIDogdWF4
MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAg
ICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLUnVsZXMgOiBs
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CiAgICAgfQotICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0FmdGVyKTsKLSAgICBydWxlc0J1aWxkZXIu
YXBwZW5kKHVheDE0Rm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFJldmVy
c2UpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZlRm9yd2FyZCk7Ci0gICAgcnVs
ZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVSZXZlcnNlKTsKLSAgICByZXR1cm4gcnVsZXNCdWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICIi
OwogfQogCiAvLyBSZWNvZ25pemUgQkNQNDcgY29tcGxpYW50IHByaW1hcnkgbGFuZ3VhZ2UgdmFs
dWVzIG9mICd6aCcsICdqYScsICdrbycKQEAgLTc4OCw5ICsyNTQsMjkgQEAgVGV4dEJyZWFrSXRl
cmF0b3IqIG9wZW5MaW5lQnJlYWtJdGVyYXRvcihjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSwg
TGluZUJyZWFrSXQKICAgICBpZiAobW9kZSA9PSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OkRlZmF1
bHQpCiAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuKFVCUktfTElORSwgbG9jYWxlSXNFbXB0
eSA/IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpIDogbG9jYWxlLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCksIDAsIDAsICZvcGVuU3RhdHVzKTsKICAgICBlbHNlIHsKLSAgICAgICAgVVBhcnNlRXJy
b3IgcGFyc2VTdGF0dXM7Ci0gICAgICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRlcmF0b3JNb2Rl
VG9SdWxlcyhtb2RlLCBpc0NKSyk7Ci0gICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuUnVsZXMo
U3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHJ1bGVzLmxlbmd0aCgp
LCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVzKTsKKyAgICAgICAgQnJlYWtpbmdSdWxl
U2V0IHJ1bGVTZXQgPSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOworICAgICAgICBzd2l0
Y2ggKG1vZGUpIHsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OkRlZmF1bHQ6
CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pL
IDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6TG9vc2U6CisgICAgICAgICAgICBydWxl
U2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VDSksgOiBCcmVha2luZ1J1
bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Ok5vcm1hbDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBp
c0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSksgOiBCcmVha2luZ1J1bGVTZXQ6
OlVBWDE0Tm9ybWFsTm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGlu
ZUJyZWFrSXRlcmF0b3JNb2RlOjpTdHJpY3Q6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksg
PyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgx
NFN0cmljdE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKGF1dG8qIGl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KHJ1bGVTZXQpKQor
ICAgICAgICAgICAgdWJya0l0ZXIgPSByZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4o
aXRlcmF0b3IpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFVQYXJzZUVycm9yIHBhcnNl
U3RhdHVzOworICAgICAgICAgICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1
bGVzKG1vZGUsIGlzQ0pLKTsKKyAgICAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuUnVsZXMo
U3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHJ1bGVzLmxlbmd0aCgp
LCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVzKTsKKyAgICAgICAgfQogICAgIH0KICAg
ICAvLyBsb2NhbGUgY29tZXMgZnJvbSBhIHdlYiBwYWdlIGFuZCBpdCBjYW4gYmUgaW52YWxpZCwg
bGVhZGluZyBJQ1UKICAgICAvLyB0byBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIGZhbGwgYmFjayB0
byB0aGUgZGVmYXVsdCBsb2NhbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1Rl
eHRCcmVha0l0ZXJhdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9y
LmgKaW5kZXggOGFmYjU1ODAyMDEwMDJiYmQyZWRkNTc1NjViYzM0MWIxYTAwNmE5ZS4uOTRmZjdk
NjA1Mzc0NDgzYjc1M2QwYjVkYWJkNzQ2Y2VjZTAyZTQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3IuaApAQCAtMzEsNiArMzEsMzAgQEAgY2xhc3MgVGV4dEJyZWFrSXRl
cmF0b3I7CiAKIGVudW0gY2xhc3MgTGluZUJyZWFrSXRlcmF0b3JNb2RlIHsgRGVmYXVsdCwgTG9v
c2UsIE5vcm1hbCwgU3RyaWN0IH07CiAKK2VudW0gY2xhc3MgQnJlYWtpbmdSdWxlU2V0IHsKKyAg
ICBDdXJzb3JNb3ZlbWVudCwKKyAgICBVQVgxNENKSywKKyAgICBVQVgxNE5vbkNKSywKKyAgICBV
QVgxNExvb3NlQ0pLLAorICAgIFVBWDE0TG9vc2VOb25DSkssCisgICAgVUFYMTROb3JtYWxDSkss
CisgICAgVUFYMTROb3JtYWxOb25DSkssCisgICAgVUFYMTRTdHJpY3RDSkssCisgICAgVUFYMTRT
dHJpY3ROb25DSksKK307CisKK2V4dGVybiBjb25zdCBjaGFyKiBjdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNENKS1J1
bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxl
czsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSktSdWxl
czsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSktS
dWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pL
UnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3RDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLUnVsZXM7CisKK1RleHRCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVyYXRvckZvclJ1
bGVTZXQoQnJlYWtpbmdSdWxlU2V0KTsKKwogLy8gVGhpcyBpcyBzaW1pbGFyIHRvIGNoYXJhY3Rl
ciBicmVhayBpdGVyYXRvciBpbiBtb3N0IGNhc2VzLCBidXQgaXMgc3ViamVjdCB0bwogLy8gcGxh
dGZvcm0gVUkgY29udmVudGlvbnMuIE9uZSBub3RhYmxlIGV4YW1wbGUgd2hlcmUgdGhpcyBjYW4g
YmUgZGlmZmVyZW50CiAvLyBmcm9tIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBpcyBUaGFpIHBy
ZXBlbmQgY2hhcmFjdGVycywgc2VlIGJ1ZyAyNDM0Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0gYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCmluZGV4
IGJlZjVkYWE2NDI4ODgyMWUyMGYyNjI4YzY4NTVlZThlODhhMzg5MmMuLjNhYjY4MjUzOTc2ODY1
MjI1NDNmYWNiOTFhMzlmNTkwZWE4OGMwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQpAQCAtMjEs
MTIgKzIxLDEzMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRleHRCcmVha0l0
ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKIAorI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCisK
KyNpZiBkZWZpbmVkKFVfU0hPV19DUExVU1BMVVNfQVBJKQorI3VuZGVmIFVfU0hPV19DUExVU1BM
VVNfQVBJCisjZW5kaWYKKyNkZWZpbmUgVV9TSE9XX0NQTFVTUExVU19BUEkgMQorCisjaW5jbHVk
ZSA8dW5pY29kZS9yYmJpLmg+CisjaW5jbHVkZSA8dW5pY29kZS91ZGF0YS5oPgorI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAorQGludGVyZmFjZSBXVEZCdW5kbGVGaW5kZXIgOiBOU09i
amVjdAorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV1RGQnVuZGxlRmluZGVyCitAZW5kCisKIG5h
bWVzcGFjZSBXVEYgewogCiBzdGF0aWMgY29uc3QgaW50IG1heExvY2FsZVN0cmluZ0xlbmd0aCA9
IDMyOwogCitzdHJ1Y3QgUnVsZUNhY2hlIHsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVsZUJhc2Vk
QnJlYWtJdGVyYXRvcj4gaXRlcmF0b3I7CisgICAgYm9vbCBmYWlsZWQgeyBmYWxzZSB9OworfTsK
KworVGV4dEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1
bGVTZXQgcnVsZVNldCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBj
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2Fj
aGU+IGxpbmVCcmVha1VBWDE0Q0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTROb25DSktJdGVyYXRvcjsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNExvb3NlQ0pLSXRlcmF0b3I7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1bGVDYWNoZT4gbGluZUJyZWFrVUFYMTRMb29zZU5v
bkNKS0l0ZXJhdG9yOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVC
cmVha1VBWDE0Tm9ybWFsQ0pLSXRlcmF0b3I7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJ1
bGVDYWNoZT4gbGluZUJyZWFrVUFYMTROb3JtYWxOb25DSktJdGVyYXRvcjsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8UnVsZUNhY2hlPiBsaW5lQnJlYWtVQVgxNFN0cmljdENKS0l0ZXJhdG9y
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSdWxlQ2FjaGU+IGxpbmVCcmVha1VBWDE0U3Ry
aWN0Tm9uQ0pLSXRlcmF0b3I7CisKKyAgICBOU1N0cmluZyAqZmlsZU5hbWVCYXNlOworICAgIFJ1
bGVDYWNoZSogY2FjaGUgPSBudWxscHRyOworCisgICAgc3dpdGNoIChydWxlU2V0KSB7CisgICAg
Y2FzZSBCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50OgorICAgICAgICBmaWxlTmFtZUJh
c2UgPSBAIkN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyI7CisgICAgICAgIGNhY2hlID0gJmN1
cnNvck1vdmVtZW50SXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJl
YWtpbmdSdWxlU2V0OjpVQVgxNENKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJl
YWtJdGVyYXRvclVBWDE0Q0pLIjsKKyAgICAgICAgY2FjaGUgPSAmbGluZUJyZWFrVUFYMTRDSktJ
dGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6
OlVBWDE0Tm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb25DSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNE5vbkNKS0l0ZXJh
dG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFY
MTRMb29zZUNKSzoKKyAgICAgICAgZmlsZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNExvb3NlQ0pLSXRl
cmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpV
QVgxNExvb3NlTm9uQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZU5vbkNKSyI7CisgICAgICAgIGNhY2hlID0gJmxpbmVCcmVha1VBWDE0TG9v
c2VOb25DSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmVha2lu
Z1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLOgorICAgICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksiOworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtV
QVgxNE5vcm1hbENKS0l0ZXJhdG9yLmdldCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJy
ZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks6CisgICAgICAgIGZpbGVOYW1lQmFzZSA9
IEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSyI7CisgICAgICAgIGNhY2hlID0g
JmxpbmVCcmVha1VBWDE0Tm9ybWFsTm9uQ0pLSXRlcmF0b3IuZ2V0KCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdENKSzoKKyAgICAgICAgZmls
ZU5hbWVCYXNlID0gQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLIjsKKyAgICAgICAg
Y2FjaGUgPSAmbGluZUJyZWFrVUFYMTRTdHJpY3RDSktJdGVyYXRvci5nZXQoKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOgorICAg
ICAgICBmaWxlTmFtZUJhc2UgPSBAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksi
OworICAgICAgICBjYWNoZSA9ICZsaW5lQnJlYWtVQVgxNFN0cmljdE5vbkNKS0l0ZXJhdG9yLmdl
dCgpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBBU1NFUlQoY2FjaGUpOworCisgICAg
aWYgKGNhY2hlLT5mYWlsZWQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCFj
YWNoZS0+aXRlcmF0b3IpIHsKKyAgICAgICAgTlNCdW5kbGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBi
dW5kbGVGb3JDbGFzczpbV1RGQnVuZGxlRmluZGVyIGNsYXNzXV07CisgICAgICAgIE5TU3RyaW5n
ICpwYXRoID0gW2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6ZmlsZU5hbWVCYXNlIG9mVHlwZTpAImJy
ayIgaW5EaXJlY3Rvcnk6QCJCcmVha2luZ1J1bGVzIl07CisgICAgICAgIGlmICghcGF0aCkgewor
ICAgICAgICAgICAgY2FjaGUtPmZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIE5TU3RyaW5nICpkaXJlY3RvcnkgPSBbcGF0aCBz
dHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOworICAgICAgICBVRXJyb3JDb2RlIGVy
cm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgdWRh
dGFfc2V0RmlsZUFjY2VzcyhVREFUQV9GSUxFU19GSVJTVCwgJmVycm9yQ29kZSk7CisgICAgICAg
IGlmIChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKQorICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisjZW5kaWYKKworICAgICAgICBMb2NhbFVEYXRhTWVtb3J5UG9pbnRlciBkYXRhKHVkYXRh
X29wZW4oW2RpcmVjdG9yeSBVVEY4U3RyaW5nXSwgImJyayIsIFtmaWxlTmFtZUJhc2UgVVRGOFN0
cmluZ10sICZlcnJvckNvZGUpKTsKKyAgICAgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJS
T1IpIHsKKyAgICAgICAgICAgIGNhY2hlLT5mYWlsZWQgPSB0cnVlOworICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIH0KKworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgdWRh
dGFfc2V0RmlsZUFjY2VzcyhVREFUQV9ERUZBVUxUX0FDQ0VTUywgJmVycm9yQ29kZSk7CisgICAg
ICAgIGlmIChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKQorICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisjZW5kaWYKKworICAgICAgICBjYWNoZS0+aXRlcmF0b3IgPSBzdGQ6Om1ha2VfdW5p
cXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+KGRhdGEub3JwaGFuKCksIGVycm9yQ29kZSk7Cisg
ICAgICAgIGlmIChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKSB7CisgICAgICAgICAgICBjYWNo
ZS0+ZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGNhY2hlLT5pdGVyYXRvciA9IG51bGxwdHI7
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PFRleHRCcmVha0l0ZXJhdG9yKj4oc3RkOjptYWtlX3VuaXF1
ZTxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPigqY2FjaGUtPml0ZXJhdG9yKS5yZWxlYXNlKCkpOwor
fQorCiBzdGF0aWMgaW5saW5lIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gdGV4dEJyZWFrTG9jYWxl
UHJlZmVyZW5jZSgpCiB7CiAgICAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBsb2NhbGUg
PSBhZG9wdENGKENGUHJlZmVyZW5jZXNDb3B5VmFsdWUoQ0ZTVFIoIkFwcGxlVGV4dEJyZWFrTG9j
YWxlIiksCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UgYi9Tb3VyY2Uv
Y21ha2UvV2ViS2l0RlMuY21ha2UKaW5kZXggMjlhMDk2OTAzOGZhYTc0NGUxYThjNThmMzU2YWQw
NzNmMDA1MjViZC4uODFmNTRhNTZhZDY5NTNkN2IxZTIwYzg4ZmE4NWJiZGRkMWYwN2U4YyAxMDA2
NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9X
ZWJLaXRGUy5jbWFrZQpAQCAtMjQsNiArMjQsNyBAQCBpZiAoTk9UIFRPT0xTX0RJUikKIGVuZGlm
ICgpCiAKIHNldChERVJJVkVEX1NPVVJDRVNfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2
ZWRTb3VyY2VzIikKK3NldChERVJJVkVEX1NPVVJDRVNfV1RGX0RJUiAiJHtDTUFLRV9CSU5BUllf
RElSfS9EZXJpdmVkU291cmNlcy9XVEYiKQogc2V0KERFUklWRURfU09VUkNFU19KQVZBU0NSSVBU
Q09SRV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENv
cmUiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElS
fS9EZXJpdmVkU291cmNlcy9XZWJDb3JlIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUTEVH
QUNZX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3ki
KQpAQCAtMzIsNiArMzMsOCBAQCBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSICIke0NN
QUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIiKQogc2V0KERFUklWRURfU09V
UkNFU19XRUJJTlNQRUNUT1JVSV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJj
ZXMvV2ViSW5zcGVjdG9yVUkiKQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VS
Q0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9T
T1VSQ0VTX1dURl9ESVJ9KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19X
VEZfRElSfS9CcmVha2luZ1J1bGVzKQogZmlsZShNQUtFX0RJUkVDVE9SWSAke0NNQUtFX0JJTkFS
WV9ESVJ9L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lKQogCiBmaWxlKE1BS0VfRElSRUNU
T1JZICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0pCmRpZmYgLS1naXQgYS9D
aGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMWNmYWRiNTM3YzI3YjNjZmQ5ZDZlZjc3NWVlZWQy
N2UyYjFmYzBkNS4uOTdhNDg3NjYzNzljYzcyMjQ4NDlkMTJmOTFhNmY1OWEwOTFhN2QzNSAxMDA2
NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE2
LTEyLTE1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAg
ICAgQ29tcGlsZSBJQ1UgYnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRo
YW4gcnVuIHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MDYyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlOgorCiAyMDE2LTEyLTEwICBLb25zdGFu
dGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIEluY2x1
ZGUgV1RGLCBKU0MsIGFuZCBXZWJDb3JlIGhlYWRlcnMgYXV0b21hdGljYWxseSB0byB0YXJnZXJz
IHVzaW5nIHRoZW0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297232</attachid>
            <date>2016-12-15 15:23:50 -0800</date>
            <delta_ts>2016-12-15 18:09:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20161215152257.patch</filename>
            <type>text/plain</type>
            <size>516026</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
N2UzZDZiY2Q3NjI0YzhkYTY3ZmUwYWRiMGU2MTMzNDFlNzlhMGVkLi5lYmNkYTdkOTMwMTNjM2I1
Yjc1YmRhODg2Nzk5YmJiZTlhZjIwNGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNi0xMi0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbmNsdWRlIHRoZSBieXRlY29kZSBmaWxlcyBpbnNpZGUgdGhl
IEphdmFTY3JpcHRDb3JlIGJ1bmRsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMTItMTUgIEpGIEJhc3RpZW4gIDxqZmJhc3Rp
ZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkFzc2VtYmx5IEFQSTogaW1wcm92ZSBkYXRhIHNl
Y3Rpb24gZXJyb3JzLCBpbml0aWFsaXplIGFmdGVyIEVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYWI0N2FkODM1NGQ4
MDVmNzY0ZWE1NTg3OTEzYjkwNjY1NGFmOTcxNi4uMmNjMWI5ZjA3NWE1N2E5Y2ZhYTUxMDg2ODU1
NGMyMTBhN2FiNGNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDQgQEAKKzIwMTYtMTItMTUgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBi
cmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIG1hY09TIGFu
ZCBpT1MgU0RLcyBpbmNsdWRlIGEgdG9vbCwgaWN1Z2VuYnJrLCB3aGljaCBjb21waWxlcyBJQ1Ug
YnJrIGJyZWFraW5nCisgICAgICAgIHJ1bGVzIGludG8gYnl0ZWNvZGUuIFByZXZpb3VzbHksIHRo
aXMgY29tcGlsYXRpb24gd2FzIGRvbmUgYXQgcnVudGltZSBpbnNpZGUgdGhlIElDVQorICAgICAg
ICB1YnJrX29wZW5SdWxlcygpIGZ1bmN0aW9uLiBNb3ZpbmcgdGhpcyBjb21waWxhdGlvbiBzdGVw
IHRvIGNvbXBpbGUgdGltZSByYXRoZXIgdGhhbgorICAgICAgICBidWlsZCB0aW1lIGNhdXNlcyBh
IHBlcmZvcm1hbmNlIGJvb3N0LgorCisgICAgICAgIFByZXZpb3VzbHksIHRoZSBzb3VyY2UgZm9y
IHRoZSBicmVha2luZyBydWxlcyB3YXMgYXNzZW1ibGVkIGJ5IGNvbmNhdGVuYXRpbmcgQyBzdHJp
bmdzCisgICAgICAgIGF0IHJ1bnRpbWUuIE5vdywgdGhlIHNvdXJjZSBpcyBjb250YWluZWQgd2l0
aGluIGEgZmV3IHRleHQgZmlsZXMgaW5zaWRlCisgICAgICAgIHd0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMuIEEgYnVpbGQgc3RlcCAodXNpbmcgYSBNYWtlZmlsZSkgd2lsbCBnZW5lcmF0ZSBzb3VyY2Ug
Y29kZQorICAgICAgICBjb250YWluaW5nIHRoZXNlIHN0cmluZ3MsIGFuZCBXVEYgd2lsbCBpbmNs
dWRlIHRoZXNlIHNvdXJjZSBmaWxlcyBpbiB0aGUgc2FtZSB3YXkgYW55CisgICAgICAgIG9mIG91
ciBwcm9qZWN0cyB1c2UgZ2VuZXJhdGVkIHNvdXJjZXMuIEFkZGl0aW9uYWxseSwgb24gT1NlcyB3
aGljaCBzdXBwb3J0IGl0LCB0aGVzZQorICAgICAgICBzdHJpbmdzIGdldCBjb21waWxlZCBkaXJl
Y3RseSBpbnRvIElDVSBieXRlY29kZSwgYW5kIHRoZW4gaW5jbHVkZWQgaW4gdGhlIGZyYW1ld29y
aworICAgICAgICBidW5kbGUuIEJlY2F1c2UgV1RGIGdldHMgc3RhdGljYWxseSBsaW5rZWQgaW50
byBKYXZhU2NyaXB0Q29yZSwgdGhpcyBpcyB0aGUgYnVuZGxlCisgICAgICAgIHdoaWNoIGluY2x1
ZGVzIHRoZSBieXRlY29kZSBmaWxlcy4KKworICAgICAgICBBdCBydW50aW1lLCB3ZSBmaXJzdCBj
aGVjayBpZiB3ZSBoYXZlIGEgZmlsZSBpbiBvdXIgYnVuZGxlIG9mIHRoZSBhcHByb3ByaWF0ZSBu
YW1lLAorICAgICAgICBhbmQgdGhlbiBzZWUgaWYgSUNVIGNhbiBvcGVuIGl0IHVzaW5nIGl0cyBS
dWxlQmFzZWRCcmVha0l0ZXJhdG9yIGludGVyZmFjZSAod2hpY2gKKyAgICAgICAgaW5jbHVkZXMg
YSB2ZXJzaW9uIGNoZWNrKS4gSWYgYW55IG9mIHRoZXNlIGNoZWNrcyBmYWlsLCBvciBpZiB3ZSdy
ZSBvbiBhIHBvcnQgd2hpY2gKKyAgICAgICAgZG9lc24ndCBoYXZlIHRoZSBub3Rpb24gb2YgYnVu
ZGxlcywgd2Ugd2lsbCB1c2UgdGhlIEMgc3RyaW5ncyBnZW5lcmF0ZWQgYWJvdmUsIGFuZAorICAg
ICAgICBwYXNzIHRoZW0gdG8gdWJya19vcGVuUnVsZXMoKSB0aGUgc2FtZSB3YXkgd2Ugd2VyZSBk
b2luZyBiZWZvcmUgdGhpcyBwYXRjaC4KKworICAgICAgICBUaGUgUnVsZUJhc2VkQnJlYWtJdGVy
YXRvciBpbnRlcmZhY2UgaW4gSUNVIHJlcXVpcmVzIGFkZGluZyBzb21lIG1vcmUgb2YgSUNVJ3Mg
cHVibGljCisgICAgICAgIGhlYWRlcnMgaW50byBXZWJLaXQuCisKKyAgICAgICAgKiBXVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIGEgbmV3IERlcml2ZWQgU291cmNlcyB0YXJnZXQg
d2hpY2ggdXNlcyBhCisgICAgICAgIERlcml2ZWRTb3VyY2VzLm1ha2UgTWFrZWZpbGUsIHRoZSBz
YW1lIHdheSBXZWJLaXQyLCBXZWJDb3JlLCBhbmQgSmF2YVNjcmlwdENvcmUgd3Jvay4KKyAgICAg
ICAgQWxzbywgYWRkIHRoZSBydWxlcyB0ZXh0IGZpbGVzIHRvIHRoZSBwcm9qZWN0LiBUaGVuLCBt
YWtlIFdURiBkZXBlbmQgb24gdGhpcyBuZXcKKyAgICAgICAgdGFyZ2V0LgorICAgICAgICAqIGlj
dS91bmljb2RlL2Jya2l0ZXIuaDogQWRkZWQuIFB1YmxpYyBJQ1UgaGVhZGVyLgorICAgICAgICAo
QnJlYWtJdGVyYXRvcjo6aXNCdWZmZXJDbG9uZSk6CisgICAgICAgICogaWN1L3VuaWNvZGUvY2hh
cml0ZXIuaDogQWRkZWQuIERpdHRvLgorICAgICAgICAoRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
OjpvcGVyYXRvciE9KToKKyAgICAgICAgKENoYXJhY3Rlckl0ZXJhdG9yOjpzZXRUb1N0YXJ0KToK
KyAgICAgICAgKENoYXJhY3Rlckl0ZXJhdG9yOjpzZXRUb0VuZCk6CisgICAgICAgIChDaGFyYWN0
ZXJJdGVyYXRvcjo6c3RhcnRJbmRleCk6CisgICAgICAgIChDaGFyYWN0ZXJJdGVyYXRvcjo6ZW5k
SW5kZXgpOgorICAgICAgICAoQ2hhcmFjdGVySXRlcmF0b3I6OmdldEluZGV4KToKKyAgICAgICAg
KENoYXJhY3Rlckl0ZXJhdG9yOjpnZXRMZW5ndGgpOgorICAgICAgICAqIGljdS91bmljb2RlL2xv
Y2lkLmg6IEFkZGVkLiBEaXR0by4KKyAgICAgICAgKExvY2FsZTo6b3BlcmF0b3IhPSk6CisgICAg
ICAgIChMb2NhbGU6OmdldENvdW50cnkpOgorICAgICAgICAoTG9jYWxlOjpnZXRMYW5ndWFnZSk6
CisgICAgICAgIChMb2NhbGU6OmdldFNjcmlwdCk6CisgICAgICAgIChMb2NhbGU6OmdldFZhcmlh
bnQpOgorICAgICAgICAoTG9jYWxlOjpnZXROYW1lKToKKyAgICAgICAgKExvY2FsZTo6aXNCb2d1
cyk6CisgICAgICAgICogaWN1L3VuaWNvZGUvcmJiaS5oOiBBZGRlZC4gRGl0dG8uCisgICAgICAg
IChSdWxlQmFzZWRCcmVha0l0ZXJhdG9yOjpvcGVyYXRvciE9KToKKyAgICAgICAgKiBpY3UvdW5p
Y29kZS9zY2hyaXRlci5oOiBBZGRlZC4gRGl0dG8uCisgICAgICAgICogaWN1L3VuaWNvZGUvdWNh
c2VtYXAuaDogQWRkZWQuIERpdHRvLgorICAgICAgICAqIGljdS91bmljb2RlL3VjaHJpdGVyLmg6
IEFkZGVkLiBEaXR0by4KKyAgICAgICAgKiBpY3UvdW5pY29kZS91ZGF0YS5oOiBBZGRlZC4gRGl0
dG8uCisgICAgICAgICogaWN1L3VuaWNvZGUvdW1pc2MuaDogQWRkZWQuIERpdHRvLgorICAgICAg
ICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDogQWRkIGJ1aWxkIHN0ZXBzIGZvciBvdGhlciBwb3J0cyB0
byBnZW5lcmF0ZSB0aGUgYnJlYWtpbmcKKyAgICAgICAgcnVsZXMgc3RyaW5ncyBzb3VyY2UgZmls
ZXMuCisgICAgICAgICogd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkLiBUaGlzIGlzIHRo
ZSBwbGFjZSB3aGVyZSBpY3VnZW5icmsgaXMgYWN0dWFsbHkgCisgICAgICAgIGludm9rZWQuIEl0
IGFsc28gdHJpZ2dlcnMgdGhlIHNjcmlwdCAoR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5
KSB3aGljaCBnZW5lcmF0ZXMKKyAgICAgICAgdGhlIEMrKyBjb2RlIGZvciB0aGUgcnVsZXMgc3Ry
aW5ncy4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
R2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5OiBBZGRlZC4gR2VuZXJhdGUgQysrLgorICAg
ICAgICAobWFpbik6CisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvckVwaWxvZ3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dDogQWRkZWQu
CisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENK
Sy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0
L1RleHRCcmVha0l0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlSXRlcmF0b3JGb3JS
dWxlU2V0KTogVXNlZCBieSBvdGhlciBwb3J0cy4gUmV0dXJuaW5nIG51bGxwdHIgbWVhbnMgd2Ug
Y2FuJ3QKKyAgICAgICAgdXNlIHByZWNvbXBpbGVkIHJ1bGVzLgorICAgICAgICAoV1RGOjpjcmVh
dGVDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKTogVXNlZCBpbiBwbGFjZSBvZiB0
aGUgaGFyZGNvZGVkIHJ1bGVzCisgICAgICAgIGluIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoKS4K
KyAgICAgICAgKFdURjo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6IFJlbW92ZSBoYXJkY29kZWQg
cnVsZXMuCisgICAgICAgIChXVEY6Om1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKTogVXBkYXRl
IHRvIHVzZSB0aGUgbmV3IGdlbmVyYXRlZCBDKysgc3RyaW5ncy4KKyAgICAgICAgKFdURjo6b3Bl
bkxpbmVCcmVha0l0ZXJhdG9yKTogVGhlIGxvZ2ljIG9mIHRyeWluZyB0byB1c2UgYSBwcmVjb21w
aWxlZCBieXRlY29kZSwgYW5kIGZhbGxpbmcKKyAgICAgICAgYmFjayB0byBDKysgc3RyaW5ncyBp
ZiBpdCBpc24ndCBwb3NzaWJsZS4KKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRv
ci5oOiBIZWFkZXIgZm9yIGdlbmVyYXRlZCBDKysgY29kZS4KKyAgICAgICAgKiB3dGYvdGV4dC9t
YWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbToKKyAgICAgICAgKFdURjo6YnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZSk6IFRoZSBhY3R1YWwgbG9naWMgZm9yIGxvb2tpbmcgaW5z
aWRlIHRoZSBidW5kbGUgZm9yIHRoZQorICAgICAgICBwcmVjb21waWxlZCBieXRlY29kZS4KKyAg
ICAgICAgKFdURjo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6IENhbGxzIGJyZWFrSXRlcmF0b3JG
cm9tUmVzb3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSyk6
IENhbGxzIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vbkNKSyk6IENhbGxzIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2Uo
KS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLKTogQ2FsbHMg
YnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VOb25DSkspOiBDYWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCku
CisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSkspOiBDYWxscyBi
cmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxOb25DSkspOiBDYWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCku
CisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSkspOiBDYWxscyBi
cmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSkspOiBDYWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCku
CisgICAgICAgIChXVEY6OmNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldCk6ICBDYWxsIHRoZSBhYm92
ZSBzdGF0aWMgZnVuY3Rpb25zLgorCiAyMDE2LTEyLTE1ICBLb25zdGFudGluIFRva2FyZXYgIDxh
bm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBBZGRlZCBtaXNzaW5nIG92ZXJyaWRlIGFuZCBm
aW5hbCBzcGVjaWZpZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBjMjQ0M2Fk
MTQyZjAzN2FlYzc3Y2VhOTUxYTQ2M2MyNWFlMDYxNGIuLmI5ZjI5N2JkOWRlMGIyOGQyODZlYTRl
ZTFjOGNkYmM3ZGZkMzQ0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjA2
LDYgKzEyMDYsNyBAQAogCQkxQTI4RDRBODE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQ
cml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QTI4RDRBNzE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUE4ODI2QjE2NTNDNENE
MUE2NDI5ODNCIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QjQ3RjIzNDM2NkM0QjcyQUM4NTJBN0Ug
LyogVGVtcGxhdGVSZWdpc3RyeUtleVRhYmxlLmNwcCAqLzsgfTsKIAkJMUFDRjczNzcxNzFDQTZG
QjAwQzlCQjFFIC8qIFdlYWsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUFDRjczNzYxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwICovOyB9Owor
CQkxQ0QxODc5MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNEMTg3OEYxRDU1OTYxMjAwQ0M3
REVDIC8qIEJyZWFraW5nUnVsZXMgKi87IH07CiAJCTI2MDBCNUE2MTUyQkFBQTcwMDkxRUU1RiAv
KiBKU1N0cmluZ0pvaW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3Bw
ICovOyB9OwogCQkyNjAwQjVBNzE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE1MTUy
QkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oICovOyB9OwogCQkyNjJEODVCNjFDMEQ2
NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MkQ4NUI0MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovOyB9OwpAQCAtMzU5MCw2
ICszNTkxLDcgQEAKIAkJMUM5MDUxNDUwQkE5RThBNzAwODFFOUQwIC8qIEJhc2UueGNjb25maWcg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZpZzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEEwRDMyQzM5QTAwNDFCQ0ZGIC8qIEphdmFTY3Jp
cHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNjcmlwdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QjBEMzJDMzlBMDA0MUJDRkYgLyogSmF2
YVNjcmlwdENvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNjcmlw
dENvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OEYxRDU1OTYxMjAw
Q0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBmb2xkZXI7IG5hbWUgPSBCcmVha2luZ1J1bGVzOyBwYXRoID0gLi4v
V1RGL0JyZWFraW5nUnVsZXM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MDBCNUE0
MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0cmluZ0pvaW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0cmluZ0pvaW5lci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjJEODVCNDFDMEQ2NTBGMDA2QUNCNjEgLyogQWly
Rml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHBhdGggPSBiMy9haXIv
QWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQ5MjgsMTEgKzQ5MzAsMTEgQEAKIAkJCWZpbGVzID0gKAogCQkJCTkzMkY1QkQzMDgy
MkExQzcwMDczNjk3NSAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LywKIAkJCQlBNzMxQjI1QTEzMDA5Mzg4MDA0MEE3RkEgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLywKLQkJCQlBNTA5OEIwNDFDMTZBQTAyMDAwODc3OTcgLyogU2VjdXJp
dHkuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJOTMyRjVCRDcwODIyQTFDNzAwNzM2
OTc1IC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQk5MzJGNUJENjA4
MjJBMUM3MDA3MzY5NzUgLyogbGlib2JqYy5keWxpYiBpbiBGcmFtZXdvcmtzICovLAogCQkJCUE4
QTQ3NDhFMTUxQTgzMDYwMDQxMjNGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICovLAogCQkJ
CTM3MUQ4NDJEMTdDOThCNkUwMEVDRjk5NCAvKiBsaWJ6LmR5bGliIGluIEZyYW1ld29ya3MgKi8s
CisJCQkJQTUwOThCMDQxQzE2QUEwMjAwMDg3Nzk3IC8qIFNlY3VyaXR5LmZyYW1ld29yayBpbiBG
cmFtZXdvcmtzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtNDk1MSwxNSArNDk1MywxNSBAQAogCQkwMzQ3NjhERkZGMzhBNTA0
MTFEQjlDOEIgLyogUHJvZHVjdHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAotCQkJCTkzMkY1QkQ5MDgyMkExQzcwMDczNjk3NSAvKiBKYXZhU2NyaXB0Q29yZS5m
cmFtZXdvcmsgKi8sCi0JCQkJOTMyRjVCRTEwODIyQTFDNzAwNzM2OTc1IC8qIGpzYyAqLywKKwkJ
CQkwRjkzMjc1OTFDMjBCQ0JBMDBDRjY1NjQgLyogZHluYmVuY2ggKi8sCiAJCQkJMEZGOTIyQ0Yx
NEY0NkIxMzAwNDFBMjRFIC8qIEpTQ0xMSW50T2Zmc2V0c0V4dHJhY3RvciAqLywKIAkJCQkxNDEy
MTEyMDBBNDg3OTNDMDA0ODAyNTUgLyogbWluaWRvbSAqLywKKwkJCQkwRjYxODM0MzFDNDVGNjJB
MDA3MjQ1MEIgLyogdGVzdGFpciAqLywKIAkJCQkxNEJENTlCRjBBM0U4RjkwMDBCQUY1OUMgLyog
dGVzdGFwaSAqLywKIAkJCQkwRkVDODVBRDFCREI1Q0YxMDA4MEZGNzQgLyogdGVzdGIzICovLAog
CQkJCTY1MTEyMzA1MTQwNDZBNEMwMDJCMTAxRCAvKiB0ZXN0UmVnRXhwICovLAotCQkJCTBGOTMy
NzU5MUMyMEJDQkEwMENGNjU2NCAvKiBkeW5iZW5jaCAqLywKLQkJCQkwRjYxODM0MzFDNDVGNjJB
MDA3MjQ1MEIgLyogdGVzdGFpciAqLywKKwkJCQk5MzJGNUJEOTA4MjJBMUM3MDA3MzY5NzUgLyog
SmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovLAorCQkJCTkzMkY1QkUxMDgyMkExQzcwMDczNjk3
NSAvKiBqc2MgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFByb2R1Y3RzOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTUwMjAsMTIgKzUwMjIsMTIgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CTY1NjBBNENGMDRCM0IzRTcwMDhBRTk1MiAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8s
CiAJCQkJNTFGMEVCNjEwNUM4NkM2QjAwRTZERjFCIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICov
LAotCQkJCUE1MDk4QjAzMUMxNkFBMDIwMDA4Nzc5NyAvKiBTZWN1cml0eS5mcmFtZXdvcmsgKi8s
CiAJCQkJNUQ1RDhBRDAwRTBEMEVCRTAwRjlDNjkyIC8qIGxpYmVkaXQuZHlsaWIgKi8sCiAJCQkJ
OTMyMkEwMDMwNkMzNDFEMzAwOTA2N0JCIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkJNTFG
MEVDMDcwNUM4NkM5QTAwRTZERjFCIC8qIGxpYm9iamMuZHlsaWIgKi8sCiAJCQkJQThBNDc0OEQx
NTFBODMwNjAwNDEyM0ZGIC8qIGxpYldURi5hICovLAogCQkJCTM3MUQ4NDJDMTdDOThCNkUwMEVD
Rjk5NCAvKiBsaWJ6LmR5bGliICovLAorCQkJCUE1MDk4QjAzMUMxNkFBMDIwMDA4Nzc5NyAvKiBT
ZWN1cml0eS5mcmFtZXdvcmsgKi8sCiAJCQkpOwogCQkJbmFtZSA9IEZyYW1ld29ya3M7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTE2NCw4ICs1MTY2LDYgQEAKIAkJCQkwRjMzOEUx
ODFCRjI4NkVBMDAxM0M4OEYgLyogQjNCbG9ja0luc2VydGlvblNldC5oICovLAogCQkJCTBGRUM4
NEJBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jsb2NrV29ya2xpc3QuaCAqLywKIAkJCQlEQ0ZERkJE
NzFEMUY1RDk4MDBGRTNENzIgLyogQjNCb3R0b21Qcm92aWRlci5oICovLAotCQkJCTUzNDFGQzZG
MURBQzMzRTUwMEU3RTRENyAvKiBCM1dhc21Cb3VuZHNDaGVja1ZhbHVlLmNwcCAqLywKLQkJCQk1
MzQxRkM3MTFEQUMzNDNDMDBFN0U0RDcgLyogQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oICovLAog
CQkJCTBGNkI4QURFMUM0RUZFMTcwMDk2OTA1MiAvKiBCM0JyZWFrQ3JpdGljYWxFZGdlcy5jcHAg
Ki8sCiAJCQkJMEY2QjhBREYxQzRFRkUxNzAwOTY5MDUyIC8qIEIzQnJlYWtDcml0aWNhbEVkZ2Vz
LmggKi8sCiAJCQkJREM5QTBDMUMxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24u
Y3BwICovLApAQCAtNTMxMCw2ICs1MzEwLDggQEAKIAkJCQkwRjJCQkQ5NTFDNUZGM0Y1MDAyM0VG
MjMgLyogQjNWYXJpYWJsZVZhbHVlLmggKi8sCiAJCQkJNTNENDQ0REQxREFGMDlBMDAwQjkyNzg0
IC8qIEIzV2FzbUFkZHJlc3NWYWx1ZS5jcHAgKi8sCiAJCQkJNTNENDQ0REIxREFGMDhBQjAwQjky
Nzg0IC8qIEIzV2FzbUFkZHJlc3NWYWx1ZS5oICovLAorCQkJCTUzNDFGQzZGMURBQzMzRTUwMEU3
RTRENyAvKiBCM1dhc21Cb3VuZHNDaGVja1ZhbHVlLmNwcCAqLywKKwkJCQk1MzQxRkM3MTFEQUMz
NDNDMDBFN0U0RDcgLyogQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oICovLAogCQkJCTBGRUM4NUFF
MUJEQjVENUUwMDgwRkY3NCAvKiB0ZXN0YjMuY3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSBiMzsK
QEAgLTU0MjcsMTIgKzU0MjksMTIgQEAKIAkJCQkwRkY0MjczNTE1OEVCRDk0MDA0Q0I5RkYgLyog
dWRpczg2X2RlY29kZS5oICovLAogCQkJCTBGRjQyNzM2MTU4RUJEOTQwMDRDQjlGRiAvKiB1ZGlz
ODZfZXh0ZXJuLmggKi8sCiAJCQkJMEZGNDI3NEMxNThFQkZFMTAwNENCOUZGIC8qIHVkaXM4Nl9p
dGFiX2hvbGRlci5jICovLAotCQkJCTQzQ0JBMTYwMUNBQjY3QkEwMDMyOEE1QyAvKiB1ZGlzODZf
dWRpbnQuaCAqLywKIAkJCQkwRkY0MjczOTE1OEVCRDk0MDA0Q0I5RkYgLyogdWRpczg2X3N5bi1h
dHQuYyAqLywKIAkJCQkwRkY0MjczQTE1OEVCRDk0MDA0Q0I5RkYgLyogdWRpczg2X3N5bi1pbnRl
bC5jICovLAogCQkJCTBGRjQyNzNCMTU4RUJEOTQwMDRDQjlGRiAvKiB1ZGlzODZfc3luLmMgKi8s
CiAJCQkJMEZGNDI3M0MxNThFQkQ5NDAwNENCOUZGIC8qIHVkaXM4Nl9zeW4uaCAqLywKIAkJCQkw
RkY0MjczRDE1OEVCRDk0MDA0Q0I5RkYgLyogdWRpczg2X3R5cGVzLmggKi8sCisJCQkJNDNDQkEx
NjAxQ0FCNjdCQTAwMzI4QTVDIC8qIHVkaXM4Nl91ZGludC5oICovLAogCQkJKTsKIAkJCW5hbWUg
PSB1ZGlzODY7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTQ0Myw4ICs1NDQ1LDYg
QEAKIAkJCQlGRUYwNDA1MDFBQUU2NjJEMDBCRDI4QjAgLyogQ29tcGFyZUFuZFN3YXBUZXN0LmNw
cCAqLywKIAkJCQlGRUYwNDA1MjFBQUVDNEVEMDBCRDI4QjAgLyogQ29tcGFyZUFuZFN3YXBUZXN0
LmggKi8sCiAJCQkJQzI5RUNCMDIxODA0RDBFRDAwRDJDQkI0IC8qIEN1cnJlbnRUaGlzSW5zaWRl
QmxvY2tHZXR0ZXJUZXN0LmggKi8sCi0JCQkJNTM0OTAyODIxQzcyNDJDODAwMTJCQ0I4IC8qIFR5
cGVkQXJyYXlDVGVzdC5jcHAgKi8sCi0JCQkJNTM0OTAyODMxQzcyNDJDODAwMTJCQ0I4IC8qIFR5
cGVkQXJyYXlDVGVzdC5oICovLAogCQkJCUMyOUVDQjAxMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJy
ZW50VGhpc0luc2lkZUJsb2NrR2V0dGVyVGVzdC5tbSAqLywKIAkJCQlDMjAzMjgxRTE5ODE5NzlE
MDA4OEI0OTkgLyogQ3VzdG9tR2xvYmFsT2JqZWN0Q2xhc3NUZXN0LmMgKi8sCiAJCQkJQzIwMzI4
MUYxOTgxOTc5RDAwODhCNDk5IC8qIEN1c3RvbUdsb2JhbE9iamVjdENsYXNzVGVzdC5oICovLApA
QCAtNTQ2NywxMiArNTQ2NywxNCBAQAogCQkJCTY1NTcwRjU5MUFBNEMwMEEwMDlCM0MyMyAvKiBS
ZWdyZXNzMTQxMjc1Lm1tICovLAogCQkJCUZFQjUxRjZBMUE5N0I2ODgwMDFGOTIxQyAvKiBSZWdy
ZXNzMTQxODA5LmggKi8sCiAJCQkJRkVCNTFGNkIxQTk3QjY4ODAwMUY5MjFDIC8qIFJlZ3Jlc3Mx
NDE4MDkubW0gKi8sCisJCQkJRkVDQjhCMjkxRDI1Q0FCQjAwNkYyNDYzIC8qIHRlc3RhcGktZnVu
Y3Rpb24tb3ZlcnJpZGVzLmpzICovLAogCQkJCTE0QkQ1QTJEMEEzRTkxRjYwMEJBRjU5QyAvKiB0
ZXN0YXBpLmMgKi8sCiAJCQkJMTREODU3NzQwQTQ2OTZDODAwMzIxNDZDIC8qIHRlc3RhcGkuanMg
Ki8sCi0JCQkJRkVDQjhCMjkxRDI1Q0FCQjAwNkYyNDYzIC8qIHRlc3RhcGktZnVuY3Rpb24tb3Zl
cnJpZGVzLmpzICovLAogCQkJCTg2RDIyMjE5MTY3RUY5NDQwMDI0QzgwNCAvKiB0ZXN0YXBpLm1t
ICovLAogCQkJCTY1MTEyMkU1MTQwNDY5QkEwMDJCMTAxRCAvKiB0ZXN0UmVnRXhwLmNwcCAqLywK
IAkJCQk1MzlFQjA3MTFENTUzREY4MDBDODJFRjcgLyogdGVzdFdhc20uY3BwICovLAorCQkJCTUz
NDkwMjgyMUM3MjQyQzgwMDEyQkNCOCAvKiBUeXBlZEFycmF5Q1Rlc3QuY3BwICovLAorCQkJCTUz
NDkwMjgzMUM3MjQyQzgwMDEyQkNCOCAvKiBUeXBlZEFycmF5Q1Rlc3QuaCAqLywKIAkJCSk7CiAJ
CQluYW1lID0gdGVzdHM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTQ4MiwxOSAr
NTQ4NCwxOSBAQAogCQkxNDI5RDc3QTBFRDIwRDczMDBCODk2MTkgLyogaW50ZXJwcmV0ZXIgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUUzOUQ5RDg0MUQz
OTAwMDYwMDY2NzI4MiAvKiBJbnRlcnByZXRlcklubGluZXMuaCAqLywKIAkJCQkwRjU1RjBGMTE0
RDEwNjM2MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5jcHAgKi8sCiAJCQkJMEY1NUYwRjIxNEQxMDYz
NjAwQUM3NjQ5IC8qIEFic3RyYWN0UEMuaCAqLywKLQkJCQkxNDI5RDg1QjBFRDIxOEU5MDBCODk2
MTkgLyogQ0xvb3BTdGFjay5jcHAgKi8sCi0JCQkJMTRENzkyNjQwREFBMDNGQjAwMUE5RjA1IC8q
IENMb29wU3RhY2suaCAqLywKLQkJCQlBN0MxRUFFQjE3OTg3QUI2MDAyOTlEQjIgLyogQ0xvb3BT
dGFja0lubGluZXMuaCAqLywKIAkJCQlBN0Y4NjkwRTBGOTU4NEExMDA1NTg2OTcgLyogQ2FjaGVk
Q2FsbC5oICovLAogCQkJCTE0MjlEOERCMEVEMjIwNUIwMEI4OTYxOSAvKiBDYWxsRnJhbWUuY3Bw
ICovLAogCQkJCTE0MjlEOERDMEVEMjIwNUIwMEI4OTYxOSAvKiBDYWxsRnJhbWUuaCAqLywKIAkJ
CQlBN0Y4NjlFQzBGOTVDMkVDMDA1NTg2OTcgLyogQ2FsbEZyYW1lQ2xvc3VyZS5oICovLAorCQkJ
CTE0MjlEODVCMEVEMjE4RTkwMEI4OTYxOSAvKiBDTG9vcFN0YWNrLmNwcCAqLywKKwkJCQkxNEQ3
OTI2NDBEQUEwM0ZCMDAxQTlGMDUgLyogQ0xvb3BTdGFjay5oICovLAorCQkJCUE3QzFFQUVCMTc5
ODdBQjYwMDI5OURCMiAvKiBDTG9vcFN0YWNrSW5saW5lcy5oICovLAogCQkJCUUzNEVEQkY2MURC
NUZGQzEwMERDODdBNSAvKiBGcmFtZVRyYWNlcnMuaCAqLywKIAkJCQkxNDI5RDdEMzBFRDIxMjgy
MDBCODk2MTkgLyogSW50ZXJwcmV0ZXIuY3BwICovLAogCQkJCTE0MjlENzdCMEVEMjBENzMwMEI4
OTYxOSAvKiBJbnRlcnByZXRlci5oICovLAorCQkJCUUzOUQ5RDg0MUQzOTAwMDYwMDY2NzI4MiAv
KiBJbnRlcnByZXRlcklubGluZXMuaCAqLywKIAkJCQk2NUZCNTExNjE4NEVFOUJDMDBDMTJCNzAg
LyogUHJvdG9DYWxsRnJhbWUuY3BwICovLAogCQkJCTY1RkI1MTE1MTg0RUU4RjgwMEMxMkI3MCAv
KiBQcm90b0NhbGxGcmFtZS5oICovLAogCQkJCTE0OUIyNEZGMEQ4QUY2RDEwMDlDQjhDNyAvKiBS
ZWdpc3Rlci5oICovLApAQCAtNTU0Myw5ICs1NTQ1LDYgQEAKIAkJCQlERTVBMDlGRjFCQTNBQzNF
MDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRlci5jcHAgKi8sCiAJCQkJMTQyOUQ5MkQwRUQyMkQ3
MDAwQjg5NjE5IC8qIEpJVC5jcHAgKi8sCiAJCQkJMTQyOUQ5MkUwRUQyMkQ3MDAwQjg5NjE5IC8q
IEpJVC5oICovLAotCQkJCTc5MjMzQzI5MUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRNYXRoSUMuaCAq
LywKLQkJCQk3OUE4OTlGRTFEMzg2MTJFMDBEMThDNzMgLyogSklUTWF0aElDRm9yd2FyZHMuaCAq
LywKLQkJCQk3OUFGMEJFMzFEM0VGRDRDMDBFOTVGQTUgLyogSklUTWF0aElDSW5saW5lUmVzdWx0
LmggKi8sCiAJCQkJRkUxMjIwMjUxQkU3RjU2NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5j
cHAgKi8sCiAJCQkJRkUxMjIwMjYxQkU3RjU2NDAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5o
ICovLAogCQkJCTg2QTkwRUNGMEVFN0Q1MUYwMEFCMzUwRCAvKiBKSVRBcml0aG1ldGljLmNwcCAq
LywKQEAgLTU1NzMsNiArNTU3Miw5IEBACiAJCQkJODZDQzg1QTAwRUU3OUE0NzAwMjg4NjgyIC8q
IEpJVElubGluZXMuaCAqLywKIAkJCQlGRTNBMDZCNjFDMTEwM0Q5MDAzOTBGREQgLyogSklUTGVm
dFNoaWZ0R2VuZXJhdG9yLmNwcCAqLywKIAkJCQlGRTNBMDZCNzFDMTEwM0Q5MDAzOTBGREQgLyog
SklUTGVmdFNoaWZ0R2VuZXJhdG9yLmggKi8sCisJCQkJNzkyMzNDMjkxRDM0NzE1NzAwQzVBODM0
IC8qIEpJVE1hdGhJQy5oICovLAorCQkJCTc5QTg5OUZFMUQzODYxMkUwMEQxOEM3MyAvKiBKSVRN
YXRoSUNGb3J3YXJkcy5oICovLAorCQkJCTc5QUYwQkUzMUQzRUZENEMwMEU5NUZBNSAvKiBKSVRN
YXRoSUNJbmxpbmVSZXN1bHQuaCAqLywKIAkJCQlGRTE4NzlGRjFCRkJDNzNDMDAzOEJCQ0EgLyog
SklUTXVsR2VuZXJhdG9yLmNwcCAqLywKIAkJCQlGRTE4N0EwMDFCRkJDNzNDMDAzOEJCQ0EgLyog
SklUTXVsR2VuZXJhdG9yLmggKi8sCiAJCQkJRkU5OUIyNDcxQzI0QjZEMzAwQzgyMTU5IC8qIEpJ
VE5lZ0dlbmVyYXRvci5jcHAgKi8sCkBAIC01OTA3LDE4ICs1OTA5LDcgQEAKIAkJNjUwRkRGOEQw
OUQwRkNBNzAwNzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQUQyRkNDMEExREI1OUM1OTAwQjNFNzM2IC8qIFdl
YkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IubHV0LmggKi8sCi0JCQkJQUQyRkNDMEIx
REI1OUM1OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlLmx1dC5o
ICovLAotCQkJCUFEMkZDQzBDMURCNTlDNTkwMEIzRTczNiAvKiBXZWJBc3NlbWJseUluc3RhbmNl
Q29uc3RydWN0b3IubHV0LmggKi8sCi0JCQkJQUQyRkNDMEQxREI1OUM1OTAwQjNFNzM2IC8qIFdl
YkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUubHV0LmggKi8sCi0JCQkJQUQyRkNDMEUxREI1OUM1
OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IubHV0LmggKi8sCi0JCQkJ
QUQyRkNDMEYxREI1OUM1OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmx1
dC5oICovLAotCQkJCUFEMkZDQzEwMURCNTlDNTkwMEIzRTczNiAvKiBXZWJBc3NlbWJseU1vZHVs
ZUNvbnN0cnVjdG9yLmx1dC5oICovLAotCQkJCUFEMkZDQzExMURCNTlDNTkwMEIzRTczNiAvKiBX
ZWJBc3NlbWJseU1vZHVsZVByb3RvdHlwZS5sdXQuaCAqLywKLQkJCQlBRDJGQ0MxMjFEQjU5QzU5
MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5sdXQuaCAqLywK
LQkJCQlBRDJGQ0MxMzFEQjU5QzU5MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQ
cm90b3R5cGUubHV0LmggKi8sCi0JCQkJQUQyRkNDMTQxREI1OUM1OTAwQjNFNzM2IC8qIFdlYkFz
c2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5sdXQuaCAqLywKLQkJCQlBRDJGQ0MxNTFEQjU5QzU5MDBC
M0U3MzYgLyogV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5sdXQuaCAqLywKKwkJCQkxQ0QxODc4
RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJCQkwRjYxODMzMjFDNDVG
MzVDMDA3MjQ1MEIgLyogQWlyT3Bjb2RlLmggKi8sCiAJCQkJMEY2MTgzMzQxQzQ1RjNCNjAwNzI0
NTBCIC8qIEFpck9wY29kZUdlbmVyYXRlZC5oICovLAogCQkJCTBGNjE4MzM1MUM0NUYzQjYwMDcy
NDUwQiAvKiBBaXJPcGNvZGVVdGlscy5oICovLApAQCAtNTk3NCw4ICs1OTY1LDIwIEBACiAJCQkJ
OTk2QjczMTIxQkQ5RkEyQzAwMzMxQjg0IC8qIFN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlLmx1dC5o
ICovLAogCQkJCTk5NkI3MzEzMUJEOUZBMkMwMDMzMUI4NCAvKiBTeW1ib2xDb25zdHJ1Y3Rvci5s
dXQuaCAqLywKIAkJCQk5OTZCNzMxNDFCRDlGQTJDMDAzMzFCODQgLyogU3ltYm9sUHJvdG90eXBl
Lmx1dC5oICovLAotCQkJCTY1QTk0NjE0MUM4RTlGNkYwMEE3MjA5QSAvKiBZYXJyQ2Fub25pY2Fs
aXplVW5pY29kZS5jcHAgKi8sCiAJCQkJNTMzQjE1REUxREM3RjQ2MzAwNEQ1MDBBIC8qIFdhc21P
cHMuaCAqLywKKwkJCQlBRDJGQ0MwQTFEQjU5QzU5MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3JDb25zdHJ1Y3Rvci5sdXQuaCAqLywKKwkJCQlBRDJGQ0MwQjFEQjU5QzU5MDBCM0U3
MzYgLyogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUubHV0LmggKi8sCisJCQkJQUQy
RkNDMEMxREI1OUM1OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5s
dXQuaCAqLywKKwkJCQlBRDJGQ0MwRDFEQjU5QzU5MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlJbnN0
YW5jZVByb3RvdHlwZS5sdXQuaCAqLywKKwkJCQlBRDJGQ0MwRTFEQjU5QzU5MDBCM0U3MzYgLyog
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5sdXQuaCAqLywKKwkJCQlBRDJGQ0MwRjFEQjU5
QzU5MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUubHV0LmggKi8sCisJCQkJ
QUQyRkNDMTAxREI1OUM1OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3Iu
bHV0LmggKi8sCisJCQkJQUQyRkNDMTExREI1OUM1OTAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5TW9k
dWxlUHJvdG90eXBlLmx1dC5oICovLAorCQkJCUFEMkZDQzEyMURCNTlDNTkwMEIzRTczNiAvKiBX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmx1dC5oICovLAorCQkJCUFEMkZDQzEz
MURCNTlDNTkwMEIzRTczNiAvKiBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5sdXQu
aCAqLywKKwkJCQlBRDJGQ0MxNDFEQjU5QzU5MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlUYWJsZUNv
bnN0cnVjdG9yLmx1dC5oICovLAorCQkJCUFEMkZDQzE1MURCNTlDNTkwMEIzRTczNiAvKiBXZWJB
c3NlbWJseVRhYmxlUHJvdG90eXBlLmx1dC5oICovLAorCQkJCTY1QTk0NjE0MUM4RTlGNkYwMEE3
MjA5QSAvKiBZYXJyQ2Fub25pY2FsaXplVW5pY29kZS5jcHAgKi8sCiAJCQkpOwogCQkJbmFtZSA9
ICJEZXJpdmVkIFNvdXJjZXMiOwogCQkJcGF0aCA9IERlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRD
b3JlOwpAQCAtNjA3Miw3ICs2MDc1LDYgQEAKIAkJCQlBNzdGMTgyNDE2NDE5MjU0MDA2NDBBNDcg
LyogUGFyc2VyTW9kZXMuaCAqLywKIAkJCQk2NTMwM0Q2MzE0NDdCOUUxMDBEM0Y5MDQgLyogUGFy
c2VyVG9rZW5zLmggKi8sCiAJCQkJODY5RUJDQjYwRThDNkQ0QTAwODcyMkNDIC8qIFJlc3VsdFR5
cGUuaCAqLywKLQkJCQkwRjhGMkI5RDE3MzA2QzhCMDA3REJEQTUgLyogVW5saW5rZWRTb3VyY2VD
b2RlLmNwcCAqLywKIAkJCQkxNDIwMUQ1ODFERUNGMjZBMDA5MDRCRDMgLyogU291cmNlQ29kZS5o
ICovLAogCQkJCTcwQjc5MThFMUMwMjQ0QzkwMDI0ODFFMiAvKiBTb3VyY2VDb2RlS2V5LmggKi8s
CiAJCQkJMEY0OTNBRjgxNkQwQ0FEMTAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCAqLywK
QEAgLTYwODEsNiArNjA4Myw3IEBACiAJCQkJRTQ5REMxNTExMkVGMjcyMjAwMTg0QTFGIC8qIFNv
dXJjZVByb3ZpZGVyQ2FjaGUuaCAqLywKIAkJCQlFNDlEQzE0OTEyRUYyNjFBMDAxODRBMUYgLyog
U291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCAqLywKIAkJCQlBN0E3RUU3NzExQjk4QjhEMDA2NUEx
NEYgLyogU3ludGF4Q2hlY2tlci5oICovLAorCQkJCTBGOEYyQjlEMTczMDZDOEIwMDdEQkRBNSAv
KiBVbmxpbmtlZFNvdXJjZUNvZGUuY3BwICovLAogCQkJCTE0QUI2Njc1MURFQ0Y0MDkwMEE1NkMy
NiAvKiBVbmxpbmtlZFNvdXJjZUNvZGUuaCAqLywKIAkJCQk3OUVFMEJGRDFCNEFGQjg1MDAwMzg1
QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5jcHAgKi8sCiAJCQkJNzlFRTBCRkUxQjRBRkI4NTAw
MDM4NUM5IC8qIFZhcmlhYmxlRW52aXJvbm1lbnQuaCAqLywKQEAgLTYyNzAsOSArNjI3Myw5IEBA
CiAJCQkJRTE3ODYzM0YwRDlCRUMwMDAwRDc0RTc1IC8qIEluaXRpYWxpemVUaHJlYWRpbmcuaCAq
LywKIAkJCQlFMzVFMDM1RDFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uT2JqZWN0LmNwcCAqLywKIAkJCQlFMzVFMDM1RTFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggKi8sCi0JCQkJQTdBOEFGMkIxN0FEQjVGMzAwNUFC
MTc0IC8qIEludDhBcnJheS5oICovLAogCQkJCUE3QThBRjJDMTdBREI1RjMwMDVBQjE3NCAvKiBJ
bnQxNkFycmF5LmggKi8sCiAJCQkJQTdBOEFGMkQxN0FEQjVGMzAwNUFCMTc0IC8qIEludDMyQXJy
YXkuaCAqLywKKwkJCQlBN0E4QUYyQjE3QURCNUYzMDA1QUIxNzQgLyogSW50OEFycmF5LmggKi8s
CiAJCQkJQkM5QkI5NUIwRTE5NjgwNjAwREY4ODU1IC8qIEludGVybmFsRnVuY3Rpb24uY3BwICov
LAogCQkJCUJDMTE2NjdBMEUxOTlDMDUwMDgwNjZERCAvKiBJbnRlcm5hbEZ1bmN0aW9uLmggKi8s
CiAJCQkJQTFCOUUyMzMxQjRFMEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvci5jcHAgKi8sCkBA
IC02MzYwLDE0ICs2MzYzLDE0IEBACiAJCQkJNzk3RTA3QTgxQjhGQ0ZCOTAwODQwMEJBIC8qIEpT
R2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmggKi8sCiAJCQkJMTRERTBENjgwRDAyNDMxNDAwQUFD
Q0EyIC8qIEpTR2xvYmFsT2JqZWN0LmNwcCAqLywKIAkJCQlBOEU4OTQzMzBDRDA2MDNGMDAzNjcx
NzkgLyogSlNHbG9iYWxPYmplY3QuaCAqLywKLQkJCQk3OUI4MTk5MjFERDI1Q0Y1MDBEREM3MTQg
LyogSlNHbG9iYWxPYmplY3RJbmxpbmVzLmggKi8sCiAJCQkJQTU5NDU1OTAxODI0NzQ0NzAwQ0Mz
ODQzIC8qIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5jcHAgKi8sCiAJCQkJQTU5NDU1OTExODI0
NzQ0NzAwQ0MzODQzIC8qIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oICovLAogCQkJCUJDNzU2
RkM2MEUyMDMxQjIwMERFN0QxMiAvKiBKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgKi8sCiAJ
CQkJQkM3NTZGQzcwRTIwMzFCMjAwREU3RDEyIC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgg
Ki8sCi0JCQkJMEYyQjY2QzkxN0I2QjVBQjAwQTdBRTNGIC8qIEpTSW50OEFycmF5LmggKi8sCisJ
CQkJNzlCODE5OTIxREQyNUNGNTAwRERDNzE0IC8qIEpTR2xvYmFsT2JqZWN0SW5saW5lcy5oICov
LAogCQkJCTBGMkI2NkNBMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0ludDE2QXJyYXkuaCAqLywKIAkJ
CQkwRjJCNjZDQjE3QjZCNUFCMDBBN0FFM0YgLyogSlNJbnQzMkFycmF5LmggKi8sCisJCQkJMEYy
QjY2QzkxN0I2QjVBQjAwQTdBRTNGIC8qIEpTSW50OEFycmF5LmggKi8sCiAJCQkJRTMzRjUwN0Ux
Qjg0MjlBNDAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlLmNwcCAqLywKIAkJCQlFMzNGNTA3
RjFCODQyOUE0MDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2UuaCAqLywKIAkJCQlFMzNGNTA3
NjFCODQyMjU3MDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5jcHAgKi8s
CkBAIC02NDQ3LDEwICs2NDUwLDEwIEBACiAJCQkJNTNGMjU2RTExQjg3RTI4MDAwQjRCNzY4IC8q
IEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwICovLAogCQkJCTUzOTE3RTdDMUI3OTExMDYw
MDBFQkQzMyAvKiBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmggKi8sCiAJCQkJNjUwN0QyOTcw
RTg3MUU0QTAwRDdEODk2IC8qIEpTVHlwZUluZm8uaCAqLywKLQkJCQkwRjJCNjZEMjE3QjZCNUFC
MDBBN0FFM0YgLyogSlNVaW50OEFycmF5LmggKi8sCi0JCQkJMEYyQjY2RDMxN0I2QjVBQjAwQTdB
RTNGIC8qIEpTVWludDhDbGFtcGVkQXJyYXkuaCAqLywKIAkJCQkwRjJCNjZENDE3QjZCNUFCMDBB
N0FFM0YgLyogSlNVaW50MTZBcnJheS5oICovLAogCQkJCTBGMkI2NkQ1MTdCNkI1QUIwMEE3QUUz
RiAvKiBKU1VpbnQzMkFycmF5LmggKi8sCisJCQkJMEYyQjY2RDIxN0I2QjVBQjAwQTdBRTNGIC8q
IEpTVWludDhBcnJheS5oICovLAorCQkJCTBGMkI2NkQzMTdCNkI1QUIwMEE3QUUzRiAvKiBKU1Vp
bnQ4Q2xhbXBlZEFycmF5LmggKi8sCiAJCQkJQTdDQTNBRTExN0RBNDFBRTAwNjUzOEFGIC8qIEpT
V2Vha01hcC5jcHAgKi8sCiAJCQkJQTdDQTNBRTIxN0RBNDFBRTAwNjUzOEFGIC8qIEpTV2Vha01h
cC5oICovLAogCQkJCTcwOUZCODYxMUFFMzM1QzYwMDM5RDA2OSAvKiBKU1dlYWtTZXQuY3BwICov
LApAQCAtNjYyOCw3ICs2NjMxLDEwIEBACiAJCQkJMTRBMzk2QTYwQ0QyOTMzMTAwQjVCNEZGIC8q
IFN5bWJvbFRhYmxlLmggKi8sCiAJCQkJNzBFQ0E2MDIxQUZEQkVBMjAwNDQ5NzM5IC8qIFRlbXBs
YXRlUmVnaXN0cnkuY3BwICovLAogCQkJCTcwRUNBNjAzMUFGREJFQTIwMDQ0OTczOSAvKiBUZW1w
bGF0ZVJlZ2lzdHJ5LmggKi8sCisJCQkJQkRCNEI1RTA5OUNENEMxQkIzQzFDRjA1IC8qIFRlbXBs
YXRlUmVnaXN0cnlLZXkuY3BwICovLAogCQkJCTcwRUNBNjA0MUFGREJFQTIwMDQ0OTczOSAvKiBU
ZW1wbGF0ZVJlZ2lzdHJ5S2V5LmggKi8sCisJCQkJOEI0N0YyMzQzNjZDNEI3MkFDODUyQTdFIC8q
IFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgKi8sCisJCQkJMDhGQzJGMzdBQjc2NDgzQTk5
NjY2ODhGIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5oICovLAogCQkJCTBGQTJDMTc5MTdE
N0NGODQwMDlEMDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuY3BwICovLAogCQkJCTBGQTJDMTdBMTdE
N0NGODQwMDlEMDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuaCAqLywKIAkJCQlGRTJFNkE3QTFENkVB
NUZFMDA2MEY4OTYgLyogVGhyb3dTY29wZS5jcHAgKi8sCkBAIC02NjUyLDExICs2NjU4LDExIEBA
CiAJCQkJMEYyRDRERTAxOTgzMkQ5MTAwN0Q0QjE5IC8qIFR5cGVQcm9maWxlckxvZy5oICovLAog
CQkJCTBGMkQ0REUzMTk4MzJEOTEwMDdENEIxOSAvKiBUeXBlU2V0LmNwcCAqLywKIAkJCQkwRjJE
NERFNDE5ODMyRDkxMDA3RDRCMTkgLyogVHlwZVNldC5oICovLAotCQkJCUE3QThBRjMwMTdBREI1
RjMwMDVBQjE3NCAvKiBVaW50OEFycmF5LmggKi8sCi0JCQkJQTdBOEFGMzExN0FEQjVGMzAwNUFC
MTc0IC8qIFVpbnQ4Q2xhbXBlZEFycmF5LmggKi8sCiAJCQkJQTdBOEFGMzIxN0FEQjVGMzAwNUFC
MTc0IC8qIFVpbnQxNkFycmF5LmggKi8sCiAJCQkJODY2NzM5RDExM0JGREU3MTAwMjNEODdDIC8q
IFVpbnQxNldpdGhGcmFjdGlvbi5oICovLAogCQkJCUE3QThBRjMzMTdBREI1RjMwMDVBQjE3NCAv
KiBVaW50MzJBcnJheS5oICovLAorCQkJCUE3QThBRjMwMTdBREI1RjMwMDVBQjE3NCAvKiBVaW50
OEFycmF5LmggKi8sCisJCQkJQTdBOEFGMzExN0FEQjVGMzAwNUFCMTc0IC8qIFVpbnQ4Q2xhbXBl
ZEFycmF5LmggKi8sCiAJCQkJMEZFMDUwMjMxQUE5MDk1NjAwRDMzQjMzIC8qIFZhck9mZnNldC5j
cHAgKi8sCiAJCQkJMEZFMDUwMjQxQUE5MDk1NjAwRDMzQjMzIC8qIFZhck9mZnNldC5oICovLAog
CQkJCUUxOEUzQTU3MERGOTI3OEMwMEQ5MEIzNCAvKiBWTS5jcHAgKi8sCkBAIC02NjgwLDkgKzY2
ODYsNiBAQAogCQkJCTcwOUZCODY2MUFFMzM1QzYwMDM5RDA2OSAvKiBXZWFrU2V0UHJvdG90eXBl
LmggKi8sCiAJCQkJQTdEQ0I3NzkxMkUzRDkwNTAwOTExOTQwIC8qIFdyaXRlQmFycmllci5oICov
LAogCQkJCUMyQjZENzUyMThBMzM3OTMwMDRBOTMwMSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmgg
Ki8sCi0JCQkJOEI0N0YyMzQzNjZDNEI3MkFDODUyQTdFIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlU
YWJsZS5jcHAgKi8sCi0JCQkJQkRCNEI1RTA5OUNENEMxQkIzQzFDRjA1IC8qIFRlbXBsYXRlUmVn
aXN0cnlLZXkuY3BwICovLAotCQkJCTA4RkMyRjM3QUI3NjQ4M0E5OTY2Njg4RiAvKiBUZW1wbGF0
ZVJlZ2lzdHJ5S2V5VGFibGUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gcnVudGltZTsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02NzE0LDggKzY3MTcsOCBAQAogCQkJCUE1N0QyM0VC
MTg5MUI1NTQwMDMxQzdGQSAvKiBSZWd1bGFyRXhwcmVzc2lvbi5jcHAgKi8sCiAJCQkJQTU3RDIz
RUMxODkxQjU1NDAwMzFDN0ZBIC8qIFJlZ3VsYXJFeHByZXNzaW9uLmggKi8sCiAJCQkJNDUxNTM5
QjgxMkRDOTk0NTAwRUY3QUM0IC8qIFlhcnIuaCAqLywKLQkJCQk4NjNDNkQ5ODE1MjExMTEyMDA1
ODVFNEUgLyogWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwICovLAogCQkJCTg2M0M2RDk5MTUyMTEx
MTIwMDU4NUU0RSAvKiBZYXJyQ2Fub25pY2FsaXplLmggKi8sCisJCQkJODYzQzZEOTgxNTIxMTEx
MjAwNTg1RTRFIC8qIFlhcnJDYW5vbmljYWxpemVVQ1MyLmNwcCAqLywKIAkJCQk4NjNDNkQ5QTE1
MjExMTEyMDA1ODVFNEUgLyogWWFyckNhbm9uaWNhbGl6ZVVDUzIuanMgKi8sCiAJCQkJODY3MDRC
N0QxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnByZXRlci5jcHAgKi8sCiAJCQkJODY3MDRC
N0UxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJJbnRlcnByZXRlci5oICovLApAQCAtNzE0NCw4ICs3
MTQ3LDggQEAKIAkJCQlGRTY4QzYzNTFCOTBEREQ5MDA0MkJDQjMgLyogTWFjcm9Bc3NlbWJsZXJQ
cmludGVyLmNwcCAqLywKIAkJCQlGRTY4QzYzNjFCOTBEREQ5MDA0MkJDQjMgLyogTWFjcm9Bc3Nl
bWJsZXJQcmludGVyLmggKi8sCiAJCQkJODZBRTY0QTYxMzVFNUUxQzAwOTYzMDEyIC8qIE1hY3Jv
QXNzZW1ibGVyU0g0LmggKi8sCi0JCQkJODYwMTYxRTEwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3Jv
QXNzZW1ibGVyWDg2XzY0LmggKi8sCiAJCQkJODYwMTYxRTAwRjNBODNDMTAwRjg0NzEwIC8qIE1h
Y3JvQXNzZW1ibGVyWDg2LmggKi8sCisJCQkJODYwMTYxRTEwRjNBODNDMTAwRjg0NzEwIC8qIE1h
Y3JvQXNzZW1ibGVyWDg2XzY0LmggKi8sCiAJCQkJQTdBNEFFMDcxNzk3M0IyNjAwNTYxMkIxIC8q
IE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcCAqLywKIAkJCQk4NjAxNjFFMjBGM0E4M0MxMDBG
ODQ3MTAgLyogTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaCAqLywKIAkJCQk2NTg2MDE3NzE4NUE4
RjVFMDAwMzBFRUUgLyogTWF4RnJhbWVFeHRlbnRGb3JTbG93UGF0aENhbGwuaCAqLywKQEAgLTcz
MTAsNiArNzMxMyw3IEBACiAJCQkJMTRBRDkxMUQxRENBOUZBNDAwMTRGOUZFIC8qIFVubGlua2Vk
RnVuY3Rpb25Db2RlQmxvY2suaCAqLywKIAkJCQkxNDE0MkU1NDFCNzk3M0MwMDBGNEJGNEIgLyog
VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwICovLAogCQkJCTE0QUQ5MTIxMURDQTlGQTQw
MDE0RjlGRSAvKiBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oICovLAorCQkJCTE0MTQyRTUw
MUI3OTZFQ0UwMEY0QkY0QiAvKiBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oICovLAogCQkJ
CTE0QUQ5MTFDMURDQTlGQTQwMDE0RjlGRSAvKiBVbmxpbmtlZEdsb2JhbENvZGVCbG9jay5oICov
LAogCQkJCUI1OUY4OTM4MTg5MUFEQjUwMEQ1Q0NEQyAvKiBVbmxpbmtlZEluc3RydWN0aW9uU3Ry
ZWFtLmNwcCAqLywKIAkJCQlCNTlGODkzNzE4OTFBRDMzMDBENUNDREMgLyogVW5saW5rZWRJbnN0
cnVjdGlvblN0cmVhbS5oICovLApAQCAtNzMyNiw3ICs3MzMwLDYgQEAKIAkJCQkwRjQyNkE0NjE0
NjBDQkFCMDAxMzFGOEYgLyogVmlydHVhbFJlZ2lzdGVyLmggKi8sCiAJCQkJMEY5MTlEMjIxNTg1
M0NERTAwNEE0RTdEIC8qIFdhdGNocG9pbnQuY3BwICovLAogCQkJCTBGOTE5RDIzMTU4NTNDREUw
MDRBNEU3RCAvKiBXYXRjaHBvaW50LmggKi8sCi0JCQkJMTQxNDJFNTAxQjc5NkVDRTAwRjRCRjRC
IC8qIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGJ5
dGVjb2RlOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTczNTQsMTAgKzczNTcsMTAg
QEAKIAkJCQk5OURBMDA5RDFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnMucHkgKi8sCiAJCQkJ
OTlEQTAwOUUxQkQ1OTkyNzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVkX2hl
YWRlci5weSAqLywKIAkJCQk5OURBMDA5RjFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2Vu
ZXJhdGVfY29tYmluZWRfaW1wbGVtZW50YXRpb24ucHkgKi8sCi0JCQkJOTlEQTAwQTAxQkQ1OTky
NzAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weSAqLywKLQkJ
CQk5OURBMDBBMTFCRDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVf
aW1wbGVtZW50YXRpb24ucHkgKi8sCiAJCQkJNDEyOTUyNzMxRDJDRjZBQzAwRTc4Qjg5IC8qIGJ1
aWx0aW5zX2dlbmVyYXRlX2ludGVybmFsc193cmFwcGVyX2hlYWRlci5weSAqLywKIAkJCQk0MTI5
NTI3NDFEMkNGNkFDMDBFNzhCODkgLyogYnVpbHRpbnNfZ2VuZXJhdGVfaW50ZXJuYWxzX3dyYXBw
ZXJfaW1wbGVtZW50YXRpb24ucHkgKi8sCisJCQkJOTlEQTAwQTAxQkQ1OTkyNzAwRjQ1NzVDIC8q
IGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2hlYWRlci5weSAqLywKKwkJCQk5OURBMDBBMTFC
RDU5OTI3MDBGNDU3NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaW1wbGVtZW50YXRp
b24ucHkgKi8sCiAJCQkJNDEyOTUyNzUxRDJDRjZBQzAwRTc4Qjg5IC8qIGJ1aWx0aW5zX2dlbmVy
YXRlX3dyYXBwZXJfaGVhZGVyLnB5ICovLAogCQkJCTQxMjk1Mjc2MUQyQ0Y2QUMwMEU3OEI4OSAv
KiBidWlsdGluc19nZW5lcmF0ZV93cmFwcGVyX2ltcGxlbWVudGF0aW9uLnB5ICovLAogCQkJCTk5
REEwMDlBMUJENTk5MjcwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0b3IucHkgKi8sCkBAIC03
NTE5LDExICs3NTIyLDExIEBACiAJCQkJQTVCQTE1RTUxODIzNDBCMzAwQTgyRTY5IC8qIFJlbW90
ZUNvbm5lY3Rpb25Ub1RhcmdldC5tbSAqLywKIAkJCQk5OThFRDY3MjFCRUQ2NTlBMDBERDgwMTcg
LyogUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0LmNwcCAqLywKIAkJCQk5OThFRDY3MzFCRUQ2NTlB
MDBERDgwMTcgLyogUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0LmggKi8sCisJCQkJQTU5NDU1OEUx
ODI0NUVERTAwQ0MzODQzIC8qIFJlbW90ZUluc3BlY3Rpb25UYXJnZXQuY3BwICovLAorCQkJCUE1
QkExNUVGMTgyMzQ1QUYwMEE4MkU2OSAvKiBSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0LmggKi8sCiAJ
CQkJQTVCQTE1RTExODIzNDBCMzAwQTgyRTY5IC8qIFJlbW90ZUluc3BlY3Rvci5oICovLAogCQkJ
CUE1QkExNUUyMTgyMzQwQjMwMEE4MkU2OSAvKiBSZW1vdGVJbnNwZWN0b3IubW0gKi8sCiAJCQkJ
QTVCQTE1RTMxODIzNDBCMzAwQTgyRTY5IC8qIFJlbW90ZUluc3BlY3RvckNvbnN0YW50cy5oICov
LAotCQkJCUE1OTQ1NThFMTgyNDVFREUwMENDMzg0MyAvKiBSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0
LmNwcCAqLywKLQkJCQlBNUJBMTVFRjE4MjM0NUFGMDBBODJFNjkgLyogUmVtb3RlSW5zcGVjdGlv
blRhcmdldC5oICovLAogCQkJCUE1QkExNUU2MTgyMzQwQjMwMEE4MkU2OSAvKiBSZW1vdGVJbnNw
ZWN0b3JYUENDb25uZWN0aW9uLmggKi8sCiAJCQkJQTVCQTE1RTcxODIzNDBCMzAwQTgyRTY5IC8q
IFJlbW90ZUluc3BlY3RvclhQQ0Nvbm5lY3Rpb24ubW0gKi8sCiAJCQkpOwpAQCAtNzU0Myw5ICs3
NTQ2LDkgQEAKIAkJQTdEODAxOUYxODgwRDY2RTAwMjZDMzlCIC8qIGJ1aWx0aW5zICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlBN0Q4MDFBMDE4ODBENjZF
MDAyNkMzOUIgLyogQXJyYXlQcm90b3R5cGUuanMgKi8sCiAJCQkJN0NGOUJDNTgxQjY1RDlBMzAw
OURCMUVGIC8qIEFycmF5Q29uc3RydWN0b3IuanMgKi8sCiAJCQkJN0NGOUJDNTkxQjY1RDlBMzAw
OURCMUVGIC8qIEFycmF5SXRlcmF0b3JQcm90b3R5cGUuanMgKi8sCisJCQkJQTdEODAxQTAxODgw
RDY2RTAwMjZDMzlCIC8qIEFycmF5UHJvdG90eXBlLmpzICovLAogCQkJCTVCODI0MzA0MURCN0FB
NDkwMEVBNjM4NCAvKiBBc3luY0Z1bmN0aW9uUHJvdG90eXBlLmpzICovLAogCQkJCURFMjZFOTA2
MUNCNUREOTYwMEQyQkU4MiAvKiBCdWlsdGluRXhlY3V0YWJsZUNyZWF0b3IuY3BwICovLAogCQkJ
CURFMjZFOTAyMUNCNUREMDUwMEQyQkU4MiAvKiBCdWlsdGluRXhlY3V0YWJsZUNyZWF0b3IuaCAq
LywKQEAgLTc1NjYsMTcgKzc1NjksMTcgQEAKIAkJCQlBNTI3MDQ4NjFEMDI3Qzg4MDAzNTRDMzcg
LyogTnVtYmVyQ29uc3RydWN0b3IuanMgKi8sCiAJCQkJQTE1REU1QzUxQzBGQkY4RDAwODkxMzNE
IC8qIE51bWJlclByb3RvdHlwZS5qcyAqLywKIAkJCQk3Q0Y5QkM1QzFCNjVEOUIxMDA5REIxRUYg
LyogT2JqZWN0Q29uc3RydWN0b3IuanMgKi8sCisJCQkJN0NGOUJDNUUxQjY1RDlCMTAwOURCMUVG
IC8qIFByb21pc2VDb25zdHJ1Y3Rvci5qcyAqLywKIAkJCQk3Q0Y5QkM1RDFCNjVEOUIxMDA5REIx
RUYgLyogUHJvbWlzZU9wZXJhdGlvbnMuanMgKi8sCiAJCQkJN0NGQkFDMUMxOEI1MzVFNTAwRDAw
NzUwIC8qIFByb21pc2VQcm90b3R5cGUuanMgKi8sCi0JCQkJN0NGOUJDNUUxQjY1RDlCMTAwOURC
MUVGIC8qIFByb21pc2VDb25zdHJ1Y3Rvci5qcyAqLywKIAkJCQk3Q0Y5QkM1RjFCNjVEOUIxMDA5
REIxRUYgLyogUmVmbGVjdE9iamVjdC5qcyAqLywKIAkJCQk2NTQ3ODg0MjFDOTM3RDJDMDAwNzgx
QTAgLyogUmVnRXhwUHJvdG90eXBlLmpzICovLAogCQkJCTcwMzU1ODdEMUM0MTg0MTkwMDRCRDdC
RiAvKiBTZXRQcm90b3R5cGUuanMgKi8sCiAJCQkJN0NGOUJDNjAxQjY1RDlCMTAwOURCMUVGIC8q
IFN0cmluZ0NvbnN0cnVjdG9yLmpzICovLAogCQkJCTdDRjlCQzYxMUI2NUQ5QjEwMDlEQjFFRiAv
KiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5qcyAqLywKIAkJCQlBMUUwNDUxQjFDMjVCNEIxMDBC
QjY2M0MgLyogU3RyaW5nUHJvdG90eXBlLmpzICovLAotCQkJCTUzOTE3RTgzMUI3OTFDQjgwMDBF
QkQzMyAvKiBUeXBlZEFycmF5UHJvdG90eXBlLmpzICovLAogCQkJCTUzNEM0NTdBMUJDNzAzREMw
MDc0NzZBNyAvKiBUeXBlZEFycmF5Q29uc3RydWN0b3IuanMgKi8sCisJCQkJNTM5MTdFODMxQjc5
MUNCODAwMEVCRDMzIC8qIFR5cGVkQXJyYXlQcm90b3R5cGUuanMgKi8sCiAJCQkpOwogCQkJcGF0
aCA9IGJ1aWx0aW5zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTc2ODEsOCArNzY4
NCw4IEBACiAJCQkJRTNDMDhFM0IxREE0MUI3QjAwMzk0NzhGIC8qIERPTUpJVFBhdGNocG9pbnQu
aCAqLywKIAkJCQlFMzdBRDgzQTFEQTQ5MjgwMDBGM0Q0MTIgLyogRE9NSklUUGF0Y2hwb2ludFBh
cmFtcy5oICovLAogCQkJCUUzN0FEODNCMURBNDkyODAwMEYzRDQxMiAvKiBET01KSVRSZWcuaCAq
LywKLQkJCQlFM0NCMUUyNDFEQTc1NDBBMDBGQTFFNTYgLyogRE9NSklUU2xvd1BhdGhDYWxscy5o
ICovLAogCQkJCUUzNTA3MDg5MURDNDlCQjYwMDg5QkNENiAvKiBET01KSVRTaWduYXR1cmUuaCAq
LywKKwkJCQlFM0NCMUUyNDFEQTc1NDBBMDBGQTFFNTYgLyogRE9NSklUU2xvd1BhdGhDYWxscy5o
ICovLAogCQkJCUUzRkZDODUyMURBRDdEMTAwMERFQTUzRSAvKiBET01KSVRWYWx1ZS5oICovLAog
CQkJKTsKIAkJCXBhdGggPSBkb21qaXQ7CkBAIC03NzA4LDMzICs3NzExLDI1IEBACiAJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJMEZGQTU0OTgxNkI4
ODM1MzAwQjNBOTgyIC8qIEE2NERPcGNvZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCURDRUUyMjBB
MUNFQjk4OTUwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHNEb21pbmF0b3JzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjFGRTUxQzE5MjJBM0JDMDA2OTg3QzUgLyogQWJvcnRSZWFzb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg2MDE2MUUzMEYzQTgzQzEwMEY4NDcxMCAvKiBBYnN0cmFjdE1hY3JvQXNz
ZW1ibGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDQ5MzdDNDFEREJFNjE0MDA3N0M4MDcgLyog
QWJzdHJhY3RNb2R1bGVSZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTVGMEY1MTREMTA2
M0MwMEFDNzY0OSAvKiBBYnN0cmFjdFBDLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MzcwQjRGNjFC
RjI2MjA1MDA1QzQwRkMgLyogQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50
QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1NkUxQkRBQ0RDNzAwODBGRjc0IC8qIEFp
ckFsbG9jYXRlU3RhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTcwMUJEQUNEQzcwMDgw
RkY3NCAvKiBBaXJBcmcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNjRFQUYzMUM0RUNEMDYwMDYy
MUU5QiAvKiBBaXJBcmdJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU3MjFCREFD
REM3MDA4MEZGNzQgLyogQWlyQmFzaWNCbG9jay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMzhE
RkExQkU5NkFBODAwMTNDODhGIC8qIEIzQ0NhbGxWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEYzMzhFMTYxQkYwMjc2QzAwMTNDODhGIC8qIEIzVmFsdWVLZXlJbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjIwMTc4MjFEQ0FERDQyMDBFQTU5NTAgLyogREZHRmxvd01hcC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEZCMzg3OEUxQkZCQzQ0RDAwRTNBQjFFIC8qIEFpckJsb2NrV29ya2xp
c3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNjE4MzJBMUM0NUJGMDcwMDcyNDUwQiAvKiBBaXJD
Q2FsbGluZ0NvbnZlbnRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTc0MUJEQUNEQzcw
MDgwRkY3NCAvKiBBaXJDQ2FsbFNwZWNpYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTc2
MUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJDb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjM3MzA5
MzFDMEQ2N0VFMDAwNTJCRkEgLyogQWlyVXNlQ291bnRzLmggaW4gSGVhZGVycyAqLywKLQkJCQkx
NEFEOTEyNDFEQ0E5RkE0MDAxNEY5RkUgLyogVW5saW5rZWRFdmFsQ29kZUJsb2NrLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjEwRjFBMzFDNDIwQkYwMDAxQzA3RDIgLyogQWlyQ3VzdG9tLmggaW4g
SGVhZGVycyAqLywKKwkJCQlEQzQ1NEI4RDFEMDBFODI0MDA0QzE4QUYgLyogQWlyRHVtcEFzSlMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDU3MDM5MUJFNDRDOTEwMDYyQTYyOSAvKiBBaXJFbGlt
aW5hdGVEZWFkQ29kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzlCMDBDQkQxQzZBQjA3RTAwODhD
NjVEIC8qIFByb3h5Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTUzRDQ0NERDMURB
RjA4QUIwMEI5Mjc4NCAvKiBCM1dhc21BZGRyZXNzVmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTk5MERBNjdGMUM4RTMxNkEwMDI5NTE1OSAvKiBnZW5lcmF0ZV9vYmpjX3Byb3RvY29sX3R5cGVf
Y29udmVyc2lvbnNfaW1wbGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKLQkJCQlEQzE3RTgx
OTFDOUM5MURCMDA4QTZBQjMgLyogU2hhZG93Q2hpY2tlbklubGluZXMuaCBpbiBIZWFkZXJzICov
LAotCQkJCURDMTdFODE4MUM5QzkxRDkwMDhBNkFCMyAvKiBTaGFkb3dDaGlja2VuLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk3OTlFRjdDNDFDNTZFRDk2MDAyQjA1MzQgLyogQjNQQ1RvT3JpZ2luTWFw
LmggaW4gSGVhZGVycyAqLywKLQkJCQk3OUIwMENCRjFDNkFCMDdFMDA4OEM2NUQgLyogUHJveHlP
YmplY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTc5MTYwREJFMUM4RTNFQzgwMDhDMDg1QSAvKiBQ
cm94eVJldm9rZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzkyQ0IzNEExQzRFRUQ1QzAwRDEzQUYz
IC8qIFBDVG9Db2RlT3JpZ2luTWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQk3OUNGQzZGMDFDMzNC
MTAwMDBDNzY4RUEgLyogTExJbnRQQ1Jhbmdlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzlENUNE
NUIxQzExMDZBOTAwQ0VDQTA3IC8qIFNhbXBsaW5nUHJvZmlsZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGNjE4MzMxMUM0NUJGMDcwMDcyNDUwQiAvKiBBaXJMb3dlck1hY3Jvcy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY2MTgzMkQxQzQ1QkYwNzAwNzI0NTBCIC8qIEFpckVtaXRTaHVmZmxlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjRERTFDRjFDNEMxQjU0MDA0RDZDMTEgLyogQWlyRml4T2J2
aW91c1NwaWxscy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjYyRDg1QjcxQzBENjUwRjAwNkFDQjYx
IC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
Qzg1NzcxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckZyZXF1ZW50ZWRCbG9jay5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZFQzg1NzkxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckdlbmVyYXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkVDODU3QTFCREFDREM3MDA4MEZGNzQgLyogQWlyR2VuZXJhdGlvbkNv
bnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtNzc0MiwxOTIgKzc3MzcsMjM3IEBACiAJCQkJMEZF
Qzg1N0UxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckluc2VydGlvblNldC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZFQzg1ODAxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckluc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRUM4NTgxMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJJbnN0SW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMjY3MThCQTUxQkU5OUY3ODAwNTIwMTdCIC8qIEFpckl0ZXJhdGVkUmVn
aXN0ZXJDb2FsZXNjaW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkRGNjdENzFEOURDNDQyMDAx
Qjk4MjUgLyogQWlyS2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjY4NEQ0MzgxQzAwMTYxQzAw
ODFENjYzIC8qIEFpckxpdmVuZXNzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkUzNEMxQTFDNEIz
OUFFMDAwM0E1MTIgLyogQWlyTG9nUmVnaXN0ZXJQcmVzc3VyZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY2MTgzMkYxQzQ1QkYwNzAwNzI0NTBCIC8qIEFpckxvd2VyQWZ0ZXJSZWdBbGxvYy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZERjcwODYxRDNGMkMyNTAwOTI3NDQ5IC8qIEFpckxvd2VyRW50
cnlTd2l0Y2guaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNjE4MzMxMUM0NUJGMDcwMDcyNDUwQiAv
KiBBaXJMb3dlck1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0MEU0QTcxQzQ5N0Y3NDAw
QTU3N0ZBIC8qIEFpck9wY29kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0MEU0QTgxQzQ5N0Y3
NDAwQTU3N0ZBIC8qIEFpck9wY29kZUdlbmVyYXRlZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0
MEU0QTkxQzQ5N0Y3NDAwQTU3N0ZBIC8qIEFpck9wY29kZVV0aWxzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkIzODc5MDFCRkJDNDREMDBFM0FCMUUgLyogQWlyT3B0aW1pemVCbG9ja09yZGVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjlDQUJDOTFEQjU0QTdBMDAwOEU4M0IgLyogQWlyUGFkSW50
ZXJmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU4NDFCREFDREM3MDA4MEZGNzQg
LyogQWlyUGhhc2VTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NTcwM0QxQkU0NUYwQTAw
NjJBNjI5IC8qIEFpclJlcG9ydFVzZWRSZWdpc3RlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
MzM4REZFMUJFRDUxMjcwMDEzQzg4RiAvKiBBaXJTaW1wbGlmeUNGRy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZFQzg1ODgxQkRBQ0RDNzAwODBGRjc0IC8qIEFpclNwZWNpYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRUM4NThBMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJTcGlsbEV2ZXJ5dGhpbmcu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NThDMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJTdGFj
a1Nsb3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMkJCRDlFMUM1RkY0MDUwMDIzRUYyMyAvKiBB
aXJTdGFja1Nsb3RLaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU4RTFCREFDREM3MDA4
MEZGNzQgLyogQWlyVG1wLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMzI4QzZDODFEQTQzMDYxMDBE
MjU1RkQgLyogUmVnaXN0ZXJBdE9mZnNldExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4
NThGMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJUbXBJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRkUwRTRBRTFDMjRDOTRBMDAyRTE3QjYgLyogQWlyVG1wV2lkdGguaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGMzczMDkzMUMwRDY3RUUwMDA1MkJGQSAvKiBBaXJVc2VDb3VudHMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRUM4NTkxMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJWYWxpZGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZBNzYyMEIxREI5NTlGOTAwQjdBMkZEIC8qIEFsbG9jYXRpbmdT
Y29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5NjMwM0ExRDQxOTJDODAwNTYwOUQ5IC8qIEFs
bG9jYXRvckF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzczMDkxMUMwQ0Q3MEMw
MDA1MkJGQSAvKiBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1RUE3MEU5MTlGNUIxMDEwMDk4RjVFQyAvKiBBbHRlcm5hdGVEaXNwYXRjaGFibGVB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkE0OEQxOTExNzcyMzY1QjAwQzY1QTVGIC8qIEFQ
SUNhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0U1MEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBBUElDYXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQlGRTNBMDZCRTFDMTEwNDEy
MDAzOTBGREQgLyogSklUTGVmdFNoaWZ0R2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk1
MzUyOUE0QzFDNDU3Qjc1MDAwQjQ5QzYgLyogQVBJVXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDRjYwNTE0MEUyMDNFRjgwMEI5QTY0RCAvKiBBcmdMaXN0LmggaW4gSGVhZGVycyAqLywKLQkJ
CQlBRDJGQ0MxRTFEQjU5Q0IyMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25z
dHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAotCQkJCURDRUUyMjA5MUNFQjk4OTUwMDBDMjM5
NiAvKiBERkdCYWNrd2FyZHNDRkcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTA1MDE0MUFBOTA5
MTEwMEQzM0IzMyAvKiBBcmd1bWVudHNNb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3OUEyMjgz
NjFEMzVENzFGMDBEOEUwNjcgLyogQXJpdGhQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjZCMUNCOTE4NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlDaGVja01vZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExQTAwOUMxMTgzMUEyNkUwMENGODcxMSAvKiBBUk02NEFzc2VtYmxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODZEM0IyQzQxMDE1NkJERTAwMjg2NUU3IC8qIEFSTUFzc2VtYmxlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODZBREQxNDUwRkRERUE5ODAwMDZFRUMyIC8qIEFSTXY3QXNz
ZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUMwMjg1RDE3MTc5NjY4MDAzNTFFMzUgLyog
QVJNdjdET3Bjb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjgzMzVCODE2MzlDMUVBMDAxNDQz
QjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQUQyRkND
MUIxREI1OUNCMjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmx1dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTdBOEFGMzUxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZDOTlENTE4NEVFMzE4MDA5QzEwQUIgLyogQXJyYXlC
dWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMwRkI2MTFE
QzJERTk5MDAzMTI0RjIgLyogQXJyYXlCdWZmZXJTaGFyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTdBOEFGMzcxN0FEQjVGMzAwNUFCMTc0IC8qIEFycmF5QnVmZmVyVmlldy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMxOEMzRTYwRTE2RjVDRDAwQjM0NDYwIC8qIEFycmF5Q29uc3RydWN0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkI3MzE3MUJEQTA2N0YwMDMzMUI4NCAvKiBBcnJh
eUNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCN0YzOTUxNUVEOEU0NjAw
RjE2N0IyIC8qIEFycmF5Q29udmVudGlvbnMuaCBpbiBIZWFkZXJzICovLAotCQkJCUE1MzExQzM2
MUM3N0NFQzUwMEU2QjFCNiAvKiBIZWFwU25hcHNob3RCdWlsZGVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk1MkI3NEI0QjFEQ0MwNDY5MDAzNDE1N0QgLyogQXJyYXlJdGVyYXRvckFkYXB0aXZlV2F0
Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdCREFFQzkxN0Y0RUExNDAwRjYxNDBDIC8q
IEFycmF5SXRlcmF0b3JQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGN0NGOTU3MURD
MTI1OTAwMDk4Q0MxMiAvKiBBdG9taWNzT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTZC
NzMxODFCREEwNjgwMDAzMzFCODQgLyogQXJyYXlJdGVyYXRvclByb3RvdHlwZS5sdXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNjM5NDU1MTVEMDcwNTcwMDZBNTk3QyAvKiBBcnJheVByb2ZpbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0U3MEUxNkY1Q0QwMEIzNDQ2MCAvKiBBcnJheVBy
b3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTRBRDkxMjUxRENBOUZBNDAwMTRGOUZFIC8q
IFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZC
N0YzOTYxNUVEOEU0NjAwRjE2N0IyIC8qIEFycmF5U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTY4OENCMTUwRUQxMkI0RTAwMUQ2NDlGIC8qIEFzc2VtYmxlckJ1ZmZlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODZEM0IyQzUxMDE1NkJERTAwMjg2NUU3IC8qIEFzc2VtYmxlckJ1ZmZlcldp
dGhDb25zdGFudFBvb2wuaCBpbiBIZWFkZXJzICovLAorCQkJCTQzQzM5MkFCMUMzQkVCMDUwMDI0
MUY1MyAvKiBBc3NlbWJsZXJDb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTQxMTdF
QTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
ODRBMjYxMTFEMTY2MjIwMDU3NzZBQyAvKiBBU1RCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1QjcwQ0ZFMjFEQjY5RTY2MDBFQzIzRjkgLyogQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1QjcwQ0ZFMDFEQjY5RTY2MDBFQzIzRjkgLyogQXN5bmNGdW5j
dGlvblByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3Q0Y5NTcxREMxMjU5MDAwOThD
QzEyIC8qIEF0b21pY3NPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1RUE3MEU3MTlGNUIx
MDEwMDk4RjVFQyAvKiBBdWdtZW50YWJsZUluc3BlY3RvckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1RUE3MEU4MTlGNUIxMDEwMDk4RjVFQyAvKiBBdWdtZW50YWJsZUluc3BlY3Rv
ckNvbnRyb2xsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzhEMkEyMUQ0NDE5Njgw
MDY4MDQ5OSAvKiBBdXhpbGlhcnlCYXJyaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjM4RDJB
MzFENDQxOTZEMDA2ODA0OTkgLyogQXV4aWxpYXJ5QmFycmllcklubGluZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRUM4NEZGMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0FyZ3VtZW50UmVnVmFsdWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Jhc2lj
QmxvY2suaCBpbiBIZWFkZXJzICovLAotCQkJCTc5MjMzQzJCMUQzNDcxNTcwMEM1QTgzNCAvKiBK
SVRNYXRoSUMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTAyMUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0Jhc2ljQmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwMzFCREFD
REFDMDA4MEZGNzQgLyogQjNCYXNpY0Jsb2NrVXRpbHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
MzM4RTFDMUJGMjg2RUEwMDEzQzg4RiAvKiBCM0Jsb2NrSW5zZXJ0aW9uU2V0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkVDODUwNDFCREFDREFDMDA4MEZGNzQgLyogQjNCbG9ja1dvcmtsaXN0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQlEQ0ZERkJEOTFEMUY1RDlCMDBGRTNENzIgLyogQjNCb3R0b21Q
cm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjhBRTMxQzRFRkUxNzAwOTY5MDUyIC8q
IEIzQnJlYWtDcml0aWNhbEVkZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQlEQzlBMEMyMDFEMkQ5
Q0IzMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJREM5
QTBDMUYxRDJEOUNCMTAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjMzOERGQTFCRTk2QUE4MDAxM0M4OEYgLyogQjNDQ2FsbFZhbHVlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjMzRkNGQjFDMTYyNUJFMDAzMjNGNjcgLyogQjNDRkcuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRUM4NTA2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NoZWNrU3Bl
Y2lhbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZBNzYyMDcxREI5MjQzMzAwQjdBMkZEIC8qIE11
dGF0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MDgxQkRBQ0RBQzAwODBGRjc0
IC8qIEIzQ2hlY2tWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MEExQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzQ29tbW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQlEQzQ1NEI4RDFEMDBFODI0
MDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTBDMUJE
QUNEQUMwMDgwRkY3NCAvKiBCM0NvbW11dGF0aXZpdHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
MzM4RTBDMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0NvbXBpbGF0aW9uLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjg2QUUyMDFDNTMxMUM1MDA2QkU4RUMgLyogQjNDb21wdXRlRGl2aXNpb25NYWdpYy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MEUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Qz
MlZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUxMDFCREFDREFDMDA4MEZGNzQgLyog
QjNDb25zdDY0VmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTE0NzM0MUQ0MURDMDJFNkQwMEFB
MjlCQSAvKiBQcm9ncmFtRXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MTIx
QkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3REb3VibGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDM0MjJBNjMxQzE1OEU2RDAwRTJFQjk4IC8qIEIzQ29uc3RGbG9hdFZhbHVlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkVDODVCMzFCREVEOTU3MDA4MEZGNzQgLyogQjNDb25zdFB0clZhbHVl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMzOERGNjFCRTkzRDU1MDAxM0M4OEYgLyogQjNDb25z
dHJhaW5lZFZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMzOEUwRTFCRjAyNzZDMDAxM0M4
OEYgLyogQjNEYXRhU2VjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzM0ZDRkMxQzE2MjVC
RTAwMzIzRjY3IC8qIEIzRG9taW5hdG9ycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjhBRDkx
QzRFRERBMjAwOTY5MDUyIC8qIEIzRHVwbGljYXRlVGFpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRUM4NUMxMUJFMTY3QTAwMDgwRkY3NCAvKiBCM0VmZmVjdHMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNzI1Q0E4MUM1MDNERUQwMEFEOTQzQSAvKiBCM0VsaW1pbmF0ZUNvbW1vblN1YmV4cHJl
c3Npb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjY5NzFFQTFEOTJGNDI0MDBCQTAyQTUgLyog
QjNGZW5jZVZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCOEFFNTFDNEVGRTE3MDA5Njkw
NTIgLyogQjNGaXhTU0EuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNzI1Q0IwMUM1MDZEM0IwMEFE
OTQzQSAvKiBCM0ZvbGRQYXRoQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUx
NjFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVuY3lDbGFzcy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY2MTgzMkYxQzQ1QkYwNzAwNzI0NTBCIC8qIEFpckxvd2VyQWZ0ZXJSZWdBbGxvYy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MTcxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbnRl
ZEJsb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUxOTFCREFDREFDMDA4MEZGNzQgLyog
QjNHZW5lcmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MUExQkRBQ0RBQzAwODBGRjc0
IC8qIEIzR2VuZXJpY0ZyZXF1ZW50ZWRCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1
QzMxQkUxNjdBMDAwODBGRjc0IC8qIEIzSGVhcFJhbmdlLmggaW4gSGVhZGVycyAqLywKLQkJCQky
NjcxOEJBNTFCRTk5Rjc4MDA1MjAxN0IgLyogQWlySXRlcmF0ZWRSZWdpc3RlckNvYWxlc2Npbmcu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGOTYzMDNDMUQ0MTkyQ0QwMDU2MDlEOSAvKiBEZXN0cnVj
dGlvbk1vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCURDNjlCOTlEMUQxNUY5MTQwMDJFM0MwMCAv
KiBCM0luZmVyU3dpdGNoZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NUJBMUJFMTQ2MkYw
MDgwRkY3NCAvKiBCM0luc2VydGlvblNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1QkIx
QkUxNDYyRjAwODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEZERjY3RDIxRDlDNkQyNzAwMUI5ODI1IC8qIEIzS2luZC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDM2RTU0NTMxQzQ2OEU3NDAwQjVBRjczIC8qIEIzTGVnYWxpemVNZW1vcnlPZmZzZXRz
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMzOEUxRTFCRjI4NkVBMDAxM0M4OEYgLyogQjNMb3dl
ck1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDMxOURBMDQxQzFCRTQwRDAwMUQyNjBCIC8q
IEIzTG93ZXJNYWNyb3NBZnRlck9wdGltaXphdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
RUM4NTFFMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0xvd2VyVG9BaXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQzQUIyNkM2MUMxQTUzNTkwMEQ4MkFFNiAvKiBCM01hdGhFeHRyYXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRUM4NTIwMUJEQUNEQUMwMDgwRkY3NCAvKiBCM01lbW9yeVZhbHVlLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjMzOEUxMDFCRjAyNzZDMDAxM0M4OEYgLyogQjNNb3ZlQ29uc3Rh
bnRzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMzOEUxMTFCRjAyNzZDMDAxM0M4OEYgLyogQjNP
cGFxdWVCeXByb2R1Y3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzM4RTEzMUJGMDI3NkMwMDEz
Qzg4RiAvKiBCM09wYXF1ZUJ5cHJvZHVjdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTIy
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM09wY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1
MjQxQkRBQ0RBQzAwODBGRjc0IC8qIEIzT3JpZ2luLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjRD
OTE2NjFDMjlGNEYyMDA0MzQxQTYgLyogQjNPcmlnaW5EdW1wLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkVDODUyNjFCREFDREFDMDA4MEZGNzQgLyogQjNQYXRjaHBvaW50U3BlY2lhbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZFQzg1MjgxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUGF0Y2hwb2ludFZh
bHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3OTlFRjdDNDFDNTZFRDk2MDAyQjA1MzQgLyogQjNQ
Q1RvT3JpZ2luTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUyQTFCREFDREFDMDA4MEZG
NzQgLyogQjNQaGFzZVNjb3BlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjM3MzA4RDFDMEJEMjkx
MDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MkMx
QkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVD
ODUyRDFCREFDREFDMDA4MEZGNzQgLyogQjNQcm9jZWR1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjcyNUNBQTFDNTAzREVEMDBBRDk0M0EgLyogQjNQdXJlQ1NFLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MzQyMkE2NzFDMTYyNjc4MDBFMkVCOTggLyogQjNSZWR1Y2VEb3VibGVUb0Zs
b2F0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODVCRDFCRTE0NjJGMDA4MEZGNzQgLyogQjNS
ZWR1Y2VTdHJlbmd0aC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQzg1MzExQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzU3RhY2ttYXBTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMzI4REFFODFE
MzhEMDA1MDAxQTI1MjkgLyogQnl0ZWNvZGVHZW5lcmF0b3JpZmljYXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRUM4NTM1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Nsb3RCYXNlVmFsdWUuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGMkJCRDk2MUM1RkYzRjUwMDIzRUYyMyAvKiBCM1NwYXJzZUNv
bGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkI4QUREMUM0RUZBQzMwMDk2OTA1MiAv
KiBCM1NTQUNhbGN1bGF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzNGQ0Y4MUMxMzZFMjUw
MDMyM0Y2NyAvKiBCM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZFQzg1MzExQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3RhY2ttYXBTcGVjaWFsLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjMzOERGMjFCRTkzQUQxMDAxM0M4OEYgLyogQjNTdGFja21hcFZhbHVl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjk0OTU4ODFDNTdGNDc1MDA0MTNBNDggLyogQjNTdGFj
a1Nsb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTM2MUJEQUNEQUMwMDgwRkY3NCAvKiBC
M1N1Y2Nlc3NvckNvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTM4MUJEQUNE
QUMwMDgwRkY3NCAvKiBCM1N3aXRjaENhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTNB
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N3aXRjaFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjQ1NzA0MTFCRTU4NENBMDA2MkE2MjkgLyogQjNUaW1pbmdTY29wZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEYzMzhFMUUxQkYyODZFQTAwMTNDODhGIC8qIEIzTG93ZXJNYWNyb3MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRUM4NTNDMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1R5cGUuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTI2OUQ2MzZFMUJGQkU1RDEwMDEwMUIxRCAvKiBGVExPdXRwdXQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCURDRkRGQkRBMUQxRjVEOUUwMEZFM0Q3MiAvKiBCM1R5cGVNYXAuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRUM4NTNFMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Vwc2lsb25W
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1NDAxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
VXNlQ291bnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU0MjFCREFDREFDMDA4MEZGNzQg
LyogQjNWYWxpZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1NDQxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTQ1MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM1ZhbHVlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMzhFMTUxQkYw
Mjc2QzAwMTNDODhGIC8qIEIzVmFsdWVLZXkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzM4RTE2
MUJGMDI3NkMwMDEzQzg4RiAvKiBCM1ZhbHVlS2V5SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFQzg1NDcxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVmFsdWVSZXAuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGMkJCRDk4MUM1RkYzRjUwMDIzRUYyMyAvKiBCM1ZhcmlhYmxlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjJCQkQ5QTFDNUZGM0Y1MDAyM0VGMjMgLyogQjNWYXJpYWJsZVZhbHVlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1M0Q0NDREQzFEQUYwOEFCMDBCOTI3ODQgLyogQjNXYXNtQWRk
cmVzc1ZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MzQxRkM3MjFEQUMzNDNDMDBFN0U0RDcg
LyogQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTI2NzhGOEYx
QTAzMTAwOTAwNkEzMDZEIC8qIEJhc2ljQmxvY2tMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEYzMzhFMTUxQkYwMjc2QzAwMTNDODhGIC8qIEIzVmFsdWVLZXkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTE0N0I4M0FDMEU2REI4QzkwMDQ3NzVBNCAvKiBCYXRjaGVkVHJhbnNpdGlvbk9wdGlt
aXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY2NzM5RDIxM0JGREU3MTAwMjNEODdDIC8qIEJp
Z0ludGVnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjRCMjcyMUE3ODRCQUYwMDZFNEU2NiAv
KiBCaW5hcnlTd2l0Y2guaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0VDMEUxNkY1Q0QwMEIz
NDQ2MCAvKiBCb29sZWFuT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTZCNzMxOTFCREEw
NjgwMDAzMzFCODQgLyogQm9vbGVhblByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZFQTA4NjIwMTgyQjdBMDQwMEY2RDg1MSAvKiBCcmVha3BvaW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQlERTI2RTkwMzFDQjVERDA1MDBEMkJFODIgLyogQnVpbHRpbkV4ZWN1dGFibGVDcmVhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q4MDFBNTE4ODBENjZFMDAyNkMzOUIgLyogQnVpbHRp
bkV4ZWN1dGFibGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzVFRTlCMjE4QUFCN0UyMDBBQUQw
NDMgLyogQnVpbHRpbk5hbWVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkJCNzNCODFERUYzQUFF
MDAyQzAwOUUgLyogUHJldmVudENvbGxlY3Rpb25TY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTlEQTAwQTYxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zLnB5IGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTlEQTAwQTcxQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX2NvbWJpbmVk
X2hlYWRlci5weSBpbiBIZWFkZXJzICovLAogCQkJCTk5REEwMEE4MUJENTk5MzEwMEY0NTc1QyAv
KiBidWlsdGluc19nZW5lcmF0ZV9jb21iaW5lZF9pbXBsZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJz
ICovLAorCQkJCTQxMjk1Mjc3MUQyQ0Y2QkMwMEU3OEI4OSAvKiBidWlsdGluc19nZW5lcmF0ZV9p
bnRlcm5hbHNfd3JhcHBlcl9oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKKwkJCQk0MTI5NTI3ODFE
MkNGNkJDMDBFNzhCODkgLyogYnVpbHRpbnNfZ2VuZXJhdGVfaW50ZXJuYWxzX3dyYXBwZXJfaW1w
bGVtZW50YXRpb24ucHkgaW4gSGVhZGVycyAqLywKIAkJCQk5OURBMDBBOTFCRDU5OTMxMDBGNDU3
NUMgLyogYnVpbHRpbnNfZ2VuZXJhdGVfc2VwYXJhdGVfaGVhZGVyLnB5IGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEYzMzhFMTExQkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0LmggaW4g
SGVhZGVycyAqLywKLQkJCQlGRUEwQzQwMzFDREQ3RDFEMDA0ODE5OTEgLyogRnVuY3Rpb25XaGl0
ZWxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkRCN0U5MUQ2MTI0QjUwMENEQkY4RSAvKiBT
dGFja0ZyYW1lLmggaW4gSGVhZGVycyAqLywKLQkJCQlFM0E0MjE0MzFENkY1ODkzMDAwN0M2MTcg
LyogUHJlY2lzZUp1bXBUYXJnZXRzSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlEQTAw
QUExQkQ1OTkzMTAwRjQ1NzVDIC8qIGJ1aWx0aW5zX2dlbmVyYXRlX3NlcGFyYXRlX2ltcGxlbWVu
dGF0aW9uLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJOTlEQTAwQTMxQkQ1OTkzMTAwRjQ1NzVDIC8q
IGJ1aWx0aW5zX2dlbmVyYXRvci5weSBpbiBIZWFkZXJzICovLAotCQkJCTQxMjk1Mjc4MUQyQ0Y2
QkMwMEU3OEI4OSAvKiBidWlsdGluc19nZW5lcmF0ZV9pbnRlcm5hbHNfd3JhcHBlcl9pbXBsZW1l
bnRhdGlvbi5weSBpbiBIZWFkZXJzICovLAogCQkJCTQxMjk1Mjc5MUQyQ0Y2QkMwMEU3OEI4OSAv
KiBidWlsdGluc19nZW5lcmF0ZV93cmFwcGVyX2hlYWRlci5weSBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMjk1MjdBMUQyQ0Y2QkMwMEU3OEI4OSAvKiBidWlsdGluc19nZW5lcmF0ZV93cmFwcGVyX2lt
cGxlbWVudGF0aW9uLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJNDEyOTUyNzcxRDJDRjZCQzAwRTc4
Qjg5IC8qIGJ1aWx0aW5zX2dlbmVyYXRlX2ludGVybmFsc193cmFwcGVyX2hlYWRlci5weSBpbiBI
ZWFkZXJzICovLAotCQkJCUFEMkZDQzAxMURCNThEQUQwMEIzRTczNiAvKiBXZWJBc3NlbWJseU1v
ZHVsZUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQlGRTNBMDZBNjFDMTBCNzJEMDAz
OTBGREQgLyogSklUQml0T3JHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5REEwMEEz
MUJENTk5MzEwMEY0NTc1QyAvKiBidWlsdGluc19nZW5lcmF0b3IucHkgaW4gSGVhZGVycyAqLywK
IAkJCQk5OURBMDBBNDFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfbW9kZWwucHkgaW4gSGVh
ZGVycyAqLywKIAkJCQk5OURBMDBBNTFCRDU5OTMxMDBGNDU3NUMgLyogYnVpbHRpbnNfdGVtcGxh
dGVzLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJNDFERUExMzIxQjlGMzE2MzAwNkQ2NUREIC8qIEJ1
aWx0aW5VdGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUU3Mjk0MEIxOTBGMDUxNDAwMUE5MUI1
IC8qIEJ1bmRsZVBhdGguaCBpbiBIZWFkZXJzICovLAotCQkJCURDRkRGQkQ5MUQxRjVEOUIwMEZF
M0Q3MiAvKiBCM0JvdHRvbVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI3RjM5NzE1
RUQ4RTQ2MDBGMTY3QjIgLyogQnV0dGVyZmx5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI3RjM5
ODE1RUQ4RTQ2MDBGMTY3QjIgLyogQnV0dGVyZmx5SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQUQyRkNCRjExREI1OERBRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1
Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzJGQ0FFMTExN0E5QzI0RTAwMzRDNzM1IC8qIEJ5
dGVjb2RlQmFzaWNCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyMUMyN0YxNEJFQUE4MjAw
QURDNjRCIC8qIEJ5dGVjb2RlQ29udmVudGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2OUEw
NzIzMEVEMUNFMzMwMEYxRjY4MSAvKiBCeXRlY29kZUdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTMyOERBRTgxRDM4RDAwNTAwMUEyNTI5IC8qIEJ5dGVjb2RlR2VuZXJhdG9yaWZpY2F0
aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzI4REFFOTFEMzhEMDA1MDAxQTI1MjkgLyogQnl0
ZWNvZGVHcmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzA5NEM0REYxQUU0Mzk1MzAwNDFBMkVF
IC8qIEJ5dGVjb2RlSW50cmluc2ljUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkRE
ODBCMUFCM0Q4NTgwMEJCQjhFOCAvKiBCeXRlY29kZUtpbGxzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjRDOTE2NjFDMjlGNEYyMDA0MzQxQTYgLyogQjNPcmlnaW5EdW1wLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDMkZDQUUxMzE3QTlDMjRFMDAzNEM3MzUgLyogQnl0ZWNvZGVMaXZlbmVzc0FuYWx5
c2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjY2NkVDMDE4MzU2NkY5MDBEMDE3RjEgLyogQnl0
ZWNvZGVMaXZlbmVzc0FuYWx5c2lzSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTNGNDBF
OTUxRDVBN0FFRjAwOTlBMUI2IC8qIFdhc21Nb2R1bGVQYXJzZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCUUzMjhEQUVCMUQzOEQwMDUwMDFBMjUyOSAvKiBCeXRlY29kZVJld3JpdGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2NTE0RjIxOTE4QjNFMTY3MDA5OEZGOEIgLyogQnl0ZWNvZGVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjg4NUUxMTE4NDlBM0JFMDBGMUUzRkEgLyogQnl0ZWNvZGVVc2VE
ZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODAyM0VBMTYxMzgzMkIwMEEwQkE0NSAvKiBCeVZh
bEluZm8uaCBpbiBIZWFkZXJzICovLAotCQkJCTc5RTQyM0UzMURFRTY1MzIwMDc4RDM1NSAvKiBK
U1dlYkFzc2VtYmx5Q2FsbGVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUI4MzkyRTFCQUNBRDM2
MDA0NEU4MjQgLyogQ2FjaGVkUmVjb3ZlcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0VE
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBDYWxsRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2NEIy
N0ExQTc5NTdCMjAwNkU0RTY2IC8qIENhbGxFZGdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDI5
RDhERTBFRDIyMDVCMDBCODk2MTkgLyogQ2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk2
MkVDOUJCNzFCN0VCMDdDMDAzMDNBRDEgLyogQ2FsbEZyYW1lU2h1ZmZsZURhdGEuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTc5NUIxOTk4MUQ3OEJFMzUwMDI2MkZBMCAvKiBNYXBCYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2MkQ3NTVENzFCODRGQjRBMDAxODAxRkEgLyogQ2FsbEZyYW1lU2h1ZmZs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMEI4M0IxMTRCQ0Y3MTgwMDg4NUI0RiAvKiBDYWxs
TGlua0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTMzMjlFMTRDQTdEQzUwMDg1RjNDNiAv
KiBDYWxsTGlua1N0YXR1cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjI3NjczMjQxQjY4MEMxRTAw
RkQ5RjJFIC8qIENhbGxNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjBCODNCOTE0QkNGOTVG
MDA4ODVCNEYgLyogQ2FsbFJldHVybk9mZnNldFRvQnl0ZWNvZGVPZmZzZXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGM0I3RTJCMTlBMTFCODAwMEQ5QkM1NiAvKiBDYWxsVmFyaWFudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRkU4MEMxOTcxRDc3NUNERDAwODUxMEMwIC8qIENhdGNoU2NvcGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGMjRFNTQyMTdFQTlGNTkwMEFCQjIxNyAvKiBDQ2FsbEhlbHBl
cnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMDcwQTQ3MUQ1NDNBOEIwMDZFNzIzMiAvKiBDZWxs
Q29udGFpbmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjA3MEE0ODFENTQzQTkwMDA2RTcyMzIg
LyogQ2VsbENvbnRhaW5lcklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMUMzRERBMUJC
Q0UwOUUwMEU1MjNFNCAvKiBDZWxsU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNkFBQUU1
MEUxRjQyNjUwMEFEODdEOCAvKiBDbGFzc0luZm8uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkI4
QUQ5MUM0RUREQTIwMDk2OTA1MiAvKiBCM0R1cGxpY2F0ZVRhaWxzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkUwNTAyNjFBQTkwOTU2MDBEMzNCMzMgLyogQ2xvbmVkQXJndW1lbnRzLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjVBRTJDNDFERjRGMjgwMDA2NkVGRTEgLyogVk1JbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKLQkJCQlBRDJGQ0JGRDFEQjU4REFEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlU
YWJsZUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzE4QzQ1RTBFMTZGNUNEMDBC
MzQ0NjAgLyogQ0xvb3BTdGFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTdDMUVBRjAxNzk4N0FC
NjAwMjk5REIyIC8qIENMb29wU3RhY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NjlB
MDc5NzBFRDFEM0FFMDBGMUY2ODEgLyogQ29kZUJsb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjhGOTQ0MTE2Njc2MzMyMDBENjE5NzEgLyogQ29kZUJsb2NrSGFzaC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDOTdGMzQxODIwMjBENzAwMkM5QjI2IC8qIENvZGVCbG9ja0pldHRpc29uaW5nV2F0
Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEOEEzMTQxN0Q0MzI2QzAwQ0EyQzQwIC8q
IENvZGVCbG9ja1NldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2NjRDRTgxREEzMDRFRjAwQjAw
QTExIC8qIENvZGVCbG9ja1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTZFQkIz
MTY2NzZFRjYwMDhCQURFMyAvKiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTc3RjE4MjIxNjQwODhCMjAwNjQwQTQ3IC8qIENvZGVDYWNoZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTlDQzBCNjMxOEJFOTk1MDAwNkNFQkNDIC8qIENvZGVHZW5lcmF0b3JSZXBsYXlJ
bnB1dHMucHkgaW4gSGVhZGVycyAqLywKLQkJCQlFM0M3OUNBQjFEQjlBNERDMDBEMUVDQTQgLyog
RE9NSklURWZmZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI2MjE4QkU5OTQ2MDA2Q0VC
Q0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0c1RlbXBsYXRlcy5weSBpbiBIZWFkZXJzICov
LAogCQkJCTg2RTExNkIxMEZFNzVBQzgwMEI1MTJCQyAvKiBDb2RlTG9jYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQkQ3RTY5MTQ0Nzk5OTYwMDQ4MTMxNSAvKiBDb2RlT3JpZ2luLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjIxQzI3RDE0QkU3MjdBMDBBREM2NEIgLyogQ29kZVNwZWNpYWxp
emF0aW9uS2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwQjgzQTcxNEJDRjUwNzAwODg1QjRG
IC8qIENvZGVUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkE3NjIwNTFEQjkyNDI5MDBCN0Ey
RkQgLyogQ29sbGVjdGlvblNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTMyNDM5ODE4NTZB
NDg5MDAyRUQ2OTIgLyogQ29tYmluZWREb21haW5zLmpzb24gaW4gSGVhZGVycyAqLywKLQkJCQkw
RjMwRDdDMDFEOTVENjMyMDA1MzA4OUQgLyogQ1BVLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4
QzNGMzBFMTZGNUNEMDBCMzQ0NjAgLyogQ29tbW9uSWRlbnRpZmllcnMuaCBpbiBIZWFkZXJzICov
LAotCQkJCTUzRjZCRjZEMUMzRjA2MEEwMEY0MUU1RCAvKiBJbnRlcm5hbEZ1bmN0aW9uQWxsb2Nh
dGlvblByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTVGMTVGMTRCN0E3M0UwMDVERTM3
RCAvKiBDb21tb25TbG93UGF0aHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTNBMzMyMTdBMUYx
RUUwMDhDRjZGMyAvKiBDb21tb25TbG93UGF0aHNFeGNlcHRpb25zLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkQ4MkUzOTE0MUFCMTREMDAxNzlDOTQgLyogQ29tcGFjdEpJVENvZGVNYXAuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGMkJCRDlFMUM1RkY0MDUwMDIzRUYyMyAvKiBBaXJTdGFja1Nsb3RL
aW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0U1QTNBODE3OTc0MzJEMDBFODkzQzAgLyogQ29t
cGlsYXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDM0Y0MEUxNkY1Q0QwMEIz
NDQ2MCAvKiBDb21wbGV0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZGQzc1MTE5NjExMEE4
MDBFMUQwMkQgLyogQ29tcGxleEdldFN0YXR1cy5oIGluIEhlYWRlcnMgKi8sCkBAIC03OTM2LDIw
ICs3OTc2LDE2IEBACiAJCQkJMTQ0ODM2RTcxMzJEQTdCRTAwNUJFNzg1IC8qIENvbnNlcnZhdGl2
ZVJvb3RzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTNDRTA4QTE4QkMyMUMzMDBCRURGNzYgLyog
Q29uc29sZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVGRDAwN0ExODlCMDUxMDAwNjMz
MjMxIC8qIENvbnNvbGVNZXNzYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNTU3MTRCRTFDRDgw
NDlGMDAwNEQyQzYgLyogQ29uc29sZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVGRDAw
NzQxODlCMDM4QzAwNjMzMjMxIC8qIENvbnNvbGVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZGQzk5RDExODRFQzhBRDAwOUMxMEFCIC8qIENvbnN0YW50TW9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTM1NDYyMkIxQjYwNjVEMTAwNTQ1Mzg2IC8qIENvbnN0cnVjdEFiaWxpdHkuaCBpbiBI
ZWFkZXJzICovLAotCQkJCURDRjNENTZEMUNEMjk0NzYwMDNENUM2NSAvKiBMYXp5UHJvcGVydHlJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzNGNjBFMTZGNUNEMDBCMzQ0NjAgLyog
Q29uc3RydWN0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU3RDIzRjIxODkxQjVCNDAwMzFD
N0ZBIC8qIENvbnRlbnRTZWFyY2hVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMjA4
QUQ3MURGMDkyNUQwMDdEMzI2OSAvKiBMb2NrRHVyaW5nTWFya2luZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTI2NzhGOTExQTA0MTc3QzAwNkEzMDZEIC8qIENvbnRyb2xGbG93UHJvZmlsZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCTUzNDg2QkI3MUMxNzk1QzMwMEY2RjNBRiAvKiBKU1R5cGVkQXJy
YXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUM0RjRCNkY0MUEwNUM5NDQwMDVDQUI3NiAvKiBjcHBf
Z2VuZXJhdG9yLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMzhFMUMxQkYyODZFQTAwMTNDODhG
IC8qIEIzQmxvY2tJbnNlcnRpb25TZXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOTQ5NTg4MUM1
N0Y0NzUwMDQxM0E0OCAvKiBCM1N0YWNrU2xvdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzRGNEI2
RjMxQTA1Qzk0NDAwNUNBQjc2IC8qIGNwcF9nZW5lcmF0b3JfdGVtcGxhdGVzLnB5IGluIEhlYWRl
cnMgKi8sCi0JCQkJMEYzOEQyQTIxRDQ0MTk2ODAwNjgwNDk5IC8qIEF1eGlsaWFyeUJhcnJpZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzBEN0MwMUQ5NUQ2MzIwMDUzMDg5RCAvKiBDUFUuaCBp
biBIZWFkZXJzICovLAogCQkJCTVERTZFNUIzMEUxNzI4RUMwMDE4MDQwNyAvKiBjcmVhdGVfaGFz
aF90YWJsZSBpbiBIZWFkZXJzICovLAogCQkJCTk5NTlFOTJCMUJEMTdGQTQwMDFBQTQxMyAvKiBj
c3NtaW4ucHkgaW4gSGVhZGVycyAqLywKIAkJCQkyQTExMTI0NjE5MkZDRTc5MDA1RUUxOEQgLyog
Q3VzdG9tR2V0dGVyU2V0dGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTc5NjAsOTAgKzc5OTYsNzMg
QEAKIAkJCQk0MTM1OUNGMzBGREQ4OUFEMDAyMDYxODAgLyogRGF0ZUNvbnZlcnNpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMTE2NjAyMEUxOTk3QjQwMDgwNjZERCAvKiBEYXRlSW5zdGFuY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTE0QTE1NjMyMTA5NjYzNjUwMDZGQTI2MCAvKiBEYXRlSW5z
dGFuY2VDYWNoZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTU0QzJBQjExQzY1NDRGMjAwQTE4RDc4
IC8qIEhlYXBTbmFwc2hvdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEMjAzNEMwRTE3MTM1RTAw
MkM3RTgyIC8qIERhdGVQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDIwM0U4MEUx
NzE4RjQwMDJDN0U4MiAvKiBEYXRlUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMxOEMzRkEwRTE2RjVDRDAwQjM0NDYwIC8qIERlYnVnZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzE4QzNGQjBFMTZGNUNEMDBCMzQ0NjAgLyogRGVidWdnZXJDYWxsRnJhbWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTZBRDJDQjREMTlCOTE0MDEwMDA2NTcxOSAvKiBEZWJ1Z2dlckV2YWxFbmFi
bGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNUZDODRCMjFEMUREQUQ2MDA2QjVDNDYgLyogRGVi
dWdnZXJMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTVBMUEwOTQxRDhDQjMzRTAwNEMy
RUI4IC8qIERlYnVnZ2VyUGFyc2VEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRUEwODYyMTE4
MkI3QTA0MDBGNkQ4NTEgLyogRGVidWdnZXJQcmltaXRpdmVzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk1M0Y0MEU4NTFENThGOTc3MDA5OUExQjYgLyogV2FzbVNlY3Rpb25zLmggaW4gSGVhZGVycyAq
LywKLQkJCQlEQzlBMEMxRjFEMkQ5Q0IxMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbklubGlu
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkQ0RERFMTk4MzJEMzQwMDdENEIxOSAvKiBEZWJ1
Z2dlclNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjEzNkQ0RDE3NEFENjlFMDA3NUIzNTQg
LyogRGVmZXJHQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNzEyREYxN0NEODc3QzAwOENDOTND
IC8qIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTRB
RDkxMEYxRENBOTI5NDAwMTRGOUZFIC8qIE1vZHVsZVByb2dyYW1Db2RlQmxvY2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZFNTA2ODY1MUFFMjQ2MzkwMDA5REFCNyAvKiBEZWZlcnJlZFNvdXJjZUR1
bXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ3M0RBNEE0NzY0QzQ1RkU4NzFCMDQ4NSAvKiBEZWZp
bmVQcm9wZXJ0eUF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQkI3M0JCMURFRjg2
NDUwMDJDMDA5RSAvKiBEZWxldGVBbGxDb2RlRWZmb3J0LmggaW4gSGVhZGVycyAqLywKKwkJCQkw
Rjk2MzAzQzFENDE5MkNEMDA1NjA5RDkgLyogRGVzdHJ1Y3Rpb25Nb2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNzdBNDIzRTE3QTBCQkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNzA0RDkwMzE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJ
bnRlcnByZXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwNEQ5MDQxN0EwQkFBODAwNkJBNTU0
IC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjYyMDE3NzE0M0ZDRDNGMDA2OEI3N0MgLyogREZHQWJzdHJhY3RWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZEM0U0MDIxQjYxOEFBRjAwQzgwRTFFIC8qIERGR0FkYXB0aXZlSW5mZXJyZWRQ
cm9wZXJ0eVZhbHVlV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxOEQzRDAxQjU1
QTZFMDAwMkM1QzlGIC8qIERGR0FkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJOTk4RUQ2NzUxQkVENzY4QzAwREQ4MDE3IC8qIFJlbW90ZUNvbnRyb2xsYWJs
ZVRhcmdldC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzM0ZDRjgxQzEzNkUyNTAwMzIzRjY3IC8q
IEIzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmggaW4gSGVhZGVycyAqLywKLQkJCQk3OUI3NTk3
NjFERkE0QzYwMDA1MjE3NEMgLyogV2FzbVBhZ2VDb3VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY2NkUxNkIxNERGM0YxNjAwQjdCMkU0IC8qIERGR0FkamFjZW5jeUxpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRkI5MjE4MTZEMDJFQjIwMDU1QTVEQiAvKiBERkdBbGxvY2F0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGMUUzQTQ2MTUzNENCQUYwMDBGOTQ1NiAvKiBERkdBcmd1bWVudFBv
c2l0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQlBRDJGQ0JGNTFEQjU4REFEMDBCM0U3MzYgLyog
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY3QzVG
QjgxRDg4OEEwQzAwNDRGNUUyIC8qIE1hcmtlZEJsb2NrSW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyREQ4MTIxQUIzRDhCRTAwQkJCOEU4IC8qIERGR0FyZ3VtZW50c0VsaW1pbmF0aW9u
UGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkREODE0MUFCM0Q4QkUwMEJCQjhFOCAvKiBE
RkdBcmd1bWVudHNVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDg1MzIyMTg3NzUw
NTYwMDgzQjY4NyAvKiBERkdBcml0aE1vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUUzQzA4RTND
MURBNDFCODEwMDM5NDc4RiAvKiBET01KSVRQYXRjaHBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjA1QzNCNDE2ODNDRjkyMDBCQUY0NUIgLyogREZHQXJyYXlpZnlTbG93UGF0aEdlbmVyYXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2Mzk0ODUxNUU0ODExQjAwNkE1OTdDIC8qIERGR0Fy
cmF5TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEOUEyOTUxN0EwQkM3NDAwRUUyNjE4IC8q
IERGR0F0VGFpbEFic3RyYWN0U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjY2RUM3MTgz
NTY3MkIwMEQwMTdGMSAvKiBERkdBdmFpbGFiaWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MkI5Q0UzMTlEMEJBN0QwMEIxRDFCNSAvKiBERkdBdmFpbGFiaWxpdHlNYXAuaCBpbiBIZWFkZXJz
ICovLAorCQkJCURDRUUyMjA5MUNFQjk4OTUwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHNDRkcuaCBp
biBIZWFkZXJzICovLAorCQkJCURDRUUyMjBBMUNFQjk4OTUwMDBDMjM5NiAvKiBERkdCYWNrd2Fy
ZHNEb21pbmF0b3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjcxNENBNTE2RUE5MkYyMDBGM0VC
RUIgLyogREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY2MjAxNzYxNDNGQ0QzQjAwNjhCNzdDIC8qIERGR0Jhc2ljQmxvY2suaCBpbiBIZWFkZXJzICov
LAotCQkJCTQzNDIyQTYzMUMxNThFNkQwMEUyRUI5OCAvKiBCM0NvbnN0RmxvYXRWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZGQjkyMUExNkQwMkVDNTAwNTVBNURCIC8qIERGR0Jhc2ljQmxv
Y2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q4OUNGNDE3QTBCOENDMDA3NzNBRDgg
LyogREZHQmxvY2tJbnNlcnRpb25TZXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMkJCRDk2MUM1
RkYzRjUwMDIzRUYyMyAvKiBCM1NwYXJzZUNvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJ
CURDM0QyQjBBMUQzNDMxNjIwMEJBOTE4QyAvKiBIZWFwQ2VsbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDM0NDRkMxOUFEQTQxMDAwNkFDNzJBIC8qIERGR0Jsb2NrTWFwLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkMzQ0NGRDE5QURBNDEwMDA2QUM3MkEgLyogREZHQmxvY2tNYXBJbmxpbmVzLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk1QjcwQ0ZFMjFEQjY5RTY2MDBFQzIzRjkgLyogQXN5bmNGdW5j
dGlvbkNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkMzQ0NGRTE5QURBNDEwMDA2
QUM3MkEgLyogREZHQmxvY2tTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQkYxNThEMTlCN0E1
MzEwMDY5NUREMCAvKiBERkdCbG9ja1NldElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QzNDRDAwMTlBREE0MTAwMDZBQzcyQSAvKiBERkdCbG9ja1dvcmtsaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjgzNjRCNzE2NEIwQzExMDA1MzMyOUEgLyogREZHQnJhbmNoRGlyZWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4NkVDOURDNTEzMjhERjgyMDAyQjJBRDcgLyogREZHQnl0ZUNv
ZGVQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjU2QzM2MTYyN0IwQUQwMDdGMjc4MyAv
KiBERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJRTNCRkQwQkMxREFGODA4RTAwNjVERUEyIC8qIERPTUpJVEFjY2Vzc0Nhc2VQYXRjaHBv
aW50UGFyYW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkJEQjlBRDFBQjBGQkM2MDAwQjU3RTUg
LyogREZHQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Nsb3dQYXRoR2VuZXJhdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjdCMjk0QjE0QzNDRDJGMDA3QzNEQjEgLyogREZHQ2FwYWJpbGl0aWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZGQzk1ODE0RUY5MEEyMDBDNzI1MzIgLyogREZHQ0ZB
UGhhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzM4REZFMUJFRDUxMjcwMDEzQzg4RiAvKiBB
aXJTaW1wbGlmeUNGRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzQjNBMjgxNTQ0Qzk5NzAwM0VE
MEZGIC8qIERGR0NGR1NpbXBsaWZpY2F0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUUz
RkZDODUzMURBRDdEMTUwMERFQTUzRSAvKiBET01KSVRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY5RDM2OTUxQUU5Q0MzMzAwMEQ0REZCIC8qIERGR0NsZWFuVXBQaGFzZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY3Q0Y5NEYxREJFRUU4ODAwOThDQzEyIC8qIFJlbGVhc2VIZWFwQWNjZXNz
U2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3N0E0MjQwMTdBMEJCRkQwMEE4REI4MSAvKiBE
RkdDbG9iYmVyaXplLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjM3MzA4RDFDMEJEMjkxMDAwNTJC
RkEgLyogQjNQaGlDaGlsZHJlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc3QTQyNDIxN0EwQkJG
RDAwQThEQjgxIC8qIERGR0Nsb2JiZXJTZXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNjE4MzJE
MUM0NUJGMDcwMDcyNDUwQiAvKiBBaXJFbWl0U2h1ZmZsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYzQzFGMUIxQjg2OEU3OTAwQUJCMDhCIC8qIERGR0Nsb2JiZXJzRXhpdFN0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjA0Mzk2RTFCMDNEQzBCMDA5NTk4QjcgLyogREZHQ29tYmluZWRMaXZl
bmVzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3QjI5NEQxNEMzQ0Q0QzAwN0MzREIxIC8qIERG
R0NvbW1vbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTM1MjlBNEMxQzQ1N0I3NTAwMEI0OUM2IC8q
IEFQSVV0aWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEEzMjE3MEQ0MEJGMDBCQjcyMkMg
LyogREZHQ29tbW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY3MjVDQjAxQzUwNkQzQjAw
QUQ5NDNBIC8qIEIzRm9sZFBhdGhDb25zdGFudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMzhC
MDE4MTdDRkU3NTUwMEIxNDREMyAvKiBERkdDb21waWxhdGlvbktleS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY5RDRDMTExQzNFMkM3NDAwNkNEOTg0IC8qIEZUTFBhdGNocG9pbnRFeGNlcHRpb25I
YW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMzhCMDFBMTdDRkU3NTUwMEIxNDREMyAvKiBE
RkdDb21waWxhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGM0IzQTFCMTUzRTY4RjQw
MDNFRDBGRiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZFRDY3QkExQjI2MjU2RDAwNjZDRTE1IC8qIERGR0NvbnN0YW50SG9pc3RpbmdQaGFzZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRENFRTIyMEIxQ0VCOTg5NTAwMEMyMzk2IC8qIERGR0NvbnRyb2xF
cXVpdmFsZW5jZUFuYWx5c2lzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkJFMEY3MzE2QzFEQjA1
MDA4MkM1RTggLyogREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTdEODlDRjYxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0NyaXRpY2FsRWRnZUJyZWFraW5nUGhhc2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkZDOTVBMTRFRjkwQTkwMEM3MjUzMiAvKiBERkdDU0VQ
aGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyRkM3NzMxNkUxMkY3NDAwMzhEOTc2IC8qIERG
R0RDRVBoYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQlBRDJGQ0MzMTFEQjgzRDQ5MDBCM0U3MzYg
LyogSlNXZWJBc3NlbWJseS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4RjJCOUExNzJGMDUwMTAw
N0RCREE1IC8qIERGR0Rlc2lyZWRJZGVudGlmaWVycy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOEI5
RjZENTYxRDU5MTJGQTAwMUM3MzlGIC8qIEl0ZXJhdGlvbktpbmQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRkM5MjE0MUI5NEU4M0UwMDcxREQ2NiAvKiBERkdEZXNpcmVkSW5mZXJyZWRUeXBlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDMkMwRjdDRTE3QkJGQzVCMDA0NjRGRTQgLyogREZHRGVzaXJl
ZFRyYW5zaXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU4NTM0QzE3MjNDREE1MDBCNjE4
RjUgLyogREZHRGVzaXJlZFdhdGNocG9pbnRzLmggaW4gSGVhZGVycyAqLywKQEAgLTgwNTEsMjUg
KzgwNzAsMjMgQEAKIAkJCQkwRkY0Mjc2NTE1OTFBMUNFMDA0Q0I5RkYgLyogREZHRGlzYXNzZW1i
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVBMTI3NDE5MkQ5RkRGMDA4NzY0QTMgLyogREZH
RG9lc0dDLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ4MUFEMzE1NEZCNEYwMDA5ODNFNzIgLyog
REZHRG9taW5hdG9ycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTMyMkU1QTMxREE2NDQzOTAwNkU3
NzA5IC8qIERGR0RPTUpJVFBhdGNocG9pbnRQYXJhbXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MUUzQTQ3MTUzNENCQjkwMDBGOTQ1NiAvKiBERkdEb3VibGVGb3JtYXRTdGF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZEM0M4MjgxNDExNUQ0RjAwRkQ4MUNCIC8qIERGR0RyaXZlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY2NkUxNkMxNERGM0YxNjAwQjdCMkU0IC8qIERGR0VkZ2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE3RDlBMjk2MTdBMEJDNzQwMEVFMjYxOCAvKiBERkdFZGdlRG9taW5h
dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzk4NkQ1NzE3QTBCQjFFMDBBOTVERDAgLyogREZH
RWRnZVVzZXNTdHJ1Y3R1cmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEYxNDM0MUFERjA5MDEw
MEVENzkyQyAvKiBERkdFcG9jaC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5NTJBQTExREY3ODYw
OTAwRTA2RkJEIC8qIFZpc2l0UmFjZUtleS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQUQ0OTM3Qzgx
REREMEFBRTAwNzdDODA3IC8qIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkJDMEFFODE0OTZDN0M3MDBENEZCREQgLyogREZHRXhpdFByb2ZpbGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE3OEE5Nzc1MTc5NzM4QjgwMDlERjc0NCAvKiBERkdGYWlsZWRGaW5h
bGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QkZGM0MwMTc5ODY4OTQwMDAyRjQ2MiAvKiBE
RkdGaWx0cmF0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjdDMzlGQjFDOEY2Mjkz
MDA0ODAxNTEgLyogUmVnRXhwSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4QTk3Nzcx
Nzk3MzhCODAwOURGNzQ0IC8qIERGR0ZpbmFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
QkRDMTYxNTFDNUQ0RjAwQ0Q4OTEwIC8qIERGR0ZpeHVwUGhhc2UuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGMjAxNzgwMURDQURDMzUwMEVBNTk1MCAvKiBERkdGbG93SW5kZXhpbmcuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGMjAxNzgyMURDQURENDIwMEVBNTk1MCAvKiBERkdGbG93TWFwLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjlEMzM5NzE3RkZDNEU2MDA3M0MyQkMgLyogREZHRmx1c2hlZEF0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q4OUNGODE3QTBCOENDMDA3NzNBRDggLyogREZHRmx1
c2hGb3JtYXQuaCBpbiBIZWFkZXJzICovLAotCQkJCUFEMkZDQzE2MURCNTlDQjIwMEIzRTczNiAv
KiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyREQ4MTUxQUIzRDhCRTAwQkJCOEU4IC8qIERGR0ZvckFsbEtpbGxzLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk3OUEwOTA4MDFENzY4NDY1MDA4Qjg4OUIgLyogSGFzaE1hcEltcGwuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNjlDQzg5MTkzQUM2MEEwMDQ1NzU5RSAvKiBERkdGcm96ZW5W
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFQzlEQzYxMzI4REY4MjAwMkIyQUQ3IC8qIERG
R0dlbmVyYXRpb25JbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkVDOURDODEzMjhERjgyMDAy
QjJBRDcgLyogREZHR3JhcGguaCBpbiBIZWFkZXJzICovLApAQCAtODA4NSw2MiArODEwMiw0NyBA
QAogCQkJCTBGQzk3RjNFMTgyMDIxMTkwMDJDOUIyNiAvKiBERkdJbnZhbGlkYXRpb25Qb2ludElu
amVjdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEEzNDE3MEQ0MEJGMDBCQjcy
MkMgLyogREZHSklUQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFQzlEQ0MxMzI4REY4MjAw
MkIyQUQ3IC8qIERGR0pJVENvbXBpbGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjcyNUNBODFD
NTAzREVEMDBBRDk0M0EgLyogQjNFbGltaW5hdGVDb21tb25TdWJleHByZXNzaW9ucy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTc4QTk3NzkxNzk3MzhCODAwOURGNzQ0IC8qIERGR0pJVEZpbmFsaXpl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDOTdGNDAxODIwMjExOTAwMkM5QjI2IC8qIERGR0p1
bXBSZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTczQTUzNUIxNzk5Q0Q1RDAwMTcw
QzE5IC8qIERGR0xhenlKU1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2MkYyQUEzODFCMEJF
REUzMDA2MTBDN0EgLyogREZHTGF6eU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDlBMjk4
MTdBMEJDNzQwMEVFMjYxOCAvKiBERkdMSUNNUGhhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTE0
NzM0MUQyMURDMDJFMkUwMEFBMjlCQSAvKiBFdmFsRXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJOTlENkExMTYxQkVBRDM0RDAwRTI1QzM3IC8qIFJlbW90ZUF1dG9tYXRpb25UYXJnZXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTc5QzRCMTVFMUJBMjE1OEYwMEZENTkyRSAvKiBERkdMaXZl
Q2F0Y2hWYXJpYWJsZVByZXNlcnZhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjg2
QTI2RjFENkY3QjMzMDBDQjBDOTIgLyogR0NUeXBlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
N0Q4OUNGQzE3QTBCOENDMDA3NzNBRDggLyogREZHTGl2ZW5lc3NBbmFseXNpc1BoYXNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkYwRjE5QjE2QjcyOUZBMDA1REY5NUIgLyogREZHTG9uZ0xpdmVk
U3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzM4REYyMUJFOTNBRDEwMDEzQzg4RiAvKiBC
M1N0YWNrbWFwVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NjdCNUI2MTdBMEI5NjUwMDYz
RDk0MCAvKiBERkdMb29wUHJlSGVhZGVyQ3JlYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzlGOEZDMUYxQjlGRUQwRjAwQ0E2NkFCIC8qIERGR01heGltYWxGbHVzaEluc2VydGlvblBo
YXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU4NzRFRTE5NEZFQjEyMDBBQUIyQzEgLyogREZH
TWF5RXhpdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQkRDNDUxNTIyODAxQjAwQ0Q4OTEwIC8q
IERGR01pbmlmaWVkR3JhcGguaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkI4QUUzMUM0RUZFMTcw
MDk2OTA1MiAvKiBCM0JyZWFrQ3JpdGljYWxFZGdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
RTg5MkQxNkQwMkJBRjAwOUU0RkQyIC8qIERGR01pbmlmaWVkSUQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGMkJEQzQ2MTUyMjgwMjAwMENEODkxMCAvKiBERkdNaW5pZmllZE5vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGOEYxNDM2MUFERjA5MDEwMEVENzkyQyAvKiBERkdNb3ZIaW50UmVtb3Zh
bFBoYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MkI3NEI0QjFEQ0MwNDY5MDAzNDE1N0QgLyog
QXJyYXlJdGVyYXRvckFkYXB0aXZlV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQUQy
RkNCRUYxREI1OERBRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkYyQ0Q1QzFCNjFBNEY4MDA0OTU1QTggLyogREZHTXVs
dGlHZXRCeU9mZnNldERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3Mzc4MTBFMTc5OUVBMkUw
MDgxNzUzMyAvKiBERkdOYXR1cmFsTG9vcHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RUNBM0VB
MTMyREVGMUMwMDJCMkFENyAvKiBERkdOb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlDQUJD
OTFEQjU0QTdBMDAwOEU4M0IgLyogQWlyUGFkSW50ZXJmZXJlbmNlLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjIwMTc4OTFEQ0I5NDI0MDBFQTU5NTAgLyogREZHTm9kZUFic3RyYWN0VmFsdWVQYWly
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZCOTIxQjE2RDAyRjAxMDA1NUE1REIgLyogREZHTm9k
ZUFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZBNTgxQkIxNTBFOTUzMDAwQjlBMkQ5
IC8qIERGR05vZGVGbGFncy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYyMDE3ODUxRENBRTE0OTAw
RUE1OTUwIC8qIERGR05vZGVGbG93UHJvamVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYz
MDBCNzgxOEFCMDUxMTAwQTZENzJFIC8qIERGR05vZGVPcmlnaW4uaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQTU4MUJDMTUwRTk1MzAwMEI5QTJEOSAvKiBERkdOb2RlVHlwZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRENFRTIyMEQxQ0VCQUY3NTAwMEMyMzk2IC8qIERGR051bGxBYnN0cmFjdFN0YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCOUNFNzE5RDBCQTdEMDBCMUQxQjUgLyogREZHT2Jq
ZWN0QWxsb2NhdGlvblNpbmtpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjlDRTkx
OUQwQkE3RDAwQjFEMUI1IC8qIERGR09iamVjdE1hdGVyaWFsaXphdGlvbkRhdGEuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQzQzM5MkFCMUMzQkVCMDUwMDI0MUY1MyAvKiBBc3NlbWJsZXJDb21tb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTg2RUM5REQwMTMyOERGODIwMDJCMkFENyAvKiBERkdPcGVy
YXRpb25zLmggaW4gSGVhZGVycyAqLywKLQkJCQk3OTA1QkI2OTFEMTIwNTBFMDAxOUZFNTcgLyog
SW5saW5lQWNjZXNzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdDMzlGRjFDOTBDNTVCMDA0ODAx
NTEgLyogREZHT3BJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q4OUNGRTE3QTBCOENDMDA3
NzNBRDggLyogREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZEODJFNTcxNDFEQUYxMDAwMTc5Qzk0IC8qIERGR09TUkVudHJ5LmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjQwRTRBNzFDNDk3Rjc0MDBBNTc3RkEgLyogQWlyT3Bjb2RlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkxNEFCNjY3NjFERUNGNDA5MDBBNTZDMjYgLyogVW5saW5rZWRTb3VyY2VD
b2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkRGNjdENzFEOURDNDQyMDAxQjk4MjUgLyogQWly
S2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEOEEzMjYxN0Q1MUY1NzAwQ0EyQzQwIC8qIERG
R09TUkVudHJ5cG9pbnRDcmVhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkMwOTc2
QTE0NjhBNkY3MDBDRjI0NDIgLyogREZHT1NSRXhpdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
MzVCRUMxNzE3OEU3MzAwNjkwQzdGIC8qIERGR09TUkV4aXRCYXNlLmggaW4gSGVhZGVycyAqLywK
LQkJCQlFMzlENDVGNTFEMzkwMDU2MDBCM0IzNzcgLyogSW50ZXJwcmV0ZXJJbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkZCOTIxQzE2RDAyRjExMDA1NUE1REIgLyogREZHT1NSRXhpdENv
bXBpbGF0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDMDk3NzExNDY5M0FGNTAwQ0Yy
NDQyIC8qIERGR09TUkV4aXRDb21waWxlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTM3QUQ4M0Qx
REE0OTI4NjAwRjNENDEyIC8qIERPTUpJVFJlZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3MDI1
QUExNzE0QjBGQzAwMzgyQzBFIC8qIERGR09TUkV4aXRDb21waWxlckNvbW1vbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYzOTJDOEExQjQ2MTg4NDAwODQ0NzI4IC8qIERGR09TUkV4aXRGdXp6Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkVGQzlBQjE2ODFBM0I2MDA1NjdGNTMgLyogREZHT1NSRXhp
dEp1bXBQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTNGNDBFOEQxRDU5MDFGMjAw
OTlBMUI2IC8qIFdhc21QYXJzZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNDBFNEE4MUM0OTdG
NzQwMEE1NzdGQSAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MjM1QkVFMTcxNzhFNzMwMDY5MEM3RiAvKiBERkdPU1JFeGl0UHJlcGFyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNjIzNzk4MUFFNDVDQTcwMEQ0MDJFQSAvKiBERkdQaGFudG9tSW5zZXJ0
aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUUzMkFCMjQ0MURDRDc1RjQwMEQ3NTMzQSAv
KiBNYWNyb0Fzc2VtYmxlckhlbHBlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkZDOTVDMTRF
RjkwQUYwMEM3MjUzMiAvKiBERkdQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjlDRUIx
OUQwQkE3RDAwQjFEMUI1IC8qIERGR1BoaUNoaWxkcmVuLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NzhBOTc3QjE3OTczOEI4MDA5REY3NDQgLyogREZHUGxhbi5oIGluIEhlYWRlcnMgKi8sCkBAIC04
MTUxLDcgKzgxNTMsNiBAQAogCQkJCTBGMkI5Q0VEMTlEMEJBN0QwMEIxRDFCNSAvKiBERkdQcm9t
b3RlZEhlYXBMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGQzkyMTYxQjk0RkIzRTAw
NzFERDY2IC8qIERGR1Byb3BlcnR5VHlwZUtleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCMTc2
NjMxOTZCOEY5RTAwOTEwNTJBIC8qIERGR1B1cmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEYzNzMwOTExQzBDRDcwQzAwMDUyQkZBIC8qIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2Fn
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzQTFCRkExQTlFQ0I3RDAwMERFMDFBIC8qIERGR1B1
dFN0YWNrU2lua2luZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkVDOUREMTEzMjhERjgy
MDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJGQ0NG
QzE4QTYwMDcwMDAxQTI3RjggLyogREZHU2FmZXBvaW50LmggaW4gSGVhZGVycyAqLywKQEAgLTgx
NTksNDAgKzgxNjAsMzAgQEAKIAkJCQlBNzQxMDE3RjE3OURBRjgwMDAyRUI4QkEgLyogREZHU2Fu
ZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MkZDQ0ZEMThBNjAwNzAwMDFBMjdGOCAvKiBERkdTY2FubmFibGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg2RUNBM0ZBMTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk3MkFBRjdDRTFEMEQzMUIzMDA1RTYwQkUgLyogSlNDdXN0b21HZXR0ZXJTZXR0
ZXJGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxRTNBNjcxNTNBMjFFMjAwMEY5NDU2
IC8qIERGR1NpbGVudFJlZ2lzdGVyU2F2ZVBsYW4uaCBpbiBIZWFkZXJzICovLAotCQkJCUFEMkZD
QzA1MURCNThEQUQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5TW9kdWxlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkZCOTIxRDE2RDAyRjMwMDA1NUE1REIgLyogREZHU2xvd1BhdGhHZW5lcmF0b3Iu
aCBpbiBIZWFkZXJzICovLAotCQkJCTUzNDFGQzcyMURBQzM0M0MwMEU3RTRENyAvKiBCM1dhc21C
b3VuZHNDaGVja1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkVDOUREMzEzMjhERjgyMDAy
QjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjgyRkIz
MTlCQ0IzNjQwMEZBM0JBRCAvKiBERkdTU0FDYWxjdWxhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBN0Q4OUQwMDE3QTBCOENDMDA3NzNBRDggLyogREZHU1NBQ29udmVyc2lvblBoYXNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkMyMENCQTE4NTU2QTM1MDBDOUU5NTQgLyogREZHU1NBTG93ZXJp
bmdQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5RkI0RjUxN0ZDQjkxNzAwQ0I2N0Y4IC8q
IERGR1N0YWNrTGF5b3V0UGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNEYyOUUwMThCNkFE
MUMwMDU3QkMxNSAvKiBERkdTdGF0aWNFeGVjdXRpb25Db3VudEVzdGltYXRpb25QaGFzZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJRTNGRjc1MzMxRDlDRUExODAwQzdFMTZEIC8qIERPTUpJVEdldHRl
clNldHRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3Rjk4OEMxRDk1OTZDODAwRjRGMTJFIC8q
IERGR1N0b3JlQmFycmllckNsdXN0ZXJpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5
RTMyNjQxQjA1QUIwNDAwODAxRUQ1IC8qIERGR1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkMyMENCNjE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5n
dGhSZWR1Y3Rpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2Mzk0NzgxNURDRTM0QjAw
NkE1OTdDIC8qIERGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGNTBBRjNDMTkzRThCMzkwMDY3NEVFOCAvKiBERkdTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUuaCBp
biBIZWFkZXJzICovLAotCQkJCUFEMkZDQzFBMURCNTlDQjIwMEIzRTczNiAvKiBXZWJBc3NlbWJs
eU1lbW9yeUNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRkU5OUIyNDkxQzI0
QzNEMzAwQzgyMTU5IC8qIEpJVE5lZ0dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3
OTA4NTYxOUEyOTBCMjAwRjYzMTBDIC8qIERGR1N0cnVjdHVyZVJlZ2lzdHJhdGlvblBoYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjJGQ0NGRjE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFk
RGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzBCNzkxOTkxQzAyNEEyOTAwMjQ4MUUyIC8qIEdl
bmVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDMDk3QTIxNDZCMjhDQzAw
Q0YyNDQyIC8qIERGR1RodW5rcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEOEEzMjgxN0Q1MUY1
NzAwQ0EyQzQwIC8qIERGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGRTM0QzFBMUM0QjM5QUUwMDAzQTUxMiAvKiBBaXJMb2dSZWdpc3RlclByZXNzdXJl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ4QTMyQTE3RDUxRjU3MDBDQTJDNDAgLyogREZHVG9G
VExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDhB
MzJDMTdENTFGNTcwMENBMkM0MCAvKiBERkdUb0ZUTEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxh
dGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKLQkJCQlGRTNBMDZCNDFDMTBDQjkzMDAzOTBG
REQgLyogSklUQml0WG9yR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3MjExRTE5
M0I5QzU5MDAzMUY2RUQgLyogREZHVHJhbnNpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2
Mzk0M0YxNUM3NUYxOTAwNkE1OTdDIC8qIERGR1R5cGVDaGVja0hvaXN0aW5nUGhhc2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQkUwRjc3MTZDMURCMTIwMDgyQzVFOCAvKiBERkdVbmlmaWNhdGlv
blBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjM0QjE0QTE2RDQyMDEzMDAxQ0RBNUEgLyog
REZHVXNlS2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRENGREZCREExRDFGNUQ5RTAwRkUzRDcy
IC8qIEIzVHlwZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzQjNBMkMxNTQ3NTAwMjAwM0VE
MEZGIC8qIERGR1ZhbGlkYXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQlBRDQ5MzdDNDFEREJFNjE0
MDA3N0M4MDcgLyogQWJzdHJhY3RNb2R1bGVSZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MkJEQzQ4MTUyMjgwMjkwMENEODkxMCAvKiBERkdWYWx1ZVNvdXJjZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYwMTIzMzMxOTQ0RUExQjAwODQzQTBDIC8qIERGR1ZhbHVlU3RyZW5ndGguaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRTI1NEY3MUFCREREMjIwMEE3QzZEMiAvKiBERkdWYXJhcmdzRm9y
d2FyZGluZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTgyMDEsNjggKzgxOTIsNzUgQEAKIAkJ
CQkwRjJCREM0OTE1MjI4MDk2MDBDRDg5MTAgLyogREZHVmFyaWFibGVFdmVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYyQkRDNEIxNTIyODA5RDAwQ0Q4OTEwIC8qIERGR1ZhcmlhYmxlRXZlbnRT
dHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkZDOTYwMTRFRjkwQkQwMEM3MjUzMiAvKiBE
RkdWaXJ0dWFsUmVnaXN0ZXJBbGxvY2F0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTUz
RkY3Rjk5MURCRkNEOTAwMEEyNkNDQyAvKiBXYXNtVmFsaWRhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQzk3RjQyMTgyMDIxMTkwMDJDOUIyNiAvKiBERkdXYXRjaHBvaW50Q29sbGVjdGlvblBo
YXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRCMkNFODE3NDgzMEEyMDA3QjNDMUIgLyogREZH
V29ya2xpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDcwQTQ5MUQ1NDNBOTMwMDZFNzIzMiAv
KiBIZWFwQ2VsbElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTA1MDE4MUFBOTA5MTEw
MEQzM0IzMyAvKiBEaXJlY3RBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTA1MDE2
MUFBOTA5MTEwMEQzM0IzMyAvKiBEaXJlY3RBcmd1bWVudHNPZmZzZXQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTk2OUEwNzk4MEVEMUQzQUUwMEYxRjY4MSAvKiBEaXJlY3RFdmFsQ29kZUNhY2hlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxNDM4NkE3NTFERDY5ODk1MDA4NjUyQzQgLyogRGlyZWN0RXZh
bEV4ZWN1dGFibGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzczMDhGMUMwQ0Q2ODUwMDA1MkJG
QSAvKiBEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRjQyNzMxMTU4RUJENTQwMDRDQjlGRiAvKiBEaXNhc3NlbWJsZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUFEMkZDQkU3MURCNThEQUQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5TWVtb3J5
LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzVDQTE1NjFEQkMzQTVGMDBGODM1MTYgLyogRE9NSklU
QWJzdHJhY3RIZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0JGRDBCQzFEQUY4MDhFMDA2NURF
QTIgLyogRE9NSklUQWNjZXNzQ2FzZVBhdGNocG9pbnRQYXJhbXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCUUzNTU1QjhBMURBRTAzQTUwMEYzNjkyMSAvKiBET01KSVRDYWxsRE9NR2V0dGVyUGF0Y2hw
b2ludC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTNDNzlDQUIxREI5QTREQzAwRDFFQ0E0IC8qIERP
TUpJVEVmZmVjdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTNGRjc1MzMxRDlDRUExODAwQzdFMTZE
IC8qIERPTUpJVEdldHRlclNldHRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM1Q0ExNTQxREJD
M0E1QzAwRjgzNTE2IC8qIERPTUpJVEhlYXBSYW5nZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTND
MDhFM0MxREE0MUI4MTAwMzk0NzhGIC8qIERPTUpJVFBhdGNocG9pbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUUzN0FEODNDMURBNDkyODYwMEYzRDQxMiAvKiBET01KSVRQYXRjaHBvaW50UGFyYW1z
LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzdBRDgzRDFEQTQ5Mjg2MDBGM0Q0MTIgLyogRE9NSklU
UmVnLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzUwNzA4QTFEQzQ5QkJGMDA4OUJDRDYgLyogRE9N
SklUU2lnbmF0dXJlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzJGRjFFQTFEQTc1NzFDMDBBOEJG
MjEgLyogRE9NSklUU2xvd1BhdGhDYWxscy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTNGRkM4NTMx
REFEN0QxNTAwREVBNTNFIC8qIERPTUpJVFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzA0
NDdFRTE3QTBCRDcwMDBGNTg5OEUgLyogRHVtcENvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUZFMzE4RkUwMUNBQzk4MkYwMERGQ0M1NCAvKiBFQ01BU2NyaXB0U3BlY0ludGVybmFsRnVuY3Rp
b25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTgzNjM4NjE4RDdEMEVFMDAwMEVCQ0MgLyogRWRl
bkdDQWN0aXZpdHlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlFNDVBMjQxOEExQjI1
OTAwMjZEODhGIC8qIEVtcHR5SW5wdXRDdXJzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5RTQ1
QTI2MThBMUIyNTkwMDI2RDg4RiAvKiBFbmNvZGVkVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJBRDJFREZCMTk3OTlFMzgwMDRENjQ3OCAvKiBFbnVtZXJhdGlvbk1vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMzA0NjA3MEUxRjQ5N0YwMDMyMzJDRiAvKiBFcnJvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMwMkU5MEQwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yQ29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGQTc2MjBCMURCOTU5RjkwMEI3QTJGRCAvKiBBbGxvY2F0aW5n
U2NvcGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQTc2MjA5MURCOTI4M0UwMEI3QTJGRCAvKiBI
ZWxwaW5nR0NTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVCNThDMTUxODdCOEIxNjAwOThF
RjBCIC8qIEVycm9ySGFuZGxpbmdTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMkU5OEQw
RTE4M0UzODAwMEY5Mjk3IC8qIEVycm9ySW5zdGFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MDJFOTBGMEUxODM5REIwMDBGOTI5NyAvKiBFcnJvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTk2QjczMUIxQkRBMDhEMTAwMzMxQjg0IC8qIEVycm9yUHJvdG90eXBlLmx1dC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNzlCNzU5NzUxREZBNEM2MDAwNTIxNzRDIC8qIFdhc21NZW1vcnlJ
bmZvcm1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTY5QTA3OTgwRUQxRDNBRTAwRjFGNjgx
IC8qIERpcmVjdEV2YWxDb2RlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTE0QUQ5MTBDMURD
QTkyOTQwMDE0RjlGRSAvKiBFdmFsQ29kZUJsb2NrLmggaW4gSGVhZGVycyAqLywKKwkJCQkxNDcz
NDFEMjFEQzAyRTJFMDBBQTI5QkEgLyogRXZhbEV4ZWN1dGFibGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1NDk4MjA0MTg5MUQwQjAwMDgxRTVCOCAvKiBFdmVudExvb3AuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZFMUMwRkZEMUIxOTNFOTgwMEI1M0ZDQSAvKiBFeGNlcHRpb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCUZFNjAyOUQ5MUQ2RTFFNEYwMDMwMjA0RCAvKiBFeGNlcHRpb25FdmVudExvY2F0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjEyREUxMDE5NzlENUZEMDAwNkZGNEUgLyogRXhj
ZXB0aW9uRnV6ei5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MDAwRTE2RjVDRDAwQjM0NDYw
IC8qIEV4Y2VwdGlvbkhlbHBlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFNjQ5MTM3MUQ3OEYw
MUQwMEE2OTRENCAvKiBFeGNlcHRpb25TY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGMDU0
RkExQUMzNUI0NDAwRTVCRTU3IC8qIEV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ei5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTc2NkI0NEYwRUU4RENEMTAwOTUxOENBIC8qIEV4ZWN1dGFibGVBbGxvY2F0
b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTE0NzM0MUNDMURDMDJENzIwMEFBMjlCQSAvKiBFeGVj
dXRhYmxlQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxNDJFNTMxQjc5NkVERDAwRjRCRjRC
IC8qIEV4ZWN1dGFibGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU2QTFEMzE1MDAwRjM1
MDAyOTkyQjEgLyogRXhlY3V0aW9uQ291bnRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTRBRDkx
MjYxRENBOUZBNDAwMTRGOUZFIC8qIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYzQUM3NTQxODhFNUVDODAwMzIwMjlGIC8qIEV4aXRpbmdKSVRUeXBlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlERTI2RTkwMzFDQjVERDA1MDBEMkJFODIgLyogQnVpbHRpbkV4
ZWN1dGFibGVDcmVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkIxMDU4NjE2NzU0ODEyMDBG
OEFCNkUgLyogRXhpdEtpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMEI4M0FCMTRCQ0Y1QkIw
MDg4NUI0RiAvKiBFeHByZXNzaW9uUmFuZ2VJbmZvLmggaW4gSGVhZGVycyAqLywKLQkJCQlBRDJG
Q0JGQjFEQjU4REFEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JQcm90b3R5cGUu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGNERFMUNGMUM0QzFCNTQwMDRENkMxMSAvKiBBaXJGaXhP
YnZpb3VzU3BpbGxzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0E4QUYzODE3QURCNUYzMDA1QUIx
NzQgLyogRmxvYXQzMkFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0E4QUYzOTE3QURCNUYz
MDA1QUIxNzQgLyogRmxvYXQ2NEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU0MzE3
RUE5RjU5MDBBQkIyMTcgLyogRlBSSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM0RURCRjcx
REI1RkZDOTAwREM4N0E1IC8qIEZyYW1lVHJhY2Vycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1
NTEzQTYxRDVBNjgyQzAwQzMyQkQ4IC8qIEZyZWVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkRCMkNDOTE3M0RBNTIwMDA3QjNDMUIgLyogRlRMQWJicmV2aWF0ZWRUeXBlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZFQTBBMUQxNzA4QjAwNzAwQkI3MjJDIC8qIEZUTEFic3RyYWN0SGVhcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTBBMUYxNzA4QjAwNzAwQkI3MjJDIC8qIEZUTEFic3Ry
YWN0SGVhcFJlcG9zaXRvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDg1MzI4MTg3REZERUMw
MDgzQjY4NyAvKiBGVExBdmFpbGFibGVSZWNvdmVyeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2
QjhBRTUxQzRFRkUxNzAwOTY5MDUyIC8qIEIzRml4U1NBLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkVBMEEwQTE3MDUxM0RCMDBCQjcyMkMgLyogRlRMQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkVBMEEyMzE3MDk2MDY5MDBCQjcyMkMgLyogRlRMQ29tbW9uVmFsdWVzLmggaW4g
SGVhZGVycyAqLywKLQkJCQkxNDczNDFEODFEQzAyRjk5MDBBQTI5QkEgLyogRnVuY3Rpb25FeGVj
dXRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEEwQzE3MDUxM0RCMDBCQjcyMkMgLyog
RlRMQ29tcGlsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTMyMkU1QTcxREE2NDRBODAwNkU3NzA5
IC8qIEZUTERPTUpJVFBhdGNocG9pbnRQYXJhbXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUQ0
QzBEMUMzRTFDMTEwMDZDRDk4NCAvKiBGVExFeGNlcHRpb25UYXJnZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMjM1QkQ0MTcxNzhFMUMwMDY5MEM3RiAvKiBGVExFeGl0QXJndW1lbnQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUFEMkZDQkY5MURCNThEQUQwMEIzRTczNiAvKiBXZWJBc3NlbWJseVJ1
bnRpbWVFcnJvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMzOEUwQzFCRjAy
NzZDMDAxM0M4OEYgLyogQjNDb21waWxhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyMzVC
RDYxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTEV4aXRBcmd1bWVudEZvck9wZXJhbmQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGMjM1QkQ3MTcxNzhFMUMwMDY5MEM3RiAvKiBGVExTdGFja21hcEFyZ3Vt
ZW50TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjlDRjUxOUQwQkFDMTAwQjFEMUI1IC8q
IEZUTEV4aXRQcm9wZXJ0eVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCOUNGNzE5RDBC
QUMxMDBCMUQxQjUgLyogRlRMRXhpdFRpbWVPYmplY3RNYXRlcmlhbGl6YXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMjM1QkRCMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExFeGl0VmFsdWUuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGRTBFNEFFMUMyNEM5NEEwMDJFMTdCNiAvKiBBaXJUbXBXaWR0
aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdGMjk5NkMxN0EwQkI2NzAwMTA0MTdBIC8qIEZUTEZh
aWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTJDMTcwQjY2MTkwMEJCNzIyQyAvKiBGVExG
b3JtYXR0ZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJREM5QTBDMjAxRDJEOUNCMzAwODUx
MjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDhBMzFBMTdE
NTFGMjIwMENBMkM0MCAvKiBGVExGb3JPU1JFbnRyeUpJVENvZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3OEE5NzdGMTc5NzM4RDUwMDlERjc0NCAvKiBGVExHZW5lcmF0ZWRGdW5jdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZFQTBBMEUxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTEpJVENvZGUu
aCBpbiBIZWFkZXJzICovLApAQCAtODI3NCwxNCArODI3MiwxNyBAQAogCQkJCTBGRUEwQTEwMTcw
NTEzREIwMEJCNzIyQyAvKiBGVExMb3dlckRGR1RvQjMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
RDg5RDAyMTdBMEI5MDQwMDc3M0FEOCAvKiBGVExMb3dlcmVkTm9kZVZhbHVlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjJCOUNGOTE5RDBCQUMxMDBCMUQxQjUgLyogRlRMT3BlcmF0aW9ucy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEYzMzhFMTAxQkYwMjc2QzAwMTNDODhGIC8qIEIzTW92ZUNvbnN0
YW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEOEEzMUMxN0Q1MUYyMjAwQ0EyQzQwIC8qIEZU
TE9TUkVudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjIzNUJERDE3MTc4RTFDMDA2OTBDN0Yg
LyogRlRMT1NSRXhpdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyMzVCRTAxNzE3OEUxQzAwNjkw
QzdGIC8qIEZUTE9TUkV4aXRDb21waWxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QjFEQjgx
QzBFNDJCRDAwRTVCRkQyIC8qIEZUTE9TUkV4aXRIYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTI2OUQ2MzZFMUJGQkU1RDEwMDEwMUIxRCAvKiBGVExPdXRwdXQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGOUQ0QzExMUMzRTJDNzQwMDZDRDk4NCAvKiBGVExQYXRjaHBvaW50RXhjZXB0aW9uSGFu
ZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQ4NTMyQTE4N0RGREVDMDA4M0I2ODcgLyogRlRM
UmVjb3ZlcnlPcGNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQ0VGQUFDMTgwNEMxM0UwMDQ3
MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNUYxQjIxODE2
MzVGMzAwNTIyRjM5IC8qIEZUTFNsb3dQYXRoQ2FsbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
NUYxQjQxODE2MzVGMzAwNTIyRjM5IC8qIEZUTFNsb3dQYXRoQ2FsbEtleS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEYyMzVCRDcxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTFN0YWNrbWFwQXJndW1lbnRM
aXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEExMjE3MDUxM0RCMDBCQjcyMkMgLyogRlRM
U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RkNDMjZEMTdBMEI2QUEwMDc4NkQxQSAvKiBG
VExTd2l0Y2hDYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjIzNUJFMjE3MTc4RTFDMDA2OTBD
N0YgLyogRlRMVGh1bmtzLmggaW4gSGVhZGVycyAqLywKQEAgLTgyOTIsMjYgKzgyOTMsMjggQEAK
IAkJCQkwRjAzMzJDODE4QjU0NkVDMDA1Rjk3OUEgLyogRlRMV2VpZ2h0ZWRUYXJnZXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNjY2RUMxMTgzNTY2RjkwMEQwMTdGMSAvKiBGdWxsQnl0ZWNvZGVM
aXZlbmVzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkE4MzYzOEExOEQ3RDBGRTAwMDBFQkNDIC8q
IEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOTYzMDNBMUQ0
MTkyQzgwMDU2MDlEOSAvKiBBbGxvY2F0b3JBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkxNEFEOTEwRDFEQ0E5Mjk0MDAxNEY5RkUgLyogRnVuY3Rpb25Db2RlQmxvY2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMThDNDA0MEUxNkY1Q0QwMEIzNDQ2MCAvKiBGdW5jdGlvbkNvbnN0cnVj
dG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkxNDczNDFEODFEQzAyRjk5MDBBQTI5QkEgLyogRnVu
Y3Rpb25FeGVjdXRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkYwRjFBMDE2QjcyQTFBMDA1
REY5NUIgLyogRnVuY3Rpb25FeGVjdXRhYmxlRHVtcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJC
MzEwRkIxOTc0QUU2MTAwODA4NTdDIC8qIEZ1bmN0aW9uSGFzRXhlY3V0ZWRDYWNoZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRkU0QkZGMkMxQUQ0NzZFNzAwMDg4Rjg3IC8qIEZ1bmN0aW9uT3ZlcnJp
ZGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQwNTBFMTZGNUNEMDBCMzQ0NjAgLyogRnVu
Y3Rpb25Qcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTYyRDJEMzkwMUFERjEwM0YwMDAy
MDZDMSAvKiBGdW5jdGlvblJhcmVEYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRUEwQzQwMzFD
REQ3RDFEMDA0ODE5OTEgLyogRnVuY3Rpb25XaGl0ZWxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJBQUNFNjNEMThDQTVBMDMwMEVEMDE5MSAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovLAotCQkJCUZFMzQyMjEyMUQ2QjgxQzMwMDMyQkU4OCAvKiBUaHJvd1Njb3BlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0JFMkNBRTE0RTk4NUFBMDAwNTkzQUQgLyogR0NBc3NlcnRpb25z
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc2NkQzMDE1QThEQ0UyMDA4RjM2M0UgLyogR0NBd2Fy
ZUpJVFN0dWJSb3V0aW5lLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkI0NzY3RTFEOTlBRUE5MDA4
RUE2Q0IgLyogR0NEZWZlcnJhbENvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQjQ3NjdG
MUQ5OUFFQUQwMDhFQTZDQiAvKiBHQ0RlZmVycmFsQ29udGV4dElubGluZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMkI2NkFDMTdCNkI1M0YwMEE3QUUzRiAvKiBHQ0luY29taW5nUmVmQ291bnRl
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2QUQxN0I2QjU0NTAwQTdBRTNGIC8qIEdDSW5j
b21pbmdSZWZDb3VudGVkSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2QUUxN0I2
QjU0NTAwQTdBRTNGIC8qIEdDSW5jb21pbmdSZWZDb3VudGVkU2V0LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjJCNjZBRjE3QjZCNTQ1MDBBN0FFM0YgLyogR0NJbmNvbWluZ1JlZkNvdW50ZWRTZXRJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MzEzNzRCRDFENUNFNjc2MDBBRjdBMEIgLyog
V2FzbVBsYW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTJBQUJDREU3MThFRjI5NDIwMDAwMjA5NiAv
KiBHQ0xvZ2dpbmcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMkJCRDk4MUM1RkYzRjUwMDIzRUYy
MyAvKiBCM1ZhcmlhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTRFOEVCMDE4QkZGQkJCMDA1
NTZEMjggLyogR0NTZWdtZW50ZWRBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU0RThFQjEx
OEJGRkJCRTAwNTU2RDI4IC8qIEdDU2VnbWVudGVkQXJyYXlJbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjg2QTI2RjFENkY3QjMzMDBDQjBDOTIgLyogR0NUeXBlTWFwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5OTU5RTkzMTFCRDE4MjcyMDAxQUE0MTMgLyogZ2VuZXJhdGUtY29tYmluZWQt
aW5zcGVjdG9yLWpzb24ucHkgaW4gSGVhZGVycyAqLywKIAkJCQlDNDcwM0NDMDE5Mjg0NDk2MDAx
M0ZCRUEgLyogZ2VuZXJhdGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5IGluIEhlYWRl
cnMgKi8sCiAJCQkJOTlEQTAwQUYxQkQ1OTk0RTAwRjQ1NzVDIC8qIGdlbmVyYXRlLWpzLWJ1aWx0
aW5zLnB5IGluIEhlYWRlcnMgKi8sCkBAIC04MzI1LDM0ICs4MzI4LDI5IEBACiAJCQkJQzQ3MDND
Q0UxOTI4NDRDQzAwMTNGQkVBIC8qIGdlbmVyYXRlX2pzX2JhY2tlbmRfY29tbWFuZHMucHkgaW4g
SGVhZGVycyAqLywKIAkJCQlBNUVBNzEwMzE5RjZERTZGMDA5OEY1RUMgLyogZ2VuZXJhdGVfb2Jq
Y19iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFQTcx
MDQxOUY2REU3MjAwOThGNUVDIC8qIGdlbmVyYXRlX29iamNfYmFja2VuZF9kaXNwYXRjaGVyX2lt
cGxlbWVudGF0aW9uLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2NEVBRjMxQzRFQ0QwNjAwNjIx
RTlCIC8qIEFpckFyZ0lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1RUE3MTA1MTlGNkRF
NzQwMDk4RjVFQyAvKiBnZW5lcmF0ZV9vYmpjX2NvbmZpZ3VyYXRpb25faGVhZGVyLnB5IGluIEhl
YWRlcnMgKi8sCi0JCQkJREM2OUI5OUQxRDE1RjkxNDAwMkUzQzAwIC8qIEIzSW5mZXJTd2l0Y2hl
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZERjY3RDIxRDlDNkQyNzAwMUI5ODI1IC8qIEIzS2lu
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVFQTcxMDYxOUY2REU3NjAwOThGNUVDIC8qIGdlbmVy
YXRlX29iamNfY29uZmlndXJhdGlvbl9pbXBsZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICovLAot
CQkJCTBGN0MzOUZGMUM5MEM1NUIwMDQ4MDE1MSAvKiBERkdPcEluZm8uaCBpbiBIZWFkZXJzICov
LAotCQkJCUE1RUE3MTA3MTlGNkRFNzgwMDk4RjVFQyAvKiBnZW5lcmF0ZV9vYmpjX3Byb3RvY29s
X3R5cGVfY29udmVyc2lvbnNfaGVhZGVyLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMzhERjYx
QkU5M0Q1NTAwMTNDODhGIC8qIEIzQ29uc3RyYWluZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTVFQTcxMDgxOUY2REU3QTAwOThGNUVDIC8qIGdlbmVyYXRlX29iamNfZnJvbnRlbmRfZGlz
cGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICovLAogCQkJCUE1RUE3MTA5MTlG
NkRFN0MwMDk4RjVFQyAvKiBnZW5lcmF0ZV9vYmpjX2hlYWRlci5weSBpbiBIZWFkZXJzICovLAog
CQkJCUE1RUE3MTBBMTlGNkRFN0UwMDk4RjVFQyAvKiBnZW5lcmF0ZV9vYmpjX2ludGVybmFsX2hl
YWRlci5weSBpbiBIZWFkZXJzICovLAorCQkJCUE1RUE3MTA3MTlGNkRFNzgwMDk4RjVFQyAvKiBn
ZW5lcmF0ZV9vYmpjX3Byb3RvY29sX3R5cGVfY29udmVyc2lvbnNfaGVhZGVyLnB5IGluIEhlYWRl
cnMgKi8sCisJCQkJOTkwREE2N0YxQzhFMzE2QTAwMjk1MTU5IC8qIGdlbmVyYXRlX29iamNfcHJv
dG9jb2xfdHlwZV9jb252ZXJzaW9uc19pbXBsZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICovLAog
CQkJCUM0RjRCNkY1MUEwNUM5ODQwMDVDQUI3NiAvKiBnZW5lcmF0ZV9vYmpjX3Byb3RvY29sX3R5
cGVzX2ltcGxlbWVudGF0aW9uLnB5IGluIEhlYWRlcnMgKi8sCiAJCQkJQzQ3MDNDRDYxOTI4NDRD
QzAwMTNGQkVBIC8qIGdlbmVyYXRvci5weSBpbiBIZWFkZXJzICovLAogCQkJCUM0NzAzQ0Q1MTky
ODQ0Q0MwMDEzRkJFQSAvKiBnZW5lcmF0b3JfdGVtcGxhdGVzLnB5IGluIEhlYWRlcnMgKi8sCisJ
CQkJNzBCNzkxOTUxQzAyNEEyODAwMjQ4MUUyIC8qIEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0
b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTcwQjc5MTk3MUMwMjRBMjkwMDI0ODFFMiAvKiBHZW5l
cmF0b3JGdW5jdGlvblByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzBCNzkxOTkxQzAy
NEEyOTAwMjQ4MUUyIC8qIEdlbmVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NzBCNzkxOUQxQzAyNEE1NjAwMjQ4MUUyIC8qIEdlbmVyYXRvclByb3RvdHlwZS5sdXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRTA1MDE5MUFBOTA5MTEwMEQzM0IzMyAvKiBHZW5lcmljQXJndW1l
bnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkUwNTAxQTFBQTkwOTExMDBEMzNCMzMgLyogR2Vu
ZXJpY0FyZ3VtZW50c0lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCUZFM0EwNkMwMUMxMTA0
MUEwMDM5MEZERCAvKiBKSVRSaWdodFNoaWZ0R2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk3MDhFQkUyNDFDRThGMzU4MDA0NTMxNDYgLyogSW50bE9iamVjdElubGluZXMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGMDcwQTQ4MUQ1NDNBOTAwMDZFNzIzMiAvKiBDZWxsQ29udGFpbmVySW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRkU2MDI5RDkxRDZFMUU0RjAwMzAyMDREIC8qIEV4
Y2VwdGlvbkV2ZW50TG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTA1MDFCMUFBOTA5
MTEwMEQzM0IzMyAvKiBHZW5lcmljT2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZF
MDE3QjZCNUFCMDBBN0FFM0YgLyogR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjJCNjZFMTE3QjZCNUFCMDBBN0FFM0YgLyogR2VuZXJpY1R5cGVkQXJyYXlWaWV3
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5MzMyQTAxNENBN0RDRDAwODVGM0M2IC8q
IEdldEJ5SWRTdGF0dXMuaCBpbiBIZWFkZXJzICovLAotCQkJCUFENEIxREZBMURGMjQ0RTIwMDcx
QUUzMiAvKiBXYXNtQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwMzMyQzQxOEIwMTc2
MzAwNUY5NzlBIC8qIEdldEJ5SWRWYXJpYW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3OTY0NjU2
QTFCOTUyRkYwMDAzMDU5RUUgLyogR2V0UHV0SW5mby5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQUQy
RkNDMUMxREI1OUNCMjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IubHV0
LmggaW4gSGVhZGVycyAqLywKKwkJCQkxNEFEOTEwRTFEQ0E5Mjk0MDAxNEY5RkUgLyogR2xvYmFs
Q29kZUJsb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU0NDE3RUE5RjU5MDBBQkIyMTcg
LyogR1BSSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQyRTMxMzQxMzRGRjBBNjAwQUZBREI1
IC8qIEhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzI4MzE5MDAxNkZFNEI3RDAwMTU3QkZE
IC8qIEhhbmRsZUJsb2NrLmggaW4gSGVhZGVycyAqLywKQEAgLTgzNjAsMjIgKzgzNTgsMjcgQEAK
IAkJCQkwRjBCODNBOTE0QkNGNTYyMDA4ODVCNEYgLyogSGFuZGxlckluZm8uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE0MkUzMTM2MTM0RkYwQTYwMEFGQURCNSAvKiBIYW5kbGVTZXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0MkUzMTM4MTM0RkYwQTYwMEFGQURCNSAvKiBIYW5kbGVTdGFjay5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMTRBRDkxMTAxRENBOTI5NDAwMTRGOUZFIC8qIFByb2dyYW1Db2Rl
QmxvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTE0NzgyOTdCMTM3OUU4QTgwMEE3QzJBMyAvKiBI
YW5kbGVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYxMEYxQTMxQzQyMEJGMDAwMUMwN0Qy
IC8qIEFpckN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTM1NTU3MTQxRDlEOUVBNTAwNkQ1
ODNCIC8qIFdhc21NZW1vcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTc5QTA5MDgwMUQ3Njg0NjUw
MDhCODg5QiAvKiBIYXNoTWFwSW1wbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzlERkNCREIxRDg4
QzU5NjAwNTI3RDAzIC8qIEhhc093blByb3BlcnR5Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTE0QkE3QTk4MTNBQURGRjgwMDVCN0MyQyAvKiBIZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQlE
QzNEMkIwQTFEMzQzMTYyMDBCQTkxOEMgLyogSGVhcENlbGwuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGMDcwQTQ5MUQ1NDNBOTMwMDZFNzIzMiAvKiBIZWFwQ2VsbElubGluZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMzJCRDExMUJCMzRGMTkwMDkzQTU3RiAvKiBIZWFwSGVscGVyUG9vbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzJEQTc3ODMxOEUyNTk5OTAwNjZGQ0I2IC8qIEhlYXBJbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKLQkJCQlGRTE4N0EwRDFDMDMwRDVDMDAzOEJCQ0EgLyogSklURGl2
R2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQUQ4OTMyQjE3RTM4NjhGMDA2NjgyNzYg
LyogSGVhcEl0ZXJhdGlvblNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTMzOUVDOTFCQjRC
NDYwMDA1NEYwMDUgLyogSGVhcE9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBRDJGQ0JF
QjFEQjU4REFEMDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseVRhYmxlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlBNTM5OEZBQjFDNzUwREE0MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxNEY5NzQ0NzEzOEM4NTNFMDBEQTFDNjcgLyogSGVhcFJvb3RWaXNpdG9yLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlBNTRDMkFCMTFDNjU0NEYyMDBBMThENzggLyogSGVhcFNuYXBz
aG90LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNTMxMUMzNjFDNzdDRUM1MDBFNkIxQjYgLyogSGVh
cFNuYXBzaG90QnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzI0RDMxRTMxNjFDRDY5NTAw
MkFBNERCIC8qIEhlYXBTdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkU1MjZCRTE1
OTBFRjAwMDA1NEU0OEQgLyogSGVhcFRpbWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkFERTY3
MzFENEQyM0JFMDA3Njg0NTcgLyogSGVhcFV0aWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFN0JB
NjEwMUExQTdDRUMwMEYxRjdCNCAvKiBIZWFwVmVyaWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGQTc2MjA5MURCOTI4M0UwMEI3QTJGRCAvKiBIZWxwaW5nR0NTY29wZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY0NjgwRDUxNEJCRDI0QjAwQkZFMjcyIC8qIEhvc3RDYWxsUmV0dXJuVmFsdWUu
aCBpbiBIZWFkZXJzICovLAorCQkJCURDMjE0MzA3MUNBMzJFNTUwMDBBODg2OSAvKiBJQ1N0YXRz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQwRjBFMTZGNUNEMDBCMzQ0NjAgLyogSWRlbnRp
Zmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODYwNkRERUExOERBNDRBQjAwQTM4M0QwIC8qIElk
ZW50aWZpZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUZEMDA3NjE4OUIwMzhDMDA2
MzMyMzEgLyogSWRlbnRpZmllcnNGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKQEAgLTgzODMsOSAr
ODM4Niw5IEBACiAJCQkJMEZCN0YzOTkxNUVEOEU0NjAwRjE2N0IyIC8qIEluZGV4aW5nSGVhZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI3RjM5QTE1RUQ4RTQ2MDBGMTY3QjIgLyogSW5kZXhp
bmdIZWFkZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI3RjM5QjE1RUQ4RTQ2MDBG
MTY3QjIgLyogSW5kZXhpbmdUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxNDM4NkE3OTFERDY5
ODlDMDA4NjUyQzQgLyogSW5kaXJlY3RFdmFsRXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYwQTc1MjMxQjk0QkZBOTAwMTEwNjYwIC8qIEluZmVycmVkVHlwZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZGQzkyMTIxQjk0RDRERjAwNzFERDY2IC8qIEluZmVycmVkVHlwZVRhYmxlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk1MzlGQjhCQTFDOTlEQTdDMDA5NDBGQTEgLyogSlNBcnJheUlu
bGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjhCREVCMUFENENGNzEwMERGRTg4NCAvKiBJ
bmZlcnJlZFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxMDBFMTZGNUNEMDBCMzQ0
NjAgLyogSW5pdGlhbGl6ZVRocmVhZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUxM0U1Qjgx
ODVCOEJEMzAwN0U5NUFEIC8qIEluamVjdGVkU2NyaXB0LmggaW4gSGVhZGVycyAqLywKQEAgLTgz
OTUsNiArODM5OCw3IEBACiAJCQkJQTU4NDBFMjExODdCN0I4NjAwODQzQjEwIC8qIEluamVjdGVk
U2NyaXB0TW9kdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTEzRTVDNzE4NUY5NDQ2MDA3RTk1
QUQgLyogSW5qZWN0ZWRTY3JpcHRTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NTlFOTMy
MUJEMTgyNzkwMDFBQTQxMyAvKiBpbmxpbmUtYW5kLW1pbmlmeS1zdHlsZXNoZWV0cy1hbmQtc2Ny
aXB0cy5weSBpbiBIZWFkZXJzICovLAorCQkJCTc5MDVCQjY5MUQxMjA1MEUwMDE5RkU1NyAvKiBJ
bmxpbmVBY2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0OEE3QkYwMUI4Mjk3NUEwMDJEOTE1
NyAvKiBJbmxpbmVDYWxsRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMjRFNTU2MTdGMEI3
MUMwMEFCQjIxNyAvKiBJbmxpbmVDYWxsRnJhbWVTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5
RTQ1QTI3MThBMUIyNTkwMDI2RDg4RiAvKiBJbnB1dEN1cnNvci5oIGluIEhlYWRlcnMgKi8sCkBA
IC04NDA5LDcgKzg0MTMsNiBAQAogCQkJCUE1N0QyM0U2MTg5MENFQkYwMDMxQzdGQSAvKiBJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUQwQTFCQjE4NjIzMDFC
MDBDN0I0OTYgLyogSW5zcGVjdG9yRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
OTQ1NTk1MTgyNDc5RUIwMENDMzg0MyAvKiBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUUzMjhDNkM3MURBNDMwNDUwMEQyNTVGRCAvKiBNYXhGcmFtZUV4dGVu
dEZvclNsb3dQYXRoQ2FsbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUzMjQzOEExODU2ODMzNTAw
MkVENjkyIC8qIEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk5RjFBNzAxMUI5OEZCRUMwMDQ2M0IyNiAvKiBJbnNwZWN0b3JGcm9udGVuZFJvdXRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTUzMzlFQzYxQkIzOTlBNjAwNTRGMDA1IC8qIEluc3BlY3Rv
ckhlYXBBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBAIC04NDE3LDY4ICs4NDIwLDY5IEBACiAJCQkJ
RTMzQjNFMjYxQjdBQkQ3NTAwNDhEQjJFIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVj
dC5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MzI0MzhDMTg1NjgzMzUwMDJFRDY5MiAvKiBJ
bnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NUQ5M0FDMTg1
MTRGNzkwMDQwMERFRCAvKiBJbnNwZWN0b3JQcm90b2NvbFR5cGVzLmggaW4gSGVhZGVycyAqLywK
LQkJCQlFMzI4REFFQjFEMzhEMDA1MDAxQTI1MjkgLyogQnl0ZWNvZGVSZXdyaXRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTUwRTRCNjIxODgwOURENTAwNjhBNDZEIC8qIEluc3BlY3RvclJ1bnRp
bWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTU1MTY1RDMxQkRGMEI5RTAwM0I3NUMxIC8q
IEluc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1OTND
RjgzMTg0MDM3NzEwMEJGQ0UyNyAvKiBJbnNwZWN0b3JWYWx1ZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk2OUEwNzk5MEVEMUQzQUUwMEYxRjY4MSAvKiBJbnN0cnVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNzBCNzkxOTExQzAyNEExMzAwMjQ4MUUyIC8qIFNvdXJjZUNvZGVLZXkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE3QThBRjNCMTdBREI1RjMwMDVBQjE3NCAvKiBJbnQxNkFycmF5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBN0E4QUYzQzE3QURCNUYzMDA1QUIxNzQgLyogSW50MzJBcnJh
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdBOEFGM0ExN0FEQjVGMzAwNUFCMTc0IC8qIEludDhB
cnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMTY2N0IwRTE5OUMwNTAwODA2NkREIC8qIElu
dGVybmFsRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTUzRjZCRjZEMUMzRjA2MEEwMEY0
MUU1RCAvKiBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTE0MjlENzdDMEVEMjBENzMwMEI4OTYxOSAvKiBJbnRlcnByZXRlci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNzlBRjBCRTQxRDNFRkQ0QzAwRTk1RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJl
c3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5RDQ1RjUxRDM5MDA1NjAwQjNCMzc3IC8qIElu
dGVycHJldGVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCOUUyM0ExQjRFMEQ2NzAw
QkM3RkVEIC8qIEludGxDb2xsYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCOUUyM0MxQjRF
MEQ2NzAwQkM3RkVEIC8qIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBMTgxOTNFMzFCNEUwQ0RCMDBGQzEwMjkgLyogSW50bENvbGxhdG9yQ29uc3RydWN0b3Iu
bHV0LmggaW4gSGVhZGVycyAqLywKLQkJCQkxNDczNDFDRTFEQzAyRDc5MDBBQTI5QkEgLyogU2Ny
aXB0RXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCOUUyM0UxQjRFMEQ2NzAwQkM3
RkVEIC8qIEludGxDb2xsYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE4MTkz
RTQxQjRFMENEQjAwRkMxMDI5IC8qIEludGxDb2xsYXRvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGQTc2MjA1MURCOTI0MjkwMEI3QTJGRCAvKiBDb2xsZWN0aW9uU2NvcGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUExNTg3RDZFMUI0REMxNDEwMEQ2OTg0OSAvKiBJbnRsRGF0
ZVRpbWVGb3JtYXQuaCBpbiBIZWFkZXJzICovLAotCQkJCUZFMTg3QTBGMUMwMzBENkMwMDM4QkJD
QSAvKiBTbmlwcGV0T3BlcmFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE1ODdENzAxQjREQzE0
MTAwRDY5ODQ5IC8qIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRkFERTY3MzFENEQyM0JFMDA3Njg0NTcgLyogSGVhcFV0aWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUExNTg3RDc1MUI0REMxQzYwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3JtYXRD
b25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAotCQkJCUE1Mzk4RkFCMUM3NTBEQTQwMDYw
QTk2MyAvKiBIZWFwUHJvZmlsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNTg3RDcyMUI0REMx
NDEwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExNTg3RDc2MUI0REMxQzYwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90
b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKLQkJCQlBNTU3MTRCRTFDRDgwNDlGMDAwNEQyQzYg
LyogQ29uc29sZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2OTcxRUExRDkyRjQyNDAw
QkEwMkE1IC8qIEIzRmVuY2VWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFENzkyRkQxQjQz
ODY0QjAwNDUxNkY1IC8qIEludGxOdW1iZXJGb3JtYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUEx
RDc5MkZGMUI0Mzg2NEIwMDQ1MTZGNSAvKiBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCUExMjU4NDZFMUI0NUEzNjAwMENDN0Y2QyAvKiBJbnRsTnVtYmVy
Rm9ybWF0Q29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjcyNUNBQTFDNTAz
REVEMDBBRDk0M0EgLyogQjNQdXJlQ1NFLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUQ3OTMwMTFC
NDM4NjRCMDA0NTE2RjUgLyogSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTEyNTg0NkYxQjQ1QTM2MDAwQ0M3RjZDIC8qIEludGxOdW1iZXJGb3JtYXRQcm90
b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKLQkJCQlBNTUxNjVEMzFCREYwQjlFMDAzQjc1QzEg
LyogSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEy
QkJGRjIxQjA0NEE4QjAwNjY0QjY5IC8qIEludGxPYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTcwOEVCRTI0MUNFOEYzNTgwMDQ1MzE0NiAvKiBJbnRsT2JqZWN0SW5saW5lcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODYwQkQ4MDExNDhFQTZGMjAwMTEyQjJGIC8qIEludHJpbnNpYy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOEI5RjZENTYxRDU5MTJGQTAwMUM3MzlGIC8qIEl0ZXJhdGlvbktpbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZFNEQ1NUI4MUFFNzE2Q0EwMDUyRTQ1OSAvKiBJdGVyYXRp
b25TdGF0dXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwMTEzRDRDMUE4REIwOTMwMDM4NDhDNCAv
KiBJdGVyYXRvck9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwREMzRTBBMUIyREYy
QzcwMDA1NDI5OSAvKiBJdGVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
OEM0MTMwRTE2RjVDRDAwQjM0NDYwIC8qIEphdmFTY3JpcHQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTcwQjc5MTk3MUMwMjRBMjkwMDI0ODFFMiAvKiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwM0ZBMUExODhFMEZCMDAwMTEwRjE0IC8qIEphdmFTY3Jp
cHRDYWxsRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDE0MEUxNkY1Q0QwMEIzNDQ2
MCAvKiBKYXZhU2NyaXB0Q29yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MTUwRTE2RjVD
RDAwQjM0NDYwIC8qIEphdmFTY3JpcHRDb3JlUHJlZml4LmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NDI5RDkzMDBFRDIyRDcwMDBCODk2MTkgLyogSklULmggaW4gSGVhZGVycyAqLywKLQkJCQlBRDJG
Q0JFOTFEQjU4REFEMDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRkUxMjIwMjcxQkU3RjU4QzAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRv
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkUzQTA2QjIxQzEwQ0I4OTAwMzkwRkREIC8qIEpJVEJp
dEFuZEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkUzQTA2QTgxQzEwQkM4MTAwMzkw
RkREIC8qIEpJVEJpdEJpbmFyeU9wR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRTNB
MDZBNjFDMTBCNzJEMDAzOTBGREQgLyogSklUQml0T3JHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICov
LAorCQkJCUZFM0EwNkI0MUMxMENCOTMwMDM5MEZERCAvKiBKSVRCaXRYb3JHZW5lcmF0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTg2Q0NFRkRFMEY0MTNGODkwMEZEN0Y5RSAvKiBKSVRDb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjA3NzZCRjE0RkYwMDJCMDAxMDIzMzIgLyogSklUQ29tcGls
YXRpb25FZmZvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQUY3RUZFMTY1QkE5MUYwMDBDODQ1
NSAvKiBKSVREaXNhc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUZFM0EwNkE4MUMxMEJD
ODEwMDM5MEZERCAvKiBKSVRCaXRCaW5hcnlPcEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRkUxODdBMEQxQzAzMEQ1QzAwMzhCQkNBIC8qIEpJVERpdkdlbmVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY0NjgwODIxNEJBNTcyRDAwQkZFMjcyIC8qIEpJVEV4Y2VwdGlvbnMuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQjE0RTFGMTgxMjRBQ0UwMDlCNkI0RCAvKiBKSVRJbmxpbmVD
YWNoZUdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZDQzg1QTEwRUU3OUE0NzAwMjg4
NjgyIC8qIEpJVElubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFM0EwNkJFMUMxMTA0MTIw
MDM5MEZERCAvKiBKSVRMZWZ0U2hpZnRHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTc5
MjMzQzJCMUQzNDcxNTcwMEM1QTgzNCAvKiBKSVRNYXRoSUMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTc5QjE3ODhFMUQzOTlCODAwMEIxQTU2NyAvKiBKSVRNYXRoSUNGb3J3YXJkcy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNzlBRjBCRTQxRDNFRkQ0QzAwRTk1RkE1IC8qIEpJVE1hdGhJQ0lubGluZVJl
c3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkUxODdBMDIxQkZCRTU2MTAwMzhCQkNBIC8qIEpJ
VE11bEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkU5OUIyNDkxQzI0QzNEMzAwQzgy
MTU5IC8qIEpJVE5lZ0dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNEU1NEQxN0VF
Mjc0OTAwQUJCMjE3IC8qIEpJVE9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFM0Ew
NkMwMUMxMTA0MUEwMDM5MEZERCAvKiBKSVRSaWdodFNoaWZ0R2VuZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjc2NkQzMTE1QUE4MTEyMDA4RjM2M0UgLyogSklUU3R1YlJvdXRpbmUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNzY2RDJDMTVBOENDM0EwMDhGMzYzRSAvKiBKSVRTdHViUm91
dGluZVNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1RUY5MUYxNjg3OEY3RDAwM0U1QzI1IC8q
IEpJVFRodW5rcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQUQyRkNDMjExREI1OUNCMjAwQjNFNzM2
IC8qIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkM3MTJFMzE3Q0Q4NzkzMDA4Q0M5M0MgLyogSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAotCQkJCUFEMkZDQkUzMURCNThEQUQwMEIzRTczNiAvKiBK
U1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmggaW4gSGVhZGVycyAqLywKLQkJCQlBRDQ5MzdENDFE
REQyN0RFMDA3N0M4MDcgLyogV2ViQXNzZW1ibHlGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJREMwMTg0MTkxRDEwQzE4OTAwNTdCMDUzIC8qIEpJVFdvcmtsaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NDA0ODAxMzEwMjFBMUQ5MDA4RTdGMDEgLyogSlNBUElWYWx1ZVdyYXBwZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUMyQ0YzOUMyMTZFMTVBODEwMERENjlCRSAvKiBKU0FQSVdyYXBw
ZXJPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDE3MEUxNkY1Q0QwMEIzNDQ2MCAv
KiBKU0FycmF5LmggaW4gSGVhZGVycyAqLywKQEAgLTg0ODcsMTggKzg0OTEsMTcgQEAKIAkJCQkw
RjJCNjZFNzE3QjZCNUFCMDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEYyQjY2RTkxN0I2QjVBQjAwQTdBRTNGIC8qIEpTQXJyYXlCdWZmZXJW
aWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFQTE3QjZCNUFCMDBBN0FFM0YgLyogSlNB
cnJheUJ1ZmZlclZpZXdJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MzlGQjhCQTFDOTlE
QTdDMDA5NDBGQTEgLyogSlNBcnJheUlubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTVCNzBD
RkRFMURCNjlFNjYwMEVDMjNGOSAvKiBKU0FzeW5jRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMThDNDE4MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0Jhc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTE0MEQxN0Q3MEU4QUQ0QTkwMDBDRDE3RCAvKiBKU0Jhc2VQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkxNDM4NkE3NTFERDY5ODk1MDA4NjUyQzQgLyogRGlyZWN0RXZhbEV4ZWN1dGFi
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RkE5RTkyMTQyQkJCMkUwMDE3NzNCNyAvKiBKU0Jv
dW5kRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDE5MEUxNkY1Q0QwMEIzNDQ2
MCAvKiBKU0NhbGxiYWNrQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDFB
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0NhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGQkI3M0JCMURFRjg2NDUwMDJDMDA5RSAvKiBEZWxldGVBbGxDb2RlRWZmb3J0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzE4QzQxQjBFMTZGNUNEMDBCMzQ0NjAgLyogSlNDYWxsYmFja09i
amVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MUMwRTE2RjVDRDAwQjM0NDYwIC8qIEpT
Q2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1N0NGNDU5MTlC
RjY2NjIwMDRBQ0JGMiAvKiBKU0NhbGxlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEODAxQTkx
ODgwRDZBODAwMjZDMzlCIC8qIEpTQ0J1aWx0aW5zLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjY2
NENFODFEQTMwNEVGMDBCMDBBMTEgLyogQ29kZUJsb2NrU2V0SW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMxMTY3REEwRTE5QkNDOTAwODA2NkREIC8qIEpTQ2VsbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY5NzQ5NzExNjg3QURFNDAwQTRGRjZBIC8qIEpTQ2VsbElubGluZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGMUREODRBMThBOTQ1QkUwMDI2RjNGQSAvKiBKU0NJbmxpbmVzLmgg
aW4gSGVhZGVycyAqLywKQEAgLTg1MTEsNTEgKzg1MTQsNDUgQEAKIAkJCQlCQzE4QzQxRTBFMTZG
NUNEMDBCMzQ0NjAgLyogSlNDb250ZXh0UmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVBNzBF
RTE5RjVCNUM0MDA5OEY1RUMgLyogSlNDb250ZXh0UmVmSW5zcGVjdG9yU3VwcG9ydC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTVEMkU2NjUxOTVFMTc0MDAwQTUxOEU3IC8qIEpTQ29udGV4dFJlZklu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKLQkJCQlBRDJGQ0MwMzFEQjU4REFEMDBCM0U3MzYgLyog
V2ViQXNzZW1ibHlNb2R1bGVQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUE1QUI0OURE
MUJFQzgwODYwMDcwMjBGQiAvKiBQZXJHbG9iYWxPYmplY3RXcmFwcGVyV29ybGQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0OENEMUQ4MTA4Q0Y5MDIwMDgxNjNDNiAvKiBKU0NvbnRleHRSZWZQcml2
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzIwMjhCODE3OTc2MDFFMDA5ODAyOEMgLyogSlND
VGVzdFJ1bm5lclV0aWxzLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MkFBRjdDRTFEMEQzMUIzMDA1
RTYwQkUgLyogSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYyQjY2RUMxN0I2QjVBQjAwQTdBRTNGIC8qIEpTRGF0YVZpZXcuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMkI2NkVFMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0RhdGFWaWV3UHJvdG90eXBlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5OTZCNzMxQzFCREEwOEREMDAzMzFCODQgLyogSlNEYXRhVmll
d1Byb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3ODgwMTQxMTQ3MUFEOTIwMDQx
QjAxNiAvKiBKU0RhdGVNYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkE3RjY4ODE2MDQzMkQ0
MDBGNzZCOTggLyogSlNEZXN0cnVjdGlibGVPYmplY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCUE1
RkM4NEIyMUQxRERBRDYwMDZCNUM0NiAvKiBEZWJ1Z2dlckxvY2F0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRTM4NEVFNjFBRERCN0FEMDA1NURFMkMgLyogSlNEb2xsYXJWTS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkUzODRFRTgxQUREQjdBRDAwNTVERTJDIC8qIEpTRG9sbGFyVk1Qcm90b3R5
cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDJEMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0Vu
dmlyb25tZW50UmVjb3JkLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkUzQzYxNDE2N0JBQkQ3MDA2
RDc2MEEgLyogSlNFeHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QjRBQ0FGMTQ4NEM5Q0Uw
MEIzOEEzNiAvKiBKU0V4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzk4OTM3Nzkx
RENBQjU3MzAwRjhENEZCIC8qIEpTRml4ZWRBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
QjY2RUYxN0I2QjVBQjAwQTdBRTNGIC8qIEpTRmxvYXQzMkFycmF5LmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRkExMzE3MTFEOERENzJCMDBFQzEzMEEgLyogUHJvdG90eXBlTWFwSW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RjAxN0I2QjVBQjAwQTdBRTNGIC8qIEpTRmxvYXQ2NEFy
cmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxRjBFMTZGNUNEMDBCMzQ0NjAgLyogSlNG
dW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcyMDI4QkExNzk3NjAzRDAwOTgwMjhDIC8q
IEpTRnVuY3Rpb25JbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MEI3OTE5QzFDMDI0QTQ5
MDAyNDgxRTIgLyogSlNHZW5lcmF0b3JGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
QjY2RjExN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmggaW4gSGVh
ZGVycyAqLywKLQkJCQlFMzRFREJGNzFEQjVGRkM5MDBEQzg3QTUgLyogRnJhbWVUcmFjZXJzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZGMjE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RjMx
N0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxp
bmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZGNDE3QjZCNUFCMDBBN0FFM0YgLyogSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZG
NTE3QjZCNUFCMDBBN0FFM0YgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTUzOTE3RTdCMUI3OTA2RkEwMDBFQkQzMyAvKiBKU0dlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYy
QjY2RjYxN0I2QjVBQjAwQTdBRTNGIC8qIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBl
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQURCQzU0RDUxREY4RUEyQjAwNUJGNzM4IC8q
IFdlYkFzc2VtYmx5VG9KU0NhbGxlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzk3RTA3QUExQjhG
Q0ZCOTAwODQwMEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzE4QzQyMTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNHbG9iYWxPYmplY3QuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTUzRjQwRThCMUQ1OTAxQkIwMDk5QTFCNiAvKiBXYXNtRnVuY3Rpb25Q
YXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkI3MzFEMUJEQTA4RUYwMDMzMUI4NCAvKiBK
U0dsb2JhbE9iamVjdC5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1RkQwMDg2MTg5QjFCN0Uw
MDYzMzIzMSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTVDM0ExQTYxOEMwNDkwMjAwQzk1OTNBIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU5NDU1OTMxODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xv
YmFsT2JqZWN0RGVidWdnYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU3RDIzRUExODkxQjA3
NzAwMzFDN0ZBIC8qIEpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM3NTZGQzkwRTIwMzFCMjAwREU3RDEyIC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25z
LmggaW4gSGVhZGVycyAqLywKKwkJCQk3OUI4MTk5MzFERDI1Q0Y1MDBEREM3MTQgLyogSlNHbG9i
YWxPYmplY3RJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTEwMDdDMTE4N0NDM0M2MDBC
Mzg4NzkgLyogSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNTBFNEI2NDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50aW1l
QWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTE0QUQ5MTBDMURDQTkyOTQwMDE0RjlGRSAvKiBF
dmFsQ29kZUJsb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTAzRkEyQTE4OEYxMDU5MDAxMTBG
MTQgLyogSlNHbG9iYWxPYmplY3RTY3JpcHREZWJ1Z1NlcnZlci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNzlBMjI4MzYxRDM1RDcxRjAwRDhFMDY3IC8qIEFyaXRoUHJvZmlsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTUxM0U1QzAxODVCRkFDQzAwN0U5NUFEIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjdDNUZCQTFEODg5NTA3MDA0NEY1RTIgLyogTWFya2Vk
U3BhY2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTEzRTVDMjE4NUJGQUNDMDA3RTk1
QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUM0NDJDQjI1MUE2Q0RCOEMwMDVEM0Q3QyAvKiBKU0lucHV0cy5qc29uIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEYyQjY2RjgxN0I2QjVBQjAwQTdBRTNGIC8qIEpTSW50MTZBcnJheS5oIGluIEhlYWRl
cnMgKi8sCkBAIC04NTYzLDEwICs4NTYwLDcgQEAKIAkJCQkwRjJCNjZGNzE3QjZCNUFCMDBBN0FF
M0YgLyogSlNJbnQ4QXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NkM1MTc2MTE4Mjc0OEQw
MDcxNUIwNSAvKiBKU0ludGVyZmFjZUpJVC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMzRjUwODEx
Qjg0MjlBNDAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjYxODMyQTFDNDVCRjA3MDA3MjQ1MEIgLyogQWlyQ0NhbGxpbmdDb252ZW50aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFMzNGNTA3OTFCODQyMjU3MDA0MTM4NTYgLyogSlNJbnRlcm5hbFBy
b21pc2VDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTMyOERBRTkxRDM4RDAwNTAw
MUEyNTI5IC8qIEJ5dGVjb2RlR3JhcGguaCBpbiBIZWFkZXJzICovLAotCQkJCTBGN0Y5ODhDMUQ5
NTk2QzgwMEY0RjEyRSAvKiBERkdTdG9yZUJhcnJpZXJDbHVzdGVyaW5nUGhhc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUzM0Y1MDg3MUI4NDQ5RUYwMDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlz
ZUNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMzRjUwODUxQjg0MzdBMDAw
NDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUzM0Y1MDc1MUI4NDIxQzAwMDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlzZVByb3RvdHlwZS5o
IGluIEhlYWRlcnMgKi8sCkBAIC04NTc0LDE5ICs4NTY4LDE4IEBACiAJCQkJNzAxM0NBOEMxQjQ5
MUE5NDAwQ0FFNjEzIC8qIEpTSm9iLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQxNjBFMTZG
NUNEMDBCMzQ0NjAgLyogSlNMZXhpY2FsRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMThDNDIzMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU0xvY2suaCBpbiBIZWFkZXJzICovLAotCQkJ
CUFEMkZDQzE5MURCNTlDQjIwMEIzRTczNiAvKiBXZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBl
Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzI1RDcwOUMxNkRFOTlGNDAwRkNBNkJDIC8qIEpT
TWFuYWdlZFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTRCQjdGMzE4QTQxMTc5MDA4QTBG
Q0QgLyogSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwMDg3
NDIxN0NCRThFQjAwQzNFNjQzIC8qIEpTTWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjM4RDJB
MzFENDQxOTZEMDA2ODA0OTkgLyogQXV4aWxpYXJ5QmFycmllcklubGluZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3NERFRjk2MTgyRDk5MTQwMDUyMkMyMiAvKiBKU01hcEl0ZXJhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5OTU5RTkyRDFCRDE3RkE0MDAxQUE0MTMgLyoganNtaW4ucHkgaW4g
SGVhZGVycyAqLywKIAkJCQlFM0QyMzlDOTFCODI5QzFDMDBCQkVGNjcgLyogSlNNb2R1bGVFbnZp
cm9ubWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDk3MjI3NTJEQzU0NDU5QjkxMjVCNTM5IC8q
IEpTTW9kdWxlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzE4Q0JDMTFCOEFFRjUxMDBB
MjkyOUQgLyogSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCUFE
MkZDQzE3MURCNTlDQjIwMEIzRTczNiAvKiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlw
ZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzOURBNEE3MUI3RThCN0MwMDg0RjMzQSAvKiBK
U01vZHVsZVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMzRThEMUQxQjkwMTNDMzAwMzQ2
QjUyIC8qIEpTTmF0aXZlU3RkRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDI0
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU09iamVjdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5MzI3
NUYxQzIxRUY3RjAwQ0Y2NTY0IC8qIEpTT2JqZWN0SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxOEM0MjUwRTE2RjVDRDAwQjM0NDYwIC8qIEpTT2JqZWN0UmVmLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNzI4MEEyODExNTU3RTMwMDBENTY5NTcgLyogSlNPYmplY3RSZWZQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBN0Y5OTM1RjBGRDczMjUxMDBBMEIyRDAgLyogSlNPTk9iamVj
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC04NTk0LDQ5ICs4NTg3LDMzIEBACiAJCQkJN0MxODRFMUIx
N0JFREJEMzAwN0NCNjNBIC8qIEpTUHJvbWlzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MxODRF
MjMxN0JFRTI0MDAwN0NCNjNBIC8qIEpTUHJvbWlzZUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5OTZCNzMxRTFCREEwOEVGMDAzMzFCODQgLyogSlNQcm9taXNlQ29uc3RydWN0b3Iu
bHV0LmggaW4gSGVhZGVycyAqLywKLQkJCQk1QjcwQ0ZERTFEQjY5RTY2MDBFQzIzRjkgLyogSlNB
c3luY0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzAwOENEQjE4NzEyNEJCMDA5NTVD
MjQgLyogSlNQcm9taXNlRGVmZXJyZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDMTg0RTFGMTdC
RUUyMkUwMDdDQjYzQSAvKiBKU1Byb21pc2VQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk5NkI3MzFGMUJEQTA4RUYwMDMzMUI4NCAvKiBKU1Byb21pc2VQcm90b3R5cGUubHV0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkyQTA1QUJENjE5NjFERjI0MDAzNDE3NTAgLyogSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjQwRTRBOTFDNDk3Rjc0MDBBNTc3
RkEgLyogQWlyT3Bjb2RlVXRpbHMuaCBpbiBIZWFkZXJzICovLAotCQkJCUUzMjJFNUEzMURBNjQ0
MzkwMDZFNzcwOSAvKiBERkdET01KSVRQYXRjaHBvaW50UGFyYW1zLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFM0VGODg3NTFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODYyNTUzRDIxNjEzNkUxQTAwOUYxN0QwIC8qIEpTUHJveHku
aCBpbiBIZWFkZXJzICovLAotCQkJCUFEMkZDQzFGMURCNTlDQjIwMEIzRTczNiAvKiBXZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NTJD
MzgwMUFEREI4RkUwMDEzOTcyNiAvKiBKU1JlbW90ZUluc3BlY3Rvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTkyOEZGM0MxOEFDNEFFQzAwQjhDRjEyIC8qIEpTUmVwbGF5SW5wdXRzLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlFMzVDQTE1NjFEQkMzQTVGMDBGODM1MTYgLyogRE9NSklUQWJzdHJhY3RI
ZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyNjBFMTZGNUNEMDBCMzQ0NjAgLyogSlNS
ZXRhaW5QdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0ODc0QUU2MTVFQkRFNEEwMDJFMzU4NyAv
KiBKU1Njb3BlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMzRkNGQjFDMTYyNUJFMDAzMjNGNjcg
LyogQjNDRkcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QzBDNEFDMTY4MTAzMDIwMDE3MDExRCAv
KiBKU1NjcmlwdFJlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUZFMTIyMDI3MUJFN0Y1
OEMwMDM5RTZGMiAvKiBKSVRBZGRHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTE5
RDExMTU3RjMzMkMwMDRBNEU3RCAvKiBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNzI5OUQ5RTE3RDEyODM3MDA1RjVGRjkgLyogSlNTZXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE3OTBERDcwMTgyRjQ5OTcwMDU4ODgwNyAvKiBKU1NldEl0ZXJhdG9yLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlCQzE4QzQ1RTBFMTZGNUNEMDBCMzQ0NjAgLyogQ0xvb3BTdGFj
ay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTdDMUVBRjAxNzk4N0FCNjAwMjk5REIyIC8qIENMb29w
U3RhY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyNzBFMTZGNUNEMDBCMzQ0
NjAgLyogSlNTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTg1NTM5MTExQjk5NjgwMDFB
RjUxRSAvKiBKU1N0cmluZ0J1aWxkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMjAxNzg1MURD
QUUxNDkwMEVBNTk1MCAvKiBERkdOb2RlRmxvd1Byb2plY3Rpb24uaCBpbiBIZWFkZXJzICovLAot
CQkJCUUzNTU1QjhBMURBRTAzQTUwMEYzNjkyMSAvKiBET01KSVRDYWxsRE9NR2V0dGVyUGF0Y2hw
b2ludC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkVGRDZGQzYxRDVFNzk5MjAwOEYyRjBCIC8qIEpT
U3RyaW5nSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzBFQzBFQzMxQUEwRDdEQTAwQjZB
QUZBIC8qIEpTU3RyaW5nSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDcwQTQ3MUQ1
NDNBOEIwMDZFNzIzMiAvKiBDZWxsQ29udGFpbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjAw
QjVBNzE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMThDNDI4MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU1N0cmluZ1JlZi5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDNBQjI2QzYxQzFBNTM1OTAwRDgyQUU2IC8qIEIzTWF0aEV4dHJhcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJQUQyRkNCRjMxREI1OERBRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5SW5z
dGFuY2VQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGREU4N0ZDMURGRTZFNTEwMDY0
QzM5MCAvKiBTcGFjZVRpbWVTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDI5
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU1N0cmluZ1JlZkNGLmggaW4gSGVhZGVycyAqLywKLQkJCQlF
MzUwNzA4QTFEQzQ5QkJGMDA4OUJDRDYgLyogRE9NSklUU2lnbmF0dXJlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTI4RDRBODE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjkxOUQwRDE1N0VFMEEyMDA0QTRFN0QgLyogSlNTeW1ib2xU
YWJsZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzBFQ0E2MDYxQUZEQkVBMjAwNDQ5NzM5
IC8qIEpTVGVtcGxhdGVSZWdpc3RyeUtleS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzBCNzkxOUMx
QzAyNEE0OTAwMjQ4MUUyIC8qIEpTR2VuZXJhdG9yRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMThDNDJBMEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU1R5cGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTUzNDg2QkI3MUMxNzk1QzMwMEY2RjNBRiAvKiBKU1R5cGVkQXJyYXkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMkI2NkZCMTdCNkI1QUIwMEE3QUUzRiAvKiBKU1R5cGVkQXJyYXlDb25zdHJ1
Y3RvcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCURDNjA1QjYwMUNFMjZFQTcwMDU5MzcxOCAvKiBQ
cm9maWxlclVJRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2RkQxN0I2QjVBQjAwQTdBRTNG
IC8qIEpTVHlwZWRBcnJheVByb3RvdHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NkZG
MTdCNkI1QUIwMEE3QUUzRiAvKiBKU1R5cGVkQXJyYXlzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MzRDNDU3QzFCQzcyNDExMDA3NDc2QTcgLyogSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgg
aW4gSGVhZGVycyAqLywKQEAgLTg2NTEsMTEgKzg2MjgsMTkgQEAKIAkJCQlCQzE4QzQyQzBFMTZG
NUNEMDBCMzQ0NjAgLyogSlNWYWx1ZVJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFM0M2MTUx
NjdCQUJENzAwNkQ3NjBBIC8qIEpTVmlydHVhbE1hY2hpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg2RTNDNjFEMTY3QkFCRUUwMDZENzYwQSAvKiBKU1ZpcnR1YWxNYWNoaW5lSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAotCQkJCURDNjA1QjVFMUNFMjZFQTIwMDU5MzcxOCAvKiBQcm9maWxlckV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0NBM0FFODE3REE0MUFFMDA2NTM4QUYgLyogSlNX
ZWFrTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzQ4MkU5MzExNkE3Q0FEMDAzQjA3MTIgLyog
SlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NDgyQjkz
MTE2NzExNDcwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3MDlGQjg2ODFBRTMzNUM2MDAzOUQwNjkgLyogSlNXZWFrU2V0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlBRDJGQ0MzMTFEQjgzRDQ5MDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNzlFNDIzRTMxREVFNjUzMjAwNzhEMzU1IC8qIEpTV2ViQXNz
ZW1ibHlDYWxsZWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUFEMkZDQkUzMURCNThEQUQwMEIzRTcz
NiAvKiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk3OTZG
QjQzQTFERkY4QzNGMDAzOUM5NUQgLyogSlNXZWJBc3NlbWJseUhlbHBlcnMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUFEMkZDQkU1MURCNThEQUQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5SW5zdGFu
Y2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUFEMkZDQkU3MURCNThEQUQwMEIzRTczNiAvKiBKU1dl
YkFzc2VtYmx5TWVtb3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDJGQ0MwNTFEQjU4REFEMDBC
M0U3MzYgLyogSlNXZWJBc3NlbWJseU1vZHVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUQyRkNC
RTkxREI1OERBRDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUFEMkZDQkVCMURCNThEQUQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5VGFi
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0NDI1NjYyMTVFREU5OEQwMDY2QTQ5QiAvKiBKU1dp
dGhTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFM0M2MTkxNjdCQUJFRTAwNkQ3NjBBIC8q
IEpTV3JhcHBlck1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MkUwRTE2RjVDRDAwQjM0
NDYwIC8qIEpTV3JhcHBlck9iamVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC04NjYzLDE2ICs4NjQ4
LDE3IEBACiAJCQkJQTcyRkZENjQxMzk5ODVBODAwRTUzNjVBIC8qIEtleXdvcmRMb29rdXAuaCBp
biBIZWFkZXJzICovLAogCQkJCTk2OUEwNzJBMEVEMUNFNjkwMEYxRjY4MSAvKiBMYWJlbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTYwMDk3QTYwRUJBQkI1ODAwN0E3Mjk3IC8qIExhYmVsU2NvcGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGMDcwQTRCMUQ1NDNBOTgwMDZFNzIzMiAvKiBMYXJnZUFs
bG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCURDRjNENTZBMUNEMjk0NzAwMDNENUM2NSAv
KiBMYXp5Q2xhc3NTdHJ1Y3R1cmUuaCBpbiBIZWFkZXJzICovLAorCQkJCURDRjNENTZCMUNEMjk0
NzIwMDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkI1NDY3NzE0RjU5QjVDMDAyQzI5ODkgLyogTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCURDRjNENTZDMUNEMjk0NzUwMDNENUM2NSAvKiBMYXp5UHJv
cGVydHkuaCBpbiBIZWFkZXJzICovLAorCQkJCURDRjNENTZEMUNEMjk0NzYwMDNENUM2NSAvKiBM
YXp5UHJvcGVydHlJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OURBMDBCMDFCRDU5OTRF
MDBGNDU3NUMgLyogbGF6eXdyaXRlci5weSBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDMxMEUx
NkY1Q0QwMEIzNDQ2MCAvKiBMZXhlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTNGNDBFOTMxRDVB
NEFCMzAwOTlBMUI2IC8qIFdhc21CM0lSR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE4QzUyRTBFMTZGQ0UxMDBCMzQ0NjAgLyogTGV4ZXIubHV0LmggaW4gSGVhZGVycyAqLywKLQkJ
CQlEQ0YzRDU2QjFDRDI5NDcyMDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlSW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJRkUxODdBMDIxQkZCRTU2MTAwMzhCQkNBIC8qIEpJVE11bEdl
bmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZEM0IzQzMxMDE1OUQ3RjAwMjg2NUU3IC8q
IExpbmtCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDMxNzM4MTQ2QkFDNjkwMDdFMzg5
MCAvKiBMaXN0YWJsZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTcwQjc5MTk1MUMwMjRB
MjgwMDI0ODFFMiAvKiBHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBN0UyRUE2QjBGQjQ2MENGMDA2MDFGMDYgLyogTGl0ZXJhbFBhcnNlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRkUzOTEzNTUxQjc5NEY4QTAwRURBRjcxIC8qIExpdmVPYmplY3REYXRh
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTM5MTM1NjFCNzk0RjhGMDBFREFGNzEgLyogTGl2ZU9i
amVjdExpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtODY4Myw4MSArODY2OSw3NSBAQAogCQkJCTBG
NDY4MEQzMTRCQkQxNjcwMEJGRTI3MiAvKiBMTEludERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMzhCMDEyMTdDRjA3ODMwMEIxNDREMyAvKiBMTEludEVudHJ5cG9pbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGNDY4MEEzMTRCQTdGOEQwMEJGRTI3MiAvKiBMTEludEV4Y2VwdGlvbnMuaCBp
biBIZWFkZXJzICovLAotCQkJCUE1NTE2NUQ1MUJERjEzNUEwMDNCNzVDMSAvKiBTY3JpcHRQcm9m
aWxpbmdTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NjgwQ0IxNEJCQjE3MjAwQkZFMjcy
IC8qIExMSW50T2ZmbGluZUFzbUNvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVEMjg3QjIx
NUVDOUE1NzAwREE4MTYxIC8qIExMSW50T3Bjb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3OUNG
QzZGMDFDMzNCMTAwMDBDNzY4RUEgLyogTExJbnRQQ1Jhbmdlcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNTNGQTJBRTExQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZl
U3RydWN0dXJlV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0NjgwQTUxNEJBN0Y4
RDAwQkZFMjcyIC8qIExMSW50U2xvd1BhdGhzLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMzIyRTVB
NzFEQTY0NEE4MDA2RTc3MDkgLyogRlRMRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEYwQjgzOUQxNEJDRjQ2NjAwODg1QjRGIC8qIExMSW50VGh1bmtzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNDJFMzEzOTEzNEZGMEE2MDBBRkFEQjUgLyogTG9jYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE0MkUzMTNBMTM0RkYwQTYwMEFGQURCNSAvKiBMb2NhbFNjb3BlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjIwOEFENzFERjA5MjVEMDA3RDMyNjkgLyogTG9ja0R1cmlu
Z01hcmtpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDM3MEUxNkY1Q0QwMEIzNDQ2MCAv
KiBMb29rdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDY4MENEMTRCQkIxN0QwMEJGRTI3MiAv
KiBMb3dMZXZlbEludGVycHJldGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEI3MjNCODEyRDdE
QTZGMDAzQkQ1RUQgLyogTWFjaGluZVN0YWNrTWFya2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NkMzNkVFQTBFRTEyODlEMDBCM0RGNTkgLyogTWFjcm9Bc3NlbWJsZXIuaCBpbiBIZWFkZXJzICov
LAotCQkJCTQzNDIyQTY3MUMxNjI2NzgwMEUyRUI5OCAvKiBCM1JlZHVjZURvdWJsZVRvRmxvYXQu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDcwQTRCMUQ1NDNBOTgwMDZFNzIzMiAvKiBMYXJnZUFs
bG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RDNCMkM2MTAxNTZCREUwMDI4NjVFNyAv
KiBNYWNyb0Fzc2VtYmxlckFSTS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzk2RkI0M0ExREZGOEMz
RjAwMzlDOTVEIC8qIEpTV2ViQXNzZW1ibHlIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
MUEwMDlDMDE4MzFBMjJEMDBDRjg3MTEgLyogTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODZBREQxNDYwRkRERUE5ODAwMDZFRUMyIC8qIE1hY3JvQXNzZW1ibGVyQVJN
djcuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2M0IyM0UwMEZDNjExODkwMDcwM0FBNCAvKiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzMkFCMjQ0MURDRDc1RjQw
MEQ3NTMzQSAvKiBNYWNyb0Fzc2VtYmxlckhlbHBlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2
QzU2OEUxMTFBMjEzRUUwMDA3RjdGMCAvKiBNYWNyb0Fzc2VtYmxlck1JUFMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGMzM4RTBFMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0RhdGFTZWN0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRTY4QzYzNzFCOTBERTA0MDA0MkJDQjMgLyogTWFjcm9Bc3NlbWJs
ZXJQcmludGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkFFNjRBOTEzNUU1RTFDMDA5NjMwMTIg
LyogTWFjcm9Bc3NlbWJsZXJTSDQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDE2MUU0MEYzQTgz
QzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4Ni5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODYw
MTYxRTUwRjNBODNDMTAwRjg0NzEwIC8qIE1hY3JvQXNzZW1ibGVyWDg2XzY0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NjAxNjFFNjBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTc5NUIxOTk4MUQ3OEJFMzUwMDI2MkZBMCAvKiBN
YXBCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzAwODczQTE3Q0JFODUzMDBDM0U2NDMgLyog
TWFwQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzczMDhGMUMwQ0Q2ODUwMDA1
MkJGQSAvKiBEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE3NERFRjk0MTgyRDk5MTQwMDUyMkMyMiAvKiBNYXBJdGVyYXRvclByb3RvdHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwMDg3M0UxN0NCRThEMzAwQzNFNjQzIC8qIE1hcFByb3Rv
dHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzJCOTE2QzIxNERBMDE0RTAwQ0JBQzg2IC8qIE1h
cmtlZEFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQyRDZGMDkxMzUzOUEyODAwQjAy
RTg2IC8qIE1hcmtlZEJsb2NrLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlCMURCODFDMEU0MkJE
MDBFNUJGRDIgLyogRlRMT1NSRXhpdEhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3QzVG
QjgxRDg4OEEwQzAwNDRGNUUyIC8qIE1hcmtlZEJsb2NrSW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTQxNDQ4Q0IxM0ExNzZFQzAwRjVCQTFBIC8qIE1hcmtlZEJsb2NrU2V0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxNEQyRjNEQjEzOUY0QkUyMDA0OTEwMzEgLyogTWFya2VkU3BhY2UuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGN0M1RkJBMUQ4ODk1MDcwMDQ0RjVFMiAvKiBNYXJrZWRTcGFj
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MkQ2RjEyMTM1MzlBNDEwMEIwMkU4NiAv
KiBNYXJrU3RhY2suaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMjAxNzg5MURDQjk0MjQwMEVBNTk1
MCAvKiBERkdOb2RlQWJzdHJhY3RWYWx1ZVBhaXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MTJF
NENEMTUyMzg5RUMwMEM4MzZCRSAvKiBNYXRjaFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NzlCODE5OTMxREQyNUNGNTAwRERDNzE0IC8qIEpTR2xvYmFsT2JqZWN0SW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDM0MEE0ODUxQTkwNTFBRjAwRDczQ0NBIC8qIE1hdGhDb21tb24uaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMThDNDNDMEUxNkY1Q0QwMEIzNDQ2MCAvKiBNYXRoT2JqZWN0
LmggaW4gSGVhZGVycyAqLywKLQkJCQkxNEFEOTEyMjFEQ0E5RkE0MDAxNEY5RkUgLyogVW5saW5r
ZWRHbG9iYWxDb2RlQmxvY2suaCBpbiBIZWFkZXJzICovLAotCQkJCTE0NzM0MUNDMURDMDJENzIw
MEFBMjlCQSAvKiBFeGVjdXRhYmxlQmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTMyOEM2Qzcx
REE0MzA0NTAwRDI1NUZEIC8qIE1heEZyYW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MDIxM0UzRTEyM0E0MEMyMDBENDIyRjMgLyogTWVtb3J5U3RhdGlzdGlj
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCNTQ2N0IxNEY1QzdFMTAwMkMyOTg5IC8qIE1ldGhv
ZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDMDA4Q0U3MTg3
NjMxQjYwMDk1NUMyNCAvKiBNaWNyb3Rhc2suaCBpbiBIZWFkZXJzICovLAotCQkJCURDMDE4NDE5
MUQxMEMxODkwMDU3QjA1MyAvKiBKSVRXb3JrbGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZD
NTY4RTIxMUEyMTNFRTAwMDdGN0YwIC8qIE1JUFNBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCUUzNUNBMTU0MURCQzNBNUMwMEY4MzUxNiAvKiBET01KSVRIZWFwUmFuZ2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUM0NzAzQ0Q3MTkyODQ0Q0MwMDEzRkJFQSAvKiBtb2RlbHMucHkgaW4gSGVh
ZGVycyAqLywKIAkJCQlFMzc5NEU3NjFCNzdFQjk3MDA1NTQzQUUgLyogTW9kdWxlQW5hbHl6ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUzNTVGMzUzMUI3REM4NTMwMEM1MERDNSAvKiBNb2R1bGVM
b2FkZXJQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkI3MzIwMUJEQTA4RUYwMDMz
MUI4NCAvKiBNb2R1bGVMb2FkZXJQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKKwkJCQkx
NEFEOTEwRjFEQ0E5Mjk0MDAxNEY5RkUgLyogTW9kdWxlUHJvZ3JhbUNvZGVCbG9jay5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMTQ3MzQxRDYxREMwMkVCOTAwQUEyOUJBIC8qIE1vZHVsZVByb2dyYW1F
eGVjdXRhYmxlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzlEM0VEOUM1MDY0REQwQTg0NjZBM0Eg
LyogTW9kdWxlU2NvcGVEYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkE3NjIwNzFEQjkyNDMz
MDBCN0EyRkQgLyogTXV0YXRvclN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAyRTkxMTBF
MTgzOURCMDAwRjkyOTcgLyogTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMwMkU5MTMwRTE4MzlEQjAwMEY5Mjk3IC8qIE5hdGl2ZUVycm9yUHJvdG90eXBlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxNDczNDFEMDFEQzAyREI0MDBBQTI5QkEgLyogTmF0aXZlRXhl
Y3V0YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMzRThEMjExQjkwMTNERTAwMzQ2QjUyIC8q
IE5hdGl2ZVN0ZEZ1bmN0aW9uQ2VsbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGQjkyMjAxNkQw
MzNCNzAwNTVBNURCIC8qIE5vZGVDb25zdHJ1Y3RvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MThDNDNGMEUxNkY1Q0QwMEIzNDQ2MCAvKiBOb2Rlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlF
NDVBMjgxOEExQjI1OTAwMjZEODhGIC8qIE5vbmRldGVybWluaXN0aWNJbnB1dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMxOEM0NDEwRTE2RjVDRDAwQjM0NDYwIC8qIE51bWJlckNvbnN0cnVjdG9y
LmggaW4gSGVhZGVycyAqLywKLQkJCQk1QjcwQ0ZFMDFEQjY5RTY2MDBFQzIzRjkgLyogQXN5bmNG
dW5jdGlvblByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NDIwRTE2RjVDRDAw
QjM0NDYwIC8qIE51bWJlckNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
OEM0NDMwRTE2RjVDRDAwQjM0NDYwIC8qIE51bWJlck9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxOEM0NDQwRTE2RjVDRDAwQjM0NDYwIC8qIE51bWJlclByb3RvdHlwZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMTRBRDkxMEUxRENBOTI5NDAwMTRGOUZFIC8qIEdsb2JhbENvZGVCbG9jay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2QjczMjExQkRBMDhFRjAwMzMxQjg0IC8qIE51bWJlclBy
b3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MkQzOTM5MTAzRTQ1NjAwMDdEQ0I1
MiAvKiBOdW1lcmljU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1NTEzQTYxRDVBNjgy
QzAwQzMyQkQ4IC8qIEZyZWVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVBNzEwQzE5RjZE
RTgyMDA5OEY1RUMgLyogb2JqY19nZW5lcmF0b3IucHkgaW4gSGVhZGVycyAqLywKIAkJCQlDNEY0
QjZGNjFBMDVDOTg0MDA1Q0FCNzYgLyogb2JqY19nZW5lcmF0b3JfdGVtcGxhdGVzLnB5IGluIEhl
YWRlcnMgKi8sCiAJCQkJODZGM0VFQkQxNjhDREU5MzAwNzdCOTJBIC8qIE9iakNDYWxsYmFja0Z1
bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkYzRUVCRjE2OENERTkzMDA3N0I5MkEgLyog
T2JqY1J1bnRpbWVFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0Q0E5NThEMTZBQjUwRkEw
MDkzOEEwNiAvKiBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
RENGM0Q1NkMxQ0QyOTQ3NTAwM0Q1QzY1IC8qIExhenlQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMThDNDQ1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBPYmplY3RDb25zdHJ1
Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2QjczMjIxQkRBMDhFRjAwMzMxQjg0IC8qIE9i
amVjdENvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEM0U0MEExQjYxOEI2
NjAwQzgwRTFFIC8qIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uLmggaW4gSGVhZGVycyAqLywKQEAg
LTg3NjYsNyArODc0Niw2IEBACiAJCQkJRTEyNEE4RjcwRTU1NTc3NTAwMzA5MUYxIC8qIE9wYXF1
ZUpTU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBRERCMUY2MzE4RDc3REJFMDA5QjU4QTgg
LyogT3BhcXVlUm9vdFNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTY5QTA3OUIwRUQxRDNBRTAw
RjFGNjgxIC8qIE9wY29kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRkVGRDZGQzYxRDVFNzk5MjAw
OEYyRjBCIC8qIEpTU3RyaW5nSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQkRDMkMx
NTFGREU5MTAwQ0Q4OTEwIC8qIE9wZXJhbmRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzA0NDdF
QTE3QTBCRDQ2MDBGNTg5OEUgLyogT3BlcmFuZHNJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzE4QzQ0ODBFMTZGNUNEMDBCMzQ0NjAgLyogT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8s
CkBAIC04Nzc0LDI2ICs4NzUzLDI0IEBACiAJCQkJQkMxOEM0NEIwRTE2RjVDRDAwQjM0NDYwIC8q
IFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMwNTJDMzUwRkI3OTIxOTAwNDhGREMzIC8q
IFBhcnNlckFyZW5hLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNDQUU0NTE2RDBDRjc0MDBEMEM2
NUIgLyogUGFyc2VyRXJyb3IuaCBpbiBIZWFkZXJzICovLAotCQkJCURDRjNENTZBMUNEMjk0NzAw
MDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3N0Yx
ODI1MTY0MTkyQzcwMDY0MEE0NyAvKiBQYXJzZXJNb2Rlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
RTMyOEM2QzkxREE0MzJGOTAwRDI1NUZEIC8qIFJlZ2lzdGVyQXRPZmZzZXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTY1MzAzRDY0MTQ0N0I5RTEwMEQzRjkwNCAvKiBQYXJzZXJUb2tlbnMuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUFEMkZDQzFEMURCNTlDQjIwMEIzRTczNiAvKiBXZWJBc3NlbWJseU1v
ZHVsZVByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTc5MkNCMzRBMUM0RUVENUMw
MEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTVBQjQ5
REQxQkVDODA4NjAwNzAyMEZCIC8qIFBlckdsb2JhbE9iamVjdFdyYXBwZXJXb3JsZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZGOUNFNzQxQjlDRDZEMDAwNEVEQ0E2IC8qIFBvbHltb3JwaGljQWNj
ZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU4MzQxODFBNkVGOTdCMDBEMDQ4NDcgLyogUG9s
eW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTgyMDYxMTZC
RkUzODMwMDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUUzQTQyMTQzMUQ2RjU4OTMwMDA3QzYxNyAvKiBQcmVjaXNlSnVtcFRhcmdldHNJbmxpbmVzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRkJCNzNCODFERUYzQUFFMDAyQzAwOUUgLyogUHJldmVudENv
bGxlY3Rpb25TY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY4OTE2QjAxNTVGMjg2MzAwQ0Iy
QjlBIC8qIFByaXZhdGVOYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY3MjlBNTE2NkFEMzUx
MDAwRjVCQTMgLyogUHJvZmlsZXJCeXRlY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNzI5
QjkxNjZBRDM2MDAwMEY1QkEzIC8qIFByb2ZpbGVyQnl0ZWNvZGVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjEzOTEyQTE2NzcxQzM2MDA5Q0NCMDcgLyogUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNl
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkIzODc5MDFCRkJDNDREMDBFM0FCMUUgLyogQWlyT3B0
aW1pemVCbG9ja09yZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlEQ0VFMjIwRDFDRUJBRjc1MDAw
QzIzOTYgLyogREZHTnVsbEFic3RyYWN0U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjcy
OUJBMTY2QUQzNjAwMDBGNUJBMyAvKiBQcm9maWxlckNvbXBpbGF0aW9uLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjIwMTc4MDFEQ0FEQzM1MDBFQTU5NTAgLyogREZHRmxvd0luZGV4aW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkY3MjlCQjE2NkFEMzYwMDAwRjVCQTMgLyogUHJvZmlsZXJDb21w
aWxhdGlvbktpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEEzOEZBMUM4RTEzREYwMDE5MDMx
OCAvKiBTdXBlclNhbXBsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjcyOUJDMTY2QUQzNjAw
MDBGNUJBMyAvKiBQcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRjcyOUJEMTY2QUQzNjAwMDBGNUJBMyAvKiBQcm9maWxlckRhdGFiYXNlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlEQzYwNUI1RTFDRTI2RUEyMDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZGNzI5QkUxNjZBRDM2MDAwMEY1QkEzIC8qIFByb2ZpbGVyRXhl
Y3V0aW9uQ291bnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxOTBDQUQxODlEODJGNjAwMEFF
NUYwIC8qIFByb2ZpbGVySmV0dGlzb25SZWFzb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjcy
OUJGMTY2QUQzNjAwMDBGNUJBMyAvKiBQcm9maWxlck9yaWdpbi5oIGluIEhlYWRlcnMgKi8sCkBA
IC04ODAxLDEwNSArODc3OCwxMTEgQEAKIAkJCQkwRkIxMDU4QzE2NzU0ODMzMDBGOEFCNkUgLyog
UHJvZmlsZXJPU1JFeGl0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkIxMDU4RTE2NzU0ODNBMDBG
OEFCNkUgLyogUHJvZmlsZXJPU1JFeGl0U2l0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxMzkx
MkMxNjc3MUMzRDAwOUNDQjA3IC8qIFByb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUZFM0EwNkIyMUMxMENCODkwMDM5MEZERCAvKiBKSVRCaXRBbmRHZW5lcmF0
b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCURDNjA1QjYwMUNFMjZFQTcwMDU5MzcxOCAvKiBQcm9m
aWxlclVJRC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTRBRDkxMTAxRENBOTI5NDAwMTRGOUZFIC8q
IFByb2dyYW1Db2RlQmxvY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTE0NzM0MUQ0MURDMDJFNkQw
MEFBMjlCQSAvKiBQcm9ncmFtRXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEM0U0
MEUxQjYxOEI2NjAwQzgwRTFFIC8qIFByb3BlcnR5Q29uZGl0aW9uLmggaW4gSGVhZGVycyAqLywK
LQkJCQk0MzE5REEwNDFDMUJFNDBEMDAxRDI2MEIgLyogQjNMb3dlck1hY3Jvc0FmdGVyT3B0aW1p
emF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdGQjYxMDAxMDQwQzM4QjAwMTdBMjg2IC8q
IFByb3BlcnR5RGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NTQzN0QwRUJBNzBG
RDAwNzJCNkQzIC8qIFByb3BlcnR5TWFwSGFzaFRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NjE1OEFCMzE1NUM4QjQwMDBCNDVDOUMgLyogUHJvcGVydHlOYW1lLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzE4QzQ1NDBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvcGVydHlOYW1lQXJyYXkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRjcxNjhDMTVBM0IyMzUwMDhGNURBQSAvKiBQcm9wZXJ0eU9mZnNl
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTQyMDFENTkxREVDRjI2QTAwOTA0QkQzIC8qIFNvdXJj
ZUNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDU1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQ
cm9wZXJ0eVNsb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjdGMzlDMTVFRDhFNDYwMEYxNjdC
MiAvKiBQcm9wZXJ0eVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTUzRkEyQUUxMUNGMzdG
M0YwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9p
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDU2MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm90
ZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDc0QzMzQjE2QUEyRDk1MDA2MkYwMUQgLyogUHJv
dG90eXBlTWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkExMzE3MTFEOERENzJCMDBFQzEzMEEg
LyogUHJvdG90eXBlTWFwSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzlCMDBDQkQxQzZB
QjA3RTAwODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTc5
QjAwQ0JGMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94eU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNzkxNjBEQkUxQzhFM0VDODAwOEMwODVBIC8qIFByb3h5UmV2b2tlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjU3ODBBMjE4RkUxRTk4MDAxRTcyRDkgLyogUHVyZU5hTi5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY4NkFFMjAxQzUzMTFDNTAwNkJFOEVDIC8qIEIzQ29tcHV0ZURpdmlzaW9uTWFn
aWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTVDRDIzMUJBNUY5ODYwMDMxRkZEMyAvKiBQdXRC
eUlkRmxhZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTMzMkE0MTRDQTdERDkwMDg1RjNDNiAv
KiBQdXRCeUlkU3RhdHVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjkzMjc1RjFDMjFFRjdGMDBD
RjY1NjQgLyogSlNPYmplY3RJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjkzQjRBQTE4
QjkyQzREMDAxNzhBM0YgLyogUHV0QnlJZFZhcmlhbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MENENEMyMTVGMUE2MDcwMDMyRjFDMCAvKiBQdXREaXJlY3RJbmRleE1vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGOUZDOEM1MTRFMUI2MDQwMEQ1MkFFMCAvKiBQdXRLaW5kLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkxNEFEOTEwRDFEQ0E5Mjk0MDAxNEY5RkUgLyogRnVuY3Rpb25Db2RlQmxvY2su
aCBpbiBIZWFkZXJzICovLAogCQkJCTE0N0I4NDYzMEU2REU2QjEwMDQ3NzVBNCAvKiBQdXRQcm9w
ZXJ0eVNsb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjYwQUMyMTY3NDBGODMwMDAyOTc3OSAv
KiBSZWR1Y2VXaGl0ZXNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzM2MzdBNjFCNjMyMjAy
MDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2QjczMjMx
QkRBMDhFRjAwMzMxQjg0IC8qIFJlZmxlY3RPYmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkE3QThFQzE4QjQxM0M4MDA1MjM3MUQgLyogUmVnLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjlENEMwRDFDM0UxQzExMDA2Q0Q5ODQgLyogRlRMRXhjZXB0aW9uVGFyZ2V0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzE4QzQ1QTBFMTZGNUNEMDBCMzQ0NjAgLyogUmVnRXhwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMTcxMkIzRjExQzdCMjI4MDA3QTUzMTUgLyogUmVnRXhwQ2FjaGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDRDIwMkMyMEUxNzA2QTcwMDJDN0U4MiAvKiBSZWdFeHBDb25zdHJ1
Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEMjAyRDYwRTE3MDcwODAwMkM3RTgyIC8qIFJl
Z0V4cENvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3QzM5RkIxQzhGNjI5
MzAwNDgwMTUxIC8qIFJlZ0V4cElubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNzEyQjQx
MTFDN0IyMzUwMDdBNTMxNSAvKiBSZWdFeHBLZXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThD
NDVCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBSZWdFeHBPYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGN0MzOUZEMUM4RjY1OTUwMDQ4MDE1MSAvKiBSZWdFeHBPYmplY3RJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0QyMDJDNDBFMTcwNkE3MDAyQzdFODIgLyogUmVnRXhwUHJvdG90eXBl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ1RDBFMTZGNUNEMDBCMzQ0NjAgLyogUmVnaXN0
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzMjhDNkM5MURBNDMyRjkwMEQyNTVGRCAvKiBSZWdp
c3RlckF0T2Zmc2V0LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzI4QzZDODFEQTQzMDYxMDBEMjU1
RkQgLyogUmVnaXN0ZXJBdE9mZnNldExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2OUEwNzJC
MEVEMUNFNjkwMEYxRjY4MSAvKiBSZWdpc3RlcklELmggaW4gSGVhZGVycyAqLywKIAkJCQk2MjNB
MzdFQzFCODdBN0MwMDA3NTQyMDkgLyogUmVnaXN0ZXJNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzMxNDEyMTgxNDU1OTEwMDAzMzIzMiAvKiBSZWdpc3RlclNldC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTU3RDIzRUUxODkxQjU1NDAwMzFDN0ZBIC8qIFJlZ3VsYXJFeHByZXNzaW9uLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkI3RjM5RDE1RUQ4RTQ2MDBGMTY3QjIgLyogVHlwZUVycm9yLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjdDRjk0RjFEQkVFRTg4MDA5OENDMTIgLyogUmVsZWFzZUhl
YXBBY2Nlc3NTY29wZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTlENkExMTYxQkVBRDM0RDAwRTI1
QzM3IC8qIFJlbW90ZUF1dG9tYXRpb25UYXJnZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUE1QkEx
NUVCMTgyMzQwQjQwMEE4MkU2OSAvKiBSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTk5OEVENjc1MUJFRDc2OEMwMEREODAxNyAvKiBSZW1vdGVDb250cm9sbGFi
bGVUYXJnZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUE1QkExNUYwMTgyMzQ1QUYwMEE4MkU2OSAv
KiBSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUJBMTVFODE4
MjM0MEIzMDBBODJFNjkgLyogUmVtb3RlSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NUJBMTVFQTE4MjM0MEI0MDBBODJFNjkgLyogUmVtb3RlSW5zcGVjdG9yQ29uc3RhbnRzLmggaW4g
SGVhZGVycyAqLywKLQkJCQlBNUJBMTVGMDE4MjM0NUFGMDBBODJFNjkgLyogUmVtb3RlSW5zcGVj
dGlvblRhcmdldC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTVCQTE1RUIxODIzNDBCNDAwQTgyRTY5
IC8qIFJlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQUQyRkND
MkQxREI4MzhGRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5UHJvdG90eXBlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNUJBMTVFRDE4MjM0MEI0MDBBODJFNjkgLyogUmVtb3RlSW5zcGVjdG9yWFBDQ29u
bmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyNEU1NTExN0VFMjc0OTAwQUJCMjE3IC8q
IFJlcGF0Y2guaCBpbiBIZWFkZXJzICovLAotCQkJCURDMjE0MzA3MUNBMzJFNTUwMDBBODg2OSAv
KiBJQ1N0YXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjlFQkNCNzBFOEM2RDRBMDA4NzIyQ0Mg
LyogUmVzdWx0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzBCMEE5RDExQTlCNjY0NjAwMDEz
MDZBIC8qIFJ1bnRpbWVGbGFncy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTQzODZBNzkxREQ2OTg5
QzAwODY1MkM0IC8qIEluZGlyZWN0RXZhbEV4ZWN1dGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUyQzA2MTFGMUFBNTFFMUMwMEI0QURCQSAvKiBSdW50aW1lVHlwZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzIyQjMxQjkxNDA1NzdENzAwREI0NzVBIC8qIFNhbXBsaW5nQ291bnRlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNzlENUNENUIxQzExMDZBOTAwQ0VDQTA3IC8qIFNhbXBsaW5nUHJvZmls
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTA1MDI4MUFBOTA5NTYwMEQzM0IzMyAvKiBTY29w
ZWRBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLAotCQkJCUZFMzE4RkUwMUNBQzk4MkYwMERGQ0M1
NCAvKiBFQ01BU2NyaXB0U3BlY0ludGVybmFsRnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkUwNTAyOTFBQTkwOTU2MDBEMzNCMzMgLyogU2NvcGVkQXJndW1lbnRzVGFibGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRTA1MDJCMUFBOTA5NTYwMEQzM0IzMyAvKiBTY29wZU9mZnNldC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQUQyRkNCRjcxREI1OERBRDAwQjNFNzM2IC8qIFdlYkFzc2Vt
Ymx5TWVtb3J5UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU1MjE3RUUyNzQ5
MDBBQkIyMTcgLyogU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNUZEMDA2ODE4OUFGRTlDMDA2MzMyMzEgLyogU2NyaXB0QXJndW1lbnRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNTAzRkEyMTE4OEVGRjY4MDAxMTBGMTQgLyogU2NyaXB0QnJlYWtwb2ludC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVGRDAwNkUxODlCMDBBQTAwNjMzMjMxIC8qIFNjcmlwdENh
bGxGcmFtZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMEZCNjExREMyREU5OTAwMzEyNEYyIC8q
IEFycmF5QnVmZmVyU2hhcmluZ01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1RkQwMDcwMTg5
QjAwQUEwMDYzMzIzMSAvKiBTY3JpcHRDYWxsU3RhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
RkQwMDdFMTg5QjBCNEMwMDYzMzIzMSAvKiBTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNTAzRkEyMjE4OEVGRjY4MDAxMTBGMTQgLyogU2NyaXB0RGVidWdMaXN0
ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwM0ZBMjYxODhFRkZGRDAwMTEwRjE0IC8qIFNj
cmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxNDczNDFDRTFEQzAyRDc5MDBB
QTI5QkEgLyogU2NyaXB0RXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU1RDkzQTYx
ODUwMTJBODAwNDAwREVEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTU0Q0YyRkExODRFQUVEQTAwMjM3RjE5IC8qIFNjcmlwdE9iamVjdC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQTU1MTY1RDUxQkRGMTM1QTAwM0I3NUMxIC8qIFNjcmlwdFByb2ZpbGluZ1Njb3Bl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTRDRjJGNjE4NEVBQjI0MDAyMzdGMTkgLyogU2NyaXB0
VmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTcwQjc5MTlEMUMwMjRBNTYwMDI0ODFFMiAvKiBH
ZW5lcmF0b3JQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzI5OURBNjE3RDEy
ODU4MDA1RjVGRjkgLyogU2V0Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3OTBE
RDZFMTgyRjQ5OTcwMDU4ODgwNyAvKiBTZXRJdGVyYXRvclByb3RvdHlwZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTcyOTlEQTIxN0QxMjg0ODAwNUY1RkY5IC8qIFNldFByb3RvdHlwZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZFRTk4NDExQTg4NjVCNzAwNzU0RTkzIC8qIFNldHVwVmFyYXJnc0Zy
YW1lLmggaW4gSGVhZGVycyAqLywKLQkJCQlBRDJGQ0MxODFEQjU5Q0IyMDBCM0U3MzYgLyogV2Vi
QXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZB
RTY0QUExMzVFNUUxQzAwOTYzMDEyIC8qIFNINEFzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJREMxN0U4MTgxQzlDOTFEOTAwOEE2QUIzIC8qIFNoYWRvd0NoaWNrZW4uaCBpbiBIZWFkZXJz
ICovLAorCQkJCURDMTdFODE5MUM5QzkxREIwMDhBNkFCMyAvKiBTaGFkb3dDaGlja2VuSW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY3MDUxN0I2QjVBQjAwQTdBRTNGIC8qIFNpbXBs
ZVR5cGVkQXJyYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEJBNzhGMTEzQUFC
ODhGMDA1QjdDMkMgLyogU2xvdFZpc2l0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyMTYwRkU3
MTVGN0U5NUUwMDk0MkRGQyAvKiBTbG90VmlzaXRvcklubGluZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3MDlGMkYwMTdBMEFDMDQwMDUxMkU5OCAvKiBTbG93UGF0aENhbGwuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGNUI0QTMzMUM4NEYwRDYwMEYxQjE3RSAvKiBTbG93UGF0aFJldHVyblR5cGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA0MDA0MEU2QTc0OTQwMDc4NkU2QSAvKiBTbWFsbFN0
cmluZ3MuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGN0MzOUZEMUM4RjY1OTUwMDQ4MDE1MSAvKiBS
ZWdFeHBPYmplY3RJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjdDRjk1MjFEQzAyN0Q5
MDA5OENDMTIgLyogU3RvcElmTmVjZXNzYXJ5VGltZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUZF
MTg3QTBGMUMwMzBENkMwMDM4QkJDQSAvKiBTbmlwcGV0T3BlcmFuZC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMTQyMDFENTkxREVDRjI2QTAwOTA0QkQzIC8qIFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTcwQjc5MTkxMUMwMjRBMTMwMDI0ODFFMiAvKiBTb3VyY2VDb2RlS2V5LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzE4QzQ2MzBFMTZGNUNEMDBCMzQ0NjAgLyogU291cmNlUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0OURDMTZDMTJFRjI5NEUwMDE4NEExRiAvKiBTb3Vy
Y2VQcm92aWRlckNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDlEQzE2RDEyRUYyOTUzMDAx
ODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
REY3MDg2MUQzRjJDMjUwMDkyNzQ0OSAvKiBBaXJMb3dlckVudHJ5U3dpdGNoLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkRFODdGQzFERkU2RTUxMDA2NEMzOTAgLyogU3BhY2VUaW1lU2NoZWR1bGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI3RjM5RTE1RUQ4RTQ2MDBGMTY3QjIgLyogU3BhcnNl
QXJyYXlWYWx1ZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTczODY1NTQxMTg2OTdCNDAwNTQw
Mjc5IC8qIFNwZWNpYWxpemVkVGh1bmtKSVQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTU0MUIy
MTYxM0MxRkIwMENFM0UyNSAvKiBTcGVjaWFsUG9pbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZEODJFNTQxNDFEQUVFRTAwMTc5Qzk0IC8qIFNwZWN1bGF0ZWRUeXBlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNzg1RjZCQzE4QzU1M0ZFMDBGMTA2MjYgLyogU3BpbGxSZWdpc3RlcnNNb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjNBQzc1MjE4M0VBMTA0MDAzMjAyOUYgLyogU3RhY2tBbGln
bm1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkRCN0U5MUQ2MTI0QjUwMENEQkY4RSAvKiBT
dGFja0ZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0MxRUFGMjE3OTg3QUI2MDAyOTlEQjIg
LyogU3RhY2tWaXNpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERGMDREQTE2QjM5OTZEMDAx
NkE1MTMgLyogU3RhdGljUHJvcGVydHlBbmFseXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRD
QTk1OEIxNkFCNTBERTAwOTM4QTA2IC8qIFN0YXRpY1Byb3BlcnR5QW5hbHl6ZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGN0NGOTUyMURDMDI3RDkwMDk4Q0MxMiAvKiBTdG9wSWZOZWNlc3NhcnlU
aW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTczMEI2MTIxMjUwMDY4RjAwOUQyNUIxIC8qIFN0
cmljdEV2YWxBY3RpdmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ2NjBFMTZGNUNE
MDBCMzQ0NjAgLyogU3RyaW5nQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkI3
MzI1MUJEQTA4RUYwMDMzMUI4NCAvKiBTdHJpbmdDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJz
ICovLApAQCAtODkwNywxNyArODg5MCwxMSBAQAogCQkJCTk5NkI3MzI2MUJEQTA4RUYwMDMzMUI4
NCAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
MThDNDY4MEUxNkY1Q0QwMEIzNDQ2MCAvKiBTdHJpbmdPYmplY3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMThDNDZBMEUxNkY1Q0QwMEIzNDQ2MCAvKiBTdHJpbmdQcm90b3R5cGUuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGQjM4NzhFMUJGQkM0NEQwMEUzQUIxRSAvKiBBaXJCbG9ja1dvcmtsaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDJFMzEzQjEzNEZGMEE2MDBBRkFEQjUgLyogU3Ryb25n
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDU3MjI4NjE0MzdFMTQwMDA1RkRFMjYgLyogU3Ryb25n
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNERTNBQjgwRTZDODJGNTAwMTQ1M0E3IC8q
IFN0cnVjdHVyZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTQ3MzQxRDYxREMwMkVCOTAwQUEyOUJB
IC8qIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3RTRFRTcw
OTBFQkI3OTYzMDA1OTM0QUEgLyogU3RydWN0dXJlQ2hhaW4uaCBpbiBIZWFkZXJzICovLAotCQkJ
CTE0QUQ5MTI3MURDQTlGQTQwMDE0RjlGRSAvKiBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJRkU2NDkxMzcxRDc4RjAxRDAwQTY5NEQ0IC8qIEV4Y2VwdGlv
blNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQUFBQTMxMjE4QkQ0OUQxMDAzOTRDQzggLyog
U3RydWN0dXJlSURCbG9iLmggaW4gSGVhZGVycyAqLywKLQkJCQk3OTg5Mzc3OTFEQ0FCNTczMDBG
OEQ0RkIgLyogSlNGaXhlZEFycmF5LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MzZFNTQ1MzFDNDY4
RTc0MDBCNUFGNzMgLyogQjNMZWdhbGl6ZU1lbW9yeU9mZnNldHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTJBRjczODJEMThCQkJGOTIwMDhBNUEzNyAvKiBTdHJ1Y3R1cmVJRFRhYmxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkQyQzkyNDE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzJGRTE4QTQxNkJBRUM0MDAwQUYzMDYxIC8qIFN0cnVj
dHVyZVJhcmVEYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTg5MjYsNDUgKzg5MDMsMzkgQEAKIAkJ
CQkwRjc2NkQzOTE1QUU0QTFGMDA4RjM2M0UgLyogU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hw
b2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDRjBEMDgwRUYwQUFCOTAwNDEzQzhGIC8qIFN0
cnVjdHVyZVN0dWJJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzkwNDE0ODBFQjkyNTA5MDBG
RTI2RkEgLyogU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjRBMzhGQTFDOEUxM0RGMDAxOTAzMTggLyogU3VwZXJTYW1wbGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3MDVCNDFBQzFBNkU1MDFFMDA3MTY3NTcgLyogU3ltYm9sLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3MDVCNDFBRTFBNkU1MDFFMDA3MTY3NTcgLyogU3ltYm9sQ29uc3RydWN0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk5NkI3MzI3MUJEQTA4RUYwMDMzMUI4NCAvKiBTeW1ib2xDb25zdHJ1
Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwNUI0MUIwMUE2RTUwMUUwMDcxNjc1NyAv
KiBTeW1ib2xPYmplY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzNGQ0ZDMUMxNjI1QkUwMDMy
M0Y2NyAvKiBCM0RvbWluYXRvcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCUUzMkZGMUVBMURBNzU3
MUMwMEE4QkYyMSAvKiBET01KSVRTbG93UGF0aENhbGxzLmggaW4gSGVhZGVycyAqLywKLQkJCQk1
M0ZEMDRENDFEN0FCMjkxMDAzMjg3RDMgLyogV2FzbUNhbGxpbmdDb252ZW50aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3MDVCNDFCMjFBNkU1MDFFMDA3MTY3NTcgLyogU3ltYm9sUHJvdG90eXBl
LmggaW4gSGVhZGVycyAqLywKLQkJCQlBRDJGQ0MyMDFEQjU5Q0IyMDBCM0U3MzYgLyogV2ViQXNz
ZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2QjczMjgx
QkRBMDhFRjAwMzMxQjg0IC8qIFN5bWJvbFByb3RvdHlwZS5sdXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMThDNDZCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBTeW1ib2xUYWJsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTc4NEEyNjQxMUQxNjYyMjAwNTc3NkFDIC8qIFN5bnRheENoZWNrZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCURDNzk5NzgzMUNERTlGQTAwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNN
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MEVDQTYwODFBRkRCRUEyMDA0NDk3MzkgLyogVGVt
cGxhdGVSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQUQyRkNCRUQxREI1OERBRDAwQjNF
NzM2IC8qIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGNUI0QTMzMUM4NEYwRDYwMEYxQjE3RSAvKiBTbG93UGF0aFJldHVyblR5cGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTcwRUNBNjA5MUFGREJFQTIwMDQ0OTczOSAvKiBUZW1wbGF0ZVJl
Z2lzdHJ5S2V5LmggaW4gSGVhZGVycyAqLywKKwkJCQk5NUQ0MjYxQUY0Qzg0Q0UyQUNCQUM5ODEg
LyogVGVtcGxhdGVSZWdpc3RyeUtleVRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjI0RTU0
RjE3RUUyNzQ5MDBBQkIyMTcgLyogVGVtcFJlZ2lzdGVyU2V0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkEyQzE3QzE3RDdDRjg0MDA5RDAxNUYgLyogVGVzdFJ1bm5lclV0aWxzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGRTM0MjIxMjFENkI4MUMzMDAzMkJFODggLyogVGhyb3dTY29wZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY1NzJENEYxNjg3OUZERDAwRTU3RkJEIC8qIFRodW5rR2VuZXJhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzM4NjU1NjExODY5N0I0MDA1NDAyNzkgLyogVGh1bmtH
ZW5lcmF0b3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE0NDhDRDEzQTE3ODM3MDBGNUJBMUEg
LyogVGlueUJsb29tRmlsdGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkyNjg0RDQzODFDMDAxNjFD
MDA4MUQ2NjMgLyogQWlyTGl2ZW5lc3MuaCBpbiBIZWFkZXJzICovLAotCQkJCUE1QTFBMDk0MUQ4
Q0IzM0UwMDRDMkVCOCAvKiBEZWJ1Z2dlclBhcnNlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY1NTk4OTgxN0M4NkM1ODAwQTFFNTQzIC8qIFRvTmF0aXZlRnJvbVZhbHVlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlEQ0VFMjIwQjFDRUI5ODk1MDAwQzIzOTYgLyogREZHQ29udHJvbEVxdWl2YWxl
bmNlQW5hbHlzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkQ0REU5MTk4MzJEQUMwMDdENEIx
OSAvKiBUb1RoaXNTdGF0dXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTUyQUJEMUI0ODdBNzcw
MEMzNjdDNSAvKiBUcmFja2VkUmVmZXJlbmNlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY3
MDYxN0I2QjVBQjAwQTdBRTNGIC8qIFR5cGVkQXJyYXlBZGFwdG9ycy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEYzMzhFMTMxQkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlwcm9kdWN0cy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY3MDgxN0I2QjVBQjAwQTdBRTNGIC8qIFR5cGVkQXJyYXlD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjRCOTREQzE3QjlGMDc1MDBERDAzQTQg
LyogVHlwZWRBcnJheUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkI2NzA5MTdCNkI1
QUIwMEE3QUUzRiAvKiBUeXBlZEFycmF5cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY3MEIx
N0I2QjVBQjAwQTdBRTNGIC8qIFR5cGVkQXJyYXlUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RkI3RjM5RDE1RUQ4RTQ2MDBGMTY3QjIgLyogVHlwZUVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjJENERFQTE5ODMyREFDMDA3RDRCMTkgLyogVHlwZUxvY2F0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MkIzMTEwMTE5NzVCNDY3MDA4MDg1N0MgLyogVHlwZUxvY2F0aW9uQ2FjaGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRkI2QzM5MUFGNDhEREMwMERCMUJGNyAvKiBUeXBlb2ZUeXBl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkM5NTJCNzE5QTI4OTg1MDA2OUIzODYgLyogVHlwZVBy
b2ZpbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJENERFQzE5ODMyREM0MDA3RDRCMTkgLyog
VHlwZVByb2ZpbGVyTG9nLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MzcwQjRGNjFCRjI2MjA1MDA1
QzQwRkMgLyogQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYyRDRERjAxOTgzMkRENjAwN0Q0QjE5IC8qIFR5cGVTZXQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRjQyNzRCMTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlzODYuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRjQyNzQxMTU4RUJFOEQwMDRDQjlGRiAvKiB1ZGlzODZfZGVj
b2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTg5NzIsNDMgKzg5NDMsNTcgQEAKIAkJCQkwRkY0Mjc0
ODE1OEVCRTkxMDA0Q0I5RkYgLyogdWRpczg2X3N5bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZG
NDI3NDkxNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Nl90eXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTdFNUFCMzkxNzk5RTRCMjAwRDI4MzNEIC8qIFVEaXM4NkRpc2Fzc2VtYmxlci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNzlERkNCREIxRDg4QzU5NjAwNTI3RDAzIC8qIEhhc093blByb3BlcnR5
Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QThBRjQxMTdBREI1RjMwMDVBQjE3NCAvKiBV
aW50MTZBcnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTQ3MzQxRDAxREMwMkRCNDAwQUEyOUJB
IC8qIE5hdGl2ZUV4ZWN1dGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NjczOUQzMTNCRkRF
NzEwMDIzRDg3QyAvKiBVaW50MTZXaXRoRnJhY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
QThBRjQyMTdBREI1RjMwMDVBQjE3NCAvKiBVaW50MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTdBOEFGM0YxN0FEQjVGMzAwNUFCMTc0IC8qIFVpbnQ4QXJyYXkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE3QThBRjQwMTdBREI1RjMwMDVBQjE3NCAvKiBVaW50OENsYW1wZWRBcnJheS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY1RjA4Q0YxNDZDNzYzMzAwMDQ3MkE5IC8qIFVuY29uZGl0aW9u
YWxGaW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QjYwMTgyMTYzOUZEMkEwMDM3MkJB
MyAvKiBVbmxpbmtlZENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTRBRDkxMjQxRENB
OUZBNDAwMTRGOUZFIC8qIFVubGlua2VkRXZhbENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMTRBRDkxMjMxRENBOUZBNDAwMTRGOUZFIC8qIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2su
aCBpbiBIZWFkZXJzICovLAorCQkJCTE0QUQ5MTI3MURDQTlGQTQwMDE0RjlGRSAvKiBVbmxpbmtl
ZEZ1bmN0aW9uRXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxNDJFNTExQjc5NkVD
RTAwRjRCRjRCIC8qIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmggaW4gSGVhZGVycyAqLywK
KwkJCQkxNEFEOTEyMjFEQ0E5RkE0MDAxNEY5RkUgLyogVW5saW5rZWRHbG9iYWxDb2RlQmxvY2su
aCBpbiBIZWFkZXJzICovLAorCQkJCTE0QUQ5MTI1MURDQTlGQTQwMDE0RjlGRSAvKiBVbmxpbmtl
ZE1vZHVsZVByb2dyYW1Db2RlQmxvY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTE0QUQ5MTI2MURD
QTlGQTQwMDE0RjlGRSAvKiBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2suaCBpbiBIZWFkZXJzICov
LAorCQkJCTE0QUI2Njc2MURFQ0Y0MDkwMEE1NkMyNiAvKiBVbmxpbmtlZFNvdXJjZUNvZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGMkU4OTJDMTZEMDI4QUQwMDlFNEZEMiAvKiBVbnVzZWRQb2lu
dGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkI0NzY3RTFEOTlBRUE5MDA4RUE2Q0IgLyogR0NE
ZWZlcnJhbENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5REEwMEIxMUJENTk5NEUwMEY0
NTc1QyAvKiBVcGRhdGVDb250ZW50cy5weSBpbiBIZWFkZXJzICovLAogCQkJCTBGOTYzQjM4MTNG
QzZGRTkwMDAyRDlCMiAvKiBWYWx1ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDI2
QTQ4MTQ2MENCQjMwMDEzMUY4RiAvKiBWYWx1ZVJlY292ZXJ5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3OUVFMEMwMDFCNEFGQjg1MDAwMzg1QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMTRBRDkxMjMxRENBOUZBNDAwMTRGOUZFIC8qIFVubGlua2VkRnVuY3Rp
b25Db2RlQmxvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkM3MzUxMUFDOUY5OUYwMEJFMTY4
MiAvKiBWYXJpYWJsZVdyaXRlRmlyZURldGFpbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFMDUw
MkQxQUE5MDk1NjAwRDMzQjMzIC8qIFZhck9mZnNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0
MjZBNDkxNDYwQ0JCNzAwMTMxRjhGIC8qIFZpcnR1YWxSZWdpc3Rlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEY5NTJBQTExREY3ODYwOTAwRTA2RkJEIC8qIFZpc2l0UmFjZUtleS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMxOEM0MjAwRTE2RjVDRDAwQjM0NDYwIC8qIFZNLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2NThEM0E1NjE5NjM4MjY4MDAzQzQ1RDYgLyogVk1FbnRyeVJlY29yZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRkU1OTMyQTgxODNDNUEyNjAwQTFFQ0NDIC8qIFZNRW50cnlTY29wZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY1QUUyQzQxREY0RjI4MDAwNjZFRkUxIC8qIFZNSW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTNGNDBFOTMxRDVBNEFCMzAwOTlBMUI2IC8qIFdhc21C
M0lSR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDRCMURGQTFERjI0NEUyMDA3MUFF
MzIgLyogV2FzbUJpbmRpbmcuaCBpbiBIZWFkZXJzICovLAorCQkJCTUzRkQwNEQ0MUQ3QUIyOTEw
MDMyODdEMyAvKiBXYXNtQ2FsbGluZ0NvbnZlbnRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdC
QzU0N0QzMUI2OTU5QTEwMDk1OUI1OCAvKiBXYXNtRm9ybWF0LmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjZCOEFERDFDNEVGQUMzMDA5NjkwNTIgLyogQjNTU0FDYWxjdWxhdG9yLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjJCQkQ5QTFDNUZGM0Y1MDAyM0VGMjMgLyogQjNWYXJpYWJsZVZhbHVlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1M0Y0MEU4QjFENTkwMUJCMDA5OUExQjYgLyogV2FzbUZ1bmN0
aW9uUGFyc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MzU1NTcxNDFEOUQ5RUE1MDA2RDU4M0Ig
LyogV2FzbU1lbW9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzlCNzU5NzUxREZBNEM2MDAwNTIx
NzRDIC8qIFdhc21NZW1vcnlJbmZvcm1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTNGNDBF
OTUxRDVBN0FFRjAwOTlBMUI2IC8qIFdhc21Nb2R1bGVQYXJzZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTUzM0IxNURGMURDN0Y0NjMwMDRENTAwQSAvKiBXYXNtT3BzLmggaW4gSGVhZGVycyAqLywK
KwkJCQk3OUI3NTk3NjFERkE0QzYwMDA1MjE3NEMgLyogV2FzbVBhZ2VDb3VudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTNGNDBFOEQxRDU5MDFGMjAwOTlBMUI2IC8qIFdhc21QYXJzZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTUzMTM3NEJEMUQ1Q0U2NzYwMEFGN0EwQiAvKiBXYXNtUGxhbi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTNGNDBFODUxRDU4Rjk3NzAwOTlBMUI2IC8qIFdhc21TZWN0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTNGRjdGOTkxREJGQ0Q5MDAwQTI2Q0NDIC8qIFdhc21W
YWxpZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVEOTRGMkYxNzFFM0UyMzAwQkU3N0E0IC8q
IFdhdGNoZG9nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjkxOUQyNjE1ODUzQ0UzMDA0QTRFN0Qg
LyogV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQyRTMxM0MxMzRGRjBBNjAwQUZB
REI1IC8qIFdlYWsuaCBpbiBIZWFkZXJzICovLAotCQkJCUFEMkZDQkU1MURCNThEQUQwMEIzRTcz
NiAvKiBKU1dlYkFzc2VtYmx5SW5zdGFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RTg0RjlG
MTRFRTFBQ0MwMEQ2RDVENCAvKiBXZWFrQmxvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTE0QkZD
RTY5MTBDREIxRkMwMDM2NENDRSAvKiBXZWFrR0NNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUFE
ODZBOTNFMUFBNEQ4OEQwMDJGRTc3RiAvKiBXZWFrR0NNYXBJbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNEY3MjU2NjE0RUUyNjVFMDBCMTY1MkIgLyogV2Vha0hhbmRsZU93bmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNEU4NEZBMjE0RUUxQUNDMDBENkQ1RDQgLyogV2Vha0ltcGwuaCBp
biBIZWFkZXJzICovLAogCQkJCTE0QkU3RDMzMTcxMzVDRjQwMEQxODA3QSAvKiBXZWFrSW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTMzQjE1REYxREM3RjQ2MzAwNEQ1MDBBIC8qIFdhc21P
cHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3Q0EzQUU0MTdEQTQxQUUwMDY1MzhBRiAvKiBXZWFr
TWFwQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3Q0EzQUVDMTdEQTUxNjgwMDY1
MzhBRiAvKiBXZWFrTWFwRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdDQTNBRTYxN0RBNDFB
RTAwNjUzOEFGIC8qIFdlYWtNYXBQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLApAQCAtOTAxNywy
OSArOTAwMiw0NyBAQAogCQkJCTcwOUZCODZBMUFFMzM1QzYwMDM5RDA2OSAvKiBXZWFrU2V0Q29u
c3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MTUwMTMzMTU0QkIxM0YwMDVEOEM5OCAv
KiBXZWFrU2V0SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzA5RkI4NkMxQUUzMzVDNjAw
MzlEMDY5IC8qIFdlYWtTZXRQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUFEMkZDQkVE
MURCNThEQUQwMEIzRTczNiAvKiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlBRDJGQ0MxNjFEQjU5Q0IyMDBCM0U3MzYgLyogV2ViQXNzZW1i
bHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUFEMkZD
QkVGMURCNThEQUQwMEIzRTczNiAvKiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQUQyRkNDMTcxREI1OUNCMjAwQjNFNzM2IC8qIFdlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUQ0OTM3
RDQxREREMjdERTAwNzdDODA3IC8qIFdlYkFzc2VtYmx5RnVuY3Rpb24uaCBpbiBIZWFkZXJzICov
LAorCQkJCUFEMkZDQkYxMURCNThEQUQwMEIzRTczNiAvKiBXZWJBc3NlbWJseUluc3RhbmNlQ29u
c3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUFEMkZDQzE4MURCNTlDQjIwMEIzRTczNiAv
KiBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlBRDJGQ0JGMzFEQjU4REFEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlw
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUQyRkNDMTkxREI1OUNCMjAwQjNFNzM2IC8qIFdlYkFz
c2VtYmx5SW5zdGFuY2VQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDJGQ0JG
NTFEQjU4REFEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQUQyRkNDMUExREI1OUNCMjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5TWVt
b3J5Q29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDJGQ0JGNzFEQjU4REFE
MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCUFEMkZDQzFCMURCNTlDQjIwMEIzRTczNiAvKiBXZWJBc3NlbWJseU1lbW9yeVByb3RvdHlw
ZS5sdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUFEMkZDQzAxMURCNThEQUQwMEIzRTczNiAvKiBX
ZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDJGQ0Mx
QzFEQjU5Q0IyMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5sdXQuaCBp
biBIZWFkZXJzICovLAorCQkJCUFEMkZDQzAzMURCNThEQUQwMEIzRTczNiAvKiBXZWJBc3NlbWJs
eU1vZHVsZVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUQyRkNDMUQxREI1OUNCMjAw
QjNFNzM2IC8qIFdlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQUQ0OTM3QzgxREREMEFBRTAwNzdDODA3IC8qIFdlYkFzc2VtYmx5TW9kdWxlUmVjb3Jk
LmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDJGQ0MyRDFEQjgzOEZEMDBCM0U3MzYgLyogV2ViQXNz
ZW1ibHlQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUFEMkZDQkY5MURCNThEQUQwMEIz
RTczNiAvKiBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBRDJGQ0MxRTFEQjU5Q0IyMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlSdW50aW1lRXJy
b3JDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUFEMkZDQkZCMURCNThEQUQw
MEIzRTczNiAvKiBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvclByb3RvdHlwZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQUQyRkNDMUYxREI1OUNCMjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5UnVudGltZUVy
cm9yUHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUQyRkNCRkQxREI1OERBRDAw
QjNFNzM2IC8qIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQUQyRkNDMjAxREI1OUNCMjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rv
ci5sdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUFEMkZDQkZGMURCNThEQUQwMEIzRTczNiAvKiBX
ZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBRDJGQ0MyMTFE
QjU5Q0IyMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5sdXQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUFEQkM1NEQ1MURGOEVBMkIwMDVCRjczOCAvKiBXZWJBc3NlbWJseVRvSlND
YWxsZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDdBMEUxNkY1Q0QwMEIzNDQ2MCAvKiBX
ZWJLaXRBdmFpbGFiaWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RENCOTczMTJFNTE5M0Yw
MDkxMTk0MCAvKiBXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUZFODBDMTk3MUQ3
NzVDREQwMDg1MTBDMCAvKiBDYXRjaFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTRFQzkw
QzE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDMkI2RDc1MzE4QTMzNzkzMDA0QTkzMDEgLyogV3JpdGVCYXJyaWVySW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZDODE1MEExNDA0M0JGNTAwQ0ZBNjAzIC8qIFdyaXRlQmFycmll
clN1cHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2ODhDQjE2MEVEMTJCNEUwMDFENjQ5RiAv
KiBYODZBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NTlFOTJFMUJEMTdGQTQwMDFB
QTQxMyAvKiB4eGQucGwgaW4gSGVhZGVycyAqLywKLQkJCQk3OUIxNzg4RTFEMzk5QjgwMDBCMUE1
NjcgLyogSklUTWF0aElDRm9yd2FyZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1MTUzOUI5MTJE
Qzk5NDUwMEVGN0FDNCAvKiBZYXJyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMzdBRDgzQzFEQTQ5
Mjg2MDBGM0Q0MTIgLyogRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQUQyRkNCRkYxREI1OERBRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0Qjg1MTJEQkEzMzcwMEE5RkU3QiAvKiBZYXJySW50
ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NzA0Qjg3MTJEQkEzMzcwMEE5RkU3QiAv
KiBZYXJySklULmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkI0NzY3RjFEOTlBRUFEMDA4RUE2Q0Ig
LyogR0NEZWZlcnJhbENvbnRleHRJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI4
ODEyREJBMzM3MDBBOUZFN0IgLyogWWFyclBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY3
MDRCOEExMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJQYXR0ZXJuLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkyNjJEODVCNzFDMEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjcwNEI0MzEyREI4QTgxMDBBOUZFN0IgLyogWWFyclN5
bnRheENoZWNrZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE3OUQzRUQ5QzUwNjRERDBBODQ2NkEz
QSAvKiBNb2R1bGVTY29wZURhdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCUQ5NzIyNzUyREM1NDQ1
OUI5MTI1QjUzOSAvKiBKU01vZHVsZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDczREE0
QTQ3NjRDNDVGRTg3MUIwNDg1IC8qIERlZmluZVByb3BlcnR5QXR0cmlidXRlcy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJOTVENDI2MUFGNEM4NENFMkFDQkFDOTgxIC8qIFRlbXBsYXRlUmVnaXN0cnlL
ZXlUYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC05MjU5LDYgKzkyNjIsNyBAQAogCQkJaXNhID0g
UEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7
CiAJCQlmaWxlcyA9ICgKKwkJCQkxQ0QxODc5MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdS
dWxlcyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZy
YW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC05NTAzLDIwICs5NTA3LDIwIEBACiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJRkVGMDQwNTExQUFFNjYy
RDAwQkQyOEIwIC8qIENvbXBhcmVBbmRTd2FwVGVzdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlG
RUNCOEIyNzFEMjVCQjg1MDA2RjI0NjMgLyogRnVuY3Rpb25PdmVycmlkZXNUZXN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUMyOUVDQjAzMTgwNEQwRUQwMEQyQ0JCNCAvKiBDdXJyZW50VGhpc0lu
c2lkZUJsb2NrR2V0dGVyVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMyMDMyODIwMTk4MTk3
OUQwMDg4QjQ5OSAvKiBDdXN0b21HbG9iYWxPYmplY3RDbGFzc1Rlc3QuYyBpbiBTb3VyY2VzICov
LAogCQkJCUMyODhCMkRFMThBNTREM0UwMDdCRTQwQiAvKiBEYXRlVGVzdHMubW0gaW4gU291cmNl
cyAqLywKLQkJCQk1QzRFOEU5NjFEQkVCRTYyMDAzNkYxRkMgLyogSlNPTlBhcnNlVGVzdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGRTBENEEwNjFBQjhERDBBMDAyRjU0QkYgLyogRXhlY3V0aW9u
VGltZUxpbWl0VGVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRUNCOEIyNzFEMjVCQjg1MDA2
RjI0NjMgLyogRnVuY3Rpb25PdmVycmlkZXNUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZF
MEQ0QTA5MUFCQTI0MzcwMDJGNTRCRiAvKiBHbG9iYWxDb250ZXh0V2l0aEZpbmFsaXplclRlc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzIxODFGQzIxOEE5NDhGQjAwMjVBMjM1IC8qIEpTRXhw
b3J0VGVzdHMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1QzRFOEU5NjFEQkVCRTYyMDAzNkYxRkMg
LyogSlNPTlBhcnNlVGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTdDNDE5NjFCOTdGQzRC
MDBGNEQ1OTggLyogUGluZ1BvbmdTdGFja092ZXJmbG93VGVzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk2NTU3MEY1QTFBQTRDM0VBMDA5QjNDMjMgLyogUmVncmVzczE0MTI3NS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUZFQjUxRjZDMUE5N0I2ODgwMDFGOTIxQyAvKiBSZWdyZXNzMTQxODA5Lm1t
IGluIFNvdXJjZXMgKi8sCi0JCQkJNTM0OTAyODUxQzcyNzZCNzAwMTJCQ0I4IC8qIFR5cGVkQXJy
YXlDVGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQwRjYxMDBBNEY4NTY3MDAwNUYwNjEg
LyogdGVzdGFwaS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJODZEMjIyMUExNjdFRjk0NDAwMjRDODA0
IC8qIHRlc3RhcGkubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MzQ5MDI4NTFDNzI3NkI3MDAxMkJD
QjggLyogVHlwZWRBcnJheUNUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtOTUzMyw3OCArOTUz
NywxMTkgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgK
IAkJCQkwRkZBNTQ5NzE2Qjg4MzUwMDBCM0E5ODIgLyogQTY0RE9wY29kZS5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQlGRTY0OTEzOTFENzhGM0FGMDBBNjk0RDQgLyogRXhjZXB0aW9uU2NvcGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQUQ0OTM3QzMxRERCRTYxNDAwNzdDODA3IC8qIEFic3RyYWN0
TW9kdWxlUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTVGMEY0MTREMTA2MzkwMEFD
NzY0OSAvKiBBYnN0cmFjdFBDLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUzNzBCNEY1MUJGMjYy
MDIwMDVDNDBGQyAvKiBBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnRCYXNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTZEMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJB
bGxvY2F0ZVN0YWNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQzNDIyQTY2MUMxNjI2NzUwMEUy
RUI5OCAvKiBCM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZF
Qzg1NkYxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckFyZy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkw
RjRERTFDRTFDNEMxQjU0MDA0RDZDMTEgLyogQWlyRml4T2J2aW91c1NwaWxscy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkVDODU3MTFCREFDREM3MDA4MEZGNzQgLyogQWlyQmFzaWNCbG9jay5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjA3MEE0QTFENTQzQTk1MDA2RTcyMzIgLyogTGFyZ2VB
bGxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNjE4MzI5MUM0NUJGMDcwMDcyNDUw
QiAvKiBBaXJDQ2FsbGluZ0NvbnZlbnRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1
NzMxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckNDYWxsU3BlY2lhbC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkVDODU3NTFCREFDREM3MDA4MEZGNzQgLyogQWlyQ29kZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkwRjYxODMyQjFDNDVCRjA3MDA3MjQ1MEIgLyogQWlyQ3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCURDNDU0QjhDMUQwMEU4MjIwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjQ1NzAzODFCRTQ0QzkxMDA2MkE2MjkgLyogQWlyRWxpbWlu
YXRlRGVhZENvZGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDNBQjI2QzcxQzFBNTM1QzAwRDgy
QUU2IC8qIEIzTWF0aEV4dHJhcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjYxODMyQzFDNDVC
RjA3MDA3MjQ1MEIgLyogQWlyRW1pdFNodWZmbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0
REUxQ0UxQzRDMUI1NDAwNEQ2QzExIC8qIEFpckZpeE9idmlvdXNTcGlsbHMuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMjYyRDg1QjYxQzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdp
c3RlclN0YWxscy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODU3ODFCREFDREM3MDA4MEZG
NzQgLyogQWlyR2VuZXJhdGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZERjY3RDYxRDlEQzQ0
MDAwMUI5ODI1IC8qIEFpcktpbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1OTMxQkRC
MUUxMDAwODBGRjc0IC8qIEFpckdlbmVyYXRlZC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MzQ4
NkJCQjFDMThFODQ1MDBGNkYzQUYgLyogSlNUeXBlZEFycmF5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGRUM4NTdCMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJIYW5kbGVDYWxsZWVTYXZlcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkVDODU3RDFCREFDREM3MDA4MEZGNzQgLyogQWlySW5zZXJ0
aW9uU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTdGMUJEQUNEQzcwMDgwRkY3NCAv
KiBBaXJJbnN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI2NzE4QkE0MUJFOTlGNzgwMDUyMDE3
QiAvKiBBaXJJdGVyYXRlZFJlZ2lzdGVyQ29hbGVzY2luZy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkwRkRGNjdENjFEOURDNDQwMDAxQjk4MjUgLyogQWlyS2luZC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkwRkUzNEMxOTFDNEIzOUFFMDAwM0E1MTIgLyogQWlyTG9nUmVnaXN0ZXJQcmVzc3VyZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjYxODMyRTFDNDVCRjA3MDA3MjQ1MEIgLyogQWlyTG93
ZXJBZnRlclJlZ0FsbG9jLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGREY3MDg1MUQzRjJDMjIw
MDkyNzQ0OSAvKiBBaXJMb3dlckVudHJ5U3dpdGNoLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBG
NjE4MzMwMUM0NUJGMDcwMDcyNDUwQiAvKiBBaXJMb3dlck1hY3Jvcy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkwRkIzODc4RjFCRkJDNDREMDBFM0FCMUUgLyogQWlyT3B0aW1pemVCbG9ja09yZGVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGOUNBQkM4MURCNTRBNzgwMDA4RTgzQiAvKiBBaXJQ
YWRJbnRlcmZlcmVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1ODMxQkRBQ0RDNzAw
ODBGRjc0IC8qIEFpclBoYXNlU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0NTcwM0Mx
QkU0NUYwQTAwNjJBNjI5IC8qIEFpclJlcG9ydFVzZWRSZWdpc3RlcnMuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEYzMzhERkQxQkVENTEyNzAwMTNDODhGIC8qIEFpclNpbXBsaWZ5Q0ZHLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGRUM4NTg3MUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJTcGVjaWFs
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTg5MUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJT
cGlsbEV2ZXJ5dGhpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1OEIxQkRBQ0RDNzAw
ODBGRjc0IC8qIEFpclN0YWNrU2xvdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjJCQkQ5RDFD
NUZGNDA1MDAyM0VGMjMgLyogQWlyU3RhY2tTbG90S2luZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkVDODU4RDFCREFDREM3MDA4MEZGNzQgLyogQWlyVG1wLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGRTBFNEFEMUMyNEM5NEEwMDJFMTdCNiAvKiBBaXJUbXBXaWR0aC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkVDODU5MDFCREFDREM3MDA4MEZGNzQgLyogQWlyVmFsaWRhdGUuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY5NjMwMzkxRDQxOTJDNjAwNTYwOUQ5IC8qIEFsbG9jYXRvckF0
dHJpYnV0ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QkQxMDdFQzM3NjAwNDI3QTQ4
IC8qIEFyZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzlBMjI4MzUxRDM1RDcxRTAwRDhF
MDY3IC8qIEFyaXRoUHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjc0M0JBQTE2Qjg4
MjQ5MDA5RjkyNzcgLyogQVJNNjREaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODZEM0IyQzMxMDE1NkJERTAwMjg2NUU3IC8qIEFSTUFzc2VtYmxlci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlFMzI4REFFNzFEMzhEMDA0MDAxQTI1MjkgLyogQnl0ZWNvZGVHZW5lcmF0b3JpZmlj
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVDMDI4NTAxNzE3OTVFMjAwMzUxRTM1IC8q
IEFSTXY3RGlzYXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1QzAyODVDMTcxNzk2
NjgwMDM1MUUzNSAvKiBBUk12N0RPcGNvZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4MzM1
QjcxNjM5QzFFNjAwMTQ0M0I1IC8qIEFycmF5QWxsb2NhdGlvblByb2ZpbGUuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJNTNGQTJBRTMxQ0YzODAzOTAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9h
ZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0E4
QUYzNDE3QURCNUYzMDA1QUIxNzQgLyogQXJyYXlCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZGQzk5RDQxODRFRTMxODAwOUMxMEFCIC8qIEFycmF5QnVmZmVyTmV1dGVyaW5nV2F0Y2hw
b2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0E4QUYzNjE3QURCNUYzMDA1QUIxNzQgLyog
QXJyYXlCdWZmZXJWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUJGMTA3RUMzNzYw
MDQyN0E0OCAvKiBBcnJheUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGQjQx
NTg0MUQ3OEZCNEMwMERGOEQwOSAvKiBBcnJheUNvbnZlbnRpb25zLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTUyQjc0QjRBMURDQzA0NjkwMDM0MTU3RCAvKiBBcnJheUl0ZXJhdG9yQWRhcHRpdmVX
YXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QkRBRUM4MTdGNEVBMTQwMEY2MTQw
QyAvKiBBcnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjM5
NDU0MTVEMDcwNTUwMDZBNTk3QyAvKiBBcnJheVByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMTQ3RjM5QzAxMDdFQzM3NjAwNDI3QTQ4IC8qIEFycmF5UHJvdG90eXBlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGMjRFNTQwMTdFQTlGNTkwMEFCQjIxNyAvKiBBc3NlbWJseUhlbHBlcnMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUI3MENGRTMxREI2OUU2NjAwRUMyM0Y5IC8qIEFzeW5j
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1QjcwQ0ZFMTFEQjY5
RTY2MDBFQzIzRjkgLyogQXN5bmNGdW5jdGlvblByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkwRjdDRjk1NjFEQzEyNThEMDA5OENDMTIgLyogQXRvbWljc09iamVjdC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkVDODRGRTFCREFDREFDMDA4MEZGNzQgLyogQjNBcmd1bWVudFJlZ1Zh
bHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTAwMUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0Jhc2ljQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEYzMzhFMUIxQkYyODZFQTAwMTND
ODhGIC8qIEIzQmxvY2tJbnNlcnRpb25TZXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2QjhB
RTIxQzRFRkUxNzAwOTY5MDUyIC8qIEIzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCURDOUEwQzIxMUQyRDlDQjQwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTBGMzM4REY5MUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxs
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MDUxQkRBQ0RBQzAwODBGRjc0IC8q
IEIzQ2hlY2tTcGVjaWFsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTA3MUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0NoZWNrVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MDkx
QkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCURDNjlC
OTlDMUQxNUY5MTIwMDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFQzg1MEIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbXV0YXRpdml0eS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkwRjMzOEUwQjFCRjAyNzZDMDAxM0M4OEYgLyogQjNDb21waWxhdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUwRDFCREFDREFDMDA4MEZGNzQgLyogQjND
b25zdDMyVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDM2RTU0NTQxQzQ2OEU3NzAwQjVB
RjczIC8qIEIzTGVnYWxpemVNZW1vcnlPZmZzZXRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RUM4NTBGMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkVDODUxMTFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTQzNDIyQTYyMUMxNThFNkEwMEUyRUI5OCAvKiBCM0NvbnN0
RmxvYXRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjMzOERGNTFCRTkzRDU1MDAxM0M4
OEYgLyogQjNDb25zdHJhaW5lZFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMzM4RTBE
MUJGMDI3NkMwMDEzQzg4RiAvKiBCM0RhdGFTZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTBGNkI4QUQ4MUM0RUREQTIwMDk2OTA1MiAvKiBCM0R1cGxpY2F0ZVRhaWxzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRUM4NUM1MUJFMTZGNUEwMDgwRkY3NCAvKiBCM0VmZmVjdHMuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY3MjVDQTcxQzUwM0RFRDAwQUQ5NDNBIC8qIEIzRWxpbWluYXRl
Q29tbW9uU3ViZXhwcmVzc2lvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2OTcxRUIxRDky
RjQyRDAwQkEwMkE1IC8qIEIzRmVuY2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjZC
OEFFNDFDNEVGRTE3MDA5NjkwNTIgLyogQjNGaXhTU0EuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEY3MjVDQUYxQzUwNkQzQjAwQUQ5NDNBIC8qIEIzRm9sZFBhdGhDb25zdGFudHMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZFQzg1MTUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xh
c3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MTgxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
R2VuZXJhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1QzIxQkUxNjdBMDAwODBGRjc0
IC8qIEIzSGVhcFJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCURDNjlCOTlDMUQxNUY5MTIw
MDJFM0MwMCAvKiBCM0luZmVyU3dpdGNoZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1
QjkxQkUxNDYyRjAwODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGREY2N0QzMUQ5QzZEMkEwMDFCOTgyNSAvKiBCM0tpbmQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNDM2RTU0NTQxQzQ2OEU3NzAwQjVBRjczIC8qIEIzTGVnYWxpemVNZW1vcnlPZmZzZXRz
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMzM4RTFEMUJGMjg2RUEwMDEzQzg4RiAvKiBCM0xv
d2VyTWFjcm9zLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQzMTlEQTAzMUMxQkU0MEEwMDFEMjYw
QiAvKiBCM0xvd2VyTWFjcm9zQWZ0ZXJPcHRpbWl6YXRpb25zLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGRUM4NTFEMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0xvd2VyVG9BaXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDNBQjI2QzcxQzFBNTM1QzAwRDgyQUU2IC8qIEIzTWF0aEV4dHJhcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUxRjFCREFDREFDMDA4MEZGNzQgLyogQjNNZW1vcnlW
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjMzOEUwRjFCRjAyNzZDMDAxM0M4OEYgLyog
QjNNb3ZlQ29uc3RhbnRzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMzM4RTEyMUJGMDI3NkMw
MDEzQzg4RiAvKiBCM09wYXF1ZUJ5cHJvZHVjdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZF
Qzg1MjExQkRBQ0RBQzAwODBGRjc0IC8qIEIzT3Bjb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRUM4NTIzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM09yaWdpbi5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlBNTU3MTRCRjFDRDgwNEE0MDAwNEQyQzYgLyogQ29uc29sZU9iamVjdC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwRjRERTFEMTFDNEQ3NjRCMDA0RDZDMTEgLyogQjNPcmlnaW5EdW1wLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTI1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BhdGNo
cG9pbnRTcGVjaWFsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTI3MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM1BhdGNocG9pbnRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1QjcwQ0ZF
MzFEQjY5RTY2MDBFQzIzRjkgLyogQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRUM4NTI5MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BoYXNlU2NvcGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMEYzNzMwOEMxQzBCRDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hp
bGRyZW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MkIxQkRBQ0RBQzAwODBGRjc0IC8q
IEIzUHJvY2VkdXJlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQzNDIyQTYyMUMxNThFNkEwMEUy
RUI5OCAvKiBCM0NvbnN0RmxvYXRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjcyNUNB
OTFDNTAzREVEMDBBRDk0M0EgLyogQjNQdXJlQ1NFLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQz
NDIyQTY2MUMxNjI2NzUwMEUyRUI5OCAvKiBCM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZFQzg1QkMxQkUxNDYyRjAwODBGRjc0IC8qIEIzUmVkdWNlU3RyZW5n
dGguY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1MzAxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
U3RhY2ttYXBTcGVjaWFsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTM0MUJEQUNEQUMw
MDgwRkY3NCAvKiBCM1Nsb3RCYXNlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2QjhB
REMxQzRFRkFDMzAwOTY5MDUyIC8qIEIzU1NBQ2FsY3VsYXRvci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkwRjMzRkNGNzFDMTM2RTI1MDAzMjNGNjcgLyogQjNTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQzg1MzAxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
U3RhY2ttYXBTcGVjaWFsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMzM4REYxMUJFOTNBRDEw
MDEzQzg4RiAvKiBCM1N0YWNrbWFwVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5NDk1
ODcxQzU3RjQ3NTAwNDEzQTQ4IC8qIEIzU3RhY2tTbG90LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRUM4NTM3MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1N3aXRjaENhc2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZFQzg1MzkxQkRBQ0RBQzAwODBGRjc0IC8qIEIzU3dpdGNoVmFsdWUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEY0NTcwNDAxQkU1ODRDQTAwNjJBNjI5IC8qIEIzVGltaW5nU2Nv
cGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05NjEzLDQyICs5NjU4LDQ2IEBACiAJCQkJMEZFQzg1
M0YxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVXNlQ291bnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRUM4NTQxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1ZhbGlkYXRlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGRUM4NTQzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1ZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTBGMzM4RTE0MUJGMDI3NkMwMDEzQzg4RiAvKiBCM1ZhbHVlS2V5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRUM4NTQ2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1ZhbHVlUmVwLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTBGMkJCRDk3MUM1RkYzRjUwMDIzRUYyMyAvKiBCM1Zhcmlh
YmxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMkJCRDk5MUM1RkYzRjUwMDIzRUYyMyAvKiBC
M1ZhcmlhYmxlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTNENDQ0REUxREFGMDlBMDAw
QjkyNzg0IC8qIEIzV2FzbUFkZHJlc3NWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MzQx
RkM3MDFEQUMzM0U1MDBFN0U0RDcgLyogQjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MjY3OEY4RTFBMDMxMDA5MDA2QTMwNkQgLyogQmFzaWNCbG9ja0xvY2F0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjRCMjcxMUE3ODRCQUYwMDZFNEU2NiAvKiBC
aW5hcnlTd2l0Y2guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyODA4NjMxMDdFQzExQTAwMTNF
N0IyIC8qIEJvb2xlYW5Db25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg2
NDEwN0VDMTFBMDAxM0U3QjIgLyogQm9vbGVhbk9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNDI4MDg2NTEwN0VDMTFBMDAxM0U3QjIgLyogQm9vbGVhblByb3RvdHlwZS5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQlBRDJGQ0JGNjFEQjU4REFEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlNZW1v
cnlQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREUyNkU5MDcxQ0I1REVGQjAwRDJC
RTgyIC8qIEJ1aWx0aW5FeGVjdXRhYmxlQ3JlYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
N0Q4MDFBNDE4ODBENjZFMDAyNkMzOUIgLyogQnVpbHRpbkV4ZWN1dGFibGVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTlFQTVDN0ExMTkwRjA4NDIwMDUwOEVCRSAvKiBCdW5kbGVQYXRoLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQzJGQ0FFMTAxN0E5QzI0RTAwMzRDNzM1IC8qIEJ5dGVjb2RlQmFz
aWNCbG9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDhGMjFBQTEwN0VDNTNBMDA0MkVDMkMg
LyogQnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTMyOERBRTcxRDM4
RDAwNDAwMUEyNTI5IC8qIEJ5dGVjb2RlR2VuZXJhdG9yaWZpY2F0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTcwOTRDNERFMUFFNDM5NTMwMDQxQTJFRSAvKiBCeXRlY29kZUludHJpbnNpY1Jl
Z2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTc5Qjc1OTc0MURGQTRDNjAwMDUyMTc0QyAv
KiBXYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzJGQ0FFMTIx
N0E5QzI0RTAwMzRDNzM1IC8qIEJ5dGVjb2RlTGl2ZW5lc3NBbmFseXNpcy5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQkwRjMzOEUwRDFCRjAyNzZDMDAxM0M4OEYgLyogQjNEYXRhU2VjdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlFMzI4REFFQTFEMzhEMDA1MDAxQTI1MjkgLyogQnl0ZWNvZGVS
ZXdyaXRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NUI4MzkyRjFCQUNBRDZBMDA0NEU4MjQg
LyogQ2FjaGVkUmVjb3ZlcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyODA4MkQxMDdFQzA1
NzAwMTNFN0IyIC8qIENhbGxEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjRCMjc5MUE3
OTU3QjIwMDZFNEU2NiAvKiBDYWxsRWRnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI5RDhE
RDBFRDIyMDVCMDBCODk2MTkgLyogQ2FsbEZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTE0
QUQ5MTE4MURDQTk3RkQwMDE0RjlGRSAvKiBNb2R1bGVQcm9ncmFtQ29kZUJsb2NrLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTYyRUM5QkI2MUI3RUIwN0MwMDMwM0FEMSAvKiBDYWxsRnJhbWVTaHVm
ZmxlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2MkQ3NTVENjFCODRGQjQ2MDAxODAxRkEg
LyogQ2FsbEZyYW1lU2h1ZmZsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjJENzU1RDUxQjg0
RkI0MDAwMTgwMUZBIC8qIENhbGxGcmFtZVNodWZmbGVyMzJfNjQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNjJENzU1RDQxQjg0RkIzRDAwMTgwMUZBIC8qIENhbGxGcmFtZVNodWZmbGVyNjQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEYwQjgzQjAxNEJDRjcxNjAwODg1QjRGIC8qIENhbGxMaW5r
SW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjkzMzI5RDE0Q0E3REMzMDA4NUYzQzYgLyog
Q2FsbExpbmtTdGF0dXMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQUQyRkNCRkUxREI1OERBRDAw
QjNFNzM2IC8qIFdlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJMEY2QjhBREMxQzRFRkFDMzAwOTY5MDUyIC8qIEIzU1NBQ2FsY3VsYXRvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk2Mjc2NzMyMzFCNjgwQzFFMDBGRDlGMkUgLyogQ2FsbE1vZGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEYzQjdFMkExOUExMUI4MDAwRDlCQzU2IC8qIENhbGxWYXJpYW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZFODBDMTk5MUQ3NzVGQkUwMDg1MTBDMCAvKiBDYXRj
aFNjb3BlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCURDMTdFODFBMUM5QzkxRTkwMDhBNkFCMyAv
KiBDQ2FsbEhlbHBlcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZERTg3RjkxREZEMEM3NjAw
NjRDMzkwIC8qIENlbGxDb250YWluZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFMDUwMjUx
QUE5MDk1NjAwRDMzQjMzIC8qIENsb25lZEFyZ3VtZW50cy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkxNDI4MDgzQTEwN0VDMDc1MDAxM0U3QjIgLyogQ0xvb3BTdGFjay5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5NjlBMDc5NjBFRDFEM0FFMDBGMUY2ODEgLyogQ29kZUJsb2NrLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCTE0QUQ5MTJEMURDQUFBQjAwMDE0RjlGRSAvKiBVbmxpbmtlZFByb2dyYW1D
b2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4Rjk0NDAxNjY3NjMzMDAwRDYxOTcx
IC8qIENvZGVCbG9ja0hhc2guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDOTdGMzMxODIwMjBE
NzAwMkM5QjI2IC8qIENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQkwRjMzOEUwRjFCRjAyNzZDMDAxM0M4OEYgLyogQjNNb3ZlQ29uc3RhbnRzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDhBMzEzMTdENDMyNkMwMENBMkM0MCAvKiBDb2RlQmxv
Y2tTZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc3RjE4MjExNjQwODhCMjAwNjQwQTQ3IC8q
IENvZGVDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjhGOTQ0NjE2Njc2NEYxMDBENjE5
NzEgLyogQ29kZU9yaWdpbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTk2NTYsOCArOTcwNSw4IEBA
CiAJCQkJODZCNTgyNjkxNEQyNzk3MDAwQTlDMzA2IC8qIENvZGVQcm9maWxpbmcuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY4Rjk0M0MxNjY3NjMxMzAwRDYxOTcxIC8qIENvZGVTcGVjaWFsaXph
dGlvbktpbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4Rjk0NDIxNjY3NjMzNTAwRDYxOTcx
IC8qIENvZGVUeXBlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGQTc2MjA0MURCOTI0MjYwMEI3
QTJGRCAvKiBDb2xsZWN0aW9uU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzEx
MDdFQzM3NjAwNDI3QTQ4IC8qIENvbW1vbklkZW50aWZpZXJzLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTBGMzNGQ0Y3MUMxMzZFMjUwMDMyM0Y2NyAvKiBCM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFt
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzA5RjJGMjE3QTBBQzJBMDA1MTJFOTggLyogQ29t
bW9uU2xvd1BhdGhzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1NTNBMzMxMTdBMUYxRUUwMDhD
RjZGMyAvKiBDb21tb25TbG93UGF0aHNFeGNlcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3RTVBM0E3MTc5NzQzMkQwMEU4OTNDMCAvKiBDb21waWxhdGlvblJlc3VsdC5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTk2NjYsMTIgKzk3MTUsMTEgQEAKIAkJCQkxNDZCMTZEODEyRUI1QjU5MDAx
QkVDMUIgLyogQ29uc2VydmF0aXZlUm9vdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVCNkE3
NEQxOEM2REJBNjAwRjExRTkxIC8qIENvbnNvbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTVGRDAwNzkxODlCMDUxMDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUE1NTcxNEJGMUNEODA0QTQwMDA0RDJDNiAvKiBDb25zb2xlT2JqZWN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTc4QjNCMUFBRUE3MUQwMDdDNzM2OSAvKiBDb25zdGFu
dE1vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyODA4MkUxMDdFQzA1NzAwMTNFN0IyIC8q
IENvbnN0cnVjdERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3RDIzRjExODkxQjVCNDAw
MzFDN0ZBIC8qIENvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTJCNzE3QjUxQTA1OTdFMTAwN0FGNEYzIC8qIENvbnRyb2xGbG93UHJvZmlsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQTVGQzg0QjMxRDFEREFEOTAwNkI1QzQ2IC8qIERlYnVnZ2VyTG9jYXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY2MTgzMzAxQzQ1QkYwNzAwNzI0NTBCIC8qIEFp
ckxvd2VyTWFjcm9zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJBMTExMjQ1MTkyRkNFNzkwMDVF
RTE4RCAvKiBDdXN0b21HZXR0ZXJTZXR0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjJFM0Q1
RjAxQjhEMEI3MzAwQjg2OEJCIC8qIERhdGFGb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEYyQjY2REUxN0I2QjVBQjAwQTdBRTNGIC8qIERhdGFWaWV3LmNwcCBpbiBTb3VyY2VzICovLApA
QCAtOTY4MSwxNSArOTcyOSwxNSBAQAogCQkJCTE0N0YzOUM2MTA3RUMzNzYwMDQyN0E0OCAvKiBE
YXRlUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MjgwODIzMTA3RUMwMkMwMDEz
RTdCMiAvKiBEZWJ1Z2dlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDk1NTlFRTBERENEREY3
MDA2NDgwODcgLyogRGVidWdnZXJDYWxsRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYz
MzhFMUQxQkYyODZFQTAwMTNDODhGIC8qIEIzTG93ZXJNYWNyb3MuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQTVGQzg0QjMxRDFEREFEOTAwNkI1QzQ2IC8qIERlYnVnZ2VyTG9jYXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQTVBMUEwOTUxRDhDQjM0MTAwNEMyRUI4IC8qIERlYnVnZ2VyUGFy
c2VEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkQ0REREMTk4MzJEMzQwMDdENEIxOSAv
KiBEZWJ1Z2dlclNjb3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJBN0E1OEVGMTgwOEE0QzQw
MDIwQkRGNyAvKiBEZWZlckdDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzcxMkRFMTdDRDg3
NzkwMDhDQzkzQyAvKiBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMTQ3MzQxRUExREMyQ0YyNTAwQUEyOUJBIC8qIEV4ZWN1dGFibGVCYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZFNTA2ODY3MUFFMjVFMjgwMDA5REFCNyAvKiBEZWZlcnJlZFNv
dXJjZUR1bXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5NjMwM0IxRDQxOTJDQjAwNTYwOUQ5
IC8qIERlc3RydWN0aW9uTW9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzdBNDIzRDE3QTBC
QkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
NTVDMTk0MTcyNzZFNDYwMENFQUJGRCAvKiBERkdBYnN0cmFjdFZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCUZFMzE4RkRGMUNBQzk4MjcwMERGQ0M1NCAvKiBFQ01BU2NyaXB0U3BlY0ludGVy
bmFsRnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDNFNDAxMUI2MThBQUYwMEM4
MEUxRSAvKiBERkdBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEYxOEQzQ0YxQjU1QTZFMDAwMkM1QzlGIC8qIERGR0FkYXB0aXZl
U3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJERDgxMTFBQjNE
OEJFMDBCQkI4RTggLyogREZHQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTk2OTksNzYgKzk3NDcsNjEgQEAKIAkJCQlBN0Q5QTI5NDE3QTBCQzc0MDBFRTI2
MTggLyogREZHQXRUYWlsQWJzdHJhY3RTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjY2
NkVDNjE4MzU2NzJCMDBEMDE3RjEgLyogREZHQXZhaWxhYmlsaXR5LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGMkI5Q0UyMTlEMEJBN0QwMEIxRDFCNSAvKiBERkdBdmFpbGFiaWxpdHlNYXAuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEY3MjVDQTcxQzUwM0RFRDAwQUQ5NDNBIC8qIEIzRWxpbWlu
YXRlQ29tbW9uU3ViZXhwcmVzc2lvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3MTRDQTQx
NkVBOTJGMDAwRjNFQkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTdEODlDRjIxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jhc2ljQmxvY2su
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEODlDRjMxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Js
b2NrSW5zZXJ0aW9uU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQkYxNThDMTlCN0E1MzEw
MDY5NUREMCAvKiBERkdCbG9ja1NldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkVDOURDNDEz
MjhERjgyMDAyQjJBRDcgLyogREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZEODJFMjExNDE3MkNFMzAwMTc5Qzk0IC8qIERGR0NhcGFiaWxpdGllcy5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQkxNDM4NkE3NDFERDY5ODk1MDA4NjUyQzQgLyogRGlyZWN0RXZhbEV4ZWN1
dGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGRkM5NTcxNEVGOTBBMDAwQzcyNTMyIC8q
IERGR0NGQVBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGM0IzQTI3MTU0NEM5OTUwMDNF
RDBGRiAvKiBERkdDRkdTaW1wbGlmaWNhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGOUQzNjk0MUFFOUNDMzMwMDBENERGQiAvKiBERkdDbGVhblVwUGhhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTc3QTQyM0YxN0EwQkJGRDAwQThEQjgxIC8qIERGR0Nsb2JiZXJpemUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTc3QTQyNDExN0EwQkJGRDAwQThEQjgxIC8qIERGR0Nsb2Ji
ZXJTZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYzQzFGMUExQjg2OEU3OTAwQUJCMDhCIC8q
IERGR0Nsb2JiZXJzRXhpdFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTc5QjAwQ0JDMUM2
QUIwN0UwMDg4QzY1RCAvKiBQcm94eUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGMDQzOTZEMUIwM0RDMEIwMDk1OThCNyAvKiBERkdDb21iaW5lZExpdmVuZXNzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRjBGMTlEMTZCNzJBMDgwMDVERjk1QiAvKiBERkdDb21tb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQTBBMzExNzBENDBCRjAwQkI3MjJDIC8qIERGR0NvbW1v
bkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYzOEIwMTcxN0NGRTc1NTAwQjE0NEQzIC8q
IERGR0NvbXBpbGF0aW9uS2V5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMzhCMDE5MTdDRkU3
NTUwMEIxNDREMyAvKiBERkdDb21waWxhdGlvbk1vZGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
REUyNkU5MDcxQ0I1REVGQjAwRDJCRTgyIC8qIEJ1aWx0aW5FeGVjdXRhYmxlQ3JlYXRvci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjNCM0ExQTE1M0U2OEYyMDAzRUQwRkYgLyogREZHQ29uc3Rh
bnRGb2xkaW5nUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFRDY3QjkxQjI2MjU2RDAw
NjZDRTE1IC8qIERGR0NvbnN0YW50SG9pc3RpbmdQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkJFMEY3MjE2QzFEQjAzMDA4MkM1RTggLyogREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBN0Q4OUNGNTE3QTBCOENDMDA3NzNBRDggLyogREZHQ3JpdGlj
YWxFZGdlQnJlYWtpbmdQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjYxODMyOTFDNDVC
RjA3MDA3MjQ1MEIgLyogQWlyQ0NhbGxpbmdDb252ZW50aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGRkZDOTU5MTRFRjkwQTYwMEM3MjUzMiAvKiBERkdDU0VQaGFzZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjJGQzc3MjE2RTEyRjcxMDAzOEQ5NzYgLyogREZHRENFUGhhc2UuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEYzMzhFMTIxQkYwMjc2QzAwMTNDODhGIC8qIEIzT3BhcXVlQnlw
cm9kdWN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkRGNjdEMzFEOUM2RDJBMDAxQjk4MjUg
LyogQjNLaW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOEYyQjk5MTcyRjA0RkYwMDdEQkRB
NSAvKiBERkdEZXNpcmVkSWRlbnRpZmllcnMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQUQ0OTM3
QzMxRERCRTYxNDAwNzdDODA3IC8qIEFic3RyYWN0TW9kdWxlUmVjb3JkLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUMyQzBGN0NEMTdCQkZDNUIwMDQ2NEZFNCAvKiBERkdEZXNpcmVkVHJhbnNpdGlv
bnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFODUzNEIxNzIzQ0RBNTAwQjYxOEY1IC8qIERG
R0Rlc2lyZWRXYXRjaHBvaW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMjk4MUZEODE3QkFF
RTRCMDBBM0JDOTggLyogREZHRGVzaXJlZFdlYWtSZWZlcmVuY2VzLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCUFEMkZDQkU4MURCNThEQUQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5UnVudGltZUVy
cm9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzY0MTU5MUExQ0MwMDRDQjlGRiAvKiBE
RkdEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1QTEyNzMxOTJEOUZERjAw
ODc2NEEzIC8qIERGR0RvZXNHQy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMzIyRTVBMjFEQTY0
NDM5MDA2RTc3MDkgLyogREZHRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkQzQzgyNjE0MTE1RDQwMDBGRDgxQ0IgLyogREZHRHJpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRjBGMTlFMTZCNzJBMEIwMDVERjk1QiAvKiBERkdFZGdlLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTUzNTU1NzE2MUQ5REZBMzIwMDZENTgzQiAvKiBXYXNtTWVtb3J5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGOEYxNDMzMUFERjA5MDEwMEVENzkyQyAvKiBERkdFcG9j
aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkJDMEFFNzE0OTZDN0M0MDBENEZCREQgLyogREZH
RXhpdFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc4QTk3NzQxNzk3MzhCODAwOURG
NzQ0IC8qIERGR0ZhaWxlZEZpbmFsaXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzhBOTc3
NjE3OTczOEI4MDA5REY3NDQgLyogREZHRmluYWxpemVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGMkJEQzE1MTUxQzVENEQwMENEODkxMCAvKiBERkdGaXh1cFBoYXNlLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTBGNjE4MzJDMUM0NUJGMDcwMDcyNDUwQiAvKiBBaXJFbWl0U2h1ZmZsZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkwRjIwMTc3RjFEQ0FEQzMzMDBFQTU5NTAgLyogREZHRmxvd0lu
ZGV4aW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOUQzMzk2MTdGRkM0RTYwMDczQzJCQyAv
KiBERkdGbHVzaGVkQXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEODlDRjcxN0EwQjhDQzAw
NzczQUQ4IC8qIERGR0ZsdXNoRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjlDQzg4
MTkzQUM2MEEwMDQ1NzU5RSAvKiBERkdGcm96ZW5WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4NkVDOURDNzEzMjhERjgyMDAyQjJBRDcgLyogREZHR3JhcGguY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEY5NTJBQTIxREY3ODYwRDAwRTA2RkJEIC8qIFZpc2l0UmFjZUtleS5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQkwRjdGOTg4QjFEOTU5NkM1MDBGNEYxMkUgLyogREZHU3RvcmVCYXJyaWVy
Q2x1c3RlcmluZ1BoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkZDQ0Y5MThBNjAwNzAw
MDFBMjdGOCAvKiBERkdHcmFwaFNhZmVwb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkIx
NzY2MDE5NkI4RjlFMDA5MTA1MkEgLyogREZHSGVhcExvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTE0QUQ5MTJFMURDQUFBQjAwMDE0RjlGRSAvKiBVbmxpbmtlZE1vZHVsZVByb2dyYW1D
b2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDODQxNjgxQkE4QzMyMTAwNjE4MzdE
IC8qIERGR0luZmVycmVkVHlwZUNoZWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3MDREOTA1
MTdBMEJBQTgwMDZCQTU1NCAvKiBERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjNCRDFCNzFCODk2QTA3MDA1OThBQTYgLyogREZHSW5zZXJ0aW9uU2V0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGMzAwQjdCMThBQjFCMTQwMEE2RDcyRSAvKiBERkdJbnRl
Z2VyQ2hlY2tDb21iaW5pbmdQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjg5OEYzMTFC
Mjc2ODlGMDA4M0EzM0MgLyogREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZDOTdGM0QxODIwMjExOTAwMkM5QjI2IC8qIERGR0ludmFsaWRh
dGlvblBvaW50SW5qZWN0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRkUxMjIwMjgx
QkU3RjU5MTAwMzlFNkYyIC8qIEpJVEFkZEdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkVBMEEzMzE3MEQ0MEJGMDBCQjcyMkMgLyogREZHSklUQ29kZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NkVDOURDQjEzMjhERjgyMDAyQjJBRDcgLyogREZHSklUQ29tcGlsZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTc4QTk3NzgxNzk3MzhCODAwOURGNzQ0IC8qIERGR0pJVEZpbmFs
aXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkM5N0YzRjE4MjAyMTE5MDAyQzlCMjYgLyog
REZHSnVtcFJlcGxhY2VtZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZFQTBDNDAyMUNERDdE
MUQwMDQ4MTk5MSAvKiBGdW5jdGlvbldoaXRlbGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NzNBNTM1QTE3OTlDRDVEMDAxNzBDMTkgLyogREZHTGF6eUpTVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNTNGRDA0RDMxRDdBQjI3NzAwMzI4N0QzIC8qIFdhc21DYWxsaW5nQ29udmVudGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2MkYyQUEzNzFCMEJFREUzMDA2MTBDN0EgLyogREZH
TGF6eU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEOUEyOTcxN0EwQkM3NDAwRUUyNjE4
IC8qIERGR0xJQ01QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3OUM0QjE1RDFCQTIxNThG
MDBGRDU5MkUgLyogREZHTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25QaGFzZS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTk3NzksMzggKzk4MTIsMjkgQEAKIAkJCQkwRjU4NzRFRDE5NEZFQjEy
MDBBQUIyQzEgLyogREZHTWF5RXhpdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjE3MjVGRjFC
NDg3MTlBMDBBQzNBNTUgLyogREZHTWluaWZpZWRHcmFwaC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRjJCREM0RDE1MjI4MTg2MDBDRDg5MTAgLyogREZHTWluaWZpZWROb2RlLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCTE0NzM0MUU1MURDMkNFOTYwMEFBMjlCQSAvKiBOYXRpdmVFeGVjdXRhYmxl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOEYxNDM1MUFERjA5MDEwMEVENzkyQyAvKiBERkdN
b3ZIaW50UmVtb3ZhbFBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjJDRDVCMUI2MUE0
RjgwMDQ5NTVBOCAvKiBERkdNdWx0aUdldEJ5T2Zmc2V0RGF0YS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBNzM3ODEwRDE3OTlFQTJFMDA4MTc1MzMgLyogREZHTmF0dXJhbExvb3BzLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUFEMkZDQzMwMURCODNENDkwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTc5QjAwQ0JFMUM2QUIwN0UwMDg4QzY1RCAvKiBQcm94
eU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk3OTJDQjM0OTFDNEVFRDVDMDBEMTNBRjMg
LyogUENUb0NvZGVPcmlnaW5NYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMEYxOUMxNkI3
MkEwMzAwNURGOTVCIC8qIERGR05vZGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZCMzg3OEYx
QkZCQzQ0RDAwRTNBQjFFIC8qIEFpck9wdGltaXplQmxvY2tPcmRlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkwRjIwMTc4QTFEQ0I5NDI2MDBFQTU5NTAgLyogREZHTm9kZUFic3RyYWN0VmFsdWVQ
YWlyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQTU4MUJBMTUwRTk1MkMwMEI5QTJEOSAvKiBE
RkdOb2RlRmxhZ3MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEYyMDE3ODYxRENBRTE0QzAwRUE1
OTUwIC8qIERGR05vZGVGbG93UHJvamVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjVE
MDg1RDFCOENGOTlEMDAxMTQzQjQgLyogREZHTm9kZU9yaWdpbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjJCOUNFNjE5RDBCQTdEMDBCMUQxQjUgLyogREZHT2JqZWN0QWxsb2NhdGlvblNpbmtp
bmdQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCOUNFODE5RDBCQTdEMDBCMUQxQjUg
LyogREZHT2JqZWN0TWF0ZXJpYWxpemF0aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
NkVDOURDRjEzMjhERjgyMDAyQjJBRDcgLyogREZHT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQk5OThFRDY3NDFCRUQ3MEFDMDBERDgwMTcgLyogUmVtb3RlQ29udHJvbGxhYmxlVGFy
Z2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDg5Q0ZEMTdBMEI4Q0MwMDc3M0FEOCAvKiBE
RkdPU1JBdmFpbGFiaWxpdHlBbmFseXNpc1BoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RDgyRTU2MTQxREFGMDgwMDE3OUM5NCAvKiBERkdPU1JFbnRyeS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkQ4QTMyNTE3RDUxRjU3MDBDQTJDNDAgLyogREZHT1NSRW50cnlwb2ludENyZWF0aW9u
UGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDMDk3OTExNDZBNkY3MTAwQ0YyNDQyIC8q
IERGR09TUkV4aXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyMzVCRUIxNzE3OEU3MzAwNjkw
QzdGIC8qIERGR09TUkV4aXRCYXNlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGREU4N0ZEMURG
RTZFNTQwMDY0QzM5MCAvKiBTcGFjZVRpbWVTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZDMDk3OTIxNDZBNkY3MzAwQ0YyNDQyIC8qIERGR09TUkV4aXRDb21waWxlci5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkwRjRERTFEMTFDNEQ3NjRCMDA0RDZDMTEgLyogQjNPcmlnaW5EdW1w
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZFM0EwNkIxMUMxMENCODQwMDM5MEZERCAvKiBKSVRC
aXRBbmRHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDMDk3NzYxNDY5NDNCMDAw
Q0YyNDQyIC8qIERGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGQzA5NzcyMTQ2OTNBRjkwMENGMjQ0MiAvKiBERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQlEQzIxNDMwODFDQTMyRTU4MDAwQTg4NjkgLyogSUNTdGF0cy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjcwMjVBOTE3MTRCMEZBMDAzODJDMEUgLyogREZHT1NSRXhp
dENvbXBpbGVyQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMzkyQzg5MUI0NjE4ODQw
MDg0NDcyOCAvKiBERkdPU1JFeGl0RnV6ei5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVGQzlB
QTE2ODFBM0IzMDA1NjdGNTMgLyogREZHT1NSRXhpdEp1bXBQbGFjZWhvbGRlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjIzNUJFRDE3MTc4RTczMDA2OTBDN0YgLyogREZHT1NSRXhpdFByZXBh
cmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTE0NzM0MUUzMURDMkNFOTYwMEFBMjlCQSAv
KiBGdW5jdGlvbkV4ZWN1dGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2MjM3OTcxQUU0
NUNBNzAwRDQwMkVBIC8qIERGR1BoYW50b21JbnNlcnRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkZGQzk1QjE0RUY5MEFEMDBDNzI1MzIgLyogREZHUGhhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEYyQjlDRUExOUQwQkE3RDAwQjFEMUI1IC8qIERGR1BoaUNoaWxkcmVuLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtOTgyMSwxOCArOTg0NSwxNiBAQAogCQkJCTBGMkI5Q0VDMTlE
MEJBN0QwMEIxRDFCNSAvKiBERkdQcm9tb3RlZEhlYXBMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkIxNzY2MjE5NkI4RjlFMDA5MTA1MkEgLyogREZHUHVyZVZhbHVlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGM0ExQkY5MUE5RUNCN0QwMDBERTAxQSAvKiBERkdQdXRTdGFja1Np
bmtpbmdQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBRDJGQ0JFQTFEQjU4REFEMDBCM0U3
MzYgLyogSlNXZWJBc3NlbWJseVRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkZDQ0ZC
MThBNjAwNzAwMDFBMjdGOCAvKiBERkdTYWZlcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODZFQzlERDIxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg2ODgwRjFGMTQzMjhCQjkwMEIwOEQ0MiAvKiBERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2ODgwRjREMTQzNTNCMjEwMEIwOEQ0MiAv
KiBERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTE0NzM0MUU2MURD
MkNFOTYwMEFBMjlCQSAvKiBQcm9ncmFtRXhlY3V0YWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRjY4MkZCMjE5QkNCMzY0MDBGQTNCQUQgLyogREZHU1NBQ2FsY3VsYXRvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBN0Q4OUNGRjE3QTBCOENDMDA3NzNBRDggLyogREZHU1NBQ29udmVyc2lv
blBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzIwQ0I5MTg1NTZBMzUwMEM5RTk1NCAv
KiBERkdTU0FMb3dlcmluZ1BoYXNlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUFEMkZDQkYwMURC
NThEQUQwMEIzRTczNiAvKiBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY5RkI0RjQxN0ZDQjkxNzAwQ0I2N0Y4IC8qIERGR1N0YWNrTGF5b3V0
UGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0RjI5REYxOEI2QUQxQzAwNTdCQzE1IC8q
IERGR1N0YXRpY0V4ZWN1dGlvbkNvdW50RXN0aW1hdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTBGN0Y5ODhCMUQ5NTk2QzUwMEY0RjEyRSAvKiBERkdTdG9yZUJhcnJpZXJDbHVzdGVy
aW5nUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RTMyNjMxQjA1QUIwNDAwODAxRUQ1
IC8qIERGR1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGQzIwQ0I1MTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGODkzQkRCMTkzNkUyM0MwMDEyMTFGNCAvKiBERkdTdHJ1
Y3R1cmVBYnN0cmFjdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTg0MiwxMSArOTg2NCw5
IEBACiAJCQkJMEZEOEEzMjcxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RpZXJVcENoZWNrSW5qZWN0
aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEOEEzMjkxN0Q1MUY1NzAwQ0EyQzQw
IC8qIERGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGRDhBMzJCMTdENTFGNTcwMENBMkM0MCAvKiBERkdUb0ZUTEZvck9TUkVudHJ5RGVm
ZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGOUIxREI0
MUMwRTQyQTUwMEU1QkZEMiAvKiBGVExPdXRwdXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZF
NzIxMUQxOTNCOUM1OTAwMzFGNkVEIC8qIERGR1RyYW5zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY2Mzk0NDAxNUM3NUYxRDAwNkE1OTdDIC8qIERGR1R5cGVDaGVja0hvaXN0aW5nUGhh
c2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCRTBGNzYxNkMxREIwRjAwODJDNUU4IC8qIERG
R1VuaWZpY2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTUzOThGQUMxQzc1MERB
NjAwNjBBOTYzIC8qIEhlYXBQcm9maWxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjM0QjE0
OTE2RDQyMDEwMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjNCM0EyQjE1NDc1MDAwMDAzRUQwRkYgLyogREZHVmFsaWRhdGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEYyQkRDNEYxNTIyOEJGMzAwQ0Q4OTEwIC8qIERGR1ZhbHVlU291cmNlLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtOTg1NCw0NyArOTg3NCw1MiBAQAogCQkJCTBGRTI1NEY2MUFCREREMjIw
MEE3QzZEMiAvKiBERkdWYXJhcmdzRm9yd2FyZGluZ1BoYXNlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGNkU4NDVBMTkwMzBCRUYwMDU2Mjc0MSAvKiBERkdWYXJpYWJsZUFjY2Vzc0RhdGEuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEREJGQjUxNjY2RUVEODAwQzU1RkVGIC8qIERGR1Zhcmlh
YmxlQWNjZXNzRGF0YUR1bXAuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMTQzODZBNzgxREQ2OTg5
QzAwODY1MkM0IC8qIEluZGlyZWN0RXZhbEV4ZWN1dGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJMEY5NDk1ODcxQzU3RjQ3NTAwNDEzQTQ4IC8qIEIzU3RhY2tTbG90LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGMkJEQzUxMTUyMjhGRkQwMENEODkxMCAvKiBERkdWYXJpYWJsZUV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUFEMkZDQkYyMURCNThEQUQwMEIzRTczNiAvKiBXZWJBc3Nl
bWJseUluc3RhbmNlUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkJEQzRBMTUy
MjgwOUEwMENEODkxMCAvKiBERkdWYXJpYWJsZUV2ZW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGRkZDOTVGMTRFRjkwQkIwMEM3MjUzMiAvKiBERkdWaXJ0dWFsUmVnaXN0ZXJBbGxv
Y2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDOTdGNDExODIwMjExOTAwMkM5
QjI2IC8qIERGR1dhdGNocG9pbnRDb2xsZWN0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZEQjJDRTcxNzQ4MzBBMjAwN0IzQzFCIC8qIERGR1dvcmtsaXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGRTA1MDE3MUFBOTA5MTEwMEQzM0IzMyAvKiBEaXJlY3RBcmd1bWVudHMuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEYyQkJEOUQxQzVGRjQwNTAwMjNFRjIzIC8qIEFpclN0YWNr
U2xvdEtpbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFMDUwMTUxQUE5MDkxMTAwRDMzQjMz
IC8qIERpcmVjdEFyZ3VtZW50c09mZnNldC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjJFQkJB
QjFERURGOTUwMDA5OTAzNjkgLyogRGlyZWN0RXZhbENvZGVDYWNoZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkxNDM4NkE3NDFERDY5ODk1MDA4NjUyQzQgLyogRGlyZWN0RXZhbEV4ZWN1dGFibGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDMzNzAxNjVEQkI5MDAwNUFEMzg3IC8qIERpc2Fz
c2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMzVDQTE1NTFEQkMzQTVGMDBGODM1MTYg
LyogRE9NSklUQWJzdHJhY3RIZWFwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzQkZEMEJCMURB
RjgwODcwMDY1REVBMiAvKiBET01KSVRBY2Nlc3NDYXNlUGF0Y2hwb2ludFBhcmFtcy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlFMzVDQTE1MzFEQkMzQTVDMDBGODM1MTYgLyogRE9NSklUSGVhcFJh
bmdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3MDQ0N0VEMTdBMEJENzAwMEY1ODk4RSAvKiBE
dW1wQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRTMxOEZERjFDQUM5ODI3MDBERkND
NTQgLyogRUNNQVNjcmlwdFNwZWNJbnRlcm5hbEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyQTgzNjM4NTE4RDdEMEVFMDAwMEVCQ0MgLyogRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5OUU0NUEyNTE4QTFCMjU5MDAyNkQ4OEYgLyogRW5jb2Rl
ZFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUM3MTA3RUMzNzYwMDQyN0E0OCAv
KiBFcnJvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlDODEwN0VDMzc2MDA0MjdBNDgg
LyogRXJyb3JDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBRDJGQ0JFQzFEQjU4
REFEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGRUI1OEMxNDE4N0I4QjE2MDA5OEVGMEIgLyogRXJyb3JIYW5kbGlu
Z1Njb3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUM5MTA3RUMzNzYwMDQyN0E0OCAv
KiBFcnJvckluc3RhbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUNBMTA3RUMzNzYw
MDQyN0E0OCAvKiBFcnJvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxNEFEOTEx
NzFEQ0E5N0ZEMDAxNEY5RkUgLyogRXZhbENvZGVCbG9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkxNDczNDFFMjFEQzJDRTk2MDBBQTI5QkEgLyogRXZhbEV4ZWN1dGFibGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTU0OTgyMDMxODkxRDBCMDAwODFFNUI4IC8qIEV2ZW50TG9vcC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGRTFDMEZGRjFCMTk0RkQxMDBCNTNGQ0EgLyogRXhjZXB0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUZFODBDMTlCMUQ3NzZBOTgwMDg1MTBDMCAvKiBFeGNlcHRp
b25FdmVudExvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMTJERTBGMTk3OUQ1RkQw
MDA2RkY0RSAvKiBFeGNlcHRpb25GdXp6LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCURDRjNENTY5
MUNEMjk0NkQwMDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMTQyOUQ4NzgwRUQyMUFDRDAwQjg5NjE5IC8qIEV4Y2VwdGlvbkhlbHBlcnMuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRkU2NDkxMzkxRDc4RjNBRjAwQTY5NEQ0IC8qIEV4Y2VwdGlvblNj
b3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjA1NEY5MUFDMzVCNDQwMEU1QkU1NyAvKiBF
eGVjdXRhYmxlQWxsb2NhdGlvbkZ1enouY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdCNDhGNDkw
RUU4OTM2RjAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODZEQjY0NjQwRjk1QzZGQzAwRDdEOTIxIC8qIEV4ZWN1dGFibGVBbGxvY2F0b3JGaXhl
ZFZNUG9vbC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxNDczNDFFQTFEQzJDRjI1MDBBQTI5QkEg
LyogRXhlY3V0YWJsZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1NkExRDUxNTAwMUNG
NDAwMjk5MkIxIC8qIEV4ZWN1dGlvbkNvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYw
MzMyQzAxOEFERkFFMTAwNUY5NzlBIC8qIEV4aXRpbmdKSVRUeXBlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGQjEwNTg1MTY3NTQ4MEYwMEY4QUI2RSAvKiBFeGl0S2luZC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkwRjU1MTNBODFENUE2OENEMDBDMzJCRDggLyogRnJlZUxpc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZFQTBBMUMxNzA4QjAwNzAwQkI3MjJDIC8qIEZUTEFic3RyYWN0SGVh
cC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk3OUEwOTA3RjFENzY4NDY1MDA4Qjg4OUIgLyogSGFz
aE1hcEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQTBBMUUxNzA4QjAwNzAwQkI3MjJD
IC8qIEZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5
MzI3NEQxQzFGNjZBQTAwQ0Y2NTY0IC8qIEdQUkluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY0ODUzMjcxODdERkRFQzAwODNCNjg3IC8qIEZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRUEwQTA5MTcwNTEzREIwMEJCNzIyQyAvKiBGVExDYXBhYmlsaXRp
ZXMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYzMzhFMUIxQkYyODZFQTAwMTNDODhGIC8qIEIz
QmxvY2tJbnNlcnRpb25TZXQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYyRUJCQUIxREVERjk1
MDAwOTkwMzY5IC8qIERpcmVjdEV2YWxDb2RlQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZFQTBBMjcxNzA5NjIzQjAwQkI3MjJDIC8qIEZUTENvbW1vblZhbHVlcy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkwRkIzODc5MjFCRkQzMUExMDBFM0FCMUUgLyogRlRMQ29tcGlsZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlFMzIyRTVBNjFEQTY0NEE4MDA2RTc3MDkgLyogRlRMRE9NSklUUGF0
Y2hwb2ludFBhcmFtcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjlENEMwQzFDM0UxQzExMDA2
Q0Q5ODQgLyogRlRMRXhjZXB0aW9uVGFyZ2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjM1
QkQzMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExFeGl0QXJndW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEYyMzVCRDUxNzE3OEUxQzAwNjkwQzdGIC8qIEZUTEV4aXRBcmd1bWVudEZvck9wZXJh
bmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyQjlDRjQxOUQwQkFDMTAwQjFEMUI1IC8qIEZU
TEV4aXRQcm9wZXJ0eVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTkwMywxMCArOTkyOCw3
IEBACiAJCQkJQTdGMjk5NkIxN0EwQkI2NzAwMTA0MTdBIC8qIEZUTEZhaWwuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZEOEEzMTkxN0Q1MUYyMjAwQ0EyQzQwIC8qIEZUTEZvck9TUkVudHJ5SklU
Q29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVBMEEwRDE3MDUxM0RCMDBCQjcyMkMgLyog
RlRMSklUQ29kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjZCOEFFMjFDNEVGRTE3MDA5Njkw
NTIgLyogQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc4QTk3
ODAxNzk3MzhENTAwOURGNzQ0IC8qIEZUTEpJVEZpbmFsaXplci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQkwRjcyNUNBRjFDNTA2RDNCMDBBRDk0M0EgLyogQjNGb2xkUGF0aENvbnN0YW50cy5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlGRTE4N0EwRTFDMDMwRDY0MDAzOEJCQ0EgLyogSklURGl2R2Vu
ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQjRGQjczMUJDODQzMTQwMDI1Q0E1QSAv
KiBGVExMYXp5U2xvd1BhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4RjJCOTUxNzJFMDRB
MDAwN0RCREE1IC8qIEZUTExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDRUZBREYxODA3
MzhDMDAwNDcyQ0U0IC8qIEZUTExvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTkxNSw5
NCArOTkzNyw4OCBAQAogCQkJCTBGRDhBMzFCMTdENTFGMjIwMENBMkM0MCAvKiBGVExPU1JFbnRy
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjIzNUJEQzE3MTc4RTFDMDA2OTBDN0YgLyogRlRM
T1NSRXhpdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjIzNUJERjE3MTc4RTFDMDA2OTBDN0Yg
LyogRlRMT1NSRXhpdENvbXBpbGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE1NTE2NUQyMUJE
RjBCOTgwMDNCNzVDMSAvKiBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTBGOUIxREI3MUMwRTQyQkQwMEU1QkZEMiAvKiBGVExPU1JFeGl0SGFuZGxl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGOUIxREI0MUMwRTQyQTUwMEU1QkZEMiAvKiBGVExP
dXRwdXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5RDRDMTAxQzNFMkM3NDAwNkNEOTg0IC8q
IEZUTFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0
ODUzMjkxODdERkRFQzAwODNCNjg3IC8qIEZUTFJlY292ZXJ5T3Bjb2RlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGQ0VGQUFCMTgwNEMxM0UwMDQ3MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjI1RjFCMTE4MTYzNUYzMDA1MjJGMzkgLyogRlRMU2xvd1Bh
dGhDYWxsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGMzM4REYxMUJFOTNBRDEwMDEzQzg4RiAv
KiBCM1N0YWNrbWFwVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRkUyRTZBN0IxRDZFQTYy
QzAwNjBGODk2IC8qIFRocm93U2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyNUYxQjMx
ODE2MzVGMzAwNTIyRjM5IC8qIEZUTFNsb3dQYXRoQ2FsbEtleS5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlFMzI4REFFQTFEMzhEMDA1MDAxQTI1MjkgLyogQnl0ZWNvZGVSZXdyaXRlci5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk0MzE5REEwMzFDMUJFNDBBMDAxRDI2MEIgLyogQjNMb3dlck1hY3Jv
c0FmdGVyT3B0aW1pemF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVBMEExNjE3MDZC
QjkwMDBCQjcyMkMgLyogRlRMU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyMzVCRTEx
NzE3OEUxQzAwNjkwQzdGIC8qIEZUTFRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjVB
NjI4MzE4OEM5OEQ0MDA3MkM5REYgLyogRlRMVmFsdWVSYW5nZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkyQTgzNjM4OTE4RDdEMEZFMDAwMEVCQ0MgLyogRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkxNEFEOTExQjFEQ0E5N0ZEMDAxNEY5RkUgLyogRnVuY3Rp
b25Db2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5Q0IxMDdFQzM3NjAwNDI3
QTQ4IC8qIEZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMTQ3MzQx
RTMxREMyQ0U5NjAwQUEyOUJBIC8qIEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkYwRjE5RjE2QjcyQTE3MDA1REY5NUIgLyogRnVuY3Rpb25FeGVjdXRhYmxlRHVt
cC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MkIzMTBGRDE5NzRBRTg3MDA4MDg1N0MgLyogRnVu
Y3Rpb25IYXNFeGVjdXRlZENhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFNEJGRjJCMUFE
NDc2RTcwMDA4OEY4NyAvKiBGdW5jdGlvbk92ZXJyaWRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNDdGMzlDQzEwN0VDMzc2MDA0MjdBNDggLyogRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJNzk1QjE5OTcxRDc4QkUzNTAwMjYyRkEwIC8qIE1hcEJhc2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNjJEMkQzOEYxQURGMTAzRjAwMDIwNkMxIC8qIEZ1bmN0aW9uUmFy
ZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRkVBMEM0MDIxQ0REN0QxRDAwNDgxOTkxIC8q
IEZ1bmN0aW9uV2hpdGVsaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJBQUNFNjNDMThDQTVB
MDMwMEVEMDE5MSAvKiBHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY3NjZEMkYxNUE4RENFMDAwOEYzNjNFIC8qIEdDQXdhcmVKSVRTdHViUm91dGluZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQlBRDRCMURGOTFERjI0NEUyMDA3MUFFMzIgLyogV2FzbUJpbmRpbmcu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkFERkEyNjMxOEVGMzU0MDAwNEY5RkNDIC8qIEdDTG9n
Z2luZy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MzQxRkM3MDFEQUMzM0U1MDBFN0U0RDcgLyog
QjNXYXNtQm91bmRzQ2hlY2tWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3MEI3OTE5NDFD
MDI0QTI4MDAyNDgxRTIgLyogR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk3MEI3OTE5NjFDMDI0QTI4MDAyNDgxRTIgLyogR2VuZXJhdG9yRnVuY3Rp
b25Qcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzBCNzkxOTgxQzAyNEEyOTAwMjQ4
MUUyIC8qIEdlbmVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjkzMzI5
RjE0Q0E3RENBMDA4NUYzQzYgLyogR2V0QnlJZFN0YXR1cy5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQkxNEFEOTExOTFEQ0E5N0ZEMDAxNEY5RkUgLyogUHJvZ3JhbUNvZGVCbG9jay5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRjAzMzJDMzE4QjAxNzYzMDA1Rjk3OUEgLyogR2V0QnlJZFZhcmlhbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyODA4NTUxMDdFQzBFNzAwMTNFN0IyIC8qIEdldHRl
clNldHRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjkzMjc0RDFDMUY2NkFBMDBDRjY1NjQg
LyogR1BSSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDJFMzEzNTEzNEZGMEE2MDBBRkFE
QjUgLyogSGFuZGxlU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MkUzMTM3MTM0RkYwQTYw
MEFGQURCNSAvKiBIYW5kbGVTdGFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3OUEwOTA3RjFE
NzY4NDY1MDA4Qjg4OUIgLyogSGFzaE1hcEltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRC
QTdBOTcxM0FBREZGODAwNUI3QzJDIC8qIEhlYXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREMz
RDJCMEMxRDM0Mzc3MDAwQkE5MThDIC8qIEhlYXBDZWxsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGMzJCRDEwMUJCMzRGMTkwMDkzQTU3RiAvKiBIZWFwSGVscGVyUG9vbC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBNTM5OEZBQzFDNzUwREE2MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUE1NEMyQUIwMUM2NTQ0RUUwMEExOEQ3OCAvKiBIZWFwU25hcHNo
b3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTUzMTFDMzcxQzc3Q0VDQTAwRTZCMUI2IC8qIEhl
YXBTbmFwc2hvdEJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzI0RDMxRTIxNjFDRDY5
NTAwMkFBNERCIC8qIEhlYXBTdGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyRTUy
NkJEMTU5MEVGMDAwMDU0RTQ4RCAvKiBIZWFwVGltZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkU3QkE2MEYxQTFBN0NFQzAwRjFGN0I0IC8qIEhlYXBWZXJpZmllci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjQ2ODBENDE0QkJEMjQ5MDBCRkUyNzIgLyogSG9zdENhbGxSZXR1cm5WYWx1ZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlEQzIxNDMwODFDQTMyRTU4MDAwQTg4NjkgLyogSUNTdGF0
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlDRTEwN0VDMzc2MDA0MjdBNDggLyogSWRl
bnRpZmllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUZEMDA3NTE4OUIwMzhDMDA2MzMyMzEg
LyogSWRlbnRpZmllcnNGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyNUY4QkNEMTU3
NTQ0QTkwMDI0NUI3MSAvKiBJbmNyZW1lbnRhbFN3ZWVwZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJMEYzMzhERkQxQkVENTEyNzAwMTNDODhGIC8qIEFpclNpbXBsaWZ5Q0ZHLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGMTNFMDRFMTYxNjRBMUYwMERDOERFNyAvKiBJbmRleGluZ1R5cGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMTQzODZBNzgxREQ2OTg5QzAwODY1MkM0IC8qIEluZGlyZWN0
RXZhbEV4ZWN1dGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYwQTc1MjIxQjk0QkZBOTAw
MTEwNjYwIC8qIEluZmVycmVkVHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkZDOTIxMTFC
OTRENERGMDA3MURENjYgLyogSW5mZXJyZWRUeXBlVGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZGOEJERUExQUQ0Q0Y3MTAwREZFODg0IC8qIEluZmVycmVkVmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQUQyRkNDMzMxREM0MDQ1NDAwQjNFNzM2IC8qIFdhc21Gb3JtYXQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOUU3Mjk0MDcxOTBGMDFBNTAwMUE5MUI1IC8qIEluaXRpYWxpemVU
aHJlYWRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUxM0U1QjcxODVCOEJEMzAwN0U5NUFE
IC8qIEluamVjdGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1MTRCMkMyMTg1QTY4
NDQwMEYzQzdDQiAvKiBJbmplY3RlZFNjcmlwdEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
NTMxMzc0QkYxRDVDRTk1MDAwQUY3QTBCIC8qIFdhc21QbGFuLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1OEUzNTkxMTg2MERFQ0YwMDFGMjRGRSAvKiBJbmplY3RlZFNjcmlwdEhvc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTUxM0U1Q0ExODVGOTYyNDAwN0U5NUFEIC8qIEluamVjdGVkU2Ny
aXB0TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTg0MEUyMDE4N0I3Qjg2MDA4NDNC
MTAgLyogSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZBNzYy
MDQxREI5MjQyNjAwQjdBMkZEIC8qIENvbGxlY3Rpb25TY29wZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk3OTA1QkI2ODFEMTIwNTBFMDAxOUZFNTcgLyogSW5saW5lQWNjZXNzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTE0OEE3QkVGMUI4Mjk3NUEwMDJEOTE1NyAvKiBJbmxpbmVDYWxsRnJhbWUu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYyMDE3OEExRENCOTQyNjAwRUE1OTUwIC8qIERGR05v
ZGVBYnN0cmFjdFZhbHVlUGFpci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjI0RTU1NTE3RjBC
NzFDMDBBQkIyMTcgLyogSW5saW5lQ2FsbEZyYW1lU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE1Q0VFRTE0MTg3RjNCQUQwMEU1NUM5OSAvKiBJbnNwZWN0b3JBZ2VudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBNTkzQ0Y4NjE4NDAzOENBMDBCRkNFMjcgLyogSW5zcGVjdG9yQWdlbnRSZWdp
c3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTkzQ0Y3QzE4NDAzNjAzMDBCRkNFMjcgLyog
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUzMjQz
ODcxODU2ODMzNTAwMkVENjkyIC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBNUZEMDA4MTE4OUIxOTFBMDA2MzMyMzEgLyogSW5zcGVjdG9yQ29u
c29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZFM0EwNkIzMUMxMENCOEUwMDM5MEZE
RCAvKiBKSVRCaXRYb3JHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3RDIzRTUx
ODkwQ0VCRjAwMzFDN0ZBIC8qIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTUzMjQzODkxODU2ODMzNTAwMkVENjkyIC8qIEluc3BlY3RvckZyb250ZW5kRGlz
cGF0Y2hlcnMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJREM3OTk3ODQxQ0RFOUZBMjAwNEQ0QTA5
IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTlGMUE2RkUxQjhF
NkQ5NDAwNDYzQjI2IC8qIEluc3BlY3RvckZyb250ZW5kUm91dGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE1MzM5RUM3MUJCMzk5QTkwMDU0RjAwNSAvKiBJbnNwZWN0b3JIZWFwQWdlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRTM1RTAzNUYxQjdBQjQzRTAwNzNBRDJBIC8qIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTMyNDM4QjE4
NTY4MzM1MDAyRUQ2OTIgLyogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE1MEU0QjYxMTg4MDlERDUwMDY4QTQ2RCAvKiBJbnNwZWN0b3JSdW50aW1lQWdl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTNCRkQwQkIxREFGODA4NzAwNjVERUEyIC8qIERP
TUpJVEFjY2Vzc0Nhc2VQYXRjaHBvaW50UGFyYW1zLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE1
NTE2NUQyMUJERjBCOTgwMDNCNzVDMSAvKiBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE1OTNDRjgyMTg0MDM3NzEwMEJGQ0UyNyAvKiBJbnNwZWN0
b3JWYWx1ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5Q0YxMDdFQzM3NjAwNDI3QTQ4
IC8qIEludGVybmFsRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyOUQ3RDQwRUQy
MTI4MjAwQjg5NjE5IC8qIEludGVycHJldGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRTM0
QzE5MUM0QjM5QUUwMDAzQTUxMiAvKiBBaXJMb2dSZWdpc3RlclByZXNzdXJlLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUFENDkzN0QzMURERDI3REUwMDc3QzgwNyAvKiBXZWJBc3NlbWJseUZ1bmN0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExQjlFMjM5MUI0RTBENjcwMEJDN0ZFRCAvKiBJ
bnRsQ29sbGF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFCOUUyM0IxQjRFMEQ2NzAwQkM3
RkVEIC8qIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBG
NkRCN0VBMUQ2MTI0QjgwMENEQkY4RSAvKiBTdGFja0ZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUExQjlFMjNEMUI0RTBENjcwMEJDN0ZFRCAvKiBJbnRsQ29sbGF0b3JQcm90b3R5cGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTE1ODdENkQxQjREQzE0MTAwRDY5ODQ5IC8qIEludGxEYXRl
VGltZUZvcm1hdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTU4N0Q2RjFCNERDMTQxMDBENjk4
NDkgLyogSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJQUQyRkNDMDQxREI1OERBRDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlNb2R1bGUuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJRkUzQTA2QkYxQzExMDQxNjAwMzkwRkREIC8qIEpJVFJpZ2h0U2hp
ZnRHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMjYyRDg1QjYxQzBENjUwRjAwNkFD
QjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlFMzIyRTVBNjFEQTY0NEE4MDA2RTc3MDkgLyogRlRMRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQk3MEI3OTE5QjFDMDI0QTQ2MDAyNDgxRTIgLyogSlNHZW5l
cmF0b3JGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTU4N0Q3MTFCNERDMTQxMDBE
Njk4NDkgLyogSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUExRDc5MkZDMUI0Mzg2NEIwMDQ1MTZGNSAvKiBJbnRsTnVtYmVyRm9ybWF0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUExRDc5MkZFMUI0Mzg2NEIwMDQ1MTZGNSAvKiBJbnRsTnVtYmVyRm9y
bWF0Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMDAxMSwzNyArMTAwMjcsMzYg
QEAKIAkJCQlERTVBMEEwMDFCQTNBQzNFMDAzRDQ0MjQgLyogSW50cmluc2ljRW1pdHRlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3MDExM0Q0QjFBOERCMDkzMDAzODQ4QzQgLyogSXRlcmF0b3JP
cGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwREMzRTA5MUIyREYyQzcwMDA1NDI5
OSAvKiBJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxNDczNDFFNDFE
QzJDRTk2MDBBQTI5QkEgLyogTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTUwM0ZBMTkxODhFMEZCMDAwMTEwRjE0IC8qIEphdmFTY3JpcHRDYWxsRnJhbWUu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNzlENUNENUExQzExMDZBOTAwQ0VDQTA3IC8qIFNhbXBs
aW5nUHJvZmlsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyOUQ5MkYwRUQyMkQ3MDAwQjg5
NjE5IC8qIEpJVC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRTEyMjAyODFCRTdGNTkxMDAzOUU2
RjIgLyogSklUQWRkR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2QTkwRUQwMEVF
N0Q1MUYwMEFCMzUwRCAvKiBKSVRBcml0aG1ldGljLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
NTcwNkRFMTE4QTJCQ0YwMDU3Rjg4RiAvKiBKSVRBcml0aG1ldGljMzJfNjQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRkUzQTA2QjExQzEwQ0I4NDAwMzkwRkREIC8qIEpJVEJpdEFuZEdlbmVyYXRv
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRTNBMDZBQzFDMTBDMzlFMDAzOTBGREQgLyogSklU
Qml0T3JHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRkUzQTA2QjMxQzEwQ0I4RTAw
MzkwRkREIC8qIEpJVEJpdFhvckdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkND
ODVBMzBFRTc5Qjc0MDAyODg2ODIgLyogSklUQ2FsbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
NDZGRTUxMjExQTcxMDQzMDA4N0FFNjYgLyogSklUQ2FsbDMyXzY0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGOEY5NDQ0MTY2NzYzNTQwMEQ2MTk3MSAvKiBKSVRDb2RlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGQUY3RUZEMTY1QkE5MUIwMDBDODQ1NSAvKiBKSVREaXNhc3NlbWJsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJMTRBRDkxMkYxRENBQUFCMDAwMTRGOUZFIC8qIFVubGlua2Vk
RnVuY3Rpb25Db2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY2REI3RUMxRDYxN0Qx
MTAwQ0RCRjhFIC8qIE1hY3JvQXNzZW1ibGVyQ29kZVJlZi5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlBRDJGQ0JFMjFEQjU4REFEMDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGRTE4N0EwRTFDMDMwRDY0MDAzOEJCQ0EgLyogSklURGl2
R2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDY4MDgzMTRCQTU3MzEwMEJGRTI3
MiAvKiBKSVRFeGNlcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQjE0RTFFMTgxMjRB
Q0UwMDlCNkI0RCAvKiBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlGRTNBMDZCRDFDMTEwNDBEMDAzOTBGREQgLyogSklUTGVmdFNoaWZ0R2VuZXJhdG9yLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUZFMTg3QTAxMUJGQkU1NUUwMDM4QkJDQSAvKiBKSVRNdWxH
ZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRkU5OUIyNEExQzI0QzNENzAwQzgyMTU5
IC8qIEpJVE5lZ0dlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0RENTFFQjBGQjhE
Rjc0MDA0QThCREMgLyogSklUT3Bjb2Rlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzEyMzZF
NTExOTVGMzNDMDBCRDIxNzQgLyogSklUT3Bjb2RlczMyXzY0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGMjRFNTRDMTdFRTI3NDkwMEFCQjIxNyAvKiBKSVRPcGVyYXRpb25zLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCTBGNTUxM0E4MUQ1QTY4Q0QwMEMzMkJEOCAvKiBGcmVlTGlzdC5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQlGRTk5QjI0QTFDMjRDM0Q3MDBDODIxNTkgLyogSklUTmVnR2VuZXJh
dG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2Q0M4NUM0MEVFN0E4OTQwMDI4ODY4MiAvKiBK
SVRQcm9wZXJ0eUFjY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1QjcwQ0ZFMTFEQjY5RTY2
MDBFQzIzRjkgLyogQXN5bmNGdW5jdGlvblByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBN0MxRThFNDExMkU3MkVGMDBBMzdGOTggLyogSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQkwRkI0MTU4NDFENzhGQjRDMDBERjhEMDkgLyogQXJyYXlDb252
ZW50aW9ucy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRTNBMDZCRjFDMTEwNDE2MDAzOTBGREQg
LyogSklUUmlnaHRTaGlmdEdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjc2NkQy
ODE1QThDQzFFMDA4RjM2M0UgLyogSklUU3R1YlJvdXRpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEY3NjZEMkIxNUE4Q0MzODAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZFNDIzODkwMUJFMThDM0MwMDUxNDczNyAvKiBKSVRTdWJHZW5lcmF0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNzBCNzkxOTQxQzAyNEEyODAwMjQ4MUUyIC8qIEdl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1RUY5
MUUxNjg3OEY3QTAwM0U1QzI1IC8qIEpJVFRodW5rcy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlE
QzE3RTgxQTFDOUM5MUU5MDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGQzcxMkUyMTdDRDg3OTEwMDhDQzkzQyAvKiBKSVRUb0RGR0RlZmVycmVkQ29tcGls
YXRpb25DYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQzAxODQxQTFEMTBDMThDMDA1
N0IwNTMgLyogSklUV29ya2xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQwNTY2QzQxMDdF
QzI1NTAwNURCQzhEIC8qIEpTQVBJVmFsdWVXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUMyQ0YzOUMxMTZFMTVBODEwMERENjlCRSAvKiBKU0FQSVdyYXBwZXJPYmplY3QubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxNDdGMzlEMDEwN0VDMzc2MDA0MjdBNDggLyogSlNBcnJheS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTEwMDQ5LDggKzEwMDY0LDcgQEAKIAkJCQkwRjJCNjZFNDE3QjZCNUFC
MDBBN0FFM0YgLyogSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGMkI2NkU2MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5QnVmZmVyUHJvdG90eXBlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkI2NkU4MTdCNkI1QUIwMEE3QUUzRiAvKiBKU0FycmF5
QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBNTMxMUMzNzFDNzdDRUNBMDBFNkIx
QjYgLyogSGVhcFNuYXBzaG90QnVpbGRlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGRTgwQzE5
OTFENzc1RkJFMDA4NTEwQzAgLyogQ2F0Y2hTY29wZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1
QjcwQ0ZERjFEQjY5RTY2MDBFQzIzRjkgLyogSlNBc3luY0Z1bmN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0MjEzNTlCMEE2NzdGNEYwMEE4MTk1RSAvKiBKU0Jhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODZGQTlFOTExNDJCQkIyRTAwMTc3M0I3IC8qIEpTQm91bmRGdW5jdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQwRjhBRjBBNTA4RDIwMDAwNUYwNjEgLyogSlNDYWxs
YmFja0NvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTAwNTgsMzYgKzEwMDcyLDMy
IEBACiAJCQkJMTRBQkRGNjAwQTQzN0ZFRjAwRUNDQTAxIC8qIEpTQ2FsbGJhY2tPYmplY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNjU3Q0Y0NTgxOUJGNjY2MjAwNEFDQkYyIC8qIEpTQ2FsbGVl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDgwMUE4MTg4MEQ2QTgwMDI2QzM5QiAvKiBKU0NC
dWlsdGlucy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBRDJGQ0MwMDFEQjU4REFEMDBCM0U3MzYg
LyogV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
NDdGMzlEMTEwN0VDMzc2MDA0MjdBNDggLyogSlNDZWxsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0N0YzOUQ2MTA3RUMzNzYwMDQyN0E0OCAvKiBKU0NKU1ZhbHVlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTE0NDBGQ0U0MEE1MUU0NkIwMDA1RjA2MSAvKiBKU0NsYXNzUmVmLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg2RTNDNjE2MTY3QkFCRUUwMDZENzYwQSAvKiBKU0NvbnRleHQubW0gaW4g
U291cmNlcyAqLywKLQkJCQlBRDJGQ0MyQzFEQjgzOEZEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlQ
cm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRCRDVBMzAwQTNFOTFGNjAwQkFGNTlD
IC8qIEpTQ29udGV4dFJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzIwMjhCNjE3OTc2MDFF
MDA5ODAyOEMgLyogSlNDVGVzdFJ1bm5lclV0aWxzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTcy
QUFGN0NEMUQwRDMxQjMwMDVFNjBCRSAvKiBKU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkI2NkVCMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0RhdGFW
aWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkI2NkVEMTdCNkI1QUIwMEE3QUUzRiAvKiBK
U0RhdGFWaWV3UHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3ODgwMTQwMTQ3MUFE
OTIwMDQxQjAxNiAvKiBKU0RhdGVNYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFMzg0RUU1
MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZF
Mzg0RUU3MUFEREI3QUQwMDU1REUyQyAvKiBKU0RvbGxhclZNUHJvdG90eXBlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTE0N0YzOUQ3MTA3RUMzNzYwMDQyN0E0OCAvKiBKU0Vudmlyb25tZW50UmVj
b3JkLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc5ODkzNzc4MURDQUI1NzMwMEY4RDRGQiAvKiBK
U0ZpeGVkQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQwNTY2RDYxMDdFQzI3MTAwNURC
QzhEIC8qIEpTRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0QTM4RjkxQzhFMTNE
RjAwMTkwMzE4IC8qIFN1cGVyU2FtcGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3MEI3OTE5
QjFDMDI0QTQ2MDAyNDgxRTIgLyogSlNHZW5lcmF0b3JGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3OTdFMDdBOTFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJv
bm1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJREM0NTRCOEMxRDAwRTgyMjAwNEMxOEFGIC8q
IEFpckR1bXBBc0pTLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUFEQkM1NEQ0MURGOEVBMkIwMDVC
RjczOCAvKiBXZWJBc3NlbWJseVRvSlNDYWxsZWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3
RjM5RDIxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTR2xvYmFsT2JqZWN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE1RkQwMDg1MTg5QjFCN0UwMDYzMzIzMSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVB
Z2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUMzQTFBNTE4QzA0OTAyMDBDOTU5M0EgLyog
SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCURDOUEw
QzIxMUQyRDlDQjQwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE1OTQ1NTkyMTgyNDc0NDcwMENDMzg0MyAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2Fi
bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3RDIzRTkxODkxQjA3NzAwMzFDN0ZBIC8qIEpT
R2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEU5RDE3
QjEwN0VDNDY5MDA0RERBMjEgLyogSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTUxMDA3QzAxODdDQzNDNjAwQjM4ODc5IC8qIEpTR2xvYmFsT2JqZWN0SW5z
cGVjdG9yQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTBFNEI2MzE4ODA5REQ1
MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50aW1lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTUwM0ZBMjkxODhGMTA1OTAwMTEwRjE0IC8qIEpTR2xvYmFsT2JqZWN0U2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QjFEQjcxQzBFNDJCRDAwRTVCRkQy
IC8qIEZUTE9TUkV4aXRIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUxM0U1QkYxODVC
RkFDQzAwN0U5NUFEIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1MTNFNUMxMTg1QkZBQ0MwMDdFOTVBRCAvKiBKU0luamVjdGVkU2NyaXB0SG9zdFByb3Rv
dHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzNGNTA4MDFCODQyOUE0MDA0MTM4NTYgLyog
SlNJbnRlcm5hbFByb21pc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMDA5NSw1NSArMTAxMDUs
NDQgQEAKIAkJCQlFMzNGNTA4NDFCODQzN0EwMDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2VE
ZWZlcnJlZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzNGNTA3NDFCODQyMUMwMDA0MTM4NTYg
LyogSlNJbnRlcm5hbFByb21pc2VQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUw
M0ZBMUIxODhFMEZCMDAwMTEwRjE0IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQkwRjYxODMyRTFDNDVCRjA3MDA3MjQ1MEIgLyogQWlyTG93ZXJBZnRlclJl
Z0FsbG9jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1MDNGQTFEMTg4RTBGQjAwMDExMEYxNCAv
KiBKU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NzAxM0NBOEIxQjQ5MUE5NDAwQ0FFNjEzIC8qIEpTSm9iLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0MEI3RDFEMERDNjlBRjcwMDlDNDJCOCAvKiBKU0xleGljYWxFbnZpcm9ubWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDI4MDg3NTEwN0VDMTNFMDAxM0U3QjIgLyogSlNMb2NrLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUFEMkZDQkZBMURCNThEQUQwMEIzRTczNiAvKiBXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMjVENzA5QjE2
REU5OUY0MDBGQ0E2QkMgLyogSlNNYW5hZ2VkVmFsdWUubW0gaW4gU291cmNlcyAqLywKIAkJCQlB
NzAwODc0MTE3Q0JFOEVCMDBDM0U2NDMgLyogSlNNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTc0REVGOTUxODJEOTkxNDAwNTIyQzIyIC8qIEpTTWFwSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTNEMjM5QzgxQjgyOUMxQzAwQkJFRjY3IC8qIEpTTW9kdWxlRW52aXJvbm1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMTNGRUNFMDZEM0I0NDVGQ0I2QzkzNDYxIC8qIEpTTW9k
dWxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzMThDQkMwMUI4QUVGNTEwMEEyOTI5
RCAvKiBKU01vZHVsZU5hbWVzcGFjZU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjlD
QUJDODFEQjU0QTc4MDAwOEU4M0IgLyogQWlyUGFkSW50ZXJmZXJlbmNlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUUzOURBNEE2MUI3RThCN0MwMDg0RjMzQSAvKiBKU01vZHVsZVJlY29yZC5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQkwRkIzODc5MjFCRkQzMUExMDBFM0FCMUUgLyogRlRMQ29tcGls
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzNFOEQxQzFCOTAxM0MzMDAzNDZCNTIgLyogSlNO
YXRpdmVTdGRGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBRDJGQ0JGODFEQjU4REFE
MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNDdGMzlENDEwN0VDMzc2MDA0MjdBNDggLyogSlNPYmplY3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMTQ4MkI3RTQwQTQzMDc2MDAwNTE3Q0ZDIC8qIEpTT2JqZWN0UmVm
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Rjk5MzYwMEZENzMyNTEwMEEwQjJEMCAvKiBKU09O
T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDMTg0RTFBMTdCRURCRDMwMDdDQjYzQSAv
KiBKU1Byb21pc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0MxODRFMjIxN0JFRTI0MDAwN0NC
NjNBIC8qIEpTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDMDA4
Q0RBMTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQkwRjdDRjk1MzFEQzAyN0RCMDA5OENDMTIgLyogU3RvcElmTmVjZXNzYXJ5VGltZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0MxODRFMUUxN0JFRTIyRTAwN0NCNjNBIC8qIEpTUHJv
bWlzZVByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQTA1QUJENTE5NjFERjI0MDAz
NDE3NTAgLyogSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUUzRUY4ODc0MUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTg2MjU1M0QxMTYxMzZEQTkwMDlGMTdEMCAvKiBKU1Byb3h5LmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTE0QUQ5MTJDMURDQUFBQjAwMDE0RjlGRSAvKiBVbmxpbmtl
ZEV2YWxDb2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU1MkMzN0YxQUREQjhGRTAw
MTM5NzI2IC8qIEpTUmVtb3RlSW5zcGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCURDMDE4
NDFBMUQxMEMxOEMwMDU3QjA1MyAvKiBKSVRXb3JrbGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5OTI4RkYzQjE4QUM0QUVDMDBCOENGMTIgLyogSlNSZXBsYXlJbnB1dHMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMTQ4NzRBRTUxNUVCREU0QTAwMkUzNTg3IC8qIEpTU2NvcGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTdDMEM0QUQxNjgxMDY3RTAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTE5RDEwMTU3RjMzMjkwMDRBNEU3RCAvKiBKU1NlZ21l
bnRlZFZhcmlhYmxlT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCURDMTdFODE3MUM5Qzkx
RDYwMDhBNkFCMyAvKiBTaGFkb3dDaGlja2VuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Mjk5
RDlEMTdEMTI4MzcwMDVGNUZGOSAvKiBKU1NldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzkw
REQ2RjE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQkwRkE3NjIwNjFEQjkyNDMxMDBCN0EyRkQgLyogTXV0YXRvclN0YXRlLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCTE0MjgwODNBMTA3RUMwNzUwMDEzRTdCMiAvKiBDTG9vcFN0YWNrLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTE0N0YzOUQ1MTA3RUMzNzYwMDQyN0E0OCAvKiBKU1N0cmluZy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3MEVDMEVDMjFBQTBEN0RBMDBCNkFBRkEgLyogSlNTdHJp
bmdJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjlENEMxMDFDM0UyQzc0MDA2Q0Q5
ODQgLyogRlRMUGF0Y2hwb2ludEV4Y2VwdGlvbkhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyNjAwQjVBNjE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMTQ4MkI3NEUwQTQzMDMyODAwNTE3Q0ZDIC8qIEpTU3RyaW5nUmVmLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTE0NkFBQjM4MEI2NkE5NDQwMEU1NUYxNiAvKiBKU1N0cmluZ1Jl
ZkNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTE5RDBDMTU3RUUwOUYwMDRBNEU3RCAvKiBK
U1N5bWJvbFRhYmxlT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwRUNBNjA1MUFGREJF
QTIwMDQ0OTczOSAvKiBKU1RlbXBsYXRlUmVnaXN0cnlLZXkuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJNTM0ODZCQkIxQzE4RTg0NTAwRjZGM0FGIC8qIEpTVHlwZWRBcnJheS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjJCNjZGQTE3QjZCNUFCMDBBN0FFM0YgLyogSlNUeXBlZEFycmF5Q29uc3Ry
dWN0b3JzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGOTYzMDM5MUQ0MTkyQzYwMDU2MDlEOSAv
KiBBbGxvY2F0b3JBdHRyaWJ1dGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkI2NkZDMTdC
NkI1QUIwMEE3QUUzRiAvKiBKU1R5cGVkQXJyYXlQcm90b3R5cGVzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGMkI2NkZFMTdCNkI1QUIwMEE3QUUzRiAvKiBKU1R5cGVkQXJyYXlzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUzNEM0NTdFMUJDNzI1NDkwMDc0NzZBNyAvKiBKU1R5cGVkQXJyYXlW
aWV3Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMDE1NCw3NyArMTAxNTMsNzMg
QEAKIAkJCQlBN0NBM0FFNzE3REE0MUFFMDA2NTM4QUYgLyogSlNXZWFrTWFwLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE3NDgyQjk0MTE2NzExNDcwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBS
ZWZQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwOUZCODY3MUFFMzM1QzYwMDM5RDA2
OSAvKiBKU1dlYWtTZXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUQyRkNDMzAxREI4M0Q0OTAw
QjNFNzM2IC8qIEpTV2ViQXNzZW1ibHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzlFNDIzRTIx
REVFNjUzMjAwNzhEMzU1IC8qIEpTV2ViQXNzZW1ibHlDYWxsZWUuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQUQyRkNCRTIxREI1OERBRDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlDb21waWxlRXJy
b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUQyRkNCRTQxREI1OERBRDAwQjNFNzM2IC8qIEpT
V2ViQXNzZW1ibHlJbnN0YW5jZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBRDJGQ0JFNjFEQjU4
REFEMDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlBRDJGQ0MwNDFEQjU4REFEMDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseU1vZHVsZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBRDJGQ0JFODFEQjU4REFEMDBCM0U3MzYgLyogSlNXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBRDJGQ0JFQTFEQjU4REFEMDBC
M0U3MzYgLyogSlNXZWJBc3NlbWJseVRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDI1
NjYxMTVFREU5OEQwMDY2QTQ5QiAvKiBKU1dpdGhTY29wZS5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk1MzcwQjRGNTFCRjI2MjAyMDA1QzQwRkMgLyogQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFs
dWVXYXRjaHBvaW50QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkUzQzYxODE2N0JBQkVF
MDA2RDc2MEEgLyogSlNXcmFwcGVyTWFwLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyODA4NzAx
MDdFQzEzNDAwMTNFN0IyIC8qIEpTV3JhcHBlck9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0ZEOEM5MjBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTBGMDcwQTRBMUQ1NDNBOTUwMDZFNzIzMiAvKiBMYXJnZUFsbG9jYXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRENGM0Q1NjkxQ0QyOTQ2RDAwM0Q1QzY1IC8qIExhenlDbGFzc1N0
cnVjdHVyZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI1NDY3OTE0RjVDNDZCMDAyQzI5ODkg
LyogTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ4RjIx
QjAxMDdFQzU0MTAwNDJFQzJDIC8qIExleGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTc5RTQy
M0UyMURFRTY1MzIwMDc4RDM1NSAvKiBKU1dlYkFzc2VtYmx5Q2FsbGVlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGRjQyNzU3MTU5MTRBMjAwMDRDQjlGRiAvKiBMaW5rQnVmZmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE3RTJFQTZDMEZCNDYwQ0YwMDYwMUYwNiAvKiBMaXRlcmFsUGFyc2Vy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE1QTFBMDk1MUQ4Q0IzNDEwMDRDMkVCOCAvKiBEZWJ1
Z2dlclBhcnNlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTM5MTM1NDFCNzk0RjZFMDBF
REFGNzEgLyogTGl2ZU9iamVjdExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkUyMENFOUQx
NUYwNEE5NTAwREYzNDMwIC8qIExMSW50Q0xvb3AuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0
NjgwRDIxNEJCRDE2NTAwQkZFMjcyIC8qIExMSW50RGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRjM4QjAxMTE3Q0YwNzgwMDBCMTQ0RDMgLyogTExJbnRFbnRyeXBvaW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGNDY4MEE4MTRCQTdGQUIwMEJGRTI3MiAvKiBMTEludEV4Y2VwdGlvbnMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTNGQTJBRTMxQ0YzODAzOTAwMjI3MTFEIC8qIExMSW50
UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjQ2ODBBNDE0QkE3RjhEMDBCRkUyNzIgLyogTExJbnRTbG93UGF0aHMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEYwQjgzOUMxNEJDRjQ2MzAwODg1QjRGIC8qIExMSW50VGh1bmtz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5RERFMTA3RUM3RTcwMDY1MDQ0NiAvKiBMb29r
dXAuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRkU4MEMxOUIxRDc3NkE5ODAwODUxMEMwIC8qIEV4
Y2VwdGlvbkV2ZW50TG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0NjgwQ0MxNEJC
QjE3QTAwQkZFMjcyIC8qIExvd0xldmVsSW50ZXJwcmV0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJQTVBQjQ5REMxQkVDODA4MjAwNzAyMEZCIC8qIFBlckdsb2JhbE9iamVjdFdyYXBwZXJXb3Js
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEI3MjNCMjEyRDdEQTQ2MDAzQkQ1RUQgLyogTWFj
aGluZVN0YWNrTWFya2VyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGNjk3MUVCMUQ5MkY0MkQw
MEJBMDJBNSAvKiBCM0ZlbmNlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRkUzQTA2QkQx
QzExMDQwRDAwMzkwRkREIC8qIEpJVExlZnRTaGlmdEdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkVCM0VDRjE2MjM3RjZDMDBBQjY3QUQgLyogTWFjcm9Bc3NlbWJsZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODZDNTY4RTAxMUEyMTNFRTAwMDdGN0YwIC8qIE1hY3JvQXNzZW1i
bGVyQVJNLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFQjEzNzU3MUJCMTFFRjkwMENENTEwMCAv
KiBNYWNyb0Fzc2VtYmxlckFSTTY0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTc5QTIyODM1MUQz
NUQ3MUUwMEQ4RTA2NyAvKiBBcml0aFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcy
OTAwOUMxNzk3NkM2MDAwMzE3Mjk4IC8qIE1hY3JvQXNzZW1ibGVyQVJNdjcuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEY2REI3RUMxRDYxN0QxMTAwQ0RCRjhFIC8qIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTY4QzYzODFCOTBERTBCMDA0MkJDQjMgLyog
TWFjcm9Bc3NlbWJsZXJQcmludGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QTRBRTA4MTc5
NzNCMjYwMDU2MTJCMSAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlGRTNBMDZBQzFDMTBDMzlFMDAzOTBGREQgLyogSklUQml0T3JHZW5lcmF0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJQUQyRkNCRkMxREI1OERBRDAwQjNFNzM2IC8qIFdlYkFzc2Vt
Ymx5VGFibGVDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3OTVCMTk5NzFENzhC
RTM1MDAyNjJGQTAgLyogTWFwQmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzAwODczOTE3
Q0JFODUzMDBDM0U2NDMgLyogTWFwQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTc0REVGOTMxODJEOTkxNDAwNTIyQzIyIC8qIE1hcEl0ZXJhdG9yUHJvdG90eXBlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE3MDA4NzNEMTdDQkU4RDMwMEMzRTY0MyAvKiBNYXBQcm90b3R5cGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzJCOTE2QzUxNERBMDQwQzAwQ0JBQzg2IC8qIE1hcmtl
ZEFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDJENkYwODEzNTM5QTI4MDBCMDJF
ODYgLyogTWFya2VkQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJREM2MDVCNUQxQ0UyNkVB
MDAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTREMkYz
REExMzlGNEJFMjAwNDkxMDMxIC8qIE1hcmtlZFNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0MkQ2RjExMTM1MzlBNDEwMEIwMkU4NiAvKiBNYXJrU3RhY2suY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJNzBCNzkxOTgxQzAyNEEyOTAwMjQ4MUUyIC8qIEdlbmVyYXRvclByb3RvdHlwZS5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQkwRjcyNUNBOTFDNTAzREVEMDBBRDk0M0EgLyogQjNQdXJlQ1NF
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCURDNjlBQTY2MUNGN0ExRjIwMEM2MjcyRiAvKiBNYXRj
aFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MzQwQTQ4NDFBOTA1MUFGMDBENzNDQ0Eg
LyogTWF0aENvbW1vbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjM3MzA4QzFDMEJEMjkxMDAw
NTJCRkEgLyogQjNQaGlDaGlsZHJlbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDQ2OURERjEw
N0VDN0U3MDA2NTA0NDYgLyogTWF0aE9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MDIx
M0UzRDEyM0E0MEMyMDBENDIyRjMgLyogTWVtb3J5U3RhdGlzdGljcy5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQkwRjIwMTc3RjFEQ0FEQzMzMDBFQTU5NTAgLyogREZHRmxvd0luZGV4aW5nLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGQjU0NjdEMTRGNUNGRDYwMDJDMjk4OSAvKiBNZXRob2RPZkdl
dHRpbmdBVmFsdWVQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUzNzk0RTc1MUI3N0VC
OTcwMDU1NDNBRSAvKiBNb2R1bGVBbmFseXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzU1
RjM1MjFCN0RDODUzMDBDNTBEQzUgLyogTW9kdWxlTG9hZGVyUHJvdG90eXBlLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCTE0NzM0MUUyMURDMkNFOTYwMEFBMjlCQSAvKiBFdmFsRXhlY3V0YWJsZS5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjMzOEUwQjFCRjAyNzZDMDAxM0M4OEYgLyogQjNDb21w
aWxhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxNEFEOTExODFEQ0E5N0ZEMDAxNEY5RkUg
LyogTW9kdWxlUHJvZ3JhbUNvZGVCbG9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxNDczNDFF
NDFEQzJDRTk2MDBBQTI5QkEgLyogTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEZBNzYyMDYxREI5MjQzMTAwQjdBMkZEIC8qIE11dGF0b3JTdGF0ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxNDQ2OURFMDEwN0VDN0U3MDA2NTA0NDYgLyogTmF0aXZlRXJy
b3JDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk3OTE2MERCRDFDOEUzRUM4MDA4
QzA4NUEgLyogUHJveHlSZXZva2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERTExMDdF
QzdFNzAwNjUwNDQ2IC8qIE5hdGl2ZUVycm9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTE0NzM0MUU1MURDMkNFOTYwMEFBMjlCQSAvKiBOYXRpdmVFeGVjdXRhYmxlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUzM0U4RDIwMUI5MDEzREUwMDM0NkI1MiAvKiBOYXRpdmVTdGRGdW5j
dGlvbkNlbGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ4RjIxQjcxMDdFQzU0NzAwNDJFQzJD
IC8qIE5vZGVzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCURDNjlBQTY2MUNGN0ExRjIwMEM2Mjcy
RiAvKiBNYXRjaFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzk2M0NFRTFCNzNGNzUw
MDBFQjRDRTUgLyogTm9kZXNBbmFseXplTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTVC
NzBDRkRGMURCNjlFNjYwMEVDMjNGOSAvKiBKU0FzeW5jRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNjU1RUIyOUIxMENFMjU4MTAwMUE5OTBFIC8qIE5vZGVzQ29kZWdlbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk2NTQ2RjUyMTFBMzJCMzEzMDA2RjA3RDUgLyogTnVsbEdldHRlckZ1
bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUzMjJFNUEyMURBNjQ0MzkwMDZFNzcwOSAv
KiBERkdET01KSVRQYXRjaHBvaW50UGFyYW1zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1NTI1
RkM1MUE2REQ4MDEwMDdCNTQ5NSAvKiBOdWxsU2V0dGVyRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMTQ0NjlERTIxMDdFQzdFNzAwNjUwNDQ2IC8qIE51bWJlckNvbnN0cnVjdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5REUzMTA3RUM3RTcwMDY1MDQ0NiAvKiBOdW1iZXJP
YmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERTQxMDdFQzdFNzAwNjUwNDQ2IC8q
IE51bWJlclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkYzRUVCRTE2OENERTkz
MDA3N0I5MkEgLyogT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0gaW4gU291cmNlcyAqLywKLQkJCQk3
OTg5Mzc3ODFEQ0FCNTczMDBGOEQ0RkIgLyogSlNGaXhlZEFycmF5LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTE0NDY5REU1MTA3RUM3RTcwMDY1MDQ0NiAvKiBPYmplY3RDb25zdHJ1Y3Rvci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkQzRTQwOTFCNjE4QjY2MDBDODBFMUUgLyogT2JqZWN0UHJv
cGVydHlDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEM0U0MEIxQjYxOEI2NjAw
QzgwRTFFIC8qIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0LmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMTAyMzMsMTMgKzEwMjI4LDEyIEBACiAJCQkJOTY5QTA3OUEwRUQxRDNBRTAwRjFGNjgxIC8q
IE9wY29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg1MDEwN0VDMEQ3MDAxM0U3QjIg
LyogT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUyMjhFRTE0MzZBQjJDMDAx
OTZDNDggLyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjk2MzAzQjFENDE5MkNC
MDA1NjA5RDkgLyogRGVzdHJ1Y3Rpb25Nb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0OEYy
MUJDMTA3RUM1NEQwMDQyRUMyQyAvKiBQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMw
NTJDMzQwRkI3OTIxOTAwNDhGREMzIC8qIFBhcnNlckFyZW5hLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTc5MkNCMzQ5MUM0RUVENUMwMEQxM0FGMyAvKiBQQ1RvQ29kZU9yaWdpbk1hcC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBNUFCNDlEQzFCRUM4MDgyMDA3MDIwRkIgLyogUGVyR2xvYmFsT2Jq
ZWN0V3JhcHBlcldvcmxkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjlDRTczMUI5Q0Q2RDAw
MDRFRENBNiAvKiBQb2x5bW9ycGhpY0FjY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkU4
MzQxNzFBNkVGOTdCMDBEMDQ4NDcgLyogUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEYzMzhFMTQxQkYwMjc2QzAwMTNDODhGIC8qIEIzVmFsdWVLZXku
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNzJBQUY3Q0QxRDBEMzFCMzAwNUU2MEJFIC8qIEpTQ3Vz
dG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5ODIwNjAx
NkJGRTM4MTAwMjQwRDAyIC8qIFByZWNpc2VKdW1wVGFyZ2V0cy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkY3MjlBRDE2NkFEMzVDMDAwRjVCQTMgLyogUHJvZmlsZXJCeXRlY29kZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRkY3MjlBRTE2NkFEMzVDMDAwRjVCQTMgLyogUHJvZmlsZXJCeXRl
Y29kZXMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMDI0OCwyNCArMTAyNDIsMjUgQEAKIAkJCQkw
RkY3MjlCMDE2NkFEMzVDMDAwRjVCQTMgLyogUHJvZmlsZXJDb21waWxhdGlvbktpbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZGNzI5QjExNjZBRDM1QzAwMEY1QkEzIC8qIFByb2ZpbGVyQ29t
cGlsZWRCeXRlY29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY3MjlCMjE2NkFEMzVDMDAw
RjVCQTMgLyogUHJvZmlsZXJEYXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQzYwNUI1
RDFDRTI2RUEwMDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRjE5MENBQzE4OUQ4MkY2MDAwQUU1RjAgLyogUHJvZmlsZXJKZXR0aXNvblJlYXNvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkY3MjlCMzE2NkFEMzVDMDAwRjVCQTMgLyogUHJvZmlsZXJP
cmlnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNzI5QjQxNjZBRDM1QzAwMEY1QkEzIC8q
IFByb2ZpbGVyT3JpZ2luU3RhY2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTJCNzRCNEExREND
MDQ2OTAwMzQxNTdEIC8qIEFycmF5SXRlcmF0b3JBZGFwdGl2ZVdhdGNocG9pbnQuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQUQyRkNCRTYxREI1OERBRDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlN
ZW1vcnkuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5RDRDMEMxQzNFMUMxMTAwNkNEOTg0IC8q
IEZUTEV4Y2VwdGlvblRhcmdldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkIxMDU4QjE2NzU0
ODMxMDBGOEFCNkUgLyogUHJvZmlsZXJPU1JFeGl0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
QjEwNThEMTY3NTQ4MzcwMEY4QUI2RSAvKiBQcm9maWxlck9TUkV4aXRTaXRlLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCTBGNjE4MzJCMUM0NUJGMDcwMDcyNDUwQiAvKiBBaXJDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEZERTg3RjkxREZEMEM3NjAwNjRDMzkwIC8qIENlbGxDb250YWlu
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxMzkxMkIxNjc3MUMzQTAwOUNDQjA3IC8qIFBy
b2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREM2MDVCNUYx
Q0UyNkVBNTAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTE0
QUQ5MTE5MURDQTk3RkQwMDE0RjlGRSAvKiBQcm9ncmFtQ29kZUJsb2NrLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTE0NzM0MUU2MURDMkNFOTYwMEFBMjlCQSAvKiBQcm9ncmFtRXhlY3V0YWJsZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQzRTQwRDFCNjE4QjY2MDBDODBFMUUgLyogUHJvcGVy
dHlDb25kaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTM1Q0ExNTMxREJDM0E1QzAwRjgz
NTE2IC8qIERPTUpJVEhlYXBSYW5nZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0ZCNjBBNDEw
M0Y3REMyMDAxN0EyODYgLyogUHJvcGVydHlEZXNjcmlwdG9yLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTE0NDY5REU4MTA3RUM3RTcwMDY1MDQ0NiAvKiBQcm9wZXJ0eVNsb3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQURFMzlGRkYxNkREMTQ0QjAwMDNDRDRBIC8qIFByb3BlcnR5VGFibGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNjVGQjUxMTcxODRFRUU3MDAwQzEyQjcwIC8qIFByb3RvQ2Fs
bEZyYW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NzRDMzNDMTZBQTJEOUIwMDYyRjAxRCAv
KiBQcm90b3R5cGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzlCMDBDQkMxQzZBQjA3RTAw
ODhDNjVEIC8qIFByb3h5Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzlCMDBD
QkUxQzZBQjA3RTAwODhDNjVEIC8qIFByb3h5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTc5MTYwREJEMUM4RTNFQzgwMDhDMDg1QSAvKiBQcm94eVJldm9rZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjE1Q0QyMjFCQTVGOTg2MDAzMUZGRDMgLyogUHV0QnlJZEZsYWdzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGOTMzMkEzMTRDQTdERDcwMDg1RjNDNiAvKiBQdXRCeUlkU3RhdHVz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTNCNEE5MThCOTJDNEQwMDE3OEEzRiAvKiBQdXRC
eUlkVmFyaWFudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEwMjc5LDE0NSArMTAyNzQsMTU0IEBA
CiAJCQkJODY0MkM1MTIxNTFDMDgzRDAwNDZENEVGIC8qIFJlZ0V4cE1hdGNoZXNBcnJheS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg0MzEwN0VDMDkzMDAxM0U3QjIgLyogUmVnRXhwT2Jq
ZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MjgwODQ0MTA3RUMwOTMwMDEzRTdCMiAvKiBS
ZWdFeHBQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTM1Q0ExNTUxREJDM0E1RjAw
RjgzNTE2IC8qIERPTUpJVEFic3RyYWN0SGVhcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTQw
QzdBMDFCODJFMUMzMDAwRjZCNzkgLyogUmVnaXN0ZXJBdE9mZnNldC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk2NTQwQzdBMTFCODJFMUMzMDAwRjZCNzkgLyogUmVnaXN0ZXJBdE9mZnNldExpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDMzE0MTUxODE0NkQ3MDAwMDMzMjMyIC8qIFJlZ2lz
dGVyU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1N0QyM0VEMTg5MUI1NTQwMDMxQzdGQSAv
KiBSZWd1bGFyRXhwcmVzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBNUJBMTVFOTE4MjM0
MEIzMDBBODJFNjkgLyogUmVtb3RlSW5zcGVjdG9yLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQTU5
NDU1OEYxODI0NUVGRDAwQ0MzODQzIC8qIFJlbW90ZUluc3BlY3Rpb25UYXJnZXQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJOTkyQUJDRjkxQkVBOUJEMjAwNjQwM0EwIC8qIFJlbW90ZUF1dG9tYXRp
b25UYXJnZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVCQTE1RUMxODIzNDBCNDAwQTgyRTY5
IC8qIFJlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTk5OEVE
Njc0MUJFRDcwQUMwMEREODAxNyAvKiBSZW1vdGVDb250cm9sbGFibGVUYXJnZXQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQTU5NDU1OEYxODI0NUVGRDAwQ0MzODQzIC8qIFJlbW90ZUluc3BlY3Rp
b25UYXJnZXQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTVCQTE1RTkxODIzNDBCMzAwQTgyRTY5
IC8qIFJlbW90ZUluc3BlY3Rvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1QkExNUVFMTgyMzQw
QjQwMEE4MkU2OSAvKiBSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQUQyRkNCRjQxREI1OERBRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5TWVtb3J5Q29u
c3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyNEU1NTAxN0VFMjc0OTAwQUJCMjE3
IC8qIFJlcGF0Y2guY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY2QjhBRDgxQzRFRERBMjAwOTY5
MDUyIC8qIEIzRHVwbGljYXRlVGFpbHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTI3NzczREUx
QUFGODNBQzAwQkRFN0U4IC8qIFJ1bnRpbWVUeXBlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBG
REY3MDg1MUQzRjJDMjIwMDkyNzQ0OSAvKiBBaXJMb3dlckVudHJ5U3dpdGNoLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGNzcwMDkyMTQwMkZGM0MwMDc4RUIzOSAvKiBTYW1wbGluZ0NvdW50ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNzkwNUJCNjgxRDEyMDUwRTAwMTlGRTU3IC8qIElubGlu
ZUFjY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3OUQ1Q0Q1QTFDMTEwNkE5MDBDRUNBMDcg
LyogU2FtcGxpbmdQcm9maWxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUwNTAyNzFBQTkw
OTU2MDBEMzNCMzMgLyogU2NvcGVkQXJndW1lbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RTA1MDJGMUFBQTgwNjkwMEQzM0IzMyAvKiBTY29wZWRBcmd1bWVudHNUYWJsZS5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQk5OTJBQkNGOTFCRUE5QkQyMDA2NDAzQTAgLyogUmVtb3RlQXV0b21hdGlv
blRhcmdldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUwNTAyQTFBQTkwOTU2MDBEMzNCMzMg
LyogU2NvcGVPZmZzZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZBN0E4RUUxOENFNEZEODAw
NTIzNzFEIC8qIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNUZEMDA2NzE4OUFGRTlDMDA2MzMyMzEgLyogU2NyaXB0QXJndW1lbnRzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE1RkQwMDZEMTg5QjAwQUEwMDYzMzIzMSAvKiBTY3JpcHRDYWxsRnJhbWUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAwNkYxODlCMDBBQTAwNjMzMjMxIC8qIFNjcmlw
dENhbGxTdGFjay5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjIwMTc4NjFEQ0FFMTRDMDBFQTU5
NTAgLyogREZHTm9kZUZsb3dQcm9qZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1RkQw
MDdEMTg5QjBCNEMwMDYzMzIzMSAvKiBTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE1MDNGQTI1MTg4RUZGRkQwMDExMEYxNCAvKiBTY3JpcHREZWJ1Z1NlcnZl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxNDczNDFFNzFEQzJDRTk2MDBBQTI5QkEgLyogU2Ny
aXB0RXhlY3V0YWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTVEOTNBNTE4NTAxMkE4MDA0
MDBERUQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTE0QUQ5
MTFCMURDQTk3RkQwMDE0RjlGRSAvKiBGdW5jdGlvbkNvZGVCbG9jay5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBNTRDRjJGOTE4NEVBRURBMDAyMzdGMTkgLyogU2NyaXB0T2JqZWN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE1NENGMkY1MTg0RUFCMjQwMDIzN0YxOSAvKiBTY3JpcHRWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzI5OURBNTE3RDEyODU4MDA1RjVGRjkgLyogU2V0Q29u
c3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc5MERENkQxODJGNDk5NzAwNTg4ODA3
IC8qIFNldEl0ZXJhdG9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Mjk5REEx
MTdEMTI4NDgwMDVGNUZGOSAvKiBTZXRQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZFRTk4NDMxQTg5MjI3NTAwNzU0RTkzIC8qIFNldHVwVmFyYXJnc0ZyYW1lLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCURDMTdFODE3MUM5QzkxRDYwMDhBNkFCMyAvKiBTaGFkb3dDaGlja2VuLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkI2NzA0MTdCNkI1QUIwMEE3QUUzRiAvKiBTaW1wbGVU
eXBlZEFycmF5Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMjI1NDk0MzE1RjdE
QkFBMDA2NUU4OTggLyogU2xvdFZpc2l0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDQw
MkMwRTZBNzY0MDAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQkwRjhGMkI5RTE3MzA2QzhEMDA3REJEQTUgLyogVW5saW5rZWRTb3VyY2VDb2RlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGNDkzQUZBMTZEMENBRDMwMDg0NTA4QiAvKiBTb3VyY2VQcm92aWRl
ci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjMzOERGNTFCRTkzRDU1MDAxM0M4OEYgLyogQjND
b25zdHJhaW5lZFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0OURDMTZCMTJFRjI5M0Uw
MDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBG
REU4N0ZEMURGRTZFNTQwMDY0QzM5MCAvKiBTcGFjZVRpbWVTY2hlZHVsZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEYwQ0Q0QzQxNUY2QjZCQjAwMzJGMUMwIC8qIFNwYXJzZUFycmF5VmFsdWVN
YXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1NTQxQjExNjEzQzFGQjAwQ0UzRTI1IC8qIFNw
ZWNpYWxQb2ludGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDgyRTg2MTQxRjNGRjEwMDE3
OUM5NCAvKiBTcGVjdWxhdGVkVHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjZEQjdFQTFE
NjEyNEI4MDBDREJGOEUgLyogU3RhY2tGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Mx
RUFGMTE3OTg3QUI2MDAyOTlEQjIgLyogU3RhY2tWaXNpdG9yLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGN0NGOTUzMURDMDI3REIwMDk4Q0MxMiAvKiBTdG9wSWZOZWNlc3NhcnlUaW1lci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNzMwQjYxMzEyNTAwNjhGMDA5RDI1QjEgLyogU3RyaWN0RXZh
bEFjdGl2YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERUIxMDdFQzdFNzAwNjUw
NDQ2IC8qIFN0cmluZ0NvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwRUMwRUM2
MUFBMEQ3REEwMEI2QUFGQSAvKiBTdHJpbmdJdGVyYXRvclByb3RvdHlwZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxNDQ2OURFQzEwN0VDN0U3MDA2NTA0NDYgLyogU3RyaW5nT2JqZWN0LmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTUzRkY3RjlCMURCRkQyQjkwMEEyNkNDQyAvKiBXYXNtVmFsaWRh
dGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERUQxMDdFQzdFNzAwNjUwNDQ2IC8qIFN0
cmluZ1Byb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzM1RjI0RDEyRTY3NjVCMDAy
QjU1NTMgLyogU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
Q0RFM0I0MzBFNkM4MzJEMDAxNDUzQTcgLyogU3RydWN0dXJlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdFNEVFNzBGMEVCQjdBNUIwMDU5MzRBQSAvKiBTdHJ1Y3R1cmVDaGFpbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyQUY3MzgyQzE4QkJCRjkyMDA4QTVBMzcgLyogU3RydWN0dXJlSURUYWJs
ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBNTRDMkFCMDFDNjU0NEVFMDBBMThENzggLyogSGVh
cFNuYXBzaG90LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyRjBGMkQxMTZCQUVFRTkwMDE4N0Mx
OSAvKiBTdHJ1Y3R1cmVSYXJlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI0MzhBMzE5
MjcwQjFEMDBFMUZCQzkgLyogU3RydWN0dXJlU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
NzY2RDM4MTVBRTRBMUMwMDhGMzYzRSAvKiBTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQ0YwRDBDMEVGMEI4QTUwMDQxM0M4RiAvKiBTdHJ1
Y3R1cmVTdHViSW5mby5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjRBMzhGOTFDOEUxM0RGMDAx
OTAzMTggLyogU3VwZXJTYW1wbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwNUI0MUFCMUE2
RTUwMUUwMDcxNjc1NyAvKiBTeW1ib2wuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFMEU0QUQx
QzI0Qzk0QTAwMkUxN0I2IC8qIEFpclRtcFdpZHRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcw
NUI0MUFEMUE2RTUwMUUwMDcxNjc1NyAvKiBTeW1ib2xDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3MDVCNDFBRjFBNkU1MDFFMDA3MTY3NTcgLyogU3ltYm9sT2JqZWN0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTcwNUI0MUIxMUE2RTUwMUUwMDcxNjc1NyAvKiBTeW1ib2xQcm90
b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5MTlEMjgxNTg1Njc3MzAwNEE0RTdEIC8q
IFN5bWJvbFRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCURDNjA1QjVGMUNFMjZFQTUwMDU5
MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQzc5OTc4NDFDREU5
RkEyMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
MEVDQTYwNzFBRkRCRUEyMDA0NDk3MzkgLyogVGVtcGxhdGVSZWdpc3RyeS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk3ODI3NEQ4RTRDNEQ0RkNEOUExREM2RTYgLyogVGVtcGxhdGVSZWdpc3RyeUtl
eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQTg4MjZCMTY1M0M0Q0QxQTY0Mjk4M0IgLyogVGVt
cGxhdGVSZWdpc3RyeUtleVRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzMxNDEzMTgx
NDU1OTEwMDAzMzIzMiAvKiBUZW1wUmVnaXN0ZXJTZXQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
REMzRDJCMEMxRDM0Mzc3MDAwQkE5MThDIC8qIEhlYXBDZWxsLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGQTJDMTdCMTdEN0NGODQwMDlEMDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRkUyRTZBN0IxRDZFQTYyQzAwNjBGODk2IC8qIFRocm93U2NvcGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTczODY1NTUxMTg2OTdCNDAwNTQwMjc5IC8qIFRodW5rR2Vu
ZXJhdG9ycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJENERFODE5ODMyREFDMDA3RDRCMTkg
LyogVG9UaGlzU3RhdHVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTUyQUJDMUI0ODdBNzcw
MEMzNjdDNSAvKiBUcmFja2VkUmVmZXJlbmNlcy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxNDcz
NDFFNzFEQzJDRTk2MDBBQTI5QkEgLyogU2NyaXB0RXhlY3V0YWJsZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjJCNjcwNzE3QjZCNUFCMDBBN0FFM0YgLyogVHlwZWRBcnJheUNvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyQjY3MEExN0I2QjVBQjAwQTdBRTNGIC8qIFR5cGVk
QXJyYXlUeXBlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGN0NGOTU2MURDMTI1OEQwMDk4Q0Mx
MiAvKiBBdG9taWNzT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUyQjMxMEZGMTk3NUI0
MjQwMDgwODU3QyAvKiBUeXBlTG9jYXRpb25DYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkZCNkMzODFBRjQ4RERDMDBEQjFCRjcgLyogVHlwZW9mVHlwZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MkM5NTJCOTE5QTI4QTFDMDA2OUIzODYgLyogVHlwZVByb2ZpbGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGMkQ0REVCMTk4MzJEQzQwMDdENEIxOSAvKiBUeXBlUHJvZmlsZXJMb2cu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyRDRERUYxOTgzMkREMzAwN0Q0QjE5IC8qIFR5cGVT
ZXQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY2QjhBRTQxQzRFRkUxNzAwOTY5MDUyIC8qIEIz
Rml4U1NBLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzRBMTU4RUJFOTEwMDRDQjlGRiAv
KiB1ZGlzODYuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzQwMTU4RUJFOEIwMDRDQjlGRiAv
KiB1ZGlzODZfZGVjb2RlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkY0Mjc0RDE1OEVCRkU2MDA0
Q0I5RkYgLyogdWRpczg2X2l0YWJfaG9sZGVyLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkY0Mjc0
NTE1OEVCRTkxMDA0Q0I5RkYgLyogdWRpczg2X3N5bi1hdHQuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRjQyNzQ2MTU4RUJFOTEwMDRDQjlGRiAvKiB1ZGlzODZfc3luLWludGVsLmMgaW4gU291cmNl
cyAqLywKLQkJCQlBRDJGQ0JFRTFEQjU4REFEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlDb21waWxl
RXJyb3JQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNDI3NDcxNThFQkU5MTAw
NENCOUZGIC8qIHVkaXM4Nl9zeW4uYyBpbiBTb3VyY2VzICovLAotCQkJCTcwQjc5MTk2MUMwMjRB
MjgwMDI0ODFFMiAvKiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlBRDJGQ0JFNDFEQjU4REFEMDBCM0U3MzYgLyogSlNXZWJBc3NlbWJseUluc3RhbmNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzMyMTU4RUJENTgwMDRDQjlGRiAvKiBVRGlz
ODZEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMTRBRDkxMTcxRENBOTdGRDAw
MTRGOUZFIC8qIEV2YWxDb2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc2RjI3OTQx
NUYxM0M5NjAwNTE3RDY3IC8qIFVubGlua2VkQ29kZUJsb2NrLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTE0QUQ5MTJDMURDQUFBQjAwMDE0RjlGRSAvKiBVbmxpbmtlZEV2YWxDb2RlQmxvY2suY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMTRBRDkxMkYxRENBQUFCMDAwMTRGOUZFIC8qIFVubGlua2Vk
RnVuY3Rpb25Db2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQxNDJFNTUxQjc5NzND
MDAwRjRCRjRCIC8qIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUI1OUY4OTM5MTg5MUYyOUYwMEQ1Q0NEQyAvKiBVbmxpbmtlZEluc3RydWN0aW9uU3Ry
ZWFtLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTE0QUQ5MTJFMURDQUFBQjAwMDE0RjlGRSAvKiBV
bmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMTRB
RDkxMkQxRENBQUFCMDAwMTRGOUZFIC8qIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jay5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkwRjhGMkI5RTE3MzA2QzhEMDA3REJEQTUgLyogVW5saW5rZWRTb3Vy
Y2VDb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjRFNTU4MTdGNzRFREIwMEFCQjIxNyAv
KiBWYWx1ZVJlY292ZXJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc5RUUwQkZGMUI0QUZCODUw
MDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
NkM3MzUwMUFDOUY5OUYwMEJFMTY4MiAvKiBWYXJpYWJsZVdyaXRlRmlyZURldGFpbC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRkUwNTAyQzFBQTkwOTU2MDBEMzNCMzMgLyogVmFyT2Zmc2V0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjBDMjU5MUE4MDEzQUIwMERBMzIyOSAvKiBWaXJ0dWFs
UmVnaXN0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5NTJBQTIxREY3ODYwRDAwRTA2RkJE
IC8qIFZpc2l0UmFjZUtleS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMThFM0E1OTBERjkyNzhD
MDBEOTBCMzQgLyogVk0uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQUQyRkNDMDIxREI1OERBRDAw
QjNFNzM2IC8qIFdlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUZFNTkzMkE3MTgzQzVBMjYwMEExRUNDQyAvKiBWTUVudHJ5U2NvcGUuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJRkUxODdBMDExQkZCRTU1RTAwMzhCQkNBIC8qIEpJVE11bEdlbmVyYXRvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1M0Y0MEU4RjFENTkwMjgyMDA5OUExQjYgLyogV2FzbUIz
SVJHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMjY3MThCQTQxQkU5OUY3ODAwNTIw
MTdCIC8qIEFpckl0ZXJhdGVkUmVnaXN0ZXJDb2FsZXNjaW5nLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUFENEIxREY5MURGMjQ0RTIwMDcxQUUzMiAvKiBXYXNtQmluZGluZy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk1M0ZEMDREMzFEN0FCMjc3MDAzMjg3RDMgLyogV2FzbUNhbGxpbmdDb252ZW50
aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFEMkZDQzMzMURDNDA0NTQwMEIzRTczNiAvKiBX
YXNtRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUzNTU1NzE2MUQ5REZBMzIwMDZENTgz
QiAvKiBXYXNtTWVtb3J5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc5Qjc1OTc0MURGQTRDNjAw
MDUyMTc0QyAvKiBXYXNtTWVtb3J5SW5mb3JtYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTNGNDBFOTcxRDVBN0JFQzAwOTlBMUI2IC8qIFdhc21Nb2R1bGVQYXJzZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNTMxMzc0QkYxRDVDRTk1MDAwQUY3QTBCIC8qIFdhc21QbGFuLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTUzRkY3RjlCMURCRkQyQjkwMEEyNkNDQyAvKiBXYXNtVmFsaWRhdGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkVEOTRGMkUxNzFFM0UyMzAwQkU3N0E0IC8qIFdhdGNo
ZG9nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTE5RDI1MTU4NTNDRTAwMDRBNEU3RCAvKiBX
YXRjaHBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQ0Y3Mzc3MTcxQ0E2RkIwMEM5QkIx
RSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RTg0RjlFMTRFRTFBQ0MwMEQ2RDVE
NCAvKiBXZWFrQmxvY2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTNENDQ0REUxREFGMDlBMDAw
QjkyNzg0IC8qIEIzV2FzbUFkZHJlc3NWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEY3
MjU2NTE0RUUyNjVFMDBCMTY1MkIgLyogV2Vha0hhbmRsZU93bmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE3Q0EzQUUzMTdEQTQxQUUwMDY1MzhBRiAvKiBXZWFrTWFwQ29uc3RydWN0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEYzMzhERjkxQkU5NkFBODAwMTNDODhGIC8qIEIzQ0NhbGxW
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0NBM0FFQjE3REE1MTY4MDA2NTM4QUYgLyog
V2Vha01hcERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTNGNDBFOTcxRDVBN0JFQzAwOTlB
MUI2IC8qIFdhc21Nb2R1bGVQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdDQTNBRTUx
N0RBNDFBRTAwNjUzOEFGIC8qIFdlYWtNYXBQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMTRFODRGQTAxNEVFMUFDQzAwRDZENUQ0IC8qIFdlYWtTZXQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNzA5RkI4NjkxQUUzMzVDNjAwMzlEMDY5IC8qIFdlYWtTZXRDb25zdHJ1Y3Rvci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3MDlGQjg2QjFBRTMzNUM2MDAzOUQwNjkgLyogV2Vha1NldFBy
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBRDJGQ0JFQzFEQjU4REFEMDBCM0U3MzYg
LyogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlBRDJGQ0JFRTFEQjU4REFEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQ
cm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUQ0OTM3RDMxREREMjdERTAwNzdDODA3
IC8qIFdlYkFzc2VtYmx5RnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUQyRkNCRjAx
REI1OERBRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBRDJGQ0JGMjFEQjU4REFEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlJ
bnN0YW5jZVByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBRDJGQ0JGNDFEQjU4REFE
MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlBRDJGQ0JGNjFEQjU4REFEMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlNZW1vcnlQcm90
b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUQyRkNDMDAxREI1OERBRDAwQjNFNzM2IC8q
IFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUQy
RkNDMDIxREI1OERBRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5TW9kdWxlUHJvdG90eXBlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUFENDkzN0M3MURERDBBQUUwMDc3QzgwNyAvKiBXZWJBc3NlbWJs
eU1vZHVsZVJlY29yZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBRDJGQ0MyQzFEQjgzOEZEMDBC
M0U3MzYgLyogV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUQy
RkNCRjgxREI1OERBRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQUQyRkNCRkExREI1OERBRDAwQjNFNzM2IC8qIFdl
YkFzc2VtYmx5UnVudGltZUVycm9yUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFE
MkZDQkZDMURCNThEQUQwMEIzRTczNiAvKiBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQUQyRkNCRkUxREI1OERBRDAwQjNFNzM2IC8qIFdlYkFzc2Vt
Ymx5VGFibGVQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQURCQzU0RDQxREY4RUEy
QjAwNUJGNzM4IC8qIFdlYkFzc2VtYmx5VG9KU0NhbGxlZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyQTRFQzkwQjE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGQzgxNTBCMTQwNDNDMEUwMENGQTYwMyAvKiBXcml0ZUJhcnJpZXJT
dXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RTVBQjNBMTc5OUU0QjIwMEQyODMzRCAv
KiBYODZEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYyQkJEOTcxQzVGRjNG
NTAwMjNFRjIzIC8qIEIzVmFyaWFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODYzQzZEOUMx
NTIxMTExQTAwNTg1RTRFIC8qIFlhcnJDYW5vbmljYWxpemVVQ1MyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTY1RkI2M0E0MUM4RUEwOUMwMDIwNzE5QiAvKiBZYXJyQ2Fub25pY2FsaXplVW5pY29k
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NjcwNEI4NDEyREJBMzM3MDBBOUZFN0IgLyogWWFy
ckludGVycHJldGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2NzA0Qjg2MTJEQkEzMzcwMEE5
RkU3QiAvKiBZYXJySklULmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUFENDkzN0M3MURERDBBQUUw
MDc3QzgwNyAvKiBXZWJBc3NlbWJseU1vZHVsZVJlY29yZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4NjcwNEI4OTEyREJBMzM3MDBBOUZFN0IgLyogWWFyclBhdHRlcm4uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODY3MDRCNDIxMkRCOEE4MTAwQTlGRTdCIC8qIFlhcnJTeW50YXhDaGVja2VyLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTBGMkJCRDk5MUM1RkYzRjUwMDIzRUYyMyAvKiBCM1Zhcmlh
YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMTNGRUNFMDZEM0I0NDVGQ0I2QzkzNDYx
IC8qIEpTTW9kdWxlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTFBODgyNkIxNjUzQzRD
RDFBNjQyOTgzQiAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5VGFibGUuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJNzgyNzREOEU0QzRENEZDRDlBMURDNkU2IC8qIFRlbXBsYXRlUmVnaXN0cnlLZXkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvR2VuZXJhdGVC
cmVha2luZ1J1bGVTdHJpbmdzLnB5IGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtp
bmdSdWxlU3RyaW5ncy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmIwNDc2OWZjYTM5OGFjYzk5Nzg2OTJiNzc3
MDY0MDVlZDA0OGE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVy
YXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQpAQCAtMCwwICsxLDExMCBAQAorIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBv
cnQgc3lzCitpbXBvcnQgcmUKKworaGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisKKworZGVmIG1h
aW4oYXJndj1Ob25lKToKKyAgICBpZiBub3QgYXJndjoKKyAgICAgICAgYXJndiA9IHN5cy5hcmd2
CisgICAgZmlsZU5hbWVTdGFydEluZGV4ID0gMQorCisgICAgaW5jbHVkZURlZmluZXMgPSBGYWxz
ZQorICAgIGlmIGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4XSA9PSAiLWluY2x1ZGVEZWZpbmVzIjoK
KyAgICAgICAgaW5jbHVkZURlZmluZXMgPSBUcnVlCisgICAgICAgIGZpbGVOYW1lU3RhcnRJbmRl
eCA9IGZpbGVOYW1lU3RhcnRJbmRleCArIDEKKworICAgIHN5bWJvbE5hbWUgPSBhcmd2W2ZpbGVO
YW1lU3RhcnRJbmRleF1bMF0ubG93ZXIoKSArIGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4XVsxOl0K
KyAgICBmaWxlTmFtZVN0YXJ0SW5kZXggPSBmaWxlTmFtZVN0YXJ0SW5kZXggKyAxCisgICAgZmls
ZU5hbWVzID0gYXJndltmaWxlTmFtZVN0YXJ0SW5kZXg6XQorCisgICAgcHJpbnQoaGVhZGVyKQor
ICAgIHByaW50KCIiKQorICAgIHByaW50KCIvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlz
IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHRoZSBzY3JpcHQiKQorICAgIHByaW50KCIvLyBX
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHki
KQorICAgIHByaW50KCIiKQorICAgIHByaW50KCIjaW5jbHVkZSBcImNvbmZpZy5oXCIiKQorICAg
IHByaW50KCIjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+IikKKyAgICBwcmludCgiIikKKyAg
ICBpZiBpbmNsdWRlRGVmaW5lczoKKyAgICAgICAgcHJpbnQoIiNkZWZpbmUgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkiKQorICAgICAgICBwcmludCgiI2Rl
ZmluZSBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTICgoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0g
Pj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpKSIpCisgICAgICAgIHByaW50
KCIiKQorICAgIHByaW50KCJuYW1lc3BhY2UgV1RGIHsiKQorICAgIHByaW50KCIiKQorICAgIHBy
aW50KCJjb25zdCBjaGFyKiAiICsgc3ltYm9sTmFtZSArICIgPSAiKQorCisgICAgZm9yIGZpbGVO
YW1lIGluIGZpbGVOYW1lczoKKyAgICAgICAgZm9yIGwgaW4gb3BlbihmaWxlTmFtZSwgJ3InKToK
KyAgICAgICAgICAgIGxpbmUgPSBsLnJzdHJpcCgpCisgICAgICAgICAgICBpZiByZS5tYXRjaCgi
XlxzKiQiLCBsaW5lKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxp
bmUuc3RhcnRzd2l0aCgiIyAiKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBl
bGlmIGxpbmUgPT0gIiMiOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYg
bGluZS5zdGFydHN3aXRoKCIjIik6CisgICAgICAgICAgICAgICAgcHJpbnQobGluZSkKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgiXiguKik7KCAj
IC4qKT8kIiwgbGluZSkKKyAgICAgICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0ID0gIlwiIiArIG1hdGNoLmdyb3VwKDEpLnJlcGxhY2UoIlxcIiwgIlxcXFwi
KSArICI7XCIiCisgICAgICAgICAgICAgICAgICAgIGlmIG1hdGNoLmdyb3VwKDIpOgorICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIpWzM6XQor
ICAgICAgICAgICAgICAgICAgICBwcmludChyZXN1bHQpCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAgIHByaW50
KCJ9IikKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5
cy5hcmd2KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ5
ZTI1OTZlNThhZWY1NzNjNzM4Y2FjOGE3NDU1ZGE1NTc1MzIyNWIuLjM1YzVlMjViMzQ5YWYzOTZm
ZmVhNWYxNmFhMWRhYjA1ZGIzNGJkNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNyw2ICs3LDE3IEBACiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJY
QWdncmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KKwkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8q
IERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKKwkJ
CWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVp
bGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291
cmNlcyIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQkxQ0QxODc4MjFENTU2OTVDMDBDQzdE
RUMgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovLAorCQkJKTsKKwkJCWRlcGVuZGVuY2ll
cyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwcm9kdWN0TmFt
ZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQl9OwogCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0Mg
LyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsK
IAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyog
QnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RG
IEhlYWRlcnMiICovOwpAQCAtODQsNyArOTUsNiBAQAogCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3
RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlv
bi5mcmFtZXdvcmsgKi87IH07CiAJCTE0NDdBRUM3MThGQ0U1ODAwMEIzRDdGRiAvKiBsaWJXVEYu
YSBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMjQ3
QjYyMTQ2ODlCODYwMEU3OEI3NiAvKiBsaWJXVEYuYSAqLzsgfTsKIAkJMTQ0N0FFQzkxOEZDRTU5
NDAwQjNEN0ZGIC8qIG1ibWFsbG9jLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0NDdBRUM4MThGQ0U1OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAg
Ki87IH07Ci0JCTE0NDdBRUNCMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGlu
IEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0Ex
OEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi87IH07CiAJCTE0Njk0MTkyMTZF
QUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTkwMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29w
VGltZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkxNDY5NDE5
MzE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2OTQxOTExNkVBQUY2RDAwMjRFMTQ2IC8q
IFJ1bkxvb3BUaW1lckNGLmNwcCAqLzsgfTsKIAkJMTQ2OTQxOTYxNkVBQUZGODAwMjRFMTQ2IC8q
IFNjaGVkdWxlUGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTQ2OTQxOTQxNkVBQUZGODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oICovOyB9OwpA
QCAtMzM3LDYgKzM0NywxNiBAQAogCQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmln
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4
QjE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggKi87IH07CiAJCUFEN0M0MzRCMUREMkE0QTcw
MDI2ODg4QiAvKiBFeHBlY3RlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUQ3QzQzNEExREQyQTRBNzAwMjY4ODhCIC8qIEV4cGVjdGVkLmggKi87IH07
CiAJCUIzOEZEN0JEMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjM4RkQ3QkMxNjg5NTNFODAw
NjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggKi87IH07CisJCUMyQkE1NDNFMUQ1ODZBRjQwMDBB
MzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUu
ZHlsaWIgKi87IH07CisJCUMyQ0EzN0U5MUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy5jcHAgKi87IH07CisJCUMyQ0EzN0VBMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUMxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJD
QTM3RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTQx
RDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwICovOyB9
OworCQlDMkNBMzdFRTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RjAxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTcxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwICovOyB9OworCQlDMkNB
MzdGMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNK
Sy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNB
MzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNK
Sy5jcHAgKi87IH07CiAJCUM0RjhBOTM3MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM0RjhBOTM2MTlD
NjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLzsgfTsKIAkJQzhCMEUxQTFFMDFBNDg2RUI5
NUUwRDExIC8qIEluZGV4U2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTM3RTFEN0RCRDg0QUMzOEZBRTREMzQgLyogSW5kZXhTZXQuaCAqLzsgfTsK
IAkJQzkxNkI5NzVGMDJGNEY3RThCNEFCMTJEIC8qIEluZGV4TWFwLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QjQzMzgzQTVEMEI0NjNDOTQzM0Q5MzMg
LyogSW5kZXhNYXAuaCAqLzsgfTsKQEAgLTM3MSw2ICszOTEsMTMgQEAKIAkJCXJlbW90ZUdsb2Jh
bElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdU
RjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Q
cm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5l
clBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsK
KwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1
NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsK
IAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9
IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9
IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTQ4Miw2
ICs1MDksMTkgQEAKIAkJMUMxODFDOEQxRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJV
VEYxNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVVGV4dFByb3Zp
ZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM4RTFEMzA3
QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZBMTYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRl
eHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHBhdGggPSBtYWMvVGV4dEJyZWFrSXRl
cmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM2
QkUwRkExRTAzNEM5QTAwMjE3NjE3IC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2Ny
aXB0LnB5dGhvbjsgcGF0aCA9IEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0
RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQjRGQjk4MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkxRDU1OUFF
RjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNCNEZCOUMxRDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9n
dWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdE
RUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMubWFrZTsg
cGF0aCA9IHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1
c2VzVGFicyA9IDE7IH07CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RF
QyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUZBNDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJD
b3JlVGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUaHJl
YWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAwRERC
OTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzExLDYgKzc1MSwxNSBAQAogCQlBOEE0NzQ4QjE1MUE4MjY0MDA0MTIz
RkYgLyogY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNvbmZpZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDdDNDM0QTFERDJBNEE3MDAyNjg4OEIg
LyogRXhwZWN0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhwZWN0ZWQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5
IC8qIEZlYXR1cmVEZWZpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZl
YXR1cmVEZWZpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UwMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7IHBhdGggPSBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3RDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDMkNBMzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2gu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRp
bWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMw
IC8qIE1lZGlhVGltZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRp
bWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc0Miw3ICs3OTEsNyBAQAogCQkJ
YnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTE0NDdBRUM2
MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICov
LAotCQkJCTE0NDdBRUNCMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZy
YW1ld29ya3MgKi8sCisJCQkJQzJCQTU0M0UxRDU4NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNvcmUu
ZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQkxNDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyog
bGliV1RGLmEgaW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTc3OSw2ICs4MjgsMzIgQEAKIAkJCXBhdGggPSBpY3U7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkxQzZCRTBGOTFFMDM0QzJBMDAy
MTc2MTcgLyogU2NyaXB0cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJMUM2QkUwRkExRTAzNEM5QTAwMjE3NjE3IC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxl
U3RyaW5ncy5weSAqLywKKwkJCSk7CisJCQlwYXRoID0gU2NyaXB0czsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CisJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVha2lu
Z1J1bGVzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkx
Q0QxODc5MjFENTU5OEUxMDBDQzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4
dCAqLywKKwkJCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JF
cGlsb2d1ZS50eHQgKi8sCisJCQkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVh
a0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovLAorCQkJCTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NjFENTU5QTkw
MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5NzFENTU5QUE4MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9u
Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0ICovLAorCQkJCTFDQjRGQjk5MUQ1
NTlBRUYwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAq
LywKKwkJCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdENKSy50eHQgKi8sCisJCQkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0ICovLAorCQkJKTsKKwkJCXBhdGggPSBC
cmVha2luZ1J1bGVzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMUZBNDdD
ODcxNTI1MDJEQTAwNTY4RDFCIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC04MDEsOSArODc2LDEyIEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCTVEMjQ3QjZEMTQ2ODlDNDcwMEU3OEI3NiAvKiBDb25maWd1cmF0
aW9ucyAqLywKKwkJCQlDMkNBMzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2Vz
ICovLAogCQkJCTE0MDIyRjNGMThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJCQkJ
NUQyNDdCNjMxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2R1Y3RzICovLAorCQkJCTFDNkJFMEY5MUUw
MzRDMkEwMDIxNzYxNyAvKiBTY3JpcHRzICovLAogCQkJCTVEMjQ3Qjc2MTQ2ODlENzYwMEU3OEI3
NiAvKiBTb3VyY2UgKi8sCisJCQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRT
b3VyY2VzLm1ha2UgKi8sCiAJCQkJMTQ0N0FFQzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRp
b24uZnJhbWV3b3JrICovLAogCQkJCTE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vj
b3JlLmR5bGliICovLAogCQkJKTsKQEAgLTk2MSw2ICsxMDM5LDkgQEAKIAkJCQlBOEE0NzJCQTE1
MUE4MjVBMDA0MTIzRkYgLyogSGFzaFRyYWl0cy5oICovLAogCQkJCUE4QTQ3MkJCMTUxQTgyNUEw
MDQxMjNGRiAvKiBIZXhOdW1iZXIuaCAqLywKIAkJCQlGRTg5MjVBRjFEMDBEQUVDMDA0NjkwN0Ug
LyogSW5kZW50ZXIuaCAqLywKKwkJCQk5QzY3QzU0MjU4OTM0OEUyODVCNDk2OTkgLyogSW5kZXhl
ZENvbnRhaW5lckl0ZXJhdG9yLmggKi8sCisJCQkJNUI0MzM4M0E1RDBCNDYzQzk0MzNEOTMzIC8q
IEluZGV4TWFwLmggKi8sCisJCQkJMzEzN0UxRDdEQkQ4NEFDMzhGQUU0RDM0IC8qIEluZGV4U2V0
LmggKi8sCiAJCQkJMjY4NEQ0MzUxQzAwMEQ0MDAwODFENjYzIC8qIEluZGV4U3BhcnNlU2V0Lmgg
Ki8sCiAJCQkJQThBNDcyQkMxNTFBODI1QTAwNDEyM0ZGIC8qIElubGluZUFTTS5oICovLAogCQkJ
CUE3MERBMDgyMTc5OUYwNEQwMDUyOUE5QiAvKiBJbnNlcnRpb24uaCAqLywKQEAgLTEwNTcsNiAr
MTEzOCw3IEBACiAJCQkJMEY2NkIyODUxREM5N0JBQjAwNEExRDNGIC8qIFNlY29uZHMuaCAqLywK
IAkJCQlBOEE0NzMwNjE1MUE4MjVCMDA0MTIzRkYgLyogU2VnbWVudGVkVmVjdG9yLmggKi8sCiAJ
CQkJQThBNDczMDcxNTFBODI1QjAwNDEyM0ZGIC8qIFNlbnRpbmVsTGlua2VkTGlzdC5oICovLAor
CQkJCUE4QTQ3MzFBMTUxQTgyNUIwMDQxMjNGRiAvKiBTZXRGb3JTY29wZS5oICovLAogCQkJCUE4
QTQ3MzA4MTUxQTgyNUIwMDQxMjNGRiAvKiBTSEExLmNwcCAqLywKIAkJCQlBOEE0NzMwOTE1MUE4
MjVCMDA0MTIzRkYgLyogU0hBMS5oICovLAogCQkJCTBGRUIzRENFMUJCNUQ2ODQwMDlEN0FBRCAv
KiBTaGFyZWRUYXNrLmggKi8sCkBAIC0xMDgxLDcgKzExNjMsNiBAQAogCQkJCTBGRERCRkE2MTY2
NkRGQTMwMEM1NUZFRiAvKiBTdHJpbmdQcmludFN0cmVhbS5oICovLAogCQkJCTU1OTdGODJDMUQ5
NEI5OTcwMDY2QkMyMSAvKiBTeW5jaHJvbml6ZWRGaXhlZFF1ZXVlLmggKi8sCiAJCQkJMEZCMzE3
QzMxQzQ4ODAwMTAwN0UzOTVBIC8qIFN5c3RlbVRyYWNpbmcuaCAqLywKLQkJCQlBOEE0NzMxQTE1
MUE4MjVCMDA0MTIzRkYgLyogU2V0Rm9yU2NvcGUuaCAqLywKIAkJCQlBOEE0NzMyRjE1MUE4MjVC
MDA0MTIzRkYgLyogVGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uLmggKi8sCiAJCQkJQThBNDczMzAx
NTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuY3BwICovLAog
CQkJCUE4QTQ3MzMxMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRJZGVudGlmaWVyRGF0YVB0aHJl
YWRzLmggKi8sCkBAIC0xMTE0LDkgKzExOTUsNiBAQAogCQkJCUU0QTBBRDM4MUE5NjI0NTUwMDUz
NkRGNiAvKiBXb3JrUXVldWUuaCAqLywKIAkJCQlBOEE0NzM3QTE1MUE4MjVCMDA0MTIzRkYgLyog
V1RGVGhyZWFkRGF0YS5jcHAgKi8sCiAJCQkJQThBNDczN0IxNTFBODI1QjAwNDEyM0ZGIC8qIFdU
RlRocmVhZERhdGEuaCAqLywKLQkJCQkzMTM3RTFEN0RCRDg0QUMzOEZBRTREMzQgLyogSW5kZXhT
ZXQuaCAqLywKLQkJCQk1QjQzMzgzQTVEMEI0NjNDOTQzM0Q5MzMgLyogSW5kZXhNYXAuaCAqLywK
LQkJCQk5QzY3QzU0MjU4OTM0OEUyODVCNDk2OTkgLyogSW5kZXhlZENvbnRhaW5lckl0ZXJhdG9y
LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHd0ZjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0xMTYyLDYgKzEyNDAsNyBAQAogCQlBOEE0NzMxQjE1MUE4MjVCMDA0MTIzRkYgLyogdGV4
dCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3
OTExRDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJQTVCQTE1RjYxODI0
MzU5RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBp
Y3UgKi8sCiAJCQkJQTVCQTE1RjExODI0MzM5RjAwQTgyRTY5IC8qIG1hYyAqLywKQEAgLTExOTQs
NiArMTI3Myw3IEBACiAJCQkJQThBNDczMkIxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ1N0YXRp
Y3MuY3BwICovLAogCQkJCTkzRjE5OTNEMTlENzk1OEQwMEMyMzkwQiAvKiBTdHJpbmdWaWV3LmNw
cCAqLywKIAkJCQkxQTZFQjFERjE4N0QwQkQzMDAzMDEyNkYgLyogU3RyaW5nVmlldy5oICovLAor
CQkJCUY3MkJCREIxMDdGQTQyNDg4NjE3OEI5RSAvKiBTeW1ib2xJbXBsLmNwcCAqLywKIAkJCQk3
MEVDQTYwQjFCMDI0MjY4MDA0NDk3MzkgLyogU3ltYm9sSW1wbC5oICovLAogCQkJCTcwQTk5M0ZD
MUFENzE1MTMwMEZBNjE1QiAvKiBTeW1ib2xSZWdpc3RyeS5jcHAgKi8sCiAJCQkJNzBBOTkzRkQx
QUQ3MTUxMzAwRkE2MTVCIC8qIFN5bWJvbFJlZ2lzdHJ5LmggKi8sCkBAIC0xMjA0LDcgKzEyODQs
NiBAQAogCQkJCTcwRUNBNjBDMUIwMjQyNjgwMDQ0OTczOSAvKiBVbmlxdWVkU3RyaW5nSW1wbC5o
ICovLAogCQkJCUE4QTQ3MzJEMTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZTdHJpbmcuY3BwICovLAog
CQkJCUE4QTQ3MzJFMTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZTdHJpbmcuaCAqLywKLQkJCQlGNzJC
QkRCMTA3RkE0MjQ4ODYxNzhCOUUgLyogU3ltYm9sSW1wbC5jcHAgKi8sCiAJCQkpOwogCQkJcGF0
aCA9IHRleHQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTIzOSw2ICsxMzE4LDIz
IEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
QzJDQTM3REYxRDU1QzhEODAwNDg2Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlz
YSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQzJDQTM3RTAxRDU1Qzk3MTAwNDg2
Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8sCisJCQkJQzJDQTM3RTEx
RDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwICovLAorCQkJ
CUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VD
SksuY3BwICovLAorCQkJCUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNTFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi8s
CisJCQkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFODFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAgKi8sCisJ
CQkpOworCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQkJcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dURjsKKwkJCXNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7CisJCX07CiAJCUNF
NDY1MTZDMTlEQjFGQjQwMDNFQ0EwNSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xMzA5LDEzICsxNDA1LDEyIEBACiAJCQkJQThBNDc0Mzgx
NTFBODI1QjAwNDEyM0ZGIC8qIEF0b21pY1N0cmluZ0ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTlCRDhGNDBCMTc2QzJCNDcwMDAyRDg2NSAvKiBBdG9taWNTdHJpbmdUYWJsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTQ2OTQxOUMxNkVBQjEwQTAwMjRFMTQ2IC8qIEF1dG9kcmFpbmVkUG9vbC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY0M0Q4RjIxREI1QUREQzAwMTA4RkI2IC8qIEF1dG9tYXRp
Y1RocmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRENFRTIyMDUxQ0VCOTg2OTAwMEMyMzk2IC8q
IEJhY2t3YXJkc0dyYXBoLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkIxNEUxOTE4MEZBMjE4MDA5
QjZCNEQgLyogQmFnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkIxNEUxQjE4MTBFMURDMDA5QjZC
NEQgLyogQmFnVG9IYXNoTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MTM0MDEzOTE1QjA5MkZE
MDAxRkYwQjggLyogQmFzZTY0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjY2QjI4RjFEQzk3QkFC
MDA0QTFEM0YgLyogU2Vjb25kcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQTkxNTFBODI1
QjAwNDEyM0ZGIC8qIGJpZ251bS1kdG9hLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjY2QjI5MTFE
Qzk3QkFCMDA0QTFEM0YgLyogVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOEE0NzNBQjE1MUE4MjVCMDA0MTIzRkYgLyogYmlnbnVtLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOEE0NzQ1MjE1MUE4MjVCMDA0MTIzRkYgLyogQmluYXJ5U2VtYXBob3JlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzM4QTE1MUE4MjVCMDA0MTIzRkYgLyogQml0bWFwLmggaW4g
SGVhZGVycyAqLywKQEAgLTEzMjUsNiArMTQyMCw3IEBACiAJCQkJQThBNDczOEUxNTFBODI1QjAw
NDEyM0ZGIC8qIEJsb2NrU3RhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3MzhGMTUxQTgy
NUIwMDQxMjNGRiAvKiBCbG9vbUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5MzI3NEIx
QzE3RjRCNzAwQ0Y2NTY0IC8qIEJveC5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0MzRjcyM0ExRDc4
ODExQTAwNjc0RTI2IC8qIEJyaWdhbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDU3MDQ1MUJF
ODM0NDEwMDYyQTYyOSAvKiBCdWJibGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzM5
MTE1MUE4MjVCMDA0MTIzRkYgLyogQnVtcFBvaW50ZXJBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCUVCOTVFMUYwMTYxQTcyNDEwMDg5QTJGNSAvKiBCeXRlT3JkZXIuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTMzMyw2ICsxNDI5LDcgQEAKIAkJCQlBOEE0NzQ1RTE1MUE4MjVCMDA0MTIzRkYg
LyogQ2hhcmFjdGVyTmFtZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3Mzk0MTUxQTgyNUIw
MDQxMjNGRiAvKiBDaGVja2VkQXJpdGhtZXRpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDcz
OTUxNTFBODI1QjAwNDEyM0ZGIC8qIENoZWNrZWRCb29sZWFuLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjY2QjI4QjFEQzk3QkFCMDA0QTFEM0YgLyogQ2xvY2tUeXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEE0NzQ1RjE1MUE4MjVCMDA0MTIzRkYgLyogQ29sbGF0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQzRFREU2MTY5NjE0OTYwMEY2NTA0MSAvKiBDb21tYVByaW50ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCURFNUEwOUZDMUJBMzY5OTIwMDNENDQyNCAvKiBDb21tb25DcnlwdG9TUEku
aCBpbiBIZWFkZXJzICovLApAQCAtMTM0NywxMiArMTQ0NCwxMiBAQAogCQkJCUE4QTQ3MzlCMTUx
QTgyNUIwMDQxMjNGRiAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTE1NTU2RjYxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDNBMTUxQTgyNUIwMDQxMjNGRiAvKiBD
U3RyaW5nLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjBGQ0RERTFERDE2N0Y5MDBDQ0FCNTMgLyog
TG9ja0FsZ29yaXRobS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczOUQxNTFBODI1QjAwNDEy
M0ZGIC8qIEN1cnJlbnRUaW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzM5RjE1MUE4MjVC
MDA0MTIzRkYgLyogRGF0YUxvZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQTExNTFBODI1
QjAwNDEyM0ZGIC8qIERhdGVNYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNBMzE1MUE4
MjVCMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQjY2
QTYxN0I2QjRGQjAwQTdBRTNGIC8qIERlZmVycmFibGVSZWZDb3VudGVkLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBNTYxRjMxMDFERjI2NDIxMDBGRjY3NUQgLyogRGVwcmVjYXRlZE9wdGlvbmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNBNTE1MUE4MjVCMDA0MTIzRkYgLyogRGVxdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0E2MTUxQTgyNUIwMDQxMjNGRiAvKiBEaXNhbGxvd0NU
eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNBRjE1MUE4MjVCMDA0MTIzRkYgLyogZGl5
LWZwLmggaW4gSGVhZGVycyAqLywKQEAgLTEzNjIsNiArMTQ1OSw4IEBACiAJCQkJQThBNDczQTcx
NTFBODI1QjAwNDEyM0ZGIC8qIERvdWJseUxpbmtlZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4QTQ3M0JCMTUxQTgyNUIwMDQxMjNGRiAvKiBkdG9hLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0RERTkzMjFDREMwNTJEMDBGRDM0OTEgLyogZHlsZFNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MUFFQTg4RTIxRDZCQkNGNDAwRTVBRDY0IC8qIEVudW1UcmFpdHMuaCBpbiBIZWFkZXJzICovLAor
CQkJCUFEN0M0MzRCMUREMkE0QTcwMDI2ODg4QiAvKiBFeHBlY3RlZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThBNDczQzExNTFBODI1QjAwNDEyM0ZGIC8qIEV4cG9ydE1hY3Jvcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThBNDczQjQxNTFBODI1QjAwNDEyM0ZGIC8qIGZhc3QtZHRvYS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZEODFBQzUxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0b3Iu
aCBpbiBIZWFkZXJzICovLApAQCAtMTM3OCw3ICsxNDc3LDYgQEAKIAkJCQkyQzA1Mzg1NDE1QkM4
MTkwMDBGMjFCOTYgLyogR3JlZ29yaWFuRGF0ZVRpbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
QTQ3M0QzMTUxQTgyNUIwMDQxMjNGRiAvKiBIYXNoQ291bnRlZFNldC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThBNDc0MkQxNTFBODI1QjAwNDEyM0ZGIC8qIEhhc2hlci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMUFFQTg4RTIxRDZCQkNGNDAwRTVBRDY0IC8qIEVudW1UcmFpdHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4QTQ3M0Q0MTUxQTgyNUIwMDQxMjNGRiAvKiBIYXNoRnVuY3Rpb25zLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzNENTE1MUE4MjVCMDA0MTIzRkYgLyogSGFzaEl0ZXJhdG9y
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRDYxNTFBODI1QjAwNDEyM0ZGIC8qIEhhc2hN
YXAuaCBpbiBIZWFkZXJzICovLApAQCAtMTM4NywzMSArMTQ4NSwzMyBAQAogCQkJCUE4QTQ3M0RB
MTUxQTgyNUIwMDQxMjNGRiAvKiBIYXNoVHJhaXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0
NzNEQjE1MUE4MjVCMDA0MTIzRkYgLyogSGV4TnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RTg5MjVCMDFEMDBEQUVDMDA0NjkwN0UgLyogSW5kZW50ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTRCMjY4MEREOUI5NzQ0MDI4OTlFRDU3MiAvKiBJbmRleGVkQ29udGFpbmVySXRlcmF0b3IuaCBp
biBIZWFkZXJzICovLAorCQkJCUM5MTZCOTc1RjAyRjRGN0U4QjRBQjEyRCAvKiBJbmRleE1hcC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQzhCMEUxQTFFMDFBNDg2RUI5NUUwRDExIC8qIEluZGV4U2V0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjg0RDQzNjFDMDAwRDQwMDA4MUQ2NjMgLyogSW5kZXhT
cGFyc2VTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0RDMTUxQTgyNUIwMDQxMjNGRiAv
KiBJbmxpbmVBU00uaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MERBMDg0MTc5OUYwNEQwMDUyOUE5
QiAvKiBJbnNlcnRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTI2MTQ3QjBBMTVERENDREMwMERE
QjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Q0REN0ZGODE4NkQyOTFFMDA3NDMzQ0QgLyogSXRlcmF0b3JBZGFwdG9ycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0NERDdGRkExODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJhdG9yUmFuZ2UuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGNDNEOEYyMURCNUFEREMwMDEwOEZCNiAvKiBBdXRvbWF0aWNUaHJl
YWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQUM5MUE4MTg5NDJGQzQwMDI0NDkzOSAvKiBMQ2hh
ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2MEYzMzAxREZDQkQxQjAwNDE2RDZDIC8qIExvY2tl
ZFByaW50U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MzlFQjA2MzFENTUyODQyMDBDODJF
RjcgLyogTEVCRGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwREEwODUxNzk5RjA0RDAw
NTI5QTlCIC8qIExpc3REdW1wLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjY2QjI5MzFEQzk3QkFC
MDA0QTFEM0YgLyogV2FsbFRpbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0UxMTUxQTgy
NUIwMDQxMjNGRiAvKiBMaXN0SGFzaFNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFMTY0NkIx
QjZGRkM5NjAwNDAwRTdDIC8qIExvY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMEZDRERFMURE
MTY3RjkwMENDQUI1MyAvKiBMb2NrQWxnb3JpdGhtLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjYw
RjMzMDFERkNCRDFCMDA0MTZENkMgLyogTG9ja2VkUHJpbnRTdHJlYW0uaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4QTQ3M0UzMTUxQTgyNUIwMDQxMjNGRiAvKiBMb2NrZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxM0UxNzBCMUNEN0Q1QkYwMEUzNjUwQiAvKiBMb2dnaW5nQWNjdW11bGF0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0U2MTUxQTgyNUIwMDQxMjNGRiAvKiBNYWluVGhyZWFk
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTIzM0M3RDE3REFBNkUzMDBBOTNBQ0YgLyogTWFsbG9j
UHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQk3QzNGNzIzQTFENzg4MTFBMDA2NzRFMjYgLyogQnJp
Z2FuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRTgxNTFBODI1QjAwNDEyM0ZGIC8qIE1h
dGhFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0VBMTUxQTgyNUIwMDQxMjNGRiAv
KiBNRDUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBN
ZWRpYVRpbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0VCMTUxQTgyNUIwMDQxMjNGRiAv
KiBNZXNzYWdlUXVldWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0VEMTUxQTgyNUIwMDQx
MjNGRiAvKiBNZXRhQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNFRTE1MUE4
MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9jYXRvckhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY2NkIyOEQxREM5N0JBQjAwNEExRDNGIC8qIE1vbm90b25pY1RpbWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUZFODIyNTMxMUIyQTFFNUIwMEJBNjhGRCAvKiBOYWtlZFB0ci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEYwRDg1QjQxNzIzNENDMTAwMzM4MjEwIC8qIE5vTG9jay5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThBNDczRUYxNTFBODI1QjAwNDEyM0ZGIC8qIE5vbmNvcHlhYmxlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTE0MjEsNiArMTUyMSw3IEBACiAJCQkJMUFGREU2NTMxOTUzQjIzRDAwQzQ4
RkZBIC8qIE9wdGlvbmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTQ2NTYxOTFDN0ZDNjhFMDBG
NTkyMEYgLyogT3B0aW9uU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk0OTU4NDFDNTcxQ0M5
MDA0MTNBNDggLyogT3JkZXJNYWtlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTRFNzg1RTgxREZC
MzMwMTAwMjA5QkQxIC8qIE9yZGluYWxOdW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3
M0Y2MTUxQTgyNUIwMDQxMjNGRiAvKiBPU0FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0NCQkEwNzQxOUJCN0ZEQzAwQkJGMDI1IC8qIE9TT2JqZWN0UHRyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEE0NzNGQTE1MUE4MjVCMDA0MTIzRkYgLyogT1NSYW5kb21Tb3VyY2UuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTQ0NCwxMCArMTU0NSwxMCBAQAogCQkJCUE4QTQ3NDE2MTUxQTgyNUIwMDQx
MjNGRiAvKiBSYW5kb21OdW1iZXJTZWVkLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjcyNUNBQzFD
NTA0NjE2MDBBRDk0M0EgLyogUmFuZ2VTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcxMDVB
MTY2NDNGMTkwMDkwQjBBRCAvKiBSYXdQb2ludGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkRF
ODdGNzFERkQwN0NDMDA2NEMzOTAgLyogUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4QTQ3NDE3MTUxQTgyNUIwMDQxMjNGRiAvKiBSZWRCbGFja1RyZWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTI2Mjk5QjZFMTdBOUU1QjgwMEFERUJFNSAvKiBSZWYuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4QTQ3NDE4MTUxQTgyNUIwMDQxMjNGRiAvKiBSZWZDb3VudGVkLmggaW4g
SGVhZGVycyAqLywKLQkJCQlBNTYxRjMxMDFERjI2NDIxMDBGRjY3NUQgLyogRGVwcmVjYXRlZE9w
dGlvbmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQxOTE1MUE4MjVCMDA0MTIzRkYgLyog
UmVmQ291bnRlZEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQxQjE1MUE4MjVCMDA0
MTIzRkYgLyogUmVmQ291bnRlZExlYWtDb3VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkY0
NkY2MTFBMjg0MEVFMDBDQ0JGMjIgLyogUmVmQ291bnRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
NDU5LDE3ICsxNTYwLDE2IEBACiAJCQkJMTRGM0IwRjcxNUU0NUU0NjAwMjEwMDY5IC8qIFNhdHVy
YXRlZEFyaXRobWV0aWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0Njk0MTk2MTZFQUFGRjgwMDI0
RTE0NiAvKiBTY2hlZHVsZVBhaXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMzUyNEFCMUQ2M0Ey
RkYwMDMxNzI5QiAvKiBTY29wZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTRFNzg1RTgxREZCMzMw
MTAwMjA5QkQxIC8qIE9yZGluYWxOdW1iZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNjZCMjhE
MURDOTdCQUIwMDRBMUQzRiAvKiBNb25vdG9uaWNUaW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkVDODRCMTFCREFDRDM5MDA4MEZGNzQgLyogU2NvcGVkTGFtYmRhLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjY2QjI4RjFEQzk3QkFCMDA0QTFEM0YgLyogU2Vjb25kcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTUwOThCMDIxQzE2QTRGOTAwMDg3Nzk3IC8qIFNlY3VyaXR5U1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOEE0NzQxRjE1MUE4MjVCMDA0MTIzRkYgLyogU2VnbWVudGVkVmVjdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQyMDE1MUE4MjVCMDA0MTIzRkYgLyogU2VudGluZWxM
aW5rZWRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEE0NzQzMzE1MUE4MjVCMDA0MTIzRkYg
LyogU2V0Rm9yU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDIyMTUxQTgyNUIwMDQx
MjNGRiAvKiBTSEExLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVCM0RDRjFCQjVENjg0MDA5RDdB
QUQgLyogU2hhcmVkVGFzay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MjMxNTFBODI1QjAw
NDEyM0ZGIC8qIFNpbXBsZVN0YXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQyNDE1MUE4
MjVCMDA0MTIzRkYgLyogU2luZ2x5TGlua2VkTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZE
RTg3RjcxREZEMDdDQzAwNjRDMzkwIC8qIFJlY3Vyc2l2ZUxvY2tBZGFwdGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzQ4NzQ1MzE3QTBCREFFMDBGQTA0Q0IgLyogU2l4Q2hhcmFjdGVySGFzaC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzlFQzcwNjExQzk5RjlCQzAwM0EzQUUyIC8qIFNtYWxsUHRy
U2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQyNjE1MUE4MjVCMDA0MTIzRkYgLyogU3Bl
Y3RydW0uaCBpbiBIZWFkZXJzICovLApAQCAtMTQ4MCwxMyArMTU4MCwxMSBAQAogCQkJCUM0RjhB
OTM3MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
NkJCNzY5MTYyRjMwMDUwMEREMTZEQiAvKiBTdHJlYW1CdWZmZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4QTQ3NDNCMTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdCdWZmZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTU1OTdGODJGMUQ5NEI5OTcwMDY2QkMyMSAvKiBTeW5jaHJvbml6ZWRGaXhlZFF1
ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQzRDE1MUE4MjVCMDA0MTIzRkYgLyogU3Ry
aW5nQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDMwQjQ3ODkxQUFBQUMxQTAwMTIyM0RB
IC8qIFN0cmluZ0NvbW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0M0UxNTFBODI1QjAw
NDEyM0ZGIC8qIFN0cmluZ0NvbmNhdGVuYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQy
QzE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OEE0NzQzRjE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nSGFzaC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQUQ3QzQzNEIxREQyQTRBNzAwMjY4ODhCIC8qIEV4cGVjdGVkLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNzQ4NzQ1NDE3QTBCREFFMDBGQTA0Q0IgLyogU3RyaW5nSGFzaER1bXBDb250ZXh0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ0MTE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nSW1w
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0NDIxNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmlu
Z09wZXJhdG9ycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNDk1LDggKzE1OTMsOCBAQAogCQkJCUE4
QTQ3M0I4MTUxQTgyNUIwMDQxMjNGRiAvKiBzdHJ0b2QuaCBpbiBIZWFkZXJzICovLAogCQkJCTcw
RUNBNjBFMUIwMjQyNjgwMDQ0OTczOSAvKiBTeW1ib2xJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3MEE5OTNGRjFBRDcxNTEzMDBGQTYxNUIgLyogU3ltYm9sUmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTU1OTdGODJGMUQ5NEI5OTcwMDY2QkMyMSAvKiBTeW5jaHJvbml6ZWRGaXhlZFF1
ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkIzMTdDNDFDNDg4MDAxMDA3RTM5NUEgLyogU3lz
dGVtVHJhY2luZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThBNDc0MzMxNTFBODI1QjAwNDEyM0ZG
IC8qIFNldEZvclNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzE4MUM4MDFEMzA3OERBMDBG
NUZBMTYgLyogVGV4dEJyZWFrSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDQ0
MTUxQTgyNUIwMDQxMjNGRiAvKiBUZXh0UG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
QTQ3NDQ3MTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRGdW5jdGlvbkludm9jYXRpb24uaCBpbiBI
ZWFkZXJzICovLApAQCAtMTUwNSw2ICsxNjAzLDcgQEAKIAkJCQlBOEE0NzQ0RDE1MUE4MjVCMDA0
MTIzRkYgLyogVGhyZWFkaW5nUHJpbWl0aXZlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0
NTQxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOEE0NzQ1NTE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkU3BlY2lmaWMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNjZCMjkxMURDOTdCQUIwMDRBMUQzRiAvKiBUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1MzA3MUNBMUM0MDQyNzIwMDM4NDg5
OCAvKiBUaW55TFJVQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUQ2N0I2MUIyMkQ0RDgw
MDY2Q0UxNSAvKiBUaW55UHRyU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDlFRjE2MzE2QkJG
RTBEMDAwQTQzMzEgLyogVHJpU3RhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMTUyMyw2ICsxNjIy
LDcgQEAKIAkJCQlBOEE0NzQ3RTE1MUE4MjVCMDA0MTIzRkYgLyogVmVjdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOEE0NzQ3RjE1MUE4MjVCMDA0MTIzRkYgLyogVmVjdG9yVHJhaXRzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzQ4MDE1MUE4MjVCMDA0MTIzRkYgLyogVk1UYWdzLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjY2QjI5MzFEQzk3QkFCMDA0QTFEM0YgLyogV2FsbFRpbWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTk3NENGQzhFMTZBNEYzMjcwMDZENTQwNCAvKiBXZWFrUHRyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjM1MDE2NDFCQjI1OEQ1MDBGMEEyQTMgLyogV2Vha1JhbmRv
bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUZBNDdDOEIxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNv
cmVUaHJlYWQuaCBpbiBIZWFkZXJzICovLApAQCAtMTUzMCwxMSArMTYzMCw3IEBACiAJCQkJRTRB
MEFEM0ExQTk2MjQ1NTAwNTM2REY2IC8qIFdvcmtRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QThBNDc0NDYxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQThBNDc0ODcxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGNjZCMjhCMURDOTdCQUIwMDRBMUQzRiAvKiBDbG9ja1R5cGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNFNzNFMDI1MTlEQ0I3QUIwMDU4MEQ1QyAvKiBYUENTUEkuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUM4QjBFMUExRTAxQTQ4NkVCOTVFMEQxMSAvKiBJbmRleFNldC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJQzkxNkI5NzVGMDJGNEY3RThCNEFCMTJEIC8qIEluZGV4TWFwLmggaW4g
SGVhZGVycyAqLywKLQkJCQk0QjI2ODBERDlCOTc0NDAyODk5RUQ1NzIgLyogSW5kZXhlZENvbnRh
aW5lckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE1NzAsNiArMTY2Niw3IEBACiAJCQli
dWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCQkxQ0QxODc4ODFE
NTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2
MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1l
ID0gV1RGOwpAQCAtMTYwMCwxMiArMTY5NywyNyBAQAogCQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0
N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovLAogCQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNE
NzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovLAorCQkJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RF
QyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMTQ0N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8q
IG1ibWFsbG9jICovLAogCQkJKTsKIAkJfTsKIC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8K
IAogLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3
ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVyYXRlIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJ
CWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIx
NDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsK
KwkJCW5hbWUgPSAiR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzIjsKKwkJCW91dHB1dFBhdGhzID0g
KAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJ
c2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlM
VF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVD
VFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuXG4vYmluL2xuIC1zZmggXCIke1NSQ1JPT1R9
XCIgV1RGXG5leHBvcnQgV1RGPVwiV1RGXCJcblxuaWYgWyAhIC1kIEJyZWFraW5nUnVsZXMgXTsg
dGhlblxuICAgIG1rZGlyIEJyZWFraW5nUnVsZXNcbmZpXG5cbmlmIFsgXCIkTUFDT1NYX0RFUExP
WU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMFwiIF0gOyB0aGVuXG4gICAgZXhwb3J0IEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVD0wXG5lbHNlXG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVD0xXG5maVxuXG5pZiBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAu
MTBcIiBdIHx8IFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMVwiIF0g
fHwgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEwLjEyXCIgXSB8fCBbIFwi
JFNES19WRVJTSU9OX01BSk9SXCIgPT0gXCI5MDAwMFwiIF0gfHwgWyBcIiRTREtfVkVSU0lPTl9N
QUpPUlwiID09IFwiMTAwMDAwXCIgXTsgdGhlblxuICAgIGV4cG9ydCBIQVZFX0lDVUdFTkJSSz0w
XG5lbHNlXG4gICAgZXhwb3J0IEhBVkVfSUNVR0VOQlJLPTFcbmZpXG5cbmlmIFsgXCIke0FDVElP
Tn1cIiA9IFwiYnVpbGRcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsXCIgLW8gXCIke0FD
VElPTn1cIiA9IFwiaW5zdGFsbGhkcnNcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsYXBp
XCIgXTsgdGhlblxubWFrZSAtLW5vLWJ1aWx0aW4tcnVsZXMgLWYgXCJXVEYvd3RmL0Rlcml2ZWRT
b3VyY2VzLm1ha2VcIiAtaiBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5hY3RpdmVjcHVgIFNES1JP
T1Q9XCIke1NES1JPT1R9XCJcbmZpIjsKKwkJfTsKIAkJNjVBRkExNzAxNjMwQjk3NzAwM0Q3MjND
IC8qIENvcHkgV1RGIEhlYWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxk
UGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMTY0MSwxNCArMTc1
MywxNSBAQAogCQkJCUE1QkExNUZBMTgyNDM1QTYwMEE4MkU2OSAvKiBBdG9taWNTdHJpbmdJbXBs
Q0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUJDNzBGMDUxNzZDMzc5RDAwMTAxREVDIC8qIEF0
b21pY1N0cmluZ1RhYmxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Njk0MTlEMTZFQUIxMEEw
MDI0RTE0NiAvKiBBdXRvZHJhaW5lZFBvb2xNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQkwRjQz
RDhGMTFEQjVBRERDMDAxMDhGQjYgLyogQXV0b21hdGljVGhyZWFkLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTgxMzQwMTM4MTVCMDkyRkQwMDFGRjBCOCAvKiBCYXNlNjQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThBNDczQTgxNTFBODI1QjAwNDEyM0ZGIC8qIGJpZ251bS1kdG9hLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJQThBNDczQUExNTFBODI1QjAwNDEyM0ZGIC8qIGJpZ251bS5jYyBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3NDUxMTUxQTgyNUIwMDQxMjNGRiAvKiBCaW5hcnlTZW1hcGhv
cmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOEIxNTFBODI1QjAwNDEyM0ZGIC8qIEJp
dFZlY3Rvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjY2QjI5MDFEQzk3QkFCMDA0QTFEM0Yg
LyogVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDRUUy
MjAxMUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNFeGNlcHRpb25zLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThBNDczQUMxNTFBODI1QjAwNDEyM0ZGIC8qIGNhY2hlZC1wb3dlcnMuY2MgaW4g
U291cmNlcyAqLywKKwkJCQkwRjY2QjI4QTFEQzk3QkFCMDA0QTFEM0YgLyogQ2xvY2tUeXBlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDYwMTUxQTgyNUIwMDQxMjNGRiAvKiBDb2xsYXRv
ckRlZmF1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0NjMxNTFBODI1QjAwNDEyM0ZG
IC8qIENvbGxhdG9ySUNVLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOEYyQjkyMTcyRTAxMDMw
MDdEQkRBNSAvKiBDb21waWxhdGlvblRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE2NTcs
NiArMTc3MCw3IEBACiAJCQkJRTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBo
aWNVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzkxNTFBODI1QjAwNDEy
M0ZGIC8qIENTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUMxNTFBODI1QjAw
NDEyM0ZGIC8qIEN1cnJlbnRUaW1lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0U5MUQ1
NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQThBNDczOUUxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGFMb2cuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQThBNDczQTAxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGVNYXRoLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0EyMTUxQTgyNUIwMDQxMjNGRiAvKiBEZWNpbWFsTnVt
YmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTY2NSwyMSArMTc3OSwzMCBAQAogCQkJCUE4QTQ3
M0IwMTUxQTgyNUIwMDQxMjNGRiAvKiBkb3VibGUtY29udmVyc2lvbi5jYyBpbiBTb3VyY2VzICov
LAogCQkJCUE4QTQ3M0JBMTUxQTgyNUIwMDQxMjNGRiAvKiBkdG9hLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4QTQ3M0IzMTUxQTgyNUIwMDQxMjNGRiAvKiBmYXN0LWR0b2EuY2MgaW4gU291cmNl
cyAqLywKLQkJCQkwRjYwRjMyRjFERkNCRDFCMDA0MTZENkMgLyogTG9ja2VkUHJpbnRTdHJlYW0u
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY3QzVGQjYxRDg4NUNGMjAwNDRGNUUyIC8qIEZhc3RC
aXRWZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQzMxNTFBODI1QjAwNDEyM0ZG
IC8qIEZhc3RNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5RDMzNjAxNjVEQkE3MzAw
NUFEMzg3IC8qIEZpbGVQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNC
NTE1MUE4MjVCMDA0MTIzRkYgLyogZml4ZWQtZHRvYS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTFB
MUQ4QjlFMTczMTg3OTgwMDE0MURBNCAvKiBGdW5jdGlvbkRpc3BhdGNoZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkNDRDg5MkExNUMwMzkwMjAwMjg1MDgzIC8qIEdyZWdvcmlhbkRhdGVUaW1l
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Q4MTUxQTgyNUIwMDQxMjNGRiAvKiBIYXNo
VGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3
RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VE
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VGMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0YxMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRTE2NDZBMUI2RkZDOTYwMDQwMEU3QyAvKiBMb2NrLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTBGNjBGMzJGMURGQ0JEMUIwMDQxNkQ2QyAvKiBMb2NrZWRQcmludFN0
cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNFNTE1MUE4MjVCMDA0MTIzRkYgLyog
TWFpblRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNFNDE1MUE4MjVCMDA0MTIz
RkYgLyogTWFpblRocmVhZE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0U5MTUxQTgy
NUIwMDQxMjNGRiAvKiBNRDUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1NDk3QUMxNTg1N0Qw
MzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNFQzE1
MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkw
RjY2QjI4QzFEQzk3QkFCMDA0QTFEM0YgLyogTW9ub3RvbmljVGltZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzNGNDE1MUE4MjVCMDA0MTIzRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkwRjdDNUZCNjFEODg1Q0YyMDA0NEY1RTIgLyogRmFzdEJpdFZlY3Rv
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGNzE1MUE4MjVCMDA0MTIzRkYgLyogT1NB
bGxvY2F0b3JQb3NpeC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGOTE1MUE4MjVCMDA0
MTIzRkYgLyogT1NSYW5kb21Tb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MDIx
NTFBODI1QjAwNDEyM0ZGIC8qIFBhZ2VCbG9jay5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE2OTUs
NiArMTgxOCw3IEBACiAJCQkJMTQ2OTQxOTMxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1l
ckNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Njk0MTk5MTZFQUIwNDEwMDI0RTE0NiAvKiBT
Y2hlZHVsZVBhaXJDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDY5NDE5NzE2RUFBRkY4MDAy
NEUxNDYgLyogU2NoZWR1bGVQYWlyTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2NkIyOEUx
REM5N0JBQjAwNEExRDNGIC8qIFNlY29uZHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0
MjExNTFBODI1QjAwNDEyM0ZGIC8qIFNIQTEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc0ODc0
NTIxN0EwQkRBRTAwRkEwNENCIC8qIFNpeENoYXJhY3Rlckhhc2guY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDc0MjUxNTFBODI1QjAwNDEyM0ZGIC8qIFNpemVMaW1pdHMuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0xNzA4LDMyICsxODMyLDI5IEBACiAJCQkJQTVCQTE1RjMxODI0MzNBOTAwQTgy
RTY5IC8qIFN0cmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGRERCRkE3MTY2NkRGQTMw
MEM1NUZFRiAvKiBTdHJpbmdQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0
NzQ0MzE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nU3RhdGljcy5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQkwRjY2QjI4QTFEQzk3QkFCMDA0QTFEM0YgLyogQ2xvY2tUeXBlLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTBGNjZCMjkyMURDOTdCQUIwMDRBMUQzRiAvKiBXYWxsVGltZS5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQkwRjY2QjI4RTFEQzk3QkFCMDA0QTFEM0YgLyogU2Vjb25kcy5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkwRjQzRDhGMTFEQjVBRERDMDAxMDhGQjYgLyogQXV0b21hdGljVGhy
ZWFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5OTNFMTlENzk1OEQwMEMyMzkwQiAvKiBT
dHJpbmdWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzOTM0QkQ1MThBMUYxNjkwMEQwRDZB
MSAvKiBTdHJpbmdWaWV3Q0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5MzRCRDMxOEExRThD
MzAwRDBENkExIC8qIFN0cmluZ1ZpZXdPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDcz
QjcxNTFBODI1QjAwNDEyM0ZGIC8qIHN0cnRvZC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTUyMTgz
MDEyQzk5RTQ3NkE4NEVFQkVBOCAvKiBTeW1ib2xJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTcwQTk5M0ZFMUFENzE1MTMwMEZBNjE1QiAvKiBTeW1ib2xSZWdpc3RyeS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQzE4MUM3RjFEMzA3OERBMDBGNUZBMTYgLyogVGV4dEJyZWFrSXRlcmF0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMxODFDOTYxRDMwODAwQTAwRjVGQTE2IC8qIFRleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0
ODE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkSWRlbnRpZmllckRhdGFQdGhyZWFkcy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBOEE0NzQ0QTE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFkaW5nLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDRFMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRp
bmdQdGhyZWFkcy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjY2QjI4QzFEQzk3QkFCMDA0QTFE
M0YgLyogTW9ub3RvbmljVGltZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjY2QjI5MDFEQzk3
QkFCMDA0QTFEM0YgLyogVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFDMTgxQzhGMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFDMTgxQzkxMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVy
TGF0aW4xLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMTgxQzkzMUQzMDdBQjgwMEY1RkExNiAv
KiBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0NjkxNTFB
ODI1QjAwNDEyM0ZGIC8qIFVURjguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2NkIyOTIxREM5
N0JBQjAwNEExRDNGIC8qIFdhbGxUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFGQTQ3QzhB
MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRTQ0NzlDMUI3QUFBMDMwMDk0OThFQiAvKiBXb3JkTG9jay5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFNEEwQUQzOTFBOTYyNDU1MDA1MzZERjYgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUU0QTBBRDNEMUE5NjI1M0MwMDUzNkRGNiAvKiBXb3JrUXVldWVDb2NvYS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzQ0NTE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5n
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDg2MTUxQTgyNUIwMDQxMjNGRiAvKiBXVEZU
aHJlYWREYXRhLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTUyMTgzMDEyQzk5RTQ3NkE4NEVFQkVB
OCAvKiBTeW1ib2xJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTc0NSw2ICsxODY2LDExIEBA
CiAJCQl0YXJnZXQgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovOwogCQkJdGFy
Z2V0UHJveHkgPSAxNDQ3QUVDMzE4RkNFNTcwMDBCM0Q3RkYgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovOwogCQl9OworCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVw
ZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQg
PSAxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovOworCQkJdGFy
Z2V0UHJveHkgPSAxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovOworCQl9OwogCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVw
ZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQg
PSA2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLzsKQEAgLTE3
NzQsNiArMTkwMCwzMCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkx
Q0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxk
Q29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAx
NDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0
dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJ
CQluYW1lID0gRGVidWc7CisJCX07CisJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxl
YXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmln
dXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVh
c2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9
ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTFD
RDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENC
dWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3
QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWls
ZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9
OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjY0MTQ2ODlCODYwMEU3OEI3
NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFz
ZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVi
dWdSZWxlYXNlLnhjY29uZmlnICovOwpAQCAtMTg1Nyw2ICsyMDA3LDE2IEBACiAJCQlkZWZhdWx0
Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUg
PSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQg
Y29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNl
cyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1
cmF0aW9ucyA9ICgKKwkJCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJ
CQkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYx
RDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZp
Z3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJv
ZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZp
Z3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29u
ZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L2Jya2l0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWE1ZTU1Mjc5NjA5MGVhZWJjZDdjZTdiN2QyNzVhYThi
Mzc3NWI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVy
LmgKQEAgLTAsMCArMSw2NTUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIENv
cHlyaWdodCAoQykgMTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisq
ICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKgorKiBGaWxlIGJya2l0ZXIuaAorKgorKiBNb2RpZmljYXRpb24g
SGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAg
IDAyLzE4Lzk3ICAgIGFsaXUgICAgICAgIEFkZGVkIHR5cGVkZWYgZm9yIFRleHRDb3VudC4gIE1h
ZGUgRE9ORSBjb25zdC4KKyogICAwNS8wNy85NyAgICBhbGl1ICAgICAgICBGaXhlZCBETEwgZGVj
bGFyYXRpb24uCisqICAgMDcvMDkvOTcgICAgamZpdHogICAgICAgUmVuYW1lZCBCcmVha0l0ZXJh
dG9yIGFuZCBpbnRlcmZhY2Ugc3luY2VkIHdpdGggSkRLCisqICAgMDgvMTEvOTggICAgaGVsZW5h
ICAgICAgU3luYy11cCBKREsxLjIuCisqICAgMDEvMTMvMjAwMCAgaGVsZW5hICAgICAgQWRkZWQg
VUVycm9yQ29kZSBwYXJhbWV0ZXIgdG8gY3JlYXRlWFhYSW5zdGFuY2UgbWV0aG9kcy4KKyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIEJSS0lURVJfSAorI2RlZmluZSBCUktJ
VEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICogXGZpbGUKKyAq
IFxicmllZiBDKysgQVBJOiBCcmVhayBJdGVyYXRvci4KKyAqLworCisjaWYgVUNPTkZJR19OT19C
UkVBS19JVEVSQVRJT04KKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoKKyAqIEFsbG93IHRoZSBk
ZWNsYXJhdGlvbiBvZiBBUElzIHdpdGggcG9pbnRlcnMgdG8gQnJlYWtJdGVyYXRvcgorICogZXZl
biB3aGVuIGJyZWFrIGl0ZXJhdGlvbiBpcyByZW1vdmVkIGZyb20gdGhlIGJ1aWxkLgorICovCitj
bGFzcyBCcmVha0l0ZXJhdG9yOworCitVX05BTUVTUEFDRV9FTkQKKworI2Vsc2UKKworI2luY2x1
ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisjaW5j
bHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9jaWQuaCIKKyNp
bmNsdWRlICJ1bmljb2RlL3VicmsuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVudW0uaCIKKyNp
bmNsdWRlICJ1bmljb2RlL3V0ZXh0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bWlzYy5oIgorCitV
X05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFRoZSBCcmVha0l0ZXJhdG9yIGNsYXNzIGltcGxl
bWVudHMgbWV0aG9kcyBmb3IgZmluZGluZyB0aGUgbG9jYXRpb24KKyAqIG9mIGJvdW5kYXJpZXMg
aW4gdGV4dC4gQnJlYWtJdGVyYXRvciBpcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzLgorICogSW5z
dGFuY2VzIG9mIEJyZWFrSXRlcmF0b3IgbWFpbnRhaW4gYSBjdXJyZW50IHBvc2l0aW9uIGFuZCBz
Y2FuIG92ZXIKKyAqIHRleHQgcmV0dXJuaW5nIHRoZSBpbmRleCBvZiBjaGFyYWN0ZXJzIHdoZXJl
IGJvdW5kYXJpZXMgb2NjdXIuCisgKiA8cD4KKyAqIExpbmUgYm91bmRhcnkgYW5hbHlzaXMgZGV0
ZXJtaW5lcyB3aGVyZSBhIHRleHQgc3RyaW5nIGNhbiBiZSBicm9rZW4KKyAqIHdoZW4gbGluZS13
cmFwcGluZy4gVGhlIG1lY2hhbmlzbSBjb3JyZWN0bHkgaGFuZGxlcyBwdW5jdHVhdGlvbiBhbmQK
KyAqIGh5cGhlbmF0ZWQgd29yZHMuCisgKiA8cD4KKyAqIFNlbnRlbmNlIGJvdW5kYXJ5IGFuYWx5
c2lzIGFsbG93cyBzZWxlY3Rpb24gd2l0aCBjb3JyZWN0CisgKiBpbnRlcnByZXRhdGlvbiBvZiBw
ZXJpb2RzIHdpdGhpbiBudW1iZXJzIGFuZCBhYmJyZXZpYXRpb25zLCBhbmQKKyAqIHRyYWlsaW5n
IHB1bmN0dWF0aW9uIG1hcmtzIHN1Y2ggYXMgcXVvdGF0aW9uIG1hcmtzIGFuZCBwYXJlbnRoZXNl
cy4KKyAqIDxwPgorICogV29yZCBib3VuZGFyeSBhbmFseXNpcyBpcyB1c2VkIGJ5IHNlYXJjaCBh
bmQgcmVwbGFjZSBmdW5jdGlvbnMsIGFzCisgKiB3ZWxsIGFzIHdpdGhpbiB0ZXh0IGVkaXRpbmcg
YXBwbGljYXRpb25zIHRoYXQgYWxsb3cgdGhlIHVzZXIgdG8KKyAqIHNlbGVjdCB3b3JkcyB3aXRo
IGEgZG91YmxlIGNsaWNrLiBXb3JkIHNlbGVjdGlvbiBwcm92aWRlcyBjb3JyZWN0CisgKiBpbnRl
cnByZXRhdGlvbiBvZiBwdW5jdHVhdGlvbiBtYXJrcyB3aXRoaW4gYW5kIGZvbGxvd2luZworICog
d29yZHMuIENoYXJhY3RlcnMgdGhhdCBhcmUgbm90IHBhcnQgb2YgYSB3b3JkLCBzdWNoIGFzIHN5
bWJvbHMgb3IKKyAqIHB1bmN0dWF0aW9uIG1hcmtzLCBoYXZlIHdvcmQtYnJlYWtzIG9uIGJvdGgg
c2lkZXMuCisgKiA8cD4KKyAqIENoYXJhY3RlciBib3VuZGFyeSBhbmFseXNpcyBhbGxvd3MgdXNl
cnMgdG8gaW50ZXJhY3Qgd2l0aAorICogY2hhcmFjdGVycyBhcyB0aGV5IGV4cGVjdCB0bywgZm9y
IGV4YW1wbGUsIHdoZW4gbW92aW5nIHRoZSBjdXJzb3IKKyAqIHRocm91Z2ggYSB0ZXh0IHN0cmlu
Zy4gQ2hhcmFjdGVyIGJvdW5kYXJ5IGFuYWx5c2lzIHByb3ZpZGVzIGNvcnJlY3QKKyAqIG5hdmln
YXRpb24gb2YgdGhyb3VnaCBjaGFyYWN0ZXIgc3RyaW5ncywgcmVnYXJkbGVzcyBvZiBob3cgdGhl
CisgKiBjaGFyYWN0ZXIgaXMgc3RvcmVkLiAgRm9yIGV4YW1wbGUsIGFuIGFjY2VudGVkIGNoYXJh
Y3RlciBtaWdodCBiZQorICogc3RvcmVkIGFzIGEgYmFzZSBjaGFyYWN0ZXIgYW5kIGEgZGlhY3Jp
dGljYWwgbWFyay4gV2hhdCB1c2VycworICogY29uc2lkZXIgdG8gYmUgYSBjaGFyYWN0ZXIgY2Fu
IGRpZmZlciBiZXR3ZWVuIGxhbmd1YWdlcy4KKyAqIDxwPgorICogVGhlIHRleHQgYm91bmRhcnkg
cG9zaXRpb25zIGFyZSBmb3VuZCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzCisgKiBkZXNjcmliZWQg
aW4gVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMjksIFRleHQgQm91bmRhcmllcywgYW5kCisgKiBV
bmljb2RlIFN0YW5kYXJkIEFubmV4ICMxNCwgTGluZSBCcmVha2luZyBQcm9wZXJ0aWVzLiAgVGhl
c2UKKyAqIGFyZSBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3Ry
MTQvIGFuZAorICogaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkvLgorICogPHA+
CisgKiBJbiBhZGRpdGlvbiB0byB0aGUgQysrIEFQSSBkZWZpbmVkIGluIHRoaXMgaGVhZGVyIGZp
bGUsIGEKKyAqIHBsYWluIEMgQVBJIHdpdGggZXF1aXZhbGVudCBmdW5jdGlvbmFsaXR5IGlzIGRl
ZmluZWQgaW4gdGhlCisgKiBmaWxlIHVicmsuaAorICogPHA+CisgKiBDb2RlIHNuaXBwZXRzIGls
bHVzdHJhdGluZyB0aGUgdXNlIG9mIHRoZSBCcmVhayBJdGVyYXRvciBBUElzCisgKiBhcmUgYXZh
aWxhYmxlIGluIHRoZSBJQ1UgVXNlciBHdWlkZSwKKyAqIGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcv
dXNlcmd1aWRlL2JvdW5kYXJ5QW5hbHlzaXMuaHRtbAorICogYW5kIGluIHRoZSBzYW1wbGUgcHJv
Z3JhbSBpY3Uvc291cmNlL3NhbXBsZXMvYnJlYWsvYnJlYWsuY3BwCisgKgorICovCitjbGFzcyBV
X0NPTU1PTl9BUEkgQnJlYWtJdGVyYXRvciA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1YmxpYzoKKyAg
ICAvKioKKyAgICAgKiAgZGVzdHJ1Y3RvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIH5CcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm4gdHJ1ZSBpZiBhbm90aGVyIG9iamVjdCBpcyBzZW1hbnRpY2FsbHkgZXF1YWwgdG8gdGhpcwor
ICAgICAqIG9uZS4gVGhlIG90aGVyIG9iamVjdCBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2YgdGhl
IHNhbWUgc3ViY2xhc3Mgb2YKKyAgICAgKiBCcmVha0l0ZXJhdG9yLiBPYmplY3RzIG9mIGRpZmZl
cmVudCBzdWJjbGFzc2VzIGFyZSBjb25zaWRlcmVkCisgICAgICogdW5lcXVhbC4KKyAgICAgKiA8
UD4KKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIEJyZWFrSXRlcmF0b3IgaXMgYXQgdGhlIHNh
bWUgcG9zaXRpb24gaW4gdGhlCisgICAgICogc2FtZSB0ZXh0LCBhbmQgaXMgdGhlIHNhbWUgY2xh
c3MgYW5kIHR5cGUgKHdvcmQsIGxpbmUsIGV0Yy4pIG9mCisgICAgICogQnJlYWtJdGVyYXRvciwg
YXMgdGhlIGFyZ3VtZW50LiAgVGV4dCBpcyBjb25zaWRlcmVkIHRoZSBzYW1lIGlmCisgICAgICog
aXQgY29udGFpbnMgdGhlIHNhbWUgY2hhcmFjdGVycywgaXQgbmVlZCBub3QgYmUgdGhlIHNhbWUK
KyAgICAgKiBvYmplY3QsIGFuZCBzdHlsZXMgYXJlIG5vdCBjb25zaWRlcmVkLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25z
dCBCcmVha0l0ZXJhdG9yJikgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0
aGUgY29tcGxlbWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJhdG9yPT0KKyAgICAgKiBAcGFyYW0g
cmhzIFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5CisgICAg
ICogQHJldHVybiB0aGUgY29tcGxlbWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJhdG9yPT0KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCBvcGVyYXRvciE9KGNvbnN0
IEJyZWFrSXRlcmF0b3ImIHJocykgY29uc3QgeyByZXR1cm4gIW9wZXJhdG9yPT0ocmhzKTsgfQor
CisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcG9seW1vcnBoaWMgY29weSBvZiB0aGlzIG9iamVj
dC4gIFRoaXMgaXMgYW4gYWJzdHJhY3QKKyAgICAgKiBtZXRob2Qgd2hpY2ggc3ViY2xhc3NlcyBp
bXBsZW1lbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBC
cmVha0l0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBS
ZXR1cm4gYSBwb2x5bW9ycGhpYyBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuIERpZmZlcmVudCBz
dWJjbGFzc2VzCisgICAgICogd2lsbCByZXR1cm4gZGlzdGluY3QgdW5lcXVhbCB2YWx1ZXMuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXRE
eW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4g
YSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0b3Im
IGdldFRleHQodm9pZCkgY29uc3QgPSAwOworCisKKyAgICAvKioKKyAgICAgICogIEdldCBhIFVU
ZXh0IGZvciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgICogIFRoZSByZXR1cm5lZCBV
VGV4dCBpcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIFVUZXh0IHVzZWQgaW50ZXJuYWxseQorICAg
ICAgKiAgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uLiAgSXQgY2FuIHNhZmVs
eSBiZSB1c2VkIHRvCisgICAgICAqICBhY2Nlc3MgdGhlIHRleHQgd2l0aG91dCBpbXBhY3Rpbmcg
YW55IGJyZWFrIGl0ZXJhdG9yIG9wZXJhdGlvbnMsCisgICAgICAqICBidXQgdGhlIHVuZGVybHlp
bmcgdGV4dCBpdHNlbGYgbXVzdCBub3QgYmUgYWx0ZXJlZC4KKyAgICAgICoKKyAgICAgICogQHBh
cmFtIGZpbGxJbiBBIFVUZXh0IHRvIGJlIGZpbGxlZCBpbi4gIElmIE5VTEwsIGEgbmV3IFVUZXh0
IHdpbGwgYmUKKyAgICAgICogICAgICAgICAgIGFsbG9jYXRlZCB0byBob2xkIHRoZSByZXN1bHQu
CisgICAgICAqIEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAgICAg
KiBAcmV0dXJuICAgVGhlIGN1cnJlbnQgVVRleHQgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3IuICBJ
ZiBhbiBpbnB1dAorICAgICAgKiAgICAgICAgICAgVVRleHQgd2FzIHByb3ZpZGVkLCBpdCB3aWxs
IGFsd2F5cyBiZSByZXR1cm5lZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICAqLwor
ICAgICB2aXJ0dWFsIFVUZXh0ICpnZXRVVGV4dChVVGV4dCAqZmlsbEluLCBVRXJyb3JDb2RlICZz
dGF0dXMpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIENoYW5nZSB0aGUgdGV4dCBvdmVy
IHdoaWNoIHRoaXMgb3BlcmF0ZXMuIFRoZSB0ZXh0IGJvdW5kYXJ5IGlzCisgICAgICogcmVzZXQg
dG8gdGhlIHN0YXJ0LgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBVbmljb2RlU3RyaW5nIHVzZWQg
dG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgdm9pZCAgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nICZ0ZXh0KSA9IDA7CisK
KyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdG8gb3BlcmF0ZSBvdmVy
IHRoZSB0ZXh0IHJlcHJlc2VudGVkIGJ5CisgICAgICogdGhlIFVUZXh0LiAgVGhlIGl0ZXJhdG9y
IHBvc2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKgorICAgICAqIFRoaXMgZnVu
Y3Rpb24gbWFrZXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBzdXBwbGllZCBVVGV4dC4gIFRoaXMg
bWVhbnMKKyAgICAgKiB0aGF0IHRoZSBjYWxsZXIgaXMgZnJlZSB0byBpbW1lZGlhdGVseSBjbG9z
ZSBvciBvdGhlcndpc2UgcmV1c2UgdGhlCisgICAgICogVXRleHQgdGhhdCB3YXMgcGFzc2VkIGFz
IGEgcGFyYW1ldGVyLCBidXQgdGhhdCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2VsZgorICAgICAq
IG11c3Qgbm90IGJlIGFsdGVyZWQgd2hpbGUgYmVpbmcgcmVmZXJlbmNlZCBieSB0aGUgYnJlYWsg
aXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBBbGwgaW5kZXggcG9zaXRpb25zIHJldHVybmVkIGJ5
IGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyBhcmUKKyAgICAgKiBuYXRpdmUgaW5kaWNlcyBmcm9t
IHRoZSBVVGV4dC4gRm9yIGV4YW1wbGUsIHdoZW4gYnJlYWtpbmcgVVRGLTgKKyAgICAgKiBlbmNv
ZGVkIHRleHQsIHRoZSBicmVhayBwb3NpdGlvbnMgcmV0dXJuZWQgYnkgbmV4dCgpLCBwcmV2aW91
cygpLCBldGMuCisgICAgICogd2lsbCBiZSBVVEYtOCBzdHJpbmcgaW5kaWNlcywgbm90IFVURi0x
NiBwb3NpdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgVVRleHQgdXNlZCB0
byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkgZXJy
b3IgY29kZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICovCisgICAgdmlydHVhbCB2
b2lkICBzZXRUZXh0KFVUZXh0ICp0ZXh0LCBVRXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKworICAg
IC8qKgorICAgICAqIENoYW5nZSB0aGUgdGV4dCBvdmVyIHdoaWNoIHRoaXMgb3BlcmF0ZXMuIFRo
ZSB0ZXh0IGJvdW5kYXJ5IGlzCisgICAgICogcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqIE5v
dGUgdGhhdCBzZXRUZXh0KFVUZXh0ICopIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSB0
byB0aGlzIGZ1bmN0aW9uLAorICAgICAqIGFuZCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICAgKiBA
cGFyYW0gaXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0Lgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgYWRvcHRU
ZXh0KENoYXJhY3Rlckl0ZXJhdG9yKiBpdCkgPSAwOworCisgICAgZW51bSB7CisgICAgICAgIC8q
KgorICAgICAgICAgKiBET05FIGlzIHJldHVybmVkIGJ5IHByZXZpb3VzKCkgYW5kIG5leHQoKSBh
ZnRlciBhbGwgdmFsaWQKKyAgICAgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJuZWQu
CisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgRE9ORSA9
IChpbnQzMl90KS0xCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQg
aXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHBvc2l0aW9u
IHplcm8uCisgICAgICogQHJldHVybiBUaGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhl
IHRleHQsIHplcm8uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90IGZpcnN0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRl
cmF0b3IgcG9zaXRpb24gdG8gdGhlIGluZGV4IGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgbGFzdCBj
aGFyYWN0ZXIgaW4gdGhlIHRleHQgYmVpbmcgc2Nhbm5lZC4KKyAgICAgKiBAcmV0dXJuIFRoZSBp
bmRleCBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0IGJl
aW5nIHNjYW5uZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBpbnQzMl90IGxhc3Qodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVy
YXRvciBwb3NpdGlvbiB0byB0aGUgYm91bmRhcnkgcHJlY2VkaW5nIHRoZSBjdXJyZW50IGJvdW5k
YXJ5LgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgcHJldmlvdXMg
dGV4dCBib3VuZGFyeSBvciBET05FIGlmIGFsbAorICAgICAqIGJvdW5kYXJpZXMgaGF2ZSBiZWVu
IHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
aW50MzJfdCBwcmV2aW91cyh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlIHRo
ZSBpdGVyYXRvciB0byB0aGUgYm91bmRhcnkgZm9sbG93aW5nIHRoZSBjdXJyZW50IGJvdW5kYXJ5
LgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgbmV4dCB0ZXh0IGJv
dW5kYXJ5IG9yIERPTkUgaWYgYWxsCisgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJu
ZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90
IG5leHQodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGNoYXJhY3RlciBpbmRl
eCBvZiB0aGUgY3VycmVudCBpbnRlcmF0b3IgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LgorICAg
ICAqIEByZXR1cm4gVGhlIGJvdW5kYXJ5IG1vc3QgcmVjZW50bHkgcmV0dXJuZWQuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGN1cnJlbnQodm9p
ZCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogQWR2YW5jZSB0aGUgaXRlcmF0b3IgdG8g
dGhlIGZpcnN0IGJvdW5kYXJ5IGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAg
KiBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgYWx3YXlzIGdyZWF0ZXIgdGhhbiB0aGUgb2Zmc2V0IG9y
CisgICAgICogdGhlIHZhbHVlIEJyZWFrSXRlcmF0b3IuRE9ORQorICAgICAqIEBwYXJhbSBvZmZz
ZXQgdGhlIG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KKyAgICAgKiBAcmV0dXJuIFRoZSBmaXJz
dCBib3VuZGFyeSBhZnRlciB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZm9sbG93aW5nKGludDMyX3Qgb2Zm
c2V0KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9uIHRv
IHRoZSBmaXJzdCBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisgICAg
ICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5cyBzbWFsbGVyIHRoYW4gdGhlIG9mZnNldCBv
cgorICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0ZXJhdG9yLkRPTkUKKyAgICAgKiBAcGFyYW0gb2Zm
c2V0IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nhbm5pbmcuCisgICAgICogQHJldHVybiBUaGUgZmly
c3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmcoaW50MzJfdCBv
ZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBzcGVjZmll
ZCBwb3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEFzIGEgc2lkZSBlZmZl
Y3QsIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRvciBpcyBzZXQKKyAgICAgKiB0
byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gYXQgb3IgZm9sbG93aW5nIHRoZSBzcGVjaWZp
ZWQgb2Zmc2V0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBjaGVjay4KKyAg
ICAgKiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIGlzQm91bmRh
cnkoaW50MzJfdCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0
b3IgcG9zaXRpb24gdG8gdGhlIG50aCBib3VuZGFyeSBmcm9tIHRoZSBjdXJyZW50IGJvdW5kYXJ5
CisgICAgICogQHBhcmFtIG4gdGhlIG51bWJlciBvZiBib3VuZGFyaWVzIHRvIG1vdmUgYnkuICBB
IHZhbHVlIG9mIDAKKyAgICAgKiBkb2VzIG5vdGhpbmcuICBOZWdhdGl2ZSB2YWx1ZXMgbW92ZSB0
byBwcmV2aW91cyBib3VuZGFyaWVzCisgICAgICogYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3ZlIHRv
IGxhdGVyIGJvdW5kYXJpZXMuCisgICAgICogQHJldHVybiBUaGUgbmV3IGl0ZXJhdG9yIHBvc2l0
aW9uLCBvcgorICAgICAqIERPTkUgaWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gfG58IGJvdW5kYXJp
ZXMgaW4gdGhlIHNwZWNmaWVkIGRpcmVjdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dChpbnQzMl90IG4pID0gMDsKKworICAgLyoq
CisgICAgICogRm9yIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JzLCByZXR1cm4gdGhlIHN0YXR1cyB0
YWcgZnJvbSB0aGUgCisgICAgICogYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1vc3Qg
cmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAg
ICAgKiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBhIHJ1bGUg
c3RhdHVzLAorICAgICAqIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVkLgorICAgICAq
IDxwPgorICAgICAqIEByZXR1cm4gdGhlIHN0YXR1cyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQg
ZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqICAgICAgICAgcmV0dXJuZWQgYnJl
YWsgcG9zaXRpb24uCisgICAgICogQHNlZSBSdWxlQmFzZUJyZWFrSXRlcmF0b3I6OmdldFJ1bGVT
dGF0dXMoKQorICAgICAqIEBzZWUgVVdvcmRCcmVhaworICAgICAqIEBzdGFibGUgSUNVIDUyCisg
ICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXMoKSBjb25zdDsKKworICAg
LyoqCisgICAgKiBGb3IgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcnMsIGdldCB0aGUgc3RhdHVzICh0
YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIAorICAgICogdGhhdCBkZXRlcm1pbmVk
IHRoZSBtb3N0IHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICogPHA+Cisg
ICAgKiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBydWxlIHN0
YXR1cywKKyAgICAqIG5vIHZhbHVlcyBhcmUgcmV0dXJuZWQuCisgICAgKiA8cD4KKyAgICAqIFRo
ZSByZXR1cm5lZCBzdGF0dXMgdmFsdWUocykgYXJlIHN0b3JlZCBpbnRvIGFuIGFycmF5IHByb3Zp
ZGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gc29ydGVk
IChhc2NlbmRpbmcpIG9yZGVyLgorICAgICogSWYgdGhlIGNhcGFjaXR5IG9mIHRoZSBvdXRwdXQg
YXJyYXkgaXMgaW5zdWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgICAgKiAgdGhlIG91dHB1
dCB3aWxsIGJlIHRydW5jYXRlZCB0byB0aGUgYXZhaWxhYmxlIGxlbmd0aCwgYW5kIGEKKyAgICAq
ICBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiB3aWxsIGJlIHNpZ25hbGVkLgorICAgICogPHA+Cisg
ICAgKiBAc2VlIFJ1bGVCYXNlQnJlYWtJdGVyYXRvcjo6Z2V0UnVsZVN0YXR1c1ZlYworICAgICoK
KyAgICAqIEBwYXJhbSBmaWxsSW5WZWMgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGluIHdpdGggdGhl
IHN0YXR1cyB2YWx1ZXMuCisgICAgKiBAcGFyYW0gY2FwYWNpdHkgIHRoZSBsZW5ndGggb2YgdGhl
IHN1cHBsaWVkIHZlY3Rvci4gIEEgbGVuZ3RoIG9mIHplcm8gY2F1c2VzCisgICAgKiAgICAgICAg
ICAgICAgICAgIHRoZSBmdW5jdGlvbiB0byByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0dXMgdmFs
dWVzLCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgbm9ybWFsIHdheSwgd2l0aG91dCBh
dHRlbXRwaW5nIHRvIHN0b3JlIGFueSB2YWx1ZXMuCisgICAgKiBAcGFyYW0gc3RhdHVzICAgIHJl
Y2VpdmVzIGVycm9yIGNvZGVzLgorICAgICogQHJldHVybiAgICAgICAgICBUaGUgbnVtYmVyIG9m
IHJ1bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZAorICAgICogICAg
ICAgICAgICAgICAgICB0aGUgbW9zdCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQgYnkgdGhlIGJy
ZWFrIGl0ZXJhdG9yLgorICAgICogICAgICAgICAgICAgICAgICBJbiB0aGUgZXZlbnQgb2YgYSBV
X0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdGhlIHJldHVybiB2YWx1ZQorICAgICogICAgICAgICAg
ICAgICAgICBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCB3ZXJlIGF2
YWlsYWJsZSwKKyAgICAqICAgICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2VkIG51bWJlciB0
aGF0IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQuCisgICAgKiBAc2VlIGdldFJ1bGVTdGF0dXMKKyAg
ICAqIEBzdGFibGUgSUNVIDUyCisgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVsZVN0
YXR1c1ZlYyhpbnQzMl90ICpmaWxsSW5WZWMsIGludDMyX3QgY2FwYWNpdHksIFVFcnJvckNvZGUg
JnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3Igd29y
ZC1icmVha3MgdXNpbmcgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBSZXR1cm5zIGFuIGluc3Rh
bmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgd29yZCBicmVha3MuCisgICAgICog
V29yZEJyZWFrIGlzIHVzZWZ1bCBmb3Igd29yZCBzZWxlY3Rpb24gKGV4LiBkb3VibGUgY2xpY2sp
CisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyB0
aGUgZXJyb3IgY29kZQorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciB3b3JkLWJy
ZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0
byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNr
IHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNo
ZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9y
ZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1h
dGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAg
KiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9j
YWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVk
LCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4g
IFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2Fs
ZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9y
IGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAg
ICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2li
bGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVXb3JkSW5zdGFuY2Uo
Y29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAg
ICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBsaW5lLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQg
bG9jYWxlLgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGlt
cGxlbWVudGluZyBsaW5lIGJyZWFrcy4gTGluZQorICAgICAqIGJyZWFrcyBhcmUgbG9naWNhbGx5
IHBvc3NpYmxlIGxpbmUgYnJlYWtzLCBhY3R1YWwgbGluZSBicmVha3MgYXJlCisgICAgICogdXN1
YWxseSBkZXRlcm1pbmVkIGJhc2VkIG9uIGRpc3BsYXkgd2lkdGguCisgICAgICogTGluZUJyZWFr
IGlzIHVzZWZ1bCBmb3Igd29yZCB3cmFwcGluZyB0ZXh0LgorICAgICAqIEBwYXJhbSB3aGVyZSB0
aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUuCisgICAgICog
QHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIGxpbmUtYnJlYWtzLiAgVGhlIFVFcnJvckNvZGUm
IHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5mb3Jt
YXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3RydWN0
aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFsdWUg
b2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0aW9u
LCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0cyB3
aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tfV0FS
TklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IKKyAg
ICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBmb3Vu
ZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dBUk5J
TkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICogdXNl
ZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJhY2sg
bG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3ducyB0
aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3Iq
IFVfRVhQT1JUMgorICAgIGNyZWF0ZUxpbmVJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBV
RXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0
b3IgZm9yIGNoYXJhY3Rlci1icmVha3MgdXNpbmcgc3BlY2lmaWVkIGxvY2FsZQorICAgICAqIFJl
dHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyBjaGFyYWN0
ZXIgYnJlYWtzLgorICAgICAqIENoYXJhY3RlciBicmVha3MgYXJlIGJvdW5kYXJpZXMgb2YgY29t
YmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMuCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2Nh
bGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0dXJu
IEEgQnJlYWtJdGVyYXRvciBmb3IgY2hhcmFjdGVyLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBz
dGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0
aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlv
biBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9m
IFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwg
eW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hp
Y2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5J
TkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAg
ICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQg
dGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5H
IGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7
IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxv
Y2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhl
IHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBV
X0VYUE9SVDIKKyAgICBjcmVhdGVDaGFyYWN0ZXJJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJl
LCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRl
cmF0b3IgZm9yIHNlbnRlbmNlLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxlCisgICAgICog
UmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIHNlbnRl
bmNlIGJyZWFrcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFy
YW0gc3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9y
IGZvciBzZW50ZW5jZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFy
YW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4K
KyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5v
dCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4g
IElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBj
aGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRl
IHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0
IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9D
SCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdh
cworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0
aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1
ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291
bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3Qg
YW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3Jl
YXRlU2VudGVuY2VJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0
dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIHRpdGxlLWNh
c2luZyBicmVha3MgdXNpbmcgdGhlIHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBSZXR1cm5zIGFu
IGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgdGl0bGUgYnJlYWtzLgor
ICAgICAqIFRoZSBpdGVyYXRvciByZXR1cm5lZCBsb2NhdGVzIHRpdGxlIGJvdW5kYXJpZXMgYXMg
ZGVzY3JpYmVkIGZvcgorICAgICAqIFVuaWNvZGUgMy4yIG9ubHkuIEZvciBVbmljb2RlIDQuMCBh
bmQgYWJvdmUgdGl0bGUgYm91bmRhcnkgaXRlcmF0aW9uLAorICAgICAqIHBsZWFzZSB1c2UgV29y
ZCBCb3VuZGFyeSBpdGVyYXRvci57QGxpbmsgI2NyZWF0ZVdvcmRJbnN0YW5jZSB9CisgICAgICoK
KyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFRo
ZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciB0aXRsZS1i
cmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVzZWQg
dG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBjaGVj
ayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3VsZCBj
aGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNoIG1v
cmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5mb3Jt
YXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisgICAg
ICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNrIGxv
Y2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVlc3Rl
ZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVzZWQu
ICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBsb2Nh
bGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxlIG5v
ciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQuCisg
ICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3BvbnNp
YmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8KKyAg
ICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlVGl0bGVJbnN0YW5j
ZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisg
ICAgICogR2V0IHRoZSBzZXQgb2YgTG9jYWxlcyBmb3Igd2hpY2ggVGV4dEJvdW5kYXJpZXMgYXJl
IGluc3RhbGxlZC4KKyAgICAgKiA8cD48Yj5Ob3RlOjwvYj4gdGhpcyB3aWxsIG5vdCByZXR1cm4g
bG9jYWxlcyBhZGRlZCB0aHJvdWdoIHRoZSByZWdpc3RlcgorICAgICAqIGNhbGwuIFRvIHNlZSB0
aGUgcmVnaXN0ZXJlZCBsb2NhbGVzIHRvbywgdXNlIHRoZSBnZXRBdmFpbGFibGVMb2NhbGVzCisg
ICAgICogZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgU3RyaW5nRW51bWVyYXRpb24gb2JqZWN0IDwv
cD4KKyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG91dHB1dCBwYXJhbWV0ZXIgb2YgbnVtYmVyIG9m
IGVsZW1lbnRzIGluIHRoZSBsb2NhbGUgbGlzdAorICAgICAqIEByZXR1cm4gYXZhaWxhYmxlIGxv
Y2FsZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29uc3Qg
TG9jYWxlKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxlTG9jYWxlcyhpbnQzMl90JiBjb3VudCk7CisK
KyAgICAvKioKKyAgICAgKiBHZXQgbmFtZSBvZiB0aGUgb2JqZWN0IGZvciB0aGUgZGVzaXJlZCBM
b2NhbGUsIGluIHRoZSBkZXNpcmVkIGxhbmdhdWdlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2Nh
bGUgbXVzdCBiZSBmcm9tIGdldEF2YWlsYWJsZUxvY2FsZXMuCisgICAgICogQHBhcmFtIGRpc3Bs
YXlMb2NhbGUgc3BlY2lmaWVzIHRoZSBkZXNpcmVkIGxvY2FsZSBmb3Igb3V0cHV0LgorICAgICAq
IEBwYXJhbSBuYW1lIHRoZSBmaWxsLWluIHBhcmFtZXRlciBvZiB0aGUgcmV0dXJuIHZhbHVlCisg
ICAgICogVXNlcyBiZXN0IG1hdGNoLgorICAgICAqIEByZXR1cm4gdXNlci1kaXNwbGF5YWJsZSBu
YW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVuaWNvZGVT
dHJpbmcmIFVfRVhQT1JUMiBnZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmIG9iamVjdExvY2Fs
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxl
JiBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVbmljb2RlU3RyaW5nJiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIEdldCBuYW1lIG9mIHRo
ZSBvYmplY3QgZm9yIHRoZSBkZXNpcmVkIExvY2FsZSwgaW4gdGhlIGxhbmdhdWdlIG9mIHRoZQor
ICAgICAqIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUgbXVzdCBi
ZSBmcm9tIGdldE1hdGNoaW5nTG9jYWxlcworICAgICAqIEBwYXJhbSBuYW1lIHRoZSBmaWxsLWlu
IHBhcmFtZXRlciBvZiB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogQHJldHVybiB1c2VyLWRpc3Bs
YXlhYmxlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMg
VW5pY29kZVN0cmluZyYgVV9FWFBPUlQyIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYgb2Jq
ZWN0TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmlj
b2RlU3RyaW5nJiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIERlcHJlY2F0ZWQgZnVuY3Rpb25h
bGl0eS4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIFRocmVhZCBzYWZlIGNs
aWVudC1idWZmZXItYmFzZWQgY2xvbmluZyBvcGVyYXRpb24KKyAgICAgKiAgICBEbyBOT1QgY2Fs
bCBkZWxldGUgb24gYSBzYWZlY2xvbmUsIHNpbmNlICduZXcnIGlzIG5vdCB1c2VkIHRvIGNyZWF0
ZSBpdC4KKyAgICAgKiBAcGFyYW0gc3RhY2tCdWZmZXIgdXNlciBhbGxvY2F0ZWQgc3BhY2UgZm9y
IHRoZSBuZXcgY2xvbmUuIElmIE5VTEwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4KKyAg
ICAgKiBJZiBidWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaCwgbmV3IG1lbW9yeSB3aWxsIGJlIGFs
bG9jYXRlZC4KKyAgICAgKiBAcGFyYW0gQnVmZmVyU2l6ZSByZWZlcmVuY2UgdG8gc2l6ZSBvZiBh
bGxvY2F0ZWQgc3BhY2UuCisgICAgICogSWYgQnVmZmVyU2l6ZSA9PSAwLCBhIHN1ZmZpY2llbnQg
c2l6ZSBmb3IgdXNlIGluIGNsb25pbmcgd2lsbAorICAgICAqIGJlIHJldHVybmVkICgncHJlLWZs
aWdodGluZycpCisgICAgICogSWYgQnVmZmVyU2l6ZSBpcyBub3QgZW5vdWdoIGZvciBhIHN0YWNr
LWJhc2VkIHNhZmUgY2xvbmUsCisgICAgICogbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4K
KyAgICAgKiBAcGFyYW0gc3RhdHVzIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIG9wZXJhdGlvbiB3
ZW50IG9uIHNtb290aGx5IG9yIHRoZXJlIHdlcmUgZXJyb3JzCisgICAgICogIEFuIGluZm9ybWF0
aW9uYWwgc3RhdHVzIHZhbHVlLCBVX1NBRkVDTE9ORV9BTExPQ0FURURfRVJST1IsIGlzIHVzZWQg
aWYgYW55IGFsbG9jYXRpb25zIHdlcmUKKyAgICAgKiAgbmVjZXNzYXJ5LgorICAgICAqIEByZXR1
cm4gcG9pbnRlciB0byB0aGUgbmV3IGNsb25lCisgICAgICoKKyAgICAgKiBAZGVwcmVjYXRlZCBJ
Q1UgNTIuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0
ZXJhdG9yICogIGNyZWF0ZUJ1ZmZlckNsb25lKHZvaWQgKnN0YWNrQnVmZmVyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICZCdWZmZXJTaXpl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlICZzdGF0dXMpID0gMDsKKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworICAg
IC8qKgorICAgICAqICAgRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIEJyZWFrSXRlcmF0b3Igd2FzIGNy
ZWF0ZWQgaW4gdXNlciBtZW1vcnkgYnkKKyAgICAgKiAgIGNyZWF0ZUJ1ZmZlckNsb25lKCksIGFu
ZCB0aHVzIHNob3VsZCBub3QgYmUgZGVsZXRlZC4gIFN1Y2ggb2JqZWN0cworICAgICAqICAgbXVz
dCBiZSBjbG9zZWQgYnkgYW4gZXhwbGljaXQgY2FsbCB0byB0aGUgZGVzdHJ1Y3RvciAobm90IGRl
bGV0ZSkuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBBbHdheXMgZGVsZXRlIHRoZSBCcmVh
a0l0ZXJhdG9yLgorICAgICAqLworICAgIGlubGluZSBVQm9vbCBpc0J1ZmZlckNsb25lKHZvaWQp
OworCisjZW5kaWYgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisKKyNpZiAhVUNPTkZJR19O
T19TRVJWSUNFCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBuZXcgYnJlYWsgaXRlcmF0b3Ig
b2YgdGhlIGluZGljYXRlZCBraW5kLCB0byB1c2UgaW4gdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAg
KiBUaGUgYnJlYWsgaXRlcmF0b3Igd2lsbCBiZSBhZG9wdGVkLiAgQ2xvbmVzIG9mIHRoZSBpdGVy
YXRvciB3aWxsIGJlIHJldHVybmVkCisgICAgICogaWYgYSByZXF1ZXN0IGZvciBhIGJyZWFrIGl0
ZXJhdG9yIG9mIHRoZSBnaXZlbiBraW5kIG1hdGNoZXMgb3IgZmFsbHMgYmFjayB0bworICAgICAq
IHRoaXMgbG9jYWxlLgorICAgICAqIEJlY2F1c2UgSUNVIG1heSBjaG9vc2UgdG8gY2FjaGUgQnJl
YWtJdGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBtdXN0CisgICAgICogYmUgY2FsbGVkIGF0IGFw
cGxpY2F0aW9uIHN0YXJ0dXAsIHByaW9yIHRvIGFueSBjYWxscyB0bworICAgICAqIEJyZWFrSXRl
cmF0b3I6OmNyZWF0ZVhYWEluc3RhbmNlIHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhhdmlvci4KKyAg
ICAgKiBAcGFyYW0gdG9BZG9wdCB0aGUgQnJlYWtJdGVyYXRvciBpbnN0YW5jZSB0byBiZSBhZG9w
dGVkCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgTG9jYWxlIGZvciB3aGljaCB0aGlzIGluc3Rh
bmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQKKyAgICAgKiBAcGFyYW0ga2luZCB0aGUgdHlwZSBvZiBp
dGVyYXRvciBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisgICAg
ICogQHBhcmFtIHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVjaWFsIG1lYW5p
bmdzIGFyZSBhc3NpZ25lZAorICAgICAqIEByZXR1cm4gYSByZWdpc3RyeSBrZXkgdGhhdCBjYW4g
YmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjQKKyAgICAgKi8KKyAgICBzdGF0aWMgVVJlZ2lzdHJ5S2V5IFVfRVhQT1JUMiByZWdpc3Rlcklu
c3RhbmNlKEJyZWFrSXRlcmF0b3IqIHRvQWRvcHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgTG9jYWxlJiBsb2NhbGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVUJyZWFrSXRlcmF0b3JUeXBlIGtpbmQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAg
IC8qKgorICAgICAqIFVucmVnaXN0ZXIgYSBwcmV2aW91c2x5LXJlZ2lzdGVyZWQgQnJlYWtJdGVy
YXRvciB1c2luZyB0aGUga2V5IHJldHVybmVkIGZyb20gdGhlCisgICAgICogcmVnaXN0ZXIgY2Fs
bC4gIEtleSBiZWNvbWVzIGludmFsaWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgYW5kIHNob3Vs
ZCBub3QgYmUgdXNlZCBhZ2Fpbi4KKyAgICAgKiBUaGUgQnJlYWtJdGVyYXRvciBjb3JyZXNwb25k
aW5nIHRvIHRoZSBrZXkgd2lsbCBiZSBkZWxldGVkLgorICAgICAqIEJlY2F1c2UgSUNVIG1heSBj
aG9vc2UgdG8gY2FjaGUgQnJlYWtJdGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBzaG91bGQKKyAg
ICAgKiBiZSBjYWxsZWQgZHVyaW5nIGFwcGxpY2F0aW9uIHNodXRkb3duLCBhZnRlciBhbGwgY2Fs
bHMgdG8KKyAgICAgKiBCcmVha0l0ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0byBhdm9pZCB1
bmRlZmluZWQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIGtleSB0aGUgcmVnaXN0cnkga2V5IHJl
dHVybmVkIGJ5IGEgcHJldmlvdXMgY2FsbCB0byByZWdpc3Rlckluc3RhbmNlCisgICAgICogQHBh
cmFtIHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVjaWFsIG1lYW5pbmdzIGFy
ZSBhc3NpZ25lZAorICAgICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgaXRlcmF0b3IgZm9yIHRoZSBr
ZXkgd2FzIHN1Y2Nlc3NmdWxseSB1bnJlZ2lzdGVyZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjQK
KyAgICAgKi8KKyAgICBzdGF0aWMgVUJvb2wgVV9FWFBPUlQyIHVucmVnaXN0ZXIoVVJlZ2lzdHJ5
S2V5IGtleSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBh
IFN0cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMgYXZhaWxhYmxlIGF0IHRoZSB0aW1l
IG9mIHRoZSBjYWxsLAorICAgICAqIGluY2x1ZGluZyByZWdpc3RlcmVkIGxvY2FsZXMuCisgICAg
ICogQHJldHVybiBhIFN0cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMgYXZhaWxhYmxl
IGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAgICov
CisgICAgc3RhdGljIFN0cmluZ0VudW1lcmF0aW9uKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxlTG9j
YWxlcyh2b2lkKTsKKyNlbmRpZgorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxl
IGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiBUd28gZmxhdm9ycyBhcmUgYXZhaWxhYmxlOiB2YWxp
ZCBhbmQKKyAgICAgKiBhY3R1YWwgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAorICAg
ICAqLworICAgIExvY2FsZSBnZXRMb2NhbGUoVUxvY0RhdGFMb2NhbGVUeXBlIHR5cGUsIFVFcnJv
ckNvZGUmIHN0YXR1cykgY29uc3Q7CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAg
IC8qKiBHZXQgdGhlIGxvY2FsZSBmb3IgdGhpcyBicmVhayBpdGVyYXRvciBvYmplY3QuIFlvdSBj
YW4gY2hvb3NlIGJldHdlZW4gdmFsaWQgYW5kIGFjdHVhbCBsb2NhbGUuCisgICAgICogIEBwYXJh
bSB0eXBlIHR5cGUgb2YgdGhlIGxvY2FsZSB3ZSdyZSBsb29raW5nIGZvciAodmFsaWQgb3IgYWN0
dWFsKQorICAgICAqICBAcGFyYW0gc3RhdHVzIGVycm9yIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24K
KyAgICAgKiAgQHJldHVybiB0aGUgbG9jYWxlCisgICAgICogIEBpbnRlcm5hbAorICAgICAqLwor
ICAgIGNvbnN0IGNoYXIgKmdldExvY2FsZUlEKFVMb2NEYXRhTG9jYWxlVHlwZSB0eXBlLCBVRXJy
b3JDb2RlJiBzdGF0dXMpIGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICov
CisKKyAgICAvKioKKyAgICAgKiAgU2V0IHRoZSBzdWJqZWN0IHRleHQgc3RyaW5nIHVwb24gd2hp
Y2ggdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9wZXJhdGluZworICAgICAqICB3aXRob3V0IGNoYW5n
aW5nIGFueSBvdGhlciBhc3BlY3Qgb2YgdGhlIG1hdGNoaW5nIHN0YXRlLgorICAgICAqICBUaGUg
bmV3IGFuZCBwcmV2aW91cyB0ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbnRlbnQu
CisgICAgICoKKyAgICAgKiAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGluIGVu
dmlyb25tZW50cyB3aGVyZSBJQ1UgaXMgb3BlcmF0aW5nIG9uCisgICAgICogIHN0cmluZ3MgdGhh
dCBtYXkgbW92ZSBhcm91bmQgaW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9y
IG5vdGlmeWluZworICAgICAqICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVuIHJlbG9jYXRl
ZCwgYW5kIHByb3ZpZGluZyBhIG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICAgICogIHN0cmlu
ZyBpbiBpdHMgbmV3IHBvc2l0aW9uLgorICAgICAqCisgICAgICogIE5vdGUgdGhhdCB0aGUgYnJl
YWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24gbmV2ZXIgY29waWVzIHRoZSB1bmRlcmx5aW5nIHRl
eHQKKyAgICAgKiAgb2YgYSBzdHJpbmcgYmVpbmcgcHJvY2Vzc2VkLCBidXQgYWx3YXlzIG9wZXJh
dGVzIGRpcmVjdGx5IG9uIHRoZSBvcmlnaW5hbCB0ZXh0CisgICAgICogIHByb3ZpZGVkIGJ5IHRo
ZSB1c2VyLiBSZWZyZXNoaW5nIHNpbXBseSBkcm9wcyB0aGUgcmVmZXJlbmNlcyB0byB0aGUgb2xk
IHRleHQKKyAgICAgKiAgYW5kIHJlcGxhY2VzIHRoZW0gd2l0aCByZWZlcmVuY2VzIHRvIHRoZSBu
ZXcuCisgICAgICoKKyAgICAgKiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rpb24gaXMgbm9ybWFsbHkg
dXNlZCBvbmx5IGJ5IHZlcnkgc3BlY2lhbGl6ZWQsCisgICAgICogIHN5c3RlbS1sZXZlbCBjb2Rl
LiAgT25lIGV4YW1wbGUgdXNlIGNhc2UgaXMgd2l0aCBnYXJiYWdlIGNvbGxlY3Rpb24gdGhhdCBt
b3ZlcworICAgICAqICB0aGUgdGV4dCBpbiBtZW1vcnkuCisgICAgICoKKyAgICAgKiBAcGFyYW0g
aW5wdXQgICAgICBUaGUgbmV3IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisgICAgICogQHBhcmFtIHN0
YXR1cyAgICAgUmVjZWl2ZXMgZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCisgICAg
ICogQHJldHVybiAgICAgICAgICAgKnRoaXMKKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNVIDQ5
CisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yICZyZWZyZXNoSW5wdXRUZXh0KFVU
ZXh0ICppbnB1dCwgVUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyBwcml2YXRlOgorICAgIHN0
YXRpYyBCcmVha0l0ZXJhdG9yKiBidWlsZEluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBjb25z
dCBjaGFyICp0eXBlLCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisgICAgc3Rh
dGljIEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBpbnQz
Ml90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisgICAgc3RhdGljIEJyZWFrSXRlcmF0b3Iq
IG1ha2VJbnN0YW5jZShjb25zdCBMb2NhbGUmIGxvYywgaW50MzJfdCBraW5kLCBVRXJyb3JDb2Rl
JiBzdGF0dXMpOworCisgICAgZnJpZW5kIGNsYXNzIElDVUJyZWFrSXRlcmF0b3JGYWN0b3J5Owor
ICAgIGZyaWVuZCBjbGFzcyBJQ1VCcmVha0l0ZXJhdG9yU2VydmljZTsKKworcHJvdGVjdGVkOgor
ICAgIC8vIERvIG5vdCBlbmNsb3NlIHByb3RlY3RlZCBkZWZhdWx0L2NvcHkgY29uc3RydWN0b3Jz
IHdpdGggI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLy8gb3IgZWxzZSB0aGUgY29t
cGlsZXIgd2lsbCBjcmVhdGUgYSBwdWJsaWMgb25lcy4KKyAgICAvKiogQGludGVybmFsICovCisg
ICAgQnJlYWtJdGVyYXRvcigpOworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJh
dG9yIChjb25zdCBCcmVha0l0ZXJhdG9yICZvdGhlcikgOiBVT2JqZWN0KG90aGVyKSB7fQorICAg
IC8qKiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJhdG9yIChjb25zdCBMb2NhbGUmIHZhbGlk
LCBjb25zdCBMb2NhbGUmIGFjdHVhbCk7Citwcml2YXRlOgorCisgICAgLyoqIEBpbnRlcm5hbCAq
LworICAgIGNoYXIgYWN0dWFsTG9jYWxlW1VMT0NfRlVMTE5BTUVfQ0FQQUNJVFldOworICAgIGNo
YXIgdmFsaWRMb2NhbGVbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07CisKKyAgICAvKioKKyAgICAg
KiBUaGUgYXNzaWdubWVudCBvcGVyYXRvciBoYXMgbm8gcmVhbCBpbXBsZW1lbnRhdGlvbi4KKyAg
ICAgKiBJdCdzIHByb3ZpZGVkIHRvIG1ha2UgdGhlIGNvbXBpbGVyIGhhcHB5LiBEbyBub3QgY2Fs
bC4KKyAgICAgKi8KKyAgICBCcmVha0l0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3QgQnJlYWtJdGVy
YXRvciYpOworfTsKKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworaW5saW5lIFVC
b29sIEJyZWFrSXRlcmF0b3I6OmlzQnVmZmVyQ2xvbmUoKQoreworICAgIHJldHVybiBGQUxTRTsK
K30KKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLworCitVX05BTUVTUEFDRV9F
TkQKKworI2VuZGlmIC8qICNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gKi8KKworI2Vu
ZGlmIC8vIF9CUktJVEVSCisvL2VvZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29k
ZS9jaGFyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9jaGFyaXRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU4ZDY1MDkwYTQwYTYwODU5NTFjNzMzMDdmNzRhY2Y4M2JhMWJiYzgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmgKQEAgLTAsMCArMSw3MjIg
QEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDExLCBJbnRl
cm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4g
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBDSEFS
SVRFUl9ICisjZGVmaW5lIENIQVJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgi
CisjaW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlzdHIu
aCIKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBDaGFyYWN0ZXIgSXRlcmF0b3IK
KyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhhdCBk
ZWZpbmVzIGFuIEFQSSBmb3IgZm9yd2FyZC1vbmx5IGl0ZXJhdGlvbgorICogb24gdGV4dCBvYmpl
Y3RzLgorICogVGhpcyBpcyBhIG1pbmltYWwgaW50ZXJmYWNlIGZvciBpdGVyYXRpb24gd2l0aG91
dCByYW5kb20gYWNjZXNzCisgKiBvciBiYWNrd2FyZHMgaXRlcmF0aW9uLiBJdCBpcyBlc3BlY2lh
bGx5IHVzZWZ1bCBmb3Igd3JhcHBpbmcKKyAqIHN0cmVhbXMgd2l0aCBjb252ZXJ0ZXJzIGludG8g
YW4gb2JqZWN0IGZvciBjb2xsYXRpb24gb3IKKyAqIG5vcm1hbGl6YXRpb24uCisgKgorICogPHA+
Q2hhcmFjdGVycyBjYW4gYmUgYWNjZXNzZWQgaW4gdHdvIHdheXM6IGFzIGNvZGUgdW5pdHMgb3Ig
YXMKKyAqIGNvZGUgcG9pbnRzLgorICogVW5pY29kZSBjb2RlIHBvaW50cyBhcmUgMjEtYml0IGlu
dGVnZXJzIGFuZCBhcmUgdGhlIHNjYWxhciB2YWx1ZXMKKyAqIG9mIFVuaWNvZGUgY2hhcmFjdGVy
cy4gSUNVIHVzZXMgdGhlIHR5cGUgVUNoYXIzMiBmb3IgdGhlbS4KKyAqIFVuaWNvZGUgY29kZSB1
bml0cyBhcmUgdGhlIHN0b3JhZ2UgdW5pdHMgb2YgYSBnaXZlbgorICogVW5pY29kZS9VQ1MgVHJh
bnNmb3JtYXRpb24gRm9ybWF0IChhIGNoYXJhY3RlciBlbmNvZGluZyBzY2hlbWUpLgorICogV2l0
aCBVVEYtMTYsIGFsbCBjb2RlIHBvaW50cyBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aCBlaXRoZXIg
b25lCisgKiBvciB0d28gY29kZSB1bml0cyAoInN1cnJvZ2F0ZXMiKS4KKyAqIFN0cmluZyBzdG9y
YWdlIGlzIHR5cGljYWxseSBiYXNlZCBvbiBjb2RlIHVuaXRzLCB3aGlsZSBwcm9wZXJ0aWVzCisg
KiBvZiBjaGFyYWN0ZXJzIGFyZSB0eXBpY2FsbHkgZGV0ZXJtaW5lZCB1c2luZyBjb2RlIHBvaW50
IHZhbHVlcy4KKyAqIFNvbWUgcHJvY2Vzc2VzIG1heSBiZSBkZXNpZ25lZCB0byB3b3JrIHdpdGgg
c2VxdWVuY2VzIG9mIGNvZGUgdW5pdHMsCisgKiBvciBpdCBtYXkgYmUga25vd24gdGhhdCBhbGwg
Y2hhcmFjdGVycyB0aGF0IGFyZSBpbXBvcnRhbnQgdG8gYW4KKyAqIGFsZ29yaXRobSBjYW4gYmUg
cmVwcmVzZW50ZWQgd2l0aCBzaW5nbGUgY29kZSB1bml0cy4KKyAqIE90aGVyIHByb2Nlc3NlcyB3
aWxsIG5lZWQgdG8gdXNlIHRoZSBjb2RlIHBvaW50IGFjY2VzcyBmdW5jdGlvbnMuPC9wPgorICoK
KyAqIDxwPkZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciBwcm92aWRlcyBuZXh0UG9zdEluYygpIHRv
IGFjY2VzcworICogYSBjb2RlIHVuaXQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwgcG9zaXRpb24g
aW50byB0aGUgdGV4dCBvYmplY3QsCisgKiBzaW1pbGFyIHRvIGEgPGNvZGU+cmV0dXJuIHRleHRb
cG9zaXRpb24rK108L2NvZGU+Ljxicj4KKyAqIEl0IHByb3ZpZGVzIG5leHQzMlBvc3RJbmMoKSB0
byBhY2Nlc3MgYSBjb2RlIHBvaW50IGFuZCBhZHZhbmNlIGFuIGludGVybmFsCisgKiBwb3NpdGlv
bi48L3A+CisgKgorICogPHA+bmV4dDMyUG9zdEluYygpIGFzc3VtZXMgdGhhdCB0aGUgY3VycmVu
dCBwb3NpdGlvbiBpcyB0aGF0IG9mCisgKiB0aGUgYmVnaW5uaW5nIG9mIGEgY29kZSBwb2ludCwg
aS5lLiwgb2YgaXRzIGZpcnN0IGNvZGUgdW5pdC4KKyAqIEFmdGVyIG5leHQzMlBvc3RJbmMoKSwg
dGhpcyB3aWxsIGJlIHRydWUgYWdhaW4uCisgKiBJbiBnZW5lcmFsLCBhY2Nlc3MgdG8gY29kZSB1
bml0cyBhbmQgY29kZSBwb2ludHMgaW4gdGhlIHNhbWUKKyAqIGl0ZXJhdGlvbiBsb29wIHNob3Vs
ZCBub3QgYmUgbWl4ZWQuIEluIFVURi0xNiwgaWYgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAqIGlz
IG9uIGEgc2Vjb25kIGNvZGUgdW5pdCAoTG93IFN1cnJvZ2F0ZSksIHRoZW4gb25seSB0aGF0IGNv
ZGUgdW5pdAorICogaXMgcmV0dXJuZWQgZXZlbiBieSBuZXh0MzJQb3N0SW5jKCkuPC9wPgorICoK
KyAqIDxwPkZvciBpdGVyYXRpb24gd2l0aCBlaXRoZXIgZnVuY3Rpb24sIHRoZXJlIGFyZSB0d28g
d2F5cyB0bworICogY2hlY2sgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbi4gV2hlbiB0aGVy
ZSBhcmUgbm8gbW9yZQorICogY2hhcmFjdGVycyBpbiB0aGUgdGV4dCBvYmplY3Q6CisgKiA8dWw+
CisgKiA8bGk+VGhlIGhhc05leHQoKSBmdW5jdGlvbiByZXR1cm5zIEZBTFNFLjwvbGk+CisgKiA8
bGk+bmV4dFBvc3RJbmMoKSBhbmQgbmV4dDMyUG9zdEluYygpIHJldHVybiBET05FCisgKiAgICAg
d2hlbiBvbmUgYXR0ZW1wdHMgdG8gcmVhZCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgdGV4dCBvYmpl
Y3QuPC9saT4KKyAqIDwvdWw+CisgKgorICogRXhhbXBsZToKKyAqIFxjb2RlIAorICogdm9pZCBm
dW5jdGlvbjEoRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFyMzIg
YzsKKyAqICAgICB3aGlsZShpdC5oYXNOZXh0KCkpIHsKKyAqICAgICAgICAgYz1pdC5uZXh0MzJQ
b3N0SW5jKCk7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgfQorICogfQorICoKKyAqIHZv
aWQgZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBVQ2hh
ciBjOworICogICAgIHdoaWxlKChjPWl0Lm5leHRQb3N0SW5jKCkpIT1Gb3J3YXJkQ2hhcmFjdGVy
SXRlcmF0b3I6OkRPTkUpIHsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICogIH0K
KyAqIFxlbmRjb2RlCisgKiA8L3A+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNz
IFVfQ09NTU9OX0FQSSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgVU9iamVjdCB7
CitwdWJsaWM6CisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgbW9zdCBvZiBGb3J3
YXJkQ2hhcmFjdGVySXRlcmF0b3IncyBmdW5jdGlvbnMKKyAgICAgKiB3aGVuIHRoZSBpdGVyYXRv
ciBoYXMgcmVhY2hlZCB0aGUgbGltaXRzIG9mIGl0cyBpdGVyYXRpb24uCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgZW51bSB7IERPTkUgPSAweGZmZmYgfTsKKyAgICAKKyAg
ICAvKioKKyAgICAgKiBEZXN0cnVjdG9yLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCB+Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgCisgICAg
LyoqCisgICAgICogUmV0dXJucyB0cnVlIHdoZW4gYm90aCBpdGVyYXRvcnMgcmVmZXIgdG8gdGhl
IHNhbWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgY2hhcmFjdGVyLXN0b3JhZ2Ugb2Jq
ZWN0LiAgCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0
byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRydWUgd2hlbiBib3Ro
IGl0ZXJhdG9ycyByZWZlciB0byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUgc2Ft
ZSBjaGFyYWN0ZXItc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0
ZXJhdG9yJiB0aGF0KSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0
cnVlIHdoZW4gdGhlIGl0ZXJhdG9ycyByZWZlciB0byBkaWZmZXJlbnQKKyAgICAgKiB0ZXh0LXN0
b3JhZ2Ugb2JqZWN0cywgb3IgdG8gZGlmZmVyZW50IGNoYXJhY3RlcnMgaW4gdGhlCisgICAgICog
c2FtZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LiAgCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndh
cmRDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgaW5lcXVhbGl0eQorICAgICAq
IEByZXR1cm4gdHJ1ZSB3aGVuIHRoZSBpdGVyYXRvcnMgcmVmZXIgdG8gZGlmZmVyZW50CisgICAg
ICogdGV4dC1zdG9yYWdlIG9iamVjdHMsIG9yIHRvIGRpZmZlcmVudCBjaGFyYWN0ZXJzIGluIHRo
ZQorICAgICAqIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGlubGluZSBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEZvcndhcmRDaGFy
YWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisgICAgCisgICAgLyoqCisgICAgICogR2VuZXJh
dGVzIGEgaGFzaCBjb2RlIGZvciB0aGlzIGl0ZXJhdG9yLiAgCisgICAgICogQHJldHVybiB0aGUg
aGFzaCBjb2RlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
aW50MzJfdCBoYXNoQ29kZSh2b2lkKSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICog
UmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGlzIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAoInBv
b3IgbWFuJ3MKKyAgICAgKiBSVFRJIikuPFA+IERlc3BpdGUgdGhlIGZhY3QgdGhhdCB0aGlzIGZ1
bmN0aW9uIGlzIHB1YmxpYywKKyAgICAgKiBETyBOT1QgQ09OU0lERVIgSVQgUEFSVCBPRiBDSEFS
QUNURVJJVEVSQVRPUidTIEFQSSEgCisgICAgICogQHJldHVybiBhIFVDbGFzc0lEIGZvciB0aGlz
IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0ID0g
MDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgdW5pdCBmb3Ig
cmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQKKyAgICAgKiBpbiB0
aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJl
IGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4K
KyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dFBvc3RJbmModm9p
ZCkgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSBwb2lu
dCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50CisgICAg
ICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5kZXgoKSkuICBJ
ZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0dXJu
cyBET05FLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSBwb2ludC4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4dDMy
UG9zdEluYyh2b2lkKSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBGQUxTRSBp
ZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICogYXQg
b3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAg
ICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMoKSBp
biBmb3J3YXJkCisgICAgICogaXRlcmF0aW9uLgorICAgICAqIEByZXR1cm5zIEZBTFNFIGlmIHRo
ZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAgKiBhdCBvciBh
ZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc05l
eHQoKSA9IDA7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgLyoqIERlZmF1bHQgY29uc3RydWN0b3Ig
dG8gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLiBAc3RhYmxlIElDVSAy
LjAqLworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgIAorICAgIC8qKiBDb3B5
IGNvbnN0cnVjdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGluZyBjbGFzcy4g
QHN0YWJsZSBJQ1UgMi4wKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgRm9y
d2FyZENoYXJhY3Rlckl0ZXJhdG9yICZvdGhlcik7CisgICAgCisgICAgLyoqCisgICAgICogQXNz
aWdubWVudCBvcGVyYXRvciB0byBiZSBvdmVycmlkZGVuIGluIHRoZSBpbXBsZW1lbnRpbmcgY2xh
c3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgRm9yd2FyZENoYXJhY3Rl
ckl0ZXJhdG9yICZvcGVyYXRvcj0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJikgeyBy
ZXR1cm4gKnRoaXM7IH0KK307CisKKy8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhhdCBkZWZpbmVz
IGFuIEFQSSBmb3IgaXRlcmF0aW9uCisgKiBvbiB0ZXh0IG9iamVjdHMuCisgKiBUaGlzIGlzIGFu
IGludGVyZmFjZSBmb3IgZm9yd2FyZCBhbmQgYmFja3dhcmQgaXRlcmF0aW9uCisgKiBhbmQgcmFu
ZG9tIGFjY2VzcyBpbnRvIGEgdGV4dCBvYmplY3QuCisgKgorICogPHA+VGhlIEFQSSBwcm92aWRl
cyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHRvIHRoZSBKYXZhIGFuZCBvbGRlciBJQ1UKKyAqIENo
YXJhY3Rlckl0ZXJhdG9yIGNsYXNzZXMgYnV0IGV4dGVuZHMgdGhlbSBzaWduaWZpY2FudGx5Ogor
ICogPG9sPgorICogPGxpPkNoYXJhY3Rlckl0ZXJhdG9yIGlzIG5vdyBhIHN1YmNsYXNzIG9mIEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvci48L2xpPgorICogPGxpPldoaWxlIHRoZSBvbGQgQVBJIGZ1
bmN0aW9ucyBwcm92aWRlZCBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoCisgKiAgICAgInByZS1pbmNy
ZW1lbnQiIHNlbWFudGljcywgdGhlIG5ldyBvbmUgYWxzbyBwcm92aWRlcyBmdW5jdGlvbnMKKyAq
ICAgICB3aXRoICJwb3N0LWluY3JlbWVudCIgc2VtYW50aWNzLiBUaGV5IGFyZSBtb3JlIGVmZmlj
aWVudCBhbmQgc2hvdWxkCisgKiAgICAgYmUgdGhlIHByZWZlcnJlZCBpdGVyYXRvciBmdW5jdGlv
bnMgZm9yIG5ldyBpbXBsZW1lbnRhdGlvbnMuCisgKiAgICAgVGhlIGJhY2t3YXJkIGl0ZXJhdGlv
biBhbHdheXMgaGFkICJwcmUtZGVjcmVtZW50IiBzZW1hbnRpY3MsIHdoaWNoCisgKiAgICAgYXJl
IGVmZmljaWVudC48L2xpPgorICogPGxpPkp1c3QgbGlrZSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0
b3IsIGl0IHByb3ZpZGVzIGFjY2VzcyB0bworICogICAgIGJvdGggY29kZSB1bml0cyBhbmQgY29k
ZSBwb2ludHMuIENvZGUgcG9pbnQgYWNjZXNzIHZlcnNpb25zIGFyZSBhdmFpbGFibGUKKyAqICAg
ICBmb3IgdGhlIG9sZCBhbmQgdGhlIG5ldyBpdGVyYXRpb24gc2VtYW50aWNzLjwvbGk+CisgKiA8
bGk+VGhlcmUgYXJlIG5ldyBmdW5jdGlvbnMgZm9yIHNldHRpbmcgYW5kIG1vdmluZyB0aGUgY3Vy
cmVudCBwb3NpdGlvbgorICogICAgIHdpdGhvdXQgcmV0dXJuaW5nIGEgY2hhcmFjdGVyLCBmb3Ig
ZWZmaWNpZW5jeS48L2xpPgorICogPC9vbD4KKyAqCisgKiBTZWUgRm9yd2FyZENoYXJhY3Rlckl0
ZXJhdG9yIGZvciBleGFtcGxlcyBmb3IgdXNpbmcgdGhlIG5ldyBmb3J3YXJkIGl0ZXJhdGlvbgor
ICogZnVuY3Rpb25zLiBGb3IgYmFja3dhcmQgaXRlcmF0aW9uLCB0aGVyZSBpcyBhbHNvIGEgaGFz
UHJldmlvdXMoKSBmdW5jdGlvbgorICogdGhhdCBjYW4gYmUgdXNlZCBhbmFsb2dvdXNseSB0byBo
YXNOZXh0KCkuCisgKiBUaGUgb2xkIGZ1bmN0aW9ucyB3b3JrIGFzIGJlZm9yZSBhbmQgYXJlIHNo
b3duIGJlbG93LjwvcD4KKyAqCisgKiA8cD5FeGFtcGxlcyBmb3Igc29tZSBvZiB0aGUgbmV3IGZ1
bmN0aW9uczo8L3A+CisgKgorICogRm9yd2FyZCBpdGVyYXRpb24gd2l0aCBoYXNOZXh0KCk6Cisg
KiBcY29kZQorICogdm9pZCBmb3J3YXJkMShDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAg
ICBVQ2hhcjMyIGM7CisgKiAgICAgZm9yKGl0LnNldFRvU3RhcnQoKTsgaXQuaGFzTmV4dCgpOykg
eworICogICAgICAgICBjPWl0Lm5leHQzMlBvc3RJbmMoKTsKKyAqICAgICAgICAgLy8gdXNlIGMK
KyAqICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIEZvcndhcmQgaXRlcmF0aW9uIG1vcmUg
c2ltaWxhciB0byBsb29wcyB3aXRoIHRoZSBvbGQgZm9yd2FyZCBpdGVyYXRpb24sCisgKiBzaG93
aW5nIGEgd2F5IHRvIGNvbnZlcnQgc2ltcGxlIGZvcigpIGxvb3BzOgorICogXGNvZGUKKyAqIHZv
aWQgZm9yd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIgYzsKKyAq
ICAgICBmb3IoYz1pdC5maXJzdFBvc3RJbmMoKTsgYyE9Q2hhcmFjdGVySXRlcmF0b3I6OkRPTkU7
IGM9aXQubmV4dFBvc3RJbmMoKSkgeworICogICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQor
ICogfQorICogXGVuZGNvZGUKKyAqIEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIHNldFRvRW5kKCkg
YW5kIGhhc1ByZXZpb3VzKCk6CisgKiBcY29kZQorICogIHZvaWQgYmFja3dhcmQxKENoYXJhY3Rl
ckl0ZXJhdG9yICZpdCkgeworICogICAgICBVQ2hhcjMyIGM7CisgKiAgICAgIGZvcihpdC5zZXRU
b0VuZCgpOyBpdC5oYXNQcmV2aW91cygpOykgeworICogICAgICAgICBjPWl0LnByZXZpb3VzMzIo
KTsKKyAqICAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29kZQor
ICogQmFja3dhcmQgaXRlcmF0aW9uIHdpdGggYSBtb3JlIHRyYWRpdGlvbmFsIGZvcigpIGxvb3A6
CisgKiBcY29kZQorICogdm9pZCBiYWNrd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7Cisg
KiAgICAgVUNoYXIgYzsKKyAqICAgICBmb3IoYz1pdC5sYXN0KCk7IGMhPUNoYXJhY3Rlckl0ZXJh
dG9yOjpET05FOyBjPWl0LnByZXZpb3VzKCkpIHsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAg
ICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKgorICogRXhhbXBsZSBmb3IgcmFuZG9tIGFjY2Vz
czoKKyAqIFxjb2RlCisgKiAgdm9pZCByYW5kb20oQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7Cisg
KiAgICAgIC8vIHNldCB0byB0aGUgdGhpcmQgY29kZSBwb2ludCBmcm9tIHRoZSBiZWdpbm5pbmcK
KyAqICAgICAgaXQubW92ZTMyKDMsIENoYXJhY3Rlckl0ZXJhdG9yOjprU3RhcnQpOworICogICAg
ICAvLyBnZXQgYSBjb2RlIHBvaW50IGZyb20gaGVyZSB3aXRob3V0IG1vdmluZyB0aGUgcG9zaXRp
b24KKyAqICAgICAgVUNoYXIzMiBjPWl0LmN1cnJlbnQzMigpOworICogICAgICAvLyBnZXQgdGhl
IHBvc2l0aW9uCisgKiAgICAgIGludDMyX3QgcG9zPWl0LmdldEluZGV4KCk7CisgKiAgICAgIC8v
IGdldCB0aGUgcHJldmlvdXMgY29kZSB1bml0CisgKiAgICAgIFVDaGFyIHU9aXQucHJldmlvdXMo
KTsKKyAqICAgICAgLy8gbW92ZSBiYWNrIG9uZSBtb3JlIGNvZGUgdW5pdAorICogICAgICBpdC5t
b3ZlKC0xLCBDaGFyYWN0ZXJJdGVyYXRvcjo6a0N1cnJlbnQpOworICogICAgICAvLyBzZXQgdGhl
IHBvc2l0aW9uIGJhY2sgdG8gd2hlcmUgaXQgd2FzCisgKiAgICAgIC8vIGFuZCByZWFkIHRoZSBz
YW1lIGNvZGUgcG9pbnQgYyBhbmQgbW92ZSBiZXlvbmQgaXQKKyAqICAgICAgaXQuc2V0SW5kZXgo
cG9zKTsKKyAqICAgICAgaWYoYyE9aXQubmV4dDMyUG9zdEluYygpKSB7CisgKiAgICAgICAgICBl
eGl0KDEpOyAvLyBDaGFyYWN0ZXJJdGVyYXRvciBpbmNvbnNpc3RlbnQKKyAqICAgICAgfQorICog
IH0KKyAqIFxlbmRjb2RlCisgKgorICogPHA+RXhhbXBsZXMsIGVzcGVjaWFsbHkgZm9yIHRoZSBv
bGQgQVBJOjwvcD4KKyAqCisgKiBGdW5jdGlvbiBwcm9jZXNzaW5nIGNoYXJhY3RlcnMsIGluIHRo
aXMgZXhhbXBsZSBzaW1wbGUgb3V0cHV0CisgKiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIHBy
b2Nlc3NDaGFyKCBVQ2hhciBjICkKKyAqICB7CisgKiAgICAgIGNvdXQgPDwgIiAiIDw8IGM7Cisg
KiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgdGhlIHRleHQgZnJvbSBz
dGFydCB0byBmaW5pc2gKKyAqIDxwcmU+IAorICogXGNvZGUKKyAqICB2b2lkIHRyYXZlcnNlRm9y
d2FyZChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlcikKKyAqICB7CisgKiAgICAgIGZvcihVQ2hhciBj
ID0gaXRlci5maXJzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMgPSBpdGVyLm5l
eHQoKSkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgIH0KKyAqICB9Cisg
KiBcZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSB0aGUgdGV4dCBiYWNrd2FyZHMsIGZy
b20gZW5kIHRvIHN0YXJ0CisgKiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIHRyYXZlcnNlQmFj
a3dhcmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIpCisgKiAgeworICogICAgICBmb3IoVUNoYXIg
YyA9IGl0ZXIubGFzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMgPSBpdGVyLnBy
ZXZpb3VzKCkpIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMpOworICogICAgICB9CisgKiAg
fQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgYm90aCBmb3J3YXJkIGFuZCBi
YWNrd2FyZCBmcm9tIGEgZ2l2ZW4gcG9zaXRpb24gaW4gdGhlIHRleHQuIAorICogQ2FsbHMgdG8g
bm90Qm91bmRhcnkoKSBpbiB0aGlzIGV4YW1wbGUgcmVwcmVzZW50cyBzb21lIGFkZGl0aW9uYWwg
c3RvcHBpbmcgY3JpdGVyaWEuCisgKiA8cHJlPgorICogXGNvZGUKKyAqIHZvaWQgdHJhdmVyc2VP
dXQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIsIGludDMyX3QgcG9zKQorICogeworICogICAgICBV
Q2hhciBjOworICogICAgICBmb3IgKGMgPSBpdGVyLnNldEluZGV4KHBvcyk7CisgKiAgICAgIGMg
IT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJiAoVW5pY29kZTo6aXNMZXR0ZXIoYykgfHwgVW5p
Y29kZTo6aXNEaWdpdChjKSk7CisgKiAgICAgICAgICBjID0gaXRlci5uZXh0KCkpIHt9CisgKiAg
ICAgIGludDMyX3QgZW5kID0gaXRlci5nZXRJbmRleCgpOworICogICAgICBmb3IgKGMgPSBpdGVy
LnNldEluZGV4KHBvcyk7CisgKiAgICAgICAgICBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkUg
JiYgKFVuaWNvZGU6OmlzTGV0dGVyKGMpIHx8IFVuaWNvZGU6OmlzRGlnaXQoYykpOworICogICAg
ICAgICAgYyA9IGl0ZXIucHJldmlvdXMoKSkge30KKyAqICAgICAgaW50MzJfdCBzdGFydCA9IGl0
ZXIuZ2V0SW5kZXgoKSArIDE7CisgKiAgCisgKiAgICAgIGNvdXQgPDwgInN0YXJ0OiAiIDw8IHN0
YXJ0IDw8ICIgZW5kOiAiIDw8IGVuZCA8PCBlbmRsOworICogICAgICBmb3IgKGMgPSBpdGVyLnNl
dEluZGV4KHN0YXJ0KTsgaXRlci5nZXRJbmRleCgpIDwgZW5kOyBjID0gaXRlci5uZXh0KCkgKSB7
CisgKiAgICAgICAgICBwcm9jZXNzQ2hhcihjKTsKKyAqICAgICB9CisgKiAgfQorICogXGVuZGNv
ZGUKKyAqIDwvcHJlPgorICogQ3JlYXRpbmcgYSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBhbmQg
Y2FsbGluZyB0aGUgdGVzdCBmdW5jdGlvbnMKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZvaWQg
Q2hhcmFjdGVySXRlcmF0b3JfRXhhbXBsZSggdm9pZCApCisgKiAgIHsKKyAqICAgICAgIGNvdXQg
PDwgZW5kbCA8PCAiPT09PT0gQ2hhcmFjdGVySXRlcmF0b3JfRXhhbXBsZTogPT09PT0iIDw8IGVu
ZGw7CisgKiAgICAgICBVbmljb2RlU3RyaW5nIHRleHQoIkVpbiBrbGVpbmVyIFNhdHouIik7Cisg
KiAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvcih0ZXh0KTsKKyAqICAgICAg
IGNvdXQgPDwgIi0tLS0tIHRyYXZlcnNlRm9yd2FyZDogLS0tLS0tLS0tLS0iIDw8IGVuZGw7Cisg
KiAgICAgICB0cmF2ZXJzZUZvcndhcmQoIGl0ZXJhdG9yICk7CisgKiAgICAgICBjb3V0IDw8IGVu
ZGwgPDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVyc2VCYWNrd2FyZDogLS0tLS0tLS0tLSIgPDwgZW5k
bDsKKyAqICAgICAgIHRyYXZlcnNlQmFja3dhcmQoIGl0ZXJhdG9yICk7CisgKiAgICAgICBjb3V0
IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVyc2VPdXQ6IC0tLS0tLS0tLS0tLS0tLSIg
PDwgZW5kbDsKKyAqICAgICAgIHRyYXZlcnNlT3V0KCBpdGVyYXRvciwgNyApOworICogICAgICAg
Y291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIiA8PCBlbmRsOworICogICB9CisgKiBcZW5k
Y29kZQorICogPC9wcmU+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09N
TU9OX0FQSSBDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0
b3IgeworcHVibGljOgorICAgIC8qKgorICAgICAqIE9yaWdpbiBlbnVtZXJhdGlvbiBmb3IgdGhl
IG1vdmUoKSBhbmQgbW92ZTMyKCkgZnVuY3Rpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIGVudW0gRU9yaWdpbiB7IGtTdGFydCwga0N1cnJlbnQsIGtFbmQgfTsKKwor
ICAgIC8qKgorICAgICAqIERlc3RydWN0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCB+Q2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8qKgorICAgICAq
IFJldHVybnMgYSBwb2ludGVyIHRvIGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yIG9mIHRoZSBzYW1l
CisgICAgICogY29uY3JldGUgY2xhc3MgYXMgdGhpcyBvbmUsIGFuZCByZWZlcnJpbmcgdG8gdGhl
IHNhbWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdCBh
cyB0aGlzIG9uZS4gIFRoZQorICAgICAqIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRp
bmcgdGhlIG5ldyBjbG9uZS4gIAorICAgICAqIEByZXR1cm4gYSBwb2ludGVyIHRvIGEgbmV3IENo
YXJhY3Rlckl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3QgPSAwOworCisgICAgLyoq
CisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5p
dCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1
bml0LgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGgg
bmV4dCgpLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRlcmF0
aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
VUNoYXIgICAgICAgICBmaXJzdCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRo
ZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAgICAq
IGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1vdmVzIHRoZSBw
b3NpdGlvbgorICAgICAqIHRvIHRoZSBzZWNvbmQgY29kZSB1bml0LiBUaGlzIGlzIGFuIGFsdGVy
bmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRo
IG5leHRQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0
cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0UG9zdEluYyh2b2lkKTsKKworICAgIC8qKgorICAg
ICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50IGlu
IGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQs
CisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0
MzIoKS4KKyAgICAgKiBOb3RlIHRoYXQgYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdEluYygp
LCBiZWdpbm5pbmcgd2l0aCwKKyAgICAgKiBlLmcuLCBzZXRUb1N0YXJ0KCkgb3IgZmlyc3RQb3N0
SW5jKCksIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUg
cG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmlyc3QzMih2b2lkKSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29k
ZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBjb2Rl
IHBvaW50LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAgICogdG8gdGhlIHNlY29uZCBjb2Rl
IHBvaW50LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAgICAqIGZv
ciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICAgKiBAcmV0dXJu
IHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0MzJQ
b3N0SW5jKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVm
ZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvciBjb2RlIHBvaW50IGluIGl0cworICAgICAqIGl0
ZXJhdGlvbiByYW5nZS4gVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhIGZvcndhcmQKKyAgICAg
KiBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMoKS4KKyAgICAg
KiBAcmV0dXJuIHRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgc2V0VG9T
dGFydCgpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8g
dGhlIGxhc3QgY29kZSB1bml0IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJl
dHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBh
biBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpLgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY29k
ZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNo
YXIgICAgICAgICBsYXN0KHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogU2V0
cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMKKyAg
ICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAgICAq
IFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMzMigp
LgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMyKHZvaWQpID0g
MDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBlbmQgb2YgaXRz
IGl0ZXJhdGlvbiByYW5nZSwganVzdCBiZWhpbmQKKyAgICAgKiB0aGUgbGFzdCBjb2RlIHVuaXQg
b3IgY29kZSBwb2ludC4gVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhIGJhY2t3YXJkCisgICAg
ICogaXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkuCisgICAgICogQHJl
dHVybiB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICBzZXRUb0VuZCgpOwor
CisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlICJwb3Np
dGlvbiItdGggY29kZSB1bml0CisgICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhl
IGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAgICogcmV0dXJucyB0aGF0IGNvZGUgdW5pdC4g
IAorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQgaW4g
dGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAcmV0dXJuIHRoZSAicG9zaXRpb24iLXRo
IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IFVDaGFyICAgICAgICAgc2V0SW5kZXgoaW50MzJfdCBwb3NpdGlvbikgPSAwOworCisgICAgLyoq
CisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0
aGUgY29kZSBwb2ludAorICAgICAqIHRoYXQgY29udGFpbnMgdGhlICJwb3NpdGlvbiItdGggY29k
ZSB1bml0CisgICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9yIHJl
ZmVycyB0bywgYW5kCisgICAgICogcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisgICAgICogVGhl
IGN1cnJlbnQgcG9zaXRpb24gaXMgYWRqdXN0ZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY29k
ZSBwb2ludAorICAgICAqIChpdHMgZmlyc3QgY29kZSB1bml0KS4KKyAgICAgKiBAcGFyYW0gcG9z
aXRpb24gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0IGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2Jq
ZWN0CisgICAgICogQHJldHVybiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHBvaW50LgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBzZXRJ
bmRleDMyKGludDMyX3QgcG9zaXRpb24pID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMg
dGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4gCisgICAgICog
QHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuIAorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBjdXJyZW50KHZvaWQpIGNvbnN0ID0g
MDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29kZSBwb2ludCB0aGUg
aXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4gIAorICAgICAqIEByZXR1cm4gdGhlIGN1cnJl
bnQgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIFVDaGFyMzIgICAgICAgY3VycmVudDMyKHZvaWQpIGNvbnN0ID0gMDsKKyAgICAgICAgCisg
ICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBpdGVy
YXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0
IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byBy
ZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgdW5pdC4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAg
ICAgbmV4dCh2b2lkKSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2VzIHRv
IHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dh
cmQgZW5kSW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJlIGFy
ZQorICAgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisg
ICAgICogTm90ZSB0aGF0IGl0ZXJhdGlvbiB3aXRoICJwcmUtaW5jcmVtZW50IiBzZW1hbnRpY3Mg
aXMgbGVzcworICAgICAqIGVmZmljaWVudCB0aGFuIGl0ZXJhdGlvbiB3aXRoICJwb3N0LWluY3Jl
bWVudCIgc2VtYW50aWNzCisgICAgICogdGhhdCBpcyBwcm92aWRlZCBieSBuZXh0MzJQb3N0SW5j
KCkuCisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzIodm9pZCkg
PSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMg
Y29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIHN0YXJ0SW5k
ZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlCisgICAgICog
bm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLiAgCisgICAgICogQHJl
dHVybiB0aGUgcHJldmlvdXMgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBwcmV2aW91cyh2b2lkKSA9IDA7CisKKyAg
ICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUg
aXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBzdGFydEluZGV4KCkpLCBhbmQgcmV0dXJu
cyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9p
bnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLiAKKyAgICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91
cyBjb2RlIHBvaW50LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIFVDaGFyMzIgICAgICAgcHJldmlvdXMzMih2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBw
b2ludHMKKyAgICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlv
biByYW5nZS4KKyAgICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBwcmV2aW91cygpIG9yIHByZXZpb3Vz
MzIoKSBpbiBiYWNrd2FyZAorICAgICAqIGl0ZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIEZBTFNF
IGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAgKiBi
ZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJu
IFRSVUUgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgVUJvb2wgICAgICAgIGhhc1ByZXZpb3VzKCkgPSAwOworCisgICAgLyoqCisgICAgICog
UmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UK
KyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBmaXJzdCgpLiAgU2lu
Y2UgaXQncworICAgICAqIHBvc3NpYmxlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvciB0aGF0IGl0ZXJh
dGVzIGFjcm9zcyBvbmx5CisgICAgICogcGFydCBvZiBhIHRleHQtc3RvcmFnZSBvYmplY3QsIHRo
aXMgbnVtYmVyIGlzbid0CisgICAgICogbmVjZXNzYXJpbHkgMC4gIAorICAgICAqIEByZXR1cm5z
IHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAgICAq
IG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGZpcnN0KCkuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAgc3RhcnRJbmRl
eCh2b2lkKSBjb25zdDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnVt
ZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qg
b2YgdGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVyCisgICAgICog
cmV0dXJuZWQgYnkgbGFzdCgpLiAgCisgICAgICogQHJldHVybiB0aGUgbnVtZXJpYyBpbmRleCBp
biB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIHBvc2l0
aW9uIGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVyCisgICAgICogcmV0dXJuZWQgYnkg
bGFzdCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBpbnQz
Ml90ICAgICAgIGVuZEluZGV4KHZvaWQpIGNvbnN0OworICAgICAgICAKKyAgICAvKioKKyAgICAg
KiBSZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFn
ZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHRoZSBpdGVyYXRvciBjdXJyZW50bHkg
cmVmZXJzIHRvCisgICAgICogKGkuZS4sIHRoZSBjaGFyYWN0ZXIgcmV0dXJuZWQgYnkgY3VycmVu
dCgpKS4gIAorICAgICAqIEByZXR1cm4gdGhlIG51bWJlcmljIGluZGV4IGluIHRoZSB0ZXh0LXN0
b3JhZ2Ugb2JqZWN0IG9mIAorICAgICAqIHRoZSBjaGFyYWN0ZXIgdGhlIGl0ZXJhdG9yIGN1cnJl
bnRseSByZWZlcnMgdG8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxp
bmUgaW50MzJfdCAgICAgICBnZXRJbmRleCh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgZW50aXJlIHRleHQgaW4gdGhlIHVuZGVybHlpbmcK
KyAgICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0aCBv
ZiB0aGUgZW50aXJlIHRleHQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICAgICAgZ2V0TGVu
Z3RoKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3NpdGlv
biByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgICAqIGl0ZXJhdGlvbiBy
YW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgICAq
IFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHVuaXRzIGZvcndh
cmQKKyAgICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRp
dmUgZGVsdGEuCisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBv
cmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBhIG5lZ2F0aXZl
IGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1l
cmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBw
b3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50
MzJfdCAgICAgIG1vdmUoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pID0gMDsKKworICAg
IC8qKgorICAgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBz
dGFydCBvciBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2ZSB0
byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAgICogVGhlIG1vdmVtZW50IGlzIGV4
cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgcG9pbnRzIGZvcndhcmQKKyAgICAgKiBvciBiYWNr
d2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAgICog
QHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRpdmUg
ZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJhY2t3
YXJkLgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtrU3RhcnQsIGtD
dXJyZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUzMihp
bnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbikgPSAwOworCisgICAgLyoqCisgICAgICogQ29w
aWVzIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBVbmljb2RlU3RyaW5nCisgICAg
ICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICAKKyAgICAgKiBAcGFyYW0gcmVzdWx0IFJlY2Vp
dmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uICAKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVu
aWNvZGVTdHJpbmcmICByZXN1bHQpID0gMDsKKworcHJvdGVjdGVkOgorICAgIC8qKgorICAgICAq
IEVtcHR5IGNvbnN0cnVjdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IENoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciwganVz
dCBzZXR0aW5nIHRoZSBsZW5ndGggZmllbGQgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3QgbGVu
Z3RoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLCBqdXN0IHNldHRpbmcgdGhlIGxl
bmd0aCBhbmQgcG9zaXRpb24gZmllbGRzIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxlbmd0
aCwgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RvciwganVz
dCBzZXR0aW5nIHRoZSBsZW5ndGgsIHN0YXJ0LCBlbmQsIGFuZCBwb3NpdGlvbiBmaWVsZHMgaW4g
dGhpcyBiYXNlIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENo
YXJhY3Rlckl0ZXJhdG9yKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90IHRleHRCZWdpbiwgaW50MzJf
dCB0ZXh0RW5kLCBpbnQzMl90IHBvc2l0aW9uKTsKKyAgCisgICAgLyoqCisgICAgICogQ29weSBj
b25zdHJ1Y3Rvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBDaGFyYWN0ZXJJdGVy
YXRvciB0byBiZSBjb3BpZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBD
aGFyYWN0ZXJJdGVyYXRvcihjb25zdCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7CisKKyAgICAv
KioKKyAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgU2V0cyB0aGlzIENoYXJhY3Rlckl0ZXJh
dG9yIHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsCisgICAgICogYXMgdGhlIG9uZSBwYXNzZWQg
aW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHBhc3NlZCBpbi4K
KyAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBzZXQgQ2hhcmFjdGVySXRlcmF0b3IuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IgJm9wZXJhdG9y
PShjb25zdCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBCYXNl
IGNsYXNzIHRleHQgbGVuZ3RoIGZpZWxkLgorICAgICAqIE5lY2Vzc2FyeSB0aGlzIGZvciBjb3Jy
ZWN0IGdldFRleHQoKSBhbmQgaGFzaENvZGUoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBpbnQzMl90IHRleHRMZW5ndGg7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNs
YXNzIGZpZWxkIGZvciB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBwb3M7CisKKyAgICAvKioKKyAgICAgKiBCYXNlIGNs
YXNzIGZpZWxkIGZvciB0aGUgc3RhcnQgb2YgdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBiZWdpbjsKKworICAgIC8qKgor
ICAgICAqIEJhc2UgY2xhc3MgZmllbGQgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiByYW5n
ZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBlbmQ7Cit9
OworCitpbmxpbmUgVUJvb2wKK0ZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjo6b3BlcmF0b3IhPShj
b25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0IHsKKyAgICByZXR1cm4g
IW9wZXJhdG9yPT0odGhhdCk7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVyYXRv
cjo6c2V0VG9TdGFydCgpIHsKKyAgICByZXR1cm4gbW92ZSgwLCBrU3RhcnQpOworfQorCitpbmxp
bmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvRW5kKCkgeworICAgIHJldHVybiBt
b3ZlKDAsIGtFbmQpOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnN0
YXJ0SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBiZWdpbjsKK30KKworaW5saW5lIGlu
dDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjplbmRJbmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0
dXJuIGVuZDsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpnZXRJbmRl
eCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIHBvczsKK30KKworaW5saW5lIGludDMyX3QKK0No
YXJhY3Rlckl0ZXJhdG9yOjpnZXRMZW5ndGgodm9pZCkgY29uc3QgeworICAgIHJldHVybiB0ZXh0
TGVuZ3RoOworfQorCitVX05BTUVTUEFDRV9FTkQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9pY3UvdW5pY29kZS9sb2NpZC5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9sb2NpZC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFhZDVjYjU0NmViZTM5N2VmNDM2ZGYzNjUwM2ViNDM3MWMzODY2OTYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmgKQEAgLTAsMCAr
MSw4MTQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQgKEMp
IDE5OTYtMjAxNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0
aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqCisqIEZpbGUgbG9jaWQuaAorKgorKiBDcmVhdGVkIGJ5OiBIZWxlbmEgU2hpaAor
KgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAg
ICBEZXNjcmlwdGlvbgorKiAgIDAyLzExLzk3ICAgIGFsaXUgICAgICAgIENoYW5nZWQgZ0xvY1Bh
dGggdG8gZmdMb2NQYXRoIGFuZCBhZGRlZCBtZXRob2RzIHRvCisqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2V0IGFuZCBzZXQgaXQuCisqICAgMDQvMDIvOTcgICAgYWxpdSAgICAgICAgTWFk
ZSBvcGVyYXRvciE9IGlubGluZTsgZml4ZWQgcmV0dXJuIHZhbHVlIG9mIGdldE5hbWUoKS4KKyog
ICAwNC8xNS85NyAgICBhbGl1ICAgICAgICBDbGVhbnVwIGZvciBBSVgvV2luMzIuCisqICAgMDQv
MjQvOTcgICAgYWxpdSAgICAgICAgTnVtZXJvdXMgY2hhbmdlcyBwZXIgY29kZSByZXZpZXcuCisq
ICAgMDgvMTgvOTggICAgc3RlcGhlbiAgICAgQWRkZWQgdG9rZW5pemVTdHJpbmcoKSxjaGFuZ2Vk
IGdldERpc3BsYXlOYW1lKCkKKyogICAwOS8wOC85OCAgICBzdGVwaGVuICAgICBNb3ZlZCBkZWZp
bml0aW9uIG9mIGtFbXB0eVN0cmluZyBmb3IgTWFjIFBvcnQKKyogICAxMS8wOS85OSAgICB3ZWl2
ICAgICAgICBBZGRlZCBjb25zdCBjaGFyICogZ2V0TmFtZSgpIGNvbnN0OworKiAgIDA0LzEyLzAw
ICAgIHNybCAgICAgICAgIHJlbW92aW5nIHVuaWNvZGVzdHJpbmcgYXBpJ3MgYW5kIGNhY2hlZCBo
YXNoIGNvZGUKKyogICAwOC8xMC8wMSAgICBncmhvdGVuICAgICBDaGFuZ2UgdGhlIHN0YXRpYyBM
b2NhbGVzIHRvIGFjY2Vzc29yIGZ1bmN0aW9ucworKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLwor
CisjaWZuZGVmIExPQ0lEX0gKKyNkZWZpbmUgTE9DSURfSAorCisjaW5jbHVkZSAidW5pY29kZS91
dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3VuaXN0ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L3Vsb2MuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVudW0uaCIKKworLyoqCisgKiBcZmlsZQor
ICogXGJyaWVmIEMrKyBBUEk6IExvY2FsZSBJRCBvYmplY3QuCisgKi8KKworVV9OQU1FU1BBQ0Vf
QkVHSU4KKworLy8gRm9yd2FyZCBEZWNsYXJhdGlvbnMKK3ZvaWQgVV9DQUxMQ09OViBsb2NhbGVf
YXZhaWxhYmxlX2luaXQoKTsgLyoqPCBAaW50ZXJuYWwgKi8KKworLyoqCisgKiBBIDxjb2RlPkxv
Y2FsZTwvY29kZT4gb2JqZWN0IHJlcHJlc2VudHMgYSBzcGVjaWZpYyBnZW9ncmFwaGljYWwsIHBv
bGl0aWNhbCwKKyAqIG9yIGN1bHR1cmFsIHJlZ2lvbi4gQW4gb3BlcmF0aW9uIHRoYXQgcmVxdWly
ZXMgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHRvIHBlcmZvcm0KKyAqIGl0cyB0YXNrIGlzIGNhbGxl
ZCA8ZW0+bG9jYWxlLXNlbnNpdGl2ZTwvZW0+IGFuZCB1c2VzIHRoZSA8Y29kZT5Mb2NhbGU8L2Nv
ZGU+CisgKiB0byB0YWlsb3IgaW5mb3JtYXRpb24gZm9yIHRoZSB1c2VyLiBGb3IgZXhhbXBsZSwg
ZGlzcGxheWluZyBhIG51bWJlcgorICogaXMgYSBsb2NhbGUtc2Vuc2l0aXZlIG9wZXJhdGlvbi0t
dGhlIG51bWJlciBzaG91bGQgYmUgZm9ybWF0dGVkCisgKiBhY2NvcmRpbmcgdG8gdGhlIGN1c3Rv
bXMvY29udmVudGlvbnMgb2YgdGhlIHVzZXIncyBuYXRpdmUgY291bnRyeSwKKyAqIHJlZ2lvbiwg
b3IgY3VsdHVyZS4KKyAqCisgKiBUaGUgTG9jYWxlIGNsYXNzIGlzIG5vdCBzdWl0YWJsZSBmb3Ig
c3ViY2xhc3NpbmcuCisgKgorICogPFA+CisgKiBZb3UgY2FuIGNyZWF0ZSBhIDxjb2RlPkxvY2Fs
ZTwvY29kZT4gb2JqZWN0IHVzaW5nIHRoZSBjb25zdHJ1Y3RvciBpbgorICogdGhpcyBjbGFzczoK
KyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAgICAg
IExvY2FsZSggY29uc3QgICBjaGFyKiAgbGFuZ3VhZ2UsCisgKiAgICAgICAgICAgICAgIGNvbnN0
ICAgY2hhciogIGNvdW50cnksCisgKiAgICAgICAgICAgICAgIGNvbnN0ICAgY2hhciogIHZhcmlh
bnQpOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5Cisg
KiBUaGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZhbGlkIDxTVFJP
Tkc+SVNPCisgKiBMYW5ndWFnZSBDb2RlLjwvU1RST05HPiBUaGVzZSBjb2RlcyBhcmUgdGhlIGxv
d2VyLWNhc2UgdHdvLWxldHRlcgorICogY29kZXMgYXMgZGVmaW5lZCBieSBJU08tNjM5LgorICog
WW91IGNhbiBmaW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNlIGNvZGVzIGF0OgorICogPEJSPjxhIGhy
ZWYgPSJodHRwOi8vd3d3LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLyI+CisgKiBodHRwOi8v
d3d3LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLzwvYT4KKyAqCisgKiA8UD4KKyAqIFRoZSBz
ZWNvbmQgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZhbGlkIDxTVFJPTkc+SVNP
IENvdW50cnkKKyAqIENvZGUuPC9TVFJPTkc+IFRoZXNlIGNvZGVzIGFyZSB0aGUgdXBwZXItY2Fz
ZSB0d28tbGV0dGVyIGNvZGVzCisgKiBhcyBkZWZpbmVkIGJ5IElTTy0zMTY2LgorICogWW91IGNh
biBmaW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNlIGNvZGVzIGF0IGEgbnVtYmVyIG9mIHNpdGVzLCBz
dWNoIGFzOgorICogPEJSPjxhIGhyZWY9Imh0dHA6Ly93d3cuaXNvLm9yZy9pc28vZW4vcHJvZHMt
c2VydmljZXMvaXNvMzE2Nm1hL2luZGV4Lmh0bWwiPgorICogaHR0cDovL3d3dy5pc28ub3JnL2lz
by9lbi9wcm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEvaW5kZXguaHRtbDwvYT4KKyAqCisgKiA8UD4K
KyAqIFRoZSB0aGlyZCBjb25zdHJ1Y3RvciByZXF1aXJlcyBhIHRoaXJkIGFyZ3VtZW50LS10aGUg
PFNUUk9ORz5WYXJpYW50LjwvU1RST05HPgorICogVGhlIFZhcmlhbnQgY29kZXMgYXJlIHZlbmRv
ciBhbmQgYnJvd3Nlci1zcGVjaWZpYy4KKyAqIEZvciBleGFtcGxlLCB1c2UgUkVWSVNFRCBmb3Ig
YSBsYW5nYXVnZSdzIHJldmlzZWQgc2NyaXB0IG9ydGhvZ3JhcGh5LCBhbmQgUE9TSVggZm9yIFBP
U0lYLgorICogV2hlcmUgdGhlcmUgYXJlIHR3byB2YXJpYW50cywgc2VwYXJhdGUgdGhlbSB3aXRo
IGFuIHVuZGVyc2NvcmUsIGFuZAorICogcHV0IHRoZSBtb3N0IGltcG9ydGFudCBvbmUgZmlyc3Qu
IEZvcgorICogZXhhbXBsZSwgYSBUcmFkaXRpb25hbCBTcGFuaXNoIGNvbGxhdGlvbiBtaWdodCBi
ZSByZWZlcmVuY2VkLCB3aXRoCisgKiAiRVMiLCAiRVMiLCAiVHJhZGl0aW9uYWxfUE9TSVgiLgor
ICoKKyAqIDxQPgorICogQmVjYXVzZSBhIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IGlzIGp1
c3QgYW4gaWRlbnRpZmllciBmb3IgYSByZWdpb24sCisgKiBubyB2YWxpZGl0eSBjaGVjayBpcyBw
ZXJmb3JtZWQgd2hlbiB5b3UgY29uc3RydWN0IGEgPGNvZGU+TG9jYWxlPC9jb2RlPi4KKyAqIElm
IHlvdSB3YW50IHRvIHNlZSB3aGV0aGVyIHBhcnRpY3VsYXIgcmVzb3VyY2VzIGFyZSBhdmFpbGFi
bGUgZm9yIHRoZQorICogPGNvZGU+TG9jYWxlPC9jb2RlPiB5b3UgY29uc3RydWN0LCB5b3UgbXVz
dCBxdWVyeSB0aG9zZSByZXNvdXJjZXMuIEZvcgorICogZXhhbXBsZSwgYXNrIHRoZSA8Y29kZT5O
dW1iZXJGb3JtYXQ8L2NvZGU+IGZvciB0aGUgbG9jYWxlcyBpdCBzdXBwb3J0cworICogdXNpbmcg
aXRzIDxjb2RlPmdldEF2YWlsYWJsZUxvY2FsZXM8L2NvZGU+IG1ldGhvZC4KKyAqIDxCUj48U1RS
T05HPk5vdGU6PC9TVFJPTkc+IFdoZW4geW91IGFzayBmb3IgYSByZXNvdXJjZSBmb3IgYSBwYXJ0
aWN1bGFyCisgKiBsb2NhbGUsIHlvdSBnZXQgYmFjayB0aGUgYmVzdCBhdmFpbGFibGUgbWF0Y2gs
IG5vdCBuZWNlc3NhcmlseQorICogcHJlY2lzZWx5IHdoYXQgeW91IGFza2VkIGZvci4gRm9yIG1v
cmUgaW5mb3JtYXRpb24sIGxvb2sgYXQKKyAqIDxjb2RlPlJlc291cmNlQnVuZGxlPC9jb2RlPi4K
KyAqCisgKiA8UD4KKyAqIFRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGNsYXNzIHByb3ZpZGVzIGEg
bnVtYmVyIG9mIGNvbnZlbmllbnQgY29uc3RhbnRzCisgKiB0aGF0IHlvdSBjYW4gdXNlIHRvIGNy
ZWF0ZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdHMgZm9yIGNvbW1vbmx5IHVzZWQKKyAqIGxv
Y2FsZXMuIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHJlZmVycyB0byBhIDxjb2RlPkxvY2Fs
ZTwvY29kZT4gb2JqZWN0CisgKiBmb3IgdGhlIFVuaXRlZCBTdGF0ZXM6CisgKiBcaHRtbG9ubHk8
YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgICBMb2NhbGU6OmdldFVT
KCkKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQorICoK
KyAqIDxQPgorICogT25jZSB5b3UndmUgY3JlYXRlZCBhIDxjb2RlPkxvY2FsZTwvY29kZT4geW91
IGNhbiBxdWVyeSBpdCBmb3IgaW5mb3JtYXRpb24gYWJvdXQKKyAqIGl0c2VsZi4gVXNlIDxjb2Rl
PmdldENvdW50cnk8L2NvZGU+IHRvIGdldCB0aGUgSVNPIENvdW50cnkgQ29kZSBhbmQKKyAqIDxj
b2RlPmdldExhbmd1YWdlPC9jb2RlPiB0byBnZXQgdGhlIElTTyBMYW5ndWFnZSBDb2RlLiBZb3Ug
Y2FuCisgKiB1c2UgPGNvZGU+Z2V0RGlzcGxheUNvdW50cnk8L2NvZGU+IHRvIGdldCB0aGUKKyAq
IG5hbWUgb2YgdGhlIGNvdW50cnkgc3VpdGFibGUgZm9yIGRpc3BsYXlpbmcgdG8gdGhlIHVzZXIu
IFNpbWlsYXJseSwKKyAqIHlvdSBjYW4gdXNlIDxjb2RlPmdldERpc3BsYXlMYW5ndWFnZTwvY29k
ZT4gdG8gZ2V0IHRoZSBuYW1lIG9mCisgKiB0aGUgbGFuZ3VhZ2Ugc3VpdGFibGUgZm9yIGRpc3Bs
YXlpbmcgdG8gdGhlIHVzZXIuIEludGVyZXN0aW5nbHksCisgKiB0aGUgPGNvZGU+Z2V0RGlzcGxh
eVhYWDwvY29kZT4gbWV0aG9kcyBhcmUgdGhlbXNlbHZlcyBsb2NhbGUtc2Vuc2l0aXZlCisgKiBh
bmQgaGF2ZSB0d28gdmVyc2lvbnM6IG9uZSB0aGF0IHVzZXMgdGhlIGRlZmF1bHQgbG9jYWxlIGFu
ZCBvbmUKKyAqIHRoYXQgdGFrZXMgYSBsb2NhbGUgYXMgYW4gYXJndW1lbnQgYW5kIGRpc3BsYXlz
IHRoZSBuYW1lIG9yIGNvdW50cnkgaW4KKyAqIGEgbGFuZ3VhZ2UgYXBwcm9wcmlhdGUgdG8gdGhh
dCBsb2NhbGUuCisgKgorICogPFA+CisgKiBJQ1UgcHJvdmlkZXMgYSBudW1iZXIgb2YgY2xhc3Nl
cyB0aGF0IHBlcmZvcm0gbG9jYWxlLXNlbnNpdGl2ZQorICogb3BlcmF0aW9ucy4gRm9yIGV4YW1w
bGUsIHRoZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGNsYXNzIGZvcm1hdHMKKyAqIG51bWJl
cnMsIGN1cnJlbmN5LCBvciBwZXJjZW50YWdlcyBpbiBhIGxvY2FsZS1zZW5zaXRpdmUgbWFubmVy
LiBDbGFzc2VzCisgKiBzdWNoIGFzIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gaGF2ZSBhIG51
bWJlciBvZiBjb252ZW5pZW5jZSBtZXRob2RzCisgKiBmb3IgY3JlYXRpbmcgYSBkZWZhdWx0IG9i
amVjdCBvZiB0aGF0IHR5cGUuIEZvciBleGFtcGxlLCB0aGUKKyAqIDxjb2RlPk51bWJlckZvcm1h
dDwvY29kZT4gY2xhc3MgcHJvdmlkZXMgdGhlc2UgdGhyZWUgY29udmVuaWVuY2UgbWV0aG9kcwor
ICogZm9yIGNyZWF0aW5nIGEgZGVmYXVsdCA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IG9iamVj
dDoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAg
ICBVRXJyb3JDb2RlIHN1Y2Nlc3MgPSBVX1pFUk9fRVJST1I7CisgKiAgICAgTG9jYWxlIG15TG9j
YWxlOworICogICAgIE51bWJlckZvcm1hdCAqbmY7CisgKgorICogICAgIG5mID0gTnVtYmVyRm9y
bWF0OjpjcmVhdGVJbnN0YW5jZSggc3VjY2VzcyApOyAgICAgICAgICBkZWxldGUgbmY7CisgKiAg
ICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUN1cnJlbmN5SW5zdGFuY2UoIHN1Y2Nlc3MgKTsg
IGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlUGVyY2VudEluc3Rh
bmNlKCBzdWNjZXNzICk7ICAgZGVsZXRlIG5mOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Js
b2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBFYWNoIG9mIHRoZXNlIG1ldGhvZHMgaGFzIHR3byB2
YXJpYW50czsgb25lIHdpdGggYW4gZXhwbGljaXQgbG9jYWxlCisgKiBhbmQgb25lIHdpdGhvdXQ7
IHRoZSBsYXR0ZXIgdXNpbmcgdGhlIGRlZmF1bHQgbG9jYWxlLgorICogXGh0bWxvbmx5PGJsb2Nr
cXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgIG5mID0gTnVtYmVyRm9ybWF0Ojpj
cmVhdGVJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgICAgICAgICAgZGVsZXRlIG5mOwor
ICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVDdXJyZW5jeUluc3RhbmNlKCBteUxvY2Fs
ZSwgc3VjY2VzcyApOyAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVh
dGVQZXJjZW50SW5zdGFuY2UoIG15TG9jYWxlLCBzdWNjZXNzICk7ICAgZGVsZXRlIG5mOworICog
PC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBBIDxjb2Rl
PkxvY2FsZTwvY29kZT4gaXMgdGhlIG1lY2hhbmlzbSBmb3IgaWRlbnRpZnlpbmcgdGhlIGtpbmQg
b2Ygb2JqZWN0CisgKiAoPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPikgdGhhdCB5b3Ugd291bGQg
bGlrZSB0byBnZXQuIFRoZSBsb2NhbGUgaXMKKyAqIDxTVFJPTkc+anVzdDwvU1RST05HPiBhIG1l
Y2hhbmlzbSBmb3IgaWRlbnRpZnlpbmcgb2JqZWN0cywKKyAqIDxTVFJPTkc+bm90PC9TVFJPTkc+
IGEgY29udGFpbmVyIGZvciB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgorICoKKyAqIDxQPgorICog
RWFjaCBjbGFzcyB0aGF0IHBlcmZvcm1zIGxvY2FsZS1zZW5zaXRpdmUgb3BlcmF0aW9ucyBhbGxv
d3MgeW91CisgKiB0byBnZXQgYWxsIHRoZSBhdmFpbGFibGUgb2JqZWN0cyBvZiB0aGF0IHR5cGUu
IFlvdSBjYW4gc2lmdAorICogdGhyb3VnaCB0aGVzZSBvYmplY3RzIGJ5IGxhbmd1YWdlLCBjb3Vu
dHJ5LCBvciB2YXJpYW50LAorICogYW5kIHVzZSB0aGUgZGlzcGxheSBuYW1lcyB0byBwcmVzZW50
IGEgbWVudSB0byB0aGUgdXNlci4KKyAqIEZvciBleGFtcGxlLCB5b3UgY2FuIGNyZWF0ZSBhIG1l
bnUgb2YgYWxsIHRoZSBjb2xsYXRpb24gb2JqZWN0cworICogc3VpdGFibGUgZm9yIGEgZ2l2ZW4g
bGFuZ3VhZ2UuIFN1Y2ggY2xhc3NlcyBpbXBsZW1lbnQgdGhlc2UKKyAqIHRocmVlIGNsYXNzIG1l
dGhvZHM6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+Cisg
KiAgICAgICBzdGF0aWMgTG9jYWxlKiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIG51bUxv
Y2FsZXMpCisgKiAgICAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxheU5hbWUoY29u
c3QgTG9jYWxlJiAgb2JqZWN0TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYgIGRpc3BsYXlMb2NhbGUsCisgKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlzcGxh
eU5hbWUpCisgKiAgICAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxheU5hbWUoY29u
c3QgTG9jYWxlJiAgb2JqZWN0TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BsYXlOYW1lKQorICogPC9wcmU+Cisg
KiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKgorICogQHN0YWJsZSBJQ1Ug
Mi4wCisgKiBAc2VlIFJlc291cmNlQnVuZGxlCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBMb2Nh
bGUgOiBwdWJsaWMgVU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBm
b3IgdGhlIFJvb3QgbG9jYWxlLiBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICBzdGF0aWMgY29uc3Qg
TG9jYWxlICZVX0VYUE9SVDIgZ2V0Um9vdCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50
IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3Qg
TG9jYWxlICZVX0VYUE9SVDIgZ2V0RW5nbGlzaCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0
YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RnJlbmNoKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29u
c3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRHZXJtYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBj
b25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGlj
IGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEl0YWxpYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1
bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3Rh
dGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEphcGFuZXNlKHZvaWQpOworICAgIC8qKiBV
c2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAg
IHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRLb3JlYW4odm9pZCk7CisgICAgLyoq
IFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisg
ICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENoaW5lc2Uodm9pZCk7CisgICAg
LyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFNpbXBsaWZpZWRDaGluZXNl
KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFi
bGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRUcmFk
aXRpb25hbENoaW5lc2Uodm9pZCk7CisKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlz
IGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9j
YWxlICZVX0VYUE9SVDIgZ2V0RnJhbmNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQg
Zm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRHZXJtYW55KHZvaWQpOworICAgIC8qKiBVc2VmdWwg
Y29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAg
IHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRJdGFseSh2b2lkKTsKKyAgICAvKiog
VXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAg
Ki8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SmFwYW4odm9pZCk7Cisg
ICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJ
Q1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEtvcmVhKHZv
aWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBz
dGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRD
aGluYSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVn
aW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9S
VDIgZ2V0UFJDKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRy
eS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVf
RVhQT1JUMiBnZXRUYWl3YW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhp
cyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExv
Y2FsZSAmVV9FWFBPUlQyIGdldFVLKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9y
IHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25z
dCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRVUyh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50
IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMg
Y29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2FuYWRhKHZvaWQpOworICAgIC8qKiBVc2VmdWwg
Y29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAg
IHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDYW5hZGFGcmVuY2godm9pZCk7CisK
KworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIGRlZmF1bHQgbG9jYWxlIG9iamVjdCwgYSBM
b2NhbGUgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBJRC4KKyAgICAgKgorICAgICAqIEBzZWUgZ2V0
RGVmYXVsdAorICAgICAqIEBzZWUgdWxvY19nZXREZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgTG9jYWxlKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Qg
YSBsb2NhbGUgZnJvbSBsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudC4KKyAgICAgKiBJZiBhbiBl
cnJvciBvY2N1cnMsIHRoZW4gdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlICJib2d1cyIK
KyAgICAgKiAoaXNCb2d1cygpIHdpbGwgcmV0dXJuIFRSVUUpLgorICAgICAqCisgICAgICogQHBh
cmFtIGxhbmd1YWdlIExvd2VyY2FzZSB0d28tbGV0dGVyIG9yIHRocmVlLWxldHRlciBJU08tNjM5
IGNvZGUuCisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNhbiBpbnN0ZWFkIGJlIGFuIElDVSBzdHls
ZSBDIGxvY2FsZSAoZS5nLiAiZW5fVVMiKSwKKyAgICAgKiAgYnV0IHRoZSBvdGhlciBwYXJhbWV0
ZXJzIG11c3Qgbm90IGJlIHVzZWQuCisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSBOVUxM
OyBpZiBzbywKKyAgICAgKiAgdGhlIGxvY2FsZSBpcyBpbml0aWFsaXplZCB0byBtYXRjaCB0aGUg
Y3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiAgKFRoaXMgaXMgdGhlIHNhbWUgYXMgdXNp
bmcgdGhlIGRlZmF1bHQgY29uc3RydWN0b3IuKQorICAgICAqICBQbGVhc2Ugbm90ZTogVGhlIEph
dmEgTG9jYWxlIGNsYXNzIGRvZXMgTk9UIGFjY2VwdCB0aGUgZm9ybQorICAgICAqICAnbmV3IExv
Y2FsZSgiZW5fVVMiKScgYnV0IG9ubHkgJ25ldyBMb2NhbGUoImVuIiwiVVMiKScKKyAgICAgKgor
ICAgICAqIEBwYXJhbSBjb3VudHJ5ICBVcHBlcmNhc2UgdHdvLWxldHRlciBJU08tMzE2NiBjb2Rl
LiAob3B0aW9uYWwpCisgICAgICogQHBhcmFtIHZhcmlhbnQgIFVwcGVyY2FzZSB2ZW5kb3IgYW5k
IGJyb3dzZXIgc3BlY2lmaWMgY29kZS4gU2VlIGNsYXNzCisgICAgICogICAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uLiAob3B0aW9uYWwpCisgICAgICogQHBhcmFtIGtleXdvcmRzQW5kVmFsdWVz
IEEgc3RyaW5nIGNvbnNpc3Rpbmcgb2Yga2V5d29yZC92YWx1ZXMgcGFpcnMsIHN1Y2ggYXMKKyAg
ICAgKiAgICAgICAgICAgICAgICAgImNvbGxhdGlvbj1waG9uZWJvb2s7Y3VycmVuY3k9ZXVybyIK
KyAgICAgKgorICAgICAqIEBzZWUgZ2V0RGVmYXVsdAorICAgICAqIEBzZWUgdWxvY19nZXREZWZh
dWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxlKCBjb25zdCAg
IGNoYXIgKiBsYW5ndWFnZSwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIGNvdW50cnkgID0g
MCwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIHZhcmlhbnQgID0gMCwKKyAgICAgICAgICAg
IGNvbnN0ICAgY2hhciAqIGtleXdvcmRzQW5kVmFsdWVzID0gMCk7CisKKyAgICAvKioKKyAgICAg
KiBJbml0aWFsaXplcyBhIExvY2FsZSBvYmplY3QgZnJvbSBhbm90aGVyIExvY2FsZSBvYmplY3Qu
CisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIExvY2FsZSBvYmplY3QgYmVpbmcgY29w
aWVkIGluLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZShjb25z
dCAgICBMb2NhbGUmIG90aGVyKTsKKworCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3RvcgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkxvY2FsZSgpIDsKKwor
ICAgIC8qKgorICAgICAqIFJlcGxhY2VzIHRoZSBlbnRpcmUgY29udGVudHMgb2YgKnRoaXMgd2l0
aCB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBM
b2NhbGUgb2JqZWN0IGJlaW5nIGNvcGllZCBpbi4KKyAgICAgKiBAcmV0dXJuICAgICAgKnRoaXMK
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUmIG9wZXJhdG9yPShj
b25zdCBMb2NhbGUmIG90aGVyKTsKKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0d28gbG9j
YWxlIGtleXMgYXJlIHRoZSBzYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBs
b2NhbGUga2V5IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAgICogQHJldHVy
biAgICAgIFRydWUgaWYgdGhlIHR3byBsb2NhbGUga2V5cyBhcmUgdGhlIHNhbWUsIGZhbHNlIG90
aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCAgIG9w
ZXJhdG9yPT0oY29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0OworCisgICAgLyoqCisg
ICAgICogQ2hlY2tzIGlmIHR3byBsb2NhbGUga2V5cyBhcmUgbm90IHRoZSBzYW1lLgorICAgICAq
CisgICAgICogQHBhcmFtIG90aGVyIFRoZSBsb2NhbGUga2V5IG9iamVjdCB0byBiZSBjb21wYXJl
ZCB3aXRoIHRoaXMuCisgICAgICogQHJldHVybiAgICAgIFRydWUgaWYgdGhlIHR3byBsb2NhbGUg
a2V5cyBhcmUgbm90IHRoZSBzYW1lLCBmYWxzZQorICAgICAqICAgICAgICAgICAgICBvdGhlcndp
c2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVUJvb2wgICBvcGVyYXRv
ciE9KGNvbnN0ICAgIExvY2FsZSYgICAgIG90aGVyKSBjb25zdDsKKworICAgIC8qKgorICAgICAq
IENsb25lIHRoaXMgb2JqZWN0LgorICAgICAqIENsb25lcyBjYW4gYmUgdXNlZCBjb25jdXJyZW50
bHkgaW4gbXVsdGlwbGUgdGhyZWFkcy4KKyAgICAgKiBJZiBhbiBlcnJvciBvY2N1cnMsIHRoZW4g
TlVMTCBpcyByZXR1cm5lZC4KKyAgICAgKiBUaGUgY2FsbGVyIG11c3QgZGVsZXRlIHRoZSBjbG9u
ZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYSBjbG9uZSBvZiB0aGlzIG9iamVjdAorICAgICAq
CisgICAgICogQHNlZSBnZXREeW5hbWljQ2xhc3NJRAorICAgICAqIEBzdGFibGUgSUNVIDIuOAor
ICAgICAqLworICAgIExvY2FsZSAqY2xvbmUoKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVfU1lT
VEVNX0FQSQorICAgIC8qKgorICAgICAqIENvbW1vbiBtZXRob2RzIG9mIGdldHRpbmcgdGhlIGN1
cnJlbnQgZGVmYXVsdCBMb2NhbGUuIFVzZWQgZm9yIHRoZQorICAgICAqIHByZXNlbnRhdGlvbjog
bWVudXMsIGRpYWxvZ3MsIGV0Yy4gR2VuZXJhbGx5IHNldCBvbmNlIHdoZW4geW91ciBhcHBsZXQg
b3IKKyAgICAgKiBhcHBsaWNhdGlvbiBpcyBpbml0aWFsaXplZCwgdGhlbiBuZXZlciByZXNldC4g
KElmIHlvdSBkbyByZXNldCB0aGUKKyAgICAgKiBkZWZhdWx0IGxvY2FsZSwgeW91IHByb2JhYmx5
IHdhbnQgdG8gcmVsb2FkIHlvdXIgR1VJLCBzbyB0aGF0IHRoZSBjaGFuZ2UKKyAgICAgKiBpcyBy
ZWZsZWN0ZWQgaW4geW91ciBpbnRlcmZhY2UuKQorICAgICAqCisgICAgICogTW9yZSBhZHZhbmNl
ZCBwcm9ncmFtcyB3aWxsIGFsbG93IHVzZXJzIHRvIHVzZSBkaWZmZXJlbnQgbG9jYWxlcyBmb3IK
KyAgICAgKiBkaWZmZXJlbnQgZmllbGRzLCBlLmcuIGluIGEgc3ByZWFkc2hlZXQuCisgICAgICoK
KyAgICAgKiBOb3RlIHRoYXQgdGhlIGluaXRpYWwgc2V0dGluZyB3aWxsIG1hdGNoIHRoZSBob3N0
IHN5c3RlbS4KKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSBMb2NhbGUgb2JqZWN0
IGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgSUQKKyAgICAgKiBAc3lzdGVtCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSYgVV9FWFBPUlQyIGdl
dERlZmF1bHQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWZhdWx0LiBOb3Jt
YWxseSBzZXQgb25jZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgcHJvY2VzcywKKyAgICAgKiB0aGVu
IG5ldmVyIHJlc2V0LgorICAgICAqIHNldERlZmF1bHQoKSBvbmx5IGNoYW5nZXMgSUNVJ3MgZGVm
YXVsdCBsb2NhbGUgSUQsIDxzdHJvbmc+bm90PC9zdHJvbmc+CisgICAgICogdGhlIGRlZmF1bHQg
bG9jYWxlIElEIG9mIHRoZSBydW50aW1lIGVudmlyb25tZW50LgorICAgICAqCisgICAgICogQHBh
cmFtIG5ld0xvY2FsZSBMb2NhbGUgdG8gc2V0IHRvLiAgSWYgTlVMTCwgc2V0IHRvIHRoZSB2YWx1
ZSBvYnRhaW5lZAorICAgICAqICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgcnVudGltZSBlbnZp
cm9uZW1lbnQuCisgICAgICogQHBhcmFtIHN1Y2Nlc3MgVGhlIGVycm9yIGNvZGUuCisgICAgICog
QHN5c3RlbQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyB2b2lk
IFVfRVhQT1JUMiBzZXREZWZhdWx0KGNvbnN0IExvY2FsZSYgbmV3TG9jYWxlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUmICAgc3VjY2Vzcyk7CisjZW5k
aWYgIC8qIFVfSElERV9TWVNURU1fQVBJICovCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEg
bG9jYWxlIHdoaWNoIGhhcyBoYWQgbWluaW1hbCBjYW5vbmljYWxpemF0aW9uCisgICAgICogYXMg
cGVyIHVsb2NfZ2V0TmFtZSgpLgorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIHRvIGNyZWF0
ZSBmcm9tLiAgSWYgbmFtZSBpcyBudWxsLAorICAgICAqICB0aGUgZGVmYXVsdCBMb2NhbGUgaXMg
dXNlZC4KKyAgICAgKiBAcmV0dXJuIG5ldyBsb2NhbGUgb2JqZWN0CisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICogQHNlZSB1bG9jX2dldE5hbWUKKyAgICAgKi8KKyAgICBzdGF0aWMgTG9j
YWxlIFVfRVhQT1JUMiBjcmVhdGVGcm9tTmFtZShjb25zdCBjaGFyICpuYW1lKTsKKworICAgIC8q
KgorICAgICAqIENyZWF0ZXMgYSBsb2NhbGUgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nIGFmdGVyIGNh
bm9uaWNhbGl6aW5nCisgICAgICogdGhlIHN0cmluZyBieSBjYWxsaW5nIHVsb2NfY2Fub25pY2Fs
aXplKCkuCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGxvY2FsZSBJRCB0byBjcmVhdGUgZnJvbS4g
IE11c3Qgbm90IGJlIE5VTEwuCisgICAgICogQHJldHVybiBhIG5ldyBsb2NhbGUgb2JqZWN0IGNv
cnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAg
ICAgKiBAc2VlIHVsb2NfY2Fub25pY2FsaXplCisgICAgICovCisgICAgc3RhdGljIExvY2FsZSBV
X0VYUE9SVDIgY3JlYXRlQ2Fub25pY2FsKGNvbnN0IGNoYXIqIG5hbWUpOworCisgICAgLyoqCisg
ICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTYzOSBsYW5ndWFnZSBjb2RlLgorICAgICAq
IEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldExhbmd1YWdlKCApIGNvbnN0
OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTE1OTI0IGFiYnJl
dmlhdGlvbiBzY3JpcHQgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhl
IGNvZGUKKyAgICAgKiBAc2VlIHVzY3JpcHRfZ2V0U2hvcnROYW1lCisgICAgICogQHNlZSB1c2Ny
aXB0X2dldENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBpbmxpbmUg
Y29uc3QgY2hhciAqICBnZXRTY3JpcHQoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm5zIHRoZSBsb2NhbGUncyBJU08tMzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICogQHJldHVybiAg
ICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0Q291bnRyeSggKSBjb25zdDsKKworICAgIC8q
KgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIHZhcmlhbnQgY29kZS4KKyAgICAgKiBAcmV0
dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRWYXJpYW50KCApIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcHJvZ3JhbW1hdGljIG5hbWUgb2YgdGhlIGVudGly
ZSBsb2NhbGUsIHdpdGggdGhlIGxhbmd1YWdlLAorICAgICAqIGNvdW50cnkgYW5kIHZhcmlhbnQg
c2VwYXJhdGVkIGJ5IHVuZGVyYmFycy4gSWYgYSBmaWVsZCBpcyBtaXNzaW5nLCB1cAorICAgICAq
IHRvIHR3byBsZWFkaW5nIHVuZGVyYmFycyB3aWxsIG9jY3VyLiBFeGFtcGxlOiAiZW4iLCAiZGVf
REUiLCAiZW5fVVNfV0lOIiwKKyAgICAgKiAiZGVfX1BPU0lYIiwgImZyX19NQUMiLCAiX19NQUMi
LCAiX01UIiwgIl9GUl9FVVJPIgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8gIm5h
bWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBj
aGFyICogZ2V0TmFtZSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcHJv
Z3JhbW1hdGljIG5hbWUgb2YgdGhlIGVudGlyZSBsb2NhbGUgYXMgZ2V0TmFtZSgpIHdvdWxkIHJl
dHVybiwKKyAgICAgKiBidXQgd2l0aG91dCBrZXl3b3Jkcy4KKyAgICAgKiBAcmV0dXJuICAgICAg
QSBwb2ludGVyIHRvICJuYW1lIi4KKyAgICAgKiBAc2VlIGdldE5hbWUKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjgKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0QmFzZU5hbWUoKSBjb25zdDsK
KworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGlzdCBvZiBrZXl3b3JkcyBmb3IgdGhlIHNw
ZWNpZmllZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBzdGF0dXMg
Y29kZQorICAgICAqIEByZXR1cm4gcG9pbnRlciB0byBTdHJpbmdFbnVtZXJhdGlvbiBjbGFzcywg
b3IgTlVMTCBpZiB0aGVyZSBhcmUgbm8ga2V5d29yZHMuIAorICAgICAqIENsaWVudCBtdXN0IGRp
c3Bvc2Ugb2YgaXQgYnkgY2FsbGluZyBkZWxldGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44Cisg
ICAgICovCisgICAgU3RyaW5nRW51bWVyYXRpb24gKiBjcmVhdGVLZXl3b3JkcyhVRXJyb3JDb2Rl
ICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdmFsdWUgZm9yIGEg
a2V5d29yZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBr
ZXl3b3JkIGZvciB3aGljaCB3ZSB3YW50IHRoZSB2YWx1ZS4gQ2FzZSBpbnNlbnNpdGl2ZS4KKyAg
ICAgKiBAcGFyYW0gYnVmZmVyIFRoZSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUga2V5d29yZCB2YWx1
ZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyQ2FwYWNpdHkgVGhlIGNhcGFjaXR5IG9mIHJlY2Vpdmlu
ZyBidWZmZXIKKyAgICAgKiBAcGFyYW0gc3RhdHVzIFJldHVybnMgYW55IGVycm9yIGluZm9ybWF0
aW9uIHdoaWxlIHBlcmZvcm1pbmcgdGhpcyBvcGVyYXRpb24uCisgICAgICogQHJldHVybiB0aGUg
bGVuZ3RoIG9mIHRoZSBrZXl3b3JkIHZhbHVlCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjgKKyAgICAgKi8KKyAgICBpbnQzMl90IGdldEtleXdvcmRWYWx1ZShjb25zdCBjaGFyKiBrZXl3
b3JkTmFtZSwgY2hhciAqYnVmZmVyLCBpbnQzMl90IGJ1ZmZlckNhcGFjaXR5LCBVRXJyb3JDb2Rl
ICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogU2V0cyBvciByZW1vdmVzIHRoZSB2
YWx1ZSBmb3IgYSBrZXl3b3JkLgorICAgICAqCisgICAgICogRm9yIHJlbW92aW5nIGFsbCBrZXl3
b3JkcywgdXNlIGdldEJhc2VOYW1lKCksCisgICAgICogYW5kIGNvbnN0cnVjdCBhIG5ldyBMb2Nh
bGUgaWYgaXQgZGlmZmVycyBmcm9tIGdldE5hbWUoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBr
ZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3JkIHRvIGJlIHNldC4gQ2FzZSBpbnNlbnNpdGl2
ZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZFZhbHVlIHZhbHVlIG9mIHRoZSBrZXl3b3JkIHRvIGJl
IHNldC4gSWYgMC1sZW5ndGggb3IKKyAgICAgKiAgTlVMTCwgd2lsbCByZXN1bHQgaW4gdGhlIGtl
eXdvcmQgYmVpbmcgcmVtb3ZlZC4gTm8gZXJyb3IgaXMgZ2l2ZW4gaWYKKyAgICAgKiAgdGhhdCBr
ZXl3b3JkIGRvZXMgbm90IGV4aXN0LgorICAgICAqIEBwYXJhbSBzdGF0dXMgUmV0dXJucyBhbnkg
ZXJyb3IgaW5mb3JtYXRpb24gd2hpbGUgcGVyZm9ybWluZyB0aGlzIG9wZXJhdGlvbi4KKyAgICAg
KgorICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdm9pZCBzZXRLZXl3b3JkVmFs
dWUoY29uc3QgY2hhcioga2V5d29yZE5hbWUsIGNvbnN0IGNoYXIqIGtleXdvcmRWYWx1ZSwgVUVy
cm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIHJldHVybnMgdGhlIGxvY2FsZSdz
IHRocmVlLWxldHRlciBsYW5ndWFnZSBjb2RlLCBhcyBzcGVjaWZpZWQKKyAgICAgKiBpbiBJU08g
ZHJhZnQgc3RhbmRhcmQgSVNPLTYzOS0yLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0
byB0aGUgY29kZSwgb3IgYW4gZW1wdHkgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgY29uc3QgY2hhciAqIGdldElTTzNMYW5ndWFnZSgpIGNvbnN0OworCisgICAg
LyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIGxvY2FsZSdzIHRocmVlLWxldHRl
ciBJU08tMzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFzIHRv
IHRoZSBjb2RlLCBvciBhbiBlbXB0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0SVNPM0NvdW50cnkoKSBjb25zdDsKKworICAgIC8q
KgorICAgICAqIFJldHVybnMgdGhlIFdpbmRvd3MgTENJRCB2YWx1ZSBjb3JyZXNwb25kaW5nIHRv
IHRoaXMgbG9jYWxlLgorICAgICAqIFRoaXMgdmFsdWUgaXMgc3RvcmVkIGluIHRoZSByZXNvdXJj
ZSBkYXRhIGZvciB0aGUgbG9jYWxlIGFzIGEgb25lLXRvLWZvdXItZGlnaXQKKyAgICAgKiBoZXhh
ZGVjaW1hbCBudW1iZXIuICBJZiB0aGUgcmVzb3VyY2UgaXMgbWlzc2luZywgaW4gdGhlIHdyb25n
IGZvcm1hdCwgb3IKKyAgICAgKiB0aGVyZSBpcyBubyBXaW5kb3dzIExDSUQgdmFsdWUgdGhhdCBj
b3JyZXNwb25kcyB0byB0aGlzIGxvY2FsZSwgcmV0dXJucyAwLgorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICBnZXRMQ0lEKHZvaWQpIGNvbnN0Owor
CisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHdoZXRo
ZXIgdGhpcyBsb2NhbGUncyBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0LgorICAgICAq
IElmIHRoZXJlIGlzIG5vIHNjcmlwdCBzdWJ0YWcsIHRoZW4gdGhlIGxpa2VseSBzY3JpcHQgaXMg
dXNlZCwgc2VlIHVsb2NfYWRkTGlrZWx5U3VidGFncygpLgorICAgICAqIElmIG5vIGxpa2VseSBz
Y3JpcHQgaXMga25vd24sIHRoZW4gRkFMU0UgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBB
IHNjcmlwdCBpcyByaWdodC10by1sZWZ0IGFjY29yZGluZyB0byB0aGUgQ0xEUiBzY3JpcHQgbWV0
YWRhdGEKKyAgICAgKiB3aGljaCBjb3JyZXNwb25kcyB0byB3aGV0aGVyIHRoZSBzY3JpcHQncyBs
ZXR0ZXJzIGhhdmUgQmlkaV9DbGFzcz1SIG9yIEFMLgorICAgICAqCisgICAgICogUmV0dXJucyBU
UlVFIGZvciAiYXIiIGFuZCAiZW4tSGViciIsIEZBTFNFIGZvciAiemgiIGFuZCAiZmEtQ3lybCIu
CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIGxvY2FsZSdzIHNjcmlwdCBpcyB3
cml0dGVuIHJpZ2h0LXRvLWxlZnQKKyAgICAgKiBAZHJhZnQgSUNVIDU0CisgICAgICovCisgICAg
VUJvb2wgaXNSaWdodFRvTGVmdCgpIGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVfRFJBRlRfQVBJ
ICovCisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcExhbmciIHdpdGggdGhlIG5hbWUg
b2YgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IKKyAgICAg
KiB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRo
ZSBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzCisgICAgICogImZyIiBhbmQgdGhlIGRlZmF1bHQg
bG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAor
ICAgICAqIGRpc3BMYW5nIHRvICJGcmVuY2giLgorICAgICAqIEBwYXJhbSBkaXNwTGFuZyAgUmVj
ZWl2ZXMgdGhlIGxhbmd1YWdlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICAg
ICAgQSByZWZlcmVuY2UgdG8gImRpc3BMYW5nIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUxhbmd1YWdlKFVuaWNvZGVTdHJp
bmcmICAgZGlzcExhbmcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BM
YW5nIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgaW4gYSBmb3JtYXQg
c3VpdGFibGUgZm9yCisgICAgICogdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVk
IGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MKKyAgICAg
KiBsYW5ndWFnZSBjb2RlIGlzICJlbiIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBjb2Rl
IGlzICJmciIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcExhbmcgdG8gIkFu
Z2xhaXMiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxvY2Fs
ZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlciB3b3JkcywKKyAgICAg
KiAgICAgICAgICAgICAgICAgIGlmIHRoZSBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIs
IHBhc3NpbmcgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IKKyAgICAgKiAgICAgICAgICAgICAgICAg
IGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICJBbmdsYWlzIiwgd2hpbGUgcGFzc2luZyBM
b2NhbGU6OmdldEdlcm1hbigpCisgICAgICogICAgICAgICAgICAgICAgICBmb3IgZGlzcGxheUxv
Y2FsZSB3b3VsZCByZXN1bHQgaW4gIkVuZ2xpc2NoIi4KKyAgICAgKiBAcGFyYW0gZGlzcExhbmcg
IFJlY2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAg
ICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwTGFuZyIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlMYW5ndWFnZSggY29uc3Qg
ICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwTGFuZykgY29uc3Q7
CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFNjcmlwdCIgd2l0aCB0aGUgbmFtZSBv
ZiB0aGlzIGxvY2FsZSdzIHNjcmlwdCBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1
c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBs
b2NhbGUncyBzY3JpcHQgY29kZQorICAgICAqIGlzICJMQVROIiBhbmQgdGhlIGRlZmF1bHQgbG9j
YWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAg
ICAqIGRpc3BTY3JpcHQgdG8gIkxhdGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcFNjcmlwdCAgICBS
ZWNlaXZlcyB0aGUgc2NyaXB0cydzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAgICAg
ICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFNjcmlwdCIuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi44CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlTY3JpcHQoICAgICAg
ICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BTY3JpcHQpIGNvbnN0OworCisgICAgLyoqCisgICAgICog
RmlsbHMgaW4gImRpc3BTY3JpcHQiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBjb3Vu
dHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0aGUg
bG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3IgZXhhbXBsZSwgaWYgdGhl
IGxvY2FsZSdzCisgICAgICogc2NyaXB0IGNvZGUgaXMgIkxBVE4iIGFuZCBkaXNwbGF5TG9jYWxl
J3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAgICAq
IGRpc3BTY3JpcHQgdG8gIkxhdGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgICAg
IFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4gIElu
IG90aGVyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd29yZHMsIGlmIHRoZSBsb2NhbGUn
cyBzY3JpcHQgY29kZSBpcyAiTEFUTiIsIHBhc3NpbmcKKyAgICAgKiAgICAgICAgICAgICAgICAg
ICAgICBMb2NhbGU6OmdldEZyZW5jaCgpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3VsdCBp
biAiIiwgd2hpbGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBwYXNzaW5nIExvY2FsZTo6
Z2V0R2VybWFuKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluCisgICAgICogICAg
ICAgICAgICAgICAgICAgICAgIiIuCisgICAgICogQHBhcmFtIGRpc3BTY3JpcHQgICAgUmVjZWl2
ZXMgdGhlIHNjcmlwdHMncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICAg
ICAgQSByZWZlcmVuY2UgdG8gImRpc3BTY3JpcHQiLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAor
ICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5U2NyaXB0KCAgY29uc3QgICBM
b2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BTY3JpcHQpIGNvbnN0Owor
CisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BDb3VudHJ5IiB3aXRoIHRoZSBuYW1lIG9m
IHRoaXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZvciB1
c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBs
b2NhbGUncyBjb3VudHJ5IGNvZGUKKyAgICAgKiBpcyAiRlIiIGFuZCB0aGUgZGVmYXVsdCBsb2Nh
bGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAg
ICogZGlzcENvdW50cnkgdG8gIkZyYW5jZSIuCisgICAgICogQHBhcmFtIGRpc3BDb3VudHJ5ICAg
UmVjZWl2ZXMgdGhlIGNvdW50cnkncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAg
ICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNvdW50cnkoICAg
ICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BDb3VudHJ5KSBjb25zdDsKKworICAgIC8qKgorICAg
ICAqIEZpbGxzIGluICJkaXNwQ291bnRyeSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2FsZSdz
IGNvdW50cnkgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5IGlu
IHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBp
ZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBjb3VudHJ5IGNvZGUgaXMgIlVTIiBhbmQgZGlzcGxheUxv
Y2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImZyIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQKKyAg
ICAgKiBkaXNwQ291bnRyeSB0byAiJkVhY3V0ZTt0YXRzLVVuaXMiLgorICAgICAqIEBwYXJhbSBk
aXNwbGF5TG9jYWxlICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNw
bGF5IHRoZSBuYW1lLiAgSW4gb3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB3b3Jk
cywgaWYgdGhlIGxvY2FsZSdzIGNvdW50cnkgY29kZSBpcyAiVVMiLCBwYXNzaW5nCisgICAgICog
ICAgICAgICAgICAgICAgICAgICAgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IgZGlzcGxheUxvY2Fs
ZSB3b3VsZCByZXN1bHQgaW4gIiZFYWN1dGU7dGF0cy1VbmlzIiwgd2hpbGUKKyAgICAgKiAgICAg
ICAgICAgICAgICAgICAgICBwYXNzaW5nIExvY2FsZTo6Z2V0R2VybWFuKCkgZm9yIGRpc3BsYXlM
b2NhbGUgd291bGQgcmVzdWx0IGluCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIlZlcmVp
bmlndGUgU3RhYXRlbiIuCisgICAgICogQHBhcmFtIGRpc3BDb3VudHJ5ICAgUmVjZWl2ZXMgdGhl
IGNvdW50cnkncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAgQSBy
ZWZlcmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAg
Ki8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNvdW50cnkoICBjb25zdCAgIExvY2Fs
ZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BDb3VudHJ5KSBjb25zdDsKKwor
ICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwVmFyIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMg
bG9jYWxlJ3MgdmFyaWFudCBjb2RlIGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVz
ZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BWYXIg
ICBSZWNlaXZlcyB0aGUgdmFyaWFudCdzIG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBB
IHJlZmVyZW5jZSB0byAiZGlzcFZhciIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlWYXJpYW50KCAgICAgIFVuaWNvZGVTdHJp
bmcmIGRpc3BWYXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BWYXIi
IHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyB2YXJpYW50IGNvZGUgaW4gYSBmb3JtYXQK
KyAgICAgKiBzdWl0YWJsZSBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVk
IGJ5ICJkaXNwbGF5TG9jYWxlIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgU3BlY2lm
aWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAqIEBw
YXJhbSBkaXNwVmFyICAgUmVjZWl2ZXMgdGhlIHZhcmlhbnQncyBkaXNwbGF5IG5hbWUuCisgICAg
ICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFZhciIuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlWYXJp
YW50KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNw
VmFyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRoZSBu
YW1lIG9mIHRoaXMgbG9jYWxlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkK
KyAgICAgKiBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBUaGlzIGZ1bmN0aW9uIHVzZXMgZ2V0RGlz
cGxheUxhbmd1YWdlKCksIGdldERpc3BsYXlDb3VudHJ5KCksCisgICAgICogYW5kIGdldERpc3Bs
YXlWYXJpYW50KCkgdG8gZG8gaXRzIHdvcmssIGFuZCBvdXRwdXRzIHRoZSBkaXNwbGF5IG5hbWUg
aW4gdGhlIGZvcm1hdAorICAgICAqICJsYW5ndWFnZSAoY291bnRyeVssdmFyaWFudF0pIi4gIEZv
ciBleGFtcGxlLCBpZiB0aGUgZGVmYXVsdCBsb2NhbGUgaXMgZW5fVVMsIHRoZW4KKyAgICAgKiBm
cl9GUidzIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAiRnJlbmNoIChGcmFuY2UpIiwgYW5kIGVzX01Y
X1RyYWRpdGlvbmFsJ3MgZGlzcGxheSBuYW1lCisgICAgICogd291bGQgYmUgIlNwYW5pc2ggKE1l
eGljbyxUcmFkaXRpb25hbCkiLgorICAgICAqIEBwYXJhbSBuYW1lICBSZWNlaXZlcyB0aGUgbG9j
YWxlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICBBIHJlZmVyZW5jZSB0byAi
bmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmlu
ZyYgIGdldERpc3BsYXlOYW1lKCAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBuYW1lKSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMg
bG9jYWxlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkKKyAgICAgKiBpbiB0
aGUgbG9jYWxlIHNwZWNmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIFRoaXMgZnVuY3Rpb24gdXNl
cyBnZXREaXNwbGF5TGFuZ3VhZ2UoKSwKKyAgICAgKiBnZXREaXNwbGF5Q291bnRyeSgpLCBhbmQg
Z2V0RGlzcGxheVZhcmlhbnQoKSB0byBkbyBpdHMgd29yaywgYW5kIG91dHB1dHMgdGhlIGRpc3Bs
YXkKKyAgICAgKiBuYW1lIGluIHRoZSBmb3JtYXQgImxhbmd1YWdlIChjb3VudHJ5Wyx2YXJpYW50
XSkiLiAgRm9yIGV4YW1wbGUsIGlmIGRpc3BsYXlMb2NhbGUgaXMKKyAgICAgKiBmcl9GUiwgdGhl
biBlbl9VUydzIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAiQW5nbGFpcyAoJkVhY3V0ZTt0YXRzLVVu
aXMpIiwgYW5kIG5vX05PX05ZJ3MKKyAgICAgKiBkaXNwbGF5IG5hbWUgd291bGQgYmUgIm5vcnYm
ZWFjdXRlO2dpZW4gKE5vcnYmZWdyYXZlO2dlLE5ZKSIuCisgICAgICogQHBhcmFtIGRpc3BsYXlM
b2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFt
ZS4KKyAgICAgKiBAcGFyYW0gbmFtZSAgICAgIFJlY2VpdmVzIHRoZSBsb2NhbGUncyBkaXNwbGF5
IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAibmFtZSIuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERp
c3BsYXlOYW1lKCBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAgbmFt
ZSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRo
ZSBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJfdCAg
ICAgICAgIGhhc2hDb2RlKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUg
bG9jYWxlIHRvIGJvZ3VzCisgICAgICogQSBib2d1cyBsb2NhbGUgcmVwcmVzZW50cyBhIG5vbi1l
eGlzdGluZyBsb2NhbGUgYXNzb2NpYXRlZAorICAgICAqIHdpdGggc2VydmljZXMgdGhhdCBjYW4g
YmUgaW5zdGFudGlhdGVkIGZyb20gbm9uLWxvY2FsZSBkYXRhCisgICAgICogaW4gYWRkaXRpb24g
dG8gbG9jYWxlIChmb3IgZXhhbXBsZSwgY29sbGF0aW9uIGNhbiBiZQorICAgICAqIGluc3RhbnRp
YXRlZCBmcm9tIGEgbG9jYWxlIGFuZCBmcm9tIGEgcnVsZSBzZXQpLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMQorICAgICAqLworICAgIHZvaWQgc2V0VG9Cb2d1cygpOworCisgICAgLyoqCisgICAg
ICogR2V0cyB0aGUgYm9ndXMgc3RhdGUuIExvY2FsZSBvYmplY3QgY2FuIGJlIGJvZ3VzIGlmIGl0
IGRvZXNuJ3QgZXhpc3QKKyAgICAgKiBAcmV0dXJuIEZBTFNFIGlmIGl0IGlzIGEgcmVhbCBsb2Nh
bGUsIFRSVUUgaWYgaXQgaXMgYSBib2d1cyBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjEK
KyAgICAgKi8KKyAgICBVQm9vbCBpc0JvZ3VzKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAg
ICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIGluc3RhbGxlZCBsb2NhbGVzLgorICAgICAqIEBwYXJh
bSBjb3VudCBSZWNlaXZlcyB0aGUgbnVtYmVyIG9mIGxvY2FsZXMgaW4gdGhlIGxpc3QuCisgICAg
ICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBMb2NhbGUgb2JqZWN0cy4g
IFRoaXMgYXJyYXkgaXMgdGhlIGxpc3QKKyAgICAgKiAgICAgICAgICAgICAgb2YgYWxsIGxvY2Fs
ZXMgd2l0aCBpbnN0YWxsZWQgcmVzb3VyY2UgZmlsZXMuICBUaGUgY2FsbGVkIGRvZXMgTk9UCisg
ICAgICogICAgICAgICAgICAgIGdldCBvd25lcnNoaXAgb2YgdGhpcyBsaXN0LCBhbmQgbXVzdCBO
T1QgZGVsZXRlIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRp
YyBjb25zdCBMb2NhbGUqIFVfRVhQT1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIGNv
dW50KTsKKworICAgIC8qKgorICAgICAqIEdldHMgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgMi1s
ZXR0ZXIgY291bnRyeSBjb2RlcyBkZWZpbmVkIGluIElTTyAzMTY2LiAgVGhpcyBpcyBhCisgICAg
ICogcG9pbnRlciB0byBhbiBhcnJheSBvZiBwb2ludGVycyB0byBhcnJheXMgb2YgY2hhci4gIEFs
bCBvZiB0aGVzZSBwb2ludGVycyBhcmUKKyAgICAgKiBvd25lZCBieSBJQ1UtLSBkbyBub3QgZGVs
ZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0aGVtLiAgVGhlIGFycmF5IGlzCisg
ICAgICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBwb2ludGVyLgorICAgICAqIEByZXR1cm4gYSBs
aXN0IG9mIGFsbCBhdmFpbGFibGUgY291bnRyeSBjb2RlcworICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBPUlQyIGdldElT
T0NvdW50cmllcygpOworCisgICAgLyoqCisgICAgICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2YWls
YWJsZSBsYW5ndWFnZSBjb2RlcyBkZWZpbmVkIGluIElTTyA2MzkuICBUaGlzIGlzIGEgcG9pbnRl
cgorICAgICAqIHRvIGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBvZiBjaGFyLiAgQWxs
IG9mIHRoZXNlIHBvaW50ZXJzIGFyZSBvd25lZAorICAgICAqIGJ5IElDVS0tIGRvIG5vdCBkZWxl
dGUgdGhlbSwgYW5kIGRvIG5vdCB3cml0ZSB0aHJvdWdoIHRoZW0uICBUaGUgYXJyYXkgaXMKKyAg
ICAgKiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCisgICAgICogQHJldHVybiBhIGxp
c3Qgb2YgYWxsIGF2YWlsYWJsZSBsYW5ndWFnZSBjb2RlcworICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBPUlQyIGdldElT
T0xhbmd1YWdlcygpOworCisgICAgLyoqCisgICAgICogSUNVICJwb29yIG1hbidzIFJUVEkiLCBy
ZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoaXMgY2xhc3MuCisgICAgICoKKyAgICAgKiBAc3RhYmxl
IElDVSAyLjIKKyAgICAgKi8KKyAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQyIGdldFN0YXRp
Y0NsYXNzSUQoKTsKKworICAgIC8qKgorICAgICAqIElDVSAicG9vciBtYW4ncyBSVFRJIiwgcmV0
dXJucyBhIFVDbGFzc0lEIGZvciB0aGUgYWN0dWFsIGNsYXNzLgorICAgICAqCisgICAgICogQHN0
YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWljQ2xh
c3NJRCgpIGNvbnN0OworCitwcm90ZWN0ZWQ6IC8qIG9ubHkgcHJvdGVjdGVkIGZvciB0ZXN0aW5n
IHB1cnBvc2VzLiBETyBOT1QgVVNFLiAqLworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisg
ICAgLyoqCisgICAgICogU2V0IHRoaXMgZnJvbSBhIHNpbmdsZSBQT1NJWCBzdHlsZSBsb2NhbGUg
c3RyaW5nLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHZvaWQgc2V0RnJvbVBPU0lY
SUQoY29uc3QgY2hhciAqcG9zaXhJRCk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9BUEkg
Ki8KKworcHJpdmF0ZToKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHRoZSBsb2NhbGUgb2Jq
ZWN0IHdpdGggYSBuZXcgbmFtZS4KKyAgICAgKiBXYXMgZGVwcmVjYXRlZCAtIHVzZWQgaW4gaW1w
bGVtZW50YXRpb24gLSBtb3ZlZCBpbnRlcm5hbAorICAgICAqCisgICAgICogQHBhcmFtIGNMb2Nh
bGVJRCBUaGUgbmV3IGxvY2FsZSBuYW1lLgorICAgICAqIEBwYXJhbSBjYW5vbmljYWxpemUgd2hl
dGhlciB0byBjYWxsIHVsb2NfY2Fub25pY2FsaXplIG9uIGNMb2NhbGVJRAorICAgICAqLworICAg
IExvY2FsZSYgaW5pdChjb25zdCBjaGFyKiBjTG9jYWxlSUQsIFVCb29sIGNhbm9uaWNhbGl6ZSk7
CisKKyAgICAvKgorICAgICAqIEludGVybmFsIGNvbnN0cnVjdG9yIHRvIGFsbG93IGNvbnN0cnVj
dGlvbiBvZiBhIGxvY2FsZSBvYmplY3Qgd2l0aAorICAgICAqICAgTk8gc2lkZSBlZmZlY3RzLiAg
IChEZWZhdWx0IGNvbnN0cnVjdG9yIHRyaWVzIHRvIGdldAorICAgICAqICAgdGhlIGRlZmF1bHQg
bG9jYWxlLikKKyAgICAgKi8KKyAgICBlbnVtIEVMb2NhbGVUeXBlIHsKKyAgICAgICAgZUJPR1VT
CisgICAgfTsKKyAgICBMb2NhbGUoRUxvY2FsZVR5cGUpOworCisgICAgLyoqCisgICAgICogSW5p
dGlhbGl6ZSB0aGUgbG9jYWxlIGNhY2hlIGZvciBjb21tb25seSB1c2VkIGxvY2FsZXMKKyAgICAg
Ki8KKyAgICBzdGF0aWMgTG9jYWxlICpnZXRMb2NhbGVDYWNoZSh2b2lkKTsKKworICAgIGNoYXIg
bGFuZ3VhZ2VbVUxPQ19MQU5HX0NBUEFDSVRZXTsKKyAgICBjaGFyIHNjcmlwdFtVTE9DX1NDUklQ
VF9DQVBBQ0lUWV07CisgICAgY2hhciBjb3VudHJ5W1VMT0NfQ09VTlRSWV9DQVBBQ0lUWV07Cisg
ICAgaW50MzJfdCB2YXJpYW50QmVnaW47CisgICAgY2hhciogZnVsbE5hbWU7CisgICAgY2hhciBm
dWxsTmFtZUJ1ZmZlcltVTE9DX0ZVTExOQU1FX0NBUEFDSVRZXTsKKyAgICAvLyBuYW1lIHdpdGhv
dXQga2V5d29yZHMKKyAgICBjaGFyKiBiYXNlTmFtZTsKKyAgICB2b2lkIGluaXRCYXNlTmFtZShV
RXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgVUJvb2wgZklzQm9ndXM7CisKKyAgICBzdGF0aWMg
Y29uc3QgTG9jYWxlICZnZXRMb2NhbGUoaW50IGxvY2lkKTsKKworICAgIC8qKgorICAgICAqIEEg
ZnJpZW5kIHRvIGFsbG93IHRoZSBkZWZhdWx0IGxvY2FsZSB0byBiZSBzZXQgYnkgZWl0aGVyIHRo
ZSBDIG9yIEMrKyBBUEkuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgZnJpZW5kIExv
Y2FsZSAqbG9jYWxlX3NldF9kZWZhdWx0X2ludGVybmFsKGNvbnN0IGNoYXIgKiwgVUVycm9yQ29k
ZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGZy
aWVuZCB2b2lkIFVfQ0FMTENPTlYgbG9jYWxlX2F2YWlsYWJsZV9pbml0KCk7Cit9OworCitpbmxp
bmUgVUJvb2wKK0xvY2FsZTo6b3BlcmF0b3IhPShjb25zdCAgICBMb2NhbGUmICAgICBvdGhlcikg
Y29uc3QKK3sKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0ob3RoZXIpOworfQorCitpbmxpbmUgY29u
c3QgY2hhciAqCitMb2NhbGU6OmdldENvdW50cnkoKSBjb25zdAoreworICAgIHJldHVybiBjb3Vu
dHJ5OworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldExhbmd1YWdlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbGFuZ3VhZ2U7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoKK0xv
Y2FsZTo6Z2V0U2NyaXB0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2NyaXB0OworfQorCitpbmxp
bmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldFZhcmlhbnQoKSBjb25zdAoreworICAgIHJldHVy
biAmYmFzZU5hbWVbdmFyaWFudEJlZ2luXTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgorTG9j
YWxlOjpnZXROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnVsbE5hbWU7Cit9CisKK2lubGlu
ZSBVQm9vbAorTG9jYWxlOjppc0JvZ3VzKHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gZklzQm9n
dXM7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvaWN1L3VuaWNvZGUvcmJiaS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDQ3NTk4YTUwZTZmYTNiYWIyYWQ0OWUwMjJhYWYzOTZjYWMzMjllNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oCkBAIC0wLDAgKzEsNzgy
IEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQg
SW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiAgICoKKyogICBhbmQg
b3RoZXJzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBEYXRl
ICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDEwLzIyLzk5ICAgIGFsYW4gICAg
ICAgIENyZWF0aW9uLgorKiAgIDExLzExLzk5ICAgIHJnaWxsYW0gICAgIENvbXBsZXRlIHBvcnQg
ZnJvbSBKYXZhLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBSQkJJX0gKKyNkZWZpbmUg
UkJCSV9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisvKioKKyAqIFxmaWxlCisg
KiBcYnJpZWYgQysrIEFQSTogUnVsZSBCYXNlZCBCcmVhayBJdGVyYXRvcgorICovCisKKyNpZiAh
VUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworI2luY2x1ZGUgInVuaWNvZGUvYnJraXRlci5o
IgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3BhcnNlZXJy
LmgiCisjaW5jbHVkZSAidW5pY29kZS9zY2hyaXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWNo
cml0ZXIuaCIKKworCitzdHJ1Y3QgVVRyaWU7CisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKiBA
aW50ZXJuYWwgKi8KK3N0cnVjdCBSQkJJRGF0YUhlYWRlcjsKK2NsYXNzICBSdWxlQmFzZWRCcmVh
a0l0ZXJhdG9yVGFibGVzOworY2xhc3MgIEJyZWFrSXRlcmF0b3I7CitjbGFzcyAgUkJCSURhdGFX
cmFwcGVyOworY2xhc3MgIFVTdGFjazsKK2NsYXNzICBMYW5ndWFnZUJyZWFrRW5naW5lOworY2xh
c3MgIFVuaGFuZGxlZEVuZ2luZTsKK3N0cnVjdCBSQkJJU3RhdGVUYWJsZTsKKworCisKKworLyoq
CisgKgorICogQSBzdWJjbGFzcyBvZiBCcmVha0l0ZXJhdG9yIHdob3NlIGJlaGF2aW9yIGlzIHNw
ZWNpZmllZCB1c2luZyBhIGxpc3Qgb2YgcnVsZXMuCisgKiA8cD5JbnN0YW5jZXMgb2YgdGhpcyBj
bGFzcyBhcmUgbW9zdCBjb21tb25seSBjcmVhdGVkIGJ5IHRoZSBmYWN0b3J5IG1ldGhvZHMgb2YK
KyAqICBCcmVha0l0ZXJhdG9yOjpjcmVhdGVXb3JkSW5zdGFuY2UoKSwgQnJlYWtJdGVyYXRvcjo6
Y3JlYXRlTGluZUluc3RhbmNlKCksIGV0Yy4sCisgKiAgYW5kIHRoZW4gdXNlZCB2aWEgdGhlIGFi
c3RyYWN0IEFQSSBpbiBjbGFzcyBCcmVha0l0ZXJhdG9yPC9wPgorICoKKyAqIDxwPlNlZSB0aGUg
SUNVIFVzZXIgR3VpZGUgZm9yIGluZm9ybWF0aW9uIG9uIEJyZWFrIEl0ZXJhdG9yIFJ1bGVzLjwv
cD4KKyAqCisgKiA8cD5UaGlzIGNsYXNzIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBzdWJjbGFzc2Vk
LiAgKENsYXNzIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IKKyAqICAgIGlzIGEgc3ViY2xh
c3MsIGJ1dCB0aGF0IHJlbGF0aW9uc2hpcCBpcyBlZmZlY3RpdmVseSBpbnRlcm5hbCB0byB0aGUg
SUNVCisgKiAgICBpbXBsZW1lbnRhdGlvbi4gIFRoZSBzdWJjbGFzc2luZyBpbnRlcmZhY2UgdG8g
UnVsZXNCYXNlZEJyZWFrSXRlcmF0b3IgaXMKKyAqICAgIG5vdCBwYXJ0IG9mIHRoZSBJQ1UgQVBJ
LCBhbmQgbWF5IG5vdCByZW1haW4gc3RhYmxlLjwvcD4KKyAqCisgKi8KK2NsYXNzIFVfQ09NTU9O
X0FQSSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIC8qVV9GSU5BTCovIDogcHVibGljIEJyZWFrSXRl
cmF0b3IgeworCitwcm90ZWN0ZWQ6CisgICAgLyoqCisgICAgICogVGhlIFVUZXh0IHRocm91Z2gg
d2hpY2ggdGhpcyBCcmVha0l0ZXJhdG9yIGFjY2Vzc2VzIHRoZSB0ZXh0CisgICAgICogQGludGVy
bmFsCisgICAgICovCisgICAgVVRleHQgICpmVGV4dDsKKworICAgIC8qKgorICAgICAqICAgQSBj
aGFyYWN0ZXIgaXRlcmF0b3IgdGhhdCByZWZlcnMgdG8gdGhlIHNhbWUgdGV4dCBhcyB0aGUgVVRl
eHQsIGFib3ZlLgorICAgICAqICAgT25seSBpbmNsdWRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRo
IG9sZCBBUEksIHdoaWNoIHdhcyBiYXNlZCBvbiBDaGFyYWN0ZXJJdGVyYXRvcnMuCisgICAgICog
ICBWYWx1ZSBtYXkgYmUgYWRvcHRlZCBmcm9tIG91dHNpZGUsIG9yIG9uZSBvZiBmU0NoYXJJdGVy
IG9yIGZEQ2hhckl0ZXIsIGJlbG93LgorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yICAq
ZkNoYXJJdGVyOworCisgICAgLyoqCisgICAgICogICBXaGVuIHRoZSBpbnB1dCB0ZXh0IGlzIHBy
b3ZpZGVkIGJ5IGEgVW5pY29kZVN0cmluZywgdGhpcyB3aWxsIHBvaW50IHRvCisgICAgICogICAg
YSBjaGFyYWN0ZXJJdGVyYXRvciB0aGF0IHdyYXBzIHRoYXQgZGF0YS4gIE5lZWRlZCBvbmx5IGZv
ciB0aGUKKyAgICAgKiAgICBpbXBsZW1lbnRhdGlvbiBvZiBnZXRUZXh0KCksIGEgYmFja3dhcmRz
IGNvbXBhdGliaWxpdHkgaXNzdWUuCisgICAgICovCisgICAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0
b3IgKmZTQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiAgV2hlbiB0aGUgaW5wdXQgdGV4dCBp
cyBwcm92aWRlZCBieSBhIFVUZXh0LCB0aGlzCisgICAgICogICAgZHVtbXkgQ2hhcmFjdGVySXRl
cmF0b3Igb3ZlciBhbiBlbXB0eSBzdHJpbmcgd2lsbAorICAgICAqICAgIGJlIHJldHVybmVkIGZy
b20gZ2V0VGV4dCgpCisgICAgICovCisgICAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciAqZkRDaGFy
SXRlcjsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlIGRhdGEgZm9yIHRoaXMgQnJlYWtJdGVy
YXRvciBpbnN0YW5jZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJCQklEYXRhV3Jh
cHBlciAgICAqZkRhdGE7CisKKyAgICAvKiogSW5kZXggb2YgdGhlIFJ1bGUge3RhZ30gdmFsdWVz
IGZvciB0aGUgbW9zdCByZWNlbnQgbWF0Y2guCisgICAgICogIEBpbnRlcm5hbAorICAgICovCisg
ICAgaW50MzJfdCAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleDsKKworICAgIC8qKgor
ICAgICAqIFJ1bGUgdGFnIHZhbHVlIHZhbGlkIGZsYWcuCisgICAgICogU29tZSBpdGVyYXRvciBv
cGVyYXRpb25zIGRvbid0IGludHJpbnNpY2FsbHkgc2V0IHRoZSBjb3JyZWN0IHRhZyB2YWx1ZS4K
KyAgICAgKiBUaGlzIGZsYWcgbGV0cyB1cyBsYXppbHkgY29tcHV0ZSB0aGUgdmFsdWUgaWYgd2Ug
YXJlIGV2ZXIgYXNrZWQgZm9yIGl0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFVC
b29sICAgICAgICAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkOworCisgICAgLyoqCisgICAg
ICogQ291bnRlciBmb3IgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGVuY291bnRlcmVkIHdpdGgg
dGhlICJkaWN0aW9uYXJ5IgorICAgICAqICAgZmxhZyBzZXQuCisgICAgICogQGludGVybmFsCisg
ICAgICovCisgICAgdWludDMyX3QgICAgICAgICAgICBmRGljdGlvbmFyeUNoYXJDb3VudDsKKwor
ICAgIC8qKgorICAgICAqIFdoZW4gYSByYW5nZSBvZiBjaGFyYWN0ZXJzIGlzIGRpdmlkZWQgdXAg
dXNpbmcgdGhlIGRpY3Rpb25hcnksIHRoZSBicmVhaworICAgICAqIHBvc2l0aW9ucyB0aGF0IGFy
ZSBkaXNjb3ZlcmVkIGFyZSBzdG9yZWQgaGVyZSwgcHJldmVudGluZyB1cyBmcm9tIGhhdmluZwor
ICAgICAqIHRvIHVzZSBlaXRoZXIgdGhlIGRpY3Rpb25hcnkgb3IgdGhlIHN0YXRlIHRhYmxlIGFn
YWluIHVudGlsIHRoZSBpdGVyYXRvcgorICAgICAqIGxlYXZlcyB0aGlzIHJhbmdlIG9mIHRleHQu
IEhhcyB0aGUgbW9zdCBpbXBhY3QgZm9yIGxpbmUgYnJlYWtpbmcuCisgICAgICogQGludGVybmFs
CisgICAgICovCisgICAgaW50MzJfdCogICAgICAgICAgICBmQ2FjaGVkQnJlYWtQb3NpdGlvbnM7
CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGZDYWNoZWRCcmVh
a1Bvc2l0aW9ucworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAg
ICAgICAgZk51bUNhY2hlZEJyZWFrUG9zaXRpb25zOworCisgICAgLyoqCisgICAgICogaWYgZkNh
Y2hlZEJyZWFrUG9zaXRpb25zIGlzIG5vdCBudWxsLCB0aGlzIGluZGljYXRlcyB3aGljaCBpdGVt
IGluIHRoZQorICAgICAqIGNhY2hlIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiByZWZl
cnMgdG8KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAgICAg
IGZQb3NpdGlvbkluQ2FjaGU7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAgKiBJZiBwcmVz
ZW50LCBVU3RhY2sgb2YgTGFuZ3VhZ2VCcmVha0VuZ2luZSBvYmplY3RzIHRoYXQgbWlnaHQgaGFu
ZGxlCisgICAgICogZGljdGlvbmFyeSBjaGFyYWN0ZXJzLiBTZWFyY2hlZCBmcm9tIHRvcCB0byBi
b3R0b20gdG8gZmluZCBhbiBvYmplY3QgdG8KKyAgICAgKiBoYW5kbGUgYSBnaXZlbiBjaGFyYWN0
ZXIuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVVN0YWNrICAgICAgICAgICAgICAq
Zkxhbmd1YWdlQnJlYWtFbmdpbmVzOworICAgIAorICAgIC8qKgorICAgICAqCisgICAgICogSWYg
cHJlc2VudCwgdGhlIHNwZWNpYWwgTGFuZ3VhZ2VCcmVha0VuZ2luZSB1c2VkIGZvciBoYW5kbGlu
ZworICAgICAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW4gdGhlIGRpY3Rpb25hcnkgc2V0LCBidXQg
bm90IGhhbmRsZWQgYnkgYW55CisgICAgICogTGFuZ3VnYWdlQnJlYWtFbmdpbmUuCisgICAgICog
QGludGVybmFsCisgICAgICovCisgICAgVW5oYW5kbGVkRW5naW5lICAgICAqZlVuaGFuZGxlZEJy
ZWFrRW5naW5lOworICAgIAorICAgIC8qKgorICAgICAqCisgICAgICogVGhlIHR5cGUgb2YgdGhl
IGJyZWFrIGl0ZXJhdG9yLCBvciAtMSBpZiBpdCBoYXMgbm90IGJlZW4gc2V0LgorICAgICAqIEBp
bnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZkJyZWFrVHlwZTsKKyAg
ICAKK3Byb3RlY3RlZDoKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gY29uc3RydWN0b3Jz
CisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkKKyAg
ICAvKioKKyAgICAgKiBDb25zdGFudCB0byBiZSB1c2VkIGluIHRoZSBjb25zdHJ1Y3RvcgorICAg
ICAqIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoUkJCSURhdGFIZWFkZXIqLCBFRG9udEFkb3B0LCBV
RXJyb3JDb2RlICYpOworICAgICAqIHdoaWNoIGRvZXMgbm90IGFkb3B0IHRoZSBtZW1vcnkgaW5k
aWNhdGVkIGJ5IHRoZSBSQkJJRGF0YUhlYWRlcioKKyAgICAgKiBwYXJhbWV0ZXIuCisgICAgICoK
KyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBlbnVtIEVEb250QWRvcHQgeworICAgICAg
ICBrRG9udEFkb3B0CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZyb20g
YSBmbGF0dGVuZWQgc2V0IG9mIFJCQkkgZGF0YSBpbiBtYWxsb2NlZCBtZW1vcnkuCisgICAgICog
ICAgICAgICAgICAgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3JzIGJ1aWx0IGZyb20gYSBjdXN0b20g
c2V0IG9mIHJ1bGVzCisgICAgICogICAgICAgICAgICAgYXJlIGNyZWF0ZWQgdmlhIHRoaXMgY29u
c3RydWN0b3I7IHRoZSBydWxlcyBhcmUgY29tcGlsZWQKKyAgICAgKiAgICAgICAgICAgICBpbnRv
IG1lbW9yeSwgdGhlbiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgY29uc3RydWN0ZWQgaGVyZS4KKyAg
ICAgKgorICAgICAqICAgICAgICAgICAgIFRoZSBicmVhayBpdGVyYXRvciBhZG9wdHMgdGhlIG1l
bW9yeSwgYW5kIHdpbGwKKyAgICAgKiAgICAgICAgICAgICBmcmVlIGl0IHdoZW4gZG9uZS4KKyAg
ICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFJCQklE
YXRhSGVhZGVyKiBkYXRhLCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICog
Q29uc3RydWN0b3IgZnJvbSBhIGZsYXR0ZW5lZCBzZXQgb2YgUkJCSSBkYXRhIGluIG1lbW9yeSB3
aGljaCBuZWVkIG5vdAorICAgICAqICAgICAgICAgICAgIGJlIG1hbGxvY2VkIChlLmcuIGl0IG1h
eSBiZSBhIG1lbW9yeS1tYXBwZWQgZmlsZSwgZXRjLikuCisgICAgICoKKyAgICAgKiAgICAgICAg
ICAgICBUaGlzIHZlcnNpb24gZG9lcyBub3QgYWRvcHQgdGhlIG1lbW9yeSwgYW5kIGRvZXMgbm90
CisgICAgICogICAgICAgICAgICAgZnJlZSBpdCB3aGVuIGRvbmUuCisgICAgICogQGludGVybmFs
CisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCBSQkJJRGF0YUhlYWRl
ciogZGF0YSwgZW51bSBFRG9udEFkb3B0IGRvbnRBZG9wdCwgVUVycm9yQ29kZSAmc3RhdHVzKTsK
KyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisKKyAgICBmcmllbmQgY2xhc3Mg
UkJCSVJ1bGVCdWlsZGVyOworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBmcmllbmQgY2xhc3Mg
QnJlYWtJdGVyYXRvcjsKKworCisKK3B1YmxpYzoKKworICAgIC8qKiBEZWZhdWx0IGNvbnN0cnVj
dG9yLiAgQ3JlYXRlcyBhbiBlbXB0eSBzaGVsbCBvZiBhbiBpdGVyYXRvciwgd2l0aCBubworICAg
ICAqICBydWxlcyBvciB0ZXh0IHRvIGl0ZXJhdGUgb3Zlci4gICBPYmplY3QgY2FuIHN1YnNlcXVl
bnRseSBiZSBhc3NpZ25lZCB0by4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisg
ICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICogQ29weSBjb25z
dHJ1Y3Rvci4gIFdpbGwgcHJvZHVjZSBhIGJyZWFrIGl0ZXJhdG9yIHdpdGggdGhlIHNhbWUgYmVo
YXZpb3IsCisgICAgICogYW5kIHdoaWNoIGl0ZXJhdGVzIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMg
dGhlIG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IgcGFzc2VkIHRvIGJlIGNvcGllZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoY29uc3QgUnVsZUJhc2VkQnJlYWtJdGVy
YXRvciYgdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBSdWxlQmFzZWRCcmVh
a0l0ZXJhdG9yIGZyb20gYSBzZXQgb2YgcnVsZXMgc3VwcGxpZWQgYXMgYSBzdHJpbmcuCisgICAg
ICogQHBhcmFtIHJ1bGVzIFRoZSBicmVhayBydWxlcyB0byBiZSB1c2VkLgorICAgICAqIEBwYXJh
bSBwYXJzZUVycm9yICBJbiB0aGUgZXZlbnQgb2YgYSBzeW50YXggZXJyb3IgaW4gdGhlIHJ1bGVz
LCBwcm92aWRlcyB0aGUgbG9jYXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgd2l0aGlu
IHRoZSBydWxlcyBvZiB0aGUgcHJvYmxlbS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIEluZm9ybWF0
aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisg
ICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciggY29uc3QgVW5pY29kZVN0cmluZyAg
ICAmcnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQYXJzZUVycm9yICAgICAg
ICAgICAmcGFyc2VFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29k
ZSAgICAgICAgICAgICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ29udHJ1Y3QgYSBSdWxl
QmFzZWRCcmVha0l0ZXJhdG9yIGZyb20gYSBzZXQgb2YgcHJlY29tcGlsZWQgYmluYXJ5IHJ1bGVz
LgorICAgICAqIEJpbmFyeSBydWxlcyBhcmUgb2J0YWluZWQgZnJvbSBSdWxlc0Jhc2VkQnJlYWtJ
dGVyYXRvcjo6Z2V0QmluYXJ5UnVsZXMoKS4KKyAgICAgKiBDb25zdHJ1Y3Rpb24gb2YgYSBicmVh
ayBpdGVyYXRvciBpbiB0aGlzIHdheSBpcyBzdWJzdGFudGlhbGx5IGZhc3RlciB0aGFuCisgICAg
ICogY29uc3R1Y3Rpb24gZnJvbSBzb3VyY2UgcnVsZXMuCisgICAgICoKKyAgICAgKiBPd25lcnNo
aXAgb2YgdGhlIHN0b3JhZ2UgY29udGFpbmluZyB0aGUgY29tcGlsZWQgcnVsZXMgcmVtYWlucyB3
aXRoIHRoZQorICAgICAqIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uLiAgVGhlIGNvbXBpbGVkIHJ1
bGVzIG11c3Qgbm90IGJlICBtb2RpZmllZCBvciAKKyAgICAgKiBkZWxldGVkIGR1cmluZyB0aGUg
bGlmZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBUaGUgY29tcGlsZWQg
cnVsZXMgYXJlIG5vdCBjb21wYXRpYmxlIGFjcm9zcyBkaWZmZXJlbnQgbWFqb3IgdmVyc2lvbnMg
b2YgSUNVLgorICAgICAqIFRoZSBjb21waWxlZCBydWxlcyBhcmUgY29tYXB0aWJsZSBvbmx5IGJl
dHdlZW4gbWFjaGluZXMgd2l0aCB0aGUgc2FtZQorICAgICAqIGJ5dGUgb3JkZXJpbmcgKGxpdHRs
ZSBvciBiaWcgZW5kaWFuKSBhbmQgdGhlIHNhbWUgYmFzZSBjaGFyYWN0ZXIgc2V0IGZhbWlseQor
ICAgICAqIChBU0NJSSBvciBFQkNESUMpLgorICAgICAqCisgICAgICogQHNlZSAjZ2V0QmluYXJ5
UnVsZXMKKyAgICAgKiBAcGFyYW0gY29tcGlsZWRSdWxlcyBBIHBvaW50ZXIgdG8gdGhlIGNvbXBp
bGVkIGJyZWFrIHJ1bGVzIHRvIGJlIHVzZWQuCisgICAgICogQHBhcmFtIHJ1bGVMZW5ndGggVGhl
IGxlbmd0aCBvZiB0aGUgY29tcGlsZWQgYnJlYWsgcnVsZXMsIGluIGJ5dGVzLiAgVGhpcworICAg
ICAqICAgY29ycmVzcG9uZHMgdG8gdGhlIGxlbmd0aCB2YWx1ZSBwcm9kdWNlZCBieSBnZXRCaW5h
cnlSdWxlcygpLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24gYW55IGVycm9y
cyBlbmNvdW50ZXJlZCwgaW5jbHVkaW5nIGludmFsaWQKKyAgICAgKiAgIGJpbmFyeSBydWxlcy4K
KyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yKGNvbnN0IHVpbnQ4X3QgKmNvbXBpbGVkUnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1aW50MzJfdCAgICAgICBydWxlTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVUVycm9yQ29kZSAgICAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgY29uc3Ry
dWN0b3IgdXNlcyB0aGUgdWRhdGEgaW50ZXJmYWNlIHRvIGNyZWF0ZSBhIEJyZWFrSXRlcmF0b3IK
KyAgICAgKiB3aG9zZSBpbnRlcm5hbCB0YWJsZXMgbGl2ZSBpbiBhIG1lbW9yeS1tYXBwZWQgZmls
ZS4gICJpbWFnZSIgaXMgYW4KKyAgICAgKiBJQ1UgVURhdGFNZW1vcnkgaGFuZGxlIGZvciB0aGUg
cHJlLWNvbXBpbGVkIGJyZWFrIGl0ZXJhdG9yIHRhYmxlcy4KKyAgICAgKiBAcGFyYW0gaW1hZ2Ug
aGFuZGxlIHRvIHRoZSBtZW1vcnkgaW1hZ2UgZm9yIHRoZSBicmVhayBpdGVyYXRvciBkYXRhLgor
ICAgICAqICAgICAgICBPd25lcnNoaXAgb2YgdGhlIFVEYXRhTWVtb3J5IGhhbmRsZSBwYXNzZXMg
dG8gdGhlIEJyZWFrIEl0ZXJhdG9yLAorICAgICAqICAgICAgICB3aGljaCB3aWxsIGJlIHJlc3Bv
bnNpYmxlIGZvciBjbG9zaW5nIGl0IHdoZW4gaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAg
KiBAcGFyYW0gc3RhdHVzIEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQuCisg
ICAgICogQHNlZSB1ZGF0YV9vcGVuCisgICAgICogQHNlZSAjZ2V0QmluYXJ5UnVsZXMKKyAgICAg
KiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFVE
YXRhTWVtb3J5KiBpbWFnZSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAq
IERlc3RydWN0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCB+UnVsZUJhc2VkQnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICogQXNzaWdubWVu
dCBvcGVyYXRvci4gIFNldHMgdGhpcyBpdGVyYXRvciB0byBoYXZlIHRoZSBzYW1lIGJlaGF2aW9y
LAorICAgICAqIGFuZCBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhlIG9uZSBwYXNz
ZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVCYXNlZEJyZWFrSXRlcnRvciBwYXNz
ZWQgaW4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIFJ1bGVCYXNlZEJyZWFrSXRl
cmF0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgUnVsZUJhc2VkQnJl
YWtJdGVyYXRvciYgb3BlcmF0b3I9KGNvbnN0IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIHRoYXQp
OworCisgICAgLyoqCisgICAgICogRXF1YWxpdHkgb3BlcmF0b3IuICBSZXR1cm5zIFRSVUUgaWYg
Ym90aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhlCisgICAgICogc2FtZSBjbGFzcywgaGF2ZSB0
aGUgc2FtZSBiZWhhdmlvciwgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAgICAq
IEBwYXJhbSB0aGF0IFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0
eQorICAgICAqIEByZXR1cm4gVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBvZiB0aGUK
KyAgICAgKiBzYW1lIGNsYXNzLCBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLCBhbmQgaXRlcmF0ZSBv
dmVyIHRoZSBzYW1lIHRleHQuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIE5vdC1lcXVhbCBvcGVyYXRvci4gIElmIG9wZXJhdG9yPT0g
cmV0dXJucyBUUlVFLCB0aGlzIHJldHVybnMgRkFMU0UsCisgICAgICogYW5kIHZpY2UgdmVyc2Eu
CisgICAgICogQHBhcmFtIHRoYXQgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQgZm9y
IGluZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgYm90aCBCcmVha0l0ZXJhdG9ycyBh
cmUgbm90IHNhbWUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVCb29s
IG9wZXJhdG9yIT0oY29uc3QgQnJlYWtJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgICAvKioK
KyAgICAgKiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJlYWtJdGVyYXRv
ciB3aXRoIHRoZSBzYW1lCisgICAgICogYmVoYXZpb3IsIGFuZCBpdGVyYXRpbmcgb3ZlciB0aGUg
c2FtZSB0ZXh0LCBhcyB0aGlzIG9uZS4KKyAgICAgKiBEaWZmZXJzIGZyb20gdGhlIGNvcHkgY29u
c3RydWN0b3IgaW4gdGhhdCBpdCBpcyBwb2x5bW9ycGhpYywgYW5kCisgICAgICogd2lsbCBjb3Jy
ZWN0bHkgY2xvbmUgKGNvcHkpIGEgZGVyaXZlZCBjbGFzcy4KKyAgICAgKiBjbG9uZSgpIGlzIHRo
cmVhZCBzYWZlLiAgTXVsdGlwbGUgdGhyZWFkcyBtYXkgc2ltdWx0YWVuZW91c2x5CisgICAgICog
Y2xvbmUgdGhlIHNhbWUgc291cmNlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4gYSBu
ZXdseS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yKiBjbG9uZSgpIGNvbnN0
OworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIGhhc2ggY29kZSBmb3IgdGhpcyBCcmVha0l0
ZXJhdG9yCisgICAgICogQHJldHVybiBBIGhhc2ggY29kZQorICAgICAqICBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgaGFzaENvZGUodm9pZCkgY29uc3Q7CisK
KyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZXNjcmlwdGlvbiB1c2VkIHRvIGNyZWF0ZSB0
aGlzIGl0ZXJhdG9yCisgICAgICogQHJldHVybiB0aGUgZGVzY3JpcHRpb24gdXNlZCB0byBjcmVh
dGUgdGhpcyBpdGVyYXRvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIGNvbnN0IFVuaWNvZGVTdHJpbmcmIGdldFJ1bGVzKHZvaWQpIGNvbnN0OworCisgICAg
Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorICAgIC8vIEJyZWFrSXRlcmF0b3Igb3ZlcnJpZGVzCisgICAgLy89
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogUmV0dXJuIGEgQ2hh
cmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBUaGUg
cmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIGlzIG93bmVkIGJ5IHRoZSBicmVhayBpdGVyYXRv
ciwgYW5kIG11c3QKKyAgICAgKiBub3QgYmUgZGVsZXRlZCBieSB0aGUgY2FsbGVyLiAgUmVwZWF0
ZWQgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBtYXkKKyAgICAgKiByZXR1cm4gdGhlIHNhbWUgQ2hh
cmFjdGVySXRlcmF0b3IuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoZSByZXR1
cm5lZCBjaGFyYWN0ZXIgaXRlcmF0b3IgbXVzdCBub3QgYmUgdXNlZCBjb25jdXJyZW50bHkgd2l0
aAorICAgICAqIHRoZSBicmVhayBpdGVyYXRvci4gIElmIGNvbmN1cnJlbnQgb3BlcmF0aW9uIGlz
IG5lZWRlZCwgY2xvbmUgdGhlCisgICAgICogcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIGZp
cnN0IGFuZCBvcGVyYXRlIG9uIHRoZSBjbG9uZS4KKyAgICAgKiA8L3A+CisgICAgICogPHA+Cisg
ICAgICogV2hlbiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nIG9uIHRleHQgc3VwcGxp
ZWQgdmlhIGEgVVRleHQsCisgICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIGZhaWwuICBMYWNraW5n
IGFueSB3YXkgdG8gc2lnbmFsIGZhaWx1cmVzLCBpdAorICAgICAqIHJldHVybnMgYW4gQ2hhcmFj
dGVySXRlcmF0b3IgY29udGFpbmluZyBubyB0ZXh0LgorICAgICAqIFRoZSBmdW5jdGlvbiBnZXRV
VGV4dCgpIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSwKKyAgICAgKiBpcyByZWxpYWJs
ZSwgYW5kIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIFRP
RE86ICBkZXByZWNhdGUgdGhpcyBmdW5jdGlvbj8KKyAgICAgKgorICAgICAqIEByZXR1cm4gQW4g
aXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsICBDaGFyYWN0ZXJJdGVyYXRvciYgZ2V0VGV4dCh2
b2lkKSBjb25zdDsKKworCisgICAgLyoqCisgICAgICAqICBHZXQgYSBVVGV4dCBmb3IgdGhlIHRl
eHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICAqICBUaGUgcmV0dXJuZWQgVVRleHQgaXMgYSBzaGFs
bG93IGNsb25lIG9mIHRoZSBVVGV4dCB1c2VkIGludGVybmFsbHkKKyAgICAgICogIGJ5IHRoZSBi
cmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbi4gIEl0IGNhbiBzYWZlbHkgYmUgdXNlZCB0bwor
ICAgICAgKiAgYWNjZXNzIHRoZSB0ZXh0IHdpdGhvdXQgaW1wYWN0aW5nIGFueSBicmVhayBpdGVy
YXRvciBvcGVyYXRpb25zLAorICAgICAgKiAgYnV0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRzZWxm
IG11c3Qgbm90IGJlIGFsdGVyZWQuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBmaWxsSW4gQSBV
VGV4dCB0byBiZSBmaWxsZWQgaW4uICBJZiBOVUxMLCBhIG5ldyBVVGV4dCB3aWxsIGJlCisgICAg
ICAqICAgICAgICAgICBhbGxvY2F0ZWQgdG8gaG9sZCB0aGUgcmVzdWx0LgorICAgICAgKiBAcGFy
YW0gc3RhdHVzIHJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgICogQHJldHVybiAgIFRo
ZSBjdXJyZW50IFVUZXh0IGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiAgSWYgYW4gaW5wdXQKKyAg
ICAgICogICAgICAgICAgIFVUZXh0IHdhcyBwcm92aWRlZCwgaXQgd2lsbCBhbHdheXMgYmUgcmV0
dXJuZWQuCisgICAgICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAgKi8KKyAgICAgdmlydHVhbCBV
VGV4dCAqZ2V0VVRleHQoVVRleHQgKmZpbGxJbiwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBwaWVj
ZSBvZiB0ZXh0LiAgVGhpcyBmdW5jdGlvbiByZXNldHMKKyAgICAgKiB0aGUgY3VycmVudCBpdGVy
YXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBAcGFy
YW0gbmV3VGV4dCBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IHRvIGFuYWx5emUuICBUaGUgQnJl
YWtJdGVyYXRvcgorICAgICAqIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgY2hhcmFjdGVyIGl0ZXJh
dG9yLiAgVGhlIGNhbGxlciBNVVNUIE5PVCBkZWxldGUgaXQhCisgICAgICogIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBhZG9wdFRleHQoQ2hhcmFjdGVySXRlcmF0
b3IqIG5ld1RleHQpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBhbmFs
eXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAqIHRo
ZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0
LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSB0ZXh0IHRvIGFuYWx5emUuCisgICAgICogIEBz
dGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0KGNvbnN0IFVu
aWNvZGVTdHJpbmcmIG5ld1RleHQpOworCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGJyZWFr
IGl0ZXJhdG9yIHRvIG9wZXJhdGUgb3ZlciB0aGUgdGV4dCByZXByZXNlbnRlZCBieQorICAgICAq
IHRoZSBVVGV4dC4gIFRoZSBpdGVyYXRvciBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgc3RhcnQu
CisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBjbG9uZSBvZiB0
aGUgc3VwcGxpZWQgVVRleHQuICBUaGlzIG1lYW5zCisgICAgICogdGhhdCB0aGUgY2FsbGVyIGlz
IGZyZWUgdG8gaW1tZWRpYXRlbHkgY2xvc2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRoZQorICAgICAq
IFV0ZXh0IHRoYXQgd2FzIHBhc3NlZCBhcyBhIHBhcmFtZXRlciwgYnV0IHRoYXQgdGhlIHVuZGVy
bHlpbmcgdGV4dCBpdHNlbGYKKyAgICAgKiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdoaWxlIGJlaW5n
IHJlZmVyZW5jZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQHBhcmFt
IHRleHQgICAgVGhlIFVUZXh0IHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBwYXJh
bSBzdGF0dXMgIFJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgKiBAc3RhYmxlIElDVSAz
LjQKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoVVRleHQgKnRleHQsIFVFcnJv
ckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0ZXJh
dGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCBwb3NpdGlvbiB6ZXJv
LgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0
LCB6ZXJvLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGlu
dDMyX3QgZmlyc3Qodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0
ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1cm4g
VGhlIHRleHQncyBwYXN0LXRoZS1lbmQgb2Zmc2V0LgorICAgICAqICBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbGFzdCh2b2lkKTsKKworICAgIC8qKgorICAg
ICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBlaXRoZXIgZm9yd2FyZCBvciBiYWNrd2FyZCB0aGUg
c3BlY2lmaWVkIG51bWJlciBvZiBzdGVwcy4KKyAgICAgKiBOZWdhdGl2ZSB2YWx1ZXMgbW92ZSBi
YWNrd2FyZCwgYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3ZlIGZvcndhcmQuICBUaGlzIGlzCisgICAg
ICogZXF1aXZhbGVudCB0byByZXBlYXRlZGx5IGNhbGxpbmcgbmV4dCgpIG9yIHByZXZpb3VzKCku
CisgICAgICogQHBhcmFtIG4gVGhlIG51bWJlciBvZiBzdGVwcyB0byBtb3ZlLiAgVGhlIHNpZ24g
aW5kaWNhdGVzIHRoZSBkaXJlY3Rpb24KKyAgICAgKiAobmVnYXRpdmUgaXMgYmFja3dhcmRzLCBh
bmQgcG9zaXRpdmUgaXMgZm9yd2FyZHMpLgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBv
ZmZzZXQgb2YgdGhlIGJvdW5kYXJ5IHBvc2l0aW9uIG4gYm91bmRhcmllcyBhd2F5IGZyb20KKyAg
ICAgKiB0aGUgY3VycmVudCBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KGludDMyX3Qgbik7CisKKyAgICAvKioKKyAgICAgKiBB
ZHZhbmNlcyB0aGUgaXRlcmF0b3IgdG8gdGhlIG5leHQgYm91bmRhcnkgcG9zaXRpb24uCisgICAg
ICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRoaXMg
b25lLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMy
X3QgbmV4dCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBpdGVyYXRvciBiYWNr
d2FyZHMsIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHByZWNlZGluZyB0aGlzIG9uZS4KKyAgICAgKiBA
cmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVjZWRp
bmcgdGhpcyBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgaW50MzJfdCBwcmV2aW91cyh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0
ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBmb2xsb3dpbmcK
KyAgICAgKiB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQgVGhl
IHBvc2l0aW9uIGZyb20gd2hpY2ggdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBhIGJyZWFrIHBvc2l0
aW9uLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBicmVhayBhZnRl
ciB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICov
CisgICAgdmlydHVhbCBpbnQzMl90IGZvbGxvd2luZyhpbnQzMl90IG9mZnNldCk7CisKKyAgICAv
KioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBib3VuZGFy
eSBwb3NpdGlvbiBiZWZvcmUgdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAq
IEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIHRvIGJlZ2luIHNlYXJjaGluZyBmb3IgYSBicmVh
ayBmcm9tLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5kYXJ5
IGJlZm9yZSB0aGUgc3RhcnRpbmcgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmcoaW50MzJfdCBvZmZzZXQpOwor
CisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjZmllZCBwb3NpdGlvbiBp
cyBhIGJvdW5kYXJ5IHBvc2l0aW9uLiAgQXMgYSBzaWRlCisgICAgICogZWZmZWN0LCBsZWF2ZXMg
dGhlIGl0ZXJhdG9yIHBvaW50aW5nIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBhdAor
ICAgICAqIG9yIGFmdGVyICJvZmZzZXQiLgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNl
dCB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMgYSBib3VuZGFy
eSBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBVQm9vbCBpc0JvdW5kYXJ5KGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAqIFJl
dHVybnMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhl
IGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAg
ICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBjdXJyZW50KHZvaWQpIGNvbnN0OworCisKKyAgICAv
KioKKyAgICAgKiBSZXR1cm4gdGhlIHN0YXR1cyB0YWcgZnJvbSB0aGUgYnJlYWsgcnVsZSB0aGF0
IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3Np
dGlvbi4gIEZvciBicmVhayBydWxlcyB0aGF0IGRvIG5vdCBzcGVjaWZ5IGEKKyAgICAgKiBzdGF0
dXMsIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVkLiAgSWYgbW9yZSB0aGFuIG9uZSBi
cmVhayBydWxlCisgICAgICogd291bGQgY2F1c2UgYSBib3VuZGFyeSB0byBiZSBsb2NhdGVkIGF0
IHNvbWUgcG9zaXRpb24gaW4gdGhlIHRleHQsCisgICAgICogdGhlIG51bWVyaWNhbGx5IGxhcmdl
c3Qgb2YgdGhlIGFwcGxpY2FibGUgc3RhdHVzIHZhbHVlcyBpcyByZXR1cm5lZC4KKyAgICAgKiA8
cD4KKyAgICAgKiBPZiB0aGUgc3RhbmRhcmQgdHlwZXMgb2YgSUNVIGJyZWFrIGl0ZXJhdG9ycywg
b25seSB3b3JkIGJyZWFrIGFuZAorICAgICAqIGxpbmUgYnJlYWsgcHJvdmlkZSBzdGF0dXMgdmFs
dWVzLiAgVGhlIHZhbHVlcyBhcmUgZGVmaW5lZCBpbgorICAgICAqIHRoZSBoZWFkZXIgZmlsZSB1
YnJrLmguICBGb3IgV29yZCBicmVha3MsIHRoZSBzdGF0dXMgYWxsb3dzIGRpc3Rpbmd1aXNoaW5n
IGJldHdlZW4gd29yZHMKKyAgICAgKiB0aGF0IGNvbnRhaW4gYWxwaGFiZXRpYyBsZXR0ZXJzLCAi
d29yZHMiIHRoYXQgYXBwZWFyIHRvIGJlIG51bWJlcnMsCisgICAgICogcHVuY3R1YXRpb24gYW5k
IHNwYWNlcywgd29yZHMgY29udGFpbmluZyBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzLCBhbmQKKyAg
ICAgKiBtb3JlLiAgRm9yIExpbmUgQnJlYWssIHRoZSBzdGF0dXMgZGlzdGluZ3Vpc2hlcyBiZXR3
ZWVuIGhhcmQgKG1hbmRhdG9yeSkgYnJlYWtzCisgICAgICogYW5kIHNvZnQgKHBvdGVudGlhbCkg
YnJlYWsgcG9zaXRpb25zLgorICAgICAqIDxwPgorICAgICAqIDxjb2RlPmdldFJ1bGVTdGF0dXMo
KTwvY29kZT4gY2FuIGJlIGNhbGxlZCBhZnRlciBvYnRhaW5pbmcgYSBib3VuZGFyeQorICAgICAq
IHBvc2l0aW9uIGZyb20gPGNvZGU+bmV4dCgpPC9jb2RlPiwgPGNvZGU+cHJldmlvdXMoKTwvY29k
ZT4sIG9yCisgICAgICogYW55IG90aGVyIGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyB0aGF0IHJl
dHVybnMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIGNyZWF0
aW5nIGN1c3RvbSBicmVhayBydWxlcywgb25lIGlzIGZyZWUgdG8gZGVmaW5lIHdoYXRldmVyCisg
ICAgICogc3RhdHVzIHZhbHVlcyBtYXkgYmUgY29udmVuaWVudCBmb3IgdGhlIGFwcGxpY2F0aW9u
LgorICAgICAqIDxwPgorICAgICAqIE5vdGU6IHRoaXMgZnVuY3Rpb24gaXMgbm90IHRocmVhZCBz
YWZlLiAgSXQgc2hvdWxkIG5vdCBoYXZlIGJlZW4KKyAgICAgKiAgICAgICBkZWNsYXJlZCBjb25z
dCwgYW5kIHRoZSBjb25zdCByZW1haW5zIG9ubHkgZm9yIGNvbXBhdGliaWxpdHkKKyAgICAgKiAg
ICAgICByZWFzb25zLiAgKFRoZSBmdW5jdGlvbiBpcyBsb2dpY2FsbHkgY29uc3QsIGJ1dCBub3Qg
Yml0LXdpc2UgY29uc3QpLgorICAgICAqIDxwPgorICAgICAqIEByZXR1cm4gdGhlIHN0YXR1cyBm
cm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAg
ICAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqCisgICAgICogQHNlZSBVV29yZEJy
ZWFrCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90
IGdldFJ1bGVTdGF0dXMoKSBjb25zdDsKKworICAgLyoqCisgICAgKiBHZXQgdGhlIHN0YXR1cyAo
dGFnKSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsgcnVsZShzKSB0aGF0IGRldGVybWluZWQgdGhlIG1v
c3QKKyAgICAqIHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICogPHA+Cisg
ICAgKiBUaGUgcmV0dXJuZWQgc3RhdHVzIHZhbHVlKHMpIGFyZSBzdG9yZWQgaW50byBhbiBhcnJh
eSBwcm92aWRlZCBieSB0aGUgY2FsbGVyLgorICAgICogVGhlIHZhbHVlcyBhcmUgc3RvcmVkIGlu
IHNvcnRlZCAoYXNjZW5kaW5nKSBvcmRlci4KKyAgICAqIElmIHRoZSBjYXBhY2l0eSBvZiB0aGUg
b3V0cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xkIHRoZSBkYXRhLAorICAgICogIHRo
ZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2YWlsYWJsZSBsZW5ndGgsIGFuZCBh
CisgICAgKiAgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1Igd2lsbCBiZSBzaWduYWxlZC4KKyAgICAq
CisgICAgKiBAcGFyYW0gZmlsbEluVmVjIGFuIGFycmF5IHRvIGJlIGZpbGxlZCBpbiB3aXRoIHRo
ZSBzdGF0dXMgdmFsdWVzLgorICAgICogQHBhcmFtIGNhcGFjaXR5ICB0aGUgbGVuZ3RoIG9mIHRo
ZSBzdXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0aCBvZiB6ZXJvIGNhdXNlcworICAgICogICAgICAg
ICAgICAgICAgICB0aGUgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSBudW1iZXIgb2Ygc3RhdHVzIHZh
bHVlcywgaW4gdGhlCisgICAgKiAgICAgICAgICAgICAgICAgIG5vcm1hbCB3YXksIHdpdGhvdXQg
YXR0ZW10cGluZyB0byBzdG9yZSBhbnkgdmFsdWVzLgorICAgICogQHBhcmFtIHN0YXR1cyAgICBy
ZWNlaXZlcyBlcnJvciBjb2Rlcy4KKyAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIG51bWJlciBv
ZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxlcyB0aGF0IGRldGVybWluZWQKKyAgICAqICAg
ICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50IGJvdW5kYXJ5IHJldHVybmVkIGJ5IHRoZSBi
cmVhayBpdGVyYXRvci4KKyAgICAqICAgICAgICAgICAgICAgICAgSW4gdGhlIGV2ZW50IG9mIGEg
VV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRoZSByZXR1cm4gdmFsdWUKKyAgICAqICAgICAgICAg
ICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzIHRoYXQgd2VyZSBh
dmFpbGFibGUsCisgICAgKiAgICAgICAgICAgICAgICAgIG5vdCB0aGUgcmVkdWNlZCBudW1iZXIg
dGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgorICAgICogQHNlZSBnZXRSdWxlU3RhdHVzCisg
ICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRSdWxl
U3RhdHVzVmVjKGludDMyX3QgKmZpbGxJblZlYywgaW50MzJfdCBjYXBhY2l0eSwgVUVycm9yQ29k
ZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB1bmlxdWUgY2xhc3MgSUQg
UE9MWU1PUlBISUNBTExZLiAgUHVyZSB2aXJ0dWFsIG92ZXJyaWRlLgorICAgICAqIFRoaXMgbWV0
aG9kIGlzIHRvIGltcGxlbWVudCBhIHNpbXBsZSB2ZXJzaW9uIG9mIFJUVEksIHNpbmNlIG5vdCBh
bGwKKyAgICAgKiBDKysgY29tcGlsZXJzIHN1cHBvcnQgZ2VudWluZSBSVFRJLiAgUG9seW1vcnBo
aWMgb3BlcmF0b3I9PSgpIGFuZAorICAgICAqIGNsb25lKCkgbWV0aG9kcyBjYWxsIHRoaXMgbWV0
aG9kLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICBUaGUgY2xhc3MgSUQgZm9yIHRo
aXMgb2JqZWN0LiBBbGwgb2JqZWN0cyBvZiBhCisgICAgICogICAgICAgICAgICAgICAgICBnaXZl
biBjbGFzcyBoYXZlIHRoZSBzYW1lIGNsYXNzIElELiAgT2JqZWN0cyBvZgorICAgICAqICAgICAg
ICAgICAgICAgICAgb3RoZXIgY2xhc3NlcyBoYXZlIGRpZmZlcmVudCBjbGFzcyBJRHMuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5h
bWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNs
YXNzIElEIGZvciB0aGlzIGNsYXNzLiAgVGhpcyBpcyB1c2VmdWwgb25seSBmb3IKKyAgICAgKiBj
b21wYXJpbmcgdG8gYSByZXR1cm4gdmFsdWUgZnJvbSBnZXREeW5hbWljQ2xhc3NJRCgpLiAgRm9y
IGV4YW1wbGU6CisgICAgICoKKyAgICAgKiAgICAgIEJhc2UqIHBvbHltb3JwaGljX3BvaW50ZXIg
PSBjcmVhdGVQb2x5bW9ycGhpY09iamVjdCgpOworICAgICAqICAgICAgaWYgKHBvbHltb3JwaGlj
X3BvaW50ZXItPmdldER5bmFtaWNDbGFzc0lEKCkgPT0KKyAgICAgKiAgICAgICAgICBEZXJpdmVk
OjpnZXRTdGF0aWNDbGFzc0lEKCkpIC4uLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAg
ICBUaGUgY2xhc3MgSUQgZm9yIGFsbCBvYmplY3RzIG9mIHRoaXMgY2xhc3MuCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVDbGFzc0lEIFVfRVhQT1JUMiBnZXRT
dGF0aWNDbGFzc0lEKHZvaWQpOworCisgICAgLyoqCisgICAgICogRGVwcmVjYXRlZCBmdW5jdGlv
bmFsaXR5LiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisgICAgICogQ3JlYXRlIGEgY2xv
bmUgKGNvcHkpIG9mIHRoaXMgYnJlYWsgaXRlcmF0b3IgaW4gbWVtb3J5IHByb3ZpZGVkCisgICAg
ICogIGJ5IHRoZSBjYWxsZXIuICBUaGUgaWRlYSBpcyB0byBpbmNyZWFzZSBwZXJmb3JtYW5jZSBi
eSBhdm9pZGluZworICAgICAqICBhIHN0b3JhZ2UgYWxsb2NhdGlvbi4gIFVzZSBvZiB0aGlzIGZ1
bmN0b2luIGlzIE5PVCBSRUNPTU1FTkRFRC4KKyAgICAgKiAgUGVyZm9ybWFuY2UgZ2FpbnMgYXJl
IG1pbmltYWwsIGFuZCBjb3JyZWN0IGJ1ZmZlciBtYW5hZ2VtZW50IGlzCisgICAgICogIHRyaWNr
eS4gIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhY2tCdWZm
ZXIgIFRoZSBwb2ludGVyIHRvIHRoZSBtZW1vcnkgaW50byB3aGljaCB0aGUgY2xvbmVkIG9iamVj
dAorICAgICAqICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGJlIHBsYWNlZC4gIElmIE5VTEws
ICBhbGxvY2F0ZSBoZWFwIG1lbW9yeQorICAgICAqICAgICAgICAgICAgICAgICAgICAgZm9yIHRo
ZSBjbG9uZWQgb2JqZWN0LgorICAgICAqIEBwYXJhbSBCdWZmZXJTaXplICAgVGhlIHNpemUgb2Yg
dGhlIGJ1ZmZlci4gIElmIHplcm8sIHJldHVybiB0aGUgcmVxdWlyZWQKKyAgICAgKiAgICAgICAg
ICAgICAgICAgICAgIGJ1ZmZlciBzaXplLCBidXQgZG8gbm90IGNsb25lIHRoZSBvYmplY3QuICBJ
ZiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHNpemUgd2FzIHRvbyBzbWFsbCAoYnV0
IG5vdCB6ZXJvKSwgYWxsb2NhdGUgaGVhcAorICAgICAqICAgICAgICAgICAgICAgICAgICAgc3Rv
cmFnZSBmb3IgdGhlIGNsb25lZCBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVz
ICAgICAgIEVycm9yIHN0YXR1cy4gIFVfU0FGRUNMT05FX0FMTE9DQVRFRF9XQVJOSU5HIHdpbGwg
YmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHJldHVybmVkIGlmIHRoZSB0aGUgcHJvdmlk
ZWQgYnVmZmVyIHdhcyB0b28gc21hbGwsIGFuZAorICAgICAqICAgICAgICAgICAgICAgICAgICAg
dGhlIGNsb25lIHdhcyB0aGVyZWZvcmUgcHV0IG9uIHRoZSBoZWFwLgorICAgICAqCisgICAgICog
QHJldHVybiAgUG9pbnRlciB0byB0aGUgY2xvbmUgb2JqZWN0LiAgVGhpcyBtYXkgZGlmZmVyIGZy
b20gdGhlIHN0YWNrQnVmZmVyCisgICAgICogICAgICAgICAgYWRkcmVzcyBpZiB0aGUgYnl0ZSBh
bGlnbm1lbnQgb2YgdGhlIHN0YWNrIGJ1ZmZlciB3YXMgbm90IHN1aXRhYmxlCisgICAgICogICAg
ICAgICAgb3IgaWYgdGhlIHN0YWNrQnVmZmVyIHdhcyB0b28gc21hbGwgdG8gaG9sZCB0aGUgY2xv
bmUuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAg
ICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciAqICBjcmVhdGVCdWZmZXJDbG9uZSh2b2lk
ICpzdGFja0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50MzJfdCAmQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworCisgICAgLyoqCisgICAg
ICogUmV0dXJuIHRoZSBiaW5hcnkgZm9ybSBvZiBjb21waWxlZCBicmVhayBydWxlcywKKyAgICAg
KiB3aGljaCBjYW4gdGhlbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5ldyBicmVhayBpdGVyYXRvciBh
dCBzb21lCisgICAgICogdGltZSBpbiB0aGUgZnV0dXJlLiAgQ3JlYXRpbmcgYSBicmVhayBpdGVy
YXRvciBmcm9tIHByZS1jb21waWxlZCBydWxlcworICAgICAqIGlzIG11Y2ggZmFzdGVyIHRoYW4g
YnVpbGRpbmcgb25lIGZyb20gdGhlIHNvdXJjZSBmb3JtIG9mIHRoZQorICAgICAqIGJyZWFrIHJ1
bGVzLgorICAgICAqCisgICAgICogVGhlIGJpbmFyeSBkYXRhIGNhbiBvbmx5IGJlIHVzZWQgd2l0
aCB0aGUgc2FtZSB2ZXJzaW9uIG9mIElDVQorICAgICAqICBhbmQgb24gdGhlIHNhbWUgcGxhdGZv
cm0gdHlwZSAocHJvY2Vzc29yIGVuZGlhbi1uZXNzKQorICAgICAqCisgICAgICogQHBhcmFtIGxl
bmd0aCBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGJpbmFyeSBkYXRhLiAgKE91dCBwYXJhbXRl
ci4pCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgQSBwb2ludGVyIHRvIHRoZSBiaW5hcnkgKGNv
bXBpbGVkKSBydWxlIGRhdGEuICBUaGUgc3RvcmFnZQorICAgICAqICAgICAgICAgICBiZWxvbmdz
IHRvIHRoZSBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvciBvYmplY3QsIG5vdCB0aGUKKyAgICAgKiAg
ICAgICAgICAgY2FsbGVyLCBhbmQgbXVzdCBub3QgYmUgbW9kaWZpZWQgb3IgZGVsZXRlZC4KKyAg
ICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGNvbnN0IHVpbnQ4X3Qg
KmdldEJpbmFyeVJ1bGVzKHVpbnQzMl90ICZsZW5ndGgpOworCisgICAgLyoqCisgICAgICogIFNl
dCB0aGUgc3ViamVjdCB0ZXh0IHN0cmluZyB1cG9uIHdoaWNoIHRoZSBicmVhayBpdGVyYXRvciBp
cyBvcGVyYXRpbmcKKyAgICAgKiAgd2l0aG91dCBjaGFuZ2luZyBhbnkgb3RoZXIgYXNwZWN0IG9m
IHRoZSBtYXRjaGluZyBzdGF0ZS4KKyAgICAgKiAgVGhlIG5ldyBhbmQgcHJldmlvdXMgdGV4dCBz
dHJpbmdzIG11c3QgaGF2ZSB0aGUgc2FtZSBjb250ZW50LgorICAgICAqCisgICAgICogIFRoaXMg
ZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBpbiBlbnZpcm9ubWVudHMgd2hlcmUgSUNVIGlz
IG9wZXJhdGluZyBvbgorICAgICAqICBzdHJpbmdzIHRoYXQgbWF5IG1vdmUgYXJvdW5kIGluIG1l
bW9yeS4gIEl0IHByb3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBub3RpZnlpbmcKKyAgICAgKiAgSUNV
IHRoYXQgdGhlIHN0cmluZyBoYXMgYmVlbiByZWxvY2F0ZWQsIGFuZCBwcm92aWRpbmcgYSBuZXcg
VVRleHQgdG8gYWNjZXNzIHRoZQorICAgICAqICBzdHJpbmcgaW4gaXRzIG5ldyBwb3NpdGlvbi4K
KyAgICAgKgorICAgICAqICBOb3RlIHRoYXQgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0
aW9uIG5ldmVyIGNvcGllcyB0aGUgdW5kZXJseWluZyB0ZXh0CisgICAgICogIG9mIGEgc3RyaW5n
IGJlaW5nIHByb2Nlc3NlZCwgYnV0IGFsd2F5cyBvcGVyYXRlcyBkaXJlY3RseSBvbiB0aGUgb3Jp
Z2luYWwgdGV4dAorICAgICAqICBwcm92aWRlZCBieSB0aGUgdXNlci4gUmVmcmVzaGluZyBzaW1w
bHkgZHJvcHMgdGhlIHJlZmVyZW5jZXMgdG8gdGhlIG9sZCB0ZXh0CisgICAgICogIGFuZCByZXBs
YWNlcyB0aGVtIHdpdGggcmVmZXJlbmNlcyB0byB0aGUgbmV3LgorICAgICAqCisgICAgICogIENh
dXRpb246ICB0aGlzIGZ1bmN0aW9uIGlzIG5vcm1hbGx5IHVzZWQgb25seSBieSB2ZXJ5IHNwZWNp
YWxpemVkLAorICAgICAqICBzeXN0ZW0tbGV2ZWwgY29kZS4gIE9uZSBleGFtcGxlIHVzZSBjYXNl
IGlzIHdpdGggZ2FyYmFnZSBjb2xsZWN0aW9uIHRoYXQgbW92ZXMKKyAgICAgKiAgdGhlIHRleHQg
aW4gbWVtb3J5LgorICAgICAqCisgICAgICogQHBhcmFtIGlucHV0ICAgICAgVGhlIG5ldyAobW92
ZWQpIHRleHQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgIFJlY2VpdmVzIGVycm9y
cyBkZXRlY3RlZCBieSB0aGlzIGZ1bmN0aW9uLgorICAgICAqIEByZXR1cm4gICAgICAgICAgICp0
aGlzCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAgIHZpcnR1YWwg
UnVsZUJhc2VkQnJlYWtJdGVyYXRvciAmcmVmcmVzaElucHV0VGV4dChVVGV4dCAqaW5wdXQsIFVF
cnJvckNvZGUgJnN0YXR1cyk7CisKKworcHJvdGVjdGVkOgorICAgIC8vPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
KyAgICAvLyBpbXBsZW1lbnRhdGlvbgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvKioKKyAg
ICAgKiBEdW1wcyBjYWNoZXMgYW5kIHBlcmZvcm1zIG90aGVyIGFjdGlvbnMgYXNzb2NpYXRlZCB3
aXRoIGEgY29tcGxldGUgY2hhbmdlCisgICAgICogaW4gdGV4dCBvciBpdGVyYXRpb24gcG9zaXRp
b24uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgdmlydHVhbCB2b2lkIHJlc2V0KHZv
aWQpOworCisjaWYgMAorICAgIC8qKgorICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2F0ZWdv
cnkgbG9va3VwIGZvciB0aGlzIGNoYXIKKyAgICAgICogaW5kaWNhdGVzIHRoYXQgaXQgaXMgaW4g
dGhlIHNldCBvZiBkaWN0aW9uYXJ5IGxvb2t1cCBjaGFycy4KKyAgICAgICogVGhpcyBmdW5jdGlv
biBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGRpY3Rpb25hcnkgYmFzZWQgYnJlYWsgaXRlcmF0b3Jz
LgorICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBmb3IgdGhpcyBj
aGFyCisgICAgICAqIGluZGljYXRlcyB0aGF0IGl0IGlzIGluIHRoZSBzZXQgb2YgZGljdGlvbmFy
eSBsb29rdXAgY2hhcnMuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFs
IFVCb29sIGlzRGljdGlvbmFyeUNoYXIoVUNoYXIzMik7CisKKyAgICAvKioKKyAgICAgICogR2V0
IHRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgICogQGludGVybmFsCisgICAg
ICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRCcmVha1R5cGUoKSBjb25zdDsKKyNlbmRpZgor
CisgICAgLyoqCisgICAgICAqIFNldCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisg
ICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgc2V0QnJlYWtUeXBl
KGludDMyX3QgdHlwZSk7CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8qKgor
ICAgICAgKiBDb21tb24gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24sIHVzZWQgYnkgY29uc3RydWN0
b3JzIGFuZCBidWZmZXJDbG9uZS4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAgIHZv
aWQgaW5pdCgpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKK3ByaXZhdGU6
CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBiYWNrcyB0aGUgaXRlcmF0b3IgYmFjayB1
cCB0byBhICJzYWZlIHBvc2l0aW9uIiBpbiB0aGUgdGV4dC4KKyAgICAgKiBUaGlzIGlzIGEgcG9z
aXRpb24gdGhhdCB3ZSBrbm93LCB3aXRob3V0IGFueSBjb250ZXh0LCBtdXN0IGJlIGEgYnJlYWsg
cG9zaXRpb24uCisgICAgICogVGhlIHZhcmlvdXMgY2FsbGluZyBtZXRob2RzIHRoZW4gaXRlcmF0
ZSBmb3J3YXJkIGZyb20gdGhpcyBzYWZlIHBvc2l0aW9uIHRvCisgICAgICogdGhlIGFwcHJvcHJp
YXRlIHBvc2l0aW9uIHRvIHJldHVybi4gIChGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBk
ZXNjcmlwdGlvbgorICAgICAqIG9mIGJ1aWxkQmFja3dhcmRzU3RhdGVUYWJsZSgpIGluIFJ1bGVC
YXNlZEJyZWFrSXRlcmF0b3IuQnVpbGRlci4pCisgICAgICogQHBhcmFtIHN0YXRldGFibGUgc3Rh
dGUgdGFibGUgdXNlZCBvZiBtb3ZpbmcgYmFja3dhcmRzCisgICAgICogQGludGVybmFsCisgICAg
ICovCisgICAgaW50MzJfdCBoYW5kbGVQcmV2aW91cyhjb25zdCBSQkJJU3RhdGVUYWJsZSAqc3Rh
dGV0YWJsZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUgYWN0dWFsIGlt
cGxlbWVudGF0aW9uIG9mIHRoZSBuZXh0KCkgbWV0aG9kLiAgQWxsIGl0ZXJhdGlvbgorICAgICAq
IHZlY3RvcnMgdGhyb3VnaCBoZXJlLiAgVGhpcyBtZXRob2QgaW5pdGlhbGl6ZXMgdGhlIHN0YXRl
IG1hY2hpbmUgdG8gc3RhdGUgMQorICAgICAqIGFuZCBhZHZhbmNlcyB0aHJvdWdoIHRoZSB0ZXh0
IGNoYXJhY3RlciBieSBjaGFyYWN0ZXIgdW50aWwgd2UgcmVhY2ggdGhlIGVuZAorICAgICAqIG9m
IHRoZSB0ZXh0IG9yIHRoZSBzdGF0ZSBtYWNoaW5lIHRyYW5zaXRpb25zIHRvIHN0YXRlIDAuICBX
ZSB1cGRhdGUgb3VyIHJldHVybgorICAgICAqIHZhbHVlIGV2ZXJ5IHRpbWUgdGhlIHN0YXRlIG1h
Y2hpbmUgcGFzc2VzIHRocm91Z2ggYSBwb3NzaWJsZSBlbmQgc3RhdGUuCisgICAgICogQHBhcmFt
IHN0YXRldGFibGUgc3RhdGUgdGFibGUgdXNlZCBvZiBtb3ZpbmcgZm9yd2FyZHMKKyAgICAgKiBA
aW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGhhbmRsZU5leHQoY29uc3QgUkJCSVN0YXRl
VGFibGUgKnN0YXRldGFibGUpOworCitwcm90ZWN0ZWQ6CisKKyNpZm5kZWYgVV9ISURFX0lOVEVS
TkFMX0FQSQorICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgYWN0dWFs
bHkgaW1wbGVtZW50cyBkaWN0aW9uYXJ5LWJhc2VkCisgICAgICogYnJlYWtpbmcuICBDb3Zlcmlu
ZyBhdCBsZWFzdCB0aGUgcmFuZ2UgZnJvbSBzdGFydFBvcyB0byBlbmRQb3MsCisgICAgICogaXQg
Y2hlY2tzIGZvciBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMsIGFuZCBpZiBpdCBmaW5kcyB0aGVtIGRl
dGVybWluZXMKKyAgICAgKiB0aGUgYXBwcm9wcmlhdGUgb2JqZWN0IHRvIGRlYWwgd2l0aCB0aGVt
LiBJdCBtYXkgY2FjaGUgZm91bmQgYnJlYWtzIGluCisgICAgICogZkNhY2hlZEJyZWFrUG9zaXRp
b25zIGFzIGl0IGdvZXMuIEl0IG1heSB3ZWxsIGFsc28gbG9vayBhdCB0ZXh0IG91dHNpZGUKKyAg
ICAgKiB0aGUgcmFuZ2Ugc3RhcnRQb3MgdG8gZW5kUG9zLgorICAgICAqIElmIGdvaW5nIGZvcndh
cmQsIGVuZFBvcyBpcyB0aGUgbm9ybWFsIFVuaWNvZGUgYnJlYWsgcmVzdWx0LCBhbmQKKyAgICAg
KiBpZiBnb2luZCBpbiByZXZlcnNlLCBzdGFydFBvcyBpcyB0aGUgbm9ybWFsIFVuaWNvZGUgYnJl
YWsgcmVzdWx0CisgICAgICogQHBhcmFtIHN0YXJ0UG9zICBUaGUgc3RhcnQgcG9zaXRpb24gb2Yg
YSByYW5nZSBvZiB0ZXh0CisgICAgICogQHBhcmFtIGVuZFBvcyAgICBUaGUgZW5kIHBvc2l0aW9u
IG9mIGEgcmFuZ2Ugb2YgdGV4dAorICAgICAqIEBwYXJhbSByZXZlcnNlICAgVGhlIGNhbGwgaXMg
Zm9yIHRoZSByZXZlcnNlIGRpcmVjdGlvbgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAg
IGludDMyX3QgY2hlY2tEaWN0aW9uYXJ5KGludDMyX3Qgc3RhcnRQb3MsIGludDMyX3QgZW5kUG9z
LCBVQm9vbCByZXZlcnNlKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCitw
cml2YXRlOgorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBhcHBy
b3ByaWF0ZSBMYW5ndWFnZUJyZWFrRW5naW5lIGZvciBhCisgICAgICogZ2l2ZW4gY2hhcmFjdGVy
IGMuCisgICAgICogQHBhcmFtIGMgICAgICAgICBBIGNoYXJhY3RlciBpbiB0aGUgZGljdGlvbmFy
eSBzZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBjb25zdCBMYW5ndWFnZUJyZWFr
RW5naW5lICpnZXRMYW5ndWFnZUJyZWFrRW5naW5lKFVDaGFyMzIgYyk7CisKKyAgICAvKioKKyAg
ICAgKiAgQGludGVybmFsCisgICAgICovCisgICAgdm9pZCBtYWtlUnVsZVN0YXR1c1ZhbGlkKCk7
CisKK307CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICBJbmxpbmUgRnVuY3Rp
b25zIERlZmluaXRpb25zIC4uLgorLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lubGlu
ZSBVQm9vbCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yOjpvcGVyYXRvciE9KGNvbnN0IEJyZWFrSXRl
cmF0b3ImIHRoYXQpIGNvbnN0IHsKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0odGhhdCk7Cit9CisK
K1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JSRUFLX0lURVJB
VElPTiAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2No
cml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0ZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
MGI1ZTIyNTAzY2ZmMjYxZDJjZDI0MGZmMTIwMDdmOTM3Zjc4M2IyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oCkBAIC0wLDAgKzEsMTg3IEBACisv
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDUs
IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3Ro
ZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgor
KiBGaWxlIHNjaHJpdGVyLmgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAgRGF0
ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogIDA1LzA1Lzk5ICAgICBzdGVwaGVu
ICAgICBDbGVhbmVkIHVwLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIFND
SFJJVEVSX0gKKyNkZWZpbmUgU0NIUklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMu
aCIKKyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS91Y2hy
aXRlci5oIgorCisvKioKKyAqIFxmaWxlIAorICogXGJyaWVmIEMrKyBBUEk6IFN0cmluZyBDaGFy
YWN0ZXIgSXRlcmF0b3IKKyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgorICogQSBjb25j
cmV0ZSBzdWJjbGFzcyBvZiBDaGFyYWN0ZXJJdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgdGhl
CisgKiBjaGFyYWN0ZXJzIChjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzKSBpbiBhIFVuaWNvZGVT
dHJpbmcuCisgKiBJdCdzIHBvc3NpYmxlIG5vdCBvbmx5IHRvIGNyZWF0ZSBhbgorICogaXRlcmF0
b3IgdGhhdCBpdGVyYXRlcyBvdmVyIGFuIGVudGlyZSBVbmljb2RlU3RyaW5nLCBidXQgYWxzbyB0
bworICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25seSBhIHN1YnJhbmdlIG9mIGEg
VW5pY29kZVN0cmluZworICogKGl0ZXJhdG9ycyBvdmVyIGRpZmZlcmVudCBzdWJyYW5nZXMgb2Yg
dGhlIHNhbWUgVW5pY29kZVN0cmluZyBkb24ndAorICogY29tcGFyZSBlcXVhbCkuCisgKiBAc2Vl
IENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcgorICog
QHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBTdHJpbmdDaGFyYWN0ZXJJ
dGVyYXRvciA6IHB1YmxpYyBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgLyoq
CisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJlZmVycmVk
IHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlzIGNvcGll
ZC4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyB0aGUgd2hvbGUgc3RyaW5nLCBhbmQgdGhl
IHN0YXJ0aW5nIHBvc2l0aW9uIGlzIDAuCisgICAqIEBwYXJhbSB0ZXh0U3RyIFRoZSB1bmljb2Rl
IHN0cmluZyB1c2VkIHRvIGNyZWF0ZSBhbiBpdGVyYXRvcgorICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVuaWNvZGVTdHJpbmcmIHRl
eHRTdHIpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVW5pY29k
ZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBpdGVyYXRpb24gcmFu
Z2UgaXMgdGhlIHdob2xlIHN0cmluZywgYW5kIHRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBp
cyBzcGVjaWZpZWQgYnkgInRleHRQb3MiLiAgSWYgInRleHRQb3MiIGlzIG91dHNpZGUgdGhlIHZh
bGlkCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0IGlz
IHVuZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRTdHIgVGhlIHVuaWNvZGUgc3RyaW5nIHVzZWQg
dG8gY3JlYXRlIGFuIGl0ZXJhdG9yCisgICAqIEBwYXJhbSB0ZXh0UG9zIFRoZSBzdGFydGluZyBw
b3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
U3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYgICAgdGV4dFN0ciwK
KyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dFBvcyk7CisKKyAgLyoqCisg
ICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJlZmVycmVkIHRv
IGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlzIGNvcGllZC4K
KyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBiZWdpbnMgd2l0aCB0aGUgY29kZSB1bml0IHNwZWNp
ZmllZCBieQorICAgKiAidGV4dEJlZ2luIiBhbmQgZW5kcyB3aXRoIHRoZSBjb2RlIHVuaXQgQkVG
T1JFIHRoZSBjb2RlIHVuaXQgc3BlY2ZpZWQKKyAgICogYnkgInRleHRFbmQiLiAgVGhlIHN0YXJ0
aW5nIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAidGV4dFBvcyIuICBJZgorICAgKiAidGV4dEJl
Z2luIiBhbmQgInRleHRFbmQiIGRvbid0IGZvcm0gYSB2YWxpZCByYW5nZSBvbiAidGV4dCIgKGku
ZS4sCisgICAqIHRleHRCZWdpbiA+PSB0ZXh0RW5kIG9yIGVpdGhlciBpcyBuZWdhdGl2ZSBvciBn
cmVhdGVyIHRoYW4gdGV4dC5zaXplKCkpLAorICAgKiBvciAidGV4dFBvcyIgaXMgb3V0c2lkZSB0
aGUgcmFuZ2UgZGVmaW5lZCBieSAidGV4dEJlZ2luIiBhbmQgInRleHRFbmQiLAorICAgKiB0aGUg
YmVoYXZpb3Igb2YgdGhpcyBpdGVyYXRvciBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0ZXh0
U3RyICAgIFRoZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSB0aGUgU3RyaW5nQ2hhcmFj
dGVySXRlcmF0b3IKKyAgICogQHBhcmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBvc2l0aW9uIG9m
IHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhlIGVuZCBwb3Np
dGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0UG9zICAgIFRoZSBz
dGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYgICAg
dGV4dFN0ciwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dEJlZ2luLAor
ICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0RW5kLAorICAgICAgICAgICAg
ICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0UG9zKTsKKworICAvKioKKyAgICogQ29weSBjb25z
dHJ1Y3Rvci4gIFRoZSBuZXcgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSByYW5nZQor
ICAgKiBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRpYWwgcG9zaXRp
b24gaXMgdGhlCisgICAqIHNhbWUgYXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICog
VGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGluICJ0aGF0IiBpcyBjb3BpZWQuCisgICAqIEBwYXJh
bSB0aGF0IFRoZSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBTdHJp
bmdDaGFyYWN0ZXJJdGVyYXRvciYgIHRoYXQpOworCisgIC8qKgorICAgKiBEZXN0cnVjdG9yLgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgflN0cmluZ0NoYXJhY3Rlckl0
ZXJhdG9yKCk7CisKKyAgLyoqCisgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICAqdGhpcyBpcyBh
bHRlcmVkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZQorICAgKiByYW5nZSBvZiB0aGUgc2FtZSBz
dHJpbmcgYXMgInRoYXQiLCBhbmQgcmVmZXJzIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3RlciB3
aXRoaW4gdGhhdCBzdHJpbmcgYXMgInRoYXQiIGRvZXMuCisgICAqIEBwYXJhbSB0aGF0IFRoZSBv
YmplY3QgdG8gYmUgY29waWVkLgorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG9iamVj
dC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRv
ciYKKyAgb3BlcmF0b3I9KGNvbnN0IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJiAgICB0aGF0KTsK
KworICAvKioKKyAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVy
IHRoZSBzYW1lIHJhbmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5n
IGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFy
YWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICogQHJldHVybiB0
cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQor
ICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4K
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICAgIG9w
ZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdDsKKwor
ICAvKioKKyAgICogUmV0dXJucyBhIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciByZWZlcnJp
bmcgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHJhbmdlIG9mIHRoZSBz
YW1lIHN0cmluZyBhcyB0aGlzIG9uZS4gIFRoZQorICAgKiBjYWxsZXIgbXVzdCBkZWxldGUgdGhl
IG5ldyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0aGUgbmV3bHkgY2xvbmVkIG9iamVjdC4KKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9yKiBj
bG9uZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gaXRl
cmF0ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSBz
dHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZvaWQgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKworICAvKioKKyAg
ICogQ29waWVzIHRoZSBVbmljb2RlU3RyaW5nIHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBVbmlj
b2RlU3RyaW5nCisgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZlbiBpZiB0aGlzIGl0
ZXJhdG9yIGl0ZXJhdGVzIGFjcm9zcworICAgKiBvbmx5IGEgcGFydCBvZiB0aGlzIHN0cmluZywg
dGhlIHdob2xlIHN0cmluZyBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSByZXN1bHQgUmVjZWl2ZXMg
YSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAqLworICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNvZGVTdHJpbmcm
IHJlc3VsdCk7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9iamVj
dCAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBv
YmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2xhc3NJRCAg
ICAgICAgIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBSZXR1
cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcyAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEBy
ZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcworICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIHN0YXRpYyBVQ2xhc3NJRCAgIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKHZvaWQp
OworCitwcm90ZWN0ZWQ6CisgIC8qKgorICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yLCBpdGVyYXRp
b24gb3ZlciBlbXB0eSBzdHJpbmcuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgU3Ry
aW5nQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3Ig
dG8gaXRlcmF0ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJhbSBuZXdUZXh0
IFRoZSBzdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbmV3VGV4dExlbmd0
aCBUaGUgbGVuZ3RoIG9mIHRoZSBTdHJpbmcKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLwor
ICB2b2lkIHNldFRleHQoY29uc3QgVUNoYXIqIG5ld1RleHQsIGludDMyX3QgbmV3VGV4dExlbmd0
aCk7CisKKyAgLyoqCisgICAqIENvcHkgb2YgdGhlIGl0ZXJhdGVkIHN0cmluZyBvYmplY3QuCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVW5pY29kZVN0cmluZyAgICAgICAgICAgIHRl
eHQ7CisKK307CisKK1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL2ljdS91bmljb2RlL3VjYXNlbWFwLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjYXNl
bWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjM3ZTE2NTg4Njk3ZjFhOTMwMTkxZWUzZGY4MTZjNjNiN2JkMzhj
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNhc2VtYXAuaApA
QCAtMCwwICsxLDQyMyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5
cmlnaHQgKEMpIDIwMDUtMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAg
IENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVjYXNlbWFwLmgKKyogICBlbmNvZGlu
ZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0
aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDA1bWF5MDYKKyogICBjcmVhdGVkIGJ5OiBNYXJr
dXMgVy4gU2NoZXJlcgorKgorKiAgIENhc2UgbWFwcGluZyBzZXJ2aWNlIG9iamVjdCBhbmQgZnVu
Y3Rpb25zIHVzaW5nIGl0LgorKi8KKworI2lmbmRlZiBfX1VDQVNFTUFQX0hfXworI2RlZmluZSBf
X1VDQVNFTUFQX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1
bmljb2RlL3VzdHJpbmcuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCisv
KioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IFVuaWNvZGUgY2FzZSBtYXBwaW5nIGZ1bmN0
aW9ucyB1c2luZyBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICoKKyAqIFRoZSBzZXJ2aWNl
IG9iamVjdCB0YWtlcyBjYXJlIG9mIG1lbW9yeSBhbGxvY2F0aW9ucywgZGF0YSBsb2FkaW5nLCBh
bmQgc2V0dXAKKyAqIGZvciB0aGUgYXR0cmlidXRlcywgYXMgdXN1YWwuCisgKgorICogQ3VycmVu
dGx5LCB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBoZXJlIGRvZXMgbm90IG92ZXJsYXAgd2l0
aCB1Y2hhci5oCisgKiBhbmQgdXN0cmluZy5oLCBleGNlcHQgZm9yIHVjYXNlbWFwX3RvVGl0bGUo
KS4KKyAqCisgKiB1Y2FzZW1hcF91dGY4WFlaKCkgZnVuY3Rpb25zIG9wZXJhdGUgZGlyZWN0bHkg
b24gVVRGLTggc3RyaW5ncy4KKyAqLworCisvKioKKyAqIFVDYXNlTWFwIGlzIGFuIG9wYXF1ZSBz
ZXJ2aWNlIG9iamVjdCBmb3IgbmV3ZXIgSUNVIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMuCisgKiBP
bGRlciBmdW5jdGlvbnMgZGlkIG5vdCB1c2UgYSBzZXJ2aWNlIG9iamVjdC4KKyAqIEBzdGFibGUg
SUNVIDMuNAorICovCitzdHJ1Y3QgVUNhc2VNYXA7Cit0eXBlZGVmIHN0cnVjdCBVQ2FzZU1hcCBV
Q2FzZU1hcDsgLyoqPCBDIHR5cGVkZWYgZm9yIHN0cnVjdCBVQ2FzZU1hcC4gQHN0YWJsZSBJQ1Ug
My40ICovCisKKy8qKgorICogT3BlbiBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0IGZvciBhIGxv
Y2FsZSBhbmQgYSBzZXQgb2Ygb3B0aW9ucy4KKyAqIFRoZSBsb2NhbGUgSUQgYW5kIG9wdGlvbnMg
YXJlIHByZXByb2Nlc3NlZCBzbyB0aGF0IGZ1bmN0aW9ucyB1c2luZyB0aGUKKyAqIHNlcnZpY2Ug
b2JqZWN0IG5lZWQgbm90IHByb2Nlc3MgdGhlbSBpbiBlYWNoIGNhbGwuCisgKgorICogQHBhcmFt
IGxvY2FsZSBJQ1UgbG9jYWxlIElELCB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQKKyAqICAg
ICAgICAgICAgICAgdXBwZXItL2xvd2VyLS90aXRsZS1jYXNpbmcgYWNjb3JkaW5nIHRvIHRoZSBV
bmljb2RlIHN0YW5kYXJkLgorICogICAgICAgICAgICAgICBVc3VhbCBzZW1hbnRpY3M6ICIiPXJv
b3QsIE5VTEw9ZGVmYXVsdCBsb2NhbGUsIGV0Yy4KKyAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMg
Yml0IHNldCwgdXNlZCBmb3IgY2FzZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisg
KiAgICAgICAgICAgICAgICBTYW1lIGZsYWdzIGFzIGZvciB1X2ZvbGRDYXNlKCksIHVfc3RyRm9s
ZENhc2UoKSwKKyAqICAgICAgICAgICAgICAgIHVfc3RyQ2FzZUNvbXBhcmUoKSwgZXRjLgorICog
ICAgICAgICAgICAgICAgVXNlIDAgb3IgVV9GT0xEX0NBU0VfREVGQVVMVCBmb3IgZGVmYXVsdCBi
ZWhhdmlvci4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRv
IGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5v
dCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVy
biBQb2ludGVyIHRvIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QsIGlmIHN1Y2Nlc3NmdWwuCisg
KgorICogQHNlZSBVX0ZPTERfQ0FTRV9ERUZBVUxUCisgKiBAc2VlIFVfRk9MRF9DQVNFX0VYQ0xV
REVfU1BFQ0lBTF9JCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHNlZSBV
X1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5UCisgKiBAc3RhYmxlIElDVSAzLjQKKyAqLwor
VV9TVEFCTEUgVUNhc2VNYXAgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX29wZW4oY29uc3QgY2hhciAq
bG9jYWxlLCB1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoq
CisgKiBDbG9zZSBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGNzbSBPYmpl
Y3QgdG8gYmUgY2xvc2VkLgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZvaWQg
VV9FWFBPUlQyCit1Y2FzZW1hcF9jbG9zZShVQ2FzZU1hcCAqY3NtKTsKKworI2lmIFVfU0hPV19D
UExVU1BMVVNfQVBJCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogXGNsYXNzIExvY2Fs
VUNhc2VNYXBQb2ludGVyCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGNsb3NlcyBhIFVDYXNl
TWFwIHZpYSB1Y2FzZW1hcF9jbG9zZSgpLgorICogRm9yIG1vc3QgbWV0aG9kcyBzZWUgdGhlIExv
Y2FsUG9pbnRlckJhc2UgYmFzZSBjbGFzcy4KKyAqCisgKiBAc2VlIExvY2FsUG9pbnRlckJhc2UK
KyAqIEBzZWUgTG9jYWxQb2ludGVyCisgKiBAc3RhYmxlIElDVSA0LjQKKyAqLworVV9ERUZJTkVf
TE9DQUxfT1BFTl9QT0lOVEVSKExvY2FsVUNhc2VNYXBQb2ludGVyLCBVQ2FzZU1hcCwgdWNhc2Vt
YXBfY2xvc2UpOworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmCisKKy8qKgorICogR2V0IHRo
ZSBsb2NhbGUgSUQgdGhhdCBpcyB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQgY2FzZSBtYXBw
aW5ncy4KKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0dXJu
IGxvY2FsZSBJRAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGNvbnN0IGNoYXIg
KiBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldExvY2FsZShjb25zdCBVQ2FzZU1hcCAqY3NtKTsKKwor
LyoqCisgKiBHZXQgdGhlIG9wdGlvbnMgYml0IHNldCB0aGF0IGlzIHVzZWQgZm9yIGNhc2UgZm9s
ZGluZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2
aWNlIG9iamVjdC4KKyAqIEByZXR1cm4gb3B0aW9ucyBiaXQgc2V0CisgKiBAc3RhYmxlIElDVSAz
LjQKKyAqLworVV9TVEFCTEUgdWludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRPcHRpb25z
KGNvbnN0IFVDYXNlTWFwICpjc20pOworCisvKioKKyAqIFNldCB0aGUgbG9jYWxlIElEIHRoYXQg
aXMgdXNlZCBmb3IgbGFuZ3VhZ2UtZGVwZW5kZW50IGNhc2UgbWFwcGluZ3MuCisgKgorICogQHBh
cmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBsb2NhbGUgTG9jYWxl
IElELCBzZWUgdWNhc2VtYXBfb3BlbigpLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBh
IHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAg
ICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9u
IGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF9vcGVuCisgKiBAc3RhYmxlIElDVSAzLjQKKyAq
LworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldExvY2FsZShVQ2FzZU1hcCAq
Y3NtLCBjb25zdCBjaGFyICpsb2NhbGUsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioK
KyAqIFNldCB0aGUgb3B0aW9ucyBiaXQgc2V0IHRoYXQgaXMgdXNlZCBmb3IgY2FzZSBmb2xkaW5n
IGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2
aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgYml0IHNldCwgc2VlIHVjYXNl
bWFwX29wZW4oKS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVy
IHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0
IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoKKyAq
IEBzZWUgdWNhc2VtYXBfb3BlbgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZv
aWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9zZXRPcHRpb25zKFVDYXNlTWFwICpjc20sIHVpbnQzMl90
IG9wdGlvbnMsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIERvIG5vdCBsb3dl
cmNhc2Ugbm9uLWluaXRpYWwgcGFydHMgb2Ygd29yZHMgd2hlbiB0aXRsZWNhc2luZy4KKyAqIE9w
dGlvbiBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQSXMgdGhhdCB0YWtlIGFuIG9wdGlvbnMgYml0IHNl
dC4KKyAqCisgKiBCeSBkZWZhdWx0LCB0aXRsZWNhc2luZyB3aWxsIHRpdGxlY2FzZSB0aGUgZmly
c3QgY2FzZWQgY2hhcmFjdGVyCisgKiBvZiBhIHdvcmQgYW5kIGxvd2VyY2FzZSBhbGwgb3RoZXIg
Y2hhcmFjdGVycy4KKyAqIFdpdGggdGhpcyBvcHRpb24sIHRoZSBvdGhlciBjaGFyYWN0ZXJzIHdp
bGwgbm90IGJlIG1vZGlmaWVkLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucworICog
QHNlZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBA
c2VlIFVuaWNvZGVTdHJpbmc6OnRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCisjZGVm
aW5lIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRSAweDEwMAorCisvKioKKyAqIERvIG5vdCBhZGp1
c3QgdGhlIHRpdGxlY2FzaW5nIGluZGV4ZXMgZnJvbSBCcmVha0l0ZXJhdG9yOjpuZXh0KCkgaW5k
ZXhlczsKKyAqIHRpdGxlY2FzZSBleGFjdGx5IHRoZSBjaGFyYWN0ZXJzIGF0IGJyZWFrcyBmcm9t
IHRoZSBpdGVyYXRvci4KKyAqIE9wdGlvbiBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQSXMgdGhhdCB0
YWtlIGFuIG9wdGlvbnMgYml0IHNldC4KKyAqCisgKiBCeSBkZWZhdWx0LCB0aXRsZWNhc2luZyB3
aWxsIHRha2UgZWFjaCBicmVhayBpdGVyYXRvciBpbmRleCwKKyAqIGFkanVzdCBpdCBieSBsb29r
aW5nIGZvciB0aGUgbmV4dCBjYXNlZCBjaGFyYWN0ZXIsIGFuZCB0aXRsZWNhc2UgdGhhdCBvbmUu
CisgKiBPdGhlciBjaGFyYWN0ZXJzIGFyZSBsb3dlcmNhc2VkLgorICoKKyAqIFRoaXMgZm9sbG93
cyBVbmljb2RlIDQgJiA1IHNlY3Rpb24gMy4xMyBEZWZhdWx0IENhc2UgT3BlcmF0aW9uczoKKyAq
CisgKiBSMyAgdG9UaXRsZWNhc2UoWCk6IEZpbmQgdGhlIHdvcmQgYm91bmRhcmllcyBiYXNlZCBv
biBVbmljb2RlIFN0YW5kYXJkIEFubmV4CisgKiAjMjksICJUZXh0IEJvdW5kYXJpZXMuIiBCZXR3
ZWVuIGVhY2ggcGFpciBvZiB3b3JkIGJvdW5kYXJpZXMsIGZpbmQgdGhlIGZpcnN0CisgKiBjYXNl
ZCBjaGFyYWN0ZXIgRi4gSWYgRiBleGlzdHMsIG1hcCBGIHRvIGRlZmF1bHRfdGl0bGUoRik7IHRo
ZW4gbWFwIGVhY2gKKyAqIHN1YnNlcXVlbnQgY2hhcmFjdGVyIEMgdG8gZGVmYXVsdF9sb3dlcihD
KS4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgdWNhc2VtYXBfdG9U
aXRsZQorICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICogQHNlZSBVbmljb2RlU3RyaW5n
Ojp0b1RpdGxlCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHN0YWJsZSBJ
Q1UgMy44CisgKi8KKyNkZWZpbmUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVCAweDIw
MAorCisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKKy8qKgorICogR2V0IHRoZSBi
cmVhayBpdGVyYXRvciB0aGF0IGlzIHVzZWQgZm9yIHRpdGxlY2FzaW5nLgorICogRG8gbm90IG1v
ZGlmeSB0aGUgcmV0dXJuZWQgYnJlYWsgaXRlcmF0b3IuCisgKiBAcGFyYW0gY3NtIFVDYXNlTWFw
IHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVybiB0aXRsZWNhc2luZyBicmVhayBpdGVyYXRvcgor
ICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIGNvbnN0IFVCcmVha0l0ZXJhdG9yICog
VV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDYXNlTWFwICpjc20p
OworCisvKioKKyAqIFNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2VkIGZvciB0aXRs
ZWNhc2luZy4KKyAqIFRoZSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdCByZWxlYXNlcyBhIHByZXZp
b3VzbHkgc2V0IGJyZWFrIGl0ZXJhdG9yCisgKiBhbmQgImFkb3B0cyIgdGhpcyBuZXcgb25lLCB0
YWtpbmcgb3duZXJzaGlwIG9mIGl0LgorICogSXQgd2lsbCBiZSByZWxlYXNlZCBpbiBhIHN1YnNl
cXVlbnQgY2FsbCB0byB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCkKKyAqIG9yIHVjYXNlbWFw
X2Nsb3NlKCkuCisgKgorICogQnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucyBhcmUgbm90IHRocmVh
ZC1zYWZlLiBUaGVyZWZvcmUsIHRpdGxlY2FzaW5nCisgKiBmdW5jdGlvbnMgdXNlIG5vbi1jb25z
dCBVQ2FzZU1hcCBvYmplY3RzLiBJdCBpcyBub3QgcG9zc2libGUgdG8gdGl0bGVjYXNlCisgKiBz
dHJpbmdzIGNvbmN1cnJlbnRseSB1c2luZyB0aGUgc2FtZSBVQ2FzZU1hcC4KKyAqCisgKiBAcGFy
YW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGl0ZXJUb0Fkb3B0IEJy
ZWFrIGl0ZXJhdG9yIHRvIGJlIGFkb3B0ZWQgZm9yIHRpdGxlY2FzaW5nLgorICogQHBhcmFtIHBF
cnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwK
KyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBi
ZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF90b1RpdGxlCisg
KiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9T
VEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoVUNhc2VNYXAg
KmNzbSwgVUJyZWFrSXRlcmF0b3IgKml0ZXJUb0Fkb3B0LCBVRXJyb3JDb2RlICpwRXJyb3JDb2Rl
KTsKKworLyoqCisgKiBUaXRsZWNhc2UgYSBVVEYtMTYgc3RyaW5nLiBUaGlzIGZ1bmN0aW9uIGlz
IGFsbW9zdCBhIGR1cGxpY2F0ZSBvZiB1X3N0clRvVGl0bGUoKSwKKyAqIGV4Y2VwdCB0aGF0IGl0
IHRha2VzIHVjYXNlbWFwX3NldE9wdGlvbnMoKSBpbnRvIGFjY291bnQgYW5kIGhhcyBwZXJmb3Jt
YW5jZQorICogYWR2YW50YWdlcyBmcm9tIGJlaW5nIGFibGUgdG8gdXNlIGEgVUNhc2VNYXAgb2Jq
ZWN0IGZvciBtdWx0aXBsZSBjYXNlIG1hcHBpbmcKKyAqIG9wZXJhdGlvbnMsIHNhdmluZyBzZXR1
cCB0aW1lLgorICoKKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0LXNl
bnNpdGl2ZS4KKyAqIFRpdGxlY2FzaW5nIHVzZXMgYSBicmVhayBpdGVyYXRvciB0byBmaW5kIHRo
ZSBmaXJzdCBjaGFyYWN0ZXJzIG9mIHdvcmRzCisgKiB0aGF0IGFyZSB0byBiZSB0aXRsZWNhc2Vk
LiBJdCB0aXRsZWNhc2VzIHRob3NlIGNoYXJhY3RlcnMgYW5kIGxvd2VyY2FzZXMKKyAqIGFsbCBv
dGhlcnMuIChUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHVjYXNlbWFwX3NldE9wdGlvbnMoKS4p
CisgKgorICogTm90ZTogVGhpcyBmdW5jdGlvbiB0YWtlcyBhIG5vbi1jb25zdCBVQ2FzZU1hcCBw
b2ludGVyIGJlY2F1c2UgaXQgd2lsbAorICogb3BlbiBhIGRlZmF1bHQgYnJlYWsgaXRlcmF0b3Ig
aWYgbm8gYnJlYWsgaXRlcmF0b3Igd2FzIHNldCB5ZXQsCisgKiBhbmQgZWZmZWN0aXZlbHkgY2Fs
bCB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCk7CisgKiBhbHNvIGJlY2F1c2UgdGhlIGJyZWFr
IGl0ZXJhdG9yIGlzIHN0YXRlZnVsIGFuZCB3aWxsIGJlIG1vZGlmaWVkIGR1cmluZworICogdGhl
IGl0ZXJhdGlvbi4KKyAqCisgKiBUaGUgdGl0bGVjYXNlIGJyZWFrIGl0ZXJhdG9yIGNhbiBiZSBw
cm92aWRlZCB0byBjdXN0b21pemUgZm9yIGFyYml0cmFyeQorICogc3R5bGVzLCB1c2luZyBydWxl
cyBhbmQgZGljdGlvbmFyaWVzIGJleW9uZCB0aGUgc3RhbmRhcmQgaXRlcmF0b3JzLgorICogVGhl
IHN0YW5kYXJkIHRpdGxlY2FzZSBpdGVyYXRvciBmb3IgdGhlIHJvb3QgbG9jYWxlIGltcGxlbWVu
dHMgdGhlCisgKiBhbGdvcml0aG0gb2YgVW5pY29kZSBUUiAyMS4KKyAqCisgKiBUaGlzIGZ1bmN0
aW9uIHVzZXMgb25seSB0aGUgc2V0VVRleHQoKSwgZmlyc3QoKSwgbmV4dCgpIGFuZCBjbG9zZSgp
IG1ldGhvZHMgb2YgdGhlCisgKiBwcm92aWRlZCBicmVhayBpdGVyYXRvci4KKyAqCisgKiBUaGUg
cmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRo
ZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJs
YXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4gVGhp
cyBwb2ludGVyIGlzIG5vbi1jb25zdCEKKyAqICAgICAgICAgICAgICAgICAgU2VlIHRoZSBub3Rl
IGFib3ZlIGZvciBkZXRhaWxzLgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3IgdGhl
IHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgorICog
ICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAgICAg
ICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUuCisg
KiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBi
eXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkgYmUg
TlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUg
cmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhlIHJl
c3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcuCisg
KiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4gSWYg
LTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9yQ29k
ZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICogICAg
ICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRo
ZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQgc3Ry
aW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywKKyAq
ICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2FwYWNp
dHkuCisgKgorICogQHNlZSB1X3N0clRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitV
X1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdG9UaXRsZShVQ2FzZU1hcCAqY3Nt
LAorICAgICAgICAgICAgICAgICBVQ2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisg
ICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAg
ICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCisKKy8qKgor
ICogTG93ZXJjYXNlIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICogQ2FzaW5n
IGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGhlIHJlc3Vs
dCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291
cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgor
ICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFy
YW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3
aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIg
aXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5k
ZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNp
emUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICog
ICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBv
bmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAg
d2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMg
ICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0
aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVy
bWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRv
IGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90
IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJu
IFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBj
YXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdp
bGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9Mb3dl
cgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1
Y2FzZW1hcF91dGY4VG9Mb3dlcihjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAg
ICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogVXBwZXJjYXNlIHRoZSBj
aGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBlbmRl
bnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9y
IHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhl
IGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20g
ICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEgYnVm
ZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJtaW5h
dGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdoLgor
ICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ugb2Yg
ZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciAo
bnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAgICBk
ZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUgbGVu
Z3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5nIGFu
eSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdpbmFs
IHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwg
c3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBwYXJh
bSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUgdmFs
dWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVy
ZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2YgdGhl
IHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVyIG92
ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0aGFu
IGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9VcHBlcgorICogQHN0YWJsZSBJQ1Ug
My40CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4VG9VcHBl
cihjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwg
aW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpz
cmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAq
cEVycm9yQ29kZSk7CisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworLyoqCisg
KiBUaXRsZWNhc2UgYSBVVEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRlcGVuZGVu
dCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaXRsZWNhc2luZyB1c2VzIGEgYnJlYWsgaXRl
cmF0b3IgdG8gZmluZCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiB3b3JkcworICogdGhhdCBhcmUg
dG8gYmUgdGl0bGVjYXNlZC4gSXQgdGl0bGVjYXNlcyB0aG9zZSBjaGFyYWN0ZXJzIGFuZCBsb3dl
cmNhc2VzCisgKiBhbGwgb3RoZXJzLiAoVGhpcyBjYW4gYmUgbW9kaWZpZWQgd2l0aCB1Y2FzZW1h
cF9zZXRPcHRpb25zKCkuKQorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBub24t
Y29uc3QgVUNhc2VNYXAgcG9pbnRlciBiZWNhdXNlIGl0IHdpbGwKKyAqIG9wZW4gYSBkZWZhdWx0
IGJyZWFrIGl0ZXJhdG9yIGlmIG5vIGJyZWFrIGl0ZXJhdG9yIHdhcyBzZXQgeWV0LAorICogYW5k
IGVmZmVjdGl2ZWx5IGNhbGwgdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigpOworICogYWxzbyBi
ZWNhdXNlIHRoZSBicmVhayBpdGVyYXRvciBpcyBzdGF0ZWZ1bCBhbmQgd2lsbCBiZSBtb2RpZmll
ZCBkdXJpbmcKKyAqIHRoZSBpdGVyYXRpb24uCisgKgorICogVGhlIHRpdGxlY2FzZSBicmVhayBp
dGVyYXRvciBjYW4gYmUgcHJvdmlkZWQgdG8gY3VzdG9taXplIGZvciBhcmJpdHJhcnkKKyAqIHN0
eWxlcywgdXNpbmcgcnVsZXMgYW5kIGRpY3Rpb25hcmllcyBiZXlvbmQgdGhlIHN0YW5kYXJkIGl0
ZXJhdG9ycy4KKyAqIFRoZSBzdGFuZGFyZCB0aXRsZWNhc2UgaXRlcmF0b3IgZm9yIHRoZSByb290
IGxvY2FsZSBpbXBsZW1lbnRzIHRoZQorICogYWxnb3JpdGhtIG9mIFVuaWNvZGUgVFIgMjEuCisg
KgorICogVGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHNldFVUZXh0KCksIGZpcnN0KCksIG5l
eHQoKSBhbmQgY2xvc2UoKSBtZXRob2RzIG9mIHRoZQorICogcHJvdmlkZWQgYnJlYWsgaXRlcmF0
b3IuCisgKgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUg
b3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZl
ciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2Vy
dmljZSBvYmplY3QuIFRoaXMgcG9pbnRlciBpcyBub24tY29uc3QhCisgKiAgICAgICAgICAgICAg
ICAgIFNlZSB0aGUgbm90ZSBhYm92ZSBmb3IgZGV0YWlscy4KKyAqIEBwYXJhbSBkZXN0ICAgICAg
QSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRl
cm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91
Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2Fz
ZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVm
ZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAg
ICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRo
ZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRp
bmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3Jp
Z2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmln
aW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICog
QHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29k
ZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBm
YWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBv
ZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZm
ZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVy
IHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1RpdGxlCisgKiBAc2VlIFVf
VElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpV
U1RNRU5UCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VYUE9S
VDIKK3VjYXNlbWFwX3V0ZjhUb1RpdGxlKFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAg
ICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAg
ICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCisKKy8qKgorICogQ2FzZS1mb2xk
cyB0aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmluZy4KKyAqCisgKiBDYXNlLWZvbGRpbmcg
aXMgbG9jYWxlLWluZGVwZW5kZW50IGFuZCBub3QgY29udGV4dC1zZW5zaXRpdmUsCisgKiBidXQg
dGhlcmUgaXMgYW4gb3B0aW9uIGZvciB3aGV0aGVyIHRvIGluY2x1ZGUgb3IgZXhjbHVkZSBtYXBw
aW5ncyBmb3IgZG90dGVkIEkKKyAqIGFuZCBkb3RsZXNzIGkgdGhhdCBhcmUgbWFya2VkIHdpdGgg
J1QnIGluIENhc2VGb2xkaW5nLnR4dC4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25nZXIg
b3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0
aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFtIGNz
bSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAgQSBi
dWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRlcm1p
bmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2gu
CisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2FzZSBv
ZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVy
IChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAgICAg
IGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRoZSBs
ZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRpbmcg
YW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3JpZ2lu
YWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmlnaW5h
bCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICogQHBh
cmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2
YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBmYWls
dXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBvZiB0
aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZmZXIg
b3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVyIHRo
YW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJGb2xkQ2FzZQorICogQHNlZSB1Y2Fz
ZW1hcF9zZXRPcHRpb25zCisgKiBAc2VlIFVfRk9MRF9DQVNFX0RFRkFVTFQKKyAqIEBzZWUgVV9G
T0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitVX1NU
QUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOEZvbGRDYXNlKGNvbnN0IFVDYXNl
TWFwICpjc20sCisgICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0
Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQzMl90
IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2Rl
KTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVy
LmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ1YTk5
MGY3YjdlZDNkNWJhY2YyZGE4NDcxZWY4ZmY5NDIyZjk5YwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0ZXIuaApAQCAtMCwwICsxLDM4MSBAQAorLyoKKyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25hbCBC
dXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRz
IFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBVQ0hSSVRFUl9ICisjZGVm
aW5lIFVDSFJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVkZSAi
dW5pY29kZS9jaGFyaXRlci5oIgorCisvKioKKyAqIFxmaWxlIAorICogXGJyaWVmIEMrKyBBUEk6
IFVDaGFyIENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVTUEFDRV9CRUdJTgorCisv
KioKKyAqIEEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ2hhcmFjdGVySXRlcmF0b3IgdGhhdCBpdGVy
YXRlcyBvdmVyIHRoZQorICogY2hhcmFjdGVycyAoY29kZSB1bml0cyBvciBjb2RlIHBvaW50cykg
aW4gYSBVQ2hhciBhcnJheS4KKyAqIEl0J3MgcG9zc2libGUgbm90IG9ubHkgdG8gY3JlYXRlIGFu
CisgKiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgYW4gZW50aXJlIFVDaGFyIGFycmF5LCBi
dXQgYWxzbyB0bworICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25seSBhIHN1YnJh
bmdlIG9mIGEgVUNoYXIgYXJyYXkKKyAqIChpdGVyYXRvcnMgb3ZlciBkaWZmZXJlbnQgc3VicmFu
Z2VzIG9mIHRoZSBzYW1lIFVDaGFyIGFycmF5IGRvbid0CisgKiBjb21wYXJlIGVxdWFsKS4KKyAq
IEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9y
CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIFVDaGFyQ2hhcmFj
dGVySXRlcmF0b3IgOiBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGljOgorICAvKioK
KyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRv
IGJ5ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmxl
bmd0aC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0
aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBAcGFyYW0gdGV4
dFB0ciBUaGUgVUNoYXIgYXJyYXkgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbGVu
Z3RoIFRoZSBsZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwgaW50
MzJfdCBsZW5ndGgpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUg
VUNoYXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUgaXRlcmF0aW9u
IHJhbmdlIGlzIDAgdG8gPGNvZGU+bGVuZ3RoLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlzIG9ubHkg
YWxpYXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90IGRlbGV0
ZSBpdCkuCisgICAqIFRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkg
InBvc2l0aW9uIi4gSWYgInBvc2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBpdGVy
YXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQuCisg
ICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRkIG92ZXIKKyAg
ICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQorICAgKiBAcGFy
YW0gcG9zaXRpb24gVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVD
aGFyKiB0ZXh0UHRyLCBpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIg
dGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJh
dGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmVuZC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5
IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxl
dGUgaXQpLgorICAgKiBUaGUgc3RhcnRpbmcKKyAgICogcG9zaXRpb24gaXMgc3BlY2lmaWVkIGJ5
ICJwb3NpdGlvbiIuIElmIGJlZ2luIGFuZCBlbmQgZG8gbm90CisgICAqIGZvcm0gYSB2YWxpZCBp
dGVyYXRpb24gcmFuZ2Ugb3IgInBvc2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBp
dGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQu
CisgICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRlZCBvdmVy
CisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIgYXJyYXkKKyAgICog
QHBhcmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFu
Z2UKKyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0
aW9uIHJhbmdlCisgICAqIEBwYXJhbSBwb3NpdGlvbiAgICBUaGUgc3RhcnRpbmcgcG9zaXRpb24g
b2YgdGhlIGl0ZXJhdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hh
cmFjdGVySXRlcmF0b3IoY29uc3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGV4dEJlZ2luLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIGludDMyX3QgdGV4dEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQz
Ml90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogQ29weSBjb25zdHJ1Y3Rvci4gIFRoZSBuZXcg
aXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSByYW5nZQorICAgKiBvZiB0aGUgc2FtZSBz
dHJpbmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRpYWwgcG9zaXRpb24gaXMgdGhlCisgICAqIHNh
bWUgYXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICogQHBhcmFtIHRoYXQgVGhlIFVD
aGFyQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhckNoYXJhY3Rlckl0ZXJh
dG9yJiAgdGhhdCk7CisKKyAgLyoqCisgICAqIERlc3RydWN0b3IuCisgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgKi8KKyAgdmlydHVhbCB+VUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigpOworCisgIC8q
KgorICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgKnRoaXMgaXMgYWx0ZXJlZCB0byBpdGVyYXRl
IG92ZXIgdGhlIHNhbmUKKyAgICogcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0Iiwg
YW5kIHJlZmVycyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgd2l0aGluIHRoYXQgc3RyaW5n
IGFzICJ0aGF0IiBkb2VzLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgb2JqZWN0IHRvIGJlIGNvcGll
ZAorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdAorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImCisgIG9wZXJhdG9yPShjb25z
dCBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yJiAgICB0aGF0KTsKKworICAvKioKKyAgICogUmV0dXJu
cyB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRo
ZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rl
ci4KKyAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB1c2VkIHRv
IGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGl0ZXJh
dG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3RyaW5n
IGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgICAgb3BlcmF0b3I9PShjb25zdCBG
b3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0OworCisgIC8qKgorICAgKiBHZW5l
cmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgaXRlcmF0b3IuCisgICAqIEByZXR1cm4gdGhlIGhh
c2ggY29kZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIGludDMyX3Qg
ICAgICAgICBoYXNoQ29kZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogUmV0dXJucyBhIG5l
dyBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgc2FtZQorICAgKiBjaGFy
YWN0ZXIgaW4gdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzIHRoaXMgb25lLiAg
VGhlCisgICAqIGNhbGxlciBtdXN0IGRlbGV0ZSB0aGUgbmV3IGl0ZXJhdG9yLgorICAgKiBAcmV0
dXJuIHRoZSBDaGFyYWN0ZXJJdGVyYXRvciBuZXdseSBjcmVhdGVkCisgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgKi8KKyAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29u
c3Q7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJz
dCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhh
dCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9u
IHdpdGggbmV4dCgpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzIGl0
ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVD
aGFyICAgICAgICAgZmlyc3Qodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9y
IHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiBy
YW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAg
KiB0byB0aGUgc2Vjb25kIGNvZGUgdW5pdC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXRU
b1N0YXJ0KCkKKyAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMoKS4K
KyAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UK
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAgZmly
c3RQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZl
ciB0byB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCBh
bmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwKKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdp
biBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzIoKS4KKyAgICogTm90ZSB0aGF0IGFuIGl0ZXJhdGlv
biB3aXRoIG5leHQzMlBvc3RJbmMoKSwgYmVnaW5uaW5nIHdpdGgsCisgICAqIGUuZy4sIHNldFRv
U3RhcnQoKSBvciBmaXJzdFBvc3RJbmMoKSwgaXMgbW9yZSBlZmZpY2llbnQuCisgICAqIEByZXR1
cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZQorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyKHZvaWQp
OworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3Qg
Y29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQgY29k
ZSBwb2ludCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgKiB0byB0aGUgc2Vjb25kIGNvZGUg
cG9pbnQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAqIGZvciBm
b3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICogQHJldHVybiB0aGUg
Zmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyUG9zdEluYyh2b2lk
KTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3Qg
Y29kZSB1bml0IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQg
Y29kZSB1bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlvbiB3
aXRoIHByZXZpb3VzKCkuCisgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSB1bml0IGluIGl0cyBp
dGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBV
Q2hhciAgICAgICAgIGxhc3Qodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9y
IHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiBy
YW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQg
dG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMzMigpLgorICAgKiBAcmV0dXJuIHRo
ZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMyKHZvaWQpOworCisg
IC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgInBvc2l0aW9uIi10
aCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9y
IHJlZmVycyB0bywgYW5kCisgICAqIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIEBwYXJh
bSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0Cisg
ICAqIEByZXR1cm4gdGhlIGNvZGUgdW5pdAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgVUNoYXIgICAgICAgICBzZXRJbmRleChpbnQzMl90IHBvc2l0aW9uKTsKKworICAv
KioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0
aGUgY29kZSBwb2ludAorICAgKiB0aGF0IGNvbnRhaW5zIHRoZSAicG9zaXRpb24iLXRoIGNvZGUg
dW5pdAorICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVmZXJz
IHRvLCBhbmQKKyAgICogcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisgICAqIFRoZSBjdXJyZW50
IHBvc2l0aW9uIGlzIGFkanVzdGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9pbnQK
KyAgICogKGl0cyBmaXJzdCBjb2RlIHVuaXQpLgorICAgKiBAcGFyYW0gcG9zaXRpb24gdGhlIHBv
c2l0aW9uIHdpdGhpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgKiBAcmV0dXJuIHRoZSBj
b2RlIHVuaXQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIg
ICAgICAgc2V0SW5kZXgzMihpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogUmV0dXJu
cyB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAgKiBA
cmV0dXJuIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGN1cnJl
bnQodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgdGhlIGNvZGUgcG9pbnQgdGhl
IGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEByZXR1cm4gdGhlIGNvZGUgcG9p
bnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGN1cnJlbnQzMih2b2lkKSBjb25zdDsK
KworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBpdGVy
YXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBj
b2RlIHVuaXQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRzIHRvIHJldHVy
biwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgdW5pdCBpbiB0aGUg
aXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwg
VUNoYXIgICAgICAgICBuZXh0KHZvaWQpOworCisgIC8qKgorICAgKiBHZXRzIHRoZSBjdXJyZW50
IGNvZGUgdW5pdCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVu
aXQKKyAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiAodG93YXJkIGVuZEluZGV4KCkp
LiAgSWYgdGhlcmUgYXJlCisgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVy
bnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuCisgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHRQb3N0SW5jKHZv
aWQpOworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGluIHRo
ZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMg
dGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSBwb2ludHMg
dG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIE5vdGUgdGhhdCBpdGVyYXRpb24gd2l0aCAi
cHJlLWluY3JlbWVudCIgc2VtYW50aWNzIGlzIGxlc3MKKyAgICogZWZmaWNpZW50IHRoYW4gaXRl
cmF0aW9uIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1hbnRpY3MKKyAgICogdGhhdCBpcyBwcm92
aWRlZCBieSBuZXh0MzJQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSBwb2lu
dCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisg
IHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzIodm9pZCk7CisKKyAgLyoqCisgICAqIEdldHMg
dGhlIGN1cnJlbnQgY29kZSBwb2ludCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUg
bmV4dCBjb2RlIHBvaW50CisgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogKHRvd2Fy
ZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRv
IHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHBvaW50Lgor
ICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0
MzJQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFy
ZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYXQgb3IgYWZ0ZXIgdGhl
IGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogVGhpcyBpcyB1
c2VkIHdpdGggbmV4dFBvc3RJbmMoKSBvciBuZXh0MzJQb3N0SW5jKCkgaW4gZm9yd2FyZAorICAg
KiBpdGVyYXRpb24uCisgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUgY29k
ZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBwb3Np
dGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc05leHQoKTsKKworICAvKioKKyAgICogQWR2YW5j
ZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0b3dh
cmQKKyAgICogc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJZiB0
aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05F
LgorICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlvbiBy
YW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAg
ICAgcHJldmlvdXModm9pZCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2aW91
cyBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBzdGFydElu
ZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUgbm8gbW9y
ZQorICAgKiBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJldHVy
biB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBwcmV2aW91czMy
KHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3Jl
IGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0
aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIFRoaXMgaXMgdXNlZCB3aXRoIHByZXZp
b3VzKCkgb3IgcHJldmlvdXMzMigpIGluIGJhY2t3YXJkCisgICAqIGl0ZXJhdGlvbi4KKyAgICog
QHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9p
bnRzCisgICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJh
bmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAg
IGhhc1ByZXZpb3VzKCk7CisKKyAgLyoqCisgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9u
IHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAqIGl0ZXJhdGlvbiByYW5n
ZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgKiBUaGUg
bW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSB1bml0cyBmb3J3YXJkCisg
ICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZWx0
YS4KKyAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEg
cG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICogYSBuZWdhdGl2ZSBkZWx0YSBtZWFu
cyBiYWNrd2FyZC4KKyAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tTdGFy
dCwga0N1cnJlbnQsIGtFbmR9CisgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUoaW50MzJf
dCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pOworCisgIC8qKgorICAgKiBNb3ZlcyB0aGUgY3VycmVu
dCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgKiBpdGVy
YXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGl0c2VsZi4K
KyAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgcG9pbnRz
IGZvcndhcmQKKyAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9yIG5l
Z2F0aXZlIGRlbHRhLgorICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRv
IG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgKiBhIG5lZ2F0aXZl
IGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVtZXJh
dGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICogQHJldHVybiB0aGUgbmV3IHBvc2l0
aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBpbnQzMl90ICAgICAg
bW92ZTMyKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKTsKKworICAvKioKKyAgICogU2V0
cyB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIGEgbmV3IHJhbmdlIG9mIHRleHQKKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVUNoYXIqIG5ld1Rl
eHQsIGludDMyX3QgbmV3VGV4dExlbmd0aCk7CisKKyAgLyoqCisgICAqIENvcGllcyB0aGUgVUNo
YXIgYXJyYXkgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcKKyAgICogcmVm
ZXJyZWQgdG8gYnkgInJlc3VsdCIuICBFdmVuIGlmIHRoaXMgaXRlcmF0b3IgaXRlcmF0ZXMgYWNy
b3NzCisgICAqIG9ubHkgYSBwYXJ0IG9mIHRoaXMgc3RyaW5nLCB0aGUgd2hvbGUgc3RyaW5nIGlz
IGNvcGllZC4KKyAgICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRleHQg
dW5kZXIgaXRlcmF0aW9uLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwg
dm9pZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0cmluZyYgcmVzdWx0KTsKKworICAvKioK
KyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MgKG5vdCByZWFsbHkgcHVibGlj
KQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MKKyAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAqLworICBzdGF0aWMgVUNsYXNzSUQgICAgICAgICBVX0VYUE9SVDIgZ2V0U3Rh
dGljQ2xhc3NJRCh2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRo
aXMgb2JqZWN0IChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElEIGZv
ciB0aGlzIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVD
bGFzc0lEICAgICAgICBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKworcHJvdGVjdGVk
OgorICAvKioKKyAgICogUHJvdGVjdGVkIGNvbnN0cnVjdG9yCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigpOworICAvKioKKyAgICogUHJvdGVj
dGVkIG1lbWJlciB0ZXh0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgY29uc3QgVUNo
YXIqICAgICAgICAgICAgdGV4dDsKKworfTsKKworVV9OQU1FU1BBQ0VfRU5ECisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaCBiL1NvdXJjZS9XVEYvaWN1
L3VuaWNvZGUvdWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWU0NjYzMGQ1Mzk4ZDgyNzM4ZDFkNjFmZmM0
ZDJjOTE0ZThjNjhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91
ZGF0YS5oCkBAIC0wLDAgKzEsNDMwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisq
ICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGlu
ZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoK
KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVkYXRhLmgKKyogICBlbmNv
ZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVu
dGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0MjUKKyogICBjcmVhdGVkIGJ5OiBN
YXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBfX1VEQVRBX0hfXworI2RlZmluZSBfX1VE
QVRBX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2Rl
L2xvY2FscG9pbnRlci5oIgorCitVX0NERUNMX0JFR0lOCisKKy8qKgorICogXGZpbGUKKyAqIFxi
cmllZiBDIEFQSTogRGF0YSBsb2FkaW5nIGludGVyZmFjZQorICoKKyAqIDxoMj5JbmZvcm1hdGlv
biBhYm91dCBkYXRhIGxvYWRpbmcgaW50ZXJmYWNlPC9oMj4KKyAqCisgKiBUaGlzIEFQSSBpcyB1
c2VkIHRvIGZpbmQgYW5kIGVmZmljaWVudGx5IGxvYWQgZGF0YSBmb3IgSUNVIGFuZCBhcHBsaWNh
dGlvbnMKKyAqIHVzaW5nIElDVS4gSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRo
YXQgc3BlY2lmaWVzIGEgZGF0YSB0eXBlIGFuZAorICogbmFtZSB0byBmaW5kIGFuZCBsb2FkIHRo
ZSBkYXRhLiBOb3JtYWxseSB0aGlzIEFQSSBpcyB1c2VkIGJ5IG90aGVyIElDVSBBUElzCisgKiB0
byBsb2FkIHJlcXVpcmVkIGRhdGEgb3V0IG9mIHRoZSBJQ1UgZGF0YSBsaWJyYXJ5LCBidXQgaXQg
Y2FuIGJlIHVzZWQgdG8KKyAqIGxvYWQgZGF0YSBvdXQgb2Ygb3RoZXIgcGxhY2VzLgorICoKKyAq
IFNlZSB0aGUgVXNlciBHdWlkZSBEYXRhIE1hbmFnZW1lbnQgY2hhcHRlci4KKyAqLworIAorI2lm
bmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisvKioKKyAqIENoYXJhY3RlciB1c2VkIHRvIHNlcGFy
YXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAorICogQGludGVybmFsIElDVSAzLjAK
KyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SICctJworCisvKioKKyAqIFN0cmluZyB1c2Vk
IHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAorICogQGludGVybmFs
IElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SX1NUUklORyAiLSIKKworLyoq
CisgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYXJ0cyBvZiBlbnRyeSBuYW1lcworICog
QGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfRU5UUllfU0VQX0NIQVIgJy8n
CisKKy8qKgorICogU3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgcGFydHMgb2YgZW50cnkgbmFtZXMK
KyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX0VOVFJZX1NFUF9TVFJJ
TkcgIi8iCisKKy8qKgorICogQWxpYXMgZm9yIHN0YW5kYXJkIElDVSBkYXRhIAorICogQGludGVy
bmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX0lDVURBVEFfQUxJQVMgIklDVURBVEEiCisKKyNl
bmRpZiAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKy8qKgorICogVURhdGFJbmZvIGNvbnRh
aW5zIHRoZSBwcm9wZXJ0aWVzIGFib3V0IHRoZSByZXF1ZXN0ZWQgZGF0YS4KKyAqIFRoaXMgaXMg
bWV0YSBkYXRhLgorICoKKyAqIDxwPlRoaXMgc3RydWN0dXJlIG1heSBncm93IGluIHRoZSBmdXR1
cmUsIGluZGljYXRlZCBieSB0aGUKKyAqIDxjb2RlPnNpemU8L2NvZGU+IGZpZWxkLjwvcD4KKyAq
CisgKiA8cD5JQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBi
ZSAxNi1hbGlnbmVkLgorICogVGhlIFVEYXRhSW5mbyBzdHJ1Y3QgYmVnaW5zIDQgYnl0ZXMgYWZ0
ZXIgdGhlIHN0YXJ0IG9mIHRoZSBkYXRhIGl0ZW0sCisgKiBzbyBpdCBpcyA0LWFsaWduZWQuCisg
KgorICogPHA+VGhlIHBsYXRmb3JtIGRhdGEgcHJvcGVydHkgZmllbGRzIGhlbHAgZGV0ZXJtaW5l
IGlmIGEgZGF0YQorICogZmlsZSBjYW4gYmUgZWZmaWNpZW50bHkgdXNlZCBvbiBhIGdpdmVuIG1h
Y2hpbmUuCisgKiBUaGUgcGFydGljdWxhciBmaWVsZHMgYXJlIG9mIGltcG9ydGFuY2Ugb25seSBp
ZiB0aGUgZGF0YQorICogaXMgYWZmZWN0ZWQgYnkgdGhlIHByb3BlcnRpZXMgLSBpZiB0aGVyZSBp
cyBpbnRlZ2VyIGRhdGEKKyAqIHdpdGggd29yZCBzaXplcyA+IDEgYnl0ZSwgY2hhciogdGV4dCwg
b3IgVUNoYXIqIHRleHQuPC9wPgorICoKKyAqIDxwPlRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhl
IDxjb2RlPnVkYXRhX29wZW5bQ2hvaWNlXSgpPC9jb2RlPgorICogZnVuY3Rpb25zIG1heSByZWpl
Y3QgZGF0YSBiYXNlZCBvbiB0aGUgdmFsdWUgaW4gPGNvZGU+aXNCaWdFbmRpYW48L2NvZGU+Lgor
ICogTm8gb3RoZXIgZmllbGQgaXMgdXNlZCBieSB0aGUgPGNvZGU+dWRhdGE8L2NvZGU+IEFQSSBp
bXBsZW1lbnRhdGlvbi48L3A+CisgKgorICogPHA+VGhlIDxjb2RlPmRhdGFGb3JtYXQ8L2NvZGU+
IG1heSBiZSB1c2VkIHRvIGlkZW50aWZ5CisgKiB0aGUga2luZCBvZiBkYXRhLCBlLmcuIGEgY29u
dmVydGVyIHRhYmxlLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+Zm9ybWF0VmVyc2lvbjwvY29k
ZT4gZmllbGQgc2hvdWxkIGJlIHVzZWQgdG8KKyAqIG1ha2Ugc3VyZSB0aGF0IHRoZSBmb3JtYXQg
Y2FuIGJlIGludGVycHJldGVkLgorICogSXQgbWF5IGJlIGEgZ29vZCBpZGVhIHRvIGNoZWNrIG9u
bHkgZm9yIHRoZSBvbmUgb3IgdHdvIGhpZ2hlc3QKKyAqIG9mIHRoZSB2ZXJzaW9uIGVsZW1lbnRz
IHRvIGFsbG93IHRoZSBkYXRhIG1lbW9yeSB0bworICogZ2V0IG1vcmUgb3Igc29tZXdoYXQgcmVh
cnJhbmdlZCBjb250ZW50cywgZm9yIGFzIGxvbmcKKyAqIGFzIHRoZSB1c2luZyBjb2RlIGNhbiBz
dGlsbCBpbnRlcnByZXQgdGhlIG9sZGVyIGNvbnRlbnRzLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNv
ZGU+ZGF0YVZlcnNpb248L2NvZGU+IGZpZWxkIGlzIGludGVuZGVkIHRvIGJlIGEKKyAqIGNvbW1v
biBwbGFjZSB0byBzdG9yZSB0aGUgc291cmNlIHZlcnNpb24gb2YgdGhlIGRhdGE7CisgKiBmb3Ig
ZGF0YSBmcm9tIHRoZSBVbmljb2RlIGNoYXJhY3RlciBkYXRhYmFzZSwgdGhpcyBjb3VsZAorICog
cmVmbGVjdCB0aGUgVW5pY29kZSB2ZXJzaW9uLjwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIC8qKiBzaXplb2YoVURhdGFJbmZvKQorICAgICAq
ICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50MTZfdCBzaXplOworCisgICAgLyoqIHVudXNl
ZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDE2X3QgcmVz
ZXJ2ZWRXb3JkOworCisgICAgLyogcGxhdGZvcm0gZGF0YSBwcm9wZXJ0aWVzICovCisgICAgLyoq
IDAgZm9yIGxpdHRsZS1lbmRpYW4gbWFjaGluZSwgMSBmb3IgYmlnLWVuZGlhbgorICAgICAqICBA
c3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50OF90IGlzQmlnRW5kaWFuOworCisgICAgLyoqIHNl
ZSBVX0NIQVJTRVRfRkFNSUxZIHZhbHVlcyBpbiB1dHlwZXMuaCAKKyAgICAgKiAgQHN0YWJsZSBJ
Q1UgMi4wKi8KKyAgICB1aW50OF90IGNoYXJzZXRGYW1pbHk7CisKKyAgICAvKiogc2l6ZW9mKFVD
aGFyKSwgb25lIG9mIHsgMSwgMiwgNCB9IAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAg
IHVpbnQ4X3Qgc2l6ZW9mVUNoYXI7CisKKyAgICAvKiogdW51c2VkLCBzZXQgdG8gMCAKKyAgICAg
KiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHJlc2VydmVkQnl0ZTsKKworICAgIC8q
KiBkYXRhIGZvcm1hdCBpZGVudGlmaWVyIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAg
IHVpbnQ4X3QgZGF0YUZvcm1hdFs0XTsKKworICAgIC8qKiB2ZXJzaW9uczogWzBdIG1ham9yIFsx
XSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLwor
ICAgIHVpbnQ4X3QgZm9ybWF0VmVyc2lvbls0XTsKKworICAgIC8qKiB2ZXJzaW9uczogWzBdIG1h
am9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAqICBAc3RhYmxlIElDVSAy
LjAqLworICAgIHVpbnQ4X3QgZGF0YVZlcnNpb25bNF07Cit9IFVEYXRhSW5mbzsKKworLyogQVBJ
IGZvciByZWFkaW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0qLworCisvKioKKyAqIEZvcndhcmQgZGVjbGFyYXRpb24gb2YgdGhlIGRh
dGEgbWVtb3J5IHR5cGUuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3Qg
VURhdGFNZW1vcnkgVURhdGFNZW1vcnk7CisKKy8qKgorICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9y
IHVkYXRhX29wZW5DaG9pY2UoKS4KKyAqIEBwYXJhbSBjb250ZXh0IHBhcmFtZXRlciBwYXNzZWQg
aW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICogQHBhcmFtIHR5cGUgVGhl
IHR5cGUgb2YgdGhlIGRhdGEgYXMgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgp
PC9jb2RlPi4KKyAqICAgICAgICAgICAgIEl0IG1heSBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAq
IEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBpbnRvIDxjb2RlPnVk
YXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiBAcGFyYW0gcEluZm8gQSBwb2ludGVyIHRvIHRo
ZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+IHN0cnVjdHVyZQorICogICAgICAgICAgICAgIG9mIGRh
dGEgdGhhdCBoYXMgYmVlbiBsb2FkZWQgYW5kIHdpbGwgYmUgcmV0dXJuZWQKKyAqICAgICAgICAg
ICAgICBieSA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+IGlmIHRoaXMgZnVuY3Rpb24K
KyAqICAgICAgICAgICAgICByZXR1cm5zIDxjb2RlPlRSVUU8L2NvZGU+LgorICogQHJldHVybiBU
UlVFIGlmIHRoZSBjdXJyZW50IGRhdGEgbWVtb3J5IGlzIGFjY2VwdGFibGUKKyAqIEBzdGFibGUg
SUNVIDIuMAorICovCit0eXBlZGVmIFVCb29sIFVfQ0FMTENPTlYKK1VEYXRhTWVtb3J5SXNBY2Nl
cHRhYmxlKHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VURhdGFJbmZvICpwSW5mbyk7CisKKworLyoqCisgKiBDb252ZW5pZW5jZSBmdW5jdGlvbi4KKyAq
IFRoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgYXMgPGNvZGU+dWRhdGFfb3BlbkNob2ljZTwv
Y29kZT4KKyAqIGV4Y2VwdCB0aGF0IGFueSBkYXRhIHRoYXQgbWF0Y2hlcyB0aGUgdHlwZSBhbmQg
bmFtZQorICogaXMgYXNzdW1lZCB0byBiZSBhY2NlcHRhYmxlLgorICogQHBhcmFtIHBhdGggU3Bl
Y2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFzZW5hbWUgZm9yIHRoZQorICogICAg
ICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0uCisgKiAgICAg
ICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRhdGEuCisgKiBAcGFyYW0gdHlwZSBB
IHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxvYWRlZC4KKyAq
ICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBidW5kbGVzIGFyZSBsb2FkZWQgd2l0
aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVyc2lvbiB0YWJsZXMgd2l0aCB0eXBl
ICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwvY29kZT4gb3Ig
ZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgbmFtZSBv
ZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIEFuIElDVSBVRXJyb3JDb2RlIHBhcmFt
ZXRlci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcmV0dXJuIEEgcG9p
bnRlciAoaGFuZGxlKSB0byBhIGRhdGEgbWVtb3J5IG9iamVjdCwgb3IgPGNvZGU+TlVMTDwvY29k
ZT4KKyAqICAgICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzLiBDYWxsIDxjb2RlPnVkYXRhX2dldE1l
bW9yeSgpPC9jb2RlPgorICogICAgICAgICB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBhY3R1YWwg
ZGF0YS4KKyAqCisgKiBAc2VlIHVkYXRhX29wZW5DaG9pY2UKKyAqIEBzdGFibGUgSUNVIDIuMAor
ICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRhdGFfb3Blbihjb25zdCBj
aGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAg
ICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBEYXRhIGxvYWRpbmcgZnVuY3Rp
b24uCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZmluZCBhbmQgbG9hZCBlZmZpY2llbnRs
eSBkYXRhIGZvcgorICogSUNVIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgSUNVLgorICogSXQgcHJv
dmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgYWxsb3dzIHRvIHNwZWNpZnkgYSBkYXRh
CisgKiB0eXBlIGFuZCBuYW1lIHRvIGZpbmQgYW5kIGxvYWQgdGhlIGRhdGEuCisgKgorICogPHA+
VGhlIGltcGxlbWVudGF0aW9uIGRlcGVuZHMgb24gcGxhdGZvcm0gcHJvcGVydGllcyBhbmQgdXNl
ciBwcmVmZXJlbmNlcworICogYW5kIG1heSBpbnZvbHZlIGxvYWRpbmcgc2hhcmVkIGxpYnJhcmll
cyAoRExMcyksIG1hcHBpbmcKKyAqIGZpbGVzIGludG8gbWVtb3J5LCBvciBmb3BlbigpL2ZyZWFk
KCkgZmlsZXMuCisgKiBJdCBtYXkgYWxzbyBpbnZvbHZlIHVzaW5nIHN0YXRpYyBtZW1vcnkgb3Ig
ZGF0YWJhc2UgcXVlcmllcyBldGMuCisgKiBTZXZlcmFsIG9yIGFsbCBkYXRhIGl0ZW1zIG1heSBi
ZSBjb21iaW5lZCBpbnRvIG9uZSBlbnRpdHkKKyAqIChETEwsIG1lbW9yeS1tYXBwYWJsZSBmaWxl
KS48L3A+CisgKgorICogPHA+VGhlIGRhdGEgaXMgYWx3YXlzIHByZWNlZGVkIGJ5IGEgaGVhZGVy
IHRoYXQgaW5jbHVkZXMKKyAqIGEgPGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1Y3R1cmUuCisg
KiBUaGUgY2FsbGVyJ3MgPGNvZGU+aXNBY2NlcHRhYmxlKCk8L2NvZGU+IGZ1bmN0aW9uIGlzIGNh
bGxlZCB0byBtYWtlCisgKiBzdXJlIHRoYXQgdGhlIGRhdGEgaXMgdXNlZnVsLiBJdCBtYXkgYmUg
Y2FsbGVkIHNldmVyYWwgdGltZXMgaWYgaXQKKyAqIHJlamVjdHMgdGhlIGRhdGEgYW5kIHRoZXJl
IGlzIG1vcmUgdGhhbiBvbmUgbG9jYXRpb24gd2l0aCBkYXRhCisgKiBtYXRjaGluZyB0aGUgdHlw
ZSBhbmQgbmFtZS48L3A+CisgKgorICogPHA+SWYgPGNvZGU+cGF0aD09TlVMTDwvY29kZT4sIHRo
ZW4gSUNVIGRhdGEgaXMgbG9hZGVkLgorICogT3RoZXJ3aXNlLCBpdCBpcyBzZXBhcmF0ZWQgaW50
byBhIGJhc2VuYW1lIGFuZCBhIGJhc2VuYW1lLWxlc3MgZGlyZWN0b3J5IHN0cmluZy4KKyAqIFRo
ZSBiYXNlbmFtZSBpcyB1c2VkIGFzIHRoZSBkYXRhIHBhY2thZ2UgbmFtZSwgYW5kIHRoZSBkaXJl
Y3RvcnkgaXMKKyAqIGxvZ2ljYWxseSBwcmVwZW5kZWQgdG8gdGhlIElDVSBkYXRhIGRpcmVjdG9y
eSBzdHJpbmcuPC9wPgorICoKKyAqIDxwPkZvciBkZXRhaWxzIGFib3V0IElDVSBkYXRhIGxvYWRp
bmcgc2VlIHRoZSBVc2VyIEd1aWRlCisgKiBEYXRhIE1hbmFnZW1lbnQgY2hhcHRlci4gKGh0dHA6
Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL2ljdWRhdGEuaHRtbCk8L3A+CisgKgorICogQHBh
cmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFzZW5hbWUgZm9y
IHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUgZmlsZSBzeXN0
ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRhdGEuCisgKiBA
cGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRvIGJl
IGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBidW5kbGVzIGFy
ZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVyc2lvbiB0YWJs
ZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUgPGNvZGU+TlVM
TDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0IHNwZWNpZmll
cyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBpc0FjY2VwdGFibGUgVGhpcyBmdW5j
dGlvbiBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRoYXQgbG9hZGVkIGRhdGEKKyAqICAgICAgICAgICAg
ICAgICAgICAgaXMgdXNlZnVsIGZvciB0aGUgY2xpZW50IGNvZGUuIElmIGl0IHJldHVybnMgRkFM
U0UKKyAqICAgICAgICAgICAgICAgICAgICAgZm9yIGFsbCBkYXRhIGl0ZW1zLCB0aGVuIDxjb2Rl
PnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4KKyAqICAgICAgICAgICAgICAgICAgICAgd2lsbCBy
ZXR1cm4gd2l0aCBhbiBlcnJvci4KKyAqIEBwYXJhbSBjb250ZXh0IEFyYml0cmFyeSBwYXJhbWV0
ZXIgdG8gYmUgcGFzc2VkIGludG8gaXNBY2NlcHRhYmxlLgorICogQHBhcmFtIHBFcnJvckNvZGUg
QW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJdCBtdXN0IG5vdCBiZSA8Y29kZT5OVUxMPC9j
b2RlPi4KKyAqIEByZXR1cm4gQSBwb2ludGVyIChoYW5kbGUpIHRvIGEgZGF0YSBtZW1vcnkgb2Jq
ZWN0LCBvciA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAgICBpZiBhbiBlcnJvciBvY2N1cnMu
IENhbGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+CisgKiAgICAgICAgIHRvIGdldCBh
IHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1Vf
U1RBQkxFIFVEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1ZGF0YV9vcGVuQ2hvaWNlKGNvbnN0IGNo
YXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAg
ICAgICAgIFVEYXRhTWVtb3J5SXNBY2NlcHRhYmxlICppc0FjY2VwdGFibGUsIHZvaWQgKmNvbnRl
eHQsCisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAq
IENsb3NlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQg
dG8gYWxsb3cgdGhlIHN5c3RlbSB0bworICogcmVsZWFzZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB3
aXRoIHRoaXMgZGF0YSBtZW1vcnkuCisgKiBAcGFyYW0gcERhdGEgVGhlIHBvaW50ZXIgdG8gZGF0
YSBtZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgdm9pZCBV
X0VYUE9SVDIKK3VkYXRhX2Nsb3NlKFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKyNpZiBVX1NIT1df
Q1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFxjbGFzcyBMb2Nh
bFVEYXRhTWVtb3J5UG9pbnRlcgorICogIlNtYXJ0IHBvaW50ZXIiIGNsYXNzLCBjbG9zZXMgYSBV
RGF0YU1lbW9yeSB2aWEgdWRhdGFfY2xvc2UoKS4KKyAqIEZvciBtb3N0IG1ldGhvZHMgc2VlIHRo
ZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKgorICogQHNlZSBMb2NhbFBvaW50ZXJC
YXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0YWJsZSBJQ1UgNC40CisgKi8KK1VfREVG
SU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVEYXRhTWVtb3J5UG9pbnRlciwgVURhdGFNZW1v
cnksIHVkYXRhX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZgorCisvKioKKyAq
IEdldCB0aGUgcG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEgaW5zaWRlIHRoZSBkYXRhIG1lbW9y
eS4KKyAqIFRoZSBkYXRhIGlzIHJlYWQtb25seS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0
IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICoKKyAqIEBwYXJh
bSBwRGF0YSBUaGUgcG9pbnRlciB0byBkYXRhIG1lbW9yeSBvYmplY3QKKyAqIEBzdGFibGUgSUNV
IDIuMAorICovCitVX1NUQUJMRSBjb25zdCB2b2lkICogVV9FWFBPUlQyCit1ZGF0YV9nZXRNZW1v
cnkoVURhdGFNZW1vcnkgKnBEYXRhKTsKKworLyoqCisgKiBHZXQgdGhlIGluZm9ybWF0aW9uIGZy
b20gdGhlIGRhdGEgbWVtb3J5IGhlYWRlci4KKyAqIFRoaXMgYWxsb3dzIHRvIGdldCBhY2Nlc3Mg
dG8gdGhlIGhlYWRlciBjb250YWluaW5nCisgKiBwbGF0Zm9ybSBkYXRhIHByb3BlcnRpZXMgZXRj
LiB3aGljaCBpcyBub3QgcGFydCBvZgorICogdGhlIGRhdGEgaXRzZWxmIGFuZCBjYW4gdGhlcmVm
b3JlIG5vdCBiZSBhY2Nlc3NlZAorICogdmlhIHRoZSBwb2ludGVyIHRoYXQgPGNvZGU+dWRhdGFf
Z2V0TWVtb3J5KCk8L2NvZGU+IHJldHVybnMuCisgKgorICogQHBhcmFtIHBEYXRhIHBvaW50ZXIg
dG8gdGhlIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHBhcmFtIHBJbmZvIHBvaW50ZXIgdG8gYSBV
RGF0YUluZm8gb2JqZWN0OworICogICAgICAgICAgICAgIGl0cyA8Y29kZT5zaXplPC9jb2RlPiBm
aWVsZCBtdXN0IGJlIHNldCBjb3JyZWN0bHksCisgKiAgICAgICAgICAgICAgdHlwaWNhbGx5IHRv
IDxjb2RlPnNpemVvZihVRGF0YUluZm8pPC9jb2RlPi4KKyAqCisgKiA8Y29kZT4qcEluZm88L2Nv
ZGU+IHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIFVEYXRhSW5mbyBzdHJ1Y3R1cmUKKyAqIGluIHRo
ZSBkYXRhIG1lbW9yeSBvYmplY3QuIElmIHRoaXMgc3RydWN0dXJlIGlzIHNtYWxsZXIgdGhhbgor
ICogPGNvZGU+cEluZm8tPnNpemU8L2NvZGU+LCB0aGVuIHRoZSA8Y29kZT5zaXplPC9jb2RlPiB3
aWxsIGJlCisgKiBhZGp1c3RlZCBhbmQgb25seSBwYXJ0IG9mIHRoZSBzdHJ1Y3R1cmUgd2lsbCBi
ZSBmaWxsZWQuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9S
VDIKK3VkYXRhX2dldEluZm8oVURhdGFNZW1vcnkgKnBEYXRhLCBVRGF0YUluZm8gKnBJbmZvKTsK
KworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNVIGRhdGEgbG9h
ZGluZyBwcm9jZXNzIGFuZAorICogYWxsb3dzIHlvdSB0byBmb3JjZSBJQ1UncyBzeXN0ZW0gZGF0
YSB0byBjb21lIG91dCBvZiBhIHVzZXItc3BlY2lmaWVkCisgKiBhcmVhIGluIG1lbW9yeS4KKyAq
CisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAx
Ni1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL2ljdWRh
dGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBpcyB0aGF0IG9mIHRoZSBpY3UgY29t
bW9uIGRhdGEgZmlsZSwgYXMgaXMKKyAqIGdlbmVyYXRlZCBieSB0aGUgcGtnZGF0YSB0b29sIHdp
dGggbW9kZT1jb21tb24gb3IgbW9kZT1kbGwuCisgKiBZb3UgY2FuIHJlYWQgaW4gYSB3aG9sZSBj
b21tb24gbW9kZSBmaWxlIGFuZCBwYXNzIHRoZSBhZGRyZXNzIHRvIHRoZSBzdGFydCBvZiB0aGUK
KyAqIGRhdGEsIG9yICh3aXRoIHRoZSBhcHByb3ByaWF0ZSBsaW5rIG9wdGlvbnMpIHBhc3MgaW4g
dGhlIHBvaW50ZXIgdG8KKyAqIHRoZSBkYXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVkIGZyb20gYSBk
bGwgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0sCisgKiBhcyBzaG93biBpbiB0aGlzIGNvZGU6Cisg
KgorICogICAgICAgZXh0ZXJuIGNvbnN0IGNoYXIgVV9JTVBPUlQgVV9JQ1VEQVRBX0VOVFJZX1BP
SU5UIFtdOworICogICAgICAgIC8vIFVfSUNVREFUQV9FTlRSWV9QT0lOVCBpcyBzYW1lIGFzIGVu
dHJ5IHBvaW50IHNwZWNpZmllZCB0byBwa2dkYXRhIHRvb2wKKyAqICAgICAgIFVFcnJvckNvZGUg
IHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAqCisgKiAgICAgICB1ZGF0YV9zZXRDb21tb25EYXRh
KCZVX0lDVURBVEFfRU5UUllfUE9JTlQsICZzdGF0dXMpOworICoKKyAqIEl0IGlzIGltcG9ydGFu
dCB0aGF0IHRoZSBkZWNsYXJhdGlvbiBiZSBhcyBhYm92ZS4gVGhlIGVudHJ5IHBvaW50CisgKiBt
dXN0IG5vdCBiZSBkZWNsYXJlZCBhcyBhbiBleHRlcm4gdm9pZCouCisgKgorICogU3RhcnRpbmcg
d2l0aCBJQ1UgNC40LCBpdCBpcyBwb3NzaWJsZSB0byBzZXQgc2V2ZXJhbCBkYXRhIHBhY2thZ2Vz
LAorICogb25lIHBlciBjYWxsIHRvIHRoaXMgZnVuY3Rpb24uCisgKiB1ZGF0YV9vcGVuKCkgd2ls
bCBsb29rIGZvciBkYXRhIGluIHRoZSBtdWx0aXBsZSBkYXRhIHBhY2thZ2VzIGluIHRoZSBvcmRl
cgorICogaW4gd2hpY2ggdGhleSB3ZXJlIHNldC4KKyAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGlu
a2VkLWluIG9yIGRlZmF1bHQtbmFtZSBJQ1UgLmRhdGEgcGFja2FnZSBpbiB0aGUKKyAqIHNlYXJj
aCBsaXN0IGRlcGVuZHMgb24gd2hlbiB0aGUgZmlyc3QgZGF0YSBpdGVtIGlzIGxvYWRlZCB0aGF0
IGlzIG5vdCBjb250YWluZWQKKyAqIGluIHRoZSBhbHJlYWR5IGV4cGxpY2l0bHkgc2V0IHBhY2th
Z2VzLgorICogSWYgZGF0YSB3YXMgbG9hZGVkIGltcGxpY2l0bHkgYmVmb3JlIHRoZSBmaXJzdCBj
YWxsIHRvIHRoaXMgZnVuY3Rpb24KKyAqIChmb3IgZXhhbXBsZSwgdmlhIG9wZW5pbmcgYSBjb252
ZXJ0ZXIsIGNvbnN0cnVjdGluZyBhIFVuaWNvZGVTdHJpbmcKKyAqIGZyb20gZGVmYXVsdC1jb2Rl
cGFnZSBkYXRhLCB1c2luZyBmb3JtYXR0aW5nIG9yIGNvbGxhdGlvbiBBUElzLCBldGMuKSwKKyAq
IHRoZW4gdGhlIGRlZmF1bHQgZGF0YSB3aWxsIGJlIGZpcnN0IGluIHRoZSBsaXN0LgorICoKKyAq
IFRoaXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVjdCBvbiBhcHBsaWNhdGlvbiAobm9uIElDVSkgZGF0
YS4gIFNlZSB1ZGF0YV9zZXRBcHBEYXRhKCkKKyAqIGZvciBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkg
Zm9yIGFwcGxpY2F0aW9uIGRhdGEuCisgKgorICogQHBhcmFtIGRhdGEgcG9pbnRlciB0byBJQ1Ug
Y29tbW9uIGRhdGEKKyAqIEBwYXJhbSBlcnIgb3V0Z29pbmcgZXJyb3Igc3RhdHVzIDxjb2RlPlVf
VVNJTkdfREVGQVVMVF9XQVJOSU5HLCBVX1VOU1VQUE9SVEVEX0VSUk9SPC9jb2RlPgorICogQHN0
YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRDb21t
b25EYXRhKGNvbnN0IHZvaWQgKmRhdGEsIFVFcnJvckNvZGUgKmVycik7CisKKworLyoqCisgKiBU
aGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNVIGRhdGEgbG9hZGluZyBwcm9jZXNz
IGZvciBhcHBsaWNhdGlvbi1zcGVjaWZpYworICogZGF0YSBhbmQgYWxsb3dzIHlvdSB0byBmb3Jj
ZSB0aGUgaXQgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNpZmllZAorICogcG9pbnRlci4KKyAq
CisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAx
Ni1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL2ljdWRh
dGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBpcyB0aGF0IG9mIHRoZSBpY3UgY29t
bW9uIGRhdGEgZmlsZSwgbGlrZSAnaWN1ZHQyNmwuZGF0JworICogb3IgdGhlIGNvcnJlc3BvbmRp
bmcgc2hhcmVkIGxpYnJhcnkgKERMTCkgZmlsZS4KKyAqIFRoZSBhcHBsaWNhdGlvbiBtdXN0IHJl
YWQgaW4gb3Igb3RoZXJ3aXNlIGNvbnN0cnVjdCBhbiBpbWFnZSBvZiB0aGUgZGF0YSBhbmQgdGhl
bgorICogcGFzcyB0aGUgYWRkcmVzcyBvZiBpdCB0byB0aGlzIGZ1bmN0aW9uLgorICoKKyAqCisg
KiBXYXJuaW5nOiAgc2V0QXBwRGF0YSB3aWxsIHNldCBhIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5H
IGNvZGUgaWYKKyAqICAgICAgICAgICBkYXRhIHdpdGggdGhlIHNwZWNpZmVkIHBhdGggdGhhdCBo
YXMgYWxyZWFkeSBiZWVuIG9wZW5lZCwgb3IKKyAqICAgICAgICAgICBpZiBzZXRBcHBEYXRhIHdp
dGggdGhlIHNhbWUgcGF0aCBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZC4KKyAqICAgICAgICAgICBB
bnkgc3VjaCBjYWxscyB0byBzZXRBcHBEYXRhIHdpbGwgaGF2ZSBubyBlZmZlY3QuCisgKgorICoK
KyAqIEBwYXJhbSBwYWNrYWdlTmFtZSB0aGUgcGFja2FnZSBuYW1lIGJ5IHdoaWNoIHRoZSBhcHBs
aWNhdGlvbiB3aWxsIHJlZmVyCisgKiAgICAgICAgICAgICB0byAob3BlbikgdGhpcyBkYXRhCisg
KiBAcGFyYW0gZGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhCisgKiBAcGFyYW0gZXJyIG91dGdvaW5n
IGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9VTlNVUFBPUlRF
RF9FUlJPUjwvY29kZT4KKyAqIEBzZWUgdWRhdGFfc2V0Q29tbW9uRGF0YQorICogQHN0YWJsZSBJ
Q1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRBcHBEYXRhKGNv
bnN0IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25zdCB2b2lkICpkYXRhLCBVRXJyb3JDb2RlICplcnIp
OworCisvKioKKyAqIFBvc3NpYmxlIHNldHRpbmdzIGZvciB1ZGF0YV9zZXRGaWxlQWNjZXNzKCkK
KyAqIEBzZWUgdWRhdGFfc2V0RmlsZUFjY2VzcworICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK3R5
cGVkZWYgZW51bSBVRGF0YUZpbGVBY2Nlc3MgeworICAgIC8qKiBJQ1UgbG9va3MgZm9yIGRhdGEg
aW4gc2luZ2xlIGZpbGVzIGZpcnN0LCB0aGVuIGluIHBhY2thZ2VzLiAoZGVmYXVsdCkgQHN0YWJs
ZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRVNfRklSU1QsCisgICAgLyoqIEFuIGFsaWFzIGZv
ciB0aGUgZGVmYXVsdCBhY2Nlc3MgbW9kZS4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFf
REVGQVVMVF9BQ0NFU1MgPSBVREFUQV9GSUxFU19GSVJTVCwKKyAgICAvKiogSUNVIG9ubHkgbG9h
ZHMgZGF0YSBmcm9tIHBhY2thZ2VzLCBub3QgZnJvbSBzaW5nbGUgZmlsZXMuIEBzdGFibGUgSUNV
IDMuNCAqLworICAgIFVEQVRBX09OTFlfUEFDS0FHRVMsCisgICAgLyoqIElDVSBsb2FkcyBkYXRh
IGZyb20gcGFja2FnZXMgZmlyc3QsIGFuZCBvbmx5IGZyb20gc2luZ2xlIGZpbGVzCisgICAgICAg
IGlmIHRoZSBkYXRhIGNhbm5vdCBiZSBmb3VuZCBpbiBhIHBhY2thZ2UuIEBzdGFibGUgSUNVIDMu
NCAqLworICAgIFVEQVRBX1BBQ0tBR0VTX0ZJUlNULAorICAgIC8qKiBJQ1UgZG9lcyBub3QgYWNj
ZXNzIHRoZSBmaWxlIHN5c3RlbSBmb3IgZGF0YSBsb2FkaW5nLiBAc3RhYmxlIElDVSAzLjQgKi8K
KyAgICBVREFUQV9OT19GSUxFUywKKyAgICAvKiogTnVtYmVyIG9mIHJlYWwgVURhdGFGaWxlQWNj
ZXNzIHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRV9BQ0NFU1NfQ09V
TlQKK30gVURhdGFGaWxlQWNjZXNzOworCisvKioKKyAqIFRoaXMgZnVuY3Rpb24gbWF5IGJlIGNh
bGxlZCB0byBjb250cm9sIGhvdyBJQ1UgbG9hZHMgZGF0YS4gSXQgbXVzdCBiZSBjYWxsZWQKKyAq
IGJlZm9yZSBhbnkgSUNVIGRhdGEgaXMgbG9hZGVkLCBpbmNsdWRpbmcgYXBwbGljYXRpb24gZGF0
YSBsb2FkZWQgd2l0aCAKKyAqIHVyZXMvUmVzb3VyY2VCdW5kbGUgb3IgdWRhdGEgQVBJcy4gVGhp
cyBmdW5jdGlvbiBpcyBub3QgbXVsdGl0aHJlYWQgc2FmZS4gIAorICogVGhlIHJlc3VsdHMgb2Yg
Y2FsbGluZyBpdCB3aGlsZSBvdGhlciB0aHJlYWRzIGFyZSBsb2FkaW5nIGRhdGEgYXJlIHVuZGVm
aW5lZC4KKyAqIEBwYXJhbSBhY2Nlc3MgVGhlIHR5cGUgb2YgZmlsZSBhY2Nlc3MgdG8gYmUgdXNl
ZAorICogQHBhcmFtIHN0YXR1cyBFcnJvciBjb2RlLgorICogQHNlZSBVRGF0YUZpbGVBY2Nlc3MK
KyAqIEBzdGFibGUgSUNVIDMuNCAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRh
X3NldEZpbGVBY2Nlc3MoVURhdGFGaWxlQWNjZXNzIGFjY2VzcywgVUVycm9yQ29kZSAqc3RhdHVz
KTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91
bmljb2RlL3VtaXNjLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDg1NDUxZmM3NjdjMDU4MzVmNmMxNWY1NjZmMzU2MmUyZDRhZjgzNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1pc2MuaApAQCAtMCwwICsxLDYwIEBACisv
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA2LCBJbnRlcm5hdGlv
bmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdW1pc2MuaAor
KiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQpCisq
ICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDE5OTlvY3QxNQorKiAgIGNyZWF0
ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisjaWZuZGVmIFVNSVNDX0gKKyNkZWZpbmUg
VU1JU0NfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworLyoqCisgKiBcZmlsZQor
ICogXGJyaWVmICBDIEFQSTptaXNjIGRlZmluaXRpb25zIAorICoKKyAqICBUaGlzIGZpbGUgY29u
dGFpbnMgbWlzY2VsbGFuZW91cyBkZWZpbml0aW9ucyBmb3IgdGhlIEMgQVBJcy4gCisgKi8KKwor
VV9DREVDTF9CRUdJTgorCisvKiogQSBzdHJ1Y3QgcmVwcmVzZW50aW5nIGEgcmFuZ2Ugb2YgdGV4
dCBjb250YWluaW5nIGEgc3BlY2lmaWMgZmllbGQgCisgKiAgQHN0YWJsZSBJQ1UgMi4wCisgKi8K
K3R5cGVkZWYgc3RydWN0IFVGaWVsZFBvc2l0aW9uIHsKKyAgLyoqCisgICAqIFRoZSBmaWVsZCAK
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90IGZpZWxkOworICAvKioKKyAg
ICogVGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHJhbmdlIGNvbnRhaW5pbmcgZmllbGQgCisgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBiZWdpbkluZGV4OworICAvKiogCisgICAq
IFRoZSBsaW1pdCBvZiB0aGUgdGV4dCByYW5nZSBjb250YWluaW5nIGZpZWxkIAorICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgZW5kSW5kZXg7Cit9IFVGaWVsZFBvc2l0aW9u
OworCisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorLyoqCisgKiBPcGFxdWUgdHlwZSByZXR1cm5l
ZCBieSByZWdpc3Rlckluc3RhbmNlLCByZWdpc3RlckZhY3RvcnkgYW5kIHVucmVnaXN0ZXIgZm9y
IHNlcnZpY2UgcmVnaXN0cmF0aW9uLgorICogQHN0YWJsZSBJQ1UgMi42CisgKi8KK3R5cGVkZWYg
Y29uc3Qgdm9pZCogVVJlZ2lzdHJ5S2V5OworI2VuZGlmCisKK1VfQ0RFQ0xfRU5ECisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RG
L3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCBlMzRkMzdmOTM2ZWNmM2I4MjcxMDIzMDAxNzE3ZDk4
ZDdjMzczZjQ4Li5hZDRhY2VjYjdkZGRkYTg3YmYwMjdkOWRhYTFiYTNjYzdiMDE2MTMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9DTWFrZUxpc3RzLnR4dApAQCAtMjk0LDYgKzI5NCw0MiBAQCBpZiAoTk9UIFVTRV9TWVNURU1f
TUFMTE9DKQogICAgIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMgYm1hbGxvYykKIGVuZGlmICgp
CiAKK3NldChXVEZfQlJFQUtJTkdfUlVMRVNfU09VUkNFUworICAgIHRleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKKyAgICB0ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQKKyAgICB0ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKKyAgICB0
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQK
KykKKworbWFjcm8oR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMgX2lucHV0IF9zeW1ib2xOYW1lIF9v
dXRwdXQpCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgJHtfb3V0cHV0
fQorICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQorICAgICAgICBERVBFTkRTICR7Q01B
S0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKKyAgICAgICAgQ09N
TUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dURl9ESVJ9L3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IC1pbmNsdWRlRGVmaW5lcyAke19zeW1i
b2xOYW1lfVJ1bGVzICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VSUkVO
VF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1
ZS50eHQgPiAke19vdXRwdXR9CisgICAgICAgIFZFUkJBVElNKQorICAgIGxpc3QoQVBQRU5EIFdU
Rl9TT1VSQ0VTICR7X291dHB1dH0pCisgICAgQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtfaW5w
dXR9ICR7X291dHB1dH0pCitlbmRtYWNybygpCisKK2ZvcmVhY2ggKF9maWxlICR7V1RGX0JSRUFL
SU5HX1JVTEVTX1NPVVJDRVN9KQorICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtf
ZmlsZX0gTkFNRV9XRSkKKyAgICBHRU5FUkFURV9CUkVBS0lOR19SVUxFUygke0NNQUtFX0NVUlJF
TlRfU09VUkNFX0RJUn0vJHtfZmlsZX0gJHtfbmFtZX0gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJ
Un0vQnJlYWtpbmdSdWxlcy8ke19uYW1lfS5jcHApCitlbmRmb3JlYWNoICgpCisKK2FkZF9jdXN0
b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtp
bmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgTUFJTl9ERVBFTkRF
TkNZICR7V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVs
ZVN0cmluZ3MucHkKKyAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0
L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorICAgIENPTU1B
TkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAtaW5jbHVkZURlZmluZXMgY3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFr
aW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCA+ICR7REVSSVZFRF9TT1VS
Q0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNw
cAorICAgIFZFUkJBVElNKQorbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJD
RVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
KQorQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3Rl
eHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICR7REVSSVZF
RF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLmNwcCkKKwogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKICAgICB1bmljb2RlL2ljdS9Db2xs
YXRvcklDVS5jcHAKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZj
MjRhYTY0MWIyMTc4Y2Y3MmY2ZjBiZGVhYTE0YzNmODMxMzg0OTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0wLDAgKzEsNzIgQEAKKyMg
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK0JSRUFLSU5HX1JVTEVTX0ZJTEVT
ID0gXAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmJyayBc
CisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmJyayBcCisgICAg
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmJyayBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuYnJrIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5icmsgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5icmsgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5icmsgXAorICAg
IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5icmsgXAorICAg
IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5icmsKKwor
QlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlM9JChCUkVBS0lOR19SVUxFU19GSUxFUzouYnJrPS5j
cHApCisKK2lmZXEgKCQoc2hlbGwgJChDQykgLXN0ZD1nbnUrKzExIC14IGMrKyAtRSAtUCAtZE0g
JChTREtfRkxBR1MpICQoRlJBTUVXT1JLX0ZMQUdTKSAkKEhFQURFUl9GTEFHUykgLUkgJChXVEYp
IC1pbmNsdWRlICIkKFdURikvd3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8IGdyZXAgJyBXVEZf
UExBVEZPUk1fSU9TICcgfCBjdXQgLWQnICcgLWYzKSwgMSkKKyAgICBXVEZfUExBVEZPUk1fSU9T
ID0gMQorZWxzZQorICAgIFdURl9QTEFURk9STV9JT1MgPSAwCitlbmRpZgorCitpZmVxICgkKFdU
Rl9QTEFURk9STV9JT1MpLCAxKQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09S
X01PVkVNRU5UID0gMAorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAwCitlbHNlCisJQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQgPSAkKEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVCkKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMQorZW5kaWYKKwor
REVQRU5ERU5DSUVTID0gJChCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUykKKworaWZlcSAoJChI
QVZFX0lDVUdFTkJSSyksIDEpCitERVBFTkRFTkNJRVMgKz0gJChCUkVBS0lOR19SVUxFU19GSUxF
UykKK2VuZGlmCisKK2FsbCA6ICQoREVQRU5ERU5DSUVTKQorCitCcmVha2luZ1J1bGVzLyUuYnJr
IDogQnJlYWtpbmdSdWxlcy8lLnBwCisJaWN1Z2VuYnJrIC1jIC1yICQ8IC1vICRACisKK0JyZWFr
aW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCA6IEJyZWFraW5nUnVsZXMv
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwCisJcHl0aG9uICQoV1RGKS9TY3JpcHRzL0dl
bmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMg
JDwgPiAkQAorCitCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS5jcHAgOiBCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS5wcAorCXB5dGhvbiAkKFdURikvU2NyaXB0cy9HZW5l
cmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgbGluZUJyZWFrSXRlcmF0b3IkKlJ1bGVzICQ8ID4g
JEAKKworQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMucHAgOiAkKFdU
Rikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0
CisJLXVuaWZkZWYgLURBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9JChBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVOVCkgLURIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRT
PSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUykgLW8gJEAgJDwKKworQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvciUucHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvciUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisJLWNhdCAkPyB8IHVuaWZkZWYgLURBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQ9JChBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQpIC1ESEFWRV9FWFRSQV9J
Q1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRACmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExZDQxOWJhZjg4ZGYzMTg5NTUw
NDdjZTNiNDVkMmZlNTRiZGMyZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApAQCAtMCww
ICsxLDE3NiBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5
cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNo
YXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKKyMgPGh0dHA6Ly9zb3VyY2Uu
aWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2Rh
dGEvYnJraXRyLz4uCisjIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9tIHRoZSBvcmlnaW5hbCBv
bmVzIGFyZSBsaXN0ZWQgYmVsb3c6CisjICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVy
X0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFj
aW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7CisjICogUmVtb3Zl
ZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVuZCBj
aGFyYWN0ZXJzIChCdWcgMjQzNDIpOworIyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1
cnNvciBmcm9tIG1vdmluZyBhZnRlciB2aXJhbWEgc2lnbnMgb2YgSW5kaWMgbGFuZ3VhZ2VzIGV4
Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwgYW5kOworIyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVu
dCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2Fy
YSB2b2ljZWQgbWFya3MuCisjICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBz
eW1ib2xzLgorCiskQ1IgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ1J9XTsK
KyRMRiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1dOworJENvbnRyb2wg
PSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsKKyRWb2ljZU1hcmtzID0g
W1x1RkY5RVx1RkY5Rl07ICMgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FuYSB2b2ljZWQgbWFy
a3MKKyRFeHRlbmQgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2lj
ZU1hcmtzIC0gW1x1MEUzMCBcdTBFMzIgXHUwRTQ1IFx1MEVCMCBcdTBFQjJdXTsKKyRTcGFjaW5n
TWFyayA9IFtbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31dIC0gJEV4dGVuZF07
CiskTCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOworJFYgICAgICAg
PSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFZ9XTsKKyRUICAgICAgID0gW1xwe0dyYXBo
ZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07CiskTFYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVy
X0JyZWFrID0gTFZ9XTsKKyRMVlQgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBM
VlR9XTsKKyRIaW4wICAgID0gW1x1MDkwNS1cdTA5MzldOyAjIERldmFuYWdhcmkgTGV0dGVyIEEs
Li4uLEhhCiskSGluViAgICA9IFx1MDk0RDsgIyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCiskSGlu
MSAgICA9IFtcdTA5MTUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRlciBLYSwuLi4sSGEKKyRC
ZW4wICAgID0gW1x1MDk4NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCiskQmVu
ViAgICA9IFx1MDlDRDsgIyBCZW5nYWxpIFNpZ24gVmlyYW1hCiskQmVuMSAgICA9IFtcdTA5OTUt
XHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEKKyRQYW4wICAgID0gW1x1MEEwNS1c
dTBBMzldOyAjIEd1cm11a2hpIExldHRlciBBLC4uLixIYQorJFBhblYgICAgPSBcdTBBNEQ7ICMg
R3VybXVraGkgU2lnbiBWaXJhbWEKKyRQYW4xICAgID0gW1x1MEExNS1cdTBBMzldOyAjIEd1cm11
a2hpIExldHRlciBLYSwuLi4sSGEKKyRHdWowICAgID0gW1x1MEE4NS1cdTBBQjldOyAjIEd1amFy
YXRpIExldHRlciBBLC4uLixIYQorJEd1alYgICAgPSBcdTBBQ0Q7ICMgR3VqYXJhdGkgU2lnbiBW
aXJhbWEKKyRHdWoxICAgID0gW1x1MEE5NS1cdTBBQjldOyAjIEd1amFyYXRpIExldHRlciBLYSwu
Li4sSGEKKyRPcmkwICAgID0gW1x1MEIwNS1cdTBCMzldOyAjIE9yaXlhIExldHRlciBBLC4uLixI
YQorJE9yaVYgICAgPSBcdTBCNEQ7ICMgT3JpeWEgU2lnbiBWaXJhbWEKKyRPcmkxICAgID0gW1x1
MEIxNS1cdTBCMzldOyAjIE9yaXlhIExldHRlciBLYSwuLi4sSGEKKyRUZWwwICAgID0gW1x1MEMw
NS1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKKyRUZWxWICAgID0gXHUwQzREOyAj
IFRlbHVndSBTaWduIFZpcmFtYQorJFRlbDEgICAgPSBbXHUwQzE0LVx1MEMzOV07ICMgVGVsdWd1
IExldHRlciBLYSwuLi4sSGEKKyRLYW4wICAgID0gW1x1MEM4NS1cdTBDQjldOyAjIEthbm5hZGEg
TGV0dGVyIEEsLi4uLEhhCiskS2FuViAgICA9IFx1MENDRDsgIyBLYW5uYWRhIFNpZ24gVmlyYW1h
CiskS2FuMSAgICA9IFtcdTBDOTUtXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4uLixIYQor
JE1hbDAgICAgPSBbXHUwRDA1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExldHRlciBBLC4uLixIYSAK
KyRNYWxWICAgID0gXHUwRDREOyAjIE1hbGF5YWxhbSBTaWduIFZpcmFtYQorJE1hbDEgICAgPSBb
XHUwRDE1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQorJFJJICAgICAgPSBb
XFUwMDAxRjFFNi1cVTAwMDFGMUZGXTsgIyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCiskWldK
ICAgICA9IFx1MjAwRDsgIyBaZXJvIHdpZHRoIGpvaW5lcgorJEVtb2ppVmFyID0gW1x1RkUwRl07
ICMgRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCisKKyNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUy
NzY0IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjND
QyBcVTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUt
XFUwMDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxV
MDAwMUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAw
MDFGNUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAx
RjY0RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0
aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUy
NkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAx
RjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0
NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdD
IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBc
VTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUw
MDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAw
MUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRy
aWNrIG1vZGlmaWVycworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUw
MDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0OEJdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUg
aW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3
MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFGM0NB
IFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1c
VTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUw
MDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxVMDAw
MUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFG
NkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmlj
ayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAwMDFG
M0ZGXTsgIyBGaXR6cGF0cmljayBtb2RpZmllcnMKKyEhY2hhaW47CisKKyNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKKworICAgICEhUklOb0NoYWluOworCisjZW5kaWYKKworISFmb3J3YXJk
OworJENSICRMRjsKKyRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7CisoJExWIHwgJFYpICgkViB8
ICRUKTsKKygkTFZUIHwgJFQpICRUOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisK
KyAgICAkUkkgJFJJICRFeHRlbmQqIC8gJFJJOworICAgICRSSSAkUkkgJEV4dGVuZCo7CisgICAg
W14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJFNw
YWNpbmdNYXJrOworCisjZWxzZQorCisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOwor
ICAgIFteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOworICAgICRSSSAkUkkgLyAkUkk7
CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4wICRIaW5WICRIaW4xOyAjIERldmFuYWdh
cmkgVmlyYW1hIChmb3J3YXJkKQorJEJlbjAgJEJlblYgJEJlbjE7ICMgQmVuZ2FsaSBWaXJhbWEg
KGZvcndhcmQpCiskUGFuMCAkUGFuViAkUGFuMTsgIyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQp
CiskR3VqMCAkR3VqViAkR3VqMTsgIyBHdWphcmF0aSBWaXJhbWEgKGZvcndhcmQpCiskT3JpMCAk
T3JpViAkT3JpMTsgIyBPcml5YSBWaXJhbWEgKGZvcndhcmQpCiskVGVsMCAkVGVsViAkVGVsMTsg
IyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQorJEthbjAgJEthblYgJEthbjE7ICMgS2FubmFkYSBW
aXJhbWEgKGZvcndhcmQpCiskTWFsMCAkTWFsViAkTWFsMTsgIyBNYWxheWFsYW0gVmlyYW1hIChm
b3J3YXJkKQorJFpXSiAkRW1vamlGb3JTZXFzOyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNl
cXVlbmNlcworJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7ICMgRG9udCBicmVh
ayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3Rv
cikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCishIXJldmVyc2U7CiskTEYgJENSOworKCRMIHwg
JFYgfCAkTFYgfCAkTFZUKSAkTDsKKygkViB8ICRUKSAoJExWIHwgJFYpOworJFQgKCRMVlQgfCAk
VCk7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFeHRlbmQqICRSSSAk
UkkgLyAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQqICRSSSAkUkk7CisgICAgJEV4dGVu
ZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wg
JENSICRMRl07CisKKyNlbHNlCisKKyAgICAkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExG
XTsKKyAgICAkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkUkkgJFJJIC8g
JFJJICRSSTsKKyAgICAkUkkgJFJJOworCisjZW5kaWYKKworJEhpbjEgJEhpblYgJEhpbjA7ICMg
RGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQorJEJlbjEgJEJlblYgJEJlbjA7ICMgQmVuZ2Fs
aSBWaXJhbWEgKGJhY2t3YXJkKQorJFBhbjEgJFBhblYgJFBhbjA7ICMgR3VybXVraGkgVmlyYW1h
IChiYWNrd2FyZCkKKyRHdWoxICRHdWpWICRHdWowOyAjIEd1amFyYXRpIFZpcmFtYSAoYmFja3dh
cmQpCiskT3JpMSAkT3JpViAkT3JpMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJFRl
bDEgJFRlbFYgJFRlbDA7ICMgVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCiskS2FuMSAkS2FuViAk
S2FuMDsgIyBLYW5uYWRhIFZpcmFtYSAoYmFja3dhcmQpCiskTWFsMSAkTWFsViAkTWFsMDsgIyBN
YWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKKyRFbW9qaUZvclNlcXMgJFpXSjsgIyBEb250IGJy
ZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlG
b3JNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0
aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorCisjaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIXNhZmVfcmV2ZXJzZTsKKyAgICAkUkkgJFJJ
KzsKKyAgICBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOworICAgICEhc2Fm
ZV9mb3J3YXJkOworICAgICRSSSAkUkkrOworICAgICRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAk
RW1vamlNb2RzXSs7CisKKyNlbHNlCisKKyAgICBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1v
amlGb3JNb2RzOworICAgICRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7Cisg
ICAgISFzYWZlX3JldmVyc2U7CisgICAgISFzYWZlX2ZvcndhcmQ7CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
RXBpbG9ndWUudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yRXBpbG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiYzcwNjZhYzQyMGY5MTdhZWEzMDA5
ZGU1Njc0ZmJhZGM3YTY0ODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKQEAgLTAsMCArMSwz
NzIgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
IyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyRBSSA9IFs6TGluZUJyZWFrID0gQW1iaWd1b3VzOl07Cisk
QUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsKKyRCQSA9IFtbOkxpbmVCcmVhayA9IEJy
ZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsKKyRCQiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3Jl
Ol07CiskQksgPSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOworJEIyID0gWzpMaW5l
QnJlYWsgPSBCcmVha19Cb3RoOl07CiskQ0IgPSBbOkxpbmVCcmVhayA9IENvbnRpbmdlbnRfQnJl
YWs6XTsKKyRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246XTsKKyRDTSA9IFs6
TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsKKyRDUCA9IFs6TGluZUJyZWFrID0gQ2xvc2Vf
UGFyZW50aGVzaXM6XTsKKyRDUiA9IFs6TGluZUJyZWFrID0gQ2FycmlhZ2VfUmV0dXJuOl07Cisk
RVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0gJEVYX1NVQl07CiskR0wgPSBbOkxp
bmVCcmVhayA9IEdsdWU6XTsKKworI2lmIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMKKworICAg
ICRITCA9IFs6TGluZUJyZWFrID0gSGVicmV3X0xldHRlcjpdOworCisjZWxzZQorCisgICAgJEhM
ID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsKKworI2VuZGlmCisKKyRIWSA9IFs6TGluZUJy
ZWFrID0gSHlwaGVuOl07CiskSDIgPSBbOkxpbmVCcmVhayA9IEgyOl07CiskSDMgPSBbOkxpbmVC
cmVhayA9IEgzOl07CiskSUQgPSBbW1tbOkxpbmVCcmVhayA9IElkZW9ncmFwaGljOl0gLSAkQ0pd
ICRJRF9BRERdIC0gJElEX1NVQl07CiskSU4gPSBbWzpMaW5lQnJlYWsgPSBJbnNlcGFyYWJsZTpd
IC0gJElOX1NVQl07CiskSVMgPSBbWzpMaW5lQnJlYWsgPSBJbmZpeF9OdW1lcmljOl0gLSAkSVNf
U1VCXTsKKyRKTCA9IFs6TGluZUJyZWFrID0gSkw6XTsKKyRKViA9IFs6TGluZUJyZWFrID0gSlY6
XTsKKyRKVCA9IFs6TGluZUJyZWFrID0gSlQ6XTsKKyRMRiA9IFs6TGluZUJyZWFrID0gTGluZV9G
ZWVkOl07CiskTkwgPSBbOkxpbmVCcmVhayA9IE5leHRfTGluZTpdOworJE5TID0gW1tbWzpMaW5l
QnJlYWsgPSBOb25zdGFydGVyOl0gLSAkQ0pdICROU19BRERdIC0gJE5TX1NVQl07CiskTlUgPSBb
OkxpbmVCcmVhayA9IE51bWVyaWM6XTsKKyRPUCA9IFs6TGluZUJyZWFrID0gT3Blbl9QdW5jdHVh
dGlvbjpdOworJFBPID0gW1s6TGluZUJyZWFrID0gUG9zdGZpeF9OdW1lcmljOl0gLSAkUE9fU1VC
XTsKKyRQUiA9IFtbOkxpbmVCcmVhayA9IFByZWZpeF9OdW1lcmljOl0gLSAkUFJfU1VCXTsKKyRR
VSA9IFs6TGluZUJyZWFrID0gUXVvdGF0aW9uOl07CiskUkkgPSBbXFUwMDAxRjFFNi1cVTAwMDFG
MUZGXTsKKyRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07CiskU0cgPSBbOkxp
bmVCcmVhayA9IFN1cnJvZ2F0ZTpdOworJFNQID0gWzpMaW5lQnJlYWsgPSBTcGFjZTpdOworJFNZ
ID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07CiskV0ogPSBbOkxpbmVCcmVhayA9IFdv
cmRfSm9pbmVyOl07CiskWFggPSBbOkxpbmVCcmVhayA9IFVua25vd246XTsKKyRaVyA9IFs6TGlu
ZUJyZWFrID0gWldTcGFjZTpdOworJFpXSiA9IFx1MjAwRDsKKyRFbW9qaVZhciA9IFx1RkUwRjsK
KworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtc
dTI2NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUwMDAxRjMwOCBcVTAwMDFGM0MzLVxVMDAwMUYz
QzQgXFUwMDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAwMUYzRjMgXFUwMDAxRjQ0MSBcVTAwMDFGNDY2
LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDZGIFxVMDAwMUY0NzEgXFUwMDAxRjQ3MyBc
VTAwMDFGNDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MiBcVTAwMDFGNDg2LVxVMDAwMUY0ODcgXFUw
MDAxRjQ4QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTggXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAw
MUY2NEIgXFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFG
NkI2XTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1v
amlGb3JNb2RzID0gW1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1MjcwRCBcVTAwMDFGMzg1IFxVMDAw
MUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxVMDAwMUYzQ0IgXFUwMDAxRjQ0Mi1cVTAwMDFG
NDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2
RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUt
XFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1NzUgXFUwMDAxRjU5MCBcVTAwMDFGNTk1IFxV
MDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAw
MDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwIFxVMDAwMUY5MThdIDsgIyBF
bW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbHNlCisKKyAgICAkRW1v
amlGb3JTZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ4Ql07Cisg
ICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBBLVx1MjcwQyBcVTAwMDFGMzg1IFxVMDAw
MUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0M3IFxVMDAwMUYzQ0EgXFUwMDAxRjQ0Mi1cVTAwMDFG
NDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2
RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUt
XFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxV
MDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAw
MDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZW5k
aWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYzRkZdOworJGRpY3Rpb25hcnkg
PSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOworJEFMUGx1cyA9IFskQUwgJEFJICRT
QSAkU0cgJFhYXTsKKyRBTGNtID0gJEFMUGx1cyAkQ00qOworJEJBY20gPSAkQkEgJENNKjsKKyRC
QmNtID0gJEJCICRDTSo7CiskQjJjbSA9ICRCMiAkQ00qOworJENMY20gPSAkQ0wgJENNKjsKKyRD
UGNtID0gJENQICRDTSo7CiskRVhjbSA9ICRFWCAkQ00qOworJEdMY20gPSAkR0wgJENNKjsKKyRI
TGNtID0gJEhMICRDTSo7CiskSFljbSA9ICRIWSAkQ00qOworJEgyY20gPSAkSDIgJENNKjsKKyRI
M2NtID0gJEgzICRDTSo7CiskSURjbSA9ICRJRCAkQ00qOworJElOY20gPSAkSU4gJENNKjsKKyRJ
U2NtID0gJElTICRDTSo7CiskSkxjbSA9ICRKTCAkQ00qOworJEpWY20gPSAkSlYgJENNKjsKKyRK
VGNtID0gJEpUICRDTSo7CiskTlNjbSA9ICROUyAkQ00qOworJE5VY20gPSAkTlUgJENNKjsKKyRP
UGNtID0gJE9QICRDTSo7CiskUE9jbSA9ICRQTyAkQ00qOworJFBSY20gPSAkUFIgJENNKjsKKyRR
VWNtID0gJFFVICRDTSo7CiskUkljbSA9ICRSSSAkQ00qOworJFNZY20gPSAkU1kgJENNKjsKKyRX
SmNtID0gJFdKICRDTSo7CisKKyEhZm9yd2FyZDsKKyRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRM
RiAkTkwgJFpXICRDTV07CiskQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01d
OworJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsKKyRBTF9GT0xM
T1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRHTCAkT1AgJFFVICRCQSAkSFkg
JE5TICRJTiAkTlUgJEFMUGx1c107CiskQUxfRk9MTE9XID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxf
Rk9MTE9XX0NNXTsKKyRMQjRCcmVha3MgPSBbJEJLICRDUiAkTEYgJE5MXTsKKyRMQjROb25CcmVh
a3MgPSBbXiRCSyAkQ1IgJExGICROTF07CiskTEI4QnJlYWtzID0gWyRMQjRCcmVha3MgJFpXXTsK
KyRMQjhOb25CcmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOworJExCMThOb25CcmVh
a3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsKKyRMQjE4QnJlYWtzID0gWyRMQjhCcmVha3Mg
JFNQXTsKKyRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsKKyRBTFBsdXMg
JENNKzsKKyRCQSAkQ00rOworJEJCICRDTSs7CiskQjIgJENNKzsKKyRDTCAkQ00rOworJENQICRD
TSs7CiskRVggJENNKzsKKyRHTCAkQ00rOworJEhMICRDTSs7CiskSFkgJENNKzsKKyRIMiAkQ00r
OworJEgzICRDTSs7CiskSUQgJENNKzsKKyRJTiAkQ00rOworJElTICRDTSs7CiskSkwgJENNKzsK
KyRKViAkQ00rOworJEpUICRDTSs7CiskTlMgJENNKzsKKyROVSAkQ00rOworJE9QICRDTSs7Cisk
UE8gJENNKzsKKyRQUiAkQ00rOworJFFVICRDTSs7CiskUkkgJENNKzsKKyRTWSAkQ00rOworJFdK
ICRDTSs7CiskQ1IgJExGIHsxMDB9OworJExCNE5vbkJyZWFrcz8gJExCNEJyZWFrcyB7MTAwfTsK
KyRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OworJENNKyAkTEI0QnJlYWtzIHsxMDB9Owor
JExCNE5vbkJyZWFrcyBbJFNQICRaV107CiskQ0FOX0NNICRDTSogWyRTUCAkWlddOworJENNKyBb
JFNQICRaV107CiskRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1v
amlGb3JTZXFzOworJENBTl9DTSAkQ00rOworJENNKzsKKyRDQU5fQ00gJENNKiAkV0pjbTsKKyRM
QjhOb25CcmVha3MgJFdKY207CiskQ00rICRXSmNtOworJFdKY20gJENBTlRfQ007CiskV0pjbSAk
Q0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOVF9DTTsKK1tbJExC
OE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOworJENNKyBHTGNtOworJExC
OE5vbkJyZWFrcyAkQ0w7CiskQ0FOX0NNICRDTSogJENMOworJENNKyAkQ0w7CiskTEI4Tm9uQnJl
YWtzICRDUDsKKyRDQU5fQ00gJENNKiAkQ1A7CiskQ00rICRDUDsKKyRMQjhOb25CcmVha3MgJEVY
OworJENBTl9DTSAkQ00qICRFWDsKKyRDTSsgJEVYOworJExCOE5vbkJyZWFrcyAkSVM7CiskQ0FO
X0NNICRDTSogJElTOworJENNKyAkSVM7CiskTEI4Tm9uQnJlYWtzICRTWTsKKyRDQU5fQ00gJENN
KiAkU1k7CiskQ00rICRTWTsKKyRPUGNtICRTUCogJENBTl9DTSAkQ00qOworJE9QY20gJFNQKiAk
Q0FOVF9DTTsKKyRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsKKyRRVWNtICRTUCogJE9QY207
CisoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsKKyRCMmNtICRTUCogJEIyY207CiskTEIxOE5v
bkJyZWFrcyAkQ00qICRRVWNtOworJENNKyAkUVVjbTsKKyRRVWNtIC4/OworJFFVY20gJExCMThO
b25CcmVha3MgJENNKjsKKyRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwgJEhZY20gfCAkTlNj
bSk7IAorJEJCY20gW14kQ0JdOworJEJCY20gJExCMjBOb25CcmVha3MgJENNKjsKKyRITGNtICgk
SFljbSB8ICRCQWNtKSBbXiRDQl0/OworJFNZY20gJEhMY207CisoJEFMY20gfCAkSExjbSkgJElO
Y207CiskQ00rICRJTmNtOworJEVYY20gJElOY207CiskSURjbSAkSU5jbTsKKyRJTmNtICRJTmNt
OworJE5VY20gJElOY207CiskSURjbSAkUE9jbTsKKyRBTGNtICROVWNtOworJEhMY20gJE5VY207
CiskQ00rICROVWNtOworJE5VY20gJEFMY207CiskTlVjbSAkSExjbTsKKyRQUmNtICRJRGNtOwor
JFBSY20gKCRBTGNtIHwgJEhMY20pOworJFBPY20gKCRBTGNtIHwgJEhMY20pOworKCRQUmNtIHwg
JFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAo
JENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87CiskSkxjbSAoJEpMY20gfCAkSlZjbSB8
ICRIMmNtIHwgJEgzY20pOworKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNtKTsKKygkSlRj
bSB8ICRIM2NtKSAkSlRjbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2Nt
KSAkSU5jbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkUE9jbTsK
KyRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkQUxjbSB8
ICRITGNtKSAoJEFMY20gfCAkSExjbSk7CiskQ00rICgkQUxjbSB8ICRITGNtKTsKKyRJU2NtICgk
QUxjbSB8ICRITGNtKTsKKygkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNtOworJENNKyAkT1Bj
bTsKKyRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOworCisjaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCisKKyAgICAkUkljbSAkUkljbTsKKworI2VuZGlmCisKKyRFbW9qaUZvck1vZHMg
JEVtb2ppVmFyPyAkRW1vamlNb2RzOworCishIXJldmVyc2U7CiskQ00rICRBTFBsdXM7CiskQ00r
ICRCQTsKKyRDTSsgJEJCOworJENNKyAkQjI7CiskQ00rICRDTDsKKyRDTSsgJENQOworJENNKyAk
RVg7CiskQ00rICRHTDsKKyRDTSsgJEhMOworJENNKyAkSFk7CiskQ00rICRIMjsKKyRDTSsgJEgz
OworJENNKyAkSUQ7CiskQ00rICRJTjsKKyRDTSsgJElTOworJENNKyAkSkw7CiskQ00rICRKVjsK
KyRDTSsgJEpUOworJENNKyAkTlM7CiskQ00rICROVTsKKyRDTSsgJE9QOworJENNKyAkUE87Cisk
Q00rICRQUjsKKyRDTSsgJFFVOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAg
ICAkQ00rICRSSTsKKworI2VuZGlmCisKKyRDTSsgJFNZOworJENNKyAkV0o7CiskQ00rOworJEFM
X0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAk
U1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsKK1skUFJdIC8g
JENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOworJExCNEJyZWFrcyBbJExCNE5v
bkJyZWFrcy0kQ01dOworJExCNEJyZWFrcyAkQ00rICRDQU5fQ007CiskTEYgJENSOworWyRTUCAk
WlddIFskTEI0Tm9uQnJlYWtzLSRDTV07CitbJFNQICRaV10gJENNKyAkQ0FOX0NNOworJEVtb2pp
Rm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZhcj8gJEVtb2ppRm9yU2VxczsKKyRDTSsg
JENBTl9DTTsKKyRDTSogJFdKICRDTSogJENBTl9DTTsKKyRDTSogJFdKIFskTEI4Tm9uQnJlYWtz
LSRDTV07CiskQ0FOVF9DTSAkQ00qICRXSjsKKyRDTSogJENBTl9DTSAkQ00qICRXSjsKKyRDTSog
JEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOworJENBTlRfQ00gJENN
KiAkR0w7CiskQ00qICRDQU5fQ00gJENNKiAkR0w7CiskQ0wgJENNKyAkQ0FOX0NNOworJENQICRD
TSsgJENBTl9DTTsKKyRFWCAkQ00rICRDQU5fQ007CiskSVMgJENNKyAkQ0FOX0NNOworJFNZICRD
TSsgJENBTl9DTTsKKyRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOworJENQIFskTEI4Tm9uQnJlYWtz
LSRDTV07CiskRVggWyRMQjhOb25CcmVha3MtJENNXTsKKyRJUyBbJExCOE5vbkJyZWFrcy0kQ01d
OworJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07CitbJENMICRDUCAkRVggJElTICRTWV0gJENNKyAk
U1ArICRDTSogJE9QOyAKKyRDTSogJENBTl9DTSAkU1AqICRDTSogJE9QOworJENBTlRfQ00gJFNQ
KiAkQ00qICRPUDsKKyRBTF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAkT1A7CiskQUxfRk9M
TE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9QOworJENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQ
KyAkQ00qICRPUDsKKyRTWSAkQ00gJFNQKyAkT1A7CiskQ00qICRPUCAkU1AqICRDTSogJFFVOwor
JENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOworJENNKiAkQjIgJFNQKiAkQ00qICRCMjsK
KyRDTSogJFFVICRDTSogJENBTl9DTTsKKyRDTSogJFFVICRMQjE4Tm9uQnJlYWtzOworJENNKiAk
Q0FOX0NNICRDTSogJFFVOworJENBTlRfQ00gJENNKiAkUVU7CiskQ00qICgkQkEgfCAkSFkgfCAk
TlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV07CiskQ00qIFskTEIyME5vbkJyZWFrcy0kQ01d
ICRDTSogJEJCOworW14kQ0JdICRDTSogJEJCOworW14kQ0JdICRDTSogKCRIWSB8ICRCQSkgJENN
KiAkSEw7CiskQ00qICRITCAkQ00qICRTWTsKKyRDTSogJElOICRDTSogKCRBTFBsdXMgfCAkSEwp
OworJENNKiAkSU4gJENNKiAkRVg7CiskQ00qICRJTiAkQ00qICRJRDsKKyRDTSogJElOICRDTSog
JElOOworJENNKiAkSU4gJENNKiAkTlU7CiskQ00qICRQTyAkQ00qICRJRDsKKyRDTSogJE5VICRD
TSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkTlU7CiskQ00q
ICRJRCAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBSOworJENNKiAoJEFM
UGx1cyB8ICRITCkgJENNKiAkUE87CisoJENNKiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAk
Q1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRTWSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZ
KSk/ICgkQ00qICgkUFIgfCAkUE8pKT87CiskQ00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwpICRD
TSogJEpMOworJENNKiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOworJENNKiAkSlQgJENN
KiAoJEgzIHwgJEpUKTsKKyRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRK
TCk7CiskQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAo
JEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAk
SEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkSVM7
CiskQ00qICRPUCAkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKTsKKyRDTSogKCRBTFBsdXMgfCAk
SEwgfCAkTlUpICRDTSogJENQOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAg
ICAkQ00qICRSSSAkQ00qICRSSTsKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgJEVtb2ppVmFyPyAk
RW1vamlGb3JNb2RzOworCishIXNhZmVfZm9yd2FyZDsKK1skQ00gJE9QICRRVSAkQ0wgJENQICRC
MiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIy
ICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsKKyRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OworICAg
IAorISFzYWZlX3JldmVyc2U7CiskQ00rIFteJENNICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsK
KyRDTSsgJFNQIC8gLjsKKyRTUCsgJENNKiAkT1A7CiskU1ArICRDTSogJFFVOworJFNQKyAkQ00q
ICgkQ0wgfCAkQ1ApOworJFNQKyAkQ00qICRCMjsKKyRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7
CisoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOworKCRDTCB8ICRDUCkgJENNKiAoJE5VIHwg
JElTIHwgJFNZKTsKKyRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJv
bG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiM2Y2NmY0MmFmMTM4ZWQ1OGZmNDIxZjY3NjhkOGZkNTgw
MTI4MmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKQEAgLTAsMCArMSwzOCBAQAorIyAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0y
MDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisj
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworISFjaGFpbjsKKyEhTEJDTU5vQ2hhaW47CishIWxvb2tBaGVhZEhhcmRCcmVhazsK
KworI2lmIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMKKworICAgICRDSiA9IFs6TGluZUJyZWFr
PUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6XTsKKworI2Vsc2UKKworICAgICRDSiA9IFtc
dTMwNDFcdTMwNDNcdTMwNDVcdTMwNDdcdTMwNDlcdTMwNjNcdTMwODNcdTMwODVcdTMwODdcdTMw
OEVcdTMwOTVcdTMwOTZcdTMwQTFcdTMwQTNcdTMwQTVcdTMwQTdcdTMwQTlcdTMwQzNcdTMwRTNc
dTMwRTVcdTMwRTdcdTMwRUVcdTMwRjVcdTMwRjZcdTMwRkNcdTMxRjBcdTMxRjFcdTMxRjJcdTMx
RjNcdTMxRjRcdTMxRjVcdTMxRjZcdTMxRjdcdTMxRjhcdTMxRjlcdTMxRkFcdTMxRkJcdTMxRkNc
dTMxRkRcdTMxRkVcdTMxRkZcdUZGNjdcdUZGNjhcdUZGNjlcdUZGNkFcdUZGNkJcdUZGNkNcdUZG
NkRcdUZGNkVcdUZGNkZcdUZGNzBdOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pL
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MDdjMGNhNWFhN2IyZmZiZjhiMmNkOTA5MmFhNWYzZTFkYmE0MDky
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkg
TGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBU
b3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAn
JzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUzMDFDXHUzMEEw
XTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIg
JE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VD
SksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFkYjhmMGZmNTE4NTZkOTdjOWMxNGUxMjE2MzczNGZkZmM5N2M5
Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChD
KSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3
LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gW1x1MDAyMVx1
MDAzRlx1RkYwMVx1RkYxRl07CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAy
Nl07CiskSVNfU1VCID0gW1x1MDAzQVx1MDAzQl07CiskTlNfU1VCID0gW1x1MjAzQ1x1MjA0N1x1
MjA0OFx1MjA0OVx1MzAwNVx1MzAxQ1x1MzAzQlx1MzA5RFx1MzA5RVx1MzBBMFx1MzBGQlx1MzBG
RFx1MzBGRVx1RkYxQVx1RkYxQlx1RkY2NV07CiskUE9fU1VCID0gW1x1MDAyNVx1MDBBMlx1MDBC
MFx1MjAzMFx1MjAzMlx1MjAzM1x1MjEwM1x1RkYwNVx1RkZFMF07CiskUFJfU1VCID0gW1x1MDAy
NFx1MDBBM1x1MDBBNVx1MjBBQ1x1MjExNlx1RkYwNFx1RkZFMVx1RkZFNV07CiskSURfQUREID0g
WyRDSiAkQkFfU1VCICRFWF9TVUIgJElOX1NVQiAkSVNfU1VCICROU19TVUIgJFBPX1NVQiAkUFJf
U1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0IGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2NiYmM4YTg4MTVlNGQwZGNmYjk2MGMxMTJmNjBhODM4ZDNh
NDI4NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0CkBAIC0wLDAgKzEsMzUgQEAK
KyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAy
MDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMp
IDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAn
JzsKKyRJTl9TVUIgPSBbXHUyMDI1XHUyMDI2XTsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBb
XHUzMDA1XHUzMDNCXHUzMDlEXHUzMDlFXHUzMEZEXHUzMEZFXTsKKyRQT19TVUIgPSAnJzsKKyRQ
Ul9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKICRJTl9TVUIgJE5TX1NVQl07CiskTlNfQUREID0g
Jyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc0Mjg3
OWRkMWY4MmViNjJkMjhkOGFhN2JjZGRmNDQ2ZDA3Mzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9u
Q0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtk
ZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7Cisk
RVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7
CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0g
Jyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTA3YzBjYTVhYTdiMmZmYmY4YjJjZDkwOTJhYTVmM2UxZGJhNDA5
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChD
KSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3
LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7CiskSU5f
U1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAx
Q1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAk
QkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksu
dHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyY2Y2YTA4MjZhZGE0ZWRjZmNmMzk0
M2I2ODlmOGMwNmUwYmQ3NDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQKQEAg
LTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcn
OworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9
ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0pdOworJE5T
X0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY3NDI4NzlkZDFmODJlYjYyZDI4ZDhhYTdiY2RkZjQ0NmQwNzM4N2YKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJz
IEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNo
IE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
JEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcn
OworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9
ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3NDI4NzlkZDFmODJlYjYy
ZDI4ZDhhYTdiY2RkZjQ0NmQwNzM4N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50
eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3Jn
KQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisj
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NV
QiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5T
X1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOwor
JE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJl
YWtJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNw
cAppbmRleCAwNWE1MTk1NjA1ZTFkOGZiZjc2MjMxMzk3ZDg5YzA4MTUzMjA5MzI3Li4wNjY3YWFm
Y2UxN2NmODZlNzg1NjJlNTU4ZTMzNjI1MGUzNGJkNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1RleHRCcmVha0l0ZXJhdG9yLmNwcApAQCAtMzEsOSArMzEsNiBAQAogI2luY2x1ZGUgPHVuaWNv
ZGUvdWJyay5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAotLy8gRklY
TUU6IFRoaXMgbmVlZHMgYSBiZXR0ZXIgbmFtZQotI2RlZmluZSBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApKQotCiBuYW1lc3BhY2UgV1RGIHsKIAogLy8gSXRl
cmF0b3IgaW5pdGlhbGl6YXRpb24KQEAgLTYxLDYgKzU4LDEyIEBAIHN0YXRpYyBUZXh0QnJlYWtJ
dGVyYXRvciogaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGNvbnN0IGNoYXIqIGJyZWFrUnVs
ZXMpCiAKICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKK1Rl
eHRCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0
KQoreworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCiAKIC8vIEl0ZXJhdG9yIHRleHQg
c2V0dGluZwogCkBAIC0xNjQsMTM1ICsxNjcsMjAgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIHNlbnRl
bmNlQnJlYWtJdGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZykKICAgICByZXR1cm4gc2V0VGV4dEZv
ckl0ZXJhdG9yKCpzdGF0aWNTZW50ZW5jZUJyZWFrSXRlcmF0b3IsIHN0cmluZyk7CiB9CiAKKyNp
ZiAhUExBVEZPUk0oSU9TKQorc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBjcmVhdGVDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKCkKK3sKKyAgICBpZiAoYXV0byogaXRlcmF0b3Ig
PSBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0OjpDdXJzb3JNb3ZlbWVu
dCkpCisgICAgICAgIHJldHVybiBpdGVyYXRvcjsKKyAgICByZXR1cm4gaW5pdGlhbGl6ZUl0ZXJh
dG9yV2l0aFJ1bGVzKGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyk7Cit9CisjZW5kaWYKKwog
VGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoU3RyaW5nVmlldyBzdHJp
bmcpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2Vk
IG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKLSAgICAvLyA8aHR0
cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTct
MS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KLSAgICAvLyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJv
bSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgotICAgIC8vICogUmVwbGFjZWQg
J1tccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dl
bmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9y
IGVhcmxpZXI7Ci0gICAgLy8gKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBm
cm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAgLy8g
KiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmly
YW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFu
ZDsKLSAgICAvLyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmlu
ZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0gICAg
Ly8gKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCi0gICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGtSdWxlcyA9Ci0gICAgICAgICIkQ1IgICAgICA9IFtcXHB7R3JhcGhl
bWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07IgotICAgICAgICAiJExGICAgICAgPSBbXFxwe0dyYXBo
ZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1dOyIKLSAgICAgICAgIiRDb250cm9sID0gW1xccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOyIKLSAgICAgICAgIiRWb2ljZU1hcmtzID0g
W1xcdUZGOUVcXHVGRjlGXTsiIC8vIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2Vk
IG1hcmtzCi0gICAgICAgICIkRXh0ZW5kICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXFx1MEUzMCBcXHUwRTMyIFxcdTBFNDUgXFx1MEVCMCBc
XHUwRUIyXV07IgotICAgICAgICAiJFNwYWNpbmdNYXJrID0gW1tcXHB7R2VuZXJhbF9DYXRlZ29y
eSA9IFNwYWNpbmcgTWFya31dIC0gJEV4dGVuZF07IgotICAgICAgICAiJEwgICAgICAgPSBbXFxw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07IgotICAgICAgICAiJFYgICAgICAgPSBbXFxw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07IgotICAgICAgICAiJFQgICAgICAgPSBbXFxw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07IgotICAgICAgICAiJExWICAgICAgPSBbXFxw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOyIKLSAgICAgICAgIiRMVlQgICAgID0gW1xc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07IgotICAgICAgICAiJEhpbjAgICAgPSBb
XFx1MDkwNS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAg
ICIkSGluViAgICA9IFxcdTA5NEQ7IiAvLyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCi0gICAgICAg
ICIkSGluMSAgICA9IFtcXHUwOTE1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgS2Es
Li4uLEhhCi0gICAgICAgICIkQmVuMCAgICA9IFtcXHUwOTg1LVxcdTA5QjldOyIgLy8gQmVuZ2Fs
aSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRCZW5WICAgID0gXFx1MDlDRDsiIC8vIEJlbmdh
bGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRCZW4xICAgID0gW1xcdTA5OTUtXFx1MDlCOV07IiAv
LyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRQYW4wICAgID0gW1xcdTBBMDUt
XFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRQYW5WICAg
ID0gXFx1MEE0RDsiIC8vIEd1cm11a2hpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkUGFuMSAgICA9
IFtcXHUwQTE1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQotICAgICAg
ICAiJEd1ajAgICAgPSBbXFx1MEE4NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBBLC4u
LixIYQotICAgICAgICAiJEd1alYgICAgPSBcXHUwQUNEOyIgLy8gR3VqYXJhdGkgU2lnbiBWaXJh
bWEKLSAgICAgICAgIiRHdWoxICAgID0gW1xcdTBBOTUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBM
ZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkT3JpMCAgICA9IFtcXHUwQjA1LVxcdTBCMzldOyIg
Ly8gT3JpeWEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkT3JpViAgICA9IFxcdTBCNEQ7IiAv
LyBPcml5YSBTaWduIFZpcmFtYQotICAgICAgICAiJE9yaTEgICAgPSBbXFx1MEIxNS1cXHUwQjM5
XTsiIC8vIE9yaXlhIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRUZWwwICAgID0gW1xcdTBD
MDUtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkVGVsViAg
ICA9IFxcdTBDNEQ7IiAvLyBUZWx1Z3UgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRUZWwxICAgID0g
W1xcdTBDMTQtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAi
JEthbjAgICAgPSBbXFx1MEM4NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhh
Ci0gICAgICAgICIkS2FuViAgICA9IFxcdTBDQ0Q7IiAvLyBLYW5uYWRhIFNpZ24gVmlyYW1hCi0g
ICAgICAgICIkS2FuMSAgICA9IFtcXHUwQzk1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIg
QSwuLi4sSGEKLSAgICAgICAgIiRNYWwwICAgID0gW1xcdTBEMDUtXFx1MEQzOV07IiAvLyBNYWxh
eWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsViAgICA9IFxcdTBENEQ7IiAvLyBN
YWxheWFsYW0gU2lnbiBWaXJhbWEKLSAgICAgICAgIiRNYWwxICAgID0gW1xcdTBEMTUtXFx1MEQz
OV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUkkgICAgICA9IFtc
XFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IiAvLyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCi0g
ICAgICAgICIkWldKICAgICA9IFxcdTIwMEQ7IiAvLyBaZXJvIHdpZHRoIGpvaW5lcgotICAgICAg
ICAiJEVtb2ppVmFyID0gW1xcdUZFMEZdOyIgLy8gRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVj
dG9yCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRW1vamlGb3JTZXFz
ID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYz
QzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAw
MUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxV
MDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIg
XFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1
RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAw
MUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFx1MjY5NS1cXHUyNjk2
IFxcdTI3MDggXFxVMDAwMUYzM0UgXFxVMDAwMUYzNzMgXFxVMDAwMUYzOTMgXFxVMDAwMUYzQTQg
XFxVMDAwMUYzQTggXFxVMDAwMUYzRUIgXFxVMDAwMUYzRUQgXFxVMDAwMUY0QkItXFxVMDAwMUY0
QkMgXFxVMDAwMUY1MjcgXFxVMDAwMUY1MkMgXFxVMDAwMUY2ODAgXFxVMDAwMUY2OTIgXFxVMDAw
MUY5MjYgXFxVMDAwMUY5MzctXFxVMDAwMUY5MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdOyIg
Ly8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1v
amlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUg
XFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0
NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAw
MUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxV
MDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUg
XFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2
NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAw
MUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MTggXFxVMDAwMUYzQzIgXFxVMDAwMUYzQzcgXFxV
MDAwMUYzQ0MgXFxVMDAwMUY1NzQgXFxVMDAwMUY1N0EgXFxVMDAwMUY2Q0MgXFxVMDAwMUY5MTkt
XFxVMDAwMUY5MUUgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzAgXFxVMDAwMUY5MzMtXFxVMDAwMUY5
MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0
cmljayBtb2RpZmllcnMKLSNlbHNlCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQg
XFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIgLy8gRW1vamkgdGhhdCBwYXJ0
aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2
MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxc
VTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2
LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFG
NDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAw
MDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxc
VTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2
IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJz
Ci0jZW5kaWYKLSAgICAgICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZd
OyIgLy8gRml0enBhdHJpY2sgbW9kaWZpZXJzCi0gICAgICAgICIhIWNoYWluOyIKLSNpZiBBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEhUklOb0NoYWluOyIKLSNlbmRpZgotICAg
ICAgICAiISFmb3J3YXJkOyIKLSAgICAgICAgIiRDUiAkTEY7IgotICAgICAgICAiJEwgKCRMIHwg
JFYgfCAkTFYgfCAkTFZUKTsiCi0gICAgICAgICIoJExWIHwgJFYpICgkViB8ICRUKTsiCi0gICAg
ICAgICIoJExWVCB8ICRUKSAkVDsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAg
ICAgICIkUkkgJFJJICRFeHRlbmQqIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCo7
IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENv
bnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSNlbHNlCi0gICAgICAgICJbXiRDb250cm9s
ICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2lu
Z01hcms7IgotICAgICAgICAiJFJJICRSSSAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNl
bmRpZgotICAgICAgICAiJEhpbjAgJEhpblYgJEhpbjE7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAo
Zm9yd2FyZCkKLSAgICAgICAgIiRCZW4wICRCZW5WICRCZW4xOyIgLy8gQmVuZ2FsaSBWaXJhbWEg
KGZvcndhcmQpCi0gICAgICAgICIkUGFuMCAkUGFuViAkUGFuMTsiIC8vIEd1cm11a2hpIFZpcmFt
YSAoZm9yd2FyZCkKLSAgICAgICAgIiRHdWowICRHdWpWICRHdWoxOyIgLy8gR3VqYXJhdGkgVmly
YW1hIChmb3J3YXJkKQotICAgICAgICAiJE9yaTAgJE9yaVYgJE9yaTE7IiAvLyBPcml5YSBWaXJh
bWEgKGZvcndhcmQpCi0gICAgICAgICIkVGVsMCAkVGVsViAkVGVsMTsiIC8vIFRlbHVndSBWaXJh
bWEgKGZvcndhcmQpCi0gICAgICAgICIkS2FuMCAkS2FuViAkS2FuMTsiIC8vIEthbm5hZGEgVmly
YW1hIChmb3J3YXJkKQotICAgICAgICAiJE1hbDAgJE1hbFYgJE1hbDE7IiAvLyBNYWxheWFsYW0g
VmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFpXSiAkRW1vamlGb3JTZXFzOyIgLy8gRG9uJ3Qg
YnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyAkRW1v
amlWYXI/ICRFbW9qaU1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2pp
IChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlm
aWVyCi0gICAgICAgICIhIXJldmVyc2U7IgotICAgICAgICAiJExGICRDUjsiCi0gICAgICAgICIo
JEwgfCAkViB8ICRMViB8ICRMVlQpICRMOyIKLSAgICAgICAgIigkViB8ICRUKSAoJExWIHwgJFYp
OyIKLSAgICAgICAgIiRUICgkTFZUIHwgJFQpOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBP
UlQKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAg
ICAgIiRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRyb2wg
JENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07Igot
I2Vsc2UKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAg
ICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRSSSAkUkkg
LyAkUkkgJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIkSGluMSAk
SGluViAkSGluMDsiIC8vIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRC
ZW4xICRCZW5WICRCZW4wOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAi
JFBhbjEgJFBhblYgJFBhbjA7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAg
ICAiJEd1ajEgJEd1alYgJEd1ajA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAg
ICAgICAiJE9yaTEgJE9yaVYgJE9yaTA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQot
ICAgICAgICAiJFRlbDEgJFRlbFYgJFRlbDA7IiAvLyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkK
LSAgICAgICAgIiRLYW4xICRLYW5WICRLYW4wOyIgLy8gS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJk
KQotICAgICAgICAiJE1hbDEgJE1hbFYgJE1hbDA7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChiYWNr
d2FyZCkKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgJFpXSjsiIC8vIERvbid0IGJyZWFrIGluIGVt
b2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlG
b3JNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkg
d2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotI2lmIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAg
ICAiJFJJICRSSSs7IgotICAgICAgICAiWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9y
TW9kczsiCi0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0g
ICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyI7CisgICAgc3Rh
dGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gY3Jl
YXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjaygpOwogI2Vsc2UKLSAgICAgICAg
IlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiJEVtb2pp
Rm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiCi0gICAgICAgICIhIXNhZmVfcmV2ZXJz
ZTsiCi0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsiOwotI2VuZGlmCi0gICAgc3RhdGljIFRleHRC
cmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0
ZXJhdG9yV2l0aFJ1bGVzKGtSdWxlcyk7Ci0jZWxzZSAvLyBQTEFURk9STShJT1MpCiAgICAgLy8g
VXNlIHRoZSBzcGVjaWFsIFRoYWkgY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGZvciBhbGwgbG9j
YWxlcwogICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcihVQlJLX0NIQVJBQ1RFUiwgInRoIik7CiAjZW5k
aWYgLy8gIVBMQVRGT1JNKElPUykKQEAgLTMxOSw0NDIgKzIwNywyMCBAQCB2b2lkIHJlbGVhc2VM
aW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiAgICAgTGluZUJy
ZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQb29sKCkucHV0KGl0ZXJhdG9yKTsKIH0KIAotc3RhdGlj
IGNvbnN0IGNoYXIqIHVheDE0UHJvbG9ndWUgPQotICAgICIhIWNoYWluOyIKLSAgICAiISFMQkNN
Tm9DaGFpbjsiCi0gICAgIiEhbG9va0FoZWFkSGFyZEJyZWFrOyI7Ci0KLXN0YXRpYyBjb25zdCBj
aGFyKiB1YXgxNEFzc2lnbm1lbnRzQmVmb3JlID0KLSAgICAvLyBleHBsaWNpdGx5IGVudW1lcmF0
ZSAkQ0ogc2luY2UgSUNVIHZlcnNpb25zIHByaW9yIHRvIDQ5IGRvbid0IHN1cHBvcnQgOkxpbmVC
cmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOgotICAgICIkQ0ogPSBbIgotI2lmIChV
X0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0g
Pj0gOSkKLSAgICAiOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOiIKLSNl
bHNlCi0gICAgIlxcdTMwNDFcXHUzMDQzXFx1MzA0NVxcdTMwNDdcXHUzMDQ5XFx1MzA2M1xcdTMw
ODNcXHUzMDg1XFx1MzA4N1xcdTMwOEVcXHUzMDk1XFx1MzA5NlxcdTMwQTFcXHUzMEEzXFx1MzBB
NVxcdTMwQTciCi0gICAgIlxcdTMwQTlcXHUzMEMzXFx1MzBFM1xcdTMwRTVcXHUzMEU3XFx1MzBF
RVxcdTMwRjVcXHUzMEY2XFx1MzBGQyIKLSAgICAiXFx1MzFGMFxcdTMxRjFcXHUzMUYyXFx1MzFG
M1xcdTMxRjRcXHUzMUY1XFx1MzFGNlxcdTMxRjdcXHUzMUY4XFx1MzFGOVxcdTMxRkFcXHUzMUZC
XFx1MzFGQ1xcdTMxRkRcXHUzMUZFXFx1MzFGRiIKLSAgICAiXFx1RkY2N1xcdUZGNjhcXHVGRjY5
XFx1RkY2QVxcdUZGNkJcXHVGRjZDXFx1RkY2RFxcdUZGNkVcXHVGRjZGXFx1RkY3MCIKLSNlbmRp
ZgotICAgICJdOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9t
TG9vc2VDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRFWF9T
VUIgPSBbXFx1MDAyMVxcdTAwM0ZcXHVGRjAxXFx1RkYxRl07IgotICAgICIkSURfU1VCID0gJyc7
IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSBbXFx1
MDAzQVxcdTAwM0JdOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUyMDNDXFx1MjA0N1xcdTIwNDhcXHUy
MDQ5XFx1MzAwNVxcdTMwMUNcXHUzMDNCXFx1MzA5RFxcdTMwOUVcXHUzMEEwXFx1MzBGQlxcdTMw
RkRcXHUzMEZFXFx1RkYxQVxcdUZGMUJcXHVGRjY1XTsiCi0gICAgIiRQT19TVUIgPSBbXFx1MDAy
NVxcdTAwQTJcXHUwMEIwXFx1MjAzMFxcdTIwMzJcXHUyMDMzXFx1MjEwM1xcdUZGMDVcXHVGRkUw
XTsiCi0gICAgIiRQUl9TVUIgPSBbXFx1MDAyNFxcdTAwQTNcXHUwMEE1XFx1MjBBQ1xcdTIxMTZc
XHVGRjA0XFx1RkZFMVxcdUZGRTVdOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhf
U1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07IgotICAgICIkTlNf
QUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21M
b29zZU5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0g
ICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAg
ICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDA1XFx1MzAzQlxcdTMwOURc
XHUzMDlFXFx1MzBGRFxcdTMwRkVdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NV
QiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsiCi0gICAgIiRO
U19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3Rv
bU5vcm1hbENKSyA9Ci0gICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAgICAiJEVY
X1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAg
ICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDFDXFx1MzBBMF07IgotICAg
ICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gWyRD
SiAkQkFfU1VCICROU19TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25z
dCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pLID0KLSAgICAiJEJBX1NV
QiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAi
JElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIK
LSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9
IFskQ0pdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgx
NEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAi
JEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIK
LSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9
ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9ICcnOyIKLSAgICAiJE5T
X0FERCA9IFskQ0pdOyI7Ci0KLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5v
bkNKSyAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksKLSNkZWZpbmUgdWF4MTRB
c3NpZ25tZW50c0N1c3RvbURlZmF1bHRDSksgICAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21O
b3JtYWxDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25DSksgICAg
IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSksKLQotc3RhdGljIGNvbnN0IGNoYXIq
IHVheDE0QXNzaWdubWVudHNBZnRlciA9Ci0gICAgIiRBSSA9IFs6TGluZUJyZWFrID0gQW1iaWd1
b3VzOl07IgotICAgICIkQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsiCi0gICAgIiRC
QSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsiCi0gICAgIiRCQiA9
IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07IgotICAgICIkQksgPSBbOkxpbmVCcmVhayA9
IE1hbmRhdG9yeV9CcmVhazpdOyIKLSAgICAiJEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19Cb3Ro
Ol07IgotICAgICIkQ0IgPSBbOkxpbmVCcmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsiCi0gICAg
IiRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246XTsiCi0gICAgIiRDTSA9IFs6
TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsiCi0gICAgIiRDUCA9IFs6TGluZUJyZWFrID0g
Q2xvc2VfUGFyZW50aGVzaXM6XTsiCi0gICAgIiRDUiA9IFs6TGluZUJyZWFrID0gQ2FycmlhZ2Vf
UmV0dXJuOl07IgotICAgICIkRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0gJEVY
X1NVQl07IgotICAgICIkR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsiCi0jaWYgKFVfSUNVX1ZF
UlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KQot
ICAgICIkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsiCi0jZWxzZQotICAgICIk
SEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1dOyIKLSNlbmRpZgotICAgICIkSFkgPSBbOkxp
bmVCcmVhayA9IEh5cGhlbjpdOyIKLSAgICAiJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOyIKLSAg
ICAiJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOyIKLSAgICAiJElEID0gW1tbWzpMaW5lQnJlYWsg
PSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOyIKLSAgICAiJElOID0g
W1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOyIKLSAgICAiJElTID0gW1s6
TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07IgotICAgICIkSkwgPSBbOkxp
bmVCcmVhayA9IEpMOl07IgotICAgICIkSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07IgotICAgICIk
SlQgPSBbOkxpbmVCcmVhayA9IEpUOl07IgotICAgICIkTEYgPSBbOkxpbmVCcmVhayA9IExpbmVf
RmVlZDpdOyIKLSAgICAiJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsiCi0gICAgIiRO
UyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICROU19T
VUJdOyIKLSAgICAiJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07IgotICAgICIkT1AgPSBb
OkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsiCi0gICAgIiRQTyA9IFtbOkxpbmVCcmVh
ayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07IgotICAgICIkUFIgPSBbWzpMaW5lQnJl
YWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07IgotICAgICIkUVUgPSBbOkxpbmVCcmVh
ayA9IFF1b3RhdGlvbjpdOyIKLSAgICAiJFJJID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsi
Ci0gICAgIiRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIkU0cg
PSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOyIKLSAgICAiJFNQID0gWzpMaW5lQnJlYWsgPSBT
cGFjZTpdOyIKLSAgICAiJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07IgotICAg
ICIkV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9pbmVyOl07IgotICAgICIkWFggPSBbOkxpbmVC
cmVhayA9IFVua25vd246XTsiCi0gICAgIiRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpdOyIK
LSAgICAiJFpXSiA9IFxcdTIwMEQ7IgotICAgICIkRW1vamlWYXIgPSBcXHVGRTBGOyIKLSNpZiBB
RERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxc
dTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0
IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFG
NDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAw
MDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxc
VTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1
LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFG
NkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcdTI2OTUtXFx1MjY5NiBcXHUyNzA4IFxcVTAw
MDFGMzNFIFxcVTAwMDFGMzczIFxcVTAwMDFGMzkzIFxcVTAwMDFGM0E0IFxcVTAwMDFGM0E4IFxc
VTAwMDFGM0VCIFxcVTAwMDFGM0VEIFxcVTAwMDFGNEJCLVxcVTAwMDFGNEJDIFxcVTAwMDFGNTI3
IFxcVTAwMDFGNTJDIFxcVTAwMDFGNjgwIFxcVTAwMDFGNjkyIFxcVTAwMDFGOTI2IFxcVTAwMDFG
OTM3LVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXTsiIC8vIEVtb2ppIHRoYXQg
cGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2
MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAw
MUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxV
MDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUt
XFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0
ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAw
MUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxV
MDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAg
XFxVMDAwMUY5MTggXFxVMDAwMUYzQzIgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0MgXFxVMDAwMUY1
NzQgXFxVMDAwMUY1N0EgXFxVMDAwMUY2Q0MgXFxVMDAwMUY5MTktXFxVMDAwMUY5MUUgXFxVMDAw
MUY5MjYgXFxVMDAwMUY5MzAgXFxVMDAwMUY5MzMtXFxVMDAwMUY5MzkgXFxVMDAwMUY5M0MtXFxV
MDAwMUY5M0VdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNl
bHNlCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2
OSBcXFUwMDAxRjQ4Ql07IgotICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1c
XHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxc
VTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUw
IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFG
NDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAw
MDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxc
VTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMw
XSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAg
ICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07IgotICAgICIkZGljdGlv
bmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIkQUxQbHVzID0g
WyRBTCAkQUkgJFNBICRTRyAkWFhdOyIKLSAgICAiJEFMY20gPSAkQUxQbHVzICRDTSo7IgotICAg
ICIkQkFjbSA9ICRCQSAkQ00qOyIKLSAgICAiJEJCY20gPSAkQkIgJENNKjsiCi0gICAgIiRCMmNt
ID0gJEIyICRDTSo7IgotICAgICIkQ0xjbSA9ICRDTCAkQ00qOyIKLSAgICAiJENQY20gPSAkQ1Ag
JENNKjsiCi0gICAgIiRFWGNtID0gJEVYICRDTSo7IgotICAgICIkR0xjbSA9ICRHTCAkQ00qOyIK
LSAgICAiJEhMY20gPSAkSEwgJENNKjsiCi0gICAgIiRIWWNtID0gJEhZICRDTSo7IgotICAgICIk
SDJjbSA9ICRIMiAkQ00qOyIKLSAgICAiJEgzY20gPSAkSDMgJENNKjsiCi0gICAgIiRJRGNtID0g
JElEICRDTSo7IgotICAgICIkSU5jbSA9ICRJTiAkQ00qOyIKLSAgICAiJElTY20gPSAkSVMgJENN
KjsiCi0gICAgIiRKTGNtID0gJEpMICRDTSo7IgotICAgICIkSlZjbSA9ICRKViAkQ00qOyIKLSAg
ICAiJEpUY20gPSAkSlQgJENNKjsiCi0gICAgIiROU2NtID0gJE5TICRDTSo7IgotICAgICIkTlVj
bSA9ICROVSAkQ00qOyIKLSAgICAiJE9QY20gPSAkT1AgJENNKjsiCi0gICAgIiRQT2NtID0gJFBP
ICRDTSo7IgotICAgICIkUFJjbSA9ICRQUiAkQ00qOyIKLSAgICAiJFFVY20gPSAkUVUgJENNKjsi
Ci0gICAgIiRSSWNtID0gJFJJICRDTSo7IgotICAgICIkU1ljbSA9ICRTWSAkQ00qOyIKLSAgICAi
JFdKY20gPSAkV0ogJENNKjsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRGb3J3YXJkID0K
LSAgICAiISFmb3J3YXJkOyIKLSAgICAiJENBTl9DTSA9IFteJFNQICRCSyAkQ1IgJExGICROTCAk
WlcgJENNXTsiCi0gICAgIiRDQU5UX0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07
IgotICAgICIkQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOyIKLSAg
ICAiJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRTWSAkV0ogJEdMICRPUCAk
UVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsiCi0gICAgIiRBTF9GT0xMT1cgPSBbJEFM
X0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOyIKLSAgICAiJExCNEJyZWFrcyA9IFskQksgJENS
ICRMRiAkTkxdOyIKLSAgICAiJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5MXTsiCi0g
ICAgIiRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOyIKLSAgICAiJExCOE5vbkJyZWFrcyA9
IFtbJExCNE5vbkJyZWFrc10gLSBbJFpXXV07IgotICAgICIkTEIxOE5vbkJyZWFrcyA9IFskTEI4
Tm9uQnJlYWtzIC0gWyRTUF1dOyIKLSAgICAiJExCMThCcmVha3MgPSBbJExCOEJyZWFrcyAkU1Bd
OyIKLSAgICAiJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVha3MgLSAkQ0JdOyIKLSAgICAi
JEFMUGx1cyAkQ00rOyIKLSAgICAiJEJBICRDTSs7IgotICAgICIkQkIgJENNKzsiCi0gICAgIiRC
MiAkQ00rOyIKLSAgICAiJENMICRDTSs7IgotICAgICIkQ1AgJENNKzsiCi0gICAgIiRFWCAkQ00r
OyIKLSAgICAiJEdMICRDTSs7IgotICAgICIkSEwgJENNKzsiCi0gICAgIiRIWSAkQ00rOyIKLSAg
ICAiJEgyICRDTSs7IgotICAgICIkSDMgJENNKzsiCi0gICAgIiRJRCAkQ00rOyIKLSAgICAiJElO
ICRDTSs7IgotICAgICIkSVMgJENNKzsiCi0gICAgIiRKTCAkQ00rOyIKLSAgICAiJEpWICRDTSs7
IgotICAgICIkSlQgJENNKzsiCi0gICAgIiROUyAkQ00rOyIKLSAgICAiJE5VICRDTSs7IgotICAg
ICIkT1AgJENNKzsiCi0gICAgIiRQTyAkQ00rOyIKLSAgICAiJFBSICRDTSs7IgotICAgICIkUVUg
JENNKzsiCi0gICAgIiRSSSAkQ00rOyIKLSAgICAiJFNZICRDTSs7IgotICAgICIkV0ogJENNKzsi
Ci0gICAgIiRDUiAkTEYgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzPyAkTEI0QnJlYWtzIHsx
MDB9OyIKLSAgICAiJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEwMH07IgotICAgICIkQ00rICRM
QjRCcmVha3MgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsiCi0gICAgIiRD
QU5fQ00gJENNKiBbJFNQICRaV107IgotICAgICIkQ00rIFskU1AgJFpXXTsiCi0gICAgIiRFbW9q
aUZvclNlcXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7IgotICAg
ICIkQ0FOX0NNICRDTSs7IgotICAgICIkQ00rOyIKLSAgICAiJENBTl9DTSAkQ00qICRXSmNtOyIK
LSAgICAiJExCOE5vbkJyZWFrcyAkV0pjbTsiCi0gICAgIiRDTSsgJFdKY207IgotICAgICIkV0pj
bSAkQ0FOVF9DTTsiCi0gICAgIiRXSmNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5f
Q00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5UX0NNOyIKLSAgICAiW1skTEI4Tm9uQnJlYWtzXSAt
IFskU1AgJEJBICRIWV1dICRDTSogJEdMY207IgotICAgICIkQ00rIEdMY207IgotICAgICIkTEI4
Tm9uQnJlYWtzICRDTDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ0w7IgotICAgICIkQ00rICRDTDsi
Ci0gICAgIiRMQjhOb25CcmVha3MgJENQOyIKLSAgICAiJENBTl9DTSAkQ00qICRDUDsiCi0gICAg
IiRDTSsgJENQOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkRVg7IgotICAgICIkQ0FOX0NNICRDTSog
JEVYOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkTEI4Tm9uQnJlYWtzICRJUzsiCi0gICAgIiRD
QU5fQ00gJENNKiAkSVM7IgotICAgICIkQ00rICRJUzsiCi0gICAgIiRMQjhOb25CcmVha3MgJFNZ
OyIKLSAgICAiJENBTl9DTSAkQ00qICRTWTsiCi0gICAgIiRDTSsgJFNZOyIKLSAgICAiJE9QY20g
JFNQKiAkQ0FOX0NNICRDTSo7IgotICAgICIkT1BjbSAkU1AqICRDQU5UX0NNOyIKLSAgICAiJE9Q
Y20gJFNQKyAkQ00rICRBTF9GT0xMT1c/OyIKLSAgICAiJFFVY20gJFNQKiAkT1BjbTsiCi0gICAg
IigkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOyIKLSAgICAiJEIyY20gJFNQKiAkQjJjbTsiCi0g
ICAgIiRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207IgotICAgICIkQ00rICRRVWNtOyIKLSAgICAi
JFFVY20gLj87IgotICAgICIkUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJExCMjBO
b25CcmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsgIgotICAgICIkQkJjbSBbXiRD
Ql07IgotICAgICIkQkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJEhMY20gKCRIWWNt
IHwgJEJBY20pIFteJENCXT87IgotICAgICIkU1ljbSAkSExjbTsiCi0gICAgIigkQUxjbSB8ICRI
TGNtKSAkSU5jbTsiCi0gICAgIiRDTSsgJElOY207IgotICAgICIkRVhjbSAkSU5jbTsiCi0gICAg
IiRJRGNtICRJTmNtOyIKLSAgICAiJElOY20gJElOY207IgotICAgICIkTlVjbSAkSU5jbTsiCi0g
ICAgIiRJRGNtICRQT2NtOyIKLSAgICAiJEFMY20gJE5VY207IgotICAgICIkSExjbSAkTlVjbTsi
Ci0gICAgIiRDTSsgJE5VY207IgotICAgICIkTlVjbSAkQUxjbTsiCi0gICAgIiROVWNtICRITGNt
OyIKLSAgICAiJFBSY20gJElEY207IgotICAgICIkUFJjbSAoJEFMY20gfCAkSExjbSk7IgotICAg
ICIkUE9jbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJFBSY20gfCAkUE9jbSk/ICgkT1BjbSB8
ICRIWWNtKT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRDUGNtKT8g
KCRQUmNtIHwgJFBPY20pPzsiCi0gICAgIiRKTGNtICgkSkxjbSB8ICRKVmNtIHwgJEgyY20gfCAk
SDNjbSk7IgotICAgICIoJEpWY20gfCAkSDJjbSkgKCRKVmNtIHwgJEpUY20pOyIKLSAgICAiKCRK
VGNtIHwgJEgzY20pICRKVGNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNt
IHwgJEgzY20pICRJTmNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwg
JEgzY20pICRQT2NtOyIKLSAgICAiJFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNt
IHwgJEgzY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNtKTsiCi0gICAg
IiRDTSsgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJElTY20gKCRBTGNtIHwgJEhMY20pOyIKLSAg
ICAiKCRBTGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207IgotICAgICIkQ00rICRPUGNtOyIKLSAg
ICAiJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7IgotI2lmIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVAotICAgICIkUkljbSAkUkljbTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppRm9yTW9kcyAk
RW1vamlWYXI/ICRFbW9qaU1vZHM7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UmV2ZXJz
ZSA9Ci0gICAgIiEhcmV2ZXJzZTsiCi0gICAgIiRDTSsgJEFMUGx1czsiCi0gICAgIiRDTSsgJEJB
OyIKLSAgICAiJENNKyAkQkI7IgotICAgICIkQ00rICRCMjsiCi0gICAgIiRDTSsgJENMOyIKLSAg
ICAiJENNKyAkQ1A7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRDTSsgJEdMOyIKLSAgICAiJENN
KyAkSEw7IgotICAgICIkQ00rICRIWTsiCi0gICAgIiRDTSsgJEgyOyIKLSAgICAiJENNKyAkSDM7
IgotICAgICIkQ00rICRJRDsiCi0gICAgIiRDTSsgJElOOyIKLSAgICAiJENNKyAkSVM7IgotICAg
ICIkQ00rICRKTDsiCi0gICAgIiRDTSsgJEpWOyIKLSAgICAiJENNKyAkSlQ7IgotICAgICIkQ00r
ICROUzsiCi0gICAgIiRDTSsgJE5VOyIKLSAgICAiJENNKyAkT1A7IgotICAgICIkQ00rICRQTzsi
Ci0gICAgIiRDTSsgJFBSOyIKLSAgICAiJENNKyAkUVU7IgotI2lmIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVAotICAgICIkQ00rICRSSTsiCi0jZW5kaWYKLSAgICAiJENNKyAkU1k7IgotICAgICIk
Q00rICRXSjsiCi0gICAgIiRDTSs7IgotICAgICIkQUxfRk9MTE9XICRDTSsgLyAoWyRCSyAkQ1Ig
JExGICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14kT1AgJENN
ICRTUF0gfCBbJEFMIHtlb2Z9XSkpOyIKLSAgICAiWyRQUl0gLyAkQ00rIFskQksgJENSICRMRiAk
TkwgJFpXICRTUCB7ZW9mfV07IgotICAgICIkTEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtzLSRDTV07
IgotICAgICIkTEI0QnJlYWtzICRDTSsgJENBTl9DTTsiCi0gICAgIiRMRiAkQ1I7IgotICAgICJb
JFNQICRaV10gWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIlskU1AgJFpXXSAkQ00rICRDQU5f
Q007IgotICAgICIkRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2ppVmFyPyAkRW1v
amlGb3JTZXFzOyIKLSAgICAiJENNKyAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogJENNKiAkQ0FO
X0NNOyIKLSAgICAiJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRDQU5UX0NN
ICRDTSogJFdKOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkR0wg
JENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZXV07IgotICAgICIkQ0FOVF9DTSAk
Q00qICRHTDsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRHTDsiCi0gICAgIiRDTCAkQ00rICRD
QU5fQ007IgotICAgICIkQ1AgJENNKyAkQ0FOX0NNOyIKLSAgICAiJEVYICRDTSsgJENBTl9DTTsi
Ci0gICAgIiRJUyAkQ00rICRDQU5fQ007IgotICAgICIkU1kgJENNKyAkQ0FOX0NNOyIKLSAgICAi
JENMIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ1AgWyRMQjhOb25CcmVha3MtJENNXTsi
Ci0gICAgIiRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJElTIFskTEI4Tm9uQnJlYWtz
LSRDTV07IgotICAgICIkU1kgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIlskQ0wgJENQICRF
WCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7ICIKLSAgICAiJENNKiAkQ0FOX0NNICRTUCog
JENNKiAkT1A7IgotICAgICIkQ0FOVF9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAiJEFMX0ZPTExP
Vz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xMT1dfTk9DTSAkQ00rICRT
UCsgJENNKiAkT1A7IgotICAgICIkQ00qICRBTF9GT0xMT1dfQ00gJENNKyAkU1ArICRDTSogJE9Q
OyIKLSAgICAiJFNZICRDTSAkU1ArICRPUDsiCi0gICAgIiRDTSogJE9QICRTUCogJENNKiAkUVU7
IgotICAgICIkQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIkQ00qICRCMiAk
U1AqICRDTSogJEIyOyIKLSAgICAiJENNKiAkUVUgJENNKiAkQ0FOX0NNOyIKLSAgICAiJENNKiAk
UVUgJExCMThOb25CcmVha3M7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkUVU7IgotICAgICIk
Q0FOVF9DTSAkQ00qICRRVTsiCi0gICAgIiRDTSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBbJExC
MjBOb25CcmVha3MtJENNXTsiCi0gICAgIiRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV0gJENNKiAk
QkI7IgotICAgICJbXiRDQl0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAoJEhZIHwgJEJB
KSAkQ00qICRITDsiCi0gICAgIiRDTSogJEhMICRDTSogJFNZOyIKLSAgICAiJENNKiAkSU4gJENN
KiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICRJTiAkQ00qICRFWDsiCi0gICAgIiRDTSog
JElOICRDTSogJElEOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSU47IgotICAgICIkQ00qICRJTiAk
Q00qICROVTsiCi0gICAgIiRDTSogJFBPICRDTSogJElEOyIKLSAgICAiJENNKiAkTlUgJENNKiAo
JEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICROVTsiCi0g
ICAgIiRDTSogJElEICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAk
UFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQTzsiCi0gICAgIigkQ00qICgk
UFIgfCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElTIHwgJFNZKSkq
ICRDTSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykpPzsiCi0gICAg
IiRDTSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7IgotICAgICIkQ00qICgkSlQg
fCAkSlYpICRDTSogKCRIMiB8ICRKVik7IgotICAgICIkQ00qICRKVCAkQ00qICgkSDMgfCAkSlQp
OyIKLSAgICAiJENNKiAkSU4gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsiCi0g
ICAgIiRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7IgotICAgICIk
Q00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSogJFBSOyIKLSAgICAiJENNKiAo
JEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVz
IHwgJEhMKSAkQ00qICRJUzsiCi0gICAgIiRDTSogJE9QICRDTSogKCRBTFBsdXMgfCAkSEwgfCAk
TlUpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7IgotI2lmIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00qICRSSSAkQ00qICRSSTsiCi0jZW5kaWYK
LSAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7IjsKLQotc3RhdGljIGNv
bnN0IGNoYXIqIHVheDE0U2FmZUZvcndhcmQgPQotICAgICIhIXNhZmVfZm9yd2FyZDsiCi0gICAg
IlskQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnldKyBb
XiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsiCi0gICAg
IiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNh
ZmVSZXZlcnNlID0KLSAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICIkQ00rIFteJENNICRCSyAk
Q1IgJExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRDTSsgJFNQIC8gLjsiCi0gICAgIiRTUCsgJENN
KiAkT1A7IgotICAgICIkU1ArICRDTSogJFFVOyIKLSAgICAiJFNQKyAkQ00qICgkQ0wgfCAkQ1Ap
OyIKLSAgICAiJFNQKyAkQ00qICRCMjsiCi0gICAgIiRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7
IgotICAgICIoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOyIKLSAgICAiKCRDTCB8ICRDUCkg
JENNKiAoJE5VIHwgJElTIHwgJFNZKTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7
Ci0KIHN0YXRpYyBTdHJpbmcgbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMoTGluZUJyZWFrSXRl
cmF0b3JNb2RlIG1vZGUsIGJvb2wgaXNDSkspCiB7Ci0gICAgU3RyaW5nQnVpbGRlciBydWxlc0J1
aWxkZXI7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFByb2xvZ3VlKTsKLSAgICBydWxl
c0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNCZWZvcmUpOwogICAgIHN3aXRjaCAobW9k
ZSkgewogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpEZWZhdWx0OgotICAgICAgICBy
dWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHRD
SksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNKSyk7Ci0gICAgICAgIGJyZWFr
OworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVsZXMg
OiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJ
dGVyYXRvck1vZGU6Okxvb3NlOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8g
dWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxv
b3NlTm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Ok5vcm1hbDoK
LSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0
b21Ob3JtYWxDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pLKTsKLSAgICAg
ICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSktSdWxlczsK
ICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6U3RyaWN0OgotICAgICAgICBydWxlc0J1
aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSyA6IHVh
eDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAg
ICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKS1J1bGVzIDog
bGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKS1J1bGVzOwogICAgIH0KLSAgICBydWxl
c0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNBZnRlcik7Ci0gICAgcnVsZXNCdWlsZGVy
LmFwcGVuZCh1YXgxNEZvcndhcmQpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRSZXZl
cnNlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2FmZUZvcndhcmQpOwotICAgIHJ1
bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZlUmV2ZXJzZSk7Ci0gICAgcmV0dXJuIHJ1bGVzQnVp
bGRlci50b1N0cmluZygpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAi
IjsKIH0KIAogLy8gUmVjb2duaXplIEJDUDQ3IGNvbXBsaWFudCBwcmltYXJ5IGxhbmd1YWdlIHZh
bHVlcyBvZiAnemgnLCAnamEnLCAna28nCkBAIC03ODgsOSArMjU0LDI5IEBAIFRleHRCcmVha0l0
ZXJhdG9yKiBvcGVuTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUs
IExpbmVCcmVha0l0CiAgICAgaWYgKG1vZGUgPT0gTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpEZWZh
dWx0KQogICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlbihVQlJLX0xJTkUsIGxvY2FsZUlzRW1w
dHkgPyBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKSA6IGxvY2FsZS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpLCAwLCAwLCAmb3BlblN0YXR1cyk7CiAgICAgZWxzZSB7Ci0gICAgICAgIFVQYXJzZUVy
cm9yIHBhcnNlU3RhdHVzOwotICAgICAgICBhdXRvIHJ1bGVzID0gbWFwTGluZUl0ZXJhdG9yTW9k
ZVRvUnVsZXMobW9kZSwgaXNDSkspOwotICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlblJ1bGVz
KFN0cmluZ1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBydWxlcy5sZW5ndGgo
KSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7CisgICAgICAgIEJyZWFraW5nUnVs
ZVNldCBydWxlU2V0ID0gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzsKKyAgICAgICAgc3dp
dGNoIChtb2RlKSB7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpEZWZhdWx0
OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENK
SyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Okxvb3NlOgorICAgICAgICAgICAgcnVs
ZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLIDogQnJlYWtpbmdS
dWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpOb3JtYWw6CisgICAgICAgICAgICBydWxlU2V0ID0g
aXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLIDogQnJlYWtpbmdSdWxlU2V0
OjpVQVgxNE5vcm1hbE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExp
bmVCcmVha0l0ZXJhdG9yTW9kZTo6U3RyaWN0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pL
ID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFY
MTRTdHJpY3ROb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAg
IGlmIChhdXRvKiBpdGVyYXRvciA9IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChydWxlU2V0KSkK
KyAgICAgICAgICAgIHVicmtJdGVyID0gcmVpbnRlcnByZXRfY2FzdDxVQnJlYWtJdGVyYXRvcio+
KGl0ZXJhdG9yKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBVUGFyc2VFcnJvciBwYXJz
ZVN0YXR1czsKKyAgICAgICAgICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRlcmF0b3JNb2RlVG9S
dWxlcyhtb2RlLCBpc0NKSyk7CisgICAgICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlblJ1bGVz
KFN0cmluZ1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBydWxlcy5sZW5ndGgo
KSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7CisgICAgICAgIH0KICAgICB9CiAg
ICAgLy8gbG9jYWxlIGNvbWVzIGZyb20gYSB3ZWIgcGFnZSBhbmQgaXQgY2FuIGJlIGludmFsaWQs
IGxlYWRpbmcgSUNVCiAgICAgLy8gdG8gZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSBmYWxsIGJhY2sg
dG8gdGhlIGRlZmF1bHQgbG9jYWxlLgpAQCAtODExLDYgKzI5Nyw3IEBAIHZvaWQgY2xvc2VMaW5l
QnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciomIGl0ZXJhdG9yKQogewogICAgIFVCcmVh
a0l0ZXJhdG9yKiB1YnJrSXRlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8VUJyZWFrSXRlcmF0b3IqPihp
dGVyYXRvcik7CiAgICAgQVNTRVJUKHVicmtJdGVyKTsKKyAgICAvLyBGSVhNRTogVXNlIFJBSUkg
dG8gZG8gdGhpcyBpbnN0ZWFkLgogICAgIHVicmtfY2xvc2UodWJya0l0ZXIpOwogICAgIGl0ZXJh
dG9yID0gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJy
ZWFrSXRlcmF0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaApp
bmRleCA4YWZiNTU4MDIwMTAwMmJiZDJlZGQ1NzU2NWJjMzQxYjFhMDA2YTllLi45NGZmN2Q2MDUz
NzQ0ODNiNzUzZDBiNWRhYmQ3NDZjZWNlMDJlNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0
QnJlYWtJdGVyYXRvci5oCkBAIC0zMSw2ICszMSwzMCBAQCBjbGFzcyBUZXh0QnJlYWtJdGVyYXRv
cjsKIAogZW51bSBjbGFzcyBMaW5lQnJlYWtJdGVyYXRvck1vZGUgeyBEZWZhdWx0LCBMb29zZSwg
Tm9ybWFsLCBTdHJpY3QgfTsKIAorZW51bSBjbGFzcyBCcmVha2luZ1J1bGVTZXQgeworICAgIEN1
cnNvck1vdmVtZW50LAorICAgIFVBWDE0Q0pLLAorICAgIFVBWDE0Tm9uQ0pLLAorICAgIFVBWDE0
TG9vc2VDSkssCisgICAgVUFYMTRMb29zZU5vbkNKSywKKyAgICBVQVgxNE5vcm1hbENKSywKKyAg
ICBVQVgxNE5vcm1hbE5vbkNKSywKKyAgICBVQVgxNFN0cmljdENKSywKKyAgICBVQVgxNFN0cmlj
dE5vbkNKSworfTsKKworZXh0ZXJuIGNvbnN0IGNoYXIqIGN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVsZXM7
CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKS1J1bGVzOwor
ZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzOwor
ZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKS1J1bGVz
OworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSktSdWxl
czsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
UnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENK
S1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSktSdWxlczsKKworVGV4dEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNl
dChCcmVha2luZ1J1bGVTZXQpOworCiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8gY2hhcmFjdGVyIGJy
ZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRvCiAvLyBwbGF0Zm9y
bSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0aGlzIGNhbiBiZSBk
aWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlzIFRoYWkgcHJlcGVu
ZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KaW5kZXggYmVm
NWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVlOGU4OGEzODkyYy4uNzlmYTNjNzczOTQyYTI0NmFh
OGQyNDM2YjYzMDZlMjljMzExNTY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9t
YWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCkBAIC0yMSwxMiAr
MjEsMTU4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0
b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKKworI2lm
IGRlZmluZWQoVV9TSE9XX0NQTFVTUExVU19BUEkpCisjdW5kZWYgVV9TSE9XX0NQTFVTUExVU19B
UEkKKyNlbmRpZgorI2RlZmluZSBVX1NIT1dfQ1BMVVNQTFVTX0FQSSAxCisKKyNpbmNsdWRlIDx1
bmljb2RlL3JiYmkuaD4KKyNpbmNsdWRlIDx1bmljb2RlL3VkYXRhLmg+CisjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgogCitAaW50ZXJmYWNlIFdURkJ1bmRsZUZpbmRlciA6IE5TT2JqZWN0
CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXVEZCdW5kbGVGaW5kZXIKK0BlbmQKKwogbmFtZXNw
YWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdCBpbnQgbWF4TG9jYWxlU3RyaW5nTGVuZ3RoID0gMzI7
CiAKK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4gYnJlYWtJ
dGVyYXRvckZyb21SZXNvdXJjZShOU1N0cmluZyAqZmlsZU5hbWVCYXNlKQoreworICAgIE5TQnVu
ZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6W1dURkJ1bmRsZUZpbmRlciBj
bGFzc11dOworICAgIE5TU3RyaW5nICpwYXRoID0gW2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6Zmls
ZU5hbWVCYXNlIG9mVHlwZTpAImJyayIgaW5EaXJlY3Rvcnk6QCJCcmVha2luZ1J1bGVzIl07Cisg
ICAgaWYgKCFwYXRoKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIE5TU3RyaW5nICpk
aXJlY3RvcnkgPSBbcGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOworICAg
IFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworCisjaWYgUExBVEZPUk0oSU9T
KQorICAgIHVkYXRhX3NldEZpbGVBY2Nlc3MoVURBVEFfRklMRVNfRklSU1QsICZlcnJvckNvZGUp
OworICAgIGlmIChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyNlbmRpZgorCisgICAgTG9jYWxVRGF0YU1lbW9yeVBvaW50ZXIgZGF0YSh1ZGF0YV9v
cGVuKFtkaXJlY3RvcnkgVVRGOFN0cmluZ10sICJicmsiLCBbZmlsZU5hbWVCYXNlIFVURjhTdHJp
bmddLCAmZXJyb3JDb2RlKSk7CisgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJST1IpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHVkYXRhX3Nl
dEZpbGVBY2Nlc3MoVURBVEFfREVGQVVMVF9BQ0NFU1MsICZlcnJvckNvZGUpOworICAgIGlmIChl
cnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRp
ZgorCisgICAgYXV0byByZXN1bHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRl
cmF0b3I+KGRhdGEub3JwaGFuKCksIGVycm9yQ29kZSk7CisgICAgaWYgKGVycm9yQ29kZSAhPSBV
X1pFUk9fRVJST1IpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworc3RhdGljIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRl
cmF0b3IoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8UnVs
ZUJhc2VkQnJlYWtJdGVyYXRvcj4+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2Uo
QCJDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMiKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdl
dCgpLmdldCgpOworfQorCitzdGF0aWMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciogbGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6dW5p
cXVlX3B0cjxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZy
b21SZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksiKSk7CisgICAgcmV0dXJuIGl0
ZXJhdG9yLmdldCgpLmdldCgpOworfQorCitzdGF0aWMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciog
bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPHN0ZDo6dW5pcXVlX3B0cjxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPj4gaXRlcmF0b3IoYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksiKSk7
CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpLmdldCgpOworfQorCitzdGF0aWMgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLKCkKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3I+PiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlQ0pLIikpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKS5nZXQoKTsKK30K
Kworc3RhdGljIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZU5vbkNKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6dW5pcXVlX3B0
cjxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNv
dXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSyIpKTsKKyAgICByZXR1cm4g
aXRlcmF0b3IuZ2V0KCkuZ2V0KCk7Cit9CisKK3N0YXRpYyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
KiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+PiBpdGVyYXRv
cihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKSyIpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCkuZ2V0KCk7Cit9CisKK3N0YXRpYyBS
dWxlQmFzZWRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFJ1bGVCYXNl
ZEJyZWFrSXRlcmF0b3I+PiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKEAiTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSyIpKTsKKyAgICByZXR1cm4gaXRlcmF0b3Iu
Z2V0KCkuZ2V0KCk7Cit9CisKK3N0YXRpYyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKiBsaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
c3RkOjp1bmlxdWVfcHRyPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+PiBpdGVyYXRvcihicmVha0l0
ZXJhdG9yRnJvbVJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSyIpKTsK
KyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCkuZ2V0KCk7Cit9CisKK3N0YXRpYyBSdWxlQmFzZWRC
cmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLKCkKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFJ1bGVCYXNlZEJyZWFrSXRl
cmF0b3I+PiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKEAiTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdE5vbkNKSyIpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCkuZ2V0
KCk7Cit9CisKK1RleHRCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJl
YWtpbmdSdWxlU2V0IHJ1bGVTZXQpCit7CisgICAgc3dpdGNoIChydWxlU2V0KSB7CisgICAgY2Fz
ZSBCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50OgorICAgICAgICBpZiAoYXV0byogaXRl
cmF0b3IgPSBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKCkpCisgICAgICAgICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxUZXh0QnJlYWtJdGVyYXRvcio+KHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJh
c2VkQnJlYWtJdGVyYXRvcj4oKml0ZXJhdG9yKS5yZWxlYXNlKCkpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRDSks6CisgICAgICAgIGlm
IChhdXRvKiBpdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksoKSkKKyAgICAgICAg
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRleHRCcmVha0l0ZXJhdG9yKj4oc3RkOjptYWtl
X3VuaXF1ZTxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPigqaXRlcmF0b3IpLnJlbGVhc2UoKSk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5v
bkNKSzoKKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gbGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKSygpKQorICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGV4dEJyZWFr
SXRlcmF0b3IqPihzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+KCppdGVy
YXRvcikucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgY2FzZSBCcmVh
a2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VDSks6CisgICAgICAgIGlmIChhdXRvKiBpdGVyYXRvciA9
IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSygpKQorICAgICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8VGV4dEJyZWFrSXRlcmF0b3IqPihzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVC
YXNlZEJyZWFrSXRlcmF0b3I+KCppdGVyYXRvcikucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks6Cisg
ICAgICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKSygpKQorICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGV4dEJyZWFrSXRl
cmF0b3IqPihzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+KCppdGVyYXRv
cikucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgY2FzZSBCcmVha2lu
Z1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLOgorICAgICAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBs
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKCkpCisgICAgICAgICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxUZXh0QnJlYWtJdGVyYXRvcio+KHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJh
c2VkQnJlYWtJdGVyYXRvcj4oKml0ZXJhdG9yKS5yZWxlYXNlKCkpOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks6Cisg
ICAgICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxO
b25DSksoKSkKKyAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRleHRCcmVha0l0
ZXJhdG9yKj4oc3RkOjptYWtlX3VuaXF1ZTxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPigqaXRlcmF0
b3IpLnJlbGVhc2UoKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNhc2UgQnJlYWtp
bmdSdWxlU2V0OjpVQVgxNFN0cmljdENKSzoKKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0g
bGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSygpKQorICAgICAgICAgICAgcmV0dXJuIHJl
aW50ZXJwcmV0X2Nhc3Q8VGV4dEJyZWFrSXRlcmF0b3IqPihzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVC
YXNlZEJyZWFrSXRlcmF0b3I+KCppdGVyYXRvcikucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOgor
ICAgICAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLKCkpCisgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXh0QnJlYWtJ
dGVyYXRvcio+KHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4oKml0ZXJh
dG9yKS5yZWxlYXNlKCkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cit9CisKIHN0
YXRpYyBpbmxpbmUgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVmZXJl
bmNlKCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFkb3B0
Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlWYWx1ZShDRlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUiKSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9X
ZWJLaXRGUy5jbWFrZQppbmRleCAyOWEwOTY5MDM4ZmFhNzQ0ZTFhOGM1OGYzNTZhZDA3M2YwMDUy
NWJkLi44MWY1NGE1NmFkNjk1M2Q3YjFlMjBjODhmYTg1YmJkZGQxZjA3ZThjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZT
LmNtYWtlCkBAIC0yNCw2ICsyNCw3IEBAIGlmIChOT1QgVE9PTFNfRElSKQogZW5kaWYgKCkKIAog
c2V0KERFUklWRURfU09VUkNFU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJj
ZXMiKQorc2V0KERFUklWRURfU09VUkNFU19XVEZfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rl
cml2ZWRTb3VyY2VzL1dURiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJ
UiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZSIpCiBz
ZXQoREVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJLSVRMRUdBQ1lfRElS
ICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIpCkBAIC0z
Miw2ICszMyw4IEBAIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVIgIiR7Q01BS0VfQklO
QVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0MiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dF
QklOU1BFQ1RPUlVJX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJJ
bnNwZWN0b3JVSSIpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfSkFW
QVNDUklQVENPUkVfRElSfSkKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNf
V1RGX0RJUn0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9
L0JyZWFraW5nUnVsZXMpCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0v
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfSkKZGlmZiAtLWdpdCBhL0NoYW5nZUxv
ZyBiL0NoYW5nZUxvZwppbmRleCAxY2ZhZGI1MzdjMjdiM2NmZDlkNmVmNzc1ZWVlZDI3ZTJiMWZj
MGQ1Li45N2E0ODc2NjM3OWNjNzIyNDg0OWQxMmY5MWE2ZjU5YTA5MWE3ZDM1IDEwMDY0NAotLS0g
YS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMTItMTUg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21w
aWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4g
dGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYw
NjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2U6CisKIDIwMTYtMTItMTAgIEtvbnN0YW50aW4gVG9r
YXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAgICAgICAgIFtjbWFrZV0gSW5jbHVkZSBXVEYs
IEpTQywgYW5kIFdlYkNvcmUgaGVhZGVycyBhdXRvbWF0aWNhbGx5IHRvIHRhcmdlcnMgdXNpbmcg
dGhlbQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297271</attachid>
            <date>2016-12-15 18:09:08 -0800</date>
            <delta_ts>2016-12-16 01:02:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20161215180816.patch</filename>
            <type>text/plain</type>
            <size>296231</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5ODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
MmI0MWE2ZDZlZDNmY2UzZDc2ZDRlMmMxNTI5Y2Q5MzE4NzNiNTAzLi5hOTY0YzFjMDRiY2ViNjI2
YzAyZmU2ZGQzZTdhYzFlMmFhMmZhMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwxNiBAQAogMjAxNi0xMi0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgogCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbmNsdWRlIHRoZSBieXRlY29kZSBmaWxlcyBpbnNpZGUgdGhl
IEphdmFTY3JpcHRDb3JlIGJ1bmRsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKKzIwMTYtMTItMTUgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKwogICAgICAgICBTb3J0IFhjb2RlIHByb2plY3QgZmlsZXMK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTkzNwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CmluZGV4IDUwMTU2NzdjMGIwYTJmNWFiMTM0YzUwMjQ4NDI4ODRkMjg1MWQ3NTEuLjg4YWZlNDI5
ZjRiOTdlN2RmYzZhYThlZDRiYjdjOWMwMGE5YWJhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTA2IEBACiAy
MDE2LTEyLTE1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAg
ICAgICAgQ29tcGlsZSBJQ1UgYnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVy
IHRoYW4gcnVuIHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MDYyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBtYWNPUyBhbmQgaU9TIFNES3MgaW5jbHVkZSBhIHRvb2wsIGljdWdlbmJyaywg
d2hpY2ggY29tcGlsZXMgSUNVIGJyayBicmVha2luZworICAgICAgICBydWxlcyBpbnRvIGJ5dGVj
b2RlLiBQcmV2aW91c2x5LCB0aGlzIGNvbXBpbGF0aW9uIHdhcyBkb25lIGF0IHJ1bnRpbWUgaW5z
aWRlIHRoZSBJQ1UKKyAgICAgICAgdWJya19vcGVuUnVsZXMoKSBmdW5jdGlvbi4gTW92aW5nIHRo
aXMgY29tcGlsYXRpb24gc3RlcCB0byBjb21waWxlIHRpbWUgcmF0aGVyIHRoYW4KKyAgICAgICAg
YnVpbGQgdGltZSBjYXVzZXMgYSBwZXJmb3JtYW5jZSBib29zdC4KKworICAgICAgICBQcmV2aW91
c2x5LCB0aGUgc291cmNlIGZvciB0aGUgYnJlYWtpbmcgcnVsZXMgd2FzIGFzc2VtYmxlZCBieSBj
b25jYXRlbmF0aW5nIEMgc3RyaW5ncworICAgICAgICBhdCBydW50aW1lLiBOb3csIHRoZSBzb3Vy
Y2UgaXMgY29udGFpbmVkIHdpdGhpbiBhIGZldyB0ZXh0IGZpbGVzIGluc2lkZQorICAgICAgICB3
dGYvdGV4dC9CcmVha2luZ1J1bGVzLiBBIGJ1aWxkIHN0ZXAgKHVzaW5nIGEgTWFrZWZpbGUpIHdp
bGwgZ2VuZXJhdGUgc291cmNlIGNvZGUKKyAgICAgICAgY29udGFpbmluZyB0aGVzZSBzdHJpbmdz
LCBhbmQgV1RGIHdpbGwgaW5jbHVkZSB0aGVzZSBzb3VyY2UgZmlsZXMgaW4gdGhlIHNhbWUgd2F5
IGFueQorICAgICAgICBvZiBvdXIgcHJvamVjdHMgdXNlIGdlbmVyYXRlZCBzb3VyY2VzLiBBZGRp
dGlvbmFsbHksIG9uIE9TZXMgd2hpY2ggc3VwcG9ydCBpdCwgdGhlc2UKKyAgICAgICAgc3RyaW5n
cyBnZXQgY29tcGlsZWQgZGlyZWN0bHkgaW50byBJQ1UgYnl0ZWNvZGUsIGFuZCB0aGVuIGluY2x1
ZGVkIGluIHRoZSBmcmFtZXdvcmsKKyAgICAgICAgYnVuZGxlLiBCZWNhdXNlIFdURiBnZXRzIHN0
YXRpY2FsbHkgbGlua2VkIGludG8gSmF2YVNjcmlwdENvcmUsIHRoaXMgaXMgdGhlIGJ1bmRsZQor
ICAgICAgICB3aGljaCBpbmNsdWRlcyB0aGUgYnl0ZWNvZGUgZmlsZXMuCisKKyAgICAgICAgQXQg
cnVudGltZSwgd2UgZmlyc3QgY2hlY2sgaWYgd2UgaGF2ZSBhIGZpbGUgaW4gb3VyIGJ1bmRsZSBv
ZiB0aGUgYXBwcm9wcmlhdGUgbmFtZSwKKyAgICAgICAgYW5kIHRoZW4gc2VlIGlmIElDVSBjYW4g
b3BlbiBpdCB1c2luZyBpdHMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBpbnRlcmZhY2UgKHdoaWNo
CisgICAgICAgIGluY2x1ZGVzIGEgdmVyc2lvbiBjaGVjaykuIElmIGFueSBvZiB0aGVzZSBjaGVj
a3MgZmFpbCwgb3IgaWYgd2UncmUgb24gYSBwb3J0IHdoaWNoCisgICAgICAgIGRvZXNuJ3QgaGF2
ZSB0aGUgbm90aW9uIG9mIGJ1bmRsZXMsIHdlIHdpbGwgdXNlIHRoZSBDIHN0cmluZ3MgZ2VuZXJh
dGVkIGFib3ZlLCBhbmQKKyAgICAgICAgcGFzcyB0aGVtIHRvIHVicmtfb3BlblJ1bGVzKCkgdGhl
IHNhbWUgd2F5IHdlIHdlcmUgZG9pbmcgYmVmb3JlIHRoaXMgcGF0Y2guCisKKyAgICAgICAgVGhl
IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IgaW50ZXJmYWNlIGluIElDVSByZXF1aXJlcyBhZGRpbmcg
c29tZSBtb3JlIG9mIElDVSdzIHB1YmxpYworICAgICAgICBoZWFkZXJzIGludG8gV2ViS2l0Lgor
CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBhIG5ldyBEZXJp
dmVkIFNvdXJjZXMgdGFyZ2V0IHdoaWNoIHVzZXMgYQorICAgICAgICBEZXJpdmVkU291cmNlcy5t
YWtlIE1ha2VmaWxlLCB0aGUgc2FtZSB3YXkgV2ViS2l0MiwgV2ViQ29yZSwgYW5kIEphdmFTY3Jp
cHRDb3JlIHdyb2suCisgICAgICAgIEFsc28sIGFkZCB0aGUgcnVsZXMgdGV4dCBmaWxlcyB0byB0
aGUgcHJvamVjdC4gVGhlbiwgbWFrZSBXVEYgZGVwZW5kIG9uIHRoaXMgbmV3CisgICAgICAgIHRh
cmdldC4KKyAgICAgICAgKiBpY3UvdW5pY29kZS9icmtpdGVyLmg6IEFkZGVkLiBQdWJsaWMgSUNV
IGhlYWRlci4KKyAgICAgICAgKEJyZWFrSXRlcmF0b3I6OmlzQnVmZmVyQ2xvbmUpOgorICAgICAg
ICAqIGljdS91bmljb2RlL2NoYXJpdGVyLmg6IEFkZGVkLiBEaXR0by4KKyAgICAgICAgKEZvcndh
cmRDaGFyYWN0ZXJJdGVyYXRvcjo6b3BlcmF0b3IhPSk6CisgICAgICAgIChDaGFyYWN0ZXJJdGVy
YXRvcjo6c2V0VG9TdGFydCk6CisgICAgICAgIChDaGFyYWN0ZXJJdGVyYXRvcjo6c2V0VG9FbmQp
OgorICAgICAgICAoQ2hhcmFjdGVySXRlcmF0b3I6OnN0YXJ0SW5kZXgpOgorICAgICAgICAoQ2hh
cmFjdGVySXRlcmF0b3I6OmVuZEluZGV4KToKKyAgICAgICAgKENoYXJhY3Rlckl0ZXJhdG9yOjpn
ZXRJbmRleCk6CisgICAgICAgIChDaGFyYWN0ZXJJdGVyYXRvcjo6Z2V0TGVuZ3RoKToKKyAgICAg
ICAgKiBpY3UvdW5pY29kZS9sb2NpZC5oOiBBZGRlZC4gRGl0dG8uCisgICAgICAgIChMb2NhbGU6
Om9wZXJhdG9yIT0pOgorICAgICAgICAoTG9jYWxlOjpnZXRDb3VudHJ5KToKKyAgICAgICAgKExv
Y2FsZTo6Z2V0TGFuZ3VhZ2UpOgorICAgICAgICAoTG9jYWxlOjpnZXRTY3JpcHQpOgorICAgICAg
ICAoTG9jYWxlOjpnZXRWYXJpYW50KToKKyAgICAgICAgKExvY2FsZTo6Z2V0TmFtZSk6CisgICAg
ICAgIChMb2NhbGU6OmlzQm9ndXMpOgorICAgICAgICAqIGljdS91bmljb2RlL3JiYmkuaDogQWRk
ZWQuIERpdHRvLgorICAgICAgICAoUnVsZUJhc2VkQnJlYWtJdGVyYXRvcjo6b3BlcmF0b3IhPSk6
CisgICAgICAgICogaWN1L3VuaWNvZGUvc2Nocml0ZXIuaDogQWRkZWQuIERpdHRvLgorICAgICAg
ICAqIGljdS91bmljb2RlL3VjYXNlbWFwLmg6IEFkZGVkLiBEaXR0by4KKyAgICAgICAgKiBpY3Uv
dW5pY29kZS91Y2hyaXRlci5oOiBBZGRlZC4gRGl0dG8uCisgICAgICAgICogaWN1L3VuaWNvZGUv
dWRhdGEuaDogQWRkZWQuIERpdHRvLgorICAgICAgICAqIGljdS91bmljb2RlL3VtaXNjLmg6IEFk
ZGVkLiBEaXR0by4KKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6IEFkZCBidWlsZCBzdGVw
cyBmb3Igb3RoZXIgcG9ydHMgdG8gZ2VuZXJhdGUgdGhlIGJyZWFraW5nCisgICAgICAgIHJ1bGVz
IHN0cmluZ3Mgc291cmNlIGZpbGVzLgorICAgICAgICAqIHd0Zi9EZXJpdmVkU291cmNlcy5tYWtl
OiBBZGRlZC4gVGhpcyBpcyB0aGUgcGxhY2Ugd2hlcmUgaWN1Z2VuYnJrIGlzIGFjdHVhbGx5IAor
ICAgICAgICBpbnZva2VkLiBJdCBhbHNvIHRyaWdnZXJzIHRoZSBzY3JpcHQgKEdlbmVyYXRlQnJl
YWtpbmdSdWxlU3RyaW5ncy5weSkgd2hpY2ggZ2VuZXJhdGVzCisgICAgICAgIHRoZSBDKysgY29k
ZSBmb3IgdGhlIHJ1bGVzIHN0cmluZ3MuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weTogQWRkZWQu
IEdlbmVyYXRlIEMrKy4KKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQ6IEFkZGVkLgorICAgICAgICAq
IHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHA6CisgICAgICAgIChXVEY6
OmNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldCk6IFVzZWQgYnkgb3RoZXIgcG9ydHMuIFJldHVybmlu
ZyBudWxscHRyIG1lYW5zIHdlIGNhbid0CisgICAgICAgIHVzZSBwcmVjb21waWxlZCBydWxlcy4K
KyAgICAgICAgKFdURjo6Y3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjayk6
IFVzZWQgaW4gcGxhY2Ugb2YgdGhlIGhhcmRjb2RlZCBydWxlcworICAgICAgICBpbiBjdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yKCkuCisgICAgICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3Ip
OiBSZW1vdmUgaGFyZGNvZGVkIHJ1bGVzLgorICAgICAgICAoV1RGOjptYXBMaW5lSXRlcmF0b3JN
b2RlVG9SdWxlcyk6IFVwZGF0ZSB0byB1c2UgdGhlIG5ldyBnZW5lcmF0ZWQgQysrIHN0cmluZ3Mu
CisgICAgICAgIChXVEY6Om9wZW5MaW5lQnJlYWtJdGVyYXRvcik6IFRoZSBsb2dpYyBvZiB0cnlp
bmcgdG8gdXNlIGEgcHJlY29tcGlsZWQgYnl0ZWNvZGUsIGFuZCBmYWxsaW5nCisgICAgICAgIGJh
Y2sgdG8gQysrIHN0cmluZ3MgaWYgaXQgaXNuJ3QgcG9zc2libGUuCisgICAgICAgICogd3RmL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3IuaDogSGVhZGVyIGZvciBnZW5lcmF0ZWQgQysrIGNvZGUuCisg
ICAgICAgICogd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW06
CisgICAgICAgIChXVEY6OmJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UpOiBUaGUgYWN0dWFsIGxv
Z2ljIGZvciBsb29raW5nIGluc2lkZSB0aGUgYnVuZGxlIGZvciB0aGUKKyAgICAgICAgcHJlY29t
cGlsZWQgYnl0ZWNvZGUuCisgICAgICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3IpOiBD
YWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSkspOiBDYWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCkuCisg
ICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSkspOiBDYWxscyBicmVha0l0
ZXJhdG9yRnJvbVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSyk6IENhbGxzIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAgICAg
KFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVy
YXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAo
V1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVy
YXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAo
V1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVy
YXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpjcmVhdGVJdGVyYXRvckZvclJ1bGVT
ZXQpOiAgQ2FsbCB0aGUgYWJvdmUgc3RhdGljIGZ1bmN0aW9ucy4KKworMjAxNi0xMi0xNSAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCiAgICAgICAgIFNvcnQgWGNv
ZGUgcHJvamVjdCBmaWxlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY1OTM3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjU0YzYz
ODA5YzVmNjg4ZTY5ZTRmZjFlZWEwYjJkMWE1YjRlZmE3My4uNGZmYjUxZDg3ZGQzMGVkZjgwMjdh
ZDA3YzdmMmJiMTBkY2M0NTkxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEy
MDYsNiArMTIwNiw3IEBACiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1Jl
ZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTg4MjZCMTY1M0M0
Q0QxQTY0Mjk4M0IgLyogVGVtcGxhdGVSZWdpc3RyeUtleVRhYmxlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhCNDdGMjM0MzY2QzRCNzJBQzg1MkE3
RSAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5VGFibGUuY3BwICovOyB9OwogCQkxQUNGNzM3NzE3MUNB
NkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgKi87IH07
CisJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGluIFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFENTU5NjEyMDBD
QzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFBNzAwOTFFRTVG
IC8qIEpTU3RyaW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5j
cHAgKi87IH07CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1QTUx
NTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2MkQ4NUI2MUMw
RDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQxQzBENjUwRjAw
NkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07CkBAIC0zNTkw
LDYgKzM1OTEsNyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFzZS54Y2NvbmZp
ZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYgLyogSmF2YVNj
cmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQxQkNGRiAvKiBK
YXZhU2NyaXB0Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2Ny
aXB0Q29yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4RjFENTU5NjEy
MDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7IHBhdGggPSAu
Li9XVEYvQnJlYWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1
QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZBQ0I2MSAvKiBB
aXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0aCA9IGIzL2Fp
ci9BaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNDk1MiwxNCArNDk1NCwxNCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKIAkJCQkwRjkzMjc1OTFDMjBCQ0JBMDBDRjY1NjQgLyogZHluYmVuY2ggKi8sCi0J
CQkJMEZGOTIyQ0YxNEY0NkIxMzAwNDFBMjRFIC8qIEpTQ0xMSW50T2Zmc2V0c0V4dHJhY3RvciAq
LywKLQkJCQkwRjYxODM0MzFDNDVGNjJBMDA3MjQ1MEIgLyogdGVzdGFpciAqLywKLQkJCQk2NTEx
MjMwNTE0MDQ2QTRDMDAyQjEwMUQgLyogdGVzdFJlZ0V4cCAqLywKLQkJCQk5MzJGNUJEOTA4MjJB
MUM3MDA3MzY5NzUgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovLAogCQkJCTkzMkY1QkUx
MDgyMkExQzcwMDczNjk3NSAvKiBqc2MgKi8sCisJCQkJMEZGOTIyQ0YxNEY0NkIxMzAwNDFBMjRF
IC8qIEpTQ0xMSW50T2Zmc2V0c0V4dHJhY3RvciAqLywKIAkJCQkxNDEyMTEyMDBBNDg3OTNDMDA0
ODAyNTUgLyogbWluaWRvbSAqLywKKwkJCQkwRjYxODM0MzFDNDVGNjJBMDA3MjQ1MEIgLyogdGVz
dGFpciAqLywKIAkJCQkxNEJENTlCRjBBM0U4RjkwMDBCQUY1OUMgLyogdGVzdGFwaSAqLywKIAkJ
CQkwRkVDODVBRDFCREI1Q0YxMDA4MEZGNzQgLyogdGVzdGIzICovLAorCQkJCTY1MTEyMzA1MTQw
NDZBNEMwMDJCMTAxRCAvKiB0ZXN0UmVnRXhwICovLAorCQkJCTkzMkY1QkQ5MDgyMkExQzcwMDcz
Njk3NSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFBy
b2R1Y3RzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTU5MDcsNiArNTkwOSw3IEBA
CiAJCTY1MEZERjhEMDlEMEZDQTcwMDc2OUU1NCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzhGMUQ1NTk2MTIw
MENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovLAogCQkJCTBGNjE4MzMyMUM0NUYzNUMwMDcyNDUw
QiAvKiBBaXJPcGNvZGUuaCAqLywKIAkJCQkwRjYxODMzNDFDNDVGM0I2MDA3MjQ1MEIgLyogQWly
T3Bjb2RlR2VuZXJhdGVkLmggKi8sCiAJCQkJMEY2MTgzMzUxQzQ1RjNCNjAwNzI0NTBCIC8qIEFp
ck9wY29kZVV0aWxzLmggKi8sCkBAIC05MjU5LDYgKzkyNjIsNyBAQAogCQkJaXNhID0gUEJYUmVz
b3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlm
aWxlcyA9ICgKKwkJCQkxQ0QxODc5MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyBp
biBSZXNvdXJjZXMgKi8sCiAJCQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29y
ay5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvR2VuZXJhdGVC
cmVha2luZ1J1bGVTdHJpbmdzLnB5IGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtp
bmdSdWxlU3RyaW5ncy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmIwNDc2OWZjYTM5OGFjYzk5Nzg2OTJiNzc3
MDY0MDVlZDA0OGE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVy
YXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQpAQCAtMCwwICsxLDExMCBAQAorIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBv
cnQgc3lzCitpbXBvcnQgcmUKKworaGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisKKworZGVmIG1h
aW4oYXJndj1Ob25lKToKKyAgICBpZiBub3QgYXJndjoKKyAgICAgICAgYXJndiA9IHN5cy5hcmd2
CisgICAgZmlsZU5hbWVTdGFydEluZGV4ID0gMQorCisgICAgaW5jbHVkZURlZmluZXMgPSBGYWxz
ZQorICAgIGlmIGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4XSA9PSAiLWluY2x1ZGVEZWZpbmVzIjoK
KyAgICAgICAgaW5jbHVkZURlZmluZXMgPSBUcnVlCisgICAgICAgIGZpbGVOYW1lU3RhcnRJbmRl
eCA9IGZpbGVOYW1lU3RhcnRJbmRleCArIDEKKworICAgIHN5bWJvbE5hbWUgPSBhcmd2W2ZpbGVO
YW1lU3RhcnRJbmRleF1bMF0ubG93ZXIoKSArIGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4XVsxOl0K
KyAgICBmaWxlTmFtZVN0YXJ0SW5kZXggPSBmaWxlTmFtZVN0YXJ0SW5kZXggKyAxCisgICAgZmls
ZU5hbWVzID0gYXJndltmaWxlTmFtZVN0YXJ0SW5kZXg6XQorCisgICAgcHJpbnQoaGVhZGVyKQor
ICAgIHByaW50KCIiKQorICAgIHByaW50KCIvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlz
IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHRoZSBzY3JpcHQiKQorICAgIHByaW50KCIvLyBX
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHki
KQorICAgIHByaW50KCIiKQorICAgIHByaW50KCIjaW5jbHVkZSBcImNvbmZpZy5oXCIiKQorICAg
IHByaW50KCIjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+IikKKyAgICBwcmludCgiIikKKyAg
ICBpZiBpbmNsdWRlRGVmaW5lczoKKyAgICAgICAgcHJpbnQoIiNkZWZpbmUgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkiKQorICAgICAgICBwcmludCgiI2Rl
ZmluZSBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTICgoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0g
Pj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpKSIpCisgICAgICAgIHByaW50
KCIiKQorICAgIHByaW50KCJuYW1lc3BhY2UgV1RGIHsiKQorICAgIHByaW50KCIiKQorICAgIHBy
aW50KCJjb25zdCBjaGFyKiAiICsgc3ltYm9sTmFtZSArICIgPSAiKQorCisgICAgZm9yIGZpbGVO
YW1lIGluIGZpbGVOYW1lczoKKyAgICAgICAgZm9yIGwgaW4gb3BlbihmaWxlTmFtZSwgJ3InKToK
KyAgICAgICAgICAgIGxpbmUgPSBsLnJzdHJpcCgpCisgICAgICAgICAgICBpZiByZS5tYXRjaCgi
XlxzKiQiLCBsaW5lKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxp
bmUuc3RhcnRzd2l0aCgiIyAiKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBl
bGlmIGxpbmUgPT0gIiMiOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYg
bGluZS5zdGFydHN3aXRoKCIjIik6CisgICAgICAgICAgICAgICAgcHJpbnQobGluZSkKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgiXiguKik7KCAj
IC4qKT8kIiwgbGluZSkKKyAgICAgICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0ID0gIlwiIiArIG1hdGNoLmdyb3VwKDEpLnJlcGxhY2UoIlxcIiwgIlxcXFwi
KSArICI7XCIiCisgICAgICAgICAgICAgICAgICAgIGlmIG1hdGNoLmdyb3VwKDIpOgorICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIpWzM6XQor
ICAgICAgICAgICAgICAgICAgICBwcmludChyZXN1bHQpCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAgIHByaW50
KCJ9IikKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5
cy5hcmd2KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEy
NGE0YjdjMTIwM2M0YmVmZmVlMDcxYTY5YmFmYmM3MmY5YjgyOWIuLjM1YzVlMjViMzQ5YWYzOTZm
ZmVhNWYxNmFhMWRhYjA1ZGIzNGJkNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNyw2ICs3LDE3IEBACiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJY
QWdncmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KKwkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8q
IERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKKwkJ
CWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVp
bGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291
cmNlcyIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQkxQ0QxODc4MjFENTU2OTVDMDBDQzdE
RUMgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovLAorCQkJKTsKKwkJCWRlcGVuZGVuY2ll
cyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwcm9kdWN0TmFt
ZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQl9OwogCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0Mg
LyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsK
IAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyog
QnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RG
IEhlYWRlcnMiICovOwpAQCAtODQsNyArOTUsNiBAQAogCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3
RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlv
bi5mcmFtZXdvcmsgKi87IH07CiAJCTE0NDdBRUM3MThGQ0U1ODAwMEIzRDdGRiAvKiBsaWJXVEYu
YSBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMjQ3
QjYyMTQ2ODlCODYwMEU3OEI3NiAvKiBsaWJXVEYuYSAqLzsgfTsKIAkJMTQ0N0FFQzkxOEZDRTU5
NDAwQjNEN0ZGIC8qIG1ibWFsbG9jLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0NDdBRUM4MThGQ0U1OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAg
Ki87IH07Ci0JCTE0NDdBRUNCMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGlu
IEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0Ex
OEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi87IH07CiAJCTE0Njk0MTkyMTZF
QUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTkwMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29w
VGltZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkxNDY5NDE5
MzE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2OTQxOTExNkVBQUY2RDAwMjRFMTQ2IC8q
IFJ1bkxvb3BUaW1lckNGLmNwcCAqLzsgfTsKIAkJMTQ2OTQxOTYxNkVBQUZGODAwMjRFMTQ2IC8q
IFNjaGVkdWxlUGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTQ2OTQxOTQxNkVBQUZGODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oICovOyB9OwpA
QCAtMzM3LDYgKzM0NywxNiBAQAogCQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmln
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4
QjE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggKi87IH07CiAJCUFEN0M0MzRCMUREMkE0QTcw
MDI2ODg4QiAvKiBFeHBlY3RlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUQ3QzQzNEExREQyQTRBNzAwMjY4ODhCIC8qIEV4cGVjdGVkLmggKi87IH07
CiAJCUIzOEZEN0JEMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjM4RkQ3QkMxNjg5NTNFODAw
NjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggKi87IH07CisJCUMyQkE1NDNFMUQ1ODZBRjQwMDBB
MzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUu
ZHlsaWIgKi87IH07CisJCUMyQ0EzN0U5MUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy5jcHAgKi87IH07CisJCUMyQ0EzN0VBMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUMxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJD
QTM3RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTQx
RDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwICovOyB9
OworCQlDMkNBMzdFRTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RjAxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTcxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwICovOyB9OworCQlDMkNB
MzdGMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNK
Sy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNB
MzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNK
Sy5jcHAgKi87IH07CiAJCUM0RjhBOTM3MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM0RjhBOTM2MTlD
NjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLzsgfTsKIAkJQzhCMEUxQTFFMDFBNDg2RUI5
NUUwRDExIC8qIEluZGV4U2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTM3RTFEN0RCRDg0QUMzOEZBRTREMzQgLyogSW5kZXhTZXQuaCAqLzsgfTsK
IAkJQzkxNkI5NzVGMDJGNEY3RThCNEFCMTJEIC8qIEluZGV4TWFwLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QjQzMzgzQTVEMEI0NjNDOTQzM0Q5MzMg
LyogSW5kZXhNYXAuaCAqLzsgfTsKQEAgLTM3MSw2ICszOTEsMTMgQEAKIAkJCXJlbW90ZUdsb2Jh
bElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdU
RjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Q
cm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5l
clBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsK
KwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1
NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsK
IAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9
IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9
IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTQ4Miw2
ICs1MDksMTkgQEAKIAkJMUMxODFDOEQxRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJV
VEYxNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVVGV4dFByb3Zp
ZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM4RTFEMzA3
QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZBMTYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRl
eHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHBhdGggPSBtYWMvVGV4dEJyZWFrSXRl
cmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM2
QkUwRkExRTAzNEM5QTAwMjE3NjE3IC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2Ny
aXB0LnB5dGhvbjsgcGF0aCA9IEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0
RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDQjRGQjk4MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkxRDU1OUFF
RjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNCNEZCOUMxRDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9n
dWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdE
RUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMubWFrZTsg
cGF0aCA9IHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1
c2VzVGFicyA9IDE7IH07CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RF
QyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUZBNDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJD
b3JlVGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUaHJl
YWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAwRERC
OTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzExLDYgKzc1MSwxNSBAQAogCQlBOEE0NzQ4QjE1MUE4MjY0MDA0MTIz
RkYgLyogY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNvbmZpZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDdDNDM0QTFERDJBNEE3MDAyNjg4OEIg
LyogRXhwZWN0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhwZWN0ZWQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5
IC8qIEZlYXR1cmVEZWZpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZl
YXR1cmVEZWZpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UwMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7IHBhdGggPSBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3RDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDMkNBMzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2gu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRp
bWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMw
IC8qIE1lZGlhVGltZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRp
bWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc0Miw3ICs3OTEsNyBAQAogCQkJ
YnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTE0NDdBRUM2
MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICov
LAotCQkJCTE0NDdBRUNCMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZy
YW1ld29ya3MgKi8sCisJCQkJQzJCQTU0M0UxRDU4NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNvcmUu
ZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQkxNDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyog
bGliV1RGLmEgaW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTc3OSw2ICs4MjgsMzIgQEAKIAkJCXBhdGggPSBpY3U7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkxQzZCRTBGOTFFMDM0QzJBMDAy
MTc2MTcgLyogU2NyaXB0cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJMUM2QkUwRkExRTAzNEM5QTAwMjE3NjE3IC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxl
U3RyaW5ncy5weSAqLywKKwkJCSk7CisJCQlwYXRoID0gU2NyaXB0czsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CisJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVha2lu
Z1J1bGVzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkx
Q0QxODc5MjFENTU5OEUxMDBDQzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4
dCAqLywKKwkJCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JF
cGlsb2d1ZS50eHQgKi8sCisJCQkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVh
a0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovLAorCQkJCTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NjFENTU5QTkw
MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5NzFENTU5QUE4MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9u
Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0ICovLAorCQkJCTFDQjRGQjk5MUQ1
NTlBRUYwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAq
LywKKwkJCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdENKSy50eHQgKi8sCisJCQkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0ICovLAorCQkJKTsKKwkJCXBhdGggPSBC
cmVha2luZ1J1bGVzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMUZBNDdD
ODcxNTI1MDJEQTAwNTY4RDFCIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC04MDEsOSArODc2LDEyIEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCTVEMjQ3QjZEMTQ2ODlDNDcwMEU3OEI3NiAvKiBDb25maWd1cmF0
aW9ucyAqLywKKwkJCQlDMkNBMzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2Vz
ICovLAogCQkJCTE0MDIyRjNGMThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJCQkJ
NUQyNDdCNjMxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2R1Y3RzICovLAorCQkJCTFDNkJFMEY5MUUw
MzRDMkEwMDIxNzYxNyAvKiBTY3JpcHRzICovLAogCQkJCTVEMjQ3Qjc2MTQ2ODlENzYwMEU3OEI3
NiAvKiBTb3VyY2UgKi8sCisJCQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRT
b3VyY2VzLm1ha2UgKi8sCiAJCQkJMTQ0N0FFQzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRp
b24uZnJhbWV3b3JrICovLAogCQkJCTE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vj
b3JlLmR5bGliICovLAogCQkJKTsKQEAgLTExNjIsNiArMTI0MCw3IEBACiAJCUE4QTQ3MzFCMTUx
QTgyNUIwMDQxMjNGRiAvKiB0ZXh0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQkxQ0QxODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAq
LywKIAkJCQlBNUJBMTVGNjE4MjQzNTlFMDBBODJFNjkgLyogY2YgKi8sCiAJCQkJMUMxODFDODgx
RDMwN0FCODAwRjVGQTE2IC8qIGljdSAqLywKIAkJCQlBNUJBMTVGMTE4MjQzMzlGMDBBODJFNjkg
LyogbWFjICovLApAQCAtMTIzOSw2ICsxMzE4LDIzIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQzJDQTM3REYxRDU1QzhEODAwNDg2Qjk4IC8q
IERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy5jcHAgKi8sCisJCQkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuY3BwICovLAorCQkJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwICovLAorCQkJCUMyQ0EzN0UzMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICov
LAorCQkJCUMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovLAorCQkJCUMy
Q0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LmNwcCAqLywKKwkJCQlDMkNBMzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAgKi8sCisJCQkpOworCQkJbmFtZSA9ICJEZXJpdmVkIFNv
dXJjZXMiOworCQkJcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dURjsKKwkJCXNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7CisJCX07CiAJCUNFNDY1MTZDMTlEQjFGQjQwMDNFQ0EwNSAvKiBj
b2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNTcw
LDYgKzE2NjYsNyBAQAogCQkJYnVpbGRSdWxlcyA9ICgKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMg
PSAoCisJCQkJMUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kg
Ki8sCiAJCQkJNjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kg
Ki8sCiAJCQkpOwogCQkJbmFtZSA9IFdURjsKQEAgLTE2MDAsMTIgKzE2OTcsMjcgQEAKIAkJCXRh
cmdldHMgPSAoCiAJCQkJNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLywKIAkJCQk2
NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLywKKwkJCQkxQ0Qx
ODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0NDdBRUJE
MThGQ0U1NjkwMEIzRDdGRiAvKiBtYm1hbGxvYyAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJY
UHJvamVjdCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBz
ZWN0aW9uICovCisJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVk
IFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5w
dXRQYXRocyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNlcyI7
CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9
ICJta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxu
Y2QgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcblxuL2Jpbi9s
biAtc2ZoIFwiJHtTUkNST09UfVwiIFdURlxuZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsgISAt
ZCBCcmVha2luZ1J1bGVzIF07IHRoZW5cbiAgICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxuXG5p
ZiBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdIDsgdGhlblxu
ICAgIGV4cG9ydCBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9MFxuZWxzZVxuICAgIGV4cG9ydCBB
RERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9MVxuZmlcblxuaWYgWyBcIiRNQUNPU1hfREVQTE9ZTUVO
VF9UQVJHRVRcIiA9PSBcIjEwLjEwXCIgXSB8fCBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdF
VFwiID09IFwiMTAuMTFcIiBdIHx8IFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0g
XCIxMC4xMlwiIF0gfHwgWyBcIiRTREtfVkVSU0lPTl9NQUpPUlwiID09IFwiOTAwMDBcIiBdIHx8
IFsgXCIkU0RLX1ZFUlNJT05fTUFKT1JcIiA9PSBcIjEwMDAwMFwiIF07IHRoZW5cbiAgICBleHBv
cnQgSEFWRV9JQ1VHRU5CUks9MFxuZWxzZVxuICAgIGV4cG9ydCBIQVZFX0lDVUdFTkJSSz0xXG5m
aVxuXG5pZiBbIFwiJHtBQ1RJT059XCIgPSBcImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwi
aW5zdGFsbFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxoZHJzXCIgLW8gXCIke0FDVElP
Tn1cIiA9IFwiaW5zdGFsbGFwaVwiIF07IHRoZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1bGVzIC1m
IFwiV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4g
aHcuYWN0aXZlY3B1YCBTREtST09UPVwiJHtTREtST09UfVwiXG5maSI7CisJCX07CiAJCTY1QUZB
MTcwMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0g
UEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKQEAgLTE2NTgsNiArMTc3MCw3IEBACiAJCQkJRTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8q
IENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0Mzkx
NTFBODI1QjAwNDEyM0ZGIC8qIENTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDcz
OUMxNTFBODI1QjAwNDEyM0ZGIC8qIEN1cnJlbnRUaW1lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUMyQ0EzN0U5MUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUUxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGFM
b2cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQTAxNTFBODI1QjAwNDEyM0ZGIC8qIERh
dGVNYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0EyMTUxQTgyNUIwMDQxMjNGRiAv
KiBEZWNpbWFsTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTY3Myw2ICsxNzg2LDE0IEBA
CiAJCQkJMUExRDhCOUUxNzMxODc5ODAwMTQxREE0IC8qIEZ1bmN0aW9uRGlzcGF0Y2hlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyQ0NEODkyQTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFu
RGF0ZVRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRDgxNTFBODI1QjAwNDEyM0ZG
IC8qIEhhc2hUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQTFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Q0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QzJDQTM3RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3
RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RjAxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3
RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFMTY0NkExQjZGRkM5NjAwNDAwRTdDIC8qIExvY2su
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2MEYzMkYxREZDQkQxQjAwNDE2RDZDIC8qIExvY2tl
ZFByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0U1MTUxQTgyNUIwMDQx
MjNGRiAvKiBNYWluVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTc0NSw2ICsxODY2LDEx
IEBACiAJCQl0YXJnZXQgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovOwogCQkJ
dGFyZ2V0UHJveHkgPSAxNDQ3QUVDMzE4RkNFNTcwMDBCM0Q3RkYgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovOwogCQl9OworCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJn
ZXQgPSAxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovOworCQkJ
dGFyZ2V0UHJveHkgPSAxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovOworCQl9OwogCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJn
ZXQgPSA2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLzsKQEAg
LTE3NzQsNiArMTkwMCwzMCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9Owor
CQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1
aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdC
NzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxk
U2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07
CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBS
ZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29u
ZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1Jl
bGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFN
RSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJ
CTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0g
WENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVE
MjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQli
dWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJ
CQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjY0MTQ2ODlCODYwMEU3
OEI3NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJ
YmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyog
RGVidWdSZWxlYXNlLnhjY29uZmlnICovOwpAQCAtMTg1Nyw2ICsyMDA3LDE2IEBACiAJCQlkZWZh
dWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5h
bWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVp
bGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291
cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25m
aWd1cmF0aW9ucyA9ICgKKwkJCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8s
CisJCQkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3
ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENv
bmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0g
UHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNv
bmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhD
Q29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS9icmtpdGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmlj
b2RlL2Jya2l0ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWE1ZTU1Mjc5NjA5MGVhZWJjZDdjZTdiN2QyNzVh
YThiMzc3NWI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9icmtp
dGVyLmgKQEAgLTAsMCArMSw2NTUgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAg
IENvcHlyaWdodCAoQykgMTk5Ny0yMDE0LCBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVz
CisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgorKgorKiBGaWxlIGJya2l0ZXIuaAorKgorKiBNb2RpZmljYXRp
b24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgor
KiAgIDAyLzE4Lzk3ICAgIGFsaXUgICAgICAgIEFkZGVkIHR5cGVkZWYgZm9yIFRleHRDb3VudC4g
IE1hZGUgRE9ORSBjb25zdC4KKyogICAwNS8wNy85NyAgICBhbGl1ICAgICAgICBGaXhlZCBETEwg
ZGVjbGFyYXRpb24uCisqICAgMDcvMDkvOTcgICAgamZpdHogICAgICAgUmVuYW1lZCBCcmVha0l0
ZXJhdG9yIGFuZCBpbnRlcmZhY2Ugc3luY2VkIHdpdGggSkRLCisqICAgMDgvMTEvOTggICAgaGVs
ZW5hICAgICAgU3luYy11cCBKREsxLjIuCisqICAgMDEvMTMvMjAwMCAgaGVsZW5hICAgICAgQWRk
ZWQgVUVycm9yQ29kZSBwYXJhbWV0ZXIgdG8gY3JlYXRlWFhYSW5zdGFuY2UgbWV0aG9kcy4KKyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVmIEJSS0lURVJfSAorI2RlZmluZSBC
UktJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisKKy8qKgorICogXGZpbGUK
KyAqIFxicmllZiBDKysgQVBJOiBCcmVhayBJdGVyYXRvci4KKyAqLworCisjaWYgVUNPTkZJR19O
T19CUkVBS19JVEVSQVRJT04KKworVV9OQU1FU1BBQ0VfQkVHSU4KKworLyoKKyAqIEFsbG93IHRo
ZSBkZWNsYXJhdGlvbiBvZiBBUElzIHdpdGggcG9pbnRlcnMgdG8gQnJlYWtJdGVyYXRvcgorICog
ZXZlbiB3aGVuIGJyZWFrIGl0ZXJhdGlvbiBpcyByZW1vdmVkIGZyb20gdGhlIGJ1aWxkLgorICov
CitjbGFzcyBCcmVha0l0ZXJhdG9yOworCitVX05BTUVTUEFDRV9FTkQKKworI2Vsc2UKKworI2lu
Y2x1ZGUgInVuaWNvZGUvdW9iamVjdC5oIgorI2luY2x1ZGUgInVuaWNvZGUvdW5pc3RyLmgiCisj
aW5jbHVkZSAidW5pY29kZS9jaGFyaXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUvbG9jaWQuaCIK
KyNpbmNsdWRlICJ1bmljb2RlL3VicmsuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVudW0uaCIK
KyNpbmNsdWRlICJ1bmljb2RlL3V0ZXh0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bWlzYy5oIgor
CitVX05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFRoZSBCcmVha0l0ZXJhdG9yIGNsYXNzIGlt
cGxlbWVudHMgbWV0aG9kcyBmb3IgZmluZGluZyB0aGUgbG9jYXRpb24KKyAqIG9mIGJvdW5kYXJp
ZXMgaW4gdGV4dC4gQnJlYWtJdGVyYXRvciBpcyBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzLgorICog
SW5zdGFuY2VzIG9mIEJyZWFrSXRlcmF0b3IgbWFpbnRhaW4gYSBjdXJyZW50IHBvc2l0aW9uIGFu
ZCBzY2FuIG92ZXIKKyAqIHRleHQgcmV0dXJuaW5nIHRoZSBpbmRleCBvZiBjaGFyYWN0ZXJzIHdo
ZXJlIGJvdW5kYXJpZXMgb2NjdXIuCisgKiA8cD4KKyAqIExpbmUgYm91bmRhcnkgYW5hbHlzaXMg
ZGV0ZXJtaW5lcyB3aGVyZSBhIHRleHQgc3RyaW5nIGNhbiBiZSBicm9rZW4KKyAqIHdoZW4gbGlu
ZS13cmFwcGluZy4gVGhlIG1lY2hhbmlzbSBjb3JyZWN0bHkgaGFuZGxlcyBwdW5jdHVhdGlvbiBh
bmQKKyAqIGh5cGhlbmF0ZWQgd29yZHMuCisgKiA8cD4KKyAqIFNlbnRlbmNlIGJvdW5kYXJ5IGFu
YWx5c2lzIGFsbG93cyBzZWxlY3Rpb24gd2l0aCBjb3JyZWN0CisgKiBpbnRlcnByZXRhdGlvbiBv
ZiBwZXJpb2RzIHdpdGhpbiBudW1iZXJzIGFuZCBhYmJyZXZpYXRpb25zLCBhbmQKKyAqIHRyYWls
aW5nIHB1bmN0dWF0aW9uIG1hcmtzIHN1Y2ggYXMgcXVvdGF0aW9uIG1hcmtzIGFuZCBwYXJlbnRo
ZXNlcy4KKyAqIDxwPgorICogV29yZCBib3VuZGFyeSBhbmFseXNpcyBpcyB1c2VkIGJ5IHNlYXJj
aCBhbmQgcmVwbGFjZSBmdW5jdGlvbnMsIGFzCisgKiB3ZWxsIGFzIHdpdGhpbiB0ZXh0IGVkaXRp
bmcgYXBwbGljYXRpb25zIHRoYXQgYWxsb3cgdGhlIHVzZXIgdG8KKyAqIHNlbGVjdCB3b3JkcyB3
aXRoIGEgZG91YmxlIGNsaWNrLiBXb3JkIHNlbGVjdGlvbiBwcm92aWRlcyBjb3JyZWN0CisgKiBp
bnRlcnByZXRhdGlvbiBvZiBwdW5jdHVhdGlvbiBtYXJrcyB3aXRoaW4gYW5kIGZvbGxvd2luZwor
ICogd29yZHMuIENoYXJhY3RlcnMgdGhhdCBhcmUgbm90IHBhcnQgb2YgYSB3b3JkLCBzdWNoIGFz
IHN5bWJvbHMgb3IKKyAqIHB1bmN0dWF0aW9uIG1hcmtzLCBoYXZlIHdvcmQtYnJlYWtzIG9uIGJv
dGggc2lkZXMuCisgKiA8cD4KKyAqIENoYXJhY3RlciBib3VuZGFyeSBhbmFseXNpcyBhbGxvd3Mg
dXNlcnMgdG8gaW50ZXJhY3Qgd2l0aAorICogY2hhcmFjdGVycyBhcyB0aGV5IGV4cGVjdCB0bywg
Zm9yIGV4YW1wbGUsIHdoZW4gbW92aW5nIHRoZSBjdXJzb3IKKyAqIHRocm91Z2ggYSB0ZXh0IHN0
cmluZy4gQ2hhcmFjdGVyIGJvdW5kYXJ5IGFuYWx5c2lzIHByb3ZpZGVzIGNvcnJlY3QKKyAqIG5h
dmlnYXRpb24gb2YgdGhyb3VnaCBjaGFyYWN0ZXIgc3RyaW5ncywgcmVnYXJkbGVzcyBvZiBob3cg
dGhlCisgKiBjaGFyYWN0ZXIgaXMgc3RvcmVkLiAgRm9yIGV4YW1wbGUsIGFuIGFjY2VudGVkIGNo
YXJhY3RlciBtaWdodCBiZQorICogc3RvcmVkIGFzIGEgYmFzZSBjaGFyYWN0ZXIgYW5kIGEgZGlh
Y3JpdGljYWwgbWFyay4gV2hhdCB1c2VycworICogY29uc2lkZXIgdG8gYmUgYSBjaGFyYWN0ZXIg
Y2FuIGRpZmZlciBiZXR3ZWVuIGxhbmd1YWdlcy4KKyAqIDxwPgorICogVGhlIHRleHQgYm91bmRh
cnkgcG9zaXRpb25zIGFyZSBmb3VuZCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzCisgKiBkZXNjcmli
ZWQgaW4gVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMjksIFRleHQgQm91bmRhcmllcywgYW5kCisg
KiBVbmljb2RlIFN0YW5kYXJkIEFubmV4ICMxNCwgTGluZSBCcmVha2luZyBQcm9wZXJ0aWVzLiAg
VGhlc2UKKyAqIGFyZSBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRz
L3RyMTQvIGFuZAorICogaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBvcnRzL3RyMjkvLgorICog
PHA+CisgKiBJbiBhZGRpdGlvbiB0byB0aGUgQysrIEFQSSBkZWZpbmVkIGluIHRoaXMgaGVhZGVy
IGZpbGUsIGEKKyAqIHBsYWluIEMgQVBJIHdpdGggZXF1aXZhbGVudCBmdW5jdGlvbmFsaXR5IGlz
IGRlZmluZWQgaW4gdGhlCisgKiBmaWxlIHVicmsuaAorICogPHA+CisgKiBDb2RlIHNuaXBwZXRz
IGlsbHVzdHJhdGluZyB0aGUgdXNlIG9mIHRoZSBCcmVhayBJdGVyYXRvciBBUElzCisgKiBhcmUg
YXZhaWxhYmxlIGluIHRoZSBJQ1UgVXNlciBHdWlkZSwKKyAqIGh0dHA6Ly9pY3UtcHJvamVjdC5v
cmcvdXNlcmd1aWRlL2JvdW5kYXJ5QW5hbHlzaXMuaHRtbAorICogYW5kIGluIHRoZSBzYW1wbGUg
cHJvZ3JhbSBpY3Uvc291cmNlL3NhbXBsZXMvYnJlYWsvYnJlYWsuY3BwCisgKgorICovCitjbGFz
cyBVX0NPTU1PTl9BUEkgQnJlYWtJdGVyYXRvciA6IHB1YmxpYyBVT2JqZWN0IHsKK3B1YmxpYzoK
KyAgICAvKioKKyAgICAgKiAgZGVzdHJ1Y3RvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIH5CcmVha0l0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBS
ZXR1cm4gdHJ1ZSBpZiBhbm90aGVyIG9iamVjdCBpcyBzZW1hbnRpY2FsbHkgZXF1YWwgdG8gdGhp
cworICAgICAqIG9uZS4gVGhlIG90aGVyIG9iamVjdCBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2Yg
dGhlIHNhbWUgc3ViY2xhc3Mgb2YKKyAgICAgKiBCcmVha0l0ZXJhdG9yLiBPYmplY3RzIG9mIGRp
ZmZlcmVudCBzdWJjbGFzc2VzIGFyZSBjb25zaWRlcmVkCisgICAgICogdW5lcXVhbC4KKyAgICAg
KiA8UD4KKyAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGlzIEJyZWFrSXRlcmF0b3IgaXMgYXQgdGhl
IHNhbWUgcG9zaXRpb24gaW4gdGhlCisgICAgICogc2FtZSB0ZXh0LCBhbmQgaXMgdGhlIHNhbWUg
Y2xhc3MgYW5kIHR5cGUgKHdvcmQsIGxpbmUsIGV0Yy4pIG9mCisgICAgICogQnJlYWtJdGVyYXRv
ciwgYXMgdGhlIGFyZ3VtZW50LiAgVGV4dCBpcyBjb25zaWRlcmVkIHRoZSBzYW1lIGlmCisgICAg
ICogaXQgY29udGFpbnMgdGhlIHNhbWUgY2hhcmFjdGVycywgaXQgbmVlZCBub3QgYmUgdGhlIHNh
bWUKKyAgICAgKiBvYmplY3QsIGFuZCBzdHlsZXMgYXJlIG5vdCBjb25zaWRlcmVkLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShj
b25zdCBCcmVha0l0ZXJhdG9yJikgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJu
cyB0aGUgY29tcGxlbWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJhdG9yPT0KKyAgICAgKiBAcGFy
YW0gcmhzIFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5Cisg
ICAgICogQHJldHVybiB0aGUgY29tcGxlbWVudCBvZiB0aGUgcmVzdWx0IG9mIG9wZXJhdG9yPT0K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCBvcGVyYXRvciE9KGNv
bnN0IEJyZWFrSXRlcmF0b3ImIHJocykgY29uc3QgeyByZXR1cm4gIW9wZXJhdG9yPT0ocmhzKTsg
fQorCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgcG9seW1vcnBoaWMgY29weSBvZiB0aGlzIG9i
amVjdC4gIFRoaXMgaXMgYW4gYWJzdHJhY3QKKyAgICAgKiBtZXRob2Qgd2hpY2ggc3ViY2xhc3Nl
cyBpbXBsZW1lbnQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVh
bCBCcmVha0l0ZXJhdG9yKiBjbG9uZSh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAg
KiBSZXR1cm4gYSBwb2x5bW9ycGhpYyBjbGFzcyBJRCBmb3IgdGhpcyBvYmplY3QuIERpZmZlcmVu
dCBzdWJjbGFzc2VzCisgICAgICogd2lsbCByZXR1cm4gZGlzdGluY3QgdW5lcXVhbCB2YWx1ZXMu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBn
ZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1
cm4gYSBDaGFyYWN0ZXJJdGVyYXRvciBvdmVyIHRoZSB0ZXh0IGJlaW5nIGFuYWx5emVkLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgQ2hhcmFjdGVySXRlcmF0
b3ImIGdldFRleHQodm9pZCkgY29uc3QgPSAwOworCisKKyAgICAvKioKKyAgICAgICogIEdldCBh
IFVUZXh0IGZvciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgICogIFRoZSByZXR1cm5l
ZCBVVGV4dCBpcyBhIHNoYWxsb3cgY2xvbmUgb2YgdGhlIFVUZXh0IHVzZWQgaW50ZXJuYWxseQor
ICAgICAgKiAgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVudGF0aW9uLiAgSXQgY2FuIHNh
ZmVseSBiZSB1c2VkIHRvCisgICAgICAqICBhY2Nlc3MgdGhlIHRleHQgd2l0aG91dCBpbXBhY3Rp
bmcgYW55IGJyZWFrIGl0ZXJhdG9yIG9wZXJhdGlvbnMsCisgICAgICAqICBidXQgdGhlIHVuZGVy
bHlpbmcgdGV4dCBpdHNlbGYgbXVzdCBub3QgYmUgYWx0ZXJlZC4KKyAgICAgICoKKyAgICAgICog
QHBhcmFtIGZpbGxJbiBBIFVUZXh0IHRvIGJlIGZpbGxlZCBpbi4gIElmIE5VTEwsIGEgbmV3IFVU
ZXh0IHdpbGwgYmUKKyAgICAgICogICAgICAgICAgIGFsbG9jYXRlZCB0byBob2xkIHRoZSByZXN1
bHQuCisgICAgICAqIEBwYXJhbSBzdGF0dXMgcmVjZWl2ZXMgYW55IGVycm9yIGNvZGVzLgorICAg
ICAgKiBAcmV0dXJuICAgVGhlIGN1cnJlbnQgVVRleHQgZm9yIHRoaXMgYnJlYWsgaXRlcmF0b3Iu
ICBJZiBhbiBpbnB1dAorICAgICAgKiAgICAgICAgICAgVVRleHQgd2FzIHByb3ZpZGVkLCBpdCB3
aWxsIGFsd2F5cyBiZSByZXR1cm5lZC4KKyAgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICAq
LworICAgICB2aXJ0dWFsIFVUZXh0ICpnZXRVVGV4dChVVGV4dCAqZmlsbEluLCBVRXJyb3JDb2Rl
ICZzdGF0dXMpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIENoYW5nZSB0aGUgdGV4dCBv
dmVyIHdoaWNoIHRoaXMgb3BlcmF0ZXMuIFRoZSB0ZXh0IGJvdW5kYXJ5IGlzCisgICAgICogcmVz
ZXQgdG8gdGhlIHN0YXJ0LgorICAgICAqIEBwYXJhbSB0ZXh0IFRoZSBVbmljb2RlU3RyaW5nIHVz
ZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgdm9pZCAgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nICZ0ZXh0KSA9IDA7
CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdG8gb3BlcmF0ZSBv
dmVyIHRoZSB0ZXh0IHJlcHJlc2VudGVkIGJ5CisgICAgICogdGhlIFVUZXh0LiAgVGhlIGl0ZXJh
dG9yIHBvc2l0aW9uIGlzIHJlc2V0IHRvIHRoZSBzdGFydC4KKyAgICAgKgorICAgICAqIFRoaXMg
ZnVuY3Rpb24gbWFrZXMgYSBzaGFsbG93IGNsb25lIG9mIHRoZSBzdXBwbGllZCBVVGV4dC4gIFRo
aXMgbWVhbnMKKyAgICAgKiB0aGF0IHRoZSBjYWxsZXIgaXMgZnJlZSB0byBpbW1lZGlhdGVseSBj
bG9zZSBvciBvdGhlcndpc2UgcmV1c2UgdGhlCisgICAgICogVXRleHQgdGhhdCB3YXMgcGFzc2Vk
IGFzIGEgcGFyYW1ldGVyLCBidXQgdGhhdCB0aGUgdW5kZXJseWluZyB0ZXh0IGl0c2VsZgorICAg
ICAqIG11c3Qgbm90IGJlIGFsdGVyZWQgd2hpbGUgYmVpbmcgcmVmZXJlbmNlZCBieSB0aGUgYnJl
YWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBBbGwgaW5kZXggcG9zaXRpb25zIHJldHVybmVk
IGJ5IGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyBhcmUKKyAgICAgKiBuYXRpdmUgaW5kaWNlcyBm
cm9tIHRoZSBVVGV4dC4gRm9yIGV4YW1wbGUsIHdoZW4gYnJlYWtpbmcgVVRGLTgKKyAgICAgKiBl
bmNvZGVkIHRleHQsIHRoZSBicmVhayBwb3NpdGlvbnMgcmV0dXJuZWQgYnkgbmV4dCgpLCBwcmV2
aW91cygpLCBldGMuCisgICAgICogd2lsbCBiZSBVVEYtOCBzdHJpbmcgaW5kaWNlcywgbm90IFVU
Ri0xNiBwb3NpdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGV4dCBUaGUgVVRleHQgdXNl
ZCB0byBjaGFuZ2UgdGhlIHRleHQuCisgICAgICogQHBhcmFtIHN0YXR1cyByZWNlaXZlcyBhbnkg
ZXJyb3IgY29kZXMuCisgICAgICogQHN0YWJsZSBJQ1UgMy40CisgICAgICovCisgICAgdmlydHVh
bCB2b2lkICBzZXRUZXh0KFVUZXh0ICp0ZXh0LCBVRXJyb3JDb2RlICZzdGF0dXMpID0gMDsKKwor
ICAgIC8qKgorICAgICAqIENoYW5nZSB0aGUgdGV4dCBvdmVyIHdoaWNoIHRoaXMgb3BlcmF0ZXMu
IFRoZSB0ZXh0IGJvdW5kYXJ5IGlzCisgICAgICogcmVzZXQgdG8gdGhlIHN0YXJ0LgorICAgICAq
IE5vdGUgdGhhdCBzZXRUZXh0KFVUZXh0ICopIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0
eSB0byB0aGlzIGZ1bmN0aW9uLAorICAgICAqIGFuZCBpcyBtb3JlIGVmZmljaWVudC4KKyAgICAg
KiBAcGFyYW0gaXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0
LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCAgYWRv
cHRUZXh0KENoYXJhY3Rlckl0ZXJhdG9yKiBpdCkgPSAwOworCisgICAgZW51bSB7CisgICAgICAg
IC8qKgorICAgICAgICAgKiBET05FIGlzIHJldHVybmVkIGJ5IHByZXZpb3VzKCkgYW5kIG5leHQo
KSBhZnRlciBhbGwgdmFsaWQKKyAgICAgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0dXJu
ZWQuCisgICAgICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAgICAgKi8KKyAgICAgICAgRE9O
RSA9IChpbnQzMl90KS0xCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJl
bnQgaXRlcmF0aW9uIHBvc2l0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRleHQsIHBvc2l0
aW9uIHplcm8uCisgICAgICogQHJldHVybiBUaGUgb2Zmc2V0IG9mIHRoZSBiZWdpbm5pbmcgb2Yg
dGhlIHRleHQsIHplcm8uCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBpbnQzMl90IGZpcnN0KHZvaWQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUg
aXRlcmF0b3IgcG9zaXRpb24gdG8gdGhlIGluZGV4IGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgbGFz
dCBjaGFyYWN0ZXIgaW4gdGhlIHRleHQgYmVpbmcgc2Nhbm5lZC4KKyAgICAgKiBAcmV0dXJuIFRo
ZSBpbmRleCBpbW1lZGlhdGVseSBCRVlPTkQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSB0ZXh0
IGJlaW5nIHNjYW5uZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBpbnQzMl90IGxhc3Qodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBp
dGVyYXRvciBwb3NpdGlvbiB0byB0aGUgYm91bmRhcnkgcHJlY2VkaW5nIHRoZSBjdXJyZW50IGJv
dW5kYXJ5LgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgcHJldmlv
dXMgdGV4dCBib3VuZGFyeSBvciBET05FIGlmIGFsbAorICAgICAqIGJvdW5kYXJpZXMgaGF2ZSBi
ZWVuIHJldHVybmVkLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgaW50MzJfdCBwcmV2aW91cyh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBBZHZhbmNl
IHRoZSBpdGVyYXRvciB0byB0aGUgYm91bmRhcnkgZm9sbG93aW5nIHRoZSBjdXJyZW50IGJvdW5k
YXJ5LgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3RlciBpbmRleCBvZiB0aGUgbmV4dCB0ZXh0
IGJvdW5kYXJ5IG9yIERPTkUgaWYgYWxsCisgICAgICogYm91bmRhcmllcyBoYXZlIGJlZW4gcmV0
dXJuZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQz
Ml90IG5leHQodm9pZCkgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGNoYXJhY3RlciBp
bmRleCBvZiB0aGUgY3VycmVudCBpbnRlcmF0b3IgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0Lgor
ICAgICAqIEByZXR1cm4gVGhlIGJvdW5kYXJ5IG1vc3QgcmVjZW50bHkgcmV0dXJuZWQuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGN1cnJlbnQo
dm9pZCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogQWR2YW5jZSB0aGUgaXRlcmF0b3Ig
dG8gdGhlIGZpcnN0IGJvdW5kYXJ5IGZvbGxvd2luZyB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAg
ICAgKiBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgYWx3YXlzIGdyZWF0ZXIgdGhhbiB0aGUgb2Zmc2V0
IG9yCisgICAgICogdGhlIHZhbHVlIEJyZWFrSXRlcmF0b3IuRE9ORQorICAgICAqIEBwYXJhbSBv
ZmZzZXQgdGhlIG9mZnNldCB0byBiZWdpbiBzY2FubmluZy4KKyAgICAgKiBAcmV0dXJuIFRoZSBm
aXJzdCBib3VuZGFyeSBhZnRlciB0aGUgc3BlY2lmaWVkIG9mZnNldC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZm9sbG93aW5nKGludDMyX3Qg
b2Zmc2V0KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGl0ZXJhdG9yIHBvc2l0aW9u
IHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwcmVjZWRpbmcgdGhlIHNwZWNpZmllZCBvZmZzZXQuCisg
ICAgICogVGhlIHZhbHVlIHJldHVybmVkIGlzIGFsd2F5cyBzbWFsbGVyIHRoYW4gdGhlIG9mZnNl
dCBvcgorICAgICAqIHRoZSB2YWx1ZSBCcmVha0l0ZXJhdG9yLkRPTkUKKyAgICAgKiBAcGFyYW0g
b2Zmc2V0IHRoZSBvZmZzZXQgdG8gYmVnaW4gc2Nhbm5pbmcuCisgICAgICogQHJldHVybiBUaGUg
Zmlyc3QgYm91bmRhcnkgYmVmb3JlIHRoZSBzcGVjaWZpZWQgb2Zmc2V0LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmcoaW50MzJf
dCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0cnVlIGlmIHRoZSBzcGVj
ZmllZCBwb3NpdGlvbiBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLgorICAgICAqIEFzIGEgc2lkZSBl
ZmZlY3QsIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRvciBpcyBzZXQKKyAgICAg
KiB0byB0aGUgZmlyc3QgYm91bmRhcnkgcG9zaXRpb24gYXQgb3IgZm9sbG93aW5nIHRoZSBzcGVj
aWZpZWQgb2Zmc2V0LgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCB0byBjaGVjay4K
KyAgICAgKiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMgYSBib3VuZGFyeSBwb3NpdGlvbi4K
KyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIGlzQm91
bmRhcnkoaW50MzJfdCBvZmZzZXQpID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRl
cmF0b3IgcG9zaXRpb24gdG8gdGhlIG50aCBib3VuZGFyeSBmcm9tIHRoZSBjdXJyZW50IGJvdW5k
YXJ5CisgICAgICogQHBhcmFtIG4gdGhlIG51bWJlciBvZiBib3VuZGFyaWVzIHRvIG1vdmUgYnku
ICBBIHZhbHVlIG9mIDAKKyAgICAgKiBkb2VzIG5vdGhpbmcuICBOZWdhdGl2ZSB2YWx1ZXMgbW92
ZSB0byBwcmV2aW91cyBib3VuZGFyaWVzCisgICAgICogYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3Zl
IHRvIGxhdGVyIGJvdW5kYXJpZXMuCisgICAgICogQHJldHVybiBUaGUgbmV3IGl0ZXJhdG9yIHBv
c2l0aW9uLCBvcgorICAgICAqIERPTkUgaWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gfG58IGJvdW5k
YXJpZXMgaW4gdGhlIHNwZWNmaWVkIGRpcmVjdGlvbi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbmV4dChpbnQzMl90IG4pID0gMDsKKworICAg
LyoqCisgICAgICogRm9yIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3JzLCByZXR1cm4gdGhlIHN0YXR1
cyB0YWcgZnJvbSB0aGUgCisgICAgICogYnJlYWsgcnVsZSB0aGF0IGRldGVybWluZWQgdGhlIG1v
c3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBwb3NpdGlvbi4KKyAgICAgKiA8cD4K
KyAgICAgKiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBhIHJ1
bGUgc3RhdHVzLAorICAgICAqIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVkLgorICAg
ICAqIDxwPgorICAgICAqIEByZXR1cm4gdGhlIHN0YXR1cyBmcm9tIHRoZSBicmVhayBydWxlIHRo
YXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQorICAgICAqICAgICAgICAgcmV0dXJuZWQg
YnJlYWsgcG9zaXRpb24uCisgICAgICogQHNlZSBSdWxlQmFzZUJyZWFrSXRlcmF0b3I6OmdldFJ1
bGVTdGF0dXMoKQorICAgICAqIEBzZWUgVVdvcmRCcmVhaworICAgICAqIEBzdGFibGUgSUNVIDUy
CisgICAgICovCisgICAgdmlydHVhbCBpbnQzMl90IGdldFJ1bGVTdGF0dXMoKSBjb25zdDsKKwor
ICAgLyoqCisgICAgKiBGb3IgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcnMsIGdldCB0aGUgc3RhdHVz
ICh0YWcpIHZhbHVlcyBmcm9tIHRoZSBicmVhayBydWxlKHMpIAorICAgICogdGhhdCBkZXRlcm1p
bmVkIHRoZSBtb3N0IHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICogPHA+
CisgICAgKiBGb3IgYnJlYWsgaXRlcmF0b3IgdHlwZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBydWxl
IHN0YXR1cywKKyAgICAqIG5vIHZhbHVlcyBhcmUgcmV0dXJuZWQuCisgICAgKiA8cD4KKyAgICAq
IFRoZSByZXR1cm5lZCBzdGF0dXMgdmFsdWUocykgYXJlIHN0b3JlZCBpbnRvIGFuIGFycmF5IHBy
b3ZpZGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gc29y
dGVkIChhc2NlbmRpbmcpIG9yZGVyLgorICAgICogSWYgdGhlIGNhcGFjaXR5IG9mIHRoZSBvdXRw
dXQgYXJyYXkgaXMgaW5zdWZmaWNpZW50IHRvIGhvbGQgdGhlIGRhdGEsCisgICAgKiAgdGhlIG91
dHB1dCB3aWxsIGJlIHRydW5jYXRlZCB0byB0aGUgYXZhaWxhYmxlIGxlbmd0aCwgYW5kIGEKKyAg
ICAqICBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiB3aWxsIGJlIHNpZ25hbGVkLgorICAgICogPHA+
CisgICAgKiBAc2VlIFJ1bGVCYXNlQnJlYWtJdGVyYXRvcjo6Z2V0UnVsZVN0YXR1c1ZlYworICAg
ICoKKyAgICAqIEBwYXJhbSBmaWxsSW5WZWMgYW4gYXJyYXkgdG8gYmUgZmlsbGVkIGluIHdpdGgg
dGhlIHN0YXR1cyB2YWx1ZXMuCisgICAgKiBAcGFyYW0gY2FwYWNpdHkgIHRoZSBsZW5ndGggb2Yg
dGhlIHN1cHBsaWVkIHZlY3Rvci4gIEEgbGVuZ3RoIG9mIHplcm8gY2F1c2VzCisgICAgKiAgICAg
ICAgICAgICAgICAgIHRoZSBmdW5jdGlvbiB0byByZXR1cm4gdGhlIG51bWJlciBvZiBzdGF0dXMg
dmFsdWVzLCBpbiB0aGUKKyAgICAqICAgICAgICAgICAgICAgICAgbm9ybWFsIHdheSwgd2l0aG91
dCBhdHRlbXRwaW5nIHRvIHN0b3JlIGFueSB2YWx1ZXMuCisgICAgKiBAcGFyYW0gc3RhdHVzICAg
IHJlY2VpdmVzIGVycm9yIGNvZGVzLgorICAgICogQHJldHVybiAgICAgICAgICBUaGUgbnVtYmVy
IG9mIHJ1bGUgc3RhdHVzIHZhbHVlcyBmcm9tIHJ1bGVzIHRoYXQgZGV0ZXJtaW5lZAorICAgICog
ICAgICAgICAgICAgICAgICB0aGUgbW9zdCByZWNlbnQgYm91bmRhcnkgcmV0dXJuZWQgYnkgdGhl
IGJyZWFrIGl0ZXJhdG9yLgorICAgICogICAgICAgICAgICAgICAgICBJbiB0aGUgZXZlbnQgb2Yg
YSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUiwgdGhlIHJldHVybiB2YWx1ZQorICAgICogICAgICAg
ICAgICAgICAgICBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIHN0YXR1cyB2YWx1ZXMgdGhhdCB3ZXJl
IGF2YWlsYWJsZSwKKyAgICAqICAgICAgICAgICAgICAgICAgbm90IHRoZSByZWR1Y2VkIG51bWJl
ciB0aGF0IHdlcmUgYWN0dWFsbHkgcmV0dXJuZWQuCisgICAgKiBAc2VlIGdldFJ1bGVTdGF0dXMK
KyAgICAqIEBzdGFibGUgSUNVIDUyCisgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgZ2V0UnVs
ZVN0YXR1c1ZlYyhpbnQzMl90ICpmaWxsSW5WZWMsIGludDMyX3QgY2FwYWNpdHksIFVFcnJvckNv
ZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgQnJlYWtJdGVyYXRvciBmb3Ig
d29yZC1icmVha3MgdXNpbmcgdGhlIGdpdmVuIGxvY2FsZS4KKyAgICAgKiBSZXR1cm5zIGFuIGlu
c3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgd29yZCBicmVha3MuCisgICAg
ICogV29yZEJyZWFrIGlzIHVzZWZ1bCBmb3Igd29yZCBzZWxlY3Rpb24gKGV4LiBkb3VibGUgY2xp
Y2spCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBsb2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1
cyB0aGUgZXJyb3IgY29kZQorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciB3b3Jk
LWJyZWFrcy4gIFRoZSBVRXJyb3JDb2RlJiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNl
ZCB0byByZXR1cm4gc3RhdHVzIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNo
ZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVjdGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxk
IGNoZWNrCisgICAgICogdGhlIHZhbHVlIG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2gg
bW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZv
cm1hdGlvbmFsIGVycm9yIHJlc3VsdHMgd2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAg
ICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dBUk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sg
bG9jYWxlIHdhcyB1c2VkLiAgRm9yCisgICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVz
dGVkLCBidXQgbm90aGluZyB3YXMgZm91bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNl
ZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxv
Y2FsZSBkYXRhIHdhcworICAgICAqIHVzZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUg
bm9yIGFueSBvZiBpdHMgZmFsbCBiYWNrIGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4K
KyAgICAgKiBUaGUgY2FsbGVyIG93bnMgdGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9u
c2libGUgZm9yIGRlbGV0aW5nIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKKyAgICBjcmVhdGVXb3JkSW5zdGFu
Y2UoY29uc3QgTG9jYWxlJiB3aGVyZSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgor
ICAgICAqIENyZWF0ZSBCcmVha0l0ZXJhdG9yIGZvciBsaW5lLWJyZWFrcyB1c2luZyBzcGVjaWZp
ZWQgbG9jYWxlLgorICAgICAqIFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9y
IGltcGxlbWVudGluZyBsaW5lIGJyZWFrcy4gTGluZQorICAgICAqIGJyZWFrcyBhcmUgbG9naWNh
bGx5IHBvc3NpYmxlIGxpbmUgYnJlYWtzLCBhY3R1YWwgbGluZSBicmVha3MgYXJlCisgICAgICog
dXN1YWxseSBkZXRlcm1pbmVkIGJhc2VkIG9uIGRpc3BsYXkgd2lkdGguCisgICAgICogTGluZUJy
ZWFrIGlzIHVzZWZ1bCBmb3Igd29yZCB3cmFwcGluZyB0ZXh0LgorICAgICAqIEBwYXJhbSB3aGVy
ZSB0aGUgbG9jYWxlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgVGhlIGVycm9yIGNvZGUuCisgICAg
ICogQHJldHVybiBBIEJyZWFrSXRlcmF0b3IgZm9yIGxpbmUtYnJlYWtzLiAgVGhlIFVFcnJvckNv
ZGUmIHN0YXR1cworICAgICAqIHBhcmFtZXRlciBpcyB1c2VkIHRvIHJldHVybiBzdGF0dXMgaW5m
b3JtYXRpb24gdG8gdGhlIHVzZXIuCisgICAgICogVG8gY2hlY2sgd2hldGhlciB0aGUgY29uc3Ry
dWN0aW9uIHN1Y2NlZWRlZCBvciBub3QsIHlvdSBzaG91bGQgY2hlY2sKKyAgICAgKiB0aGUgdmFs
dWUgb2YgVV9TVUNDRVNTKGVycikuICBJZiB5b3Ugd2lzaCBtb3JlIGRldGFpbGVkIGluZm9ybWF0
aW9uLCB5b3UKKyAgICAgKiBjYW4gY2hlY2sgZm9yIGluZm9ybWF0aW9uYWwgZXJyb3IgcmVzdWx0
cyB3aGljaCBzdGlsbCBpbmRpY2F0ZSBzdWNjZXNzLgorICAgICAqIFVfVVNJTkdfRkFMTEJBQ0tf
V0FSTklORyBpbmRpY2F0ZXMgdGhhdCBhIGZhbGwgYmFjayBsb2NhbGUgd2FzIHVzZWQuICBGb3IK
KyAgICAgKiBleGFtcGxlLCAnZGVfQ0gnIHdhcyByZXF1ZXN0ZWQsIGJ1dCBub3RoaW5nIHdhcyBm
b3VuZCB0aGVyZSwgc28gJ2RlJyB3YXMKKyAgICAgKiB1c2VkLiAgVV9VU0lOR19ERUZBVUxUX1dB
Uk5JTkcgaW5kaWNhdGVzIHRoYXQgdGhlIGRlZmF1bHQgbG9jYWxlIGRhdGEgd2FzCisgICAgICog
dXNlZDsgbmVpdGhlciB0aGUgcmVxdWVzdGVkIGxvY2FsZSBub3IgYW55IG9mIGl0cyBmYWxsIGJh
Y2sgbG9jYWxlcworICAgICAqIGNvdWxkIGJlIGZvdW5kLgorICAgICAqIFRoZSBjYWxsZXIgb3du
cyB0aGUgcmV0dXJuZWQgb2JqZWN0IGFuZCBpcyByZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgaXQu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIEJyZWFrSXRlcmF0
b3IqIFVfRVhQT1JUMgorICAgIGNyZWF0ZUxpbmVJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJl
LCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRl
cmF0b3IgZm9yIGNoYXJhY3Rlci1icmVha3MgdXNpbmcgc3BlY2lmaWVkIGxvY2FsZQorICAgICAq
IFJldHVybnMgYW4gaW5zdGFuY2Ugb2YgYSBCcmVha0l0ZXJhdG9yIGltcGxlbWVudGluZyBjaGFy
YWN0ZXIgYnJlYWtzLgorICAgICAqIENoYXJhY3RlciBicmVha3MgYXJlIGJvdW5kYXJpZXMgb2Yg
Y29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMuCisgICAgICogQHBhcmFtIHdoZXJlIHRoZSBs
b2NhbGUuCisgICAgICogQHBhcmFtIHN0YXR1cyBUaGUgZXJyb3IgY29kZS4KKyAgICAgKiBAcmV0
dXJuIEEgQnJlYWtJdGVyYXRvciBmb3IgY2hhcmFjdGVyLWJyZWFrcy4gIFRoZSBVRXJyb3JDb2Rl
JiBzdGF0dXMKKyAgICAgKiBwYXJhbWV0ZXIgaXMgdXNlZCB0byByZXR1cm4gc3RhdHVzIGluZm9y
bWF0aW9uIHRvIHRoZSB1c2VyLgorICAgICAqIFRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvbnN0cnVj
dGlvbiBzdWNjZWVkZWQgb3Igbm90LCB5b3Ugc2hvdWxkIGNoZWNrCisgICAgICogdGhlIHZhbHVl
IG9mIFVfU1VDQ0VTUyhlcnIpLiAgSWYgeW91IHdpc2ggbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlv
biwgeW91CisgICAgICogY2FuIGNoZWNrIGZvciBpbmZvcm1hdGlvbmFsIGVycm9yIHJlc3VsdHMg
d2hpY2ggc3RpbGwgaW5kaWNhdGUgc3VjY2Vzcy4KKyAgICAgKiBVX1VTSU5HX0ZBTExCQUNLX1dB
Uk5JTkcgaW5kaWNhdGVzIHRoYXQgYSBmYWxsIGJhY2sgbG9jYWxlIHdhcyB1c2VkLiAgRm9yCisg
ICAgICogZXhhbXBsZSwgJ2RlX0NIJyB3YXMgcmVxdWVzdGVkLCBidXQgbm90aGluZyB3YXMgZm91
bmQgdGhlcmUsIHNvICdkZScgd2FzCisgICAgICogdXNlZC4gIFVfVVNJTkdfREVGQVVMVF9XQVJO
SU5HIGluZGljYXRlcyB0aGF0IHRoZSBkZWZhdWx0IGxvY2FsZSBkYXRhIHdhcworICAgICAqIHVz
ZWQ7IG5laXRoZXIgdGhlIHJlcXVlc3RlZCBsb2NhbGUgbm9yIGFueSBvZiBpdHMgZmFsbCBiYWNr
IGxvY2FsZXMKKyAgICAgKiBjb3VsZCBiZSBmb3VuZC4KKyAgICAgKiBUaGUgY2FsbGVyIG93bnMg
dGhlIHJldHVybmVkIG9iamVjdCBhbmQgaXMgcmVzcG9uc2libGUgZm9yIGRlbGV0aW5nIGl0Lgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyBCcmVha0l0ZXJhdG9y
KiBVX0VYUE9SVDIKKyAgICBjcmVhdGVDaGFyYWN0ZXJJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdo
ZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFr
SXRlcmF0b3IgZm9yIHNlbnRlbmNlLWJyZWFrcyB1c2luZyBzcGVjaWZpZWQgbG9jYWxlCisgICAg
ICogUmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhIEJyZWFrSXRlcmF0b3IgaW1wbGVtZW50aW5nIHNl
bnRlbmNlIGJyZWFrcy4KKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBA
cGFyYW0gc3RhdHVzIFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJh
dG9yIGZvciBzZW50ZW5jZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICog
cGFyYW1ldGVyIGlzIHVzZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNl
ci4KKyAgICAgKiBUbyBjaGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9y
IG5vdCwgeW91IHNob3VsZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJy
KS4gIElmIHlvdSB3aXNoIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNh
biBjaGVjayBmb3IgaW5mb3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGlj
YXRlIHN1Y2Nlc3MuCisgICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0
aGF0IGEgZmFsbCBiYWNrIGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdk
ZV9DSCcgd2FzIHJlcXVlc3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUn
IHdhcworICAgICAqIHVzZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhh
dCB0aGUgZGVmYXVsdCBsb2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSBy
ZXF1ZXN0ZWQgbG9jYWxlIG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICog
Y291bGQgYmUgZm91bmQuCisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmpl
Y3QgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAg
Y3JlYXRlU2VudGVuY2VJbnN0YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBz
dGF0dXMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIEJyZWFrSXRlcmF0b3IgZm9yIHRpdGxl
LWNhc2luZyBicmVha3MgdXNpbmcgdGhlIHNwZWNpZmllZCBsb2NhbGUKKyAgICAgKiBSZXR1cm5z
IGFuIGluc3RhbmNlIG9mIGEgQnJlYWtJdGVyYXRvciBpbXBsZW1lbnRpbmcgdGl0bGUgYnJlYWtz
LgorICAgICAqIFRoZSBpdGVyYXRvciByZXR1cm5lZCBsb2NhdGVzIHRpdGxlIGJvdW5kYXJpZXMg
YXMgZGVzY3JpYmVkIGZvcgorICAgICAqIFVuaWNvZGUgMy4yIG9ubHkuIEZvciBVbmljb2RlIDQu
MCBhbmQgYWJvdmUgdGl0bGUgYm91bmRhcnkgaXRlcmF0aW9uLAorICAgICAqIHBsZWFzZSB1c2Ug
V29yZCBCb3VuZGFyeSBpdGVyYXRvci57QGxpbmsgI2NyZWF0ZVdvcmRJbnN0YW5jZSB9CisgICAg
ICoKKyAgICAgKiBAcGFyYW0gd2hlcmUgdGhlIGxvY2FsZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVz
IFRoZSBlcnJvciBjb2RlLgorICAgICAqIEByZXR1cm4gQSBCcmVha0l0ZXJhdG9yIGZvciB0aXRs
ZS1icmVha3MuICBUaGUgVUVycm9yQ29kZSYgc3RhdHVzCisgICAgICogcGFyYW1ldGVyIGlzIHVz
ZWQgdG8gcmV0dXJuIHN0YXR1cyBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4KKyAgICAgKiBUbyBj
aGVjayB3aGV0aGVyIHRoZSBjb25zdHJ1Y3Rpb24gc3VjY2VlZGVkIG9yIG5vdCwgeW91IHNob3Vs
ZCBjaGVjaworICAgICAqIHRoZSB2YWx1ZSBvZiBVX1NVQ0NFU1MoZXJyKS4gIElmIHlvdSB3aXNo
IG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24sIHlvdQorICAgICAqIGNhbiBjaGVjayBmb3IgaW5m
b3JtYXRpb25hbCBlcnJvciByZXN1bHRzIHdoaWNoIHN0aWxsIGluZGljYXRlIHN1Y2Nlc3MuCisg
ICAgICogVV9VU0lOR19GQUxMQkFDS19XQVJOSU5HIGluZGljYXRlcyB0aGF0IGEgZmFsbCBiYWNr
IGxvY2FsZSB3YXMgdXNlZC4gIEZvcgorICAgICAqIGV4YW1wbGUsICdkZV9DSCcgd2FzIHJlcXVl
c3RlZCwgYnV0IG5vdGhpbmcgd2FzIGZvdW5kIHRoZXJlLCBzbyAnZGUnIHdhcworICAgICAqIHVz
ZWQuICBVX1VTSU5HX0RFRkFVTFRfV0FSTklORyBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBs
b2NhbGUgZGF0YSB3YXMKKyAgICAgKiB1c2VkOyBuZWl0aGVyIHRoZSByZXF1ZXN0ZWQgbG9jYWxl
IG5vciBhbnkgb2YgaXRzIGZhbGwgYmFjayBsb2NhbGVzCisgICAgICogY291bGQgYmUgZm91bmQu
CisgICAgICogVGhlIGNhbGxlciBvd25zIHRoZSByZXR1cm5lZCBvYmplY3QgYW5kIGlzIHJlc3Bv
bnNpYmxlIGZvciBkZWxldGluZyBpdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjEKKyAgICAgKi8K
KyAgICBzdGF0aWMgQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCisgICAgY3JlYXRlVGl0bGVJbnN0
YW5jZShjb25zdCBMb2NhbGUmIHdoZXJlLCBVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgLyoq
CisgICAgICogR2V0IHRoZSBzZXQgb2YgTG9jYWxlcyBmb3Igd2hpY2ggVGV4dEJvdW5kYXJpZXMg
YXJlIGluc3RhbGxlZC4KKyAgICAgKiA8cD48Yj5Ob3RlOjwvYj4gdGhpcyB3aWxsIG5vdCByZXR1
cm4gbG9jYWxlcyBhZGRlZCB0aHJvdWdoIHRoZSByZWdpc3RlcgorICAgICAqIGNhbGwuIFRvIHNl
ZSB0aGUgcmVnaXN0ZXJlZCBsb2NhbGVzIHRvbywgdXNlIHRoZSBnZXRBdmFpbGFibGVMb2NhbGVz
CisgICAgICogZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgU3RyaW5nRW51bWVyYXRpb24gb2JqZWN0
IDwvcD4KKyAgICAgKiBAcGFyYW0gY291bnQgdGhlIG91dHB1dCBwYXJhbWV0ZXIgb2YgbnVtYmVy
IG9mIGVsZW1lbnRzIGluIHRoZSBsb2NhbGUgbGlzdAorICAgICAqIEByZXR1cm4gYXZhaWxhYmxl
IGxvY2FsZXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxlTG9jYWxlcyhpbnQzMl90JiBjb3VudCk7
CisKKyAgICAvKioKKyAgICAgKiBHZXQgbmFtZSBvZiB0aGUgb2JqZWN0IGZvciB0aGUgZGVzaXJl
ZCBMb2NhbGUsIGluIHRoZSBkZXNpcmVkIGxhbmdhdWdlLgorICAgICAqIEBwYXJhbSBvYmplY3RM
b2NhbGUgbXVzdCBiZSBmcm9tIGdldEF2YWlsYWJsZUxvY2FsZXMuCisgICAgICogQHBhcmFtIGRp
c3BsYXlMb2NhbGUgc3BlY2lmaWVzIHRoZSBkZXNpcmVkIGxvY2FsZSBmb3Igb3V0cHV0LgorICAg
ICAqIEBwYXJhbSBuYW1lIHRoZSBmaWxsLWluIHBhcmFtZXRlciBvZiB0aGUgcmV0dXJuIHZhbHVl
CisgICAgICogVXNlcyBiZXN0IG1hdGNoLgorICAgICAqIEByZXR1cm4gdXNlci1kaXNwbGF5YWJs
ZSBuYW1lCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVuaWNv
ZGVTdHJpbmcmIFVfRVhQT1JUMiBnZXREaXNwbGF5TmFtZShjb25zdCBMb2NhbGUmIG9iamVjdExv
Y2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTG9j
YWxlJiBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVbmljb2RlU3RyaW5nJiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIEdldCBuYW1lIG9m
IHRoZSBvYmplY3QgZm9yIHRoZSBkZXNpcmVkIExvY2FsZSwgaW4gdGhlIGxhbmdhdWdlIG9mIHRo
ZQorICAgICAqIGRlZmF1bHQgbG9jYWxlLgorICAgICAqIEBwYXJhbSBvYmplY3RMb2NhbGUgbXVz
dCBiZSBmcm9tIGdldE1hdGNoaW5nTG9jYWxlcworICAgICAqIEBwYXJhbSBuYW1lIHRoZSBmaWxs
LWluIHBhcmFtZXRlciBvZiB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogQHJldHVybiB1c2VyLWRp
c3BsYXlhYmxlIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBzdGF0
aWMgVW5pY29kZVN0cmluZyYgVV9FWFBPUlQyIGdldERpc3BsYXlOYW1lKGNvbnN0IExvY2FsZSYg
b2JqZWN0TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBV
bmljb2RlU3RyaW5nJiBuYW1lKTsKKworICAgIC8qKgorICAgICAqIERlcHJlY2F0ZWQgZnVuY3Rp
b25hbGl0eS4gVXNlIGNsb25lKCkgaW5zdGVhZC4KKyAgICAgKgorICAgICAqIFRocmVhZCBzYWZl
IGNsaWVudC1idWZmZXItYmFzZWQgY2xvbmluZyBvcGVyYXRpb24KKyAgICAgKiAgICBEbyBOT1Qg
Y2FsbCBkZWxldGUgb24gYSBzYWZlY2xvbmUsIHNpbmNlICduZXcnIGlzIG5vdCB1c2VkIHRvIGNy
ZWF0ZSBpdC4KKyAgICAgKiBAcGFyYW0gc3RhY2tCdWZmZXIgdXNlciBhbGxvY2F0ZWQgc3BhY2Ug
Zm9yIHRoZSBuZXcgY2xvbmUuIElmIE5VTEwgbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRlZC4K
KyAgICAgKiBJZiBidWZmZXIgaXMgbm90IGxhcmdlIGVub3VnaCwgbmV3IG1lbW9yeSB3aWxsIGJl
IGFsbG9jYXRlZC4KKyAgICAgKiBAcGFyYW0gQnVmZmVyU2l6ZSByZWZlcmVuY2UgdG8gc2l6ZSBv
ZiBhbGxvY2F0ZWQgc3BhY2UuCisgICAgICogSWYgQnVmZmVyU2l6ZSA9PSAwLCBhIHN1ZmZpY2ll
bnQgc2l6ZSBmb3IgdXNlIGluIGNsb25pbmcgd2lsbAorICAgICAqIGJlIHJldHVybmVkICgncHJl
LWZsaWdodGluZycpCisgICAgICogSWYgQnVmZmVyU2l6ZSBpcyBub3QgZW5vdWdoIGZvciBhIHN0
YWNrLWJhc2VkIHNhZmUgY2xvbmUsCisgICAgICogbmV3IG1lbW9yeSB3aWxsIGJlIGFsbG9jYXRl
ZC4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIG9wZXJhdGlv
biB3ZW50IG9uIHNtb290aGx5IG9yIHRoZXJlIHdlcmUgZXJyb3JzCisgICAgICogIEFuIGluZm9y
bWF0aW9uYWwgc3RhdHVzIHZhbHVlLCBVX1NBRkVDTE9ORV9BTExPQ0FURURfRVJST1IsIGlzIHVz
ZWQgaWYgYW55IGFsbG9jYXRpb25zIHdlcmUKKyAgICAgKiAgbmVjZXNzYXJ5LgorICAgICAqIEBy
ZXR1cm4gcG9pbnRlciB0byB0aGUgbmV3IGNsb25lCisgICAgICoKKyAgICAgKiBAZGVwcmVjYXRl
ZCBJQ1UgNTIuIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICovCisgICAgdmlydHVhbCBCcmVh
a0l0ZXJhdG9yICogIGNyZWF0ZUJ1ZmZlckNsb25lKHZvaWQgKnN0YWNrQnVmZmVyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90ICZCdWZmZXJT
aXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVRXJy
b3JDb2RlICZzdGF0dXMpID0gMDsKKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKwor
ICAgIC8qKgorICAgICAqICAgRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIEJyZWFrSXRlcmF0b3Igd2Fz
IGNyZWF0ZWQgaW4gdXNlciBtZW1vcnkgYnkKKyAgICAgKiAgIGNyZWF0ZUJ1ZmZlckNsb25lKCks
IGFuZCB0aHVzIHNob3VsZCBub3QgYmUgZGVsZXRlZC4gIFN1Y2ggb2JqZWN0cworICAgICAqICAg
bXVzdCBiZSBjbG9zZWQgYnkgYW4gZXhwbGljaXQgY2FsbCB0byB0aGUgZGVzdHJ1Y3RvciAobm90
IGRlbGV0ZSkuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBBbHdheXMgZGVsZXRlIHRoZSBC
cmVha0l0ZXJhdG9yLgorICAgICAqLworICAgIGlubGluZSBVQm9vbCBpc0J1ZmZlckNsb25lKHZv
aWQpOworCisjZW5kaWYgLyogVV9ISURFX0RFUFJFQ0FURURfQVBJICovCisKKyNpZiAhVUNPTkZJ
R19OT19TRVJWSUNFCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBuZXcgYnJlYWsgaXRlcmF0
b3Igb2YgdGhlIGluZGljYXRlZCBraW5kLCB0byB1c2UgaW4gdGhlIGdpdmVuIGxvY2FsZS4KKyAg
ICAgKiBUaGUgYnJlYWsgaXRlcmF0b3Igd2lsbCBiZSBhZG9wdGVkLiAgQ2xvbmVzIG9mIHRoZSBp
dGVyYXRvciB3aWxsIGJlIHJldHVybmVkCisgICAgICogaWYgYSByZXF1ZXN0IGZvciBhIGJyZWFr
IGl0ZXJhdG9yIG9mIHRoZSBnaXZlbiBraW5kIG1hdGNoZXMgb3IgZmFsbHMgYmFjayB0bworICAg
ICAqIHRoaXMgbG9jYWxlLgorICAgICAqIEJlY2F1c2UgSUNVIG1heSBjaG9vc2UgdG8gY2FjaGUg
QnJlYWtJdGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBtdXN0CisgICAgICogYmUgY2FsbGVkIGF0
IGFwcGxpY2F0aW9uIHN0YXJ0dXAsIHByaW9yIHRvIGFueSBjYWxscyB0bworICAgICAqIEJyZWFr
SXRlcmF0b3I6OmNyZWF0ZVhYWEluc3RhbmNlIHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhhdmlvci4K
KyAgICAgKiBAcGFyYW0gdG9BZG9wdCB0aGUgQnJlYWtJdGVyYXRvciBpbnN0YW5jZSB0byBiZSBh
ZG9wdGVkCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgTG9jYWxlIGZvciB3aGljaCB0aGlzIGlu
c3RhbmNlIGlzIHRvIGJlIHJlZ2lzdGVyZWQKKyAgICAgKiBAcGFyYW0ga2luZCB0aGUgdHlwZSBv
ZiBpdGVyYXRvciBmb3Igd2hpY2ggdGhpcyBpbnN0YW5jZSBpcyB0byBiZSByZWdpc3RlcmVkCisg
ICAgICogQHBhcmFtIHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVjaWFsIG1l
YW5pbmdzIGFyZSBhc3NpZ25lZAorICAgICAqIEByZXR1cm4gYSByZWdpc3RyeSBrZXkgdGhhdCBj
YW4gYmUgdXNlZCB0byB1bnJlZ2lzdGVyIHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAc3RhYmxlIElD
VSAyLjQKKyAgICAgKi8KKyAgICBzdGF0aWMgVVJlZ2lzdHJ5S2V5IFVfRVhQT1JUMiByZWdpc3Rl
ckluc3RhbmNlKEJyZWFrSXRlcmF0b3IqIHRvQWRvcHQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgTG9jYWxlJiBsb2NhbGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVUJyZWFrSXRlcmF0b3JUeXBlIGtpbmQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSYgc3RhdHVzKTsKKwor
ICAgIC8qKgorICAgICAqIFVucmVnaXN0ZXIgYSBwcmV2aW91c2x5LXJlZ2lzdGVyZWQgQnJlYWtJ
dGVyYXRvciB1c2luZyB0aGUga2V5IHJldHVybmVkIGZyb20gdGhlCisgICAgICogcmVnaXN0ZXIg
Y2FsbC4gIEtleSBiZWNvbWVzIGludmFsaWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgYW5kIHNo
b3VsZCBub3QgYmUgdXNlZCBhZ2Fpbi4KKyAgICAgKiBUaGUgQnJlYWtJdGVyYXRvciBjb3JyZXNw
b25kaW5nIHRvIHRoZSBrZXkgd2lsbCBiZSBkZWxldGVkLgorICAgICAqIEJlY2F1c2UgSUNVIG1h
eSBjaG9vc2UgdG8gY2FjaGUgQnJlYWtJdGVyYXRvcnMgaW50ZXJuYWxseSwgdGhpcyBzaG91bGQK
KyAgICAgKiBiZSBjYWxsZWQgZHVyaW5nIGFwcGxpY2F0aW9uIHNodXRkb3duLCBhZnRlciBhbGwg
Y2FsbHMgdG8KKyAgICAgKiBCcmVha0l0ZXJhdG9yOjpjcmVhdGVYWFhJbnN0YW5jZSB0byBhdm9p
ZCB1bmRlZmluZWQgYmVoYXZpb3IuCisgICAgICogQHBhcmFtIGtleSB0aGUgcmVnaXN0cnkga2V5
IHJldHVybmVkIGJ5IGEgcHJldmlvdXMgY2FsbCB0byByZWdpc3Rlckluc3RhbmNlCisgICAgICog
QHBhcmFtIHN0YXR1cyB0aGUgaW4vb3V0IHN0YXR1cyBjb2RlLCBubyBzcGVjaWFsIG1lYW5pbmdz
IGFyZSBhc3NpZ25lZAorICAgICAqIEByZXR1cm4gVFJVRSBpZiB0aGUgaXRlcmF0b3IgZm9yIHRo
ZSBrZXkgd2FzIHN1Y2Nlc3NmdWxseSB1bnJlZ2lzdGVyZWQKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjQKKyAgICAgKi8KKyAgICBzdGF0aWMgVUJvb2wgVV9FWFBPUlQyIHVucmVnaXN0ZXIoVVJlZ2lz
dHJ5S2V5IGtleSwgVUVycm9yQ29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVy
biBhIFN0cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMgYXZhaWxhYmxlIGF0IHRoZSB0
aW1lIG9mIHRoZSBjYWxsLAorICAgICAqIGluY2x1ZGluZyByZWdpc3RlcmVkIGxvY2FsZXMuCisg
ICAgICogQHJldHVybiBhIFN0cmluZ0VudW1lcmF0aW9uIG92ZXIgdGhlIGxvY2FsZXMgYXZhaWxh
YmxlIGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsCisgICAgICogQHN0YWJsZSBJQ1UgMi40CisgICAg
ICovCisgICAgc3RhdGljIFN0cmluZ0VudW1lcmF0aW9uKiBVX0VYUE9SVDIgZ2V0QXZhaWxhYmxl
TG9jYWxlcyh2b2lkKTsKKyNlbmRpZgorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9j
YWxlIGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiBUd28gZmxhdm9ycyBhcmUgYXZhaWxhYmxlOiB2
YWxpZCBhbmQKKyAgICAgKiBhY3R1YWwgbG9jYWxlLgorICAgICAqIEBzdGFibGUgSUNVIDIuOAor
ICAgICAqLworICAgIExvY2FsZSBnZXRMb2NhbGUoVUxvY0RhdGFMb2NhbGVUeXBlIHR5cGUsIFVF
cnJvckNvZGUmIHN0YXR1cykgY29uc3Q7CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQor
ICAgIC8qKiBHZXQgdGhlIGxvY2FsZSBmb3IgdGhpcyBicmVhayBpdGVyYXRvciBvYmplY3QuIFlv
dSBjYW4gY2hvb3NlIGJldHdlZW4gdmFsaWQgYW5kIGFjdHVhbCBsb2NhbGUuCisgICAgICogIEBw
YXJhbSB0eXBlIHR5cGUgb2YgdGhlIGxvY2FsZSB3ZSdyZSBsb29raW5nIGZvciAodmFsaWQgb3Ig
YWN0dWFsKQorICAgICAqICBAcGFyYW0gc3RhdHVzIGVycm9yIGNvZGUgZm9yIHRoZSBvcGVyYXRp
b24KKyAgICAgKiAgQHJldHVybiB0aGUgbG9jYWxlCisgICAgICogIEBpbnRlcm5hbAorICAgICAq
LworICAgIGNvbnN0IGNoYXIgKmdldExvY2FsZUlEKFVMb2NEYXRhTG9jYWxlVHlwZSB0eXBlLCBV
RXJyb3JDb2RlJiBzdGF0dXMpIGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJ
ICovCisKKyAgICAvKioKKyAgICAgKiAgU2V0IHRoZSBzdWJqZWN0IHRleHQgc3RyaW5nIHVwb24g
d2hpY2ggdGhlIGJyZWFrIGl0ZXJhdG9yIGlzIG9wZXJhdGluZworICAgICAqICB3aXRob3V0IGNo
YW5naW5nIGFueSBvdGhlciBhc3BlY3Qgb2YgdGhlIG1hdGNoaW5nIHN0YXRlLgorICAgICAqICBU
aGUgbmV3IGFuZCBwcmV2aW91cyB0ZXh0IHN0cmluZ3MgbXVzdCBoYXZlIHRoZSBzYW1lIGNvbnRl
bnQuCisgICAgICoKKyAgICAgKiAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGlu
IGVudmlyb25tZW50cyB3aGVyZSBJQ1UgaXMgb3BlcmF0aW5nIG9uCisgICAgICogIHN0cmluZ3Mg
dGhhdCBtYXkgbW92ZSBhcm91bmQgaW4gbWVtb3J5LiAgSXQgcHJvdmlkZXMgYSBtZWNoYW5pc20g
Zm9yIG5vdGlmeWluZworICAgICAqICBJQ1UgdGhhdCB0aGUgc3RyaW5nIGhhcyBiZWVuIHJlbG9j
YXRlZCwgYW5kIHByb3ZpZGluZyBhIG5ldyBVVGV4dCB0byBhY2Nlc3MgdGhlCisgICAgICogIHN0
cmluZyBpbiBpdHMgbmV3IHBvc2l0aW9uLgorICAgICAqCisgICAgICogIE5vdGUgdGhhdCB0aGUg
YnJlYWsgaXRlcmF0b3IgaW1wbGVtZW50YXRpb24gbmV2ZXIgY29waWVzIHRoZSB1bmRlcmx5aW5n
IHRleHQKKyAgICAgKiAgb2YgYSBzdHJpbmcgYmVpbmcgcHJvY2Vzc2VkLCBidXQgYWx3YXlzIG9w
ZXJhdGVzIGRpcmVjdGx5IG9uIHRoZSBvcmlnaW5hbCB0ZXh0CisgICAgICogIHByb3ZpZGVkIGJ5
IHRoZSB1c2VyLiBSZWZyZXNoaW5nIHNpbXBseSBkcm9wcyB0aGUgcmVmZXJlbmNlcyB0byB0aGUg
b2xkIHRleHQKKyAgICAgKiAgYW5kIHJlcGxhY2VzIHRoZW0gd2l0aCByZWZlcmVuY2VzIHRvIHRo
ZSBuZXcuCisgICAgICoKKyAgICAgKiAgQ2F1dGlvbjogIHRoaXMgZnVuY3Rpb24gaXMgbm9ybWFs
bHkgdXNlZCBvbmx5IGJ5IHZlcnkgc3BlY2lhbGl6ZWQsCisgICAgICogIHN5c3RlbS1sZXZlbCBj
b2RlLiAgT25lIGV4YW1wbGUgdXNlIGNhc2UgaXMgd2l0aCBnYXJiYWdlIGNvbGxlY3Rpb24gdGhh
dCBtb3ZlcworICAgICAqICB0aGUgdGV4dCBpbiBtZW1vcnkuCisgICAgICoKKyAgICAgKiBAcGFy
YW0gaW5wdXQgICAgICBUaGUgbmV3IChtb3ZlZCkgdGV4dCBzdHJpbmcuCisgICAgICogQHBhcmFt
IHN0YXR1cyAgICAgUmVjZWl2ZXMgZXJyb3JzIGRldGVjdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCisg
ICAgICogQHJldHVybiAgICAgICAgICAgKnRoaXMKKyAgICAgKgorICAgICAqIEBzdGFibGUgSUNV
IDQ5CisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yICZyZWZyZXNoSW5wdXRUZXh0
KFVUZXh0ICppbnB1dCwgVUVycm9yQ29kZSAmc3RhdHVzKSA9IDA7CisKKyBwcml2YXRlOgorICAg
IHN0YXRpYyBCcmVha0l0ZXJhdG9yKiBidWlsZEluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBj
b25zdCBjaGFyICp0eXBlLCBpbnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisgICAg
c3RhdGljIEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUluc3RhbmNlKGNvbnN0IExvY2FsZSYgbG9jLCBp
bnQzMl90IGtpbmQsIFVFcnJvckNvZGUmIHN0YXR1cyk7CisgICAgc3RhdGljIEJyZWFrSXRlcmF0
b3IqIG1ha2VJbnN0YW5jZShjb25zdCBMb2NhbGUmIGxvYywgaW50MzJfdCBraW5kLCBVRXJyb3JD
b2RlJiBzdGF0dXMpOworCisgICAgZnJpZW5kIGNsYXNzIElDVUJyZWFrSXRlcmF0b3JGYWN0b3J5
OworICAgIGZyaWVuZCBjbGFzcyBJQ1VCcmVha0l0ZXJhdG9yU2VydmljZTsKKworcHJvdGVjdGVk
OgorICAgIC8vIERvIG5vdCBlbmNsb3NlIHByb3RlY3RlZCBkZWZhdWx0L2NvcHkgY29uc3RydWN0
b3JzIHdpdGggI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisgICAgLy8gb3IgZWxzZSB0aGUg
Y29tcGlsZXIgd2lsbCBjcmVhdGUgYSBwdWJsaWMgb25lcy4KKyAgICAvKiogQGludGVybmFsICov
CisgICAgQnJlYWtJdGVyYXRvcigpOworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0
ZXJhdG9yIChjb25zdCBCcmVha0l0ZXJhdG9yICZvdGhlcikgOiBVT2JqZWN0KG90aGVyKSB7fQor
ICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBCcmVha0l0ZXJhdG9yIChjb25zdCBMb2NhbGUmIHZh
bGlkLCBjb25zdCBMb2NhbGUmIGFjdHVhbCk7Citwcml2YXRlOgorCisgICAgLyoqIEBpbnRlcm5h
bCAqLworICAgIGNoYXIgYWN0dWFsTG9jYWxlW1VMT0NfRlVMTE5BTUVfQ0FQQUNJVFldOworICAg
IGNoYXIgdmFsaWRMb2NhbGVbVUxPQ19GVUxMTkFNRV9DQVBBQ0lUWV07CisKKyAgICAvKioKKyAg
ICAgKiBUaGUgYXNzaWdubWVudCBvcGVyYXRvciBoYXMgbm8gcmVhbCBpbXBsZW1lbnRhdGlvbi4K
KyAgICAgKiBJdCdzIHByb3ZpZGVkIHRvIG1ha2UgdGhlIGNvbXBpbGVyIGhhcHB5LiBEbyBub3Qg
Y2FsbC4KKyAgICAgKi8KKyAgICBCcmVha0l0ZXJhdG9yJiBvcGVyYXRvcj0oY29uc3QgQnJlYWtJ
dGVyYXRvciYpOworfTsKKworI2lmbmRlZiBVX0hJREVfREVQUkVDQVRFRF9BUEkKKworaW5saW5l
IFVCb29sIEJyZWFrSXRlcmF0b3I6OmlzQnVmZmVyQ2xvbmUoKQoreworICAgIHJldHVybiBGQUxT
RTsKK30KKworI2VuZGlmIC8qIFVfSElERV9ERVBSRUNBVEVEX0FQSSAqLworCitVX05BTUVTUEFD
RV9FTkQKKworI2VuZGlmIC8qICNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04gKi8KKwor
I2VuZGlmIC8vIF9CUktJVEVSCisvL2VvZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5p
Y29kZS9jaGFyaXRlci5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9jaGFyaXRlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU4ZDY1MDkwYTQwYTYwODU5NTFjNzMzMDdmNzRhY2Y4M2JhMWJiYzgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2NoYXJpdGVyLmgKQEAgLTAsMCArMSw3
MjIgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgorKgorKiAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDExLCBJ
bnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVy
cy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBD
SEFSSVRFUl9ICisjZGVmaW5lIENIQVJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVz
LmgiCisjaW5jbHVkZSAidW5pY29kZS91b2JqZWN0LmgiCisjaW5jbHVkZSAidW5pY29kZS91bmlz
dHIuaCIKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDKysgQVBJOiBDaGFyYWN0ZXIgSXRlcmF0
b3IKKyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhh
dCBkZWZpbmVzIGFuIEFQSSBmb3IgZm9yd2FyZC1vbmx5IGl0ZXJhdGlvbgorICogb24gdGV4dCBv
YmplY3RzLgorICogVGhpcyBpcyBhIG1pbmltYWwgaW50ZXJmYWNlIGZvciBpdGVyYXRpb24gd2l0
aG91dCByYW5kb20gYWNjZXNzCisgKiBvciBiYWNrd2FyZHMgaXRlcmF0aW9uLiBJdCBpcyBlc3Bl
Y2lhbGx5IHVzZWZ1bCBmb3Igd3JhcHBpbmcKKyAqIHN0cmVhbXMgd2l0aCBjb252ZXJ0ZXJzIGlu
dG8gYW4gb2JqZWN0IGZvciBjb2xsYXRpb24gb3IKKyAqIG5vcm1hbGl6YXRpb24uCisgKgorICog
PHA+Q2hhcmFjdGVycyBjYW4gYmUgYWNjZXNzZWQgaW4gdHdvIHdheXM6IGFzIGNvZGUgdW5pdHMg
b3IgYXMKKyAqIGNvZGUgcG9pbnRzLgorICogVW5pY29kZSBjb2RlIHBvaW50cyBhcmUgMjEtYml0
IGludGVnZXJzIGFuZCBhcmUgdGhlIHNjYWxhciB2YWx1ZXMKKyAqIG9mIFVuaWNvZGUgY2hhcmFj
dGVycy4gSUNVIHVzZXMgdGhlIHR5cGUgVUNoYXIzMiBmb3IgdGhlbS4KKyAqIFVuaWNvZGUgY29k
ZSB1bml0cyBhcmUgdGhlIHN0b3JhZ2UgdW5pdHMgb2YgYSBnaXZlbgorICogVW5pY29kZS9VQ1Mg
VHJhbnNmb3JtYXRpb24gRm9ybWF0IChhIGNoYXJhY3RlciBlbmNvZGluZyBzY2hlbWUpLgorICog
V2l0aCBVVEYtMTYsIGFsbCBjb2RlIHBvaW50cyBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aCBlaXRo
ZXIgb25lCisgKiBvciB0d28gY29kZSB1bml0cyAoInN1cnJvZ2F0ZXMiKS4KKyAqIFN0cmluZyBz
dG9yYWdlIGlzIHR5cGljYWxseSBiYXNlZCBvbiBjb2RlIHVuaXRzLCB3aGlsZSBwcm9wZXJ0aWVz
CisgKiBvZiBjaGFyYWN0ZXJzIGFyZSB0eXBpY2FsbHkgZGV0ZXJtaW5lZCB1c2luZyBjb2RlIHBv
aW50IHZhbHVlcy4KKyAqIFNvbWUgcHJvY2Vzc2VzIG1heSBiZSBkZXNpZ25lZCB0byB3b3JrIHdp
dGggc2VxdWVuY2VzIG9mIGNvZGUgdW5pdHMsCisgKiBvciBpdCBtYXkgYmUga25vd24gdGhhdCBh
bGwgY2hhcmFjdGVycyB0aGF0IGFyZSBpbXBvcnRhbnQgdG8gYW4KKyAqIGFsZ29yaXRobSBjYW4g
YmUgcmVwcmVzZW50ZWQgd2l0aCBzaW5nbGUgY29kZSB1bml0cy4KKyAqIE90aGVyIHByb2Nlc3Nl
cyB3aWxsIG5lZWQgdG8gdXNlIHRoZSBjb2RlIHBvaW50IGFjY2VzcyBmdW5jdGlvbnMuPC9wPgor
ICoKKyAqIDxwPkZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciBwcm92aWRlcyBuZXh0UG9zdEluYygp
IHRvIGFjY2VzcworICogYSBjb2RlIHVuaXQgYW5kIGFkdmFuY2UgYW4gaW50ZXJuYWwgcG9zaXRp
b24gaW50byB0aGUgdGV4dCBvYmplY3QsCisgKiBzaW1pbGFyIHRvIGEgPGNvZGU+cmV0dXJuIHRl
eHRbcG9zaXRpb24rK108L2NvZGU+Ljxicj4KKyAqIEl0IHByb3ZpZGVzIG5leHQzMlBvc3RJbmMo
KSB0byBhY2Nlc3MgYSBjb2RlIHBvaW50IGFuZCBhZHZhbmNlIGFuIGludGVybmFsCisgKiBwb3Np
dGlvbi48L3A+CisgKgorICogPHA+bmV4dDMyUG9zdEluYygpIGFzc3VtZXMgdGhhdCB0aGUgY3Vy
cmVudCBwb3NpdGlvbiBpcyB0aGF0IG9mCisgKiB0aGUgYmVnaW5uaW5nIG9mIGEgY29kZSBwb2lu
dCwgaS5lLiwgb2YgaXRzIGZpcnN0IGNvZGUgdW5pdC4KKyAqIEFmdGVyIG5leHQzMlBvc3RJbmMo
KSwgdGhpcyB3aWxsIGJlIHRydWUgYWdhaW4uCisgKiBJbiBnZW5lcmFsLCBhY2Nlc3MgdG8gY29k
ZSB1bml0cyBhbmQgY29kZSBwb2ludHMgaW4gdGhlIHNhbWUKKyAqIGl0ZXJhdGlvbiBsb29wIHNo
b3VsZCBub3QgYmUgbWl4ZWQuIEluIFVURi0xNiwgaWYgdGhlIGN1cnJlbnQgcG9zaXRpb24KKyAq
IGlzIG9uIGEgc2Vjb25kIGNvZGUgdW5pdCAoTG93IFN1cnJvZ2F0ZSksIHRoZW4gb25seSB0aGF0
IGNvZGUgdW5pdAorICogaXMgcmV0dXJuZWQgZXZlbiBieSBuZXh0MzJQb3N0SW5jKCkuPC9wPgor
ICoKKyAqIDxwPkZvciBpdGVyYXRpb24gd2l0aCBlaXRoZXIgZnVuY3Rpb24sIHRoZXJlIGFyZSB0
d28gd2F5cyB0bworICogY2hlY2sgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbi4gV2hlbiB0
aGVyZSBhcmUgbm8gbW9yZQorICogY2hhcmFjdGVycyBpbiB0aGUgdGV4dCBvYmplY3Q6CisgKiA8
dWw+CisgKiA8bGk+VGhlIGhhc05leHQoKSBmdW5jdGlvbiByZXR1cm5zIEZBTFNFLjwvbGk+Cisg
KiA8bGk+bmV4dFBvc3RJbmMoKSBhbmQgbmV4dDMyUG9zdEluYygpIHJldHVybiBET05FCisgKiAg
ICAgd2hlbiBvbmUgYXR0ZW1wdHMgdG8gcmVhZCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgdGV4dCBv
YmplY3QuPC9saT4KKyAqIDwvdWw+CisgKgorICogRXhhbXBsZToKKyAqIFxjb2RlIAorICogdm9p
ZCBmdW5jdGlvbjEoRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgIFVDaGFy
MzIgYzsKKyAqICAgICB3aGlsZShpdC5oYXNOZXh0KCkpIHsKKyAqICAgICAgICAgYz1pdC5uZXh0
MzJQb3N0SW5jKCk7CisgKiAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgfQorICogfQorICoKKyAq
IHZvaWQgZnVuY3Rpb24xKEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAqICAgICBV
Q2hhciBjOworICogICAgIHdoaWxlKChjPWl0Lm5leHRQb3N0SW5jKCkpIT1Gb3J3YXJkQ2hhcmFj
dGVySXRlcmF0b3I6OkRPTkUpIHsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAgfQorICog
IH0KKyAqIFxlbmRjb2RlCisgKiA8L3A+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2Ns
YXNzIFVfQ09NTU9OX0FQSSBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgVU9iamVj
dCB7CitwdWJsaWM6CisgICAgLyoqCisgICAgICogVmFsdWUgcmV0dXJuZWQgYnkgbW9zdCBvZiBG
b3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IncyBmdW5jdGlvbnMKKyAgICAgKiB3aGVuIHRoZSBpdGVy
YXRvciBoYXMgcmVhY2hlZCB0aGUgbGltaXRzIG9mIGl0cyBpdGVyYXRpb24uCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgZW51bSB7IERPTkUgPSAweGZmZmYgfTsKKyAgICAK
KyAgICAvKioKKyAgICAgKiBEZXN0cnVjdG9yLiAgCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCB+Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yKCk7CisgICAgCisg
ICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIHdoZW4gYm90aCBpdGVyYXRvcnMgcmVmZXIgdG8g
dGhlIHNhbWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgY2hhcmFjdGVyLXN0b3JhZ2Ug
b2JqZWN0LiAgCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRv
ciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIHRydWUgd2hlbiBi
b3RoIGl0ZXJhdG9ycyByZWZlciB0byB0aGUgc2FtZQorICAgICAqIGNoYXJhY3RlciBpbiB0aGUg
c2FtZSBjaGFyYWN0ZXItc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIFVCb29sIG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rl
ckl0ZXJhdG9yJiB0aGF0KSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJu
cyB0cnVlIHdoZW4gdGhlIGl0ZXJhdG9ycyByZWZlciB0byBkaWZmZXJlbnQKKyAgICAgKiB0ZXh0
LXN0b3JhZ2Ugb2JqZWN0cywgb3IgdG8gZGlmZmVyZW50IGNoYXJhY3RlcnMgaW4gdGhlCisgICAg
ICogc2FtZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LiAgCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEZv
cndhcmRDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgaW5lcXVhbGl0eQorICAg
ICAqIEByZXR1cm4gdHJ1ZSB3aGVuIHRoZSBpdGVyYXRvcnMgcmVmZXIgdG8gZGlmZmVyZW50Cisg
ICAgICogdGV4dC1zdG9yYWdlIG9iamVjdHMsIG9yIHRvIGRpZmZlcmVudCBjaGFyYWN0ZXJzIGlu
IHRoZQorICAgICAqIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIGlubGluZSBVQm9vbCBvcGVyYXRvciE9KGNvbnN0IEZvcndhcmRD
aGFyYWN0ZXJJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisgICAgCisgICAgLyoqCisgICAgICogR2Vu
ZXJhdGVzIGEgaGFzaCBjb2RlIGZvciB0aGlzIGl0ZXJhdG9yLiAgCisgICAgICogQHJldHVybiB0
aGUgaGFzaCBjb2RlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgaW50MzJfdCBoYXNoQ29kZSh2b2lkKSBjb25zdCA9IDA7CisgICAgCisgICAgLyoqCisgICAg
ICogUmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGlzIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAo
InBvb3IgbWFuJ3MKKyAgICAgKiBSVFRJIikuPFA+IERlc3BpdGUgdGhlIGZhY3QgdGhhdCB0aGlz
IGZ1bmN0aW9uIGlzIHB1YmxpYywKKyAgICAgKiBETyBOT1QgQ09OU0lERVIgSVQgUEFSVCBPRiBD
SEFSQUNURVJJVEVSQVRPUidTIEFQSSEgCisgICAgICogQHJldHVybiBhIFVDbGFzc0lEIGZvciB0
aGlzIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICB2aXJ0dWFsIFVDbGFzc0lEIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0
ID0gMDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjdXJyZW50IGNvZGUgdW5pdCBm
b3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHVuaXQKKyAgICAgKiBp
biB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBlbmRJbmRleCgpKS4gIElmIHRo
ZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJldHVybnMgRE9O
RS4KKyAgICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAgICAgICAgbmV4dFBvc3RJbmMo
dm9pZCkgPSAwOworICAgIAorICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgY29kZSBw
b2ludCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50Cisg
ICAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0b3dhcmQgZW5kSW5kZXgoKSku
ICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUgcG9pbnRzIHRvIHJldHVybiwgcmV0
dXJucyBET05FLgorICAgICAqIEByZXR1cm4gdGhlIGN1cnJlbnQgY29kZSBwb2ludC4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbmV4
dDMyUG9zdEluYyh2b2lkKSA9IDA7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyBGQUxT
RSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzCisgICAgICog
YXQgb3IgYWZ0ZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4K
KyAgICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMo
KSBpbiBmb3J3YXJkCisgICAgICogaXRlcmF0aW9uLgorICAgICAqIEByZXR1cm5zIEZBTFNFIGlm
IHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAgKiBhdCBv
ciBhZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhh
c05leHQoKSA9IDA7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgLyoqIERlZmF1bHQgY29uc3RydWN0
b3IgdG8gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLiBAc3RhYmxlIElD
VSAyLjAqLworICAgIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcigpOworICAgIAorICAgIC8qKiBD
b3B5IGNvbnN0cnVjdG9yIHRvIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGltcGxlbWVudGluZyBjbGFz
cy4gQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3IoY29uc3Qg
Rm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yICZvdGhlcik7CisgICAgCisgICAgLyoqCisgICAgICog
QXNzaWdubWVudCBvcGVyYXRvciB0byBiZSBvdmVycmlkZGVuIGluIHRoZSBpbXBsZW1lbnRpbmcg
Y2xhc3MuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgRm9yd2FyZENoYXJh
Y3Rlckl0ZXJhdG9yICZvcGVyYXRvcj0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJikg
eyByZXR1cm4gKnRoaXM7IH0KK307CisKKy8qKgorICogQWJzdHJhY3QgY2xhc3MgdGhhdCBkZWZp
bmVzIGFuIEFQSSBmb3IgaXRlcmF0aW9uCisgKiBvbiB0ZXh0IG9iamVjdHMuCisgKiBUaGlzIGlz
IGFuIGludGVyZmFjZSBmb3IgZm9yd2FyZCBhbmQgYmFja3dhcmQgaXRlcmF0aW9uCisgKiBhbmQg
cmFuZG9tIGFjY2VzcyBpbnRvIGEgdGV4dCBvYmplY3QuCisgKgorICogPHA+VGhlIEFQSSBwcm92
aWRlcyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHRvIHRoZSBKYXZhIGFuZCBvbGRlciBJQ1UKKyAq
IENoYXJhY3Rlckl0ZXJhdG9yIGNsYXNzZXMgYnV0IGV4dGVuZHMgdGhlbSBzaWduaWZpY2FudGx5
OgorICogPG9sPgorICogPGxpPkNoYXJhY3Rlckl0ZXJhdG9yIGlzIG5vdyBhIHN1YmNsYXNzIG9m
IEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvci48L2xpPgorICogPGxpPldoaWxlIHRoZSBvbGQgQVBJ
IGZ1bmN0aW9ucyBwcm92aWRlZCBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoCisgKiAgICAgInByZS1p
bmNyZW1lbnQiIHNlbWFudGljcywgdGhlIG5ldyBvbmUgYWxzbyBwcm92aWRlcyBmdW5jdGlvbnMK
KyAqICAgICB3aXRoICJwb3N0LWluY3JlbWVudCIgc2VtYW50aWNzLiBUaGV5IGFyZSBtb3JlIGVm
ZmljaWVudCBhbmQgc2hvdWxkCisgKiAgICAgYmUgdGhlIHByZWZlcnJlZCBpdGVyYXRvciBmdW5j
dGlvbnMgZm9yIG5ldyBpbXBsZW1lbnRhdGlvbnMuCisgKiAgICAgVGhlIGJhY2t3YXJkIGl0ZXJh
dGlvbiBhbHdheXMgaGFkICJwcmUtZGVjcmVtZW50IiBzZW1hbnRpY3MsIHdoaWNoCisgKiAgICAg
YXJlIGVmZmljaWVudC48L2xpPgorICogPGxpPkp1c3QgbGlrZSBGb3J3YXJkQ2hhcmFjdGVySXRl
cmF0b3IsIGl0IHByb3ZpZGVzIGFjY2VzcyB0bworICogICAgIGJvdGggY29kZSB1bml0cyBhbmQg
Y29kZSBwb2ludHMuIENvZGUgcG9pbnQgYWNjZXNzIHZlcnNpb25zIGFyZSBhdmFpbGFibGUKKyAq
ICAgICBmb3IgdGhlIG9sZCBhbmQgdGhlIG5ldyBpdGVyYXRpb24gc2VtYW50aWNzLjwvbGk+Cisg
KiA8bGk+VGhlcmUgYXJlIG5ldyBmdW5jdGlvbnMgZm9yIHNldHRpbmcgYW5kIG1vdmluZyB0aGUg
Y3VycmVudCBwb3NpdGlvbgorICogICAgIHdpdGhvdXQgcmV0dXJuaW5nIGEgY2hhcmFjdGVyLCBm
b3IgZWZmaWNpZW5jeS48L2xpPgorICogPC9vbD4KKyAqCisgKiBTZWUgRm9yd2FyZENoYXJhY3Rl
ckl0ZXJhdG9yIGZvciBleGFtcGxlcyBmb3IgdXNpbmcgdGhlIG5ldyBmb3J3YXJkIGl0ZXJhdGlv
bgorICogZnVuY3Rpb25zLiBGb3IgYmFja3dhcmQgaXRlcmF0aW9uLCB0aGVyZSBpcyBhbHNvIGEg
aGFzUHJldmlvdXMoKSBmdW5jdGlvbgorICogdGhhdCBjYW4gYmUgdXNlZCBhbmFsb2dvdXNseSB0
byBoYXNOZXh0KCkuCisgKiBUaGUgb2xkIGZ1bmN0aW9ucyB3b3JrIGFzIGJlZm9yZSBhbmQgYXJl
IHNob3duIGJlbG93LjwvcD4KKyAqCisgKiA8cD5FeGFtcGxlcyBmb3Igc29tZSBvZiB0aGUgbmV3
IGZ1bmN0aW9uczo8L3A+CisgKgorICogRm9yd2FyZCBpdGVyYXRpb24gd2l0aCBoYXNOZXh0KCk6
CisgKiBcY29kZQorICogdm9pZCBmb3J3YXJkMShDaGFyYWN0ZXJJdGVyYXRvciAmaXQpIHsKKyAq
ICAgICBVQ2hhcjMyIGM7CisgKiAgICAgZm9yKGl0LnNldFRvU3RhcnQoKTsgaXQuaGFzTmV4dCgp
OykgeworICogICAgICAgICBjPWl0Lm5leHQzMlBvc3RJbmMoKTsKKyAqICAgICAgICAgLy8gdXNl
IGMKKyAqICAgICB9CisgKiAgfQorICogXGVuZGNvZGUKKyAqIEZvcndhcmQgaXRlcmF0aW9uIG1v
cmUgc2ltaWxhciB0byBsb29wcyB3aXRoIHRoZSBvbGQgZm9yd2FyZCBpdGVyYXRpb24sCisgKiBz
aG93aW5nIGEgd2F5IHRvIGNvbnZlcnQgc2ltcGxlIGZvcigpIGxvb3BzOgorICogXGNvZGUKKyAq
IHZvaWQgZm9yd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7CisgKiAgICAgVUNoYXIgYzsK
KyAqICAgICBmb3IoYz1pdC5maXJzdFBvc3RJbmMoKTsgYyE9Q2hhcmFjdGVySXRlcmF0b3I6OkRP
TkU7IGM9aXQubmV4dFBvc3RJbmMoKSkgeworICogICAgICAgICAgLy8gdXNlIGMKKyAqICAgICAg
fQorICogfQorICogXGVuZGNvZGUKKyAqIEJhY2t3YXJkIGl0ZXJhdGlvbiB3aXRoIHNldFRvRW5k
KCkgYW5kIGhhc1ByZXZpb3VzKCk6CisgKiBcY29kZQorICogIHZvaWQgYmFja3dhcmQxKENoYXJh
Y3Rlckl0ZXJhdG9yICZpdCkgeworICogICAgICBVQ2hhcjMyIGM7CisgKiAgICAgIGZvcihpdC5z
ZXRUb0VuZCgpOyBpdC5oYXNQcmV2aW91cygpOykgeworICogICAgICAgICBjPWl0LnByZXZpb3Vz
MzIoKTsKKyAqICAgICAgICAgIC8vIHVzZSBjCisgKiAgICAgIH0KKyAqICB9CisgKiBcZW5kY29k
ZQorICogQmFja3dhcmQgaXRlcmF0aW9uIHdpdGggYSBtb3JlIHRyYWRpdGlvbmFsIGZvcigpIGxv
b3A6CisgKiBcY29kZQorICogdm9pZCBiYWNrd2FyZDIoQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7
CisgKiAgICAgVUNoYXIgYzsKKyAqICAgICBmb3IoYz1pdC5sYXN0KCk7IGMhPUNoYXJhY3Rlckl0
ZXJhdG9yOjpET05FOyBjPWl0LnByZXZpb3VzKCkpIHsKKyAqICAgICAgICAgLy8gdXNlIGMKKyAq
ICAgICAgfQorICogIH0KKyAqIFxlbmRjb2RlCisgKgorICogRXhhbXBsZSBmb3IgcmFuZG9tIGFj
Y2VzczoKKyAqIFxjb2RlCisgKiAgdm9pZCByYW5kb20oQ2hhcmFjdGVySXRlcmF0b3IgJml0KSB7
CisgKiAgICAgIC8vIHNldCB0byB0aGUgdGhpcmQgY29kZSBwb2ludCBmcm9tIHRoZSBiZWdpbm5p
bmcKKyAqICAgICAgaXQubW92ZTMyKDMsIENoYXJhY3Rlckl0ZXJhdG9yOjprU3RhcnQpOworICog
ICAgICAvLyBnZXQgYSBjb2RlIHBvaW50IGZyb20gaGVyZSB3aXRob3V0IG1vdmluZyB0aGUgcG9z
aXRpb24KKyAqICAgICAgVUNoYXIzMiBjPWl0LmN1cnJlbnQzMigpOworICogICAgICAvLyBnZXQg
dGhlIHBvc2l0aW9uCisgKiAgICAgIGludDMyX3QgcG9zPWl0LmdldEluZGV4KCk7CisgKiAgICAg
IC8vIGdldCB0aGUgcHJldmlvdXMgY29kZSB1bml0CisgKiAgICAgIFVDaGFyIHU9aXQucHJldmlv
dXMoKTsKKyAqICAgICAgLy8gbW92ZSBiYWNrIG9uZSBtb3JlIGNvZGUgdW5pdAorICogICAgICBp
dC5tb3ZlKC0xLCBDaGFyYWN0ZXJJdGVyYXRvcjo6a0N1cnJlbnQpOworICogICAgICAvLyBzZXQg
dGhlIHBvc2l0aW9uIGJhY2sgdG8gd2hlcmUgaXQgd2FzCisgKiAgICAgIC8vIGFuZCByZWFkIHRo
ZSBzYW1lIGNvZGUgcG9pbnQgYyBhbmQgbW92ZSBiZXlvbmQgaXQKKyAqICAgICAgaXQuc2V0SW5k
ZXgocG9zKTsKKyAqICAgICAgaWYoYyE9aXQubmV4dDMyUG9zdEluYygpKSB7CisgKiAgICAgICAg
ICBleGl0KDEpOyAvLyBDaGFyYWN0ZXJJdGVyYXRvciBpbmNvbnNpc3RlbnQKKyAqICAgICAgfQor
ICogIH0KKyAqIFxlbmRjb2RlCisgKgorICogPHA+RXhhbXBsZXMsIGVzcGVjaWFsbHkgZm9yIHRo
ZSBvbGQgQVBJOjwvcD4KKyAqCisgKiBGdW5jdGlvbiBwcm9jZXNzaW5nIGNoYXJhY3RlcnMsIGlu
IHRoaXMgZXhhbXBsZSBzaW1wbGUgb3V0cHV0CisgKiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lk
IHByb2Nlc3NDaGFyKCBVQ2hhciBjICkKKyAqICB7CisgKiAgICAgIGNvdXQgPDwgIiAiIDw8IGM7
CisgKiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgdGhlIHRleHQgZnJv
bSBzdGFydCB0byBmaW5pc2gKKyAqIDxwcmU+IAorICogXGNvZGUKKyAqICB2b2lkIHRyYXZlcnNl
Rm9yd2FyZChDaGFyYWN0ZXJJdGVyYXRvciYgaXRlcikKKyAqICB7CisgKiAgICAgIGZvcihVQ2hh
ciBjID0gaXRlci5maXJzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMgPSBpdGVy
Lm5leHQoKSkgeworICogICAgICAgICAgcHJvY2Vzc0NoYXIoYyk7CisgKiAgICAgIH0KKyAqICB9
CisgKiBcZW5kY29kZQorICogPC9wcmU+CisgKiBUcmF2ZXJzZSB0aGUgdGV4dCBiYWNrd2FyZHMs
IGZyb20gZW5kIHRvIHN0YXJ0CisgKiA8cHJlPgorICogXGNvZGUKKyAqICB2b2lkIHRyYXZlcnNl
QmFja3dhcmQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIpCisgKiAgeworICogICAgICBmb3IoVUNo
YXIgYyA9IGl0ZXIubGFzdCgpOyBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRPTkU7IGMgPSBpdGVy
LnByZXZpb3VzKCkpIHsKKyAqICAgICAgICAgIHByb2Nlc3NDaGFyKGMpOworICogICAgICB9Cisg
KiAgfQorICogXGVuZGNvZGUKKyAqIDwvcHJlPgorICogVHJhdmVyc2UgYm90aCBmb3J3YXJkIGFu
ZCBiYWNrd2FyZCBmcm9tIGEgZ2l2ZW4gcG9zaXRpb24gaW4gdGhlIHRleHQuIAorICogQ2FsbHMg
dG8gbm90Qm91bmRhcnkoKSBpbiB0aGlzIGV4YW1wbGUgcmVwcmVzZW50cyBzb21lIGFkZGl0aW9u
YWwgc3RvcHBpbmcgY3JpdGVyaWEuCisgKiA8cHJlPgorICogXGNvZGUKKyAqIHZvaWQgdHJhdmVy
c2VPdXQoQ2hhcmFjdGVySXRlcmF0b3ImIGl0ZXIsIGludDMyX3QgcG9zKQorICogeworICogICAg
ICBVQ2hhciBjOworICogICAgICBmb3IgKGMgPSBpdGVyLnNldEluZGV4KHBvcyk7CisgKiAgICAg
IGMgIT0gQ2hhcmFjdGVySXRlcmF0b3IuRE9ORSAmJiAoVW5pY29kZTo6aXNMZXR0ZXIoYykgfHwg
VW5pY29kZTo6aXNEaWdpdChjKSk7CisgKiAgICAgICAgICBjID0gaXRlci5uZXh0KCkpIHt9Cisg
KiAgICAgIGludDMyX3QgZW5kID0gaXRlci5nZXRJbmRleCgpOworICogICAgICBmb3IgKGMgPSBp
dGVyLnNldEluZGV4KHBvcyk7CisgKiAgICAgICAgICBjICE9IENoYXJhY3Rlckl0ZXJhdG9yLkRP
TkUgJiYgKFVuaWNvZGU6OmlzTGV0dGVyKGMpIHx8IFVuaWNvZGU6OmlzRGlnaXQoYykpOworICog
ICAgICAgICAgYyA9IGl0ZXIucHJldmlvdXMoKSkge30KKyAqICAgICAgaW50MzJfdCBzdGFydCA9
IGl0ZXIuZ2V0SW5kZXgoKSArIDE7CisgKiAgCisgKiAgICAgIGNvdXQgPDwgInN0YXJ0OiAiIDw8
IHN0YXJ0IDw8ICIgZW5kOiAiIDw8IGVuZCA8PCBlbmRsOworICogICAgICBmb3IgKGMgPSBpdGVy
LnNldEluZGV4KHN0YXJ0KTsgaXRlci5nZXRJbmRleCgpIDwgZW5kOyBjID0gaXRlci5uZXh0KCkg
KSB7CisgKiAgICAgICAgICBwcm9jZXNzQ2hhcihjKTsKKyAqICAgICB9CisgKiAgfQorICogXGVu
ZGNvZGUKKyAqIDwvcHJlPgorICogQ3JlYXRpbmcgYSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBh
bmQgY2FsbGluZyB0aGUgdGVzdCBmdW5jdGlvbnMKKyAqIDxwcmU+CisgKiBcY29kZQorICogIHZv
aWQgQ2hhcmFjdGVySXRlcmF0b3JfRXhhbXBsZSggdm9pZCApCisgKiAgIHsKKyAqICAgICAgIGNv
dXQgPDwgZW5kbCA8PCAiPT09PT0gQ2hhcmFjdGVySXRlcmF0b3JfRXhhbXBsZTogPT09PT0iIDw8
IGVuZGw7CisgKiAgICAgICBVbmljb2RlU3RyaW5nIHRleHQoIkVpbiBrbGVpbmVyIFNhdHouIik7
CisgKiAgICAgICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciBpdGVyYXRvcih0ZXh0KTsKKyAqICAg
ICAgIGNvdXQgPDwgIi0tLS0tIHRyYXZlcnNlRm9yd2FyZDogLS0tLS0tLS0tLS0iIDw8IGVuZGw7
CisgKiAgICAgICB0cmF2ZXJzZUZvcndhcmQoIGl0ZXJhdG9yICk7CisgKiAgICAgICBjb3V0IDw8
IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVyc2VCYWNrd2FyZDogLS0tLS0tLS0tLSIgPDwg
ZW5kbDsKKyAqICAgICAgIHRyYXZlcnNlQmFja3dhcmQoIGl0ZXJhdG9yICk7CisgKiAgICAgICBj
b3V0IDw8IGVuZGwgPDwgZW5kbCA8PCAiLS0tLS0gdHJhdmVyc2VPdXQ6IC0tLS0tLS0tLS0tLS0t
LSIgPDwgZW5kbDsKKyAqICAgICAgIHRyYXZlcnNlT3V0KCBpdGVyYXRvciwgNyApOworICogICAg
ICAgY291dCA8PCBlbmRsIDw8IGVuZGwgPDwgIi0tLS0tIiA8PCBlbmRsOworICogICB9CisgKiBc
ZW5kY29kZQorICogPC9wcmU+CisgKgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVf
Q09NTU9OX0FQSSBDaGFyYWN0ZXJJdGVyYXRvciA6IHB1YmxpYyBGb3J3YXJkQ2hhcmFjdGVySXRl
cmF0b3IgeworcHVibGljOgorICAgIC8qKgorICAgICAqIE9yaWdpbiBlbnVtZXJhdGlvbiBmb3Ig
dGhlIG1vdmUoKSBhbmQgbW92ZTMyKCkgZnVuY3Rpb25zLgorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIGVudW0gRU9yaWdpbiB7IGtTdGFydCwga0N1cnJlbnQsIGtFbmQgfTsK
KworICAgIC8qKgorICAgICAqIERlc3RydWN0b3IuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisg
ICAgICovCisgICAgdmlydHVhbCB+Q2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAgIC8qKgorICAg
ICAqIFJldHVybnMgYSBwb2ludGVyIHRvIGEgbmV3IENoYXJhY3Rlckl0ZXJhdG9yIG9mIHRoZSBz
YW1lCisgICAgICogY29uY3JldGUgY2xhc3MgYXMgdGhpcyBvbmUsIGFuZCByZWZlcnJpbmcgdG8g
dGhlIHNhbWUKKyAgICAgKiBjaGFyYWN0ZXIgaW4gdGhlIHNhbWUgdGV4dC1zdG9yYWdlIG9iamVj
dCBhcyB0aGlzIG9uZS4gIFRoZQorICAgICAqIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZGVs
ZXRpbmcgdGhlIG5ldyBjbG9uZS4gIAorICAgICAqIEByZXR1cm4gYSBwb2ludGVyIHRvIGEgbmV3
IENoYXJhY3Rlckl0ZXJhdG9yCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAg
dmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkgY29uc3QgPSAwOworCisgICAg
LyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUg
dW5pdCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29k
ZSB1bml0LgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdp
dGggbmV4dCgpLgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNvZGUgdW5pdCBpbiBpdHMgaXRl
cmF0aW9uIHJhbmdlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1
YWwgVUNoYXIgICAgICAgICBmaXJzdCh2b2lkKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXRz
IHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cworICAg
ICAqIGl0ZXJhdGlvbiByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1vdmVzIHRo
ZSBwb3NpdGlvbgorICAgICAqIHRvIHRoZSBzZWNvbmQgY29kZSB1bml0LiBUaGlzIGlzIGFuIGFs
dGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAgICAqIGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3
aXRoIG5leHRQb3N0SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGlu
IGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisg
ICAgdmlydHVhbCBVQ2hhciAgICAgICAgIGZpcnN0UG9zdEluYyh2b2lkKTsKKworICAgIC8qKgor
ICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHBvaW50
IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVu
aXQsCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBu
ZXh0MzIoKS4KKyAgICAgKiBOb3RlIHRoYXQgYW4gaXRlcmF0aW9uIHdpdGggbmV4dDMyUG9zdElu
YygpLCBiZWdpbm5pbmcgd2l0aCwKKyAgICAgKiBlLmcuLCBzZXRUb1N0YXJ0KCkgb3IgZmlyc3RQ
b3N0SW5jKCksIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIEByZXR1cm4gdGhlIGZpcnN0IGNv
ZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgZmlyc3QzMih2b2lkKSA9IDA7CisK
KyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmlyc3Qg
Y29kZSBwb2ludCBpbiBpdHMKKyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIHJldHVybnMgdGhhdCBj
b2RlIHBvaW50LCBhbmQgbW92ZXMgdGhlIHBvc2l0aW9uCisgICAgICogdG8gdGhlIHNlY29uZCBj
b2RlIHBvaW50LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvIHNldFRvU3RhcnQoKQorICAgICAq
IGZvciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICAgKiBAcmV0
dXJuIHRoZSBmaXJzdCBjb2RlIHBvaW50IGluIGl0cyBpdGVyYXRpb24gcmFuZ2UuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGZpcnN0
MzJQb3N0SW5jKHZvaWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8g
cmVmZXIgdG8gdGhlIGZpcnN0IGNvZGUgdW5pdCBvciBjb2RlIHBvaW50IGluIGl0cworICAgICAq
IGl0ZXJhdGlvbiByYW5nZS4gVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhIGZvcndhcmQKKyAg
ICAgKiBpdGVyYXRpb24gd2l0aCBuZXh0UG9zdEluYygpIG9yIG5leHQzMlBvc3RJbmMoKS4KKyAg
ICAgKiBAcmV0dXJuIHRoZSBzdGFydCBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgc2V0
VG9TdGFydCgpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIg
dG8gdGhlIGxhc3QgY29kZSB1bml0IGluIGl0cworICAgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5k
IHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdp
biBhbiBpdGVyYXRpb24gd2l0aCBwcmV2aW91cygpLgorICAgICAqIEByZXR1cm4gdGhlIGxhc3Qg
Y29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
VUNoYXIgICAgICAgICBsYXN0KHZvaWQpID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICog
U2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxhc3QgY29kZSBwb2ludCBpbiBpdHMK
KyAgICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LgorICAg
ICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMz
MigpLgorICAgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMyKHZvaWQp
ID0gMDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHRoZSBlbmQgb2Yg
aXRzIGl0ZXJhdGlvbiByYW5nZSwganVzdCBiZWhpbmQKKyAgICAgKiB0aGUgbGFzdCBjb2RlIHVu
aXQgb3IgY29kZSBwb2ludC4gVGhpcyBjYW4gYmUgdXNlZCB0byBiZWdpbiBhIGJhY2t3YXJkCisg
ICAgICogaXRlcmF0aW9uIHdpdGggcHJldmlvdXMoKSBvciBwcmV2aW91czMyKCkuCisgICAgICog
QHJldHVybiB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICBzZXRUb0VuZCgp
OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlICJw
b3NpdGlvbiItdGggY29kZSB1bml0CisgICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3Qg
dGhlIGl0ZXJhdG9yIHJlZmVycyB0bywgYW5kCisgICAgICogcmV0dXJucyB0aGF0IGNvZGUgdW5p
dC4gIAorICAgICAqIEBwYXJhbSBwb3NpdGlvbiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHVuaXQg
aW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBAcmV0dXJuIHRoZSAicG9zaXRpb24i
LXRoIGNvZGUgdW5pdC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0
dWFsIFVDaGFyICAgICAgICAgc2V0SW5kZXgoaW50MzJfdCBwb3NpdGlvbikgPSAwOworCisgICAg
LyoqCisgICAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lubmluZyBv
ZiB0aGUgY29kZSBwb2ludAorICAgICAqIHRoYXQgY29udGFpbnMgdGhlICJwb3NpdGlvbiItdGgg
Y29kZSB1bml0CisgICAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJhdG9y
IHJlZmVycyB0bywgYW5kCisgICAgICogcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisgICAgICog
VGhlIGN1cnJlbnQgcG9zaXRpb24gaXMgYWRqdXN0ZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUg
Y29kZSBwb2ludAorICAgICAqIChpdHMgZmlyc3QgY29kZSB1bml0KS4KKyAgICAgKiBAcGFyYW0g
cG9zaXRpb24gdGhlICJwb3NpdGlvbiItdGggY29kZSB1bml0IGluIHRoZSB0ZXh0LXN0b3JhZ2Ug
b2JqZWN0CisgICAgICogQHJldHVybiB0aGUgInBvc2l0aW9uIi10aCBjb2RlIHBvaW50LgorICAg
ICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBz
ZXRJbmRleDMyKGludDMyX3QgcG9zaXRpb24pID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVy
bnMgdGhlIGNvZGUgdW5pdCB0aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4gCisgICAg
ICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuIAorICAgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBjdXJyZW50KHZvaWQpIGNvbnN0
ID0gMDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29kZSBwb2ludCB0
aGUgaXRlcmF0b3IgY3VycmVudGx5IHJlZmVycyB0by4gIAorICAgICAqIEByZXR1cm4gdGhlIGN1
cnJlbnQgY29kZSBwb2ludC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIFVDaGFyMzIgICAgICAgY3VycmVudDMyKHZvaWQpIGNvbnN0ID0gMDsKKyAgICAgICAg
CisgICAgLyoqCisgICAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBp
dGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIGVuZEluZGV4KCkpLCBhbmQgcmV0dXJucyB0
aGF0IGNvZGUgdW5pdC4gIElmIHRoZXJlIGFyZQorICAgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0
byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgdW5p
dC4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIFVDaGFyICAg
ICAgICAgbmV4dCh2b2lkKSA9IDA7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIEFkdmFuY2Vz
IHRvIHRoZSBuZXh0IGNvZGUgcG9pbnQgaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgICAqICh0
b3dhcmQgZW5kSW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSBwb2ludC4gIElmIHRoZXJl
IGFyZQorICAgICAqIG5vIG1vcmUgY29kZSBwb2ludHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUu
CisgICAgICogTm90ZSB0aGF0IGl0ZXJhdGlvbiB3aXRoICJwcmUtaW5jcmVtZW50IiBzZW1hbnRp
Y3MgaXMgbGVzcworICAgICAqIGVmZmljaWVudCB0aGFuIGl0ZXJhdGlvbiB3aXRoICJwb3N0LWlu
Y3JlbWVudCIgc2VtYW50aWNzCisgICAgICogdGhhdCBpcyBwcm92aWRlZCBieSBuZXh0MzJQb3N0
SW5jKCkuCisgICAgICogQHJldHVybiB0aGUgbmV4dCBjb2RlIHBvaW50LgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzIodm9p
ZCkgPSAwOworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlv
dXMgY29kZSB1bml0IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICAgKiAodG93YXJkIHN0YXJ0
SW5kZXgoKSksIGFuZCByZXR1cm5zIHRoYXQgY29kZSB1bml0LiAgSWYgdGhlcmUgYXJlCisgICAg
ICogbm8gbW9yZSBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLiAgCisgICAgICog
QHJldHVybiB0aGUgcHJldmlvdXMgY29kZSB1bml0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgVUNoYXIgICAgICAgICBwcmV2aW91cyh2b2lkKSA9IDA7CisK
KyAgICAvKioKKyAgICAgKiBBZHZhbmNlcyB0byB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0
aGUgaXRlcmF0aW9uIHJhbmdlCisgICAgICogKHRvd2FyZCBzdGFydEluZGV4KCkpLCBhbmQgcmV0
dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUKKyAgICAgKiBubyBtb3JlIGNvZGUg
cG9pbnRzIHRvIHJldHVybiwgcmV0dXJucyBET05FLiAKKyAgICAgKiBAcmV0dXJuIHRoZSBwcmV2
aW91cyBjb2RlIHBvaW50LiAKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2
aXJ0dWFsIFVDaGFyMzIgICAgICAgcHJldmlvdXMzMih2b2lkKSA9IDA7CisKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29k
ZSBwb2ludHMKKyAgICAgKiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJh
dGlvbiByYW5nZS4KKyAgICAgKiBUaGlzIGlzIHVzZWQgd2l0aCBwcmV2aW91cygpIG9yIHByZXZp
b3VzMzIoKSBpbiBiYWNrd2FyZAorICAgICAqIGl0ZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIEZB
TFNFIGlmIHRoZXJlIGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICAg
KiBiZWZvcmUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZSwgcmV0
dXJuIFRSVUUgb3RoZXJ3aXNlLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc1ByZXZpb3VzKCkgPSAwOworCisgICAgLyoqCisgICAg
ICogUmV0dXJucyB0aGUgbnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3Jh
Z2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIGNoYXJhY3RlciByZXR1cm5lZCBieSBmaXJzdCgpLiAg
U2luY2UgaXQncworICAgICAqIHBvc3NpYmxlIHRvIGNyZWF0ZSBhbiBpdGVyYXRvciB0aGF0IGl0
ZXJhdGVzIGFjcm9zcyBvbmx5CisgICAgICogcGFydCBvZiBhIHRleHQtc3RvcmFnZSBvYmplY3Qs
IHRoaXMgbnVtYmVyIGlzbid0CisgICAgICogbmVjZXNzYXJpbHkgMC4gIAorICAgICAqIEByZXR1
cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3RvcmFnZQorICAg
ICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHJldHVybmVkIGJ5IGZpcnN0KCkuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW5saW5lIGludDMyX3QgICAgICAgc3RhcnRJ
bmRleCh2b2lkKSBjb25zdDsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUg
bnVtZXJpYyBpbmRleCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmpl
Y3Qgb2YgdGhlIHBvc2l0aW9uIGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVyCisgICAg
ICogcmV0dXJuZWQgYnkgbGFzdCgpLiAgCisgICAgICogQHJldHVybiB0aGUgbnVtZXJpYyBpbmRl
eCBpbiB0aGUgdW5kZXJseWluZyB0ZXh0LXN0b3JhZ2UKKyAgICAgKiBvYmplY3Qgb2YgdGhlIHBv
c2l0aW9uIGltbWVkaWF0ZWx5IEJFWU9ORCB0aGUgY2hhcmFjdGVyCisgICAgICogcmV0dXJuZWQg
YnkgbGFzdCgpLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBp
bnQzMl90ICAgICAgIGVuZEluZGV4KHZvaWQpIGNvbnN0OworICAgICAgICAKKyAgICAvKioKKyAg
ICAgKiBSZXR1cm5zIHRoZSBudW1lcmljIGluZGV4IGluIHRoZSB1bmRlcmx5aW5nIHRleHQtc3Rv
cmFnZQorICAgICAqIG9iamVjdCBvZiB0aGUgY2hhcmFjdGVyIHRoZSBpdGVyYXRvciBjdXJyZW50
bHkgcmVmZXJzIHRvCisgICAgICogKGkuZS4sIHRoZSBjaGFyYWN0ZXIgcmV0dXJuZWQgYnkgY3Vy
cmVudCgpKS4gIAorICAgICAqIEByZXR1cm4gdGhlIG51bWJlcmljIGluZGV4IGluIHRoZSB0ZXh0
LXN0b3JhZ2Ugb2JqZWN0IG9mIAorICAgICAqIHRoZSBjaGFyYWN0ZXIgdGhlIGl0ZXJhdG9yIGN1
cnJlbnRseSByZWZlcnMgdG8KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBp
bmxpbmUgaW50MzJfdCAgICAgICBnZXRJbmRleCh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAg
ICAqIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgZW50aXJlIHRleHQgaW4gdGhlIHVuZGVybHlp
bmcKKyAgICAgKiB0ZXh0LXN0b3JhZ2Ugb2JqZWN0LgorICAgICAqIEByZXR1cm4gdGhlIGxlbmd0
aCBvZiB0aGUgZW50aXJlIHRleHQgaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QKKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbmxpbmUgaW50MzJfdCAgICAgICAgICAgZ2V0
TGVuZ3RoKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBwb3Np
dGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgICAqIGl0ZXJhdGlv
biByYW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAg
ICAqIFRoZSBtb3ZlbWVudCBpcyBleHByZXNzZWQgaW4gbnVtYmVycyBvZiBjb2RlIHVuaXRzIGZv
cndhcmQKKyAgICAgKiBvciBiYWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVn
YXRpdmUgZGVsdGEuCisgICAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0
byBvcmlnaW4uIEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBhIG5lZ2F0
aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVu
dW1lcmF0aW9uIHtrU3RhcnQsIGtDdXJyZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4gdGhlIG5l
dyBwb3NpdGlvbgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwg
aW50MzJfdCAgICAgIG1vdmUoaW50MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pID0gMDsKKwor
ICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRo
ZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAgICogaXRlcmF0aW9uIHJhbmdlLCBvciByZWxhdGl2
ZSB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpdHNlbGYuCisgICAgICogVGhlIG1vdmVtZW50IGlz
IGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgcG9pbnRzIGZvcndhcmQKKyAgICAgKiBvciBi
YWNrd2FyZCBieSBzcGVjaWZ5aW5nIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVsdGEuCisgICAg
ICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4uIEEgcG9zaXRp
dmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICAgKiBhIG5lZ2F0aXZlIGRlbHRhIG1lYW5zIGJh
Y2t3YXJkLgorICAgICAqIEBwYXJhbSBvcmlnaW4gT3JpZ2luIGVudW1lcmF0aW9uIHtrU3RhcnQs
IGtDdXJyZW50LCBrRW5kfQorICAgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUz
MihpbnQzMl90IGRlbHRhLCBFT3JpZ2luIG9yaWdpbikgPSAwOworCisgICAgLyoqCisgICAgICog
Q29waWVzIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBVbmljb2RlU3RyaW5nCisg
ICAgICogcmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICAKKyAgICAgKiBAcGFyYW0gcmVzdWx0IFJl
Y2VpdmVzIGEgY29weSBvZiB0aGUgdGV4dCB1bmRlciBpdGVyYXRpb24uICAKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0
KFVuaWNvZGVTdHJpbmcmICByZXN1bHQpID0gMDsKKworcHJvdGVjdGVkOgorICAgIC8qKgorICAg
ICAqIEVtcHR5IGNvbnN0cnVjdG9yLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIENoYXJhY3Rlckl0ZXJhdG9yKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvciwg
anVzdCBzZXR0aW5nIHRoZSBsZW5ndGggZmllbGQgaW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3Qg
bGVuZ3RoKTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLCBqdXN0IHNldHRpbmcgdGhl
IGxlbmd0aCBhbmQgcG9zaXRpb24gZmllbGRzIGluIHRoaXMgYmFzZSBjbGFzcy4KKyAgICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBDaGFyYWN0ZXJJdGVyYXRvcihpbnQzMl90IGxl
bmd0aCwgaW50MzJfdCBwb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvciwg
anVzdCBzZXR0aW5nIHRoZSBsZW5ndGgsIHN0YXJ0LCBlbmQsIGFuZCBwb3NpdGlvbiBmaWVsZHMg
aW4gdGhpcyBiYXNlIGNsYXNzLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAg
IENoYXJhY3Rlckl0ZXJhdG9yKGludDMyX3QgbGVuZ3RoLCBpbnQzMl90IHRleHRCZWdpbiwgaW50
MzJfdCB0ZXh0RW5kLCBpbnQzMl90IHBvc2l0aW9uKTsKKyAgCisgICAgLyoqCisgICAgICogQ29w
eSBjb25zdHJ1Y3Rvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aGF0IFRoZSBDaGFyYWN0ZXJJ
dGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICBDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7CisKKyAg
ICAvKioKKyAgICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgU2V0cyB0aGlzIENoYXJhY3Rlckl0
ZXJhdG9yIHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3IsCisgICAgICogYXMgdGhlIG9uZSBwYXNz
ZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIENoYXJhY3Rlckl0ZXJhdG9yIHBhc3NlZCBp
bi4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBzZXQgQ2hhcmFjdGVySXRlcmF0b3IuCisgICAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgQ2hhcmFjdGVySXRlcmF0b3IgJm9wZXJh
dG9yPShjb25zdCBDaGFyYWN0ZXJJdGVyYXRvciAmdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBC
YXNlIGNsYXNzIHRleHQgbGVuZ3RoIGZpZWxkLgorICAgICAqIE5lY2Vzc2FyeSB0aGlzIGZvciBj
b3JyZWN0IGdldFRleHQoKSBhbmQgaGFzaENvZGUoKS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBpbnQzMl90IHRleHRMZW5ndGg7CisKKyAgICAvKioKKyAgICAgKiBCYXNl
IGNsYXNzIGZpZWxkIGZvciB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBwb3M7CisKKyAgICAvKioKKyAgICAgKiBCYXNl
IGNsYXNzIGZpZWxkIGZvciB0aGUgc3RhcnQgb2YgdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBiZWdpbjsKKworICAgIC8q
KgorICAgICAqIEJhc2UgY2xhc3MgZmllbGQgZm9yIHRoZSBlbmQgb2YgdGhlIGl0ZXJhdGlvbiBy
YW5nZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBpbnQzMl90ICBlbmQ7
Cit9OworCitpbmxpbmUgVUJvb2wKK0ZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcjo6b3BlcmF0b3Ih
PShjb25zdCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0IHsKKyAgICByZXR1
cm4gIW9wZXJhdG9yPT0odGhhdCk7Cit9CisKK2lubGluZSBpbnQzMl90CitDaGFyYWN0ZXJJdGVy
YXRvcjo6c2V0VG9TdGFydCgpIHsKKyAgICByZXR1cm4gbW92ZSgwLCBrU3RhcnQpOworfQorCitp
bmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6OnNldFRvRW5kKCkgeworICAgIHJldHVy
biBtb3ZlKDAsIGtFbmQpOworfQorCitpbmxpbmUgaW50MzJfdAorQ2hhcmFjdGVySXRlcmF0b3I6
OnN0YXJ0SW5kZXgodm9pZCkgY29uc3QgeworICAgIHJldHVybiBiZWdpbjsKK30KKworaW5saW5l
IGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjplbmRJbmRleCh2b2lkKSBjb25zdCB7CisgICAg
cmV0dXJuIGVuZDsKK30KKworaW5saW5lIGludDMyX3QKK0NoYXJhY3Rlckl0ZXJhdG9yOjpnZXRJ
bmRleCh2b2lkKSBjb25zdCB7CisgICAgcmV0dXJuIHBvczsKK30KKworaW5saW5lIGludDMyX3QK
K0NoYXJhY3Rlckl0ZXJhdG9yOjpnZXRMZW5ndGgodm9pZCkgY29uc3QgeworICAgIHJldHVybiB0
ZXh0TGVuZ3RoOworfQorCitVX05BTUVTUEFDRV9FTkQKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9pY3UvdW5pY29kZS9sb2NpZC5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9sb2Np
ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFhZDVjYjU0NmViZTM5N2VmNDM2ZGYzNjUwM2ViNDM3MWMzODY2OTYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL2xvY2lkLmgKQEAgLTAs
MCArMSw4MTQgQEAKKy8qCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBDb3B5cmlnaHQg
KEMpIDE5OTYtMjAxNSwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBv
cmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCisqCisqIEZpbGUgbG9jaWQuaAorKgorKiBDcmVhdGVkIGJ5OiBIZWxlbmEgU2hp
aAorKgorKiBNb2RpZmljYXRpb24gSGlzdG9yeToKKyoKKyogICBEYXRlICAgICAgICBOYW1lICAg
ICAgICBEZXNjcmlwdGlvbgorKiAgIDAyLzExLzk3ICAgIGFsaXUgICAgICAgIENoYW5nZWQgZ0xv
Y1BhdGggdG8gZmdMb2NQYXRoIGFuZCBhZGRlZCBtZXRob2RzIHRvCisqICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2V0IGFuZCBzZXQgaXQuCisqICAgMDQvMDIvOTcgICAgYWxpdSAgICAgICAg
TWFkZSBvcGVyYXRvciE9IGlubGluZTsgZml4ZWQgcmV0dXJuIHZhbHVlIG9mIGdldE5hbWUoKS4K
KyogICAwNC8xNS85NyAgICBhbGl1ICAgICAgICBDbGVhbnVwIGZvciBBSVgvV2luMzIuCisqICAg
MDQvMjQvOTcgICAgYWxpdSAgICAgICAgTnVtZXJvdXMgY2hhbmdlcyBwZXIgY29kZSByZXZpZXcu
CisqICAgMDgvMTgvOTggICAgc3RlcGhlbiAgICAgQWRkZWQgdG9rZW5pemVTdHJpbmcoKSxjaGFu
Z2VkIGdldERpc3BsYXlOYW1lKCkKKyogICAwOS8wOC85OCAgICBzdGVwaGVuICAgICBNb3ZlZCBk
ZWZpbml0aW9uIG9mIGtFbXB0eVN0cmluZyBmb3IgTWFjIFBvcnQKKyogICAxMS8wOS85OSAgICB3
ZWl2ICAgICAgICBBZGRlZCBjb25zdCBjaGFyICogZ2V0TmFtZSgpIGNvbnN0OworKiAgIDA0LzEy
LzAwICAgIHNybCAgICAgICAgIHJlbW92aW5nIHVuaWNvZGVzdHJpbmcgYXBpJ3MgYW5kIGNhY2hl
ZCBoYXNoIGNvZGUKKyogICAwOC8xMC8wMSAgICBncmhvdGVuICAgICBDaGFuZ2UgdGhlIHN0YXRp
YyBMb2NhbGVzIHRvIGFjY2Vzc29yIGZ1bmN0aW9ucworKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
LworCisjaWZuZGVmIExPQ0lEX0gKKyNkZWZpbmUgTE9DSURfSAorCisjaW5jbHVkZSAidW5pY29k
ZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VvYmplY3QuaCIKKyNpbmNsdWRlICJ1bmlj
b2RlL3VuaXN0ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvcHV0aWwuaCIKKyNpbmNsdWRlICJ1bmlj
b2RlL3Vsb2MuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3N0cmVudW0uaCIKKworLyoqCisgKiBcZmls
ZQorICogXGJyaWVmIEMrKyBBUEk6IExvY2FsZSBJRCBvYmplY3QuCisgKi8KKworVV9OQU1FU1BB
Q0VfQkVHSU4KKworLy8gRm9yd2FyZCBEZWNsYXJhdGlvbnMKK3ZvaWQgVV9DQUxMQ09OViBsb2Nh
bGVfYXZhaWxhYmxlX2luaXQoKTsgLyoqPCBAaW50ZXJuYWwgKi8KKworLyoqCisgKiBBIDxjb2Rl
PkxvY2FsZTwvY29kZT4gb2JqZWN0IHJlcHJlc2VudHMgYSBzcGVjaWZpYyBnZW9ncmFwaGljYWws
IHBvbGl0aWNhbCwKKyAqIG9yIGN1bHR1cmFsIHJlZ2lvbi4gQW4gb3BlcmF0aW9uIHRoYXQgcmVx
dWlyZXMgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHRvIHBlcmZvcm0KKyAqIGl0cyB0YXNrIGlzIGNh
bGxlZCA8ZW0+bG9jYWxlLXNlbnNpdGl2ZTwvZW0+IGFuZCB1c2VzIHRoZSA8Y29kZT5Mb2NhbGU8
L2NvZGU+CisgKiB0byB0YWlsb3IgaW5mb3JtYXRpb24gZm9yIHRoZSB1c2VyLiBGb3IgZXhhbXBs
ZSwgZGlzcGxheWluZyBhIG51bWJlcgorICogaXMgYSBsb2NhbGUtc2Vuc2l0aXZlIG9wZXJhdGlv
bi0tdGhlIG51bWJlciBzaG91bGQgYmUgZm9ybWF0dGVkCisgKiBhY2NvcmRpbmcgdG8gdGhlIGN1
c3RvbXMvY29udmVudGlvbnMgb2YgdGhlIHVzZXIncyBuYXRpdmUgY291bnRyeSwKKyAqIHJlZ2lv
biwgb3IgY3VsdHVyZS4KKyAqCisgKiBUaGUgTG9jYWxlIGNsYXNzIGlzIG5vdCBzdWl0YWJsZSBm
b3Igc3ViY2xhc3NpbmcuCisgKgorICogPFA+CisgKiBZb3UgY2FuIGNyZWF0ZSBhIDxjb2RlPkxv
Y2FsZTwvY29kZT4gb2JqZWN0IHVzaW5nIHRoZSBjb25zdHJ1Y3RvciBpbgorICogdGhpcyBjbGFz
czoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAqICAg
ICAgIExvY2FsZSggY29uc3QgICBjaGFyKiAgbGFuZ3VhZ2UsCisgKiAgICAgICAgICAgICAgIGNv
bnN0ICAgY2hhciogIGNvdW50cnksCisgKiAgICAgICAgICAgICAgIGNvbnN0ICAgY2hhciogIHZh
cmlhbnQpOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5
CisgKiBUaGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZhbGlkIDxT
VFJPTkc+SVNPCisgKiBMYW5ndWFnZSBDb2RlLjwvU1RST05HPiBUaGVzZSBjb2RlcyBhcmUgdGhl
IGxvd2VyLWNhc2UgdHdvLWxldHRlcgorICogY29kZXMgYXMgZGVmaW5lZCBieSBJU08tNjM5Lgor
ICogWW91IGNhbiBmaW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNlIGNvZGVzIGF0OgorICogPEJSPjxh
IGhyZWYgPSJodHRwOi8vd3d3LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLyI+CisgKiBodHRw
Oi8vd3d3LmxvYy5nb3Yvc3RhbmRhcmRzL2lzbzYzOS0yLzwvYT4KKyAqCisgKiA8UD4KKyAqIFRo
ZSBzZWNvbmQgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9ycyBpcyBhIHZhbGlkIDxTVFJPTkc+
SVNPIENvdW50cnkKKyAqIENvZGUuPC9TVFJPTkc+IFRoZXNlIGNvZGVzIGFyZSB0aGUgdXBwZXIt
Y2FzZSB0d28tbGV0dGVyIGNvZGVzCisgKiBhcyBkZWZpbmVkIGJ5IElTTy0zMTY2LgorICogWW91
IGNhbiBmaW5kIGEgZnVsbCBsaXN0IG9mIHRoZXNlIGNvZGVzIGF0IGEgbnVtYmVyIG9mIHNpdGVz
LCBzdWNoIGFzOgorICogPEJSPjxhIGhyZWY9Imh0dHA6Ly93d3cuaXNvLm9yZy9pc28vZW4vcHJv
ZHMtc2VydmljZXMvaXNvMzE2Nm1hL2luZGV4Lmh0bWwiPgorICogaHR0cDovL3d3dy5pc28ub3Jn
L2lzby9lbi9wcm9kcy1zZXJ2aWNlcy9pc28zMTY2bWEvaW5kZXguaHRtbDwvYT4KKyAqCisgKiA8
UD4KKyAqIFRoZSB0aGlyZCBjb25zdHJ1Y3RvciByZXF1aXJlcyBhIHRoaXJkIGFyZ3VtZW50LS10
aGUgPFNUUk9ORz5WYXJpYW50LjwvU1RST05HPgorICogVGhlIFZhcmlhbnQgY29kZXMgYXJlIHZl
bmRvciBhbmQgYnJvd3Nlci1zcGVjaWZpYy4KKyAqIEZvciBleGFtcGxlLCB1c2UgUkVWSVNFRCBm
b3IgYSBsYW5nYXVnZSdzIHJldmlzZWQgc2NyaXB0IG9ydGhvZ3JhcGh5LCBhbmQgUE9TSVggZm9y
IFBPU0lYLgorICogV2hlcmUgdGhlcmUgYXJlIHR3byB2YXJpYW50cywgc2VwYXJhdGUgdGhlbSB3
aXRoIGFuIHVuZGVyc2NvcmUsIGFuZAorICogcHV0IHRoZSBtb3N0IGltcG9ydGFudCBvbmUgZmly
c3QuIEZvcgorICogZXhhbXBsZSwgYSBUcmFkaXRpb25hbCBTcGFuaXNoIGNvbGxhdGlvbiBtaWdo
dCBiZSByZWZlcmVuY2VkLCB3aXRoCisgKiAiRVMiLCAiRVMiLCAiVHJhZGl0aW9uYWxfUE9TSVgi
LgorICoKKyAqIDxQPgorICogQmVjYXVzZSBhIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IGlz
IGp1c3QgYW4gaWRlbnRpZmllciBmb3IgYSByZWdpb24sCisgKiBubyB2YWxpZGl0eSBjaGVjayBp
cyBwZXJmb3JtZWQgd2hlbiB5b3UgY29uc3RydWN0IGEgPGNvZGU+TG9jYWxlPC9jb2RlPi4KKyAq
IElmIHlvdSB3YW50IHRvIHNlZSB3aGV0aGVyIHBhcnRpY3VsYXIgcmVzb3VyY2VzIGFyZSBhdmFp
bGFibGUgZm9yIHRoZQorICogPGNvZGU+TG9jYWxlPC9jb2RlPiB5b3UgY29uc3RydWN0LCB5b3Ug
bXVzdCBxdWVyeSB0aG9zZSByZXNvdXJjZXMuIEZvcgorICogZXhhbXBsZSwgYXNrIHRoZSA8Y29k
ZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGZvciB0aGUgbG9jYWxlcyBpdCBzdXBwb3J0cworICogdXNp
bmcgaXRzIDxjb2RlPmdldEF2YWlsYWJsZUxvY2FsZXM8L2NvZGU+IG1ldGhvZC4KKyAqIDxCUj48
U1RST05HPk5vdGU6PC9TVFJPTkc+IFdoZW4geW91IGFzayBmb3IgYSByZXNvdXJjZSBmb3IgYSBw
YXJ0aWN1bGFyCisgKiBsb2NhbGUsIHlvdSBnZXQgYmFjayB0aGUgYmVzdCBhdmFpbGFibGUgbWF0
Y2gsIG5vdCBuZWNlc3NhcmlseQorICogcHJlY2lzZWx5IHdoYXQgeW91IGFza2VkIGZvci4gRm9y
IG1vcmUgaW5mb3JtYXRpb24sIGxvb2sgYXQKKyAqIDxjb2RlPlJlc291cmNlQnVuZGxlPC9jb2Rl
Pi4KKyAqCisgKiA8UD4KKyAqIFRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGNsYXNzIHByb3ZpZGVz
IGEgbnVtYmVyIG9mIGNvbnZlbmllbnQgY29uc3RhbnRzCisgKiB0aGF0IHlvdSBjYW4gdXNlIHRv
IGNyZWF0ZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdHMgZm9yIGNvbW1vbmx5IHVzZWQKKyAq
IGxvY2FsZXMuIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHJlZmVycyB0byBhIDxjb2RlPkxv
Y2FsZTwvY29kZT4gb2JqZWN0CisgKiBmb3IgdGhlIFVuaXRlZCBTdGF0ZXM6CisgKiBcaHRtbG9u
bHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+CisgKiAgICAgICBMb2NhbGU6Omdl
dFVTKCkKKyAqIDwvcHJlPgorICogXGh0bWxvbmx5PC9ibG9ja3F1b3RlPlxlbmRodG1sb25seQor
ICoKKyAqIDxQPgorICogT25jZSB5b3UndmUgY3JlYXRlZCBhIDxjb2RlPkxvY2FsZTwvY29kZT4g
eW91IGNhbiBxdWVyeSBpdCBmb3IgaW5mb3JtYXRpb24gYWJvdXQKKyAqIGl0c2VsZi4gVXNlIDxj
b2RlPmdldENvdW50cnk8L2NvZGU+IHRvIGdldCB0aGUgSVNPIENvdW50cnkgQ29kZSBhbmQKKyAq
IDxjb2RlPmdldExhbmd1YWdlPC9jb2RlPiB0byBnZXQgdGhlIElTTyBMYW5ndWFnZSBDb2RlLiBZ
b3UgY2FuCisgKiB1c2UgPGNvZGU+Z2V0RGlzcGxheUNvdW50cnk8L2NvZGU+IHRvIGdldCB0aGUK
KyAqIG5hbWUgb2YgdGhlIGNvdW50cnkgc3VpdGFibGUgZm9yIGRpc3BsYXlpbmcgdG8gdGhlIHVz
ZXIuIFNpbWlsYXJseSwKKyAqIHlvdSBjYW4gdXNlIDxjb2RlPmdldERpc3BsYXlMYW5ndWFnZTwv
Y29kZT4gdG8gZ2V0IHRoZSBuYW1lIG9mCisgKiB0aGUgbGFuZ3VhZ2Ugc3VpdGFibGUgZm9yIGRp
c3BsYXlpbmcgdG8gdGhlIHVzZXIuIEludGVyZXN0aW5nbHksCisgKiB0aGUgPGNvZGU+Z2V0RGlz
cGxheVhYWDwvY29kZT4gbWV0aG9kcyBhcmUgdGhlbXNlbHZlcyBsb2NhbGUtc2Vuc2l0aXZlCisg
KiBhbmQgaGF2ZSB0d28gdmVyc2lvbnM6IG9uZSB0aGF0IHVzZXMgdGhlIGRlZmF1bHQgbG9jYWxl
IGFuZCBvbmUKKyAqIHRoYXQgdGFrZXMgYSBsb2NhbGUgYXMgYW4gYXJndW1lbnQgYW5kIGRpc3Bs
YXlzIHRoZSBuYW1lIG9yIGNvdW50cnkgaW4KKyAqIGEgbGFuZ3VhZ2UgYXBwcm9wcmlhdGUgdG8g
dGhhdCBsb2NhbGUuCisgKgorICogPFA+CisgKiBJQ1UgcHJvdmlkZXMgYSBudW1iZXIgb2YgY2xh
c3NlcyB0aGF0IHBlcmZvcm0gbG9jYWxlLXNlbnNpdGl2ZQorICogb3BlcmF0aW9ucy4gRm9yIGV4
YW1wbGUsIHRoZSA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IGNsYXNzIGZvcm1hdHMKKyAqIG51
bWJlcnMsIGN1cnJlbmN5LCBvciBwZXJjZW50YWdlcyBpbiBhIGxvY2FsZS1zZW5zaXRpdmUgbWFu
bmVyLiBDbGFzc2VzCisgKiBzdWNoIGFzIDxjb2RlPk51bWJlckZvcm1hdDwvY29kZT4gaGF2ZSBh
IG51bWJlciBvZiBjb252ZW5pZW5jZSBtZXRob2RzCisgKiBmb3IgY3JlYXRpbmcgYSBkZWZhdWx0
IG9iamVjdCBvZiB0aGF0IHR5cGUuIEZvciBleGFtcGxlLCB0aGUKKyAqIDxjb2RlPk51bWJlckZv
cm1hdDwvY29kZT4gY2xhc3MgcHJvdmlkZXMgdGhlc2UgdGhyZWUgY29udmVuaWVuY2UgbWV0aG9k
cworICogZm9yIGNyZWF0aW5nIGEgZGVmYXVsdCA8Y29kZT5OdW1iZXJGb3JtYXQ8L2NvZGU+IG9i
amVjdDoKKyAqIFxodG1sb25seTxibG9ja3F1b3RlPlxlbmRodG1sb25seQorICogPHByZT4KKyAq
ICAgICBVRXJyb3JDb2RlIHN1Y2Nlc3MgPSBVX1pFUk9fRVJST1I7CisgKiAgICAgTG9jYWxlIG15
TG9jYWxlOworICogICAgIE51bWJlckZvcm1hdCAqbmY7CisgKgorICogICAgIG5mID0gTnVtYmVy
Rm9ybWF0OjpjcmVhdGVJbnN0YW5jZSggc3VjY2VzcyApOyAgICAgICAgICBkZWxldGUgbmY7Cisg
KiAgICAgbmYgPSBOdW1iZXJGb3JtYXQ6OmNyZWF0ZUN1cnJlbmN5SW5zdGFuY2UoIHN1Y2Nlc3Mg
KTsgIGRlbGV0ZSBuZjsKKyAqICAgICBuZiA9IE51bWJlckZvcm1hdDo6Y3JlYXRlUGVyY2VudElu
c3RhbmNlKCBzdWNjZXNzICk7ICAgZGVsZXRlIG5mOworICogPC9wcmU+CisgKiBcaHRtbG9ubHk8
L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBFYWNoIG9mIHRoZXNlIG1ldGhvZHMgaGFzIHR3
byB2YXJpYW50czsgb25lIHdpdGggYW4gZXhwbGljaXQgbG9jYWxlCisgKiBhbmQgb25lIHdpdGhv
dXQ7IHRoZSBsYXR0ZXIgdXNpbmcgdGhlIGRlZmF1bHQgbG9jYWxlLgorICogXGh0bWxvbmx5PGJs
b2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiA8cHJlPgorICogICAgIG5mID0gTnVtYmVyRm9ybWF0
OjpjcmVhdGVJbnN0YW5jZSggbXlMb2NhbGUsIHN1Y2Nlc3MgKTsgICAgICAgICAgZGVsZXRlIG5m
OworICogICAgIG5mID0gTnVtYmVyRm9ybWF0OjpjcmVhdGVDdXJyZW5jeUluc3RhbmNlKCBteUxv
Y2FsZSwgc3VjY2VzcyApOyAgZGVsZXRlIG5mOworICogICAgIG5mID0gTnVtYmVyRm9ybWF0Ojpj
cmVhdGVQZXJjZW50SW5zdGFuY2UoIG15TG9jYWxlLCBzdWNjZXNzICk7ICAgZGVsZXRlIG5mOwor
ICogPC9wcmU+CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKiBBIDxj
b2RlPkxvY2FsZTwvY29kZT4gaXMgdGhlIG1lY2hhbmlzbSBmb3IgaWRlbnRpZnlpbmcgdGhlIGtp
bmQgb2Ygb2JqZWN0CisgKiAoPGNvZGU+TnVtYmVyRm9ybWF0PC9jb2RlPikgdGhhdCB5b3Ugd291
bGQgbGlrZSB0byBnZXQuIFRoZSBsb2NhbGUgaXMKKyAqIDxTVFJPTkc+anVzdDwvU1RST05HPiBh
IG1lY2hhbmlzbSBmb3IgaWRlbnRpZnlpbmcgb2JqZWN0cywKKyAqIDxTVFJPTkc+bm90PC9TVFJP
Tkc+IGEgY29udGFpbmVyIGZvciB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgorICoKKyAqIDxQPgor
ICogRWFjaCBjbGFzcyB0aGF0IHBlcmZvcm1zIGxvY2FsZS1zZW5zaXRpdmUgb3BlcmF0aW9ucyBh
bGxvd3MgeW91CisgKiB0byBnZXQgYWxsIHRoZSBhdmFpbGFibGUgb2JqZWN0cyBvZiB0aGF0IHR5
cGUuIFlvdSBjYW4gc2lmdAorICogdGhyb3VnaCB0aGVzZSBvYmplY3RzIGJ5IGxhbmd1YWdlLCBj
b3VudHJ5LCBvciB2YXJpYW50LAorICogYW5kIHVzZSB0aGUgZGlzcGxheSBuYW1lcyB0byBwcmVz
ZW50IGEgbWVudSB0byB0aGUgdXNlci4KKyAqIEZvciBleGFtcGxlLCB5b3UgY2FuIGNyZWF0ZSBh
IG1lbnUgb2YgYWxsIHRoZSBjb2xsYXRpb24gb2JqZWN0cworICogc3VpdGFibGUgZm9yIGEgZ2l2
ZW4gbGFuZ3VhZ2UuIFN1Y2ggY2xhc3NlcyBpbXBsZW1lbnQgdGhlc2UKKyAqIHRocmVlIGNsYXNz
IG1ldGhvZHM6CisgKiBcaHRtbG9ubHk8YmxvY2txdW90ZT5cZW5kaHRtbG9ubHkKKyAqIDxwcmU+
CisgKiAgICAgICBzdGF0aWMgTG9jYWxlKiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3QmIG51
bUxvY2FsZXMpCisgKiAgICAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxheU5hbWUo
Y29uc3QgTG9jYWxlJiAgb2JqZWN0TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IExvY2FsZSYgIGRpc3BsYXlMb2NhbGUsCisgKiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgZGlz
cGxheU5hbWUpCisgKiAgICAgICBzdGF0aWMgVW5pY29kZVN0cmluZyYgZ2V0RGlzcGxheU5hbWUo
Y29uc3QgTG9jYWxlJiAgb2JqZWN0TG9jYWxlLAorICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BsYXlOYW1lKQorICogPC9wcmU+
CisgKiBcaHRtbG9ubHk8L2Jsb2NrcXVvdGU+XGVuZGh0bWxvbmx5CisgKgorICogQHN0YWJsZSBJ
Q1UgMi4wCisgKiBAc2VlIFJlc291cmNlQnVuZGxlCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBM
b2NhbGUgOiBwdWJsaWMgVU9iamVjdCB7CitwdWJsaWM6CisgICAgLyoqIFVzZWZ1bCBjb25zdGFu
dCBmb3IgdGhlIFJvb3QgbG9jYWxlLiBAc3RhYmxlIElDVSA0LjQgKi8KKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Um9vdCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0
YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29u
c3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RW5nbGlzaCh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNv
bnN0YW50IGZvciB0aGlzIGxhbmd1YWdlLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMg
Y29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0RnJlbmNoKHZvaWQpOworICAgIC8qKiBVc2VmdWwg
Y29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRp
YyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRHZXJtYW4odm9pZCk7CisgICAgLyoqIFVzZWZ1
bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3Rh
dGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEl0YWxpYW4odm9pZCk7CisgICAgLyoqIFVz
ZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAg
c3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEphcGFuZXNlKHZvaWQpOworICAgIC8q
KiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBzdGFibGUgSUNVIDIuMCAqLwor
ICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRLb3JlYW4odm9pZCk7CisgICAg
LyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4wICov
CisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldENoaW5lc2Uodm9pZCk7Cisg
ICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBsYW5ndWFnZS4gQHN0YWJsZSBJQ1UgMi4w
ICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldFNpbXBsaWZpZWRDaGlu
ZXNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgbGFuZ3VhZ2UuIEBz
dGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRU
cmFkaXRpb25hbENoaW5lc2Uodm9pZCk7CisKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0
aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3Qg
TG9jYWxlICZVX0VYUE9SVDIgZ2V0RnJhbmNlKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3Rh
bnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRp
YyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRHZXJtYW55KHZvaWQpOworICAgIC8qKiBVc2Vm
dWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLwor
ICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRJdGFseSh2b2lkKTsKKyAgICAv
KiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAy
LjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0SmFwYW4odm9pZCk7
CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3IgdGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJs
ZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSAmVV9FWFBPUlQyIGdldEtvcmVh
KHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24u
IEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBn
ZXRDaGluYSh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0YW50IGZvciB0aGlzIGNvdW50cnkv
cmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0aWMgY29uc3QgTG9jYWxlICZVX0VY
UE9SVDIgZ2V0UFJDKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQgZm9yIHRoaXMgY291
bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBjb25zdCBMb2NhbGUg
JlVfRVhQT1JUMiBnZXRUYWl3YW4odm9pZCk7CisgICAgLyoqIFVzZWZ1bCBjb25zdGFudCBmb3Ig
dGhpcyBjb3VudHJ5L3JlZ2lvbi4gQHN0YWJsZSBJQ1UgMi4wICovCisgICAgc3RhdGljIGNvbnN0
IExvY2FsZSAmVV9FWFBPUlQyIGdldFVLKHZvaWQpOworICAgIC8qKiBVc2VmdWwgY29uc3RhbnQg
Zm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLworICAgIHN0YXRpYyBj
b25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRVUyh2b2lkKTsKKyAgICAvKiogVXNlZnVsIGNvbnN0
YW50IGZvciB0aGlzIGNvdW50cnkvcmVnaW9uLiBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICBzdGF0
aWMgY29uc3QgTG9jYWxlICZVX0VYUE9SVDIgZ2V0Q2FuYWRhKHZvaWQpOworICAgIC8qKiBVc2Vm
dWwgY29uc3RhbnQgZm9yIHRoaXMgY291bnRyeS9yZWdpb24uIEBzdGFibGUgSUNVIDIuMCAqLwor
ICAgIHN0YXRpYyBjb25zdCBMb2NhbGUgJlVfRVhQT1JUMiBnZXRDYW5hZGFGcmVuY2godm9pZCk7
CisKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIGRlZmF1bHQgbG9jYWxlIG9iamVjdCwg
YSBMb2NhbGUgZm9yIHRoZSBkZWZhdWx0IGxvY2FsZSBJRC4KKyAgICAgKgorICAgICAqIEBzZWUg
Z2V0RGVmYXVsdAorICAgICAqIEBzZWUgdWxvY19nZXREZWZhdWx0CisgICAgICogQHN0YWJsZSBJ
Q1UgMi4wCisgICAgICovCisgICAgTG9jYWxlKCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1
Y3QgYSBsb2NhbGUgZnJvbSBsYW5ndWFnZSwgY291bnRyeSwgdmFyaWFudC4KKyAgICAgKiBJZiBh
biBlcnJvciBvY2N1cnMsIHRoZW4gdGhlIGNvbnN0cnVjdGVkIG9iamVjdCB3aWxsIGJlICJib2d1
cyIKKyAgICAgKiAoaXNCb2d1cygpIHdpbGwgcmV0dXJuIFRSVUUpLgorICAgICAqCisgICAgICog
QHBhcmFtIGxhbmd1YWdlIExvd2VyY2FzZSB0d28tbGV0dGVyIG9yIHRocmVlLWxldHRlciBJU08t
NjM5IGNvZGUuCisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNhbiBpbnN0ZWFkIGJlIGFuIElDVSBz
dHlsZSBDIGxvY2FsZSAoZS5nLiAiZW5fVVMiKSwKKyAgICAgKiAgYnV0IHRoZSBvdGhlciBwYXJh
bWV0ZXJzIG11c3Qgbm90IGJlIHVzZWQuCisgICAgICogIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSBO
VUxMOyBpZiBzbywKKyAgICAgKiAgdGhlIGxvY2FsZSBpcyBpbml0aWFsaXplZCB0byBtYXRjaCB0
aGUgY3VycmVudCBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKiAgKFRoaXMgaXMgdGhlIHNhbWUgYXMg
dXNpbmcgdGhlIGRlZmF1bHQgY29uc3RydWN0b3IuKQorICAgICAqICBQbGVhc2Ugbm90ZTogVGhl
IEphdmEgTG9jYWxlIGNsYXNzIGRvZXMgTk9UIGFjY2VwdCB0aGUgZm9ybQorICAgICAqICAnbmV3
IExvY2FsZSgiZW5fVVMiKScgYnV0IG9ubHkgJ25ldyBMb2NhbGUoImVuIiwiVVMiKScKKyAgICAg
KgorICAgICAqIEBwYXJhbSBjb3VudHJ5ICBVcHBlcmNhc2UgdHdvLWxldHRlciBJU08tMzE2NiBj
b2RlLiAob3B0aW9uYWwpCisgICAgICogQHBhcmFtIHZhcmlhbnQgIFVwcGVyY2FzZSB2ZW5kb3Ig
YW5kIGJyb3dzZXIgc3BlY2lmaWMgY29kZS4gU2VlIGNsYXNzCisgICAgICogICAgICAgICAgICAg
ICAgIGRlc2NyaXB0aW9uLiAob3B0aW9uYWwpCisgICAgICogQHBhcmFtIGtleXdvcmRzQW5kVmFs
dWVzIEEgc3RyaW5nIGNvbnNpc3Rpbmcgb2Yga2V5d29yZC92YWx1ZXMgcGFpcnMsIHN1Y2ggYXMK
KyAgICAgKiAgICAgICAgICAgICAgICAgImNvbGxhdGlvbj1waG9uZWJvb2s7Y3VycmVuY3k9ZXVy
byIKKyAgICAgKgorICAgICAqIEBzZWUgZ2V0RGVmYXVsdAorICAgICAqIEBzZWUgdWxvY19nZXRE
ZWZhdWx0CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgTG9jYWxlKCBjb25z
dCAgIGNoYXIgKiBsYW5ndWFnZSwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIGNvdW50cnkg
ID0gMCwKKyAgICAgICAgICAgIGNvbnN0ICAgY2hhciAqIHZhcmlhbnQgID0gMCwKKyAgICAgICAg
ICAgIGNvbnN0ICAgY2hhciAqIGtleXdvcmRzQW5kVmFsdWVzID0gMCk7CisKKyAgICAvKioKKyAg
ICAgKiBJbml0aWFsaXplcyBhIExvY2FsZSBvYmplY3QgZnJvbSBhbm90aGVyIExvY2FsZSBvYmpl
Y3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3RoZXIgVGhlIExvY2FsZSBvYmplY3QgYmVpbmcg
Y29waWVkIGluLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIExvY2FsZShj
b25zdCAgICBMb2NhbGUmIG90aGVyKTsKKworCisgICAgLyoqCisgICAgICogRGVzdHJ1Y3Rvcgor
ICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgfkxvY2FsZSgpIDsK
KworICAgIC8qKgorICAgICAqIFJlcGxhY2VzIHRoZSBlbnRpcmUgY29udGVudHMgb2YgKnRoaXMg
d2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRo
ZSBMb2NhbGUgb2JqZWN0IGJlaW5nIGNvcGllZCBpbi4KKyAgICAgKiBAcmV0dXJuICAgICAgKnRo
aXMKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBMb2NhbGUmIG9wZXJhdG9y
PShjb25zdCBMb2NhbGUmIG90aGVyKTsKKworICAgIC8qKgorICAgICAqIENoZWNrcyBpZiB0d28g
bG9jYWxlIGtleXMgYXJlIHRoZSBzYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG90aGVyIFRo
ZSBsb2NhbGUga2V5IG9iamVjdCB0byBiZSBjb21wYXJlZCB3aXRoIHRoaXMuCisgICAgICogQHJl
dHVybiAgICAgIFRydWUgaWYgdGhlIHR3byBsb2NhbGUga2V5cyBhcmUgdGhlIHNhbWUsIGZhbHNl
IG90aGVyd2lzZS4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICBVQm9vbCAg
IG9wZXJhdG9yPT0oY29uc3QgICAgTG9jYWxlJiAgICAgb3RoZXIpIGNvbnN0OworCisgICAgLyoq
CisgICAgICogQ2hlY2tzIGlmIHR3byBsb2NhbGUga2V5cyBhcmUgbm90IHRoZSBzYW1lLgorICAg
ICAqCisgICAgICogQHBhcmFtIG90aGVyIFRoZSBsb2NhbGUga2V5IG9iamVjdCB0byBiZSBjb21w
YXJlZCB3aXRoIHRoaXMuCisgICAgICogQHJldHVybiAgICAgIFRydWUgaWYgdGhlIHR3byBsb2Nh
bGUga2V5cyBhcmUgbm90IHRoZSBzYW1lLCBmYWxzZQorICAgICAqICAgICAgICAgICAgICBvdGhl
cndpc2UuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVUJvb2wgICBvcGVy
YXRvciE9KGNvbnN0ICAgIExvY2FsZSYgICAgIG90aGVyKSBjb25zdDsKKworICAgIC8qKgorICAg
ICAqIENsb25lIHRoaXMgb2JqZWN0LgorICAgICAqIENsb25lcyBjYW4gYmUgdXNlZCBjb25jdXJy
ZW50bHkgaW4gbXVsdGlwbGUgdGhyZWFkcy4KKyAgICAgKiBJZiBhbiBlcnJvciBvY2N1cnMsIHRo
ZW4gTlVMTCBpcyByZXR1cm5lZC4KKyAgICAgKiBUaGUgY2FsbGVyIG11c3QgZGVsZXRlIHRoZSBj
bG9uZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYSBjbG9uZSBvZiB0aGlzIG9iamVjdAorICAg
ICAqCisgICAgICogQHNlZSBnZXREeW5hbWljQ2xhc3NJRAorICAgICAqIEBzdGFibGUgSUNVIDIu
OAorICAgICAqLworICAgIExvY2FsZSAqY2xvbmUoKSBjb25zdDsKKworI2lmbmRlZiBVX0hJREVf
U1lTVEVNX0FQSQorICAgIC8qKgorICAgICAqIENvbW1vbiBtZXRob2RzIG9mIGdldHRpbmcgdGhl
IGN1cnJlbnQgZGVmYXVsdCBMb2NhbGUuIFVzZWQgZm9yIHRoZQorICAgICAqIHByZXNlbnRhdGlv
bjogbWVudXMsIGRpYWxvZ3MsIGV0Yy4gR2VuZXJhbGx5IHNldCBvbmNlIHdoZW4geW91ciBhcHBs
ZXQgb3IKKyAgICAgKiBhcHBsaWNhdGlvbiBpcyBpbml0aWFsaXplZCwgdGhlbiBuZXZlciByZXNl
dC4gKElmIHlvdSBkbyByZXNldCB0aGUKKyAgICAgKiBkZWZhdWx0IGxvY2FsZSwgeW91IHByb2Jh
Ymx5IHdhbnQgdG8gcmVsb2FkIHlvdXIgR1VJLCBzbyB0aGF0IHRoZSBjaGFuZ2UKKyAgICAgKiBp
cyByZWZsZWN0ZWQgaW4geW91ciBpbnRlcmZhY2UuKQorICAgICAqCisgICAgICogTW9yZSBhZHZh
bmNlZCBwcm9ncmFtcyB3aWxsIGFsbG93IHVzZXJzIHRvIHVzZSBkaWZmZXJlbnQgbG9jYWxlcyBm
b3IKKyAgICAgKiBkaWZmZXJlbnQgZmllbGRzLCBlLmcuIGluIGEgc3ByZWFkc2hlZXQuCisgICAg
ICoKKyAgICAgKiBOb3RlIHRoYXQgdGhlIGluaXRpYWwgc2V0dGluZyB3aWxsIG1hdGNoIHRoZSBo
b3N0IHN5c3RlbS4KKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSBMb2NhbGUgb2Jq
ZWN0IGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgSUQKKyAgICAgKiBAc3lzdGVtCisgICAgICogQHN0
YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIGNvbnN0IExvY2FsZSYgVV9FWFBPUlQy
IGdldERlZmF1bHQodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBkZWZhdWx0LiBO
b3JtYWxseSBzZXQgb25jZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgcHJvY2VzcywKKyAgICAgKiB0
aGVuIG5ldmVyIHJlc2V0LgorICAgICAqIHNldERlZmF1bHQoKSBvbmx5IGNoYW5nZXMgSUNVJ3Mg
ZGVmYXVsdCBsb2NhbGUgSUQsIDxzdHJvbmc+bm90PC9zdHJvbmc+CisgICAgICogdGhlIGRlZmF1
bHQgbG9jYWxlIElEIG9mIHRoZSBydW50aW1lIGVudmlyb25tZW50LgorICAgICAqCisgICAgICog
QHBhcmFtIG5ld0xvY2FsZSBMb2NhbGUgdG8gc2V0IHRvLiAgSWYgTlVMTCwgc2V0IHRvIHRoZSB2
YWx1ZSBvYnRhaW5lZAorICAgICAqICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgcnVudGltZSBl
bnZpcm9uZW1lbnQuCisgICAgICogQHBhcmFtIHN1Y2Nlc3MgVGhlIGVycm9yIGNvZGUuCisgICAg
ICogQHN5c3RlbQorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0YXRpYyB2
b2lkIFVfRVhQT1JUMiBzZXREZWZhdWx0KGNvbnN0IExvY2FsZSYgbmV3TG9jYWxlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUmICAgc3VjY2Vzcyk7Cisj
ZW5kaWYgIC8qIFVfSElERV9TWVNURU1fQVBJICovCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVz
IGEgbG9jYWxlIHdoaWNoIGhhcyBoYWQgbWluaW1hbCBjYW5vbmljYWxpemF0aW9uCisgICAgICog
YXMgcGVyIHVsb2NfZ2V0TmFtZSgpLgorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIHRvIGNy
ZWF0ZSBmcm9tLiAgSWYgbmFtZSBpcyBudWxsLAorICAgICAqICB0aGUgZGVmYXVsdCBMb2NhbGUg
aXMgdXNlZC4KKyAgICAgKiBAcmV0dXJuIG5ldyBsb2NhbGUgb2JqZWN0CisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICogQHNlZSB1bG9jX2dldE5hbWUKKyAgICAgKi8KKyAgICBzdGF0aWMg
TG9jYWxlIFVfRVhQT1JUMiBjcmVhdGVGcm9tTmFtZShjb25zdCBjaGFyICpuYW1lKTsKKworICAg
IC8qKgorICAgICAqIENyZWF0ZXMgYSBsb2NhbGUgZnJvbSB0aGUgZ2l2ZW4gc3RyaW5nIGFmdGVy
IGNhbm9uaWNhbGl6aW5nCisgICAgICogdGhlIHN0cmluZyBieSBjYWxsaW5nIHVsb2NfY2Fub25p
Y2FsaXplKCkuCisgICAgICogQHBhcmFtIG5hbWUgdGhlIGxvY2FsZSBJRCB0byBjcmVhdGUgZnJv
bS4gIE11c3Qgbm90IGJlIE5VTEwuCisgICAgICogQHJldHVybiBhIG5ldyBsb2NhbGUgb2JqZWN0
IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIG5hbWUKKyAgICAgKiBAc3RhYmxlIElDVSAzLjAK
KyAgICAgKiBAc2VlIHVsb2NfY2Fub25pY2FsaXplCisgICAgICovCisgICAgc3RhdGljIExvY2Fs
ZSBVX0VYUE9SVDIgY3JlYXRlQ2Fub25pY2FsKGNvbnN0IGNoYXIqIG5hbWUpOworCisgICAgLyoq
CisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTYzOSBsYW5ndWFnZSBjb2RlLgorICAg
ICAqIEByZXR1cm4gICAgICBBbiBhbGlhcyB0byB0aGUgY29kZQorICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIGlubGluZSBjb25zdCBjaGFyICogIGdldExhbmd1YWdlKCApIGNv
bnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbG9jYWxlJ3MgSVNPLTE1OTI0IGFi
YnJldmlhdGlvbiBzY3JpcHQgY29kZS4KKyAgICAgKiBAcmV0dXJuICAgICAgQW4gYWxpYXMgdG8g
dGhlIGNvZGUKKyAgICAgKiBAc2VlIHVzY3JpcHRfZ2V0U2hvcnROYW1lCisgICAgICogQHNlZSB1
c2NyaXB0X2dldENvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBpbmxp
bmUgY29uc3QgY2hhciAqICBnZXRTY3JpcHQoICkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBS
ZXR1cm5zIHRoZSBsb2NhbGUncyBJU08tMzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICogQHJldHVy
biAgICAgIEFuIGFsaWFzIHRvIHRoZSBjb2RlCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgaW5saW5lIGNvbnN0IGNoYXIgKiAgZ2V0Q291bnRyeSggKSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSdzIHZhcmlhbnQgY29kZS4KKyAgICAgKiBA
cmV0dXJuICAgICAgQW4gYWxpYXMgdG8gdGhlIGNvZGUKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBpbmxpbmUgY29uc3QgY2hhciAqICBnZXRWYXJpYW50KCApIGNvbnN0Owor
CisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcHJvZ3JhbW1hdGljIG5hbWUgb2YgdGhlIGVu
dGlyZSBsb2NhbGUsIHdpdGggdGhlIGxhbmd1YWdlLAorICAgICAqIGNvdW50cnkgYW5kIHZhcmlh
bnQgc2VwYXJhdGVkIGJ5IHVuZGVyYmFycy4gSWYgYSBmaWVsZCBpcyBtaXNzaW5nLCB1cAorICAg
ICAqIHRvIHR3byBsZWFkaW5nIHVuZGVyYmFycyB3aWxsIG9jY3VyLiBFeGFtcGxlOiAiZW4iLCAi
ZGVfREUiLCAiZW5fVVNfV0lOIiwKKyAgICAgKiAiZGVfX1BPU0lYIiwgImZyX19NQUMiLCAiX19N
QUMiLCAiX01UIiwgIl9GUl9FVVJPIgorICAgICAqIEByZXR1cm4gICAgICBBIHBvaW50ZXIgdG8g
Im5hbWUiLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIGlubGluZSBjb25z
dCBjaGFyICogZ2V0TmFtZSgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUg
cHJvZ3JhbW1hdGljIG5hbWUgb2YgdGhlIGVudGlyZSBsb2NhbGUgYXMgZ2V0TmFtZSgpIHdvdWxk
IHJldHVybiwKKyAgICAgKiBidXQgd2l0aG91dCBrZXl3b3Jkcy4KKyAgICAgKiBAcmV0dXJuICAg
ICAgQSBwb2ludGVyIHRvICJuYW1lIi4KKyAgICAgKiBAc2VlIGdldE5hbWUKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0QmFzZU5hbWUoKSBjb25z
dDsKKworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbGlzdCBvZiBrZXl3b3JkcyBmb3IgdGhl
IHNwZWNpZmllZCBsb2NhbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzIHRoZSBzdGF0
dXMgY29kZQorICAgICAqIEByZXR1cm4gcG9pbnRlciB0byBTdHJpbmdFbnVtZXJhdGlvbiBjbGFz
cywgb3IgTlVMTCBpZiB0aGVyZSBhcmUgbm8ga2V5d29yZHMuIAorICAgICAqIENsaWVudCBtdXN0
IGRpc3Bvc2Ugb2YgaXQgYnkgY2FsbGluZyBkZWxldGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi44
CisgICAgICovCisgICAgU3RyaW5nRW51bWVyYXRpb24gKiBjcmVhdGVLZXl3b3JkcyhVRXJyb3JD
b2RlICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdmFsdWUgZm9y
IGEga2V5d29yZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRo
ZSBrZXl3b3JkIGZvciB3aGljaCB3ZSB3YW50IHRoZSB2YWx1ZS4gQ2FzZSBpbnNlbnNpdGl2ZS4K
KyAgICAgKiBAcGFyYW0gYnVmZmVyIFRoZSBidWZmZXIgdG8gcmVjZWl2ZSB0aGUga2V5d29yZCB2
YWx1ZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVyQ2FwYWNpdHkgVGhlIGNhcGFjaXR5IG9mIHJlY2Vp
dmluZyBidWZmZXIKKyAgICAgKiBAcGFyYW0gc3RhdHVzIFJldHVybnMgYW55IGVycm9yIGluZm9y
bWF0aW9uIHdoaWxlIHBlcmZvcm1pbmcgdGhpcyBvcGVyYXRpb24uCisgICAgICogQHJldHVybiB0
aGUgbGVuZ3RoIG9mIHRoZSBrZXl3b3JkIHZhbHVlCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElD
VSAyLjgKKyAgICAgKi8KKyAgICBpbnQzMl90IGdldEtleXdvcmRWYWx1ZShjb25zdCBjaGFyKiBr
ZXl3b3JkTmFtZSwgY2hhciAqYnVmZmVyLCBpbnQzMl90IGJ1ZmZlckNhcGFjaXR5LCBVRXJyb3JD
b2RlICZzdGF0dXMpIGNvbnN0OworCisgICAgLyoqCisgICAgICogU2V0cyBvciByZW1vdmVzIHRo
ZSB2YWx1ZSBmb3IgYSBrZXl3b3JkLgorICAgICAqCisgICAgICogRm9yIHJlbW92aW5nIGFsbCBr
ZXl3b3JkcywgdXNlIGdldEJhc2VOYW1lKCksCisgICAgICogYW5kIGNvbnN0cnVjdCBhIG5ldyBM
b2NhbGUgaWYgaXQgZGlmZmVycyBmcm9tIGdldE5hbWUoKS4KKyAgICAgKgorICAgICAqIEBwYXJh
bSBrZXl3b3JkTmFtZSBuYW1lIG9mIHRoZSBrZXl3b3JkIHRvIGJlIHNldC4gQ2FzZSBpbnNlbnNp
dGl2ZS4KKyAgICAgKiBAcGFyYW0ga2V5d29yZFZhbHVlIHZhbHVlIG9mIHRoZSBrZXl3b3JkIHRv
IGJlIHNldC4gSWYgMC1sZW5ndGggb3IKKyAgICAgKiAgTlVMTCwgd2lsbCByZXN1bHQgaW4gdGhl
IGtleXdvcmQgYmVpbmcgcmVtb3ZlZC4gTm8gZXJyb3IgaXMgZ2l2ZW4gaWYKKyAgICAgKiAgdGhh
dCBrZXl3b3JkIGRvZXMgbm90IGV4aXN0LgorICAgICAqIEBwYXJhbSBzdGF0dXMgUmV0dXJucyBh
bnkgZXJyb3IgaW5mb3JtYXRpb24gd2hpbGUgcGVyZm9ybWluZyB0aGlzIG9wZXJhdGlvbi4KKyAg
ICAgKgorICAgICAqIEBzdGFibGUgSUNVIDQ5CisgICAgICovCisgICAgdm9pZCBzZXRLZXl3b3Jk
VmFsdWUoY29uc3QgY2hhcioga2V5d29yZE5hbWUsIGNvbnN0IGNoYXIqIGtleXdvcmRWYWx1ZSwg
VUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIHJldHVybnMgdGhlIGxvY2Fs
ZSdzIHRocmVlLWxldHRlciBsYW5ndWFnZSBjb2RlLCBhcyBzcGVjaWZpZWQKKyAgICAgKiBpbiBJ
U08gZHJhZnQgc3RhbmRhcmQgSVNPLTYzOS0yLgorICAgICAqIEByZXR1cm4gICAgICBBbiBhbGlh
cyB0byB0aGUgY29kZSwgb3IgYW4gZW1wdHkgc3RyaW5nCisgICAgICogQHN0YWJsZSBJQ1UgMi4w
CisgICAgICovCisgICAgY29uc3QgY2hhciAqIGdldElTTzNMYW5ndWFnZSgpIGNvbnN0OworCisg
ICAgLyoqCisgICAgICogRmlsbHMgaW4gIm5hbWUiIHdpdGggdGhlIGxvY2FsZSdzIHRocmVlLWxl
dHRlciBJU08tMzE2NiBjb3VudHJ5IGNvZGUuCisgICAgICogQHJldHVybiAgICAgIEFuIGFsaWFz
IHRvIHRoZSBjb2RlLCBvciBhbiBlbXB0eSBzdHJpbmcKKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBjb25zdCBjaGFyICogZ2V0SVNPM0NvdW50cnkoKSBjb25zdDsKKworICAg
IC8qKgorICAgICAqIFJldHVybnMgdGhlIFdpbmRvd3MgTENJRCB2YWx1ZSBjb3JyZXNwb25kaW5n
IHRvIHRoaXMgbG9jYWxlLgorICAgICAqIFRoaXMgdmFsdWUgaXMgc3RvcmVkIGluIHRoZSByZXNv
dXJjZSBkYXRhIGZvciB0aGUgbG9jYWxlIGFzIGEgb25lLXRvLWZvdXItZGlnaXQKKyAgICAgKiBo
ZXhhZGVjaW1hbCBudW1iZXIuICBJZiB0aGUgcmVzb3VyY2UgaXMgbWlzc2luZywgaW4gdGhlIHdy
b25nIGZvcm1hdCwgb3IKKyAgICAgKiB0aGVyZSBpcyBubyBXaW5kb3dzIExDSUQgdmFsdWUgdGhh
dCBjb3JyZXNwb25kcyB0byB0aGlzIGxvY2FsZSwgcmV0dXJucyAwLgorICAgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHVpbnQzMl90ICAgICAgICBnZXRMQ0lEKHZvaWQpIGNvbnN0
OworCisjaWZuZGVmIFVfSElERV9EUkFGVF9BUEkKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHdo
ZXRoZXIgdGhpcyBsb2NhbGUncyBzY3JpcHQgaXMgd3JpdHRlbiByaWdodC10by1sZWZ0LgorICAg
ICAqIElmIHRoZXJlIGlzIG5vIHNjcmlwdCBzdWJ0YWcsIHRoZW4gdGhlIGxpa2VseSBzY3JpcHQg
aXMgdXNlZCwgc2VlIHVsb2NfYWRkTGlrZWx5U3VidGFncygpLgorICAgICAqIElmIG5vIGxpa2Vs
eSBzY3JpcHQgaXMga25vd24sIHRoZW4gRkFMU0UgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAg
KiBBIHNjcmlwdCBpcyByaWdodC10by1sZWZ0IGFjY29yZGluZyB0byB0aGUgQ0xEUiBzY3JpcHQg
bWV0YWRhdGEKKyAgICAgKiB3aGljaCBjb3JyZXNwb25kcyB0byB3aGV0aGVyIHRoZSBzY3JpcHQn
cyBsZXR0ZXJzIGhhdmUgQmlkaV9DbGFzcz1SIG9yIEFMLgorICAgICAqCisgICAgICogUmV0dXJu
cyBUUlVFIGZvciAiYXIiIGFuZCAiZW4tSGViciIsIEZBTFNFIGZvciAiemgiIGFuZCAiZmEtQ3ly
bCIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgdGhlIGxvY2FsZSdzIHNjcmlwdCBp
cyB3cml0dGVuIHJpZ2h0LXRvLWxlZnQKKyAgICAgKiBAZHJhZnQgSUNVIDU0CisgICAgICovCisg
ICAgVUJvb2wgaXNSaWdodFRvTGVmdCgpIGNvbnN0OworI2VuZGlmICAvKiBVX0hJREVfRFJBRlRf
QVBJICovCisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcExhbmciIHdpdGggdGhlIG5h
bWUgb2YgdGhpcyBsb2NhbGUncyBsYW5ndWFnZSBpbiBhIGZvcm1hdCBzdWl0YWJsZSBmb3IKKyAg
ICAgKiB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlm
IHRoZSBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzCisgICAgICogImZyIiBhbmQgdGhlIGRlZmF1
bHQgbG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNl
dAorICAgICAqIGRpc3BMYW5nIHRvICJGcmVuY2giLgorICAgICAqIEBwYXJhbSBkaXNwTGFuZyAg
UmVjZWl2ZXMgdGhlIGxhbmd1YWdlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAg
ICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BMYW5nIi4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUxhbmd1YWdlKFVuaWNvZGVT
dHJpbmcmICAgZGlzcExhbmcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRp
c3BMYW5nIiB3aXRoIHRoZSBuYW1lIG9mIHRoaXMgbG9jYWxlJ3MgbGFuZ3VhZ2UgaW4gYSBmb3Jt
YXQgc3VpdGFibGUgZm9yCisgICAgICogdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lm
aWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxlLCBpZiB0aGUgbG9jYWxlJ3MKKyAg
ICAgKiBsYW5ndWFnZSBjb2RlIGlzICJlbiIgYW5kIGRpc3BsYXlMb2NhbGUncyBsYW5ndWFnZSBj
b2RlIGlzICJmciIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0CisgICAgICogZGlzcExhbmcgdG8g
IkFuZ2xhaXMiLgorICAgICAqIEBwYXJhbSBkaXNwbGF5TG9jYWxlICBTcGVjaWZpZXMgdGhlIGxv
Y2FsZSB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIG5hbWUuICBJbiBvdGhlciB3b3JkcywKKyAg
ICAgKiAgICAgICAgICAgICAgICAgIGlmIHRoZSBsb2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJl
biIsIHBhc3NpbmcgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IKKyAgICAgKiAgICAgICAgICAgICAg
ICAgIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluICJBbmdsYWlzIiwgd2hpbGUgcGFzc2lu
ZyBMb2NhbGU6OmdldEdlcm1hbigpCisgICAgICogICAgICAgICAgICAgICAgICBmb3IgZGlzcGxh
eUxvY2FsZSB3b3VsZCByZXN1bHQgaW4gIkVuZ2xpc2NoIi4KKyAgICAgKiBAcGFyYW0gZGlzcExh
bmcgIFJlY2VpdmVzIHRoZSBsYW5ndWFnZSdzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJu
ICAgICAgICAgIEEgcmVmZXJlbmNlIHRvICJkaXNwTGFuZyIuCisgICAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlMYW5ndWFnZSggY29u
c3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBkaXNwTGFuZykgY29u
c3Q7CisKKyAgICAvKioKKyAgICAgKiBGaWxscyBpbiAiZGlzcFNjcmlwdCIgd2l0aCB0aGUgbmFt
ZSBvZiB0aGlzIGxvY2FsZSdzIHNjcmlwdCBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZv
ciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRo
ZSBsb2NhbGUncyBzY3JpcHQgY29kZQorICAgICAqIGlzICJMQVROIiBhbmQgdGhlIGRlZmF1bHQg
bG9jYWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAor
ICAgICAqIGRpc3BTY3JpcHQgdG8gIkxhdGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcFNjcmlwdCAg
ICBSZWNlaXZlcyB0aGUgc2NyaXB0cydzIGRpc3BsYXkgbmFtZS4KKyAgICAgKiBAcmV0dXJuICAg
ICAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFNjcmlwdCIuCisgICAgICogQHN0YWJsZSBJ
Q1UgMi44CisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlTY3JpcHQoICAg
ICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BTY3JpcHQpIGNvbnN0OworCisgICAgLyoqCisgICAg
ICogRmlsbHMgaW4gImRpc3BTY3JpcHQiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyBj
b3VudHJ5IGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9yIHVzZXIgZGlzcGxheSBpbiB0
aGUgbG9jYWxlIHNwZWNpZmllZCBieSAiZGlzcGxheUxvY2FsZSIuICBGb3IgZXhhbXBsZSwgaWYg
dGhlIGxvY2FsZSdzCisgICAgICogc2NyaXB0IGNvZGUgaXMgIkxBVE4iIGFuZCBkaXNwbGF5TG9j
YWxlJ3MgbGFuZ3VhZ2UgY29kZSBpcyAiZW4iLCB0aGlzIGZ1bmN0aW9uIHdvdWxkIHNldAorICAg
ICAqIGRpc3BTY3JpcHQgdG8gIkxhdGluIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAg
ICAgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgbmFtZS4g
IEluIG90aGVyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgd29yZHMsIGlmIHRoZSBsb2Nh
bGUncyBzY3JpcHQgY29kZSBpcyAiTEFUTiIsIHBhc3NpbmcKKyAgICAgKiAgICAgICAgICAgICAg
ICAgICAgICBMb2NhbGU6OmdldEZyZW5jaCgpIGZvciBkaXNwbGF5TG9jYWxlIHdvdWxkIHJlc3Vs
dCBpbiAiIiwgd2hpbGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICBwYXNzaW5nIExvY2Fs
ZTo6Z2V0R2VybWFuKCkgZm9yIGRpc3BsYXlMb2NhbGUgd291bGQgcmVzdWx0IGluCisgICAgICog
ICAgICAgICAgICAgICAgICAgICAgIiIuCisgICAgICogQHBhcmFtIGRpc3BTY3JpcHQgICAgUmVj
ZWl2ZXMgdGhlIHNjcmlwdHMncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAg
ICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BTY3JpcHQiLgorICAgICAqIEBzdGFibGUgSUNVIDIu
OAorICAgICAqLworICAgIFVuaWNvZGVTdHJpbmcmICBnZXREaXNwbGF5U2NyaXB0KCAgY29uc3Qg
ICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BTY3JpcHQpIGNvbnN0
OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BDb3VudHJ5IiB3aXRoIHRoZSBuYW1l
IG9mIHRoaXMgbG9jYWxlJ3MgY291bnRyeSBpbiBhIGZvcm1hdCBzdWl0YWJsZQorICAgICAqIGZv
ciB1c2VyIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgbG9jYWxlLiAgRm9yIGV4YW1wbGUsIGlmIHRo
ZSBsb2NhbGUncyBjb3VudHJ5IGNvZGUKKyAgICAgKiBpcyAiRlIiIGFuZCB0aGUgZGVmYXVsdCBs
b2NhbGUncyBsYW5ndWFnZSBjb2RlIGlzICJlbiIsIHRoaXMgZnVuY3Rpb24gd291bGQgc2V0Cisg
ICAgICogZGlzcENvdW50cnkgdG8gIkZyYW5jZSIuCisgICAgICogQHBhcmFtIGRpc3BDb3VudHJ5
ICAgUmVjZWl2ZXMgdGhlIGNvdW50cnkncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAg
ICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNvdW50cnko
ICAgICAgICAgIFVuaWNvZGVTdHJpbmcmIGRpc3BDb3VudHJ5KSBjb25zdDsKKworICAgIC8qKgor
ICAgICAqIEZpbGxzIGluICJkaXNwQ291bnRyeSIgd2l0aCB0aGUgbmFtZSBvZiB0aGlzIGxvY2Fs
ZSdzIGNvdW50cnkgaW4gYSBmb3JtYXQgc3VpdGFibGUKKyAgICAgKiBmb3IgdXNlciBkaXNwbGF5
IGluIHRoZSBsb2NhbGUgc3BlY2lmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIEZvciBleGFtcGxl
LCBpZiB0aGUgbG9jYWxlJ3MKKyAgICAgKiBjb3VudHJ5IGNvZGUgaXMgIlVTIiBhbmQgZGlzcGxh
eUxvY2FsZSdzIGxhbmd1YWdlIGNvZGUgaXMgImZyIiwgdGhpcyBmdW5jdGlvbiB3b3VsZCBzZXQK
KyAgICAgKiBkaXNwQ291bnRyeSB0byAiJkVhY3V0ZTt0YXRzLVVuaXMiLgorICAgICAqIEBwYXJh
bSBkaXNwbGF5TG9jYWxlICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBk
aXNwbGF5IHRoZSBuYW1lLiAgSW4gb3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB3
b3JkcywgaWYgdGhlIGxvY2FsZSdzIGNvdW50cnkgY29kZSBpcyAiVVMiLCBwYXNzaW5nCisgICAg
ICogICAgICAgICAgICAgICAgICAgICAgTG9jYWxlOjpnZXRGcmVuY2goKSBmb3IgZGlzcGxheUxv
Y2FsZSB3b3VsZCByZXN1bHQgaW4gIiZFYWN1dGU7dGF0cy1VbmlzIiwgd2hpbGUKKyAgICAgKiAg
ICAgICAgICAgICAgICAgICAgICBwYXNzaW5nIExvY2FsZTo6Z2V0R2VybWFuKCkgZm9yIGRpc3Bs
YXlMb2NhbGUgd291bGQgcmVzdWx0IGluCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIlZl
cmVpbmlndGUgU3RhYXRlbiIuCisgICAgICogQHBhcmFtIGRpc3BDb3VudHJ5ICAgUmVjZWl2ZXMg
dGhlIGNvdW50cnkncyBkaXNwbGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICAgICAg
QSByZWZlcmVuY2UgdG8gImRpc3BDb3VudHJ5Ii4KKyAgICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICAgKi8KKyAgICBVbmljb2RlU3RyaW5nJiAgZ2V0RGlzcGxheUNvdW50cnkoICBjb25zdCAgIExv
Y2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVW5pY29kZVN0cmluZyYgIGRpc3BDb3VudHJ5KSBjb25zdDsK
KworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJkaXNwVmFyIiB3aXRoIHRoZSBuYW1lIG9mIHRo
aXMgbG9jYWxlJ3MgdmFyaWFudCBjb2RlIGluIGEgZm9ybWF0IHN1aXRhYmxlCisgICAgICogZm9y
IHVzZXIgZGlzcGxheSBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICogQHBhcmFtIGRpc3BW
YXIgICBSZWNlaXZlcyB0aGUgdmFyaWFudCdzIG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAg
ICBBIHJlZmVyZW5jZSB0byAiZGlzcFZhciIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlWYXJpYW50KCAgICAgIFVuaWNvZGVT
dHJpbmcmIGRpc3BWYXIpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRmlsbHMgaW4gImRpc3BW
YXIiIHdpdGggdGhlIG5hbWUgb2YgdGhpcyBsb2NhbGUncyB2YXJpYW50IGNvZGUgaW4gYSBmb3Jt
YXQKKyAgICAgKiBzdWl0YWJsZSBmb3IgdXNlciBkaXNwbGF5IGluIHRoZSBsb2NhbGUgc3BlY2lm
aWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4KKyAgICAgKiBAcGFyYW0gZGlzcGxheUxvY2FsZSAgU3Bl
Y2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBuYW1lLgorICAgICAq
IEBwYXJhbSBkaXNwVmFyICAgUmVjZWl2ZXMgdGhlIHZhcmlhbnQncyBkaXNwbGF5IG5hbWUuCisg
ICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAiZGlzcFZhciIuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdldERpc3BsYXlW
YXJpYW50KCAgY29uc3QgICBMb2NhbGUmICAgICAgICAgZGlzcGxheUxvY2FsZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBk
aXNwVmFyKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRo
ZSBuYW1lIG9mIHRoaXMgbG9jYWxlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2VyIGRpc3Bs
YXkKKyAgICAgKiBpbiB0aGUgZGVmYXVsdCBsb2NhbGUuICBUaGlzIGZ1bmN0aW9uIHVzZXMgZ2V0
RGlzcGxheUxhbmd1YWdlKCksIGdldERpc3BsYXlDb3VudHJ5KCksCisgICAgICogYW5kIGdldERp
c3BsYXlWYXJpYW50KCkgdG8gZG8gaXRzIHdvcmssIGFuZCBvdXRwdXRzIHRoZSBkaXNwbGF5IG5h
bWUgaW4gdGhlIGZvcm1hdAorICAgICAqICJsYW5ndWFnZSAoY291bnRyeVssdmFyaWFudF0pIi4g
IEZvciBleGFtcGxlLCBpZiB0aGUgZGVmYXVsdCBsb2NhbGUgaXMgZW5fVVMsIHRoZW4KKyAgICAg
KiBmcl9GUidzIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAiRnJlbmNoIChGcmFuY2UpIiwgYW5kIGVz
X01YX1RyYWRpdGlvbmFsJ3MgZGlzcGxheSBuYW1lCisgICAgICogd291bGQgYmUgIlNwYW5pc2gg
KE1leGljbyxUcmFkaXRpb25hbCkiLgorICAgICAqIEBwYXJhbSBuYW1lICBSZWNlaXZlcyB0aGUg
bG9jYWxlJ3MgZGlzcGxheSBuYW1lLgorICAgICAqIEByZXR1cm4gICAgICBBIHJlZmVyZW5jZSB0
byAibmFtZSIuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0
cmluZyYgIGdldERpc3BsYXlOYW1lKCAgICAgICAgIFVuaWNvZGVTdHJpbmcmICBuYW1lKSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIEZpbGxzIGluICJuYW1lIiB3aXRoIHRoZSBuYW1lIG9mIHRo
aXMgbG9jYWxlIGluIGEgZm9ybWF0IHN1aXRhYmxlIGZvciB1c2VyIGRpc3BsYXkKKyAgICAgKiBp
biB0aGUgbG9jYWxlIHNwZWNmaWVkIGJ5ICJkaXNwbGF5TG9jYWxlIi4gIFRoaXMgZnVuY3Rpb24g
dXNlcyBnZXREaXNwbGF5TGFuZ3VhZ2UoKSwKKyAgICAgKiBnZXREaXNwbGF5Q291bnRyeSgpLCBh
bmQgZ2V0RGlzcGxheVZhcmlhbnQoKSB0byBkbyBpdHMgd29yaywgYW5kIG91dHB1dHMgdGhlIGRp
c3BsYXkKKyAgICAgKiBuYW1lIGluIHRoZSBmb3JtYXQgImxhbmd1YWdlIChjb3VudHJ5Wyx2YXJp
YW50XSkiLiAgRm9yIGV4YW1wbGUsIGlmIGRpc3BsYXlMb2NhbGUgaXMKKyAgICAgKiBmcl9GUiwg
dGhlbiBlbl9VUydzIGRpc3BsYXkgbmFtZSB3b3VsZCBiZSAiQW5nbGFpcyAoJkVhY3V0ZTt0YXRz
LVVuaXMpIiwgYW5kIG5vX05PX05ZJ3MKKyAgICAgKiBkaXNwbGF5IG5hbWUgd291bGQgYmUgIm5v
cnYmZWFjdXRlO2dpZW4gKE5vcnYmZWdyYXZlO2dlLE5ZKSIuCisgICAgICogQHBhcmFtIGRpc3Bs
YXlMb2NhbGUgIFNwZWNpZmllcyB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUg
bmFtZS4KKyAgICAgKiBAcGFyYW0gbmFtZSAgICAgIFJlY2VpdmVzIHRoZSBsb2NhbGUncyBkaXNw
bGF5IG5hbWUuCisgICAgICogQHJldHVybiAgICAgICAgICBBIHJlZmVyZW5jZSB0byAibmFtZSIu
CisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgVW5pY29kZVN0cmluZyYgIGdl
dERpc3BsYXlOYW1lKCBjb25zdCAgIExvY2FsZSYgICAgICAgICBkaXNwbGF5TG9jYWxlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlU3RyaW5nJiAg
bmFtZSkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9y
IHRoZSBsb2NhbGUuCisgICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgaW50MzJf
dCAgICAgICAgIGhhc2hDb2RlKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisgICAgICogU2V0cyB0
aGUgbG9jYWxlIHRvIGJvZ3VzCisgICAgICogQSBib2d1cyBsb2NhbGUgcmVwcmVzZW50cyBhIG5v
bi1leGlzdGluZyBsb2NhbGUgYXNzb2NpYXRlZAorICAgICAqIHdpdGggc2VydmljZXMgdGhhdCBj
YW4gYmUgaW5zdGFudGlhdGVkIGZyb20gbm9uLWxvY2FsZSBkYXRhCisgICAgICogaW4gYWRkaXRp
b24gdG8gbG9jYWxlIChmb3IgZXhhbXBsZSwgY29sbGF0aW9uIGNhbiBiZQorICAgICAqIGluc3Rh
bnRpYXRlZCBmcm9tIGEgbG9jYWxlIGFuZCBmcm9tIGEgcnVsZSBzZXQpLgorICAgICAqIEBzdGFi
bGUgSUNVIDIuMQorICAgICAqLworICAgIHZvaWQgc2V0VG9Cb2d1cygpOworCisgICAgLyoqCisg
ICAgICogR2V0cyB0aGUgYm9ndXMgc3RhdGUuIExvY2FsZSBvYmplY3QgY2FuIGJlIGJvZ3VzIGlm
IGl0IGRvZXNuJ3QgZXhpc3QKKyAgICAgKiBAcmV0dXJuIEZBTFNFIGlmIGl0IGlzIGEgcmVhbCBs
b2NhbGUsIFRSVUUgaWYgaXQgaXMgYSBib2d1cyBsb2NhbGUKKyAgICAgKiBAc3RhYmxlIElDVSAy
LjEKKyAgICAgKi8KKyAgICBVQm9vbCBpc0JvZ3VzKHZvaWQpIGNvbnN0OworCisgICAgLyoqCisg
ICAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIGluc3RhbGxlZCBsb2NhbGVzLgorICAgICAqIEBw
YXJhbSBjb3VudCBSZWNlaXZlcyB0aGUgbnVtYmVyIG9mIGxvY2FsZXMgaW4gdGhlIGxpc3QuCisg
ICAgICogQHJldHVybiAgICAgIEEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBMb2NhbGUgb2JqZWN0
cy4gIFRoaXMgYXJyYXkgaXMgdGhlIGxpc3QKKyAgICAgKiAgICAgICAgICAgICAgb2YgYWxsIGxv
Y2FsZXMgd2l0aCBpbnN0YWxsZWQgcmVzb3VyY2UgZmlsZXMuICBUaGUgY2FsbGVkIGRvZXMgTk9U
CisgICAgICogICAgICAgICAgICAgIGdldCBvd25lcnNoaXAgb2YgdGhpcyBsaXN0LCBhbmQgbXVz
dCBOT1QgZGVsZXRlIGl0LgorICAgICAqIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHN0
YXRpYyBjb25zdCBMb2NhbGUqIFVfRVhQT1JUMiBnZXRBdmFpbGFibGVMb2NhbGVzKGludDMyX3Qm
IGNvdW50KTsKKworICAgIC8qKgorICAgICAqIEdldHMgYSBsaXN0IG9mIGFsbCBhdmFpbGFibGUg
Mi1sZXR0ZXIgY291bnRyeSBjb2RlcyBkZWZpbmVkIGluIElTTyAzMTY2LiAgVGhpcyBpcyBhCisg
ICAgICogcG9pbnRlciB0byBhbiBhcnJheSBvZiBwb2ludGVycyB0byBhcnJheXMgb2YgY2hhci4g
IEFsbCBvZiB0aGVzZSBwb2ludGVycyBhcmUKKyAgICAgKiBvd25lZCBieSBJQ1UtLSBkbyBub3Qg
ZGVsZXRlIHRoZW0sIGFuZCBkbyBub3Qgd3JpdGUgdGhyb3VnaCB0aGVtLiAgVGhlIGFycmF5IGlz
CisgICAgICogdGVybWluYXRlZCB3aXRoIGEgbnVsbCBwb2ludGVyLgorICAgICAqIEByZXR1cm4g
YSBsaXN0IG9mIGFsbCBhdmFpbGFibGUgY291bnRyeSBjb2RlcworICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBPUlQyIGdl
dElTT0NvdW50cmllcygpOworCisgICAgLyoqCisgICAgICogR2V0cyBhIGxpc3Qgb2YgYWxsIGF2
YWlsYWJsZSBsYW5ndWFnZSBjb2RlcyBkZWZpbmVkIGluIElTTyA2MzkuICBUaGlzIGlzIGEgcG9p
bnRlcgorICAgICAqIHRvIGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5cyBvZiBjaGFyLiAg
QWxsIG9mIHRoZXNlIHBvaW50ZXJzIGFyZSBvd25lZAorICAgICAqIGJ5IElDVS0tIGRvIG5vdCBk
ZWxldGUgdGhlbSwgYW5kIGRvIG5vdCB3cml0ZSB0aHJvdWdoIHRoZW0uICBUaGUgYXJyYXkgaXMK
KyAgICAgKiB0ZXJtaW5hdGVkIHdpdGggYSBudWxsIHBvaW50ZXIuCisgICAgICogQHJldHVybiBh
IGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSBsYW5ndWFnZSBjb2RlcworICAgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgICAqLworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCogVV9FWFBPUlQyIGdl
dElTT0xhbmd1YWdlcygpOworCisgICAgLyoqCisgICAgICogSUNVICJwb29yIG1hbidzIFJUVEki
LCByZXR1cm5zIGEgVUNsYXNzSUQgZm9yIHRoaXMgY2xhc3MuCisgICAgICoKKyAgICAgKiBAc3Rh
YmxlIElDVSAyLjIKKyAgICAgKi8KKyAgICBzdGF0aWMgVUNsYXNzSUQgVV9FWFBPUlQyIGdldFN0
YXRpY0NsYXNzSUQoKTsKKworICAgIC8qKgorICAgICAqIElDVSAicG9vciBtYW4ncyBSVFRJIiwg
cmV0dXJucyBhIFVDbGFzc0lEIGZvciB0aGUgYWN0dWFsIGNsYXNzLgorICAgICAqCisgICAgICog
QHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXREeW5hbWlj
Q2xhc3NJRCgpIGNvbnN0OworCitwcm90ZWN0ZWQ6IC8qIG9ubHkgcHJvdGVjdGVkIGZvciB0ZXN0
aW5nIHB1cnBvc2VzLiBETyBOT1QgVVNFLiAqLworI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJ
CisgICAgLyoqCisgICAgICogU2V0IHRoaXMgZnJvbSBhIHNpbmdsZSBQT1NJWCBzdHlsZSBsb2Nh
bGUgc3RyaW5nLgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIHZvaWQgc2V0RnJvbVBP
U0lYSUQoY29uc3QgY2hhciAqcG9zaXhJRCk7CisjZW5kaWYgIC8qIFVfSElERV9JTlRFUk5BTF9B
UEkgKi8KKworcHJpdmF0ZToKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHRoZSBsb2NhbGUg
b2JqZWN0IHdpdGggYSBuZXcgbmFtZS4KKyAgICAgKiBXYXMgZGVwcmVjYXRlZCAtIHVzZWQgaW4g
aW1wbGVtZW50YXRpb24gLSBtb3ZlZCBpbnRlcm5hbAorICAgICAqCisgICAgICogQHBhcmFtIGNM
b2NhbGVJRCBUaGUgbmV3IGxvY2FsZSBuYW1lLgorICAgICAqIEBwYXJhbSBjYW5vbmljYWxpemUg
d2hldGhlciB0byBjYWxsIHVsb2NfY2Fub25pY2FsaXplIG9uIGNMb2NhbGVJRAorICAgICAqLwor
ICAgIExvY2FsZSYgaW5pdChjb25zdCBjaGFyKiBjTG9jYWxlSUQsIFVCb29sIGNhbm9uaWNhbGl6
ZSk7CisKKyAgICAvKgorICAgICAqIEludGVybmFsIGNvbnN0cnVjdG9yIHRvIGFsbG93IGNvbnN0
cnVjdGlvbiBvZiBhIGxvY2FsZSBvYmplY3Qgd2l0aAorICAgICAqICAgTk8gc2lkZSBlZmZlY3Rz
LiAgIChEZWZhdWx0IGNvbnN0cnVjdG9yIHRyaWVzIHRvIGdldAorICAgICAqICAgdGhlIGRlZmF1
bHQgbG9jYWxlLikKKyAgICAgKi8KKyAgICBlbnVtIEVMb2NhbGVUeXBlIHsKKyAgICAgICAgZUJP
R1VTCisgICAgfTsKKyAgICBMb2NhbGUoRUxvY2FsZVR5cGUpOworCisgICAgLyoqCisgICAgICog
SW5pdGlhbGl6ZSB0aGUgbG9jYWxlIGNhY2hlIGZvciBjb21tb25seSB1c2VkIGxvY2FsZXMKKyAg
ICAgKi8KKyAgICBzdGF0aWMgTG9jYWxlICpnZXRMb2NhbGVDYWNoZSh2b2lkKTsKKworICAgIGNo
YXIgbGFuZ3VhZ2VbVUxPQ19MQU5HX0NBUEFDSVRZXTsKKyAgICBjaGFyIHNjcmlwdFtVTE9DX1ND
UklQVF9DQVBBQ0lUWV07CisgICAgY2hhciBjb3VudHJ5W1VMT0NfQ09VTlRSWV9DQVBBQ0lUWV07
CisgICAgaW50MzJfdCB2YXJpYW50QmVnaW47CisgICAgY2hhciogZnVsbE5hbWU7CisgICAgY2hh
ciBmdWxsTmFtZUJ1ZmZlcltVTE9DX0ZVTExOQU1FX0NBUEFDSVRZXTsKKyAgICAvLyBuYW1lIHdp
dGhvdXQga2V5d29yZHMKKyAgICBjaGFyKiBiYXNlTmFtZTsKKyAgICB2b2lkIGluaXRCYXNlTmFt
ZShVRXJyb3JDb2RlJiBzdGF0dXMpOworCisgICAgVUJvb2wgZklzQm9ndXM7CisKKyAgICBzdGF0
aWMgY29uc3QgTG9jYWxlICZnZXRMb2NhbGUoaW50IGxvY2lkKTsKKworICAgIC8qKgorICAgICAq
IEEgZnJpZW5kIHRvIGFsbG93IHRoZSBkZWZhdWx0IGxvY2FsZSB0byBiZSBzZXQgYnkgZWl0aGVy
IHRoZSBDIG9yIEMrKyBBUEkuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgZnJpZW5k
IExvY2FsZSAqbG9jYWxlX3NldF9kZWZhdWx0X2ludGVybmFsKGNvbnN0IGNoYXIgKiwgVUVycm9y
Q29kZSYgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAg
IGZyaWVuZCB2b2lkIFVfQ0FMTENPTlYgbG9jYWxlX2F2YWlsYWJsZV9pbml0KCk7Cit9OworCitp
bmxpbmUgVUJvb2wKK0xvY2FsZTo6b3BlcmF0b3IhPShjb25zdCAgICBMb2NhbGUmICAgICBvdGhl
cikgY29uc3QKK3sKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0ob3RoZXIpOworfQorCitpbmxpbmUg
Y29uc3QgY2hhciAqCitMb2NhbGU6OmdldENvdW50cnkoKSBjb25zdAoreworICAgIHJldHVybiBj
b3VudHJ5OworfQorCitpbmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldExhbmd1YWdlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbGFuZ3VhZ2U7Cit9CisKK2lubGluZSBjb25zdCBjaGFyICoK
K0xvY2FsZTo6Z2V0U2NyaXB0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc2NyaXB0OworfQorCitp
bmxpbmUgY29uc3QgY2hhciAqCitMb2NhbGU6OmdldFZhcmlhbnQoKSBjb25zdAoreworICAgIHJl
dHVybiAmYmFzZU5hbWVbdmFyaWFudEJlZ2luXTsKK30KKworaW5saW5lIGNvbnN0IGNoYXIgKgor
TG9jYWxlOjpnZXROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZnVsbE5hbWU7Cit9CisKK2lu
bGluZSBVQm9vbAorTG9jYWxlOjppc0JvZ3VzKHZvaWQpIGNvbnN0IHsKKyAgICByZXR1cm4gZklz
Qm9ndXM7Cit9CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9yYmJpLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDQ3NTk4YTUwZTZmYTNiYWIyYWQ0OWUwMjJhYWYzOTZjYWMzMjllNQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvcmJiaS5oCkBAIC0wLDAgKzEs
NzgyIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIw
MTQgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3Jwb3JhdGlvbiAgICoKKyogICBh
bmQgb3RoZXJzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICBE
YXRlICAgICAgICBOYW1lICAgICAgICBEZXNjcmlwdGlvbgorKiAgIDEwLzIyLzk5ICAgIGFsYW4g
ICAgICAgIENyZWF0aW9uLgorKiAgIDExLzExLzk5ICAgIHJnaWxsYW0gICAgIENvbXBsZXRlIHBv
cnQgZnJvbSBKYXZhLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBSQkJJX0gKKyNkZWZp
bmUgUkJCSV9ICisKKyNpbmNsdWRlICJ1bmljb2RlL3V0eXBlcy5oIgorCisvKioKKyAqIFxmaWxl
CisgKiBcYnJpZWYgQysrIEFQSTogUnVsZSBCYXNlZCBCcmVhayBJdGVyYXRvcgorICovCisKKyNp
ZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworI2luY2x1ZGUgInVuaWNvZGUvYnJraXRl
ci5oIgorI2luY2x1ZGUgInVuaWNvZGUvdWRhdGEuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3BhcnNl
ZXJyLmgiCisjaW5jbHVkZSAidW5pY29kZS9zY2hyaXRlci5oIgorI2luY2x1ZGUgInVuaWNvZGUv
dWNocml0ZXIuaCIKKworCitzdHJ1Y3QgVVRyaWU7CisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8q
KiBAaW50ZXJuYWwgKi8KK3N0cnVjdCBSQkJJRGF0YUhlYWRlcjsKK2NsYXNzICBSdWxlQmFzZWRC
cmVha0l0ZXJhdG9yVGFibGVzOworY2xhc3MgIEJyZWFrSXRlcmF0b3I7CitjbGFzcyAgUkJCSURh
dGFXcmFwcGVyOworY2xhc3MgIFVTdGFjazsKK2NsYXNzICBMYW5ndWFnZUJyZWFrRW5naW5lOwor
Y2xhc3MgIFVuaGFuZGxlZEVuZ2luZTsKK3N0cnVjdCBSQkJJU3RhdGVUYWJsZTsKKworCisKKwor
LyoqCisgKgorICogQSBzdWJjbGFzcyBvZiBCcmVha0l0ZXJhdG9yIHdob3NlIGJlaGF2aW9yIGlz
IHNwZWNpZmllZCB1c2luZyBhIGxpc3Qgb2YgcnVsZXMuCisgKiA8cD5JbnN0YW5jZXMgb2YgdGhp
cyBjbGFzcyBhcmUgbW9zdCBjb21tb25seSBjcmVhdGVkIGJ5IHRoZSBmYWN0b3J5IG1ldGhvZHMg
b2YKKyAqICBCcmVha0l0ZXJhdG9yOjpjcmVhdGVXb3JkSW5zdGFuY2UoKSwgQnJlYWtJdGVyYXRv
cjo6Y3JlYXRlTGluZUluc3RhbmNlKCksIGV0Yy4sCisgKiAgYW5kIHRoZW4gdXNlZCB2aWEgdGhl
IGFic3RyYWN0IEFQSSBpbiBjbGFzcyBCcmVha0l0ZXJhdG9yPC9wPgorICoKKyAqIDxwPlNlZSB0
aGUgSUNVIFVzZXIgR3VpZGUgZm9yIGluZm9ybWF0aW9uIG9uIEJyZWFrIEl0ZXJhdG9yIFJ1bGVz
LjwvcD4KKyAqCisgKiA8cD5UaGlzIGNsYXNzIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBzdWJjbGFz
c2VkLiAgKENsYXNzIERpY3Rpb25hcnlCYXNlZEJyZWFrSXRlcmF0b3IKKyAqICAgIGlzIGEgc3Vi
Y2xhc3MsIGJ1dCB0aGF0IHJlbGF0aW9uc2hpcCBpcyBlZmZlY3RpdmVseSBpbnRlcm5hbCB0byB0
aGUgSUNVCisgKiAgICBpbXBsZW1lbnRhdGlvbi4gIFRoZSBzdWJjbGFzc2luZyBpbnRlcmZhY2Ug
dG8gUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3IgaXMKKyAqICAgIG5vdCBwYXJ0IG9mIHRoZSBJQ1Ug
QVBJLCBhbmQgbWF5IG5vdCByZW1haW4gc3RhYmxlLjwvcD4KKyAqCisgKi8KK2NsYXNzIFVfQ09N
TU9OX0FQSSBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIC8qVV9GSU5BTCovIDogcHVibGljIEJyZWFr
SXRlcmF0b3IgeworCitwcm90ZWN0ZWQ6CisgICAgLyoqCisgICAgICogVGhlIFVUZXh0IHRocm91
Z2ggd2hpY2ggdGhpcyBCcmVha0l0ZXJhdG9yIGFjY2Vzc2VzIHRoZSB0ZXh0CisgICAgICogQGlu
dGVybmFsCisgICAgICovCisgICAgVVRleHQgICpmVGV4dDsKKworICAgIC8qKgorICAgICAqICAg
QSBjaGFyYWN0ZXIgaXRlcmF0b3IgdGhhdCByZWZlcnMgdG8gdGhlIHNhbWUgdGV4dCBhcyB0aGUg
VVRleHQsIGFib3ZlLgorICAgICAqICAgT25seSBpbmNsdWRlZCBmb3IgY29tcGF0aWJpbGl0eSB3
aXRoIG9sZCBBUEksIHdoaWNoIHdhcyBiYXNlZCBvbiBDaGFyYWN0ZXJJdGVyYXRvcnMuCisgICAg
ICogICBWYWx1ZSBtYXkgYmUgYWRvcHRlZCBmcm9tIG91dHNpZGUsIG9yIG9uZSBvZiBmU0NoYXJJ
dGVyIG9yIGZEQ2hhckl0ZXIsIGJlbG93LgorICAgICAqLworICAgIENoYXJhY3Rlckl0ZXJhdG9y
ICAqZkNoYXJJdGVyOworCisgICAgLyoqCisgICAgICogICBXaGVuIHRoZSBpbnB1dCB0ZXh0IGlz
IHByb3ZpZGVkIGJ5IGEgVW5pY29kZVN0cmluZywgdGhpcyB3aWxsIHBvaW50IHRvCisgICAgICog
ICAgYSBjaGFyYWN0ZXJJdGVyYXRvciB0aGF0IHdyYXBzIHRoYXQgZGF0YS4gIE5lZWRlZCBvbmx5
IGZvciB0aGUKKyAgICAgKiAgICBpbXBsZW1lbnRhdGlvbiBvZiBnZXRUZXh0KCksIGEgYmFja3dh
cmRzIGNvbXBhdGliaWxpdHkgaXNzdWUuCisgICAgICovCisgICAgU3RyaW5nQ2hhcmFjdGVySXRl
cmF0b3IgKmZTQ2hhckl0ZXI7CisKKyAgICAvKioKKyAgICAgKiAgV2hlbiB0aGUgaW5wdXQgdGV4
dCBpcyBwcm92aWRlZCBieSBhIFVUZXh0LCB0aGlzCisgICAgICogICAgZHVtbXkgQ2hhcmFjdGVy
SXRlcmF0b3Igb3ZlciBhbiBlbXB0eSBzdHJpbmcgd2lsbAorICAgICAqICAgIGJlIHJldHVybmVk
IGZyb20gZ2V0VGV4dCgpCisgICAgICovCisgICAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvciAqZkRD
aGFySXRlcjsKKworICAgIC8qKgorICAgICAqIFRoZSBydWxlIGRhdGEgZm9yIHRoaXMgQnJlYWtJ
dGVyYXRvciBpbnN0YW5jZQorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIFJCQklEYXRh
V3JhcHBlciAgICAqZkRhdGE7CisKKyAgICAvKiogSW5kZXggb2YgdGhlIFJ1bGUge3RhZ30gdmFs
dWVzIGZvciB0aGUgbW9zdCByZWNlbnQgbWF0Y2guCisgICAgICogIEBpbnRlcm5hbAorICAgICov
CisgICAgaW50MzJfdCAgICAgICAgICAgICBmTGFzdFJ1bGVTdGF0dXNJbmRleDsKKworICAgIC8q
KgorICAgICAqIFJ1bGUgdGFnIHZhbHVlIHZhbGlkIGZsYWcuCisgICAgICogU29tZSBpdGVyYXRv
ciBvcGVyYXRpb25zIGRvbid0IGludHJpbnNpY2FsbHkgc2V0IHRoZSBjb3JyZWN0IHRhZyB2YWx1
ZS4KKyAgICAgKiBUaGlzIGZsYWcgbGV0cyB1cyBsYXppbHkgY29tcHV0ZSB0aGUgdmFsdWUgaWYg
d2UgYXJlIGV2ZXIgYXNrZWQgZm9yIGl0LgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAg
IFVCb29sICAgICAgICAgICAgICAgZkxhc3RTdGF0dXNJbmRleFZhbGlkOworCisgICAgLyoqCisg
ICAgICogQ291bnRlciBmb3IgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGVuY291bnRlcmVkIHdp
dGggdGhlICJkaWN0aW9uYXJ5IgorICAgICAqICAgZmxhZyBzZXQuCisgICAgICogQGludGVybmFs
CisgICAgICovCisgICAgdWludDMyX3QgICAgICAgICAgICBmRGljdGlvbmFyeUNoYXJDb3VudDsK
KworICAgIC8qKgorICAgICAqIFdoZW4gYSByYW5nZSBvZiBjaGFyYWN0ZXJzIGlzIGRpdmlkZWQg
dXAgdXNpbmcgdGhlIGRpY3Rpb25hcnksIHRoZSBicmVhaworICAgICAqIHBvc2l0aW9ucyB0aGF0
IGFyZSBkaXNjb3ZlcmVkIGFyZSBzdG9yZWQgaGVyZSwgcHJldmVudGluZyB1cyBmcm9tIGhhdmlu
ZworICAgICAqIHRvIHVzZSBlaXRoZXIgdGhlIGRpY3Rpb25hcnkgb3IgdGhlIHN0YXRlIHRhYmxl
IGFnYWluIHVudGlsIHRoZSBpdGVyYXRvcgorICAgICAqIGxlYXZlcyB0aGlzIHJhbmdlIG9mIHRl
eHQuIEhhcyB0aGUgbW9zdCBpbXBhY3QgZm9yIGxpbmUgYnJlYWtpbmcuCisgICAgICogQGludGVy
bmFsCisgICAgICovCisgICAgaW50MzJfdCogICAgICAgICAgICBmQ2FjaGVkQnJlYWtQb3NpdGlv
bnM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGZDYWNoZWRC
cmVha1Bvc2l0aW9ucworICAgICAqIEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAg
ICAgICAgICAgZk51bUNhY2hlZEJyZWFrUG9zaXRpb25zOworCisgICAgLyoqCisgICAgICogaWYg
ZkNhY2hlZEJyZWFrUG9zaXRpb25zIGlzIG5vdCBudWxsLCB0aGlzIGluZGljYXRlcyB3aGljaCBp
dGVtIGluIHRoZQorICAgICAqIGNhY2hlIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiBy
ZWZlcnMgdG8KKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90ICAgICAgICAg
ICAgIGZQb3NpdGlvbkluQ2FjaGU7CisgICAgCisgICAgLyoqCisgICAgICoKKyAgICAgKiBJZiBw
cmVzZW50LCBVU3RhY2sgb2YgTGFuZ3VhZ2VCcmVha0VuZ2luZSBvYmplY3RzIHRoYXQgbWlnaHQg
aGFuZGxlCisgICAgICogZGljdGlvbmFyeSBjaGFyYWN0ZXJzLiBTZWFyY2hlZCBmcm9tIHRvcCB0
byBib3R0b20gdG8gZmluZCBhbiBvYmplY3QgdG8KKyAgICAgKiBoYW5kbGUgYSBnaXZlbiBjaGFy
YWN0ZXIuCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgVVN0YWNrICAgICAgICAgICAg
ICAqZkxhbmd1YWdlQnJlYWtFbmdpbmVzOworICAgIAorICAgIC8qKgorICAgICAqCisgICAgICog
SWYgcHJlc2VudCwgdGhlIHNwZWNpYWwgTGFuZ3VhZ2VCcmVha0VuZ2luZSB1c2VkIGZvciBoYW5k
bGluZworICAgICAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW4gdGhlIGRpY3Rpb25hcnkgc2V0LCBi
dXQgbm90IGhhbmRsZWQgYnkgYW55CisgICAgICogTGFuZ3VnYWdlQnJlYWtFbmdpbmUuCisgICAg
ICogQGludGVybmFsCisgICAgICovCisgICAgVW5oYW5kbGVkRW5naW5lICAgICAqZlVuaGFuZGxl
ZEJyZWFrRW5naW5lOworICAgIAorICAgIC8qKgorICAgICAqCisgICAgICogVGhlIHR5cGUgb2Yg
dGhlIGJyZWFrIGl0ZXJhdG9yLCBvciAtMSBpZiBpdCBoYXMgbm90IGJlZW4gc2V0LgorICAgICAq
IEBpbnRlcm5hbAorICAgICAqLworICAgIGludDMyX3QgICAgICAgICAgICAgZkJyZWFrVHlwZTsK
KyAgICAKK3Byb3RlY3RlZDoKKyAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgLy8gY29uc3RydWN0
b3JzCisgICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjaWZuZGVmIFVfSElERV9JTlRFUk5BTF9BUEkK
KyAgICAvKioKKyAgICAgKiBDb25zdGFudCB0byBiZSB1c2VkIGluIHRoZSBjb25zdHJ1Y3Rvcgor
ICAgICAqIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoUkJCSURhdGFIZWFkZXIqLCBFRG9udEFkb3B0
LCBVRXJyb3JDb2RlICYpOworICAgICAqIHdoaWNoIGRvZXMgbm90IGFkb3B0IHRoZSBtZW1vcnkg
aW5kaWNhdGVkIGJ5IHRoZSBSQkJJRGF0YUhlYWRlcioKKyAgICAgKiBwYXJhbWV0ZXIuCisgICAg
ICoKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBlbnVtIEVEb250QWRvcHQgeworICAg
ICAgICBrRG9udEFkb3B0CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yIGZy
b20gYSBmbGF0dGVuZWQgc2V0IG9mIFJCQkkgZGF0YSBpbiBtYWxsb2NlZCBtZW1vcnkuCisgICAg
ICogICAgICAgICAgICAgUnVsZXNCYXNlZEJyZWFrSXRlcmF0b3JzIGJ1aWx0IGZyb20gYSBjdXN0
b20gc2V0IG9mIHJ1bGVzCisgICAgICogICAgICAgICAgICAgYXJlIGNyZWF0ZWQgdmlhIHRoaXMg
Y29uc3RydWN0b3I7IHRoZSBydWxlcyBhcmUgY29tcGlsZWQKKyAgICAgKiAgICAgICAgICAgICBp
bnRvIG1lbW9yeSwgdGhlbiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgY29uc3RydWN0ZWQgaGVyZS4K
KyAgICAgKgorICAgICAqICAgICAgICAgICAgIFRoZSBicmVhayBpdGVyYXRvciBhZG9wdHMgdGhl
IG1lbW9yeSwgYW5kIHdpbGwKKyAgICAgKiAgICAgICAgICAgICBmcmVlIGl0IHdoZW4gZG9uZS4K
KyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKFJC
QklEYXRhSGVhZGVyKiBkYXRhLCBVRXJyb3JDb2RlICZzdGF0dXMpOworCisgICAgLyoqCisgICAg
ICogQ29uc3RydWN0b3IgZnJvbSBhIGZsYXR0ZW5lZCBzZXQgb2YgUkJCSSBkYXRhIGluIG1lbW9y
eSB3aGljaCBuZWVkIG5vdAorICAgICAqICAgICAgICAgICAgIGJlIG1hbGxvY2VkIChlLmcuIGl0
IG1heSBiZSBhIG1lbW9yeS1tYXBwZWQgZmlsZSwgZXRjLikuCisgICAgICoKKyAgICAgKiAgICAg
ICAgICAgICBUaGlzIHZlcnNpb24gZG9lcyBub3QgYWRvcHQgdGhlIG1lbW9yeSwgYW5kIGRvZXMg
bm90CisgICAgICogICAgICAgICAgICAgZnJlZSBpdCB3aGVuIGRvbmUuCisgICAgICogQGludGVy
bmFsCisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcihjb25zdCBSQkJJRGF0YUhl
YWRlciogZGF0YSwgZW51bSBFRG9udEFkb3B0IGRvbnRBZG9wdCwgVUVycm9yQ29kZSAmc3RhdHVz
KTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLworCisKKyAgICBmcmllbmQgY2xh
c3MgUkJCSVJ1bGVCdWlsZGVyOworICAgIC8qKiBAaW50ZXJuYWwgKi8KKyAgICBmcmllbmQgY2xh
c3MgQnJlYWtJdGVyYXRvcjsKKworCisKK3B1YmxpYzoKKworICAgIC8qKiBEZWZhdWx0IGNvbnN0
cnVjdG9yLiAgQ3JlYXRlcyBhbiBlbXB0eSBzaGVsbCBvZiBhbiBpdGVyYXRvciwgd2l0aCBubwor
ICAgICAqICBydWxlcyBvciB0ZXh0IHRvIGl0ZXJhdGUgb3Zlci4gICBPYmplY3QgY2FuIHN1YnNl
cXVlbnRseSBiZSBhc3NpZ25lZCB0by4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4yCisgICAgICov
CisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICogQ29weSBj
b25zdHJ1Y3Rvci4gIFdpbGwgcHJvZHVjZSBhIGJyZWFrIGl0ZXJhdG9yIHdpdGggdGhlIHNhbWUg
YmVoYXZpb3IsCisgICAgICogYW5kIHdoaWNoIGl0ZXJhdGVzIG92ZXIgdGhlIHNhbWUgdGV4dCwg
YXMgdGhlIG9uZSBwYXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVCYXNlZEJy
ZWFrSXRlcmF0b3IgcGFzc2VkIHRvIGJlIGNvcGllZAorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IoY29uc3QgUnVsZUJhc2VkQnJlYWtJ
dGVyYXRvciYgdGhhdCk7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBSdWxlQmFzZWRC
cmVha0l0ZXJhdG9yIGZyb20gYSBzZXQgb2YgcnVsZXMgc3VwcGxpZWQgYXMgYSBzdHJpbmcuCisg
ICAgICogQHBhcmFtIHJ1bGVzIFRoZSBicmVhayBydWxlcyB0byBiZSB1c2VkLgorICAgICAqIEBw
YXJhbSBwYXJzZUVycm9yICBJbiB0aGUgZXZlbnQgb2YgYSBzeW50YXggZXJyb3IgaW4gdGhlIHJ1
bGVzLCBwcm92aWRlcyB0aGUgbG9jYXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgd2l0
aGluIHRoZSBydWxlcyBvZiB0aGUgcHJvYmxlbS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIEluZm9y
bWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQuCisgICAgICogQHN0YWJsZSBJQ1UgMi4y
CisgICAgICovCisgICAgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciggY29uc3QgVW5pY29kZVN0cmlu
ZyAgICAmcnVsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQYXJzZUVycm9yICAg
ICAgICAgICAmcGFyc2VFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUVycm9y
Q29kZSAgICAgICAgICAgICZzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ29udHJ1Y3QgYSBS
dWxlQmFzZWRCcmVha0l0ZXJhdG9yIGZyb20gYSBzZXQgb2YgcHJlY29tcGlsZWQgYmluYXJ5IHJ1
bGVzLgorICAgICAqIEJpbmFyeSBydWxlcyBhcmUgb2J0YWluZWQgZnJvbSBSdWxlc0Jhc2VkQnJl
YWtJdGVyYXRvcjo6Z2V0QmluYXJ5UnVsZXMoKS4KKyAgICAgKiBDb25zdHJ1Y3Rpb24gb2YgYSBi
cmVhayBpdGVyYXRvciBpbiB0aGlzIHdheSBpcyBzdWJzdGFudGlhbGx5IGZhc3RlciB0aGFuCisg
ICAgICogY29uc3R1Y3Rpb24gZnJvbSBzb3VyY2UgcnVsZXMuCisgICAgICoKKyAgICAgKiBPd25l
cnNoaXAgb2YgdGhlIHN0b3JhZ2UgY29udGFpbmluZyB0aGUgY29tcGlsZWQgcnVsZXMgcmVtYWlu
cyB3aXRoIHRoZQorICAgICAqIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uLiAgVGhlIGNvbXBpbGVk
IHJ1bGVzIG11c3Qgbm90IGJlICBtb2RpZmllZCBvciAKKyAgICAgKiBkZWxldGVkIGR1cmluZyB0
aGUgbGlmZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3IuCisgICAgICoKKyAgICAgKiBUaGUgY29tcGls
ZWQgcnVsZXMgYXJlIG5vdCBjb21wYXRpYmxlIGFjcm9zcyBkaWZmZXJlbnQgbWFqb3IgdmVyc2lv
bnMgb2YgSUNVLgorICAgICAqIFRoZSBjb21waWxlZCBydWxlcyBhcmUgY29tYXB0aWJsZSBvbmx5
IGJldHdlZW4gbWFjaGluZXMgd2l0aCB0aGUgc2FtZQorICAgICAqIGJ5dGUgb3JkZXJpbmcgKGxp
dHRsZSBvciBiaWcgZW5kaWFuKSBhbmQgdGhlIHNhbWUgYmFzZSBjaGFyYWN0ZXIgc2V0IGZhbWls
eQorICAgICAqIChBU0NJSSBvciBFQkNESUMpLgorICAgICAqCisgICAgICogQHNlZSAjZ2V0Qmlu
YXJ5UnVsZXMKKyAgICAgKiBAcGFyYW0gY29tcGlsZWRSdWxlcyBBIHBvaW50ZXIgdG8gdGhlIGNv
bXBpbGVkIGJyZWFrIHJ1bGVzIHRvIGJlIHVzZWQuCisgICAgICogQHBhcmFtIHJ1bGVMZW5ndGgg
VGhlIGxlbmd0aCBvZiB0aGUgY29tcGlsZWQgYnJlYWsgcnVsZXMsIGluIGJ5dGVzLiAgVGhpcwor
ICAgICAqICAgY29ycmVzcG9uZHMgdG8gdGhlIGxlbmd0aCB2YWx1ZSBwcm9kdWNlZCBieSBnZXRC
aW5hcnlSdWxlcygpLgorICAgICAqIEBwYXJhbSBzdGF0dXMgSW5mb3JtYXRpb24gb24gYW55IGVy
cm9ycyBlbmNvdW50ZXJlZCwgaW5jbHVkaW5nIGludmFsaWQKKyAgICAgKiAgIGJpbmFyeSBydWxl
cy4KKyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0
ZXJhdG9yKGNvbnN0IHVpbnQ4X3QgKmNvbXBpbGVkUnVsZXMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1aW50MzJfdCAgICAgICBydWxlTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAgICAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgY29u
c3RydWN0b3IgdXNlcyB0aGUgdWRhdGEgaW50ZXJmYWNlIHRvIGNyZWF0ZSBhIEJyZWFrSXRlcmF0
b3IKKyAgICAgKiB3aG9zZSBpbnRlcm5hbCB0YWJsZXMgbGl2ZSBpbiBhIG1lbW9yeS1tYXBwZWQg
ZmlsZS4gICJpbWFnZSIgaXMgYW4KKyAgICAgKiBJQ1UgVURhdGFNZW1vcnkgaGFuZGxlIGZvciB0
aGUgcHJlLWNvbXBpbGVkIGJyZWFrIGl0ZXJhdG9yIHRhYmxlcy4KKyAgICAgKiBAcGFyYW0gaW1h
Z2UgaGFuZGxlIHRvIHRoZSBtZW1vcnkgaW1hZ2UgZm9yIHRoZSBicmVhayBpdGVyYXRvciBkYXRh
LgorICAgICAqICAgICAgICBPd25lcnNoaXAgb2YgdGhlIFVEYXRhTWVtb3J5IGhhbmRsZSBwYXNz
ZXMgdG8gdGhlIEJyZWFrIEl0ZXJhdG9yLAorICAgICAqICAgICAgICB3aGljaCB3aWxsIGJlIHJl
c3BvbnNpYmxlIGZvciBjbG9zaW5nIGl0IHdoZW4gaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKyAg
ICAgKiBAcGFyYW0gc3RhdHVzIEluZm9ybWF0aW9uIG9uIGFueSBlcnJvcnMgZW5jb3VudGVyZWQu
CisgICAgICogQHNlZSB1ZGF0YV9vcGVuCisgICAgICogQHNlZSAjZ2V0QmluYXJ5UnVsZXMKKyAg
ICAgKiBAc3RhYmxlIElDVSAyLjgKKyAgICAgKi8KKyAgICBSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
KFVEYXRhTWVtb3J5KiBpbWFnZSwgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAg
ICAqIERlc3RydWN0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCB+UnVsZUJhc2VkQnJlYWtJdGVyYXRvcigpOworCisgICAgLyoqCisgICAgICogQXNzaWdu
bWVudCBvcGVyYXRvci4gIFNldHMgdGhpcyBpdGVyYXRvciB0byBoYXZlIHRoZSBzYW1lIGJlaGF2
aW9yLAorICAgICAqIGFuZCBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgdGV4dCwgYXMgdGhlIG9uZSBw
YXNzZWQgaW4uCisgICAgICogQHBhcmFtIHRoYXQgVGhlIFJ1bGVCYXNlZEJyZWFrSXRlcnRvciBw
YXNzZWQgaW4KKyAgICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgUnVsZUJhc2Vk
QnJlYWtJdGVyYXRvciYgb3BlcmF0b3I9KGNvbnN0IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3ImIHRo
YXQpOworCisgICAgLyoqCisgICAgICogRXF1YWxpdHkgb3BlcmF0b3IuICBSZXR1cm5zIFRSVUUg
aWYgYm90aCBCcmVha0l0ZXJhdG9ycyBhcmUgb2YgdGhlCisgICAgICogc2FtZSBjbGFzcywgaGF2
ZSB0aGUgc2FtZSBiZWhhdmlvciwgYW5kIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZSB0ZXh0LgorICAg
ICAqIEBwYXJhbSB0aGF0IFRoZSBCcmVha0l0ZXJhdG9yIHRvIGJlIGNvbXBhcmVkIGZvciBlcXVh
bGl0eQorICAgICAqIEByZXR1cm4gVFJVRSBpZiBib3RoIEJyZWFrSXRlcmF0b3JzIGFyZSBvZiB0
aGUKKyAgICAgKiBzYW1lIGNsYXNzLCBoYXZlIHRoZSBzYW1lIGJlaGF2aW9yLCBhbmQgaXRlcmF0
ZSBvdmVyIHRoZSBzYW1lIHRleHQuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLwor
ICAgIHZpcnR1YWwgVUJvb2wgb3BlcmF0b3I9PShjb25zdCBCcmVha0l0ZXJhdG9yJiB0aGF0KSBj
b25zdDsKKworICAgIC8qKgorICAgICAqIE5vdC1lcXVhbCBvcGVyYXRvci4gIElmIG9wZXJhdG9y
PT0gcmV0dXJucyBUUlVFLCB0aGlzIHJldHVybnMgRkFMU0UsCisgICAgICogYW5kIHZpY2UgdmVy
c2EuCisgICAgICogQHBhcmFtIHRoYXQgVGhlIEJyZWFrSXRlcmF0b3IgdG8gYmUgY29tcGFyZWQg
Zm9yIGluZXF1YWxpdHkKKyAgICAgKiBAcmV0dXJuIFRSVUUgaWYgYm90aCBCcmVha0l0ZXJhdG9y
cyBhcmUgbm90IHNhbWUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIFVC
b29sIG9wZXJhdG9yIT0oY29uc3QgQnJlYWtJdGVyYXRvciYgdGhhdCkgY29uc3Q7CisKKyAgICAv
KioKKyAgICAgKiBSZXR1cm5zIGEgbmV3bHktY29uc3RydWN0ZWQgUnVsZUJhc2VkQnJlYWtJdGVy
YXRvciB3aXRoIHRoZSBzYW1lCisgICAgICogYmVoYXZpb3IsIGFuZCBpdGVyYXRpbmcgb3ZlciB0
aGUgc2FtZSB0ZXh0LCBhcyB0aGlzIG9uZS4KKyAgICAgKiBEaWZmZXJzIGZyb20gdGhlIGNvcHkg
Y29uc3RydWN0b3IgaW4gdGhhdCBpdCBpcyBwb2x5bW9ycGhpYywgYW5kCisgICAgICogd2lsbCBj
b3JyZWN0bHkgY2xvbmUgKGNvcHkpIGEgZGVyaXZlZCBjbGFzcy4KKyAgICAgKiBjbG9uZSgpIGlz
IHRocmVhZCBzYWZlLiAgTXVsdGlwbGUgdGhyZWFkcyBtYXkgc2ltdWx0YWVuZW91c2x5CisgICAg
ICogY2xvbmUgdGhlIHNhbWUgc291cmNlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqIEByZXR1cm4g
YSBuZXdseS1jb25zdHJ1Y3RlZCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yCisgICAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBCcmVha0l0ZXJhdG9yKiBjbG9uZSgpIGNv
bnN0OworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIGhhc2ggY29kZSBmb3IgdGhpcyBCcmVh
a0l0ZXJhdG9yCisgICAgICogQHJldHVybiBBIGhhc2ggY29kZQorICAgICAqICBAc3RhYmxlIElD
VSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgaGFzaENvZGUodm9pZCkgY29uc3Q7
CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkZXNjcmlwdGlvbiB1c2VkIHRvIGNyZWF0
ZSB0aGlzIGl0ZXJhdG9yCisgICAgICogQHJldHVybiB0aGUgZGVzY3JpcHRpb24gdXNlZCB0byBj
cmVhdGUgdGhpcyBpdGVyYXRvcgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAg
ICB2aXJ0dWFsIGNvbnN0IFVuaWNvZGVTdHJpbmcmIGdldFJ1bGVzKHZvaWQpIGNvbnN0OworCisg
ICAgLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorICAgIC8vIEJyZWFrSXRlcmF0b3Igb3ZlcnJpZGVzCisgICAg
Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogUmV0dXJuIGEg
Q2hhcmFjdGVySXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBU
aGUgcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9yIGlzIG93bmVkIGJ5IHRoZSBicmVhayBpdGVy
YXRvciwgYW5kIG11c3QKKyAgICAgKiBub3QgYmUgZGVsZXRlZCBieSB0aGUgY2FsbGVyLiAgUmVw
ZWF0ZWQgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiBtYXkKKyAgICAgKiByZXR1cm4gdGhlIHNhbWUg
Q2hhcmFjdGVySXRlcmF0b3IuCisgICAgICogPC9wPgorICAgICAqIDxwPgorICAgICAqIFRoZSBy
ZXR1cm5lZCBjaGFyYWN0ZXIgaXRlcmF0b3IgbXVzdCBub3QgYmUgdXNlZCBjb25jdXJyZW50bHkg
d2l0aAorICAgICAqIHRoZSBicmVhayBpdGVyYXRvci4gIElmIGNvbmN1cnJlbnQgb3BlcmF0aW9u
IGlzIG5lZWRlZCwgY2xvbmUgdGhlCisgICAgICogcmV0dXJuZWQgY2hhcmFjdGVyIGl0ZXJhdG9y
IGZpcnN0IGFuZCBvcGVyYXRlIG9uIHRoZSBjbG9uZS4KKyAgICAgKiA8L3A+CisgICAgICogPHA+
CisgICAgICogV2hlbiB0aGUgYnJlYWsgaXRlcmF0b3IgaXMgb3BlcmF0aW5nIG9uIHRleHQgc3Vw
cGxpZWQgdmlhIGEgVVRleHQsCisgICAgICogdGhpcyBmdW5jdGlvbiB3aWxsIGZhaWwuICBMYWNr
aW5nIGFueSB3YXkgdG8gc2lnbmFsIGZhaWx1cmVzLCBpdAorICAgICAqIHJldHVybnMgYW4gQ2hh
cmFjdGVySXRlcmF0b3IgY29udGFpbmluZyBubyB0ZXh0LgorICAgICAqIFRoZSBmdW5jdGlvbiBn
ZXRVVGV4dCgpIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSwKKyAgICAgKiBpcyByZWxp
YWJsZSwgYW5kIGlzIG1vcmUgZWZmaWNpZW50LgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAq
IFRPRE86ICBkZXByZWNhdGUgdGhpcyBmdW5jdGlvbj8KKyAgICAgKgorICAgICAqIEByZXR1cm4g
QW4gaXRlcmF0b3Igb3ZlciB0aGUgdGV4dCBiZWluZyBhbmFseXplZC4KKyAgICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsICBDaGFyYWN0ZXJJdGVyYXRvciYgZ2V0VGV4
dCh2b2lkKSBjb25zdDsKKworCisgICAgLyoqCisgICAgICAqICBHZXQgYSBVVGV4dCBmb3IgdGhl
IHRleHQgYmVpbmcgYW5hbHl6ZWQuCisgICAgICAqICBUaGUgcmV0dXJuZWQgVVRleHQgaXMgYSBz
aGFsbG93IGNsb25lIG9mIHRoZSBVVGV4dCB1c2VkIGludGVybmFsbHkKKyAgICAgICogIGJ5IHRo
ZSBicmVhayBpdGVyYXRvciBpbXBsZW1lbnRhdGlvbi4gIEl0IGNhbiBzYWZlbHkgYmUgdXNlZCB0
bworICAgICAgKiAgYWNjZXNzIHRoZSB0ZXh0IHdpdGhvdXQgaW1wYWN0aW5nIGFueSBicmVhayBp
dGVyYXRvciBvcGVyYXRpb25zLAorICAgICAgKiAgYnV0IHRoZSB1bmRlcmx5aW5nIHRleHQgaXRz
ZWxmIG11c3Qgbm90IGJlIGFsdGVyZWQuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBmaWxsSW4g
QSBVVGV4dCB0byBiZSBmaWxsZWQgaW4uICBJZiBOVUxMLCBhIG5ldyBVVGV4dCB3aWxsIGJlCisg
ICAgICAqICAgICAgICAgICBhbGxvY2F0ZWQgdG8gaG9sZCB0aGUgcmVzdWx0LgorICAgICAgKiBA
cGFyYW0gc3RhdHVzIHJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgICogQHJldHVybiAg
IFRoZSBjdXJyZW50IFVUZXh0IGZvciB0aGlzIGJyZWFrIGl0ZXJhdG9yLiAgSWYgYW4gaW5wdXQK
KyAgICAgICogICAgICAgICAgIFVUZXh0IHdhcyBwcm92aWRlZCwgaXQgd2lsbCBhbHdheXMgYmUg
cmV0dXJuZWQuCisgICAgICAqIEBzdGFibGUgSUNVIDMuNAorICAgICAgKi8KKyAgICAgdmlydHVh
bCBVVGV4dCAqZ2V0VVRleHQoVVRleHQgKmZpbGxJbiwgVUVycm9yQ29kZSAmc3RhdHVzKSBjb25z
dDsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgaXRlcmF0b3IgdG8gYW5hbHl6ZSBhIG5ldyBw
aWVjZSBvZiB0ZXh0LiAgVGhpcyBmdW5jdGlvbiByZXNldHMKKyAgICAgKiB0aGUgY3VycmVudCBp
dGVyYXRpb24gcG9zaXRpb24gdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGV4dC4KKyAgICAgKiBA
cGFyYW0gbmV3VGV4dCBBbiBpdGVyYXRvciBvdmVyIHRoZSB0ZXh0IHRvIGFuYWx5emUuICBUaGUg
QnJlYWtJdGVyYXRvcgorICAgICAqIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgY2hhcmFjdGVyIGl0
ZXJhdG9yLiAgVGhlIGNhbGxlciBNVVNUIE5PVCBkZWxldGUgaXQhCisgICAgICogIEBzdGFibGUg
SUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBhZG9wdFRleHQoQ2hhcmFjdGVySXRl
cmF0b3IqIG5ld1RleHQpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpdGVyYXRvciB0byBh
bmFseXplIGEgbmV3IHBpZWNlIG9mIHRleHQuICBUaGlzIGZ1bmN0aW9uIHJlc2V0cworICAgICAq
IHRoZSBjdXJyZW50IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0
ZXh0LgorICAgICAqIEBwYXJhbSBuZXdUZXh0IFRoZSB0ZXh0IHRvIGFuYWx5emUuCisgICAgICog
IEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0KGNvbnN0
IFVuaWNvZGVTdHJpbmcmIG5ld1RleHQpOworCisgICAgLyoqCisgICAgICogUmVzZXQgdGhlIGJy
ZWFrIGl0ZXJhdG9yIHRvIG9wZXJhdGUgb3ZlciB0aGUgdGV4dCByZXByZXNlbnRlZCBieQorICAg
ICAqIHRoZSBVVGV4dC4gIFRoZSBpdGVyYXRvciBwb3NpdGlvbiBpcyByZXNldCB0byB0aGUgc3Rh
cnQuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGEgc2hhbGxvdyBjbG9uZSBv
ZiB0aGUgc3VwcGxpZWQgVVRleHQuICBUaGlzIG1lYW5zCisgICAgICogdGhhdCB0aGUgY2FsbGVy
IGlzIGZyZWUgdG8gaW1tZWRpYXRlbHkgY2xvc2Ugb3Igb3RoZXJ3aXNlIHJldXNlIHRoZQorICAg
ICAqIFV0ZXh0IHRoYXQgd2FzIHBhc3NlZCBhcyBhIHBhcmFtZXRlciwgYnV0IHRoYXQgdGhlIHVu
ZGVybHlpbmcgdGV4dCBpdHNlbGYKKyAgICAgKiBtdXN0IG5vdCBiZSBhbHRlcmVkIHdoaWxlIGJl
aW5nIHJlZmVyZW5jZWQgYnkgdGhlIGJyZWFrIGl0ZXJhdG9yLgorICAgICAqCisgICAgICogQHBh
cmFtIHRleHQgICAgVGhlIFVUZXh0IHVzZWQgdG8gY2hhbmdlIHRoZSB0ZXh0LgorICAgICAqIEBw
YXJhbSBzdGF0dXMgIFJlY2VpdmVzIGFueSBlcnJvciBjb2Rlcy4KKyAgICAgKiBAc3RhYmxlIElD
VSAzLjQKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgIHNldFRleHQoVVRleHQgKnRleHQsIFVF
cnJvckNvZGUgJnN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGl0
ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXh0LCBwb3NpdGlvbiB6
ZXJvLgorICAgICAqIEByZXR1cm4gVGhlIG9mZnNldCBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0
ZXh0LCB6ZXJvLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFs
IGludDMyX3QgZmlyc3Qodm9pZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50
IGl0ZXJhdGlvbiBwb3NpdGlvbiB0byB0aGUgZW5kIG9mIHRoZSB0ZXh0LgorICAgICAqIEByZXR1
cm4gVGhlIHRleHQncyBwYXN0LXRoZS1lbmQgb2Zmc2V0LgorICAgICAqICBAc3RhYmxlIElDVSAy
LjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGludDMyX3QgbGFzdCh2b2lkKTsKKworICAgIC8qKgor
ICAgICAqIEFkdmFuY2VzIHRoZSBpdGVyYXRvciBlaXRoZXIgZm9yd2FyZCBvciBiYWNrd2FyZCB0
aGUgc3BlY2lmaWVkIG51bWJlciBvZiBzdGVwcy4KKyAgICAgKiBOZWdhdGl2ZSB2YWx1ZXMgbW92
ZSBiYWNrd2FyZCwgYW5kIHBvc2l0aXZlIHZhbHVlcyBtb3ZlIGZvcndhcmQuICBUaGlzIGlzCisg
ICAgICogZXF1aXZhbGVudCB0byByZXBlYXRlZGx5IGNhbGxpbmcgbmV4dCgpIG9yIHByZXZpb3Vz
KCkuCisgICAgICogQHBhcmFtIG4gVGhlIG51bWJlciBvZiBzdGVwcyB0byBtb3ZlLiAgVGhlIHNp
Z24gaW5kaWNhdGVzIHRoZSBkaXJlY3Rpb24KKyAgICAgKiAobmVnYXRpdmUgaXMgYmFja3dhcmRz
LCBhbmQgcG9zaXRpdmUgaXMgZm9yd2FyZHMpLgorICAgICAqIEByZXR1cm4gVGhlIGNoYXJhY3Rl
ciBvZmZzZXQgb2YgdGhlIGJvdW5kYXJ5IHBvc2l0aW9uIG4gYm91bmRhcmllcyBhd2F5IGZyb20K
KyAgICAgKiB0aGUgY3VycmVudCBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAq
LworICAgIHZpcnR1YWwgaW50MzJfdCBuZXh0KGludDMyX3Qgbik7CisKKyAgICAvKioKKyAgICAg
KiBBZHZhbmNlcyB0aGUgaXRlcmF0b3IgdG8gdGhlIG5leHQgYm91bmRhcnkgcG9zaXRpb24uCisg
ICAgICogQHJldHVybiBUaGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IGJvdW5kYXJ5IGFmdGVyIHRo
aXMgb25lLgorICAgICAqICBAc3RhYmxlIElDVSAyLjAKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGlu
dDMyX3QgbmV4dCh2b2lkKTsKKworICAgIC8qKgorICAgICAqIE1vdmVzIHRoZSBpdGVyYXRvciBi
YWNrd2FyZHMsIHRvIHRoZSBsYXN0IGJvdW5kYXJ5IHByZWNlZGluZyB0aGlzIG9uZS4KKyAgICAg
KiBAcmV0dXJuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCBib3VuZGFyeSBwb3NpdGlvbiBwcmVj
ZWRpbmcgdGhpcyBvbmUuCisgICAgICogIEBzdGFibGUgSUNVIDIuMAorICAgICAqLworICAgIHZp
cnR1YWwgaW50MzJfdCBwcmV2aW91cyh2b2lkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhl
IGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBmb2xsb3dp
bmcKKyAgICAgKiB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLgorICAgICAqIEBwYXJhbSBvZmZzZXQg
VGhlIHBvc2l0aW9uIGZyb20gd2hpY2ggdG8gYmVnaW4gc2VhcmNoaW5nIGZvciBhIGJyZWFrIHBv
c2l0aW9uLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBicmVhayBh
ZnRlciB0aGUgY3VycmVudCBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAg
ICovCisgICAgdmlydHVhbCBpbnQzMl90IGZvbGxvd2luZyhpbnQzMl90IG9mZnNldCk7CisKKyAg
ICAvKioKKyAgICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgbGFzdCBib3Vu
ZGFyeSBwb3NpdGlvbiBiZWZvcmUgdGhlCisgICAgICogc3BlY2lmaWVkIHBvc2l0aW9uLgorICAg
ICAqIEBwYXJhbSBvZmZzZXQgVGhlIHBvc2l0aW9uIHRvIGJlZ2luIHNlYXJjaGluZyBmb3IgYSBi
cmVhayBmcm9tLgorICAgICAqIEByZXR1cm4gVGhlIHBvc2l0aW9uIG9mIHRoZSBsYXN0IGJvdW5k
YXJ5IGJlZm9yZSB0aGUgc3RhcnRpbmcgcG9zaXRpb24uCisgICAgICogIEBzdGFibGUgSUNVIDIu
MAorICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBwcmVjZWRpbmcoaW50MzJfdCBvZmZzZXQp
OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjZmllZCBwb3NpdGlv
biBpcyBhIGJvdW5kYXJ5IHBvc2l0aW9uLiAgQXMgYSBzaWRlCisgICAgICogZWZmZWN0LCBsZWF2
ZXMgdGhlIGl0ZXJhdG9yIHBvaW50aW5nIHRvIHRoZSBmaXJzdCBib3VuZGFyeSBwb3NpdGlvbiBh
dAorICAgICAqIG9yIGFmdGVyICJvZmZzZXQiLgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9m
ZnNldCB0byBjaGVjay4KKyAgICAgKiBAcmV0dXJuIFRydWUgaWYgIm9mZnNldCIgaXMgYSBib3Vu
ZGFyeSBwb3NpdGlvbi4KKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmly
dHVhbCBVQm9vbCBpc0JvdW5kYXJ5KGludDMyX3Qgb2Zmc2V0KTsKKworICAgIC8qKgorICAgICAq
IFJldHVybnMgdGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEByZXR1cm4g
VGhlIGN1cnJlbnQgaXRlcmF0aW9uIHBvc2l0aW9uLgorICAgICAqIEBzdGFibGUgSUNVIDIuMAor
ICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBjdXJyZW50KHZvaWQpIGNvbnN0OworCisKKyAg
ICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHN0YXR1cyB0YWcgZnJvbSB0aGUgYnJlYWsgcnVsZSB0
aGF0IGRldGVybWluZWQgdGhlIG1vc3QgcmVjZW50bHkKKyAgICAgKiByZXR1cm5lZCBicmVhayBw
b3NpdGlvbi4gIEZvciBicmVhayBydWxlcyB0aGF0IGRvIG5vdCBzcGVjaWZ5IGEKKyAgICAgKiBz
dGF0dXMsIGEgZGVmYXVsdCB2YWx1ZSBvZiAwIGlzIHJldHVybmVkLiAgSWYgbW9yZSB0aGFuIG9u
ZSBicmVhayBydWxlCisgICAgICogd291bGQgY2F1c2UgYSBib3VuZGFyeSB0byBiZSBsb2NhdGVk
IGF0IHNvbWUgcG9zaXRpb24gaW4gdGhlIHRleHQsCisgICAgICogdGhlIG51bWVyaWNhbGx5IGxh
cmdlc3Qgb2YgdGhlIGFwcGxpY2FibGUgc3RhdHVzIHZhbHVlcyBpcyByZXR1cm5lZC4KKyAgICAg
KiA8cD4KKyAgICAgKiBPZiB0aGUgc3RhbmRhcmQgdHlwZXMgb2YgSUNVIGJyZWFrIGl0ZXJhdG9y
cywgb25seSB3b3JkIGJyZWFrIGFuZAorICAgICAqIGxpbmUgYnJlYWsgcHJvdmlkZSBzdGF0dXMg
dmFsdWVzLiAgVGhlIHZhbHVlcyBhcmUgZGVmaW5lZCBpbgorICAgICAqIHRoZSBoZWFkZXIgZmls
ZSB1YnJrLmguICBGb3IgV29yZCBicmVha3MsIHRoZSBzdGF0dXMgYWxsb3dzIGRpc3Rpbmd1aXNo
aW5nIGJldHdlZW4gd29yZHMKKyAgICAgKiB0aGF0IGNvbnRhaW4gYWxwaGFiZXRpYyBsZXR0ZXJz
LCAid29yZHMiIHRoYXQgYXBwZWFyIHRvIGJlIG51bWJlcnMsCisgICAgICogcHVuY3R1YXRpb24g
YW5kIHNwYWNlcywgd29yZHMgY29udGFpbmluZyBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXJzLCBhbmQK
KyAgICAgKiBtb3JlLiAgRm9yIExpbmUgQnJlYWssIHRoZSBzdGF0dXMgZGlzdGluZ3Vpc2hlcyBi
ZXR3ZWVuIGhhcmQgKG1hbmRhdG9yeSkgYnJlYWtzCisgICAgICogYW5kIHNvZnQgKHBvdGVudGlh
bCkgYnJlYWsgcG9zaXRpb25zLgorICAgICAqIDxwPgorICAgICAqIDxjb2RlPmdldFJ1bGVTdGF0
dXMoKTwvY29kZT4gY2FuIGJlIGNhbGxlZCBhZnRlciBvYnRhaW5pbmcgYSBib3VuZGFyeQorICAg
ICAqIHBvc2l0aW9uIGZyb20gPGNvZGU+bmV4dCgpPC9jb2RlPiwgPGNvZGU+cHJldmlvdXMoKTwv
Y29kZT4sIG9yCisgICAgICogYW55IG90aGVyIGJyZWFrIGl0ZXJhdG9yIGZ1bmN0aW9ucyB0aGF0
IHJldHVybnMgYSBib3VuZGFyeSBwb3NpdGlvbi4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIGNy
ZWF0aW5nIGN1c3RvbSBicmVhayBydWxlcywgb25lIGlzIGZyZWUgdG8gZGVmaW5lIHdoYXRldmVy
CisgICAgICogc3RhdHVzIHZhbHVlcyBtYXkgYmUgY29udmVuaWVudCBmb3IgdGhlIGFwcGxpY2F0
aW9uLgorICAgICAqIDxwPgorICAgICAqIE5vdGU6IHRoaXMgZnVuY3Rpb24gaXMgbm90IHRocmVh
ZCBzYWZlLiAgSXQgc2hvdWxkIG5vdCBoYXZlIGJlZW4KKyAgICAgKiAgICAgICBkZWNsYXJlZCBj
b25zdCwgYW5kIHRoZSBjb25zdCByZW1haW5zIG9ubHkgZm9yIGNvbXBhdGliaWxpdHkKKyAgICAg
KiAgICAgICByZWFzb25zLiAgKFRoZSBmdW5jdGlvbiBpcyBsb2dpY2FsbHkgY29uc3QsIGJ1dCBu
b3QgYml0LXdpc2UgY29uc3QpLgorICAgICAqIDxwPgorICAgICAqIEByZXR1cm4gdGhlIHN0YXR1
cyBmcm9tIHRoZSBicmVhayBydWxlIHRoYXQgZGV0ZXJtaW5lZCB0aGUgbW9zdCByZWNlbnRseQor
ICAgICAqIHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICAqCisgICAgICogQHNlZSBVV29y
ZEJyZWFrCisgICAgICogQHN0YWJsZSBJQ1UgMi4yCisgICAgICovCisgICAgdmlydHVhbCBpbnQz
Ml90IGdldFJ1bGVTdGF0dXMoKSBjb25zdDsKKworICAgLyoqCisgICAgKiBHZXQgdGhlIHN0YXR1
cyAodGFnKSB2YWx1ZXMgZnJvbSB0aGUgYnJlYWsgcnVsZShzKSB0aGF0IGRldGVybWluZWQgdGhl
IG1vc3QKKyAgICAqIHJlY2VudGx5IHJldHVybmVkIGJyZWFrIHBvc2l0aW9uLgorICAgICogPHA+
CisgICAgKiBUaGUgcmV0dXJuZWQgc3RhdHVzIHZhbHVlKHMpIGFyZSBzdG9yZWQgaW50byBhbiBh
cnJheSBwcm92aWRlZCBieSB0aGUgY2FsbGVyLgorICAgICogVGhlIHZhbHVlcyBhcmUgc3RvcmVk
IGluIHNvcnRlZCAoYXNjZW5kaW5nKSBvcmRlci4KKyAgICAqIElmIHRoZSBjYXBhY2l0eSBvZiB0
aGUgb3V0cHV0IGFycmF5IGlzIGluc3VmZmljaWVudCB0byBob2xkIHRoZSBkYXRhLAorICAgICog
IHRoZSBvdXRwdXQgd2lsbCBiZSB0cnVuY2F0ZWQgdG8gdGhlIGF2YWlsYWJsZSBsZW5ndGgsIGFu
ZCBhCisgICAgKiAgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1Igd2lsbCBiZSBzaWduYWxlZC4KKyAg
ICAqCisgICAgKiBAcGFyYW0gZmlsbEluVmVjIGFuIGFycmF5IHRvIGJlIGZpbGxlZCBpbiB3aXRo
IHRoZSBzdGF0dXMgdmFsdWVzLgorICAgICogQHBhcmFtIGNhcGFjaXR5ICB0aGUgbGVuZ3RoIG9m
IHRoZSBzdXBwbGllZCB2ZWN0b3IuICBBIGxlbmd0aCBvZiB6ZXJvIGNhdXNlcworICAgICogICAg
ICAgICAgICAgICAgICB0aGUgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSBudW1iZXIgb2Ygc3RhdHVz
IHZhbHVlcywgaW4gdGhlCisgICAgKiAgICAgICAgICAgICAgICAgIG5vcm1hbCB3YXksIHdpdGhv
dXQgYXR0ZW10cGluZyB0byBzdG9yZSBhbnkgdmFsdWVzLgorICAgICogQHBhcmFtIHN0YXR1cyAg
ICByZWNlaXZlcyBlcnJvciBjb2Rlcy4KKyAgICAqIEByZXR1cm4gICAgICAgICAgVGhlIG51bWJl
ciBvZiBydWxlIHN0YXR1cyB2YWx1ZXMgZnJvbSBydWxlcyB0aGF0IGRldGVybWluZWQKKyAgICAq
ICAgICAgICAgICAgICAgICAgdGhlIG1vc3QgcmVjZW50IGJvdW5kYXJ5IHJldHVybmVkIGJ5IHRo
ZSBicmVhayBpdGVyYXRvci4KKyAgICAqICAgICAgICAgICAgICAgICAgSW4gdGhlIGV2ZW50IG9m
IGEgVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IsIHRoZSByZXR1cm4gdmFsdWUKKyAgICAqICAgICAg
ICAgICAgICAgICAgaXMgdGhlIHRvdGFsIG51bWJlciBvZiBzdGF0dXMgdmFsdWVzIHRoYXQgd2Vy
ZSBhdmFpbGFibGUsCisgICAgKiAgICAgICAgICAgICAgICAgIG5vdCB0aGUgcmVkdWNlZCBudW1i
ZXIgdGhhdCB3ZXJlIGFjdHVhbGx5IHJldHVybmVkLgorICAgICogQHNlZSBnZXRSdWxlU3RhdHVz
CisgICAgKiBAc3RhYmxlIElDVSAzLjAKKyAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRS
dWxlU3RhdHVzVmVjKGludDMyX3QgKmZpbGxJblZlYywgaW50MzJfdCBjYXBhY2l0eSwgVUVycm9y
Q29kZSAmc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB1bmlxdWUgY2xhc3Mg
SUQgUE9MWU1PUlBISUNBTExZLiAgUHVyZSB2aXJ0dWFsIG92ZXJyaWRlLgorICAgICAqIFRoaXMg
bWV0aG9kIGlzIHRvIGltcGxlbWVudCBhIHNpbXBsZSB2ZXJzaW9uIG9mIFJUVEksIHNpbmNlIG5v
dCBhbGwKKyAgICAgKiBDKysgY29tcGlsZXJzIHN1cHBvcnQgZ2VudWluZSBSVFRJLiAgUG9seW1v
cnBoaWMgb3BlcmF0b3I9PSgpIGFuZAorICAgICAqIGNsb25lKCkgbWV0aG9kcyBjYWxsIHRoaXMg
bWV0aG9kLgorICAgICAqCisgICAgICogQHJldHVybiAgICAgICAgICBUaGUgY2xhc3MgSUQgZm9y
IHRoaXMgb2JqZWN0LiBBbGwgb2JqZWN0cyBvZiBhCisgICAgICogICAgICAgICAgICAgICAgICBn
aXZlbiBjbGFzcyBoYXZlIHRoZSBzYW1lIGNsYXNzIElELiAgT2JqZWN0cyBvZgorICAgICAqICAg
ICAgICAgICAgICAgICAgb3RoZXIgY2xhc3NlcyBoYXZlIGRpZmZlcmVudCBjbGFzcyBJRHMuCisg
ICAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgdmlydHVhbCBVQ2xhc3NJRCBnZXRE
eW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhl
IGNsYXNzIElEIGZvciB0aGlzIGNsYXNzLiAgVGhpcyBpcyB1c2VmdWwgb25seSBmb3IKKyAgICAg
KiBjb21wYXJpbmcgdG8gYSByZXR1cm4gdmFsdWUgZnJvbSBnZXREeW5hbWljQ2xhc3NJRCgpLiAg
Rm9yIGV4YW1wbGU6CisgICAgICoKKyAgICAgKiAgICAgIEJhc2UqIHBvbHltb3JwaGljX3BvaW50
ZXIgPSBjcmVhdGVQb2x5bW9ycGhpY09iamVjdCgpOworICAgICAqICAgICAgaWYgKHBvbHltb3Jw
aGljX3BvaW50ZXItPmdldER5bmFtaWNDbGFzc0lEKCkgPT0KKyAgICAgKiAgICAgICAgICBEZXJp
dmVkOjpnZXRTdGF0aWNDbGFzc0lEKCkpIC4uLgorICAgICAqCisgICAgICogQHJldHVybiAgICAg
ICAgICBUaGUgY2xhc3MgSUQgZm9yIGFsbCBvYmplY3RzIG9mIHRoaXMgY2xhc3MuCisgICAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAgICovCisgICAgc3RhdGljIFVDbGFzc0lEIFVfRVhQT1JUMiBn
ZXRTdGF0aWNDbGFzc0lEKHZvaWQpOworCisgICAgLyoqCisgICAgICogRGVwcmVjYXRlZCBmdW5j
dGlvbmFsaXR5LiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgorICAgICAqCisgICAgICogQ3JlYXRlIGEg
Y2xvbmUgKGNvcHkpIG9mIHRoaXMgYnJlYWsgaXRlcmF0b3IgaW4gbWVtb3J5IHByb3ZpZGVkCisg
ICAgICogIGJ5IHRoZSBjYWxsZXIuICBUaGUgaWRlYSBpcyB0byBpbmNyZWFzZSBwZXJmb3JtYW5j
ZSBieSBhdm9pZGluZworICAgICAqICBhIHN0b3JhZ2UgYWxsb2NhdGlvbi4gIFVzZSBvZiB0aGlz
IGZ1bmN0b2luIGlzIE5PVCBSRUNPTU1FTkRFRC4KKyAgICAgKiAgUGVyZm9ybWFuY2UgZ2FpbnMg
YXJlIG1pbmltYWwsIGFuZCBjb3JyZWN0IGJ1ZmZlciBtYW5hZ2VtZW50IGlzCisgICAgICogIHRy
aWNreS4gIFVzZSBjbG9uZSgpIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhY2tC
dWZmZXIgIFRoZSBwb2ludGVyIHRvIHRoZSBtZW1vcnkgaW50byB3aGljaCB0aGUgY2xvbmVkIG9i
amVjdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGJlIHBsYWNlZC4gIElmIE5V
TEwsICBhbGxvY2F0ZSBoZWFwIG1lbW9yeQorICAgICAqICAgICAgICAgICAgICAgICAgICAgZm9y
IHRoZSBjbG9uZWQgb2JqZWN0LgorICAgICAqIEBwYXJhbSBCdWZmZXJTaXplICAgVGhlIHNpemUg
b2YgdGhlIGJ1ZmZlci4gIElmIHplcm8sIHJldHVybiB0aGUgcmVxdWlyZWQKKyAgICAgKiAgICAg
ICAgICAgICAgICAgICAgIGJ1ZmZlciBzaXplLCBidXQgZG8gbm90IGNsb25lIHRoZSBvYmplY3Qu
ICBJZiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHNpemUgd2FzIHRvbyBzbWFsbCAo
YnV0IG5vdCB6ZXJvKSwgYWxsb2NhdGUgaGVhcAorICAgICAqICAgICAgICAgICAgICAgICAgICAg
c3RvcmFnZSBmb3IgdGhlIGNsb25lZCBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3Rh
dHVzICAgICAgIEVycm9yIHN0YXR1cy4gIFVfU0FGRUNMT05FX0FMTE9DQVRFRF9XQVJOSU5HIHdp
bGwgYmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIHJldHVybmVkIGlmIHRoZSB0aGUgcHJv
dmlkZWQgYnVmZmVyIHdhcyB0b28gc21hbGwsIGFuZAorICAgICAqICAgICAgICAgICAgICAgICAg
ICAgdGhlIGNsb25lIHdhcyB0aGVyZWZvcmUgcHV0IG9uIHRoZSBoZWFwLgorICAgICAqCisgICAg
ICogQHJldHVybiAgUG9pbnRlciB0byB0aGUgY2xvbmUgb2JqZWN0LiAgVGhpcyBtYXkgZGlmZmVy
IGZyb20gdGhlIHN0YWNrQnVmZmVyCisgICAgICogICAgICAgICAgYWRkcmVzcyBpZiB0aGUgYnl0
ZSBhbGlnbm1lbnQgb2YgdGhlIHN0YWNrIGJ1ZmZlciB3YXMgbm90IHN1aXRhYmxlCisgICAgICog
ICAgICAgICAgb3IgaWYgdGhlIHN0YWNrQnVmZmVyIHdhcyB0b28gc21hbGwgdG8gaG9sZCB0aGUg
Y2xvbmUuCisgICAgICogQGRlcHJlY2F0ZWQgSUNVIDUyLiBVc2UgY2xvbmUoKSBpbnN0ZWFkLgor
ICAgICAqLworICAgIHZpcnR1YWwgQnJlYWtJdGVyYXRvciAqICBjcmVhdGVCdWZmZXJDbG9uZSh2
b2lkICpzdGFja0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50MzJfdCAmQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAmc3RhdHVzKTsKKworCisgICAgLyoqCisg
ICAgICogUmV0dXJuIHRoZSBiaW5hcnkgZm9ybSBvZiBjb21waWxlZCBicmVhayBydWxlcywKKyAg
ICAgKiB3aGljaCBjYW4gdGhlbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5ldyBicmVhayBpdGVyYXRv
ciBhdCBzb21lCisgICAgICogdGltZSBpbiB0aGUgZnV0dXJlLiAgQ3JlYXRpbmcgYSBicmVhayBp
dGVyYXRvciBmcm9tIHByZS1jb21waWxlZCBydWxlcworICAgICAqIGlzIG11Y2ggZmFzdGVyIHRo
YW4gYnVpbGRpbmcgb25lIGZyb20gdGhlIHNvdXJjZSBmb3JtIG9mIHRoZQorICAgICAqIGJyZWFr
IHJ1bGVzLgorICAgICAqCisgICAgICogVGhlIGJpbmFyeSBkYXRhIGNhbiBvbmx5IGJlIHVzZWQg
d2l0aCB0aGUgc2FtZSB2ZXJzaW9uIG9mIElDVQorICAgICAqICBhbmQgb24gdGhlIHNhbWUgcGxh
dGZvcm0gdHlwZSAocHJvY2Vzc29yIGVuZGlhbi1uZXNzKQorICAgICAqCisgICAgICogQHBhcmFt
IGxlbmd0aCBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGJpbmFyeSBkYXRhLiAgKE91dCBwYXJh
bXRlci4pCisgICAgICoKKyAgICAgKiBAcmV0dXJuICAgQSBwb2ludGVyIHRvIHRoZSBiaW5hcnkg
KGNvbXBpbGVkKSBydWxlIGRhdGEuICBUaGUgc3RvcmFnZQorICAgICAqICAgICAgICAgICBiZWxv
bmdzIHRvIHRoZSBSdWxlc0Jhc2VkQnJlYWtJdGVyYXRvciBvYmplY3QsIG5vdCB0aGUKKyAgICAg
KiAgICAgICAgICAgY2FsbGVyLCBhbmQgbXVzdCBub3QgYmUgbW9kaWZpZWQgb3IgZGVsZXRlZC4K
KyAgICAgKiBAc3RhYmxlIElDVSA0LjgKKyAgICAgKi8KKyAgICB2aXJ0dWFsIGNvbnN0IHVpbnQ4
X3QgKmdldEJpbmFyeVJ1bGVzKHVpbnQzMl90ICZsZW5ndGgpOworCisgICAgLyoqCisgICAgICog
IFNldCB0aGUgc3ViamVjdCB0ZXh0IHN0cmluZyB1cG9uIHdoaWNoIHRoZSBicmVhayBpdGVyYXRv
ciBpcyBvcGVyYXRpbmcKKyAgICAgKiAgd2l0aG91dCBjaGFuZ2luZyBhbnkgb3RoZXIgYXNwZWN0
IG9mIHRoZSBtYXRjaGluZyBzdGF0ZS4KKyAgICAgKiAgVGhlIG5ldyBhbmQgcHJldmlvdXMgdGV4
dCBzdHJpbmdzIG11c3QgaGF2ZSB0aGUgc2FtZSBjb250ZW50LgorICAgICAqCisgICAgICogIFRo
aXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIHVzZSBpbiBlbnZpcm9ubWVudHMgd2hlcmUgSUNV
IGlzIG9wZXJhdGluZyBvbgorICAgICAqICBzdHJpbmdzIHRoYXQgbWF5IG1vdmUgYXJvdW5kIGlu
IG1lbW9yeS4gIEl0IHByb3ZpZGVzIGEgbWVjaGFuaXNtIGZvciBub3RpZnlpbmcKKyAgICAgKiAg
SUNVIHRoYXQgdGhlIHN0cmluZyBoYXMgYmVlbiByZWxvY2F0ZWQsIGFuZCBwcm92aWRpbmcgYSBu
ZXcgVVRleHQgdG8gYWNjZXNzIHRoZQorICAgICAqICBzdHJpbmcgaW4gaXRzIG5ldyBwb3NpdGlv
bi4KKyAgICAgKgorICAgICAqICBOb3RlIHRoYXQgdGhlIGJyZWFrIGl0ZXJhdG9yIGltcGxlbWVu
dGF0aW9uIG5ldmVyIGNvcGllcyB0aGUgdW5kZXJseWluZyB0ZXh0CisgICAgICogIG9mIGEgc3Ry
aW5nIGJlaW5nIHByb2Nlc3NlZCwgYnV0IGFsd2F5cyBvcGVyYXRlcyBkaXJlY3RseSBvbiB0aGUg
b3JpZ2luYWwgdGV4dAorICAgICAqICBwcm92aWRlZCBieSB0aGUgdXNlci4gUmVmcmVzaGluZyBz
aW1wbHkgZHJvcHMgdGhlIHJlZmVyZW5jZXMgdG8gdGhlIG9sZCB0ZXh0CisgICAgICogIGFuZCBy
ZXBsYWNlcyB0aGVtIHdpdGggcmVmZXJlbmNlcyB0byB0aGUgbmV3LgorICAgICAqCisgICAgICog
IENhdXRpb246ICB0aGlzIGZ1bmN0aW9uIGlzIG5vcm1hbGx5IHVzZWQgb25seSBieSB2ZXJ5IHNw
ZWNpYWxpemVkLAorICAgICAqICBzeXN0ZW0tbGV2ZWwgY29kZS4gIE9uZSBleGFtcGxlIHVzZSBj
YXNlIGlzIHdpdGggZ2FyYmFnZSBjb2xsZWN0aW9uIHRoYXQgbW92ZXMKKyAgICAgKiAgdGhlIHRl
eHQgaW4gbWVtb3J5LgorICAgICAqCisgICAgICogQHBhcmFtIGlucHV0ICAgICAgVGhlIG5ldyAo
bW92ZWQpIHRleHQgc3RyaW5nLgorICAgICAqIEBwYXJhbSBzdGF0dXMgICAgIFJlY2VpdmVzIGVy
cm9ycyBkZXRlY3RlZCBieSB0aGlzIGZ1bmN0aW9uLgorICAgICAqIEByZXR1cm4gICAgICAgICAg
ICp0aGlzCisgICAgICoKKyAgICAgKiBAc3RhYmxlIElDVSA0OQorICAgICAqLworICAgIHZpcnR1
YWwgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciAmcmVmcmVzaElucHV0VGV4dChVVGV4dCAqaW5wdXQs
IFVFcnJvckNvZGUgJnN0YXR1cyk7CisKKworcHJvdGVjdGVkOgorICAgIC8vPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKyAgICAvLyBpbXBsZW1lbnRhdGlvbgorICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICAvKioK
KyAgICAgKiBEdW1wcyBjYWNoZXMgYW5kIHBlcmZvcm1zIG90aGVyIGFjdGlvbnMgYXNzb2NpYXRl
ZCB3aXRoIGEgY29tcGxldGUgY2hhbmdlCisgICAgICogaW4gdGV4dCBvciBpdGVyYXRpb24gcG9z
aXRpb24uCisgICAgICogQGludGVybmFsCisgICAgICovCisgICAgdmlydHVhbCB2b2lkIHJlc2V0
KHZvaWQpOworCisjaWYgMAorICAgIC8qKgorICAgICAgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2F0
ZWdvcnkgbG9va3VwIGZvciB0aGlzIGNoYXIKKyAgICAgICogaW5kaWNhdGVzIHRoYXQgaXQgaXMg
aW4gdGhlIHNldCBvZiBkaWN0aW9uYXJ5IGxvb2t1cCBjaGFycy4KKyAgICAgICogVGhpcyBmdW5j
dGlvbiBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGRpY3Rpb25hcnkgYmFzZWQgYnJlYWsgaXRlcmF0
b3JzLgorICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGNhdGVnb3J5IGxvb2t1cCBmb3IgdGhp
cyBjaGFyCisgICAgICAqIGluZGljYXRlcyB0aGF0IGl0IGlzIGluIHRoZSBzZXQgb2YgZGljdGlv
bmFyeSBsb29rdXAgY2hhcnMuCisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0
dWFsIFVCb29sIGlzRGljdGlvbmFyeUNoYXIoVUNoYXIzMik7CisKKyAgICAvKioKKyAgICAgICog
R2V0IHRoZSB0eXBlIG9mIHRoZSBicmVhayBpdGVyYXRvci4KKyAgICAgICogQGludGVybmFsCisg
ICAgICAqLworICAgIHZpcnR1YWwgaW50MzJfdCBnZXRCcmVha1R5cGUoKSBjb25zdDsKKyNlbmRp
ZgorCisgICAgLyoqCisgICAgICAqIFNldCB0aGUgdHlwZSBvZiB0aGUgYnJlYWsgaXRlcmF0b3Iu
CisgICAgICAqIEBpbnRlcm5hbAorICAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgc2V0QnJlYWtU
eXBlKGludDMyX3QgdHlwZSk7CisKKyNpZm5kZWYgVV9ISURFX0lOVEVSTkFMX0FQSQorICAgIC8q
KgorICAgICAgKiBDb21tb24gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24sIHVzZWQgYnkgY29uc3Ry
dWN0b3JzIGFuZCBidWZmZXJDbG9uZS4KKyAgICAgICogQGludGVybmFsCisgICAgICAqLworICAg
IHZvaWQgaW5pdCgpOworI2VuZGlmICAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKK3ByaXZh
dGU6CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBiYWNrcyB0aGUgaXRlcmF0b3IgYmFj
ayB1cCB0byBhICJzYWZlIHBvc2l0aW9uIiBpbiB0aGUgdGV4dC4KKyAgICAgKiBUaGlzIGlzIGEg
cG9zaXRpb24gdGhhdCB3ZSBrbm93LCB3aXRob3V0IGFueSBjb250ZXh0LCBtdXN0IGJlIGEgYnJl
YWsgcG9zaXRpb24uCisgICAgICogVGhlIHZhcmlvdXMgY2FsbGluZyBtZXRob2RzIHRoZW4gaXRl
cmF0ZSBmb3J3YXJkIGZyb20gdGhpcyBzYWZlIHBvc2l0aW9uIHRvCisgICAgICogdGhlIGFwcHJv
cHJpYXRlIHBvc2l0aW9uIHRvIHJldHVybi4gIChGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRo
ZSBkZXNjcmlwdGlvbgorICAgICAqIG9mIGJ1aWxkQmFja3dhcmRzU3RhdGVUYWJsZSgpIGluIFJ1
bGVCYXNlZEJyZWFrSXRlcmF0b3IuQnVpbGRlci4pCisgICAgICogQHBhcmFtIHN0YXRldGFibGUg
c3RhdGUgdGFibGUgdXNlZCBvZiBtb3ZpbmcgYmFja3dhcmRzCisgICAgICogQGludGVybmFsCisg
ICAgICovCisgICAgaW50MzJfdCBoYW5kbGVQcmV2aW91cyhjb25zdCBSQkJJU3RhdGVUYWJsZSAq
c3RhdGV0YWJsZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUgYWN0dWFs
IGltcGxlbWVudGF0aW9uIG9mIHRoZSBuZXh0KCkgbWV0aG9kLiAgQWxsIGl0ZXJhdGlvbgorICAg
ICAqIHZlY3RvcnMgdGhyb3VnaCBoZXJlLiAgVGhpcyBtZXRob2QgaW5pdGlhbGl6ZXMgdGhlIHN0
YXRlIG1hY2hpbmUgdG8gc3RhdGUgMQorICAgICAqIGFuZCBhZHZhbmNlcyB0aHJvdWdoIHRoZSB0
ZXh0IGNoYXJhY3RlciBieSBjaGFyYWN0ZXIgdW50aWwgd2UgcmVhY2ggdGhlIGVuZAorICAgICAq
IG9mIHRoZSB0ZXh0IG9yIHRoZSBzdGF0ZSBtYWNoaW5lIHRyYW5zaXRpb25zIHRvIHN0YXRlIDAu
ICBXZSB1cGRhdGUgb3VyIHJldHVybgorICAgICAqIHZhbHVlIGV2ZXJ5IHRpbWUgdGhlIHN0YXRl
IG1hY2hpbmUgcGFzc2VzIHRocm91Z2ggYSBwb3NzaWJsZSBlbmQgc3RhdGUuCisgICAgICogQHBh
cmFtIHN0YXRldGFibGUgc3RhdGUgdGFibGUgdXNlZCBvZiBtb3ZpbmcgZm9yd2FyZHMKKyAgICAg
KiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBpbnQzMl90IGhhbmRsZU5leHQoY29uc3QgUkJCSVN0
YXRlVGFibGUgKnN0YXRldGFibGUpOworCitwcm90ZWN0ZWQ6CisKKyNpZm5kZWYgVV9ISURFX0lO
VEVSTkFMX0FQSQorICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgYWN0
dWFsbHkgaW1wbGVtZW50cyBkaWN0aW9uYXJ5LWJhc2VkCisgICAgICogYnJlYWtpbmcuICBDb3Zl
cmluZyBhdCBsZWFzdCB0aGUgcmFuZ2UgZnJvbSBzdGFydFBvcyB0byBlbmRQb3MsCisgICAgICog
aXQgY2hlY2tzIGZvciBkaWN0aW9uYXJ5IGNoYXJhY3RlcnMsIGFuZCBpZiBpdCBmaW5kcyB0aGVt
IGRldGVybWluZXMKKyAgICAgKiB0aGUgYXBwcm9wcmlhdGUgb2JqZWN0IHRvIGRlYWwgd2l0aCB0
aGVtLiBJdCBtYXkgY2FjaGUgZm91bmQgYnJlYWtzIGluCisgICAgICogZkNhY2hlZEJyZWFrUG9z
aXRpb25zIGFzIGl0IGdvZXMuIEl0IG1heSB3ZWxsIGFsc28gbG9vayBhdCB0ZXh0IG91dHNpZGUK
KyAgICAgKiB0aGUgcmFuZ2Ugc3RhcnRQb3MgdG8gZW5kUG9zLgorICAgICAqIElmIGdvaW5nIGZv
cndhcmQsIGVuZFBvcyBpcyB0aGUgbm9ybWFsIFVuaWNvZGUgYnJlYWsgcmVzdWx0LCBhbmQKKyAg
ICAgKiBpZiBnb2luZCBpbiByZXZlcnNlLCBzdGFydFBvcyBpcyB0aGUgbm9ybWFsIFVuaWNvZGUg
YnJlYWsgcmVzdWx0CisgICAgICogQHBhcmFtIHN0YXJ0UG9zICBUaGUgc3RhcnQgcG9zaXRpb24g
b2YgYSByYW5nZSBvZiB0ZXh0CisgICAgICogQHBhcmFtIGVuZFBvcyAgICBUaGUgZW5kIHBvc2l0
aW9uIG9mIGEgcmFuZ2Ugb2YgdGV4dAorICAgICAqIEBwYXJhbSByZXZlcnNlICAgVGhlIGNhbGwg
aXMgZm9yIHRoZSByZXZlcnNlIGRpcmVjdGlvbgorICAgICAqIEBpbnRlcm5hbAorICAgICAqLwor
ICAgIGludDMyX3QgY2hlY2tEaWN0aW9uYXJ5KGludDMyX3Qgc3RhcnRQb3MsIGludDMyX3QgZW5k
UG9zLCBVQm9vbCByZXZlcnNlKTsKKyNlbmRpZiAgLyogVV9ISURFX0lOVEVSTkFMX0FQSSAqLwor
Citwcml2YXRlOgorCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBh
cHByb3ByaWF0ZSBMYW5ndWFnZUJyZWFrRW5naW5lIGZvciBhCisgICAgICogZ2l2ZW4gY2hhcmFj
dGVyIGMuCisgICAgICogQHBhcmFtIGMgICAgICAgICBBIGNoYXJhY3RlciBpbiB0aGUgZGljdGlv
bmFyeSBzZXQKKyAgICAgKiBAaW50ZXJuYWwKKyAgICAgKi8KKyAgICBjb25zdCBMYW5ndWFnZUJy
ZWFrRW5naW5lICpnZXRMYW5ndWFnZUJyZWFrRW5naW5lKFVDaGFyMzIgYyk7CisKKyAgICAvKioK
KyAgICAgKiAgQGludGVybmFsCisgICAgICovCisgICAgdm9pZCBtYWtlUnVsZVN0YXR1c1ZhbGlk
KCk7CisKK307CisKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLworLy8gICBJbmxpbmUgRnVu
Y3Rpb25zIERlZmluaXRpb25zIC4uLgorLy8KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2lu
bGluZSBVQm9vbCBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yOjpvcGVyYXRvciE9KGNvbnN0IEJyZWFr
SXRlcmF0b3ImIHRoYXQpIGNvbnN0IHsKKyAgICByZXR1cm4gIW9wZXJhdG9yPT0odGhhdCk7Cit9
CisKK1VfTkFNRVNQQUNFX0VORAorCisjZW5kaWYgLyogI2lmICFVQ09ORklHX05PX0JSRUFLX0lU
RVJBVElPTiAqLworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUv
c2Nocml0ZXIuaCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvc2Nocml0ZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMGI1ZTIyNTAzY2ZmMjYxZDJjZDI0MGZmMTIwMDdmOTM3Zjc4M2IyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS9zY2hyaXRlci5oCkBAIC0wLDAgKzEsMTg3IEBA
CisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk4LTIw
MDUsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQg
b3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor
KgorKiBGaWxlIHNjaHJpdGVyLmgKKyoKKyogTW9kaWZpY2F0aW9uIEhpc3Rvcnk6CisqCisqICAg
RGF0ZSAgICAgICAgTmFtZSAgICAgICAgRGVzY3JpcHRpb24KKyogIDA1LzA1Lzk5ICAgICBzdGVw
aGVuICAgICBDbGVhbmVkIHVwLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqLworCisjaWZuZGVm
IFNDSFJJVEVSX0gKKyNkZWZpbmUgU0NIUklURVJfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlw
ZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2NoYXJpdGVyLmgiCisjaW5jbHVkZSAidW5pY29kZS91
Y2hyaXRlci5oIgorCisvKioKKyAqIFxmaWxlIAorICogXGJyaWVmIEMrKyBBUEk6IFN0cmluZyBD
aGFyYWN0ZXIgSXRlcmF0b3IKKyAqLworIAorVV9OQU1FU1BBQ0VfQkVHSU4KKy8qKgorICogQSBj
b25jcmV0ZSBzdWJjbGFzcyBvZiBDaGFyYWN0ZXJJdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIg
dGhlCisgKiBjaGFyYWN0ZXJzIChjb2RlIHVuaXRzIG9yIGNvZGUgcG9pbnRzKSBpbiBhIFVuaWNv
ZGVTdHJpbmcuCisgKiBJdCdzIHBvc3NpYmxlIG5vdCBvbmx5IHRvIGNyZWF0ZSBhbgorICogaXRl
cmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIGFuIGVudGlyZSBVbmljb2RlU3RyaW5nLCBidXQgYWxz
byB0bworICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25seSBhIHN1YnJhbmdlIG9m
IGEgVW5pY29kZVN0cmluZworICogKGl0ZXJhdG9ycyBvdmVyIGRpZmZlcmVudCBzdWJyYW5nZXMg
b2YgdGhlIHNhbWUgVW5pY29kZVN0cmluZyBkb24ndAorICogY29tcGFyZSBlcXVhbCkuCisgKiBA
c2VlIENoYXJhY3Rlckl0ZXJhdG9yCisgKiBAc2VlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvcgor
ICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK2NsYXNzIFVfQ09NTU9OX0FQSSBTdHJpbmdDaGFyYWN0
ZXJJdGVyYXRvciA6IHB1YmxpYyBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAg
LyoqCisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJlZmVy
cmVkIHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlzIGNv
cGllZC4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyB0aGUgd2hvbGUgc3RyaW5nLCBhbmQg
dGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGlzIDAuCisgICAqIEBwYXJhbSB0ZXh0U3RyIFRoZSB1bmlj
b2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSBhbiBpdGVyYXRvcgorICAgKiBAc3RhYmxlIElDVSAy
LjAKKyAgICovCisgIFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0IFVuaWNvZGVTdHJpbmcm
IHRleHRTdHIpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0aGUgVW5p
Y29kZVN0cmluZyByZWZlcnJlZCB0byBieSAidGV4dFN0ciIuCisgICAqIFRoZSBpdGVyYXRpb24g
cmFuZ2UgaXMgdGhlIHdob2xlIHN0cmluZywgYW5kIHRoZSBzdGFydGluZworICAgKiBwb3NpdGlv
biBpcyBzcGVjaWZpZWQgYnkgInRleHRQb3MiLiAgSWYgInRleHRQb3MiIGlzIG91dHNpZGUgdGhl
IHZhbGlkCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgdGhlIGJlaGF2aW9yIG9mIHRoaXMgb2JqZWN0
IGlzIHVuZGVmaW5lZC4KKyAgICogQHBhcmFtIHRleHRTdHIgVGhlIHVuaWNvZGUgc3RyaW5nIHVz
ZWQgdG8gY3JlYXRlIGFuIGl0ZXJhdG9yCisgICAqIEBwYXJhbSB0ZXh0UG9zIFRoZSBzdGFydGlu
ZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8K
KyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYgICAgdGV4dFN0
ciwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dFBvcyk7CisKKyAgLyoq
CisgICAqIENyZWF0ZSBhbiBpdGVyYXRvciBvdmVyIHRoZSBVbmljb2RlU3RyaW5nIHJlZmVycmVk
IHRvIGJ5ICJ0ZXh0U3RyIi4KKyAgICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGlzIGNvcGll
ZC4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBiZWdpbnMgd2l0aCB0aGUgY29kZSB1bml0IHNw
ZWNpZmllZCBieQorICAgKiAidGV4dEJlZ2luIiBhbmQgZW5kcyB3aXRoIHRoZSBjb2RlIHVuaXQg
QkVGT1JFIHRoZSBjb2RlIHVuaXQgc3BlY2ZpZWQKKyAgICogYnkgInRleHRFbmQiLiAgVGhlIHN0
YXJ0aW5nIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSAidGV4dFBvcyIuICBJZgorICAgKiAidGV4
dEJlZ2luIiBhbmQgInRleHRFbmQiIGRvbid0IGZvcm0gYSB2YWxpZCByYW5nZSBvbiAidGV4dCIg
KGkuZS4sCisgICAqIHRleHRCZWdpbiA+PSB0ZXh0RW5kIG9yIGVpdGhlciBpcyBuZWdhdGl2ZSBv
ciBncmVhdGVyIHRoYW4gdGV4dC5zaXplKCkpLAorICAgKiBvciAidGV4dFBvcyIgaXMgb3V0c2lk
ZSB0aGUgcmFuZ2UgZGVmaW5lZCBieSAidGV4dEJlZ2luIiBhbmQgInRleHRFbmQiLAorICAgKiB0
aGUgYmVoYXZpb3Igb2YgdGhpcyBpdGVyYXRvciBpcyB1bmRlZmluZWQuCisgICAqIEBwYXJhbSB0
ZXh0U3RyICAgIFRoZSB1bmljb2RlIHN0cmluZyB1c2VkIHRvIGNyZWF0ZSB0aGUgU3RyaW5nQ2hh
cmFjdGVySXRlcmF0b3IKKyAgICogQHBhcmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBvc2l0aW9u
IG9mIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhlIGVuZCBw
b3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSB0ZXh0UG9zICAgIFRo
ZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgaXRlcmF0aW9uCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgU3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVW5pY29kZVN0cmluZyYg
ICAgdGV4dFN0ciwKKyAgICAgICAgICAgICAgaW50MzJfdCAgICAgICAgICAgICAgdGV4dEJlZ2lu
LAorICAgICAgICAgICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0RW5kLAorICAgICAgICAg
ICAgICBpbnQzMl90ICAgICAgICAgICAgICB0ZXh0UG9zKTsKKworICAvKioKKyAgICogQ29weSBj
b25zdHJ1Y3Rvci4gIFRoZSBuZXcgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSByYW5n
ZQorICAgKiBvZiB0aGUgc2FtZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRpYWwgcG9z
aXRpb24gaXMgdGhlCisgICAqIHNhbWUgYXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAg
ICogVGhlIFVuaWNvZGVTdHJpbmcgb2JqZWN0IGluICJ0aGF0IiBpcyBjb3BpZWQuCisgICAqIEBw
YXJhbSB0aGF0IFRoZSBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb3BpZWQKKyAgICog
QHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBT
dHJpbmdDaGFyYWN0ZXJJdGVyYXRvciYgIHRoYXQpOworCisgIC8qKgorICAgKiBEZXN0cnVjdG9y
LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgflN0cmluZ0NoYXJhY3Rl
ckl0ZXJhdG9yKCk7CisKKyAgLyoqCisgICAqIEFzc2lnbm1lbnQgb3BlcmF0b3IuICAqdGhpcyBp
cyBhbHRlcmVkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgc2FtZQorICAgKiByYW5nZSBvZiB0aGUgc2Ft
ZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgcmVmZXJzIHRvIHRoZSBzYW1lCisgICAqIGNoYXJhY3Rl
ciB3aXRoaW4gdGhhdCBzdHJpbmcgYXMgInRoYXQiIGRvZXMuCisgICAqIEBwYXJhbSB0aGF0IFRo
ZSBvYmplY3QgdG8gYmUgY29waWVkLgorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG9i
amVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBTdHJpbmdDaGFyYWN0ZXJJdGVy
YXRvciYKKyAgb3BlcmF0b3I9KGNvbnN0IFN0cmluZ0NoYXJhY3Rlckl0ZXJhdG9yJiAgICB0aGF0
KTsKKworICAvKioKKyAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBv
dmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50
aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rlci4KKyAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRD
aGFyYWN0ZXJJdGVyYXRvciB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKKyAgICogQHJldHVy
biB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9mIHRo
ZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJhY3Rl
ci4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVCb29sICAgICAgICAg
IG9wZXJhdG9yPT0oY29uc3QgRm9yd2FyZENoYXJhY3Rlckl0ZXJhdG9yJiB0aGF0KSBjb25zdDsK
KworICAvKioKKyAgICogUmV0dXJucyBhIG5ldyBTdHJpbmdDaGFyYWN0ZXJJdGVyYXRvciByZWZl
cnJpbmcgdG8gdGhlIHNhbWUKKyAgICogY2hhcmFjdGVyIGluIHRoZSBzYW1lIHJhbmdlIG9mIHRo
ZSBzYW1lIHN0cmluZyBhcyB0aGlzIG9uZS4gIFRoZQorICAgKiBjYWxsZXIgbXVzdCBkZWxldGUg
dGhlIG5ldyBpdGVyYXRvci4KKyAgICogQHJldHVybiB0aGUgbmV3bHkgY2xvbmVkIG9iamVjdC4K
KyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIENoYXJhY3Rlckl0ZXJhdG9y
KiBjbG9uZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8g
aXRlcmF0ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJhbSBuZXdUZXh0IFRo
ZSBzdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIHZvaWQgc2V0VGV4dChjb25zdCBVbmljb2RlU3RyaW5nJiBuZXdUZXh0KTsKKworICAvKioK
KyAgICogQ29waWVzIHRoZSBVbmljb2RlU3RyaW5nIHVuZGVyIGl0ZXJhdGlvbiBpbnRvIHRoZSBV
bmljb2RlU3RyaW5nCisgICAqIHJlZmVycmVkIHRvIGJ5ICJyZXN1bHQiLiAgRXZlbiBpZiB0aGlz
IGl0ZXJhdG9yIGl0ZXJhdGVzIGFjcm9zcworICAgKiBvbmx5IGEgcGFydCBvZiB0aGlzIHN0cmlu
ZywgdGhlIHdob2xlIHN0cmluZyBpcyBjb3BpZWQuCisgICAqIEBwYXJhbSByZXN1bHQgUmVjZWl2
ZXMgYSBjb3B5IG9mIHRoZSB0ZXh0IHVuZGVyIGl0ZXJhdGlvbi4KKyAgICogQHN0YWJsZSBJQ1Ug
Mi4wCisgICAqLworICB2aXJ0dWFsIHZvaWQgICAgICAgICAgICBnZXRUZXh0KFVuaWNvZGVTdHJp
bmcmIHJlc3VsdCk7CisKKyAgLyoqCisgICAqIFJldHVybiBhIGNsYXNzIElEIGZvciB0aGlzIG9i
amVjdCAobm90IHJlYWxseSBwdWJsaWMpCisgICAqIEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhp
cyBvYmplY3QuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2xhc3NJ
RCAgICAgICAgIGdldER5bmFtaWNDbGFzc0lEKHZvaWQpIGNvbnN0OworCisgIC8qKgorICAgKiBS
ZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcyAobm90IHJlYWxseSBwdWJsaWMpCisgICAq
IEByZXR1cm4gYSBjbGFzcyBJRCBmb3IgdGhpcyBjbGFzcworICAgKiBAc3RhYmxlIElDVSAyLjAK
KyAgICovCisgIHN0YXRpYyBVQ2xhc3NJRCAgIFVfRVhQT1JUMiBnZXRTdGF0aWNDbGFzc0lEKHZv
aWQpOworCitwcm90ZWN0ZWQ6CisgIC8qKgorICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yLCBpdGVy
YXRpb24gb3ZlciBlbXB0eSBzdHJpbmcuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAg
U3RyaW5nQ2hhcmFjdGVySXRlcmF0b3IoKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0
b3IgdG8gaXRlcmF0ZSBvdmVyIHRoZSBwcm92aWRlZCBzdHJpbmcuCisgICAqIEBwYXJhbSBuZXdU
ZXh0IFRoZSBzdHJpbmcgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0gbmV3VGV4dExl
bmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBTdHJpbmcKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAq
LworICB2b2lkIHNldFRleHQoY29uc3QgVUNoYXIqIG5ld1RleHQsIGludDMyX3QgbmV3VGV4dExl
bmd0aCk7CisKKyAgLyoqCisgICAqIENvcHkgb2YgdGhlIGl0ZXJhdGVkIHN0cmluZyBvYmplY3Qu
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgVW5pY29kZVN0cmluZyAgICAgICAgICAg
IHRleHQ7CisKK307CisKK1VfTkFNRVNQQUNFX0VORAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL3VjYXNlbWFwLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Vj
YXNlbWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM3ZTE2NTg4Njk3ZjFhOTMwMTkxZWUzZGY4MTZjNjNiN2Jk
MzhjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNhc2VtYXAu
aApAQCAtMCwwICsxLDQyMyBAQAorLyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogICBD
b3B5cmlnaHQgKEMpIDIwMDUtMjAxMiwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcwor
KiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorKgorKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVjYXNlbWFwLmgKKyogICBlbmNv
ZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVu
dGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAyMDA1bWF5MDYKKyogICBjcmVhdGVkIGJ5OiBN
YXJrdXMgVy4gU2NoZXJlcgorKgorKiAgIENhc2UgbWFwcGluZyBzZXJ2aWNlIG9iamVjdCBhbmQg
ZnVuY3Rpb25zIHVzaW5nIGl0LgorKi8KKworI2lmbmRlZiBfX1VDQVNFTUFQX0hfXworI2RlZmlu
ZSBfX1VDQVNFTUFQX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRl
ICJ1bmljb2RlL3VzdHJpbmcuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgor
CisvKioKKyAqIFxmaWxlCisgKiBcYnJpZWYgQyBBUEk6IFVuaWNvZGUgY2FzZSBtYXBwaW5nIGZ1
bmN0aW9ucyB1c2luZyBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICoKKyAqIFRoZSBzZXJ2
aWNlIG9iamVjdCB0YWtlcyBjYXJlIG9mIG1lbW9yeSBhbGxvY2F0aW9ucywgZGF0YSBsb2FkaW5n
LCBhbmQgc2V0dXAKKyAqIGZvciB0aGUgYXR0cmlidXRlcywgYXMgdXN1YWwuCisgKgorICogQ3Vy
cmVudGx5LCB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBoZXJlIGRvZXMgbm90IG92ZXJsYXAg
d2l0aCB1Y2hhci5oCisgKiBhbmQgdXN0cmluZy5oLCBleGNlcHQgZm9yIHVjYXNlbWFwX3RvVGl0
bGUoKS4KKyAqCisgKiB1Y2FzZW1hcF91dGY4WFlaKCkgZnVuY3Rpb25zIG9wZXJhdGUgZGlyZWN0
bHkgb24gVVRGLTggc3RyaW5ncy4KKyAqLworCisvKioKKyAqIFVDYXNlTWFwIGlzIGFuIG9wYXF1
ZSBzZXJ2aWNlIG9iamVjdCBmb3IgbmV3ZXIgSUNVIGNhc2UgbWFwcGluZyBmdW5jdGlvbnMuCisg
KiBPbGRlciBmdW5jdGlvbnMgZGlkIG5vdCB1c2UgYSBzZXJ2aWNlIG9iamVjdC4KKyAqIEBzdGFi
bGUgSUNVIDMuNAorICovCitzdHJ1Y3QgVUNhc2VNYXA7Cit0eXBlZGVmIHN0cnVjdCBVQ2FzZU1h
cCBVQ2FzZU1hcDsgLyoqPCBDIHR5cGVkZWYgZm9yIHN0cnVjdCBVQ2FzZU1hcC4gQHN0YWJsZSBJ
Q1UgMy40ICovCisKKy8qKgorICogT3BlbiBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0IGZvciBh
IGxvY2FsZSBhbmQgYSBzZXQgb2Ygb3B0aW9ucy4KKyAqIFRoZSBsb2NhbGUgSUQgYW5kIG9wdGlv
bnMgYXJlIHByZXByb2Nlc3NlZCBzbyB0aGF0IGZ1bmN0aW9ucyB1c2luZyB0aGUKKyAqIHNlcnZp
Y2Ugb2JqZWN0IG5lZWQgbm90IHByb2Nlc3MgdGhlbSBpbiBlYWNoIGNhbGwuCisgKgorICogQHBh
cmFtIGxvY2FsZSBJQ1UgbG9jYWxlIElELCB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQKKyAq
ICAgICAgICAgICAgICAgdXBwZXItL2xvd2VyLS90aXRsZS1jYXNpbmcgYWNjb3JkaW5nIHRvIHRo
ZSBVbmljb2RlIHN0YW5kYXJkLgorICogICAgICAgICAgICAgICBVc3VhbCBzZW1hbnRpY3M6ICIi
PXJvb3QsIE5VTEw9ZGVmYXVsdCBsb2NhbGUsIGV0Yy4KKyAqIEBwYXJhbSBvcHRpb25zIE9wdGlv
bnMgYml0IHNldCwgdXNlZCBmb3IgY2FzZSBmb2xkaW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMu
CisgKiAgICAgICAgICAgICAgICBTYW1lIGZsYWdzIGFzIGZvciB1X2ZvbGRDYXNlKCksIHVfc3Ry
Rm9sZENhc2UoKSwKKyAqICAgICAgICAgICAgICAgIHVfc3RyQ2FzZUNvbXBhcmUoKSwgZXRjLgor
ICogICAgICAgICAgICAgICAgVXNlIDAgb3IgVV9GT0xEX0NBU0VfREVGQVVMVCBmb3IgZGVmYXVs
dCBiZWhhdmlvci4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVy
IHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBtdXN0
IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJl
dHVybiBQb2ludGVyIHRvIGEgVUNhc2VNYXAgc2VydmljZSBvYmplY3QsIGlmIHN1Y2Nlc3NmdWwu
CisgKgorICogQHNlZSBVX0ZPTERfQ0FTRV9ERUZBVUxUCisgKiBAc2VlIFVfRk9MRF9DQVNFX0VY
Q0xVREVfU1BFQ0lBTF9JCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHNl
ZSBVX1RJVExFQ0FTRV9OT19CUkVBS19BREpVU1RNRU5UCisgKiBAc3RhYmxlIElDVSAzLjQKKyAq
LworVV9TVEFCTEUgVUNhc2VNYXAgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX29wZW4oY29uc3QgY2hh
ciAqbG9jYWxlLCB1aW50MzJfdCBvcHRpb25zLCBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKwor
LyoqCisgKiBDbG9zZSBhIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGNzbSBP
YmplY3QgdG8gYmUgY2xvc2VkLgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIHZv
aWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9jbG9zZShVQ2FzZU1hcCAqY3NtKTsKKworI2lmIFVfU0hP
V19DUExVU1BMVVNfQVBJCisKK1VfTkFNRVNQQUNFX0JFR0lOCisKKy8qKgorICogXGNsYXNzIExv
Y2FsVUNhc2VNYXBQb2ludGVyCisgKiAiU21hcnQgcG9pbnRlciIgY2xhc3MsIGNsb3NlcyBhIFVD
YXNlTWFwIHZpYSB1Y2FzZW1hcF9jbG9zZSgpLgorICogRm9yIG1vc3QgbWV0aG9kcyBzZWUgdGhl
IExvY2FsUG9pbnRlckJhc2UgYmFzZSBjbGFzcy4KKyAqCisgKiBAc2VlIExvY2FsUG9pbnRlckJh
c2UKKyAqIEBzZWUgTG9jYWxQb2ludGVyCisgKiBAc3RhYmxlIElDVSA0LjQKKyAqLworVV9ERUZJ
TkVfTE9DQUxfT1BFTl9QT0lOVEVSKExvY2FsVUNhc2VNYXBQb2ludGVyLCBVQ2FzZU1hcCwgdWNh
c2VtYXBfY2xvc2UpOworCitVX05BTUVTUEFDRV9FTkQKKworI2VuZGlmCisKKy8qKgorICogR2V0
IHRoZSBsb2NhbGUgSUQgdGhhdCBpcyB1c2VkIGZvciBsYW5ndWFnZS1kZXBlbmRlbnQgY2FzZSBt
YXBwaW5ncy4KKyAqIEBwYXJhbSBjc20gVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcmV0
dXJuIGxvY2FsZSBJRAorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGNvbnN0IGNo
YXIgKiBVX0VYUE9SVDIKK3VjYXNlbWFwX2dldExvY2FsZShjb25zdCBVQ2FzZU1hcCAqY3NtKTsK
KworLyoqCisgKiBHZXQgdGhlIG9wdGlvbnMgYml0IHNldCB0aGF0IGlzIHVzZWQgZm9yIGNhc2Ug
Zm9sZGluZyBhbmQgc3RyaW5nIGNvbXBhcmlzb25zLgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBz
ZXJ2aWNlIG9iamVjdC4KKyAqIEByZXR1cm4gb3B0aW9ucyBiaXQgc2V0CisgKiBAc3RhYmxlIElD
VSAzLjQKKyAqLworVV9TVEFCTEUgdWludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRPcHRp
b25zKGNvbnN0IFVDYXNlTWFwICpjc20pOworCisvKioKKyAqIFNldCB0aGUgbG9jYWxlIElEIHRo
YXQgaXMgdXNlZCBmb3IgbGFuZ3VhZ2UtZGVwZW5kZW50IGNhc2UgbWFwcGluZ3MuCisgKgorICog
QHBhcmFtIGNzbSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBsb2NhbGUgTG9j
YWxlIElELCBzZWUgdWNhc2VtYXBfb3BlbigpLgorICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBi
ZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAg
ICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0
aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF9vcGVuCisgKiBAc3RhYmxlIElDVSAzLjQK
KyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldExvY2FsZShVQ2FzZU1h
cCAqY3NtLCBjb25zdCBjaGFyICpsb2NhbGUsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisv
KioKKyAqIFNldCB0aGUgb3B0aW9ucyBiaXQgc2V0IHRoYXQgaXMgdXNlZCBmb3IgY2FzZSBmb2xk
aW5nIGFuZCBzdHJpbmcgY29tcGFyaXNvbnMuCisgKgorICogQHBhcmFtIGNzbSBVQ2FzZU1hcCBz
ZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgYml0IHNldCwgc2VlIHVj
YXNlbWFwX29wZW4oKS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2lu
dGVyIHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgICB3aGljaCBt
dXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3JlIHRoZSBmdW5jdGlvbiBjYWxsLgorICoK
KyAqIEBzZWUgdWNhc2VtYXBfb3BlbgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxF
IHZvaWQgVV9FWFBPUlQyCit1Y2FzZW1hcF9zZXRPcHRpb25zKFVDYXNlTWFwICpjc20sIHVpbnQz
Ml90IG9wdGlvbnMsIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIERvIG5vdCBs
b3dlcmNhc2Ugbm9uLWluaXRpYWwgcGFydHMgb2Ygd29yZHMgd2hlbiB0aXRsZWNhc2luZy4KKyAq
IE9wdGlvbiBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQSXMgdGhhdCB0YWtlIGFuIG9wdGlvbnMgYml0
IHNldC4KKyAqCisgKiBCeSBkZWZhdWx0LCB0aXRsZWNhc2luZyB3aWxsIHRpdGxlY2FzZSB0aGUg
Zmlyc3QgY2FzZWQgY2hhcmFjdGVyCisgKiBvZiBhIHdvcmQgYW5kIGxvd2VyY2FzZSBhbGwgb3Ro
ZXIgY2hhcmFjdGVycy4KKyAqIFdpdGggdGhpcyBvcHRpb24sIHRoZSBvdGhlciBjaGFyYWN0ZXJz
IHdpbGwgbm90IGJlIG1vZGlmaWVkLgorICoKKyAqIEBzZWUgdWNhc2VtYXBfc2V0T3B0aW9ucwor
ICogQHNlZSB1Y2FzZW1hcF90b1RpdGxlCisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisg
KiBAc2VlIFVuaWNvZGVTdHJpbmc6OnRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCisj
ZGVmaW5lIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRSAweDEwMAorCisvKioKKyAqIERvIG5vdCBh
ZGp1c3QgdGhlIHRpdGxlY2FzaW5nIGluZGV4ZXMgZnJvbSBCcmVha0l0ZXJhdG9yOjpuZXh0KCkg
aW5kZXhlczsKKyAqIHRpdGxlY2FzZSBleGFjdGx5IHRoZSBjaGFyYWN0ZXJzIGF0IGJyZWFrcyBm
cm9tIHRoZSBpdGVyYXRvci4KKyAqIE9wdGlvbiBiaXQgZm9yIHRpdGxlY2FzaW5nIEFQSXMgdGhh
dCB0YWtlIGFuIG9wdGlvbnMgYml0IHNldC4KKyAqCisgKiBCeSBkZWZhdWx0LCB0aXRsZWNhc2lu
ZyB3aWxsIHRha2UgZWFjaCBicmVhayBpdGVyYXRvciBpbmRleCwKKyAqIGFkanVzdCBpdCBieSBs
b29raW5nIGZvciB0aGUgbmV4dCBjYXNlZCBjaGFyYWN0ZXIsIGFuZCB0aXRsZWNhc2UgdGhhdCBv
bmUuCisgKiBPdGhlciBjaGFyYWN0ZXJzIGFyZSBsb3dlcmNhc2VkLgorICoKKyAqIFRoaXMgZm9s
bG93cyBVbmljb2RlIDQgJiA1IHNlY3Rpb24gMy4xMyBEZWZhdWx0IENhc2UgT3BlcmF0aW9uczoK
KyAqCisgKiBSMyAgdG9UaXRsZWNhc2UoWCk6IEZpbmQgdGhlIHdvcmQgYm91bmRhcmllcyBiYXNl
ZCBvbiBVbmljb2RlIFN0YW5kYXJkIEFubmV4CisgKiAjMjksICJUZXh0IEJvdW5kYXJpZXMuIiBC
ZXR3ZWVuIGVhY2ggcGFpciBvZiB3b3JkIGJvdW5kYXJpZXMsIGZpbmQgdGhlIGZpcnN0CisgKiBj
YXNlZCBjaGFyYWN0ZXIgRi4gSWYgRiBleGlzdHMsIG1hcCBGIHRvIGRlZmF1bHRfdGl0bGUoRik7
IHRoZW4gbWFwIGVhY2gKKyAqIHN1YnNlcXVlbnQgY2hhcmFjdGVyIEMgdG8gZGVmYXVsdF9sb3dl
cihDKS4KKyAqCisgKiBAc2VlIHVjYXNlbWFwX3NldE9wdGlvbnMKKyAqIEBzZWUgdWNhc2VtYXBf
dG9UaXRsZQorICogQHNlZSB1Y2FzZW1hcF91dGY4VG9UaXRsZQorICogQHNlZSBVbmljb2RlU3Ry
aW5nOjp0b1RpdGxlCisgKiBAc2VlIFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHN0YWJs
ZSBJQ1UgMy44CisgKi8KKyNkZWZpbmUgVV9USVRMRUNBU0VfTk9fQlJFQUtfQURKVVNUTUVOVCAw
eDIwMAorCisjaWYgIVVDT05GSUdfTk9fQlJFQUtfSVRFUkFUSU9OCisKKy8qKgorICogR2V0IHRo
ZSBicmVhayBpdGVyYXRvciB0aGF0IGlzIHVzZWQgZm9yIHRpdGxlY2FzaW5nLgorICogRG8gbm90
IG1vZGlmeSB0aGUgcmV0dXJuZWQgYnJlYWsgaXRlcmF0b3IuCisgKiBAcGFyYW0gY3NtIFVDYXNl
TWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHJldHVybiB0aXRsZWNhc2luZyBicmVhayBpdGVyYXRv
cgorICogQHN0YWJsZSBJQ1UgMy44CisgKi8KK1VfU1RBQkxFIGNvbnN0IFVCcmVha0l0ZXJhdG9y
ICogVV9FWFBPUlQyCit1Y2FzZW1hcF9nZXRCcmVha0l0ZXJhdG9yKGNvbnN0IFVDYXNlTWFwICpj
c20pOworCisvKioKKyAqIFNldCB0aGUgYnJlYWsgaXRlcmF0b3IgdGhhdCBpcyB1c2VkIGZvciB0
aXRsZWNhc2luZy4KKyAqIFRoZSBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdCByZWxlYXNlcyBhIHBy
ZXZpb3VzbHkgc2V0IGJyZWFrIGl0ZXJhdG9yCisgKiBhbmQgImFkb3B0cyIgdGhpcyBuZXcgb25l
LCB0YWtpbmcgb3duZXJzaGlwIG9mIGl0LgorICogSXQgd2lsbCBiZSByZWxlYXNlZCBpbiBhIHN1
YnNlcXVlbnQgY2FsbCB0byB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCkKKyAqIG9yIHVjYXNl
bWFwX2Nsb3NlKCkuCisgKgorICogQnJlYWsgaXRlcmF0b3Igb3BlcmF0aW9ucyBhcmUgbm90IHRo
cmVhZC1zYWZlLiBUaGVyZWZvcmUsIHRpdGxlY2FzaW5nCisgKiBmdW5jdGlvbnMgdXNlIG5vbi1j
b25zdCBVQ2FzZU1hcCBvYmplY3RzLiBJdCBpcyBub3QgcG9zc2libGUgdG8gdGl0bGVjYXNlCisg
KiBzdHJpbmdzIGNvbmN1cnJlbnRseSB1c2luZyB0aGUgc2FtZSBVQ2FzZU1hcC4KKyAqCisgKiBA
cGFyYW0gY3NtIFVDYXNlTWFwIHNlcnZpY2Ugb2JqZWN0LgorICogQHBhcmFtIGl0ZXJUb0Fkb3B0
IEJyZWFrIGl0ZXJhdG9yIHRvIGJlIGFkb3B0ZWQgZm9yIHRpdGxlY2FzaW5nLgorICogQHBhcmFt
IHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29kZSB2YWx1
ZSwKKyAqICAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFpbHVy
ZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKgorICogQHNlZSB1Y2FzZW1hcF90b1RpdGxl
CisgKiBAc2VlIHVjYXNlbWFwX3V0ZjhUb1RpdGxlCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLwor
VV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VjYXNlbWFwX3NldEJyZWFrSXRlcmF0b3IoVUNhc2VN
YXAgKmNzbSwgVUJyZWFrSXRlcmF0b3IgKml0ZXJUb0Fkb3B0LCBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKTsKKworLyoqCisgKiBUaXRsZWNhc2UgYSBVVEYtMTYgc3RyaW5nLiBUaGlzIGZ1bmN0aW9u
IGlzIGFsbW9zdCBhIGR1cGxpY2F0ZSBvZiB1X3N0clRvVGl0bGUoKSwKKyAqIGV4Y2VwdCB0aGF0
IGl0IHRha2VzIHVjYXNlbWFwX3NldE9wdGlvbnMoKSBpbnRvIGFjY291bnQgYW5kIGhhcyBwZXJm
b3JtYW5jZQorICogYWR2YW50YWdlcyBmcm9tIGJlaW5nIGFibGUgdG8gdXNlIGEgVUNhc2VNYXAg
b2JqZWN0IGZvciBtdWx0aXBsZSBjYXNlIG1hcHBpbmcKKyAqIG9wZXJhdGlvbnMsIHNhdmluZyBz
ZXR1cCB0aW1lLgorICoKKyAqIENhc2luZyBpcyBsb2NhbGUtZGVwZW5kZW50IGFuZCBjb250ZXh0
LXNlbnNpdGl2ZS4KKyAqIFRpdGxlY2FzaW5nIHVzZXMgYSBicmVhayBpdGVyYXRvciB0byBmaW5k
IHRoZSBmaXJzdCBjaGFyYWN0ZXJzIG9mIHdvcmRzCisgKiB0aGF0IGFyZSB0byBiZSB0aXRsZWNh
c2VkLiBJdCB0aXRsZWNhc2VzIHRob3NlIGNoYXJhY3RlcnMgYW5kIGxvd2VyY2FzZXMKKyAqIGFs
bCBvdGhlcnMuIChUaGlzIGNhbiBiZSBtb2RpZmllZCB3aXRoIHVjYXNlbWFwX3NldE9wdGlvbnMo
KS4pCisgKgorICogTm90ZTogVGhpcyBmdW5jdGlvbiB0YWtlcyBhIG5vbi1jb25zdCBVQ2FzZU1h
cCBwb2ludGVyIGJlY2F1c2UgaXQgd2lsbAorICogb3BlbiBhIGRlZmF1bHQgYnJlYWsgaXRlcmF0
b3IgaWYgbm8gYnJlYWsgaXRlcmF0b3Igd2FzIHNldCB5ZXQsCisgKiBhbmQgZWZmZWN0aXZlbHkg
Y2FsbCB1Y2FzZW1hcF9zZXRCcmVha0l0ZXJhdG9yKCk7CisgKiBhbHNvIGJlY2F1c2UgdGhlIGJy
ZWFrIGl0ZXJhdG9yIGlzIHN0YXRlZnVsIGFuZCB3aWxsIGJlIG1vZGlmaWVkIGR1cmluZworICog
dGhlIGl0ZXJhdGlvbi4KKyAqCisgKiBUaGUgdGl0bGVjYXNlIGJyZWFrIGl0ZXJhdG9yIGNhbiBi
ZSBwcm92aWRlZCB0byBjdXN0b21pemUgZm9yIGFyYml0cmFyeQorICogc3R5bGVzLCB1c2luZyBy
dWxlcyBhbmQgZGljdGlvbmFyaWVzIGJleW9uZCB0aGUgc3RhbmRhcmQgaXRlcmF0b3JzLgorICog
VGhlIHN0YW5kYXJkIHRpdGxlY2FzZSBpdGVyYXRvciBmb3IgdGhlIHJvb3QgbG9jYWxlIGltcGxl
bWVudHMgdGhlCisgKiBhbGdvcml0aG0gb2YgVW5pY29kZSBUUiAyMS4KKyAqCisgKiBUaGlzIGZ1
bmN0aW9uIHVzZXMgb25seSB0aGUgc2V0VVRleHQoKSwgZmlyc3QoKSwgbmV4dCgpIGFuZCBjbG9z
ZSgpIG1ldGhvZHMgb2YgdGhlCisgKiBwcm92aWRlZCBicmVhayBpdGVyYXRvci4KKyAqCisgKiBU
aGUgcmVzdWx0IG1heSBiZSBsb25nZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAq
IFRoZSBzb3VyY2Ugc3RyaW5nIGFuZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92
ZXJsYXAuCisgKgorICogQHBhcmFtIGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4g
VGhpcyBwb2ludGVyIGlzIG5vbi1jb25zdCEKKyAqICAgICAgICAgICAgICAgICAgU2VlIHRoZSBu
b3RlIGFib3ZlIGZvciBkZXRhaWxzLgorICogQHBhcmFtIGRlc3QgICAgICBBIGJ1ZmZlciBmb3Ig
dGhlIHJlc3VsdCBzdHJpbmcuIFRoZSByZXN1bHQgd2lsbCBiZSBOVUwtdGVybWluYXRlZCBpZgor
ICogICAgICAgICAgICAgICAgICB0aGUgYnVmZmVyIGlzIGxhcmdlIGVub3VnaC4KKyAqICAgICAg
ICAgICAgICAgICAgVGhlIGNvbnRlbnRzIGlzIHVuZGVmaW5lZCBpbiBjYXNlIG9mIGZhaWx1cmUu
CisgKiBAcGFyYW0gZGVzdENhcGFjaXR5IFRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBv
ZiBieXRlcykuIElmIGl0IGlzIDAsIHRoZW4KKyAqICAgICAgICAgICAgICAgICAgZGVzdCBtYXkg
YmUgTlVMTCBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gdGhlIGxlbmd0aCBvZiB0
aGUgcmVzdWx0CisgKiAgICAgICAgICAgICAgICAgIHdpdGhvdXQgd3JpdGluZyBhbnkgb2YgdGhl
IHJlc3VsdCBzdHJpbmcuCisgKiBAcGFyYW0gc3JjICAgICAgIFRoZSBvcmlnaW5hbCBzdHJpbmcu
CisgKiBAcGFyYW0gc3JjTGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHN0cmluZy4g
SWYgLTEsIHRoZW4gc3JjIG11c3QgYmUgTlVMLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gcEVycm9y
Q29kZSBNdXN0IGJlIGEgdmFsaWQgcG9pbnRlciB0byBhbiBlcnJvciBjb2RlIHZhbHVlLAorICog
ICAgICAgICAgICAgICAgICB3aGljaCBtdXN0IG5vdCBpbmRpY2F0ZSBhIGZhaWx1cmUgYmVmb3Jl
IHRoZSBmdW5jdGlvbiBjYWxsLgorICogQHJldHVybiBUaGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQg
c3RyaW5nLCBpZiBzdWNjZXNzZnVsIC0gb3IgaW4gY2FzZSBvZiBhIGJ1ZmZlciBvdmVyZmxvdywK
KyAqICAgICAgICAgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiBkZXN0Q2Fw
YWNpdHkuCisgKgorICogQHNlZSB1X3N0clRvVGl0bGUKKyAqIEBzdGFibGUgSUNVIDMuOAorICov
CitVX1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdG9UaXRsZShVQ2FzZU1hcCAq
Y3NtLAorICAgICAgICAgICAgICAgICBVQ2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHks
CisgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAor
ICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCisKKy8q
KgorICogTG93ZXJjYXNlIHRoZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICogQ2Fz
aW5nIGlzIGxvY2FsZS1kZXBlbmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGhlIHJl
c3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUg
c291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFw
LgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBA
cGFyYW0gZGVzdCAgICAgIEEgYnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3Vs
dCB3aWxsIGJlIE5VTC10ZXJtaW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZm
ZXIgaXMgbGFyZ2UgZW5vdWdoLgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMg
dW5kZWZpbmVkIGluIGNhc2Ugb2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhl
IHNpemUgb2YgdGhlIGJ1ZmZlciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgor
ICogICAgICAgICAgICAgICAgICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2ls
bCBvbmx5IHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAg
ICAgd2l0aG91dCB3cml0aW5nIGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBz
cmMgICAgICAgVGhlIG9yaWdpbmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxl
bmd0aCBvZiB0aGUgb3JpZ2luYWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwt
dGVybWluYXRlZC4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVy
IHRvIGFuIGVycm9yIGNvZGUgdmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qg
bm90IGluZGljYXRlIGEgZmFpbHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0
dXJuIFRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBp
biBjYXNlIG9mIGEgYnVmZmVyIG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0
IHdpbGwgYmUgZ3JlYXRlciB0aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9M
b3dlcgorICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQy
Cit1Y2FzZW1hcF91dGY4VG9Mb3dlcihjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAg
ICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAg
ICAgICAgICAgVUVycm9yQ29kZSAqcEVycm9yQ29kZSk7CisKKy8qKgorICogVXBwZXJjYXNlIHRo
ZSBjaGFyYWN0ZXJzIGluIGEgVVRGLTggc3RyaW5nLgorICogQ2FzaW5nIGlzIGxvY2FsZS1kZXBl
bmRlbnQgYW5kIGNvbnRleHQtc2Vuc2l0aXZlLgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2Vy
IG9yIHNob3J0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQg
dGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBj
c20gICAgICAgVUNhc2VNYXAgc2VydmljZSBvYmplY3QuCisgKiBAcGFyYW0gZGVzdCAgICAgIEEg
YnVmZmVyIGZvciB0aGUgcmVzdWx0IHN0cmluZy4gVGhlIHJlc3VsdCB3aWxsIGJlIE5VTC10ZXJt
aW5hdGVkIGlmCisgKiAgICAgICAgICAgICAgICAgIHRoZSBidWZmZXIgaXMgbGFyZ2UgZW5vdWdo
LgorICogICAgICAgICAgICAgICAgICBUaGUgY29udGVudHMgaXMgdW5kZWZpbmVkIGluIGNhc2Ug
b2YgZmFpbHVyZS4KKyAqIEBwYXJhbSBkZXN0Q2FwYWNpdHkgVGhlIHNpemUgb2YgdGhlIGJ1ZmZl
ciAobnVtYmVyIG9mIGJ5dGVzKS4gSWYgaXQgaXMgMCwgdGhlbgorICogICAgICAgICAgICAgICAg
ICBkZXN0IG1heSBiZSBOVUxMIGFuZCB0aGUgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiB0aGUg
bGVuZ3RoIG9mIHRoZSByZXN1bHQKKyAqICAgICAgICAgICAgICAgICAgd2l0aG91dCB3cml0aW5n
IGFueSBvZiB0aGUgcmVzdWx0IHN0cmluZy4KKyAqIEBwYXJhbSBzcmMgICAgICAgVGhlIG9yaWdp
bmFsIHN0cmluZy4KKyAqIEBwYXJhbSBzcmNMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgb3JpZ2lu
YWwgc3RyaW5nLiBJZiAtMSwgdGhlbiBzcmMgbXVzdCBiZSBOVUwtdGVybWluYXRlZC4KKyAqIEBw
YXJhbSBwRXJyb3JDb2RlIE11c3QgYmUgYSB2YWxpZCBwb2ludGVyIHRvIGFuIGVycm9yIGNvZGUg
dmFsdWUsCisgKiAgICAgICAgICAgICAgICAgIHdoaWNoIG11c3Qgbm90IGluZGljYXRlIGEgZmFp
bHVyZSBiZWZvcmUgdGhlIGZ1bmN0aW9uIGNhbGwuCisgKiBAcmV0dXJuIFRoZSBsZW5ndGggb2Yg
dGhlIHJlc3VsdCBzdHJpbmcsIGlmIHN1Y2Nlc3NmdWwgLSBvciBpbiBjYXNlIG9mIGEgYnVmZmVy
IG92ZXJmbG93LAorICogICAgICAgICBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgZ3JlYXRlciB0
aGFuIGRlc3RDYXBhY2l0eS4KKyAqCisgKiBAc2VlIHVfc3RyVG9VcHBlcgorICogQHN0YWJsZSBJ
Q1UgMy40CisgKi8KK1VfU1RBQkxFIGludDMyX3QgVV9FWFBPUlQyCit1Y2FzZW1hcF91dGY4VG9V
cHBlcihjb25zdCBVQ2FzZU1hcCAqY3NtLAorICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVz
dCwgaW50MzJfdCBkZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29k
ZSAqcEVycm9yQ29kZSk7CisKKyNpZiAhVUNPTkZJR19OT19CUkVBS19JVEVSQVRJT04KKworLyoq
CisgKiBUaXRsZWNhc2UgYSBVVEYtOCBzdHJpbmcuCisgKiBDYXNpbmcgaXMgbG9jYWxlLWRlcGVu
ZGVudCBhbmQgY29udGV4dC1zZW5zaXRpdmUuCisgKiBUaXRsZWNhc2luZyB1c2VzIGEgYnJlYWsg
aXRlcmF0b3IgdG8gZmluZCB0aGUgZmlyc3QgY2hhcmFjdGVycyBvZiB3b3JkcworICogdGhhdCBh
cmUgdG8gYmUgdGl0bGVjYXNlZC4gSXQgdGl0bGVjYXNlcyB0aG9zZSBjaGFyYWN0ZXJzIGFuZCBs
b3dlcmNhc2VzCisgKiBhbGwgb3RoZXJzLiAoVGhpcyBjYW4gYmUgbW9kaWZpZWQgd2l0aCB1Y2Fz
ZW1hcF9zZXRPcHRpb25zKCkuKQorICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBu
b24tY29uc3QgVUNhc2VNYXAgcG9pbnRlciBiZWNhdXNlIGl0IHdpbGwKKyAqIG9wZW4gYSBkZWZh
dWx0IGJyZWFrIGl0ZXJhdG9yIGlmIG5vIGJyZWFrIGl0ZXJhdG9yIHdhcyBzZXQgeWV0LAorICog
YW5kIGVmZmVjdGl2ZWx5IGNhbGwgdWNhc2VtYXBfc2V0QnJlYWtJdGVyYXRvcigpOworICogYWxz
byBiZWNhdXNlIHRoZSBicmVhayBpdGVyYXRvciBpcyBzdGF0ZWZ1bCBhbmQgd2lsbCBiZSBtb2Rp
ZmllZCBkdXJpbmcKKyAqIHRoZSBpdGVyYXRpb24uCisgKgorICogVGhlIHRpdGxlY2FzZSBicmVh
ayBpdGVyYXRvciBjYW4gYmUgcHJvdmlkZWQgdG8gY3VzdG9taXplIGZvciBhcmJpdHJhcnkKKyAq
IHN0eWxlcywgdXNpbmcgcnVsZXMgYW5kIGRpY3Rpb25hcmllcyBiZXlvbmQgdGhlIHN0YW5kYXJk
IGl0ZXJhdG9ycy4KKyAqIFRoZSBzdGFuZGFyZCB0aXRsZWNhc2UgaXRlcmF0b3IgZm9yIHRoZSBy
b290IGxvY2FsZSBpbXBsZW1lbnRzIHRoZQorICogYWxnb3JpdGhtIG9mIFVuaWNvZGUgVFIgMjEu
CisgKgorICogVGhpcyBmdW5jdGlvbiB1c2VzIG9ubHkgdGhlIHNldFVUZXh0KCksIGZpcnN0KCks
IG5leHQoKSBhbmQgY2xvc2UoKSBtZXRob2RzIG9mIHRoZQorICogcHJvdmlkZWQgYnJlYWsgaXRl
cmF0b3IuCisgKgorICogVGhlIHJlc3VsdCBtYXkgYmUgbG9uZ2VyIG9yIHNob3J0ZXIgdGhhbiB0
aGUgb3JpZ2luYWwuCisgKiBUaGUgc291cmNlIHN0cmluZyBhbmQgdGhlIGRlc3RpbmF0aW9uIGJ1
ZmZlciBtdXN0IG5vdCBvdmVybGFwLgorICoKKyAqIEBwYXJhbSBjc20gICAgICAgVUNhc2VNYXAg
c2VydmljZSBvYmplY3QuIFRoaXMgcG9pbnRlciBpcyBub24tY29uc3QhCisgKiAgICAgICAgICAg
ICAgICAgIFNlZSB0aGUgbm90ZSBhYm92ZSBmb3IgZGV0YWlscy4KKyAqIEBwYXJhbSBkZXN0ICAg
ICAgQSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVM
LXRlcm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBl
bm91Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4g
Y2FzZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUg
YnVmZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAg
ICAgICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJu
IHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdy
aXRpbmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUg
b3JpZ2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBv
cmlnaW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgor
ICogQHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3Ig
Y29kZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUg
YSBmYWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0
aCBvZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBi
dWZmZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVh
dGVyIHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJUb1RpdGxlCisgKiBAc2Vl
IFVfVElUTEVDQVNFX05PX0xPV0VSQ0FTRQorICogQHNlZSBVX1RJVExFQ0FTRV9OT19CUkVBS19B
REpVU1RNRU5UCisgKiBAc3RhYmxlIElDVSAzLjgKKyAqLworVV9TVEFCTEUgaW50MzJfdCBVX0VY
UE9SVDIKK3VjYXNlbWFwX3V0ZjhUb1RpdGxlKFVDYXNlTWFwICpjc20sCisgICAgICAgICAgICAg
ICAgICAgIGNoYXIgKmRlc3QsIGludDMyX3QgZGVzdENhcGFjaXR5LAorICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyICpzcmMsIGludDMyX3Qgc3JjTGVuZ3RoLAorICAgICAgICAgICAgICAg
ICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworI2VuZGlmCisKKy8qKgorICogQ2FzZS1m
b2xkcyB0aGUgY2hhcmFjdGVycyBpbiBhIFVURi04IHN0cmluZy4KKyAqCisgKiBDYXNlLWZvbGRp
bmcgaXMgbG9jYWxlLWluZGVwZW5kZW50IGFuZCBub3QgY29udGV4dC1zZW5zaXRpdmUsCisgKiBi
dXQgdGhlcmUgaXMgYW4gb3B0aW9uIGZvciB3aGV0aGVyIHRvIGluY2x1ZGUgb3IgZXhjbHVkZSBt
YXBwaW5ncyBmb3IgZG90dGVkIEkKKyAqIGFuZCBkb3RsZXNzIGkgdGhhdCBhcmUgbWFya2VkIHdp
dGggJ1QnIGluIENhc2VGb2xkaW5nLnR4dC4KKyAqCisgKiBUaGUgcmVzdWx0IG1heSBiZSBsb25n
ZXIgb3Igc2hvcnRlciB0aGFuIHRoZSBvcmlnaW5hbC4KKyAqIFRoZSBzb3VyY2Ugc3RyaW5nIGFu
ZCB0aGUgZGVzdGluYXRpb24gYnVmZmVyIG11c3Qgbm90IG92ZXJsYXAuCisgKgorICogQHBhcmFt
IGNzbSAgICAgICBVQ2FzZU1hcCBzZXJ2aWNlIG9iamVjdC4KKyAqIEBwYXJhbSBkZXN0ICAgICAg
QSBidWZmZXIgZm9yIHRoZSByZXN1bHQgc3RyaW5nLiBUaGUgcmVzdWx0IHdpbGwgYmUgTlVMLXRl
cm1pbmF0ZWQgaWYKKyAqICAgICAgICAgICAgICAgICAgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91
Z2guCisgKiAgICAgICAgICAgICAgICAgIFRoZSBjb250ZW50cyBpcyB1bmRlZmluZWQgaW4gY2Fz
ZSBvZiBmYWlsdXJlLgorICogQHBhcmFtIGRlc3RDYXBhY2l0eSBUaGUgc2l6ZSBvZiB0aGUgYnVm
ZmVyIChudW1iZXIgb2YgYnl0ZXMpLiBJZiBpdCBpcyAwLCB0aGVuCisgKiAgICAgICAgICAgICAg
ICAgIGRlc3QgbWF5IGJlIE5VTEwgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIG9ubHkgcmV0dXJuIHRo
ZSBsZW5ndGggb2YgdGhlIHJlc3VsdAorICogICAgICAgICAgICAgICAgICB3aXRob3V0IHdyaXRp
bmcgYW55IG9mIHRoZSByZXN1bHQgc3RyaW5nLgorICogQHBhcmFtIHNyYyAgICAgICBUaGUgb3Jp
Z2luYWwgc3RyaW5nLgorICogQHBhcmFtIHNyY0xlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBvcmln
aW5hbCBzdHJpbmcuIElmIC0xLCB0aGVuIHNyYyBtdXN0IGJlIE5VTC10ZXJtaW5hdGVkLgorICog
QHBhcmFtIHBFcnJvckNvZGUgTXVzdCBiZSBhIHZhbGlkIHBvaW50ZXIgdG8gYW4gZXJyb3IgY29k
ZSB2YWx1ZSwKKyAqICAgICAgICAgICAgICAgICAgd2hpY2ggbXVzdCBub3QgaW5kaWNhdGUgYSBm
YWlsdXJlIGJlZm9yZSB0aGUgZnVuY3Rpb24gY2FsbC4KKyAqIEByZXR1cm4gVGhlIGxlbmd0aCBv
ZiB0aGUgcmVzdWx0IHN0cmluZywgaWYgc3VjY2Vzc2Z1bCAtIG9yIGluIGNhc2Ugb2YgYSBidWZm
ZXIgb3ZlcmZsb3csCisgKiAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBncmVhdGVy
IHRoYW4gZGVzdENhcGFjaXR5LgorICoKKyAqIEBzZWUgdV9zdHJGb2xkQ2FzZQorICogQHNlZSB1
Y2FzZW1hcF9zZXRPcHRpb25zCisgKiBAc2VlIFVfRk9MRF9DQVNFX0RFRkFVTFQKKyAqIEBzZWUg
VV9GT0xEX0NBU0VfRVhDTFVERV9TUEVDSUFMX0kKKyAqIEBzdGFibGUgSUNVIDMuOAorICovCitV
X1NUQUJMRSBpbnQzMl90IFVfRVhQT1JUMgordWNhc2VtYXBfdXRmOEZvbGRDYXNlKGNvbnN0IFVD
YXNlTWFwICpjc20sCisgICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGVzdCwgaW50MzJfdCBk
ZXN0Q2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLCBpbnQz
Ml90IHNyY0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JD
b2RlKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJp
dGVyLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VjaHJpdGVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ1
YTk5MGY3YjdlZDNkNWJhY2YyZGE4NDcxZWY4ZmY5NDIyZjk5YwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWNocml0ZXIuaApAQCAtMCwwICsxLDM4MSBAQAorLyoK
KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyogICBDb3B5cmlnaHQgKEMpIDE5OTgtMjAwNSwgSW50ZXJuYXRpb25h
bCBCdXNpbmVzcyBNYWNoaW5lcworKiAgIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuICBBbGwgUmln
aHRzIFJlc2VydmVkLgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKi8KKworI2lmbmRlZiBVQ0hSSVRFUl9ICisj
ZGVmaW5lIFVDSFJJVEVSX0gKKworI2luY2x1ZGUgInVuaWNvZGUvdXR5cGVzLmgiCisjaW5jbHVk
ZSAidW5pY29kZS9jaGFyaXRlci5oIgorCisvKioKKyAqIFxmaWxlIAorICogXGJyaWVmIEMrKyBB
UEk6IFVDaGFyIENoYXJhY3RlciBJdGVyYXRvcgorICovCisgCitVX05BTUVTUEFDRV9CRUdJTgor
CisvKioKKyAqIEEgY29uY3JldGUgc3ViY2xhc3Mgb2YgQ2hhcmFjdGVySXRlcmF0b3IgdGhhdCBp
dGVyYXRlcyBvdmVyIHRoZQorICogY2hhcmFjdGVycyAoY29kZSB1bml0cyBvciBjb2RlIHBvaW50
cykgaW4gYSBVQ2hhciBhcnJheS4KKyAqIEl0J3MgcG9zc2libGUgbm90IG9ubHkgdG8gY3JlYXRl
IGFuCisgKiBpdGVyYXRvciB0aGF0IGl0ZXJhdGVzIG92ZXIgYW4gZW50aXJlIFVDaGFyIGFycmF5
LCBidXQgYWxzbyB0bworICogY3JlYXRlIG9uZSB0aGF0IGl0ZXJhdGVzIG92ZXIgb25seSBhIHN1
YnJhbmdlIG9mIGEgVUNoYXIgYXJyYXkKKyAqIChpdGVyYXRvcnMgb3ZlciBkaWZmZXJlbnQgc3Vi
cmFuZ2VzIG9mIHRoZSBzYW1lIFVDaGFyIGFycmF5IGRvbid0CisgKiBjb21wYXJlIGVxdWFsKS4K
KyAqIEBzZWUgQ2hhcmFjdGVySXRlcmF0b3IKKyAqIEBzZWUgRm9yd2FyZENoYXJhY3Rlckl0ZXJh
dG9yCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworY2xhc3MgVV9DT01NT05fQVBJIFVDaGFyQ2hh
cmFjdGVySXRlcmF0b3IgOiBwdWJsaWMgQ2hhcmFjdGVySXRlcmF0b3IgeworcHVibGljOgorICAv
KioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVk
IHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2Rl
Pmxlbmd0aC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBvbmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVk
ICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBkZWxldGUgaXQpLgorICAgKiBAcGFyYW0g
dGV4dFB0ciBUaGUgVUNoYXIgYXJyYXkgdG8gYmUgaXRlcmF0ZWQgb3ZlcgorICAgKiBAcGFyYW0g
bGVuZ3RoIFRoZSBsZW5ndGggb2YgdGhlIFVDaGFyIGFycmF5CisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhciogdGV4dFB0ciwg
aW50MzJfdCBsZW5ndGgpOworCisgIC8qKgorICAgKiBDcmVhdGUgYW4gaXRlcmF0b3Igb3ZlciB0
aGUgVUNoYXIgYXJyYXkgcmVmZXJyZWQgdG8gYnkgInRleHRQdHIiLgorICAgKiBUaGUgaXRlcmF0
aW9uIHJhbmdlIGlzIDAgdG8gPGNvZGU+bGVuZ3RoLTE8L2NvZGU+LgorICAgKiB0ZXh0IGlzIG9u
bHkgYWxpYXNlZCwgbm90IGFkb3B0ZWQgKHRoZQorICAgKiBkZXN0cnVjdG9yIHdpbGwgbm90IGRl
bGV0ZSBpdCkuCisgICAqIFRoZSBzdGFydGluZworICAgKiBwb3NpdGlvbiBpcyBzcGVjaWZpZWQg
YnkgInBvc2l0aW9uIi4gSWYgInBvc2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAgKiBp
dGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmluZWQu
CisgICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRkIG92ZXIK
KyAgICogQHBhcmFtIGxlbmd0aCBUaGUgbGVuZ3RoIG9mIHRoZSBVQ2hhciBhcnJheQorICAgKiBA
cGFyYW0gcG9zaXRpb24gVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24KKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yKGNvbnN0
IFVDaGFyKiB0ZXh0UHRyLCBpbnQzMl90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogQ3JlYXRlIGFuIGl0ZXJhdG9yIG92
ZXIgdGhlIFVDaGFyIGFycmF5IHJlZmVycmVkIHRvIGJ5ICJ0ZXh0UHRyIi4KKyAgICogVGhlIGl0
ZXJhdGlvbiByYW5nZSBpcyAwIHRvIDxjb2RlPmVuZC0xPC9jb2RlPi4KKyAgICogdGV4dCBpcyBv
bmx5IGFsaWFzZWQsIG5vdCBhZG9wdGVkICh0aGUKKyAgICogZGVzdHJ1Y3RvciB3aWxsIG5vdCBk
ZWxldGUgaXQpLgorICAgKiBUaGUgc3RhcnRpbmcKKyAgICogcG9zaXRpb24gaXMgc3BlY2lmaWVk
IGJ5ICJwb3NpdGlvbiIuIElmIGJlZ2luIGFuZCBlbmQgZG8gbm90CisgICAqIGZvcm0gYSB2YWxp
ZCBpdGVyYXRpb24gcmFuZ2Ugb3IgInBvc2l0aW9uIiBpcyBvdXRzaWRlIHRoZSB2YWxpZAorICAg
KiBpdGVyYXRpb24gcmFuZ2UsIHRoZSBiZWhhdmlvciBvZiB0aGlzIG9iamVjdCBpcyB1bmRlZmlu
ZWQuCisgICAqIEBwYXJhbSB0ZXh0UHRyIFRoZSBVQ2hhciBhcnJheSB0byBiZSBpdGVyYXRlZCBv
dmVyCisgICAqIEBwYXJhbSBsZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgVUNoYXIgYXJyYXkKKyAg
ICogQHBhcmFtIHRleHRCZWdpbiAgVGhlIGJlZ2luIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRpb24g
cmFuZ2UKKyAgICogQHBhcmFtIHRleHRFbmQgICAgVGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgaXRl
cmF0aW9uIHJhbmdlCisgICAqIEBwYXJhbSBwb3NpdGlvbiAgICBUaGUgc3RhcnRpbmcgcG9zaXRp
b24gb2YgdGhlIGl0ZXJhdGlvbgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIFVDaGFy
Q2hhcmFjdGVySXRlcmF0b3IoY29uc3QgVUNoYXIqIHRleHRQdHIsIGludDMyX3QgbGVuZ3RoLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdGV4dEJlZ2luLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIGludDMyX3QgdGV4dEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogQ29weSBjb25zdHJ1Y3Rvci4gIFRoZSBu
ZXcgaXRlcmF0b3IgaXRlcmF0ZXMgb3ZlciB0aGUgc2FtZSByYW5nZQorICAgKiBvZiB0aGUgc2Ft
ZSBzdHJpbmcgYXMgInRoYXQiLCBhbmQgaXRzIGluaXRpYWwgcG9zaXRpb24gaXMgdGhlCisgICAq
IHNhbWUgYXMgInRoYXQiJ3MgY3VycmVudCBwb3NpdGlvbi4KKyAgICogQHBhcmFtIHRoYXQgVGhl
IFVDaGFyQ2hhcmFjdGVySXRlcmF0b3IgdG8gYmUgY29waWVkCisgICAqIEBzdGFibGUgSUNVIDIu
MAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcihjb25zdCBVQ2hhckNoYXJhY3Rlckl0
ZXJhdG9yJiAgdGhhdCk7CisKKyAgLyoqCisgICAqIERlc3RydWN0b3IuCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCB+VUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigpOworCisg
IC8qKgorICAgKiBBc3NpZ25tZW50IG9wZXJhdG9yLiAgKnRoaXMgaXMgYWx0ZXJlZCB0byBpdGVy
YXRlIG92ZXIgdGhlIHNhbmUKKyAgICogcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzICJ0aGF0
IiwgYW5kIHJlZmVycyB0byB0aGUgc2FtZQorICAgKiBjaGFyYWN0ZXIgd2l0aGluIHRoYXQgc3Ry
aW5nIGFzICJ0aGF0IiBkb2VzLgorICAgKiBAcGFyYW0gdGhhdCBUaGUgb2JqZWN0IHRvIGJlIGNv
cGllZAorICAgKiBAcmV0dXJuIHRoZSBuZXdseSBjcmVhdGVkIG9iamVjdAorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIFVDaGFyQ2hhcmFjdGVySXRlcmF0b3ImCisgIG9wZXJhdG9yPShj
b25zdCBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yJiAgICB0aGF0KTsKKworICAvKioKKyAgICogUmV0
dXJucyB0cnVlIGlmIHRoZSBpdGVyYXRvcnMgaXRlcmF0ZSBvdmVyIHRoZSBzYW1lIHJhbmdlIG9m
IHRoZQorICAgKiBzYW1lIHN0cmluZyBhbmQgYXJlIHBvaW50aW5nIGF0IHRoZSBzYW1lIGNoYXJh
Y3Rlci4KKyAgICogQHBhcmFtIHRoYXQgVGhlIEZvcndhcmRDaGFyYWN0ZXJJdGVyYXRvciB1c2Vk
IHRvIGJlIGNvbXBhcmVkIGZvciBlcXVhbGl0eQorICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIGl0
ZXJhdG9ycyBpdGVyYXRlIG92ZXIgdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlCisgICAqIHNhbWUgc3Ry
aW5nIGFuZCBhcmUgcG9pbnRpbmcgYXQgdGhlIHNhbWUgY2hhcmFjdGVyLgorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgICAgb3BlcmF0b3I9PShjb25z
dCBGb3J3YXJkQ2hhcmFjdGVySXRlcmF0b3ImIHRoYXQpIGNvbnN0OworCisgIC8qKgorICAgKiBH
ZW5lcmF0ZXMgYSBoYXNoIGNvZGUgZm9yIHRoaXMgaXRlcmF0b3IuCisgICAqIEByZXR1cm4gdGhl
IGhhc2ggY29kZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIGludDMy
X3QgICAgICAgICBoYXNoQ29kZSh2b2lkKSBjb25zdDsKKworICAvKioKKyAgICogUmV0dXJucyBh
IG5ldyBVQ2hhckNoYXJhY3Rlckl0ZXJhdG9yIHJlZmVycmluZyB0byB0aGUgc2FtZQorICAgKiBj
aGFyYWN0ZXIgaW4gdGhlIHNhbWUgcmFuZ2Ugb2YgdGhlIHNhbWUgc3RyaW5nIGFzIHRoaXMgb25l
LiAgVGhlCisgICAqIGNhbGxlciBtdXN0IGRlbGV0ZSB0aGUgbmV3IGl0ZXJhdG9yLgorICAgKiBA
cmV0dXJuIHRoZSBDaGFyYWN0ZXJJdGVyYXRvciBuZXdseSBjcmVhdGVkCisgICAqIEBzdGFibGUg
SUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBDaGFyYWN0ZXJJdGVyYXRvciogY2xvbmUodm9pZCkg
Y29uc3Q7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJhdG9yIHRvIHJlZmVyIHRvIHRoZSBm
aXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlvbiByYW5nZSwgYW5kIHJldHVybnMg
dGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYmVnaW4gYW4gaXRlcmF0
aW9uIHdpdGggbmV4dCgpLgorICAgKiBAcmV0dXJuIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRz
IGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFs
IFVDaGFyICAgICAgICAgZmlyc3Qodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJh
dG9yIHRvIHJlZmVyIHRvIHRoZSBmaXJzdCBjb2RlIHVuaXQgaW4gaXRzCisgICAqIGl0ZXJhdGlv
biByYW5nZSwgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgor
ICAgKiB0byB0aGUgc2Vjb25kIGNvZGUgdW5pdC4gVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBz
ZXRUb1N0YXJ0KCkKKyAgICogZm9yIGZvcndhcmQgaXRlcmF0aW9uIHdpdGggbmV4dFBvc3RJbmMo
KS4KKyAgICogQHJldHVybiB0aGUgZmlyc3QgY29kZSB1bml0IGluIGl0cyBpdGVyYXRpb24gcmFu
Z2UKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAgICAgICAg
Zmlyc3RQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byBy
ZWZlciB0byB0aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdl
LCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgdW5pdCwKKyAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBi
ZWdpbiBhbiBpdGVyYXRpb24gd2l0aCBuZXh0MzIoKS4KKyAgICogTm90ZSB0aGF0IGFuIGl0ZXJh
dGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKSwgYmVnaW5uaW5nIHdpdGgsCisgICAqIGUuZy4sIHNl
dFRvU3RhcnQoKSBvciBmaXJzdFBvc3RJbmMoKSwgaXMgbW9yZSBlZmZpY2llbnQuCisgICAqIEBy
ZXR1cm4gdGhlIGZpcnN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZQorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyKHZv
aWQpOworCisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgZmly
c3QgY29kZSBwb2ludCBpbiBpdHMKKyAgICogaXRlcmF0aW9uIHJhbmdlLCByZXR1cm5zIHRoYXQg
Y29kZSBwb2ludCwgYW5kIG1vdmVzIHRoZSBwb3NpdGlvbgorICAgKiB0byB0aGUgc2Vjb25kIGNv
ZGUgcG9pbnQuIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0VG9TdGFydCgpCisgICAqIGZv
ciBmb3J3YXJkIGl0ZXJhdGlvbiB3aXRoIG5leHQzMlBvc3RJbmMoKS4KKyAgICogQHJldHVybiB0
aGUgZmlyc3QgY29kZSBwb2ludCBpbiBpdHMgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxl
IElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBmaXJzdDMyUG9zdEluYyh2
b2lkKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGxh
c3QgY29kZSB1bml0IGluIGl0cworICAgKiBpdGVyYXRpb24gcmFuZ2UsIGFuZCByZXR1cm5zIHRo
YXQgY29kZSB1bml0LgorICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGJlZ2luIGFuIGl0ZXJhdGlv
biB3aXRoIHByZXZpb3VzKCkuCisgICAqIEByZXR1cm4gdGhlIGxhc3QgY29kZSB1bml0IGluIGl0
cyBpdGVyYXRpb24gcmFuZ2UuCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVh
bCBVQ2hhciAgICAgICAgIGxhc3Qodm9pZCk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIGl0ZXJh
dG9yIHRvIHJlZmVyIHRvIHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzCisgICAqIGl0ZXJhdGlv
biByYW5nZSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIFRoaXMgY2FuIGJlIHVz
ZWQgdG8gYmVnaW4gYW4gaXRlcmF0aW9uIHdpdGggcHJldmlvdXMzMigpLgorICAgKiBAcmV0dXJu
IHRoZSBsYXN0IGNvZGUgcG9pbnQgaW4gaXRzIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyMzIgICAgICAgbGFzdDMyKHZvaWQpOwor
CisgIC8qKgorICAgKiBTZXRzIHRoZSBpdGVyYXRvciB0byByZWZlciB0byB0aGUgInBvc2l0aW9u
Ii10aCBjb2RlIHVuaXQKKyAgICogaW4gdGhlIHRleHQtc3RvcmFnZSBvYmplY3QgdGhlIGl0ZXJh
dG9yIHJlZmVycyB0bywgYW5kCisgICAqIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuCisgICAqIEBw
YXJhbSBwb3NpdGlvbiB0aGUgcG9zaXRpb24gd2l0aGluIHRoZSB0ZXh0LXN0b3JhZ2Ugb2JqZWN0
CisgICAqIEByZXR1cm4gdGhlIGNvZGUgdW5pdAorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIHZpcnR1YWwgVUNoYXIgICAgICAgICBzZXRJbmRleChpbnQzMl90IHBvc2l0aW9uKTsKKwor
ICAvKioKKyAgICogU2V0cyB0aGUgaXRlcmF0b3IgdG8gcmVmZXIgdG8gdGhlIGJlZ2lubmluZyBv
ZiB0aGUgY29kZSBwb2ludAorICAgKiB0aGF0IGNvbnRhaW5zIHRoZSAicG9zaXRpb24iLXRoIGNv
ZGUgdW5pdAorICAgKiBpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdCB0aGUgaXRlcmF0b3IgcmVm
ZXJzIHRvLCBhbmQKKyAgICogcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuCisgICAqIFRoZSBjdXJy
ZW50IHBvc2l0aW9uIGlzIGFkanVzdGVkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvZGUgcG9p
bnQKKyAgICogKGl0cyBmaXJzdCBjb2RlIHVuaXQpLgorICAgKiBAcGFyYW0gcG9zaXRpb24gdGhl
IHBvc2l0aW9uIHdpdGhpbiB0aGUgdGV4dC1zdG9yYWdlIG9iamVjdAorICAgKiBAcmV0dXJuIHRo
ZSBjb2RlIHVuaXQKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFy
MzIgICAgICAgc2V0SW5kZXgzMihpbnQzMl90IHBvc2l0aW9uKTsKKworICAvKioKKyAgICogUmV0
dXJucyB0aGUgY29kZSB1bml0IHRoZSBpdGVyYXRvciBjdXJyZW50bHkgcmVmZXJzIHRvLgorICAg
KiBAcmV0dXJuIHRoZSBjb2RlIHVuaXQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8u
CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIGN1
cnJlbnQodm9pZCkgY29uc3Q7CisKKyAgLyoqCisgICAqIFJldHVybnMgdGhlIGNvZGUgcG9pbnQg
dGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEByZXR1cm4gdGhlIGNvZGUg
cG9pbnQgdGhlIGl0ZXJhdG9yIGN1cnJlbnRseSByZWZlcnMgdG8uCisgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhcjMyICAgICAgIGN1cnJlbnQzMih2b2lkKSBjb25z
dDsKKworICAvKioKKyAgICogQWR2YW5jZXMgdG8gdGhlIG5leHQgY29kZSB1bml0IGluIHRoZSBp
dGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhh
dCBjb2RlIHVuaXQuICBJZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRzIHRvIHJl
dHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBuZXh0IGNvZGUgdW5pdCBpbiB0
aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgVUNoYXIgICAgICAgICBuZXh0KHZvaWQpOworCisgIC8qKgorICAgKiBHZXRzIHRoZSBjdXJy
ZW50IGNvZGUgdW5pdCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0aGUgbmV4dCBjb2Rl
IHVuaXQKKyAgICogaW4gdGhlIGl0ZXJhdGlvbiByYW5nZQorICAgKiAodG93YXJkIGVuZEluZGV4
KCkpLiAgSWYgdGhlcmUgYXJlCisgICAqIG5vIG1vcmUgY29kZSB1bml0cyB0byByZXR1cm4sIHJl
dHVybnMgRE9ORS4KKyAgICogQHJldHVybiB0aGUgY3VycmVudCBjb2RlIHVuaXQuCisgICAqIEBz
dGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBVQ2hhciAgICAgICAgIG5leHRQb3N0SW5j
KHZvaWQpOworCisgIC8qKgorICAgKiBBZHZhbmNlcyB0byB0aGUgbmV4dCBjb2RlIHBvaW50IGlu
IHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBlbmRJbmRleCgpKSwgYW5kIHJldHVy
bnMgdGhhdCBjb2RlIHBvaW50LiAgSWYgdGhlcmUgYXJlIG5vIG1vcmUKKyAgICogY29kZSBwb2lu
dHMgdG8gcmV0dXJuLCByZXR1cm5zIERPTkUuCisgICAqIE5vdGUgdGhhdCBpdGVyYXRpb24gd2l0
aCAicHJlLWluY3JlbWVudCIgc2VtYW50aWNzIGlzIGxlc3MKKyAgICogZWZmaWNpZW50IHRoYW4g
aXRlcmF0aW9uIHdpdGggInBvc3QtaW5jcmVtZW50IiBzZW1hbnRpY3MKKyAgICogdGhhdCBpcyBw
cm92aWRlZCBieSBuZXh0MzJQb3N0SW5jKCkuCisgICAqIEByZXR1cm4gdGhlIG5leHQgY29kZSBw
b2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICov
CisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBuZXh0MzIodm9pZCk7CisKKyAgLyoqCisgICAqIEdl
dHMgdGhlIGN1cnJlbnQgY29kZSBwb2ludCBmb3IgcmV0dXJuaW5nIGFuZCBhZHZhbmNlcyB0byB0
aGUgbmV4dCBjb2RlIHBvaW50CisgICAqIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UKKyAgICogKHRv
d2FyZCBlbmRJbmRleCgpKS4gIElmIHRoZXJlIGFyZQorICAgKiBubyBtb3JlIGNvZGUgcG9pbnRz
IHRvIHJldHVybiwgcmV0dXJucyBET05FLgorICAgKiBAcmV0dXJuIHRoZSBjdXJyZW50IHBvaW50
LgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBu
ZXh0MzJQb3N0SW5jKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJl
IGFyZSBubyBtb3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYXQgb3IgYWZ0ZXIg
dGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIGl0ZXJhdGlvbiByYW5nZS4KKyAgICogVGhpcyBp
cyB1c2VkIHdpdGggbmV4dFBvc3RJbmMoKSBvciBuZXh0MzJQb3N0SW5jKCkgaW4gZm9yd2FyZAor
ICAgKiBpdGVyYXRpb24uCisgICAqIEByZXR1cm4gRkFMU0UgaWYgdGhlcmUgYXJlIG5vIG1vcmUg
Y29kZSB1bml0cyBvciBjb2RlIHBvaW50cworICAgKiBhdCBvciBhZnRlciB0aGUgY3VycmVudCBw
b3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAg
ICovCisgIHZpcnR1YWwgVUJvb2wgICAgICAgIGhhc05leHQoKTsKKworICAvKioKKyAgICogQWR2
YW5jZXMgdG8gdGhlIHByZXZpb3VzIGNvZGUgdW5pdCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlICh0
b3dhcmQKKyAgICogc3RhcnRJbmRleCgpKSwgYW5kIHJldHVybnMgdGhhdCBjb2RlIHVuaXQuICBJ
ZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgKiBjb2RlIHVuaXRzIHRvIHJldHVybiwgcmV0dXJucyBE
T05FLgorICAgKiBAcmV0dXJuIHRoZSBwcmV2aW91cyBjb2RlIHVuaXQgaW4gdGhlIGl0ZXJhdGlv
biByYW5nZS4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFsIFVDaGFyICAg
ICAgICAgcHJldmlvdXModm9pZCk7CisKKyAgLyoqCisgICAqIEFkdmFuY2VzIHRvIHRoZSBwcmV2
aW91cyBjb2RlIHBvaW50IGluIHRoZSBpdGVyYXRpb24gcmFuZ2UgKHRvd2FyZAorICAgKiBzdGFy
dEluZGV4KCkpLCBhbmQgcmV0dXJucyB0aGF0IGNvZGUgcG9pbnQuICBJZiB0aGVyZSBhcmUgbm8g
bW9yZQorICAgKiBjb2RlIHBvaW50cyB0byByZXR1cm4sIHJldHVybnMgRE9ORS4KKyAgICogQHJl
dHVybiB0aGUgcHJldmlvdXMgY29kZSBwb2ludCBpbiB0aGUgaXRlcmF0aW9uIHJhbmdlLgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUNoYXIzMiAgICAgICBwcmV2aW91
czMyKHZvaWQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIEZBTFNFIGlmIHRoZXJlIGFyZSBubyBt
b3JlIGNvZGUgdW5pdHMgb3IgY29kZSBwb2ludHMKKyAgICogYmVmb3JlIHRoZSBjdXJyZW50IHBv
c2l0aW9uIGluIHRoZSBpdGVyYXRpb24gcmFuZ2UuCisgICAqIFRoaXMgaXMgdXNlZCB3aXRoIHBy
ZXZpb3VzKCkgb3IgcHJldmlvdXMzMigpIGluIGJhY2t3YXJkCisgICAqIGl0ZXJhdGlvbi4KKyAg
ICogQHJldHVybiBGQUxTRSBpZiB0aGVyZSBhcmUgbm8gbW9yZSBjb2RlIHVuaXRzIG9yIGNvZGUg
cG9pbnRzCisgICAqIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgaXRlcmF0aW9u
IHJhbmdlLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgVUJvb2wgICAg
ICAgIGhhc1ByZXZpb3VzKCk7CisKKyAgLyoqCisgICAqIE1vdmVzIHRoZSBjdXJyZW50IHBvc2l0
aW9uIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlCisgICAqIGl0ZXJhdGlvbiBy
YW5nZSwgb3IgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gaXRzZWxmLgorICAgKiBU
aGUgbW92ZW1lbnQgaXMgZXhwcmVzc2VkIGluIG51bWJlcnMgb2YgY29kZSB1bml0cyBmb3J3YXJk
CisgICAqIG9yIGJhY2t3YXJkIGJ5IHNwZWNpZnlpbmcgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBk
ZWx0YS4KKyAgICogQHBhcmFtIGRlbHRhIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBvcmlnaW4u
IEEgcG9zaXRpdmUgZGVsdGEgbWVhbnMgZm9yd2FyZDsKKyAgICogYSBuZWdhdGl2ZSBkZWx0YSBt
ZWFucyBiYWNrd2FyZC4KKyAgICogQHBhcmFtIG9yaWdpbiBPcmlnaW4gZW51bWVyYXRpb24ge2tT
dGFydCwga0N1cnJlbnQsIGtFbmR9CisgICAqIEByZXR1cm4gdGhlIG5ldyBwb3NpdGlvbgorICAg
KiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1YWwgaW50MzJfdCAgICAgIG1vdmUoaW50
MzJfdCBkZWx0YSwgRU9yaWdpbiBvcmlnaW4pOworCisgIC8qKgorICAgKiBNb3ZlcyB0aGUgY3Vy
cmVudCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZQorICAgKiBp
dGVyYXRpb24gcmFuZ2UsIG9yIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHBvc2l0aW9uIGl0c2Vs
Zi4KKyAgICogVGhlIG1vdmVtZW50IGlzIGV4cHJlc3NlZCBpbiBudW1iZXJzIG9mIGNvZGUgcG9p
bnRzIGZvcndhcmQKKyAgICogb3IgYmFja3dhcmQgYnkgc3BlY2lmeWluZyBhIHBvc2l0aXZlIG9y
IG5lZ2F0aXZlIGRlbHRhLgorICAgKiBAcGFyYW0gZGVsdGEgdGhlIHBvc2l0aW9uIHJlbGF0aXZl
IHRvIG9yaWdpbi4gQSBwb3NpdGl2ZSBkZWx0YSBtZWFucyBmb3J3YXJkOworICAgKiBhIG5lZ2F0
aXZlIGRlbHRhIG1lYW5zIGJhY2t3YXJkLgorICAgKiBAcGFyYW0gb3JpZ2luIE9yaWdpbiBlbnVt
ZXJhdGlvbiB7a1N0YXJ0LCBrQ3VycmVudCwga0VuZH0KKyAgICogQHJldHVybiB0aGUgbmV3IHBv
c2l0aW9uCisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgdmlydHVhbCBpbnQzMl90ICAg
ICAgbW92ZTMyKGludDMyX3QgZGVsdGEsIEVPcmlnaW4gb3JpZ2luKTsKKworICAvKioKKyAgICog
U2V0cyB0aGUgaXRlcmF0b3IgdG8gaXRlcmF0ZSBvdmVyIGEgbmV3IHJhbmdlIG9mIHRleHQKKyAg
ICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2b2lkIHNldFRleHQoY29uc3QgVUNoYXIqIG5l
d1RleHQsIGludDMyX3QgbmV3VGV4dExlbmd0aCk7CisKKyAgLyoqCisgICAqIENvcGllcyB0aGUg
VUNoYXIgYXJyYXkgdW5kZXIgaXRlcmF0aW9uIGludG8gdGhlIFVuaWNvZGVTdHJpbmcKKyAgICog
cmVmZXJyZWQgdG8gYnkgInJlc3VsdCIuICBFdmVuIGlmIHRoaXMgaXRlcmF0b3IgaXRlcmF0ZXMg
YWNyb3NzCisgICAqIG9ubHkgYSBwYXJ0IG9mIHRoaXMgc3RyaW5nLCB0aGUgd2hvbGUgc3RyaW5n
IGlzIGNvcGllZC4KKyAgICogQHBhcmFtIHJlc3VsdCBSZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHRl
eHQgdW5kZXIgaXRlcmF0aW9uLgorICAgKiBAc3RhYmxlIElDVSAyLjAKKyAgICovCisgIHZpcnR1
YWwgdm9pZCAgICAgICAgICAgIGdldFRleHQoVW5pY29kZVN0cmluZyYgcmVzdWx0KTsKKworICAv
KioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MgKG5vdCByZWFsbHkgcHVi
bGljKQorICAgKiBAcmV0dXJuIGEgY2xhc3MgSUQgZm9yIHRoaXMgY2xhc3MKKyAgICogQHN0YWJs
ZSBJQ1UgMi4wCisgICAqLworICBzdGF0aWMgVUNsYXNzSUQgICAgICAgICBVX0VYUE9SVDIgZ2V0
U3RhdGljQ2xhc3NJRCh2b2lkKTsKKworICAvKioKKyAgICogUmV0dXJuIGEgY2xhc3MgSUQgZm9y
IHRoaXMgb2JqZWN0IChub3QgcmVhbGx5IHB1YmxpYykKKyAgICogQHJldHVybiBhIGNsYXNzIElE
IGZvciB0aGlzIG9iamVjdC4KKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICB2aXJ0dWFs
IFVDbGFzc0lEICAgICAgICBnZXREeW5hbWljQ2xhc3NJRCh2b2lkKSBjb25zdDsKKworcHJvdGVj
dGVkOgorICAvKioKKyAgICogUHJvdGVjdGVkIGNvbnN0cnVjdG9yCisgICAqIEBzdGFibGUgSUNV
IDIuMAorICAgKi8KKyAgVUNoYXJDaGFyYWN0ZXJJdGVyYXRvcigpOworICAvKioKKyAgICogUHJv
dGVjdGVkIG1lbWJlciB0ZXh0CisgICAqIEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgY29uc3Qg
VUNoYXIqICAgICAgICAgICAgdGV4dDsKKworfTsKKworVV9OQU1FU1BBQ0VfRU5ECisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaCBiL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvdWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWU0NjYzMGQ1Mzk4ZDgyNzM4ZDFkNjFm
ZmM0ZDJjOTE0ZThjNjhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS91ZGF0YS5oCkBAIC0wLDAgKzEsNDMwIEBACisvKgorKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisq
CisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQsIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFj
aGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZpbGUgbmFtZTogIHVkYXRhLmgKKyogICBl
bmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXplOiAgIDggKG5vdCB1c2VkKQorKiAgIGlu
ZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAxOTk5b2N0MjUKKyogICBjcmVhdGVkIGJ5
OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRlZiBfX1VEQVRBX0hfXworI2RlZmluZSBf
X1VEQVRBX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmlj
b2RlL2xvY2FscG9pbnRlci5oIgorCitVX0NERUNMX0JFR0lOCisKKy8qKgorICogXGZpbGUKKyAq
IFxicmllZiBDIEFQSTogRGF0YSBsb2FkaW5nIGludGVyZmFjZQorICoKKyAqIDxoMj5JbmZvcm1h
dGlvbiBhYm91dCBkYXRhIGxvYWRpbmcgaW50ZXJmYWNlPC9oMj4KKyAqCisgKiBUaGlzIEFQSSBp
cyB1c2VkIHRvIGZpbmQgYW5kIGVmZmljaWVudGx5IGxvYWQgZGF0YSBmb3IgSUNVIGFuZCBhcHBs
aWNhdGlvbnMKKyAqIHVzaW5nIElDVS4gSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNl
IHRoYXQgc3BlY2lmaWVzIGEgZGF0YSB0eXBlIGFuZAorICogbmFtZSB0byBmaW5kIGFuZCBsb2Fk
IHRoZSBkYXRhLiBOb3JtYWxseSB0aGlzIEFQSSBpcyB1c2VkIGJ5IG90aGVyIElDVSBBUElzCisg
KiB0byBsb2FkIHJlcXVpcmVkIGRhdGEgb3V0IG9mIHRoZSBJQ1UgZGF0YSBsaWJyYXJ5LCBidXQg
aXQgY2FuIGJlIHVzZWQgdG8KKyAqIGxvYWQgZGF0YSBvdXQgb2Ygb3RoZXIgcGxhY2VzLgorICoK
KyAqIFNlZSB0aGUgVXNlciBHdWlkZSBEYXRhIE1hbmFnZW1lbnQgY2hhcHRlci4KKyAqLworIAor
I2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisvKioKKyAqIENoYXJhY3RlciB1c2VkIHRvIHNl
cGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAorICogQGludGVybmFsIElDVSAz
LjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SICctJworCisvKioKKyAqIFN0cmluZyB1
c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5hbWVzIAorICogQGludGVy
bmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9SX1NUUklORyAiLSIKKwor
LyoqCisgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSBwYXJ0cyBvZiBlbnRyeSBuYW1lcwor
ICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfRU5UUllfU0VQX0NIQVIg
Jy8nCisKKy8qKgorICogU3RyaW5nIHVzZWQgdG8gc2VwYXJhdGUgcGFydHMgb2YgZW50cnkgbmFt
ZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNkZWZpbmUgVV9UUkVFX0VOVFJZX1NFUF9T
VFJJTkcgIi8iCisKKy8qKgorICogQWxpYXMgZm9yIHN0YW5kYXJkIElDVSBkYXRhIAorICogQGlu
dGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX0lDVURBVEFfQUxJQVMgIklDVURBVEEiCisK
KyNlbmRpZiAvKiBVX0hJREVfSU5URVJOQUxfQVBJICovCisKKy8qKgorICogVURhdGFJbmZvIGNv
bnRhaW5zIHRoZSBwcm9wZXJ0aWVzIGFib3V0IHRoZSByZXF1ZXN0ZWQgZGF0YS4KKyAqIFRoaXMg
aXMgbWV0YSBkYXRhLgorICoKKyAqIDxwPlRoaXMgc3RydWN0dXJlIG1heSBncm93IGluIHRoZSBm
dXR1cmUsIGluZGljYXRlZCBieSB0aGUKKyAqIDxjb2RlPnNpemU8L2NvZGU+IGZpZWxkLjwvcD4K
KyAqCisgKiA8cD5JQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3Vs
ZCBiZSAxNi1hbGlnbmVkLgorICogVGhlIFVEYXRhSW5mbyBzdHJ1Y3QgYmVnaW5zIDQgYnl0ZXMg
YWZ0ZXIgdGhlIHN0YXJ0IG9mIHRoZSBkYXRhIGl0ZW0sCisgKiBzbyBpdCBpcyA0LWFsaWduZWQu
CisgKgorICogPHA+VGhlIHBsYXRmb3JtIGRhdGEgcHJvcGVydHkgZmllbGRzIGhlbHAgZGV0ZXJt
aW5lIGlmIGEgZGF0YQorICogZmlsZSBjYW4gYmUgZWZmaWNpZW50bHkgdXNlZCBvbiBhIGdpdmVu
IG1hY2hpbmUuCisgKiBUaGUgcGFydGljdWxhciBmaWVsZHMgYXJlIG9mIGltcG9ydGFuY2Ugb25s
eSBpZiB0aGUgZGF0YQorICogaXMgYWZmZWN0ZWQgYnkgdGhlIHByb3BlcnRpZXMgLSBpZiB0aGVy
ZSBpcyBpbnRlZ2VyIGRhdGEKKyAqIHdpdGggd29yZCBzaXplcyA+IDEgYnl0ZSwgY2hhciogdGV4
dCwgb3IgVUNoYXIqIHRleHQuPC9wPgorICoKKyAqIDxwPlRoZSBpbXBsZW1lbnRhdGlvbiBmb3Ig
dGhlIDxjb2RlPnVkYXRhX29wZW5bQ2hvaWNlXSgpPC9jb2RlPgorICogZnVuY3Rpb25zIG1heSBy
ZWplY3QgZGF0YSBiYXNlZCBvbiB0aGUgdmFsdWUgaW4gPGNvZGU+aXNCaWdFbmRpYW48L2NvZGU+
LgorICogTm8gb3RoZXIgZmllbGQgaXMgdXNlZCBieSB0aGUgPGNvZGU+dWRhdGE8L2NvZGU+IEFQ
SSBpbXBsZW1lbnRhdGlvbi48L3A+CisgKgorICogPHA+VGhlIDxjb2RlPmRhdGFGb3JtYXQ8L2Nv
ZGU+IG1heSBiZSB1c2VkIHRvIGlkZW50aWZ5CisgKiB0aGUga2luZCBvZiBkYXRhLCBlLmcuIGEg
Y29udmVydGVyIHRhYmxlLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+Zm9ybWF0VmVyc2lvbjwv
Y29kZT4gZmllbGQgc2hvdWxkIGJlIHVzZWQgdG8KKyAqIG1ha2Ugc3VyZSB0aGF0IHRoZSBmb3Jt
YXQgY2FuIGJlIGludGVycHJldGVkLgorICogSXQgbWF5IGJlIGEgZ29vZCBpZGVhIHRvIGNoZWNr
IG9ubHkgZm9yIHRoZSBvbmUgb3IgdHdvIGhpZ2hlc3QKKyAqIG9mIHRoZSB2ZXJzaW9uIGVsZW1l
bnRzIHRvIGFsbG93IHRoZSBkYXRhIG1lbW9yeSB0bworICogZ2V0IG1vcmUgb3Igc29tZXdoYXQg
cmVhcnJhbmdlZCBjb250ZW50cywgZm9yIGFzIGxvbmcKKyAqIGFzIHRoZSB1c2luZyBjb2RlIGNh
biBzdGlsbCBpbnRlcnByZXQgdGhlIG9sZGVyIGNvbnRlbnRzLjwvcD4KKyAqCisgKiA8cD5UaGUg
PGNvZGU+ZGF0YVZlcnNpb248L2NvZGU+IGZpZWxkIGlzIGludGVuZGVkIHRvIGJlIGEKKyAqIGNv
bW1vbiBwbGFjZSB0byBzdG9yZSB0aGUgc291cmNlIHZlcnNpb24gb2YgdGhlIGRhdGE7CisgKiBm
b3IgZGF0YSBmcm9tIHRoZSBVbmljb2RlIGNoYXJhY3RlciBkYXRhYmFzZSwgdGhpcyBjb3VsZAor
ICogcmVmbGVjdCB0aGUgVW5pY29kZSB2ZXJzaW9uLjwvcD4KKyAqCisgKiBAc3RhYmxlIElDVSAy
LjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIC8qKiBzaXplb2YoVURhdGFJbmZvKQorICAg
ICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50MTZfdCBzaXplOworCisgICAgLyoqIHVu
dXNlZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFibGUgSUNVIDIuMCovCisgICAgdWludDE2X3Qg
cmVzZXJ2ZWRXb3JkOworCisgICAgLyogcGxhdGZvcm0gZGF0YSBwcm9wZXJ0aWVzICovCisgICAg
LyoqIDAgZm9yIGxpdHRsZS1lbmRpYW4gbWFjaGluZSwgMSBmb3IgYmlnLWVuZGlhbgorICAgICAq
ICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50OF90IGlzQmlnRW5kaWFuOworCisgICAgLyoq
IHNlZSBVX0NIQVJTRVRfRkFNSUxZIHZhbHVlcyBpbiB1dHlwZXMuaCAKKyAgICAgKiAgQHN0YWJs
ZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGNoYXJzZXRGYW1pbHk7CisKKyAgICAvKiogc2l6ZW9m
KFVDaGFyKSwgb25lIG9mIHsgMSwgMiwgNCB9IAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLwor
ICAgIHVpbnQ4X3Qgc2l6ZW9mVUNoYXI7CisKKyAgICAvKiogdW51c2VkLCBzZXQgdG8gMCAKKyAg
ICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IHJlc2VydmVkQnl0ZTsKKworICAg
IC8qKiBkYXRhIGZvcm1hdCBpZGVudGlmaWVyIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLwor
ICAgIHVpbnQ4X3QgZGF0YUZvcm1hdFs0XTsKKworICAgIC8qKiB2ZXJzaW9uczogWzBdIG1ham9y
IFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAq
LworICAgIHVpbnQ4X3QgZm9ybWF0VmVyc2lvbls0XTsKKworICAgIC8qKiB2ZXJzaW9uczogWzBd
IG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAorICAgICAqICBAc3RhYmxlIElD
VSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YVZlcnNpb25bNF07Cit9IFVEYXRhSW5mbzsKKworLyog
QVBJIGZvciByZWFkaW5nIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0qLworCisvKioKKyAqIEZvcndhcmQgZGVjbGFyYXRpb24gb2YgdGhl
IGRhdGEgbWVtb3J5IHR5cGUuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1
Y3QgVURhdGFNZW1vcnkgVURhdGFNZW1vcnk7CisKKy8qKgorICogQ2FsbGJhY2sgZnVuY3Rpb24g
Zm9yIHVkYXRhX29wZW5DaG9pY2UoKS4KKyAqIEBwYXJhbSBjb250ZXh0IHBhcmFtZXRlciBwYXNz
ZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+LgorICogQHBhcmFtIHR5cGUg
VGhlIHR5cGUgb2YgdGhlIGRhdGEgYXMgcGFzc2VkIGludG8gPGNvZGU+dWRhdGFfb3BlbkNob2lj
ZSgpPC9jb2RlPi4KKyAqICAgICAgICAgICAgIEl0IG1heSBiZSA8Y29kZT5OVUxMPC9jb2RlPi4K
KyAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGFzIHBhc3NlZCBpbnRvIDxjb2Rl
PnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiBAcGFyYW0gcEluZm8gQSBwb2ludGVyIHRv
IHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+IHN0cnVjdHVyZQorICogICAgICAgICAgICAgIG9m
IGRhdGEgdGhhdCBoYXMgYmVlbiBsb2FkZWQgYW5kIHdpbGwgYmUgcmV0dXJuZWQKKyAqICAgICAg
ICAgICAgICBieSA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8L2NvZGU+IGlmIHRoaXMgZnVuY3Rp
b24KKyAqICAgICAgICAgICAgICByZXR1cm5zIDxjb2RlPlRSVUU8L2NvZGU+LgorICogQHJldHVy
biBUUlVFIGlmIHRoZSBjdXJyZW50IGRhdGEgbWVtb3J5IGlzIGFjY2VwdGFibGUKKyAqIEBzdGFi
bGUgSUNVIDIuMAorICovCit0eXBlZGVmIFVCb29sIFVfQ0FMTENPTlYKK1VEYXRhTWVtb3J5SXNB
Y2NlcHRhYmxlKHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgVURhdGFJbmZvICpwSW5mbyk7CisKKworLyoqCisgKiBDb252ZW5pZW5jZSBmdW5jdGlvbi4K
KyAqIFRoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgYXMgPGNvZGU+dWRhdGFfb3BlbkNob2lj
ZTwvY29kZT4KKyAqIGV4Y2VwdCB0aGF0IGFueSBkYXRhIHRoYXQgbWF0Y2hlcyB0aGUgdHlwZSBh
bmQgbmFtZQorICogaXMgYXNzdW1lZCB0byBiZSBhY2NlcHRhYmxlLgorICogQHBhcmFtIHBhdGgg
U3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFzZW5hbWUgZm9yIHRoZQorICog
ICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0uCisgKiAg
ICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRhdGEuCisgKiBAcGFyYW0gdHlw
ZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxvYWRlZC4K
KyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBidW5kbGVzIGFyZSBsb2FkZWQg
d2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVyc2lvbiB0YWJsZXMgd2l0aCB0
eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwvY29kZT4g
b3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgbmFt
ZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBwRXJyb3JDb2RlIEFuIElDVSBVRXJyb3JDb2RlIHBh
cmFtZXRlci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+TlVMTDwvY29kZT4uCisgKiBAcmV0dXJuIEEg
cG9pbnRlciAoaGFuZGxlKSB0byBhIGRhdGEgbWVtb3J5IG9iamVjdCwgb3IgPGNvZGU+TlVMTDwv
Y29kZT4KKyAqICAgICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzLiBDYWxsIDxjb2RlPnVkYXRhX2dl
dE1lbW9yeSgpPC9jb2RlPgorICogICAgICAgICB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBhY3R1
YWwgZGF0YS4KKyAqCisgKiBAc2VlIHVkYXRhX29wZW5DaG9pY2UKKyAqIEBzdGFibGUgSUNVIDIu
MAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVfRVhQT1JUMgordWRhdGFfb3Blbihjb25z
dCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAg
ICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKworLyoqCisgKiBEYXRhIGxvYWRpbmcgZnVu
Y3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZmluZCBhbmQgbG9hZCBlZmZpY2ll
bnRseSBkYXRhIGZvcgorICogSUNVIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgSUNVLgorICogSXQg
cHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgYWxsb3dzIHRvIHNwZWNpZnkgYSBk
YXRhCisgKiB0eXBlIGFuZCBuYW1lIHRvIGZpbmQgYW5kIGxvYWQgdGhlIGRhdGEuCisgKgorICog
PHA+VGhlIGltcGxlbWVudGF0aW9uIGRlcGVuZHMgb24gcGxhdGZvcm0gcHJvcGVydGllcyBhbmQg
dXNlciBwcmVmZXJlbmNlcworICogYW5kIG1heSBpbnZvbHZlIGxvYWRpbmcgc2hhcmVkIGxpYnJh
cmllcyAoRExMcyksIG1hcHBpbmcKKyAqIGZpbGVzIGludG8gbWVtb3J5LCBvciBmb3BlbigpL2Zy
ZWFkKCkgZmlsZXMuCisgKiBJdCBtYXkgYWxzbyBpbnZvbHZlIHVzaW5nIHN0YXRpYyBtZW1vcnkg
b3IgZGF0YWJhc2UgcXVlcmllcyBldGMuCisgKiBTZXZlcmFsIG9yIGFsbCBkYXRhIGl0ZW1zIG1h
eSBiZSBjb21iaW5lZCBpbnRvIG9uZSBlbnRpdHkKKyAqIChETEwsIG1lbW9yeS1tYXBwYWJsZSBm
aWxlKS48L3A+CisgKgorICogPHA+VGhlIGRhdGEgaXMgYWx3YXlzIHByZWNlZGVkIGJ5IGEgaGVh
ZGVyIHRoYXQgaW5jbHVkZXMKKyAqIGEgPGNvZGU+VURhdGFJbmZvPC9jb2RlPiBzdHJ1Y3R1cmUu
CisgKiBUaGUgY2FsbGVyJ3MgPGNvZGU+aXNBY2NlcHRhYmxlKCk8L2NvZGU+IGZ1bmN0aW9uIGlz
IGNhbGxlZCB0byBtYWtlCisgKiBzdXJlIHRoYXQgdGhlIGRhdGEgaXMgdXNlZnVsLiBJdCBtYXkg
YmUgY2FsbGVkIHNldmVyYWwgdGltZXMgaWYgaXQKKyAqIHJlamVjdHMgdGhlIGRhdGEgYW5kIHRo
ZXJlIGlzIG1vcmUgdGhhbiBvbmUgbG9jYXRpb24gd2l0aCBkYXRhCisgKiBtYXRjaGluZyB0aGUg
dHlwZSBhbmQgbmFtZS48L3A+CisgKgorICogPHA+SWYgPGNvZGU+cGF0aD09TlVMTDwvY29kZT4s
IHRoZW4gSUNVIGRhdGEgaXMgbG9hZGVkLgorICogT3RoZXJ3aXNlLCBpdCBpcyBzZXBhcmF0ZWQg
aW50byBhIGJhc2VuYW1lIGFuZCBhIGJhc2VuYW1lLWxlc3MgZGlyZWN0b3J5IHN0cmluZy4KKyAq
IFRoZSBiYXNlbmFtZSBpcyB1c2VkIGFzIHRoZSBkYXRhIHBhY2thZ2UgbmFtZSwgYW5kIHRoZSBk
aXJlY3RvcnkgaXMKKyAqIGxvZ2ljYWxseSBwcmVwZW5kZWQgdG8gdGhlIElDVSBkYXRhIGRpcmVj
dG9yeSBzdHJpbmcuPC9wPgorICoKKyAqIDxwPkZvciBkZXRhaWxzIGFib3V0IElDVSBkYXRhIGxv
YWRpbmcgc2VlIHRoZSBVc2VyIEd1aWRlCisgKiBEYXRhIE1hbmFnZW1lbnQgY2hhcHRlci4gKGh0
dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL2ljdWRhdGEuaHRtbCk8L3A+CisgKgorICog
QHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29yIGEgYmFzZW5hbWUg
Zm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBpbiB0aGUgZmlsZSBz
eXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3IgSUNVIGRhdGEuCisg
KiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRv
IGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNvdXJjZSBidW5kbGVz
IGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAgY29udmVyc2lvbiB0
YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBtYXkgYmUgPGNvZGU+
TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmluZyB0aGF0IHNwZWNp
ZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBpc0FjY2VwdGFibGUgVGhpcyBm
dW5jdGlvbiBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRoYXQgbG9hZGVkIGRhdGEKKyAqICAgICAgICAg
ICAgICAgICAgICAgaXMgdXNlZnVsIGZvciB0aGUgY2xpZW50IGNvZGUuIElmIGl0IHJldHVybnMg
RkFMU0UKKyAqICAgICAgICAgICAgICAgICAgICAgZm9yIGFsbCBkYXRhIGl0ZW1zLCB0aGVuIDxj
b2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4KKyAqICAgICAgICAgICAgICAgICAgICAgd2ls
bCByZXR1cm4gd2l0aCBhbiBlcnJvci4KKyAqIEBwYXJhbSBjb250ZXh0IEFyYml0cmFyeSBwYXJh
bWV0ZXIgdG8gYmUgcGFzc2VkIGludG8gaXNBY2NlcHRhYmxlLgorICogQHBhcmFtIHBFcnJvckNv
ZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJdCBtdXN0IG5vdCBiZSA8Y29kZT5OVUxM
PC9jb2RlPi4KKyAqIEByZXR1cm4gQSBwb2ludGVyIChoYW5kbGUpIHRvIGEgZGF0YSBtZW1vcnkg
b2JqZWN0LCBvciA8Y29kZT5OVUxMPC9jb2RlPgorICogICAgICAgICBpZiBhbiBlcnJvciBvY2N1
cnMuIENhbGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+CisgKiAgICAgICAgIHRvIGdl
dCBhIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhLgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8K
K1VfU1RBQkxFIFVEYXRhTWVtb3J5ICogVV9FWFBPUlQyCit1ZGF0YV9vcGVuQ2hvaWNlKGNvbnN0
IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAg
ICAgICAgICAgIFVEYXRhTWVtb3J5SXNBY2NlcHRhYmxlICppc0FjY2VwdGFibGUsIHZvaWQgKmNv
bnRleHQsCisgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKnBFcnJvckNvZGUpOworCisvKioK
KyAqIENsb3NlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxs
ZWQgdG8gYWxsb3cgdGhlIHN5c3RlbSB0bworICogcmVsZWFzZSByZXNvdXJjZXMgYXNzb2NpYXRl
ZCB3aXRoIHRoaXMgZGF0YSBtZW1vcnkuCisgKiBAcGFyYW0gcERhdGEgVGhlIHBvaW50ZXIgdG8g
ZGF0YSBtZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgdm9p
ZCBVX0VYUE9SVDIKK3VkYXRhX2Nsb3NlKFVEYXRhTWVtb3J5ICpwRGF0YSk7CisKKyNpZiBVX1NI
T1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9CRUdJTgorCisvKioKKyAqIFxjbGFzcyBM
b2NhbFVEYXRhTWVtb3J5UG9pbnRlcgorICogIlNtYXJ0IHBvaW50ZXIiIGNsYXNzLCBjbG9zZXMg
YSBVRGF0YU1lbW9yeSB2aWEgdWRhdGFfY2xvc2UoKS4KKyAqIEZvciBtb3N0IG1ldGhvZHMgc2Vl
IHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3MuCisgKgorICogQHNlZSBMb2NhbFBvaW50
ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICogQHN0YWJsZSBJQ1UgNC40CisgKi8KK1Vf
REVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVEYXRhTWVtb3J5UG9pbnRlciwgVURhdGFN
ZW1vcnksIHVkYXRhX2Nsb3NlKTsKKworVV9OQU1FU1BBQ0VfRU5ECisKKyNlbmRpZgorCisvKioK
KyAqIEdldCB0aGUgcG9pbnRlciB0byB0aGUgYWN0dWFsIGRhdGEgaW5zaWRlIHRoZSBkYXRhIG1l
bW9yeS4KKyAqIFRoZSBkYXRhIGlzIHJlYWQtb25seS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJl
IGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICoKKyAqIEBw
YXJhbSBwRGF0YSBUaGUgcG9pbnRlciB0byBkYXRhIG1lbW9yeSBvYmplY3QKKyAqIEBzdGFibGUg
SUNVIDIuMAorICovCitVX1NUQUJMRSBjb25zdCB2b2lkICogVV9FWFBPUlQyCit1ZGF0YV9nZXRN
ZW1vcnkoVURhdGFNZW1vcnkgKnBEYXRhKTsKKworLyoqCisgKiBHZXQgdGhlIGluZm9ybWF0aW9u
IGZyb20gdGhlIGRhdGEgbWVtb3J5IGhlYWRlci4KKyAqIFRoaXMgYWxsb3dzIHRvIGdldCBhY2Nl
c3MgdG8gdGhlIGhlYWRlciBjb250YWluaW5nCisgKiBwbGF0Zm9ybSBkYXRhIHByb3BlcnRpZXMg
ZXRjLiB3aGljaCBpcyBub3QgcGFydCBvZgorICogdGhlIGRhdGEgaXRzZWxmIGFuZCBjYW4gdGhl
cmVmb3JlIG5vdCBiZSBhY2Nlc3NlZAorICogdmlhIHRoZSBwb2ludGVyIHRoYXQgPGNvZGU+dWRh
dGFfZ2V0TWVtb3J5KCk8L2NvZGU+IHJldHVybnMuCisgKgorICogQHBhcmFtIHBEYXRhIHBvaW50
ZXIgdG8gdGhlIGRhdGEgbWVtb3J5IG9iamVjdAorICogQHBhcmFtIHBJbmZvIHBvaW50ZXIgdG8g
YSBVRGF0YUluZm8gb2JqZWN0OworICogICAgICAgICAgICAgIGl0cyA8Y29kZT5zaXplPC9jb2Rl
PiBmaWVsZCBtdXN0IGJlIHNldCBjb3JyZWN0bHksCisgKiAgICAgICAgICAgICAgdHlwaWNhbGx5
IHRvIDxjb2RlPnNpemVvZihVRGF0YUluZm8pPC9jb2RlPi4KKyAqCisgKiA8Y29kZT4qcEluZm88
L2NvZGU+IHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIFVEYXRhSW5mbyBzdHJ1Y3R1cmUKKyAqIGlu
IHRoZSBkYXRhIG1lbW9yeSBvYmplY3QuIElmIHRoaXMgc3RydWN0dXJlIGlzIHNtYWxsZXIgdGhh
bgorICogPGNvZGU+cEluZm8tPnNpemU8L2NvZGU+LCB0aGVuIHRoZSA8Y29kZT5zaXplPC9jb2Rl
PiB3aWxsIGJlCisgKiBhZGp1c3RlZCBhbmQgb25seSBwYXJ0IG9mIHRoZSBzdHJ1Y3R1cmUgd2ls
bCBiZSBmaWxsZWQuCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VY
UE9SVDIKK3VkYXRhX2dldEluZm8oVURhdGFNZW1vcnkgKnBEYXRhLCBVRGF0YUluZm8gKnBJbmZv
KTsKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNVIGRhdGEg
bG9hZGluZyBwcm9jZXNzIGFuZAorICogYWxsb3dzIHlvdSB0byBmb3JjZSBJQ1UncyBzeXN0ZW0g
ZGF0YSB0byBjb21lIG91dCBvZiBhIHVzZXItc3BlY2lmaWVkCisgKiBhcmVhIGluIG1lbW9yeS4K
KyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBi
ZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL2lj
dWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBpcyB0aGF0IG9mIHRoZSBpY3Ug
Y29tbW9uIGRhdGEgZmlsZSwgYXMgaXMKKyAqIGdlbmVyYXRlZCBieSB0aGUgcGtnZGF0YSB0b29s
IHdpdGggbW9kZT1jb21tb24gb3IgbW9kZT1kbGwuCisgKiBZb3UgY2FuIHJlYWQgaW4gYSB3aG9s
ZSBjb21tb24gbW9kZSBmaWxlIGFuZCBwYXNzIHRoZSBhZGRyZXNzIHRvIHRoZSBzdGFydCBvZiB0
aGUKKyAqIGRhdGEsIG9yICh3aXRoIHRoZSBhcHByb3ByaWF0ZSBsaW5rIG9wdGlvbnMpIHBhc3Mg
aW4gdGhlIHBvaW50ZXIgdG8KKyAqIHRoZSBkYXRhIHRoYXQgaGFzIGJlZW4gbG9hZGVkIGZyb20g
YSBkbGwgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0sCisgKiBhcyBzaG93biBpbiB0aGlzIGNvZGU6
CisgKgorICogICAgICAgZXh0ZXJuIGNvbnN0IGNoYXIgVV9JTVBPUlQgVV9JQ1VEQVRBX0VOVFJZ
X1BPSU5UIFtdOworICogICAgICAgIC8vIFVfSUNVREFUQV9FTlRSWV9QT0lOVCBpcyBzYW1lIGFz
IGVudHJ5IHBvaW50IHNwZWNpZmllZCB0byBwa2dkYXRhIHRvb2wKKyAqICAgICAgIFVFcnJvckNv
ZGUgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAqCisgKiAgICAgICB1ZGF0YV9zZXRDb21tb25E
YXRhKCZVX0lDVURBVEFfRU5UUllfUE9JTlQsICZzdGF0dXMpOworICoKKyAqIEl0IGlzIGltcG9y
dGFudCB0aGF0IHRoZSBkZWNsYXJhdGlvbiBiZSBhcyBhYm92ZS4gVGhlIGVudHJ5IHBvaW50Cisg
KiBtdXN0IG5vdCBiZSBkZWNsYXJlZCBhcyBhbiBleHRlcm4gdm9pZCouCisgKgorICogU3RhcnRp
bmcgd2l0aCBJQ1UgNC40LCBpdCBpcyBwb3NzaWJsZSB0byBzZXQgc2V2ZXJhbCBkYXRhIHBhY2th
Z2VzLAorICogb25lIHBlciBjYWxsIHRvIHRoaXMgZnVuY3Rpb24uCisgKiB1ZGF0YV9vcGVuKCkg
d2lsbCBsb29rIGZvciBkYXRhIGluIHRoZSBtdWx0aXBsZSBkYXRhIHBhY2thZ2VzIGluIHRoZSBv
cmRlcgorICogaW4gd2hpY2ggdGhleSB3ZXJlIHNldC4KKyAqIFRoZSBwb3NpdGlvbiBvZiB0aGUg
bGlua2VkLWluIG9yIGRlZmF1bHQtbmFtZSBJQ1UgLmRhdGEgcGFja2FnZSBpbiB0aGUKKyAqIHNl
YXJjaCBsaXN0IGRlcGVuZHMgb24gd2hlbiB0aGUgZmlyc3QgZGF0YSBpdGVtIGlzIGxvYWRlZCB0
aGF0IGlzIG5vdCBjb250YWluZWQKKyAqIGluIHRoZSBhbHJlYWR5IGV4cGxpY2l0bHkgc2V0IHBh
Y2thZ2VzLgorICogSWYgZGF0YSB3YXMgbG9hZGVkIGltcGxpY2l0bHkgYmVmb3JlIHRoZSBmaXJz
dCBjYWxsIHRvIHRoaXMgZnVuY3Rpb24KKyAqIChmb3IgZXhhbXBsZSwgdmlhIG9wZW5pbmcgYSBj
b252ZXJ0ZXIsIGNvbnN0cnVjdGluZyBhIFVuaWNvZGVTdHJpbmcKKyAqIGZyb20gZGVmYXVsdC1j
b2RlcGFnZSBkYXRhLCB1c2luZyBmb3JtYXR0aW5nIG9yIGNvbGxhdGlvbiBBUElzLCBldGMuKSwK
KyAqIHRoZW4gdGhlIGRlZmF1bHQgZGF0YSB3aWxsIGJlIGZpcnN0IGluIHRoZSBsaXN0LgorICoK
KyAqIFRoaXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVjdCBvbiBhcHBsaWNhdGlvbiAobm9uIElDVSkg
ZGF0YS4gIFNlZSB1ZGF0YV9zZXRBcHBEYXRhKCkKKyAqIGZvciBzaW1pbGFyIGZ1bmN0aW9uYWxp
dHkgZm9yIGFwcGxpY2F0aW9uIGRhdGEuCisgKgorICogQHBhcmFtIGRhdGEgcG9pbnRlciB0byBJ
Q1UgY29tbW9uIGRhdGEKKyAqIEBwYXJhbSBlcnIgb3V0Z29pbmcgZXJyb3Igc3RhdHVzIDxjb2Rl
PlVfVVNJTkdfREVGQVVMVF9XQVJOSU5HLCBVX1VOU1VQUE9SVEVEX0VSUk9SPC9jb2RlPgorICog
QHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRD
b21tb25EYXRhKGNvbnN0IHZvaWQgKmRhdGEsIFVFcnJvckNvZGUgKmVycik7CisKKworLyoqCisg
KiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3JtYWwgSUNVIGRhdGEgbG9hZGluZyBwcm9j
ZXNzIGZvciBhcHBsaWNhdGlvbi1zcGVjaWZpYworICogZGF0YSBhbmQgYWxsb3dzIHlvdSB0byBm
b3JjZSB0aGUgaXQgdG8gY29tZSBvdXQgb2YgYSB1c2VyLXNwZWNpZmllZAorICogcG9pbnRlci4K
KyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBi
ZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2VyZ3VpZGUuaWN1LXByb2plY3Qub3JnL2lj
dWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBpcyB0aGF0IG9mIHRoZSBpY3Ug
Y29tbW9uIGRhdGEgZmlsZSwgbGlrZSAnaWN1ZHQyNmwuZGF0JworICogb3IgdGhlIGNvcnJlc3Bv
bmRpbmcgc2hhcmVkIGxpYnJhcnkgKERMTCkgZmlsZS4KKyAqIFRoZSBhcHBsaWNhdGlvbiBtdXN0
IHJlYWQgaW4gb3Igb3RoZXJ3aXNlIGNvbnN0cnVjdCBhbiBpbWFnZSBvZiB0aGUgZGF0YSBhbmQg
dGhlbgorICogcGFzcyB0aGUgYWRkcmVzcyBvZiBpdCB0byB0aGlzIGZ1bmN0aW9uLgorICoKKyAq
CisgKiBXYXJuaW5nOiAgc2V0QXBwRGF0YSB3aWxsIHNldCBhIFVfVVNJTkdfREVGQVVMVF9XQVJO
SU5HIGNvZGUgaWYKKyAqICAgICAgICAgICBkYXRhIHdpdGggdGhlIHNwZWNpZmVkIHBhdGggdGhh
dCBoYXMgYWxyZWFkeSBiZWVuIG9wZW5lZCwgb3IKKyAqICAgICAgICAgICBpZiBzZXRBcHBEYXRh
IHdpdGggdGhlIHNhbWUgcGF0aCBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZC4KKyAqICAgICAgICAg
ICBBbnkgc3VjaCBjYWxscyB0byBzZXRBcHBEYXRhIHdpbGwgaGF2ZSBubyBlZmZlY3QuCisgKgor
ICoKKyAqIEBwYXJhbSBwYWNrYWdlTmFtZSB0aGUgcGFja2FnZSBuYW1lIGJ5IHdoaWNoIHRoZSBh
cHBsaWNhdGlvbiB3aWxsIHJlZmVyCisgKiAgICAgICAgICAgICB0byAob3BlbikgdGhpcyBkYXRh
CisgKiBAcGFyYW0gZGF0YSBwb2ludGVyIHRvIHRoZSBkYXRhCisgKiBAcGFyYW0gZXJyIG91dGdv
aW5nIGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RFRkFVTFRfV0FSTklORywgVV9VTlNVUFBP
UlRFRF9FUlJPUjwvY29kZT4KKyAqIEBzZWUgdWRhdGFfc2V0Q29tbW9uRGF0YQorICogQHN0YWJs
ZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRBcHBEYXRh
KGNvbnN0IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25zdCB2b2lkICpkYXRhLCBVRXJyb3JDb2RlICpl
cnIpOworCisvKioKKyAqIFBvc3NpYmxlIHNldHRpbmdzIGZvciB1ZGF0YV9zZXRGaWxlQWNjZXNz
KCkKKyAqIEBzZWUgdWRhdGFfc2V0RmlsZUFjY2VzcworICogQHN0YWJsZSBJQ1UgMy40CisgKi8K
K3R5cGVkZWYgZW51bSBVRGF0YUZpbGVBY2Nlc3MgeworICAgIC8qKiBJQ1UgbG9va3MgZm9yIGRh
dGEgaW4gc2luZ2xlIGZpbGVzIGZpcnN0LCB0aGVuIGluIHBhY2thZ2VzLiAoZGVmYXVsdCkgQHN0
YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRVNfRklSU1QsCisgICAgLyoqIEFuIGFsaWFz
IGZvciB0aGUgZGVmYXVsdCBhY2Nlc3MgbW9kZS4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURB
VEFfREVGQVVMVF9BQ0NFU1MgPSBVREFUQV9GSUxFU19GSVJTVCwKKyAgICAvKiogSUNVIG9ubHkg
bG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzLCBub3QgZnJvbSBzaW5nbGUgZmlsZXMuIEBzdGFibGUg
SUNVIDMuNCAqLworICAgIFVEQVRBX09OTFlfUEFDS0FHRVMsCisgICAgLyoqIElDVSBsb2FkcyBk
YXRhIGZyb20gcGFja2FnZXMgZmlyc3QsIGFuZCBvbmx5IGZyb20gc2luZ2xlIGZpbGVzCisgICAg
ICAgIGlmIHRoZSBkYXRhIGNhbm5vdCBiZSBmb3VuZCBpbiBhIHBhY2thZ2UuIEBzdGFibGUgSUNV
IDMuNCAqLworICAgIFVEQVRBX1BBQ0tBR0VTX0ZJUlNULAorICAgIC8qKiBJQ1UgZG9lcyBub3Qg
YWNjZXNzIHRoZSBmaWxlIHN5c3RlbSBmb3IgZGF0YSBsb2FkaW5nLiBAc3RhYmxlIElDVSAzLjQg
Ki8KKyAgICBVREFUQV9OT19GSUxFUywKKyAgICAvKiogTnVtYmVyIG9mIHJlYWwgVURhdGFGaWxl
QWNjZXNzIHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRV9BQ0NFU1Nf
Q09VTlQKK30gVURhdGFGaWxlQWNjZXNzOworCisvKioKKyAqIFRoaXMgZnVuY3Rpb24gbWF5IGJl
IGNhbGxlZCB0byBjb250cm9sIGhvdyBJQ1UgbG9hZHMgZGF0YS4gSXQgbXVzdCBiZSBjYWxsZWQK
KyAqIGJlZm9yZSBhbnkgSUNVIGRhdGEgaXMgbG9hZGVkLCBpbmNsdWRpbmcgYXBwbGljYXRpb24g
ZGF0YSBsb2FkZWQgd2l0aCAKKyAqIHVyZXMvUmVzb3VyY2VCdW5kbGUgb3IgdWRhdGEgQVBJcy4g
VGhpcyBmdW5jdGlvbiBpcyBub3QgbXVsdGl0aHJlYWQgc2FmZS4gIAorICogVGhlIHJlc3VsdHMg
b2YgY2FsbGluZyBpdCB3aGlsZSBvdGhlciB0aHJlYWRzIGFyZSBsb2FkaW5nIGRhdGEgYXJlIHVu
ZGVmaW5lZC4KKyAqIEBwYXJhbSBhY2Nlc3MgVGhlIHR5cGUgb2YgZmlsZSBhY2Nlc3MgdG8gYmUg
dXNlZAorICogQHBhcmFtIHN0YXR1cyBFcnJvciBjb2RlLgorICogQHNlZSBVRGF0YUZpbGVBY2Nl
c3MKKyAqIEBzdGFibGUgSUNVIDMuNCAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3Vk
YXRhX3NldEZpbGVBY2Nlc3MoVURhdGFGaWxlQWNjZXNzIGFjY2VzcywgVUVycm9yQ29kZSAqc3Rh
dHVzKTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2lj
dS91bmljb2RlL3VtaXNjLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VtaXNjLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDg1NDUxZmM3NjdjMDU4MzVmNmMxNWY1NjZmMzU2MmUyZDRhZjgzNAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdW1pc2MuaApAQCAtMCwwICsxLDYwIEBA
CisvKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgorKiAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA2LCBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisqICAgQ29ycG9yYXRpb24gYW5kIG90aGVycy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgZmlsZSBuYW1lOiAgdW1pc2Mu
aAorKiAgIGVuY29kaW5nOiAgIFVTLUFTQ0lJCisqICAgdGFiIHNpemU6ICAgOCAobm90IHVzZWQp
CisqICAgaW5kZW50YXRpb246NAorKgorKiAgIGNyZWF0ZWQgb246IDE5OTlvY3QxNQorKiAgIGNy
ZWF0ZWQgYnk6IE1hcmt1cyBXLiBTY2hlcmVyCisqLworCisjaWZuZGVmIFVNSVNDX0gKKyNkZWZp
bmUgVU1JU0NfSAorCisjaW5jbHVkZSAidW5pY29kZS91dHlwZXMuaCIKKworLyoqCisgKiBcZmls
ZQorICogXGJyaWVmICBDIEFQSTptaXNjIGRlZmluaXRpb25zIAorICoKKyAqICBUaGlzIGZpbGUg
Y29udGFpbnMgbWlzY2VsbGFuZW91cyBkZWZpbml0aW9ucyBmb3IgdGhlIEMgQVBJcy4gCisgKi8K
KworVV9DREVDTF9CRUdJTgorCisvKiogQSBzdHJ1Y3QgcmVwcmVzZW50aW5nIGEgcmFuZ2Ugb2Yg
dGV4dCBjb250YWluaW5nIGEgc3BlY2lmaWMgZmllbGQgCisgKiAgQHN0YWJsZSBJQ1UgMi4wCisg
Ki8KK3R5cGVkZWYgc3RydWN0IFVGaWVsZFBvc2l0aW9uIHsKKyAgLyoqCisgICAqIFRoZSBmaWVs
ZCAKKyAgICogQHN0YWJsZSBJQ1UgMi4wCisgICAqLworICBpbnQzMl90IGZpZWxkOworICAvKioK
KyAgICogVGhlIHN0YXJ0IG9mIHRoZSB0ZXh0IHJhbmdlIGNvbnRhaW5pbmcgZmllbGQgCisgICAq
IEBzdGFibGUgSUNVIDIuMAorICAgKi8KKyAgaW50MzJfdCBiZWdpbkluZGV4OworICAvKiogCisg
ICAqIFRoZSBsaW1pdCBvZiB0aGUgdGV4dCByYW5nZSBjb250YWluaW5nIGZpZWxkIAorICAgKiBA
c3RhYmxlIElDVSAyLjAKKyAgICovCisgIGludDMyX3QgZW5kSW5kZXg7Cit9IFVGaWVsZFBvc2l0
aW9uOworCisjaWYgIVVDT05GSUdfTk9fU0VSVklDRQorLyoqCisgKiBPcGFxdWUgdHlwZSByZXR1
cm5lZCBieSByZWdpc3Rlckluc3RhbmNlLCByZWdpc3RlckZhY3RvcnkgYW5kIHVucmVnaXN0ZXIg
Zm9yIHNlcnZpY2UgcmVnaXN0cmF0aW9uLgorICogQHN0YWJsZSBJQ1UgMi42CisgKi8KK3R5cGVk
ZWYgY29uc3Qgdm9pZCogVVJlZ2lzdHJ5S2V5OworI2VuZGlmCisKK1VfQ0RFQ0xfRU5ECisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCBlMzRkMzdmOTM2ZWNmM2I4MjcxMDIzMDAxNzE3
ZDk4ZDdjMzczZjQ4Li5hZDRhY2VjYjdkZGRkYTg3YmYwMjdkOWRhYTFiYTNjYzdiMDE2MTMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMjk0LDYgKzI5NCw0MiBAQCBpZiAoTk9UIFVTRV9TWVNU
RU1fTUFMTE9DKQogICAgIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMgYm1hbGxvYykKIGVuZGlm
ICgpCiAKK3NldChXVEZfQlJFQUtJTkdfUlVMRVNfU09VUkNFUworICAgIHRleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKKyAgICB0ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQKKyAgICB0
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKKyAg
ICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50
eHQKKykKKworbWFjcm8oR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMgX2lucHV0IF9zeW1ib2xOYW1l
IF9vdXRwdXQpCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgJHtfb3V0
cHV0fQorICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQorICAgICAgICBERVBFTkRTICR7
Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKKyAgICAgICAg
Q09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dURl9ESVJ9L3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IC1pbmNsdWRlRGVmaW5lcyAke19z
eW1ib2xOYW1lfVJ1bGVzICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGls
b2d1ZS50eHQgPiAke19vdXRwdXR9CisgICAgICAgIFZFUkJBVElNKQorICAgIGxpc3QoQVBQRU5E
IFdURl9TT1VSQ0VTICR7X291dHB1dH0pCisgICAgQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtf
aW5wdXR9ICR7X291dHB1dH0pCitlbmRtYWNybygpCisKK2ZvcmVhY2ggKF9maWxlICR7V1RGX0JS
RUFLSU5HX1JVTEVTX1NPVVJDRVN9KQorICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX25hbWUg
JHtfZmlsZX0gTkFNRV9XRSkKKyAgICBHRU5FUkFURV9CUkVBS0lOR19SVUxFUygke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vJHtfZmlsZX0gJHtfbmFtZX0gJHtERVJJVkVEX1NPVVJDRVNfV1RG
X0RJUn0vQnJlYWtpbmdSdWxlcy8ke19uYW1lfS5jcHApCitlbmRmb3JlYWNoICgpCisKK2FkZF9j
dXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJl
YWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgTUFJTl9ERVBF
TkRFTkNZICR7V1RGX0RJUn0vd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0ZUJyZWFraW5n
UnVsZVN0cmluZ3MucHkKKyAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90
ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorICAgIENP
TU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZfRElSfS93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAtaW5jbHVkZURlZmluZXMgY3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCA+ICR7REVSSVZFRF9T
T1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LmNwcAorICAgIFZFUkJBVElNKQorbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMgJHtERVJJVkVEX1NP
VVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwKQorQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICR7REVS
SVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCkKKwogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKICAgICB1bmljb2RlL2ljdS9D
b2xsYXRvcklDVS5jcHAKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjZjMjRhYTY0MWIyMTc4Y2Y3MmY2ZjBiZGVhYTE0YzNmODMxMzg0OTEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0wLDAgKzEsNzIgQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK0JSRUFLSU5HX1JVTEVTX0ZJ
TEVTID0gXAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmJy
ayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmJyayBcCisg
ICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmJyayBcCisgICAg
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuYnJrIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5icmsgXAorICAg
IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5icmsgXAorICAg
IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5icmsgXAor
ICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5icmsgXAor
ICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5icmsK
KworQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlM9JChCUkVBS0lOR19SVUxFU19GSUxFUzouYnJr
PS5jcHApCisKK2lmZXEgKCQoc2hlbGwgJChDQykgLXN0ZD1nbnUrKzExIC14IGMrKyAtRSAtUCAt
ZE0gJChTREtfRkxBR1MpICQoRlJBTUVXT1JLX0ZMQUdTKSAkKEhFQURFUl9GTEFHUykgLUkgJChX
VEYpIC1pbmNsdWRlICIkKFdURikvd3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8IGdyZXAgJyBX
VEZfUExBVEZPUk1fSU9TICcgfCBjdXQgLWQnICcgLWYzKSwgMSkKKyAgICBXVEZfUExBVEZPUk1f
SU9TID0gMQorZWxzZQorICAgIFdURl9QTEFURk9STV9JT1MgPSAwCitlbmRpZgorCitpZmVxICgk
KFdURl9QTEFURk9STV9JT1MpLCAxKQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VS
U09SX01PVkVNRU5UID0gMAorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAwCitlbHNlCisJ
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQgPSAkKEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVCkKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMQorZW5kaWYK
KworREVQRU5ERU5DSUVTID0gJChCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUykKKworaWZlcSAo
JChIQVZFX0lDVUdFTkJSSyksIDEpCitERVBFTkRFTkNJRVMgKz0gJChCUkVBS0lOR19SVUxFU19G
SUxFUykKK2VuZGlmCisKK2FsbCA6ICQoREVQRU5ERU5DSUVTKQorCitCcmVha2luZ1J1bGVzLyUu
YnJrIDogQnJlYWtpbmdSdWxlcy8lLnBwCisJaWN1Z2VuYnJrIC1jIC1yICQ8IC1vICRACisKK0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCA6IEJyZWFraW5nUnVs
ZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwCisJcHl0aG9uICQoV1RGKS9TY3JpcHRz
L0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMgJDwgPiAkQAorCitCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS5jcHAgOiBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS5wcAorCXB5dGhvbiAkKFdURikvU2NyaXB0cy9H
ZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgbGluZUJyZWFrSXRlcmF0b3IkKlJ1bGVzICQ8
ID4gJEAKKworQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMucHAgOiAk
KFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
dHh0CisJLXVuaWZkZWYgLURBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9JChBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVOVCkgLURIQVZFX0VYVFJBX0lDVV9OQU1FRF9T
RVRTPSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUykgLW8gJEAgJDwKKworQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvciUucHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvciUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisJLWNhdCAkPyB8IHVuaWZkZWYgLURBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQ9JChBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQpIC1ESEFWRV9FWFRS
QV9JQ1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRACmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExZDQxOWJhZjg4ZGYzMTg5
NTUwNDdjZTNiNDVkMmZlNTRiZGMyZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApAQCAt
MCwwICsxLDE3NiBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9u
IGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKKyMgPGh0dHA6Ly9zb3Vy
Y2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNl
L2RhdGEvYnJraXRyLz4uCisjIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9tIHRoZSBvcmlnaW5h
bCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6CisjICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBT
cGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7CisjICogUmVt
b3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVu
ZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOworIyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBh
IGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciB2aXJhbWEgc2lnbnMgb2YgSW5kaWMgbGFuZ3VhZ2Vz
IGV4Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwgYW5kOworIyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJl
dmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRh
a2FyYSB2b2ljZWQgbWFya3MuCisjICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRv
ciBzeW1ib2xzLgorCiskQ1IgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ1J9
XTsKKyRMRiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1dOworJENvbnRy
b2wgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsKKyRWb2ljZU1hcmtz
ID0gW1x1RkY5RVx1RkY5Rl07ICMgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FuYSB2b2ljZWQg
bWFya3MKKyRFeHRlbmQgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRW
b2ljZU1hcmtzIC0gW1x1MEUzMCBcdTBFMzIgXHUwRTQ1IFx1MEVCMCBcdTBFQjJdXTsKKyRTcGFj
aW5nTWFyayA9IFtbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31dIC0gJEV4dGVu
ZF07CiskTCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOworJFYgICAg
ICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFZ9XTsKKyRUICAgICAgID0gW1xwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07CiskTFYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gTFZ9XTsKKyRMVlQgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBMVlR9XTsKKyRIaW4wICAgID0gW1x1MDkwNS1cdTA5MzldOyAjIERldmFuYWdhcmkgTGV0dGVy
IEEsLi4uLEhhCiskSGluViAgICA9IFx1MDk0RDsgIyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCisk
SGluMSAgICA9IFtcdTA5MTUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRlciBLYSwuLi4sSGEK
KyRCZW4wICAgID0gW1x1MDk4NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCisk
QmVuViAgICA9IFx1MDlDRDsgIyBCZW5nYWxpIFNpZ24gVmlyYW1hCiskQmVuMSAgICA9IFtcdTA5
OTUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEKKyRQYW4wICAgID0gW1x1MEEw
NS1cdTBBMzldOyAjIEd1cm11a2hpIExldHRlciBBLC4uLixIYQorJFBhblYgICAgPSBcdTBBNEQ7
ICMgR3VybXVraGkgU2lnbiBWaXJhbWEKKyRQYW4xICAgID0gW1x1MEExNS1cdTBBMzldOyAjIEd1
cm11a2hpIExldHRlciBLYSwuLi4sSGEKKyRHdWowICAgID0gW1x1MEE4NS1cdTBBQjldOyAjIEd1
amFyYXRpIExldHRlciBBLC4uLixIYQorJEd1alYgICAgPSBcdTBBQ0Q7ICMgR3VqYXJhdGkgU2ln
biBWaXJhbWEKKyRHdWoxICAgID0gW1x1MEE5NS1cdTBBQjldOyAjIEd1amFyYXRpIExldHRlciBL
YSwuLi4sSGEKKyRPcmkwICAgID0gW1x1MEIwNS1cdTBCMzldOyAjIE9yaXlhIExldHRlciBBLC4u
LixIYQorJE9yaVYgICAgPSBcdTBCNEQ7ICMgT3JpeWEgU2lnbiBWaXJhbWEKKyRPcmkxICAgID0g
W1x1MEIxNS1cdTBCMzldOyAjIE9yaXlhIExldHRlciBLYSwuLi4sSGEKKyRUZWwwICAgID0gW1x1
MEMwNS1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKKyRUZWxWICAgID0gXHUwQzRE
OyAjIFRlbHVndSBTaWduIFZpcmFtYQorJFRlbDEgICAgPSBbXHUwQzE0LVx1MEMzOV07ICMgVGVs
dWd1IExldHRlciBLYSwuLi4sSGEKKyRLYW4wICAgID0gW1x1MEM4NS1cdTBDQjldOyAjIEthbm5h
ZGEgTGV0dGVyIEEsLi4uLEhhCiskS2FuViAgICA9IFx1MENDRDsgIyBLYW5uYWRhIFNpZ24gVmly
YW1hCiskS2FuMSAgICA9IFtcdTBDOTUtXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4uLixI
YQorJE1hbDAgICAgPSBbXHUwRDA1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExldHRlciBBLC4uLixI
YSAKKyRNYWxWICAgID0gXHUwRDREOyAjIE1hbGF5YWxhbSBTaWduIFZpcmFtYQorJE1hbDEgICAg
PSBbXHUwRDE1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQorJFJJICAgICAg
PSBbXFUwMDAxRjFFNi1cVTAwMDFGMUZGXTsgIyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCisk
WldKICAgICA9IFx1MjAwRDsgIyBaZXJvIHdpZHRoIGpvaW5lcgorJEVtb2ppVmFyID0gW1x1RkUw
Rl07ICMgRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCisKKyNpZiBBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2Rjkg
XHUyNzY0IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAx
RjNDQyBcVTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0
NkUtXFUwMDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgx
LVxVMDAwMUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBc
VTAwMDFGNUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUw
MDAxRjY0RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBw
YXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQg
XHUyNkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUw
MDAxRjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAw
MUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFG
NDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRB
QSBcVTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUt
XFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxV
MDAwMUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpw
YXRyaWNrIG1vZGlmaWVycworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQg
XFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0OEJdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBh
dGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1c
dTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFG
M0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2
Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEt
XFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxV
MDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAw
MDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0
cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAw
MDFGM0ZGXTsgIyBGaXR6cGF0cmljayBtb2RpZmllcnMKKyEhY2hhaW47CisKKyNpZiBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQKKworICAgICEhUklOb0NoYWluOworCisjZW5kaWYKKworISFmb3J3
YXJkOworJENSICRMRjsKKyRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7CisoJExWIHwgJFYpICgk
ViB8ICRUKTsKKygkTFZUIHwgJFQpICRUOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
CisKKyAgICAkUkkgJFJJICRFeHRlbmQqIC8gJFJJOworICAgICRSSSAkUkkgJEV4dGVuZCo7Cisg
ICAgW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOworICAgIFteJENvbnRyb2wgJENSICRMRl0g
JFNwYWNpbmdNYXJrOworCisjZWxzZQorCisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5k
OworICAgIFteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOworICAgICRSSSAkUkkgLyAk
Ukk7CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4wICRIaW5WICRIaW4xOyAjIERldmFu
YWdhcmkgVmlyYW1hIChmb3J3YXJkKQorJEJlbjAgJEJlblYgJEJlbjE7ICMgQmVuZ2FsaSBWaXJh
bWEgKGZvcndhcmQpCiskUGFuMCAkUGFuViAkUGFuMTsgIyBHdXJtdWtoaSBWaXJhbWEgKGZvcndh
cmQpCiskR3VqMCAkR3VqViAkR3VqMTsgIyBHdWphcmF0aSBWaXJhbWEgKGZvcndhcmQpCiskT3Jp
MCAkT3JpViAkT3JpMTsgIyBPcml5YSBWaXJhbWEgKGZvcndhcmQpCiskVGVsMCAkVGVsViAkVGVs
MTsgIyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQorJEthbjAgJEthblYgJEthbjE7ICMgS2FubmFk
YSBWaXJhbWEgKGZvcndhcmQpCiskTWFsMCAkTWFsViAkTWFsMTsgIyBNYWxheWFsYW0gVmlyYW1h
IChmb3J3YXJkKQorJFpXSiAkRW1vamlGb3JTZXFzOyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldK
IHNlcXVlbmNlcworJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7ICMgRG9udCBi
cmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxl
Y3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCishIXJldmVyc2U7CiskTEYgJENSOworKCRM
IHwgJFYgfCAkTFYgfCAkTFZUKSAkTDsKKygkViB8ICRUKSAoJExWIHwgJFYpOworJFQgKCRMVlQg
fCAkVCk7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFeHRlbmQqICRS
SSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQqICRSSSAkUkk7CisgICAgJEV4
dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRy
b2wgJENSICRMRl07CisKKyNlbHNlCisKKyAgICAkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1Ig
JExGXTsKKyAgICAkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkUkkgJFJJ
IC8gJFJJICRSSTsKKyAgICAkUkkgJFJJOworCisjZW5kaWYKKworJEhpbjEgJEhpblYgJEhpbjA7
ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQorJEJlbjEgJEJlblYgJEJlbjA7ICMgQmVu
Z2FsaSBWaXJhbWEgKGJhY2t3YXJkKQorJFBhbjEgJFBhblYgJFBhbjA7ICMgR3VybXVraGkgVmly
YW1hIChiYWNrd2FyZCkKKyRHdWoxICRHdWpWICRHdWowOyAjIEd1amFyYXRpIFZpcmFtYSAoYmFj
a3dhcmQpCiskT3JpMSAkT3JpViAkT3JpMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQor
JFRlbDEgJFRlbFYgJFRlbDA7ICMgVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCiskS2FuMSAkS2Fu
ViAkS2FuMDsgIyBLYW5uYWRhIFZpcmFtYSAoYmFja3dhcmQpCiskTWFsMSAkTWFsViAkTWFsMDsg
IyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKKyRFbW9qaUZvclNlcXMgJFpXSjsgIyBEb250
IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1v
amlGb3JNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkg
d2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorCisjaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIXNhZmVfcmV2ZXJzZTsKKyAgICAkUkkg
JFJJKzsKKyAgICBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOworICAgICEh
c2FmZV9mb3J3YXJkOworICAgICRSSSAkUkkrOworICAgICRFbW9qaUZvck1vZHMgWyRFbW9qaVZh
ciAkRW1vamlNb2RzXSs7CisKKyNlbHNlCisKKyAgICBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAk
RW1vamlGb3JNb2RzOworICAgICRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7
CisgICAgISFzYWZlX3JldmVyc2U7CisgICAgISFzYWZlX2ZvcndhcmQ7CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yRXBpbG9ndWUudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiYzcwNjZhYzQyMGY5MTdhZWEz
MDA5ZGU1Njc0ZmJhZGM3YTY0ODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKQEAgLTAsMCAr
MSwzNzIgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJp
Z2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5
cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRBSSA9IFs6TGluZUJyZWFrID0gQW1iaWd1b3VzOl07
CiskQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsKKyRCQSA9IFtbOkxpbmVCcmVhayA9
IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsKKyRCQiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVm
b3JlOl07CiskQksgPSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOworJEIyID0gWzpM
aW5lQnJlYWsgPSBCcmVha19Cb3RoOl07CiskQ0IgPSBbOkxpbmVCcmVhayA9IENvbnRpbmdlbnRf
QnJlYWs6XTsKKyRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246XTsKKyRDTSA9
IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsKKyRDUCA9IFs6TGluZUJyZWFrID0gQ2xv
c2VfUGFyZW50aGVzaXM6XTsKKyRDUiA9IFs6TGluZUJyZWFrID0gQ2FycmlhZ2VfUmV0dXJuOl07
CiskRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0gJEVYX1NVQl07CiskR0wgPSBb
OkxpbmVCcmVhayA9IEdsdWU6XTsKKworI2lmIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMKKwor
ICAgICRITCA9IFs6TGluZUJyZWFrID0gSGVicmV3X0xldHRlcjpdOworCisjZWxzZQorCisgICAg
JEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsKKworI2VuZGlmCisKKyRIWSA9IFs6TGlu
ZUJyZWFrID0gSHlwaGVuOl07CiskSDIgPSBbOkxpbmVCcmVhayA9IEgyOl07CiskSDMgPSBbOkxp
bmVCcmVhayA9IEgzOl07CiskSUQgPSBbW1tbOkxpbmVCcmVhayA9IElkZW9ncmFwaGljOl0gLSAk
Q0pdICRJRF9BRERdIC0gJElEX1NVQl07CiskSU4gPSBbWzpMaW5lQnJlYWsgPSBJbnNlcGFyYWJs
ZTpdIC0gJElOX1NVQl07CiskSVMgPSBbWzpMaW5lQnJlYWsgPSBJbmZpeF9OdW1lcmljOl0gLSAk
SVNfU1VCXTsKKyRKTCA9IFs6TGluZUJyZWFrID0gSkw6XTsKKyRKViA9IFs6TGluZUJyZWFrID0g
SlY6XTsKKyRKVCA9IFs6TGluZUJyZWFrID0gSlQ6XTsKKyRMRiA9IFs6TGluZUJyZWFrID0gTGlu
ZV9GZWVkOl07CiskTkwgPSBbOkxpbmVCcmVhayA9IE5leHRfTGluZTpdOworJE5TID0gW1tbWzpM
aW5lQnJlYWsgPSBOb25zdGFydGVyOl0gLSAkQ0pdICROU19BRERdIC0gJE5TX1NVQl07CiskTlUg
PSBbOkxpbmVCcmVhayA9IE51bWVyaWM6XTsKKyRPUCA9IFs6TGluZUJyZWFrID0gT3Blbl9QdW5j
dHVhdGlvbjpdOworJFBPID0gW1s6TGluZUJyZWFrID0gUG9zdGZpeF9OdW1lcmljOl0gLSAkUE9f
U1VCXTsKKyRQUiA9IFtbOkxpbmVCcmVhayA9IFByZWZpeF9OdW1lcmljOl0gLSAkUFJfU1VCXTsK
KyRRVSA9IFs6TGluZUJyZWFrID0gUXVvdGF0aW9uOl07CiskUkkgPSBbXFUwMDAxRjFFNi1cVTAw
MDFGMUZGXTsKKyRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07CiskU0cgPSBb
OkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOworJFNQID0gWzpMaW5lQnJlYWsgPSBTcGFjZTpdOwor
JFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07CiskV0ogPSBbOkxpbmVCcmVhayA9
IFdvcmRfSm9pbmVyOl07CiskWFggPSBbOkxpbmVCcmVhayA9IFVua25vd246XTsKKyRaVyA9IFs6
TGluZUJyZWFrID0gWldTcGFjZTpdOworJFpXSiA9IFx1MjAwRDsKKyRFbW9qaVZhciA9IFx1RkUw
RjsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEVtb2ppRm9yU2VxcyA9
IFtcdTI2NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUwMDAxRjMwOCBcVTAwMDFGM0MzLVxVMDAw
MUYzQzQgXFUwMDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAwMUYzRjMgXFUwMDAxRjQ0MSBcVTAwMDFG
NDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDZGIFxVMDAwMUY0NzEgXFUwMDAxRjQ3
MyBcVTAwMDFGNDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MiBcVTAwMDFGNDg2LVxVMDAwMUY0ODcg
XFUwMDAxRjQ4QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTggXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxV
MDAwMUY2NEIgXFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAw
MDFGNkI2XTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAk
RW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1MjcwRCBcVTAwMDFGMzg1IFxV
MDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxVMDAwMUYzQ0IgXFUwMDAxRjQ0Mi1cVTAw
MDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAx
RjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0
ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1NzUgXFUwMDAxRjU5MCBcVTAwMDFGNTk1
IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBc
VTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwIFxVMDAwMUY5MThdIDsg
IyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbHNlCisKKyAgICAk
RW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ4Ql07
CisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBBLVx1MjcwQyBcVTAwMDFGMzg1IFxV
MDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0M3IFxVMDAwMUYzQ0EgXFUwMDAxRjQ0Mi1cVTAw
MDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAx
RjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0
ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3
IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBc
VTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisj
ZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYzRkZdOworJGRpY3Rpb25h
cnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOworJEFMUGx1cyA9IFskQUwgJEFJ
ICRTQSAkU0cgJFhYXTsKKyRBTGNtID0gJEFMUGx1cyAkQ00qOworJEJBY20gPSAkQkEgJENNKjsK
KyRCQmNtID0gJEJCICRDTSo7CiskQjJjbSA9ICRCMiAkQ00qOworJENMY20gPSAkQ0wgJENNKjsK
KyRDUGNtID0gJENQICRDTSo7CiskRVhjbSA9ICRFWCAkQ00qOworJEdMY20gPSAkR0wgJENNKjsK
KyRITGNtID0gJEhMICRDTSo7CiskSFljbSA9ICRIWSAkQ00qOworJEgyY20gPSAkSDIgJENNKjsK
KyRIM2NtID0gJEgzICRDTSo7CiskSURjbSA9ICRJRCAkQ00qOworJElOY20gPSAkSU4gJENNKjsK
KyRJU2NtID0gJElTICRDTSo7CiskSkxjbSA9ICRKTCAkQ00qOworJEpWY20gPSAkSlYgJENNKjsK
KyRKVGNtID0gJEpUICRDTSo7CiskTlNjbSA9ICROUyAkQ00qOworJE5VY20gPSAkTlUgJENNKjsK
KyRPUGNtID0gJE9QICRDTSo7CiskUE9jbSA9ICRQTyAkQ00qOworJFBSY20gPSAkUFIgJENNKjsK
KyRRVWNtID0gJFFVICRDTSo7CiskUkljbSA9ICRSSSAkQ00qOworJFNZY20gPSAkU1kgJENNKjsK
KyRXSmNtID0gJFdKICRDTSo7CisKKyEhZm9yd2FyZDsKKyRDQU5fQ00gPSBbXiRTUCAkQksgJENS
ICRMRiAkTkwgJFpXICRDTV07CiskQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5MICRaVyAk
Q01dOworJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsKKyRBTF9G
T0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRHTCAkT1AgJFFVICRCQSAk
SFkgJE5TICRJTiAkTlUgJEFMUGx1c107CiskQUxfRk9MTE9XID0gWyRBTF9GT0xMT1dfTk9DTSAk
QUxfRk9MTE9XX0NNXTsKKyRMQjRCcmVha3MgPSBbJEJLICRDUiAkTEYgJE5MXTsKKyRMQjROb25C
cmVha3MgPSBbXiRCSyAkQ1IgJExGICROTF07CiskTEI4QnJlYWtzID0gWyRMQjRCcmVha3MgJFpX
XTsKKyRMQjhOb25CcmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOworJExCMThOb25C
cmVha3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsKKyRMQjE4QnJlYWtzID0gWyRMQjhCcmVh
a3MgJFNQXTsKKyRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsKKyRBTFBs
dXMgJENNKzsKKyRCQSAkQ00rOworJEJCICRDTSs7CiskQjIgJENNKzsKKyRDTCAkQ00rOworJENQ
ICRDTSs7CiskRVggJENNKzsKKyRHTCAkQ00rOworJEhMICRDTSs7CiskSFkgJENNKzsKKyRIMiAk
Q00rOworJEgzICRDTSs7CiskSUQgJENNKzsKKyRJTiAkQ00rOworJElTICRDTSs7CiskSkwgJENN
KzsKKyRKViAkQ00rOworJEpUICRDTSs7CiskTlMgJENNKzsKKyROVSAkQ00rOworJE9QICRDTSs7
CiskUE8gJENNKzsKKyRQUiAkQ00rOworJFFVICRDTSs7CiskUkkgJENNKzsKKyRTWSAkQ00rOwor
JFdKICRDTSs7CiskQ1IgJExGIHsxMDB9OworJExCNE5vbkJyZWFrcz8gJExCNEJyZWFrcyB7MTAw
fTsKKyRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OworJENNKyAkTEI0QnJlYWtzIHsxMDB9
OworJExCNE5vbkJyZWFrcyBbJFNQICRaV107CiskQ0FOX0NNICRDTSogWyRTUCAkWlddOworJENN
KyBbJFNQICRaV107CiskRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAk
RW1vamlGb3JTZXFzOworJENBTl9DTSAkQ00rOworJENNKzsKKyRDQU5fQ00gJENNKiAkV0pjbTsK
KyRMQjhOb25CcmVha3MgJFdKY207CiskQ00rICRXSmNtOworJFdKY20gJENBTlRfQ007CiskV0pj
bSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOVF9DTTsKK1tb
JExCOE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOworJENNKyBHTGNtOwor
JExCOE5vbkJyZWFrcyAkQ0w7CiskQ0FOX0NNICRDTSogJENMOworJENNKyAkQ0w7CiskTEI4Tm9u
QnJlYWtzICRDUDsKKyRDQU5fQ00gJENNKiAkQ1A7CiskQ00rICRDUDsKKyRMQjhOb25CcmVha3Mg
JEVYOworJENBTl9DTSAkQ00qICRFWDsKKyRDTSsgJEVYOworJExCOE5vbkJyZWFrcyAkSVM7Cisk
Q0FOX0NNICRDTSogJElTOworJENNKyAkSVM7CiskTEI4Tm9uQnJlYWtzICRTWTsKKyRDQU5fQ00g
JENNKiAkU1k7CiskQ00rICRTWTsKKyRPUGNtICRTUCogJENBTl9DTSAkQ00qOworJE9QY20gJFNQ
KiAkQ0FOVF9DTTsKKyRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsKKyRRVWNtICRTUCogJE9Q
Y207CisoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsKKyRCMmNtICRTUCogJEIyY207CiskTEIx
OE5vbkJyZWFrcyAkQ00qICRRVWNtOworJENNKyAkUVVjbTsKKyRRVWNtIC4/OworJFFVY20gJExC
MThOb25CcmVha3MgJENNKjsKKyRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwgJEhZY20gfCAk
TlNjbSk7IAorJEJCY20gW14kQ0JdOworJEJCY20gJExCMjBOb25CcmVha3MgJENNKjsKKyRITGNt
ICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OworJFNZY20gJEhMY207CisoJEFMY20gfCAkSExjbSkg
JElOY207CiskQ00rICRJTmNtOworJEVYY20gJElOY207CiskSURjbSAkSU5jbTsKKyRJTmNtICRJ
TmNtOworJE5VY20gJElOY207CiskSURjbSAkUE9jbTsKKyRBTGNtICROVWNtOworJEhMY20gJE5V
Y207CiskQ00rICROVWNtOworJE5VY20gJEFMY207CiskTlVjbSAkSExjbTsKKyRQUmNtICRJRGNt
OworJFBSY20gKCRBTGNtIHwgJEhMY20pOworJFBPY20gKCRBTGNtIHwgJEhMY20pOworKCRQUmNt
IHwgJFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20p
KiAoJENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87CiskSkxjbSAoJEpMY20gfCAkSlZj
bSB8ICRIMmNtIHwgJEgzY20pOworKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNtKTsKKygk
SlRjbSB8ICRIM2NtKSAkSlRjbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRI
M2NtKSAkSU5jbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkUE9j
bTsKKyRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkQUxj
bSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7CiskQ00rICgkQUxjbSB8ICRITGNtKTsKKyRJU2Nt
ICgkQUxjbSB8ICRITGNtKTsKKygkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNtOworJENNKyAk
T1BjbTsKKyRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOworCisjaWYgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUCisKKyAgICAkUkljbSAkUkljbTsKKworI2VuZGlmCisKKyRFbW9qaUZvck1v
ZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOworCishIXJldmVyc2U7CiskQ00rICRBTFBsdXM7Cisk
Q00rICRCQTsKKyRDTSsgJEJCOworJENNKyAkQjI7CiskQ00rICRDTDsKKyRDTSsgJENQOworJENN
KyAkRVg7CiskQ00rICRHTDsKKyRDTSsgJEhMOworJENNKyAkSFk7CiskQ00rICRIMjsKKyRDTSsg
JEgzOworJENNKyAkSUQ7CiskQ00rICRJTjsKKyRDTSsgJElTOworJENNKyAkSkw7CiskQ00rICRK
VjsKKyRDTSsgJEpUOworJENNKyAkTlM7CiskQ00rICROVTsKKyRDTSsgJE9QOworJENNKyAkUE87
CiskQ00rICRQUjsKKyRDTSsgJFFVOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisK
KyAgICAkQ00rICRSSTsKKworI2VuZGlmCisKKyRDTSsgJFNZOworJENNKyAkV0o7CiskQ00rOwor
JEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENN
KyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsKK1skUFJd
IC8gJENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOworJExCNEJyZWFrcyBbJExC
NE5vbkJyZWFrcy0kQ01dOworJExCNEJyZWFrcyAkQ00rICRDQU5fQ007CiskTEYgJENSOworWyRT
UCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07CitbJFNQICRaV10gJENNKyAkQ0FOX0NNOworJEVt
b2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZhcj8gJEVtb2ppRm9yU2VxczsKKyRD
TSsgJENBTl9DTTsKKyRDTSogJFdKICRDTSogJENBTl9DTTsKKyRDTSogJFdKIFskTEI4Tm9uQnJl
YWtzLSRDTV07CiskQ0FOVF9DTSAkQ00qICRXSjsKKyRDTSogJENBTl9DTSAkQ00qICRXSjsKKyRD
TSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOworJENBTlRfQ00g
JENNKiAkR0w7CiskQ00qICRDQU5fQ00gJENNKiAkR0w7CiskQ0wgJENNKyAkQ0FOX0NNOworJENQ
ICRDTSsgJENBTl9DTTsKKyRFWCAkQ00rICRDQU5fQ007CiskSVMgJENNKyAkQ0FOX0NNOworJFNZ
ICRDTSsgJENBTl9DTTsKKyRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOworJENQIFskTEI4Tm9uQnJl
YWtzLSRDTV07CiskRVggWyRMQjhOb25CcmVha3MtJENNXTsKKyRJUyBbJExCOE5vbkJyZWFrcy0k
Q01dOworJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07CitbJENMICRDUCAkRVggJElTICRTWV0gJENN
KyAkU1ArICRDTSogJE9QOyAKKyRDTSogJENBTl9DTSAkU1AqICRDTSogJE9QOworJENBTlRfQ00g
JFNQKiAkQ00qICRPUDsKKyRBTF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAkT1A7CiskQUxf
Rk9MTE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9QOworJENNKiAkQUxfRk9MTE9XX0NNICRDTSsg
JFNQKyAkQ00qICRPUDsKKyRTWSAkQ00gJFNQKyAkT1A7CiskQ00qICRPUCAkU1AqICRDTSogJFFV
OworJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOworJENNKiAkQjIgJFNQKiAkQ00qICRC
MjsKKyRDTSogJFFVICRDTSogJENBTl9DTTsKKyRDTSogJFFVICRMQjE4Tm9uQnJlYWtzOworJENN
KiAkQ0FOX0NNICRDTSogJFFVOworJENBTlRfQ00gJENNKiAkUVU7CiskQ00qICgkQkEgfCAkSFkg
fCAkTlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV07CiskQ00qIFskTEIyME5vbkJyZWFrcy0k
Q01dICRDTSogJEJCOworW14kQ0JdICRDTSogJEJCOworW14kQ0JdICRDTSogKCRIWSB8ICRCQSkg
JENNKiAkSEw7CiskQ00qICRITCAkQ00qICRTWTsKKyRDTSogJElOICRDTSogKCRBTFBsdXMgfCAk
SEwpOworJENNKiAkSU4gJENNKiAkRVg7CiskQ00qICRJTiAkQ00qICRJRDsKKyRDTSogJElOICRD
TSogJElOOworJENNKiAkSU4gJENNKiAkTlU7CiskQ00qICRQTyAkQ00qICRJRDsKKyRDTSogJE5V
ICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkTlU7Cisk
Q00qICRJRCAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBSOworJENNKiAo
JEFMUGx1cyB8ICRITCkgJENNKiAkUE87CisoJENNKiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wg
fCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRTWSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwg
JEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87CiskQ00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwp
ICRDTSogJEpMOworJENNKiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOworJENNKiAkSlQg
JENNKiAoJEgzIHwgJEpUKTsKKyRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8
ICRKTCk7CiskQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENN
KiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMg
fCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAk
SVM7CiskQ00qICRPUCAkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKTsKKyRDTSogKCRBTFBsdXMg
fCAkSEwgfCAkTlUpICRDTSogJENQOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisK
KyAgICAkQ00qICRSSSAkQ00qICRSSTsKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgJEVtb2ppVmFy
PyAkRW1vamlGb3JNb2RzOworCishIXNhZmVfZm9yd2FyZDsKK1skQ00gJE9QICRRVSAkQ0wgJENQ
ICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1Ag
JEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsKKyRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5Owor
ICAgIAorISFzYWZlX3JldmVyc2U7CiskQ00rIFteJENNICRCSyAkQ1IgJExGICROTCAkWlcgJFNQ
XTsKKyRDTSsgJFNQIC8gLjsKKyRTUCsgJENNKiAkT1A7CiskU1ArICRDTSogJFFVOworJFNQKyAk
Q00qICgkQ0wgfCAkQ1ApOworJFNQKyAkQ00qICRCMjsKKyRDTSogKCRIWSB8ICRCQSkgJENNKiAk
SEw7CisoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOworKCRDTCB8ICRDUCkgJENNKiAoJE5V
IHwgJElTIHwgJFNZKTsKKyRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUu
dHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
UHJvbG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiM2Y2NmY0MmFmMTM4ZWQ1OGZmNDIxZjY3NjhkOGZk
NTgwMTI4MmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKQEAgLTAsMCArMSwzOCBAQAorIyAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAw
Ny0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworISFjaGFpbjsKKyEhTEJDTU5vQ2hhaW47CishIWxvb2tBaGVhZEhhcmRCcmVh
azsKKworI2lmIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMKKworICAgICRDSiA9IFs6TGluZUJy
ZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6XTsKKworI2Vsc2UKKworICAgICRDSiA9
IFtcdTMwNDFcdTMwNDNcdTMwNDVcdTMwNDdcdTMwNDlcdTMwNjNcdTMwODNcdTMwODVcdTMwODdc
dTMwOEVcdTMwOTVcdTMwOTZcdTMwQTFcdTMwQTNcdTMwQTVcdTMwQTdcdTMwQTlcdTMwQzNcdTMw
RTNcdTMwRTVcdTMwRTdcdTMwRUVcdTMwRjVcdTMwRjZcdTMwRkNcdTMxRjBcdTMxRjFcdTMxRjJc
dTMxRjNcdTMxRjRcdTMxRjVcdTMxRjZcdTMxRjdcdTMxRjhcdTMxRjlcdTMxRkFcdTMxRkJcdTMx
RkNcdTMxRkRcdTMxRkVcdTMxRkZcdUZGNjdcdUZGNjhcdUZGNjlcdUZGNkFcdUZGNkJcdUZGNkNc
dUZGNkRcdUZGNkVcdUZGNkZcdUZGNzBdOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45MDdjMGNhNWFhN2IyZmZiZjhiMmNkOTA5MmFhNWYzZTFkYmE0
MDkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5
OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAw
OSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSAnJzsKKyRJTl9TVUIg
PSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUzMDFDXHUz
MEEwXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKICRCQV9T
VUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkYjhmMGZmNTE4NTZkOTdjOWMxNGUxMjE2MzczNGZkZmM5
N2M5Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisj
IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAy
MDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisj
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gW1x1MDAy
MVx1MDAzRlx1RkYwMVx1RkYxRl07CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1
MjAyNl07CiskSVNfU1VCID0gW1x1MDAzQVx1MDAzQl07CiskTlNfU1VCID0gW1x1MjAzQ1x1MjA0
N1x1MjA0OFx1MjA0OVx1MzAwNVx1MzAxQ1x1MzAzQlx1MzA5RFx1MzA5RVx1MzBBMFx1MzBGQlx1
MzBGRFx1MzBGRVx1RkYxQVx1RkYxQlx1RkY2NV07CiskUE9fU1VCID0gW1x1MDAyNVx1MDBBMlx1
MDBCMFx1MjAzMFx1MjAzMlx1MjAzM1x1MjEwM1x1RkYwNVx1RkZFMF07CiskUFJfU1VCID0gW1x1
MDAyNFx1MDBBM1x1MDBBNVx1MjBBQ1x1MjExNlx1RkYwNFx1RkZFMVx1RkZFNV07CiskSURfQURE
ID0gWyRDSiAkQkFfU1VCICRFWF9TVUIgJElOX1NVQiAkSVNfU1VCICROU19TVUIgJFBPX1NVQiAk
UFJfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0IGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2NiYmM4YTg4MTVlNGQwZGNmYjk2MGMxMTJmNjBhODM4
ZDNhNDI4NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0CkBAIC0wLDAgKzEsMzUg
QEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIg
PSAnJzsKKyRJTl9TVUIgPSBbXHUyMDI1XHUyMDI2XTsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIg
PSBbXHUzMDA1XHUzMDNCXHUzMDlEXHUzMDlFXHUzMEZEXHUzMEZFXTsKKyRQT19TVUIgPSAnJzsK
KyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKICRJTl9TVUIgJE5TX1NVQl07CiskTlNfQURE
ID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc0
Mjg3OWRkMWY4MmViNjJkMjhkOGFhN2JjZGRmNDQ2ZDA3Mzg3ZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xs
QGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7
CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0g
Jyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQURE
ID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA3YzBjYTVhYTdiMmZmYmY4YjJjZDkwOTJhYTVmM2UxZGJh
NDA5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisj
IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAy
MDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisj
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7Cisk
SU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1
MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRD
SiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25D
SksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyY2Y2YTA4MjZhZGE0ZWRjZmNm
Mzk0M2I2ODlmOGMwNmUwYmQ3NDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQK
QEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQor
IyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
IyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9
ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NV
QiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0pdOwor
JE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0IGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY3NDI4NzlkZDFmODJlYjYyZDI4ZDhhYTdiY2RkZjQ0NmQwNzM4N2YKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBM
YXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRv
cmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9
ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NV
QiA9ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3NDI4NzlkZDFmODJl
YjYyZDI4ZDhhYTdiY2RkZjQ0NmQwNzM4N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNK
Sy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUu
b3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVY
X1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOwor
JE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcn
OworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0
QnJlYWtJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9y
LmNwcAppbmRleCAwNWE1MTk1NjA1ZTFkOGZiZjc2MjMxMzk3ZDg5YzA4MTUzMjA5MzI3Li4wNjY3
YWFmY2UxN2NmODZlNzg1NjJlNTU4ZTMzNjI1MGUzNGJkNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcApAQCAtMzEsOSArMzEsNiBAQAogI2luY2x1ZGUgPHVu
aWNvZGUvdWJyay5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAotLy8g
RklYTUU6IFRoaXMgbmVlZHMgYSBiZXR0ZXIgbmFtZQotI2RlZmluZSBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApKQotCiBuYW1lc3BhY2UgV1RGIHsKIAogLy8g
SXRlcmF0b3IgaW5pdGlhbGl6YXRpb24KQEAgLTYxLDYgKzU4LDEyIEBAIHN0YXRpYyBUZXh0QnJl
YWtJdGVyYXRvciogaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGNvbnN0IGNoYXIqIGJyZWFr
UnVsZXMpCiAKICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykK
K1RleHRCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxl
U2V0KQoreworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCiAKIC8vIEl0ZXJhdG9yIHRl
eHQgc2V0dGluZwogCkBAIC0xNjQsMTM1ICsxNjcsMjAgQEAgVGV4dEJyZWFrSXRlcmF0b3IqIHNl
bnRlbmNlQnJlYWtJdGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZykKICAgICByZXR1cm4gc2V0VGV4
dEZvckl0ZXJhdG9yKCpzdGF0aWNTZW50ZW5jZUJyZWFrSXRlcmF0b3IsIHN0cmluZyk7CiB9CiAK
KyNpZiAhUExBVEZPUk0oSU9TKQorc3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBjcmVhdGVDdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKCkKK3sKKyAgICBpZiAoYXV0byogaXRlcmF0
b3IgPSBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0OjpDdXJzb3JNb3Zl
bWVudCkpCisgICAgICAgIHJldHVybiBpdGVyYXRvcjsKKyAgICByZXR1cm4gaW5pdGlhbGl6ZUl0
ZXJhdG9yV2l0aFJ1bGVzKGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyk7Cit9CisjZW5kaWYK
KwogVGV4dEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoU3RyaW5nVmlldyBz
dHJpbmcpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJh
c2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKLSAgICAvLyA8
aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2Ut
NTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KLSAgICAvLyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMg
ZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgotICAgIC8vICogUmVwbGFj
ZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xw
e0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44
IG9yIGVhcmxpZXI7Ci0gICAgLy8gKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNv
ciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAg
Ly8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIg
dmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCks
IGFuZDsKLSAgICAvLyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1v
dmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0g
ICAgLy8gKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCi0gICAg
c3RhdGljIGNvbnN0IGNoYXIqIGtSdWxlcyA9Ci0gICAgICAgICIkQ1IgICAgICA9IFtcXHB7R3Jh
cGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07IgotICAgICAgICAiJExGICAgICAgPSBbXFxwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1dOyIKLSAgICAgICAgIiRDb250cm9sID0gW1xccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOyIKLSAgICAgICAgIiRWb2ljZU1hcmtz
ID0gW1xcdUZGOUVcXHVGRjlGXTsiIC8vIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9p
Y2VkIG1hcmtzCi0gICAgICAgICIkRXh0ZW5kICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVh
ayA9IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXFx1MEUzMCBcXHUwRTMyIFxcdTBFNDUgXFx1MEVC
MCBcXHUwRUIyXV07IgotICAgICAgICAiJFNwYWNpbmdNYXJrID0gW1tcXHB7R2VuZXJhbF9DYXRl
Z29yeSA9IFNwYWNpbmcgTWFya31dIC0gJEV4dGVuZF07IgotICAgICAgICAiJEwgICAgICAgPSBb
XFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07IgotICAgICAgICAiJFYgICAgICAgPSBb
XFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07IgotICAgICAgICAiJFQgICAgICAgPSBb
XFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07IgotICAgICAgICAiJExWICAgICAgPSBb
XFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOyIKLSAgICAgICAgIiRMVlQgICAgID0g
W1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07IgotICAgICAgICAiJEhpbjAgICAg
PSBbXFx1MDkwNS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCi0gICAg
ICAgICIkSGluViAgICA9IFxcdTA5NEQ7IiAvLyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCi0gICAg
ICAgICIkSGluMSAgICA9IFtcXHUwOTE1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIg
S2EsLi4uLEhhCi0gICAgICAgICIkQmVuMCAgICA9IFtcXHUwOTg1LVxcdTA5QjldOyIgLy8gQmVu
Z2FsaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRCZW5WICAgID0gXFx1MDlDRDsiIC8vIEJl
bmdhbGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRCZW4xICAgID0gW1xcdTA5OTUtXFx1MDlCOV07
IiAvLyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRQYW4wICAgID0gW1xcdTBB
MDUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRQYW5W
ICAgID0gXFx1MEE0RDsiIC8vIEd1cm11a2hpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkUGFuMSAg
ICA9IFtcXHUwQTE1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQotICAg
ICAgICAiJEd1ajAgICAgPSBbXFx1MEE4NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBB
LC4uLixIYQotICAgICAgICAiJEd1alYgICAgPSBcXHUwQUNEOyIgLy8gR3VqYXJhdGkgU2lnbiBW
aXJhbWEKLSAgICAgICAgIiRHdWoxICAgID0gW1xcdTBBOTUtXFx1MEFCOV07IiAvLyBHdWphcmF0
aSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkT3JpMCAgICA9IFtcXHUwQjA1LVxcdTBCMzld
OyIgLy8gT3JpeWEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkT3JpViAgICA9IFxcdTBCNEQ7
IiAvLyBPcml5YSBTaWduIFZpcmFtYQotICAgICAgICAiJE9yaTEgICAgPSBbXFx1MEIxNS1cXHUw
QjM5XTsiIC8vIE9yaXlhIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRUZWwwICAgID0gW1xc
dTBDMDUtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkVGVs
ViAgICA9IFxcdTBDNEQ7IiAvLyBUZWx1Z3UgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRUZWwxICAg
ID0gW1xcdTBDMTQtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEthLC4uLixIYQotICAgICAg
ICAiJEthbjAgICAgPSBbXFx1MEM4NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4u
LEhhCi0gICAgICAgICIkS2FuViAgICA9IFxcdTBDQ0Q7IiAvLyBLYW5uYWRhIFNpZ24gVmlyYW1h
Ci0gICAgICAgICIkS2FuMSAgICA9IFtcXHUwQzk1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0
ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWwwICAgID0gW1xcdTBEMDUtXFx1MEQzOV07IiAvLyBN
YWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsViAgICA9IFxcdTBENEQ7IiAv
LyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKLSAgICAgICAgIiRNYWwxICAgID0gW1xcdTBEMTUtXFx1
MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUkkgICAgICA9
IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IiAvLyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3Jz
Ci0gICAgICAgICIkWldKICAgICA9IFxcdTIwMEQ7IiAvLyBaZXJvIHdpZHRoIGpvaW5lcgotICAg
ICAgICAiJEVtb2ppVmFyID0gW1xcdUZFMEZdOyIgLy8gRW1vamktc3R5bGUgdmFyaWF0aW9uIHNl
bGVjdG9yCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRW1vamlGb3JT
ZXFzID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAw
MUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxV
MDAwMUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYg
XFxVMDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0
ODIgXFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAw
MUY1RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxV
MDAwMUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFx1MjY5NS1cXHUy
Njk2IFxcdTI3MDggXFxVMDAwMUYzM0UgXFxVMDAwMUYzNzMgXFxVMDAwMUYzOTMgXFxVMDAwMUYz
QTQgXFxVMDAwMUYzQTggXFxVMDAwMUYzRUIgXFxVMDAwMUYzRUQgXFxVMDAwMUY0QkItXFxVMDAw
MUY0QkMgXFxVMDAwMUY1MjcgXFxVMDAwMUY1MkMgXFxVMDAwMUY2ODAgXFxVMDAwMUY2OTIgXFxV
MDAwMUY5MjYgXFxVMDAwMUY5MzctXFxVMDAwMUY5MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0Vd
OyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIk
RW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYz
ODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAw
MUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxV
MDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEt
XFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1
NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAw
MUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxV
MDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MTggXFxVMDAwMUYzQzIgXFxVMDAwMUYzQzcg
XFxVMDAwMUYzQ0MgXFxVMDAwMUY1NzQgXFxVMDAwMUY1N0EgXFxVMDAwMUY2Q0MgXFxVMDAwMUY5
MTktXFxVMDAwMUY5MUUgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzAgXFxVMDAwMUY5MzMtXFxVMDAw
MUY5MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6
cGF0cmljayBtb2RpZmllcnMKLSNlbHNlCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3
NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIgLy8gRW1vamkgdGhhdCBw
YXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xc
dTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0
IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFG
NDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAw
MDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxc
VTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3
IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFG
NkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZp
ZXJzCi0jZW5kaWYKLSAgICAgICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYz
RkZdOyIgLy8gRml0enBhdHJpY2sgbW9kaWZpZXJzCi0gICAgICAgICIhIWNoYWluOyIKLSNpZiBB
RERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEhUklOb0NoYWluOyIKLSNlbmRpZgot
ICAgICAgICAiISFmb3J3YXJkOyIKLSAgICAgICAgIiRDUiAkTEY7IgotICAgICAgICAiJEwgKCRM
IHwgJFYgfCAkTFYgfCAkTFZUKTsiCi0gICAgICAgICIoJExWIHwgJFYpICgkViB8ICRUKTsiCi0g
ICAgICAgICIoJExWVCB8ICRUKSAkVDsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0g
ICAgICAgICIkUkkgJFJJICRFeHRlbmQqIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVu
ZCo7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlte
JENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSNlbHNlCi0gICAgICAgICJbXiRDb250
cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3Bh
Y2luZ01hcms7IgotICAgICAgICAiJFJJICRSSSAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIK
LSNlbmRpZgotICAgICAgICAiJEhpbjAgJEhpblYgJEhpbjE7IiAvLyBEZXZhbmFnYXJpIFZpcmFt
YSAoZm9yd2FyZCkKLSAgICAgICAgIiRCZW4wICRCZW5WICRCZW4xOyIgLy8gQmVuZ2FsaSBWaXJh
bWEgKGZvcndhcmQpCi0gICAgICAgICIkUGFuMCAkUGFuViAkUGFuMTsiIC8vIEd1cm11a2hpIFZp
cmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRHdWowICRHdWpWICRHdWoxOyIgLy8gR3VqYXJhdGkg
VmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE9yaTAgJE9yaVYgJE9yaTE7IiAvLyBPcml5YSBW
aXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkVGVsMCAkVGVsViAkVGVsMTsiIC8vIFRlbHVndSBW
aXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkS2FuMCAkS2FuViAkS2FuMTsiIC8vIEthbm5hZGEg
VmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE1hbDAgJE1hbFYgJE1hbDE7IiAvLyBNYWxheWFs
YW0gVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFpXSiAkRW1vamlGb3JTZXFzOyIgLy8gRG9u
J3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyAk
RW1vamlWYXI/ICRFbW9qaU1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVt
b2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1v
ZGlmaWVyCi0gICAgICAgICIhIXJldmVyc2U7IgotICAgICAgICAiJExGICRDUjsiCi0gICAgICAg
ICIoJEwgfCAkViB8ICRMViB8ICRMVlQpICRMOyIKLSAgICAgICAgIigkViB8ICRUKSAoJExWIHwg
JFYpOyIKLSAgICAgICAgIiRUICgkTFZUIHwgJFQpOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOyIKLSAg
ICAgICAgIiRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRy
b2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07
IgotI2Vsc2UKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAg
ICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRSSSAk
UkkgLyAkUkkgJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIkSGlu
MSAkSGluViAkSGluMDsiIC8vIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAg
IiRCZW4xICRCZW5WICRCZW4wOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAg
ICAiJFBhbjEgJFBhblYgJFBhbjA7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQotICAg
ICAgICAiJEd1ajEgJEd1alYgJEd1ajA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQot
ICAgICAgICAiJE9yaTEgJE9yaVYgJE9yaTA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJk
KQotICAgICAgICAiJFRlbDEgJFRlbFYgJFRlbDA7IiAvLyBUZWx1Z3UgVmlyYW1hIChiYWNrd2Fy
ZCkKLSAgICAgICAgIiRLYW4xICRLYW5WICRLYW4wOyIgLy8gS2FubmFkYSBWaXJhbWEgKGJhY2t3
YXJkKQotICAgICAgICAiJE1hbDEgJE1hbFYgJE1hbDA7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChi
YWNrd2FyZCkKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgJFpXSjsiIC8vIERvbid0IGJyZWFrIGlu
IGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1v
amlGb3JNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2li
bHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAg
ICAgICAiJFJJICRSSSs7IgotICAgICAgICAiWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2pp
Rm9yTW9kczsiCi0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsiCi0gICAgICAgICIkUkkgJFJJKzsi
Ci0gICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyI7CisgICAg
c3RhdGljIFRleHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0g
Y3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjaygpOwogI2Vsc2UKLSAgICAg
ICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiJEVt
b2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiCi0gICAgICAgICIhIXNhZmVfcmV2
ZXJzZTsiCi0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsiOwotI2VuZGlmCi0gICAgc3RhdGljIFRl
eHRCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6
ZUl0ZXJhdG9yV2l0aFJ1bGVzKGtSdWxlcyk7Ci0jZWxzZSAvLyBQTEFURk9STShJT1MpCiAgICAg
Ly8gVXNlIHRoZSBzcGVjaWFsIFRoYWkgY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGZvciBhbGwg
bG9jYWxlcwogICAgIHN0YXRpYyBUZXh0QnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcihVQlJLX0NIQVJBQ1RFUiwgInRoIik7CiAj
ZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKQEAgLTMxOSw0NDIgKzIwNywyMCBAQCB2b2lkIHJlbGVh
c2VMaW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiAgICAgTGlu
ZUJyZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQb29sKCkucHV0KGl0ZXJhdG9yKTsKIH0KIAotc3Rh
dGljIGNvbnN0IGNoYXIqIHVheDE0UHJvbG9ndWUgPQotICAgICIhIWNoYWluOyIKLSAgICAiISFM
QkNNTm9DaGFpbjsiCi0gICAgIiEhbG9va0FoZWFkSGFyZEJyZWFrOyI7Ci0KLXN0YXRpYyBjb25z
dCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQmVmb3JlID0KLSAgICAvLyBleHBsaWNpdGx5IGVudW1l
cmF0ZSAkQ0ogc2luY2UgSUNVIHZlcnNpb25zIHByaW9yIHRvIDQ5IGRvbid0IHN1cHBvcnQgOkxp
bmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOgotICAgICIkQ0ogPSBbIgotI2lm
IChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9O
VU0gPj0gOSkKLSAgICAiOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOiIK
LSNlbHNlCi0gICAgIlxcdTMwNDFcXHUzMDQzXFx1MzA0NVxcdTMwNDdcXHUzMDQ5XFx1MzA2M1xc
dTMwODNcXHUzMDg1XFx1MzA4N1xcdTMwOEVcXHUzMDk1XFx1MzA5NlxcdTMwQTFcXHUzMEEzXFx1
MzBBNVxcdTMwQTciCi0gICAgIlxcdTMwQTlcXHUzMEMzXFx1MzBFM1xcdTMwRTVcXHUzMEU3XFx1
MzBFRVxcdTMwRjVcXHUzMEY2XFx1MzBGQyIKLSAgICAiXFx1MzFGMFxcdTMxRjFcXHUzMUYyXFx1
MzFGM1xcdTMxRjRcXHUzMUY1XFx1MzFGNlxcdTMxRjdcXHUzMUY4XFx1MzFGOVxcdTMxRkFcXHUz
MUZCXFx1MzFGQ1xcdTMxRkRcXHUzMUZFXFx1MzFGRiIKLSAgICAiXFx1RkY2N1xcdUZGNjhcXHVG
RjY5XFx1RkY2QVxcdUZGNkJcXHVGRjZDXFx1RkY2RFxcdUZGNkVcXHVGRjZGXFx1RkY3MCIKLSNl
bmRpZgotICAgICJdOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3Vz
dG9tTG9vc2VDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRF
WF9TVUIgPSBbXFx1MDAyMVxcdTAwM0ZcXHVGRjAxXFx1RkYxRl07IgotICAgICIkSURfU1VCID0g
Jyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSBb
XFx1MDAzQVxcdTAwM0JdOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUyMDNDXFx1MjA0N1xcdTIwNDhc
XHUyMDQ5XFx1MzAwNVxcdTMwMUNcXHUzMDNCXFx1MzA5RFxcdTMwOUVcXHUzMEEwXFx1MzBGQlxc
dTMwRkRcXHUzMEZFXFx1RkYxQVxcdUZGMUJcXHVGRjY1XTsiCi0gICAgIiRQT19TVUIgPSBbXFx1
MDAyNVxcdTAwQTJcXHUwMEIwXFx1MjAzMFxcdTIwMzJcXHUyMDMzXFx1MjEwM1xcdUZGMDVcXHVG
RkUwXTsiCi0gICAgIiRQUl9TVUIgPSBbXFx1MDAyNFxcdTAwQTNcXHUwMEE1XFx1MjBBQ1xcdTIx
MTZcXHVGRjA0XFx1RkZFMVxcdUZGRTVdOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAk
RVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07IgotICAgICIk
TlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0
b21Mb29zZU5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsi
Ci0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIK
LSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDA1XFx1MzAzQlxcdTMw
OURcXHUzMDlFXFx1MzBGRFxcdTMwRkVdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBS
X1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsiCi0gICAg
IiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1
c3RvbU5vcm1hbENKSyA9Ci0gICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAgICAi
JEVYX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIK
LSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDFDXFx1MzBBMF07Igot
ICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0g
WyRDSiAkQkFfU1VCICROU19TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pLID0KLSAgICAiJEJB
X1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAg
ICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcn
OyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FE
RCA9IFskQ0pdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1
YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAg
ICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcn
OyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NV
QiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9ICcnOyIKLSAgICAi
JE5TX0FERCA9IFskQ0pdOyI7Ci0KLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmlj
dE5vbkNKSyAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksKLSNkZWZpbmUgdWF4
MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHRDSksgICAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0
b21Ob3JtYWxDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25DSksg
ICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSksKLQotc3RhdGljIGNvbnN0IGNo
YXIqIHVheDE0QXNzaWdubWVudHNBZnRlciA9Ci0gICAgIiRBSSA9IFs6TGluZUJyZWFrID0gQW1i
aWd1b3VzOl07IgotICAgICIkQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsiCi0gICAg
IiRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsiCi0gICAgIiRC
QiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07IgotICAgICIkQksgPSBbOkxpbmVCcmVh
ayA9IE1hbmRhdG9yeV9CcmVhazpdOyIKLSAgICAiJEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19C
b3RoOl07IgotICAgICIkQ0IgPSBbOkxpbmVCcmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsiCi0g
ICAgIiRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246XTsiCi0gICAgIiRDTSA9
IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsiCi0gICAgIiRDUCA9IFs6TGluZUJyZWFr
ID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsiCi0gICAgIiRDUiA9IFs6TGluZUJyZWFrID0gQ2Fycmlh
Z2VfUmV0dXJuOl07IgotICAgICIkRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0g
JEVYX1NVQl07IgotICAgICIkR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsiCi0jaWYgKFVfSUNV
X1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5
KQotICAgICIkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsiCi0jZWxzZQotICAg
ICIkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1dOyIKLSNlbmRpZgotICAgICIkSFkgPSBb
OkxpbmVCcmVhayA9IEh5cGhlbjpdOyIKLSAgICAiJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOyIK
LSAgICAiJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOyIKLSAgICAiJElEID0gW1tbWzpMaW5lQnJl
YWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOyIKLSAgICAiJElO
ID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOyIKLSAgICAiJElTID0g
W1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07IgotICAgICIkSkwgPSBb
OkxpbmVCcmVhayA9IEpMOl07IgotICAgICIkSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07IgotICAg
ICIkSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07IgotICAgICIkTEYgPSBbOkxpbmVCcmVhayA9IExp
bmVfRmVlZDpdOyIKLSAgICAiJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsiCi0gICAg
IiROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICRO
U19TVUJdOyIKLSAgICAiJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07IgotICAgICIkT1Ag
PSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsiCi0gICAgIiRQTyA9IFtbOkxpbmVC
cmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07IgotICAgICIkUFIgPSBbWzpMaW5l
QnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07IgotICAgICIkUVUgPSBbOkxpbmVC
cmVhayA9IFF1b3RhdGlvbjpdOyIKLSAgICAiJFJJID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZG
XTsiCi0gICAgIiRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIk
U0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOyIKLSAgICAiJFNQID0gWzpMaW5lQnJlYWsg
PSBTcGFjZTpdOyIKLSAgICAiJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07Igot
ICAgICIkV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9pbmVyOl07IgotICAgICIkWFggPSBbOkxp
bmVCcmVhayA9IFVua25vd246XTsiCi0gICAgIiRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpd
OyIKLSAgICAiJFpXSiA9IFxcdTIwMEQ7IgotICAgICIkRW1vamlWYXIgPSBcXHVGRTBGOyIKLSNp
ZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQw
IFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFG
M0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAw
MDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxc
VTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2
LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFG
NjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAw
MDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcdTI2OTUtXFx1MjY5NiBcXHUyNzA4IFxc
VTAwMDFGMzNFIFxcVTAwMDFGMzczIFxcVTAwMDFGMzkzIFxcVTAwMDFGM0E0IFxcVTAwMDFGM0E4
IFxcVTAwMDFGM0VCIFxcVTAwMDFGM0VEIFxcVTAwMDFGNEJCLVxcVTAwMDFGNEJDIFxcVTAwMDFG
NTI3IFxcVTAwMDFGNTJDIFxcVTAwMDFGNjgwIFxcVTAwMDFGNjkyIFxcVTAwMDFGOTI2IFxcVTAw
MDFGOTM3LVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXTsiIC8vIEVtb2ppIHRo
YXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICIkRW1vamlGb3JNb2RzID0gW1xc
dTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxV
MDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMg
XFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0
NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAw
MUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxV
MDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIt
XFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2
QzAgXFxVMDAwMUY5MTggXFxVMDAwMUYzQzIgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0MgXFxVMDAw
MUY1NzQgXFxVMDAwMUY1N0EgXFxVMDAwMUY2Q0MgXFxVMDAwMUY5MTktXFxVMDAwMUY5MUUgXFxV
MDAwMUY5MjYgXFxVMDAwMUY5MzAgXFxVMDAwMUY5MzMtXFxVMDAwMUY5MzkgXFxVMDAwMUY5M0Mt
XFxVMDAwMUY5M0VdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMK
LSNlbHNlCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUwMDAx
RjQ2OSBcXFUwMDAxRjQ4Ql07IgotICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1Mjcw
QS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3
IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFG
NDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAw
MDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxc
VTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRC
LVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFG
NkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYK
LSAgICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07IgotICAgICIkZGlj
dGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIkQUxQbHVz
ID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOyIKLSAgICAiJEFMY20gPSAkQUxQbHVzICRDTSo7Igot
ICAgICIkQkFjbSA9ICRCQSAkQ00qOyIKLSAgICAiJEJCY20gPSAkQkIgJENNKjsiCi0gICAgIiRC
MmNtID0gJEIyICRDTSo7IgotICAgICIkQ0xjbSA9ICRDTCAkQ00qOyIKLSAgICAiJENQY20gPSAk
Q1AgJENNKjsiCi0gICAgIiRFWGNtID0gJEVYICRDTSo7IgotICAgICIkR0xjbSA9ICRHTCAkQ00q
OyIKLSAgICAiJEhMY20gPSAkSEwgJENNKjsiCi0gICAgIiRIWWNtID0gJEhZICRDTSo7IgotICAg
ICIkSDJjbSA9ICRIMiAkQ00qOyIKLSAgICAiJEgzY20gPSAkSDMgJENNKjsiCi0gICAgIiRJRGNt
ID0gJElEICRDTSo7IgotICAgICIkSU5jbSA9ICRJTiAkQ00qOyIKLSAgICAiJElTY20gPSAkSVMg
JENNKjsiCi0gICAgIiRKTGNtID0gJEpMICRDTSo7IgotICAgICIkSlZjbSA9ICRKViAkQ00qOyIK
LSAgICAiJEpUY20gPSAkSlQgJENNKjsiCi0gICAgIiROU2NtID0gJE5TICRDTSo7IgotICAgICIk
TlVjbSA9ICROVSAkQ00qOyIKLSAgICAiJE9QY20gPSAkT1AgJENNKjsiCi0gICAgIiRQT2NtID0g
JFBPICRDTSo7IgotICAgICIkUFJjbSA9ICRQUiAkQ00qOyIKLSAgICAiJFFVY20gPSAkUVUgJENN
KjsiCi0gICAgIiRSSWNtID0gJFJJICRDTSo7IgotICAgICIkU1ljbSA9ICRTWSAkQ00qOyIKLSAg
ICAiJFdKY20gPSAkV0ogJENNKjsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRGb3J3YXJk
ID0KLSAgICAiISFmb3J3YXJkOyIKLSAgICAiJENBTl9DTSA9IFteJFNQICRCSyAkQ1IgJExGICRO
TCAkWlcgJENNXTsiCi0gICAgIiRDQU5UX0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwgJFpXICRD
TV07IgotICAgICIkQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOyIK
LSAgICAiJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRTWSAkV0ogJEdMICRP
UCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsiCi0gICAgIiRBTF9GT0xMT1cgPSBb
JEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOyIKLSAgICAiJExCNEJyZWFrcyA9IFskQksg
JENSICRMRiAkTkxdOyIKLSAgICAiJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5MXTsi
Ci0gICAgIiRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOyIKLSAgICAiJExCOE5vbkJyZWFr
cyA9IFtbJExCNE5vbkJyZWFrc10gLSBbJFpXXV07IgotICAgICIkTEIxOE5vbkJyZWFrcyA9IFsk
TEI4Tm9uQnJlYWtzIC0gWyRTUF1dOyIKLSAgICAiJExCMThCcmVha3MgPSBbJExCOEJyZWFrcyAk
U1BdOyIKLSAgICAiJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVha3MgLSAkQ0JdOyIKLSAg
ICAiJEFMUGx1cyAkQ00rOyIKLSAgICAiJEJBICRDTSs7IgotICAgICIkQkIgJENNKzsiCi0gICAg
IiRCMiAkQ00rOyIKLSAgICAiJENMICRDTSs7IgotICAgICIkQ1AgJENNKzsiCi0gICAgIiRFWCAk
Q00rOyIKLSAgICAiJEdMICRDTSs7IgotICAgICIkSEwgJENNKzsiCi0gICAgIiRIWSAkQ00rOyIK
LSAgICAiJEgyICRDTSs7IgotICAgICIkSDMgJENNKzsiCi0gICAgIiRJRCAkQ00rOyIKLSAgICAi
JElOICRDTSs7IgotICAgICIkSVMgJENNKzsiCi0gICAgIiRKTCAkQ00rOyIKLSAgICAiJEpWICRD
TSs7IgotICAgICIkSlQgJENNKzsiCi0gICAgIiROUyAkQ00rOyIKLSAgICAiJE5VICRDTSs7Igot
ICAgICIkT1AgJENNKzsiCi0gICAgIiRQTyAkQ00rOyIKLSAgICAiJFBSICRDTSs7IgotICAgICIk
UVUgJENNKzsiCi0gICAgIiRSSSAkQ00rOyIKLSAgICAiJFNZICRDTSs7IgotICAgICIkV0ogJENN
KzsiCi0gICAgIiRDUiAkTEYgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzPyAkTEI0QnJlYWtz
IHsxMDB9OyIKLSAgICAiJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEwMH07IgotICAgICIkQ00r
ICRMQjRCcmVha3MgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsiCi0gICAg
IiRDQU5fQ00gJENNKiBbJFNQICRaV107IgotICAgICIkQ00rIFskU1AgJFpXXTsiCi0gICAgIiRF
bW9qaUZvclNlcXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7Igot
ICAgICIkQ0FOX0NNICRDTSs7IgotICAgICIkQ00rOyIKLSAgICAiJENBTl9DTSAkQ00qICRXSmNt
OyIKLSAgICAiJExCOE5vbkJyZWFrcyAkV0pjbTsiCi0gICAgIiRDTSsgJFdKY207IgotICAgICIk
V0pjbSAkQ0FOVF9DTTsiCi0gICAgIiRXSmNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRD
QU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5UX0NNOyIKLSAgICAiW1skTEI4Tm9uQnJlYWtz
XSAtIFskU1AgJEJBICRIWV1dICRDTSogJEdMY207IgotICAgICIkQ00rIEdMY207IgotICAgICIk
TEI4Tm9uQnJlYWtzICRDTDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ0w7IgotICAgICIkQ00rICRD
TDsiCi0gICAgIiRMQjhOb25CcmVha3MgJENQOyIKLSAgICAiJENBTl9DTSAkQ00qICRDUDsiCi0g
ICAgIiRDTSsgJENQOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkRVg7IgotICAgICIkQ0FOX0NNICRD
TSogJEVYOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkTEI4Tm9uQnJlYWtzICRJUzsiCi0gICAg
IiRDQU5fQ00gJENNKiAkSVM7IgotICAgICIkQ00rICRJUzsiCi0gICAgIiRMQjhOb25CcmVha3Mg
JFNZOyIKLSAgICAiJENBTl9DTSAkQ00qICRTWTsiCi0gICAgIiRDTSsgJFNZOyIKLSAgICAiJE9Q
Y20gJFNQKiAkQ0FOX0NNICRDTSo7IgotICAgICIkT1BjbSAkU1AqICRDQU5UX0NNOyIKLSAgICAi
JE9QY20gJFNQKyAkQ00rICRBTF9GT0xMT1c/OyIKLSAgICAiJFFVY20gJFNQKiAkT1BjbTsiCi0g
ICAgIigkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOyIKLSAgICAiJEIyY20gJFNQKiAkQjJjbTsi
Ci0gICAgIiRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207IgotICAgICIkQ00rICRRVWNtOyIKLSAg
ICAiJFFVY20gLj87IgotICAgICIkUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJExC
MjBOb25CcmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsgIgotICAgICIkQkJjbSBb
XiRDQl07IgotICAgICIkQkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJEhMY20gKCRI
WWNtIHwgJEJBY20pIFteJENCXT87IgotICAgICIkU1ljbSAkSExjbTsiCi0gICAgIigkQUxjbSB8
ICRITGNtKSAkSU5jbTsiCi0gICAgIiRDTSsgJElOY207IgotICAgICIkRVhjbSAkSU5jbTsiCi0g
ICAgIiRJRGNtICRJTmNtOyIKLSAgICAiJElOY20gJElOY207IgotICAgICIkTlVjbSAkSU5jbTsi
Ci0gICAgIiRJRGNtICRQT2NtOyIKLSAgICAiJEFMY20gJE5VY207IgotICAgICIkSExjbSAkTlVj
bTsiCi0gICAgIiRDTSsgJE5VY207IgotICAgICIkTlVjbSAkQUxjbTsiCi0gICAgIiROVWNtICRI
TGNtOyIKLSAgICAiJFBSY20gJElEY207IgotICAgICIkUFJjbSAoJEFMY20gfCAkSExjbSk7Igot
ICAgICIkUE9jbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJFBSY20gfCAkUE9jbSk/ICgkT1Bj
bSB8ICRIWWNtKT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRDUGNt
KT8gKCRQUmNtIHwgJFBPY20pPzsiCi0gICAgIiRKTGNtICgkSkxjbSB8ICRKVmNtIHwgJEgyY20g
fCAkSDNjbSk7IgotICAgICIoJEpWY20gfCAkSDJjbSkgKCRKVmNtIHwgJEpUY20pOyIKLSAgICAi
KCRKVGNtIHwgJEgzY20pICRKVGNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRI
MmNtIHwgJEgzY20pICRJTmNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNt
IHwgJEgzY20pICRQT2NtOyIKLSAgICAiJFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRI
MmNtIHwgJEgzY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNtKTsiCi0g
ICAgIiRDTSsgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJElTY20gKCRBTGNtIHwgJEhMY20pOyIK
LSAgICAiKCRBTGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207IgotICAgICIkQ00rICRPUGNtOyIK
LSAgICAiJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7IgotI2lmIEFERElUSU9OQUxfRU1P
SklfU1VQUE9SVAotICAgICIkUkljbSAkUkljbTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppRm9yTW9k
cyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UmV2
ZXJzZSA9Ci0gICAgIiEhcmV2ZXJzZTsiCi0gICAgIiRDTSsgJEFMUGx1czsiCi0gICAgIiRDTSsg
JEJBOyIKLSAgICAiJENNKyAkQkI7IgotICAgICIkQ00rICRCMjsiCi0gICAgIiRDTSsgJENMOyIK
LSAgICAiJENNKyAkQ1A7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRDTSsgJEdMOyIKLSAgICAi
JENNKyAkSEw7IgotICAgICIkQ00rICRIWTsiCi0gICAgIiRDTSsgJEgyOyIKLSAgICAiJENNKyAk
SDM7IgotICAgICIkQ00rICRJRDsiCi0gICAgIiRDTSsgJElOOyIKLSAgICAiJENNKyAkSVM7Igot
ICAgICIkQ00rICRKTDsiCi0gICAgIiRDTSsgJEpWOyIKLSAgICAiJENNKyAkSlQ7IgotICAgICIk
Q00rICROUzsiCi0gICAgIiRDTSsgJE5VOyIKLSAgICAiJENNKyAkT1A7IgotICAgICIkQ00rICRQ
TzsiCi0gICAgIiRDTSsgJFBSOyIKLSAgICAiJENNKyAkUVU7IgotI2lmIEFERElUSU9OQUxfRU1P
SklfU1VQUE9SVAotICAgICIkQ00rICRSSTsiCi0jZW5kaWYKLSAgICAiJENNKyAkU1k7IgotICAg
ICIkQ00rICRXSjsiCi0gICAgIiRDTSs7IgotICAgICIkQUxfRk9MTE9XICRDTSsgLyAoWyRCSyAk
Q1IgJExGICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14kT1Ag
JENNICRTUF0gfCBbJEFMIHtlb2Z9XSkpOyIKLSAgICAiWyRQUl0gLyAkQ00rIFskQksgJENSICRM
RiAkTkwgJFpXICRTUCB7ZW9mfV07IgotICAgICIkTEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtzLSRD
TV07IgotICAgICIkTEI0QnJlYWtzICRDTSsgJENBTl9DTTsiCi0gICAgIiRMRiAkQ1I7IgotICAg
ICJbJFNQICRaV10gWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIlskU1AgJFpXXSAkQ00rICRD
QU5fQ007IgotICAgICIkRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2ppVmFyPyAk
RW1vamlGb3JTZXFzOyIKLSAgICAiJENNKyAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogJENNKiAk
Q0FOX0NNOyIKLSAgICAiJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRDQU5U
X0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAk
R0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZXV07IgotICAgICIkQ0FOVF9D
TSAkQ00qICRHTDsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRHTDsiCi0gICAgIiRDTCAkQ00r
ICRDQU5fQ007IgotICAgICIkQ1AgJENNKyAkQ0FOX0NNOyIKLSAgICAiJEVYICRDTSsgJENBTl9D
TTsiCi0gICAgIiRJUyAkQ00rICRDQU5fQ007IgotICAgICIkU1kgJENNKyAkQ0FOX0NNOyIKLSAg
ICAiJENMIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ1AgWyRMQjhOb25CcmVha3MtJENN
XTsiCi0gICAgIiRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJElTIFskTEI4Tm9uQnJl
YWtzLSRDTV07IgotICAgICIkU1kgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIlskQ0wgJENQ
ICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7ICIKLSAgICAiJENNKiAkQ0FOX0NNICRT
UCogJENNKiAkT1A7IgotICAgICIkQ0FOVF9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAiJEFMX0ZP
TExPVz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xMT1dfTk9DTSAkQ00r
ICRTUCsgJENNKiAkT1A7IgotICAgICIkQ00qICRBTF9GT0xMT1dfQ00gJENNKyAkU1ArICRDTSog
JE9QOyIKLSAgICAiJFNZICRDTSAkU1ArICRPUDsiCi0gICAgIiRDTSogJE9QICRTUCogJENNKiAk
UVU7IgotICAgICIkQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIkQ00qICRC
MiAkU1AqICRDTSogJEIyOyIKLSAgICAiJENNKiAkUVUgJENNKiAkQ0FOX0NNOyIKLSAgICAiJENN
KiAkUVUgJExCMThOb25CcmVha3M7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkUVU7IgotICAg
ICIkQ0FOVF9DTSAkQ00qICRRVTsiCi0gICAgIiRDTSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBb
JExCMjBOb25CcmVha3MtJENNXTsiCi0gICAgIiRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV0gJENN
KiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAoJEhZIHwg
JEJBKSAkQ00qICRITDsiCi0gICAgIiRDTSogJEhMICRDTSogJFNZOyIKLSAgICAiJENNKiAkSU4g
JENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICRJTiAkQ00qICRFWDsiCi0gICAgIiRD
TSogJElOICRDTSogJElEOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSU47IgotICAgICIkQ00qICRJ
TiAkQ00qICROVTsiCi0gICAgIiRDTSogJFBPICRDTSogJElEOyIKLSAgICAiJENNKiAkTlUgJENN
KiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICROVTsi
Ci0gICAgIiRDTSogJElEICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENN
KiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQTzsiCi0gICAgIigkQ00q
ICgkUFIgfCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElTIHwgJFNZ
KSkqICRDTSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykpPzsiCi0g
ICAgIiRDTSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7IgotICAgICIkQ00qICgk
SlQgfCAkSlYpICRDTSogKCRIMiB8ICRKVik7IgotICAgICIkQ00qICRKVCAkQ00qICgkSDMgfCAk
SlQpOyIKLSAgICAiJENNKiAkSU4gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsi
Ci0gICAgIiRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7IgotICAg
ICIkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSogJFBSOyIKLSAgICAiJENN
KiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQ
bHVzIHwgJEhMKSAkQ00qICRJUzsiCi0gICAgIiRDTSogJE9QICRDTSogKCRBTFBsdXMgfCAkSEwg
fCAkTlUpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7IgotI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00qICRSSSAkQ00qICRSSTsiCi0jZW5k
aWYKLSAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7IjsKLQotc3RhdGlj
IGNvbnN0IGNoYXIqIHVheDE0U2FmZUZvcndhcmQgPQotICAgICIhIXNhZmVfZm9yd2FyZDsiCi0g
ICAgIlskQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnld
KyBbXiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsiCi0g
ICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgx
NFNhZmVSZXZlcnNlID0KLSAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICIkQ00rIFteJENNICRC
SyAkQ1IgJExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRDTSsgJFNQIC8gLjsiCi0gICAgIiRTUCsg
JENNKiAkT1A7IgotICAgICIkU1ArICRDTSogJFFVOyIKLSAgICAiJFNQKyAkQ00qICgkQ0wgfCAk
Q1ApOyIKLSAgICAiJFNQKyAkQ00qICRCMjsiCi0gICAgIiRDTSogKCRIWSB8ICRCQSkgJENNKiAk
SEw7IgotICAgICIoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOyIKLSAgICAiKCRDTCB8ICRD
UCkgJENNKiAoJE5VIHwgJElTIHwgJFNZKTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5
OyI7Ci0KIHN0YXRpYyBTdHJpbmcgbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMoTGluZUJyZWFr
SXRlcmF0b3JNb2RlIG1vZGUsIGJvb2wgaXNDSkspCiB7Ci0gICAgU3RyaW5nQnVpbGRlciBydWxl
c0J1aWxkZXI7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFByb2xvZ3VlKTsKLSAgICBy
dWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNCZWZvcmUpOwogICAgIHN3aXRjaCAo
bW9kZSkgewogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpEZWZhdWx0OgotICAgICAg
ICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1
bHRDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNKSyk7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVs
ZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJl
YWtJdGVyYXRvck1vZGU6Okxvb3NlOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pL
ID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3Rv
bUxvb3NlTm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlTm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Ok5vcm1h
bDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHND
dXN0b21Ob3JtYWxDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pLKTsKLSAg
ICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSktSdWxl
czsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6U3RyaWN0OgotICAgICAgICBydWxl
c0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSyA6
IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSkspOwotICAgICAgICBicmVhazsKKyAg
ICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKS1J1bGVz
IDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKS1J1bGVzOwogICAgIH0KLSAgICBy
dWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNBZnRlcik7Ci0gICAgcnVsZXNCdWls
ZGVyLmFwcGVuZCh1YXgxNEZvcndhcmQpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRS
ZXZlcnNlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2FmZUZvcndhcmQpOwotICAg
IHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZlUmV2ZXJzZSk7Ci0gICAgcmV0dXJuIHJ1bGVz
QnVpbGRlci50b1N0cmluZygpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biAiIjsKIH0KIAogLy8gUmVjb2duaXplIEJDUDQ3IGNvbXBsaWFudCBwcmltYXJ5IGxhbmd1YWdl
IHZhbHVlcyBvZiAnemgnLCAnamEnLCAna28nCkBAIC03ODgsOSArMjU0LDI5IEBAIFRleHRCcmVh
a0l0ZXJhdG9yKiBvcGVuTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgQXRvbWljU3RyaW5nJiBsb2Nh
bGUsIExpbmVCcmVha0l0CiAgICAgaWYgKG1vZGUgPT0gTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpE
ZWZhdWx0KQogICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlbihVQlJLX0xJTkUsIGxvY2FsZUlz
RW1wdHkgPyBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKSA6IGxvY2FsZS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpLCAwLCAwLCAmb3BlblN0YXR1cyk7CiAgICAgZWxzZSB7Ci0gICAgICAgIFVQYXJz
ZUVycm9yIHBhcnNlU3RhdHVzOwotICAgICAgICBhdXRvIHJ1bGVzID0gbWFwTGluZUl0ZXJhdG9y
TW9kZVRvUnVsZXMobW9kZSwgaXNDSkspOwotICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlblJ1
bGVzKFN0cmluZ1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBydWxlcy5sZW5n
dGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7CisgICAgICAgIEJyZWFraW5n
UnVsZVNldCBydWxlU2V0ID0gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzsKKyAgICAgICAg
c3dpdGNoIChtb2RlKSB7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpEZWZh
dWx0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgx
NENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Okxvb3NlOgorICAgICAgICAgICAg
cnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLIDogQnJlYWtp
bmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpOb3JtYWw6CisgICAgICAgICAgICBydWxlU2V0
ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLIDogQnJlYWtpbmdSdWxl
U2V0OjpVQVgxNE5vcm1hbE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6U3RyaWN0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlz
Q0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdENKSyA6IEJyZWFraW5nUnVsZVNldDo6
VUFYMTRTdHJpY3ROb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChydWxlU2V0
KSkKKyAgICAgICAgICAgIHVicmtJdGVyID0gcmVpbnRlcnByZXRfY2FzdDxVQnJlYWtJdGVyYXRv
cio+KGl0ZXJhdG9yKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBVUGFyc2VFcnJvciBw
YXJzZVN0YXR1czsKKyAgICAgICAgICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRlcmF0b3JNb2Rl
VG9SdWxlcyhtb2RlLCBpc0NKSyk7CisgICAgICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlblJ1
bGVzKFN0cmluZ1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBydWxlcy5sZW5n
dGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7CisgICAgICAgIH0KICAgICB9
CiAgICAgLy8gbG9jYWxlIGNvbWVzIGZyb20gYSB3ZWIgcGFnZSBhbmQgaXQgY2FuIGJlIGludmFs
aWQsIGxlYWRpbmcgSUNVCiAgICAgLy8gdG8gZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSBmYWxsIGJh
Y2sgdG8gdGhlIGRlZmF1bHQgbG9jYWxlLgpAQCAtODExLDYgKzI5Nyw3IEBAIHZvaWQgY2xvc2VM
aW5lQnJlYWtJdGVyYXRvcihUZXh0QnJlYWtJdGVyYXRvciomIGl0ZXJhdG9yKQogewogICAgIFVC
cmVha0l0ZXJhdG9yKiB1YnJrSXRlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8VUJyZWFrSXRlcmF0b3Iq
PihpdGVyYXRvcik7CiAgICAgQVNTRVJUKHVicmtJdGVyKTsKKyAgICAvLyBGSVhNRTogVXNlIFJB
SUkgdG8gZG8gdGhpcyBpbnN0ZWFkLgogICAgIHVicmtfY2xvc2UodWJya0l0ZXIpOwogICAgIGl0
ZXJhdG9yID0gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4
dEJyZWFrSXRlcmF0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
aAppbmRleCA4YWZiNTU4MDIwMTAwMmJiZDJlZGQ1NzU2NWJjMzQxYjFhMDA2YTllLi45NGZmN2Q2
MDUzNzQ0ODNiNzUzZDBiNWRhYmQ3NDZjZWNlMDJlNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5oCkBAIC0zMSw2ICszMSwzMCBAQCBjbGFzcyBUZXh0QnJlYWtJdGVy
YXRvcjsKIAogZW51bSBjbGFzcyBMaW5lQnJlYWtJdGVyYXRvck1vZGUgeyBEZWZhdWx0LCBMb29z
ZSwgTm9ybWFsLCBTdHJpY3QgfTsKIAorZW51bSBjbGFzcyBCcmVha2luZ1J1bGVTZXQgeworICAg
IEN1cnNvck1vdmVtZW50LAorICAgIFVBWDE0Q0pLLAorICAgIFVBWDE0Tm9uQ0pLLAorICAgIFVB
WDE0TG9vc2VDSkssCisgICAgVUFYMTRMb29zZU5vbkNKSywKKyAgICBVQVgxNE5vcm1hbENKSywK
KyAgICBVQVgxNE5vcm1hbE5vbkNKSywKKyAgICBVQVgxNFN0cmljdENKSywKKyAgICBVQVgxNFN0
cmljdE5vbkNKSworfTsKKworZXh0ZXJuIGNvbnN0IGNoYXIqIGN1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVs
ZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKS1J1bGVz
OworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVz
OworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKS1J1
bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSktS
dWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9u
Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSktSdWxlczsKKworVGV4dEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVs
ZVNldChCcmVha2luZ1J1bGVTZXQpOworCiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8gY2hhcmFjdGVy
IGJyZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRvCiAvLyBwbGF0
Zm9ybSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0aGlzIGNhbiBi
ZSBkaWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlzIFRoYWkgcHJl
cGVuZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KaW5kZXgg
YmVmNWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVlOGU4OGEzODkyYy4uNzlmYTNjNzczOTQyYTI0
NmFhOGQyNDM2YjYzMDZlMjljMzExNTY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4
dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCkBAIC0yMSwx
MiArMjEsMTU4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRl
cmF0b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKKwor
I2lmIGRlZmluZWQoVV9TSE9XX0NQTFVTUExVU19BUEkpCisjdW5kZWYgVV9TSE9XX0NQTFVTUExV
U19BUEkKKyNlbmRpZgorI2RlZmluZSBVX1NIT1dfQ1BMVVNQTFVTX0FQSSAxCisKKyNpbmNsdWRl
IDx1bmljb2RlL3JiYmkuaD4KKyNpbmNsdWRlIDx1bmljb2RlL3VkYXRhLmg+CisjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogCitAaW50ZXJmYWNlIFdURkJ1bmRsZUZpbmRlciA6IE5TT2Jq
ZWN0CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXVEZCdW5kbGVGaW5kZXIKK0BlbmQKKwogbmFt
ZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdCBpbnQgbWF4TG9jYWxlU3RyaW5nTGVuZ3RoID0g
MzI7CiAKK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4gYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZShOU1N0cmluZyAqZmlsZU5hbWVCYXNlKQoreworICAgIE5T
QnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6W1dURkJ1bmRsZUZpbmRl
ciBjbGFzc11dOworICAgIE5TU3RyaW5nICpwYXRoID0gW2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6
ZmlsZU5hbWVCYXNlIG9mVHlwZTpAImJyayIgaW5EaXJlY3Rvcnk6QCJCcmVha2luZ1J1bGVzIl07
CisgICAgaWYgKCFwYXRoKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIE5TU3RyaW5n
ICpkaXJlY3RvcnkgPSBbcGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOwor
ICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworCisjaWYgUExBVEZPUk0o
SU9TKQorICAgIHVkYXRhX3NldEZpbGVBY2Nlc3MoVURBVEFfRklMRVNfRklSU1QsICZlcnJvckNv
ZGUpOworICAgIGlmIChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyNlbmRpZgorCisgICAgTG9jYWxVRGF0YU1lbW9yeVBvaW50ZXIgZGF0YSh1ZGF0
YV9vcGVuKFtkaXJlY3RvcnkgVVRGOFN0cmluZ10sICJicmsiLCBbZmlsZU5hbWVCYXNlIFVURjhT
dHJpbmddLCAmZXJyb3JDb2RlKSk7CisgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJST1Ip
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHVkYXRh
X3NldEZpbGVBY2Nlc3MoVURBVEFfREVGQVVMVF9BQ0NFU1MsICZlcnJvckNvZGUpOworICAgIGlm
IChlcnJvckNvZGUgIT0gVV9aRVJPX0VSUk9SKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNl
bmRpZgorCisgICAgYXV0byByZXN1bHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3I+KGRhdGEub3JwaGFuKCksIGVycm9yQ29kZSk7CisgICAgaWYgKGVycm9yQ29kZSAh
PSBVX1pFUk9fRVJST1IpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKworc3RhdGljIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50
SXRlcmF0b3IoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8
UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3Vy
Y2UoQCJDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMiKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9y
LmdldCgpLmdldCgpOworfQorCitzdGF0aWMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciogbGluZUJy
ZWFrSXRlcmF0b3JVQVgxNENKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6
dW5pcXVlX3B0cjxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRv
ckZyb21SZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksiKSk7CisgICAgcmV0dXJu
IGl0ZXJhdG9yLmdldCgpLmdldCgpOworfQorCitzdGF0aWMgUnVsZUJhc2VkQnJlYWtJdGVyYXRv
ciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPj4gaXRlcmF0b3Io
YnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksi
KSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpLmdldCgpOworfQorCitzdGF0aWMgUnVsZUJh
c2VkQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLKCkKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFJ1bGVCYXNlZEJyZWFrSXRl
cmF0b3I+PiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKEAiTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlQ0pLIikpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKS5nZXQoKTsK
K30KKworc3RhdGljIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6dW5pcXVl
X3B0cjxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21S
ZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSyIpKTsKKyAgICByZXR1
cm4gaXRlcmF0b3IuZ2V0KCkuZ2V0KCk7Cit9CisKK3N0YXRpYyBSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+PiBpdGVy
YXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSyIpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCkuZ2V0KCk7Cit9CisKK3N0YXRp
YyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9u
Q0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFJ1bGVC
YXNlZEJyZWFrSXRlcmF0b3I+PiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKEAi
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSyIpKTsKKyAgICByZXR1cm4gaXRlcmF0
b3IuZ2V0KCkuZ2V0KCk7Cit9CisKK3N0YXRpYyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKiBsaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8c3RkOjp1bmlxdWVfcHRyPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+PiBpdGVyYXRvcihicmVh
a0l0ZXJhdG9yRnJvbVJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSyIp
KTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCkuZ2V0KCk7Cit9CisKK3N0YXRpYyBSdWxlQmFz
ZWRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLKCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3I+PiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKEAiTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSyIpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCku
Z2V0KCk7Cit9CisKK1RleHRCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQo
QnJlYWtpbmdSdWxlU2V0IHJ1bGVTZXQpCit7CisgICAgc3dpdGNoIChydWxlU2V0KSB7CisgICAg
Y2FzZSBCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50OgorICAgICAgICBpZiAoYXV0byog
aXRlcmF0b3IgPSBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKCkpCisgICAgICAgICAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxUZXh0QnJlYWtJdGVyYXRvcio+KHN0ZDo6bWFrZV91bmlxdWU8UnVs
ZUJhc2VkQnJlYWtJdGVyYXRvcj4oKml0ZXJhdG9yKS5yZWxlYXNlKCkpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRDSks6CisgICAgICAg
IGlmIChhdXRvKiBpdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksoKSkKKyAgICAg
ICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRleHRCcmVha0l0ZXJhdG9yKj4oc3RkOjpt
YWtlX3VuaXF1ZTxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPigqaXRlcmF0b3IpLnJlbGVhc2UoKSk7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgx
NE5vbkNKSzoKKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gbGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vbkNKSygpKQorICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGV4dEJy
ZWFrSXRlcmF0b3IqPihzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+KCpp
dGVyYXRvcikucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgY2FzZSBC
cmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VDSks6CisgICAgICAgIGlmIChhdXRvKiBpdGVyYXRv
ciA9IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSygpKQorICAgICAgICAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8VGV4dEJyZWFrSXRlcmF0b3IqPihzdGQ6Om1ha2VfdW5pcXVlPFJ1
bGVCYXNlZEJyZWFrSXRlcmF0b3I+KCppdGVyYXRvcikucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks6
CisgICAgICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSygpKQorICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGV4dEJyZWFr
SXRlcmF0b3IqPihzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+KCppdGVy
YXRvcikucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgY2FzZSBCcmVh
a2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLOgorICAgICAgICBpZiAoYXV0byogaXRlcmF0b3Ig
PSBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKCkpCisgICAgICAgICAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxUZXh0QnJlYWtJdGVyYXRvcio+KHN0ZDo6bWFrZV91bmlxdWU8UnVs
ZUJhc2VkQnJlYWtJdGVyYXRvcj4oKml0ZXJhdG9yKS5yZWxlYXNlKCkpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks6
CisgICAgICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksoKSkKKyAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFRleHRCcmVh
a0l0ZXJhdG9yKj4oc3RkOjptYWtlX3VuaXF1ZTxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPigqaXRl
cmF0b3IpLnJlbGVhc2UoKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNhc2UgQnJl
YWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdENKSzoKKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9y
ID0gbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSygpKQorICAgICAgICAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8VGV4dEJyZWFrSXRlcmF0b3IqPihzdGQ6Om1ha2VfdW5pcXVlPFJ1
bGVCYXNlZEJyZWFrSXRlcmF0b3I+KCppdGVyYXRvcikucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pL
OgorICAgICAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLKCkpCisgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXh0QnJl
YWtJdGVyYXRvcio+KHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4oKml0
ZXJhdG9yKS5yZWxlYXNlKCkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cit9CisK
IHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVm
ZXJlbmNlKCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFk
b3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlWYWx1ZShDRlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUi
KSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFr
ZS9XZWJLaXRGUy5jbWFrZQppbmRleCAyOWEwOTY5MDM4ZmFhNzQ0ZTFhOGM1OGYzNTZhZDA3M2Yw
MDUyNWJkLi44MWY1NGE1NmFkNjk1M2Q3YjFlMjBjODhmYTg1YmJkZGQxZjA3ZThjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktp
dEZTLmNtYWtlCkBAIC0yNCw2ICsyNCw3IEBAIGlmIChOT1QgVE9PTFNfRElSKQogZW5kaWYgKCkK
IAogc2V0KERFUklWRURfU09VUkNFU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNv
dXJjZXMiKQorc2V0KERFUklWRURfU09VUkNFU19XVEZfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9
L0Rlcml2ZWRTb3VyY2VzL1dURiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JF
X0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZSIp
CiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJLSVRMRUdBQ1lf
RElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIpCkBA
IC0zMiw2ICszMyw4IEBAIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVIgIiR7Q01BS0Vf
QklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0MiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VT
X1dFQklOU1BFQ1RPUlVJX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9X
ZWJJbnNwZWN0b3JVSSIpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNf
SkFWQVNDUklQVENPUkVfRElSfSkKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJD
RVNfV1RGX0RJUn0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9E
SVJ9L0JyZWFraW5nUnVsZXMpCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJ
Un0vU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkg
JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfSkKZGlmZiAtLWdpdCBhL0NoYW5n
ZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmMjQyOGI5ZjQxZGMwYjhkMTc0MzdmN2E5NTE2NTNjMDQ0
N2FkNTE2Li5lZGJhYWM2NGUyMmU1NWU5YjA4YjA5ZmY2NGRkZTMxMmFmOWUwOWIwIDEwMDY0NAot
LS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMTIt
MTUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBD
b21waWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBy
dW4gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYwNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2U6CisKIDIwMTYtMTItMTUgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgZmxleCBh
bmQgYmlzb24gYnVpbGQgZGVwZW5kZW5jaWVzOyBjb21taXQgZ2VuZXJhdGVkIFhQYXRoIHBhcnNl
cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297306</attachid>
            <date>2016-12-16 01:02:46 -0800</date>
            <delta_ts>2017-02-07 18:00:10 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20161216010152.patch</filename>
            <type>text/plain</type>
            <size>121477</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5OTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZDEzNjMyZDQ0YzFjZjU3Zjc3OTdmNDAyZGNjYTVhYmM5Y2Q4NWM0Li5lNzcwM2I1YTg0YWUyMWFj
YWVlNzQxMWQ3ZDM2YTE1OTYxY2ZiNjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNi0xMi0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbmNsdWRlIHRoZSBieXRlY29kZSBmaWxlcyBpbnNpZGUgdGhl
IEphdmFTY3JpcHRDb3JlIGJ1bmRsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMTItMTUgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBhc1N0cmluZyBpbnN0ZWFkIG9mIHRvV1RGU3RyaW5n
LCB0b1N0cmluZywgb3IgZ2V0U3RyaW5nIHdoZW4gd2UgYWxyZWFkeSBjaGVja2VkIGlzU3RyaW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CmluZGV4IDRkMDJjNTUxYTIxY2UxMTllNmJhYzE0NWY2OWI0N2M3ZTkwZmY5NTAuLjdhMjA2NjZl
NWU2NTg0ZTdmZjQ5YjZjN2E0ZmMzYjBkMTM0MDZhZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsODEgQEAKIDIw
MTYtMTItMTUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAorICAg
ICAgICBDb21waWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIg
dGhhbiBydW4gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYwNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlIG1hY09TIGFuZCBpT1MgU0RLcyBpbmNsdWRlIGEgdG9vbCwgaWN1Z2VuYnJrLCB3
aGljaCBjb21waWxlcyBJQ1UgYnJrIGJyZWFraW5nCisgICAgICAgIHJ1bGVzIGludG8gYnl0ZWNv
ZGUuIFByZXZpb3VzbHksIHRoaXMgY29tcGlsYXRpb24gd2FzIGRvbmUgYXQgcnVudGltZSBpbnNp
ZGUgdGhlIElDVQorICAgICAgICB1YnJrX29wZW5SdWxlcygpIGZ1bmN0aW9uLiBNb3ZpbmcgdGhp
cyBjb21waWxhdGlvbiBzdGVwIHRvIGNvbXBpbGUgdGltZSByYXRoZXIgdGhhbgorICAgICAgICBi
dWlsZCB0aW1lIGNhdXNlcyBhIHBlcmZvcm1hbmNlIGJvb3N0LgorCisgICAgICAgIFByZXZpb3Vz
bHksIHRoZSBzb3VyY2UgZm9yIHRoZSBicmVha2luZyBydWxlcyB3YXMgYXNzZW1ibGVkIGJ5IGNv
bmNhdGVuYXRpbmcgQyBzdHJpbmdzCisgICAgICAgIGF0IHJ1bnRpbWUuIE5vdywgdGhlIHNvdXJj
ZSBpcyBjb250YWluZWQgd2l0aGluIGEgZmV3IHRleHQgZmlsZXMgaW5zaWRlCisgICAgICAgIHd0
Zi90ZXh0L0JyZWFraW5nUnVsZXMuIEEgYnVpbGQgc3RlcCAodXNpbmcgYSBNYWtlZmlsZSkgd2ls
bCBnZW5lcmF0ZSBzb3VyY2UgY29kZQorICAgICAgICBjb250YWluaW5nIHRoZXNlIHN0cmluZ3Ms
IGFuZCBXVEYgd2lsbCBpbmNsdWRlIHRoZXNlIHNvdXJjZSBmaWxlcyBpbiB0aGUgc2FtZSB3YXkg
YW55CisgICAgICAgIG9mIG91ciBwcm9qZWN0cyB1c2UgZ2VuZXJhdGVkIHNvdXJjZXMuIEFkZGl0
aW9uYWxseSwgb24gT1NlcyB3aGljaCBzdXBwb3J0IGl0LCB0aGVzZQorICAgICAgICBzdHJpbmdz
IGdldCBjb21waWxlZCBkaXJlY3RseSBpbnRvIElDVSBieXRlY29kZSwgYW5kIHRoZW4gaW5jbHVk
ZWQgaW4gdGhlIGZyYW1ld29yaworICAgICAgICBidW5kbGUuIEJlY2F1c2UgV1RGIGdldHMgc3Rh
dGljYWxseSBsaW5rZWQgaW50byBKYXZhU2NyaXB0Q29yZSwgdGhpcyBpcyB0aGUgYnVuZGxlCisg
ICAgICAgIHdoaWNoIGluY2x1ZGVzIHRoZSBieXRlY29kZSBmaWxlcy4KKworICAgICAgICBBdCBy
dW50aW1lLCB3ZSBmaXJzdCBjaGVjayBpZiB3ZSBoYXZlIGEgZmlsZSBpbiBvdXIgYnVuZGxlIG9m
IHRoZSBhcHByb3ByaWF0ZSBuYW1lLAorICAgICAgICBhbmQgdGhlbiBzZWUgaWYgSUNVIGNhbiBv
cGVuIGl0IHVzaW5nIGl0cyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yIGludGVyZmFjZSAod2hpY2gK
KyAgICAgICAgaW5jbHVkZXMgYSB2ZXJzaW9uIGNoZWNrKS4gSWYgYW55IG9mIHRoZXNlIGNoZWNr
cyBmYWlsLCBvciBpZiB3ZSdyZSBvbiBhIHBvcnQgd2hpY2gKKyAgICAgICAgZG9lc24ndCBoYXZl
IHRoZSBub3Rpb24gb2YgYnVuZGxlcywgd2Ugd2lsbCB1c2UgdGhlIEMgc3RyaW5ncyBnZW5lcmF0
ZWQgYWJvdmUsIGFuZAorICAgICAgICBwYXNzIHRoZW0gdG8gdWJya19vcGVuUnVsZXMoKSB0aGUg
c2FtZSB3YXkgd2Ugd2VyZSBkb2luZyBiZWZvcmUgdGhpcyBwYXRjaC4KKworICAgICAgICBUaGUg
UnVsZUJhc2VkQnJlYWtJdGVyYXRvciBpbnRlcmZhY2UgaW4gSUNVIHJlcXVpcmVzIGFkZGluZyBz
b21lIG1vcmUgb2YgSUNVJ3MgcHVibGljCisgICAgICAgIGhlYWRlcnMgaW50byBXZWJLaXQuCisK
KyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIGEgbmV3IERlcml2
ZWQgU291cmNlcyB0YXJnZXQgd2hpY2ggdXNlcyBhCisgICAgICAgIERlcml2ZWRTb3VyY2VzLm1h
a2UgTWFrZWZpbGUsIHRoZSBzYW1lIHdheSBXZWJLaXQyLCBXZWJDb3JlLCBhbmQgSmF2YVNjcmlw
dENvcmUgd3Jvay4KKyAgICAgICAgQWxzbywgYWRkIHRoZSBydWxlcyB0ZXh0IGZpbGVzIHRvIHRo
ZSBwcm9qZWN0LiBUaGVuLCBtYWtlIFdURiBkZXBlbmQgb24gdGhpcyBuZXcKKyAgICAgICAgdGFy
Z2V0LgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDogQWRkIGJ1aWxkIHN0ZXBzIGZvciBv
dGhlciBwb3J0cyB0byBnZW5lcmF0ZSB0aGUgYnJlYWtpbmcKKyAgICAgICAgcnVsZXMgc3RyaW5n
cyBzb3VyY2UgZmlsZXMuCisgICAgICAgICogd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVk
LiBUaGlzIGlzIHRoZSBwbGFjZSB3aGVyZSBpY3VnZW5icmsgaXMgYWN0dWFsbHkgCisgICAgICAg
IGludm9rZWQuIEl0IGFsc28gdHJpZ2dlcnMgdGhlIHNjcmlwdCAoR2VuZXJhdGVCcmVha2luZ1J1
bGVTdHJpbmdzLnB5KSB3aGljaCBnZW5lcmF0ZXMKKyAgICAgICAgdGhlIEMrKyBjb2RlIGZvciB0
aGUgcnVsZXMgc3RyaW5ncy4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5OiBBZGRlZC4gR2VuZXJh
dGUgQysrLgorICAgICAgICAobWFpbik6CisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDogQWRkZWQuCisg
ICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pL
LnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
bkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRl
SXRlcmF0b3JGb3JSdWxlU2V0KTogVXNlZCBieSBvdGhlciBwb3J0cy4gUmV0dXJuaW5nIG51bGxw
dHIgbWVhbnMgd2UgY2FuJ3QKKyAgICAgICAgdXNlIHByZWNvbXBpbGVkIHJ1bGVzLgorICAgICAg
ICAoV1RGOjpjcmVhdGVDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKTogVXNlZCBp
biBwbGFjZSBvZiB0aGUgaGFyZGNvZGVkIHJ1bGVzCisgICAgICAgIGluIGN1cnNvck1vdmVtZW50
SXRlcmF0b3IoKS4KKyAgICAgICAgKFdURjo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6IFJlbW92
ZSBoYXJkY29kZWQgcnVsZXMuCisgICAgICAgIChXVEY6Om1hcExpbmVJdGVyYXRvck1vZGVUb1J1
bGVzKTogVXBkYXRlIHRvIHVzZSB0aGUgbmV3IGdlbmVyYXRlZCBDKysgc3RyaW5ncy4KKyAgICAg
ICAgKFdURjo6b3BlbkxpbmVCcmVha0l0ZXJhdG9yKTogVGhlIGxvZ2ljIG9mIHRyeWluZyB0byB1
c2UgYSBwcmVjb21waWxlZCBieXRlY29kZSwgYW5kIGZhbGxpbmcKKyAgICAgICAgYmFjayB0byBD
Kysgc3RyaW5ncyBpZiBpdCBpc24ndCBwb3NzaWJsZS4KKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0
QnJlYWtJdGVyYXRvci5oOiBIZWFkZXIgZm9yIGdlbmVyYXRlZCBDKysgY29kZS4KKyAgICAgICAg
KiB3dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbToKKyAgICAg
ICAgKFdURjo6YnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSk6IFRoZSBhY3R1YWwgbG9naWMgZm9y
IGxvb2tpbmcgaW5zaWRlIHRoZSBidW5kbGUgZm9yIHRoZQorICAgICAgICBwcmVjb21waWxlZCBi
eXRlY29kZS4KKyAgICAgICAgKFdURjo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6IENhbGxzIGJy
ZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSyk6IENhbGxzIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAgICAg
KFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSyk6IENhbGxzIGJyZWFrSXRlcmF0b3JG
cm9tUmVzb3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Q0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjps
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSkspOiBDYWxscyBicmVha0l0ZXJhdG9yRnJv
bVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SkspOiBDYWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCkuCisgICAgICAgIChXVEY6Omxp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSkspOiBDYWxscyBicmVha0l0ZXJhdG9yRnJv
bVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RD
SkspOiBDYWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCkuCisgICAgICAgIChXVEY6Omxp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSkspOiBDYWxscyBicmVha0l0ZXJhdG9yRnJv
bVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldCk6ICBD
YWxsIHRoZSBhYm92ZSBzdGF0aWMgZnVuY3Rpb25zLgorCisyMDE2LTEyLTE1ICBNeWxlcyBDLiBN
YXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKICAgICAgICAgVW5yZXZpZXdlZCBidWls
ZCBmaXggYWZ0ZXIgcjIwOTkxMAogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDJkOTI1NzdhMmY3OGUxMDliODE4ZDIzMTA5NWVjOWNjMWVjNmIw
NGQuLjcwN2M0NzEwNWU1M2FkNGY0N2YyMDEwMmE0NGZmZDY3NTgzODU0YmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjA1LDYgKzEyMDUsNyBAQAogCQkxQTI4RDRBODE3N0I3
MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTI4RDRBNzE3N0I3MUM4MDAwN0ZBM0MgLyogSlNT
dHJpbmdSZWZQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMUE4ODI2QjE2NTNDNENEMUE2NDI5ODNCIC8qIFRlbXBsYXRlUmVnaXN0cnlL
ZXlUYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4QjQ3RjIzNDM2NkM0QjcyQUM4NTJBN0UgLyogVGVtcGxhdGVSZWdpc3RyeUtleVRhYmxlLmNw
cCAqLzsgfTsKIAkJMUFDRjczNzcxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDRjczNzYxNzFDQTZGQjAw
QzlCQjFFIC8qIFdlYWsuY3BwICovOyB9OworCQkxQ0QxODc5MDFENTU5NjEyMDBDQzdERUMgLyog
QnJlYWtpbmdSdWxlcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi87IH07CiAJ
CTI2MDBCNUE2MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNDE1MkJBQUE3MDA5
MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovOyB9OwogCQkyNjAwQjVBNzE1MkJBQUE3MDA5
MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5l
ci5oICovOyB9OwogCQkyNjJEODVCNjFDMEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJl
Z2lzdGVyU3RhbGxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI2MkQ4NUI0MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJT
dGFsbHMuY3BwICovOyB9OwpAQCAtMzU4OCw2ICszNTg5LDcgQEAKIAkJMUM5MDUxNDUwQkE5RThB
NzAwODFFOUQwIC8qIEJhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRo
ID0gQmFzZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEEw
RDMyQzM5QTAwNDFCQ0ZGIC8qIEphdmFTY3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSmF2YVNjcmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FB
OEI0QjBEMzJDMzlBMDA0MUJDRkYgLyogSmF2YVNjcmlwdENvcmUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNjcmlwdENvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmb2xkZXI7IG5hbWUg
PSBCcmVha2luZ1J1bGVzOyBwYXRoID0gLi4vV1RGL0JyZWFraW5nUnVsZXM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pv
aW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0cmluZ0pv
aW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MDBCNUE1MTUyQkFBQTcw
MDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1N0cmluZ0pvaW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjJE
ODVCNDFDMEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFpckZpeFBhcnRpYWxSZWdpc3Rl
clN0YWxscy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5NTAsMTQgKzQ5NTIsMTQgQEAKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMEY5MzI3NTkxQzIwQkNCQTAw
Q0Y2NTY0IC8qIGR5bmJlbmNoICovLAotCQkJCTBGRjkyMkNGMTRGNDZCMTMwMDQxQTI0RSAvKiBK
U0NMTEludE9mZnNldHNFeHRyYWN0b3IgKi8sCi0JCQkJMEY2MTgzNDMxQzQ1RjYyQTAwNzI0NTBC
IC8qIHRlc3RhaXIgKi8sCi0JCQkJNjUxMTIzMDUxNDA0NkE0QzAwMkIxMDFEIC8qIHRlc3RSZWdF
eHAgKi8sCi0JCQkJOTMyRjVCRDkwODIyQTFDNzAwNzM2OTc1IC8qIEphdmFTY3JpcHRDb3JlLmZy
YW1ld29yayAqLywKIAkJCQk5MzJGNUJFMTA4MjJBMUM3MDA3MzY5NzUgLyoganNjICovLAorCQkJ
CTBGRjkyMkNGMTRGNDZCMTMwMDQxQTI0RSAvKiBKU0NMTEludE9mZnNldHNFeHRyYWN0b3IgKi8s
CiAJCQkJMTQxMjExMjAwQTQ4NzkzQzAwNDgwMjU1IC8qIG1pbmlkb20gKi8sCisJCQkJMEY2MTgz
NDMxQzQ1RjYyQTAwNzI0NTBCIC8qIHRlc3RhaXIgKi8sCiAJCQkJMTRCRDU5QkYwQTNFOEY5MDAw
QkFGNTlDIC8qIHRlc3RhcGkgKi8sCiAJCQkJMEZFQzg1QUQxQkRCNUNGMTAwODBGRjc0IC8qIHRl
c3RiMyAqLywKKwkJCQk2NTExMjMwNTE0MDQ2QTRDMDAyQjEwMUQgLyogdGVzdFJlZ0V4cCAqLywK
KwkJCQk5MzJGNUJEOTA4MjJBMUM3MDA3MzY5NzUgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3Jr
ICovLAogCQkJKTsKIAkJCW5hbWUgPSBQcm9kdWN0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC01OTA0LDYgKzU5MDYsNyBAQAogCQk2NTBGREY4RDA5RDBGQ0E3MDA3NjlFNTQgLyog
RGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJ
CQkwRjYxODMzMjFDNDVGMzVDMDA3MjQ1MEIgLyogQWlyT3Bjb2RlLmggKi8sCiAJCQkJMEY2MTgz
MzQxQzQ1RjNCNjAwNzI0NTBCIC8qIEFpck9wY29kZUdlbmVyYXRlZC5oICovLAogCQkJCTBGNjE4
MzM1MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVVdGlscy5oICovLApAQCAtOTI1NSw2ICs5
MjU4LDcgQEAKIAkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAw
Q0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJCUE1M0YxQUMwMThD
OTBGOEYwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBiL1NvdXJjZS9X
VEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTZi
MDQ3NjlmY2EzOThhY2M5OTc4NjkyYjc3NzA2NDA1ZWQwNDhhNwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKQEAgLTAs
MCArMSwxMTAgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5cworaW1wb3J0IHJlCisKK2hlYWRlciA9ICIi
Ii8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLyIiIgorCisKK2RlZiBtYWluKGFyZ3Y9Tm9uZSk6CisgICAgaWYgbm90IGFyZ3Y6
CisgICAgICAgIGFyZ3YgPSBzeXMuYXJndgorICAgIGZpbGVOYW1lU3RhcnRJbmRleCA9IDEKKwor
ICAgIGluY2x1ZGVEZWZpbmVzID0gRmFsc2UKKyAgICBpZiBhcmd2W2ZpbGVOYW1lU3RhcnRJbmRl
eF0gPT0gIi1pbmNsdWRlRGVmaW5lcyI6CisgICAgICAgIGluY2x1ZGVEZWZpbmVzID0gVHJ1ZQor
ICAgICAgICBmaWxlTmFtZVN0YXJ0SW5kZXggPSBmaWxlTmFtZVN0YXJ0SW5kZXggKyAxCisKKyAg
ICBzeW1ib2xOYW1lID0gYXJndltmaWxlTmFtZVN0YXJ0SW5kZXhdWzBdLmxvd2VyKCkgKyBhcmd2
W2ZpbGVOYW1lU3RhcnRJbmRleF1bMTpdCisgICAgZmlsZU5hbWVTdGFydEluZGV4ID0gZmlsZU5h
bWVTdGFydEluZGV4ICsgMQorICAgIGZpbGVOYW1lcyA9IGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4
Ol0KKworICAgIHByaW50KGhlYWRlcikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiLy8gRE8g
Tk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSB0aGUg
c2NyaXB0IikKKyAgICBwcmludCgiLy8gV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvR2VuZXJh
dGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiI2lu
Y2x1ZGUgXCJjb25maWcuaFwiIikKKyAgICBwcmludCgiI2luY2x1ZGUgPHVuaWNvZGUvdXZlcm51
bS5oPiIpCisgICAgcHJpbnQoIiIpCisgICAgaWYgaW5jbHVkZURlZmluZXM6CisgICAgICAgIHBy
aW50KCIjZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8fCAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEw
MCkpIikKKyAgICAgICAgcHJpbnQoIiNkZWZpbmUgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyAo
KFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05V
TSA+PSA5KSkiKQorICAgICAgICBwcmludCgiIikKKyAgICBwcmludCgibmFtZXNwYWNlIFdURiB7
IikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiY29uc3QgY2hhciogIiArIHN5bWJvbE5hbWUg
KyAiID0gIikKKworICAgIGZvciBmaWxlTmFtZSBpbiBmaWxlTmFtZXM6CisgICAgICAgIGZvciBs
IGluIG9wZW4oZmlsZU5hbWUsICdyJyk6CisgICAgICAgICAgICBsaW5lID0gbC5yc3RyaXAoKQor
ICAgICAgICAgICAgaWYgcmUubWF0Y2goIl5ccyokIiwgbGluZSk6CisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoIiMgIik6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lID09ICIjIjoKKyAgICAgICAgICAgICAg
ICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyIpOgorICAgICAgICAg
ICAgICAgIHByaW50KGxpbmUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1h
dGNoID0gcmUubWF0Y2goIl4oLiopOyggIyAuKik/JCIsIGxpbmUpCisgICAgICAgICAgICAgICAg
aWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJcIiIgKyBtYXRjaC5ncm91
cCgxKS5yZXBsYWNlKCJcXCIsICJcXFxcIikgKyAiO1wiIgorICAgICAgICAgICAgICAgICAgICBp
ZiBtYXRjaC5ncm91cCgyKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiIC8v
ICIgKyBtYXRjaC5ncm91cCgyKVszOl0KKyAgICAgICAgICAgICAgICAgICAgcHJpbnQocmVzdWx0
KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGV4aXQoMSkKKwor
ICAgIHByaW50KCI7IikKKyAgICBwcmludCgifSIpCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6CisgICAgc3lzLmV4aXQobWFpbihzeXMuYXJndikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAxMjRhNGI3YzEyMDNjNGJlZmZlZTA3MWE2OWJhZmJjNzJm
OWI4MjliLi4zNWM1ZTI1YjM0OWFmMzk2ZmZlYTVmMTZhYTFkYWIwNWRiMzRiZDUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcsNiArNywxNyBAQAogCW9i
amVjdHMgPSB7CiAKIC8qIEJlZ2luIFBCWEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICovCisJCTFD
RDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJCQlpc2Eg
PSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMUNEMTg3
ODMxRDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdn
cmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJ
CQkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVyYXRlIERlcml2ZWQgU291cmNlcyAq
LywKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkpOworCQkJbmFtZSA9ICJEZXJpdmVk
IFNvdXJjZXMiOworCQkJcHJvZHVjdE5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsKIAkJ
NjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi8gPSB7CiAJCQlp
c2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNjVB
RkEyODgxNjMwQjk3NzAwM0Q3MjNDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJY
QWdncmVnYXRlVGFyZ2V0ICJDb3B5IFdURiBIZWFkZXJzIiAqLzsKQEAgLTg0LDcgKzk1LDYgQEAK
IAkJMTQ0N0FFQzYxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQzUxOEZD
RTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OwogCQkxNDQ3QUVDNzE4
RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEg
Ki87IH07CiAJCTE0NDdBRUM5MThGQ0U1OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDODE4RkNFNTk0
MDBCM0Q3RkYgLyogbWJtYWxsb2MuY3BwICovOyB9OwotCQkxNDQ3QUVDQjE4RkNFNUI5MDBCM0Q3
RkYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5
bGliICovOyB9OwogCQkxNDY5NDE5MjE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDY5NDE5MDE2
RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoKTsgfTsgfTsKIAkJMTQ2OTQxOTMxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1l
ckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
Njk0MTkxMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXJDRi5jcHAgKi87IH07CiAJCTE0
Njk0MTk2MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTk0MTZFQUFGRjgwMDI0RTE0NiAv
KiBTY2hlZHVsZVBhaXIuaCAqLzsgfTsKQEAgLTMzNyw2ICszNDcsMTYgQEAKIAkJQThBNDc0OEMx
NTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThBNDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICov
OyB9OwogCQlBRDdDNDM0QjFERDJBNEE3MDAyNjg4OEIgLyogRXhwZWN0ZWQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEN0M0MzRBMUREMkE0QTcwMDI2
ODg4QiAvKiBFeHBlY3RlZC5oICovOyB9OwogCQlCMzhGRDdCRDE2ODk1M0U4MDA2NUM5NjkgLyog
RmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovOyB9
OworCQlDMkJBNTQzRTFENTg2QUY0MDAwQTMzMzIgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFt
ZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1
QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OworCQlDMkNBMzdFOTFENTVDOTcx
MDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5
OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovOyB9OworCQlDMkNBMzdFQTFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VC
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi87IH07
CisJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwICovOyB9OworCQlDMkNBMzdFRjFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87
IH07CisJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTgxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICovOyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0
MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi87
IH07CiAJCUM4QjBFMUExRTAxQTQ4NkVCOTVFMEQxMSAvKiBJbmRleFNldC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzN0UxRDdEQkQ4NEFDMzhGQUU0
RDM0IC8qIEluZGV4U2V0LmggKi87IH07CiAJCUM5MTZCOTc1RjAyRjRGN0U4QjRBQjEyRCAvKiBJ
bmRleE1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUI0MzM4M0E1RDBCNDYzQzk0MzNEOTMzIC8qIEluZGV4TWFwLmggKi87IH07CkBAIC0zNzEsNiAr
MzkxLDEzIEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDVEMjQ3QjYxMTQ2ODlCODYwMEU3
OEI3NjsKIAkJCXJlbW90ZUluZm8gPSBXVEY7CiAJCX07CisJCTFDRDE4Nzg3MUQ1NTY5ODgwMEND
N0RFQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CisJCQlpc2EgPSBQQlhDb250YWlu
ZXJJdGVtUHJveHk7CisJCQljb250YWluZXJQb3J0YWwgPSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhC
NzYgLyogUHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94eVR5cGUgPSAxOworCQkJcmVtb3RlR2xv
YmFsSURTdHJpbmcgPSAxQ0QxODc4MTFENTU2OTVDMDBDQzdERUM7CisJCQlyZW1vdGVJbmZvID0g
IkRlcml2ZWQgU291cmNlcyI7CisJCX07CiAJCTY1QUZBMjhEMTYzMEI5OUUwMDNENzIzQyAvKiBQ
QlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJv
eHk7CiAJCQljb250YWluZXJQb3J0YWwgPSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJv
amVjdCBvYmplY3QgKi87CkBAIC00ODIsNiArNTA5LDE5IEBACiAJCTFDMTgxQzhEMUQzMDdBQjgw
MEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUMxODFDOEUxRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYx
Ni5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVVGV4dFByb3ZpZGVyVVRGMTYu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMxODFDOTUxRDMwODAwQTAwRjVGQTE2
IC8qIFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1t
OyBwYXRoID0gbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDNkJFMEZBMUUwMzRDOUEwMDIxNzYxNyAvKiBHZW5lcmF0
ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGggPSBHZW5lcmF0ZUJyZWFr
aW5nUnVsZVN0cmluZ3MucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk0
MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Q0I0RkI5NjFENTU5QTkwMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pL
LnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VD
SksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NzFENTU5QUE4MDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0OyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5ODFENTU5QUQyMDBGOUZFMzggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RD
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3RDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QjFENTU5QjNF
MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQ7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlDMUQ1NTlCNjcwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBM
aW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhtbDsgbmFt
ZSA9IERlcml2ZWRTb3VyY2VzLm1ha2U7IHBhdGggPSB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdXNlc1RhYnMgPSAxOyB9OworCQkxQ0QxODc5MjFENTU5
OEUxMDBDQzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQ0QxODc5MzFENTU5OTY1MDBDQzdERUMgLyogTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50
eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQ7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg4MTUyNTAyREEwMDU2OEQxQiAv
KiBXZWJDb3JlVGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkNvcmVUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4
OTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTI2MTQ3QjA4MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludGVnZXJUb1N0cmluZ0NvbnZl
cnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcxMSw2ICs3NTEsMTUgQEAK
IAkJQThBNDc0OEIxNTFBODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QUQ3QzQzNEExREQyQTRBNzAwMjY4ODhCIC8qIEV4cGVjdGVkLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEV4cGVjdGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0N1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTIxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksu
Y3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNK
Sy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U0MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3Bw
OyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7IHBh
dGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNw
cDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNK
Sy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksu
Y3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTgxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5v
bkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNEY4QTkzNjE5QzY1
RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQTE1
ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC03NDIsNyArNzkxLDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJ
CQlmaWxlcyA9ICgKIAkJCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5m
cmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCQkxNDQ3QUVDQjE4RkNFNUI5MDBCM0Q3RkYg
LyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovLAorCQkJCUMyQkE1NDNFMUQ1ODZB
RjQwMDBBMzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMTQ0
N0FFQzcxOEZDRTU4MDAwQjNEN0ZGIC8qIGxpYldURi5hIGluIEZyYW1ld29ya3MgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC03NzksNiAr
ODI4LDMyIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJ
fTsKKwkJMUM2QkUwRjkxRTAzNEMyQTAwMjE3NjE3IC8qIFNjcmlwdHMgKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTFDNkJFMEZBMUUwMzRDOUEwMDIxNzYx
NyAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8sCisJCQkpOworCQkJcGF0aCA9
IFNjcmlwdHM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkxQ0QxODc5MTFE
NTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVDIC8qIEN1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8sCisJCQkJMUNCNEZCOUMxRDU1OUI2NzAwRjlG
RTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovLAorCQkJCTFDRDE4NzkzMUQ1
NTk5NjUwMENDN0RFQyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLywKKwkJCQkx
Q0I0RkI5NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQg
Ki8sCisJCQkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTUxRDU1OUE2
OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0ICovLAorCQkJCTFD
QjRGQjk4MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pL
LnR4dCAqLywKKwkJCQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJCTFDQjRGQjlC
MUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4
dCAqLywKKwkJCSk7CisJCQlwYXRoID0gQnJlYWtpbmdSdWxlczsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CiAJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2OEQxQiAvKiBpb3MgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtODAxLDkgKzg3NiwxMiBA
QAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1RDI0N0I2RDE0Njg5
QzQ3MDBFNzhCNzYgLyogQ29uZmlndXJhdGlvbnMgKi8sCisJCQkJQzJDQTM3REYxRDU1QzhEODAw
NDg2Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDAyMkYzRjE4RjVDM0U1MDA3RkYw
RUIgLyogTGlicmFyaWVzICovLAogCQkJCTVEMjQ3QjYzMTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9k
dWN0cyAqLywKKwkJCQkxQzZCRTBGOTFFMDM0QzJBMDAyMTc2MTcgLyogU2NyaXB0cyAqLywKIAkJ
CQk1RDI0N0I3NjE0Njg5RDc2MDBFNzhCNzYgLyogU291cmNlICovLAorCQkJCTFDRDE4NzhBMUQ1
NThBRDMwMENDN0RFQyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovLAogCQkJCTE0NDdBRUM1MThG
Q0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKIAkJCQkxNDQ3QUVDQTE4
RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLywKIAkJCSk7CkBAIC0xMTYyLDYg
KzEyNDAsNyBAQAogCQlBOEE0NzMxQjE1MUE4MjVCMDA0MTIzRkYgLyogdGV4dCAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OTExRDU1OThFMTAw
Q0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJQTVCQTE1RjYxODI0MzU5RTAwQTgyRTY5
IC8qIGNmICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3UgKi8sCiAJCQkJ
QTVCQTE1RjExODI0MzM5RjAwQTgyRTY5IC8qIG1hYyAqLywKQEAgLTEyMzksNiArMTMxOCwyMyBA
QAogCQkJcGF0aCA9IGljdTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUMy
Q0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5
OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovLAorCQkJCUMyQ0EzN0UxMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAqLywKKwkJCQlD
MkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pL
LmNwcCAqLywKKwkJCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNDFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTUxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwICovLAor
CQkJCUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTgxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICovLAorCQkJ
KTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXBhdGggPSBEZXJpdmVkU291cmNl
cy9XVEY7CisJCQlzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOworCQl9OwogCQlDRTQ2
NTE2QzE5REIxRkI0MDAzRUNBMDUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKApAQCAtMTU3MCw2ICsxNjY2LDcgQEAKIAkJCWJ1aWxkUnVsZXMgPSAo
CiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTFDRDE4Nzg4MUQ1NTY5ODgwMENDN0RF
QyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTY1QUZBMjhFMTYzMEI5OUUwMDNENzIz
QyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBXVEY7CkBAIC0x
NjAwLDEyICsxNjk3LDI3IEBACiAJCQl0YXJnZXRzID0gKAogCQkJCTVEMjQ3QjYxMTQ2ODlCODYw
MEU3OEI3NiAvKiBXVEYgKi8sCiAJCQkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkg
V1RGIEhlYWRlcnMgKi8sCisJCQkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQg
U291cmNlcyAqLywKIAkJCQkxNDQ3QUVCRDE4RkNFNTY5MDBCM0Q3RkYgLyogbWJtYWxsb2MgKi8s
CiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQ
QlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLworCQkxQ0QxODc4MjFENTU2OTVDMDBD
QzdERUMgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYU2hl
bGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJ
CWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJbmFtZSA9ICJH
ZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMiOworCQkJb3V0cHV0UGF0aHMgPSAoCisJCQkpOworCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCQlzaGVsbFBhdGggPSAv
YmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAibWtkaXIgLXAgXCIke0JVSUxUX1BST0RVQ1RTX0RJ
Un0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcbmNkIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2
ZWRTb3VyY2VzL1dURlwiXG5cbi9iaW4vbG4gLXNmaCBcIiR7U1JDUk9PVH1cIiBXVEZcbmV4cG9y
dCBXVEY9XCJXVEZcIlxuXG5pZiBbICEgLWQgQnJlYWtpbmdSdWxlcyBdOyB0aGVuXG4gICAgbWtk
aXIgQnJlYWtpbmdSdWxlc1xuZmlcblxuaWYgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRc
IiA9PSBcIjEwLjEwXCIgXSA7IHRoZW5cbiAgICBleHBvcnQgQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUPTBcbmVsc2VcbiAgICBleHBvcnQgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPTFcbmZpXG5c
bmlmIFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMFwiIF0gfHwgWyBc
IiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEwLjExXCIgXSB8fCBbIFwiJE1BQ09T
WF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTJcIiBdIHx8IFsgXCIkU0RLX1ZFUlNJT05f
TUFKT1JcIiA9PSBcIjkwMDAwXCIgXSB8fCBbIFwiJFNES19WRVJTSU9OX01BSk9SXCIgPT0gXCIx
MDAwMDBcIiBdOyB0aGVuXG4gICAgZXhwb3J0IEhBVkVfSUNVR0VOQlJLPTBcbmVsc2VcbiAgICBl
eHBvcnQgSEFWRV9JQ1VHRU5CUks9MVxuZmlcblxuaWYgWyBcIiR7QUNUSU9OfVwiID0gXCJidWls
ZFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJp
bnN0YWxsaGRyc1wiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxhcGlcIiBdOyB0aGVuXG5t
YWtlIC0tbm8tYnVpbHRpbi1ydWxlcyAtZiBcIldURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZVwi
IC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9PVD1cIiR7U0RLUk9P
VH1cIlxuZmkiOworCQl9OwogCQk2NUFGQTE3MDE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYg
SGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKIAkJCWJ1
aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNjU4LDYgKzE3NzAsNyBAQAogCQkJCUUx
NTU1NkY1MThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3NDM5MTUxQTgyNUIwMDQxMjNGRiAvKiBDU3RyaW5nLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlDMTUxQTgyNUIwMDQxMjNGRiAvKiBDdXJyZW50VGlt
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlF
MTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRhTG9nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3
M0EwMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRlTWF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OEE0NzNBMjE1MUE4MjVCMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTE2NzMsNiArMTc4NiwxNCBAQAogCQkJCTFBMUQ4QjlFMTczMTg3OTgwMDE0MURBNCAv
KiBGdW5jdGlvbkRpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkNDRDg5MkExNUMw
MzkwMjAwMjg1MDgzIC8qIEdyZWdvcmlhbkRhdGVUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4QTQ3M0Q4MTUxQTgyNUIwMDQxMjNGRiAvKiBIYXNoVGFibGUuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNB
MzdFQzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VF
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0Yw
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0YxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTE2NDZB
MUI2RkZDOTYwMDQwMEU3QyAvKiBMb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjBGMzJG
MURGQ0JEMUIwMDQxNkQ2QyAvKiBMb2NrZWRQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEE0NzNFNTE1MUE4MjVCMDA0MTIzRkYgLyogTWFpblRocmVhZC5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTE3NDUsNiArMTg2NiwxMSBAQAogCQkJdGFyZ2V0ID0gNUQyNDdCNjExNDY4OUI4
NjAwRTc4Qjc2IC8qIFdURiAqLzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FFQzMxOEZDRTU3MDAw
QjNEN0ZGIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJMUNEMTg3ODgxRDU1
Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhU
YXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8q
IERlcml2ZWQgU291cmNlcyAqLzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3ODcxRDU1Njk4ODAw
Q0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJNjVBRkEyOEUxNjMw
Qjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhU
YXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8q
IENvcHkgV1RGIEhlYWRlcnMgKi87CkBAIC0xNzc0LDYgKzE5MDAsMzAgQEAKIAkJCX07CiAJCQlu
YW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERl
YnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmln
dXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVh
c2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9
ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQkxQ0Qx
ODc4NTFENTU2OTVDMDBDQzdERUMgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRD
b25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0
Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0
aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJ
CW5hbWUgPSBSZWxlYXNlOworCQl9OworCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJv
ZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNv
bmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdS
ZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05B
TUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9
OwogCQk1RDI0N0I2NDE0Njg5Qjg2MDBFNzhCNzYgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBY
Q0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQy
NDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKQEAgLTE4
NTcsNiArMjAwNywxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwog
CQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3
ODMxRDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdn
cmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovID0geworCQkJaXNhID0gWENDb25maWd1
cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJMUNEMTg3ODQxRDU1
Njk1QzAwQ0M3REVDIC8qIERlYnVnICovLAorCQkJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAv
KiBSZWxlYXNlICovLAorCQkJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9u
ICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRl
ZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjVDMTQ2
ODlCODYwMEU3OEI3NiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3Qg
IldURiIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25m
aWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggZTM0ZDM3ZjkzNmVjZjNiODI3
MTAyMzAwMTcxN2Q5OGQ3YzM3M2Y0OC4uYTlhMDVlMTJiMDhkODg5NDZjNDUzMTFjYzYwN2E3NWUx
NWJiYzVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTI5NCw2ICsyOTQsNDIgQEAgaWYgKE5P
VCBVU0VfU1lTVEVNX01BTExPQykKICAgICBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTIGJtYWxs
b2MpCiBlbmRpZiAoKQogCitzZXQoV1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVMKKyAgICB0ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKKyAgICB0ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dAorICAgIHRleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0CisgICAg
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0CisgICAg
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0Cisg
ICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksu
dHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RD
SksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksudHh0CispCisKK21hY3JvKEdFTkVSQVRFX0JSRUFLSU5HX1JVTEVTIF9pbnB1dCBf
c3ltYm9sTmFtZSBfb3V0cHV0KQorICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VU
UFVUICR7X291dHB1dH0KKyAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7V1RGX0RJUn0vU2NyaXB0
cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKKyAgICAgICAgREVQRU5EUyAke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
UHJvbG9ndWUudHh0ICR7X2lucHV0fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisgICAgICAgIENPTU1B
TkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZfRElSfS9TY3JpcHRzL0dlbmVyYXRlQnJlYWtp
bmdSdWxlU3RyaW5ncy5weSAtaW5jbHVkZURlZmluZXMgJHtfc3ltYm9sTmFtZX1SdWxlcyAke0NN
QUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yUHJvbG9ndWUudHh0ICR7X2lucHV0fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ID4gJHtfb3V0cHV0
fQorICAgICAgICBWRVJCQVRJTSkKKyAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke19vdXRw
dXR9KQorICAgIEFERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7X2lucHV0fSAke19vdXRwdXR9KQor
ZW5kbWFjcm8oKQorCitmb3JlYWNoIChfZmlsZSAke1dURl9CUkVBS0lOR19SVUxFU19TT1VSQ0VT
fSkKKyAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCisg
ICAgR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7
X2ZpbGV9ICR7X25hbWV9ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMv
JHtfbmFtZX0uY3BwKQorZW5kZm9yZWFjaCAoKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAg
T1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcAorICAgIE1BSU5fREVQRU5ERU5DWSAke1dURl9ESVJ9L1Nj
cmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CisgICAgREVQRU5EUyAke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy50eHQKKyAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJ
Un0vU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgLWluY2x1ZGVEZWZpbmVz
IGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0v
dGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgPiAke0RF
UklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy5jcHAKKyAgICBWRVJCQVRJTSkKK2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7REVS
SVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCkKK0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7Q01BS0VfQ1VSUkVOVF9TT1VS
Q0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4
dCAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy5jcHApCisKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgdW5pY29k
ZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42YzI0YWE2NDFiMjE3OGNmNzJmNmYwYmRlYWExNGMzZjgzMTM4NDkxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMCwwICsx
LDcyIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitCUkVBS0lOR19S
VUxFU19GSUxFUyA9IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5i
cmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5icmsg
XAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmJyayBc
CisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuYnJr
IFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuYnJr
IFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksu
YnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksu
YnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25D
SksuYnJrCisKK0JSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TPSQoQlJFQUtJTkdfUlVMRVNfRklM
RVM6LmJyaz0uY3BwKQorCitpZmVxICgkKHNoZWxsICQoQ0MpIC1zdGQ9Z251KysxMSAteCBjKysg
LUUgLVAgLWRNICQoU0RLX0ZMQUdTKSAkKEZSQU1FV09SS19GTEFHUykgJChIRUFERVJfRkxBR1Mp
IC1JICQoV1RGKSAtaW5jbHVkZSAiJChXVEYpL3d0Zi9QbGF0Zm9ybS5oIiAvZGV2L251bGwgfCBn
cmVwICcgV1RGX1BMQVRGT1JNX0lPUyAnIHwgY3V0IC1kJyAnIC1mMyksIDEpCisgICAgV1RGX1BM
QVRGT1JNX0lPUyA9IDEKK2Vsc2UKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMAorZW5kaWYKKwor
aWZlcSAoJChXVEZfUExBVEZPUk1fSU9TKSwgMSkKKwlBRERJVElPTkFMX0VNT0pJX1NVUFBPUlRf
Rk9SX0NVUlNPUl9NT1ZFTUVOVCA9IDAKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMAor
ZWxzZQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5UID0gJChB
RERJVElPTkFMX0VNT0pJX1NVUFBPUlQpCisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyA9IDEK
K2VuZGlmCisKK0RFUEVOREVOQ0lFUyA9ICQoQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlMpCisK
K2lmZXEgKCQoSEFWRV9JQ1VHRU5CUkspLCAxKQorREVQRU5ERU5DSUVTICs9ICQoQlJFQUtJTkdf
UlVMRVNfRklMRVMpCitlbmRpZgorCithbGwgOiAkKERFUEVOREVOQ0lFUykKKworQnJlYWtpbmdS
dWxlcy8lLmJyayA6IEJyZWFraW5nUnVsZXMvJS5wcAorCWljdWdlbmJyayAtYyAtciAkPCAtbyAk
QAorCitCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgOiBCcmVh
a2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcAorCXB5dGhvbiAkKFdURikv
U2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgY3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzICQ8ID4gJEAKKworQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUuY3Bw
IDogQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUucHAKKwlweXRob24gJChXVEYpL1Nj
cmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGxpbmVCcmVha0l0ZXJhdG9yJCpS
dWxlcyAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQpIC1ESEFWRV9FWFRSQV9JQ1Vf
TkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRAICQ8CisKK0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCS1jYXQgJD8gfCB1bmlmZGVmIC1E
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhB
VkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAk
QApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMWQ0MTliYWY4
OGRmMzE4OTU1MDQ3Y2UzYjQ1ZDJmZTU0YmRjMmU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50
eHQKQEAgLTAsMCArMSwxNzYgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9y
ZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBydWxlIHNldCBpcyBi
YXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRw
Oi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0x
L3NvdXJjZS9kYXRhL2Jya2l0ci8+LgorIyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUg
b3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhl
bWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVn
b3J5ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOwor
IyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVy
IHByZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHBy
ZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxh
bmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0
aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lk
dGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgorIyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBp
bmRpY2F0b3Igc3ltYm9scy4KKworJENSICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVh
ayA9IENSfV07CiskTEYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsK
KyRDb250cm9sID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9p
Y2VNYXJrcyA9IFtcdUZGOUVcdUZGOUZdOyAjIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEg
dm9pY2VkIG1hcmtzCiskRXh0ZW5kICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0
ZW5kfSAkVm9pY2VNYXJrcyAtIFtcdTBFMzAgXHUwRTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07
CiskU3BhY2luZ01hcmsgPSBbW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAt
ICRFeHRlbmRdOworJEwgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsK
KyRWICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9
IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOworJExWICAgICAgPSBbXHB7R3JhcGhl
bWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07CiskTFZUICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVy
X0JyZWFrID0gTFZUfV07CiskSGluMCAgICA9IFtcdTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJp
IExldHRlciBBLC4uLixIYQorJEhpblYgICAgPSBcdTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZp
cmFtYQorJEhpbjEgICAgPSBbXHUwOTE1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2Es
Li4uLEhhCiskQmVuMCAgICA9IFtcdTA5ODUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4u
LixIYQorJEJlblYgICAgPSBcdTA5Q0Q7ICMgQmVuZ2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAg
PSBbXHUwOTk1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9
IFtcdTBBMDUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0g
XHUwQTREOyAjIEd1cm11a2hpIFNpZ24gVmlyYW1hCiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5
XTsgIyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5
XTsgIyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKKyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFy
YXRpIFNpZ24gVmlyYW1hCiskR3VqMSAgICA9IFtcdTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBM
ZXR0ZXIgS2EsLi4uLEhhCiskT3JpMCAgICA9IFtcdTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0
ZXIgQSwuLi4sSGEKKyRPcmlWICAgID0gXHUwQjREOyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3Jp
MSAgICA9IFtcdTBCMTUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAg
ICA9IFtcdTBDMDUtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9
IFx1MEM0RDsgIyBUZWx1Z3UgU2lnbiBWaXJhbWEKKyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzld
OyAjIFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCiskS2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsg
IyBLYW5uYWRhIExldHRlciBBLC4uLixIYQorJEthblYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBT
aWduIFZpcmFtYQorJEthbjEgICAgPSBbXHUwQzk1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIg
QSwuLi4sSGEKKyRNYWwwICAgID0gW1x1MEQwNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIg
QSwuLi4sSGEgCiskTWFsViAgICA9IFx1MEQ0RDsgIyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRN
YWwxICAgID0gW1x1MEQxNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRS
SSAgICAgID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNh
dG9ycworJFpXSiAgICAgPSBcdTIwMEQ7ICMgWmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9
IFtcdUZFMEZdOyAjIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgorCisjaWYgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIg
XHUyNkY5IFx1Mjc2NCBcVTAwMDFGMzA4IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NB
LVxVMDAwMUYzQ0MgXFUwMDAxRjNGMyBcVTAwMDFGNDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBc
VTAwMDFGNDZFLVxVMDAwMUY0NkYgXFUwMDAxRjQ3MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUw
MDAxRjQ4MS1cVTAwMDFGNDgyIFxVMDAwMUY0ODYtXFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAw
MUY1NzUgXFUwMDAxRjVFOCBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFG
NjRELVxVMDAwMUY2NEUgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjZdOyAjIEVtb2pp
IHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBb
XHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUyNzBEIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFG
M0M0IFxVMDAwMUYzQ0EgXFUwMDAxRjNDQiBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0
Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0Nzgg
XFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxV
MDAwMUY0QUEgXFUwMDAxRjU3NSBcVTAwMDFGNTkwIFxVMDAwMUY1OTUgXFUwMDAxRjU5NiBcVTAw
MDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAx
RjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzAgXFUwMDAxRjkxOF0gOyAjIEVtb2ppIHRoYXQgdGFr
ZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2Vsc2UKKworICAgICRFbW9qaUZvclNlcXMgPSBb
XHUyNzY0IFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDhCXTsgIyBFbW9qaSB0aGF0IHBh
cnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBc
dTI3MEEtXHUyNzBDIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcg
XFUwMDAxRjNDQSBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxV
MDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAw
MDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAx
RjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2
QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2Ug
Rml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYz
RkItXFUwMDAxRjNGRl07ICMgRml0enBhdHJpY2sgbW9kaWZpZXJzCishIWNoYWluOworCisjaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIVJJTm9DaGFpbjsKKworI2VuZGlmCisK
KyEhZm9yd2FyZDsKKyRDUiAkTEY7CiskTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8
ICRWKSAoJFYgfCAkVCk7CisoJExWVCB8ICRUKSAkVDsKKworI2lmIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVAorCisgICAgJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsKKyAgICAkUkkgJFJJICRFeHRl
bmQqOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRD
UiAkTEZdICRTcGFjaW5nTWFyazsKKworI2Vsc2UKKworICAgIFteJENvbnRyb2wgJENSICRMRl0g
JEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKyAgICAkUkkg
JFJJIC8gJFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMCAkSGluViAkSGluMTsg
IyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKKyRCZW4wICRCZW5WICRCZW4xOyAjIEJlbmdh
bGkgVmlyYW1hIChmb3J3YXJkKQorJFBhbjAgJFBhblYgJFBhbjE7ICMgR3VybXVraGkgVmlyYW1h
IChmb3J3YXJkKQorJEd1ajAgJEd1alYgJEd1ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJk
KQorJE9yaTAgJE9yaVYgJE9yaTE7ICMgT3JpeWEgVmlyYW1hIChmb3J3YXJkKQorJFRlbDAgJFRl
bFYgJFRlbDE7ICMgVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKKyRLYW4wICRLYW5WICRLYW4xOyAj
IEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQorJE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFsYXlhbGFt
IFZpcmFtYSAoZm9yd2FyZCkKKyRaV0ogJEVtb2ppRm9yU2VxczsgIyBEb250IGJyZWFrIGluIGVt
b2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyAj
IERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRp
b24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorISFyZXZlcnNlOworJExGICRD
UjsKKygkTCB8ICRWIHwgJExWIHwgJExWVCkgJEw7CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRU
ICgkTFZUIHwgJFQpOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRXh0
ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kKiAkUkkgJFJJOwor
ICAgICRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBb
XiRDb250cm9sICRDUiAkTEZdOworCisjZWxzZQorCisgICAgJEV4dGVuZCAgICAgIFteJENvbnRy
b2wgJENSICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisgICAg
JFJJICRSSSAvICRSSSAkUkk7CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4xICRIaW5W
ICRIaW4wOyAjIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKKyRCZW4xICRCZW5WICRCZW4w
OyAjIEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKKyRQYW4xICRQYW5WICRQYW4wOyAjIEd1cm11
a2hpIFZpcmFtYSAoYmFja3dhcmQpCiskR3VqMSAkR3VqViAkR3VqMDsgIyBHdWphcmF0aSBWaXJh
bWEgKGJhY2t3YXJkKQorJE9yaTEgJE9yaVYgJE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNr
d2FyZCkKKyRUZWwxICRUZWxWICRUZWwwOyAjIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQorJEth
bjEgJEthblYgJEthbjA7ICMgS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQorJE1hbDEgJE1hbFYg
JE1hbDA7ICMgTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCiskRW1vamlGb3JTZXFzICRaV0o7
ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlNb2RzICRFbW9qaVZh
cj8gJEVtb2ppRm9yTW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBv
c3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIK
KworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgISFzYWZlX3JldmVyc2U7Cisg
ICAgJFJJICRSSSs7CisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsK
KyAgICAhIXNhZmVfZm9yd2FyZDsKKyAgICAkUkkgJFJJKzsKKyAgICAkRW1vamlGb3JNb2RzIFsk
RW1vamlWYXIgJEVtb2ppTW9kc10rOworCisjZWxzZQorCisgICAgWyRFbW9qaVZhciAkRW1vamlN
b2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2pp
TW9kc10rOworICAgICEhc2FmZV9yZXZlcnNlOworICAgICEhc2FmZV9mb3J3YXJkOworCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvckVwaWxvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmM3MDY2YWM0MjBm
OTE3YWVhMzAwOWRlNTY3NGZiYWRjN2E2NDgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBA
IC0wLDAgKzEsMzcyIEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisj
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQUkgPSBbOkxpbmVCcmVhayA9IEFtYmln
dW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07CiskQkEgPSBbWzpMaW5l
QnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxpbmVCcmVhayA9IEJy
ZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsKKyRC
MiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENCID0gWzpMaW5lQnJlYWsgPSBDb250
aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07
CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1AgPSBbOkxpbmVCcmVh
ayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdlX1Jl
dHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9TVUJdOwor
JEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9T
RVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsKKworI2Vsc2UK
KworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNlbmRpZgorCiskSFkg
PSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOworJEgz
ID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhp
YzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElOID0gW1s6TGluZUJyZWFrID0gSW5z
ZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJp
YzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07CiskSlYgPSBbOkxpbmVC
cmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYgPSBbOkxpbmVCcmVh
ayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsKKyROUyA9
IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICROU19TVUJd
OworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxpbmVCcmVhayA9IE9w
ZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpd
IC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBS
X1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJID0gW1xVMDAwMUYx
RTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOwor
JFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGluZUJyZWFrID0gU3Bh
Y2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOworJFdKID0gWzpMaW5l
QnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3duOl07Cisk
WlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7CiskRW1vamlWYXIg
PSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFbW9qaUZv
clNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYzMDggXFUwMDAxRjND
My1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0YzIFxVMDAwMUY0NDEg
XFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBcVTAwMDFGNDcxIFxV
MDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUwMDAxRjQ4Ni1cVTAw
MDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAwMUY2NDUtXFUwMDAx
RjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFGNkEzIFxVMDAwMUY2
QjQtXFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2Vz
CisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAx
RjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0
NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5
IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBc
VTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUw
MDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAw
MUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFG
OTE4XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZWxzZQor
CisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAw
MUY0OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3MEMgXFUwMDAx
RjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFGM0NBIFxVMDAwMUY0
NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5
IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBc
VTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUw
MDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAw
MUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmll
cnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAwMDFGM0ZGXTsKKyRk
aWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsKKyRBTFBsdXMgPSBb
JEFMICRBSSAkU0EgJFNHICRYWF07CiskQUxjbSA9ICRBTFBsdXMgJENNKjsKKyRCQWNtID0gJEJB
ICRDTSo7CiskQkJjbSA9ICRCQiAkQ00qOworJEIyY20gPSAkQjIgJENNKjsKKyRDTGNtID0gJENM
ICRDTSo7CiskQ1BjbSA9ICRDUCAkQ00qOworJEVYY20gPSAkRVggJENNKjsKKyRHTGNtID0gJEdM
ICRDTSo7CiskSExjbSA9ICRITCAkQ00qOworJEhZY20gPSAkSFkgJENNKjsKKyRIMmNtID0gJEgy
ICRDTSo7CiskSDNjbSA9ICRIMyAkQ00qOworJElEY20gPSAkSUQgJENNKjsKKyRJTmNtID0gJElO
ICRDTSo7CiskSVNjbSA9ICRJUyAkQ00qOworJEpMY20gPSAkSkwgJENNKjsKKyRKVmNtID0gJEpW
ICRDTSo7CiskSlRjbSA9ICRKVCAkQ00qOworJE5TY20gPSAkTlMgJENNKjsKKyROVWNtID0gJE5V
ICRDTSo7CiskT1BjbSA9ICRPUCAkQ00qOworJFBPY20gPSAkUE8gJENNKjsKKyRQUmNtID0gJFBS
ICRDTSo7CiskUVVjbSA9ICRRVSAkQ00qOworJFJJY20gPSAkUkkgJENNKjsKKyRTWWNtID0gJFNZ
ICRDTSo7CiskV0pjbSA9ICRXSiAkQ00qOworCishIWZvcndhcmQ7CiskQ0FOX0NNID0gW14kU1Ag
JEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJENBTlRfQ00gPSBbJFNQICRCSyAkQ1IgJExGICRO
TCAkWlcgJENNXTsKKyRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAkTkwgJFpXICRTUF07
CiskQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRXSiAkR0wgJE9QICRR
VSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOworJEFMX0ZPTExPVyA9IFskQUxfRk9MTE9X
X05PQ00gJEFMX0ZPTExPV19DTV07CiskTEI0QnJlYWtzID0gWyRCSyAkQ1IgJExGICROTF07Cisk
TEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOworJExCOEJyZWFrcyA9IFskTEI0QnJl
YWtzICRaV107CiskTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAtIFskWlddXTsKKyRM
QjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07CiskTEIxOEJyZWFrcyA9IFsk
TEI4QnJlYWtzICRTUF07CiskTEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJyZWFrcyAtICRDQl07
CiskQUxQbHVzICRDTSs7CiskQkEgJENNKzsKKyRCQiAkQ00rOworJEIyICRDTSs7CiskQ0wgJENN
KzsKKyRDUCAkQ00rOworJEVYICRDTSs7CiskR0wgJENNKzsKKyRITCAkQ00rOworJEhZICRDTSs7
CiskSDIgJENNKzsKKyRIMyAkQ00rOworJElEICRDTSs7CiskSU4gJENNKzsKKyRJUyAkQ00rOwor
JEpMICRDTSs7CiskSlYgJENNKzsKKyRKVCAkQ00rOworJE5TICRDTSs7CiskTlUgJENNKzsKKyRP
UCAkQ00rOworJFBPICRDTSs7CiskUFIgJENNKzsKKyRRVSAkQ00rOworJFJJICRDTSs7CiskU1kg
JENNKzsKKyRXSiAkQ00rOworJENSICRMRiB7MTAwfTsKKyRMQjROb25CcmVha3M/ICRMQjRCcmVh
a3MgezEwMH07CiskQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsKKyRDTSsgJExCNEJyZWFr
cyB7MTAwfTsKKyRMQjROb25CcmVha3MgWyRTUCAkWlddOworJENBTl9DTSAkQ00qIFskU1AgJFpX
XTsKKyRDTSsgWyRTUCAkWlddOworJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM/
ICRaV0ogJEVtb2ppRm9yU2VxczsKKyRDQU5fQ00gJENNKzsKKyRDTSs7CiskQ0FOX0NNICRDTSog
JFdKY207CiskTEI4Tm9uQnJlYWtzICRXSmNtOworJENNKyAkV0pjbTsKKyRXSmNtICRDQU5UX0NN
OworJFdKY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTlRf
Q007CitbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENNKiAkR0xjbTsKKyRDTSsg
R0xjbTsKKyRMQjhOb25CcmVha3MgJENMOworJENBTl9DTSAkQ00qICRDTDsKKyRDTSsgJENMOwor
JExCOE5vbkJyZWFrcyAkQ1A7CiskQ0FOX0NNICRDTSogJENQOworJENNKyAkQ1A7CiskTEI4Tm9u
QnJlYWtzICRFWDsKKyRDQU5fQ00gJENNKiAkRVg7CiskQ00rICRFWDsKKyRMQjhOb25CcmVha3Mg
JElTOworJENBTl9DTSAkQ00qICRJUzsKKyRDTSsgJElTOworJExCOE5vbkJyZWFrcyAkU1k7Cisk
Q0FOX0NNICRDTSogJFNZOworJENNKyAkU1k7CiskT1BjbSAkU1AqICRDQU5fQ00gJENNKjsKKyRP
UGNtICRTUCogJENBTlRfQ007CiskT1BjbSAkU1ArICRDTSsgJEFMX0ZPTExPVz87CiskUVVjbSAk
U1AqICRPUGNtOworKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207CiskQjJjbSAkU1AqICRCMmNt
OworJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsKKyRDTSsgJFFVY207CiskUVVjbSAuPzsKKyRR
VWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7CiskTEIyME5vbkJyZWFrcyAkQ00qICgkQkFjbSB8ICRI
WWNtIHwgJE5TY20pOyAKKyRCQmNtIFteJENCXTsKKyRCQmNtICRMQjIwTm9uQnJlYWtzICRDTSo7
CiskSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsKKyRTWWNtICRITGNtOworKCRBTGNtIHwg
JEhMY20pICRJTmNtOworJENNKyAkSU5jbTsKKyRFWGNtICRJTmNtOworJElEY20gJElOY207Cisk
SU5jbSAkSU5jbTsKKyROVWNtICRJTmNtOworJElEY20gJFBPY207CiskQUxjbSAkTlVjbTsKKyRI
TGNtICROVWNtOworJENNKyAkTlVjbTsKKyROVWNtICRBTGNtOworJE5VY20gJEhMY207CiskUFJj
bSAkSURjbTsKKyRQUmNtICgkQUxjbSB8ICRITGNtKTsKKyRQT2NtICgkQUxjbSB8ICRITGNtKTsK
KygkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5VY20gfCAkU1ljbSB8
ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/OworJEpMY20gKCRKTGNt
IHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkSlZjbSB8ICRIMmNtKSAoJEpWY20gfCAkSlRj
bSk7CisoJEpUY20gfCAkSDNjbSkgJEpUY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgy
Y20gfCAkSDNjbSkgJElOY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNj
bSkgJFBPY207CiskUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSk7
CisoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOworJENNKyAoJEFMY20gfCAkSExjbSk7
CiskSVNjbSAoJEFMY20gfCAkSExjbSk7CisoJEFMY20gfCAkSExjbSB8ICROVWNtKSAkT1BjbTsK
KyRDTSsgJE9QY207CiskQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsKKworI2lmIEFERElU
SU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJY20gJFJJY207CisKKyNlbmRpZgorCiskRW1v
amlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsKKworISFyZXZlcnNlOworJENNKyAkQUxQ
bHVzOworJENNKyAkQkE7CiskQ00rICRCQjsKKyRDTSsgJEIyOworJENNKyAkQ0w7CiskQ00rICRD
UDsKKyRDTSsgJEVYOworJENNKyAkR0w7CiskQ00rICRITDsKKyRDTSsgJEhZOworJENNKyAkSDI7
CiskQ00rICRIMzsKKyRDTSsgJElEOworJENNKyAkSU47CiskQ00rICRJUzsKKyRDTSsgJEpMOwor
JENNKyAkSlY7CiskQ00rICRKVDsKKyRDTSsgJE5TOworJENNKyAkTlU7CiskQ00rICRPUDsKKyRD
TSsgJFBPOworJENNKyAkUFI7CiskQ00rICRRVTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVAorCisgICAgJENNKyAkUkk7CisKKyNlbmRpZgorCiskQ00rICRTWTsKKyRDTSsgJFdKOwor
JENNKzsKKyRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRaVyB7ZW9mfV0gfCAk
U1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFskQUwge2VvZn1dKSk7
CitbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9XTsKKyRMQjRCcmVh
a3MgWyRMQjROb25CcmVha3MtJENNXTsKKyRMQjRCcmVha3MgJENNKyAkQ0FOX0NNOworJExGICRD
UjsKK1skU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOworWyRTUCAkWlddICRDTSsgJENBTl9D
TTsKKyRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/ICRFbW9qaUZvclNl
cXM7CiskQ00rICRDQU5fQ007CiskQ00qICRXSiAkQ00qICRDQU5fQ007CiskQ00qICRXSiBbJExC
OE5vbkJyZWFrcy0kQ01dOworJENBTlRfQ00gJENNKiAkV0o7CiskQ00qICRDQU5fQ00gJENNKiAk
V0o7CiskQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRCQSAkSFldXTsKKyRD
QU5UX0NNICRDTSogJEdMOworJENNKiAkQ0FOX0NNICRDTSogJEdMOworJENMICRDTSsgJENBTl9D
TTsKKyRDUCAkQ00rICRDQU5fQ007CiskRVggJENNKyAkQ0FOX0NNOworJElTICRDTSsgJENBTl9D
TTsKKyRTWSAkQ00rICRDQU5fQ007CiskQ0wgWyRMQjhOb25CcmVha3MtJENNXTsKKyRDUCBbJExC
OE5vbkJyZWFrcy0kQ01dOworJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskSVMgWyRMQjhOb25C
cmVha3MtJENNXTsKKyRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOworWyRDTCAkQ1AgJEVYICRJUyAk
U1ldICRDTSsgJFNQKyAkQ00qICRPUDsgCiskQ00qICRDQU5fQ00gJFNQKiAkQ00qICRPUDsKKyRD
QU5UX0NNICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XPyAkQ00rICRTUCAkU1AqICRDTSogJE9Q
OworJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRDTSogJEFMX0ZPTExPV19D
TSAkQ00rICRTUCsgJENNKiAkT1A7CiskU1kgJENNICRTUCsgJE9QOworJENNKiAkT1AgJFNQKiAk
Q00qICRRVTsKKyRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsKKyRDTSogJEIyICRTUCog
JENNKiAkQjI7CiskQ00qICRRVSAkQ00qICRDQU5fQ007CiskQ00qICRRVSAkTEIxOE5vbkJyZWFr
czsKKyRDTSogJENBTl9DTSAkQ00qICRRVTsKKyRDQU5UX0NNICRDTSogJFFVOworJENNKiAoJEJB
IHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOworJENNKiBbJExCMjBOb25C
cmVha3MtJENNXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICgkSFkg
fCAkQkEpICRDTSogJEhMOworJENNKiAkSEwgJENNKiAkU1k7CiskQ00qICRJTiAkQ00qICgkQUxQ
bHVzIHwgJEhMKTsKKyRDTSogJElOICRDTSogJEVYOworJENNKiAkSU4gJENNKiAkSUQ7CiskQ00q
ICRJTiAkQ00qICRJTjsKKyRDTSogJElOICRDTSogJE5VOworJENNKiAkUE8gJENNKiAkSUQ7Cisk
Q00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSog
JE5VOworJENNKiAkSUQgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQUjsK
KyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOworKCRDTSogKCRQUiB8ICRQTykpPyAoJENN
KiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENNKiAkTlUgKCRDTSog
KCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OworJENNKiAoJEgzIHwgJEgyIHwgJEpW
IHwgJEpMKSAkQ00qICRKTDsKKyRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgyIHwgJEpWKTsKKyRD
TSogJEpUICRDTSogKCRIMyB8ICRKVCk7CiskQ00qICRJTiAkQ00qICgkSDMgfCAkSDIgfCAkSlQg
fCAkSlYgfCAkSkwpOworJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpM
KTsKKyRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAkUFI7CiskQ00qICgk
QUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwp
ICRDTSogJElTOworJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSk7CiskQ00qICgk
QUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVAorCisgICAgJENNKiAkUkkgJENNKiAkUkk7CisKKyNlbmRpZgorCiskRW1vamlNb2RzICRF
bW9qaVZhcj8gJEVtb2ppRm9yTW9kczsKKworISFzYWZlX2ZvcndhcmQ7CitbJENNICRPUCAkUVUg
JENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14kQ00gJE9QICRRVSAk
Q0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07CiskZGljdGlvbmFyeSAkZGljdGlv
bmFyeTsKKyAgICAKKyEhc2FmZV9yZXZlcnNlOworJENNKyBbXiRDTSAkQksgJENSICRMRiAkTkwg
JFpXICRTUF07CiskQ00rICRTUCAvIC47CiskU1ArICRDTSogJE9QOworJFNQKyAkQ00qICRRVTsK
KyRTUCsgJENNKiAoJENMIHwgJENQKTsKKyRTUCsgJENNKiAkQjI7CiskQ00qICgkSFkgfCAkQkEp
ICRDTSogJEhMOworKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsKKygkQ0wgfCAkQ1ApICRD
TSogKCROVSB8ICRJUyB8ICRTWSk7CiskZGljdGlvbmFyeSAkZGljdGlvbmFyeTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclBy
b2xvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclByb2xvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjNmNjZmNDJhZjEzOGVkNThmZjQyMWY2
NzY4ZDhmZDU4MDEyODJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0CkBAIC0wLDAgKzEsMzgg
QEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQg
KEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyEhY2hhaW47CishIUxCQ01Ob0NoYWluOworISFsb29rQWhlYWRI
YXJkQnJlYWs7CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkQ0ogPSBb
OkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOl07CisKKyNlbHNlCisKKyAg
ICAkQ0ogPSBbXHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgzXHUzMDg1
XHUzMDg3XHUzMDhFXHUzMDk1XHUzMDk2XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3XHUzMEE5XHUz
MEMzXHUzMEUzXHUzMEU1XHUzMEU3XHUzMEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYwXHUzMUYx
XHUzMUYyXHUzMUYzXHUzMUY0XHUzMUY1XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUzMUZBXHUz
MUZCXHUzMUZDXHUzMUZEXHUzMUZFXHUzMUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZBXHVGRjZC
XHVGRjZDXHVGRjZEXHVGRjZFXHVGRjZGXHVGRjcwXTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
Sy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA3YzBjYTVhYTdiMmZmYmY4YjJjZDkwOTJhYTVm
M2UxZGJhNDA5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisj
IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAy
MDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisj
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7Cisk
SU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1
MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRD
SiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50
eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGI4ZjBmZjUxODU2ZDk3YzljMTRlMTIxNjM3
MzRmZGZjOTdjOWNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKQEAgLTAsMCArMSwz
NSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9
IFtcdTAwMjFcdTAwM0ZcdUZGMDFcdUZGMUZdOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtc
dTIwMjVcdTIwMjZdOworJElTX1NVQiA9IFtcdTAwM0FcdTAwM0JdOworJE5TX1NVQiA9IFtcdTIw
M0NcdTIwNDdcdTIwNDhcdTIwNDlcdTMwMDVcdTMwMUNcdTMwM0JcdTMwOURcdTMwOUVcdTMwQTBc
dTMwRkJcdTMwRkRcdTMwRkVcdUZGMUFcdUZGMUJcdUZGNjVdOworJFBPX1NVQiA9IFtcdTAwMjVc
dTAwQTJcdTAwQjBcdTIwMzBcdTIwMzJcdTIwMzNcdTIxMDNcdUZGMDVcdUZGRTBdOworJFBSX1NV
QiA9IFtcdTAwMjRcdTAwQTNcdTAwQTVcdTIwQUNcdTIxMTZcdUZGMDRcdUZGRTFcdUZGRTVdOwor
JElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQ
T19TVUIgJFBSX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4
dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjYmJjOGE4ODE1ZTRkMGRjZmI5NjBjMTEy
ZjYwYTgzOGQzYTQyODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApAQCAtMCww
ICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHly
aWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisj
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7Cisk
SURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gJyc7Cisk
TlNfU1VCID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBGRFx1MzBGRV07CiskUE9fU1VC
ID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJdOwor
JE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY3NDI4NzlkZDFmODJlYjYyZDI4ZDhhYTdiY2RkZjQ0NmQwNzM4N2YKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xs
IChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmls
ZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisj
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NV
QiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElT
X1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOwor
JElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwN2MwY2E1YWE3YjJmZmJmOGIyY2Q5MDkyYWE1
ZjNlMWRiYTQwOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKQEAgLTAsMCArMSwz
NSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9
ICcnOworJElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NV
QiA9IFtcdTMwMUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FE
RCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmNmNmEwODI2YWRh
NGVkY2ZjZjM5NDNiNjg5ZjhjMDZlMGJkNzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25D
SksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2Rl
Lm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRF
WF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsK
KyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBb
JENKXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNzQyODc5ZGQxZjgyZWI2MmQyOGQ4YWE3YmNkZGY0NDZkMDczODdm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMp
IDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDct
MjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBh
cmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
IyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJ
Tl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsK
KyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzQyODc5
ZGQxZjgyZWI2MmQyOGQ4YWE3YmNkZGY0NDZkMDczODdmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25v
bGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIElu
Yy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAn
JzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIg
PSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9B
REQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJ
dGVyYXRvci5jcHAKaW5kZXggMWRhMGFiNjE4YTU5OTk4OGRiZGQwNzZiMWI0NWMyNzQzNzE0Zjg3
OC4uM2E1YmNjN2RmZjY3ZDBlZjM1MDFlMTcyNzg5NDUwMTRiMjZiOTI0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKQEAgLTMxLDkgKzMxLDYgQEAKICNpbmNs
dWRlIDx1bmljb2RlL3VicmsuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAKLS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0dGVyIG5hbWUKLSNkZWZpbmUgQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkKLQogbmFtZXNwYWNlIFdURiB7
CiAKIC8vIEl0ZXJhdG9yIGluaXRpYWxpemF0aW9uCkBAIC02MSw2ICs1OCwxMiBAQCBzdGF0aWMg
VUJyZWFrSXRlcmF0b3IqIGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhjb25zdCBjaGFyKiBi
cmVha1J1bGVzKQogCiAjZW5kaWYKIAorI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJ
T1MpCitVQnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVs
ZVNldCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgogCiAvLyBJdGVyYXRvciB0
ZXh0IHNldHRpbmcKIApAQCAtMTY0LDE0MyArMTY3LDI4IEBAIFVCcmVha0l0ZXJhdG9yKiBzZW50
ZW5jZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiAgICAgcmV0dXJuIHNldFRleHRG
b3JJdGVyYXRvcigqc3RhdGljU2VudGVuY2VCcmVha0l0ZXJhdG9yLCBzdHJpbmcpOwogfQogCisj
aWYgIVBMQVRGT1JNKElPUykKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogY3JlYXRlQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjaygpCit7CisgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0g
Y3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQp
KQorICAgICAgICByZXR1cm4gaXRlcmF0b3I7CisgICAgcmV0dXJuIGluaXRpYWxpemVJdGVyYXRv
cldpdGhSdWxlcyhjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMpOworfQorI2VuZGlmCisKIFVC
cmVha0l0ZXJhdG9yKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQog
ewogI2lmICFQTEFURk9STShJT1MpCi0gICAgLy8gVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBj
aGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3Ci0gICAgLy8gPGh0dHA6Ly9z
b3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291
cmNlL2RhdGEvYnJraXRyLz4uCi0gICAgLy8gVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhl
IG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBiZWxvdzoKLSAgICAvLyAqIFJlcGxhY2VkICdbXHB7
R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFs
X0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJs
aWVyOwotICAgIC8vICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBt
b3ZpbmcgYWZ0ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOwotICAgIC8vICogQWRk
ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBz
aWducyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7Ci0g
ICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVm
b3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgotICAgIC8vICog
QWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgotICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBrUnVsZXMgPQotICAgICAgICAiJENSICAgICAgPSBbXFxwe0dyYXBoZW1lX0Ns
dXN0ZXJfQnJlYWsgPSBDUn1dOyIKLSAgICAgICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9D
bHVzdGVyX0JyZWFrID0gTEZ9XTsiCi0gICAgICAgICIkQ29udHJvbCA9IFtcXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsiCi0gICAgICAgICIkVm9pY2VNYXJrcyA9IFtcXHVG
RjlFXFx1RkY5Rl07IiAvLyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJr
cwotICAgICAgICAiJEV4dGVuZCAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRl
bmR9ICRWb2ljZU1hcmtzIC0gW1xcdTBFMzAgXFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVC
Ml1dOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayA9IFtbXFxwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBT
cGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOyIKLSAgICAgICAgIiRMICAgICAgID0gW1xccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOyIKLSAgICAgICAgIiRWICAgICAgID0gW1xccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOyIKLSAgICAgICAgIiRUICAgICAgID0gW1xccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOyIKLSAgICAgICAgIiRMViAgICAgID0gW1xccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsiCi0gICAgICAgICIkTFZUICAgICA9IFtcXHB7R3Jh
cGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1dOyIKLSAgICAgICAgIiRIaW4wICAgID0gW1xcdTA5
MDUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEhp
blYgICAgPSBcXHUwOTREOyIgLy8gRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQotICAgICAgICAiJEhp
bjEgICAgPSBbXFx1MDkxNS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixI
YQotICAgICAgICAiJEJlbjAgICAgPSBbXFx1MDk4NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0
dGVyIEEsLi4uLEhhCi0gICAgICAgICIkQmVuViAgICA9IFxcdTA5Q0Q7IiAvLyBCZW5nYWxpIFNp
Z24gVmlyYW1hCi0gICAgICAgICIkQmVuMSAgICA9IFtcXHUwOTk1LVxcdTA5QjldOyIgLy8gQmVu
Z2FsaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkUGFuMCAgICA9IFtcXHUwQTA1LVxcdTBB
MzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUGFuViAgICA9IFxc
dTBBNEQ7IiAvLyBHdXJtdWtoaSBTaWduIFZpcmFtYQotICAgICAgICAiJFBhbjEgICAgPSBbXFx1
MEExNS1cXHUwQTM5XTsiIC8vIEd1cm11a2hpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRH
dWowICAgID0gW1xcdTBBODUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEK
LSAgICAgICAgIiRHdWpWICAgID0gXFx1MEFDRDsiIC8vIEd1amFyYXRpIFNpZ24gVmlyYW1hCi0g
ICAgICAgICIkR3VqMSAgICA9IFtcXHUwQTk1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVy
IEthLC4uLixIYQotICAgICAgICAiJE9yaTAgICAgPSBbXFx1MEIwNS1cXHUwQjM5XTsiIC8vIE9y
aXlhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJE9yaVYgICAgPSBcXHUwQjREOyIgLy8gT3Jp
eWEgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRPcmkxICAgID0gW1xcdTBCMTUtXFx1MEIzOV07IiAv
LyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkVGVsMCAgICA9IFtcXHUwQzA1LVxc
dTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBBLC4uLixIYQotICAgICAgICAiJFRlbFYgICAgPSBc
XHUwQzREOyIgLy8gVGVsdWd1IFNpZ24gVmlyYW1hCi0gICAgICAgICIkVGVsMSAgICA9IFtcXHUw
QzE0LVxcdTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRLYW4w
ICAgID0gW1xcdTBDODUtXFx1MENCOV07IiAvLyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAg
ICAgICAiJEthblYgICAgPSBcXHUwQ0NEOyIgLy8gS2FubmFkYSBTaWduIFZpcmFtYQotICAgICAg
ICAiJEthbjEgICAgPSBbXFx1MEM5NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4u
LEhhCi0gICAgICAgICIkTWFsMCAgICA9IFtcXHUwRDA1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFt
IExldHRlciBBLC4uLixIYQotICAgICAgICAiJE1hbFYgICAgPSBcXHUwRDREOyIgLy8gTWFsYXlh
bGFtIFNpZ24gVmlyYW1hCi0gICAgICAgICIkTWFsMSAgICA9IFtcXHUwRDE1LVxcdTBEMzldOyIg
Ly8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAiJFJJICAgICAgPSBbXFxVMDAw
MUYxRTYtXFxVMDAwMUYxRkZdOyIgLy8gRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycwotICAgICAg
ICAiJFpXSiAgICAgPSBcXHUyMDBEOyIgLy8gWmVybyB3aWR0aCBqb2luZXIKLSAgICAgICAgIiRF
bW9qaVZhciA9IFtcXHVGRTBGXTsiIC8vIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3Rvcgot
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtc
XHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxc
VTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQx
IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFG
NDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAw
MDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxc
VTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRF
IFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcdTI2OTUtXFx1MjY5NiBcXHUy
NzA4IFxcVTAwMDFGMzNFIFxcVTAwMDFGMzczIFxcVTAwMDFGMzkzIFxcVTAwMDFGM0E0IFxcVTAw
MDFGM0E4IFxcVTAwMDFGM0VCIFxcVTAwMDFGM0VEIFxcVTAwMDFGNEJCLVxcVTAwMDFGNEJDIFxc
VTAwMDFGNTI3IFxcVTAwMDFGNTJDIFxcVTAwMDFGNjgwIFxcVTAwMDFGNjkyIFxcVTAwMDFGOTI2
IFxcVTAwMDFGOTM3LVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXTsiIC8vIEVt
b2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9y
TW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAw
MDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxc
VTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5
IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFG
NDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAw
MDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxc
VTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2
IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4IFxcVTAwMDFGM0MyIFxcVTAwMDFGM0M3IFxcVTAwMDFG
M0NDIFxcVTAwMDFGNTc0IFxcVTAwMDFGNTdBIFxcVTAwMDFGNkNDIFxcVTAwMDFGOTE5LVxcVTAw
MDFGOTFFIFxcVTAwMDFGOTI2IFxcVTAwMDFGOTMwIFxcVTAwMDFGOTMzLVxcVTAwMDFGOTM5IFxc
VTAwMDFGOTNDLVxcVTAwMDFGOTNFXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sg
bW9kaWZpZXJzCi0jZWxzZQotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAw
MDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDhCXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBh
dGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxc
dTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAx
RjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUw
MDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBc
XFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4
NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAx
RjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUw
MDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2Vu
ZGlmCi0gICAgICAgICIkRW1vamlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiIC8v
IEZpdHpwYXRyaWNrIG1vZGlmaWVycwotICAgICAgICAiISFjaGFpbjsiCi0jaWYgQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIhIVJJTm9DaGFpbjsiCi0jZW5kaWYKLSAgICAgICAg
IiEhZm9yd2FyZDsiCi0gICAgICAgICIkQ1IgJExGOyIKLSAgICAgICAgIiRMICgkTCB8ICRWIHwg
JExWIHwgJExWVCk7IgotICAgICAgICAiKCRMViB8ICRWKSAoJFYgfCAkVCk7IgotICAgICAgICAi
KCRMVlQgfCAkVCkgJFQ7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAi
JFJJICRSSSAkRXh0ZW5kKiAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqOyIKLSAg
ICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9s
ICRDUiAkTEZdICRTcGFjaW5nTWFyazsiCi0jZWxzZQotICAgICAgICAiW14kQ29udHJvbCAkQ1Ig
JExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJr
OyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkk7IgotICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYK
LSAgICAgICAgIiRIaW4wICRIaW5WICRIaW4xOyIgLy8gRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndh
cmQpCi0gICAgICAgICIkQmVuMCAkQmVuViAkQmVuMTsiIC8vIEJlbmdhbGkgVmlyYW1hIChmb3J3
YXJkKQotICAgICAgICAiJFBhbjAgJFBhblYgJFBhbjE7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGZv
cndhcmQpCi0gICAgICAgICIkR3VqMCAkR3VqViAkR3VqMTsiIC8vIEd1amFyYXRpIFZpcmFtYSAo
Zm9yd2FyZCkKLSAgICAgICAgIiRPcmkwICRPcmlWICRPcmkxOyIgLy8gT3JpeWEgVmlyYW1hIChm
b3J3YXJkKQotICAgICAgICAiJFRlbDAgJFRlbFYgJFRlbDE7IiAvLyBUZWx1Z3UgVmlyYW1hIChm
b3J3YXJkKQotICAgICAgICAiJEthbjAgJEthblYgJEthbjE7IiAvLyBLYW5uYWRhIFZpcmFtYSAo
Zm9yd2FyZCkKLSAgICAgICAgIiRNYWwwICRNYWxWICRNYWwxOyIgLy8gTWFsYXlhbGFtIFZpcmFt
YSAoZm9yd2FyZCkKLSAgICAgICAgIiRaV0ogJEVtb2ppRm9yU2VxczsiIC8vIERvbid0IGJyZWFr
IGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFy
PyAkRW1vamlNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9z
c2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgot
ICAgICAgICAiISFyZXZlcnNlOyIKLSAgICAgICAgIiRMRiAkQ1I7IgotICAgICAgICAiKCRMIHwg
JFYgfCAkTFYgfCAkTFZUKSAkTDsiCi0gICAgICAgICIoJFYgfCAkVCkgKCRMViB8ICRWKTsiCi0g
ICAgICAgICIkVCAoJExWVCB8ICRUKTsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0g
ICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIk
RXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAk
TEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSNlbHNl
Ci0gICAgICAgICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIk
U3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJ
ICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAiJEhpbjEgJEhpblYg
JEhpbjA7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkQmVuMSAk
QmVuViAkQmVuMDsiIC8vIEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRQYW4x
ICRQYW5WICRQYW4wOyIgLy8gR3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRH
dWoxICRHdWpWICRHdWowOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAg
IiRPcmkxICRPcmlWICRPcmkwOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAg
ICAgIiRUZWwxICRUZWxWICRUZWwwOyIgLy8gVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCi0gICAg
ICAgICIkS2FuMSAkS2FuViAkS2FuMDsiIC8vIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKLSAg
ICAgICAgIiRNYWwxICRNYWxWICRNYWwwOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQp
Ci0gICAgICAgICIkRW1vamlGb3JTZXFzICRaV0o7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBa
V0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9k
czsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGgg
dmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKLSNpZiBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiRS
SSAkUkkrOyIKLSAgICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7
IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAg
ICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0
b3IgPSBjcmVhdGVDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKCk7CiAjZWxzZQot
ICAgICAgICAiWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAg
ICIkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyIKLSAgICAgICAgIiEhc2Fm
ZV9yZXZlcnNlOyIKLSAgICAgICAgIiEhc2FmZV9mb3J3YXJkOyI7Ci0jZW5kaWYKLSAgICBzdGF0
aWMgVUJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFs
aXplSXRlcmF0b3JXaXRoUnVsZXMoa1J1bGVzKTsKLSNlbHNlIC8vIFBMQVRGT1JNKElPUykKICAg
ICAvLyBVc2UgdGhlIHNwZWNpYWwgVGhhaSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgZm9yIGFs
bCBsb2NhbGVzCi0gICAgc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yKFVCUktfQ0hBUkFDVEVSLCAidGgiKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBzdGF0aWNDdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yKFVCUktfQ0hBUkFDVEVSLCAidGgiKTsK
ICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCi0gICAgaWYgKCFzdGF0aWNDdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yKQorICAgIGlmICghc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvci5nZXQoKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gc2V0VGV4dEZvckl0ZXJhdG9y
KCpzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yLCBzdHJpbmcpOworICAgIHJldHVybiBzZXRU
ZXh0Rm9ySXRlcmF0b3IoKihzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yLmdldCgpKSwgc3Ry
aW5nKTsKIH0KIAogVUJyZWFrSXRlcmF0b3IqIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcihTdHJp
bmdWaWV3IHN0cmluZywgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUsIGNvbnN0IFVDaGFyKiBw
cmlvckNvbnRleHQsIHVuc2lnbmVkIHByaW9yQ29udGV4dExlbmd0aCwgTGluZUJyZWFrSXRlcmF0
b3JNb2RlIG1vZGUsIGJvb2wgaXNDSkspCkBAIC0zMTksNDQyICsyMDcsMjAgQEAgdm9pZCByZWxl
YXNlTGluZUJyZWFrSXRlcmF0b3IoVUJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQogICAgIExpbmVC
cmVha0l0ZXJhdG9yUG9vbDo6c2hhcmVkUG9vbCgpLnB1dChpdGVyYXRvcik7CiB9CiAKLXN0YXRp
YyBjb25zdCBjaGFyKiB1YXgxNFByb2xvZ3VlID0KLSAgICAiISFjaGFpbjsiCi0gICAgIiEhTEJD
TU5vQ2hhaW47IgotICAgICIhIWxvb2tBaGVhZEhhcmRCcmVhazsiOwotCi1zdGF0aWMgY29uc3Qg
Y2hhciogdWF4MTRBc3NpZ25tZW50c0JlZm9yZSA9Ci0gICAgLy8gZXhwbGljaXRseSBlbnVtZXJh
dGUgJENKIHNpbmNlIElDVSB2ZXJzaW9ucyBwcmlvciB0byA0OSBkb24ndCBzdXBwb3J0IDpMaW5l
QnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoKLSAgICAiJENKID0gWyIKLSNpZiAo
VV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVN
ID49IDkpCi0gICAgIjpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoiCi0j
ZWxzZQotICAgICJcXHUzMDQxXFx1MzA0M1xcdTMwNDVcXHUzMDQ3XFx1MzA0OVxcdTMwNjNcXHUz
MDgzXFx1MzA4NVxcdTMwODdcXHUzMDhFXFx1MzA5NVxcdTMwOTZcXHUzMEExXFx1MzBBM1xcdTMw
QTVcXHUzMEE3IgotICAgICJcXHUzMEE5XFx1MzBDM1xcdTMwRTNcXHUzMEU1XFx1MzBFN1xcdTMw
RUVcXHUzMEY1XFx1MzBGNlxcdTMwRkMiCi0gICAgIlxcdTMxRjBcXHUzMUYxXFx1MzFGMlxcdTMx
RjNcXHUzMUY0XFx1MzFGNVxcdTMxRjZcXHUzMUY3XFx1MzFGOFxcdTMxRjlcXHUzMUZBXFx1MzFG
QlxcdTMxRkNcXHUzMUZEXFx1MzFGRVxcdTMxRkYiCi0gICAgIlxcdUZGNjdcXHVGRjY4XFx1RkY2
OVxcdUZGNkFcXHVGRjZCXFx1RkY2Q1xcdUZGNkRcXHVGRjZFXFx1RkY2RlxcdUZGNzAiCi0jZW5k
aWYKLSAgICAiXTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3Rv
bUxvb3NlQ0pLID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAgICIkRVhf
U1VCID0gW1xcdTAwMjFcXHUwMDNGXFx1RkYwMVxcdUZGMUZdOyIKLSAgICAiJElEX1NVQiA9ICcn
OyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAgICIkSVNfU1VCID0gW1xc
dTAwM0FcXHUwMDNCXTsiCi0gICAgIiROU19TVUIgPSBbXFx1MjAzQ1xcdTIwNDdcXHUyMDQ4XFx1
MjA0OVxcdTMwMDVcXHUzMDFDXFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBBMFxcdTMwRkJcXHUz
MEZEXFx1MzBGRVxcdUZGMUFcXHVGRjFCXFx1RkY2NV07IgotICAgICIkUE9fU1VCID0gW1xcdTAw
MjVcXHUwMEEyXFx1MDBCMFxcdTIwMzBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHVGRjA1XFx1RkZF
MF07IgotICAgICIkUFJfU1VCID0gW1xcdTAwMjRcXHUwMEEzXFx1MDBBNVxcdTIwQUNcXHUyMTE2
XFx1RkYwNFxcdUZGRTFcXHVGRkU1XTsiCi0gICAgIiRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVY
X1NVQiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOyIKLSAgICAiJE5T
X0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9t
TG9vc2VOb25DSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7Igot
ICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0g
ICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAwNVxcdTMwM0JcXHUzMDlE
XFx1MzA5RVxcdTMwRkRcXHUzMEZFXTsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9T
VUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKICRJTl9TVUIgJE5TX1NVQl07IgotICAgICIk
TlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0
b21Ob3JtYWxDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRF
WF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0g
ICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAxQ1xcdTMwQTBdOyIKLSAg
ICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFsk
Q0ogJEJBX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29u
c3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyA9Ci0gICAgIiRCQV9T
VUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAg
IiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsi
Ci0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQg
PSBbJENKXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4
MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAg
IiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsi
Ci0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIg
PSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSAnJzsiCi0gICAgIiRO
U19BREQgPSBbJENKXTsiOwotCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RO
b25DSksgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLCi0jZGVmaW5lIHVheDE0
QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Q0pLICAgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9t
Tm9ybWFsQ0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLICAg
ICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLCi0KLXN0YXRpYyBjb25zdCBjaGFy
KiB1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIgPQotICAgICIkQUkgPSBbOkxpbmVCcmVhayA9IEFtYmln
dW91czpdOyIKLSAgICAiJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07IgotICAgICIk
QkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07IgotICAgICIkQkIg
PSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOyIKLSAgICAiJEJLID0gWzpMaW5lQnJlYWsg
PSBNYW5kYXRvcnlfQnJlYWs6XTsiCi0gICAgIiRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90
aDpdOyIKLSAgICAiJENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07IgotICAg
ICIkQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07IgotICAgICIkQ00gPSBb
OkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07IgotICAgICIkQ1AgPSBbOkxpbmVCcmVhayA9
IENsb3NlX1BhcmVudGhlc2lzOl07IgotICAgICIkQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdl
X1JldHVybjpdOyIKLSAgICAiJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRF
WF9TVUJdOyIKLSAgICAiJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07IgotI2lmIChVX0lDVV9W
RVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkK
LSAgICAiJEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdfTGV0dGVyOl07IgotI2Vsc2UKLSAgICAi
JEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsiCi0jZW5kaWYKLSAgICAiJEhZID0gWzpM
aW5lQnJlYWsgPSBIeXBoZW46XTsiCi0gICAgIiRIMiA9IFs6TGluZUJyZWFrID0gSDI6XTsiCi0g
ICAgIiRIMyA9IFs6TGluZUJyZWFrID0gSDM6XTsiCi0gICAgIiRJRCA9IFtbW1s6TGluZUJyZWFr
ID0gSWRlb2dyYXBoaWM6XSAtICRDSl0gJElEX0FERF0gLSAkSURfU1VCXTsiCi0gICAgIiRJTiA9
IFtbOkxpbmVCcmVhayA9IEluc2VwYXJhYmxlOl0gLSAkSU5fU1VCXTsiCi0gICAgIiRJUyA9IFtb
OkxpbmVCcmVhayA9IEluZml4X051bWVyaWM6XSAtICRJU19TVUJdOyIKLSAgICAiJEpMID0gWzpM
aW5lQnJlYWsgPSBKTDpdOyIKLSAgICAiJEpWID0gWzpMaW5lQnJlYWsgPSBKVjpdOyIKLSAgICAi
JEpUID0gWzpMaW5lQnJlYWsgPSBKVDpdOyIKLSAgICAiJExGID0gWzpMaW5lQnJlYWsgPSBMaW5l
X0ZlZWQ6XTsiCi0gICAgIiROTCA9IFs6TGluZUJyZWFrID0gTmV4dF9MaW5lOl07IgotICAgICIk
TlMgPSBbW1tbOkxpbmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRDSl0gJE5TX0FERF0gLSAkTlNf
U1VCXTsiCi0gICAgIiROVSA9IFs6TGluZUJyZWFrID0gTnVtZXJpYzpdOyIKLSAgICAiJE9QID0g
WzpMaW5lQnJlYWsgPSBPcGVuX1B1bmN0dWF0aW9uOl07IgotICAgICIkUE8gPSBbWzpMaW5lQnJl
YWsgPSBQb3N0Zml4X051bWVyaWM6XSAtICRQT19TVUJdOyIKLSAgICAiJFBSID0gW1s6TGluZUJy
ZWFrID0gUHJlZml4X051bWVyaWM6XSAtICRQUl9TVUJdOyIKLSAgICAiJFFVID0gWzpMaW5lQnJl
YWsgPSBRdW90YXRpb246XTsiCi0gICAgIiRSSSA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07
IgotICAgICIkU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJFNH
ID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsiCi0gICAgIiRTUCA9IFs6TGluZUJyZWFrID0g
U3BhY2U6XTsiCi0gICAgIiRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOyIKLSAg
ICAiJFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOyIKLSAgICAiJFhYID0gWzpMaW5l
QnJlYWsgPSBVbmtub3duOl07IgotICAgICIkWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsi
Ci0gICAgIiRaV0ogPSBcXHUyMDBEOyIKLSAgICAiJEVtb2ppVmFyID0gXFx1RkUwRjsiCi0jaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1MjY0MCBc
XHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUwMDAxRjND
NCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBcXFUwMDAx
RjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3MSBcXFUw
MDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAxRjQ4Ni1c
XFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUwMDAxRjY0
NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBcXFUwMDAx
RjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXHUyNjk1LVxcdTI2OTYgXFx1MjcwOCBcXFUw
MDAxRjMzRSBcXFUwMDAxRjM3MyBcXFUwMDAxRjM5MyBcXFUwMDAxRjNBNCBcXFUwMDAxRjNBOCBc
XFUwMDAxRjNFQiBcXFUwMDAxRjNFRCBcXFUwMDAxRjRCQi1cXFUwMDAxRjRCQyBcXFUwMDAxRjUy
NyBcXFUwMDAxRjUyQyBcXFUwMDAxRjY4MCBcXFUwMDAxRjY5MiBcXFUwMDAxRjkyNiBcXFUwMDAx
RjkzNy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV07IiAvLyBFbW9qaSB0aGF0
IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUy
NjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAw
MDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxc
VTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZF
LVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFG
NDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAw
MDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxc
VTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMw
IFxcVTAwMDFGOTE4IFxcVTAwMDFGM0MyIFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NDIFxcVTAwMDFG
NTc0IFxcVTAwMDFGNTdBIFxcVTAwMDFGNkNDIFxcVTAwMDFGOTE5LVxcVTAwMDFGOTFFIFxcVTAw
MDFGOTI2IFxcVTAwMDFGOTMwIFxcVTAwMDFGOTMzLVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxc
VTAwMDFGOTNFXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0j
ZWxzZQotICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0
NjkgXFxVMDAwMUY0OEJdOyIKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEt
XFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBc
XFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1
MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAx
RjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUw
MDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1c
XFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZD
MF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0g
ICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIKLSAgICAiJGRpY3Rp
b25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJEFMUGx1cyA9
IFskQUwgJEFJICRTQSAkU0cgJFhYXTsiCi0gICAgIiRBTGNtID0gJEFMUGx1cyAkQ00qOyIKLSAg
ICAiJEJBY20gPSAkQkEgJENNKjsiCi0gICAgIiRCQmNtID0gJEJCICRDTSo7IgotICAgICIkQjJj
bSA9ICRCMiAkQ00qOyIKLSAgICAiJENMY20gPSAkQ0wgJENNKjsiCi0gICAgIiRDUGNtID0gJENQ
ICRDTSo7IgotICAgICIkRVhjbSA9ICRFWCAkQ00qOyIKLSAgICAiJEdMY20gPSAkR0wgJENNKjsi
Ci0gICAgIiRITGNtID0gJEhMICRDTSo7IgotICAgICIkSFljbSA9ICRIWSAkQ00qOyIKLSAgICAi
JEgyY20gPSAkSDIgJENNKjsiCi0gICAgIiRIM2NtID0gJEgzICRDTSo7IgotICAgICIkSURjbSA9
ICRJRCAkQ00qOyIKLSAgICAiJElOY20gPSAkSU4gJENNKjsiCi0gICAgIiRJU2NtID0gJElTICRD
TSo7IgotICAgICIkSkxjbSA9ICRKTCAkQ00qOyIKLSAgICAiJEpWY20gPSAkSlYgJENNKjsiCi0g
ICAgIiRKVGNtID0gJEpUICRDTSo7IgotICAgICIkTlNjbSA9ICROUyAkQ00qOyIKLSAgICAiJE5V
Y20gPSAkTlUgJENNKjsiCi0gICAgIiRPUGNtID0gJE9QICRDTSo7IgotICAgICIkUE9jbSA9ICRQ
TyAkQ00qOyIKLSAgICAiJFBSY20gPSAkUFIgJENNKjsiCi0gICAgIiRRVWNtID0gJFFVICRDTSo7
IgotICAgICIkUkljbSA9ICRSSSAkQ00qOyIKLSAgICAiJFNZY20gPSAkU1kgJENNKjsiCi0gICAg
IiRXSmNtID0gJFdKICRDTSo7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0Rm9yd2FyZCA9
Ci0gICAgIiEhZm9yd2FyZDsiCi0gICAgIiRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRMRiAkTkwg
JFpXICRDTV07IgotICAgICIkQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01d
OyIKLSAgICAiJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsiCi0g
ICAgIiRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRHTCAkT1Ag
JFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107IgotICAgICIkQUxfRk9MTE9XID0gWyRB
TF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsiCi0gICAgIiRMQjRCcmVha3MgPSBbJEJLICRD
UiAkTEYgJE5MXTsiCi0gICAgIiRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICROTF07Igot
ICAgICIkTEI4QnJlYWtzID0gWyRMQjRCcmVha3MgJFpXXTsiCi0gICAgIiRMQjhOb25CcmVha3Mg
PSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOyIKLSAgICAiJExCMThOb25CcmVha3MgPSBbJExC
OE5vbkJyZWFrcyAtIFskU1BdXTsiCi0gICAgIiRMQjE4QnJlYWtzID0gWyRMQjhCcmVha3MgJFNQ
XTsiCi0gICAgIiRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsiCi0gICAg
IiRBTFBsdXMgJENNKzsiCi0gICAgIiRCQSAkQ00rOyIKLSAgICAiJEJCICRDTSs7IgotICAgICIk
QjIgJENNKzsiCi0gICAgIiRDTCAkQ00rOyIKLSAgICAiJENQICRDTSs7IgotICAgICIkRVggJENN
KzsiCi0gICAgIiRHTCAkQ00rOyIKLSAgICAiJEhMICRDTSs7IgotICAgICIkSFkgJENNKzsiCi0g
ICAgIiRIMiAkQ00rOyIKLSAgICAiJEgzICRDTSs7IgotICAgICIkSUQgJENNKzsiCi0gICAgIiRJ
TiAkQ00rOyIKLSAgICAiJElTICRDTSs7IgotICAgICIkSkwgJENNKzsiCi0gICAgIiRKViAkQ00r
OyIKLSAgICAiJEpUICRDTSs7IgotICAgICIkTlMgJENNKzsiCi0gICAgIiROVSAkQ00rOyIKLSAg
ICAiJE9QICRDTSs7IgotICAgICIkUE8gJENNKzsiCi0gICAgIiRQUiAkQ00rOyIKLSAgICAiJFFV
ICRDTSs7IgotICAgICIkUkkgJENNKzsiCi0gICAgIiRTWSAkQ00rOyIKLSAgICAiJFdKICRDTSs7
IgotICAgICIkQ1IgJExGIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcz8gJExCNEJyZWFrcyB7
MTAwfTsiCi0gICAgIiRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJENNKyAk
TEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcyBbJFNQICRaV107IgotICAgICIk
Q0FOX0NNICRDTSogWyRTUCAkWlddOyIKLSAgICAiJENNKyBbJFNQICRaV107IgotICAgICIkRW1v
amlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFzOyIKLSAg
ICAiJENBTl9DTSAkQ00rOyIKLSAgICAiJENNKzsiCi0gICAgIiRDQU5fQ00gJENNKiAkV0pjbTsi
Ci0gICAgIiRMQjhOb25CcmVha3MgJFdKY207IgotICAgICIkQ00rICRXSmNtOyIKLSAgICAiJFdK
Y20gJENBTlRfQ007IgotICAgICIkV0pjbSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FO
X0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FOVF9DTTsiCi0gICAgIltbJExCOE5vbkJyZWFrc10g
LSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOyIKLSAgICAiJENNKyBHTGNtOyIKLSAgICAiJExC
OE5vbkJyZWFrcyAkQ0w7IgotICAgICIkQ0FOX0NNICRDTSogJENMOyIKLSAgICAiJENNKyAkQ0w7
IgotICAgICIkTEI4Tm9uQnJlYWtzICRDUDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ1A7IgotICAg
ICIkQ00rICRDUDsiCi0gICAgIiRMQjhOb25CcmVha3MgJEVYOyIKLSAgICAiJENBTl9DTSAkQ00q
ICRFWDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkSVM7IgotICAgICIk
Q0FOX0NNICRDTSogJElTOyIKLSAgICAiJENNKyAkSVM7IgotICAgICIkTEI4Tm9uQnJlYWtzICRT
WTsiCi0gICAgIiRDQU5fQ00gJENNKiAkU1k7IgotICAgICIkQ00rICRTWTsiCi0gICAgIiRPUGNt
ICRTUCogJENBTl9DTSAkQ00qOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOVF9DTTsiCi0gICAgIiRP
UGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsiCi0gICAgIiRRVWNtICRTUCogJE9QY207IgotICAg
ICIoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsiCi0gICAgIiRCMmNtICRTUCogJEIyY207Igot
ICAgICIkTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOyIKLSAgICAiJENNKyAkUVVjbTsiCi0gICAg
IiRRVWNtIC4/OyIKLSAgICAiJFFVY20gJExCMThOb25CcmVha3MgJENNKjsiCi0gICAgIiRMQjIw
Tm9uQnJlYWtzICRDTSogKCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7ICIKLSAgICAiJEJCY20gW14k
Q0JdOyIKLSAgICAiJEJCY20gJExCMjBOb25CcmVha3MgJENNKjsiCi0gICAgIiRITGNtICgkSFlj
bSB8ICRCQWNtKSBbXiRDQl0/OyIKLSAgICAiJFNZY20gJEhMY207IgotICAgICIoJEFMY20gfCAk
SExjbSkgJElOY207IgotICAgICIkQ00rICRJTmNtOyIKLSAgICAiJEVYY20gJElOY207IgotICAg
ICIkSURjbSAkSU5jbTsiCi0gICAgIiRJTmNtICRJTmNtOyIKLSAgICAiJE5VY20gJElOY207Igot
ICAgICIkSURjbSAkUE9jbTsiCi0gICAgIiRBTGNtICROVWNtOyIKLSAgICAiJEhMY20gJE5VY207
IgotICAgICIkQ00rICROVWNtOyIKLSAgICAiJE5VY20gJEFMY207IgotICAgICIkTlVjbSAkSExj
bTsiCi0gICAgIiRQUmNtICRJRGNtOyIKLSAgICAiJFBSY20gKCRBTGNtIHwgJEhMY20pOyIKLSAg
ICAiJFBPY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiKCRQUmNtIHwgJFBPY20pPyAoJE9QY20g
fCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAkQ1BjbSk/
ICgkUFJjbSB8ICRQT2NtKT87IgotICAgICIkSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRIMmNtIHwg
JEgzY20pOyIKLSAgICAiKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNtKTsiCi0gICAgIigk
SlRjbSB8ICRIM2NtKSAkSlRjbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJj
bSB8ICRIM2NtKSAkSU5jbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8
ICRIM2NtKSAkUE9jbTsiCi0gICAgIiRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJj
bSB8ICRIM2NtKTsiCi0gICAgIigkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7IgotICAg
ICIkQ00rICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRJU2NtICgkQUxjbSB8ICRITGNtKTsiCi0g
ICAgIigkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNtOyIKLSAgICAiJENNKyAkT1BjbTsiCi0g
ICAgIiRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKLSAgICAiJFJJY20gJFJJY207IgotI2VuZGlmCi0gICAgIiRFbW9qaUZvck1vZHMg
JEVtb2ppVmFyPyAkRW1vamlNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFJldmVy
c2UgPQotICAgICIhIXJldmVyc2U7IgotICAgICIkQ00rICRBTFBsdXM7IgotICAgICIkQ00rICRC
QTsiCi0gICAgIiRDTSsgJEJCOyIKLSAgICAiJENNKyAkQjI7IgotICAgICIkQ00rICRDTDsiCi0g
ICAgIiRDTSsgJENQOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkQ00rICRHTDsiCi0gICAgIiRD
TSsgJEhMOyIKLSAgICAiJENNKyAkSFk7IgotICAgICIkQ00rICRIMjsiCi0gICAgIiRDTSsgJEgz
OyIKLSAgICAiJENNKyAkSUQ7IgotICAgICIkQ00rICRJTjsiCi0gICAgIiRDTSsgJElTOyIKLSAg
ICAiJENNKyAkSkw7IgotICAgICIkQ00rICRKVjsiCi0gICAgIiRDTSsgJEpUOyIKLSAgICAiJENN
KyAkTlM7IgotICAgICIkQ00rICROVTsiCi0gICAgIiRDTSsgJE9QOyIKLSAgICAiJENNKyAkUE87
IgotICAgICIkQ00rICRQUjsiCi0gICAgIiRDTSsgJFFVOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKLSAgICAiJENNKyAkUkk7IgotI2VuZGlmCi0gICAgIiRDTSsgJFNZOyIKLSAgICAi
JENNKyAkV0o7IgotICAgICIkQ00rOyIKLSAgICAiJEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENS
ICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRD
TSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsiCi0gICAgIlskUFJdIC8gJENNKyBbJEJLICRDUiAkTEYg
JE5MICRaVyAkU1Age2VvZn1dOyIKLSAgICAiJExCNEJyZWFrcyBbJExCNE5vbkJyZWFrcy0kQ01d
OyIKLSAgICAiJExCNEJyZWFrcyAkQ00rICRDQU5fQ007IgotICAgICIkTEYgJENSOyIKLSAgICAi
WyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJFNQICRaV10gJENNKyAkQ0FO
X0NNOyIKLSAgICAiJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZhcj8gJEVt
b2ppRm9yU2VxczsiCi0gICAgIiRDTSsgJENBTl9DTTsiCi0gICAgIiRDTSogJFdKICRDTSogJENB
Tl9DTTsiCi0gICAgIiRDTSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ0FOVF9D
TSAkQ00qICRXSjsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRXSjsiCi0gICAgIiRDTSogJEdM
ICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOyIKLSAgICAiJENBTlRfQ00g
JENNKiAkR0w7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkR0w7IgotICAgICIkQ0wgJENNKyAk
Q0FOX0NNOyIKLSAgICAiJENQICRDTSsgJENBTl9DTTsiCi0gICAgIiRFWCAkQ00rICRDQU5fQ007
IgotICAgICIkSVMgJENNKyAkQ0FOX0NNOyIKLSAgICAiJFNZICRDTSsgJENBTl9DTTsiCi0gICAg
IiRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENQIFskTEI4Tm9uQnJlYWtzLSRDTV07
IgotICAgICIkRVggWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRJUyBbJExCOE5vbkJyZWFr
cy0kQ01dOyIKLSAgICAiJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJENMICRDUCAk
RVggJElTICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAiCi0gICAgIiRDTSogJENBTl9DTSAkU1Aq
ICRDTSogJE9QOyIKLSAgICAiJENBTlRfQ00gJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xM
T1c/ICRDTSsgJFNQICRTUCogJENNKiAkT1A7IgotICAgICIkQUxfRk9MTE9XX05PQ00gJENNKyAk
U1ArICRDTSogJE9QOyIKLSAgICAiJENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAkQ00qICRP
UDsiCi0gICAgIiRTWSAkQ00gJFNQKyAkT1A7IgotICAgICIkQ00qICRPUCAkU1AqICRDTSogJFFV
OyIKLSAgICAiJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJENNKiAkQjIg
JFNQKiAkQ00qICRCMjsiCi0gICAgIiRDTSogJFFVICRDTSogJENBTl9DTTsiCi0gICAgIiRDTSog
JFFVICRMQjE4Tm9uQnJlYWtzOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFFVOyIKLSAgICAi
JENBTlRfQ00gJENNKiAkUVU7IgotICAgICIkQ00qICgkQkEgfCAkSFkgfCAkTlMpICRDTSogWyRM
QjIwTm9uQnJlYWtzLSRDTV07IgotICAgICIkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dICRDTSog
JEJCOyIKLSAgICAiW14kQ0JdICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogKCRIWSB8ICRC
QSkgJENNKiAkSEw7IgotICAgICIkQ00qICRITCAkQ00qICRTWTsiCi0gICAgIiRDTSogJElOICRD
TSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAkSU4gJENNKiAkRVg7IgotICAgICIkQ00q
ICRJTiAkQ00qICRJRDsiCi0gICAgIiRDTSogJElOICRDTSogJElOOyIKLSAgICAiJENNKiAkSU4g
JENNKiAkTlU7IgotICAgICIkQ00qICRQTyAkQ00qICRJRDsiCi0gICAgIiRDTSogJE5VICRDTSog
KCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkTlU7Igot
ICAgICIkQ00qICRJRCAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSog
JFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87IgotICAgICIoJENNKiAo
JFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRTWSkp
KiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87IgotICAg
ICIkQ00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOyIKLSAgICAiJENNKiAoJEpU
IHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOyIKLSAgICAiJENNKiAkSlQgJENNKiAoJEgzIHwgJEpU
KTsiCi0gICAgIiRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7Igot
ICAgICIkQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIKLSAgICAi
JENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsiCi0gICAgIiRDTSog
KCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAoJEFMUGx1
cyB8ICRITCkgJENNKiAkSVM7IgotICAgICIkQ00qICRPUCAkQ00qICgkQUxQbHVzIHwgJEhMIHwg
JE5VKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOyIKLSNpZiBB
RERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKiAkUkkgJENNKiAkUkk7IgotI2VuZGlm
Ci0gICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyI7Ci0KLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNFNhZmVGb3J3YXJkID0KLSAgICAiISFzYWZlX2ZvcndhcmQ7IgotICAg
ICJbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsg
W14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07IgotICAg
ICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRT
YWZlUmV2ZXJzZSA9Ci0gICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAiJENNKyBbXiRDTSAkQksg
JENSICRMRiAkTkwgJFpXICRTUF07IgotICAgICIkQ00rICRTUCAvIC47IgotICAgICIkU1ArICRD
TSogJE9QOyIKLSAgICAiJFNQKyAkQ00qICRRVTsiCi0gICAgIiRTUCsgJENNKiAoJENMIHwgJENQ
KTsiCi0gICAgIiRTUCsgJENNKiAkQjI7IgotICAgICIkQ00qICgkSFkgfCAkQkEpICRDTSogJEhM
OyIKLSAgICAiKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsiCi0gICAgIigkQ0wgfCAkQ1Ap
ICRDTSogKCROVSB8ICRJUyB8ICRTWSk7IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsi
OwotCiBzdGF0aWMgU3RyaW5nIG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKExpbmVCcmVha0l0
ZXJhdG9yTW9kZSBtb2RlLCBib29sIGlzQ0pLKQogewotICAgIFN0cmluZ0J1aWxkZXIgcnVsZXNC
dWlsZGVyOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRQcm9sb2d1ZSk7Ci0gICAgcnVs
ZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1lbnRzQmVmb3JlKTsKICAgICBzd2l0Y2ggKG1v
ZGUpIHsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6RGVmYXVsdDoKLSAgICAgICAg
cnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0
Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25DSkspOwotICAgICAgICBicmVh
azsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNENKS1J1bGVz
IDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFr
SXRlcmF0b3JNb2RlOjpMb29zZToKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/
IHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZUNKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21M
b29zZU5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZU5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpOb3JtYWw6
Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3Vz
dG9tTm9ybWFsQ0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyk7Ci0gICAg
ICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVsZXM7
CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OlN0cmljdDoKLSAgICAgICAgcnVsZXNC
dWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksgOiB1
YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAg
ICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSktSdWxlcyA6
IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsKICAgICB9Ci0gICAgcnVs
ZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIpOwotICAgIHJ1bGVzQnVpbGRl
ci5hcHBlbmQodWF4MTRGb3J3YXJkKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0UmV2
ZXJzZSk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVGb3J3YXJkKTsKLSAgICBy
dWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2FmZVJldmVyc2UpOwotICAgIHJldHVybiBydWxlc0J1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4g
IiI7CiB9CiAKIC8vIFJlY29nbml6ZSBCQ1A0NyBjb21wbGlhbnQgcHJpbWFyeSBsYW5ndWFnZSB2
YWx1ZXMgb2YgJ3poJywgJ2phJywgJ2tvJwpAQCAtNzg4LDkgKzI1NCwyOSBAQCBVQnJlYWtJdGVy
YXRvciogb3BlbkxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBM
aW5lQnJlYWtJdGVyYQogICAgIGlmIChtb2RlID09IExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6RGVm
YXVsdCkKICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBsb2NhbGVJc0Vt
cHR5ID8gY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkgOiBsb2NhbGUuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOwogICAgIGVsc2UgewotICAgICAgICBVUGFyc2VF
cnJvciBwYXJzZVN0YXR1czsKLSAgICAgICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVyYXRvck1v
ZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsKLSAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW5SdWxl
cyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcnVsZXMubGVuZ3Ro
KCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0dXMpOworICAgICAgICBCcmVha2luZ1J1
bGVTZXQgcnVsZVNldCA9IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks7CisgICAgICAgIHN3
aXRjaCAobW9kZSkgeworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6RGVmYXVs
dDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRD
SksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpMb29zZToKKyAgICAgICAgICAgIHJ1
bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZUNKSyA6IEJyZWFraW5n
UnVsZVNldDo6VUFYMTRMb29zZU5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6Tm9ybWFsOgorICAgICAgICAgICAgcnVsZVNldCA9
IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbENKSyA6IEJyZWFraW5nUnVsZVNl
dDo6VUFYMTROb3JtYWxOb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBM
aW5lQnJlYWtJdGVyYXRvck1vZGU6OlN0cmljdDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NK
SyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3RDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVB
WDE0U3RyaWN0Tm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoYXV0byogaXRlcmF0b3IgPSBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQocnVsZVNldCkp
CisgICAgICAgICAgICB1YnJrSXRlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8VUJyZWFrSXRlcmF0b3Iq
PihpdGVyYXRvcik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgVVBhcnNlRXJyb3IgcGFy
c2VTdGF0dXM7CisgICAgICAgICAgICBhdXRvIHJ1bGVzID0gbWFwTGluZUl0ZXJhdG9yTW9kZVRv
UnVsZXMobW9kZSwgaXNDSkspOworICAgICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW5SdWxl
cyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcnVsZXMubGVuZ3Ro
KCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0dXMpOworICAgICAgICB9CiAgICAgfQog
ICAgIC8vIGxvY2FsZSBjb21lcyBmcm9tIGEgd2ViIHBhZ2UgYW5kIGl0IGNhbiBiZSBpbnZhbGlk
LCBsZWFkaW5nIElDVQogICAgIC8vIHRvIGZhaWwsIGluIHdoaWNoIGNhc2Ugd2UgZmFsbCBiYWNr
IHRvIHRoZSBkZWZhdWx0IGxvY2FsZS4KQEAgLTgxMSw2ICsyOTcsNyBAQCB2b2lkIGNsb3NlTGlu
ZUJyZWFrSXRlcmF0b3IoVUJyZWFrSXRlcmF0b3IqJiBpdGVyYXRvcikKIHsKICAgICBVQnJlYWtJ
dGVyYXRvciogdWJya0l0ZXIgPSBpdGVyYXRvcjsKICAgICBBU1NFUlQodWJya0l0ZXIpOworICAg
IC8vIEZJWE1FOiBVc2UgUkFJSSB0byBkbyB0aGlzIGluc3RlYWQuCiAgICAgdWJya19jbG9zZSh1
YnJrSXRlcik7CiAgICAgaXRlcmF0b3IgPSBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5oCmluZGV4IGJjZjQ0YzA3YTRlYzkxYjUxNDY3YzI0ZjRmZTcxNmVk
MzRkYmNjMTUuLmY4ODEwYjAyZDcyNzE4MmYyMGU3NDJhZWUzODVkYjY2MDJhMmI4OWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKQEAgLTI5LDYgKzI5LDMwIEBAIG5h
bWVzcGFjZSBXVEYgewogCiBlbnVtIGNsYXNzIExpbmVCcmVha0l0ZXJhdG9yTW9kZSB7IERlZmF1
bHQsIExvb3NlLCBOb3JtYWwsIFN0cmljdCB9OwogCitlbnVtIGNsYXNzIEJyZWFraW5nUnVsZVNl
dCB7CisgICAgQ3Vyc29yTW92ZW1lbnQsCisgICAgVUFYMTRDSkssCisgICAgVUFYMTROb25DSkss
CisgICAgVUFYMTRMb29zZUNKSywKKyAgICBVQVgxNExvb3NlTm9uQ0pLLAorICAgIFVBWDE0Tm9y
bWFsQ0pLLAorICAgIFVBWDE0Tm9ybWFsTm9uQ0pLLAorICAgIFVBWDE0U3RyaWN0Q0pLLAorICAg
IFVBWDE0U3RyaWN0Tm9uQ0pLCit9OworCitleHRlcm4gY29uc3QgY2hhciogY3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9u
Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Tm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKS1J1bGVzOworCitUZXh0QnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0
b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCk7CisKIC8vIFRoaXMgaXMgc2ltaWxhciB0byBj
aGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgaW4gbW9zdCBjYXNlcywgYnV0IGlzIHN1YmplY3QgdG8K
IC8vIHBsYXRmb3JtIFVJIGNvbnZlbnRpb25zLiBPbmUgbm90YWJsZSBleGFtcGxlIHdoZXJlIHRo
aXMgY2FuIGJlIGRpZmZlcmVudAogLy8gZnJvbSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgaXMg
VGhhaSBwcmVwZW5kIGNoYXJhY3RlcnMsIHNlZSBidWcgMjQzNDIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tIGIv
U291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5t
bQppbmRleCBiZWY1ZGFhNjQyODg4MjFlMjBmMjYyOGM2ODU1ZWU4ZTg4YTM4OTJjLi43OWZhM2M3
NzM5NDJhMjQ2YWE4ZDI0MzZiNjMwNmUyOWMzMTE1NjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0K
QEAgLTIxLDEyICsyMSwxNTggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0
QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgiCiAKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRv
ci5oIgorCisjaWYgZGVmaW5lZChVX1NIT1dfQ1BMVVNQTFVTX0FQSSkKKyN1bmRlZiBVX1NIT1df
Q1BMVVNQTFVTX0FQSQorI2VuZGlmCisjZGVmaW5lIFVfU0hPV19DUExVU1BMVVNfQVBJIDEKKwor
I2luY2x1ZGUgPHVuaWNvZGUvcmJiaS5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWRhdGEuaD4KKyNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4K
ICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKK0BpbnRlcmZhY2UgV1RGQnVuZGxlRmluZGVy
IDogTlNPYmplY3QKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdURkJ1bmRsZUZpbmRlcgorQGVu
ZAorCiBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0IGludCBtYXhMb2NhbGVTdHJpbmdM
ZW5ndGggPSAzMjsKIAorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yPiBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKE5TU3RyaW5nICpmaWxlTmFtZUJhc2UpCit7
CisgICAgTlNCdW5kbGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV1RGQnVu
ZGxlRmluZGVyIGNsYXNzXV07CisgICAgTlNTdHJpbmcgKnBhdGggPSBbYnVuZGxlIHBhdGhGb3JS
ZXNvdXJjZTpmaWxlTmFtZUJhc2Ugb2ZUeXBlOkAiYnJrIiBpbkRpcmVjdG9yeTpAIkJyZWFraW5n
UnVsZXMiXTsKKyAgICBpZiAoIXBhdGgpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
TlNTdHJpbmcgKmRpcmVjdG9yeSA9IFtwYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBv
bmVudF07CisgICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgdWRhdGFfc2V0RmlsZUFjY2VzcyhVREFUQV9GSUxFU19GSVJTVCwg
JmVycm9yQ29kZSk7CisgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJST1IpCisgICAgICAg
IHJldHVybiBudWxscHRyOworI2VuZGlmCisKKyAgICBMb2NhbFVEYXRhTWVtb3J5UG9pbnRlciBk
YXRhKHVkYXRhX29wZW4oW2RpcmVjdG9yeSBVVEY4U3RyaW5nXSwgImJyayIsIFtmaWxlTmFtZUJh
c2UgVVRGOFN0cmluZ10sICZlcnJvckNvZGUpKTsKKyAgICBpZiAoZXJyb3JDb2RlICE9IFVfWkVS
T19FUlJPUikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyNpZiBQTEFURk9STShJT1MpCisg
ICAgdWRhdGFfc2V0RmlsZUFjY2VzcyhVREFUQV9ERUZBVUxUX0FDQ0VTUywgJmVycm9yQ29kZSk7
CisgICAgaWYgKGVycm9yQ29kZSAhPSBVX1pFUk9fRVJST1IpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworI2VuZGlmCisKKyAgICBhdXRvIHJlc3VsdCA9IHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJh
c2VkQnJlYWtJdGVyYXRvcj4oZGF0YS5vcnBoYW4oKSwgZXJyb3JDb2RlKTsKKyAgICBpZiAoZXJy
b3JDb2RlICE9IFVfWkVST19FUlJPUikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciogY3Vyc29y
TW92ZW1lbnRJdGVyYXRvcigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6dW5p
cXVlX3B0cjxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZy
b21SZXNvdXJjZShAIkN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyIpKTsKKyAgICByZXR1cm4g
aXRlcmF0b3IuZ2V0KCkuZ2V0KCk7Cit9CisKK3N0YXRpYyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9y
KiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8c3RkOjp1bmlxdWVfcHRyPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+PiBpdGVyYXRvcihicmVh
a0l0ZXJhdG9yRnJvbVJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSyIpKTsKKyAg
ICByZXR1cm4gaXRlcmF0b3IuZ2V0KCkuZ2V0KCk7Cit9CisKK3N0YXRpYyBSdWxlQmFzZWRCcmVh
a0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+PiBp
dGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKSyIpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCkuZ2V0KCk7Cit9CisKK3N0YXRp
YyBSdWxlQmFzZWRCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSkso
KQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8UnVsZUJhc2Vk
QnJlYWtJdGVyYXRvcj4+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoQCJMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksiKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgp
LmdldCgpOworfQorCitzdGF0aWMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3Rk
Ojp1bmlxdWVfcHRyPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+PiBpdGVyYXRvcihicmVha0l0ZXJh
dG9yRnJvbVJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLIikpOwor
ICAgIHJldHVybiBpdGVyYXRvci5nZXQoKS5nZXQoKTsKK30KKworc3RhdGljIFJ1bGVCYXNlZEJy
ZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksoKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8UnVsZUJhc2VkQnJlYWtJdGVyYXRv
cj4+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLIikpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKS5nZXQoKTsKK30K
Kworc3RhdGljIFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9w
dHI8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVz
b3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLIikpOworICAgIHJldHVy
biBpdGVyYXRvci5nZXQoKS5nZXQoKTsKK30KKworc3RhdGljIFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksoKQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4+IGl0ZXJh
dG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Q0pLIikpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKS5nZXQoKTsKK30KKworc3RhdGlj
IFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25D
SksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OnVuaXF1ZV9wdHI8UnVsZUJh
c2VkQnJlYWtJdGVyYXRvcj4+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoQCJM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLIikpOworICAgIHJldHVybiBpdGVyYXRv
ci5nZXQoKS5nZXQoKTsKK30KKworVGV4dEJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9y
UnVsZVNldChCcmVha2luZ1J1bGVTZXQgcnVsZVNldCkKK3sKKyAgICBzd2l0Y2ggKHJ1bGVTZXQp
IHsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQ6CisgICAgICAgIGlm
IChhdXRvKiBpdGVyYXRvciA9IGN1cnNvck1vdmVtZW50SXRlcmF0b3IoKSkKKyAgICAgICAgICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PFRleHRCcmVha0l0ZXJhdG9yKj4oc3RkOjptYWtlX3Vu
aXF1ZTxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPigqaXRlcmF0b3IpLnJlbGVhc2UoKSk7CisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENKSzoK
KyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gbGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSygp
KQorICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VGV4dEJyZWFrSXRlcmF0b3Iq
PihzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0b3I+KCppdGVyYXRvcikucmVs
ZWFzZSgpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgY2FzZSBCcmVha2luZ1J1bGVT
ZXQ6OlVBWDE0Tm9uQ0pLOgorICAgICAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9uQ0pLKCkpCisgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxUZXh0QnJlYWtJdGVyYXRvcio+KHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJhc2VkQnJlYWtJdGVy
YXRvcj4oKml0ZXJhdG9yKS5yZWxlYXNlKCkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZUNKSzoKKyAgICAgICAgaWYgKGF1dG8q
IGl0ZXJhdG9yID0gbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLKCkpCisgICAgICAgICAg
ICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXh0QnJlYWtJdGVyYXRvcio+KHN0ZDo6bWFrZV91
bmlxdWU8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4oKml0ZXJhdG9yKS5yZWxlYXNlKCkpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29z
ZU5vbkNKSzoKKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gbGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLKCkpCisgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxU
ZXh0QnJlYWtJdGVyYXRvcio+KHN0ZDo6bWFrZV91bmlxdWU8UnVsZUJhc2VkQnJlYWtJdGVyYXRv
cj4oKml0ZXJhdG9yKS5yZWxlYXNlKCkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBj
YXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSks6CisgICAgICAgIGlmIChhdXRvKiBp
dGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksoKSkKKyAgICAgICAgICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PFRleHRCcmVha0l0ZXJhdG9yKj4oc3RkOjptYWtlX3Vu
aXF1ZTxSdWxlQmFzZWRCcmVha0l0ZXJhdG9yPigqaXRlcmF0b3IpLnJlbGVhc2UoKSk7CisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1h
bE5vbkNKSzoKKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gbGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSygpKQorICAgICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
VGV4dEJyZWFrSXRlcmF0b3IqPihzdGQ6Om1ha2VfdW5pcXVlPFJ1bGVCYXNlZEJyZWFrSXRlcmF0
b3I+KCppdGVyYXRvcikucmVsZWFzZSgpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
Y2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Q0pLOgorICAgICAgICBpZiAoYXV0byog
aXRlcmF0b3IgPSBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLKCkpCisgICAgICAgICAg
ICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUZXh0QnJlYWtJdGVyYXRvcio+KHN0ZDo6bWFrZV91
bmlxdWU8UnVsZUJhc2VkQnJlYWtJdGVyYXRvcj4oKml0ZXJhdG9yKS5yZWxlYXNlKCkpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJp
Y3ROb25DSks6CisgICAgICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3ROb25DSksoKSkKKyAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PFRleHRCcmVha0l0ZXJhdG9yKj4oc3RkOjptYWtlX3VuaXF1ZTxSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yPigqaXRlcmF0b3IpLnJlbGVhc2UoKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KK30KKwogc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHRleHRCcmVha0xv
Y2FsZVByZWZlcmVuY2UoKQogewogICAgIFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gbG9j
YWxlID0gYWRvcHRDRihDRlByZWZlcmVuY2VzQ29weVZhbHVlKENGU1RSKCJBcHBsZVRleHRCcmVh
a0xvY2FsZSIpLApkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlIGIvU291
cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlCmluZGV4IDI5YTA5NjkwMzhmYWE3NDRlMWE4YzU4ZjM1
NmFkMDczZjAwNTI1YmQuLjgxZjU0YTU2YWQ2OTUzZDdiMWUyMGM4OGZhODViYmRkZDFmMDdlOGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQorKysgYi9Tb3VyY2UvY21h
a2UvV2ViS2l0RlMuY21ha2UKQEAgLTI0LDYgKzI0LDcgQEAgaWYgKE5PVCBUT09MU19ESVIpCiBl
bmRpZiAoKQogCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9E
ZXJpdmVkU291cmNlcyIpCitzZXQoREVSSVZFRF9TT1VSQ0VTX1dURl9ESVIgIiR7Q01BS0VfQklO
QVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGIikKIHNldChERVJJVkVEX1NPVVJDRVNfSkFWQVND
UklQVENPUkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3Jp
cHRDb3JlIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVIgIiR7Q01BS0VfQklOQVJZ
X0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViQ29yZSIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJ
VExFR0FDWV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0TGVn
YWN5IikKQEAgLTMyLDYgKzMzLDggQEAgc2V0KERFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUiAi
JHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXQyIikKIHNldChERVJJVkVE
X1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRT
b3VyY2VzL1dlYkluc3BlY3RvclVJIikKIAogZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURf
U09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklW
RURfU09VUkNFU19XVEZfRElSfSkKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJD
RVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcykKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtDTUFLRV9C
SU5BUllfRElSfS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZSkKIAogZmlsZShNQUtFX0RJ
UkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9KQpkaWZmIC0tZ2l0
IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGYyNDI4YjlmNDFkYzBiOGQxNzQzN2Y3YTk1
MTY1M2MwNDQ3YWQ1MTYuLmVkYmFhYzY0ZTIyZTU1ZTliMDhiMDlmZjY0ZGRlMzEyYWY5ZTA5YjAg
MTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxNi0xMi0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWlsZCB0aW1lIHJhdGhl
ciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZToKKwogMjAxNi0xMi0xNSAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92
ZSBmbGV4IGFuZCBiaXNvbiBidWlsZCBkZXBlbmRlbmNpZXM7IGNvbW1pdCBnZW5lcmF0ZWQgWFBh
dGggcGFyc2VyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300869</attachid>
            <date>2017-02-07 18:00:18 -0800</date>
            <delta_ts>2017-02-08 11:59:35 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20170207175755.patch</filename>
            <type>text/plain</type>
            <size>122865</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NDNlNDJhZDA3YTMwMzc5MDhkNTRmNDc1YjAxN2EwODQ0MmIzN2U4Li5mM2U3NDlmM2EzMTRkMTlj
NTU1MzI1YjZkMGRjYmVhMzg5MzZmYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNy0wMi0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbmNsdWRlIHRoZSBieXRlY29kZSBmaWxlcyBpbnNpZGUgdGhl
IEphdmFTY3JpcHRDb3JlIGJ1bmRsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTctMDItMDcgIE1hcmsgTGFtICA8bWFyay5sYW1A
YXBwbGUuY29tPgogCiAgICAgICAgIFNpZ2lsbENyYXNoQW5hbHl6ZXI6OmFuYWx5emUoKSBzaG91
bGQgdXNlIGEgZG8td2hpbGUgbG9vcCBpbnN0ZWFkIG9mIGEgbGFtYmRhLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjYjNmMTgx
YzlkNGNjZTBjNDMzOWEzNDM2Yjg3YzRlYTQ5OTM0OTdiLi42MTA0ZWE4OTEzODVkYmJmODE1M2Q5
M2M3NDczMTZkMjg0MDE2OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE3LTAyLTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJ
Q1UgYnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBtYWNP
UyBhbmQgaU9TIFNES3MgaW5jbHVkZSBhIHRvb2wsIGljdWdlbmJyaywgd2hpY2ggY29tcGlsZXMg
SUNVIGJyayBicmVha2luZworICAgICAgICBydWxlcyBpbnRvIGJ5dGVjb2RlLiBQcmV2aW91c2x5
LCB0aGlzIGNvbXBpbGF0aW9uIHdhcyBkb25lIGF0IHJ1bnRpbWUgaW5zaWRlIHRoZSBJQ1UKKyAg
ICAgICAgdWJya19vcGVuUnVsZXMoKSBmdW5jdGlvbi4gTW92aW5nIHRoaXMgY29tcGlsYXRpb24g
c3RlcCB0byBjb21waWxlIHRpbWUgcmF0aGVyIHRoYW4KKyAgICAgICAgYnVpbGQgdGltZSBjYXVz
ZXMgYSBwZXJmb3JtYW5jZSBib29zdC4KKworICAgICAgICBQcmV2aW91c2x5LCB0aGUgc291cmNl
IGZvciB0aGUgYnJlYWtpbmcgcnVsZXMgd2FzIGFzc2VtYmxlZCBieSBjb25jYXRlbmF0aW5nIEMg
c3RyaW5ncworICAgICAgICBhdCBydW50aW1lLiBOb3csIHRoZSBzb3VyY2UgaXMgY29udGFpbmVk
IHdpdGhpbiBhIGZldyB0ZXh0IGZpbGVzIGluc2lkZQorICAgICAgICB3dGYvdGV4dC9CcmVha2lu
Z1J1bGVzLiBBIGJ1aWxkIHN0ZXAgKHVzaW5nIGEgTWFrZWZpbGUpIHdpbGwgZ2VuZXJhdGUgc291
cmNlIGNvZGUKKyAgICAgICAgY29udGFpbmluZyB0aGVzZSBzdHJpbmdzLCBhbmQgV1RGIHdpbGwg
aW5jbHVkZSB0aGVzZSBzb3VyY2UgZmlsZXMgaW4gdGhlIHNhbWUgd2F5IGFueQorICAgICAgICBv
ZiBvdXIgcHJvamVjdHMgdXNlIGdlbmVyYXRlZCBzb3VyY2VzLiBBZGRpdGlvbmFsbHksIG9uIE9T
ZXMgd2hpY2ggc3VwcG9ydCBpdCwgdGhlc2UKKyAgICAgICAgc3RyaW5ncyBnZXQgY29tcGlsZWQg
ZGlyZWN0bHkgaW50byBJQ1UgYnl0ZWNvZGUsIGFuZCB0aGVuIGluY2x1ZGVkIGluIHRoZSBmcmFt
ZXdvcmsKKyAgICAgICAgYnVuZGxlLiBCZWNhdXNlIFdURiBnZXRzIHN0YXRpY2FsbHkgbGlua2Vk
IGludG8gSmF2YVNjcmlwdENvcmUsIHRoaXMgaXMgdGhlIGJ1bmRsZQorICAgICAgICB3aGljaCBp
bmNsdWRlcyB0aGUgYnl0ZWNvZGUgZmlsZXMuCisKKyAgICAgICAgQXQgcnVudGltZSwgd2UgZmly
c3QgY2hlY2sgaWYgd2UgaGF2ZSBhIGZpbGUgaW4gb3VyIGJ1bmRsZSBvZiB0aGUgYXBwcm9wcmlh
dGUgbmFtZSwKKyAgICAgICAgYW5kIHRoZW4gc2VlIGlmIElDVSBjYW4gb3BlbiBpdCB1c2luZyBp
dHMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBpbnRlcmZhY2UgKHdoaWNoCisgICAgICAgIGluY2x1
ZGVzIGEgdmVyc2lvbiBjaGVjaykuIElmIGFueSBvZiB0aGVzZSBjaGVja3MgZmFpbCwgb3IgaWYg
d2UncmUgb24gYSBwb3J0IHdoaWNoCisgICAgICAgIGRvZXNuJ3QgaGF2ZSB0aGUgbm90aW9uIG9m
IGJ1bmRsZXMsIHdlIHdpbGwgdXNlIHRoZSBDIHN0cmluZ3MgZ2VuZXJhdGVkIGFib3ZlLCBhbmQK
KyAgICAgICAgcGFzcyB0aGVtIHRvIHVicmtfb3BlblJ1bGVzKCkgdGhlIHNhbWUgd2F5IHdlIHdl
cmUgZG9pbmcgYmVmb3JlIHRoaXMgcGF0Y2guCisKKyAgICAgICAgVGhlIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IgaW50ZXJmYWNlIGluIElDVSByZXF1aXJlcyBhZGRpbmcgc29tZSBtb3JlIG9mIElD
VSdzIHB1YmxpYworICAgICAgICBoZWFkZXJzIGludG8gV2ViS2l0LgorCisgICAgICAgICogV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBhIG5ldyBEZXJpdmVkIFNvdXJjZXMgdGFy
Z2V0IHdoaWNoIHVzZXMgYQorICAgICAgICBEZXJpdmVkU291cmNlcy5tYWtlIE1ha2VmaWxlLCB0
aGUgc2FtZSB3YXkgV2ViS2l0MiwgV2ViQ29yZSwgYW5kIEphdmFTY3JpcHRDb3JlIHdyb2suCisg
ICAgICAgIEFsc28sIGFkZCB0aGUgcnVsZXMgdGV4dCBmaWxlcyB0byB0aGUgcHJvamVjdC4gVGhl
biwgbWFrZSBXVEYgZGVwZW5kIG9uIHRoaXMgbmV3CisgICAgICAgIHRhcmdldC4KKyAgICAgICAg
KiB3dGYvQ01ha2VMaXN0cy50eHQ6IEFkZCBidWlsZCBzdGVwcyBmb3Igb3RoZXIgcG9ydHMgdG8g
Z2VuZXJhdGUgdGhlIGJyZWFraW5nCisgICAgICAgIHJ1bGVzIHN0cmluZ3Mgc291cmNlIGZpbGVz
LgorICAgICAgICAqIHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOiBBZGRlZC4gVGhpcyBpcyB0aGUg
cGxhY2Ugd2hlcmUgaWN1Z2VuYnJrIGlzIGFjdHVhbGx5IAorICAgICAgICBpbnZva2VkLiBJdCBh
bHNvIHRyaWdnZXJzIHRoZSBzY3JpcHQgKEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSkg
d2hpY2ggZ2VuZXJhdGVzCisgICAgICAgIHRoZSBDKysgY29kZSBmb3IgdGhlIHJ1bGVzIHN0cmlu
Z3MuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dl
bmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weTogQWRkZWQuIEdlbmVyYXRlIEMrKy4KKyAgICAg
ICAgKG1haW4pOgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JFcGlsb2d1ZS50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5jcHA6CisgICAgICAgIChXVEY6OmNyZWF0ZUl0ZXJhdG9yRm9yUnVs
ZVNldCk6IFVzZWQgYnkgb3RoZXIgcG9ydHMuIFJldHVybmluZyBudWxscHRyIG1lYW5zIHdlIGNh
bid0CisgICAgICAgIHVzZSBwcmVjb21waWxlZCBydWxlcy4KKyAgICAgICAgKFdURjo6Y3JlYXRl
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjayk6IFVzZWQgaW4gcGxhY2Ugb2YgdGhl
IGhhcmRjb2RlZCBydWxlcworICAgICAgICBpbiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKCkuCisg
ICAgICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3IpOiBSZW1vdmUgaGFyZGNvZGVkIHJ1
bGVzLgorICAgICAgICAoV1RGOjptYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyk6IFVwZGF0ZSB0
byB1c2UgdGhlIG5ldyBnZW5lcmF0ZWQgQysrIHN0cmluZ3MuCisgICAgICAgIChXVEY6Om9wZW5M
aW5lQnJlYWtJdGVyYXRvcik6IFRoZSBsb2dpYyBvZiB0cnlpbmcgdG8gdXNlIGEgcHJlY29tcGls
ZWQgYnl0ZWNvZGUsIGFuZCBmYWxsaW5nCisgICAgICAgIGJhY2sgdG8gQysrIHN0cmluZ3MgaWYg
aXQgaXNuJ3QgcG9zc2libGUuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
aDogSGVhZGVyIGZvciBnZW5lcmF0ZWQgQysrIGNvZGUuCisgICAgICAgICogd3RmL3RleHQvbWFj
L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW06CisgICAgICAgIChXVEY6OmJyZWFr
SXRlcmF0b3JGcm9tUmVzb3VyY2UpOiBUaGUgYWN0dWFsIGxvZ2ljIGZvciBsb29raW5nIGluc2lk
ZSB0aGUgYnVuZGxlIGZvciB0aGUKKyAgICAgICAgcHJlY29tcGlsZWQgYnl0ZWNvZGUuCisgICAg
ICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3IpOiBDYWxscyBicmVha0l0ZXJhdG9yRnJv
bVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSkspOiBD
YWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb25DSkspOiBDYWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCku
CisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSyk6IENhbGxzIGJy
ZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgor
ICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKTogQ2FsbHMgYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgor
ICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLKTogQ2FsbHMgYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgor
ICAgICAgICAoV1RGOjpjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQpOiAgQ2FsbCB0aGUgYWJvdmUg
c3RhdGljIGZ1bmN0aW9ucy4KKwogMjAxNy0wMi0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KIAogICAgICAgICBQbGF5YmFjayBzdGFsbHMgd2hlbiBhIFNvdXJjZUJ1ZmZlciBh
cHBlbmQgY2F1c2VzIGZyYW1lIGV2aWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDRkYjY2NzI5YTU1N2MwM2M1Y2VlODA4YjY3MTE2M2JiNmFlMTk1ZTcuLjg4YTFiNmQwMmNh
MTVlYTlhMGU4Y2NiMjNmYjliYTAxZmMyMGI5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMjI4LDYgKzEyMjgsNyBAQAogCQkxQTI4RDRBODE3N0I3MUM4MDAwN0ZBM0MgLyog
SlNTdHJpbmdSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQTI4RDRBNzE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUE4
ODI2QjE2NTNDNENEMUE2NDI5ODNCIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QjQ3RjIzNDM2NkM0
QjcyQUM4NTJBN0UgLyogVGVtcGxhdGVSZWdpc3RyeUtleVRhYmxlLmNwcCAqLzsgfTsKIAkJMUFD
RjczNzcxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDRjczNzYxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsu
Y3BwICovOyB9OworCQkxQ0QxODc5MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNEMTg3OEYx
RDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi87IH07CiAJCTI2MDBCNUE2MTUyQkFB
QTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJp
bmdKb2luZXIuY3BwICovOyB9OwogCQkyNjAwQjVBNzE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJp
bmdKb2luZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oICovOyB9OwogCQky
NjJEODVCNjFDMEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MkQ4NUI0
MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovOyB9
OwpAQCAtMzY1Nyw2ICszNjU4LDcgQEAKIAkJMUM5MDUxNDUwQkE5RThBNzAwODFFOUQwIC8qIEJh
c2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEEwRDMyQzM5QTAwNDFCQ0ZG
IC8qIEphdmFTY3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNj
cmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QjBEMzJDMzlBMDA0
MUJDRkYgLyogSmF2YVNjcmlwdENvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSmF2YVNjcmlwdENvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3
OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmb2xkZXI7IG5hbWUgPSBCcmVha2luZ1J1bGVz
OyBwYXRoID0gLi4vV1RGL0JyZWFraW5nUnVsZXM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0cmluZ0pvaW5lci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0
cmluZ0pvaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0cmluZ0pv
aW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjJEODVCNDFDMEQ2NTBGMDA2
QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHBh
dGggPSBiMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTYwMTMsNiArNjAxNSw3IEBACiAJCTY1MEZERjhEMDlEMEZDQTcw
MDc2OUU1NCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzhGMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1
bGVzICovLAogCQkJCTBGNjE4MzMyMUM0NUYzNUMwMDcyNDUwQiAvKiBBaXJPcGNvZGUuaCAqLywK
IAkJCQkwRjYxODMzNDFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlR2VuZXJhdGVkLmggKi8s
CiAJCQkJMEY2MTgzMzUxQzQ1RjNCNjAwNzI0NTBCIC8qIEFpck9wY29kZVV0aWxzLmggKi8sCkBA
IC05NDIwLDYgKzk0MjMsNyBAQAogCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKIAkJ
CWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkxQ0QxODc5
MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJ
QTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5
IGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45NmIwNDc2OWZjYTM5OGFjYzk5Nzg2OTJiNzc3MDY0MDVlZDA0OGE3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5n
cy5weQpAQCAtMCwwICsxLDExMCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgc3lzCitpbXBvcnQgcmUKKwor
aGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisKKworZGVmIG1haW4oYXJndj1Ob25lKToKKyAgICBp
ZiBub3QgYXJndjoKKyAgICAgICAgYXJndiA9IHN5cy5hcmd2CisgICAgZmlsZU5hbWVTdGFydElu
ZGV4ID0gMQorCisgICAgaW5jbHVkZURlZmluZXMgPSBGYWxzZQorICAgIGlmIGFyZ3ZbZmlsZU5h
bWVTdGFydEluZGV4XSA9PSAiLWluY2x1ZGVEZWZpbmVzIjoKKyAgICAgICAgaW5jbHVkZURlZmlu
ZXMgPSBUcnVlCisgICAgICAgIGZpbGVOYW1lU3RhcnRJbmRleCA9IGZpbGVOYW1lU3RhcnRJbmRl
eCArIDEKKworICAgIHN5bWJvbE5hbWUgPSBhcmd2W2ZpbGVOYW1lU3RhcnRJbmRleF1bMF0ubG93
ZXIoKSArIGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4XVsxOl0KKyAgICBmaWxlTmFtZVN0YXJ0SW5k
ZXggPSBmaWxlTmFtZVN0YXJ0SW5kZXggKyAxCisgICAgZmlsZU5hbWVzID0gYXJndltmaWxlTmFt
ZVN0YXJ0SW5kZXg6XQorCisgICAgcHJpbnQoaGVhZGVyKQorICAgIHByaW50KCIiKQorICAgIHBy
aW50KCIvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJh
dGVkIGJ5IHRoZSBzY3JpcHQiKQorICAgIHByaW50KCIvLyBXVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkiKQorICAgIHByaW50KCIiKQorICAg
IHByaW50KCIjaW5jbHVkZSBcImNvbmZpZy5oXCIiKQorICAgIHByaW50KCIjaW5jbHVkZSA8dW5p
Y29kZS91dmVybnVtLmg+IikKKyAgICBwcmludCgiIikKKyAgICBpZiBpbmNsdWRlRGVmaW5lczoK
KyAgICAgICAgcHJpbnQoIiNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9S
TShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwKSkiKQorICAgICAgICBwcmludCgiI2RlZmluZSBIQVZFX0VYVFJBX0lDVV9O
QU1FRF9TRVRTICgoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJ
T05fTUlOT1JfTlVNID49IDkpKSIpCisgICAgICAgIHByaW50KCIiKQorICAgIHByaW50KCJuYW1l
c3BhY2UgV1RGIHsiKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCJjb25zdCBjaGFyKiAiICsg
c3ltYm9sTmFtZSArICIgPSAiKQorCisgICAgZm9yIGZpbGVOYW1lIGluIGZpbGVOYW1lczoKKyAg
ICAgICAgZm9yIGwgaW4gb3BlbihmaWxlTmFtZSwgJ3InKToKKyAgICAgICAgICAgIGxpbmUgPSBs
LnJzdHJpcCgpCisgICAgICAgICAgICBpZiByZS5tYXRjaCgiXlxzKiQiLCBsaW5lKToKKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyAiKToK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjIik6
CisgICAgICAgICAgICAgICAgcHJpbnQobGluZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgiXiguKik7KCAjIC4qKT8kIiwgbGluZSkKKyAgICAg
ICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gIlwiIiAr
IG1hdGNoLmdyb3VwKDEpLnJlcGxhY2UoIlxcIiwgIlxcXFwiKSArICI7XCIiCisgICAgICAgICAg
ICAgICAgICAgIGlmIG1hdGNoLmdyb3VwKDIpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIpWzM6XQorICAgICAgICAgICAgICAgICAgICBw
cmludChyZXN1bHQpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
ZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAgIHByaW50KCJ9IikKKworaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU0MmUwYTVlOTkzZGQzYzgxOTI5MjMw
ZDUxNjI3NmI5ZjAxNWMwMzkuLjljZDBmNjNjNjg2N2JjNWNiMjkyYmEyYzhiM2M4OTcyZWYyMmI5
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNyw2ICs3
LDE3IEBACiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rp
b24gKi8KKwkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLyA9
IHsKKwkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxp
c3QgPSAxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi87CisJCQlidWlsZFBo
YXNlcyA9ICgKKwkJCQkxQ0QxODc4MjFENTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVyaXZl
ZCBTb3VyY2VzICovLAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1l
ID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwcm9kdWN0TmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMi
OworCQl9OwogCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlv
bkxpc3QgPSA2NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBs
aXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtODQs
NyArOTUsNiBAQAogCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
NDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CiAJ
CTE0NDdBRUM3MThGQ0U1ODAwMEIzRDdGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMjQ3QjYyMTQ2ODlCODYwMEU3OEI3NiAv
KiBsaWJXVEYuYSAqLzsgfTsKIAkJMTQ0N0FFQzkxOEZDRTU5NDAwQjNEN0ZGIC8qIG1ibWFsbG9j
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdB
RUM4MThGQ0U1OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAgKi87IH07Ci0JCTE0NDdBRUNCMThG
Q0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxp
YmljdWNvcmUuZHlsaWIgKi87IH07CiAJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5M
b29wVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDE0Njk0MTkwMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkxNDY5NDE5MzE2RUFBRjZEMDAyNEUxNDYgLyog
UnVuTG9vcFRpbWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTQ2OTQxOTExNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCAq
LzsgfTsKIAkJMTQ2OTQxOTYxNkVBQUZGODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2OTQxOTQxNkVBQUZG
ODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oICovOyB9OwpAQCAtMzQwLDYgKzM1MCwxNiBAQAog
CQlBREYyQ0U2NjFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREYyQ0U2NDFFMzlGMTA2MDA2
ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQURGMkNFNjcxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZv
b3RwcmludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBREYyQ0U2NTFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmNwcCAqLzsgfTsK
IAkJQjM4RkQ3QkQxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMzhGRDdCQzE2ODk1M0U4MDA2
NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCAqLzsgfTsKKwkJQzJCQTU0M0UxRDU4NkFGNDAwMEEz
MzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5k
eWxpYiAqLzsgfTsKKwkJQzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRDSksuY3BwICovOyB9OworCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VDSksuY3BwICovOyB9OworCQlDMkNBMzdFQzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovOyB9OworCQlDMkNB
MzdFRDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNDFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi87IH07
CisJCUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovOyB9OworCQlDMkNBMzdGMDFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi87IH07CisJCUMyQ0Ez
N0YxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Ez
N0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LmNwcCAqLzsgfTsKIAkJQzRGOEE5MzcxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzRGOEE5MzYxOUM2
NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oICovOyB9OwogCQlDOEIwRTFBMUUwMUE0ODZFQjk1
RTBEMTEgLyogSW5kZXhTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxMzdFMUQ3REJEODRBQzM4RkFFNEQzNCAvKiBJbmRleFNldC5oICovOyB9Owog
CQlDOTE2Qjk3NUYwMkY0RjdFOEI0QUIxMkQgLyogSW5kZXhNYXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVCNDMzODNBNUQwQjQ2M0M5NDMzRDkzMyAv
KiBJbmRleE1hcC5oICovOyB9OwpAQCAtMzgxLDYgKzQwMSwxMyBAQAogCQkJcmVtb3RlR2xvYmFs
SURTdHJpbmcgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzY7CiAJCQlyZW1vdGVJbmZvID0gV1RG
OwogCQl9OworCQkxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVy
UG9ydGFsID0gNUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOwor
CQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gMUNEMTg3ODExRDU1
Njk1QzAwQ0M3REVDOworCQkJcmVtb3RlSW5mbyA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQl9Owog
CQk2NUFGQTI4RDE2MzBCOTlFMDAzRDcyM0MgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0g
ewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFsID0g
NUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAtNDkyLDYg
KzUxOSwxOSBAQAogCQkxQzE4MUM4RDFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVU
RjE2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVUZXh0UHJvdmlk
ZXJVVEYxNi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzhFMUQzMDdB
QjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDMTgxQzk1MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVy
bmFsSUNVTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgcGF0aCA9IG1hYy9UZXh0QnJlYWtJdGVy
YXRvckludGVybmFsSUNVTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzZC
RTBGQTFFMDM0QzlBMDAyMTc2MTcgLyogR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3Jp
cHQucHl0aG9uOyBwYXRoID0gR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRG
Qjk1MUQ1NTlBNjkwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZU5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5OTFENTU5QUVG
MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlBMUQ1NTlCMjMwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1
ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhBMUQ1NThBRDMwMENDN0RF
QyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IG5hbWUgPSBEZXJpdmVkU291cmNlcy5tYWtlOyBw
YXRoID0gd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHVz
ZXNUYWJzID0gMTsgfTsKKwkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVDIC8qIEN1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4
dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVD
IC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxRkE0N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODkxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNv
cmVUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVRocmVh
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjE0N0IwODE1RERDQ0RDMDBEREI5
MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC03MjQsNiArNzY0LDE1IEBACiAJCUFERjJDRTY0MUUzOUYxMDYwMDY4ODlE
QiAvKiBNZW1vcnlGb290cHJpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVtb3J5Rm9vdHByaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFERjJDRTY1
MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5Rm9vdHByaW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBD
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgcGF0aCA9IEJyZWFr
aW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNB
MzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0Uz
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJD
QTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNTFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U2MUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3
RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3RDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdF
ODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRpbWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTc2Miw3ICs4MTEsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTE0NDdBRUM2MThGQ0U1NzcwMEIzRDdGRiAv
KiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTE0NDdBRUNCMThG
Q0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCisJCQkJ
QzJCQTU0M0UxRDU4NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3Jr
cyAqLywKIAkJCQkxNDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3
b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKQEAgLTc5OSw2ICs4NDgsMzIgQEAKIAkJCXBhdGggPSBpY3U7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OworCQkxQzZCRTBGOTFFMDM0QzJBMDAyMTc2MTcgLyogU2NyaXB0cyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUM2QkUwRkEx
RTAzNEM5QTAwMjE3NjE3IC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAqLywKKwkJ
CSk7CisJCQlwYXRoID0gU2NyaXB0czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CisJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc5MjFENTU5OEUxMDBD
QzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAqLywKKwkJCQkxQ0I0RkI5
QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8sCisJ
CQkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUu
dHh0ICovLAorCQkJCTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NjFENTU5QTkwMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NzFENTU5QUE4MDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50
eHQgKi8sCisJCQkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxDSksudHh0ICovLAorCQkJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QTFE
NTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8s
CisJCQkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksudHh0ICovLAorCQkJKTsKKwkJCXBhdGggPSBCcmVha2luZ1J1bGVzOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMUZBNDdDODcxNTI1MDJEQTAwNTY4RDFC
IC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC04
MjEsOSArODk2LDEyIEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CTVEMjQ3QjZEMTQ2ODlDNDcwMEU3OEI3NiAvKiBDb25maWd1cmF0aW9ucyAqLywKKwkJCQlDMkNB
MzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0MDIyRjNG
MThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJCQkJNUQyNDdCNjMxNDY4OUI4NjAw
RTc4Qjc2IC8qIFByb2R1Y3RzICovLAorCQkJCTFDNkJFMEY5MUUwMzRDMkEwMDIxNzYxNyAvKiBT
Y3JpcHRzICovLAogCQkJCTVEMjQ3Qjc2MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJ
CQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCiAJ
CQkJMTQ0N0FFQzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovLAog
CQkJCTE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICovLAogCQkJ
KTsKQEAgLTExODUsNiArMTI2Myw3IEBACiAJCUE4QTQ3MzFCMTUxQTgyNUIwMDQxMjNGRiAvKiB0
ZXh0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0Qx
ODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJCQlBNUJBMTVGNjE4
MjQzNTlFMDBBODJFNjkgLyogY2YgKi8sCiAJCQkJMUMxODFDODgxRDMwN0FCODAwRjVGQTE2IC8q
IGljdSAqLywKIAkJCQlBNUJBMTVGMTE4MjQzMzlGMDBBODJFNjkgLyogbWFjICovLApAQCAtMTI2
Myw2ICsxMzQyLDIzIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKIAkJfTsKKwkJQzJDQTM3REYxRDU1QzhEODAwNDg2Qjk4IC8qIERlcml2ZWQgU291cmNlcyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQzJDQTM3RTAx
RDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8sCisJ
CQkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksu
Y3BwICovLAorCQkJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VDSksuY3BwICovLAorCQkJCUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U0MUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLywKKwkJ
CQlDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLywKKwkJCQlDMkNB
MzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNK
Sy5jcHAgKi8sCisJCQkpOworCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQkJcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dURjsKKwkJCXNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
CisJCX07CiAJCUNFNDY1MTZDMTlEQjFGQjQwMDNFQ0EwNSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNjE0LDYgKzE3MTAsNyBAQAogCQkJ
YnVpbGRSdWxlcyA9ICgKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJMUNEMTg3ODgx
RDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJNjVBRkEyOEUx
NjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkpOwogCQkJbmFt
ZSA9IFdURjsKQEAgLTE2NDQsMTIgKzE3NDEsMjcgQEAKIAkJCXRhcmdldHMgPSAoCiAJCQkJNUQy
NDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLywKIAkJCQk2NUFGQTE2RjE2MzBCOTc3MDAz
RDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLywKKwkJCQkxQ0QxODc4MTFENTU2OTVDMDBDQzdE
RUMgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0NDdBRUJEMThGQ0U1NjkwMEIzRDdGRiAv
KiBtYm1hbGxvYyAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICov
CiAKIC8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCisJCTFDRDE4
NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJ
CQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAy
MTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCSk7
CisJCQluYW1lID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNlcyI7CisJCQlvdXRwdXRQYXRocyA9
ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJ
CXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7QlVJ
TFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuY2QgXCIke0JVSUxUX1BST0RV
Q1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcblxuL2Jpbi9sbiAtc2ZoIFwiJHtTUkNST09U
fVwiIFdURlxuZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsgISAtZCBCcmVha2luZ1J1bGVzIF07
IHRoZW5cbiAgICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxuXG5pZiBbIFwiJE1BQ09TWF9ERVBM
T1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdIDsgdGhlblxuICAgIGV4cG9ydCBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQ9MFxuZWxzZVxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQ9MVxuZmlcblxuaWYgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEw
LjEwXCIgXSB8fCBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTFcIiBd
IHx8IFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMlwiIF0gfHwgWyBc
IiRTREtfVkVSU0lPTl9NQUpPUlwiID09IFwiOTAwMDBcIiBdIHx8IFsgXCIkU0RLX1ZFUlNJT05f
TUFKT1JcIiA9PSBcIjEwMDAwMFwiIF07IHRoZW5cbiAgICBleHBvcnQgSEFWRV9JQ1VHRU5CUks9
MFxuZWxzZVxuICAgIGV4cG9ydCBIQVZFX0lDVUdFTkJSSz0xXG5maVxuXG5pZiBbIFwiJHtBQ1RJ
T059XCIgPSBcImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtB
Q1RJT059XCIgPSBcImluc3RhbGxoZHJzXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGFw
aVwiIF07IHRoZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwiV1RGL3d0Zi9EZXJpdmVk
U291cmNlcy5tYWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCBTREtS
T09UPVwiJHtTREtST09UfVwiXG5maSI7CisJCX07CiAJCTY1QUZBMTcwMTYzMEI5NzcwMDNENzIz
QyAvKiBDb3B5IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWls
ZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE3MDIsNiArMTgx
NCw3IEBACiAJCQkJRTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGls
aXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzkxNTFBODI1QjAwNDEyM0ZGIC8q
IENTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUMxNTFBODI1QjAwNDEyM0ZG
IC8qIEN1cnJlbnRUaW1lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0U5MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDczOUUxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGFMb2cuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThBNDczQTAxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGVNYXRoLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4QTQ3M0EyMTUxQTgyNUIwMDQxMjNGRiAvKiBEZWNpbWFsTnVtYmVyLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMTcxOCw2ICsxODMxLDE0IEBACiAJCQkJMUExRDhCOUUxNzMx
ODc5ODAwMTQxREE0IC8qIEZ1bmN0aW9uRGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyQ0NEODkyQTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQThBNDczRDgxNTFBODI1QjAwNDEyM0ZGIC8qIEhhc2hUYWJsZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQjFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUQxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RjAxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFMTY0NkExQjZGRkM5NjAwNDAwRTdDIC8qIExvY2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY2MEYzMkYxREZDQkQxQjAwNDE2RDZDIC8qIExvY2tlZFByaW50U3RyZWFtLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0U1MTUxQTgyNUIwMDQxMjNGRiAvKiBNYWluVGhyZWFk
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTc5Myw2ICsxOTE0LDExIEBACiAJCQl0YXJnZXQgPSA1
RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovOwogCQkJdGFyZ2V0UHJveHkgPSAxNDQ3
QUVDMzE4RkNFNTcwMDBCM0Q3RkYgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9Owor
CQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsK
KwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQgPSAxQ0QxODc4MTFENTU2
OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovOworCQkJdGFyZ2V0UHJveHkgPSAxQ0Qx
ODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9Owog
CQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsK
IAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSA2NUFGQTE2RjE2MzBC
OTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLzsKQEAgLTE4MjIsNiArMTk0OCwzMCBA
QAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFENTU2OTVD
MDBDQzdERUMgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsK
KwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2
IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJ
UFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7
CisJCX07CisJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0geworCQkJ
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5j
ZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87
CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1F
KSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTFDRDE4Nzg2MUQ1NTY5NUMw
MENDN0RFQyAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRp
b247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3
OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0gewor
CQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFBy
b2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9
IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25S
ZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29u
ZmlnICovOwpAQCAtMTkwNSw2ICsyMDU1LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklz
VmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwog
CQl9OworCQkxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBs
aXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJCQlp
c2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJ
CQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1
Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVD
IC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2li
bGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsK
IAkJNUQyNDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYUHJvamVjdCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7
CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3Uv
dW5pY29kZS91YnJrLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaAppbmRleCBlOWMw
ZWY2MjdiNjcyNzlmODZlNDYwNDRiZjBmMjU3MTAyZTBjNmNkLi4xOTc1YjlkYmVkNDQzYTkyNzQz
NmYwYTI3OTI5YmE1OGFmODcxODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3VicmsuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaApAQCAtMjQxLDYgKzI0
MSwzMSBAQCB1YnJrX29wZW5SdWxlcyhjb25zdCBVQ2hhciAgICAgKnJ1bGVzLAogICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAgICAgICpzdGF0dXMpOwogCiAvKioKKyAqIE9wZW4gYSBuZXcgVUJy
ZWFrSXRlcmF0b3IgZm9yIGxvY2F0aW5nIHRleHQgYm91bmRhcmllcyB1c2luZyBwcmVjb21waWxl
ZCBiaW5hcnkgcnVsZXMuCisgKiBPcGVuaW5nIGEgVUJyZWFrSXRlcmF0b3IgdGhpcyB3YXkgaXMg
c3Vic3RhbnRpYWxseSBmYXN0ZXIgdGhhbiB1c2luZyB1YnJrX29wZW5SdWxlcy4KKyAqIEJpbmFy
eSBydWxlcyBtYXkgYmUgb2J0YWluZWQgdXNpbmcgdWJya19nZXRCaW5hcnlSdWxlcy4gVGhlIGNv
bXBpbGVkIHJ1bGVzIGFyZSBub3QKKyAqIGNvbXBhdGlibGUgYWNyb3NzIGRpZmZlcmVudCBtYWpv
ciB2ZXJzaW9ucyBvZiBJQ1UsIG5vciBhY3Jvc3MgcGxhdGZvcm1zIG9mIGRpZmZlcmVudAorICog
ZW5kaWFubmVzcyBvciBkaWZmZXJlbnQgYmFzZSBjaGFyYWN0ZXIgc2V0IGZhbWlseSAoQVNDSUkg
dnMgRUJDRElDKS4KKyAqIEBwYXJhbSBiaW5hcnlSdWxlcyBBIHNldCBvZiBjb21waWxlZCBiaW5h
cnkgcnVsZXMgc3BlY2lmeWluZyB0aGUgdGV4dCBicmVha2luZworICogICAgICAgICAgICAgICAg
ICAgIGNvbnZlbnRpb25zLiBPd25lcnNoaXAgb2YgdGhlIHN0b3JhZ2UgY29udGFpbmluZyB0aGUg
Y29tcGlsZWQKKyAqICAgICAgICAgICAgICAgICAgICBydWxlcyByZW1haW5zIHdpdGggdGhlIGNh
bGxlciBvZiB0aGlzIGZ1bmN0aW9uLiBUaGUgY29tcGlsZWQKKyAqICAgICAgICAgICAgICAgICAg
ICBydWxlcyBtdXN0IG5vdCBiZSBtb2RpZmllZCBvciBkZWxldGVkIGR1cmluZyB0aGUgbGlmZSBv
ZiB0aGUKKyAqICAgICAgICAgICAgICAgICAgICBicmVhayBpdGVyYXRvci4KKyAqIEBwYXJhbSBy
dWxlc0xlbmd0aCBUaGUgbGVuZ3RoIG9mIGJpbmFyeVJ1bGVzIGluIGJ5dGVzOyBtdXN0IGJlID49
IDAuCisgKiBAcGFyYW0gdGV4dCAgICAgICAgVGhlIHRleHQgdG8gYmUgaXRlcmF0ZWQgb3Zlci4g
IE1heSBiZSBudWxsLCBpbiB3aGljaCBjYXNlCisgKiAgICAgICAgICAgICAgICAgICAgdWJya19z
ZXRUZXh0KCkgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSB0ZXh0IHRvIGJlIGl0ZXJhdGVkLgorICog
QHBhcmFtIHRleHRMZW5ndGggIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0ZXh0LCBvciAt
MSBpZiBudWxsLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gc3RhdHVzICAgICAgUG9pbnRlciB0byBV
RXJyb3JDb2RlIHRvIHJlY2VpdmUgYW55IGVycm9ycy4KKyAqIEByZXR1cm4gICAgICAgICAgICBV
QnJlYWtJdGVyYXRvciBmb3IgdGhlIHNwZWNpZmllZCBydWxlcy4KKyAqIEBzZWUgdWJya19nZXRC
aW5hcnlSdWxlcworICogQGRyYWZ0IElDVSA1OQorICovCitVX0RSQUZUIFVCcmVha0l0ZXJhdG9y
KiBVX0VYUE9SVDIKK3Vicmtfb3BlbkJpbmFyeVJ1bGVzKGNvbnN0IHVpbnQ4X3QgKmJpbmFyeVJ1
bGVzLCBpbnQzMl90IHJ1bGVzTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNo
YXIgKiAgdGV4dCwgaW50MzJfdCB0ZXh0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVy
cm9yQ29kZSAqICAgc3RhdHVzKTsKKworLyoqCiAgKiBUaHJlYWQgc2FmZSBjbG9uaW5nIG9wZXJh
dGlvbgogICogQHBhcmFtIGJpIGl0ZXJhdG9yIHRvIGJlIGNsb25lZAogICogQHBhcmFtIHN0YWNr
QnVmZmVyIDxlbT5EZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUyLCB1c2UgTlVM
TC48L2VtPjxicj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggODFhZjkxMjc2MTA2YjgxMjg5MTdk
YjhjNzljZjI1NGIyZTRkOGNmMC4uZDkwZTBmMzhlYzNkOGY1ODM2MDY3MmU2YWM4ZDllNzA4YTE5
OGVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTMwMSw2ICszMDEsNDIgQEAgaWYgKE5PVCBV
U0VfU1lTVEVNX01BTExPQykKICAgICBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTIGJtYWxsb2Mp
CiBlbmRpZiAoKQogCitzZXQoV1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVMKKyAgICB0ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKKyAgICB0ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dAorICAgIHRleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0CisgICAgdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0CisgICAgdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0CisgICAg
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0
CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksu
dHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksudHh0CispCisKK21hY3JvKEdFTkVSQVRFX0JSRUFLSU5HX1JVTEVTIF9pbnB1dCBfc3lt
Ym9sTmFtZSBfb3V0cHV0KQorICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVU
ICR7X291dHB1dH0KKyAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7V1RGX0RJUn0vU2NyaXB0cy9H
ZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKKyAgICAgICAgREVQRU5EUyAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJv
bG9ndWUudHh0ICR7X2lucHV0fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisgICAgICAgIENPTU1BTkQg
JHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZfRElSfS9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdS
dWxlU3RyaW5ncy5weSAtaW5jbHVkZURlZmluZXMgJHtfc3ltYm9sTmFtZX1SdWxlcyAke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
UHJvbG9ndWUudHh0ICR7X2lucHV0fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ID4gJHtfb3V0cHV0fQor
ICAgICAgICBWRVJCQVRJTSkKKyAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke19vdXRwdXR9
KQorICAgIEFERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7X2lucHV0fSAke19vdXRwdXR9KQorZW5k
bWFjcm8oKQorCitmb3JlYWNoIChfZmlsZSAke1dURl9CUkVBS0lOR19SVUxFU19TT1VSQ0VTfSkK
KyAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCisgICAg
R0VORVJBVEVfQlJFQUtJTkdfUlVMRVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7X2Zp
bGV9ICR7X25hbWV9ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvJHtf
bmFtZX0uY3BwKQorZW5kZm9yZWFjaCAoKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VU
UFVUICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLmNwcAorICAgIE1BSU5fREVQRU5ERU5DWSAke1dURl9ESVJ9L1Njcmlw
dHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CisgICAgREVQRU5EUyAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy50eHQKKyAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0v
U2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgLWluY2x1ZGVEZWZpbmVzIGN1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4
dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgPiAke0RFUklW
RURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAKKyAgICBWRVJCQVRJTSkKK2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7REVSSVZF
RF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLmNwcCkKK0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0Vf
RElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAk
e0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy5jcHApCisKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgdW5pY29kZS9p
Y3UvQ29sbGF0b3JJQ1UuY3BwCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YzI0YWE2NDFiMjE3OGNmNzJmNmYwYmRlYWExNGMzZjgzMTM4NDkxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMCwwICsxLDcy
IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitCUkVBS0lOR19SVUxF
U19GSUxFUyA9IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxl
cy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5icmsg
XAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5icmsgXAor
ICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmJyayBcCisg
ICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuYnJrIFwK
KyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuYnJrIFwK
KyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuYnJr
IFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuYnJr
IFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksu
YnJrCisKK0JSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TPSQoQlJFQUtJTkdfUlVMRVNfRklMRVM6
LmJyaz0uY3BwKQorCitpZmVxICgkKHNoZWxsICQoQ0MpIC1zdGQ9Z251KysxMSAteCBjKysgLUUg
LVAgLWRNICQoU0RLX0ZMQUdTKSAkKEZSQU1FV09SS19GTEFHUykgJChIRUFERVJfRkxBR1MpIC1J
ICQoV1RGKSAtaW5jbHVkZSAiJChXVEYpL3d0Zi9QbGF0Zm9ybS5oIiAvZGV2L251bGwgfCBncmVw
ICcgV1RGX1BMQVRGT1JNX0lPUyAnIHwgY3V0IC1kJyAnIC1mMyksIDEpCisgICAgV1RGX1BMQVRG
T1JNX0lPUyA9IDEKK2Vsc2UKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMAorZW5kaWYKKworaWZl
cSAoJChXVEZfUExBVEZPUk1fSU9TKSwgMSkKKwlBRERJVElPTkFMX0VNT0pJX1NVUFBPUlRfRk9S
X0NVUlNPUl9NT1ZFTUVOVCA9IDAKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMAorZWxz
ZQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5UID0gJChBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQpCisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyA9IDEKK2Vu
ZGlmCisKK0RFUEVOREVOQ0lFUyA9ICQoQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlMpCisKK2lm
ZXEgKCQoSEFWRV9JQ1VHRU5CUkspLCAxKQorREVQRU5ERU5DSUVTICs9ICQoQlJFQUtJTkdfUlVM
RVNfRklMRVMpCitlbmRpZgorCithbGwgOiAkKERFUEVOREVOQ0lFUykKKworQnJlYWtpbmdSdWxl
cy8lLmJyayA6IEJyZWFraW5nUnVsZXMvJS5wcAorCWljdWdlbmJyayAtYyAtciAkPCAtbyAkQAor
CitCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgOiBCcmVha2lu
Z1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcAorCXB5dGhvbiAkKFdURikvU2Ny
aXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgY3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzICQ8ID4gJEAKKworQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUuY3BwIDog
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUucHAKKwlweXRob24gJChXVEYpL1Njcmlw
dHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGxpbmVCcmVha0l0ZXJhdG9yJCpSdWxl
cyAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBw
IDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQpIC1ESEFWRV9FWFRSQV9JQ1VfTkFN
RURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRAICQ8CisKK0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCS1jYXQgJD8gfCB1bmlmZGVmIC1EQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVf
RVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMWQ0MTliYWY4OGRm
MzE4OTU1MDQ3Y2UzYjQ1ZDJmZTU0YmRjMmU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQK
QEAgLTAsMCArMSwxNzYgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykK
KyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBydWxlIHNldCBpcyBiYXNl
ZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRwOi8v
c291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3Nv
dXJjZS9kYXRhL2Jya2l0ci8+LgorIyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3Jp
Z2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5
ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOworIyAq
IFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHBy
ZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZl
bnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1
YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0aGF0
IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgg
a2F0YWthcmEgdm9pY2VkIG1hcmtzLgorIyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRp
Y2F0b3Igc3ltYm9scy4KKworJENSICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IENSfV07CiskTEYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsKKyRD
b250cm9sID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9pY2VN
YXJrcyA9IFtcdUZGOUVcdUZGOUZdOyAjIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9p
Y2VkIG1hcmtzCiskRXh0ZW5kICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5k
fSAkVm9pY2VNYXJrcyAtIFtcdTBFMzAgXHUwRTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07Cisk
U3BhY2luZ01hcmsgPSBbW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRF
eHRlbmRdOworJEwgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsKKyRW
ICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9IFtc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOworJExWICAgICAgPSBbXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IExWfV07CiskTFZUICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gTFZUfV07CiskSGluMCAgICA9IFtcdTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExl
dHRlciBBLC4uLixIYQorJEhpblYgICAgPSBcdTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZpcmFt
YQorJEhpbjEgICAgPSBbXHUwOTE1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4u
LEhhCiskQmVuMCAgICA9IFtcdTA5ODUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4uLixI
YQorJEJlblYgICAgPSBcdTA5Q0Q7ICMgQmVuZ2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAgPSBb
XHUwOTk1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9IFtc
dTBBMDUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0gXHUw
QTREOyAjIEd1cm11a2hpIFNpZ24gVmlyYW1hCiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5XTsg
IyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5XTsg
IyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKKyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFyYXRp
IFNpZ24gVmlyYW1hCiskR3VqMSAgICA9IFtcdTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0
ZXIgS2EsLi4uLEhhCiskT3JpMCAgICA9IFtcdTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIg
QSwuLi4sSGEKKyRPcmlWICAgID0gXHUwQjREOyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3JpMSAg
ICA9IFtcdTBCMTUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAgICA9
IFtcdTBDMDUtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9IFx1
MEM0RDsgIyBUZWx1Z3UgU2lnbiBWaXJhbWEKKyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzldOyAj
IFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCiskS2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsgIyBL
YW5uYWRhIExldHRlciBBLC4uLixIYQorJEthblYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBTaWdu
IFZpcmFtYQorJEthbjEgICAgPSBbXHUwQzk1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwu
Li4sSGEKKyRNYWwwICAgID0gW1x1MEQwNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwu
Li4sSGEgCiskTWFsViAgICA9IFx1MEQ0RDsgIyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRNYWwx
ICAgID0gW1x1MEQxNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRSSSAg
ICAgID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9y
cworJFpXSiAgICAgPSBcdTIwMEQ7ICMgWmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9IFtc
dUZFMEZdOyAjIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgorCisjaWYgQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUy
NkY5IFx1Mjc2NCBcVTAwMDFGMzA4IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxV
MDAwMUYzQ0MgXFUwMDAxRjNGMyBcVTAwMDFGNDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAw
MDFGNDZFLVxVMDAwMUY0NkYgXFUwMDAxRjQ3MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAx
RjQ4MS1cVTAwMDFGNDgyIFxVMDAwMUY0ODYtXFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1
NzUgXFUwMDAxRjVFOCBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRE
LVxVMDAwMUY2NEUgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjZdOyAjIEVtb2ppIHRo
YXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUy
NjFEIFx1MjZGOSBcdTI3MEEtXHUyNzBEIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0
IFxVMDAwMUYzQ0EgXFUwMDAxRjNDQiBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1c
VTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUw
MDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAw
MUY0QUEgXFUwMDAxRjU3NSBcVTAwMDFGNTkwIFxVMDAwMUY1OTUgXFUwMDAxRjU5NiBcVTAwMDFG
NjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZC
NC1cVTAwMDFGNkI2IFxVMDAwMUY2QzAgXFUwMDAxRjkxOF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBG
aXR6cGF0cmljayBtb2RpZmllcnMKKworI2Vsc2UKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUy
NzY0IFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDhCXTsgIyBFbW9qaSB0aGF0IHBhcnRp
Y2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI3
MEEtXHUyNzBDIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcgXFUw
MDAxRjNDQSBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAw
MUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFG
NDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU5
NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMg
XFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0
enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkIt
XFUwMDAxRjNGRl07ICMgRml0enBhdHJpY2sgbW9kaWZpZXJzCishIWNoYWluOworCisjaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIVJJTm9DaGFpbjsKKworI2VuZGlmCisKKyEh
Zm9yd2FyZDsKKyRDUiAkTEY7CiskTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8ICRW
KSAoJFYgfCAkVCk7CisoJExWVCB8ICRUKSAkVDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVAorCisgICAgJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsKKyAgICAkUkkgJFJJICRFeHRlbmQq
OworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAk
TEZdICRTcGFjaW5nTWFyazsKKworI2Vsc2UKKworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4
dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKyAgICAkUkkgJFJJ
IC8gJFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMCAkSGluViAkSGluMTsgIyBE
ZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKKyRCZW4wICRCZW5WICRCZW4xOyAjIEJlbmdhbGkg
VmlyYW1hIChmb3J3YXJkKQorJFBhbjAgJFBhblYgJFBhbjE7ICMgR3VybXVraGkgVmlyYW1hIChm
b3J3YXJkKQorJEd1ajAgJEd1alYgJEd1ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQor
JE9yaTAgJE9yaVYgJE9yaTE7ICMgT3JpeWEgVmlyYW1hIChmb3J3YXJkKQorJFRlbDAgJFRlbFYg
JFRlbDE7ICMgVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKKyRLYW4wICRLYW5WICRLYW4xOyAjIEth
bm5hZGEgVmlyYW1hIChmb3J3YXJkKQorJE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFsYXlhbGFtIFZp
cmFtYSAoZm9yd2FyZCkKKyRaV0ogJEVtb2ppRm9yU2VxczsgIyBEb250IGJyZWFrIGluIGVtb2pp
IFpXSiBzZXF1ZW5jZXMKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyAjIERv
bnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24g
c2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorISFyZXZlcnNlOworJExGICRDUjsK
KygkTCB8ICRWIHwgJExWIHwgJExWVCkgJEw7CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRUICgk
TFZUIHwgJFQpOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRXh0ZW5k
KiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kKiAkUkkgJFJJOworICAg
ICRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRD
b250cm9sICRDUiAkTEZdOworCisjZWxzZQorCisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wg
JENSICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFJJ
ICRSSSAvICRSSSAkUkk7CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4xICRIaW5WICRI
aW4wOyAjIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKKyRCZW4xICRCZW5WICRCZW4wOyAj
IEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKKyRQYW4xICRQYW5WICRQYW4wOyAjIEd1cm11a2hp
IFZpcmFtYSAoYmFja3dhcmQpCiskR3VqMSAkR3VqViAkR3VqMDsgIyBHdWphcmF0aSBWaXJhbWEg
KGJhY2t3YXJkKQorJE9yaTEgJE9yaVYgJE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2Fy
ZCkKKyRUZWwxICRUZWxWICRUZWwwOyAjIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQorJEthbjEg
JEthblYgJEthbjA7ICMgS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQorJE1hbDEgJE1hbFYgJE1h
bDA7ICMgTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCiskRW1vamlGb3JTZXFzICRaV0o7ICMg
RG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlNb2RzICRFbW9qaVZhcj8g
JEVtb2ppRm9yTW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3Np
Ymx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKwor
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgISFzYWZlX3JldmVyc2U7CisgICAg
JFJJICRSSSs7CisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAg
ICAhIXNhZmVfZm9yd2FyZDsKKyAgICAkUkkgJFJJKzsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1v
amlWYXIgJEVtb2ppTW9kc10rOworCisjZWxzZQorCisgICAgWyRFbW9qaVZhciAkRW1vamlNb2Rz
XSsgJEVtb2ppRm9yTW9kczsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9k
c10rOworICAgICEhc2FmZV9yZXZlcnNlOworICAgICEhc2FmZV9mb3J3YXJkOworCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvckVwaWxvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmM3MDY2YWM0MjBmOTE3
YWVhMzAwOWRlNTY3NGZiYWRjN2E2NDgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0w
LDAgKzEsMzcyIEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENv
cHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQUkgPSBbOkxpbmVCcmVhayA9IEFtYmlndW91
czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07CiskQkEgPSBbWzpMaW5lQnJl
YWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFr
X0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsKKyRCMiA9
IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5n
ZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07Cisk
Q00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1AgPSBbOkxpbmVCcmVhayA9
IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdlX1JldHVy
bjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9TVUJdOworJEdM
ID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRT
CisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsKKworI2Vsc2UKKwor
ICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNlbmRpZgorCiskSFkgPSBb
OkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOworJEgzID0g
WzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpd
IC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElOID0gW1s6TGluZUJyZWFrID0gSW5zZXBh
cmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpd
IC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07CiskSlYgPSBbOkxpbmVCcmVh
ayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYgPSBbOkxpbmVCcmVhayA9
IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsKKyROUyA9IFtb
W1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICROU19TVUJdOwor
JE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxpbmVCcmVhayA9IE9wZW5f
UHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0g
JFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NV
Ql07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJID0gW1xVMDAwMUYxRTYt
XFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOworJFNH
ID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGluZUJyZWFrID0gU3BhY2U6
XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOworJFdKID0gWzpMaW5lQnJl
YWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3duOl07CiskWlcg
PSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7CiskRW1vamlWYXIgPSBc
dUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFbW9qaUZvclNl
cXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1c
VTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUw
MDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAw
MUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFG
NDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0
NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQt
XFUwMDAxRjZCNl07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisg
ICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4
NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDIt
XFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxV
MDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAw
MDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAx
RjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2
NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4
XSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZWxzZQorCisg
ICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0
OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3MEMgXFUwMDAxRjM4
NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFGM0NBIFxVMDAwMUY0NDIt
XFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxV
MDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAw
MDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAx
RjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2
QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMK
KworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNGQi1cVTAwMDFGM0ZGXTsKKyRkaWN0
aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsKKyRBTFBsdXMgPSBbJEFM
ICRBSSAkU0EgJFNHICRYWF07CiskQUxjbSA9ICRBTFBsdXMgJENNKjsKKyRCQWNtID0gJEJBICRD
TSo7CiskQkJjbSA9ICRCQiAkQ00qOworJEIyY20gPSAkQjIgJENNKjsKKyRDTGNtID0gJENMICRD
TSo7CiskQ1BjbSA9ICRDUCAkQ00qOworJEVYY20gPSAkRVggJENNKjsKKyRHTGNtID0gJEdMICRD
TSo7CiskSExjbSA9ICRITCAkQ00qOworJEhZY20gPSAkSFkgJENNKjsKKyRIMmNtID0gJEgyICRD
TSo7CiskSDNjbSA9ICRIMyAkQ00qOworJElEY20gPSAkSUQgJENNKjsKKyRJTmNtID0gJElOICRD
TSo7CiskSVNjbSA9ICRJUyAkQ00qOworJEpMY20gPSAkSkwgJENNKjsKKyRKVmNtID0gJEpWICRD
TSo7CiskSlRjbSA9ICRKVCAkQ00qOworJE5TY20gPSAkTlMgJENNKjsKKyROVWNtID0gJE5VICRD
TSo7CiskT1BjbSA9ICRPUCAkQ00qOworJFBPY20gPSAkUE8gJENNKjsKKyRQUmNtID0gJFBSICRD
TSo7CiskUVVjbSA9ICRRVSAkQ00qOworJFJJY20gPSAkUkkgJENNKjsKKyRTWWNtID0gJFNZICRD
TSo7CiskV0pjbSA9ICRXSiAkQ00qOworCishIWZvcndhcmQ7CiskQ0FOX0NNID0gW14kU1AgJEJL
ICRDUiAkTEYgJE5MICRaVyAkQ01dOworJENBTlRfQ00gPSBbJFNQICRCSyAkQ1IgJExGICROTCAk
WlcgJENNXTsKKyRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAkTkwgJFpXICRTUF07Cisk
QUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRXSiAkR0wgJE9QICRRVSAk
QkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOworJEFMX0ZPTExPVyA9IFskQUxfRk9MTE9XX05P
Q00gJEFMX0ZPTExPV19DTV07CiskTEI0QnJlYWtzID0gWyRCSyAkQ1IgJExGICROTF07CiskTEI0
Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOworJExCOEJyZWFrcyA9IFskTEI0QnJlYWtz
ICRaV107CiskTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAtIFskWlddXTsKKyRMQjE4
Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07CiskTEIxOEJyZWFrcyA9IFskTEI4
QnJlYWtzICRTUF07CiskTEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJyZWFrcyAtICRDQl07Cisk
QUxQbHVzICRDTSs7CiskQkEgJENNKzsKKyRCQiAkQ00rOworJEIyICRDTSs7CiskQ0wgJENNKzsK
KyRDUCAkQ00rOworJEVYICRDTSs7CiskR0wgJENNKzsKKyRITCAkQ00rOworJEhZICRDTSs7Cisk
SDIgJENNKzsKKyRIMyAkQ00rOworJElEICRDTSs7CiskSU4gJENNKzsKKyRJUyAkQ00rOworJEpM
ICRDTSs7CiskSlYgJENNKzsKKyRKVCAkQ00rOworJE5TICRDTSs7CiskTlUgJENNKzsKKyRPUCAk
Q00rOworJFBPICRDTSs7CiskUFIgJENNKzsKKyRRVSAkQ00rOworJFJJICRDTSs7CiskU1kgJENN
KzsKKyRXSiAkQ00rOworJENSICRMRiB7MTAwfTsKKyRMQjROb25CcmVha3M/ICRMQjRCcmVha3Mg
ezEwMH07CiskQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsKKyRDTSsgJExCNEJyZWFrcyB7
MTAwfTsKKyRMQjROb25CcmVha3MgWyRTUCAkWlddOworJENBTl9DTSAkQ00qIFskU1AgJFpXXTsK
KyRDTSsgWyRTUCAkWlddOworJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM/ICRa
V0ogJEVtb2ppRm9yU2VxczsKKyRDQU5fQ00gJENNKzsKKyRDTSs7CiskQ0FOX0NNICRDTSogJFdK
Y207CiskTEI4Tm9uQnJlYWtzICRXSmNtOworJENNKyAkV0pjbTsKKyRXSmNtICRDQU5UX0NNOwor
JFdKY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTlRfQ007
CitbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENNKiAkR0xjbTsKKyRDTSsgR0xj
bTsKKyRMQjhOb25CcmVha3MgJENMOworJENBTl9DTSAkQ00qICRDTDsKKyRDTSsgJENMOworJExC
OE5vbkJyZWFrcyAkQ1A7CiskQ0FOX0NNICRDTSogJENQOworJENNKyAkQ1A7CiskTEI4Tm9uQnJl
YWtzICRFWDsKKyRDQU5fQ00gJENNKiAkRVg7CiskQ00rICRFWDsKKyRMQjhOb25CcmVha3MgJElT
OworJENBTl9DTSAkQ00qICRJUzsKKyRDTSsgJElTOworJExCOE5vbkJyZWFrcyAkU1k7CiskQ0FO
X0NNICRDTSogJFNZOworJENNKyAkU1k7CiskT1BjbSAkU1AqICRDQU5fQ00gJENNKjsKKyRPUGNt
ICRTUCogJENBTlRfQ007CiskT1BjbSAkU1ArICRDTSsgJEFMX0ZPTExPVz87CiskUVVjbSAkU1Aq
ICRPUGNtOworKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207CiskQjJjbSAkU1AqICRCMmNtOwor
JExCMThOb25CcmVha3MgJENNKiAkUVVjbTsKKyRDTSsgJFFVY207CiskUVVjbSAuPzsKKyRRVWNt
ICRMQjE4Tm9uQnJlYWtzICRDTSo7CiskTEIyME5vbkJyZWFrcyAkQ00qICgkQkFjbSB8ICRIWWNt
IHwgJE5TY20pOyAKKyRCQmNtIFteJENCXTsKKyRCQmNtICRMQjIwTm9uQnJlYWtzICRDTSo7Cisk
SExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsKKyRTWWNtICRITGNtOworKCRBTGNtIHwgJEhM
Y20pICRJTmNtOworJENNKyAkSU5jbTsKKyRFWGNtICRJTmNtOworJElEY20gJElOY207CiskSU5j
bSAkSU5jbTsKKyROVWNtICRJTmNtOworJElEY20gJFBPY207CiskQUxjbSAkTlVjbTsKKyRITGNt
ICROVWNtOworJENNKyAkTlVjbTsKKyROVWNtICRBTGNtOworJE5VY20gJEhMY207CiskUFJjbSAk
SURjbTsKKyRQUmNtICgkQUxjbSB8ICRITGNtKTsKKyRQT2NtICgkQUxjbSB8ICRITGNtKTsKKygk
UFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5VY20gfCAkU1ljbSB8ICRJ
U2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/OworJEpMY20gKCRKTGNtIHwg
JEpWY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkSlZjbSB8ICRIMmNtKSAoJEpWY20gfCAkSlRjbSk7
CisoJEpUY20gfCAkSDNjbSkgJEpUY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20g
fCAkSDNjbSkgJElOY207CisoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkg
JFBPY207CiskUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSk7Ciso
JEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOworJENNKyAoJEFMY20gfCAkSExjbSk7Cisk
SVNjbSAoJEFMY20gfCAkSExjbSk7CisoJEFMY20gfCAkSExjbSB8ICROVWNtKSAkT1BjbTsKKyRD
TSsgJE9QY207CiskQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsKKworI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJY20gJFJJY207CisKKyNlbmRpZgorCiskRW1vamlG
b3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsKKworISFyZXZlcnNlOworJENNKyAkQUxQbHVz
OworJENNKyAkQkE7CiskQ00rICRCQjsKKyRDTSsgJEIyOworJENNKyAkQ0w7CiskQ00rICRDUDsK
KyRDTSsgJEVYOworJENNKyAkR0w7CiskQ00rICRITDsKKyRDTSsgJEhZOworJENNKyAkSDI7Cisk
Q00rICRIMzsKKyRDTSsgJElEOworJENNKyAkSU47CiskQ00rICRJUzsKKyRDTSsgJEpMOworJENN
KyAkSlY7CiskQ00rICRKVDsKKyRDTSsgJE5TOworJENNKyAkTlU7CiskQ00rICRPUDsKKyRDTSsg
JFBPOworJENNKyAkUFI7CiskQ00rICRRVTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAorCisgICAgJENNKyAkUkk7CisKKyNlbmRpZgorCiskQ00rICRTWTsKKyRDTSsgJFdKOworJENN
KzsKKyRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRaVyB7ZW9mfV0gfCAkU1Ar
ICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFskQUwge2VvZn1dKSk7Citb
JFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9XTsKKyRMQjRCcmVha3Mg
WyRMQjROb25CcmVha3MtJENNXTsKKyRMQjRCcmVha3MgJENNKyAkQ0FOX0NNOworJExGICRDUjsK
K1skU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOworWyRTUCAkWlddICRDTSsgJENBTl9DTTsK
KyRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/ICRFbW9qaUZvclNlcXM7
CiskQ00rICRDQU5fQ007CiskQ00qICRXSiAkQ00qICRDQU5fQ007CiskQ00qICRXSiBbJExCOE5v
bkJyZWFrcy0kQ01dOworJENBTlRfQ00gJENNKiAkV0o7CiskQ00qICRDQU5fQ00gJENNKiAkV0o7
CiskQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRCQSAkSFldXTsKKyRDQU5U
X0NNICRDTSogJEdMOworJENNKiAkQ0FOX0NNICRDTSogJEdMOworJENMICRDTSsgJENBTl9DTTsK
KyRDUCAkQ00rICRDQU5fQ007CiskRVggJENNKyAkQ0FOX0NNOworJElTICRDTSsgJENBTl9DTTsK
KyRTWSAkQ00rICRDQU5fQ007CiskQ0wgWyRMQjhOb25CcmVha3MtJENNXTsKKyRDUCBbJExCOE5v
bkJyZWFrcy0kQ01dOworJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskSVMgWyRMQjhOb25CcmVh
a3MtJENNXTsKKyRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOworWyRDTCAkQ1AgJEVYICRJUyAkU1ld
ICRDTSsgJFNQKyAkQ00qICRPUDsgCiskQ00qICRDQU5fQ00gJFNQKiAkQ00qICRPUDsKKyRDQU5U
X0NNICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XPyAkQ00rICRTUCAkU1AqICRDTSogJE9QOwor
JEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRDTSogJEFMX0ZPTExPV19DTSAk
Q00rICRTUCsgJENNKiAkT1A7CiskU1kgJENNICRTUCsgJE9QOworJENNKiAkT1AgJFNQKiAkQ00q
ICRRVTsKKyRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsKKyRDTSogJEIyICRTUCogJENN
KiAkQjI7CiskQ00qICRRVSAkQ00qICRDQU5fQ007CiskQ00qICRRVSAkTEIxOE5vbkJyZWFrczsK
KyRDTSogJENBTl9DTSAkQ00qICRRVTsKKyRDQU5UX0NNICRDTSogJFFVOworJENNKiAoJEJBIHwg
JEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOworJENNKiBbJExCMjBOb25CcmVh
a3MtJENNXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICgkSFkgfCAk
QkEpICRDTSogJEhMOworJENNKiAkSEwgJENNKiAkU1k7CiskQ00qICRJTiAkQ00qICgkQUxQbHVz
IHwgJEhMKTsKKyRDTSogJElOICRDTSogJEVYOworJENNKiAkSU4gJENNKiAkSUQ7CiskQ00qICRJ
TiAkQ00qICRJTjsKKyRDTSogJElOICRDTSogJE5VOworJENNKiAkUE8gJENNKiAkSUQ7CiskQ00q
ICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJE5V
OworJENNKiAkSUQgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQUjsKKyRD
TSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOworKCRDTSogKCRQUiB8ICRQTykpPyAoJENNKiAo
JENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENNKiAkTlUgKCRDTSogKCRP
UCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OworJENNKiAoJEgzIHwgJEgyIHwgJEpWIHwg
JEpMKSAkQ00qICRKTDsKKyRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgyIHwgJEpWKTsKKyRDTSog
JEpUICRDTSogKCRIMyB8ICRKVCk7CiskQ00qICRJTiAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAk
SlYgfCAkSkwpOworJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsK
KyRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAkUFI7CiskQ00qICgkQUxQ
bHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRD
TSogJElTOworJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSk7CiskQ00qICgkQUxQ
bHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAorCisgICAgJENNKiAkUkkgJENNKiAkUkk7CisKKyNlbmRpZgorCiskRW1vamlNb2RzICRFbW9q
aVZhcj8gJEVtb2ppRm9yTW9kczsKKworISFzYWZlX2ZvcndhcmQ7CitbJENNICRPUCAkUVUgJENM
ICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wg
JENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07CiskZGljdGlvbmFyeSAkZGljdGlvbmFy
eTsKKyAgICAKKyEhc2FmZV9yZXZlcnNlOworJENNKyBbXiRDTSAkQksgJENSICRMRiAkTkwgJFpX
ICRTUF07CiskQ00rICRTUCAvIC47CiskU1ArICRDTSogJE9QOworJFNQKyAkQ00qICRRVTsKKyRT
UCsgJENNKiAoJENMIHwgJENQKTsKKyRTUCsgJENNKiAkQjI7CiskQ00qICgkSFkgfCAkQkEpICRD
TSogJEhMOworKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsKKygkQ0wgfCAkQ1ApICRDTSog
KCROVSB8ICRJUyB8ICRTWSk7CiskZGljdGlvbmFyeSAkZGljdGlvbmFyeTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xv
Z3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclByb2xvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjNmNjZmNDJhZjEzOGVkNThmZjQyMWY2NzY4
ZDhmZDU4MDEyODJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0CkBAIC0wLDAgKzEsMzggQEAK
KyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAy
MDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMp
IDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyEhY2hhaW47CishIUxCQ01Ob0NoYWluOworISFsb29rQWhlYWRIYXJk
QnJlYWs7CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkQ0ogPSBbOkxp
bmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOl07CisKKyNlbHNlCisKKyAgICAk
Q0ogPSBbXHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5XHUzMDYzXHUzMDgzXHUzMDg1XHUz
MDg3XHUzMDhFXHUzMDk1XHUzMDk2XHUzMEExXHUzMEEzXHUzMEE1XHUzMEE3XHUzMEE5XHUzMEMz
XHUzMEUzXHUzMEU1XHUzMEU3XHUzMEVFXHUzMEY1XHUzMEY2XHUzMEZDXHUzMUYwXHUzMUYxXHUz
MUYyXHUzMUYzXHUzMUY0XHUzMUY1XHUzMUY2XHUzMUY3XHUzMUY4XHUzMUY5XHUzMUZBXHUzMUZC
XHUzMUZDXHUzMUZEXHUzMUZFXHUzMUZGXHVGRjY3XHVGRjY4XHVGRjY5XHVGRjZBXHVGRjZCXHVG
RjZDXHVGRjZEXHVGRjZFXHVGRjZGXHVGRjcwXTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50
eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA3YzBjYTVhYTdiMmZmYmY4YjJjZDkwOTJhYTVmM2Ux
ZGJhNDA5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChD
KSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3
LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7CiskSU5f
U1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAx
Q1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAk
QkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGI4ZjBmZjUxODU2ZDk3YzljMTRlMTIxNjM3MzRm
ZGZjOTdjOWNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKQEAgLTAsMCArMSwzNSBA
QAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9IFtc
dTAwMjFcdTAwM0ZcdUZGMDFcdUZGMUZdOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIw
MjVcdTIwMjZdOworJElTX1NVQiA9IFtcdTAwM0FcdTAwM0JdOworJE5TX1NVQiA9IFtcdTIwM0Nc
dTIwNDdcdTIwNDhcdTIwNDlcdTMwMDVcdTMwMUNcdTMwM0JcdTMwOURcdTMwOUVcdTMwQTBcdTMw
RkJcdTMwRkRcdTMwRkVcdUZGMUFcdUZGMUJcdUZGNjVdOworJFBPX1NVQiA9IFtcdTAwMjVcdTAw
QTJcdTAwQjBcdTIwMzBcdTIwMzJcdTIwMzNcdTIxMDNcdUZGMDVcdUZGRTBdOworJFBSX1NVQiA9
IFtcdTAwMjRcdTAwQTNcdTAwQTVcdTIwQUNcdTIxMTZcdUZGMDRcdUZGRTFcdUZGRTVdOworJElE
X0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19T
VUIgJFBSX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjYmJjOGE4ODE1ZTRkMGRjZmI5NjBjMTEyZjYw
YTgzOGQzYTQyODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApAQCAtMCwwICsx
LDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdo
dCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJp
Z2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURf
U1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gJyc7CiskTlNf
U1VCID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBGRFx1MzBGRV07CiskUE9fU1VCID0g
Jyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJdOworJE5T
X0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY3NDI4NzlkZDFmODJlYjYyZDI4ZDhhYTdiY2RkZjQ0NmQwNzM4N2YKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vbkNKSy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChr
bm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwg
SW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9
ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NV
QiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElE
X0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0IGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwN2MwY2E1YWE3YjJmZmJmOGIyY2Q5MDkyYWE1ZjNl
MWRiYTQwOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKQEAgLTAsMCArMSwzNSBA
QAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcn
OworJElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9
IFtcdTMwMUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9
IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmNmNmEwODI2YWRhNGVk
Y2ZjZjM5NDNiNjg5ZjhjMDZlMGJkNzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksu
dHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9y
ZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9T
VUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyRO
U19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENK
XTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNzQyODc5ZGQxZjgyZWI2MmQyOGQ4YWE3YmNkZGY0NDZkMDczODdmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5
OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAw
OSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9T
VUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQ
Ul9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzQyODc5ZGQx
ZjgyZWI2MmQyOGQ4YWE3YmNkZGY0NDZkMDczODdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxA
a2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsK
KyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAn
JzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQg
PSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVy
YXRvci5jcHAKaW5kZXggYjBkYmU1OTdmMzkxZjEzMmMyOGU2NDJmN2Q5NzViMTEwZjc1ZjgyNi4u
NTI3MGEyNTkxYWM5YmM4MDA1OTNjNTJkMWI1Y2JhNzU3NDc0YTY1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKQEAgLTMxLDkgKzMxLDYgQEAKICNpbmNsdWRl
IDx1bmljb2RlL3VicmsuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAK
LS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0dGVyIG5hbWUKLSNkZWZpbmUgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkKLQogbmFtZXNwYWNlIFdURiB7CiAK
IC8vIEl0ZXJhdG9yIGluaXRpYWxpemF0aW9uCkBAIC02MSw2ICs1OCwxMiBAQCBzdGF0aWMgVUJy
ZWFrSXRlcmF0b3IqIGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhjb25zdCBjaGFyKiBicmVh
a1J1bGVzKQogCiAjZW5kaWYKIAorI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1Mp
CitVQnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNl
dCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgogCiAvLyBJdGVyYXRvciB0ZXh0
IHNldHRpbmcKIApAQCAtMTY0LDE0MyArMTY3LDI3IEBAIFVCcmVha0l0ZXJhdG9yKiBzZW50ZW5j
ZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiAgICAgcmV0dXJuIHNldFRleHRGb3JJ
dGVyYXRvcigqc3RhdGljU2VudGVuY2VCcmVha0l0ZXJhdG9yLCBzdHJpbmcpOwogfQogCisjaWYg
IVBMQVRGT1JNKElPUykKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogY3JlYXRlQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvcldpdGhGYWxsYmFjaygpCit7CisgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gY3Jl
YXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQpKQor
ICAgICAgICByZXR1cm4gaXRlcmF0b3I7CisgICAgcmV0dXJuIGluaXRpYWxpemVJdGVyYXRvcldp
dGhSdWxlcyhjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMpOworfQorI2VuZGlmCisKIFVCcmVh
a0l0ZXJhdG9yKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogewog
I2lmICFQTEFURk9STShJT1MpCi0gICAgLy8gVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFy
YWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3Ci0gICAgLy8gPGh0dHA6Ly9zb3Vy
Y2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNl
L2RhdGEvYnJraXRyLz4uCi0gICAgLy8gVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9y
aWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBiZWxvdzoKLSAgICAvLyAqIFJlcGxhY2VkICdbXHB7R3Jh
cGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0Nh
dGVnb3J5ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVy
OwotICAgIC8vICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3Zp
bmcgYWZ0ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOwotICAgIC8vICogQWRkZWQg
cnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWdu
cyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7Ci0gICAg
Ly8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3Jl
IEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgotICAgIC8vICogQWRk
ZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBzeW1ib2xzLgotICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBrUnVsZXMgPQotICAgICAgICAiJENSICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBDUn1dOyIKLSAgICAgICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gTEZ9XTsiCi0gICAgICAgICIkQ29udHJvbCA9IFtcXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsiCi0gICAgICAgICIkVm9pY2VNYXJrcyA9IFtcXHVGRjlF
XFx1RkY5Rl07IiAvLyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcwot
ICAgICAgICAiJEV4dGVuZCAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9
ICRWb2ljZU1hcmtzIC0gW1xcdTBFMzAgXFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVCMl1d
OyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayA9IFtbXFxwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFj
aW5nIE1hcmt9XSAtICRFeHRlbmRdOyIKLSAgICAgICAgIiRMICAgICAgID0gW1xccHtHcmFwaGVt
ZV9DbHVzdGVyX0JyZWFrID0gTH1dOyIKLSAgICAgICAgIiRWICAgICAgID0gW1xccHtHcmFwaGVt
ZV9DbHVzdGVyX0JyZWFrID0gVn1dOyIKLSAgICAgICAgIiRUICAgICAgID0gW1xccHtHcmFwaGVt
ZV9DbHVzdGVyX0JyZWFrID0gVH1dOyIKLSAgICAgICAgIiRMViAgICAgID0gW1xccHtHcmFwaGVt
ZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsiCi0gICAgICAgICIkTFZUICAgICA9IFtcXHB7R3JhcGhl
bWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1dOyIKLSAgICAgICAgIiRIaW4wICAgID0gW1xcdTA5MDUt
XFx1MDkzOV07IiAvLyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEhpblYg
ICAgPSBcXHUwOTREOyIgLy8gRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQotICAgICAgICAiJEhpbjEg
ICAgPSBbXFx1MDkxNS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQot
ICAgICAgICAiJEJlbjAgICAgPSBbXFx1MDk4NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0dGVy
IEEsLi4uLEhhCi0gICAgICAgICIkQmVuViAgICA9IFxcdTA5Q0Q7IiAvLyBCZW5nYWxpIFNpZ24g
VmlyYW1hCi0gICAgICAgICIkQmVuMSAgICA9IFtcXHUwOTk1LVxcdTA5QjldOyIgLy8gQmVuZ2Fs
aSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkUGFuMCAgICA9IFtcXHUwQTA1LVxcdTBBMzld
OyIgLy8gR3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUGFuViAgICA9IFxcdTBB
NEQ7IiAvLyBHdXJtdWtoaSBTaWduIFZpcmFtYQotICAgICAgICAiJFBhbjEgICAgPSBbXFx1MEEx
NS1cXHUwQTM5XTsiIC8vIEd1cm11a2hpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRHdWow
ICAgID0gW1xcdTBBODUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKLSAg
ICAgICAgIiRHdWpWICAgID0gXFx1MEFDRDsiIC8vIEd1amFyYXRpIFNpZ24gVmlyYW1hCi0gICAg
ICAgICIkR3VqMSAgICA9IFtcXHUwQTk1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEth
LC4uLixIYQotICAgICAgICAiJE9yaTAgICAgPSBbXFx1MEIwNS1cXHUwQjM5XTsiIC8vIE9yaXlh
IExldHRlciBBLC4uLixIYQotICAgICAgICAiJE9yaVYgICAgPSBcXHUwQjREOyIgLy8gT3JpeWEg
U2lnbiBWaXJhbWEKLSAgICAgICAgIiRPcmkxICAgID0gW1xcdTBCMTUtXFx1MEIzOV07IiAvLyBP
cml5YSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkVGVsMCAgICA9IFtcXHUwQzA1LVxcdTBD
MzldOyIgLy8gVGVsdWd1IExldHRlciBBLC4uLixIYQotICAgICAgICAiJFRlbFYgICAgPSBcXHUw
QzREOyIgLy8gVGVsdWd1IFNpZ24gVmlyYW1hCi0gICAgICAgICIkVGVsMSAgICA9IFtcXHUwQzE0
LVxcdTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRLYW4wICAg
ID0gW1xcdTBDODUtXFx1MENCOV07IiAvLyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAgICAg
ICAiJEthblYgICAgPSBcXHUwQ0NEOyIgLy8gS2FubmFkYSBTaWduIFZpcmFtYQotICAgICAgICAi
JEthbjEgICAgPSBbXFx1MEM5NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhh
Ci0gICAgICAgICIkTWFsMCAgICA9IFtcXHUwRDA1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExl
dHRlciBBLC4uLixIYQotICAgICAgICAiJE1hbFYgICAgPSBcXHUwRDREOyIgLy8gTWFsYXlhbGFt
IFNpZ24gVmlyYW1hCi0gICAgICAgICIkTWFsMSAgICA9IFtcXHUwRDE1LVxcdTBEMzldOyIgLy8g
TWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAiJFJJICAgICAgPSBbXFxVMDAwMUYx
RTYtXFxVMDAwMUYxRkZdOyIgLy8gRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycwotICAgICAgICAi
JFpXSiAgICAgPSBcXHUyMDBEOyIgLy8gWmVybyB3aWR0aCBqb2luZXIKLSAgICAgICAgIiRFbW9q
aVZhciA9IFtcXHVGRTBGXTsiIC8vIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgotI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUy
NjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAw
MDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxc
VTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcx
IFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFG
NDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAw
MDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxc
VTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcdTI2OTUtXFx1MjY5NiBcXHUyNzA4
IFxcVTAwMDFGMzNFIFxcVTAwMDFGMzczIFxcVTAwMDFGMzkzIFxcVTAwMDFGM0E0IFxcVTAwMDFG
M0E4IFxcVTAwMDFGM0VCIFxcVTAwMDFGM0VEIFxcVTAwMDFGNEJCLVxcVTAwMDFGNEJDIFxcVTAw
MDFGNTI3IFxcVTAwMDFGNTJDIFxcVTAwMDFGNjgwIFxcVTAwMDFGNjkyIFxcVTAwMDFGOTI2IFxc
VTAwMDFGOTM3LVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXTsiIC8vIEVtb2pp
IHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9k
cyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFG
M0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAw
MDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDc4IFxc
VTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3
IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFG
NTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAw
MDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4IFxc
VTAwMDFGM0MyIFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NDIFxcVTAwMDFGNTc0IFxcVTAwMDFGNTdB
IFxcVTAwMDFGNkNDIFxcVTAwMDFGOTE5LVxcVTAwMDFGOTFFIFxcVTAwMDFGOTI2IFxcVTAwMDFG
OTMwIFxcVTAwMDFGOTMzLVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXSA7IiAv
LyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZWxzZQotICAgICAgICAi
JEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFG
NDhCXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICAg
ICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBc
XFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0
Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAx
RjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUw
MDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBc
XFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZB
MyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0
YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAgICAgICIkRW1vamlNb2RzID0g
W1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiIC8vIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotICAg
ICAgICAiISFjaGFpbjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIh
IVJJTm9DaGFpbjsiCi0jZW5kaWYKLSAgICAgICAgIiEhZm9yd2FyZDsiCi0gICAgICAgICIkQ1Ig
JExGOyIKLSAgICAgICAgIiRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7IgotICAgICAgICAiKCRM
ViB8ICRWKSAoJFYgfCAkVCk7IgotICAgICAgICAiKCRMVlQgfCAkVCkgJFQ7IgotI2lmIEFERElU
SU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsiCi0g
ICAgICAgICIkUkkgJFJJICRFeHRlbmQqOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0g
JEV4dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsiCi0j
ZWxzZQotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlte
JENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkk7
IgotICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4wICRIaW5WICRIaW4x
OyIgLy8gRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkQmVuMCAkQmVuViAk
QmVuMTsiIC8vIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFBhbjAgJFBhblYg
JFBhbjE7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkR3VqMCAkR3Vq
ViAkR3VqMTsiIC8vIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRPcmkwICRP
cmlWICRPcmkxOyIgLy8gT3JpeWEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFRlbDAgJFRl
bFYgJFRlbDE7IiAvLyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEthbjAgJEth
blYgJEthbjE7IiAvLyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRNYWwwICRN
YWxWICRNYWwxOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRaV0og
JEVtb2ppRm9yU2VxczsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAg
ICAgICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyIgLy8gRG9uJ3QgYnJl
YWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0
b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotICAgICAgICAiISFyZXZlcnNlOyIKLSAgICAg
ICAgIiRMRiAkQ1I7IgotICAgICAgICAiKCRMIHwgJFYgfCAkTFYgfCAkTFZUKSAkTDsiCi0gICAg
ICAgICIoJFYgfCAkVCkgKCRMViB8ICRWKTsiCi0gICAgICAgICIkVCAoJExWVCB8ICRUKTsiCi0j
aWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJIC8g
JEV4dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAg
IiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFy
ayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSNlbHNlCi0gICAgICAgICIkRXh0ZW5kICAgICAgW14k
Q29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1Ig
JExGXTsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIK
LSNlbmRpZgotICAgICAgICAiJEhpbjEgJEhpblYgJEhpbjA7IiAvLyBEZXZhbmFnYXJpIFZpcmFt
YSAoYmFja3dhcmQpCi0gICAgICAgICIkQmVuMSAkQmVuViAkQmVuMDsiIC8vIEJlbmdhbGkgVmly
YW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRQYW4xICRQYW5WICRQYW4wOyIgLy8gR3VybXVraGkg
VmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRHdWoxICRHdWpWICRHdWowOyIgLy8gR3VqYXJh
dGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRPcmkxICRPcmlWICRPcmkwOyIgLy8gR3Vq
YXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRUZWwxICRUZWxWICRUZWwwOyIgLy8g
VGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkS2FuMSAkS2FuViAkS2FuMDsiIC8v
IEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRNYWwxICRNYWxWICRNYWwwOyIg
Ly8gTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkRW1vamlGb3JTZXFzICRa
V0o7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1v
amlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4g
cmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0
enBhdHJpY2sgbW9kaWZpZXIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAg
IiEhc2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIlskRW1vamlW
YXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7
IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFy
ICRFbW9qaU1vZHNdKzsiOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRv
cio+IHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBjcmVhdGVDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yV2l0aEZhbGxiYWNrKCk7CiAjZWxzZQotICAgICAgICAiWyRFbW9qaVZhciAkRW1vamlN
b2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlWYXIg
JEVtb2ppTW9kc10rOyIKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiEhc2Fm
ZV9mb3J3YXJkOyI7Ci0jZW5kaWYKLSAgICBzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1
cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoa1J1bGVz
KTsKLSNlbHNlIC8vIFBMQVRGT1JNKElPUykKICAgICAvLyBVc2UgdGhlIHNwZWNpYWwgVGhhaSBj
aGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgZm9yIGFsbCBsb2NhbGVzCi0gICAgc3RhdGljIFVCcmVh
a0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJh
dG9yKFVCUktfQ0hBUkFDVEVSLCAidGgiKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJy
ZWFrSXRlcmF0b3IqPiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0
ZXJhdG9yKFVCUktfQ0hBUkFDVEVSLCAidGgiKTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQog
Ci0gICAgaWYgKCFzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKQorICAgIGlmICghc3RhdGlj
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvci5nZXQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
LSAgICByZXR1cm4gc2V0VGV4dEZvckl0ZXJhdG9yKCpzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yLCBzdHJpbmcpOworICAgIHJldHVybiBzZXRUZXh0Rm9ySXRlcmF0b3IoKihzdGF0aWNDdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yLmdldCgpKSwgc3RyaW5nKTsKIH0KIAogVUJyZWFrSXRlcmF0b3Iq
IGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZywgY29uc3QgQXRvbWlj
U3RyaW5nJiBsb2NhbGUsIGNvbnN0IFVDaGFyKiBwcmlvckNvbnRleHQsIHVuc2lnbmVkIHByaW9y
Q29udGV4dExlbmd0aCwgTGluZUJyZWFrSXRlcmF0b3JNb2RlIG1vZGUsIGJvb2wgaXNDSkspCkBA
IC0zMTksNDQyICsyMDYsMjAgQEAgdm9pZCByZWxlYXNlTGluZUJyZWFrSXRlcmF0b3IoVUJyZWFr
SXRlcmF0b3IqIGl0ZXJhdG9yKQogICAgIExpbmVCcmVha0l0ZXJhdG9yUG9vbDo6c2hhcmVkUG9v
bCgpLnB1dChpdGVyYXRvcik7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFByb2xvZ3Vl
ID0KLSAgICAiISFjaGFpbjsiCi0gICAgIiEhTEJDTU5vQ2hhaW47IgotICAgICIhIWxvb2tBaGVh
ZEhhcmRCcmVhazsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0JlZm9y
ZSA9Ci0gICAgLy8gZXhwbGljaXRseSBlbnVtZXJhdGUgJENKIHNpbmNlIElDVSB2ZXJzaW9ucyBw
cmlvciB0byA0OSBkb24ndCBzdXBwb3J0IDpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2Vf
U3RhcnRlcjoKLSAgICAiJENKID0gWyIKLSNpZiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0g
NCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpCi0gICAgIjpMaW5lQnJlYWs9Q29u
ZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoiCi0jZWxzZQotICAgICJcXHUzMDQxXFx1MzA0M1xc
dTMwNDVcXHUzMDQ3XFx1MzA0OVxcdTMwNjNcXHUzMDgzXFx1MzA4NVxcdTMwODdcXHUzMDhFXFx1
MzA5NVxcdTMwOTZcXHUzMEExXFx1MzBBM1xcdTMwQTVcXHUzMEE3IgotICAgICJcXHUzMEE5XFx1
MzBDM1xcdTMwRTNcXHUzMEU1XFx1MzBFN1xcdTMwRUVcXHUzMEY1XFx1MzBGNlxcdTMwRkMiCi0g
ICAgIlxcdTMxRjBcXHUzMUYxXFx1MzFGMlxcdTMxRjNcXHUzMUY0XFx1MzFGNVxcdTMxRjZcXHUz
MUY3XFx1MzFGOFxcdTMxRjlcXHUzMUZBXFx1MzFGQlxcdTMxRkNcXHUzMUZEXFx1MzFGRVxcdTMx
RkYiCi0gICAgIlxcdUZGNjdcXHVGRjY4XFx1RkY2OVxcdUZGNkFcXHVGRjZCXFx1RkY2Q1xcdUZG
NkRcXHVGRjZFXFx1RkY2RlxcdUZGNzAiCi0jZW5kaWYKLSAgICAiXTsiOwotCi1zdGF0aWMgY29u
c3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLID0KLSAgICAiJEJBX1NVQiA9
IFtcXHUyMDEwXFx1MjAxM107IgotICAgICIkRVhfU1VCID0gW1xcdTAwMjFcXHUwMDNGXFx1RkYw
MVxcdUZGMUZdOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1
XFx1MjAyNl07IgotICAgICIkSVNfU1VCID0gW1xcdTAwM0FcXHUwMDNCXTsiCi0gICAgIiROU19T
VUIgPSBbXFx1MjAzQ1xcdTIwNDdcXHUyMDQ4XFx1MjA0OVxcdTMwMDVcXHUzMDFDXFx1MzAzQlxc
dTMwOURcXHUzMDlFXFx1MzBBMFxcdTMwRkJcXHUzMEZEXFx1MzBGRVxcdUZGMUFcXHVGRjFCXFx1
RkY2NV07IgotICAgICIkUE9fU1VCID0gW1xcdTAwMjVcXHUwMEEyXFx1MDBCMFxcdTIwMzBcXHUy
MDMyXFx1MjAzM1xcdTIxMDNcXHVGRjA1XFx1RkZFMF07IgotICAgICIkUFJfU1VCID0gW1xcdTAw
MjRcXHUwMEEzXFx1MDBBNVxcdTIwQUNcXHUyMTE2XFx1RkYwNFxcdUZGRTFcXHVGRkU1XTsiCi0g
ICAgIiRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVYX1NVQiAkSU5fU1VCICRJU19TVUIgJE5TX1NV
QiAkUE9fU1VCICRQUl9TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25z
dCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSksgPQotICAgICIkQkFfU1VC
ID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIk
SU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiRO
U19TVUIgPSBbXFx1MzAwNVxcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwRkRcXHUzMEZFXTsiCi0g
ICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBb
JENKICRJTl9TVUIgJE5TX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNv
bnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksgPQotICAgICIkQkFfU1VC
ID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIg
PSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiRO
U19TVUIgPSBbXFx1MzAxQ1xcdTMwQTBdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBS
X1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsiCi0gICAg
IiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1
c3RvbU5vcm1hbE5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAn
JzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19T
VUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAg
IiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKXTsiCi0gICAgIiROU19BREQgPSAn
JzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENK
SyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9T
VUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAg
IiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsi
Ci0gICAgIiRJRF9BREQgPSAnJzsiCi0gICAgIiROU19BREQgPSBbJENKXTsiOwotCi0jZGVmaW5l
IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSksgICAgICB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tU3RyaWN0Q0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Q0pL
ICAgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pLCi0jZGVmaW5lIHVheDE0QXNz
aWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3Ry
aWN0Tm9uQ0pLCi0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIgPQot
ICAgICIkQUkgPSBbOkxpbmVCcmVhayA9IEFtYmlndW91czpdOyIKLSAgICAiJEFMID0gWzpMaW5l
QnJlYWsgPSBBbHBoYWJldGljOl07IgotICAgICIkQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19B
ZnRlcjpdIC0gJEJBX1NVQl07IgotICAgICIkQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9y
ZTpdOyIKLSAgICAiJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsiCi0gICAg
IiRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOyIKLSAgICAiJENCID0gWzpMaW5lQnJl
YWsgPSBDb250aW5nZW50X0JyZWFrOl07IgotICAgICIkQ0wgPSBbOkxpbmVCcmVhayA9IENsb3Nl
X1B1bmN0dWF0aW9uOl07IgotICAgICIkQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJr
Ol07IgotICAgICIkQ1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07IgotICAg
ICIkQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdlX1JldHVybjpdOyIKLSAgICAiJEVYID0gW1s6
TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9TVUJdOyIKLSAgICAiJEdMID0gWzpMaW5l
QnJlYWsgPSBHbHVlOl07IgotI2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAo
VV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAgICAiJEhMID0gWzpMaW5lQnJlYWsgPSBI
ZWJyZXdfTGV0dGVyOl07IgotI2Vsc2UKLSAgICAiJEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRl
cjpdXTsiCi0jZW5kaWYKLSAgICAiJEhZID0gWzpMaW5lQnJlYWsgPSBIeXBoZW46XTsiCi0gICAg
IiRIMiA9IFs6TGluZUJyZWFrID0gSDI6XTsiCi0gICAgIiRIMyA9IFs6TGluZUJyZWFrID0gSDM6
XTsiCi0gICAgIiRJRCA9IFtbW1s6TGluZUJyZWFrID0gSWRlb2dyYXBoaWM6XSAtICRDSl0gJElE
X0FERF0gLSAkSURfU1VCXTsiCi0gICAgIiRJTiA9IFtbOkxpbmVCcmVhayA9IEluc2VwYXJhYmxl
Ol0gLSAkSU5fU1VCXTsiCi0gICAgIiRJUyA9IFtbOkxpbmVCcmVhayA9IEluZml4X051bWVyaWM6
XSAtICRJU19TVUJdOyIKLSAgICAiJEpMID0gWzpMaW5lQnJlYWsgPSBKTDpdOyIKLSAgICAiJEpW
ID0gWzpMaW5lQnJlYWsgPSBKVjpdOyIKLSAgICAiJEpUID0gWzpMaW5lQnJlYWsgPSBKVDpdOyIK
LSAgICAiJExGID0gWzpMaW5lQnJlYWsgPSBMaW5lX0ZlZWQ6XTsiCi0gICAgIiROTCA9IFs6TGlu
ZUJyZWFrID0gTmV4dF9MaW5lOl07IgotICAgICIkTlMgPSBbW1tbOkxpbmVCcmVhayA9IE5vbnN0
YXJ0ZXI6XSAtICRDSl0gJE5TX0FERF0gLSAkTlNfU1VCXTsiCi0gICAgIiROVSA9IFs6TGluZUJy
ZWFrID0gTnVtZXJpYzpdOyIKLSAgICAiJE9QID0gWzpMaW5lQnJlYWsgPSBPcGVuX1B1bmN0dWF0
aW9uOl07IgotICAgICIkUE8gPSBbWzpMaW5lQnJlYWsgPSBQb3N0Zml4X051bWVyaWM6XSAtICRQ
T19TVUJdOyIKLSAgICAiJFBSID0gW1s6TGluZUJyZWFrID0gUHJlZml4X051bWVyaWM6XSAtICRQ
Ul9TVUJdOyIKLSAgICAiJFFVID0gWzpMaW5lQnJlYWsgPSBRdW90YXRpb246XTsiCi0gICAgIiRS
SSA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IgotICAgICIkU0EgPSBbOkxpbmVCcmVhayA9
IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6
XTsiCi0gICAgIiRTUCA9IFs6TGluZUJyZWFrID0gU3BhY2U6XTsiCi0gICAgIiRTWSA9IFs6TGlu
ZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOyIKLSAgICAiJFdKID0gWzpMaW5lQnJlYWsgPSBXb3Jk
X0pvaW5lcjpdOyIKLSAgICAiJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3duOl07IgotICAgICIk
WlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsiCi0gICAgIiRaV0ogPSBcXHUyMDBEOyIKLSAg
ICAiJEVtb2ppVmFyID0gXFx1RkUwRjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0g
ICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUw
MDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBc
XFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2
RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAx
RjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUw
MDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBc
XFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZC
NiBcXHUyNjk1LVxcdTI2OTYgXFx1MjcwOCBcXFUwMDAxRjMzRSBcXFUwMDAxRjM3MyBcXFUwMDAx
RjM5MyBcXFUwMDAxRjNBNCBcXFUwMDAxRjNBOCBcXFUwMDAxRjNFQiBcXFUwMDAxRjNFRCBcXFUw
MDAxRjRCQi1cXFUwMDAxRjRCQyBcXFUwMDAxRjUyNyBcXFUwMDAxRjUyQyBcXFUwMDAxRjY4MCBc
XFUwMDAxRjY5MiBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzNy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkz
Qy1cXFUwMDAxRjkzRV07IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5j
ZXMKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBE
IFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFG
M0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAw
MDFGNDY2LVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxc
VTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkw
IFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFG
NjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAw
MDFGNkMwIFxcVTAwMDFGOTE4IFxcVTAwMDFGM0MyIFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NDIFxc
VTAwMDFGNTc0IFxcVTAwMDFGNTdBIFxcVTAwMDFGNkNDIFxcVTAwMDFGOTE5LVxcVTAwMDFGOTFF
IFxcVTAwMDFGOTI2IFxcVTAwMDFGOTMwIFxcVTAwMDFGOTMzLVxcVTAwMDFGOTM5IFxcVTAwMDFG
OTNDLVxcVTAwMDFGOTNFXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZp
ZXJzCi0jZWxzZQotICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxV
MDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxc
dTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAx
RjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUw
MDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBc
XFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4
NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAx
RjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUw
MDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2Vu
ZGlmCi0gICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIKLSAgICAi
JGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJEFM
UGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsiCi0gICAgIiRBTGNtID0gJEFMUGx1cyAkQ00q
OyIKLSAgICAiJEJBY20gPSAkQkEgJENNKjsiCi0gICAgIiRCQmNtID0gJEJCICRDTSo7IgotICAg
ICIkQjJjbSA9ICRCMiAkQ00qOyIKLSAgICAiJENMY20gPSAkQ0wgJENNKjsiCi0gICAgIiRDUGNt
ID0gJENQICRDTSo7IgotICAgICIkRVhjbSA9ICRFWCAkQ00qOyIKLSAgICAiJEdMY20gPSAkR0wg
JENNKjsiCi0gICAgIiRITGNtID0gJEhMICRDTSo7IgotICAgICIkSFljbSA9ICRIWSAkQ00qOyIK
LSAgICAiJEgyY20gPSAkSDIgJENNKjsiCi0gICAgIiRIM2NtID0gJEgzICRDTSo7IgotICAgICIk
SURjbSA9ICRJRCAkQ00qOyIKLSAgICAiJElOY20gPSAkSU4gJENNKjsiCi0gICAgIiRJU2NtID0g
JElTICRDTSo7IgotICAgICIkSkxjbSA9ICRKTCAkQ00qOyIKLSAgICAiJEpWY20gPSAkSlYgJENN
KjsiCi0gICAgIiRKVGNtID0gJEpUICRDTSo7IgotICAgICIkTlNjbSA9ICROUyAkQ00qOyIKLSAg
ICAiJE5VY20gPSAkTlUgJENNKjsiCi0gICAgIiRPUGNtID0gJE9QICRDTSo7IgotICAgICIkUE9j
bSA9ICRQTyAkQ00qOyIKLSAgICAiJFBSY20gPSAkUFIgJENNKjsiCi0gICAgIiRRVWNtID0gJFFV
ICRDTSo7IgotICAgICIkUkljbSA9ICRSSSAkQ00qOyIKLSAgICAiJFNZY20gPSAkU1kgJENNKjsi
Ci0gICAgIiRXSmNtID0gJFdKICRDTSo7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0Rm9y
d2FyZCA9Ci0gICAgIiEhZm9yd2FyZDsiCi0gICAgIiRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRM
RiAkTkwgJFpXICRDTV07IgotICAgICIkQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5MICRa
VyAkQ01dOyIKLSAgICAiJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQ
XTsiCi0gICAgIiRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRH
TCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107IgotICAgICIkQUxfRk9MTE9X
ID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsiCi0gICAgIiRMQjRCcmVha3MgPSBb
JEJLICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICRO
TF07IgotICAgICIkTEI4QnJlYWtzID0gWyRMQjRCcmVha3MgJFpXXTsiCi0gICAgIiRMQjhOb25C
cmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOyIKLSAgICAiJExCMThOb25CcmVha3Mg
PSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsiCi0gICAgIiRMQjE4QnJlYWtzID0gWyRMQjhCcmVh
a3MgJFNQXTsiCi0gICAgIiRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsi
Ci0gICAgIiRBTFBsdXMgJENNKzsiCi0gICAgIiRCQSAkQ00rOyIKLSAgICAiJEJCICRDTSs7Igot
ICAgICIkQjIgJENNKzsiCi0gICAgIiRDTCAkQ00rOyIKLSAgICAiJENQICRDTSs7IgotICAgICIk
RVggJENNKzsiCi0gICAgIiRHTCAkQ00rOyIKLSAgICAiJEhMICRDTSs7IgotICAgICIkSFkgJENN
KzsiCi0gICAgIiRIMiAkQ00rOyIKLSAgICAiJEgzICRDTSs7IgotICAgICIkSUQgJENNKzsiCi0g
ICAgIiRJTiAkQ00rOyIKLSAgICAiJElTICRDTSs7IgotICAgICIkSkwgJENNKzsiCi0gICAgIiRK
ViAkQ00rOyIKLSAgICAiJEpUICRDTSs7IgotICAgICIkTlMgJENNKzsiCi0gICAgIiROVSAkQ00r
OyIKLSAgICAiJE9QICRDTSs7IgotICAgICIkUE8gJENNKzsiCi0gICAgIiRQUiAkQ00rOyIKLSAg
ICAiJFFVICRDTSs7IgotICAgICIkUkkgJENNKzsiCi0gICAgIiRTWSAkQ00rOyIKLSAgICAiJFdK
ICRDTSs7IgotICAgICIkQ1IgJExGIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcz8gJExCNEJy
ZWFrcyB7MTAwfTsiCi0gICAgIiRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAi
JENNKyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJExCNE5vbkJyZWFrcyBbJFNQICRaV107Igot
ICAgICIkQ0FOX0NNICRDTSogWyRTUCAkWlddOyIKLSAgICAiJENNKyBbJFNQICRaV107IgotICAg
ICIkRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFz
OyIKLSAgICAiJENBTl9DTSAkQ00rOyIKLSAgICAiJENNKzsiCi0gICAgIiRDQU5fQ00gJENNKiAk
V0pjbTsiCi0gICAgIiRMQjhOb25CcmVha3MgJFdKY207IgotICAgICIkQ00rICRXSmNtOyIKLSAg
ICAiJFdKY20gJENBTlRfQ007IgotICAgICIkV0pjbSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xj
bSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FOVF9DTTsiCi0gICAgIltbJExCOE5vbkJy
ZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOyIKLSAgICAiJENNKyBHTGNtOyIKLSAg
ICAiJExCOE5vbkJyZWFrcyAkQ0w7IgotICAgICIkQ0FOX0NNICRDTSogJENMOyIKLSAgICAiJENN
KyAkQ0w7IgotICAgICIkTEI4Tm9uQnJlYWtzICRDUDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ1A7
IgotICAgICIkQ00rICRDUDsiCi0gICAgIiRMQjhOb25CcmVha3MgJEVYOyIKLSAgICAiJENBTl9D
TSAkQ00qICRFWDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkSVM7Igot
ICAgICIkQ0FOX0NNICRDTSogJElTOyIKLSAgICAiJENNKyAkSVM7IgotICAgICIkTEI4Tm9uQnJl
YWtzICRTWTsiCi0gICAgIiRDQU5fQ00gJENNKiAkU1k7IgotICAgICIkQ00rICRTWTsiCi0gICAg
IiRPUGNtICRTUCogJENBTl9DTSAkQ00qOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOVF9DTTsiCi0g
ICAgIiRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsiCi0gICAgIiRRVWNtICRTUCogJE9QY207
IgotICAgICIoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsiCi0gICAgIiRCMmNtICRTUCogJEIy
Y207IgotICAgICIkTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOyIKLSAgICAiJENNKyAkUVVjbTsi
Ci0gICAgIiRRVWNtIC4/OyIKLSAgICAiJFFVY20gJExCMThOb25CcmVha3MgJENNKjsiCi0gICAg
IiRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7ICIKLSAgICAiJEJC
Y20gW14kQ0JdOyIKLSAgICAiJEJCY20gJExCMjBOb25CcmVha3MgJENNKjsiCi0gICAgIiRITGNt
ICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OyIKLSAgICAiJFNZY20gJEhMY207IgotICAgICIoJEFM
Y20gfCAkSExjbSkgJElOY207IgotICAgICIkQ00rICRJTmNtOyIKLSAgICAiJEVYY20gJElOY207
IgotICAgICIkSURjbSAkSU5jbTsiCi0gICAgIiRJTmNtICRJTmNtOyIKLSAgICAiJE5VY20gJElO
Y207IgotICAgICIkSURjbSAkUE9jbTsiCi0gICAgIiRBTGNtICROVWNtOyIKLSAgICAiJEhMY20g
JE5VY207IgotICAgICIkQ00rICROVWNtOyIKLSAgICAiJE5VY20gJEFMY207IgotICAgICIkTlVj
bSAkSExjbTsiCi0gICAgIiRQUmNtICRJRGNtOyIKLSAgICAiJFBSY20gKCRBTGNtIHwgJEhMY20p
OyIKLSAgICAiJFBPY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiKCRQUmNtIHwgJFBPY20pPyAo
JE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAk
Q1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87IgotICAgICIkSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRI
MmNtIHwgJEgzY20pOyIKLSAgICAiKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNtKTsiCi0g
ICAgIigkSlRjbSB8ICRIM2NtKSAkSlRjbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20g
fCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsiCi0gICAgIigkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAk
SDJjbSB8ICRIM2NtKSAkUE9jbTsiCi0gICAgIiRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20g
fCAkSDJjbSB8ICRIM2NtKTsiCi0gICAgIigkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7
IgotICAgICIkQ00rICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRJU2NtICgkQUxjbSB8ICRITGNt
KTsiCi0gICAgIigkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNtOyIKLSAgICAiJENNKyAkT1Bj
bTsiCi0gICAgIiRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOyIKLSNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKLSAgICAiJFJJY20gJFJJY207IgotI2VuZGlmCi0gICAgIiRFbW9qaUZv
ck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgx
NFJldmVyc2UgPQotICAgICIhIXJldmVyc2U7IgotICAgICIkQ00rICRBTFBsdXM7IgotICAgICIk
Q00rICRCQTsiCi0gICAgIiRDTSsgJEJCOyIKLSAgICAiJENNKyAkQjI7IgotICAgICIkQ00rICRD
TDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkQ00rICRHTDsiCi0g
ICAgIiRDTSsgJEhMOyIKLSAgICAiJENNKyAkSFk7IgotICAgICIkQ00rICRIMjsiCi0gICAgIiRD
TSsgJEgzOyIKLSAgICAiJENNKyAkSUQ7IgotICAgICIkQ00rICRJTjsiCi0gICAgIiRDTSsgJElT
OyIKLSAgICAiJENNKyAkSkw7IgotICAgICIkQ00rICRKVjsiCi0gICAgIiRDTSsgJEpUOyIKLSAg
ICAiJENNKyAkTlM7IgotICAgICIkQ00rICROVTsiCi0gICAgIiRDTSsgJE9QOyIKLSAgICAiJENN
KyAkUE87IgotICAgICIkQ00rICRQUjsiCi0gICAgIiRDTSsgJFFVOyIKLSNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKyAkUkk7IgotI2VuZGlmCi0gICAgIiRDTSsgJFNZOyIK
LSAgICAiJENNKyAkV0o7IgotICAgICIkQ00rOyIKLSAgICAiJEFMX0ZPTExPVyAkQ00rIC8gKFsk
QksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFte
JE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsiCi0gICAgIlskUFJdIC8gJENNKyBbJEJLICRD
UiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOyIKLSAgICAiJExCNEJyZWFrcyBbJExCNE5vbkJyZWFr
cy0kQ01dOyIKLSAgICAiJExCNEJyZWFrcyAkQ00rICRDQU5fQ007IgotICAgICIkTEYgJENSOyIK
LSAgICAiWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJFNQICRaV10gJENN
KyAkQ0FOX0NNOyIKLSAgICAiJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZh
cj8gJEVtb2ppRm9yU2VxczsiCi0gICAgIiRDTSsgJENBTl9DTTsiCi0gICAgIiRDTSogJFdKICRD
TSogJENBTl9DTTsiCi0gICAgIiRDTSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIk
Q0FOVF9DTSAkQ00qICRXSjsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRXSjsiCi0gICAgIiRD
TSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOyIKLSAgICAiJENB
TlRfQ00gJENNKiAkR0w7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkR0w7IgotICAgICIkQ0wg
JENNKyAkQ0FOX0NNOyIKLSAgICAiJENQICRDTSsgJENBTl9DTTsiCi0gICAgIiRFWCAkQ00rICRD
QU5fQ007IgotICAgICIkSVMgJENNKyAkQ0FOX0NNOyIKLSAgICAiJFNZICRDTSsgJENBTl9DTTsi
Ci0gICAgIiRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENQIFskTEI4Tm9uQnJlYWtz
LSRDTV07IgotICAgICIkRVggWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRJUyBbJExCOE5v
bkJyZWFrcy0kQ01dOyIKLSAgICAiJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICJbJENM
ICRDUCAkRVggJElTICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAiCi0gICAgIiRDTSogJENBTl9D
TSAkU1AqICRDTSogJE9QOyIKLSAgICAiJENBTlRfQ00gJFNQKiAkQ00qICRPUDsiCi0gICAgIiRB
TF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAkT1A7IgotICAgICIkQUxfRk9MTE9XX05PQ00g
JENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAk
Q00qICRPUDsiCi0gICAgIiRTWSAkQ00gJFNQKyAkT1A7IgotICAgICIkQ00qICRPUCAkU1AqICRD
TSogJFFVOyIKLSAgICAiJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJENN
KiAkQjIgJFNQKiAkQ00qICRCMjsiCi0gICAgIiRDTSogJFFVICRDTSogJENBTl9DTTsiCi0gICAg
IiRDTSogJFFVICRMQjE4Tm9uQnJlYWtzOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFFVOyIK
LSAgICAiJENBTlRfQ00gJENNKiAkUVU7IgotICAgICIkQ00qICgkQkEgfCAkSFkgfCAkTlMpICRD
TSogWyRMQjIwTm9uQnJlYWtzLSRDTV07IgotICAgICIkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01d
ICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogKCRI
WSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIkQ00qICRITCAkQ00qICRTWTsiCi0gICAgIiRDTSog
JElOICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAkSU4gJENNKiAkRVg7IgotICAg
ICIkQ00qICRJTiAkQ00qICRJRDsiCi0gICAgIiRDTSogJElOICRDTSogJElOOyIKLSAgICAiJENN
KiAkSU4gJENNKiAkTlU7IgotICAgICIkQ00qICRQTyAkQ00qICRJRDsiCi0gICAgIiRDTSogJE5V
ICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAk
TlU7IgotICAgICIkQ00qICRJRCAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwp
ICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87IgotICAgICIo
JENNKiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8
ICRTWSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87
IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOyIKLSAgICAiJENN
KiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOyIKLSAgICAiJENNKiAkSlQgJENNKiAoJEgz
IHwgJEpUKTsiCi0gICAgIiRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRK
TCk7IgotICAgICIkQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIK
LSAgICAiJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsiCi0gICAg
IiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAo
JEFMUGx1cyB8ICRITCkgJENNKiAkSVM7IgotICAgICIkQ00qICRPUCAkQ00qICgkQUxQbHVzIHwg
JEhMIHwgJE5VKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOyIK
LSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKiAkUkkgJENNKiAkUkk7Igot
I2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyI7Ci0KLXN0
YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVGb3J3YXJkID0KLSAgICAiISFzYWZlX2ZvcndhcmQ7
IgotICAgICJbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9u
YXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07
IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciog
dWF4MTRTYWZlUmV2ZXJzZSA9Ci0gICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAiJENNKyBbXiRD
TSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07IgotICAgICIkQ00rICRTUCAvIC47IgotICAgICIk
U1ArICRDTSogJE9QOyIKLSAgICAiJFNQKyAkQ00qICRRVTsiCi0gICAgIiRTUCsgJENNKiAoJENM
IHwgJENQKTsiCi0gICAgIiRTUCsgJENNKiAkQjI7IgotICAgICIkQ00qICgkSFkgfCAkQkEpICRD
TSogJEhMOyIKLSAgICAiKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICROVTsiCi0gICAgIigkQ0wg
fCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlv
bmFyeTsiOwotCiBzdGF0aWMgU3RyaW5nIG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKExpbmVC
cmVha0l0ZXJhdG9yTW9kZSBtb2RlLCBib29sIGlzQ0pLKQogewotICAgIFN0cmluZ0J1aWxkZXIg
cnVsZXNCdWlsZGVyOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRQcm9sb2d1ZSk7Ci0g
ICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1lbnRzQmVmb3JlKTsKICAgICBzd2l0
Y2ggKG1vZGUpIHsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6RGVmYXVsdDoKLSAg
ICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21E
ZWZhdWx0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25DSkspOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
S1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGlu
ZUJyZWFrSXRlcmF0b3JNb2RlOjpMb29zZToKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChp
c0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZUNKSyA6IHVheDE0QXNzaWdubWVudHND
dXN0b21Mb29zZU5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksg
PyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZU5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpO
b3JtYWw6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1l
bnRzQ3VzdG9tTm9ybWFsQ0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
UnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OlN0cmljdDoKLSAgICAgICAg
cnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RD
SksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7
CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSktS
dWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsKICAgICB9Ci0g
ICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1lbnRzQWZ0ZXIpOwotICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQodWF4MTRGb3J3YXJkKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVh
eDE0UmV2ZXJzZSk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVGb3J3YXJkKTsK
LSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2FmZVJldmVyc2UpOwotICAgIHJldHVybiBy
dWxlc0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gIiI7CiB9CiAKIC8vIFJlY29nbml6ZSBCQ1A0NyBjb21wbGlhbnQgcHJpbWFyeSBsYW5n
dWFnZSB2YWx1ZXMgb2YgJ3poJywgJ2phJywgJ2tvJwpAQCAtNzg4LDkgKzI1MywyOSBAQCBVQnJl
YWtJdGVyYXRvciogb3BlbkxpbmVCcmVha0l0ZXJhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbG9j
YWxlLCBMaW5lQnJlYWtJdGVyYQogICAgIGlmIChtb2RlID09IExpbmVCcmVha0l0ZXJhdG9yTW9k
ZTo6RGVmYXVsdCkKICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29wZW4oVUJSS19MSU5FLCBsb2Nh
bGVJc0VtcHR5ID8gY3VycmVudFRleHRCcmVha0xvY2FsZUlEKCkgOiBsb2NhbGUuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOwogICAgIGVsc2UgewotICAgICAgICBV
UGFyc2VFcnJvciBwYXJzZVN0YXR1czsKLSAgICAgICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVy
YXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsKLSAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29w
ZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcnVsZXMu
bGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0dXMpOworICAgICAgICBCcmVh
a2luZ1J1bGVTZXQgcnVsZVNldCA9IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks7CisgICAg
ICAgIHN3aXRjaCAobW9kZSkgeworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6
RGVmYXVsdDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6
VUFYMTRDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpMb29zZToKKyAgICAgICAg
ICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZUNKSyA6IEJy
ZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZU5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6Tm9ybWFsOgorICAgICAgICAgICAgcnVs
ZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbENKSyA6IEJyZWFraW5n
UnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OlN0cmljdDoKKyAgICAgICAgICAgIHJ1bGVTZXQg
PSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3RDSksgOiBCcmVha2luZ1J1bGVT
ZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQocnVs
ZVNldCkpCisgICAgICAgICAgICB1YnJrSXRlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8VUJyZWFrSXRl
cmF0b3IqPihpdGVyYXRvcik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgVVBhcnNlRXJy
b3IgcGFyc2VTdGF0dXM7CisgICAgICAgICAgICBhdXRvIHJ1bGVzID0gbWFwTGluZUl0ZXJhdG9y
TW9kZVRvUnVsZXMobW9kZSwgaXNDSkspOworICAgICAgICAgICAgdWJya0l0ZXIgPSB1YnJrX29w
ZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcnVsZXMu
bGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5TdGF0dXMpOworICAgICAgICB9CiAg
ICAgfQogICAgIC8vIGxvY2FsZSBjb21lcyBmcm9tIGEgd2ViIHBhZ2UgYW5kIGl0IGNhbiBiZSBp
bnZhbGlkLCBsZWFkaW5nIElDVQogICAgIC8vIHRvIGZhaWwsIGluIHdoaWNoIGNhc2Ugd2UgZmFs
bCBiYWNrIHRvIHRoZSBkZWZhdWx0IGxvY2FsZS4KQEAgLTgxMSw2ICsyOTYsNyBAQCB2b2lkIGNs
b3NlTGluZUJyZWFrSXRlcmF0b3IoVUJyZWFrSXRlcmF0b3IqJiBpdGVyYXRvcikKIHsKICAgICBV
QnJlYWtJdGVyYXRvciogdWJya0l0ZXIgPSBpdGVyYXRvcjsKICAgICBBU1NFUlQodWJya0l0ZXIp
OworICAgIC8vIEZJWE1FOiBVc2UgUkFJSSB0byBkbyB0aGlzIGluc3RlYWQuCiAgICAgdWJya19j
bG9zZSh1YnJrSXRlcik7CiAgICAgaXRlcmF0b3IgPSBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oIGIvU291cmNlL1dURi93dGYv
dGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCmluZGV4IGJjZjQ0YzA3YTRlYzkxYjUxNDY3YzI0ZjRm
ZTcxNmVkMzRkYmNjMTUuLjZmOGExZWZmNzQ5OWJjYmU5YTg4MDI3YzAzMzE3ZWI2MmM0YjI2NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKQEAgLTI5LDYgKzI5LDMw
IEBAIG5hbWVzcGFjZSBXVEYgewogCiBlbnVtIGNsYXNzIExpbmVCcmVha0l0ZXJhdG9yTW9kZSB7
IERlZmF1bHQsIExvb3NlLCBOb3JtYWwsIFN0cmljdCB9OwogCitlbnVtIGNsYXNzIEJyZWFraW5n
UnVsZVNldCB7CisgICAgQ3Vyc29yTW92ZW1lbnQsCisgICAgVUFYMTRDSkssCisgICAgVUFYMTRO
b25DSkssCisgICAgVUFYMTRMb29zZUNKSywKKyAgICBVQVgxNExvb3NlTm9uQ0pLLAorICAgIFVB
WDE0Tm9ybWFsQ0pLLAorICAgIFVBWDE0Tm9ybWFsTm9uQ0pLLAorICAgIFVBWDE0U3RyaWN0Q0pL
LAorICAgIFVBWDE0U3RyaWN0Tm9uQ0pLCit9OworCitleHRlcm4gY29uc3QgY2hhciogY3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxOb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdE5vbkNKS1J1bGVzOworCitVQnJlYWtJdGVyYXRvciogY3JlYXRlSXRl
cmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCk7CisKIC8vIFRoaXMgaXMgc2ltaWxhciB0
byBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgaW4gbW9zdCBjYXNlcywgYnV0IGlzIHN1YmplY3Qg
dG8KIC8vIHBsYXRmb3JtIFVJIGNvbnZlbnRpb25zLiBPbmUgbm90YWJsZSBleGFtcGxlIHdoZXJl
IHRoaXMgY2FuIGJlIGRpZmZlcmVudAogLy8gZnJvbSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3Ig
aXMgVGhhaSBwcmVwZW5kIGNoYXJhY3RlcnMsIHNlZSBidWcgMjQzNDIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1t
IGIvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1h
Yy5tbQppbmRleCBiZWY1ZGFhNjQyODg4MjFlMjBmMjYyOGM2ODU1ZWU4ZTg4YTM4OTJjLi5jNTM3
M2IwM2RiZDRmYjZlYTIzZmFkMmVkMmFkM2NjMDM3NWUzMmQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMu
bW0KQEAgLTIxLDEyICsyMSwxNzQgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJU
ZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgiCiAKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVy
YXRvci5oIgorI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgorI2luY2x1ZGUgPHVuaWNvZGUvdWRh
dGEuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKK0BpbnRlcmZhY2UgV1RGQnVu
ZGxlRmluZGVyIDogTlNPYmplY3QKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdURkJ1bmRsZUZp
bmRlcgorQGVuZAorCiBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0IGludCBtYXhMb2Nh
bGVTdHJpbmdMZW5ndGggPSAzMjsKIAorI2RlZmluZSBVU0VfUFJFQ09NUElMRURfQlJFQUtJTkdf
UlVMRVMgKFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmICgoUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykg
JiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKSkpCisKKyNpZiBV
U0VfUFJFQ09NUElMRURfQlJFQUtJTkdfUlVMRVMKK3N0YXRpYyBVRGF0YU1lbW9yeSogYnJlYWtJ
dGVyYXRvclJlc291cmNlKE5TU3RyaW5nICpmaWxlTmFtZUJhc2UpCit7CisgICAgTlNCdW5kbGUg
KmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV1RGQnVuZGxlRmluZGVyIGNsYXNz
XV07CisgICAgTlNTdHJpbmcgKnBhdGggPSBbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpmaWxlTmFt
ZUJhc2Ugb2ZUeXBlOkAiYnJrIiBpbkRpcmVjdG9yeTpAIkJyZWFraW5nUnVsZXMiXTsKKyAgICBp
ZiAoIXBhdGgpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIE5TU3RyaW5nICpkaXJlY3Rv
cnkgPSBbcGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOworCisjaWYgUExB
VEZPUk0oSU9TKQorICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAg
IHVkYXRhX3NldEZpbGVBY2Nlc3MoVURBVEFfRklMRVNfRklSU1QsICZlcnJvckNvZGUpOworICAg
IGlmIChVX0ZBSUxVUkUoZXJyb3JDb2RlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5k
aWYKKworICAgIFVFcnJvckNvZGUgdURhdGFFcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAg
VURhdGFNZW1vcnkqIHJlc3VsdCA9IHVkYXRhX29wZW4oW2RpcmVjdG9yeSBVVEY4U3RyaW5nXSwg
ImJyayIsIFtmaWxlTmFtZUJhc2UgVVRGOFN0cmluZ10sICZ1RGF0YUVycm9yQ29kZSk7CisKKyNp
ZiBQTEFURk9STShJT1MpCisgICAgdWRhdGFfc2V0RmlsZUFjY2VzcyhVREFUQV9ERUZBVUxUX0FD
Q0VTUywgJmVycm9yQ29kZSk7CisgICAgaWYgKFVfRkFJTFVSRShlcnJvckNvZGUpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorCisgICAgaWYgKFVfRkFJTFVSRSh1RGF0YUVycm9y
Q29kZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30K
Kworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShV
RGF0YU1lbW9yeSogZGF0YSkKK3sKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAgVUJy
ZWFrSXRlcmF0b3IqIHJlc3VsdCA9IHVicmtfb3BlbkJpbmFyeVJ1bGVzKHN0YXRpY19jYXN0PGNv
bnN0IHVpbnQ4X3QgKj4odWRhdGFfZ2V0TWVtb3J5KGRhdGEpKSwgc3RkOjpudW1lcmljX2xpbWl0
czxpbnQzMl90Pjo6bWF4KCksIG51bGxwdHIsIDAsICZlcnJvckNvZGUpOworCisgICAgaWYgKFVf
RkFJTFVSRShlcnJvckNvZGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0
b3IoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNl
RGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMi
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3Io
YnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAg
cmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRDSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0
YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Q0pLIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVy
YXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0
YS5nZXQoKSkpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVh
a0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJl
c291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSyIpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJl
c291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0
KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNv
dXJjZURhdGEoYnJlYWtJdGVyYXRvclJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0
ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkp
OworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9y
KiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksoKQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3Vy
Y2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksiKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21S
ZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdl
dCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJl
c291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+
IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQo
KSkpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJh
dG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJl
c291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSyIpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9y
RnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0
b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5
Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3RDSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJh
dG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRh
LmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFr
SXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksoKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJh
dG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLIikpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRl
cmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBp
dGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBjbG9uZUl0ZXJhdG9y
KFVCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKK3sKKyAgICBpZiAoIWl0ZXJhdG9yKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJP
UjsKKyAgICBpZiAoYXV0byogcmVzdWx0ID0gdWJya19zYWZlQ2xvbmUoaXRlcmF0b3IsIG51bGxw
dHIsIDAsICZlcnJvckNvZGUpKSB7CisgICAgICAgIGlmIChVX1NVQ0NFU1MoZXJyb3JDb2RlKSkK
KyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOwor
fQorI2VuZGlmCisKK1VCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJl
YWtpbmdSdWxlU2V0IHJ1bGVTZXQpCit7CisjaWYgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JV
TEVTCisgICAgc3dpdGNoIChydWxlU2V0KSB7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OkN1
cnNvck1vdmVtZW50OgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihjdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENKSzoKKyAgICAg
ICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSygpKTsKKyAg
ICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks6CisgICAgICAgIHJldHVybiBjbG9u
ZUl0ZXJhdG9yKGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksoKSk7CisgICAgY2FzZSBCcmVh
a2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VDSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9y
KGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSygpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVs
ZVNldDo6VUFYMTRMb29zZU5vbkNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxl
U2V0OjpVQVgxNE5vcm1hbENKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSygpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6
VUFYMTROb3JtYWxOb25DSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6
OlVBWDE0U3RyaWN0Q0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Q0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgx
NFN0cmljdE5vbkNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdE5vbkNKSygpKTsKKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShydWxlU2V0KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorfQorCiBzdGF0aWMgaW5s
aW5lIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gdGV4dEJyZWFrTG9jYWxlUHJlZmVyZW5jZSgpCiB7
CiAgICAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBsb2NhbGUgPSBhZG9wdENGKENGUHJl
ZmVyZW5jZXNDb3B5VmFsdWUoQ0ZTVFIoIkFwcGxlVGV4dEJyZWFrTG9jYWxlIiksCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RlMu
Y21ha2UKaW5kZXggNTEzMGZmY2JjYzdjOWNlNzUxNGFmNGQ1NTNiZDhhNGYwNTAxNDU2ZC4uOWY4
MzMwYWY3ZmUzNjNkODAxM2VlZTM0YmVkZDdmYzE1Y2I3OTFlYSAxMDA2NDQKLS0tIGEvU291cmNl
L2NtYWtlL1dlYktpdEZTLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQpA
QCAtMjcsNiArMjcsNyBAQCBpZiAoTk9UIFRPT0xTX0RJUikKIGVuZGlmICgpCiAKIHNldChERVJJ
VkVEX1NPVVJDRVNfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzIikKK3Nl
dChERVJJVkVEX1NPVVJDRVNfV1RGX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291
cmNlcy9XVEYiKQogc2V0KERFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVIgIiR7Q01B
S0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUiKQogc2V0KERFUklW
RURfU09VUkNFU19XRUJDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUTEVHQUNZX0RJUiAiJHtDTUFL
RV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3kiKQpAQCAtMzUsNiArMzYs
OCBAQCBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJJTlNQRUNU
T1JVSV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9y
VUkiKQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRD
T1JFX0RJUn0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9
KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2lu
Z1J1bGVzKQogZmlsZShNQUtFX0RJUkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9L1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lKQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9T
T1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0pCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFu
Z2VMb2cKaW5kZXggYjY1MjE1YmM5ZGE2N2NjMDE4MzE4NjRmYTEwZDg0MTk0ODA0NTM3Mi4uN2M4
ZTBkMzQ4ZGRlNTEzMjVkNWI0YjlhNDBjNWM5NTU2NzVmNmI1YiAxMDA2NDQKLS0tIGEvQ2hhbmdl
TG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTAyLTA3ICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJQ1Ug
YnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2Nt
YWtlL1dlYktpdEZTLmNtYWtlOgorCiAyMDE3LTAyLTA3ICBPbGl2aWVyIEJsaW4gIDxvbGl2aWVy
LmJsaW5Ac29mdGF0aG9tZS5jb20+CiAKICAgICAgICAgW0dUS11bRWZsXSBEbyBub3QgcmVxdWly
ZSBMaWJYc2x0IGlmIFhTTFQgaXMgZGlzYWJsZWQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300934</attachid>
            <date>2017-02-08 11:59:44 -0800</date>
            <delta_ts>2017-02-08 13:03:44 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-160629-20170208115720.patch</filename>
            <type>text/plain</type>
            <size>123565</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NDNlNDJhZDA3YTMwMzc5MDhkNTRmNDc1YjAxN2EwODQ0MmIzN2U4Li5mM2U3NDlmM2EzMTRkMTlj
NTU1MzI1YjZkMGRjYmVhMzg5MzZmYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNy0wMi0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbmNsdWRlIHRoZSBieXRlY29kZSBmaWxlcyBpbnNpZGUgdGhl
IEphdmFTY3JpcHRDb3JlIGJ1bmRsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTctMDItMDcgIE1hcmsgTGFtICA8bWFyay5sYW1A
YXBwbGUuY29tPgogCiAgICAgICAgIFNpZ2lsbENyYXNoQW5hbHl6ZXI6OmFuYWx5emUoKSBzaG91
bGQgdXNlIGEgZG8td2hpbGUgbG9vcCBpbnN0ZWFkIG9mIGEgbGFtYmRhLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjYjNmMTgx
YzlkNGNjZTBjNDMzOWEzNDM2Yjg3YzRlYTQ5OTM0OTdiLi42MTA0ZWE4OTEzODVkYmJmODE1M2Q5
M2M3NDczMTZkMjg0MDE2OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE3LTAyLTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJ
Q1UgYnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBtYWNP
UyBhbmQgaU9TIFNES3MgaW5jbHVkZSBhIHRvb2wsIGljdWdlbmJyaywgd2hpY2ggY29tcGlsZXMg
SUNVIGJyayBicmVha2luZworICAgICAgICBydWxlcyBpbnRvIGJ5dGVjb2RlLiBQcmV2aW91c2x5
LCB0aGlzIGNvbXBpbGF0aW9uIHdhcyBkb25lIGF0IHJ1bnRpbWUgaW5zaWRlIHRoZSBJQ1UKKyAg
ICAgICAgdWJya19vcGVuUnVsZXMoKSBmdW5jdGlvbi4gTW92aW5nIHRoaXMgY29tcGlsYXRpb24g
c3RlcCB0byBjb21waWxlIHRpbWUgcmF0aGVyIHRoYW4KKyAgICAgICAgYnVpbGQgdGltZSBjYXVz
ZXMgYSBwZXJmb3JtYW5jZSBib29zdC4KKworICAgICAgICBQcmV2aW91c2x5LCB0aGUgc291cmNl
IGZvciB0aGUgYnJlYWtpbmcgcnVsZXMgd2FzIGFzc2VtYmxlZCBieSBjb25jYXRlbmF0aW5nIEMg
c3RyaW5ncworICAgICAgICBhdCBydW50aW1lLiBOb3csIHRoZSBzb3VyY2UgaXMgY29udGFpbmVk
IHdpdGhpbiBhIGZldyB0ZXh0IGZpbGVzIGluc2lkZQorICAgICAgICB3dGYvdGV4dC9CcmVha2lu
Z1J1bGVzLiBBIGJ1aWxkIHN0ZXAgKHVzaW5nIGEgTWFrZWZpbGUpIHdpbGwgZ2VuZXJhdGUgc291
cmNlIGNvZGUKKyAgICAgICAgY29udGFpbmluZyB0aGVzZSBzdHJpbmdzLCBhbmQgV1RGIHdpbGwg
aW5jbHVkZSB0aGVzZSBzb3VyY2UgZmlsZXMgaW4gdGhlIHNhbWUgd2F5IGFueQorICAgICAgICBv
ZiBvdXIgcHJvamVjdHMgdXNlIGdlbmVyYXRlZCBzb3VyY2VzLiBBZGRpdGlvbmFsbHksIG9uIE9T
ZXMgd2hpY2ggc3VwcG9ydCBpdCwgdGhlc2UKKyAgICAgICAgc3RyaW5ncyBnZXQgY29tcGlsZWQg
ZGlyZWN0bHkgaW50byBJQ1UgYnl0ZWNvZGUsIGFuZCB0aGVuIGluY2x1ZGVkIGluIHRoZSBmcmFt
ZXdvcmsKKyAgICAgICAgYnVuZGxlLiBCZWNhdXNlIFdURiBnZXRzIHN0YXRpY2FsbHkgbGlua2Vk
IGludG8gSmF2YVNjcmlwdENvcmUsIHRoaXMgaXMgdGhlIGJ1bmRsZQorICAgICAgICB3aGljaCBp
bmNsdWRlcyB0aGUgYnl0ZWNvZGUgZmlsZXMuCisKKyAgICAgICAgQXQgcnVudGltZSwgd2UgZmly
c3QgY2hlY2sgaWYgd2UgaGF2ZSBhIGZpbGUgaW4gb3VyIGJ1bmRsZSBvZiB0aGUgYXBwcm9wcmlh
dGUgbmFtZSwKKyAgICAgICAgYW5kIHRoZW4gc2VlIGlmIElDVSBjYW4gb3BlbiBpdCB1c2luZyBp
dHMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBpbnRlcmZhY2UgKHdoaWNoCisgICAgICAgIGluY2x1
ZGVzIGEgdmVyc2lvbiBjaGVjaykuIElmIGFueSBvZiB0aGVzZSBjaGVja3MgZmFpbCwgb3IgaWYg
d2UncmUgb24gYSBwb3J0IHdoaWNoCisgICAgICAgIGRvZXNuJ3QgaGF2ZSB0aGUgbm90aW9uIG9m
IGJ1bmRsZXMsIHdlIHdpbGwgdXNlIHRoZSBDIHN0cmluZ3MgZ2VuZXJhdGVkIGFib3ZlLCBhbmQK
KyAgICAgICAgcGFzcyB0aGVtIHRvIHVicmtfb3BlblJ1bGVzKCkgdGhlIHNhbWUgd2F5IHdlIHdl
cmUgZG9pbmcgYmVmb3JlIHRoaXMgcGF0Y2guCisKKyAgICAgICAgVGhlIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IgaW50ZXJmYWNlIGluIElDVSByZXF1aXJlcyBhZGRpbmcgc29tZSBtb3JlIG9mIElD
VSdzIHB1YmxpYworICAgICAgICBoZWFkZXJzIGludG8gV2ViS2l0LgorCisgICAgICAgICogV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBhIG5ldyBEZXJpdmVkIFNvdXJjZXMgdGFy
Z2V0IHdoaWNoIHVzZXMgYQorICAgICAgICBEZXJpdmVkU291cmNlcy5tYWtlIE1ha2VmaWxlLCB0
aGUgc2FtZSB3YXkgV2ViS2l0MiwgV2ViQ29yZSwgYW5kIEphdmFTY3JpcHRDb3JlIHdyb2suCisg
ICAgICAgIEFsc28sIGFkZCB0aGUgcnVsZXMgdGV4dCBmaWxlcyB0byB0aGUgcHJvamVjdC4gVGhl
biwgbWFrZSBXVEYgZGVwZW5kIG9uIHRoaXMgbmV3CisgICAgICAgIHRhcmdldC4KKyAgICAgICAg
KiB3dGYvQ01ha2VMaXN0cy50eHQ6IEFkZCBidWlsZCBzdGVwcyBmb3Igb3RoZXIgcG9ydHMgdG8g
Z2VuZXJhdGUgdGhlIGJyZWFraW5nCisgICAgICAgIHJ1bGVzIHN0cmluZ3Mgc291cmNlIGZpbGVz
LgorICAgICAgICAqIHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOiBBZGRlZC4gVGhpcyBpcyB0aGUg
cGxhY2Ugd2hlcmUgaWN1Z2VuYnJrIGlzIGFjdHVhbGx5IAorICAgICAgICBpbnZva2VkLiBJdCBh
bHNvIHRyaWdnZXJzIHRoZSBzY3JpcHQgKEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSkg
d2hpY2ggZ2VuZXJhdGVzCisgICAgICAgIHRoZSBDKysgY29kZSBmb3IgdGhlIHJ1bGVzIHN0cmlu
Z3MuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dl
bmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weTogQWRkZWQuIEdlbmVyYXRlIEMrKy4KKyAgICAg
ICAgKG1haW4pOgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JFcGlsb2d1ZS50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5jcHA6CisgICAgICAgIChXVEY6OmNyZWF0ZUl0ZXJhdG9yRm9yUnVs
ZVNldCk6IFVzZWQgYnkgb3RoZXIgcG9ydHMuIFJldHVybmluZyBudWxscHRyIG1lYW5zIHdlIGNh
bid0CisgICAgICAgIHVzZSBwcmVjb21waWxlZCBydWxlcy4KKyAgICAgICAgKFdURjo6Y3JlYXRl
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjayk6IFVzZWQgaW4gcGxhY2Ugb2YgdGhl
IGhhcmRjb2RlZCBydWxlcworICAgICAgICBpbiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKCkuCisg
ICAgICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3IpOiBSZW1vdmUgaGFyZGNvZGVkIHJ1
bGVzLgorICAgICAgICAoV1RGOjptYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyk6IFVwZGF0ZSB0
byB1c2UgdGhlIG5ldyBnZW5lcmF0ZWQgQysrIHN0cmluZ3MuCisgICAgICAgIChXVEY6Om9wZW5M
aW5lQnJlYWtJdGVyYXRvcik6IFRoZSBsb2dpYyBvZiB0cnlpbmcgdG8gdXNlIGEgcHJlY29tcGls
ZWQgYnl0ZWNvZGUsIGFuZCBmYWxsaW5nCisgICAgICAgIGJhY2sgdG8gQysrIHN0cmluZ3MgaWYg
aXQgaXNuJ3QgcG9zc2libGUuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
aDogSGVhZGVyIGZvciBnZW5lcmF0ZWQgQysrIGNvZGUuCisgICAgICAgICogd3RmL3RleHQvbWFj
L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW06CisgICAgICAgIChXVEY6OmJyZWFr
SXRlcmF0b3JGcm9tUmVzb3VyY2UpOiBUaGUgYWN0dWFsIGxvZ2ljIGZvciBsb29raW5nIGluc2lk
ZSB0aGUgYnVuZGxlIGZvciB0aGUKKyAgICAgICAgcHJlY29tcGlsZWQgYnl0ZWNvZGUuCisgICAg
ICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3IpOiBDYWxscyBicmVha0l0ZXJhdG9yRnJv
bVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSkspOiBD
YWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb25DSkspOiBDYWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCku
CisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSyk6IENhbGxzIGJy
ZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgor
ICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKTogQ2FsbHMgYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgor
ICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLKTogQ2FsbHMgYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgor
ICAgICAgICAoV1RGOjpjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQpOiAgQ2FsbCB0aGUgYWJvdmUg
c3RhdGljIGZ1bmN0aW9ucy4KKwogMjAxNy0wMi0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KIAogICAgICAgICBQbGF5YmFjayBzdGFsbHMgd2hlbiBhIFNvdXJjZUJ1ZmZlciBh
cHBlbmQgY2F1c2VzIGZyYW1lIGV2aWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDRkYjY2NzI5YTU1N2MwM2M1Y2VlODA4YjY3MTE2M2JiNmFlMTk1ZTcuLjg4YTFiNmQwMmNh
MTVlYTlhMGU4Y2NiMjNmYjliYTAxZmMyMGI5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMjI4LDYgKzEyMjgsNyBAQAogCQkxQTI4RDRBODE3N0I3MUM4MDAwN0ZBM0MgLyog
SlNTdHJpbmdSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQTI4RDRBNzE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUE4
ODI2QjE2NTNDNENEMUE2NDI5ODNCIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QjQ3RjIzNDM2NkM0
QjcyQUM4NTJBN0UgLyogVGVtcGxhdGVSZWdpc3RyeUtleVRhYmxlLmNwcCAqLzsgfTsKIAkJMUFD
RjczNzcxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDRjczNzYxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsu
Y3BwICovOyB9OworCQkxQ0QxODc5MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNEMTg3OEYx
RDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi87IH07CiAJCTI2MDBCNUE2MTUyQkFB
QTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJp
bmdKb2luZXIuY3BwICovOyB9OwogCQkyNjAwQjVBNzE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJp
bmdKb2luZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oICovOyB9OwogCQky
NjJEODVCNjFDMEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MkQ4NUI0
MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovOyB9
OwpAQCAtMzY1Nyw2ICszNjU4LDcgQEAKIAkJMUM5MDUxNDUwQkE5RThBNzAwODFFOUQwIC8qIEJh
c2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEEwRDMyQzM5QTAwNDFCQ0ZG
IC8qIEphdmFTY3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNj
cmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QjBEMzJDMzlBMDA0
MUJDRkYgLyogSmF2YVNjcmlwdENvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSmF2YVNjcmlwdENvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3
OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmb2xkZXI7IG5hbWUgPSBCcmVha2luZ1J1bGVz
OyBwYXRoID0gLi4vV1RGL0JyZWFraW5nUnVsZXM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0cmluZ0pvaW5lci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0
cmluZ0pvaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0cmluZ0pv
aW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjJEODVCNDFDMEQ2NTBGMDA2
QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHBh
dGggPSBiMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTYwMTMsNiArNjAxNSw3IEBACiAJCTY1MEZERjhEMDlEMEZDQTcw
MDc2OUU1NCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzhGMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1
bGVzICovLAogCQkJCTBGNjE4MzMyMUM0NUYzNUMwMDcyNDUwQiAvKiBBaXJPcGNvZGUuaCAqLywK
IAkJCQkwRjYxODMzNDFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlR2VuZXJhdGVkLmggKi8s
CiAJCQkJMEY2MTgzMzUxQzQ1RjNCNjAwNzI0NTBCIC8qIEFpck9wY29kZVV0aWxzLmggKi8sCkBA
IC05NDIwLDYgKzk0MjMsNyBAQAogCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKIAkJ
CWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkxQ0QxODc5
MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJ
QTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5
IGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45NmIwNDc2OWZjYTM5OGFjYzk5Nzg2OTJiNzc3MDY0MDVlZDA0OGE3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5n
cy5weQpAQCAtMCwwICsxLDExMCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgc3lzCitpbXBvcnQgcmUKKwor
aGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisKKworZGVmIG1haW4oYXJndj1Ob25lKToKKyAgICBp
ZiBub3QgYXJndjoKKyAgICAgICAgYXJndiA9IHN5cy5hcmd2CisgICAgZmlsZU5hbWVTdGFydElu
ZGV4ID0gMQorCisgICAgaW5jbHVkZURlZmluZXMgPSBGYWxzZQorICAgIGlmIGFyZ3ZbZmlsZU5h
bWVTdGFydEluZGV4XSA9PSAiLWluY2x1ZGVEZWZpbmVzIjoKKyAgICAgICAgaW5jbHVkZURlZmlu
ZXMgPSBUcnVlCisgICAgICAgIGZpbGVOYW1lU3RhcnRJbmRleCA9IGZpbGVOYW1lU3RhcnRJbmRl
eCArIDEKKworICAgIHN5bWJvbE5hbWUgPSBhcmd2W2ZpbGVOYW1lU3RhcnRJbmRleF1bMF0ubG93
ZXIoKSArIGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4XVsxOl0KKyAgICBmaWxlTmFtZVN0YXJ0SW5k
ZXggPSBmaWxlTmFtZVN0YXJ0SW5kZXggKyAxCisgICAgZmlsZU5hbWVzID0gYXJndltmaWxlTmFt
ZVN0YXJ0SW5kZXg6XQorCisgICAgcHJpbnQoaGVhZGVyKQorICAgIHByaW50KCIiKQorICAgIHBy
aW50KCIvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJh
dGVkIGJ5IHRoZSBzY3JpcHQiKQorICAgIHByaW50KCIvLyBXVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkiKQorICAgIHByaW50KCIiKQorICAg
IHByaW50KCIjaW5jbHVkZSBcImNvbmZpZy5oXCIiKQorICAgIHByaW50KCIjaW5jbHVkZSA8dW5p
Y29kZS91dmVybnVtLmg+IikKKyAgICBwcmludCgiIikKKyAgICBpZiBpbmNsdWRlRGVmaW5lczoK
KyAgICAgICAgcHJpbnQoIiNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9S
TShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwKSkiKQorICAgICAgICBwcmludCgiI2RlZmluZSBIQVZFX0VYVFJBX0lDVV9O
QU1FRF9TRVRTICgoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJ
T05fTUlOT1JfTlVNID49IDkpKSIpCisgICAgICAgIHByaW50KCIiKQorICAgIHByaW50KCJuYW1l
c3BhY2UgV1RGIHsiKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCJjb25zdCBjaGFyKiAiICsg
c3ltYm9sTmFtZSArICIgPSAiKQorCisgICAgZm9yIGZpbGVOYW1lIGluIGZpbGVOYW1lczoKKyAg
ICAgICAgZm9yIGwgaW4gb3BlbihmaWxlTmFtZSwgJ3InKToKKyAgICAgICAgICAgIGxpbmUgPSBs
LnJzdHJpcCgpCisgICAgICAgICAgICBpZiByZS5tYXRjaCgiXlxzKiQiLCBsaW5lKToKKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyAiKToK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjIik6
CisgICAgICAgICAgICAgICAgcHJpbnQobGluZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgiXiguKik7KCAjIC4qKT8kIiwgbGluZSkKKyAgICAg
ICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gIlwiIiAr
IG1hdGNoLmdyb3VwKDEpLnJlcGxhY2UoIlxcIiwgIlxcXFwiKSArICI7XCIiCisgICAgICAgICAg
ICAgICAgICAgIGlmIG1hdGNoLmdyb3VwKDIpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIpWzM6XQorICAgICAgICAgICAgICAgICAgICBw
cmludChyZXN1bHQpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
ZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAgIHByaW50KCJ9IikKKworaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU0MmUwYTVlOTkzZGQzYzgxOTI5MjMw
ZDUxNjI3NmI5ZjAxNWMwMzkuLjljZDBmNjNjNjg2N2JjNWNiMjkyYmEyYzhiM2M4OTcyZWYyMmI5
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNyw2ICs3
LDE3IEBACiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rp
b24gKi8KKwkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLyA9
IHsKKwkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxp
c3QgPSAxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi87CisJCQlidWlsZFBo
YXNlcyA9ICgKKwkJCQkxQ0QxODc4MjFENTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVyaXZl
ZCBTb3VyY2VzICovLAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1l
ID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwcm9kdWN0TmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMi
OworCQl9OwogCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlv
bkxpc3QgPSA2NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBs
aXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtODQs
NyArOTUsNiBAQAogCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
NDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CiAJ
CTE0NDdBRUM3MThGQ0U1ODAwMEIzRDdGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMjQ3QjYyMTQ2ODlCODYwMEU3OEI3NiAv
KiBsaWJXVEYuYSAqLzsgfTsKIAkJMTQ0N0FFQzkxOEZDRTU5NDAwQjNEN0ZGIC8qIG1ibWFsbG9j
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdB
RUM4MThGQ0U1OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAgKi87IH07Ci0JCTE0NDdBRUNCMThG
Q0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxp
YmljdWNvcmUuZHlsaWIgKi87IH07CiAJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5M
b29wVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDE0Njk0MTkwMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkxNDY5NDE5MzE2RUFBRjZEMDAyNEUxNDYgLyog
UnVuTG9vcFRpbWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTQ2OTQxOTExNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCAq
LzsgfTsKIAkJMTQ2OTQxOTYxNkVBQUZGODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2OTQxOTQxNkVBQUZG
ODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oICovOyB9OwpAQCAtMzQwLDYgKzM1MCwxNiBAQAog
CQlBREYyQ0U2NjFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREYyQ0U2NDFFMzlGMTA2MDA2
ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQURGMkNFNjcxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZv
b3RwcmludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBREYyQ0U2NTFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmNwcCAqLzsgfTsK
IAkJQjM4RkQ3QkQxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMzhGRDdCQzE2ODk1M0U4MDA2
NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCAqLzsgfTsKKwkJQzJCQTU0M0UxRDU4NkFGNDAwMEEz
MzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5k
eWxpYiAqLzsgfTsKKwkJQzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRDSksuY3BwICovOyB9OworCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VDSksuY3BwICovOyB9OworCQlDMkNBMzdFQzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovOyB9OworCQlDMkNB
MzdFRDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNDFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi87IH07
CisJCUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovOyB9OworCQlDMkNBMzdGMDFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi87IH07CisJCUMyQ0Ez
N0YxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Ez
N0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LmNwcCAqLzsgfTsKIAkJQzRGOEE5MzcxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzRGOEE5MzYxOUM2
NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oICovOyB9OwogCQlDOEIwRTFBMUUwMUE0ODZFQjk1
RTBEMTEgLyogSW5kZXhTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxMzdFMUQ3REJEODRBQzM4RkFFNEQzNCAvKiBJbmRleFNldC5oICovOyB9Owog
CQlDOTE2Qjk3NUYwMkY0RjdFOEI0QUIxMkQgLyogSW5kZXhNYXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVCNDMzODNBNUQwQjQ2M0M5NDMzRDkzMyAv
KiBJbmRleE1hcC5oICovOyB9OwpAQCAtMzgxLDYgKzQwMSwxMyBAQAogCQkJcmVtb3RlR2xvYmFs
SURTdHJpbmcgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzY7CiAJCQlyZW1vdGVJbmZvID0gV1RG
OwogCQl9OworCQkxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVy
UG9ydGFsID0gNUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOwor
CQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gMUNEMTg3ODExRDU1
Njk1QzAwQ0M3REVDOworCQkJcmVtb3RlSW5mbyA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQl9Owog
CQk2NUFGQTI4RDE2MzBCOTlFMDAzRDcyM0MgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0g
ewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFsID0g
NUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAtNDkyLDYg
KzUxOSwxOSBAQAogCQkxQzE4MUM4RDFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVU
RjE2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVUZXh0UHJvdmlk
ZXJVVEYxNi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzhFMUQzMDdB
QjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDMTgxQzk1MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVy
bmFsSUNVTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgcGF0aCA9IG1hYy9UZXh0QnJlYWtJdGVy
YXRvckludGVybmFsSUNVTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzZC
RTBGQTFFMDM0QzlBMDAyMTc2MTcgLyogR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3Jp
cHQucHl0aG9uOyBwYXRoID0gR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRG
Qjk1MUQ1NTlBNjkwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZU5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5OTFENTU5QUVG
MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlBMUQ1NTlCMjMwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1
ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhBMUQ1NThBRDMwMENDN0RF
QyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IG5hbWUgPSBEZXJpdmVkU291cmNlcy5tYWtlOyBw
YXRoID0gd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHVz
ZXNUYWJzID0gMTsgfTsKKwkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVDIC8qIEN1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4
dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVD
IC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxRkE0N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODkxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNv
cmVUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVRocmVh
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjE0N0IwODE1RERDQ0RDMDBEREI5
MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC03MjQsNiArNzY0LDE1IEBACiAJCUFERjJDRTY0MUUzOUYxMDYwMDY4ODlE
QiAvKiBNZW1vcnlGb290cHJpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVtb3J5Rm9vdHByaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFERjJDRTY1
MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5Rm9vdHByaW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBD
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgcGF0aCA9IEJyZWFr
aW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNB
MzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0Uz
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJD
QTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNTFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U2MUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3
RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3RDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdF
ODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRpbWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTc2Miw3ICs4MTEsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTE0NDdBRUM2MThGQ0U1NzcwMEIzRDdGRiAv
KiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTE0NDdBRUNCMThG
Q0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCisJCQkJ
QzJCQTU0M0UxRDU4NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3Jr
cyAqLywKIAkJCQkxNDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3
b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKQEAgLTc5OSw2ICs4NDgsMzIgQEAKIAkJCXBhdGggPSBpY3U7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OworCQkxQzZCRTBGOTFFMDM0QzJBMDAyMTc2MTcgLyogU2NyaXB0cyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUM2QkUwRkEx
RTAzNEM5QTAwMjE3NjE3IC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAqLywKKwkJ
CSk7CisJCQlwYXRoID0gU2NyaXB0czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CisJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc5MjFENTU5OEUxMDBD
QzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAqLywKKwkJCQkxQ0I0RkI5
QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8sCisJ
CQkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUu
dHh0ICovLAorCQkJCTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NjFENTU5QTkwMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NzFENTU5QUE4MDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50
eHQgKi8sCisJCQkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxDSksudHh0ICovLAorCQkJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QTFE
NTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8s
CisJCQkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksudHh0ICovLAorCQkJKTsKKwkJCXBhdGggPSBCcmVha2luZ1J1bGVzOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMUZBNDdDODcxNTI1MDJEQTAwNTY4RDFC
IC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC04
MjEsOSArODk2LDEyIEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CTVEMjQ3QjZEMTQ2ODlDNDcwMEU3OEI3NiAvKiBDb25maWd1cmF0aW9ucyAqLywKKwkJCQlDMkNB
MzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0MDIyRjNG
MThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJCQkJNUQyNDdCNjMxNDY4OUI4NjAw
RTc4Qjc2IC8qIFByb2R1Y3RzICovLAorCQkJCTFDNkJFMEY5MUUwMzRDMkEwMDIxNzYxNyAvKiBT
Y3JpcHRzICovLAogCQkJCTVEMjQ3Qjc2MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJ
CQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCiAJ
CQkJMTQ0N0FFQzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovLAog
CQkJCTE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICovLAogCQkJ
KTsKQEAgLTExODUsNiArMTI2Myw3IEBACiAJCUE4QTQ3MzFCMTUxQTgyNUIwMDQxMjNGRiAvKiB0
ZXh0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0Qx
ODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJCQlBNUJBMTVGNjE4
MjQzNTlFMDBBODJFNjkgLyogY2YgKi8sCiAJCQkJMUMxODFDODgxRDMwN0FCODAwRjVGQTE2IC8q
IGljdSAqLywKIAkJCQlBNUJBMTVGMTE4MjQzMzlGMDBBODJFNjkgLyogbWFjICovLApAQCAtMTI2
Myw2ICsxMzQyLDIzIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKIAkJfTsKKwkJQzJDQTM3REYxRDU1QzhEODAwNDg2Qjk4IC8qIERlcml2ZWQgU291cmNlcyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQzJDQTM3RTAx
RDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8sCisJ
CQkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksu
Y3BwICovLAorCQkJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VDSksuY3BwICovLAorCQkJCUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U0MUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLywKKwkJ
CQlDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLywKKwkJCQlDMkNB
MzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNK
Sy5jcHAgKi8sCisJCQkpOworCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQkJcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dURjsKKwkJCXNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
CisJCX07CiAJCUNFNDY1MTZDMTlEQjFGQjQwMDNFQ0EwNSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNjE0LDYgKzE3MTAsNyBAQAogCQkJ
YnVpbGRSdWxlcyA9ICgKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJMUNEMTg3ODgx
RDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJNjVBRkEyOEUx
NjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkpOwogCQkJbmFt
ZSA9IFdURjsKQEAgLTE2NDQsMTIgKzE3NDEsMjcgQEAKIAkJCXRhcmdldHMgPSAoCiAJCQkJNUQy
NDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLywKIAkJCQk2NUFGQTE2RjE2MzBCOTc3MDAz
RDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLywKKwkJCQkxQ0QxODc4MTFENTU2OTVDMDBDQzdE
RUMgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0NDdBRUJEMThGQ0U1NjkwMEIzRDdGRiAv
KiBtYm1hbGxvYyAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICov
CiAKIC8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCisJCTFDRDE4
NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJ
CQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAy
MTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCSk7
CisJCQluYW1lID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNlcyI7CisJCQlvdXRwdXRQYXRocyA9
ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJ
CXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7QlVJ
TFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuY2QgXCIke0JVSUxUX1BST0RV
Q1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcblxuL2Jpbi9sbiAtc2ZoIFwiJHtTUkNST09U
fVwiIFdURlxuZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsgISAtZCBCcmVha2luZ1J1bGVzIF07
IHRoZW5cbiAgICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxuXG5pZiBbIFwiJE1BQ09TWF9ERVBM
T1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdIDsgdGhlblxuICAgIGV4cG9ydCBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQ9MFxuZWxzZVxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQ9MVxuZmlcblxuaWYgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEw
LjEwXCIgXSB8fCBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTFcIiBd
IHx8IFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMlwiIF0gfHwgWyBc
IiRTREtfVkVSU0lPTl9NQUpPUlwiID09IFwiOTAwMDBcIiBdIHx8IFsgXCIkU0RLX1ZFUlNJT05f
TUFKT1JcIiA9PSBcIjEwMDAwMFwiIF07IHRoZW5cbiAgICBleHBvcnQgSEFWRV9JQ1VHRU5CUks9
MFxuZWxzZVxuICAgIGV4cG9ydCBIQVZFX0lDVUdFTkJSSz0xXG5maVxuXG5pZiBbIFwiJHtBQ1RJ
T059XCIgPSBcImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtB
Q1RJT059XCIgPSBcImluc3RhbGxoZHJzXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGFw
aVwiIF07IHRoZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwiV1RGL3d0Zi9EZXJpdmVk
U291cmNlcy5tYWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCBTREtS
T09UPVwiJHtTREtST09UfVwiXG5maSI7CisJCX07CiAJCTY1QUZBMTcwMTYzMEI5NzcwMDNENzIz
QyAvKiBDb3B5IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWls
ZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE3MDIsNiArMTgx
NCw3IEBACiAJCQkJRTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGls
aXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzkxNTFBODI1QjAwNDEyM0ZGIC8q
IENTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUMxNTFBODI1QjAwNDEyM0ZG
IC8qIEN1cnJlbnRUaW1lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0U5MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDczOUUxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGFMb2cuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThBNDczQTAxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGVNYXRoLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4QTQ3M0EyMTUxQTgyNUIwMDQxMjNGRiAvKiBEZWNpbWFsTnVtYmVyLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMTcxOCw2ICsxODMxLDE0IEBACiAJCQkJMUExRDhCOUUxNzMx
ODc5ODAwMTQxREE0IC8qIEZ1bmN0aW9uRGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyQ0NEODkyQTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQThBNDczRDgxNTFBODI1QjAwNDEyM0ZGIC8qIEhhc2hUYWJsZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQjFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUQxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RjAxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFMTY0NkExQjZGRkM5NjAwNDAwRTdDIC8qIExvY2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY2MEYzMkYxREZDQkQxQjAwNDE2RDZDIC8qIExvY2tlZFByaW50U3RyZWFtLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0U1MTUxQTgyNUIwMDQxMjNGRiAvKiBNYWluVGhyZWFk
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTc5Myw2ICsxOTE0LDExIEBACiAJCQl0YXJnZXQgPSA1
RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovOwogCQkJdGFyZ2V0UHJveHkgPSAxNDQ3
QUVDMzE4RkNFNTcwMDBCM0Q3RkYgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9Owor
CQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsK
KwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQgPSAxQ0QxODc4MTFENTU2
OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovOworCQkJdGFyZ2V0UHJveHkgPSAxQ0Qx
ODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9Owog
CQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsK
IAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSA2NUFGQTE2RjE2MzBC
OTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLzsKQEAgLTE4MjIsNiArMTk0OCwzMCBA
QAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFENTU2OTVD
MDBDQzdERUMgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsK
KwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2
IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJ
UFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7
CisJCX07CisJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0geworCQkJ
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5j
ZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87
CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1F
KSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTFDRDE4Nzg2MUQ1NTY5NUMw
MENDN0RFQyAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRp
b247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3
OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0gewor
CQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFBy
b2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9
IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25S
ZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29u
ZmlnICovOwpAQCAtMTkwNSw2ICsyMDU1LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklz
VmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwog
CQl9OworCQkxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBs
aXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJCQlp
c2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJ
CQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1
Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVD
IC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2li
bGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsK
IAkJNUQyNDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYUHJvamVjdCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7
CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3Uv
dW5pY29kZS91YnJrLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaAppbmRleCBlOWMw
ZWY2MjdiNjcyNzlmODZlNDYwNDRiZjBmMjU3MTAyZTBjNmNkLi4xOTc1YjlkYmVkNDQzYTkyNzQz
NmYwYTI3OTI5YmE1OGFmODcxODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3VicmsuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaApAQCAtMjQxLDYgKzI0
MSwzMSBAQCB1YnJrX29wZW5SdWxlcyhjb25zdCBVQ2hhciAgICAgKnJ1bGVzLAogICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAgICAgICpzdGF0dXMpOwogCiAvKioKKyAqIE9wZW4gYSBuZXcgVUJy
ZWFrSXRlcmF0b3IgZm9yIGxvY2F0aW5nIHRleHQgYm91bmRhcmllcyB1c2luZyBwcmVjb21waWxl
ZCBiaW5hcnkgcnVsZXMuCisgKiBPcGVuaW5nIGEgVUJyZWFrSXRlcmF0b3IgdGhpcyB3YXkgaXMg
c3Vic3RhbnRpYWxseSBmYXN0ZXIgdGhhbiB1c2luZyB1YnJrX29wZW5SdWxlcy4KKyAqIEJpbmFy
eSBydWxlcyBtYXkgYmUgb2J0YWluZWQgdXNpbmcgdWJya19nZXRCaW5hcnlSdWxlcy4gVGhlIGNv
bXBpbGVkIHJ1bGVzIGFyZSBub3QKKyAqIGNvbXBhdGlibGUgYWNyb3NzIGRpZmZlcmVudCBtYWpv
ciB2ZXJzaW9ucyBvZiBJQ1UsIG5vciBhY3Jvc3MgcGxhdGZvcm1zIG9mIGRpZmZlcmVudAorICog
ZW5kaWFubmVzcyBvciBkaWZmZXJlbnQgYmFzZSBjaGFyYWN0ZXIgc2V0IGZhbWlseSAoQVNDSUkg
dnMgRUJDRElDKS4KKyAqIEBwYXJhbSBiaW5hcnlSdWxlcyBBIHNldCBvZiBjb21waWxlZCBiaW5h
cnkgcnVsZXMgc3BlY2lmeWluZyB0aGUgdGV4dCBicmVha2luZworICogICAgICAgICAgICAgICAg
ICAgIGNvbnZlbnRpb25zLiBPd25lcnNoaXAgb2YgdGhlIHN0b3JhZ2UgY29udGFpbmluZyB0aGUg
Y29tcGlsZWQKKyAqICAgICAgICAgICAgICAgICAgICBydWxlcyByZW1haW5zIHdpdGggdGhlIGNh
bGxlciBvZiB0aGlzIGZ1bmN0aW9uLiBUaGUgY29tcGlsZWQKKyAqICAgICAgICAgICAgICAgICAg
ICBydWxlcyBtdXN0IG5vdCBiZSBtb2RpZmllZCBvciBkZWxldGVkIGR1cmluZyB0aGUgbGlmZSBv
ZiB0aGUKKyAqICAgICAgICAgICAgICAgICAgICBicmVhayBpdGVyYXRvci4KKyAqIEBwYXJhbSBy
dWxlc0xlbmd0aCBUaGUgbGVuZ3RoIG9mIGJpbmFyeVJ1bGVzIGluIGJ5dGVzOyBtdXN0IGJlID49
IDAuCisgKiBAcGFyYW0gdGV4dCAgICAgICAgVGhlIHRleHQgdG8gYmUgaXRlcmF0ZWQgb3Zlci4g
IE1heSBiZSBudWxsLCBpbiB3aGljaCBjYXNlCisgKiAgICAgICAgICAgICAgICAgICAgdWJya19z
ZXRUZXh0KCkgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSB0ZXh0IHRvIGJlIGl0ZXJhdGVkLgorICog
QHBhcmFtIHRleHRMZW5ndGggIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0ZXh0LCBvciAt
MSBpZiBudWxsLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gc3RhdHVzICAgICAgUG9pbnRlciB0byBV
RXJyb3JDb2RlIHRvIHJlY2VpdmUgYW55IGVycm9ycy4KKyAqIEByZXR1cm4gICAgICAgICAgICBV
QnJlYWtJdGVyYXRvciBmb3IgdGhlIHNwZWNpZmllZCBydWxlcy4KKyAqIEBzZWUgdWJya19nZXRC
aW5hcnlSdWxlcworICogQGRyYWZ0IElDVSA1OQorICovCitVX0RSQUZUIFVCcmVha0l0ZXJhdG9y
KiBVX0VYUE9SVDIKK3Vicmtfb3BlbkJpbmFyeVJ1bGVzKGNvbnN0IHVpbnQ4X3QgKmJpbmFyeVJ1
bGVzLCBpbnQzMl90IHJ1bGVzTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNo
YXIgKiAgdGV4dCwgaW50MzJfdCB0ZXh0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVy
cm9yQ29kZSAqICAgc3RhdHVzKTsKKworLyoqCiAgKiBUaHJlYWQgc2FmZSBjbG9uaW5nIG9wZXJh
dGlvbgogICogQHBhcmFtIGJpIGl0ZXJhdG9yIHRvIGJlIGNsb25lZAogICogQHBhcmFtIHN0YWNr
QnVmZmVyIDxlbT5EZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUyLCB1c2UgTlVM
TC48L2VtPjxicj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggODFhZjkxMjc2MTA2YjgxMjg5MTdk
YjhjNzljZjI1NGIyZTRkOGNmMC4uZDkwZTBmMzhlYzNkOGY1ODM2MDY3MmU2YWM4ZDllNzA4YTE5
OGVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTMwMSw2ICszMDEsNDIgQEAgaWYgKE5PVCBV
U0VfU1lTVEVNX01BTExPQykKICAgICBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTIGJtYWxsb2Mp
CiBlbmRpZiAoKQogCitzZXQoV1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVMKKyAgICB0ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKKyAgICB0ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dAorICAgIHRleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0CisgICAgdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0CisgICAgdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0CisgICAg
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0
CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksu
dHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksudHh0CispCisKK21hY3JvKEdFTkVSQVRFX0JSRUFLSU5HX1JVTEVTIF9pbnB1dCBfc3lt
Ym9sTmFtZSBfb3V0cHV0KQorICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVU
ICR7X291dHB1dH0KKyAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7V1RGX0RJUn0vU2NyaXB0cy9H
ZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKKyAgICAgICAgREVQRU5EUyAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJv
bG9ndWUudHh0ICR7X2lucHV0fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisgICAgICAgIENPTU1BTkQg
JHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZfRElSfS9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdS
dWxlU3RyaW5ncy5weSAtaW5jbHVkZURlZmluZXMgJHtfc3ltYm9sTmFtZX1SdWxlcyAke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
UHJvbG9ndWUudHh0ICR7X2lucHV0fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ID4gJHtfb3V0cHV0fQor
ICAgICAgICBWRVJCQVRJTSkKKyAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke19vdXRwdXR9
KQorICAgIEFERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7X2lucHV0fSAke19vdXRwdXR9KQorZW5k
bWFjcm8oKQorCitmb3JlYWNoIChfZmlsZSAke1dURl9CUkVBS0lOR19SVUxFU19TT1VSQ0VTfSkK
KyAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCisgICAg
R0VORVJBVEVfQlJFQUtJTkdfUlVMRVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7X2Zp
bGV9ICR7X25hbWV9ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvJHtf
bmFtZX0uY3BwKQorZW5kZm9yZWFjaCAoKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VU
UFVUICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLmNwcAorICAgIE1BSU5fREVQRU5ERU5DWSAke1dURl9ESVJ9L1Njcmlw
dHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CisgICAgREVQRU5EUyAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy50eHQKKyAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0v
U2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgLWluY2x1ZGVEZWZpbmVzIGN1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4
dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgPiAke0RFUklW
RURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAKKyAgICBWRVJCQVRJTSkKK2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7REVSSVZF
RF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLmNwcCkKK0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0Vf
RElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAk
e0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy5jcHApCisKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgdW5pY29kZS9p
Y3UvQ29sbGF0b3JJQ1UuY3BwCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YzI0YWE2NDFiMjE3OGNmNzJmNmYwYmRlYWExNGMzZjgzMTM4NDkxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMCwwICsxLDcy
IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitCUkVBS0lOR19SVUxF
U19GSUxFUyA9IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxl
cy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5icmsg
XAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5icmsgXAor
ICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmJyayBcCisg
ICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuYnJrIFwK
KyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuYnJrIFwK
KyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuYnJr
IFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuYnJr
IFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksu
YnJrCisKK0JSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TPSQoQlJFQUtJTkdfUlVMRVNfRklMRVM6
LmJyaz0uY3BwKQorCitpZmVxICgkKHNoZWxsICQoQ0MpIC1zdGQ9Z251KysxMSAteCBjKysgLUUg
LVAgLWRNICQoU0RLX0ZMQUdTKSAkKEZSQU1FV09SS19GTEFHUykgJChIRUFERVJfRkxBR1MpIC1J
ICQoV1RGKSAtaW5jbHVkZSAiJChXVEYpL3d0Zi9QbGF0Zm9ybS5oIiAvZGV2L251bGwgfCBncmVw
ICcgV1RGX1BMQVRGT1JNX0lPUyAnIHwgY3V0IC1kJyAnIC1mMyksIDEpCisgICAgV1RGX1BMQVRG
T1JNX0lPUyA9IDEKK2Vsc2UKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMAorZW5kaWYKKworaWZl
cSAoJChXVEZfUExBVEZPUk1fSU9TKSwgMSkKKwlBRERJVElPTkFMX0VNT0pJX1NVUFBPUlRfRk9S
X0NVUlNPUl9NT1ZFTUVOVCA9IDAKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMAorZWxz
ZQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5UID0gJChBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQpCisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyA9IDEKK2Vu
ZGlmCisKK0RFUEVOREVOQ0lFUyA9ICQoQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlMpCisKK2lm
ZXEgKCQoSEFWRV9JQ1VHRU5CUkspLCAxKQorREVQRU5ERU5DSUVTICs9ICQoQlJFQUtJTkdfUlVM
RVNfRklMRVMpCitlbmRpZgorCithbGwgOiAkKERFUEVOREVOQ0lFUykKKworQnJlYWtpbmdSdWxl
cy8lLmJyayA6IEJyZWFraW5nUnVsZXMvJS5wcAorCWljdWdlbmJyayAtYyAtciAkPCAtbyAkQAor
CitCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgOiBCcmVha2lu
Z1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcAorCXB5dGhvbiAkKFdURikvU2Ny
aXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgY3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzICQ8ID4gJEAKKworQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUuY3BwIDog
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUucHAKKwlweXRob24gJChXVEYpL1Njcmlw
dHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGxpbmVCcmVha0l0ZXJhdG9yJCpSdWxl
cyAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBw
IDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQpIC1ESEFWRV9FWFRSQV9JQ1VfTkFN
RURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRAICQ8CisKK0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCS1jYXQgJD8gfCB1bmlmZGVmIC1EQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVf
RVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzkwOGQzNTM2MGZl
Y2I1OGMzZWQyYTY5MWM0NjkwYzQ2NmQ4ZDlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQK
QEAgLTAsMCArMSwxNzYgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykK
KyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBydWxlIHNldCBpcyBiYXNl
ZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRwOi8v
c291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3Nv
dXJjZS9kYXRhL2Jya2l0ci8+LgorIyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3Jp
Z2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5
ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOworIyAq
IFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHBy
ZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZl
bnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1
YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0aGF0
IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgg
a2F0YWthcmEgdm9pY2VkIG1hcmtzLgorIyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRp
Y2F0b3Igc3ltYm9scy4KKworJENSICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IENSfV07CiskTEYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsKKyRD
b250cm9sID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9pY2VN
YXJrcyA9IFtcdUZGOUVcdUZGOUZdOyAjIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9p
Y2VkIG1hcmtzCiskRXh0ZW5kICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5k
fSAkVm9pY2VNYXJrcyAtIFtcdTBFMzAgXHUwRTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07Cisk
U3BhY2luZ01hcmsgPSBbW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRF
eHRlbmRdOworJEwgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsKKyRW
ICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9IFtc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOworJExWICAgICAgPSBbXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IExWfV07CiskTFZUICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gTFZUfV07CiskSGluMCAgICA9IFtcdTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExl
dHRlciBBLC4uLixIYQorJEhpblYgICAgPSBcdTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZpcmFt
YQorJEhpbjEgICAgPSBbXHUwOTE1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4u
LEhhCiskQmVuMCAgICA9IFtcdTA5ODUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4uLixI
YQorJEJlblYgICAgPSBcdTA5Q0Q7ICMgQmVuZ2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAgPSBb
XHUwOTk1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9IFtc
dTBBMDUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0gXHUw
QTREOyAjIEd1cm11a2hpIFNpZ24gVmlyYW1hCiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5XTsg
IyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5XTsg
IyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKKyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFyYXRp
IFNpZ24gVmlyYW1hCiskR3VqMSAgICA9IFtcdTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0
ZXIgS2EsLi4uLEhhCiskT3JpMCAgICA9IFtcdTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIg
QSwuLi4sSGEKKyRPcmlWICAgID0gXHUwQjREOyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3JpMSAg
ICA9IFtcdTBCMTUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAgICA9
IFtcdTBDMDUtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9IFx1
MEM0RDsgIyBUZWx1Z3UgU2lnbiBWaXJhbWEKKyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzldOyAj
IFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCiskS2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsgIyBL
YW5uYWRhIExldHRlciBBLC4uLixIYQorJEthblYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBTaWdu
IFZpcmFtYQorJEthbjEgICAgPSBbXHUwQzk1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwu
Li4sSGEKKyRNYWwwICAgID0gW1x1MEQwNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwu
Li4sSGEgCiskTWFsViAgICA9IFx1MEQ0RDsgIyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRNYWwx
ICAgID0gW1x1MEQxNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRSSSAg
ICAgID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9y
cworJFpXSiAgICAgPSBcdTIwMEQ7ICMgWmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9IFtc
dUZFMEZdOyAjIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgorCisjaWYgQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUy
NkY5IFx1Mjc2NCBcdTAwMDFGMzA4IFx1MDAwMUYzQzMtXHUwMDAxRjNDNCBcdTAwMDFGM0NBLVx1
MDAwMUYzQ0MgXHUwMDAxRjNGMyBcdTAwMDFGNDQxIFx1MDAwMUY0NjYtXHUwMDAxRjQ2OSBcdTAw
MDFGNDZFLVx1MDAwMUY0NkYgXHUwMDAxRjQ3MSBcdTAwMDFGNDczIFx1MDAwMUY0NzcgXHUwMDAx
RjQ4MS1cdTAwMDFGNDgyIFx1MDAwMUY0ODYtXHUwMDAxRjQ4NyBcdTAwMDFGNDhCIFx1MDAwMUY1
NzUgXHUwMDAxRjVFOCBcdTAwMDFGNjQ1LVx1MDAwMUY2NDcgXHUwMDAxRjY0QiBcdTAwMDFGNjRE
LVx1MDAwMUY2NEUgXHUwMDAxRjZBMyBcdTAwMDFGNkI0LVx1MDAwMUY2QjYgXHUyNjk1LVx1MjY5
NiBcdTI3MDggXHUwMDAxRjMzRSBcdTAwMDFGMzczIFx1MDAwMUYzOTMgXHUwMDAxRjNBNCBcdTAw
MDFGM0E4IFx1MDAwMUYzRUIgXHUwMDAxRjNFRCBcdTAwMDFGNEJCLVx1MDAwMUY0QkMgXHUwMDAx
RjUyNyBcdTAwMDFGNTJDIFx1MDAwMUY2ODAgXHUwMDAxRjY5MiBcdTAwMDFGOTI2IFx1MDAwMUY5
MzctXHUwMDAxRjkzOSBcdTAwMDFGOTNDLVx1MDAwMUY5M0VdOyAjIEVtb2ppIHRoYXQgcGFydGlj
aXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjZG
OSBcdTI3MEEtXHUyNzBEIFx1MDAwMUYzODUgXHUwMDAxRjNDMy1cdTAwMDFGM0M0IFx1MDAwMUYz
Q0EgXHUwMDAxRjNDQiBcdTAwMDFGNDQyLVx1MDAwMUY0NDMgXHUwMDAxRjQ0Ni1cdTAwMDFGNDUw
IFx1MDAwMUY0NjYtXHUwMDAxRjQ3OCBcdTAwMDFGNDdDIFx1MDAwMUY0ODEtXHUwMDAxRjQ4MyBc
dTAwMDFGNDg1LVx1MDAwMUY0ODcgXHUwMDAxRjRBQSBcdTAwMDFGNTc1IFx1MDAwMUY1OTAgXHUw
MDAxRjU5NSBcdTAwMDFGNTk2IFx1MDAwMUY2NDUtXHUwMDAxRjY0NyBcdTAwMDFGNjRCLVx1MDAw
MUY2NEYgXHUwMDAxRjZBMyBcdTAwMDFGNkI0LVx1MDAwMUY2QjYgXHUwMDAxRjZDMCBcdTAwMDFG
OTE4IFx1MDAwMUYzQzIgXHUwMDAxRjNDNyBcdTAwMDFGM0NDIFx1MDAwMUY1NzQgXHUwMDAxRjU3
QSBcdTAwMDFGNkNDIFx1MDAwMUY5MTktXHUwMDAxRjkxRSBcdTAwMDFGOTI2IFx1MDAwMUY5MzAg
XHUwMDAxRjkzMy1cdTAwMDFGOTM5IFx1MDAwMUY5M0MtXHUwMDAxRjkzRV0gOyAjIEVtb2ppIHRo
YXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2Vsc2UKKworICAgICRFbW9qaUZvclNl
cXMgPSBbXHUyNzY0IFx1MDAwMUY0NjYtXHUwMDAxRjQ2OSBcdTAwMDFGNDhCXTsgIyBFbW9qaSB0
aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1
MjYxRCBcdTI3MEEtXHUyNzBDIFx1MDAwMUYzODUgXHUwMDAxRjNDMy1cdTAwMDFGM0M0IFx1MDAw
MUYzQzcgXHUwMDAxRjNDQSBcdTAwMDFGNDQyLVx1MDAwMUY0NDMgXHUwMDAxRjQ0Ni1cdTAwMDFG
NDUwIFx1MDAwMUY0NjYtXHUwMDAxRjQ2OSBcdTAwMDFGNDZFLVx1MDAwMUY0NzggXHUwMDAxRjQ3
QyBcdTAwMDFGNDgxLVx1MDAwMUY0ODMgXHUwMDAxRjQ4NS1cdTAwMDFGNDg3IFx1MDAwMUY0QUEg
XHUwMDAxRjU5NiBcdTAwMDFGNjQ1LVx1MDAwMUY2NDcgXHUwMDAxRjY0Qi1cdTAwMDFGNjRGIFx1
MDAwMUY2QTMgXHUwMDAxRjZCNC1cdTAwMDFGNkI2IFx1MDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0
IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xV
MDAwMUYzRkItXFUwMDAxRjNGRl07ICMgRml0enBhdHJpY2sgbW9kaWZpZXJzCishIWNoYWluOwor
CisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIVJJTm9DaGFpbjsKKworI2Vu
ZGlmCisKKyEhZm9yd2FyZDsKKyRDUiAkTEY7CiskTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOwor
KCRMViB8ICRWKSAoJFYgfCAkVCk7CisoJExWVCB8ICRUKSAkVDsKKworI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAorCisgICAgJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsKKyAgICAkUkkgJFJJ
ICRFeHRlbmQqOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250
cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKworI2Vsc2UKKworICAgIFteJENvbnRyb2wgJENS
ICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKyAg
ICAkUkkgJFJJIC8gJFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMCAkSGluViAk
SGluMTsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKKyRCZW4wICRCZW5WICRCZW4xOyAj
IEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQorJFBhbjAgJFBhblYgJFBhbjE7ICMgR3VybXVraGkg
VmlyYW1hIChmb3J3YXJkKQorJEd1ajAgJEd1alYgJEd1ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChm
b3J3YXJkKQorJE9yaTAgJE9yaVYgJE9yaTE7ICMgT3JpeWEgVmlyYW1hIChmb3J3YXJkKQorJFRl
bDAgJFRlbFYgJFRlbDE7ICMgVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKKyRLYW4wICRLYW5WICRL
YW4xOyAjIEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQorJE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFs
YXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKKyRaV0ogJEVtb2ppRm9yU2VxczsgIyBEb250IGJyZWFr
IGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlN
b2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2
YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorISFyZXZlcnNlOwor
JExGICRDUjsKKygkTCB8ICRWIHwgJExWIHwgJExWVCkgJEw7CisoJFYgfCAkVCkgKCRMViB8ICRW
KTsKKyRUICgkTFZUIHwgJFQpOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAg
ICAkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kKiAkUkkg
JFJJOworICAgICRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5n
TWFyayBbXiRDb250cm9sICRDUiAkTEZdOworCisjZWxzZQorCisgICAgJEV4dGVuZCAgICAgIFte
JENvbnRyb2wgJENSICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07
CisgICAgJFJJICRSSSAvICRSSSAkUkk7CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4x
ICRIaW5WICRIaW4wOyAjIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKKyRCZW4xICRCZW5W
ICRCZW4wOyAjIEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKKyRQYW4xICRQYW5WICRQYW4wOyAj
IEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCiskR3VqMSAkR3VqViAkR3VqMDsgIyBHdWphcmF0
aSBWaXJhbWEgKGJhY2t3YXJkKQorJE9yaTEgJE9yaVYgJE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1h
IChiYWNrd2FyZCkKKyRUZWwxICRUZWxWICRUZWwwOyAjIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJk
KQorJEthbjEgJEthblYgJEthbjA7ICMgS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQorJE1hbDEg
JE1hbFYgJE1hbDA7ICMgTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCiskRW1vamlGb3JTZXFz
ICRaV0o7ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlNb2RzICRF
bW9qaVZhcj8gJEVtb2ppRm9yTW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1v
amkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9k
aWZpZXIKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgISFzYWZlX3JldmVy
c2U7CisgICAgJFJJICRSSSs7CisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9y
TW9kczsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKyAgICAkUkkgJFJJKzsKKyAgICAkRW1vamlGb3JN
b2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOworCisjZWxzZQorCisgICAgWyRFbW9qaVZhciAk
RW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIg
JEVtb2ppTW9kc10rOworICAgICEhc2FmZV9yZXZlcnNlOworICAgICEhc2FmZV9mb3J3YXJkOwor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTUxZTEz
N2IyNzEyZDNmYzllZWE4MjM0YTY1ODNkZGM1ODllYWZhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0CkBAIC0wLDAgKzEsMzcyIEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5v
cmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQUkgPSBbOkxpbmVCcmVhayA9
IEFtYmlndW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07CiskQkEgPSBb
WzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxpbmVCcmVh
ayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6
XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENCID0gWzpMaW5lQnJlYWsg
PSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0
aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1AgPSBbOkxp
bmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJp
YWdlX1JldHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9T
VUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9O
QU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsKKwor
I2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNlbmRpZgor
CiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpd
OworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVv
Z3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElOID0gW1s6TGluZUJyZWFr
ID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhf
TnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07CiskSlYgPSBb
OkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYgPSBbOkxp
bmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsK
KyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICRO
U19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxpbmVCcmVh
ayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVt
ZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpd
IC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJID0gW1xV
MDAwMUYxRTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4
dDpdOworJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGluZUJyZWFr
ID0gU3BhY2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOworJFdKID0g
WzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3du
Ol07CiskWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7CiskRW1v
amlWYXIgPSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRF
bW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFx1MDAwMUYzMDggXHUw
MDAxRjNDMy1cdTAwMDFGM0M0IFx1MDAwMUYzQ0EtXHUwMDAxRjNDQyBcdTAwMDFGM0YzIFx1MDAw
MUY0NDEgXHUwMDAxRjQ2Ni1cdTAwMDFGNDY5IFx1MDAwMUY0NkUtXHUwMDAxRjQ2RiBcdTAwMDFG
NDcxIFx1MDAwMUY0NzMgXHUwMDAxRjQ3NyBcdTAwMDFGNDgxLVx1MDAwMUY0ODIgXHUwMDAxRjQ4
Ni1cdTAwMDFGNDg3IFx1MDAwMUY0OEIgXHUwMDAxRjU3NSBcdTAwMDFGNUU4IFx1MDAwMUY2NDUt
XHUwMDAxRjY0NyBcdTAwMDFGNjRCIFx1MDAwMUY2NEQtXHUwMDAxRjY0RSBcdTAwMDFGNkEzIFx1
MDAwMUY2QjQtXHUwMDAxRjZCNiBcdTI2OTUtXHUyNjk2IFx1MjcwOCBcdTAwMDFGMzNFIFx1MDAw
MUYzNzMgXHUwMDAxRjM5MyBcdTAwMDFGM0E0IFx1MDAwMUYzQTggXHUwMDAxRjNFQiBcdTAwMDFG
M0VEIFx1MDAwMUY0QkItXHUwMDAxRjRCQyBcdTAwMDFGNTI3IFx1MDAwMUY1MkMgXHUwMDAxRjY4
MCBcdTAwMDFGNjkyIFx1MDAwMUY5MjYgXHUwMDAxRjkzNy1cdTAwMDFGOTM5IFx1MDAwMUY5M0Mt
XHUwMDAxRjkzRV07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisg
ICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3MEQgXHUwMDAxRjM4
NSBcdTAwMDFGM0MzLVx1MDAwMUYzQzQgXHUwMDAxRjNDQSBcdTAwMDFGM0NCIFx1MDAwMUY0NDIt
XHUwMDAxRjQ0MyBcdTAwMDFGNDQ2LVx1MDAwMUY0NTAgXHUwMDAxRjQ2Ni1cdTAwMDFGNDc4IFx1
MDAwMUY0N0MgXHUwMDAxRjQ4MS1cdTAwMDFGNDgzIFx1MDAwMUY0ODUtXHUwMDAxRjQ4NyBcdTAw
MDFGNEFBIFx1MDAwMUY1NzUgXHUwMDAxRjU5MCBcdTAwMDFGNTk1IFx1MDAwMUY1OTYgXHUwMDAx
RjY0NS1cdTAwMDFGNjQ3IFx1MDAwMUY2NEItXHUwMDAxRjY0RiBcdTAwMDFGNkEzIFx1MDAwMUY2
QjQtXHUwMDAxRjZCNiBcdTAwMDFGNkMwIFx1MDAwMUY5MTggXHUwMDAxRjNDMiBcdTAwMDFGM0M3
IFx1MDAwMUYzQ0MgXHUwMDAxRjU3NCBcdTAwMDFGNTdBIFx1MDAwMUY2Q0MgXHUwMDAxRjkxOS1c
dTAwMDFGOTFFIFx1MDAwMUY5MjYgXHUwMDAxRjkzMCBcdTAwMDFGOTMzLVx1MDAwMUY5MzkgXHUw
MDAxRjkzQy1cdTAwMDFGOTNFXTsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZp
ZXJzCisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcdTAwMDFGNDY2LVx1
MDAwMUY0NjkgXHUwMDAxRjQ4Ql07CisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBB
LVx1MjcwQyBcdTAwMDFGMzg1IFx1MDAwMUYzQzMtXHUwMDAxRjNDNCBcdTAwMDFGM0M3IFx1MDAw
MUYzQ0EgXHUwMDAxRjQ0Mi1cdTAwMDFGNDQzIFx1MDAwMUY0NDYtXHUwMDAxRjQ1MCBcdTAwMDFG
NDY2LVx1MDAwMUY0NjkgXHUwMDAxRjQ2RS1cdTAwMDFGNDc4IFx1MDAwMUY0N0MgXHUwMDAxRjQ4
MS1cdTAwMDFGNDgzIFx1MDAwMUY0ODUtXHUwMDAxRjQ4NyBcdTAwMDFGNEFBIFx1MDAwMUY1OTYg
XHUwMDAxRjY0NS1cdTAwMDFGNjQ3IFx1MDAwMUY2NEItXHUwMDAxRjY0RiBcdTAwMDFGNkEzIFx1
MDAwMUY2QjQtXHUwMDAxRjZCNiBcdTAwMDFGNkMwXTsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBh
dHJpY2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUw
MDAxRjNGRl07CiskZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07
CiskQUxQbHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOworJEFMY20gPSAkQUxQbHVzICRDTSo7
CiskQkFjbSA9ICRCQSAkQ00qOworJEJCY20gPSAkQkIgJENNKjsKKyRCMmNtID0gJEIyICRDTSo7
CiskQ0xjbSA9ICRDTCAkQ00qOworJENQY20gPSAkQ1AgJENNKjsKKyRFWGNtID0gJEVYICRDTSo7
CiskR0xjbSA9ICRHTCAkQ00qOworJEhMY20gPSAkSEwgJENNKjsKKyRIWWNtID0gJEhZICRDTSo7
CiskSDJjbSA9ICRIMiAkQ00qOworJEgzY20gPSAkSDMgJENNKjsKKyRJRGNtID0gJElEICRDTSo7
CiskSU5jbSA9ICRJTiAkQ00qOworJElTY20gPSAkSVMgJENNKjsKKyRKTGNtID0gJEpMICRDTSo7
CiskSlZjbSA9ICRKViAkQ00qOworJEpUY20gPSAkSlQgJENNKjsKKyROU2NtID0gJE5TICRDTSo7
CiskTlVjbSA9ICROVSAkQ00qOworJE9QY20gPSAkT1AgJENNKjsKKyRQT2NtID0gJFBPICRDTSo7
CiskUFJjbSA9ICRQUiAkQ00qOworJFFVY20gPSAkUVUgJENNKjsKKyRSSWNtID0gJFJJICRDTSo7
CiskU1ljbSA9ICRTWSAkQ00qOworJFdKY20gPSAkV0ogJENNKjsKKworISFmb3J3YXJkOworJENB
Tl9DTSA9IFteJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRDQU5UX0NNID0gWyRTUCAk
QksgJENSICRMRiAkTkwgJFpXICRDTV07CiskQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYg
JE5MICRaVyAkU1BdOworJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRTWSAk
V0ogJEdMICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsKKyRBTF9GT0xMT1cg
PSBbJEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOworJExCNEJyZWFrcyA9IFskQksgJENS
ICRMRiAkTkxdOworJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5MXTsKKyRMQjhCcmVh
a3MgPSBbJExCNEJyZWFrcyAkWlddOworJExCOE5vbkJyZWFrcyA9IFtbJExCNE5vbkJyZWFrc10g
LSBbJFpXXV07CiskTEIxOE5vbkJyZWFrcyA9IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOworJExC
MThCcmVha3MgPSBbJExCOEJyZWFrcyAkU1BdOworJExCMjBOb25CcmVha3MgPSBbJExCMThOb25C
cmVha3MgLSAkQ0JdOworJEFMUGx1cyAkQ00rOworJEJBICRDTSs7CiskQkIgJENNKzsKKyRCMiAk
Q00rOworJENMICRDTSs7CiskQ1AgJENNKzsKKyRFWCAkQ00rOworJEdMICRDTSs7CiskSEwgJENN
KzsKKyRIWSAkQ00rOworJEgyICRDTSs7CiskSDMgJENNKzsKKyRJRCAkQ00rOworJElOICRDTSs7
CiskSVMgJENNKzsKKyRKTCAkQ00rOworJEpWICRDTSs7CiskSlQgJENNKzsKKyROUyAkQ00rOwor
JE5VICRDTSs7CiskT1AgJENNKzsKKyRQTyAkQ00rOworJFBSICRDTSs7CiskUVUgJENNKzsKKyRS
SSAkQ00rOworJFNZICRDTSs7CiskV0ogJENNKzsKKyRDUiAkTEYgezEwMH07CiskTEI0Tm9uQnJl
YWtzPyAkTEI0QnJlYWtzIHsxMDB9OworJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEwMH07Cisk
Q00rICRMQjRCcmVha3MgezEwMH07CiskTEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsKKyRDQU5fQ00g
JENNKiBbJFNQICRaV107CiskQ00rIFskU1AgJFpXXTsKKyRFbW9qaUZvclNlcXMgJEVtb2ppVmFy
PyAkRW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7CiskQ0FOX0NNICRDTSs7CiskQ00rOwor
JENBTl9DTSAkQ00qICRXSmNtOworJExCOE5vbkJyZWFrcyAkV0pjbTsKKyRDTSsgJFdKY207Cisk
V0pjbSAkQ0FOVF9DTTsKKyRXSmNtICRDQU5fQ00gJENNKjsKKyRHTGNtICRDQU5fQ00gJENNKjsK
KyRHTGNtICRDQU5UX0NNOworW1skTEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSog
JEdMY207CiskQ00rIEdMY207CiskTEI4Tm9uQnJlYWtzICRDTDsKKyRDQU5fQ00gJENNKiAkQ0w7
CiskQ00rICRDTDsKKyRMQjhOb25CcmVha3MgJENQOworJENBTl9DTSAkQ00qICRDUDsKKyRDTSsg
JENQOworJExCOE5vbkJyZWFrcyAkRVg7CiskQ0FOX0NNICRDTSogJEVYOworJENNKyAkRVg7Cisk
TEI4Tm9uQnJlYWtzICRJUzsKKyRDQU5fQ00gJENNKiAkSVM7CiskQ00rICRJUzsKKyRMQjhOb25C
cmVha3MgJFNZOworJENBTl9DTSAkQ00qICRTWTsKKyRDTSsgJFNZOworJE9QY20gJFNQKiAkQ0FO
X0NNICRDTSo7CiskT1BjbSAkU1AqICRDQU5UX0NNOworJE9QY20gJFNQKyAkQ00rICRBTF9GT0xM
T1c/OworJFFVY20gJFNQKiAkT1BjbTsKKygkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOworJEIy
Y20gJFNQKiAkQjJjbTsKKyRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207CiskQ00rICRRVWNtOwor
JFFVY20gLj87CiskUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00qOworJExCMjBOb25CcmVha3MgJENN
KiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsgCiskQkJjbSBbXiRDQl07CiskQkJjbSAkTEIyME5v
bkJyZWFrcyAkQ00qOworJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87CiskU1ljbSAkSExj
bTsKKygkQUxjbSB8ICRITGNtKSAkSU5jbTsKKyRDTSsgJElOY207CiskRVhjbSAkSU5jbTsKKyRJ
RGNtICRJTmNtOworJElOY20gJElOY207CiskTlVjbSAkSU5jbTsKKyRJRGNtICRQT2NtOworJEFM
Y20gJE5VY207CiskSExjbSAkTlVjbTsKKyRDTSsgJE5VY207CiskTlVjbSAkQUxjbTsKKyROVWNt
ICRITGNtOworJFBSY20gJElEY207CiskUFJjbSAoJEFMY20gfCAkSExjbSk7CiskUE9jbSAoJEFM
Y20gfCAkSExjbSk7CisoJFBSY20gfCAkUE9jbSk/ICgkT1BjbSB8ICRIWWNtKT8gJE5VY20gKCRO
VWNtIHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRDUGNtKT8gKCRQUmNtIHwgJFBPY20pPzsK
KyRKTGNtICgkSkxjbSB8ICRKVmNtIHwgJEgyY20gfCAkSDNjbSk7CisoJEpWY20gfCAkSDJjbSkg
KCRKVmNtIHwgJEpUY20pOworKCRKVGNtIHwgJEgzY20pICRKVGNtOworKCRKTGNtIHwgJEpWY20g
fCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOworKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8
ICRIMmNtIHwgJEgzY20pICRQT2NtOworJFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRI
MmNtIHwgJEgzY20pOworKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNtKTsKKyRDTSsgKCRB
TGNtIHwgJEhMY20pOworJElTY20gKCRBTGNtIHwgJEhMY20pOworKCRBTGNtIHwgJEhMY20gfCAk
TlVjbSkgJE9QY207CiskQ00rICRPUGNtOworJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7
CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRSSWNtICRSSWNtOworCisj
ZW5kaWYKKworJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7CisKKyEhcmV2ZXJz
ZTsKKyRDTSsgJEFMUGx1czsKKyRDTSsgJEJBOworJENNKyAkQkI7CiskQ00rICRCMjsKKyRDTSsg
JENMOworJENNKyAkQ1A7CiskQ00rICRFWDsKKyRDTSsgJEdMOworJENNKyAkSEw7CiskQ00rICRI
WTsKKyRDTSsgJEgyOworJENNKyAkSDM7CiskQ00rICRJRDsKKyRDTSsgJElOOworJENNKyAkSVM7
CiskQ00rICRKTDsKKyRDTSsgJEpWOworJENNKyAkSlQ7CiskQ00rICROUzsKKyRDTSsgJE5VOwor
JENNKyAkT1A7CiskQ00rICRQTzsKKyRDTSsgJFBSOworJENNKyAkUVU7CisKKyNpZiBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRDTSsgJFJJOworCisjZW5kaWYKKworJENNKyAkU1k7
CiskQ00rICRXSjsKKyRDTSs7CiskQUxfRk9MTE9XICRDTSsgLyAoWyRCSyAkQ1IgJExGICROTCAk
Wlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14kT1AgJENNICRTUF0gfCBb
JEFMIHtlb2Z9XSkpOworWyRQUl0gLyAkQ00rIFskQksgJENSICRMRiAkTkwgJFpXICRTUCB7ZW9m
fV07CiskTEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtzLSRDTV07CiskTEI0QnJlYWtzICRDTSsgJENB
Tl9DTTsKKyRMRiAkQ1I7CitbJFNQICRaV10gWyRMQjROb25CcmVha3MtJENNXTsKK1skU1AgJFpX
XSAkQ00rICRDQU5fQ007CiskRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2ppVmFy
PyAkRW1vamlGb3JTZXFzOworJENNKyAkQ0FOX0NNOworJENNKiAkV0ogJENNKiAkQ0FOX0NNOwor
JENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsKKyRDQU5UX0NNICRDTSogJFdKOworJENNKiAk
Q0FOX0NNICRDTSogJFdKOworJENNKiAkR0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAk
QkEgJEhZXV07CiskQ0FOVF9DTSAkQ00qICRHTDsKKyRDTSogJENBTl9DTSAkQ00qICRHTDsKKyRD
TCAkQ00rICRDQU5fQ007CiskQ1AgJENNKyAkQ0FOX0NNOworJEVYICRDTSsgJENBTl9DTTsKKyRJ
UyAkQ00rICRDQU5fQ007CiskU1kgJENNKyAkQ0FOX0NNOworJENMIFskTEI4Tm9uQnJlYWtzLSRD
TV07CiskQ1AgWyRMQjhOb25CcmVha3MtJENNXTsKKyRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOwor
JElTIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskU1kgWyRMQjhOb25CcmVha3MtJENNXTsKK1skQ0wg
JENQICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7IAorJENNKiAkQ0FOX0NNICRTUCog
JENNKiAkT1A7CiskQ0FOVF9DTSAkU1AqICRDTSogJE9QOworJEFMX0ZPTExPVz8gJENNKyAkU1Ag
JFNQKiAkQ00qICRPUDsKKyRBTF9GT0xMT1dfTk9DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskQ00q
ICRBTF9GT0xMT1dfQ00gJENNKyAkU1ArICRDTSogJE9QOworJFNZICRDTSAkU1ArICRPUDsKKyRD
TSogJE9QICRTUCogJENNKiAkUVU7CiskQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7Cisk
Q00qICRCMiAkU1AqICRDTSogJEIyOworJENNKiAkUVUgJENNKiAkQ0FOX0NNOworJENNKiAkUVUg
JExCMThOb25CcmVha3M7CiskQ00qICRDQU5fQ00gJENNKiAkUVU7CiskQ0FOVF9DTSAkQ00qICRR
VTsKKyRDTSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBbJExCMjBOb25CcmVha3MtJENNXTsKKyRD
TSogWyRMQjIwTm9uQnJlYWtzLSRDTV0gJENNKiAkQkI7CitbXiRDQl0gJENNKiAkQkI7CitbXiRD
Ql0gJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsKKyRDTSogJEhMICRDTSogJFNZOworJENNKiAk
SU4gJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICRJTiAkQ00qICRFWDsKKyRDTSogJElOICRD
TSogJElEOworJENNKiAkSU4gJENNKiAkSU47CiskQ00qICRJTiAkQ00qICROVTsKKyRDTSogJFBP
ICRDTSogJElEOworJENNKiAkTlUgJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICgkQUxQbHVz
IHwgJEhMKSAkQ00qICROVTsKKyRDTSogJElEICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRI
TCkgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQTzsKKygkQ00qICgkUFIg
fCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElTIHwgJFNZKSkqICRD
TSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykpPzsKKyRDTSogKCRI
MyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7CiskQ00qICgkSlQgfCAkSlYpICRDTSogKCRI
MiB8ICRKVik7CiskQ00qICRKVCAkQ00qICgkSDMgfCAkSlQpOworJENNKiAkSU4gJENNKiAoJEgz
IHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsKKyRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRK
VCB8ICRKViB8ICRKTCk7CiskQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSog
JFBSOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICgk
QUxQbHVzIHwgJEhMKSAkQ00qICRJUzsKKyRDTSogJE9QICRDTSogKCRBTFBsdXMgfCAkSEwgfCAk
TlUpOworJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7CisKKyNpZiBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRDTSogJFJJICRDTSogJFJJOworCisjZW5kaWYKKwor
JEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7CisKKyEhc2FmZV9mb3J3YXJkOwor
WyRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRTUCAkZGljdGlvbmFyeV0rIFte
JENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJGRpY3Rpb25hcnldOworJGRpY3Rp
b25hcnkgJGRpY3Rpb25hcnk7CisgICAgCishIXNhZmVfcmV2ZXJzZTsKKyRDTSsgW14kQ00gJEJL
ICRDUiAkTEYgJE5MICRaVyAkU1BdOworJENNKyAkU1AgLyAuOworJFNQKyAkQ00qICRPUDsKKyRT
UCsgJENNKiAkUVU7CiskU1ArICRDTSogKCRDTCB8ICRDUCk7CiskU1ArICRDTSogJEIyOworJENN
KiAoJEhZIHwgJEJBKSAkQ00qICRITDsKKygkQ00qICgkSVMgfCAkU1kpKSsgJENNKiAkTlU7Ciso
JENMIHwgJENQKSAkQ00qICgkTlUgfCAkSVMgfCAkU1kpOworJGRpY3Rpb25hcnkgJGRpY3Rpb25h
cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWIzZjY2ZjQyYWYx
MzhlZDU4ZmY0MjFmNjc2OGQ4ZmQ1ODAxMjgyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApA
QCAtMCwwICsxLDM4IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisj
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCishIWNoYWluOworISFMQkNNTm9DaGFpbjsK
KyEhbG9va0FoZWFkSGFyZEJyZWFrOworCisjaWYgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUwor
CisgICAgJENKID0gWzpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjpdOwor
CisjZWxzZQorCisgICAgJENKID0gW1x1MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2
M1x1MzA4M1x1MzA4NVx1MzA4N1x1MzA4RVx1MzA5NVx1MzA5Nlx1MzBBMVx1MzBBM1x1MzBBNVx1
MzBBN1x1MzBBOVx1MzBDM1x1MzBFM1x1MzBFNVx1MzBFN1x1MzBFRVx1MzBGNVx1MzBGNlx1MzBG
Q1x1MzFGMFx1MzFGMVx1MzFGMlx1MzFGM1x1MzFGNFx1MzFGNVx1MzFGNlx1MzFGN1x1MzFGOFx1
MzFGOVx1MzFGQVx1MzFGQlx1MzFGQ1x1MzFGRFx1MzFGRVx1MzFGRlx1RkY2N1x1RkY2OFx1RkY2
OVx1RkY2QVx1RkY2Qlx1RkY2Q1x1RkY2RFx1RkY2RVx1RkY2Rlx1RkY3MF07CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwN2MwY2E1YWE3YjJmZmJm
OGIyY2Q5MDkyYWE1ZjNlMWRiYTQwOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKQEAgLTAs
MCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5
cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVY
X1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOwor
JE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOwor
JElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRiOGYwZmY1MTg1NmQ5
N2M5YzE0ZTEyMTYzNzM0ZmRmYzk3YzljYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0
CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykK
KyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEz
XTsKKyRFWF9TVUIgPSBbXHUwMDIxXHUwMDNGXHVGRjAxXHVGRjFGXTsKKyRJRF9TVUIgPSAnJzsK
KyRJTl9TVUIgPSBbXHUyMDI1XHUyMDI2XTsKKyRJU19TVUIgPSBbXHUwMDNBXHUwMDNCXTsKKyRO
U19TVUIgPSBbXHUyMDNDXHUyMDQ3XHUyMDQ4XHUyMDQ5XHUzMDA1XHUzMDFDXHUzMDNCXHUzMDlE
XHUzMDlFXHUzMEEwXHUzMEZCXHUzMEZEXHUzMEZFXHVGRjFBXHVGRjFCXHVGRjY1XTsKKyRQT19T
VUIgPSBbXHUwMDI1XHUwMEEyXHUwMEIwXHUyMDMwXHUyMDMyXHUyMDMzXHUyMTAzXHVGRjA1XHVG
RkUwXTsKKyRQUl9TVUIgPSBbXHUwMDI0XHUwMEEzXHUwMEE1XHUyMEFDXHUyMTE2XHVGRjA0XHVG
RkUxXHVGRkU1XTsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVYX1NVQiAkSU5fU1VCICRJU19T
VUIgJE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZU5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2JiYzhhODgxNWU0
ZDBkY2ZiOTYwYzExMmY2MGE4MzhkM2E0Mjg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNK
Sy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUu
b3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVY
X1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElT
X1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMDVcdTMwM0JcdTMwOURcdTMwOUVcdTMwRkRcdTMw
RkVdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJElOX1NV
QiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNzQyODc5ZGQxZjgyZWI2MmQyOGQ4YWE3YmNkZGY0NDZkMDczODdm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5
OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAw
OSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9T
VUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQ
Ul9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDdjMGNhNWFhN2IyZmZi
ZjhiMmNkOTA5MmFhNWYzZTFkYmE0MDkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0
CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykK
KyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEz
XTsKKyRFWF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIg
PSAnJzsKKyROU19TVUIgPSBbXHUzMDFDXHUzMEEwXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIg
PSAnJzsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTJjZjZhMDgyNmFkYTRlZGNmY2YzOTQzYjY4OWY4YzA2ZTBiZDc0OAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsTm9uQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25v
bGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9i
aWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFf
U1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7Cisk
SVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7
CiskSURfQUREID0gWyRDSl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50
eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc0Mjg3OWRkMWY4MmViNjJkMjhkOGFhN2Jj
ZGRmNDQ2ZDA3Mzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dApAQCAtMCwwICsx
LDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdo
dCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJp
Z2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURf
U1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7Cisk
UE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRD
Sl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjc0Mjg3OWRkMWY4MmViNjJkMjhkOGFhN2JjZGRmNDQ2ZDA3Mzg3ZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9y
Y2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0g
Jyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VC
ID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IGIwZGJlNTk3ZjM5MWYxMzJjMjhlNjQyZjdk
OTc1YjExMGY3NWY4MjYuLjUyNzBhMjU5MWFjOWJjODAwNTkzYzUyZDFiNWNiYTc1NzQ3NGE2NTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCkBAIC0zMSw5ICsz
MSw2IEBACiAjaW5jbHVkZSA8dW5pY29kZS91YnJrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgogCi0vLyBGSVhNRTogVGhpcyBuZWVkcyBhIGJldHRlciBuYW1lCi0jZGVm
aW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkpCi0KIG5h
bWVzcGFjZSBXVEYgewogCiAvLyBJdGVyYXRvciBpbml0aWFsaXphdGlvbgpAQCAtNjEsNiArNTgs
MTIgQEAgc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMo
Y29uc3QgY2hhciogYnJlYWtSdWxlcykKIAogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oTUFDKSAm
JiAhUExBVEZPUk0oSU9TKQorVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNl
dChCcmVha2luZ1J1bGVTZXQpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKIAog
Ly8gSXRlcmF0b3IgdGV4dCBzZXR0aW5nCiAKQEAgLTE2NCwxNDMgKzE2NywyNyBAQCBVQnJlYWtJ
dGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogICAgIHJl
dHVybiBzZXRUZXh0Rm9ySXRlcmF0b3IoKnN0YXRpY1NlbnRlbmNlQnJlYWtJdGVyYXRvciwgc3Ry
aW5nKTsKIH0KIAorI2lmICFQTEFURk9STShJT1MpCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGNy
ZWF0ZUN1cnNvck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2soKQoreworICAgIGlmIChhdXRv
KiBpdGVyYXRvciA9IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQ6OkN1
cnNvck1vdmVtZW50KSkKKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yOworICAgIHJldHVybiBpbml0
aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzKTsKK30K
KyNlbmRpZgorCiBVQnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcihTdHJpbmdW
aWV3IHN0cmluZykKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIC8vIFRoaXMgcnVsZSBzZXQg
aXMgYmFzZWQgb24gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NwotICAg
IC8vIDxodHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVs
ZWFzZS01Ny0xL3NvdXJjZS9kYXRhL2Jya2l0ci8+LgotICAgIC8vIFRoZSBtYWpvciBkaWZmZXJl
bmNlcyBmcm9tIHRoZSBvcmlnaW5hbCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6Ci0gICAgLy8gKiBS
ZXBsYWNlZCAnW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBTcGFjaW5nTWFya31dJyB3aXRo
ICdbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya30gLSAkRXh0ZW5kXScgZm9yIElD
VSAzLjggb3IgZWFybGllcjsKLSAgICAvLyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEg
Y3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsK
LSAgICAvLyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBh
ZnRlciB2aXJhbWEgc2lnbnMgb2YgSW5kaWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVnIDE1
NzkwKSwgYW5kOwotICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZy
b20gbW92aW5nIGJlZm9yZSBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJr
cy4KLSAgICAvLyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4K
LSAgICBzdGF0aWMgY29uc3QgY2hhcioga1J1bGVzID0KLSAgICAgICAgIiRDUiAgICAgID0gW1xc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ1J9XTsiCi0gICAgICAgICIkTEYgICAgICA9IFtc
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExGfV07IgotICAgICAgICAiJENvbnRyb2wgPSBb
XFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07IgotICAgICAgICAiJFZvaWNl
TWFya3MgPSBbXFx1RkY5RVxcdUZGOUZdOyIgLy8gSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2Fu
YSB2b2ljZWQgbWFya3MKLSAgICAgICAgIiRFeHRlbmQgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVy
X0JyZWFrID0gRXh0ZW5kfSAkVm9pY2VNYXJrcyAtIFtcXHUwRTMwIFxcdTBFMzIgXFx1MEU0NSBc
XHUwRUIwIFxcdTBFQjJdXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgPSBbW1xccHtHZW5lcmFs
X0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfV0gLSAkRXh0ZW5kXTsiCi0gICAgICAgICIkTCAgICAg
ICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsiCi0gICAgICAgICIkViAgICAg
ICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFZ9XTsiCi0gICAgICAgICIkVCAgICAg
ICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFR9XTsiCi0gICAgICAgICIkTFYgICAg
ICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07IgotICAgICAgICAiJExWVCAg
ICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVlR9XTsiCi0gICAgICAgICIkSGlu
MCAgICA9IFtcXHUwOTA1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEK
LSAgICAgICAgIiRIaW5WICAgID0gXFx1MDk0RDsiIC8vIERldmFuYWdhcmkgU2lnbiBWaXJhbWEK
LSAgICAgICAgIiRIaW4xICAgID0gW1xcdTA5MTUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJpIExl
dHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRCZW4wICAgID0gW1xcdTA5ODUtXFx1MDlCOV07IiAv
LyBCZW5nYWxpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEJlblYgICAgPSBcXHUwOUNEOyIg
Ly8gQmVuZ2FsaSBTaWduIFZpcmFtYQotICAgICAgICAiJEJlbjEgICAgPSBbXFx1MDk5NS1cXHUw
OUI5XTsiIC8vIEJlbmdhbGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJFBhbjAgICAgPSBb
XFx1MEEwNS1cXHUwQTM5XTsiIC8vIEd1cm11a2hpIExldHRlciBBLC4uLixIYQotICAgICAgICAi
JFBhblYgICAgPSBcXHUwQTREOyIgLy8gR3VybXVraGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRQ
YW4xICAgID0gW1xcdTBBMTUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhh
Ci0gICAgICAgICIkR3VqMCAgICA9IFtcXHUwQTg1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0
dGVyIEEsLi4uLEhhCi0gICAgICAgICIkR3VqViAgICA9IFxcdTBBQ0Q7IiAvLyBHdWphcmF0aSBT
aWduIFZpcmFtYQotICAgICAgICAiJEd1ajEgICAgPSBbXFx1MEE5NS1cXHUwQUI5XTsiIC8vIEd1
amFyYXRpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRPcmkwICAgID0gW1xcdTBCMDUtXFx1
MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRPcmlWICAgID0gXFx1
MEI0RDsiIC8vIE9yaXlhIFNpZ24gVmlyYW1hCi0gICAgICAgICIkT3JpMSAgICA9IFtcXHUwQjE1
LVxcdTBCMzldOyIgLy8gT3JpeWEgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJFRlbDAgICAg
PSBbXFx1MEMwNS1cXHUwQzM5XTsiIC8vIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAg
IiRUZWxWICAgID0gXFx1MEM0RDsiIC8vIFRlbHVndSBTaWduIFZpcmFtYQotICAgICAgICAiJFRl
bDEgICAgPSBbXFx1MEMxNC1cXHUwQzM5XTsiIC8vIFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCi0g
ICAgICAgICIkS2FuMCAgICA9IFtcXHUwQzg1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIg
QSwuLi4sSGEKLSAgICAgICAgIiRLYW5WICAgID0gXFx1MENDRDsiIC8vIEthbm5hZGEgU2lnbiBW
aXJhbWEKLSAgICAgICAgIiRLYW4xICAgID0gW1xcdTBDOTUtXFx1MENCOV07IiAvLyBLYW5uYWRh
IExldHRlciBBLC4uLixIYQotICAgICAgICAiJE1hbDAgICAgPSBbXFx1MEQwNS1cXHUwRDM5XTsi
IC8vIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWxWICAgID0gXFx1MEQ0
RDsiIC8vIE1hbGF5YWxhbSBTaWduIFZpcmFtYQotICAgICAgICAiJE1hbDEgICAgPSBbXFx1MEQx
NS1cXHUwRDM5XTsiIC8vIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRSSSAg
ICAgID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsiIC8vIEVtb2ppIHJlZ2lvbmFsIGluZGlj
YXRvcnMKLSAgICAgICAgIiRaV0ogICAgID0gXFx1MjAwRDsiIC8vIFplcm8gd2lkdGggam9pbmVy
Ci0gICAgICAgICIkRW1vamlWYXIgPSBbXFx1RkUwRl07IiAvLyBFbW9qaS1zdHlsZSB2YXJpYXRp
b24gc2VsZWN0b3IKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFbW9q
aUZvclNlcXMgPSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBc
XFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNG
MyBcXFUwMDAxRjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAx
RjQ2RiBcXFUwMDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUw
MDAxRjQ4MiBcXFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBc
XFUwMDAxRjVFOCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0
RC1cXFUwMDAxRjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXHUyNjk1
LVxcdTI2OTYgXFx1MjcwOCBcXFUwMDAxRjMzRSBcXFUwMDAxRjM3MyBcXFUwMDAxRjM5MyBcXFUw
MDAxRjNBNCBcXFUwMDAxRjNBOCBcXFUwMDAxRjNFQiBcXFUwMDAxRjNFRCBcXFUwMDAxRjRCQi1c
XFUwMDAxRjRCQyBcXFUwMDAxRjUyNyBcXFUwMDAxRjUyQyBcXFUwMDAxRjY4MCBcXFUwMDAxRjY5
MiBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzNy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAx
RjkzRV07IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAg
ICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNkY5IFxcdTI3MEEtXFx1MjcwRCBcXFUw
MDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQSBcXFUwMDAxRjNDQiBc
XFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2
Ni1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAx
RjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU3NSBcXFUwMDAxRjU5MCBcXFUw
MDAxRjU5NSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1c
XFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZD
MCBcXFUwMDAxRjkxOCBcXFUwMDAxRjNDMiBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQyBcXFUwMDAx
RjU3NCBcXFUwMDAxRjU3QSBcXFUwMDAxRjZDQyBcXFUwMDAxRjkxOS1cXFUwMDAxRjkxRSBcXFUw
MDAxRjkyNiBcXFUwMDAxRjkzMCBcXFUwMDAxRjkzMy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1c
XFUwMDAxRjkzRV0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwot
I2Vsc2UKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUw
MDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBz
ZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNzBBLVxcdTI3
MEMgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQzcgXFxVMDAw
MUYzQ0EgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxV
MDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0Mg
XFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0
QUEgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAw
MUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzBdIDsi
IC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbmRpZgotICAgICAg
ICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07IiAvLyBGaXR6cGF0cmlj
ayBtb2RpZmllcnMKLSAgICAgICAgIiEhY2hhaW47IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVAotICAgICAgICAiISFSSU5vQ2hhaW47IgotI2VuZGlmCi0gICAgICAgICIhIWZvcndhcmQ7
IgotICAgICAgICAiJENSICRMRjsiCi0gICAgICAgICIkTCAoJEwgfCAkViB8ICRMViB8ICRMVlQp
OyIKLSAgICAgICAgIigkTFYgfCAkVikgKCRWIHwgJFQpOyIKLSAgICAgICAgIigkTFZUIHwgJFQp
ICRUOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRSSSAkUkkgJEV4
dGVuZCogLyAkUkk7IgotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKjsiCi0gICAgICAgICJbXiRD
b250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAk
U3BhY2luZ01hcms7IgotI2Vsc2UKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJEV4dGVu
ZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsiCi0gICAgICAg
ICIkUkkgJFJJIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIk
SGluMCAkSGluViAkSGluMTsiIC8vIERldmFuYWdhcmkgVmlyYW1hIChmb3J3YXJkKQotICAgICAg
ICAiJEJlbjAgJEJlblYgJEJlbjE7IiAvLyBCZW5nYWxpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAg
ICAgIiRQYW4wICRQYW5WICRQYW4xOyIgLy8gR3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQotICAg
ICAgICAiJEd1ajAgJEd1alYgJEd1ajE7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGZvcndhcmQpCi0g
ICAgICAgICIkT3JpMCAkT3JpViAkT3JpMTsiIC8vIE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKLSAg
ICAgICAgIiRUZWwwICRUZWxWICRUZWwxOyIgLy8gVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKLSAg
ICAgICAgIiRLYW4wICRLYW5WICRLYW4xOyIgLy8gS2FubmFkYSBWaXJhbWEgKGZvcndhcmQpCi0g
ICAgICAgICIkTWFsMCAkTWFsViAkTWFsMTsiIC8vIE1hbGF5YWxhbSBWaXJhbWEgKGZvcndhcmQp
Ci0gICAgICAgICIkWldKICRFbW9qaUZvclNlcXM7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBa
V0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9k
czsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGgg
dmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKLSAgICAgICAgIiEh
cmV2ZXJzZTsiCi0gICAgICAgICIkTEYgJENSOyIKLSAgICAgICAgIigkTCB8ICRWIHwgJExWIHwg
JExWVCkgJEw7IgotICAgICAgICAiKCRWIHwgJFQpICgkTFYgfCAkVik7IgotICAgICAgICAiJFQg
KCRMVlQgfCAkVCk7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJEV4
dGVuZCogJFJJICRSSSAvICRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVuZCogJFJJ
ICRSSTsiCi0gICAgICAgICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAg
ICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0jZWxzZQotICAgICAgICAi
JEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJr
IFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFJJICRSSSAvICRSSSAkUkk7IgotICAg
ICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4xICRIaW5WICRIaW4wOyIgLy8g
RGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEJlbjEgJEJlblYgJEJlbjA7
IiAvLyBCZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkUGFuMSAkUGFuViAkUGFu
MDsiIC8vIEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkR3VqMSAkR3VqViAk
R3VqMDsiIC8vIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkT3JpMSAkT3Jp
ViAkT3JpMDsiIC8vIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkVGVsMSAk
VGVsViAkVGVsMDsiIC8vIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEthbjEg
JEthblYgJEthbjA7IiAvLyBLYW5uYWRhIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkTWFs
MSAkTWFsViAkTWFsMDsiIC8vIE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAi
JEVtb2ppRm9yU2VxcyAkWldKOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNl
cwotICAgICAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7IiAvLyBEb24n
dCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBz
ZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0jaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCi0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0g
ICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAg
IiEhc2FmZV9mb3J3YXJkOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIiRFbW9qaUZv
ck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VUJyZWFrSXRlcmF0b3IqPiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gY3JlYXRl
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjaygpOwogI2Vsc2UKLSAgICAgICAgIlsk
RW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiJEVtb2ppRm9y
TW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiCi0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsi
Ci0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsiOwotI2VuZGlmCi0gICAgc3RhdGljIFVCcmVha0l0
ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9y
V2l0aFJ1bGVzKGtSdWxlcyk7Ci0jZWxzZSAvLyBQTEFURk9STShJT1MpCiAgICAgLy8gVXNlIHRo
ZSBzcGVjaWFsIFRoYWkgY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGZvciBhbGwgbG9jYWxlcwot
ICAgIHN0YXRpYyBVQnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9
IGluaXRpYWxpemVJdGVyYXRvcihVQlJLX0NIQVJBQ1RFUiwgInRoIik7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
ciA9IGluaXRpYWxpemVJdGVyYXRvcihVQlJLX0NIQVJBQ1RFUiwgInRoIik7CiAjZW5kaWYgLy8g
IVBMQVRGT1JNKElPUykKIAotICAgIGlmICghc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcikK
KyAgICBpZiAoIXN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IuZ2V0KCkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqc3RhdGljQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvciwgc3RyaW5nKTsKKyAgICByZXR1cm4gc2V0VGV4dEZvckl0ZXJh
dG9yKCooc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvci5nZXQoKSksIHN0cmluZyk7CiB9CiAK
IFVCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmlldyBzdHJp
bmcsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBjb25zdCBVQ2hhciogcHJpb3JDb250ZXh0
LCB1bnNpZ25lZCBwcmlvckNvbnRleHRMZW5ndGgsIExpbmVCcmVha0l0ZXJhdG9yTW9kZSBtb2Rl
LCBib29sIGlzQ0pLKQpAQCAtMzE5LDQ0MiArMjA2LDIwIEBAIHZvaWQgcmVsZWFzZUxpbmVCcmVh
a0l0ZXJhdG9yKFVCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKICAgICBMaW5lQnJlYWtJdGVyYXRv
clBvb2w6OnNoYXJlZFBvb2woKS5wdXQoaXRlcmF0b3IpOwogfQogCi1zdGF0aWMgY29uc3QgY2hh
ciogdWF4MTRQcm9sb2d1ZSA9Ci0gICAgIiEhY2hhaW47IgotICAgICIhIUxCQ01Ob0NoYWluOyIK
LSAgICAiISFsb29rQWhlYWRIYXJkQnJlYWs7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0
QXNzaWdubWVudHNCZWZvcmUgPQotICAgIC8vIGV4cGxpY2l0bHkgZW51bWVyYXRlICRDSiBzaW5j
ZSBJQ1UgdmVyc2lvbnMgcHJpb3IgdG8gNDkgZG9uJ3Qgc3VwcG9ydCA6TGluZUJyZWFrPUNvbmRp
dGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6Ci0gICAgIiRDSiA9IFsiCi0jaWYgKFVfSUNVX1ZFUlNJ
T05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KQotICAg
ICI6TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6IgotI2Vsc2UKLSAgICAi
XFx1MzA0MVxcdTMwNDNcXHUzMDQ1XFx1MzA0N1xcdTMwNDlcXHUzMDYzXFx1MzA4M1xcdTMwODVc
XHUzMDg3XFx1MzA4RVxcdTMwOTVcXHUzMDk2XFx1MzBBMVxcdTMwQTNcXHUzMEE1XFx1MzBBNyIK
LSAgICAiXFx1MzBBOVxcdTMwQzNcXHUzMEUzXFx1MzBFNVxcdTMwRTdcXHUzMEVFXFx1MzBGNVxc
dTMwRjZcXHUzMEZDIgotICAgICJcXHUzMUYwXFx1MzFGMVxcdTMxRjJcXHUzMUYzXFx1MzFGNFxc
dTMxRjVcXHUzMUY2XFx1MzFGN1xcdTMxRjhcXHUzMUY5XFx1MzFGQVxcdTMxRkJcXHUzMUZDXFx1
MzFGRFxcdTMxRkVcXHUzMUZGIgotICAgICJcXHVGRjY3XFx1RkY2OFxcdUZGNjlcXHVGRjZBXFx1
RkY2QlxcdUZGNkNcXHVGRjZEXFx1RkY2RVxcdUZGNkZcXHVGRjcwIgotI2VuZGlmCi0gICAgIl07
IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZUNKSyA9
Ci0gICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAgICAiJEVYX1NVQiA9IFtcXHUw
MDIxXFx1MDAzRlxcdUZGMDFcXHVGRjFGXTsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJ
Tl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAgICAiJElTX1NVQiA9IFtcXHUwMDNBXFx1MDAz
Ql07IgotICAgICIkTlNfU1VCID0gW1xcdTIwM0NcXHUyMDQ3XFx1MjA0OFxcdTIwNDlcXHUzMDA1
XFx1MzAxQ1xcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwQTBcXHUzMEZCXFx1MzBGRFxcdTMwRkVc
XHVGRjFBXFx1RkYxQlxcdUZGNjVdOyIKLSAgICAiJFBPX1NVQiA9IFtcXHUwMDI1XFx1MDBBMlxc
dTAwQjBcXHUyMDMwXFx1MjAzMlxcdTIwMzNcXHUyMTAzXFx1RkYwNVxcdUZGRTBdOyIKLSAgICAi
JFBSX1NVQiA9IFtcXHUwMDI0XFx1MDBBM1xcdTAwQTVcXHUyMEFDXFx1MjExNlxcdUZGMDRcXHVG
RkUxXFx1RkZFNV07IgotICAgICIkSURfQUREID0gWyRDSiAkQkFfU1VCICRFWF9TVUIgJElOX1NV
QiAkSVNfU1VCICROU19TVUIgJFBPX1NVQiAkUFJfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsi
OwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlTm9uQ0pL
ID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NV
QiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAgICIkSVNfU1VC
ID0gJyc7IgotICAgICIkTlNfU1VCID0gW1xcdTMwMDVcXHUzMDNCXFx1MzA5RFxcdTMwOUVcXHUz
MEZEXFx1MzBGRV07IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7Igot
ICAgICIkSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcn
OyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pL
ID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAgICIkRVhfU1VCID0gJyc7
IgotICAgICIkSU5fU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSVNfU1VC
ID0gJyc7IgotICAgICIkTlNfU1VCID0gW1xcdTMwMUNcXHUzMEEwXTsiCi0gICAgIiRQT19TVUIg
PSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKICRCQV9TVUIg
JE5TX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVh
eDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxOb25DSksgPQotICAgICIkQkFfU1VCID0gJyc7Igot
ICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0g
Jyc7IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gJyc7IgotICAgICIkUE9f
U1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSl07Igot
ICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVu
dHNDdXN0b21TdHJpY3RDSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0g
Jyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gJyc7IgotICAgICIkSVNf
U1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gJyc7IgotICAgICIkUE9fU1VCID0gJyc7IgotICAg
ICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gJyc7IgotICAgICIkTlNfQUREID0gWyRD
Sl07IjsKLQotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLICAgICAg
dWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSwotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tRGVmYXVsdENKSyAgICAgICAgdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSwot
I2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNKSyAgICAgdWF4MTRBc3Np
Z25tZW50c0N1c3RvbVN0cmljdE5vbkNKSwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3Np
Z25tZW50c0FmdGVyID0KLSAgICAiJEFJID0gWzpMaW5lQnJlYWsgPSBBbWJpZ3VvdXM6XTsiCi0g
ICAgIiRBTCA9IFs6TGluZUJyZWFrID0gQWxwaGFiZXRpYzpdOyIKLSAgICAiJEJBID0gW1s6TGlu
ZUJyZWFrID0gQnJlYWtfQWZ0ZXI6XSAtICRCQV9TVUJdOyIKLSAgICAiJEJCID0gWzpMaW5lQnJl
YWsgPSBCcmVha19CZWZvcmU6XTsiCi0gICAgIiRCSyA9IFs6TGluZUJyZWFrID0gTWFuZGF0b3J5
X0JyZWFrOl07IgotICAgICIkQjIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JvdGg6XTsiCi0gICAg
IiRDQiA9IFs6TGluZUJyZWFrID0gQ29udGluZ2VudF9CcmVhazpdOyIKLSAgICAiJENMID0gWzpM
aW5lQnJlYWsgPSBDbG9zZV9QdW5jdHVhdGlvbjpdOyIKLSAgICAiJENNID0gWzpMaW5lQnJlYWsg
PSBDb21iaW5pbmdfTWFyazpdOyIKLSAgICAiJENQID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QYXJl
bnRoZXNpczpdOyIKLSAgICAiJENSID0gWzpMaW5lQnJlYWsgPSBDYXJyaWFnZV9SZXR1cm46XTsi
Ci0gICAgIiRFWCA9IFtbOkxpbmVCcmVhayA9IEV4Y2xhbWF0aW9uOl0gLSAkRVhfU1VCXTsiCi0g
ICAgIiRHTCA9IFs6TGluZUJyZWFrID0gR2x1ZTpdOyIKLSNpZiAoVV9JQ1VfVkVSU0lPTl9NQUpP
Ul9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpCi0gICAgIiRITCA9
IFs6TGluZUJyZWFrID0gSGVicmV3X0xldHRlcjpdOyIKLSNlbHNlCi0gICAgIiRITCA9IFtbOkhl
YnJldzpdICYgWzpMZXR0ZXI6XV07IgotI2VuZGlmCi0gICAgIiRIWSA9IFs6TGluZUJyZWFrID0g
SHlwaGVuOl07IgotICAgICIkSDIgPSBbOkxpbmVCcmVhayA9IEgyOl07IgotICAgICIkSDMgPSBb
OkxpbmVCcmVhayA9IEgzOl07IgotICAgICIkSUQgPSBbW1tbOkxpbmVCcmVhayA9IElkZW9ncmFw
aGljOl0gLSAkQ0pdICRJRF9BRERdIC0gJElEX1NVQl07IgotICAgICIkSU4gPSBbWzpMaW5lQnJl
YWsgPSBJbnNlcGFyYWJsZTpdIC0gJElOX1NVQl07IgotICAgICIkSVMgPSBbWzpMaW5lQnJlYWsg
PSBJbmZpeF9OdW1lcmljOl0gLSAkSVNfU1VCXTsiCi0gICAgIiRKTCA9IFs6TGluZUJyZWFrID0g
Skw6XTsiCi0gICAgIiRKViA9IFs6TGluZUJyZWFrID0gSlY6XTsiCi0gICAgIiRKVCA9IFs6TGlu
ZUJyZWFrID0gSlQ6XTsiCi0gICAgIiRMRiA9IFs6TGluZUJyZWFrID0gTGluZV9GZWVkOl07Igot
ICAgICIkTkwgPSBbOkxpbmVCcmVhayA9IE5leHRfTGluZTpdOyIKLSAgICAiJE5TID0gW1tbWzpM
aW5lQnJlYWsgPSBOb25zdGFydGVyOl0gLSAkQ0pdICROU19BRERdIC0gJE5TX1NVQl07IgotICAg
ICIkTlUgPSBbOkxpbmVCcmVhayA9IE51bWVyaWM6XTsiCi0gICAgIiRPUCA9IFs6TGluZUJyZWFr
ID0gT3Blbl9QdW5jdHVhdGlvbjpdOyIKLSAgICAiJFBPID0gW1s6TGluZUJyZWFrID0gUG9zdGZp
eF9OdW1lcmljOl0gLSAkUE9fU1VCXTsiCi0gICAgIiRQUiA9IFtbOkxpbmVCcmVhayA9IFByZWZp
eF9OdW1lcmljOl0gLSAkUFJfU1VCXTsiCi0gICAgIiRRVSA9IFs6TGluZUJyZWFrID0gUXVvdGF0
aW9uOl07IgotICAgICIkUkkgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIKLSAgICAiJFNB
ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsiCi0gICAgIiRTRyA9IFs6TGluZUJy
ZWFrID0gU3Vycm9nYXRlOl07IgotICAgICIkU1AgPSBbOkxpbmVCcmVhayA9IFNwYWNlOl07Igot
ICAgICIkU1kgPSBbOkxpbmVCcmVhayA9IEJyZWFrX1N5bWJvbHM6XTsiCi0gICAgIiRXSiA9IFs6
TGluZUJyZWFrID0gV29yZF9Kb2luZXI6XTsiCi0gICAgIiRYWCA9IFs6TGluZUJyZWFrID0gVW5r
bm93bjpdOyIKLSAgICAiJFpXID0gWzpMaW5lQnJlYWsgPSBaV1NwYWNlOl07IgotICAgICIkWldK
ID0gXFx1MjAwRDsiCi0gICAgIiRFbW9qaVZhciA9IFxcdUZFMEY7IgotI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAotICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUy
NkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYz
Q0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAw
MUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxV
MDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcg
XFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2
NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAw
MUY2QjQtXFxVMDAwMUY2QjYgXFx1MjY5NS1cXHUyNjk2IFxcdTI3MDggXFxVMDAwMUYzM0UgXFxV
MDAwMUYzNzMgXFxVMDAwMUYzOTMgXFxVMDAwMUYzQTQgXFxVMDAwMUYzQTggXFxVMDAwMUYzRUIg
XFxVMDAwMUYzRUQgXFxVMDAwMUY0QkItXFxVMDAwMUY0QkMgXFxVMDAwMUY1MjcgXFxVMDAwMUY1
MkMgXFxVMDAwMUY2ODAgXFxVMDAwMUY2OTIgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzctXFxVMDAw
MUY5MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0
ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNkY5
IFxcdTI3MEEtXFx1MjcwRCBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUw
MDAxRjNDQSBcXFUwMDAxRjNDQiBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1c
XFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4
MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAx
RjU3NSBcXFUwMDAxRjU5MCBcXFUwMDAxRjU5NSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUw
MDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1c
XFUwMDAxRjZCNiBcXFUwMDAxRjZDMCBcXFUwMDAxRjkxOCBcXFUwMDAxRjNDMiBcXFUwMDAxRjND
NyBcXFUwMDAxRjNDQyBcXFUwMDAxRjU3NCBcXFUwMDAxRjU3QSBcXFUwMDAxRjZDQyBcXFUwMDAx
RjkxOS1cXFUwMDAxRjkxRSBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzMCBcXFUwMDAxRjkzMy1cXFUw
MDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZp
dHpwYXRyaWNrIG1vZGlmaWVycwotI2Vsc2UKLSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0
IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDhCXTsiCi0gICAgIiRFbW9qaUZvck1v
ZHMgPSBbXFx1MjYxRCBcXHUyNzBBLVxcdTI3MEMgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxV
MDAwMUYzQzQgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0EgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMg
XFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0
NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAw
MUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxV
MDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQt
XFxVMDAwMUY2QjYgXFxVMDAwMUY2QzBdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmlj
ayBtb2RpZmllcnMKLSNlbmRpZgotICAgICIkRW1vamlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAw
MDFGM0ZGXTsiCi0gICAgIiRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRl
eHQ6XTsiCi0gICAgIiRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07IgotICAgICIkQUxj
bSA9ICRBTFBsdXMgJENNKjsiCi0gICAgIiRCQWNtID0gJEJBICRDTSo7IgotICAgICIkQkJjbSA9
ICRCQiAkQ00qOyIKLSAgICAiJEIyY20gPSAkQjIgJENNKjsiCi0gICAgIiRDTGNtID0gJENMICRD
TSo7IgotICAgICIkQ1BjbSA9ICRDUCAkQ00qOyIKLSAgICAiJEVYY20gPSAkRVggJENNKjsiCi0g
ICAgIiRHTGNtID0gJEdMICRDTSo7IgotICAgICIkSExjbSA9ICRITCAkQ00qOyIKLSAgICAiJEhZ
Y20gPSAkSFkgJENNKjsiCi0gICAgIiRIMmNtID0gJEgyICRDTSo7IgotICAgICIkSDNjbSA9ICRI
MyAkQ00qOyIKLSAgICAiJElEY20gPSAkSUQgJENNKjsiCi0gICAgIiRJTmNtID0gJElOICRDTSo7
IgotICAgICIkSVNjbSA9ICRJUyAkQ00qOyIKLSAgICAiJEpMY20gPSAkSkwgJENNKjsiCi0gICAg
IiRKVmNtID0gJEpWICRDTSo7IgotICAgICIkSlRjbSA9ICRKVCAkQ00qOyIKLSAgICAiJE5TY20g
PSAkTlMgJENNKjsiCi0gICAgIiROVWNtID0gJE5VICRDTSo7IgotICAgICIkT1BjbSA9ICRPUCAk
Q00qOyIKLSAgICAiJFBPY20gPSAkUE8gJENNKjsiCi0gICAgIiRQUmNtID0gJFBSICRDTSo7Igot
ICAgICIkUVVjbSA9ICRRVSAkQ00qOyIKLSAgICAiJFJJY20gPSAkUkkgJENNKjsiCi0gICAgIiRT
WWNtID0gJFNZICRDTSo7IgotICAgICIkV0pjbSA9ICRXSiAkQ00qOyI7Ci0KLXN0YXRpYyBjb25z
dCBjaGFyKiB1YXgxNEZvcndhcmQgPQotICAgICIhIWZvcndhcmQ7IgotICAgICIkQ0FOX0NNID0g
W14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOyIKLSAgICAiJENBTlRfQ00gPSBbJFNQICRC
SyAkQ1IgJExGICROTCAkWlcgJENNXTsiCi0gICAgIiRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENS
ICRMRiAkTkwgJFpXICRTUF07IgotICAgICIkQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRI
TCAkSVMgJFNZICRXSiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOyIK
LSAgICAiJEFMX0ZPTExPVyA9IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07IgotICAg
ICIkTEI0QnJlYWtzID0gWyRCSyAkQ1IgJExGICROTF07IgotICAgICIkTEI0Tm9uQnJlYWtzID0g
W14kQksgJENSICRMRiAkTkxdOyIKLSAgICAiJExCOEJyZWFrcyA9IFskTEI0QnJlYWtzICRaV107
IgotICAgICIkTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAtIFskWlddXTsiCi0gICAg
IiRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07IgotICAgICIkTEIxOEJy
ZWFrcyA9IFskTEI4QnJlYWtzICRTUF07IgotICAgICIkTEIyME5vbkJyZWFrcyA9IFskTEIxOE5v
bkJyZWFrcyAtICRDQl07IgotICAgICIkQUxQbHVzICRDTSs7IgotICAgICIkQkEgJENNKzsiCi0g
ICAgIiRCQiAkQ00rOyIKLSAgICAiJEIyICRDTSs7IgotICAgICIkQ0wgJENNKzsiCi0gICAgIiRD
UCAkQ00rOyIKLSAgICAiJEVYICRDTSs7IgotICAgICIkR0wgJENNKzsiCi0gICAgIiRITCAkQ00r
OyIKLSAgICAiJEhZICRDTSs7IgotICAgICIkSDIgJENNKzsiCi0gICAgIiRIMyAkQ00rOyIKLSAg
ICAiJElEICRDTSs7IgotICAgICIkSU4gJENNKzsiCi0gICAgIiRJUyAkQ00rOyIKLSAgICAiJEpM
ICRDTSs7IgotICAgICIkSlYgJENNKzsiCi0gICAgIiRKVCAkQ00rOyIKLSAgICAiJE5TICRDTSs7
IgotICAgICIkTlUgJENNKzsiCi0gICAgIiRPUCAkQ00rOyIKLSAgICAiJFBPICRDTSs7IgotICAg
ICIkUFIgJENNKzsiCi0gICAgIiRRVSAkQ00rOyIKLSAgICAiJFJJICRDTSs7IgotICAgICIkU1kg
JENNKzsiCi0gICAgIiRXSiAkQ00rOyIKLSAgICAiJENSICRMRiB7MTAwfTsiCi0gICAgIiRMQjRO
b25CcmVha3M/ICRMQjRCcmVha3MgezEwMH07IgotICAgICIkQ0FOX0NNICRDTSogJExCNEJyZWFr
cyB7MTAwfTsiCi0gICAgIiRDTSsgJExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRMQjROb25CcmVh
a3MgWyRTUCAkWlddOyIKLSAgICAiJENBTl9DTSAkQ00qIFskU1AgJFpXXTsiCi0gICAgIiRDTSsg
WyRTUCAkWlddOyIKLSAgICAiJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM/ICRa
V0ogJEVtb2ppRm9yU2VxczsiCi0gICAgIiRDQU5fQ00gJENNKzsiCi0gICAgIiRDTSs7IgotICAg
ICIkQ0FOX0NNICRDTSogJFdKY207IgotICAgICIkTEI4Tm9uQnJlYWtzICRXSmNtOyIKLSAgICAi
JENNKyAkV0pjbTsiCi0gICAgIiRXSmNtICRDQU5UX0NNOyIKLSAgICAiJFdKY20gJENBTl9DTSAk
Q00qOyIKLSAgICAiJEdMY20gJENBTl9DTSAkQ00qOyIKLSAgICAiJEdMY20gJENBTlRfQ007Igot
ICAgICJbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENNKiAkR0xjbTsiCi0gICAg
IiRDTSsgR0xjbTsiCi0gICAgIiRMQjhOb25CcmVha3MgJENMOyIKLSAgICAiJENBTl9DTSAkQ00q
ICRDTDsiCi0gICAgIiRDTSsgJENMOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkQ1A7IgotICAgICIk
Q0FOX0NNICRDTSogJENQOyIKLSAgICAiJENNKyAkQ1A7IgotICAgICIkTEI4Tm9uQnJlYWtzICRF
WDsiCi0gICAgIiRDQU5fQ00gJENNKiAkRVg7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRMQjhO
b25CcmVha3MgJElTOyIKLSAgICAiJENBTl9DTSAkQ00qICRJUzsiCi0gICAgIiRDTSsgJElTOyIK
LSAgICAiJExCOE5vbkJyZWFrcyAkU1k7IgotICAgICIkQ0FOX0NNICRDTSogJFNZOyIKLSAgICAi
JENNKyAkU1k7IgotICAgICIkT1BjbSAkU1AqICRDQU5fQ00gJENNKjsiCi0gICAgIiRPUGNtICRT
UCogJENBTlRfQ007IgotICAgICIkT1BjbSAkU1ArICRDTSsgJEFMX0ZPTExPVz87IgotICAgICIk
UVVjbSAkU1AqICRPUGNtOyIKLSAgICAiKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207IgotICAg
ICIkQjJjbSAkU1AqICRCMmNtOyIKLSAgICAiJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsiCi0g
ICAgIiRDTSsgJFFVY207IgotICAgICIkUVVjbSAuPzsiCi0gICAgIiRRVWNtICRMQjE4Tm9uQnJl
YWtzICRDTSo7IgotICAgICIkTEIyME5vbkJyZWFrcyAkQ00qICgkQkFjbSB8ICRIWWNtIHwgJE5T
Y20pOyAiCi0gICAgIiRCQmNtIFteJENCXTsiCi0gICAgIiRCQmNtICRMQjIwTm9uQnJlYWtzICRD
TSo7IgotICAgICIkSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsiCi0gICAgIiRTWWNtICRI
TGNtOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICRJTmNtOyIKLSAgICAiJENNKyAkSU5jbTsiCi0g
ICAgIiRFWGNtICRJTmNtOyIKLSAgICAiJElEY20gJElOY207IgotICAgICIkSU5jbSAkSU5jbTsi
Ci0gICAgIiROVWNtICRJTmNtOyIKLSAgICAiJElEY20gJFBPY207IgotICAgICIkQUxjbSAkTlVj
bTsiCi0gICAgIiRITGNtICROVWNtOyIKLSAgICAiJENNKyAkTlVjbTsiCi0gICAgIiROVWNtICRB
TGNtOyIKLSAgICAiJE5VY20gJEhMY207IgotICAgICIkUFJjbSAkSURjbTsiCi0gICAgIiRQUmNt
ICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRQT2NtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIigk
UFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5VY20gfCAkU1ljbSB8ICRJ
U2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/OyIKLSAgICAiJEpMY20gKCRK
TGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsiCi0gICAgIigkSlZjbSB8ICRIMmNtKSAoJEpW
Y20gfCAkSlRjbSk7IgotICAgICIoJEpUY20gfCAkSDNjbSkgJEpUY207IgotICAgICIoJEpMY20g
fCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207IgotICAgICIoJEpMY20gfCAk
SlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJFBPY207IgotICAgICIkUFJjbSAoJEpMY20g
fCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSk7IgotICAgICIoJEFMY20gfCAkSExjbSkg
KCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJENNKyAoJEFMY20gfCAkSExjbSk7IgotICAgICIkSVNj
bSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJEFMY20gfCAkSExjbSB8ICROVWNtKSAkT1BjbTsi
Ci0gICAgIiRDTSsgJE9QY207IgotICAgICIkQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsi
Ci0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRSSWNtICRSSWNtOyIKLSNlbmRp
ZgotICAgICIkRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsiOwotCi1zdGF0aWMg
Y29uc3QgY2hhciogdWF4MTRSZXZlcnNlID0KLSAgICAiISFyZXZlcnNlOyIKLSAgICAiJENNKyAk
QUxQbHVzOyIKLSAgICAiJENNKyAkQkE7IgotICAgICIkQ00rICRCQjsiCi0gICAgIiRDTSsgJEIy
OyIKLSAgICAiJENNKyAkQ0w7IgotICAgICIkQ00rICRDUDsiCi0gICAgIiRDTSsgJEVYOyIKLSAg
ICAiJENNKyAkR0w7IgotICAgICIkQ00rICRITDsiCi0gICAgIiRDTSsgJEhZOyIKLSAgICAiJENN
KyAkSDI7IgotICAgICIkQ00rICRIMzsiCi0gICAgIiRDTSsgJElEOyIKLSAgICAiJENNKyAkSU47
IgotICAgICIkQ00rICRJUzsiCi0gICAgIiRDTSsgJEpMOyIKLSAgICAiJENNKyAkSlY7IgotICAg
ICIkQ00rICRKVDsiCi0gICAgIiRDTSsgJE5TOyIKLSAgICAiJENNKyAkTlU7IgotICAgICIkQ00r
ICRPUDsiCi0gICAgIiRDTSsgJFBPOyIKLSAgICAiJENNKyAkUFI7IgotICAgICIkQ00rICRRVTsi
Ci0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRDTSsgJFJJOyIKLSNlbmRpZgot
ICAgICIkQ00rICRTWTsiCi0gICAgIiRDTSsgJFdKOyIKLSAgICAiJENNKzsiCi0gICAgIiRBTF9G
T0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRaVyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQ
IHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFskQUwge2VvZn1dKSk7IgotICAgICJbJFBS
XSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9XTsiCi0gICAgIiRMQjRCcmVh
a3MgWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIiRMQjRCcmVha3MgJENNKyAkQ0FOX0NNOyIK
LSAgICAiJExGICRDUjsiCi0gICAgIlskU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOyIKLSAg
ICAiWyRTUCAkWlddICRDTSsgJENBTl9DTTsiCi0gICAgIiRFbW9qaUZvclNlcXMgJFpXSiAkRW1v
amlNb2RzPyAkRW1vamlWYXI/ICRFbW9qaUZvclNlcXM7IgotICAgICIkQ00rICRDQU5fQ007Igot
ICAgICIkQ00qICRXSiAkQ00qICRDQU5fQ007IgotICAgICIkQ00qICRXSiBbJExCOE5vbkJyZWFr
cy0kQ01dOyIKLSAgICAiJENBTlRfQ00gJENNKiAkV0o7IgotICAgICIkQ00qICRDQU5fQ00gJENN
KiAkV0o7IgotICAgICIkQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRCQSAk
SFldXTsiCi0gICAgIiRDQU5UX0NNICRDTSogJEdMOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSog
JEdMOyIKLSAgICAiJENMICRDTSsgJENBTl9DTTsiCi0gICAgIiRDUCAkQ00rICRDQU5fQ007Igot
ICAgICIkRVggJENNKyAkQ0FOX0NNOyIKLSAgICAiJElTICRDTSsgJENBTl9DTTsiCi0gICAgIiRT
WSAkQ00rICRDQU5fQ007IgotICAgICIkQ0wgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRD
UCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07Igot
ICAgICIkSVMgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRTWSBbJExCOE5vbkJyZWFrcy0k
Q01dOyIKLSAgICAiWyRDTCAkQ1AgJEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgIgot
ICAgICIkQ00qICRDQU5fQ00gJFNQKiAkQ00qICRPUDsiCi0gICAgIiRDQU5UX0NNICRTUCogJENN
KiAkT1A7IgotICAgICIkQUxfRk9MTE9XPyAkQ00rICRTUCAkU1AqICRDTSogJE9QOyIKLSAgICAi
JEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsiCi0gICAgIiRDTSogJEFMX0ZPTExP
V19DTSAkQ00rICRTUCsgJENNKiAkT1A7IgotICAgICIkU1kgJENNICRTUCsgJE9QOyIKLSAgICAi
JENNKiAkT1AgJFNQKiAkQ00qICRRVTsiCi0gICAgIiRDTSogJE5TICRTUCogJENNKiAoJENMIHwg
JENQKTsiCi0gICAgIiRDTSogJEIyICRTUCogJENNKiAkQjI7IgotICAgICIkQ00qICRRVSAkQ00q
ICRDQU5fQ007IgotICAgICIkQ00qICRRVSAkTEIxOE5vbkJyZWFrczsiCi0gICAgIiRDTSogJENB
Tl9DTSAkQ00qICRRVTsiCi0gICAgIiRDQU5UX0NNICRDTSogJFFVOyIKLSAgICAiJENNKiAoJEJB
IHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENNKiBbJExC
MjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsiCi0gICAgIlteJENCXSAkQ00qICRCQjsiCi0gICAg
IlteJENCXSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOyIKLSAgICAiJENNKiAkSEwgJENNKiAk
U1k7IgotICAgICIkQ00qICRJTiAkQ00qICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogJElO
ICRDTSogJEVYOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSUQ7IgotICAgICIkQ00qICRJTiAkQ00q
ICRJTjsiCi0gICAgIiRDTSogJElOICRDTSogJE5VOyIKLSAgICAiJENNKiAkUE8gJENNKiAkSUQ7
IgotICAgICIkQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogKCRBTFBs
dXMgfCAkSEwpICRDTSogJE5VOyIKLSAgICAiJENNKiAkSUQgJENNKiAkUFI7IgotICAgICIkQ00q
ICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRD
TSogJFBPOyIKLSAgICAiKCRDTSogKCRQUiB8ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgk
Q00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENNKiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENN
KiAoJFBSIHwgJFBPKSk/OyIKLSAgICAiJENNKiAoJEgzIHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00q
ICRKTDsiCi0gICAgIiRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgyIHwgJEpWKTsiCi0gICAgIiRD
TSogJEpUICRDTSogKCRIMyB8ICRKVCk7IgotICAgICIkQ00qICRJTiAkQ00qICgkSDMgfCAkSDIg
fCAkSlQgfCAkSlYgfCAkSkwpOyIKLSAgICAiJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpU
IHwgJEpWIHwgJEpMKTsiCi0gICAgIiRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkg
JENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhM
KTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJElTOyIKLSAgICAiJENNKiAkT1Ag
JENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMIHwg
JE5VKSAkQ00qICRDUDsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRDTSog
JFJJICRDTSogJFJJOyIKLSNlbmRpZgotICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2pp
Rm9yTW9kczsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRTYWZlRm9yd2FyZCA9Ci0gICAg
IiEhc2FmZV9mb3J3YXJkOyIKLSAgICAiWyRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkg
JEJBICRTUCAkZGljdGlvbmFyeV0rIFteJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAk
QkEgJGRpY3Rpb25hcnldOyIKLSAgICAiJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7IjsKLQotc3Rh
dGljIGNvbnN0IGNoYXIqIHVheDE0U2FmZVJldmVyc2UgPQotICAgICIhIXNhZmVfcmV2ZXJzZTsi
Ci0gICAgIiRDTSsgW14kQ00gJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOyIKLSAgICAiJENNKyAk
U1AgLyAuOyIKLSAgICAiJFNQKyAkQ00qICRPUDsiCi0gICAgIiRTUCsgJENNKiAkUVU7IgotICAg
ICIkU1ArICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIkU1ArICRDTSogJEIyOyIKLSAgICAiJENN
KiAoJEhZIHwgJEJBKSAkQ00qICRITDsiCi0gICAgIigkQ00qICgkSVMgfCAkU1kpKSsgJENNKiAk
TlU7IgotICAgICIoJENMIHwgJENQKSAkQ00qICgkTlUgfCAkSVMgfCAkU1kpOyIKLSAgICAiJGRp
Y3Rpb25hcnkgJGRpY3Rpb25hcnk7IjsKLQogc3RhdGljIFN0cmluZyBtYXBMaW5lSXRlcmF0b3JN
b2RlVG9SdWxlcyhMaW5lQnJlYWtJdGVyYXRvck1vZGUgbW9kZSwgYm9vbCBpc0NKSykKIHsKLSAg
ICBTdHJpbmdCdWlsZGVyIHJ1bGVzQnVpbGRlcjsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVh
eDE0UHJvbG9ndWUpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0Jl
Zm9yZSk7CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1v
ZGU6OkRlZmF1bHQ6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tRGVmYXVsdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0
Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxl
czsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6TG9vc2U6Ci0gICAgICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgOiB1
YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAg
ICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLUnVsZXMgOiBs
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVh
a0l0ZXJhdG9yTW9kZTo6Tm9ybWFsOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pL
ID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0
b21Ob3JtYWxOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8g
bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpT
dHJpY3Q6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1l
bnRzQ3VzdG9tU3RyaWN0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
UnVsZXM7CiAgICAgfQotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0Fm
dGVyKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0Rm9yd2FyZCk7Ci0gICAgcnVsZXNC
dWlsZGVyLmFwcGVuZCh1YXgxNFJldmVyc2UpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4
MTRTYWZlRm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVSZXZlcnNl
KTsKLSAgICByZXR1cm4gcnVsZXNCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuICIiOwogfQogCiAvLyBSZWNvZ25pemUgQkNQNDcgY29tcGxp
YW50IHByaW1hcnkgbGFuZ3VhZ2UgdmFsdWVzIG9mICd6aCcsICdqYScsICdrbycKQEAgLTc4OCw5
ICsyNTMsMjkgQEAgVUJyZWFrSXRlcmF0b3IqIG9wZW5MaW5lQnJlYWtJdGVyYXRvcihjb25zdCBB
dG9taWNTdHJpbmcmIGxvY2FsZSwgTGluZUJyZWFrSXRlcmEKICAgICBpZiAobW9kZSA9PSBMaW5l
QnJlYWtJdGVyYXRvck1vZGU6OkRlZmF1bHQpCiAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVu
KFVCUktfTElORSwgbG9jYWxlSXNFbXB0eSA/IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpIDog
bG9jYWxlLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIDAsIDAsICZvcGVuU3RhdHVzKTsKICAgICBl
bHNlIHsKLSAgICAgICAgVVBhcnNlRXJyb3IgcGFyc2VTdGF0dXM7Ci0gICAgICAgIGF1dG8gcnVs
ZXMgPSBtYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7Ci0gICAgICAgIHVi
cmtJdGVyID0gdWJya19vcGVuUnVsZXMoU3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFy
YWN0ZXJzKCksIHJ1bGVzLmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVz
KTsKKyAgICAgICAgQnJlYWtpbmdSdWxlU2V0IHJ1bGVTZXQgPSBCcmVha2luZ1J1bGVTZXQ6OlVB
WDE0Tm9uQ0pLOworICAgICAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICAgICAgY2FzZSBMaW5lQnJl
YWtJdGVyYXRvck1vZGU6OkRlZmF1bHQ6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBC
cmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6
TG9vc2U6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVB
WDE0TG9vc2VDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Ok5vcm1hbDoK
KyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3Jt
YWxDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pLOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpTdHJpY3Q6CisgICAg
ICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Q0pL
IDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0
b3JGb3JSdWxlU2V0KHJ1bGVTZXQpKQorICAgICAgICAgICAgdWJya0l0ZXIgPSByZWludGVycHJl
dF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpOworICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgIFVQYXJzZUVycm9yIHBhcnNlU3RhdHVzOworICAgICAgICAgICAgYXV0byBydWxlcyA9
IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsKKyAgICAgICAgICAgIHVi
cmtJdGVyID0gdWJya19vcGVuUnVsZXMoU3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFy
YWN0ZXJzKCksIHJ1bGVzLmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVz
KTsKKyAgICAgICAgfQogICAgIH0KICAgICAvLyBsb2NhbGUgY29tZXMgZnJvbSBhIHdlYiBwYWdl
IGFuZCBpdCBjYW4gYmUgaW52YWxpZCwgbGVhZGluZyBJQ1UKICAgICAvLyB0byBmYWlsLCBpbiB3
aGljaCBjYXNlIHdlIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCBsb2NhbGUuCkBAIC04MTEsNiAr
Mjk2LDcgQEAgdm9pZCBjbG9zZUxpbmVCcmVha0l0ZXJhdG9yKFVCcmVha0l0ZXJhdG9yKiYgaXRl
cmF0b3IpCiB7CiAgICAgVUJyZWFrSXRlcmF0b3IqIHVicmtJdGVyID0gaXRlcmF0b3I7CiAgICAg
QVNTRVJUKHVicmtJdGVyKTsKKyAgICAvLyBGSVhNRTogVXNlIFJBSUkgdG8gZG8gdGhpcyBpbnN0
ZWFkLgogICAgIHVicmtfY2xvc2UodWJya0l0ZXIpOwogICAgIGl0ZXJhdG9yID0gbnVsbHB0cjsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAppbmRleCBiY2Y0NGMwN2E0
ZWM5MWI1MTQ2N2MyNGY0ZmU3MTZlZDM0ZGJjYzE1Li42ZjhhMWVmZjc0OTliY2JlOWE4ODAyN2Mw
MzMxN2ViNjJjNGIyNjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVh
a0l0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5o
CkBAIC0yOSw2ICsyOSwzMCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogZW51bSBjbGFzcyBMaW5lQnJl
YWtJdGVyYXRvck1vZGUgeyBEZWZhdWx0LCBMb29zZSwgTm9ybWFsLCBTdHJpY3QgfTsKIAorZW51
bSBjbGFzcyBCcmVha2luZ1J1bGVTZXQgeworICAgIEN1cnNvck1vdmVtZW50LAorICAgIFVBWDE0
Q0pLLAorICAgIFVBWDE0Tm9uQ0pLLAorICAgIFVBWDE0TG9vc2VDSkssCisgICAgVUFYMTRMb29z
ZU5vbkNKSywKKyAgICBVQVgxNE5vcm1hbENKSywKKyAgICBVQVgxNE5vcm1hbE5vbkNKSywKKyAg
ICBVQVgxNFN0cmljdENKSywKKyAgICBVQVgxNFN0cmljdE5vbkNKSworfTsKKworZXh0ZXJuIGNv
bnN0IGNoYXIqIGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlczsKK2V4dGVybiBjb25zdCBjaGFy
KiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBs
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hh
ciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNo
YXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsKKworVUJyZWFrSXRl
cmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpOworCiAvLyBU
aGlzIGlzIHNpbWlsYXIgdG8gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMs
IGJ1dCBpcyBzdWJqZWN0IHRvCiAvLyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFi
bGUgZXhhbXBsZSB3aGVyZSB0aGlzIGNhbiBiZSBkaWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVy
IGJyZWFrIGl0ZXJhdG9yIGlzIFRoYWkgcHJlcGVuZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQy
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVU1hYy5tbSBiL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJh
dG9ySW50ZXJuYWxJQ1VNYWMubW0KaW5kZXggYmVmNWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVl
OGU4OGEzODkyYy4uYzUzNzNiMDNkYmQ0ZmI2ZWEyM2ZhZDJlZDJhZDNjYzAzNzVlMzJkMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVU1hYy5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRv
ckludGVybmFsSUNVTWFjLm1tCkBAIC0yMSwxMiArMjEsMTc0IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVk
ZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKKyNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4KKyNpbmNs
dWRlIDx1bmljb2RlL3VkYXRhLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Cisj
aW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCitA
aW50ZXJmYWNlIFdURkJ1bmRsZUZpbmRlciA6IE5TT2JqZWN0CitAZW5kCisKK0BpbXBsZW1lbnRh
dGlvbiBXVEZCdW5kbGVGaW5kZXIKK0BlbmQKKwogbmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBj
b25zdCBpbnQgbWF4TG9jYWxlU3RyaW5nTGVuZ3RoID0gMzI7CiAKKyNkZWZpbmUgVVNFX1BSRUNP
TVBJTEVEX0JSRUFLSU5HX1JVTEVTIChVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiAoKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8
IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEx
MDAwMCkpKQorCisjaWYgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JVTEVTCitzdGF0aWMgVURh
dGFNZW1vcnkqIGJyZWFrSXRlcmF0b3JSZXNvdXJjZShOU1N0cmluZyAqZmlsZU5hbWVCYXNlKQor
eworICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6W1dURkJ1
bmRsZUZpbmRlciBjbGFzc11dOworICAgIE5TU3RyaW5nICpwYXRoID0gW2J1bmRsZSBwYXRoRm9y
UmVzb3VyY2U6ZmlsZU5hbWVCYXNlIG9mVHlwZTpAImJyayIgaW5EaXJlY3Rvcnk6QCJCcmVha2lu
Z1J1bGVzIl07CisgICAgaWYgKCFwYXRoKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBO
U1N0cmluZyAqZGlyZWN0b3J5ID0gW3BhdGggc3RyaW5nQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9u
ZW50XTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVf
WkVST19FUlJPUjsKKyAgICB1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEQVRBX0ZJTEVTX0ZJUlNULCAm
ZXJyb3JDb2RlKTsKKyAgICBpZiAoVV9GQUlMVVJFKGVycm9yQ29kZSkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworI2VuZGlmCisKKyAgICBVRXJyb3JDb2RlIHVEYXRhRXJyb3JDb2RlID0gVV9a
RVJPX0VSUk9SOworICAgIFVEYXRhTWVtb3J5KiByZXN1bHQgPSB1ZGF0YV9vcGVuKFtkaXJlY3Rv
cnkgVVRGOFN0cmluZ10sICJicmsiLCBbZmlsZU5hbWVCYXNlIFVURjhTdHJpbmddLCAmdURhdGFF
cnJvckNvZGUpOworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHVkYXRhX3NldEZpbGVBY2Nlc3Mo
VURBVEFfREVGQVVMVF9BQ0NFU1MsICZlcnJvckNvZGUpOworICAgIGlmIChVX0ZBSUxVUkUoZXJy
b3JDb2RlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKKworICAgIGlmIChVX0ZB
SUxVUkUodURhdGFFcnJvckNvZGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogYnJlYWtJdGVyYXRvckZy
b21SZXNvdXJjZURhdGEoVURhdGFNZW1vcnkqIGRhdGEpCit7CisgICAgaWYgKCFkYXRhKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJP
X0VSUk9SOworICAgIFVCcmVha0l0ZXJhdG9yKiByZXN1bHQgPSB1YnJrX29wZW5CaW5hcnlSdWxl
cyhzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90ICo+KHVkYXRhX2dldE1lbW9yeShkYXRhKSksIHN0
ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpLCBudWxscHRyLCAwLCAmZXJyb3JDb2Rl
KTsKKworICAgIGlmIChVX0ZBSUxVUkUoZXJyb3JDb2RlKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBjdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VURhdGFN
ZW1vcnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJlc291cmNlKEAiQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVy
YXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0
YS5nZXQoKSkpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVh
a0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJlc291
cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNl
RGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9
CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSygp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRh
KGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksiKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0
dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZUNKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVE
YXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZUNKSyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJy
ZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNv
dXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRp
YyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLKCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJjZURhdGEoYnJl
YWtJdGVyYXRvclJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLIikp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJy
ZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJl
dHVybiBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBsaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
VURhdGFNZW1vcnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJlc291cmNlKEAiTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShy
ZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0
YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSygp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRh
KGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25D
SksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0
b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7Cisg
ICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VE
YXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30K
Kworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9u
Q0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJj
ZURhdGEoYnJlYWtJdGVyYXRvclJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKSyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBp
dGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkp
KTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRv
ciogY2xvbmVJdGVyYXRvcihVQnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCit7CisgICAgaWYgKCFp
dGVyYXRvcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgVUVycm9yQ29kZSBlcnJvckNv
ZGUgPSBVX1pFUk9fRVJST1I7CisgICAgaWYgKGF1dG8qIHJlc3VsdCA9IHVicmtfc2FmZUNsb25l
KGl0ZXJhdG9yLCBudWxscHRyLCAwLCAmZXJyb3JDb2RlKSkgeworICAgICAgICBpZiAoVV9TVUND
RVNTKGVycm9yQ29kZSkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCitVQnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0
b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCBydWxlU2V0KQoreworI2lmIFVTRV9QUkVDT01Q
SUxFRF9CUkVBS0lOR19SVUxFUworICAgIHN3aXRjaCAocnVsZVNldCkgeworICAgIGNhc2UgQnJl
YWtpbmdSdWxlU2V0OjpDdXJzb3JNb3ZlbWVudDoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0
b3IoY3Vyc29yTW92ZW1lbnRJdGVyYXRvcigpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6
VUFYMTRDSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRDSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOgorICAg
ICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLKCkp
OworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLOgorICAgICAgICByZXR1
cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksoKSk7CisgICAg
Y2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks6CisgICAgICAgIHJldHVybiBj
bG9uZUl0ZXJhdG9yKGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSygpKTsKKyAgICBj
YXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSks6CisgICAgICAgIHJldHVybiBjbG9u
ZUl0ZXJhdG9yKGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksoKSk7CisgICAgY2FzZSBC
cmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJ
dGVyYXRvcihsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLKCkpOworICAgIGNhc2Ug
QnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdENKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRl
cmF0b3IobGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSygpKTsKKyAgICBjYXNlIEJyZWFr
aW5nUnVsZVNldDo6VUFYMTRTdHJpY3ROb25DSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJh
dG9yKGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksoKSk7CisgICAgfQorI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0ocnVsZVNldCk7CisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYK
K30KKwogc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHRleHRCcmVha0xvY2Fs
ZVByZWZlcmVuY2UoKQogewogICAgIFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gbG9jYWxl
ID0gYWRvcHRDRihDRlByZWZlcmVuY2VzQ29weVZhbHVlKENGU1RSKCJBcHBsZVRleHRCcmVha0xv
Y2FsZSIpLApkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlIGIvU291cmNl
L2NtYWtlL1dlYktpdEZTLmNtYWtlCmluZGV4IDUxMzBmZmNiY2M3YzljZTc1MTRhZjRkNTUzYmQ4
YTRmMDUwMTQ1NmQuLjlmODMzMGFmN2ZlMzYzZDgwMTNlZWUzNGJlZGQ3ZmMxNWNiNzkxZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2Uv
V2ViS2l0RlMuY21ha2UKQEAgLTI3LDYgKzI3LDcgQEAgaWYgKE5PVCBUT09MU19ESVIpCiBlbmRp
ZiAoKQogCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJp
dmVkU291cmNlcyIpCitzZXQoREVSSVZFRF9TT1VSQ0VTX1dURl9ESVIgIiR7Q01BS0VfQklOQVJZ
X0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGIikKIHNldChERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQ
VENPUkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRD
b3JlIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJ
Un0vRGVyaXZlZFNvdXJjZXMvV2ViQ29yZSIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVExF
R0FDWV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0TGVnYWN5
IikKQEAgLTM1LDYgKzM2LDggQEAgc2V0KERFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUiAiJHtD
TUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXQyIikKIHNldChERVJJVkVEX1NP
VVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzL1dlYkluc3BlY3RvclVJIikKIAogZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09V
UkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURf
U09VUkNFU19XVEZfRElSfSkKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNf
V1RGX0RJUn0vQnJlYWtpbmdSdWxlcykKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtDTUFLRV9CSU5B
UllfRElSfS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZSkKIAogZmlsZShNQUtFX0RJUkVD
VE9SWSAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9KQpkaWZmIC0tZ2l0IGEv
Q2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGI2NTIxNWJjOWRhNjdjYzAxODMxODY0ZmExMGQ4
NDE5NDgwNDUzNzIuLjdjOGUwZDM0OGRkZTUxMzI1ZDViNGI5YTQwYzVjOTU1Njc1ZjZiNWIgMTAw
NjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAx
Ny0wMi0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAg
ICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWlsZCB0aW1lIHJhdGhlciB0
aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZToKKwogMjAxNy0wMi0wNyAgT2xpdmll
ciBCbGluICA8b2xpdmllci5ibGluQHNvZnRhdGhvbWUuY29tPgogCiAgICAgICAgIFtHVEtdW0Vm
bF0gRG8gbm90IHJlcXVpcmUgTGliWHNsdCBpZiBYU0xUIGlzIGRpc2FibGVkCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300943</attachid>
            <date>2017-02-08 13:03:53 -0800</date>
            <delta_ts>2017-02-08 13:14:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20170208130129.patch</filename>
            <type>text/plain</type>
            <size>140024</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NDNlNDJhZDA3YTMwMzc5MDhkNTRmNDc1YjAxN2EwODQ0MmIzN2U4Li5mM2U3NDlmM2EzMTRkMTlj
NTU1MzI1YjZkMGRjYmVhMzg5MzZmYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNy0wMi0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbmNsdWRlIHRoZSBieXRlY29kZSBmaWxlcyBpbnNpZGUgdGhl
IEphdmFTY3JpcHRDb3JlIGJ1bmRsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTctMDItMDcgIE1hcmsgTGFtICA8bWFyay5sYW1A
YXBwbGUuY29tPgogCiAgICAgICAgIFNpZ2lsbENyYXNoQW5hbHl6ZXI6OmFuYWx5emUoKSBzaG91
bGQgdXNlIGEgZG8td2hpbGUgbG9vcCBpbnN0ZWFkIG9mIGEgbGFtYmRhLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjYjNmMTgx
YzlkNGNjZTBjNDMzOWEzNDM2Yjg3YzRlYTQ5OTM0OTdiLi42MTA0ZWE4OTEzODVkYmJmODE1M2Q5
M2M3NDczMTZkMjg0MDE2OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE3LTAyLTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJ
Q1UgYnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBtYWNP
UyBhbmQgaU9TIFNES3MgaW5jbHVkZSBhIHRvb2wsIGljdWdlbmJyaywgd2hpY2ggY29tcGlsZXMg
SUNVIGJyayBicmVha2luZworICAgICAgICBydWxlcyBpbnRvIGJ5dGVjb2RlLiBQcmV2aW91c2x5
LCB0aGlzIGNvbXBpbGF0aW9uIHdhcyBkb25lIGF0IHJ1bnRpbWUgaW5zaWRlIHRoZSBJQ1UKKyAg
ICAgICAgdWJya19vcGVuUnVsZXMoKSBmdW5jdGlvbi4gTW92aW5nIHRoaXMgY29tcGlsYXRpb24g
c3RlcCB0byBjb21waWxlIHRpbWUgcmF0aGVyIHRoYW4KKyAgICAgICAgYnVpbGQgdGltZSBjYXVz
ZXMgYSBwZXJmb3JtYW5jZSBib29zdC4KKworICAgICAgICBQcmV2aW91c2x5LCB0aGUgc291cmNl
IGZvciB0aGUgYnJlYWtpbmcgcnVsZXMgd2FzIGFzc2VtYmxlZCBieSBjb25jYXRlbmF0aW5nIEMg
c3RyaW5ncworICAgICAgICBhdCBydW50aW1lLiBOb3csIHRoZSBzb3VyY2UgaXMgY29udGFpbmVk
IHdpdGhpbiBhIGZldyB0ZXh0IGZpbGVzIGluc2lkZQorICAgICAgICB3dGYvdGV4dC9CcmVha2lu
Z1J1bGVzLiBBIGJ1aWxkIHN0ZXAgKHVzaW5nIGEgTWFrZWZpbGUpIHdpbGwgZ2VuZXJhdGUgc291
cmNlIGNvZGUKKyAgICAgICAgY29udGFpbmluZyB0aGVzZSBzdHJpbmdzLCBhbmQgV1RGIHdpbGwg
aW5jbHVkZSB0aGVzZSBzb3VyY2UgZmlsZXMgaW4gdGhlIHNhbWUgd2F5IGFueQorICAgICAgICBv
ZiBvdXIgcHJvamVjdHMgdXNlIGdlbmVyYXRlZCBzb3VyY2VzLiBBZGRpdGlvbmFsbHksIG9uIE9T
ZXMgd2hpY2ggc3VwcG9ydCBpdCwgdGhlc2UKKyAgICAgICAgc3RyaW5ncyBnZXQgY29tcGlsZWQg
ZGlyZWN0bHkgaW50byBJQ1UgYnl0ZWNvZGUsIGFuZCB0aGVuIGluY2x1ZGVkIGluIHRoZSBmcmFt
ZXdvcmsKKyAgICAgICAgYnVuZGxlLiBCZWNhdXNlIFdURiBnZXRzIHN0YXRpY2FsbHkgbGlua2Vk
IGludG8gSmF2YVNjcmlwdENvcmUsIHRoaXMgaXMgdGhlIGJ1bmRsZQorICAgICAgICB3aGljaCBp
bmNsdWRlcyB0aGUgYnl0ZWNvZGUgZmlsZXMuCisKKyAgICAgICAgQXQgcnVudGltZSwgd2UgZmly
c3QgY2hlY2sgaWYgd2UgaGF2ZSBhIGZpbGUgaW4gb3VyIGJ1bmRsZSBvZiB0aGUgYXBwcm9wcmlh
dGUgbmFtZSwKKyAgICAgICAgYW5kIHRoZW4gc2VlIGlmIElDVSBjYW4gb3BlbiBpdCB1c2luZyBp
dHMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBpbnRlcmZhY2UgKHdoaWNoCisgICAgICAgIGluY2x1
ZGVzIGEgdmVyc2lvbiBjaGVjaykuIElmIGFueSBvZiB0aGVzZSBjaGVja3MgZmFpbCwgb3IgaWYg
d2UncmUgb24gYSBwb3J0IHdoaWNoCisgICAgICAgIGRvZXNuJ3QgaGF2ZSB0aGUgbm90aW9uIG9m
IGJ1bmRsZXMsIHdlIHdpbGwgdXNlIHRoZSBDIHN0cmluZ3MgZ2VuZXJhdGVkIGFib3ZlLCBhbmQK
KyAgICAgICAgcGFzcyB0aGVtIHRvIHVicmtfb3BlblJ1bGVzKCkgdGhlIHNhbWUgd2F5IHdlIHdl
cmUgZG9pbmcgYmVmb3JlIHRoaXMgcGF0Y2guCisKKyAgICAgICAgVGhlIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IgaW50ZXJmYWNlIGluIElDVSByZXF1aXJlcyBhZGRpbmcgc29tZSBtb3JlIG9mIElD
VSdzIHB1YmxpYworICAgICAgICBoZWFkZXJzIGludG8gV2ViS2l0LgorCisgICAgICAgICogV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBhIG5ldyBEZXJpdmVkIFNvdXJjZXMgdGFy
Z2V0IHdoaWNoIHVzZXMgYQorICAgICAgICBEZXJpdmVkU291cmNlcy5tYWtlIE1ha2VmaWxlLCB0
aGUgc2FtZSB3YXkgV2ViS2l0MiwgV2ViQ29yZSwgYW5kIEphdmFTY3JpcHRDb3JlIHdyb2suCisg
ICAgICAgIEFsc28sIGFkZCB0aGUgcnVsZXMgdGV4dCBmaWxlcyB0byB0aGUgcHJvamVjdC4gVGhl
biwgbWFrZSBXVEYgZGVwZW5kIG9uIHRoaXMgbmV3CisgICAgICAgIHRhcmdldC4KKyAgICAgICAg
KiB3dGYvQ01ha2VMaXN0cy50eHQ6IEFkZCBidWlsZCBzdGVwcyBmb3Igb3RoZXIgcG9ydHMgdG8g
Z2VuZXJhdGUgdGhlIGJyZWFraW5nCisgICAgICAgIHJ1bGVzIHN0cmluZ3Mgc291cmNlIGZpbGVz
LgorICAgICAgICAqIHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOiBBZGRlZC4gVGhpcyBpcyB0aGUg
cGxhY2Ugd2hlcmUgaWN1Z2VuYnJrIGlzIGFjdHVhbGx5IAorICAgICAgICBpbnZva2VkLiBJdCBh
bHNvIHRyaWdnZXJzIHRoZSBzY3JpcHQgKEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSkg
d2hpY2ggZ2VuZXJhdGVzCisgICAgICAgIHRoZSBDKysgY29kZSBmb3IgdGhlIHJ1bGVzIHN0cmlu
Z3MuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dl
bmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weTogQWRkZWQuIEdlbmVyYXRlIEMrKy4KKyAgICAg
ICAgKG1haW4pOgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JFcGlsb2d1ZS50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5jcHA6CisgICAgICAgIChXVEY6OmNyZWF0ZUl0ZXJhdG9yRm9yUnVs
ZVNldCk6IFVzZWQgYnkgb3RoZXIgcG9ydHMuIFJldHVybmluZyBudWxscHRyIG1lYW5zIHdlIGNh
bid0CisgICAgICAgIHVzZSBwcmVjb21waWxlZCBydWxlcy4KKyAgICAgICAgKFdURjo6Y3JlYXRl
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjayk6IFVzZWQgaW4gcGxhY2Ugb2YgdGhl
IGhhcmRjb2RlZCBydWxlcworICAgICAgICBpbiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKCkuCisg
ICAgICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3IpOiBSZW1vdmUgaGFyZGNvZGVkIHJ1
bGVzLgorICAgICAgICAoV1RGOjptYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyk6IFVwZGF0ZSB0
byB1c2UgdGhlIG5ldyBnZW5lcmF0ZWQgQysrIHN0cmluZ3MuCisgICAgICAgIChXVEY6Om9wZW5M
aW5lQnJlYWtJdGVyYXRvcik6IFRoZSBsb2dpYyBvZiB0cnlpbmcgdG8gdXNlIGEgcHJlY29tcGls
ZWQgYnl0ZWNvZGUsIGFuZCBmYWxsaW5nCisgICAgICAgIGJhY2sgdG8gQysrIHN0cmluZ3MgaWYg
aXQgaXNuJ3QgcG9zc2libGUuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
aDogSGVhZGVyIGZvciBnZW5lcmF0ZWQgQysrIGNvZGUuCisgICAgICAgICogd3RmL3RleHQvbWFj
L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW06CisgICAgICAgIChXVEY6OmJyZWFr
SXRlcmF0b3JGcm9tUmVzb3VyY2UpOiBUaGUgYWN0dWFsIGxvZ2ljIGZvciBsb29raW5nIGluc2lk
ZSB0aGUgYnVuZGxlIGZvciB0aGUKKyAgICAgICAgcHJlY29tcGlsZWQgYnl0ZWNvZGUuCisgICAg
ICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3IpOiBDYWxscyBicmVha0l0ZXJhdG9yRnJv
bVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSkspOiBD
YWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb25DSkspOiBDYWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCku
CisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSyk6IENhbGxzIGJy
ZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgor
ICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKTogQ2FsbHMgYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgor
ICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLKTogQ2FsbHMgYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgor
ICAgICAgICAoV1RGOjpjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQpOiAgQ2FsbCB0aGUgYWJvdmUg
c3RhdGljIGZ1bmN0aW9ucy4KKwogMjAxNy0wMi0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KIAogICAgICAgICBQbGF5YmFjayBzdGFsbHMgd2hlbiBhIFNvdXJjZUJ1ZmZlciBh
cHBlbmQgY2F1c2VzIGZyYW1lIGV2aWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDRkYjY2NzI5YTU1N2MwM2M1Y2VlODA4YjY3MTE2M2JiNmFlMTk1ZTcuLjg4YTFiNmQwMmNh
MTVlYTlhMGU4Y2NiMjNmYjliYTAxZmMyMGI5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMjI4LDYgKzEyMjgsNyBAQAogCQkxQTI4RDRBODE3N0I3MUM4MDAwN0ZBM0MgLyog
SlNTdHJpbmdSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQTI4RDRBNzE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUE4
ODI2QjE2NTNDNENEMUE2NDI5ODNCIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QjQ3RjIzNDM2NkM0
QjcyQUM4NTJBN0UgLyogVGVtcGxhdGVSZWdpc3RyeUtleVRhYmxlLmNwcCAqLzsgfTsKIAkJMUFD
RjczNzcxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDRjczNzYxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsu
Y3BwICovOyB9OworCQkxQ0QxODc5MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNEMTg3OEYx
RDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi87IH07CiAJCTI2MDBCNUE2MTUyQkFB
QTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJp
bmdKb2luZXIuY3BwICovOyB9OwogCQkyNjAwQjVBNzE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJp
bmdKb2luZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oICovOyB9OwogCQky
NjJEODVCNjFDMEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MkQ4NUI0
MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovOyB9
OwpAQCAtMzY1Nyw2ICszNjU4LDcgQEAKIAkJMUM5MDUxNDUwQkE5RThBNzAwODFFOUQwIC8qIEJh
c2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEEwRDMyQzM5QTAwNDFCQ0ZG
IC8qIEphdmFTY3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNj
cmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QjBEMzJDMzlBMDA0
MUJDRkYgLyogSmF2YVNjcmlwdENvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSmF2YVNjcmlwdENvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3
OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmb2xkZXI7IG5hbWUgPSBCcmVha2luZ1J1bGVz
OyBwYXRoID0gLi4vV1RGL0JyZWFraW5nUnVsZXM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0cmluZ0pvaW5lci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0
cmluZ0pvaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0cmluZ0pv
aW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjJEODVCNDFDMEQ2NTBGMDA2
QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHBh
dGggPSBiMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTYwMTMsNiArNjAxNSw3IEBACiAJCTY1MEZERjhEMDlEMEZDQTcw
MDc2OUU1NCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzhGMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1
bGVzICovLAogCQkJCTBGNjE4MzMyMUM0NUYzNUMwMDcyNDUwQiAvKiBBaXJPcGNvZGUuaCAqLywK
IAkJCQkwRjYxODMzNDFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlR2VuZXJhdGVkLmggKi8s
CiAJCQkJMEY2MTgzMzUxQzQ1RjNCNjAwNzI0NTBCIC8qIEFpck9wY29kZVV0aWxzLmggKi8sCkBA
IC05NDIwLDYgKzk0MjMsNyBAQAogCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKIAkJ
CWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkxQ0QxODc5
MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJ
QTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5
IGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45NmIwNDc2OWZjYTM5OGFjYzk5Nzg2OTJiNzc3MDY0MDVlZDA0OGE3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5n
cy5weQpAQCAtMCwwICsxLDExMCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgc3lzCitpbXBvcnQgcmUKKwor
aGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisKKworZGVmIG1haW4oYXJndj1Ob25lKToKKyAgICBp
ZiBub3QgYXJndjoKKyAgICAgICAgYXJndiA9IHN5cy5hcmd2CisgICAgZmlsZU5hbWVTdGFydElu
ZGV4ID0gMQorCisgICAgaW5jbHVkZURlZmluZXMgPSBGYWxzZQorICAgIGlmIGFyZ3ZbZmlsZU5h
bWVTdGFydEluZGV4XSA9PSAiLWluY2x1ZGVEZWZpbmVzIjoKKyAgICAgICAgaW5jbHVkZURlZmlu
ZXMgPSBUcnVlCisgICAgICAgIGZpbGVOYW1lU3RhcnRJbmRleCA9IGZpbGVOYW1lU3RhcnRJbmRl
eCArIDEKKworICAgIHN5bWJvbE5hbWUgPSBhcmd2W2ZpbGVOYW1lU3RhcnRJbmRleF1bMF0ubG93
ZXIoKSArIGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4XVsxOl0KKyAgICBmaWxlTmFtZVN0YXJ0SW5k
ZXggPSBmaWxlTmFtZVN0YXJ0SW5kZXggKyAxCisgICAgZmlsZU5hbWVzID0gYXJndltmaWxlTmFt
ZVN0YXJ0SW5kZXg6XQorCisgICAgcHJpbnQoaGVhZGVyKQorICAgIHByaW50KCIiKQorICAgIHBy
aW50KCIvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJh
dGVkIGJ5IHRoZSBzY3JpcHQiKQorICAgIHByaW50KCIvLyBXVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkiKQorICAgIHByaW50KCIiKQorICAg
IHByaW50KCIjaW5jbHVkZSBcImNvbmZpZy5oXCIiKQorICAgIHByaW50KCIjaW5jbHVkZSA8dW5p
Y29kZS91dmVybnVtLmg+IikKKyAgICBwcmludCgiIikKKyAgICBpZiBpbmNsdWRlRGVmaW5lczoK
KyAgICAgICAgcHJpbnQoIiNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9S
TShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwKSkiKQorICAgICAgICBwcmludCgiI2RlZmluZSBIQVZFX0VYVFJBX0lDVV9O
QU1FRF9TRVRTICgoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJ
T05fTUlOT1JfTlVNID49IDkpKSIpCisgICAgICAgIHByaW50KCIiKQorICAgIHByaW50KCJuYW1l
c3BhY2UgV1RGIHsiKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCJjb25zdCBjaGFyKiAiICsg
c3ltYm9sTmFtZSArICIgPSAiKQorCisgICAgZm9yIGZpbGVOYW1lIGluIGZpbGVOYW1lczoKKyAg
ICAgICAgZm9yIGwgaW4gb3BlbihmaWxlTmFtZSwgJ3InKToKKyAgICAgICAgICAgIGxpbmUgPSBs
LnJzdHJpcCgpCisgICAgICAgICAgICBpZiByZS5tYXRjaCgiXlxzKiQiLCBsaW5lKToKKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyAiKToK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjIik6
CisgICAgICAgICAgICAgICAgcHJpbnQobGluZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgiXiguKik7KCAjIC4qKT8kIiwgbGluZSkKKyAgICAg
ICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gIlwiIiAr
IG1hdGNoLmdyb3VwKDEpLnJlcGxhY2UoIlxcIiwgIlxcXFwiKSArICI7XCIiCisgICAgICAgICAg
ICAgICAgICAgIGlmIG1hdGNoLmdyb3VwKDIpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIpWzM6XQorICAgICAgICAgICAgICAgICAgICBw
cmludChyZXN1bHQpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
ZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAgIHByaW50KCJ9IikKKworaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU0MmUwYTVlOTkzZGQzYzgxOTI5MjMw
ZDUxNjI3NmI5ZjAxNWMwMzkuLjljZDBmNjNjNjg2N2JjNWNiMjkyYmEyYzhiM2M4OTcyZWYyMmI5
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNyw2ICs3
LDE3IEBACiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rp
b24gKi8KKwkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLyA9
IHsKKwkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxp
c3QgPSAxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi87CisJCQlidWlsZFBo
YXNlcyA9ICgKKwkJCQkxQ0QxODc4MjFENTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVyaXZl
ZCBTb3VyY2VzICovLAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1l
ID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwcm9kdWN0TmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMi
OworCQl9OwogCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlv
bkxpc3QgPSA2NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBs
aXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtODQs
NyArOTUsNiBAQAogCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
NDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CiAJ
CTE0NDdBRUM3MThGQ0U1ODAwMEIzRDdGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMjQ3QjYyMTQ2ODlCODYwMEU3OEI3NiAv
KiBsaWJXVEYuYSAqLzsgfTsKIAkJMTQ0N0FFQzkxOEZDRTU5NDAwQjNEN0ZGIC8qIG1ibWFsbG9j
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdB
RUM4MThGQ0U1OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAgKi87IH07Ci0JCTE0NDdBRUNCMThG
Q0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxp
YmljdWNvcmUuZHlsaWIgKi87IH07CiAJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5M
b29wVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDE0Njk0MTkwMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkxNDY5NDE5MzE2RUFBRjZEMDAyNEUxNDYgLyog
UnVuTG9vcFRpbWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTQ2OTQxOTExNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCAq
LzsgfTsKIAkJMTQ2OTQxOTYxNkVBQUZGODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2OTQxOTQxNkVBQUZG
ODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oICovOyB9OwpAQCAtMzQwLDYgKzM1MCwxNiBAQAog
CQlBREYyQ0U2NjFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREYyQ0U2NDFFMzlGMTA2MDA2
ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQURGMkNFNjcxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZv
b3RwcmludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBREYyQ0U2NTFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmNwcCAqLzsgfTsK
IAkJQjM4RkQ3QkQxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMzhGRDdCQzE2ODk1M0U4MDA2
NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCAqLzsgfTsKKwkJQzJCQTU0M0UxRDU4NkFGNDAwMEEz
MzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5k
eWxpYiAqLzsgfTsKKwkJQzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRDSksuY3BwICovOyB9OworCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VDSksuY3BwICovOyB9OworCQlDMkNBMzdFQzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovOyB9OworCQlDMkNB
MzdFRDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNDFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi87IH07
CisJCUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovOyB9OworCQlDMkNBMzdGMDFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi87IH07CisJCUMyQ0Ez
N0YxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Ez
N0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LmNwcCAqLzsgfTsKIAkJQzRGOEE5MzcxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzRGOEE5MzYxOUM2
NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oICovOyB9OwogCQlDOEIwRTFBMUUwMUE0ODZFQjk1
RTBEMTEgLyogSW5kZXhTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxMzdFMUQ3REJEODRBQzM4RkFFNEQzNCAvKiBJbmRleFNldC5oICovOyB9Owog
CQlDOTE2Qjk3NUYwMkY0RjdFOEI0QUIxMkQgLyogSW5kZXhNYXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVCNDMzODNBNUQwQjQ2M0M5NDMzRDkzMyAv
KiBJbmRleE1hcC5oICovOyB9OwpAQCAtMzgxLDYgKzQwMSwxMyBAQAogCQkJcmVtb3RlR2xvYmFs
SURTdHJpbmcgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzY7CiAJCQlyZW1vdGVJbmZvID0gV1RG
OwogCQl9OworCQkxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVy
UG9ydGFsID0gNUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOwor
CQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gMUNEMTg3ODExRDU1
Njk1QzAwQ0M3REVDOworCQkJcmVtb3RlSW5mbyA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQl9Owog
CQk2NUFGQTI4RDE2MzBCOTlFMDAzRDcyM0MgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0g
ewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFsID0g
NUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAtNDkyLDYg
KzUxOSwxOSBAQAogCQkxQzE4MUM4RDFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVU
RjE2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVUZXh0UHJvdmlk
ZXJVVEYxNi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzhFMUQzMDdB
QjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDMTgxQzk1MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVy
bmFsSUNVTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgcGF0aCA9IG1hYy9UZXh0QnJlYWtJdGVy
YXRvckludGVybmFsSUNVTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzZC
RTBGQTFFMDM0QzlBMDAyMTc2MTcgLyogR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3Jp
cHQucHl0aG9uOyBwYXRoID0gR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRG
Qjk1MUQ1NTlBNjkwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZU5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5OTFENTU5QUVG
MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlBMUQ1NTlCMjMwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1
ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhBMUQ1NThBRDMwMENDN0RF
QyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IG5hbWUgPSBEZXJpdmVkU291cmNlcy5tYWtlOyBw
YXRoID0gd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHVz
ZXNUYWJzID0gMTsgfTsKKwkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVDIC8qIEN1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4
dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVD
IC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxRkE0N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODkxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNv
cmVUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVRocmVh
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjE0N0IwODE1RERDQ0RDMDBEREI5
MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC03MjQsNiArNzY0LDE1IEBACiAJCUFERjJDRTY0MUUzOUYxMDYwMDY4ODlE
QiAvKiBNZW1vcnlGb290cHJpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVtb3J5Rm9vdHByaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFERjJDRTY1
MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5Rm9vdHByaW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBD
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgcGF0aCA9IEJyZWFr
aW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNB
MzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0Uz
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJD
QTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNTFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U2MUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3
RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3RDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdF
ODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRpbWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTc2Miw3ICs4MTEsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTE0NDdBRUM2MThGQ0U1NzcwMEIzRDdGRiAv
KiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTE0NDdBRUNCMThG
Q0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCisJCQkJ
QzJCQTU0M0UxRDU4NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3Jr
cyAqLywKIAkJCQkxNDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3
b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKQEAgLTc5OSw2ICs4NDgsMzIgQEAKIAkJCXBhdGggPSBpY3U7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OworCQkxQzZCRTBGOTFFMDM0QzJBMDAyMTc2MTcgLyogU2NyaXB0cyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUM2QkUwRkEx
RTAzNEM5QTAwMjE3NjE3IC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAqLywKKwkJ
CSk7CisJCQlwYXRoID0gU2NyaXB0czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CisJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc5MjFENTU5OEUxMDBD
QzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAqLywKKwkJCQkxQ0I0RkI5
QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8sCisJ
CQkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUu
dHh0ICovLAorCQkJCTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NjFENTU5QTkwMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NzFENTU5QUE4MDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50
eHQgKi8sCisJCQkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxDSksudHh0ICovLAorCQkJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QTFE
NTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8s
CisJCQkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksudHh0ICovLAorCQkJKTsKKwkJCXBhdGggPSBCcmVha2luZ1J1bGVzOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMUZBNDdDODcxNTI1MDJEQTAwNTY4RDFC
IC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC04
MjEsOSArODk2LDEyIEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CTVEMjQ3QjZEMTQ2ODlDNDcwMEU3OEI3NiAvKiBDb25maWd1cmF0aW9ucyAqLywKKwkJCQlDMkNB
MzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0MDIyRjNG
MThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJCQkJNUQyNDdCNjMxNDY4OUI4NjAw
RTc4Qjc2IC8qIFByb2R1Y3RzICovLAorCQkJCTFDNkJFMEY5MUUwMzRDMkEwMDIxNzYxNyAvKiBT
Y3JpcHRzICovLAogCQkJCTVEMjQ3Qjc2MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJ
CQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCiAJ
CQkJMTQ0N0FFQzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovLAog
CQkJCTE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICovLAogCQkJ
KTsKQEAgLTExODUsNiArMTI2Myw3IEBACiAJCUE4QTQ3MzFCMTUxQTgyNUIwMDQxMjNGRiAvKiB0
ZXh0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0Qx
ODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJCQlBNUJBMTVGNjE4
MjQzNTlFMDBBODJFNjkgLyogY2YgKi8sCiAJCQkJMUMxODFDODgxRDMwN0FCODAwRjVGQTE2IC8q
IGljdSAqLywKIAkJCQlBNUJBMTVGMTE4MjQzMzlGMDBBODJFNjkgLyogbWFjICovLApAQCAtMTI2
Myw2ICsxMzQyLDIzIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKIAkJfTsKKwkJQzJDQTM3REYxRDU1QzhEODAwNDg2Qjk4IC8qIERlcml2ZWQgU291cmNlcyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQzJDQTM3RTAx
RDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8sCisJ
CQkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksu
Y3BwICovLAorCQkJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VDSksuY3BwICovLAorCQkJCUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U0MUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLywKKwkJ
CQlDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLywKKwkJCQlDMkNB
MzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNK
Sy5jcHAgKi8sCisJCQkpOworCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQkJcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dURjsKKwkJCXNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
CisJCX07CiAJCUNFNDY1MTZDMTlEQjFGQjQwMDNFQ0EwNSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNjE0LDYgKzE3MTAsNyBAQAogCQkJ
YnVpbGRSdWxlcyA9ICgKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJMUNEMTg3ODgx
RDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJNjVBRkEyOEUx
NjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkpOwogCQkJbmFt
ZSA9IFdURjsKQEAgLTE2NDQsMTIgKzE3NDEsMjcgQEAKIAkJCXRhcmdldHMgPSAoCiAJCQkJNUQy
NDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLywKIAkJCQk2NUFGQTE2RjE2MzBCOTc3MDAz
RDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLywKKwkJCQkxQ0QxODc4MTFENTU2OTVDMDBDQzdE
RUMgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0NDdBRUJEMThGQ0U1NjkwMEIzRDdGRiAv
KiBtYm1hbGxvYyAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICov
CiAKIC8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCisJCTFDRDE4
NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJ
CQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAy
MTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCSk7
CisJCQluYW1lID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNlcyI7CisJCQlvdXRwdXRQYXRocyA9
ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJ
CXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7QlVJ
TFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuY2QgXCIke0JVSUxUX1BST0RV
Q1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcblxuL2Jpbi9sbiAtc2ZoIFwiJHtTUkNST09U
fVwiIFdURlxuZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsgISAtZCBCcmVha2luZ1J1bGVzIF07
IHRoZW5cbiAgICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxuXG5pZiBbIFwiJE1BQ09TWF9ERVBM
T1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdIDsgdGhlblxuICAgIGV4cG9ydCBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQ9MFxuZWxzZVxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQ9MVxuZmlcblxuaWYgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEw
LjEwXCIgXSB8fCBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTFcIiBd
IHx8IFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMlwiIF0gfHwgWyBc
IiRTREtfVkVSU0lPTl9NQUpPUlwiID09IFwiOTAwMDBcIiBdIHx8IFsgXCIkU0RLX1ZFUlNJT05f
TUFKT1JcIiA9PSBcIjEwMDAwMFwiIF07IHRoZW5cbiAgICBleHBvcnQgSEFWRV9JQ1VHRU5CUks9
MFxuZWxzZVxuICAgIGV4cG9ydCBIQVZFX0lDVUdFTkJSSz0xXG5maVxuXG5pZiBbIFwiJHtBQ1RJ
T059XCIgPSBcImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtB
Q1RJT059XCIgPSBcImluc3RhbGxoZHJzXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGFw
aVwiIF07IHRoZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwiV1RGL3d0Zi9EZXJpdmVk
U291cmNlcy5tYWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCBTREtS
T09UPVwiJHtTREtST09UfVwiXG5maSI7CisJCX07CiAJCTY1QUZBMTcwMTYzMEI5NzcwMDNENzIz
QyAvKiBDb3B5IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWls
ZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE3MDIsNiArMTgx
NCw3IEBACiAJCQkJRTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGls
aXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzkxNTFBODI1QjAwNDEyM0ZGIC8q
IENTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUMxNTFBODI1QjAwNDEyM0ZG
IC8qIEN1cnJlbnRUaW1lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0U5MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDczOUUxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGFMb2cuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThBNDczQTAxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGVNYXRoLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4QTQ3M0EyMTUxQTgyNUIwMDQxMjNGRiAvKiBEZWNpbWFsTnVtYmVyLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMTcxOCw2ICsxODMxLDE0IEBACiAJCQkJMUExRDhCOUUxNzMx
ODc5ODAwMTQxREE0IC8qIEZ1bmN0aW9uRGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyQ0NEODkyQTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQThBNDczRDgxNTFBODI1QjAwNDEyM0ZGIC8qIEhhc2hUYWJsZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQjFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUQxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RjAxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFMTY0NkExQjZGRkM5NjAwNDAwRTdDIC8qIExvY2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY2MEYzMkYxREZDQkQxQjAwNDE2RDZDIC8qIExvY2tlZFByaW50U3RyZWFtLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0U1MTUxQTgyNUIwMDQxMjNGRiAvKiBNYWluVGhyZWFk
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTc5Myw2ICsxOTE0LDExIEBACiAJCQl0YXJnZXQgPSA1
RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovOwogCQkJdGFyZ2V0UHJveHkgPSAxNDQ3
QUVDMzE4RkNFNTcwMDBCM0Q3RkYgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9Owor
CQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsK
KwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQgPSAxQ0QxODc4MTFENTU2
OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovOworCQkJdGFyZ2V0UHJveHkgPSAxQ0Qx
ODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9Owog
CQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsK
IAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSA2NUFGQTE2RjE2MzBC
OTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLzsKQEAgLTE4MjIsNiArMTk0OCwzMCBA
QAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFENTU2OTVD
MDBDQzdERUMgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsK
KwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2
IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJ
UFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7
CisJCX07CisJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0geworCQkJ
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5j
ZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87
CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1F
KSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTFDRDE4Nzg2MUQ1NTY5NUMw
MENDN0RFQyAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRp
b247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3
OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0gewor
CQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFBy
b2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9
IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25S
ZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29u
ZmlnICovOwpAQCAtMTkwNSw2ICsyMDU1LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklz
VmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwog
CQl9OworCQkxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBs
aXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJCQlp
c2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJ
CQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1
Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVD
IC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2li
bGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsK
IAkJNUQyNDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYUHJvamVjdCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7
CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3Uv
dW5pY29kZS91YnJrLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaAppbmRleCBlOWMw
ZWY2MjdiNjcyNzlmODZlNDYwNDRiZjBmMjU3MTAyZTBjNmNkLi4xOTc1YjlkYmVkNDQzYTkyNzQz
NmYwYTI3OTI5YmE1OGFmODcxODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3VicmsuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaApAQCAtMjQxLDYgKzI0
MSwzMSBAQCB1YnJrX29wZW5SdWxlcyhjb25zdCBVQ2hhciAgICAgKnJ1bGVzLAogICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAgICAgICpzdGF0dXMpOwogCiAvKioKKyAqIE9wZW4gYSBuZXcgVUJy
ZWFrSXRlcmF0b3IgZm9yIGxvY2F0aW5nIHRleHQgYm91bmRhcmllcyB1c2luZyBwcmVjb21waWxl
ZCBiaW5hcnkgcnVsZXMuCisgKiBPcGVuaW5nIGEgVUJyZWFrSXRlcmF0b3IgdGhpcyB3YXkgaXMg
c3Vic3RhbnRpYWxseSBmYXN0ZXIgdGhhbiB1c2luZyB1YnJrX29wZW5SdWxlcy4KKyAqIEJpbmFy
eSBydWxlcyBtYXkgYmUgb2J0YWluZWQgdXNpbmcgdWJya19nZXRCaW5hcnlSdWxlcy4gVGhlIGNv
bXBpbGVkIHJ1bGVzIGFyZSBub3QKKyAqIGNvbXBhdGlibGUgYWNyb3NzIGRpZmZlcmVudCBtYWpv
ciB2ZXJzaW9ucyBvZiBJQ1UsIG5vciBhY3Jvc3MgcGxhdGZvcm1zIG9mIGRpZmZlcmVudAorICog
ZW5kaWFubmVzcyBvciBkaWZmZXJlbnQgYmFzZSBjaGFyYWN0ZXIgc2V0IGZhbWlseSAoQVNDSUkg
dnMgRUJDRElDKS4KKyAqIEBwYXJhbSBiaW5hcnlSdWxlcyBBIHNldCBvZiBjb21waWxlZCBiaW5h
cnkgcnVsZXMgc3BlY2lmeWluZyB0aGUgdGV4dCBicmVha2luZworICogICAgICAgICAgICAgICAg
ICAgIGNvbnZlbnRpb25zLiBPd25lcnNoaXAgb2YgdGhlIHN0b3JhZ2UgY29udGFpbmluZyB0aGUg
Y29tcGlsZWQKKyAqICAgICAgICAgICAgICAgICAgICBydWxlcyByZW1haW5zIHdpdGggdGhlIGNh
bGxlciBvZiB0aGlzIGZ1bmN0aW9uLiBUaGUgY29tcGlsZWQKKyAqICAgICAgICAgICAgICAgICAg
ICBydWxlcyBtdXN0IG5vdCBiZSBtb2RpZmllZCBvciBkZWxldGVkIGR1cmluZyB0aGUgbGlmZSBv
ZiB0aGUKKyAqICAgICAgICAgICAgICAgICAgICBicmVhayBpdGVyYXRvci4KKyAqIEBwYXJhbSBy
dWxlc0xlbmd0aCBUaGUgbGVuZ3RoIG9mIGJpbmFyeVJ1bGVzIGluIGJ5dGVzOyBtdXN0IGJlID49
IDAuCisgKiBAcGFyYW0gdGV4dCAgICAgICAgVGhlIHRleHQgdG8gYmUgaXRlcmF0ZWQgb3Zlci4g
IE1heSBiZSBudWxsLCBpbiB3aGljaCBjYXNlCisgKiAgICAgICAgICAgICAgICAgICAgdWJya19z
ZXRUZXh0KCkgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSB0ZXh0IHRvIGJlIGl0ZXJhdGVkLgorICog
QHBhcmFtIHRleHRMZW5ndGggIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0ZXh0LCBvciAt
MSBpZiBudWxsLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gc3RhdHVzICAgICAgUG9pbnRlciB0byBV
RXJyb3JDb2RlIHRvIHJlY2VpdmUgYW55IGVycm9ycy4KKyAqIEByZXR1cm4gICAgICAgICAgICBV
QnJlYWtJdGVyYXRvciBmb3IgdGhlIHNwZWNpZmllZCBydWxlcy4KKyAqIEBzZWUgdWJya19nZXRC
aW5hcnlSdWxlcworICogQGRyYWZ0IElDVSA1OQorICovCitVX0RSQUZUIFVCcmVha0l0ZXJhdG9y
KiBVX0VYUE9SVDIKK3Vicmtfb3BlbkJpbmFyeVJ1bGVzKGNvbnN0IHVpbnQ4X3QgKmJpbmFyeVJ1
bGVzLCBpbnQzMl90IHJ1bGVzTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNo
YXIgKiAgdGV4dCwgaW50MzJfdCB0ZXh0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVy
cm9yQ29kZSAqICAgc3RhdHVzKTsKKworLyoqCiAgKiBUaHJlYWQgc2FmZSBjbG9uaW5nIG9wZXJh
dGlvbgogICogQHBhcmFtIGJpIGl0ZXJhdG9yIHRvIGJlIGNsb25lZAogICogQHBhcmFtIHN0YWNr
QnVmZmVyIDxlbT5EZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUyLCB1c2UgTlVM
TC48L2VtPjxicj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaCBi
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZGRlNGU3MzhlZTQ4
MmFhMjc2MDlmNzk2MDYzMTk2YTRkOTk3ZGRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri9pY3UvdW5pY29kZS91ZGF0YS5oCkBAIC0wLDAgKzEsNDMyIEBACisvLyBDb3B5cmlnaHQgKEMp
IDIwMTYgYW5kIGxhdGVyOiBVbmljb2RlLCBJbmMuIGFuZCBvdGhlcnMuCisvLyBMaWNlbnNlICYg
dGVybXMgb2YgdXNlOiBodHRwOi8vd3d3LnVuaWNvZGUub3JnL2NvcHlyaWdodC5odG1sCisvKgor
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisqCisqICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMTQsIElu
dGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKyogICBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJz
LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgIGZp
bGUgbmFtZTogIHVkYXRhLmgKKyogICBlbmNvZGluZzogICBVUy1BU0NJSQorKiAgIHRhYiBzaXpl
OiAgIDggKG5vdCB1c2VkKQorKiAgIGluZGVudGF0aW9uOjQKKyoKKyogICBjcmVhdGVkIG9uOiAx
OTk5b2N0MjUKKyogICBjcmVhdGVkIGJ5OiBNYXJrdXMgVy4gU2NoZXJlcgorKi8KKworI2lmbmRl
ZiBfX1VEQVRBX0hfXworI2RlZmluZSBfX1VEQVRBX0hfXworCisjaW5jbHVkZSAidW5pY29kZS91
dHlwZXMuaCIKKyNpbmNsdWRlICJ1bmljb2RlL2xvY2FscG9pbnRlci5oIgorCitVX0NERUNMX0JF
R0lOCisKKy8qKgorICogXGZpbGUKKyAqIFxicmllZiBDIEFQSTogRGF0YSBsb2FkaW5nIGludGVy
ZmFjZQorICoKKyAqIDxoMj5JbmZvcm1hdGlvbiBhYm91dCBkYXRhIGxvYWRpbmcgaW50ZXJmYWNl
PC9oMj4KKyAqCisgKiBUaGlzIEFQSSBpcyB1c2VkIHRvIGZpbmQgYW5kIGVmZmljaWVudGx5IGxv
YWQgZGF0YSBmb3IgSUNVIGFuZCBhcHBsaWNhdGlvbnMKKyAqIHVzaW5nIElDVS4gSXQgcHJvdmlk
ZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRoYXQgc3BlY2lmaWVzIGEgZGF0YSB0eXBlIGFuZAor
ICogbmFtZSB0byBmaW5kIGFuZCBsb2FkIHRoZSBkYXRhLiBOb3JtYWxseSB0aGlzIEFQSSBpcyB1
c2VkIGJ5IG90aGVyIElDVSBBUElzCisgKiB0byBsb2FkIHJlcXVpcmVkIGRhdGEgb3V0IG9mIHRo
ZSBJQ1UgZGF0YSBsaWJyYXJ5LCBidXQgaXQgY2FuIGJlIHVzZWQgdG8KKyAqIGxvYWQgZGF0YSBv
dXQgb2Ygb3RoZXIgcGxhY2VzLgorICoKKyAqIFNlZSB0aGUgVXNlciBHdWlkZSBEYXRhIE1hbmFn
ZW1lbnQgY2hhcHRlci4KKyAqLworIAorI2lmbmRlZiBVX0hJREVfSU5URVJOQUxfQVBJCisvKioK
KyAqIENoYXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJvbSB0cmVlIG5h
bWVzIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVfU0VQQVJBVE9S
ICctJworCisvKioKKyAqIFN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhY2thZ2UgbmFtZXMgZnJv
bSB0cmVlIG5hbWVzIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX1RSRUVf
U0VQQVJBVE9SX1NUUklORyAiLSIKKworLyoqCisgKiBDaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0
ZSBwYXJ0cyBvZiBlbnRyeSBuYW1lcworICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmlu
ZSBVX1RSRUVfRU5UUllfU0VQX0NIQVIgJy8nCisKKy8qKgorICogU3RyaW5nIHVzZWQgdG8gc2Vw
YXJhdGUgcGFydHMgb2YgZW50cnkgbmFtZXMKKyAqIEBpbnRlcm5hbCBJQ1UgMy4wCisgKi8KKyNk
ZWZpbmUgVV9UUkVFX0VOVFJZX1NFUF9TVFJJTkcgIi8iCisKKy8qKgorICogQWxpYXMgZm9yIHN0
YW5kYXJkIElDVSBkYXRhIAorICogQGludGVybmFsIElDVSAzLjAKKyAqLworI2RlZmluZSBVX0lD
VURBVEFfQUxJQVMgIklDVURBVEEiCisKKyNlbmRpZiAvKiBVX0hJREVfSU5URVJOQUxfQVBJICov
CisKKy8qKgorICogVURhdGFJbmZvIGNvbnRhaW5zIHRoZSBwcm9wZXJ0aWVzIGFib3V0IHRoZSBy
ZXF1ZXN0ZWQgZGF0YS4KKyAqIFRoaXMgaXMgbWV0YSBkYXRhLgorICoKKyAqIDxwPlRoaXMgc3Ry
dWN0dXJlIG1heSBncm93IGluIHRoZSBmdXR1cmUsIGluZGljYXRlZCBieSB0aGUKKyAqIDxjb2Rl
PnNpemU8L2NvZGU+IGZpZWxkLjwvcD4KKyAqCisgKiA8cD5JQ1UgZGF0YSBtdXN0IGJlIGF0IGxl
YXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogVGhlIFVEYXRhSW5m
byBzdHJ1Y3QgYmVnaW5zIDQgYnl0ZXMgYWZ0ZXIgdGhlIHN0YXJ0IG9mIHRoZSBkYXRhIGl0ZW0s
CisgKiBzbyBpdCBpcyA0LWFsaWduZWQuCisgKgorICogPHA+VGhlIHBsYXRmb3JtIGRhdGEgcHJv
cGVydHkgZmllbGRzIGhlbHAgZGV0ZXJtaW5lIGlmIGEgZGF0YQorICogZmlsZSBjYW4gYmUgZWZm
aWNpZW50bHkgdXNlZCBvbiBhIGdpdmVuIG1hY2hpbmUuCisgKiBUaGUgcGFydGljdWxhciBmaWVs
ZHMgYXJlIG9mIGltcG9ydGFuY2Ugb25seSBpZiB0aGUgZGF0YQorICogaXMgYWZmZWN0ZWQgYnkg
dGhlIHByb3BlcnRpZXMgLSBpZiB0aGVyZSBpcyBpbnRlZ2VyIGRhdGEKKyAqIHdpdGggd29yZCBz
aXplcyA+IDEgYnl0ZSwgY2hhciogdGV4dCwgb3IgVUNoYXIqIHRleHQuPC9wPgorICoKKyAqIDxw
PlRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIDxjb2RlPnVkYXRhX29wZW5bQ2hvaWNlXSgpPC9j
b2RlPgorICogZnVuY3Rpb25zIG1heSByZWplY3QgZGF0YSBiYXNlZCBvbiB0aGUgdmFsdWUgaW4g
PGNvZGU+aXNCaWdFbmRpYW48L2NvZGU+LgorICogTm8gb3RoZXIgZmllbGQgaXMgdXNlZCBieSB0
aGUgPGNvZGU+dWRhdGE8L2NvZGU+IEFQSSBpbXBsZW1lbnRhdGlvbi48L3A+CisgKgorICogPHA+
VGhlIDxjb2RlPmRhdGFGb3JtYXQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIGlkZW50aWZ5CisgKiB0
aGUga2luZCBvZiBkYXRhLCBlLmcuIGEgY29udmVydGVyIHRhYmxlLjwvcD4KKyAqCisgKiA8cD5U
aGUgPGNvZGU+Zm9ybWF0VmVyc2lvbjwvY29kZT4gZmllbGQgc2hvdWxkIGJlIHVzZWQgdG8KKyAq
IG1ha2Ugc3VyZSB0aGF0IHRoZSBmb3JtYXQgY2FuIGJlIGludGVycHJldGVkLgorICogSXQgbWF5
IGJlIGEgZ29vZCBpZGVhIHRvIGNoZWNrIG9ubHkgZm9yIHRoZSBvbmUgb3IgdHdvIGhpZ2hlc3QK
KyAqIG9mIHRoZSB2ZXJzaW9uIGVsZW1lbnRzIHRvIGFsbG93IHRoZSBkYXRhIG1lbW9yeSB0bwor
ICogZ2V0IG1vcmUgb3Igc29tZXdoYXQgcmVhcnJhbmdlZCBjb250ZW50cywgZm9yIGFzIGxvbmcK
KyAqIGFzIHRoZSB1c2luZyBjb2RlIGNhbiBzdGlsbCBpbnRlcnByZXQgdGhlIG9sZGVyIGNvbnRl
bnRzLjwvcD4KKyAqCisgKiA8cD5UaGUgPGNvZGU+ZGF0YVZlcnNpb248L2NvZGU+IGZpZWxkIGlz
IGludGVuZGVkIHRvIGJlIGEKKyAqIGNvbW1vbiBwbGFjZSB0byBzdG9yZSB0aGUgc291cmNlIHZl
cnNpb24gb2YgdGhlIGRhdGE7CisgKiBmb3IgZGF0YSBmcm9tIHRoZSBVbmljb2RlIGNoYXJhY3Rl
ciBkYXRhYmFzZSwgdGhpcyBjb3VsZAorICogcmVmbGVjdCB0aGUgVW5pY29kZSB2ZXJzaW9uLjwv
cD4KKyAqCisgKiBAc3RhYmxlIElDVSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIC8q
KiBzaXplb2YoVURhdGFJbmZvKQorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50
MTZfdCBzaXplOworCisgICAgLyoqIHVudXNlZCwgc2V0IHRvIDAgCisgICAgICogIEBzdGFibGUg
SUNVIDIuMCovCisgICAgdWludDE2X3QgcmVzZXJ2ZWRXb3JkOworCisgICAgLyogcGxhdGZvcm0g
ZGF0YSBwcm9wZXJ0aWVzICovCisgICAgLyoqIDAgZm9yIGxpdHRsZS1lbmRpYW4gbWFjaGluZSwg
MSBmb3IgYmlnLWVuZGlhbgorICAgICAqICBAc3RhYmxlIElDVSAyLjAgKi8KKyAgICB1aW50OF90
IGlzQmlnRW5kaWFuOworCisgICAgLyoqIHNlZSBVX0NIQVJTRVRfRkFNSUxZIHZhbHVlcyBpbiB1
dHlwZXMuaCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50OF90IGNoYXJzZXRG
YW1pbHk7CisKKyAgICAvKiogc2l6ZW9mKFVDaGFyKSwgb25lIG9mIHsgMSwgMiwgNCB9IAorICAg
ICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3Qgc2l6ZW9mVUNoYXI7CisKKyAgICAv
KiogdW51c2VkLCBzZXQgdG8gMCAKKyAgICAgKiAgQHN0YWJsZSBJQ1UgMi4wKi8KKyAgICB1aW50
OF90IHJlc2VydmVkQnl0ZTsKKworICAgIC8qKiBkYXRhIGZvcm1hdCBpZGVudGlmaWVyIAorICAg
ICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YUZvcm1hdFs0XTsKKworICAg
IC8qKiB2ZXJzaW9uczogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1pY3JvIAor
ICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZm9ybWF0VmVyc2lvbls0XTsK
KworICAgIC8qKiB2ZXJzaW9uczogWzBdIG1ham9yIFsxXSBtaW5vciBbMl0gbWlsbGkgWzNdIG1p
Y3JvIAorICAgICAqICBAc3RhYmxlIElDVSAyLjAqLworICAgIHVpbnQ4X3QgZGF0YVZlcnNpb25b
NF07Cit9IFVEYXRhSW5mbzsKKworLyogQVBJIGZvciByZWFkaW5nIGRhdGEgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKioKKyAqIEZv
cndhcmQgZGVjbGFyYXRpb24gb2YgdGhlIGRhdGEgbWVtb3J5IHR5cGUuCisgKiBAc3RhYmxlIElD
VSAyLjAKKyAqLwordHlwZWRlZiBzdHJ1Y3QgVURhdGFNZW1vcnkgVURhdGFNZW1vcnk7CisKKy8q
KgorICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHVkYXRhX29wZW5DaG9pY2UoKS4KKyAqIEBwYXJh
bSBjb250ZXh0IHBhcmFtZXRlciBwYXNzZWQgaW50byA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNlKCk8
L2NvZGU+LgorICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIGRhdGEgYXMgcGFzc2VkIGlu
dG8gPGNvZGU+dWRhdGFfb3BlbkNob2ljZSgpPC9jb2RlPi4KKyAqICAgICAgICAgICAgIEl0IG1h
eSBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBk
YXRhIGFzIHBhc3NlZCBpbnRvIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4uCisgKiBA
cGFyYW0gcEluZm8gQSBwb2ludGVyIHRvIHRoZSA8Y29kZT5VRGF0YUluZm88L2NvZGU+IHN0cnVj
dHVyZQorICogICAgICAgICAgICAgIG9mIGRhdGEgdGhhdCBoYXMgYmVlbiBsb2FkZWQgYW5kIHdp
bGwgYmUgcmV0dXJuZWQKKyAqICAgICAgICAgICAgICBieSA8Y29kZT51ZGF0YV9vcGVuQ2hvaWNl
KCk8L2NvZGU+IGlmIHRoaXMgZnVuY3Rpb24KKyAqICAgICAgICAgICAgICByZXR1cm5zIDxjb2Rl
PlRSVUU8L2NvZGU+LgorICogQHJldHVybiBUUlVFIGlmIHRoZSBjdXJyZW50IGRhdGEgbWVtb3J5
IGlzIGFjY2VwdGFibGUKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCit0eXBlZGVmIFVCb29sIFVf
Q0FMTENPTlYKK1VEYXRhTWVtb3J5SXNBY2NlcHRhYmxlKHZvaWQgKmNvbnRleHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVURhdGFJbmZvICpwSW5mbyk7CisKKworLyoqCisg
KiBDb252ZW5pZW5jZSBmdW5jdGlvbi4KKyAqIFRoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUg
YXMgPGNvZGU+dWRhdGFfb3BlbkNob2ljZTwvY29kZT4KKyAqIGV4Y2VwdCB0aGF0IGFueSBkYXRh
IHRoYXQgbWF0Y2hlcyB0aGUgdHlwZSBhbmQgbmFtZQorICogaXMgYXNzdW1lZCB0byBiZSBhY2Nl
cHRhYmxlLgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRlIHBhdGggYW5kL29y
IGEgYmFzZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBvZiB0aGUgZGF0YSBp
biB0aGUgZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxMPC9jb2RlPiBmb3Ig
SUNVIGRhdGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlw
ZSBvZiBkYXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBleGFtcGxlLCByZXNv
dXJjZSBidW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICogICAgICAgICAgICAg
Y29udmVyc2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAgICAgICAgVGhpcyBt
YXkgYmUgPGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0gbmFtZSBBIHN0cmlu
ZyB0aGF0IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBwYXJhbSBwRXJyb3JD
b2RlIEFuIElDVSBVRXJyb3JDb2RlIHBhcmFtZXRlci4gSXQgbXVzdCBub3QgYmUgPGNvZGU+TlVM
TDwvY29kZT4uCisgKiBAcmV0dXJuIEEgcG9pbnRlciAoaGFuZGxlKSB0byBhIGRhdGEgbWVtb3J5
IG9iamVjdCwgb3IgPGNvZGU+TlVMTDwvY29kZT4KKyAqICAgICAgICAgaWYgYW4gZXJyb3Igb2Nj
dXJzLiBDYWxsIDxjb2RlPnVkYXRhX2dldE1lbW9yeSgpPC9jb2RlPgorICogICAgICAgICB0byBn
ZXQgYSBwb2ludGVyIHRvIHRoZSBhY3R1YWwgZGF0YS4KKyAqCisgKiBAc2VlIHVkYXRhX29wZW5D
aG9pY2UKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBVRGF0YU1lbW9yeSAqIFVf
RVhQT1JUMgordWRhdGFfb3Blbihjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCBj
b25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICBVRXJyb3JDb2RlICpwRXJyb3JDb2RlKTsKKwor
LyoqCisgKiBEYXRhIGxvYWRpbmcgZnVuY3Rpb24uCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQg
dG8gZmluZCBhbmQgbG9hZCBlZmZpY2llbnRseSBkYXRhIGZvcgorICogSUNVIGFuZCBhcHBsaWNh
dGlvbnMgdXNpbmcgSUNVLgorICogSXQgcHJvdmlkZXMgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIHRo
YXQgYWxsb3dzIHRvIHNwZWNpZnkgYSBkYXRhCisgKiB0eXBlIGFuZCBuYW1lIHRvIGZpbmQgYW5k
IGxvYWQgdGhlIGRhdGEuCisgKgorICogPHA+VGhlIGltcGxlbWVudGF0aW9uIGRlcGVuZHMgb24g
cGxhdGZvcm0gcHJvcGVydGllcyBhbmQgdXNlciBwcmVmZXJlbmNlcworICogYW5kIG1heSBpbnZv
bHZlIGxvYWRpbmcgc2hhcmVkIGxpYnJhcmllcyAoRExMcyksIG1hcHBpbmcKKyAqIGZpbGVzIGlu
dG8gbWVtb3J5LCBvciBmb3BlbigpL2ZyZWFkKCkgZmlsZXMuCisgKiBJdCBtYXkgYWxzbyBpbnZv
bHZlIHVzaW5nIHN0YXRpYyBtZW1vcnkgb3IgZGF0YWJhc2UgcXVlcmllcyBldGMuCisgKiBTZXZl
cmFsIG9yIGFsbCBkYXRhIGl0ZW1zIG1heSBiZSBjb21iaW5lZCBpbnRvIG9uZSBlbnRpdHkKKyAq
IChETEwsIG1lbW9yeS1tYXBwYWJsZSBmaWxlKS48L3A+CisgKgorICogPHA+VGhlIGRhdGEgaXMg
YWx3YXlzIHByZWNlZGVkIGJ5IGEgaGVhZGVyIHRoYXQgaW5jbHVkZXMKKyAqIGEgPGNvZGU+VURh
dGFJbmZvPC9jb2RlPiBzdHJ1Y3R1cmUuCisgKiBUaGUgY2FsbGVyJ3MgPGNvZGU+aXNBY2NlcHRh
YmxlKCk8L2NvZGU+IGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBtYWtlCisgKiBzdXJlIHRoYXQgdGhl
IGRhdGEgaXMgdXNlZnVsLiBJdCBtYXkgYmUgY2FsbGVkIHNldmVyYWwgdGltZXMgaWYgaXQKKyAq
IHJlamVjdHMgdGhlIGRhdGEgYW5kIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgbG9jYXRpb24gd2l0
aCBkYXRhCisgKiBtYXRjaGluZyB0aGUgdHlwZSBhbmQgbmFtZS48L3A+CisgKgorICogPHA+SWYg
PGNvZGU+cGF0aD09TlVMTDwvY29kZT4sIHRoZW4gSUNVIGRhdGEgaXMgbG9hZGVkLgorICogT3Ro
ZXJ3aXNlLCBpdCBpcyBzZXBhcmF0ZWQgaW50byBhIGJhc2VuYW1lIGFuZCBhIGJhc2VuYW1lLWxl
c3MgZGlyZWN0b3J5IHN0cmluZy4KKyAqIFRoZSBiYXNlbmFtZSBpcyB1c2VkIGFzIHRoZSBkYXRh
IHBhY2thZ2UgbmFtZSwgYW5kIHRoZSBkaXJlY3RvcnkgaXMKKyAqIGxvZ2ljYWxseSBwcmVwZW5k
ZWQgdG8gdGhlIElDVSBkYXRhIGRpcmVjdG9yeSBzdHJpbmcuPC9wPgorICoKKyAqIDxwPkZvciBk
ZXRhaWxzIGFib3V0IElDVSBkYXRhIGxvYWRpbmcgc2VlIHRoZSBVc2VyIEd1aWRlCisgKiBEYXRh
IE1hbmFnZW1lbnQgY2hhcHRlci4gKGh0dHA6Ly9pY3UtcHJvamVjdC5vcmcvdXNlcmd1aWRlL2lj
dWRhdGEuaHRtbCk8L3A+CisgKgorICogQHBhcmFtIHBhdGggU3BlY2lmaWVzIGFuIGFic29sdXRl
IHBhdGggYW5kL29yIGEgYmFzZW5hbWUgZm9yIHRoZQorICogICAgICAgICAgICAgZmluZGluZyBv
ZiB0aGUgZGF0YSBpbiB0aGUgZmlsZSBzeXN0ZW0uCisgKiAgICAgICAgICAgICA8Y29kZT5OVUxM
PC9jb2RlPiBmb3IgSUNVIGRhdGEuCisgKiBAcGFyYW0gdHlwZSBBIHN0cmluZyB0aGF0IHNwZWNp
ZmllcyB0aGUgdHlwZSBvZiBkYXRhIHRvIGJlIGxvYWRlZC4KKyAqICAgICAgICAgICAgIEZvciBl
eGFtcGxlLCByZXNvdXJjZSBidW5kbGVzIGFyZSBsb2FkZWQgd2l0aCB0eXBlICJyZXMiLAorICog
ICAgICAgICAgICAgY29udmVyc2lvbiB0YWJsZXMgd2l0aCB0eXBlICJjbnYiLgorICogICAgICAg
ICAgICAgVGhpcyBtYXkgYmUgPGNvZGU+TlVMTDwvY29kZT4gb3IgZW1wdHkuCisgKiBAcGFyYW0g
bmFtZSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZGF0YS4KKyAqIEBw
YXJhbSBpc0FjY2VwdGFibGUgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRoYXQg
bG9hZGVkIGRhdGEKKyAqICAgICAgICAgICAgICAgICAgICAgaXMgdXNlZnVsIGZvciB0aGUgY2xp
ZW50IGNvZGUuIElmIGl0IHJldHVybnMgRkFMU0UKKyAqICAgICAgICAgICAgICAgICAgICAgZm9y
IGFsbCBkYXRhIGl0ZW1zLCB0aGVuIDxjb2RlPnVkYXRhX29wZW5DaG9pY2UoKTwvY29kZT4KKyAq
ICAgICAgICAgICAgICAgICAgICAgd2lsbCByZXR1cm4gd2l0aCBhbiBlcnJvci4KKyAqIEBwYXJh
bSBjb250ZXh0IEFyYml0cmFyeSBwYXJhbWV0ZXIgdG8gYmUgcGFzc2VkIGludG8gaXNBY2NlcHRh
YmxlLgorICogQHBhcmFtIHBFcnJvckNvZGUgQW4gSUNVIFVFcnJvckNvZGUgcGFyYW1ldGVyLiBJ
dCBtdXN0IG5vdCBiZSA8Y29kZT5OVUxMPC9jb2RlPi4KKyAqIEByZXR1cm4gQSBwb2ludGVyICho
YW5kbGUpIHRvIGEgZGF0YSBtZW1vcnkgb2JqZWN0LCBvciA8Y29kZT5OVUxMPC9jb2RlPgorICog
ICAgICAgICBpZiBhbiBlcnJvciBvY2N1cnMuIENhbGwgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8
L2NvZGU+CisgKiAgICAgICAgIHRvIGdldCBhIHBvaW50ZXIgdG8gdGhlIGFjdHVhbCBkYXRhLgor
ICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIFVEYXRhTWVtb3J5ICogVV9FWFBPUlQy
Cit1ZGF0YV9vcGVuQ2hvaWNlKGNvbnN0IGNoYXIgKnBhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIGNv
bnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgIFVEYXRhTWVtb3J5SXNBY2NlcHRhYmxl
ICppc0FjY2VwdGFibGUsIHZvaWQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgIFVFcnJvckNv
ZGUgKnBFcnJvckNvZGUpOworCisvKioKKyAqIENsb3NlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRo
aXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgdG8gYWxsb3cgdGhlIHN5c3RlbSB0bworICogcmVs
ZWFzZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGF0YSBtZW1vcnkuCisgKiBAcGFy
YW0gcERhdGEgVGhlIHBvaW50ZXIgdG8gZGF0YSBtZW1vcnkgb2JqZWN0CisgKiBAc3RhYmxlIElD
VSAyLjAKKyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2Nsb3NlKFVEYXRhTWVt
b3J5ICpwRGF0YSk7CisKKyNpZiBVX1NIT1dfQ1BMVVNQTFVTX0FQSQorCitVX05BTUVTUEFDRV9C
RUdJTgorCisvKioKKyAqIFxjbGFzcyBMb2NhbFVEYXRhTWVtb3J5UG9pbnRlcgorICogIlNtYXJ0
IHBvaW50ZXIiIGNsYXNzLCBjbG9zZXMgYSBVRGF0YU1lbW9yeSB2aWEgdWRhdGFfY2xvc2UoKS4K
KyAqIEZvciBtb3N0IG1ldGhvZHMgc2VlIHRoZSBMb2NhbFBvaW50ZXJCYXNlIGJhc2UgY2xhc3Mu
CisgKgorICogQHNlZSBMb2NhbFBvaW50ZXJCYXNlCisgKiBAc2VlIExvY2FsUG9pbnRlcgorICog
QHN0YWJsZSBJQ1UgNC40CisgKi8KK1VfREVGSU5FX0xPQ0FMX09QRU5fUE9JTlRFUihMb2NhbFVE
YXRhTWVtb3J5UG9pbnRlciwgVURhdGFNZW1vcnksIHVkYXRhX2Nsb3NlKTsKKworVV9OQU1FU1BB
Q0VfRU5ECisKKyNlbmRpZgorCisvKioKKyAqIEdldCB0aGUgcG9pbnRlciB0byB0aGUgYWN0dWFs
IGRhdGEgaW5zaWRlIHRoZSBkYXRhIG1lbW9yeS4KKyAqIFRoZSBkYXRhIGlzIHJlYWQtb25seS4K
KyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBi
ZSAxNi1hbGlnbmVkLgorICoKKyAqIEBwYXJhbSBwRGF0YSBUaGUgcG9pbnRlciB0byBkYXRhIG1l
bW9yeSBvYmplY3QKKyAqIEBzdGFibGUgSUNVIDIuMAorICovCitVX1NUQUJMRSBjb25zdCB2b2lk
ICogVV9FWFBPUlQyCit1ZGF0YV9nZXRNZW1vcnkoVURhdGFNZW1vcnkgKnBEYXRhKTsKKworLyoq
CisgKiBHZXQgdGhlIGluZm9ybWF0aW9uIGZyb20gdGhlIGRhdGEgbWVtb3J5IGhlYWRlci4KKyAq
IFRoaXMgYWxsb3dzIHRvIGdldCBhY2Nlc3MgdG8gdGhlIGhlYWRlciBjb250YWluaW5nCisgKiBw
bGF0Zm9ybSBkYXRhIHByb3BlcnRpZXMgZXRjLiB3aGljaCBpcyBub3QgcGFydCBvZgorICogdGhl
IGRhdGEgaXRzZWxmIGFuZCBjYW4gdGhlcmVmb3JlIG5vdCBiZSBhY2Nlc3NlZAorICogdmlhIHRo
ZSBwb2ludGVyIHRoYXQgPGNvZGU+dWRhdGFfZ2V0TWVtb3J5KCk8L2NvZGU+IHJldHVybnMuCisg
KgorICogQHBhcmFtIHBEYXRhIHBvaW50ZXIgdG8gdGhlIGRhdGEgbWVtb3J5IG9iamVjdAorICog
QHBhcmFtIHBJbmZvIHBvaW50ZXIgdG8gYSBVRGF0YUluZm8gb2JqZWN0OworICogICAgICAgICAg
ICAgIGl0cyA8Y29kZT5zaXplPC9jb2RlPiBmaWVsZCBtdXN0IGJlIHNldCBjb3JyZWN0bHksCisg
KiAgICAgICAgICAgICAgdHlwaWNhbGx5IHRvIDxjb2RlPnNpemVvZihVRGF0YUluZm8pPC9jb2Rl
Pi4KKyAqCisgKiA8Y29kZT4qcEluZm88L2NvZGU+IHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIFVE
YXRhSW5mbyBzdHJ1Y3R1cmUKKyAqIGluIHRoZSBkYXRhIG1lbW9yeSBvYmplY3QuIElmIHRoaXMg
c3RydWN0dXJlIGlzIHNtYWxsZXIgdGhhbgorICogPGNvZGU+cEluZm8tPnNpemU8L2NvZGU+LCB0
aGVuIHRoZSA8Y29kZT5zaXplPC9jb2RlPiB3aWxsIGJlCisgKiBhZGp1c3RlZCBhbmQgb25seSBw
YXJ0IG9mIHRoZSBzdHJ1Y3R1cmUgd2lsbCBiZSBmaWxsZWQuCisgKiBAc3RhYmxlIElDVSAyLjAK
KyAqLworVV9TVEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX2dldEluZm8oVURhdGFNZW1vcnkg
KnBEYXRhLCBVRGF0YUluZm8gKnBJbmZvKTsKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFz
c2VzIHRoZSBub3JtYWwgSUNVIGRhdGEgbG9hZGluZyBwcm9jZXNzIGFuZAorICogYWxsb3dzIHlv
dSB0byBmb3JjZSBJQ1UncyBzeXN0ZW0gZGF0YSB0byBjb21lIG91dCBvZiBhIHVzZXItc3BlY2lm
aWVkCisgKiBhcmVhIGluIG1lbW9yeS4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0
IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2Vy
Z3VpZGUuaWN1LXByb2plY3Qub3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMg
ZGF0YSBpcyB0aGF0IG9mIHRoZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgYXMgaXMKKyAqIGdlbmVy
YXRlZCBieSB0aGUgcGtnZGF0YSB0b29sIHdpdGggbW9kZT1jb21tb24gb3IgbW9kZT1kbGwuCisg
KiBZb3UgY2FuIHJlYWQgaW4gYSB3aG9sZSBjb21tb24gbW9kZSBmaWxlIGFuZCBwYXNzIHRoZSBh
ZGRyZXNzIHRvIHRoZSBzdGFydCBvZiB0aGUKKyAqIGRhdGEsIG9yICh3aXRoIHRoZSBhcHByb3By
aWF0ZSBsaW5rIG9wdGlvbnMpIHBhc3MgaW4gdGhlIHBvaW50ZXIgdG8KKyAqIHRoZSBkYXRhIHRo
YXQgaGFzIGJlZW4gbG9hZGVkIGZyb20gYSBkbGwgYnkgdGhlIG9wZXJhdGluZyBzeXN0ZW0sCisg
KiBhcyBzaG93biBpbiB0aGlzIGNvZGU6CisgKgorICogICAgICAgZXh0ZXJuIGNvbnN0IGNoYXIg
VV9JTVBPUlQgVV9JQ1VEQVRBX0VOVFJZX1BPSU5UIFtdOworICogICAgICAgIC8vIFVfSUNVREFU
QV9FTlRSWV9QT0lOVCBpcyBzYW1lIGFzIGVudHJ5IHBvaW50IHNwZWNpZmllZCB0byBwa2dkYXRh
IHRvb2wKKyAqICAgICAgIFVFcnJvckNvZGUgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAqCisg
KiAgICAgICB1ZGF0YV9zZXRDb21tb25EYXRhKCZVX0lDVURBVEFfRU5UUllfUE9JTlQsICZzdGF0
dXMpOworICoKKyAqIEl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBkZWNsYXJhdGlvbiBiZSBhcyBh
Ym92ZS4gVGhlIGVudHJ5IHBvaW50CisgKiBtdXN0IG5vdCBiZSBkZWNsYXJlZCBhcyBhbiBleHRl
cm4gdm9pZCouCisgKgorICogU3RhcnRpbmcgd2l0aCBJQ1UgNC40LCBpdCBpcyBwb3NzaWJsZSB0
byBzZXQgc2V2ZXJhbCBkYXRhIHBhY2thZ2VzLAorICogb25lIHBlciBjYWxsIHRvIHRoaXMgZnVu
Y3Rpb24uCisgKiB1ZGF0YV9vcGVuKCkgd2lsbCBsb29rIGZvciBkYXRhIGluIHRoZSBtdWx0aXBs
ZSBkYXRhIHBhY2thZ2VzIGluIHRoZSBvcmRlcgorICogaW4gd2hpY2ggdGhleSB3ZXJlIHNldC4K
KyAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgbGlua2VkLWluIG9yIGRlZmF1bHQtbmFtZSBJQ1UgLmRh
dGEgcGFja2FnZSBpbiB0aGUKKyAqIHNlYXJjaCBsaXN0IGRlcGVuZHMgb24gd2hlbiB0aGUgZmly
c3QgZGF0YSBpdGVtIGlzIGxvYWRlZCB0aGF0IGlzIG5vdCBjb250YWluZWQKKyAqIGluIHRoZSBh
bHJlYWR5IGV4cGxpY2l0bHkgc2V0IHBhY2thZ2VzLgorICogSWYgZGF0YSB3YXMgbG9hZGVkIGlt
cGxpY2l0bHkgYmVmb3JlIHRoZSBmaXJzdCBjYWxsIHRvIHRoaXMgZnVuY3Rpb24KKyAqIChmb3Ig
ZXhhbXBsZSwgdmlhIG9wZW5pbmcgYSBjb252ZXJ0ZXIsIGNvbnN0cnVjdGluZyBhIFVuaWNvZGVT
dHJpbmcKKyAqIGZyb20gZGVmYXVsdC1jb2RlcGFnZSBkYXRhLCB1c2luZyBmb3JtYXR0aW5nIG9y
IGNvbGxhdGlvbiBBUElzLCBldGMuKSwKKyAqIHRoZW4gdGhlIGRlZmF1bHQgZGF0YSB3aWxsIGJl
IGZpcnN0IGluIHRoZSBsaXN0LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaGFzIG5vIGVmZmVjdCBv
biBhcHBsaWNhdGlvbiAobm9uIElDVSkgZGF0YS4gIFNlZSB1ZGF0YV9zZXRBcHBEYXRhKCkKKyAq
IGZvciBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgZm9yIGFwcGxpY2F0aW9uIGRhdGEuCisgKgorICog
QHBhcmFtIGRhdGEgcG9pbnRlciB0byBJQ1UgY29tbW9uIGRhdGEKKyAqIEBwYXJhbSBlcnIgb3V0
Z29pbmcgZXJyb3Igc3RhdHVzIDxjb2RlPlVfVVNJTkdfREVGQVVMVF9XQVJOSU5HLCBVX1VOU1VQ
UE9SVEVEX0VSUk9SPC9jb2RlPgorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZv
aWQgVV9FWFBPUlQyCit1ZGF0YV9zZXRDb21tb25EYXRhKGNvbnN0IHZvaWQgKmRhdGEsIFVFcnJv
ckNvZGUgKmVycik7CisKKworLyoqCisgKiBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBub3Jt
YWwgSUNVIGRhdGEgbG9hZGluZyBwcm9jZXNzIGZvciBhcHBsaWNhdGlvbi1zcGVjaWZpYworICog
ZGF0YSBhbmQgYWxsb3dzIHlvdSB0byBmb3JjZSB0aGUgaXQgdG8gY29tZSBvdXQgb2YgYSB1c2Vy
LXNwZWNpZmllZAorICogcG9pbnRlci4KKyAqCisgKiBJQ1UgZGF0YSBtdXN0IGJlIGF0IGxlYXN0
IDgtYWxpZ25lZCwgYW5kIHNob3VsZCBiZSAxNi1hbGlnbmVkLgorICogU2VlIGh0dHA6Ly91c2Vy
Z3VpZGUuaWN1LXByb2plY3Qub3JnL2ljdWRhdGEKKyAqCisgKiBUaGUgZm9ybWF0IG9mIHRoaXMg
ZGF0YSBpcyB0aGF0IG9mIHRoZSBpY3UgY29tbW9uIGRhdGEgZmlsZSwgbGlrZSAnaWN1ZHQyNmwu
ZGF0JworICogb3IgdGhlIGNvcnJlc3BvbmRpbmcgc2hhcmVkIGxpYnJhcnkgKERMTCkgZmlsZS4K
KyAqIFRoZSBhcHBsaWNhdGlvbiBtdXN0IHJlYWQgaW4gb3Igb3RoZXJ3aXNlIGNvbnN0cnVjdCBh
biBpbWFnZSBvZiB0aGUgZGF0YSBhbmQgdGhlbgorICogcGFzcyB0aGUgYWRkcmVzcyBvZiBpdCB0
byB0aGlzIGZ1bmN0aW9uLgorICoKKyAqCisgKiBXYXJuaW5nOiAgc2V0QXBwRGF0YSB3aWxsIHNl
dCBhIFVfVVNJTkdfREVGQVVMVF9XQVJOSU5HIGNvZGUgaWYKKyAqICAgICAgICAgICBkYXRhIHdp
dGggdGhlIHNwZWNpZmVkIHBhdGggdGhhdCBoYXMgYWxyZWFkeSBiZWVuIG9wZW5lZCwgb3IKKyAq
ICAgICAgICAgICBpZiBzZXRBcHBEYXRhIHdpdGggdGhlIHNhbWUgcGF0aCBoYXMgYWxyZWFkeSBi
ZWVuIGNhbGxlZC4KKyAqICAgICAgICAgICBBbnkgc3VjaCBjYWxscyB0byBzZXRBcHBEYXRhIHdp
bGwgaGF2ZSBubyBlZmZlY3QuCisgKgorICoKKyAqIEBwYXJhbSBwYWNrYWdlTmFtZSB0aGUgcGFj
a2FnZSBuYW1lIGJ5IHdoaWNoIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHJlZmVyCisgKiAgICAgICAg
ICAgICB0byAob3BlbikgdGhpcyBkYXRhCisgKiBAcGFyYW0gZGF0YSBwb2ludGVyIHRvIHRoZSBk
YXRhCisgKiBAcGFyYW0gZXJyIG91dGdvaW5nIGVycm9yIHN0YXR1cyA8Y29kZT5VX1VTSU5HX0RF
RkFVTFRfV0FSTklORywgVV9VTlNVUFBPUlRFRF9FUlJPUjwvY29kZT4KKyAqIEBzZWUgdWRhdGFf
c2V0Q29tbW9uRGF0YQorICogQHN0YWJsZSBJQ1UgMi4wCisgKi8KK1VfU1RBQkxFIHZvaWQgVV9F
WFBPUlQyCit1ZGF0YV9zZXRBcHBEYXRhKGNvbnN0IGNoYXIgKnBhY2thZ2VOYW1lLCBjb25zdCB2
b2lkICpkYXRhLCBVRXJyb3JDb2RlICplcnIpOworCisvKioKKyAqIFBvc3NpYmxlIHNldHRpbmdz
IGZvciB1ZGF0YV9zZXRGaWxlQWNjZXNzKCkKKyAqIEBzZWUgdWRhdGFfc2V0RmlsZUFjY2Vzcwor
ICogQHN0YWJsZSBJQ1UgMy40CisgKi8KK3R5cGVkZWYgZW51bSBVRGF0YUZpbGVBY2Nlc3Mgewor
ICAgIC8qKiBJQ1UgbG9va3MgZm9yIGRhdGEgaW4gc2luZ2xlIGZpbGVzIGZpcnN0LCB0aGVuIGlu
IHBhY2thZ2VzLiAoZGVmYXVsdCkgQHN0YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfRklMRVNf
RklSU1QsCisgICAgLyoqIEFuIGFsaWFzIGZvciB0aGUgZGVmYXVsdCBhY2Nlc3MgbW9kZS4gQHN0
YWJsZSBJQ1UgMy40ICovCisgICAgVURBVEFfREVGQVVMVF9BQ0NFU1MgPSBVREFUQV9GSUxFU19G
SVJTVCwKKyAgICAvKiogSUNVIG9ubHkgbG9hZHMgZGF0YSBmcm9tIHBhY2thZ2VzLCBub3QgZnJv
bSBzaW5nbGUgZmlsZXMuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX09OTFlfUEFDS0FH
RVMsCisgICAgLyoqIElDVSBsb2FkcyBkYXRhIGZyb20gcGFja2FnZXMgZmlyc3QsIGFuZCBvbmx5
IGZyb20gc2luZ2xlIGZpbGVzCisgICAgICAgIGlmIHRoZSBkYXRhIGNhbm5vdCBiZSBmb3VuZCBp
biBhIHBhY2thZ2UuIEBzdGFibGUgSUNVIDMuNCAqLworICAgIFVEQVRBX1BBQ0tBR0VTX0ZJUlNU
LAorICAgIC8qKiBJQ1UgZG9lcyBub3QgYWNjZXNzIHRoZSBmaWxlIHN5c3RlbSBmb3IgZGF0YSBs
b2FkaW5nLiBAc3RhYmxlIElDVSAzLjQgKi8KKyAgICBVREFUQV9OT19GSUxFUywKKyAgICAvKiog
TnVtYmVyIG9mIHJlYWwgVURhdGFGaWxlQWNjZXNzIHZhbHVlcy4gQHN0YWJsZSBJQ1UgMy40ICov
CisgICAgVURBVEFfRklMRV9BQ0NFU1NfQ09VTlQKK30gVURhdGFGaWxlQWNjZXNzOworCisvKioK
KyAqIFRoaXMgZnVuY3Rpb24gbWF5IGJlIGNhbGxlZCB0byBjb250cm9sIGhvdyBJQ1UgbG9hZHMg
ZGF0YS4gSXQgbXVzdCBiZSBjYWxsZWQKKyAqIGJlZm9yZSBhbnkgSUNVIGRhdGEgaXMgbG9hZGVk
LCBpbmNsdWRpbmcgYXBwbGljYXRpb24gZGF0YSBsb2FkZWQgd2l0aCAKKyAqIHVyZXMvUmVzb3Vy
Y2VCdW5kbGUgb3IgdWRhdGEgQVBJcy4gVGhpcyBmdW5jdGlvbiBpcyBub3QgbXVsdGl0aHJlYWQg
c2FmZS4gIAorICogVGhlIHJlc3VsdHMgb2YgY2FsbGluZyBpdCB3aGlsZSBvdGhlciB0aHJlYWRz
IGFyZSBsb2FkaW5nIGRhdGEgYXJlIHVuZGVmaW5lZC4KKyAqIEBwYXJhbSBhY2Nlc3MgVGhlIHR5
cGUgb2YgZmlsZSBhY2Nlc3MgdG8gYmUgdXNlZAorICogQHBhcmFtIHN0YXR1cyBFcnJvciBjb2Rl
LgorICogQHNlZSBVRGF0YUZpbGVBY2Nlc3MKKyAqIEBzdGFibGUgSUNVIDMuNCAKKyAqLworVV9T
VEFCTEUgdm9pZCBVX0VYUE9SVDIKK3VkYXRhX3NldEZpbGVBY2Nlc3MoVURhdGFGaWxlQWNjZXNz
IGFjY2VzcywgVUVycm9yQ29kZSAqc3RhdHVzKTsKKworVV9DREVDTF9FTkQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3Rm
L0NNYWtlTGlzdHMudHh0CmluZGV4IDgxYWY5MTI3NjEwNmI4MTI4OTE3ZGI4Yzc5Y2YyNTRiMmU0
ZDhjZjAuLmQ5MGUwZjM4ZWMzZDhmNTgzNjA2NzJlNmFjOGQ5ZTcwOGExOThlZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NN
YWtlTGlzdHMudHh0CkBAIC0zMDEsNiArMzAxLDQyIEBAIGlmIChOT1QgVVNFX1NZU1RFTV9NQUxM
T0MpCiAgICAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUyBibWFsbG9jKQogZW5kaWYgKCkKIAor
c2V0KFdURl9CUkVBS0lOR19SVUxFU19TT1VSQ0VTCisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dAorICAgIHRleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dAorICAgIHRleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dAorKQor
CittYWNybyhHRU5FUkFURV9CUkVBS0lOR19SVUxFUyBfaW5wdXQgX3N5bWJvbE5hbWUgX291dHB1
dCkKKyAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgICAgIE9VVFBVVCAke19vdXRwdXR9Cisg
ICAgICAgIE1BSU5fREVQRU5ERU5DWSAke1dURl9ESVJ9L1NjcmlwdHMvR2VuZXJhdGVCcmVha2lu
Z1J1bGVTdHJpbmdzLnB5CisgICAgICAgIERFUEVORFMgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9E
SVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAke19p
bnB1dH0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNV
VEFCTEV9ICR7V1RGX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkg
LWluY2x1ZGVEZWZpbmVzICR7X3N5bWJvbE5hbWV9UnVsZXMgJHtDTUFLRV9DVVJSRU5UX1NPVVJD
RV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAk
e19pbnB1dH0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCA+ICR7X291dHB1dH0KKyAgICAgICAgVkVSQkFU
SU0pCisgICAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMgJHtfb3V0cHV0fSkKKyAgICBBRERfU09V
UkNFX0RFUEVOREVOQ0lFUygke19pbnB1dH0gJHtfb3V0cHV0fSkKK2VuZG1hY3JvKCkKKworZm9y
ZWFjaCAoX2ZpbGUgJHtXVEZfQlJFQUtJTkdfUlVMRVNfU09VUkNFU30pCisgICAgZ2V0X2ZpbGVu
YW1lX2NvbXBvbmVudChfbmFtZSAke19maWxlfSBOQU1FX1dFKQorICAgIEdFTkVSQVRFX0JSRUFL
SU5HX1JVTEVTKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8ke19maWxlfSAke19uYW1lfSAk
e0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzLyR7X25hbWV9LmNwcCkKK2Vu
ZGZvcmVhY2ggKCkKKworYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklWRURf
U09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxl
cy5jcHAKKyAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElSfS9TY3JpcHRzL0dlbmVyYXRlQnJl
YWtpbmdSdWxlU3RyaW5ncy5weQorICAgIERFUEVORFMgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9E
SVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0Cisg
ICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dURl9ESVJ9L1NjcmlwdHMvR2VuZXJh
dGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IC1pbmNsdWRlRGVmaW5lcyBjdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxl
cy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ID4gJHtERVJJVkVEX1NPVVJDRVNfV1RG
X0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAg
VkVSQkFUSU0pCitsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XVEZf
RElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHApCitBRERf
U09VUkNFX0RFUEVOREVOQ0lFUygke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVh
a2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgJHtERVJJVkVEX1NPVVJD
RVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3Bw
KQorCiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNV
LmNwcAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZSBi
L1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmMyNGFhNjQx
YjIxNzhjZjcyZjZmMGJkZWFhMTRjM2Y4MzEzODQ5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTAsMCArMSw3MiBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworQlJFQUtJTkdfUlVMRVNfRklMRVMgPSBcCisg
ICAgQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuYnJrIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuYnJrIFwKKyAgICBCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5icmsgXAorICAgIEJyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmJyayBcCisgICAgQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmJyayBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmJyayBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmJyaworCitCUkVBS0lO
R19SVUxFU19ERUZJTklUSU9OUz0kKEJSRUFLSU5HX1JVTEVTX0ZJTEVTOi5icms9LmNwcCkKKwor
aWZlcSAoJChzaGVsbCAkKENDKSAtc3RkPWdudSsrMTEgLXggYysrIC1FIC1QIC1kTSAkKFNES19G
TEFHUykgJChGUkFNRVdPUktfRkxBR1MpICQoSEVBREVSX0ZMQUdTKSAtSSAkKFdURikgLWluY2x1
ZGUgIiQoV1RGKS93dGYvUGxhdGZvcm0uaCIgL2Rldi9udWxsIHwgZ3JlcCAnIFdURl9QTEFURk9S
TV9JT1MgJyB8IGN1dCAtZCcgJyAtZjMpLCAxKQorICAgIFdURl9QTEFURk9STV9JT1MgPSAxCitl
bHNlCisgICAgV1RGX1BMQVRGT1JNX0lPUyA9IDAKK2VuZGlmCisKK2lmZXEgKCQoV1RGX1BMQVRG
T1JNX0lPUyksIDEpCisJQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1F
TlQgPSAwCisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyA9IDAKK2Vsc2UKKwlBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVOVCA9ICQoQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUKQorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAxCitlbmRpZgorCitERVBFTkRF
TkNJRVMgPSAkKEJSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TKQorCitpZmVxICgkKEhBVkVfSUNV
R0VOQlJLKSwgMSkKK0RFUEVOREVOQ0lFUyArPSAkKEJSRUFLSU5HX1JVTEVTX0ZJTEVTKQorZW5k
aWYKKworYWxsIDogJChERVBFTkRFTkNJRVMpCisKK0JyZWFraW5nUnVsZXMvJS5icmsgOiBCcmVh
a2luZ1J1bGVzLyUucHAKKwlpY3VnZW5icmsgLWMgLXIgJDwgLW8gJEAKKworQnJlYWtpbmdSdWxl
cy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIDogQnJlYWtpbmdSdWxlcy9DdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMucHAKKwlweXRob24gJChXVEYpL1NjcmlwdHMvR2VuZXJhdGVC
cmVha2luZ1J1bGVTdHJpbmdzLnB5IGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyAkPCA+ICRA
CisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLmNwcCA6IEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3IlLnBwCisJcHl0aG9uICQoV1RGKS9TY3JpcHRzL0dlbmVyYXRlQnJl
YWtpbmdSdWxlU3RyaW5ncy5weSBsaW5lQnJlYWtJdGVyYXRvciQqUnVsZXMgJDwgPiAkQAorCitC
cmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcCA6ICQoV1RGKS93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKwktdW5p
ZmRlZiAtREFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VF9GT1JfQ1VSU09SX01PVkVNRU5UKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZF
X0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQCAkPAorCitCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yJS5wcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yUHJvbG9ndWUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yJS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JFcGlsb2d1ZS50eHQKKwktY2F0ICQ/IHwgdW5pZmRlZiAtREFERElUSU9OQUxfRU1PSklf
U1VQUE9SVD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCkgLURIQVZFX0VYVFJBX0lDVV9OQU1F
RF9TRVRTPSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUykgLW8gJEAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc5MDhkMzUzNjBmZWNiNThjM2VkMmE2OTFj
NDY5MGM0NjZkOGQ5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0CkBAIC0wLDAgKzEsMTc2
IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCisjIFRoaXMgcnVsZSBzZXQgaXMgYmFzZWQgb24gY2hhcmFjdGVy
LWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NworIyA8aHR0cDovL3NvdXJjZS5pY3UtcHJv
amVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtp
dHIvPi4KKyMgVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJl
IGxpc3RlZCBiZWxvdzoKKyMgKiBSZXBsYWNlZCAnW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBTcGFjaW5nTWFya31dJyB3aXRoICdbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFy
a30gLSAkRXh0ZW5kXScgZm9yIElDVSAzLjggb3IgZWFybGllcjsKKyMgKiBSZW1vdmVkIHJ1bGVz
IHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3Rl
cnMgKEJ1ZyAyNDM0Mik7CisjICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZy
b20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRh
bWlsIChCdWcgMTU3OTApLCBhbmQ7CisjICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vy
c29yIGZyb20gbW92aW5nIGJlZm9yZSBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNl
ZCBtYXJrcy4KKyMgKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMu
CisKKyRDUiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOworJExGICAg
ICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExGfV07CiskQ29udHJvbCA9IFtccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOworJFZvaWNlTWFya3MgPSBbXHVGRjlF
XHVGRjlGXTsgIyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcworJEV4
dGVuZCAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNlTWFya3Mg
LSBbXHUwRTMwIFx1MEUzMiBcdTBFNDUgXHUwRUIwIFx1MEVCMl1dOworJFNwYWNpbmdNYXJrID0g
W1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfV0gLSAkRXh0ZW5kXTsKKyRMICAg
ICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07CiskViAgICAgICA9IFtccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOworJFQgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IFR9XTsKKyRMViAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBMVn1dOworJExWVCAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1dOwor
JEhpbjAgICAgPSBbXHUwOTA1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEK
KyRIaW5WICAgID0gXHUwOTREOyAjIERldmFuYWdhcmkgU2lnbiBWaXJhbWEKKyRIaW4xICAgID0g
W1x1MDkxNS1cdTA5MzldOyAjIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQorJEJlbjAgICAg
PSBbXHUwOTg1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEKKyRCZW5WICAgID0g
XHUwOUNEOyAjIEJlbmdhbGkgU2lnbiBWaXJhbWEKKyRCZW4xICAgID0gW1x1MDk5NS1cdTA5Qjld
OyAjIEJlbmdhbGkgTGV0dGVyIEthLC4uLixIYQorJFBhbjAgICAgPSBbXHUwQTA1LVx1MEEzOV07
ICMgR3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCiskUGFuViAgICA9IFx1MEE0RDsgIyBHdXJtdWto
aSBTaWduIFZpcmFtYQorJFBhbjEgICAgPSBbXHUwQTE1LVx1MEEzOV07ICMgR3VybXVraGkgTGV0
dGVyIEthLC4uLixIYQorJEd1ajAgICAgPSBbXHUwQTg1LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0
dGVyIEEsLi4uLEhhCiskR3VqViAgICA9IFx1MEFDRDsgIyBHdWphcmF0aSBTaWduIFZpcmFtYQor
JEd1ajEgICAgPSBbXHUwQTk1LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQor
JE9yaTAgICAgPSBbXHUwQjA1LVx1MEIzOV07ICMgT3JpeWEgTGV0dGVyIEEsLi4uLEhhCiskT3Jp
ViAgICA9IFx1MEI0RDsgIyBPcml5YSBTaWduIFZpcmFtYQorJE9yaTEgICAgPSBbXHUwQjE1LVx1
MEIzOV07ICMgT3JpeWEgTGV0dGVyIEthLC4uLixIYQorJFRlbDAgICAgPSBbXHUwQzA1LVx1MEMz
OV07ICMgVGVsdWd1IExldHRlciBBLC4uLixIYQorJFRlbFYgICAgPSBcdTBDNEQ7ICMgVGVsdWd1
IFNpZ24gVmlyYW1hCiskVGVsMSAgICA9IFtcdTBDMTQtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVy
IEthLC4uLixIYQorJEthbjAgICAgPSBbXHUwQzg1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIg
QSwuLi4sSGEKKyRLYW5WICAgID0gXHUwQ0NEOyAjIEthbm5hZGEgU2lnbiBWaXJhbWEKKyRLYW4x
ICAgID0gW1x1MEM5NS1cdTBDQjldOyAjIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCiskTWFsMCAg
ICA9IFtcdTBEMDUtXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhIAorJE1hbFYg
ICAgPSBcdTBENEQ7ICMgTWFsYXlhbGFtIFNpZ24gVmlyYW1hCiskTWFsMSAgICA9IFtcdTBEMTUt
XHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCiskUkkgICAgICA9IFtcVTAwMDFG
MUU2LVxVMDAwMUYxRkZdOyAjIEVtb2ppIHJlZ2lvbmFsIGluZGljYXRvcnMKKyRaV0ogICAgID0g
XHUyMDBEOyAjIFplcm8gd2lkdGggam9pbmVyCiskRW1vamlWYXIgPSBbXHVGRTBGXTsgIyBFbW9q
aS1zdHlsZSB2YXJpYXRpb24gc2VsZWN0b3IKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI2NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQgXHUw
MDAxRjMwOCBcdTAwMDFGM0MzLVx1MDAwMUYzQzQgXHUwMDAxRjNDQS1cdTAwMDFGM0NDIFx1MDAw
MUYzRjMgXHUwMDAxRjQ0MSBcdTAwMDFGNDY2LVx1MDAwMUY0NjkgXHUwMDAxRjQ2RS1cdTAwMDFG
NDZGIFx1MDAwMUY0NzEgXHUwMDAxRjQ3MyBcdTAwMDFGNDc3IFx1MDAwMUY0ODEtXHUwMDAxRjQ4
MiBcdTAwMDFGNDg2LVx1MDAwMUY0ODcgXHUwMDAxRjQ4QiBcdTAwMDFGNTc1IFx1MDAwMUY1RTgg
XHUwMDAxRjY0NS1cdTAwMDFGNjQ3IFx1MDAwMUY2NEIgXHUwMDAxRjY0RC1cdTAwMDFGNjRFIFx1
MDAwMUY2QTMgXHUwMDAxRjZCNC1cdTAwMDFGNkI2IFx1MjY5NS1cdTI2OTYgXHUyNzA4IFx1MDAw
MUYzM0UgXHUwMDAxRjM3MyBcdTAwMDFGMzkzIFx1MDAwMUYzQTQgXHUwMDAxRjNBOCBcdTAwMDFG
M0VCIFx1MDAwMUYzRUQgXHUwMDAxRjRCQi1cdTAwMDFGNEJDIFx1MDAwMUY1MjcgXHUwMDAxRjUy
QyBcdTAwMDFGNjgwIFx1MDAwMUY2OTIgXHUwMDAxRjkyNiBcdTAwMDFGOTM3LVx1MDAwMUY5Mzkg
XHUwMDAxRjkzQy1cdTAwMDFGOTNFXTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBz
ZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1Mjcw
RCBcdTAwMDFGMzg1IFx1MDAwMUYzQzMtXHUwMDAxRjNDNCBcdTAwMDFGM0NBIFx1MDAwMUYzQ0Ig
XHUwMDAxRjQ0Mi1cdTAwMDFGNDQzIFx1MDAwMUY0NDYtXHUwMDAxRjQ1MCBcdTAwMDFGNDY2LVx1
MDAwMUY0NzggXHUwMDAxRjQ3QyBcdTAwMDFGNDgxLVx1MDAwMUY0ODMgXHUwMDAxRjQ4NS1cdTAw
MDFGNDg3IFx1MDAwMUY0QUEgXHUwMDAxRjU3NSBcdTAwMDFGNTkwIFx1MDAwMUY1OTUgXHUwMDAx
RjU5NiBcdTAwMDFGNjQ1LVx1MDAwMUY2NDcgXHUwMDAxRjY0Qi1cdTAwMDFGNjRGIFx1MDAwMUY2
QTMgXHUwMDAxRjZCNC1cdTAwMDFGNkI2IFx1MDAwMUY2QzAgXHUwMDAxRjkxOCBcdTAwMDFGM0My
IFx1MDAwMUYzQzcgXHUwMDAxRjNDQyBcdTAwMDFGNTc0IFx1MDAwMUY1N0EgXHUwMDAxRjZDQyBc
dTAwMDFGOTE5LVx1MDAwMUY5MUUgXHUwMDAxRjkyNiBcdTAwMDFGOTMwIFx1MDAwMUY5MzMtXHUw
MDAxRjkzOSBcdTAwMDFGOTNDLVx1MDAwMUY5M0VdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBh
dHJpY2sgbW9kaWZpZXJzCisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2NCBc
dTAwMDFGNDY2LVx1MDAwMUY0NjkgXHUwMDAxRjQ4Ql07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0
ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBBLVx1
MjcwQyBcdTAwMDFGMzg1IFx1MDAwMUYzQzMtXHUwMDAxRjNDNCBcdTAwMDFGM0M3IFx1MDAwMUYz
Q0EgXHUwMDAxRjQ0Mi1cdTAwMDFGNDQzIFx1MDAwMUY0NDYtXHUwMDAxRjQ1MCBcdTAwMDFGNDY2
LVx1MDAwMUY0NjkgXHUwMDAxRjQ2RS1cdTAwMDFGNDc4IFx1MDAwMUY0N0MgXHUwMDAxRjQ4MS1c
dTAwMDFGNDgzIFx1MDAwMUY0ODUtXHUwMDAxRjQ4NyBcdTAwMDFGNEFBIFx1MDAwMUY1OTYgXHUw
MDAxRjY0NS1cdTAwMDFGNjQ3IFx1MDAwMUY2NEItXHUwMDAxRjY0RiBcdTAwMDFGNkEzIFx1MDAw
MUY2QjQtXHUwMDAxRjZCNiBcdTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRy
aWNrIG1vZGlmaWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAw
MUYzRkZdOyAjIEZpdHpwYXRyaWNrIG1vZGlmaWVycworISFjaGFpbjsKKworI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAorCisgICAgISFSSU5vQ2hhaW47CisKKyNlbmRpZgorCishIWZvcndh
cmQ7CiskQ1IgJExGOworJEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsKKygkTFYgfCAkVikgKCRW
IHwgJFQpOworKCRMVlQgfCAkVCkgJFQ7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQK
KworICAgICRSSSAkUkkgJEV4dGVuZCogLyAkUkk7CisgICAgJFJJICRSSSAkRXh0ZW5kKjsKKyAg
ICBbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAk
U3BhY2luZ01hcms7CisKKyNlbHNlCisKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7
CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7CisgICAgJFJJICRSSSAvICRS
STsKKyAgICAkUkkgJFJJOworCisjZW5kaWYKKworJEhpbjAgJEhpblYgJEhpbjE7ICMgRGV2YW5h
Z2FyaSBWaXJhbWEgKGZvcndhcmQpCiskQmVuMCAkQmVuViAkQmVuMTsgIyBCZW5nYWxpIFZpcmFt
YSAoZm9yd2FyZCkKKyRQYW4wICRQYW5WICRQYW4xOyAjIEd1cm11a2hpIFZpcmFtYSAoZm9yd2Fy
ZCkKKyRHdWowICRHdWpWICRHdWoxOyAjIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKKyRPcmkw
ICRPcmlWICRPcmkxOyAjIE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKKyRUZWwwICRUZWxWICRUZWwx
OyAjIFRlbHVndSBWaXJhbWEgKGZvcndhcmQpCiskS2FuMCAkS2FuViAkS2FuMTsgIyBLYW5uYWRh
IFZpcmFtYSAoZm9yd2FyZCkKKyRNYWwwICRNYWxWICRNYWwxOyAjIE1hbGF5YWxhbSBWaXJhbWEg
KGZvcndhcmQpCiskWldKICRFbW9qaUZvclNlcXM7ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0og
c2VxdWVuY2VzCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsgIyBEb250IGJy
ZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVj
dG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKyEhcmV2ZXJzZTsKKyRMRiAkQ1I7CisoJEwg
fCAkViB8ICRMViB8ICRMVlQpICRMOworKCRWIHwgJFQpICgkTFYgfCAkVik7CiskVCAoJExWVCB8
ICRUKTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEV4dGVuZCogJFJJ
ICRSSSAvICRFeHRlbmQqICRSSSAkUkk7CisgICAgJEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0
ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkU3BhY2luZ01hcmsgW14kQ29udHJv
bCAkQ1IgJExGXTsKKworI2Vsc2UKKworICAgICRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAk
TEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRSSSAkUkkg
LyAkUkkgJFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMSAkSGluViAkSGluMDsg
IyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCiskQmVuMSAkQmVuViAkQmVuMDsgIyBCZW5n
YWxpIFZpcmFtYSAoYmFja3dhcmQpCiskUGFuMSAkUGFuViAkUGFuMDsgIyBHdXJtdWtoaSBWaXJh
bWEgKGJhY2t3YXJkKQorJEd1ajEgJEd1alYgJEd1ajA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNr
d2FyZCkKKyRPcmkxICRPcmlWICRPcmkwOyAjIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCisk
VGVsMSAkVGVsViAkVGVsMDsgIyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKKyRLYW4xICRLYW5W
ICRLYW4wOyAjIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKKyRNYWwxICRNYWxWICRNYWwwOyAj
IE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3YXJkKQorJEVtb2ppRm9yU2VxcyAkWldKOyAjIERvbnQg
YnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9q
aUZvck1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3
aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCisKKyNpZiBB
RERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICEhc2FmZV9yZXZlcnNlOworICAgICRSSSAk
UkkrOworICAgIFskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7CisgICAgISFz
YWZlX2ZvcndhcmQ7CisgICAgJFJJICRSSSs7CisgICAgJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFy
ICRFbW9qaU1vZHNdKzsKKworI2Vsc2UKKworICAgIFskRW1vamlWYXIgJEVtb2ppTW9kc10rICRF
bW9qaUZvck1vZHM7CisgICAgJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsK
KyAgICAhIXNhZmVfcmV2ZXJzZTsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JFcGlsb2d1ZS50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGU1MWUxMzdiMjcxMmQzZmM5ZWVh
ODIzNGE2NTgzZGRjNTg5ZWFmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApAQCAtMCwwICsx
LDM3MiBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworJEFJID0gWzpMaW5lQnJlYWsgPSBBbWJpZ3VvdXM6XTsK
KyRBTCA9IFs6TGluZUJyZWFrID0gQWxwaGFiZXRpYzpdOworJEJBID0gW1s6TGluZUJyZWFrID0g
QnJlYWtfQWZ0ZXI6XSAtICRCQV9TVUJdOworJEJCID0gWzpMaW5lQnJlYWsgPSBCcmVha19CZWZv
cmU6XTsKKyRCSyA9IFs6TGluZUJyZWFrID0gTWFuZGF0b3J5X0JyZWFrOl07CiskQjIgPSBbOkxp
bmVCcmVhayA9IEJyZWFrX0JvdGg6XTsKKyRDQiA9IFs6TGluZUJyZWFrID0gQ29udGluZ2VudF9C
cmVhazpdOworJENMID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QdW5jdHVhdGlvbjpdOworJENNID0g
WzpMaW5lQnJlYWsgPSBDb21iaW5pbmdfTWFyazpdOworJENQID0gWzpMaW5lQnJlYWsgPSBDbG9z
ZV9QYXJlbnRoZXNpczpdOworJENSID0gWzpMaW5lQnJlYWsgPSBDYXJyaWFnZV9SZXR1cm46XTsK
KyRFWCA9IFtbOkxpbmVCcmVhayA9IEV4Y2xhbWF0aW9uOl0gLSAkRVhfU1VCXTsKKyRHTCA9IFs6
TGluZUJyZWFrID0gR2x1ZTpdOworCisjaWYgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUworCisg
ICAgJEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdfTGV0dGVyOl07CisKKyNlbHNlCisKKyAgICAk
SEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1dOworCisjZW5kaWYKKworJEhZID0gWzpMaW5l
QnJlYWsgPSBIeXBoZW46XTsKKyRIMiA9IFs6TGluZUJyZWFrID0gSDI6XTsKKyRIMyA9IFs6TGlu
ZUJyZWFrID0gSDM6XTsKKyRJRCA9IFtbW1s6TGluZUJyZWFrID0gSWRlb2dyYXBoaWM6XSAtICRD
Sl0gJElEX0FERF0gLSAkSURfU1VCXTsKKyRJTiA9IFtbOkxpbmVCcmVhayA9IEluc2VwYXJhYmxl
Ol0gLSAkSU5fU1VCXTsKKyRJUyA9IFtbOkxpbmVCcmVhayA9IEluZml4X051bWVyaWM6XSAtICRJ
U19TVUJdOworJEpMID0gWzpMaW5lQnJlYWsgPSBKTDpdOworJEpWID0gWzpMaW5lQnJlYWsgPSBK
VjpdOworJEpUID0gWzpMaW5lQnJlYWsgPSBKVDpdOworJExGID0gWzpMaW5lQnJlYWsgPSBMaW5l
X0ZlZWQ6XTsKKyROTCA9IFs6TGluZUJyZWFrID0gTmV4dF9MaW5lOl07CiskTlMgPSBbW1tbOkxp
bmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRDSl0gJE5TX0FERF0gLSAkTlNfU1VCXTsKKyROVSA9
IFs6TGluZUJyZWFrID0gTnVtZXJpYzpdOworJE9QID0gWzpMaW5lQnJlYWsgPSBPcGVuX1B1bmN0
dWF0aW9uOl07CiskUE8gPSBbWzpMaW5lQnJlYWsgPSBQb3N0Zml4X051bWVyaWM6XSAtICRQT19T
VUJdOworJFBSID0gW1s6TGluZUJyZWFrID0gUHJlZml4X051bWVyaWM6XSAtICRQUl9TVUJdOwor
JFFVID0gWzpMaW5lQnJlYWsgPSBRdW90YXRpb246XTsKKyRSSSA9IFtcVTAwMDFGMUU2LVxVMDAw
MUYxRkZdOworJFNBID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsKKyRTRyA9IFs6
TGluZUJyZWFrID0gU3Vycm9nYXRlOl07CiskU1AgPSBbOkxpbmVCcmVhayA9IFNwYWNlOl07Cisk
U1kgPSBbOkxpbmVCcmVhayA9IEJyZWFrX1N5bWJvbHM6XTsKKyRXSiA9IFs6TGluZUJyZWFrID0g
V29yZF9Kb2luZXI6XTsKKyRYWCA9IFs6TGluZUJyZWFrID0gVW5rbm93bjpdOworJFpXID0gWzpM
aW5lQnJlYWsgPSBaV1NwYWNlOl07CiskWldKID0gXHUyMDBEOworJEVtb2ppVmFyID0gXHVGRTBG
OworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0g
W1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBcdTAwMDFGMzA4IFx1MDAwMUYzQzMtXHUwMDAx
RjNDNCBcdTAwMDFGM0NBLVx1MDAwMUYzQ0MgXHUwMDAxRjNGMyBcdTAwMDFGNDQxIFx1MDAwMUY0
NjYtXHUwMDAxRjQ2OSBcdTAwMDFGNDZFLVx1MDAwMUY0NkYgXHUwMDAxRjQ3MSBcdTAwMDFGNDcz
IFx1MDAwMUY0NzcgXHUwMDAxRjQ4MS1cdTAwMDFGNDgyIFx1MDAwMUY0ODYtXHUwMDAxRjQ4NyBc
dTAwMDFGNDhCIFx1MDAwMUY1NzUgXHUwMDAxRjVFOCBcdTAwMDFGNjQ1LVx1MDAwMUY2NDcgXHUw
MDAxRjY0QiBcdTAwMDFGNjRELVx1MDAwMUY2NEUgXHUwMDAxRjZBMyBcdTAwMDFGNkI0LVx1MDAw
MUY2QjYgXHUyNjk1LVx1MjY5NiBcdTI3MDggXHUwMDAxRjMzRSBcdTAwMDFGMzczIFx1MDAwMUYz
OTMgXHUwMDAxRjNBNCBcdTAwMDFGM0E4IFx1MDAwMUYzRUIgXHUwMDAxRjNFRCBcdTAwMDFGNEJC
LVx1MDAwMUY0QkMgXHUwMDAxRjUyNyBcdTAwMDFGNTJDIFx1MDAwMUY2ODAgXHUwMDAxRjY5MiBc
dTAwMDFGOTI2IFx1MDAwMUY5MzctXHUwMDAxRjkzOSBcdTAwMDFGOTNDLVx1MDAwMUY5M0VdOyAj
IEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1v
ZHMgPSBbXHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUyNzBEIFx1MDAwMUYzODUgXHUwMDAxRjNDMy1c
dTAwMDFGM0M0IFx1MDAwMUYzQ0EgXHUwMDAxRjNDQiBcdTAwMDFGNDQyLVx1MDAwMUY0NDMgXHUw
MDAxRjQ0Ni1cdTAwMDFGNDUwIFx1MDAwMUY0NjYtXHUwMDAxRjQ3OCBcdTAwMDFGNDdDIFx1MDAw
MUY0ODEtXHUwMDAxRjQ4MyBcdTAwMDFGNDg1LVx1MDAwMUY0ODcgXHUwMDAxRjRBQSBcdTAwMDFG
NTc1IFx1MDAwMUY1OTAgXHUwMDAxRjU5NSBcdTAwMDFGNTk2IFx1MDAwMUY2NDUtXHUwMDAxRjY0
NyBcdTAwMDFGNjRCLVx1MDAwMUY2NEYgXHUwMDAxRjZBMyBcdTAwMDFGNkI0LVx1MDAwMUY2QjYg
XHUwMDAxRjZDMCBcdTAwMDFGOTE4IFx1MDAwMUYzQzIgXHUwMDAxRjNDNyBcdTAwMDFGM0NDIFx1
MDAwMUY1NzQgXHUwMDAxRjU3QSBcdTAwMDFGNkNDIFx1MDAwMUY5MTktXHUwMDAxRjkxRSBcdTAw
MDFGOTI2IFx1MDAwMUY5MzAgXHUwMDAxRjkzMy1cdTAwMDFGOTM5IFx1MDAwMUY5M0MtXHUwMDAx
RjkzRV07ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZWxzZQor
CisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXHUwMDAxRjQ2Ni1cdTAwMDFGNDY5IFx1MDAw
MUY0OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3MEMgXHUwMDAx
RjM4NSBcdTAwMDFGM0MzLVx1MDAwMUYzQzQgXHUwMDAxRjNDNyBcdTAwMDFGM0NBIFx1MDAwMUY0
NDItXHUwMDAxRjQ0MyBcdTAwMDFGNDQ2LVx1MDAwMUY0NTAgXHUwMDAxRjQ2Ni1cdTAwMDFGNDY5
IFx1MDAwMUY0NkUtXHUwMDAxRjQ3OCBcdTAwMDFGNDdDIFx1MDAwMUY0ODEtXHUwMDAxRjQ4MyBc
dTAwMDFGNDg1LVx1MDAwMUY0ODcgXHUwMDAxRjRBQSBcdTAwMDFGNTk2IFx1MDAwMUY2NDUtXHUw
MDAxRjY0NyBcdTAwMDFGNjRCLVx1MDAwMUY2NEYgXHUwMDAxRjZBMyBcdTAwMDFGNkI0LVx1MDAw
MUY2QjYgXHUwMDAxRjZDMF07ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVy
cworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYzRkZdOworJGRp
Y3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOworJEFMUGx1cyA9IFsk
QUwgJEFJICRTQSAkU0cgJFhYXTsKKyRBTGNtID0gJEFMUGx1cyAkQ00qOworJEJBY20gPSAkQkEg
JENNKjsKKyRCQmNtID0gJEJCICRDTSo7CiskQjJjbSA9ICRCMiAkQ00qOworJENMY20gPSAkQ0wg
JENNKjsKKyRDUGNtID0gJENQICRDTSo7CiskRVhjbSA9ICRFWCAkQ00qOworJEdMY20gPSAkR0wg
JENNKjsKKyRITGNtID0gJEhMICRDTSo7CiskSFljbSA9ICRIWSAkQ00qOworJEgyY20gPSAkSDIg
JENNKjsKKyRIM2NtID0gJEgzICRDTSo7CiskSURjbSA9ICRJRCAkQ00qOworJElOY20gPSAkSU4g
JENNKjsKKyRJU2NtID0gJElTICRDTSo7CiskSkxjbSA9ICRKTCAkQ00qOworJEpWY20gPSAkSlYg
JENNKjsKKyRKVGNtID0gJEpUICRDTSo7CiskTlNjbSA9ICROUyAkQ00qOworJE5VY20gPSAkTlUg
JENNKjsKKyRPUGNtID0gJE9QICRDTSo7CiskUE9jbSA9ICRQTyAkQ00qOworJFBSY20gPSAkUFIg
JENNKjsKKyRRVWNtID0gJFFVICRDTSo7CiskUkljbSA9ICRSSSAkQ00qOworJFNZY20gPSAkU1kg
JENNKjsKKyRXSmNtID0gJFdKICRDTSo7CisKKyEhZm9yd2FyZDsKKyRDQU5fQ00gPSBbXiRTUCAk
QksgJENSICRMRiAkTkwgJFpXICRDTV07CiskQ0FOVF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5M
ICRaVyAkQ01dOworJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsK
KyRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRHTCAkT1AgJFFV
ICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107CiskQUxfRk9MTE9XID0gWyRBTF9GT0xMT1df
Tk9DTSAkQUxfRk9MTE9XX0NNXTsKKyRMQjRCcmVha3MgPSBbJEJLICRDUiAkTEYgJE5MXTsKKyRM
QjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICROTF07CiskTEI4QnJlYWtzID0gWyRMQjRCcmVh
a3MgJFpXXTsKKyRMQjhOb25CcmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOworJExC
MThOb25CcmVha3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsKKyRMQjE4QnJlYWtzID0gWyRM
QjhCcmVha3MgJFNQXTsKKyRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsK
KyRBTFBsdXMgJENNKzsKKyRCQSAkQ00rOworJEJCICRDTSs7CiskQjIgJENNKzsKKyRDTCAkQ00r
OworJENQICRDTSs7CiskRVggJENNKzsKKyRHTCAkQ00rOworJEhMICRDTSs7CiskSFkgJENNKzsK
KyRIMiAkQ00rOworJEgzICRDTSs7CiskSUQgJENNKzsKKyRJTiAkQ00rOworJElTICRDTSs7Cisk
SkwgJENNKzsKKyRKViAkQ00rOworJEpUICRDTSs7CiskTlMgJENNKzsKKyROVSAkQ00rOworJE9Q
ICRDTSs7CiskUE8gJENNKzsKKyRQUiAkQ00rOworJFFVICRDTSs7CiskUkkgJENNKzsKKyRTWSAk
Q00rOworJFdKICRDTSs7CiskQ1IgJExGIHsxMDB9OworJExCNE5vbkJyZWFrcz8gJExCNEJyZWFr
cyB7MTAwfTsKKyRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OworJENNKyAkTEI0QnJlYWtz
IHsxMDB9OworJExCNE5vbkJyZWFrcyBbJFNQICRaV107CiskQ0FOX0NNICRDTSogWyRTUCAkWldd
OworJENNKyBbJFNQICRaV107CiskRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9kcz8g
JFpXSiAkRW1vamlGb3JTZXFzOworJENBTl9DTSAkQ00rOworJENNKzsKKyRDQU5fQ00gJENNKiAk
V0pjbTsKKyRMQjhOb25CcmVha3MgJFdKY207CiskQ00rICRXSmNtOworJFdKY20gJENBTlRfQ007
CiskV0pjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOVF9D
TTsKK1tbJExCOE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOworJENNKyBH
TGNtOworJExCOE5vbkJyZWFrcyAkQ0w7CiskQ0FOX0NNICRDTSogJENMOworJENNKyAkQ0w7Cisk
TEI4Tm9uQnJlYWtzICRDUDsKKyRDQU5fQ00gJENNKiAkQ1A7CiskQ00rICRDUDsKKyRMQjhOb25C
cmVha3MgJEVYOworJENBTl9DTSAkQ00qICRFWDsKKyRDTSsgJEVYOworJExCOE5vbkJyZWFrcyAk
SVM7CiskQ0FOX0NNICRDTSogJElTOworJENNKyAkSVM7CiskTEI4Tm9uQnJlYWtzICRTWTsKKyRD
QU5fQ00gJENNKiAkU1k7CiskQ00rICRTWTsKKyRPUGNtICRTUCogJENBTl9DTSAkQ00qOworJE9Q
Y20gJFNQKiAkQ0FOVF9DTTsKKyRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsKKyRRVWNtICRT
UCogJE9QY207CisoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsKKyRCMmNtICRTUCogJEIyY207
CiskTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOworJENNKyAkUVVjbTsKKyRRVWNtIC4/OworJFFV
Y20gJExCMThOb25CcmVha3MgJENNKjsKKyRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwgJEhZ
Y20gfCAkTlNjbSk7IAorJEJCY20gW14kQ0JdOworJEJCY20gJExCMjBOb25CcmVha3MgJENNKjsK
KyRITGNtICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OworJFNZY20gJEhMY207CisoJEFMY20gfCAk
SExjbSkgJElOY207CiskQ00rICRJTmNtOworJEVYY20gJElOY207CiskSURjbSAkSU5jbTsKKyRJ
TmNtICRJTmNtOworJE5VY20gJElOY207CiskSURjbSAkUE9jbTsKKyRBTGNtICROVWNtOworJEhM
Y20gJE5VY207CiskQ00rICROVWNtOworJE5VY20gJEFMY207CiskTlVjbSAkSExjbTsKKyRQUmNt
ICRJRGNtOworJFBSY20gKCRBTGNtIHwgJEhMY20pOworJFBPY20gKCRBTGNtIHwgJEhMY20pOwor
KCRQUmNtIHwgJFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNtIHwg
JElTY20pKiAoJENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87CiskSkxjbSAoJEpMY20g
fCAkSlZjbSB8ICRIMmNtIHwgJEgzY20pOworKCRKVmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNt
KTsKKygkSlRjbSB8ICRIM2NtKSAkSlRjbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJj
bSB8ICRIM2NtKSAkSU5jbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2Nt
KSAkUE9jbTsKKyRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKTsK
KygkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7CiskQ00rICgkQUxjbSB8ICRITGNtKTsK
KyRJU2NtICgkQUxjbSB8ICRITGNtKTsKKygkQUxjbSB8ICRITGNtIHwgJE5VY20pICRPUGNtOwor
JENNKyAkT1BjbTsKKyRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOworCisjaWYgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUkljbSAkUkljbTsKKworI2VuZGlmCisKKyRFbW9q
aUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOworCishIXJldmVyc2U7CiskQ00rICRBTFBs
dXM7CiskQ00rICRCQTsKKyRDTSsgJEJCOworJENNKyAkQjI7CiskQ00rICRDTDsKKyRDTSsgJENQ
OworJENNKyAkRVg7CiskQ00rICRHTDsKKyRDTSsgJEhMOworJENNKyAkSFk7CiskQ00rICRIMjsK
KyRDTSsgJEgzOworJENNKyAkSUQ7CiskQ00rICRJTjsKKyRDTSsgJElTOworJENNKyAkSkw7Cisk
Q00rICRKVjsKKyRDTSsgJEpUOworJENNKyAkTlM7CiskQ00rICROVTsKKyRDTSsgJE9QOworJENN
KyAkUE87CiskQ00rICRQUjsKKyRDTSsgJFFVOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUCisKKyAgICAkQ00rICRSSTsKKworI2VuZGlmCisKKyRDTSsgJFNZOworJENNKyAkV0o7Cisk
Q00rOworJEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRT
UCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsK
K1skUFJdIC8gJENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOworJExCNEJyZWFr
cyBbJExCNE5vbkJyZWFrcy0kQ01dOworJExCNEJyZWFrcyAkQ00rICRDQU5fQ007CiskTEYgJENS
OworWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07CitbJFNQICRaV10gJENNKyAkQ0FOX0NN
OworJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZhcj8gJEVtb2ppRm9yU2Vx
czsKKyRDTSsgJENBTl9DTTsKKyRDTSogJFdKICRDTSogJENBTl9DTTsKKyRDTSogJFdKIFskTEI4
Tm9uQnJlYWtzLSRDTV07CiskQ0FOVF9DTSAkQ00qICRXSjsKKyRDTSogJENBTl9DTSAkQ00qICRX
SjsKKyRDTSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRIWV1dOworJENB
TlRfQ00gJENNKiAkR0w7CiskQ00qICRDQU5fQ00gJENNKiAkR0w7CiskQ0wgJENNKyAkQ0FOX0NN
OworJENQICRDTSsgJENBTl9DTTsKKyRFWCAkQ00rICRDQU5fQ007CiskSVMgJENNKyAkQ0FOX0NN
OworJFNZICRDTSsgJENBTl9DTTsKKyRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOworJENQIFskTEI4
Tm9uQnJlYWtzLSRDTV07CiskRVggWyRMQjhOb25CcmVha3MtJENNXTsKKyRJUyBbJExCOE5vbkJy
ZWFrcy0kQ01dOworJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07CitbJENMICRDUCAkRVggJElTICRT
WV0gJENNKyAkU1ArICRDTSogJE9QOyAKKyRDTSogJENBTl9DTSAkU1AqICRDTSogJE9QOworJENB
TlRfQ00gJFNQKiAkQ00qICRPUDsKKyRBTF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAkT1A7
CiskQUxfRk9MTE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9QOworJENNKiAkQUxfRk9MTE9XX0NN
ICRDTSsgJFNQKyAkQ00qICRPUDsKKyRTWSAkQ00gJFNQKyAkT1A7CiskQ00qICRPUCAkU1AqICRD
TSogJFFVOworJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOworJENNKiAkQjIgJFNQKiAk
Q00qICRCMjsKKyRDTSogJFFVICRDTSogJENBTl9DTTsKKyRDTSogJFFVICRMQjE4Tm9uQnJlYWtz
OworJENNKiAkQ0FOX0NNICRDTSogJFFVOworJENBTlRfQ00gJENNKiAkUVU7CiskQ00qICgkQkEg
fCAkSFkgfCAkTlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV07CiskQ00qIFskTEIyME5vbkJy
ZWFrcy0kQ01dICRDTSogJEJCOworW14kQ0JdICRDTSogJEJCOworW14kQ0JdICRDTSogKCRIWSB8
ICRCQSkgJENNKiAkSEw7CiskQ00qICRITCAkQ00qICRTWTsKKyRDTSogJElOICRDTSogKCRBTFBs
dXMgfCAkSEwpOworJENNKiAkSU4gJENNKiAkRVg7CiskQ00qICRJTiAkQ00qICRJRDsKKyRDTSog
JElOICRDTSogJElOOworJENNKiAkSU4gJENNKiAkTlU7CiskQ00qICRQTyAkQ00qICRJRDsKKyRD
TSogJE5VICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAk
TlU7CiskQ00qICRJRCAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBSOwor
JENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87CisoJENNKiAoJFBSIHwgJFBPKSk/ICgkQ00q
ICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRTWSkpKiAkQ00qICROVSAoJENNKiAo
JE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87CiskQ00qICgkSDMgfCAkSDIgfCAkSlYg
fCAkSkwpICRDTSogJEpMOworJENNKiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOworJENN
KiAkSlQgJENNKiAoJEgzIHwgJEpUKTsKKyRDTSogJElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8
ICRKViB8ICRKTCk7CiskQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwp
OworJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsKKyRDTSogKCRB
TFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRITCkg
JENNKiAkSVM7CiskQ00qICRPUCAkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKTsKKyRDTSogKCRB
TFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUCisKKyAgICAkQ00qICRSSSAkQ00qICRSSTsKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgJEVt
b2ppVmFyPyAkRW1vamlGb3JNb2RzOworCishIXNhZmVfZm9yd2FyZDsKK1skQ00gJE9QICRRVSAk
Q0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnldKyBbXiRDTSAkT1AgJFFVICRD
TCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsKKyRkaWN0aW9uYXJ5ICRkaWN0aW9u
YXJ5OworICAgIAorISFzYWZlX3JldmVyc2U7CiskQ00rIFteJENNICRCSyAkQ1IgJExGICROTCAk
WlcgJFNQXTsKKyRDTSsgJFNQIC8gLjsKKyRTUCsgJENNKiAkT1A7CiskU1ArICRDTSogJFFVOwor
JFNQKyAkQ00qICgkQ0wgfCAkQ1ApOworJFNQKyAkQ00qICRCMjsKKyRDTSogKCRIWSB8ICRCQSkg
JENNKiAkSEw7CisoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOworKCRDTCB8ICRDUCkgJENN
KiAoJE5VIHwgJElTIHwgJFNZKTsKKyRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJv
bG9ndWUudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yUHJvbG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiM2Y2NmY0MmFmMTM4ZWQ1OGZmNDIxZjY3
NjhkOGZkNTgwMTI4MmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKQEAgLTAsMCArMSwzOCBA
QAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworISFjaGFpbjsKKyEhTEJDTU5vQ2hhaW47CishIWxvb2tBaGVhZEhh
cmRCcmVhazsKKworI2lmIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMKKworICAgICRDSiA9IFs6
TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6XTsKKworI2Vsc2UKKworICAg
ICRDSiA9IFtcdTMwNDFcdTMwNDNcdTMwNDVcdTMwNDdcdTMwNDlcdTMwNjNcdTMwODNcdTMwODVc
dTMwODdcdTMwOEVcdTMwOTVcdTMwOTZcdTMwQTFcdTMwQTNcdTMwQTVcdTMwQTdcdTMwQTlcdTMw
QzNcdTMwRTNcdTMwRTVcdTMwRTdcdTMwRUVcdTMwRjVcdTMwRjZcdTMwRkNcdTMxRjBcdTMxRjFc
dTMxRjJcdTMxRjNcdTMxRjRcdTMxRjVcdTMxRjZcdTMxRjdcdTMxRjhcdTMxRjlcdTMxRkFcdTMx
RkJcdTMxRkNcdTMxRkRcdTMxRkVcdTMxRkZcdUZGNjdcdUZGNjhcdUZGNjlcdUZGNkFcdUZGNkJc
dUZGNkNcdUZGNkRcdUZGNkVcdUZGNkZcdUZGNzBdOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pL
LnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDdjMGNhNWFhN2IyZmZiZjhiMmNkOTA5MmFhNWYz
ZTFkYmE0MDkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMg
KEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIw
MDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMg
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSAnJzsKKyRJ
Tl9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUz
MDFDXHUzMEEwXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENK
ICRCQV9TVUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4
dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkYjhmMGZmNTE4NTZkOTdjOWMxNGUxMjE2Mzcz
NGZkZmM5N2M5Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApAQCAtMCwwICsxLDM1
IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0g
W1x1MDAyMVx1MDAzRlx1RkYwMVx1RkYxRl07CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1
MjAyNVx1MjAyNl07CiskSVNfU1VCID0gW1x1MDAzQVx1MDAzQl07CiskTlNfU1VCID0gW1x1MjAz
Q1x1MjA0N1x1MjA0OFx1MjA0OVx1MzAwNVx1MzAxQ1x1MzAzQlx1MzA5RFx1MzA5RVx1MzBBMFx1
MzBGQlx1MzBGRFx1MzBGRVx1RkYxQVx1RkYxQlx1RkY2NV07CiskUE9fU1VCID0gW1x1MDAyNVx1
MDBBMlx1MDBCMFx1MjAzMFx1MjAzMlx1MjAzM1x1MjEwM1x1RkYwNVx1RkZFMF07CiskUFJfU1VC
ID0gW1x1MDAyNFx1MDBBM1x1MDBBNVx1MjBBQ1x1MjExNlx1RkYwNFx1RkZFMVx1RkZFNV07Cisk
SURfQUREID0gWyRDSiAkQkFfU1VCICRFWF9TVUIgJElOX1NVQiAkSVNfU1VCICROU19TVUIgJFBP
X1NVQiAkUFJfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2NiYmM4YTg4MTVlNGQwZGNmYjk2MGMxMTJm
NjBhODM4ZDNhNDI4NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0CkBAIC0wLDAg
KzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJp
Z2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5
cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJ
RF9TVUIgPSAnJzsKKyRJTl9TVUIgPSBbXHUyMDI1XHUyMDI2XTsKKyRJU19TVUIgPSAnJzsKKyRO
U19TVUIgPSBbXHUzMDA1XHUzMDNCXHUzMDlEXHUzMDlFXHUzMEZEXHUzMEZFXTsKKyRQT19TVUIg
PSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKICRJTl9TVUIgJE5TX1NVQl07Cisk
TlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjc0Mjg3OWRkMWY4MmViNjJkMjhkOGFhN2JjZGRmNDQ2ZDA3Mzg3ZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwg
KGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxl
LCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VC
ID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNf
U1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7Cisk
SURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA3YzBjYTVhYTdiMmZmYmY4YjJjZDkwOTJhYTVm
M2UxZGJhNDA5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dApAQCAtMCwwICsxLDM1
IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0g
Jyc7CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VC
ID0gW1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQURE
ID0gWyRDSiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyY2Y2YTA4MjZhZGE0
ZWRjZmNmMzk0M2I2ODlmOGMwNmUwYmQ3NDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNK
Sy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUu
b3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVY
X1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOwor
JE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFsk
Q0pdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0IGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY3NDI4NzlkZDFmODJlYjYyZDI4ZDhhYTdiY2RkZjQ0NmQwNzM4N2YK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0y
MDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisj
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElO
X1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOwor
JFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3ROb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3NDI4Nzlk
ZDFmODJlYjYyZDI4ZDhhYTdiY2RkZjQ0NmQwNzM4N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKSy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9s
bEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5j
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcn
OworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9
ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FE
RCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4
dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0
ZXJhdG9yLmNwcAppbmRleCBiMGRiZTU5N2YzOTFmMTMyYzI4ZTY0MmY3ZDk3NWIxMTBmNzVmODI2
Li41MjcwYTI1OTFhYzliYzgwMDU5M2M1MmQxYjVjYmE3NTc0NzRhNjU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcApAQCAtMzEsOSArMzEsNiBAQAogI2luY2x1
ZGUgPHVuaWNvZGUvdWJyay5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
IAotLy8gRklYTUU6IFRoaXMgbmVlZHMgYSBiZXR0ZXIgbmFtZQotI2RlZmluZSBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApKQotCiBuYW1lc3BhY2UgV1RGIHsK
IAogLy8gSXRlcmF0b3IgaW5pdGlhbGl6YXRpb24KQEAgLTYxLDYgKzU4LDEyIEBAIHN0YXRpYyBV
QnJlYWtJdGVyYXRvciogaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGNvbnN0IGNoYXIqIGJy
ZWFrUnVsZXMpCiAKICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElP
UykKK1VCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxl
U2V0KQoreworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCiAKIC8vIEl0ZXJhdG9yIHRl
eHQgc2V0dGluZwogCkBAIC0xNjQsMTQzICsxNjcsMjcgQEAgVUJyZWFrSXRlcmF0b3IqIHNlbnRl
bmNlQnJlYWtJdGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZykKICAgICByZXR1cm4gc2V0VGV4dEZv
ckl0ZXJhdG9yKCpzdGF0aWNTZW50ZW5jZUJyZWFrSXRlcmF0b3IsIHN0cmluZyk7CiB9CiAKKyNp
ZiAhUExBVEZPUk0oSU9TKQorc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBjcmVhdGVDdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKCkKK3sKKyAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBj
cmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0OjpDdXJzb3JNb3ZlbWVudCkp
CisgICAgICAgIHJldHVybiBpdGVyYXRvcjsKKyAgICByZXR1cm4gaW5pdGlhbGl6ZUl0ZXJhdG9y
V2l0aFJ1bGVzKGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyk7Cit9CisjZW5kaWYKKwogVUJy
ZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiB7
CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNo
YXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKLSAgICAvLyA8aHR0cDovL3Nv
dXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3Vy
Y2UvZGF0YS9icmtpdHIvPi4KLSAgICAvLyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUg
b3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgotICAgIC8vICogUmVwbGFjZWQgJ1tccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxf
Q2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxp
ZXI7Ci0gICAgLy8gKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1v
dmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAgLy8gKiBBZGRl
ZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNp
Z25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKLSAg
ICAvLyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZv
cmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0gICAgLy8gKiBB
ZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCi0gICAgc3RhdGljIGNv
bnN0IGNoYXIqIGtSdWxlcyA9Ci0gICAgICAgICIkQ1IgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IENSfV07IgotICAgICAgICAiJExGICAgICAgPSBbXFxwe0dyYXBoZW1lX0Ns
dXN0ZXJfQnJlYWsgPSBMRn1dOyIKLSAgICAgICAgIiRDb250cm9sID0gW1xccHtHcmFwaGVtZV9D
bHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOyIKLSAgICAgICAgIiRWb2ljZU1hcmtzID0gW1xcdUZG
OUVcXHVGRjlGXTsiIC8vIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtz
Ci0gICAgICAgICIkRXh0ZW5kICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVu
ZH0gJFZvaWNlTWFya3MgLSBbXFx1MEUzMCBcXHUwRTMyIFxcdTBFNDUgXFx1MEVCMCBcXHUwRUIy
XV07IgotICAgICAgICAiJFNwYWNpbmdNYXJrID0gW1tcXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNw
YWNpbmcgTWFya31dIC0gJEV4dGVuZF07IgotICAgICAgICAiJEwgICAgICAgPSBbXFxwe0dyYXBo
ZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07IgotICAgICAgICAiJFYgICAgICAgPSBbXFxwe0dyYXBo
ZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07IgotICAgICAgICAiJFQgICAgICAgPSBbXFxwe0dyYXBo
ZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07IgotICAgICAgICAiJExWICAgICAgPSBbXFxwe0dyYXBo
ZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOyIKLSAgICAgICAgIiRMVlQgICAgID0gW1xccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07IgotICAgICAgICAiJEhpbjAgICAgPSBbXFx1MDkw
NS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkSGlu
ViAgICA9IFxcdTA5NEQ7IiAvLyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkSGlu
MSAgICA9IFtcXHUwOTE1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhh
Ci0gICAgICAgICIkQmVuMCAgICA9IFtcXHUwOTg1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0
ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRCZW5WICAgID0gXFx1MDlDRDsiIC8vIEJlbmdhbGkgU2ln
biBWaXJhbWEKLSAgICAgICAgIiRCZW4xICAgID0gW1xcdTA5OTUtXFx1MDlCOV07IiAvLyBCZW5n
YWxpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRQYW4wICAgID0gW1xcdTBBMDUtXFx1MEEz
OV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRQYW5WICAgID0gXFx1
MEE0RDsiIC8vIEd1cm11a2hpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkUGFuMSAgICA9IFtcXHUw
QTE1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEd1
ajAgICAgPSBbXFx1MEE4NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBBLC4uLixIYQot
ICAgICAgICAiJEd1alYgICAgPSBcXHUwQUNEOyIgLy8gR3VqYXJhdGkgU2lnbiBWaXJhbWEKLSAg
ICAgICAgIiRHdWoxICAgID0gW1xcdTBBOTUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIg
S2EsLi4uLEhhCi0gICAgICAgICIkT3JpMCAgICA9IFtcXHUwQjA1LVxcdTBCMzldOyIgLy8gT3Jp
eWEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkT3JpViAgICA9IFxcdTBCNEQ7IiAvLyBPcml5
YSBTaWduIFZpcmFtYQotICAgICAgICAiJE9yaTEgICAgPSBbXFx1MEIxNS1cXHUwQjM5XTsiIC8v
IE9yaXlhIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRUZWwwICAgID0gW1xcdTBDMDUtXFx1
MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkVGVsViAgICA9IFxc
dTBDNEQ7IiAvLyBUZWx1Z3UgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRUZWwxICAgID0gW1xcdTBD
MTQtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEthbjAg
ICAgPSBbXFx1MEM4NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAg
ICAgICIkS2FuViAgICA9IFxcdTBDQ0Q7IiAvLyBLYW5uYWRhIFNpZ24gVmlyYW1hCi0gICAgICAg
ICIkS2FuMSAgICA9IFtcXHUwQzk1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4s
SGEKLSAgICAgICAgIiRNYWwwICAgID0gW1xcdTBEMDUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0g
TGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsViAgICA9IFxcdTBENEQ7IiAvLyBNYWxheWFs
YW0gU2lnbiBWaXJhbWEKLSAgICAgICAgIiRNYWwxICAgID0gW1xcdTBEMTUtXFx1MEQzOV07IiAv
LyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUkkgICAgICA9IFtcXFUwMDAx
RjFFNi1cXFUwMDAxRjFGRl07IiAvLyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCi0gICAgICAg
ICIkWldKICAgICA9IFxcdTIwMEQ7IiAvLyBaZXJvIHdpZHRoIGpvaW5lcgotICAgICAgICAiJEVt
b2ppVmFyID0gW1xcdUZFMEZdOyIgLy8gRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCi0j
aWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xc
dTI2NDAgXFx1MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxV
MDAwMUYzQzQgXFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEg
XFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0
NzEgXFxVMDAwMUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAw
MUY0ODYtXFxVMDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxV
MDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUg
XFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFx1MjY5NS1cXHUyNjk2IFxcdTI3
MDggXFxVMDAwMUYzM0UgXFxVMDAwMUYzNzMgXFxVMDAwMUYzOTMgXFxVMDAwMUYzQTQgXFxVMDAw
MUYzQTggXFxVMDAwMUYzRUIgXFxVMDAwMUYzRUQgXFxVMDAwMUY0QkItXFxVMDAwMUY0QkMgXFxV
MDAwMUY1MjcgXFxVMDAwMUY1MkMgXFxVMDAwMUY2ODAgXFxVMDAwMUY2OTIgXFxVMDAwMUY5MjYg
XFxVMDAwMUY5MzctXFxVMDAwMUY5MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdOyIgLy8gRW1v
amkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JN
b2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAw
MUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxV
MDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0Nzgg
XFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0
ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAw
MUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxV
MDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MTgg
XFxVMDAwMUYzQzIgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0MgXFxVMDAwMUY1NzQgXFxVMDAwMUY1
N0EgXFxVMDAwMUY2Q0MgXFxVMDAwMUY5MTktXFxVMDAwMUY5MUUgXFxVMDAwMUY5MjYgXFxVMDAw
MUY5MzAgXFxVMDAwMUY5MzMtXFxVMDAwMUY5MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdIDsi
IC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNlCi0gICAgICAg
ICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAw
MUY0OEJdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAg
ICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1
IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFG
NDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAw
MDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxc
VTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2
IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFG
NkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0
IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAgICAgICAgIiRFbW9qaU1vZHMg
PSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIgLy8gRml0enBhdHJpY2sgbW9kaWZpZXJzCi0g
ICAgICAgICIhIWNoYWluOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAg
IiEhUklOb0NoYWluOyIKLSNlbmRpZgotICAgICAgICAiISFmb3J3YXJkOyIKLSAgICAgICAgIiRD
UiAkTEY7IgotICAgICAgICAiJEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsiCi0gICAgICAgICIo
JExWIHwgJFYpICgkViB8ICRUKTsiCi0gICAgICAgICIoJExWVCB8ICRUKSAkVDsiCi0jaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqIC8gJFJJOyIK
LSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCo7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExG
XSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIK
LSNlbHNlCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAi
W14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotICAgICAgICAiJFJJICRSSSAvICRS
STsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAiJEhpbjAgJEhpblYgJEhp
bjE7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRCZW4wICRCZW5W
ICRCZW4xOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkUGFuMCAkUGFu
ViAkUGFuMTsiIC8vIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRHdWowICRH
dWpWICRHdWoxOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE9yaTAg
JE9yaVYgJE9yaTE7IiAvLyBPcml5YSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkVGVsMCAk
VGVsViAkVGVsMTsiIC8vIFRlbHVndSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkS2FuMCAk
S2FuViAkS2FuMTsiIC8vIEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE1hbDAg
JE1hbFYgJE1hbDE7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFpX
SiAkRW1vamlGb3JTZXFzOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwot
ICAgICAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IiAvLyBEb24ndCBi
cmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxl
Y3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0gICAgICAgICIhIXJldmVyc2U7IgotICAg
ICAgICAiJExGICRDUjsiCi0gICAgICAgICIoJEwgfCAkViB8ICRMViB8ICRMVlQpICRMOyIKLSAg
ICAgICAgIigkViB8ICRUKSAoJExWIHwgJFYpOyIKLSAgICAgICAgIiRUICgkTFZUIHwgJFQpOyIK
LSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkkg
LyAkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkk7IgotICAgICAg
ICAiJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdN
YXJrIFteJENvbnRyb2wgJENSICRMRl07IgotI2Vsc2UKLSAgICAgICAgIiRFeHRlbmQgICAgICBb
XiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRD
UiAkTEZdOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkkgJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7
IgotI2VuZGlmCi0gICAgICAgICIkSGluMSAkSGluViAkSGluMDsiIC8vIERldmFuYWdhcmkgVmly
YW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRCZW4xICRCZW5WICRCZW4wOyIgLy8gQmVuZ2FsaSBW
aXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFBhbjEgJFBhblYgJFBhbjA7IiAvLyBHdXJtdWto
aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEd1ajEgJEd1alYgJEd1ajA7IiAvLyBHdWph
cmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE9yaTEgJE9yaVYgJE9yaTA7IiAvLyBH
dWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFRlbDEgJFRlbFYgJFRlbDA7IiAv
LyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRLYW4xICRLYW5WICRLYW4wOyIg
Ly8gS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE1hbDEgJE1hbFYgJE1hbDA7
IiAvLyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRFbW9qaUZvclNlcXMg
JFpXSjsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRF
bW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2Vl
biByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBG
aXR6cGF0cmljayBtb2RpZmllcgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAg
ICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiWyRFbW9q
aVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIhIXNhZmVfZm9yd2Fy
ZDsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0gICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlW
YXIgJEVtb2ppTW9kc10rOyI7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJh
dG9yKj4gc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGNyZWF0ZUN1cnNvck1vdmVtZW50
SXRlcmF0b3JXaXRoRmFsbGJhY2soKTsKICNlbHNlCi0gICAgICAgICJbJEVtb2ppVmFyICRFbW9q
aU1vZHNdKyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9qaVZh
ciAkRW1vamlNb2RzXSs7IgotICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiISFz
YWZlX2ZvcndhcmQ7IjsKLSNlbmRpZgotICAgIHN0YXRpYyBVQnJlYWtJdGVyYXRvciogc3RhdGlj
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhrUnVs
ZXMpOwotI2Vsc2UgLy8gUExBVEZPUk0oSU9TKQogICAgIC8vIFVzZSB0aGUgc3BlY2lhbCBUaGFp
IGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBmb3IgYWxsIGxvY2FsZXMKLSAgICBzdGF0aWMgVUJy
ZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRl
cmF0b3IoVUJSS19DSEFSQUNURVIsICJ0aCIpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxV
QnJlYWtJdGVyYXRvcio+IHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXpl
SXRlcmF0b3IoVUJSS19DSEFSQUNURVIsICJ0aCIpOwogI2VuZGlmIC8vICFQTEFURk9STShJT1Mp
CiAKLSAgICBpZiAoIXN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IpCisgICAgaWYgKCFzdGF0
aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yLmdldCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LQotICAgIHJldHVybiBzZXRUZXh0Rm9ySXRlcmF0b3IoKnN0YXRpY0N1cnNvck1vdmVtZW50SXRl
cmF0b3IsIHN0cmluZyk7CisgICAgcmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqKHN0YXRpY0N1
cnNvck1vdmVtZW50SXRlcmF0b3IuZ2V0KCkpLCBzdHJpbmcpOwogfQogCiBVQnJlYWtJdGVyYXRv
ciogYWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGxvY2FsZSwgY29uc3QgVUNoYXIqIHByaW9yQ29udGV4dCwgdW5zaWduZWQgcHJp
b3JDb250ZXh0TGVuZ3RoLCBMaW5lQnJlYWtJdGVyYXRvck1vZGUgbW9kZSwgYm9vbCBpc0NKSykK
QEAgLTMxOSw0NDIgKzIwNiwyMCBAQCB2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVyYXRvcihVQnJl
YWtJdGVyYXRvciogaXRlcmF0b3IpCiAgICAgTGluZUJyZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQ
b29sKCkucHV0KGl0ZXJhdG9yKTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UHJvbG9n
dWUgPQotICAgICIhIWNoYWluOyIKLSAgICAiISFMQkNNTm9DaGFpbjsiCi0gICAgIiEhbG9va0Fo
ZWFkSGFyZEJyZWFrOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQmVm
b3JlID0KLSAgICAvLyBleHBsaWNpdGx5IGVudW1lcmF0ZSAkQ0ogc2luY2UgSUNVIHZlcnNpb25z
IHByaW9yIHRvIDQ5IGRvbid0IHN1cHBvcnQgOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVz
ZV9TdGFydGVyOgotICAgICIkQ0ogPSBbIgotI2lmIChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+
PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAgICAiOkxpbmVCcmVhaz1D
b25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOiIKLSNlbHNlCi0gICAgIlxcdTMwNDFcXHUzMDQz
XFx1MzA0NVxcdTMwNDdcXHUzMDQ5XFx1MzA2M1xcdTMwODNcXHUzMDg1XFx1MzA4N1xcdTMwOEVc
XHUzMDk1XFx1MzA5NlxcdTMwQTFcXHUzMEEzXFx1MzBBNVxcdTMwQTciCi0gICAgIlxcdTMwQTlc
XHUzMEMzXFx1MzBFM1xcdTMwRTVcXHUzMEU3XFx1MzBFRVxcdTMwRjVcXHUzMEY2XFx1MzBGQyIK
LSAgICAiXFx1MzFGMFxcdTMxRjFcXHUzMUYyXFx1MzFGM1xcdTMxRjRcXHUzMUY1XFx1MzFGNlxc
dTMxRjdcXHUzMUY4XFx1MzFGOVxcdTMxRkFcXHUzMUZCXFx1MzFGQ1xcdTMxRkRcXHUzMUZFXFx1
MzFGRiIKLSAgICAiXFx1RkY2N1xcdUZGNjhcXHVGRjY5XFx1RkY2QVxcdUZGNkJcXHVGRjZDXFx1
RkY2RFxcdUZGNkVcXHVGRjZGXFx1RkY3MCIKLSNlbmRpZgotICAgICJdOyI7Ci0KLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgPQotICAgICIkQkFfU1VC
ID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRFWF9TVUIgPSBbXFx1MDAyMVxcdTAwM0ZcXHVG
RjAxXFx1RkYxRl07IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIw
MjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSBbXFx1MDAzQVxcdTAwM0JdOyIKLSAgICAiJE5T
X1NVQiA9IFtcXHUyMDNDXFx1MjA0N1xcdTIwNDhcXHUyMDQ5XFx1MzAwNVxcdTMwMUNcXHUzMDNC
XFx1MzA5RFxcdTMwOUVcXHUzMEEwXFx1MzBGQlxcdTMwRkRcXHUzMEZFXFx1RkYxQVxcdUZGMUJc
XHVGRjY1XTsiCi0gICAgIiRQT19TVUIgPSBbXFx1MDAyNVxcdTAwQTJcXHUwMEIwXFx1MjAzMFxc
dTIwMzJcXHUyMDMzXFx1MjEwM1xcdUZGMDVcXHVGRkUwXTsiCi0gICAgIiRQUl9TVUIgPSBbXFx1
MDAyNFxcdTAwQTNcXHUwMEE1XFx1MjBBQ1xcdTIxMTZcXHVGRjA0XFx1RkZFMVxcdUZGRTVdOyIK
LSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNf
U1VCICRQT19TVUIgJFBSX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNv
bnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZU5vbkNKSyA9Ci0gICAgIiRCQV9T
VUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAg
IiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAi
JE5TX1NVQiA9IFtcXHUzMDA1XFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBGRFxcdTMwRkVdOyIK
LSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9
IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMg
Y29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA9Ci0gICAgIiRCQV9T
VUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElOX1NV
QiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAi
JE5TX1NVQiA9IFtcXHUzMDFDXFx1MzBBMF07IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIk
UFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOyIKLSAg
ICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tTm9ybWFsTm9uQ0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9
ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElT
X1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAg
ICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0pdOyIKLSAgICAiJE5TX0FERCA9
ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0
Q0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElE
X1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAg
ICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcn
OyIKLSAgICAiJElEX0FERCA9ICcnOyIKLSAgICAiJE5TX0FERCA9IFskQ0pdOyI7Ci0KLSNkZWZp
bmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyAgICAgIHVheDE0QXNzaWdubWVu
dHNDdXN0b21TdHJpY3RDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHRD
SksgICAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksKLSNkZWZpbmUgdWF4MTRB
c3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25DSksgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21T
dHJpY3ROb25DSksKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNBZnRlciA9
Ci0gICAgIiRBSSA9IFs6TGluZUJyZWFrID0gQW1iaWd1b3VzOl07IgotICAgICIkQUwgPSBbOkxp
bmVCcmVhayA9IEFscGhhYmV0aWM6XTsiCi0gICAgIiRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFr
X0FmdGVyOl0gLSAkQkFfU1VCXTsiCi0gICAgIiRCQiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVm
b3JlOl07IgotICAgICIkQksgPSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9CcmVhazpdOyIKLSAg
ICAiJEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19Cb3RoOl07IgotICAgICIkQ0IgPSBbOkxpbmVC
cmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsiCi0gICAgIiRDTCA9IFs6TGluZUJyZWFrID0gQ2xv
c2VfUHVuY3R1YXRpb246XTsiCi0gICAgIiRDTSA9IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01h
cms6XTsiCi0gICAgIiRDUCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsiCi0g
ICAgIiRDUiA9IFs6TGluZUJyZWFrID0gQ2FycmlhZ2VfUmV0dXJuOl07IgotICAgICIkRVggPSBb
WzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0gJEVYX1NVQl07IgotICAgICIkR0wgPSBbOkxp
bmVCcmVhayA9IEdsdWU6XTsiCi0jaWYgKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYm
IChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KQotICAgICIkSEwgPSBbOkxpbmVCcmVhayA9
IEhlYnJld19MZXR0ZXI6XTsiCi0jZWxzZQotICAgICIkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0
dGVyOl1dOyIKLSNlbmRpZgotICAgICIkSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOyIKLSAg
ICAiJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOyIKLSAgICAiJEgzID0gWzpMaW5lQnJlYWsgPSBI
MzpdOyIKLSAgICAiJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAk
SURfQUREXSAtICRJRF9TVUJdOyIKLSAgICAiJElOID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFi
bGU6XSAtICRJTl9TVUJdOyIKLSAgICAiJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJp
YzpdIC0gJElTX1NVQl07IgotICAgICIkSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07IgotICAgICIk
SlYgPSBbOkxpbmVCcmVhayA9IEpWOl07IgotICAgICIkSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07
IgotICAgICIkTEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOyIKLSAgICAiJE5MID0gWzpM
aW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsiCi0gICAgIiROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9u
c3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICROU19TVUJdOyIKLSAgICAiJE5VID0gWzpMaW5l
QnJlYWsgPSBOdW1lcmljOl07IgotICAgICIkT1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1
YXRpb246XTsiCi0gICAgIiRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0g
JFBPX1NVQl07IgotICAgICIkUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0g
JFBSX1NVQl07IgotICAgICIkUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOyIKLSAgICAi
JFJJID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsiCi0gICAgIiRTQSA9IFs6TGluZUJyZWFr
ID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIkU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0
ZTpdOyIKLSAgICAiJFNQID0gWzpMaW5lQnJlYWsgPSBTcGFjZTpdOyIKLSAgICAiJFNZID0gWzpM
aW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07IgotICAgICIkV0ogPSBbOkxpbmVCcmVhayA9IFdv
cmRfSm9pbmVyOl07IgotICAgICIkWFggPSBbOkxpbmVCcmVhayA9IFVua25vd246XTsiCi0gICAg
IiRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpdOyIKLSAgICAiJFpXSiA9IFxcdTIwMEQ7Igot
ICAgICIkRW1vamlWYXIgPSBcXHVGRTBGOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQK
LSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxc
VTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0ND
IFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFG
NDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAw
MDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxc
VTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRC
IFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFG
NkI2IFxcdTI2OTUtXFx1MjY5NiBcXHUyNzA4IFxcVTAwMDFGMzNFIFxcVTAwMDFGMzczIFxcVTAw
MDFGMzkzIFxcVTAwMDFGM0E0IFxcVTAwMDFGM0E4IFxcVTAwMDFGM0VCIFxcVTAwMDFGM0VEIFxc
VTAwMDFGNEJCLVxcVTAwMDFGNEJDIFxcVTAwMDFGNTI3IFxcVTAwMDFGNTJDIFxcVTAwMDFGNjgw
IFxcVTAwMDFGNjkyIFxcVTAwMDFGOTI2IFxcVTAwMDFGOTM3LVxcVTAwMDFGOTM5IFxcVTAwMDFG
OTNDLVxcVTAwMDFGOTNFXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVl
bmNlcwotICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3
MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAw
MUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxV
MDAwMUY0NjYtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMg
XFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1
OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAw
MUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxV
MDAwMUY2QzAgXFxVMDAwMUY5MTggXFxVMDAwMUYzQzIgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0Mg
XFxVMDAwMUY1NzQgXFxVMDAwMUY1N0EgXFxVMDAwMUY2Q0MgXFxVMDAwMUY5MTktXFxVMDAwMUY5
MUUgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzAgXFxVMDAwMUY5MzMtXFxVMDAwMUY5MzkgXFxVMDAw
MUY5M0MtXFxVMDAwMUY5M0VdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2Rp
ZmllcnMKLSNlbHNlCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1c
XFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IgotICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQg
XFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAw
MDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxc
VTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4
IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFG
NDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAw
MDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxc
VTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0j
ZW5kaWYKLSAgICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07IgotICAg
ICIkZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIk
QUxQbHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOyIKLSAgICAiJEFMY20gPSAkQUxQbHVzICRD
TSo7IgotICAgICIkQkFjbSA9ICRCQSAkQ00qOyIKLSAgICAiJEJCY20gPSAkQkIgJENNKjsiCi0g
ICAgIiRCMmNtID0gJEIyICRDTSo7IgotICAgICIkQ0xjbSA9ICRDTCAkQ00qOyIKLSAgICAiJENQ
Y20gPSAkQ1AgJENNKjsiCi0gICAgIiRFWGNtID0gJEVYICRDTSo7IgotICAgICIkR0xjbSA9ICRH
TCAkQ00qOyIKLSAgICAiJEhMY20gPSAkSEwgJENNKjsiCi0gICAgIiRIWWNtID0gJEhZICRDTSo7
IgotICAgICIkSDJjbSA9ICRIMiAkQ00qOyIKLSAgICAiJEgzY20gPSAkSDMgJENNKjsiCi0gICAg
IiRJRGNtID0gJElEICRDTSo7IgotICAgICIkSU5jbSA9ICRJTiAkQ00qOyIKLSAgICAiJElTY20g
PSAkSVMgJENNKjsiCi0gICAgIiRKTGNtID0gJEpMICRDTSo7IgotICAgICIkSlZjbSA9ICRKViAk
Q00qOyIKLSAgICAiJEpUY20gPSAkSlQgJENNKjsiCi0gICAgIiROU2NtID0gJE5TICRDTSo7Igot
ICAgICIkTlVjbSA9ICROVSAkQ00qOyIKLSAgICAiJE9QY20gPSAkT1AgJENNKjsiCi0gICAgIiRQ
T2NtID0gJFBPICRDTSo7IgotICAgICIkUFJjbSA9ICRQUiAkQ00qOyIKLSAgICAiJFFVY20gPSAk
UVUgJENNKjsiCi0gICAgIiRSSWNtID0gJFJJICRDTSo7IgotICAgICIkU1ljbSA9ICRTWSAkQ00q
OyIKLSAgICAiJFdKY20gPSAkV0ogJENNKjsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRG
b3J3YXJkID0KLSAgICAiISFmb3J3YXJkOyIKLSAgICAiJENBTl9DTSA9IFteJFNQICRCSyAkQ1Ig
JExGICROTCAkWlcgJENNXTsiCi0gICAgIiRDQU5UX0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwg
JFpXICRDTV07IgotICAgICIkQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYgJE5MICRaVyAk
U1BdOyIKLSAgICAiJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRTWSAkV0og
JEdMICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsiCi0gICAgIiRBTF9GT0xM
T1cgPSBbJEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOyIKLSAgICAiJExCNEJyZWFrcyA9
IFskQksgJENSICRMRiAkTkxdOyIKLSAgICAiJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYg
JE5MXTsiCi0gICAgIiRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOyIKLSAgICAiJExCOE5v
bkJyZWFrcyA9IFtbJExCNE5vbkJyZWFrc10gLSBbJFpXXV07IgotICAgICIkTEIxOE5vbkJyZWFr
cyA9IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOyIKLSAgICAiJExCMThCcmVha3MgPSBbJExCOEJy
ZWFrcyAkU1BdOyIKLSAgICAiJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVha3MgLSAkQ0Jd
OyIKLSAgICAiJEFMUGx1cyAkQ00rOyIKLSAgICAiJEJBICRDTSs7IgotICAgICIkQkIgJENNKzsi
Ci0gICAgIiRCMiAkQ00rOyIKLSAgICAiJENMICRDTSs7IgotICAgICIkQ1AgJENNKzsiCi0gICAg
IiRFWCAkQ00rOyIKLSAgICAiJEdMICRDTSs7IgotICAgICIkSEwgJENNKzsiCi0gICAgIiRIWSAk
Q00rOyIKLSAgICAiJEgyICRDTSs7IgotICAgICIkSDMgJENNKzsiCi0gICAgIiRJRCAkQ00rOyIK
LSAgICAiJElOICRDTSs7IgotICAgICIkSVMgJENNKzsiCi0gICAgIiRKTCAkQ00rOyIKLSAgICAi
JEpWICRDTSs7IgotICAgICIkSlQgJENNKzsiCi0gICAgIiROUyAkQ00rOyIKLSAgICAiJE5VICRD
TSs7IgotICAgICIkT1AgJENNKzsiCi0gICAgIiRQTyAkQ00rOyIKLSAgICAiJFBSICRDTSs7Igot
ICAgICIkUVUgJENNKzsiCi0gICAgIiRSSSAkQ00rOyIKLSAgICAiJFNZICRDTSs7IgotICAgICIk
V0ogJENNKzsiCi0gICAgIiRDUiAkTEYgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzPyAkTEI0
QnJlYWtzIHsxMDB9OyIKLSAgICAiJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEwMH07IgotICAg
ICIkQ00rICRMQjRCcmVha3MgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsi
Ci0gICAgIiRDQU5fQ00gJENNKiBbJFNQICRaV107IgotICAgICIkQ00rIFskU1AgJFpXXTsiCi0g
ICAgIiRFbW9qaUZvclNlcXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNl
cXM7IgotICAgICIkQ0FOX0NNICRDTSs7IgotICAgICIkQ00rOyIKLSAgICAiJENBTl9DTSAkQ00q
ICRXSmNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkV0pjbTsiCi0gICAgIiRDTSsgJFdKY207Igot
ICAgICIkV0pjbSAkQ0FOVF9DTTsiCi0gICAgIiRXSmNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRH
TGNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5UX0NNOyIKLSAgICAiW1skTEI4Tm9u
QnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSogJEdMY207IgotICAgICIkQ00rIEdMY207Igot
ICAgICIkTEI4Tm9uQnJlYWtzICRDTDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ0w7IgotICAgICIk
Q00rICRDTDsiCi0gICAgIiRMQjhOb25CcmVha3MgJENQOyIKLSAgICAiJENBTl9DTSAkQ00qICRD
UDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkRVg7IgotICAgICIkQ0FO
X0NNICRDTSogJEVYOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkTEI4Tm9uQnJlYWtzICRJUzsi
Ci0gICAgIiRDQU5fQ00gJENNKiAkSVM7IgotICAgICIkQ00rICRJUzsiCi0gICAgIiRMQjhOb25C
cmVha3MgJFNZOyIKLSAgICAiJENBTl9DTSAkQ00qICRTWTsiCi0gICAgIiRDTSsgJFNZOyIKLSAg
ICAiJE9QY20gJFNQKiAkQ0FOX0NNICRDTSo7IgotICAgICIkT1BjbSAkU1AqICRDQU5UX0NNOyIK
LSAgICAiJE9QY20gJFNQKyAkQ00rICRBTF9GT0xMT1c/OyIKLSAgICAiJFFVY20gJFNQKiAkT1Bj
bTsiCi0gICAgIigkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOyIKLSAgICAiJEIyY20gJFNQKiAk
QjJjbTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207IgotICAgICIkQ00rICRRVWNt
OyIKLSAgICAiJFFVY20gLj87IgotICAgICIkUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00qOyIKLSAg
ICAiJExCMjBOb25CcmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsgIgotICAgICIk
QkJjbSBbXiRDQl07IgotICAgICIkQkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJEhM
Y20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87IgotICAgICIkU1ljbSAkSExjbTsiCi0gICAgIigk
QUxjbSB8ICRITGNtKSAkSU5jbTsiCi0gICAgIiRDTSsgJElOY207IgotICAgICIkRVhjbSAkSU5j
bTsiCi0gICAgIiRJRGNtICRJTmNtOyIKLSAgICAiJElOY20gJElOY207IgotICAgICIkTlVjbSAk
SU5jbTsiCi0gICAgIiRJRGNtICRQT2NtOyIKLSAgICAiJEFMY20gJE5VY207IgotICAgICIkSExj
bSAkTlVjbTsiCi0gICAgIiRDTSsgJE5VY207IgotICAgICIkTlVjbSAkQUxjbTsiCi0gICAgIiRO
VWNtICRITGNtOyIKLSAgICAiJFBSY20gJElEY207IgotICAgICIkUFJjbSAoJEFMY20gfCAkSExj
bSk7IgotICAgICIkUE9jbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJFBSY20gfCAkUE9jbSk/
ICgkT1BjbSB8ICRIWWNtKT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8
ICRDUGNtKT8gKCRQUmNtIHwgJFBPY20pPzsiCi0gICAgIiRKTGNtICgkSkxjbSB8ICRKVmNtIHwg
JEgyY20gfCAkSDNjbSk7IgotICAgICIoJEpWY20gfCAkSDJjbSkgKCRKVmNtIHwgJEpUY20pOyIK
LSAgICAiKCRKVGNtIHwgJEgzY20pICRKVGNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRj
bSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8
ICRIMmNtIHwgJEgzY20pICRQT2NtOyIKLSAgICAiJFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRj
bSB8ICRIMmNtIHwgJEgzY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNt
KTsiCi0gICAgIiRDTSsgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJElTY20gKCRBTGNtIHwgJEhM
Y20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207IgotICAgICIkQ00rICRP
UGNtOyIKLSAgICAiJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7IgotI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAotICAgICIkUkljbSAkUkljbTsiCi0jZW5kaWYKLSAgICAiJEVtb2pp
Rm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVh
eDE0UmV2ZXJzZSA9Ci0gICAgIiEhcmV2ZXJzZTsiCi0gICAgIiRDTSsgJEFMUGx1czsiCi0gICAg
IiRDTSsgJEJBOyIKLSAgICAiJENNKyAkQkI7IgotICAgICIkQ00rICRCMjsiCi0gICAgIiRDTSsg
JENMOyIKLSAgICAiJENNKyAkQ1A7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRDTSsgJEdMOyIK
LSAgICAiJENNKyAkSEw7IgotICAgICIkQ00rICRIWTsiCi0gICAgIiRDTSsgJEgyOyIKLSAgICAi
JENNKyAkSDM7IgotICAgICIkQ00rICRJRDsiCi0gICAgIiRDTSsgJElOOyIKLSAgICAiJENNKyAk
SVM7IgotICAgICIkQ00rICRKTDsiCi0gICAgIiRDTSsgJEpWOyIKLSAgICAiJENNKyAkSlQ7Igot
ICAgICIkQ00rICROUzsiCi0gICAgIiRDTSsgJE5VOyIKLSAgICAiJENNKyAkT1A7IgotICAgICIk
Q00rICRQTzsiCi0gICAgIiRDTSsgJFBSOyIKLSAgICAiJENNKyAkUVU7IgotI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00rICRSSTsiCi0jZW5kaWYKLSAgICAiJENNKyAkU1k7
IgotICAgICIkQ00rICRXSjsiCi0gICAgIiRDTSs7IgotICAgICIkQUxfRk9MTE9XICRDTSsgLyAo
WyRCSyAkQ1IgJExGICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAo
W14kT1AgJENNICRTUF0gfCBbJEFMIHtlb2Z9XSkpOyIKLSAgICAiWyRQUl0gLyAkQ00rIFskQksg
JENSICRMRiAkTkwgJFpXICRTUCB7ZW9mfV07IgotICAgICIkTEI0QnJlYWtzIFskTEI0Tm9uQnJl
YWtzLSRDTV07IgotICAgICIkTEI0QnJlYWtzICRDTSsgJENBTl9DTTsiCi0gICAgIiRMRiAkQ1I7
IgotICAgICJbJFNQICRaV10gWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIlskU1AgJFpXXSAk
Q00rICRDQU5fQ007IgotICAgICIkRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2pp
VmFyPyAkRW1vamlGb3JTZXFzOyIKLSAgICAiJENNKyAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0og
JENNKiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAg
IiRDQU5UX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFdKOyIKLSAgICAi
JENNKiAkR0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZXV07IgotICAgICIk
Q0FOVF9DTSAkQ00qICRHTDsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRHTDsiCi0gICAgIiRD
TCAkQ00rICRDQU5fQ007IgotICAgICIkQ1AgJENNKyAkQ0FOX0NNOyIKLSAgICAiJEVYICRDTSsg
JENBTl9DTTsiCi0gICAgIiRJUyAkQ00rICRDQU5fQ007IgotICAgICIkU1kgJENNKyAkQ0FOX0NN
OyIKLSAgICAiJENMIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ1AgWyRMQjhOb25CcmVh
a3MtJENNXTsiCi0gICAgIiRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJElTIFskTEI4
Tm9uQnJlYWtzLSRDTV07IgotICAgICIkU1kgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIlsk
Q0wgJENQICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7ICIKLSAgICAiJENNKiAkQ0FO
X0NNICRTUCogJENNKiAkT1A7IgotICAgICIkQ0FOVF9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAi
JEFMX0ZPTExPVz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xMT1dfTk9D
TSAkQ00rICRTUCsgJENNKiAkT1A7IgotICAgICIkQ00qICRBTF9GT0xMT1dfQ00gJENNKyAkU1Ar
ICRDTSogJE9QOyIKLSAgICAiJFNZICRDTSAkU1ArICRPUDsiCi0gICAgIiRDTSogJE9QICRTUCog
JENNKiAkUVU7IgotICAgICIkQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIk
Q00qICRCMiAkU1AqICRDTSogJEIyOyIKLSAgICAiJENNKiAkUVUgJENNKiAkQ0FOX0NNOyIKLSAg
ICAiJENNKiAkUVUgJExCMThOb25CcmVha3M7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkUVU7
IgotICAgICIkQ0FOVF9DTSAkQ00qICRRVTsiCi0gICAgIiRDTSogKCRCQSB8ICRIWSB8ICROUykg
JENNKiBbJExCMjBOb25CcmVha3MtJENNXTsiCi0gICAgIiRDTSogWyRMQjIwTm9uQnJlYWtzLSRD
TV0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAo
JEhZIHwgJEJBKSAkQ00qICRITDsiCi0gICAgIiRDTSogJEhMICRDTSogJFNZOyIKLSAgICAiJENN
KiAkSU4gJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICRJTiAkQ00qICRFWDsiCi0g
ICAgIiRDTSogJElOICRDTSogJElEOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSU47IgotICAgICIk
Q00qICRJTiAkQ00qICROVTsiCi0gICAgIiRDTSogJFBPICRDTSogJElEOyIKLSAgICAiJENNKiAk
TlUgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00q
ICROVTsiCi0gICAgIiRDTSogJElEICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRI
TCkgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQTzsiCi0gICAg
IigkQ00qICgkUFIgfCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElT
IHwgJFNZKSkqICRDTSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykp
PzsiCi0gICAgIiRDTSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7IgotICAgICIk
Q00qICgkSlQgfCAkSlYpICRDTSogKCRIMiB8ICRKVik7IgotICAgICIkQ00qICRKVCAkQ00qICgk
SDMgfCAkSlQpOyIKLSAgICAiJENNKiAkSU4gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwg
JEpMKTsiCi0gICAgIiRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7
IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSogJFBSOyIKLSAg
ICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00q
ICgkQUxQbHVzIHwgJEhMKSAkQ00qICRJUzsiCi0gICAgIiRDTSogJE9QICRDTSogKCRBTFBsdXMg
fCAkSEwgfCAkTlUpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7
IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00qICRSSSAkQ00qICRSSTsi
Ci0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7IjsKLQot
c3RhdGljIGNvbnN0IGNoYXIqIHVheDE0U2FmZUZvcndhcmQgPQotICAgICIhIXNhZmVfZm9yd2Fy
ZDsiCi0gICAgIlskQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rp
b25hcnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5
XTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFy
KiB1YXgxNFNhZmVSZXZlcnNlID0KLSAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICIkQ00rIFte
JENNICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRDTSsgJFNQIC8gLjsiCi0gICAg
IiRTUCsgJENNKiAkT1A7IgotICAgICIkU1ArICRDTSogJFFVOyIKLSAgICAiJFNQKyAkQ00qICgk
Q0wgfCAkQ1ApOyIKLSAgICAiJFNQKyAkQ00qICRCMjsiCi0gICAgIiRDTSogKCRIWSB8ICRCQSkg
JENNKiAkSEw7IgotICAgICIoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOyIKLSAgICAiKCRD
TCB8ICRDUCkgJENNKiAoJE5VIHwgJElTIHwgJFNZKTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0
aW9uYXJ5OyI7Ci0KIHN0YXRpYyBTdHJpbmcgbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMoTGlu
ZUJyZWFrSXRlcmF0b3JNb2RlIG1vZGUsIGJvb2wgaXNDSkspCiB7Ci0gICAgU3RyaW5nQnVpbGRl
ciBydWxlc0J1aWxkZXI7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFByb2xvZ3VlKTsK
LSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNCZWZvcmUpOwogICAgIHN3
aXRjaCAobW9kZSkgewogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpEZWZhdWx0Ogot
ICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3Rv
bURlZmF1bHRDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNKSyk7Ci0gICAg
ICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0
Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBM
aW5lQnJlYWtJdGVyYXRvck1vZGU6Okxvb3NlOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5k
KGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLIDogdWF4MTRBc3NpZ25tZW50
c0N1c3RvbUxvb3NlTm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NK
SyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6
Ok5vcm1hbDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdu
bWVudHNDdXN0b21Ob3JtYWxDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pL
KTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25D
SktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6U3RyaWN0OgotICAgICAg
ICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmlj
dENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSkspOwotICAgICAgICBicmVh
azsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENK
S1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKS1J1bGVzOwogICAgIH0K
LSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNBZnRlcik7Ci0gICAgcnVs
ZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEZvcndhcmQpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQo
dWF4MTRSZXZlcnNlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2FmZUZvcndhcmQp
OwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZlUmV2ZXJzZSk7Ci0gICAgcmV0dXJu
IHJ1bGVzQnVpbGRlci50b1N0cmluZygpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiAiIjsKIH0KIAogLy8gUmVjb2duaXplIEJDUDQ3IGNvbXBsaWFudCBwcmltYXJ5IGxh
bmd1YWdlIHZhbHVlcyBvZiAnemgnLCAnamEnLCAna28nCkBAIC03ODgsOSArMjUzLDI5IEBAIFVC
cmVha0l0ZXJhdG9yKiBvcGVuTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgQXRvbWljU3RyaW5nJiBs
b2NhbGUsIExpbmVCcmVha0l0ZXJhCiAgICAgaWYgKG1vZGUgPT0gTGluZUJyZWFrSXRlcmF0b3JN
b2RlOjpEZWZhdWx0KQogICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlbihVQlJLX0xJTkUsIGxv
Y2FsZUlzRW1wdHkgPyBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKSA6IGxvY2FsZS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpLCAwLCAwLCAmb3BlblN0YXR1cyk7CiAgICAgZWxzZSB7Ci0gICAgICAg
IFVQYXJzZUVycm9yIHBhcnNlU3RhdHVzOwotICAgICAgICBhdXRvIHJ1bGVzID0gbWFwTGluZUl0
ZXJhdG9yTW9kZVRvUnVsZXMobW9kZSwgaXNDSkspOwotICAgICAgICB1YnJrSXRlciA9IHVicmtf
b3BlblJ1bGVzKFN0cmluZ1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBydWxl
cy5sZW5ndGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7CisgICAgICAgIEJy
ZWFraW5nUnVsZVNldCBydWxlU2V0ID0gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzsKKyAg
ICAgICAgc3dpdGNoIChtb2RlKSB7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2Rl
OjpEZWZhdWx0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0
OjpVQVgxNENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Okxvb3NlOgorICAgICAg
ICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLIDog
QnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpOb3JtYWw6CisgICAgICAgICAgICBy
dWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLIDogQnJlYWtp
bmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6U3RyaWN0OgorICAgICAgICAgICAgcnVsZVNl
dCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdENKSyA6IEJyZWFraW5nUnVs
ZVNldDo6VUFYMTRTdHJpY3ROb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
CisgICAgICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChy
dWxlU2V0KSkKKyAgICAgICAgICAgIHVicmtJdGVyID0gcmVpbnRlcnByZXRfY2FzdDxVQnJlYWtJ
dGVyYXRvcio+KGl0ZXJhdG9yKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBVUGFyc2VF
cnJvciBwYXJzZVN0YXR1czsKKyAgICAgICAgICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRlcmF0
b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7CisgICAgICAgICAgICB1YnJrSXRlciA9IHVicmtf
b3BlblJ1bGVzKFN0cmluZ1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBydWxl
cy5sZW5ndGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7CisgICAgICAgIH0K
ICAgICB9CiAgICAgLy8gbG9jYWxlIGNvbWVzIGZyb20gYSB3ZWIgcGFnZSBhbmQgaXQgY2FuIGJl
IGludmFsaWQsIGxlYWRpbmcgSUNVCiAgICAgLy8gdG8gZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSBm
YWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgbG9jYWxlLgpAQCAtODExLDYgKzI5Niw3IEBAIHZvaWQg
Y2xvc2VMaW5lQnJlYWtJdGVyYXRvcihVQnJlYWtJdGVyYXRvciomIGl0ZXJhdG9yKQogewogICAg
IFVCcmVha0l0ZXJhdG9yKiB1YnJrSXRlciA9IGl0ZXJhdG9yOwogICAgIEFTU0VSVCh1YnJrSXRl
cik7CisgICAgLy8gRklYTUU6IFVzZSBSQUlJIHRvIGRvIHRoaXMgaW5zdGVhZC4KICAgICB1YnJr
X2Nsb3NlKHVicmtJdGVyKTsKICAgICBpdGVyYXRvciA9IG51bGxwdHI7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmggYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKaW5kZXggYmNmNDRjMDdhNGVjOTFiNTE0NjdjMjRm
NGZlNzE2ZWQzNGRiY2MxNS4uNmY4YTFlZmY3NDk5YmNiZTlhODgwMjdjMDMzMTdlYjYyYzRiMjY3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaApAQCAtMjksNiArMjks
MzAgQEAgbmFtZXNwYWNlIFdURiB7CiAKIGVudW0gY2xhc3MgTGluZUJyZWFrSXRlcmF0b3JNb2Rl
IHsgRGVmYXVsdCwgTG9vc2UsIE5vcm1hbCwgU3RyaWN0IH07CiAKK2VudW0gY2xhc3MgQnJlYWtp
bmdSdWxlU2V0IHsKKyAgICBDdXJzb3JNb3ZlbWVudCwKKyAgICBVQVgxNENKSywKKyAgICBVQVgx
NE5vbkNKSywKKyAgICBVQVgxNExvb3NlQ0pLLAorICAgIFVBWDE0TG9vc2VOb25DSkssCisgICAg
VUFYMTROb3JtYWxDSkssCisgICAgVUFYMTROb3JtYWxOb25DSkssCisgICAgVUFYMTRTdHJpY3RD
SkssCisgICAgVUFYMTRTdHJpY3ROb25DSksKK307CisKK2V4dGVybiBjb25zdCBjaGFyKiBjdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRl
cmF0b3JVQVgxNENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3RDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CisKK1VCcmVha0l0ZXJhdG9yKiBjcmVhdGVJ
dGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0KTsKKwogLy8gVGhpcyBpcyBzaW1pbGFy
IHRvIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBpbiBtb3N0IGNhc2VzLCBidXQgaXMgc3ViamVj
dCB0bwogLy8gcGxhdGZvcm0gVUkgY29udmVudGlvbnMuIE9uZSBub3RhYmxlIGV4YW1wbGUgd2hl
cmUgdGhpcyBjYW4gYmUgZGlmZmVyZW50CiAvLyBmcm9tIGNoYXJhY3RlciBicmVhayBpdGVyYXRv
ciBpcyBUaGFpIHByZXBlbmQgY2hhcmFjdGVycywgc2VlIGJ1ZyAyNDM0Mi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMu
bW0gYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNV
TWFjLm1tCmluZGV4IGJlZjVkYWE2NDI4ODgyMWUyMGYyNjI4YzY4NTVlZThlODhhMzg5MmMuLmM1
MzczYjAzZGJkNGZiNmVhMjNmYWQyZWQyYWQzY2MwMzc1ZTMyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1h
Yy5tbQpAQCAtMjEsMTIgKzIxLDE3NCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKIAorI2luY2x1ZGUgIlRleHRCcmVha0l0
ZXJhdG9yLmgiCisjaW5jbHVkZSA8dW5pY29kZS91YnJrLmg+CisjaW5jbHVkZSA8dW5pY29kZS91
ZGF0YS5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9P
cHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAorQGludGVyZmFjZSBXVEZC
dW5kbGVGaW5kZXIgOiBOU09iamVjdAorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV1RGQnVuZGxl
RmluZGVyCitAZW5kCisKIG5hbWVzcGFjZSBXVEYgewogCiBzdGF0aWMgY29uc3QgaW50IG1heExv
Y2FsZVN0cmluZ0xlbmd0aCA9IDMyOwogCisjZGVmaW5lIFVTRV9QUkVDT01QSUxFRF9CUkVBS0lO
R19SVUxFUyAoVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgKChQTEFURk9STShNQUMpICYmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZPUk0oSU9T
KSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApKSkKKworI2lm
IFVTRV9QUkVDT01QSUxFRF9CUkVBS0lOR19SVUxFUworc3RhdGljIFVEYXRhTWVtb3J5KiBicmVh
a0l0ZXJhdG9yUmVzb3VyY2UoTlNTdHJpbmcgKmZpbGVOYW1lQmFzZSkKK3sKKyAgICBOU0J1bmRs
ZSAqYnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXVEZCdW5kbGVGaW5kZXIgY2xh
c3NdXTsKKyAgICBOU1N0cmluZyAqcGF0aCA9IFtidW5kbGUgcGF0aEZvclJlc291cmNlOmZpbGVO
YW1lQmFzZSBvZlR5cGU6QCJicmsiIGluRGlyZWN0b3J5OkAiQnJlYWtpbmdSdWxlcyJdOworICAg
IGlmICghcGF0aCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgTlNTdHJpbmcgKmRpcmVj
dG9yeSA9IFtwYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF07CisKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7Cisg
ICAgdWRhdGFfc2V0RmlsZUFjY2VzcyhVREFUQV9GSUxFU19GSVJTVCwgJmVycm9yQ29kZSk7Cisg
ICAgaWYgKFVfRkFJTFVSRShlcnJvckNvZGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNl
bmRpZgorCisgICAgVUVycm9yQ29kZSB1RGF0YUVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAg
ICBVRGF0YU1lbW9yeSogcmVzdWx0ID0gdWRhdGFfb3BlbihbZGlyZWN0b3J5IFVURjhTdHJpbmdd
LCAiYnJrIiwgW2ZpbGVOYW1lQmFzZSBVVEY4U3RyaW5nXSwgJnVEYXRhRXJyb3JDb2RlKTsKKwor
I2lmIFBMQVRGT1JNKElPUykKKyAgICB1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEQVRBX0RFRkFVTFRf
QUNDRVNTLCAmZXJyb3JDb2RlKTsKKyAgICBpZiAoVV9GQUlMVVJFKGVycm9yQ29kZSkpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCisKKyAgICBpZiAoVV9GQUlMVVJFKHVEYXRhRXJy
b3JDb2RlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRh
KFVEYXRhTWVtb3J5KiBkYXRhKQoreworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAgICBV
QnJlYWtJdGVyYXRvciogcmVzdWx0ID0gdWJya19vcGVuQmluYXJ5UnVsZXMoc3RhdGljX2Nhc3Q8
Y29uc3QgdWludDhfdCAqPih1ZGF0YV9nZXRNZW1vcnkoZGF0YSkpLCBzdGQ6Om51bWVyaWNfbGlt
aXRzPGludDMyX3Q+OjptYXgoKSwgbnVsbHB0ciwgMCwgJmVycm9yQ29kZSk7CisKKyAgICBpZiAo
VV9GQUlMVVJFKGVycm9yQ29kZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVy
YXRvcigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3Vy
Y2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxl
cyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRv
cihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAg
ICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVE
YXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0
ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VE
YXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJy
ZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksoKQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9y
UmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLIikpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9t
UmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBpdGVyYXRvci5n
ZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VDSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJl
c291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VDSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4g
aXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgp
KSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0
b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSygpCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNv
dXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSyIpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJv
bVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3Iu
Z2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbENKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4g
cmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9y
Kj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdl
dCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRl
cmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksoKQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9y
UmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLIikpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0
b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBpdGVy
YXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Q0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1v
cnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdENKSyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRl
cmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURh
dGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJl
YWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSygpCit7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRl
cmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksiKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJ
dGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJu
IGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGNsb25lSXRlcmF0
b3IoVUJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQoreworICAgIGlmICghaXRlcmF0b3IpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VS
Uk9SOworICAgIGlmIChhdXRvKiByZXN1bHQgPSB1YnJrX3NhZmVDbG9uZShpdGVyYXRvciwgbnVs
bHB0ciwgMCwgJmVycm9yQ29kZSkpIHsKKyAgICAgICAgaWYgKFVfU1VDQ0VTUyhlcnJvckNvZGUp
KQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisjZW5kaWYKKworVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChC
cmVha2luZ1J1bGVTZXQgcnVsZVNldCkKK3sKKyNpZiBVU0VfUFJFQ09NUElMRURfQlJFQUtJTkdf
UlVMRVMKKyAgICBzd2l0Y2ggKHJ1bGVTZXQpIHsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6
Q3Vyc29yTW92ZW1lbnQ6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGN1cnNvck1vdmVt
ZW50SXRlcmF0b3IoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLOgorICAg
ICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLKCkpOwor
ICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzoKKyAgICAgICAgcmV0dXJuIGNs
b25lSXRlcmF0b3IobGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSygpKTsKKyAgICBjYXNlIEJy
ZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZUNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0
b3IobGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdS
dWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihs
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1
bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0
OjpVQVgxNE5vcm1hbE5vbkNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSygpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNl
dDo6VUFYMTRTdHJpY3RDSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVB
WDE0U3RyaWN0Tm9uQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLKCkpOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHJ1bGVTZXQpOworICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKIHN0YXRpYyBp
bmxpbmUgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVmZXJlbmNlKCkK
IHsKICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFkb3B0Q0YoQ0ZQ
cmVmZXJlbmNlc0NvcHlWYWx1ZShDRlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUiKSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRG
Uy5jbWFrZQppbmRleCA1MTMwZmZjYmNjN2M5Y2U3NTE0YWY0ZDU1M2JkOGE0ZjA1MDE0NTZkLi45
ZjgzMzBhZjdmZTM2M2Q4MDEzZWVlMzRiZWRkN2ZjMTVjYjc5MWVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvY21ha2UvV2ViS2l0RlMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtl
CkBAIC0yNyw2ICsyNyw3IEBAIGlmIChOT1QgVE9PTFNfRElSKQogZW5kaWYgKCkKIAogc2V0KERF
UklWRURfU09VUkNFU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMiKQor
c2V0KERFUklWRURfU09VUkNFU19XVEZfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRT
b3VyY2VzL1dURiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUiAiJHtD
TUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZSIpCiBzZXQoREVS
SVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJLSVRMRUdBQ1lfRElSICIke0NN
QUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIpCkBAIC0zNSw2ICsz
Niw4IEBAIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVIgIiR7Q01BS0VfQklOQVJZX0RJ
Un0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0MiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQklOU1BF
Q1RPUlVJX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJJbnNwZWN0
b3JVSSIpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQ
VENPUkVfRElSfSkKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJ
Un0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFr
aW5nUnVsZXMpCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0vU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVE
X1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfSkKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0No
YW5nZUxvZwppbmRleCBiNjUyMTViYzlkYTY3Y2MwMTgzMTg2NGZhMTBkODQxOTQ4MDQ1MzcyLi43
YzhlMGQzNDhkZGU1MTMyNWQ1YjRiOWE0MGM1Yzk1NTY3NWY2YjViIDEwMDY0NAotLS0gYS9DaGFu
Z2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDItMDcgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElD
VSBicmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2Uv
Y21ha2UvV2ViS2l0RlMuY21ha2U6CisKIDIwMTctMDItMDcgIE9saXZpZXIgQmxpbiAgPG9saXZp
ZXIuYmxpbkBzb2Z0YXRob21lLmNvbT4KIAogICAgICAgICBbR1RLXVtFZmxdIERvIG5vdCByZXF1
aXJlIExpYlhzbHQgaWYgWFNMVCBpcyBkaXNhYmxlZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300947</attachid>
            <date>2017-02-08 13:14:43 -0800</date>
            <delta_ts>2017-02-08 14:14:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20170208131219.patch</filename>
            <type>text/plain</type>
            <size>123611</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NDNlNDJhZDA3YTMwMzc5MDhkNTRmNDc1YjAxN2EwODQ0MmIzN2U4Li5mM2U3NDlmM2EzMTRkMTlj
NTU1MzI1YjZkMGRjYmVhMzg5MzZmYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNy0wMi0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbmNsdWRlIHRoZSBieXRlY29kZSBmaWxlcyBpbnNpZGUgdGhl
IEphdmFTY3JpcHRDb3JlIGJ1bmRsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTctMDItMDcgIE1hcmsgTGFtICA8bWFyay5sYW1A
YXBwbGUuY29tPgogCiAgICAgICAgIFNpZ2lsbENyYXNoQW5hbHl6ZXI6OmFuYWx5emUoKSBzaG91
bGQgdXNlIGEgZG8td2hpbGUgbG9vcCBpbnN0ZWFkIG9mIGEgbGFtYmRhLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjYjNmMTgx
YzlkNGNjZTBjNDMzOWEzNDM2Yjg3YzRlYTQ5OTM0OTdiLi42MTA0ZWE4OTEzODVkYmJmODE1M2Q5
M2M3NDczMTZkMjg0MDE2OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE3LTAyLTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJ
Q1UgYnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBtYWNP
UyBhbmQgaU9TIFNES3MgaW5jbHVkZSBhIHRvb2wsIGljdWdlbmJyaywgd2hpY2ggY29tcGlsZXMg
SUNVIGJyayBicmVha2luZworICAgICAgICBydWxlcyBpbnRvIGJ5dGVjb2RlLiBQcmV2aW91c2x5
LCB0aGlzIGNvbXBpbGF0aW9uIHdhcyBkb25lIGF0IHJ1bnRpbWUgaW5zaWRlIHRoZSBJQ1UKKyAg
ICAgICAgdWJya19vcGVuUnVsZXMoKSBmdW5jdGlvbi4gTW92aW5nIHRoaXMgY29tcGlsYXRpb24g
c3RlcCB0byBjb21waWxlIHRpbWUgcmF0aGVyIHRoYW4KKyAgICAgICAgYnVpbGQgdGltZSBjYXVz
ZXMgYSBwZXJmb3JtYW5jZSBib29zdC4KKworICAgICAgICBQcmV2aW91c2x5LCB0aGUgc291cmNl
IGZvciB0aGUgYnJlYWtpbmcgcnVsZXMgd2FzIGFzc2VtYmxlZCBieSBjb25jYXRlbmF0aW5nIEMg
c3RyaW5ncworICAgICAgICBhdCBydW50aW1lLiBOb3csIHRoZSBzb3VyY2UgaXMgY29udGFpbmVk
IHdpdGhpbiBhIGZldyB0ZXh0IGZpbGVzIGluc2lkZQorICAgICAgICB3dGYvdGV4dC9CcmVha2lu
Z1J1bGVzLiBBIGJ1aWxkIHN0ZXAgKHVzaW5nIGEgTWFrZWZpbGUpIHdpbGwgZ2VuZXJhdGUgc291
cmNlIGNvZGUKKyAgICAgICAgY29udGFpbmluZyB0aGVzZSBzdHJpbmdzLCBhbmQgV1RGIHdpbGwg
aW5jbHVkZSB0aGVzZSBzb3VyY2UgZmlsZXMgaW4gdGhlIHNhbWUgd2F5IGFueQorICAgICAgICBv
ZiBvdXIgcHJvamVjdHMgdXNlIGdlbmVyYXRlZCBzb3VyY2VzLiBBZGRpdGlvbmFsbHksIG9uIE9T
ZXMgd2hpY2ggc3VwcG9ydCBpdCwgdGhlc2UKKyAgICAgICAgc3RyaW5ncyBnZXQgY29tcGlsZWQg
ZGlyZWN0bHkgaW50byBJQ1UgYnl0ZWNvZGUsIGFuZCB0aGVuIGluY2x1ZGVkIGluIHRoZSBmcmFt
ZXdvcmsKKyAgICAgICAgYnVuZGxlLiBCZWNhdXNlIFdURiBnZXRzIHN0YXRpY2FsbHkgbGlua2Vk
IGludG8gSmF2YVNjcmlwdENvcmUsIHRoaXMgaXMgdGhlIGJ1bmRsZQorICAgICAgICB3aGljaCBp
bmNsdWRlcyB0aGUgYnl0ZWNvZGUgZmlsZXMuCisKKyAgICAgICAgQXQgcnVudGltZSwgd2UgZmly
c3QgY2hlY2sgaWYgd2UgaGF2ZSBhIGZpbGUgaW4gb3VyIGJ1bmRsZSBvZiB0aGUgYXBwcm9wcmlh
dGUgbmFtZSwKKyAgICAgICAgYW5kIHRoZW4gc2VlIGlmIElDVSBjYW4gb3BlbiBpdCB1c2luZyBp
dHMgUnVsZUJhc2VkQnJlYWtJdGVyYXRvciBpbnRlcmZhY2UgKHdoaWNoCisgICAgICAgIGluY2x1
ZGVzIGEgdmVyc2lvbiBjaGVjaykuIElmIGFueSBvZiB0aGVzZSBjaGVja3MgZmFpbCwgb3IgaWYg
d2UncmUgb24gYSBwb3J0IHdoaWNoCisgICAgICAgIGRvZXNuJ3QgaGF2ZSB0aGUgbm90aW9uIG9m
IGJ1bmRsZXMsIHdlIHdpbGwgdXNlIHRoZSBDIHN0cmluZ3MgZ2VuZXJhdGVkIGFib3ZlLCBhbmQK
KyAgICAgICAgcGFzcyB0aGVtIHRvIHVicmtfb3BlblJ1bGVzKCkgdGhlIHNhbWUgd2F5IHdlIHdl
cmUgZG9pbmcgYmVmb3JlIHRoaXMgcGF0Y2guCisKKyAgICAgICAgVGhlIFJ1bGVCYXNlZEJyZWFr
SXRlcmF0b3IgaW50ZXJmYWNlIGluIElDVSByZXF1aXJlcyBhZGRpbmcgc29tZSBtb3JlIG9mIElD
VSdzIHB1YmxpYworICAgICAgICBoZWFkZXJzIGludG8gV2ViS2l0LgorCisgICAgICAgICogV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBhIG5ldyBEZXJpdmVkIFNvdXJjZXMgdGFy
Z2V0IHdoaWNoIHVzZXMgYQorICAgICAgICBEZXJpdmVkU291cmNlcy5tYWtlIE1ha2VmaWxlLCB0
aGUgc2FtZSB3YXkgV2ViS2l0MiwgV2ViQ29yZSwgYW5kIEphdmFTY3JpcHRDb3JlIHdyb2suCisg
ICAgICAgIEFsc28sIGFkZCB0aGUgcnVsZXMgdGV4dCBmaWxlcyB0byB0aGUgcHJvamVjdC4gVGhl
biwgbWFrZSBXVEYgZGVwZW5kIG9uIHRoaXMgbmV3CisgICAgICAgIHRhcmdldC4KKyAgICAgICAg
KiB3dGYvQ01ha2VMaXN0cy50eHQ6IEFkZCBidWlsZCBzdGVwcyBmb3Igb3RoZXIgcG9ydHMgdG8g
Z2VuZXJhdGUgdGhlIGJyZWFraW5nCisgICAgICAgIHJ1bGVzIHN0cmluZ3Mgc291cmNlIGZpbGVz
LgorICAgICAgICAqIHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOiBBZGRlZC4gVGhpcyBpcyB0aGUg
cGxhY2Ugd2hlcmUgaWN1Z2VuYnJrIGlzIGFjdHVhbGx5IAorICAgICAgICBpbnZva2VkLiBJdCBh
bHNvIHRyaWdnZXJzIHRoZSBzY3JpcHQgKEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSkg
d2hpY2ggZ2VuZXJhdGVzCisgICAgICAgIHRoZSBDKysgY29kZSBmb3IgdGhlIHJ1bGVzIHN0cmlu
Z3MuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0dl
bmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weTogQWRkZWQuIEdlbmVyYXRlIEMrKy4KKyAgICAg
ICAgKG1haW4pOgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JFcGlsb2d1ZS50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5jcHA6CisgICAgICAgIChXVEY6OmNyZWF0ZUl0ZXJhdG9yRm9yUnVs
ZVNldCk6IFVzZWQgYnkgb3RoZXIgcG9ydHMuIFJldHVybmluZyBudWxscHRyIG1lYW5zIHdlIGNh
bid0CisgICAgICAgIHVzZSBwcmVjb21waWxlZCBydWxlcy4KKyAgICAgICAgKFdURjo6Y3JlYXRl
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjayk6IFVzZWQgaW4gcGxhY2Ugb2YgdGhl
IGhhcmRjb2RlZCBydWxlcworICAgICAgICBpbiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKCkuCisg
ICAgICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3IpOiBSZW1vdmUgaGFyZGNvZGVkIHJ1
bGVzLgorICAgICAgICAoV1RGOjptYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyk6IFVwZGF0ZSB0
byB1c2UgdGhlIG5ldyBnZW5lcmF0ZWQgQysrIHN0cmluZ3MuCisgICAgICAgIChXVEY6Om9wZW5M
aW5lQnJlYWtJdGVyYXRvcik6IFRoZSBsb2dpYyBvZiB0cnlpbmcgdG8gdXNlIGEgcHJlY29tcGls
ZWQgYnl0ZWNvZGUsIGFuZCBmYWxsaW5nCisgICAgICAgIGJhY2sgdG8gQysrIHN0cmluZ3MgaWYg
aXQgaXNuJ3QgcG9zc2libGUuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
aDogSGVhZGVyIGZvciBnZW5lcmF0ZWQgQysrIGNvZGUuCisgICAgICAgICogd3RmL3RleHQvbWFj
L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW06CisgICAgICAgIChXVEY6OmJyZWFr
SXRlcmF0b3JGcm9tUmVzb3VyY2UpOiBUaGUgYWN0dWFsIGxvZ2ljIGZvciBsb29raW5nIGluc2lk
ZSB0aGUgYnVuZGxlIGZvciB0aGUKKyAgICAgICAgcHJlY29tcGlsZWQgYnl0ZWNvZGUuCisgICAg
ICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3IpOiBDYWxscyBicmVha0l0ZXJhdG9yRnJv
bVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSkspOiBD
YWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb25DSkspOiBDYWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCku
CisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSyk6IENhbGxzIGJy
ZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgor
ICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKTogQ2FsbHMgYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgor
ICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLKTogQ2FsbHMgYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgor
ICAgICAgICAoV1RGOjpjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQpOiAgQ2FsbCB0aGUgYWJvdmUg
c3RhdGljIGZ1bmN0aW9ucy4KKwogMjAxNy0wMi0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KIAogICAgICAgICBQbGF5YmFjayBzdGFsbHMgd2hlbiBhIFNvdXJjZUJ1ZmZlciBh
cHBlbmQgY2F1c2VzIGZyYW1lIGV2aWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDRkYjY2NzI5YTU1N2MwM2M1Y2VlODA4YjY3MTE2M2JiNmFlMTk1ZTcuLjg4YTFiNmQwMmNh
MTVlYTlhMGU4Y2NiMjNmYjliYTAxZmMyMGI5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMjI4LDYgKzEyMjgsNyBAQAogCQkxQTI4RDRBODE3N0I3MUM4MDAwN0ZBM0MgLyog
SlNTdHJpbmdSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQTI4RDRBNzE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUE4
ODI2QjE2NTNDNENEMUE2NDI5ODNCIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QjQ3RjIzNDM2NkM0
QjcyQUM4NTJBN0UgLyogVGVtcGxhdGVSZWdpc3RyeUtleVRhYmxlLmNwcCAqLzsgfTsKIAkJMUFD
RjczNzcxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDRjczNzYxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsu
Y3BwICovOyB9OworCQkxQ0QxODc5MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNEMTg3OEYx
RDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi87IH07CiAJCTI2MDBCNUE2MTUyQkFB
QTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJp
bmdKb2luZXIuY3BwICovOyB9OwogCQkyNjAwQjVBNzE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJp
bmdKb2luZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oICovOyB9OwogCQky
NjJEODVCNjFDMEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MkQ4NUI0
MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovOyB9
OwpAQCAtMzY1Nyw2ICszNjU4LDcgQEAKIAkJMUM5MDUxNDUwQkE5RThBNzAwODFFOUQwIC8qIEJh
c2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEEwRDMyQzM5QTAwNDFCQ0ZG
IC8qIEphdmFTY3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNj
cmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QjBEMzJDMzlBMDA0
MUJDRkYgLyogSmF2YVNjcmlwdENvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSmF2YVNjcmlwdENvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3
OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmb2xkZXI7IG5hbWUgPSBCcmVha2luZ1J1bGVz
OyBwYXRoID0gLi4vV1RGL0JyZWFraW5nUnVsZXM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0cmluZ0pvaW5lci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0
cmluZ0pvaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0cmluZ0pv
aW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjJEODVCNDFDMEQ2NTBGMDA2
QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHBh
dGggPSBiMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTYwMTMsNiArNjAxNSw3IEBACiAJCTY1MEZERjhEMDlEMEZDQTcw
MDc2OUU1NCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzhGMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1
bGVzICovLAogCQkJCTBGNjE4MzMyMUM0NUYzNUMwMDcyNDUwQiAvKiBBaXJPcGNvZGUuaCAqLywK
IAkJCQkwRjYxODMzNDFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlR2VuZXJhdGVkLmggKi8s
CiAJCQkJMEY2MTgzMzUxQzQ1RjNCNjAwNzI0NTBCIC8qIEFpck9wY29kZVV0aWxzLmggKi8sCkBA
IC05NDIwLDYgKzk0MjMsNyBAQAogCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKIAkJ
CWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkxQ0QxODc5
MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJ
QTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5
IGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45NmIwNDc2OWZjYTM5OGFjYzk5Nzg2OTJiNzc3MDY0MDVlZDA0OGE3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5n
cy5weQpAQCAtMCwwICsxLDExMCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgc3lzCitpbXBvcnQgcmUKKwor
aGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisKKworZGVmIG1haW4oYXJndj1Ob25lKToKKyAgICBp
ZiBub3QgYXJndjoKKyAgICAgICAgYXJndiA9IHN5cy5hcmd2CisgICAgZmlsZU5hbWVTdGFydElu
ZGV4ID0gMQorCisgICAgaW5jbHVkZURlZmluZXMgPSBGYWxzZQorICAgIGlmIGFyZ3ZbZmlsZU5h
bWVTdGFydEluZGV4XSA9PSAiLWluY2x1ZGVEZWZpbmVzIjoKKyAgICAgICAgaW5jbHVkZURlZmlu
ZXMgPSBUcnVlCisgICAgICAgIGZpbGVOYW1lU3RhcnRJbmRleCA9IGZpbGVOYW1lU3RhcnRJbmRl
eCArIDEKKworICAgIHN5bWJvbE5hbWUgPSBhcmd2W2ZpbGVOYW1lU3RhcnRJbmRleF1bMF0ubG93
ZXIoKSArIGFyZ3ZbZmlsZU5hbWVTdGFydEluZGV4XVsxOl0KKyAgICBmaWxlTmFtZVN0YXJ0SW5k
ZXggPSBmaWxlTmFtZVN0YXJ0SW5kZXggKyAxCisgICAgZmlsZU5hbWVzID0gYXJndltmaWxlTmFt
ZVN0YXJ0SW5kZXg6XQorCisgICAgcHJpbnQoaGVhZGVyKQorICAgIHByaW50KCIiKQorICAgIHBy
aW50KCIvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJh
dGVkIGJ5IHRoZSBzY3JpcHQiKQorICAgIHByaW50KCIvLyBXVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkiKQorICAgIHByaW50KCIiKQorICAg
IHByaW50KCIjaW5jbHVkZSBcImNvbmZpZy5oXCIiKQorICAgIHByaW50KCIjaW5jbHVkZSA8dW5p
Y29kZS91dmVybnVtLmg+IikKKyAgICBwcmludCgiIikKKyAgICBpZiBpbmNsdWRlRGVmaW5lczoK
KyAgICAgICAgcHJpbnQoIiNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9S
TShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMTAwKSkiKQorICAgICAgICBwcmludCgiI2RlZmluZSBIQVZFX0VYVFJBX0lDVV9O
QU1FRF9TRVRTICgoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJ
T05fTUlOT1JfTlVNID49IDkpKSIpCisgICAgICAgIHByaW50KCIiKQorICAgIHByaW50KCJuYW1l
c3BhY2UgV1RGIHsiKQorICAgIHByaW50KCIiKQorICAgIHByaW50KCJjb25zdCBjaGFyKiAiICsg
c3ltYm9sTmFtZSArICIgPSAiKQorCisgICAgZm9yIGZpbGVOYW1lIGluIGZpbGVOYW1lczoKKyAg
ICAgICAgZm9yIGwgaW4gb3BlbihmaWxlTmFtZSwgJ3InKToKKyAgICAgICAgICAgIGxpbmUgPSBs
LnJzdHJpcCgpCisgICAgICAgICAgICBpZiByZS5tYXRjaCgiXlxzKiQiLCBsaW5lKToKKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyAiKToK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjIik6
CisgICAgICAgICAgICAgICAgcHJpbnQobGluZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgiXiguKik7KCAjIC4qKT8kIiwgbGluZSkKKyAgICAg
ICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gIlwiIiAr
IG1hdGNoLmdyb3VwKDEpLnJlcGxhY2UoIlxcIiwgIlxcXFwiKSArICI7XCIiCisgICAgICAgICAg
ICAgICAgICAgIGlmIG1hdGNoLmdyb3VwKDIpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIpWzM6XQorICAgICAgICAgICAgICAgICAgICBw
cmludChyZXN1bHQpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
ZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAgIHByaW50KCJ9IikKKworaWYgX19uYW1lX18g
PT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU0MmUwYTVlOTkzZGQzYzgxOTI5MjMw
ZDUxNjI3NmI5ZjAxNWMwMzkuLjljZDBmNjNjNjg2N2JjNWNiMjkyYmEyYzhiM2M4OTcyZWYyMmI5
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNyw2ICs3
LDE3IEBACiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rp
b24gKi8KKwkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLyA9
IHsKKwkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxp
c3QgPSAxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi87CisJCQlidWlsZFBo
YXNlcyA9ICgKKwkJCQkxQ0QxODc4MjFENTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVyaXZl
ZCBTb3VyY2VzICovLAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1l
ID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwcm9kdWN0TmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMi
OworCQl9OwogCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlv
bkxpc3QgPSA2NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBs
aXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtODQs
NyArOTUsNiBAQAogCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
NDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CiAJ
CTE0NDdBRUM3MThGQ0U1ODAwMEIzRDdGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMjQ3QjYyMTQ2ODlCODYwMEU3OEI3NiAv
KiBsaWJXVEYuYSAqLzsgfTsKIAkJMTQ0N0FFQzkxOEZDRTU5NDAwQjNEN0ZGIC8qIG1ibWFsbG9j
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdB
RUM4MThGQ0U1OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAgKi87IH07Ci0JCTE0NDdBRUNCMThG
Q0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxp
YmljdWNvcmUuZHlsaWIgKi87IH07CiAJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5M
b29wVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDE0Njk0MTkwMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkxNDY5NDE5MzE2RUFBRjZEMDAyNEUxNDYgLyog
UnVuTG9vcFRpbWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTQ2OTQxOTExNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCAq
LzsgfTsKIAkJMTQ2OTQxOTYxNkVBQUZGODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2OTQxOTQxNkVBQUZG
ODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oICovOyB9OwpAQCAtMzQwLDYgKzM1MCwxNiBAQAog
CQlBREYyQ0U2NjFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREYyQ0U2NDFFMzlGMTA2MDA2
ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQURGMkNFNjcxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZv
b3RwcmludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBREYyQ0U2NTFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmNwcCAqLzsgfTsK
IAkJQjM4RkQ3QkQxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMzhGRDdCQzE2ODk1M0U4MDA2
NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCAqLzsgfTsKKwkJQzJCQTU0M0UxRDU4NkFGNDAwMEEz
MzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5k
eWxpYiAqLzsgfTsKKwkJQzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRDSksuY3BwICovOyB9OworCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VDSksuY3BwICovOyB9OworCQlDMkNBMzdFQzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovOyB9OworCQlDMkNB
MzdFRDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNDFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi87IH07
CisJCUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovOyB9OworCQlDMkNBMzdGMDFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNzFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi87IH07CisJCUMyQ0Ez
N0YxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0Ez
N0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LmNwcCAqLzsgfTsKIAkJQzRGOEE5MzcxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzRGOEE5MzYxOUM2
NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oICovOyB9OwogCQlDOEIwRTFBMUUwMUE0ODZFQjk1
RTBEMTEgLyogSW5kZXhTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxMzdFMUQ3REJEODRBQzM4RkFFNEQzNCAvKiBJbmRleFNldC5oICovOyB9Owog
CQlDOTE2Qjk3NUYwMkY0RjdFOEI0QUIxMkQgLyogSW5kZXhNYXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVCNDMzODNBNUQwQjQ2M0M5NDMzRDkzMyAv
KiBJbmRleE1hcC5oICovOyB9OwpAQCAtMzgxLDYgKzQwMSwxMyBAQAogCQkJcmVtb3RlR2xvYmFs
SURTdHJpbmcgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzY7CiAJCQlyZW1vdGVJbmZvID0gV1RG
OwogCQl9OworCQkxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVy
UG9ydGFsID0gNUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOwor
CQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gMUNEMTg3ODExRDU1
Njk1QzAwQ0M3REVDOworCQkJcmVtb3RlSW5mbyA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQl9Owog
CQk2NUFGQTI4RDE2MzBCOTlFMDAzRDcyM0MgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0g
ewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFsID0g
NUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAtNDkyLDYg
KzUxOSwxOSBAQAogCQkxQzE4MUM4RDFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVU
RjE2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVUZXh0UHJvdmlk
ZXJVVEYxNi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzhFMUQzMDdB
QjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFDMTgxQzk1MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVy
bmFsSUNVTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgcGF0aCA9IG1hYy9UZXh0QnJlYWtJdGVy
YXRvckludGVybmFsSUNVTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzZC
RTBGQTFFMDM0QzlBMDAyMTc2MTcgLyogR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3Jp
cHQucHl0aG9uOyBwYXRoID0gR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRG
Qjk1MUQ1NTlBNjkwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZU5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5OTFENTU5QUVG
MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlBMUQ1NTlCMjMwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1
ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhBMUQ1NThBRDMwMENDN0RF
QyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IG5hbWUgPSBEZXJpdmVkU291cmNlcy5tYWtlOyBw
YXRoID0gd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHVz
ZXNUYWJzID0gMTsgfTsKKwkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVDIC8qIEN1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4
dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVD
IC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxRkE0N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODkxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNv
cmVUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVRocmVh
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjE0N0IwODE1RERDQ0RDMDBEREI5
MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC03MjQsNiArNzY0LDE1IEBACiAJCUFERjJDRTY0MUUzOUYxMDYwMDY4ODlE
QiAvKiBNZW1vcnlGb290cHJpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TWVtb3J5Rm9vdHByaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFERjJDRTY1
MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5Rm9vdHByaW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBD
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgcGF0aCA9IEJyZWFr
aW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNB
MzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0Uz
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJD
QTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNTFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U2MUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3
RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3RDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdF
ODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRpbWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTc2Miw3ICs4MTEsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTE0NDdBRUM2MThGQ0U1NzcwMEIzRDdGRiAv
KiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTE0NDdBRUNCMThG
Q0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCisJCQkJ
QzJCQTU0M0UxRDU4NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3Jr
cyAqLywKIAkJCQkxNDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3
b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKQEAgLTc5OSw2ICs4NDgsMzIgQEAKIAkJCXBhdGggPSBpY3U7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OworCQkxQzZCRTBGOTFFMDM0QzJBMDAyMTc2MTcgLyogU2NyaXB0cyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUM2QkUwRkEx
RTAzNEM5QTAwMjE3NjE3IC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAqLywKKwkJ
CSk7CisJCQlwYXRoID0gU2NyaXB0czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CisJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc5MjFENTU5OEUxMDBD
QzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAqLywKKwkJCQkxQ0I0RkI5
QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8sCisJ
CQkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUu
dHh0ICovLAorCQkJCTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NjFENTU5QTkwMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NzFENTU5QUE4MDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50
eHQgKi8sCisJCQkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxDSksudHh0ICovLAorCQkJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QTFE
NTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8s
CisJCQkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksudHh0ICovLAorCQkJKTsKKwkJCXBhdGggPSBCcmVha2luZ1J1bGVzOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMUZBNDdDODcxNTI1MDJEQTAwNTY4RDFC
IC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC04
MjEsOSArODk2LDEyIEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CTVEMjQ3QjZEMTQ2ODlDNDcwMEU3OEI3NiAvKiBDb25maWd1cmF0aW9ucyAqLywKKwkJCQlDMkNB
MzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0MDIyRjNG
MThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJCQkJNUQyNDdCNjMxNDY4OUI4NjAw
RTc4Qjc2IC8qIFByb2R1Y3RzICovLAorCQkJCTFDNkJFMEY5MUUwMzRDMkEwMDIxNzYxNyAvKiBT
Y3JpcHRzICovLAogCQkJCTVEMjQ3Qjc2MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJ
CQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCiAJ
CQkJMTQ0N0FFQzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovLAog
CQkJCTE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICovLAogCQkJ
KTsKQEAgLTExODUsNiArMTI2Myw3IEBACiAJCUE4QTQ3MzFCMTUxQTgyNUIwMDQxMjNGRiAvKiB0
ZXh0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0Qx
ODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJCQlBNUJBMTVGNjE4
MjQzNTlFMDBBODJFNjkgLyogY2YgKi8sCiAJCQkJMUMxODFDODgxRDMwN0FCODAwRjVGQTE2IC8q
IGljdSAqLywKIAkJCQlBNUJBMTVGMTE4MjQzMzlGMDBBODJFNjkgLyogbWFjICovLApAQCAtMTI2
Myw2ICsxMzQyLDIzIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKIAkJfTsKKwkJQzJDQTM3REYxRDU1QzhEODAwNDg2Qjk4IC8qIERlcml2ZWQgU291cmNlcyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQzJDQTM3RTAx
RDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8sCisJ
CQkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksu
Y3BwICovLAorCQkJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VDSksuY3BwICovLAorCQkJCUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U0MUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLywKKwkJ
CQlDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLywKKwkJCQlDMkNB
MzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNK
Sy5jcHAgKi8sCisJCQkpOworCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQkJcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dURjsKKwkJCXNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
CisJCX07CiAJCUNFNDY1MTZDMTlEQjFGQjQwMDNFQ0EwNSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNjE0LDYgKzE3MTAsNyBAQAogCQkJ
YnVpbGRSdWxlcyA9ICgKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJMUNEMTg3ODgx
RDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJNjVBRkEyOEUx
NjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkpOwogCQkJbmFt
ZSA9IFdURjsKQEAgLTE2NDQsMTIgKzE3NDEsMjcgQEAKIAkJCXRhcmdldHMgPSAoCiAJCQkJNUQy
NDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLywKIAkJCQk2NUFGQTE2RjE2MzBCOTc3MDAz
RDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLywKKwkJCQkxQ0QxODc4MTFENTU2OTVDMDBDQzdE
RUMgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0NDdBRUJEMThGQ0U1NjkwMEIzRDdGRiAv
KiBtYm1hbGxvYyAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICov
CiAKIC8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCisJCTFDRDE4
NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJ
CQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAy
MTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCSk7
CisJCQluYW1lID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNlcyI7CisJCQlvdXRwdXRQYXRocyA9
ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJ
CXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7QlVJ
TFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuY2QgXCIke0JVSUxUX1BST0RV
Q1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcblxuL2Jpbi9sbiAtc2ZoIFwiJHtTUkNST09U
fVwiIFdURlxuZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsgISAtZCBCcmVha2luZ1J1bGVzIF07
IHRoZW5cbiAgICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxuXG5pZiBbIFwiJE1BQ09TWF9ERVBM
T1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdIDsgdGhlblxuICAgIGV4cG9ydCBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQ9MFxuZWxzZVxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQ9MVxuZmlcblxuaWYgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEw
LjEwXCIgXSB8fCBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTFcIiBd
IHx8IFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMlwiIF0gfHwgWyBc
IiRTREtfVkVSU0lPTl9NQUpPUlwiID09IFwiOTAwMDBcIiBdIHx8IFsgXCIkU0RLX1ZFUlNJT05f
TUFKT1JcIiA9PSBcIjEwMDAwMFwiIF07IHRoZW5cbiAgICBleHBvcnQgSEFWRV9JQ1VHRU5CUks9
MFxuZWxzZVxuICAgIGV4cG9ydCBIQVZFX0lDVUdFTkJSSz0xXG5maVxuXG5pZiBbIFwiJHtBQ1RJ
T059XCIgPSBcImJ1aWxkXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtB
Q1RJT059XCIgPSBcImluc3RhbGxoZHJzXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGFw
aVwiIF07IHRoZW5cbm1ha2UgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwiV1RGL3d0Zi9EZXJpdmVk
U291cmNlcy5tYWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCBTREtS
T09UPVwiJHtTREtST09UfVwiXG5maSI7CisJCX07CiAJCTY1QUZBMTcwMTYzMEI5NzcwMDNENzIz
QyAvKiBDb3B5IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWls
ZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE3MDIsNiArMTgx
NCw3IEBACiAJCQkJRTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGls
aXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzkxNTFBODI1QjAwNDEyM0ZGIC8q
IENTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUMxNTFBODI1QjAwNDEyM0ZG
IC8qIEN1cnJlbnRUaW1lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0U5MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDczOUUxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGFMb2cuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThBNDczQTAxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGVNYXRoLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4QTQ3M0EyMTUxQTgyNUIwMDQxMjNGRiAvKiBEZWNpbWFsTnVtYmVyLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMTcxOCw2ICsxODMxLDE0IEBACiAJCQkJMUExRDhCOUUxNzMx
ODc5ODAwMTQxREE0IC8qIEZ1bmN0aW9uRGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyQ0NEODkyQTE1QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQThBNDczRDgxNTFBODI1QjAwNDEyM0ZGIC8qIEhhc2hUYWJsZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQjFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUQxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RjAxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFMTY0NkExQjZGRkM5NjAwNDAwRTdDIC8qIExvY2suY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY2MEYzMkYxREZDQkQxQjAwNDE2RDZDIC8qIExvY2tlZFByaW50U3RyZWFtLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0U1MTUxQTgyNUIwMDQxMjNGRiAvKiBNYWluVGhyZWFk
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTc5Myw2ICsxOTE0LDExIEBACiAJCQl0YXJnZXQgPSA1
RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovOwogCQkJdGFyZ2V0UHJveHkgPSAxNDQ3
QUVDMzE4RkNFNTcwMDBCM0Q3RkYgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9Owor
CQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsK
KwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQgPSAxQ0QxODc4MTFENTU2
OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovOworCQkJdGFyZ2V0UHJveHkgPSAxQ0Qx
ODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9Owog
CQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsK
IAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSA2NUFGQTE2RjE2MzBC
OTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLzsKQEAgLTE4MjIsNiArMTk0OCwzMCBA
QAogCQkJfTsKIAkJCW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFENTU2OTVD
MDBDQzdERUMgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsK
KwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2
IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJ
UFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7
CisJCX07CisJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0geworCQkJ
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5j
ZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87
CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1F
KSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTFDRDE4Nzg2MUQ1NTY5NUMw
MENDN0RFQyAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRp
b247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3
OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0gewor
CQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFBy
b2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9
IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25S
ZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29u
ZmlnICovOwpAQCAtMTkwNSw2ICsyMDU1LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklz
VmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwog
CQl9OworCQkxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBs
aXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJCQlp
c2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJ
CQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1
Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVD
IC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2li
bGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsK
IAkJNUQyNDdCNUMxNDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYUHJvamVjdCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7
CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3Uv
dW5pY29kZS91YnJrLmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaAppbmRleCBlOWMw
ZWY2MjdiNjcyNzlmODZlNDYwNDRiZjBmMjU3MTAyZTBjNmNkLi4xOTc1YjlkYmVkNDQzYTkyNzQz
NmYwYTI3OTI5YmE1OGFmODcxODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2Rl
L3VicmsuaAorKysgYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaApAQCAtMjQxLDYgKzI0
MSwzMSBAQCB1YnJrX29wZW5SdWxlcyhjb25zdCBVQ2hhciAgICAgKnJ1bGVzLAogICAgICAgICAg
ICAgICAgVUVycm9yQ29kZSAgICAgICpzdGF0dXMpOwogCiAvKioKKyAqIE9wZW4gYSBuZXcgVUJy
ZWFrSXRlcmF0b3IgZm9yIGxvY2F0aW5nIHRleHQgYm91bmRhcmllcyB1c2luZyBwcmVjb21waWxl
ZCBiaW5hcnkgcnVsZXMuCisgKiBPcGVuaW5nIGEgVUJyZWFrSXRlcmF0b3IgdGhpcyB3YXkgaXMg
c3Vic3RhbnRpYWxseSBmYXN0ZXIgdGhhbiB1c2luZyB1YnJrX29wZW5SdWxlcy4KKyAqIEJpbmFy
eSBydWxlcyBtYXkgYmUgb2J0YWluZWQgdXNpbmcgdWJya19nZXRCaW5hcnlSdWxlcy4gVGhlIGNv
bXBpbGVkIHJ1bGVzIGFyZSBub3QKKyAqIGNvbXBhdGlibGUgYWNyb3NzIGRpZmZlcmVudCBtYWpv
ciB2ZXJzaW9ucyBvZiBJQ1UsIG5vciBhY3Jvc3MgcGxhdGZvcm1zIG9mIGRpZmZlcmVudAorICog
ZW5kaWFubmVzcyBvciBkaWZmZXJlbnQgYmFzZSBjaGFyYWN0ZXIgc2V0IGZhbWlseSAoQVNDSUkg
dnMgRUJDRElDKS4KKyAqIEBwYXJhbSBiaW5hcnlSdWxlcyBBIHNldCBvZiBjb21waWxlZCBiaW5h
cnkgcnVsZXMgc3BlY2lmeWluZyB0aGUgdGV4dCBicmVha2luZworICogICAgICAgICAgICAgICAg
ICAgIGNvbnZlbnRpb25zLiBPd25lcnNoaXAgb2YgdGhlIHN0b3JhZ2UgY29udGFpbmluZyB0aGUg
Y29tcGlsZWQKKyAqICAgICAgICAgICAgICAgICAgICBydWxlcyByZW1haW5zIHdpdGggdGhlIGNh
bGxlciBvZiB0aGlzIGZ1bmN0aW9uLiBUaGUgY29tcGlsZWQKKyAqICAgICAgICAgICAgICAgICAg
ICBydWxlcyBtdXN0IG5vdCBiZSBtb2RpZmllZCBvciBkZWxldGVkIGR1cmluZyB0aGUgbGlmZSBv
ZiB0aGUKKyAqICAgICAgICAgICAgICAgICAgICBicmVhayBpdGVyYXRvci4KKyAqIEBwYXJhbSBy
dWxlc0xlbmd0aCBUaGUgbGVuZ3RoIG9mIGJpbmFyeVJ1bGVzIGluIGJ5dGVzOyBtdXN0IGJlID49
IDAuCisgKiBAcGFyYW0gdGV4dCAgICAgICAgVGhlIHRleHQgdG8gYmUgaXRlcmF0ZWQgb3Zlci4g
IE1heSBiZSBudWxsLCBpbiB3aGljaCBjYXNlCisgKiAgICAgICAgICAgICAgICAgICAgdWJya19z
ZXRUZXh0KCkgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSB0ZXh0IHRvIGJlIGl0ZXJhdGVkLgorICog
QHBhcmFtIHRleHRMZW5ndGggIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0ZXh0LCBvciAt
MSBpZiBudWxsLXRlcm1pbmF0ZWQuCisgKiBAcGFyYW0gc3RhdHVzICAgICAgUG9pbnRlciB0byBV
RXJyb3JDb2RlIHRvIHJlY2VpdmUgYW55IGVycm9ycy4KKyAqIEByZXR1cm4gICAgICAgICAgICBV
QnJlYWtJdGVyYXRvciBmb3IgdGhlIHNwZWNpZmllZCBydWxlcy4KKyAqIEBzZWUgdWJya19nZXRC
aW5hcnlSdWxlcworICogQGRyYWZ0IElDVSA1OQorICovCitVX0RSQUZUIFVCcmVha0l0ZXJhdG9y
KiBVX0VYUE9SVDIKK3Vicmtfb3BlbkJpbmFyeVJ1bGVzKGNvbnN0IHVpbnQ4X3QgKmJpbmFyeVJ1
bGVzLCBpbnQzMl90IHJ1bGVzTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNo
YXIgKiAgdGV4dCwgaW50MzJfdCB0ZXh0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVy
cm9yQ29kZSAqICAgc3RhdHVzKTsKKworLyoqCiAgKiBUaHJlYWQgc2FmZSBjbG9uaW5nIG9wZXJh
dGlvbgogICogQHBhcmFtIGJpIGl0ZXJhdG9yIHRvIGJlIGNsb25lZAogICogQHBhcmFtIHN0YWNr
QnVmZmVyIDxlbT5EZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUyLCB1c2UgTlVM
TC48L2VtPjxicj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggODFhZjkxMjc2MTA2YjgxMjg5MTdk
YjhjNzljZjI1NGIyZTRkOGNmMC4uZDkwZTBmMzhlYzNkOGY1ODM2MDY3MmU2YWM4ZDllNzA4YTE5
OGVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTMwMSw2ICszMDEsNDIgQEAgaWYgKE5PVCBV
U0VfU1lTVEVNX01BTExPQykKICAgICBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTIGJtYWxsb2Mp
CiBlbmRpZiAoKQogCitzZXQoV1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVMKKyAgICB0ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKKyAgICB0ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dAorICAgIHRleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0CisgICAgdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0CisgICAgdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0CisgICAg
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0
CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksu
dHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSksudHh0CispCisKK21hY3JvKEdFTkVSQVRFX0JSRUFLSU5HX1JVTEVTIF9pbnB1dCBfc3lt
Ym9sTmFtZSBfb3V0cHV0KQorICAgIGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVU
ICR7X291dHB1dH0KKyAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7V1RGX0RJUn0vU2NyaXB0cy9H
ZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKKyAgICAgICAgREVQRU5EUyAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJv
bG9ndWUudHh0ICR7X2lucHV0fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisgICAgICAgIENPTU1BTkQg
JHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZfRElSfS9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdS
dWxlU3RyaW5ncy5weSAtaW5jbHVkZURlZmluZXMgJHtfc3ltYm9sTmFtZX1SdWxlcyAke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
UHJvbG9ndWUudHh0ICR7X2lucHV0fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ID4gJHtfb3V0cHV0fQor
ICAgICAgICBWRVJCQVRJTSkKKyAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke19vdXRwdXR9
KQorICAgIEFERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7X2lucHV0fSAke19vdXRwdXR9KQorZW5k
bWFjcm8oKQorCitmb3JlYWNoIChfZmlsZSAke1dURl9CUkVBS0lOR19SVUxFU19TT1VSQ0VTfSkK
KyAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCisgICAg
R0VORVJBVEVfQlJFQUtJTkdfUlVMRVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7X2Zp
bGV9ICR7X25hbWV9ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvJHtf
bmFtZX0uY3BwKQorZW5kZm9yZWFjaCAoKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VU
UFVUICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLmNwcAorICAgIE1BSU5fREVQRU5ERU5DWSAke1dURl9ESVJ9L1Njcmlw
dHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CisgICAgREVQRU5EUyAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy50eHQKKyAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0v
U2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgLWluY2x1ZGVEZWZpbmVzIGN1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4
dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgPiAke0RFUklW
RURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAKKyAgICBWRVJCQVRJTSkKK2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7REVSSVZF
RF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLmNwcCkKK0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0Vf
RElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAk
e0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy5jcHApCisKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgdW5pY29kZS9p
Y3UvQ29sbGF0b3JJQ1UuY3BwCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YzI0YWE2NDFiMjE3OGNmNzJmNmYwYmRlYWExNGMzZjgzMTM4NDkxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMCwwICsxLDcy
IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitCUkVBS0lOR19SVUxF
U19GSUxFUyA9IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxl
cy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5icmsg
XAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5icmsgXAor
ICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmJyayBcCisg
ICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuYnJrIFwK
KyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuYnJrIFwK
KyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuYnJr
IFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuYnJr
IFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksu
YnJrCisKK0JSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TPSQoQlJFQUtJTkdfUlVMRVNfRklMRVM6
LmJyaz0uY3BwKQorCitpZmVxICgkKHNoZWxsICQoQ0MpIC1zdGQ9Z251KysxMSAteCBjKysgLUUg
LVAgLWRNICQoU0RLX0ZMQUdTKSAkKEZSQU1FV09SS19GTEFHUykgJChIRUFERVJfRkxBR1MpIC1J
ICQoV1RGKSAtaW5jbHVkZSAiJChXVEYpL3d0Zi9QbGF0Zm9ybS5oIiAvZGV2L251bGwgfCBncmVw
ICcgV1RGX1BMQVRGT1JNX0lPUyAnIHwgY3V0IC1kJyAnIC1mMyksIDEpCisgICAgV1RGX1BMQVRG
T1JNX0lPUyA9IDEKK2Vsc2UKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMAorZW5kaWYKKworaWZl
cSAoJChXVEZfUExBVEZPUk1fSU9TKSwgMSkKKwlBRERJVElPTkFMX0VNT0pJX1NVUFBPUlRfRk9S
X0NVUlNPUl9NT1ZFTUVOVCA9IDAKKwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMAorZWxz
ZQorCUFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5UID0gJChBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQpCisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyA9IDEKK2Vu
ZGlmCisKK0RFUEVOREVOQ0lFUyA9ICQoQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlMpCisKK2lm
ZXEgKCQoSEFWRV9JQ1VHRU5CUkspLCAxKQorREVQRU5ERU5DSUVTICs9ICQoQlJFQUtJTkdfUlVM
RVNfRklMRVMpCitlbmRpZgorCithbGwgOiAkKERFUEVOREVOQ0lFUykKKworQnJlYWtpbmdSdWxl
cy8lLmJyayA6IEJyZWFraW5nUnVsZXMvJS5wcAorCWljdWdlbmJyayAtYyAtciAkPCAtbyAkQAor
CitCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgOiBCcmVha2lu
Z1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcAorCXB5dGhvbiAkKFdURikvU2Ny
aXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgY3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzICQ8ID4gJEAKKworQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUuY3BwIDog
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUucHAKKwlweXRob24gJChXVEYpL1Njcmlw
dHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGxpbmVCcmVha0l0ZXJhdG9yJCpSdWxl
cyAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBw
IDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQpIC1ESEFWRV9FWFRSQV9JQ1VfTkFN
RURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRAICQ8CisKK0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCS1jYXQgJD8gfCB1bmlmZGVmIC1EQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVf
RVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzkwOGQzNTM2MGZl
Y2I1OGMzZWQyYTY5MWM0NjkwYzQ2NmQ4ZDlkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQK
QEAgLTAsMCArMSwxNzYgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykK
KyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBydWxlIHNldCBpcyBiYXNl
ZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRwOi8v
c291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3Nv
dXJjZS9kYXRhL2Jya2l0ci8+LgorIyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3Jp
Z2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5
ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOworIyAq
IFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHBy
ZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZl
bnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1
YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0aGF0
IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgg
a2F0YWthcmEgdm9pY2VkIG1hcmtzLgorIyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRp
Y2F0b3Igc3ltYm9scy4KKworJENSICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IENSfV07CiskTEYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsKKyRD
b250cm9sID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9pY2VN
YXJrcyA9IFtcdUZGOUVcdUZGOUZdOyAjIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9p
Y2VkIG1hcmtzCiskRXh0ZW5kICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5k
fSAkVm9pY2VNYXJrcyAtIFtcdTBFMzAgXHUwRTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07Cisk
U3BhY2luZ01hcmsgPSBbW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRF
eHRlbmRdOworJEwgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsKKyRW
ICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9IFtc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOworJExWICAgICAgPSBbXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IExWfV07CiskTFZUICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gTFZUfV07CiskSGluMCAgICA9IFtcdTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExl
dHRlciBBLC4uLixIYQorJEhpblYgICAgPSBcdTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZpcmFt
YQorJEhpbjEgICAgPSBbXHUwOTE1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4u
LEhhCiskQmVuMCAgICA9IFtcdTA5ODUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4uLixI
YQorJEJlblYgICAgPSBcdTA5Q0Q7ICMgQmVuZ2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAgPSBb
XHUwOTk1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9IFtc
dTBBMDUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0gXHUw
QTREOyAjIEd1cm11a2hpIFNpZ24gVmlyYW1hCiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5XTsg
IyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5XTsg
IyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKKyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFyYXRp
IFNpZ24gVmlyYW1hCiskR3VqMSAgICA9IFtcdTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0
ZXIgS2EsLi4uLEhhCiskT3JpMCAgICA9IFtcdTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIg
QSwuLi4sSGEKKyRPcmlWICAgID0gXHUwQjREOyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3JpMSAg
ICA9IFtcdTBCMTUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAgICA9
IFtcdTBDMDUtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9IFx1
MEM0RDsgIyBUZWx1Z3UgU2lnbiBWaXJhbWEKKyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzldOyAj
IFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCiskS2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsgIyBL
YW5uYWRhIExldHRlciBBLC4uLixIYQorJEthblYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBTaWdu
IFZpcmFtYQorJEthbjEgICAgPSBbXHUwQzk1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwu
Li4sSGEKKyRNYWwwICAgID0gW1x1MEQwNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwu
Li4sSGEgCiskTWFsViAgICA9IFx1MEQ0RDsgIyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRNYWwx
ICAgID0gW1x1MEQxNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRSSSAg
ICAgID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9y
cworJFpXSiAgICAgPSBcdTIwMEQ7ICMgWmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9IFtc
dUZFMEZdOyAjIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgorCisjaWYgQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUy
NkY5IFx1Mjc2NCBcdTAwMDFGMzA4IFx1MDAwMUYzQzMtXHUwMDAxRjNDNCBcdTAwMDFGM0NBLVx1
MDAwMUYzQ0MgXHUwMDAxRjNGMyBcdTAwMDFGNDQxIFx1MDAwMUY0NjYtXHUwMDAxRjQ2OSBcdTAw
MDFGNDZFLVx1MDAwMUY0NkYgXHUwMDAxRjQ3MSBcdTAwMDFGNDczIFx1MDAwMUY0NzcgXHUwMDAx
RjQ4MS1cdTAwMDFGNDgyIFx1MDAwMUY0ODYtXHUwMDAxRjQ4NyBcdTAwMDFGNDhCIFx1MDAwMUY1
NzUgXHUwMDAxRjVFOCBcdTAwMDFGNjQ1LVx1MDAwMUY2NDcgXHUwMDAxRjY0QiBcdTAwMDFGNjRE
LVx1MDAwMUY2NEUgXHUwMDAxRjZBMyBcdTAwMDFGNkI0LVx1MDAwMUY2QjYgXHUyNjk1LVx1MjY5
NiBcdTI3MDggXHUwMDAxRjMzRSBcdTAwMDFGMzczIFx1MDAwMUYzOTMgXHUwMDAxRjNBNCBcdTAw
MDFGM0E4IFx1MDAwMUYzRUIgXHUwMDAxRjNFRCBcdTAwMDFGNEJCLVx1MDAwMUY0QkMgXHUwMDAx
RjUyNyBcdTAwMDFGNTJDIFx1MDAwMUY2ODAgXHUwMDAxRjY5MiBcdTAwMDFGOTI2IFx1MDAwMUY5
MzctXHUwMDAxRjkzOSBcdTAwMDFGOTNDLVx1MDAwMUY5M0VdOyAjIEVtb2ppIHRoYXQgcGFydGlj
aXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjZG
OSBcdTI3MEEtXHUyNzBEIFx1MDAwMUYzODUgXHUwMDAxRjNDMy1cdTAwMDFGM0M0IFx1MDAwMUYz
Q0EgXHUwMDAxRjNDQiBcdTAwMDFGNDQyLVx1MDAwMUY0NDMgXHUwMDAxRjQ0Ni1cdTAwMDFGNDUw
IFx1MDAwMUY0NjYtXHUwMDAxRjQ3OCBcdTAwMDFGNDdDIFx1MDAwMUY0ODEtXHUwMDAxRjQ4MyBc
dTAwMDFGNDg1LVx1MDAwMUY0ODcgXHUwMDAxRjRBQSBcdTAwMDFGNTc1IFx1MDAwMUY1OTAgXHUw
MDAxRjU5NSBcdTAwMDFGNTk2IFx1MDAwMUY2NDUtXHUwMDAxRjY0NyBcdTAwMDFGNjRCLVx1MDAw
MUY2NEYgXHUwMDAxRjZBMyBcdTAwMDFGNkI0LVx1MDAwMUY2QjYgXHUwMDAxRjZDMCBcdTAwMDFG
OTE4IFx1MDAwMUYzQzIgXHUwMDAxRjNDNyBcdTAwMDFGM0NDIFx1MDAwMUY1NzQgXHUwMDAxRjU3
QSBcdTAwMDFGNkNDIFx1MDAwMUY5MTktXHUwMDAxRjkxRSBcdTAwMDFGOTI2IFx1MDAwMUY5MzAg
XHUwMDAxRjkzMy1cdTAwMDFGOTM5IFx1MDAwMUY5M0MtXHUwMDAxRjkzRV0gOyAjIEVtb2ppIHRo
YXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2Vsc2UKKworICAgICRFbW9qaUZvclNl
cXMgPSBbXHUyNzY0IFx1MDAwMUY0NjYtXHUwMDAxRjQ2OSBcdTAwMDFGNDhCXTsgIyBFbW9qaSB0
aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1
MjYxRCBcdTI3MEEtXHUyNzBDIFx1MDAwMUYzODUgXHUwMDAxRjNDMy1cdTAwMDFGM0M0IFx1MDAw
MUYzQzcgXHUwMDAxRjNDQSBcdTAwMDFGNDQyLVx1MDAwMUY0NDMgXHUwMDAxRjQ0Ni1cdTAwMDFG
NDUwIFx1MDAwMUY0NjYtXHUwMDAxRjQ2OSBcdTAwMDFGNDZFLVx1MDAwMUY0NzggXHUwMDAxRjQ3
QyBcdTAwMDFGNDgxLVx1MDAwMUY0ODMgXHUwMDAxRjQ4NS1cdTAwMDFGNDg3IFx1MDAwMUY0QUEg
XHUwMDAxRjU5NiBcdTAwMDFGNjQ1LVx1MDAwMUY2NDcgXHUwMDAxRjY0Qi1cdTAwMDFGNjRGIFx1
MDAwMUY2QTMgXHUwMDAxRjZCNC1cdTAwMDFGNkI2IFx1MDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0
IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xV
MDAwMUYzRkItXFUwMDAxRjNGRl07ICMgRml0enBhdHJpY2sgbW9kaWZpZXJzCishIWNoYWluOwor
CisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIVJJTm9DaGFpbjsKKworI2Vu
ZGlmCisKKyEhZm9yd2FyZDsKKyRDUiAkTEY7CiskTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOwor
KCRMViB8ICRWKSAoJFYgfCAkVCk7CisoJExWVCB8ICRUKSAkVDsKKworI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAorCisgICAgJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsKKyAgICAkUkkgJFJJ
ICRFeHRlbmQqOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250
cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKworI2Vsc2UKKworICAgIFteJENvbnRyb2wgJENS
ICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKyAg
ICAkUkkgJFJJIC8gJFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMCAkSGluViAk
SGluMTsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKKyRCZW4wICRCZW5WICRCZW4xOyAj
IEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQorJFBhbjAgJFBhblYgJFBhbjE7ICMgR3VybXVraGkg
VmlyYW1hIChmb3J3YXJkKQorJEd1ajAgJEd1alYgJEd1ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChm
b3J3YXJkKQorJE9yaTAgJE9yaVYgJE9yaTE7ICMgT3JpeWEgVmlyYW1hIChmb3J3YXJkKQorJFRl
bDAgJFRlbFYgJFRlbDE7ICMgVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKKyRLYW4wICRLYW5WICRL
YW4xOyAjIEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQorJE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFs
YXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKKyRaV0ogJEVtb2ppRm9yU2VxczsgIyBEb250IGJyZWFr
IGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlN
b2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2
YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorISFyZXZlcnNlOwor
JExGICRDUjsKKygkTCB8ICRWIHwgJExWIHwgJExWVCkgJEw7CisoJFYgfCAkVCkgKCRMViB8ICRW
KTsKKyRUICgkTFZUIHwgJFQpOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAg
ICAkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kKiAkUkkg
JFJJOworICAgICRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5n
TWFyayBbXiRDb250cm9sICRDUiAkTEZdOworCisjZWxzZQorCisgICAgJEV4dGVuZCAgICAgIFte
JENvbnRyb2wgJENSICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07
CisgICAgJFJJICRSSSAvICRSSSAkUkk7CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4x
ICRIaW5WICRIaW4wOyAjIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKKyRCZW4xICRCZW5W
ICRCZW4wOyAjIEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKKyRQYW4xICRQYW5WICRQYW4wOyAj
IEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCiskR3VqMSAkR3VqViAkR3VqMDsgIyBHdWphcmF0
aSBWaXJhbWEgKGJhY2t3YXJkKQorJE9yaTEgJE9yaVYgJE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1h
IChiYWNrd2FyZCkKKyRUZWwxICRUZWxWICRUZWwwOyAjIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJk
KQorJEthbjEgJEthblYgJEthbjA7ICMgS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQorJE1hbDEg
JE1hbFYgJE1hbDA7ICMgTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCiskRW1vamlGb3JTZXFz
ICRaV0o7ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlNb2RzICRF
bW9qaVZhcj8gJEVtb2ppRm9yTW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1v
amkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9k
aWZpZXIKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgISFzYWZlX3JldmVy
c2U7CisgICAgJFJJICRSSSs7CisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9y
TW9kczsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKyAgICAkUkkgJFJJKzsKKyAgICAkRW1vamlGb3JN
b2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOworCisjZWxzZQorCisgICAgWyRFbW9qaVZhciAk
RW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIg
JEVtb2ppTW9kc10rOworICAgICEhc2FmZV9yZXZlcnNlOworICAgICEhc2FmZV9mb3J3YXJkOwor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTUxZTEz
N2IyNzEyZDNmYzllZWE4MjM0YTY1ODNkZGM1ODllYWZhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUu
dHh0CkBAIC0wLDAgKzEsMzcyIEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5v
cmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQUkgPSBbOkxpbmVCcmVhayA9
IEFtYmlndW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07CiskQkEgPSBb
WzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxpbmVCcmVh
ayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6
XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENCID0gWzpMaW5lQnJlYWsg
PSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0
aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1AgPSBbOkxp
bmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJp
YWdlX1JldHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9T
VUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9O
QU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsKKwor
I2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNlbmRpZgor
CiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpd
OworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVv
Z3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElOID0gW1s6TGluZUJyZWFr
ID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhf
TnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07CiskSlYgPSBb
OkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYgPSBbOkxp
bmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsK
KyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICRO
U19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxpbmVCcmVh
ayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVt
ZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpd
IC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJID0gW1xV
MDAwMUYxRTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4
dDpdOworJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGluZUJyZWFr
ID0gU3BhY2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOworJFdKID0g
WzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3du
Ol07CiskWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7CiskRW1v
amlWYXIgPSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRF
bW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFx1MDAwMUYzMDggXHUw
MDAxRjNDMy1cdTAwMDFGM0M0IFx1MDAwMUYzQ0EtXHUwMDAxRjNDQyBcdTAwMDFGM0YzIFx1MDAw
MUY0NDEgXHUwMDAxRjQ2Ni1cdTAwMDFGNDY5IFx1MDAwMUY0NkUtXHUwMDAxRjQ2RiBcdTAwMDFG
NDcxIFx1MDAwMUY0NzMgXHUwMDAxRjQ3NyBcdTAwMDFGNDgxLVx1MDAwMUY0ODIgXHUwMDAxRjQ4
Ni1cdTAwMDFGNDg3IFx1MDAwMUY0OEIgXHUwMDAxRjU3NSBcdTAwMDFGNUU4IFx1MDAwMUY2NDUt
XHUwMDAxRjY0NyBcdTAwMDFGNjRCIFx1MDAwMUY2NEQtXHUwMDAxRjY0RSBcdTAwMDFGNkEzIFx1
MDAwMUY2QjQtXHUwMDAxRjZCNiBcdTI2OTUtXHUyNjk2IFx1MjcwOCBcdTAwMDFGMzNFIFx1MDAw
MUYzNzMgXHUwMDAxRjM5MyBcdTAwMDFGM0E0IFx1MDAwMUYzQTggXHUwMDAxRjNFQiBcdTAwMDFG
M0VEIFx1MDAwMUY0QkItXHUwMDAxRjRCQyBcdTAwMDFGNTI3IFx1MDAwMUY1MkMgXHUwMDAxRjY4
MCBcdTAwMDFGNjkyIFx1MDAwMUY5MjYgXHUwMDAxRjkzNy1cdTAwMDFGOTM5IFx1MDAwMUY5M0Mt
XHUwMDAxRjkzRV07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisg
ICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3MEQgXHUwMDAxRjM4
NSBcdTAwMDFGM0MzLVx1MDAwMUYzQzQgXHUwMDAxRjNDQSBcdTAwMDFGM0NCIFx1MDAwMUY0NDIt
XHUwMDAxRjQ0MyBcdTAwMDFGNDQ2LVx1MDAwMUY0NTAgXHUwMDAxRjQ2Ni1cdTAwMDFGNDc4IFx1
MDAwMUY0N0MgXHUwMDAxRjQ4MS1cdTAwMDFGNDgzIFx1MDAwMUY0ODUtXHUwMDAxRjQ4NyBcdTAw
MDFGNEFBIFx1MDAwMUY1NzUgXHUwMDAxRjU5MCBcdTAwMDFGNTk1IFx1MDAwMUY1OTYgXHUwMDAx
RjY0NS1cdTAwMDFGNjQ3IFx1MDAwMUY2NEItXHUwMDAxRjY0RiBcdTAwMDFGNkEzIFx1MDAwMUY2
QjQtXHUwMDAxRjZCNiBcdTAwMDFGNkMwIFx1MDAwMUY5MTggXHUwMDAxRjNDMiBcdTAwMDFGM0M3
IFx1MDAwMUYzQ0MgXHUwMDAxRjU3NCBcdTAwMDFGNTdBIFx1MDAwMUY2Q0MgXHUwMDAxRjkxOS1c
dTAwMDFGOTFFIFx1MDAwMUY5MjYgXHUwMDAxRjkzMCBcdTAwMDFGOTMzLVx1MDAwMUY5MzkgXHUw
MDAxRjkzQy1cdTAwMDFGOTNFXTsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZp
ZXJzCisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcdTAwMDFGNDY2LVx1
MDAwMUY0NjkgXHUwMDAxRjQ4Ql07CisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBB
LVx1MjcwQyBcdTAwMDFGMzg1IFx1MDAwMUYzQzMtXHUwMDAxRjNDNCBcdTAwMDFGM0M3IFx1MDAw
MUYzQ0EgXHUwMDAxRjQ0Mi1cdTAwMDFGNDQzIFx1MDAwMUY0NDYtXHUwMDAxRjQ1MCBcdTAwMDFG
NDY2LVx1MDAwMUY0NjkgXHUwMDAxRjQ2RS1cdTAwMDFGNDc4IFx1MDAwMUY0N0MgXHUwMDAxRjQ4
MS1cdTAwMDFGNDgzIFx1MDAwMUY0ODUtXHUwMDAxRjQ4NyBcdTAwMDFGNEFBIFx1MDAwMUY1OTYg
XHUwMDAxRjY0NS1cdTAwMDFGNjQ3IFx1MDAwMUY2NEItXHUwMDAxRjY0RiBcdTAwMDFGNkEzIFx1
MDAwMUY2QjQtXHUwMDAxRjZCNiBcdTAwMDFGNkMwXTsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBh
dHJpY2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUw
MDAxRjNGRl07CiskZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07
CiskQUxQbHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOworJEFMY20gPSAkQUxQbHVzICRDTSo7
CiskQkFjbSA9ICRCQSAkQ00qOworJEJCY20gPSAkQkIgJENNKjsKKyRCMmNtID0gJEIyICRDTSo7
CiskQ0xjbSA9ICRDTCAkQ00qOworJENQY20gPSAkQ1AgJENNKjsKKyRFWGNtID0gJEVYICRDTSo7
CiskR0xjbSA9ICRHTCAkQ00qOworJEhMY20gPSAkSEwgJENNKjsKKyRIWWNtID0gJEhZICRDTSo7
CiskSDJjbSA9ICRIMiAkQ00qOworJEgzY20gPSAkSDMgJENNKjsKKyRJRGNtID0gJElEICRDTSo7
CiskSU5jbSA9ICRJTiAkQ00qOworJElTY20gPSAkSVMgJENNKjsKKyRKTGNtID0gJEpMICRDTSo7
CiskSlZjbSA9ICRKViAkQ00qOworJEpUY20gPSAkSlQgJENNKjsKKyROU2NtID0gJE5TICRDTSo7
CiskTlVjbSA9ICROVSAkQ00qOworJE9QY20gPSAkT1AgJENNKjsKKyRQT2NtID0gJFBPICRDTSo7
CiskUFJjbSA9ICRQUiAkQ00qOworJFFVY20gPSAkUVUgJENNKjsKKyRSSWNtID0gJFJJICRDTSo7
CiskU1ljbSA9ICRTWSAkQ00qOworJFdKY20gPSAkV0ogJENNKjsKKworISFmb3J3YXJkOworJENB
Tl9DTSA9IFteJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRDQU5UX0NNID0gWyRTUCAk
QksgJENSICRMRiAkTkwgJFpXICRDTV07CiskQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYg
JE5MICRaVyAkU1BdOworJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRTWSAk
V0ogJEdMICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsKKyRBTF9GT0xMT1cg
PSBbJEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOworJExCNEJyZWFrcyA9IFskQksgJENS
ICRMRiAkTkxdOworJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5MXTsKKyRMQjhCcmVh
a3MgPSBbJExCNEJyZWFrcyAkWlddOworJExCOE5vbkJyZWFrcyA9IFtbJExCNE5vbkJyZWFrc10g
LSBbJFpXXV07CiskTEIxOE5vbkJyZWFrcyA9IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOworJExC
MThCcmVha3MgPSBbJExCOEJyZWFrcyAkU1BdOworJExCMjBOb25CcmVha3MgPSBbJExCMThOb25C
cmVha3MgLSAkQ0JdOworJEFMUGx1cyAkQ00rOworJEJBICRDTSs7CiskQkIgJENNKzsKKyRCMiAk
Q00rOworJENMICRDTSs7CiskQ1AgJENNKzsKKyRFWCAkQ00rOworJEdMICRDTSs7CiskSEwgJENN
KzsKKyRIWSAkQ00rOworJEgyICRDTSs7CiskSDMgJENNKzsKKyRJRCAkQ00rOworJElOICRDTSs7
CiskSVMgJENNKzsKKyRKTCAkQ00rOworJEpWICRDTSs7CiskSlQgJENNKzsKKyROUyAkQ00rOwor
JE5VICRDTSs7CiskT1AgJENNKzsKKyRQTyAkQ00rOworJFBSICRDTSs7CiskUVUgJENNKzsKKyRS
SSAkQ00rOworJFNZICRDTSs7CiskV0ogJENNKzsKKyRDUiAkTEYgezEwMH07CiskTEI0Tm9uQnJl
YWtzPyAkTEI0QnJlYWtzIHsxMDB9OworJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEwMH07Cisk
Q00rICRMQjRCcmVha3MgezEwMH07CiskTEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsKKyRDQU5fQ00g
JENNKiBbJFNQICRaV107CiskQ00rIFskU1AgJFpXXTsKKyRFbW9qaUZvclNlcXMgJEVtb2ppVmFy
PyAkRW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7CiskQ0FOX0NNICRDTSs7CiskQ00rOwor
JENBTl9DTSAkQ00qICRXSmNtOworJExCOE5vbkJyZWFrcyAkV0pjbTsKKyRDTSsgJFdKY207Cisk
V0pjbSAkQ0FOVF9DTTsKKyRXSmNtICRDQU5fQ00gJENNKjsKKyRHTGNtICRDQU5fQ00gJENNKjsK
KyRHTGNtICRDQU5UX0NNOworW1skTEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSog
JEdMY207CiskQ00rIEdMY207CiskTEI4Tm9uQnJlYWtzICRDTDsKKyRDQU5fQ00gJENNKiAkQ0w7
CiskQ00rICRDTDsKKyRMQjhOb25CcmVha3MgJENQOworJENBTl9DTSAkQ00qICRDUDsKKyRDTSsg
JENQOworJExCOE5vbkJyZWFrcyAkRVg7CiskQ0FOX0NNICRDTSogJEVYOworJENNKyAkRVg7Cisk
TEI4Tm9uQnJlYWtzICRJUzsKKyRDQU5fQ00gJENNKiAkSVM7CiskQ00rICRJUzsKKyRMQjhOb25C
cmVha3MgJFNZOworJENBTl9DTSAkQ00qICRTWTsKKyRDTSsgJFNZOworJE9QY20gJFNQKiAkQ0FO
X0NNICRDTSo7CiskT1BjbSAkU1AqICRDQU5UX0NNOworJE9QY20gJFNQKyAkQ00rICRBTF9GT0xM
T1c/OworJFFVY20gJFNQKiAkT1BjbTsKKygkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOworJEIy
Y20gJFNQKiAkQjJjbTsKKyRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207CiskQ00rICRRVWNtOwor
JFFVY20gLj87CiskUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00qOworJExCMjBOb25CcmVha3MgJENN
KiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsgCiskQkJjbSBbXiRDQl07CiskQkJjbSAkTEIyME5v
bkJyZWFrcyAkQ00qOworJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87CiskU1ljbSAkSExj
bTsKKygkQUxjbSB8ICRITGNtKSAkSU5jbTsKKyRDTSsgJElOY207CiskRVhjbSAkSU5jbTsKKyRJ
RGNtICRJTmNtOworJElOY20gJElOY207CiskTlVjbSAkSU5jbTsKKyRJRGNtICRQT2NtOworJEFM
Y20gJE5VY207CiskSExjbSAkTlVjbTsKKyRDTSsgJE5VY207CiskTlVjbSAkQUxjbTsKKyROVWNt
ICRITGNtOworJFBSY20gJElEY207CiskUFJjbSAoJEFMY20gfCAkSExjbSk7CiskUE9jbSAoJEFM
Y20gfCAkSExjbSk7CisoJFBSY20gfCAkUE9jbSk/ICgkT1BjbSB8ICRIWWNtKT8gJE5VY20gKCRO
VWNtIHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRDUGNtKT8gKCRQUmNtIHwgJFBPY20pPzsK
KyRKTGNtICgkSkxjbSB8ICRKVmNtIHwgJEgyY20gfCAkSDNjbSk7CisoJEpWY20gfCAkSDJjbSkg
KCRKVmNtIHwgJEpUY20pOworKCRKVGNtIHwgJEgzY20pICRKVGNtOworKCRKTGNtIHwgJEpWY20g
fCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOworKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8
ICRIMmNtIHwgJEgzY20pICRQT2NtOworJFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRI
MmNtIHwgJEgzY20pOworKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNtKTsKKyRDTSsgKCRB
TGNtIHwgJEhMY20pOworJElTY20gKCRBTGNtIHwgJEhMY20pOworKCRBTGNtIHwgJEhMY20gfCAk
TlVjbSkgJE9QY207CiskQ00rICRPUGNtOworJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7
CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRSSWNtICRSSWNtOworCisj
ZW5kaWYKKworJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7CisKKyEhcmV2ZXJz
ZTsKKyRDTSsgJEFMUGx1czsKKyRDTSsgJEJBOworJENNKyAkQkI7CiskQ00rICRCMjsKKyRDTSsg
JENMOworJENNKyAkQ1A7CiskQ00rICRFWDsKKyRDTSsgJEdMOworJENNKyAkSEw7CiskQ00rICRI
WTsKKyRDTSsgJEgyOworJENNKyAkSDM7CiskQ00rICRJRDsKKyRDTSsgJElOOworJENNKyAkSVM7
CiskQ00rICRKTDsKKyRDTSsgJEpWOworJENNKyAkSlQ7CiskQ00rICROUzsKKyRDTSsgJE5VOwor
JENNKyAkT1A7CiskQ00rICRQTzsKKyRDTSsgJFBSOworJENNKyAkUVU7CisKKyNpZiBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRDTSsgJFJJOworCisjZW5kaWYKKworJENNKyAkU1k7
CiskQ00rICRXSjsKKyRDTSs7CiskQUxfRk9MTE9XICRDTSsgLyAoWyRCSyAkQ1IgJExGICROTCAk
Wlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14kT1AgJENNICRTUF0gfCBb
JEFMIHtlb2Z9XSkpOworWyRQUl0gLyAkQ00rIFskQksgJENSICRMRiAkTkwgJFpXICRTUCB7ZW9m
fV07CiskTEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtzLSRDTV07CiskTEI0QnJlYWtzICRDTSsgJENB
Tl9DTTsKKyRMRiAkQ1I7CitbJFNQICRaV10gWyRMQjROb25CcmVha3MtJENNXTsKK1skU1AgJFpX
XSAkQ00rICRDQU5fQ007CiskRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2ppVmFy
PyAkRW1vamlGb3JTZXFzOworJENNKyAkQ0FOX0NNOworJENNKiAkV0ogJENNKiAkQ0FOX0NNOwor
JENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsKKyRDQU5UX0NNICRDTSogJFdKOworJENNKiAk
Q0FOX0NNICRDTSogJFdKOworJENNKiAkR0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAk
QkEgJEhZXV07CiskQ0FOVF9DTSAkQ00qICRHTDsKKyRDTSogJENBTl9DTSAkQ00qICRHTDsKKyRD
TCAkQ00rICRDQU5fQ007CiskQ1AgJENNKyAkQ0FOX0NNOworJEVYICRDTSsgJENBTl9DTTsKKyRJ
UyAkQ00rICRDQU5fQ007CiskU1kgJENNKyAkQ0FOX0NNOworJENMIFskTEI4Tm9uQnJlYWtzLSRD
TV07CiskQ1AgWyRMQjhOb25CcmVha3MtJENNXTsKKyRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOwor
JElTIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskU1kgWyRMQjhOb25CcmVha3MtJENNXTsKK1skQ0wg
JENQICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7IAorJENNKiAkQ0FOX0NNICRTUCog
JENNKiAkT1A7CiskQ0FOVF9DTSAkU1AqICRDTSogJE9QOworJEFMX0ZPTExPVz8gJENNKyAkU1Ag
JFNQKiAkQ00qICRPUDsKKyRBTF9GT0xMT1dfTk9DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskQ00q
ICRBTF9GT0xMT1dfQ00gJENNKyAkU1ArICRDTSogJE9QOworJFNZICRDTSAkU1ArICRPUDsKKyRD
TSogJE9QICRTUCogJENNKiAkUVU7CiskQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7Cisk
Q00qICRCMiAkU1AqICRDTSogJEIyOworJENNKiAkUVUgJENNKiAkQ0FOX0NNOworJENNKiAkUVUg
JExCMThOb25CcmVha3M7CiskQ00qICRDQU5fQ00gJENNKiAkUVU7CiskQ0FOVF9DTSAkQ00qICRR
VTsKKyRDTSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBbJExCMjBOb25CcmVha3MtJENNXTsKKyRD
TSogWyRMQjIwTm9uQnJlYWtzLSRDTV0gJENNKiAkQkI7CitbXiRDQl0gJENNKiAkQkI7CitbXiRD
Ql0gJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsKKyRDTSogJEhMICRDTSogJFNZOworJENNKiAk
SU4gJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICRJTiAkQ00qICRFWDsKKyRDTSogJElOICRD
TSogJElEOworJENNKiAkSU4gJENNKiAkSU47CiskQ00qICRJTiAkQ00qICROVTsKKyRDTSogJFBP
ICRDTSogJElEOworJENNKiAkTlUgJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICgkQUxQbHVz
IHwgJEhMKSAkQ00qICROVTsKKyRDTSogJElEICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRI
TCkgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQTzsKKygkQ00qICgkUFIg
fCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElTIHwgJFNZKSkqICRD
TSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykpPzsKKyRDTSogKCRI
MyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7CiskQ00qICgkSlQgfCAkSlYpICRDTSogKCRI
MiB8ICRKVik7CiskQ00qICRKVCAkQ00qICgkSDMgfCAkSlQpOworJENNKiAkSU4gJENNKiAoJEgz
IHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsKKyRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRK
VCB8ICRKViB8ICRKTCk7CiskQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSog
JFBSOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICgk
QUxQbHVzIHwgJEhMKSAkQ00qICRJUzsKKyRDTSogJE9QICRDTSogKCRBTFBsdXMgfCAkSEwgfCAk
TlUpOworJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7CisKKyNpZiBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRDTSogJFJJICRDTSogJFJJOworCisjZW5kaWYKKwor
JEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7CisKKyEhc2FmZV9mb3J3YXJkOwor
WyRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRTUCAkZGljdGlvbmFyeV0rIFte
JENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJGRpY3Rpb25hcnldOworJGRpY3Rp
b25hcnkgJGRpY3Rpb25hcnk7CisgICAgCishIXNhZmVfcmV2ZXJzZTsKKyRDTSsgW14kQ00gJEJL
ICRDUiAkTEYgJE5MICRaVyAkU1BdOworJENNKyAkU1AgLyAuOworJFNQKyAkQ00qICRPUDsKKyRT
UCsgJENNKiAkUVU7CiskU1ArICRDTSogKCRDTCB8ICRDUCk7CiskU1ArICRDTSogJEIyOworJENN
KiAoJEhZIHwgJEJBKSAkQ00qICRITDsKKygkQ00qICgkSVMgfCAkU1kpKSsgJENNKiAkTlU7Ciso
JENMIHwgJENQKSAkQ00qICgkTlUgfCAkSVMgfCAkU1kpOworJGRpY3Rpb25hcnkgJGRpY3Rpb25h
cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWIzZjY2ZjQyYWYx
MzhlZDU4ZmY0MjFmNjc2OGQ4ZmQ1ODAxMjgyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApA
QCAtMCwwICsxLDM4IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisj
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCishIWNoYWluOworISFMQkNNTm9DaGFpbjsK
KyEhbG9va0FoZWFkSGFyZEJyZWFrOworCisjaWYgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUwor
CisgICAgJENKID0gWzpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjpdOwor
CisjZWxzZQorCisgICAgJENKID0gW1x1MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2
M1x1MzA4M1x1MzA4NVx1MzA4N1x1MzA4RVx1MzA5NVx1MzA5Nlx1MzBBMVx1MzBBM1x1MzBBNVx1
MzBBN1x1MzBBOVx1MzBDM1x1MzBFM1x1MzBFNVx1MzBFN1x1MzBFRVx1MzBGNVx1MzBGNlx1MzBG
Q1x1MzFGMFx1MzFGMVx1MzFGMlx1MzFGM1x1MzFGNFx1MzFGNVx1MzFGNlx1MzFGN1x1MzFGOFx1
MzFGOVx1MzFGQVx1MzFGQlx1MzFGQ1x1MzFGRFx1MzFGRVx1MzFGRlx1RkY2N1x1RkY2OFx1RkY2
OVx1RkY2QVx1RkY2Qlx1RkY2Q1x1RkY2RFx1RkY2RVx1RkY2Rlx1RkY3MF07CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwN2MwY2E1YWE3YjJmZmJm
OGIyY2Q5MDkyYWE1ZjNlMWRiYTQwOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKQEAgLTAs
MCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5
cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVY
X1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOwor
JE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOwor
JElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRiOGYwZmY1MTg1NmQ5
N2M5YzE0ZTEyMTYzNzM0ZmRmYzk3YzljYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0
CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykK
KyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEz
XTsKKyRFWF9TVUIgPSBbXHUwMDIxXHUwMDNGXHVGRjAxXHVGRjFGXTsKKyRJRF9TVUIgPSAnJzsK
KyRJTl9TVUIgPSBbXHUyMDI1XHUyMDI2XTsKKyRJU19TVUIgPSBbXHUwMDNBXHUwMDNCXTsKKyRO
U19TVUIgPSBbXHUyMDNDXHUyMDQ3XHUyMDQ4XHUyMDQ5XHUzMDA1XHUzMDFDXHUzMDNCXHUzMDlE
XHUzMDlFXHUzMEEwXHUzMEZCXHUzMEZEXHUzMEZFXHVGRjFBXHVGRjFCXHVGRjY1XTsKKyRQT19T
VUIgPSBbXHUwMDI1XHUwMEEyXHUwMEIwXHUyMDMwXHUyMDMyXHUyMDMzXHUyMTAzXHVGRjA1XHVG
RkUwXTsKKyRQUl9TVUIgPSBbXHUwMDI0XHUwMEEzXHUwMEE1XHUyMEFDXHUyMTE2XHVGRjA0XHVG
RkUxXHVGRkU1XTsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVYX1NVQiAkSU5fU1VCICRJU19T
VUIgJE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZU5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2JiYzhhODgxNWU0
ZDBkY2ZiOTYwYzExMmY2MGE4MzhkM2E0Mjg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNK
Sy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUu
b3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVY
X1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElT
X1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMDVcdTMwM0JcdTMwOURcdTMwOUVcdTMwRkRcdTMw
RkVdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJElOX1NV
QiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNzQyODc5ZGQxZjgyZWI2MmQyOGQ4YWE3YmNkZGY0NDZkMDczODdm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5
OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAw
OSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9T
VUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQ
Ul9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDdjMGNhNWFhN2IyZmZi
ZjhiMmNkOTA5MmFhNWYzZTFkYmE0MDkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0
CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykK
KyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEz
XTsKKyRFWF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIg
PSAnJzsKKyROU19TVUIgPSBbXHUzMDFDXHUzMEEwXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIg
PSAnJzsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTJjZjZhMDgyNmFkYTRlZGNmY2YzOTQzYjY4OWY4YzA2ZTBiZDc0OAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsTm9uQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25v
bGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9i
aWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFf
U1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7Cisk
SVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7
CiskSURfQUREID0gWyRDSl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50
eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc0Mjg3OWRkMWY4MmViNjJkMjhkOGFhN2Jj
ZGRmNDQ2ZDA3Mzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dApAQCAtMCwwICsx
LDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdo
dCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJp
Z2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURf
U1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7Cisk
UE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRD
Sl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjc0Mjg3OWRkMWY4MmViNjJkMjhkOGFhN2JjZGRmNDQ2ZDA3Mzg3ZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9y
Y2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0g
Jyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VC
ID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IGIwZGJlNTk3ZjM5MWYxMzJjMjhlNjQyZjdk
OTc1YjExMGY3NWY4MjYuLjUyNzBhMjU5MWFjOWJjODAwNTkzYzUyZDFiNWNiYTc1NzQ3NGE2NTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCkBAIC0zMSw5ICsz
MSw2IEBACiAjaW5jbHVkZSA8dW5pY29kZS91YnJrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgogCi0vLyBGSVhNRTogVGhpcyBuZWVkcyBhIGJldHRlciBuYW1lCi0jZGVm
aW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkpCi0KIG5h
bWVzcGFjZSBXVEYgewogCiAvLyBJdGVyYXRvciBpbml0aWFsaXphdGlvbgpAQCAtNjEsNiArNTgs
MTIgQEAgc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMo
Y29uc3QgY2hhciogYnJlYWtSdWxlcykKIAogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oTUFDKSAm
JiAhUExBVEZPUk0oSU9TKQorVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNl
dChCcmVha2luZ1J1bGVTZXQpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKIAog
Ly8gSXRlcmF0b3IgdGV4dCBzZXR0aW5nCiAKQEAgLTE2NCwxNDMgKzE2NywyNyBAQCBVQnJlYWtJ
dGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogICAgIHJl
dHVybiBzZXRUZXh0Rm9ySXRlcmF0b3IoKnN0YXRpY1NlbnRlbmNlQnJlYWtJdGVyYXRvciwgc3Ry
aW5nKTsKIH0KIAorI2lmICFQTEFURk9STShJT1MpCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGNy
ZWF0ZUN1cnNvck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2soKQoreworICAgIGlmIChhdXRv
KiBpdGVyYXRvciA9IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQ6OkN1
cnNvck1vdmVtZW50KSkKKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yOworICAgIHJldHVybiBpbml0
aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzKTsKK30K
KyNlbmRpZgorCiBVQnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcihTdHJpbmdW
aWV3IHN0cmluZykKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIC8vIFRoaXMgcnVsZSBzZXQg
aXMgYmFzZWQgb24gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NwotICAg
IC8vIDxodHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVs
ZWFzZS01Ny0xL3NvdXJjZS9kYXRhL2Jya2l0ci8+LgotICAgIC8vIFRoZSBtYWpvciBkaWZmZXJl
bmNlcyBmcm9tIHRoZSBvcmlnaW5hbCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6Ci0gICAgLy8gKiBS
ZXBsYWNlZCAnW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBTcGFjaW5nTWFya31dJyB3aXRo
ICdbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya30gLSAkRXh0ZW5kXScgZm9yIElD
VSAzLjggb3IgZWFybGllcjsKLSAgICAvLyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEg
Y3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsK
LSAgICAvLyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBh
ZnRlciB2aXJhbWEgc2lnbnMgb2YgSW5kaWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVnIDE1
NzkwKSwgYW5kOwotICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZy
b20gbW92aW5nIGJlZm9yZSBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJr
cy4KLSAgICAvLyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4K
LSAgICBzdGF0aWMgY29uc3QgY2hhcioga1J1bGVzID0KLSAgICAgICAgIiRDUiAgICAgID0gW1xc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ1J9XTsiCi0gICAgICAgICIkTEYgICAgICA9IFtc
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExGfV07IgotICAgICAgICAiJENvbnRyb2wgPSBb
XFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07IgotICAgICAgICAiJFZvaWNl
TWFya3MgPSBbXFx1RkY5RVxcdUZGOUZdOyIgLy8gSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2Fu
YSB2b2ljZWQgbWFya3MKLSAgICAgICAgIiRFeHRlbmQgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVy
X0JyZWFrID0gRXh0ZW5kfSAkVm9pY2VNYXJrcyAtIFtcXHUwRTMwIFxcdTBFMzIgXFx1MEU0NSBc
XHUwRUIwIFxcdTBFQjJdXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgPSBbW1xccHtHZW5lcmFs
X0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfV0gLSAkRXh0ZW5kXTsiCi0gICAgICAgICIkTCAgICAg
ICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsiCi0gICAgICAgICIkViAgICAg
ICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFZ9XTsiCi0gICAgICAgICIkVCAgICAg
ICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFR9XTsiCi0gICAgICAgICIkTFYgICAg
ICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07IgotICAgICAgICAiJExWVCAg
ICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVlR9XTsiCi0gICAgICAgICIkSGlu
MCAgICA9IFtcXHUwOTA1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEK
LSAgICAgICAgIiRIaW5WICAgID0gXFx1MDk0RDsiIC8vIERldmFuYWdhcmkgU2lnbiBWaXJhbWEK
LSAgICAgICAgIiRIaW4xICAgID0gW1xcdTA5MTUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJpIExl
dHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRCZW4wICAgID0gW1xcdTA5ODUtXFx1MDlCOV07IiAv
LyBCZW5nYWxpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEJlblYgICAgPSBcXHUwOUNEOyIg
Ly8gQmVuZ2FsaSBTaWduIFZpcmFtYQotICAgICAgICAiJEJlbjEgICAgPSBbXFx1MDk5NS1cXHUw
OUI5XTsiIC8vIEJlbmdhbGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJFBhbjAgICAgPSBb
XFx1MEEwNS1cXHUwQTM5XTsiIC8vIEd1cm11a2hpIExldHRlciBBLC4uLixIYQotICAgICAgICAi
JFBhblYgICAgPSBcXHUwQTREOyIgLy8gR3VybXVraGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRQ
YW4xICAgID0gW1xcdTBBMTUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhh
Ci0gICAgICAgICIkR3VqMCAgICA9IFtcXHUwQTg1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0
dGVyIEEsLi4uLEhhCi0gICAgICAgICIkR3VqViAgICA9IFxcdTBBQ0Q7IiAvLyBHdWphcmF0aSBT
aWduIFZpcmFtYQotICAgICAgICAiJEd1ajEgICAgPSBbXFx1MEE5NS1cXHUwQUI5XTsiIC8vIEd1
amFyYXRpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRPcmkwICAgID0gW1xcdTBCMDUtXFx1
MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRPcmlWICAgID0gXFx1
MEI0RDsiIC8vIE9yaXlhIFNpZ24gVmlyYW1hCi0gICAgICAgICIkT3JpMSAgICA9IFtcXHUwQjE1
LVxcdTBCMzldOyIgLy8gT3JpeWEgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJFRlbDAgICAg
PSBbXFx1MEMwNS1cXHUwQzM5XTsiIC8vIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAg
IiRUZWxWICAgID0gXFx1MEM0RDsiIC8vIFRlbHVndSBTaWduIFZpcmFtYQotICAgICAgICAiJFRl
bDEgICAgPSBbXFx1MEMxNC1cXHUwQzM5XTsiIC8vIFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCi0g
ICAgICAgICIkS2FuMCAgICA9IFtcXHUwQzg1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIg
QSwuLi4sSGEKLSAgICAgICAgIiRLYW5WICAgID0gXFx1MENDRDsiIC8vIEthbm5hZGEgU2lnbiBW
aXJhbWEKLSAgICAgICAgIiRLYW4xICAgID0gW1xcdTBDOTUtXFx1MENCOV07IiAvLyBLYW5uYWRh
IExldHRlciBBLC4uLixIYQotICAgICAgICAiJE1hbDAgICAgPSBbXFx1MEQwNS1cXHUwRDM5XTsi
IC8vIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWxWICAgID0gXFx1MEQ0
RDsiIC8vIE1hbGF5YWxhbSBTaWduIFZpcmFtYQotICAgICAgICAiJE1hbDEgICAgPSBbXFx1MEQx
NS1cXHUwRDM5XTsiIC8vIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRSSSAg
ICAgID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsiIC8vIEVtb2ppIHJlZ2lvbmFsIGluZGlj
YXRvcnMKLSAgICAgICAgIiRaV0ogICAgID0gXFx1MjAwRDsiIC8vIFplcm8gd2lkdGggam9pbmVy
Ci0gICAgICAgICIkRW1vamlWYXIgPSBbXFx1RkUwRl07IiAvLyBFbW9qaS1zdHlsZSB2YXJpYXRp
b24gc2VsZWN0b3IKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFbW9q
aUZvclNlcXMgPSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBc
XFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNG
MyBcXFUwMDAxRjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAx
RjQ2RiBcXFUwMDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUw
MDAxRjQ4MiBcXFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBc
XFUwMDAxRjVFOCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0
RC1cXFUwMDAxRjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXHUyNjk1
LVxcdTI2OTYgXFx1MjcwOCBcXFUwMDAxRjMzRSBcXFUwMDAxRjM3MyBcXFUwMDAxRjM5MyBcXFUw
MDAxRjNBNCBcXFUwMDAxRjNBOCBcXFUwMDAxRjNFQiBcXFUwMDAxRjNFRCBcXFUwMDAxRjRCQi1c
XFUwMDAxRjRCQyBcXFUwMDAxRjUyNyBcXFUwMDAxRjUyQyBcXFUwMDAxRjY4MCBcXFUwMDAxRjY5
MiBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzNy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAx
RjkzRV07IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAg
ICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNkY5IFxcdTI3MEEtXFx1MjcwRCBcXFUw
MDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQSBcXFUwMDAxRjNDQiBc
XFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2
Ni1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAx
RjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU3NSBcXFUwMDAxRjU5MCBcXFUw
MDAxRjU5NSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1c
XFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZD
MCBcXFUwMDAxRjkxOCBcXFUwMDAxRjNDMiBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQyBcXFUwMDAx
RjU3NCBcXFUwMDAxRjU3QSBcXFUwMDAxRjZDQyBcXFUwMDAxRjkxOS1cXFUwMDAxRjkxRSBcXFUw
MDAxRjkyNiBcXFUwMDAxRjkzMCBcXFUwMDAxRjkzMy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1c
XFUwMDAxRjkzRV0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwot
I2Vsc2UKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUw
MDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBz
ZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNzBBLVxcdTI3
MEMgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQzcgXFxVMDAw
MUYzQ0EgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxV
MDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0Mg
XFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0
QUEgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAw
MUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzBdIDsi
IC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbmRpZgotICAgICAg
ICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07IiAvLyBGaXR6cGF0cmlj
ayBtb2RpZmllcnMKLSAgICAgICAgIiEhY2hhaW47IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVAotICAgICAgICAiISFSSU5vQ2hhaW47IgotI2VuZGlmCi0gICAgICAgICIhIWZvcndhcmQ7
IgotICAgICAgICAiJENSICRMRjsiCi0gICAgICAgICIkTCAoJEwgfCAkViB8ICRMViB8ICRMVlQp
OyIKLSAgICAgICAgIigkTFYgfCAkVikgKCRWIHwgJFQpOyIKLSAgICAgICAgIigkTFZUIHwgJFQp
ICRUOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRSSSAkUkkgJEV4
dGVuZCogLyAkUkk7IgotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKjsiCi0gICAgICAgICJbXiRD
b250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAk
U3BhY2luZ01hcms7IgotI2Vsc2UKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJEV4dGVu
ZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsiCi0gICAgICAg
ICIkUkkgJFJJIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIk
SGluMCAkSGluViAkSGluMTsiIC8vIERldmFuYWdhcmkgVmlyYW1hIChmb3J3YXJkKQotICAgICAg
ICAiJEJlbjAgJEJlblYgJEJlbjE7IiAvLyBCZW5nYWxpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAg
ICAgIiRQYW4wICRQYW5WICRQYW4xOyIgLy8gR3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQotICAg
ICAgICAiJEd1ajAgJEd1alYgJEd1ajE7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGZvcndhcmQpCi0g
ICAgICAgICIkT3JpMCAkT3JpViAkT3JpMTsiIC8vIE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKLSAg
ICAgICAgIiRUZWwwICRUZWxWICRUZWwxOyIgLy8gVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKLSAg
ICAgICAgIiRLYW4wICRLYW5WICRLYW4xOyIgLy8gS2FubmFkYSBWaXJhbWEgKGZvcndhcmQpCi0g
ICAgICAgICIkTWFsMCAkTWFsViAkTWFsMTsiIC8vIE1hbGF5YWxhbSBWaXJhbWEgKGZvcndhcmQp
Ci0gICAgICAgICIkWldKICRFbW9qaUZvclNlcXM7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBa
V0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9k
czsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGgg
dmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKLSAgICAgICAgIiEh
cmV2ZXJzZTsiCi0gICAgICAgICIkTEYgJENSOyIKLSAgICAgICAgIigkTCB8ICRWIHwgJExWIHwg
JExWVCkgJEw7IgotICAgICAgICAiKCRWIHwgJFQpICgkTFYgfCAkVik7IgotICAgICAgICAiJFQg
KCRMVlQgfCAkVCk7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJEV4
dGVuZCogJFJJICRSSSAvICRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVuZCogJFJJ
ICRSSTsiCi0gICAgICAgICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAg
ICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0jZWxzZQotICAgICAgICAi
JEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJr
IFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFJJICRSSSAvICRSSSAkUkk7IgotICAg
ICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4xICRIaW5WICRIaW4wOyIgLy8g
RGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEJlbjEgJEJlblYgJEJlbjA7
IiAvLyBCZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkUGFuMSAkUGFuViAkUGFu
MDsiIC8vIEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkR3VqMSAkR3VqViAk
R3VqMDsiIC8vIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkT3JpMSAkT3Jp
ViAkT3JpMDsiIC8vIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkVGVsMSAk
VGVsViAkVGVsMDsiIC8vIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEthbjEg
JEthblYgJEthbjA7IiAvLyBLYW5uYWRhIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkTWFs
MSAkTWFsViAkTWFsMDsiIC8vIE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAi
JEVtb2ppRm9yU2VxcyAkWldKOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNl
cwotICAgICAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7IiAvLyBEb24n
dCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBz
ZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0jaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCi0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0g
ICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAg
IiEhc2FmZV9mb3J3YXJkOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIiRFbW9qaUZv
ck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VUJyZWFrSXRlcmF0b3IqPiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gY3JlYXRl
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjaygpOwogI2Vsc2UKLSAgICAgICAgIlsk
RW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiJEVtb2ppRm9y
TW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiCi0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsi
Ci0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsiOwotI2VuZGlmCi0gICAgc3RhdGljIFVCcmVha0l0
ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9y
V2l0aFJ1bGVzKGtSdWxlcyk7Ci0jZWxzZSAvLyBQTEFURk9STShJT1MpCiAgICAgLy8gVXNlIHRo
ZSBzcGVjaWFsIFRoYWkgY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGZvciBhbGwgbG9jYWxlcwot
ICAgIHN0YXRpYyBVQnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9
IGluaXRpYWxpemVJdGVyYXRvcihVQlJLX0NIQVJBQ1RFUiwgInRoIik7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
ciA9IGluaXRpYWxpemVJdGVyYXRvcihVQlJLX0NIQVJBQ1RFUiwgInRoIik7CiAjZW5kaWYgLy8g
IVBMQVRGT1JNKElPUykKIAotICAgIGlmICghc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcikK
KyAgICBpZiAoIXN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IuZ2V0KCkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqc3RhdGljQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvciwgc3RyaW5nKTsKKyAgICByZXR1cm4gc2V0VGV4dEZvckl0ZXJh
dG9yKCooc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvci5nZXQoKSksIHN0cmluZyk7CiB9CiAK
IFVCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmlldyBzdHJp
bmcsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBjb25zdCBVQ2hhciogcHJpb3JDb250ZXh0
LCB1bnNpZ25lZCBwcmlvckNvbnRleHRMZW5ndGgsIExpbmVCcmVha0l0ZXJhdG9yTW9kZSBtb2Rl
LCBib29sIGlzQ0pLKQpAQCAtMzE5LDQ0MiArMjA2LDIwIEBAIHZvaWQgcmVsZWFzZUxpbmVCcmVh
a0l0ZXJhdG9yKFVCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKICAgICBMaW5lQnJlYWtJdGVyYXRv
clBvb2w6OnNoYXJlZFBvb2woKS5wdXQoaXRlcmF0b3IpOwogfQogCi1zdGF0aWMgY29uc3QgY2hh
ciogdWF4MTRQcm9sb2d1ZSA9Ci0gICAgIiEhY2hhaW47IgotICAgICIhIUxCQ01Ob0NoYWluOyIK
LSAgICAiISFsb29rQWhlYWRIYXJkQnJlYWs7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0
QXNzaWdubWVudHNCZWZvcmUgPQotICAgIC8vIGV4cGxpY2l0bHkgZW51bWVyYXRlICRDSiBzaW5j
ZSBJQ1UgdmVyc2lvbnMgcHJpb3IgdG8gNDkgZG9uJ3Qgc3VwcG9ydCA6TGluZUJyZWFrPUNvbmRp
dGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6Ci0gICAgIiRDSiA9IFsiCi0jaWYgKFVfSUNVX1ZFUlNJ
T05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KQotICAg
ICI6TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6IgotI2Vsc2UKLSAgICAi
XFx1MzA0MVxcdTMwNDNcXHUzMDQ1XFx1MzA0N1xcdTMwNDlcXHUzMDYzXFx1MzA4M1xcdTMwODVc
XHUzMDg3XFx1MzA4RVxcdTMwOTVcXHUzMDk2XFx1MzBBMVxcdTMwQTNcXHUzMEE1XFx1MzBBNyIK
LSAgICAiXFx1MzBBOVxcdTMwQzNcXHUzMEUzXFx1MzBFNVxcdTMwRTdcXHUzMEVFXFx1MzBGNVxc
dTMwRjZcXHUzMEZDIgotICAgICJcXHUzMUYwXFx1MzFGMVxcdTMxRjJcXHUzMUYzXFx1MzFGNFxc
dTMxRjVcXHUzMUY2XFx1MzFGN1xcdTMxRjhcXHUzMUY5XFx1MzFGQVxcdTMxRkJcXHUzMUZDXFx1
MzFGRFxcdTMxRkVcXHUzMUZGIgotICAgICJcXHVGRjY3XFx1RkY2OFxcdUZGNjlcXHVGRjZBXFx1
RkY2QlxcdUZGNkNcXHVGRjZEXFx1RkY2RVxcdUZGNkZcXHVGRjcwIgotI2VuZGlmCi0gICAgIl07
IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZUNKSyA9
Ci0gICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAgICAiJEVYX1NVQiA9IFtcXHUw
MDIxXFx1MDAzRlxcdUZGMDFcXHVGRjFGXTsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJ
Tl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAgICAiJElTX1NVQiA9IFtcXHUwMDNBXFx1MDAz
Ql07IgotICAgICIkTlNfU1VCID0gW1xcdTIwM0NcXHUyMDQ3XFx1MjA0OFxcdTIwNDlcXHUzMDA1
XFx1MzAxQ1xcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwQTBcXHUzMEZCXFx1MzBGRFxcdTMwRkVc
XHVGRjFBXFx1RkYxQlxcdUZGNjVdOyIKLSAgICAiJFBPX1NVQiA9IFtcXHUwMDI1XFx1MDBBMlxc
dTAwQjBcXHUyMDMwXFx1MjAzMlxcdTIwMzNcXHUyMTAzXFx1RkYwNVxcdUZGRTBdOyIKLSAgICAi
JFBSX1NVQiA9IFtcXHUwMDI0XFx1MDBBM1xcdTAwQTVcXHUyMEFDXFx1MjExNlxcdUZGMDRcXHVG
RkUxXFx1RkZFNV07IgotICAgICIkSURfQUREID0gWyRDSiAkQkFfU1VCICRFWF9TVUIgJElOX1NV
QiAkSVNfU1VCICROU19TVUIgJFBPX1NVQiAkUFJfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsi
OwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlTm9uQ0pL
ID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NV
QiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAgICIkSVNfU1VC
ID0gJyc7IgotICAgICIkTlNfU1VCID0gW1xcdTMwMDVcXHUzMDNCXFx1MzA5RFxcdTMwOUVcXHUz
MEZEXFx1MzBGRV07IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7Igot
ICAgICIkSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcn
OyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pL
ID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAgICIkRVhfU1VCID0gJyc7
IgotICAgICIkSU5fU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSVNfU1VC
ID0gJyc7IgotICAgICIkTlNfU1VCID0gW1xcdTMwMUNcXHUzMEEwXTsiCi0gICAgIiRQT19TVUIg
PSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKICRCQV9TVUIg
JE5TX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVh
eDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxOb25DSksgPQotICAgICIkQkFfU1VCID0gJyc7Igot
ICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0g
Jyc7IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gJyc7IgotICAgICIkUE9f
U1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSl07Igot
ICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVu
dHNDdXN0b21TdHJpY3RDSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0g
Jyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gJyc7IgotICAgICIkSVNf
U1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gJyc7IgotICAgICIkUE9fU1VCID0gJyc7IgotICAg
ICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gJyc7IgotICAgICIkTlNfQUREID0gWyRD
Sl07IjsKLQotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLICAgICAg
dWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSwotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tRGVmYXVsdENKSyAgICAgICAgdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSwot
I2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNKSyAgICAgdWF4MTRBc3Np
Z25tZW50c0N1c3RvbVN0cmljdE5vbkNKSwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3Np
Z25tZW50c0FmdGVyID0KLSAgICAiJEFJID0gWzpMaW5lQnJlYWsgPSBBbWJpZ3VvdXM6XTsiCi0g
ICAgIiRBTCA9IFs6TGluZUJyZWFrID0gQWxwaGFiZXRpYzpdOyIKLSAgICAiJEJBID0gW1s6TGlu
ZUJyZWFrID0gQnJlYWtfQWZ0ZXI6XSAtICRCQV9TVUJdOyIKLSAgICAiJEJCID0gWzpMaW5lQnJl
YWsgPSBCcmVha19CZWZvcmU6XTsiCi0gICAgIiRCSyA9IFs6TGluZUJyZWFrID0gTWFuZGF0b3J5
X0JyZWFrOl07IgotICAgICIkQjIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JvdGg6XTsiCi0gICAg
IiRDQiA9IFs6TGluZUJyZWFrID0gQ29udGluZ2VudF9CcmVhazpdOyIKLSAgICAiJENMID0gWzpM
aW5lQnJlYWsgPSBDbG9zZV9QdW5jdHVhdGlvbjpdOyIKLSAgICAiJENNID0gWzpMaW5lQnJlYWsg
PSBDb21iaW5pbmdfTWFyazpdOyIKLSAgICAiJENQID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QYXJl
bnRoZXNpczpdOyIKLSAgICAiJENSID0gWzpMaW5lQnJlYWsgPSBDYXJyaWFnZV9SZXR1cm46XTsi
Ci0gICAgIiRFWCA9IFtbOkxpbmVCcmVhayA9IEV4Y2xhbWF0aW9uOl0gLSAkRVhfU1VCXTsiCi0g
ICAgIiRHTCA9IFs6TGluZUJyZWFrID0gR2x1ZTpdOyIKLSNpZiAoVV9JQ1VfVkVSU0lPTl9NQUpP
Ul9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpCi0gICAgIiRITCA9
IFs6TGluZUJyZWFrID0gSGVicmV3X0xldHRlcjpdOyIKLSNlbHNlCi0gICAgIiRITCA9IFtbOkhl
YnJldzpdICYgWzpMZXR0ZXI6XV07IgotI2VuZGlmCi0gICAgIiRIWSA9IFs6TGluZUJyZWFrID0g
SHlwaGVuOl07IgotICAgICIkSDIgPSBbOkxpbmVCcmVhayA9IEgyOl07IgotICAgICIkSDMgPSBb
OkxpbmVCcmVhayA9IEgzOl07IgotICAgICIkSUQgPSBbW1tbOkxpbmVCcmVhayA9IElkZW9ncmFw
aGljOl0gLSAkQ0pdICRJRF9BRERdIC0gJElEX1NVQl07IgotICAgICIkSU4gPSBbWzpMaW5lQnJl
YWsgPSBJbnNlcGFyYWJsZTpdIC0gJElOX1NVQl07IgotICAgICIkSVMgPSBbWzpMaW5lQnJlYWsg
PSBJbmZpeF9OdW1lcmljOl0gLSAkSVNfU1VCXTsiCi0gICAgIiRKTCA9IFs6TGluZUJyZWFrID0g
Skw6XTsiCi0gICAgIiRKViA9IFs6TGluZUJyZWFrID0gSlY6XTsiCi0gICAgIiRKVCA9IFs6TGlu
ZUJyZWFrID0gSlQ6XTsiCi0gICAgIiRMRiA9IFs6TGluZUJyZWFrID0gTGluZV9GZWVkOl07Igot
ICAgICIkTkwgPSBbOkxpbmVCcmVhayA9IE5leHRfTGluZTpdOyIKLSAgICAiJE5TID0gW1tbWzpM
aW5lQnJlYWsgPSBOb25zdGFydGVyOl0gLSAkQ0pdICROU19BRERdIC0gJE5TX1NVQl07IgotICAg
ICIkTlUgPSBbOkxpbmVCcmVhayA9IE51bWVyaWM6XTsiCi0gICAgIiRPUCA9IFs6TGluZUJyZWFr
ID0gT3Blbl9QdW5jdHVhdGlvbjpdOyIKLSAgICAiJFBPID0gW1s6TGluZUJyZWFrID0gUG9zdGZp
eF9OdW1lcmljOl0gLSAkUE9fU1VCXTsiCi0gICAgIiRQUiA9IFtbOkxpbmVCcmVhayA9IFByZWZp
eF9OdW1lcmljOl0gLSAkUFJfU1VCXTsiCi0gICAgIiRRVSA9IFs6TGluZUJyZWFrID0gUXVvdGF0
aW9uOl07IgotICAgICIkUkkgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIKLSAgICAiJFNB
ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsiCi0gICAgIiRTRyA9IFs6TGluZUJy
ZWFrID0gU3Vycm9nYXRlOl07IgotICAgICIkU1AgPSBbOkxpbmVCcmVhayA9IFNwYWNlOl07Igot
ICAgICIkU1kgPSBbOkxpbmVCcmVhayA9IEJyZWFrX1N5bWJvbHM6XTsiCi0gICAgIiRXSiA9IFs6
TGluZUJyZWFrID0gV29yZF9Kb2luZXI6XTsiCi0gICAgIiRYWCA9IFs6TGluZUJyZWFrID0gVW5r
bm93bjpdOyIKLSAgICAiJFpXID0gWzpMaW5lQnJlYWsgPSBaV1NwYWNlOl07IgotICAgICIkWldK
ID0gXFx1MjAwRDsiCi0gICAgIiRFbW9qaVZhciA9IFxcdUZFMEY7IgotI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAotICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUy
NkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYz
Q0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAw
MUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxV
MDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcg
XFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2
NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAw
MUY2QjQtXFxVMDAwMUY2QjYgXFx1MjY5NS1cXHUyNjk2IFxcdTI3MDggXFxVMDAwMUYzM0UgXFxV
MDAwMUYzNzMgXFxVMDAwMUYzOTMgXFxVMDAwMUYzQTQgXFxVMDAwMUYzQTggXFxVMDAwMUYzRUIg
XFxVMDAwMUYzRUQgXFxVMDAwMUY0QkItXFxVMDAwMUY0QkMgXFxVMDAwMUY1MjcgXFxVMDAwMUY1
MkMgXFxVMDAwMUY2ODAgXFxVMDAwMUY2OTIgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzctXFxVMDAw
MUY5MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0
ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNkY5
IFxcdTI3MEEtXFx1MjcwRCBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUw
MDAxRjNDQSBcXFUwMDAxRjNDQiBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1c
XFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4
MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAx
RjU3NSBcXFUwMDAxRjU5MCBcXFUwMDAxRjU5NSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUw
MDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1c
XFUwMDAxRjZCNiBcXFUwMDAxRjZDMCBcXFUwMDAxRjkxOCBcXFUwMDAxRjNDMiBcXFUwMDAxRjND
NyBcXFUwMDAxRjNDQyBcXFUwMDAxRjU3NCBcXFUwMDAxRjU3QSBcXFUwMDAxRjZDQyBcXFUwMDAx
RjkxOS1cXFUwMDAxRjkxRSBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzMCBcXFUwMDAxRjkzMy1cXFUw
MDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZp
dHpwYXRyaWNrIG1vZGlmaWVycwotI2Vsc2UKLSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0
IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDhCXTsiCi0gICAgIiRFbW9qaUZvck1v
ZHMgPSBbXFx1MjYxRCBcXHUyNzBBLVxcdTI3MEMgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxV
MDAwMUYzQzQgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0EgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMg
XFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0
NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAw
MUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxV
MDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQt
XFxVMDAwMUY2QjYgXFxVMDAwMUY2QzBdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmlj
ayBtb2RpZmllcnMKLSNlbmRpZgotICAgICIkRW1vamlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAw
MDFGM0ZGXTsiCi0gICAgIiRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRl
eHQ6XTsiCi0gICAgIiRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07IgotICAgICIkQUxj
bSA9ICRBTFBsdXMgJENNKjsiCi0gICAgIiRCQWNtID0gJEJBICRDTSo7IgotICAgICIkQkJjbSA9
ICRCQiAkQ00qOyIKLSAgICAiJEIyY20gPSAkQjIgJENNKjsiCi0gICAgIiRDTGNtID0gJENMICRD
TSo7IgotICAgICIkQ1BjbSA9ICRDUCAkQ00qOyIKLSAgICAiJEVYY20gPSAkRVggJENNKjsiCi0g
ICAgIiRHTGNtID0gJEdMICRDTSo7IgotICAgICIkSExjbSA9ICRITCAkQ00qOyIKLSAgICAiJEhZ
Y20gPSAkSFkgJENNKjsiCi0gICAgIiRIMmNtID0gJEgyICRDTSo7IgotICAgICIkSDNjbSA9ICRI
MyAkQ00qOyIKLSAgICAiJElEY20gPSAkSUQgJENNKjsiCi0gICAgIiRJTmNtID0gJElOICRDTSo7
IgotICAgICIkSVNjbSA9ICRJUyAkQ00qOyIKLSAgICAiJEpMY20gPSAkSkwgJENNKjsiCi0gICAg
IiRKVmNtID0gJEpWICRDTSo7IgotICAgICIkSlRjbSA9ICRKVCAkQ00qOyIKLSAgICAiJE5TY20g
PSAkTlMgJENNKjsiCi0gICAgIiROVWNtID0gJE5VICRDTSo7IgotICAgICIkT1BjbSA9ICRPUCAk
Q00qOyIKLSAgICAiJFBPY20gPSAkUE8gJENNKjsiCi0gICAgIiRQUmNtID0gJFBSICRDTSo7Igot
ICAgICIkUVVjbSA9ICRRVSAkQ00qOyIKLSAgICAiJFJJY20gPSAkUkkgJENNKjsiCi0gICAgIiRT
WWNtID0gJFNZICRDTSo7IgotICAgICIkV0pjbSA9ICRXSiAkQ00qOyI7Ci0KLXN0YXRpYyBjb25z
dCBjaGFyKiB1YXgxNEZvcndhcmQgPQotICAgICIhIWZvcndhcmQ7IgotICAgICIkQ0FOX0NNID0g
W14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOyIKLSAgICAiJENBTlRfQ00gPSBbJFNQICRC
SyAkQ1IgJExGICROTCAkWlcgJENNXTsiCi0gICAgIiRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENS
ICRMRiAkTkwgJFpXICRTUF07IgotICAgICIkQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRI
TCAkSVMgJFNZICRXSiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOyIK
LSAgICAiJEFMX0ZPTExPVyA9IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07IgotICAg
ICIkTEI0QnJlYWtzID0gWyRCSyAkQ1IgJExGICROTF07IgotICAgICIkTEI0Tm9uQnJlYWtzID0g
W14kQksgJENSICRMRiAkTkxdOyIKLSAgICAiJExCOEJyZWFrcyA9IFskTEI0QnJlYWtzICRaV107
IgotICAgICIkTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAtIFskWlddXTsiCi0gICAg
IiRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07IgotICAgICIkTEIxOEJy
ZWFrcyA9IFskTEI4QnJlYWtzICRTUF07IgotICAgICIkTEIyME5vbkJyZWFrcyA9IFskTEIxOE5v
bkJyZWFrcyAtICRDQl07IgotICAgICIkQUxQbHVzICRDTSs7IgotICAgICIkQkEgJENNKzsiCi0g
ICAgIiRCQiAkQ00rOyIKLSAgICAiJEIyICRDTSs7IgotICAgICIkQ0wgJENNKzsiCi0gICAgIiRD
UCAkQ00rOyIKLSAgICAiJEVYICRDTSs7IgotICAgICIkR0wgJENNKzsiCi0gICAgIiRITCAkQ00r
OyIKLSAgICAiJEhZICRDTSs7IgotICAgICIkSDIgJENNKzsiCi0gICAgIiRIMyAkQ00rOyIKLSAg
ICAiJElEICRDTSs7IgotICAgICIkSU4gJENNKzsiCi0gICAgIiRJUyAkQ00rOyIKLSAgICAiJEpM
ICRDTSs7IgotICAgICIkSlYgJENNKzsiCi0gICAgIiRKVCAkQ00rOyIKLSAgICAiJE5TICRDTSs7
IgotICAgICIkTlUgJENNKzsiCi0gICAgIiRPUCAkQ00rOyIKLSAgICAiJFBPICRDTSs7IgotICAg
ICIkUFIgJENNKzsiCi0gICAgIiRRVSAkQ00rOyIKLSAgICAiJFJJICRDTSs7IgotICAgICIkU1kg
JENNKzsiCi0gICAgIiRXSiAkQ00rOyIKLSAgICAiJENSICRMRiB7MTAwfTsiCi0gICAgIiRMQjRO
b25CcmVha3M/ICRMQjRCcmVha3MgezEwMH07IgotICAgICIkQ0FOX0NNICRDTSogJExCNEJyZWFr
cyB7MTAwfTsiCi0gICAgIiRDTSsgJExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRMQjROb25CcmVh
a3MgWyRTUCAkWlddOyIKLSAgICAiJENBTl9DTSAkQ00qIFskU1AgJFpXXTsiCi0gICAgIiRDTSsg
WyRTUCAkWlddOyIKLSAgICAiJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM/ICRa
V0ogJEVtb2ppRm9yU2VxczsiCi0gICAgIiRDQU5fQ00gJENNKzsiCi0gICAgIiRDTSs7IgotICAg
ICIkQ0FOX0NNICRDTSogJFdKY207IgotICAgICIkTEI4Tm9uQnJlYWtzICRXSmNtOyIKLSAgICAi
JENNKyAkV0pjbTsiCi0gICAgIiRXSmNtICRDQU5UX0NNOyIKLSAgICAiJFdKY20gJENBTl9DTSAk
Q00qOyIKLSAgICAiJEdMY20gJENBTl9DTSAkQ00qOyIKLSAgICAiJEdMY20gJENBTlRfQ007Igot
ICAgICJbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENNKiAkR0xjbTsiCi0gICAg
IiRDTSsgR0xjbTsiCi0gICAgIiRMQjhOb25CcmVha3MgJENMOyIKLSAgICAiJENBTl9DTSAkQ00q
ICRDTDsiCi0gICAgIiRDTSsgJENMOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkQ1A7IgotICAgICIk
Q0FOX0NNICRDTSogJENQOyIKLSAgICAiJENNKyAkQ1A7IgotICAgICIkTEI4Tm9uQnJlYWtzICRF
WDsiCi0gICAgIiRDQU5fQ00gJENNKiAkRVg7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRMQjhO
b25CcmVha3MgJElTOyIKLSAgICAiJENBTl9DTSAkQ00qICRJUzsiCi0gICAgIiRDTSsgJElTOyIK
LSAgICAiJExCOE5vbkJyZWFrcyAkU1k7IgotICAgICIkQ0FOX0NNICRDTSogJFNZOyIKLSAgICAi
JENNKyAkU1k7IgotICAgICIkT1BjbSAkU1AqICRDQU5fQ00gJENNKjsiCi0gICAgIiRPUGNtICRT
UCogJENBTlRfQ007IgotICAgICIkT1BjbSAkU1ArICRDTSsgJEFMX0ZPTExPVz87IgotICAgICIk
UVVjbSAkU1AqICRPUGNtOyIKLSAgICAiKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207IgotICAg
ICIkQjJjbSAkU1AqICRCMmNtOyIKLSAgICAiJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsiCi0g
ICAgIiRDTSsgJFFVY207IgotICAgICIkUVVjbSAuPzsiCi0gICAgIiRRVWNtICRMQjE4Tm9uQnJl
YWtzICRDTSo7IgotICAgICIkTEIyME5vbkJyZWFrcyAkQ00qICgkQkFjbSB8ICRIWWNtIHwgJE5T
Y20pOyAiCi0gICAgIiRCQmNtIFteJENCXTsiCi0gICAgIiRCQmNtICRMQjIwTm9uQnJlYWtzICRD
TSo7IgotICAgICIkSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsiCi0gICAgIiRTWWNtICRI
TGNtOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICRJTmNtOyIKLSAgICAiJENNKyAkSU5jbTsiCi0g
ICAgIiRFWGNtICRJTmNtOyIKLSAgICAiJElEY20gJElOY207IgotICAgICIkSU5jbSAkSU5jbTsi
Ci0gICAgIiROVWNtICRJTmNtOyIKLSAgICAiJElEY20gJFBPY207IgotICAgICIkQUxjbSAkTlVj
bTsiCi0gICAgIiRITGNtICROVWNtOyIKLSAgICAiJENNKyAkTlVjbTsiCi0gICAgIiROVWNtICRB
TGNtOyIKLSAgICAiJE5VY20gJEhMY207IgotICAgICIkUFJjbSAkSURjbTsiCi0gICAgIiRQUmNt
ICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRQT2NtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIigk
UFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5VY20gfCAkU1ljbSB8ICRJ
U2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/OyIKLSAgICAiJEpMY20gKCRK
TGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsiCi0gICAgIigkSlZjbSB8ICRIMmNtKSAoJEpW
Y20gfCAkSlRjbSk7IgotICAgICIoJEpUY20gfCAkSDNjbSkgJEpUY207IgotICAgICIoJEpMY20g
fCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207IgotICAgICIoJEpMY20gfCAk
SlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJFBPY207IgotICAgICIkUFJjbSAoJEpMY20g
fCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSk7IgotICAgICIoJEFMY20gfCAkSExjbSkg
KCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJENNKyAoJEFMY20gfCAkSExjbSk7IgotICAgICIkSVNj
bSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJEFMY20gfCAkSExjbSB8ICROVWNtKSAkT1BjbTsi
Ci0gICAgIiRDTSsgJE9QY207IgotICAgICIkQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsi
Ci0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRSSWNtICRSSWNtOyIKLSNlbmRp
ZgotICAgICIkRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsiOwotCi1zdGF0aWMg
Y29uc3QgY2hhciogdWF4MTRSZXZlcnNlID0KLSAgICAiISFyZXZlcnNlOyIKLSAgICAiJENNKyAk
QUxQbHVzOyIKLSAgICAiJENNKyAkQkE7IgotICAgICIkQ00rICRCQjsiCi0gICAgIiRDTSsgJEIy
OyIKLSAgICAiJENNKyAkQ0w7IgotICAgICIkQ00rICRDUDsiCi0gICAgIiRDTSsgJEVYOyIKLSAg
ICAiJENNKyAkR0w7IgotICAgICIkQ00rICRITDsiCi0gICAgIiRDTSsgJEhZOyIKLSAgICAiJENN
KyAkSDI7IgotICAgICIkQ00rICRIMzsiCi0gICAgIiRDTSsgJElEOyIKLSAgICAiJENNKyAkSU47
IgotICAgICIkQ00rICRJUzsiCi0gICAgIiRDTSsgJEpMOyIKLSAgICAiJENNKyAkSlY7IgotICAg
ICIkQ00rICRKVDsiCi0gICAgIiRDTSsgJE5TOyIKLSAgICAiJENNKyAkTlU7IgotICAgICIkQ00r
ICRPUDsiCi0gICAgIiRDTSsgJFBPOyIKLSAgICAiJENNKyAkUFI7IgotICAgICIkQ00rICRRVTsi
Ci0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRDTSsgJFJJOyIKLSNlbmRpZgot
ICAgICIkQ00rICRTWTsiCi0gICAgIiRDTSsgJFdKOyIKLSAgICAiJENNKzsiCi0gICAgIiRBTF9G
T0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRaVyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQ
IHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFskQUwge2VvZn1dKSk7IgotICAgICJbJFBS
XSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9XTsiCi0gICAgIiRMQjRCcmVh
a3MgWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIiRMQjRCcmVha3MgJENNKyAkQ0FOX0NNOyIK
LSAgICAiJExGICRDUjsiCi0gICAgIlskU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOyIKLSAg
ICAiWyRTUCAkWlddICRDTSsgJENBTl9DTTsiCi0gICAgIiRFbW9qaUZvclNlcXMgJFpXSiAkRW1v
amlNb2RzPyAkRW1vamlWYXI/ICRFbW9qaUZvclNlcXM7IgotICAgICIkQ00rICRDQU5fQ007Igot
ICAgICIkQ00qICRXSiAkQ00qICRDQU5fQ007IgotICAgICIkQ00qICRXSiBbJExCOE5vbkJyZWFr
cy0kQ01dOyIKLSAgICAiJENBTlRfQ00gJENNKiAkV0o7IgotICAgICIkQ00qICRDQU5fQ00gJENN
KiAkV0o7IgotICAgICIkQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRCQSAk
SFldXTsiCi0gICAgIiRDQU5UX0NNICRDTSogJEdMOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSog
JEdMOyIKLSAgICAiJENMICRDTSsgJENBTl9DTTsiCi0gICAgIiRDUCAkQ00rICRDQU5fQ007Igot
ICAgICIkRVggJENNKyAkQ0FOX0NNOyIKLSAgICAiJElTICRDTSsgJENBTl9DTTsiCi0gICAgIiRT
WSAkQ00rICRDQU5fQ007IgotICAgICIkQ0wgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRD
UCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07Igot
ICAgICIkSVMgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRTWSBbJExCOE5vbkJyZWFrcy0k
Q01dOyIKLSAgICAiWyRDTCAkQ1AgJEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgIgot
ICAgICIkQ00qICRDQU5fQ00gJFNQKiAkQ00qICRPUDsiCi0gICAgIiRDQU5UX0NNICRTUCogJENN
KiAkT1A7IgotICAgICIkQUxfRk9MTE9XPyAkQ00rICRTUCAkU1AqICRDTSogJE9QOyIKLSAgICAi
JEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsiCi0gICAgIiRDTSogJEFMX0ZPTExP
V19DTSAkQ00rICRTUCsgJENNKiAkT1A7IgotICAgICIkU1kgJENNICRTUCsgJE9QOyIKLSAgICAi
JENNKiAkT1AgJFNQKiAkQ00qICRRVTsiCi0gICAgIiRDTSogJE5TICRTUCogJENNKiAoJENMIHwg
JENQKTsiCi0gICAgIiRDTSogJEIyICRTUCogJENNKiAkQjI7IgotICAgICIkQ00qICRRVSAkQ00q
ICRDQU5fQ007IgotICAgICIkQ00qICRRVSAkTEIxOE5vbkJyZWFrczsiCi0gICAgIiRDTSogJENB
Tl9DTSAkQ00qICRRVTsiCi0gICAgIiRDQU5UX0NNICRDTSogJFFVOyIKLSAgICAiJENNKiAoJEJB
IHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENNKiBbJExC
MjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsiCi0gICAgIlteJENCXSAkQ00qICRCQjsiCi0gICAg
IlteJENCXSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOyIKLSAgICAiJENNKiAkSEwgJENNKiAk
U1k7IgotICAgICIkQ00qICRJTiAkQ00qICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogJElO
ICRDTSogJEVYOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSUQ7IgotICAgICIkQ00qICRJTiAkQ00q
ICRJTjsiCi0gICAgIiRDTSogJElOICRDTSogJE5VOyIKLSAgICAiJENNKiAkUE8gJENNKiAkSUQ7
IgotICAgICIkQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogKCRBTFBs
dXMgfCAkSEwpICRDTSogJE5VOyIKLSAgICAiJENNKiAkSUQgJENNKiAkUFI7IgotICAgICIkQ00q
ICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRD
TSogJFBPOyIKLSAgICAiKCRDTSogKCRQUiB8ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgk
Q00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENNKiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENN
KiAoJFBSIHwgJFBPKSk/OyIKLSAgICAiJENNKiAoJEgzIHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00q
ICRKTDsiCi0gICAgIiRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgyIHwgJEpWKTsiCi0gICAgIiRD
TSogJEpUICRDTSogKCRIMyB8ICRKVCk7IgotICAgICIkQ00qICRJTiAkQ00qICgkSDMgfCAkSDIg
fCAkSlQgfCAkSlYgfCAkSkwpOyIKLSAgICAiJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpU
IHwgJEpWIHwgJEpMKTsiCi0gICAgIiRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkg
JENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhM
KTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJElTOyIKLSAgICAiJENNKiAkT1Ag
JENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMIHwg
JE5VKSAkQ00qICRDUDsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRDTSog
JFJJICRDTSogJFJJOyIKLSNlbmRpZgotICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2pp
Rm9yTW9kczsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRTYWZlRm9yd2FyZCA9Ci0gICAg
IiEhc2FmZV9mb3J3YXJkOyIKLSAgICAiWyRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkg
JEJBICRTUCAkZGljdGlvbmFyeV0rIFteJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAk
QkEgJGRpY3Rpb25hcnldOyIKLSAgICAiJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7IjsKLQotc3Rh
dGljIGNvbnN0IGNoYXIqIHVheDE0U2FmZVJldmVyc2UgPQotICAgICIhIXNhZmVfcmV2ZXJzZTsi
Ci0gICAgIiRDTSsgW14kQ00gJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOyIKLSAgICAiJENNKyAk
U1AgLyAuOyIKLSAgICAiJFNQKyAkQ00qICRPUDsiCi0gICAgIiRTUCsgJENNKiAkUVU7IgotICAg
ICIkU1ArICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIkU1ArICRDTSogJEIyOyIKLSAgICAiJENN
KiAoJEhZIHwgJEJBKSAkQ00qICRITDsiCi0gICAgIigkQ00qICgkSVMgfCAkU1kpKSsgJENNKiAk
TlU7IgotICAgICIoJENMIHwgJENQKSAkQ00qICgkTlUgfCAkSVMgfCAkU1kpOyIKLSAgICAiJGRp
Y3Rpb25hcnkgJGRpY3Rpb25hcnk7IjsKLQogc3RhdGljIFN0cmluZyBtYXBMaW5lSXRlcmF0b3JN
b2RlVG9SdWxlcyhMaW5lQnJlYWtJdGVyYXRvck1vZGUgbW9kZSwgYm9vbCBpc0NKSykKIHsKLSAg
ICBTdHJpbmdCdWlsZGVyIHJ1bGVzQnVpbGRlcjsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVh
eDE0UHJvbG9ndWUpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0Jl
Zm9yZSk7CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1v
ZGU6OkRlZmF1bHQ6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tRGVmYXVsdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0
Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxl
czsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6TG9vc2U6Ci0gICAgICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgOiB1
YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAg
ICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLUnVsZXMgOiBs
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVh
a0l0ZXJhdG9yTW9kZTo6Tm9ybWFsOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pL
ID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0
b21Ob3JtYWxOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8g
bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpT
dHJpY3Q6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1l
bnRzQ3VzdG9tU3RyaWN0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
UnVsZXM7CiAgICAgfQotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0Fm
dGVyKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0Rm9yd2FyZCk7Ci0gICAgcnVsZXNC
dWlsZGVyLmFwcGVuZCh1YXgxNFJldmVyc2UpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4
MTRTYWZlRm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVSZXZlcnNl
KTsKLSAgICByZXR1cm4gcnVsZXNCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuICIiOwogfQogCiAvLyBSZWNvZ25pemUgQkNQNDcgY29tcGxp
YW50IHByaW1hcnkgbGFuZ3VhZ2UgdmFsdWVzIG9mICd6aCcsICdqYScsICdrbycKQEAgLTc4OCw5
ICsyNTMsMjkgQEAgVUJyZWFrSXRlcmF0b3IqIG9wZW5MaW5lQnJlYWtJdGVyYXRvcihjb25zdCBB
dG9taWNTdHJpbmcmIGxvY2FsZSwgTGluZUJyZWFrSXRlcmEKICAgICBpZiAobW9kZSA9PSBMaW5l
QnJlYWtJdGVyYXRvck1vZGU6OkRlZmF1bHQpCiAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVu
KFVCUktfTElORSwgbG9jYWxlSXNFbXB0eSA/IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpIDog
bG9jYWxlLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIDAsIDAsICZvcGVuU3RhdHVzKTsKICAgICBl
bHNlIHsKLSAgICAgICAgVVBhcnNlRXJyb3IgcGFyc2VTdGF0dXM7Ci0gICAgICAgIGF1dG8gcnVs
ZXMgPSBtYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7Ci0gICAgICAgIHVi
cmtJdGVyID0gdWJya19vcGVuUnVsZXMoU3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFy
YWN0ZXJzKCksIHJ1bGVzLmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVz
KTsKKyAgICAgICAgQnJlYWtpbmdSdWxlU2V0IHJ1bGVTZXQgPSBCcmVha2luZ1J1bGVTZXQ6OlVB
WDE0Tm9uQ0pLOworICAgICAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICAgICAgY2FzZSBMaW5lQnJl
YWtJdGVyYXRvck1vZGU6OkRlZmF1bHQ6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBC
cmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6
TG9vc2U6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVB
WDE0TG9vc2VDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Ok5vcm1hbDoK
KyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3Jt
YWxDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pLOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpTdHJpY3Q6CisgICAg
ICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Q0pL
IDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0
b3JGb3JSdWxlU2V0KHJ1bGVTZXQpKQorICAgICAgICAgICAgdWJya0l0ZXIgPSByZWludGVycHJl
dF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpOworICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgIFVQYXJzZUVycm9yIHBhcnNlU3RhdHVzOworICAgICAgICAgICAgYXV0byBydWxlcyA9
IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsKKyAgICAgICAgICAgIHVi
cmtJdGVyID0gdWJya19vcGVuUnVsZXMoU3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFy
YWN0ZXJzKCksIHJ1bGVzLmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVz
KTsKKyAgICAgICAgfQogICAgIH0KICAgICAvLyBsb2NhbGUgY29tZXMgZnJvbSBhIHdlYiBwYWdl
IGFuZCBpdCBjYW4gYmUgaW52YWxpZCwgbGVhZGluZyBJQ1UKICAgICAvLyB0byBmYWlsLCBpbiB3
aGljaCBjYXNlIHdlIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCBsb2NhbGUuCkBAIC04MTEsNiAr
Mjk2LDcgQEAgdm9pZCBjbG9zZUxpbmVCcmVha0l0ZXJhdG9yKFVCcmVha0l0ZXJhdG9yKiYgaXRl
cmF0b3IpCiB7CiAgICAgVUJyZWFrSXRlcmF0b3IqIHVicmtJdGVyID0gaXRlcmF0b3I7CiAgICAg
QVNTRVJUKHVicmtJdGVyKTsKKyAgICAvLyBGSVhNRTogVXNlIFJBSUkgdG8gZG8gdGhpcyBpbnN0
ZWFkLgogICAgIHVicmtfY2xvc2UodWJya0l0ZXIpOwogICAgIGl0ZXJhdG9yID0gbnVsbHB0cjsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAppbmRleCBiY2Y0NGMwN2E0
ZWM5MWI1MTQ2N2MyNGY0ZmU3MTZlZDM0ZGJjYzE1Li42ZjhhMWVmZjc0OTliY2JlOWE4ODAyN2Mw
MzMxN2ViNjJjNGIyNjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVh
a0l0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5o
CkBAIC0yOSw2ICsyOSwzMCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogZW51bSBjbGFzcyBMaW5lQnJl
YWtJdGVyYXRvck1vZGUgeyBEZWZhdWx0LCBMb29zZSwgTm9ybWFsLCBTdHJpY3QgfTsKIAorZW51
bSBjbGFzcyBCcmVha2luZ1J1bGVTZXQgeworICAgIEN1cnNvck1vdmVtZW50LAorICAgIFVBWDE0
Q0pLLAorICAgIFVBWDE0Tm9uQ0pLLAorICAgIFVBWDE0TG9vc2VDSkssCisgICAgVUFYMTRMb29z
ZU5vbkNKSywKKyAgICBVQVgxNE5vcm1hbENKSywKKyAgICBVQVgxNE5vcm1hbE5vbkNKSywKKyAg
ICBVQVgxNFN0cmljdENKSywKKyAgICBVQVgxNFN0cmljdE5vbkNKSworfTsKKworZXh0ZXJuIGNv
bnN0IGNoYXIqIGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlczsKK2V4dGVybiBjb25zdCBjaGFy
KiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBs
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hh
ciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNo
YXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsKKworVUJyZWFrSXRl
cmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpOworCiAvLyBU
aGlzIGlzIHNpbWlsYXIgdG8gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMs
IGJ1dCBpcyBzdWJqZWN0IHRvCiAvLyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFi
bGUgZXhhbXBsZSB3aGVyZSB0aGlzIGNhbiBiZSBkaWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVy
IGJyZWFrIGl0ZXJhdG9yIGlzIFRoYWkgcHJlcGVuZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQy
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVU1hYy5tbSBiL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJh
dG9ySW50ZXJuYWxJQ1VNYWMubW0KaW5kZXggYmVmNWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVl
OGU4OGEzODkyYy4uNzQ1NmQwNzE2YmZiZTc1MWU5ZGE0NWZmYWQ2MzczYjk2ZmQ5NTRjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVU1hYy5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRv
ckludGVybmFsSUNVTWFjLm1tCkBAIC0yMSwxMiArMjEsMTc3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVk
ZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKKyNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4KKyNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKKyNkZWZpbmUgVVNFX1BSRUNPTVBJTEVEX0JSRUFL
SU5HX1JVTEVTIChVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiAoKFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJ
T1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkpKQorCisj
aWYgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JVTEVTCisjaW5jbHVkZSA8dW5pY29kZS91ZGF0
YS5oPgorI2VuZGlmCisKK0BpbnRlcmZhY2UgV1RGQnVuZGxlRmluZGVyIDogTlNPYmplY3QKK0Bl
bmQKKworQGltcGxlbWVudGF0aW9uIFdURkJ1bmRsZUZpbmRlcgorQGVuZAorCiBuYW1lc3BhY2Ug
V1RGIHsKIAogc3RhdGljIGNvbnN0IGludCBtYXhMb2NhbGVTdHJpbmdMZW5ndGggPSAzMjsKIAor
I2lmIFVTRV9QUkVDT01QSUxFRF9CUkVBS0lOR19SVUxFUworc3RhdGljIFVEYXRhTWVtb3J5KiBi
cmVha0l0ZXJhdG9yUmVzb3VyY2UoTlNTdHJpbmcgKmZpbGVOYW1lQmFzZSkKK3sKKyAgICBOU0J1
bmRsZSAqYnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXVEZCdW5kbGVGaW5kZXIg
Y2xhc3NdXTsKKyAgICBOU1N0cmluZyAqcGF0aCA9IFtidW5kbGUgcGF0aEZvclJlc291cmNlOmZp
bGVOYW1lQmFzZSBvZlR5cGU6QCJicmsiIGluRGlyZWN0b3J5OkAiQnJlYWtpbmdSdWxlcyJdOwor
ICAgIGlmICghcGF0aCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgTlNTdHJpbmcgKmRp
cmVjdG9yeSA9IFtwYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF07CisKKyNp
ZiBQTEFURk9STShJT1MpCisgICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7
CisgICAgdWRhdGFfc2V0RmlsZUFjY2VzcyhVREFUQV9GSUxFU19GSVJTVCwgJmVycm9yQ29kZSk7
CisgICAgaWYgKFVfRkFJTFVSRShlcnJvckNvZGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyNlbmRpZgorCisgICAgVUVycm9yQ29kZSB1RGF0YUVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsK
KyAgICBVRGF0YU1lbW9yeSogcmVzdWx0ID0gdWRhdGFfb3BlbihbZGlyZWN0b3J5IFVURjhTdHJp
bmddLCAiYnJrIiwgW2ZpbGVOYW1lQmFzZSBVVEY4U3RyaW5nXSwgJnVEYXRhRXJyb3JDb2RlKTsK
KworI2lmIFBMQVRGT1JNKElPUykKKyAgICB1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEQVRBX0RFRkFV
TFRfQUNDRVNTLCAmZXJyb3JDb2RlKTsKKyAgICBpZiAoVV9GQUlMVVJFKGVycm9yQ29kZSkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCisKKyAgICBpZiAoVV9GQUlMVVJFKHVEYXRh
RXJyb3JDb2RlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VE
YXRhKFVEYXRhTWVtb3J5KiBkYXRhKQoreworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAg
ICBVQnJlYWtJdGVyYXRvciogcmVzdWx0ID0gdWJya19vcGVuQmluYXJ5UnVsZXMoc3RhdGljX2Nh
c3Q8Y29uc3QgdWludDhfdCAqPih1ZGF0YV9nZXRNZW1vcnkoZGF0YSkpLCBzdGQ6Om51bWVyaWNf
bGltaXRzPGludDMyX3Q+OjptYXgoKSwgbnVsbHB0ciwgMCwgJmVycm9yQ29kZSk7CisKKyAgICBp
ZiAoVV9GQUlMVVJFKGVycm9yQ29kZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJ
dGVyYXRvcigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVz
b3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVy
YXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsK
KyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciog
bGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRDSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVh
a0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3Vy
Y2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMg
VUJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksoKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJh
dG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLIikpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JG
cm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBpdGVyYXRv
ci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+
IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9y
Kj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdl
dCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRl
cmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSygpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JS
ZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSyIpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9y
RnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0
b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbENKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5
Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxDSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJh
dG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRh
LmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFr
SXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksoKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJh
dG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLIikpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRl
cmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBp
dGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VURhdGFN
ZW1vcnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJlc291cmNlKEAiTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFr
SXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNvdXJj
ZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBV
QnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSygpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFr
SXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksiKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0
dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGNsb25lSXRl
cmF0b3IoVUJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQoreworICAgIGlmICghaXRlcmF0b3IpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJP
X0VSUk9SOworICAgIGlmIChhdXRvKiByZXN1bHQgPSB1YnJrX3NhZmVDbG9uZShpdGVyYXRvciwg
bnVsbHB0ciwgMCwgJmVycm9yQ29kZSkpIHsKKyAgICAgICAgaWYgKFVfU1VDQ0VTUyhlcnJvckNv
ZGUpKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisjZW5kaWYKKworVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNl
dChCcmVha2luZ1J1bGVTZXQgcnVsZVNldCkKK3sKKyNpZiBVU0VfUFJFQ09NUElMRURfQlJFQUtJ
TkdfUlVMRVMKKyAgICBzd2l0Y2ggKHJ1bGVTZXQpIHsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNl
dDo6Q3Vyc29yTW92ZW1lbnQ6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGN1cnNvck1v
dmVtZW50SXRlcmF0b3IoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLOgor
ICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLKCkp
OworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzoKKyAgICAgICAgcmV0dXJu
IGNsb25lSXRlcmF0b3IobGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSygpKTsKKyAgICBjYXNl
IEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZUNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRl
cmF0b3IobGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLKCkpOworICAgIGNhc2UgQnJlYWtp
bmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRv
cihsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksoKSk7CisgICAgY2FzZSBCcmVha2lu
Z1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihs
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxl
U2V0OjpVQVgxNE5vcm1hbE5vbkNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSygpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVs
ZVNldDo6VUFYMTRTdHJpY3RDSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6
OlVBWDE0U3RyaWN0Tm9uQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLKCkpOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKHJ1bGVTZXQpOworICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKIHN0YXRp
YyBpbmxpbmUgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVmZXJlbmNl
KCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFkb3B0Q0Yo
Q0ZQcmVmZXJlbmNlc0NvcHlWYWx1ZShDRlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUiKSwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJL
aXRGUy5jbWFrZQppbmRleCA1MTMwZmZjYmNjN2M5Y2U3NTE0YWY0ZDU1M2JkOGE0ZjA1MDE0NTZk
Li45ZjgzMzBhZjdmZTM2M2Q4MDEzZWVlMzRiZWRkN2ZjMTVjYjc5MWVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZTLmNt
YWtlCkBAIC0yNyw2ICsyNyw3IEBAIGlmIChOT1QgVE9PTFNfRElSKQogZW5kaWYgKCkKIAogc2V0
KERFUklWRURfU09VUkNFU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMi
KQorc2V0KERFUklWRURfU09VUkNFU19XVEZfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2
ZWRTb3VyY2VzL1dURiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUiAi
JHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZSIpCiBzZXQo
REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJLSVRMRUdBQ1lfRElSICIk
e0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIpCkBAIC0zNSw2
ICszNiw4IEBAIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVIgIiR7Q01BS0VfQklOQVJZ
X0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0MiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQklO
U1BFQ1RPUlVJX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJJbnNw
ZWN0b3JVSSIpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVND
UklQVENPUkVfRElSfSkKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1RG
X0RJUn0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0Jy
ZWFraW5nUnVsZXMpCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0vU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfSkKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBi
L0NoYW5nZUxvZwppbmRleCBiNjUyMTViYzlkYTY3Y2MwMTgzMTg2NGZhMTBkODQxOTQ4MDQ1Mzcy
Li43YzhlMGQzNDhkZGU1MTMyNWQ1YjRiOWE0MGM1Yzk1NTY3NWY2YjViIDEwMDY0NAotLS0gYS9D
aGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDItMDcgIE15
bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxl
IElDVSBicmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGlt
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3Vy
Y2UvY21ha2UvV2ViS2l0RlMuY21ha2U6CisKIDIwMTctMDItMDcgIE9saXZpZXIgQmxpbiAgPG9s
aXZpZXIuYmxpbkBzb2Z0YXRob21lLmNvbT4KIAogICAgICAgICBbR1RLXVtFZmxdIERvIG5vdCBy
ZXF1aXJlIExpYlhzbHQgaWYgWFNMVCBpcyBkaXNhYmxlZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>300960</attachid>
            <date>2017-02-08 14:09:56 -0800</date>
            <delta_ts>2017-02-08 14:14:48 -0800</delta_ts>
            <desc>Archive of layout-test-results from ews104 for mac-elcapitan-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>802653</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
VAAcAGFjY2Vzc2liaWxpdHkvbWFjL2NoYXJhY3Rlci1vZmZzZXQtdmlzaWJsZS1wb3NpdGlvbi1j
b252ZXJzaW9uLXdpdGgtZW1vamktYWN0dWFsLnR4dFVUCQAD9pKbWPaSm1h1eAsAAQT1AQAABBQA
AABVjzFuwzAMRXeegvBc9A5FYCBDChuwkV1RqFqAIhakXMOX6NytvUCBXiCLcrHQQ4YO/Fz+++Tf
R7z91e/6VT9hnKJiIS2mkyu4m5w4X0i6EJQKunzGY9R4StSzxhI5o+f8QVJsi5AvacVlomw8CaGz
8Xx5Z6Uz+keaPgN0GXX2nlSfcOUZl5gSKhliKpEUOWDTvwxDgxdzuTcyZ+CUeLGs04rN2A4j7rrX
/tCObWOZsLcuv/WnXmEDHwfCnNLaO9l+2PrJTAD/YIA7UEsDBBQAAgAIAHluSEp90kW5SgEAAGkC
AABSABwAYWNjZXNzaWJpbGl0eS9tYWMvY2hhcmFjdGVyLW9mZnNldC12aXNpYmxlLXBvc2l0aW9u
LWNvbnZlcnNpb24td2l0aC1lbW9qaS1kaWZmLnR4dFVUCQAD9pKbWPaSm1h1eAsAAQT1AQAABBQA
AADNUEtOwzAQ3fsUo2xT1/QGgRIJCVAjErVrN5kQIyeu/GmaS3TdXbkAEhdgEy7EEXDSFglOwMIz
I43fbyilwJZKuhoNu+WWs3iVshWu74U9txsnZMGeUCI3yCTvlLPUorFUo3HSGsbzHI0RayGF7VjN
c5ZXXPPcoqaqLA1auhV+L5FulBFWqIbmqtmiNsPYCltRrNWLoLjboIcVU7uzJAzD/+TNYxyXo7Mo
AjqbzK4gHGsUEXon4Ot42JPQD5/v/bE/9HsCWSUMDH58rbiF+UV7MUoDbwpYnuSTszqc1K3vWvtj
yA7aChuPR43A/ctV7a1iAT9JzJQAgUUDxo1xJ+APAa2QEgx6kK9aoAFVQpBcp2kA/qSGP6P/WSop
VevZ1h0EWZxmMF88Jg9xFgcj659ob/1r/0FgYLmolU7KLuF6sDTE1Q4H4C8u8g1QSwMEFAACAAgA
eW5IStcN7P+9AAAAAAEAAFYAHABhY2Nlc3NpYmlsaXR5L21hYy9jaGFyYWN0ZXItb2Zmc2V0LXZp
c2libGUtcG9zaXRpb24tY29udmVyc2lvbi13aXRoLWVtb2ppLWV4cGVjdGVkLnR4dFVUCQAD9pKb
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
hzxqUJRc6KVO0+oNIX+A+VXnKm3m2cZsLd7bvFswD6g8yyjm5oxnPUZnpXCFI9yDncPuf8PZUZKb
EAKCt+PwYIAWnu/Lx7Lw1kSieCdxVz5539+ISozB1FI4GOnqt6WoaPla2j+60D9ZHzqrwwJHvAJQ
SwMEFAACAAgASW5ISjjjDd/uAQAA2QgAAEAAHABhY2Nlc3NpYmlsaXR5L3RleHQtbWFya2VyL3Rl
eHQtbWFya2VyLXByZXZpb3VzLW5leHQtZXhwZWN0ZWQudHh0VVQJAAOZkptYmZKbWHV4CwABBPUB
AAAEFAAAAN1WzY7TMBC++ymGXpJKq6BN4cKtWmUF0pZWNBIHxMFxJo0Xxwm2Q5vzPgBXbrwij8Ak
za66VVGzZVUkDhklznzf/HhmbIcbx5gjeckEQMqY4NpzYFGhcIwnAlKEjP36+eOOnu+McUgYi3Np
waF1JHMETfiXlcFvsqzb9Y2DgpsvaCCrtXCy1Ba4QZBFpbBA7TAFURpDJlQTMDbXYGsh0NoLaMoa
1lIpcgGBkzQSLZQZjBbT5XIEBWnxFZJmVipVrokqaWAUR8sYruazxU0URyPiZK1650vQilnnzweu
V3iDeuVyf291DBTSqx0U7xySiVTSNdHW7+vSxA8w3zpu+vdxIG30teaqo+24nKnxSXSo06Fk1hmp
V4/gXRB+sReQxrWS+iSo57x/aTEctm1hh3zN5sktVRNsbVFpGDDt7zcg4NM0jqdXb2fR+/gzVfiO
heGepd5puMsd3OQJOIrlRCR1bo98Udn10Co+UGThAKyoqYn1wR6YPD9lGIhcqnTq3ukUN344/qvW
8LKT6tvj3tHRgkV5K+Mj8+WPFg8Rk9r2y/oGba1ccD9uL6Bf6BO3TYrXDmvvnNbujqdF0MDmlcX0
Yy7p8Ki4wP0ETc7mMj9fduB8ppL/Mqr7veovCVmtVLPghirpYQCwRxcAxn4DUEsDBBQAAgAIAElu
SErIhzv59wgAAPUmAABEABwAYWNjZXNzaWJpbGl0eS90ZXh0LW1hcmtlci90ZXh0LW1hcmtlci1w
cmV2aW91cy1uZXh0LXByZXR0eS1kaWZmLmh0bWxVVAkAA5mSm1iZkptYdXgLAAEE9QEAAAQUAAAA
3VrbbtvIGb73UxAxuk4WJiVZki3JjorEB7RotgjWi+ayGJJDceIhR50Z2XLaXvkBert32xco0Mve
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
sBsFBsu8EB4C2EbrIfSUF3r4pwn/DxcbodXt2tEeNJ3STGB02/SroUkxLcGFlliULJGbujAGTlmJ
XDmruL1alWvnR9YdRMSgb5cF49vN7svLY2Pc35lKHFr/rTEVlRkZCZ1jSCfkMnEad6hiVRQqQABy
UXoiLJ40V2e81sjfKysajJgChi+/zxp6LrlOXCoJ4hiswEVufIM9S5zVBEJ5Y1kqPvt+0cRx1Jv/
B1BLAwQUAAIACADyakhKqDN5AFQ/AAAG4gAAOAAcAGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC5EZXZlbG9wbWVudC0yMjk2MC1zYW1wbGUudHh0VVQJAANXjJtYV4ybWHV4CwABBPUBAAAEFAAA
AOxce2/bRrb/X5+CCywunCaUOe8ZITcFn226dusbu9sCRSDwMbK5kUhVDzfeT3/PkHqQIqXYG7vA
Ra8SSAo5c15zzu+cMxzFLeLpwzJfWuXEWsaz+TQvbq20nA3j+Xyqh7/o5B/5ynz4ZbHSxWoY6Hs9
Lecz+G6dzfPMwlhx55UFlxcPFnKsWT6d5kudlkW2HFwtylQvlyNr+3os6d8qsh8HV/Hqbj8bXuf/
LKfrmV6eB/EqPg9/uT6vCW0+vHU+zc4/6KmOl3pzbThZxDP9R7n4dP5PvVjmZbE8d89/vfKv9eI+
B/nOT0n1eZ6eb74vzy/j9Kfr80cqMbgo48xys2yxNYHzGTlEUeo4zuB9BkPySa4Xoy+aZrCRe28J
7tDX1hm8D9GQv3418MtMWzcPc70d8qvkNqdgv4Ux534dvv32W+s39HEwAPvp85t8tpuBHSRsB9uO
tBAZYTzCbEg5s+ACiHsRr4v0ztpPOBiORkQMJax/Pfyna6stM1jOgou/gosMEchsnSH2HcJIvBp8
0PNysWqMFwN365Y3ZTk1FM7Xy8V5khfnlZPqgQ2vwcCPp1PrdhHP70YDw0Qpat3cLXScjRGlREgF
F4N8OY9X6d3/rPVaj9GoYehZnBf2qppgWWdLvcjj6auK0uuK1nIVg2DWWV5Y0zzJHqbZEN7y5BXc
R5b1m/NZTCYTmcVOwuLs42ZmLYehXU99pLsYohTjimzlJkykzkdYyZ2jXgLJ4Ww2QsTZsaqZgZOO
9wxBQriwF5XCiK2wCjGmkkR/bFCoaYwNkTL51ylKQrEWpQQp2qZU0/rx2gWF8zRewYpe7sjBRdC/
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
Bz7/zuW9tIWZmAEUExlCEeB5hcLgsnGJ6rpdO2VpM9NHd5axxv4eYrUOZq3DXv++TRdZ1mDEkcpD
5qpgUaoBsggQvNBjGKjGx1hiH493vurhH1BLAwQKAAAAAABsakhKAAAAAAAAAAAAAAAABwAcAGNy
eXB0by9VVAkAA1yLm1g+k5tYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAG1qSEoAAAAAAAAAAAAA
AAAOABwAY3J5cHRvL3N1YnRsZS9VVAkAA12Lm1g+k5tYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAgAA
AE5uSEol4NMILAAAACwAAAA+ABwAY3J5cHRvL3N1YnRsZS9yc2EtZ2VuZXJhdGUta2V5LW1hbGZv
cm1lZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAkAA6OSm1hci5tYdXgLAAEE9QEAAAQUAAAAQ291
bGQgbm90IGdlbmVyYXRlIGEga2V5IHBhaXIsIHN0YXR1cyAtNDMwNApQSwMEFAACAAgATm5ISjA7
uLFLAAAAaAAAADwAHABjcnlwdG8vc3VidGxlL3JzYS1pbXBvcnQta2V5LW1hbGZvcm1lZC1wYXJh
bWV0ZXJzLXN0ZGVyci50eHRVVAkAA6SSm1hdi5tYdXgLAAEE9QEAAAQUAAAAbcuxDYAwDETRnilu
HxpWsGRLsYA4ci5EbA8NHfV/f0u/hIbd7o7pLDEIUXV6VDmgQoGkoQbRR2uRNF3Wj+OMN7JIBWeg
pZ/Wf4YHUEsDBAoAAAAAAGxqSEoAAAAAAAAAAAAAAAAPABwAY3J5cHRvL3dvcmtlcnMvVVQJAANc
i5tYPpObWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABsakhKAAAAAAAAAAAAAAAAFgAcAGNyeXB0
by93b3JrZXJzL3N1YnRsZS9VVAkAA1yLm1g+k5tYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAgAAAE1u
SEol4NMILAAAACwAAAAxABwAY3J5cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXkt
c3RkZXJyLnR4dFVUCQADopKbWFyLm1h1eAsAAQT1AQAABBQAAABDb3VsZCBub3QgZ2VuZXJhdGUg
YSBrZXkgcGFpciwgc3RhdHVzIC00MzA0ClBLAwQKAAAAAABQbkhKAAAAAAAAAAAAAAAABQAcAGNz
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
Eb0DdCKeGC+Hmo2Zyzqwd3r0v2B2dzP3SmDAuMM7aNBQt2sNMuouC0Dyejm0QkbvHF42Ly76tXds
3YtTz8Wk8yJqfME+Fj1vrXz7NnYMVr9IraFYs6HUebBDv+ellnV3rjG/zcN5o2ZeBUH+sb3QnDeX
hXM3jJ9aeTgbeQV5oxebX1/Xoe/cbys1sDunFVr1M/R5gn5xNhgpNmrrSpF7cdTKyjZxI/nYWHqa
H1eKlnyyFdwtBXO7bBXauPu42h8nsR3QDrom8WU/Xdl46BviwBDpo7azBN6K3S0WXsbs+/DU/nvo
P1BLAwQUAAIACABQbkhKN6cKRpkBAADbCQAAOQAcAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFr
LWxvb3NlLWNlbnRlcmVkLTItZXhwZWN0ZWQuaHRtbFVUCQADqJKbWKiSm1h1eAsAAQT1AQAABBQA
AADVls1OwzAMx+88hVUkBIfSln0AXajgzhsgDknjrtGypEpSYCDenaydRDe+LrCIXpzYrn/uP4lS
UrulLA7AP6RGyvthN3XCSSxuhUJgBunCQmuFmsNd/IhsIVx8L30s7mKQg9TaIsTAsNIGoUTl0CCH
plWla6kTWpGkr/nOsG41nANcV1q5uKIlwsvADbDxL4Vc5XAj5U2Ny9lWhjVlDq2Rx5FBq1tTok02
iaf2YR6d+BpmSd1x1M2GL78OxrahCgrg4uG7DqJN5Wj2MceKZ8whmzZuO/gouKtzGJ9OdlvnwjaS
+rJC9ZpKXS6+anDdWQHNTndMG44mB6ul4MBki5A1T5/XIMlAd5K8rzthmq+Gy7PWQlI1v4oWOiq2
gMT3se3pvE1BlGamODp8GmOazjp7UfY2vVzbyZSzGUm6NNKnVlWaeVezg0g+MH6ZmlU/Ur1YXoXP
RXmu/1KUNB3R/YviqWz/1FFasSAbgAahBvnW6STEbjrLguzhav/Us3RUhqCOz4NQL4JQL0OcnH9x
OZGkv739hd79070BUEsDBBQAAgAIAFBuSEpsOokl2QgAAIgsAAA4ABwAY3NzMy9saW5lLWJyZWFr
L2xpbmUtYnJlYWstbG9vc2UtY2VudGVyZWQtMi1leHBlY3RlZC5wbmdVVAkAA6iSm1iokptYdXgL
AAEE9QEAAAQUAAAA7Zd7UNPZFceTkKCEQaMgPlZjEAVRHmIUtAb4qYi4shBBFzVg0ADuirzkGYEQ
3PqsNShadAUStxZceURgQVQkjGMNECWOD6K8kUTKhoAJbwKh187I/U3/6UzbmU53fvkn+Z3kfvM5
59xz7rnnmb47zchLyDgczmyXt6c/DmdEw+EI+2cbA8uPiadiwJtd/I798ZzvwjgRcQmRuI2H1x0+
sj58w8YjdBdOqMsG+qbDR0JdQunrwkM59I2um2n0U5/V8HH+O7fhShqX9uJw9ma7PLfuTcZrWkyj
Wg7OJzLjOk+HfV/fsFEbsoKWUTR3VeKeIk6n1aUdukThFa2/c1kOLz11jIbwcXgCcTYFfKjl16Yb
N8YQvzx//sJgK+InW1Pgz9bZiPgX92w5h4O/Ij1NgSK4DGc8KfRi81aoMXs1rd0I9XjRZDWN82bO
CvjXCF5LRZGE+CD4xX9OpKBAyOdGUf9I4BDIdYsqfoCaFCZSPQv1uMiciTy7s8wTgvEJH9zQzl7n
E9Z7aWgoXy0oA2jXnxEtMp2PzZoHwUAo5v4/hmKsOuFVWevDJ2oWOcc3W+iYLXMMYE85ZosHw+jX
nqjiDC+8qNm5+TVrBHa9+sbL0jTfgMB6ztcTNeCb7ppHQRVeneH48ZN3kKaX7unyYo9N9Spu90a/
qmsyBT2s3GtkPKVG5kWVt5RwTzGa7kQmCRiV5cGDodyiPS39eQO6d/1PdbbCqNTJaYE/O33ugGTh
4laah2QybLrtbNChad5k40SHmC1TqZsFAqHT9KFxbfdODT3dMDkeTewwGPxddMma0QuMppQobZr9
XG7rxOB7y4FHSdyP5R3LOwzyZ6Z+pmOuNBXpzQSMrA3JInNX5FGYvNULmUhDB67JFqbPTsT3Obbl
DzPBRB7wCf4G43vuMIG7QAL9Ww5A3Qagq3PlD5vMxNeHvJqW1dwIU8h0FPGvSvBFfjCJ/gj+xptE
S6h7Ak+6PWkWkgbTmAXSeLuyHObtqulqmioapzafceG6BROxqcjdMaMrCkLwdulG+4VwV98Gu/pn
jT3UVRHI3uNf1f7Hoak9MTEV+yLkgLt7CTtWEyV2s455YWiOkOf0trcQ7vdFP+bpiYFFC6pC03sj
IoQDNVKi43v2RDPHL2H4YMbukeyaypHx/hSfzitTfxG7jewNFC8IkXwb1ZbGI5Q1vghGlUQRpaqQ
by+J6CqcZjkXsgzzkhNs2PJBLTmD7TTNGx9WK9Yar007wxhZUM1QljplpH3TreewudfD12Y8Itd9
ezbFEVUcwcD7wPbKVTOeURYwkZ8m50BXX64S8eNVkSy4Zg+etLJhIAYTQYtkqIb03c1EmU4bO3Uh
IilFszgjYkRxKOWjz2i7ZVVYunq4xbbqSHHtKv1uNkufOupmE1NveKWgptwtVJCDyiRDFRXypA4O
IbvPKU1TWvDwZDFOX3FC3a+v7qkUM1P7/BBHvUwp9ywbty4VsFWlgqUGHyuBx3z92D6qvq5LbqEb
s+5SWJu2TprUXc6+/xUqx+UEg1ld0f3XcAvtBaXzVsvKg2VRBMpCrdkAF70FQUiY/BNqy68V8Z+f
3PJHuOUrQDdYJlHBSn8OKr283dcaVrqDiL9XGs1Fs5AxFAzl30VJbW/mHYgK7hp2IPkWSISOAolb
frqt4Hutuqe++6F8qFB33VLCy2OU6H0ka/5hnropHS58PHEs4yZJqUasHv84VdOTFuiijBV2FIqv
SAt3CFPyGHmDKcNtuuSKv8XJs6RxPHENiyq2TOvndqi0rQFtU+dqg0mhl99Y57uK3dze05SxWWO3
TJVaiuLjQhkn7sPZOZnS7UE32faCF+eX/w6hzo2N5GnLucfdRUaNn0vvxhNbVPs+Dvw87tA3jjLl
gAOHftoPNZK8O4jg3x98NwjjRdkE8nCULESNV/dAUMsq7vXAA5AWY8lEGi3crVDzUQQ4oSMOy2Fy
kE57ET/HLnUbatZrAqFuepLnhzIdQPCbA8Z+jxrWigFm8Wk3IcpUziecyP9kgmo2LIDJMk1xR5mO
4klKny5z1ORYCTArLUdSUaZGQPDfClRqnscjXX1v/EPd3ex8ktLZgTfF4AaN3uDto77+oAApThD2
Bqq+mLW/xpImicqq980Xoff9xP4Jk7oye6flQWq23xrBcCKr1U7gsFfhEUBVayqrAqisOyXp+Yym
lsjYAkYlc/h5EuWTeWaSd/1FyDtnhYi/dKV3BGRLngViscx/vTUM4Q9g5J1l8moJXNa+FcFzz159
7g0zRgPR2XrqF2O4LAlMse1Wq+jzod/nQDIyacVb4bJlYEL/7SJ1DuZZ+RW8dst+EO6NULe/TKJa
C7bcOuOYJaUM5Urrun3v3JIpnYlpPc66KvOGsLPmn+cmWdcIT31aWSoeU1oJ0kz6IpZ0LNe9y66t
yddOlYoZPnTbe5NRHbxq5x7NSnSHM5hhjR9D+Q2gfOKqq8IeJJxW3LfYlGvgPWQYRq4b2iRcH+EA
44vOI9NWexrbdGJ7oM3HgQZwlbi2M3xJwZe6bg/oLCGUpY7ado22bnYf7q03thIovMaOU8W5z2bw
pJafopFLuWIN5O37GvTqfUvPwNMp5jgo9HfjzZegCyWgPwT/9fAi6IMUHBaY0L8SGqs++vh1b7w8
rGTx/Ewp5RfOjOYhx05bmpPtMII6bWvMq9S2NFlZatL0r2I9a/Jt/HLd/uge35l+W8QX8kOncn3h
VRqA/XyhpQxqlIG91dTRCw13AdbdKofdM2toYN9jIv8s8okr1xa87s2TBdFX0gRW30lnkl8d9Lmw
7J08FEZCSqbUPDlq5g56jmwvmXZpE7j+NG9TDuwjAn660ausim9gI3kKRqRkojEcCV9ai/hDoZEB
MPux4MJLzcDDTTcEDle3Ay1XoW4Qgj+/MwQH17gBx/yaXFB34oVM5MO8RXw0CwFDwVAwFAwFQ8FQ
MBQMBUPBUDAUDAVDwVAwFAwFQ8FQMBQMBUPBUP63KNOkFtfsk+tX9HniwGvXDl/Pkm0hp/4OUEsD
BBQAAgAIAFFuSEq8mO0/ExAAAKQwAAA0ABwAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbG9v
c2UtY2VudGVyZWQtYWN0dWFsLnBuZ1VUCQADqZKbWKmSm1h1eAsAAQT1AQAABBQAAADtWnk41Gv7
n5lGRZuiVYZskaVwIrJMvWlSKtrsRk2ohIMsYzCjVZIloaksRR2VTBsaGuO0MJZMi0gYHUuqwaDM
yDDzezjv6flev9/7z+96l+vtHP5x+VyeZ+7787m/9+d+vs+ctt9GmCW3RA6FQs2y3bRhBwo1RRWF
wjhNnwqQi6FHfwa/dI7YOB0hHfAi+QaH+KG8vcxW/WToZWy832jfPiPj/cY/GXmRvEn7DEmmpntJ
3l6Vpba1YBE6eAdhPaqgbuknFGqVju2GdbvC0b3NaP8OzjmsfeBvZz4dMGc2uJTTfC6tSNM0croZ
OXVJK1GNXrvwfHdleASTSnWPnKuKp6HQGOx0eVW8qmq/dczijfII6L0Uqyg/B/P3v8ZhQ7SMxkY/
eQQiF+vz/f9pqJgLNMy8HJNYiKBlnhrDHWl4Ozz6tIPSBojQMO2LkWFoZdOe5s1SgwgePTATEZW8
gj1+X/1UROjZtPCp0+F/xMpqqxoeOoZA7PEWU7Dw76dYxaRFhesQiLZqJiIl7D6M3Kb4d6oIRFGe
i/rhaIj02+qSdlv9ETW3fEzSdqumg437JNVMfBBOybR4Z/UprCt5QQA3hdC8fKzA4lV7L1lqnSh8
yWt19bxPs5gqdzBAWMa31FUa/PilWaxN7tEf4Q11DmS28XxqSAEvRQXLE0WjQitXHOVMWRjLh/wo
bLeP1Cb7Fk3vRErJnGGpsGsgnTA6TOoKfDRA1OJ0rHSpVNFN7DgrNVqHo740lziRlwYcfnwBI5nN
ucB8qAuZ3Cmnrbqz4pAOREgAIX1oL4DJ2elk0+wW37oGkXiAxNPPlELCVl2jYYy88tMQyHWAeBv0
xX0nvfw8Ro5z/q4LArkAkD9pQP1vgl1FYlb3qsrj2M65R/uWqiduy3uxd3D6urCEZMLyXR9XkY9n
r63k5ChU730tOyzLOZLsAku4/CHG3RrtnObVMiu61TmVmqKaSLwyp59Anin/mOGaVLkyHi3RTkSv
Hw6ZMTh8wrBcpcsQP93/N0W0NdrsRKs9DHa1jGLSRWbzRbizDkhRp+fkvO+1mweir69tbYAP4La5
9vhte03PwydoK1om17uvSOs7mz/H0TBBcqVX4KJDgJbVwcWr4XO5Ezz6O9/O0vy+yH4nHn2DXnpb
9jtPl9WyaZcf+2vDRRdBO3je4rcV9kVFtEynYujf4KJ6RXv8oQ/+vjDLX0BT+eWO0ubvi7KB2DuM
w1wVvme5xgb/r6Fm+DM9gt1GmR1stwmPW/axznDw43E5Za1E+SPdi8hH1p+YnUKYXhIcb2F+ZalJ
Bt4RiPhJKPl4otNwT+RgUqUThtR6lnvKomLeIr5/pFVF9ZPWTmyaQNhbqWQWkAIL6PyC/jD85soA
MozXGfRBvt8SSNUrQNWnYf3tsI/pZtP2s7aqQ8Jd8GgdZXYX5G4/SDq/+CBMaPMMbdVrHcUWcNt8
GubckMlZKP5BIP6R0bTl37dNmm+Pv8e7Dtuhtn427XxC2yDc9h6IraH5Jxj9NfDBrwZcM+G2e/Do
qohLG6FmD4Bm5tE1UDMOKCnngNdIVuwnSfmxSBl+t6RYz5UQLt0UIx5jO6ZXUi1fSbfgDg4ILcgP
ol4JqtX1eZnLE4u2j7iTc581f5FQcb05rNLicm80eabiK15PVCNlj0nny+5ikcPgW9evLH5VhyWb
xU2r5F0VuG/HCb71RhVZCBdECSK4g+GCm3WSM+MPndzyEJV+aW9Nx8rE4YHK6o7wDrZdUiXxQYL1
HlylktTrqIXkasjo3cE1vLfHDWVGlZMMgwMdYa7XQYu5Hv9mB0QqAFJR+8wd6nthBx5NN9qzBSKL
QH9bbLwwzOY7z56b0TL7q530EYgdQGrdWuZDGnUA0zqkQkWIGALkTxrQ+1vdRX0iCndvgqwsRx3b
arYRl2F/5ck/sMjzT64r9CskfVIrhLNfTKBMSTTmnl7NQ6XRkvsrpFrrcOz1Ku8TBxepHicWA5Nc
NGXUATfleD9/QefADBLNuppEk295rIOJ/ou61X/OyPvfGA9Fs0VLP1xIolmsf5FB6nwpO9/c7h9Y
pNlh85gCIOLr3rGXM6pI+cOdyxLvYitKlLLmkOM1VzW0DkfGp54qrZLVa+ttTjQN4mkhm+p7wWRX
nbSaH56U/sLV/s5FCf2SZIxIDHyxiq1V5dhgRK5N32J0gupzu0sthZpxjsHRuNFq6qufUkm30o2K
JigXpp2xS3jVV9rnohXlY36TMH58NFA7jqseSzwY9SW5SsKzdDzsNbiGaGAZJ1Z5XW2jJaaI3By0
LDc3kVzoFn1PfTQvVXIf7DEw+uZQLeFVa1CWf9nGH9l+J02gcVOyZPXITbKFECfiF4m7OyNY0U9X
BxQ3Z9/l7H/qGSldYjg/K3VgR3JVOP1hDgtbIsfxeOJ2CnEQfwfS7B31Q6S5Ipu2gTkLob0raBwZ
7F6o/QYggXbxXkT7AdoXfim2hNvmgfN9l0k8FMkPaB8qKYLaywPtr7achNrnAe3r69qEcNurILbz
zaugSIXgg999a0ZovwuPPh2khNC+CGi/ltoMtY8F2jv4P4Ha1wPtD3UHUOC2DkD7ar9F/ywpaWKR
o2/7PTeDXnUXH4pAOcZHyPWg+qQFi7EuwtuikYK+PEeZzCZrytgbszr+wnBvac+QRHft4O6YtCg+
y7HbjLH9PX3sfqO44HNeGPYtO6cxrCCL9tXMLA6hl/K4hoPuMta/Nc7GqQSf3s7pCEwsLPMvpW4r
aOT3NT5q9T+xL7kqdq9YsnrfCivdjmtqKQNGgQSK7JH5SayTzNnoH4XOH6rG9EQCRsNTL6bbO8KD
OiFvLYbbk8WS1Ol1C2Uf9LgKhtxbHRhyFvepwpFbwZcbV/bXSpr4Y46hnbcw+uIGCqMu2COr3Fjs
wxC5v3EQTL9DJTAELYzMJ7h1w0u24LVIXQPBpkHfkhd1h9HjU55xMzidhH35bV1Ge3CJpb8/21FY
EyrmHneR4zLEW7TyrnYBLVxu8t3f5CvQ/14ayhsbcr2azB+LCXItAqmHu5b0ogbRuabTkGhQpSjJ
GHdPScjmMrWU3NC2/EI7nM9I/tdvyiH1LgZGZptLBSW+9K8Zn/JwMc8xgw9j5SO0RdbXh54TJjz0
bmpVRyTzq3Yf1U53Ib1H0BpsQ/+q7ZV40GvwoUJW6mGc9WsXJniWdMQU3ZSejNq1t/nWv7qUpeSN
+NZ/vPVh4C2lhdHcl5XCHxqZO95Zj1Wopcw9NjDm+3RX5J6KLTZaHV7tCcJ5H1eoUmYFK2MmDfHf
0MGd+tqIt0/XBDEfJB7I6GWFYSccNMO5rlfhQFMxj19akuMxf8JLHbvXMIi/Oyijh+MoM266Hhnd
j6wmjFhQejOHN9dTmuDRxozGvOru1EboFSoPNKwJmz96nLg2PLJW02pZYqVlw0hJr8SM6cEoJX4J
LZ0fZ6OlfrJX3Bh7Yzg/Pj3OrqLmqXKv5ovdeOGSD+bYSUP8N9TYnRY220UhvSvooMpL82aKYPqE
g669f7l5+Yt7AazGsBACa8WElzLqAj3YvzsosSmZITduuixzLjlqwoh5YbsJLPVyiTKrLJgdMZuC
/c1XD02PT63ktnK6CPsut3kZbVtgHaaWonL6bnR6jRPZom/j78/23LejshwrktsJZE9LP8Oe0q4z
aUiTvvxfTAPRNSXNiz9doKLzM5tBdDfgG9xwzOoavLDy0i45fnCml3p6CKP+FjcInF63rjgxZMa9
l1xT4vh5NzM3V2rS7WxALY3LMZ3BOTZdaDanusGUyoynn+HWmjEtro/UXvZpu/gotabDrY3rcrSS
VZx61i3hfoC7s4F+xhdec3XXo7XiR1XuUtmGQX2PoUZO8p7nnXdFb4nFrdYrG/lD6gXk0taTCRU+
3vXhkd4VdhsNSB8Gh9P1tzQRc7zbyyRaoKdKQm0JCghOPd3xaOewgRWIHKeBnKdll2ggID5GjlNy
xhE2Tfk1gHsz1BtNBOS00B7f4P5oM2JMBjXAQecZ2CKgEhrmXl/7bgSls4EIs/EhtgioAbTGkIUM
+DpP9WdQDEGom1sQ0B2DbFp+aXgqosSmAPmm2LufQ0AhaJn9rc9uIRRdCqpiKe3zOQSUD1o+38BD
E/ENBFCdnahd6Rr/Cqo8mVRqYUGpXvoWcWxDE49CyPZqixBk0OtaF7y91xZBpRxV95g/brqUkMwv
I9iinmKe4FJ7nuPE8daD3nU5euIkK5FNiLShjeke4ncPy/6fDxm/AW9LFShEK783/qppvSwFGK0Y
GC35D6NNPTNeGZyov1dGUNNY1jRCVMDSN9yojJWgNOrYW8OQZ5yZIJOZOu9iIHIKpKsy73wzJGXV
MRrG6G9xoVCV/mVg2SlslwkMrhYQXpt0VRnyHRlLwwwuW8fcCnkzBnsb5x6YBhEVtWxa5CZ7/5Q/
Z0g1Y+JbIQzE/DUuNo/+qcUvRl98W1S8fE074gWGZ000f6xMJyHCZqJ2Up3rPi2cGNOy3nMcsW/Z
V4ui6xpHaqRRQ+g+Xws0Mz69iqtc9eGP0yxbsNGEvbri2323iqp2UQanq/ikNfVq+YfteKtAHZEd
DXnrP/nFiMmA/goBRfr5Ff5xGxs19jnIOcyWNaKXXhnZlLvDKeuLnhIzn3LNIyqthlR2eIdOPveg
1/3ok+M9tz9z/ELWjWf6iyiJaEnhq1QHkXcLWV+Kgshu7iaCxewI4R6T/w2FbjdheDSTweeHa70Y
yvLUb2u7clMSMdX0MX+3MbnHUtjoJ+LWDEWMxfry/Iuv5AzQF6/GZdEdUgKJ4+19PWjvSw3frka0
/Lzl4IhR01KBuOIC88+2HNMLcKSyBAcVjw8miCuui8BHl7B+hYs+g5loyKjYEFrma+Cirz/Ogovs
t4NDUzrzLOKKC4xilzcGrIKLIsB8yKr1g63k/U/AQX+KOIa4/QPhffbyJyFu/8Bn//JSCS7KzgQn
npXBSojbv61g0DjL84SLhkB4EfRmmGX5QaDuwa9TFf5ZasqDpJJDW4lpNdeiNvAPC1jq44chUZ1d
t/+Mw00BLLblr3ORJyBXoatAtDWwXhfTQ3QIno3GCOSAL5cerYPnQny264QvS+M6FaJDAiyrYrKS
qjpw/KjWUOkjN0ZjKwOMbNU2HcbGhzqtjHO0OsrGAzmOd0Sb7bvjixh2/ioS/OeqM6ZLMvbmYtn/
fygDZvthKQbLmz/8mVneoXSeMYDtNPLQsg7TuPTHMXe0TKlptKHfZ3zS0L/zTSGJ2VisjBgSbdHU
aRo3/BbAANtBgAPTykdg5ucAsqNZDy56Bobi9jm0IZinBkByi5zhmjgwxz5TQfGhDJtAl7X1uw9b
qiKY0uOsUQ2Iy0JFe/y5d96Iy0IwWCtSUfmINwagD2sUPodN194Nj9aRoJyyoJg78GjbQ5fgdymy
H4I6GkXfsYJJ5tIw5+pNzsA1gaAAhqd4RiGZkZkkZpKYSWL+bMQME+c6Vs/UrDAaRoEfW5ttGwrW
ex79H1BLAwQUAAIACABRbkhKa6N6WEADAACfCwAAMgAcAGNzczMvbGluZS1icmVhay9saW5lLWJy
ZWFrLWxvb3NlLWNlbnRlcmVkLWRpZmYucG5nVVQJAAOpkptYqZKbWHV4CwABBPUBAAAEFAAAAOsM
8HPn5ZLiYmBg4PX0cAliYGBWYGBgiuAACjDsl727hoGBO83TxTGkgvHtHccsWWsB1oDjKZ33+j7W
bTr24cdk+w4HE42reXmr+twz7TWD5t4Wn3SyuvqzcwMDIxMLh4CCwyhjlDH8GDXLD2R/L/7euNs4
rlz+01brp5+fBctZPsk151y/WON+f1i0T8KMhiYe7js70pm4ip6lfjVgZJUU21F4nkXkyZnTrxKZ
uIx0Ch7P49Q4MXP61cMsIikRD47ZCgdMMNZf3Q4U3HCgt1ptgUJ6XBg/UDCxUfq7j4PjuT1r5ICC
h5nM381saJpTGWkLFGxjzbtjzMhq+XlTFVYLOcFObmRodN9n/myis13Z8j/7Zv6Y6Dzvp9F8d7fK
JxOijv3jD/q8effOhiYT/hsVpoysK3/evBvj4DiLPWfPrIamK3/e5OktUDjLbBbn6+CYVVdmLh4w
4Rmj9HqgU0ztd8/m1vD43NAbDnTmrPl3z7KKLKk8cGw1p4bH2fPvnjFxXbJJeHyVRWTJs/TyYkbW
TLkNH7OYuHBZZzPYo/6AOeeeMvvy+VutH5d+V4zfHWyXb/d0ovO9sskfrLo+/c3YepSljaqxR25y
mQ5xModAxZPqZGC6TC4/9X52p7zlk5n6nytTprjzrUx985/a0UdualEe9Jl9Miiz/47c7Ry3fT4w
sz/7/C0ZmI9WH96i9Nv45Xd7+T8zGRpDHRzD+P1ZxBhZIy1sBCJYRVK+fnBJEAyY0HqYma6SUMfv
cHxw/Ov9jX/FZt3+H/ntjKb8frPN++ry6iJ/hS5PjJr4N3bV9v1v6st5d3OkcGl4pOnliSotUFB0
3OG2rKEp5dmjMEUmLiGhlmy6Sg72kr+xpPH6u+ffvN/zVd6tO3X93Yzzt/tvzv10nq94t9+J+B9y
RfzXFQQ0FyhM3LgjpKuhaYnKQ7mJQP9Kdnsv5dDw8BJ6J0hPSUGI2/9vO9D/+nX+/tZn3+qn2Raf
Or7+7Jr182fHT6u7mjVjkkv3WWA60A3hcXxQz8j6UUtgh0DABG4ZecEAgfcMjdyMrDsPfBQESvDR
SmK0SQFKWDOZ/jP+Kw8La0iq8wC1vD1d/VzWOSU0AQBQSwMEFAACAAgAUW5IShc5wdSPBQAAMhIA
ADQAHABjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1jZW50ZXJlZC1kaWZmcy5odG1s
VVQJAAOpkptYqZKbWHV4CwABBPUBAAAEFAAAAK1YS2/jNhC++1dwDRSSkUhOdm+2YiB1AjRAii26
uRRBDrRE20QoUSWpOG7h/97hQxIly8l2szlYNjmPjzPfzFBJPt18XT789cct+u3h9/vFKNmqnOkH
wRk8FFWMLFIpv0wZLUi0EgQ/e18jxrkkUUoKRQTJYq2dTK3WKJFqr58I/mKa4w1Z8kJhUBboX7Oq
/0ouqaK8mCG8kpxVisybvRyLDYWdy4vytV3lldII7DICHZohSdkLEVbmYD4H3S4QzTee84zKkuH9
DK0YT59rdU8/BVXBmfR0LKhoxZXi+Qx9brAdhvRWFYgVnvqOZmoL2D+T/A01lfkhwllGi80MXXiR
GFRjeEWYp7mGjWiNc8rgjNGOrJ6piuReKpJHem/elZT0Hx3WyyEf9iB1IA49xwsIdZHRFCsuhuKr
8IppnjDWuqzxpJD1vIhkiXWq2/0VFxkRkeIlRLnJ9IrhNlMNPIsuloSRVBE/eIq8qigjKRfY0qwq
wKomUG0kmTqiJlNH+xXP9pr9GjRKGZbyalwfdWwJnSixaHwkKlsA7bPeiss9za7G5LU0wCKToTHK
sMKR2pek3RojXqSMps9XY7mjKt0+8DvN3lBtqZyMF7dODpnVZGqtv+MXp6rCbMCr3XjP57WR+l8e
M7peD/jTy+95uwGZk77gmzgVelqUlULWUbol6fOKv47t+QvoAIoYz1tcbEBA8c2GkWu7EU7GyGgQ
nUFjZ5HYKlpz0eovnPwsmZrdoSCcRpHuU2B/J9EOTFVCjIg581ILvYenZ6khxQdgeUz4EChnx3Hm
A4AaqpyG8wYMo22odAzBcgg+dWEvRqMkoy91fXcnheNuKciavl6NT0688eKeY92c4zhOpmBOj71U
0FItRnSNwh10Rb6LFZHqz6oAw5ORbUr17zir8vJaPkCXCifz0egFC5Q28+oKZTytcnAW/10Rsf9m
+hsXYdCbbEGtq2GDmu1/QU2UAM28lhgYXb0G52OA31Zh4zbeEHWtlKBQhCQMvEgEE3SGgoZ/cVls
gsl5a9gEXBtuYIOpW0b011/3d1kYdBthrXywj8By6CejtUZ/AKvfPPtINc1+Mk5t8gdQtg3Xw3hw
dHBQiAWz5FWhgB0XsLuuilQPxFpkyfOSEd0RR/ZMZ2cDynZmamYPWU7Ql0kDXRBViWLezmi55Tsb
E332xzrZTxMrc1zmdl0qLJRegSozu1LvHI5PYG1XgtUnMAmB4xZkZ8dKbdJsxHCrun2BMN5TuA9B
gsJAWwnO+xHpKEmRgkVwYhftIe1eF1R3whGbsRqZTo3ReYAuCPbc9hBFdJ8M6lB0I9hYeOoFRBBJ
1L2mhGzSCS0ShcYvXP4QLUynaLNlDcLWU2y4FJu2qEMTC5LzF4BTX66CnrcWFVz/yIaL/Y0xbf22
/BcE7oIpWW4pyzqitpede6JrKqQyghOPQJ1j2fWOmT5wSPBp1Md0c4B1JOKmw5mh4vfhfvl1J3Iw
id2knLfGXAP6TlOuLIYMmQ7xnWZMg/KM+GcHjWUlBGiw/TfIXl1ZmkvvEMZreLoLvEEbl03pp6Dl
m188qn0V8lH2Lmp1UWuvJzu2FW7P3TocbiN6B+hEPDFeDjUbM5d1YO/04H/B7O5m7pXAgHGHd9Cg
oW7XGmTUXRaA5PVyaIWM3jm8al5c9Gvv2LoXp56LSec11PiCfSx63lr59l3sGKx+jVpDsWZDqfNg
h37PSy3r7lxjfpuH80bNvAiC/GN7oTlvLgvnbhg/tfJwNvIK8kYvNr++rkPfud9WamB3Tiu06mfo
coJ+cTYYKTZq60qRe3HUyso2cSP52Fh6mh9XipZ8shXcLQVzt2wV2rj7uNofJ7Ed0A66JvFlP13Z
eOgb4sAQ6aO2swTeid0tFl7F7Nvw1P5r6D9QSwMEFAACAAgAUW5ISmrcA1PqAQAAFBUAADcAHABj
c3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1jZW50ZXJlZC1leHBlY3RlZC5odG1sVVQJ
AAOpkptYqZKbWHV4CwABBPUBAAAEFAAAAO2YzXKbMBCA732KHTrTSQ8EiH9qY5Vp7n2DTg8SLLZq
WWIkkcTN5N2LwZmAY9JDg9UDXEBasd8ihL4ZyMbuRPIBqoNskGbNZd203ApMvnOJwDTSrYHScLmG
H/49si23/k9Rxfw6BjEIpQyCDwxzpRFSlBY1ZlCUMrUltVxJEjQ5XxjG7tttgG+5ktbPaYrw2OoG
OPbvuNjHcCvE7QZ3q84Io9MYSi2uPI1GlTpFExwHXpu7tfe5yqF31F55dat981Pr2hRUQgIZv3ur
Au+Y2Vu9HmP4b4whmhe2G7znmd3EML2enZaecVMIWqXlsplTodJtX4GHyhIoTqpjSmeoYzBK8AyY
KBGi4uF8DhK05p0EL++dMJXt26/nMBeCyvVXD6WXdICkqqPbU/cWCZGK6eTTx4cphuGqPi/S5hwu
VySow6QZMptn7BAKwwmtQsUJInjFeG8quzx1EuYOqHkeUSdUJ886n7lYTTeRkzWcX556E05SF9Tp
FyfUhRPq0sWXE0ZOdom/r+FKWpWNzsvpF30fOT3X1C1zaDn1UtnlqUPL6Tx1aDn1Up0867By6ltN
w8qpdw3nl6cOLac+6rBy6qUunFCXLr6cMHKyS/ybnLZqlNMop1FOo5xGOf03cmpv2CRofnuRoPkZ
+gdQSwMEFAACAAgAUW5ISh5bVbN8DwAAMzEAADYAHABjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVh
ay1sb29zZS1jZW50ZXJlZC1leHBlY3RlZC5wbmdVVAkAA6mSm1ipkptYdXgLAAEE9QEAAAQUAAAA
7VppVFPZmk0QVFALZFAoLIgyCQgKCIIGiIogg4igzAoFxFgMIkOBYQyWrwRFgwKBCBrKCS1mkHkI
z1KmUMSRGYISiIgQCZAQEpK+UN3cu7rfW/2mXqvbDn9gneQc9rfP+b797XNvipOjzSapb6VgMNgm
26NWzjDYGgQMJua+fi0wcjvq0gXgl3bkEfdI/3No/6CIH0Nghn4B+8z2+BmY+hueNTM2QBuamPqZ
+u/ba2JsuGeviaHJIQdFeWASPMLZ5hCsuGvbBAy2p8bW6uDJi/CpAXj4gGmVhNNM1lZCn0dDeHxB
EHJsOhlh5Zx1rmH015OGsu3rcjdoxI+2hwsX67g7UDgYXEx8vQwChUOhRoRiRqkIyFCzj5hU8k/Q
7zig4CknlK3AEZzYh40y4BwZOSeU39u1m8GRPJzpmj++ujLwXFw+TbHyIGRkJ6JrdTXgDwO4hLp1
iAxkRCrZSATh74ew0Hv76S4vt4vCO2IcHo2kjyfHPhBmIV9/mMKyzvEe0DJtPBvMj6uEkObqWUev
VTOWjPDsd8PmXr4VOORaqYlgdhOjKHMTdo57Jz4T2bXFnI3Ebps9wDuPzdWL+YxlmY5Hs4dYpl5z
vbPdLFP2yWjyjpenUIRntkPr+CXx2Ibw57TEIuRwKL9DHNtwb14QNDaTMOqm2TaqUMTx0cVzlHP2
PMIlrjE8q+96ZDUKXzu4RECHe8hV8Ahmi0m1Zde6K6xSkaQtIZ+m7V+pDXLjL7UT4T/udwrk85G8
E+pR6rtHIMGp2nm4VOK1U+CmZDuj4ERD1xwwCQBEYl8roLi5XZMJZI73+O00HPLQyzv+9FeSCnUO
Kts/dhmwPl6WOq2Jl4lkKGIjD9UG74fT4ER9Z2UIkGJUTzSKgFaKXmfp6joWKkufUZuDJ2jj4YcW
ysSx/GbFkSyWIuKyqn1aq3TqHx+UXrYXj1tHl406LLka9FuAhsDx8z0gMfqbnVD63+/LAI/2MbjE
g7PTUcdWYx6RhUuIlvlryyTh7z7h8BoZhj2XxembL01vU8M7Pn6JZq0/GH3jpo3WyY+G2Mt5B1rb
7st1oN9IRiqkoYnnacJPm9r9Cxfo2/Fl4i2e16lXkC2yikHGFqr+Y98bmyWNFcTz2NZdA+rgCXoo
wVdOez0zgASPWSFO7Na8yXUQ3Q8Auki+yfFVdAjdPFxA4zG11XPk5ImCa39H/l1u9dC3AaniEfoG
zIuMLU4ou9bQWZCGcjGpo90De6FY5EVQRFD+USjNrd016L66ZzymfA1NKIjE8ofUlsj0m1tCqek2
A1pLxf9JJJkk7NMS9nSfWI4E3cDpKKaCYx5aFNx2n8r8XEAPq/pYxmgfzab1RVNGg1/5U9NbDcgV
TEJr373Wu9WE1rL8Op5CUrFYubzjJ4uRxCnKaKaa4L+qIdnwoErJuUahJ7aB1nvZYDnZDCLKdMA4
XIDYXVoCXcBQW4B60dL54leQDgdAUhyUCo6BkqLogoIrGW0tgFTyh4CkoAtNIJLiAEhKp3chRFIy
AEnJKOuXB0kzAGj8SgGN3Md4/O0FdOGbtsib/WBnlhQmUde0pnwXpebAQlm5TmI6Aq/6i/QXe+xG
mWd4jbbRdS0wckYrbDvf/RIywXfjygeXNLx3jBxAZJUq260GnQdIvbNRdL3mKjEXUnBi4ZL1v4Dx
BAIRGkdUB4ExZwGNo2iZv7ZM3JxDI41pnlWrqY74j+7mT/rpNuvrIlKR+385lNWuJj5kZq1yx0k/
xzGvALeLEskTuIUeVfF/oSWNTdXY0x0YZ0E3IDS7F8xwFXWlC9old/lMDVTvCx/WBE/QTr0RGi7j
Bm0clPIA4HAWVv8AorPbsBPxcLQaC6LzADr8yZBvwXP0GqhcEwshd8ES6YqCt8fkWIM0PAVo2J+Q
o7VKQ5qCE6p8+BEUS54IigjKPwzFoqpFj9KtMJyY37wkYLxBs/JtWZkYInKcokF8Rqq4O7Yj3fLO
rZI29SdD+yY9NPEH4l0X+cM/vqvwDmDpTzUxLCgPmI5u8+uDt6S1Hr788jBWYFxEiwsIb4qmynkR
kdNZ9vgP3J6n4TfbucPmxzNs8c7s266a+MyFwoDZhbvdHUc0aXZ9JC9igJvhzFNeS09ion0M37xB
VUspOE3InLqyVLGbmJu4hWRmGRuil95aWT3AfGOpRk5Y0uF10siJltdGJoKCatvog9QOMyJ/nnQy
nzTZkWhtvuSExIZNRbBq3mLQz6lXLV26+N6kGV5POj4zK0pqYR9CLsveC2w99twGNMlzR/dhUJP8
AE36cCEE7GCazwGadC7FXRrclhRgK1N+qzQGd+6+5E7EfQ0/c3B3NYGWRfObnm6IEdQEjCAheR50
79nugBE09f4qARF4PW5BiZTw+sqSc0NTjWpiQeygElXi2LBFEiF+srEpvz6wpPn2Uv9kLKOmxMf3
94SpeYFWfXgJitI0PzyMnZ6Uc6/wiW1kPinev6NZkHyG1ti05jWDDukDxB1lPuogKG4KSF6rZNDu
peSK2YtIas+JJOobSy0SiWSz9RQ/gZh6EcYXGPvpWOiOPtyRPmNYdq9CvE6qzeM35BXwIiapH0i0
Kf4UJNFOouAp4cqQRKsCEu1AYj2YaDJAot0b/BlMtMdAor3tok2DiWYF7MvO6u8h6gXkfOVsdSwY
xQkg5ztCFL8iKO7TPj5FKf/KnVc1zzK/9MWYgHNo6RiNNQ7nEhQZGGJq+guOXQBLz6CbGq6ki28N
DDA8o+kaeaN5PBrVpTSqDbl1k6kZ4ivL5OMgO56NE5O9b5IMuYyTeK4EuRRFAMnx/PEmyM0pCh62
FrJkMpBhBoE/QUacULmQizxxP4C91H4EZEReBiOCIILwFyEAZvUBaFbj6hwEe22bWLvSW+Nq1V0W
IrqXlTffhaVAVK/knTWn0MPyqXYkWn1xDOGaw/DDIc4ghjg3NPGrStLvYqyLyTIxO6nkR/M5eIcu
zjTWTze9dSl84gRSeNtV39CMVs9IMZw40XHmTQe9TJaUGaxCe+MJiKmXNi9CN/2znebdKNrCIjPU
Fk++whlV/2kTS9i4VJrI1kifpX4wYmBKitCsGnYUL34RQ+8p8UGTuDwOE7MZGR+it5WYy/Mw00on
C9I/zUWc5lIf56te1dpdHO+okrVYmLrgMYPpIJImjRKEMawy1mtHuHBtwIfwH4JAXqzlnFDW9s9j
IF5uF+DlthUXQbzcMcBc6m2e3A7KVBkgU2E1VWBl8t0LyNRTq0Kwyjc/B2Tq+ft+SH/1Slw+7ZVs
mQq4L3JAVZS7EvQ1AmoOFy4GToV6nK9mKxTVN0ZbrZRetYrBAa2X5aGNPZxItymF5dIbz9zGmd9Q
2FfSOCwMcJtWONdXPTxwgBofv1LJOebvTtmI96q+mqzviUYt5nofgTxIkhQ7LRHA/fUSRmj6/dRD
1bAoFTyDu1/nC3aRQZ+dnf147yptd/pmaRyNbO3wAoNuOPlHzSag3OBmQdkMyIMNJy8U/Mkd8hB4
K5QMOL8T538Dw34LdDSBjFAOSM09IM0yBvaA7FUCqtfPHTAHGX4M5PqYSSooaSFwiQdRgijIBZVO
Hs6qdpPaVwSFsjRZYBz2L9x5zn1GuY1MU4tsWrs7Nq7EWp8mO8rflR5WvnAmxaFJo2XRQ99/bMb9
ukML5fnVrs29/G/azPyRf4I++qrOSVzzQV70QE8E4f/Ek9XZfMpYrf2nd5XeKrPodLv33NzKYDpr
UHf+k6c+nltu+/BLXJenSTh2OjPmlL72RM944Rir38W70QOlYlVaYrbTi8yloDu9484Wt48ZvMOM
7+d104u8VTiLS4UaC02cqvKbFN5nr+MEe3tGHacqvPY8WvisnXO9RCgo+7IQe9HS0bAXIaQNSPMq
d9fmJqr0FAq5MbpZ/+6MdVedsdDo0jvhUEcLpgUz/pHkLyRQ32NJSuSs78yNLJmWu7PIge8nEjX5
3kGVPiWCX1j4fZ6JLfxRZ2HE4WYynLuYAX1VAKGWhwvIPQZqCGrEHmh8Norav/8WwrIH0vsZXTvU
7/Z0mj28ecX5qBkN1euVosnzAra422dIcfViezE5x8Leqax8zbxi8M3ulbps+efMWPFe5onYBDwT
h4ye0YGEFfqH+R07wGtVZjtP38RgWBfvlhiJWxwXNsQlJNwtK2VRvxCV5tcvdKYSU71bOseiFkkG
Ar6q8QS2590p1PhQ0x1IeqXJO6Fu9Z+F3Brp5+HkLWFVEDHSzsOpV/4O0uDkjYJrJ8CCSWBSOaPg
toE5YEeQVwP4Qz6s1wJk+wFO7NZbk2vgnDBA9RbgpfFgbLZA7j4J2QLO+QBs4cwaXx64hbeAEeeB
XeCcF4C8fljXzAYdrzow8qDKA5xzFWilXkjjpkDxPAqIp21IBbhx8ludUFdVYQNa/yQxvrWJ8ZUb
CWNRQT6v6gZibcQ92UWcG52RzKpmwlI3b0DOu8wtD02LCWUiOfOSwX2hjbR9L07FrnyN3Rl+nLxs
hs8Ixd2mN/uSbaa45qpUHwGvQPqCz6hkG7rBoclNPSc0pSyBQHHH8r2vBycEps4G1QKOmJrZNpb/
s49QWcKEvIYVOphhDEaLEL2JIQL0/wNQEr7oNHjBzZ8AdPlWzI96Wa1xfQ+cL1pg9JRrkRy7xjoC
xb8p2FkbSXrTMc797owGAN1gxUE30HJvbGc2xk5Ko2s/Z5pH0Vz18fmU8eyZ4fpqQKrP9PlzQsZY
F+uCbygxG+u1chqpUarAf+8WrxPsdqf0MJ0ScjGlW1oKSij0BgcVAiM+/q4Ay6UmClzYRBKJlH9k
1GjUKIK+ke9lcQWTcNaR9wW73KskrI9USFPt4WlABSwKqFv1E4NHIT6rAOC3wK8YLFMo32qcWHlO
13VIR9QAuIcGnfEY0VJ/y1Klg+Qmz316lKnupns/VnNurH/62Yv5HXFiOCRJj1fEqdaq8YNcUfaW
02LIoVcL2OtLaffHAb9+Q2rhm7YTBzmQcvtSb/lNuRLyDjOeDUfqdI3OhSjNZTt8eGR2jkphMBhK
G3SFG0nEE3gctfNxu/tWYNrwdmDOsEGvEahjMo+18nBvKYM3wCFvoCPxtg7dA6ZXDKCHjZ1T2WDY
aCBs9NxaOdEyf2mZFUccDzriZTFmtjlwzm9YFmOy+Z8VYiVWxLgrwoe0otnxLt6VNrglFWOODOLC
yZH7DDielhd3XQuRNWPIPXMzeNX1RhiXc5+8X369K9vLd/YAIiKUNg1pDY8uP4b6H2k6RN2YiBgR
MSJi/tcR0yxck+v7bZ9OlV4CDPixPeJoVXzI99K/AVBLAwQUAAIACABRbkhK4STES0oNAAD1MAAA
NwAcAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWhhbGYta2FuYS0yLWFjdHVhbC5w
bmdVVAkAA6mSm1ipkptYdXgLAAEE9QEAAAQUAAAA7Vp5VFNnFk8iKGJtQS1qrWlaNIDgwipI1KdF
tgKmomAggEowIgWUPUQltNRKAYME1CBbpypaIFQohIAsXWwIa+uWyhZKWGohpCwBEULmg2n53pzT
M2dOpzOn7YR/Qu559+Xe373f/f2+971EspvDcu1XtDEYzHInR7sDGMwiAgaDO6y1GFgyo949BT6M
IvYdjvA/EeAfFB4ZjLGy8Lc6dtTS9NixbRZWljSz46YW282trI8dt7aw2WZtaeFn7r4dOGHDDzjs
xfBaXn2KwWyLdbLbczAGK2vHhkgrLmuSg1JTGIG+AgN8HaJISFtLuXt8/GI8QRmQuJ/k6TapvO01
LClOWo3FaWjpEBAWBvyDw6lWXj2qgTbN7kewI4RfvgGzzkoycuzhYl1oyWPFLNaCV1xYakgwPfke
ykJGSIvgHbW+0liVuqZsD8piSMhB/+YxnLZjchsBZVml04pBXWGK1dxgH6yDsmhfoLPgFfFXWbgV
H1tdQPlofmWOwCsQFwSb+PY6O2hh4XrWwpQQAjGP9dWt5W9AC4DhhT8dDHXiAqfG0R9fkLNXVUhU
VZWk2cFLs36jjkmhrRxh+f7nPozr9/gDIv92AyWPdL+nfWw2Dt9OZ06eiL+i2WtKdnQonSzie1j1
fjsQPU4ZtfYar1b0juRIvvVslJ74dvIxR8g85+C3mf3xPol36Gb2pEekIlSjUrv+gPXt6QRV2Va2
hNQjbc0QxkglLqnC0M++zjVmj3xdyyWwJSdSdnvipSmuV93rJFiu+erofQuBd6fjtOuN/MuMYF7h
2oaE8P4eHsQq6wCCtQkotIJuR9ywmrQWasfLMH934Jaf/OgmdGsyymM1cZOqYGFPOWM1e9PvtK2C
bjaaq1Jtwk97QuDdgFuWmcc16LYtn4Uzo28Z/nAB7joj4Ob+9Ul36Na/ioz0N93zgV1ifYOFC2s4
HIxyywLZZgkqjGG2+cDNbW2BK3S76o78XiDFF+e0V0rkO/NtDDYQ2DoRA2sYEXvfd+M4aFWGJ5N2
fLQ3X6Sv0Wljj88mu9lmsySsrC0H1qHyLkbEocjlAG70ElUHJUNlsAevStj1+e4G/3d1ZgWajJn3
TH/lS8cXDhozi3v1h86vWMjpFsD0YVMnb+lCuGfsEOyUVtVHEMCTICXLcH4QTPI1XTKy64sQQ1it
TLBMmjtkmRBRB7Cy2J+uc17IOu8mC3fAPLqKuJDGT7qg6n/FcJ79yI2tlTDdwt0cEfzrP7SYjv6Q
oJ1N/JVCZ0XtiOfhSkzy2ydzu1JJ/R/ux49efesIr2pkKlVIxYV3prQKqYyKa1l1o501ylj9geAV
MMv7uNkXHZ8+C86BI9UDwYpir9nDLD8DWe44d81gIcvUl8lISddN2NaGm/NY6Rcl/TBJGlhDhfxA
mKPzMkPCDSmfAXOkgKk3GPwKOhZtdSjqUH5rKN2DjyoCGJHnJx20O+QqHx+8SuGo2jpPjEoVCU+f
Tn7nWso5fkYi1b6g1rc2I6m1IYh/iV5Puz5cU+bNHfIWHSrW8NVLFeJwjHvW/cqyOJt6/+TJgkN9
I86G07NeeHbVT2tFx0eyysEtcpyn5N6CZ4W9YzEu6SJ6B/9mSEBJZPbkxNIIpW5hn23GJ37Th4W+
hyyThDX0MyL/moM0Mz/ilUbZT3FsarF4951+WdQ101Q5M02U/PmzKUv/TcNPT4BlHDZOHkRpETLg
i9vcKp+VC6ZnF1i4Ud2oNyF8DwHLnOwPEUP8dr2RxzqT0EmG+FkCiDMF7ZYQQDZQKa8d3Z4OAXTF
al4/PhzlCqlJH1CTw3fLN/7Vwvm0o9bPm3OlL+zJLv/Bk/Jq/W9KQtcz6eeDpjW9Jor8lcY7xtbH
W06XSeVNYcG5dZeVj5lnC2yDiusylW0j1eFU8dZPj9dG3Y0LoA+/fKTWM0QSeW5RSWvzIZQEHNL5
YROhMXrzzDI/2wmVwdapZRTS8J2Gt/BjGzdzpswE1JAPVMze2Gp8zVwj6IZ+s1NE0xnybnw+pdDL
TVJdQDyxU/rM09dQt3TZksdywae260PJQwRs4xLYtgziKALIihaFMaFfywYgeYxcma9D6hcAycNA
QtiQ2riA2sxvBG6FbsTVZIT4Ur0MJXk4QPLctJC9D916QUV6sYKdsLL0FWSkJf1mNVTLV6lA8pAI
fAdYSBfgxr3/2WroxgErnrOkdwIleZyA5HHPnNgLJU8Y0IWjrA48zNYcaHO68wPf3wGk+Z5Y53W5
MWA6uaigevIi0lgTOZS9lidbfeIJ/6Ki+IemaI3HQ+KLteaNZWdx3hPeckXRcGE1LmgiSDjZctqn
dr47ZjOyBZ4spa/grPisgjqhdS8Ij2U0ce5J3XpNPfFm3K3sgfVThaSN/VNbOIySmK5El5wVNbmU
7r5QpOUug6mP2rkYd8tZtGpXaCJ7IVij9bXNsN3rgXCghD6A6afrkRFnYegYzKwEDMrH7RYQ6hsg
+fsj7SQIRyELl6awSoFLLxAsvYgZq/2oWPLUoahD+a2hAGYevtL3aG3Xa0analVUH+Ju1zQHLy6p
v3Ej94tWShGVNvrAiGFHdJLVUIpc8J7PC8enUnYUZCS52AdOFrU3XJc70xVad00I7H0J37zJmLHx
3n2GFnY3uvVDby6Jd+Utds/IwDt9b3Ck1UyPdCf2gYkscJfontK0ZqlNsPFqLimjRMI3E3WJGPmR
8+yc+Ilfqb2fJVtYM3C280VV1gIjW+hxm9Yk5/qZ3+wpNfPbBNbryuiIdDCMbU5ejUQ9ArgFRMzD
Fskw5Bk7AJUh/yhK1IORVjbGZ0I03wYipiF4DQSzDeAtm5GhRMxBBJsYtg6lp8qBnrKNq4J6Sgfo
qb91nNf964QS3zerbMusMLnSOLHW25Mp/7ep97sSSWyonCRWLC18Urxe7v2IItf6NM6hWO5Vi30a
HqaHep6yRCvi5dS+Ku3Z94sXkWabVsS9zhbufBz7c+2/FN/tDHn/2CVR8tHpOSm2y3jsxhuApU87
OCwFfh+fp3yAUVftvxHK4WFJcVFiY5jgndw7kWWTXbqHS/1sZ1tMxBNL33kSWi3mV5ZOaM9VV2Ir
jFTOc+20Z1S/b/zm6aLJiZZwn9z5xqg5lK24iJmOHn/OU/5oI9NNEFNxZlxj9kBnfZ+RaWs0FzDw
mBttNP3qYBW1v0F6evs/VnZyXaOE9ar515tQMkungjqzXmc/Vv2YUv209o8Lw7NYy0CKb/b3yku4
yenWRwGjDzYwrmeAfSY1zWgm61HDPuLu7DQHWtrD4WuPGnpP32h1zpXcKvUS1NPSoySVRS7PeREe
7LpG3OhhO62d6cLcUsWXDkQhc7KwIkMkjRWMG+LjWjy2mNl0VdH3cccNA1qfgLsY7DJ+Qsp5UB52
SeRuNH3WmDOUnRXtJX7tc68azq3nlkHjh8ZihphdYtlPrSJFrHJlUFcI38n/0i87XPVY/fOOVcW6
1F0GdNS6O8UCqohSU9Dt92xHnbTVZGT1aEyHf9HPtd95prld5mE4p6bK1Wrqz62m2opzHuD3xDRv
JHAEozFdKdScFWNnrohIFJLcjrg/UVDTGMAj4aP151e2UOvuzPJ6U//CveiJ2HhPgh1ZpZ7jajr7
48IQX+zJuazepKrHqnqTqm4g9SZVTWdqGP6nm9Q5/gSQdVvPv7LU8FKhtC6u9P7jOJKod3uaMLsK
+H1IvVg62+zsLaifNxlzpCZsr0BjzsfHD8/Nvp04nziNoKnZ24cUBUtGVg4cbJbekTP8+F/uNhAP
KvYXMqo6iSn7iOaLpQPi5NsVBiDKXo1KbcfhKBdUFt1Nc6dTD8q2o06nQL04mj1RqNMpCoK1Ca+c
gIPjiBlWk1aCdLyIOp0CA4nuJu5CnU4BzFz0LrTDs7hTx7GavU1P29ahTqdA8UW407ao0ymTPFaW
jQ/qdGgbl4UzoxBCPkAd4YF5aJ4fFIo6wgN9SFz2lQzWxLqUhQvrj5DB5/d1NJAtLb5iPeoIT4+M
tGTxqlFvLYFe4Jro8N/8z0Ga59HK/AABtbz1u8o2plxrbnDG0S8HTWuUD/G7Br07KUzNuXM2eba0
8tw8yyqNbcOLMdPVYTx9pPsEthZr4/UwFrU2CrXneHNaZTW1zK+givT9un9NnMOJwMsmnodLq1rP
0fojgfNX7qAjgrja8uFAypYrMvNy3kSX7TxPSrh9bbvmefK5R/Rj3/lyMwcqeH5Hms/JYlQNLR3G
deeKswbBD3t1F9A/F760uVigQTPzxLdWXWp0P5YjN+MaJA1k1/cafW87/yYV2H46uuqhXslCjiSw
aheZ7X2UiWoZC5AqMek9lCUZzGD7W14c1Ii8ycLdp51ORVl0Qapah4Lg212Eb1aRkUyTF1GWbXsR
7NqPTrqiZvPcq2Sce3tQFnsw0PUPFjmh5q07gg0ssXaEljot0A8Jn1hCyaNzQtuQ4Kq3BGVZ83oe
K5lcRkQN+rkXJ0Q9BJRFH/SD7iePN0BM8ozyWBaUVzf8E0o4NUhqkNQg/f+CNLM1U+PbDzYttSdj
wJ/TPjc73t4j7/4dUEsDBBQAAgAIAFFuSEo5X05jNAQAABINAAA1ABwAY3NzMy9saW5lLWJyZWFr
L2xpbmUtYnJlYWstbG9vc2UtaGFsZi1rYW5hLTItZGlmZi5wbmdVVAkAA6mSm1ipkptYdXgLAAEE
9QEAAAQUAAAA6wzwc+flkuJiYGDg9fRwCWJgYFZgYGCK4AAKMOyXvbuGgYHnpqeLY0gF49s7jnkx
ljysB7ZNVP5l1fZ+sjFb78EzSiecLs54tv2A/7RwN2+uo4vkBPJ/ffzg3MDAyMTCIaDgQHOGB+ee
JX7/C3/8PP5+f33t37+3Vfev+FjpFjZ/+623e35wvveKVC6wZ2Tcef/MnR8LGhpkjoS9qmNiKto/
c+dHR0ZGy461V/6ysDypMy5+3AwUFohe+ZuT48TftGfH2FlZnihsC/ouLDDh99kzvfxcHCccc5a+
U1dQ+D57prS8iMCE5hted/0dHN6ZG5vbaSgosG+cumt+Q8Od/LS8mgAHB74k7VLsFhtCfBAQ96B+
37fj04/X1DWtyYqs/We2e+4/tpsvI6T1FRQez2domNvQ8KZkTa+4wISP/gwH/BwcyqyuHePmOPFD
nSEB6Axr2ezHrCwpf4QZNgDdOLdv60cmJqN/nAw3gB7wO36rgpFR8j8LwxsWlpTlybl7Ghp66pkY
ypiYNl3eaBbn4HDMnpHBmpERl3V0iz9yGQ+8mc5fPT/939L98lFTK/7V/p4e5nelQkbz08ZVn/6p
TtkvbxX0pOf6rpPXvx63U3V4EM/I+JGPIwcYGM3JnQ0NFcwsZsCgOLjRxcFhDyOTNDAgHkQoKSjc
Y2jsbWjIKdARFBDIbzjg5uBgZjGNg6PD3CFBWUFBWsabheWItMIGQYEJvH2qTEyPeAVucHCcYDsu
BDSeDcV4iGMbT7PGffv/6JN3qd6//MjpUv3CvTb36vTUvv3Z+MPg48WJSul7hLj+y+79sTF9/WOb
xigmpqBsubxgHweHLt4jpVmcHB5rK3f4GjIyapoJXF+pqqCw9dlDs6MsLEtuOMQsn9bQcGVW+20R
YOwnMRfOpYFm3kGfCvRAqeDq9PirFXGxT5JDn/59pOXeZRM29wNX7yfTLbfTmA4D4+TGga3SQH/O
mH53gHjeEAeLCFh82mvo3rVn7ao/u2b88JhoHP+seMlUZdci42/mHufOv3zGxHSp5sCt08DQHzie
8uCNbgijZvKB4q/FpWtDe59fdbULC72nv65oyYnkq5zrL2jEO+/OVTMApuI23pjdwKTfWXnTdoB4
EBc7MDYq35cuXnLi9qpT67s7+0UsP6fauUdZBqmYJ9c3P/kzJ09PQeEs+5q9cxoaBo5nO8jzecMB
c06bcPvw61GjGX00o598Gid+WuT387juu8dLOaYICUwIelwwMwtYheUqvQv2cnDw6j2cugro162d
O/w1gfWfKd/0lWoKClfVHtktBdZ/Vyxils1qaAiZ3fGbFpqhVb8ck/5vs2n3BYu/1p/uE6n8vfPF
l5/JHxMfLVZ2lXMHVvtr++L+3oh+mNFGj+YIsvGDPKvTh2HM+o+RibXjL1NTfw6os+Pp6ueyzimh
CQBQSwMEFAACAAgAUW5ISjTw9vuUBQAAOBIAADcAHABjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVh
ay1sb29zZS1oYWxmLWthbmEtMi1kaWZmcy5odG1sVVQJAAOqkptYqpKbWHV4CwABBPUBAAAEFAAA
AK1YS2/jNhC++1dwDRSSkUjOZm+2YiB1AjRAii26uRRBDrRE20QoUSWpOG7h/97hQxIly8l2szlY
Nuf1ceabIZXk083X5cNff9yi3x5+v1+Mkq3KmX4QnMFDUcXIIpXyy5TRgkQrQfCz9zVinEsSbTFb
R8+4wNFlrB0kU2s4SqTa6yeCv5jmeEOWvFAY7AX616zqv5JLqigvZgivJGeVIvNGlmOxoSD5fFG+
tqu8UhqEXUZgQzMkKXshwuoczOdg2AWi+cYLnlFZMryfoRXj6XNt7tmnYCo4k56NBRWtuFI8n6HL
BtthyG5VgVrhme9opraA/ZLkb5ipzE8RzjJabGbowsvEoBnDK8I8yzUIojXOKYM9RjuyeqYqknup
SB5p2byrKek/Oq2fh2LYjdSJOPQCLyDVRUZTrLgYyq/CK0ailDDWhqzxpFD1vIhkiXWpW/mKi4yI
SPESstxUesVwW6kGnkUXS8JIqoifPEVeVZSRlAtsaVYV4FUTqHaSTB1Rk6lj/opne90AGjRKGZby
alxvdWwJnSixaGIkKlsA7bPeiqs9za7G5LU0wCJToTHKsMKR2pekFY0RL1JG0+ersdxRlW4f+J1m
b6i2VE7Gi1unh8xqMrXe34mLU1VhNhDVCt6LeW20/lfEjK7XA/H08nvRbkDnZCz4Jk6lnhZlpZAN
lG5J+rzir2O7/wImgCIm8hYXG1BQfLNh5NoKwskYGQuiK2j8LBLbRWsuWvuF058lUyMdSsJpFOk+
BfZ3Cu3AVCXkiJg9L7XSe3h6nhpSfACWx4QPgXJ+HGc+AKihymk4b8Aw1oZKxxAsh+BTN/ZiNEoy
+lL3d/ekcNwtBVnT16vxW4feeHHPsZ7PcRwnU/CoT75U0FItRnSNwh0MRr6LFZHqz6oA35ORnUv1
7zir8vJaPsCgCifz0egFC5Q2R9YVynha5aRQ8d8VEftvZsRxEQa9wy2obTVyMLMjMKi5EqCZNxUD
Y6vXYIsM8NtGbMLGG6KulRIU+pCEgZeMYILOUNBQMC6LTTA5bx2bnGvHDWxwdcuI/vrr/i4Lg+4s
rI0P9hFYGv1ktNbpD2D152cfqWbaT8apXf4AynbmehgPjg4OCrFglrwqFLDjAqTrqkj1mVirLHle
MqKH4sju6exswNgem5rZQ54T9GXSQBdEVaKYt8e03PKdzYne+2Nd7KeJ1TnudLsuFRZKr0CXGanU
ksPxDqzvSrB6B6YgsN2C7OzJUrs0ghguVrcvkMZ7ClciKFAYaC/BeT8jHSMpUvAIQeyi3aSVdUF1
DzliK1Yj06UxNg8wCMGfEw9RRI/KoE5FN4ONh6deQgSRRN1rSsimnDAlUWjiwv0P0cJMirZa1iGI
nmLDpdhMRp2aWJCcvwCc+n4V9KK1qOAGSDZc7G+Maxu35b8gcB1MyXJLWdZRtbPs3FNdUyGVUZx4
BOpsy6533PSBQ4FPoz6mmwOsMxE3E86cK/4c7rdf91AOJrE7LOetMzeAvtOVa4shR2ZCfKcbM6A8
J/7ewWJZCQEWbP8Nqld3lubSO4TxBp6eAm/QxlVT+iVo+eY3j2rfhnyUvbta3dQ66smJbZXbfbcB
h8eIlgCdiKfGy6FhY85lndi7QhHxgtndzdxrgQHnDu+gQ0PdrjeoqLssAMnr5dAqGbtzeNu8uOj3
3rF3L0+9EJPOm6iJBXIsetFa/fZ17BisfpNaQ7NmQ6XzYIf+zEst6+7cYH6bh/PGzLwLgv5je6E5
by4L5+4wfmr1YW/kFfSNXWx+fV2HfnB/rNTA7pxVaM3P0OcJ+sX5YKTYqK1rRe7lURsrO8SN5mPj
6Wl+3Cla88l2cLcVzPWyNWjz7uNqf5zEdkA7mJrE1/10ZfOhb4gDh0gftT1L4LXY3WLhbcy+EE/t
P4j+A1BLAwQUAAIACABRbkhKlDw4CNwBAADfFAAAOgAcAGNzczMvbGluZS1icmVhay9saW5lLWJy
ZWFrLWxvb3NlLWhhbGYta2FuYS0yLWV4cGVjdGVkLmh0bWxVVAkAA6qSm1iqkptYdXgLAAEE9QEA
AAQUAAAAxZhRb5swEIDf9ytOVJq6BwosCQHiofV9/2Dag8FHcOPYyHbaZtP++whELUnbtQ/djhdz
5+O+8/l8Emat36ryA/QPa5GL8XUQvfQKy29SI1QW+cbBzkm9hu/hHVYb6cMfqp8LhzkoQBnjEEKo
sDEWoeWqgQ3XnEWjo0fHzu+nMsDXxmgfNrxG+DVRAxz1W6n2BVwrdd3idnVi4WxdwM6qy8CiMztb
o4uOhlfudh186n3YLfeXwSBNP/49eXcd11CCkLd/iyA4eg5WT22c/IkFJGnnTyfvpPBtAfOrxXno
QrpO8d6t1GMilak3LwV4iKyE7iy6yliBtgBnlBRQqR1C0t0/74NFk7yz6HGzWWXEfro9h1wortdf
AtRBeQJkfRynmkHblUybypYfL+7nGMerYczqcYzzw7hIRbVi0WDGRtOmSZe9qjtDRE8Y703NSKg5
CZWTUCsSakNCrUmogoSKr1L7NtP3j+fbyQ3/l+1kFs+T/5+UnjojoS5IqEsSak5BzUkynKcU1JSk
hjMaKsm+ZiQnJ0MKKifpw5ykmjhJNXGSauIkfbihyHDSxCRrTUnWmpBQP1NkuJ6RrJWGOieh0pxX
mpOzJKFmJNSchMrf8Mv5ILJovMxi0Xiv+QdQSwMEFAACAAgAUW5ISuswOvgKEQAA6DEAADkAHABj
c3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1oYWxmLWthbmEtMi1leHBlY3RlZC5wbmdV
VAkAA6mSm1ipkptYdXgLAAEE9QEAAAQUAAAA7VppVFNntyYpKGBVBkVRSFNBBkHUIDJKgiKzgoDM
g0IwAgYryAwhVFtFQVBAjAjBAkUEQgUCMhmrKKOkoIDMFpnDrAQwhNw3fPf2nPvjrtV72/Wt3hb/
sHzPOTt7P8+797P3e06M1QnjjaI7RAUEBDaamhhaCwh8gRYQQDoIrwMr94K+/Qb8Ub50zOGS5zkv
T9+AQKKAppaWF177zCF1TQ+8tvYBdQ9tLS9NDbyHh+ZZLY2DhzwOav2cDR5CBFgbHxGgNcuMCQgc
IJoaGtiGICa7o/27S0uFrGbjsE1cdVZj4OsqM/U4hLBCtJyww716rWwTGQ9iwxgtdZLNrQgRR+PI
AgikoLAYGofGvechz243+G2BLBCNRYpeWx8NW9iPEJKP7UL/1//BhS1iTOg6AnkGKWqynW4AXRdW
QqfDrgs+F9ySsN/nMnRdzAqn9wXs/isiSugzb9fBXMsgh6yD3S8saYV7/nDjLsh1HGL2S+g6Wkwh
g3zl5E5DKBIyckAaHqoFDiGSeegazHGhGnXoOhl3l4yUMCKKwRwXvUYg//8DYmb2fGvpYd0XnMNC
fmU8mlo8L8yQl6j3w8vGj4Mn2TEke1TLwFDonBLHkKESf252rorxUYk62duOtNxQp29lUtDJam9M
3hj6domub44qOMYsUIwPIBUU3jH2bQlg1X+4787KG2px+tQTVq7XXDA+3i9suzXhuDXjQGTY1CT+
ckKtzYB7Gjre/WIg1hHVGxOlgUMxBsZJRXoVkjwfsh7pZRt3sDj0EsPgCxRyZVPd5ecXYOGN7s0g
f5Iq1YeBthkhNGjwqyYMpE9SVriwDc5UGDVXyci5jJmdMKjDNiihq78rsIQIfHYUhwi1WtwIs10t
tCWh73m7IoTm+68zyHpKy9/DbPcBVi+cYUlCGM8A2lBbSEdhm+cCQiir7Kd5ESiUEED+ZlHG15Dt
jDIystX53WdYKHpgQ6z/rh/G3y/OOMTY3vORsFBQSNE/C6ZntR+Cv+vv8St7Xtl3XSrBuCQkNF2v
Qb9lukHOqUrPEuVFHQ0eEt/rlq4YXxQfPLJ1RjIhtJiuDv3MCxFbriC+u3RYkzb/lWJy7cVKlH1D
5tXxWY2hiz202uS50QdhEcdDZcpYF7P1wh46fZQVXBYclLX2j4c8UxC3wimItB6CXK26DPjbpFxu
DP1QIoAvUdB7J/RYnwHg72pSjxwUjymAz/Tbko3QY9MgYaqOmk3dgmiXB/DJG3Stgx4LBvz1fb17
weQ3ak5LIITwt9HEy9BjusCB6YTb4fK/UbM/hozEmCaUQuXyvSxwINik/rDEb9TcNcQhKPIm3bDd
sgk4oJs1iII2h8WuDLKFRBYRtlvWA/7+JJjeZw4rXChzfu3dLCKRYCx2aWh7qO0RoTSFePRow4G5
h1dEdY6jDH5J9hw8KTJUMib4SLSu9HjZdFlfgt6r65aoue3mp/MrZ5cSah2Qnr1xzFqH0CepWtGT
lZGcWaP7ZabQL92RmgnG3bnZPwwFViOqhH7c9yNUvxyccAhHHVIqlGJiKhnkmrBUIwh7b4D92CIx
HcqmfFCKWcQdEGPZIFGzP5SFQoE/BlmZX+YN98ZqzZk1Z/6wMxF6O8uIzOYZkmV09yQjr/EDA9XC
k/9PoXzHZEsrp86TNJNjXMLysO7Y5BvMhoCydEJdVs7UY7oNRca5/hRTMF0qIRIRrec58ZE0tXl9
6KdZUukjvXSRl0+pjZ6MDdRb71Sn3phR6oZoW3j0pBtMswgUx5BS9ar6ID3JdExnWnbLk8OhXI7x
0kr/r1wf/MyV5Vm2H2/BHDVJfcGIC+CpxrPZudMq2jxGfM7cO+astDf1TT+7PKrZa45XHqHBUx/8
+DGgU4Px9Kn/gWWt9MYh/1um4+G/tHgSMUs2IqnYDuOFgy8CsfpilC/KmabDl65aii7qovupavtg
quMBStt2gg1MdRYBWnrr1tq239O2/dT71H3398RKlwZCEo3dJx2dFDn+jiJNK9hm0plzs61wtEkd
qc3pmVUvdnFWtCraV21fVlF8U3RwIqA2vvmiazWuWT+4iuRFQG09HWU79S6QhPRven0K9pMyYg/3
oLuD957nsp5VVwy6R7c7TrBCZbclAEl2s2/ISpmgBBa+5smUuxUS/Oro2yixi2KLKxoee6Zy6bhT
CO/Db8Ng1vKVM8j5lEpXqMkJAWI3JxF0VGTtnj9wz7MgDilZ4UL3kLV+5iX6QrNw1oRNbXPTN8Rq
XIN+YD7pGCFdvK5z5CaVMtSlE307cqy6oi0t0BZNoOqSLt1kjQv5s8s/zKvofnwowMn0r6VxHpaf
3/zSVwYRGpv4kqQ4t11lMyU2pZZ7M8JuSuJDRHK9lmPPtKFCsIg7QSrks2QCRfPCBRjNNfw8Xyv8
a878nZx5/6FzqmyyU7pvWvmbSq6LqwL2+K74LEznSONuzHfUYuvyusEcm0FxiqFPx2szryL3sWLr
kQ5Wvq0aZizbtcxvT2KFStopuZkS8sQN4QffF3G1sy/oY7ynXYs9lBO5YeVvlUqxOUk3LLrCO/KV
Endkvwswo0wEDxRLpNZGOilvo/QkezDuYGKqE2NyetOrVrh3SnjBIYwd0npfR1VVd+e4Ybx5qj/e
t6n1p0yMuKm5v8bKUanURtrS/HzydXSoagqwTLLrws+NuOfew3ao8KSTl63kNw3rK3Jy9VXkSHbL
lNa5gN4Bjv2A59AvBoio9fgBf29fCCMjoLFG5jVcSJzuOoARRMvFWQ6aXO6BycVp19RVaLypAUNJ
za9dMD5agMq1SFzEwiYQAL/Cpo52qIDEAr2OvXONA021+x8D0xeflMK4Pwi4LzHs2QyZjgFUx7yg
a0BUZwLFzNw9QIJMW6iCmUiGVgBRu/04DiG9V3wBmrNPewDTA98Q46A4zoE4zsU8+QoyLQkmf8mr
vn8GRN2TnFNd/aWuakPqZvbh07F8VV5uUu1oF0maMJ9uK5jKz1xV8cwAF/t9CcVM2UL3ToqxkBk7
e+Fmc4Br2qqK+50ipImfjjIqnHLCInID/KVgrcVG/vTFdhVy5vl8M22+r0UnPvJwYTGyY5iayJoP
Y/8oxXBTkNMXeBoVd/c6syEktw5fZdFzUiX6EbLV524grCFxcAY5qRtVCcvJPaC18t8J44UIwJtc
noTl5EOQkw3E7RBRdEAU/WNZOOThA5CTSmVnIDDbwaZob+6fgnLyCsjJBz3fi/+tnPmXcvtBys1v
zZhN/sQ0XP3TT2694806e/iMY3VqA+dXN8Hn5LRQ2wy8e9j0qF5Hmwj/fpZdYLs0gk34NE7jPtQm
bn7uq4qgxCbXcv0G/VO2j+RZvKofICliys1j50+peQ497o+zeNVYI0sX52v3Ic/8I/A+tvFlP2J2
y9qZ59rh718diK+YCsTuYvWqfpv3QZzyCgvSPUOUqVcRM8UcL4olZPvfqrfMqZPDxLylpSY34Bmt
hOzmwg7HXBd8q3mlX6+tQqC9Tp7Re29E5zbxIxu9OAFm/RH41r7Ksy+tFTjz/rknz0edAMJbskBz
PKmgYfZ4JAnTOV1D2H0onlNirYYpV3lJ2uslEa4oaVnJH6P3evOmZ0gamJAjKyHhZZbV+NYVRwvt
nJtDmE5mtcvTe1FG+lhsiutHFktlq8GcgxqwzM0vqR9kMqw1omj2K+p7lh6YyDRFnmDbRNoZLecv
qmcPjVS8XCisqW14cJl/hl0z1PrP1ch/axtR2r2QV8KAjdX3I6cWKY60AkmlzpS+POdeR+PVkcl4
5AnNjT9FuTGK1ONF+WotmzZSocO/P6T3UbOO3LOVWLdeOglpPTKoCtvLO/hvMyYrRUtX2t73pbj9
EIjihLkRhGivsYodrPmJ43tJ1RZGEQIRvB0HtlKTZ61v1YdQnmTaIU8JZbXtZ8FS8adSMrIoaCUI
egGBtgW5N3QoFgKvC4DXtdR9GIrQCiRXUvd+yCFfQJTvyIUFyMMjYJ9Y+b2Aze57wdyZxuiF5k7h
rVa4I+Ub5f5WzkRPsrl7jveUNmZHGI35TKf9zrmZr9Z9LaG0PEn+/R0F4/nqyAnmaJsr52RAF+pK
hwMSI60Sz+mtG1I70GxPAWM19wQeiDMrz+VVgydjJxivY3R95GY+KaKJrxy+gxe6lBuMLwaU12Rm
TW//6kDopx/vKiUQQhg5zybZAYGU5YMxercb8NR9KXVbSM1mQ7sSqSduGeMlcl01VZLrSdlMszT3
Qv7knJUS1FuRazFOu2QX9+wNsmjfris7GtgjSU+X6rKqg19fz7Zgs4asM9+t3AfCy5+Zf7DwSfJg
KnsV9ccwzc6jFryzXfD+9te5Tg3y7BMK6UHhc58XnFvh59rUsPosbvFd/xOyjV5F1HD++XVsBImk
Vjnc0WG/59vBxy7AMsfRO7GeGpXts+JSuEywnTt6S+su5/5Ezuf82EXHWYJZIzPwxrR7THzy0fVC
y7IJMY3Z/1yN/Le2EefLpu29o7qDypOYSq6T1b/3UJuv1ro6zMDA1fsrTqUFGpG50tUVvlzBrOZ6
R9hePvivc+6t57l5P1fvqzZk6bHnq5pFXVKjTtA6WJ2pTsthlNhFgdWjbX2VD9m7EmcxF40LwFxt
knemHfb2fW38/bOd4Z+O3HtCTDFfim1t69OVWx2H1RvpgcjdnNbwwDxd1sPVA5NRmY62DavjsH3Q
8MlVtc786GKvuHpg4tzmSBB8R23Jq2RnDpccFi58LIjH2KEWKm81unrcL8RIK97gpNUNqh1oty8H
kzNJEyO9TzL4rdH7MUtcV+xjUXihU9sWtb7GZk1m1vT2rw5EhF5qyW8vmUfGMUveEqHyyfX67mq3
lJfvJzccU8Cm7Yqvk7eu9LNbPaA+BjwLWv1Cq0EzP+g9wzH30z5LzFIcvjLAnDJhM9ja/BlIN5is
L8h3p6kkBt0psNvj1erzPf+M0ErOap5xmtjfT1/2IVhJNhUHDLaoxfcWvWZ1LQfMMbE81crh+TCi
2A0LJ1LhucT6lTfPS6n9bR2+MwaPBVebfFBMR2WljWDfUpUALShp6YJViFkQNb/0QnH+CDr/H+Pa
X8E0TRFoGuinIYb3FwBNI5YcglUjPVCNqix6xCHT3qD4eGfSD0AYfwBb6YPXwE2YpqkATdtZEAfT
NEugaaBWQLvltBMw3XWOCBs0QkAcYIKTg0y/ARX0jZGvJxTHK7At+cdykOm7dkD2DznthMl+OojD
TWHq2h+HiP/qOLu763876PBfENLkcBl0MpVcIkVHwXakY/QjZFEkj5DYzigKHozbE90eOsEKTdv6
5BDvvkthR7EmfXEeIz2LmOH61tj2SIInB/j62TN5F5Zpz5pAPE1jXTuheH4G8fyMvKgLxXMWCNLZ
Ex19UDxfgpT9UupaN6yNKQZQBVSwYZSDnMP/hOvZBJmmAMopb+iaUBCXAeWXhQaCINNNoI1puk+r
hlEO0l9aVawM1sacBaaHL03C2pjTII7T0U9kIdPqoNNTz/GFvSldByhft6FmEtbpOQLKtV3DYZSD
UoJxQPtd/eMQrVIe/n+n/Jnx6285mnv/J+38VYXfK2zhHyprOE7cgxU7/ieYJptP+ULfr6ETtljh
bqtugq38chSHGHvgcxxW4m6DGnj7pQH8e0tQBQ/bFpjCSq01DmFapGUCW9mMEMq6+kgD9pWkCcg2
U6n1sJXRrzPIn6zoCrD9awpKcv0AGrZyGMCKetQuD6v8yhlkeUcZ2ErGVTKy9WjbPVjhlQe7Sv7G
ZfhHkqA2hz10SoRhkkVG3sZfTPhvKImugbQG0hpI/1yQZrB3RhO1P1NXngiAf6bHThjSjpz+9j8A
UEsDBBQAAgAIAFFuSErZzZLwvQoAABYyAAA3ABwAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWst
bG9vc2UtaGFsZi1rYW5hLTMtYWN0dWFsLnBuZ1VUCQADqpKbWKqSm1h1eAsAAQT1AQAABBQAAADt
WWlUU9cWTiLxAcpjVkGBCJVBKYEwCWW4WkAsoDggyGwLUgTlySBICATaulRmGSKT0CpgmYKg0jBa
OwCCRGWIiJAWBYkMKSQQSAy8A+3z3rVe++MNf3Td/Mm695yzz97fPuf79jn3kuuBfTLSqtIYDEZm
v6PdYQxmHQGDwXlIrgdv8s8l/QP86UXae0R+9nngZyERUacxgRZGRhbGpsamAZ8a7TY0IwWeJJFM
SCcMzQ0DAkgmJ82rGCV/B4OwEYf37cXU9GzjYDBGBfvt9hyNwU4PJaZd370J/6j2tUZX+VhX/Qn3
zIuqKQU/yr6I1rxTsZOqYUPrmzjAdGayJsftqRgsTkJSjgBRMYmYxBWJbsMk+A0Wt6LoCllJvn2U
kPxSSpdwom+9/L+e5Qgl1Jj1cLucJBhx/6aM5tt2CMLOboTbCXLaJdQvD221g2em4kZV4HaI4Axh
pa6bXUT4gf/RGG6nQlepOAWH03IIP6UvBiEjMcTiP0h5RoDbJZTkmMi4TuCkHbfc2YMITJdwDdEu
cV9CKcPw1BeIwAAQ6949IBJtyVllwdyN7V7SVsUJdIOsNhdN9vGugGtEWofS8rU7ucnOy+cux+3T
znwWVT9AyqPzj3/LC4ka8DQgBZf6NMx4ake5W1Y6+DdQu5Mlv74wJ3iVHb/U8VIwYrorF/SmOaWO
cpl6Y5pZbDKrSjdLtfRpxCd53dGj9QoF7WRPvc15zTmftuWSLrVknS13E+t49O66VJUQm2oTos5r
FVGs45ctGGwuzYM3GxOpmuwcu/FnLl39yOxxDlE5j0+79JEwB3LDLvUbTiJwy/CCsJ1FbcOKMNTK
rtBehowW2uW/6HL1Gt09eNRk+MyY8SfuHy2k3ssVD4jY3eGni6DO1siqM1FBaspP69ixKxPbWP0b
QgfDWvza6ozTpbOnnNrTeiJ8itYGRFVaTm7FLrAn+n0mw6DXhYUIZrknK1Eh3cGvSHJf5K1L79I/
+5XVOLl7PvbNm4jwNnZC6/iLWUel1eQPocl/15MvKh+/bSFJb5UIeOKuzm3K7PL6pphO4ugkC4o6
Xn74mOXO4Oe0x5mTOETFaP7WxOE27NLDLZWIBEO/nOOtUGOkUUlBtRXVVlRbUXpFtRVNPqqtqLai
2vrX2nrej8Oby939avKYWbiFTrqgr9p7pJ1irV3rBY0H/qrxg3ih4glRLS+ukjwlPKzNuxxuMS6c
div1Dpirnrk1GRjeXT3mVuo8EkHxHVG45Seoy3QKVecGkxnNTN48G1+xrFjFyYEGbFcOqEbYD1iN
UwSiPxiWeAsw7ITJpjz+lhS2n3UZiZ3FdKJ3Lnbz81NEljtd3aA0gxlLRIIk9fFKGaUXuFIwop/v
LKGajN3ZjYDDCYsP+PZXMmJcvrQuweX8hwcQ1H8Ywh4/tXgNAVsZWB5HfJNhFiLUKrlCuaqtOjD6
Jd9ScU+yWaPvqUvOTFalyYn8Mw1zKqWVaiIH/674SXHYScbdAyUBfpbHGhrr06RXuTYhMm3yNf7u
VMMI3W8wbx9+YUqQplE02UhJvELhPF1+0LPoQBWbx46FiGUcB9sPIeaI1wVZLXPHN98v1miMbOtT
nrvKNWJNzvKYneL4laX89HatQ/okjlFoW1usc2CrTjHNN2s2j2OqIog6WlJB3ebzPAoRqJwHQNFJ
ho0A6NFRCBv8IOQsYs5cnHTH4R8EiHEmQILy5zwLEVCXUnF1fb9ZIwByASiWNW9CQO2vV0LVN407
iNiMR7D4G3r0n6TeT5fWVPj+f67CU4NcNVtLVpQIt0P05JY4p2g2FSMK4z9gLetpLK88tsD8pQ6z
3Qf5tM64feEc483RUd7+gjAojTj9CZID4qQXEyAb6zcIDoU+BjFvrylFxLwINgraCe30HnUCsh5y
sHdEJa1BKcaG5U7ranTqa/JidPMCFXPuCwurQ1/WzSjPzxwz4MUN2pXW2gTt2sqoItu37KLpchIK
6nO62qpHp4ZxJMXvbV7tGRSNEWk2EbN5Fjq08xXM7vMLpZ1kRjdLSDmmEBodStzKuF1PrNanXek5
374QbsHtqTFnvLb9Pt939PgKf1vwgDPQcTHQcd5bHbdULc7zfQHI2liFwc/rekP0KrudEPvwR4q4
YPW41LCjyAVZpUQB/Rn+qQnJN6DcUi3xvIJ2+r90WiPv4eDG4QdB2TXnprauabO5sU8TsTaoLTou
Ick4DXFcuiYemW3U67HUdK0jqn1E6jKdX+NuoVSPlea95YvPhKbL6/9tips7Cb2Vcz6/HlxXXENr
3qvNsx4nW8cvn2ewubZ+vNmYG8k/B5WxOignhc4OBpTxcNGSrayn+MxUP5NSRASFQE+bSzSitL0n
CTRIUu/ZOjiwZFCjb5Z6cFrh7c7YsgfCqmy3J8Ni9g95LP6l5h6GC6wSWmCY1o3PZWFvDTRLqN4f
6Dbsh6VTAoD2pdJ0Ijy/PTgAJEuMmcEbMQVU+CkZ31jDO/O7i1RceGbJc23YSXkwTP7w7b/B82+W
d4UMFLKHPnjrpGESFUfae3kBcZ7UBNHaJ4UXwE46gMw6OD5WhzH2toOwDEfXM1n/O0iJnKXYnJko
uLpbrekWHjqzZjas6jW7+JeU62s5v87zdtdZXSPNZy7Xp0murZHucJeWNc2PTzJOl6y1/eZu/MPi
+QZbdtH3LULFDKeEvGauo1nYpdbWB6V0q9xorYJSB1t2V2mxfm60Jg0Uo3TdWpE5wf15NlkbUbse
xK7IOhYzvtsFQ/cxKFY+/vnUERgVIeBCYfdPPvCxawsolVVIxwrgc9ajclAFBxnMXIZxygA4Zdx6
pgTjZAPKJ5uIs+6w6QvA9IWU/jIYcD4oqPh5yU2wacMbIHMBVWb2SLfxN5jez5Vh09uB6e2f3dGD
46CAOCjjozWw6Y3A9EaVShc4jokjEHa10IFN+zuCRdnhcRqOAyoGhwAUoncfonvFLT4uqHyjnVD5
RuUblW9Um1CI3mf5Ls9+KFQe2QF8iMY14QN8R4jl3Ix03xaBbCBjW454prHFe7w/kFc0+7hSUJfZ
dWiQWzPUFejrY8ZW0Whp1C64HtKUBib3wrmtSA3whTI588xN3rLcoIcBI9FsejvTligQiRVCbNTT
a66v3pCqA/nOOuu3etm7HXCz58a72oibwyXAcXF5Q0YwDr3gTe+EDLydMw5C2E4aQw2+JtztAmEt
Ukf8UTN/ZsY/ttW3lNMb2ZTD1PWZfmq+Rr5hJxvP+fkz47mLyxJB25R1B2lpakWvGi0TrUUtL6KO
FEbZUcXypiw5wm/V1Dbs0rFH8whFPrrhqHIGZ57uWPNbeSzri8KYr5zHyd2CP8q0379Hb05lOtMz
RWufSMDyhDYkVuCefFprirg76tApob7sep4GvyrULqEWOoQZwhHGgS3X2j19Fd4pwWCnBPPXK6Jm
/sxML29+p0tx2VB1nAPnVHur/GpiKca9d0Q48gK5XaCz+8XNVX2dmrBi9Uut6jG9YLRKCzeVfpNx
AZMYhl/u0zdcSZp7fRAyEAfOtWoNNu8QCnfSWuc8RlJDf/+gc+8prilhHWlhYToNURo6rkrsjbvH
4WVyZYMuoVMDMwR/BZADdGV3qgDmWAKDirvyBltLgRd5JggKNYOaQc2gZt4pMyv4Q26DuK/DBgMw
4Lff/oBdzV7/pH8CUEsDBBQAAgAIAFFuSEpejeER6gQAAEoNAAA1ABwAY3NzMy9saW5lLWJyZWFr
L2xpbmUtYnJlYWstbG9vc2UtaGFsZi1rYW5hLTMtZGlmZi5wbmdVVAkAA6qSm1iqkptYdXgLAAEE
9QEAAAQUAAAA6wzwc+flkuJiYGDg9fRwCWJgYFZgYGCK4AAKMOyXvbsGKC7o6eIYUsH49o5j3mMr
AZYA9ROCxXMVvp+UZD92v8bhpaBig6L7ignntYOntZ0N11PY/PHxQ9cGBkYmFg4BBQeaM04IVGyL
2+ye/fbjnL0n07On95/cfWfTycWlQnGxgfvK7r5NY5rNqXEirdE6b35D05fKndXGjKw3dQqOvxUO
mGCnX56vtkBhNuu7HbVMXJeeP313lkUkZfMB2e3+Do6/9tzZO7OhKUdsx+NvnBoe86fvNgdqOctU
fseOkfXl56LvaUxcmyIf9N1WX6BQG/funo+Doxn3ncLfLCJLzp++i91SVYirmVjyft6dEW1Wmf/2
U7rRR93Zdz4n222XeTrN95jRt/oJhvb++noLFLrZ31QkM3EZPXv+8iirSMrHBtl8oB3H/tjs3dHQ
pCO34XEv0I4Z85eLiwdMOMpctseQkVXy8+cvj4DOqjjQZw70WHLdvLgYB0cx/hsfjwE9dub85W5u
jROPGK3vzWho6vlZWVXIyBppk3BcGugxnJb20y0qyWR86GeZt/b6m71R1Tbp+Z9u3nqa/Elve86n
jLkt4eFT1seW7555gIyoolX64AS7vJGhMbrO/Nk033vRu//M9Kk5rfb9z4zzuu47Uydv7PkrT2ZU
0Sp9KA/auIcy/ig3pr82rV5/Te78zdk128p+zthzWne2TZT6zHdfdzzXMZd99n5O/P99Cb4NBxQX
KLS3lrP4MXEVKRU2DjQX4oVGTyb96//9Ppsnpf2PLDut9j6+d7LdfSlxdr27m04+Flt/3DZ950sD
+/Ml36b/fT65YpLDgoYmlrakJTKMrCdPHlJpZOISkuiaWMQioqLOPZmFS8MjQcPtlGDAhDk6PkIa
CxQaF0poujs4Fm0y8KSuxsFcKoAZ+x0e3Kzynb9768niX3rz1+baLcu/fOvpdrk0zU3vPffXxVf4
NziIBkx4lei6gEPD4+EGhQBWkSVVEYIaTFxBFjocIYysK+XCWLoamkT4uJlCHRxXtYs2Ki1QaD3c
RE1tUEerceyJ+S99Nn7hzH/pN21376k3PferJjtGZteWS4nTlH5Hrrq8/4299OFgFiNWERVj8eBW
oCEeAsdOiARMOBPjIwq0QNFRQjnYwdGo2DC0o6GphSWxxwcYX2eOhigC40uoxZC6Gl0HeaEg4CEO
bBpcbs/L/TRn3+n07Nn9L29vKfu5tj2y6031pfX3xe8JD0x8o2qDFgGcoCLA7XN4xjJgEXBeD1gE
bAYVAe16a0tmLD1RN+3VF/3f5499EGmkZZSSoFFwkGd9lkuswFbBl4XRs22Wvwe2Cp4l/zJbG1v3
NnHZ65Y/zesViyWaHZY0NLkcS1ohwsjq6XlIZiLQf5LdC4OApaEqZ7ELsDRM0WnzApaGU1TOCGou
UJi4UULL1cExaJKBO3U1QlPAfd0PRbZ1WFKAbukMxU5VuXn/UuOdjipy/NFfoLCPi0WPReQJ03F3
FpEj5Q0HWhuaYh78AMbXDz6BHQIBE7hl5AUDBO4zMokD65vGx8pMXI+sHR44OTjqFdS4ODjWsHPE
cGicYO3r59DoeM/QyM3IuvPAR0FG1o+yCgXAqkncwg6YEvYxo1gy2NuBdGEcmMf0n9EwvG+9QPyT
KlAnydPVz2WdU0ITAFBLAwQUAAIACABRbkhKIuhtzZQFAAA4EgAANwAcAGNzczMvbGluZS1icmVh
ay9saW5lLWJyZWFrLWxvb3NlLWhhbGYta2FuYS0zLWRpZmZzLmh0bWxVVAkAA6qSm1iqkptYdXgL
AAEE9QEAAAQUAAAArVhLb+M2EL77V3ANFJKRSM5ubrZiIHUCNECKLbq5FEEOtETbRChRJak4buH/
3uFDEiXLyXazOVg25/Vx5pshleTTzdflw19/3KLfHn6/X4ySrcqZfhCcwUNRxcgilfJyymhBopUg
+Nn7GjHOJYm2mK2jZ1zg6DLWDpKpNRwlUu31E8FfTHO8IUteKAz2Av1rVvVfySVVlBczhFeSs0qR
eSPLsdhQkHy+KF/bVV4pDcIuI7ChGZKUvRBhdQ7mczDsAtF84wXPqCwZ3s/QivH0uTb37FMwFZxJ
z8aCilZcKZ7P0JcG22HIblWBWuGZ72imtoD9C8nfMFOZnyKcZbTYzNCFl4lBM4ZXhHmWaxBEa5xT
BnuMdmT1TFUk91KRPNKyeVdT0n90Wj8PxbAbqRNx6AVeQKqLjKZYcTGUX4VXjEQpYawNWeNJoep5
EckS61K38hUXGRGR4iVkuan0iuG2Ug08iy6WhJFUET95iryqKCMpF9jSrCrAqyZQ7SSZOqImU8f8
Fc/2ugE0aJQyLOXVuN7q2BI6UWLRxEhUtgDaZ70VV3uaXY3Ja2mARaZCY5RhhSO1L0krGiNepIym
z1djuaMq3T7wO83eUG2pnIwXt04PmdVkar2/ExenqsJsIKoVvBfz2mj9r4gZXa8H4unl96LdgM7J
WPBNnEo9LcpKIRso3ZL0ecVfx3b/BUwARUzkLS42oKD4ZsPItRWEkzEyFkRX0PhZJLaL1ly09gun
P0umRjqUhNMo0n0K7O8U2oGpSsgRMXteaqX38PQ8NaT4ACyPCR8C5fw4znwAUEOV03DegGGsDZWO
IVgOwadu7MVolGT0pe7v7knhuFsKsqavV+O3Dr3x4p5jPZ/jOE6m4FGffKmgpVqM6BqFOxiMfBcr
ItWfVQG+JyM7l+rfcVbl5bV8gEEVTuaj0QsWKG2OrCuU8bTKSaHivysi9t/MiOMiDHqHW1DbauRg
ZkdgUHMlQDNvKgbGVq/BFhngt43YhI03RF0rJSj0IQkDLxnBBJ2hoKFgXBabYHLeOjY5144b2ODq
lhH99df9XRYG3VlYGx/sI7A0+slordMfwOrPzz5SzbSfjFO7/AGU7cz1MB4cHRwUYsEseVUoYMcF
SNdVkeozsVZZ8rxkRA/Fkd3T2dmAsT02NbOHPCfoctJAF0RVopi3x7Tc8p3Nid77Y13sp4nVOe50
uy4VFkqvQJcZqdSSw/EOrO9KsHoHpiCw3YLs7MlSuzSCGC5Wty+QxnsKVyIoUBhoL8F5PyMdIylS
8AhB7KLdpJV1QXUPOWIrViPTpTE2DzAIwZ8TD1FEj8qgTkU3g42Hp15CBJFE3WtKyKacMCVRaOLC
/Q/RwkyKtlrWIYieYsOl2ExGnZpYkJy/AJz6fhX0orWo4AZINlzsb4xrG7flvyBwHUzJcktZ1lG1
s+zcU11TIZVRnHgE6mzLrnfc9IFDgU+jPqabA6wzETcTzpwr/hzut1/3UA4msTss560zN4C+05Vr
iyFHZkJ8pxszoDwn/t7BYlkJARZs/w2qV3eW5tI7hPEGnp4Cb9DGVVP6JWj55jePat+GfJS9u1rd
1DrqyYltldt9twGHx4iWAJ2Ip8bLoWFjzmWd2LtCEfGC2d3N3GuBAecO76BDQ92uN6iouywAyevl
0CoZu3N427y46PfesXcvT70Qk86bqIkFcix60Vr99nXsGKx+k1pDs2ZDpfNgh/7MSy3r7txgfpuH
88bMvAuC/mN7oTlvLgvn7jB+avVhb+QV9I1dbH59XYd+cH+s1MDunFVozc/Q5wn6xflgpNiorWtF
7uVRGys7xI3mY+PpaX7cKVrzyXZwtxXM9bI1aPPu42p/nMR2QDuYmsTX/XRl86FviAOHSB+1PUvg
tdjdYuFtzL4QT+0/iP4DUEsDBBQAAgAIAFFuSEqURW2K3QEAAOAUAAA6ABwAY3NzMy9saW5lLWJy
ZWFrL2xpbmUtYnJlYWstbG9vc2UtaGFsZi1rYW5hLTMtZXhwZWN0ZWQuaHRtbFVUCQADqpKbWKqS
m1h1eAsAAQT1AQAABBQAAADFmFFvmzAQgN/3K05MmroHCqyEAPHQ+r5/MO3Bxufg4WBkk7bZtP8+
ApFK0nbTpFbHi+3zcd/ZPk6HWTPsTPUOxoc1yOXcnYaDHgxWX3WHIBzy1sPe624L38J7FK0ewu9m
nAunOSjBWOsRQhCorENouFHQ8o6zaDb0aNgPh+UY4Iuy3RAqXiP8WogBTvKdNocSbo25bXC3OdPw
ri5h78xV4NDbvavRRyfFa3+3DT6ONtyOD1fBNFq+/HvR9z3voAKp7/7mQXCyHGye6nj9E0tIsn44
n7zXcmhKSK9Xl65L7XvDR7O6mzfS2Lp9ycGjZxX0F94J6yS6Erw1WoIwe4Skf3jeBosW+86ix8Nm
wsrD8niOe2F4t/0c/OBBdQZkox/nkknaV6yzwlUf3j+kGMebqc3ruY2LY7vKpNiwaFJjs+pNjDej
qL9ARE8Yr01dkVDXBNRECRJqTUKVJFQkoSqSGCZYq1LZmoSak1ALEionoQoSqiKh1iRUSUL9d5YY
i5Gxyni+6Gjt2xYdaUKROlOSUiclKXXSNQm1oKAWJDtcZBTUjCSGcxoqybnmJF9OTlHCxpwkD3OS
aOIk0cRJoomT5GG1IvkNi0nWmpGsNSGhfvqvYpJF820Wi+aLzT9QSwMEFAACAAgAUW5ISrblSLKW
EAAAwzIAADkAHABjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1oYWxmLWthbmEtMy1l
eHBlY3RlZC5wbmdVVAkAA6qSm1iqkptYdXgLAAEE9QEAAAQUAAAA7Vp5VFPntj9B4DLUSrGolIqp
2kZBZBJRSiAVFRAUtWKYY0GgEgRlCoQpuOpFEAFFDaAEZVAQkqjcgAwJLG8tIEPKGJHZMAgBGQMm
EHhfeOt6Ttd6q+v1tXfddj34B/LL923O/u3v7N/e+5y448cs1yp9pgRB0Fprq4MnIWgNGoJkHBTk
AZIecukC+LUz6JBDkMf3nh7EwODzkP7ZvXp6ekaGhnpGHkZ7Pdz19hnq7T/rvtdYz2i/p4e758C0
3ATYhAo8aXkAYjR+PgJBBlbWB785FYoa74wJyN5XJH88UHvd7cii97WSO6UCnXD5H3bdo5/Ygs9V
XZOV27K1w/9pmt8878VVCCUjq6CCxlHAHyiZ5Y3HLRRhQFZhUVUF5yuLQJ7Lyibr+VyGV6io4MZQ
qwv+pAs4xVpHW9rVGjN3XiiXhJGwopbt0zUn7YbEYtWOy+ZEHeEhu6WgeNMszPXXwazbZIOk2cJW
UUZw20nC7MCu8bKF3cIcv5wCH9m9a2oi1h/Nu2+6lN5svAW7v6d8KDGXVs8X5h6eek88EtmUwmcT
3+VhjI484d0kG3B/LFLtTLJkSc3c/3ShtDXlVdpHLuPFU+J55+bFiUmzjw1eoZcnZn0rZ5tT+PNv
bsw0P2HR6nluu81jzbf19vaemxDNzBS1XnrhQQS2PTJveZCnBeb5H/fy0qIP65h9qvw3Hi1FdJJ7
JIkbn7nT0oxnGbHsFFr4uc+nk8boNbE2Ntv+RQn65zsUqNnZsj72w1GvqpKRqalqYO2BqWIrKqDZ
wT9GwFx+tAtN+ajLZdXQrxrS637HbBY/GAnYSTjx2XiXZozRAosf7qPujDn+VDejoLy8wEmufYyX
WNKuz3A70xA1HirJcO3Qkn5JpHu7ZFSlS15PlZWX+SRBC1hysIdEPqex1h6RgD5HH1fDPQj/1FTM
p5Q+5LxokqRODLPwfeT3gQFst/ljWqJQ7MjFNe+X2jzwptqS4EN2YkGc+uYvwa5ErSEzhKWBDSq4
gPneUcUPyA9KCuj7XfGffLh9anTQlIF3lW3rPyAKaiq4A6VqMFPJzjiotju6APMBUdFCU34I0D78
r884dAkFulG+fNoORk7hIMXB0wkf2MX5oVDbSct0GozkUSDVl/RNH27fmC4ZGat3S85YGDkONt10
1ocjUionm9wlKSHDyH2waUeJO+x2gLICunTBXwgjB8Cm434vfjcxqX7z+Pw3e1x3D2ofyc7o3PbY
qzIkwk7HQyB7ZC43MJhEsi9YiW67yU9tyoUdzM3MyiJtZznpl3RhQsF6hyLC124kPH78kzOVlky/
MXyDZ+C2CrHqzykc8VTqNY7pdrGoECOZfaO/HhtmNSt0JIhHq001sCNMjFdQQtWQPy5xJ383IsAq
z1wW115x/RAYQGoqIPUwXQWRE2WuYFcXrC74Ty6o4p3OPfe67LnIUM6vxHyCgYlOP6jpOFrrQiBs
LZ/0pudy3tZmHrtuObv9ZDmjHYj1ddotk8oihtPoVdrdXFdSby6t9VqQ/bUqLyjNP0vR6GY14Vvx
UDamOpzX9aQ1JayC07pDM/povi45oILUsFmYc3jnXDowkxZ62n1hKu80MGN6092cSlb9OiWmoHuv
23KUTfry5p7qb+Q1BpYzaONUN3LAoptLgJtJcXuK6HXd4PCk98DCwtfj2OioqNtOj0N96cD2WFGA
rV2UBNPWv2Ayw817Eeve3/c60IAw6jgy5ThlOFgzLL4yQVBOumVxTWZJ/mzfhXPn4JuVvF4FRxZc
EcE37yYHHKT+rPQ2nEfvGaNQOSWJqevgDBgDclfMHeKqoV819KBTYu/U+4dl5sJeSuv+0ni4U4hZ
I/tIpiYo6ZJl9Od6860l+8q2zEgq5pRc1kUfY/AEPdZfbmFisH5QbyV5LN47t5Lx1joaq5+dLd11
4kVXLPTXEbm/mvq3jC9p2d99UJcbcejcPwLDZaW110S+p28GrpYTxHj3juGjJo1uj1P1M/JKrSYk
hXgWrHzJol0MliHOEasF70YfYWXG5t+2XZM8KvX1+wFPkCE34801i5qosQfNM4U5mW6mXlmYdXEc
M4ENQZLqnY2RCH9MSPzk1eLaGn3PrsvIppJ6tRL1RBmh0grgWD/PU9sK50Qc9ORvqwtWF/wnF7x/
/WjPUWf8vugHVeNzw93CAbuUmm022DSBwObsxqVCVutG0DvvnL5CO+jDa3MarfXIGR78YiqNS2Q3
Ubmz/BPBdN2kGbMSRV/5ZFHxZOeF+UStyJamFHbZeT6wMpGne54RbnlLnIUJD+78SWB9pzMt+wg2
rFVYYbrd3dxfeJgglebiNmp1sJmxQhfQ5CVM2/+9Uc79ZaNcnUujLtGopcZRQ1s6qaLwQ+OCazZE
/5GyaLnFtVYW3xv+gEjJe4GiNDTsQIwRPpOVTZbfY4Hg63tA6OuuBASh977BQedwq4Z+3dCZsm5C
7sWWoNKbzB3XQvySVmQYy0qgr9/RQW1s6+62p6+kYGfBJryuVLYrlhoZvmqvnvaa9Drxnp2PuRE5
0jWX4frEkiLRZE87VKJ2LuyzgYvLqhgZe9TZMsuqbPOPXSxeOm/uThJFuYXLMWLNMTxB8ETOjSRe
iqYxZYKADfGkpQzn8hpDvcjjCWEspVNyye13NCwpCC+9UagBx3/yEC3WXaB2d18KhhCQKdBe7mec
r2A3+06BfafcjDEIyBEHhbVPGiF04SGQ34fTZfsREFdGpqbo70xYolX22eOg/bd4DQgoFAg5zSji
KMLpfLAvv8LvGAIqokDThf1ERICOAS0/NhgciIBoQEC91xJgvUdfeESBArSYdxDQ5C40xZT4Ph3B
y7dg37dh3Xf/CKpiRkKib2nZtgye5GTteV2KXQn/fKtB8bF7ZwkmeBIJz1KSlmj+dA8X9spxEX9d
/tT+TF2UIILoyi9eqdo6SSEvNFFz4bMvPSpfPlxeHuuCmBzZ2RxmlKlXtu66uCgzgbU5O7T+oJ2m
qiSy/c4S2YBrRRCPXXVkKfsuyedI2g+rohFXZV/VS6kghyIOQ1Uc4DjumR+S9gLA8Wj/ZkQAMSCm
mDdlyDAzwb6CWBKSmB2AmCuCdgRUAfYxNXs+QQQiCwRiK8MZGQhA6OpFrV7Uv/2iCM7ztAd07bvm
3/aFOHPKObvKD252FdS5EPyzyh67eNONxU/H1IKD6LqBkey40ecBGayet3VP8a0nIuNuRDEbnQg9
5VcLjNfU2MouGGp4Cu5UcmY7NnLrvcUGeGF9RCPnVFiB7oxDL/fIpeGMztFrnLvehLIizs0gM5Jf
gW7mnQ6Cg0g6KK9+/gv9n2um8uf56cKJapvINCbbJerj6NOcysqWnpnh4eH5DYUcXeFPhvy0joXA
Mf+wj5PCvSJ0O8u9adVbeFTCk8nJTEVuYMOccHTdrd5jN6N+WgzJL9EAbfnA0s0wBEUq29CUH/cV
HEDw4QpKpbWrJeP/YoFU3L/8+7kyl5f4m4e/LrGUJvCShw+edMo4zzkPl2g/y7KXQjwn7jOTGJ0F
+kywvUvb1pVReL6nLXulCeNc0naWfVWSp5M0pZHsudESqYXf3NOi2M7XkGarFYnWpLrscINerkAh
RtDPrROSse7uIxP9aSPByqFe4rEEcOSodf3mHouLE6wWfmOBFiWhPEIbbmRx6JM4KK71NPz8DxcA
+kuR/OMI+D67DnrQnGIn+Ka6AQSs1pgyCN9BVz5VwW1ltcEsJLvgIGsOalcmbDgH9Lb59A2wWA4A
u9Nrz4hgw1uBolqdZ8H0bt+ogrvhD9UhGu2daMpBn4JDsAeloNGOWONgBhu2Ai6cdNaBPagFdgc0
qqZhGg+CtHD9tQ985q12oynbe6Hbdr+XGtuShYKzekepNqL45u+H5xRujtkMz7XuCXGWavViiBz+
H0pSyEmgjsc89qwM5jDiC5xWJjI6rIT8jSsFIP6C51VoYQNrUJ9QF0tIauxzkyi+tYnGhtVb+Wuq
Rka2UzniKVMNdlj722Fi5MjDjVzDJiooYZavydypRIk0Nno2IlLg7M4+f5xU5WFvNwHf1J/SN8A0
3rMDtSyXk6oG0/gFYO2LTp8TsCkxCPOqoVVDf2pDfUSifcs/gi/PeCt1+dWReFRPal42MRK08EdP
bbwtKARN9m12ViJD6MlgGp9wdWAUtWtEOs7FmzzSPdE80eYoqAsnXRR6QWlxZ6K9sn0jZ3hUs4U3
aSJbwtAjWhq3g6rlL/TUFCw4Wk9WBDqDvn9mzIbUTr3RONx4XjgYaLigrN0rbdwdUpHDdJ6bOGAx
yqVoSRKarzvDotZx+7kv5+dJr8OXFhcXey61zef2hHqZGoZHJ0p0uP0XuQkTnuHz9TPv+eJp7Q2a
S4b9YYwOjpvk/nRnXDM3tXe3MMQClOddmQa6iFbGHbSfm7ztkQ/DQK4uRiGqpu9AytrEOoDIDwro
OWh1gayCNHP/+Idl7qg1T8fe7EBWsAqgtx7RFCUu7ftOZ8QvLMhuaCFs8xcXsIthpW5MS9tdEqyp
IdsPxbXNzGgCRy5g/6J3QuYyO4TcFWYvl3yR6u+JuNh/n4D9P9X2lQ78I8QrDNIZCy39Jz9l3w7/
jF5GX/xpKeRCxPJHZYvHShp59hftr65Ua7m39YUyXy40l4qVGL6fnOnNKjYdIoomBU3qXQXmqMgR
JiZJfaTBIovJFTfjzWne2cbczyQRdF3J7Juwr8TThf2CyhNnZozR0fys+jTENMFMOpbLjNTXhr21
AL5ZFLdlIdUdTQGNRREcHz0QDYOzzjrwoxpcJgjHqqFVQ39qQxHn6T7pxYwLS7YxnedF70B7rfo/
tNdNLE69UPjVI+W64CNsR81+aYqdW5m3z3H2j1v4bWYLLRwJTp7z1zpH6yJI7A7vLhNygbG4Wavc
v+s0Yahc0GDGb28yYp9jl1wE/91hfZ6Y8PjBAmnHlmr1QiN+N58c4GLnVcd34/0zkxq9JMKMY5k8
wXf0qfpQr7mxmMrB/abTafvH+gO3SWd5iiCpPxREWiMHpl6gcklrxCF0uUdNBdejFohFyEEDYMAw
IwY5qtBGUyq0hxAP8mTTQXLzMlmDnHvicVAYvh7xjFNhD0jZDUHyiNHdJIMCTTNSBYh9329QwaWP
fLQdMd5zRaEGXPV5iDnIz7vQlD0t6laIvr9cRqam3J2BGOLec8RB5x4YJiMcJoHLJL1wsUO83lBE
gZptvdEIhyfASZmIL6X9EUStvG9277f22FWcQw2bwGlRer+2xu0bPoKdvA15SugWSaZV4lIe7b4y
Xi7xXW2EOXObLCPWXJcnEF6Jy62M9X7A0+lLG2EZDgGFijGUPsZWv9ydgvAnAlwqh+asDyNJigro
Ldn4VJgYMyBgBC4dRqqqQdGW1KRtC6tTJpA95vBpGOnzAGGofqsGz4yT7XBQLS9QG0Ym9UE8PWaV
4HjWYNCUAUGpGoy8TwUHQ598GXZ9YL0KblrYFQ8jEbY4SLSJ/RwmfBo4ISL7vYARs6/QlIgEt+/g
KImAExHYEncY2QIsmx1m6v1+eqQvMjwy+62F2auSPHULSpVbDDNdo773XoV4/c/UJfJ06vUe0+1i
caFupJAftpc889+PBxJ0Hos0kp9Q/YN/UWO91/jLzyNWRzWr1KxSs0rNb6SmL5piopznZW2Bg8CP
9aFjBxkHzlz6L1BLAwQUAAIACABRbkhKztSU1ocNAAB/MQAANwAcAGNzczMvbGluZS1icmVhay9s
aW5lLWJyZWFrLWxvb3NlLWhhbGYta2FuYS00LWFjdHVhbC5wbmdVVAkAA6qSm1iqkptYdXgLAAEE
9QEAAAQUAAAA7Vp7WFJ5twZSR22aSi2nMvWoaWZ5SSsbQclKc7K0izmlaReVzFupiYhcbKanLAvN
TOkCdaamJk1LCyMEbKZCQ6W7KQqevFAp7sRkm6CcDd9pNs/T+Z7zx5z5njkd+Af2fvZ6Wb+13r3e
tX5754evD55iPtscgUBMCVmzaiMCMckegUD9YGoCnTmTdXAf9OWaufqHzN174ncnZRxIQcQvXr57
secyz2U+3p6+u5Z77UxI8N29dKeP5844r/ilvr6mKS8pkBEyY2NwIKKyxeYtAuFlFLJqxeZspFyc
l9p956Tx4z1FdsNXPgq5Q6gpcTN95rk5R1R8h5z9THTywbWMbgbexVvcLesXWiNRRqbT7LFUBPTD
2VQt+snbZoXu4B9n8zSW4dhcx09XQCc912GR9CC5vZ6d1TTpJPjINBQy+WWD3xEYBWl8H9Q7Qj0z
sipMfP6Nwx+gWCxyCAMfUet9kMZxs2//CINOg9yYanDjT7gxKvFLFCsH95Eu1Xc/Id+NbneviSGV
CIdz25q+v0hqKU/ueao8M/KuPJohEyZsMZdnxMQ7lrJaKyJ7F68d42bE9Cokmzq4UVjGqhtVH4Pa
VL/HuntlDNHZzqWyX/29W9vA9RJh78cYCmPESLBdLAxy7x4ghp1eGya7m0RkRy9ry3GxG4u8wbIb
usZ3CN62pFgmuckftNPUdaTWzmMQ+NKVwd3elktsmfSyxoZ5Ce4iyqvqkvEZSywzuC77rlLrwDV4
S3jB2AuLLlBvba/7Xi9KUGDjENeCLeCrHs8Mx7a7x8yDzXZQqajFiBeOZnDw9kyeb59iXaVn5gkl
YBb1XZFe+G4ZWxWyjkXqmX1rf4H6NXZkjV7I21Hma8QPyvXMvoYSZXIhx0kv2ylI40vy1xF6Ziam
8+0nhWNO6t11LCrqadbQAj2zSRBJkFdtQ+D1YqOwyEROdomeGRJl3oDYTHP6XwhTvXL04zsMXszj
jeE/SOTtsUY5Sm4SZfkzImisHAArAWbXiRoURiW5XSMjSL3yMCpuv2D9/tZZeQwS0E6vqZPdwYp4
ePmo2SDasX6iYJsKQ/58Td/MKJRfUVx/n0QNexNcWdiY8TAnFqRRYlJrxQImxAnhai0n0j9xItZO
o7p3NWDOz2P0/py8lcY9Y17r9O4TrAnS2Gnl0Sx4ZTeOUFHVa8IfwhEpXIFFNhb++1w4RwsdLlAX
WpzygnMbB2Vt8aU9X8GeHoNSdMwoPhQ+MwvKx9eu7XlwXB2g4DusmFX8pblzA0Pm5dSkilsjNSck
nO2qY7q8euByAF49Y1wyMm7ZsX/LBZyUk6VEA37ON3B8/Pgr18HvHB/XANv9Mk6DNtZv2sDKuQH3
zuOMXjE3JPFlnHEFJZZ0UHXUxb40m64+u2apxmnXeIT7TcUo5ngyOen+R27067ghogVb/fK9aoZx
FgVV/XpjgjOca/tfqBoTpwT3X+CqWbgRiwyZVX4Z9v2+VTh2V9+uBXCYXKHb+NTNbUfhoIRCQTHA
GGD+PjBdxLTyFDHn95EiFC1Y9TY9kdOUMxLhLhqO93Y7pFxeVV20Vpz0srwqncDwOLvV9ZaIUHI8
uj2mJqZEuPAt2EIoERLD9oOpSILFPV7fnHhgKoV9v+kBru9MNOPKWFM0TupH8CiVEccJLy1t8Cke
c9gFNQBmqzvmfH+lvDe9M67/fO6b2Hvt5PvlE0dtEl+EMoiCibsU9XA6p/N0dt84eerc46LQ59m5
CbucHUvL2GjNTuEWZeTz0KYRRv1FlELi2LmO+reSsi9b8aE2vhzsSFGNvZM+IdYmUaZri+14byjQ
af2qRsrhUQ76tZh/GCC2tjBkJIGRVrvt/B5sx+n0HNeiYHTrVLzb5c5wAULlvVcOjpp9tibfzVgW
81Htb1VI/4t27EBn0ax+UmfABIHdmWpHgTjhYa3lRAPpvziRS1IDX/08kVzwDlfZbwyJfL/AB4n8
/yie/0J3dB1b892U2NhxvxwgS+6hyyv/3FuuCkVUElvBsH2CrbrurG24DijTaffuK3f6C3R63rRV
khGtU3G1EZ4xfQcl6Po4A1AKNaQRs0E3BjX6dbwizaFNXXxkJJJ9/1E36FP98fp0GZieX/wACOlR
RP0ORFq9GjdrOLqWTtcjaBlqYk5hGbtMr+Z9D/keX3EarnnTNmGR+fRjv8KBuwSVzo0P97rCQfGC
bkcDjAHm7wOTB3Cvs1KAb1qDzdG28ivCy/LF/S8i2WhRaXOFVbus7lGQe0rV1ireo14CLznh8mN/
WcTS9ERic06Ee80lqZ8swh3APOjkGPeEGKnOpJ3iBqh7LbytmfQkSNjfeWecJwE93GgGMCLbGrav
4zY3uWdxCw+MY3/IrOSwSoUHiq/jFRcpxkmq6VVjbumXIrwJg3NV/RNDIqE8K+o1HVRhMn38vTd0
D9Hz6QXRu/oU6sOLotpiN3h7tRJRh80biLTMZcgvdHj9Oyp+Mo1ZJcmolfeXU4KBzsrx1dpiqyz1
5uJjd4jIwNiE2aCvm25kIjLAuZZa7SYPWOHP6/T8/HIh8cRkrYqfYHa1eKMGRFdvS7tdPltTVziy
jbxAas43Gf2J3GNOR+MqwAOaUVlvFoekhjjBjdZywhH8xImRIb5dwViN1zUmu9IaEvlKu2dGeksz
DMJ/hTvajm1ZP4tEGgHecMW3+abavE6k/wIOTh5oA7ZLA+7NxRnrujPRMG+3Trtp519Xeuv03BtH
EO3XqfiQZQchiDo+67aSyBN7aMAXLneqslHp+aWN/Py44TCHl7G9Fm406bOGvtqgc1LhvPUz+S5F
wrQp/NgNO0AXezf3+AQ9gu4yH00zjGAGmC8Qhgey2llcv2g71/fZt5jupSxhRWRsrwIdu7Rm4x7m
8II57FvcBO7YglLZx2p6SaDqXGRbw2X5kv4IdtNJMnAukl0HWuGBmYUu0weSeBuUE+9L1zZF5yZU
NvYSromaDii5xWA6gdfKxGHu7W9VVhcJfVWS4t6nz9iD7THuretYksbDEzMq5MF176oairY097Dx
A1UqQYBHrTglHycBwMdPRptWHRfgnBMWp+fThcN2rOR4yurm+9GAmc0CewDztFOvJBu2q/9ixddt
d4o6WVVVE3O5eI7SWldsY1s+SEi6TW6Vy53uCt3INECQ4EN12n1zU8eBIN3w1LcQWO6uU3HyQT+R
6Y2An1+SaczP1pS30jhO9Wuum3p2l+VYkVuc4txNSet4N7NULFcOaTmRruNExydOtAo0ZM93oodX
yX13YyCRZ5NDLfUe/xgG4b/CHV3HViFWjrzg/wymtk44aPOqEtIlHA/tJjdJY4Q/N0PXnWFEqhNm
Wu0OyDrKadHpecu5XoxAp+KCsH2yWUgl7nk78DGVr5ZGMrt4r80a5sU4a5xPNgfk/0ApWVuBJoc5
npXO3k/2KPXdqmascucvUZNX53UyqRV3TtH1CHrEtYtvGMEMMF8gzKhEvPfTA+oh6RVhN9+2RlOK
TjgGioqDpThlBKFpJsB0ofFEA+WKskWSAEAje8IXvwibPDCzUJYXOOajuinjLpij8O0D33J6hhKf
8DFhtpRh1QdO7+cHQIQthXgNz3fcd5WafKg4x0hNUSmyZVG5aq7i2zR1i5kiOzjps98DPxk2tP4V
MDxawUg2+kRHHyMEpSgzIr3/lmDz05nMs2jnFXboINuvLjp3OtNCHn9FKxKsmF972fK9ZWFm0Tb4
JQtsdN7KAGQba9GgCd+5XBFm0TPk9gHBLwmmTiMft6fFfosku9EQ/6aevcKW74lSb7FFBnr+Ng9F
RqWbcVbC5fY55NrevtQk2LVSSKVKb/idgv9pHdQhJQyy4IeT+/KpBph/ClMPFm2yowmKxB3eIVjb
4gtTbR1pP4YXpxYLnN78KGjotn9+SdzjZTbW5aXwNe1lZWr3qliXxcS3h3qmu/kTGhxPYysSc/17
pq+1f+njb3dT4dmMzpNfIamGHqLTXKb/IZTzF0FC6TqX3wt73DQjHNuX43cc9i8R8i9TfdoFbhIj
sUh6v9wHXtRliNJPh6IYcBMSDXWklbXPYAKfghrS7wVpBNgoAzJiS9Y7/oEbvg1rcMbgzJ92ZlTi
l/o/aySoGX4jlWvnsT4zrTbOn5h21roBKI4pmUJQbzkDEglNNf7pJ9En5jdzgm2HK2jnPiygOQIH
pkIWQZOhoTPqPwIabZEaKQ8dRFkoIfLQkuHZpFp00GQ+mEuok/WmQs5snvZeSt28pu0EPFAdhArA
ioOeJvCIZw7NmIdOydfAL25A7bmFk+luuKO9Ck2mBph/BvOeFNco6N7fsxQMtSj8b0vkUuhCKwtI
AAN3RsHTdf0L1GEyqjpF/CLD9jv+o4DEYsHFtMOJyxp3zx65+GPP/iOJ7esUZf94ZXChY5eLvXBV
fDhMxn5ofO7H7ZkEnxFC/huu+bPX5NrRPwxl27CbMcVGf6RwydulhNCD/tkF6G8C2dpKc0j7YlyK
m1N1/TXFkRkn0XpiNwVKsINpcoAm8xFtmYPTThMY3dhIvczeOJDlAFNsPkSxU05N8Bu9F6hU1Eb7
ODd4X+QINAuvCvnNBmaqObQSA4wBxgBjgPk/BaP22Mvlhabest6EgD4hq9evqgzccfA/AVBLAwQU
AAIACABSbkhKWMgW+ocEAAD/DAAANQAcAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLWxvb3Nl
LWhhbGYta2FuYS00LWRpZmYucG5nVVQJAAOrkptYq5KbWHV4CwABBPUBAAAEFAAAAOsM8HPn5ZLi
YmBg4PX0cAliYGBWYGBgiuAACjDsl727hoGB55ini2NIBePbO455t70EWC7c+CBYK3v4+0fFzv0/
uUUNZnAkt2lkzQvPM7xkEr+RIX2xff0fAQWHBgZGJhYO2jOsWPounn+5upfP0s/+aXXJmesvj/f4
7Xx9do/IzeRL7/ub73MKeDCyevILNwoETHhgQGcO1KUPWBq3/0zn2d/67Iv96XWWTz+nF6w/fvzB
0fi9X7zMPwelZK+c92/D+rUPY1msWEWWGItHT+XQ8PAUuPZCJGDCuZicUKUFCqqOEYuDHRytijeG
djY0TWFJ7PVjZH155miYKhNXkFCLKXU1utIr+shlZIhbuNkv17e1emLxd8r7i4bxy+WNrZ6uAwVm
v+d+e746dQcFVhEVWx8WJwfHpsP05kBc2ijMcu/ZfMM/YrMu/9fZ/WzK+fkH98rJN4vXf72kffeM
98S1S6t+Hd63ra1ccMAiGlWj6OCOdAWHBbEPJP7O2fflxYTHX4L3uR+vmVt35sWU3feAgWmr9vef
xY+5DI1Aj30xEORgZOXkY6YzB+pSP4GK2fXHPkRn+P3f/GZWsF092/eqGp64P1e915cY67tum/bq
Jf/vW1L3XBcMVESjaRzckQ7MSGWNyV+Kf11a7Nx32f+nnOzn0l+Gi4PfVQED89uML78fPyhnYgly
cLx02EWBRUTFgofOHKhLLRwf5P6TPJy/0PLv+U3Zfj//SN55/dGw4mO4/t5LoPooatVy+zfZ2RXi
jQMW0agaBQd1pAMZ/yYeuB05v7rH7kXtl0e/ss9V3Ou7+jlsc33lJ2Ub61OmTN+FAyb8Tk17zM0q
8sQpx/2uv4Pju+kze/WBIcG9UbbUnpF1Z3ya2b4AB0e9I2VX/rKIPKmbefOHE1BY4HYgLTRzQpJr
VeP+mrf9+v2Vdo5hsWHn841/T//Hb3S5MLeakfXmP0EGA6DumX3Zt7k1TnzrZ2iY2dB0piTmdpyD
47Z6FoYzLCIpyx7f+sbEtemvMkOC2gIFY9nr28QDJryVZ2QwZmSd+XLHtr0NTTn/ORhmcGqc8Dm+
9S2rSMpvd4YDPg6OaVbrcvUXKNy2Z2JIY+LCaSXDIC/nE/Qbt2/O+y5Re+H3i6Nfr8/5uOeuKDAc
i++Dor4mnmO2sATQ6x5Hs1n+iQcI9DM1ApO5T0EMMOnPY2QSBobRgx0uDo42zCxqwEA4WAiUrWDj
8AEGbNNjIUbWjzwCMzg0TrAcB2aHR5IKBoIBEzj7vFlEjhg7JACNEJaZzqHRkd5wAGiEmoWeYIDA
eQaYBVAnruH88zS7ft2PTxLpNvJgp20+vP9L/QTZoLL+08CI83neaw20gU9z9/FURtbIZZ+PyQIt
b59y9/Gmhiady5WP+YCKnE+9K4x0cJz2ck8hOzCSFFO/79BZoHC65N6O5oamNxM2VceIBUxItcq/
4+jgWOZx01YPGHdGc83fKSxQsF7yRm46MNZnnpMuB7Y3cVrrxjTYi3a6MLaL/eA3TOgM/zBHeiWo
Z+Pp6ueyzimhCQBQSwMEFAACAAgAUm5ISkCgrEyVBQAAOBIAADcAHABjc3MzL2xpbmUtYnJlYWsv
bGluZS1icmVhay1sb29zZS1oYWxmLWthbmEtNC1kaWZmcy5odG1sVVQJAAOrkptYq5KbWHV4CwAB
BPUBAAAEFAAAAK1YS2/jNhC++1dwDRSSkUjO7vZkKwZSJ0ADpNiim0sR5EBLtE2EElWSiuMt/N87
fEiiZDnZbjYHy+a8Ps58M6SSfLj+srz/+88b9Pv9H3eLUbJVOdMPgjN4KKoYWaRSfp4yWpBoJQh+
8r5GjHNJoi1m6+gJFzj6NdYOkqk1HCVS7fUTwV9Mc7whS14oDPYC/WtW9V/JJVWUFzOEV5KzSpF5
I8ux2FCQfLwoX9pVXikNwi4jsKEZkpQ9E2F1DuZzMOwC0XzjBc+oLBnez9CK8fSpNvfsUzAVnEnP
xoKKVlwpns/QpwbbYchuVYFa4ZnvaKa2gP0TyV8xU5mfIpxltNjM0IWXiUEzhleEeZZrEERrnFMG
e4x2ZPVEVST3UpE80rJ5V1PSbzqtH4di2I3UiTj0Ai8g1UVGU6y4GMqvwitGopQw1oas8aRQ9byI
ZIl1qVv5iouMiEjxErLcVHrFcFupBp5FF0vCSKqInzxFXlSUkZQLbGlWFeBVE6h2kkwdUZOpY/6K
Z3vdABo0ShmW8nJcb3VsCZ0osWhiJCpbAO2z3oqrPc0ux+SlNMAiU6ExyrDCkdqXpBWNES9SRtOn
y7HcUZVu7/mtZm+otlROxosbp4fMajK13t+Ii1NVYTYQ1QreinlltP5XxIyu1wPx9PJb0a5B52Qs
+CZOpZ4WZaWQDZRuSfq04i9ju/8CJoAiJvIWFxtQUHyzYeTKCsLJGBkLoito/CwS20VrLlr7hdOf
JVMjHUrCaRTpPgX2dwrtwFQl5IiYPS+10lt4ep4aUrwDlseEd4Fyfhxn3gGoocppOK/AMNaGSscQ
LIfgUzf2YjRKMvpc93f3pHDcLQVZ05fL8WuH3nhxx7Gez3EcJ1PwqE++VNBSLUZ0jcIdDEa+ixWR
6q+qAN+TkZ1L9e84q/LySt7DoAon89HoGQuUNkfWJcp4WuWkUPE/FRH7r2bEcREGvcMtqG01cjCz
IzCouRKgmTcVA2Or12CLDPDbRmzCxhuirpQSFPqQhIGXjGCCzlDQUDAui00wOW8dm5xrxw1scHXD
iP762/42C4PuLKyND/YRWBr9ZLTW6Q9g9ednH6lm2k/GqV3+AMp25noYD44ODgqxYJa8KhSw4wKk
66pI9ZlYqyx5XjKih+LI7unsbMDYHpua2UOeE/R50kAXRFWimLfHtNzync2J3vtDXezHidU57nS7
LhUWSq9Alxmp1JLD8Q6s70qwegemILDdguzsyVK7NIIYLlY3z5DGOwpXIihQGGgvwXk/Ix0jKVLw
CEHsot2klXVBdQ85YitWI9OlMTb3MAjBnxMPUUSPyqBORTeDjYfHXkIEkUTdaUrIppwwJVFo4sL9
D9HCTIq2WtYhiB5jw6XYTEadmliQnD8DnPp+FfSitajgBkg2XOyvjWsbt+W/IHAdTMlyS1nWUbWz
7NxTXVMhlVGceATqbMuud9z0gUOBT6M+ppsDrDMRNxPOnCv+HO63X/dQDiaxOyznrTM3gL7TlWuL
IUdmQnynGzOgPCf+3sFiWQkBFmz/FapXd5bm0huE8QaengKv0MZVU/olaPnmN49q34Z8lL27Wt3U
OurJiW2V2323AYfHiJYAnYinxsuhYWPOZZ3Y20IR8YzZ7fXca4EB5w7voEND3a43qKi7LADJ6+XQ
Khm7c3jbvLjo996xdy9PvRCTzpuoiQVyLHrRWv32dewYrH6TWkOzZkOl82CH/sxLLetu3WB+nYfz
xsy8C4L+Q3uhOW8uC+fuMH5s9WFv5AX0jV1sfn1Zh35wf6zUwG6dVWjNz9DHCfrF+WCk2Kita0Xu
5VEbKzvEjeZD4+lxftwpWvPRdnC3Fcz1sjVo8+7jan+cxHZAO5iaxNf9cGnzoW+IA4dIH7U9S+C1
2N1i4W3MvhBP7T+I/gNQSwMEFAACAAgAUm5ISpQJusPbAQAA4BQAADoAHABjc3MzL2xpbmUtYnJl
YWsvbGluZS1icmVhay1sb29zZS1oYWxmLWthbmEtNC1leHBlY3RlZC5odG1sVVQJAAOrkptYq5Kb
WHV4CwABBPUBAAAEFAAAAMWYUW+bMBCA3/crTlSaugcKKIQAcdH6vn8w7cHG52DhYGSTtum0/z4C
kUrSbtOkTceL8fm47zgbc2fWDHtTfYDxYg1yOd9O3UEPBqsvukMQDnnr4eB1t4Ov4ROKVg/hNzOO
hdMYlGCs9QghCFTWITTcKGh5x1k0G3o17Ifjsg/wWdluCBWvEb4vxABn+V6bYwkPxjw0uN9eaHhX
l3Bw5jZw6O3B1eijs+Kdf9wFn0Ybbs+H22DqLR/+sbj3Pe+gAqkff+dBcLYcbN/qeP2CJSRZP1wO
Pmk5NCWkd+tr16X2veGjWd3NgTS2bn/l4MmzCvor74R1El0J3hotQZgDQtI/v2+DRYu4s+h1spmw
8ricnlMsDO9290Frg+oCyEY/LiWTtK9YZ4WrPt48pxjH26nN67mNi1O7zqTYsmhSY7PqKq5Xo6i/
QkRvGP+WmigaakpCXZNQMxLqhoSak1ALEionoMa4IqGuSag0a1iQUGsSqiShIglVkaxhgndVKtuQ
UHMSakFC5SRUQUJVJNSahCpJqH/eJcaSZaxF3i9NXpr/W5qkCcXWmZKkOilJqpNuSKgUiXNckES4
oCjD4oxkDec0VJJ5zUm+nJwihY158le/CRbNp1ksmg82fwJQSwMEFAACAAgAUW5ISpVT26k/DwAA
qTEAADkAHABjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1oYWxmLWthbmEtNC1leHBl
Y3RlZC5wbmdVVAkAA6qSm1iqkptYdXgLAAEE9QEAAAQUAAAA7Vp5WJLp3gbSRi0r07RyBhltM5VS
R8tJhRo128xWNXEpF2ZySxwXQoG2c6yc0Ewdc8Fv8lTHSlNyIVNshSJlWhQXFFOQygWDABWB88p1
nV7++q7v+r4z5zrfXPgP8nI/z3s/9/M8v/v3e973fGDAdlOTlSYQCMR0h7/PfghkHgICgQUbzQeu
XE07fQL4sP/ZN/jnqB9jouJSUhMgG11j3GLdo6M3Om+Kjv4u9thmt43Hojcf9djsutnDJdbDvbeT
ZAE0gqbs374NUt3x9QcIxBm5w2frwQzoeB80sY9VZxj46fEC9uuxgtHQM1Y/OFcmXrVlP62yQyxn
Vh7sFzU48pzrMCgbq8UwA6MlCDQZAgX+MTCajWhbaAdeWIKYpJJhQwidC0vWVJDP7rP2+ed3NBkA
LNQD/kMBk+4l9xxpWzCo/YMns2Y/4vBjS2X9WDpvhL1m/TlmSnmMXREzfB8/q5Cd0Br/2/4MT1GI
OwBaJguj++zQxHfQMET5+olyy1xrszG+xzqajRr3vPii4qVYgCv56CUlyK89p2ESOTJp/KoMXj3Q
1qOD+PkFbsWH2YH6ECSjsc48oDUArlEGN6lIGaQ0l19zSWGtPSgCK0YjnXo5o1Rsp/MmWjAD6aSa
2WnpjfG4VgaDRBn8wN/ek8HJ4DyY8UgrVLwjileg2OFergoOf0OR5vi7CaqxIm5cLnuzuCDJyo/q
zE+Ucc+TSfMk00gpOHo0wg8NPZ/sfu6LPJBTe6GGT5x1IbvRUONr7tkgBACs0AMAqYQz08udHdlC
l9aoz/HccLPlPZTqFpc3KSKYq7JHNm2QHr9s7lJCmQg/ahArp42OXm+Ku9jGIv6cwHbkhGzYWGcT
Fop6WBZq0J20jzD7NQOKHxtq1gk3XyPuVpEdqQVJYtRXY3/r3zVR9nxc5ilfMtWtUkk+faplPupl
/EWxu8tu0CvfdQVd8FJYp8TmcDS3d3DDuFWw/enKND9w6aMrybClf0+wBAcwAjPxl86LVIK3tDW0
yPVPoIEUvrMKRF+1gfStBbeMfQXZ53iJ75eOK+hk2OtZSLc32LE/1HDV/j5HMHS2A/2OfNUmN/7S
sY/JOkReb6zZF4l/RFaQv0NBGvaCku8HVudb94vgCFKghpXT0LtZYMd5wBAqG0LAEVxdsA7Rvpg8
bv6l42yLQLRtfbvtlxH8jkFDfyJC4qn/V2mCq6mUvId1GOTwFj9O2viyU3mq970Orl7pyI00ahh1
7wnmYe2lLnx5Y0BkLKq5NfFCc4NRzth2bsNLSakMZqd8VS8z59F9ySrLeiYHT5gdJzEI8xSstYii
zOLZsLx49U7BTA0GJ0xmrOzhxQmmjyDxdU0R5zETbplZfqc+JKE7muzj1ugs0xvALr/sanULHG4g
IKP9ilt7QKlZwBQKXj6tAsdyBdBo57PjB8Dh4oD58UipXQ9KvRoQ4HJtrwUoUikgUgfm9gVQxx3A
BEXfdvfV5QPT09HT+VfRGUxouBVT3P9uJg/GHR0OKmJHFd0Ue7OF7hHu++w9y6WO1nRP+YWZCcBz
pTHmBY+GPTh1eeyompviF6t3zmBTyoUSWlCy4h6Zlx2p6dharJos2tWBeYAlri3qOygu5tNs9pQL
cYRqKtbu4XB1O9A2WX4tqJDtL1JUt+OmWwrKTkhSJVN85qNxzWMlLf/h2dlRSbu65wekksrEdvEZ
qBfCNLFQ0qokCDlUVEKEVKVSEQz2arxfPCM8I4x0cmppDxYrCJypEPnHYjpJTaTPBi1I1+xuiohr
rKESb2Y2b5zJmU67xQgwmLXO5aQXfwU6EswZEC2HZq9jEZmA1JegOpCjAGR5/VYdyDpEB0QPMDBy
5HKY2UdDkEWfvrmGbZZfmDPi8YLi8i1Wv/Zwqjlrm6Juab151JMTunYugEdsehoWauAnvxYXGovv
OKkN5TPGEzzbNuLF3mHRlCkryoq/Goy9g5BThwyjp29nEjQekRvGw3Hi3Yk1otq/tjEnxEUUCsXL
skvt9gBbB4eKi0ufs1ZjkUX9qKhMNXbP/Yn7h5fl3u9rdIXpvfgPS1PacKrMnIWFQtwKvvPJhrga
rRGHF3+gp5wqVo3NZJ7e0mCi9eYO6YNUbQ6XeoBX7xsZjbrfEFMoum01l83doQ52OMHGGm96ETv6
hpM0yn7rpu3eULqALRBfiJYG2XJJwssOFGUnayTcjsPFPc9/qtopwNW8G3U12U2ah3u2J8RVZ5l6
GAK7vJQevAwc7mVguM+DE3QiYwAwhVjkYZ2xABrtdzlcAuqYewANBeqOQ+AcrgMEuJLTeR0USQCI
jxs5dgjUcScw8auj6u11+Vjo6ejp/MvoJNHCnNhji7gUi6ZwG8Z9DLzZJ0sRgmycrju/892nUmwP
S1gb9DadKsSVbCi5aQHn4At/wcAJvllByH2vUSVSxyJqy4XmG4YCPwNl+qIXY39lYHAjQ17SLXTe
9ZOc2XLVjxLHor4Ulae1MTw9AWh7iWbTUofx+54BfGOL74ydza/JZ2q8LRM1NgPUsoVrBBFFSXIO
HNej8fSmqdWqfchGwoYiRT/fgaSe/Ul5VSwW8+0yZhT73AdcB1xriJfKhFlNfMIzTl0Q56VKqmAL
GUealNhHqiPNWarPPwj7zr3CvmwMVaXaDvLJma1sT53DoWyzQPSx0j3f6lgEIHXyQh2IkXkg+tFN
U3Ay0ABgvh6AQEfSid5+C9k4eo54uVdffZDWiGtefubR214S07K8H34Taqj1ZhF+4HttAL9vP9Fr
O1dU97mwU7oWzIXyrr0nRJZQeehbOIqZhIY3TyF1Yu9XRrfXI9hYYZ+SAyX8pLhMwOIIXhQvA+80
EiMzM3Os9q685p1XvswogyPY7Yf0SKGPqVcMS1Fxr1O59VXkt/2tZWYIvRf/YWlK4agoKvquYxF7
6tIrWhhBa8TyF7s5ZQtejmG5InNe7SGtN6eWi+6Yz+VwNSVD1U7aotqJ5olt0WZzKoP0RLNIhu/4
p5QBOEnJFw+0eUmMWasj1pCCVpUwltLVDkUYPK/Gz12xEt9auKvccSLItohgGkHdFzljneua+OIq
ODlA9QPscn01pqfzJ6WTUTJ+PCQ2vYlY2SabmeoUSrpXf2zm4OjtRXsOmlBEnmw/JKXlt1Yl4LmZ
PT5/m8zooMULJN0OH5tx5y+re0qx9NmxQzwvJ8Qm225GSmAsalYI0ADq6udC907CiGJsez6Wzisf
FfX4TzbFAW1xpar3BUKX19MtcTQMMSlmbWlmmadaUXtCqZlUj0Vv/FZzP5NGkuey1aJPxTKFmIKj
9xPoD8Tq8GmpaG8fN5NE0sAfvmFQ6j6VfyrHy1LGHMWPVQOuxMKWk7ETVEYEUtP5qB9lPsHtHR+9
YbOej8zxjmrt/1hjDtXMF0jDRrbqHJDmANFuON5ExyKoMJPsKLQO5FcA4pewRAdiku2qBwA/sGVS
52PBheyYTOb7nuoWrRETYq6LOgznjr6lxhPd67Xe/D1H2mU8F8C5e5K5ltqiujCknBauDeXE01sa
je7yf5NPeRDnSbqfpuvE3s3oyEPQEG8H/gBpUfeu5iLelvy+UfzYt5O1SqVweDiKcq6eZCouvr29
jbAG64J7XsyOUXCWUzUh+dXN1YcMKyfk4zkQvRf/YWnKXQzKxu5MDB3zLD2nfLzXQWvEQbEnJzBz
R9/e1MFLd7SX7kg9k8q0OVy/RXqC9qlJQrHQY1SbzY2ubUq5CFE6HadQpfKpPg1RMX8iby8aOe0y
3WzbM1vAkkXQBS+GiW51dC5LWo+RRCcDHs6Lm5rJgb3hk0uTD3TtJutWP5r5+mpMT+dPSqetLz6I
7dL8WGZnWM0lRYTBNSd9NHvgr4aG8ZLlSp+Igu33pjLKPZ95vwoSmjl5lyu8KJ/6qyecNjohGk9t
6y3J6h/1crCWBIsaFWGS7tDP9dx8ZhyRgAqFEy62yk9KMtqTxFh2VNIrbrg4BF7TUoXV+MwF4VUy
8zcfWrhW1mc9rz9B3d8KRw19PxuL/zpg9hpUMmXGfbeJPXxiyMY0l0lpWsSY7vRcFFEBjYCpTVlW
5zboVH2bj6ChHke6R8113qdYXUHO3Dd1WidSXwPEuXauxVvHbCJgJvqu/sddJUVEmLY2hdecuYX0
XcCyO5LpuRceRX1/S5JtacPJZ3avnany/O0pUypwlifXV5P55LftXR3grSvNg2XWuTEhaRFNXYyy
g/C+8UsZ1z0vBfarr0q6E9OfuAqTz36Uc68w05rtyu0pdgdbRlYYzM4XLLQPsQOZ2QILOg+RcOYL
2bYVBha5rpXRv4Ab44LROoTv6XumIHnskkB0R+5lt6XgBrOtIFsYv3YH+ZVuBZT5YWeXP7gzsoGN
usq/D5TqxHyo4Z+VUEYojTUquz/irjAwZtkZnRQux98+a3J/D3zr7w5MVtTqg78nSIxOh3v4wR3+
i3c4YG4DF+KU3rK/CPIcvPEsuyJ0dWcG6Z+fghePjw8ZFHLk41zr5IE1Og7vBNS+9y7xR8As4AkQ
yGoHrutiKvQQPeT/B+RB+7MvZ9OarFT87KiZahPe5yJF9DxqzDzrkNZH+dLl/PH1QIMhg+uGggYL
1JMhGJ36+XY8azjcfiIO/ySkpngVxW1nsoJl13GyvRKLv42vJsxt8HttVbC6qR0NcYu0Rpn2yzAt
kqR0e7M4IhyOMijhISnGgZMxeIMze5+1XGUKhGFrAJPPJpPmLX0Ub6QTvzdBDZ946F+4+t8ABhPa
K/+7yHilb67U8m9LQq88l3ALjLLE0MjOJHRhTE9WmbqmO20/Pr5xy1CxZPO2VGXci6jmfjPOFaZZ
VXg+gBVZTlrnpoiwMrB1AGDLpeuRF8FHwycSgWDPmw7xAoP9AeN1iBsX2MfABVkaCrhGOvEwWFwO
HgSygL8P1QWDi0FkCdhPGbUTzAI2F5BhuKomx0LQNuhAEvDnpQRMqqSGO3q1j2e+CkFBvC+IEtQu
Xf/eHW+wteZrO0pBYKIdsJHs5p7Fh6w8Xxp5S8JadtlTkLcLwT3+AIUTHnWbO/xC3M1U8+0ZA6zc
s25gkvUjAvC474x6LMEbRpsFoutWHf0GZL4S8GDTbQ2+oAQhgE877ggGX9U4NR/w8jO5CXlg+m4J
pO+7lnaB500Vp4DCGxEdugqsJnyBauLy2VRdPhV6Ono6ejp6Ov9mOpOaktOn1Fx/Vj0E+NvhG+BT
vS3y9D8AUEsDBBQAAgAIAFJuSEqOWY7F3AoAAJwuAAA3ABwAY3NzMy9saW5lLWJyZWFrL2xpbmUt
YnJlYWstbG9vc2UtaGFsZi1rYW5hLTUtYWN0dWFsLnBuZ1VUCQADq5KbWKuSm1h1eAsAAQT1AQAA
BBQAAADtWmlUU9cWTkJQQKkog1ppGpSxERRQBBsgUhBRaSgVgjJpoygogwyFGIZAsa1aCQ6goIug
4shUWzWAYKh9moC8UoqIZQqaICCFkDAkYAjvQBc5dxV/dL1VXc+3wh+4m3Xu/va3793f3ueeI16f
umtrva+FQqG0PTa5eqNQangUCuOnMQdYcr9MiwK/LGLd/GKp+/ZQ98fEhaPWrd0TYm8dErKa6mBj
Y2ez297uiz0Oa2xsHex32X4RErLLDH0tFSxCx3i7u6BKfjHsRaGsjDxcN2xLQPe3NoT5P/pB/de7
VorJ4CAzhyjSe65WF3zjLnc/XdW6od8nkFqbufRZn2KEPznGRKExWA0dPIkB/tDGTPJX/6wBDVgN
OYWEFm+cuQLmfE8SOvSS3beIder/ojPgZaodWr3geAsecRc9HRHCC7YFq5dpF/YVdKLjRaqci7jc
p+tFarmmvRx6BSBwKhD/HYjUUpZpYDPZrFLhkfpKoYilJUp7FKeIFQ9Y9ae4MawBSleDpSIxj5j3
KpbzETNC3D2kqBOMhZaWGMhuMuQ484KmP253TxQf4F16wR4/TfQ9dk9KpFV2s8fvdt3cMVzVXSNw
5DTxLZlNF0WOokhapXQbf+Io6Toj4CePdrXJO6uYlI7nLGcCs34Zx2YDrnRfkqKI6BQpr8XSKi+O
jP0okVXe1LRVl7/HqwtoO6oEXn0Co8U7cXMHwrIVrb47xCrCTRld5ya0upDnZwktO68wMDa2i9mQ
sKgCBiZ6d1E2tKz+nITOyTnmv1BJo703Ce1g47sFWs5a5DPq6h4Uw1QYAovh0sLL0FKn50UKefHc
F6YzA1gyvmvyhpYQLXO8bcxBAsy5O7C4PwyzgBZbdb3MnPIyfZiyFcCygnpbD1pyABn/CD3VlK4d
0iRKhkOjMZ5p2vN8CU3vQm5GzSXNCvuNOLdrV6iSfWlWGSfcF9beFGATMdEBBQYI5ij5w5q8uMCY
dQll22s5xjyB0TA6uJZK0lhAyeSqPWSs6rLGp39D4AnQ1OozkiU6aYQDCwc1eQZffqKppG03ICCn
vDUXAjcAwOfdvQBZswHx17WFe0LcxxiYHw63e0HSACGbQgbumCqxfe9GQv9+P8Iccgb4MLaN99dV
JvXp8nzGgV3rTis9k8DTcjLnbjEEd2ChF+nO98s2Kz3jwcNSU9f+BIK7o2GO93+qbaL0nAmejN0v
IvZDcP7gtbb84+tFSs888GDYxLDXQnCWIH3/AC3VlD0vk/hZ1F/WaPJm5/BG71libv4xqvCz9Og/
7FO90eUlglHF1cUnuUUyoRFzO+bHCEH3J7gfsSHtD+u5RcS2K+TO8aZ7SZUN3eGLINZ9aI7aog84
XRDsMABb1XEFvi/fGniRLgrYRLgoCNS+5tY1kJQGkLFYebaZkrdfCfmM4UPnNkKud5DQRzL4Ehjx
IRBxUGQjfOdc55njG8T+eTCFpQzMb33h7yPRqhuvT34E096j70U6VOW5QulYxzKf4cqNpEFsVQBb
KTsUOr4IHPfILMmwzgId7B2xOw4d32JgVKS8U6RUN5MFJX1XdYMmC6qTUlIqiPfosZMeuPbn9UDD
ysnSQkmPQYoTGVefVBGc5c6WDdFSXojltyiUeXI/UvICvd/CRluGFL52ws+G/JM24wrd+PQ8YseQ
/0S7xM9yvGNIKM7jvxRlc8MapHlSNrGDfkOU7Ja/jVTSWTCQmtJ6hkuIFNezsrjdx4Nz8EzKLacU
XxxrXfKeNGJQw7h8Oy2x42l6DiZ5rkrk3kIP0FkYXfzqHoF7PnRRprtu7MHviEe9PLnCBmyg4Qrm
8m2N1rQ1GxZzeZc0up4exDihHay85yGYI3iNY4UVJeXLiG0ru4IXCcU647PE7/7P+kIxw7pzC22+
xk/6dzRkWJXKvTHx7yy0GbknqrXem4t9TQ6bYrfiPH99YC0xd3H48vxUb9p8kD7ZOK+G6psoyeSu
TN3OFg/NCCLVFxfRaBY1EcZ36ugZsjuCrG58VS1WCdQ7T0pn39WDzSONmqUp3p33OM6BOL5jxaTx
9OgnFLddfeVDiz3mzDJjdju1l9Ze8pePVToPJSS3FBaqJ6/Ec+Zqha6l99NSCMsk18aKnUymBz8y
TjRWrIigFRkkiWiShPrIkfhH1Ns99PpX/jiRY1M8Z7nXR3hKlLe0mtP/SJDFlnXX1wqGHpZuzeQS
dsyeDg/c3wqaTpXIvYUeYNCn/MnfHSHQLIbh4uuHEczpmydhogOb27RxEdmSVZqSBI2kWeL37JmW
JKF6yeBl4pz0Ti1/MFaqVO6Nif+gT84hfnzXWVtPzGtyGLbedGbqN/z406netK+sarL3sNCa4ETj
UbOri1plYzOCaE1YwO7VLUu+Hflh5DDtnCuiulWLVLVYJVDvPCmDI41lfeO96c3OFlF8PsuKKcK1
p5ycHv0kCQONEzf+ukvawaIRnfubmjDOBpl8tcO3cqtGKzlZ2rTHcl/WyenBz4wplfumsGdvk05Y
MqV5L+8GLzTXzyTYX6d38ke7xLX+8qG9XWKagGLKE+gXz54O7XZdAU2nSuTeQg8guxHQ93dHCAaZ
lHHssQtk7oXWaSd0ecn+gTkL1m0ZO4OlEdOdZonfYJQ6jbhzvswbp+YSddgSjJUqlXtj4i+7sbVK
dDe6LscU/Zocrv3g1MzUn/GBGehNm+PaOiaHXSRn9VlEofWWnU/C5Ykzgng265vWYc0ATgubuW68
0nM5orp1xqtqsUqg3nlSZOOhbXETsff7WHplIhH5DDeeOeBcMzX6EWlEaW+yz193SUX1xDzW6Muw
1A/n8USpLjv+HUTv4Nd+TQxLLiTXTA9+p7j05EKO/+xtUkU2l04eaS/VOK3F0z//2HEw8pUkoctS
Mf0pUEzQFYqPPpk9HZ5b/TloOlUi9xZ6gESfkri/O0JUm+G5bmFGkLkY9c0sRkDz2vivvjl3Wb4l
jYhz+XCW+CWUAfvqOYkWTLRR2X0DMFaqVO6NiX+iz5UOaaDDi62nGK/JIfz4a87N0AW9ad/6CFHK
ISNa3VEyTnLWZHWfXbLTjCDW1f4cPo4tCe5v5S5L6jBFVrfBj1W1WCVQ7zwpiRNrBiqS1z8bIWu1
Sc1YA78jI5na/SwVrPqp6oI8MlciddacVFJh/+eHPo4mv6XZQhRHV95yvg54M0C7rw6hWgCom38b
NYblnURCL9VJI8BzP5vAi+198o4Z5AQNChNDJyAVoj8KqsHJW46aCFdepKkdNgjZGxS80wX9HrAy
MYDY4LEUeIIoE1SZAuNwMoSnBhaBsoyBvvVAPkxC6bBuLsHnM6Y+asGsFoDqa+HRegqWSRQokySN
EnhUCQ9KnodHSx6ENwcs+keoCc76uG2qxM1HHq7K05JhhRbMxZAgHT+LP7/bZdk6j65kPU787slX
8L8rp46qLNq4wAhxugqQs+30eYRl5xFQ2tMbPkGc0boGotA32Yuw+IFlK3cN6yDAfAQCc6tZirBk
g2VbljimI45qgYx6fxb9NcJiArL+/wtp0IdWO731rIM40dZ5ffr7XOPehBPIs4kmoNP8doHz5oz3
YMnCe029XOrG7si7rshnFB0c1kOEpQUCRdcsRFieADD7DR0PI8JKA4GSopGhrwWBvu9ORgYKHnu9
TENkoMdBoA8bPkcAMAf3VkFSQVJBUkH634Ikn2uOD4p7sKy/GgV+PNw+dS1x2Zn2H1BLAwQUAAIA
CABSbkhKm5ufE4sCAAB1DAAANQAcAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWhh
bGYta2FuYS01LWRpZmYucG5nVVQJAAOrkptYq5KbWHV4CwABBPUBAAAEFAAAAOsM8HPn5ZLiYmBg
4PX0cAliYGBWYGBgiuAACjDsl727hoGBx8bTxTGkgvHtHcO8ZHYelgs3vttvnqjnodjT2uuQaZSv
7Xxl1p/+OYfO/n+t/59DQMGhgYGRiYX2jP+eD17b/31f//f5/Pq/f8733///58sk+S8V8yZe/Rz2
cra+3cMrXr0O8xsavrw9c6SdiamoY23oAPEgbj5wnPvPp1vy+v2Vdc1r7E6/+pl5yfwv76SSK89Y
WVL+sTCoMDJ6WmV9ZmIyqmdimNTQoCK7tZKRcaY9I4Ong8Okvlt7GhrOzGdoUFFQ8HTPjXNweObP
4CAkMGHJYjN9BYXP6gwKnBwelwJniwtM+CnMMIGFReXlirPcHCf+cDJ4MDHhsIaO8UUOo1G3cX24
7bvzi+O//H1x2P6/T//ztxG2+VP3/Xwk7Lf2CscXoJfvn/Op0VBQaL8R9XVgeD4QB9fsOaC//u/H
TzOem594tXnNvPlqtZfvUzGqyEgRgzhmwYwbQj+qrj7+Z/PL9X6/3Z/P579U3OsbzbyjmXc0845m
3tHMO3gyr/N8wReCBYdsdxu9lGZhecL7IuobB4fH+XU+v9gYGSuZd02zZWK6tFl78j5HB4d7DetS
+4GB/+bUknwBgQnmC7JvKiso0EQrNHL/xz6Yfv1fxczz//8y2MSLfTD3+BYoC4yLj8wffkQ6OGzq
f7WjoaFHvuH4eWBk1IYcB0bGHwabOjGBCW8WW+kpKDxmf/Bxc0NDivzVQkZGSXuG/vmsLCq/V/QB
Y/AHY8UfHQWFm+6lMQ4Ox/gPPE5nZDxpt+oxMArrGOTsuTlwWaXuMNizLx0YM0R/SHNLeL4VFEj/
A+pPeLr6uaxzSmgCAFBLAwQUAAIACABSbkhKVrg3epUFAAA4EgAANwAcAGNzczMvbGluZS1icmVh
ay9saW5lLWJyZWFrLWxvb3NlLWhhbGYta2FuYS01LWRpZmZzLmh0bWxVVAkAA6uSm1irkptYdXgL
AAEE9QEAAAQUAAAArVhLb+M2EL77V3ANFJKRSM7uohdbMZA6ARogxRbdXIogB1qibSKUqJJUHG/h
/97hQxIly8l2szlYNuf1ceabIZXkw/WX5f3ff96g3+//uFuMkq3KmX4QnMFDUcXIIpXy85TRgkQr
QfCT9zVinEsSbTFbR0+4wNGvsXaQTK3hKJFqr58I/mKa4w1Z8kJhsBfoX7Oq/0ouqaK8mCG8kpxV
iswbWY7FhoLk40X50q7ySmkQdhmBDc2QpOyZCKtzMJ+DYReI5hsveEZlyfB+hlaMp0+1uWefgqng
THo2FlS04krxfIY+NdgOQ3arCtQKz3xHM7UF7J9I/oqZyvwU4SyjxWaGLrxMDJoxvCLMs1yDIFrj
nDLYY7QjqyeqIrmXiuSRls27mpJ+02n9OBTDbqROxKEXeAGpLjKaYsXFUH4VXjESpYSxNmSNJ4Wq
50UkS6xL3cpXXGRERIqXkOWm0iuG20o18Cy6WBJGUkX85CnyoqKMpFxgS7OqAK+aQLWTZOqImkwd
81c82+sG0KBRyrCUl+N6q2NL6ESJRRMjUdkCaJ/1VlztaXY5Ji+lARaZCo1RhhWO1L4krWiMeJEy
mj5djuWOqnR7z281e0O1pXIyXtw4PWRWk6n1/kZcnKoKs4GoVvBWzCuj9b8iZnS9Hoinl9+Kdg06
J2PBN3Eq9bQoK4VsoHRL0qcVfxnb/RcwARQxkbe42ICC4psNI1dWEE7GyFgQXUHjZ5HYLlpz0dov
nP4smRrpUBJOo0j3KbC/U2gHpiohR8TseamV3sLT89SQ4h2wPCa8C5Tz4zjzDkANVU7DeQWGsTZU
OoZgOQSfurEXo1GS0ee6v7snheNuKciavlyOXzv0xos7jvV8juM4mYJHffKlgpZqMaJrFO5gMPJd
rIhUf1UF+J6M7Fyqf8dZlZdX8h4GVTiZj0bPWKC0ObIuUcbTKieFiv+piNh/NSOOizDoHW5BbauR
g5kdgUHNlQDNvKkYGFu9BltkgN82YhM23hB1pZSg0IckDLxkBBN0hoKGgnFZbILJeevY5Fw7bmCD
qxtG9Nff9rdZGHRnYW18sI/A0ugno7VOfwCrPz/7SDXTfjJO7fIHULYz18N4cHRwUIgFs+RVoYAd
FyBdV0Wqz8RaZcnzkhE9FEd2T2dnA8b22NTMHvKcoM+TBrogqhLFvD2m5ZbvbE703h/qYj9OrM5x
p9t1qbBQegW6zEillhyOd2B9V4LVOzAFge0WZGdPltqlEcRwsbp5hjTeUbgSQYHCQHsJzvsZ6RhJ
kYJHCGIX7SatrAuqe8gRW7EamS6NsbmHQQj+nHiIInpUBnUquhlsPDz2EiKIJOpOU0I25YQpiUIT
F+5/iBZmUrTVsg5B9BgbLsVmMurUxILk/Bng1PeroBetRQU3QLLhYn9tXNu4Lf8FgetgSpZbyrKO
qp1l557qmgqpjOLEI1BnW3a946YPHAp8GvUx3RxgnYm4mXDmXPHncL/9uodyMIndYTlvnbkB9J2u
XFsMOTIT4jvdmAHlOfH3DhbLSgiwYPuvUL26szSX3iCMN/D0FHiFNq6a0i9Byze/eVT7NuSj7N3V
6qbWUU9ObKvc7rsNODxGtAToRDw1Xg4NG3Mu68TeFoqIZ8xur+deCww4d3gHHRrqdr1BRd1lAUhe
L4dWydidw9vmxUW/9469e3nqhZh03kRNLJBj0YvW6revY8dg9ZvUGpo1GyqdBzv0Z15qWXfrBvPr
PJw3ZuZdEPQf2gvNeXNZOHeH8WOrD3sjL6Bv7GLz68s69IP7Y6UGduusQmt+hj5O0C/OByPFRm1d
K3Ivj9pY2SFuNB8aT4/z407Rmo+2g7utYK6XrUGbdx9X++MktgPawdQkvu6HS5sPfUMcOET6qO1Z
Aq/F7hYLb2P2hXhq/0H0H1BLAwQUAAIACABSbkhKu3LrhbwBAADfEgAAOgAcAGNzczMvbGluZS1i
cmVhay9saW5lLWJyZWFrLWxvb3NlLWhhbGYta2FuYS01LWV4cGVjdGVkLmh0bWxVVAkAA6uSm1ir
kptYdXgLAAEE9QEAAAQUAAAAxZhLT8MwDIDv/AqrSAgOpR17d6GCO/8AcUgaZ42WNVWSAQPx3+na
IbrxuiC5lySO6892HorMyrA2+Qk0HyuRy67bDoMOBvM7XSEIh3zlYeN1tYT7+AnFSof4wTRzcTsH
GRhrPUIMApV1CCU3Cla84izpDH0a9mHbHwPcKFuFWPEC4bUnBtjL19psM7g15rbE9eJAw7sig40z
55FDbzeuQJ/sFS/94zK6aGy4NQ/nUTvq//zW6/uaV5CD1I+/eRDtLUeLrzpev2AGg0kdDieftAxl
BqPL8bHrUvva8MasrrpEGlusfnJw51kO9ZF3wjqJLgNvjZYgzAZhUD9/b4Mlvbyz5HOxmbBy21+e
XS4Mr5bX0UsZ5QdA1vhxKGmldc4qK1x+dvo8wjRdtO2s6Np0vmvHEykWLGnVWKc6TPmwEdVHiOQL
47+pYxLqlIQ6p6AqigwPVEoS64Qk1gEJ9Yoiw8WQJFYa6oiESnNeaU7OlIQ6I6HOSaic4pZAkrcE
krwlkGYPCxJqQUKVJFQkoSqSPUwQq1KTKQl1RkKdk1A5CVWQUBUJtSChShLq37cES3YVi4+6RlfM
YElX13oHUEsDBBQAAgAIAFJuSErhuhRhXAkAABQvAAA5ABwAY3NzMy9saW5lLWJyZWFrL2xpbmUt
YnJlYWstbG9vc2UtaGFsZi1rYW5hLTUtZXhwZWN0ZWQucG5nVVQJAAOrkptYq5KbWHV4CwABBPUB
AAAEFAAAAO1aaVBTWRZOAmFYRBAFASGEZgk2sjUIaAfzAGVpVBhaRVGWFtka7AiyhSUElVabJZHN
FoRgQw89Mxq7FMERJFTr8EAcwtJCI0IQgsgwGJKwREhgnljNe6VOTdVYZdVYL3+Se+q+e79zcu/3
3XPuO++311NdVV8Vg8Goe3vt9MdgFIgYDO6gshJkKU06dQL62pyw62BCWFR4WMzJxOMYW9utzraO
4RFbncOP2oeFO9l+ZRvh4LjNzs4eMjs4OIzE+xhBD2FP+nu6YTgdBhMYjPUl752u+1KwUwNPv3tC
rsN3Tvpwly3TCrLWmWpePFLiWNJRShkNLc6vTXJKL/uBKelbXuItK2sSAQYGi1OEfmhqSpeb15gg
TdMhWPx9DdzrxorVDos39TiuibConmMjWopHcapeuY+JCMsGTYoC3FK+r7iBpXvLFWGxINKVELOe
U7Eg2n19GmHxA2RrkEDX+wFHf1VaB1sqGVI9uAUQzSsZ939S/wS2AFiRPdxiALsB7Pk/btoJWxi4
kUi4hcn6noHTqnI8B1ugQPAw/3+BmJZEd8elBz6V786SyE4m02QTF5YukrtH+iSCuKlCuiWzVjpL
ph1ZrOY/MLGiuwiFZE5A2ueBw2HYly5+XlX9i3OLAf0sTzb/+X6xrtVCLIVGlmySR9NydTLq2OSK
l3lLtWSPnB0DwhAaeeBRjVA5QZvl7p+8m8JxMXJUpqWbNt0CCPW3/2RTAiaMHFYQxOXELByl7SY1
bX1tppeCMwr6nYoyda+qacQ/1ByLxR+r+1muArsbBQUU7fO+fShTEyNPybyc+uAf8YILOtwKEjOG
PXOYVv336+Nto49J8gOEaNEkTXx7TpQUguUz/lV2rQxeYCnlQJ8TEYxbQ7ndu+zyZ3JTfZnIm/bQ
T073paVTnUYLxd9fWZBXiKVD37SQxuzcH1VYKkuVjmUXXb4AwzLHqbaau95RgnebNrQVtP3jPeDN
UgZthjLFCX14dxyAVv8BrzY92JvYTyoZsVrVMbB7B10B7CFjs0jT1Sj8fJ6Bu+HN4riuhiUUD0Xl
IwUkndgmoFW4tF9VUWk1URzc5kEo97sSLlZ2Tc6/4EnaF3WJ7NZZHiboUgnvT8IF4QXOdQ3z3RsL
wIaRwrPkIbNpTo9UzgIbFIcS9blGwgf3ouNx4PW5qcm8y/Xe8DxfqEk3sbpFDWQY3lUGrmDWMQ8m
2GgsvjpBZu0LU5FlJePY3T0mq4HwCwSwmw257etXg9WqakE8RO2B+a5Ixw/4AhSK4alvQGu8d8AB
jsKP+A0oFBTK/wqlmVcTB4qis+ft8R0S3uCYqMZzIUTslRPCKwRv+S5ce0MpG7mS28FTU1FZTLxg
HjDOixBCwhfuTsigVwW0hdU+vykXiB5SZ2rG7AJn+unilGdOCz0rssnNHBPFBrCbTDr3A2u9B+3k
t+fSfyMKRBekvTjak5HSpoOEnvNUdRZoxZnIGbMrl/ZiVszSaEKPRhSwftqJmPeLAuJ4cRPypf+X
ORJM95XQaQHt8759ZLU1OWclZJuh1GIdlmegLLWCzMnopo69rZTgQAY+XeEGte4bj9XnhxNxQXyG
AWgnGw5cnq9elcHZRZcx0d3BXN8HYd/+cz7twWhagx67CFyzP41DHN6ESt8HAjRcM84ap81tuWlu
SmRqJozr0hLcskva3lbKovABFeggO/rbiyGfEC+C8DtfgjjlYnPD3tF5d4JQK6UvWkZvtNSoaVMx
4D6uv+4UP2QOn5EsrIapKEGjUD4GKBR2iyFYoz3E2+DMoyRfBNmEicy2V4miL6Fvx0T9m0q51DGa
equ+Cr9Dh8VXyHYovUvlZhar02Ze5gWbMbt+4M0VgvbcLnYJGNUVudg2eon/3Ld9RTaXisGbQRkL
+UAAdptpIjgz+ljy1WkW6DlyWO2tlBGRSY7U0HZTKrF7mvkMB1UNRCb9EPIlQm2AjcjozSvRPu/d
Z7qnwprQIWlMmdwfCPyeKHpzi99WSiPqvPa0emtT/x09+Pk+lYQMhXgDcPp0jJxfuCqDj4TzReB8
kv2OzUy9v/CFm5nCqYh0f4L9vqm/nWJQUen7QICy2BXuFeP9Nx+Wshi/J4ragebvUMqS4yToIJsf
1pBmk2FMa7TcQWsdDcIJt+fxNWiNPsNBNaJFEYd82Zx0QvY1v2molVYGl9oqaxlclKBRKB8DFFm6
frIB+0AK5cth8vKTIEJmavWy2RslVYRSLn7OnHw0lK8jPQjQNTZ0R801yZf2Owq6xp1Si1eqqL4E
nswjM5BQtYs9RWJG0qsoViuyuRhA4CXNTnz+qmbD+tWwhxnDO6vuRjA6T7V6K2VEZpLsZ3ZyhpID
NlOh24KMKBzbHgawl6xiMxHF6VIGDu3zvn2afdPupDjzJCPXAqKx7yipIpSycTCg2Ym4GDEZAT8f
TOqcVW+NM7inwZnN9P10VQa5/C8J/IF/SKvJET/RuTWrVddb46q4JlT6PhQgeupaWkUk77MYN9w7
SqoIpTxUV/7qIJs/9eLuTLZAxJEKjJnJKo2TDnSKQGSdlVzeIgQbxCdKLzeL/pqxmGoyflwLnqcb
t6SEEjQK5SOAMi2JfoJePqJ90MtH9PIRvXxEoaBQ/uPl48lnL+bMV6dkab9KEY3ATMVI95d8hzFh
ptbSah0udGMWBxcvtXl6hcbWH/TzhRnyqskwFehte+ANs8IWm0rGFqMraghW8IRYgWRJMoNZoRFi
hfQz1jB7hxpCrFB+9XIRzApiiBXE6+4gioGJECsk3oj3h31sV7Mgtns+R2REvev8PlZAWeyKqpVq
mT5ieOUjqlIlQQHog7B5qL4uerZeWh5sr//0nvdxL/jCcBZK4GgZO9fCplAjyFX2lsEzsKuT0Nrp
8xQw4DHnIDfm2rr3wBM3BgPoQP91oOGa8TMrN4DfIt/lu7giR9bz0wVIaxDOSO2cDeWOgRXiRcJK
92Y+I4F4yA1x0tGFwORWBSHe03sOqfN21hZjxHrJZeA+a+myRiyVBEhDDb1KkCUFDwCrNxq1EbF4
tkNreq2pD2JsXZNKRm5crRoCqSFENn8oMEOMnQv53uL8OBuxO9ZCRKfQpoUYuwUCEGYwhXAFOMvA
dWcdU0GMHQYBsMtPMkaGAMBOADfOIMa2g/airmcDwpVO40o0TGiY0DChYVrGWhCDE9OZ3R0Y6OO9
a+9OjlvoqX8DUEsDBBQAAgAIAFJuSEopA2ge3gsAAMwuAAA1ABwAY3NzMy9saW5lLWJyZWFrL2xp
bmUtYnJlYWstbG9vc2UtaGFsZi1rYW5hLWFjdHVhbC5wbmdVVAkAA6uSm1irkptYdXgLAAEE9QEA
AAQUAAAA7Vp9NJRpGzfT0FBa3ypMI0qykzQhmWUoYVOklkRpm6JWPsvHFGZY7G7KDGGp1qjX1lZi
VYwa4u1dzZDSx5ZqDGpmqORjRjEYvDcdc8/ZOnv2j3bP6z3jH1zneea67t91X7/f87uf+cFro6u6
2nw1JSUldXe3td5KSjOwSkrIrWgVEDkRkxwBfpkfdNl6kLR3DynkQHSo0m5SUNDyPbYrdtmt2GNr
Zb3HjoS3W2VnTbLF422sdi23VmmvywE3IQ54uzorldw1fKWktGyT+1qnLXGIbu79sF3udNS9aovx
ccsr+JG1tN8rNTRytpwiR6WL7zRox/1+n9PczRgfY1NQaA0skaqEQII/0Ghp+M40TfmQhIJQ/s0g
6f0/E9GkPCpS618238MIuOAwVXHB/+YFtU3hx0u6mNo7xotquwc6HwpF51yHPcVu6Y4FZjS2wytf
YaYeheCJoSU8KG0wwY3FtVL64+KfXezVk5RTpfZebr1BgYdb2xrSCI+lrQlfYnr1ErrJ4rg7vbw2
HC02/cYAgVzVMdjTm8tmuUxcKI7rPn9jZF7Sz8goXbNoAwkzgUzo1xuX+pHjWyX5quK4dV39wUIR
mR+8mMOfd6mJkcPuPLYhz7w9lhjU8cIHbr0MHS9ixtFH3jASpLYEiz8QaSFbK9IVRFxvfWMOI3hl
HXr+tUpdiIAJiJiQynVgJB+pxmkMaDkig6k2E0Qyy7bJRTwQyruDloW5yLBsd0MoCzhbcTCy8ywV
uQKvz1w4NSrYiCIqMmp3cS6MLN9MROTnp/tryuZplTcRYbfCZz2M5JkXUhsb6y7BoTMEEcN5F3+G
kUYAxqeBJ9GnJJrF88mw09aiu6IPRR4l6J12Zgs0k3cYmtBcfrlnRU4p1GdzSJoNZXxUPDIqoEhP
bjm+O19p07uud4RFxF7JpbjT2dtfzriRzaZq9JRgafZHEYENJCI61pfONrpFtRRaYVG+Txa2a9Nx
b9K0ZOt9CSpffYBpDRuCA/DrxaxRlS33ICj8p2vcE7AfeqAfs1in4WpXg7bebQndANuRTkVeTuV5
wcX+hFRzC+6pWCwr/1cXIuLpzbAlMPNGhHIRPtZfW1bck4WF1P1f22bLMhPPUZEP8lmXYHH7Nb2I
Fb8afCnLXAia/KqR9xgWV4FegvV/or5Ilvke6OjBjrAQWJw/SudTwJLEyDnP5IYK8/DGiKnOLT3o
gTF+WWcl3pqiZnR8qsmG9ht3nqcGNEceprxzFufpMggCq/U7H4dK4zmk3NpirmQoL+c7rgBVQnnG
pNlGtS6GO/QXvT577CORfwFExYeIqD90ch3EYBsRcT6jTQwxuAzQf8xdCVf8CASipblmMlDoul7E
y61n5fN4ES/wmQQIQTEVmfXO5hjMW05FehvVCCEmu8E+KGbug3kvgMBrCc5TVhrWopC6u3qDiSyv
F66QuoUdToal+SGUTbtC58O834B9sTrxNtwXHAC9X/hDOJFbZi1RQDKNIElMNIjdXvNT37CZchjT
kbGM5vjFA0qW6zapiEAmDLjXLKVdlfCBsL05nvgVZp+I3T92ks1/uCOBWVuqLGhLcj5kO/Ksf8zH
RlAG1G6zOI75MqTpODsksXcsjFzl/7a8s55vXRNLYRJaccPgwlx2iOc7XhP6c136xVXnubU13bf5
+UxJZ1MDv/9Wkwedjd/GcLSgNRk44p0wTXsTxooJDuH7b3ogamZMP02ZhpLbdyXqEre7Iqoxn04l
ON9LJwnK0LqrF9M03r6YS/7cOTWj3gRVvWodJt0rw8gMKBh/YbkGXM415HoGoFLr2G9ZJ8ul65MJ
Pc4L+n4mqKRExCqTW76eLfHGzHCuZIH4cpV4cxrCuPKmHoIxrYRlmumttNijmhdmwT6lqsqZ6txp
khjtZJmRyV645WXeVJOFTyKR65UF1zO4Ixf1s9jFEoExzQ95JYzfuQZzBRXEu9XELia0LDaLGH14
I6Eqs9/mB3laaVMwukLkpjMkff3cyq7h7pRmR/MI1ujQQbL0VebYccKDFzQgYGWew1+Ri+oWAGEj
Md5enDSJg20EDGPgNUs5EYcdn6PzgPW0uWCQedmYBtSOkTVp+goIO/oPD8be5vPOlH7hiSkdqh5h
CUVh9ycuJOw4fKE3cd3Ek2edO09lLDQQ01RV50jxwTBsE4OSCQX3hz+whiTtIDWJkcLG/QOSC+xD
CC+MmUO6m4L6iAeUcxJRb1YBBTPUP58qtxzdrcMowfWSawYtvGJhoJYgUn940valsCw4/Dmk2h/F
czVu8nQFkd9Zta8nz0b/W7cCLUEpjNzfprftwXted8f423V4uBE/4gGh0V/CztDeuhTbHN3SGlhN
JwTVmX1GbtTKizZwXCDOW7S8yybRIUj43MYuqYsx0M0/dorpLk8r0jkKRleI3DSGJInRdmt7c7hZ
1Zh7Ere76dxtviftLUPwh6PQAgJmpCgwZ8IkVo13iCRXfdtwfSGIodhCeuudGwNVNTnq5GKgdtnv
TZ9AdKKNVeP/4RFpVY1Q9GxzwiB+4slz6cbXNn3hI+K4DtzY0BWxpEqE1xaIjj7+0BqeXL65tldh
4/4JyZUWB3TFsC4ZHlhsiv2IB4ROIpvEVpWgBJVuuLVwOSW1D8wAld7htfcE4cazsDTWvZmTtq9l
uxMmdu6HJ6Qlv7rUmimM3N+nt44Wm8OZ3AarYGfkRzygnNG3izlV6424VsIfGHudKrCycCBPnYbS
2Z8n+TFF/VYWnzHrVQPGr4YvCBdUbVgoRyvtsQpGV4jcdIZEKrXpuZ5o//ydp1pLGMVhO4ZyqGjc
9I9HoQLRE7PRC5MmcdSWxj5XPRyWFDiLUzMj9W3YQHnn6KX9HBJQu3OCSdNnRmuWto7yPnJEOoqj
NRe8ZjE0wZOnb6Q3M4nC/ZGNDxe9fwnIyMfSgq86fGANn6TkIxNnKmzcPyC57cHCbX/5bRJQMLbL
N8ZwOQeUcx0AlYb0qMTahgz9iCK3pDpM2r7nPWriyv/M/eCENCIVh3RQGLm/T28lfvmH/vLL3lw1
TrQRc9DX0pTmJ6qfOg39jhCk2nj9GIPmR67csLF9+FzCSJxJZ6iWPK3UzFAwukLkpjEk7Z3MyOZ3
XNVSind7zEj/K7Hkocmo2cePQpeC26KQNXp0SukLyq5rxB6zCf3j7zAfLCdEPbY4Lig7k21vQjv1
rqGoRlgmrr47wccPJ53fmOPT0Pa2AaHo1YL0zgJLWmeVQ8I2DEMvsWdIHHf39j5Qz0q0xIielt3t
Bunie8DcpuhmLKQubCF1ZdF+V4jCGkBdxk6VKhAGFQCD8R57SGZzAV/MVr1pDXFYCShR3ZybCblL
A3CXm0aJE9wbTkTEPrenGbBHaeCmNckR6jC3OtgcaxpiTKGMrCUi5mmlhMDvkO3V8CLO964wgeUZ
AyKlYwO+hT34FrAX/bIR3B6zAamnoZ7Ph7nng1V+CmiSGDmL/sQdCOeCa4+g4pHeOhVfwXre6L0/
7OQNBpxoE1uGircesv9tTr3JuuqVbpj1HmVrxN9vMgCmMKlUs0+V07xWeAZWfiOQiBgamx1KhAod
Auoq/aHBBSaIr6EixaPznsGvb9U2A7QDtXPSYRsliUDZR/BXEXA9pQCoG4uX6kNt6xsF8A4G750B
YQg0KaTGb9iyDGpk+wgYt96meypyZa4DZZ74JQCKSu0gGJY2xml1uG3ij4EyrTddkxOnXn1QgeMa
A7lvDc4HZYacidoEK2izBBVQ0mxgs/qsQZmfCihpccvbP3HwGYCrCt0mXkP4ZnL0i5fS/Izr5V/4
pYHP0kaVUMaiG9gG2lkRM2HhyuDpswi72wI2IQ/Mkof7zS8gKDqgUcrG/nKzpANm6UutHrlZIhIR
5uinR+Biz4KbNmdFfCafSs3NieMjN0vgQSA/K+UwRHYJmCU154qFEH1zgGK2aYvcLCUBqtW4rAsR
8wBb5KzpcwzMrQZQTaZfkpulI2CWFqkOwvZ4gVnSSdnvAsvbDG4yd6+cCXMjAc0ooFFAo4Dm/xMa
ieOj1MKd514XzVICP+4uG9eWOO9M/i9QSwMEFAACAAgAUm5ISpBXPhEaAwAAdAwAADMAHABjc3Mz
L2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1oYWxmLWthbmEtZGlmZi5wbmdVVAkAA6uSm1ir
kptYdXgLAAEE9QEAAAQUAAAA6wzwc+flkuJiYGDg9fRwCWJgYFZgYGCK4AAKMOyXvbuGgYHH2tPF
MaSC8e2djaukA3lYLvz4+998tonikohjp88q6TxbwjXt7xLbSyJ5f15Pr2fhEFBwaGBgZKI5o/G/
UMXf68v///zwe/7//3/fn7//3/aTvO0740278qfe+/mBc3lYFss3To4T++bOrAhwcGDbuPWWuoLC
77K0R46MjJJHrmXNb2h4c3tmJzsrS4pA9OpaJqZN+elqciICExxz1lJXYxLE0Q9es9r9edMv379z
v2PY/dTS+llf/O47TuqL2tvQcGU+Q4OKgoKn+9o4B4dX/gwOQgITliwO01dQ+KrOoMDJ4XEpcLW4
wIRfwgwTWFhUXq64ys3h8ZeTwYOJaVLJlVesLEv+sTCoMDJ6WmV9ZWIKqmdimNTQoCK7tYqRcaU9
I4OngwN2a+gRU5QwLqh+qHpVeD+8/sXzV0c/X/+yI//4q32hVc8Pq8+JWil4Y6AiFE0jJyRFrhf/
8WGzfZ3Ns39skbXTr/7NvGRdy05qjFA34gd15Do0OEw/8Hrl8dr4vwvnrxY/H3/58T7Z1b/DXs7l
n1+QtdQtYcAiFFWjGsTF++IeHD7/78fHGb+lU77Ghn1f7vn+iyz1siI5ET+oIxfIiGVav1zue+3X
9rp1cTb1vv2/y9a8i15abldzaOVUqcYBi1BUjTMgLv5R1chv//vx8eR3+ROulkfena+293I5Pcpg
3BE/uCOXhaOEc8+8qjvfr8r/2ln18Y+p7bvbG0cr3+Fc+ZonAsNt7/uaHy3fnWbMOTC1oSFmZUXv
AXlGxkIulqaGBhYZVSamR2wcLIyMnBZeLCxHeAU4mJiECqZwcHRIKwgAA++BhqCAgLmDAgeHx4FA
JQWFvAYHAYEJDYtdHBzuMDQqKCgwunc2NOxgZHJ0cGDqEwIazAwzGOK2AzMPtM//O/PHRwnbd+vz
Dr36Z8ILLIaXJJ6e9zHCwaHvZc0GoE6pbW8k+1lZnsw4xy7NwkJ3Sc7BXi7ThbFG7Aev0LvAt6zr
M0D9CwZPVz+XdU4JTQBQSwMEFAACAAgAUm5ISrG4i9uSBQAANBIAADUAHABjc3MzL2xpbmUtYnJl
YWsvbGluZS1icmVhay1sb29zZS1oYWxmLWthbmEtZGlmZnMuaHRtbFVUCQADrJKbWKySm1h1eAsA
AQT1AQAABBQAAACtWEtv4zYQvvtXcA0UkpFITnZvtmIgdQI0QIoturkUQQ60RNtEKFElqThu4f/e
4UMSJcvJdrM5WDbn9XHmmyGV5NPN1+XDX3/cot8efr9fjJKtypl+EJzBQ1HFyCKV8suU0YJEK0Hw
s/c1YpxLEm0xW0fPuMCxNk+m1myUSLXXTwR/Mc3xhix5oTBYC/SvWdV/JZdUUV7MEF5JzipF5o0s
x2JDQXJ5Ub62q7xSGoJdRmBDMyQpeyHC6hzM52DYBaL5xgueUVkyvJ+hFePpc23u2adgKjiTno0F
Fa24Ujyfoc8NtsOQ3aoCtcIz39FMbQH7Z5K/YaYyP0U4y2ixmaELLxODZgyvCPMs1yCI1jinDPYY
7cjqmapI7qUieaRl866mpP/otF4OxbAbqRNx6AVeQKqLjKZYcTGUX4VXjEQpYawNWeNJoep5EckS
61K38hUXGRGR4iVkuan0iuG2Ug08iy6WhJFUET95iryqKCMpF9jSrCrAqyZQ7SSZOqImU8f7Fc/2
mv4aNEoZlvJqXG91bAmdKLFoYiQqWwDts96Kqz3NrsbktTTAIlOhMcqwwpHal6QVjREvUkbT56ux
3FGVbh/4nWZvqLZUTsaLW6eHzGoytd7fiYtTVWE2ENUK3ot5bbT+V8SMrtcD8fTye9FuQOdkLPgm
TqWeFmWlkA2Ubkn6vOKvY7v/AiaAIibyFhcbUFB8s2Hk2grCyRgZC6IraPwsEttFay5a+4XTnyVT
Ix1KwmkU6T4F9ncK7cBUJeSImD0vtdJ7eHqeGlJ8AJbHhA+Bcn4cZz4AqKHKaThvwDDWhkrHECyH
4FM39mI0SjL6Uvd396Rw3C0FWdPXq/HpI2+8uOdYT+c4jpMp+NPnXipoqRYjukbhDsYi38WKSPVn
VYDnychOpfp3nFV5eS0fYEyFk/lo9IIFSpsD6wplPK1yUqj474qI/Tcz4LgIg97RFtS2GjeY2QEY
1EwJ0MybiYGx1WuwQQb4bRs2YeMNUddKCQpdSMLAS0UwQWcoaAgYl8UmmJy3jk3GteMGNri6ZUR/
/XV/l4VBdxLWxgf7CCyJfjJa6/QHsPrTs49U8+wn49QufwBlO3E9jAdHBweFWDBLXhUK2HEB0nVV
pPpErFWWPC8Z0SNxZPd0djZgbA9Nzewhzwn6MmmgC6IqUczbQ1pu+c7mRO/9sS7208TqHPe5XZcK
C6VXoMuMVGrJ4XgH1nclWL0DUxDYbkF29lypXRpBDNeq2xdI4z2FCxEUKAy0l+C8n5GOkRQpeIQg
dtFu0sq6oLpHHLEVq5Hp0hibBxiD4M+JhyiiB2VQp6KbwcbDUy8hgkii7jUlZFNOmJEoNHHh9odo
YSZFWy3rEERPseFSbOaiTk0sSM5fAE59uwp60VpUcP8jGy72N8a1jdvyXxC4DKZkuaUs66jaWXbu
qa6pkMooTjwCdbZl1ztu+sChwKdRH9PNAdaZiJsJZ04Vfw732697JAeT2B2V89aZG0Df6cq1xZAj
MyG+040ZUJ4Tf+9gsayEAAu2/wbVqztLc+kdwngDT0+BN2jjqin9ErR885tHte9CPsreTa1uah31
5MS2yu2+24DDY0RLgE7EU+Pl0LAx57JO7F2hiHjB7O5m7rXAgHOHd9ChoW7XG1TUXRaA5PVyaJWM
3Tm8a15c9Hvv2LuXp16ISec91MQCORa9aK1++zJ2DFa/R62hWbOh0nmwQ3/mpZZ1d24wv83DeWNm
3gRB/7G90Jw3l4Vzdxg/tfqwN/IK+sYuNr++rkM/uD9WamB3ziq05mfocoJ+cT4YKTZq61qRe3nU
xsoOcaP52Hh6mh93itZ8sh3cbQVzuWwN2rz7uNofJ7Ed0A6mJvF1P13ZfOgb4sAh0kdtzxJ4KXa3
WHgXs6/DU/vPof8AUEsDBBQAAgAIAFJuSErNnYj1zwEAALcUAAA4ABwAY3NzMy9saW5lLWJyZWFr
L2xpbmUtYnJlYWstbG9vc2UtaGFsZi1rYW5hLWV4cGVjdGVkLmh0bWxVVAkAA6ySm1iskptYdXgL
AAEE9QEAAAQUAAAAxZjNbqMwEMfv+xQjKq26Bwo0CQXiRdv7vsFqDwaGYMXByCZts1XfvQSyKkn3
41Lpz8X2eJjfeDy2rBFNv9P5Jxo+0bCspu447FWvOf+uWqbCstw62jvVbuiH/8jFVvX+Tz3M+eMc
ZaSNcUw+FVwby9RIXdNWtlIEk6E3w64/zMdE32rT9n4tS6bnmZjoJN8pfcjoXuv7hnfrMw1ny4z2
Vl97lp3Z25JdcFK8cQ8b78tgw+5kf+2No/nPL7O+62RLOVXq4V8eeCfL3vq9jlO/OKMo7vrzyUdV
9U1Gy5vVpeuVcp2Wg1nVToHUptz+zcGjZzl1F94VxlZsM3JGq4oKvWeKuqc/2xDBLO4ieNtsUZjq
MN+eYyy0bDdfPW69/AwoBj/OJaO0y0VrCpt/vnpachiuxzYppzZMj+0qroq1CEY1MakuwmU0iLoL
RPCO8dHUBYS6glDvINQUQU0hEU5jBDWG5HCCoUL2NYGcnIQRVAm5hyUkmyQkmyQkmyTkHq4REY7q
ELLWGLLWCEK9RUS4XEDWiqEuIVTMecWcnDsINYFQUwhVIm4JhrwlGPKWYEwOFxBqCaFWECpDqDUk
h/+/VhEcK1G/61VTkUoEU73yFVBLAwQUAAIACABSbkhKBltzHg8IAABJLwAANwAcAGNzczMvbGlu
ZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWhhbGYta2FuYS1leHBlY3RlZC5wbmdVVAkAA6uSm1ir
kptYdXgLAAEE9QEAAAQUAAAA7VppVJNXGk7CUoiNIttY1JwgkbVsAwQtAT4QBaxsKlTAKpVFEDEq
VfwQQ0A8VakkQlkcCokVHUGWDkWWM0g4FQ0CgoUplEVCCZgyDAQCSMQAc5kz5X4/nH/TOaP9+AP3
OefevO/zvvd97sPJFX9fTwrZgEwgECjeXh57CQQVGoFAOqChDpA/nU09CX6Zfb7zwOfh0ZHhsfFn
4gif2dtEhkdF2kc52ETah4czHLZF2keG2znYRIUzbKMYDDS91x5sIsbv9XQnlLdvGiMQrNq9Pdz2
nyNO9P+Q0b87U/XZ6DfLy7l1L5m6j9X3BGjbVZfI23QoAdnZJn0qTXGKbcmLsmQll0AkqWpo0RAO
+IOYskxps0nFQsvr/REl7d+LFVRLxx858jf19RARcBQfwBVCMxZwmu5StkAEIU7bwRUH2YMQrwRs
9IAIhzR8FK4IKXkckvYtxmVMHGpNHdiobIlq9F1xWhiEfJmPWakeIZG9vuyjYRBdLVcVuNJoUtXl
bbjvhkFMaWx1uNK6rGlKsz12EYMAIt5/C4lwrTDeLLrnmHTI7GRhcqEV19W5MznTM0SZWMgsv9DJ
bzGyZDv7UXtcxvxGr+sLC+cTqD2s17MxKblqI/OIofNTtqw+OZuCDsycX7BEmZYLz1G5ol02xmqV
xPwga88SJbD9kkOpfunshEGhXDG5X8z2HAoibqfPZYy1JnRYb0xjHtIWzqUyB4fNk4Opo00sCk8U
enDUuvXW14oyovxc+j3lKGvGVCgg7mgUEj/QpWIov6vvj5RcKvCDnDSCMqhfeg+TYYmaLu/YZ1Id
yLwNqK3bzykYHo8R1YpCfnqFqfb7RLUI/3OYaglCEGKx/lkXDHk7kHczHPbjrkcP0cI/8BdMLWnc
KsUcEz34usg1+w1N4fL8k0YW8vJpdxQ88o5O7dxGnmQbVVjbvby9mOlSc09xh2m+39V1H5XfH5i0
j6pXwuebcTsmzBvMuOTAo+W0IUeaRdFIBjyDAcYKQ7PTACJBIPQgryebNVfzO75FwDmuXeQAMy4F
V6yUl+mkvZrNTx4IsZfuFQtJOeCGEIMNtybQVxP+9gqHVOnN64YUfJsKEPfdk16rzIXpgAJk0crc
IKIGkEtfDVyH5BqTyM3GbiEXIUIGCNmszgiW1gcU2ye1Sh0iegDR23vaExYlH8yafNUYCkQsAPLf
IWgqXpopRQfRp06GRDRNwMq4LvK5+yxWruEm3mTEzfe/2TOyPrVh+y6q48366oLGMtLpTf0TD2bd
5XkWLmhzuFVK3QmJ7AvmC+28ccYSuy37i/4R1YzDE/0VjqcHjeGsi7YcEnOqMsRyGF8lGLnd/fYw
qTLQet3ToYVw3gUhxCeJ+btgk9/nkDo/YrfC7mwmm9KCWV0woyrQ4yEiFgqPDQYjbzzOABLcDT54
XGEJrwHNQsCJeOBjtFrvZ+AyxWwWjkLqIkBspTUxMPqQNaa0MkkNEx5byiFlzjGuwehjwa09o8wx
WT2Wp+ePVA7ewbIiwEl5u0iZmjk2cKo+8aE0myR9JR2TK7qMFk3QokcV0ieSPpPFYmbncM/MyKmJ
rKX91JjpcTRZemqx2o+vfy4YYa/T7ez6x3z76096eSJn4Z/FmaKub8QFJlyZsnCpmlmovzjJRJOk
87M1o9NVvyRIFy24Mt+5iQTVE3q8HXtleQ1J88pKt2bJ1ulQ62aJZbk8dzTAV9lNQOsfBS5VMluu
iA1o3JralsNLDK58jYGNqnIjLmu/fThDR5mfMr+WotPF3E6S3Cv9cEeW6L7fwr43NIWk64KaUj1C
fDwOdmrYRymhQuL2DMl0euwiP6tFEv/Xq6yWW+5zM3aj03WfPnIcDbi58OqGXDFQPpwvv+t/5gWZ
xFZ5R9Xo/06uXROs0EJpQU+9jjbPU2PhxQZ0II38wJirNfvUVl6rqZfoQzX8JT985JROS2y/5oA5
TfSX54MfW9O5dcNZq6r4q0yKDqK1Pr5Dih8bFhONpHHa2EGzRMHHL65Jbz0prhWPcfOIqyxuHnHz
iJtHXJNwUnDziKssbh5x84ibR1yTcFJw84ibR9w84uYRN4+4JuGk/AbmcaldshDHB1OHZjJVyVE2
XF3WaVWTi7OWAhkj0+LddUfRkVLZnkzR5tsDTvLmYPGN2QrmZFKP079mdG0gsnbZ72X0WmkuxZ3K
fTx9L2x5LvaOIzdXlB9mfShXtEYwJZJrXBRumI+jWmfM24LYtqw8PtN6tTCDnA1qwV77Ln416n/w
HTFFnd0Ys8OpAjWh095oFFb6lA5U6tr31eYwu2XWr0bw/ELFkf/gBP++Z2XwWoLNsVLpSxhmjrY/
knO1NRLer1JwE0oL+P2wiQ/sBmJlbpW7FUpTNZCms+wTsEfDzIAQFdcezIGy0wdkp+9VnTOM9DYg
6fbw6WBIYyzol3c0oMaOgnG+FJU6yNJUV9XMveKJkeqF+C+ZJ9zRlfl0beV/NJJoemVjCdA2Oop1
fBRwUpTWNvZij5lwMM9QMwH2yjMEPEJjtCr1YFBtQGbbMtPOw46KBjfJXqP3KkwlCsh1lPf3zrAJ
7UEXGqQd3wkJ+A407nf0n6lwlwFAKO7VWyBtwYC24MyT6+AuCkDUDUMxz5APAdkfete+B3epgzt0
kVeGec7ogxLl0AfgUwVRAYParTkIPots0jmkP36sPQmfPIIUMGRpERbweZW3EyHe2Ko5j+UHwenB
6cHp+X3Qs7Tux0uCsKSpkIcE8OO909ej3D0s9Z9QSwMEFAACAAgAUm5ISqMW4nIlCAAA3SwAADMA
HABjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1oeXBoZW5zLWFjdHVhbC5wbmdVVAkA
A6ySm1iskptYdXgLAAEE9QEAAAQUAAAA7ZhrVBNnGseTlChErEBAsIshAhrYVAQiuGmBBEXALlex
VSQICGlkI7eAYAqSYCvYegl4AaJCqNiltltQWIlRITm1LWiCqWsF5ZKwSkCLSYSQcMltp3rM5Oye
fnaPnfmSzJOZ//yed973ff5PPk+Ii1qKegcFg8GWbomO2AqDvYWFwRA7bBcBkTPFB/OBD9+izTuK
MvdQM+mF+3Jgu6kfZ2Wsz6J+7B9IJO4mEvwDNmT4BwX6UzMy/f9CDNrgFzIeBdwEL9watRHWesf9
KQz27u4tEeHb9sOVQ/DcoejlNgmFNZ+uxh050DEcQ1eKRN74xAt7SvbtkIqwBKeLJrNLA3dnXq1Y
P3BkHcLG1gFLZsPgwBd7hzkpm+Ae/vLsRbjCbOeDxdhYXVUJBG5+vTICvIiNeLTilQRwnl7PRgQe
HQy3EvbBNsIhidcoIeJH4daKm/E3zKcRdWI1z48jD400nwyJPNLGw3H28e6qb2f+c26ByRov6BoU
burv614YSeH2Kr6978EydVEw8qdf0JCY5dWTi5eMJ8syZ0f0rodCjgvCSvkhjaf1Z/RjU0Gt0vJv
Xp6oFAWhfcJN3T8Z7ra0Uj3roj5JmzU1U7pVY6p42TZy7aMiP7Qpbi1H0J2tWMVJtjGUB/3VySwJ
yMQM3DI0Bg0UTkvX56kFN8p/TZcLWax57eTADG9+YWFhWjMhjW+4V9W3blTKlvBq7OwsQ3Iukgwn
xp5avsqStb8QGDdW5BpvSyT/HThybH3izs8s4yQyIFC9hhXcajCSbeNcfS8i2xEcX80SH6yGlrUR
jLQ4JpDj0F9tBt+IZF3TGwskVhjpORIqk5ks3K3MVa90vEplTV7xol0tuS5aq09pyzFHbMf8TpDG
Umu9aIKSs6IzxsHSobCRD6WoS6yPVA8OlCMYEumI1aR+5jDXqRhU7FxmPti2mCSZXxL8IPh8SCfx
2LUPMM0X+A1enJy45tYTPT5PlRO9WdfvX8XLd9UqtEkcvcmoF7elCcO0hDTgKDcZ5i/ynt58D2mw
uUAoSUFbFsJhYOE4Flc5WQJPnBPI7xXyg8Dd7jAb4ZRR4gMG4uBISOS/RSoU06YrnQvtN278I+1y
MX/2uO1wu1A7WEMYvp46Wmv8bqCTdR7P+Z1gh3B2oaZj+Hpsel+5siuHp/qGhnxAwpc8685LyRVW
PqZj4EzJyR/3OTF7M/0qBH+fMgZsxwxkZwWmrWFwCeikAw2imzx22cjdMK5VmQqGsxZdWFugBxOx
Rflgw8uiwFT3oBPIg078deBNTUBmP5Sst1ZBQiKQyGsTKSst0rWHXPten+abLzCYW8Rj5tjIbgb+
JEdD1ayqmdfuCmbcGpsq+LWL0qoWj2/y1Ux27R07cevx419IhTU9VTHjAyRNb0xBa5IHUKuvjRK+
bDNWep2cD5yvjw72cMpkperLBXGedZeZZed0Pq4Py6KPmbWJwd20n2iM0KldftP1eI5k/QRx3z0z
ks405+4x0vu/TtFcVYXODgy1sNoMc1OP2+YkfD7/YvNUKIEe0k0bj4n0K1R4cgTT/n2JFbHIsSer
VDjQerBFH5LhU+4OoBvxjyHDV0QqsVYGxtlBCrMyNDeBipfxy9ueoAogYf9HlfjNpg9mi6en28t/
HByRve+ZLzXJJqPuMNTBFVE6jkxe/MW3jY47OtJK1dyO4Y7U0Rpj8yyfN3a7C0HX0dXK0B6t3ib3
ofyTHHnLtYVkuE56+zv5BA47GSZbDYKNopHBLtWKLpNxKevAefGMh3bDWEHDZfWk8p5weznw3p/y
5nW6j1yPqbnJXrOhBFogg4t3ZUpOV2UfR+39MzZqWQHJ2pO2IlCHJ6z7iAzA2Pj/bbEjmHwTe/8i
sPw7uK1pYts3FztYqaAO0/6oEpcoMmF/XEptXZ0W36/SyRwrSnWzu0iM2lK+XUg7a8bUmUTRHn3h
qqTnFI1KBOeZR5fQ6L1d5fLbVMhTE1vluHyxqZ+uD7t//4XpyjV2503mmTUqF/kABRHIxXNY8V5n
WXSJZpbBxR0h4Wr6eJ6Fhg7KeO+/M1HMsug5rT1iGQvBqFyttF7Q7giTfa87sf6gJUQ+xEZsdexY
DZpNySrAftZ86gvmtA0wGi4BKSesdVCQDCTzfyQDdMkpfv/TJd/jMY+GyZmvFq8wdTQDLvB7QroW
GCDH/+llyYx7tZUaGhBnUb0MtfAz852GktgD3OdCneIyfqOrxRrEeAPNa4xzZSIIdy4VaM1Kv9d5
gYWhBmjNEt0iwWYtvxhozZ7ZDXHADCKADCIy3A6BkYdI5+oO3F4SuPOg7Xyw6EMZzmCE5ppAvtN4
yQg+Psa76Y0FkndKGAJKJ2X8TDhi2s1G6WbZhONdn6Or43HaCqsedBj9YAZdTU1WjZDuT64lraju
2cZpyLD8Xmw7Z9f79rt1oGXD5gMVnDg+kWtV+oqBqfb+JcoHVltmAEBWz7sOTlCHB8AMfSZi+FoV
iR7ALWSWq9ZY/W9TxUa0vyX+yorQHfCVx+cFZ62qyUpg1N9oqOc54it1YqqY2rrCG8sJ//m45Z3P
FQGOMys5zEjx2E8mYxY/H7ZoObjskJkHikiyw5Gj+eAzQ4HiFR3fHwxaHwdg+j1ydAMZyBw24l8n
r8SCDD8As3i/zSIwl5+9mtgzWTlJoG4BHOmNqYCDYzID5BaaPHQKlKWQ4Z9HpcOsWVAQCoQCoUAo
EAqEAqFAKBAKhAKhQCgQCoQCoUAoEAqEAqFAKBAKhPJ6UQyupV9uymOfih2FAceWzXERrRvTD/4H
UEsDBBQAAgAIAFJuSEpvKitIBQMAAMkKAAAxABwAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWst
bG9vc2UtaHlwaGVucy1kaWZmLnBuZ1VUCQADrJKbWKySm1h1eAsAAQT1AQAABBQAAADrDPBz5+WS
4mJgYOD19HAJYmBgVmBgYIrgAAow7Je9u4aBgWuCp4tjSAXj2zuOWTKGAqwXNp4UrJV9/PtHz8KT
XgkzmBq9s6zjz8/2c/Ge9V9L/tFZG7k6DgEFhwYGRiYWejBsuGOunv+cvXfqq77V5U8+v+t/Ne37
8+/f1ux5Z3ltJYsRi4hKcl9QjlDABN8NfWcFAib0WHpt9HRwNDtoZebs4Gj0TOOoGiPrTZbXN3gY
WU/OWCwym0UkRXhNsjFVNTpC3PpHq3F6/NfMmhmdDj/nWq3+P7vmtGr+fNcrr/03/tjsvbqw3qz3
NqeOWMCEowv6TgMNWFPptTnCwVGs2UrP28Fx0zPNs0mMrJE8r3boAK2ctdykm1UkxXDF401AK7Pn
XaKuxj56RSC5jIKOA6F/15yLu1u4dt+Tj4Gxn/f9mfVq2n/TM7Ip5Xc+2jy5/lxVm4UDGDmSQvNY
uBhZNQN0BCWYuIxUbDhFmLiCFkQoGQBjzKNCSINFZInDRpcEDo0TEz6oBHBoeDQmdR4ARpziQ88F
QIrpqFCj4gIF50OTHYAUa5cqEzD+21rUG50cHLlEvFnaGpp4OP2ZWhuaRDSmYbcQ6uxyzjufrpps
j/lUsXrdz90ym3al/p3+847ws77odzsWG6fsby758qZXPGDCD0HuG4IBE/rm7f3IxCVkn8RozcR1
6eJm8zgHx0fuOgnuDo5WVd+OcWt4/OlgfQN0r/v5exWMrJ3yGxtkGVlfvrgprb9A4aOy2AblBQqy
ttWPWUVU6o4wlQG9uTg9f09D05H+iAN9DU24LOMcxJEOZsSzxu37t/Tz89W3/kTp1tW/7bPe9//l
Gx+RiD/+FhM9lk1mFXny5OVpO9GACZoTxf2AiXvycv3fIQ6Oy1ziLCIdHP3m7XsTzMg6U6jyYQoj
q2Xlr03+wOzg9aSVuhqtIS7e4Jnwaat9ec3Fc7LlOZeKc/Y03KdHJBJMMXGDO3ePMkYZo4xRBirj
wEmm/wzzfHPKxaenx4LaqJ6ufi7rnBKaAFBLAwQUAAIACABSbkhKUdiaF5AFAAAwEgAAMwAcAGNz
czMvbGluZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWh5cGhlbnMtZGlmZnMuaHRtbFVUCQADrJKb
WKySm1h1eAsAAQT1AQAABBQAAACtWEtv4zYQvvtXcA0UkpFIzu7eYsVA6gRogBRbdHMpghxoaWwT
oUWVpOK4hf97h6QelCwn293NwbI5r48z3wypJB9uviwe/vrjlvz28Pv9fJRs9JabB9AMH5ppDvNU
qc9TznKIlhLos/c14kIoiDb7YgO5io1xMnVGo0TpvXkS/IvZlq5hIXJN0VaSf+2q+SuEYpqJ/JLQ
pRK81DBrZFsq1wwlHy+K13ZVlNoAcMsEbVhGFOMvIJ3OwX4Ohp0Ttl17wTOmCk73l2TJRfpcm3v2
KZpKwZVn40BFS6G12F6STw22w5DdskS13DPfsUxvEPsn2L5hpjM/RTTLWL6+JBdeJgbNOF0C9yxX
KIhWdMs47jHawfKZ6UjtlYZtZGSzrqZi/5i0fhyK4TZSJ+LQCzzHVOcZS6kWcii/mi45RClw3oas
8aRY9W0eqYKaUrfypZAZyEiLArPcVHrJaVupBp5DFyvgkGrwk6fhVUcZpEJSR7MyR6+GQLWTZFoR
NZlWrF+KbG/Ib0CTlFOlrsb1VseO0ImW8yZGorM50j7rrVS1Z9nVGF4LCyyyFRqTjGoa6X0BrWhM
RJ5ylj5fjdWO6XTzIO4Me0O9YWoynt9WesSuJlPn/Z24NNUl5QNRneC9mNdW639FzNhqNRDPLL8X
7QZ1TsbCb/JU6llelJq4QOkG0ueleB27/ec4ATTYyBuar1FBi/Waw7UThJMxsRZgKmj9zBPXRSsh
W/t5pX+ZTK10KAmnUaT7FNnfKXQFpiwwR2D3vDBK7+HpeWpI8QOwPCb8EKjKT8WZHwDUUOU0nDdg
WGtLpWMIjkP4aRp7PholGXup+7t7UlTcLSSs2OvV+NSBN57fC2pmcxzHyRS9mVMvlazQ8xFbkXCH
Q1HsYg1K/1nm6HcycjOp/h1n5ba4Vg84pMLJbDR6oZKkzXF1RTKRllvIdfx3CXL/1Y43IcOgd7AF
ta1BjWZu/AU1TwJy6U3EwNqaNdweR/yuCZuw8Rr0tdaSYQ9CGHiJCCbkjAQN/eIiXweT89axzbdx
3MBGV7cczNdf93dZGHTnYG18cI/AUegno3VOvwOrPzv7SA3LfjJO4/I7ULbz1sN4qOhQQQEHZiHK
XCM7LlC6KvPUnIe1ykJsCw5mII7cns7OBozdkWmYPeQ5IZ8nDXQJupT5rD2i1UbsXE7M3h/rYj9N
nM5xl7t1panUZgW7zEqVkRyOd+B8l5LXO7AFwe3msHOnSu3SCmK8VN2+YBrvGV6HsEBhYLwE5/2M
dIyUTNEjBnGLbpNO1gXVPeDAVaxGZkpjbR5wCKK/SjxEETMmgzoV3Qw2Hp56CZGgQN8bSqimnDgh
SWjj4t2PsNxOirZaziGKnmLLpdhORZOaWMJWvCCc+m4V9KK1qPD2B2sh9zfWtYvb8l8CXgVTWGwY
zzqqbpade6orJpW2ihOPQJ1tufWOmz5wLPBp1Md0qwCbTMTNhLNnij+H++3XPZCDSVwdlLPWWTWA
vtFV1RZDjuyE+EY3dkB5Tvy9o8WilBIt+P4rVq/uLMOldwjjDTwzBd6gTVVN5Zeg5ZvfPLp9E/JR
9u5pdVObqCcntlNu990GHB4jRoJ0Ak9NFEPDxp7LJrF3uQb5QvndzcxrgQHnFd5Bh5a6XW9Y0eqy
gCSvl0OnZO3O8U3z4qLfe8fevTz1Qkw6b6E2Fsqp7EVr9dtXsWOw5i1qhc2aDZXOgx36My91rLur
BvPbPJw1ZvY9EPUf2wvNeXNZOK8O46dWH/cGr6hv7WL768sq9IP7Y6UGdldZhc78jHyckF8qHxzy
td5UrSi8PBpj7Ya41XxsPD3NjjvFaD65Du62gr1atgZt3n1c7Y+T2A5kh1MTfN0PVy4f5oY4cIj0
UbuzBF+Jq1ssvom5l+Gp+8fQf1BLAwQUAAIACABSbkhKG1qCM4YBAAAgCgAANgAcAGNzczMvbGlu
ZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWh5cGhlbnMtZXhwZWN0ZWQuaHRtbFVUCQADrJKbWKyS
m1h1eAsAAQT1AQAABBQAAADtVstSwjAU3fsVd+qMg4vSIsJoiR3Z+weOi7S90NiQdJLwdPx3Q4tD
y0MXAi6gm+Q+es6Ze88iJDUjHl6B/UiKNCmvRWiY4Ri+MIEQKaSZhrFmYgiv7hSjjBn3jduaW9Qg
AC6lRnAhwoFUCOk8T1Fo4pUwa1ht5tUY4HkghXEHNEb4qKQBVvkR4/MA+pz3Uxz1ah1axQGMFW84
CrUcqxi1t2ps6snQubUYakRNwymi6s+flbvOqYAQEjb5SYGzQnZ62z2aLTCAVjc39eKUJSYN4L7Z
2ZSeMJ1zamGZKMfIZZztE7hUFkK+oS6SKkEVgJacJRDxMUIrn+3GIF5l7sRbr5pEMplX17OcBadi
+OSgcMIaIbE66pkim4dEyEiFN9eze/T9XnE+xOXpP/aIV5RJ2dLpJtGydOe3fFvKNyi8LY5Ds7ZP
z9r2W/F/sNLfJ2yNYTe+2wDv9DAG+NZUl3lsA+xlbZ+e9dgG2Mf6RwNk8mKAszbAIr0Y4KwMQLzy
PWCfCMXD8AtQSwMEFAACAAgAUm5ISpibpjkACAAA/iwAADUAHABjc3MzL2xpbmUtYnJlYWsvbGlu
ZS1icmVhay1sb29zZS1oeXBoZW5zLWV4cGVjdGVkLnBuZ1VUCQADrJKbWKySm1h1eAsAAQT1AQAA
BBQAAADtmHtQU1cawJNABIJSwFJRMaSLIj7I8qhIlhBihaKigKAF5REUEClEKCAQHkmUtUpHDcgu
D8GEGaquBYMklWeTsIsuoUGy605NFUnQABF5RLhCCI9k7+DIvdOZnZ3Zf9zZvfknud/c88vvnnzn
O99JcWhw4BrcBhwKhVqzf59/GAplQkChMJHmq8DI9ezz6eDbtqyAyKz404nxKZln6SgP0snEE4lu
p0gJXh4eJ7zjd+3ySvBwP7n7s11u8bsTdpOanN0DwUHozLDAz1H8PodRFGpn0X7/PUdy0RP96Ix+
qZ1pqMfNIv2p8rSRaveTtjefeFlQTb19T/kdpZOCSiqNtL3ZeUcpNIo4WGxuTaCyUWiMKfjBjTpI
M+lLN3139S5scKpl51rD7rJ3rmWvrsu2ht2Eu5T0HgFenzuBwUndvjKzgcAgYhWC+JCItJStN+Qp
2vSlKkyFrDGnorsRX2c8hK97WCEv6xbIX9VP27uKC5RaRrRqQl6SKEyiif5YHM29K2Ya89saWI99
8HaRrgTFRsuRw8pCXofO7AJ5to0yn8wgb9fVyHvUJD5HeRTP+clXk6mbbuWOyEs0lY0DZ7etbWsY
9dXOHyfKfdoW+qpx0jbvG7LfS8Jl8fy04wxp/CdoCe3RtQfAiPdv1CMqIbe016aqJtiPwvzdDPNV
rkpc6LO0qBdOc7Va7W2tSuLY3lG9aceglu0wNnoGSlLzneYuBEtvImyO0hvYmIyG2x2w0D1w4nYO
tvpDM9PZBM5tE3fyC1joPBsjYKttYZPZjXMhdOe1b4SFLMFxmKtBMAOHHbX/41IaWbfisatc849k
/aYgXjad0+m6ENU4QepKarF8LpDMPJv1ydPgz0XNtsT2Z34jP7OuNZE1dn8i522fL0Y3rhWJNTt5
A873EiRZ9P4B0dhh9Cznp4mFGh57HACSYRVHTHjTPCzSpPguWoq/ZFYC61Lv0f0ZqZkbZoiMy9eU
2VfJzaQreQrP6dN6keHY+p6hY4L8yQV1FkWibfuzI6+QxfIrNBqWOAoRNW4V2g9d9SnWE1osLjah
1APnm52hxbHe9OOS9WFuJlDEFo39bvPpFNuVQZV7qAjmX2IGC/RzxzcMFVBulKua3iYrZs2X04Hr
WZDdsZwjdEldzqTNcjr4Js2NZ7/LEWag9rlTutygHMvvm35KxwTNBimaBwY68HZxxj89F8tFdP3c
LgcaYC6N5+7kl0n34jMtendd0XLapluDncr0HqWymqrK1wxMvR+aofz75EEoW6nVbInJ4/LWQouV
hzPFflxCENdBgR8sXAj04v4KaFAoFW3x0uc6nIJBIAjkg0GUT/ooPIXyxbwnlljhpyWW+R36Qpyx
o0wOJALbSvUzsV4ZPUNTjNeiaL4iEbjzByiibZOqw52BMS0j4Vbu3fAIS+nZmDdVf6tgdpX2FFQV
BG+uDilukhALJdFbS2W/kCkhUbIAL16YmhUj+6uud+4gf6tSFoDPHC6tGrkQLGooWNJyJsZYF3Xy
Pat2DBklBfclM1vK1LyHUX0tsR0VPZr8kNu6LkmIuHDhy3y5TqcLefYzrUIw5avOP6XlnWDJdC++
Vnkyf9u/0LsIAPmZU0myJsnFiUfxMx9tTou0e5NDpTAvvgmAbTf2aGzCZWE4rMuZsw6lklfBdrLV
a0Op3xz2uQT1OWjsA08qDOIGQuzvF8EgIMLk/wNxDhhWpxS/gBdloUQ3zxUWZFd3Xl96NkO/natw
Wi66eJIsqdmy4WljjIp5LYd5NK6HOfosQj5laLRYLuSKydcDHNw91pEz+kwmRjCu3g5rOsxwqdsJ
Gs58zls/s8lQRn0d0KqUK2wwflbGWP2Uutum6GdVl663gcPWVpHKSmXRbdJ4PvmgMCIuHP00/5J8
LdR1UAe3g52tFdLl/8eI5RYtWQOM/rB49WZIR3PgIHdJpNDVDAv7TZ+MK/hpPg878DaRAlr7rPQY
RRgT94g5MT9b9iNQv5wI4ryrOtahwfKluwpxdoSWeYS9VJch4+VHiRdV9REFtEwLaQKfbCBdSTXc
cZcby2XkY4uU4lTmuiq1atgj0IoXDladvzQ2Eu7Nry2JiHxsBcvQ3k/Brr23tGgbFDoCtqJ27lHX
oDx3ACfBgVR5HqqKF9iYMBvhFgsYpxbBIJj/JsyPd+kMSqOoayYJF02UKGPwkrzLhhYVYF8oBt7f
x+ro/ArdRnxlzEo8KY7wGnKPwFcl1xx4v7f5YL3sSgCRcetizqQDb14g3CNV/2KuG/l6/LOVc2Au
Hc0yG7oP3N8ELfk7YH9+56Xbaiii+CSUGutD64cKSeUBsM/fbtUFlRKQhEVA/w50rsV1LIZY4ZoG
cPdgpu1NJ+xXAF3YRdOh9LDdm2F7F7fzFo9dI9fk81hzZ412xhPtZWR8C7B/ZVADm8dOWLoRvDKk
FvzSO9/2C6AqKcDg9j1RjUKB70H371tdg1bGEMATPQL5NeRN8/CcbFgwTFd67qPii2o37V35c6O1
8xYmg+LI5G+ctC7ptiI7bnn/m13C1fgZUtod0/yd0r2h5MCDq+y7rSnV0An3kqULYcp8NfRb1wZS
0aM9z25BTi9BSTLGBEqfV+BROk/QvA3itrIxtpxOFDQmD3wObgP9APQcxFr2Ayc3FNwFi6ggKogK
ooKoICqICqKCqCAqiAqigqggKogKooKoICqICqKCqCAqH1bFsGZeKzxit8ZtBgW+9gcE+/M/jzv/
T1BLAwQUAAIACABSbkhKBg6re4YGAACkKwAAOAAcAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFr
LWxvb3NlLWluc2VwYXJhYmxlcy1hY3R1YWwucG5nVVQJAAOskptYrJKbWHV4CwABBPUBAAAEFAAA
AO2Wa1ATZxSGd2NggorEeEUQFsVb0SqiXDQxqyAatCiWGhwBL9GJA0qwKHLP0moRWwwDgiAgrdbR
qiUiRbAgoVXEWiXTFoYKSChkXAUhJEgCufYDZ8zX321/dLr5k92dPe959zm755zM7cGb7CfOmYgg
iD1vc8AOBJmAIQgtjGELrlyI/yQW/C05tjHsmODQQUF03PEjiK/Ab+UKHz8vge8BPx+fVT6+nvv3
eR0Q+HgLfH0Pevl5h5+9PRsEoXE7Nm1AypqcXyGIxxJewPrQBLS//Y+Y3WTlxpC+eQ75tbs0yrKP
wlFT+U3/lcK0rJZ9WGw5b9mZ+aE5matECrFR/2IWSqMzmBhOIOBgCsOoSG8dZFmvMJgjVQSiXv/u
FMO7CgjEL7D/FHQPE1s3AYpxnsbEGq/dY0LStAfCdwIEki6g0ZSzK2fNs6rixMhkqyAWuxUnnC9r
N0CqDGYp7PWsHSNb0Bx52qqKot1eVkGi3hNFP/6ibdJUqyqGp9hCtn0XYvjZkGQ3SJV+Wg4J0hrp
9EeeUcsDrKoAhuN/Eka6oizyVX9/r6Oss0chq1IM8Vclz+rRGsnPHCtIm0jDGX2F1hyR2iC7UxIr
0LUJ9Te+vyeTTitdy5VKxQN1vULVA3IgZPhnJNFVvyj1vqSuvJSjanZQ8lcmVym1Fdua5aonaTFD
FZsKTFtfDBmWVOlU3R6myv6vnWrk3PulHH3eujiVakhJDng8KzlmGGFrDNmMNEuaus9iiR8yqyab
F1mquwodvIqWnm8UKcy1Ji+tQSWzsIrE5lHyijyJVnFFM/pUTpLrSjm9Q9rCJlJSbugghRJ9oqnw
yfBz4UDbywrhoGErqeK+kKF2l5rcIUS7ceLwLD6EjIairC8vuFsZ7Z3EyO7vDrIyw8H7QgvNhagf
RtHbEeF21tIw6PTNRFQOVMxlGH7ncw8ocTqB2G3/gGWt5i0b+qP4owusiTHwyqDXeZC3OwTy7P0y
KDGdRnPHV/Oges5kYu0NeVBi8NLQry2EvP1Oox2oqYYSMxmMbKTlb0MZ1JoapfJ4RWddqsHoWJo6
zFWVT1ORD6KL8znqi8G1D3lV46cr1i4ZbIsu0TsXJ5W0Tr9ouZ6rIpXRnOVqI784iXs1kkxMb5V1
NyevGV4j3cLW5V1VyF+1Jgf3jAotv3XKRZLaUzpRm5SkF3DIYfXhGFeWxNL0+ugNiXClITvBfCJe
XpSaYlPjkEmmkdriVvG6oufiKLZFNsoRaV/yw81O2Zsy2BL4Y+bTwEUPN8k06MsqIpC7Wb8y/3IX
TRn0qAeC3wHaRMzlVVATqM8DYSyNLxRWBb7A9sX2ULOJXYDhZSfZwVDYEaDtHeQPaYeDMMoSZenf
slQv4m8RifjykWEXi9nUoXuiOt4nPaQrCxGb6y45VZDiswUcUXw3OVSpeswHCbui7cJtHxnav7UE
xue8kakdhMZIi5cx73XnjOBUc13OWEjaWIhmLKRpPKSPwX4j/iHJoD5RIdU0SsT0lN57RhO3RcwZ
TpL4WtSNrpbKp0KjWd8nlT3VnW6UvikGqo1DhckNA3y9c0SqVJ7S1FkVaTo+nGqMknB7tNcLpfPH
eppI4TKRuR3eRqr9caLjq0OfQo0vA8xo/60XYaRzAZspG52gQLY7hrvs17hDvW4AtN0Ti9vgYe6G
ohpm7iIYfAaojv8vtlB1HADmjAJ2JmRhLbAw94w35DNhM06wHyh5cOndMHxg+3frIZ/+wKfbwm3Q
5O+aApaWjEv2kE8XFhNz8ExkQRZOgE6+dvoRaEUYzCaQxNM/5f4jqN52+IujWm1/OykfeX3Dkigp
SeNe3SOdyR1NC67b2a8tF3dzShKyJLq4bt3b5n9Ln5A1fpRSW/qhTNygO/a4qW/siRzTFS6JGsOe
c6akCMK1phXsGkGld8nnBZ7JkfX8cRMetPMWW2VeyB5/eC9a0CVDd70XA1lzB2Nw32poGtUDNlsa
sqCgAJxwvxkIjcEwMAa/qYZKmg3gnWxZDOHcghNLZ/hAyFkomnNrDjSi94KaX+kOhMbgPAxn7bwM
eVsKdoPQDoj/ZrAb/Bh1Dn4gDM8/4wQlziQQXlgWvBuAAu04Oh/aDaYyMbsbIZC3fAKhoFBQKCgU
FAoKBYWCQkGhoFBQKCgUFAoKBYWCQkGhoFBQKCgUFAoKBYWCQkGhoFBQKCgUFAoKBeV/D8VsY6+u
PnL9oTIAAT/exuCAsg17P/kTUEsDBBQAAgAIAFJuSEpxFfup5QMAANcLAAA2ABwAY3NzMy9saW5l
LWJyZWFrL2xpbmUtYnJlYWstbG9vc2UtaW5zZXBhcmFibGVzLWRpZmYucG5nVVQJAAOskptYrJKb
WHV4CwABBPUBAAAEFAAAAOsM8HPn5ZLiYmBg4PX0cAliYGBWYGBgiuAACjDsl727hoGBe56ni2NI
BePbOxdzRQwF2B7wntLeqlC1cK6Jo+OWCWyXXOMudnJM+XrvZ85c98kFl2oqD97cK2kz/7v/Eebd
ufs4BBQcGhgYmVhoz5ivV1D1/9fPfRW/jXd1X3t0QffWm+P33l54U74hOmtz7v2bLzdsfXBum255
/s2376quHU3c33LeQ7GRiYkp6MGEXglxgQk75p4aIJ5HA0Mjv2DFjd1271fPFr/fPp/H5HbQ7rv5
m0/OiW7ItXkx7Y7ehp3+c0wrb/w7WZf3Pstyza/zsut5TiqdPSa8T8Zsi/78PumX1w+vXWp2em6x
993b0+6825fuK7fNNuAf7yWdNRwlTEyXJu5wWMDJ4bF5g9IFIOX+iKlRTUHh7KEuB3UFBdlObpZZ
DQ0m3NpMcxsaSlT0BDKAOmig8cMO/eDFk269Md0MjBPd4vTb03Zvf1NWbpv9bUO1TpRD23vGm/a7
N3jkmtXdP3mo71v/sjzdrZEvbG1/x4SL7dx9+u206hX5h9Xz33Mt96Y02Whx2ezhl/2lv/f+/dW/
7Sf/br2Vu/hv6y5goD+c83fjDiHRDhvjzbNu7r0op246OXpx3uT/x+Vfmq2RvCeRn/OnrdFjc+H2
k3x3dvku2Hv1SUn0wZvL+Uyn67f+LNtRHmb8e9nVObeO/RPdEr2ZTfx71MWf34rMr/+b1r2/7tPb
hc9qstulJ3/qjl77Ys/No8drdusxlNz1cVVkZNQsueEWC0wYpcairSwsSy4kSpfGOjhcOxsiIiQw
wak990opI2OkeXCgh4MDl+y2wOusLCk00JhQ/9b/yVWJxeIP/9x1e/BXZnNdY9nk7Q9ZdvWaf98/
2/dZTL1CyBzuH7xF7x5aM11nnedvXv+WN83eKn7d1t+lbx9d1v2rdFv6f5DP3ZiUbOedHps/ztm9
xjXkQP6EFXN2CQHT+6MZvJKiAgPKq7jDPXnxp1l39LfGvnsWtH3arRz7mO4VDZ87Tq3UVrzAVPS2
12b5joPXs//ekq6bJh2fLX4vDqouMvLgUgfuE09l7wsrbODsaG844OLgoGaRJyggcJ6hsbOhwafg
jpKCwjxGJmFGxpkPdrg6ONgws6gxMRkdLOxuaKhg4/BhYUlpeizGyPiRR2AGB8cJluO6TEyPJBUM
BAUmcPZFs7AcMXZIABohLLOdg6MjHd2C6/98CvL2TP3lrLb1Zi/zjxsRC1ifVP5ZeGHuk7qdb8Fl
xoWDmkr0KnNHGaOMUcYoY5QxIIwfAY32Wa4F7AdZbkWCWuyern4u65wSmgBQSwMEFAACAAgAUm5I
SrZplKOTBQAAOhIAADgAHABjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1pbnNlcGFy
YWJsZXMtZGlmZnMuaHRtbFVUCQADrJKbWKySm1h1eAsAAQT1AQAABBQAAACtWEtv4zYQvvtXcA0U
kpFIzu7eYsVA6gRogBRbdHMpghxoaWwToUWVpOK4hf97h6QelCwn293NwbI5r48z3wypJB9uviwe
/vrjlvz28Pv9fJRs9JabB9AMH5ppDvNUqc9TznKIlhLos/c14kIoiFiuoKCSLjmo2HhIps5ylCi9
N0+CfzHb0jUsRK4pOpDkX7tq/gqhmGYivyR0qQQvNcwa2ZbKNUPJx4vitV0VpTYo3DJBG5YRxfgL
SKdzsJ+DYeeEbdde8IypgtP9JVlykT7X5p59iqZScOXZOFDRUmgttpfkU4PtMGS3LFEt98x3LNMb
xP4Jtm+Y6cxPEc0ylq8vyYWXiUEzTpfAPcsVCqIV3TKOe4x2sHxmOlJ7pWEbGdmsq6nYPyatH4di
uI3UiTj0As8x1XnGUqqFHMqvNvyIUuC8DVnjSbHq2zxSBTWlbuVLITOQkRYFZrmp9JLTtlINPIcu
VsAh1eAnT8OrjjJIhaSOZmWOXg2BaifJtCJqMq2ovxTZ3nSAAU1STpW6GtdbHTtCJ1rOmxiJzuZI
+6y3UtWeZVdjeC0ssMhWaEwyqmmk9wW0ojERecpZ+nw1Vjum082DuDPsDfWGqcl4flvpEbuaTJ33
d+LSVJeUD0R1gvdiXlut/xUxY6vVQDyz/F60G9Q5GQu/yVOpZ3lRauICpRtIn5fidez2n+ME0GAj
b2i+RgUt1msO104QTsbEWoCpoPUzT1wXrYRs7eeV/mUytdKhJJxGke5TZH+n0BWYssAcgd3zwii9
h6fnqSHFD8DymPBDoCo/FWd+AFBDldNw3oBhrS2VjiE4DuGnaez5aJRk7KXu7+5JUXG3kLBir1fj
N0+98fxeUDOg4zhOpujSHH2pZIWej9iKhDucjGIXa1D6zzJH55ORG0z17zgrt8W1esBJFU5mo9EL
lSRtzqwrkom03EKu479LkPuvdsYJGQa90y2obQ10NHMzMKjJEpBLbywG1tas4R454ned2ISN16Cv
tZYMGxHCwMtGMCFnJGg4GBf5Opict45t0o3jBja6uuVgvv66v8vCoDsMa+ODewSORz8ZrXP6HVj9
AdpHaqj2k3Eal9+Bsh26HsZDRYcKCjgwC1HmGtlxgdJVmafmUKxVFmJbcDBTceT2dHY2YOzOTcPs
Ic8J+TxpoEvQpcxn7TmtNmLncmL2/lgX+2nidI5b3a0rTaU2K9hlVqqM5HC8A+e7lLzegS0IbjeH
nTtaapdWEOPN6vYF03jP8E6EBQoD4yU472ekY6Rkih4xiFt0m3SyLqjuKQeuYjUyUxpr84CTEP1V
4iGKmFkZ1KnoZrDx8NRLiAQF+t5QQjXlxDFJQhsXL4CE5XZStNVyDlH0FFsuxXY0mtTEErbiBeHU
F6ygF61FhVdAWAu5v7GuXdyW/xLwPpjCYsN41lF1s+zcU10xqbRVnHgE6mzLrXfc9IFjgU+jPqZb
BdhkIm4mnD1Y/Dncb7/uqRxM4uq0nLXOqgH0ja6qthhyZCfEN7qxA8pz4u8dLRallGjB91+xenVn
GS69Qxhv4Jkp8AZtqmoqvwQt3/zm0e3rkI+yd1mrm9pEPTmxnXK77zbg8BgxEqQTeGqiGBo29lw2
ib3LNcgXyu9uZl4LDDiv8A46tNTtesOKVpcFJHm9HDola3eOr5sXF/3eO/bu5akXYtJ5FbWxUE5l
L1qr376PHYM1r1IrbNZsqHQe7NCfealj3V01mN/m4awxsy+DqP/YXmjOm8vCeXUYP7X6uDd4RX1r
F9tfX1ahH9wfKzWwu8oqdOZn5OOE/FL54JCv9aZqReHl0RhrN8St5mPj6Wl23ClG88l1cLcV7P2y
NWjz7uNqf5zEdiA7nJrg6364cvkwN8SBQ6SP2p0l+F5c3WLxdcy9EU/dv4j+A1BLAwQUAAIACABS
bkhKVmwVgXUBAAB1CAAAOwAcAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWluc2Vw
YXJhYmxlcy1leHBlY3RlZC5odG1sVVQJAAOskptYrJKbWHV4CwABBPUBAAAEFAAAAO2Wy26DMBBF
9/2KEZWqdEEgUcMCXNTs+wdVFwYm4GJsZJu8qv57HRI1kDSVWvW1CBtmxsPhMhdkSGEqHl+APUiB
NNuGbWqY4RjfM4GQKKSlhkYzkcODu8CkZMZ95HbNbdcgBC6lRnAhQbNAFMCExpoqmnDUxNvC9nBt
Vt0c4G4mhXFnNEV47pQBdvWK8VUIU86nBVZRr0OrNIRG8YGjUMtGpai9XeNQz3Pn2jJURc3AabPu
xS+dWNdUQAwZm3+kwNmRnei4R7M1hjAKatNfXLDMFCGMh5ND6RnTNacWy8R2mFymZb+loipnwlUs
L4xl+PXy1ANslMdQH6hPpMpQhaAlZxkkvEEYnWIQr+ML8fYvBElkturat5kVpyK/dVA4ce+GxOro
V9pqHV9dLm/Q9yN7HvvjSUQSFb/FXn1A8Y4wXwAH3wkOfkpx8CnF1iQ7/ffNeKJnM/6NGaU8m/HL
ZvTTjhfr4uzFn30YxNtuH3ZHaf82XgFQSwMEFAACAAgAUm5ISnERo+31BgAAoiwAADoAHABjc3Mz
L2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1pbnNlcGFyYWJsZXMtZXhwZWN0ZWQucG5nVVQJ
AAOskptYrJKbWHV4CwABBPUBAAAEFAAAAO2XaVBTZxSGb2LUYK0iLtUiEOuSWmkLKlvDEh0gIlRc
qtiWRYkQFUhZJCwREi0OKgIu1SJmmeo4XbBJVSLiRYKMGutoUhdkJ5Zoby0Jt2mMN5KQ9INOh+9n
fzidcebmD5nLc06+856X9yMH1q7hvDnp7UkIgrwZsypyPYKMYyAIdTN9AnhSK9ibDX4s3hW1eRd3
exo3Iy8/CwlctjzAPyA4LWjp8qDgVL+t24L9Q5alp/lzl/v5pfr5cXN27soERZS89ZyViEI79xmC
+DJjIld8UkgxdW/lGzqm7Vu35PdK6/36XM1tdovj8vvhFwaaO1r9f8leu6Ci3z/s2IfLGktKS0ps
77DFCIVKo7sz2OKWCXtcmZfLPx95/+/DxyIq9XoFDAVSKBcquyrpY5Q7o+/f3448uORGP5z1kB85
ViNGzFOgpj99zBZnnhHMh2po+wvGcGRPFpW6zVPlOW2shsFuGjeG0zOnuzO6v+vdP1ZDofR7Qefe
ckqMdEaboqEaujsO4dRuGu1W4M4gSAC2uHAiNFbHIgb70jp0GlRDvc56HaVoUZ5h9fI5PEeTQS7v
1Tmq0qf68zG9Z/od7RuJ6OlhRVh4G8upyir3RDPw5+iVMFmGRogR1iEhocD7qgj+xmE/tndF84OJ
ySU/RUgbBt76S3rH+0SP83n0cJHWqAsUfdRqjF+qxNAeb3m/1Nl16UFl70CBre1eQTHmrWu0XBUy
USlfRxzRb0h12u+r9+bbh753lUVYQtuDnDSlhudITiHMhJHA9QYWTtiDUrmCp+W/EpaDXYa38e6N
IYL2p47mZJXFXrxxUD5gG5bqB+q+pj6xTuK4wWqCjT2SSKKgFQHB57Dr90KCBoCl/fbEF1J8AnAC
cnompOk5sLcAJg8S3Q/IPsH9R1hWsLpzISEVUGsKhbJUvH085IAMsL27P38KtZ5Mpx+mRC6BPLMZ
LDBjjRYy4hZgxcmMz1ZAc9SKkU/zcmdBrceB1si9SdAcj8ActccuQq1nA0OO27/pVUjEl6ekKF/0
8H18lLrCfCvBumQoEvRwG4xVvK6caimfJeNpwmpMMy4LlEn4NYU9cUOwqE2LdRYpLR6YssMaig7m
JT8emonKdrSXKGIlaC5hMTbrQyotPFEDZo5na12Tk+CJo/acRRpL0h48l1fICU1ioMnaQThHXVKq
Vod4XlwSsUUtT3jo3V6oV9w+j34A/PqDVN9el+tK1OA4MNTVGQxlQvBqMbn7/+PPI9vuGCpWYQK7
rbDkZl2dWn/eS3fR4I2mFYQ+qBIad3WbQ1mD1zK/bVEJTcVTBb1YbevLOkG4TiuUfh0suqHAOvPl
Fmo7cEoccEpSf89xVM4jhrU7JBF2NEynPM4p3L09BaPVSC3Fsrumxeed0s4rbZa49PgDFn2nNEiY
fG1wcc4gqyEv2RV+qlcdoHXxSrG7m5TBDiajrkLCgX0wn+LyOTx/ngYKj9lgE9yvZkEzZS9gsKvK
5jKh3cSxxYfWfQbFecsRMRLikSuBevsDI0TvgG8NDpX6ZNWtHEjSm0DS2WejIEnnAknJA5EHetUH
suXXPxOwPjJgXi5HD3HyZVJDKQctj7YPCzlB6ZioukYa1G22F5k2NB4EJfjC7NmMak2WqzKT+cxl
UEvMqHN6KRMtb1UQuLSnRuoa3iroy8RwTBWPvQc+oam65Z/bHO2Mt1nCRL5EDqpXi6rxJj2uP4oz
mwqqdbarzU15CaXefSrLzjvaU42jaRMefoJKmwH/r7QIzFN22guaxxfMs3ARE46ZeQz2ohkmOIlj
2GJf/5ADkHhuQLxvtk+EeseCuDzwcwzUOg4ksVsUC05iD3dGbNwaOIlXssVx73bBSXwUJHFqrgfU
ejpovfLeFGiOE2AOj2PHoNY1IImnHxTASQxscaJGApugTIycXFv/JTTHQpDE158seAUSPX7x0mr9
4063yWCwzlEqnKUaQYRu0K66UTCSv6pemX00pEPlPA0xmtqsczKiYySwzbtlSXq9+aSgs3EqaKel
25gMXr0kFjp4ipvv+FumAdGsWqclQT7ESdrt04Dq8YjVj78INz4XEiO3dl/jkggu3lUUkI7dTRwV
1McnlkI9iLxuSr6eZhu9m/N/M70wm4cOJSSI1NzRu7WrnyXnYVe7+LphlmyHJkwGVm+vwjpzqr02
6YTGQpkXURiuU+C4LQ419pSDdjxa6Y8Sh63ignKA6uhIeuuy4GzBYJPnsnRs/D9rTaBNcbndOn5W
MQ/6nsT2+NNFiXkvHZLkExpt1b629dAkYFoSIRESIRESIRESIRESIRESIRESIRESIRESIRESIRES
IRESIRESIRESIRES+c9Ii4jSmuXx/ZnlT6cg4BUTtSZSsXLL3r8BUEsDBBQAAgAIAFNuSEopO6GH
TQkAAFAuAAA7ABwAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbG9vc2UtaXRlcmF0aW9uLW1h
cmtzLWFjdHVhbC5wbmdVVAkAA62Sm1itkptYdXgLAAEE9QEAAAQUAAAA7Vl5VFNXGk/CIkTsIIuC
UoyACCKQooCUJcGyiEMRAQVlSSEsRRYxKIJAErRVqWhADBRkq3ZcTpEIHEAIIVgtIaBQrYoYIWjC
hD0ShLCEMA+kvtczM51zPPNHO/Pyz8v97u/93nfv++73/e59md5e7qvQ69AIBGKVxy4XHwRCAYNA
oAJUlAFLYdLJBOBietQ14CjxywhiTOKxOATWJiw03BobRrSJDLfFYonY7Vhbaytrqx1hdpFYa7tP
BvIiHYGbkIk+7jsRFR16gwiE+VMPF2e/ZOQoDxkvaKlV9B6+t37icSPJcVhB0XjbGte/RlYHpKsp
FgZ8P9vr62OsHWXRxWDYEhRV1DF4KgKJAv7oYN5QFDoSFJcay1Y5AY8cd3sPweC/+JaKssp64Qy5
0QTTqwBpqml640/vtT+LAHmU7qdSwWZGKArdij20YjVIW0ZN/gvoCAbriUfquo1iII5oqYuhfp1W
NcHcu/GxC0hLRb12BN2kNmORSuE6Nacg4/PGN66ADte4jKp2NUkdQos+K4V4jbqnqJUd+uQjA5AW
mAz9P+VkZEjdNwdb0CreyEpQXcMUQrD+wqTO/HGJjnkTucThWbobzoz26PWwiEvsiXpbvWTu5aeU
E0a7+WuSA/DxK9CDdd11rF5W1UZaHJmdTncgB76t6crlxACNun/RYOZzYhhDY6UqsVsw+Zm5Dcpy
XpMDWbKGv3AwZeSwLFdTOK55a55B58hbcHbO+rhHL5Y6Rr7yRFKUjbat9QUn5IaWN34LsUYLnDNP
pBIM+UBIhtScGMzoMs+vj8ymOig7H3Zw01//nXKwMc355/W0HI7bDed8LlH9bQtRWLm6LeIYiozy
WXvzazCkhejYWdXWfhK3p4/GjZyxVJVMG76lEtoMMV/h3LI5G3SQ7EvueBVKFoaGw6LIpjSqelbC
WWopVe/HMW8wahPRJpjEv8fHgJYzwOI5c9v+Ehi2RcDaKKrnFYKWjYBl48hHm8DVcR1YglFjtcbv
LcCzUCQV5meq7z1+YFpGfVDAvAVa9AzK/jfdEQd6sUIYgRaJDzHIFLWTvclZDjY7VzV46p8qs9U3
pJ33PmWRy8EMnOe0Eg0vtQ8p2mhnt/8tXuxraUQrnxZupG3NKI9OcxLmbMq2Pt/pvl//mu7mhJlD
fHLjJx08DzDjXFvzJgp/7QJfAppaAI+JrGI3MDkeAjLw0LT5HtBSDkzOM140lMcbpoFp/kg0jbhP
x0gpR78WSbXuhCykHyuQxVhJ7PkRJHuChaHvtLRcTMrhsr0M2Ya5OS94HbMWubxiJzOebKpht0Uq
t2mqQUpKGd3Xk665WDbXqvZdw8pjRm0VC7I6BUmvDxrXifpJvjoLNXnnPFtER+z3GnPuMIob8rij
TqV0a9Z8SW47uZbRKLkaFJISJ21ixc0SblsQTB/M+g9dDn/mEJ8qIqfLZ0VCgUCgxZiZmdFdd85T
49R4J+O+X9p+Dd/6h8KJi4VZ9SGrn/vhQ+yaWVB9FwDIGdcfDSHKgbnSBMPUtIfKEVc88oCRgwYo
P24zqagq+0oFmOj3iJr7Zydrktr6JVO15J9e9JSkuvaVzLPEbFJeap1qeTfDsW70afBkebPjXCqf
MqUnjVt7J4oinuMRuumd6MV+6UjKGM/4diR76mWt//Gn1aiRUjovqbSUGptI0oa4w8bcvkkNajrU
pyufVaL90nhfV3Ln4Y6uLhGD4uXk5ESet8bhcJu/cTXODJ0T+YdtcTLLvPkyUpLi8XlLEGNRjDH0
+kIg2lFlK1BFDF7lQIbXo6SV3ZP5MVQ/AvVpq4Y+WLDUnwfjkd3Fz5Ew0e8R9ZHmZw/a95NSUgPZ
YaPxnSyDhE55r5Rg187iKT4b6SrhTQ1VnNi/FCq41AtztStfVrOl86OMkbYopcX+1CkHaZxmQDUh
NZ73A3PoAHKqsy2OKU5vj6hTT4tQbTUyo0Wsq9+qYUez4nLDClyMz7k8uxpUJQm4ltNu8KrSo+/V
HnxhXs1KSABx0NPbMJxZ+2LQcz9geH5HAvNASyVgqZR7bQZ1DR3Infte5oFKJwHIpqRy9i/ggD03
lVE9tesiILrGDNA1w+Kj4NN9ga2K709xB6D+mMDuwO7819wR02pZQfrBr2YclSq6xIRgCz4za3aM
FRQvao/0Q/NLEy3X16eJrYeYUlJ9seXlvaZplA5+d6sg9fpePp1jMhgnkhVzaplBk7v6QpH1LITM
PWvOYWHAFlk/IpAP7NvQT2ISbGha0hT5XhtSN2f+0Q9Obf1J7Fh907EJGStWWEmTXvWncwy/q+zk
txNHtIqvv6vhqkANJ41UR5J49nPDE104yw0bNlxPftjZ2TnwZVqkj2C8gLvbTV9yRzYtLXIkl+5e
cNw0nE6qiAYUeuKt8IOQlO0D5J4n4Q9c3+eeMm880lTt6W4Y8gGQpRzNG4bk6KUibBbVIK1sNpxz
78Q53dWG1ug3rfJHEzyvI0+3ofjdFCkrKoTniFs73SFniudl9J7xLMRc1JPaHsFmDK8oyBVSICyX
zkIY6OTTbPJdgZ/lkdOe8ds6pJMzw6X5NBqNQFkMhsEr4wUe519GGZvpprQKJAJ+YqQMjoQ/dSRM
NPVXBSKaJIrCi/lcq5zYNZnl7vXh/eOi7VUzvoJpQrtgWk1ehNenHJo+dqr5Xil1+9boFZC3bKUo
083O0vN0BncyaGBv88235h7vLZjP8Ehu610tyN5GHdjbnO2+COXRgmlgmj8QTYbUPTDk35xKvzt+
Xi72GOfFYrxq0HaGeKXB30a4kUZUrPJiSWdaCx9vX06vfNRldGvEa/4gI2Oh1pLG5rdw5CyHC5PH
P10WHRZIirIwKKUAolVuAlnAlxOVDK42kYY3voOeHw0KkaKDeKTdsbTToKABmJRgov9ElCE1F4T8
00Fz0K8nNNMabzTVDyv85jPGu4NlXZufzVY8lBCu9I+3MYVSMZ0jvnzCdTlL+zfvwZ+ortEFt2I7
kEpGFhoK4KH3gLY3DPlQSDK/6sXkiR5SQYyyaiv4GeDXOywzPlcSkkLpRhja99t7e4U59DPRy12x
Ge1dFNak4PxIlqc7WFbdmkuRNzMfG4DvWQIElCzLcxcEg4chMASGwBAYAkNgCAyBITAEhsAQGAJD
YAgM+f+E9FE0ybfq6nOkcQjg5+Hq5VKx84uT/wBQSwMEFAACAAgAU25ISrbBH+ZQBQAAmAsAADkA
HABjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1pdGVyYXRpb24tbWFya3MtZGlmZi5w
bmdVVAkAA62Sm1itkptYdXgLAAEE9QEAAAQUAAAA7ZZrNJVZGMff/XpNL0pvBsV0ph26oCHUqlyy
GdU5UkQ3UYxLmpoZNTXSQfaplGIdR2Uhk2qRqU51koTJbWYyxxSdGRFFmFwa5ZqOcopmm/oya+nT
rJnVmtW3Z+0P+/+8z//3f/Z70GP5knGahpoURY0T8F08KUoNUhS9liUHVAnv/nmK0vITuDitDAdd
DU5fTV4wVt2jPsW43dap+4iNtqFN3FnoNMctw9vI7dEuL3G1mWuCChV25M1zZFgOIkwB+l8vREdL
IzYr3eOmOA4Nt9QmTCm5/yTOUGFzWdhopmqtXDPfLFiMHAHoqLWxs9DlJM5fnFZpsPyS9LvbTmGs
G2Be446QSlkh1lJnMjmfs7tpukoWEuY7E8KYOlflh5xkt0NOizMAptdXnzuB8dPHqbyJmix/6lXP
IYbJ9FN05nsgpJmd9GgGhEPCjfIYmvaMvbByVEmr1133dqgP9+Y6Ftu3D2pfVvmuVvRMV2WWOBnx
tsu12PK+NRQygTBRXNCizrQ+N6egDifhyxv6aPrrl3oUR67KDOwOB2DBsCYVyzAmVVY7CzGeHK1O
udC0TkeK3QaExCU0ZQTAwR0VPEsI5X6ASsTYxbZdPJGTtMgozEfobXL/iWv/pOg9XBqo7K9K27NI
apjQ3G+5LMpn1aCqSjocvUKQmFcjEAqLar5te7Y/6uXCoH2UaClCFhrutBYA3icnGW3VYMun/S7w
nwqhlu6njAUABSb2GrMYJkgUEFs6DcLkfTNEMRjP8hg7IZ9hWg/3mlziOIn6oal0Msa+OumMPk1f
RlYuzcSVpT8eKXVGSH/mftaXuCMI11nLsuV0GTe66JsPyF/W7LD79hO7gO7hUG9BomXTxBlRL3Mn
uY1N0t2V1qLsSR48f6Wn2F9qqBBHZRXZXws5YewxHcLgas1vCE3i9TkPrQmOGavPZGC8o/OYQzIh
wiDXmUcADqztLHBD6MYZvUcEYN61jYpgguPiCx5LCI51cyMsCM/Wm2NsCcDyi3e3p2J8dIV59QqE
bMMq028SnuPXnRKTBGRvGfAdTTL2XWdjtmtztqpgaJ/UKKFeGumTNCiMSF2VlH7gLCU9k72pTx5Q
wQH6lQYbK0WQ2ErJdQHYNoZlSHCaU4wg7KZECCF6shfDXOdBjmX5OPAQxvlqDA2Axla3CRy3EyMI
IRCb0vQDbY4lASy1WoRQA6BFGDPzs1g21u5vl79pr4ae2+Tm5dV281xFU17cxXMNr4IX6h1I9TSu
CYjem/l8VroFhLftOiNNARD0eduvRyhrZ92gJ00ffpAT/j3Gbj2X+k8TtbKQvh0ApDZ+9nApMf6Q
4kEHTVsX/XQrmQCpe6LstjoTJDxw3JKgbLow7juS8Kfadn6uCHlG6ruT9HfwwoqPYvxWwXfZ3b+K
Erbw1RPZdcePpblTpD/UyrOqw9eX3tgsSpNtVQ7UGF9ag9CAShixHYDPG1F9kzmEEVFFRQUYzwk9
2dWjx0mKihsbfRE6Nu/XgWeabPkGv9BQMonKjza9iCCzk8ny5pExtY+7MlREkl5bW5+mxfL7P7g3
vAGAu48fd1WSnO1S+zJahnGnUjnQTuJSKLpaMqrs8deNz/dsHu/3wqYtLszs1rbWIYPoTdF740Oz
1TYSOzNCusguN2gKGFNBaFusuEf2vHVxmXbKBE4Sn55LlnJQZBxvtjGEBg5bRhb2c307/8UIWQvv
jCzzvk/CSuMxDnp6fmTRt/h0YgMAfvnDe+QR+DmvDtgQfn7LCSMPxNsE173biX5fvC/+r4VIMb13
/KruO7yHugZHRn65BYuWu1x09t/zJ1BLAwQUAAIACABTbkhKLLiXpJUFAABAEgAAOwAcAGNzczMv
bGluZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWl0ZXJhdGlvbi1tYXJrcy1kaWZmcy5odG1sVVQJ
AAOtkptYrZKbWHV4CwABBPUBAAAEFAAAAK1YS2/jNhC++1dwDRSSkUhOdm+2YiB1AjRAii26uRRB
DrRE20QoUSWpOG7h/97hQxIly8l2szlYNmfmm4/zIpXk083X5cNff9yi3x5+v1+Mkq3KmX4QnMFD
UcXIIpXyy5TRgkQrQfCz9zVinEsSUUUEVpQXUY7Fs4w1SDK1xqNEqr1+IviLaY43ZMkLhQFDoH/N
qv4ruaQaYYbwSnJWKTJvZAC6oSC5vChf21VeKU3ELiOwoRmSlL0QYXUO5nPQ7QLRfOM5z6gsGd7P
0Irx9Lk29+xTMBWcSc/GkopWXCmez9DnhtthyG5VgVrhme9oprbA/TPJ3zBTmR8inGW02MzQhReJ
QTOGV4R5lmsQRGucUwZ7jHZk9UxVJPdSkTzSsnlXU9J/dFgvh3zYjdSBOPQcLyDURUZTrLgYiq/C
K0ailDDWuqz5pJD1vIhkiXWqW/mKi4yISPESotxkesVwm6mGnmUXS8JIqogfPEVeVZSRlNtCnaGq
AFRdQDVIMnWFmkxd9a94ttdNoEmjlGEpr8b1Vse2oBMlFo2PRGULKPust+JyT7OrMXktDbHIZGiM
MqxwpPYlaUVjxIuU0fT5aix3VKXbB36nqzdUWyon48Wt00NmNZla9Hf84lRVmA14tYL3fF4brf/l
MaPr9YA/vfyetxvQOekLvolToadFWSlkHaVbkj6v+OvY7r+ACaCI8bzFxQYUFN9sGLm2gnAyRsaC
6AwanEViu2jNRWu/cPqzZGqkQ0E4zSLdp1D9nUQ7MlUJMSJmz0ut9B6fHlJTFB+g5VXCh0g5HFcz
HyDUlMppOm/QMNamlI4p2BqCT93Yi9EoyehL3d/dk8LVbinImr5ejd87+MaLe471jI7jOJkCqj79
UkFLtRjRNQp3MBz5LlZEqj+rAvAnIzub6t9xVuXltXyAYRVO5qPRCxYobY6tK5TxtMpJoeK/KyL2
38yY4yIMegdcUNtq9mBmx2BQ10uAZt5kDIytXoNtMuBvm7FxG2+IulZKUOhFEgZeQIIJOkNBU4Zx
WWyCyXkLbOKugRvaAHXLiP766/4uC4PuPKyND/YR2FL6yWwt6A9w9Wdon6mutp/MU0P+AMt27noc
D64cHBViySx5VSiojguQrqsi1XVcqyx5XjKiB+PI7unsbMDYHp26soeQE/Rl0lAXRFWimLdHtdzy
nY2J3vtjneynidU57na7LhUWSq9Alxmp1JLD8Q4sdiVYvQOTENhuQXb2dKkhjSCGy9XtC4TxnsK1
CBIUBholOO9HpGMkRQqI4MQu2k1aWZdU96AjNmM1M50aY/MAwxDwnHioRPS4DOpQdCPYIDz1AiKI
JOpel4Rs0gmTEoXGL9wBES3MpGizZQFB9BSbWorNdNShiQXJ+QvQqe9YQc9bywpugWTDxf7GQFu/
bf0LAlfClCy3lGUdVTvLzj3VNRVSGcWJV0Cdbdn1DkyfOCT4NOvjcnOEdSTiZsKZs8Wfw/326x7M
wSR2B+a8BXMD6DuhXFsMAZkJ8Z0wZkB5IP7ewWJZCQEWbP8Nsld3lq6ldwrGG3h6CrxRNi6b0k9B
W29+86j2jchn2buv1U2tvZ6c2Fa53XfrcHiMaAmUE/HUeDk0bMy5rAN7V8AN4AWzu5u51wID4I7v
IKAp3S4aZNRdFqDI6+XQKhm7c3jjvLjo994xuhennotJ523U+AI5Fj1vrX77SnZMVr9NraFZs6HU
ebRDf+alturu3GB+uw7njZl5HwT9x/ZCc95cFs7dYfzU6sPeyCvoG7vY/Pq6Dn3n/lipid05q9Ca
n6HLCfrFYTBSbNTWtSL34qiNlR3iRvOxQXqaH3eK1nyyHdxtBXPFbA3auPu82h8nuR3QDqYm8XU/
Xdl46BviwCHSZ23PEng1drdYeCOzL8VT+4+i/wBQSwMEFAACAAgAU25IStg4rnWFAQAA2A0AAD4A
HABjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1pdGVyYXRpb24tbWFya3MtZXhwZWN0
ZWQuaHRtbFVUCQADrZKbWK2Sm1h1eAsAAQT1AQAABBQAAADtV11PgzAUffdX3GBi5gPColsUKtF3
/4HxoaWXUSktaTvnZvzvdrBE9qG+mCxReLm9H5xze3tICildLbMT8A8pkfJu2bpOOInZg1AIzCCt
LMytUDN4DBfIKuHCJ+lzYZuDBKTWFiEEhoU2CMKhoU5oBTU1lSVRB/cJb92y7wPcFVq5sKA5wlsv
DLCJ10IuE7iX8r7EOt2qsCZPYG7kKDBo9dzkaKNN4YV9mQXnHsPU1I2C1uu//N5b24YqyICLl+86
CDbIQbpfY8UKExhPG7edXAjuygSuLia7rXNhG0k9rFDdOKXOq68aXHeWQbPTHdOGo0nAaik4MDlH
GDevhzFI1Js7iT6PnDDNl/3jWc9CUjW7DVAF2RYh8X1sR9pokxGlmcnOTl+vMI7T1l7nnY1v1nYy
5SwlUVtGutLLOJ74ULNDEe1x/DLrJTsG6w0/Ciseg7U4yl6Ln/fqPwKv7sNif6aD2Aex/xOxV3oQ
+yD2fyL2VTmIfRD7HxU7ibr7u7/Stz90H1BLAwQUAAIACABTbkhKJq2Mb0ALAADALgAAPQAcAGNz
czMvbGluZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWl0ZXJhdGlvbi1tYXJrcy1leHBlY3RlZC5w
bmdVVAkAA62Sm1itkptYdXgLAAEE9QEAAAQUAAAA7VhpWJNXFk4CyKIgW6s4LAEEUTYJgiBLYkUQ
QQVUFgWCLDKKLA0tELYErVJbNEALccMwlbpSo2whQoSpWlBG8ohihABBISLKjoSwJJkrVb87P2ae
efr0R6cT/oTv/d57vnPfe849597jftu91NVWqKFQKHXvLR4BKJQCFoXCBKssAsiZlMNJ4Gf1F5uD
v4j6a0xUXPKX8Sh7p8j99vuj9uMcnBztHBz3R9qtdcLFRDtGOjpE74tau07X7sRhMAidHOD1Gep6
q/4gCmWz2dtj46409DA/h8T3rFH0Gy/CWzH2U5yDuli7tPcqYrWXV6WfvBoQ6aGZPHqAxDEosuVN
M9cTFVU0sQQqCo0B/yzHjlEUWpMUFx7eo1LLUmqaKcLBrvUloPU8h7EQR1dzFB5yTNUCe+eygceH
EQQqFfPCjYA8Nq5FK0Uvrz4CfdqPUK8Me2JeSl1yIUUTMqv29TQKeryjqJu/74mGCWKWgB43RNwk
RJyiYnB5nRuhCVpgexSgxyU6foRj/i5fQ2aV7mYgbqJy9mHUmtceVNZCzAIxlv5PitFIq/7Ohl5t
6Uopa5yaHa1r6RMYXpBtM7xwj879rqmC+ypWaLcnc8aVbDWXlx24AM+50YTX3OpYjQfRbAOLMk4H
q3vUvyO/ybGBwyxs6vmB2b3DkDkzLDlIHrKe7ZT0j58R9DCLF16M+hsyu9uvNZjcuEINXTn1yeP2
OKatowq5XJsyiCFnHn8z9q3wc6dxukZ+E71WoyHYMFeHMoj69QXxYd8Y2mDMuHeUmumXBiv1CCzH
o59HdkBQLhUzsfE5GtLCa7EF1mtxHR6CjMA45aPK0NLrW5dS9a2HpBCUCcLDSNcQWtykKiqGVHVj
TgeBxoxL/+RO4d0NrV1rw5mLuekHq6iunt/aMlbRYhiPuA+iqsQT5IlgkZ6k/ANsxBWpidW3JNY4
mn78uuaqG4PrsfSWmOm/V0sHvIXj9d1azO+btK5yBTsNuXyD8a1k/b/NzrshL0ZmDBTnF/W7lEV7
Ip6YYdS2eOc/hWZpAIJ8NL9QT/WjGt8Ddcw27jmCTDIV5M7tTVv3r/w4zM+klPq94gF1xLJgIwE9
o7H6dMHHYYTjVEyAdpkDpLsyWunP6pD4Zkzzm6lbQhxviXZ+E/bViabmKNMnpS39dirpfXYTz1Qc
XuHISw73pOW5On7GLt8esRPNDn0tkj5dfN/U0p3cbOqDjVvBWEqOVo3e1jdZUJR74BfV0B4+i5iY
N5mijWyeV5TmDfKv9LFcEegmCMvgxEvIfnpqDwF9ekN2CxLNy0G9yZtKWQHb0ZWbkZv5I5nBPz1Z
F/r0+th8AYb3hpFKv88wN6VMhJizJoU43FE8d9Zq2en5wXUTq3B6VzjD5Vwcm9MWG3NW4B90X2jR
wRuZs6DzRl63r89px5DqtqDWHx0n+lCwzdGZhiwdOo7tZks/+7OY+WNoNM6dxj+Oc27KGnzyo28C
czIkpM1lxJmtHzv3oIRHIgt7wudsksJmZgWyld1Sl3pKCi7YWJY2678B1yHjiHNuT/T6m7PoHI6k
S2I/wSNStmVwGXjK9bLx6cc0UsH924yiLNzMqOxhtyTLbZLhT6FoFxu5zZ7rChdWFk6HzMhCM8NF
0kO2lK3S7JTByYnp3YZulqAu1zdUZkFN0VpP0AX1DelCbU+Pkq5mooK8Kfxvm8JG4ay0+m4Su55j
Tbz59iCXYzLWLH3EJTq3xLFUrTps3VjDI9fTA3sLJBcY+IyTvPhladGyVwP80aEHsUrFQ/TzGSJX
Jt/8RnTD266aurrXIWgR90F8RomAeiiZ9An0bReVQ2uw9OkVtdN4l3+4T1mLWvtS8ESm2nynJHni
DY8ZlHtmfgrnnakgFjDv7soM1N7Jftg/WXgmjx2u9WwXIdy5MU4VbkeW+RFGtG9D3UhSLWhQnG4q
QAtXCxqNVFUBNM4plIB2PvcMDQnfBfKs7qtRuB+yAf3Q9iEUJNwI0D7s51QI0QAOaKxKgaMgFZRK
m+cuEJILHMjVcYFXsQ54SR8rgZA7wIE7xw3gkAwjoNk+4u0Q8hw48PyuBhRSvcDLLrPMVRCSBBxI
ilT+PWTqJWXJ9mwQksgZe29HDrafz9i8EAINpGJegk5wBTE9gd8dNlXeaDrnhaeI9Jl8m4W4YQk6
irhq7+JmeogcztoWcT97kB2fmtpeiRliFPFFt4z22tQd7bX0IZiHkLsuFbSEmQzU+ZIqaneYfFfn
8TSVHS38nOFpA7w5qxhIUWirKg+DHHUKahSgnXmCQWQZLmr7ES5+w69AkNZP/AitU6kboJ0UZOeV
FzVWCJIMJE+WlCACR6wBm8DVWmsfRMxQIGYo5RIi3amtYNNek9CiDflDkLsjd+d3c0d8s2ZYWJFy
dICmWxuOb6gLdU/Vm3rsxe5qpT+8rOuOH/B3JM10xT3ZYSQkuRAdLwSI588JKguaBrZfyF5D82/j
t8640eKZpPYz747O3Sjpij47LlNijKVHdfFGbhW3DE9VhOx0fTlTfaiflDfXGcYjsTnhjnHfNLnK
LP5C1u/jpASRy1VPZEn9DaMuWbgN35qYasB/miAz6MG76JXnU1yzKilvzegSAY1WTpHNBNiw4gQ9
2SPSkJk3zIaLnIF3RZ7W+7zBNqbPvs9+8jUjSiBMFr+O/UV2bHgupKBp8rxX5svwh33PjQjnxYXU
BoWAPVY/bf6oG9afgPb2veeLaLIViN0WIaf8JooNb5r5Y7cNncUSWhaHD7ODFBcKttCXGbYsuJKY
kS1RDHK1XCjdlQPkbscch7nqAVbJi6uxiu6VsqFYbhc/7rbN2GlJLH5utoTzQg/U9svxGSf+XW1X
+7W2S0Bt7we1PUMF1PbJd7XdbdFZqaG7/ZVENON0eXS/Mc0K/fitKhiTFceHGp4ce5Bs9k9KvJHU
CgCp1db70zYktZaA1FryZSySSKd2gdRalxaHJJvTJpBam7pPI1qYg7w2V+/phDIdNHmtfqnmyMe9
gaTeR1iOfzZ3Fip5pwSq5AtFOaj1beeXCyvO25F0rxLjI/LhumWc58XrLIQGf/X1dM9e+zlutugf
HM7LNxhGB0VUyRR0WJ7XipDlddbw5p+ROqxRRDKGdL+l373g0Ih2iEBYWNSEv1TwEO/QSrGiTdqL
BxQnxJeONaljrjWgDwS3aUBdVrSK2AWr53zqMNLk6IImR9dubyFyH3GMiiksOLIaGeVrXEr11ao0
U4XsWMjNyM38kczgn9bUfzymN4za0CgZedL15LxPie6j067FTNH7diIfe2MPIWHT7CbpucuGRerk
5j79nPKdRlnuFRfXqb+/W6trvIghja+SjCbYSuam7i0yptHFsrSbrlKs85Qy8+Xnr8c03h8BAt/d
e+02WQa1/zfoVEwFvWwOhtaUUsu12fCRhAM2Fs7K7lwI2g12lqJmJShdh8xKqUNmg+4QVK5mgb3m
YQMfc23BOFvvaWMI2k1Ah5iR4PvfDHAKzfC+tRSCrgHp1xQshnr9Zz4EdIdPWxYEBYNtM/B4KHxQ
CgfjwgtHNkHQVTDlrf0Y6KgmAn2eqPALIwgKBLvr7yVVjtG1oHpiEiecFfryzEbMxHJFzvhy8qGv
SHofduWwxkRCvfq/3Ch8uKvOmQ/qgy+rR95v71Xv7rfjKkTIlYKmRSlV8VjkSmQWP2HU5JTfSsHX
WKX8pyVbuH0ONlNtNl19grWeHC3ct+J9p7W3d0JKTJSkm7qYPkYuYy5rjaUSDv5QpYJERiZaaSXe
VEcb4vjJKXKKnCKnyClyipwip8gpcoqcIqfIKXKKnCKn/H9SxEvLUk/mJ+m9OoICf96bt3tc/yzi
8D8BUEsDBBQAAgAIAFNuSEqx2gFo7A4AAOQwAAA1ABwAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJl
YWstbG9vc2UtcG9zdGZpeGVzLWFjdHVhbC5wbmdVVAkAA62Sm1itkptYdXgLAAEE9QEAAAQUAAAA
7VpnVJNZGk5i4qGoQxVBjFHqSFFptgBBgYCCYqMjKlVBUFAC0gJrYxSDAiKgwIjjjFJCUTBSLQNo
0IiFgJSoJIsaIBCFAKHshT3y3d39OXPOzrLwJ/By7837PM+9b7nfl+CwnbxQSkUKhUIttLWx3IVC
zSOgUBhnifnAkhEWfxR8/Hjcyvm4l7+PV0DoiSMow7WG671MjNavX+u73svH5ICXkdF6n7W+xiZe
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
88S3Vl1qdD+WIzfjGiQNZNf3Gn1vO/8mFdh+OrrqoV7JQo4ksGoXme19lIlqGQuQKjHpPZQlGcxg
+1teHNSIvMnC3aedTkVZdEGqWoeC4NtdhG9WkZFMkxdRlm17Eezaj066ombz3KtknHt7UBZ7MND1
DxY5oeatO4INLLF2hJY6LdAPCZ9YQsmjc0LbkOCqtwRlWfN6HiuZXEZEDfq5FydEPQSURR/0g+4n
jzdATPKM8lgWlFc3/BNKODVIapDUIP3/gjSzNVPj2w82LbUnY8Cf0z43O97eI+/+HVBLAwQUAAIA
CABUbkhKOV9OYzQEAAASDQAANgAcAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLW5vcm1hbC1o
YWxmLWthbmEtMi1kaWZmLnBuZ1VUCQADr5KbWK+Sm1h1eAsAAQT1AQAABBQAAADrDPBz5+WS4mJg
YOD19HAJYmBgVmBgYIrgAAow7Je9u4aBgeemp4tjSAXj2zuOeTGWPKwHtk1U/mXV9n6yMVvvwTNK
J5wuzni2/YD/tHA3b66ji+QE8n99/ODcwMDIxMIhoOBAc4YH554lfv8Lf/w8/n5/fe3fv7dV96/4
WOkWNn/7rbd7fnC+94pULrBnZNx5/8ydHwsaGmSOhL2qY2Iq2j9z50dHRkbLjrVX/rKwPKkzLn7c
DBQWiF75m5PjxN+0Z8fYWVmeKGwL+i4sMOH32TO9/FwcJxxzlr5TV1D4PnumtLyIwITmG153/R0c
3pkbm9tpKCiwb5y6a35Dw538tLyaAAcHviTtUuwWG0J8EBD3oH7ft+PTj9fUNa3Jiqz9Z7Z77j+2
my8jpPUVFB7PZ2iY29DwpmRNr7jAhI/+DAf8HBzKrK4d4+Y48UOdIQHoDGvZ7MesLCl/hBk2AN04
t2/rRyYmo3+cDDeAHvA7fquCkVHyPwvDGxaWlOXJuXsaGnrqmRjKmJg2Xd5oFufgcMyekcGakRGX
dXSLP3IZD7yZzl89P/3f0v3yUVMr/tX+nh7md6VCRvPTxlWf/qlO2S9vFfSk5/quk9e/HrdTdXgQ
z8j4kY8jBxgYzcmdDQ0VzCxmwKA4uNHFwWEPI5M0MCAeRCgpKNxjaOxtaMgp0BEUEMhvOODm4GBm
MY2Do8PcIUFZQUFaxpuF5Yi0wgZBgQm8fapMTI94BW5wcJxgOy4ENJ4NxXiIYxtPs8Z9+//ok3ep
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
Y/eoXw8Wsa0lC+0+/fky/jT5bM/h26f63fjyQzba/j/558f6eLar8b9Cqrv8/GGSfb+6X+Xz++ld
s543izfZ6If950gBXeruyyh1t32QjVD9fvedYp7N8jdk1JyA4Y9DPvGhBY/yuHfZMri+nPpQybs8
LORZhwu3Nus6mYfwfR4BefD8fwW/D4Mo/WGCdnkobfN8Hm/lC2xBiQ+s6F09fJAHQ6STshnaz1Mt
1w94wQILMoZitRwkg1bB0lZc9Pqt9RcaX57sNiU72YjKRv+4yv4xnmS3LUAydN/8fjGQjwrZq0cc
y/N9S9qIoyvLlIxl2312v8lgWk8XC2TyzqChyNnbmyJvRu8DCl9m8Ul2uZofGQu6PwQu7Pn5pTs5
aBiXuCi0H0m6PLdP08dF9nBszLH9q4EuazEFssn0NqOcHquK0P6Qbnfs7N351fmJdyNkfwh8bJfW
DIbPwxreKwIqPDd1ribWvc/efbafqqPVwOskuz6g0AdXG9hjn1mECGi8XR7o6y8X16Hn7OTEEkT0
frrpbPRzM8OYuYvwmo/kwHCwbT0E38/1dWUn9rRslHZ58H1AHuzm8vP4fDL+cHWsq3XUb9fX4wv7
rj5dkaCDPOfjD+/rCqbC0R5g9Mz0+/r6elL/Mjnd1Yafqa49HPN8/jB2l9VJ6YSIxtu3sAMdXWza
t2POeF+27fr5rR3eRzLJfR7C/to2Mrmc2PPndj3Q1t5tR47S2zx/y77BSriOFpF28dgKdMb7eUb/
AVBLAwQUAAIACAB3akhK3SHD7UIAAACGAAAAQQAcAGVkaXRpbmcvZXhlY0NvbW1hbmQvY2xpcGJv
YXJkLWFjY2Vzcy13aXRoLXVzZXItZ2VzdHVyZS1zdGRlcnIudHh0VVQJAANyi5tYcoubWHV4CwAB
BPUBAAAEFAAAAMvNLy1O9c0vSw3JV0hLzMxJTVEoAbIy81IUEhVKEovSU0sUyjJTyxUSSxSMjfQM
wEBH19DQ3BTK4colwQi4LlQjAFBLAwQKAAAAAACEbkhKAAAAAAAAAAAAAAAADgAcAGVkaXRpbmcv
aW5wdXQvVVQJAAMIk5tYPpObWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACgbkhKb5DycAFPAABz
UQEALwAcAGVkaXRpbmcvaW5wdXQvb3B0aW9uLXBhZ2UtdXAtZG93bi1jcmFzaC1sb2cudHh0VVQJ
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
rRaXm04C1xu2ksjnseJO1POb2fr5mfz8sgKKn5/Jz/AIyPNT3PT5KW76/BQ3fX6Km8rnZ/LzU1/0
+akvavKOTV6vtg/3N/kJJ+UfPKD1/5U7PmFRvjAr1RjZ2NYlkC9f3m8gc875X3NXj/q8yL//56L/
2xSzOG2+trl+/66BdPd4Ewr5ze8+1KIZb39h8K7Y/jOf6r7J9+qF9x2s4urq8+uPt1f1fkF3i4jm
tiPlzW21Pi8+rtbFt/W9YE6/+W74c+fBJc2e//iS/DCkfIQ8fL4uPm5Kn4/O5F9a92/5lm/ffrqD
2NyMC/Pfe9olH2zXpWzuW9P85rc10+XTLPX9h+rj7s2viM8Bynen3dvfgZiIIeAPL/UfOCgjucbr
wfGNy+5WGM37b+emy8uX9SzbAa+2O3uyod1ZqJcv/+0X3D9qVB/HKLqfUf+5ir9rj3nkUzHgB9tc
8ek3zVEiDa48qv7xJ83s9x/b+RO7auqv2lV7FgdXGD5S+JHCjxR+pPAjhX+tFE6OFH6k8COFHyn8
SOFfK4XTI4UfKfxI4UcKP1L410rh7EjhRwo/UviRwo8U/rVSOD9S+JHCjxR+pPAjhX+tFC6OFH6k
8COFHyn8SOFfK4XLI4UfKfxI4UcKP1L4V0rheFHmR/NU68X/wgRZ/Kzl4rGkfubQ4lRytNrcf/Py
ZLHYFr++XHR92/0HBat9BeW+gvVcgcyNrDd7vnK3r2B12xZko4UqS14U9TdmC6CRxVbP1JUjzdb0
CghZCVk2jRDcr8tcciZN/saWkH6BXkm9rjjLlhA6aX6Vn/u2JWyPJYTvKxBzBbmRze1M8zBHtpdX
o68QTHG+p/qW7qnr5Pzm/aYsrhb+3Y8va1+SJ3G7vdku6ieoNe7VfZOf/JBv1/TfDx9X1bYpJPzk
5MRtrovt58Xrj/WDQ08W7dfqG1LLbA5aDD/MwA/f2PoUYscL+B68LMlSvvhm8W1IhOGkEoqWaMQo
d8hi7RDG2lhspZHMfLc4++nm6uFjdXf209vzH9/Es/84e6z8Mj8SJv+W4+ynCjwLSPDMnu3ujn13
dgDO8tfb8uzx/d3Zm6J8e3Hw8lB9qq5ubvPTSUbdsZ7rjnXujhe7x2NffNh8fJzhpxgs9zRyTJxC
wViPmBIU2eAwcinZKF0KRMY9lk9qHOKB6DXGo2lZXV7OPRF5ZkxYMt5bI2E4BCADGkUOPkDJE8yE
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
ZrWpvC17r6nDeQ5p2XK21bvv/rj8bJc9uU3XYnWfPDVbbYpxq7fXEdZ/FhHW3xJhn0CE/WGXI6xN
/2KdPn2EtanJrcFeR9jwWUTYcFuE7XB02W06GLvz5NFlt+lYbGufo8u2H6u5/PdX32JvaTuP3ls2
4X3vqMG2t7WWf15+9Z03lrbTurFshLsbZNamGLe7e00avccijX+9/TZJo//opNGE9/0jjd420vjT
8u13Txr91qTRCHc3SKNNf2Gf7jVpDJ5DHW8PtsXdF8vfLT+Fv3+//GKXHbpNV2YPn7ykd9q0Gk5n
nwPNsZ5DoDnWtkD7y/Kz5T93OMScNq2ZYz99iLX6iGivvyJynsVnRM6274je/W35j+WnuxxibRoZ
5+k/J3LadC7OXn9Q5DyLL4qcrZ8U/XX5+fK3uxxibcp+53/5rOibiF+58K+vz03xbzf8F1BLAwQK
AAAAAACJbkhKAAAAAAAAAAAAAAAAHgAcAGVkaXRpbmcvbWFjL2RpY3Rpb25hcnktbG9va3VwL1VU
CQADEZObWD6Tm1h1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAiW5ISpKhFf9DAAAARgAAAEMAHABl
ZGl0aW5nL21hYy9kaWN0aW9uYXJ5LWxvb2t1cC9kaWN0aW9uYXJ5LWxvb2t1cC1pbnB1dC1jcmFz
aC1sb2cudHh0VVQJAAMRk5tYEZObWHV4CwABBPUBAAAEFAAAAPPLV0guSizOUMjJT1dIyy/NSwGS
RQrJ+bl6iQUFOal64alJ3pklIMo5P68kNa9EzyW1LDUnvyAXyLYyNjAyMdfjAgBQSwMEFAACAAgA
iW5IShovpWNbCwAAR0QAAA0AHABlcnJvcl9sb2cudHh0VVQJAAMSk5tYToubWHV4CwABBPUBAAAE
FAAAAO1beW/byBX/v59iYDSJDYTH8CaBoEhlbeKu47iWvS4QBAZFjqRJeO3M0EeLfve+ISWLkklZ
ku2NmzUCSBZDvuP3znkz/HJOYvQLGSLdQ9gMsB9gXTUc3TQdZOjY/Yq+cJ4EVyHL4M+CxsjAng2X
33/Usa/7AcKGq+rwDweWZQY64oRdEoYiwgQd0SgUBMU54ejo8ymiWZSUMUFhhg720dWERhOUhiKa
wP+LCZk9m4Up+cuXNsks3XAsY4VkXi2Z55oBOsioCNCAcE7zDPVCYIMoR1kuUJRnIzouGbD4MqGZ
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
BPUBAAAEFAAAAFBLAwQKAAAAAACLakhKAAAAAAAAAAAAAAAADAAcAGZhc3QvY2FudmFzL1VUCQAD
lYubWD6Tm1h1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAbW5ISkaf18eNAAAANAEAACYAHABmYXN0
L2NhbnZhcy9jYW52YXMtbGluZURhc2gtc3RkZXJyLnR4dFVUCQAD3pKbWJWLm1h1eAsAAQT1AQAA
BBQAAADNjjEKwkAURHtPMRdwMQkRWcQmMRbaWViIxY/54MLu/rD5BvX0Jp7CamYewzANt8AGWWHL
zOZr4C7BUN97Nhduj05nqSQqRzU1j+ylD5O/Fqu8KG/Y7lOStLOoDr/WS8+sJxe5puFh4eJI3nXo
pgRKid4WpPBMg0Iigz3PcwjPCbSMKHH54SRm0fztsy9QSwMECgAAAAAAi2pISgAAAAAAAAAAAAAA
AAkAHABmYXN0L2Nzcy9VVAkAA5WLm1g+k5tYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAGxuSErb
CNNCOwAAAD8AAAApABwAZmFzdC9jc3MvY29tcGFyZS1jb250ZW50LXN0eWxlLXN0ZGVyci50eHRV
VAkAA9ySm1iVi5tYdXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoo
lGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0uABQSwMECgAAAAAAmWpISgAAAAAAAAAAAAAAAAwA
HABmYXN0L2V2ZW50cy9VVAkAA7KLm1g+k5tYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAJBqSEpY
Kmd1OQAAAEMAAAAyABwAZmFzdC9ldmVudHMvZGlzcGxheS1ub25lLW9uLWZvY3VzLWNyYXNoLXN0
ZGVyci50eHRVVAkAA6CLm1igi5tYdXgLAAEE9QEAAAQUAAAAy80vLU71zS9LDclXSEvMzElNUSgB
sjLzUhQSFUoSi9JTSxTKMlPLFRJLFAwNDAz0DMBAxxTO5AIAUEsDBBQAAgAIAJlqSEowtW3jOQAA
AEMAAAArABwAZmFzdC9ldmVudHMvbW91c2UtZm9jdXMtaW1hZ2VtYXAtc3RkZXJyLnR4dFVUCQAD
soubWLKLm1h1eAsAAQT1AQAABBQAAADLzS8tTvXNL0sNyVdIS8zMSU1RKAGyMvNSFBIVShKL0lNL
FMoyU8sVEksUzA0M9AzAQEfXEM7mAgBQSwMECgAAAAAAj2pISgAAAAAAAAAAAAAAAAsAHABmYXN0
L2Zvcm1zL1VUCQADnoubWD6Tm1h1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAj2pISk1bmgpqAAAA
bAAAADsAHABmYXN0L2Zvcm1zL2NoZWNrYm94LWFwcGVhcmFuY2UtY2hhbmdlLWJ5LWNoZWNrZWQt
c3RkZXJyLnR4dFVUCQADnoubWJ6Lm1h1eAsAAQT1AQAABBQAAAAzMjA01zUw0jWwUDA0tjIysDI2
0DOyMFJIzs/VSywoyEnVC09N8s4sAVHO+XklqXklei6pZak5+QW5QHa0kZGBibmVoYmRmYWxYayC
X7BTaUlJfp5jXmZuYklmfl6xa15iUk5qiq2fPxcAUEsDBAoAAAAAAJBqSEoAAAAAAAAAAAAAAAAM
ABwAZmFzdC9mcmFtZXMvVVQJAAOfi5tYPpObWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACQakhK
2wjTQjsAAAA/AAAALwAcAGZhc3QvZnJhbWVzL2ZyYW1lLWRpc3BsYXktbm9uZS1mb2N1cy1zdGRl
cnIudHh0VVQJAAOfi5tYn4ubWHV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjP
L8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAAAJZqSEoAAAAAAAAA
AAAAAAAMABwAZmFzdC9pbWFnZXMvVVQJAAOsi5tYPpObWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CACWakhKIY+9ODIAAAAzAAAALAAcAGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS1jcm9wLWJveC1z
dGRlcnIudHh0VVQJAAOsi5tYrIubWHV4CwABBPUBAAAEFAAAAHPLSSxJdUlNzk9JtVJIAdGZeekK
qUVF+UVWCpl5yflFRanJJQopiSWJCskZqcnZelwAUEsDBAoAAAAAAJZqSEoAAAAAAAAAAAAAAAAM
ABwAZmFzdC9sb2FkZXIvVVQJAAOsi5tYPpObWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACQakhK
2wjTQjsAAAA/AAAAUgAcAGZhc3QvbG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5zZXQtY2FuLWJsb2Nr
LWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAkAA6CLm1igi5tYdXgL
AAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz
0hUKivKTU4uLU1P0uABQSwMEFAACAAgAkWpIStsI00I7AAAAPwAAAFMAHABmYXN0L2xvYWRlci9p
bWFnZXMtZW5hYmxlZC11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxh
Y2Utc3RkZXJyLnR4dFVUCQADooubWKKLm1h1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxN
LU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQUAAIACACWakhK
2wjTQjsAAAA/AAAALQAcAGZhc3QvbG9hZGVyL3JlbG9hZC1wb2xpY3ktZGVsZWdhdGUtc3RkZXJy
LnR4dFVUCQADrIubWKyLm1h1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/K
VsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQKAAAAAACcakhKAAAAAAAAAAAA
AAAADQAcAGZhc3QvcmVnaW9ucy9VVAkAA7eLm1g+k5tYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAI
AJxqSEpymHAGg2QAACaKAABUABwAZmFzdC9yZWdpb25zL2lubGluZS1ibG9jay1pbnNpZGUtYW5v
bnltb3VzLW92ZXJmbG93LXdpdGgtY292ZXJlZC1jb250cm9scy1hY3R1YWwucG5nVVQJAAO3i5tY
t4ubWHV4CwABBPUBAAAEFAAAAO38eTzU3/s/jrcvSiqVakJSyFqELEMoQrZs2ZMty5A9Y6skFZE9
g0GMsQ1ZxjbGVAgxthnLGEOyjMGYGIMxZubr+X6/P593r39+f/3++N1+3+fc5jbDNde5zjn3c23n
ca7beWdqrMfLc5Fnz549vPr37z7cs2f/5T179j06cmiXAgl59Wz363rQvUdBLk/dXLwDg0F7XG/e
UL5x48nu69YNhVvuKjdc5d3cFG4633ZVVFRQUb5J7OMt3W20N/Chnvaeyr5LlD177uzRv6tl8Xzv
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
32BpTsYgAAD4KwAAUgAcAGZhc3QvcmVnaW9ucy9pbmxpbmUtYmxvY2staW5zaWRlLWFub255bW91
cy1vdmVyZmxvdy13aXRoLWNvdmVyZWQtY29udHJvbHMtZGlmZi5wbmdVVAkAA7eLm1i3i5tYdXgL
AAEE9QEAAAQUAAAA7br1VxRe9C4MCFJSUkoI0iDdIS3l0AgoKUh3SJeASHdJo0NJDY3EANJI55AD
SOcQQw0Tl/t9/4P3l7vWvZ+f9j5n7b2fs/Y6e6/9rHNidbXVSIjoiLCwsEg01N/oY2E9YsbCwnlP
8LCB1c24Vo2F9apb443iO3/skwJif+r55iEIIaGGOgHFE3Jc7B+6Je/f8OpXWFTr1jd7hSio6P3w
MmiLI6v8x2nxzqTGqAp6WG4kb1rTvFz5nqdVyblKPz4Z0cNT7GpY/cVBD1rcu10rCxKR2iO/YJax
H1o/85woBEOgzuPu4/L2dl6+LQT0uMxY2AQKWDjkX7D+U///qGcf2FIQvC8+A5gaIQ74eImn5x9g
U/6Diaw0tmyB7mbu1S/Pnr/8oiDHGrsrmKdaXOe4tt9sivNKRQ7qunVK1zS75wdRDaEJ5xCaoLO9
oR444JBTnOHlUmSOx8IZUZpBUM+zKz5B/b224/0lF/SCT0yyifuk0IphIEPP1RcoaBDiLVpW9fhd
2ehpBrl61/ZhC7uEZWPwuY9fl/D5jLwhnuKaN8LiSe0kyH3x0iH6NVX+9lahXG2SpwaDQcHhR84n
3lPIACk6YCV/Np8kM08HPEnhgt1Upiv0eqAIfdVhb8F2o/YStceoNxLGZGk/uf7cpKBidPpFc+Xa
Slic72EA5ijVPbbi/F8zITCN1UaNweCnHM83q1p/9GwFx9A9YsX73W5l5R6XV07rZ0YcR8deEkbM
qVb4DpPRcVx7p+Vegsx5dYVcKCzE21/IzsmrSe1bl/lrl3d5RyGJMe5IR8TNkyiJfR/jkIJIQYOG
KnFIjJ55COsbcUShJ1UNmpwwnC1ttnIgWwkmg+GY2RrcAwFGpl7ZxzKIOJqczQadJdSu0/MDBcyQ
QG2v1d6VSic3mTqHia49rcQI0mWyzt2fMpwO819k7Nck/Ez2euQa6L0xM1sq+rO7skJa7ZqYgbMh
+9wJYz7Zmu3DUlqqzDV9A3hix7fowZMJ1FavBXrRQDXkKqiyj7lMEMtVffxDYEDq3KrlTvQH6dbd
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
ABwAZmFzdC94c2wvdHJhbnNmb3JtLXhoci1kb2Mtc3RkZXJyLnR4dFVUCQADwIubWMCLm1h1eAsA
AQT1AQAABBQAAACljrEOwjAMRPd+hX+geGDLDBNsIDq7rSsiOXHlOFL5ewLlD1hOJ9/J7yZNaxTy
qBnYTC3AEoW/EhDxoVITFzyRE56HGw48XqLjlV5a/c7FCy5UHLciaFy02tTq29P6WadDu4LEzHAE
Fk6cHWJa1bxrSdgtBKiZxgZ1BVGaf/D/0P3+nOfPhu4NUEsDBBQAAgAIAKNqSEr9oi5kjwAAAO4A
AAAnABwAZmFzdC94c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0VVQJAAPBi5tYwYub
WHV4CwABBPUBAAAEFAAAAJ2OMQ7CMAxF957CFyge2DLDBBuIzm7rikhOXDmOVG5PoJyA5cv/f9t6
k6Y1CnnUDGymFmCJwl8JiPhQqYkLnsgJz8MNBx4v0fFKL61+5+IFFyqOWxE0LlptauvNeT/S3Me0
qnlfLR5aBhIzwxFYOHF22NuuNWEfIUDNNDYAVxCl+QfyJ0bWUqfn50W7E+neUEsDBBQAAgAIAKNq
SErPj2YOUAAAAKAAAAAkABwAZmFzdC94c2wveHNsdC1jb250ZW50VHlwZS1zdGRlcnIudHh0VVQJ
AAPBi5tYwYubWHV4CwABBPUBAAAEFAAAAK3MsQ3AIAwF0Z4p/gZR2myDwAhLNkaWiTJ+yA5prrtX
TCdLDrYBcje/0FgIEB6EEySkNAK2Yq5IPO4sXLG7CM0cStGt7ssslb+wp4fK8ZEvUEsDBBQAAgAI
AKNqSEqBSnetSwAAAKwAAAA0ABwAZmFzdC94c2wveHNsdC10cmFuc2Zvcm0tdG8tZnJhZ21lbnQt
Y3Jhc2gtc3RkZXJyLnR4dFVUCQADwoubWMKLm1h1eAsAAQT1AQAABBQAAAC1zLENgDAMRNE+U9wK
tGzjwAVZcmxkLOZHomAD6q/3t5inmpSGg5mRK4YaAVMnFtA46YVbUqUbW3LnUNdXxMBh0cW+juJV
bfvl+gBQSwMEFAACAAgAoG5ISmw5Zvb+AgAAkBAAABEAHABmdWxsX3Jlc3VsdHMuanNvblVUCQAD
PJObWD6Tm1h1eAsAAQT1AQAABBQAAADNl1FP2zAQx78K8tMmxWmTtNB24gFBx9BgQ5SNSdMUucmF
eE1sy3aACvHddzZFA1aYBFXoUxLL/t/vzufLeWdvLz0ZT74dnk7eXRMLxhoyuiaZMYl7VlwAnWpg
s4dftJLSAM1AWNCQ0zgsbV25ORqU1JaMyMl4H4UnB1+/kIDAlYLMQo7jxzuTCY6wzDYMV5CDo539
MQ5oKJz51M4VkNFPsr1NfgWE1+wc0pwXRapAO3tkFIf9/k3wNE2bLL0wWspSsqqgMyYYTdrE2QyT
4bM4LcNsLoPhuEvMcilozfTMtImUhINkGZJCCX4FrbJEvbA3WLpZc1WCaJclHMZL4yKNbT0wvTCJ
HsIIqWtWUSMbkbefNFEYbz1/xvtt4vTDrWRpeP7y9Fo+5oP/8LxxfB5vV7xe4VmLmiwMKKbZtGr7
rA+fSOZ1KIL/JPIbZ87tXq1tGVy3stN+63WDRJBzy8W5b6OZButeoJa/+ctpTsc/TonXvoJsV9Y1
E7kT6m32osGgS6OXS++e7Ew+ee2aZU4hhwru+Kcsm10ynVM/CCtwIOeZ6/yYnrvsmTXKm3w8iOVI
Nfb1TjmD99zpDaPNOOmvJlwe0WlI5XtZhSlBET2Xl2Il5CzLwBg+5RW3cye22CCfVJjy8tKgX5Rp
fKOCXbzaaECyEn8BOElTWRQGrVxwBKh8H8i9l5kUF6CNe73ktqQrS+yq4spwQy1c2RV44mR8iQTt
hO59ul7/gsvGUPEqUwt0B29mXCk3KekPhoOAiKZONZxrt31S4IU66QZE2hJ0mmlmSnB3bJ9CGGrd
KG/A6gZul9bcGJ+xuKpic9lg+XEXcyw46AzpfJdVU4Pp7DHLOuOzSecMpp+57Rz6uaf+Dh+QxTbh
L/ZWVTFjnOEoirpbAVHY1VcLXRDuv48MBasMQuTMYrEj3WjUj4+PNqTY+AhT3eD53OgOgo24G22h
gZKZFGNp7Ry1bVbeuYD3BSfnojGMF9EoKjabe4cahEhvw+rvgCYtuJvs1t68//AHUEsDBAoAAAAA
AKxqSEoAAAAAAAAAAAAAAAAFABwAaHR0cC9VVAkAA9OLm1g+k5tYdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAAMdqSEoAAAAAAAAAAAAAAAALABwAaHR0cC90ZXN0cy9VVAkAAwWMm1g+k5tYdXgLAAEE
9QEAAAQUAAAAUEsDBAoAAAAAAMdqSEoAAAAAAAAAAAAAAAAQABwAaHR0cC90ZXN0cy9taXNjL1VU
CQADBYybWD6Tm1h1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAx2pIShU1NZJ6AAAAvAAAACoAHABo
dHRwL3Rlc3RzL21pc2MveHNsdC1iYWQtaW1wb3J0LXN0ZGVyci50eHRVVAkAAwWMm1gFjJtYdXgL
AAEE9QEAAAQUAAAAjY5BDsMgDATveYU/QCDtoRW/IcRVLBmMjJH6/BLlA9VeVjuH2SylEScjqYCq
ohE+xAinWYveb4/XGma2+A4h+EI9e8UuQzN2/+1sbk+Ho9JEzQ2ldW7AVBGegIwFq8FNl0niXSHC
qGmfGhNgScd/uip95PO6lywxLz9QSwMECgAAAAAAtGpISgAAAAAAAAAAAAAAABYAHABodHRwL3Rl
c3RzL25hdmlnYXRpb24vVVQJAAPki5tYPpObWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACtakhK
2wjTQjsAAAA/AAAANwAcAGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9mYWxsYmFjay1hbmNob3ItcmVs
b2FkLXN0ZGVyci50eHRVVAkAA9WLm1jVi5tYdXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSss
TS1NVUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0uABQSwMEFAACAAgAtGpI
SljZAjBqAAAAbAAAAC0AHABodHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1nb2JhY2syLXN0ZGVy
ci50eHRVVAkAA+SLm1jki5tYdXgLAAEE9QEAAAQUAAAAMzIwNNc1MNI1sFAwNLYyMrQyMdAzNDBV
SM7P1UssKMhJ1QtPTfLOLAFRzvl5Jal5JXouqWWpOfkFuUB2tJGhpYGJlaGJoYWJsUGsgl+wU2lJ
SX6eY15mbmJJZn5esWteYlJOaoqtnz8XAFBLAwQKAAAAAADBakhKAAAAAAAAAAAAAAAAFAAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvVVQJAAP5i5tYPpObWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAC6
akhKAAAAAAAAAAAAAAAAKgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L1VUCQAD8IubWD6Tm1h1eAsAAQT1AQAABBQAAABQSwMEFAACAAgArGpISg4K0JhzAAAAdQAA
AFcAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9jb25uZWN0LXNy
Yy1zdGFyLXdlYnNvY2tldC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAA9OLm1jTi5tYdXgLAAEE9QEA
AAQUAAAAMzIwNNc1MNI1sFAwNLYyMrQyMtazsDRUSM7P1UssKMhJ1QtPTfLOLAFRzvl5Jal5JXou
qWWpOfkFuUB2tJGhhaWplaGJoYWRhWWsgrObX2pJeX5RtkJwsI9HYl5KcUZidqpCWmJmTmqKgoau
pYWBuSYXAFBLAwQUAAIACACsakhKl2TigXIAAAB1AAAAVwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L2RlZmF1bHQtc3JjLXN0YXItd2Vic29ja2V0LWFsbG93ZWQt
c3RkZXJyLnR4dFVUCQAD1IubWNSLm1h1eAsAAQT1AQAABBQAAAAVxrEKwjAQANDdr7hRh4TcGekl
a0UExaWDgzhEe8XSNAka9PfV6T0y2ChDyjDg2hN6shrJwj3POpQSRZ/ldhjrnzanKqnqrbwl5jL/
fiFkt/FokYndFdrdSeonPyfouuM+pP71CJPAEMYoPSyVY9OsFl9QSwMECgAAAAAAsWpISgAAAAAA
AAAAAAAAAD0AHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2Vy
QWdlbnRTaGFkb3dET00vVVQJAAPdi5tYPpObWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACxakhK
8u0Uj+EAAABuAQAAbAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxvY2tlZDMt
c3RkZXJyLnR4dFVUCQAD3YubWN2Lm1h1eAsAAQT1AQAABBQAAAC1j0tugzAUReddhTcQ2c8fHh76
O+ksitoxGFNQiR0ZEqm7L11E7/xcnROHdcsTOSpJLQ9HJsvQJrKt5ZvMrd4JfQ2NznWbctspFrp3
PHFYlHwoqbf0KOrFgN8TO/dV6I1+5vF9PW55P67PUnK7zOFnLIm6IS2Zfpw3ay0EgNqtjjsNpu+C
ltIKJqTAiKBi4CgCMKaQBc96iQL5n+H/uVxzqm3aKbeyD04YG7wGCNx2CpWPQjCjHXTW9bp3IPAE
9vpsKVOLBoKNnQNED4DOcS9AGK9tVMY7r6Q5i/RlPHPffgFQSwMEFAACAAgAumpISmOqrGyCAAAA
qAAAAEAAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtYWxs
b3dlZC1zdGRlcnIudHh0VVQJAAPvi5tY74ubWHV4CwABBPUBAAAEFAAAAC2NQQrDMAwE73mFXhA7
vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjLbZ3jyJLuMcZgyJcW7yFL
dVR//vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqdljnSjs2vMUSbguxqTdTx
mr5QSwMEFAACAAgAumpISmOqrGyCAAAAqAAAAFIAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHlsZS1zcmMtMi1zdGRlcnIudHh0
VVQJAAPwi5tY8IubWHV4CwABBPUBAAAEFAAAAC2NQQrDMAwE73mFXhA7vaT4FYW+ILgbYlAsIyml
/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjLbZ3jyJLuMcZgyJcW7yFLdVR//vtDuOQeFCaXZlgw
74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqdljnSjs2vMUSbguxqTdTxmr5QSwMEFAACAAgAwWpI
SmBLZhCRAAAA+wEAAEUAHABodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWRvY3Vt
ZW50LXNlY3VyaXR5T3JpZ2luLXN0ZGVyci50eHRVVAkAA/mLm1j5i5tYdXgLAAEE9QEAAAQUAAAA
7Y4xDoMwDEV3TuELhASWVplh6NKeAQVTIpkksp0Kbl869AYdq7++r/dC3kqkSWNOgMyZPSyREFbV
4q3t+kvrznX+6pyzgqFy1MPuImYY77dxMLuQmXOoGyY1X+DB8RlTu28EFBNCD0j4IUD0IJQVUZvz
6V/Icro95EQHdK2DBSetjAITI0gtJbPi3IR/6I9D31BLAwQUAAIACABGbkhKWwRYDqIFAABNEAAA
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
L2JsaW5rL2Zhc3QvZm9ybXMvYnV0dG9uL1VUCQAD7IubWD6Tm1h1eAsAAQT1AQAABBQAAABQSwME
FAACAAgAuGpISsch79s3AAAAQAAAAEcAHABpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1zL2J1dHRv
bi9idXR0b24tcmVzZXQtZm9jdXMtYnktbW91c2Utc3RkZXJyLnR4dFVUCQAD7IubWOyLm1h1eAsA
AQT1AQAABBQAAADLzS8tTvXNL0sNyVdIS8zMSU1RKAGyMvNSFBIVShKL0lNLFMoyU8sVEksULAwM
9AzAQAfG4AIAUEsDBAoAAAAAALhqSEoAAAAAAAAAAAAAAAAgABwAaW1wb3J0ZWQvYmxpbmsvZmFz
dC9mb3Jtcy9yYW5nZS9VVAkAA+yLm1g+k5tYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALhqSErH
Ie/bNwAAAEAAAAA/ABwAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9yYW5nZS9yYW5nZS1mb2N1
cy1ieS1tb3VzZS1zdGRlcnIudHh0VVQJAAPsi5tY7IubWHV4CwABBPUBAAAEFAAAAMvNLy1O9c0v
Sw3JV0hLzMxJTVEoAbIy81IUEhVKEovSU0sUyjJTyxUSSxQsDAz0DMBAB8bgAgBQSwMECgAAAAAA
uGpISgAAAAAAAAAAAAAAACEAHABpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1zL3N1Ym1pdC9VVAkA
A+yLm1g+k5tYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALhqSErHIe/bNwAAAEAAAABBABwAaW1w
b3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9zdWJtaXQvc3VibWl0LWZvY3VzLWJ5LW1vdXNlLXN0ZGVy
ci50eHRVVAkAA+yLm1jsi5tYdXgLAAEE9QEAAAQUAAAAy80vLU71zS9LDclXSEvMzElNUSgBsjLz
UhQSFUoSi9JTSxTKMlPLFRJLFCwMDPQMwEAHxuACAFBLAwQKAAAAAAAKa0hKAAAAAAAAAAAAAAAA
FwAcAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvVVQJAAODjJtYPpObWHV4CwABBPUBAAAEFAAAAFBL
AwQKAAAAAAAKa0hKAAAAAAAAAAAAAAAAIQAcAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhl
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
agpIBUgVhjRFIkA//bUW8vzmw2Jh3pCtMmFOINT5CHzM29hht/PFLbr6+tvN5/nt3DS5PxYizxR/
2IL4BwE2eq3AzloARrxInbYvrLWb6dVVPzM0gw4izC8tCGPLhNlH14gws8z31kj57iDAx60CVzdy
Fu4p6h0G8aQFxNotuuA34Bl+QqH2/ardZaHa3+qawgzRr4eRo9dtS5De04L0DilIrzWLuPFavlVR
/OEU3dHNgfD2W8k8cBwSEJwHwjh4rWm71wbTJVRninfTw0ActQIRzqBwRrlADemtfyDLn71ay7dB
cobaiknqUE4wbifKdwG/ED1MXqsf9NsgLsLI7KVcod8GQelbf0O0+tX8xGyHYk+RfgAVk4eESXpA
D+n32ywgtFCuePHqoT9oTYq8evh4wOqhP3z91UP/UAT4ggeTfhs8mCE1l4yUHObs32+DGNWFRnb7
Eaw539yo32gliKUQmmt6GODjV8sxbbBf6fLnIDAH3QMo8NXdWg/33FrPv17/H6+cRz+G7EfuUysP
/cOj9x3zq+f/A1BLAwQUAAIACAAKa0hKo2D/elwAAABeAAAARgAcAGltcG9ydGVkL2JsaW5rL3N0
b3JhZ2UvaW5kZXhlZGRiL2Jsb2ItZGVsZXRlLW9iamVjdHN0b3JlLWRiLXN0ZGVyci50eHRVVAkA
A4OMm1iDjJtYdXgLAAEE9QEAAAQUAAAAC0/MLFHIz1PIyy/JTKt0yc9LVSjJzE1NUcgvLdFRKCjK
T04tLlZIzs/VSywoyEnVC09N8s4sAVHO+XklqXklei6pZak5+QW5QLZCQWaKgq2CkZGlkYGyq78b
FwBQSwMECgAAAAAACmtISgAAAAAAAAAAAAAAAA0AHABpbXBvcnRlZC93M2MvVVQJAAOEjJtYPpOb
WHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAKa0hKAAAAAAAAAAAAAAAAKAAcAGltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9VVAkAA4SMm1g+k5tYdXgLAAEE9QEAAAQUAAAA
UEsDBBQAAgAIAAprSEqBPEoCfQAAAIcAAABDABwAaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjktYWN0dWFsLnR4dFVUCQADhIybWISMm1h1eAsA
AQT1AQAABBQAAAAlxr0KwjAUhuG9V/FBFx0sWpzcxLQQlLZYf+a0OZVAkhPkqHj3Ki7v8+adVjg3
x6rv2qbXlwoLjBwKk5Kn4krD3smPHUehKIWiJ3lO4fuYJWdRlqvlep7VW33Y4OQCWfBD8DJOXLxh
4jsii5veiiNBGANhNN6TzbK8aut/PlBLAwQUAAIACAAKa0hKUEymjpwBAAD5BgAAQQAcAGltcG9y
dGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW45LWRpZmYu
dHh0VVQJAAOEjJtYhIybWHV4CwABBPUBAAAEFAAAAMXUT2+bMBgG8Duf4lV3SUTNnyxRl53SFiqh
TWlUuvY4GfzSeDJ+kW2S8O3ntJV22WWqpV14sQQ/HiT7YYxB+kRq7NGmBXc8LZ/r9Bmbb9K9j5tR
KpE+oEJuMVV8otExh9Yxg3ZUzqayH8g4FOnxc5tWWuAJRXHDBiMP3CFrDB2t1C+pFE3HW0dm+kkD
6jXD04CtfzFxJxfFcfwfo/jFyNVrkM0GWH65yCDOL1ew2UTxp11VwI/tQ1nv7rd19VQCg5b6hA+D
wuQt23ncknaoXVLgARUNvb+H2SAFLBZ5tpxH8d119f0rPMoeBfjscOTS+TjQkQFNTnZTQRrBETQI
LVcKRQQR213XNdz65fnZc97ZHI7S7eGAxkrSwM3L+Po1loPd06gEuL3/V3icBiyNIZP8G5MlqyBQ
FkYJlSb5EsRZZ9lVvl4vVsurZeZnEHTLt0GcSndSSzeF2QhBtYuO6CKIpEelgkAdVxaDSNT88mUW
kppZbEmLeVDT7aUJROZ/jqUvrzfrQwcp/yA3+sL329WX698c3+Pl/d379TdQSwMEFAACAAgACmtI
SpDuCCu6AAAANgUAAEUAHABpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3Npbmcv
aWRiZmFjdG9yeV9vcGVuOS1leHBlY3RlZC50eHRVVAkAA4SMm1iEjJtYdXgLAAEE9QEAAAQUAAAA
rdOxDoJAEATQnq/YUEEhOQwEKY2xsCEm+AMIC5w5d8lxSPh7SSxsbAxbTfcyxYx3PZYlnCpjNHXA
A1IQwqxdDy+0o2aCynbTE8nBLoax58k04HrLM9yWAc/Wso3A+0NRUSrhKBFEqEt0kGBypbI4z/dp
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
k5tYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANJqSEoAAAAAAAAAAAAAAAAmABwAaW1wb3J0ZWQv
dzNjL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS9VVAkAAxuMm1g+k5tYdXgLAAEE9QEAAAQUAAAA
UEsDBBQAAgAIAMxqSEqPNBpwRAAAAKAJAABHABwAaW1wb3J0ZWQvdzNjL1dlYkNyeXB0b0FQSS9n
ZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX1JTQS1PQUVQLXN0ZGVyci50eHRVVAkAAxCMm1gQjJtY
dXgLAAEE9QEAAAQUAAAAc84vzUlRyMsvUUhPzUstSixJVUhUyE6tVChIzCzSUSguSSwpLVbQNTE2
MOFyHlU7qnZU7ajaUbWjakfVjqodVUtztQBQSwMEFAACAAgA0mpISlQCybI2AAAAwAIAAFAAHABp
bXBvcnRlZC93M2MvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfUlNBU1NB
LVBLQ1MxLXYxXzUtc3RkZXJyLnR4dFVUCQADG4ybWBuMm1h1eAsAAQT1AQAABBQAAABzzi/NSVHI
yy9RSE/NSy1KLElVSFTITq1UKEjMLNJRKC5JLCktVtA1MTYw4XIeVTuqdpCpBQBQSwMECgAAAAAA
0WpISgAAAAAAAAAAAAAAACAAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1VUCQAD
GoybWD6Tm1h1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAzGpISgAAAAAAAAAAAAAAACYAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL1VUCQADEIybWD6Tm1h1eAsAAQT1AQAA
BBQAAABQSwMECgAAAAAA22pISgAAAAAAAAAAAAAAACoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9VVAkAAy6Mm1g+k5tYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAA
ANxqSEoAAAAAAAAAAAAAAAAwABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvYmFzaWMvVVQJAAMvjJtYPpObWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADcakhK65tf
ZJEAAACeAAAARwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL21vZGUtbm8tY29ycy1zdGRlcnIudHh0VVQJAAMvjJtYL4ybWHV4CwABBPUBAAAEFAAAAB3H
wQqCMBgA4HtP8R8Lcm0za/OqRZBINKNDdFj6F8O5yRz1+kXf7eOUbRPKEyqApTnneZYRKjm0fiB6
HC2SKz6OJpIa48eH3rgXKfGN1o8DunjjTG5EztZMykzcoVaXc6Vwmox3q38K7xy28Xc4NM0JrNcd
PLWx2MG8L/YqBtTDLgQfSj9o45SqlpBIwdLF7AtQSwMEFAACAAgA22pISjc/Y0mRAAAAngAAAE4A
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLW5v
LWNvcnMtd29ya2VyLXN0ZGVyci50eHRVVAkAAy6Mm1gujJtYdXgLAAEE9QEAAAQUAAAAHcfBCoIw
GADge0+xY0GubWptXrUIEolWdIgOS/9iOPfLHPX6Rd/tE4xvEiYSJglPCyGKPKNKMtLiQM04OqBX
eBxspA3ED4be+het4A0OxwF8vAmu1rLgGVcql3fS6Mup1jBNFv3qnxK9hzb+Tvbn85E4NB15Guug
I/O+3OkYwAzbEDBUOBjrta6XJFGSp4vZF1BLAwQKAAAAAAANa0hKAAAAAAAAAAAAAAAALwAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvVVQJAAOKjJtYPpOb
WHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADMakhKxsu5Kq4AAAC0AwAARAAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1iYXNpYy1zdGRlcnIudHh0
VVQJAAMQjJtYEIybWHV4CwABBPUBAAAEFAAAAM3RsQ6CMBSF4d2n6KiJVHqLFFhBYyIhxmocjEOF
q2mEltRGX1/j7AN0/Lcv50DMRBRDFGeE8QKggIQuISGtHagaxx7pCa9b7WmD/m3dQ5s7rfCFvR0H
NP4MkC/zgiUJzzi/kEYe97XE51Nbs/hFaY3B1n+bbA6HHemt6shN6R47Mn2Ua+kdqmHlnHWVHZQ2
UtZzEuUZ47MJ/NOlQetyEbAuFXHAOsFCflakoWz3AVBLAwQUAAIACADMakhKYelCWasAAAC0AwAA
SwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1i
YXNpYy13b3JrZXItc3RkZXJyLnR4dFVUCQADEIybWBCMm1h1eAsAAQT1AQAABBQAAADNzrsKwjAU
ANDdr8ioYGNyb7VpVx8IiohRHMQh1qsE26TEoL+vOPsBGc92QMgiE5AJxSRWABXkXCKy2rfcdF1D
/EiXlY18Q/Htw8O6O5/RixrfteTiCaAcl5XMc1SIZ7bRh91a0/NpvRv9MPXOUR2/Zsv9fssab67s
ZmxDV9Z/TBc6BjLtPAQfZr411mm9HrKsVBIHPfi3K0TCOxBFyjuVJ7xDnKS8U+NEdh9QSwMEFAAC
AAgACmtISnwW9fh+AAAAhwAAAE8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9jb3JzL2NvcnMtZmlsdGVyaW5nLXdvcmtlci1hY3R1YWwudHh0VVQJAAODjJtYg4yb
WHV4CwABBPUBAAAEFAAAACXGvQrCMBSG4b1X8UEXHQzSQdBNTApFaYv1Z07bUwkkOUGOinev4vI+
b95WGuf6aLq2qbvqYrDAwEHZlDypK/V7Jz92HIWiKE1P8pzC9zFLbkRRrFfLeVZuq8MGJxdoBD8E
L+vExRsmviOyuOmtORKE0RMG6z2NWZabpvznA1BLAwQUAAIACAAKa0hKGhBHKJABAAACBQAATQAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1maWx0
ZXJpbmctd29ya2VyLWRpZmYudHh0VVQJAAODjJtYg4ybWHV4CwABBPUBAAAEFAAAAM2TUW/aMBDH
3/MpTtpLp2DcZlql7QkGqYTGCiJdeT6SS7DqxJZ9KfDtZ6B7WNWFbE99sa3od/Hv/icLIUA+Gt3W
5OUUGWW6zuSaNt8Vv2zfWqULuSJN6ElqPJiWBZNn4ci3mr1UtTWOqZC7T7nc0UZYjVwaV58wL0vi
fCvRKpkb50+LKJVmcqqpxM64J3KC9pby8JMh7zmK4/idaGHOLeqT1GgE4maQXEN8M/gMo1EUf1jO
pvDzfpVmy8V9NntMQUBu6iFaq2l49jxuE9MwNTyc0jNpY+twhiurCkiSL7fXH6P4bjybf4UHVVMB
oQ/YoeIgAcEWGsOqPExNQ8AGNgQ5ak1FBJFYjrMMJotVBmdvMA1MMN+SON7ojIYtYRG+/wU9a4k5
NlWLFfWjHw72ApnurQpD6IbmGEb1wxSqVKHpTnTpsKqxmxlf0s/IPYdTJ7NG1xxj75caNRVvL13K
YRTmSVFfLunb5uA3qDyEt2N8SLFH5/3L/gyjf92b+fyL7avI/qc06awNDzdd3L2svwBQSwMEFAAC
AAgACmtISnzKS4WqAAAAJwMAAFEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9jb3JzL2NvcnMtZmlsdGVyaW5nLXdvcmtlci1leHBlY3RlZC50eHRVVAkAA4OMm1iD
jJtYdXgLAAEE9QEAAAQUAAAAndFBDsIgEAXQfU/BAWTTGzSNuxobMel6YqcwsQ4NoKm3l40LTQPo
jpD3w8yn6hulRHs8KTHRHNAJy6KFi0HZWg7OzsIgjPG+2pTRIAfZAes7aCzC5+eShvt1IYc+aTrw
QR7sSBPhmJS9A32DJGkykyt0j3hKkQEcE+uytpB1MJkXQ/wAeyUsZHXhgru3Iy9wXayP7eV3Lk59
1lAc22zmh1G/yvojWaei1QtQSwMEFAACAAgACmtISrH7yW/ACAAAXigAAFUAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtZmlsdGVyaW5nLXdvcmtl
ci1wcmV0dHktZGlmZi5odG1sVVQJAAOEjJtYhIybWHV4CwABBPUBAAAEFAAAAMVaa2/byBX97l9B
2GjdLkxST8eSHReJH2jQbGJE6eZjMSSH4sRDDpczsuS0/e+986JIipQdoNRusJHEeZ1zH+fe4e5V
IlJ6fXSVYBTBR4oFcsIEFRyLt6crEbsXp/CYi2eKr4/mlGSPZ878iXAicOT8+8iBfwTeCDfCISuQ
ICybOxnL8KUaClgR4cINmBAsnTvDfONE8B1Hl0f/PdLbmU1CRlkxd04G45ka8+4Jxbckjs14gMLH
ZcFWWeTaqfGF/FM9SJ/AGSWRcxJFkR6LWSbcGKWEPs+dlGWM5yg0AFNULAlAHuLUGehHOQNyikeB
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
xX7eE/aP8uLyK4tITEBA+2TwpicGDwVapqhX6Bc9QX/Xc8bOesK9wIX8Lyd9Qh8OesL+DRWZ7A96
BT/sW+9xthRJvxxGvQWPgJrLHkm/sT8c945/1C+BSe+qc2YJEO7gDVy4oQT0w2V6CCU6HJ3zg4jT
4fi8OaReHY7WxaEk7HCUZgdTtYNxGv0/Sv2L99s/+v3MZM/7mbvP93/gy5XpzyH7mTcHjQ/1YvDK
1/9b4f8AUEsDBBQAAgAIAAprSEqwRLCOXAAAAF4AAABPABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLWZpbHRlcmluZy13b3JrZXItc3RkZXJyLnR4
dFVUCQADg4ybWIOMm1h1eAsAAQT1AQAABBQAAAALT8wsUcjPU8jLL8lMq3TJz0tVKMnMTU1RyC8t
0VEoKMpPTi0uVkjOz9VLLCjISdULT03yziwBUc75eSWpeSV6LqllqTn5BblAtkJBZoqCrYKRkaWZ
gbKrvxsXAFBLAwQUAAIACAALa0hKlXyK55sAAAA8AQAASwAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1uby1wcmVmbGlnaHQtc3RkZXJyLnR4dFVU
CQADhoybWIaMm1h1eAsAAQT1AQAABBQAAADNzrsKwjAUANDdr8ioYGMeta+1VQRLEVNxEIfYXiU0
j5IG/X3F2Q9wPNthhKYRYRHJEOUFiwvGMKU56pzBchw14DPc9irgBsLL+UHZB67gCdqNBmy4MJ7w
pKBxStZ5ckWNOB1rAdOknF19UTproQsfo13bHpB2skd3qTT0aD6UWxE8SLPx3vnKGamsEPUSRXlG
+WLGfu0S/ie7N1BLAwQUAAIACAALa0hKIEAsF5sAAAA8AQAAUgAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1uby1wcmVmbGlnaHQtd29ya2VyLXN0
ZGVyci50eHRVVAkAA4aMm1iGjJtYdXgLAAEE9QEAAAQUAAAAzc67CsIwFADQ3a/IqGBjHn2vrSJY
ihjFQRxie5XQPEoa9PcVZz/A8WyHEZpFhEUkR5SXLC4ZxXmcoM4ZLMdRAz7DbacCbiG8nB+UfeAa
nqDdaMCGC+MpT0saZyQp0itqxenQCJgm5ezqi8pZC134GG2Pxz3STvboLpWGHs2HaiOCB2nW3jtf
OyOVFaJZoqjIKV/M2I9dQdif7N5QSwMEFAACAAgAC2tIShEe3IxGAgAASQwAAEUAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2luLXN0ZGVy
ci50eHRVVAkAA4aMm1iGjJtYdXgLAAEE9QEAAAQUAAAA7ZZfa9swFMXf9yn0srLBZOufLSkQRkjT
dqxrytyyhzGKLF0lpo5lHG1dv/2UlBU6BusoZSkd1ossc8/xj2PfO52fVPPjGfowq6rJ4WyE5kOz
aDq0jLEf5XkbrGmXYR1HShGCmjXqQkSmbcMVOFRfo4m1sF7jaejiEFo82ZzgmxrZi+mvxQ8g2iWa
nL5D1nSbSm0w7qcWZTIj6aJbrdxvns1N3+QDrMPXIenk/QC+bRbLmPXXb2O4hG6sWUm4FAWWtayx
0ECxsgXHWhBwwA23hdlbme8XZgFjshe21sYbyZd88pIdpHUrnO5spPe273exgrgMbj0+nJ1lj4vl
3zG/o0Xvy5zQgqracAy0LLFgXGKlPMNlocExw4Qt5B+Y3wrfMKfPiPmdnN+bubNE1cor7LwWWBjC
sKK0SPQll06m3DP6dzl/dOaMUImTT6IQ5SMmRoxlsqTIhlVm+r6F7BPU75uYnUC8CsNl0y2yffgG
behX0MXPjJe8HFEhSaHLL+ikOv94XCW5JnT5dpNkO7Ax7dHR2dnpDWVvmjaZe3U5PajiAGY1G4Yw
7IeVabqqOn6DsFaUv/6tO0X0Lrsr2C67U2pH3E2fek9zhnJfOo2BaYMFOIK1NyVWnmuQhSeCsIf1
tNN59Ux+sPeGXkjFSiUtFjTxTtATb5Z6nPKyBi2J4/qBg8TRbLKfPTkuBLwwxpeYeuBYuPTla5XC
WHMDhBmjbV0/MIzn/7N4l7moiSOWGpyyp9JQW3JcW1tjq0hKaOGEs27HhtofUEsDBBQAAgAIAAtr
SErDxc5YowAAAHgCAABMABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvY29ycy9jb3JzLW9yaWdpbi13b3JrZXItc3RkZXJyLnR4dFVUCQADhoybWIaMm1h1eAsAAQT1
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
YnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9VVAkAAxqMm1g+k5tYdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAANFqSEoAAAAAAAAAAAAAAABRABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwvVVQJAAMa
jJtYPpObWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADRakhKAAAAAAAAAAAAAAAAcgAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2Vi
L2hpc3RvcnktdHJhdmVyc2FsL3BlcnNpc3RlZC11c2VyLXN0YXRlLXJlc3RvcmF0aW9uL1VUCQAD
GoybWD6Tm1h1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA0WpISjr4CYZvAAAAngAAAJkAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdl
Yi9oaXN0b3J5LXRyYXZlcnNhbC9wZXJzaXN0ZWQtdXNlci1zdGF0ZS1yZXN0b3JhdGlvbi9yZXN1
bWUtdGltZXItb24taGlzdG9yeS1iYWNrLWFjdHVhbC50eHRVVAkAAxqMm1gajJtYdXgLAAEE9QEA
AAQUAAAAdYuxCsJAEAX7+4pXauMH2KURBAshHyDr5SU5vOSO3VXM3yfYBssZZsK9aVuMybzocnpK
fB2OGGXuMg1eKjI/zKgyEJ4mKmJRZfS8IFya6+3fO9OcHVKvMu1XMaP6o5dsPIPfuumt/jGG4nB9
M4QVUEsDBBQAAgAIANFqSEo8dhd/EwEAAK4CAACXABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwv
cGVyc2lzdGVkLXVzZXItc3RhdGUtcmVzdG9yYXRpb24vcmVzdW1lLXRpbWVyLW9uLWhpc3Rvcnkt
YmFjay1kaWZmLnR4dFVUCQADGoybWBqMm1h1eAsAAQT1AQAABBQAAADdkT1PxDAMhvf+Co+g4rMQ
TEwFARKCAXESNyK39V0j3KZKnPv496TlbkMMjCxxnDyvnddBRKB3r6mXSPdsTA+rJa2kfnZ2DHfJ
aUtvosJRSPngk6FJNAwSk1ok148+mLS0u2poJzWOyrb2oZ+xSJ31SnXwuyghfm/csEHrBDNNnYvm
wwEt8DYDrDTmkA+lxZQlGI1Npm4ZY3N+oKlzL2iuz9d+wFOJmptPlP0oTRYvbG9FWZb/ziA3llhn
e1UFeHlxDeW0VFUBBbzeLpdw5BcTf3YOHQ+tSgTzI6hsRWHkjcBcHhofQh6YHqDA38SDTC8Gtw7c
/6AtH2+fXv6m5ZinYB9r1ig3cPo/mHPYeAMLSbK3L1BLAwQUAAIACADRakhKIFKPfFAAAAB5AAAA
mwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93c2lu
Zy10aGUtd2ViL2hpc3RvcnktdHJhdmVyc2FsL3BlcnNpc3RlZC11c2VyLXN0YXRlLXJlc3RvcmF0
aW9uL3Jlc3VtZS10aW1lci1vbi1oaXN0b3J5LWJhY2stZXhwZWN0ZWQudHh0VVQJAAMajJtYGoyb
WHV4CwABBPUBAAAEFAAAAOMKcAwOVsjILC7JL6rUS0pMztbQVMhIzEvJSS1WKMkvUMhJLUvNUShI
TE9VKMnMTS1SSM4vKkpNLsmpVODCpzcvtbgkNUUhM60oMReLVi4AUEsDBBQAAgAIANFqSEo0HNWm
DQgAAKwaAACfABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L2Jyb3dzaW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwvcGVyc2lzdGVkLXVzZXItc3RhdGUt
cmVzdG9yYXRpb24vcmVzdW1lLXRpbWVyLW9uLWhpc3RvcnktYmFjay1wcmV0dHktZGlmZi5odG1s
VVQJAAMajJtYGoybWHV4CwABBPUBAAAEFAAAAL1ZaXPjNBj+3l/haQcKTG0nTVqapBtmt8fAcMwO
ZeAjI9tyrK1sGUlukgX+O68ux3bsNBzDdra2db7n87xSbzOZ0+XJbYZRAo8cS+TFGeICyzfnlUz9
m3NoFnJL8fJkTknxfOHNX4ggEife7yce/JN4I/0Ex4wjSVgx9wpW4IXuihhPMPcjJiXL59643HgJ
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
/OnSHNCKo/6OkO3lFz1b1YDhnMVZby2GpCCQnohV35BCj911tQZNUniFpRRWQZCl2BPR4Hq84ksN
LDex+5bL0iPWED0G2LZfrHbScIg+z25iL4WUon5+Wz0uUUWEeONqfqLwikBS5QTBEAWaYzbdisYy
yGW//t//B1BLAwQKAAAAAAAxa0hKAAAAAAAAAAAAAAAABAAcAHN2Zy9VVAkAA82Mm1g+k5tYdXgL
AAEE9QEAAAQUAAAAUEsDBAoAAAAAADFrSEoAAAAAAAAAAAAAAAANABwAc3ZnL2FzLWltYWdlL1VU
CQADzYybWD6Tm1h1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAMWtIStsI00I7AAAAPwAAAD8AHABz
dmcvYXMtaW1hZ2Uvc3ZnLWltYWdlLXdpdGgtZGF0YS11cmktaW1hZ2VzLWRpc2FibGVkLXN0ZGVy
ci50eHRVVAkAA82Mm1jNjJtYdXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8v
ylbIBEoolGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0uABQSwMECgAAAAAAO2tISgAAAAAAAAAA
AAAAAAsAHAB3ZWJhcmNoaXZlL1VUCQAD4oybWD6Tm1h1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
O2tIStsI00I7AAAAPwAAADoAHAB3ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtc3VicmVzb3VyY2Ut
YmVmb3JlbG9hZC1zdGRlcnIudHh0VVQJAAPijJtY4oybWHV4CwABBPUBAAAEFAAAAHMsKUnNLShR
KMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBBQA
AgAIAFFuSEpOQ4EnHgIAAPgOAAAZABwAd3B0d2tfcHJvY2Vzc19sb2cub3V0LnR4dFVUCQADqpKb
WFGLm1h1eAsAAQT1AQAABBQAAADNl9tu2kAQhu95ir2oFGiLscE0YPWgpElRpaStSqNe1A1a7KG4
mF1rdl3it+/aBJGoIWXXNsoFkoX8zeGfgzxn56dXI28F03YSUznjuGxLEFJ4Ix6xX0RykgogCUdJ
+q5ju40zPaC/G2Bcnswk4JtLisSxSdfxnKHn9EjXdo7J6PJbo/Hx04fPD6FXIvcFN5GQ+cOcC0kC
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
ABUAGAAAAAAAAQAAAKSBUvMAAF93cHRfY2VydHMvc2VyaWFsLm9sZFVUBQADUYubWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIADFrSEpsmjVGBJsBAOHYDwAOABgAAAAAAAEAAACkgajzAABhY2Nl
c3NfbG9nLnR4dFVUBQADzoybWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHluSEoAAAAAAAAA
AAAAAAAOABgAAAAAAAAAEADtQfSOAgBhY2Nlc3NpYmlsaXR5L1VUBQAD9pKbWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAKBuSEr9BL7nxEkAAP04AQApABgAAAAAAAEAAACkgTyPAgBhY2Nlc3Np
YmlsaXR5L2VsbGlwc2lzLXRleHQtY3Jhc2gtbG9nLnR4dFVUBQADO5ObWHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAHluSEoAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQWPZAgBhY2Nlc3NpYmls
aXR5L21hYy9VVAUAA/aSm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACgbkhKCZEfT+VKAAC/
CgEAOAAYAAAAAAABAAAApIGv2QIAYWNjZXNzaWJpbGl0eS9tYWMvY2FyZXQtYnJvd3NpbmctYXJy
b3ctbmF2LWNyYXNoLWxvZy50eHRVVAUAAzuTm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB5
bkhKAWdbesoAAAAGAQAAVAAYAAAAAAABAAAApIEGJQMAYWNjZXNzaWJpbGl0eS9tYWMvY2hhcmFj
dGVyLW9mZnNldC12aXNpYmxlLXBvc2l0aW9uLWNvbnZlcnNpb24td2l0aC1lbW9qaS1hY3R1YWwu
dHh0VVQFAAP2kptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAeW5ISn3SRblKAQAAaQIAAFIA
GAAAAAAAAQAAAKSBXiYDAGFjY2Vzc2liaWxpdHkvbWFjL2NoYXJhY3Rlci1vZmZzZXQtdmlzaWJs
ZS1wb3NpdGlvbi1jb252ZXJzaW9uLXdpdGgtZW1vamktZGlmZi50eHRVVAUAA/aSm1h1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAB5bkhK1w3s/70AAAAAAQAAVgAYAAAAAAABAAAApIE0KAMAYWNj
ZXNzaWJpbGl0eS9tYWMvY2hhcmFjdGVyLW9mZnNldC12aXNpYmxlLXBvc2l0aW9uLWNvbnZlcnNp
b24td2l0aC1lbW9qaS1leHBlY3RlZC50eHRVVAUAA/aSm1h1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAB5bkhKKymENoUIAAAkHwAAWgAYAAAAAAABAAAApIGBKQMAYWNjZXNzaWJpbGl0eS9tYWMv
Y2hhcmFjdGVyLW9mZnNldC12aXNpYmxlLXBvc2l0aW9uLWNvbnZlcnNpb24td2l0aC1lbW9qaS1w
cmV0dHktZGlmZi5odG1sVVQFAAP2kptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAASW5ISgAA
AAAAAAAAAAAAABoAGAAAAAAAAAAQAO1BmjIDAGFjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvVVQF
AAOZkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgASW5ISmIVWBIVAgAADQkAAD4AGAAAAAAA
AQAAAKSB7jIDAGFjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvdGV4dC1tYXJrZXItcHJldmlvdXMt
bmV4dC1hY3R1YWwudHh0VVQFAAOZkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgASW5ISh3J
uqlwAQAAHQUAADwAGAAAAAAAAQAAAKSBezUDAGFjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvdGV4
dC1tYXJrZXItcHJldmlvdXMtbmV4dC1kaWZmLnR4dFVUBQADmZKbWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAEluSEo44w3f7gEAANkIAABAABgAAAAAAAEAAACkgWE3AwBhY2Nlc3NpYmlsaXR5
L3RleHQtbWFya2VyL3RleHQtbWFya2VyLXByZXZpb3VzLW5leHQtZXhwZWN0ZWQudHh0VVQFAAOZ
kptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgASW5ISsiHO/n3CAAA9SYAAEQAGAAAAAAAAQAA
AKSByTkDAGFjY2Vzc2liaWxpdHkvdGV4dC1tYXJrZXIvdGV4dC1tYXJrZXItcHJldmlvdXMtbmV4
dC1wcmV0dHktZGlmZi5odG1sVVQFAAOZkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8mpI
StH4NkhgQQAAFC4BADgAGAAAAAAAAQAAAKSBPkMDAGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC5EZXZlbG9wbWVudC0yMjEwNC1zYW1wbGUudHh0VVQFAANXjJtYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA8mpISp/x02V6OQAATdQAADgAGAAAAAAAAQAAAKSBEIUDAGNvbS5hcHBsZS5XZWJL
aXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC0yMjkyMC1zYW1wbGUudHh0VVQFAANXjJtYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA8mpISqgzeQBUPwAABuIAADgAGAAAAAAAAQAAAKSB/L4DAGNv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC0yMjk2MC1zYW1wbGUudHh0VVQF
AANXjJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAbGpISgAAAAAAAAAAAAAAAAcAGAAAAAAA
AAAQAO1Bwv4DAGNyeXB0by9VVAUAA1yLm1h1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABtakhK
AAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UED/wMAY3J5cHRvL3N1YnRsZS9VVAUAA12Lm1h1eAsA
AQT1AQAABBQAAABQSwECHgMKAAIAAABObkhKJeDTCCwAAAAsAAAAPgAYAAAAAAABAAAApIFL/wMA
Y3J5cHRvL3N1YnRsZS9yc2EtZ2VuZXJhdGUta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLXN0ZGVy
ci50eHRVVAUAA6OSm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABObkhKMDu4sUsAAABoAAAA
PAAYAAAAAAABAAAApIHv/wMAY3J5cHRvL3N1YnRsZS9yc2EtaW1wb3J0LWtleS1tYWxmb3JtZWQt
cGFyYW1ldGVycy1zdGRlcnIudHh0VVQFAAOkkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
bGpISgAAAAAAAAAAAAAAAA8AGAAAAAAAAAAQAO1BsAAEAGNyeXB0by93b3JrZXJzL1VUBQADXIub
WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGxqSEoAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADt
QfkABABjcnlwdG8vd29ya2Vycy9zdWJ0bGUvVVQFAANci5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgACAAAATW5ISiXg0wgsAAAALAAAADEAGAAAAAAAAQAAAKSBSQEEAGNyeXB0by93b3JrZXJzL3N1
YnRsZS9yc2EtZ2VuZXJhdGUta2V5LXN0ZGVyci50eHRVVAUAA6KSm1h1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAABQbkhKAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UHgAQQAY3NzMy9VVAUAA6iS
m1h1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABWbkhKAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA
7UEfAgQAY3NzMy9saW5lLWJyZWFrL1VUBQADs5KbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AFBuSEr8+9VuYwgAAHwsAAA2ABgAAAAAAAAAAACkgWkCBABjc3MzL2xpbmUtYnJlYWsvbGluZS1i
cmVhay1sb29zZS1jZW50ZXJlZC0yLWFjdHVhbC5wbmdVVAUAA6iSm1h1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABQbkhKXB6cfwoDAAB9CgAANAAYAAAAAAAAAAAApIE8CwQAY3NzMy9saW5lLWJy
ZWFrL2xpbmUtYnJlYWstbG9vc2UtY2VudGVyZWQtMi1kaWZmLnBuZ1VUBQADqJKbWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAFBuSEr2VSf5kQUAADYSAAA2ABgAAAAAAAEAAACkgbQOBABjc3Mz
L2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1jZW50ZXJlZC0yLWRpZmZzLmh0bWxVVAUAA6iS
m1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABQbkhKN6cKRpkBAADbCQAAOQAYAAAAAAABAAAA
pIG1FAQAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbG9vc2UtY2VudGVyZWQtMi1leHBlY3Rl
ZC5odG1sVVQFAAOokptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUG5ISmw6iSXZCAAAiCwA
ADgAGAAAAAAAAAAAAKSBwRYEAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWNlbnRl
cmVkLTItZXhwZWN0ZWQucG5nVVQFAAOokptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUW5I
SryY7T8TEAAApDAAADQAGAAAAAAAAAAAAKSBDCAEAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFr
LWxvb3NlLWNlbnRlcmVkLWFjdHVhbC5wbmdVVAUAA6mSm1h1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABRbkhKa6N6WEADAACfCwAAMgAYAAAAAAAAAAAApIGNMAQAY3NzMy9saW5lLWJyZWFrL2xp
bmUtYnJlYWstbG9vc2UtY2VudGVyZWQtZGlmZi5wbmdVVAUAA6mSm1h1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABRbkhKFznB1I8FAAAyEgAANAAYAAAAAAABAAAApIE5NAQAY3NzMy9saW5lLWJy
ZWFrL2xpbmUtYnJlYWstbG9vc2UtY2VudGVyZWQtZGlmZnMuaHRtbFVUBQADqZKbWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAFFuSEpq3ANT6gEAABQVAAA3ABgAAAAAAAEAAACkgTY6BABjc3Mz
L2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1jZW50ZXJlZC1leHBlY3RlZC5odG1sVVQFAAOp
kptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUW5ISh5bVbN8DwAAMzEAADYAGAAAAAAAAAAA
AKSBkTwEAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWNlbnRlcmVkLWV4cGVjdGVk
LnBuZ1VUBQADqZKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFFuSErhJMRLSg0AAPUwAAA3
ABgAAAAAAAAAAACkgX1MBABjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1oYWxmLWth
bmEtMi1hY3R1YWwucG5nVVQFAAOpkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUW5ISjlf
TmM0BAAAEg0AADUAGAAAAAAAAAAAAKSBOFoEAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLWxv
b3NlLWhhbGYta2FuYS0yLWRpZmYucG5nVVQFAAOpkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAUW5ISjTw9vuUBQAAOBIAADcAGAAAAAAAAQAAAKSB214EAGNzczMvbGluZS1icmVhay9saW5l
LWJyZWFrLWxvb3NlLWhhbGYta2FuYS0yLWRpZmZzLmh0bWxVVAUAA6qSm1h1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACABRbkhKlDw4CNwBAADfFAAAOgAYAAAAAAABAAAApIHgZAQAY3NzMy9saW5l
LWJyZWFrL2xpbmUtYnJlYWstbG9vc2UtaGFsZi1rYW5hLTItZXhwZWN0ZWQuaHRtbFVUBQADqpKb
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFFuSErrMDr4ChEAAOgxAAA5ABgAAAAAAAAAAACk
gTBnBABjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1oYWxmLWthbmEtMi1leHBlY3Rl
ZC5wbmdVVAUAA6mSm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABRbkhK2c2S8L0KAAAWMgAA
NwAYAAAAAAAAAAAApIGteAQAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbG9vc2UtaGFsZi1r
YW5hLTMtYWN0dWFsLnBuZ1VUBQADqpKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFFuSEpe
jeER6gQAAEoNAAA1ABgAAAAAAAAAAACkgduDBABjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1s
b29zZS1oYWxmLWthbmEtMy1kaWZmLnBuZ1VUBQADqpKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAFFuSEoi6G3NlAUAADgSAAA3ABgAAAAAAAEAAACkgTSJBABjc3MzL2xpbmUtYnJlYWsvbGlu
ZS1icmVhay1sb29zZS1oYWxmLWthbmEtMy1kaWZmcy5odG1sVVQFAAOqkptYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAUW5ISpRFbYrdAQAA4BQAADoAGAAAAAAAAQAAAKSBOY8EAGNzczMvbGlu
ZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWhhbGYta2FuYS0zLWV4cGVjdGVkLmh0bWxVVAUAA6qS
m1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABRbkhKtuVIspYQAADDMgAAOQAYAAAAAAAAAAAA
pIGKkQQAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbG9vc2UtaGFsZi1rYW5hLTMtZXhwZWN0
ZWQucG5nVVQFAAOqkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUW5ISs7UlNaHDQAAfzEA
ADcAGAAAAAAAAAAAAKSBk6IEAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWhhbGYt
a2FuYS00LWFjdHVhbC5wbmdVVAUAA6qSm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABSbkhK
WMgW+ocEAAD/DAAANQAYAAAAAAAAAAAApIGLsAQAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWst
bG9vc2UtaGFsZi1rYW5hLTQtZGlmZi5wbmdVVAUAA6uSm1h1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABSbkhKQKCsTJUFAAA4EgAANwAYAAAAAAABAAAApIGBtQQAY3NzMy9saW5lLWJyZWFrL2xp
bmUtYnJlYWstbG9vc2UtaGFsZi1rYW5hLTQtZGlmZnMuaHRtbFVUBQADq5KbWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAFJuSEqUCbrD2wEAAOAUAAA6ABgAAAAAAAEAAACkgYe7BABjc3MzL2xp
bmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1oYWxmLWthbmEtNC1leHBlY3RlZC5odG1sVVQFAAOr
kptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUW5ISpVT26k/DwAAqTEAADkAGAAAAAAAAAAA
AKSB1r0EAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWhhbGYta2FuYS00LWV4cGVj
dGVkLnBuZ1VUBQADqpKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFJuSEqOWY7F3AoAAJwu
AAA3ABgAAAAAAAAAAACkgYjNBABjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1oYWxm
LWthbmEtNS1hY3R1YWwucG5nVVQFAAOrkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUm5I
SpubnxOLAgAAdQwAADUAGAAAAAAAAAAAAKSB1dgEAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFr
LWxvb3NlLWhhbGYta2FuYS01LWRpZmYucG5nVVQFAAOrkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAUm5ISla4N3qVBQAAOBIAADcAGAAAAAAAAQAAAKSBz9sEAGNzczMvbGluZS1icmVhay9s
aW5lLWJyZWFrLWxvb3NlLWhhbGYta2FuYS01LWRpZmZzLmh0bWxVVAUAA6uSm1h1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABSbkhKu3LrhbwBAADfEgAAOgAYAAAAAAABAAAApIHV4QQAY3NzMy9s
aW5lLWJyZWFrL2xpbmUtYnJlYWstbG9vc2UtaGFsZi1rYW5hLTUtZXhwZWN0ZWQuaHRtbFVUBQAD
q5KbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFJuSErhuhRhXAkAABQvAAA5ABgAAAAAAAAA
AACkgQXkBABjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1oYWxmLWthbmEtNS1leHBl
Y3RlZC5wbmdVVAUAA6uSm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABSbkhKKQNoHt4LAADM
LgAANQAYAAAAAAAAAAAApIHU7QQAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbG9vc2UtaGFs
Zi1rYW5hLWFjdHVhbC5wbmdVVAUAA6uSm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABSbkhK
kFc+ERoDAAB0DAAAMwAYAAAAAAAAAAAApIEh+gQAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWst
bG9vc2UtaGFsZi1rYW5hLWRpZmYucG5nVVQFAAOrkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAUm5ISrG4i9uSBQAANBIAADUAGAAAAAAAAQAAAKSBqP0EAGNzczMvbGluZS1icmVhay9saW5l
LWJyZWFrLWxvb3NlLWhhbGYta2FuYS1kaWZmcy5odG1sVVQFAAOskptYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAUm5ISs2diPXPAQAAtxQAADgAGAAAAAAAAQAAAKSBqQMFAGNzczMvbGluZS1i
cmVhay9saW5lLWJyZWFrLWxvb3NlLWhhbGYta2FuYS1leHBlY3RlZC5odG1sVVQFAAOskptYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUm5ISgZbcx4PCAAASS8AADcAGAAAAAAAAAAAAKSB6gUF
AGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWhhbGYta2FuYS1leHBlY3RlZC5wbmdV
VAUAA6uSm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABSbkhKoxbiciUIAADdLAAAMwAYAAAA
AAAAAAAApIFqDgUAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbG9vc2UtaHlwaGVucy1hY3R1
YWwucG5nVVQFAAOskptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUm5ISm8qK0gFAwAAyQoA
ADEAGAAAAAAAAAAAAKSB/BYFAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLWh5cGhl
bnMtZGlmZi5wbmdVVAUAA6ySm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABSbkhKUdiaF5AF
AAAwEgAAMwAYAAAAAAABAAAApIFsGgUAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbG9vc2Ut
aHlwaGVucy1kaWZmcy5odG1sVVQFAAOskptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUm5I
ShtagjOGAQAAIAoAADYAGAAAAAAAAQAAAKSBaSAFAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFr
LWxvb3NlLWh5cGhlbnMtZXhwZWN0ZWQuaHRtbFVUBQADrJKbWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAFJuSEqYm6Y5AAgAAP4sAAA1ABgAAAAAAAAAAACkgV8iBQBjc3MzL2xpbmUtYnJlYWsv
bGluZS1icmVhay1sb29zZS1oeXBoZW5zLWV4cGVjdGVkLnBuZ1VUBQADrJKbWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAFJuSEoGDqt7hgYAAKQrAAA4ABgAAAAAAAAAAACkgc4qBQBjc3MzL2xp
bmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1pbnNlcGFyYWJsZXMtYWN0dWFsLnBuZ1VUBQADrJKb
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFJuSEpxFfup5QMAANcLAAA2ABgAAAAAAAAAAACk
gcYxBQBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1pbnNlcGFyYWJsZXMtZGlmZi5w
bmdVVAUAA6ySm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABSbkhKtmmUo5MFAAA6EgAAOAAY
AAAAAAABAAAApIEbNgUAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbG9vc2UtaW5zZXBhcmFi
bGVzLWRpZmZzLmh0bWxVVAUAA6ySm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABSbkhKVmwV
gXUBAAB1CAAAOwAYAAAAAAABAAAApIEgPAUAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbG9v
c2UtaW5zZXBhcmFibGVzLWV4cGVjdGVkLmh0bWxVVAUAA6ySm1h1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABSbkhKcRGj7fUGAACiLAAAOgAYAAAAAAAAAAAApIEKPgUAY3NzMy9saW5lLWJyZWFr
L2xpbmUtYnJlYWstbG9vc2UtaW5zZXBhcmFibGVzLWV4cGVjdGVkLnBuZ1VUBQADrJKbWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAFNuSEopO6GHTQkAAFAuAAA7ABgAAAAAAAAAAACkgXNFBQBj
c3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1pdGVyYXRpb24tbWFya3MtYWN0dWFsLnBu
Z1VUBQADrZKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFNuSEq2wR/mUAUAAJgLAAA5ABgA
AAAAAAAAAACkgTVPBQBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1pdGVyYXRpb24t
bWFya3MtZGlmZi5wbmdVVAUAA62Sm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABTbkhKLLiX
pJUFAABAEgAAOwAYAAAAAAABAAAApIH4VAUAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbG9v
c2UtaXRlcmF0aW9uLW1hcmtzLWRpZmZzLmh0bWxVVAUAA62Sm1h1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABTbkhK2DiudYUBAADYDQAAPgAYAAAAAAABAAAApIECWwUAY3NzMy9saW5lLWJyZWFr
L2xpbmUtYnJlYWstbG9vc2UtaXRlcmF0aW9uLW1hcmtzLWV4cGVjdGVkLmh0bWxVVAUAA62Sm1h1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABTbkhKJq2Mb0ALAADALgAAPQAYAAAAAAAAAAAApIH/
XAUAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbG9vc2UtaXRlcmF0aW9uLW1hcmtzLWV4cGVj
dGVkLnBuZ1VUBQADrZKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFNuSEqx2gFo7A4AAOQw
AAA1ABgAAAAAAAAAAACkgbZoBQBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1wb3N0
Zml4ZXMtYWN0dWFsLnBuZ1VUBQADrZKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFNuSEoS
MDAnJQQAAF4MAAAzABgAAAAAAAAAAACkgRF4BQBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1s
b29zZS1wb3N0Zml4ZXMtZGlmZi5wbmdVVAUAA62Sm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABTbkhKKUL+X5EFAAA0EgAANQAYAAAAAAABAAAApIGjfAUAY3NzMy9saW5lLWJyZWFrL2xpbmUt
YnJlYWstbG9vc2UtcG9zdGZpeGVzLWRpZmZzLmh0bWxVVAUAA62Sm1h1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABTbkhKerWPGMIBAABaEwAAOAAYAAAAAAABAAAApIGjggUAY3NzMy9saW5lLWJy
ZWFrL2xpbmUtYnJlYWstbG9vc2UtcG9zdGZpeGVzLWV4cGVjdGVkLmh0bWxVVAUAA62Sm1h1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABTbkhKrEufsYwQAABHMQAANwAYAAAAAAAAAAAApIHXhAUA
Y3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbG9vc2UtcG9zdGZpeGVzLWV4cGVjdGVkLnBuZ1VU
BQADrZKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFNuSEpyumsEwAcAAFstAAA0ABgAAAAA
AAAAAACkgdSVBQBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1wcmVmaXhlcy1hY3R1
YWwucG5nVVQFAAOukptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAU25ISpNmiYZ/BwAAzA4A
ADIAGAAAAAAAAAAAAKSBAp4FAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLWxvb3NlLXByZWZp
eGVzLWRpZmYucG5nVVQFAAOukptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAU25ISudt30qP
BQAAMhIAADQAGAAAAAAAAQAAAKSB7aUFAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLWxvb3Nl
LXByZWZpeGVzLWRpZmZzLmh0bWxVVAUAA66Sm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABT
bkhKGnVKDK4BAACoDAAANwAYAAAAAAABAAAApIHqqwUAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJl
YWstbG9vc2UtcHJlZml4ZXMtZXhwZWN0ZWQuaHRtbFVUBQADrpKbWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAFNuSEq5KK+ncgsAAP4uAAA2ABgAAAAAAAAAAACkgQmuBQBjc3MzL2xpbmUtYnJl
YWsvbGluZS1icmVhay1sb29zZS1wcmVmaXhlcy1leHBlY3RlZC5wbmdVVAUAA66Sm1h1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABTbkhK/spSmSoGAADqKwAANwAYAAAAAAAAAAAApIHruQUAY3Nz
My9saW5lLWJyZWFrL2xpbmUtYnJlYWstbG9vc2Utc291bmQtbWFya3MtYWN0dWFsLnBuZ1VUBQAD
rpKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFNuSEqS8rcqlwEAABUKAAA1ABgAAAAAAAAA
AACkgYbABQBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1zb3VuZC1tYXJrcy1kaWZm
LnBuZ1VUBQADrpKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFNuSEpJaLyMkwUAADgSAAA3
ABgAAAAAAAEAAACkgYzCBQBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1sb29zZS1zb3VuZC1t
YXJrcy1kaWZmcy5odG1sVVQFAAOukptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAU25ISu5Q
wPdkAQAAdAYAADoAGAAAAAAAAQAAAKSBkMgFAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLWxv
b3NlLXNvdW5kLW1hcmtzLWV4cGVjdGVkLmh0bWxVVAUAA66Sm1h1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABTbkhKvCBkkaUHAAAyLAAAOQAYAAAAAAAAAAAApIFoygUAY3NzMy9saW5lLWJyZWFr
L2xpbmUtYnJlYWstbG9vc2Utc291bmQtbWFya3MtZXhwZWN0ZWQucG5nVVQFAAOukptYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAVG5ISuEkxEtKDQAA9TAAADgAGAAAAAAAAAAAAKSBgNIFAGNz
czMvbGluZS1icmVhay9saW5lLWJyZWFrLW5vcm1hbC1oYWxmLWthbmEtMi1hY3R1YWwucG5nVVQF
AAOvkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVG5ISjlfTmM0BAAAEg0AADYAGAAAAAAA
AAAAAKSBPOAFAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLW5vcm1hbC1oYWxmLWthbmEtMi1k
aWZmLnBuZ1VUBQADr5KbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFRuSEpZcTiylgUAADoS
AAA4ABgAAAAAAAEAAACkgeDkBQBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1ub3JtYWwtaGFs
Zi1rYW5hLTItZGlmZnMuaHRtbFVUBQADr5KbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFRu
SEoFK47r3QEAAOAUAAA7ABgAAAAAAAEAAACkgejqBQBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVh
ay1ub3JtYWwtaGFsZi1rYW5hLTItZXhwZWN0ZWQuaHRtbFVUBQADr5KbWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAFRuSErrMDr4ChEAAOgxAAA6ABgAAAAAAAAAAACkgTrtBQBjc3MzL2xpbmUt
YnJlYWsvbGluZS1icmVhay1ub3JtYWwtaGFsZi1rYW5hLTItZXhwZWN0ZWQucG5nVVQFAAOvkptY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVG5IStnNkvC9CgAAFjIAADgAGAAAAAAAAAAAAKSB
uP4FAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLW5vcm1hbC1oYWxmLWthbmEtMy1hY3R1YWwu
cG5nVVQFAAOvkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVG5ISl6N4RHqBAAASg0AADYA
GAAAAAAAAAAAAKSB5wkGAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLW5vcm1hbC1oYWxmLWth
bmEtMy1kaWZmLnBuZ1VUBQADsJKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFRuSEqJBvrP
lgUAADoSAAA4ABgAAAAAAAEAAACkgUEPBgBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1ub3Jt
YWwtaGFsZi1rYW5hLTMtZGlmZnMuaHRtbFVUBQADsJKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAFRuSEpRUIYN3gEAAOEUAAA7ABgAAAAAAAEAAACkgUkVBgBjc3MzL2xpbmUtYnJlYWsvbGlu
ZS1icmVhay1ub3JtYWwtaGFsZi1rYW5hLTMtZXhwZWN0ZWQuaHRtbFVUBQADsJKbWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAFRuSEq25UiylhAAAMMyAAA6ABgAAAAAAAAAAACkgZwXBgBjc3Mz
L2xpbmUtYnJlYWsvbGluZS1icmVhay1ub3JtYWwtaGFsZi1rYW5hLTMtZXhwZWN0ZWQucG5nVVQF
AAOvkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVG5ISs7UlNaHDQAAfzEAADgAGAAAAAAA
AAAAAKSBpigGAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLW5vcm1hbC1oYWxmLWthbmEtNC1h
Y3R1YWwucG5nVVQFAAOwkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVG5ISljIFvqHBAAA
/wwAADYAGAAAAAAAAAAAAKSBnzYGAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLW5vcm1hbC1o
YWxmLWthbmEtNC1kaWZmLnBuZ1VUBQADsJKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFRu
SEr4R8RllwUAADoSAAA4ABgAAAAAAAEAAACkgZY7BgBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVh
ay1ub3JtYWwtaGFsZi1rYW5hLTQtZGlmZnMuaHRtbFVUBQADsJKbWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAFRuSEpRHFFE3AEAAOEUAAA7ABgAAAAAAAEAAACkgZ9BBgBjc3MzL2xpbmUtYnJl
YWsvbGluZS1icmVhay1ub3JtYWwtaGFsZi1rYW5hLTQtZXhwZWN0ZWQuaHRtbFVUBQADsJKbWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFRuSEqVU9upPw8AAKkxAAA6ABgAAAAAAAAAAACkgfBD
BgBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1ub3JtYWwtaGFsZi1rYW5hLTQtZXhwZWN0ZWQu
cG5nVVQFAAOwkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVG5ISo5ZjsXcCgAAnC4AADgA
GAAAAAAAAAAAAKSBo1MGAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLW5vcm1hbC1oYWxmLWth
bmEtNS1hY3R1YWwucG5nVVQFAAOwkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVG5ISpub
nxOLAgAAdQwAADYAGAAAAAAAAAAAAKSB8V4GAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLW5v
cm1hbC1oYWxmLWthbmEtNS1kaWZmLnBuZ1VUBQADsJKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAFRuSEooMAYYlwUAADoSAAA4ABgAAAAAAAEAAACkgexhBgBjc3MzL2xpbmUtYnJlYWsvbGlu
ZS1icmVhay1ub3JtYWwtaGFsZi1rYW5hLTUtZGlmZnMuaHRtbFVUBQADsJKbWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAFRuSEqIS0F6wAEAAOASAAA7ABgAAAAAAAEAAACkgfVnBgBjc3MzL2xp
bmUtYnJlYWsvbGluZS1icmVhay1ub3JtYWwtaGFsZi1rYW5hLTUtZXhwZWN0ZWQuaHRtbFVUBQAD
sJKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFRuSErhuhRhXAkAABQvAAA6ABgAAAAAAAAA
AACkgSpqBgBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1ub3JtYWwtaGFsZi1rYW5hLTUtZXhw
ZWN0ZWQucG5nVVQFAAOwkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVW5ISikDaB7eCwAA
zC4AADYAGAAAAAAAAAAAAKSB+nMGAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLW5vcm1hbC1o
YWxmLWthbmEtYWN0dWFsLnBuZ1VUBQADsZKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFVu
SEqQVz4RGgMAAHQMAAA0ABgAAAAAAAAAAACkgUiABgBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVh
ay1ub3JtYWwtaGFsZi1rYW5hLWRpZmYucG5nVVQFAAOxkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAVW5ISh1YiYKTBQAANhIAADYAGAAAAAAAAQAAAKSB0IMGAGNzczMvbGluZS1icmVhay9s
aW5lLWJyZWFrLW5vcm1hbC1oYWxmLWthbmEtZGlmZnMuaHRtbFVUBQADsZKbWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAFVuSErpv5x50AEAALgUAAA5ABgAAAAAAAEAAACkgdOJBgBjc3MzL2xp
bmUtYnJlYWsvbGluZS1icmVhay1ub3JtYWwtaGFsZi1rYW5hLWV4cGVjdGVkLmh0bWxVVAUAA7GS
m1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABVbkhKBltzHg8IAABJLwAAOAAYAAAAAAAAAAAA
pIEWjAYAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbm9ybWFsLWhhbGYta2FuYS1leHBlY3Rl
ZC5wbmdVVAUAA7GSm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABVbkhKoxbiciUIAADdLAAA
NAAYAAAAAAAAAAAApIGXlAYAY3NzMy9saW5lLWJyZWFrL2xpbmUtYnJlYWstbm9ybWFsLWh5cGhl
bnMtYWN0dWFsLnBuZ1VUBQADsZKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFVuSEpvKitI
BQMAAMkKAAAyABgAAAAAAAAAAACkgSqdBgBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1ub3Jt
YWwtaHlwaGVucy1kaWZmLnBuZ1VUBQADsZKbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFVu
SEpeBDzIkgUAADISAAA0ABgAAAAAAAEAAACkgZugBgBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVh
ay1ub3JtYWwtaHlwaGVucy1kaWZmcy5odG1sVVQFAAOxkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAVW5ISlSRPtqHAQAAIQoAADcAGAAAAAAAAQAAAKSBm6YGAGNzczMvbGluZS1icmVhay9s
aW5lLWJyZWFrLW5vcm1hbC1oeXBoZW5zLWV4cGVjdGVkLmh0bWxVVAUAA7GSm1h1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABVbkhKmJumOQAIAAD+LAAANgAYAAAAAAAAAAAApIGTqAYAY3NzMy9s
aW5lLWJyZWFrL2xpbmUtYnJlYWstbm9ybWFsLWh5cGhlbnMtZXhwZWN0ZWQucG5nVVQFAAOxkptY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVW5ISv7KUpkqBgAA6isAADgAGAAAAAAAAAAAAKSB
A7EGAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLW5vcm1hbC1zb3VuZC1tYXJrcy1hY3R1YWwu
cG5nVVQFAAOykptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVm5ISpLytyqXAQAAFQoAADYA
GAAAAAAAAAAAAKSBn7cGAGNzczMvbGluZS1icmVhay9saW5lLWJyZWFrLW5vcm1hbC1zb3VuZC1t
YXJrcy1kaWZmLnBuZ1VUBQADs5KbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFZuSEpbksW5
lAUAADoSAAA4ABgAAAAAAAEAAACkgaa5BgBjc3MzL2xpbmUtYnJlYWsvbGluZS1icmVhay1ub3Jt
YWwtc291bmQtbWFya3MtZGlmZnMuaHRtbFVUBQADs5KbWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAFZuSEr9g7oyZQEAAHUGAAA7ABgAAAAAAAEAAACkgay/BgBjc3MzL2xpbmUtYnJlYWsvbGlu
ZS1icmVhay1ub3JtYWwtc291bmQtbWFya3MtZXhwZWN0ZWQuaHRtbFVUBQADs5KbWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAFZuSEq8IGSRpQcAADIsAAA6ABgAAAAAAAAAAACkgYbBBgBjc3Mz
L2xpbmUtYnJlYWsvbGluZS1icmVhay1ub3JtYWwtc291bmQtbWFya3MtZXhwZWN0ZWQucG5nVVQF
AAOzkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAc2pISgAAAAAAAAAAAAAAAA0AGAAAAAAA
AAAQAO1Bn8kGAGRpc3BsYXlsaXN0cy9VVAUAA2qLm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABUbkhKo1f96FAAAACOAAAAMgAYAAAAAAABAAAApIHmyQYAZGlzcGxheWxpc3RzL2V4dGVudC1p
bmNsdWRlcy10cmFuc2Zvcm1zLXN0ZGVyci50eHRVVAUAA7CSm1h1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABUbkhK8paV1UcAAABJAAAAKQAYAAAAAAABAAAApIGiygYAZGlzcGxheWxpc3RzL2xh
eWVyLWRpc3BheS1saXN0LXN0ZGVyci50eHRVVAUAA7CSm1h1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAACJbkhKAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UFMywYAZWRpdGluZy9VVAUAAxGTm1h1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABWbkhKAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UGO
ywYAZWRpdGluZy9jYXJldC9VVAUAA7SSm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABWbkhK
hgXZf/UBAABNIQAAHgAYAAAAAAABAAAApIHWywYAZWRpdGluZy9jYXJldC9lbW9qaS1hY3R1YWwu
dHh0VVQFAAO0kptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVm5ISpjXVs/wAgAACigAABwA
GAAAAAAAAQAAAKSBI84GAGVkaXRpbmcvY2FyZXQvZW1vamktZGlmZi50eHRVVAUAA7SSm1h1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABWbkhK+XxKwgcBAACdBgAAIAAYAAAAAAABAAAApIFp0QYA
ZWRpdGluZy9jYXJldC9lbW9qaS1leHBlY3RlZC50eHRVVAUAA7SSm1h1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABWbkhKT9AlYawNAAA8tQAAJAAYAAAAAAABAAAApIHK0gYAZWRpdGluZy9jYXJl
dC9lbW9qaS1wcmV0dHktZGlmZi5odG1sVVQFAAO0kptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAg25ISgAAAAAAAAAAAAAAABEAGAAAAAAAAAAQAO1B1OAGAGVkaXRpbmcvZGVsZXRpbmcvVVQF
AAMGk5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAoG5ISlz0kQx5SQAA3jMBACgAGAAAAAAA
AQAAAKSBH+EGAGVkaXRpbmcvZGVsZXRpbmcvNDkxNjIzNS0xLWNyYXNoLWxvZy50eHRVVAUAAzuT
m1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACgakhKcVCuHNUBAAAKFAAAKAAYAAAAAAABAAAA
pIH6KgcAZWRpdGluZy9kZWxldGluZy9kZWxldGUtZW1vamktc3RkZXJyLnR4dFVUBQADvIubWHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIRuSEoAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQTEt
BwBlZGl0aW5nL2V4ZWNDb21tYW5kL1VUBQADCJObWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AKBuSEq8ZvrW10kAALspAQArABgAAAAAAAEAAACkgX8tBwBlZGl0aW5nL2V4ZWNDb21tYW5kLzQ2
NDE4ODAtMS1jcmFzaC1sb2cudHh0VVQFAAM7k5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
d2pISt0hw+1CAAAAhgAAAEEAGAAAAAAAAQAAAKSBu3cHAGVkaXRpbmcvZXhlY0NvbW1hbmQvY2xp
cGJvYXJkLWFjY2Vzcy13aXRoLXVzZXItZ2VzdHVyZS1zdGRlcnIudHh0VVQFAANyi5tYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAhG5ISgAAAAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1BeHgHAGVk
aXRpbmcvaW5wdXQvVVQFAAMIk5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAoG5ISm+Q8nAB
TwAAc1EBAC8AGAAAAAAAAQAAAKSBwHgHAGVkaXRpbmcvaW5wdXQvb3B0aW9uLXBhZ2UtdXAtZG93
bi1jcmFzaC1sb2cudHh0VVQFAAM7k5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAiW5ISgAA
AAAAAAAAAAAAABIAGAAAAAAAAAAQAO1BKsgHAGVkaXRpbmcvaW5zZXJ0aW5nL1VUBQADEZObWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIluSEqYYk6xQwAAAEYAAAApABgAAAAAAAEAAACkgXbI
BwBlZGl0aW5nL2luc2VydGluZy81NTQ5OTI5LTItY3Jhc2gtbG9nLnR4dFVUBQADEZObWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAIluSEoAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQRzJBwBl
ZGl0aW5nL21hYy9VVAUAAxGTm1h1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABYbkhKAAAAAAAA
AAAAAAAAFQAYAAAAAAAAABAA7UFiyQcAZWRpdGluZy9tYWMvZGVsZXRpbmcvVVQFAAO3kptYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAV25ISkGrek+fAAAAVgEAAC8AGAAAAAAAAQAAAKSBsckH
AGVkaXRpbmcvbWFjL2RlbGV0aW5nL2JhY2t3YXJkLWRlbGV0ZS1hY3R1YWwudHh0VVQFAAO2kptY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAV25ISi6avu8nAQAAwQIAAC0AGAAAAAAAAQAAAKSB
ucoHAGVkaXRpbmcvbWFjL2RlbGV0aW5nL2JhY2t3YXJkLWRlbGV0ZS1kaWZmLnR4dFVUBQADtpKb
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFduSEpTUzXbZQAAABoBAAAxABgAAAAAAAEAAACk
gUfMBwBlZGl0aW5nL21hYy9kZWxldGluZy9iYWNrd2FyZC1kZWxldGUtZXhwZWN0ZWQudHh0VVQF
AAO2kptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWG5ISh+LQK17CQAAw0EAADUAGAAAAAAA
AQAAAKSBF80HAGVkaXRpbmcvbWFjL2RlbGV0aW5nL2JhY2t3YXJkLWRlbGV0ZS1wcmV0dHktZGlm
Zi5odG1sVVQFAAO3kptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAiW5ISgAAAAAAAAAAAAAA
AB4AGAAAAAAAAAAQAO1BAdcHAGVkaXRpbmcvbWFjL2RpY3Rpb25hcnktbG9va3VwL1VUBQADEZOb
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIluSEqSoRX/QwAAAEYAAABDABgAAAAAAAEAAACk
gVnXBwBlZGl0aW5nL21hYy9kaWN0aW9uYXJ5LWxvb2t1cC9kaWN0aW9uYXJ5LWxvb2t1cC1pbnB1
dC1jcmFzaC1sb2cudHh0VVQFAAMRk5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAiW5IShov
pWNbCwAAR0QAAA0AGAAAAAAAAQAAAKSBGdgHAGVycm9yX2xvZy50eHRVVAUAAxKTm1h1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAACkakhKAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UG74wcAZmFz
dC9VVAUAA8OLm1h1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACLakhKAAAAAAAAAAAAAAAADAAY
AAAAAAAAABAA7UH64wcAZmFzdC9jYW52YXMvVVQFAAOVi5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAbW5ISkaf18eNAAAANAEAACYAGAAAAAAAAQAAAKSBQOQHAGZhc3QvY2FudmFzL2NhbnZh
cy1saW5lRGFzaC1zdGRlcnIudHh0VVQFAAPekptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
i2pISgAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BLeUHAGZhc3QvY3NzL1VUBQADlYubWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAGxuSErbCNNCOwAAAD8AAAApABgAAAAAAAEAAACkgXDlBwBm
YXN0L2Nzcy9jb21wYXJlLWNvbnRlbnQtc3R5bGUtc3RkZXJyLnR4dFVUBQAD3JKbWHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAJlqSEoAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQQ7mBwBmYXN0
L2V2ZW50cy9VVAUAA7KLm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACQakhKWCpndTkAAABD
AAAAMgAYAAAAAAABAAAApIFU5gcAZmFzdC9ldmVudHMvZGlzcGxheS1ub25lLW9uLWZvY3VzLWNy
YXNoLXN0ZGVyci50eHRVVAUAA6CLm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACZakhKMLVt
4zkAAABDAAAAKwAYAAAAAAABAAAApIH55gcAZmFzdC9ldmVudHMvbW91c2UtZm9jdXMtaW1hZ2Vt
YXAtc3RkZXJyLnR4dFVUBQADsoubWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAI9qSEoAAAAA
AAAAAAAAAAALABgAAAAAAAAAEADtQZfnBwBmYXN0L2Zvcm1zL1VUBQADnoubWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAI9qSEpNW5oKagAAAGwAAAA7ABgAAAAAAAEAAACkgdznBwBmYXN0L2Zv
cm1zL2NoZWNrYm94LWFwcGVhcmFuY2UtY2hhbmdlLWJ5LWNoZWNrZWQtc3RkZXJyLnR4dFVUBQAD
noubWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJBqSEoAAAAAAAAAAAAAAAAMABgAAAAAAAAA
EADtQbvoBwBmYXN0L2ZyYW1lcy9VVAUAA5+Lm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACQ
akhK2wjTQjsAAAA/AAAALwAYAAAAAAABAAAApIEB6QcAZmFzdC9mcmFtZXMvZnJhbWUtZGlzcGxh
eS1ub25lLWZvY3VzLXN0ZGVyci50eHRVVAUAA5+Lm1h1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AACWakhKAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UGl6QcAZmFzdC9pbWFnZXMvVVQFAAOsi5tY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAlmpISiGPvTgyAAAAMwAAACwAGAAAAAAAAQAAAKSB
6+kHAGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS1jcm9wLWJveC1zdGRlcnIudHh0VVQFAAOsi5tY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAlmpISgAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1B
g+oHAGZhc3QvbG9hZGVyL1VUBQADrIubWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJBqSErb
CNNCOwAAAD8AAABSABgAAAAAAAEAAACkgcnqBwBmYXN0L2xvYWRlci9kaXNwbGF5LWltYWdlLXVu
c2V0LWNhbi1ibG9jay1pbWFnZS1hbmQtY2FuLXJlbG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0VVQF
AAOgi5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAkWpIStsI00I7AAAAPwAAAFMAGAAAAAAA
AQAAAKSBkOsHAGZhc3QvbG9hZGVyL2ltYWdlcy1lbmFibGVkLXVuc2V0LWNhbi1ibG9jay1pbWFn
ZS1hbmQtY2FuLXJlbG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0VVQFAAOii5tYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAlmpIStsI00I7AAAAPwAAAC0AGAAAAAAAAQAAAKSBWOwHAGZhc3QvbG9h
ZGVyL3JlbG9hZC1wb2xpY3ktZGVsZWdhdGUtc3RkZXJyLnR4dFVUBQADrIubWHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAJxqSEoAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQfrsBwBmYXN0L3Jl
Z2lvbnMvVVQFAAO3i5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAnGpISnKYcAaDZAAAJooA
AFQAGAAAAAAAAAAAAKSBQe0HAGZhc3QvcmVnaW9ucy9pbmxpbmUtYmxvY2staW5zaWRlLWFub255
bW91cy1vdmVyZmxvdy13aXRoLWNvdmVyZWQtY29udHJvbHMtYWN0dWFsLnBuZ1VUBQADt4ubWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJxqSErfYGlOxiAAAPgrAABSABgAAAAAAAAAAACkgVJS
CABmYXN0L3JlZ2lvbnMvaW5saW5lLWJsb2NrLWluc2lkZS1hbm9ueW1vdXMtb3ZlcmZsb3ctd2l0
aC1jb3ZlcmVkLWNvbnRyb2xzLWRpZmYucG5nVVQFAAO3i5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAnGpISlJKu2anBQAAdRIAAFQAGAAAAAAAAQAAAKSBpHMIAGZhc3QvcmVnaW9ucy9pbmxp
bmUtYmxvY2staW5zaWRlLWFub255bW91cy1vdmVyZmxvdy13aXRoLWNvdmVyZWQtY29udHJvbHMt
ZGlmZnMuaHRtbFVUBQADt4ubWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJxqSEoSaBHK4AIA
AFoIAABXABgAAAAAAAEAAACkgdl5CABmYXN0L3JlZ2lvbnMvaW5saW5lLWJsb2NrLWluc2lkZS1h
bm9ueW1vdXMtb3ZlcmZsb3ctd2l0aC1jb3ZlcmVkLWNvbnRyb2xzLWV4cGVjdGVkLmh0bWxVVAUA
A7eLm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACcakhKKYL4/g13AABAmgAAVgAYAAAAAAAA
AAAApIFKfQgAZmFzdC9yZWdpb25zL2lubGluZS1ibG9jay1pbnNpZGUtYW5vbnltb3VzLW92ZXJm
bG93LXdpdGgtY292ZXJlZC1jb250cm9scy1leHBlY3RlZC5wbmdVVAUAA7eLm1h1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAACbakhKAAAAAAAAAAAAAAAAFwAYAAAAAAAAABAA7UHn9AgAZmFzdC9y
ZWdpb25zL3Njcm9sbGluZy9VVAUAA7aLm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACbakhK
OQHL3UAAAAB6AAAANQAYAAAAAAABAAAApIE49QgAZmFzdC9yZWdpb25zL3Njcm9sbGluZy93aGVl
bC1zY3JvbGwtYWJzcG9zLXN0ZGVyci50eHRVVAUAA7WLm1h1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACbakhKOQHL3UAAAAB6AAAALgAYAAAAAAABAAAApIHn9QgAZmFzdC9yZWdpb25zL3Njcm9s
bGluZy93aGVlbC1zY3JvbGwtc3RkZXJyLnR4dFVUBQADtYubWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAJtqSErkisdDPAAAAD0AAABAABgAAAAAAAEAAACkgY/2CABmYXN0L3JlZ2lvbnMvc2Ny
b2xsaW5nL3doZWVsLXNjcm9sbGFibGUtc2luZ2xlLXJlZ2lvbi1zdGRlcnIudHh0VVQFAAO2i5tY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAApGpISgAAAAAAAAAAAAAAAAoAGAAAAAAAAAAQAO1B
RfcIAGZhc3QvdGV4dC9VVAUAA8OLm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACkakhK5U6s
JowBAAAKCgAAIwAYAAAAAAABAAAApIGJ9wgAZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci0yLXN0ZGVy
ci50eHRVVAUAA8OLm1h1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACjakhKAAAAAAAAAAAAAAAA
CQAYAAAAAAAAABAA7UFy+QgAZmFzdC94c2wvVVQFAAPCi5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAompISk77IPiIAAAA5wAAACUAGAAAAAAAAQAAAKSBtfkIAGZhc3QveHNsL3RyYW5zZm9y
bS14aHItZG9jLXN0ZGVyci50eHRVVAUAA8CLm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACj
akhK/aIuZI8AAADuAAAAJwAYAAAAAAABAAAApIGc+ggAZmFzdC94c2wveHNsdC1iYWQtaW1wb3J0
LXVyaS1zdGRlcnIudHh0VVQFAAPBi5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAo2pISs+P
Zg5QAAAAoAAAACQAGAAAAAAAAQAAAKSBjPsIAGZhc3QveHNsL3hzbHQtY29udGVudFR5cGUtc3Rk
ZXJyLnR4dFVUBQADwYubWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKNqSEqBSnetSwAAAKwA
AAA0ABgAAAAAAAEAAACkgTr8CABmYXN0L3hzbC94c2x0LXRyYW5zZm9ybS10by1mcmFnbWVudC1j
cmFzaC1zdGRlcnIudHh0VVQFAAPCi5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAoG5ISmw5
Zvb+AgAAkBAAABEAGAAAAAAAAQAAAKSB8/wIAGZ1bGxfcmVzdWx0cy5qc29uVVQFAAM8k5tYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAArGpISgAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BPAAJ
AGh0dHAvVVQFAAPTi5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAx2pISgAAAAAAAAAAAAAA
AAsAGAAAAAAAAAAQAO1BewAJAGh0dHAvdGVzdHMvVVQFAAMFjJtYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAx2pISgAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BwAAJAGh0dHAvdGVzdHMvbWlz
Yy9VVAUAAwWMm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADHakhKFTU1knoAAAC8AAAAKgAY
AAAAAAABAAAApIEKAQkAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRlcnIudHh0
VVQFAAMFjJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAtGpISgAAAAAAAAAAAAAAABYAGAAA
AAAAAAAQAO1B6AEJAGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9VVAUAA+SLm1h1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACtakhK2wjTQjsAAAA/AAAANwAYAAAAAAABAAAApIE4AgkAaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL2ZhbGxiYWNrLWFuY2hvci1yZWxvYWQtc3RkZXJyLnR4dFVUBQAD1YubWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALRqSEpY2QIwagAAAGwAAAAtABgAAAAAAAEAAACkgeQC
CQBodHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1nb2JhY2syLXN0ZGVyci50eHRVVAUAA+SLm1h1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADBakhKAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UG1
AwkAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAUAA/mLm1h1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AAC6akhKAAAAAAAAAAAAAAAAKgAYAAAAAAAAABAA7UEDBAkAaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvVVQFAAPwi5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
rGpISg4K0JhzAAAAdQAAAFcAGAAAAAAAAQAAAKSBZwQJAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L2Nvbm5lY3Qtc3JjLXN0YXItd2Vic29ja2V0LWFsbG93ZWQtc3Rk
ZXJyLnR4dFVUBQAD04ubWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKxqSEqXZOKBcgAAAHUA
AABXABgAAAAAAAEAAACkgWsFCQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9kZWZhdWx0LXNyYy1zdGFyLXdlYnNvY2tldC1hbGxvd2VkLXN0ZGVyci50eHRVVAUAA9SL
m1h1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACxakhKAAAAAAAAAAAAAAAAPQAYAAAAAAAAABAA
7UFuBgkAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50
U2hhZG93RE9NL1VUBQAD3YubWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALFqSEry7RSP4QAA
AG4BAABsABgAAAAAAAEAAACkgeUGCQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vZGVmYXVsdC1zcmMtb2JqZWN0LWRhdGEtdXJsLWJs
b2NrZWQzLXN0ZGVyci50eHRVVAUAA92Lm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC6akhK
Y6qsbIIAAACoAAAAQAAYAAAAAAABAAAApIFsCAkAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUBQAD74ubWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIALpqSEpjqqxsggAAAKgAAABSABgAAAAAAAEAAACkgWgJCQBodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHls
ZS1zcmMtMi1zdGRlcnIudHh0VVQFAAPwi5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwWpI
SmBLZhCRAAAA+wEAAEUAGAAAAAAAAQAAAKSBdgoJAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVUBQAD+YubWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAEZuSEpbBFgOogUAAE0QAAAKABgAAAAAAAEAAACkgYYLCQBo
dHRwZC5jb25mVVQFAAOTkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAzGpISgAAAAAAAAAA
AAAAAAkAGAAAAAAAAAAQAO1BbBEJAGltcG9ydGVkL1VUBQADEIybWHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAAprSEoAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADtQa8RCQBpbXBvcnRlZC9ibGlu
ay9VVAUAA4OMm1h1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAC4akhKAAAAAAAAAAAAAAAAFAAY
AAAAAAAAABAA7UH4EQkAaW1wb3J0ZWQvYmxpbmsvZmFzdC9VVAUAA+yLm1h1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAAC4akhKAAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UFGEgkAaW1wb3J0ZWQv
YmxpbmsvZmFzdC9mb3Jtcy9VVAUAA+yLm1h1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAC4akhK
AAAAAAAAAAAAAAAAIQAYAAAAAAAAABAA7UGaEgkAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9i
dXR0b24vVVQFAAPsi5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAuGpISsch79s3AAAAQAAA
AEcAGAAAAAAAAQAAAKSB9RIJAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvYnV0dG9uL2J1dHRv
bi1yZXNldC1mb2N1cy1ieS1tb3VzZS1zdGRlcnIudHh0VVQFAAPsi5tYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAuGpISgAAAAAAAAAAAAAAACAAGAAAAAAAAAAQAO1BrRMJAGltcG9ydGVkL2Js
aW5rL2Zhc3QvZm9ybXMvcmFuZ2UvVVQFAAPsi5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
uGpISsch79s3AAAAQAAAAD8AGAAAAAAAAQAAAKSBBxQJAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9y
bXMvcmFuZ2UvcmFuZ2UtZm9jdXMtYnktbW91c2Utc3RkZXJyLnR4dFVUBQAD7IubWHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAALhqSEoAAAAAAAAAAAAAAAAhABgAAAAAAAAAEADtQbcUCQBpbXBv
cnRlZC9ibGluay9mYXN0L2Zvcm1zL3N1Ym1pdC9VVAUAA+yLm1h1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAC4akhKxyHv2zcAAABAAAAAQQAYAAAAAAABAAAApIESFQkAaW1wb3J0ZWQvYmxpbmsv
ZmFzdC9mb3Jtcy9zdWJtaXQvc3VibWl0LWZvY3VzLWJ5LW1vdXNlLXN0ZGVyci50eHRVVAUAA+yL
m1h1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAKa0hKAAAAAAAAAAAAAAAAFwAYAAAAAAAAABAA
7UHEFQkAaW1wb3J0ZWQvYmxpbmsvc3RvcmFnZS9VVAUAA4OMm1h1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAAAKa0hKAAAAAAAAAAAAAAAAIQAYAAAAAAAAABAA7UEVFgkAaW1wb3J0ZWQvYmxpbmsv
c3RvcmFnZS9pbmRleGVkZGIvVVQFAAODjJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACmtI
St+NYaB9AAAAhwAAAEYAGAAAAAAAAQAAAKSBcBYJAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5k
ZXhlZGRiL2Jsb2ItZGVsZXRlLW9iamVjdHN0b3JlLWRiLWFjdHVhbC50eHRVVAUAA4OMm1h1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAKa0hKtkO4LS8CAACyBAAARAAYAAAAAAABAAAApIFtFwkA
aW1wb3J0ZWQvYmxpbmsvc3RvcmFnZS9pbmRleGVkZGIvYmxvYi1kZWxldGUtb2JqZWN0c3RvcmUt
ZGItZGlmZi50eHRVVAUAA4OMm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAKa0hK9zqRyVwB
AADfAgAASAAYAAAAAAABAAAApIEaGgkAaW1wb3J0ZWQvYmxpbmsvc3RvcmFnZS9pbmRleGVkZGIv
YmxvYi1kZWxldGUtb2JqZWN0c3RvcmUtZGItZXhwZWN0ZWQudHh0VVQFAAODjJtYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgACmtISs4bnP+rCQAAgi4AAEwAGAAAAAAAAQAAAKSB+BsJAGltcG9y
dGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL2Jsb2ItZGVsZXRlLW9iamVjdHN0b3JlLWRiLXBy
ZXR0eS1kaWZmLmh0bWxVVAUAA4OMm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAKa0hKo2D/
elwAAABeAAAARgAYAAAAAAABAAAApIEpJgkAaW1wb3J0ZWQvYmxpbmsvc3RvcmFnZS9pbmRleGVk
ZGIvYmxvYi1kZWxldGUtb2JqZWN0c3RvcmUtZGItc3RkZXJyLnR4dFVUBQADg4ybWHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAAprSEoAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQQUnCQBpbXBv
cnRlZC93M2MvVVQFAAOEjJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAACmtISgAAAAAAAAAA
AAAAACgAGAAAAAAAAAAQAO1BTCcJAGltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93
c2luZy9VVAUAA4SMm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAKa0hKgTxKAn0AAACHAAAA
QwAYAAAAAAABAAAApIGuJwkAaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmZhY3Rvcnlfb3BlbjktYWN0dWFsLnR4dFVUBQADhIybWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAAprSEpQTKaOnAEAAPkGAABBABgAAAAAAAEAAACkgagoCQBpbXBvcnRlZC93M2MvSW5k
ZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuOS1kaWZmLnR4dFVUBQADhIyb
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAprSEqQ7ggrugAAADYFAABFABgAAAAAAAEAAACk
gb8qCQBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9v
cGVuOS1leHBlY3RlZC50eHRVVAUAA4SMm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAKa0hK
HvdbE8oIAABrKgAASQAYAAAAAAABAAAApIH4KwkAaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjktcHJldHR5LWRpZmYuaHRtbFVUBQADhIybWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAprSEopKBSlXAAAAF4AAABDABgAAAAAAAEAAACkgUU1
CQBpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVu
OS1zdGRlcnIudHh0VVQFAAOEjJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAzGpISgAAAAAA
AAAAAAAAABoAGAAAAAAAAAAQAO1BHjYJAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvVVQFAAMQ
jJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA0mpISgAAAAAAAAAAAAAAACYAGAAAAAAAAAAQ
AO1BcjYJAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvVVQFAAMbjJtYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzGpISo80GnBEAAAAoAkAAEcAGAAAAAAAAQAAAKSB0jYJ
AGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19SU0Et
T0FFUC1zdGRlcnIudHh0VVQFAAMQjJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0mpISlQC
ybI2AAAAwAIAAFAAGAAAAAAAAQAAAKSBlzcJAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2Vu
ZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19SU0FTU0EtUEtDUzEtdjFfNS1zdGRlcnIudHh0VVQFAAMb
jJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA0WpISgAAAAAAAAAAAAAAACAAGAAAAAAAAAAQ
AO1BVzgJAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvVVQFAAMajJtYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAzGpISgAAAAAAAAAAAAAAACYAGAAAAAAAAAAQAO1BsTgJAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvVVQFAAMQjJtYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAA22pISgAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1BETkJAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL1VUBQADLoybWHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAANxqSEoAAAAAAAAAAAAAAAAwABgAAAAAAAAAEADtQXU5CQBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9VVAUAAy+Mm1h1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADcakhK65tfZJEAAACeAAAARwAYAAAAAAABAAAApIHfOQkAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1uby1jb3JzLXN0ZGVy
ci50eHRVVAUAAy+Mm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADbakhKNz9jSZEAAACeAAAA
TgAYAAAAAAABAAAApIHxOgkAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYmFzaWMvbW9kZS1uby1jb3JzLXdvcmtlci1zdGRlcnIudHh0VVQFAAMujJtYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAADWtISgAAAAAAAAAAAAAAAC8AGAAAAAAAAAAQAO1BCjwJAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvVVQFAAOKjJtYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAzGpISsbLuSquAAAAtAMAAEQAGAAAAAAAAQAAAKSBczwJAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1iYXNpYy1z
dGRlcnIudHh0VVQFAAMQjJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzGpISmHpQlmrAAAA
tAMAAEsAGAAAAAAAAQAAAKSBnz0JAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2NvcnMvY29ycy1iYXNpYy13b3JrZXItc3RkZXJyLnR4dFVUBQADEIybWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAAprSEp8FvX4fgAAAIcAAABPABgAAAAAAAEAAACkgc8+CQBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtZmlsdGVyaW5n
LXdvcmtlci1hY3R1YWwudHh0VVQFAAODjJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACmtI
ShoQRyiQAQAAAgUAAE0AGAAAAAAAAQAAAKSB1j8JAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1maWx0ZXJpbmctd29ya2VyLWRpZmYudHh0VVQFAAOD
jJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACmtISnzKS4WqAAAAJwMAAFEAGAAAAAAAAQAA
AKSB7UEJAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29y
cy1maWx0ZXJpbmctd29ya2VyLWV4cGVjdGVkLnR4dFVUBQADg4ybWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAAprSEqx+8lvwAgAAF4oAABVABgAAAAAAAEAAACkgSJDCQBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtZmlsdGVyaW5nLXdvcmtlci1w
cmV0dHktZGlmZi5odG1sVVQFAAOEjJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACmtISrBE
sI5cAAAAXgAAAE8AGAAAAAAAAQAAAKSBcUwJAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1maWx0ZXJpbmctd29ya2VyLXN0ZGVyci50eHRVVAUAA4OM
m1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAALa0hKlXyK55sAAAA8AQAASwAYAAAAAAABAAAA
pIFWTQkAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3Jz
LW5vLXByZWZsaWdodC1zdGRlcnIudHh0VVQFAAOGjJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAC2tISiBALBebAAAAPAEAAFIAGAAAAAAAAQAAAKSBdk4JAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1uby1wcmVmbGlnaHQtd29ya2VyLXN0ZGVy
ci50eHRVVAUAA4aMm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAALa0hKER7cjEYCAABJDAAA
RQAYAAAAAAABAAAApIGdTwkAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvY29ycy9jb3JzLW9yaWdpbi1zdGRlcnIudHh0VVQFAAOGjJtYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAC2tISsPFzlijAAAAeAIAAEwAGAAAAAAAAQAAAKSBYlIJAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1vcmlnaW4td29ya2VyLXN0ZGVy
ci50eHRVVAUAA4aMm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAMa0hKHKD1wZYBAADeBQAA
SAAYAAAAAAABAAAApIGLUwkAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvY29ycy9jb3JzLXByZWZsaWdodC1zdGRlcnIudHh0VVQFAAOIjJtYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgADWtISudEi3vIAgAAvxMAAFEAGAAAAAAAAQAAAKSBo1UJAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1yZWRpcmVjdC1wcmVmbGln
aHQtc3RkZXJyLnR4dFVUBQADioybWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANFqSEoAAAAA
AAAAAAAAAAAlABgAAAAAAAAAEADtQfZYCQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvVVQFAAMajJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA0WpISgAAAAAAAAAAAAAA
AC4AGAAAAAAAAAAQAO1BVVkJAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9VVAUAAxqMm1h1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADRakhKAAAAAAAAAAAA
AAAAPwAYAAAAAAAAABAA7UG9WQkAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvVVQFAAMajJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAA0WpISgAAAAAAAAAAAAAAAFEAGAAAAAAAAAAQAO1BNloJAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL2hpc3RvcnktdHJh
dmVyc2FsL1VUBQADGoybWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANFqSEoAAAAAAAAAAAAA
AAByABgAAAAAAAAAEADtQcFaCQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5LXRyYXZlcnNhbC9wZXJzaXN0ZWQtdXNl
ci1zdGF0ZS1yZXN0b3JhdGlvbi9VVAUAAxqMm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADR
akhKOvgJhm8AAACeAAAAmQAYAAAAAAABAAAApIFtWwkAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwv
cGVyc2lzdGVkLXVzZXItc3RhdGUtcmVzdG9yYXRpb24vcmVzdW1lLXRpbWVyLW9uLWhpc3Rvcnkt
YmFjay1hY3R1YWwudHh0VVQFAAMajJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0WpISjx2
F38TAQAArgIAAJcAGAAAAAAAAQAAAKSBr1wJAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2ViL2hpc3RvcnktdHJhdmVyc2FsL3BlcnNp
c3RlZC11c2VyLXN0YXRlLXJlc3RvcmF0aW9uL3Jlc3VtZS10aW1lci1vbi1oaXN0b3J5LWJhY2st
ZGlmZi50eHRVVAUAAxqMm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADRakhKIFKPfFAAAAB5
AAAAmwAYAAAAAAABAAAApIGTXgkAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwvcGVyc2lzdGVkLXVz
ZXItc3RhdGUtcmVzdG9yYXRpb24vcmVzdW1lLXRpbWVyLW9uLWhpc3RvcnktYmFjay1leHBlY3Rl
ZC50eHRVVAUAAxqMm1h1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADRakhKNBzVpg0IAACsGgAA
nwAYAAAAAAABAAAApIG4XwkAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jy
b3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwvcGVyc2lzdGVkLXVzZXIt
c3RhdGUtcmVzdG9yYXRpb24vcmVzdW1lLXRpbWVyLW9uLWhpc3RvcnktYmFjay1wcmV0dHktZGlm
Zi5odG1sVVQFAAMajJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAGmtISgAAAAAAAAAAAAAA
AAgAGAAAAAAAAAAQAO1BnmgJAHBsdWdpbnMvVVQFAAOkjJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAGmtISu5dckWGAAAA9gAAADsAGAAAAAAAAQAAAKSB4GgJAHBsdWdpbnMvbnBwLXNldC13
aW5kb3ctY2FsbGVkLWR1cmluZy1kZXN0cnVjdGlvbi1zdGRlcnIudHh0VVQFAAOkjJtYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAARm5ISgAAAAAAAAAAAAAAABoAGAAAAAAAAAAAAKSB22kJAHB5
d2Vic29ja2V0LndzLmxvZy1lcnIudHh0VVQFAAOUkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAARm5ISgAAAAAAAAAAAAAAABoAGAAAAAAAAAAAAKSBL2oJAHB5d2Vic29ja2V0LndzLmxvZy1v
dXQudHh0VVQFAAOUkptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAR25ISgAAAAAAAAAAAAAA
ABsAGAAAAAAAAAAAAKSBg2oJAHB5d2Vic29ja2V0Lndzcy5sb2ctZXJyLnR4dFVUBQADlZKbWHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAEduSEoAAAAAAAAAAAAAAAAbABgAAAAAAAAAAACkgdhq
CQBweXdlYnNvY2tldC53c3MubG9nLW91dC50eHRVVAUAA5WSm1h1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACgbkhKRSYdOdEnAADLqgAADAAYAAAAAAABAAAApIEtawkAcmVzdWx0cy5odG1sVVQF
AAM8k5tYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA6GtISgAAAAAAAAAAAAAAAAgAGAAAAAAA
AAAQAO1BRJMJAHJldHJpZXMvVVQFAAMkjptYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAG2tI
SgAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BhpMJAHNjcm9sbGJhcnMvVVQFAAOljJtYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAG2tISm69I2E5AAAAQgAAADsAGAAAAAAAAQAAAKSBy5MJAHNj
cm9sbGJhcnMvc2Nyb2xsZXZlbnQtaWZyYW1lLW5vLXNjcm9sbGluZy13aGVlbC1zdGRlcnIudHh0
VVQFAAOljJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAoG5ISsLCZ708HAIAlwsMAAoAGAAA
AAAAAQAAAKSBeZQJAHN0YXRzLmpzb25VVAUAAzyTm1h1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AAAxa0hKAAAAAAAAAAAAAAAABAAYAAAAAAAAABAA7UH5sAsAc3ZnL1VUBQADzYybWHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAADFrSEoAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQTexCwBzdmcv
YXMtaW1hZ2UvVVQFAAPNjJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMWtIStsI00I7AAAA
PwAAAD8AGAAAAAAAAQAAAKSBfrELAHN2Zy9hcy1pbWFnZS9zdmctaW1hZ2Utd2l0aC1kYXRhLXVy
aS1pbWFnZXMtZGlzYWJsZWQtc3RkZXJyLnR4dFVUBQADzYybWHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAADtrSEoAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQTKyCwB3ZWJhcmNoaXZlL1VUBQAD
4oybWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADtrSErbCNNCOwAAAD8AAAA6ABgAAAAAAAEA
AACkgXeyCwB3ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtc3VicmVzb3VyY2UtYmVmb3JlbG9hZC1z
dGRlcnIudHh0VVQFAAPijJtYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUW5ISk5DgSceAgAA
+A4AABkAGAAAAAAAAQAAAKSBJrMLAHdwdHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAUAA6qSm1h1
eAsAAQT1AQAABBQAAABQSwUGAAAAACkBKQGwiQAAl7ULAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300964</attachid>
            <date>2017-02-08 14:14:33 -0800</date>
            <delta_ts>2017-02-08 14:26:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20170208141209.patch</filename>
            <type>text/plain</type>
            <size>123606</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExODk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YjBhOTI0MGY3M2JiZWRkMTBmMzBlMDEyOTU5NzBmMjY5ZjY3Yjc5Li4zNmE4YmVmMjJjNjFhNWMz
ZmQ4OGNhZDY3NWM5MjgxMjgxZGExZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNy0wMi0wOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbmNsdWRlIHRoZSBieXRlY29kZSBmaWxlcyBpbnNpZGUgdGhl
IEphdmFTY3JpcHRDb3JlIGJ1bmRsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTctMDItMDggIFNhYW0gQmFyYXRpICA8c2JhcmF0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgQWlyIElSQyBtaWdodCBzcGlsbCBhIHRlcm1pbmFsIHRo
YXQgcHJvZHVjZXMgYSB2YWx1ZSBhZnRlciB0aGUgdGVybWluYWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2IzZjE4MWM5ZDRj
Y2UwYzQzMzlhMzQzNmI4N2M0ZWE0OTkzNDk3Yi4uYmU3YzZmOTk3MjllMjQ4MDdlOGFjZDY1ZDM0
ZjM3YmExYTk0YWY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OSBAQAorMjAxNy0wMi0wOCAgTXlsZXMgQy4g
TWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJy
ZWFraW5nIGl0ZXJhdG9ycyBhdCBidWlsZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbWFjT1MgYW5k
IGlPUyBTREtzIGluY2x1ZGUgYSB0b29sLCBpY3VnZW5icmssIHdoaWNoIGNvbXBpbGVzIElDVSBi
cmsgYnJlYWtpbmcKKyAgICAgICAgcnVsZXMgaW50byBieXRlY29kZS4gUHJldmlvdXNseSwgdGhp
cyBjb21waWxhdGlvbiB3YXMgZG9uZSBhdCBydW50aW1lIGluc2lkZSB0aGUgSUNVCisgICAgICAg
IHVicmtfb3BlblJ1bGVzKCkgZnVuY3Rpb24uIE1vdmluZyB0aGlzIGNvbXBpbGF0aW9uIHN0ZXAg
dG8gY29tcGlsZSB0aW1lIHJhdGhlciB0aGFuCisgICAgICAgIGJ1aWxkIHRpbWUgY2F1c2VzIGEg
cGVyZm9ybWFuY2UgYm9vc3QuCisKKyAgICAgICAgUHJldmlvdXNseSwgdGhlIHNvdXJjZSBmb3Ig
dGhlIGJyZWFraW5nIHJ1bGVzIHdhcyBhc3NlbWJsZWQgYnkgY29uY2F0ZW5hdGluZyBDIHN0cmlu
Z3MKKyAgICAgICAgYXQgcnVudGltZS4gTm93LCB0aGUgc291cmNlIGlzIGNvbnRhaW5lZCB3aXRo
aW4gYSBmZXcgdGV4dCBmaWxlcyBpbnNpZGUKKyAgICAgICAgd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy4gQSBidWlsZCBzdGVwICh1c2luZyBhIE1ha2VmaWxlKSB3aWxsIGdlbmVyYXRlIHNvdXJjZSBj
b2RlCisgICAgICAgIGNvbnRhaW5pbmcgdGhlc2Ugc3RyaW5ncywgYW5kIFdURiB3aWxsIGluY2x1
ZGUgdGhlc2Ugc291cmNlIGZpbGVzIGluIHRoZSBzYW1lIHdheSBhbnkKKyAgICAgICAgb2Ygb3Vy
IHByb2plY3RzIHVzZSBnZW5lcmF0ZWQgc291cmNlcy4gQWRkaXRpb25hbGx5LCBvbiBPU2VzIHdo
aWNoIHN1cHBvcnQgaXQsIHRoZXNlCisgICAgICAgIHN0cmluZ3MgZ2V0IGNvbXBpbGVkIGRpcmVj
dGx5IGludG8gSUNVIGJ5dGVjb2RlLCBhbmQgdGhlbiBpbmNsdWRlZCBpbiB0aGUgZnJhbWV3b3Jr
CisgICAgICAgIGJ1bmRsZS4gQmVjYXVzZSBXVEYgZ2V0cyBzdGF0aWNhbGx5IGxpbmtlZCBpbnRv
IEphdmFTY3JpcHRDb3JlLCB0aGlzIGlzIHRoZSBidW5kbGUKKyAgICAgICAgd2hpY2ggaW5jbHVk
ZXMgdGhlIGJ5dGVjb2RlIGZpbGVzLgorCisgICAgICAgIEF0IHJ1bnRpbWUsIHdlIGZpcnN0IGNo
ZWNrIGlmIHdlIGhhdmUgYSBmaWxlIGluIG91ciBidW5kbGUgb2YgdGhlIGFwcHJvcHJpYXRlIG5h
bWUsCisgICAgICAgIGFuZCB0aGVuIHNlZSBpZiBJQ1UgY2FuIG9wZW4gaXQgdXNpbmcgaXRzIFJ1
bGVCYXNlZEJyZWFrSXRlcmF0b3IgaW50ZXJmYWNlICh3aGljaAorICAgICAgICBpbmNsdWRlcyBh
IHZlcnNpb24gY2hlY2spLiBJZiBhbnkgb2YgdGhlc2UgY2hlY2tzIGZhaWwsIG9yIGlmIHdlJ3Jl
IG9uIGEgcG9ydCB3aGljaAorICAgICAgICBkb2Vzbid0IGhhdmUgdGhlIG5vdGlvbiBvZiBidW5k
bGVzLCB3ZSB3aWxsIHVzZSB0aGUgQyBzdHJpbmdzIGdlbmVyYXRlZCBhYm92ZSwgYW5kCisgICAg
ICAgIHBhc3MgdGhlbSB0byB1YnJrX29wZW5SdWxlcygpIHRoZSBzYW1lIHdheSB3ZSB3ZXJlIGRv
aW5nIGJlZm9yZSB0aGlzIHBhdGNoLgorCisgICAgICAgIFRoZSBSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yIGludGVyZmFjZSBpbiBJQ1UgcmVxdWlyZXMgYWRkaW5nIHNvbWUgbW9yZSBvZiBJQ1UncyBw
dWJsaWMKKyAgICAgICAgaGVhZGVycyBpbnRvIFdlYktpdC4KKworICAgICAgICAqIFdURi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgYSBuZXcgRGVyaXZlZCBTb3VyY2VzIHRhcmdldCB3
aGljaCB1c2VzIGEKKyAgICAgICAgRGVyaXZlZFNvdXJjZXMubWFrZSBNYWtlZmlsZSwgdGhlIHNh
bWUgd2F5IFdlYktpdDIsIFdlYkNvcmUsIGFuZCBKYXZhU2NyaXB0Q29yZSB3cm9rLgorICAgICAg
ICBBbHNvLCBhZGQgdGhlIHJ1bGVzIHRleHQgZmlsZXMgdG8gdGhlIHByb2plY3QuIFRoZW4sIG1h
a2UgV1RGIGRlcGVuZCBvbiB0aGlzIG5ldworICAgICAgICB0YXJnZXQuCisgICAgICAgICogd3Rm
L0NNYWtlTGlzdHMudHh0OiBBZGQgYnVpbGQgc3RlcHMgZm9yIG90aGVyIHBvcnRzIHRvIGdlbmVy
YXRlIHRoZSBicmVha2luZworICAgICAgICBydWxlcyBzdHJpbmdzIHNvdXJjZSBmaWxlcy4KKyAg
ICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkZWQuIFRoaXMgaXMgdGhlIHBsYWNl
IHdoZXJlIGljdWdlbmJyayBpcyBhY3R1YWxseSAKKyAgICAgICAgaW52b2tlZC4gSXQgYWxzbyB0
cmlnZ2VycyB0aGUgc2NyaXB0IChHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkpIHdoaWNo
IGdlbmVyYXRlcworICAgICAgICB0aGUgQysrIGNvZGUgZm9yIHRoZSBydWxlcyBzdHJpbmdzLgor
ICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0
ZUJyZWFraW5nUnVsZVN0cmluZ3MucHk6IEFkZGVkLiBHZW5lcmF0ZSBDKysuCisgICAgICAgICht
YWluKToKKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
RXBpbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisg
ICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDog
QWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJy
ZWFrSXRlcmF0b3IuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQp
OiBVc2VkIGJ5IG90aGVyIHBvcnRzLiBSZXR1cm5pbmcgbnVsbHB0ciBtZWFucyB3ZSBjYW4ndAor
ICAgICAgICB1c2UgcHJlY29tcGlsZWQgcnVsZXMuCisgICAgICAgIChXVEY6OmNyZWF0ZUN1cnNv
ck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2spOiBVc2VkIGluIHBsYWNlIG9mIHRoZSBoYXJk
Y29kZWQgcnVsZXMKKyAgICAgICAgaW4gY3Vyc29yTW92ZW1lbnRJdGVyYXRvcigpLgorICAgICAg
ICAoV1RGOjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKTogUmVtb3ZlIGhhcmRjb2RlZCBydWxlcy4K
KyAgICAgICAgKFdURjo6bWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMpOiBVcGRhdGUgdG8gdXNl
IHRoZSBuZXcgZ2VuZXJhdGVkIEMrKyBzdHJpbmdzLgorICAgICAgICAoV1RGOjpvcGVuTGluZUJy
ZWFrSXRlcmF0b3IpOiBUaGUgbG9naWMgb2YgdHJ5aW5nIHRvIHVzZSBhIHByZWNvbXBpbGVkIGJ5
dGVjb2RlLCBhbmQgZmFsbGluZworICAgICAgICBiYWNrIHRvIEMrKyBzdHJpbmdzIGlmIGl0IGlz
bid0IHBvc3NpYmxlLgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg6IEhl
YWRlciBmb3IgZ2VuZXJhdGVkIEMrKyBjb2RlLgorICAgICAgICAqIHd0Zi90ZXh0L21hYy9UZXh0
QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAgICAgICAoV1RGOjpicmVha0l0ZXJh
dG9yRnJvbVJlc291cmNlKTogVGhlIGFjdHVhbCBsb2dpYyBmb3IgbG9va2luZyBpbnNpZGUgdGhl
IGJ1bmRsZSBmb3IgdGhlCisgICAgICAgIHByZWNvbXBpbGVkIGJ5dGVjb2RlLgorICAgICAgICAo
V1RGOjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNv
dXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLKTogQ2FsbHMg
YnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAg
ICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSkspOiBDYWxscyBicmVha0l0
ZXJhdG9yRnJvbVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSyk6IENhbGxzIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAg
ICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSyk6IENhbGxzIGJyZWFrSXRl
cmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbE5vbkNKSyk6IENhbGxzIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAg
ICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSyk6IENhbGxzIGJyZWFrSXRl
cmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdE5vbkNKSyk6IENhbGxzIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAg
ICAgKFdURjo6Y3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KTogIENhbGwgdGhlIGFib3ZlIHN0YXRp
YyBmdW5jdGlvbnMuCisKIDIwMTctMDItMDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgUGxheWJhY2sgc3RhbGxzIHdoZW4gYSBTb3VyY2VCdWZmZXIgYXBwZW5k
IGNhdXNlcyBmcmFtZSBldmljdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0
ZGI2NjcyOWE1NTdjMDNjNWNlZTgwOGI2NzExNjNiYjZhZTE5NWU3Li44OGExYjZkMDJjYTE1ZWE5
YTBlOGNjYjIzZmI5YmEwMWZjMjBiOTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTIyOCw2ICsxMjI4LDcgQEAKIAkJMUEyOEQ0QTgxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3Ry
aW5nUmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUEyOEQ0QTcxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVmUHJpdmF0ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBODgyNkIx
NjUzQzRDRDFBNjQyOTgzQiAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5VGFibGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEI0N0YyMzQzNjZDNEI3MkFD
ODUyQTdFIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgKi87IH07CiAJCTFBQ0Y3Mzc3
MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBQ0Y3Mzc2MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCAq
LzsgfTsKKwkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRDE4NzhGMUQ1NTk2
MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovOyB9OwogCQkyNjAwQjVBNjE1MkJBQUE3MDA5
MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9p
bmVyLmNwcCAqLzsgfTsKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9p
bmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAw
QjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLzsgfTsKIAkJMjYyRDg1
QjYxQzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjJEODVCNDFDMEQ2
NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLzsgfTsKQEAg
LTM2NTcsNiArMzY1OCw3IEBACiAJCTFDOTA1MTQ1MEJBOUU4QTcwMDgxRTlEMCAvKiBCYXNlLnhj
Y29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRBMEQzMkMzOUEwMDQxQkNGRiAvKiBK
YXZhU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEIwRDMyQzM5QTAwNDFCQ0ZG
IC8qIEphdmFTY3JpcHRDb3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEph
dmFTY3JpcHRDb3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhGMUQ1
NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZm9sZGVyOyBuYW1lID0gQnJlYWtpbmdSdWxlczsgcGF0
aCA9IC4uL1dURi9CcmVha2luZ1J1bGVzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
NjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdK
b2luZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdKb2luZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYyRDg1QjQxQzBENjUwRjAwNkFDQjYx
IC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBwYXRoID0g
YjMvYWlyL0FpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02MDEzLDYgKzYwMTUsNyBAQAogCQk2NTBGREY4RDA5RDBGQ0E3MDA3NjlF
NTQgLyogRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAq
LywKIAkJCQkwRjYxODMzMjFDNDVGMzVDMDA3MjQ1MEIgLyogQWlyT3Bjb2RlLmggKi8sCiAJCQkJ
MEY2MTgzMzQxQzQ1RjNCNjAwNzI0NTBCIC8qIEFpck9wY29kZUdlbmVyYXRlZC5oICovLAogCQkJ
CTBGNjE4MzM1MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVVdGlscy5oICovLApAQCAtOTQy
MCw2ICs5NDIzLDcgQEAKIAkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJMUNEMTg3OTAxRDU1
OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJCUE1M0Yx
QUMwMThDOTBGOEYwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBiL1Nv
dXJjZS9XVEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTZiMDQ3NjlmY2EzOThhY2M5OTc4NjkyYjc3NzA2NDA1ZWQwNDhhNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkK
QEAgLTAsMCArMSwxMTAgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5cworaW1wb3J0IHJlCisKK2hlYWRl
ciA9ICIiIi8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLyIiIgorCisKK2RlZiBtYWluKGFyZ3Y9Tm9uZSk6CisgICAgaWYgbm90
IGFyZ3Y6CisgICAgICAgIGFyZ3YgPSBzeXMuYXJndgorICAgIGZpbGVOYW1lU3RhcnRJbmRleCA9
IDEKKworICAgIGluY2x1ZGVEZWZpbmVzID0gRmFsc2UKKyAgICBpZiBhcmd2W2ZpbGVOYW1lU3Rh
cnRJbmRleF0gPT0gIi1pbmNsdWRlRGVmaW5lcyI6CisgICAgICAgIGluY2x1ZGVEZWZpbmVzID0g
VHJ1ZQorICAgICAgICBmaWxlTmFtZVN0YXJ0SW5kZXggPSBmaWxlTmFtZVN0YXJ0SW5kZXggKyAx
CisKKyAgICBzeW1ib2xOYW1lID0gYXJndltmaWxlTmFtZVN0YXJ0SW5kZXhdWzBdLmxvd2VyKCkg
KyBhcmd2W2ZpbGVOYW1lU3RhcnRJbmRleF1bMTpdCisgICAgZmlsZU5hbWVTdGFydEluZGV4ID0g
ZmlsZU5hbWVTdGFydEluZGV4ICsgMQorICAgIGZpbGVOYW1lcyA9IGFyZ3ZbZmlsZU5hbWVTdGFy
dEluZGV4Ol0KKworICAgIHByaW50KGhlYWRlcikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgi
Ly8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBi
eSB0aGUgc2NyaXB0IikKKyAgICBwcmludCgiLy8gV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
R2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IikKKyAgICBwcmludCgiIikKKyAgICBwcmlu
dCgiI2luY2x1ZGUgXCJjb25maWcuaFwiIikKKyAgICBwcmludCgiI2luY2x1ZGUgPHVuaWNvZGUv
dXZlcm51bS5oPiIpCisgICAgcHJpbnQoIiIpCisgICAgaWYgaW5jbHVkZURlZmluZXM6CisgICAg
ICAgIHByaW50KCIjZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9T
KSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTEwMCkpIikKKyAgICAgICAgcHJpbnQoIiNkZWZpbmUgSEFWRV9FWFRSQV9JQ1VfTkFNRURf
U0VUUyAoKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01J
Tk9SX05VTSA+PSA5KSkiKQorICAgICAgICBwcmludCgiIikKKyAgICBwcmludCgibmFtZXNwYWNl
IFdURiB7IikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiY29uc3QgY2hhciogIiArIHN5bWJv
bE5hbWUgKyAiID0gIikKKworICAgIGZvciBmaWxlTmFtZSBpbiBmaWxlTmFtZXM6CisgICAgICAg
IGZvciBsIGluIG9wZW4oZmlsZU5hbWUsICdyJyk6CisgICAgICAgICAgICBsaW5lID0gbC5yc3Ry
aXAoKQorICAgICAgICAgICAgaWYgcmUubWF0Y2goIl5ccyokIiwgbGluZSk6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoIiMgIik6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lID09ICIjIjoKKyAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyIpOgorICAg
ICAgICAgICAgICAgIHByaW50KGxpbmUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgIG1hdGNoID0gcmUubWF0Y2goIl4oLiopOyggIyAuKik/JCIsIGxpbmUpCisgICAgICAgICAg
ICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJcIiIgKyBtYXRj
aC5ncm91cCgxKS5yZXBsYWNlKCJcXCIsICJcXFxcIikgKyAiO1wiIgorICAgICAgICAgICAgICAg
ICAgICBpZiBtYXRjaC5ncm91cCgyKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCAr
PSAiIC8vICIgKyBtYXRjaC5ncm91cCgyKVszOl0KKyAgICAgICAgICAgICAgICAgICAgcHJpbnQo
cmVzdWx0KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGV4aXQo
MSkKKworICAgIHByaW50KCI7IikKKyAgICBwcmludCgifSIpCisKK2lmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6CisgICAgc3lzLmV4aXQobWFpbihzeXMuYXJndikpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlNDJlMGE1ZTk5M2RkM2M4MTkyOTIzMGQ1MTYy
NzZiOWYwMTVjMDM5Li45Y2QwZjYzYzY4NjdiYzVjYjI5MmJhMmM4YjNjODk3MmVmMjJiOTgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcsNiArNywxNyBA
QAogCW9iamVjdHMgPSB7CiAKIC8qIEJlZ2luIFBCWEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICov
CisJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJ
CQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0g
MUNEMTg3ODMxRDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovOworCQkJYnVpbGRQaGFzZXMg
PSAoCisJCQkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVyYXRlIERlcml2ZWQgU291
cmNlcyAqLywKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkpOworCQkJbmFtZSA9ICJE
ZXJpdmVkIFNvdXJjZXMiOworCQkJcHJvZHVjdE5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJ
fTsKIAkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi8gPSB7
CiAJCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0
ID0gNjVBRkEyODgxNjMwQjk3NzAwM0Q3MjNDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJDb3B5IFdURiBIZWFkZXJzIiAqLzsKQEAgLTg0LDcgKzk1
LDYgQEAKIAkJMTQ0N0FFQzYxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FF
QzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OwogCQkxNDQ3
QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGli
V1RGLmEgKi87IH07CiAJCTE0NDdBRUM5MThGQ0U1OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDODE4
RkNFNTk0MDBCM0Q3RkYgLyogbWJtYWxsb2MuY3BwICovOyB9OwotCQkxNDQ3QUVDQjE4RkNFNUI5
MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vj
b3JlLmR5bGliICovOyB9OwogCQkxNDY5NDE5MjE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRp
bWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDY5
NDE5MDE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJMTQ2OTQxOTMxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxv
b3BUaW1lckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE0Njk0MTkxMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXJDRi5jcHAgKi87IH07
CiAJCTE0Njk0MTk2MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTk0MTZFQUFGRjgwMDI0
RTE0NiAvKiBTY2hlZHVsZVBhaXIuaCAqLzsgfTsKQEAgLTM0MCw2ICszNTAsMTYgQEAKIAkJQURG
MkNFNjYxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURGMkNFNjQxRTM5RjEwNjAwNjg4OURC
IC8qIE1lbW9yeUZvb3RwcmludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUFERjJDRTY3MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJp
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURG
MkNFNjUxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludC5jcHAgKi87IH07CiAJCUIz
OEZEN0JEMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5
IC8qIEZlYXR1cmVEZWZpbmVzLmggKi87IH07CisJCUMyQkE1NDNFMUQ1ODZBRjQwMDBBMzMzMiAv
KiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIg
Ki87IH07CisJCUMyQ0EzN0U5MUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxl
cy5jcHAgKi87IH07CisJCUMyQ0EzN0VBMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUMxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUQx
RDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTQxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwICovOyB9OworCQlD
MkNBMzdFRTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNB
MzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5j
cHAgKi87IH07CisJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RjAxRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwICovOyB9OworCQlDMkNBMzdGMTFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFODFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAg
Ki87IH07CiAJCUM0RjhBOTM3MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM0RjhBOTM2MTlDNjVFQjQw
MEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLzsgfTsKIAkJQzhCMEUxQTFFMDFBNDg2RUI5NUUwRDEx
IC8qIEluZGV4U2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTM3RTFEN0RCRDg0QUMzOEZBRTREMzQgLyogSW5kZXhTZXQuaCAqLzsgfTsKIAkJQzkx
NkI5NzVGMDJGNEY3RThCNEFCMTJEIC8qIEluZGV4TWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QjQzMzgzQTVEMEI0NjNDOTQzM0Q5MzMgLyogSW5k
ZXhNYXAuaCAqLzsgfTsKQEAgLTM4MSw2ICs0MDEsMTMgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3Ry
aW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdURjsKIAkJ
fTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAq
LyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRh
bCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXBy
b3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1NTY5NUMw
MENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsKIAkJNjVB
RkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJ
CWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3
QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTQ5Miw2ICs1MTks
MTkgQEAKIAkJMUMxODFDOEQxRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVVGV4dFByb3ZpZGVyVVRG
MTYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM4RTFEMzA3QUI4MDBG
NUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZBMTYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElD
VU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRleHRCcmVh
a0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHBhdGggPSBtYWMvVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM2QkUwRkEx
RTAzNEM5QTAwMjE3NjE3IC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5
dGhvbjsgcGF0aCA9IEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NTFE
NTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRG
Qjk4MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4
dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pL
LnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkxRDU1OUFFRjAwRjlG
RTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0OyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUNCNEZCOUMxRDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMgLyog
RGVyaXZlZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMubWFrZTsgcGF0aCA9
IHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1c2VzVGFi
cyA9IDE7IH07CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQ7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RFQyAvKiBM
aW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5l
QnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUZBNDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhy
ZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAwRERCOTA3IC8q
IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNzI0LDYgKzc2NCwxNSBAQAogCQlBREYyQ0U2NDFFMzlGMTA2MDA2ODg5REIgLyog
TWVtb3J5Rm9vdHByaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9y
eUZvb3RwcmludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREYyQ0U2NTFFMzlG
MTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lbW9yeUZvb3RwcmludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHBhdGggPSBCcmVha2luZ1J1
bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTIx
RDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMzFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZU5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U0
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9u
Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTUxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNjFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U3MUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTgxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3ROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNEY4
QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC03NjIsNyArODExLDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0
ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91
bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCQkxNDQ3QUVDQjE4RkNFNUI5
MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovLAorCQkJCUMyQkE1
NDNFMUQ1ODZBRjQwMDBBMzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8s
CiAJCQkJMTQ0N0FFQzcxOEZDRTU4MDAwQjNEN0ZGIC8qIGxpYldURi5hIGluIEZyYW1ld29ya3Mg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBA
IC03OTksNiArODQ4LDMyIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKKwkJMUM2QkUwRjkxRTAzNEMyQTAwMjE3NjE3IC8qIFNjcmlwdHMgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTFDNkJFMEZBMUUwMzRD
OUEwMDIxNzYxNyAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8sCisJCQkpOwor
CQkJcGF0aCA9IFNjcmlwdHM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkx
Q0QxODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVD
IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8sCisJCQkJMUNCNEZCOUMxRDU1
OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovLAorCQkJCTFD
RDE4NzkzMUQ1NTk5NjUwMENDN0RFQyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAq
LywKKwkJCQkxQ0I0RkI5NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NENKSy50eHQgKi8sCisJCQkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZC
OTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0ICov
LAorCQkJCTFDQjRGQjk4MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIy
MzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJ
CTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLnR4dCAqLywKKwkJCSk7CisJCQlwYXRoID0gQnJlYWtpbmdSdWxlczsKKwkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2OEQxQiAvKiBp
b3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtODIxLDkg
Kzg5NiwxMiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1RDI0
N0I2RDE0Njg5QzQ3MDBFNzhCNzYgLyogQ29uZmlndXJhdGlvbnMgKi8sCisJCQkJQzJDQTM3REYx
RDU1QzhEODAwNDg2Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDAyMkYzRjE4RjVD
M0U1MDA3RkYwRUIgLyogTGlicmFyaWVzICovLAogCQkJCTVEMjQ3QjYzMTQ2ODlCODYwMEU3OEI3
NiAvKiBQcm9kdWN0cyAqLywKKwkJCQkxQzZCRTBGOTFFMDM0QzJBMDAyMTc2MTcgLyogU2NyaXB0
cyAqLywKIAkJCQk1RDI0N0I3NjE0Njg5RDc2MDBFNzhCNzYgLyogU291cmNlICovLAorCQkJCTFD
RDE4NzhBMUQ1NThBRDMwMENDN0RFQyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovLAogCQkJCTE0
NDdBRUM1MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKIAkJCQkx
NDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLywKIAkJCSk7CkBA
IC0xMTg1LDYgKzEyNjMsNyBAQAogCQlBOEE0NzMxQjE1MUE4MjVCMDA0MTIzRkYgLyogdGV4dCAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OTEx
RDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJQTVCQTE1RjYxODI0MzU5
RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3Ug
Ki8sCiAJCQkJQTVCQTE1RjExODI0MzM5RjAwQTgyRTY5IC8qIG1hYyAqLywKQEAgLTEyNjMsNiAr
MTM0MiwyMyBAQAogCQkJcGF0aCA9IGljdTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQ0EzN0UwMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovLAorCQkJCUMy
Q0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAq
LywKKwkJCQlDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNDFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi8sCisJCQkJQzJD
QTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
Y3BwICovLAorCQkJCUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTgx
RDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3Bw
ICovLAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXBhdGggPSBEZXJp
dmVkU291cmNlcy9XVEY7CisJCQlzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOworCQl9
OwogCQlDRTQ2NTE2QzE5REIxRkI0MDAzRUNBMDUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTYxNCw2ICsxNzEwLDcgQEAKIAkJCWJ1aWxk
UnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTFDRDE4Nzg4MUQ1NTY5
ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTY1QUZBMjhFMTYzMEI5
OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBX
VEY7CkBAIC0xNjQ0LDEyICsxNzQxLDI3IEBACiAJCQl0YXJnZXRzID0gKAogCQkJCTVEMjQ3QjYx
MTQ2ODlCODYwMEU3OEI3NiAvKiBXVEYgKi8sCiAJCQkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjND
IC8qIENvcHkgV1RGIEhlYWRlcnMgKi8sCisJCQkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8q
IERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVCRDE4RkNFNTY5MDBCM0Q3RkYgLyogbWJt
YWxsb2MgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLworCQkxQ0QxODc4MjFE
NTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNh
ID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4
MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJ
bmFtZSA9ICJHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMiOworCQkJb3V0cHV0UGF0aHMgPSAoCisJ
CQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCQlzaGVs
bFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAibWtkaXIgLXAgXCIke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcbmNkIFwiJHtCVUlMVF9QUk9EVUNUU19E
SVJ9L0Rlcml2ZWRTb3VyY2VzL1dURlwiXG5cbi9iaW4vbG4gLXNmaCBcIiR7U1JDUk9PVH1cIiBX
VEZcbmV4cG9ydCBXVEY9XCJXVEZcIlxuXG5pZiBbICEgLWQgQnJlYWtpbmdSdWxlcyBdOyB0aGVu
XG4gICAgbWtkaXIgQnJlYWtpbmdSdWxlc1xuZmlcblxuaWYgWyBcIiRNQUNPU1hfREVQTE9ZTUVO
VF9UQVJHRVRcIiA9PSBcIjEwLjEwXCIgXSA7IHRoZW5cbiAgICBleHBvcnQgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUPTBcbmVsc2VcbiAgICBleHBvcnQgQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
PTFcbmZpXG5cbmlmIFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMFwi
IF0gfHwgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEwLjExXCIgXSB8fCBb
IFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTJcIiBdIHx8IFsgXCIkU0RL
X1ZFUlNJT05fTUFKT1JcIiA9PSBcIjkwMDAwXCIgXSB8fCBbIFwiJFNES19WRVJTSU9OX01BSk9S
XCIgPT0gXCIxMDAwMDBcIiBdOyB0aGVuXG4gICAgZXhwb3J0IEhBVkVfSUNVR0VOQlJLPTBcbmVs
c2VcbiAgICBleHBvcnQgSEFWRV9JQ1VHRU5CUks9MVxuZmlcblxuaWYgWyBcIiR7QUNUSU9OfVwi
ID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxcIiAtbyBcIiR7QUNUSU9O
fVwiID0gXCJpbnN0YWxsaGRyc1wiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxhcGlcIiBd
OyB0aGVuXG5tYWtlIC0tbm8tYnVpbHRpbi1ydWxlcyAtZiBcIldURi93dGYvRGVyaXZlZFNvdXJj
ZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9PVD1c
IiR7U0RLUk9PVH1cIlxuZmkiOworCQl9OwogCQk2NUFGQTE3MDE2MzBCOTc3MDAzRDcyM0MgLyog
Q29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFz
ZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNzAyLDYgKzE4MTQsNyBA
QAogCQkJCUUxNTU1NkY1MThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDM5MTUxQTgyNUIwMDQxMjNGRiAvKiBDU3Ry
aW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlDMTUxQTgyNUIwMDQxMjNGRiAvKiBD
dXJyZW50VGltZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZC
OTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE4QTQ3MzlFMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRhTG9nLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QTQ3M0EwMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRlTWF0aC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzNBMjE1MUE4MjVCMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTE3MTgsNiArMTgzMSwxNCBAQAogCQkJCTFBMUQ4QjlFMTczMTg3OTgw
MDE0MURBNCAvKiBGdW5jdGlvbkRpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkND
RDg5MkExNUMwMzkwMjAwMjg1MDgzIC8qIEdyZWdvcmlhbkRhdGVUaW1lLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QTQ3M0Q4MTUxQTgyNUIwMDQxMjNGRiAvKiBIYXNoVGFibGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlDMkNBMzdFQzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Q0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0YxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRTE2NDZBMUI2RkZDOTYwMDQwMEU3QyAvKiBMb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGNjBGMzJGMURGQ0JEMUIwMDQxNkQ2QyAvKiBMb2NrZWRQcmludFN0cmVhbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzNFNTE1MUE4MjVCMDA0MTIzRkYgLyogTWFpblRocmVhZC5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTE3OTMsNiArMTkxNCwxMSBAQAogCQkJdGFyZ2V0ID0gNUQyNDdC
NjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FFQzMx
OEZDRTU3MDAwQjNEN0ZGIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJMUNE
MTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlp
c2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1QzAw
Q0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3ODcx
RDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJNjVB
RkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlp
c2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3NzAw
M0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi87CkBAIC0xODIyLDYgKzE5NDgsMzAgQEAKIAkJ
CX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3
REVDIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQli
YXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBE
ZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RV
Q1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9
OworCQkxQ0QxODc4NTFENTU2OTVDMDBDQzdERUMgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9
IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1
RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOworCQkJ
YnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwor
CQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OworCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdE
RUMgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwor
CQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYg
LyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQ
Uk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0
aW9uOworCQl9OwogCQk1RDI0N0I2NDE0Njg5Qjg2MDBFNzhCNzYgLyogRGVidWcgKi8gPSB7CiAJ
CQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJl
bmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAq
LzsKQEAgLTE5MDUsNiArMjA1NSwxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2li
bGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsK
KwkJMUNEMTg3ODMxRDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovID0geworCQkJaXNhID0g
WENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJMUNE
MTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICovLAorCQkJCTFDRDE4Nzg1MUQ1NTY5NUMw
MENDN0RFQyAvKiBSZWxlYXNlICovLAorCQkJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQ
cm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0g
MDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVE
MjQ3QjVDMTQ2ODlCODYwMEU3OEI3NiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBC
WFByb2plY3QgIldURiIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJ
YnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNv
ZGUvdWJyay5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91YnJrLmgKaW5kZXggZTljMGVmNjI3
YjY3Mjc5Zjg2ZTQ2MDQ0YmYwZjI1NzEwMmUwYzZjZC4uMTk3NWI5ZGJlZDQ0M2E5Mjc0MzZmMGEy
NzkyOWJhNThhZjg3MTgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91YnJr
LmgKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91YnJrLmgKQEAgLTI0MSw2ICsyNDEsMzEg
QEAgdWJya19vcGVuUnVsZXMoY29uc3QgVUNoYXIgICAgICpydWxlcywKICAgICAgICAgICAgICAg
IFVFcnJvckNvZGUgICAgICAqc3RhdHVzKTsKIAogLyoqCisgKiBPcGVuIGEgbmV3IFVCcmVha0l0
ZXJhdG9yIGZvciBsb2NhdGluZyB0ZXh0IGJvdW5kYXJpZXMgdXNpbmcgcHJlY29tcGlsZWQgYmlu
YXJ5IHJ1bGVzLgorICogT3BlbmluZyBhIFVCcmVha0l0ZXJhdG9yIHRoaXMgd2F5IGlzIHN1YnN0
YW50aWFsbHkgZmFzdGVyIHRoYW4gdXNpbmcgdWJya19vcGVuUnVsZXMuCisgKiBCaW5hcnkgcnVs
ZXMgbWF5IGJlIG9idGFpbmVkIHVzaW5nIHVicmtfZ2V0QmluYXJ5UnVsZXMuIFRoZSBjb21waWxl
ZCBydWxlcyBhcmUgbm90CisgKiBjb21wYXRpYmxlIGFjcm9zcyBkaWZmZXJlbnQgbWFqb3IgdmVy
c2lvbnMgb2YgSUNVLCBub3IgYWNyb3NzIHBsYXRmb3JtcyBvZiBkaWZmZXJlbnQKKyAqIGVuZGlh
bm5lc3Mgb3IgZGlmZmVyZW50IGJhc2UgY2hhcmFjdGVyIHNldCBmYW1pbHkgKEFTQ0lJIHZzIEVC
Q0RJQykuCisgKiBAcGFyYW0gYmluYXJ5UnVsZXMgQSBzZXQgb2YgY29tcGlsZWQgYmluYXJ5IHJ1
bGVzIHNwZWNpZnlpbmcgdGhlIHRleHQgYnJlYWtpbmcKKyAqICAgICAgICAgICAgICAgICAgICBj
b252ZW50aW9ucy4gT3duZXJzaGlwIG9mIHRoZSBzdG9yYWdlIGNvbnRhaW5pbmcgdGhlIGNvbXBp
bGVkCisgKiAgICAgICAgICAgICAgICAgICAgcnVsZXMgcmVtYWlucyB3aXRoIHRoZSBjYWxsZXIg
b2YgdGhpcyBmdW5jdGlvbi4gVGhlIGNvbXBpbGVkCisgKiAgICAgICAgICAgICAgICAgICAgcnVs
ZXMgbXVzdCBub3QgYmUgbW9kaWZpZWQgb3IgZGVsZXRlZCBkdXJpbmcgdGhlIGxpZmUgb2YgdGhl
CisgKiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaXRlcmF0b3IuCisgKiBAcGFyYW0gcnVsZXNM
ZW5ndGggVGhlIGxlbmd0aCBvZiBiaW5hcnlSdWxlcyBpbiBieXRlczsgbXVzdCBiZSA+PSAwLgor
ICogQHBhcmFtIHRleHQgICAgICAgIFRoZSB0ZXh0IHRvIGJlIGl0ZXJhdGVkIG92ZXIuICBNYXkg
YmUgbnVsbCwgaW4gd2hpY2ggY2FzZQorICogICAgICAgICAgICAgICAgICAgIHVicmtfc2V0VGV4
dCgpIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgdGV4dCB0byBiZSBpdGVyYXRlZC4KKyAqIEBwYXJh
bSB0ZXh0TGVuZ3RoICBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGV4dCwgb3IgLTEgaWYg
bnVsbC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHN0YXR1cyAgICAgIFBvaW50ZXIgdG8gVUVycm9y
Q29kZSB0byByZWNlaXZlIGFueSBlcnJvcnMuCisgKiBAcmV0dXJuICAgICAgICAgICAgVUJyZWFr
SXRlcmF0b3IgZm9yIHRoZSBzcGVjaWZpZWQgcnVsZXMuCisgKiBAc2VlIHVicmtfZ2V0QmluYXJ5
UnVsZXMKKyAqIEBkcmFmdCBJQ1UgNTkKKyAqLworVV9EUkFGVCBVQnJlYWtJdGVyYXRvciogVV9F
WFBPUlQyCit1YnJrX29wZW5CaW5hcnlSdWxlcyhjb25zdCB1aW50OF90ICpiaW5hcnlSdWxlcywg
aW50MzJfdCBydWxlc0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyICog
IHRleHQsIGludDMyX3QgdGV4dExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNv
ZGUgKiAgIHN0YXR1cyk7CisKKy8qKgogICogVGhyZWFkIHNhZmUgY2xvbmluZyBvcGVyYXRpb24K
ICAqIEBwYXJhbSBiaSBpdGVyYXRvciB0byBiZSBjbG9uZWQKICAqIEBwYXJhbSBzdGFja0J1ZmZl
ciA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGFzIG9mIElDVSA1MiwgdXNlIE5VTEwuPC9l
bT48YnI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDgxYWY5MTI3NjEwNmI4MTI4OTE3ZGI4Yzc5
Y2YyNTRiMmU0ZDhjZjAuLmQ5MGUwZjM4ZWMzZDhmNTgzNjA2NzJlNmFjOGQ5ZTcwOGExOThlZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
VEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC0zMDEsNiArMzAxLDQyIEBAIGlmIChOT1QgVVNFX1NZ
U1RFTV9NQUxMT0MpCiAgICAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUyBibWFsbG9jKQogZW5k
aWYgKCkKIAorc2V0KFdURl9CUkVBS0lOR19SVUxFU19TT1VSQ0VTCisgICAgdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dAorICAgIHRleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dAorICAgIHRleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dAorICAgIHRleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dAorICAg
IHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dAor
ICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LnR4dAorKQorCittYWNybyhHRU5FUkFURV9CUkVBS0lOR19SVUxFUyBfaW5wdXQgX3N5bWJvbE5h
bWUgX291dHB1dCkKKyAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgICAgIE9VVFBVVCAke19v
dXRwdXR9CisgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke1dURl9ESVJ9L1NjcmlwdHMvR2VuZXJh
dGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CisgICAgICAgIERFUEVORFMgJHtDTUFLRV9DVVJSRU5U
X1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3Vl
LnR4dCAke19pbnB1dH0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorICAgICAgICBDT01NQU5EICR7UFlU
SE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0
cmluZ3MucHkgLWluY2x1ZGVEZWZpbmVzICR7X3N5bWJvbE5hbWV9UnVsZXMgJHtDTUFLRV9DVVJS
RU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xv
Z3VlLnR4dCAke19pbnB1dH0gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCA+ICR7X291dHB1dH0KKyAgICAg
ICAgVkVSQkFUSU0pCisgICAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMgJHtfb3V0cHV0fSkKKyAg
ICBBRERfU09VUkNFX0RFUEVOREVOQ0lFUygke19pbnB1dH0gJHtfb3V0cHV0fSkKK2VuZG1hY3Jv
KCkKKworZm9yZWFjaCAoX2ZpbGUgJHtXVEZfQlJFQUtJTkdfUlVMRVNfU09VUkNFU30pCisgICAg
Z2V0X2ZpbGVuYW1lX2NvbXBvbmVudChfbmFtZSAke19maWxlfSBOQU1FX1dFKQorICAgIEdFTkVS
QVRFX0JSRUFLSU5HX1JVTEVTKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8ke19maWxlfSAk
e19uYW1lfSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzLyR7X25hbWV9
LmNwcCkKK2VuZGZvcmVhY2ggKCkKKworYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAk
e0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy5jcHAKKyAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElSfS9TY3JpcHRzL0dl
bmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQorICAgIERFUEVORFMgJHtDTUFLRV9DVVJSRU5U
X1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMudHh0CisgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dURl9ESVJ9L1Njcmlw
dHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IC1pbmNsdWRlRGVmaW5lcyBjdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJl
YWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ID4gJHtERVJJVkVEX1NP
VVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwCisgICAgVkVSQkFUSU0pCitsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke0RFUklWRURfU09V
UkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5j
cHApCitBRERfU09VUkNFX0RFUEVOREVOQ0lFUygke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0v
dGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgJHtERVJJ
VkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMuY3BwKQorCiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHVuaWNvZGUvaWN1L0Nv
bGxhdG9ySUNVLmNwcAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJj
ZXMubWFrZSBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmMyNGFhNjQxYjIxNzhjZjcyZjZmMGJkZWFhMTRjM2Y4MzEzODQ5MQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTAsMCArMSw3MiBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworQlJFQUtJTkdfUlVMRVNfRklM
RVMgPSBcCisgICAgQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuYnJr
IFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuYnJrIFwKKyAg
ICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuYnJrIFwKKyAgICBC
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5icmsgXAorICAgIEJy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmJyayBcCisgICAg
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmJyayBcCisgICAg
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmJyayBcCisg
ICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmJyayBcCisg
ICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmJyawor
CitCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUz0kKEJSRUFLSU5HX1JVTEVTX0ZJTEVTOi5icms9
LmNwcCkKKworaWZlcSAoJChzaGVsbCAkKENDKSAtc3RkPWdudSsrMTEgLXggYysrIC1FIC1QIC1k
TSAkKFNES19GTEFHUykgJChGUkFNRVdPUktfRkxBR1MpICQoSEVBREVSX0ZMQUdTKSAtSSAkKFdU
RikgLWluY2x1ZGUgIiQoV1RGKS93dGYvUGxhdGZvcm0uaCIgL2Rldi9udWxsIHwgZ3JlcCAnIFdU
Rl9QTEFURk9STV9JT1MgJyB8IGN1dCAtZCcgJyAtZjMpLCAxKQorICAgIFdURl9QTEFURk9STV9J
T1MgPSAxCitlbHNlCisgICAgV1RGX1BMQVRGT1JNX0lPUyA9IDAKK2VuZGlmCisKK2lmZXEgKCQo
V1RGX1BMQVRGT1JNX0lPUyksIDEpCisJQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJT
T1JfTU9WRU1FTlQgPSAwCisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyA9IDAKK2Vsc2UKKwlB
RERJVElPTkFMX0VNT0pJX1NVUFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVOVCA9ICQoQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUKQorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAxCitlbmRpZgor
CitERVBFTkRFTkNJRVMgPSAkKEJSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TKQorCitpZmVxICgk
KEhBVkVfSUNVR0VOQlJLKSwgMSkKK0RFUEVOREVOQ0lFUyArPSAkKEJSRUFLSU5HX1JVTEVTX0ZJ
TEVTKQorZW5kaWYKKworYWxsIDogJChERVBFTkRFTkNJRVMpCisKK0JyZWFraW5nUnVsZXMvJS5i
cmsgOiBCcmVha2luZ1J1bGVzLyUucHAKKwlpY3VnZW5icmsgLWMgLXIgJDwgLW8gJEAKKworQnJl
YWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIDogQnJlYWtpbmdSdWxl
cy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMucHAKKwlweXRob24gJChXVEYpL1NjcmlwdHMv
R2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxl
cyAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLmNwcCA6IEJyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwCisJcHl0aG9uICQoV1RGKS9TY3JpcHRzL0dl
bmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBsaW5lQnJlYWtJdGVyYXRvciQqUnVsZXMgJDwg
PiAkQAorCitCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcCA6ICQo
V1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50
eHQKKwktdW5pZmRlZiAtREFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0kKEFERElUSU9OQUxfRU1P
SklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5UKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NF
VFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQCAkPAorCitCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yJS5wcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yJS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKKwktY2F0ICQ/IHwgdW5pZmRlZiAtREFERElUSU9O
QUxfRU1PSklfU1VQUE9SVD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCkgLURIQVZFX0VYVFJB
X0lDVV9OQU1FRF9TRVRTPSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUykgLW8gJEAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGRhYjhiNTc1Zjk1YzYyN2Y1
ODk1ZTIzY2NkNGIxYTExMDVlYjhkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0CkBAIC0w
LDAgKzEsMTc2IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENv
cHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFRoaXMgcnVsZSBzZXQgaXMgYmFzZWQgb24g
Y2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NworIyA8aHR0cDovL3NvdXJj
ZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2Uv
ZGF0YS9icmtpdHIvPi4KKyMgVGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFs
IG9uZXMgYXJlIGxpc3RlZCBiZWxvdzoKKyMgKiBSZXBsYWNlZCAnW1xwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBTcGFjaW5nTWFya31dJyB3aXRoICdbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNw
YWNpbmcgTWFya30gLSAkRXh0ZW5kXScgZm9yIElDVSAzLjggb3IgZWFybGllcjsKKyMgKiBSZW1v
dmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5k
IGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7CisjICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEg
Y3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFnZXMg
ZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7CisjICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2
ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGJlZm9yZSBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFr
YXJhIHZvaWNlZCBtYXJrcy4KKyMgKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9y
IHN5bWJvbHMuCisKKyRDUiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1d
OworJExGICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExGfV07CiskQ29udHJv
bCA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOworJFZvaWNlTWFya3Mg
PSBbXHVGRjlFXHVGRjlGXTsgIyBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBt
YXJrcworJEV4dGVuZCAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZv
aWNlTWFya3MgLSBbXHUwRTMwIFx1MEUzMiBcdTBFNDUgXHUwRUIwIFx1MEVCMl1dOworJFNwYWNp
bmdNYXJrID0gW1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfV0gLSAkRXh0ZW5k
XTsKKyRMICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07CiskViAgICAg
ICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOworJFQgICAgICAgPSBbXHB7R3Jh
cGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFR9XTsKKyRMViAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBMVn1dOworJExWVCAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9
IExWVH1dOworJEhpbjAgICAgPSBbXHUwOTA1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIg
QSwuLi4sSGEKKyRIaW5WICAgID0gXHUwOTREOyAjIERldmFuYWdhcmkgU2lnbiBWaXJhbWEKKyRI
aW4xICAgID0gW1x1MDkxNS1cdTA5MzldOyAjIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQor
JEJlbjAgICAgPSBbXHUwOTg1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEKKyRC
ZW5WICAgID0gXHUwOUNEOyAjIEJlbmdhbGkgU2lnbiBWaXJhbWEKKyRCZW4xICAgID0gW1x1MDk5
NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVyIEthLC4uLixIYQorJFBhbjAgICAgPSBbXHUwQTA1
LVx1MEEzOV07ICMgR3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCiskUGFuViAgICA9IFx1MEE0RDsg
IyBHdXJtdWtoaSBTaWduIFZpcmFtYQorJFBhbjEgICAgPSBbXHUwQTE1LVx1MEEzOV07ICMgR3Vy
bXVraGkgTGV0dGVyIEthLC4uLixIYQorJEd1ajAgICAgPSBbXHUwQTg1LVx1MEFCOV07ICMgR3Vq
YXJhdGkgTGV0dGVyIEEsLi4uLEhhCiskR3VqViAgICA9IFx1MEFDRDsgIyBHdWphcmF0aSBTaWdu
IFZpcmFtYQorJEd1ajEgICAgPSBbXHUwQTk1LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0dGVyIEth
LC4uLixIYQorJE9yaTAgICAgPSBbXHUwQjA1LVx1MEIzOV07ICMgT3JpeWEgTGV0dGVyIEEsLi4u
LEhhCiskT3JpViAgICA9IFx1MEI0RDsgIyBPcml5YSBTaWduIFZpcmFtYQorJE9yaTEgICAgPSBb
XHUwQjE1LVx1MEIzOV07ICMgT3JpeWEgTGV0dGVyIEthLC4uLixIYQorJFRlbDAgICAgPSBbXHUw
QzA1LVx1MEMzOV07ICMgVGVsdWd1IExldHRlciBBLC4uLixIYQorJFRlbFYgICAgPSBcdTBDNEQ7
ICMgVGVsdWd1IFNpZ24gVmlyYW1hCiskVGVsMSAgICA9IFtcdTBDMTQtXHUwQzM5XTsgIyBUZWx1
Z3UgTGV0dGVyIEthLC4uLixIYQorJEthbjAgICAgPSBbXHUwQzg1LVx1MENCOV07ICMgS2FubmFk
YSBMZXR0ZXIgQSwuLi4sSGEKKyRLYW5WICAgID0gXHUwQ0NEOyAjIEthbm5hZGEgU2lnbiBWaXJh
bWEKKyRLYW4xICAgID0gW1x1MEM5NS1cdTBDQjldOyAjIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhh
CiskTWFsMCAgICA9IFtcdTBEMDUtXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhh
IAorJE1hbFYgICAgPSBcdTBENEQ7ICMgTWFsYXlhbGFtIFNpZ24gVmlyYW1hCiskTWFsMSAgICA9
IFtcdTBEMTUtXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCiskUkkgICAgICA9
IFtcVTAwMDFGMUU2LVxVMDAwMUYxRkZdOyAjIEVtb2ppIHJlZ2lvbmFsIGluZGljYXRvcnMKKyRa
V0ogICAgID0gXHUyMDBEOyAjIFplcm8gd2lkdGggam9pbmVyCiskRW1vamlWYXIgPSBbXHVGRTBG
XTsgIyBFbW9qaS1zdHlsZSB2YXJpYXRpb24gc2VsZWN0b3IKKworI2lmIEFERElUSU9OQUxfRU1P
SklfU1VQUE9SVAorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI2NDAgXHUyNjQyIFx1MjZGOSBc
dTI3NjQgXFUwMDAxRjMwOCBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQS1cVTAwMDFG
M0NDIFxVMDAwMUYzRjMgXFUwMDAxRjQ0MSBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2
RS1cVTAwMDFGNDZGIFxVMDAwMUY0NzEgXFUwMDAxRjQ3MyBcVTAwMDFGNDc3IFxVMDAwMUY0ODEt
XFUwMDAxRjQ4MiBcVTAwMDFGNDg2LVxVMDAwMUY0ODcgXFUwMDAxRjQ4QiBcVTAwMDFGNTc1IFxV
MDAwMUY1RTggXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEIgXFUwMDAxRjY0RC1cVTAw
MDFGNjRFIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFx1MjY5NS1cdTI2OTYgXHUy
NzA4IFxVMDAwMUYzM0UgXFUwMDAxRjM3MyBcVTAwMDFGMzkzIFxVMDAwMUYzQTQgXFUwMDAxRjNB
OCBcVTAwMDFGM0VCIFxVMDAwMUYzRUQgXFUwMDAxRjRCQi1cVTAwMDFGNEJDIFxVMDAwMUY1Mjcg
XFUwMDAxRjUyQyBcVTAwMDFGNjgwIFxVMDAwMUY2OTIgXFUwMDAxRjkyNiBcVTAwMDFGOTM3LVxV
MDAwMUY5MzkgXFUwMDAxRjkzQy1cVTAwMDFGOTNFXTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRl
IGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI2RjkgXHUy
NzBBLVx1MjcwRCBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxV
MDAwMUYzQ0IgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAw
MDFGNDY2LVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAx
RjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU3NSBcVTAwMDFGNTkwIFxVMDAwMUY1
OTUgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRG
IFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzAgXFUwMDAxRjkxOCBc
VTAwMDFGM0MyIFxVMDAwMUYzQzcgXFUwMDAxRjNDQyBcVTAwMDFGNTc0IFxVMDAwMUY1N0EgXFUw
MDAxRjZDQyBcVTAwMDFGOTE5LVxVMDAwMUY5MUUgXFUwMDAxRjkyNiBcVTAwMDFGOTMwIFxVMDAw
MUY5MzMtXFUwMDAxRjkzOSBcVTAwMDFGOTNDLVxVMDAwMUY5M0VdIDsgIyBFbW9qaSB0aGF0IHRh
a2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JTZXFzID0g
W1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ4Ql07ICMgRW1vamkgdGhhdCBw
YXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQg
XHUyNzBBLVx1MjcwQyBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0M3
IFxVMDAwMUYzQ0EgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBc
VTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUw
MDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAw
MUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFG
NkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwXSA7ICMgRW1vamkgdGhhdCB0YWtl
IEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFG
M0ZCLVxVMDAwMUYzRkZdOyAjIEZpdHpwYXRyaWNrIG1vZGlmaWVycworISFjaGFpbjsKKworI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgISFSSU5vQ2hhaW47CisKKyNlbmRpZgor
CishIWZvcndhcmQ7CiskQ1IgJExGOworJEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsKKygkTFYg
fCAkVikgKCRWIHwgJFQpOworKCRMVlQgfCAkVCkgJFQ7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKKworICAgICRSSSAkUkkgJEV4dGVuZCogLyAkUkk7CisgICAgJFJJICRSSSAkRXh0
ZW5kKjsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7CisgICAgW14kQ29udHJvbCAk
Q1IgJExGXSAkU3BhY2luZ01hcms7CisKKyNlbHNlCisKKyAgICBbXiRDb250cm9sICRDUiAkTEZd
ICRFeHRlbmQ7CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7CisgICAgJFJJ
ICRSSSAvICRSSTsKKyAgICAkUkkgJFJJOworCisjZW5kaWYKKworJEhpbjAgJEhpblYgJEhpbjE7
ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCiskQmVuMCAkQmVuViAkQmVuMTsgIyBCZW5n
YWxpIFZpcmFtYSAoZm9yd2FyZCkKKyRQYW4wICRQYW5WICRQYW4xOyAjIEd1cm11a2hpIFZpcmFt
YSAoZm9yd2FyZCkKKyRHdWowICRHdWpWICRHdWoxOyAjIEd1amFyYXRpIFZpcmFtYSAoZm9yd2Fy
ZCkKKyRPcmkwICRPcmlWICRPcmkxOyAjIE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKKyRUZWwwICRU
ZWxWICRUZWwxOyAjIFRlbHVndSBWaXJhbWEgKGZvcndhcmQpCiskS2FuMCAkS2FuViAkS2FuMTsg
IyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKKyRNYWwwICRNYWxWICRNYWwxOyAjIE1hbGF5YWxh
bSBWaXJhbWEgKGZvcndhcmQpCiskWldKICRFbW9qaUZvclNlcXM7ICMgRG9udCBicmVhayBpbiBl
bW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsg
IyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0
aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKyEhcmV2ZXJzZTsKKyRMRiAk
Q1I7CisoJEwgfCAkViB8ICRMViB8ICRMVlQpICRMOworKCRWIHwgJFQpICgkTFYgfCAkVik7Cisk
VCAoJExWVCB8ICRUKTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEV4
dGVuZCogJFJJICRSSSAvICRFeHRlbmQqICRSSSAkUkk7CisgICAgJEV4dGVuZCogJFJJICRSSTsK
KyAgICAkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkU3BhY2luZ01hcmsg
W14kQ29udHJvbCAkQ1IgJExGXTsKKworI2Vsc2UKKworICAgICRFeHRlbmQgICAgICBbXiRDb250
cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOworICAg
ICRSSSAkUkkgLyAkUkkgJFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMSAkSGlu
ViAkSGluMDsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCiskQmVuMSAkQmVuViAkQmVu
MDsgIyBCZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQpCiskUGFuMSAkUGFuViAkUGFuMDsgIyBHdXJt
dWtoaSBWaXJhbWEgKGJhY2t3YXJkKQorJEd1ajEgJEd1alYgJEd1ajA7ICMgR3VqYXJhdGkgVmly
YW1hIChiYWNrd2FyZCkKKyRPcmkxICRPcmlWICRPcmkwOyAjIEd1amFyYXRpIFZpcmFtYSAoYmFj
a3dhcmQpCiskVGVsMSAkVGVsViAkVGVsMDsgIyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKKyRL
YW4xICRLYW5WICRLYW4wOyAjIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKKyRNYWwxICRNYWxW
ICRNYWwwOyAjIE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3YXJkKQorJEVtb2ppRm9yU2VxcyAkWldK
OyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2ppTW9kcyAkRW1vamlW
YXI/ICRFbW9qaUZvck1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChw
b3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVy
CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICEhc2FmZV9yZXZlcnNlOwor
ICAgICRSSSAkUkkrOworICAgIFskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7
CisgICAgISFzYWZlX2ZvcndhcmQ7CisgICAgJFJJICRSSSs7CisgICAgJEVtb2ppRm9yTW9kcyBb
JEVtb2ppVmFyICRFbW9qaU1vZHNdKzsKKworI2Vsc2UKKworICAgIFskRW1vamlWYXIgJEVtb2pp
TW9kc10rICRFbW9qaUZvck1vZHM7CisgICAgJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9q
aU1vZHNdKzsKKyAgICAhIXNhZmVfcmV2ZXJzZTsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRiMDg4ZDUwMDE0
MmQyOWJkZDIwNWUzMTgwM2RmODRhNTJiMDJiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApA
QCAtMCwwICsxLDM3MiBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQor
IyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
IyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEFJID0gWzpMaW5lQnJlYWsgPSBBbWJp
Z3VvdXM6XTsKKyRBTCA9IFs6TGluZUJyZWFrID0gQWxwaGFiZXRpYzpdOworJEJBID0gW1s6TGlu
ZUJyZWFrID0gQnJlYWtfQWZ0ZXI6XSAtICRCQV9TVUJdOworJEJCID0gWzpMaW5lQnJlYWsgPSBC
cmVha19CZWZvcmU6XTsKKyRCSyA9IFs6TGluZUJyZWFrID0gTWFuZGF0b3J5X0JyZWFrOl07Cisk
QjIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JvdGg6XTsKKyRDQiA9IFs6TGluZUJyZWFrID0gQ29u
dGluZ2VudF9CcmVhazpdOworJENMID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QdW5jdHVhdGlvbjpd
OworJENNID0gWzpMaW5lQnJlYWsgPSBDb21iaW5pbmdfTWFyazpdOworJENQID0gWzpMaW5lQnJl
YWsgPSBDbG9zZV9QYXJlbnRoZXNpczpdOworJENSID0gWzpMaW5lQnJlYWsgPSBDYXJyaWFnZV9S
ZXR1cm46XTsKKyRFWCA9IFtbOkxpbmVCcmVhayA9IEV4Y2xhbWF0aW9uOl0gLSAkRVhfU1VCXTsK
KyRHTCA9IFs6TGluZUJyZWFrID0gR2x1ZTpdOworCisjaWYgSEFWRV9FWFRSQV9JQ1VfTkFNRURf
U0VUUworCisgICAgJEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdfTGV0dGVyOl07CisKKyNlbHNl
CisKKyAgICAkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1dOworCisjZW5kaWYKKworJEhZ
ID0gWzpMaW5lQnJlYWsgPSBIeXBoZW46XTsKKyRIMiA9IFs6TGluZUJyZWFrID0gSDI6XTsKKyRI
MyA9IFs6TGluZUJyZWFrID0gSDM6XTsKKyRJRCA9IFtbW1s6TGluZUJyZWFrID0gSWRlb2dyYXBo
aWM6XSAtICRDSl0gJElEX0FERF0gLSAkSURfU1VCXTsKKyRJTiA9IFtbOkxpbmVCcmVhayA9IElu
c2VwYXJhYmxlOl0gLSAkSU5fU1VCXTsKKyRJUyA9IFtbOkxpbmVCcmVhayA9IEluZml4X051bWVy
aWM6XSAtICRJU19TVUJdOworJEpMID0gWzpMaW5lQnJlYWsgPSBKTDpdOworJEpWID0gWzpMaW5l
QnJlYWsgPSBKVjpdOworJEpUID0gWzpMaW5lQnJlYWsgPSBKVDpdOworJExGID0gWzpMaW5lQnJl
YWsgPSBMaW5lX0ZlZWQ6XTsKKyROTCA9IFs6TGluZUJyZWFrID0gTmV4dF9MaW5lOl07CiskTlMg
PSBbW1tbOkxpbmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRDSl0gJE5TX0FERF0gLSAkTlNfU1VC
XTsKKyROVSA9IFs6TGluZUJyZWFrID0gTnVtZXJpYzpdOworJE9QID0gWzpMaW5lQnJlYWsgPSBP
cGVuX1B1bmN0dWF0aW9uOl07CiskUE8gPSBbWzpMaW5lQnJlYWsgPSBQb3N0Zml4X051bWVyaWM6
XSAtICRQT19TVUJdOworJFBSID0gW1s6TGluZUJyZWFrID0gUHJlZml4X051bWVyaWM6XSAtICRQ
Ul9TVUJdOworJFFVID0gWzpMaW5lQnJlYWsgPSBRdW90YXRpb246XTsKKyRSSSA9IFtcVTAwMDFG
MUU2LVxVMDAwMUYxRkZdOworJFNBID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsK
KyRTRyA9IFs6TGluZUJyZWFrID0gU3Vycm9nYXRlOl07CiskU1AgPSBbOkxpbmVCcmVhayA9IFNw
YWNlOl07CiskU1kgPSBbOkxpbmVCcmVhayA9IEJyZWFrX1N5bWJvbHM6XTsKKyRXSiA9IFs6TGlu
ZUJyZWFrID0gV29yZF9Kb2luZXI6XTsKKyRYWCA9IFs6TGluZUJyZWFrID0gVW5rbm93bjpdOwor
JFpXID0gWzpMaW5lQnJlYWsgPSBaV1NwYWNlOl07CiskWldKID0gXHUyMDBEOworJEVtb2ppVmFy
ID0gXHVGRTBGOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRW1vamlG
b3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBcVTAwMDFGMzA4IFxVMDAwMUYz
QzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAwMUYzQ0MgXFUwMDAxRjNGMyBcVTAwMDFGNDQx
IFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NkYgXFUwMDAxRjQ3MSBc
VTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4MS1cVTAwMDFGNDgyIFxVMDAwMUY0ODYtXFUw
MDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUgXFUwMDAxRjVFOCBcVTAwMDFGNjQ1LVxVMDAw
MUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxVMDAwMUY2NEUgXFUwMDAxRjZBMyBcVTAwMDFG
NkI0LVxVMDAwMUY2QjYgXHUyNjk1LVx1MjY5NiBcdTI3MDggXFUwMDAxRjMzRSBcVTAwMDFGMzcz
IFxVMDAwMUYzOTMgXFUwMDAxRjNBNCBcVTAwMDFGM0E4IFxVMDAwMUYzRUIgXFUwMDAxRjNFRCBc
VTAwMDFGNEJCLVxVMDAwMUY0QkMgXFUwMDAxRjUyNyBcVTAwMDFGNTJDIFxVMDAwMUY2ODAgXFUw
MDAxRjY5MiBcVTAwMDFGOTI2IFxVMDAwMUY5MzctXFUwMDAxRjkzOSBcVTAwMDFGOTNDLVxVMDAw
MUY5M0VdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRF
bW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUyNzBEIFxVMDAwMUYzODUgXFUw
MDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EgXFUwMDAxRjNDQiBcVTAwMDFGNDQyLVxVMDAw
MUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ3OCBcVTAwMDFG
NDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRB
QSBcVTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUt
XFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxV
MDAwMUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4IFxVMDAwMUYzQzIgXFUwMDAxRjNDNyBcVTAw
MDFGM0NDIFxVMDAwMUY1NzQgXFUwMDAxRjU3QSBcVTAwMDFGNkNDIFxVMDAwMUY5MTktXFUwMDAx
RjkxRSBcVTAwMDFGOTI2IFxVMDAwMUY5MzAgXFUwMDAxRjkzMy1cVTAwMDFGOTM5IFxVMDAwMUY5
M0MtXFUwMDAxRjkzRV07ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwor
CisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAwMDFG
NDY5IFxVMDAwMUY0OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjcwQS1cdTI3
MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDNyBcVTAwMDFGM0NB
IFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1c
VTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUw
MDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTk2IFxVMDAw
MUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFG
NkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF07ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNr
IG1vZGlmaWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYz
RkZdOworJGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOworJEFM
UGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsKKyRBTGNtID0gJEFMUGx1cyAkQ00qOworJEJB
Y20gPSAkQkEgJENNKjsKKyRCQmNtID0gJEJCICRDTSo7CiskQjJjbSA9ICRCMiAkQ00qOworJENM
Y20gPSAkQ0wgJENNKjsKKyRDUGNtID0gJENQICRDTSo7CiskRVhjbSA9ICRFWCAkQ00qOworJEdM
Y20gPSAkR0wgJENNKjsKKyRITGNtID0gJEhMICRDTSo7CiskSFljbSA9ICRIWSAkQ00qOworJEgy
Y20gPSAkSDIgJENNKjsKKyRIM2NtID0gJEgzICRDTSo7CiskSURjbSA9ICRJRCAkQ00qOworJElO
Y20gPSAkSU4gJENNKjsKKyRJU2NtID0gJElTICRDTSo7CiskSkxjbSA9ICRKTCAkQ00qOworJEpW
Y20gPSAkSlYgJENNKjsKKyRKVGNtID0gJEpUICRDTSo7CiskTlNjbSA9ICROUyAkQ00qOworJE5V
Y20gPSAkTlUgJENNKjsKKyRPUGNtID0gJE9QICRDTSo7CiskUE9jbSA9ICRQTyAkQ00qOworJFBS
Y20gPSAkUFIgJENNKjsKKyRRVWNtID0gJFFVICRDTSo7CiskUkljbSA9ICRSSSAkQ00qOworJFNZ
Y20gPSAkU1kgJENNKjsKKyRXSmNtID0gJFdKICRDTSo7CisKKyEhZm9yd2FyZDsKKyRDQU5fQ00g
PSBbXiRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07CiskQ0FOVF9DTSA9IFskU1AgJEJLICRD
UiAkTEYgJE5MICRaVyAkQ01dOworJEFMX0ZPTExPV19OT0NNID0gWyRCSyAkQ1IgJExGICROTCAk
WlcgJFNQXTsKKyRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVggJEhMICRJUyAkU1kgJFdKICRH
TCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107CiskQUxfRk9MTE9XID0gWyRB
TF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsKKyRMQjRCcmVha3MgPSBbJEJLICRDUiAkTEYg
JE5MXTsKKyRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICROTF07CiskTEI4QnJlYWtzID0g
WyRMQjRCcmVha3MgJFpXXTsKKyRMQjhOb25CcmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRa
V11dOworJExCMThOb25CcmVha3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsKKyRMQjE4QnJl
YWtzID0gWyRMQjhCcmVha3MgJFNQXTsKKyRMQjIwTm9uQnJlYWtzID0gWyRMQjE4Tm9uQnJlYWtz
IC0gJENCXTsKKyRBTFBsdXMgJENNKzsKKyRCQSAkQ00rOworJEJCICRDTSs7CiskQjIgJENNKzsK
KyRDTCAkQ00rOworJENQICRDTSs7CiskRVggJENNKzsKKyRHTCAkQ00rOworJEhMICRDTSs7Cisk
SFkgJENNKzsKKyRIMiAkQ00rOworJEgzICRDTSs7CiskSUQgJENNKzsKKyRJTiAkQ00rOworJElT
ICRDTSs7CiskSkwgJENNKzsKKyRKViAkQ00rOworJEpUICRDTSs7CiskTlMgJENNKzsKKyROVSAk
Q00rOworJE9QICRDTSs7CiskUE8gJENNKzsKKyRQUiAkQ00rOworJFFVICRDTSs7CiskUkkgJENN
KzsKKyRTWSAkQ00rOworJFdKICRDTSs7CiskQ1IgJExGIHsxMDB9OworJExCNE5vbkJyZWFrcz8g
JExCNEJyZWFrcyB7MTAwfTsKKyRDQU5fQ00gJENNKiAkTEI0QnJlYWtzIHsxMDB9OworJENNKyAk
TEI0QnJlYWtzIHsxMDB9OworJExCNE5vbkJyZWFrcyBbJFNQICRaV107CiskQ0FOX0NNICRDTSog
WyRTUCAkWlddOworJENNKyBbJFNQICRaV107CiskRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVt
b2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFzOworJENBTl9DTSAkQ00rOworJENNKzsKKyRDQU5f
Q00gJENNKiAkV0pjbTsKKyRMQjhOb25CcmVha3MgJFdKY207CiskQ00rICRXSmNtOworJFdKY20g
JENBTlRfQ007CiskV0pjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOX0NNICRDTSo7CiskR0xj
bSAkQ0FOVF9DTTsKK1tbJExCOE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNt
OworJENNKyBHTGNtOworJExCOE5vbkJyZWFrcyAkQ0w7CiskQ0FOX0NNICRDTSogJENMOworJENN
KyAkQ0w7CiskTEI4Tm9uQnJlYWtzICRDUDsKKyRDQU5fQ00gJENNKiAkQ1A7CiskQ00rICRDUDsK
KyRMQjhOb25CcmVha3MgJEVYOworJENBTl9DTSAkQ00qICRFWDsKKyRDTSsgJEVYOworJExCOE5v
bkJyZWFrcyAkSVM7CiskQ0FOX0NNICRDTSogJElTOworJENNKyAkSVM7CiskTEI4Tm9uQnJlYWtz
ICRTWTsKKyRDQU5fQ00gJENNKiAkU1k7CiskQ00rICRTWTsKKyRPUGNtICRTUCogJENBTl9DTSAk
Q00qOworJE9QY20gJFNQKiAkQ0FOVF9DTTsKKyRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsK
KyRRVWNtICRTUCogJE9QY207CisoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsKKyRCMmNtICRT
UCogJEIyY207CiskTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOworJENNKyAkUVVjbTsKKyRRVWNt
IC4/OworJFFVY20gJExCMThOb25CcmVha3MgJENNKjsKKyRMQjIwTm9uQnJlYWtzICRDTSogKCRC
QWNtIHwgJEhZY20gfCAkTlNjbSk7IAorJEJCY20gW14kQ0JdOworJEJCY20gJExCMjBOb25CcmVh
a3MgJENNKjsKKyRITGNtICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OworJFNZY20gJEhMY207Ciso
JEFMY20gfCAkSExjbSkgJElOY207CiskQ00rICRJTmNtOworJEVYY20gJElOY207CiskSURjbSAk
SU5jbTsKKyRJTmNtICRJTmNtOworJE5VY20gJElOY207CiskSURjbSAkUE9jbTsKKyRBTGNtICRO
VWNtOworJEhMY20gJE5VY207CiskQ00rICROVWNtOworJE5VY20gJEFMY207CiskTlVjbSAkSExj
bTsKKyRQUmNtICRJRGNtOworJFBSY20gKCRBTGNtIHwgJEhMY20pOworJFBPY20gKCRBTGNtIHwg
JEhMY20pOworKCRQUmNtIHwgJFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8
ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87CiskSkxj
bSAoJEpMY20gfCAkSlZjbSB8ICRIMmNtIHwgJEgzY20pOworKCRKVmNtIHwgJEgyY20pICgkSlZj
bSB8ICRKVGNtKTsKKygkSlRjbSB8ICRIM2NtKSAkSlRjbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpU
Y20gfCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsKKygkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJj
bSB8ICRIM2NtKSAkUE9jbTsKKyRQUmNtICgkSkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8
ICRIM2NtKTsKKygkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExjbSk7CiskQ00rICgkQUxjbSB8
ICRITGNtKTsKKyRJU2NtICgkQUxjbSB8ICRITGNtKTsKKygkQUxjbSB8ICRITGNtIHwgJE5VY20p
ICRPUGNtOworJENNKyAkT1BjbTsKKyRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5VY20pOworCisj
aWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUkljbSAkUkljbTsKKworI2VuZGlm
CisKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOworCishIXJldmVyc2U7Cisk
Q00rICRBTFBsdXM7CiskQ00rICRCQTsKKyRDTSsgJEJCOworJENNKyAkQjI7CiskQ00rICRDTDsK
KyRDTSsgJENQOworJENNKyAkRVg7CiskQ00rICRHTDsKKyRDTSsgJEhMOworJENNKyAkSFk7Cisk
Q00rICRIMjsKKyRDTSsgJEgzOworJENNKyAkSUQ7CiskQ00rICRJTjsKKyRDTSsgJElTOworJENN
KyAkSkw7CiskQ00rICRKVjsKKyRDTSsgJEpUOworJENNKyAkTlM7CiskQ00rICROVTsKKyRDTSsg
JE9QOworJENNKyAkUE87CiskQ00rICRQUjsKKyRDTSsgJFFVOworCisjaWYgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUCisKKyAgICAkQ00rICRSSTsKKworI2VuZGlmCisKKyRDTSsgJFNZOworJENN
KyAkV0o7CiskQ00rOworJEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRMRiAkTkwgJFpXIHtl
b2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAkU1BdIHwgWyRBTCB7
ZW9mfV0pKTsKK1skUFJdIC8gJENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOwor
JExCNEJyZWFrcyBbJExCNE5vbkJyZWFrcy0kQ01dOworJExCNEJyZWFrcyAkQ00rICRDQU5fQ007
CiskTEYgJENSOworWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07CitbJFNQICRaV10gJENN
KyAkQ0FOX0NNOworJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1vZHM/ICRFbW9qaVZhcj8gJEVt
b2ppRm9yU2VxczsKKyRDTSsgJENBTl9DTTsKKyRDTSogJFdKICRDTSogJENBTl9DTTsKKyRDTSog
JFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskQ0FOVF9DTSAkQ00qICRXSjsKKyRDTSogJENBTl9D
TSAkQ00qICRXSjsKKyRDTSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1AgJEJBICRI
WV1dOworJENBTlRfQ00gJENNKiAkR0w7CiskQ00qICRDQU5fQ00gJENNKiAkR0w7CiskQ0wgJENN
KyAkQ0FOX0NNOworJENQICRDTSsgJENBTl9DTTsKKyRFWCAkQ00rICRDQU5fQ007CiskSVMgJENN
KyAkQ0FOX0NNOworJFNZICRDTSsgJENBTl9DTTsKKyRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOwor
JENQIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskRVggWyRMQjhOb25CcmVha3MtJENNXTsKKyRJUyBb
JExCOE5vbkJyZWFrcy0kQ01dOworJFNZIFskTEI4Tm9uQnJlYWtzLSRDTV07CitbJENMICRDUCAk
RVggJElTICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAKKyRDTSogJENBTl9DTSAkU1AqICRDTSog
JE9QOworJENBTlRfQ00gJFNQKiAkQ00qICRPUDsKKyRBTF9GT0xMT1c/ICRDTSsgJFNQICRTUCog
JENNKiAkT1A7CiskQUxfRk9MTE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9QOworJENNKiAkQUxf
Rk9MTE9XX0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRTWSAkQ00gJFNQKyAkT1A7CiskQ00qICRP
UCAkU1AqICRDTSogJFFVOworJENNKiAkTlMgJFNQKiAkQ00qICgkQ0wgfCAkQ1ApOworJENNKiAk
QjIgJFNQKiAkQ00qICRCMjsKKyRDTSogJFFVICRDTSogJENBTl9DTTsKKyRDTSogJFFVICRMQjE4
Tm9uQnJlYWtzOworJENNKiAkQ0FOX0NNICRDTSogJFFVOworJENBTlRfQ00gJENNKiAkUVU7Cisk
Q00qICgkQkEgfCAkSFkgfCAkTlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV07CiskQ00qIFsk
TEIyME5vbkJyZWFrcy0kQ01dICRDTSogJEJCOworW14kQ0JdICRDTSogJEJCOworW14kQ0JdICRD
TSogKCRIWSB8ICRCQSkgJENNKiAkSEw7CiskQ00qICRITCAkQ00qICRTWTsKKyRDTSogJElOICRD
TSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAkSU4gJENNKiAkRVg7CiskQ00qICRJTiAkQ00qICRJ
RDsKKyRDTSogJElOICRDTSogJElOOworJENNKiAkSU4gJENNKiAkTlU7CiskQ00qICRQTyAkQ00q
ICRJRDsKKyRDTSogJE5VICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1cyB8ICRI
TCkgJENNKiAkTlU7CiskQ00qICRJRCAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRD
TSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87CisoJENNKiAoJFBSIHwgJFBP
KSk/ICgkQ00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJUyB8ICRTWSkpKiAkQ00qICRO
VSAoJENNKiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8pKT87CiskQ00qICgkSDMgfCAk
SDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOworJENNKiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAk
SlYpOworJENNKiAkSlQgJENNKiAoJEgzIHwgJEpUKTsKKyRDTSogJElOICRDTSogKCRIMyB8ICRI
MiB8ICRKVCB8ICRKViB8ICRKTCk7CiskQ00qICRQTyAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAk
SlYgfCAkSkwpOworJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKSAkQ00qICRQUjsK
KyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAoJEFMUGx1
cyB8ICRITCkgJENNKiAkSVM7CiskQ00qICRPUCAkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKTsK
KyRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOworCisjaWYgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUCisKKyAgICAkQ00qICRSSSAkQ00qICRSSTsKKworI2VuZGlmCisKKyRFbW9q
aU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOworCishIXNhZmVfZm9yd2FyZDsKK1skQ00g
JE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnldKyBbXiRDTSAk
T1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsKKyRkaWN0aW9uYXJ5
ICRkaWN0aW9uYXJ5OworICAgIAorISFzYWZlX3JldmVyc2U7CiskQ00rIFteJENNICRCSyAkQ1Ig
JExGICROTCAkWlcgJFNQXTsKKyRDTSsgJFNQIC8gLjsKKyRTUCsgJENNKiAkT1A7CiskU1ArICRD
TSogJFFVOworJFNQKyAkQ00qICgkQ0wgfCAkQ1ApOworJFNQKyAkQ00qICRCMjsKKyRDTSogKCRI
WSB8ICRCQSkgJENNKiAkSEw7CisoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOworKCRDTCB8
ICRDUCkgJENNKiAoJE5VIHwgJElTIHwgJFNZKTsKKyRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yUHJvbG9ndWUudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiM2Y2NmY0MmFmMTM4ZWQ1
OGZmNDIxZjY3NjhkOGZkNTgwMTI4MmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKQEAgLTAs
MCArMSwzOCBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5
cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworISFjaGFpbjsKKyEhTEJDTU5vQ2hhaW47CishIWxv
b2tBaGVhZEhhcmRCcmVhazsKKworI2lmIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMKKworICAg
ICRDSiA9IFs6TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6XTsKKworI2Vs
c2UKKworICAgICRDSiA9IFtcdTMwNDFcdTMwNDNcdTMwNDVcdTMwNDdcdTMwNDlcdTMwNjNcdTMw
ODNcdTMwODVcdTMwODdcdTMwOEVcdTMwOTVcdTMwOTZcdTMwQTFcdTMwQTNcdTMwQTVcdTMwQTdc
dTMwQTlcdTMwQzNcdTMwRTNcdTMwRTVcdTMwRTdcdTMwRUVcdTMwRjVcdTMwRjZcdTMwRkNcdTMx
RjBcdTMxRjFcdTMxRjJcdTMxRjNcdTMxRjRcdTMxRjVcdTMxRjZcdTMxRjdcdTMxRjhcdTMxRjlc
dTMxRkFcdTMxRkJcdTMxRkNcdTMxRkRcdTMxRkVcdTMxRkZcdUZGNjdcdUZGNjhcdUZGNjlcdUZG
NkFcdUZGNkJcdUZGNkNcdUZGNkRcdUZGNkVcdUZGNkZcdUZGNzBdOworCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDdjMGNhNWFhN2IyZmZiZjhiMmNk
OTA5MmFhNWYzZTFkYmE0MDkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0CkBAIC0wLDAgKzEs
MzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
IyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIg
PSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19T
VUIgPSBbXHUzMDFDXHUzMEEwXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9B
REQgPSBbJENKICRCQV9TVUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkYjhmMGZmNTE4NTZkOTdjOWMx
NGUxMjE2MzczNGZkZmM5N2M5Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApAQCAt
MCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENv
cHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107Cisk
RVhfU1VCID0gW1x1MDAyMVx1MDAzRlx1RkYwMVx1RkYxRl07CiskSURfU1VCID0gJyc7CiskSU5f
U1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gW1x1MDAzQVx1MDAzQl07CiskTlNfU1VC
ID0gW1x1MjAzQ1x1MjA0N1x1MjA0OFx1MjA0OVx1MzAwNVx1MzAxQ1x1MzAzQlx1MzA5RFx1MzA5
RVx1MzBBMFx1MzBGQlx1MzBGRFx1MzBGRVx1RkYxQVx1RkYxQlx1RkY2NV07CiskUE9fU1VCID0g
W1x1MDAyNVx1MDBBMlx1MDBCMFx1MjAzMFx1MjAzMlx1MjAzM1x1MjEwM1x1RkYwNVx1RkZFMF07
CiskUFJfU1VCID0gW1x1MDAyNFx1MDBBM1x1MDBBNVx1MjBBQ1x1MjExNlx1RkYwNFx1RkZFMVx1
RkZFNV07CiskSURfQUREID0gWyRDSiAkQkFfU1VCICRFWF9TVUIgJElOX1NVQiAkSVNfU1VCICRO
U19TVUIgJFBPX1NVQiAkUFJfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VO
b25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2NiYmM4YTg4MTVlNGQwZGNm
Yjk2MGMxMTJmNjBhODM4ZDNhNDI4NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0
CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykK
KyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIg
PSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSBbXHUyMDI1XHUyMDI2XTsKKyRJU19TVUIg
PSAnJzsKKyROU19TVUIgPSBbXHUzMDA1XHUzMDNCXHUzMDlEXHUzMDlFXHUzMEZEXHUzMEZFXTsK
KyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKICRJTl9TVUIgJE5T
X1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjc0Mjg3OWRkMWY4MmViNjJkMjhkOGFhN2JjZGRmNDQ2ZDA3Mzg3ZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9y
Y2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0g
Jyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VC
ID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA3YzBjYTVhYTdiMmZmYmY4YjJj
ZDkwOTJhYTVmM2UxZGJhNDA5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dApAQCAt
MCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENv
cHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107Cisk
RVhfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0gJyc7
CiskTlNfU1VCID0gW1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7
CiskSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxOb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyY2Y2
YTA4MjZhZGE0ZWRjZmNmMzk0M2I2ODlmOGMwNmUwYmQ3NDgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKSy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChr
bm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwg
SW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9
ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NV
QiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElE
X0FERCA9IFskQ0pdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0IGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3NDI4NzlkZDFmODJlYjYyZDI4ZDhhYTdiY2RkZjQ0
NmQwNzM4N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKQEAgLTAsMCArMSwzNSBA
QAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9
ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NV
QiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY3NDI4NzlkZDFmODJlYjYyZDI4ZDhhYTdiY2RkZjQ0NmQwNzM4N2YKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKSy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtu
b2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1v
YmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
IyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJB
X1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOwor
JElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcn
OworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1Rl
eHRCcmVha0l0ZXJhdG9yLmNwcAppbmRleCBiMGRiZTU5N2YzOTFmMTMyYzI4ZTY0MmY3ZDk3NWIx
MTBmNzVmODI2Li41MjcwYTI1OTFhYzliYzgwMDU5M2M1MmQxYjVjYmE3NTc0NzRhNjU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcApAQCAtMzEsOSArMzEsNiBA
QAogI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KIAotLy8gRklYTUU6IFRoaXMgbmVlZHMgYSBiZXR0ZXIgbmFtZQotI2RlZmluZSBB
RERJVElPTkFMX0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApKQotCiBuYW1lc3Bh
Y2UgV1RGIHsKIAogLy8gSXRlcmF0b3IgaW5pdGlhbGl6YXRpb24KQEAgLTYxLDYgKzU4LDEyIEBA
IHN0YXRpYyBVQnJlYWtJdGVyYXRvciogaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGNvbnN0
IGNoYXIqIGJyZWFrUnVsZXMpCiAKICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBM
QVRGT1JNKElPUykKK1VCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJl
YWtpbmdSdWxlU2V0KQoreworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCiAKIC8vIEl0
ZXJhdG9yIHRleHQgc2V0dGluZwogCkBAIC0xNjQsMTQzICsxNjcsMjcgQEAgVUJyZWFrSXRlcmF0
b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZykKICAgICByZXR1cm4g
c2V0VGV4dEZvckl0ZXJhdG9yKCpzdGF0aWNTZW50ZW5jZUJyZWFrSXRlcmF0b3IsIHN0cmluZyk7
CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9TKQorc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBjcmVhdGVD
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKCkKK3sKKyAgICBpZiAoYXV0byogaXRl
cmF0b3IgPSBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0OjpDdXJzb3JN
b3ZlbWVudCkpCisgICAgICAgIHJldHVybiBpdGVyYXRvcjsKKyAgICByZXR1cm4gaW5pdGlhbGl6
ZUl0ZXJhdG9yV2l0aFJ1bGVzKGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyk7Cit9CisjZW5k
aWYKKwogVUJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoU3RyaW5nVmlldyBz
dHJpbmcpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJh
c2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKLSAgICAvLyA8
aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2Ut
NTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KLSAgICAvLyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMg
ZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgotICAgIC8vICogUmVwbGFj
ZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xw
e0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44
IG9yIGVhcmxpZXI7Ci0gICAgLy8gKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNv
ciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAg
Ly8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIg
dmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCks
IGFuZDsKLSAgICAvLyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1v
dmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0g
ICAgLy8gKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCi0gICAg
c3RhdGljIGNvbnN0IGNoYXIqIGtSdWxlcyA9Ci0gICAgICAgICIkQ1IgICAgICA9IFtcXHB7R3Jh
cGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07IgotICAgICAgICAiJExGICAgICAgPSBbXFxwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1dOyIKLSAgICAgICAgIiRDb250cm9sID0gW1xccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOyIKLSAgICAgICAgIiRWb2ljZU1hcmtz
ID0gW1xcdUZGOUVcXHVGRjlGXTsiIC8vIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9p
Y2VkIG1hcmtzCi0gICAgICAgICIkRXh0ZW5kICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVh
ayA9IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXFx1MEUzMCBcXHUwRTMyIFxcdTBFNDUgXFx1MEVC
MCBcXHUwRUIyXV07IgotICAgICAgICAiJFNwYWNpbmdNYXJrID0gW1tcXHB7R2VuZXJhbF9DYXRl
Z29yeSA9IFNwYWNpbmcgTWFya31dIC0gJEV4dGVuZF07IgotICAgICAgICAiJEwgICAgICAgPSBb
XFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07IgotICAgICAgICAiJFYgICAgICAgPSBb
XFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07IgotICAgICAgICAiJFQgICAgICAgPSBb
XFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07IgotICAgICAgICAiJExWICAgICAgPSBb
XFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOyIKLSAgICAgICAgIiRMVlQgICAgID0g
W1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07IgotICAgICAgICAiJEhpbjAgICAg
PSBbXFx1MDkwNS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0dGVyIEEsLi4uLEhhCi0gICAg
ICAgICIkSGluViAgICA9IFxcdTA5NEQ7IiAvLyBEZXZhbmFnYXJpIFNpZ24gVmlyYW1hCi0gICAg
ICAgICIkSGluMSAgICA9IFtcXHUwOTE1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIg
S2EsLi4uLEhhCi0gICAgICAgICIkQmVuMCAgICA9IFtcXHUwOTg1LVxcdTA5QjldOyIgLy8gQmVu
Z2FsaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRCZW5WICAgID0gXFx1MDlDRDsiIC8vIEJl
bmdhbGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRCZW4xICAgID0gW1xcdTA5OTUtXFx1MDlCOV07
IiAvLyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRQYW4wICAgID0gW1xcdTBB
MDUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRQYW5W
ICAgID0gXFx1MEE0RDsiIC8vIEd1cm11a2hpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkUGFuMSAg
ICA9IFtcXHUwQTE1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQotICAg
ICAgICAiJEd1ajAgICAgPSBbXFx1MEE4NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBB
LC4uLixIYQotICAgICAgICAiJEd1alYgICAgPSBcXHUwQUNEOyIgLy8gR3VqYXJhdGkgU2lnbiBW
aXJhbWEKLSAgICAgICAgIiRHdWoxICAgID0gW1xcdTBBOTUtXFx1MEFCOV07IiAvLyBHdWphcmF0
aSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkT3JpMCAgICA9IFtcXHUwQjA1LVxcdTBCMzld
OyIgLy8gT3JpeWEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkT3JpViAgICA9IFxcdTBCNEQ7
IiAvLyBPcml5YSBTaWduIFZpcmFtYQotICAgICAgICAiJE9yaTEgICAgPSBbXFx1MEIxNS1cXHUw
QjM5XTsiIC8vIE9yaXlhIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRUZWwwICAgID0gW1xc
dTBDMDUtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkVGVs
ViAgICA9IFxcdTBDNEQ7IiAvLyBUZWx1Z3UgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRUZWwxICAg
ID0gW1xcdTBDMTQtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEthLC4uLixIYQotICAgICAg
ICAiJEthbjAgICAgPSBbXFx1MEM4NS1cXHUwQ0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4u
LEhhCi0gICAgICAgICIkS2FuViAgICA9IFxcdTBDQ0Q7IiAvLyBLYW5uYWRhIFNpZ24gVmlyYW1h
Ci0gICAgICAgICIkS2FuMSAgICA9IFtcXHUwQzk1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0
ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWwwICAgID0gW1xcdTBEMDUtXFx1MEQzOV07IiAvLyBN
YWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsViAgICA9IFxcdTBENEQ7IiAv
LyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKLSAgICAgICAgIiRNYWwxICAgID0gW1xcdTBEMTUtXFx1
MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkUkkgICAgICA9
IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IiAvLyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3Jz
Ci0gICAgICAgICIkWldKICAgICA9IFxcdTIwMEQ7IiAvLyBaZXJvIHdpZHRoIGpvaW5lcgotICAg
ICAgICAiJEVtb2ppVmFyID0gW1xcdUZFMEZdOyIgLy8gRW1vamktc3R5bGUgdmFyaWF0aW9uIHNl
bGVjdG9yCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRW1vamlGb3JT
ZXFzID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAw
MUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxV
MDAwMUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYg
XFxVMDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0
ODIgXFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAw
MUY1RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxV
MDAwMUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFx1MjY5NS1cXHUy
Njk2IFxcdTI3MDggXFxVMDAwMUYzM0UgXFxVMDAwMUYzNzMgXFxVMDAwMUYzOTMgXFxVMDAwMUYz
QTQgXFxVMDAwMUYzQTggXFxVMDAwMUYzRUIgXFxVMDAwMUYzRUQgXFxVMDAwMUY0QkItXFxVMDAw
MUY0QkMgXFxVMDAwMUY1MjcgXFxVMDAwMUY1MkMgXFxVMDAwMUY2ODAgXFxVMDAwMUY2OTIgXFxV
MDAwMUY5MjYgXFxVMDAwMUY5MzctXFxVMDAwMUY5MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0Vd
OyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIk
RW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYz
ODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAw
MUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxV
MDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUt
XFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1
OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAw
MUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxV
MDAwMUY5MTggXFxVMDAwMUYzQzIgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0MgXFxVMDAwMUY1NzQg
XFxVMDAwMUY1N0EgXFxVMDAwMUY2Q0MgXFxVMDAwMUY5MTktXFxVMDAwMUY5MUUgXFxVMDAwMUY5
MjYgXFxVMDAwMUY5MzAgXFxVMDAwMUY5MzMtXFxVMDAwMUY5MzkgXFxVMDAwMUY5M0MtXFxVMDAw
MUY5M0VdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNl
Ci0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0
NjkgXFxVMDAwMUY0OEJdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVu
Y2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxc
VTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NB
IFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFG
NDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAw
MDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxc
VTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRG
IFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBF
bW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAgICAgICAgIiRF
bW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIgLy8gRml0enBhdHJpY2sgbW9k
aWZpZXJzCi0gICAgICAgICIhIWNoYWluOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQK
LSAgICAgICAgIiEhUklOb0NoYWluOyIKLSNlbmRpZgotICAgICAgICAiISFmb3J3YXJkOyIKLSAg
ICAgICAgIiRDUiAkTEY7IgotICAgICAgICAiJEwgKCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsiCi0g
ICAgICAgICIoJExWIHwgJFYpICgkViB8ICRUKTsiCi0gICAgICAgICIoJExWVCB8ICRUKSAkVDsi
Ci0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkUkkgJFJJICRFeHRlbmQq
IC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCo7IgotICAgICAgICAiW14kQ29udHJv
bCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNp
bmdNYXJrOyIKLSNlbHNlCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7Igot
ICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotICAgICAgICAiJFJJ
ICRSSSAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAiJEhpbjAg
JEhpblYgJEhpbjE7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRC
ZW4wICRCZW5WICRCZW4xOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIk
UGFuMCAkUGFuViAkUGFuMTsiIC8vIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAg
IiRHdWowICRHdWpWICRHdWoxOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAg
ICAiJE9yaTAgJE9yaVYgJE9yaTE7IiAvLyBPcml5YSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAg
ICIkVGVsMCAkVGVsViAkVGVsMTsiIC8vIFRlbHVndSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAg
ICIkS2FuMCAkS2FuViAkS2FuMTsiIC8vIEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQotICAgICAg
ICAiJE1hbDAgJE1hbFYgJE1hbDE7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChmb3J3YXJkKQotICAg
ICAgICAiJFpXSiAkRW1vamlGb3JTZXFzOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNl
cXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IiAv
LyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlh
dGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0gICAgICAgICIhIXJldmVy
c2U7IgotICAgICAgICAiJExGICRDUjsiCi0gICAgICAgICIoJEwgfCAkViB8ICRMViB8ICRMVlQp
ICRMOyIKLSAgICAgICAgIigkViB8ICRUKSAoJExWIHwgJFYpOyIKLSAgICAgICAgIiRUICgkTFZU
IHwgJFQpOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFeHRlbmQq
ICRSSSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkk7
IgotICAgICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAi
JFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07IgotI2Vsc2UKLSAgICAgICAgIiRFeHRl
bmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRD
b250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRSSSAkUkkgLyAkUkkgJFJJOyIKLSAgICAgICAg
IiRSSSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIkSGluMSAkSGluViAkSGluMDsiIC8vIERldmFu
YWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRCZW4xICRCZW5WICRCZW4wOyIgLy8g
QmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFBhbjEgJFBhblYgJFBhbjA7IiAv
LyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEd1ajEgJEd1alYgJEd1ajA7
IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE9yaTEgJE9yaVYgJE9y
aTA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFRlbDEgJFRlbFYg
JFRlbDA7IiAvLyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRLYW4xICRLYW5W
ICRLYW4wOyIgLy8gS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJE1hbDEgJE1h
bFYgJE1hbDA7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRFbW9q
aUZvclNlcXMgJFpXSjsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAg
ICAgICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyIgLy8gRG9uJ3QgYnJl
YWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0
b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAotICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAg
ICAiWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIhIXNh
ZmVfZm9yd2FyZDsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0gICAgICAgICIkRW1vamlGb3JNb2Rz
IFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyI7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVC
cmVha0l0ZXJhdG9yKj4gc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGNyZWF0ZUN1cnNv
ck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2soKTsKICNlbHNlCi0gICAgICAgICJbJEVtb2pp
VmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAgIiRFbW9qaUZvck1vZHMg
WyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IgotICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAg
ICAgICAiISFzYWZlX2ZvcndhcmQ7IjsKLSNlbmRpZgotICAgIHN0YXRpYyBVQnJlYWtJdGVyYXRv
ciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcldpdGhS
dWxlcyhrUnVsZXMpOwotI2Vsc2UgLy8gUExBVEZPUk0oSU9TKQogICAgIC8vIFVzZSB0aGUgc3Bl
Y2lhbCBUaGFpIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBmb3IgYWxsIGxvY2FsZXMKLSAgICBz
dGF0aWMgVUJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0
aWFsaXplSXRlcmF0b3IoVUJSS19DSEFSQUNURVIsICJ0aCIpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBp
bml0aWFsaXplSXRlcmF0b3IoVUJSS19DSEFSQUNURVIsICJ0aCIpOwogI2VuZGlmIC8vICFQTEFU
Rk9STShJT1MpCiAKLSAgICBpZiAoIXN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IpCisgICAg
aWYgKCFzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yLmdldCgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQotICAgIHJldHVybiBzZXRUZXh0Rm9ySXRlcmF0b3IoKnN0YXRpY0N1cnNvck1v
dmVtZW50SXRlcmF0b3IsIHN0cmluZyk7CisgICAgcmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigq
KHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IuZ2V0KCkpLCBzdHJpbmcpOwogfQogCiBVQnJl
YWtJdGVyYXRvciogYWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nLCBj
b25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSwgY29uc3QgVUNoYXIqIHByaW9yQ29udGV4dCwgdW5z
aWduZWQgcHJpb3JDb250ZXh0TGVuZ3RoLCBMaW5lQnJlYWtJdGVyYXRvck1vZGUgbW9kZSwgYm9v
bCBpc0NKSykKQEAgLTMxOSw0NDIgKzIwNiwyMCBAQCB2b2lkIHJlbGVhc2VMaW5lQnJlYWtJdGVy
YXRvcihVQnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiAgICAgTGluZUJyZWFrSXRlcmF0b3JQb29s
OjpzaGFyZWRQb29sKCkucHV0KGl0ZXJhdG9yKTsKIH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIHVh
eDE0UHJvbG9ndWUgPQotICAgICIhIWNoYWluOyIKLSAgICAiISFMQkNNTm9DaGFpbjsiCi0gICAg
IiEhbG9va0FoZWFkSGFyZEJyZWFrOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2ln
bm1lbnRzQmVmb3JlID0KLSAgICAvLyBleHBsaWNpdGx5IGVudW1lcmF0ZSAkQ0ogc2luY2UgSUNV
IHZlcnNpb25zIHByaW9yIHRvIDQ5IGRvbid0IHN1cHBvcnQgOkxpbmVCcmVhaz1Db25kaXRpb25h
bF9KYXBhbmVzZV9TdGFydGVyOgotICAgICIkQ0ogPSBbIgotI2lmIChVX0lDVV9WRVJTSU9OX01B
Sk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAgICAiOkxp
bmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOiIKLSNlbHNlCi0gICAgIlxcdTMw
NDFcXHUzMDQzXFx1MzA0NVxcdTMwNDdcXHUzMDQ5XFx1MzA2M1xcdTMwODNcXHUzMDg1XFx1MzA4
N1xcdTMwOEVcXHUzMDk1XFx1MzA5NlxcdTMwQTFcXHUzMEEzXFx1MzBBNVxcdTMwQTciCi0gICAg
IlxcdTMwQTlcXHUzMEMzXFx1MzBFM1xcdTMwRTVcXHUzMEU3XFx1MzBFRVxcdTMwRjVcXHUzMEY2
XFx1MzBGQyIKLSAgICAiXFx1MzFGMFxcdTMxRjFcXHUzMUYyXFx1MzFGM1xcdTMxRjRcXHUzMUY1
XFx1MzFGNlxcdTMxRjdcXHUzMUY4XFx1MzFGOVxcdTMxRkFcXHUzMUZCXFx1MzFGQ1xcdTMxRkRc
XHUzMUZFXFx1MzFGRiIKLSAgICAiXFx1RkY2N1xcdUZGNjhcXHVGRjY5XFx1RkY2QVxcdUZGNkJc
XHVGRjZDXFx1RkY2RFxcdUZGNkVcXHVGRjZGXFx1RkY3MCIKLSNlbmRpZgotICAgICJdOyI7Ci0K
LXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgPQotICAg
ICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRFWF9TVUIgPSBbXFx1MDAyMVxc
dTAwM0ZcXHVGRjAxXFx1RkYxRl07IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VC
ID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSBbXFx1MDAzQVxcdTAwM0JdOyIK
LSAgICAiJE5TX1NVQiA9IFtcXHUyMDNDXFx1MjA0N1xcdTIwNDhcXHUyMDQ5XFx1MzAwNVxcdTMw
MUNcXHUzMDNCXFx1MzA5RFxcdTMwOUVcXHUzMEEwXFx1MzBGQlxcdTMwRkRcXHUzMEZFXFx1RkYx
QVxcdUZGMUJcXHVGRjY1XTsiCi0gICAgIiRQT19TVUIgPSBbXFx1MDAyNVxcdTAwQTJcXHUwMEIw
XFx1MjAzMFxcdTIwMzJcXHUyMDMzXFx1MjEwM1xcdUZGMDVcXHVGRkUwXTsiCi0gICAgIiRQUl9T
VUIgPSBbXFx1MDAyNFxcdTAwQTNcXHUwMEE1XFx1MjBBQ1xcdTIxMTZcXHVGRjA0XFx1RkZFMVxc
dUZGRTVdOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIgJElT
X1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQot
c3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZU5vbkNKSyA9Ci0g
ICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAn
JzsiCi0gICAgIiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAgICAiJElTX1NVQiA9ICcn
OyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDA1XFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBGRFxc
dTMwRkVdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAi
JElEX0FERCA9IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwot
Ci1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA9Ci0g
ICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAg
ICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcn
OyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDFDXFx1MzBBMF07IgotICAgICIkUE9fU1VCID0gJyc7
IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSiAkQkFfU1VCICROU19T
VUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAi
JEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIK
LSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9
ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0pdOyIKLSAgICAi
JE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3Vz
dG9tU3RyaWN0Q0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIK
LSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9
ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBS
X1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9ICcnOyIKLSAgICAiJE5TX0FERCA9IFskQ0pdOyI7
Ci0KLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyAgICAgIHVheDE0
QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3Rv
bURlZmF1bHRDSksgICAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksKLSNkZWZp
bmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25DSksgICAgIHVheDE0QXNzaWdubWVu
dHNDdXN0b21TdHJpY3ROb25DSksKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVu
dHNBZnRlciA9Ci0gICAgIiRBSSA9IFs6TGluZUJyZWFrID0gQW1iaWd1b3VzOl07IgotICAgICIk
QUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsiCi0gICAgIiRCQSA9IFtbOkxpbmVCcmVh
ayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsiCi0gICAgIiRCQiA9IFs6TGluZUJyZWFrID0g
QnJlYWtfQmVmb3JlOl07IgotICAgICIkQksgPSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9CcmVh
azpdOyIKLSAgICAiJEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19Cb3RoOl07IgotICAgICIkQ0Ig
PSBbOkxpbmVCcmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsiCi0gICAgIiRDTCA9IFs6TGluZUJy
ZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246XTsiCi0gICAgIiRDTSA9IFs6TGluZUJyZWFrID0gQ29t
YmluaW5nX01hcms6XTsiCi0gICAgIiRDUCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUGFyZW50aGVz
aXM6XTsiCi0gICAgIiRDUiA9IFs6TGluZUJyZWFrID0gQ2FycmlhZ2VfUmV0dXJuOl07IgotICAg
ICIkRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0gJEVYX1NVQl07IgotICAgICIk
R0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsiCi0jaWYgKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVN
ID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KQotICAgICIkSEwgPSBbOkxp
bmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsiCi0jZWxzZQotICAgICIkSEwgPSBbWzpIZWJyZXc6
XSAmIFs6TGV0dGVyOl1dOyIKLSNlbmRpZgotICAgICIkSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhl
bjpdOyIKLSAgICAiJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOyIKLSAgICAiJEgzID0gWzpMaW5l
QnJlYWsgPSBIMzpdOyIKLSAgICAiJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpd
IC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOyIKLSAgICAiJElOID0gW1s6TGluZUJyZWFrID0g
SW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOyIKLSAgICAiJElTID0gW1s6TGluZUJyZWFrID0gSW5m
aXhfTnVtZXJpYzpdIC0gJElTX1NVQl07IgotICAgICIkSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07
IgotICAgICIkSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07IgotICAgICIkSlQgPSBbOkxpbmVCcmVh
ayA9IEpUOl07IgotICAgICIkTEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOyIKLSAgICAi
JE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsiCi0gICAgIiROUyA9IFtbW1s6TGluZUJy
ZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICROU19TVUJdOyIKLSAgICAiJE5V
ID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07IgotICAgICIkT1AgPSBbOkxpbmVCcmVhayA9IE9w
ZW5fUHVuY3R1YXRpb246XTsiCi0gICAgIiRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVt
ZXJpYzpdIC0gJFBPX1NVQl07IgotICAgICIkUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVt
ZXJpYzpdIC0gJFBSX1NVQl07IgotICAgICIkUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpd
OyIKLSAgICAiJFJJID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsiCi0gICAgIiRTQSA9IFs6
TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIkU0cgPSBbOkxpbmVCcmVhayA9
IFN1cnJvZ2F0ZTpdOyIKLSAgICAiJFNQID0gWzpMaW5lQnJlYWsgPSBTcGFjZTpdOyIKLSAgICAi
JFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07IgotICAgICIkV0ogPSBbOkxpbmVC
cmVhayA9IFdvcmRfSm9pbmVyOl07IgotICAgICIkWFggPSBbOkxpbmVCcmVhayA9IFVua25vd246
XTsiCi0gICAgIiRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpdOyIKLSAgICAiJFpXSiA9IFxc
dTIwMEQ7IgotICAgICIkRW1vamlWYXIgPSBcXHVGRTBGOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKLSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBc
XHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxc
VTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5
IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAwMDFG
NDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAw
MDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxc
VTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0
LVxcVTAwMDFGNkI2IFxcdTI2OTUtXFx1MjY5NiBcXHUyNzA4IFxcVTAwMDFGMzNFIFxcVTAwMDFG
MzczIFxcVTAwMDFGMzkzIFxcVTAwMDFGM0E0IFxcVTAwMDFGM0E4IFxcVTAwMDFGM0VCIFxcVTAw
MDFGM0VEIFxcVTAwMDFGNEJCLVxcVTAwMDFGNEJDIFxcVTAwMDFGNTI3IFxcVTAwMDFGNTJDIFxc
VTAwMDFGNjgwIFxcVTAwMDFGNjkyIFxcVTAwMDFGOTI2IFxcVTAwMDFGOTM3LVxcVTAwMDFGOTM5
IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4g
WldKIHNlcXVlbmNlcwotICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUy
NzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYz
Q0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAw
MUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxV
MDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUg
XFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2
NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAw
MUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MTggXFxVMDAwMUYzQzIgXFxVMDAwMUYzQzcgXFxV
MDAwMUYzQ0MgXFxVMDAwMUY1NzQgXFxVMDAwMUY1N0EgXFxVMDAwMUY2Q0MgXFxVMDAwMUY5MTkt
XFxVMDAwMUY5MUUgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzAgXFxVMDAwMUY5MzMtXFxVMDAwMUY5
MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0
cmljayBtb2RpZmllcnMKLSNlbHNlCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUw
MDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IgotICAgICIkRW1vamlGb3JNb2RzID0g
W1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFG
M0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAw
MDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxc
VTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1
LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFG
NjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAw
MDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9k
aWZpZXJzCi0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNG
Rl07IgotICAgICIkZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07
IgotICAgICIkQUxQbHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOyIKLSAgICAiJEFMY20gPSAk
QUxQbHVzICRDTSo7IgotICAgICIkQkFjbSA9ICRCQSAkQ00qOyIKLSAgICAiJEJCY20gPSAkQkIg
JENNKjsiCi0gICAgIiRCMmNtID0gJEIyICRDTSo7IgotICAgICIkQ0xjbSA9ICRDTCAkQ00qOyIK
LSAgICAiJENQY20gPSAkQ1AgJENNKjsiCi0gICAgIiRFWGNtID0gJEVYICRDTSo7IgotICAgICIk
R0xjbSA9ICRHTCAkQ00qOyIKLSAgICAiJEhMY20gPSAkSEwgJENNKjsiCi0gICAgIiRIWWNtID0g
JEhZICRDTSo7IgotICAgICIkSDJjbSA9ICRIMiAkQ00qOyIKLSAgICAiJEgzY20gPSAkSDMgJENN
KjsiCi0gICAgIiRJRGNtID0gJElEICRDTSo7IgotICAgICIkSU5jbSA9ICRJTiAkQ00qOyIKLSAg
ICAiJElTY20gPSAkSVMgJENNKjsiCi0gICAgIiRKTGNtID0gJEpMICRDTSo7IgotICAgICIkSlZj
bSA9ICRKViAkQ00qOyIKLSAgICAiJEpUY20gPSAkSlQgJENNKjsiCi0gICAgIiROU2NtID0gJE5T
ICRDTSo7IgotICAgICIkTlVjbSA9ICROVSAkQ00qOyIKLSAgICAiJE9QY20gPSAkT1AgJENNKjsi
Ci0gICAgIiRQT2NtID0gJFBPICRDTSo7IgotICAgICIkUFJjbSA9ICRQUiAkQ00qOyIKLSAgICAi
JFFVY20gPSAkUVUgJENNKjsiCi0gICAgIiRSSWNtID0gJFJJICRDTSo7IgotICAgICIkU1ljbSA9
ICRTWSAkQ00qOyIKLSAgICAiJFdKY20gPSAkV0ogJENNKjsiOwotCi1zdGF0aWMgY29uc3QgY2hh
ciogdWF4MTRGb3J3YXJkID0KLSAgICAiISFmb3J3YXJkOyIKLSAgICAiJENBTl9DTSA9IFteJFNQ
ICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsiCi0gICAgIiRDQU5UX0NNID0gWyRTUCAkQksgJENS
ICRMRiAkTkwgJFpXICRDTV07IgotICAgICIkQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYg
JE5MICRaVyAkU1BdOyIKLSAgICAiJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElT
ICRTWSAkV0ogJEdMICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsiCi0gICAg
IiRBTF9GT0xMT1cgPSBbJEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOyIKLSAgICAiJExC
NEJyZWFrcyA9IFskQksgJENSICRMRiAkTkxdOyIKLSAgICAiJExCNE5vbkJyZWFrcyA9IFteJEJL
ICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOyIKLSAg
ICAiJExCOE5vbkJyZWFrcyA9IFtbJExCNE5vbkJyZWFrc10gLSBbJFpXXV07IgotICAgICIkTEIx
OE5vbkJyZWFrcyA9IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOyIKLSAgICAiJExCMThCcmVha3Mg
PSBbJExCOEJyZWFrcyAkU1BdOyIKLSAgICAiJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVh
a3MgLSAkQ0JdOyIKLSAgICAiJEFMUGx1cyAkQ00rOyIKLSAgICAiJEJBICRDTSs7IgotICAgICIk
QkIgJENNKzsiCi0gICAgIiRCMiAkQ00rOyIKLSAgICAiJENMICRDTSs7IgotICAgICIkQ1AgJENN
KzsiCi0gICAgIiRFWCAkQ00rOyIKLSAgICAiJEdMICRDTSs7IgotICAgICIkSEwgJENNKzsiCi0g
ICAgIiRIWSAkQ00rOyIKLSAgICAiJEgyICRDTSs7IgotICAgICIkSDMgJENNKzsiCi0gICAgIiRJ
RCAkQ00rOyIKLSAgICAiJElOICRDTSs7IgotICAgICIkSVMgJENNKzsiCi0gICAgIiRKTCAkQ00r
OyIKLSAgICAiJEpWICRDTSs7IgotICAgICIkSlQgJENNKzsiCi0gICAgIiROUyAkQ00rOyIKLSAg
ICAiJE5VICRDTSs7IgotICAgICIkT1AgJENNKzsiCi0gICAgIiRQTyAkQ00rOyIKLSAgICAiJFBS
ICRDTSs7IgotICAgICIkUVUgJENNKzsiCi0gICAgIiRSSSAkQ00rOyIKLSAgICAiJFNZICRDTSs7
IgotICAgICIkV0ogJENNKzsiCi0gICAgIiRDUiAkTEYgezEwMH07IgotICAgICIkTEI0Tm9uQnJl
YWtzPyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEw
MH07IgotICAgICIkQ00rICRMQjRCcmVha3MgezEwMH07IgotICAgICIkTEI0Tm9uQnJlYWtzIFsk
U1AgJFpXXTsiCi0gICAgIiRDQU5fQ00gJENNKiBbJFNQICRaV107IgotICAgICIkQ00rIFskU1Ag
JFpXXTsiCi0gICAgIiRFbW9qaUZvclNlcXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRF
bW9qaUZvclNlcXM7IgotICAgICIkQ0FOX0NNICRDTSs7IgotICAgICIkQ00rOyIKLSAgICAiJENB
Tl9DTSAkQ00qICRXSmNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkV0pjbTsiCi0gICAgIiRDTSsg
JFdKY207IgotICAgICIkV0pjbSAkQ0FOVF9DTTsiCi0gICAgIiRXSmNtICRDQU5fQ00gJENNKjsi
Ci0gICAgIiRHTGNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5UX0NNOyIKLSAgICAi
W1skTEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSogJEdMY207IgotICAgICIkQ00r
IEdMY207IgotICAgICIkTEI4Tm9uQnJlYWtzICRDTDsiCi0gICAgIiRDQU5fQ00gJENNKiAkQ0w7
IgotICAgICIkQ00rICRDTDsiCi0gICAgIiRMQjhOb25CcmVha3MgJENQOyIKLSAgICAiJENBTl9D
TSAkQ00qICRDUDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkRVg7Igot
ICAgICIkQ0FOX0NNICRDTSogJEVYOyIKLSAgICAiJENNKyAkRVg7IgotICAgICIkTEI4Tm9uQnJl
YWtzICRJUzsiCi0gICAgIiRDQU5fQ00gJENNKiAkSVM7IgotICAgICIkQ00rICRJUzsiCi0gICAg
IiRMQjhOb25CcmVha3MgJFNZOyIKLSAgICAiJENBTl9DTSAkQ00qICRTWTsiCi0gICAgIiRDTSsg
JFNZOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOX0NNICRDTSo7IgotICAgICIkT1BjbSAkU1AqICRD
QU5UX0NNOyIKLSAgICAiJE9QY20gJFNQKyAkQ00rICRBTF9GT0xMT1c/OyIKLSAgICAiJFFVY20g
JFNQKiAkT1BjbTsiCi0gICAgIigkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOyIKLSAgICAiJEIy
Y20gJFNQKiAkQjJjbTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207IgotICAgICIk
Q00rICRRVWNtOyIKLSAgICAiJFFVY20gLj87IgotICAgICIkUVVjbSAkTEIxOE5vbkJyZWFrcyAk
Q00qOyIKLSAgICAiJExCMjBOb25CcmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsg
IgotICAgICIkQkJjbSBbXiRDQl07IgotICAgICIkQkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOyIK
LSAgICAiJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87IgotICAgICIkU1ljbSAkSExjbTsi
Ci0gICAgIigkQUxjbSB8ICRITGNtKSAkSU5jbTsiCi0gICAgIiRDTSsgJElOY207IgotICAgICIk
RVhjbSAkSU5jbTsiCi0gICAgIiRJRGNtICRJTmNtOyIKLSAgICAiJElOY20gJElOY207IgotICAg
ICIkTlVjbSAkSU5jbTsiCi0gICAgIiRJRGNtICRQT2NtOyIKLSAgICAiJEFMY20gJE5VY207Igot
ICAgICIkSExjbSAkTlVjbTsiCi0gICAgIiRDTSsgJE5VY207IgotICAgICIkTlVjbSAkQUxjbTsi
Ci0gICAgIiROVWNtICRITGNtOyIKLSAgICAiJFBSY20gJElEY207IgotICAgICIkUFJjbSAoJEFM
Y20gfCAkSExjbSk7IgotICAgICIkUE9jbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJFBSY20g
fCAkUE9jbSk/ICgkT1BjbSB8ICRIWWNtKT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkq
ICgkQ0xjbSB8ICRDUGNtKT8gKCRQUmNtIHwgJFBPY20pPzsiCi0gICAgIiRKTGNtICgkSkxjbSB8
ICRKVmNtIHwgJEgyY20gfCAkSDNjbSk7IgotICAgICIoJEpWY20gfCAkSDJjbSkgKCRKVmNtIHwg
JEpUY20pOyIKLSAgICAiKCRKVGNtIHwgJEgzY20pICRKVGNtOyIKLSAgICAiKCRKTGNtIHwgJEpW
Y20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOyIKLSAgICAiKCRKTGNtIHwgJEpWY20g
fCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRQT2NtOyIKLSAgICAiJFBSY20gKCRKTGNtIHwgJEpW
Y20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICgkQUxj
bSB8ICRITGNtKTsiCi0gICAgIiRDTSsgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJElTY20gKCRB
TGNtIHwgJEhMY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207IgotICAg
ICIkQ00rICRPUGNtOyIKLSAgICAiJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7IgotI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkUkljbSAkUkljbTsiCi0jZW5kaWYKLSAg
ICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IjsKLQotc3RhdGljIGNvbnN0
IGNoYXIqIHVheDE0UmV2ZXJzZSA9Ci0gICAgIiEhcmV2ZXJzZTsiCi0gICAgIiRDTSsgJEFMUGx1
czsiCi0gICAgIiRDTSsgJEJBOyIKLSAgICAiJENNKyAkQkI7IgotICAgICIkQ00rICRCMjsiCi0g
ICAgIiRDTSsgJENMOyIKLSAgICAiJENNKyAkQ1A7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRD
TSsgJEdMOyIKLSAgICAiJENNKyAkSEw7IgotICAgICIkQ00rICRIWTsiCi0gICAgIiRDTSsgJEgy
OyIKLSAgICAiJENNKyAkSDM7IgotICAgICIkQ00rICRJRDsiCi0gICAgIiRDTSsgJElOOyIKLSAg
ICAiJENNKyAkSVM7IgotICAgICIkQ00rICRKTDsiCi0gICAgIiRDTSsgJEpWOyIKLSAgICAiJENN
KyAkSlQ7IgotICAgICIkQ00rICROUzsiCi0gICAgIiRDTSsgJE5VOyIKLSAgICAiJENNKyAkT1A7
IgotICAgICIkQ00rICRQTzsiCi0gICAgIiRDTSsgJFBSOyIKLSAgICAiJENNKyAkUVU7IgotI2lm
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00rICRSSTsiCi0jZW5kaWYKLSAgICAi
JENNKyAkU1k7IgotICAgICIkQ00rICRXSjsiCi0gICAgIiRDTSs7IgotICAgICIkQUxfRk9MTE9X
ICRDTSsgLyAoWyRCSyAkQ1IgJExGICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRT
UCsgJENNKiAoW14kT1AgJENNICRTUF0gfCBbJEFMIHtlb2Z9XSkpOyIKLSAgICAiWyRQUl0gLyAk
Q00rIFskQksgJENSICRMRiAkTkwgJFpXICRTUCB7ZW9mfV07IgotICAgICIkTEI0QnJlYWtzIFsk
TEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICIkTEI0QnJlYWtzICRDTSsgJENBTl9DTTsiCi0gICAg
IiRMRiAkQ1I7IgotICAgICJbJFNQICRaV10gWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIlsk
U1AgJFpXXSAkQ00rICRDQU5fQ007IgotICAgICIkRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9k
cz8gJEVtb2ppVmFyPyAkRW1vamlGb3JTZXFzOyIKLSAgICAiJENNKyAkQ0FOX0NNOyIKLSAgICAi
JENNKiAkV0ogJENNKiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENN
XTsiCi0gICAgIiRDQU5UX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJFdK
OyIKLSAgICAiJENNKiAkR0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZXV07
IgotICAgICIkQ0FOVF9DTSAkQ00qICRHTDsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRHTDsi
Ci0gICAgIiRDTCAkQ00rICRDQU5fQ007IgotICAgICIkQ1AgJENNKyAkQ0FOX0NNOyIKLSAgICAi
JEVYICRDTSsgJENBTl9DTTsiCi0gICAgIiRJUyAkQ00rICRDQU5fQ007IgotICAgICIkU1kgJENN
KyAkQ0FOX0NNOyIKLSAgICAiJENMIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkQ1AgWyRM
QjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAi
JElTIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkU1kgWyRMQjhOb25CcmVha3MtJENNXTsi
Ci0gICAgIlskQ0wgJENQICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7ICIKLSAgICAi
JENNKiAkQ0FOX0NNICRTUCogJENNKiAkT1A7IgotICAgICIkQ0FOVF9DTSAkU1AqICRDTSogJE9Q
OyIKLSAgICAiJEFMX0ZPTExPVz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsiCi0gICAgIiRBTF9G
T0xMT1dfTk9DTSAkQ00rICRTUCsgJENNKiAkT1A7IgotICAgICIkQ00qICRBTF9GT0xMT1dfQ00g
JENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJFNZICRDTSAkU1ArICRPUDsiCi0gICAgIiRDTSog
JE9QICRTUCogJENNKiAkUVU7IgotICAgICIkQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7
IgotICAgICIkQ00qICRCMiAkU1AqICRDTSogJEIyOyIKLSAgICAiJENNKiAkUVUgJENNKiAkQ0FO
X0NNOyIKLSAgICAiJENNKiAkUVUgJExCMThOb25CcmVha3M7IgotICAgICIkQ00qICRDQU5fQ00g
JENNKiAkUVU7IgotICAgICIkQ0FOVF9DTSAkQ00qICRRVTsiCi0gICAgIiRDTSogKCRCQSB8ICRI
WSB8ICROUykgJENNKiBbJExCMjBOb25CcmVha3MtJENNXTsiCi0gICAgIiRDTSogWyRMQjIwTm9u
QnJlYWtzLSRDTV0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAkQkI7IgotICAgICJbXiRD
Ql0gJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsiCi0gICAgIiRDTSogJEhMICRDTSogJFNZOyIK
LSAgICAiJENNKiAkSU4gJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICRJTiAkQ00q
ICRFWDsiCi0gICAgIiRDTSogJElOICRDTSogJElEOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSU47
IgotICAgICIkQ00qICRJTiAkQ00qICROVTsiCi0gICAgIiRDTSogJFBPICRDTSogJElEOyIKLSAg
ICAiJENNKiAkTlUgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwg
JEhMKSAkQ00qICROVTsiCi0gICAgIiRDTSogJElEICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFM
UGx1cyB8ICRITCkgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQ
TzsiCi0gICAgIigkQ00qICgkUFIgfCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAo
JE5VIHwgJElTIHwgJFNZKSkqICRDTSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQ
UiB8ICRQTykpPzsiCi0gICAgIiRDTSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7
IgotICAgICIkQ00qICgkSlQgfCAkSlYpICRDTSogKCRIMiB8ICRKVik7IgotICAgICIkQ00qICRK
VCAkQ00qICgkSDMgfCAkSlQpOyIKLSAgICAiJENNKiAkSU4gJENNKiAoJEgzIHwgJEgyIHwgJEpU
IHwgJEpWIHwgJEpMKTsiCi0gICAgIiRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRK
ViB8ICRKTCk7IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSog
JFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7Igot
ICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRJUzsiCi0gICAgIiRDTSogJE9QICRDTSog
KCRBTFBsdXMgfCAkSEwgfCAkTlUpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkg
JENNKiAkQ1A7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00qICRSSSAk
Q00qICRSSTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1v
ZHM7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0U2FmZUZvcndhcmQgPQotICAgICIhIXNh
ZmVfZm9yd2FyZDsiCi0gICAgIlskQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAk
U1AgJGRpY3Rpb25hcnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRk
aWN0aW9uYXJ5XTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNFNhZmVSZXZlcnNlID0KLSAgICAiISFzYWZlX3JldmVyc2U7IgotICAg
ICIkQ00rIFteJENNICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRDTSsgJFNQIC8g
LjsiCi0gICAgIiRTUCsgJENNKiAkT1A7IgotICAgICIkU1ArICRDTSogJFFVOyIKLSAgICAiJFNQ
KyAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJFNQKyAkQ00qICRCMjsiCi0gICAgIiRDTSogKCRI
WSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIoJENNKiAoJElTIHwgJFNZKSkrICRDTSogJE5VOyIK
LSAgICAiKCRDTCB8ICRDUCkgJENNKiAoJE5VIHwgJElTIHwgJFNZKTsiCi0gICAgIiRkaWN0aW9u
YXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KIHN0YXRpYyBTdHJpbmcgbWFwTGluZUl0ZXJhdG9yTW9kZVRv
UnVsZXMoTGluZUJyZWFrSXRlcmF0b3JNb2RlIG1vZGUsIGJvb2wgaXNDSkspCiB7Ci0gICAgU3Ry
aW5nQnVpbGRlciBydWxlc0J1aWxkZXI7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFBy
b2xvZ3VlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNCZWZvcmUp
OwogICAgIHN3aXRjaCAobW9kZSkgewogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpE
ZWZhdWx0OgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25t
ZW50c0N1c3RvbURlZmF1bHRDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNK
Syk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVy
YXRvclVBWDE0Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLUnVsZXM7CiAg
ICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Okxvb3NlOgotICAgICAgICBydWxlc0J1aWxk
ZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlQ0pLIDogdWF4MTRB
c3NpZ25tZW50c0N1c3RvbUxvb3NlTm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJl
dHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzIDogbGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVy
YXRvck1vZGU6Ok5vcm1hbDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVh
eDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9y
bWFsTm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxOb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6U3RyaWN0
OgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1
c3RvbVN0cmljdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSkspOwotICAg
ICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKS1J1bGVz
OwogICAgIH0KLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0QXNzaWdubWVudHNBZnRlcik7
Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEZvcndhcmQpOwotICAgIHJ1bGVzQnVpbGRl
ci5hcHBlbmQodWF4MTRSZXZlcnNlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2Fm
ZUZvcndhcmQpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZlUmV2ZXJzZSk7Ci0g
ICAgcmV0dXJuIHJ1bGVzQnVpbGRlci50b1N0cmluZygpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiAiIjsKIH0KIAogLy8gUmVjb2duaXplIEJDUDQ3IGNvbXBsaWFudCBw
cmltYXJ5IGxhbmd1YWdlIHZhbHVlcyBvZiAnemgnLCAnamEnLCAna28nCkBAIC03ODgsOSArMjUz
LDI5IEBAIFVCcmVha0l0ZXJhdG9yKiBvcGVuTGluZUJyZWFrSXRlcmF0b3IoY29uc3QgQXRvbWlj
U3RyaW5nJiBsb2NhbGUsIExpbmVCcmVha0l0ZXJhCiAgICAgaWYgKG1vZGUgPT0gTGluZUJyZWFr
SXRlcmF0b3JNb2RlOjpEZWZhdWx0KQogICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlbihVQlJL
X0xJTkUsIGxvY2FsZUlzRW1wdHkgPyBjdXJyZW50VGV4dEJyZWFrTG9jYWxlSUQoKSA6IGxvY2Fs
ZS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCAwLCAwLCAmb3BlblN0YXR1cyk7CiAgICAgZWxzZSB7
Ci0gICAgICAgIFVQYXJzZUVycm9yIHBhcnNlU3RhdHVzOwotICAgICAgICBhdXRvIHJ1bGVzID0g
bWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMobW9kZSwgaXNDSkspOwotICAgICAgICB1YnJrSXRl
ciA9IHVicmtfb3BlblJ1bGVzKFN0cmluZ1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVy
cygpLCBydWxlcy5sZW5ndGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7Cisg
ICAgICAgIEJyZWFraW5nUnVsZVNldCBydWxlU2V0ID0gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5v
bkNKSzsKKyAgICAgICAgc3dpdGNoIChtb2RlKSB7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRl
cmF0b3JNb2RlOjpEZWZhdWx0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtp
bmdSdWxlU2V0OjpVQVgxNENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Okxvb3Nl
OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExv
b3NlQ0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpOb3JtYWw6CisgICAg
ICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pL
IDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6U3RyaWN0OgorICAgICAgICAg
ICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdENKSyA6IEJy
ZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3ROb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGNyZWF0ZUl0ZXJhdG9yRm9y
UnVsZVNldChydWxlU2V0KSkKKyAgICAgICAgICAgIHVicmtJdGVyID0gcmVpbnRlcnByZXRfY2Fz
dDxVQnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKKyAgICAgICAgICAgIGF1dG8gcnVsZXMgPSBtYXBM
aW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7CisgICAgICAgICAgICB1YnJrSXRl
ciA9IHVicmtfb3BlblJ1bGVzKFN0cmluZ1ZpZXcocnVsZXMpLnVwY29udmVydGVkQ2hhcmFjdGVy
cygpLCBydWxlcy5sZW5ndGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVzLCAmb3BlblN0YXR1cyk7Cisg
ICAgICAgIH0KICAgICB9CiAgICAgLy8gbG9jYWxlIGNvbWVzIGZyb20gYSB3ZWIgcGFnZSBhbmQg
aXQgY2FuIGJlIGludmFsaWQsIGxlYWRpbmcgSUNVCiAgICAgLy8gdG8gZmFpbCwgaW4gd2hpY2gg
Y2FzZSB3ZSBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgbG9jYWxlLgpAQCAtODExLDYgKzI5Niw3
IEBAIHZvaWQgY2xvc2VMaW5lQnJlYWtJdGVyYXRvcihVQnJlYWtJdGVyYXRvciomIGl0ZXJhdG9y
KQogewogICAgIFVCcmVha0l0ZXJhdG9yKiB1YnJrSXRlciA9IGl0ZXJhdG9yOwogICAgIEFTU0VS
VCh1YnJrSXRlcik7CisgICAgLy8gRklYTUU6IFVzZSBSQUlJIHRvIGRvIHRoaXMgaW5zdGVhZC4K
ICAgICB1YnJrX2Nsb3NlKHVicmtJdGVyKTsKICAgICBpdGVyYXRvciA9IG51bGxwdHI7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKaW5kZXggYmNmNDRjMDdhNGVjOTFi
NTE0NjdjMjRmNGZlNzE2ZWQzNGRiY2MxNS4uNmY4YTFlZmY3NDk5YmNiZTlhODgwMjdjMDMzMTdl
YjYyYzRiMjY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVy
YXRvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaApAQCAt
MjksNiArMjksMzAgQEAgbmFtZXNwYWNlIFdURiB7CiAKIGVudW0gY2xhc3MgTGluZUJyZWFrSXRl
cmF0b3JNb2RlIHsgRGVmYXVsdCwgTG9vc2UsIE5vcm1hbCwgU3RyaWN0IH07CiAKK2VudW0gY2xh
c3MgQnJlYWtpbmdSdWxlU2V0IHsKKyAgICBDdXJzb3JNb3ZlbWVudCwKKyAgICBVQVgxNENKSywK
KyAgICBVQVgxNE5vbkNKSywKKyAgICBVQVgxNExvb3NlQ0pLLAorICAgIFVBWDE0TG9vc2VOb25D
SkssCisgICAgVUFYMTROb3JtYWxDSkssCisgICAgVUFYMTROb3JtYWxOb25DSkssCisgICAgVUFY
MTRTdHJpY3RDSkssCisgICAgVUFYMTRTdHJpY3ROb25DSksKK307CisKK2V4dGVybiBjb25zdCBj
aGFyKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VOb25DSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBs
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CisKK1VCcmVha0l0ZXJhdG9y
KiBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0KTsKKwogLy8gVGhpcyBp
cyBzaW1pbGFyIHRvIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBpbiBtb3N0IGNhc2VzLCBidXQg
aXMgc3ViamVjdCB0bwogLy8gcGxhdGZvcm0gVUkgY29udmVudGlvbnMuIE9uZSBub3RhYmxlIGV4
YW1wbGUgd2hlcmUgdGhpcyBjYW4gYmUgZGlmZmVyZW50CiAvLyBmcm9tIGNoYXJhY3RlciBicmVh
ayBpdGVyYXRvciBpcyBUaGFpIHByZXBlbmQgY2hhcmFjdGVycywgc2VlIGJ1ZyAyNDM0Mi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJu
YWxJQ1VNYWMubW0gYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvcklu
dGVybmFsSUNVTWFjLm1tCmluZGV4IGJlZjVkYWE2NDI4ODgyMWUyMGYyNjI4YzY4NTVlZThlODhh
Mzg5MmMuLjc0NTZkMDcxNmJmYmU3NTFlOWRhNDVmZmFkNjM3M2I5NmZkOTU0Y2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VN
YWMubW0KKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVU1hYy5tbQpAQCAtMjEsMTIgKzIxLDE3NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1UuaCIKIAorI2luY2x1ZGUgIlRl
eHRCcmVha0l0ZXJhdG9yLmgiCisjaW5jbHVkZSA8dW5pY29kZS91YnJrLmg+CisjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogCisjZGVmaW5lIFVTRV9QUkVDT01QSUxFRF9CUkVBS0lOR19S
VUxFUyAoVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgKChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TKSAm
JiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApKSkKKworI2lmIFVT
RV9QUkVDT01QSUxFRF9CUkVBS0lOR19SVUxFUworI2luY2x1ZGUgPHVuaWNvZGUvdWRhdGEuaD4K
KyNlbmRpZgorCitAaW50ZXJmYWNlIFdURkJ1bmRsZUZpbmRlciA6IE5TT2JqZWN0CitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBXVEZCdW5kbGVGaW5kZXIKK0BlbmQKKwogbmFtZXNwYWNlIFdURiB7
CiAKIHN0YXRpYyBjb25zdCBpbnQgbWF4TG9jYWxlU3RyaW5nTGVuZ3RoID0gMzI7CiAKKyNpZiBV
U0VfUFJFQ09NUElMRURfQlJFQUtJTkdfUlVMRVMKK3N0YXRpYyBVRGF0YU1lbW9yeSogYnJlYWtJ
dGVyYXRvclJlc291cmNlKE5TU3RyaW5nICpmaWxlTmFtZUJhc2UpCit7CisgICAgTlNCdW5kbGUg
KmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV1RGQnVuZGxlRmluZGVyIGNsYXNz
XV07CisgICAgTlNTdHJpbmcgKnBhdGggPSBbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpmaWxlTmFt
ZUJhc2Ugb2ZUeXBlOkAiYnJrIiBpbkRpcmVjdG9yeTpAIkJyZWFraW5nUnVsZXMiXTsKKyAgICBp
ZiAoIXBhdGgpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIE5TU3RyaW5nICpkaXJlY3Rv
cnkgPSBbcGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOworCisjaWYgUExB
VEZPUk0oSU9TKQorICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAg
IHVkYXRhX3NldEZpbGVBY2Nlc3MoVURBVEFfRklMRVNfRklSU1QsICZlcnJvckNvZGUpOworICAg
IGlmIChVX0ZBSUxVUkUoZXJyb3JDb2RlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5k
aWYKKworICAgIFVFcnJvckNvZGUgdURhdGFFcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAg
VURhdGFNZW1vcnkqIHJlc3VsdCA9IHVkYXRhX29wZW4oW2RpcmVjdG9yeSBVVEY4U3RyaW5nXSwg
ImJyayIsIFtmaWxlTmFtZUJhc2UgVVRGOFN0cmluZ10sICZ1RGF0YUVycm9yQ29kZSk7CisKKyNp
ZiBQTEFURk9STShJT1MpCisgICAgdWRhdGFfc2V0RmlsZUFjY2VzcyhVREFUQV9ERUZBVUxUX0FD
Q0VTUywgJmVycm9yQ29kZSk7CisgICAgaWYgKFVfRkFJTFVSRShlcnJvckNvZGUpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorCisgICAgaWYgKFVfRkFJTFVSRSh1RGF0YUVycm9y
Q29kZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30K
Kworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShV
RGF0YU1lbW9yeSogZGF0YSkKK3sKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAgVUJy
ZWFrSXRlcmF0b3IqIHJlc3VsdCA9IHVicmtfb3BlbkJpbmFyeVJ1bGVzKHN0YXRpY19jYXN0PGNv
bnN0IHVpbnQ4X3QgKj4odWRhdGFfZ2V0TWVtb3J5KGRhdGEpKSwgc3RkOjpudW1lcmljX2xpbWl0
czxpbnQzMl90Pjo6bWF4KCksIG51bGxwdHIsIDAsICZlcnJvckNvZGUpOworCisgICAgaWYgKFVf
RkFJTFVSRShlcnJvckNvZGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0
b3IoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNl
RGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMi
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3Io
YnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAg
cmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRDSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0
YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Q0pLIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVy
YXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0
YS5nZXQoKSkpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVh
a0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJl
c291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSyIpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJl
c291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0
KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNv
dXJjZURhdGEoYnJlYWtJdGVyYXRvclJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0
ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkp
OworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9y
KiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksoKQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3Vy
Y2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksiKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21S
ZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdl
dCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJl
c291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+
IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQo
KSkpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJh
dG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJl
c291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSyIpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9y
RnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0
b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5
Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3RDSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJh
dG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRh
LmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFr
SXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksoKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJh
dG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLIikpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRl
cmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBp
dGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBjbG9uZUl0ZXJhdG9y
KFVCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKK3sKKyAgICBpZiAoIWl0ZXJhdG9yKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJP
UjsKKyAgICBpZiAoYXV0byogcmVzdWx0ID0gdWJya19zYWZlQ2xvbmUoaXRlcmF0b3IsIG51bGxw
dHIsIDAsICZlcnJvckNvZGUpKSB7CisgICAgICAgIGlmIChVX1NVQ0NFU1MoZXJyb3JDb2RlKSkK
KyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOwor
fQorI2VuZGlmCisKK1VCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJl
YWtpbmdSdWxlU2V0IHJ1bGVTZXQpCit7CisjaWYgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JV
TEVTCisgICAgc3dpdGNoIChydWxlU2V0KSB7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OkN1
cnNvck1vdmVtZW50OgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihjdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENKSzoKKyAgICAg
ICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSygpKTsKKyAg
ICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks6CisgICAgICAgIHJldHVybiBjbG9u
ZUl0ZXJhdG9yKGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksoKSk7CisgICAgY2FzZSBCcmVh
a2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VDSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9y
KGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSygpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVs
ZVNldDo6VUFYMTRMb29zZU5vbkNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxl
U2V0OjpVQVgxNE5vcm1hbENKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSygpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6
VUFYMTROb3JtYWxOb25DSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6
OlVBWDE0U3RyaWN0Q0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Q0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgx
NFN0cmljdE5vbkNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdE5vbkNKSygpKTsKKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShydWxlU2V0KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorfQorCiBzdGF0aWMgaW5s
aW5lIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gdGV4dEJyZWFrTG9jYWxlUHJlZmVyZW5jZSgpCiB7
CiAgICAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBsb2NhbGUgPSBhZG9wdENGKENGUHJl
ZmVyZW5jZXNDb3B5VmFsdWUoQ0ZTVFIoIkFwcGxlVGV4dEJyZWFrTG9jYWxlIiksCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RlMu
Y21ha2UKaW5kZXggNTEzMGZmY2JjYzdjOWNlNzUxNGFmNGQ1NTNiZDhhNGYwNTAxNDU2ZC4uOWY4
MzMwYWY3ZmUzNjNkODAxM2VlZTM0YmVkZDdmYzE1Y2I3OTFlYSAxMDA2NDQKLS0tIGEvU291cmNl
L2NtYWtlL1dlYktpdEZTLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQpA
QCAtMjcsNiArMjcsNyBAQCBpZiAoTk9UIFRPT0xTX0RJUikKIGVuZGlmICgpCiAKIHNldChERVJJ
VkVEX1NPVVJDRVNfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzIikKK3Nl
dChERVJJVkVEX1NPVVJDRVNfV1RGX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291
cmNlcy9XVEYiKQogc2V0KERFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVIgIiR7Q01B
S0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUiKQogc2V0KERFUklW
RURfU09VUkNFU19XRUJDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUTEVHQUNZX0RJUiAiJHtDTUFL
RV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3kiKQpAQCAtMzUsNiArMzYs
OCBAQCBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJJTlNQRUNU
T1JVSV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9y
VUkiKQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRD
T1JFX0RJUn0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9
KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2lu
Z1J1bGVzKQogZmlsZShNQUtFX0RJUkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9L1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lKQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9T
T1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0pCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFu
Z2VMb2cKaW5kZXggYjY1MjE1YmM5ZGE2N2NjMDE4MzE4NjRmYTEwZDg0MTk0ODA0NTM3Mi4uMmUz
Y2IxNDVlZjIwYjY4ZmVlODA2N2JhNzAyYmUwMDBhYjNkMWE5NyAxMDA2NDQKLS0tIGEvQ2hhbmdl
TG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTAyLTA4ICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJQ1Ug
YnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2Nt
YWtlL1dlYktpdEZTLmNtYWtlOgorCiAyMDE3LTAyLTA3ICBPbGl2aWVyIEJsaW4gIDxvbGl2aWVy
LmJsaW5Ac29mdGF0aG9tZS5jb20+CiAKICAgICAgICAgW0dUS11bRWZsXSBEbyBub3QgcmVxdWly
ZSBMaWJYc2x0IGlmIFhTTFQgaXMgZGlzYWJsZWQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300966</attachid>
            <date>2017-02-08 14:26:17 -0800</date>
            <delta_ts>2017-02-09 15:03:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20170208142353.patch</filename>
            <type>text/plain</type>
            <size>123647</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExODk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YjBhOTI0MGY3M2JiZWRkMTBmMzBlMDEyOTU5NzBmMjY5ZjY3Yjc5Li4zNmE4YmVmMjJjNjFhNWMz
ZmQ4OGNhZDY3NWM5MjgxMjgxZGExZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNy0wMi0wOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbmNsdWRlIHRoZSBieXRlY29kZSBmaWxlcyBpbnNpZGUgdGhl
IEphdmFTY3JpcHRDb3JlIGJ1bmRsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTctMDItMDggIFNhYW0gQmFyYXRpICA8c2JhcmF0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgQWlyIElSQyBtaWdodCBzcGlsbCBhIHRlcm1pbmFsIHRo
YXQgcHJvZHVjZXMgYSB2YWx1ZSBhZnRlciB0aGUgdGVybWluYWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2IzZjE4MWM5ZDRj
Y2UwYzQzMzlhMzQzNmI4N2M0ZWE0OTkzNDk3Yi4uYmU3YzZmOTk3MjllMjQ4MDdlOGFjZDY1ZDM0
ZjM3YmExYTk0YWY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OSBAQAorMjAxNy0wMi0wOCAgTXlsZXMgQy4g
TWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJy
ZWFraW5nIGl0ZXJhdG9ycyBhdCBidWlsZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbWFjT1MgYW5k
IGlPUyBTREtzIGluY2x1ZGUgYSB0b29sLCBpY3VnZW5icmssIHdoaWNoIGNvbXBpbGVzIElDVSBi
cmsgYnJlYWtpbmcKKyAgICAgICAgcnVsZXMgaW50byBieXRlY29kZS4gUHJldmlvdXNseSwgdGhp
cyBjb21waWxhdGlvbiB3YXMgZG9uZSBhdCBydW50aW1lIGluc2lkZSB0aGUgSUNVCisgICAgICAg
IHVicmtfb3BlblJ1bGVzKCkgZnVuY3Rpb24uIE1vdmluZyB0aGlzIGNvbXBpbGF0aW9uIHN0ZXAg
dG8gY29tcGlsZSB0aW1lIHJhdGhlciB0aGFuCisgICAgICAgIGJ1aWxkIHRpbWUgY2F1c2VzIGEg
cGVyZm9ybWFuY2UgYm9vc3QuCisKKyAgICAgICAgUHJldmlvdXNseSwgdGhlIHNvdXJjZSBmb3Ig
dGhlIGJyZWFraW5nIHJ1bGVzIHdhcyBhc3NlbWJsZWQgYnkgY29uY2F0ZW5hdGluZyBDIHN0cmlu
Z3MKKyAgICAgICAgYXQgcnVudGltZS4gTm93LCB0aGUgc291cmNlIGlzIGNvbnRhaW5lZCB3aXRo
aW4gYSBmZXcgdGV4dCBmaWxlcyBpbnNpZGUKKyAgICAgICAgd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy4gQSBidWlsZCBzdGVwICh1c2luZyBhIE1ha2VmaWxlKSB3aWxsIGdlbmVyYXRlIHNvdXJjZSBj
b2RlCisgICAgICAgIGNvbnRhaW5pbmcgdGhlc2Ugc3RyaW5ncywgYW5kIFdURiB3aWxsIGluY2x1
ZGUgdGhlc2Ugc291cmNlIGZpbGVzIGluIHRoZSBzYW1lIHdheSBhbnkKKyAgICAgICAgb2Ygb3Vy
IHByb2plY3RzIHVzZSBnZW5lcmF0ZWQgc291cmNlcy4gQWRkaXRpb25hbGx5LCBvbiBPU2VzIHdo
aWNoIHN1cHBvcnQgaXQsIHRoZXNlCisgICAgICAgIHN0cmluZ3MgZ2V0IGNvbXBpbGVkIGRpcmVj
dGx5IGludG8gSUNVIGJ5dGVjb2RlLCBhbmQgdGhlbiBpbmNsdWRlZCBpbiB0aGUgZnJhbWV3b3Jr
CisgICAgICAgIGJ1bmRsZS4gQmVjYXVzZSBXVEYgZ2V0cyBzdGF0aWNhbGx5IGxpbmtlZCBpbnRv
IEphdmFTY3JpcHRDb3JlLCB0aGlzIGlzIHRoZSBidW5kbGUKKyAgICAgICAgd2hpY2ggaW5jbHVk
ZXMgdGhlIGJ5dGVjb2RlIGZpbGVzLgorCisgICAgICAgIEF0IHJ1bnRpbWUsIHdlIGZpcnN0IGNo
ZWNrIGlmIHdlIGhhdmUgYSBmaWxlIGluIG91ciBidW5kbGUgb2YgdGhlIGFwcHJvcHJpYXRlIG5h
bWUsCisgICAgICAgIGFuZCB0aGVuIHNlZSBpZiBJQ1UgY2FuIG9wZW4gaXQgdXNpbmcgaXRzIFJ1
bGVCYXNlZEJyZWFrSXRlcmF0b3IgaW50ZXJmYWNlICh3aGljaAorICAgICAgICBpbmNsdWRlcyBh
IHZlcnNpb24gY2hlY2spLiBJZiBhbnkgb2YgdGhlc2UgY2hlY2tzIGZhaWwsIG9yIGlmIHdlJ3Jl
IG9uIGEgcG9ydCB3aGljaAorICAgICAgICBkb2Vzbid0IGhhdmUgdGhlIG5vdGlvbiBvZiBidW5k
bGVzLCB3ZSB3aWxsIHVzZSB0aGUgQyBzdHJpbmdzIGdlbmVyYXRlZCBhYm92ZSwgYW5kCisgICAg
ICAgIHBhc3MgdGhlbSB0byB1YnJrX29wZW5SdWxlcygpIHRoZSBzYW1lIHdheSB3ZSB3ZXJlIGRv
aW5nIGJlZm9yZSB0aGlzIHBhdGNoLgorCisgICAgICAgIFRoZSBSdWxlQmFzZWRCcmVha0l0ZXJh
dG9yIGludGVyZmFjZSBpbiBJQ1UgcmVxdWlyZXMgYWRkaW5nIHNvbWUgbW9yZSBvZiBJQ1UncyBw
dWJsaWMKKyAgICAgICAgaGVhZGVycyBpbnRvIFdlYktpdC4KKworICAgICAgICAqIFdURi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgYSBuZXcgRGVyaXZlZCBTb3VyY2VzIHRhcmdldCB3
aGljaCB1c2VzIGEKKyAgICAgICAgRGVyaXZlZFNvdXJjZXMubWFrZSBNYWtlZmlsZSwgdGhlIHNh
bWUgd2F5IFdlYktpdDIsIFdlYkNvcmUsIGFuZCBKYXZhU2NyaXB0Q29yZSB3cm9rLgorICAgICAg
ICBBbHNvLCBhZGQgdGhlIHJ1bGVzIHRleHQgZmlsZXMgdG8gdGhlIHByb2plY3QuIFRoZW4sIG1h
a2UgV1RGIGRlcGVuZCBvbiB0aGlzIG5ldworICAgICAgICB0YXJnZXQuCisgICAgICAgICogd3Rm
L0NNYWtlTGlzdHMudHh0OiBBZGQgYnVpbGQgc3RlcHMgZm9yIG90aGVyIHBvcnRzIHRvIGdlbmVy
YXRlIHRoZSBicmVha2luZworICAgICAgICBydWxlcyBzdHJpbmdzIHNvdXJjZSBmaWxlcy4KKyAg
ICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkZWQuIFRoaXMgaXMgdGhlIHBsYWNl
IHdoZXJlIGljdWdlbmJyayBpcyBhY3R1YWxseSAKKyAgICAgICAgaW52b2tlZC4gSXQgYWxzbyB0
cmlnZ2VycyB0aGUgc2NyaXB0IChHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkpIHdoaWNo
IGdlbmVyYXRlcworICAgICAgICB0aGUgQysrIGNvZGUgZm9yIHRoZSBydWxlcyBzdHJpbmdzLgor
ICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9HZW5lcmF0
ZUJyZWFraW5nUnVsZVN0cmluZ3MucHk6IEFkZGVkLiBHZW5lcmF0ZSBDKysuCisgICAgICAgICht
YWluKToKKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
RXBpbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisg
ICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDog
QWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJy
ZWFrSXRlcmF0b3IuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQp
OiBVc2VkIGJ5IG90aGVyIHBvcnRzLiBSZXR1cm5pbmcgbnVsbHB0ciBtZWFucyB3ZSBjYW4ndAor
ICAgICAgICB1c2UgcHJlY29tcGlsZWQgcnVsZXMuCisgICAgICAgIChXVEY6OmNyZWF0ZUN1cnNv
ck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2spOiBVc2VkIGluIHBsYWNlIG9mIHRoZSBoYXJk
Y29kZWQgcnVsZXMKKyAgICAgICAgaW4gY3Vyc29yTW92ZW1lbnRJdGVyYXRvcigpLgorICAgICAg
ICAoV1RGOjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKTogUmVtb3ZlIGhhcmRjb2RlZCBydWxlcy4K
KyAgICAgICAgKFdURjo6bWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMpOiBVcGRhdGUgdG8gdXNl
IHRoZSBuZXcgZ2VuZXJhdGVkIEMrKyBzdHJpbmdzLgorICAgICAgICAoV1RGOjpvcGVuTGluZUJy
ZWFrSXRlcmF0b3IpOiBUaGUgbG9naWMgb2YgdHJ5aW5nIHRvIHVzZSBhIHByZWNvbXBpbGVkIGJ5
dGVjb2RlLCBhbmQgZmFsbGluZworICAgICAgICBiYWNrIHRvIEMrKyBzdHJpbmdzIGlmIGl0IGlz
bid0IHBvc3NpYmxlLgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmg6IEhl
YWRlciBmb3IgZ2VuZXJhdGVkIEMrKyBjb2RlLgorICAgICAgICAqIHd0Zi90ZXh0L21hYy9UZXh0
QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAgICAgICAoV1RGOjpicmVha0l0ZXJh
dG9yRnJvbVJlc291cmNlKTogVGhlIGFjdHVhbCBsb2dpYyBmb3IgbG9va2luZyBpbnNpZGUgdGhl
IGJ1bmRsZSBmb3IgdGhlCisgICAgICAgIHByZWNvbXBpbGVkIGJ5dGVjb2RlLgorICAgICAgICAo
V1RGOjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNv
dXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLKTogQ2FsbHMg
YnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAg
ICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSkspOiBDYWxscyBicmVha0l0
ZXJhdG9yRnJvbVJlc291cmNlKCkuCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSyk6IENhbGxzIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAg
ICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSyk6IENhbGxzIGJyZWFrSXRl
cmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbE5vbkNKSyk6IENhbGxzIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAg
ICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSyk6IENhbGxzIGJyZWFrSXRl
cmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdE5vbkNKSyk6IENhbGxzIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2UoKS4KKyAgICAg
ICAgKFdURjo6Y3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KTogIENhbGwgdGhlIGFib3ZlIHN0YXRp
YyBmdW5jdGlvbnMuCisKIDIwMTctMDItMDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgUGxheWJhY2sgc3RhbGxzIHdoZW4gYSBTb3VyY2VCdWZmZXIgYXBwZW5k
IGNhdXNlcyBmcmFtZSBldmljdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0
ZGI2NjcyOWE1NTdjMDNjNWNlZTgwOGI2NzExNjNiYjZhZTE5NWU3Li44OGExYjZkMDJjYTE1ZWE5
YTBlOGNjYjIzZmI5YmEwMWZjMjBiOTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTIyOCw2ICsxMjI4LDcgQEAKIAkJMUEyOEQ0QTgxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3Ry
aW5nUmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUEyOEQ0QTcxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVmUHJpdmF0ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBODgyNkIx
NjUzQzRDRDFBNjQyOTgzQiAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5VGFibGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEI0N0YyMzQzNjZDNEI3MkFD
ODUyQTdFIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgKi87IH07CiAJCTFBQ0Y3Mzc3
MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBQ0Y3Mzc2MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCAq
LzsgfTsKKwkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRDE4NzhGMUQ1NTk2
MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovOyB9OwogCQkyNjAwQjVBNjE1MkJBQUE3MDA5
MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9p
bmVyLmNwcCAqLzsgfTsKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9p
bmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAw
QjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLzsgfTsKIAkJMjYyRDg1
QjYxQzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjJEODVCNDFDMEQ2
NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLzsgfTsKQEAg
LTM2NTcsNiArMzY1OCw3IEBACiAJCTFDOTA1MTQ1MEJBOUU4QTcwMDgxRTlEMCAvKiBCYXNlLnhj
Y29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRBMEQzMkMzOUEwMDQxQkNGRiAvKiBK
YXZhU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEIwRDMyQzM5QTAwNDFCQ0ZG
IC8qIEphdmFTY3JpcHRDb3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEph
dmFTY3JpcHRDb3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhGMUQ1
NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZm9sZGVyOyBuYW1lID0gQnJlYWtpbmdSdWxlczsgcGF0
aCA9IC4uL1dURi9CcmVha2luZ1J1bGVzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
NjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdK
b2luZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdKb2luZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYyRDg1QjQxQzBENjUwRjAwNkFDQjYx
IC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBwYXRoID0g
YjMvYWlyL0FpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02MDEzLDYgKzYwMTUsNyBAQAogCQk2NTBGREY4RDA5RDBGQ0E3MDA3NjlF
NTQgLyogRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAq
LywKIAkJCQkwRjYxODMzMjFDNDVGMzVDMDA3MjQ1MEIgLyogQWlyT3Bjb2RlLmggKi8sCiAJCQkJ
MEY2MTgzMzQxQzQ1RjNCNjAwNzI0NTBCIC8qIEFpck9wY29kZUdlbmVyYXRlZC5oICovLAogCQkJ
CTBGNjE4MzM1MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVVdGlscy5oICovLApAQCAtOTQy
MCw2ICs5NDIzLDcgQEAKIAkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJMUNEMTg3OTAxRDU1
OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJCUE1M0Yx
QUMwMThDOTBGOEYwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBiL1Nv
dXJjZS9XVEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTZiMDQ3NjlmY2EzOThhY2M5OTc4NjkyYjc3NzA2NDA1ZWQwNDhhNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkK
QEAgLTAsMCArMSwxMTAgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
IyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5cworaW1wb3J0IHJlCisKK2hlYWRl
ciA9ICIiIi8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLyIiIgorCisKK2RlZiBtYWluKGFyZ3Y9Tm9uZSk6CisgICAgaWYgbm90
IGFyZ3Y6CisgICAgICAgIGFyZ3YgPSBzeXMuYXJndgorICAgIGZpbGVOYW1lU3RhcnRJbmRleCA9
IDEKKworICAgIGluY2x1ZGVEZWZpbmVzID0gRmFsc2UKKyAgICBpZiBhcmd2W2ZpbGVOYW1lU3Rh
cnRJbmRleF0gPT0gIi1pbmNsdWRlRGVmaW5lcyI6CisgICAgICAgIGluY2x1ZGVEZWZpbmVzID0g
VHJ1ZQorICAgICAgICBmaWxlTmFtZVN0YXJ0SW5kZXggPSBmaWxlTmFtZVN0YXJ0SW5kZXggKyAx
CisKKyAgICBzeW1ib2xOYW1lID0gYXJndltmaWxlTmFtZVN0YXJ0SW5kZXhdWzBdLmxvd2VyKCkg
KyBhcmd2W2ZpbGVOYW1lU3RhcnRJbmRleF1bMTpdCisgICAgZmlsZU5hbWVTdGFydEluZGV4ID0g
ZmlsZU5hbWVTdGFydEluZGV4ICsgMQorICAgIGZpbGVOYW1lcyA9IGFyZ3ZbZmlsZU5hbWVTdGFy
dEluZGV4Ol0KKworICAgIHByaW50KGhlYWRlcikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgi
Ly8gRE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBi
eSB0aGUgc2NyaXB0IikKKyAgICBwcmludCgiLy8gV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
R2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IikKKyAgICBwcmludCgiIikKKyAgICBwcmlu
dCgiI2luY2x1ZGUgXCJjb25maWcuaFwiIikKKyAgICBwcmludCgiI2luY2x1ZGUgPHVuaWNvZGUv
dXZlcm51bS5oPiIpCisgICAgcHJpbnQoIiIpCisgICAgaWYgaW5jbHVkZURlZmluZXM6CisgICAg
ICAgIHByaW50KCIjZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9T
KSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTEwMCkpIikKKyAgICAgICAgcHJpbnQoIiNkZWZpbmUgSEFWRV9FWFRSQV9JQ1VfTkFNRURf
U0VUUyAoKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01J
Tk9SX05VTSA+PSA5KSkiKQorICAgICAgICBwcmludCgiIikKKyAgICBwcmludCgibmFtZXNwYWNl
IFdURiB7IikKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiY29uc3QgY2hhciogIiArIHN5bWJv
bE5hbWUgKyAiID0gIikKKworICAgIGZvciBmaWxlTmFtZSBpbiBmaWxlTmFtZXM6CisgICAgICAg
IGZvciBsIGluIG9wZW4oZmlsZU5hbWUsICdyJyk6CisgICAgICAgICAgICBsaW5lID0gbC5yc3Ry
aXAoKQorICAgICAgICAgICAgaWYgcmUubWF0Y2goIl5ccyokIiwgbGluZSk6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoIiMgIik6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lID09ICIjIjoKKyAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyIpOgorICAg
ICAgICAgICAgICAgIHByaW50KGxpbmUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgIG1hdGNoID0gcmUubWF0Y2goIl4oLiopOyggIyAuKik/JCIsIGxpbmUpCisgICAgICAgICAg
ICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICJcIiIgKyBtYXRj
aC5ncm91cCgxKS5yZXBsYWNlKCJcXCIsICJcXFxcIikgKyAiO1wiIgorICAgICAgICAgICAgICAg
ICAgICBpZiBtYXRjaC5ncm91cCgyKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCAr
PSAiIC8vICIgKyBtYXRjaC5ncm91cCgyKVszOl0KKyAgICAgICAgICAgICAgICAgICAgcHJpbnQo
cmVzdWx0KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGV4aXQo
MSkKKworICAgIHByaW50KCI7IikKKyAgICBwcmludCgifSIpCisKK2lmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6CisgICAgc3lzLmV4aXQobWFpbihzeXMuYXJndikpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlNDJlMGE1ZTk5M2RkM2M4MTkyOTIzMGQ1MTYy
NzZiOWYwMTVjMDM5Li42NDk2ZjE1YjBmOGNmM2Q5ODExM2JhYjA5YWNlOTRiMjhmMDA5MDI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcsNiArNywxNyBA
QAogCW9iamVjdHMgPSB7CiAKIC8qIEJlZ2luIFBCWEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICov
CisJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJ
CQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0g
MUNEMTg3ODMxRDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovOworCQkJYnVpbGRQaGFzZXMg
PSAoCisJCQkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVyYXRlIERlcml2ZWQgU291
cmNlcyAqLywKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkpOworCQkJbmFtZSA9ICJE
ZXJpdmVkIFNvdXJjZXMiOworCQkJcHJvZHVjdE5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJ
fTsKIAkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi8gPSB7
CiAJCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0
ID0gNjVBRkEyODgxNjMwQjk3NzAwM0Q3MjNDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJDb3B5IFdURiBIZWFkZXJzIiAqLzsKQEAgLTg0LDcgKzk1
LDYgQEAKIAkJMTQ0N0FFQzYxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FF
QzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OwogCQkxNDQ3
QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGli
V1RGLmEgKi87IH07CiAJCTE0NDdBRUM5MThGQ0U1OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDODE4
RkNFNTk0MDBCM0Q3RkYgLyogbWJtYWxsb2MuY3BwICovOyB9OwotCQkxNDQ3QUVDQjE4RkNFNUI5
MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vj
b3JlLmR5bGliICovOyB9OwogCQkxNDY5NDE5MjE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRp
bWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDY5
NDE5MDE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJMTQ2OTQxOTMxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxv
b3BUaW1lckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE0Njk0MTkxMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXJDRi5jcHAgKi87IH07
CiAJCTE0Njk0MTk2MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTk0MTZFQUFGRjgwMDI0
RTE0NiAvKiBTY2hlZHVsZVBhaXIuaCAqLzsgfTsKQEAgLTM0MCw2ICszNTAsMTYgQEAKIAkJQURG
MkNFNjYxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURGMkNFNjQxRTM5RjEwNjAwNjg4OURC
IC8qIE1lbW9yeUZvb3RwcmludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUFERjJDRTY3MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJp
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURG
MkNFNjUxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludC5jcHAgKi87IH07CiAJCUIz
OEZEN0JEMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5
IC8qIEZlYXR1cmVEZWZpbmVzLmggKi87IH07CisJCUMyQkE1NDNFMUQ1ODZBRjQwMDBBMzMzMiAv
KiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIg
Ki87IH07CisJCUMyQ0EzN0U5MUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxl
cy5jcHAgKi87IH07CisJCUMyQ0EzN0VBMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUMxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUQx
RDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTQxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwICovOyB9OworCQlD
MkNBMzdFRTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNB
MzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5j
cHAgKi87IH07CisJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RjAxRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwICovOyB9OworCQlDMkNBMzdGMTFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFODFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAg
Ki87IH07CiAJCUM0RjhBOTM3MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM0RjhBOTM2MTlDNjVFQjQw
MEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLzsgfTsKIAkJQzhCMEUxQTFFMDFBNDg2RUI5NUUwRDEx
IC8qIEluZGV4U2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTM3RTFEN0RCRDg0QUMzOEZBRTREMzQgLyogSW5kZXhTZXQuaCAqLzsgfTsKIAkJQzkx
NkI5NzVGMDJGNEY3RThCNEFCMTJEIC8qIEluZGV4TWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QjQzMzgzQTVEMEI0NjNDOTQzM0Q5MzMgLyogSW5k
ZXhNYXAuaCAqLzsgfTsKQEAgLTM4MSw2ICs0MDEsMTMgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3Ry
aW5nID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdURjsKIAkJ
fTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAq
LyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRh
bCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXBy
b3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1NTY5NUMw
MENDN0RFQzsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsKIAkJNjVB
RkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJ
CWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3
QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTQ5Miw2ICs1MTks
MTkgQEAKIAkJMUMxODFDOEQxRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVVGV4dFByb3ZpZGVyVVRG
MTYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM4RTFEMzA3QUI4MDBG
NUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZBMTYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElD
VU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRleHRCcmVh
a0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHBhdGggPSBtYWMvVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUM2QkUwRkEx
RTAzNEM5QTAwMjE3NjE3IC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5
dGhvbjsgcGF0aCA9IEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NTFE
NTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VOb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZU5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRG
Qjk4MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4
dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pL
LnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTkxRDU1OUFFRjAwRjlG
RTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0OyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUNCNEZCOUMxRDU1OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMgLyog
RGVyaXZlZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZlZFNvdXJjZXMubWFrZTsgcGF0aCA9
IHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1c2VzVGFi
cyA9IDE7IH07CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQ7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzkzMUQ1NTk5NjUwMENDN0RFQyAvKiBM
aW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5l
QnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUZBNDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhy
ZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYxNDdCMDgxNUREQ0NEQzAwRERCOTA3IC8q
IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNzI0LDYgKzc2NCwxNSBAQAogCQlBREYyQ0U2NDFFMzlGMTA2MDA2ODg5REIgLyog
TWVtb3J5Rm9vdHByaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9y
eUZvb3RwcmludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREYyQ0U2NTFFMzlG
MTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lbW9yeUZvb3RwcmludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHBhdGggPSBCcmVha2luZ1J1
bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Q0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTIx
RDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMzFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZU5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZU5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U0
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9u
Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTUxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNjFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U3MUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTgxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3ROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNEY4
QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC03NjIsNyArODExLDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0
ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91
bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCQkxNDQ3QUVDQjE4RkNFNUI5
MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovLAorCQkJCUMyQkE1
NDNFMUQ1ODZBRjQwMDBBMzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8s
CiAJCQkJMTQ0N0FFQzcxOEZDRTU4MDAwQjNEN0ZGIC8qIGxpYldURi5hIGluIEZyYW1ld29ya3Mg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBA
IC03OTksNiArODQ4LDMyIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKKwkJMUM2QkUwRjkxRTAzNEMyQTAwMjE3NjE3IC8qIFNjcmlwdHMgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTFDNkJFMEZBMUUwMzRD
OUEwMDIxNzYxNyAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8sCisJCQkpOwor
CQkJcGF0aCA9IFNjcmlwdHM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkx
Q0QxODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVD
IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8sCisJCQkJMUNCNEZCOUMxRDU1
OUI2NzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ICovLAorCQkJCTFD
RDE4NzkzMUQ1NTk5NjUwMENDN0RFQyAvKiBMaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAq
LywKKwkJCQkxQ0I0RkI5NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NENKSy50eHQgKi8sCisJCQkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8sCisJCQkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZC
OTUxRDU1OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0ICov
LAorCQkJCTFDQjRGQjk4MUQ1NTlBRDIwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZCOUExRDU1OUIy
MzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovLAorCQkJ
CTFDQjRGQjlCMUQ1NTlCM0UwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLLnR4dCAqLywKKwkJCSk7CisJCQlwYXRoID0gQnJlYWtpbmdSdWxlczsKKwkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2OEQxQiAvKiBp
b3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtODIxLDkg
Kzg5NiwxMiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1RDI0
N0I2RDE0Njg5QzQ3MDBFNzhCNzYgLyogQ29uZmlndXJhdGlvbnMgKi8sCisJCQkJQzJDQTM3REYx
RDU1QzhEODAwNDg2Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDAyMkYzRjE4RjVD
M0U1MDA3RkYwRUIgLyogTGlicmFyaWVzICovLAogCQkJCTVEMjQ3QjYzMTQ2ODlCODYwMEU3OEI3
NiAvKiBQcm9kdWN0cyAqLywKKwkJCQkxQzZCRTBGOTFFMDM0QzJBMDAyMTc2MTcgLyogU2NyaXB0
cyAqLywKIAkJCQk1RDI0N0I3NjE0Njg5RDc2MDBFNzhCNzYgLyogU291cmNlICovLAorCQkJCTFD
RDE4NzhBMUQ1NThBRDMwMENDN0RFQyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovLAogCQkJCTE0
NDdBRUM1MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKIAkJCQkx
NDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLywKIAkJCSk7CkBA
IC0xMTg1LDYgKzEyNjMsNyBAQAogCQlBOEE0NzMxQjE1MUE4MjVCMDA0MTIzRkYgLyogdGV4dCAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OTEx
RDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJQTVCQTE1RjYxODI0MzU5
RTAwQTgyRTY5IC8qIGNmICovLAogCQkJCTFDMTgxQzg4MUQzMDdBQjgwMEY1RkExNiAvKiBpY3Ug
Ki8sCiAJCQkJQTVCQTE1RjExODI0MzM5RjAwQTgyRTY5IC8qIG1hYyAqLywKQEAgLTEyNjMsNiAr
MTM0MiwyMyBAQAogCQkJcGF0aCA9IGljdTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUMyQ0EzN0UwMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovLAorCQkJCUMy
Q0EzN0UxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCAq
LywKKwkJCQlDMkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFMzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNDFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi8sCisJCQkJQzJD
QTM3RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
Y3BwICovLAorCQkJCUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTgx
RDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3Bw
ICovLAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXBhdGggPSBEZXJp
dmVkU291cmNlcy9XVEY7CisJCQlzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOworCQl9
OwogCQlDRTQ2NTE2QzE5REIxRkI0MDAzRUNBMDUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTYxNCw2ICsxNzEwLDcgQEAKIAkJCWJ1aWxk
UnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTFDRDE4Nzg4MUQ1NTY5
ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTY1QUZBMjhFMTYzMEI5
OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBX
VEY7CkBAIC0xNjQ0LDEyICsxNzQxLDI3IEBACiAJCQl0YXJnZXRzID0gKAogCQkJCTVEMjQ3QjYx
MTQ2ODlCODYwMEU3OEI3NiAvKiBXVEYgKi8sCiAJCQkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjND
IC8qIENvcHkgV1RGIEhlYWRlcnMgKi8sCisJCQkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8q
IERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxNDQ3QUVCRDE4RkNFNTY5MDBCM0Q3RkYgLyogbWJt
YWxsb2MgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLworCQkxQ0QxODc4MjFE
NTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNh
ID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4
MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJ
bmFtZSA9ICJHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMiOworCQkJb3V0cHV0UGF0aHMgPSAoCisJ
CQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCQlzaGVs
bFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAibWtkaXIgLXAgXCIke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcbmNkIFwiJHtCVUlMVF9QUk9EVUNUU19E
SVJ9L0Rlcml2ZWRTb3VyY2VzL1dURlwiXG5cbi9iaW4vbG4gLXNmaCBcIiR7U1JDUk9PVH1cIiBX
VEZcbmV4cG9ydCBXVEY9XCJXVEZcIlxuXG5pZiBbICEgLWQgQnJlYWtpbmdSdWxlcyBdOyB0aGVu
XG4gICAgbWtkaXIgQnJlYWtpbmdSdWxlc1xuZmlcblxuaWYgWyBcIiRNQUNPU1hfREVQTE9ZTUVO
VF9UQVJHRVRcIiA9PSBcIjEwLjEwXCIgXSA7IHRoZW5cbiAgICBleHBvcnQgQURESVRJT05BTF9F
TU9KSV9TVVBQT1JUPTBcbmVsc2VcbiAgICBleHBvcnQgQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
PTFcbmZpXG5cbmlmIFsgXCIkSEFWRV9JTlRFUk5BTF9TREtcIiAhPSBcIllFU1wiIF0gfHwgWyBc
IiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEwLjEwXCIgXSB8fCBbIFwiJE1BQ09T
WF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTFcIiBdIHx8IFsgXCIkTUFDT1NYX0RFUExP
WU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMlwiIF0gfHwgWyBcIiRTREtfVkVSU0lPTl9NQUpPUlwi
ID09IFwiOTAwMDBcIiBdIHx8IFsgXCIkU0RLX1ZFUlNJT05fTUFKT1JcIiA9PSBcIjEwMDAwMFwi
IF07IHRoZW5cbiAgICBleHBvcnQgSEFWRV9JQ1VHRU5CUks9MFxuZWxzZVxuICAgIGV4cG9ydCBI
QVZFX0lDVUdFTkJSSz0xXG5maVxuXG5pZiBbIFwiJHtBQ1RJT059XCIgPSBcImJ1aWxkXCIgLW8g
XCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxo
ZHJzXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGFwaVwiIF07IHRoZW5cbm1ha2UgLS1u
by1idWlsdGluLXJ1bGVzIC1mIFwiV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlXCIgLWogYC91
c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCBTREtST09UPVwiJHtTREtST09UfVwiXG5m
aSI7CisJCX07CiAJCTY1QUZBMTcwMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJz
ICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE3MDIsNiArMTgxNCw3IEBACiAJCQkJRTE1NTU2RjUx
OEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThBNDc0MzkxNTFBODI1QjAwNDEyM0ZGIC8qIENTdHJpbmcuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQThBNDczOUMxNTFBODI1QjAwNDEyM0ZGIC8qIEN1cnJlbnRUaW1lLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0U5MUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUUxNTFBODI1
QjAwNDEyM0ZGIC8qIERhdGFMb2cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQTAxNTFB
ODI1QjAwNDEyM0ZGIC8qIERhdGVNYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Ey
MTUxQTgyNUIwMDQxMjNGRiAvKiBEZWNpbWFsTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MTcxOCw2ICsxODMxLDE0IEBACiAJCQkJMUExRDhCOUUxNzMxODc5ODAwMTQxREE0IC8qIEZ1bmN0
aW9uRGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQ0NEODkyQTE1QzAzOTAyMDAy
ODUwODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDcz
RDgxNTFBODI1QjAwNDEyM0ZGIC8qIEhhc2hUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlD
MkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VDMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUUxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RjAxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFMTY0NkExQjZGRkM5
NjAwNDAwRTdDIC8qIExvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2MEYzMkYxREZDQkQx
QjAwNDE2RDZDIC8qIExvY2tlZFByaW50U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
QTQ3M0U1MTUxQTgyNUIwMDQxMjNGRiAvKiBNYWluVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMTc5Myw2ICsxOTE0LDExIEBACiAJCQl0YXJnZXQgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhC
NzYgLyogV1RGICovOwogCQkJdGFyZ2V0UHJveHkgPSAxNDQ3QUVDMzE4RkNFNTcwMDBCM0Q3RkYg
LyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9OworCQkxQ0QxODc4ODFENTU2OTg4MDBD
QzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERl
cGVuZGVuY3k7CisJCQl0YXJnZXQgPSAxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZl
ZCBTb3VyY2VzICovOworCQkJdGFyZ2V0UHJveHkgPSAxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMg
LyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9OwogCQk2NUFGQTI4RTE2MzBCOTlFMDAz
RDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERl
cGVuZGVuY3k7CiAJCQl0YXJnZXQgPSA2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBX
VEYgSGVhZGVycyAqLzsKQEAgLTE4MjIsNiArMTk0OCwzMCBAQAogCQkJfTsKIAkJCW5hbWUgPSBQ
cm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8g
PSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9u
UmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2Nv
bmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFS
R0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTFDRDE4Nzg1MUQ1
NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcw
MEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0g
eworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9
IFJlbGVhc2U7CisJCX07CisJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9u
ICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJh
dGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2Uu
eGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIk
KFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVE
MjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRD
b25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0
Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOwpAQCAtMTkwNSw2ICsy
MDU1LDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZh
dWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4MzFENTU2
OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25M
aXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkxQ0QxODc4NDFENTU2OTVDMDBD
QzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVDIC8qIFJlbGVh
c2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rpb24gKi8sCisJ
CQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENv
bmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdCNUMxNDY4OUI4NjAw
RTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV1RGIiAq
LyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRp
b25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91YnJrLmggYi9Tb3Vy
Y2UvV1RGL2ljdS91bmljb2RlL3VicmsuaAppbmRleCBlOWMwZWY2MjdiNjcyNzlmODZlNDYwNDRi
ZjBmMjU3MTAyZTBjNmNkLi4xOTc1YjlkYmVkNDQzYTkyNzQzNmYwYTI3OTI5YmE1OGFmODcxODI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaAorKysgYi9Tb3VyY2Uv
V1RGL2ljdS91bmljb2RlL3VicmsuaApAQCAtMjQxLDYgKzI0MSwzMSBAQCB1YnJrX29wZW5SdWxl
cyhjb25zdCBVQ2hhciAgICAgKnJ1bGVzLAogICAgICAgICAgICAgICAgVUVycm9yQ29kZSAgICAg
ICpzdGF0dXMpOwogCiAvKioKKyAqIE9wZW4gYSBuZXcgVUJyZWFrSXRlcmF0b3IgZm9yIGxvY2F0
aW5nIHRleHQgYm91bmRhcmllcyB1c2luZyBwcmVjb21waWxlZCBiaW5hcnkgcnVsZXMuCisgKiBP
cGVuaW5nIGEgVUJyZWFrSXRlcmF0b3IgdGhpcyB3YXkgaXMgc3Vic3RhbnRpYWxseSBmYXN0ZXIg
dGhhbiB1c2luZyB1YnJrX29wZW5SdWxlcy4KKyAqIEJpbmFyeSBydWxlcyBtYXkgYmUgb2J0YWlu
ZWQgdXNpbmcgdWJya19nZXRCaW5hcnlSdWxlcy4gVGhlIGNvbXBpbGVkIHJ1bGVzIGFyZSBub3QK
KyAqIGNvbXBhdGlibGUgYWNyb3NzIGRpZmZlcmVudCBtYWpvciB2ZXJzaW9ucyBvZiBJQ1UsIG5v
ciBhY3Jvc3MgcGxhdGZvcm1zIG9mIGRpZmZlcmVudAorICogZW5kaWFubmVzcyBvciBkaWZmZXJl
bnQgYmFzZSBjaGFyYWN0ZXIgc2V0IGZhbWlseSAoQVNDSUkgdnMgRUJDRElDKS4KKyAqIEBwYXJh
bSBiaW5hcnlSdWxlcyBBIHNldCBvZiBjb21waWxlZCBiaW5hcnkgcnVsZXMgc3BlY2lmeWluZyB0
aGUgdGV4dCBicmVha2luZworICogICAgICAgICAgICAgICAgICAgIGNvbnZlbnRpb25zLiBPd25l
cnNoaXAgb2YgdGhlIHN0b3JhZ2UgY29udGFpbmluZyB0aGUgY29tcGlsZWQKKyAqICAgICAgICAg
ICAgICAgICAgICBydWxlcyByZW1haW5zIHdpdGggdGhlIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9u
LiBUaGUgY29tcGlsZWQKKyAqICAgICAgICAgICAgICAgICAgICBydWxlcyBtdXN0IG5vdCBiZSBt
b2RpZmllZCBvciBkZWxldGVkIGR1cmluZyB0aGUgbGlmZSBvZiB0aGUKKyAqICAgICAgICAgICAg
ICAgICAgICBicmVhayBpdGVyYXRvci4KKyAqIEBwYXJhbSBydWxlc0xlbmd0aCBUaGUgbGVuZ3Ro
IG9mIGJpbmFyeVJ1bGVzIGluIGJ5dGVzOyBtdXN0IGJlID49IDAuCisgKiBAcGFyYW0gdGV4dCAg
ICAgICAgVGhlIHRleHQgdG8gYmUgaXRlcmF0ZWQgb3Zlci4gIE1heSBiZSBudWxsLCBpbiB3aGlj
aCBjYXNlCisgKiAgICAgICAgICAgICAgICAgICAgdWJya19zZXRUZXh0KCkgaXMgdXNlZCB0byBz
cGVjaWZ5IHRoZSB0ZXh0IHRvIGJlIGl0ZXJhdGVkLgorICogQHBhcmFtIHRleHRMZW5ndGggIFRo
ZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0ZXh0LCBvciAtMSBpZiBudWxsLXRlcm1pbmF0ZWQu
CisgKiBAcGFyYW0gc3RhdHVzICAgICAgUG9pbnRlciB0byBVRXJyb3JDb2RlIHRvIHJlY2VpdmUg
YW55IGVycm9ycy4KKyAqIEByZXR1cm4gICAgICAgICAgICBVQnJlYWtJdGVyYXRvciBmb3IgdGhl
IHNwZWNpZmllZCBydWxlcy4KKyAqIEBzZWUgdWJya19nZXRCaW5hcnlSdWxlcworICogQGRyYWZ0
IElDVSA1OQorICovCitVX0RSQUZUIFVCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIKK3Vicmtfb3Bl
bkJpbmFyeVJ1bGVzKGNvbnN0IHVpbnQ4X3QgKmJpbmFyeVJ1bGVzLCBpbnQzMl90IHJ1bGVzTGVu
Z3RoLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKiAgdGV4dCwgaW50MzJfdCB0
ZXh0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqICAgc3RhdHVzKTsK
KworLyoqCiAgKiBUaHJlYWQgc2FmZSBjbG9uaW5nIG9wZXJhdGlvbgogICogQHBhcmFtIGJpIGl0
ZXJhdG9yIHRvIGJlIGNsb25lZAogICogQHBhcmFtIHN0YWNrQnVmZmVyIDxlbT5EZXByZWNhdGVk
IGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUyLCB1c2UgTlVMTC48L2VtPjxicj4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQKaW5kZXggODFhZjkxMjc2MTA2YjgxMjg5MTdkYjhjNzljZjI1NGIyZTRkOGNmMC4u
ZDkwZTBmMzhlYzNkOGY1ODM2MDY3MmU2YWM4ZDllNzA4YTE5OGVkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0
cy50eHQKQEAgLTMwMSw2ICszMDEsNDIgQEAgaWYgKE5PVCBVU0VfU1lTVEVNX01BTExPQykKICAg
ICBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTIGJtYWxsb2MpCiBlbmRpZiAoKQogCitzZXQoV1RG
X0JSRUFLSU5HX1JVTEVTX1NPVVJDRVMKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CisgICAgdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CispCisKK21hY3Jv
KEdFTkVSQVRFX0JSRUFLSU5HX1JVTEVTIF9pbnB1dCBfc3ltYm9sTmFtZSBfb3V0cHV0KQorICAg
IGFkZF9jdXN0b21fY29tbWFuZCgKKyAgICAgICAgT1VUUFVUICR7X291dHB1dH0KKyAgICAgICAg
TUFJTl9ERVBFTkRFTkNZICR7V1RGX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0
cmluZ3MucHkKKyAgICAgICAgREVQRU5EUyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICR7X2lucHV0fSAk
e0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yRXBpbG9ndWUudHh0CisgICAgICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0g
JHtXVEZfRElSfS9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAtaW5jbHVk
ZURlZmluZXMgJHtfc3ltYm9sTmFtZX1SdWxlcyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0v
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICR7X2lucHV0
fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yRXBpbG9ndWUudHh0ID4gJHtfb3V0cHV0fQorICAgICAgICBWRVJCQVRJTSkKKyAg
ICBsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke19vdXRwdXR9KQorICAgIEFERF9TT1VSQ0VfREVQ
RU5ERU5DSUVTKCR7X2lucHV0fSAke19vdXRwdXR9KQorZW5kbWFjcm8oKQorCitmb3JlYWNoIChf
ZmlsZSAke1dURl9CUkVBS0lOR19SVUxFU19TT1VSQ0VTfSkKKyAgICBnZXRfZmlsZW5hbWVfY29t
cG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCisgICAgR0VORVJBVEVfQlJFQUtJTkdfUlVM
RVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7X2ZpbGV9ICR7X25hbWV9ICR7REVSSVZF
RF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvJHtfbmFtZX0uY3BwKQorZW5kZm9yZWFj
aCAoKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VT
X1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcAor
ICAgIE1BSU5fREVQRU5ERU5DWSAke1dURl9ESVJ9L1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1
bGVTdHJpbmdzLnB5CisgICAgREVQRU5EUyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4
dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKyAgICBDT01N
QU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZUJyZWFr
aW5nUnVsZVN0cmluZ3MucHkgLWluY2x1ZGVEZWZpbmVzIGN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgPiAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9C
cmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAKKyAgICBWRVJCQVRJ
TSkKK2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCkKK0FERF9TT1VSQ0Vf
REVQRU5ERU5DSUVTKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVs
ZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAke0RFUklWRURfU09VUkNFU19XVEZf
RElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHApCisKIGxp
c3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCiAp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzI0YWE2NDFiMjE3OGNm
NzJmNmYwYmRlYWExNGMzZjgzMTM4NDkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMCwwICsxLDcyIEBACisjIENvcHlyaWdodCAoQykg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCitCUkVBS0lOR19SVUxFU19GSUxFUyA9IFwKKyAgICBCcmVh
a2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5icmsgXAorICAgIEJyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuYnJrCisKK0JSRUFLSU5HX1JVTEVT
X0RFRklOSVRJT05TPSQoQlJFQUtJTkdfUlVMRVNfRklMRVM6LmJyaz0uY3BwKQorCitpZmVxICgk
KHNoZWxsICQoQ0MpIC1zdGQ9Z251KysxMSAteCBjKysgLUUgLVAgLWRNICQoU0RLX0ZMQUdTKSAk
KEZSQU1FV09SS19GTEFHUykgJChIRUFERVJfRkxBR1MpIC1JICQoV1RGKSAtaW5jbHVkZSAiJChX
VEYpL3d0Zi9QbGF0Zm9ybS5oIiAvZGV2L251bGwgfCBncmVwICcgV1RGX1BMQVRGT1JNX0lPUyAn
IHwgY3V0IC1kJyAnIC1mMyksIDEpCisgICAgV1RGX1BMQVRGT1JNX0lPUyA9IDEKK2Vsc2UKKyAg
ICBXVEZfUExBVEZPUk1fSU9TID0gMAorZW5kaWYKKworaWZlcSAoJChXVEZfUExBVEZPUk1fSU9T
KSwgMSkKKwlBRERJVElPTkFMX0VNT0pJX1NVUFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVOVCA9IDAK
KwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMAorZWxzZQorCUFERElUSU9OQUxfRU1PSklf
U1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5UID0gJChBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQp
CisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyA9IDEKK2VuZGlmCisKK0RFUEVOREVOQ0lFUyA9
ICQoQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlMpCisKK2lmZXEgKCQoSEFWRV9JQ1VHRU5CUksp
LCAxKQorREVQRU5ERU5DSUVTICs9ICQoQlJFQUtJTkdfUlVMRVNfRklMRVMpCitlbmRpZgorCith
bGwgOiAkKERFUEVOREVOQ0lFUykKKworQnJlYWtpbmdSdWxlcy8lLmJyayA6IEJyZWFraW5nUnVs
ZXMvJS5wcAorCWljdWdlbmJyayAtYyAtciAkPCAtbyAkQAorCitCcmVha2luZ1J1bGVzL0N1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgOiBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy5wcAorCXB5dGhvbiAkKFdURikvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5n
UnVsZVN0cmluZ3MucHkgY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzICQ8ID4gJEAKKworQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUuY3BwIDogQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvciUucHAKKwlweXRob24gJChXVEYpL1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1
bGVTdHJpbmdzLnB5IGxpbmVCcmVha0l0ZXJhdG9yJCpSdWxlcyAkPCA+ICRACisKK0JyZWFraW5n
UnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwIDogJChXVEYpL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorCS11bmlmZGVmIC1E
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9D
VVJTT1JfTU9WRU1FTlQpIC1ESEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFf
SUNVX05BTUVEX1NFVFMpIC1vICRAICQ8CisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3IlLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQ
cm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVw
aWxvZ3VlLnR4dAorCS1jYXQgJD8gfCB1bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
PSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9
JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZGFiOGI1NzVmOTVjNjI3ZjU4OTVlMjNjY2Q0YjFhMTEw
NWViOGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKQEAgLTAsMCArMSwxNzYgQEAKKyMg
KEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIw
MDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMg
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKyMgVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsg
aXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9y
Zy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3NvdXJjZS9kYXRhL2Jya2l0ci8+Lgor
IyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVk
IGJlbG93OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNp
bmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAtICRF
eHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOworIyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBw
cmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVn
IDI0MzQyKTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3Zp
bmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1
ZyAxNTc5MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJv
bSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtz
LgorIyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4KKworJENS
ICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07CiskTEYgICAgICA9IFtc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsKKyRDb250cm9sID0gW1xwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9pY2VNYXJrcyA9IFtcdUZGOUVcdUZGOUZd
OyAjIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCiskRXh0ZW5kICA9
IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSAkVm9pY2VNYXJrcyAtIFtcdTBF
MzAgXHUwRTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07CiskU3BhY2luZ01hcmsgPSBbW1xwe0dl
bmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOworJEwgICAgICAgPSBb
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsKKyRWICAgICAgID0gW1xwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gVH1dOworJExWICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07
CiskTFZUICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07CiskSGluMCAg
ICA9IFtcdTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQorJEhpblYg
ICAgPSBcdTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQorJEhpbjEgICAgPSBbXHUwOTE1
LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCiskQmVuMCAgICA9IFtcdTA5
ODUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4uLixIYQorJEJlblYgICAgPSBcdTA5Q0Q7
ICMgQmVuZ2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAgPSBbXHUwOTk1LVx1MDlCOV07ICMgQmVu
Z2FsaSBMZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9IFtcdTBBMDUtXHUwQTM5XTsgIyBHdXJt
dWtoaSBMZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0gXHUwQTREOyAjIEd1cm11a2hpIFNpZ24g
VmlyYW1hCiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgS2Es
Li4uLEhhCiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgQSwu
Li4sSGEKKyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFyYXRpIFNpZ24gVmlyYW1hCiskR3VqMSAg
ICA9IFtcdTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCiskT3JpMCAg
ICA9IFtcdTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgQSwuLi4sSGEKKyRPcmlWICAgID0g
XHUwQjREOyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3JpMSAgICA9IFtcdTBCMTUtXHUwQjM5XTsg
IyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAgICA9IFtcdTBDMDUtXHUwQzM5XTsgIyBU
ZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9IFx1MEM0RDsgIyBUZWx1Z3UgU2lnbiBW
aXJhbWEKKyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgS2EsLi4u
LEhhCiskS2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4uLixI
YQorJEthblYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBTaWduIFZpcmFtYQorJEthbjEgICAgPSBb
XHUwQzk1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKKyRNYWwwICAgID0gW1x1
MEQwNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEgCiskTWFsViAgICA9IFx1
MEQ0RDsgIyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRNYWwxICAgID0gW1x1MEQxNS1cdTBEMzld
OyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRSSSAgICAgID0gW1xVMDAwMUYxRTYtXFUw
MDAxRjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycworJFpXSiAgICAgPSBcdTIwMEQ7
ICMgWmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9IFtcdUZFMEZdOyAjIEVtb2ppLXN0eWxl
IHZhcmlhdGlvbiBzZWxlY3RvcgorCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAg
ICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBcVTAwMDFGMzA4
IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAwMUYzQ0MgXFUwMDAxRjNGMyBc
VTAwMDFGNDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NkYgXFUw
MDAxRjQ3MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4MS1cVTAwMDFGNDgyIFxVMDAw
MUY0ODYtXFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUgXFUwMDAxRjVFOCBcVTAwMDFG
NjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxVMDAwMUY2NEUgXFUwMDAxRjZB
MyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXHUyNjk1LVx1MjY5NiBcdTI3MDggXFUwMDAxRjMzRSBc
VTAwMDFGMzczIFxVMDAwMUYzOTMgXFUwMDAxRjNBNCBcVTAwMDFGM0E4IFxVMDAwMUYzRUIgXFUw
MDAxRjNFRCBcVTAwMDFGNEJCLVxVMDAwMUY0QkMgXFUwMDAxRjUyNyBcVTAwMDFGNTJDIFxVMDAw
MUY2ODAgXFUwMDAxRjY5MiBcVTAwMDFGOTI2IFxVMDAwMUY5MzctXFUwMDAxRjkzOSBcVTAwMDFG
OTNDLVxVMDAwMUY5M0VdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNl
cworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUyNzBEIFxVMDAw
MUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EgXFUwMDAxRjNDQiBcVTAwMDFG
NDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ3
OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcg
XFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxV
MDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAw
MDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4IFxVMDAwMUYzQzIgXFUwMDAx
RjNDNyBcVTAwMDFGM0NDIFxVMDAwMUY1NzQgXFUwMDAxRjU3QSBcVTAwMDFGNkNDIFxVMDAwMUY5
MTktXFUwMDAxRjkxRSBcVTAwMDFGOTI2IFxVMDAwMUY5MzAgXFUwMDAxRjkzMy1cVTAwMDFGOTM5
IFxVMDAwMUY5M0MtXFUwMDAxRjkzRV0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBt
b2RpZmllcnMKKworI2Vsc2UKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNzY0IFxVMDAwMUY0
NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDhCXTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpX
SiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI3MEEtXHUyNzBDIFxV
MDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcgXFUwMDAxRjNDQSBcVTAw
MDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAx
RjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0
ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1
LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1c
VTAwMDFGNkI2IFxVMDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9k
aWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUwMDAxRjNGRl07
ICMgRml0enBhdHJpY2sgbW9kaWZpZXJzCishIWNoYWluOworCisjaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCisKKyAgICAhIVJJTm9DaGFpbjsKKworI2VuZGlmCisKKyEhZm9yd2FyZDsKKyRD
UiAkTEY7CiskTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8ICRWKSAoJFYgfCAkVCk7
CisoJExWVCB8ICRUKSAkVDsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAg
JFJJICRSSSAkRXh0ZW5kKiAvICRSSTsKKyAgICAkUkkgJFJJICRFeHRlbmQqOworICAgIFteJENv
bnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5n
TWFyazsKKworI2Vsc2UKKworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBb
XiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKyAgICAkUkkgJFJJIC8gJFJJOworICAg
ICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMCAkSGluViAkSGluMTsgIyBEZXZhbmFnYXJpIFZp
cmFtYSAoZm9yd2FyZCkKKyRCZW4wICRCZW5WICRCZW4xOyAjIEJlbmdhbGkgVmlyYW1hIChmb3J3
YXJkKQorJFBhbjAgJFBhblYgJFBhbjE7ICMgR3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQorJEd1
ajAgJEd1alYgJEd1ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQorJE9yaTAgJE9yaVYg
JE9yaTE7ICMgT3JpeWEgVmlyYW1hIChmb3J3YXJkKQorJFRlbDAgJFRlbFYgJFRlbDE7ICMgVGVs
dWd1IFZpcmFtYSAoZm9yd2FyZCkKKyRLYW4wICRLYW5WICRLYW4xOyAjIEthbm5hZGEgVmlyYW1h
IChmb3J3YXJkKQorJE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2Fy
ZCkKKyRaV0ogJEVtb2ppRm9yU2VxczsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5j
ZXMKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyAjIERvbnQgYnJlYWsgYmV0
d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFu
ZCBGaXR6cGF0cmljayBtb2RpZmllcgorISFyZXZlcnNlOworJExGICRDUjsKKygkTCB8ICRWIHwg
JExWIHwgJExWVCkgJEw7CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRUICgkTFZUIHwgJFQpOwor
CisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRXh0ZW5kKiAkUkkgJFJJIC8g
JEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQgICAg
ICBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAk
TEZdOworCisjZWxzZQorCisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07Cisg
ICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFJJICRSSSAvICRSSSAk
Ukk7CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4xICRIaW5WICRIaW4wOyAjIERldmFu
YWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKKyRCZW4xICRCZW5WICRCZW4wOyAjIEJlbmdhbGkgVmly
YW1hIChiYWNrd2FyZCkKKyRQYW4xICRQYW5WICRQYW4wOyAjIEd1cm11a2hpIFZpcmFtYSAoYmFj
a3dhcmQpCiskR3VqMSAkR3VqViAkR3VqMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQor
JE9yaTEgJE9yaVYgJE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRUZWwxICRU
ZWxWICRUZWwwOyAjIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQorJEthbjEgJEthblYgJEthbjA7
ICMgS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQorJE1hbDEgJE1hbFYgJE1hbDA7ICMgTWFsYXlh
bGFtIFZpcmFtYSAoYmFja3dhcmQpCiskRW1vamlGb3JTZXFzICRaV0o7ICMgRG9udCBicmVhayBp
biBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9k
czsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFy
aWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKworI2lmIEFERElUSU9O
QUxfRU1PSklfU1VQUE9SVAorCisgICAgISFzYWZlX3JldmVyc2U7CisgICAgJFJJICRSSSs7Cisg
ICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAhIXNhZmVfZm9y
d2FyZDsKKyAgICAkUkkgJFJJKzsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2pp
TW9kc10rOworCisjZWxzZQorCisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9y
TW9kczsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOworICAgICEh
c2FmZV9yZXZlcnNlOworICAgICEhc2FmZV9mb3J3YXJkOworCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxv
Z3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGIwODhkNTAwMTQyZDI5YmRkMjA1ZTMxODAz
ZGY4NGE1MmIwMmJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0wLDAgKzEsMzcyIEBA
CisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykg
MjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChD
KSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCiskQUkgPSBbOkxpbmVCcmVhayA9IEFtYmlndW91czpdOworJEFMID0g
WzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07CiskQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19B
ZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOwor
JEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsKKyRCMiA9IFs6TGluZUJyZWFr
ID0gQnJlYWtfQm90aDpdOworJENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07
CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07CiskQ00gPSBbOkxpbmVC
cmVhayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVu
dGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdlX1JldHVybjpdOworJEVYID0g
W1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9TVUJdOworJEdMID0gWzpMaW5lQnJl
YWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkSEwg
PSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsKKworI2Vsc2UKKworICAgICRITCA9IFtb
OkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNlbmRpZgorCiskSFkgPSBbOkxpbmVCcmVhayA9
IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOworJEgzID0gWzpMaW5lQnJlYWsg
PSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURf
QUREXSAtICRJRF9TVUJdOworJElOID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJ
Tl9TVUJdOworJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07
CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07CiskSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07Cisk
SlQgPSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpd
OworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsKKyROUyA9IFtbW1s6TGluZUJyZWFr
ID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICROU19TVUJdOworJE5VID0gWzpMaW5l
QnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246
XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07Cisk
UFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07CiskUVUgPSBb
OkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07
CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOworJFNHID0gWzpMaW5lQnJl
YWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGluZUJyZWFrID0gU3BhY2U6XTsKKyRTWSA9IFs6
TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOworJFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pv
aW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3duOl07CiskWlcgPSBbOkxpbmVCcmVh
ayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7CiskRW1vamlWYXIgPSBcdUZFMEY7CisKKyNp
ZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQw
IFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxV
MDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAw
MDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAx
RjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0
OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRC
IFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBc
dTI2OTUtXHUyNjk2IFx1MjcwOCBcVTAwMDFGMzNFIFxVMDAwMUYzNzMgXFUwMDAxRjM5MyBcVTAw
MDFGM0E0IFxVMDAwMUYzQTggXFUwMDAxRjNFQiBcVTAwMDFGM0VEIFxVMDAwMUY0QkItXFUwMDAx
RjRCQyBcVTAwMDFGNTI3IFxVMDAwMUY1MkMgXFUwMDAxRjY4MCBcVTAwMDFGNjkyIFxVMDAwMUY5
MjYgXFUwMDAxRjkzNy1cVTAwMDFGOTM5IFxVMDAwMUY5M0MtXFUwMDAxRjkzRV07ICMgRW1vamkg
dGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtc
dTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYz
QzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2
LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1c
VTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1NzUgXFUw
MDAxRjU5MCBcVTAwMDFGNTk1IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAw
MUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFG
NkMwIFxVMDAwMUY5MTggXFUwMDAxRjNDMiBcVTAwMDFGM0M3IFxVMDAwMUYzQ0MgXFUwMDAxRjU3
NCBcVTAwMDFGNTdBIFxVMDAwMUY2Q0MgXFUwMDAxRjkxOS1cVTAwMDFGOTFFIFxVMDAwMUY5MjYg
XFUwMDAxRjkzMCBcVTAwMDFGOTMzLVxVMDAwMUY5MzkgXFUwMDAxRjkzQy1cVTAwMDFGOTNFXTsg
IyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbHNlCisKKyAgICAk
RW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ4Ql07
CisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBBLVx1MjcwQyBcVTAwMDFGMzg1IFxV
MDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0M3IFxVMDAwMUYzQ0EgXFUwMDAxRjQ0Mi1cVTAw
MDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAx
RjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0
ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3
IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBc
VTAwMDFGNkMwXTsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNl
bmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUwMDAxRjNGRl07CiskZGljdGlvbmFy
eSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07CiskQUxQbHVzID0gWyRBTCAkQUkg
JFNBICRTRyAkWFhdOworJEFMY20gPSAkQUxQbHVzICRDTSo7CiskQkFjbSA9ICRCQSAkQ00qOwor
JEJCY20gPSAkQkIgJENNKjsKKyRCMmNtID0gJEIyICRDTSo7CiskQ0xjbSA9ICRDTCAkQ00qOwor
JENQY20gPSAkQ1AgJENNKjsKKyRFWGNtID0gJEVYICRDTSo7CiskR0xjbSA9ICRHTCAkQ00qOwor
JEhMY20gPSAkSEwgJENNKjsKKyRIWWNtID0gJEhZICRDTSo7CiskSDJjbSA9ICRIMiAkQ00qOwor
JEgzY20gPSAkSDMgJENNKjsKKyRJRGNtID0gJElEICRDTSo7CiskSU5jbSA9ICRJTiAkQ00qOwor
JElTY20gPSAkSVMgJENNKjsKKyRKTGNtID0gJEpMICRDTSo7CiskSlZjbSA9ICRKViAkQ00qOwor
JEpUY20gPSAkSlQgJENNKjsKKyROU2NtID0gJE5TICRDTSo7CiskTlVjbSA9ICROVSAkQ00qOwor
JE9QY20gPSAkT1AgJENNKjsKKyRQT2NtID0gJFBPICRDTSo7CiskUFJjbSA9ICRQUiAkQ00qOwor
JFFVY20gPSAkUVUgJENNKjsKKyRSSWNtID0gJFJJICRDTSo7CiskU1ljbSA9ICRTWSAkQ00qOwor
JFdKY20gPSAkV0ogJENNKjsKKworISFmb3J3YXJkOworJENBTl9DTSA9IFteJFNQICRCSyAkQ1Ig
JExGICROTCAkWlcgJENNXTsKKyRDQU5UX0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwgJFpXICRD
TV07CiskQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOworJEFMX0ZP
TExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRTWSAkV0ogJEdMICRPUCAkUVUgJEJBICRI
WSAkTlMgJElOICROVSAkQUxQbHVzXTsKKyRBTF9GT0xMT1cgPSBbJEFMX0ZPTExPV19OT0NNICRB
TF9GT0xMT1dfQ01dOworJExCNEJyZWFrcyA9IFskQksgJENSICRMRiAkTkxdOworJExCNE5vbkJy
ZWFrcyA9IFteJEJLICRDUiAkTEYgJE5MXTsKKyRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWldd
OworJExCOE5vbkJyZWFrcyA9IFtbJExCNE5vbkJyZWFrc10gLSBbJFpXXV07CiskTEIxOE5vbkJy
ZWFrcyA9IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOworJExCMThCcmVha3MgPSBbJExCOEJyZWFr
cyAkU1BdOworJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVha3MgLSAkQ0JdOworJEFMUGx1
cyAkQ00rOworJEJBICRDTSs7CiskQkIgJENNKzsKKyRCMiAkQ00rOworJENMICRDTSs7CiskQ1Ag
JENNKzsKKyRFWCAkQ00rOworJEdMICRDTSs7CiskSEwgJENNKzsKKyRIWSAkQ00rOworJEgyICRD
TSs7CiskSDMgJENNKzsKKyRJRCAkQ00rOworJElOICRDTSs7CiskSVMgJENNKzsKKyRKTCAkQ00r
OworJEpWICRDTSs7CiskSlQgJENNKzsKKyROUyAkQ00rOworJE5VICRDTSs7CiskT1AgJENNKzsK
KyRQTyAkQ00rOworJFBSICRDTSs7CiskUVUgJENNKzsKKyRSSSAkQ00rOworJFNZICRDTSs7Cisk
V0ogJENNKzsKKyRDUiAkTEYgezEwMH07CiskTEI0Tm9uQnJlYWtzPyAkTEI0QnJlYWtzIHsxMDB9
OworJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEwMH07CiskQ00rICRMQjRCcmVha3MgezEwMH07
CiskTEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsKKyRDQU5fQ00gJENNKiBbJFNQICRaV107CiskQ00r
IFskU1AgJFpXXTsKKyRFbW9qaUZvclNlcXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRF
bW9qaUZvclNlcXM7CiskQ0FOX0NNICRDTSs7CiskQ00rOworJENBTl9DTSAkQ00qICRXSmNtOwor
JExCOE5vbkJyZWFrcyAkV0pjbTsKKyRDTSsgJFdKY207CiskV0pjbSAkQ0FOVF9DTTsKKyRXSmNt
ICRDQU5fQ00gJENNKjsKKyRHTGNtICRDQU5fQ00gJENNKjsKKyRHTGNtICRDQU5UX0NNOworW1sk
TEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSogJEdMY207CiskQ00rIEdMY207Cisk
TEI4Tm9uQnJlYWtzICRDTDsKKyRDQU5fQ00gJENNKiAkQ0w7CiskQ00rICRDTDsKKyRMQjhOb25C
cmVha3MgJENQOworJENBTl9DTSAkQ00qICRDUDsKKyRDTSsgJENQOworJExCOE5vbkJyZWFrcyAk
RVg7CiskQ0FOX0NNICRDTSogJEVYOworJENNKyAkRVg7CiskTEI4Tm9uQnJlYWtzICRJUzsKKyRD
QU5fQ00gJENNKiAkSVM7CiskQ00rICRJUzsKKyRMQjhOb25CcmVha3MgJFNZOworJENBTl9DTSAk
Q00qICRTWTsKKyRDTSsgJFNZOworJE9QY20gJFNQKiAkQ0FOX0NNICRDTSo7CiskT1BjbSAkU1Aq
ICRDQU5UX0NNOworJE9QY20gJFNQKyAkQ00rICRBTF9GT0xMT1c/OworJFFVY20gJFNQKiAkT1Bj
bTsKKygkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOworJEIyY20gJFNQKiAkQjJjbTsKKyRMQjE4
Tm9uQnJlYWtzICRDTSogJFFVY207CiskQ00rICRRVWNtOworJFFVY20gLj87CiskUVVjbSAkTEIx
OE5vbkJyZWFrcyAkQ00qOworJExCMjBOb25CcmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICRO
U2NtKTsgCiskQkJjbSBbXiRDQl07CiskQkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOworJEhMY20g
KCRIWWNtIHwgJEJBY20pIFteJENCXT87CiskU1ljbSAkSExjbTsKKygkQUxjbSB8ICRITGNtKSAk
SU5jbTsKKyRDTSsgJElOY207CiskRVhjbSAkSU5jbTsKKyRJRGNtICRJTmNtOworJElOY20gJElO
Y207CiskTlVjbSAkSU5jbTsKKyRJRGNtICRQT2NtOworJEFMY20gJE5VY207CiskSExjbSAkTlVj
bTsKKyRDTSsgJE5VY207CiskTlVjbSAkQUxjbTsKKyROVWNtICRITGNtOworJFBSY20gJElEY207
CiskUFJjbSAoJEFMY20gfCAkSExjbSk7CiskUE9jbSAoJEFMY20gfCAkSExjbSk7CisoJFBSY20g
fCAkUE9jbSk/ICgkT1BjbSB8ICRIWWNtKT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkq
ICgkQ0xjbSB8ICRDUGNtKT8gKCRQUmNtIHwgJFBPY20pPzsKKyRKTGNtICgkSkxjbSB8ICRKVmNt
IHwgJEgyY20gfCAkSDNjbSk7CisoJEpWY20gfCAkSDJjbSkgKCRKVmNtIHwgJEpUY20pOworKCRK
VGNtIHwgJEgzY20pICRKVGNtOworKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgz
Y20pICRJTmNtOworKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRQT2Nt
OworJFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pOworKCRBTGNt
IHwgJEhMY20pICgkQUxjbSB8ICRITGNtKTsKKyRDTSsgKCRBTGNtIHwgJEhMY20pOworJElTY20g
KCRBTGNtIHwgJEhMY20pOworKCRBTGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207CiskQ00rICRP
UGNtOworJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7CisKKyNpZiBBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQKKworICAgICRSSWNtICRSSWNtOworCisjZW5kaWYKKworJEVtb2ppRm9yTW9k
cyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7CisKKyEhcmV2ZXJzZTsKKyRDTSsgJEFMUGx1czsKKyRD
TSsgJEJBOworJENNKyAkQkI7CiskQ00rICRCMjsKKyRDTSsgJENMOworJENNKyAkQ1A7CiskQ00r
ICRFWDsKKyRDTSsgJEdMOworJENNKyAkSEw7CiskQ00rICRIWTsKKyRDTSsgJEgyOworJENNKyAk
SDM7CiskQ00rICRJRDsKKyRDTSsgJElOOworJENNKyAkSVM7CiskQ00rICRKTDsKKyRDTSsgJEpW
OworJENNKyAkSlQ7CiskQ00rICROUzsKKyRDTSsgJE5VOworJENNKyAkT1A7CiskQ00rICRQTzsK
KyRDTSsgJFBSOworJENNKyAkUVU7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKwor
ICAgICRDTSsgJFJJOworCisjZW5kaWYKKworJENNKyAkU1k7CiskQ00rICRXSjsKKyRDTSs7Cisk
QUxfRk9MTE9XICRDTSsgLyAoWyRCSyAkQ1IgJExGICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00r
ICRTUCB8ICRTUCsgJENNKiAoW14kT1AgJENNICRTUF0gfCBbJEFMIHtlb2Z9XSkpOworWyRQUl0g
LyAkQ00rIFskQksgJENSICRMRiAkTkwgJFpXICRTUCB7ZW9mfV07CiskTEI0QnJlYWtzIFskTEI0
Tm9uQnJlYWtzLSRDTV07CiskTEI0QnJlYWtzICRDTSsgJENBTl9DTTsKKyRMRiAkQ1I7CitbJFNQ
ICRaV10gWyRMQjROb25CcmVha3MtJENNXTsKK1skU1AgJFpXXSAkQ00rICRDQU5fQ007CiskRW1v
amlGb3JTZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2ppVmFyPyAkRW1vamlGb3JTZXFzOworJENN
KyAkQ0FOX0NNOworJENNKiAkV0ogJENNKiAkQ0FOX0NNOworJENNKiAkV0ogWyRMQjhOb25CcmVh
a3MtJENNXTsKKyRDQU5UX0NNICRDTSogJFdKOworJENNKiAkQ0FOX0NNICRDTSogJFdKOworJENN
KiAkR0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZXV07CiskQ0FOVF9DTSAk
Q00qICRHTDsKKyRDTSogJENBTl9DTSAkQ00qICRHTDsKKyRDTCAkQ00rICRDQU5fQ007CiskQ1Ag
JENNKyAkQ0FOX0NNOworJEVYICRDTSsgJENBTl9DTTsKKyRJUyAkQ00rICRDQU5fQ007CiskU1kg
JENNKyAkQ0FOX0NNOworJENMIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskQ1AgWyRMQjhOb25CcmVh
a3MtJENNXTsKKyRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOworJElTIFskTEI4Tm9uQnJlYWtzLSRD
TV07CiskU1kgWyRMQjhOb25CcmVha3MtJENNXTsKK1skQ0wgJENQICRFWCAkSVMgJFNZXSAkQ00r
ICRTUCsgJENNKiAkT1A7IAorJENNKiAkQ0FOX0NNICRTUCogJENNKiAkT1A7CiskQ0FOVF9DTSAk
U1AqICRDTSogJE9QOworJEFMX0ZPTExPVz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsKKyRBTF9G
T0xMT1dfTk9DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskQ00qICRBTF9GT0xMT1dfQ00gJENNKyAk
U1ArICRDTSogJE9QOworJFNZICRDTSAkU1ArICRPUDsKKyRDTSogJE9QICRTUCogJENNKiAkUVU7
CiskQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7CiskQ00qICRCMiAkU1AqICRDTSogJEIy
OworJENNKiAkUVUgJENNKiAkQ0FOX0NNOworJENNKiAkUVUgJExCMThOb25CcmVha3M7CiskQ00q
ICRDQU5fQ00gJENNKiAkUVU7CiskQ0FOVF9DTSAkQ00qICRRVTsKKyRDTSogKCRCQSB8ICRIWSB8
ICROUykgJENNKiBbJExCMjBOb25CcmVha3MtJENNXTsKKyRDTSogWyRMQjIwTm9uQnJlYWtzLSRD
TV0gJENNKiAkQkI7CitbXiRDQl0gJENNKiAkQkI7CitbXiRDQl0gJENNKiAoJEhZIHwgJEJBKSAk
Q00qICRITDsKKyRDTSogJEhMICRDTSogJFNZOworJENNKiAkSU4gJENNKiAoJEFMUGx1cyB8ICRI
TCk7CiskQ00qICRJTiAkQ00qICRFWDsKKyRDTSogJElOICRDTSogJElEOworJENNKiAkSU4gJENN
KiAkSU47CiskQ00qICRJTiAkQ00qICROVTsKKyRDTSogJFBPICRDTSogJElEOworJENNKiAkTlUg
JENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICROVTsKKyRD
TSogJElEICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUFI7CiskQ00qICgk
QUxQbHVzIHwgJEhMKSAkQ00qICRQTzsKKygkQ00qICgkUFIgfCAkUE8pKT8gKCRDTSogKCRDTCB8
ICRDUCkpPyAoJENNKiAoJE5VIHwgJElTIHwgJFNZKSkqICRDTSogJE5VICgkQ00qICgkT1AgfCAk
SFkpKT8gKCRDTSogKCRQUiB8ICRQTykpPzsKKyRDTSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkg
JENNKiAkSkw7CiskQ00qICgkSlQgfCAkSlYpICRDTSogKCRIMiB8ICRKVik7CiskQ00qICRKVCAk
Q00qICgkSDMgfCAkSlQpOworJENNKiAkSU4gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwg
JEpMKTsKKyRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7CiskQ00q
ICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8
ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRJ
UzsKKyRDTSogJE9QICRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpOworJENNKiAoJEFMUGx1cyB8
ICRITCB8ICROVSkgJENNKiAkQ1A7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKwor
ICAgICRDTSogJFJJICRDTSogJFJJOworCisjZW5kaWYKKworJEVtb2ppTW9kcyAkRW1vamlWYXI/
ICRFbW9qaUZvck1vZHM7CisKKyEhc2FmZV9mb3J3YXJkOworWyRDTSAkT1AgJFFVICRDTCAkQ1Ag
JEIyICRQUiAkSFkgJEJBICRTUCAkZGljdGlvbmFyeV0rIFteJENNICRPUCAkUVUgJENMICRDUCAk
QjIgJFBSICRIWSAkQkEgJGRpY3Rpb25hcnldOworJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7Cisg
ICAgCishIXNhZmVfcmV2ZXJzZTsKKyRDTSsgW14kQ00gJEJLICRDUiAkTEYgJE5MICRaVyAkU1Bd
OworJENNKyAkU1AgLyAuOworJFNQKyAkQ00qICRPUDsKKyRTUCsgJENNKiAkUVU7CiskU1ArICRD
TSogKCRDTCB8ICRDUCk7CiskU1ArICRDTSogJEIyOworJENNKiAoJEhZIHwgJEJBKSAkQ00qICRI
TDsKKygkQ00qICgkSVMgfCAkU1kpKSsgJENNKiAkTlU7CisoJENMIHwgJENQKSAkQ00qICgkTlUg
fCAkSVMgfCAkU1kpOworJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50
eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQ
cm9sb2d1ZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWIzZjY2ZjQyYWYxMzhlZDU4ZmY0MjFmNjc2OGQ4ZmQ1
ODAxMjgyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApAQCAtMCwwICsxLDM4IEBACisjIChD
KSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3
LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCishIWNoYWluOworISFMQkNNTm9DaGFpbjsKKyEhbG9va0FoZWFkSGFyZEJyZWFr
OworCisjaWYgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUworCisgICAgJENKID0gWzpMaW5lQnJl
YWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjpdOworCisjZWxzZQorCisgICAgJENKID0g
W1x1MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2M1x1MzA4M1x1MzA4NVx1MzA4N1x1
MzA4RVx1MzA5NVx1MzA5Nlx1MzBBMVx1MzBBM1x1MzBBNVx1MzBBN1x1MzBBOVx1MzBDM1x1MzBF
M1x1MzBFNVx1MzBFN1x1MzBFRVx1MzBGNVx1MzBGNlx1MzBGQ1x1MzFGMFx1MzFGMVx1MzFGMlx1
MzFGM1x1MzFGNFx1MzFGNVx1MzFGNlx1MzFGN1x1MzFGOFx1MzFGOVx1MzFGQVx1MzFGQlx1MzFG
Q1x1MzFGRFx1MzFGRVx1MzFGRlx1RkY2N1x1RkY2OFx1RkY2OVx1RkY2QVx1RkY2Qlx1RkY2Q1x1
RkY2RFx1RkY2RVx1RkY2Rlx1RkY3MF07CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0IGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjkwN2MwY2E1YWE3YjJmZmJmOGIyY2Q5MDkyYWE1ZjNlMWRiYTQw
OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5
OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5
IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
IyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9
ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMw
QTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NV
QiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0IGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZUNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRiOGYwZmY1MTg1NmQ5N2M5YzE0ZTEyMTYzNzM0ZmRmYzk3
YzljYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMg
KEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIw
MDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMg
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSBbXHUwMDIx
XHUwMDNGXHVGRjAxXHVGRjFGXTsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSBbXHUyMDI1XHUy
MDI2XTsKKyRJU19TVUIgPSBbXHUwMDNBXHUwMDNCXTsKKyROU19TVUIgPSBbXHUyMDNDXHUyMDQ3
XHUyMDQ4XHUyMDQ5XHUzMDA1XHUzMDFDXHUzMDNCXHUzMDlEXHUzMDlFXHUzMEEwXHUzMEZCXHUz
MEZEXHUzMEZFXHVGRjFBXHVGRjFCXHVGRjY1XTsKKyRQT19TVUIgPSBbXHUwMDI1XHUwMEEyXHUw
MEIwXHUyMDMwXHUyMDMyXHUyMDMzXHUyMTAzXHVGRjA1XHVGRkUwXTsKKyRQUl9TVUIgPSBbXHUw
MDI0XHUwMEEzXHUwMEE1XHUyMEFDXHUyMTE2XHVGRjA0XHVGRkUxXHVGRkU1XTsKKyRJRF9BREQg
PSBbJENKICRCQV9TVUIgJEVYX1NVQiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQ
Ul9TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2JiYzhhODgxNWU0ZDBkY2ZiOTYwYzExMmY2MGE4Mzhk
M2E0Mjg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQKQEAgLTAsMCArMSwzNSBA
QAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9
ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9
IFtcdTMwMDVcdTMwM0JcdTMwOURcdTMwOUVcdTMwRkRcdTMwRkVdOworJFBPX1NVQiA9ICcnOwor
JFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsKKyROU19BREQg
PSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzQy
ODc5ZGQxZjgyZWI2MmQyOGQ4YWE3YmNkZGY0NDZkMDczODdmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b25DSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxA
a2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsK
KyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAn
JzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQg
PSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45MDdjMGNhNWFhN2IyZmZiZjhiMmNkOTA5MmFhNWYzZTFkYmE0
MDkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMg
KEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIw
MDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMg
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSAnJzsKKyRJ
Tl9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUz
MDFDXHUzMEEwXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENK
ICRCQV9TVUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNK
Sy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJjZjZhMDgyNmFkYTRlZGNmY2Yz
OTQzYjY4OWY4YzA2ZTBiZDc0OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApA
QCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisj
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0g
Jyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VC
ID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSl07Cisk
TlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjc0Mjg3OWRkMWY4MmViNjJkMjhkOGFhN2JjZGRmNDQ2ZDA3Mzg3ZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9y
Y2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0g
Jyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VC
ID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc0Mjg3OWRkMWY4MmVi
NjJkMjhkOGFhN2JjZGRmNDQ2ZDA3Mzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5v
cmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhf
U1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7Cisk
TlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gJyc7
CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRC
cmVha0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
Y3BwCmluZGV4IGIwZGJlNTk3ZjM5MWYxMzJjMjhlNjQyZjdkOTc1YjExMGY3NWY4MjYuLjUyNzBh
MjU5MWFjOWJjODAwNTkzYzUyZDFiNWNiYTc1NzQ3NGE2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCkBAIC0zMSw5ICszMSw2IEBACiAjaW5jbHVkZSA8dW5p
Y29kZS91YnJrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCi0vLyBG
SVhNRTogVGhpcyBuZWVkcyBhIGJldHRlciBuYW1lCi0jZGVmaW5lIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkpCi0KIG5hbWVzcGFjZSBXVEYgewogCiAvLyBJ
dGVyYXRvciBpbml0aWFsaXphdGlvbgpAQCAtNjEsNiArNTgsMTIgQEAgc3RhdGljIFVCcmVha0l0
ZXJhdG9yKiBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoY29uc3QgY2hhciogYnJlYWtSdWxl
cykKIAogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorVUJy
ZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpCit7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKIAogLy8gSXRlcmF0b3IgdGV4dCBzZXR0
aW5nCiAKQEAgLTE2NCwxNDMgKzE2NywyNyBAQCBVQnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVh
a0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogICAgIHJldHVybiBzZXRUZXh0Rm9ySXRlcmF0
b3IoKnN0YXRpY1NlbnRlbmNlQnJlYWtJdGVyYXRvciwgc3RyaW5nKTsKIH0KIAorI2lmICFQTEFU
Rk9STShJT1MpCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUN1cnNvck1vdmVtZW50SXRl
cmF0b3JXaXRoRmFsbGJhY2soKQoreworICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGNyZWF0ZUl0
ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50KSkKKyAgICAg
ICAgcmV0dXJuIGl0ZXJhdG9yOworICAgIHJldHVybiBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVs
ZXMoY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzKTsKK30KKyNlbmRpZgorCiBVQnJlYWtJdGVy
YXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZykKIHsKICNpZiAh
UExBVEZPUk0oSU9TKQotICAgIC8vIFRoaXMgcnVsZSBzZXQgaXMgYmFzZWQgb24gY2hhcmFjdGVy
LWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NwotICAgIC8vIDxodHRwOi8vc291cmNlLmlj
dS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3NvdXJjZS9kYXRh
L2Jya2l0ci8+LgotICAgIC8vIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9tIHRoZSBvcmlnaW5h
bCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6Ci0gICAgLy8gKiBSZXBsYWNlZCAnW1xwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBTcGFjaW5nTWFya31dJyB3aXRoICdbXHB7R2VuZXJhbF9DYXRlZ29y
eSA9IFNwYWNpbmcgTWFya30gLSAkRXh0ZW5kXScgZm9yIElDVSAzLjggb3IgZWFybGllcjsKLSAg
ICAvLyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFm
dGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKLSAgICAvLyAqIEFkZGVkIHJ1bGVz
IHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciB2aXJhbWEgc2lnbnMgb2Yg
SW5kaWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwgYW5kOwotICAgIC8vICog
QWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGJlZm9yZSBKYXBh
bmVzZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJrcy4KLSAgICAvLyAqIEFkZGVkIHJ1
bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4KLSAgICBzdGF0aWMgY29uc3QgY2hh
cioga1J1bGVzID0KLSAgICAgICAgIiRDUiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gQ1J9XTsiCi0gICAgICAgICIkTEYgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9C
cmVhayA9IExGfV07IgotICAgICAgICAiJENvbnRyb2wgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJf
QnJlYWsgPSBDb250cm9sfV07IgotICAgICAgICAiJFZvaWNlTWFya3MgPSBbXFx1RkY5RVxcdUZG
OUZdOyIgLy8gSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FuYSB2b2ljZWQgbWFya3MKLSAgICAg
ICAgIiRFeHRlbmQgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSAkVm9p
Y2VNYXJrcyAtIFtcXHUwRTMwIFxcdTBFMzIgXFx1MEU0NSBcXHUwRUIwIFxcdTBFQjJdXTsiCi0g
ICAgICAgICIkU3BhY2luZ01hcmsgPSBbW1xccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBN
YXJrfV0gLSAkRXh0ZW5kXTsiCi0gICAgICAgICIkTCAgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IEx9XTsiCi0gICAgICAgICIkViAgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IFZ9XTsiCi0gICAgICAgICIkVCAgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IFR9XTsiCi0gICAgICAgICIkTFYgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1
c3Rlcl9CcmVhayA9IExWfV07IgotICAgICAgICAiJExWVCAgICAgPSBbXFxwe0dyYXBoZW1lX0Ns
dXN0ZXJfQnJlYWsgPSBMVlR9XTsiCi0gICAgICAgICIkSGluMCAgICA9IFtcXHUwOTA1LVxcdTA5
MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRIaW5WICAgID0g
XFx1MDk0RDsiIC8vIERldmFuYWdhcmkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRIaW4xICAgID0g
W1xcdTA5MTUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJpIExldHRlciBLYSwuLi4sSGEKLSAgICAg
ICAgIiRCZW4wICAgID0gW1xcdTA5ODUtXFx1MDlCOV07IiAvLyBCZW5nYWxpIExldHRlciBBLC4u
LixIYQotICAgICAgICAiJEJlblYgICAgPSBcXHUwOUNEOyIgLy8gQmVuZ2FsaSBTaWduIFZpcmFt
YQotICAgICAgICAiJEJlbjEgICAgPSBbXFx1MDk5NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0
dGVyIEthLC4uLixIYQotICAgICAgICAiJFBhbjAgICAgPSBbXFx1MEEwNS1cXHUwQTM5XTsiIC8v
IEd1cm11a2hpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJFBhblYgICAgPSBcXHUwQTREOyIg
Ly8gR3VybXVraGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRQYW4xICAgID0gW1xcdTBBMTUtXFx1
MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkR3VqMCAgICA9
IFtcXHUwQTg1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAg
ICIkR3VqViAgICA9IFxcdTBBQ0Q7IiAvLyBHdWphcmF0aSBTaWduIFZpcmFtYQotICAgICAgICAi
JEd1ajEgICAgPSBbXFx1MEE5NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBLYSwuLi4s
SGEKLSAgICAgICAgIiRPcmkwICAgID0gW1xcdTBCMDUtXFx1MEIzOV07IiAvLyBPcml5YSBMZXR0
ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRPcmlWICAgID0gXFx1MEI0RDsiIC8vIE9yaXlhIFNpZ24g
VmlyYW1hCi0gICAgICAgICIkT3JpMSAgICA9IFtcXHUwQjE1LVxcdTBCMzldOyIgLy8gT3JpeWEg
TGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJFRlbDAgICAgPSBbXFx1MEMwNS1cXHUwQzM5XTsi
IC8vIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRUZWxWICAgID0gXFx1MEM0RDsi
IC8vIFRlbHVndSBTaWduIFZpcmFtYQotICAgICAgICAiJFRlbDEgICAgPSBbXFx1MEMxNC1cXHUw
QzM5XTsiIC8vIFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkS2FuMCAgICA9IFtc
XHUwQzg1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRL
YW5WICAgID0gXFx1MENDRDsiIC8vIEthbm5hZGEgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRLYW4x
ICAgID0gW1xcdTBDOTUtXFx1MENCOV07IiAvLyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAg
ICAgICAiJE1hbDAgICAgPSBbXFx1MEQwNS1cXHUwRDM5XTsiIC8vIE1hbGF5YWxhbSBMZXR0ZXIg
QSwuLi4sSGEKLSAgICAgICAgIiRNYWxWICAgID0gXFx1MEQ0RDsiIC8vIE1hbGF5YWxhbSBTaWdu
IFZpcmFtYQotICAgICAgICAiJE1hbDEgICAgPSBbXFx1MEQxNS1cXHUwRDM5XTsiIC8vIE1hbGF5
YWxhbSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRSSSAgICAgID0gW1xcVTAwMDFGMUU2LVxc
VTAwMDFGMUZGXTsiIC8vIEVtb2ppIHJlZ2lvbmFsIGluZGljYXRvcnMKLSAgICAgICAgIiRaV0og
ICAgID0gXFx1MjAwRDsiIC8vIFplcm8gd2lkdGggam9pbmVyCi0gICAgICAgICIkRW1vamlWYXIg
PSBbXFx1RkUwRl07IiAvLyBFbW9qaS1zdHlsZSB2YXJpYXRpb24gc2VsZWN0b3IKLSNpZiBBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1MjY0MCBc
XHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUwMDAxRjND
NCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBcXFUwMDAx
RjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3MSBcXFUw
MDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAxRjQ4Ni1c
XFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUwMDAxRjY0
NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBcXFUwMDAx
RjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXHUyNjk1LVxcdTI2OTYgXFx1MjcwOCBcXFUw
MDAxRjMzRSBcXFUwMDAxRjM3MyBcXFUwMDAxRjM5MyBcXFUwMDAxRjNBNCBcXFUwMDAxRjNBOCBc
XFUwMDAxRjNFQiBcXFUwMDAxRjNFRCBcXFUwMDAxRjRCQi1cXFUwMDAxRjRCQyBcXFUwMDAxRjUy
NyBcXFUwMDAxRjUyQyBcXFUwMDAxRjY4MCBcXFUwMDAxRjY5MiBcXFUwMDAxRjkyNiBcXFUwMDAx
RjkzNy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV07IiAvLyBFbW9qaSB0aGF0
IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgPSBb
XFx1MjYxRCBcXHUyNkY5IFxcdTI3MEEtXFx1MjcwRCBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1c
XFUwMDAxRjNDNCBcXFUwMDAxRjNDQSBcXFUwMDAxRjNDQiBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0
MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ3OCBcXFUwMDAx
RjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUw
MDAxRjRBQSBcXFUwMDAxRjU3NSBcXFUwMDAxRjU5MCBcXFUwMDAxRjU5NSBcXFUwMDAxRjU5NiBc
XFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZB
MyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMCBcXFUwMDAxRjkxOCBcXFUwMDAx
RjNDMiBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQyBcXFUwMDAxRjU3NCBcXFUwMDAxRjU3QSBcXFUw
MDAxRjZDQyBcXFUwMDAxRjkxOS1cXFUwMDAxRjkxRSBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzMCBc
XFUwMDAxRjkzMy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV0gOyIgLy8gRW1v
amkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2Vsc2UKLSAgICAgICAgIiRFbW9q
aUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07
IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRF
bW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNzBBLVxcdTI3MEMgXFxVMDAwMUYzODUgXFxVMDAw
MUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0EgXFxVMDAwMUY0NDItXFxV
MDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0Njkg
XFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0
ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1OTYgXFxVMDAw
MUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxV
MDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzBdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBG
aXR6cGF0cmljayBtb2RpZmllcnMKLSNlbmRpZgotICAgICAgICAiJEVtb2ppTW9kcyA9IFtcXFUw
MDAxRjNGQi1cXFUwMDAxRjNGRl07IiAvLyBGaXR6cGF0cmljayBtb2RpZmllcnMKLSAgICAgICAg
IiEhY2hhaW47IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiISFSSU5v
Q2hhaW47IgotI2VuZGlmCi0gICAgICAgICIhIWZvcndhcmQ7IgotICAgICAgICAiJENSICRMRjsi
Ci0gICAgICAgICIkTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOyIKLSAgICAgICAgIigkTFYgfCAk
VikgKCRWIHwgJFQpOyIKLSAgICAgICAgIigkTFZUIHwgJFQpICRUOyIKLSNpZiBBRERJVElPTkFM
X0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCogLyAkUkk7IgotICAgICAg
ICAiJFJJICRSSSAkRXh0ZW5kKjsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRFeHRl
bmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotI2Vsc2UK
LSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsiCi0gICAgICAgICJbXiRDb250
cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJOyIKLSAg
ICAgICAgIiRSSSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIkSGluMCAkSGluViAkSGluMTsiIC8v
IERldmFuYWdhcmkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEJlbjAgJEJlblYgJEJlbjE7
IiAvLyBCZW5nYWxpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRQYW4wICRQYW5WICRQYW4x
OyIgLy8gR3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEd1ajAgJEd1alYgJEd1
ajE7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkT3JpMCAkT3JpViAk
T3JpMTsiIC8vIE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRUZWwwICRUZWxWICRU
ZWwxOyIgLy8gVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRLYW4wICRLYW5WICRL
YW4xOyIgLy8gS2FubmFkYSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkTWFsMCAkTWFsViAk
TWFsMTsiIC8vIE1hbGF5YWxhbSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkWldKICRFbW9q
aUZvclNlcXM7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAgICAg
ICIkRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsiIC8vIERvbid0IGJyZWFrIGJl
dHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBh
bmQgRml0enBhdHJpY2sgbW9kaWZpZXIKLSAgICAgICAgIiEhcmV2ZXJzZTsiCi0gICAgICAgICIk
TEYgJENSOyIKLSAgICAgICAgIigkTCB8ICRWIHwgJExWIHwgJExWVCkgJEw7IgotICAgICAgICAi
KCRWIHwgJFQpICgkTFYgfCAkVik7IgotICAgICAgICAiJFQgKCRMVlQgfCAkVCk7IgotI2lmIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJEV4dGVuZCogJFJJICRSSSAvICRFeHRl
bmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0
ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgW14k
Q29udHJvbCAkQ1IgJExGXTsiCi0jZWxzZQotICAgICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRy
b2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07
IgotICAgICAgICAiJFJJICRSSSAvICRSSSAkUkk7IgotICAgICAgICAiJFJJICRSSTsiCi0jZW5k
aWYKLSAgICAgICAgIiRIaW4xICRIaW5WICRIaW4wOyIgLy8gRGV2YW5hZ2FyaSBWaXJhbWEgKGJh
Y2t3YXJkKQotICAgICAgICAiJEJlbjEgJEJlblYgJEJlbjA7IiAvLyBCZW5nYWxpIFZpcmFtYSAo
YmFja3dhcmQpCi0gICAgICAgICIkUGFuMSAkUGFuViAkUGFuMDsiIC8vIEd1cm11a2hpIFZpcmFt
YSAoYmFja3dhcmQpCi0gICAgICAgICIkR3VqMSAkR3VqViAkR3VqMDsiIC8vIEd1amFyYXRpIFZp
cmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkT3JpMSAkT3JpViAkT3JpMDsiIC8vIEd1amFyYXRp
IFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkVGVsMSAkVGVsViAkVGVsMDsiIC8vIFRlbHVn
dSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEthbjEgJEthblYgJEthbjA7IiAvLyBLYW5u
YWRhIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkTWFsMSAkTWFsViAkTWFsMDsiIC8vIE1h
bGF5YWxhbSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEVtb2ppRm9yU2VxcyAkWldKOyIg
Ly8gRG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppTW9k
cyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2
YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRy
aWNrIG1vZGlmaWVyCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIhIXNh
ZmVfcmV2ZXJzZTsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0gICAgICAgICJbJEVtb2ppVmFyICRF
bW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAgIiEhc2FmZV9mb3J3YXJkOyIKLSAg
ICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1v
amlNb2RzXSs7IjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBz
dGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gY3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
cldpdGhGYWxsYmFjaygpOwogI2Vsc2UKLSAgICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10r
ICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9q
aU1vZHNdKzsiCi0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgICAgICIhIXNhZmVfZm9y
d2FyZDsiOwotI2VuZGlmCi0gICAgc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGtSdWxlcyk7Ci0j
ZWxzZSAvLyBQTEFURk9STShJT1MpCiAgICAgLy8gVXNlIHRoZSBzcGVjaWFsIFRoYWkgY2hhcmFj
dGVyIGJyZWFrIGl0ZXJhdG9yIGZvciBhbGwgbG9jYWxlcwotICAgIHN0YXRpYyBVQnJlYWtJdGVy
YXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcihV
QlJLX0NIQVJBQ1RFUiwgInRoIik7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0
ZXJhdG9yKj4gc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRv
cihVQlJLX0NIQVJBQ1RFUiwgInRoIik7CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIAotICAg
IGlmICghc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcikKKyAgICBpZiAoIXN0YXRpY0N1cnNv
ck1vdmVtZW50SXRlcmF0b3IuZ2V0KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
cmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciwg
c3RyaW5nKTsKKyAgICByZXR1cm4gc2V0VGV4dEZvckl0ZXJhdG9yKCooc3RhdGljQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvci5nZXQoKSksIHN0cmluZyk7CiB9CiAKIFVCcmVha0l0ZXJhdG9yKiBhY3F1
aXJlTGluZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbG9jYWxlLCBjb25zdCBVQ2hhciogcHJpb3JDb250ZXh0LCB1bnNpZ25lZCBwcmlvckNvbnRl
eHRMZW5ndGgsIExpbmVCcmVha0l0ZXJhdG9yTW9kZSBtb2RlLCBib29sIGlzQ0pLKQpAQCAtMzE5
LDQ0MiArMjA2LDIwIEBAIHZvaWQgcmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFVCcmVha0l0ZXJh
dG9yKiBpdGVyYXRvcikKICAgICBMaW5lQnJlYWtJdGVyYXRvclBvb2w6OnNoYXJlZFBvb2woKS5w
dXQoaXRlcmF0b3IpOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRQcm9sb2d1ZSA9Ci0g
ICAgIiEhY2hhaW47IgotICAgICIhIUxCQ01Ob0NoYWluOyIKLSAgICAiISFsb29rQWhlYWRIYXJk
QnJlYWs7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNCZWZvcmUgPQot
ICAgIC8vIGV4cGxpY2l0bHkgZW51bWVyYXRlICRDSiBzaW5jZSBJQ1UgdmVyc2lvbnMgcHJpb3Ig
dG8gNDkgZG9uJ3Qgc3VwcG9ydCA6TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0
ZXI6Ci0gICAgIiRDSiA9IFsiCi0jaWYgKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYm
IChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KQotICAgICI6TGluZUJyZWFrPUNvbmRpdGlv
bmFsX0phcGFuZXNlX1N0YXJ0ZXI6IgotI2Vsc2UKLSAgICAiXFx1MzA0MVxcdTMwNDNcXHUzMDQ1
XFx1MzA0N1xcdTMwNDlcXHUzMDYzXFx1MzA4M1xcdTMwODVcXHUzMDg3XFx1MzA4RVxcdTMwOTVc
XHUzMDk2XFx1MzBBMVxcdTMwQTNcXHUzMEE1XFx1MzBBNyIKLSAgICAiXFx1MzBBOVxcdTMwQzNc
XHUzMEUzXFx1MzBFNVxcdTMwRTdcXHUzMEVFXFx1MzBGNVxcdTMwRjZcXHUzMEZDIgotICAgICJc
XHUzMUYwXFx1MzFGMVxcdTMxRjJcXHUzMUYzXFx1MzFGNFxcdTMxRjVcXHUzMUY2XFx1MzFGN1xc
dTMxRjhcXHUzMUY5XFx1MzFGQVxcdTMxRkJcXHUzMUZDXFx1MzFGRFxcdTMxRkVcXHUzMUZGIgot
ICAgICJcXHVGRjY3XFx1RkY2OFxcdUZGNjlcXHVGRjZBXFx1RkY2QlxcdUZGNkNcXHVGRjZEXFx1
RkY2RVxcdUZGNkZcXHVGRjcwIgotI2VuZGlmCi0gICAgIl07IjsKLQotc3RhdGljIGNvbnN0IGNo
YXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZUNKSyA9Ci0gICAgIiRCQV9TVUIgPSBbXFx1
MjAxMFxcdTIwMTNdOyIKLSAgICAiJEVYX1NVQiA9IFtcXHUwMDIxXFx1MDAzRlxcdUZGMDFcXHVG
RjFGXTsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIw
MjZdOyIKLSAgICAiJElTX1NVQiA9IFtcXHUwMDNBXFx1MDAzQl07IgotICAgICIkTlNfU1VCID0g
W1xcdTIwM0NcXHUyMDQ3XFx1MjA0OFxcdTIwNDlcXHUzMDA1XFx1MzAxQ1xcdTMwM0JcXHUzMDlE
XFx1MzA5RVxcdTMwQTBcXHUzMEZCXFx1MzBGRFxcdTMwRkVcXHVGRjFBXFx1RkYxQlxcdUZGNjVd
OyIKLSAgICAiJFBPX1NVQiA9IFtcXHUwMDI1XFx1MDBBMlxcdTAwQjBcXHUyMDMwXFx1MjAzMlxc
dTIwMzNcXHUyMTAzXFx1RkYwNVxcdUZGRTBdOyIKLSAgICAiJFBSX1NVQiA9IFtcXHUwMDI0XFx1
MDBBM1xcdTAwQTVcXHUyMEFDXFx1MjExNlxcdUZGMDRcXHVGRkUxXFx1RkZFNV07IgotICAgICIk
SURfQUREID0gWyRDSiAkQkFfU1VCICRFWF9TVUIgJElOX1NVQiAkSVNfU1VCICROU19TVUIgJFBP
X1NVQiAkUFJfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hh
ciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlTm9uQ0pLID0KLSAgICAiJEJBX1NVQiA9ICcn
OyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NV
QiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VC
ID0gW1xcdTMwMDVcXHUzMDNCXFx1MzA5RFxcdTMwOUVcXHUzMEZEXFx1MzBGRV07IgotICAgICIk
UE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSiAk
SU5fU1VCICROU19TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBj
aGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pLID0KLSAgICAiJEJBX1NVQiA9IFtc
XHUyMDEwXFx1MjAxM107IgotICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gJyc7
IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VC
ID0gW1xcdTMwMUNcXHUzMEEwXTsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIg
PSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKICRCQV9TVUIgJE5TX1NVQl07IgotICAgICIkTlNf
QUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21O
b3JtYWxOb25DSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7Igot
ICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gJyc7IgotICAgICIkSVNfU1VCID0g
Jyc7IgotICAgICIkTlNfU1VCID0gJyc7IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJf
U1VCID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSl07IgotICAgICIkTlNfQUREID0gJyc7IjsK
LQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksgPQot
ICAgICIkQkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0g
Jyc7IgotICAgICIkSU5fU1VCID0gJyc7IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNf
U1VCID0gJyc7IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAg
ICIkSURfQUREID0gJyc7IgotICAgICIkTlNfQUREID0gWyRDSl07IjsKLQotI2RlZmluZSB1YXgx
NEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLICAgICAgdWF4MTRBc3NpZ25tZW50c0N1c3Rv
bVN0cmljdENKSwotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdENKSyAgICAg
ICAgdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSwotI2RlZmluZSB1YXgxNEFzc2lnbm1l
bnRzQ3VzdG9tRGVmYXVsdE5vbkNKSyAgICAgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5v
bkNKSwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0FmdGVyID0KLSAgICAi
JEFJID0gWzpMaW5lQnJlYWsgPSBBbWJpZ3VvdXM6XTsiCi0gICAgIiRBTCA9IFs6TGluZUJyZWFr
ID0gQWxwaGFiZXRpYzpdOyIKLSAgICAiJEJBID0gW1s6TGluZUJyZWFrID0gQnJlYWtfQWZ0ZXI6
XSAtICRCQV9TVUJdOyIKLSAgICAiJEJCID0gWzpMaW5lQnJlYWsgPSBCcmVha19CZWZvcmU6XTsi
Ci0gICAgIiRCSyA9IFs6TGluZUJyZWFrID0gTWFuZGF0b3J5X0JyZWFrOl07IgotICAgICIkQjIg
PSBbOkxpbmVCcmVhayA9IEJyZWFrX0JvdGg6XTsiCi0gICAgIiRDQiA9IFs6TGluZUJyZWFrID0g
Q29udGluZ2VudF9CcmVhazpdOyIKLSAgICAiJENMID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QdW5j
dHVhdGlvbjpdOyIKLSAgICAiJENNID0gWzpMaW5lQnJlYWsgPSBDb21iaW5pbmdfTWFyazpdOyIK
LSAgICAiJENQID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QYXJlbnRoZXNpczpdOyIKLSAgICAiJENS
ID0gWzpMaW5lQnJlYWsgPSBDYXJyaWFnZV9SZXR1cm46XTsiCi0gICAgIiRFWCA9IFtbOkxpbmVC
cmVhayA9IEV4Y2xhbWF0aW9uOl0gLSAkRVhfU1VCXTsiCi0gICAgIiRHTCA9IFs6TGluZUJyZWFr
ID0gR2x1ZTpdOyIKLSNpZiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNV
X1ZFUlNJT05fTUlOT1JfTlVNID49IDkpCi0gICAgIiRITCA9IFs6TGluZUJyZWFrID0gSGVicmV3
X0xldHRlcjpdOyIKLSNlbHNlCi0gICAgIiRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07
IgotI2VuZGlmCi0gICAgIiRIWSA9IFs6TGluZUJyZWFrID0gSHlwaGVuOl07IgotICAgICIkSDIg
PSBbOkxpbmVCcmVhayA9IEgyOl07IgotICAgICIkSDMgPSBbOkxpbmVCcmVhayA9IEgzOl07Igot
ICAgICIkSUQgPSBbW1tbOkxpbmVCcmVhayA9IElkZW9ncmFwaGljOl0gLSAkQ0pdICRJRF9BRERd
IC0gJElEX1NVQl07IgotICAgICIkSU4gPSBbWzpMaW5lQnJlYWsgPSBJbnNlcGFyYWJsZTpdIC0g
JElOX1NVQl07IgotICAgICIkSVMgPSBbWzpMaW5lQnJlYWsgPSBJbmZpeF9OdW1lcmljOl0gLSAk
SVNfU1VCXTsiCi0gICAgIiRKTCA9IFs6TGluZUJyZWFrID0gSkw6XTsiCi0gICAgIiRKViA9IFs6
TGluZUJyZWFrID0gSlY6XTsiCi0gICAgIiRKVCA9IFs6TGluZUJyZWFrID0gSlQ6XTsiCi0gICAg
IiRMRiA9IFs6TGluZUJyZWFrID0gTGluZV9GZWVkOl07IgotICAgICIkTkwgPSBbOkxpbmVCcmVh
ayA9IE5leHRfTGluZTpdOyIKLSAgICAiJE5TID0gW1tbWzpMaW5lQnJlYWsgPSBOb25zdGFydGVy
Ol0gLSAkQ0pdICROU19BRERdIC0gJE5TX1NVQl07IgotICAgICIkTlUgPSBbOkxpbmVCcmVhayA9
IE51bWVyaWM6XTsiCi0gICAgIiRPUCA9IFs6TGluZUJyZWFrID0gT3Blbl9QdW5jdHVhdGlvbjpd
OyIKLSAgICAiJFBPID0gW1s6TGluZUJyZWFrID0gUG9zdGZpeF9OdW1lcmljOl0gLSAkUE9fU1VC
XTsiCi0gICAgIiRQUiA9IFtbOkxpbmVCcmVhayA9IFByZWZpeF9OdW1lcmljOl0gLSAkUFJfU1VC
XTsiCi0gICAgIiRRVSA9IFs6TGluZUJyZWFrID0gUXVvdGF0aW9uOl07IgotICAgICIkUkkgPSBb
XFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIKLSAgICAiJFNBID0gWzpMaW5lQnJlYWsgPSBDb21w
bGV4X0NvbnRleHQ6XTsiCi0gICAgIiRTRyA9IFs6TGluZUJyZWFrID0gU3Vycm9nYXRlOl07Igot
ICAgICIkU1AgPSBbOkxpbmVCcmVhayA9IFNwYWNlOl07IgotICAgICIkU1kgPSBbOkxpbmVCcmVh
ayA9IEJyZWFrX1N5bWJvbHM6XTsiCi0gICAgIiRXSiA9IFs6TGluZUJyZWFrID0gV29yZF9Kb2lu
ZXI6XTsiCi0gICAgIiRYWCA9IFs6TGluZUJyZWFrID0gVW5rbm93bjpdOyIKLSAgICAiJFpXID0g
WzpMaW5lQnJlYWsgPSBaV1NwYWNlOl07IgotICAgICIkWldKID0gXFx1MjAwRDsiCi0gICAgIiRF
bW9qaVZhciA9IFxcdUZFMEY7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIk
RW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAwMUYz
MDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxVMDAw
MUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxV
MDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0ODEt
XFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAwMUY1
NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxVMDAw
MUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFx1
MjY5NS1cXHUyNjk2IFxcdTI3MDggXFxVMDAwMUYzM0UgXFxVMDAwMUYzNzMgXFxVMDAwMUYzOTMg
XFxVMDAwMUYzQTQgXFxVMDAwMUYzQTggXFxVMDAwMUYzRUIgXFxVMDAwMUYzRUQgXFxVMDAwMUY0
QkItXFxVMDAwMUY0QkMgXFxVMDAwMUY1MjcgXFxVMDAwMUY1MkMgXFxVMDAwMUY2ODAgXFxVMDAw
MUY2OTIgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzctXFxVMDAwMUY5MzkgXFxVMDAwMUY5M0MtXFxV
MDAwMUY5M0VdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0g
ICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNkY5IFxcdTI3MEEtXFx1MjcwRCBcXFUw
MDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQSBcXFUwMDAxRjNDQiBc
XFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2
Ni1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAx
RjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU3NSBcXFUwMDAxRjU5MCBcXFUw
MDAxRjU5NSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1c
XFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZD
MCBcXFUwMDAxRjkxOCBcXFUwMDAxRjNDMiBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQyBcXFUwMDAx
RjU3NCBcXFUwMDAxRjU3QSBcXFUwMDAxRjZDQyBcXFUwMDAxRjkxOS1cXFUwMDAxRjkxRSBcXFUw
MDAxRjkyNiBcXFUwMDAxRjkzMCBcXFUwMDAxRjkzMy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1c
XFUwMDAxRjkzRV0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwot
I2Vsc2UKLSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFG
NDY5IFxcVTAwMDFGNDhCXTsiCi0gICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNzBB
LVxcdTI3MEMgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQzcg
XFxVMDAwMUYzQ0EgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0
NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAw
MUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxV
MDAwMUY0QUEgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIt
XFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2
QzBdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbmRpZgot
ICAgICIkRW1vamlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiCi0gICAgIiRkaWN0
aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsiCi0gICAgIiRBTFBsdXMg
PSBbJEFMICRBSSAkU0EgJFNHICRYWF07IgotICAgICIkQUxjbSA9ICRBTFBsdXMgJENNKjsiCi0g
ICAgIiRCQWNtID0gJEJBICRDTSo7IgotICAgICIkQkJjbSA9ICRCQiAkQ00qOyIKLSAgICAiJEIy
Y20gPSAkQjIgJENNKjsiCi0gICAgIiRDTGNtID0gJENMICRDTSo7IgotICAgICIkQ1BjbSA9ICRD
UCAkQ00qOyIKLSAgICAiJEVYY20gPSAkRVggJENNKjsiCi0gICAgIiRHTGNtID0gJEdMICRDTSo7
IgotICAgICIkSExjbSA9ICRITCAkQ00qOyIKLSAgICAiJEhZY20gPSAkSFkgJENNKjsiCi0gICAg
IiRIMmNtID0gJEgyICRDTSo7IgotICAgICIkSDNjbSA9ICRIMyAkQ00qOyIKLSAgICAiJElEY20g
PSAkSUQgJENNKjsiCi0gICAgIiRJTmNtID0gJElOICRDTSo7IgotICAgICIkSVNjbSA9ICRJUyAk
Q00qOyIKLSAgICAiJEpMY20gPSAkSkwgJENNKjsiCi0gICAgIiRKVmNtID0gJEpWICRDTSo7Igot
ICAgICIkSlRjbSA9ICRKVCAkQ00qOyIKLSAgICAiJE5TY20gPSAkTlMgJENNKjsiCi0gICAgIiRO
VWNtID0gJE5VICRDTSo7IgotICAgICIkT1BjbSA9ICRPUCAkQ00qOyIKLSAgICAiJFBPY20gPSAk
UE8gJENNKjsiCi0gICAgIiRQUmNtID0gJFBSICRDTSo7IgotICAgICIkUVVjbSA9ICRRVSAkQ00q
OyIKLSAgICAiJFJJY20gPSAkUkkgJENNKjsiCi0gICAgIiRTWWNtID0gJFNZICRDTSo7IgotICAg
ICIkV0pjbSA9ICRXSiAkQ00qOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEZvcndhcmQg
PQotICAgICIhIWZvcndhcmQ7IgotICAgICIkQ0FOX0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5M
ICRaVyAkQ01dOyIKLSAgICAiJENBTlRfQ00gPSBbJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENN
XTsiCi0gICAgIiRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAkTkwgJFpXICRTUF07Igot
ICAgICIkQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRXSiAkR0wgJE9Q
ICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOyIKLSAgICAiJEFMX0ZPTExPVyA9IFsk
QUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07IgotICAgICIkTEI0QnJlYWtzID0gWyRCSyAk
Q1IgJExGICROTF07IgotICAgICIkTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOyIK
LSAgICAiJExCOEJyZWFrcyA9IFskTEI0QnJlYWtzICRaV107IgotICAgICIkTEI4Tm9uQnJlYWtz
ID0gW1skTEI0Tm9uQnJlYWtzXSAtIFskWlddXTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzID0gWyRM
QjhOb25CcmVha3MgLSBbJFNQXV07IgotICAgICIkTEIxOEJyZWFrcyA9IFskTEI4QnJlYWtzICRT
UF07IgotICAgICIkTEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJyZWFrcyAtICRDQl07IgotICAg
ICIkQUxQbHVzICRDTSs7IgotICAgICIkQkEgJENNKzsiCi0gICAgIiRCQiAkQ00rOyIKLSAgICAi
JEIyICRDTSs7IgotICAgICIkQ0wgJENNKzsiCi0gICAgIiRDUCAkQ00rOyIKLSAgICAiJEVYICRD
TSs7IgotICAgICIkR0wgJENNKzsiCi0gICAgIiRITCAkQ00rOyIKLSAgICAiJEhZICRDTSs7Igot
ICAgICIkSDIgJENNKzsiCi0gICAgIiRIMyAkQ00rOyIKLSAgICAiJElEICRDTSs7IgotICAgICIk
SU4gJENNKzsiCi0gICAgIiRJUyAkQ00rOyIKLSAgICAiJEpMICRDTSs7IgotICAgICIkSlYgJENN
KzsiCi0gICAgIiRKVCAkQ00rOyIKLSAgICAiJE5TICRDTSs7IgotICAgICIkTlUgJENNKzsiCi0g
ICAgIiRPUCAkQ00rOyIKLSAgICAiJFBPICRDTSs7IgotICAgICIkUFIgJENNKzsiCi0gICAgIiRR
VSAkQ00rOyIKLSAgICAiJFJJICRDTSs7IgotICAgICIkU1kgJENNKzsiCi0gICAgIiRXSiAkQ00r
OyIKLSAgICAiJENSICRMRiB7MTAwfTsiCi0gICAgIiRMQjROb25CcmVha3M/ICRMQjRCcmVha3Mg
ezEwMH07IgotICAgICIkQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRDTSsg
JExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRMQjROb25CcmVha3MgWyRTUCAkWlddOyIKLSAgICAi
JENBTl9DTSAkQ00qIFskU1AgJFpXXTsiCi0gICAgIiRDTSsgWyRTUCAkWlddOyIKLSAgICAiJEVt
b2ppRm9yU2VxcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsiCi0g
ICAgIiRDQU5fQ00gJENNKzsiCi0gICAgIiRDTSs7IgotICAgICIkQ0FOX0NNICRDTSogJFdKY207
IgotICAgICIkTEI4Tm9uQnJlYWtzICRXSmNtOyIKLSAgICAiJENNKyAkV0pjbTsiCi0gICAgIiRX
SmNtICRDQU5UX0NNOyIKLSAgICAiJFdKY20gJENBTl9DTSAkQ00qOyIKLSAgICAiJEdMY20gJENB
Tl9DTSAkQ00qOyIKLSAgICAiJEdMY20gJENBTlRfQ007IgotICAgICJbWyRMQjhOb25CcmVha3Nd
IC0gWyRTUCAkQkEgJEhZXV0gJENNKiAkR0xjbTsiCi0gICAgIiRDTSsgR0xjbTsiCi0gICAgIiRM
QjhOb25CcmVha3MgJENMOyIKLSAgICAiJENBTl9DTSAkQ00qICRDTDsiCi0gICAgIiRDTSsgJENM
OyIKLSAgICAiJExCOE5vbkJyZWFrcyAkQ1A7IgotICAgICIkQ0FOX0NNICRDTSogJENQOyIKLSAg
ICAiJENNKyAkQ1A7IgotICAgICIkTEI4Tm9uQnJlYWtzICRFWDsiCi0gICAgIiRDQU5fQ00gJENN
KiAkRVg7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRMQjhOb25CcmVha3MgJElTOyIKLSAgICAi
JENBTl9DTSAkQ00qICRJUzsiCi0gICAgIiRDTSsgJElTOyIKLSAgICAiJExCOE5vbkJyZWFrcyAk
U1k7IgotICAgICIkQ0FOX0NNICRDTSogJFNZOyIKLSAgICAiJENNKyAkU1k7IgotICAgICIkT1Bj
bSAkU1AqICRDQU5fQ00gJENNKjsiCi0gICAgIiRPUGNtICRTUCogJENBTlRfQ007IgotICAgICIk
T1BjbSAkU1ArICRDTSsgJEFMX0ZPTExPVz87IgotICAgICIkUVVjbSAkU1AqICRPUGNtOyIKLSAg
ICAiKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207IgotICAgICIkQjJjbSAkU1AqICRCMmNtOyIK
LSAgICAiJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsiCi0gICAgIiRDTSsgJFFVY207IgotICAg
ICIkUVVjbSAuPzsiCi0gICAgIiRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7IgotICAgICIkTEIy
ME5vbkJyZWFrcyAkQ00qICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAiCi0gICAgIiRCQmNtIFte
JENCXTsiCi0gICAgIiRCQmNtICRMQjIwTm9uQnJlYWtzICRDTSo7IgotICAgICIkSExjbSAoJEhZ
Y20gfCAkQkFjbSkgW14kQ0JdPzsiCi0gICAgIiRTWWNtICRITGNtOyIKLSAgICAiKCRBTGNtIHwg
JEhMY20pICRJTmNtOyIKLSAgICAiJENNKyAkSU5jbTsiCi0gICAgIiRFWGNtICRJTmNtOyIKLSAg
ICAiJElEY20gJElOY207IgotICAgICIkSU5jbSAkSU5jbTsiCi0gICAgIiROVWNtICRJTmNtOyIK
LSAgICAiJElEY20gJFBPY207IgotICAgICIkQUxjbSAkTlVjbTsiCi0gICAgIiRITGNtICROVWNt
OyIKLSAgICAiJENNKyAkTlVjbTsiCi0gICAgIiROVWNtICRBTGNtOyIKLSAgICAiJE5VY20gJEhM
Y207IgotICAgICIkUFJjbSAkSURjbTsiCi0gICAgIiRQUmNtICgkQUxjbSB8ICRITGNtKTsiCi0g
ICAgIiRQT2NtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIigkUFJjbSB8ICRQT2NtKT8gKCRPUGNt
IHwgJEhZY20pPyAkTlVjbSAoJE5VY20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20p
PyAoJFBSY20gfCAkUE9jbSk/OyIKLSAgICAiJEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8
ICRIM2NtKTsiCi0gICAgIigkSlZjbSB8ICRIMmNtKSAoJEpWY20gfCAkSlRjbSk7IgotICAgICIo
JEpUY20gfCAkSDNjbSkgJEpUY207IgotICAgICIoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgy
Y20gfCAkSDNjbSkgJElOY207IgotICAgICIoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20g
fCAkSDNjbSkgJFBPY207IgotICAgICIkUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgy
Y20gfCAkSDNjbSk7IgotICAgICIoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOyIKLSAg
ICAiJENNKyAoJEFMY20gfCAkSExjbSk7IgotICAgICIkSVNjbSAoJEFMY20gfCAkSExjbSk7Igot
ICAgICIoJEFMY20gfCAkSExjbSB8ICROVWNtKSAkT1BjbTsiCi0gICAgIiRDTSsgJE9QY207Igot
ICAgICIkQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsiCi0jaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCi0gICAgIiRSSWNtICRSSWNtOyIKLSNlbmRpZgotICAgICIkRW1vamlGb3JNb2Rz
ICRFbW9qaVZhcj8gJEVtb2ppTW9kczsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRSZXZl
cnNlID0KLSAgICAiISFyZXZlcnNlOyIKLSAgICAiJENNKyAkQUxQbHVzOyIKLSAgICAiJENNKyAk
QkE7IgotICAgICIkQ00rICRCQjsiCi0gICAgIiRDTSsgJEIyOyIKLSAgICAiJENNKyAkQ0w7Igot
ICAgICIkQ00rICRDUDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAiJENNKyAkR0w7IgotICAgICIk
Q00rICRITDsiCi0gICAgIiRDTSsgJEhZOyIKLSAgICAiJENNKyAkSDI7IgotICAgICIkQ00rICRI
MzsiCi0gICAgIiRDTSsgJElEOyIKLSAgICAiJENNKyAkSU47IgotICAgICIkQ00rICRJUzsiCi0g
ICAgIiRDTSsgJEpMOyIKLSAgICAiJENNKyAkSlY7IgotICAgICIkQ00rICRKVDsiCi0gICAgIiRD
TSsgJE5TOyIKLSAgICAiJENNKyAkTlU7IgotICAgICIkQ00rICRPUDsiCi0gICAgIiRDTSsgJFBP
OyIKLSAgICAiJENNKyAkUFI7IgotICAgICIkQ00rICRRVTsiCi0jaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCi0gICAgIiRDTSsgJFJJOyIKLSNlbmRpZgotICAgICIkQ00rICRTWTsiCi0gICAg
IiRDTSsgJFdKOyIKLSAgICAiJENNKzsiCi0gICAgIiRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRD
UiAkTEYgJE5MICRaVyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAk
Q00gJFNQXSB8IFskQUwge2VvZn1dKSk7IgotICAgICJbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExG
ICROTCAkWlcgJFNQIHtlb2Z9XTsiCi0gICAgIiRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENN
XTsiCi0gICAgIiRMQjRCcmVha3MgJENNKyAkQ0FOX0NNOyIKLSAgICAiJExGICRDUjsiCi0gICAg
IlskU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiWyRTUCAkWlddICRDTSsgJENB
Tl9DTTsiCi0gICAgIiRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/ICRF
bW9qaUZvclNlcXM7IgotICAgICIkQ00rICRDQU5fQ007IgotICAgICIkQ00qICRXSiAkQ00qICRD
QU5fQ007IgotICAgICIkQ00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENBTlRf
Q00gJENNKiAkV0o7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkV0o7IgotICAgICIkQ00qICRH
TCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRCQSAkSFldXTsiCi0gICAgIiRDQU5UX0NN
ICRDTSogJEdMOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJEdMOyIKLSAgICAiJENMICRDTSsg
JENBTl9DTTsiCi0gICAgIiRDUCAkQ00rICRDQU5fQ007IgotICAgICIkRVggJENNKyAkQ0FOX0NN
OyIKLSAgICAiJElTICRDTSsgJENBTl9DTTsiCi0gICAgIiRTWSAkQ00rICRDQU5fQ007IgotICAg
ICIkQ0wgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRDUCBbJExCOE5vbkJyZWFrcy0kQ01d
OyIKLSAgICAiJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkSVMgWyRMQjhOb25CcmVh
a3MtJENNXTsiCi0gICAgIiRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiWyRDTCAkQ1Ag
JEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgIgotICAgICIkQ00qICRDQU5fQ00gJFNQ
KiAkQ00qICRPUDsiCi0gICAgIiRDQU5UX0NNICRTUCogJENNKiAkT1A7IgotICAgICIkQUxfRk9M
TE9XPyAkQ00rICRTUCAkU1AqICRDTSogJE9QOyIKLSAgICAiJEFMX0ZPTExPV19OT0NNICRDTSsg
JFNQKyAkQ00qICRPUDsiCi0gICAgIiRDTSogJEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAk
T1A7IgotICAgICIkU1kgJENNICRTUCsgJE9QOyIKLSAgICAiJENNKiAkT1AgJFNQKiAkQ00qICRR
VTsiCi0gICAgIiRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsiCi0gICAgIiRDTSogJEIy
ICRTUCogJENNKiAkQjI7IgotICAgICIkQ00qICRRVSAkQ00qICRDQU5fQ007IgotICAgICIkQ00q
ICRRVSAkTEIxOE5vbkJyZWFrczsiCi0gICAgIiRDTSogJENBTl9DTSAkQ00qICRRVTsiCi0gICAg
IiRDQU5UX0NNICRDTSogJFFVOyIKLSAgICAiJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFsk
TEIyME5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENNKiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00q
ICRCQjsiCi0gICAgIlteJENCXSAkQ00qICRCQjsiCi0gICAgIlteJENCXSAkQ00qICgkSFkgfCAk
QkEpICRDTSogJEhMOyIKLSAgICAiJENNKiAkSEwgJENNKiAkU1k7IgotICAgICIkQ00qICRJTiAk
Q00qICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogJElOICRDTSogJEVYOyIKLSAgICAiJENN
KiAkSU4gJENNKiAkSUQ7IgotICAgICIkQ00qICRJTiAkQ00qICRJTjsiCi0gICAgIiRDTSogJElO
ICRDTSogJE5VOyIKLSAgICAiJENNKiAkUE8gJENNKiAkSUQ7IgotICAgICIkQ00qICROVSAkQ00q
ICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJE5VOyIK
LSAgICAiJENNKiAkSUQgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00q
ICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOyIKLSAgICAiKCRDTSog
KCRQUiB8ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kp
KSogJENNKiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OyIKLSAg
ICAiJENNKiAoJEgzIHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsiCi0gICAgIiRDTSogKCRK
VCB8ICRKVikgJENNKiAoJEgyIHwgJEpWKTsiCi0gICAgIiRDTSogJEpUICRDTSogKCRIMyB8ICRK
VCk7IgotICAgICIkQ00qICRJTiAkQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIK
LSAgICAiJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsiCi0gICAg
IiRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAkUFI7IgotICAgICIkQ00q
ICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogKCRBTFBs
dXMgfCAkSEwpICRDTSogJElTOyIKLSAgICAiJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8
ICROVSk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsiCi0jaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRDTSogJFJJICRDTSogJFJJOyIKLSNlbmRp
ZgotICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiOwotCi1zdGF0aWMg
Y29uc3QgY2hhciogdWF4MTRTYWZlRm9yd2FyZCA9Ci0gICAgIiEhc2FmZV9mb3J3YXJkOyIKLSAg
ICAiWyRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRTUCAkZGljdGlvbmFyeV0r
IFteJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJGRpY3Rpb25hcnldOyIKLSAg
ICAiJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0
U2FmZVJldmVyc2UgPQotICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgIiRDTSsgW14kQ00gJEJL
ICRDUiAkTEYgJE5MICRaVyAkU1BdOyIKLSAgICAiJENNKyAkU1AgLyAuOyIKLSAgICAiJFNQKyAk
Q00qICRPUDsiCi0gICAgIiRTUCsgJENNKiAkUVU7IgotICAgICIkU1ArICRDTSogKCRDTCB8ICRD
UCk7IgotICAgICIkU1ArICRDTSogJEIyOyIKLSAgICAiJENNKiAoJEhZIHwgJEJBKSAkQ00qICRI
TDsiCi0gICAgIigkQ00qICgkSVMgfCAkU1kpKSsgJENNKiAkTlU7IgotICAgICIoJENMIHwgJENQ
KSAkQ00qICgkTlUgfCAkSVMgfCAkU1kpOyIKLSAgICAiJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7
IjsKLQogc3RhdGljIFN0cmluZyBtYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhMaW5lQnJlYWtJ
dGVyYXRvck1vZGUgbW9kZSwgYm9vbCBpc0NKSykKIHsKLSAgICBTdHJpbmdCdWlsZGVyIHJ1bGVz
QnVpbGRlcjsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0UHJvbG9ndWUpOwotICAgIHJ1
bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0JlZm9yZSk7CiAgICAgc3dpdGNoICht
b2RlKSB7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OkRlZmF1bHQ6Ci0gICAgICAg
IHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVs
dENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLKTsKLSAgICAgICAgYnJl
YWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSktSdWxl
cyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVh
a0l0ZXJhdG9yTW9kZTo6TG9vc2U6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksg
PyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9t
TG9vc2VOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VOb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6Tm9ybWFs
OgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1
c3RvbU5vcm1hbENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxOb25DSkspOwotICAg
ICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVz
OwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpTdHJpY3Q6Ci0gICAgICAgIHJ1bGVz
QnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLIDog
dWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAg
ICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLUnVsZXMg
OiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CiAgICAgfQotICAgIHJ1
bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0FmdGVyKTsKLSAgICBydWxlc0J1aWxk
ZXIuYXBwZW5kKHVheDE0Rm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFJl
dmVyc2UpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZlRm9yd2FyZCk7Ci0gICAg
cnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVSZXZlcnNlKTsKLSAgICByZXR1cm4gcnVsZXNC
dWlsZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
ICIiOwogfQogCiAvLyBSZWNvZ25pemUgQkNQNDcgY29tcGxpYW50IHByaW1hcnkgbGFuZ3VhZ2Ug
dmFsdWVzIG9mICd6aCcsICdqYScsICdrbycKQEAgLTc4OCw5ICsyNTMsMjkgQEAgVUJyZWFrSXRl
cmF0b3IqIG9wZW5MaW5lQnJlYWtJdGVyYXRvcihjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSwg
TGluZUJyZWFrSXRlcmEKICAgICBpZiAobW9kZSA9PSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OkRl
ZmF1bHQpCiAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuKFVCUktfTElORSwgbG9jYWxlSXNF
bXB0eSA/IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpIDogbG9jYWxlLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCksIDAsIDAsICZvcGVuU3RhdHVzKTsKICAgICBlbHNlIHsKLSAgICAgICAgVVBhcnNl
RXJyb3IgcGFyc2VTdGF0dXM7Ci0gICAgICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRlcmF0b3JN
b2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7Ci0gICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuUnVs
ZXMoU3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHJ1bGVzLmxlbmd0
aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVzKTsKKyAgICAgICAgQnJlYWtpbmdS
dWxlU2V0IHJ1bGVTZXQgPSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOworICAgICAgICBz
d2l0Y2ggKG1vZGUpIHsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OkRlZmF1
bHQ6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0
Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6TG9vc2U6CisgICAgICAgICAgICBy
dWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VDSksgOiBCcmVha2lu
Z1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Ok5vcm1hbDoKKyAgICAgICAgICAgIHJ1bGVTZXQg
PSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSksgOiBCcmVha2luZ1J1bGVT
ZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
TGluZUJyZWFrSXRlcmF0b3JNb2RlOjpTdHJpY3Q6CisgICAgICAgICAgICBydWxlU2V0ID0gaXND
SksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpV
QVgxNFN0cmljdE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KHJ1bGVTZXQp
KQorICAgICAgICAgICAgdWJya0l0ZXIgPSByZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9y
Kj4oaXRlcmF0b3IpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFVQYXJzZUVycm9yIHBh
cnNlU3RhdHVzOworICAgICAgICAgICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVU
b1J1bGVzKG1vZGUsIGlzQ0pLKTsKKyAgICAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuUnVs
ZXMoU3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHJ1bGVzLmxlbmd0
aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVzKTsKKyAgICAgICAgfQogICAgIH0K
ICAgICAvLyBsb2NhbGUgY29tZXMgZnJvbSBhIHdlYiBwYWdlIGFuZCBpdCBjYW4gYmUgaW52YWxp
ZCwgbGVhZGluZyBJQ1UKICAgICAvLyB0byBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIGZhbGwgYmFj
ayB0byB0aGUgZGVmYXVsdCBsb2NhbGUuCkBAIC04MTEsNiArMjk2LDcgQEAgdm9pZCBjbG9zZUxp
bmVCcmVha0l0ZXJhdG9yKFVCcmVha0l0ZXJhdG9yKiYgaXRlcmF0b3IpCiB7CiAgICAgVUJyZWFr
SXRlcmF0b3IqIHVicmtJdGVyID0gaXRlcmF0b3I7CiAgICAgQVNTRVJUKHVicmtJdGVyKTsKKyAg
ICAvLyBGSVhNRTogVXNlIFJBSUkgdG8gZG8gdGhpcyBpbnN0ZWFkLgogICAgIHVicmtfY2xvc2Uo
dWJya0l0ZXIpOwogICAgIGl0ZXJhdG9yID0gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3IuaAppbmRleCBiY2Y0NGMwN2E0ZWM5MWI1MTQ2N2MyNGY0ZmU3MTZl
ZDM0ZGJjYzE1Li42ZjhhMWVmZjc0OTliY2JlOWE4ODAyN2MwMzMxN2ViNjJjNGIyNjczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCkBAIC0yOSw2ICsyOSwzMCBAQCBu
YW1lc3BhY2UgV1RGIHsKIAogZW51bSBjbGFzcyBMaW5lQnJlYWtJdGVyYXRvck1vZGUgeyBEZWZh
dWx0LCBMb29zZSwgTm9ybWFsLCBTdHJpY3QgfTsKIAorZW51bSBjbGFzcyBCcmVha2luZ1J1bGVT
ZXQgeworICAgIEN1cnNvck1vdmVtZW50LAorICAgIFVBWDE0Q0pLLAorICAgIFVBWDE0Tm9uQ0pL
LAorICAgIFVBWDE0TG9vc2VDSkssCisgICAgVUFYMTRMb29zZU5vbkNKSywKKyAgICBVQVgxNE5v
cm1hbENKSywKKyAgICBVQVgxNE5vcm1hbE5vbkNKSywKKyAgICBVQVgxNFN0cmljdENKSywKKyAg
ICBVQVgxNFN0cmljdE5vbkNKSworfTsKKworZXh0ZXJuIGNvbnN0IGNoYXIqIGN1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
bkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZUNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3ROb25DSktSdWxlczsKKworVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9y
Rm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpOworCiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8gY2hh
cmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRvCiAv
LyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0aGlz
IGNhbiBiZSBkaWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlzIFRo
YWkgcHJlcGVuZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0K
aW5kZXggYmVmNWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVlOGU4OGEzODkyYy4uNzQ1NmQwNzE2
YmZiZTc1MWU5ZGE0NWZmYWQ2MzczYjk2ZmQ5NTRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCkBA
IC0yMSwxMiArMjEsMTc3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dEJy
ZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3Iu
aCIKKyNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CiAKKyNkZWZpbmUgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JVTEVTIChVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKSAmJiAoKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkpKQorCisjaWYgVVNFX1BSRUNPTVBJTEVEX0JS
RUFLSU5HX1JVTEVTCisjaW5jbHVkZSA8dW5pY29kZS91ZGF0YS5oPgorI2VuZGlmCisKK0BpbnRl
cmZhY2UgV1RGQnVuZGxlRmluZGVyIDogTlNPYmplY3QKK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IFdURkJ1bmRsZUZpbmRlcgorQGVuZAorCiBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0
IGludCBtYXhMb2NhbGVTdHJpbmdMZW5ndGggPSAzMjsKIAorI2lmIFVTRV9QUkVDT01QSUxFRF9C
UkVBS0lOR19SVUxFUworc3RhdGljIFVEYXRhTWVtb3J5KiBicmVha0l0ZXJhdG9yUmVzb3VyY2Uo
TlNTdHJpbmcgKmZpbGVOYW1lQmFzZSkKK3sKKyAgICBOU0J1bmRsZSAqYnVuZGxlID0gW05TQnVu
ZGxlIGJ1bmRsZUZvckNsYXNzOltXVEZCdW5kbGVGaW5kZXIgY2xhc3NdXTsKKyAgICBOU1N0cmlu
ZyAqcGF0aCA9IFtidW5kbGUgcGF0aEZvclJlc291cmNlOmZpbGVOYW1lQmFzZSBvZlR5cGU6QCJi
cmsiIGluRGlyZWN0b3J5OkAiQnJlYWtpbmdSdWxlcyJdOworICAgIGlmICghcGF0aCkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgTlNTdHJpbmcgKmRpcmVjdG9yeSA9IFtwYXRoIHN0cmlu
Z0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF07CisKKyNpZiBQTEFURk9STShJT1MpCisgICAg
VUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAgdWRhdGFfc2V0RmlsZUFj
Y2VzcyhVREFUQV9GSUxFU19GSVJTVCwgJmVycm9yQ29kZSk7CisgICAgaWYgKFVfRkFJTFVSRShl
cnJvckNvZGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorCisgICAgVUVycm9y
Q29kZSB1RGF0YUVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAgICBVRGF0YU1lbW9yeSogcmVz
dWx0ID0gdWRhdGFfb3BlbihbZGlyZWN0b3J5IFVURjhTdHJpbmddLCAiYnJrIiwgW2ZpbGVOYW1l
QmFzZSBVVEY4U3RyaW5nXSwgJnVEYXRhRXJyb3JDb2RlKTsKKworI2lmIFBMQVRGT1JNKElPUykK
KyAgICB1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEQVRBX0RFRkFVTFRfQUNDRVNTLCAmZXJyb3JDb2Rl
KTsKKyAgICBpZiAoVV9GQUlMVVJFKGVycm9yQ29kZSkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworI2VuZGlmCisKKyAgICBpZiAoVV9GQUlMVVJFKHVEYXRhRXJyb3JDb2RlKSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgVUJyZWFr
SXRlcmF0b3IqIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKFVEYXRhTWVtb3J5KiBkYXRh
KQoreworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBVRXJy
b3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAgICBVQnJlYWtJdGVyYXRvciogcmVz
dWx0ID0gdWJya19vcGVuQmluYXJ5UnVsZXMoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCAqPih1
ZGF0YV9nZXRNZW1vcnkoZGF0YSkpLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgo
KSwgbnVsbHB0ciwgMCwgJmVycm9yQ29kZSk7CisKKyAgICBpZiAoVV9GQUlMVVJFKGVycm9yQ29k
ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0
YXRpYyBVQnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcigpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0
b3JSZXNvdXJjZShAIkN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyIpKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJv
bVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3Iu
Z2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NENKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3Vy
Y2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksi
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3Io
YnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAg
cmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb25DSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxV
RGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJl
YWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291
cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGlj
IFVCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksoKQoreworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0
ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksiKSk7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVy
YXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0
ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZU5vbkNKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRh
TWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZU5vbkNKSyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJy
ZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNv
dXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRp
YyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSygpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFr
SXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksiKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJ
dGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJu
IGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxOb25DSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxV
RGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRh
KHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30KKwor
c3RhdGljIFVCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLKCkK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJjZURhdGEo
YnJlYWtJdGVyYXRvclJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSyIp
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihi
cmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICBy
ZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJj
ZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOwor
fQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGNsb25lSXRlcmF0b3IoVUJyZWFrSXRlcmF0b3Iq
IGl0ZXJhdG9yKQoreworICAgIGlmICghaXRlcmF0b3IpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAgIGlmIChhdXRv
KiByZXN1bHQgPSB1YnJrX3NhZmVDbG9uZShpdGVyYXRvciwgbnVsbHB0ciwgMCwgJmVycm9yQ29k
ZSkpIHsKKyAgICAgICAgaWYgKFVfU1VDQ0VTUyhlcnJvckNvZGUpKQorICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKworVUJy
ZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQgcnVs
ZVNldCkKK3sKKyNpZiBVU0VfUFJFQ09NUElMRURfQlJFQUtJTkdfUlVMRVMKKyAgICBzd2l0Y2gg
KHJ1bGVTZXQpIHsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQ6Cisg
ICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGN1cnNvck1vdmVtZW50SXRlcmF0b3IoKSk7Cisg
ICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJ
dGVyYXRvcihsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdS
dWxlU2V0OjpVQVgxNE5vbkNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vbkNKSygpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFY
MTRMb29zZUNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlQ0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3Nl
Tm9uQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFs
Q0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNK
SzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKSygpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3RDSks6
CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3RDSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOgor
ICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Tm9uQ0pLKCkpOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJ1bGVTZXQpOworICAg
IHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKIHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVmZXJlbmNlKCkKIHsKICAgICBSZXRhaW5QdHI8
Q0ZQcm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlWYWx1
ZShDRlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUiKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFr
ZS9XZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQppbmRleCA1MTMw
ZmZjYmNjN2M5Y2U3NTE0YWY0ZDU1M2JkOGE0ZjA1MDE0NTZkLi45ZjgzMzBhZjdmZTM2M2Q4MDEz
ZWVlMzRiZWRkN2ZjMTVjYjc5MWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMu
Y21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlCkBAIC0yNyw2ICsyNyw3IEBA
IGlmIChOT1QgVE9PTFNfRElSKQogZW5kaWYgKCkKIAogc2V0KERFUklWRURfU09VUkNFU19ESVIg
IiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMiKQorc2V0KERFUklWRURfU09VUkNF
U19XVEZfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURiIpCiBzZXQo
REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9E
ZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZSIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQkNP
UkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUiKQogc2V0
KERFUklWRURfU09VUkNFU19XRUJLSVRMRUdBQ1lfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rl
cml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIpCkBAIC0zNSw2ICszNiw4IEBAIHNldChERVJJVkVE
X1NPVVJDRVNfV0VCS0lUMl9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMv
V2ViS2l0MiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUiAiJHtDTUFL
RV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJJbnNwZWN0b3JVSSIpCiAKIGZpbGUoTUFL
RV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfSkKK2ZpbGUo
TUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0pCitmaWxlKE1BS0VfRElS
RUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMpCiBmaWxlKE1B
S0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0vU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVD
VE9SVUlfRElSfSkKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBiNjUy
MTViYzlkYTY3Y2MwMTgzMTg2NGZhMTBkODQxOTQ4MDQ1MzcyLi4yZTNjYjE0NWVmMjBiNjhmZWU4
MDY3YmE3MDJiZTAwMGFiM2QxYTk3IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDItMDggIE15bGVzIEMuIE1heGZpZWxkICA8bW1h
eGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBicmVha2luZyBpdGVyYXRv
cnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0RlMuY21h
a2U6CisKIDIwMTctMDItMDcgIE9saXZpZXIgQmxpbiAgPG9saXZpZXIuYmxpbkBzb2Z0YXRob21l
LmNvbT4KIAogICAgICAgICBbR1RLXVtFZmxdIERvIG5vdCByZXF1aXJlIExpYlhzbHQgaWYgWFNM
VCBpcyBkaXNhYmxlZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301090</attachid>
            <date>2017-02-09 15:03:48 -0800</date>
            <delta_ts>2017-02-09 16:02:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20170209150122.patch</filename>
            <type>text/plain</type>
            <size>120995</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExODQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NDNlNDJhZDA3YTMwMzc5MDhkNTRmNDc1YjAxN2EwODQ0MmIzN2U4Li5lNjkxMWE1MjEyMjlhMjEz
MGQ0YzhhNjFhYjNlODM0MDliNmEwNzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNy0wMi0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMTctMDItMDcgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFNpZ2lsbENyYXNoQW5hbHl6ZXI6OmFuYWx5emUoKSBzaG91bGQgdXNlIGEgZG8td2hp
bGUgbG9vcCBpbnN0ZWFkIG9mIGEgbGFtYmRhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjYjNmMTgxYzlkNGNjZTBjNDMzOWEz
NDM2Yjg3YzRlYTQ5OTM0OTdiLi41ZjlkMWVjMDdlNzdhYmZiNDFkYjBmZjg4MTViOWM2OWM3ZDFm
NTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE3LTAyLTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAg
PG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJQ1UgYnJlYWtpbmcgaXRl
cmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9HZW5lcmF0ZUJyZWFr
aW5nUnVsZVN0cmluZ3MucHk6IEFkZGVkLgorICAgICAgICAobWFpbik6CisgICAgICAgICogV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaWN1L3VuaWNvZGUvdWJyay5o
OgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvRGVyaXZlZFNv
dXJjZXMubWFrZTogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4
dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dDogQWRkZWQuCisgICAgICAg
ICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9u
Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDogQWRk
ZWQuCisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwOgorICAgICAgICAo
V1RGOjpjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQpOgorICAgICAgICAoV1RGOjpjcmVhdGVDdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKToKKyAgICAgICAgKFdURjo6Y3Vyc29yTW92
ZW1lbnRJdGVyYXRvcik6CisgICAgICAgIChXVEY6Om1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVz
KToKKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6
Y2xvc2VMaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRl
cmF0b3IuaDoKKyAgICAgICAgKiB3dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVU1hYy5tbToKKyAgICAgICAgKFdURjo6YnJlYWtJdGVyYXRvclJlc291cmNlKToKKyAgICAg
ICAgKFdURjo6YnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEpOgorICAgICAgICAoV1RGOjpj
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JV
QVgxNENKSyk6CisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSkspOgor
ICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSkspOgorICAgICAgICAo
V1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSkspOgorICAgICAgICAoV1RGOjps
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKToKKyAgICAgICAgKFdURjo6bGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSyk6CisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3RDSkspOgorICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLKToKKyAgICAgICAgKFdURjo6Y2xvbmVJdGVyYXRvcik6CisgICAgICAgIChX
VEY6OmNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldCk6CisKIDIwMTctMDItMDYgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgUGxheWJhY2sgc3RhbGxzIHdoZW4gYSBT
b3VyY2VCdWZmZXIgYXBwZW5kIGNhdXNlcyBmcmFtZSBldmljdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA0ZGI2NjcyOWE1NTdjMDNjNWNlZTgwOGI2NzExNjNiYjZhZTE5NWU3
Li44OGExYjZkMDJjYTE1ZWE5YTBlOGNjYjIzZmI5YmEwMWZjMjBiOTA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTIyOCw2ICsxMjI4LDcgQEAKIAkJMUEyOEQ0QTgxNzdCNzFD
ODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyOEQ0QTcxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3Ry
aW5nUmVmUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFBODgyNkIxNjUzQzRDRDFBNjQyOTgzQiAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5
VGFibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OEI0N0YyMzQzNjZDNEI3MkFDODUyQTdFIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAg
Ki87IH07CiAJCTFBQ0Y3Mzc3MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQ0Y3Mzc2MTcxQ0E2RkIwMEM5
QkIxRSAvKiBXZWFrLmNwcCAqLzsgfTsKKwkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJy
ZWFraW5nUnVsZXMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDRDE4NzhGMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovOyB9OwogCQky
NjAwQjVBNjE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1QTQxNTJCQUFBNzAwOTFF
RTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLzsgfTsKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFF
RTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIu
aCAqLzsgfTsKIAkJMjYyRDg1QjYxQzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdp
c3RlclN0YWxscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyNjJEODVCNDFDMEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3Rh
bGxzLmNwcCAqLzsgfTsKQEAgLTM2NTcsNiArMzY1OCw3IEBACiAJCTFDOTA1MTQ1MEJBOUU4QTcw
MDgxRTlEMCAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9
IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRBMEQz
MkMzOUEwMDQxQkNGRiAvKiBKYXZhU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEphdmFTY3JpcHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThC
NEIwRDMyQzM5QTAwNDFCQ0ZGIC8qIEphdmFTY3JpcHRDb3JlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHRDb3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDRDE4NzhGMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZm9sZGVyOyBuYW1lID0g
QnJlYWtpbmdSdWxlczsgcGF0aCA9IC4uL1dURi9CcmVha2luZ1J1bGVzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2lu
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2lu
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5
MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNTdHJpbmdKb2luZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYyRDg1
QjQxQzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJT
dGFsbHMuY3BwOyBwYXRoID0gYjMvYWlyL0FpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MDEzLDYgKzYwMTUsNyBAQAogCQk2NTBG
REY4RDA5RDBGQ0E3MDA3NjlFNTQgLyogRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMg
LyogQnJlYWtpbmdSdWxlcyAqLywKIAkJCQkwRjYxODMzMjFDNDVGMzVDMDA3MjQ1MEIgLyogQWly
T3Bjb2RlLmggKi8sCiAJCQkJMEY2MTgzMzQxQzQ1RjNCNjAwNzI0NTBCIC8qIEFpck9wY29kZUdl
bmVyYXRlZC5oICovLAogCQkJCTBGNjE4MzM1MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVV
dGlscy5oICovLApAQCAtOTQyMCw2ICs5NDIzLDcgQEAKIAkJCWlzYSA9IFBCWFJlc291cmNlc0J1
aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAo
CisJCQkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3Vy
Y2VzICovLAogCQkJCUE1M0YxQUMwMThDOTBGOEYwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgaW4g
UmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdS
dWxlU3RyaW5ncy5weSBiL1NvdXJjZS9XVEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0
cmluZ3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQ2NGMwZDVlZDBkODkwZGVmNzlhZjQzNGQxZWE2YjBlM2Ri
ZDhkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFr
aW5nUnVsZVN0cmluZ3MucHkKQEAgLTAsMCArMSwxMDkgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhv
bgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5cwor
aW1wb3J0IHJlCitpbXBvcnQgYXJncGFyc2UKKworaGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisK
KworZGVmIG1haW4oYXJndj1Ob25lKToKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBh
cnNlcihkZXNjcmlwdGlvbj0nR2VuZXJhdGUgYnJlYWtpbmcgcnVsZSBzb3VyY2Ugc3RyaW5ncyBp
biBDKysgc291cmNlIGZvbXJhdC4nKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0taW5jbHVk
ZURlZmluZXMnLCBhY3Rpb249InN0b3JlX3RydWUiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
J3N5bWJvbE5hbWUnKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2ZpbGVOYW1lcycsIG5hcmdz
PScrJykKKworICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCisKKyAgICBpbmNsdWRlRGVm
aW5lcyA9IGFyZ3MuaW5jbHVkZURlZmluZXMKKyAgICBzeW1ib2xOYW1lID0gYXJncy5zeW1ib2xO
YW1lWzBdLmxvd2VyKCkgKyBhcmdzLnN5bWJvbE5hbWVbMTpdCisgICAgZmlsZU5hbWVzID0gYXJn
cy5maWxlTmFtZXMKKworICAgIHByaW50KGhlYWRlcikKKyAgICBwcmludCgiIiIKKy8vIERPIE5P
VCBFRElUIFRISVMgRklMRS4gSXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIHNj
cmlwdAorLy8gJXMKKworI2luY2x1ZGUgXCJjb25maWcuaFwiCisjaW5jbHVkZSA8dW5pY29kZS91
dmVybnVtLmg+CisiIiIgJSAoc3lzLmFyZ3ZbMF0pKQorICAgIGlmIGluY2x1ZGVEZWZpbmVzOgor
ICAgICAgICBwcmludCgiIiIjZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZP
Uk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTEwMCkpCisjZGVmaW5lIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgKChVX0lD
VV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0g
OSkpCisiIiIpCisgICAgcHJpbnQoIiIibmFtZXNwYWNlIFdURiB7CisKK2NvbnN0IGNoYXIqICVz
ID0gIiIiICUgKHN5bWJvbE5hbWUpKQorCisgICAgZm9yIGZpbGVOYW1lIGluIGZpbGVOYW1lczoK
KyAgICAgICAgZm9yIGwgaW4gb3BlbihmaWxlTmFtZSwgJ3InKToKKyAgICAgICAgICAgIGxpbmUg
PSBsLnJzdHJpcCgpCisgICAgICAgICAgICBpZiByZS5tYXRjaCgiXlxzKiQiLCBsaW5lKToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyAi
KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgor
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIj
Iik6CisgICAgICAgICAgICAgICAgcHJpbnQobGluZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgiXiguKik7KCAjIC4qKT8kIiwgbGluZSkKKyAg
ICAgICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gIlwi
IiArIG1hdGNoLmdyb3VwKDEpLnJlcGxhY2UoIlxcIiwgIlxcXFwiKSArICI7XCIiCisgICAgICAg
ICAgICAgICAgICAgIGlmIG1hdGNoLmdyb3VwKDIpOgorICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0ICs9ICIgLy8gIiArIG1hdGNoLmdyb3VwKDIpWzM6XQorICAgICAgICAgICAgICAgICAg
ICBwcmludChyZXN1bHQpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgZXhpdCgxKQorCisgICAgcHJpbnQoIjsiKQorICAgIHByaW50KCJ9IikKKworaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RG
L1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU0MmUwYTVlOTkzZGQzYzgxOTI5
MjMwZDUxNjI3NmI5ZjAxNWMwMzkuLjY0OTZmMTViMGY4Y2YzZDk4MTEzYmFiMDlhY2U5NGIyOGYw
MDkwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNyw2
ICs3LDE3IEBACiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQWdncmVnYXRlVGFyZ2V0IHNl
Y3Rpb24gKi8KKwkJMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlv
bkxpc3QgPSAxQ0QxODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBs
aXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi87CisJCQlidWls
ZFBoYXNlcyA9ICgKKwkJCQkxQ0QxODc4MjFENTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVy
aXZlZCBTb3VyY2VzICovLAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQlu
YW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwcm9kdWN0TmFtZSA9ICJEZXJpdmVkIFNvdXJj
ZXMiOworCQl9OwogCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVy
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJh
dGlvbkxpc3QgPSA2NUFGQTI4ODE2MzBCOTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlv
biBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAt
ODQsNyArOTUsNiBAQAogCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5m
cmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07
CiAJCTE0NDdBRUM3MThGQ0U1ODAwMEIzRDdGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVEMjQ3QjYyMTQ2ODlCODYwMEU3OEI3
NiAvKiBsaWJXVEYuYSAqLzsgfTsKIAkJMTQ0N0FFQzkxOEZDRTU5NDAwQjNEN0ZGIC8qIG1ibWFs
bG9jLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
NDdBRUM4MThGQ0U1OTQwMEIzRDdGRiAvKiBtYm1hbGxvYy5jcHAgKi87IH07Ci0JCTE0NDdBRUNC
MThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8q
IGxpYmljdWNvcmUuZHlsaWIgKi87IH07CiAJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBS
dW5Mb29wVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE0Njk0MTkwMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkxNDY5NDE5MzE2RUFBRjZEMDAyNEUxNDYg
LyogUnVuTG9vcFRpbWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTQ2OTQxOTExNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNw
cCAqLzsgfTsKIAkJMTQ2OTQxOTYxNkVBQUZGODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2OTQxOTQxNkVB
QUZGODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oICovOyB9OwpAQCAtMzQwLDYgKzM1MCwxNiBA
QAogCQlBREYyQ0U2NjFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREYyQ0U2NDFFMzlGMTA2
MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQURGMkNFNjcxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9y
eUZvb3RwcmludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBREYyQ0U2NTFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmNwcCAqLzsg
fTsKIAkJQjM4RkQ3QkQxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMzhGRDdCQzE2ODk1M0U4
MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCAqLzsgfTsKKwkJQzJCQTU0M0UxRDU4NkFGNDAw
MEEzMzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29y
ZS5keWxpYiAqLzsgfTsKKwkJQzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSksuY3BwICovOyB9OworCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwICovOyB9OworCQlDMkNBMzdFQzFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UzMUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovOyB9OworCQlD
MkNBMzdFRDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdF
NDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi87
IH07CisJCUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovOyB9OworCQlDMkNBMzdGMDFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNzFENTVDOTcxMDA0
ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi87IH07CisJCUMy
Q0EzN0YxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9u
Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMy
Q0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9u
Q0pLLmNwcCAqLzsgfTsKIAkJQzRGOEE5MzcxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzRGOEE5MzYx
OUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oICovOyB9OwogCQlDOEIwRTFBMUUwMUE0ODZF
Qjk1RTBEMTEgLyogSW5kZXhTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxMzdFMUQ3REJEODRBQzM4RkFFNEQzNCAvKiBJbmRleFNldC5oICovOyB9
OwogCQlDOTE2Qjk3NUYwMkY0RjdFOEI0QUIxMkQgLyogSW5kZXhNYXAuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVCNDMzODNBNUQwQjQ2M0M5NDMzRDkz
MyAvKiBJbmRleE1hcC5oICovOyB9OwpAQCAtMzgxLDYgKzQwMSwxMyBAQAogCQkJcmVtb3RlR2xv
YmFsSURTdHJpbmcgPSA1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzY7CiAJCQlyZW1vdGVJbmZvID0g
V1RGOwogCQl9OworCQkxQ0QxODc4NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFp
bmVyUG9ydGFsID0gNUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICov
OworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gMUNEMTg3ODEx
RDU1Njk1QzAwQ0M3REVDOworCQkJcmVtb3RlSW5mbyA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQl9
OwogCQk2NUFGQTI4RDE2MzBCOTlFMDAzRDcyM0MgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICov
ID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFs
ID0gNUQyNDdCNTkxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAtNDky
LDYgKzUxOSwxOSBAQAogCQkxQzE4MUM4RDFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRl
clVURjE2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVUZXh0UHJv
dmlkZXJVVEYxNi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzhFMUQz
MDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFDMTgxQzk1MUQzMDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvcklu
dGVybmFsSUNVTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
VGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgcGF0aCA9IG1hYy9UZXh0QnJlYWtJ
dGVyYXRvckludGVybmFsSUNVTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
QzZCRTBGQTFFMDM0QzlBMDAyMTc2MTcgLyogR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5z
Y3JpcHQucHl0aG9uOyBwYXRoID0gR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5OyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NDFENTU5QTBEMDBGOUZFMzggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNENKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
QjRGQjk1MUQ1NTlBNjkwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4
dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4
dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTcxRDU1OUFBODAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZU5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5OTFENTU5
QUVGMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlBMUQ1NTlCMjMwMEY5RkUz
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGls
b2d1ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1
ZS50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhBMUQ1NThBRDMwMEND
N0RFQyAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IG5hbWUgPSBEZXJpdmVkU291cmNlcy5tYWtl
OyBwYXRoID0gd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHVzZXNUYWJzID0gMTsgfTsKKwkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVDIC8qIEN1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3
REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxRkE0N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODkxNTI1MDJEQTAwNTY4RDFCIC8qIFdl
YkNvcmVUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVRo
cmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjE0N0IwODE1RERDQ0RDMDBE
REI5MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03MjQsNiArNzY0LDE1IEBACiAJCUFERjJDRTY0MUUzOUYxMDYwMDY4
ODlEQiAvKiBNZW1vcnlGb290cHJpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVtb3J5Rm9vdHByaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFERjJD
RTY1MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5Rm9vdHByaW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZp
bmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAv
KiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgcGF0aCA9IEJy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlD
MkNBMzdFMjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pL
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZUNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZUNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0Ez
N0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNTFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vcm1hbENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U2MUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsTm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJD
QTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3RDSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNB
MzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNK
Sy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcHdhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRpbWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc2Miw3ICs4MTEsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTE0NDdBRUM2MThGQ0U1NzcwMEIzRDdG
RiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTE0NDdBRUNC
MThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCisJ
CQkJQzJCQTU0M0UxRDU4NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3
b3JrcyAqLywKIAkJCQkxNDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJh
bWV3b3JrcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKQEAgLTc5OSw2ICs4NDgsMzIgQEAKIAkJCXBhdGggPSBpY3U7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwogCQl9OworCQkxQzZCRTBGOTFFMDM0QzJBMDAyMTc2MTcgLyogU2NyaXB0
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUM2QkUw
RkExRTAzNEM5QTAwMjE3NjE3IC8qIEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAqLywK
KwkJCSk7CisJCQlwYXRoID0gU2NyaXB0czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CisJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc5MjFENTU5OEUx
MDBDQzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAqLywKKwkJCQkxQ0I0
RkI5QzFENTU5QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8s
CisJCQkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9n
dWUudHh0ICovLAorCQkJCTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NjFENTU5QTkwMDBGOUZFMzggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NzFENTU5QUE4
MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCAqLywKKwkJ
CQkxQ0I0RkI5NTFENTU5QTY5MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
Sy50eHQgKi8sCisJCQkJMUNCNEZCOTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxDSksudHh0ICovLAorCQkJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5
QTFENTU5QjIzMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQg
Ki8sCisJCQkJMUNCNEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3ROb25DSksudHh0ICovLAorCQkJKTsKKwkJCXBhdGggPSBCcmVha2luZ1J1bGVzOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMUZBNDdDODcxNTI1MDJEQTAwNTY4
RDFCIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBA
IC04MjEsOSArODk2LDEyIEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAog
CQkJCTVEMjQ3QjZEMTQ2ODlDNDcwMEU3OEI3NiAvKiBDb25maWd1cmF0aW9ucyAqLywKKwkJCQlD
MkNBMzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0MDIy
RjNGMThGNUMzRTUwMDdGRjBFQiAvKiBMaWJyYXJpZXMgKi8sCiAJCQkJNUQyNDdCNjMxNDY4OUI4
NjAwRTc4Qjc2IC8qIFByb2R1Y3RzICovLAorCQkJCTFDNkJFMEY5MUUwMzRDMkEwMDIxNzYxNyAv
KiBTY3JpcHRzICovLAogCQkJCTVEMjQ3Qjc2MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8s
CisJCQkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8s
CiAJCQkJMTQ0N0FFQzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICov
LAogCQkJCTE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICovLAog
CQkJKTsKQEAgLTExODUsNiArMTI2Myw3IEBACiAJCUE4QTQ3MzFCMTUxQTgyNUIwMDQxMjNGRiAv
KiB0ZXh0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkx
Q0QxODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJCQlBNUJBMTVG
NjE4MjQzNTlFMDBBODJFNjkgLyogY2YgKi8sCiAJCQkJMUMxODFDODgxRDMwN0FCODAwRjVGQTE2
IC8qIGljdSAqLywKIAkJCQlBNUJBMTVGMTE4MjQzMzlGMDBBODJFNjkgLyogbWFjICovLApAQCAt
MTI2Myw2ICsxMzQyLDIzIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKKwkJQzJDQTM3REYxRDU1QzhEODAwNDg2Qjk4IC8qIERlcml2ZWQgU291cmNl
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQzJDQTM3
RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8s
CisJCQkJQzJDQTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksuY3BwICovLAorCQkJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksuY3BwICovLAorCQkJCUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U0
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLywK
KwkJCQlDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U3MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLywKKwkJCQlD
MkNBMzdFODFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5v
bkNKSy5jcHAgKi8sCisJCQkpOworCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQkJcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dURjsKKwkJCXNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7CisJCX07CiAJCUNFNDY1MTZDMTlEQjFGQjQwMDNFQ0EwNSAvKiBjb2NvYSAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNjE0LDYgKzE3MTAsNyBAQAog
CQkJYnVpbGRSdWxlcyA9ICgKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJMUNEMTg3
ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJNjVBRkEy
OEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkpOwogCQkJ
bmFtZSA9IFdURjsKQEAgLTE2NDQsMTIgKzE3NDEsMjcgQEAKIAkJCXRhcmdldHMgPSAoCiAJCQkJ
NUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLywKIAkJCQk2NUFGQTE2RjE2MzBCOTc3
MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLywKKwkJCQkxQ0QxODc4MTFENTU2OTVDMDBD
QzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0NDdBRUJEMThGQ0U1NjkwMEIzRDdG
RiAvKiBtYm1hbGxvYyAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9u
ICovCiAKIC8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCisJCTFD
RDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7
CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJ
CSk7CisJCQluYW1lID0gIkdlbmVyYXRlIERlcml2ZWQgU291cmNlcyI7CisJCQlvdXRwdXRQYXRo
cyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
KwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7
QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuY2QgXCIke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGXCJcblxuL2Jpbi9sbiAtc2ZoIFwiJHtTUkNS
T09UfVwiIFdURlxuZXhwb3J0IFdURj1cIldURlwiXG5cbmlmIFsgISAtZCBCcmVha2luZ1J1bGVz
IF07IHRoZW5cbiAgICBta2RpciBCcmVha2luZ1J1bGVzXG5maVxuXG5pZiBbIFwiJE1BQ09TWF9E
RVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdIDsgdGhlblxuICAgIGV4cG9ydCBBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQ9MFxuZWxzZVxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQ9MVxuZmlcblxuaWYgWyBcIiRIQVZFX0lOVEVSTkFMX1NES1wiICE9IFwiWUVTXCIg
XSB8fCBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdIHx8IFsg
XCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMVwiIF0gfHwgWyBcIiRNQUNP
U1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEwLjEyXCIgXSB8fCBbIFwiJFNES19WRVJTSU9O
X01BSk9SXCIgPT0gXCI5MDAwMFwiIF0gfHwgWyBcIiRTREtfVkVSU0lPTl9NQUpPUlwiID09IFwi
MTAwMDAwXCIgXTsgdGhlblxuICAgIGV4cG9ydCBIQVZFX0lDVUdFTkJSSz0wXG5lbHNlXG4gICAg
ZXhwb3J0IEhBVkVfSUNVR0VOQlJLPTFcbmZpXG5cbmlmIFsgXCIke0FDVElPTn1cIiA9IFwiYnVp
bGRcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsXCIgLW8gXCIke0FDVElPTn1cIiA9IFwi
aW5zdGFsbGhkcnNcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsYXBpXCIgXTsgdGhlblxu
bWFrZSAtLW5vLWJ1aWx0aW4tcnVsZXMgLWYgXCJXVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2Vc
IiAtaiBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5hY3RpdmVjcHVgIFNES1JPT1Q9XCIke1NES1JP
T1R9XCJcbmZpIjsKKwkJfTsKIAkJNjVBRkExNzAxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RG
IEhlYWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CiAJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMTcwMiw2ICsxODE0LDcgQEAKIAkJCQlF
MTU1NTZGNTE4QTBDQzE4MDA2RjQ4RkIgLyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBOEE0NzQzOTE1MUE4MjVCMDA0MTIzRkYgLyogQ1N0cmluZy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM5QzE1MUE4MjVCMDA0MTIzRkYgLyogQ3VycmVudFRp
bWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM5
RTE1MUE4MjVCMDA0MTIzRkYgLyogRGF0YUxvZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0
NzNBMDE1MUE4MjVCMDA0MTIzRkYgLyogRGF0ZU1hdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QThBNDczQTIxNTFBODI1QjAwNDEyM0ZGIC8qIERlY2ltYWxOdW1iZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0xNzE4LDYgKzE4MzEsMTQgQEAKIAkJCQkxQTFEOEI5RTE3MzE4Nzk4MDAxNDFEQTQg
LyogRnVuY3Rpb25EaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJDQ0Q4OTJBMTVD
MDM5MDIwMDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOEE0NzNEODE1MUE4MjVCMDA0MTIzRkYgLyogSGFzaFRhYmxlLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUMyQ0EzN0VBMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Q0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJD
QTM3RUMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNK
Sy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRDFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdF
RTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdG
MDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdGMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUxNjQ2
QTFCNkZGQzk2MDA0MDBFN0MgLyogTG9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjYwRjMy
RjFERkNCRDFCMDA0MTZENkMgLyogTG9ja2VkUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDczRTUxNTFBODI1QjAwNDEyM0ZGIC8qIE1haW5UaHJlYWQuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0xNzkzLDYgKzE5MTQsMTEgQEAKIAkJCXRhcmdldCA9IDVEMjQ3QjYxMTQ2ODlC
ODYwMEU3OEI3NiAvKiBXVEYgKi87CiAJCQl0YXJnZXRQcm94eSA9IDE0NDdBRUMzMThGQ0U1NzAw
MEIzRDdGRiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07CisJCTFDRDE4Nzg4MUQ1
NTY5ODgwMENDN0RFQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJY
VGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAv
KiBEZXJpdmVkIFNvdXJjZXMgKi87CisJCQl0YXJnZXRQcm94eSA9IDFDRDE4Nzg3MUQ1NTY5ODgw
MENDN0RFQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CisJCX07CiAJCTY1QUZBMjhFMTYz
MEI5OUUwMDNENzIzQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewogCQkJaXNhID0gUEJY
VGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9IDY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAv
KiBDb3B5IFdURiBIZWFkZXJzICovOwpAQCAtMTgyMiw2ICsxOTQ4LDMwIEBACiAJCQl9OwogCQkJ
bmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJCTFDRDE4Nzg0MUQ1NTY5NUMwMENDN0RFQyAvKiBE
ZWJ1ZyAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZp
Z3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxl
YXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUg
PSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJMUNE
MTg3ODUxRDU1Njk1QzAwQ0M3REVDIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxk
Q29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAx
NDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0
dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJ
CQluYW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFBy
b2R1Y3Rpb24gKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VD
b25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVn
UmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9O
QU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJ
fTsKIAkJNUQyNDdCNjQxNDY4OUI4NjAwRTc4Qjc2IC8qIERlYnVnICovID0gewogCQkJaXNhID0g
WENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVE
MjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CkBAIC0x
OTA1LDYgKzIwNTUsMTYgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsK
IAkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJCTFDRDE4
NzgzMUQ1NTY5NUMwMENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFn
Z3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2VzIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmln
dXJhdGlvbkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTFDRDE4Nzg0MUQ1
NTY5NUMwMENDN0RFQyAvKiBEZWJ1ZyAqLywKKwkJCQkxQ0QxODc4NTFENTU2OTVDMDBDQzdERUMg
LyogUmVsZWFzZSAqLywKKwkJCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJvZHVjdGlv
biAqLywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlk
ZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDI0N0I1QzE0
Njg5Qjg2MDBFNzhCNzYgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0
ICJXVEYiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29u
ZmlndXJhdGlvbnMgPSAoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3Vicmsu
aCBiL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWJyay5oCmluZGV4IGU5YzBlZjYyN2I2NzI3OWY4
NmU0NjA0NGJmMGYyNTcxMDJlMGM2Y2QuLjE5NzViOWRiZWQ0NDNhOTI3NDM2ZjBhMjc5MjliYTU4
YWY4NzE4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWJyay5oCisrKyBi
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWJyay5oCkBAIC0yNDEsNiArMjQxLDMxIEBAIHVicmtf
b3BlblJ1bGVzKGNvbnN0IFVDaGFyICAgICAqcnVsZXMsCiAgICAgICAgICAgICAgICBVRXJyb3JD
b2RlICAgICAgKnN0YXR1cyk7CiAKIC8qKgorICogT3BlbiBhIG5ldyBVQnJlYWtJdGVyYXRvciBm
b3IgbG9jYXRpbmcgdGV4dCBib3VuZGFyaWVzIHVzaW5nIHByZWNvbXBpbGVkIGJpbmFyeSBydWxl
cy4KKyAqIE9wZW5pbmcgYSBVQnJlYWtJdGVyYXRvciB0aGlzIHdheSBpcyBzdWJzdGFudGlhbGx5
IGZhc3RlciB0aGFuIHVzaW5nIHVicmtfb3BlblJ1bGVzLgorICogQmluYXJ5IHJ1bGVzIG1heSBi
ZSBvYnRhaW5lZCB1c2luZyB1YnJrX2dldEJpbmFyeVJ1bGVzLiBUaGUgY29tcGlsZWQgcnVsZXMg
YXJlIG5vdAorICogY29tcGF0aWJsZSBhY3Jvc3MgZGlmZmVyZW50IG1ham9yIHZlcnNpb25zIG9m
IElDVSwgbm9yIGFjcm9zcyBwbGF0Zm9ybXMgb2YgZGlmZmVyZW50CisgKiBlbmRpYW5uZXNzIG9y
IGRpZmZlcmVudCBiYXNlIGNoYXJhY3RlciBzZXQgZmFtaWx5IChBU0NJSSB2cyBFQkNESUMpLgor
ICogQHBhcmFtIGJpbmFyeVJ1bGVzIEEgc2V0IG9mIGNvbXBpbGVkIGJpbmFyeSBydWxlcyBzcGVj
aWZ5aW5nIHRoZSB0ZXh0IGJyZWFraW5nCisgKiAgICAgICAgICAgICAgICAgICAgY29udmVudGlv
bnMuIE93bmVyc2hpcCBvZiB0aGUgc3RvcmFnZSBjb250YWluaW5nIHRoZSBjb21waWxlZAorICog
ICAgICAgICAgICAgICAgICAgIHJ1bGVzIHJlbWFpbnMgd2l0aCB0aGUgY2FsbGVyIG9mIHRoaXMg
ZnVuY3Rpb24uIFRoZSBjb21waWxlZAorICogICAgICAgICAgICAgICAgICAgIHJ1bGVzIG11c3Qg
bm90IGJlIG1vZGlmaWVkIG9yIGRlbGV0ZWQgZHVyaW5nIHRoZSBsaWZlIG9mIHRoZQorICogICAg
ICAgICAgICAgICAgICAgIGJyZWFrIGl0ZXJhdG9yLgorICogQHBhcmFtIHJ1bGVzTGVuZ3RoIFRo
ZSBsZW5ndGggb2YgYmluYXJ5UnVsZXMgaW4gYnl0ZXM7IG11c3QgYmUgPj0gMC4KKyAqIEBwYXJh
bSB0ZXh0ICAgICAgICBUaGUgdGV4dCB0byBiZSBpdGVyYXRlZCBvdmVyLiAgTWF5IGJlIG51bGws
IGluIHdoaWNoIGNhc2UKKyAqICAgICAgICAgICAgICAgICAgICB1YnJrX3NldFRleHQoKSBpcyB1
c2VkIHRvIHNwZWNpZnkgdGhlIHRleHQgdG8gYmUgaXRlcmF0ZWQuCisgKiBAcGFyYW0gdGV4dExl
bmd0aCAgVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIHRleHQsIG9yIC0xIGlmIG51bGwtdGVy
bWluYXRlZC4KKyAqIEBwYXJhbSBzdGF0dXMgICAgICBQb2ludGVyIHRvIFVFcnJvckNvZGUgdG8g
cmVjZWl2ZSBhbnkgZXJyb3JzLgorICogQHJldHVybiAgICAgICAgICAgIFVCcmVha0l0ZXJhdG9y
IGZvciB0aGUgc3BlY2lmaWVkIHJ1bGVzLgorICogQHNlZSB1YnJrX2dldEJpbmFyeVJ1bGVzCisg
KiBAZHJhZnQgSUNVIDU5CisgKi8KK1VfRFJBRlQgVUJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgor
dWJya19vcGVuQmluYXJ5UnVsZXMoY29uc3QgdWludDhfdCAqYmluYXJ5UnVsZXMsIGludDMyX3Qg
cnVsZXNMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqICB0ZXh0LCBp
bnQzMl90IHRleHRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICogICBz
dGF0dXMpOworCisvKioKICAqIFRocmVhZCBzYWZlIGNsb25pbmcgb3BlcmF0aW9uCiAgKiBAcGFy
YW0gYmkgaXRlcmF0b3IgdG8gYmUgY2xvbmVkCiAgKiBAcGFyYW0gc3RhY2tCdWZmZXIgPGVtPkRl
cHJlY2F0ZWQgZnVuY3Rpb25hbGl0eSBhcyBvZiBJQ1UgNTIsIHVzZSBOVUxMLjwvZW0+PGJyPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0
Zi9DTWFrZUxpc3RzLnR4dAppbmRleCA4MWFmOTEyNzYxMDZiODEyODkxN2RiOGM3OWNmMjU0YjJl
NGQ4Y2YwLi4xNTkzNDBmYjhlZDYwMGMzNjk5NzVhYmM3ODhhNmVlY2U2OTYxM2QzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9D
TWFrZUxpc3RzLnR4dApAQCAtMzAxLDYgKzMwMSw0MiBAQCBpZiAoTk9UIFVTRV9TWVNURU1fTUFM
TE9DKQogICAgIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMgYm1hbGxvYykKIGVuZGlmICgpCiAK
K3NldChXVEZfQlJFQUtJTkdfUlVMRVNfU09VUkNFUworICAgIHRleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQKKyAgICB0ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKKyAgICB0ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKKykK
KworbWFjcm8oR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMgX2lucHV0IF9zeW1ib2xOYW1lIF9vdXRw
dXQpCisgICAgYWRkX2N1c3RvbV9jb21tYW5kKAorICAgICAgICBPVVRQVVQgJHtfb3V0cHV0fQor
ICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElSfS9TY3JpcHRzL0dlbmVyYXRlQnJlYWtp
bmdSdWxlU3RyaW5ncy5weQorICAgICAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0Vf
RElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJHtf
aW5wdXR9ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKKyAgICAgICAgQ09NTUFORCAke1BZVEhPTl9FWEVD
VVRBQkxFfSAke1dURl9ESVJ9L1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5
IC0taW5jbHVkZURlZmluZXMgJHtfc3ltYm9sTmFtZX1SdWxlcyAke0NNQUtFX0NVUlJFTlRfU09V
UkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0
ICR7X2lucHV0fSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0ID4gJHtfb3V0cHV0fQorICAgICAgICBWRVJC
QVRJTSkKKyAgICBsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke19vdXRwdXR9KQorICAgIEFERF9T
T1VSQ0VfREVQRU5ERU5DSUVTKCR7X2lucHV0fSAke19vdXRwdXR9KQorZW5kbWFjcm8oKQorCitm
b3JlYWNoIChfZmlsZSAke1dURl9CUkVBS0lOR19SVUxFU19TT1VSQ0VTfSkKKyAgICBnZXRfZmls
ZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCisgICAgR0VORVJBVEVfQlJF
QUtJTkdfUlVMRVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7X2ZpbGV9ICR7X25hbWV9
ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvJHtfbmFtZX0uY3BwKQor
ZW5kZm9yZWFjaCAoKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZF
RF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLmNwcAorICAgIE1BSU5fREVQRU5ERU5DWSAke1dURl9ESVJ9L1NjcmlwdHMvR2VuZXJhdGVC
cmVha2luZ1J1bGVTdHJpbmdzLnB5CisgICAgREVQRU5EUyAke0NNQUtFX0NVUlJFTlRfU09VUkNF
X0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQK
KyAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0vU2NyaXB0cy9HZW5l
cmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgLS1pbmNsdWRlRGVmaW5lcyBjdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdS
dWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ID4gJHtERVJJVkVEX1NPVVJDRVNf
V1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisg
ICAgVkVSQkFUSU0pCitsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19X
VEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHApCitB
RERfU09VUkNFX0RFUEVOREVOQ0lFUygke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9C
cmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgJHtERVJJVkVEX1NP
VVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwKQorCiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9y
SUNVLmNwcAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ2Zjg5
YjQ2NzliZmUxNDcwYWJiNzA1YjBkMmFlZGVhYmE2OGI5YgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTAsMCArMSw3NiBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
IyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworQlJFQUtJTkdfUlVMRVNfRklMRVMgPSBc
CisgICAgQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuYnJrIFwKKyAg
ICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuYnJrIFwKKyAgICBCcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuYnJrIFwKKyAgICBCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5icmsgXAorICAgIEJyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmJyayBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmJyayBcCisgICAgQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmJyayBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmJyayBcCisgICAgQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmJyaworCitCUkVB
S0lOR19SVUxFU19ERUZJTklUSU9OUz0kKEJSRUFLSU5HX1JVTEVTX0ZJTEVTOi5icms9LmNwcCkK
KworaWZlcSAoJChzaGVsbCAkKENDKSAtc3RkPWdudSsrMTEgLXggYysrIC1FIC1QIC1kTSAkKFNE
S19GTEFHUykgJChGUkFNRVdPUktfRkxBR1MpICQoSEVBREVSX0ZMQUdTKSAtSSAkKFdURikgLWlu
Y2x1ZGUgIiQoV1RGKS93dGYvUGxhdGZvcm0uaCIgL2Rldi9udWxsIHwgZ3JlcCAnIFdURl9QTEFU
Rk9STV9JT1MgJyB8IGN1dCAtZCcgJyAtZjMpLCAxKQorICAgIFdURl9QTEFURk9STV9JT1MgPSAx
CitlbHNlCisgICAgV1RGX1BMQVRGT1JNX0lPUyA9IDAKK2VuZGlmCisKK2lmZXEgKCQoV1RGX1BM
QVRGT1JNX0lPUyksIDEpCisJQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9W
RU1FTlQgPSAwCisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyA9IDAKK2Vsc2UKKwlBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVOVCA9ICQoQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUKQorCUhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgPSAxCitlbmRpZgorCitERVBF
TkRFTkNJRVMgPSAkKEJSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TKQorCitpZmVxICgkKEhBVkVf
SUNVR0VOQlJLKSwgMSkKK0RFUEVOREVOQ0lFUyArPSAkKEJSRUFLSU5HX1JVTEVTX0ZJTEVTKQor
ZW5kaWYKKworYWxsIDogJChERVBFTkRFTkNJRVMpCisKK0JyZWFraW5nUnVsZXMvJS5icmsgOiBC
cmVha2luZ1J1bGVzLyUucHAKKwlpY3VnZW5icmsgLWMgLXIgJDwgLW8gJEAKKworIyBnZW5icmsg
ZG9lc24ndCB1bmRlcnN0YW5kIHByZXByb2Nlc3NvciBtYWNyb3MsIHNvIHdlIGhhdmUgdG8gdW5p
ZmRlZiBtYW51YWxseSBoZXJlLgorIyBIb3dldmVyLCBzb21lIHBvcnRzIHdoaWNoIGRvbid0IGhh
dmUgZ2VuYnJrIGFsc28gZG9uJ3QgaGF2ZSB1bmlmZGVmLCBzbyB3ZSBkb24ndCB1bmlmZGVmIHRo
ZQorIyBydWxlcyB3aGljaCBnZXQgY29udmVydGVkIHRvIEMrKyBzb3VyY2UsIGFuZCB3ZSByZWx5
IG9uIHRoZSBDKysgY29tcGlsZXIncyBwcmVwcm9jZXNzb3IgdG8gaGFuZGxlCisjIHRoZSBkaXJl
Y3RpdmVzIGluc3RlYWQuCitCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxl
cy5jcHAgOiBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcAorCXB5
dGhvbiAkKFdURikvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgY3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzICQ8ID4gJEAKKworQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvciUuY3BwIDogQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUucHAKKwlweXRo
b24gJChXVEYpL1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGxpbmVCcmVh
a0l0ZXJhdG9yJCpSdWxlcyAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorCS11bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQpIC1ESEFW
RV9FWFRSQV9JQ1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRA
ICQ8CisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwIDogJChXVEYpL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCS1jYXQgJD8g
fCB1bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUKSAtREhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1F
RF9TRVRTKSAtbyAkQApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kZGFiOGI1NzVmOTVjNjI3ZjU4OTVlMjNjY2Q0YjFhMTEwNWViOGQ4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy50eHQKQEAgLTAsMCArMSwxNzYgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUs
IEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBy
dWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNV
IDU3CisjIDxodHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3Mv
cmVsZWFzZS01Ny0xL3NvdXJjZS9kYXRhL2Jya2l0ci8+LgorIyBUaGUgbWFqb3IgZGlmZmVyZW5j
ZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgorIyAqIFJlcGxhY2Vk
ICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtH
ZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBv
ciBlYXJsaWVyOworIyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20g
bW92aW5nIGFmdGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKKyMgKiBBZGRlZCBy
dWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25z
IG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKKyMgKiBB
ZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFu
ZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgorIyAqIEFkZGVkIHJ1bGVzIGZv
ciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4KKworJENSICAgICAgPSBbXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IENSfV07CiskTEYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gTEZ9XTsKKyRDb250cm9sID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250
cm9sfV07CiskVm9pY2VNYXJrcyA9IFtcdUZGOUVcdUZGOUZdOyAjIEphcGFuZXNlIGhhbGYtd2lk
dGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCiskRXh0ZW5kICA9IFtccHtHcmFwaGVtZV9DbHVzdGVy
X0JyZWFrID0gRXh0ZW5kfSAkVm9pY2VNYXJrcyAtIFtcdTBFMzAgXHUwRTMyIFx1MEU0NSBcdTBF
QjAgXHUwRUIyXV07CiskU3BhY2luZ01hcmsgPSBbW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFj
aW5nIE1hcmt9XSAtICRFeHRlbmRdOworJEwgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9C
cmVhayA9IEx9XTsKKyRWICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07
CiskVCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOworJExWICAgICAg
PSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07CiskTFZUICAgICA9IFtccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07CiskSGluMCAgICA9IFtcdTA5MDUtXHUwOTM5XTsg
IyBEZXZhbmFnYXJpIExldHRlciBBLC4uLixIYQorJEhpblYgICAgPSBcdTA5NEQ7ICMgRGV2YW5h
Z2FyaSBTaWduIFZpcmFtYQorJEhpbjEgICAgPSBbXHUwOTE1LVx1MDkzOV07ICMgRGV2YW5hZ2Fy
aSBMZXR0ZXIgS2EsLi4uLEhhCiskQmVuMCAgICA9IFtcdTA5ODUtXHUwOUI5XTsgIyBCZW5nYWxp
IExldHRlciBBLC4uLixIYQorJEJlblYgICAgPSBcdTA5Q0Q7ICMgQmVuZ2FsaSBTaWduIFZpcmFt
YQorJEJlbjEgICAgPSBbXHUwOTk1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhh
CiskUGFuMCAgICA9IFtcdTBBMDUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEK
KyRQYW5WICAgID0gXHUwQTREOyAjIEd1cm11a2hpIFNpZ24gVmlyYW1hCiskUGFuMSAgICA9IFtc
dTBBMTUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCiskR3VqMCAgICA9IFtc
dTBBODUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKKyRHdWpWICAgID0gXHUw
QUNEOyAjIEd1amFyYXRpIFNpZ24gVmlyYW1hCiskR3VqMSAgICA9IFtcdTBBOTUtXHUwQUI5XTsg
IyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCiskT3JpMCAgICA9IFtcdTBCMDUtXHUwQjM5XTsg
IyBPcml5YSBMZXR0ZXIgQSwuLi4sSGEKKyRPcmlWICAgID0gXHUwQjREOyAjIE9yaXlhIFNpZ24g
VmlyYW1hCiskT3JpMSAgICA9IFtcdTBCMTUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgS2EsLi4u
LEhhCiskVGVsMCAgICA9IFtcdTBDMDUtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhh
CiskVGVsViAgICA9IFx1MEM0RDsgIyBUZWx1Z3UgU2lnbiBWaXJhbWEKKyRUZWwxICAgID0gW1x1
MEMxNC1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCiskS2FuMCAgICA9IFtcdTBD
ODUtXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRlciBBLC4uLixIYQorJEthblYgICAgPSBcdTBDQ0Q7
ICMgS2FubmFkYSBTaWduIFZpcmFtYQorJEthbjEgICAgPSBbXHUwQzk1LVx1MENCOV07ICMgS2Fu
bmFkYSBMZXR0ZXIgQSwuLi4sSGEKKyRNYWwwICAgID0gW1x1MEQwNS1cdTBEMzldOyAjIE1hbGF5
YWxhbSBMZXR0ZXIgQSwuLi4sSGEgCiskTWFsViAgICA9IFx1MEQ0RDsgIyBNYWxheWFsYW0gU2ln
biBWaXJhbWEKKyRNYWwxICAgID0gW1x1MEQxNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIg
QSwuLi4sSGEKKyRSSSAgICAgID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07ICMgRW1vamkgcmVn
aW9uYWwgaW5kaWNhdG9ycworJFpXSiAgICAgPSBcdTIwMEQ7ICMgWmVybyB3aWR0aCBqb2luZXIK
KyRFbW9qaVZhciA9IFtcdUZFMEZdOyAjIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3Rvcgor
CisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1
MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBcVTAwMDFGMzA4IFxVMDAwMUYzQzMtXFUwMDAxRjND
NCBcVTAwMDFGM0NBLVxVMDAwMUYzQ0MgXFUwMDAxRjNGMyBcVTAwMDFGNDQxIFxVMDAwMUY0NjYt
XFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NkYgXFUwMDAxRjQ3MSBcVTAwMDFGNDczIFxV
MDAwMUY0NzcgXFUwMDAxRjQ4MS1cVTAwMDFGNDgyIFxVMDAwMUY0ODYtXFUwMDAxRjQ4NyBcVTAw
MDFGNDhCIFxVMDAwMUY1NzUgXFUwMDAxRjVFOCBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAx
RjY0QiBcVTAwMDFGNjRELVxVMDAwMUY2NEUgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2
QjYgXHUyNjk1LVx1MjY5NiBcdTI3MDggXFUwMDAxRjMzRSBcVTAwMDFGMzczIFxVMDAwMUYzOTMg
XFUwMDAxRjNBNCBcVTAwMDFGM0E4IFxVMDAwMUYzRUIgXFUwMDAxRjNFRCBcVTAwMDFGNEJCLVxV
MDAwMUY0QkMgXFUwMDAxRjUyNyBcVTAwMDFGNTJDIFxVMDAwMUY2ODAgXFUwMDAxRjY5MiBcVTAw
MDFGOTI2IFxVMDAwMUY5MzctXFUwMDAxRjkzOSBcVTAwMDFGOTNDLVxVMDAwMUY5M0VdOyAjIEVt
b2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMg
PSBbXHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUyNzBEIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAw
MDFGM0M0IFxVMDAwMUYzQ0EgXFUwMDAxRjNDQiBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAx
RjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0
ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1
IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBc
VTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUw
MDAxRjZDMCBcVTAwMDFGOTE4IFxVMDAwMUYzQzIgXFUwMDAxRjNDNyBcVTAwMDFGM0NDIFxVMDAw
MUY1NzQgXFUwMDAxRjU3QSBcVTAwMDFGNkNDIFxVMDAwMUY5MTktXFUwMDAxRjkxRSBcVTAwMDFG
OTI2IFxVMDAwMUY5MzAgXFUwMDAxRjkzMy1cVTAwMDFGOTM5IFxVMDAwMUY5M0MtXFUwMDAxRjkz
RV0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2Vsc2UKKwor
ICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNzY0IFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFG
NDhCXTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1v
amlGb3JNb2RzID0gW1x1MjYxRCBcdTI3MEEtXHUyNzBDIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1c
VTAwMDFGM0M0IFxVMDAwMUYzQzcgXFUwMDAxRjNDQSBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUw
MDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAw
MUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFG
NDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0
Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzBd
IDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCisk
RW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUwMDAxRjNGRl07ICMgRml0enBhdHJpY2sgbW9kaWZp
ZXJzCishIWNoYWluOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIVJJ
Tm9DaGFpbjsKKworI2VuZGlmCisKKyEhZm9yd2FyZDsKKyRDUiAkTEY7CiskTCAoJEwgfCAkViB8
ICRMViB8ICRMVlQpOworKCRMViB8ICRWKSAoJFYgfCAkVCk7CisoJExWVCB8ICRUKSAkVDsKKwor
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJICRSSSAkRXh0ZW5kKiAvICRS
STsKKyAgICAkUkkgJFJJICRFeHRlbmQqOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVu
ZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKworI2Vsc2UKKworICAg
IFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRT
cGFjaW5nTWFyazsKKyAgICAkUkkgJFJJIC8gJFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgor
CiskSGluMCAkSGluViAkSGluMTsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKKyRCZW4w
ICRCZW5WICRCZW4xOyAjIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQorJFBhbjAgJFBhblYgJFBh
bjE7ICMgR3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQorJEd1ajAgJEd1alYgJEd1ajE7ICMgR3Vq
YXJhdGkgVmlyYW1hIChmb3J3YXJkKQorJE9yaTAgJE9yaVYgJE9yaTE7ICMgT3JpeWEgVmlyYW1h
IChmb3J3YXJkKQorJFRlbDAgJFRlbFYgJFRlbDE7ICMgVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkK
KyRLYW4wICRLYW5WICRLYW4xOyAjIEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQorJE1hbDAgJE1h
bFYgJE1hbDE7ICMgTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKKyRaV0ogJEVtb2ppRm9yU2Vx
czsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaUZvck1vZHMgJEVt
b2ppVmFyPyAkRW1vamlNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAo
cG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmll
cgorISFyZXZlcnNlOworJExGICRDUjsKKygkTCB8ICRWIHwgJExWIHwgJExWVCkgJEw7CisoJFYg
fCAkVCkgKCRMViB8ICRWKTsKKyRUICgkTFZUIHwgJFQpOworCisjaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCisKKyAgICAkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsKKyAg
ICAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZd
OworICAgICRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOworCisjZWxzZQorCisgICAg
JEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENv
bnRyb2wgJENSICRMRl07CisgICAgJFJJICRSSSAvICRSSSAkUkk7CisgICAgJFJJICRSSTsKKwor
I2VuZGlmCisKKyRIaW4xICRIaW5WICRIaW4wOyAjIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2Fy
ZCkKKyRCZW4xICRCZW5WICRCZW4wOyAjIEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKKyRQYW4x
ICRQYW5WICRQYW4wOyAjIEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCiskR3VqMSAkR3VqViAk
R3VqMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJE9yaTEgJE9yaVYgJE9yaTA7ICMg
R3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRUZWwxICRUZWxWICRUZWwwOyAjIFRlbHVndSBW
aXJhbWEgKGJhY2t3YXJkKQorJEthbjEgJEthblYgJEthbjA7ICMgS2FubmFkYSBWaXJhbWEgKGJh
Y2t3YXJkKQorJE1hbDEgJE1hbFYgJE1hbDA7ICMgTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQp
CiskRW1vamlGb3JTZXFzICRaV0o7ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2Vz
CiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsgIyBEb250IGJyZWFrIGJldHdl
ZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQg
Rml0enBhdHJpY2sgbW9kaWZpZXIKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisg
ICAgISFzYWZlX3JldmVyc2U7CisgICAgJFJJICRSSSs7CisgICAgWyRFbW9qaVZhciAkRW1vamlN
b2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAhIXNhZmVfZm9yd2FyZDsKKyAgICAkUkkgJFJJKzsK
KyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOworCisjZWxzZQorCisg
ICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAkRW1vamlGb3JN
b2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOworICAgICEhc2FmZV9yZXZlcnNlOworICAgICEh
c2FmZV9mb3J3YXJkOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lNGIwODhkNTAwMTQyZDI5YmRkMjA1ZTMxODAzZGY4NGE1MmIwMmJmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yRXBpbG9ndWUudHh0CkBAIC0wLDAgKzEsMzcyIEBACisjIChDKSAxOTk5IExhcnMgS25v
bGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9i
aWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQUkg
PSBbOkxpbmVCcmVhayA9IEFtYmlndW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJl
dGljOl07CiskQkEgPSBbWzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07Cisk
QkIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBN
YW5kYXRvcnlfQnJlYWs6XTsKKyRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENC
ID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9
IENsb3NlX1B1bmN0dWF0aW9uOl07CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJr
Ol07CiskQ1AgPSBbOkxpbmVCcmVhayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxp
bmVCcmVhayA9IENhcnJpYWdlX1JldHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFt
YXRpb246XSAtICRFWF9TVUJdOworJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBI
QVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJl
d19MZXR0ZXI6XTsKKworI2Vsc2UKKworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6
XV07CisKKyNlbmRpZgorCiskSFkgPSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpM
aW5lQnJlYWsgPSBIMjpdOworJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpM
aW5lQnJlYWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElO
ID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGlu
ZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9
IEpMOl07CiskSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpU
Ol07CiskTEYgPSBbOkxpbmVCcmVhayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsg
PSBOZXh0X0xpbmU6XTsKKyROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENK
XSAkTlNfQUREXSAtICROU19TVUJdOworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07Cisk
T1AgPSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVh
ayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQ
cmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlv
bjpdOworJFJJID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9
IENvbXBsZXhfQ29udGV4dDpdOworJFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRT
UCA9IFs6TGluZUJyZWFrID0gU3BhY2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3lt
Ym9sczpdOworJFdKID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5l
QnJlYWsgPSBVbmtub3duOl07CiskWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0og
PSBcdTIwMEQ7CiskRW1vamlWYXIgPSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0
IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBc
VTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUw
MDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAw
MUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFG
NUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0
RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcdTI2OTUtXHUyNjk2IFx1MjcwOCBc
VTAwMDFGMzNFIFxVMDAwMUYzNzMgXFUwMDAxRjM5MyBcVTAwMDFGM0E0IFxVMDAwMUYzQTggXFUw
MDAxRjNFQiBcVTAwMDFGM0VEIFxVMDAwMUY0QkItXFUwMDAxRjRCQyBcVTAwMDFGNTI3IFxVMDAw
MUY1MkMgXFUwMDAxRjY4MCBcVTAwMDFGNjkyIFxVMDAwMUY5MjYgXFUwMDAxRjkzNy1cVTAwMDFG
OTM5IFxVMDAwMUY5M0MtXFUwMDAxRjkzRV07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBa
V0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1c
dTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFG
M0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2
Ni1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUt
XFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1NzUgXFUwMDAxRjU5MCBcVTAwMDFGNTk1IFxV
MDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAw
MDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwIFxVMDAwMUY5MTggXFUwMDAx
RjNDMiBcVTAwMDFGM0M3IFxVMDAwMUYzQ0MgXFUwMDAxRjU3NCBcVTAwMDFGNTdBIFxVMDAwMUY2
Q0MgXFUwMDAxRjkxOS1cVTAwMDFGOTFFIFxVMDAwMUY5MjYgXFUwMDAxRjkzMCBcVTAwMDFGOTMz
LVxVMDAwMUY5MzkgXFUwMDAxRjkzQy1cVTAwMDFGOTNFXTsgIyBFbW9qaSB0aGF0IHRha2UgRml0
enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbHNlCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2
NCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ4Ql07CisgICAgJEVtb2ppRm9yTW9kcyA9
IFtcdTI2MUQgXHUyNzBBLVx1MjcwQyBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBc
VTAwMDFGM0M3IFxVMDAwMUYzQ0EgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUw
MDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAw
MUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFG
NEFBIFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0
RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwXTsgIyBFbW9qaSB0
aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0g
W1xVMDAwMUYzRkItXFUwMDAxRjNGRl07CiskZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29t
cGxleF9Db250ZXh0Ol07CiskQUxQbHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOworJEFMY20g
PSAkQUxQbHVzICRDTSo7CiskQkFjbSA9ICRCQSAkQ00qOworJEJCY20gPSAkQkIgJENNKjsKKyRC
MmNtID0gJEIyICRDTSo7CiskQ0xjbSA9ICRDTCAkQ00qOworJENQY20gPSAkQ1AgJENNKjsKKyRF
WGNtID0gJEVYICRDTSo7CiskR0xjbSA9ICRHTCAkQ00qOworJEhMY20gPSAkSEwgJENNKjsKKyRI
WWNtID0gJEhZICRDTSo7CiskSDJjbSA9ICRIMiAkQ00qOworJEgzY20gPSAkSDMgJENNKjsKKyRJ
RGNtID0gJElEICRDTSo7CiskSU5jbSA9ICRJTiAkQ00qOworJElTY20gPSAkSVMgJENNKjsKKyRK
TGNtID0gJEpMICRDTSo7CiskSlZjbSA9ICRKViAkQ00qOworJEpUY20gPSAkSlQgJENNKjsKKyRO
U2NtID0gJE5TICRDTSo7CiskTlVjbSA9ICROVSAkQ00qOworJE9QY20gPSAkT1AgJENNKjsKKyRQ
T2NtID0gJFBPICRDTSo7CiskUFJjbSA9ICRQUiAkQ00qOworJFFVY20gPSAkUVUgJENNKjsKKyRS
SWNtID0gJFJJICRDTSo7CiskU1ljbSA9ICRTWSAkQ00qOworJFdKY20gPSAkV0ogJENNKjsKKwor
ISFmb3J3YXJkOworJENBTl9DTSA9IFteJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRD
QU5UX0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07CiskQUxfRk9MTE9XX05PQ00g
PSBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOworJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRF
WCAkSEwgJElTICRTWSAkV0ogJEdMICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVz
XTsKKyRBTF9GT0xMT1cgPSBbJEFMX0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOworJExCNEJy
ZWFrcyA9IFskQksgJENSICRMRiAkTkxdOworJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYg
JE5MXTsKKyRMQjhCcmVha3MgPSBbJExCNEJyZWFrcyAkWlddOworJExCOE5vbkJyZWFrcyA9IFtb
JExCNE5vbkJyZWFrc10gLSBbJFpXXV07CiskTEIxOE5vbkJyZWFrcyA9IFskTEI4Tm9uQnJlYWtz
IC0gWyRTUF1dOworJExCMThCcmVha3MgPSBbJExCOEJyZWFrcyAkU1BdOworJExCMjBOb25CcmVh
a3MgPSBbJExCMThOb25CcmVha3MgLSAkQ0JdOworJEFMUGx1cyAkQ00rOworJEJBICRDTSs7Cisk
QkIgJENNKzsKKyRCMiAkQ00rOworJENMICRDTSs7CiskQ1AgJENNKzsKKyRFWCAkQ00rOworJEdM
ICRDTSs7CiskSEwgJENNKzsKKyRIWSAkQ00rOworJEgyICRDTSs7CiskSDMgJENNKzsKKyRJRCAk
Q00rOworJElOICRDTSs7CiskSVMgJENNKzsKKyRKTCAkQ00rOworJEpWICRDTSs7CiskSlQgJENN
KzsKKyROUyAkQ00rOworJE5VICRDTSs7CiskT1AgJENNKzsKKyRQTyAkQ00rOworJFBSICRDTSs7
CiskUVUgJENNKzsKKyRSSSAkQ00rOworJFNZICRDTSs7CiskV0ogJENNKzsKKyRDUiAkTEYgezEw
MH07CiskTEI0Tm9uQnJlYWtzPyAkTEI0QnJlYWtzIHsxMDB9OworJENBTl9DTSAkQ00qICRMQjRC
cmVha3MgezEwMH07CiskQ00rICRMQjRCcmVha3MgezEwMH07CiskTEI0Tm9uQnJlYWtzIFskU1Ag
JFpXXTsKKyRDQU5fQ00gJENNKiBbJFNQICRaV107CiskQ00rIFskU1AgJFpXXTsKKyRFbW9qaUZv
clNlcXMgJEVtb2ppVmFyPyAkRW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7CiskQ0FOX0NN
ICRDTSs7CiskQ00rOworJENBTl9DTSAkQ00qICRXSmNtOworJExCOE5vbkJyZWFrcyAkV0pjbTsK
KyRDTSsgJFdKY207CiskV0pjbSAkQ0FOVF9DTTsKKyRXSmNtICRDQU5fQ00gJENNKjsKKyRHTGNt
ICRDQU5fQ00gJENNKjsKKyRHTGNtICRDQU5UX0NNOworW1skTEI4Tm9uQnJlYWtzXSAtIFskU1Ag
JEJBICRIWV1dICRDTSogJEdMY207CiskQ00rIEdMY207CiskTEI4Tm9uQnJlYWtzICRDTDsKKyRD
QU5fQ00gJENNKiAkQ0w7CiskQ00rICRDTDsKKyRMQjhOb25CcmVha3MgJENQOworJENBTl9DTSAk
Q00qICRDUDsKKyRDTSsgJENQOworJExCOE5vbkJyZWFrcyAkRVg7CiskQ0FOX0NNICRDTSogJEVY
OworJENNKyAkRVg7CiskTEI4Tm9uQnJlYWtzICRJUzsKKyRDQU5fQ00gJENNKiAkSVM7CiskQ00r
ICRJUzsKKyRMQjhOb25CcmVha3MgJFNZOworJENBTl9DTSAkQ00qICRTWTsKKyRDTSsgJFNZOwor
JE9QY20gJFNQKiAkQ0FOX0NNICRDTSo7CiskT1BjbSAkU1AqICRDQU5UX0NNOworJE9QY20gJFNQ
KyAkQ00rICRBTF9GT0xMT1c/OworJFFVY20gJFNQKiAkT1BjbTsKKygkQ0xjbSB8ICRDUGNtKSAk
U1AqICROU2NtOworJEIyY20gJFNQKiAkQjJjbTsKKyRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207
CiskQ00rICRRVWNtOworJFFVY20gLj87CiskUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00qOworJExC
MjBOb25CcmVha3MgJENNKiAoJEJBY20gfCAkSFljbSB8ICROU2NtKTsgCiskQkJjbSBbXiRDQl07
CiskQkJjbSAkTEIyME5vbkJyZWFrcyAkQ00qOworJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENC
XT87CiskU1ljbSAkSExjbTsKKygkQUxjbSB8ICRITGNtKSAkSU5jbTsKKyRDTSsgJElOY207Cisk
RVhjbSAkSU5jbTsKKyRJRGNtICRJTmNtOworJElOY20gJElOY207CiskTlVjbSAkSU5jbTsKKyRJ
RGNtICRQT2NtOworJEFMY20gJE5VY207CiskSExjbSAkTlVjbTsKKyRDTSsgJE5VY207CiskTlVj
bSAkQUxjbTsKKyROVWNtICRITGNtOworJFBSY20gJElEY207CiskUFJjbSAoJEFMY20gfCAkSExj
bSk7CiskUE9jbSAoJEFMY20gfCAkSExjbSk7CisoJFBSY20gfCAkUE9jbSk/ICgkT1BjbSB8ICRI
WWNtKT8gJE5VY20gKCROVWNtIHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRDUGNtKT8gKCRQ
UmNtIHwgJFBPY20pPzsKKyRKTGNtICgkSkxjbSB8ICRKVmNtIHwgJEgyY20gfCAkSDNjbSk7Ciso
JEpWY20gfCAkSDJjbSkgKCRKVmNtIHwgJEpUY20pOworKCRKVGNtIHwgJEgzY20pICRKVGNtOwor
KCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOworKCRKTGNtIHwg
JEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRQT2NtOworJFBSY20gKCRKTGNtIHwgJEpW
Y20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pOworKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8ICRI
TGNtKTsKKyRDTSsgKCRBTGNtIHwgJEhMY20pOworJElTY20gKCRBTGNtIHwgJEhMY20pOworKCRB
TGNtIHwgJEhMY20gfCAkTlVjbSkgJE9QY207CiskQ00rICRPUGNtOworJENQY20gKCRBTGNtIHwg
JEhMY20gfCAkTlVjbSk7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRS
SWNtICRSSWNtOworCisjZW5kaWYKKworJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1v
ZHM7CisKKyEhcmV2ZXJzZTsKKyRDTSsgJEFMUGx1czsKKyRDTSsgJEJBOworJENNKyAkQkI7Cisk
Q00rICRCMjsKKyRDTSsgJENMOworJENNKyAkQ1A7CiskQ00rICRFWDsKKyRDTSsgJEdMOworJENN
KyAkSEw7CiskQ00rICRIWTsKKyRDTSsgJEgyOworJENNKyAkSDM7CiskQ00rICRJRDsKKyRDTSsg
JElOOworJENNKyAkSVM7CiskQ00rICRKTDsKKyRDTSsgJEpWOworJENNKyAkSlQ7CiskQ00rICRO
UzsKKyRDTSsgJE5VOworJENNKyAkT1A7CiskQ00rICRQTzsKKyRDTSsgJFBSOworJENNKyAkUVU7
CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRDTSsgJFJJOworCisjZW5k
aWYKKworJENNKyAkU1k7CiskQ00rICRXSjsKKyRDTSs7CiskQUxfRk9MTE9XICRDTSsgLyAoWyRC
SyAkQ1IgJExGICROTCAkWlcge2VvZn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14k
T1AgJENNICRTUF0gfCBbJEFMIHtlb2Z9XSkpOworWyRQUl0gLyAkQ00rIFskQksgJENSICRMRiAk
TkwgJFpXICRTUCB7ZW9mfV07CiskTEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtzLSRDTV07CiskTEI0
QnJlYWtzICRDTSsgJENBTl9DTTsKKyRMRiAkQ1I7CitbJFNQICRaV10gWyRMQjROb25CcmVha3Mt
JENNXTsKK1skU1AgJFpXXSAkQ00rICRDQU5fQ007CiskRW1vamlGb3JTZXFzICRaV0ogJEVtb2pp
TW9kcz8gJEVtb2ppVmFyPyAkRW1vamlGb3JTZXFzOworJENNKyAkQ0FOX0NNOworJENNKiAkV0og
JENNKiAkQ0FOX0NNOworJENNKiAkV0ogWyRMQjhOb25CcmVha3MtJENNXTsKKyRDQU5UX0NNICRD
TSogJFdKOworJENNKiAkQ0FOX0NNICRDTSogJFdKOworJENNKiAkR0wgJENNKiBbJExCOE5vbkJy
ZWFrcy1bJENNICRTUCAkQkEgJEhZXV07CiskQ0FOVF9DTSAkQ00qICRHTDsKKyRDTSogJENBTl9D
TSAkQ00qICRHTDsKKyRDTCAkQ00rICRDQU5fQ007CiskQ1AgJENNKyAkQ0FOX0NNOworJEVYICRD
TSsgJENBTl9DTTsKKyRJUyAkQ00rICRDQU5fQ007CiskU1kgJENNKyAkQ0FOX0NNOworJENMIFsk
TEI4Tm9uQnJlYWtzLSRDTV07CiskQ1AgWyRMQjhOb25CcmVha3MtJENNXTsKKyRFWCBbJExCOE5v
bkJyZWFrcy0kQ01dOworJElTIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskU1kgWyRMQjhOb25CcmVh
a3MtJENNXTsKK1skQ0wgJENQICRFWCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7IAorJENN
KiAkQ0FOX0NNICRTUCogJENNKiAkT1A7CiskQ0FOVF9DTSAkU1AqICRDTSogJE9QOworJEFMX0ZP
TExPVz8gJENNKyAkU1AgJFNQKiAkQ00qICRPUDsKKyRBTF9GT0xMT1dfTk9DTSAkQ00rICRTUCsg
JENNKiAkT1A7CiskQ00qICRBTF9GT0xMT1dfQ00gJENNKyAkU1ArICRDTSogJE9QOworJFNZICRD
TSAkU1ArICRPUDsKKyRDTSogJE9QICRTUCogJENNKiAkUVU7CiskQ00qICROUyAkU1AqICRDTSog
KCRDTCB8ICRDUCk7CiskQ00qICRCMiAkU1AqICRDTSogJEIyOworJENNKiAkUVUgJENNKiAkQ0FO
X0NNOworJENNKiAkUVUgJExCMThOb25CcmVha3M7CiskQ00qICRDQU5fQ00gJENNKiAkUVU7Cisk
Q0FOVF9DTSAkQ00qICRRVTsKKyRDTSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBbJExCMjBOb25C
cmVha3MtJENNXTsKKyRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV0gJENNKiAkQkI7CitbXiRDQl0g
JENNKiAkQkI7CitbXiRDQl0gJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsKKyRDTSogJEhMICRD
TSogJFNZOworJENNKiAkSU4gJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICRJTiAkQ00qICRF
WDsKKyRDTSogJElOICRDTSogJElEOworJENNKiAkSU4gJENNKiAkSU47CiskQ00qICRJTiAkQ00q
ICROVTsKKyRDTSogJFBPICRDTSogJElEOworJENNKiAkTlUgJENNKiAoJEFMUGx1cyB8ICRITCk7
CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICROVTsKKyRDTSogJElEICRDTSogJFBSOworJENN
KiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQ
TzsKKygkQ00qICgkUFIgfCAkUE8pKT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5VIHwg
JElTIHwgJFNZKSkqICRDTSogJE5VICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQ
TykpPzsKKyRDTSogKCRIMyB8ICRIMiB8ICRKViB8ICRKTCkgJENNKiAkSkw7CiskQ00qICgkSlQg
fCAkSlYpICRDTSogKCRIMiB8ICRKVik7CiskQ00qICRKVCAkQ00qICgkSDMgfCAkSlQpOworJENN
KiAkSU4gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsKKyRDTSogJFBPICRDTSog
KCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7CiskQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAk
SlYgfCAkSkwpICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8
ICRITCk7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRJUzsKKyRDTSogJE9QICRDTSogKCRB
TFBsdXMgfCAkSEwgfCAkTlUpOworJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7
CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRDTSogJFJJICRDTSogJFJJ
OworCisjZW5kaWYKKworJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7CisKKyEh
c2FmZV9mb3J3YXJkOworWyRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRTUCAk
ZGljdGlvbmFyeV0rIFteJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJGRpY3Rp
b25hcnldOworJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7CisgICAgCishIXNhZmVfcmV2ZXJzZTsK
KyRDTSsgW14kQ00gJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOworJENNKyAkU1AgLyAuOworJFNQ
KyAkQ00qICRPUDsKKyRTUCsgJENNKiAkUVU7CiskU1ArICRDTSogKCRDTCB8ICRDUCk7CiskU1Ar
ICRDTSogJEIyOworJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsKKygkQ00qICgkSVMgfCAkU1kp
KSsgJENNKiAkTlU7CisoJENMIHwgJENQKSAkQ00qICgkTlUgfCAkSVMgfCAkU1kpOworJGRpY3Rp
b25hcnkgJGRpY3Rpb25hcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWIzZjY2ZjQyYWYxMzhlZDU4ZmY0MjFmNjc2OGQ4ZmQ1ODAxMjgyYwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clByb2xvZ3VlLnR4dApAQCAtMCwwICsxLDM4IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJ
bmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCishIWNoYWluOwor
ISFMQkNNTm9DaGFpbjsKKyEhbG9va0FoZWFkSGFyZEJyZWFrOworCisjaWYgSEFWRV9FWFRSQV9J
Q1VfTkFNRURfU0VUUworCisgICAgJENKID0gWzpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5l
c2VfU3RhcnRlcjpdOworCisjZWxzZQorCisgICAgJENKID0gW1x1MzA0MVx1MzA0M1x1MzA0NVx1
MzA0N1x1MzA0OVx1MzA2M1x1MzA4M1x1MzA4NVx1MzA4N1x1MzA4RVx1MzA5NVx1MzA5Nlx1MzBB
MVx1MzBBM1x1MzBBNVx1MzBBN1x1MzBBOVx1MzBDM1x1MzBFM1x1MzBFNVx1MzBFN1x1MzBFRVx1
MzBGNVx1MzBGNlx1MzBGQ1x1MzFGMFx1MzFGMVx1MzFGMlx1MzFGM1x1MzFGNFx1MzFGNVx1MzFG
Nlx1MzFGN1x1MzFGOFx1MzFGOVx1MzFGQVx1MzFGQlx1MzFGQ1x1MzFGRFx1MzFGRVx1MzFGRlx1
RkY2N1x1RkY2OFx1RkY2OVx1RkY2QVx1RkY2Qlx1RkY2Q1x1RkY2RFx1RkY2RVx1RkY2Rlx1RkY3
MF07CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkw
N2MwY2E1YWE3YjJmZmJmOGIyY2Q5MDkyYWE1ZjNlMWRiYTQwOTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NENKSy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIw
MTBcdTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOwor
JElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOwor
JFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQg
PSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWRiOGYwZmY1MTg1NmQ5N2M5YzE0ZTEyMTYzNzM0ZmRmYzk3YzljYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VDSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUs
IEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIg
PSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSBbXHUwMDIxXHUwMDNGXHVGRjAxXHVGRjFGXTsK
KyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSBbXHUyMDI1XHUyMDI2XTsKKyRJU19TVUIgPSBbXHUw
MDNBXHUwMDNCXTsKKyROU19TVUIgPSBbXHUyMDNDXHUyMDQ3XHUyMDQ4XHUyMDQ5XHUzMDA1XHUz
MDFDXHUzMDNCXHUzMDlEXHUzMDlFXHUzMEEwXHUzMEZCXHUzMEZEXHUzMEZFXHVGRjFBXHVGRjFC
XHVGRjY1XTsKKyRQT19TVUIgPSBbXHUwMDI1XHUwMEEyXHUwMEIwXHUyMDMwXHUyMDMyXHUyMDMz
XHUyMTAzXHVGRjA1XHVGRkUwXTsKKyRQUl9TVUIgPSBbXHUwMDI0XHUwMEEzXHUwMEE1XHUyMEFD
XHUyMTE2XHVGRjA0XHVGRkUxXHVGRkU1XTsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVYX1NV
QiAkSU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOworJE5TX0FERCA9ICcn
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43Y2JiYzhhODgxNWU0ZDBkY2ZiOTYwYzExMmY2MGE4MzhkM2E0Mjg0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZU5vbkNKSy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtu
b2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1v
YmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
IyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJB
X1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIw
MjVcdTIwMjZdOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMDVcdTMwM0JcdTMwOURc
dTMwOUVcdTMwRkRcdTMwRkVdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FE
RCA9IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9u
Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzQyODc5ZGQxZjgyZWI2MmQyOGQ4YWE3
YmNkZGY0NDZkMDczODdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0CkBAIC0wLDAgKzEs
MzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
IyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9T
VUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQ
T19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENK
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
MDdjMGNhNWFhN2IyZmZiZjhiMmNkOTA5MmFhNWYzZTFkYmE0MDkyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxDSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAo
a25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUs
IEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIg
PSBbXHUyMDEwXHUyMDEzXTsKKyRFWF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJRF9TVUIg
PSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUzMDFDXHUzMEEwXTsKKyRQT19TVUIg
PSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIgJE5TX1NVQl07Cisk
TlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTJjZjZhMDgyNmFkYTRlZGNmY2YzOTQzYjY4OWY4YzA2ZTBiZDc0OAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChD
KSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3
LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7Cisk
SU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7
CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc0Mjg3OWRkMWY4
MmViNjJkMjhkOGFhN2JjZGRmNDQ2ZDA3Mzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5v
cmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhf
U1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7Cisk
TlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gJyc7
CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5v
bkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc0Mjg3OWRkMWY4MmViNjJkMjhkOGFhN2JjZGRmNDQ2ZDA3
Mzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBA
CisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykg
MjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChD
KSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0g
Jyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VC
ID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IGIwZGJlNTk3ZjM5
MWYxMzJjMjhlNjQyZjdkOTc1YjExMGY3NWY4MjYuLjUyNzBhMjU5MWFjOWJjODAwNTkzYzUyZDFi
NWNiYTc1NzQ3NGE2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFr
SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3Iu
Y3BwCkBAIC0zMSw5ICszMSw2IEBACiAjaW5jbHVkZSA8dW5pY29kZS91YnJrLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCi0vLyBGSVhNRTogVGhpcyBuZWVkcyBhIGJl
dHRlciBuYW1lCi0jZGVmaW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9T
KSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTEwMCkpCi0KIG5hbWVzcGFjZSBXVEYgewogCiAvLyBJdGVyYXRvciBpbml0aWFsaXphdGlv
bgpAQCAtNjEsNiArNTgsMTIgQEAgc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBpbml0aWFsaXplSXRl
cmF0b3JXaXRoUnVsZXMoY29uc3QgY2hhciogYnJlYWtSdWxlcykKIAogI2VuZGlmCiAKKyNpZiAh
UExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0
ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpCit7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisjZW5kaWYKIAogLy8gSXRlcmF0b3IgdGV4dCBzZXR0aW5nCiAKQEAgLTE2NCwxNDMgKzE2
NywyNyBAQCBVQnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKFN0cmluZ1ZpZXcg
c3RyaW5nKQogICAgIHJldHVybiBzZXRUZXh0Rm9ySXRlcmF0b3IoKnN0YXRpY1NlbnRlbmNlQnJl
YWtJdGVyYXRvciwgc3RyaW5nKTsKIH0KIAorI2lmICFQTEFURk9STShJT1MpCitzdGF0aWMgVUJy
ZWFrSXRlcmF0b3IqIGNyZWF0ZUN1cnNvck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2soKQor
eworICAgIGlmIChhdXRvKiBpdGVyYXRvciA9IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVh
a2luZ1J1bGVTZXQ6OkN1cnNvck1vdmVtZW50KSkKKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yOwor
ICAgIHJldHVybiBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoY3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzKTsKK30KKyNlbmRpZgorCiBVQnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJ
dGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZykKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIC8v
IFRoaXMgcnVsZSBzZXQgaXMgYmFzZWQgb24gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIHJ1bGVz
IG9mIElDVSA1NwotICAgIC8vIDxodHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9p
Y3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3NvdXJjZS9kYXRhL2Jya2l0ci8+LgotICAgIC8vIFRo
ZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9tIHRoZSBvcmlnaW5hbCBvbmVzIGFyZSBsaXN0ZWQgYmVs
b3c6Ci0gICAgLy8gKiBSZXBsYWNlZCAnW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBTcGFj
aW5nTWFya31dJyB3aXRoICdbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya30gLSAk
RXh0ZW5kXScgZm9yIElDVSAzLjggb3IgZWFybGllcjsKLSAgICAvLyAqIFJlbW92ZWQgcnVsZXMg
dGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHByZXBlbmQgY2hhcmFjdGVy
cyAoQnVnIDI0MzQyKTsKLSAgICAvLyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNv
ciBmcm9tIG1vdmluZyBhZnRlciB2aXJhbWEgc2lnbnMgb2YgSW5kaWMgbGFuZ3VhZ2VzIGV4Y2Vw
dCBUYW1pbCAoQnVnIDE1NzkwKSwgYW5kOwotICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2
ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGJlZm9yZSBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFr
YXJhIHZvaWNlZCBtYXJrcy4KLSAgICAvLyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRp
Y2F0b3Igc3ltYm9scy4KLSAgICBzdGF0aWMgY29uc3QgY2hhcioga1J1bGVzID0KLSAgICAgICAg
IiRDUiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ1J9XTsiCi0gICAgICAg
ICIkTEYgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExGfV07IgotICAgICAg
ICAiJENvbnRyb2wgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07Igot
ICAgICAgICAiJFZvaWNlTWFya3MgPSBbXFx1RkY5RVxcdUZGOUZdOyIgLy8gSmFwYW5lc2UgaGFs
Zi13aWR0aCBrYXRha2FuYSB2b2ljZWQgbWFya3MKLSAgICAgICAgIiRFeHRlbmQgID0gW1xccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSAkVm9pY2VNYXJrcyAtIFtcXHUwRTMwIFxc
dTBFMzIgXFx1MEU0NSBcXHUwRUIwIFxcdTBFQjJdXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsg
PSBbW1xccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfV0gLSAkRXh0ZW5kXTsiCi0g
ICAgICAgICIkTCAgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsiCi0g
ICAgICAgICIkViAgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFZ9XTsiCi0g
ICAgICAgICIkVCAgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFR9XTsiCi0g
ICAgICAgICIkTFYgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07Igot
ICAgICAgICAiJExWVCAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVlR9XTsi
Ci0gICAgICAgICIkSGluMCAgICA9IFtcXHUwOTA1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBM
ZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRIaW5WICAgID0gXFx1MDk0RDsiIC8vIERldmFuYWdh
cmkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRIaW4xICAgID0gW1xcdTA5MTUtXFx1MDkzOV07IiAv
LyBEZXZhbmFnYXJpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRCZW4wICAgID0gW1xcdTA5
ODUtXFx1MDlCOV07IiAvLyBCZW5nYWxpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEJlblYg
ICAgPSBcXHUwOUNEOyIgLy8gQmVuZ2FsaSBTaWduIFZpcmFtYQotICAgICAgICAiJEJlbjEgICAg
PSBbXFx1MDk5NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0dGVyIEthLC4uLixIYQotICAgICAg
ICAiJFBhbjAgICAgPSBbXFx1MEEwNS1cXHUwQTM5XTsiIC8vIEd1cm11a2hpIExldHRlciBBLC4u
LixIYQotICAgICAgICAiJFBhblYgICAgPSBcXHUwQTREOyIgLy8gR3VybXVraGkgU2lnbiBWaXJh
bWEKLSAgICAgICAgIiRQYW4xICAgID0gW1xcdTBBMTUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBM
ZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkR3VqMCAgICA9IFtcXHUwQTg1LVxcdTBBQjldOyIg
Ly8gR3VqYXJhdGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkR3VqViAgICA9IFxcdTBBQ0Q7
IiAvLyBHdWphcmF0aSBTaWduIFZpcmFtYQotICAgICAgICAiJEd1ajEgICAgPSBbXFx1MEE5NS1c
XHUwQUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRPcmkwICAg
ID0gW1xcdTBCMDUtXFx1MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAg
IiRPcmlWICAgID0gXFx1MEI0RDsiIC8vIE9yaXlhIFNpZ24gVmlyYW1hCi0gICAgICAgICIkT3Jp
MSAgICA9IFtcXHUwQjE1LVxcdTBCMzldOyIgLy8gT3JpeWEgTGV0dGVyIEthLC4uLixIYQotICAg
ICAgICAiJFRlbDAgICAgPSBbXFx1MEMwNS1cXHUwQzM5XTsiIC8vIFRlbHVndSBMZXR0ZXIgQSwu
Li4sSGEKLSAgICAgICAgIiRUZWxWICAgID0gXFx1MEM0RDsiIC8vIFRlbHVndSBTaWduIFZpcmFt
YQotICAgICAgICAiJFRlbDEgICAgPSBbXFx1MEMxNC1cXHUwQzM5XTsiIC8vIFRlbHVndSBMZXR0
ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkS2FuMCAgICA9IFtcXHUwQzg1LVxcdTBDQjldOyIgLy8g
S2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRLYW5WICAgID0gXFx1MENDRDsiIC8v
IEthbm5hZGEgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRLYW4xICAgID0gW1xcdTBDOTUtXFx1MENC
OV07IiAvLyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJE1hbDAgICAgPSBbXFx1
MEQwNS1cXHUwRDM5XTsiIC8vIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRN
YWxWICAgID0gXFx1MEQ0RDsiIC8vIE1hbGF5YWxhbSBTaWduIFZpcmFtYQotICAgICAgICAiJE1h
bDEgICAgPSBbXFx1MEQxNS1cXHUwRDM5XTsiIC8vIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEK
LSAgICAgICAgIiRSSSAgICAgID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsiIC8vIEVtb2pp
IHJlZ2lvbmFsIGluZGljYXRvcnMKLSAgICAgICAgIiRaV0ogICAgID0gXFx1MjAwRDsiIC8vIFpl
cm8gd2lkdGggam9pbmVyCi0gICAgICAgICIkRW1vamlWYXIgPSBbXFx1RkUwRl07IiAvLyBFbW9q
aS1zdHlsZSB2YXJpYXRpb24gc2VsZWN0b3IKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQK
LSAgICAgICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2
NCBcXFUwMDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAx
RjNDQyBcXFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUw
MDAxRjQ2RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBc
XFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4
QiBcXFUwMDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAx
RjY0QiBcXFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUw
MDAxRjZCNiBcXHUyNjk1LVxcdTI2OTYgXFx1MjcwOCBcXFUwMDAxRjMzRSBcXFUwMDAxRjM3MyBc
XFUwMDAxRjM5MyBcXFUwMDAxRjNBNCBcXFUwMDAxRjNBOCBcXFUwMDAxRjNFQiBcXFUwMDAxRjNF
RCBcXFUwMDAxRjRCQi1cXFUwMDAxRjRCQyBcXFUwMDAxRjUyNyBcXFUwMDAxRjUyQyBcXFUwMDAx
RjY4MCBcXFUwMDAxRjY5MiBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzNy1cXFUwMDAxRjkzOSBcXFUw
MDAxRjkzQy1cXFUwMDAxRjkzRV07IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBz
ZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNkY5IFxcdTI3
MEEtXFx1MjcwRCBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjND
QSBcXFUwMDAxRjNDQiBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAx
RjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUw
MDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU3NSBc
XFUwMDAxRjU5MCBcXFUwMDAxRjU5NSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0
NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAx
RjZCNiBcXFUwMDAxRjZDMCBcXFUwMDAxRjkxOCBcXFUwMDAxRjNDMiBcXFUwMDAxRjNDNyBcXFUw
MDAxRjNDQyBcXFUwMDAxRjU3NCBcXFUwMDAxRjU3QSBcXFUwMDAxRjZDQyBcXFUwMDAxRjkxOS1c
XFUwMDAxRjkxRSBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzMCBcXFUwMDAxRjkzMy1cXFUwMDAxRjkz
OSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRy
aWNrIG1vZGlmaWVycwotI2Vsc2UKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBc
XFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IiAvLyBFbW9qaSB0aGF0IHBhcnRp
Y2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYx
RCBcXHUyNzBBLVxcdTI3MEMgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxV
MDAwMUYzQzcgXFxVMDAwMUYzQ0EgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYt
XFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0
NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAw
MUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxV
MDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYg
XFxVMDAwMUY2QzBdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMK
LSNlbmRpZgotICAgICAgICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07
IiAvLyBGaXR6cGF0cmljayBtb2RpZmllcnMKLSAgICAgICAgIiEhY2hhaW47IgotI2lmIEFERElU
SU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiISFSSU5vQ2hhaW47IgotI2VuZGlmCi0gICAg
ICAgICIhIWZvcndhcmQ7IgotICAgICAgICAiJENSICRMRjsiCi0gICAgICAgICIkTCAoJEwgfCAk
ViB8ICRMViB8ICRMVlQpOyIKLSAgICAgICAgIigkTFYgfCAkVikgKCRWIHwgJFQpOyIKLSAgICAg
ICAgIigkTFZUIHwgJFQpICRUOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAg
ICAgIiRSSSAkUkkgJEV4dGVuZCogLyAkUkk7IgotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKjsi
Ci0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14kQ29u
dHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotI2Vsc2UKLSAgICAgICAgIlteJENvbnRyb2wg
JENSICRMRl0gJEV4dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5n
TWFyazsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7IgotI2Vu
ZGlmCi0gICAgICAgICIkSGluMCAkSGluViAkSGluMTsiIC8vIERldmFuYWdhcmkgVmlyYW1hIChm
b3J3YXJkKQotICAgICAgICAiJEJlbjAgJEJlblYgJEJlbjE7IiAvLyBCZW5nYWxpIFZpcmFtYSAo
Zm9yd2FyZCkKLSAgICAgICAgIiRQYW4wICRQYW5WICRQYW4xOyIgLy8gR3VybXVraGkgVmlyYW1h
IChmb3J3YXJkKQotICAgICAgICAiJEd1ajAgJEd1alYgJEd1ajE7IiAvLyBHdWphcmF0aSBWaXJh
bWEgKGZvcndhcmQpCi0gICAgICAgICIkT3JpMCAkT3JpViAkT3JpMTsiIC8vIE9yaXlhIFZpcmFt
YSAoZm9yd2FyZCkKLSAgICAgICAgIiRUZWwwICRUZWxWICRUZWwxOyIgLy8gVGVsdWd1IFZpcmFt
YSAoZm9yd2FyZCkKLSAgICAgICAgIiRLYW4wICRLYW5WICRLYW4xOyIgLy8gS2FubmFkYSBWaXJh
bWEgKGZvcndhcmQpCi0gICAgICAgICIkTWFsMCAkTWFsViAkTWFsMTsiIC8vIE1hbGF5YWxhbSBW
aXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkWldKICRFbW9qaUZvclNlcXM7IiAvLyBEb24ndCBi
cmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzICRFbW9q
aVZhcj8gJEVtb2ppTW9kczsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkg
KHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZp
ZXIKLSAgICAgICAgIiEhcmV2ZXJzZTsiCi0gICAgICAgICIkTEYgJENSOyIKLSAgICAgICAgIigk
TCB8ICRWIHwgJExWIHwgJExWVCkgJEw7IgotICAgICAgICAiKCRWIHwgJFQpICgkTFYgfCAkVik7
IgotICAgICAgICAiJFQgKCRMVlQgfCAkVCk7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAotICAgICAgICAiJEV4dGVuZCogJFJJICRSSSAvICRFeHRlbmQqICRSSSAkUkk7IgotICAgICAg
ICAiJEV4dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAk
Q1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0j
ZWxzZQotICAgICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAg
ICAiJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFJJICRSSSAv
ICRSSSAkUkk7IgotICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4xICRI
aW5WICRIaW4wOyIgLy8gRGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEJl
bjEgJEJlblYgJEJlbjA7IiAvLyBCZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIk
UGFuMSAkUGFuViAkUGFuMDsiIC8vIEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAg
ICIkR3VqMSAkR3VqViAkR3VqMDsiIC8vIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAg
ICAgICIkT3JpMSAkT3JpViAkT3JpMDsiIC8vIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCi0g
ICAgICAgICIkVGVsMSAkVGVsViAkVGVsMDsiIC8vIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQot
ICAgICAgICAiJEthbjEgJEthblYgJEthbjA7IiAvLyBLYW5uYWRhIFZpcmFtYSAoYmFja3dhcmQp
Ci0gICAgICAgICIkTWFsMSAkTWFsViAkTWFsMDsiIC8vIE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3
YXJkKQotICAgICAgICAiJEVtb2ppRm9yU2VxcyAkWldKOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1v
amkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZv
ck1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3
aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0jaWYgQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgICAg
ICIkUkkgJFJJKzsiCi0gICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JN
b2RzOyIKLSAgICAgICAgIiEhc2FmZV9mb3J3YXJkOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAg
ICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IjsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yID0gY3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjaygpOwogI2Vs
c2UKLSAgICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAg
ICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiCi0gICAgICAgICIh
IXNhZmVfcmV2ZXJzZTsiCi0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsiOwotI2VuZGlmCi0gICAg
c3RhdGljIFVCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5p
dGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGtSdWxlcyk7Ci0jZWxzZSAvLyBQTEFURk9STShJT1Mp
CiAgICAgLy8gVXNlIHRoZSBzcGVjaWFsIFRoYWkgY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGZv
ciBhbGwgbG9jYWxlcwotICAgIHN0YXRpYyBVQnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcihVQlJLX0NIQVJBQ1RFUiwgInRoIik7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gc3RhdGljQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRvcihVQlJLX0NIQVJBQ1RFUiwgInRo
Iik7CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIAotICAgIGlmICghc3RhdGljQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvcikKKyAgICBpZiAoIXN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IuZ2V0
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIHNldFRleHRGb3JJdGVy
YXRvcigqc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciwgc3RyaW5nKTsKKyAgICByZXR1cm4g
c2V0VGV4dEZvckl0ZXJhdG9yKCooc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvci5nZXQoKSks
IHN0cmluZyk7CiB9CiAKIFVCcmVha0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3Io
U3RyaW5nVmlldyBzdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBjb25zdCBVQ2hh
ciogcHJpb3JDb250ZXh0LCB1bnNpZ25lZCBwcmlvckNvbnRleHRMZW5ndGgsIExpbmVCcmVha0l0
ZXJhdG9yTW9kZSBtb2RlLCBib29sIGlzQ0pLKQpAQCAtMzE5LDQ0MiArMjA2LDIwIEBAIHZvaWQg
cmVsZWFzZUxpbmVCcmVha0l0ZXJhdG9yKFVCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKICAgICBM
aW5lQnJlYWtJdGVyYXRvclBvb2w6OnNoYXJlZFBvb2woKS5wdXQoaXRlcmF0b3IpOwogfQogCi1z
dGF0aWMgY29uc3QgY2hhciogdWF4MTRQcm9sb2d1ZSA9Ci0gICAgIiEhY2hhaW47IgotICAgICIh
IUxCQ01Ob0NoYWluOyIKLSAgICAiISFsb29rQWhlYWRIYXJkQnJlYWs7IjsKLQotc3RhdGljIGNv
bnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNCZWZvcmUgPQotICAgIC8vIGV4cGxpY2l0bHkgZW51
bWVyYXRlICRDSiBzaW5jZSBJQ1UgdmVyc2lvbnMgcHJpb3IgdG8gNDkgZG9uJ3Qgc3VwcG9ydCA6
TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6Ci0gICAgIiRDSiA9IFsiCi0j
aWYgKFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9S
X05VTSA+PSA5KQotICAgICI6TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6
IgotI2Vsc2UKLSAgICAiXFx1MzA0MVxcdTMwNDNcXHUzMDQ1XFx1MzA0N1xcdTMwNDlcXHUzMDYz
XFx1MzA4M1xcdTMwODVcXHUzMDg3XFx1MzA4RVxcdTMwOTVcXHUzMDk2XFx1MzBBMVxcdTMwQTNc
XHUzMEE1XFx1MzBBNyIKLSAgICAiXFx1MzBBOVxcdTMwQzNcXHUzMEUzXFx1MzBFNVxcdTMwRTdc
XHUzMEVFXFx1MzBGNVxcdTMwRjZcXHUzMEZDIgotICAgICJcXHUzMUYwXFx1MzFGMVxcdTMxRjJc
XHUzMUYzXFx1MzFGNFxcdTMxRjVcXHUzMUY2XFx1MzFGN1xcdTMxRjhcXHUzMUY5XFx1MzFGQVxc
dTMxRkJcXHUzMUZDXFx1MzFGRFxcdTMxRkVcXHUzMUZGIgotICAgICJcXHVGRjY3XFx1RkY2OFxc
dUZGNjlcXHVGRjZBXFx1RkY2QlxcdUZGNkNcXHVGRjZEXFx1RkY2RVxcdUZGNkZcXHVGRjcwIgot
I2VuZGlmCi0gICAgIl07IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHND
dXN0b21Mb29zZUNKSyA9Ci0gICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAgICAi
JEVYX1NVQiA9IFtcXHUwMDIxXFx1MDAzRlxcdUZGMDFcXHVGRjFGXTsiCi0gICAgIiRJRF9TVUIg
PSAnJzsiCi0gICAgIiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAgICAiJElTX1NVQiA9
IFtcXHUwMDNBXFx1MDAzQl07IgotICAgICIkTlNfU1VCID0gW1xcdTIwM0NcXHUyMDQ3XFx1MjA0
OFxcdTIwNDlcXHUzMDA1XFx1MzAxQ1xcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwQTBcXHUzMEZC
XFx1MzBGRFxcdTMwRkVcXHVGRjFBXFx1RkYxQlxcdUZGNjVdOyIKLSAgICAiJFBPX1NVQiA9IFtc
XHUwMDI1XFx1MDBBMlxcdTAwQjBcXHUyMDMwXFx1MjAzMlxcdTIwMzNcXHUyMTAzXFx1RkYwNVxc
dUZGRTBdOyIKLSAgICAiJFBSX1NVQiA9IFtcXHUwMDI0XFx1MDBBM1xcdTAwQTVcXHUyMEFDXFx1
MjExNlxcdUZGMDRcXHVGRkUxXFx1RkZFNV07IgotICAgICIkSURfQUREID0gWyRDSiAkQkFfU1VC
ICRFWF9TVUIgJElOX1NVQiAkSVNfU1VCICROU19TVUIgJFBPX1NVQiAkUFJfU1VCXTsiCi0gICAg
IiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1
c3RvbUxvb3NlTm9uQ0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcn
OyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07
IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gW1xcdTMwMDVcXHUzMDNCXFx1
MzA5RFxcdTMwOUVcXHUzMEZEXFx1MzBGRV07IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIk
UFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJdOyIKLSAg
ICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tTm9ybWFsQ0pLID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAg
ICIkRVhfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7
IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gW1xcdTMwMUNcXHUzMEEwXTsi
Ci0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQg
PSBbJENKICRCQV9TVUIgJE5TX1NVQl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGlj
IGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxOb25DSksgPQotICAgICIk
QkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7Igot
ICAgICIkSU5fU1VCID0gJyc7IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0g
Jyc7IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURf
QUREID0gWyRDSl07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIq
IHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksgPQotICAgICIkQkFfU1VCID0gJyc7Igot
ICAgICIkRVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0g
Jyc7IgotICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gJyc7IgotICAgICIkUE9f
U1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gJyc7IgotICAg
ICIkTlNfQUREID0gWyRDSl07IjsKLQotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3Ry
aWN0Tm9uQ0pLICAgICAgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSwotI2RlZmluZSB1
YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdENKSyAgICAgICAgdWF4MTRBc3NpZ25tZW50c0N1
c3RvbU5vcm1hbENKSwotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNK
SyAgICAgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSwotCi1zdGF0aWMgY29uc3Qg
Y2hhciogdWF4MTRBc3NpZ25tZW50c0FmdGVyID0KLSAgICAiJEFJID0gWzpMaW5lQnJlYWsgPSBB
bWJpZ3VvdXM6XTsiCi0gICAgIiRBTCA9IFs6TGluZUJyZWFrID0gQWxwaGFiZXRpYzpdOyIKLSAg
ICAiJEJBID0gW1s6TGluZUJyZWFrID0gQnJlYWtfQWZ0ZXI6XSAtICRCQV9TVUJdOyIKLSAgICAi
JEJCID0gWzpMaW5lQnJlYWsgPSBCcmVha19CZWZvcmU6XTsiCi0gICAgIiRCSyA9IFs6TGluZUJy
ZWFrID0gTWFuZGF0b3J5X0JyZWFrOl07IgotICAgICIkQjIgPSBbOkxpbmVCcmVhayA9IEJyZWFr
X0JvdGg6XTsiCi0gICAgIiRDQiA9IFs6TGluZUJyZWFrID0gQ29udGluZ2VudF9CcmVhazpdOyIK
LSAgICAiJENMID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QdW5jdHVhdGlvbjpdOyIKLSAgICAiJENN
ID0gWzpMaW5lQnJlYWsgPSBDb21iaW5pbmdfTWFyazpdOyIKLSAgICAiJENQID0gWzpMaW5lQnJl
YWsgPSBDbG9zZV9QYXJlbnRoZXNpczpdOyIKLSAgICAiJENSID0gWzpMaW5lQnJlYWsgPSBDYXJy
aWFnZV9SZXR1cm46XTsiCi0gICAgIiRFWCA9IFtbOkxpbmVCcmVhayA9IEV4Y2xhbWF0aW9uOl0g
LSAkRVhfU1VCXTsiCi0gICAgIiRHTCA9IFs6TGluZUJyZWFrID0gR2x1ZTpdOyIKLSNpZiAoVV9J
Q1VfVkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49
IDkpCi0gICAgIiRITCA9IFs6TGluZUJyZWFrID0gSGVicmV3X0xldHRlcjpdOyIKLSNlbHNlCi0g
ICAgIiRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07IgotI2VuZGlmCi0gICAgIiRIWSA9
IFs6TGluZUJyZWFrID0gSHlwaGVuOl07IgotICAgICIkSDIgPSBbOkxpbmVCcmVhayA9IEgyOl07
IgotICAgICIkSDMgPSBbOkxpbmVCcmVhayA9IEgzOl07IgotICAgICIkSUQgPSBbW1tbOkxpbmVC
cmVhayA9IElkZW9ncmFwaGljOl0gLSAkQ0pdICRJRF9BRERdIC0gJElEX1NVQl07IgotICAgICIk
SU4gPSBbWzpMaW5lQnJlYWsgPSBJbnNlcGFyYWJsZTpdIC0gJElOX1NVQl07IgotICAgICIkSVMg
PSBbWzpMaW5lQnJlYWsgPSBJbmZpeF9OdW1lcmljOl0gLSAkSVNfU1VCXTsiCi0gICAgIiRKTCA9
IFs6TGluZUJyZWFrID0gSkw6XTsiCi0gICAgIiRKViA9IFs6TGluZUJyZWFrID0gSlY6XTsiCi0g
ICAgIiRKVCA9IFs6TGluZUJyZWFrID0gSlQ6XTsiCi0gICAgIiRMRiA9IFs6TGluZUJyZWFrID0g
TGluZV9GZWVkOl07IgotICAgICIkTkwgPSBbOkxpbmVCcmVhayA9IE5leHRfTGluZTpdOyIKLSAg
ICAiJE5TID0gW1tbWzpMaW5lQnJlYWsgPSBOb25zdGFydGVyOl0gLSAkQ0pdICROU19BRERdIC0g
JE5TX1NVQl07IgotICAgICIkTlUgPSBbOkxpbmVCcmVhayA9IE51bWVyaWM6XTsiCi0gICAgIiRP
UCA9IFs6TGluZUJyZWFrID0gT3Blbl9QdW5jdHVhdGlvbjpdOyIKLSAgICAiJFBPID0gW1s6TGlu
ZUJyZWFrID0gUG9zdGZpeF9OdW1lcmljOl0gLSAkUE9fU1VCXTsiCi0gICAgIiRQUiA9IFtbOkxp
bmVCcmVhayA9IFByZWZpeF9OdW1lcmljOl0gLSAkUFJfU1VCXTsiCi0gICAgIiRRVSA9IFs6TGlu
ZUJyZWFrID0gUXVvdGF0aW9uOl07IgotICAgICIkUkkgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYx
RkZdOyIKLSAgICAiJFNBID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsiCi0gICAg
IiRTRyA9IFs6TGluZUJyZWFrID0gU3Vycm9nYXRlOl07IgotICAgICIkU1AgPSBbOkxpbmVCcmVh
ayA9IFNwYWNlOl07IgotICAgICIkU1kgPSBbOkxpbmVCcmVhayA9IEJyZWFrX1N5bWJvbHM6XTsi
Ci0gICAgIiRXSiA9IFs6TGluZUJyZWFrID0gV29yZF9Kb2luZXI6XTsiCi0gICAgIiRYWCA9IFs6
TGluZUJyZWFrID0gVW5rbm93bjpdOyIKLSAgICAiJFpXID0gWzpMaW5lQnJlYWsgPSBaV1NwYWNl
Ol07IgotICAgICIkWldKID0gXFx1MjAwRDsiCi0gICAgIiRFbW9qaVZhciA9IFxcdUZFMEY7Igot
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI2
NDAgXFx1MjY0MiBcXHUyNkY5IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAw
MUYzQzQgXFxVMDAwMUYzQ0EtXFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxV
MDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEg
XFxVMDAwMUY0NzMgXFxVMDAwMUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0
ODYtXFxVMDAwMUY0ODcgXFxVMDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAw
MUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxV
MDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFx1MjY5NS1cXHUyNjk2IFxcdTI3MDgg
XFxVMDAwMUYzM0UgXFxVMDAwMUYzNzMgXFxVMDAwMUYzOTMgXFxVMDAwMUYzQTQgXFxVMDAwMUYz
QTggXFxVMDAwMUYzRUIgXFxVMDAwMUYzRUQgXFxVMDAwMUY0QkItXFxVMDAwMUY0QkMgXFxVMDAw
MUY1MjcgXFxVMDAwMUY1MkMgXFxVMDAwMUY2ODAgXFxVMDAwMUY2OTIgXFxVMDAwMUY5MjYgXFxV
MDAwMUY5MzctXFxVMDAwMUY5MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdOyIgLy8gRW1vamkg
dGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgIiRFbW9qaUZvck1vZHMgPSBb
XFx1MjYxRCBcXHUyNkY5IFxcdTI3MEEtXFx1MjcwRCBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1c
XFUwMDAxRjNDNCBcXFUwMDAxRjNDQSBcXFUwMDAxRjNDQiBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0
MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ3OCBcXFUwMDAx
RjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUw
MDAxRjRBQSBcXFUwMDAxRjU3NSBcXFUwMDAxRjU5MCBcXFUwMDAxRjU5NSBcXFUwMDAxRjU5NiBc
XFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZB
MyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMCBcXFUwMDAxRjkxOCBcXFUwMDAx
RjNDMiBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQyBcXFUwMDAxRjU3NCBcXFUwMDAxRjU3QSBcXFUw
MDAxRjZDQyBcXFUwMDAxRjkxOS1cXFUwMDAxRjkxRSBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzMCBc
XFUwMDAxRjkzMy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV0gOyIgLy8gRW1v
amkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2Vsc2UKLSAgICAiJEVtb2ppRm9y
U2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDhCXTsiCi0g
ICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNzBBLVxcdTI3MEMgXFxVMDAwMUYzODUg
XFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0EgXFxVMDAwMUY0
NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAw
MUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxV
MDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1OTYg
XFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2
QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzBdIDsiIC8vIEVtb2ppIHRoYXQg
dGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbmRpZgotICAgICIkRW1vamlNb2RzID0gW1xc
VTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiCi0gICAgIiRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsg
PSBDb21wbGV4X0NvbnRleHQ6XTsiCi0gICAgIiRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRY
WF07IgotICAgICIkQUxjbSA9ICRBTFBsdXMgJENNKjsiCi0gICAgIiRCQWNtID0gJEJBICRDTSo7
IgotICAgICIkQkJjbSA9ICRCQiAkQ00qOyIKLSAgICAiJEIyY20gPSAkQjIgJENNKjsiCi0gICAg
IiRDTGNtID0gJENMICRDTSo7IgotICAgICIkQ1BjbSA9ICRDUCAkQ00qOyIKLSAgICAiJEVYY20g
PSAkRVggJENNKjsiCi0gICAgIiRHTGNtID0gJEdMICRDTSo7IgotICAgICIkSExjbSA9ICRITCAk
Q00qOyIKLSAgICAiJEhZY20gPSAkSFkgJENNKjsiCi0gICAgIiRIMmNtID0gJEgyICRDTSo7Igot
ICAgICIkSDNjbSA9ICRIMyAkQ00qOyIKLSAgICAiJElEY20gPSAkSUQgJENNKjsiCi0gICAgIiRJ
TmNtID0gJElOICRDTSo7IgotICAgICIkSVNjbSA9ICRJUyAkQ00qOyIKLSAgICAiJEpMY20gPSAk
SkwgJENNKjsiCi0gICAgIiRKVmNtID0gJEpWICRDTSo7IgotICAgICIkSlRjbSA9ICRKVCAkQ00q
OyIKLSAgICAiJE5TY20gPSAkTlMgJENNKjsiCi0gICAgIiROVWNtID0gJE5VICRDTSo7IgotICAg
ICIkT1BjbSA9ICRPUCAkQ00qOyIKLSAgICAiJFBPY20gPSAkUE8gJENNKjsiCi0gICAgIiRQUmNt
ID0gJFBSICRDTSo7IgotICAgICIkUVVjbSA9ICRRVSAkQ00qOyIKLSAgICAiJFJJY20gPSAkUkkg
JENNKjsiCi0gICAgIiRTWWNtID0gJFNZICRDTSo7IgotICAgICIkV0pjbSA9ICRXSiAkQ00qOyI7
Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEZvcndhcmQgPQotICAgICIhIWZvcndhcmQ7Igot
ICAgICIkQ0FOX0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOyIKLSAgICAiJENB
TlRfQ00gPSBbJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsiCi0gICAgIiRBTF9GT0xMT1df
Tk9DTSA9IFskQksgJENSICRMRiAkTkwgJFpXICRTUF07IgotICAgICIkQUxfRk9MTE9XX0NNID0g
WyRDTCAkQ1AgJEVYICRITCAkSVMgJFNZICRXSiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4g
JE5VICRBTFBsdXNdOyIKLSAgICAiJEFMX0ZPTExPVyA9IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZP
TExPV19DTV07IgotICAgICIkTEI0QnJlYWtzID0gWyRCSyAkQ1IgJExGICROTF07IgotICAgICIk
TEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOyIKLSAgICAiJExCOEJyZWFrcyA9IFsk
TEI0QnJlYWtzICRaV107IgotICAgICIkTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAt
IFskWlddXTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07
IgotICAgICIkTEIxOEJyZWFrcyA9IFskTEI4QnJlYWtzICRTUF07IgotICAgICIkTEIyME5vbkJy
ZWFrcyA9IFskTEIxOE5vbkJyZWFrcyAtICRDQl07IgotICAgICIkQUxQbHVzICRDTSs7IgotICAg
ICIkQkEgJENNKzsiCi0gICAgIiRCQiAkQ00rOyIKLSAgICAiJEIyICRDTSs7IgotICAgICIkQ0wg
JENNKzsiCi0gICAgIiRDUCAkQ00rOyIKLSAgICAiJEVYICRDTSs7IgotICAgICIkR0wgJENNKzsi
Ci0gICAgIiRITCAkQ00rOyIKLSAgICAiJEhZICRDTSs7IgotICAgICIkSDIgJENNKzsiCi0gICAg
IiRIMyAkQ00rOyIKLSAgICAiJElEICRDTSs7IgotICAgICIkSU4gJENNKzsiCi0gICAgIiRJUyAk
Q00rOyIKLSAgICAiJEpMICRDTSs7IgotICAgICIkSlYgJENNKzsiCi0gICAgIiRKVCAkQ00rOyIK
LSAgICAiJE5TICRDTSs7IgotICAgICIkTlUgJENNKzsiCi0gICAgIiRPUCAkQ00rOyIKLSAgICAi
JFBPICRDTSs7IgotICAgICIkUFIgJENNKzsiCi0gICAgIiRRVSAkQ00rOyIKLSAgICAiJFJJICRD
TSs7IgotICAgICIkU1kgJENNKzsiCi0gICAgIiRXSiAkQ00rOyIKLSAgICAiJENSICRMRiB7MTAw
fTsiCi0gICAgIiRMQjROb25CcmVha3M/ICRMQjRCcmVha3MgezEwMH07IgotICAgICIkQ0FOX0NN
ICRDTSogJExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRDTSsgJExCNEJyZWFrcyB7MTAwfTsiCi0g
ICAgIiRMQjROb25CcmVha3MgWyRTUCAkWlddOyIKLSAgICAiJENBTl9DTSAkQ00qIFskU1AgJFpX
XTsiCi0gICAgIiRDTSsgWyRTUCAkWlddOyIKLSAgICAiJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/
ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsiCi0gICAgIiRDQU5fQ00gJENNKzsiCi0g
ICAgIiRDTSs7IgotICAgICIkQ0FOX0NNICRDTSogJFdKY207IgotICAgICIkTEI4Tm9uQnJlYWtz
ICRXSmNtOyIKLSAgICAiJENNKyAkV0pjbTsiCi0gICAgIiRXSmNtICRDQU5UX0NNOyIKLSAgICAi
JFdKY20gJENBTl9DTSAkQ00qOyIKLSAgICAiJEdMY20gJENBTl9DTSAkQ00qOyIKLSAgICAiJEdM
Y20gJENBTlRfQ007IgotICAgICJbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENN
KiAkR0xjbTsiCi0gICAgIiRDTSsgR0xjbTsiCi0gICAgIiRMQjhOb25CcmVha3MgJENMOyIKLSAg
ICAiJENBTl9DTSAkQ00qICRDTDsiCi0gICAgIiRDTSsgJENMOyIKLSAgICAiJExCOE5vbkJyZWFr
cyAkQ1A7IgotICAgICIkQ0FOX0NNICRDTSogJENQOyIKLSAgICAiJENNKyAkQ1A7IgotICAgICIk
TEI4Tm9uQnJlYWtzICRFWDsiCi0gICAgIiRDQU5fQ00gJENNKiAkRVg7IgotICAgICIkQ00rICRF
WDsiCi0gICAgIiRMQjhOb25CcmVha3MgJElTOyIKLSAgICAiJENBTl9DTSAkQ00qICRJUzsiCi0g
ICAgIiRDTSsgJElTOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkU1k7IgotICAgICIkQ0FOX0NNICRD
TSogJFNZOyIKLSAgICAiJENNKyAkU1k7IgotICAgICIkT1BjbSAkU1AqICRDQU5fQ00gJENNKjsi
Ci0gICAgIiRPUGNtICRTUCogJENBTlRfQ007IgotICAgICIkT1BjbSAkU1ArICRDTSsgJEFMX0ZP
TExPVz87IgotICAgICIkUVVjbSAkU1AqICRPUGNtOyIKLSAgICAiKCRDTGNtIHwgJENQY20pICRT
UCogJE5TY207IgotICAgICIkQjJjbSAkU1AqICRCMmNtOyIKLSAgICAiJExCMThOb25CcmVha3Mg
JENNKiAkUVVjbTsiCi0gICAgIiRDTSsgJFFVY207IgotICAgICIkUVVjbSAuPzsiCi0gICAgIiRR
VWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7IgotICAgICIkTEIyME5vbkJyZWFrcyAkQ00qICgkQkFj
bSB8ICRIWWNtIHwgJE5TY20pOyAiCi0gICAgIiRCQmNtIFteJENCXTsiCi0gICAgIiRCQmNtICRM
QjIwTm9uQnJlYWtzICRDTSo7IgotICAgICIkSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsi
Ci0gICAgIiRTWWNtICRITGNtOyIKLSAgICAiKCRBTGNtIHwgJEhMY20pICRJTmNtOyIKLSAgICAi
JENNKyAkSU5jbTsiCi0gICAgIiRFWGNtICRJTmNtOyIKLSAgICAiJElEY20gJElOY207IgotICAg
ICIkSU5jbSAkSU5jbTsiCi0gICAgIiROVWNtICRJTmNtOyIKLSAgICAiJElEY20gJFBPY207Igot
ICAgICIkQUxjbSAkTlVjbTsiCi0gICAgIiRITGNtICROVWNtOyIKLSAgICAiJENNKyAkTlVjbTsi
Ci0gICAgIiROVWNtICRBTGNtOyIKLSAgICAiJE5VY20gJEhMY207IgotICAgICIkUFJjbSAkSURj
bTsiCi0gICAgIiRQUmNtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRQT2NtICgkQUxjbSB8ICRI
TGNtKTsiCi0gICAgIigkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5V
Y20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/OyIK
LSAgICAiJEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsiCi0gICAgIigkSlZj
bSB8ICRIMmNtKSAoJEpWY20gfCAkSlRjbSk7IgotICAgICIoJEpUY20gfCAkSDNjbSkgJEpUY207
IgotICAgICIoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207Igot
ICAgICIoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJFBPY207IgotICAg
ICIkUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSk7IgotICAgICIo
JEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJENNKyAoJEFMY20gfCAkSExj
bSk7IgotICAgICIkSVNjbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIoJEFMY20gfCAkSExjbSB8
ICROVWNtKSAkT1BjbTsiCi0gICAgIiRDTSsgJE9QY207IgotICAgICIkQ1BjbSAoJEFMY20gfCAk
SExjbSB8ICROVWNtKTsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRSSWNt
ICRSSWNtOyIKLSNlbmRpZgotICAgICIkRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9k
czsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRSZXZlcnNlID0KLSAgICAiISFyZXZlcnNl
OyIKLSAgICAiJENNKyAkQUxQbHVzOyIKLSAgICAiJENNKyAkQkE7IgotICAgICIkQ00rICRCQjsi
Ci0gICAgIiRDTSsgJEIyOyIKLSAgICAiJENNKyAkQ0w7IgotICAgICIkQ00rICRDUDsiCi0gICAg
IiRDTSsgJEVYOyIKLSAgICAiJENNKyAkR0w7IgotICAgICIkQ00rICRITDsiCi0gICAgIiRDTSsg
JEhZOyIKLSAgICAiJENNKyAkSDI7IgotICAgICIkQ00rICRIMzsiCi0gICAgIiRDTSsgJElEOyIK
LSAgICAiJENNKyAkSU47IgotICAgICIkQ00rICRJUzsiCi0gICAgIiRDTSsgJEpMOyIKLSAgICAi
JENNKyAkSlY7IgotICAgICIkQ00rICRKVDsiCi0gICAgIiRDTSsgJE5TOyIKLSAgICAiJENNKyAk
TlU7IgotICAgICIkQ00rICRPUDsiCi0gICAgIiRDTSsgJFBPOyIKLSAgICAiJENNKyAkUFI7Igot
ICAgICIkQ00rICRRVTsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRDTSsg
JFJJOyIKLSNlbmRpZgotICAgICIkQ00rICRTWTsiCi0gICAgIiRDTSsgJFdKOyIKLSAgICAiJENN
KzsiCi0gICAgIiRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRaVyB7ZW9mfV0g
fCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFskQUwge2VvZn1d
KSk7IgotICAgICJbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9XTsi
Ci0gICAgIiRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENNXTsiCi0gICAgIiRMQjRCcmVha3Mg
JENNKyAkQ0FOX0NNOyIKLSAgICAiJExGICRDUjsiCi0gICAgIlskU1AgJFpXXSBbJExCNE5vbkJy
ZWFrcy0kQ01dOyIKLSAgICAiWyRTUCAkWlddICRDTSsgJENBTl9DTTsiCi0gICAgIiRFbW9qaUZv
clNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1vamlWYXI/ICRFbW9qaUZvclNlcXM7IgotICAgICIk
Q00rICRDQU5fQ007IgotICAgICIkQ00qICRXSiAkQ00qICRDQU5fQ007IgotICAgICIkQ00qICRX
SiBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENBTlRfQ00gJENNKiAkV0o7IgotICAgICIk
Q00qICRDQU5fQ00gJENNKiAkV0o7IgotICAgICIkQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtz
LVskQ00gJFNQICRCQSAkSFldXTsiCi0gICAgIiRDQU5UX0NNICRDTSogJEdMOyIKLSAgICAiJENN
KiAkQ0FOX0NNICRDTSogJEdMOyIKLSAgICAiJENMICRDTSsgJENBTl9DTTsiCi0gICAgIiRDUCAk
Q00rICRDQU5fQ007IgotICAgICIkRVggJENNKyAkQ0FOX0NNOyIKLSAgICAiJElTICRDTSsgJENB
Tl9DTTsiCi0gICAgIiRTWSAkQ00rICRDQU5fQ007IgotICAgICIkQ0wgWyRMQjhOb25CcmVha3Mt
JENNXTsiCi0gICAgIiRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJEVYIFskTEI4Tm9u
QnJlYWtzLSRDTV07IgotICAgICIkSVMgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRTWSBb
JExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiWyRDTCAkQ1AgJEVYICRJUyAkU1ldICRDTSsgJFNQ
KyAkQ00qICRPUDsgIgotICAgICIkQ00qICRDQU5fQ00gJFNQKiAkQ00qICRPUDsiCi0gICAgIiRD
QU5UX0NNICRTUCogJENNKiAkT1A7IgotICAgICIkQUxfRk9MTE9XPyAkQ00rICRTUCAkU1AqICRD
TSogJE9QOyIKLSAgICAiJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsiCi0gICAg
IiRDTSogJEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7IgotICAgICIkU1kgJENNICRT
UCsgJE9QOyIKLSAgICAiJENNKiAkT1AgJFNQKiAkQ00qICRRVTsiCi0gICAgIiRDTSogJE5TICRT
UCogJENNKiAoJENMIHwgJENQKTsiCi0gICAgIiRDTSogJEIyICRTUCogJENNKiAkQjI7IgotICAg
ICIkQ00qICRRVSAkQ00qICRDQU5fQ007IgotICAgICIkQ00qICRRVSAkTEIxOE5vbkJyZWFrczsi
Ci0gICAgIiRDTSogJENBTl9DTSAkQ00qICRRVTsiCi0gICAgIiRDQU5UX0NNICRDTSogJFFVOyIK
LSAgICAiJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOyIK
LSAgICAiJENNKiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsiCi0gICAgIlteJENCXSAk
Q00qICRCQjsiCi0gICAgIlteJENCXSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOyIKLSAgICAi
JENNKiAkSEwgJENNKiAkU1k7IgotICAgICIkQ00qICRJTiAkQ00qICgkQUxQbHVzIHwgJEhMKTsi
Ci0gICAgIiRDTSogJElOICRDTSogJEVYOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSUQ7IgotICAg
ICIkQ00qICRJTiAkQ00qICRJTjsiCi0gICAgIiRDTSogJElOICRDTSogJE5VOyIKLSAgICAiJENN
KiAkUE8gJENNKiAkSUQ7IgotICAgICIkQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsiCi0g
ICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJE5VOyIKLSAgICAiJENNKiAkSUQgJENNKiAk
UFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRB
TFBsdXMgfCAkSEwpICRDTSogJFBPOyIKLSAgICAiKCRDTSogKCRQUiB8ICRQTykpPyAoJENNKiAo
JENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kpKSogJENNKiAkTlUgKCRDTSogKCRP
UCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OyIKLSAgICAiJENNKiAoJEgzIHwgJEgyIHwg
JEpWIHwgJEpMKSAkQ00qICRKTDsiCi0gICAgIiRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgyIHwg
JEpWKTsiCi0gICAgIiRDTSogJEpUICRDTSogKCRIMyB8ICRKVCk7IgotICAgICIkQ00qICRJTiAk
Q00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOyIKLSAgICAiJENNKiAkUE8gJENNKiAo
JEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsiCi0gICAgIiRDTSogKCRIMyB8ICRIMiB8ICRK
VCB8ICRKViB8ICRKTCkgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00q
ICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJElTOyIK
LSAgICAiJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSk7IgotICAgICIkQ00qICgk
QUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUCi0gICAgIiRDTSogJFJJICRDTSogJFJJOyIKLSNlbmRpZgotICAgICIkRW1vamlNb2RzICRF
bW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRTYWZl
Rm9yd2FyZCA9Ci0gICAgIiEhc2FmZV9mb3J3YXJkOyIKLSAgICAiWyRDTSAkT1AgJFFVICRDTCAk
Q1AgJEIyICRQUiAkSFkgJEJBICRTUCAkZGljdGlvbmFyeV0rIFteJENNICRPUCAkUVUgJENMICRD
UCAkQjIgJFBSICRIWSAkQkEgJGRpY3Rpb25hcnldOyIKLSAgICAiJGRpY3Rpb25hcnkgJGRpY3Rp
b25hcnk7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0U2FmZVJldmVyc2UgPQotICAgICIh
IXNhZmVfcmV2ZXJzZTsiCi0gICAgIiRDTSsgW14kQ00gJEJLICRDUiAkTEYgJE5MICRaVyAkU1Bd
OyIKLSAgICAiJENNKyAkU1AgLyAuOyIKLSAgICAiJFNQKyAkQ00qICRPUDsiCi0gICAgIiRTUCsg
JENNKiAkUVU7IgotICAgICIkU1ArICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIkU1ArICRDTSog
JEIyOyIKLSAgICAiJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsiCi0gICAgIigkQ00qICgkSVMg
fCAkU1kpKSsgJENNKiAkTlU7IgotICAgICIoJENMIHwgJENQKSAkQ00qICgkTlUgfCAkSVMgfCAk
U1kpOyIKLSAgICAiJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7IjsKLQogc3RhdGljIFN0cmluZyBt
YXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhMaW5lQnJlYWtJdGVyYXRvck1vZGUgbW9kZSwgYm9v
bCBpc0NKSykKIHsKLSAgICBTdHJpbmdCdWlsZGVyIHJ1bGVzQnVpbGRlcjsKLSAgICBydWxlc0J1
aWxkZXIuYXBwZW5kKHVheDE0UHJvbG9ndWUpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4
MTRBc3NpZ25tZW50c0JlZm9yZSk7CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBMaW5l
QnJlYWtJdGVyYXRvck1vZGU6OkRlZmF1bHQ6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQo
aXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdENKSyA6IHVheDE0QXNzaWdubWVu
dHNDdXN0b21EZWZhdWx0Tm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBp
c0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6TG9vc2U6
Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3Vz
dG9tTG9vc2VDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSkspOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSktSdWxlczsKICAg
ICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6Tm9ybWFsOgotICAgICAgICBydWxlc0J1aWxk
ZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA6IHVheDE0
QXNzaWdubWVudHNDdXN0b21Ob3JtYWxOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAg
cmV0dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKS1J1bGVzIDogbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFr
SXRlcmF0b3JNb2RlOjpTdHJpY3Q6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksg
PyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3Rv
bVN0cmljdE5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBs
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLUnVsZXM7CiAgICAgfQotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4
MTRBc3NpZ25tZW50c0FmdGVyKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0Rm9yd2Fy
ZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFJldmVyc2UpOwotICAgIHJ1bGVzQnVp
bGRlci5hcHBlbmQodWF4MTRTYWZlRm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1
YXgxNFNhZmVSZXZlcnNlKTsKLSAgICByZXR1cm4gcnVsZXNCdWlsZGVyLnRvU3RyaW5nKCk7Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICIiOwogfQogCiAvLyBSZWNvZ25p
emUgQkNQNDcgY29tcGxpYW50IHByaW1hcnkgbGFuZ3VhZ2UgdmFsdWVzIG9mICd6aCcsICdqYScs
ICdrbycKQEAgLTc4OCw5ICsyNTMsMjkgQEAgVUJyZWFrSXRlcmF0b3IqIG9wZW5MaW5lQnJlYWtJ
dGVyYXRvcihjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSwgTGluZUJyZWFrSXRlcmEKICAgICBp
ZiAobW9kZSA9PSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OkRlZmF1bHQpCiAgICAgICAgIHVicmtJ
dGVyID0gdWJya19vcGVuKFVCUktfTElORSwgbG9jYWxlSXNFbXB0eSA/IGN1cnJlbnRUZXh0QnJl
YWtMb2NhbGVJRCgpIDogbG9jYWxlLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIDAsIDAsICZvcGVu
U3RhdHVzKTsKICAgICBlbHNlIHsKLSAgICAgICAgVVBhcnNlRXJyb3IgcGFyc2VTdGF0dXM7Ci0g
ICAgICAgIGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NK
Syk7Ci0gICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuUnVsZXMoU3RyaW5nVmlldyhydWxlcyku
dXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHJ1bGVzLmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0
dXMsICZvcGVuU3RhdHVzKTsKKyAgICAgICAgQnJlYWtpbmdSdWxlU2V0IHJ1bGVTZXQgPSBCcmVh
a2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOworICAgICAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICAg
ICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OkRlZmF1bHQ6CisgICAgICAgICAgICBydWxl
U2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLIDogQnJlYWtpbmdSdWxlU2V0
OjpVQVgxNE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVh
a0l0ZXJhdG9yTW9kZTo6TG9vc2U6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVh
a2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VO
b25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRv
ck1vZGU6Ok5vcm1hbDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVs
ZVNldDo6VUFYMTROb3JtYWxDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pL
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2Rl
OjpTdHJpY3Q6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6
OlVBWDE0U3RyaWN0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdE5vbkNKSzsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9y
ID0gY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KHJ1bGVTZXQpKQorICAgICAgICAgICAgdWJya0l0
ZXIgPSByZWludGVycHJldF9jYXN0PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpOworICAgICAg
ICBlbHNlIHsKKyAgICAgICAgICAgIFVQYXJzZUVycm9yIHBhcnNlU3RhdHVzOworICAgICAgICAg
ICAgYXV0byBydWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsK
KyAgICAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuUnVsZXMoU3RyaW5nVmlldyhydWxlcyku
dXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHJ1bGVzLmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0
dXMsICZvcGVuU3RhdHVzKTsKKyAgICAgICAgfQogICAgIH0KICAgICAvLyBsb2NhbGUgY29tZXMg
ZnJvbSBhIHdlYiBwYWdlIGFuZCBpdCBjYW4gYmUgaW52YWxpZCwgbGVhZGluZyBJQ1UKICAgICAv
LyB0byBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCBsb2Nh
bGUuCkBAIC04MTEsNiArMjk2LDcgQEAgdm9pZCBjbG9zZUxpbmVCcmVha0l0ZXJhdG9yKFVCcmVh
a0l0ZXJhdG9yKiYgaXRlcmF0b3IpCiB7CiAgICAgVUJyZWFrSXRlcmF0b3IqIHVicmtJdGVyID0g
aXRlcmF0b3I7CiAgICAgQVNTRVJUKHVicmtJdGVyKTsKKyAgICAvLyBGSVhNRTogVXNlIFJBSUkg
dG8gZG8gdGhpcyBpbnN0ZWFkLgogICAgIHVicmtfY2xvc2UodWJya0l0ZXIpOwogICAgIGl0ZXJh
dG9yID0gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJy
ZWFrSXRlcmF0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaApp
bmRleCBiY2Y0NGMwN2E0ZWM5MWI1MTQ2N2MyNGY0ZmU3MTZlZDM0ZGJjYzE1Li42ZjhhMWVmZjc0
OTliY2JlOWE4ODAyN2MwMzMxN2ViNjJjNGIyNjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0
QnJlYWtJdGVyYXRvci5oCkBAIC0yOSw2ICsyOSwzMCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogZW51
bSBjbGFzcyBMaW5lQnJlYWtJdGVyYXRvck1vZGUgeyBEZWZhdWx0LCBMb29zZSwgTm9ybWFsLCBT
dHJpY3QgfTsKIAorZW51bSBjbGFzcyBCcmVha2luZ1J1bGVTZXQgeworICAgIEN1cnNvck1vdmVt
ZW50LAorICAgIFVBWDE0Q0pLLAorICAgIFVBWDE0Tm9uQ0pLLAorICAgIFVBWDE0TG9vc2VDSkss
CisgICAgVUFYMTRMb29zZU5vbkNKSywKKyAgICBVQVgxNE5vcm1hbENKSywKKyAgICBVQVgxNE5v
cm1hbE5vbkNKSywKKyAgICBVQVgxNFN0cmljdENKSywKKyAgICBVQVgxNFN0cmljdE5vbkNKSwor
fTsKKworZXh0ZXJuIGNvbnN0IGNoYXIqIGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlczsKK2V4
dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVsZXM7CitleHRlcm4g
Y29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKS1J1bGVzOworZXh0ZXJuIGNv
bnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzOworZXh0ZXJuIGNv
bnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKS1J1bGVzOworZXh0ZXJu
IGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSktSdWxlczsKK2V4dGVy
biBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVsZXM7Citl
eHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKS1J1bGVzOwor
ZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktSdWxl
czsKKworVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1
bGVTZXQpOworCiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9y
IGluIG1vc3QgY2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRvCiAvLyBwbGF0Zm9ybSBVSSBjb252ZW50
aW9ucy4gT25lIG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0aGlzIGNhbiBiZSBkaWZmZXJlbnQKIC8v
IGZyb20gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlzIFRoYWkgcHJlcGVuZCBjaGFyYWN0ZXJz
LCBzZWUgYnVnIDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSBiL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFj
L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KaW5kZXggYmVmNWRhYTY0Mjg4ODIx
ZTIwZjI2MjhjNjg1NWVlOGU4OGEzODkyYy4uYTRmMDAzMmFjNjM3YWVhZTA3YzNlOTEyNmRjMjMw
MGVhZjAwODdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9U
ZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCkBAIC0yMSwxMiArMjEsMTgwIEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElD
VS5oIgogCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKKyNpbmNsdWRlIDx1bmljb2Rl
L3VicmsuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKKyNkZWZpbmUgVVNFX1BS
RUNPTVBJTEVEX0JSRUFLSU5HX1JVTEVTIChVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiAoKFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDAp
IHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDExMDAwMCkpKQorCisjaWYgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JVTEVTCisjaW5jbHVk
ZSA8dW5pY29kZS91ZGF0YS5oPgorI2VuZGlmCisKK0BpbnRlcmZhY2UgV1RGQnVuZGxlRmluZGVy
IDogTlNPYmplY3QKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdURkJ1bmRsZUZpbmRlcgorQGVu
ZAorCiBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0IGludCBtYXhMb2NhbGVTdHJpbmdM
ZW5ndGggPSAzMjsKIAorI2lmIFVTRV9QUkVDT01QSUxFRF9CUkVBS0lOR19SVUxFUworc3RhdGlj
IFVEYXRhTWVtb3J5KiBicmVha0l0ZXJhdG9yUmVzb3VyY2UoTlNTdHJpbmcgKmZpbGVOYW1lQmFz
ZSkKK3sKKyAgICBOU0J1bmRsZSAqYnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltX
VEZCdW5kbGVGaW5kZXIgY2xhc3NdXTsKKyAgICBOU1N0cmluZyAqcGF0aCA9IFtidW5kbGUgcGF0
aEZvclJlc291cmNlOmZpbGVOYW1lQmFzZSBvZlR5cGU6QCJicmsiIGluRGlyZWN0b3J5OkAiQnJl
YWtpbmdSdWxlcyJdOworICAgIGlmICghcGF0aCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBOU1N0cmluZyAqZGlyZWN0b3J5ID0gW3BhdGggc3RyaW5nQnlEZWxldGluZ0xhc3RQYXRo
Q29tcG9uZW50XTsKKyAgICBpZiAoIWRpcmVjdG9yeSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9f
RVJST1I7CisgICAgdWRhdGFfc2V0RmlsZUFjY2VzcyhVREFUQV9GSUxFU19GSVJTVCwgJmVycm9y
Q29kZSk7CisgICAgaWYgKFVfRkFJTFVSRShlcnJvckNvZGUpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyNlbmRpZgorCisgICAgVUVycm9yQ29kZSB1RGF0YUVycm9yQ29kZSA9IFVfWkVST19F
UlJPUjsKKyAgICBVRGF0YU1lbW9yeSogcmVzdWx0ID0gdWRhdGFfb3BlbihbZGlyZWN0b3J5IFVU
RjhTdHJpbmddLCAiYnJrIiwgW2ZpbGVOYW1lQmFzZSBVVEY4U3RyaW5nXSwgJnVEYXRhRXJyb3JD
b2RlKTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICB1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEQVRB
X0RFRkFVTFRfQUNDRVNTLCAmZXJyb3JDb2RlKTsKKyAgICBpZiAoVV9GQUlMVVJFKGVycm9yQ29k
ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCisKKyAgICBpZiAoVV9GQUlMVVJF
KHVEYXRhRXJyb3JDb2RlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGJyZWFrSXRlcmF0b3JGcm9tUmVz
b3VyY2VEYXRhKFVEYXRhTWVtb3J5KiBkYXRhKQoreworICAgIGlmICghZGF0YSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJP
UjsKKyAgICBVQnJlYWtJdGVyYXRvciogcmVzdWx0ID0gdWJya19vcGVuQmluYXJ5UnVsZXMoc3Rh
dGljX2Nhc3Q8Y29uc3QgdWludDhfdCAqPih1ZGF0YV9nZXRNZW1vcnkoZGF0YSkpLCBzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSwgbnVsbHB0ciwgMCwgJmVycm9yQ29kZSk7CisK
KyAgICBpZiAoVV9GQUlMVVJFKGVycm9yQ29kZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogY3Vyc29yTW92
ZW1lbnRJdGVyYXRvcigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5
Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkN1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3Iq
PiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0
KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVy
YXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShA
IkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEo
cmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitz
dGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksoKQorewor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVh
a0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLIikpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRl
cmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBp
dGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1l
bW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0
ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VE
YXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJy
ZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSygpCit7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRl
cmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSyIpKTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0
ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4g
aXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRh
TWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVh
a0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3Vy
Y2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMg
VUJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksoKQorewor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVh
a0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLIikp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJy
ZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJl
dHVybiBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBsaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
VURhdGFNZW1vcnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJlc291cmNlKEAiTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShy
ZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0
YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSygp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRh
KGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25D
SksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0
b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7Cisg
ICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGNs
b25lSXRlcmF0b3IoVUJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQoreworICAgIGlmICghaXRlcmF0
b3IpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0g
VV9aRVJPX0VSUk9SOworICAgIGlmIChhdXRvKiByZXN1bHQgPSB1YnJrX3NhZmVDbG9uZShpdGVy
YXRvciwgbnVsbHB0ciwgMCwgJmVycm9yQ29kZSkpIHsKKyAgICAgICAgaWYgKFVfU1VDQ0VTUyhl
cnJvckNvZGUpKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisjZW5kaWYKKworVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9y
UnVsZVNldChCcmVha2luZ1J1bGVTZXQgcnVsZVNldCkKK3sKKyNpZiBVU0VfUFJFQ09NUElMRURf
QlJFQUtJTkdfUlVMRVMKKyAgICBzd2l0Y2ggKHJ1bGVTZXQpIHsKKyAgICBjYXNlIEJyZWFraW5n
UnVsZVNldDo6Q3Vyc29yTW92ZW1lbnQ6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGN1
cnNvck1vdmVtZW50SXRlcmF0b3IoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0
Q0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJdGVyYXRvclVBWDE0
Q0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzoKKyAgICAgICAg
cmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSygpKTsKKyAg
ICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZUNKSzoKKyAgICAgICAgcmV0dXJuIGNs
b25lSXRlcmF0b3IobGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLKCkpOworICAgIGNhc2Ug
QnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9uQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJ
dGVyYXRvcihsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksoKSk7CisgICAgY2FzZSBC
cmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVy
YXRvcihsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKCkpOworICAgIGNhc2UgQnJlYWtp
bmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0
b3IobGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSygpKTsKKyAgICBjYXNlIEJyZWFr
aW5nUnVsZVNldDo6VUFYMTRTdHJpY3RDSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9y
KGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1
bGVTZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihs
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLKCkpOworICAgIH0KKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKHJ1bGVTZXQpOworICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisK
IHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVm
ZXJlbmNlKCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFk
b3B0Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlWYWx1ZShDRlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUi
KSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFr
ZS9XZWJLaXRGUy5jbWFrZQppbmRleCA1MTMwZmZjYmNjN2M5Y2U3NTE0YWY0ZDU1M2JkOGE0ZjA1
MDE0NTZkLi45ZjgzMzBhZjdmZTM2M2Q4MDEzZWVlMzRiZWRkN2ZjMTVjYjc5MWVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktp
dEZTLmNtYWtlCkBAIC0yNyw2ICsyNyw3IEBAIGlmIChOT1QgVE9PTFNfRElSKQogZW5kaWYgKCkK
IAogc2V0KERFUklWRURfU09VUkNFU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNv
dXJjZXMiKQorc2V0KERFUklWRURfU09VUkNFU19XVEZfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9
L0Rlcml2ZWRTb3VyY2VzL1dURiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JF
X0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZSIp
CiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJLSVRMRUdBQ1lf
RElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIpCkBA
IC0zNSw2ICszNiw4IEBAIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVIgIiR7Q01BS0Vf
QklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0MiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VT
X1dFQklOU1BFQ1RPUlVJX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9X
ZWJJbnNwZWN0b3JVSSIpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNf
SkFWQVNDUklQVENPUkVfRElSfSkKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJD
RVNfV1RGX0RJUn0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9E
SVJ9L0JyZWFraW5nUnVsZXMpCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJ
Un0vU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkg
JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfSkKZGlmZiAtLWdpdCBhL0NoYW5n
ZUxvZyBiL0NoYW5nZUxvZwppbmRleCBiNjUyMTViYzlkYTY3Y2MwMTgzMTg2NGZhMTBkODQxOTQ4
MDQ1MzcyLi44Zjk4NGYzMzdhMTIwYTc1YTk0ZWU4MmFmMzU2YzlkYjI1YjM5MGI0IDEwMDY0NAot
LS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDIt
MDkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBD
b21waWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBy
dW4gdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYwNjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2U6CisKIDIwMTctMDItMDcgIE9saXZpZXIgQmxp
biAgPG9saXZpZXIuYmxpbkBzb2Z0YXRob21lLmNvbT4KIAogICAgICAgICBbR1RLXVtFZmxdIERv
IG5vdCByZXF1aXJlIExpYlhzbHQgaWYgWFNMVCBpcyBkaXNhYmxlZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301096</attachid>
            <date>2017-02-09 16:03:10 -0800</date>
            <delta_ts>2017-02-09 16:08:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20170209160043.patch</filename>
            <type>text/plain</type>
            <size>123881</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExODQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NDNlNDJhZDA3YTMwMzc5MDhkNTRmNDc1YjAxN2EwODQ0MmIzN2U4Li42MjA1MDQ5ZjgzYWJhZjJk
NmY5MzdmMGJjZTZmMTFjYjQ5YTJmMDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxNy0wMi0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbmNsdWRlIHRoZSBieXRlY29kZSBmaWxlcyBpbnNpZGUgdGhl
IEphdmFTY3JpcHRDb3JlIGJ1bmRsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTctMDItMDcgIE1hcmsgTGFtICA8bWFyay5sYW1A
YXBwbGUuY29tPgogCiAgICAgICAgIFNpZ2lsbENyYXNoQW5hbHl6ZXI6OmFuYWx5emUoKSBzaG91
bGQgdXNlIGEgZG8td2hpbGUgbG9vcCBpbnN0ZWFkIG9mIGEgbGFtYmRhLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjYjNmMTgx
YzlkNGNjZTBjNDMzOWEzNDM2Yjg3YzRlYTQ5OTM0OTdiLi45ZWNmODBhMjg3Y2JkODI2ZDU1Mzk0
YTU0NmQ5MmY0YTQ3NzExMzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDE3LTAyLTA5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJ
Q1UgYnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBtYWNP
UyBhbmQgaU9TIFNES3MgaW5jbHVkZSBhIHRvb2wsIGljdWdlbmJyaywgd2hpY2ggY29tcGlsZXMg
SUNVIGJyayBicmVha2luZworICAgICAgICBydWxlcyBpbnRvIGJ5dGVjb2RlLiBQcmV2aW91c2x5
LCB0aGlzIGNvbXBpbGF0aW9uIHdhcyBkb25lIGF0IHJ1bnRpbWUgaW5zaWRlIHRoZSBJQ1UKKyAg
ICAgICAgdWJya19vcGVuUnVsZXMoKSBmdW5jdGlvbi4gTW92aW5nIHRoaXMgY29tcGlsYXRpb24g
c3RlcCB0byBjb21waWxlIHRpbWUgcmF0aGVyIHRoYW4KKyAgICAgICAgYnVpbGQgdGltZSBjYXVz
ZXMgYSBwZXJmb3JtYW5jZSBib29zdC4KKworICAgICAgICBQcmV2aW91c2x5LCB0aGUgc291cmNl
IGZvciB0aGUgYnJlYWtpbmcgcnVsZXMgd2FzIGFzc2VtYmxlZCBieSBjb25jYXRlbmF0aW5nIEMg
c3RyaW5ncworICAgICAgICBhdCBydW50aW1lLiBOb3csIHRoZSBzb3VyY2UgaXMgY29udGFpbmVk
IHdpdGhpbiBhIGZldyB0ZXh0IGZpbGVzIGluc2lkZQorICAgICAgICB3dGYvdGV4dC9CcmVha2lu
Z1J1bGVzLiBBIGJ1aWxkIHN0ZXAgKHVzaW5nIGEgTWFrZWZpbGUpIHdpbGwgZ2VuZXJhdGUgc291
cmNlIGNvZGUKKyAgICAgICAgY29udGFpbmluZyB0aGVzZSBzdHJpbmdzLCBhbmQgV1RGIHdpbGwg
aW5jbHVkZSB0aGVzZSBzb3VyY2UgZmlsZXMgaW4gdGhlIHNhbWUgd2F5IGFueQorICAgICAgICBv
ZiBvdXIgcHJvamVjdHMgdXNlIGdlbmVyYXRlZCBzb3VyY2VzLiBBZGRpdGlvbmFsbHksIG9uIE9T
ZXMgd2hpY2ggc3VwcG9ydCBpdCwgdGhlc2UKKyAgICAgICAgc3RyaW5ncyBnZXQgY29tcGlsZWQg
ZGlyZWN0bHkgaW50byBJQ1UgYnl0ZWNvZGUsIGFuZCB0aGVuIGluY2x1ZGVkIGluIHRoZSBmcmFt
ZXdvcmsKKyAgICAgICAgYnVuZGxlLiBCZWNhdXNlIFdURiBnZXRzIHN0YXRpY2FsbHkgbGlua2Vk
IGludG8gSmF2YVNjcmlwdENvcmUsIHRoaXMgaXMgdGhlIGJ1bmRsZQorICAgICAgICB3aGljaCBp
bmNsdWRlcyB0aGUgYnl0ZWNvZGUgZmlsZXMuCisKKyAgICAgICAgQXQgcnVudGltZSwgd2UgZmly
c3QgY2hlY2sgaWYgd2UgaGF2ZSBhIGZpbGUgaW4gb3VyIGJ1bmRsZSBvZiB0aGUgYXBwcm9wcmlh
dGUgbmFtZSwKKyAgICAgICAgYW5kIHRoZW4gc2VlIGlmIElDVSBjYW4gb3BlbiBpdCB1c2luZyBp
dHMgdWJya19vcGVuQmluYXJ5UnVsZXMoKSBpbnRlcmZhY2UgKHdoaWNoCisgICAgICAgIGluY2x1
ZGVzIGEgdmVyc2lvbiBjaGVjaykuIElmIGFueSBvZiB0aGVzZSBjaGVja3MgZmFpbCwgb3IgaWYg
d2UncmUgb24gYSBwb3J0IHdoaWNoCisgICAgICAgIGRvZXNuJ3QgaGF2ZSB0aGUgbm90aW9uIG9m
IGJ1bmRsZXMsIHdlIHdpbGwgdXNlIHRoZSBDIHN0cmluZ3MgZ2VuZXJhdGVkIGFib3ZlLCBhbmQK
KyAgICAgICAgcGFzcyB0aGVtIHRvIHVicmtfb3BlblJ1bGVzKCkgdGhlIHNhbWUgd2F5IHdlIHdl
cmUgZG9pbmcgYmVmb3JlIHRoaXMgcGF0Y2guCisKKyAgICAgICAgVGhlIHVicmtfb3BlbkJpbmFy
eVJ1bGVzKCkgaW50ZXJmYWNlIGluIElDVSByZXF1aXJlcyBhZGRpbmcgc29tZSBtb3JlIG9mIElD
VSdzIHB1YmxpYworICAgICAgICBoZWFkZXJzIGludG8gV2ViS2l0LgorCisgICAgICAgICogU2Ny
aXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHk6IEFkZGVkLgorICAgICAgICAobWFp
bik6IE91dHB1dCBDKysgZmlsZXMgcmVwcmVzZW50aW5nIHRoZSBicmVha2luZyBydWxlcyBzdHJp
bmdzLgorICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgYSBuZXcg
RGVyaXZlZCBTb3VyY2VzIHRhcmdldCB3aGljaCB1c2VzIGEKKyAgICAgICAgRGVyaXZlZFNvdXJj
ZXMubWFrZSBNYWtlZmlsZSwgdGhlIHNhbWUgd2F5IFdlYktpdDIsIFdlYkNvcmUsIGFuZCBKYXZh
U2NyaXB0Q29yZSB3cm9rLgorICAgICAgICBBbHNvLCBhZGQgdGhlIHJ1bGVzIHRleHQgZmlsZXMg
dG8gdGhlIHByb2plY3QuIFRoZW4sIG1ha2UgV1RGIGRlcGVuZCBvbiB0aGlzIG5ldworICAgICAg
ICB0YXJnZXQuCisgICAgICAgICogaWN1L3VuaWNvZGUvdWJyay5oOiBBZGQgZGVjbGFyYXRpb24g
Zm9yIHVicmtfb3BlbkJpbmFyeVJ1bGVzKCkuCisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0
OiBBZGQgYnVpbGQgc3RlcHMgZm9yIG90aGVyIHBvcnRzIHRvIGdlbmVyYXRlIHRoZSBicmVha2lu
ZworICAgICAgICBydWxlcyBzdHJpbmdzIHNvdXJjZSBmaWxlcy4KKyAgICAgICAgKiB3dGYvRGVy
aXZlZFNvdXJjZXMubWFrZTogQWRkZWQuIFRoaXMgaXMgdGhlIHBsYWNlIHdoZXJlIGljdWdlbmJy
ayBpcyBhY3R1YWxseSAKKyAgICAgICAgaW52b2tlZC4gSXQgYWxzbyB0cmlnZ2VycyB0aGUgc2Ny
aXB0IChHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkpIHdoaWNoIGdlbmVyYXRlcworICAg
ICAgICB0aGUgQysrIGNvZGUgZm9yIHRoZSBydWxlcyBzdHJpbmdzLgorICAgICAgICAqIHd0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dDogQWRkZWQu
CisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxv
Z3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclByb2xvZ3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dDogQWRkZWQuCisgICAgICAgICog
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZU5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQ6IEFkZGVk
LgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0
ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KTogVXNl
ZCBieSBvdGhlciBwb3J0cy4gUmV0dXJuaW5nIG51bGxwdHIgbWVhbnMgd2UgY2FuJ3QKKyAgICAg
ICAgdXNlIHByZWNvbXBpbGVkIHJ1bGVzLgorICAgICAgICAoV1RGOjpjcmVhdGVDdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKTogVXNlZCBpbiBwbGFjZSBvZiB0aGUgaGFyZGNvZGVk
IHJ1bGVzCisgICAgICAgIGluIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoKS4KKyAgICAgICAgKFdU
Rjo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6IFJlbW92ZSBoYXJkY29kZWQgcnVsZXMuCisgICAg
ICAgIChXVEY6Om1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKTogVXBkYXRlIHRvIHVzZSB0aGUg
bmV3IGdlbmVyYXRlZCBDKysgc3RyaW5ncy4KKyAgICAgICAgKFdURjo6b3BlbkxpbmVCcmVha0l0
ZXJhdG9yKTogVGhlIGxvZ2ljIG9mIHRyeWluZyB0byB1c2UgYSBwcmVjb21waWxlZCBieXRlY29k
ZSwgYW5kIGZhbGxpbmcKKyAgICAgICAgYmFjayB0byBDKysgc3RyaW5ncyBpZiBpdCBpc24ndCBw
b3NzaWJsZS4KKyAgICAgICAgKFdURjo6Y2xvc2VMaW5lQnJlYWtJdGVyYXRvcik6CisgICAgICAg
ICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDogSGVhZGVyIGZvciBnZW5lcmF0ZWQgQysr
IGNvZGUuCisgICAgICAgICogd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJ
Q1VNYWMubW06CisgICAgICAgIChXVEY6OmJyZWFrSXRlcmF0b3JSZXNvdXJjZSk6IFRoZSBhY3R1
YWwgbG9naWMgZm9yIGxvb2tpbmcgaW5zaWRlIHRoZSBidW5kbGUgZm9yIHRoZQorICAgICAgICBw
cmVjb21waWxlZCBieXRlY29kZS4KKyAgICAgICAgKFdURjo6YnJlYWtJdGVyYXRvckZyb21SZXNv
dXJjZURhdGEpOiBEaXR0bworICAgICAgICAoV1RGOjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKTog
Q2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAgICAgICAoV1RGOjpsaW5lQnJl
YWtJdGVyYXRvclVBWDE0Q0pLKTogRGl0dG8KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSyk6IERpdHRvCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRMb29zZUNKSyk6IERpdHRvCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZU5vbkNKSyk6IERpdHRvCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b3JtYWxDSkspOiBEaXR0bworICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsTm9uQ0pLKTogRGl0dG8KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdENKSyk6IERpdHRvCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSkspOiBEaXR0bworICAgICAgICAoV1RGOjpjbG9uZUl0ZXJhdG9yKToKKyAgICAgICAg
KFdURjo6Y3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KTogQ2FsbHMgdGhlIGFib3ZlIHN0YXRpYyBm
dW5jdGlvbnMuCisKIDIwMTctMDItMDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgUGxheWJhY2sgc3RhbGxzIHdoZW4gYSBTb3VyY2VCdWZmZXIgYXBwZW5kIGNh
dXNlcyBmcmFtZSBldmljdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0ZGI2
NjcyOWE1NTdjMDNjNWNlZTgwOGI2NzExNjNiYjZhZTE5NWU3Li44OGExYjZkMDJjYTE1ZWE5YTBl
OGNjYjIzZmI5YmEwMWZjMjBiOTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTIyOCw2ICsxMjI4LDcgQEAKIAkJMUEyOEQ0QTgxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3RyaW5n
UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUEyOEQ0QTcxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVmUHJpdmF0ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBODgyNkIxNjUz
QzRDRDFBNjQyOTgzQiAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5VGFibGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEI0N0YyMzQzNjZDNEI3MkFDODUy
QTdFIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgKi87IH07CiAJCTFBQ0Y3Mzc3MTcx
Q0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBQ0Y3Mzc2MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCAqLzsg
fTsKKwkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRDE4NzhGMUQ1NTk2MTIw
MENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovOyB9OwogCQkyNjAwQjVBNjE1MkJBQUE3MDA5MUVF
NUYgLyogSlNTdHJpbmdKb2luZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVy
LmNwcCAqLzsgfTsKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVB
NTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLzsgfTsKIAkJMjYyRDg1QjYx
QzBENjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjJEODVCNDFDMEQ2NTBG
MDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLzsgfTsKQEAgLTM2
NTcsNiArMzY1OCw3IEBACiAJCTFDOTA1MTQ1MEJBOUU4QTcwMDgxRTlEMCAvKiBCYXNlLnhjY29u
ZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRBMEQzMkMzOUEwMDQxQkNGRiAvKiBKYXZh
U2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEIwRDMyQzM5QTAwNDFCQ0ZGIC8q
IEphdmFTY3JpcHRDb3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFT
Y3JpcHRDb3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhGMUQ1NTk2
MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gZm9sZGVyOyBuYW1lID0gQnJlYWtpbmdSdWxlczsgcGF0aCA9
IC4uL1dURi9CcmVha2luZ1J1bGVzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjAw
QjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2lu
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYyRDg1QjQxQzBENjUwRjAwNkFDQjYxIC8q
IEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBwYXRoID0gYjMv
YWlyL0FpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC02MDEzLDYgKzYwMTUsNyBAQAogCQk2NTBGREY4RDA5RDBGQ0E3MDA3NjlFNTQg
LyogRGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywK
IAkJCQkwRjYxODMzMjFDNDVGMzVDMDA3MjQ1MEIgLyogQWlyT3Bjb2RlLmggKi8sCiAJCQkJMEY2
MTgzMzQxQzQ1RjNCNjAwNzI0NTBCIC8qIEFpck9wY29kZUdlbmVyYXRlZC5oICovLAogCQkJCTBG
NjE4MzM1MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVVdGlscy5oICovLApAQCAtOTQyMCw2
ICs5NDIzLDcgQEAKIAkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJMUNEMTg3OTAxRDU1OTYx
MjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJCUE1M0YxQUMw
MThDOTBGOEYwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBiL1NvdXJj
ZS9XVEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWQ2NGMwZDVlZDBkODkwZGVmNzlhZjQzNGQxZWE2YjBlM2RiZDhkMAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKQEAg
LTAsMCArMSwxMDkgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5cworaW1wb3J0IHJlCitpbXBvcnQgYXJn
cGFyc2UKKworaGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisKKworZGVmIG1haW4oYXJndj1Ob25l
KToKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0nR2Vu
ZXJhdGUgYnJlYWtpbmcgcnVsZSBzb3VyY2Ugc3RyaW5ncyBpbiBDKysgc291cmNlIGZvbXJhdC4n
KQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0taW5jbHVkZURlZmluZXMnLCBhY3Rpb249InN0
b3JlX3RydWUiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ3N5bWJvbE5hbWUnKQorICAgIHBh
cnNlci5hZGRfYXJndW1lbnQoJ2ZpbGVOYW1lcycsIG5hcmdzPScrJykKKworICAgIGFyZ3MgPSBw
YXJzZXIucGFyc2VfYXJncygpCisKKyAgICBpbmNsdWRlRGVmaW5lcyA9IGFyZ3MuaW5jbHVkZURl
ZmluZXMKKyAgICBzeW1ib2xOYW1lID0gYXJncy5zeW1ib2xOYW1lWzBdLmxvd2VyKCkgKyBhcmdz
LnN5bWJvbE5hbWVbMTpdCisgICAgZmlsZU5hbWVzID0gYXJncy5maWxlTmFtZXMKKworICAgIHBy
aW50KGhlYWRlcikKKyAgICBwcmludCgiIiIKKy8vIERPIE5PVCBFRElUIFRISVMgRklMRS4gSXQg
aXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIHNjcmlwdAorLy8gJXMKKworI2luY2x1
ZGUgXCJjb25maWcuaFwiCisjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+CisiIiIgJSAoc3lz
LmFyZ3ZbMF0pKQorICAgIGlmIGluY2x1ZGVEZWZpbmVzOgorICAgICAgICBwcmludCgiIiIjZGVm
aW5lIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkpCisjZGVm
aW5lIEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMgKChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+
PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkpCisiIiIpCisgICAgcHJpbnQo
IiIibmFtZXNwYWNlIFdURiB7CisKK2NvbnN0IGNoYXIqICVzID0gIiIiICUgKHN5bWJvbE5hbWUp
KQorCisgICAgZm9yIGZpbGVOYW1lIGluIGZpbGVOYW1lczoKKyAgICAgICAgZm9yIGwgaW4gb3Bl
bihmaWxlTmFtZSwgJ3InKToKKyAgICAgICAgICAgIGxpbmUgPSBsLnJzdHJpcCgpCisgICAgICAg
ICAgICBpZiByZS5tYXRjaCgiXlxzKiQiLCBsaW5lKToKKyAgICAgICAgICAgICAgICBwYXNzCisg
ICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiIyAiKToKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICAgICBlbGlmIGxpbmUgPT0gIiMiOgorICAgICAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjIik6CisgICAgICAgICAgICAgICAg
cHJpbnQobGluZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWF0Y2ggPSBy
ZS5tYXRjaCgiXiguKik7KCAjIC4qKT8kIiwgbGluZSkKKyAgICAgICAgICAgICAgICBpZiBtYXRj
aDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gIlwiIiArIG1hdGNoLmdyb3VwKDEpLnJl
cGxhY2UoIlxcIiwgIlxcXFwiKSArICI7XCIiCisgICAgICAgICAgICAgICAgICAgIGlmIG1hdGNo
Lmdyb3VwKDIpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICIgLy8gIiArIG1h
dGNoLmdyb3VwKDIpWzM6XQorICAgICAgICAgICAgICAgICAgICBwcmludChyZXN1bHQpCisgICAg
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZXhpdCgxKQorCisgICAgcHJp
bnQoIjsiKQorICAgIHByaW50KCJ9IikKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAg
ICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGU0MmUwYTVlOTkzZGQzYzgxOTI5MjMwZDUxNjI3NmI5ZjAxNWMwMzku
LjY0OTZmMTViMGY4Y2YzZDk4MTEzYmFiMDlhY2U5NGIyOGYwMDkwMjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNyw2ICs3LDE3IEBACiAJb2JqZWN0cyA9
IHsKIAogLyogQmVnaW4gUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KKwkJMUNEMTg3ODEx
RDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEFn
Z3JlZ2F0ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxQ0QxODc4MzFENTU2
OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVU
YXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQkxQ0Qx
ODc4MjFENTU2OTVDMDBDQzdERUMgLyogR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzICovLAorCQkJ
KTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNl
cyI7CisJCQlwcm9kdWN0TmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQl9OwogCQk2NUFGQTE2
RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEFnZ3JlZ2F0ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2NUFGQTI4ODE2
MzBCOTc3MDAzRDcyM0MgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdh
dGVUYXJnZXQgIkNvcHkgV1RGIEhlYWRlcnMiICovOwpAQCAtODQsNyArOTUsNiBAQAogCQkxNDQ3
QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDNTE4RkNFNTc3MDBC
M0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CiAJCTE0NDdBRUM3MThGQ0U1ODAw
MEIzRDdGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVEMjQ3QjYyMTQ2ODlCODYwMEU3OEI3NiAvKiBsaWJXVEYuYSAqLzsgfTsK
IAkJMTQ0N0FFQzkxOEZDRTU5NDAwQjNEN0ZGIC8qIG1ibWFsbG9jLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUM4MThGQ0U1OTQwMEIzRDdG
RiAvKiBtYm1hbGxvYy5jcHAgKi87IH07Ci0JCTE0NDdBRUNCMThGQ0U1QjkwMEIzRDdGRiAvKiBs
aWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi87
IH07CiAJCTE0Njk0MTkyMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTkwMTZFQUFGNkQw
MDI0RTE0NiAvKiBSdW5Mb29wVGltZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgp
OyB9OyB9OwogCQkxNDY5NDE5MzE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyQ0YuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2OTQxOTEx
NkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCAqLzsgfTsKIAkJMTQ2OTQxOTYx
NkVBQUZGODAwMjRFMTQ2IC8qIFNjaGVkdWxlUGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2OTQxOTQxNkVBQUZGODAwMjRFMTQ2IC8qIFNjaGVk
dWxlUGFpci5oICovOyB9OwpAQCAtMzQwLDYgKzM1MCwxNiBAQAogCQlBREYyQ0U2NjFFMzlGMTA2
MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBREYyQ0U2NDFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9v
dHByaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQURGMkNFNjcxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREYyQ0U2NTFFMzlGMTA2
MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmNwcCAqLzsgfTsKIAkJQjM4RkQ3QkQxNjg5NTNF
ODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCMzhGRDdCQzE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVyZURl
ZmluZXMuaCAqLzsgfTsKKwkJQzJCQTU0M0UxRDU4NkFGNDAwMEEzMzMyIC8qIGxpYmljdWNvcmUu
ZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
NDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLzsgfTsKKwkJQzJD
QTM3RTkxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFMDFE
NTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLzsgfTsK
KwkJQzJDQTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3
RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwICovOyB9
OworCQlDMkNBMzdFQjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VD
SksuY3BwICovOyB9OworCQlDMkNBMzdFQzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovOyB9OworCQlDMkNBMzdFRDFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNDFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VFMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U1MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLzsgfTsKKwkJ
QzJDQTM3RUYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxO
b25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxO
b25DSksuY3BwICovOyB9OworCQlDMkNBMzdGMDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YxMUQ1NUM5NzEwMDQ4NkI5
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLzsgfTsKIAkJQzRG
OEE5MzcxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzRGOEE5MzYxOUM2NUVCNDAwQjJCMTVEIC8qIFN0
b3B3YXRjaC5oICovOyB9OwogCQlDOEIwRTFBMUUwMUE0ODZFQjk1RTBEMTEgLyogSW5kZXhTZXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzdFMUQ3
REJEODRBQzM4RkFFNEQzNCAvKiBJbmRleFNldC5oICovOyB9OwogCQlDOTE2Qjk3NUYwMkY0RjdF
OEI0QUIxMkQgLyogSW5kZXhNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVCNDMzODNBNUQwQjQ2M0M5NDMzRDkzMyAvKiBJbmRleE1hcC5oICovOyB9
OwpAQCAtMzgxLDYgKzQwMSwxMyBAQAogCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA1RDI0N0I2
MTE0Njg5Qjg2MDBFNzhCNzY7CiAJCQlyZW1vdGVJbmZvID0gV1RGOwogCQl9OworCQkxQ0QxODc4
NzFENTU2OTg4MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNh
ID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gNUQyNDdCNTkx
NDY4OUI4NjAwRTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsK
KwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDOworCQkJ
cmVtb3RlSW5mbyA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQl9OwogCQk2NUFGQTI4RDE2MzBCOTlF
MDAzRDcyM0MgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29u
dGFpbmVySXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFsID0gNUQyNDdCNTkxNDY4OUI4NjAw
RTc4Qjc2IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAtNDkyLDYgKzUxOSwxOSBAQAogCQkxQzE4
MUM4RDFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzhFMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4
dFByb3ZpZGVyVVRGMTYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRleHRQ
cm92aWRlclVURjE2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzk1MUQz
MDgwMEEwMEY1RkExNiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dEJyZWFrSXRlcmF0b3JJbnRl
cm5hbElDVU1hYy5tbTsgcGF0aCA9IG1hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQzZCRTBGQTFFMDM0QzlBMDAyMTc2
MTcgLyogR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0g
R2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQ0I0RkI5NDFENTU5QTBEMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
Sy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk1MUQ1NTlBNjkwMEY5RkUz
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUNCNEZCOTYxRDU1OUE5MDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZC
OTcxRDU1OUFBODAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50
eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9u
Q0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTgxRDU1OUFEMjAw
RjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5OTFENTU5QUVGMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFDQjRGQjlBMUQ1NTlCMjMwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNC
NEZCOUIxRDU1OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25D
SksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJp
Y3ROb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5QzFENTU5
QjY3MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQ7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDRDE4NzhBMUQ1NThBRDMwMENDN0RFQyAvKiBEZXJpdmVkU291cmNl
cy5tYWtlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC54bWw7IG5hbWUgPSBEZXJpdmVkU291cmNlcy5tYWtlOyBwYXRoID0gd3RmL0Rlcml2ZWRT
b3VyY2VzLm1ha2U7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHVzZXNUYWJzID0gMTsgfTsKKwkJ
MUNEMTg3OTIxRDU1OThFMTAwQ0M3REVDIC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50
eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OTMxRDU1OTk2NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJh
dG9yUHJvbG9ndWUudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9y
UHJvbG9ndWUudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4ODE1MjUw
MkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUZBNDdDODkxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVRocmVhZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyNjE0N0IwODE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3Ry
aW5nQ29udmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlZ2Vy
VG9TdHJpbmdDb252ZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjQs
NiArNzY0LDE1IEBACiAJCUFERjJDRTY0MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJp
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb3J5Rm9vdHByaW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFERjJDRTY1MUUzOUYxMDYwMDY4ODlEQiAv
KiBNZW1vcnlGb290cHJpbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWVtb3J5Rm9vdHByaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjM4
RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVEZWZpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJD
QTM3RTExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgx
NENKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFMjFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHA7
IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNw
cDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pL
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTQxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHA7IHBh
dGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNTFENTVDOTcxMDA0ODZCOTggLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcDsgcGF0aCA9
IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U2MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwOyBw
YXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHA7
IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFODFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5v
bkNKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0RjhBOTM2MTlDNjVFQjQw
MEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3RvcHdhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FBMTU4NTdE
MDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTWVkaWFUaW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1
NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVRpbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTc2Miw3ICs4MTEsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZp
bGVzID0gKAogCQkJCTE0NDdBRUM2MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1l
d29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTE0NDdBRUNCMThGQ0U1QjkwMEIzRDdGRiAvKiBs
aWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCisJCQkJQzJCQTU0M0UxRDU4NkFGNDAw
MEEzMzMyIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQkxNDQ3QUVD
NzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3b3JrcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTc5OSw2ICs4NDgs
MzIgQEAKIAkJCXBhdGggPSBpY3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owor
CQkxQzZCRTBGOTFFMDM0QzJBMDAyMTc2MTcgLyogU2NyaXB0cyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUM2QkUwRkExRTAzNEM5QTAwMjE3NjE3IC8q
IEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSAqLywKKwkJCSk7CisJCQlwYXRoID0gU2Ny
aXB0czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTFDRDE4NzkxMUQ1NTk4
RTEwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc5MjFENTU5OEUxMDBDQzdERUMgLyogQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAqLywKKwkJCQkxQ0I0RkI5QzFENTU5QjY3MDBGOUZFMzgg
LyogTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgKi8sCisJCQkJMUNEMTg3OTMxRDU1OTk2
NTAwQ0M3REVDIC8qIExpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICovLAorCQkJCTFDQjRG
Qjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dCAqLywK
KwkJCQkxQ0I0RkI5NjFENTU5QTkwMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NzFENTU5QUE4MDBGOUZFMzggLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5NTFENTU5QTY5MDBG
OUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQgKi8sCisJCQkJMUNCNEZC
OTgxRDU1OUFEMjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0
ICovLAorCQkJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QTFENTU5QjIzMDBGOUZFMzggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgKi8sCisJCQkJMUNCNEZCOUIxRDU1
OUIzRTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0ICov
LAorCQkJKTsKKwkJCXBhdGggPSBCcmVha2luZ1J1bGVzOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKIAkJMUZBNDdDODcxNTI1MDJEQTAwNTY4RDFCIC8qIGlvcyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC04MjEsOSArODk2LDEyIEBACiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTVEMjQ3QjZEMTQ2ODlDNDcw
MEU3OEI3NiAvKiBDb25maWd1cmF0aW9ucyAqLywKKwkJCQlDMkNBMzdERjFENTVDOEQ4MDA0ODZC
OTggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTE0MDIyRjNGMThGNUMzRTUwMDdGRjBFQiAv
KiBMaWJyYXJpZXMgKi8sCiAJCQkJNUQyNDdCNjMxNDY4OUI4NjAwRTc4Qjc2IC8qIFByb2R1Y3Rz
ICovLAorCQkJCTFDNkJFMEY5MUUwMzRDMkEwMDIxNzYxNyAvKiBTY3JpcHRzICovLAogCQkJCTVE
MjQ3Qjc2MTQ2ODlENzYwMEU3OEI3NiAvKiBTb3VyY2UgKi8sCisJCQkJMUNEMTg3OEExRDU1OEFE
MzAwQ0M3REVDIC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCiAJCQkJMTQ0N0FFQzUxOEZDRTU3
NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovLAogCQkJCTE0NDdBRUNBMThGQ0U1
QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICovLAogCQkJKTsKQEAgLTExODUsNiArMTI2
Myw3IEBACiAJCUE4QTQ3MzFCMTUxQTgyNUIwMDQxMjNGRiAvKiB0ZXh0ICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0QxODc5MTFENTU5OEUxMDBDQzdE
RUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJCQlBNUJBMTVGNjE4MjQzNTlFMDBBODJFNjkgLyog
Y2YgKi8sCiAJCQkJMUMxODFDODgxRDMwN0FCODAwRjVGQTE2IC8qIGljdSAqLywKIAkJCQlBNUJB
MTVGMTE4MjQzMzlGMDBBODJFNjkgLyogbWFjICovLApAQCAtMTI2Myw2ICsxMzQyLDIzIEBACiAJ
CQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQzJDQTM3
REYxRDU1QzhEODAwNDg2Qjk4IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8q
IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8sCisJCQkJQzJDQTM3RTExRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwICovLAorCQkJCUMyQ0Ez
N0UyMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3Bw
ICovLAorCQkJCUMyQ0EzN0UzMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFNTFENTVDOTcx
MDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgKi8sCisJCQkJ
QzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxO
b25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLywKKwkJCQlDMkNBMzdFODFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5jcHAgKi8sCisJCQkpOwor
CQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQkJcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dU
RjsKKwkJCXNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7CisJCX07CiAJCUNFNDY1MTZD
MTlEQjFGQjQwMDNFQ0EwNSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC0xNjE0LDYgKzE3MTAsNyBAQAogCQkJYnVpbGRSdWxlcyA9ICgKIAkJ
CSk7CiAJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJMUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8q
IFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJNjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8q
IFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFdURjsKQEAgLTE2NDQs
MTIgKzE3NDEsMjcgQEAKIAkJCXRhcmdldHMgPSAoCiAJCQkJNUQyNDdCNjExNDY4OUI4NjAwRTc4
Qjc2IC8qIFdURiAqLywKIAkJCQk2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYg
SGVhZGVycyAqLywKKwkJCQkxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3Vy
Y2VzICovLAogCQkJCTE0NDdBRUJEMThGQ0U1NjkwMEIzRDdGRiAvKiBtYm1hbGxvYyAqLywKIAkJ
CSk7CiAJCX07CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFNo
ZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCisJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RF
QyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNj
cmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmls
ZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkdlbmVy
YXRlIERlcml2ZWQgU291cmNlcyI7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7CisJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4v
c2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9E
ZXJpdmVkU291cmNlcy9XVEZcIlxuY2QgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNv
dXJjZXMvV1RGXCJcblxuL2Jpbi9sbiAtc2ZoIFwiJHtTUkNST09UfVwiIFdURlxuZXhwb3J0IFdU
Rj1cIldURlwiXG5cbmlmIFsgISAtZCBCcmVha2luZ1J1bGVzIF07IHRoZW5cbiAgICBta2RpciBC
cmVha2luZ1J1bGVzXG5maVxuXG5pZiBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09
IFwiMTAuMTBcIiBdIDsgdGhlblxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9
MFxuZWxzZVxuICAgIGV4cG9ydCBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9MVxuZmlcblxuaWYg
WyBcIiRIQVZFX0lOVEVSTkFMX1NES1wiICE9IFwiWUVTXCIgXSB8fCBbIFwiJE1BQ09TWF9ERVBM
T1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTBcIiBdIHx8IFsgXCIkTUFDT1NYX0RFUExPWU1FTlRf
VEFSR0VUXCIgPT0gXCIxMC4xMVwiIF0gfHwgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRc
IiA9PSBcIjEwLjEyXCIgXSB8fCBbIFwiJFNES19WRVJTSU9OX01BSk9SXCIgPT0gXCI5MDAwMFwi
IF0gfHwgWyBcIiRTREtfVkVSU0lPTl9NQUpPUlwiID09IFwiMTAwMDAwXCIgXTsgdGhlblxuICAg
IGV4cG9ydCBIQVZFX0lDVUdFTkJSSz0wXG5lbHNlXG4gICAgZXhwb3J0IEhBVkVfSUNVR0VOQlJL
PTFcbmZpXG5cbmlmIFsgXCIke0FDVElPTn1cIiA9IFwiYnVpbGRcIiAtbyBcIiR7QUNUSU9OfVwi
ID0gXCJpbnN0YWxsXCIgLW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbGhkcnNcIiAtbyBcIiR7
QUNUSU9OfVwiID0gXCJpbnN0YWxsYXBpXCIgXTsgdGhlblxubWFrZSAtLW5vLWJ1aWx0aW4tcnVs
ZXMgLWYgXCJXVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2VcIiAtaiBgL3Vzci9zYmluL3N5c2N0
bCAtbiBody5hY3RpdmVjcHVgIFNES1JPT1Q9XCIke1NES1JPT1R9XCJcbmZpIjsKKwkJfTsKIAkJ
NjVBRkExNzAxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi8gPSB7CiAJCQlp
c2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OwpAQCAtMTcwMiw2ICsxODE0LDcgQEAKIAkJCQlFMTU1NTZGNTE4QTBDQzE4MDA2RjQ4
RkIgLyogQ3J5cHRvZ3JhcGhpY1V0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0
NzQzOTE1MUE4MjVCMDA0MTIzRkYgLyogQ1N0cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OEE0NzM5QzE1MUE4MjVCMDA0MTIzRkYgLyogQ3VycmVudFRpbWUuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzJDQTM3RTkxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzM5RTE1MUE4MjVCMDA0MTIzRkYgLyog
RGF0YUxvZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNBMDE1MUE4MjVCMDA0MTIzRkYg
LyogRGF0ZU1hdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQTIxNTFBODI1QjAwNDEy
M0ZGIC8qIERlY2ltYWxOdW1iZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNzE4LDYgKzE4MzEs
MTQgQEAKIAkJCQkxQTFEOEI5RTE3MzE4Nzk4MDAxNDFEQTQgLyogRnVuY3Rpb25EaXNwYXRjaGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJDQ0Q4OTJBMTVDMDM5MDIwMDI4NTA4MyAvKiBHcmVn
b3JpYW5EYXRlVGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNEODE1MUE4MjVCMDA0
MTIzRkYgLyogSGFzaFRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VBMUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUMxRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlDMkNBMzdFRDFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
bkNKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFRTFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlD
MkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdGMDFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlD
MkNBMzdGMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5v
bkNKSy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUxNjQ2QTFCNkZGQzk2MDA0MDBFN0MgLyog
TG9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjYwRjMyRjFERkNCRDFCMDA0MTZENkMgLyog
TG9ja2VkUHJpbnRTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRTUxNTFBODI1
QjAwNDEyM0ZGIC8qIE1haW5UaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNzkzLDYgKzE5
MTQsMTEgQEAKIAkJCXRhcmdldCA9IDVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NiAvKiBXVEYgKi87
CiAJCQl0YXJnZXRQcm94eSA9IDE0NDdBRUMzMThGQ0U1NzAwMEIzRDdGRiAvKiBQQlhDb250YWlu
ZXJJdGVtUHJveHkgKi87CiAJCX07CisJCTFDRDE4Nzg4MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhU
YXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJ
CXRhcmdldCA9IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi87
CisJCQl0YXJnZXRQcm94eSA9IDFDRDE4Nzg3MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhDb250YWlu
ZXJJdGVtUHJveHkgKi87CisJCX07CiAJCTY1QUZBMjhFMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhU
YXJnZXREZXBlbmRlbmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJ
CXRhcmdldCA9IDY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICov
OwpAQCAtMTgyMiw2ICsxOTQ4LDMwIEBACiAJCQl9OwogCQkJbmFtZSA9IFByb2R1Y3Rpb247CiAJ
CX07CisJCTFDRDE4Nzg0MUQ1NTY5NUMwMENDN0RFQyAvKiBEZWJ1ZyAqLyA9IHsKKwkJCWlzYSA9
IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1
RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOworCQkJ
YnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwor
CQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVD
IC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJh
c2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERl
YnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVD
VF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsKKwkJ
fTsKKwkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rpb24gKi8gPSB7CisJCQlp
c2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNl
ID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsK
KwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUp
IjsKKwkJCX07CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdCNjQxNDY4OUI4
NjAwRTc4Qjc2IC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3
NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CkBAIC0xOTA1LDYgKzIwNTUsMTYgQEAKIAkJ
CWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRDb25maWd1cmF0
aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07CisJCTFDRDE4NzgzMUQ1NTY5NUMwMENDN0RFQyAv
KiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiRGVyaXZl
ZCBTb3VyY2VzIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CisJCQlidWls
ZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTFDRDE4Nzg0MUQ1NTY5NUMwMENDN0RFQyAvKiBEZWJ1
ZyAqLywKKwkJCQkxQ0QxODc4NTFENTU2OTVDMDBDQzdERUMgLyogUmVsZWFzZSAqLywKKwkJCQkx
Q0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJvZHVjdGlvbiAqLywKKwkJCSk7CisJCQlkZWZh
dWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5h
bWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDI0N0I1QzE0Njg5Qjg2MDBFNzhCNzYgLyogQnVp
bGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJXVEYiICovID0gewogCQkJaXNh
ID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaCBiL1NvdXJjZS9XVEYvaWN1L3Vu
aWNvZGUvdWJyay5oCmluZGV4IGU5YzBlZjYyN2I2NzI3OWY4NmU0NjA0NGJmMGYyNTcxMDJlMGM2
Y2QuLjE5NzViOWRiZWQ0NDNhOTI3NDM2ZjBhMjc5MjliYTU4YWY4NzE4MjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWJyay5oCisrKyBiL1NvdXJjZS9XVEYvaWN1L3VuaWNv
ZGUvdWJyay5oCkBAIC0yNDEsNiArMjQxLDMxIEBAIHVicmtfb3BlblJ1bGVzKGNvbnN0IFVDaGFy
ICAgICAqcnVsZXMsCiAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICAgICAgKnN0YXR1cyk7CiAK
IC8qKgorICogT3BlbiBhIG5ldyBVQnJlYWtJdGVyYXRvciBmb3IgbG9jYXRpbmcgdGV4dCBib3Vu
ZGFyaWVzIHVzaW5nIHByZWNvbXBpbGVkIGJpbmFyeSBydWxlcy4KKyAqIE9wZW5pbmcgYSBVQnJl
YWtJdGVyYXRvciB0aGlzIHdheSBpcyBzdWJzdGFudGlhbGx5IGZhc3RlciB0aGFuIHVzaW5nIHVi
cmtfb3BlblJ1bGVzLgorICogQmluYXJ5IHJ1bGVzIG1heSBiZSBvYnRhaW5lZCB1c2luZyB1YnJr
X2dldEJpbmFyeVJ1bGVzLiBUaGUgY29tcGlsZWQgcnVsZXMgYXJlIG5vdAorICogY29tcGF0aWJs
ZSBhY3Jvc3MgZGlmZmVyZW50IG1ham9yIHZlcnNpb25zIG9mIElDVSwgbm9yIGFjcm9zcyBwbGF0
Zm9ybXMgb2YgZGlmZmVyZW50CisgKiBlbmRpYW5uZXNzIG9yIGRpZmZlcmVudCBiYXNlIGNoYXJh
Y3RlciBzZXQgZmFtaWx5IChBU0NJSSB2cyBFQkNESUMpLgorICogQHBhcmFtIGJpbmFyeVJ1bGVz
IEEgc2V0IG9mIGNvbXBpbGVkIGJpbmFyeSBydWxlcyBzcGVjaWZ5aW5nIHRoZSB0ZXh0IGJyZWFr
aW5nCisgKiAgICAgICAgICAgICAgICAgICAgY29udmVudGlvbnMuIE93bmVyc2hpcCBvZiB0aGUg
c3RvcmFnZSBjb250YWluaW5nIHRoZSBjb21waWxlZAorICogICAgICAgICAgICAgICAgICAgIHJ1
bGVzIHJlbWFpbnMgd2l0aCB0aGUgY2FsbGVyIG9mIHRoaXMgZnVuY3Rpb24uIFRoZSBjb21waWxl
ZAorICogICAgICAgICAgICAgICAgICAgIHJ1bGVzIG11c3Qgbm90IGJlIG1vZGlmaWVkIG9yIGRl
bGV0ZWQgZHVyaW5nIHRoZSBsaWZlIG9mIHRoZQorICogICAgICAgICAgICAgICAgICAgIGJyZWFr
IGl0ZXJhdG9yLgorICogQHBhcmFtIHJ1bGVzTGVuZ3RoIFRoZSBsZW5ndGggb2YgYmluYXJ5UnVs
ZXMgaW4gYnl0ZXM7IG11c3QgYmUgPj0gMC4KKyAqIEBwYXJhbSB0ZXh0ICAgICAgICBUaGUgdGV4
dCB0byBiZSBpdGVyYXRlZCBvdmVyLiAgTWF5IGJlIG51bGwsIGluIHdoaWNoIGNhc2UKKyAqICAg
ICAgICAgICAgICAgICAgICB1YnJrX3NldFRleHQoKSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHRl
eHQgdG8gYmUgaXRlcmF0ZWQuCisgKiBAcGFyYW0gdGV4dExlbmd0aCAgVGhlIG51bWJlciBvZiBj
aGFyYWN0ZXJzIGluIHRleHQsIG9yIC0xIGlmIG51bGwtdGVybWluYXRlZC4KKyAqIEBwYXJhbSBz
dGF0dXMgICAgICBQb2ludGVyIHRvIFVFcnJvckNvZGUgdG8gcmVjZWl2ZSBhbnkgZXJyb3JzLgor
ICogQHJldHVybiAgICAgICAgICAgIFVCcmVha0l0ZXJhdG9yIGZvciB0aGUgc3BlY2lmaWVkIHJ1
bGVzLgorICogQHNlZSB1YnJrX2dldEJpbmFyeVJ1bGVzCisgKiBAZHJhZnQgSUNVIDU5CisgKi8K
K1VfRFJBRlQgVUJyZWFrSXRlcmF0b3IqIFVfRVhQT1JUMgordWJya19vcGVuQmluYXJ5UnVsZXMo
Y29uc3QgdWludDhfdCAqYmluYXJ5UnVsZXMsIGludDMyX3QgcnVsZXNMZW5ndGgsCisgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBVQ2hhciAqICB0ZXh0LCBpbnQzMl90IHRleHRMZW5ndGgsCisg
ICAgICAgICAgICAgICAgICAgICBVRXJyb3JDb2RlICogICBzdGF0dXMpOworCisvKioKICAqIFRo
cmVhZCBzYWZlIGNsb25pbmcgb3BlcmF0aW9uCiAgKiBAcGFyYW0gYmkgaXRlcmF0b3IgdG8gYmUg
Y2xvbmVkCiAgKiBAcGFyYW0gc3RhY2tCdWZmZXIgPGVtPkRlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0
eSBhcyBvZiBJQ1UgNTIsIHVzZSBOVUxMLjwvZW0+PGJyPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRl
eCA4MWFmOTEyNzYxMDZiODEyODkxN2RiOGM3OWNmMjU0YjJlNGQ4Y2YwLi4xNTkzNDBmYjhlZDYw
MGMzNjk5NzVhYmM3ODhhNmVlY2U2OTYxM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMzAx
LDYgKzMwMSw0MiBAQCBpZiAoTk9UIFVTRV9TWVNURU1fTUFMTE9DKQogICAgIGxpc3QoQVBQRU5E
IFdURl9MSUJSQVJJRVMgYm1hbGxvYykKIGVuZGlmICgpCiAKK3NldChXVEZfQlJFQUtJTkdfUlVM
RVNfU09VUkNFUworICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Q0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZU5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKKykKKworbWFjcm8oR0VORVJBVEVfQlJF
QUtJTkdfUlVMRVMgX2lucHV0IF9zeW1ib2xOYW1lIF9vdXRwdXQpCisgICAgYWRkX2N1c3RvbV9j
b21tYW5kKAorICAgICAgICBPVVRQVVQgJHtfb3V0cHV0fQorICAgICAgICBNQUlOX0RFUEVOREVO
Q1kgJHtXVEZfRElSfS9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQorICAg
ICAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VSUkVO
VF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1
ZS50eHQKKyAgICAgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dURl9ESVJ9L1Nj
cmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IC0taW5jbHVkZURlZmluZXMgJHtf
c3ltYm9sTmFtZX1SdWxlcyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICR7X2lucHV0fSAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBp
bG9ndWUudHh0ID4gJHtfb3V0cHV0fQorICAgICAgICBWRVJCQVRJTSkKKyAgICBsaXN0KEFQUEVO
RCBXVEZfU09VUkNFUyAke19vdXRwdXR9KQorICAgIEFERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7
X2lucHV0fSAke19vdXRwdXR9KQorZW5kbWFjcm8oKQorCitmb3JlYWNoIChfZmlsZSAke1dURl9C
UkVBS0lOR19SVUxFU19TT1VSQ0VTfSkKKyAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1l
ICR7X2ZpbGV9IE5BTUVfV0UpCisgICAgR0VORVJBVEVfQlJFQUtJTkdfUlVMRVMoJHtDTUFLRV9D
VVJSRU5UX1NPVVJDRV9ESVJ9LyR7X2ZpbGV9ICR7X25hbWV9ICR7REVSSVZFRF9TT1VSQ0VTX1dU
Rl9ESVJ9L0JyZWFraW5nUnVsZXMvJHtfbmFtZX0uY3BwKQorZW5kZm9yZWFjaCAoKQorCithZGRf
Y3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcAorICAgIE1BSU5fREVQ
RU5ERU5DWSAke1dURl9ESVJ9L1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5
CisgICAgREVQRU5EUyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1
bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKyAgICBDT01NQU5EICR7UFlUSE9O
X0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmlu
Z3MucHkgLS1pbmNsdWRlRGVmaW5lcyBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMgJHtDTUFL
RV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMudHh0ID4gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxl
cy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgVkVSQkFUSU0pCitsaXN0KEFQ
UEVORCBXVEZfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVz
L0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHApCitBRERfU09VUkNFX0RFUEVOREVOQ0lF
Uygke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy50eHQgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtp
bmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwKQorCiBsaXN0KEFQUEVORCBX
VEZfU09VUkNFUwogICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAogKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XVEYvd3RmL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ2Zjg5YjQ2NzliZmUxNDcwYWJiNzA1YjBk
MmFlZGVhYmE2OGI5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTAsMCArMSw3NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworQlJFQUtJTkdfUlVMRVNfRklMRVMgPSBcCisgICAgQnJlYWtpbmdSdWxlcy9D
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTRDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZUNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Q0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmJyaworCitCUkVBS0lOR19SVUxFU19ERUZJTklUSU9O
Uz0kKEJSRUFLSU5HX1JVTEVTX0ZJTEVTOi5icms9LmNwcCkKKworaWZlcSAoJChzaGVsbCAkKEND
KSAtc3RkPWdudSsrMTEgLXggYysrIC1FIC1QIC1kTSAkKFNES19GTEFHUykgJChGUkFNRVdPUktf
RkxBR1MpICQoSEVBREVSX0ZMQUdTKSAtSSAkKFdURikgLWluY2x1ZGUgIiQoV1RGKS93dGYvUGxh
dGZvcm0uaCIgL2Rldi9udWxsIHwgZ3JlcCAnIFdURl9QTEFURk9STV9JT1MgJyB8IGN1dCAtZCcg
JyAtZjMpLCAxKQorICAgIFdURl9QTEFURk9STV9JT1MgPSAxCitlbHNlCisgICAgV1RGX1BMQVRG
T1JNX0lPUyA9IDAKK2VuZGlmCisKK2lmZXEgKCQoV1RGX1BMQVRGT1JNX0lPUyksIDEpCisJQURE
SVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQgPSAwCisJSEFWRV9FWFRS
QV9JQ1VfTkFNRURfU0VUUyA9IDAKK2Vsc2UKKwlBRERJVElPTkFMX0VNT0pJX1NVUFBPUlRfRk9S
X0NVUlNPUl9NT1ZFTUVOVCA9ICQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKQorCUhBVkVfRVhU
UkFfSUNVX05BTUVEX1NFVFMgPSAxCitlbmRpZgorCitERVBFTkRFTkNJRVMgPSAkKEJSRUFLSU5H
X1JVTEVTX0RFRklOSVRJT05TKQorCitpZmVxICgkKEhBVkVfSUNVR0VOQlJLKSwgMSkKK0RFUEVO
REVOQ0lFUyArPSAkKEJSRUFLSU5HX1JVTEVTX0ZJTEVTKQorZW5kaWYKKworYWxsIDogJChERVBF
TkRFTkNJRVMpCisKK0JyZWFraW5nUnVsZXMvJS5icmsgOiBCcmVha2luZ1J1bGVzLyUucHAKKwlp
Y3VnZW5icmsgLWMgLXIgJDwgLW8gJEAKKworIyBnZW5icmsgZG9lc24ndCB1bmRlcnN0YW5kIHBy
ZXByb2Nlc3NvciBtYWNyb3MsIHNvIHdlIGhhdmUgdG8gdW5pZmRlZiBtYW51YWxseSBoZXJlLgor
IyBIb3dldmVyLCBzb21lIHBvcnRzIHdoaWNoIGRvbid0IGhhdmUgZ2VuYnJrIGFsc28gZG9uJ3Qg
aGF2ZSB1bmlmZGVmLCBzbyB3ZSBkb24ndCB1bmlmZGVmIHRoZQorIyBydWxlcyB3aGljaCBnZXQg
Y29udmVydGVkIHRvIEMrKyBzb3VyY2UsIGFuZCB3ZSByZWx5IG9uIHRoZSBDKysgY29tcGlsZXIn
cyBwcmVwcm9jZXNzb3IgdG8gaGFuZGxlCisjIHRoZSBkaXJlY3RpdmVzIGluc3RlYWQuCitCcmVh
a2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgOiBCcmVha2luZ1J1bGVz
L0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5wcAorCXB5dGhvbiAkKFdURikvU2NyaXB0cy9H
ZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
ICQ8ID4gJEAKKworQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUuY3BwIDogQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUucHAKKwlweXRob24gJChXVEYpL1NjcmlwdHMvR2Vu
ZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGxpbmVCcmVha0l0ZXJhdG9yJCpSdWxlcyAkPCA+
ICRACisKK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwIDogJChX
VEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4
dAorCS11bmlmZGVmIC1EQURESVRJT05BTF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQpIC1ESEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VU
Uz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1vICRAICQ8CisKK0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3IlLnBwIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3IlLnR4dCAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dAorCS1jYXQgJD8gfCB1bmlmZGVmIC1EQURESVRJT05B
TF9FTU9KSV9TVVBQT1JUPSQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKSAtREhBVkVfRVhUUkFf
SUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZGFiOGI1NzVmOTVjNjI3ZjU4
OTVlMjNjY2Q0YjFhMTEwNWViOGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKQEAgLTAs
MCArMSwxNzYgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBj
aGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRwOi8vc291cmNl
LmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3NvdXJjZS9k
YXRhL2Jya2l0ci8+LgorIyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwg
b25lcyBhcmUgbGlzdGVkIGJlbG93OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rl
cl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3Bh
Y2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOworIyAqIFJlbW92
ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHByZXBlbmQg
Y2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBj
dXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBl
eGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHByZXZl
bnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWth
cmEgdm9pY2VkIG1hcmtzLgorIyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Ig
c3ltYm9scy4KKworJENSICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07
CiskTEYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsKKyRDb250cm9s
ID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9pY2VNYXJrcyA9
IFtcdUZGOUVcdUZGOUZdOyAjIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1h
cmtzCiskRXh0ZW5kICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSAkVm9p
Y2VNYXJrcyAtIFtcdTBFMzAgXHUwRTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07CiskU3BhY2lu
Z01hcmsgPSBbW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRd
OworJEwgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsKKyRWICAgICAg
ID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9IFtccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOworJExWICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rl
cl9CcmVhayA9IExWfV07CiskTFZUICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
TFZUfV07CiskSGluMCAgICA9IFtcdTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRlciBB
LC4uLixIYQorJEhpblYgICAgPSBcdTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZpcmFtYQorJEhp
bjEgICAgPSBbXHUwOTE1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCisk
QmVuMCAgICA9IFtcdTA5ODUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4uLixIYQorJEJl
blYgICAgPSBcdTA5Q0Q7ICMgQmVuZ2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAgPSBbXHUwOTk1
LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9IFtcdTBBMDUt
XHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0gXHUwQTREOyAj
IEd1cm11a2hpIFNpZ24gVmlyYW1hCiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5XTsgIyBHdXJt
dWtoaSBMZXR0ZXIgS2EsLi4uLEhhCiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5XTsgIyBHdWph
cmF0aSBMZXR0ZXIgQSwuLi4sSGEKKyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFyYXRpIFNpZ24g
VmlyYW1hCiskR3VqMSAgICA9IFtcdTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBMZXR0ZXIgS2Es
Li4uLEhhCiskT3JpMCAgICA9IFtcdTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgQSwuLi4s
SGEKKyRPcmlWICAgID0gXHUwQjREOyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3JpMSAgICA9IFtc
dTBCMTUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAgICA9IFtcdTBD
MDUtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9IFx1MEM0RDsg
IyBUZWx1Z3UgU2lnbiBWaXJhbWEKKyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzldOyAjIFRlbHVn
dSBMZXR0ZXIgS2EsLi4uLEhhCiskS2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsgIyBLYW5uYWRh
IExldHRlciBBLC4uLixIYQorJEthblYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBTaWduIFZpcmFt
YQorJEthbjEgICAgPSBbXHUwQzk1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEK
KyRNYWwwICAgID0gW1x1MEQwNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEg
CiskTWFsViAgICA9IFx1MEQ0RDsgIyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRNYWwxICAgID0g
W1x1MEQxNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRSSSAgICAgID0g
W1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNhdG9ycworJFpX
SiAgICAgPSBcdTIwMEQ7ICMgWmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9IFtcdUZFMEZd
OyAjIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgorCisjaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1
Mjc2NCBcVTAwMDFGMzA4IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAwMUYz
Q0MgXFUwMDAxRjNGMyBcVTAwMDFGNDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZF
LVxVMDAwMUY0NkYgXFUwMDAxRjQ3MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4MS1c
VTAwMDFGNDgyIFxVMDAwMUY0ODYtXFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUgXFUw
MDAxRjVFOCBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxVMDAw
MUY2NEUgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXHUyNjk1LVx1MjY5NiBcdTI3
MDggXFUwMDAxRjMzRSBcVTAwMDFGMzczIFxVMDAwMUYzOTMgXFUwMDAxRjNBNCBcVTAwMDFGM0E4
IFxVMDAwMUYzRUIgXFUwMDAxRjNFRCBcVTAwMDFGNEJCLVxVMDAwMUY0QkMgXFUwMDAxRjUyNyBc
VTAwMDFGNTJDIFxVMDAwMUY2ODAgXFUwMDAxRjY5MiBcVTAwMDFGOTI2IFxVMDAwMUY5MzctXFUw
MDAxRjkzOSBcVTAwMDFGOTNDLVxVMDAwMUY5M0VdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUg
aW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjZGOSBcdTI3
MEEtXHUyNzBEIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EgXFUw
MDAxRjNDQiBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAw
MUY0NjYtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFG
NDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5
NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYg
XFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4IFxV
MDAwMUYzQzIgXFUwMDAxRjNDNyBcVTAwMDFGM0NDIFxVMDAwMUY1NzQgXFUwMDAxRjU3QSBcVTAw
MDFGNkNDIFxVMDAwMUY5MTktXFUwMDAxRjkxRSBcVTAwMDFGOTI2IFxVMDAwMUY5MzAgXFUwMDAx
RjkzMy1cVTAwMDFGOTM5IFxVMDAwMUY5M0MtXFUwMDAxRjkzRV0gOyAjIEVtb2ppIHRoYXQgdGFr
ZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2Vsc2UKKworICAgICRFbW9qaUZvclNlcXMgPSBb
XHUyNzY0IFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDhCXTsgIyBFbW9qaSB0aGF0IHBh
cnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBc
dTI3MEEtXHUyNzBDIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcg
XFUwMDAxRjNDQSBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxV
MDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAw
MDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAx
RjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2
QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzBdIDsgIyBFbW9qaSB0aGF0IHRha2Ug
Rml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYz
RkItXFUwMDAxRjNGRl07ICMgRml0enBhdHJpY2sgbW9kaWZpZXJzCishIWNoYWluOworCisjaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIVJJTm9DaGFpbjsKKworI2VuZGlmCisK
KyEhZm9yd2FyZDsKKyRDUiAkTEY7CiskTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8
ICRWKSAoJFYgfCAkVCk7CisoJExWVCB8ICRUKSAkVDsKKworI2lmIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVAorCisgICAgJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsKKyAgICAkUkkgJFJJICRFeHRl
bmQqOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRD
UiAkTEZdICRTcGFjaW5nTWFyazsKKworI2Vsc2UKKworICAgIFteJENvbnRyb2wgJENSICRMRl0g
JEV4dGVuZDsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsKKyAgICAkUkkg
JFJJIC8gJFJJOworICAgICRSSSAkUkk7CisKKyNlbmRpZgorCiskSGluMCAkSGluViAkSGluMTsg
IyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9yd2FyZCkKKyRCZW4wICRCZW5WICRCZW4xOyAjIEJlbmdh
bGkgVmlyYW1hIChmb3J3YXJkKQorJFBhbjAgJFBhblYgJFBhbjE7ICMgR3VybXVraGkgVmlyYW1h
IChmb3J3YXJkKQorJEd1ajAgJEd1alYgJEd1ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJk
KQorJE9yaTAgJE9yaVYgJE9yaTE7ICMgT3JpeWEgVmlyYW1hIChmb3J3YXJkKQorJFRlbDAgJFRl
bFYgJFRlbDE7ICMgVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKKyRLYW4wICRLYW5WICRLYW4xOyAj
IEthbm5hZGEgVmlyYW1hIChmb3J3YXJkKQorJE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFsYXlhbGFt
IFZpcmFtYSAoZm9yd2FyZCkKKyRaV0ogJEVtb2ppRm9yU2VxczsgIyBEb250IGJyZWFrIGluIGVt
b2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyAj
IERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRp
b24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgorISFyZXZlcnNlOworJExGICRD
UjsKKygkTCB8ICRWIHwgJExWIHwgJExWVCkgJEw7CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRU
ICgkTFZUIHwgJFQpOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkRXh0
ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kKiAkUkkgJFJJOwor
ICAgICRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBb
XiRDb250cm9sICRDUiAkTEZdOworCisjZWxzZQorCisgICAgJEV4dGVuZCAgICAgIFteJENvbnRy
b2wgJENSICRMRl07CisgICAgJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisgICAg
JFJJICRSSSAvICRSSSAkUkk7CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4xICRIaW5W
ICRIaW4wOyAjIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKKyRCZW4xICRCZW5WICRCZW4w
OyAjIEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKKyRQYW4xICRQYW5WICRQYW4wOyAjIEd1cm11
a2hpIFZpcmFtYSAoYmFja3dhcmQpCiskR3VqMSAkR3VqViAkR3VqMDsgIyBHdWphcmF0aSBWaXJh
bWEgKGJhY2t3YXJkKQorJE9yaTEgJE9yaVYgJE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNr
d2FyZCkKKyRUZWwxICRUZWxWICRUZWwwOyAjIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQorJEth
bjEgJEthblYgJEthbjA7ICMgS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQorJE1hbDEgJE1hbFYg
JE1hbDA7ICMgTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCiskRW1vamlGb3JTZXFzICRaV0o7
ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlNb2RzICRFbW9qaVZh
cj8gJEVtb2ppRm9yTW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBv
c3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIK
KworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgISFzYWZlX3JldmVyc2U7Cisg
ICAgJFJJICRSSSs7CisgICAgWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsK
KyAgICAhIXNhZmVfZm9yd2FyZDsKKyAgICAkUkkgJFJJKzsKKyAgICAkRW1vamlGb3JNb2RzIFsk
RW1vamlWYXIgJEVtb2ppTW9kc10rOworCisjZWxzZQorCisgICAgWyRFbW9qaVZhciAkRW1vamlN
b2RzXSsgJEVtb2ppRm9yTW9kczsKKyAgICAkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2pp
TW9kc10rOworICAgICEhc2FmZV9yZXZlcnNlOworICAgICEhc2FmZV9mb3J3YXJkOworCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvckVwaWxvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGIwODhkNTAwMTQy
ZDI5YmRkMjA1ZTMxODAzZGY4NGE1MmIwMmJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CkBA
IC0wLDAgKzEsMzcyIEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisj
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQUkgPSBbOkxpbmVCcmVhayA9IEFtYmln
dW91czpdOworJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07CiskQkEgPSBbWzpMaW5l
QnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07CiskQkIgPSBbOkxpbmVCcmVhayA9IEJy
ZWFrX0JlZm9yZTpdOworJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5kYXRvcnlfQnJlYWs6XTsKKyRC
MiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOworJENCID0gWzpMaW5lQnJlYWsgPSBDb250
aW5nZW50X0JyZWFrOl07CiskQ0wgPSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07
CiskQ00gPSBbOkxpbmVCcmVhayA9IENvbWJpbmluZ19NYXJrOl07CiskQ1AgPSBbOkxpbmVCcmVh
ayA9IENsb3NlX1BhcmVudGhlc2lzOl07CiskQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdlX1Jl
dHVybjpdOworJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9TVUJdOwor
JEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9T
RVRTCisKKyAgICAkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsKKworI2Vsc2UK
KworICAgICRITCA9IFtbOkhlYnJldzpdICYgWzpMZXR0ZXI6XV07CisKKyNlbmRpZgorCiskSFkg
PSBbOkxpbmVCcmVhayA9IEh5cGhlbjpdOworJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOworJEgz
ID0gWzpMaW5lQnJlYWsgPSBIMzpdOworJElEID0gW1tbWzpMaW5lQnJlYWsgPSBJZGVvZ3JhcGhp
YzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOworJElOID0gW1s6TGluZUJyZWFrID0gSW5z
ZXBhcmFibGU6XSAtICRJTl9TVUJdOworJElTID0gW1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJp
YzpdIC0gJElTX1NVQl07CiskSkwgPSBbOkxpbmVCcmVhayA9IEpMOl07CiskSlYgPSBbOkxpbmVC
cmVhayA9IEpWOl07CiskSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07CiskTEYgPSBbOkxpbmVCcmVh
ayA9IExpbmVfRmVlZDpdOworJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsKKyROUyA9
IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICROU19TVUJd
OworJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07CiskT1AgPSBbOkxpbmVCcmVhayA9IE9w
ZW5fUHVuY3R1YXRpb246XTsKKyRQTyA9IFtbOkxpbmVCcmVhayA9IFBvc3RmaXhfTnVtZXJpYzpd
IC0gJFBPX1NVQl07CiskUFIgPSBbWzpMaW5lQnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBS
X1NVQl07CiskUVUgPSBbOkxpbmVCcmVhayA9IFF1b3RhdGlvbjpdOworJFJJID0gW1xVMDAwMUYx
RTYtXFUwMDAxRjFGRl07CiskU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOwor
JFNHID0gWzpMaW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsKKyRTUCA9IFs6TGluZUJyZWFrID0gU3Bh
Y2U6XTsKKyRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOworJFdKID0gWzpMaW5l
QnJlYWsgPSBXb3JkX0pvaW5lcjpdOworJFhYID0gWzpMaW5lQnJlYWsgPSBVbmtub3duOl07Cisk
WlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsKKyRaV0ogPSBcdTIwMEQ7CiskRW1vamlWYXIg
PSBcdUZFMEY7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFbW9qaUZv
clNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYzMDggXFUwMDAxRjND
My1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAwMDFGM0YzIFxVMDAwMUY0NDEg
XFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBcVTAwMDFGNDcxIFxV
MDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUwMDAxRjQ4Ni1cVTAw
MDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAwMUY2NDUtXFUwMDAx
RjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFGNkEzIFxVMDAwMUY2
QjQtXFUwMDAxRjZCNiBcdTI2OTUtXHUyNjk2IFx1MjcwOCBcVTAwMDFGMzNFIFxVMDAwMUYzNzMg
XFUwMDAxRjM5MyBcVTAwMDFGM0E0IFxVMDAwMUYzQTggXFUwMDAxRjNFQiBcVTAwMDFGM0VEIFxV
MDAwMUY0QkItXFUwMDAxRjRCQyBcVTAwMDFGNTI3IFxVMDAwMUY1MkMgXFUwMDAxRjY4MCBcVTAw
MDFGNjkyIFxVMDAwMUY5MjYgXFUwMDAxRjkzNy1cVTAwMDFGOTM5IFxVMDAwMUY5M0MtXFUwMDAx
RjkzRV07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVt
b2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAw
MDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUwMDAx
RjQ0MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDc4IFxVMDAwMUY0
N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFB
IFxVMDAwMUY1NzUgXFUwMDAxRjU5MCBcVTAwMDFGNTk1IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1c
VTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUw
MDAxRjZCNiBcVTAwMDFGNkMwIFxVMDAwMUY5MTggXFUwMDAxRjNDMiBcVTAwMDFGM0M3IFxVMDAw
MUYzQ0MgXFUwMDAxRjU3NCBcVTAwMDFGNTdBIFxVMDAwMUY2Q0MgXFUwMDAxRjkxOS1cVTAwMDFG
OTFFIFxVMDAwMUY5MjYgXFUwMDAxRjkzMCBcVTAwMDFGOTMzLVxVMDAwMUY5MzkgXFUwMDAxRjkz
Qy1cVTAwMDFGOTNFXTsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisK
KyNlbHNlCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAwMUY0
NjkgXFUwMDAxRjQ4Ql07CisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBBLVx1Mjcw
QyBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0M3IFxVMDAwMUYzQ0Eg
XFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxV
MDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAw
MDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1OTYgXFUwMDAx
RjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2
QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwXTsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sg
bW9kaWZpZXJzCisKKyNlbmRpZgorCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUwMDAxRjNG
Rl07CiskZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07CiskQUxQ
bHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhdOworJEFMY20gPSAkQUxQbHVzICRDTSo7CiskQkFj
bSA9ICRCQSAkQ00qOworJEJCY20gPSAkQkIgJENNKjsKKyRCMmNtID0gJEIyICRDTSo7CiskQ0xj
bSA9ICRDTCAkQ00qOworJENQY20gPSAkQ1AgJENNKjsKKyRFWGNtID0gJEVYICRDTSo7CiskR0xj
bSA9ICRHTCAkQ00qOworJEhMY20gPSAkSEwgJENNKjsKKyRIWWNtID0gJEhZICRDTSo7CiskSDJj
bSA9ICRIMiAkQ00qOworJEgzY20gPSAkSDMgJENNKjsKKyRJRGNtID0gJElEICRDTSo7CiskSU5j
bSA9ICRJTiAkQ00qOworJElTY20gPSAkSVMgJENNKjsKKyRKTGNtID0gJEpMICRDTSo7CiskSlZj
bSA9ICRKViAkQ00qOworJEpUY20gPSAkSlQgJENNKjsKKyROU2NtID0gJE5TICRDTSo7CiskTlVj
bSA9ICROVSAkQ00qOworJE9QY20gPSAkT1AgJENNKjsKKyRQT2NtID0gJFBPICRDTSo7CiskUFJj
bSA9ICRQUiAkQ00qOworJFFVY20gPSAkUVUgJENNKjsKKyRSSWNtID0gJFJJICRDTSo7CiskU1lj
bSA9ICRTWSAkQ00qOworJFdKY20gPSAkV0ogJENNKjsKKworISFmb3J3YXJkOworJENBTl9DTSA9
IFteJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRDQU5UX0NNID0gWyRTUCAkQksgJENS
ICRMRiAkTkwgJFpXICRDTV07CiskQUxfRk9MTE9XX05PQ00gPSBbJEJLICRDUiAkTEYgJE5MICRa
VyAkU1BdOworJEFMX0ZPTExPV19DTSA9IFskQ0wgJENQICRFWCAkSEwgJElTICRTWSAkV0ogJEdM
ICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICROVSAkQUxQbHVzXTsKKyRBTF9GT0xMT1cgPSBbJEFM
X0ZPTExPV19OT0NNICRBTF9GT0xMT1dfQ01dOworJExCNEJyZWFrcyA9IFskQksgJENSICRMRiAk
TkxdOworJExCNE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5MXTsKKyRMQjhCcmVha3MgPSBb
JExCNEJyZWFrcyAkWlddOworJExCOE5vbkJyZWFrcyA9IFtbJExCNE5vbkJyZWFrc10gLSBbJFpX
XV07CiskTEIxOE5vbkJyZWFrcyA9IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOworJExCMThCcmVh
a3MgPSBbJExCOEJyZWFrcyAkU1BdOworJExCMjBOb25CcmVha3MgPSBbJExCMThOb25CcmVha3Mg
LSAkQ0JdOworJEFMUGx1cyAkQ00rOworJEJBICRDTSs7CiskQkIgJENNKzsKKyRCMiAkQ00rOwor
JENMICRDTSs7CiskQ1AgJENNKzsKKyRFWCAkQ00rOworJEdMICRDTSs7CiskSEwgJENNKzsKKyRI
WSAkQ00rOworJEgyICRDTSs7CiskSDMgJENNKzsKKyRJRCAkQ00rOworJElOICRDTSs7CiskSVMg
JENNKzsKKyRKTCAkQ00rOworJEpWICRDTSs7CiskSlQgJENNKzsKKyROUyAkQ00rOworJE5VICRD
TSs7CiskT1AgJENNKzsKKyRQTyAkQ00rOworJFBSICRDTSs7CiskUVUgJENNKzsKKyRSSSAkQ00r
OworJFNZICRDTSs7CiskV0ogJENNKzsKKyRDUiAkTEYgezEwMH07CiskTEI0Tm9uQnJlYWtzPyAk
TEI0QnJlYWtzIHsxMDB9OworJENBTl9DTSAkQ00qICRMQjRCcmVha3MgezEwMH07CiskQ00rICRM
QjRCcmVha3MgezEwMH07CiskTEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsKKyRDQU5fQ00gJENNKiBb
JFNQICRaV107CiskQ00rIFskU1AgJFpXXTsKKyRFbW9qaUZvclNlcXMgJEVtb2ppVmFyPyAkRW1v
amlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7CiskQ0FOX0NNICRDTSs7CiskQ00rOworJENBTl9D
TSAkQ00qICRXSmNtOworJExCOE5vbkJyZWFrcyAkV0pjbTsKKyRDTSsgJFdKY207CiskV0pjbSAk
Q0FOVF9DTTsKKyRXSmNtICRDQU5fQ00gJENNKjsKKyRHTGNtICRDQU5fQ00gJENNKjsKKyRHTGNt
ICRDQU5UX0NNOworW1skTEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSogJEdMY207
CiskQ00rIEdMY207CiskTEI4Tm9uQnJlYWtzICRDTDsKKyRDQU5fQ00gJENNKiAkQ0w7CiskQ00r
ICRDTDsKKyRMQjhOb25CcmVha3MgJENQOworJENBTl9DTSAkQ00qICRDUDsKKyRDTSsgJENQOwor
JExCOE5vbkJyZWFrcyAkRVg7CiskQ0FOX0NNICRDTSogJEVYOworJENNKyAkRVg7CiskTEI4Tm9u
QnJlYWtzICRJUzsKKyRDQU5fQ00gJENNKiAkSVM7CiskQ00rICRJUzsKKyRMQjhOb25CcmVha3Mg
JFNZOworJENBTl9DTSAkQ00qICRTWTsKKyRDTSsgJFNZOworJE9QY20gJFNQKiAkQ0FOX0NNICRD
TSo7CiskT1BjbSAkU1AqICRDQU5UX0NNOworJE9QY20gJFNQKyAkQ00rICRBTF9GT0xMT1c/Owor
JFFVY20gJFNQKiAkT1BjbTsKKygkQ0xjbSB8ICRDUGNtKSAkU1AqICROU2NtOworJEIyY20gJFNQ
KiAkQjJjbTsKKyRMQjE4Tm9uQnJlYWtzICRDTSogJFFVY207CiskQ00rICRRVWNtOworJFFVY20g
Lj87CiskUVVjbSAkTEIxOE5vbkJyZWFrcyAkQ00qOworJExCMjBOb25CcmVha3MgJENNKiAoJEJB
Y20gfCAkSFljbSB8ICROU2NtKTsgCiskQkJjbSBbXiRDQl07CiskQkJjbSAkTEIyME5vbkJyZWFr
cyAkQ00qOworJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87CiskU1ljbSAkSExjbTsKKygk
QUxjbSB8ICRITGNtKSAkSU5jbTsKKyRDTSsgJElOY207CiskRVhjbSAkSU5jbTsKKyRJRGNtICRJ
TmNtOworJElOY20gJElOY207CiskTlVjbSAkSU5jbTsKKyRJRGNtICRQT2NtOworJEFMY20gJE5V
Y207CiskSExjbSAkTlVjbTsKKyRDTSsgJE5VY207CiskTlVjbSAkQUxjbTsKKyROVWNtICRITGNt
OworJFBSY20gJElEY207CiskUFJjbSAoJEFMY20gfCAkSExjbSk7CiskUE9jbSAoJEFMY20gfCAk
SExjbSk7CisoJFBSY20gfCAkUE9jbSk/ICgkT1BjbSB8ICRIWWNtKT8gJE5VY20gKCROVWNtIHwg
JFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRDUGNtKT8gKCRQUmNtIHwgJFBPY20pPzsKKyRKTGNt
ICgkSkxjbSB8ICRKVmNtIHwgJEgyY20gfCAkSDNjbSk7CisoJEpWY20gfCAkSDJjbSkgKCRKVmNt
IHwgJEpUY20pOworKCRKVGNtIHwgJEgzY20pICRKVGNtOworKCRKTGNtIHwgJEpWY20gfCAkSlRj
bSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOworKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNt
IHwgJEgzY20pICRQT2NtOworJFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwg
JEgzY20pOworKCRBTGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNtKTsKKyRDTSsgKCRBTGNtIHwg
JEhMY20pOworJElTY20gKCRBTGNtIHwgJEhMY20pOworKCRBTGNtIHwgJEhMY20gfCAkTlVjbSkg
JE9QY207CiskQ00rICRPUGNtOworJENQY20gKCRBTGNtIHwgJEhMY20gfCAkTlVjbSk7CisKKyNp
ZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRSSWNtICRSSWNtOworCisjZW5kaWYK
KworJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7CisKKyEhcmV2ZXJzZTsKKyRD
TSsgJEFMUGx1czsKKyRDTSsgJEJBOworJENNKyAkQkI7CiskQ00rICRCMjsKKyRDTSsgJENMOwor
JENNKyAkQ1A7CiskQ00rICRFWDsKKyRDTSsgJEdMOworJENNKyAkSEw7CiskQ00rICRIWTsKKyRD
TSsgJEgyOworJENNKyAkSDM7CiskQ00rICRJRDsKKyRDTSsgJElOOworJENNKyAkSVM7CiskQ00r
ICRKTDsKKyRDTSsgJEpWOworJENNKyAkSlQ7CiskQ00rICROUzsKKyRDTSsgJE5VOworJENNKyAk
T1A7CiskQ00rICRQTzsKKyRDTSsgJFBSOworJENNKyAkUVU7CisKKyNpZiBBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQKKworICAgICRDTSsgJFJJOworCisjZW5kaWYKKworJENNKyAkU1k7CiskQ00r
ICRXSjsKKyRDTSs7CiskQUxfRk9MTE9XICRDTSsgLyAoWyRCSyAkQ1IgJExGICROTCAkWlcge2Vv
Zn1dIHwgJFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14kT1AgJENNICRTUF0gfCBbJEFMIHtl
b2Z9XSkpOworWyRQUl0gLyAkQ00rIFskQksgJENSICRMRiAkTkwgJFpXICRTUCB7ZW9mfV07Cisk
TEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtzLSRDTV07CiskTEI0QnJlYWtzICRDTSsgJENBTl9DTTsK
KyRMRiAkQ1I7CitbJFNQICRaV10gWyRMQjROb25CcmVha3MtJENNXTsKK1skU1AgJFpXXSAkQ00r
ICRDQU5fQ007CiskRW1vamlGb3JTZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2ppVmFyPyAkRW1v
amlGb3JTZXFzOworJENNKyAkQ0FOX0NNOworJENNKiAkV0ogJENNKiAkQ0FOX0NNOworJENNKiAk
V0ogWyRMQjhOb25CcmVha3MtJENNXTsKKyRDQU5UX0NNICRDTSogJFdKOworJENNKiAkQ0FOX0NN
ICRDTSogJFdKOworJENNKiAkR0wgJENNKiBbJExCOE5vbkJyZWFrcy1bJENNICRTUCAkQkEgJEhZ
XV07CiskQ0FOVF9DTSAkQ00qICRHTDsKKyRDTSogJENBTl9DTSAkQ00qICRHTDsKKyRDTCAkQ00r
ICRDQU5fQ007CiskQ1AgJENNKyAkQ0FOX0NNOworJEVYICRDTSsgJENBTl9DTTsKKyRJUyAkQ00r
ICRDQU5fQ007CiskU1kgJENNKyAkQ0FOX0NNOworJENMIFskTEI4Tm9uQnJlYWtzLSRDTV07Cisk
Q1AgWyRMQjhOb25CcmVha3MtJENNXTsKKyRFWCBbJExCOE5vbkJyZWFrcy0kQ01dOworJElTIFsk
TEI4Tm9uQnJlYWtzLSRDTV07CiskU1kgWyRMQjhOb25CcmVha3MtJENNXTsKK1skQ0wgJENQICRF
WCAkSVMgJFNZXSAkQ00rICRTUCsgJENNKiAkT1A7IAorJENNKiAkQ0FOX0NNICRTUCogJENNKiAk
T1A7CiskQ0FOVF9DTSAkU1AqICRDTSogJE9QOworJEFMX0ZPTExPVz8gJENNKyAkU1AgJFNQKiAk
Q00qICRPUDsKKyRBTF9GT0xMT1dfTk9DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskQ00qICRBTF9G
T0xMT1dfQ00gJENNKyAkU1ArICRDTSogJE9QOworJFNZICRDTSAkU1ArICRPUDsKKyRDTSogJE9Q
ICRTUCogJENNKiAkUVU7CiskQ00qICROUyAkU1AqICRDTSogKCRDTCB8ICRDUCk7CiskQ00qICRC
MiAkU1AqICRDTSogJEIyOworJENNKiAkUVUgJENNKiAkQ0FOX0NNOworJENNKiAkUVUgJExCMThO
b25CcmVha3M7CiskQ00qICRDQU5fQ00gJENNKiAkUVU7CiskQ0FOVF9DTSAkQ00qICRRVTsKKyRD
TSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBbJExCMjBOb25CcmVha3MtJENNXTsKKyRDTSogWyRM
QjIwTm9uQnJlYWtzLSRDTV0gJENNKiAkQkI7CitbXiRDQl0gJENNKiAkQkI7CitbXiRDQl0gJENN
KiAoJEhZIHwgJEJBKSAkQ00qICRITDsKKyRDTSogJEhMICRDTSogJFNZOworJENNKiAkSU4gJENN
KiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICRJTiAkQ00qICRFWDsKKyRDTSogJElOICRDTSogJElE
OworJENNKiAkSU4gJENNKiAkSU47CiskQ00qICRJTiAkQ00qICROVTsKKyRDTSogJFBPICRDTSog
JElEOworJENNKiAkTlUgJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICgkQUxQbHVzIHwgJEhM
KSAkQ00qICROVTsKKyRDTSogJElEICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENN
KiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRQTzsKKygkQ00qICgkUFIgfCAkUE8p
KT8gKCRDTSogKCRDTCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElTIHwgJFNZKSkqICRDTSogJE5V
ICgkQ00qICgkT1AgfCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykpPzsKKyRDTSogKCRIMyB8ICRI
MiB8ICRKViB8ICRKTCkgJENNKiAkSkw7CiskQ00qICgkSlQgfCAkSlYpICRDTSogKCRIMiB8ICRK
Vik7CiskQ00qICRKVCAkQ00qICgkSDMgfCAkSlQpOworJENNKiAkSU4gJENNKiAoJEgzIHwgJEgy
IHwgJEpUIHwgJEpWIHwgJEpMKTsKKyRDTSogJFBPICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRK
ViB8ICRKTCk7CiskQ00qICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpICRDTSogJFBSOwor
JENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAoJEFMUGx1cyB8ICRITCk7CiskQ00qICgkQUxQbHVz
IHwgJEhMKSAkQ00qICRJUzsKKyRDTSogJE9QICRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpOwor
JENNKiAoJEFMUGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7CisKKyNpZiBBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQKKworICAgICRDTSogJFJJICRDTSogJFJJOworCisjZW5kaWYKKworJEVtb2pp
TW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7CisKKyEhc2FmZV9mb3J3YXJkOworWyRDTSAk
T1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRTUCAkZGljdGlvbmFyeV0rIFteJENNICRP
UCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJGRpY3Rpb25hcnldOworJGRpY3Rpb25hcnkg
JGRpY3Rpb25hcnk7CisgICAgCishIXNhZmVfcmV2ZXJzZTsKKyRDTSsgW14kQ00gJEJLICRDUiAk
TEYgJE5MICRaVyAkU1BdOworJENNKyAkU1AgLyAuOworJFNQKyAkQ00qICRPUDsKKyRTUCsgJENN
KiAkUVU7CiskU1ArICRDTSogKCRDTCB8ICRDUCk7CiskU1ArICRDTSogJEIyOworJENNKiAoJEhZ
IHwgJEJBKSAkQ00qICRITDsKKygkQ00qICgkSVMgfCAkU1kpKSsgJENNKiAkTlU7CisoJENMIHwg
JENQKSAkQ00qICgkTlUgfCAkSVMgfCAkU1kpOworJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JQcm9sb2d1ZS50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWIzZjY2ZjQyYWYxMzhlZDU4
ZmY0MjFmNjc2OGQ4ZmQ1ODAxMjgyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApAQCAtMCww
ICsxLDM4IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHly
aWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisj
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCishIWNoYWluOworISFMQkNNTm9DaGFpbjsKKyEhbG9v
a0FoZWFkSGFyZEJyZWFrOworCisjaWYgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUworCisgICAg
JENKID0gWzpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjpdOworCisjZWxz
ZQorCisgICAgJENKID0gW1x1MzA0MVx1MzA0M1x1MzA0NVx1MzA0N1x1MzA0OVx1MzA2M1x1MzA4
M1x1MzA4NVx1MzA4N1x1MzA4RVx1MzA5NVx1MzA5Nlx1MzBBMVx1MzBBM1x1MzBBNVx1MzBBN1x1
MzBBOVx1MzBDM1x1MzBFM1x1MzBFNVx1MzBFN1x1MzBFRVx1MzBGNVx1MzBGNlx1MzBGQ1x1MzFG
MFx1MzFGMVx1MzFGMlx1MzFGM1x1MzFGNFx1MzFGNVx1MzFGNlx1MzFGN1x1MzFGOFx1MzFGOVx1
MzFGQVx1MzFGQlx1MzFGQ1x1MzFGRFx1MzFGRVx1MzFGRlx1RkY2N1x1RkY2OFx1RkY2OVx1RkY2
QVx1RkY2Qlx1RkY2Q1x1RkY2RFx1RkY2RVx1RkY2Rlx1RkY3MF07CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTRDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwN2MwY2E1YWE3YjJmZmJmOGIyY2Q5
MDkyYWE1ZjNlMWRiYTQwOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKQEAgLTAsMCArMSwz
NSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBcdTIwMTNdOworJEVYX1NVQiA9
ICcnOworJElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NV
QiA9IFtcdTMwMUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FE
RCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWRiOGYwZmY1MTg1NmQ5N2M5YzE0
ZTEyMTYzNzM0ZmRmYzk3YzljYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0CkBAIC0w
LDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRF
WF9TVUIgPSBbXHUwMDIxXHUwMDNGXHVGRjAxXHVGRjFGXTsKKyRJRF9TVUIgPSAnJzsKKyRJTl9T
VUIgPSBbXHUyMDI1XHUyMDI2XTsKKyRJU19TVUIgPSBbXHUwMDNBXHUwMDNCXTsKKyROU19TVUIg
PSBbXHUyMDNDXHUyMDQ3XHUyMDQ4XHUyMDQ5XHUzMDA1XHUzMDFDXHUzMDNCXHUzMDlEXHUzMDlF
XHUzMEEwXHUzMEZCXHUzMEZEXHUzMEZFXHVGRjFBXHVGRjFCXHVGRjY1XTsKKyRQT19TVUIgPSBb
XHUwMDI1XHUwMEEyXHUwMEIwXHUyMDMwXHUyMDMyXHUyMDMzXHUyMTAzXHVGRjA1XHVGRkUwXTsK
KyRQUl9TVUIgPSBbXHUwMDI0XHUwMEEzXHUwMEE1XHUyMEFDXHUyMTE2XHVGRjA0XHVGRkUxXHVG
RkU1XTsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVYX1NVQiAkSU5fU1VCICRJU19TVUIgJE5T
X1NVQiAkUE9fU1VCICRQUl9TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5v
bkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2JiYzhhODgxNWU0ZDBkY2Zi
OTYwYzExMmY2MGE4MzhkM2E0Mjg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQK
QEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQor
IyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
IyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9
ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NVQiA9
ICcnOworJE5TX1NVQiA9IFtcdTMwMDVcdTMwM0JcdTMwOURcdTMwOUVcdTMwRkRcdTMwRkVdOwor
JFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJElOX1NVQiAkTlNf
U1VCXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mNzQyODc5ZGQxZjgyZWI2MmQyOGQ4YWE3YmNkZGY0NDZkMDczODdmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb25DSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3Jj
aCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAn
JzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIg
PSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDdjMGNhNWFhN2IyZmZiZjhiMmNk
OTA5MmFhNWYzZTFkYmE0MDkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0CkBAIC0w
LDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSBbXHUyMDEwXHUyMDEzXTsKKyRF
WF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsK
KyROU19TVUIgPSBbXHUzMDFDXHUzMEEwXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsK
KyRJRF9BREQgPSBbJENKICRCQV9TVUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJjZjZh
MDgyNmFkYTRlZGNmY2YzOTQzYjY4OWY4YzA2ZTBiZDc0OAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9y
bWFsTm9uQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJ
bmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0g
Jyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VC
ID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURf
QUREID0gWyRDSl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50eHQgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc0Mjg3OWRkMWY4MmViNjJkMjhkOGFhN2JjZGRmNDQ2
ZDA3Mzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dApAQCAtMCwwICsxLDM1IEBA
CisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykg
MjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChD
KSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0g
Jyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VC
ID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Zjc0Mjg3OWRkMWY4MmViNjJkMjhkOGFhN2JjZGRmNDQ2ZDA3Mzg3ZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25v
bGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9i
aWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisj
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFf
U1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7Cisk
SVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7
CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4
dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IGIwZGJlNTk3ZjM5MWYxMzJjMjhlNjQyZjdkOTc1YjEx
MGY3NWY4MjYuLjUyNzBhMjU5MWFjOWJjODAwNTkzYzUyZDFiNWNiYTc1NzQ3NGE2NTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCkBAIC0zMSw5ICszMSw2IEBA
CiAjaW5jbHVkZSA8dW5pY29kZS91YnJrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogCi0vLyBGSVhNRTogVGhpcyBuZWVkcyBhIGJldHRlciBuYW1lCi0jZGVmaW5lIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkpCi0KIG5hbWVzcGFj
ZSBXVEYgewogCiAvLyBJdGVyYXRvciBpbml0aWFsaXphdGlvbgpAQCAtNjEsNiArNTgsMTIgQEAg
c3RhdGljIFVCcmVha0l0ZXJhdG9yKiBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoY29uc3Qg
Y2hhciogYnJlYWtSdWxlcykKIAogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExB
VEZPUk0oSU9TKQorVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVh
a2luZ1J1bGVTZXQpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKIAogLy8gSXRl
cmF0b3IgdGV4dCBzZXR0aW5nCiAKQEAgLTE2NCwxNDMgKzE2NywyNyBAQCBVQnJlYWtJdGVyYXRv
ciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogICAgIHJldHVybiBz
ZXRUZXh0Rm9ySXRlcmF0b3IoKnN0YXRpY1NlbnRlbmNlQnJlYWtJdGVyYXRvciwgc3RyaW5nKTsK
IH0KIAorI2lmICFQTEFURk9STShJT1MpCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUN1
cnNvck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2soKQoreworICAgIGlmIChhdXRvKiBpdGVy
YXRvciA9IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1v
dmVtZW50KSkKKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yOworICAgIHJldHVybiBpbml0aWFsaXpl
SXRlcmF0b3JXaXRoUnVsZXMoY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzKTsKK30KKyNlbmRp
ZgorCiBVQnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcihTdHJpbmdWaWV3IHN0
cmluZykKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIC8vIFRoaXMgcnVsZSBzZXQgaXMgYmFz
ZWQgb24gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NwotICAgIC8vIDxo
dHRwOi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01
Ny0xL3NvdXJjZS9kYXRhL2Jya2l0ci8+LgotICAgIC8vIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBm
cm9tIHRoZSBvcmlnaW5hbCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6Ci0gICAgLy8gKiBSZXBsYWNl
ZCAnW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBTcGFjaW5nTWFya31dJyB3aXRoICdbXHB7
R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya30gLSAkRXh0ZW5kXScgZm9yIElDVSAzLjgg
b3IgZWFybGllcjsKLSAgICAvLyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29y
IGZyb20gbW92aW5nIGFmdGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKLSAgICAv
LyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciB2
aXJhbWEgc2lnbnMgb2YgSW5kaWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwg
YW5kOwotICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92
aW5nIGJlZm9yZSBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJrcy4KLSAg
ICAvLyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4KLSAgICBz
dGF0aWMgY29uc3QgY2hhcioga1J1bGVzID0KLSAgICAgICAgIiRDUiAgICAgID0gW1xccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gQ1J9XTsiCi0gICAgICAgICIkTEYgICAgICA9IFtcXHB7R3Jh
cGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExGfV07IgotICAgICAgICAiJENvbnRyb2wgPSBbXFxwe0dy
YXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07IgotICAgICAgICAiJFZvaWNlTWFya3Mg
PSBbXFx1RkY5RVxcdUZGOUZdOyIgLy8gSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FuYSB2b2lj
ZWQgbWFya3MKLSAgICAgICAgIiRFeHRlbmQgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gRXh0ZW5kfSAkVm9pY2VNYXJrcyAtIFtcXHUwRTMwIFxcdTBFMzIgXFx1MEU0NSBcXHUwRUIw
IFxcdTBFQjJdXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgPSBbW1xccHtHZW5lcmFsX0NhdGVn
b3J5ID0gU3BhY2luZyBNYXJrfV0gLSAkRXh0ZW5kXTsiCi0gICAgICAgICIkTCAgICAgICA9IFtc
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsiCi0gICAgICAgICIkViAgICAgICA9IFtc
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFZ9XTsiCi0gICAgICAgICIkVCAgICAgICA9IFtc
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFR9XTsiCi0gICAgICAgICIkTFYgICAgICA9IFtc
XHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07IgotICAgICAgICAiJExWVCAgICAgPSBb
XFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVlR9XTsiCi0gICAgICAgICIkSGluMCAgICA9
IFtcXHUwOTA1LVxcdTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAg
ICAgIiRIaW5WICAgID0gXFx1MDk0RDsiIC8vIERldmFuYWdhcmkgU2lnbiBWaXJhbWEKLSAgICAg
ICAgIiRIaW4xICAgID0gW1xcdTA5MTUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJpIExldHRlciBL
YSwuLi4sSGEKLSAgICAgICAgIiRCZW4wICAgID0gW1xcdTA5ODUtXFx1MDlCOV07IiAvLyBCZW5n
YWxpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEJlblYgICAgPSBcXHUwOUNEOyIgLy8gQmVu
Z2FsaSBTaWduIFZpcmFtYQotICAgICAgICAiJEJlbjEgICAgPSBbXFx1MDk5NS1cXHUwOUI5XTsi
IC8vIEJlbmdhbGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJFBhbjAgICAgPSBbXFx1MEEw
NS1cXHUwQTM5XTsiIC8vIEd1cm11a2hpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJFBhblYg
ICAgPSBcXHUwQTREOyIgLy8gR3VybXVraGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRQYW4xICAg
ID0gW1xcdTBBMTUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAg
ICAgICIkR3VqMCAgICA9IFtcXHUwQTg1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkR3VqViAgICA9IFxcdTBBQ0Q7IiAvLyBHdWphcmF0aSBTaWduIFZp
cmFtYQotICAgICAgICAiJEd1ajEgICAgPSBbXFx1MEE5NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRp
IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRPcmkwICAgID0gW1xcdTBCMDUtXFx1MEIzOV07
IiAvLyBPcml5YSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRPcmlWICAgID0gXFx1MEI0RDsi
IC8vIE9yaXlhIFNpZ24gVmlyYW1hCi0gICAgICAgICIkT3JpMSAgICA9IFtcXHUwQjE1LVxcdTBC
MzldOyIgLy8gT3JpeWEgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJFRlbDAgICAgPSBbXFx1
MEMwNS1cXHUwQzM5XTsiIC8vIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRUZWxW
ICAgID0gXFx1MEM0RDsiIC8vIFRlbHVndSBTaWduIFZpcmFtYQotICAgICAgICAiJFRlbDEgICAg
PSBbXFx1MEMxNC1cXHUwQzM5XTsiIC8vIFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAg
ICIkS2FuMCAgICA9IFtcXHUwQzg1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4s
SGEKLSAgICAgICAgIiRLYW5WICAgID0gXFx1MENDRDsiIC8vIEthbm5hZGEgU2lnbiBWaXJhbWEK
LSAgICAgICAgIiRLYW4xICAgID0gW1xcdTBDOTUtXFx1MENCOV07IiAvLyBLYW5uYWRhIExldHRl
ciBBLC4uLixIYQotICAgICAgICAiJE1hbDAgICAgPSBbXFx1MEQwNS1cXHUwRDM5XTsiIC8vIE1h
bGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWxWICAgID0gXFx1MEQ0RDsiIC8v
IE1hbGF5YWxhbSBTaWduIFZpcmFtYQotICAgICAgICAiJE1hbDEgICAgPSBbXFx1MEQxNS1cXHUw
RDM5XTsiIC8vIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRSSSAgICAgID0g
W1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZGXTsiIC8vIEVtb2ppIHJlZ2lvbmFsIGluZGljYXRvcnMK
LSAgICAgICAgIiRaV0ogICAgID0gXFx1MjAwRDsiIC8vIFplcm8gd2lkdGggam9pbmVyCi0gICAg
ICAgICIkRW1vamlWYXIgPSBbXFx1RkUwRl07IiAvLyBFbW9qaS1zdHlsZSB2YXJpYXRpb24gc2Vs
ZWN0b3IKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFbW9qaUZvclNl
cXMgPSBbXFx1MjY0MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAx
RjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUw
MDAxRjQ0MSBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBc
XFUwMDAxRjQ3MSBcXFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4
MiBcXFUwMDAxRjQ4Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAx
RjVFOCBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUw
MDAxRjY0RSBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXHUyNjk1LVxcdTI2
OTYgXFx1MjcwOCBcXFUwMDAxRjMzRSBcXFUwMDAxRjM3MyBcXFUwMDAxRjM5MyBcXFUwMDAxRjNB
NCBcXFUwMDAxRjNBOCBcXFUwMDAxRjNFQiBcXFUwMDAxRjNFRCBcXFUwMDAxRjRCQi1cXFUwMDAx
RjRCQyBcXFUwMDAxRjUyNyBcXFUwMDAxRjUyQyBcXFUwMDAxRjY4MCBcXFUwMDAxRjY5MiBcXFUw
MDAxRjkyNiBcXFUwMDAxRjkzNy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV07
IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRF
bW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNkY5IFxcdTI3MEEtXFx1MjcwRCBcXFUwMDAxRjM4
NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQSBcXFUwMDAxRjNDQiBcXFUwMDAx
RjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUw
MDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1c
XFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU3NSBcXFUwMDAxRjU5MCBcXFUwMDAxRjU5
NSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAx
RjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMCBcXFUw
MDAxRjkxOCBcXFUwMDAxRjNDMiBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQyBcXFUwMDAxRjU3NCBc
XFUwMDAxRjU3QSBcXFUwMDAxRjZDQyBcXFUwMDAxRjkxOS1cXFUwMDAxRjkxRSBcXFUwMDAxRjky
NiBcXFUwMDAxRjkzMCBcXFUwMDAxRjkzMy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAx
RjkzRV0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2Vsc2UK
LSAgICAgICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2
OSBcXFUwMDAxRjQ4Ql07IiAvLyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5j
ZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNzBBLVxcdTI3MEMgXFxV
MDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0Eg
XFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0
NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAw
MUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxV
MDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYg
XFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzBdIDsiIC8vIEVt
b2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbmRpZgotICAgICAgICAiJEVt
b2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1cXFUwMDAxRjNGRl07IiAvLyBGaXR6cGF0cmljayBtb2Rp
ZmllcnMKLSAgICAgICAgIiEhY2hhaW47IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAot
ICAgICAgICAiISFSSU5vQ2hhaW47IgotI2VuZGlmCi0gICAgICAgICIhIWZvcndhcmQ7IgotICAg
ICAgICAiJENSICRMRjsiCi0gICAgICAgICIkTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOyIKLSAg
ICAgICAgIigkTFYgfCAkVikgKCRWIHwgJFQpOyIKLSAgICAgICAgIigkTFZUIHwgJFQpICRUOyIK
LSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCog
LyAkUkk7IgotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKjsiCi0gICAgICAgICJbXiRDb250cm9s
ICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2lu
Z01hcms7IgotI2Vsc2UKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsiCi0g
ICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsiCi0gICAgICAgICIkUkkg
JFJJIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIkSGluMCAk
SGluViAkSGluMTsiIC8vIERldmFuYWdhcmkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEJl
bjAgJEJlblYgJEJlbjE7IiAvLyBCZW5nYWxpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRQ
YW4wICRQYW5WICRQYW4xOyIgLy8gR3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAi
JEd1ajAgJEd1alYgJEd1ajE7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAg
ICIkT3JpMCAkT3JpViAkT3JpMTsiIC8vIE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAg
IiRUZWwwICRUZWxWICRUZWwxOyIgLy8gVGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAg
IiRLYW4wICRLYW5WICRLYW4xOyIgLy8gS2FubmFkYSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAg
ICIkTWFsMCAkTWFsViAkTWFsMTsiIC8vIE1hbGF5YWxhbSBWaXJhbWEgKGZvcndhcmQpCi0gICAg
ICAgICIkWldKICRFbW9qaUZvclNlcXM7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2Vx
dWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsiIC8v
IERvbid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0
aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKLSAgICAgICAgIiEhcmV2ZXJz
ZTsiCi0gICAgICAgICIkTEYgJENSOyIKLSAgICAgICAgIigkTCB8ICRWIHwgJExWIHwgJExWVCkg
JEw7IgotICAgICAgICAiKCRWIHwgJFQpICgkTFYgfCAkVik7IgotICAgICAgICAiJFQgKCRMVlQg
fCAkVCk7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJEV4dGVuZCog
JFJJICRSSSAvICRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVuZCogJFJJICRSSTsi
Ci0gICAgICAgICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIk
U3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0jZWxzZQotICAgICAgICAiJEV4dGVu
ZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENv
bnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFJJICRSSSAvICRSSSAkUkk7IgotICAgICAgICAi
JFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4xICRIaW5WICRIaW4wOyIgLy8gRGV2YW5h
Z2FyaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEJlbjEgJEJlblYgJEJlbjA7IiAvLyBC
ZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkUGFuMSAkUGFuViAkUGFuMDsiIC8v
IEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkR3VqMSAkR3VqViAkR3VqMDsi
IC8vIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkT3JpMSAkT3JpViAkT3Jp
MDsiIC8vIEd1amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkVGVsMSAkVGVsViAk
VGVsMDsiIC8vIFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEthbjEgJEthblYg
JEthbjA7IiAvLyBLYW5uYWRhIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkTWFsMSAkTWFs
ViAkTWFsMDsiIC8vIE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEVtb2pp
Rm9yU2VxcyAkWldKOyIgLy8gRG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwotICAg
ICAgICAiJEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7IiAvLyBEb24ndCBicmVh
ayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3Rv
cikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
Ci0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0gICAgICAg
ICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAgIiEhc2Fm
ZV9mb3J3YXJkOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIiRFbW9qaUZvck1vZHMg
WyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJy
ZWFrSXRlcmF0b3IqPiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gY3JlYXRlQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjaygpOwogI2Vsc2UKLSAgICAgICAgIlskRW1vamlW
YXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBb
JEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiCi0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAg
ICAgICIhIXNhZmVfZm9yd2FyZDsiOwotI2VuZGlmCi0gICAgc3RhdGljIFVCcmVha0l0ZXJhdG9y
KiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1
bGVzKGtSdWxlcyk7Ci0jZWxzZSAvLyBQTEFURk9STShJT1MpCiAgICAgLy8gVXNlIHRoZSBzcGVj
aWFsIFRoYWkgY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGZvciBhbGwgbG9jYWxlcwotICAgIHN0
YXRpYyBVQnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRp
YWxpemVJdGVyYXRvcihVQlJLX0NIQVJBQ1RFUiwgInRoIik7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGlu
aXRpYWxpemVJdGVyYXRvcihVQlJLX0NIQVJBQ1RFUiwgInRoIik7CiAjZW5kaWYgLy8gIVBMQVRG
T1JNKElPUykKIAotICAgIGlmICghc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcikKKyAgICBp
ZiAoIXN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IuZ2V0KCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwotCi0gICAgcmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqc3RhdGljQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvciwgc3RyaW5nKTsKKyAgICByZXR1cm4gc2V0VGV4dEZvckl0ZXJhdG9yKCoo
c3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvci5nZXQoKSksIHN0cmluZyk7CiB9CiAKIFVCcmVh
a0l0ZXJhdG9yKiBhY3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcsIGNv
bnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBjb25zdCBVQ2hhciogcHJpb3JDb250ZXh0LCB1bnNp
Z25lZCBwcmlvckNvbnRleHRMZW5ndGgsIExpbmVCcmVha0l0ZXJhdG9yTW9kZSBtb2RlLCBib29s
IGlzQ0pLKQpAQCAtMzE5LDQ0MiArMjA2LDIwIEBAIHZvaWQgcmVsZWFzZUxpbmVCcmVha0l0ZXJh
dG9yKFVCcmVha0l0ZXJhdG9yKiBpdGVyYXRvcikKICAgICBMaW5lQnJlYWtJdGVyYXRvclBvb2w6
OnNoYXJlZFBvb2woKS5wdXQoaXRlcmF0b3IpOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciogdWF4
MTRQcm9sb2d1ZSA9Ci0gICAgIiEhY2hhaW47IgotICAgICIhIUxCQ01Ob0NoYWluOyIKLSAgICAi
ISFsb29rQWhlYWRIYXJkQnJlYWs7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdu
bWVudHNCZWZvcmUgPQotICAgIC8vIGV4cGxpY2l0bHkgZW51bWVyYXRlICRDSiBzaW5jZSBJQ1Ug
dmVyc2lvbnMgcHJpb3IgdG8gNDkgZG9uJ3Qgc3VwcG9ydCA6TGluZUJyZWFrPUNvbmRpdGlvbmFs
X0phcGFuZXNlX1N0YXJ0ZXI6Ci0gICAgIiRDSiA9IFsiCi0jaWYgKFVfSUNVX1ZFUlNJT05fTUFK
T1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KQotICAgICI6TGlu
ZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNlX1N0YXJ0ZXI6IgotI2Vsc2UKLSAgICAiXFx1MzA0
MVxcdTMwNDNcXHUzMDQ1XFx1MzA0N1xcdTMwNDlcXHUzMDYzXFx1MzA4M1xcdTMwODVcXHUzMDg3
XFx1MzA4RVxcdTMwOTVcXHUzMDk2XFx1MzBBMVxcdTMwQTNcXHUzMEE1XFx1MzBBNyIKLSAgICAi
XFx1MzBBOVxcdTMwQzNcXHUzMEUzXFx1MzBFNVxcdTMwRTdcXHUzMEVFXFx1MzBGNVxcdTMwRjZc
XHUzMEZDIgotICAgICJcXHUzMUYwXFx1MzFGMVxcdTMxRjJcXHUzMUYzXFx1MzFGNFxcdTMxRjVc
XHUzMUY2XFx1MzFGN1xcdTMxRjhcXHUzMUY5XFx1MzFGQVxcdTMxRkJcXHUzMUZDXFx1MzFGRFxc
dTMxRkVcXHUzMUZGIgotICAgICJcXHVGRjY3XFx1RkY2OFxcdUZGNjlcXHVGRjZBXFx1RkY2Qlxc
dUZGNkNcXHVGRjZEXFx1RkY2RVxcdUZGNkZcXHVGRjcwIgotI2VuZGlmCi0gICAgIl07IjsKLQot
c3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZUNKSyA9Ci0gICAg
IiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAgICAiJEVYX1NVQiA9IFtcXHUwMDIxXFx1
MDAzRlxcdUZGMDFcXHVGRjFGXTsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIg
PSBbXFx1MjAyNVxcdTIwMjZdOyIKLSAgICAiJElTX1NVQiA9IFtcXHUwMDNBXFx1MDAzQl07Igot
ICAgICIkTlNfU1VCID0gW1xcdTIwM0NcXHUyMDQ3XFx1MjA0OFxcdTIwNDlcXHUzMDA1XFx1MzAx
Q1xcdTMwM0JcXHUzMDlEXFx1MzA5RVxcdTMwQTBcXHUzMEZCXFx1MzBGRFxcdTMwRkVcXHVGRjFB
XFx1RkYxQlxcdUZGNjVdOyIKLSAgICAiJFBPX1NVQiA9IFtcXHUwMDI1XFx1MDBBMlxcdTAwQjBc
XHUyMDMwXFx1MjAzMlxcdTIwMzNcXHUyMTAzXFx1RkYwNVxcdUZGRTBdOyIKLSAgICAiJFBSX1NV
QiA9IFtcXHUwMDI0XFx1MDBBM1xcdTAwQTVcXHUyMEFDXFx1MjExNlxcdUZGMDRcXHVGRkUxXFx1
RkZFNV07IgotICAgICIkSURfQUREID0gWyRDSiAkQkFfU1VCICRFWF9TVUIgJElOX1NVQiAkSVNf
U1VCICROU19TVUIgJFBPX1NVQiAkUFJfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1z
dGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlTm9uQ0pLID0KLSAg
ICAiJEJBX1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcn
OyIKLSAgICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAgICIkSVNfU1VCID0gJyc7
IgotICAgICIkTlNfU1VCID0gW1xcdTMwMDVcXHUzMDNCXFx1MzA5RFxcdTMwOUVcXHUzMEZEXFx1
MzBGRV07IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIk
SURfQUREID0gWyRDSiAkSU5fU1VCICROU19TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0K
LXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pLID0KLSAg
ICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAgICIkRVhfU1VCID0gJyc7IgotICAg
ICIkSU5fU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSVNfU1VCID0gJyc7
IgotICAgICIkTlNfU1VCID0gW1xcdTMwMUNcXHUzMEEwXTsiCi0gICAgIiRQT19TVUIgPSAnJzsi
Ci0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENKICRCQV9TVUIgJE5TX1NV
Ql07IgotICAgICIkTlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNz
aWdubWVudHNDdXN0b21Ob3JtYWxOb25DSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIk
RVhfU1VCID0gJyc7IgotICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gJyc7Igot
ICAgICIkSVNfU1VCID0gJyc7IgotICAgICIkTlNfU1VCID0gJyc7IgotICAgICIkUE9fU1VCID0g
Jyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0gWyRDSl07IgotICAgICIk
TlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0
b21TdHJpY3RDSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7Igot
ICAgICIkSURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gJyc7IgotICAgICIkSVNfU1VCID0g
Jyc7IgotICAgICIkTlNfU1VCID0gJyc7IgotICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJf
U1VCID0gJyc7IgotICAgICIkSURfQUREID0gJyc7IgotICAgICIkTlNfQUREID0gWyRDSl07IjsK
LQotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLICAgICAgdWF4MTRB
c3NpZ25tZW50c0N1c3RvbVN0cmljdENKSwotI2RlZmluZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9t
RGVmYXVsdENKSyAgICAgICAgdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSwotI2RlZmlu
ZSB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tRGVmYXVsdE5vbkNKSyAgICAgdWF4MTRBc3NpZ25tZW50
c0N1c3RvbVN0cmljdE5vbkNKSwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50
c0FmdGVyID0KLSAgICAiJEFJID0gWzpMaW5lQnJlYWsgPSBBbWJpZ3VvdXM6XTsiCi0gICAgIiRB
TCA9IFs6TGluZUJyZWFrID0gQWxwaGFiZXRpYzpdOyIKLSAgICAiJEJBID0gW1s6TGluZUJyZWFr
ID0gQnJlYWtfQWZ0ZXI6XSAtICRCQV9TVUJdOyIKLSAgICAiJEJCID0gWzpMaW5lQnJlYWsgPSBC
cmVha19CZWZvcmU6XTsiCi0gICAgIiRCSyA9IFs6TGluZUJyZWFrID0gTWFuZGF0b3J5X0JyZWFr
Ol07IgotICAgICIkQjIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JvdGg6XTsiCi0gICAgIiRDQiA9
IFs6TGluZUJyZWFrID0gQ29udGluZ2VudF9CcmVhazpdOyIKLSAgICAiJENMID0gWzpMaW5lQnJl
YWsgPSBDbG9zZV9QdW5jdHVhdGlvbjpdOyIKLSAgICAiJENNID0gWzpMaW5lQnJlYWsgPSBDb21i
aW5pbmdfTWFyazpdOyIKLSAgICAiJENQID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QYXJlbnRoZXNp
czpdOyIKLSAgICAiJENSID0gWzpMaW5lQnJlYWsgPSBDYXJyaWFnZV9SZXR1cm46XTsiCi0gICAg
IiRFWCA9IFtbOkxpbmVCcmVhayA9IEV4Y2xhbWF0aW9uOl0gLSAkRVhfU1VCXTsiCi0gICAgIiRH
TCA9IFs6TGluZUJyZWFrID0gR2x1ZTpdOyIKLSNpZiAoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0g
Pj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkpCi0gICAgIiRITCA9IFs6TGlu
ZUJyZWFrID0gSGVicmV3X0xldHRlcjpdOyIKLSNlbHNlCi0gICAgIiRITCA9IFtbOkhlYnJldzpd
ICYgWzpMZXR0ZXI6XV07IgotI2VuZGlmCi0gICAgIiRIWSA9IFs6TGluZUJyZWFrID0gSHlwaGVu
Ol07IgotICAgICIkSDIgPSBbOkxpbmVCcmVhayA9IEgyOl07IgotICAgICIkSDMgPSBbOkxpbmVC
cmVhayA9IEgzOl07IgotICAgICIkSUQgPSBbW1tbOkxpbmVCcmVhayA9IElkZW9ncmFwaGljOl0g
LSAkQ0pdICRJRF9BRERdIC0gJElEX1NVQl07IgotICAgICIkSU4gPSBbWzpMaW5lQnJlYWsgPSBJ
bnNlcGFyYWJsZTpdIC0gJElOX1NVQl07IgotICAgICIkSVMgPSBbWzpMaW5lQnJlYWsgPSBJbmZp
eF9OdW1lcmljOl0gLSAkSVNfU1VCXTsiCi0gICAgIiRKTCA9IFs6TGluZUJyZWFrID0gSkw6XTsi
Ci0gICAgIiRKViA9IFs6TGluZUJyZWFrID0gSlY6XTsiCi0gICAgIiRKVCA9IFs6TGluZUJyZWFr
ID0gSlQ6XTsiCi0gICAgIiRMRiA9IFs6TGluZUJyZWFrID0gTGluZV9GZWVkOl07IgotICAgICIk
TkwgPSBbOkxpbmVCcmVhayA9IE5leHRfTGluZTpdOyIKLSAgICAiJE5TID0gW1tbWzpMaW5lQnJl
YWsgPSBOb25zdGFydGVyOl0gLSAkQ0pdICROU19BRERdIC0gJE5TX1NVQl07IgotICAgICIkTlUg
PSBbOkxpbmVCcmVhayA9IE51bWVyaWM6XTsiCi0gICAgIiRPUCA9IFs6TGluZUJyZWFrID0gT3Bl
bl9QdW5jdHVhdGlvbjpdOyIKLSAgICAiJFBPID0gW1s6TGluZUJyZWFrID0gUG9zdGZpeF9OdW1l
cmljOl0gLSAkUE9fU1VCXTsiCi0gICAgIiRQUiA9IFtbOkxpbmVCcmVhayA9IFByZWZpeF9OdW1l
cmljOl0gLSAkUFJfU1VCXTsiCi0gICAgIiRRVSA9IFs6TGluZUJyZWFrID0gUXVvdGF0aW9uOl07
IgotICAgICIkUkkgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIKLSAgICAiJFNBID0gWzpM
aW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsiCi0gICAgIiRTRyA9IFs6TGluZUJyZWFrID0g
U3Vycm9nYXRlOl07IgotICAgICIkU1AgPSBbOkxpbmVCcmVhayA9IFNwYWNlOl07IgotICAgICIk
U1kgPSBbOkxpbmVCcmVhayA9IEJyZWFrX1N5bWJvbHM6XTsiCi0gICAgIiRXSiA9IFs6TGluZUJy
ZWFrID0gV29yZF9Kb2luZXI6XTsiCi0gICAgIiRYWCA9IFs6TGluZUJyZWFrID0gVW5rbm93bjpd
OyIKLSAgICAiJFpXID0gWzpMaW5lQnJlYWsgPSBaV1NwYWNlOl07IgotICAgICIkWldKID0gXFx1
MjAwRDsiCi0gICAgIiRFbW9qaVZhciA9IFxcdUZFMEY7IgotI2lmIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVAotICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUyNkY5IFxc
dTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EtXFxV
MDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAwMUY0Njkg
XFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxVMDAwMUY0
NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcgXFxVMDAw
MUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxV
MDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQt
XFxVMDAwMUY2QjYgXFx1MjY5NS1cXHUyNjk2IFxcdTI3MDggXFxVMDAwMUYzM0UgXFxVMDAwMUYz
NzMgXFxVMDAwMUYzOTMgXFxVMDAwMUYzQTQgXFxVMDAwMUYzQTggXFxVMDAwMUYzRUIgXFxVMDAw
MUYzRUQgXFxVMDAwMUY0QkItXFxVMDAwMUY0QkMgXFxVMDAwMUY1MjcgXFxVMDAwMUY1MkMgXFxV
MDAwMUY2ODAgXFxVMDAwMUY2OTIgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzctXFxVMDAwMUY5Mzkg
XFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBa
V0ogc2VxdWVuY2VzCi0gICAgIiRFbW9qaUZvck1vZHMgPSBbXFx1MjYxRCBcXHUyNkY5IFxcdTI3
MEEtXFx1MjcwRCBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjND
QSBcXFUwMDAxRjNDQiBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAx
RjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUw
MDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU3NSBc
XFUwMDAxRjU5MCBcXFUwMDAxRjU5NSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0
NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAx
RjZCNiBcXFUwMDAxRjZDMCBcXFUwMDAxRjkxOCBcXFUwMDAxRjNDMiBcXFUwMDAxRjNDNyBcXFUw
MDAxRjNDQyBcXFUwMDAxRjU3NCBcXFUwMDAxRjU3QSBcXFUwMDAxRjZDQyBcXFUwMDAxRjkxOS1c
XFUwMDAxRjkxRSBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzMCBcXFUwMDAxRjkzMy1cXFUwMDAxRjkz
OSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRy
aWNrIG1vZGlmaWVycwotI2Vsc2UKLSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAw
MDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDhCXTsiCi0gICAgIiRFbW9qaUZvck1vZHMgPSBb
XFx1MjYxRCBcXHUyNzBBLVxcdTI3MEMgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYz
QzQgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0EgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAw
MUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0NkUtXFxV
MDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUt
XFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2
NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAw
MUY2QjYgXFxVMDAwMUY2QzBdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2Rp
ZmllcnMKLSNlbmRpZgotICAgICIkRW1vamlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZG
XTsiCi0gICAgIiRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRleHQ6XTsi
Ci0gICAgIiRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07IgotICAgICIkQUxjbSA9ICRB
TFBsdXMgJENNKjsiCi0gICAgIiRCQWNtID0gJEJBICRDTSo7IgotICAgICIkQkJjbSA9ICRCQiAk
Q00qOyIKLSAgICAiJEIyY20gPSAkQjIgJENNKjsiCi0gICAgIiRDTGNtID0gJENMICRDTSo7Igot
ICAgICIkQ1BjbSA9ICRDUCAkQ00qOyIKLSAgICAiJEVYY20gPSAkRVggJENNKjsiCi0gICAgIiRH
TGNtID0gJEdMICRDTSo7IgotICAgICIkSExjbSA9ICRITCAkQ00qOyIKLSAgICAiJEhZY20gPSAk
SFkgJENNKjsiCi0gICAgIiRIMmNtID0gJEgyICRDTSo7IgotICAgICIkSDNjbSA9ICRIMyAkQ00q
OyIKLSAgICAiJElEY20gPSAkSUQgJENNKjsiCi0gICAgIiRJTmNtID0gJElOICRDTSo7IgotICAg
ICIkSVNjbSA9ICRJUyAkQ00qOyIKLSAgICAiJEpMY20gPSAkSkwgJENNKjsiCi0gICAgIiRKVmNt
ID0gJEpWICRDTSo7IgotICAgICIkSlRjbSA9ICRKVCAkQ00qOyIKLSAgICAiJE5TY20gPSAkTlMg
JENNKjsiCi0gICAgIiROVWNtID0gJE5VICRDTSo7IgotICAgICIkT1BjbSA9ICRPUCAkQ00qOyIK
LSAgICAiJFBPY20gPSAkUE8gJENNKjsiCi0gICAgIiRQUmNtID0gJFBSICRDTSo7IgotICAgICIk
UVVjbSA9ICRRVSAkQ00qOyIKLSAgICAiJFJJY20gPSAkUkkgJENNKjsiCi0gICAgIiRTWWNtID0g
JFNZICRDTSo7IgotICAgICIkV0pjbSA9ICRXSiAkQ00qOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFy
KiB1YXgxNEZvcndhcmQgPQotICAgICIhIWZvcndhcmQ7IgotICAgICIkQ0FOX0NNID0gW14kU1Ag
JEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOyIKLSAgICAiJENBTlRfQ00gPSBbJFNQICRCSyAkQ1Ig
JExGICROTCAkWlcgJENNXTsiCi0gICAgIiRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENSICRMRiAk
TkwgJFpXICRTUF07IgotICAgICIkQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMg
JFNZICRXSiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOyIKLSAgICAi
JEFMX0ZPTExPVyA9IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07IgotICAgICIkTEI0
QnJlYWtzID0gWyRCSyAkQ1IgJExGICROTF07IgotICAgICIkTEI0Tm9uQnJlYWtzID0gW14kQksg
JENSICRMRiAkTkxdOyIKLSAgICAiJExCOEJyZWFrcyA9IFskTEI0QnJlYWtzICRaV107IgotICAg
ICIkTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJlYWtzXSAtIFskWlddXTsiCi0gICAgIiRMQjE4
Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07IgotICAgICIkTEIxOEJyZWFrcyA9
IFskTEI4QnJlYWtzICRTUF07IgotICAgICIkTEIyME5vbkJyZWFrcyA9IFskTEIxOE5vbkJyZWFr
cyAtICRDQl07IgotICAgICIkQUxQbHVzICRDTSs7IgotICAgICIkQkEgJENNKzsiCi0gICAgIiRC
QiAkQ00rOyIKLSAgICAiJEIyICRDTSs7IgotICAgICIkQ0wgJENNKzsiCi0gICAgIiRDUCAkQ00r
OyIKLSAgICAiJEVYICRDTSs7IgotICAgICIkR0wgJENNKzsiCi0gICAgIiRITCAkQ00rOyIKLSAg
ICAiJEhZICRDTSs7IgotICAgICIkSDIgJENNKzsiCi0gICAgIiRIMyAkQ00rOyIKLSAgICAiJElE
ICRDTSs7IgotICAgICIkSU4gJENNKzsiCi0gICAgIiRJUyAkQ00rOyIKLSAgICAiJEpMICRDTSs7
IgotICAgICIkSlYgJENNKzsiCi0gICAgIiRKVCAkQ00rOyIKLSAgICAiJE5TICRDTSs7IgotICAg
ICIkTlUgJENNKzsiCi0gICAgIiRPUCAkQ00rOyIKLSAgICAiJFBPICRDTSs7IgotICAgICIkUFIg
JENNKzsiCi0gICAgIiRRVSAkQ00rOyIKLSAgICAiJFJJICRDTSs7IgotICAgICIkU1kgJENNKzsi
Ci0gICAgIiRXSiAkQ00rOyIKLSAgICAiJENSICRMRiB7MTAwfTsiCi0gICAgIiRMQjROb25CcmVh
a3M/ICRMQjRCcmVha3MgezEwMH07IgotICAgICIkQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAw
fTsiCi0gICAgIiRDTSsgJExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRMQjROb25CcmVha3MgWyRT
UCAkWlddOyIKLSAgICAiJENBTl9DTSAkQ00qIFskU1AgJFpXXTsiCi0gICAgIiRDTSsgWyRTUCAk
WlddOyIKLSAgICAiJEVtb2ppRm9yU2VxcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM/ICRaV0ogJEVt
b2ppRm9yU2VxczsiCi0gICAgIiRDQU5fQ00gJENNKzsiCi0gICAgIiRDTSs7IgotICAgICIkQ0FO
X0NNICRDTSogJFdKY207IgotICAgICIkTEI4Tm9uQnJlYWtzICRXSmNtOyIKLSAgICAiJENNKyAk
V0pjbTsiCi0gICAgIiRXSmNtICRDQU5UX0NNOyIKLSAgICAiJFdKY20gJENBTl9DTSAkQ00qOyIK
LSAgICAiJEdMY20gJENBTl9DTSAkQ00qOyIKLSAgICAiJEdMY20gJENBTlRfQ007IgotICAgICJb
WyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0gJENNKiAkR0xjbTsiCi0gICAgIiRDTSsg
R0xjbTsiCi0gICAgIiRMQjhOb25CcmVha3MgJENMOyIKLSAgICAiJENBTl9DTSAkQ00qICRDTDsi
Ci0gICAgIiRDTSsgJENMOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkQ1A7IgotICAgICIkQ0FOX0NN
ICRDTSogJENQOyIKLSAgICAiJENNKyAkQ1A7IgotICAgICIkTEI4Tm9uQnJlYWtzICRFWDsiCi0g
ICAgIiRDQU5fQ00gJENNKiAkRVg7IgotICAgICIkQ00rICRFWDsiCi0gICAgIiRMQjhOb25CcmVh
a3MgJElTOyIKLSAgICAiJENBTl9DTSAkQ00qICRJUzsiCi0gICAgIiRDTSsgJElTOyIKLSAgICAi
JExCOE5vbkJyZWFrcyAkU1k7IgotICAgICIkQ0FOX0NNICRDTSogJFNZOyIKLSAgICAiJENNKyAk
U1k7IgotICAgICIkT1BjbSAkU1AqICRDQU5fQ00gJENNKjsiCi0gICAgIiRPUGNtICRTUCogJENB
TlRfQ007IgotICAgICIkT1BjbSAkU1ArICRDTSsgJEFMX0ZPTExPVz87IgotICAgICIkUVVjbSAk
U1AqICRPUGNtOyIKLSAgICAiKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207IgotICAgICIkQjJj
bSAkU1AqICRCMmNtOyIKLSAgICAiJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsiCi0gICAgIiRD
TSsgJFFVY207IgotICAgICIkUVVjbSAuPzsiCi0gICAgIiRRVWNtICRMQjE4Tm9uQnJlYWtzICRD
TSo7IgotICAgICIkTEIyME5vbkJyZWFrcyAkQ00qICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAi
Ci0gICAgIiRCQmNtIFteJENCXTsiCi0gICAgIiRCQmNtICRMQjIwTm9uQnJlYWtzICRDTSo7Igot
ICAgICIkSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsiCi0gICAgIiRTWWNtICRITGNtOyIK
LSAgICAiKCRBTGNtIHwgJEhMY20pICRJTmNtOyIKLSAgICAiJENNKyAkSU5jbTsiCi0gICAgIiRF
WGNtICRJTmNtOyIKLSAgICAiJElEY20gJElOY207IgotICAgICIkSU5jbSAkSU5jbTsiCi0gICAg
IiROVWNtICRJTmNtOyIKLSAgICAiJElEY20gJFBPY207IgotICAgICIkQUxjbSAkTlVjbTsiCi0g
ICAgIiRITGNtICROVWNtOyIKLSAgICAiJENNKyAkTlVjbTsiCi0gICAgIiROVWNtICRBTGNtOyIK
LSAgICAiJE5VY20gJEhMY207IgotICAgICIkUFJjbSAkSURjbTsiCi0gICAgIiRQUmNtICgkQUxj
bSB8ICRITGNtKTsiCi0gICAgIiRQT2NtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIigkUFJjbSB8
ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVjbSAoJE5VY20gfCAkU1ljbSB8ICRJU2NtKSog
KCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9jbSk/OyIKLSAgICAiJEpMY20gKCRKTGNtIHwg
JEpWY20gfCAkSDJjbSB8ICRIM2NtKTsiCi0gICAgIigkSlZjbSB8ICRIMmNtKSAoJEpWY20gfCAk
SlRjbSk7IgotICAgICIoJEpUY20gfCAkSDNjbSkgJEpUY207IgotICAgICIoJEpMY20gfCAkSlZj
bSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207IgotICAgICIoJEpMY20gfCAkSlZjbSB8
ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJFBPY207IgotICAgICIkUFJjbSAoJEpMY20gfCAkSlZj
bSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSk7IgotICAgICIoJEFMY20gfCAkSExjbSkgKCRBTGNt
IHwgJEhMY20pOyIKLSAgICAiJENNKyAoJEFMY20gfCAkSExjbSk7IgotICAgICIkSVNjbSAoJEFM
Y20gfCAkSExjbSk7IgotICAgICIoJEFMY20gfCAkSExjbSB8ICROVWNtKSAkT1BjbTsiCi0gICAg
IiRDTSsgJE9QY207IgotICAgICIkQ1BjbSAoJEFMY20gfCAkSExjbSB8ICROVWNtKTsiCi0jaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRSSWNtICRSSWNtOyIKLSNlbmRpZgotICAg
ICIkRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsiOwotCi1zdGF0aWMgY29uc3Qg
Y2hhciogdWF4MTRSZXZlcnNlID0KLSAgICAiISFyZXZlcnNlOyIKLSAgICAiJENNKyAkQUxQbHVz
OyIKLSAgICAiJENNKyAkQkE7IgotICAgICIkQ00rICRCQjsiCi0gICAgIiRDTSsgJEIyOyIKLSAg
ICAiJENNKyAkQ0w7IgotICAgICIkQ00rICRDUDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAiJENN
KyAkR0w7IgotICAgICIkQ00rICRITDsiCi0gICAgIiRDTSsgJEhZOyIKLSAgICAiJENNKyAkSDI7
IgotICAgICIkQ00rICRIMzsiCi0gICAgIiRDTSsgJElEOyIKLSAgICAiJENNKyAkSU47IgotICAg
ICIkQ00rICRJUzsiCi0gICAgIiRDTSsgJEpMOyIKLSAgICAiJENNKyAkSlY7IgotICAgICIkQ00r
ICRKVDsiCi0gICAgIiRDTSsgJE5TOyIKLSAgICAiJENNKyAkTlU7IgotICAgICIkQ00rICRPUDsi
Ci0gICAgIiRDTSsgJFBPOyIKLSAgICAiJENNKyAkUFI7IgotICAgICIkQ00rICRRVTsiCi0jaWYg
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRDTSsgJFJJOyIKLSNlbmRpZgotICAgICIk
Q00rICRTWTsiCi0gICAgIiRDTSsgJFdKOyIKLSAgICAiJENNKzsiCi0gICAgIiRBTF9GT0xMT1cg
JENNKyAvIChbJEJLICRDUiAkTEYgJE5MICRaVyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQ
KyAkQ00qIChbXiRPUCAkQ00gJFNQXSB8IFskQUwge2VvZn1dKSk7IgotICAgICJbJFBSXSAvICRD
TSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQIHtlb2Z9XTsiCi0gICAgIiRMQjRCcmVha3MgWyRM
QjROb25CcmVha3MtJENNXTsiCi0gICAgIiRMQjRCcmVha3MgJENNKyAkQ0FOX0NNOyIKLSAgICAi
JExGICRDUjsiCi0gICAgIlskU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiWyRT
UCAkWlddICRDTSsgJENBTl9DTTsiCi0gICAgIiRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2Rz
PyAkRW1vamlWYXI/ICRFbW9qaUZvclNlcXM7IgotICAgICIkQ00rICRDQU5fQ007IgotICAgICIk
Q00qICRXSiAkQ00qICRDQU5fQ007IgotICAgICIkQ00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01d
OyIKLSAgICAiJENBTlRfQ00gJENNKiAkV0o7IgotICAgICIkQ00qICRDQU5fQ00gJENNKiAkV0o7
IgotICAgICIkQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00gJFNQICRCQSAkSFldXTsi
Ci0gICAgIiRDQU5UX0NNICRDTSogJEdMOyIKLSAgICAiJENNKiAkQ0FOX0NNICRDTSogJEdMOyIK
LSAgICAiJENMICRDTSsgJENBTl9DTTsiCi0gICAgIiRDUCAkQ00rICRDQU5fQ007IgotICAgICIk
RVggJENNKyAkQ0FOX0NNOyIKLSAgICAiJElTICRDTSsgJENBTl9DTTsiCi0gICAgIiRTWSAkQ00r
ICRDQU5fQ007IgotICAgICIkQ0wgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRDUCBbJExC
OE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJEVYIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIk
SVMgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOyIK
LSAgICAiWyRDTCAkQ1AgJEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgIgotICAgICIk
Q00qICRDQU5fQ00gJFNQKiAkQ00qICRPUDsiCi0gICAgIiRDQU5UX0NNICRTUCogJENNKiAkT1A7
IgotICAgICIkQUxfRk9MTE9XPyAkQ00rICRTUCAkU1AqICRDTSogJE9QOyIKLSAgICAiJEFMX0ZP
TExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsiCi0gICAgIiRDTSogJEFMX0ZPTExPV19DTSAk
Q00rICRTUCsgJENNKiAkT1A7IgotICAgICIkU1kgJENNICRTUCsgJE9QOyIKLSAgICAiJENNKiAk
T1AgJFNQKiAkQ00qICRRVTsiCi0gICAgIiRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQKTsi
Ci0gICAgIiRDTSogJEIyICRTUCogJENNKiAkQjI7IgotICAgICIkQ00qICRRVSAkQ00qICRDQU5f
Q007IgotICAgICIkQ00qICRRVSAkTEIxOE5vbkJyZWFrczsiCi0gICAgIiRDTSogJENBTl9DTSAk
Q00qICRRVTsiCi0gICAgIiRDQU5UX0NNICRDTSogJFFVOyIKLSAgICAiJENNKiAoJEJBIHwgJEhZ
IHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJENNKiBbJExCMjBOb25C
cmVha3MtJENNXSAkQ00qICRCQjsiCi0gICAgIlteJENCXSAkQ00qICRCQjsiCi0gICAgIlteJENC
XSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOyIKLSAgICAiJENNKiAkSEwgJENNKiAkU1k7Igot
ICAgICIkQ00qICRJTiAkQ00qICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogJElOICRDTSog
JEVYOyIKLSAgICAiJENNKiAkSU4gJENNKiAkSUQ7IgotICAgICIkQ00qICRJTiAkQ00qICRJTjsi
Ci0gICAgIiRDTSogJElOICRDTSogJE5VOyIKLSAgICAiJENNKiAkUE8gJENNKiAkSUQ7IgotICAg
ICIkQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAk
SEwpICRDTSogJE5VOyIKLSAgICAiJENNKiAkSUQgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQ
bHVzIHwgJEhMKSAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBP
OyIKLSAgICAiKCRDTSogKCRQUiB8ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgk
TlUgfCAkSVMgfCAkU1kpKSogJENNKiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBS
IHwgJFBPKSk/OyIKLSAgICAiJENNKiAoJEgzIHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsi
Ci0gICAgIiRDTSogKCRKVCB8ICRKVikgJENNKiAoJEgyIHwgJEpWKTsiCi0gICAgIiRDTSogJEpU
ICRDTSogKCRIMyB8ICRKVCk7IgotICAgICIkQ00qICRJTiAkQ00qICgkSDMgfCAkSDIgfCAkSlQg
fCAkSlYgfCAkSkwpOyIKLSAgICAiJENNKiAkUE8gJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpW
IHwgJEpMKTsiCi0gICAgIiRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkgJENNKiAk
UFI7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsiCi0g
ICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJElTOyIKLSAgICAiJENNKiAkT1AgJENNKiAo
JEFMUGx1cyB8ICRITCB8ICROVSk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAk
Q00qICRDUDsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRDTSogJFJJICRD
TSogJFJJOyIKLSNlbmRpZgotICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9k
czsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRTYWZlRm9yd2FyZCA9Ci0gICAgIiEhc2Fm
ZV9mb3J3YXJkOyIKLSAgICAiWyRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRT
UCAkZGljdGlvbmFyeV0rIFteJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJGRp
Y3Rpb25hcnldOyIKLSAgICAiJGRpY3Rpb25hcnkgJGRpY3Rpb25hcnk7IjsKLQotc3RhdGljIGNv
bnN0IGNoYXIqIHVheDE0U2FmZVJldmVyc2UgPQotICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAg
IiRDTSsgW14kQ00gJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOyIKLSAgICAiJENNKyAkU1AgLyAu
OyIKLSAgICAiJFNQKyAkQ00qICRPUDsiCi0gICAgIiRTUCsgJENNKiAkUVU7IgotICAgICIkU1Ar
ICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIkU1ArICRDTSogJEIyOyIKLSAgICAiJENNKiAoJEhZ
IHwgJEJBKSAkQ00qICRITDsiCi0gICAgIigkQ00qICgkSVMgfCAkU1kpKSsgJENNKiAkTlU7Igot
ICAgICIoJENMIHwgJENQKSAkQ00qICgkTlUgfCAkSVMgfCAkU1kpOyIKLSAgICAiJGRpY3Rpb25h
cnkgJGRpY3Rpb25hcnk7IjsKLQogc3RhdGljIFN0cmluZyBtYXBMaW5lSXRlcmF0b3JNb2RlVG9S
dWxlcyhMaW5lQnJlYWtJdGVyYXRvck1vZGUgbW9kZSwgYm9vbCBpc0NKSykKIHsKLSAgICBTdHJp
bmdCdWlsZGVyIHJ1bGVzQnVpbGRlcjsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0UHJv
bG9ndWUpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0JlZm9yZSk7
CiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OkRl
ZmF1bHQ6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1l
bnRzQ3VzdG9tRGVmYXVsdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pL
KTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJh
dG9yVUFYMTRDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxlczsKICAg
ICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6TG9vc2U6Ci0gICAgICAgIHJ1bGVzQnVpbGRl
ci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VDSksgOiB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tTG9vc2VOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0
dXJuIGlzQ0pLID8gbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLUnVsZXMgOiBsaW5lQnJl
YWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJh
dG9yTW9kZTo6Tm9ybWFsOgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4
MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3Jt
YWxOb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpTdHJpY3Q6
Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQoaXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3Vz
dG9tU3RyaWN0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdE5vbkNKSyk7Ci0gICAg
ICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7
CiAgICAgfQotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRBc3NpZ25tZW50c0FmdGVyKTsK
LSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0Rm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVy
LmFwcGVuZCh1YXgxNFJldmVyc2UpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRTYWZl
Rm9yd2FyZCk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNFNhZmVSZXZlcnNlKTsKLSAg
ICByZXR1cm4gcnVsZXNCdWlsZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuICIiOwogfQogCiAvLyBSZWNvZ25pemUgQkNQNDcgY29tcGxpYW50IHBy
aW1hcnkgbGFuZ3VhZ2UgdmFsdWVzIG9mICd6aCcsICdqYScsICdrbycKQEAgLTc4OCw5ICsyNTMs
MjkgQEAgVUJyZWFrSXRlcmF0b3IqIG9wZW5MaW5lQnJlYWtJdGVyYXRvcihjb25zdCBBdG9taWNT
dHJpbmcmIGxvY2FsZSwgTGluZUJyZWFrSXRlcmEKICAgICBpZiAobW9kZSA9PSBMaW5lQnJlYWtJ
dGVyYXRvck1vZGU6OkRlZmF1bHQpCiAgICAgICAgIHVicmtJdGVyID0gdWJya19vcGVuKFVCUktf
TElORSwgbG9jYWxlSXNFbXB0eSA/IGN1cnJlbnRUZXh0QnJlYWtMb2NhbGVJRCgpIDogbG9jYWxl
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIDAsIDAsICZvcGVuU3RhdHVzKTsKICAgICBlbHNlIHsK
LSAgICAgICAgVVBhcnNlRXJyb3IgcGFyc2VTdGF0dXM7Ci0gICAgICAgIGF1dG8gcnVsZXMgPSBt
YXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7Ci0gICAgICAgIHVicmtJdGVy
ID0gdWJya19vcGVuUnVsZXMoU3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJz
KCksIHJ1bGVzLmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVzKTsKKyAg
ICAgICAgQnJlYWtpbmdSdWxlU2V0IHJ1bGVTZXQgPSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9u
Q0pLOworICAgICAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVy
YXRvck1vZGU6OkRlZmF1bHQ6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2lu
Z1J1bGVTZXQ6OlVBWDE0Q0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6TG9vc2U6
CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9v
c2VDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0TG9vc2VOb25DSks7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Ok5vcm1hbDoKKyAgICAg
ICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxDSksg
OiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9ybWFsTm9uQ0pLOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpTdHJpY3Q6CisgICAgICAgICAg
ICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Q0pLIDogQnJl
YWtpbmdSdWxlU2V0OjpVQVgxNFN0cmljdE5vbkNKSzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3JGb3JS
dWxlU2V0KHJ1bGVTZXQpKQorICAgICAgICAgICAgdWJya0l0ZXIgPSByZWludGVycHJldF9jYXN0
PFVCcmVha0l0ZXJhdG9yKj4oaXRlcmF0b3IpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
IFVQYXJzZUVycm9yIHBhcnNlU3RhdHVzOworICAgICAgICAgICAgYXV0byBydWxlcyA9IG1hcExp
bmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsKKyAgICAgICAgICAgIHVicmtJdGVy
ID0gdWJya19vcGVuUnVsZXMoU3RyaW5nVmlldyhydWxlcykudXBjb252ZXJ0ZWRDaGFyYWN0ZXJz
KCksIHJ1bGVzLmxlbmd0aCgpLCAwLCAwLCAmcGFyc2VTdGF0dXMsICZvcGVuU3RhdHVzKTsKKyAg
ICAgICAgfQogICAgIH0KICAgICAvLyBsb2NhbGUgY29tZXMgZnJvbSBhIHdlYiBwYWdlIGFuZCBp
dCBjYW4gYmUgaW52YWxpZCwgbGVhZGluZyBJQ1UKICAgICAvLyB0byBmYWlsLCBpbiB3aGljaCBj
YXNlIHdlIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCBsb2NhbGUuCkBAIC04MTEsNiArMjk2LDcg
QEAgdm9pZCBjbG9zZUxpbmVCcmVha0l0ZXJhdG9yKFVCcmVha0l0ZXJhdG9yKiYgaXRlcmF0b3Ip
CiB7CiAgICAgVUJyZWFrSXRlcmF0b3IqIHVicmtJdGVyID0gaXRlcmF0b3I7CiAgICAgQVNTRVJU
KHVicmtJdGVyKTsKKyAgICAvLyBGSVhNRTogVXNlIFJBSUkgdG8gZG8gdGhpcyBpbnN0ZWFkLgog
ICAgIHVicmtfY2xvc2UodWJya0l0ZXIpOwogICAgIGl0ZXJhdG9yID0gbnVsbHB0cjsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAppbmRleCBiY2Y0NGMwN2E0ZWM5MWI1
MTQ2N2MyNGY0ZmU3MTZlZDM0ZGJjYzE1Li42ZjhhMWVmZjc0OTliY2JlOWE4ODAyN2MwMzMxN2Vi
NjJjNGIyNjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCkBAIC0y
OSw2ICsyOSwzMCBAQCBuYW1lc3BhY2UgV1RGIHsKIAogZW51bSBjbGFzcyBMaW5lQnJlYWtJdGVy
YXRvck1vZGUgeyBEZWZhdWx0LCBMb29zZSwgTm9ybWFsLCBTdHJpY3QgfTsKIAorZW51bSBjbGFz
cyBCcmVha2luZ1J1bGVTZXQgeworICAgIEN1cnNvck1vdmVtZW50LAorICAgIFVBWDE0Q0pLLAor
ICAgIFVBWDE0Tm9uQ0pLLAorICAgIFVBWDE0TG9vc2VDSkssCisgICAgVUFYMTRMb29zZU5vbkNK
SywKKyAgICBVQVgxNE5vcm1hbENKSywKKyAgICBVQVgxNE5vcm1hbE5vbkNKSywKKyAgICBVQVgx
NFN0cmljdENKSywKKyAgICBVQVgxNFN0cmljdE5vbkNKSworfTsKKworZXh0ZXJuIGNvbnN0IGNo
YXIqIGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5l
QnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZU5vbkNKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFyKiBsaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciogbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNoYXIqIGxp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktSdWxlczsKKworVUJyZWFrSXRlcmF0b3Iq
IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpOworCiAvLyBUaGlzIGlz
IHNpbWlsYXIgdG8gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMsIGJ1dCBp
cyBzdWJqZWN0IHRvCiAvLyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUgZXhh
bXBsZSB3aGVyZSB0aGlzIGNhbiBiZSBkaWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVyIGJyZWFr
IGl0ZXJhdG9yIGlzIFRoYWkgcHJlcGVuZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQyLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5h
bElDVU1hYy5tbSBiL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50
ZXJuYWxJQ1VNYWMubW0KaW5kZXggYmVmNWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVlOGU4OGEz
ODkyYy4uYTRmMDAzMmFjNjM3YWVhZTA3YzNlOTEyNmRjMjMwMGVhZjAwODdhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1h
Yy5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVy
bmFsSUNVTWFjLm1tCkBAIC0yMSwxMiArMjEsMTgwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAiVGV4
dEJyZWFrSXRlcmF0b3IuaCIKKyNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4KKyNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CiAKKyNkZWZpbmUgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JV
TEVTIChVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiAoKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1MpICYm
IF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkpKQorCisjaWYgVVNF
X1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JVTEVTCisjaW5jbHVkZSA8dW5pY29kZS91ZGF0YS5oPgor
I2VuZGlmCisKK0BpbnRlcmZhY2UgV1RGQnVuZGxlRmluZGVyIDogTlNPYmplY3QKK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIFdURkJ1bmRsZUZpbmRlcgorQGVuZAorCiBuYW1lc3BhY2UgV1RGIHsK
IAogc3RhdGljIGNvbnN0IGludCBtYXhMb2NhbGVTdHJpbmdMZW5ndGggPSAzMjsKIAorI2lmIFVT
RV9QUkVDT01QSUxFRF9CUkVBS0lOR19SVUxFUworc3RhdGljIFVEYXRhTWVtb3J5KiBicmVha0l0
ZXJhdG9yUmVzb3VyY2UoTlNTdHJpbmcgKmZpbGVOYW1lQmFzZSkKK3sKKyAgICBOU0J1bmRsZSAq
YnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXVEZCdW5kbGVGaW5kZXIgY2xhc3Nd
XTsKKyAgICBOU1N0cmluZyAqcGF0aCA9IFtidW5kbGUgcGF0aEZvclJlc291cmNlOmZpbGVOYW1l
QmFzZSBvZlR5cGU6QCJicmsiIGluRGlyZWN0b3J5OkAiQnJlYWtpbmdSdWxlcyJdOworICAgIGlm
ICghcGF0aCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBOU1N0cmluZyAqZGlyZWN0
b3J5ID0gW3BhdGggc3RyaW5nQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50XTsKKyAgICBpZiAo
IWRpcmVjdG9yeSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyNpZiBQTEFURk9STShJT1Mp
CisgICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAgdWRhdGFfc2V0
RmlsZUFjY2VzcyhVREFUQV9GSUxFU19GSVJTVCwgJmVycm9yQ29kZSk7CisgICAgaWYgKFVfRkFJ
TFVSRShlcnJvckNvZGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorCisgICAg
VUVycm9yQ29kZSB1RGF0YUVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAgICBVRGF0YU1lbW9y
eSogcmVzdWx0ID0gdWRhdGFfb3BlbihbZGlyZWN0b3J5IFVURjhTdHJpbmddLCAiYnJrIiwgW2Zp
bGVOYW1lQmFzZSBVVEY4U3RyaW5nXSwgJnVEYXRhRXJyb3JDb2RlKTsKKworI2lmIFBMQVRGT1JN
KElPUykKKyAgICB1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEQVRBX0RFRkFVTFRfQUNDRVNTLCAmZXJy
b3JDb2RlKTsKKyAgICBpZiAoVV9GQUlMVVJFKGVycm9yQ29kZSkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworI2VuZGlmCisKKyAgICBpZiAoVV9GQUlMVVJFKHVEYXRhRXJyb3JDb2RlKSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMg
VUJyZWFrSXRlcmF0b3IqIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKFVEYXRhTWVtb3J5
KiBkYXRhKQoreworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAgICBVQnJlYWtJdGVyYXRv
ciogcmVzdWx0ID0gdWJya19vcGVuQmluYXJ5UnVsZXMoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhf
dCAqPih1ZGF0YV9nZXRNZW1vcnkoZGF0YSkpLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+
OjptYXgoKSwgbnVsbHB0ciwgMCwgJmVycm9yQ29kZSk7CisKKyAgICBpZiAoVV9GQUlMVVJFKGVy
cm9yQ29kZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcigpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFr
SXRlcmF0b3JSZXNvdXJjZShAIkN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyIpKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJh
dG9yRnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRl
cmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4g
cmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRDSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRl
cmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7
CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3Iq
IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRh
KHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30KKwor
c3RhdGljIFVCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksoKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShi
cmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksiKSk7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0
dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0
YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisK
K3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSygp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRh
KGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksi
KSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3Io
YnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAg
cmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLIikpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3Vy
Y2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsK
K30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Q0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJj
ZURhdGEoYnJlYWtJdGVyYXRvclJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dENKSyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVy
YXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsK
KyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciog
bGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSygpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJj
ZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksiKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21S
ZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdl
dCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGNsb25lSXRlcmF0b3IoVUJyZWFrSXRl
cmF0b3IqIGl0ZXJhdG9yKQoreworICAgIGlmICghaXRlcmF0b3IpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAgIGlm
IChhdXRvKiByZXN1bHQgPSB1YnJrX3NhZmVDbG9uZShpdGVyYXRvciwgbnVsbHB0ciwgMCwgJmVy
cm9yQ29kZSkpIHsKKyAgICAgICAgaWYgKFVfU1VDQ0VTUyhlcnJvckNvZGUpKQorICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYK
KworVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVT
ZXQgcnVsZVNldCkKK3sKKyNpZiBVU0VfUFJFQ09NUElMRURfQlJFQUtJTkdfUlVMRVMKKyAgICBz
d2l0Y2ggKHJ1bGVTZXQpIHsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6Q3Vyc29yTW92ZW1l
bnQ6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGN1cnNvck1vdmVtZW50SXRlcmF0b3Io
KSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Q0pLOgorICAgICAgICByZXR1cm4g
Y2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLKCkpOworICAgIGNhc2UgQnJl
YWtpbmdSdWxlU2V0OjpVQVgxNE5vbkNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3Io
bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSygpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNl
dDo6VUFYMTRMb29zZUNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlQ0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgx
NExvb3NlTm9uQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VOb25DSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0
Tm9ybWFsQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJdGVyYXRv
clVBWDE0Tm9ybWFsQ0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1h
bE5vbkNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSygpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJp
Y3RDSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGxpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Tm9u
Q0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Tm9uQ0pLKCkpOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJ1bGVTZXQp
OworICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKIHN0YXRpYyBpbmxpbmUgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVmZXJlbmNlKCkKIHsKICAgICBSZXRh
aW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFkb3B0Q0YoQ0ZQcmVmZXJlbmNlc0Nv
cHlWYWx1ZShDRlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUiKSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9jbWFrZS9XZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQppbmRl
eCA1MTMwZmZjYmNjN2M5Y2U3NTE0YWY0ZDU1M2JkOGE0ZjA1MDE0NTZkLi45ZjgzMzBhZjdmZTM2
M2Q4MDEzZWVlMzRiZWRkN2ZjMTVjYjc5MWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2Vi
S2l0RlMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlCkBAIC0yNyw2ICsy
Nyw3IEBAIGlmIChOT1QgVE9PTFNfRElSKQogZW5kaWYgKCkKIAogc2V0KERFUklWRURfU09VUkNF
U19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMiKQorc2V0KERFUklWRURf
U09VUkNFU19XVEZfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURiIp
CiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllf
RElSfS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZSIpCiBzZXQoREVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUi
KQogc2V0KERFUklWRURfU09VUkNFU19XRUJLSVRMRUdBQ1lfRElSICIke0NNQUtFX0JJTkFSWV9E
SVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIpCkBAIC0zNSw2ICszNiw4IEBAIHNldChE
RVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNv
dXJjZXMvV2ViS2l0MiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUiAi
JHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJJbnNwZWN0b3JVSSIpCiAKIGZp
bGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfSkK
K2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0pCitmaWxlKE1B
S0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMpCiBm
aWxlKE1BS0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0vU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV0VC
SU5TUEVDVE9SVUlfRElSfSkKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRl
eCBiNjUyMTViYzlkYTY3Y2MwMTgzMTg2NGZhMTBkODQxOTQ4MDQ1MzcyLi44Zjk4NGYzMzdhMTIw
YTc1YTk0ZWU4MmFmMzU2YzlkYjI1YjM5MGI0IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDItMDkgIE15bGVzIEMuIE1heGZpZWxk
ICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBicmVha2luZyBp
dGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0
RlMuY21ha2U6CisKIDIwMTctMDItMDcgIE9saXZpZXIgQmxpbiAgPG9saXZpZXIuYmxpbkBzb2Z0
YXRob21lLmNvbT4KIAogICAgICAgICBbR1RLXVtFZmxdIERvIG5vdCByZXF1aXJlIExpYlhzbHQg
aWYgWFNMVCBpcyBkaXNhYmxlZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301097</attachid>
            <date>2017-02-09 16:08:17 -0800</date>
            <delta_ts>2017-02-13 11:52:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20170209160549.patch</filename>
            <type>text/plain</type>
            <size>124090</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExODQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NDNlNDJhZDA3YTMwMzc5MDhkNTRmNDc1YjAxN2EwODQ0MmIzN2U4Li5kODQyYWU4OTRlNWQwZDM1
ZWIwMjZkZTRhZjk4MGY2YzAxODUxOGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wMi0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzEw
NTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5j
bHVkZSB0aGUgYnl0ZWNvZGUgZmlsZXMgaW5zaWRlIHRoZSBKYXZhU2NyaXB0Q29yZSBidW5kbGUu
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDE3LTAyLTA3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBT
aWdpbGxDcmFzaEFuYWx5emVyOjphbmFseXplKCkgc2hvdWxkIHVzZSBhIGRvLXdoaWxlIGxvb3Ag
aW5zdGVhZCBvZiBhIGxhbWJkYS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2IzZjE4MWM5ZDRjY2UwYzQzMzlhMzQzNmI4N2M0
ZWE0OTkzNDk3Yi4uMmRlYWQwZTBiZmJiZGQ3MWNhODE3NTU2ZGJkNTAzNjUwMzA0YjZhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw4NCBAQAorMjAxNy0wMi0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBh
dCBidWlsZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzcxMzEwNTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIG1hY09TIGFuZCBpT1MgU0RLcyBpbmNsdWRlIGEgdG9vbCwgaWN1Z2VuYnJrLCB3aGlj
aCBjb21waWxlcyBJQ1UgYnJrIGJyZWFraW5nCisgICAgICAgIHJ1bGVzIGludG8gYnl0ZWNvZGUu
IFByZXZpb3VzbHksIHRoaXMgY29tcGlsYXRpb24gd2FzIGRvbmUgYXQgcnVudGltZSBpbnNpZGUg
dGhlIElDVQorICAgICAgICB1YnJrX29wZW5SdWxlcygpIGZ1bmN0aW9uLiBNb3ZpbmcgdGhpcyBj
b21waWxhdGlvbiBzdGVwIHRvIGNvbXBpbGUgdGltZSByYXRoZXIgdGhhbgorICAgICAgICBidWls
ZCB0aW1lIGNhdXNlcyBhIHBlcmZvcm1hbmNlIGJvb3N0LgorCisgICAgICAgIFByZXZpb3VzbHks
IHRoZSBzb3VyY2UgZm9yIHRoZSBicmVha2luZyBydWxlcyB3YXMgYXNzZW1ibGVkIGJ5IGNvbmNh
dGVuYXRpbmcgQyBzdHJpbmdzCisgICAgICAgIGF0IHJ1bnRpbWUuIE5vdywgdGhlIHNvdXJjZSBp
cyBjb250YWluZWQgd2l0aGluIGEgZmV3IHRleHQgZmlsZXMgaW5zaWRlCisgICAgICAgIHd0Zi90
ZXh0L0JyZWFraW5nUnVsZXMuIEEgYnVpbGQgc3RlcCAodXNpbmcgYSBNYWtlZmlsZSkgd2lsbCBn
ZW5lcmF0ZSBzb3VyY2UgY29kZQorICAgICAgICBjb250YWluaW5nIHRoZXNlIHN0cmluZ3MsIGFu
ZCBXVEYgd2lsbCBpbmNsdWRlIHRoZXNlIHNvdXJjZSBmaWxlcyBpbiB0aGUgc2FtZSB3YXkgYW55
CisgICAgICAgIG9mIG91ciBwcm9qZWN0cyB1c2UgZ2VuZXJhdGVkIHNvdXJjZXMuIEFkZGl0aW9u
YWxseSwgb24gT1NlcyB3aGljaCBzdXBwb3J0IGl0LCB0aGVzZQorICAgICAgICBzdHJpbmdzIGdl
dCBjb21waWxlZCBkaXJlY3RseSBpbnRvIElDVSBieXRlY29kZSwgYW5kIHRoZW4gaW5jbHVkZWQg
aW4gdGhlIGZyYW1ld29yaworICAgICAgICBidW5kbGUuIEJlY2F1c2UgV1RGIGdldHMgc3RhdGlj
YWxseSBsaW5rZWQgaW50byBKYXZhU2NyaXB0Q29yZSwgdGhpcyBpcyB0aGUgYnVuZGxlCisgICAg
ICAgIHdoaWNoIGluY2x1ZGVzIHRoZSBieXRlY29kZSBmaWxlcy4KKworICAgICAgICBBdCBydW50
aW1lLCB3ZSBmaXJzdCBjaGVjayBpZiB3ZSBoYXZlIGEgZmlsZSBpbiBvdXIgYnVuZGxlIG9mIHRo
ZSBhcHByb3ByaWF0ZSBuYW1lLAorICAgICAgICBhbmQgdGhlbiBzZWUgaWYgSUNVIGNhbiBvcGVu
IGl0IHVzaW5nIGl0cyB1YnJrX29wZW5CaW5hcnlSdWxlcygpIGludGVyZmFjZSAod2hpY2gKKyAg
ICAgICAgaW5jbHVkZXMgYSB2ZXJzaW9uIGNoZWNrKS4gSWYgYW55IG9mIHRoZXNlIGNoZWNrcyBm
YWlsLCBvciBpZiB3ZSdyZSBvbiBhIHBvcnQgd2hpY2gKKyAgICAgICAgZG9lc24ndCBoYXZlIHRo
ZSBub3Rpb24gb2YgYnVuZGxlcywgd2Ugd2lsbCB1c2UgdGhlIEMgc3RyaW5ncyBnZW5lcmF0ZWQg
YWJvdmUsIGFuZAorICAgICAgICBwYXNzIHRoZW0gdG8gdWJya19vcGVuUnVsZXMoKSB0aGUgc2Ft
ZSB3YXkgd2Ugd2VyZSBkb2luZyBiZWZvcmUgdGhpcyBwYXRjaC4KKworICAgICAgICBUaGUgdWJy
a19vcGVuQmluYXJ5UnVsZXMoKSBpbnRlcmZhY2UgaW4gSUNVIHJlcXVpcmVzIGFkZGluZyBzb21l
IG1vcmUgb2YgSUNVJ3MgcHVibGljCisgICAgICAgIGhlYWRlcnMgaW50byBXZWJLaXQuCisKKyAg
ICAgICAgKiBTY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weTogQWRkZWQuCisg
ICAgICAgIChtYWluKTogT3V0cHV0IEMrKyBmaWxlcyByZXByZXNlbnRpbmcgdGhlIGJyZWFraW5n
IHJ1bGVzIHN0cmluZ3MuCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
IEFkZCBhIG5ldyBEZXJpdmVkIFNvdXJjZXMgdGFyZ2V0IHdoaWNoIHVzZXMgYQorICAgICAgICBE
ZXJpdmVkU291cmNlcy5tYWtlIE1ha2VmaWxlLCB0aGUgc2FtZSB3YXkgV2ViS2l0MiwgV2ViQ29y
ZSwgYW5kIEphdmFTY3JpcHRDb3JlIHdyb2suCisgICAgICAgIEFsc28sIGFkZCB0aGUgcnVsZXMg
dGV4dCBmaWxlcyB0byB0aGUgcHJvamVjdC4gVGhlbiwgbWFrZSBXVEYgZGVwZW5kIG9uIHRoaXMg
bmV3CisgICAgICAgIHRhcmdldC4KKyAgICAgICAgKiBpY3UvdW5pY29kZS91YnJrLmg6IEFkZCBk
ZWNsYXJhdGlvbiBmb3IgdWJya19vcGVuQmluYXJ5UnVsZXMoKS4KKyAgICAgICAgKiB3dGYvQ01h
a2VMaXN0cy50eHQ6IEFkZCBidWlsZCBzdGVwcyBmb3Igb3RoZXIgcG9ydHMgdG8gZ2VuZXJhdGUg
dGhlIGJyZWFraW5nCisgICAgICAgIHJ1bGVzIHN0cmluZ3Mgc291cmNlIGZpbGVzLgorICAgICAg
ICAqIHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOiBBZGRlZC4gVGhpcyBpcyB0aGUgcGxhY2Ugd2hl
cmUgaWN1Z2VuYnJrIGlzIGFjdHVhbGx5IAorICAgICAgICBpbnZva2VkLiBJdCBhbHNvIHRyaWdn
ZXJzIHRoZSBzY3JpcHQgKEdlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSkgd2hpY2ggZ2Vu
ZXJhdGVzCisgICAgICAgIHRoZSBDKysgY29kZSBmb3IgdGhlIHJ1bGVzIHN0cmluZ3MuCisgICAg
ICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yRXBpbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZUNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3Rm
L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dDogQWRk
ZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAg
ICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pL
LnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3IuY3BwOgorICAgICAgICAoV1RGOjpjcmVhdGVJdGVyYXRvckZvclJ1
bGVTZXQpOiBVc2VkIGJ5IG90aGVyIHBvcnRzLiBSZXR1cm5pbmcgbnVsbHB0ciBtZWFucyB3ZSBj
YW4ndAorICAgICAgICB1c2UgcHJlY29tcGlsZWQgcnVsZXMuCisgICAgICAgIChXVEY6OmNyZWF0
ZUN1cnNvck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2spOiBVc2VkIGluIHBsYWNlIG9mIHRo
ZSBoYXJkY29kZWQgcnVsZXMKKyAgICAgICAgaW4gY3Vyc29yTW92ZW1lbnRJdGVyYXRvcigpLgor
ICAgICAgICAoV1RGOjpjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKTogUmVtb3ZlIGhhcmRjb2RlZCBy
dWxlcy4KKyAgICAgICAgKFdURjo6bWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMpOiBVcGRhdGUg
dG8gdXNlIHRoZSBuZXcgZ2VuZXJhdGVkIEMrKyBzdHJpbmdzLgorICAgICAgICAoV1RGOjpvcGVu
TGluZUJyZWFrSXRlcmF0b3IpOiBUaGUgbG9naWMgb2YgdHJ5aW5nIHRvIHVzZSBhIHByZWNvbXBp
bGVkIGJ5dGVjb2RlLCBhbmQgZmFsbGluZworICAgICAgICBiYWNrIHRvIEMrKyBzdHJpbmdzIGlm
IGl0IGlzbid0IHBvc3NpYmxlLgorICAgICAgICAoV1RGOjpjbG9zZUxpbmVCcmVha0l0ZXJhdG9y
KToKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oOiBIZWFkZXIgZm9yIGdl
bmVyYXRlZCBDKysgY29kZS4KKyAgICAgICAgKiB3dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0
b3JJbnRlcm5hbElDVU1hYy5tbToKKyAgICAgICAgKFdURjo6YnJlYWtJdGVyYXRvclJlc291cmNl
KTogVGhlIGFjdHVhbCBsb2dpYyBmb3IgbG9va2luZyBpbnNpZGUgdGhlIGJ1bmRsZSBmb3IgdGhl
CisgICAgICAgIHByZWNvbXBpbGVkIGJ5dGVjb2RlLgorICAgICAgICAoV1RGOjpicmVha0l0ZXJh
dG9yRnJvbVJlc291cmNlRGF0YSk6IERpdHRvCisgICAgICAgIChXVEY6OmN1cnNvck1vdmVtZW50
SXRlcmF0b3IpOiBDYWxscyBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlKCkuCisgICAgICAgIChX
VEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSkspOiBEaXR0bworICAgICAgICAoV1RGOjpsaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLKTogRGl0dG8KKyAgICAgICAgKFdURjo6bGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlQ0pLKTogRGl0dG8KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLKTogRGl0dG8KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSyk6IERpdHRvCisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxOb25DSkspOiBEaXR0bworICAgICAgICAoV1RGOjpsaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLKTogRGl0dG8KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdE5vbkNKSyk6IERpdHRvCisgICAgICAgIChXVEY6OmNsb25lSXRlcmF0b3Ip
OgorICAgICAgICAoV1RGOjpjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQpOiBDYWxscyB0aGUgYWJv
dmUgc3RhdGljIGZ1bmN0aW9ucy4KKwogMjAxNy0wMi0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBQbGF5YmFjayBzdGFsbHMgd2hlbiBhIFNvdXJjZUJ1ZmZl
ciBhcHBlbmQgY2F1c2VzIGZyYW1lIGV2aWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDRkYjY2NzI5YTU1N2MwM2M1Y2VlODA4YjY3MTE2M2JiNmFlMTk1ZTcuLjg4YTFiNmQw
MmNhMTVlYTlhMGU4Y2NiMjNmYjliYTAxZmMyMGI5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xMjI4LDYgKzEyMjgsNyBAQAogCQkxQTI4RDRBODE3N0I3MUM4MDAwN0ZBM0Mg
LyogSlNTdHJpbmdSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQTI4RDRBNzE3N0I3MUM4MDAwN0ZBM0MgLyogSlNTdHJpbmdSZWZQcml2
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MUE4ODI2QjE2NTNDNENEMUE2NDI5ODNCIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QjQ3RjIzNDM2
NkM0QjcyQUM4NTJBN0UgLyogVGVtcGxhdGVSZWdpc3RyeUtleVRhYmxlLmNwcCAqLzsgfTsKIAkJ
MUFDRjczNzcxNzFDQTZGQjAwQzlCQjFFIC8qIFdlYWsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDRjczNzYxNzFDQTZGQjAwQzlCQjFFIC8qIFdl
YWsuY3BwICovOyB9OworCQkxQ0QxODc5MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxl
cyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNEMTg3
OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi87IH07CiAJCTI2MDBCNUE2MTUy
QkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNT
dHJpbmdKb2luZXIuY3BwICovOyB9OwogCQkyNjAwQjVBNzE1MkJBQUE3MDA5MUVFNUYgLyogSlNT
dHJpbmdKb2luZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oICovOyB9Owog
CQkyNjJEODVCNjFDMEQ2NTBGMDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MkQ4
NUI0MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICov
OyB9OwpAQCAtMzY1Nyw2ICszNjU4LDcgQEAKIAkJMUM5MDUxNDUwQkE5RThBNzAwODFFOUQwIC8q
IEJhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2Nv
bmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEEwRDMyQzM5QTAwNDFC
Q0ZGIC8qIEphdmFTY3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2
YVNjcmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQ0FBOEI0QjBEMzJDMzlB
MDA0MUJDRkYgLyogSmF2YVNjcmlwdENvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSmF2YVNjcmlwdENvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNE
MTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmb2xkZXI7IG5hbWUgPSBCcmVha2luZ1J1
bGVzOyBwYXRoID0gLi4vV1RGL0JyZWFraW5nUnVsZXM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0cmluZ0pvaW5lci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MDBCNUE1MTUyQkFBQTcwMDkxRUU1RiAvKiBK
U1N0cmluZ0pvaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N0cmlu
Z0pvaW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjJEODVCNDFDMEQ2NTBG
MDA2QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7
IHBhdGggPSBiMy9haXIvQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYwMTMsNiArNjAxNSw3IEBACiAJCTY1MEZERjhEMDlEMEZD
QTcwMDc2OUU1NCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzhGMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2lu
Z1J1bGVzICovLAogCQkJCTBGNjE4MzMyMUM0NUYzNUMwMDcyNDUwQiAvKiBBaXJPcGNvZGUuaCAq
LywKIAkJCQkwRjYxODMzNDFDNDVGM0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlR2VuZXJhdGVkLmgg
Ki8sCiAJCQkJMEY2MTgzMzUxQzQ1RjNCNjAwNzI0NTBCIC8qIEFpck9wY29kZVV0aWxzLmggKi8s
CkBAIC05NDIwLDYgKzk0MjMsNyBAQAogCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsK
IAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkxQ0Qx
ODc5MDFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyBpbiBSZXNvdXJjZXMgKi8sCiAJ
CQkJQTUzRjFBQzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBpbiBSZXNvdXJjZXMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdz
LnB5IGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xZDY0YzBkNWVkMGQ4OTBkZWY3OWFmNDM0ZDFlYTZiMGUzZGJkOGQwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3Ry
aW5ncy5weQpAQCAtMCwwICsxLDEwOSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgc3lzCitpbXBvcnQgcmUK
K2ltcG9ydCBhcmdwYXJzZQorCitoZWFkZXIgPSAiIiIvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8iIiIKKworCitkZWYgbWFp
bihhcmd2PU5vbmUpOgorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2Ny
aXB0aW9uPSdHZW5lcmF0ZSBicmVha2luZyBydWxlIHNvdXJjZSBzdHJpbmdzIGluIEMrKyBzb3Vy
Y2UgZm9tcmF0LicpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1pbmNsdWRlRGVmaW5lcycs
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnc3ltYm9sTmFt
ZScpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnZmlsZU5hbWVzJywgbmFyZ3M9JysnKQorCisg
ICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKworICAgIGluY2x1ZGVEZWZpbmVzID0gYXJn
cy5pbmNsdWRlRGVmaW5lcworICAgIHN5bWJvbE5hbWUgPSBhcmdzLnN5bWJvbE5hbWVbMF0ubG93
ZXIoKSArIGFyZ3Muc3ltYm9sTmFtZVsxOl0KKyAgICBmaWxlTmFtZXMgPSBhcmdzLmZpbGVOYW1l
cworCisgICAgcHJpbnQoaGVhZGVyKQorICAgIHByaW50KCIiIgorLy8gRE8gTk9UIEVESVQgVEhJ
UyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSB0aGUgc2NyaXB0CisvLyAl
cworCisjaW5jbHVkZSBcImNvbmZpZy5oXCIKKyNpbmNsdWRlIDx1bmljb2RlL3V2ZXJudW0uaD4K
KyIiIiAlIChzeXMuYXJndlswXSkpCisgICAgaWYgaW5jbHVkZURlZmluZXM6CisgICAgICAgIHBy
aW50KCIiIiNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8
IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MTAwKSkKKyNkZWZpbmUgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyAoKFVfSUNVX1ZFUlNJT05f
TUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5KSkKKyIiIikK
KyAgICBwcmludCgiIiJuYW1lc3BhY2UgV1RGIHsKKworY29uc3QgY2hhciogJXMgPSAiIiIgJSAo
c3ltYm9sTmFtZSkpCisKKyAgICBmb3IgZmlsZU5hbWUgaW4gZmlsZU5hbWVzOgorICAgICAgICBm
b3IgbCBpbiBvcGVuKGZpbGVOYW1lLCAncicpOgorICAgICAgICAgICAgbGluZSA9IGwucnN0cmlw
KCkKKyAgICAgICAgICAgIGlmIHJlLm1hdGNoKCJeXHMqJCIsIGxpbmUpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjICIpOgorICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZSA9PSAiIyI6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoIiMiKToKKyAgICAg
ICAgICAgICAgICBwcmludChsaW5lKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBtYXRjaCA9IHJlLm1hdGNoKCJeKC4qKTsoICMgLiopPyQiLCBsaW5lKQorICAgICAgICAgICAg
ICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAiXCIiICsgbWF0Y2gu
Z3JvdXAoMSkucmVwbGFjZSgiXFwiLCAiXFxcXCIpICsgIjtcIiIKKyAgICAgICAgICAgICAgICAg
ICAgaWYgbWF0Y2guZ3JvdXAoMik6CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0g
IiAvLyAiICsgbWF0Y2guZ3JvdXAoMilbMzpdCisgICAgICAgICAgICAgICAgICAgIHByaW50KHJl
c3VsdCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBleGl0KDEp
CisKKyAgICBwcmludCgiOyIpCisgICAgcHJpbnQoIn0iKQorCitpZiBfX25hbWVfXyA9PSAnX19t
YWluX18nOgorICAgIHN5cy5leGl0KG1haW4oc3lzLmFyZ3YpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTQyZTBhNWU5OTNkZDNjODE5MjkyMzBkNTE2Mjc2
YjlmMDE1YzAzOS4uNjQ5NmYxNWIwZjhjZjNkOTgxMTNiYWIwOWFjZTk0YjI4ZjAwOTAyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcsMTcgQEAK
IAlvYmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLwor
CQkxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJ
aXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFD
RDE4NzgzMUQ1NTY5NUMwMENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBC
WEFnZ3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0g
KAorCQkJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJj
ZXMgKi8sCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVy
aXZlZCBTb3VyY2VzIjsKKwkJCXByb2R1Y3ROYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCX07
CiAJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovID0gewog
CQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9
IDY1QUZBMjg4MTYzMEI5NzcwMDNENzIzQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWEFnZ3JlZ2F0ZVRhcmdldCAiQ29weSBXVEYgSGVhZGVycyIgKi87CkBAIC04NCw3ICs5NSw2
IEBACiAJCTE0NDdBRUM2MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUM1
MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKIAkJMTQ0N0FF
QzcxOEZDRTU4MDAwQjNEN0ZGIC8qIGxpYldURi5hIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQyNDdCNjIxNDY4OUI4NjAwRTc4Qjc2IC8qIGxpYldU
Ri5hICovOyB9OwogCQkxNDQ3QUVDOTE4RkNFNTk0MDBCM0Q3RkYgLyogbWJtYWxsb2MuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQzgxOEZD
RTU5NDAwQjNEN0ZGIC8qIG1ibWFsbG9jLmNwcCAqLzsgfTsKLQkJMTQ0N0FFQ0IxOEZDRTVCOTAw
QjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29y
ZS5keWxpYiAqLzsgfTsKIAkJMTQ2OTQxOTIxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1l
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2OTQx
OTAxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKCk7IH07IH07CiAJCTE0Njk0MTkzMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29w
VGltZXJDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDY5NDE5MTE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyQ0YuY3BwICovOyB9Owog
CQkxNDY5NDE5NjE2RUFBRkY4MDAyNEUxNDYgLyogU2NoZWR1bGVQYWlyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDY5NDE5NDE2RUFBRkY4MDAyNEUx
NDYgLyogU2NoZWR1bGVQYWlyLmggKi87IH07CkBAIC0zNDAsNiArMzUwLDE2IEBACiAJCUFERjJD
RTY2MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFERjJDRTY0MUUzOUYxMDYwMDY4ODlEQiAv
KiBNZW1vcnlGb290cHJpbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBREYyQ0U2NzFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFERjJD
RTY1MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnQuY3BwICovOyB9OwogCQlCMzhG
RDdCRDE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAv
KiBGZWF0dXJlRGVmaW5lcy5oICovOyB9OworCQlDMkJBNTQzRTFENTg2QUY0MDAwQTMzMzIgLyog
bGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICov
OyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwICovOyB9OworCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
Sy5jcHAgKi87IH07CisJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTRMb29zZUNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VEMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U0MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJD
QTM3RUUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3
RTUxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3Bw
ICovOyB9OworCQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RjExRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTgxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICov
OyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkzNjE5QzY1RUI0MDBC
MkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJCUM4QjBFMUExRTAxQTQ4NkVCOTVFMEQxMSAv
KiBJbmRleFNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzEzN0UxRDdEQkQ4NEFDMzhGQUU0RDM0IC8qIEluZGV4U2V0LmggKi87IH07CiAJCUM5MTZC
OTc1RjAyRjRGN0U4QjRBQjEyRCAvKiBJbmRleE1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUI0MzM4M0E1RDBCNDYzQzk0MzNEOTMzIC8qIEluZGV4
TWFwLmggKi87IH07CkBAIC0zODEsNiArNDAxLDEzIEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmlu
ZyA9IDVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NjsKIAkJCXJlbW90ZUluZm8gPSBXVEY7CiAJCX07
CisJCTFDRDE4Nzg3MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8g
PSB7CisJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250YWluZXJQb3J0YWwg
PSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94
eVR5cGUgPSAxOworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSAxQ0QxODc4MTFENTU2OTVDMDBD
QzdERUM7CisJCQlyZW1vdGVJbmZvID0gIkRlcml2ZWQgU291cmNlcyI7CisJCX07CiAJCTY1QUZB
MjhEMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlp
c2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CiAJCQljb250YWluZXJQb3J0YWwgPSA1RDI0N0I1
OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBvYmplY3QgKi87CkBAIC00OTIsNiArNTE5LDE5
IEBACiAJCTFDMTgxQzhEMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMxODFDOEUxRDMwN0FCODAwRjVG
QTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBVVGV4dFByb3ZpZGVyVVRGMTYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUMxODFDOTUxRDMwODAwQTAwRjVGQTE2IC8qIFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXh0QnJlYWtJ
dGVyYXRvckludGVybmFsSUNVTWFjLm1tOyBwYXRoID0gbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50
ZXJuYWxJQ1VNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDNkJFMEZBMUUw
MzRDOUEwMDIxNzYxNyAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRo
b247IHBhdGggPSBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHk7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLLnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTUxRDU1
OUE2OTAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0OyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5NjFENTU5QTkwMDBGOUZFMzggLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxQ0I0RkI5NzFENTU5QUE4MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlTm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5
ODFENTU5QUQyMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50
eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUz
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExp
bmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQ0I0RkI5QjFENTU5QjNFMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdE5vbkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFD
QjRGQjlDMUQ1NTlCNjcwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERl
cml2ZWRTb3VyY2VzLm1ha2UgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnhtbDsgbmFtZSA9IERlcml2ZWRTb3VyY2VzLm1ha2U7IHBhdGggPSB3
dGYvRGVyaXZlZFNvdXJjZXMubWFrZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdXNlc1RhYnMg
PSAxOyB9OworCQkxQ0QxODc5MjFENTU5OEUxMDBDQzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc5MzFENTU5OTY1MDBDQzdERUMgLyogTGlu
ZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJy
ZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFG
QTQ3Qzg4MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxRkE0N0M4OTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVh
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MTQ3QjA4MTVERENDREMwMEREQjkwNyAvKiBJ
bnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTcyNCw2ICs3NjQsMTUgQEAKIAkJQURGMkNFNjQxRTM5RjEwNjAwNjg4OURCIC8qIE1l
bW9yeUZvb3RwcmludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlG
b290cHJpbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURGMkNFNjUxRTM5RjEw
NjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBNZW1vcnlGb290cHJpbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCMzhGRDdCQzE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmVhdHVyZURlZmluZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxl
cy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMkNBMzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UyMUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTMxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VOb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VOb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNDFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9u
Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
Sy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
Y3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pL
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5v
bkNKSy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3Jt
YWxOb25DSksuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNzFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdENKSy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U4MUQ1NUM5
NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3ROb25DSksuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzRGOEE5
MzYxOUM2NUVCNDAwQjJCMTVEIC8qIFN0b3B3YXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdG9wd2F0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1
NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDU0OTdBQjE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhVGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNzYyLDcgKzgxMSw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgz
NjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJMTQ0N0FFQzYxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5k
YXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCi0JCQkJMTQ0N0FFQ0IxOEZDRTVCOTAw
QjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQlDMkJBNTQz
RTFENTg2QUY0MDAwQTMzMzIgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovLAog
CQkJCTE0NDdBRUM3MThGQ0U1ODAwMEIzRDdGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAt
Nzk5LDYgKzg0OCwzMiBAQAogCQkJcGF0aCA9IGljdTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCTFDNkJFMEY5MUUwMzRDMkEwMDIxNzYxNyAvKiBTY3JpcHRzICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxQzZCRTBGQTFFMDM0QzlB
MDAyMTc2MTcgLyogR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ICovLAorCQkJKTsKKwkJ
CXBhdGggPSBTY3JpcHRzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMUNE
MTg3OTExRDU1OThFMTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAv
KiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFDQjRGQjlDMUQ1NTlC
NjcwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCAqLywKKwkJCQkxQ0Qx
ODc5MzFENTU5OTY1MDBDQzdERUMgLyogTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgKi8s
CisJCQkJMUNCNEZCOTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksudHh0ICovLAorCQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk1
MUQ1NTlBNjkwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAqLywK
KwkJCQkxQ0I0RkI5ODFENTU5QUQyMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbENKSy50eHQgKi8sCisJCQkJMUNCNEZCOTkxRDU1OUFFRjAwRjlGRTM4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjlBMUQ1NTlCMjMw
MEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCAqLywKKwkJCQkx
Q0I0RkI5QjFENTU5QjNFMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5v
bkNKSy50eHQgKi8sCisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9z
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTgyMSw5ICs4
OTYsMTIgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNUQyNDdC
NkQxNDY4OUM0NzAwRTc4Qjc2IC8qIENvbmZpZ3VyYXRpb25zICovLAorCQkJCUMyQ0EzN0RGMUQ1
NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMTQwMjJGM0YxOEY1QzNF
NTAwN0ZGMEVCIC8qIExpYnJhcmllcyAqLywKIAkJCQk1RDI0N0I2MzE0Njg5Qjg2MDBFNzhCNzYg
LyogUHJvZHVjdHMgKi8sCisJCQkJMUM2QkUwRjkxRTAzNEMyQTAwMjE3NjE3IC8qIFNjcmlwdHMg
Ki8sCiAJCQkJNUQyNDdCNzYxNDY4OUQ3NjAwRTc4Qjc2IC8qIFNvdXJjZSAqLywKKwkJCQkxQ0Qx
ODc4QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKIAkJCQkxNDQ3
QUVDNTE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0
N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAt
MTE4NSw2ICsxMjYzLDcgQEAKIAkJQThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1
NTk4RTEwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovLAogCQkJCUE1QkExNUY2MTgyNDM1OUUw
MEE4MkU2OSAvKiBjZiAqLywKIAkJCQkxQzE4MUM4ODFEMzA3QUI4MDBGNUZBMTYgLyogaWN1ICov
LAogCQkJCUE1QkExNUYxMTgyNDMzOUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMjYzLDYgKzEz
NDIsMjMgQEAKIAkJCXBhdGggPSBpY3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9
OworCQlDMkNBMzdERjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovID0gewor
CQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFENTVDOTcx
MDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJCQlDMkNB
MzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8s
CisJCQkJQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRM
b29zZUNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTQxRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwICovLAorCQkJCUMyQ0Ez
N0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNw
cCAqLywKKwkJCQlDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNE5vcm1hbE5vbkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwICovLAorCQkJCUMyQ0EzN0U4MUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAq
LywKKwkJCSk7CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV1RGOworCQkJc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsK
IAkJQ0U0NjUxNkMxOURCMUZCNDAwM0VDQTA1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE2MTQsNiArMTcxMCw3IEBACiAJCQlidWlsZFJ1
bGVzID0gKAogCQkJKTsKIAkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCQkxQ0QxODc4ODFENTU2OTg4
MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2MzBCOTlF
MDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gV1RG
OwpAQCAtMTY0NCwxMiArMTc0MSwyNyBAQAogCQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0
Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovLAogCQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAv
KiBDb3B5IFdURiBIZWFkZXJzICovLAorCQkJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBE
ZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMTQ0N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFs
bG9jICovLAogCQkJKTsKIAkJfTsKIC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyog
QmVnaW4gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3ODIxRDU1
Njk1QzAwQ0M3REVDIC8qIEdlbmVyYXRlIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5h
bWUgPSAiR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJ
KTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQ
YXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9E
VUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElS
fS9EZXJpdmVkU291cmNlcy9XVEZcIlxuXG4vYmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV1RG
XG5leHBvcnQgV1RGPVwiV1RGXCJcblxuaWYgWyAhIC1kIEJyZWFraW5nUnVsZXMgXTsgdGhlblxu
ICAgIG1rZGlyIEJyZWFraW5nUnVsZXNcbmZpXG5cbmlmIFsgXCIkTUFDT1NYX0RFUExPWU1FTlRf
VEFSR0VUXCIgPT0gXCIxMC4xMFwiIF0gOyB0aGVuXG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1P
SklfU1VQUE9SVD0wXG5lbHNlXG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0x
XG5maVxuXG5pZiBbIFwiJEhBVkVfSU5URVJOQUxfU0RLXCIgIT0gXCJZRVNcIiBdIHx8IFsgXCIk
TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIxMC4xMFwiIF0gfHwgWyBcIiRNQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEwLjExXCIgXSB8fCBbIFwiJE1BQ09TWF9ERVBMT1lN
RU5UX1RBUkdFVFwiID09IFwiMTAuMTJcIiBdIHx8IFsgXCIkU0RLX1ZFUlNJT05fTUFKT1JcIiA9
PSBcIjkwMDAwXCIgXSB8fCBbIFwiJFNES19WRVJTSU9OX01BSk9SXCIgPT0gXCIxMDAwMDBcIiBd
OyB0aGVuXG4gICAgZXhwb3J0IEhBVkVfSUNVR0VOQlJLPTBcbmVsc2VcbiAgICBleHBvcnQgSEFW
RV9JQ1VHRU5CUks9MVxuZmlcblxuaWYgWyBcIiR7QUNUSU9OfVwiID0gXCJidWlsZFwiIC1vIFwi
JHtBQ1RJT059XCIgPSBcImluc3RhbGxcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsaGRy
c1wiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxhcGlcIiBdOyB0aGVuXG5tYWtlIC0tbm8t
YnVpbHRpbi1ydWxlcyAtZiBcIldURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNy
L3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9PVD1cIiR7U0RLUk9PVH1cIlxuZmki
OworCQl9OwogCQk2NUFGQTE3MDE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAq
LyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9u
TWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNzAyLDYgKzE4MTQsNyBAQAogCQkJCUUxNTU1NkY1MThB
MENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4QTQ3NDM5MTUxQTgyNUIwMDQxMjNGRiAvKiBDU3RyaW5nLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QTQ3MzlDMTUxQTgyNUIwMDQxMjNGRiAvKiBDdXJyZW50VGltZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlFMTUxQTgyNUIw
MDQxMjNGRiAvKiBEYXRhTG9nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0EwMTUxQTgy
NUIwMDQxMjNGRiAvKiBEYXRlTWF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNBMjE1
MUE4MjVCMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE3
MTgsNiArMTgzMSwxNCBAQAogCQkJCTFBMUQ4QjlFMTczMTg3OTgwMDE0MURBNCAvKiBGdW5jdGlv
bkRpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkNDRDg5MkExNUMwMzkwMjAwMjg1
MDgzIC8qIEdyZWdvcmlhbkRhdGVUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Q4
MTUxQTgyNUIwMDQxMjNGRiAvKiBIYXNoVGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJD
QTM3RUExRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZUNKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQzFENTVD
OTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VFMUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUMyQ0EzN0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0YwMUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUMyQ0EzN0YxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTE2NDZBMUI2RkZDOTYw
MDQwMEU3QyAvKiBMb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjBGMzJGMURGQ0JEMUIw
MDQxNkQ2QyAvKiBMb2NrZWRQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0
NzNFNTE1MUE4MjVCMDA0MTIzRkYgLyogTWFpblRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTE3OTMsNiArMTkxNCwxMSBAQAogCQkJdGFyZ2V0ID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2
IC8qIFdURiAqLzsKIAkJCXRhcmdldFByb3h5ID0gMTQ0N0FFQzMxOEZDRTU3MDAwQjNEN0ZGIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKKwkJMUNEMTg3ODgxRDU1Njk4ODAwQ0M3
REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBl
bmRlbmN5OworCQkJdGFyZ2V0ID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQg
U291cmNlcyAqLzsKKwkJCXRhcmdldFByb3h5ID0gMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKIAkJNjVBRkEyOEUxNjMwQjk5RTAwM0Q3
MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBl
bmRlbmN5OwogCQkJdGFyZ2V0ID0gNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RG
IEhlYWRlcnMgKi87CkBAIC0xODIyLDYgKzE5NDgsMzAgQEAKIAkJCX07CiAJCQluYW1lID0gUHJv
ZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICovID0g
eworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJl
ZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25m
aWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdF
VF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQkxQ0QxODc4NTFENTU2
OTVDMDBDQzdERUMgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0
aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBF
NzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsK
KwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBS
ZWxlYXNlOworCQl9OworCQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJvZHVjdGlvbiAq
LyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRp
b25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhj
Y29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChU
QVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDI0
N0I2NDE0Njg5Qjg2MDBFNzhCNzYgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29u
ZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4
OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKQEAgLTE5MDUsNiArMjA1
NSwxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVs
dENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODMxRDU1Njk1
QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFy
Z2V0ICJEZXJpdmVkIFNvdXJjZXMiICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlz
dDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3
REVDIC8qIERlYnVnICovLAorCQkJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNl
ICovLAorCQkJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICovLAorCQkJ
KTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25m
aWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjVDMTQ2ODlCODYwMEU3
OEI3NiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldURiIgKi8g
PSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9u
cyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWJyay5oIGIvU291cmNl
L1dURi9pY3UvdW5pY29kZS91YnJrLmgKaW5kZXggZTljMGVmNjI3YjY3Mjc5Zjg2ZTQ2MDQ0YmYw
ZjI1NzEwMmUwYzZjZC4uMTk3NWI5ZGJlZDQ0M2E5Mjc0MzZmMGEyNzkyOWJhNThhZjg3MTgyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91YnJrLmgKKysrIGIvU291cmNlL1dU
Ri9pY3UvdW5pY29kZS91YnJrLmgKQEAgLTI0MSw2ICsyNDEsMzEgQEAgdWJya19vcGVuUnVsZXMo
Y29uc3QgVUNoYXIgICAgICpydWxlcywKICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgICAq
c3RhdHVzKTsKIAogLyoqCisgKiBPcGVuIGEgbmV3IFVCcmVha0l0ZXJhdG9yIGZvciBsb2NhdGlu
ZyB0ZXh0IGJvdW5kYXJpZXMgdXNpbmcgcHJlY29tcGlsZWQgYmluYXJ5IHJ1bGVzLgorICogT3Bl
bmluZyBhIFVCcmVha0l0ZXJhdG9yIHRoaXMgd2F5IGlzIHN1YnN0YW50aWFsbHkgZmFzdGVyIHRo
YW4gdXNpbmcgdWJya19vcGVuUnVsZXMuCisgKiBCaW5hcnkgcnVsZXMgbWF5IGJlIG9idGFpbmVk
IHVzaW5nIHVicmtfZ2V0QmluYXJ5UnVsZXMuIFRoZSBjb21waWxlZCBydWxlcyBhcmUgbm90Cisg
KiBjb21wYXRpYmxlIGFjcm9zcyBkaWZmZXJlbnQgbWFqb3IgdmVyc2lvbnMgb2YgSUNVLCBub3Ig
YWNyb3NzIHBsYXRmb3JtcyBvZiBkaWZmZXJlbnQKKyAqIGVuZGlhbm5lc3Mgb3IgZGlmZmVyZW50
IGJhc2UgY2hhcmFjdGVyIHNldCBmYW1pbHkgKEFTQ0lJIHZzIEVCQ0RJQykuCisgKiBAcGFyYW0g
YmluYXJ5UnVsZXMgQSBzZXQgb2YgY29tcGlsZWQgYmluYXJ5IHJ1bGVzIHNwZWNpZnlpbmcgdGhl
IHRleHQgYnJlYWtpbmcKKyAqICAgICAgICAgICAgICAgICAgICBjb252ZW50aW9ucy4gT3duZXJz
aGlwIG9mIHRoZSBzdG9yYWdlIGNvbnRhaW5pbmcgdGhlIGNvbXBpbGVkCisgKiAgICAgICAgICAg
ICAgICAgICAgcnVsZXMgcmVtYWlucyB3aXRoIHRoZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbi4g
VGhlIGNvbXBpbGVkCisgKiAgICAgICAgICAgICAgICAgICAgcnVsZXMgbXVzdCBub3QgYmUgbW9k
aWZpZWQgb3IgZGVsZXRlZCBkdXJpbmcgdGhlIGxpZmUgb2YgdGhlCisgKiAgICAgICAgICAgICAg
ICAgICAgYnJlYWsgaXRlcmF0b3IuCisgKiBAcGFyYW0gcnVsZXNMZW5ndGggVGhlIGxlbmd0aCBv
ZiBiaW5hcnlSdWxlcyBpbiBieXRlczsgbXVzdCBiZSA+PSAwLgorICogQHBhcmFtIHRleHQgICAg
ICAgIFRoZSB0ZXh0IHRvIGJlIGl0ZXJhdGVkIG92ZXIuICBNYXkgYmUgbnVsbCwgaW4gd2hpY2gg
Y2FzZQorICogICAgICAgICAgICAgICAgICAgIHVicmtfc2V0VGV4dCgpIGlzIHVzZWQgdG8gc3Bl
Y2lmeSB0aGUgdGV4dCB0byBiZSBpdGVyYXRlZC4KKyAqIEBwYXJhbSB0ZXh0TGVuZ3RoICBUaGUg
bnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGV4dCwgb3IgLTEgaWYgbnVsbC10ZXJtaW5hdGVkLgor
ICogQHBhcmFtIHN0YXR1cyAgICAgIFBvaW50ZXIgdG8gVUVycm9yQ29kZSB0byByZWNlaXZlIGFu
eSBlcnJvcnMuCisgKiBAcmV0dXJuICAgICAgICAgICAgVUJyZWFrSXRlcmF0b3IgZm9yIHRoZSBz
cGVjaWZpZWQgcnVsZXMuCisgKiBAc2VlIHVicmtfZ2V0QmluYXJ5UnVsZXMKKyAqIEBkcmFmdCBJ
Q1UgNTkKKyAqLworVV9EUkFGVCBVQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCit1YnJrX29wZW5C
aW5hcnlSdWxlcyhjb25zdCB1aW50OF90ICpiaW5hcnlSdWxlcywgaW50MzJfdCBydWxlc0xlbmd0
aCwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyICogIHRleHQsIGludDMyX3QgdGV4
dExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKiAgIHN0YXR1cyk7CisK
Ky8qKgogICogVGhyZWFkIHNhZmUgY2xvbmluZyBvcGVyYXRpb24KICAqIEBwYXJhbSBiaSBpdGVy
YXRvciB0byBiZSBjbG9uZWQKICAqIEBwYXJhbSBzdGFja0J1ZmZlciA8ZW0+RGVwcmVjYXRlZCBm
dW5jdGlvbmFsaXR5IGFzIG9mIElDVSA1MiwgdXNlIE5VTEwuPC9lbT48YnI+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlz
dHMudHh0CmluZGV4IDgxYWY5MTI3NjEwNmI4MTI4OTE3ZGI4Yzc5Y2YyNTRiMmU0ZDhjZjAuLjE1
OTM0MGZiOGVkNjAwYzM2OTk3NWFiYzc4OGE2ZWVjZTY5NjEzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMu
dHh0CkBAIC0zMDEsNiArMzAxLDQyIEBAIGlmIChOT1QgVVNFX1NZU1RFTV9NQUxMT0MpCiAgICAg
bGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUyBibWFsbG9jKQogZW5kaWYgKCkKIAorc2V0KFdURl9C
UkVBS0lOR19SVUxFU19TT1VSQ0VTCisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksudHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZUNKSy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNExvb3NlTm9uQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdS
dWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dAorKQorCittYWNybyhH
RU5FUkFURV9CUkVBS0lOR19SVUxFUyBfaW5wdXQgX3N5bWJvbE5hbWUgX291dHB1dCkKKyAgICBh
ZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgICAgIE9VVFBVVCAke19vdXRwdXR9CisgICAgICAgIE1B
SU5fREVQRU5ERU5DWSAke1dURl9ESVJ9L1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJp
bmdzLnB5CisgICAgICAgIERFUEVORFMgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQv
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAke19pbnB1dH0gJHtD
TUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvckVwaWxvZ3VlLnR4dAorICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7
V1RGX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgLS1pbmNsdWRl
RGVmaW5lcyAke19zeW1ib2xOYW1lfVJ1bGVzICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90
ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9
ICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JFcGlsb2d1ZS50eHQgPiAke19vdXRwdXR9CisgICAgICAgIFZFUkJBVElNKQorICAg
IGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7X291dHB1dH0pCisgICAgQUREX1NPVVJDRV9ERVBF
TkRFTkNJRVMoJHtfaW5wdXR9ICR7X291dHB1dH0pCitlbmRtYWNybygpCisKK2ZvcmVhY2ggKF9m
aWxlICR7V1RGX0JSRUFLSU5HX1JVTEVTX1NPVVJDRVN9KQorICAgIGdldF9maWxlbmFtZV9jb21w
b25lbnQoX25hbWUgJHtfZmlsZX0gTkFNRV9XRSkKKyAgICBHRU5FUkFURV9CUkVBS0lOR19SVUxF
Uygke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtfZmlsZX0gJHtfbmFtZX0gJHtERVJJVkVE
X1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy8ke19uYW1lfS5jcHApCitlbmRmb3JlYWNo
ICgpCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNf
V1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisg
ICAgTUFJTl9ERVBFTkRFTkNZICR7V1RGX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVs
ZVN0cmluZ3MucHkKKyAgICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0
L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorICAgIENPTU1B
TkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZfRElSfS9TY3JpcHRzL0dlbmVyYXRlQnJlYWtp
bmdSdWxlU3RyaW5ncy5weSAtLWluY2x1ZGVEZWZpbmVzIGN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgPiAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9C
cmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAKKyAgICBWRVJCQVRJ
TSkKK2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0Jy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCkKK0FERF9TT1VSQ0Vf
REVQRU5ERU5DSUVTKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVs
ZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAke0RFUklWRURfU09VUkNFU19XVEZf
RElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHApCisKIGxp
c3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCiAp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDZmODliNDY3OWJmZTE0
NzBhYmI3MDViMGQyYWVkZWFiYTY4YjliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93
dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMCwwICsxLDc2IEBACisjIENvcHlyaWdodCAoQykg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCitCUkVBS0lOR19SVUxFU19GSUxFUyA9IFwKKyAgICBCcmVh
a2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5icmsgXAorICAgIEJyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuYnJrCisKK0JSRUFLSU5HX1JVTEVT
X0RFRklOSVRJT05TPSQoQlJFQUtJTkdfUlVMRVNfRklMRVM6LmJyaz0uY3BwKQorCitpZmVxICgk
KHNoZWxsICQoQ0MpIC1zdGQ9Z251KysxMSAteCBjKysgLUUgLVAgLWRNICQoU0RLX0ZMQUdTKSAk
KEZSQU1FV09SS19GTEFHUykgJChIRUFERVJfRkxBR1MpIC1JICQoV1RGKSAtaW5jbHVkZSAiJChX
VEYpL3d0Zi9QbGF0Zm9ybS5oIiAvZGV2L251bGwgfCBncmVwICcgV1RGX1BMQVRGT1JNX0lPUyAn
IHwgY3V0IC1kJyAnIC1mMyksIDEpCisgICAgV1RGX1BMQVRGT1JNX0lPUyA9IDEKK2Vsc2UKKyAg
ICBXVEZfUExBVEZPUk1fSU9TID0gMAorZW5kaWYKKworaWZlcSAoJChXVEZfUExBVEZPUk1fSU9T
KSwgMSkKKwlBRERJVElPTkFMX0VNT0pJX1NVUFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVOVCA9IDAK
KwlIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTID0gMAorZWxzZQorCUFERElUSU9OQUxfRU1PSklf
U1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5UID0gJChBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQp
CisJSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyA9IDEKK2VuZGlmCisKK0RFUEVOREVOQ0lFUyA9
ICQoQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlMpCisKK2lmZXEgKCQoSEFWRV9JQ1VHRU5CUksp
LCAxKQorREVQRU5ERU5DSUVTICs9ICQoQlJFQUtJTkdfUlVMRVNfRklMRVMpCitlbmRpZgorCith
bGwgOiAkKERFUEVOREVOQ0lFUykKKworQnJlYWtpbmdSdWxlcy8lLmJyayA6IEJyZWFraW5nUnVs
ZXMvJS5wcAorCWljdWdlbmJyayAtYyAtciAkPCAtbyAkQAorCisjIGdlbmJyayBkb2Vzbid0IHVu
ZGVyc3RhbmQgcHJlcHJvY2Vzc29yIG1hY3Jvcywgc28gd2UgaGF2ZSB0byB1bmlmZGVmIG1hbnVh
bGx5IGhlcmUuCisjIEhvd2V2ZXIsIHNvbWUgcG9ydHMgd2hpY2ggZG9uJ3QgaGF2ZSBnZW5icmsg
YWxzbyBkb24ndCBoYXZlIHVuaWZkZWYsIHNvIHdlIGRvbid0IHVuaWZkZWYgdGhlCisjIHJ1bGVz
IHdoaWNoIGdldCBjb252ZXJ0ZWQgdG8gQysrIHNvdXJjZSwgYW5kIHdlIHJlbHkgb24gdGhlIEMr
KyBjb21waWxlcidzIHByZXByb2Nlc3NvciB0byBoYW5kbGUKKyMgdGhlIGRpcmVjdGl2ZXMgaW5z
dGVhZC4KK0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCA6IEJy
ZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnBwCisJcHl0aG9uICQoV1RG
KS9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBjdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMgJDwgPiAkQAorCitCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS5j
cHAgOiBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS5wcAorCXB5dGhvbiAkKFdURikv
U2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgbGluZUJyZWFrSXRlcmF0b3Ik
KlJ1bGVzICQ8ID4gJEAKKworQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVs
ZXMucHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMudHh0CisJLXVuaWZkZWYgLURBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9JChBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlRfRk9SX0NVUlNPUl9NT1ZFTUVOVCkgLURIQVZFX0VYVFJBX0lD
VV9OQU1FRF9TRVRTPSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUykgLW8gJEAgJDwKKworQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUucHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAkKFdURikvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvciUudHh0ICQoV1RGKS93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0CisJLWNhdCAkPyB8IHVuaWZkZWYg
LURBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQ9JChBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQpIC1E
SEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUz0kKEhBVkVfRVhUUkFfSUNVX05BTUVEX1NFVFMpIC1v
ICRACmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdS
dWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkYWI4YjU3
NWY5NWM2MjdmNTg5NWUyM2NjZDRiMWExMTA1ZWI4ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LnR4dApAQCAtMCwwICsxLDE3NiBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUu
b3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBUaGlzIHJ1bGUgc2V0IGlz
IGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKKyMgPGh0
dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3
LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCisjIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9tIHRo
ZSBvcmlnaW5hbCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6CisjICogUmVwbGFjZWQgJ1tccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0
ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7
CisjICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0
ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOworIyAqIEFkZGVkIHJ1bGVzIHRoYXQg
cHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciB2aXJhbWEgc2lnbnMgb2YgSW5kaWMg
bGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwgYW5kOworIyAqIEFkZGVkIHJ1bGVz
IHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13
aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCisjICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFs
IGluZGljYXRvciBzeW1ib2xzLgorCiskQ1IgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gQ1J9XTsKKyRMRiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1d
OworJENvbnRyb2wgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsKKyRW
b2ljZU1hcmtzID0gW1x1RkY5RVx1RkY5Rl07ICMgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2Fu
YSB2b2ljZWQgbWFya3MKKyRFeHRlbmQgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBF
eHRlbmR9ICRWb2ljZU1hcmtzIC0gW1x1MEUzMCBcdTBFMzIgXHUwRTQ1IFx1MEVCMCBcdTBFQjJd
XTsKKyRTcGFjaW5nTWFyayA9IFtbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31d
IC0gJEV4dGVuZF07CiskTCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTH1d
OworJFYgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFZ9XTsKKyRUICAgICAg
ID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07CiskTFYgICAgICA9IFtccHtHcmFw
aGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsKKyRMVlQgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBMVlR9XTsKKyRIaW4wICAgID0gW1x1MDkwNS1cdTA5MzldOyAjIERldmFuYWdh
cmkgTGV0dGVyIEEsLi4uLEhhCiskSGluViAgICA9IFx1MDk0RDsgIyBEZXZhbmFnYXJpIFNpZ24g
VmlyYW1hCiskSGluMSAgICA9IFtcdTA5MTUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRlciBL
YSwuLi4sSGEKKyRCZW4wICAgID0gW1x1MDk4NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVyIEEs
Li4uLEhhCiskQmVuViAgICA9IFx1MDlDRDsgIyBCZW5nYWxpIFNpZ24gVmlyYW1hCiskQmVuMSAg
ICA9IFtcdTA5OTUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEKKyRQYW4wICAg
ID0gW1x1MEEwNS1cdTBBMzldOyAjIEd1cm11a2hpIExldHRlciBBLC4uLixIYQorJFBhblYgICAg
PSBcdTBBNEQ7ICMgR3VybXVraGkgU2lnbiBWaXJhbWEKKyRQYW4xICAgID0gW1x1MEExNS1cdTBB
MzldOyAjIEd1cm11a2hpIExldHRlciBLYSwuLi4sSGEKKyRHdWowICAgID0gW1x1MEE4NS1cdTBB
QjldOyAjIEd1amFyYXRpIExldHRlciBBLC4uLixIYQorJEd1alYgICAgPSBcdTBBQ0Q7ICMgR3Vq
YXJhdGkgU2lnbiBWaXJhbWEKKyRHdWoxICAgID0gW1x1MEE5NS1cdTBBQjldOyAjIEd1amFyYXRp
IExldHRlciBLYSwuLi4sSGEKKyRPcmkwICAgID0gW1x1MEIwNS1cdTBCMzldOyAjIE9yaXlhIExl
dHRlciBBLC4uLixIYQorJE9yaVYgICAgPSBcdTBCNEQ7ICMgT3JpeWEgU2lnbiBWaXJhbWEKKyRP
cmkxICAgID0gW1x1MEIxNS1cdTBCMzldOyAjIE9yaXlhIExldHRlciBLYSwuLi4sSGEKKyRUZWww
ICAgID0gW1x1MEMwNS1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKKyRUZWxWICAg
ID0gXHUwQzREOyAjIFRlbHVndSBTaWduIFZpcmFtYQorJFRlbDEgICAgPSBbXHUwQzE0LVx1MEMz
OV07ICMgVGVsdWd1IExldHRlciBLYSwuLi4sSGEKKyRLYW4wICAgID0gW1x1MEM4NS1cdTBDQjld
OyAjIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCiskS2FuViAgICA9IFx1MENDRDsgIyBLYW5uYWRh
IFNpZ24gVmlyYW1hCiskS2FuMSAgICA9IFtcdTBDOTUtXHUwQ0I5XTsgIyBLYW5uYWRhIExldHRl
ciBBLC4uLixIYQorJE1hbDAgICAgPSBbXHUwRDA1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExldHRl
ciBBLC4uLixIYSAKKyRNYWxWICAgID0gXHUwRDREOyAjIE1hbGF5YWxhbSBTaWduIFZpcmFtYQor
JE1hbDEgICAgPSBbXHUwRDE1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQor
JFJJICAgICAgPSBbXFUwMDAxRjFFNi1cVTAwMDFGMUZGXTsgIyBFbW9qaSByZWdpb25hbCBpbmRp
Y2F0b3JzCiskWldKICAgICA9IFx1MjAwRDsgIyBaZXJvIHdpZHRoIGpvaW5lcgorJEVtb2ppVmFy
ID0gW1x1RkUwRl07ICMgRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCisKKyNpZiBBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0
MiBcdTI2RjkgXHUyNzY0IFxVMDAwMUYzMDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYz
Q0EtXFUwMDAxRjNDQyBcVTAwMDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5
IFxVMDAwMUY0NkUtXFUwMDAxRjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBc
VTAwMDFGNDgxLVxVMDAwMUY0ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUw
MDAxRjU3NSBcVTAwMDFGNUU4IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAw
MUY2NEQtXFUwMDAxRjY0RSBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcdTI2OTUt
XHUyNjk2IFx1MjcwOCBcVTAwMDFGMzNFIFxVMDAwMUYzNzMgXFUwMDAxRjM5MyBcVTAwMDFGM0E0
IFxVMDAwMUYzQTggXFUwMDAxRjNFQiBcVTAwMDFGM0VEIFxVMDAwMUY0QkItXFUwMDAxRjRCQyBc
VTAwMDFGNTI3IFxVMDAwMUY1MkMgXFUwMDAxRjY4MCBcVTAwMDFGNjkyIFxVMDAwMUY5MjYgXFUw
MDAxRjkzNy1cVTAwMDFGOTM5IFxVMDAwMUY5M0MtXFUwMDAxRjkzRV07ICMgRW1vamkgdGhhdCBw
YXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2ppRm9yTW9kcyA9IFtcdTI2MUQg
XHUyNkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUw
MDAxRjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAw
MUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFG
NDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxVMDAwMUY1NzUgXFUwMDAxRjU5
MCBcVTAwMDFGNTk1IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEIt
XFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwIFxV
MDAwMUY5MTggXFUwMDAxRjNDMiBcVTAwMDFGM0M3IFxVMDAwMUYzQ0MgXFUwMDAxRjU3NCBcVTAw
MDFGNTdBIFxVMDAwMUY2Q0MgXFUwMDAxRjkxOS1cVTAwMDFGOTFFIFxVMDAwMUY5MjYgXFUwMDAx
RjkzMCBcVTAwMDFGOTMzLVxVMDAwMUY5MzkgXFUwMDAxRjkzQy1cVTAwMDFGOTNFXSA7ICMgRW1v
amkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZWxzZQorCisgICAgJEVtb2pp
Rm9yU2VxcyA9IFtcdTI3NjQgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0OEJdOyAjIEVt
b2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMg
PSBbXHUyNjFEIFx1MjcwQS1cdTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQg
XFUwMDAxRjNDNyBcVTAwMDFGM0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxV
MDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAw
MDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAx
RjRBQSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2
NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF0gOyAjIEVtb2pp
IHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMg
PSBbXFUwMDAxRjNGQi1cVTAwMDFGM0ZGXTsgIyBGaXR6cGF0cmljayBtb2RpZmllcnMKKyEhY2hh
aW47CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICEhUklOb0NoYWluOwor
CisjZW5kaWYKKworISFmb3J3YXJkOworJENSICRMRjsKKyRMICgkTCB8ICRWIHwgJExWIHwgJExW
VCk7CisoJExWIHwgJFYpICgkViB8ICRUKTsKKygkTFZUIHwgJFQpICRUOworCisjaWYgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUkkgJFJJICRFeHRlbmQqIC8gJFJJOworICAgICRS
SSAkUkkgJEV4dGVuZCo7CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOworICAgIFte
JENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOworCisjZWxzZQorCisgICAgW14kQ29udHJv
bCAkQ1IgJExGXSAkRXh0ZW5kOworICAgIFteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJr
OworICAgICRSSSAkUkkgLyAkUkk7CisgICAgJFJJICRSSTsKKworI2VuZGlmCisKKyRIaW4wICRI
aW5WICRIaW4xOyAjIERldmFuYWdhcmkgVmlyYW1hIChmb3J3YXJkKQorJEJlbjAgJEJlblYgJEJl
bjE7ICMgQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCiskUGFuMCAkUGFuViAkUGFuMTsgIyBHdXJt
dWtoaSBWaXJhbWEgKGZvcndhcmQpCiskR3VqMCAkR3VqViAkR3VqMTsgIyBHdWphcmF0aSBWaXJh
bWEgKGZvcndhcmQpCiskT3JpMCAkT3JpViAkT3JpMTsgIyBPcml5YSBWaXJhbWEgKGZvcndhcmQp
CiskVGVsMCAkVGVsViAkVGVsMTsgIyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQorJEthbjAgJEth
blYgJEthbjE7ICMgS2FubmFkYSBWaXJhbWEgKGZvcndhcmQpCiskTWFsMCAkTWFsViAkTWFsMTsg
IyBNYWxheWFsYW0gVmlyYW1hIChmb3J3YXJkKQorJFpXSiAkRW1vamlGb3JTZXFzOyAjIERvbnQg
YnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRF
bW9qaU1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3
aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVyCishIXJldmVy
c2U7CiskTEYgJENSOworKCRMIHwgJFYgfCAkTFYgfCAkTFZUKSAkTDsKKygkViB8ICRUKSAoJExW
IHwgJFYpOworJFQgKCRMVlQgfCAkVCk7CisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQK
KworICAgICRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOworICAgICRFeHRlbmQq
ICRSSSAkUkk7CisgICAgJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRMRl07CisgICAgJFNw
YWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07CisKKyNlbHNlCisKKyAgICAkRXh0ZW5kICAg
ICAgW14kQ29udHJvbCAkQ1IgJExGXTsKKyAgICAkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1Ig
JExGXTsKKyAgICAkUkkgJFJJIC8gJFJJICRSSTsKKyAgICAkUkkgJFJJOworCisjZW5kaWYKKwor
JEhpbjEgJEhpblYgJEhpbjA7ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQorJEJlbjEg
JEJlblYgJEJlbjA7ICMgQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQorJFBhbjEgJFBhblYgJFBh
bjA7ICMgR3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkKKyRHdWoxICRHdWpWICRHdWowOyAjIEd1
amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCiskT3JpMSAkT3JpViAkT3JpMDsgIyBHdWphcmF0aSBW
aXJhbWEgKGJhY2t3YXJkKQorJFRlbDEgJFRlbFYgJFRlbDA7ICMgVGVsdWd1IFZpcmFtYSAoYmFj
a3dhcmQpCiskS2FuMSAkS2FuViAkS2FuMDsgIyBLYW5uYWRhIFZpcmFtYSAoYmFja3dhcmQpCisk
TWFsMSAkTWFsViAkTWFsMDsgIyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKKyRFbW9qaUZv
clNlcXMgJFpXSjsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaU1v
ZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFu
dCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmlj
ayBtb2RpZmllcgorCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAhIXNhZmVf
cmV2ZXJzZTsKKyAgICAkUkkgJFJJKzsKKyAgICBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1v
amlGb3JNb2RzOworICAgICEhc2FmZV9mb3J3YXJkOworICAgICRSSSAkUkkrOworICAgICRFbW9q
aUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7CisKKyNlbHNlCisKKyAgICBbJEVtb2pp
VmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOworICAgICRFbW9qaUZvck1vZHMgWyRFbW9q
aVZhciAkRW1vamlNb2RzXSs7CisgICAgISFzYWZlX3JldmVyc2U7CisgICAgISFzYWZlX2Zvcndh
cmQ7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yRXBpbG9ndWUudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0
YjA4OGQ1MDAxNDJkMjliZGQyMDVlMzE4MDNkZjg0YTUyYjAyYmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGls
b2d1ZS50eHQKQEAgLTAsMCArMSwzNzIgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxA
a2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRBSSA9IFs6TGluZUJy
ZWFrID0gQW1iaWd1b3VzOl07CiskQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsKKyRC
QSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsKKyRCQiA9IFs6TGlu
ZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07CiskQksgPSBbOkxpbmVCcmVhayA9IE1hbmRhdG9yeV9C
cmVhazpdOworJEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19Cb3RoOl07CiskQ0IgPSBbOkxpbmVC
cmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsKKyRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVu
Y3R1YXRpb246XTsKKyRDTSA9IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsKKyRDUCA9
IFs6TGluZUJyZWFrID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsKKyRDUiA9IFs6TGluZUJyZWFrID0g
Q2FycmlhZ2VfUmV0dXJuOl07CiskRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0g
JEVYX1NVQl07CiskR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsKKworI2lmIEhBVkVfRVhUUkFf
SUNVX05BTUVEX1NFVFMKKworICAgICRITCA9IFs6TGluZUJyZWFrID0gSGVicmV3X0xldHRlcjpd
OworCisjZWxzZQorCisgICAgJEhMID0gW1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsKKworI2Vu
ZGlmCisKKyRIWSA9IFs6TGluZUJyZWFrID0gSHlwaGVuOl07CiskSDIgPSBbOkxpbmVCcmVhayA9
IEgyOl07CiskSDMgPSBbOkxpbmVCcmVhayA9IEgzOl07CiskSUQgPSBbW1tbOkxpbmVCcmVhayA9
IElkZW9ncmFwaGljOl0gLSAkQ0pdICRJRF9BRERdIC0gJElEX1NVQl07CiskSU4gPSBbWzpMaW5l
QnJlYWsgPSBJbnNlcGFyYWJsZTpdIC0gJElOX1NVQl07CiskSVMgPSBbWzpMaW5lQnJlYWsgPSBJ
bmZpeF9OdW1lcmljOl0gLSAkSVNfU1VCXTsKKyRKTCA9IFs6TGluZUJyZWFrID0gSkw6XTsKKyRK
ViA9IFs6TGluZUJyZWFrID0gSlY6XTsKKyRKVCA9IFs6TGluZUJyZWFrID0gSlQ6XTsKKyRMRiA9
IFs6TGluZUJyZWFrID0gTGluZV9GZWVkOl07CiskTkwgPSBbOkxpbmVCcmVhayA9IE5leHRfTGlu
ZTpdOworJE5TID0gW1tbWzpMaW5lQnJlYWsgPSBOb25zdGFydGVyOl0gLSAkQ0pdICROU19BRERd
IC0gJE5TX1NVQl07CiskTlUgPSBbOkxpbmVCcmVhayA9IE51bWVyaWM6XTsKKyRPUCA9IFs6TGlu
ZUJyZWFrID0gT3Blbl9QdW5jdHVhdGlvbjpdOworJFBPID0gW1s6TGluZUJyZWFrID0gUG9zdGZp
eF9OdW1lcmljOl0gLSAkUE9fU1VCXTsKKyRQUiA9IFtbOkxpbmVCcmVhayA9IFByZWZpeF9OdW1l
cmljOl0gLSAkUFJfU1VCXTsKKyRRVSA9IFs6TGluZUJyZWFrID0gUXVvdGF0aW9uOl07CiskUkkg
PSBbXFUwMDAxRjFFNi1cVTAwMDFGMUZGXTsKKyRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9D
b250ZXh0Ol07CiskU0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOworJFNQID0gWzpMaW5l
QnJlYWsgPSBTcGFjZTpdOworJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07Cisk
V0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9pbmVyOl07CiskWFggPSBbOkxpbmVCcmVhayA9IFVu
a25vd246XTsKKyRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpdOworJFpXSiA9IFx1MjAwRDsK
KyRFbW9qaVZhciA9IFx1RkUwRjsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisg
ICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI2NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUwMDAxRjMw
OCBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAwMUYzRjMg
XFUwMDAxRjQ0MSBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDZGIFxV
MDAwMUY0NzEgXFUwMDAxRjQ3MyBcVTAwMDFGNDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MiBcVTAw
MDFGNDg2LVxVMDAwMUY0ODcgXFUwMDAxRjQ4QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTggXFUwMDAx
RjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEIgXFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxVMDAwMUY2
QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFx1MjY5NS1cdTI2OTYgXHUyNzA4IFxVMDAwMUYzM0Ug
XFUwMDAxRjM3MyBcVTAwMDFGMzkzIFxVMDAwMUYzQTQgXFUwMDAxRjNBOCBcVTAwMDFGM0VCIFxV
MDAwMUYzRUQgXFUwMDAxRjRCQi1cVTAwMDFGNEJDIFxVMDAwMUY1MjcgXFUwMDAxRjUyQyBcVTAw
MDFGNjgwIFxVMDAwMUY2OTIgXFUwMDAxRjkyNiBcVTAwMDFGOTM3LVxVMDAwMUY5MzkgXFUwMDAx
RjkzQy1cVTAwMDFGOTNFXTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5j
ZXMKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1MjcwRCBcVTAw
MDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxVMDAwMUYzQ0IgXFUwMDAx
RjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0
NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3
IFxVMDAwMUY0QUEgXFUwMDAxRjU3NSBcVTAwMDFGNTkwIFxVMDAwMUY1OTUgXFUwMDAxRjU5NiBc
VTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUw
MDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzAgXFUwMDAxRjkxOCBcVTAwMDFGM0MyIFxVMDAw
MUYzQzcgXFUwMDAxRjNDQyBcVTAwMDFGNTc0IFxVMDAwMUY1N0EgXFUwMDAxRjZDQyBcVTAwMDFG
OTE5LVxVMDAwMUY5MUUgXFUwMDAxRjkyNiBcVTAwMDFGOTMwIFxVMDAwMUY5MzMtXFUwMDAxRjkz
OSBcVTAwMDFGOTNDLVxVMDAwMUY5M0VdOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBt
b2RpZmllcnMKKworI2Vsc2UKKworICAgICRFbW9qaUZvclNlcXMgPSBbXHUyNzY0IFxVMDAwMUY0
NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDhCXTsKKyAgICAkRW1vamlGb3JNb2RzID0gW1x1MjYxRCBc
dTI3MEEtXHUyNzBDIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQzcg
XFUwMDAxRjNDQSBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxV
MDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAw
MDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAx
RjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2
QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzBdOyAjIEVtb2ppIHRoYXQgdGFrZSBG
aXR6cGF0cmljayBtb2RpZmllcnMKKworI2VuZGlmCisKKyRFbW9qaU1vZHMgPSBbXFUwMDAxRjNG
Qi1cVTAwMDFGM0ZGXTsKKyRkaWN0aW9uYXJ5ID0gWzpMaW5lQnJlYWsgPSBDb21wbGV4X0NvbnRl
eHQ6XTsKKyRBTFBsdXMgPSBbJEFMICRBSSAkU0EgJFNHICRYWF07CiskQUxjbSA9ICRBTFBsdXMg
JENNKjsKKyRCQWNtID0gJEJBICRDTSo7CiskQkJjbSA9ICRCQiAkQ00qOworJEIyY20gPSAkQjIg
JENNKjsKKyRDTGNtID0gJENMICRDTSo7CiskQ1BjbSA9ICRDUCAkQ00qOworJEVYY20gPSAkRVgg
JENNKjsKKyRHTGNtID0gJEdMICRDTSo7CiskSExjbSA9ICRITCAkQ00qOworJEhZY20gPSAkSFkg
JENNKjsKKyRIMmNtID0gJEgyICRDTSo7CiskSDNjbSA9ICRIMyAkQ00qOworJElEY20gPSAkSUQg
JENNKjsKKyRJTmNtID0gJElOICRDTSo7CiskSVNjbSA9ICRJUyAkQ00qOworJEpMY20gPSAkSkwg
JENNKjsKKyRKVmNtID0gJEpWICRDTSo7CiskSlRjbSA9ICRKVCAkQ00qOworJE5TY20gPSAkTlMg
JENNKjsKKyROVWNtID0gJE5VICRDTSo7CiskT1BjbSA9ICRPUCAkQ00qOworJFBPY20gPSAkUE8g
JENNKjsKKyRQUmNtID0gJFBSICRDTSo7CiskUVVjbSA9ICRRVSAkQ00qOworJFJJY20gPSAkUkkg
JENNKjsKKyRTWWNtID0gJFNZICRDTSo7CiskV0pjbSA9ICRXSiAkQ00qOworCishIWZvcndhcmQ7
CiskQ0FOX0NNID0gW14kU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJENBTlRfQ00gPSBb
JFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsKKyRBTF9GT0xMT1dfTk9DTSA9IFskQksgJENS
ICRMRiAkTkwgJFpXICRTUF07CiskQUxfRk9MTE9XX0NNID0gWyRDTCAkQ1AgJEVYICRITCAkSVMg
JFNZICRXSiAkR0wgJE9QICRRVSAkQkEgJEhZICROUyAkSU4gJE5VICRBTFBsdXNdOworJEFMX0ZP
TExPVyA9IFskQUxfRk9MTE9XX05PQ00gJEFMX0ZPTExPV19DTV07CiskTEI0QnJlYWtzID0gWyRC
SyAkQ1IgJExGICROTF07CiskTEI0Tm9uQnJlYWtzID0gW14kQksgJENSICRMRiAkTkxdOworJExC
OEJyZWFrcyA9IFskTEI0QnJlYWtzICRaV107CiskTEI4Tm9uQnJlYWtzID0gW1skTEI0Tm9uQnJl
YWtzXSAtIFskWlddXTsKKyRMQjE4Tm9uQnJlYWtzID0gWyRMQjhOb25CcmVha3MgLSBbJFNQXV07
CiskTEIxOEJyZWFrcyA9IFskTEI4QnJlYWtzICRTUF07CiskTEIyME5vbkJyZWFrcyA9IFskTEIx
OE5vbkJyZWFrcyAtICRDQl07CiskQUxQbHVzICRDTSs7CiskQkEgJENNKzsKKyRCQiAkQ00rOwor
JEIyICRDTSs7CiskQ0wgJENNKzsKKyRDUCAkQ00rOworJEVYICRDTSs7CiskR0wgJENNKzsKKyRI
TCAkQ00rOworJEhZICRDTSs7CiskSDIgJENNKzsKKyRIMyAkQ00rOworJElEICRDTSs7CiskSU4g
JENNKzsKKyRJUyAkQ00rOworJEpMICRDTSs7CiskSlYgJENNKzsKKyRKVCAkQ00rOworJE5TICRD
TSs7CiskTlUgJENNKzsKKyRPUCAkQ00rOworJFBPICRDTSs7CiskUFIgJENNKzsKKyRRVSAkQ00r
OworJFJJICRDTSs7CiskU1kgJENNKzsKKyRXSiAkQ00rOworJENSICRMRiB7MTAwfTsKKyRMQjRO
b25CcmVha3M/ICRMQjRCcmVha3MgezEwMH07CiskQ0FOX0NNICRDTSogJExCNEJyZWFrcyB7MTAw
fTsKKyRDTSsgJExCNEJyZWFrcyB7MTAwfTsKKyRMQjROb25CcmVha3MgWyRTUCAkWlddOworJENB
Tl9DTSAkQ00qIFskU1AgJFpXXTsKKyRDTSsgWyRTUCAkWlddOworJEVtb2ppRm9yU2VxcyAkRW1v
amlWYXI/ICRFbW9qaU1vZHM/ICRaV0ogJEVtb2ppRm9yU2VxczsKKyRDQU5fQ00gJENNKzsKKyRD
TSs7CiskQ0FOX0NNICRDTSogJFdKY207CiskTEI4Tm9uQnJlYWtzICRXSmNtOworJENNKyAkV0pj
bTsKKyRXSmNtICRDQU5UX0NNOworJFdKY20gJENBTl9DTSAkQ00qOworJEdMY20gJENBTl9DTSAk
Q00qOworJEdMY20gJENBTlRfQ007CitbWyRMQjhOb25CcmVha3NdIC0gWyRTUCAkQkEgJEhZXV0g
JENNKiAkR0xjbTsKKyRDTSsgR0xjbTsKKyRMQjhOb25CcmVha3MgJENMOworJENBTl9DTSAkQ00q
ICRDTDsKKyRDTSsgJENMOworJExCOE5vbkJyZWFrcyAkQ1A7CiskQ0FOX0NNICRDTSogJENQOwor
JENNKyAkQ1A7CiskTEI4Tm9uQnJlYWtzICRFWDsKKyRDQU5fQ00gJENNKiAkRVg7CiskQ00rICRF
WDsKKyRMQjhOb25CcmVha3MgJElTOworJENBTl9DTSAkQ00qICRJUzsKKyRDTSsgJElTOworJExC
OE5vbkJyZWFrcyAkU1k7CiskQ0FOX0NNICRDTSogJFNZOworJENNKyAkU1k7CiskT1BjbSAkU1Aq
ICRDQU5fQ00gJENNKjsKKyRPUGNtICRTUCogJENBTlRfQ007CiskT1BjbSAkU1ArICRDTSsgJEFM
X0ZPTExPVz87CiskUVVjbSAkU1AqICRPUGNtOworKCRDTGNtIHwgJENQY20pICRTUCogJE5TY207
CiskQjJjbSAkU1AqICRCMmNtOworJExCMThOb25CcmVha3MgJENNKiAkUVVjbTsKKyRDTSsgJFFV
Y207CiskUVVjbSAuPzsKKyRRVWNtICRMQjE4Tm9uQnJlYWtzICRDTSo7CiskTEIyME5vbkJyZWFr
cyAkQ00qICgkQkFjbSB8ICRIWWNtIHwgJE5TY20pOyAKKyRCQmNtIFteJENCXTsKKyRCQmNtICRM
QjIwTm9uQnJlYWtzICRDTSo7CiskSExjbSAoJEhZY20gfCAkQkFjbSkgW14kQ0JdPzsKKyRTWWNt
ICRITGNtOworKCRBTGNtIHwgJEhMY20pICRJTmNtOworJENNKyAkSU5jbTsKKyRFWGNtICRJTmNt
OworJElEY20gJElOY207CiskSU5jbSAkSU5jbTsKKyROVWNtICRJTmNtOworJElEY20gJFBPY207
CiskQUxjbSAkTlVjbTsKKyRITGNtICROVWNtOworJENNKyAkTlVjbTsKKyROVWNtICRBTGNtOwor
JE5VY20gJEhMY207CiskUFJjbSAkSURjbTsKKyRQUmNtICgkQUxjbSB8ICRITGNtKTsKKyRQT2Nt
ICgkQUxjbSB8ICRITGNtKTsKKygkUFJjbSB8ICRQT2NtKT8gKCRPUGNtIHwgJEhZY20pPyAkTlVj
bSAoJE5VY20gfCAkU1ljbSB8ICRJU2NtKSogKCRDTGNtIHwgJENQY20pPyAoJFBSY20gfCAkUE9j
bSk/OworJEpMY20gKCRKTGNtIHwgJEpWY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkSlZjbSB8ICRI
MmNtKSAoJEpWY20gfCAkSlRjbSk7CisoJEpUY20gfCAkSDNjbSkgJEpUY207CisoJEpMY20gfCAk
SlZjbSB8ICRKVGNtIHwgJEgyY20gfCAkSDNjbSkgJElOY207CisoJEpMY20gfCAkSlZjbSB8ICRK
VGNtIHwgJEgyY20gfCAkSDNjbSkgJFBPY207CiskUFJjbSAoJEpMY20gfCAkSlZjbSB8ICRKVGNt
IHwgJEgyY20gfCAkSDNjbSk7CisoJEFMY20gfCAkSExjbSkgKCRBTGNtIHwgJEhMY20pOworJENN
KyAoJEFMY20gfCAkSExjbSk7CiskSVNjbSAoJEFMY20gfCAkSExjbSk7CisoJEFMY20gfCAkSExj
bSB8ICROVWNtKSAkT1BjbTsKKyRDTSsgJE9QY207CiskQ1BjbSAoJEFMY20gfCAkSExjbSB8ICRO
VWNtKTsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJFJJY20gJFJJY207
CisKKyNlbmRpZgorCiskRW1vamlGb3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsKKworISFy
ZXZlcnNlOworJENNKyAkQUxQbHVzOworJENNKyAkQkE7CiskQ00rICRCQjsKKyRDTSsgJEIyOwor
JENNKyAkQ0w7CiskQ00rICRDUDsKKyRDTSsgJEVYOworJENNKyAkR0w7CiskQ00rICRITDsKKyRD
TSsgJEhZOworJENNKyAkSDI7CiskQ00rICRIMzsKKyRDTSsgJElEOworJENNKyAkSU47CiskQ00r
ICRJUzsKKyRDTSsgJEpMOworJENNKyAkSlY7CiskQ00rICRKVDsKKyRDTSsgJE5TOworJENNKyAk
TlU7CiskQ00rICRPUDsKKyRDTSsgJFBPOworJENNKyAkUFI7CiskQ00rICRRVTsKKworI2lmIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKyAkUkk7CisKKyNlbmRpZgorCiskQ00r
ICRTWTsKKyRDTSsgJFdKOworJENNKzsKKyRBTF9GT0xMT1cgJENNKyAvIChbJEJLICRDUiAkTEYg
JE5MICRaVyB7ZW9mfV0gfCAkU1ArICRDTSsgJFNQIHwgJFNQKyAkQ00qIChbXiRPUCAkQ00gJFNQ
XSB8IFskQUwge2VvZn1dKSk7CitbJFBSXSAvICRDTSsgWyRCSyAkQ1IgJExGICROTCAkWlcgJFNQ
IHtlb2Z9XTsKKyRMQjRCcmVha3MgWyRMQjROb25CcmVha3MtJENNXTsKKyRMQjRCcmVha3MgJENN
KyAkQ0FOX0NNOworJExGICRDUjsKK1skU1AgJFpXXSBbJExCNE5vbkJyZWFrcy0kQ01dOworWyRT
UCAkWlddICRDTSsgJENBTl9DTTsKKyRFbW9qaUZvclNlcXMgJFpXSiAkRW1vamlNb2RzPyAkRW1v
amlWYXI/ICRFbW9qaUZvclNlcXM7CiskQ00rICRDQU5fQ007CiskQ00qICRXSiAkQ00qICRDQU5f
Q007CiskQ00qICRXSiBbJExCOE5vbkJyZWFrcy0kQ01dOworJENBTlRfQ00gJENNKiAkV0o7Cisk
Q00qICRDQU5fQ00gJENNKiAkV0o7CiskQ00qICRHTCAkQ00qIFskTEI4Tm9uQnJlYWtzLVskQ00g
JFNQICRCQSAkSFldXTsKKyRDQU5UX0NNICRDTSogJEdMOworJENNKiAkQ0FOX0NNICRDTSogJEdM
OworJENMICRDTSsgJENBTl9DTTsKKyRDUCAkQ00rICRDQU5fQ007CiskRVggJENNKyAkQ0FOX0NN
OworJElTICRDTSsgJENBTl9DTTsKKyRTWSAkQ00rICRDQU5fQ007CiskQ0wgWyRMQjhOb25CcmVh
a3MtJENNXTsKKyRDUCBbJExCOE5vbkJyZWFrcy0kQ01dOworJEVYIFskTEI4Tm9uQnJlYWtzLSRD
TV07CiskSVMgWyRMQjhOb25CcmVha3MtJENNXTsKKyRTWSBbJExCOE5vbkJyZWFrcy0kQ01dOwor
WyRDTCAkQ1AgJEVYICRJUyAkU1ldICRDTSsgJFNQKyAkQ00qICRPUDsgCiskQ00qICRDQU5fQ00g
JFNQKiAkQ00qICRPUDsKKyRDQU5UX0NNICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XPyAkQ00r
ICRTUCAkU1AqICRDTSogJE9QOworJEFMX0ZPTExPV19OT0NNICRDTSsgJFNQKyAkQ00qICRPUDsK
KyRDTSogJEFMX0ZPTExPV19DTSAkQ00rICRTUCsgJENNKiAkT1A7CiskU1kgJENNICRTUCsgJE9Q
OworJENNKiAkT1AgJFNQKiAkQ00qICRRVTsKKyRDTSogJE5TICRTUCogJENNKiAoJENMIHwgJENQ
KTsKKyRDTSogJEIyICRTUCogJENNKiAkQjI7CiskQ00qICRRVSAkQ00qICRDQU5fQ007CiskQ00q
ICRRVSAkTEIxOE5vbkJyZWFrczsKKyRDTSogJENBTl9DTSAkQ00qICRRVTsKKyRDQU5UX0NNICRD
TSogJFFVOworJENNKiAoJEJBIHwgJEhZIHwgJE5TKSAkQ00qIFskTEIyME5vbkJyZWFrcy0kQ01d
OworJENNKiBbJExCMjBOb25CcmVha3MtJENNXSAkQ00qICRCQjsKK1teJENCXSAkQ00qICRCQjsK
K1teJENCXSAkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworJENNKiAkSEwgJENNKiAkU1k7Cisk
Q00qICRJTiAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogJElOICRDTSogJEVYOworJENNKiAk
SU4gJENNKiAkSUQ7CiskQ00qICRJTiAkQ00qICRJTjsKKyRDTSogJElOICRDTSogJE5VOworJENN
KiAkUE8gJENNKiAkSUQ7CiskQ00qICROVSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRDTSogKCRB
TFBsdXMgfCAkSEwpICRDTSogJE5VOworJENNKiAkSUQgJENNKiAkUFI7CiskQ00qICgkQUxQbHVz
IHwgJEhMKSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBPOworKCRDTSog
KCRQUiB8ICRQTykpPyAoJENNKiAoJENMIHwgJENQKSk/ICgkQ00qICgkTlUgfCAkSVMgfCAkU1kp
KSogJENNKiAkTlUgKCRDTSogKCRPUCB8ICRIWSkpPyAoJENNKiAoJFBSIHwgJFBPKSk/OworJENN
KiAoJEgzIHwgJEgyIHwgJEpWIHwgJEpMKSAkQ00qICRKTDsKKyRDTSogKCRKVCB8ICRKVikgJENN
KiAoJEgyIHwgJEpWKTsKKyRDTSogJEpUICRDTSogKCRIMyB8ICRKVCk7CiskQ00qICRJTiAkQ00q
ICgkSDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAkUE8gJENNKiAoJEgzIHwgJEgy
IHwgJEpUIHwgJEpWIHwgJEpMKTsKKyRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCkg
JENNKiAkUFI7CiskQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICgkQUxQbHVzIHwgJEhMKTsKKyRD
TSogKCRBTFBsdXMgfCAkSEwpICRDTSogJElTOworJENNKiAkT1AgJENNKiAoJEFMUGx1cyB8ICRI
TCB8ICROVSk7CiskQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKSAkQ00qICRDUDsKKworI2lmIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJENNKiAkUkkgJENNKiAkUkk7CisKKyNlbmRp
ZgorCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsKKworISFzYWZlX2Zvcndh
cmQ7CitbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBSICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5
XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkZGljdGlvbmFyeV07Cisk
ZGljdGlvbmFyeSAkZGljdGlvbmFyeTsKKyAgICAKKyEhc2FmZV9yZXZlcnNlOworJENNKyBbXiRD
TSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07CiskQ00rICRTUCAvIC47CiskU1ArICRDTSogJE9Q
OworJFNQKyAkQ00qICRRVTsKKyRTUCsgJENNKiAoJENMIHwgJENQKTsKKyRTUCsgJENNKiAkQjI7
CiskQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOworKCRDTSogKCRJUyB8ICRTWSkpKyAkQ00qICRO
VTsKKygkQ0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7CiskZGljdGlvbmFyeSAkZGlj
dGlvbmFyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjNmNjZm
NDJhZjEzOGVkNThmZjQyMWY2NzY4ZDhmZDU4MDEyODJjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUu
dHh0CkBAIC0wLDAgKzEsMzggQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9y
ZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyEhY2hhaW47CishIUxCQ01Ob0No
YWluOworISFsb29rQWhlYWRIYXJkQnJlYWs7CisKKyNpZiBIQVZFX0VYVFJBX0lDVV9OQU1FRF9T
RVRTCisKKyAgICAkQ0ogPSBbOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVy
Ol07CisKKyNlbHNlCisKKyAgICAkQ0ogPSBbXHUzMDQxXHUzMDQzXHUzMDQ1XHUzMDQ3XHUzMDQ5
XHUzMDYzXHUzMDgzXHUzMDg1XHUzMDg3XHUzMDhFXHUzMDk1XHUzMDk2XHUzMEExXHUzMEEzXHUz
MEE1XHUzMEE3XHUzMEE5XHUzMEMzXHUzMEUzXHUzMEU1XHUzMEU3XHUzMEVFXHUzMEY1XHUzMEY2
XHUzMEZDXHUzMUYwXHUzMUYxXHUzMUYyXHUzMUYzXHUzMUY0XHUzMUY1XHUzMUY2XHUzMUY3XHUz
MUY4XHUzMUY5XHUzMUZBXHUzMUZCXHUzMUZDXHUzMUZEXHUzMUZFXHUzMUZGXHVGRjY3XHVGRjY4
XHVGRjY5XHVGRjZBXHVGRjZCXHVGRjZDXHVGRjZEXHVGRjZFXHVGRjZGXHVGRjcwXTsKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA3YzBjYTVhYTdi
MmZmYmY4YjJjZDkwOTJhYTVmM2UxZGJhNDA5MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApA
QCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisj
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisj
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gW1x1MjAxMFx1MjAxM107
CiskRVhfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSVNfU1VCID0g
Jyc7CiskTlNfU1VCID0gW1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0g
Jyc7CiskSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZUNKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGI4ZjBmZjUx
ODU2ZDk3YzljMTRlMTIxNjM3MzRmZGZjOTdjOWNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUu
b3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBc
dTIwMTNdOworJEVYX1NVQiA9IFtcdTAwMjFcdTAwM0ZcdUZGMDFcdUZGMUZdOworJElEX1NVQiA9
ICcnOworJElOX1NVQiA9IFtcdTIwMjVcdTIwMjZdOworJElTX1NVQiA9IFtcdTAwM0FcdTAwM0Jd
OworJE5TX1NVQiA9IFtcdTIwM0NcdTIwNDdcdTIwNDhcdTIwNDlcdTMwMDVcdTMwMUNcdTMwM0Jc
dTMwOURcdTMwOUVcdTMwQTBcdTMwRkJcdTMwRkRcdTMwRkVcdUZGMUFcdUZGMUJcdUZGNjVdOwor
JFBPX1NVQiA9IFtcdTAwMjVcdTAwQTJcdTAwQjBcdTIwMzBcdTIwMzJcdTIwMzNcdTIxMDNcdUZG
MDVcdUZGRTBdOworJFBSX1NVQiA9IFtcdTAwMjRcdTAwQTNcdTAwQTVcdTIwQUNcdTIxMTZcdUZG
MDRcdUZGRTFcdUZGRTVdOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkRVhfU1VCICRJTl9TVUIg
JElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjYmJjOGE4
ODE1ZTRkMGRjZmI5NjBjMTEyZjYwYTgzOGQzYTQyODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xs
QGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7
CiskRVhfU1VCID0gJyc7CiskSURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07
CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAwNVx1MzAzQlx1MzA5RFx1MzA5RVx1MzBG
RFx1MzBGRV07CiskUE9fU1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAk
SU5fU1VCICROU19TVUJdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0IGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRO
b25DSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3NDI4NzlkZDFmODJlYjYyZDI4ZDhhYTdiY2RkZjQ0NmQw
NzM4N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAw
Ny0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOwor
JElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcn
OworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwN2MwY2E1YWE3
YjJmZmJmOGIyY2Q5MDkyYWE1ZjNlMWRiYTQwOTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENK
Sy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUu
b3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9IFtcdTIwMTBc
dTIwMTNdOworJEVYX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElT
X1NVQiA9ICcnOworJE5TX1NVQiA9IFtcdTMwMUNcdTMwQTBdOworJFBPX1NVQiA9ICcnOworJFBS
X1NVQiA9ICcnOworJElEX0FERCA9IFskQ0ogJEJBX1NVQiAkTlNfU1VCXTsKKyROU19BREQgPSAn
JzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45MmNmNmEwODI2YWRhNGVkY2ZjZjM5NDNiNjg5ZjhjMDZlMGJkNzQ4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxOb25DSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3Jj
aCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAn
JzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIg
PSAnJzsKKyRJRF9BREQgPSBbJENKXTsKKyROU19BREQgPSAnJzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0
Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzQyODc5ZGQxZjgyZWI2MmQyOGQ4
YWE3YmNkZGY0NDZkMDczODdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0CkBAIC0w
LDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBD
b3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsK
KyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAn
JzsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQg
PSBbJENKXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mNzQyODc5ZGQxZjgyZWI2MmQyOGQ4YWE3YmNkZGY0NDZkMDczODdmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5
OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAw
OSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyRCQV9TVUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9T
VUIgPSAnJzsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSAnJzsKKyRQT19TVUIgPSAnJzsKKyRQ
Ul9TVUIgPSAnJzsKKyRJRF9BREQgPSAnJzsKKyROU19BREQgPSBbJENKXTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291cmNlL1dURi93
dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKaW5kZXggYjBkYmU1OTdmMzkxZjEzMmMyOGU2
NDJmN2Q5NzViMTEwZjc1ZjgyNi4uNTI3MGEyNTkxYWM5YmM4MDA1OTNjNTJkMWI1Y2JhNzU3NDc0
YTY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKQEAgLTMx
LDkgKzMxLDYgQEAKICNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CiAKLS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0dGVyIG5hbWUK
LSNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1MpIHx8IChQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwKSkK
LQogbmFtZXNwYWNlIFdURiB7CiAKIC8vIEl0ZXJhdG9yIGluaXRpYWxpemF0aW9uCkBAIC02MSw2
ICs1OCwxMiBAQCBzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGluaXRpYWxpemVJdGVyYXRvcldpdGhS
dWxlcyhjb25zdCBjaGFyKiBicmVha1J1bGVzKQogCiAjZW5kaWYKIAorI2lmICFQTEFURk9STShN
QUMpICYmICFQTEFURk9STShJT1MpCitVQnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JGb3JS
dWxlU2V0KEJyZWFraW5nUnVsZVNldCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRp
ZgogCiAvLyBJdGVyYXRvciB0ZXh0IHNldHRpbmcKIApAQCAtMTY0LDE0MyArMTY3LDI3IEBAIFVC
cmVha0l0ZXJhdG9yKiBzZW50ZW5jZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiAg
ICAgcmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqc3RhdGljU2VudGVuY2VCcmVha0l0ZXJhdG9y
LCBzdHJpbmcpOwogfQogCisjaWYgIVBMQVRGT1JNKElPUykKK3N0YXRpYyBVQnJlYWtJdGVyYXRv
ciogY3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjaygpCit7CisgICAgaWYg
KGF1dG8qIGl0ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNl
dDo6Q3Vyc29yTW92ZW1lbnQpKQorICAgICAgICByZXR1cm4gaXRlcmF0b3I7CisgICAgcmV0dXJu
IGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMp
OworfQorI2VuZGlmCisKIFVCcmVha0l0ZXJhdG9yKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKFN0
cmluZ1ZpZXcgc3RyaW5nKQogewogI2lmICFQTEFURk9STShJT1MpCi0gICAgLy8gVGhpcyBydWxl
IHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3
Ci0gICAgLy8gPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFn
cy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCi0gICAgLy8gVGhlIG1ham9yIGRp
ZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBiZWxvdzoKLSAgICAv
LyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0n
IHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBm
b3IgSUNVIDMuOCBvciBlYXJsaWVyOwotICAgIC8vICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZl
bnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQz
NDIpOwotICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92
aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChC
dWcgMTU3OTApLCBhbmQ7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJz
b3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthcmEgdm9pY2Vk
IG1hcmtzLgotICAgIC8vICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGluZGljYXRvciBzeW1i
b2xzLgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBrUnVsZXMgPQotICAgICAgICAiJENSICAgICAg
PSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOyIKLSAgICAgICAgIiRMRiAgICAg
ID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsiCi0gICAgICAgICIkQ29udHJv
bCA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsiCi0gICAgICAgICIk
Vm9pY2VNYXJrcyA9IFtcXHVGRjlFXFx1RkY5Rl07IiAvLyBKYXBhbmVzZSBoYWxmLXdpZHRoIGth
dGFrYW5hIHZvaWNlZCBtYXJrcwotICAgICAgICAiJEV4dGVuZCAgPSBbXFxwe0dyYXBoZW1lX0Ns
dXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1xcdTBFMzAgXFx1MEUzMiBcXHUw
RTQ1IFxcdTBFQjAgXFx1MEVCMl1dOyIKLSAgICAgICAgIiRTcGFjaW5nTWFyayA9IFtbXFxwe0dl
bmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOyIKLSAgICAgICAgIiRM
ICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOyIKLSAgICAgICAgIiRW
ICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOyIKLSAgICAgICAgIiRU
ICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOyIKLSAgICAgICAgIiRM
ViAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsiCi0gICAgICAgICIk
TFZUICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1dOyIKLSAgICAgICAg
IiRIaW4wICAgID0gW1xcdTA5MDUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJpIExldHRlciBBLC4u
LixIYQotICAgICAgICAiJEhpblYgICAgPSBcXHUwOTREOyIgLy8gRGV2YW5hZ2FyaSBTaWduIFZp
cmFtYQotICAgICAgICAiJEhpbjEgICAgPSBbXFx1MDkxNS1cXHUwOTM5XTsiIC8vIERldmFuYWdh
cmkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEJlbjAgICAgPSBbXFx1MDk4NS1cXHUwOUI5
XTsiIC8vIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkQmVuViAgICA9IFxcdTA5
Q0Q7IiAvLyBCZW5nYWxpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkQmVuMSAgICA9IFtcXHUwOTk1
LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkUGFuMCAg
ICA9IFtcXHUwQTA1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCi0gICAg
ICAgICIkUGFuViAgICA9IFxcdTBBNEQ7IiAvLyBHdXJtdWtoaSBTaWduIFZpcmFtYQotICAgICAg
ICAiJFBhbjEgICAgPSBbXFx1MEExNS1cXHUwQTM5XTsiIC8vIEd1cm11a2hpIExldHRlciBLYSwu
Li4sSGEKLSAgICAgICAgIiRHdWowICAgID0gW1xcdTBBODUtXFx1MEFCOV07IiAvLyBHdWphcmF0
aSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRHdWpWICAgID0gXFx1MEFDRDsiIC8vIEd1amFy
YXRpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkR3VqMSAgICA9IFtcXHUwQTk1LVxcdTBBQjldOyIg
Ly8gR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJE9yaTAgICAgPSBbXFx1MEIw
NS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJE9yaVYgICAg
PSBcXHUwQjREOyIgLy8gT3JpeWEgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRPcmkxICAgID0gW1xc
dTBCMTUtXFx1MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkVGVs
MCAgICA9IFtcXHUwQzA1LVxcdTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBBLC4uLixIYQotICAg
ICAgICAiJFRlbFYgICAgPSBcXHUwQzREOyIgLy8gVGVsdWd1IFNpZ24gVmlyYW1hCi0gICAgICAg
ICIkVGVsMSAgICA9IFtcXHUwQzE0LVxcdTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBLYSwuLi4s
SGEKLSAgICAgICAgIiRLYW4wICAgID0gW1xcdTBDODUtXFx1MENCOV07IiAvLyBLYW5uYWRhIExl
dHRlciBBLC4uLixIYQotICAgICAgICAiJEthblYgICAgPSBcXHUwQ0NEOyIgLy8gS2FubmFkYSBT
aWduIFZpcmFtYQotICAgICAgICAiJEthbjEgICAgPSBbXFx1MEM5NS1cXHUwQ0I5XTsiIC8vIEth
bm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsMCAgICA9IFtcXHUwRDA1LVxcdTBE
MzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAiJE1hbFYgICAgPSBc
XHUwRDREOyIgLy8gTWFsYXlhbGFtIFNpZ24gVmlyYW1hCi0gICAgICAgICIkTWFsMSAgICA9IFtc
XHUwRDE1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAi
JFJJICAgICAgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIgLy8gRW1vamkgcmVnaW9uYWwg
aW5kaWNhdG9ycwotICAgICAgICAiJFpXSiAgICAgPSBcXHUyMDBEOyIgLy8gWmVybyB3aWR0aCBq
b2luZXIKLSAgICAgICAgIiRFbW9qaVZhciA9IFtcXHVGRTBGXTsiIC8vIEVtb2ppLXN0eWxlIHZh
cmlhdGlvbiBzZWxlY3RvcgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAi
JEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFG
MzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAw
MDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxc
VTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgx
LVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFG
NTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAw
MDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxc
dTI2OTUtXFx1MjY5NiBcXHUyNzA4IFxcVTAwMDFGMzNFIFxcVTAwMDFGMzczIFxcVTAwMDFGMzkz
IFxcVTAwMDFGM0E0IFxcVTAwMDFGM0E4IFxcVTAwMDFGM0VCIFxcVTAwMDFGM0VEIFxcVTAwMDFG
NEJCLVxcVTAwMDFGNEJDIFxcVTAwMDFGNTI3IFxcVTAwMDFGNTJDIFxcVTAwMDFGNjgwIFxcVTAw
MDFGNjkyIFxcVTAwMDFGOTI2IFxcVTAwMDFGOTM3LVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxc
VTAwMDFGOTNFXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwot
ICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1MjcwQS1cXHUyNzBE
IFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBIFxcVTAwMDFG
M0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAw
MDFGNDY2LVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxc
VTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1IFxcVTAwMDFGNTkw
IFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFG
NjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAw
MDFGNkMwIFxcVTAwMDFGOTE4IFxcVTAwMDFGM0MyIFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NDIFxc
VTAwMDFGNTc0IFxcVTAwMDFGNTdBIFxcVTAwMDFGNkNDIFxcVTAwMDFGOTE5LVxcVTAwMDFGOTFF
IFxcVTAwMDFGOTI2IFxcVTAwMDFGOTMwIFxcVTAwMDFGOTMzLVxcVTAwMDFGOTM5IFxcVTAwMDFG
OTNDLVxcVTAwMDFGOTNFXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZp
ZXJzCi0jZWxzZQotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2
LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDhCXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4g
WldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEt
XFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBc
XFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1
MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAx
RjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUw
MDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1c
XFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZD
MF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0g
ICAgICAgICIkRW1vamlNb2RzID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiIC8vIEZpdHpw
YXRyaWNrIG1vZGlmaWVycwotICAgICAgICAiISFjaGFpbjsiCi0jaWYgQURESVRJT05BTF9FTU9K
SV9TVVBQT1JUCi0gICAgICAgICIhIVJJTm9DaGFpbjsiCi0jZW5kaWYKLSAgICAgICAgIiEhZm9y
d2FyZDsiCi0gICAgICAgICIkQ1IgJExGOyIKLSAgICAgICAgIiRMICgkTCB8ICRWIHwgJExWIHwg
JExWVCk7IgotICAgICAgICAiKCRMViB8ICRWKSAoJFYgfCAkVCk7IgotICAgICAgICAiKCRMVlQg
fCAkVCkgJFQ7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJFJJICRS
SSAkRXh0ZW5kKiAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqOyIKLSAgICAgICAg
IlteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAk
TEZdICRTcGFjaW5nTWFyazsiCi0jZWxzZQotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAk
RXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSAg
ICAgICAgIiRSSSAkUkkgLyAkUkk7IgotICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAg
ICAgIiRIaW4wICRIaW5WICRIaW4xOyIgLy8gRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCi0g
ICAgICAgICIkQmVuMCAkQmVuViAkQmVuMTsiIC8vIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQot
ICAgICAgICAiJFBhbjAgJFBhblYgJFBhbjE7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQp
Ci0gICAgICAgICIkR3VqMCAkR3VqViAkR3VqMTsiIC8vIEd1amFyYXRpIFZpcmFtYSAoZm9yd2Fy
ZCkKLSAgICAgICAgIiRPcmkwICRPcmlWICRPcmkxOyIgLy8gT3JpeWEgVmlyYW1hIChmb3J3YXJk
KQotICAgICAgICAiJFRlbDAgJFRlbFYgJFRlbDE7IiAvLyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJk
KQotICAgICAgICAiJEthbjAgJEthblYgJEthbjE7IiAvLyBLYW5uYWRhIFZpcmFtYSAoZm9yd2Fy
ZCkKLSAgICAgICAgIiRNYWwwICRNYWxWICRNYWwxOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoZm9y
d2FyZCkKLSAgICAgICAgIiRaV0ogJEVtb2ppRm9yU2VxczsiIC8vIERvbid0IGJyZWFrIGluIGVt
b2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1v
amlNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkg
d2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotICAgICAg
ICAiISFyZXZlcnNlOyIKLSAgICAgICAgIiRMRiAkQ1I7IgotICAgICAgICAiKCRMIHwgJFYgfCAk
TFYgfCAkTFZUKSAkTDsiCi0gICAgICAgICIoJFYgfCAkVCkgKCRMViB8ICRWKTsiCi0gICAgICAg
ICIkVCAoJExWVCB8ICRUKTsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAg
ICIkRXh0ZW5kKiAkUkkgJFJJIC8gJEV4dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5k
KiAkUkkgJFJJOyIKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIK
LSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSNlbHNlCi0gICAg
ICAgICIkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkU3BhY2lu
Z01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJICRSSTsi
Ci0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRpZgotICAgICAgICAiJEhpbjEgJEhpblYgJEhpbjA7
IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkQmVuMSAkQmVuViAk
QmVuMDsiIC8vIEJlbmdhbGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRQYW4xICRQYW5W
ICRQYW4wOyIgLy8gR3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRHdWoxICRH
dWpWICRHdWowOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRPcmkx
ICRPcmlWICRPcmkwOyIgLy8gR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRU
ZWwxICRUZWxWICRUZWwwOyIgLy8gVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIk
S2FuMSAkS2FuViAkS2FuMDsiIC8vIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAg
IiRNYWwxICRNYWxWICRNYWwwOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCi0gICAg
ICAgICIkRW1vamlGb3JTZXFzICRaV0o7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2Vx
dWVuY2VzCi0gICAgICAgICIkRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiIC8v
IERvbid0IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0
aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKLSNpZiBBRERJVElPTkFMX0VN
T0pJX1NVUFBPUlQKLSAgICAgICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiRSSSAkUkkr
OyIKLSAgICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAg
ICAgICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiJEVt
b2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsiOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBj
cmVhdGVDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKCk7CiAjZWxzZQotICAgICAg
ICAiWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0gICAgICAgICIkRW1v
amlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyIKLSAgICAgICAgIiEhc2FmZV9yZXZl
cnNlOyIKLSAgICAgICAgIiEhc2FmZV9mb3J3YXJkOyI7Ci0jZW5kaWYKLSAgICBzdGF0aWMgVUJy
ZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRl
cmF0b3JXaXRoUnVsZXMoa1J1bGVzKTsKLSNlbHNlIC8vIFBMQVRGT1JNKElPUykKICAgICAvLyBV
c2UgdGhlIHNwZWNpYWwgVGhhaSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgZm9yIGFsbCBsb2Nh
bGVzCi0gICAgc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yKFVCUktfQ0hBUkFDVEVSLCAidGgiKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yKFVCUktfQ0hBUkFDVEVSLCAidGgiKTsKICNlbmRp
ZiAvLyAhUExBVEZPUk0oSU9TKQogCi0gICAgaWYgKCFzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yKQorICAgIGlmICghc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvci5nZXQoKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICByZXR1cm4gc2V0VGV4dEZvckl0ZXJhdG9yKCpzdGF0
aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yLCBzdHJpbmcpOworICAgIHJldHVybiBzZXRUZXh0Rm9y
SXRlcmF0b3IoKihzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yLmdldCgpKSwgc3RyaW5nKTsK
IH0KIAogVUJyZWFrSXRlcmF0b3IqIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRvcihTdHJpbmdWaWV3
IHN0cmluZywgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUsIGNvbnN0IFVDaGFyKiBwcmlvckNv
bnRleHQsIHVuc2lnbmVkIHByaW9yQ29udGV4dExlbmd0aCwgTGluZUJyZWFrSXRlcmF0b3JNb2Rl
IG1vZGUsIGJvb2wgaXNDSkspCkBAIC0zMTksNDQyICsyMDYsMjAgQEAgdm9pZCByZWxlYXNlTGlu
ZUJyZWFrSXRlcmF0b3IoVUJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQogICAgIExpbmVCcmVha0l0
ZXJhdG9yUG9vbDo6c2hhcmVkUG9vbCgpLnB1dChpdGVyYXRvcik7CiB9CiAKLXN0YXRpYyBjb25z
dCBjaGFyKiB1YXgxNFByb2xvZ3VlID0KLSAgICAiISFjaGFpbjsiCi0gICAgIiEhTEJDTU5vQ2hh
aW47IgotICAgICIhIWxvb2tBaGVhZEhhcmRCcmVhazsiOwotCi1zdGF0aWMgY29uc3QgY2hhciog
dWF4MTRBc3NpZ25tZW50c0JlZm9yZSA9Ci0gICAgLy8gZXhwbGljaXRseSBlbnVtZXJhdGUgJENK
IHNpbmNlIElDVSB2ZXJzaW9ucyBwcmlvciB0byA0OSBkb24ndCBzdXBwb3J0IDpMaW5lQnJlYWs9
Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoKLSAgICAiJENKID0gWyIKLSNpZiAoVV9JQ1Vf
VkVSU0lPTl9NQUpPUl9OVU0gPj0gNCkgJiYgKFVfSUNVX1ZFUlNJT05fTUlOT1JfTlVNID49IDkp
Ci0gICAgIjpMaW5lQnJlYWs9Q29uZGl0aW9uYWxfSmFwYW5lc2VfU3RhcnRlcjoiCi0jZWxzZQot
ICAgICJcXHUzMDQxXFx1MzA0M1xcdTMwNDVcXHUzMDQ3XFx1MzA0OVxcdTMwNjNcXHUzMDgzXFx1
MzA4NVxcdTMwODdcXHUzMDhFXFx1MzA5NVxcdTMwOTZcXHUzMEExXFx1MzBBM1xcdTMwQTVcXHUz
MEE3IgotICAgICJcXHUzMEE5XFx1MzBDM1xcdTMwRTNcXHUzMEU1XFx1MzBFN1xcdTMwRUVcXHUz
MEY1XFx1MzBGNlxcdTMwRkMiCi0gICAgIlxcdTMxRjBcXHUzMUYxXFx1MzFGMlxcdTMxRjNcXHUz
MUY0XFx1MzFGNVxcdTMxRjZcXHUzMUY3XFx1MzFGOFxcdTMxRjlcXHUzMUZBXFx1MzFGQlxcdTMx
RkNcXHUzMUZEXFx1MzFGRVxcdTMxRkYiCi0gICAgIlxcdUZGNjdcXHVGRjY4XFx1RkY2OVxcdUZG
NkFcXHVGRjZCXFx1RkY2Q1xcdUZGNkRcXHVGRjZFXFx1RkY2RlxcdUZGNzAiCi0jZW5kaWYKLSAg
ICAiXTsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3Nl
Q0pLID0KLSAgICAiJEJBX1NVQiA9IFtcXHUyMDEwXFx1MjAxM107IgotICAgICIkRVhfU1VCID0g
W1xcdTAwMjFcXHUwMDNGXFx1RkYwMVxcdUZGMUZdOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAg
ICAiJElOX1NVQiA9IFtcXHUyMDI1XFx1MjAyNl07IgotICAgICIkSVNfU1VCID0gW1xcdTAwM0Fc
XHUwMDNCXTsiCi0gICAgIiROU19TVUIgPSBbXFx1MjAzQ1xcdTIwNDdcXHUyMDQ4XFx1MjA0OVxc
dTMwMDVcXHUzMDFDXFx1MzAzQlxcdTMwOURcXHUzMDlFXFx1MzBBMFxcdTMwRkJcXHUzMEZEXFx1
MzBGRVxcdUZGMUFcXHVGRjFCXFx1RkY2NV07IgotICAgICIkUE9fU1VCID0gW1xcdTAwMjVcXHUw
MEEyXFx1MDBCMFxcdTIwMzBcXHUyMDMyXFx1MjAzM1xcdTIxMDNcXHVGRjA1XFx1RkZFMF07Igot
ICAgICIkUFJfU1VCID0gW1xcdTAwMjRcXHUwMEEzXFx1MDBBNVxcdTIwQUNcXHUyMTE2XFx1RkYw
NFxcdUZGRTFcXHVGRkU1XTsiCi0gICAgIiRJRF9BREQgPSBbJENKICRCQV9TVUIgJEVYX1NVQiAk
SU5fU1VCICRJU19TVUIgJE5TX1NVQiAkUE9fU1VCICRQUl9TVUJdOyIKLSAgICAiJE5TX0FERCA9
ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTG9vc2VO
b25DSksgPQotICAgICIkQkFfU1VCID0gJyc7IgotICAgICIkRVhfU1VCID0gJyc7IgotICAgICIk
SURfU1VCID0gJyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJ
U19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAwNVxcdTMwM0JcXHUzMDlEXFx1MzA5
RVxcdTMwRkRcXHUzMEZFXTsiCi0gICAgIiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAn
JzsiCi0gICAgIiRJRF9BREQgPSBbJENKICRJTl9TVUIgJE5TX1NVQl07IgotICAgICIkTlNfQURE
ID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3Jt
YWxDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRFWF9TVUIg
PSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJ
U19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSBbXFx1MzAxQ1xcdTMwQTBdOyIKLSAgICAiJFBP
X1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJEJB
X1NVQiAkTlNfU1VCXTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hh
ciogdWF4MTRBc3NpZ25tZW50c0N1c3RvbU5vcm1hbE5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAn
JzsiCi0gICAgIiRFWF9TVUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9T
VUIgPSAnJzsiCi0gICAgIiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsiCi0gICAg
IiRQT19TVUIgPSAnJzsiCi0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSBbJENK
XTsiCi0gICAgIiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3Np
Z25tZW50c0N1c3RvbVN0cmljdENKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9T
VUIgPSAnJzsiCi0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSAnJzsiCi0gICAg
IiRJU19TVUIgPSAnJzsiCi0gICAgIiROU19TVUIgPSAnJzsiCi0gICAgIiRQT19TVUIgPSAnJzsi
Ci0gICAgIiRQUl9TVUIgPSAnJzsiCi0gICAgIiRJRF9BREQgPSAnJzsiCi0gICAgIiROU19BREQg
PSBbJENKXTsiOwotCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSksg
ICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLCi0jZGVmaW5lIHVheDE0QXNzaWdu
bWVudHNDdXN0b21EZWZhdWx0Q0pLICAgICAgICB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFs
Q0pLCi0jZGVmaW5lIHVheDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Tm9uQ0pLICAgICB1YXgx
NEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9uQ0pLCi0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgx
NEFzc2lnbm1lbnRzQWZ0ZXIgPQotICAgICIkQUkgPSBbOkxpbmVCcmVhayA9IEFtYmlndW91czpd
OyIKLSAgICAiJEFMID0gWzpMaW5lQnJlYWsgPSBBbHBoYWJldGljOl07IgotICAgICIkQkEgPSBb
WzpMaW5lQnJlYWsgPSBCcmVha19BZnRlcjpdIC0gJEJBX1NVQl07IgotICAgICIkQkIgPSBbOkxp
bmVCcmVhayA9IEJyZWFrX0JlZm9yZTpdOyIKLSAgICAiJEJLID0gWzpMaW5lQnJlYWsgPSBNYW5k
YXRvcnlfQnJlYWs6XTsiCi0gICAgIiRCMiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQm90aDpdOyIK
LSAgICAiJENCID0gWzpMaW5lQnJlYWsgPSBDb250aW5nZW50X0JyZWFrOl07IgotICAgICIkQ0wg
PSBbOkxpbmVCcmVhayA9IENsb3NlX1B1bmN0dWF0aW9uOl07IgotICAgICIkQ00gPSBbOkxpbmVC
cmVhayA9IENvbWJpbmluZ19NYXJrOl07IgotICAgICIkQ1AgPSBbOkxpbmVCcmVhayA9IENsb3Nl
X1BhcmVudGhlc2lzOl07IgotICAgICIkQ1IgPSBbOkxpbmVCcmVhayA9IENhcnJpYWdlX1JldHVy
bjpdOyIKLSAgICAiJEVYID0gW1s6TGluZUJyZWFrID0gRXhjbGFtYXRpb246XSAtICRFWF9TVUJd
OyIKLSAgICAiJEdMID0gWzpMaW5lQnJlYWsgPSBHbHVlOl07IgotI2lmIChVX0lDVV9WRVJTSU9O
X01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9OVU0gPj0gOSkKLSAgICAi
JEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdfTGV0dGVyOl07IgotI2Vsc2UKLSAgICAiJEhMID0g
W1s6SGVicmV3Ol0gJiBbOkxldHRlcjpdXTsiCi0jZW5kaWYKLSAgICAiJEhZID0gWzpMaW5lQnJl
YWsgPSBIeXBoZW46XTsiCi0gICAgIiRIMiA9IFs6TGluZUJyZWFrID0gSDI6XTsiCi0gICAgIiRI
MyA9IFs6TGluZUJyZWFrID0gSDM6XTsiCi0gICAgIiRJRCA9IFtbW1s6TGluZUJyZWFrID0gSWRl
b2dyYXBoaWM6XSAtICRDSl0gJElEX0FERF0gLSAkSURfU1VCXTsiCi0gICAgIiRJTiA9IFtbOkxp
bmVCcmVhayA9IEluc2VwYXJhYmxlOl0gLSAkSU5fU1VCXTsiCi0gICAgIiRJUyA9IFtbOkxpbmVC
cmVhayA9IEluZml4X051bWVyaWM6XSAtICRJU19TVUJdOyIKLSAgICAiJEpMID0gWzpMaW5lQnJl
YWsgPSBKTDpdOyIKLSAgICAiJEpWID0gWzpMaW5lQnJlYWsgPSBKVjpdOyIKLSAgICAiJEpUID0g
WzpMaW5lQnJlYWsgPSBKVDpdOyIKLSAgICAiJExGID0gWzpMaW5lQnJlYWsgPSBMaW5lX0ZlZWQ6
XTsiCi0gICAgIiROTCA9IFs6TGluZUJyZWFrID0gTmV4dF9MaW5lOl07IgotICAgICIkTlMgPSBb
W1tbOkxpbmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRDSl0gJE5TX0FERF0gLSAkTlNfU1VCXTsi
Ci0gICAgIiROVSA9IFs6TGluZUJyZWFrID0gTnVtZXJpYzpdOyIKLSAgICAiJE9QID0gWzpMaW5l
QnJlYWsgPSBPcGVuX1B1bmN0dWF0aW9uOl07IgotICAgICIkUE8gPSBbWzpMaW5lQnJlYWsgPSBQ
b3N0Zml4X051bWVyaWM6XSAtICRQT19TVUJdOyIKLSAgICAiJFBSID0gW1s6TGluZUJyZWFrID0g
UHJlZml4X051bWVyaWM6XSAtICRQUl9TVUJdOyIKLSAgICAiJFFVID0gWzpMaW5lQnJlYWsgPSBR
dW90YXRpb246XTsiCi0gICAgIiRSSSA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IgotICAg
ICIkU0EgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhfQ29udGV4dDpdOyIKLSAgICAiJFNHID0gWzpM
aW5lQnJlYWsgPSBTdXJyb2dhdGU6XTsiCi0gICAgIiRTUCA9IFs6TGluZUJyZWFrID0gU3BhY2U6
XTsiCi0gICAgIiRTWSA9IFs6TGluZUJyZWFrID0gQnJlYWtfU3ltYm9sczpdOyIKLSAgICAiJFdK
ID0gWzpMaW5lQnJlYWsgPSBXb3JkX0pvaW5lcjpdOyIKLSAgICAiJFhYID0gWzpMaW5lQnJlYWsg
PSBVbmtub3duOl07IgotICAgICIkWlcgPSBbOkxpbmVCcmVhayA9IFpXU3BhY2U6XTsiCi0gICAg
IiRaV0ogPSBcXHUyMDBEOyIKLSAgICAiJEVtb2ppVmFyID0gXFx1RkUwRjsiCi0jaWYgQURESVRJ
T05BTF9FTU9KSV9TVVBQT1JUCi0gICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1MjY0MCBcXHUyNjQy
IFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUw
MDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBcXFUwMDAxRjQ2Ni1c
XFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3MSBcXFUwMDAxRjQ3
MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAxRjQ4Ni1cXFUwMDAx
RjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUwMDAxRjY0NS1cXFUw
MDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBcXFUwMDAxRjZBMyBc
XFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXHUyNjk1LVxcdTI2OTYgXFx1MjcwOCBcXFUwMDAxRjMz
RSBcXFUwMDAxRjM3MyBcXFUwMDAxRjM5MyBcXFUwMDAxRjNBNCBcXFUwMDAxRjNBOCBcXFUwMDAx
RjNFQiBcXFUwMDAxRjNFRCBcXFUwMDAxRjRCQi1cXFUwMDAxRjRCQyBcXFUwMDAxRjUyNyBcXFUw
MDAxRjUyQyBcXFUwMDAxRjY4MCBcXFUwMDAxRjY5MiBcXFUwMDAxRjkyNiBcXFUwMDAxRjkzNy1c
XFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV07IiAvLyBFbW9qaSB0aGF0IHBhcnRp
Y2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxc
dTI2RjkgXFx1MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0
IFxcVTAwMDFGM0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFG
NDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAw
MDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxc
VTAwMDFGNTc1IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1
LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFG
NkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4IFxcVTAwMDFGM0MyIFxcVTAw
MDFGM0M3IFxcVTAwMDFGM0NDIFxcVTAwMDFGNTc0IFxcVTAwMDFGNTdBIFxcVTAwMDFGNkNDIFxc
VTAwMDFGOTE5LVxcVTAwMDFGOTFFIFxcVTAwMDFGOTI2IFxcVTAwMDFGOTMwIFxcVTAwMDFGOTMz
LVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXSA7IiAvLyBFbW9qaSB0aGF0IHRh
a2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZWxzZQotICAgICIkRW1vamlGb3JTZXFzID0gW1xc
dTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIKLSAgICAiJEVtb2pp
Rm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4NSBcXFUwMDAxRjND
My1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAxRjQ0Mi1cXFUwMDAx
RjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUw
MDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBc
XFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5NiBcXFUwMDAxRjY0
NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAxRjZBMyBcXFUwMDAx
RjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1vamkgdGhhdCB0YWtlIEZpdHpw
YXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkIt
XFxVMDAwMUYzRkZdOyIKLSAgICAiJGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBsZXhf
Q29udGV4dDpdOyIKLSAgICAiJEFMUGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsiCi0gICAg
IiRBTGNtID0gJEFMUGx1cyAkQ00qOyIKLSAgICAiJEJBY20gPSAkQkEgJENNKjsiCi0gICAgIiRC
QmNtID0gJEJCICRDTSo7IgotICAgICIkQjJjbSA9ICRCMiAkQ00qOyIKLSAgICAiJENMY20gPSAk
Q0wgJENNKjsiCi0gICAgIiRDUGNtID0gJENQICRDTSo7IgotICAgICIkRVhjbSA9ICRFWCAkQ00q
OyIKLSAgICAiJEdMY20gPSAkR0wgJENNKjsiCi0gICAgIiRITGNtID0gJEhMICRDTSo7IgotICAg
ICIkSFljbSA9ICRIWSAkQ00qOyIKLSAgICAiJEgyY20gPSAkSDIgJENNKjsiCi0gICAgIiRIM2Nt
ID0gJEgzICRDTSo7IgotICAgICIkSURjbSA9ICRJRCAkQ00qOyIKLSAgICAiJElOY20gPSAkSU4g
JENNKjsiCi0gICAgIiRJU2NtID0gJElTICRDTSo7IgotICAgICIkSkxjbSA9ICRKTCAkQ00qOyIK
LSAgICAiJEpWY20gPSAkSlYgJENNKjsiCi0gICAgIiRKVGNtID0gJEpUICRDTSo7IgotICAgICIk
TlNjbSA9ICROUyAkQ00qOyIKLSAgICAiJE5VY20gPSAkTlUgJENNKjsiCi0gICAgIiRPUGNtID0g
JE9QICRDTSo7IgotICAgICIkUE9jbSA9ICRQTyAkQ00qOyIKLSAgICAiJFBSY20gPSAkUFIgJENN
KjsiCi0gICAgIiRRVWNtID0gJFFVICRDTSo7IgotICAgICIkUkljbSA9ICRSSSAkQ00qOyIKLSAg
ICAiJFNZY20gPSAkU1kgJENNKjsiCi0gICAgIiRXSmNtID0gJFdKICRDTSo7IjsKLQotc3RhdGlj
IGNvbnN0IGNoYXIqIHVheDE0Rm9yd2FyZCA9Ci0gICAgIiEhZm9yd2FyZDsiCi0gICAgIiRDQU5f
Q00gPSBbXiRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07IgotICAgICIkQ0FOVF9DTSA9IFsk
U1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOyIKLSAgICAiJEFMX0ZPTExPV19OT0NNID0gWyRC
SyAkQ1IgJExGICROTCAkWlcgJFNQXTsiCi0gICAgIiRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAk
RVggJEhMICRJUyAkU1kgJFdKICRHTCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1
c107IgotICAgICIkQUxfRk9MTE9XID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsi
Ci0gICAgIiRMQjRCcmVha3MgPSBbJEJLICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjROb25CcmVh
a3MgPSBbXiRCSyAkQ1IgJExGICROTF07IgotICAgICIkTEI4QnJlYWtzID0gWyRMQjRCcmVha3Mg
JFpXXTsiCi0gICAgIiRMQjhOb25CcmVha3MgPSBbWyRMQjROb25CcmVha3NdIC0gWyRaV11dOyIK
LSAgICAiJExCMThOb25CcmVha3MgPSBbJExCOE5vbkJyZWFrcyAtIFskU1BdXTsiCi0gICAgIiRM
QjE4QnJlYWtzID0gWyRMQjhCcmVha3MgJFNQXTsiCi0gICAgIiRMQjIwTm9uQnJlYWtzID0gWyRM
QjE4Tm9uQnJlYWtzIC0gJENCXTsiCi0gICAgIiRBTFBsdXMgJENNKzsiCi0gICAgIiRCQSAkQ00r
OyIKLSAgICAiJEJCICRDTSs7IgotICAgICIkQjIgJENNKzsiCi0gICAgIiRDTCAkQ00rOyIKLSAg
ICAiJENQICRDTSs7IgotICAgICIkRVggJENNKzsiCi0gICAgIiRHTCAkQ00rOyIKLSAgICAiJEhM
ICRDTSs7IgotICAgICIkSFkgJENNKzsiCi0gICAgIiRIMiAkQ00rOyIKLSAgICAiJEgzICRDTSs7
IgotICAgICIkSUQgJENNKzsiCi0gICAgIiRJTiAkQ00rOyIKLSAgICAiJElTICRDTSs7IgotICAg
ICIkSkwgJENNKzsiCi0gICAgIiRKViAkQ00rOyIKLSAgICAiJEpUICRDTSs7IgotICAgICIkTlMg
JENNKzsiCi0gICAgIiROVSAkQ00rOyIKLSAgICAiJE9QICRDTSs7IgotICAgICIkUE8gJENNKzsi
Ci0gICAgIiRQUiAkQ00rOyIKLSAgICAiJFFVICRDTSs7IgotICAgICIkUkkgJENNKzsiCi0gICAg
IiRTWSAkQ00rOyIKLSAgICAiJFdKICRDTSs7IgotICAgICIkQ1IgJExGIHsxMDB9OyIKLSAgICAi
JExCNE5vbkJyZWFrcz8gJExCNEJyZWFrcyB7MTAwfTsiCi0gICAgIiRDQU5fQ00gJENNKiAkTEI0
QnJlYWtzIHsxMDB9OyIKLSAgICAiJENNKyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJExCNE5v
bkJyZWFrcyBbJFNQICRaV107IgotICAgICIkQ0FOX0NNICRDTSogWyRTUCAkWlddOyIKLSAgICAi
JENNKyBbJFNQICRaV107IgotICAgICIkRW1vamlGb3JTZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9k
cz8gJFpXSiAkRW1vamlGb3JTZXFzOyIKLSAgICAiJENBTl9DTSAkQ00rOyIKLSAgICAiJENNKzsi
Ci0gICAgIiRDQU5fQ00gJENNKiAkV0pjbTsiCi0gICAgIiRMQjhOb25CcmVha3MgJFdKY207Igot
ICAgICIkQ00rICRXSmNtOyIKLSAgICAiJFdKY20gJENBTlRfQ007IgotICAgICIkV0pjbSAkQ0FO
X0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FOX0NNICRDTSo7IgotICAgICIkR0xjbSAkQ0FOVF9D
TTsiCi0gICAgIltbJExCOE5vbkJyZWFrc10gLSBbJFNQICRCQSAkSFldXSAkQ00qICRHTGNtOyIK
LSAgICAiJENNKyBHTGNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAkQ0w7IgotICAgICIkQ0FOX0NN
ICRDTSogJENMOyIKLSAgICAiJENNKyAkQ0w7IgotICAgICIkTEI4Tm9uQnJlYWtzICRDUDsiCi0g
ICAgIiRDQU5fQ00gJENNKiAkQ1A7IgotICAgICIkQ00rICRDUDsiCi0gICAgIiRMQjhOb25CcmVh
a3MgJEVYOyIKLSAgICAiJENBTl9DTSAkQ00qICRFWDsiCi0gICAgIiRDTSsgJEVYOyIKLSAgICAi
JExCOE5vbkJyZWFrcyAkSVM7IgotICAgICIkQ0FOX0NNICRDTSogJElTOyIKLSAgICAiJENNKyAk
SVM7IgotICAgICIkTEI4Tm9uQnJlYWtzICRTWTsiCi0gICAgIiRDQU5fQ00gJENNKiAkU1k7Igot
ICAgICIkQ00rICRTWTsiCi0gICAgIiRPUGNtICRTUCogJENBTl9DTSAkQ00qOyIKLSAgICAiJE9Q
Y20gJFNQKiAkQ0FOVF9DTTsiCi0gICAgIiRPUGNtICRTUCsgJENNKyAkQUxfRk9MTE9XPzsiCi0g
ICAgIiRRVWNtICRTUCogJE9QY207IgotICAgICIoJENMY20gfCAkQ1BjbSkgJFNQKiAkTlNjbTsi
Ci0gICAgIiRCMmNtICRTUCogJEIyY207IgotICAgICIkTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNt
OyIKLSAgICAiJENNKyAkUVVjbTsiCi0gICAgIiRRVWNtIC4/OyIKLSAgICAiJFFVY20gJExCMThO
b25CcmVha3MgJENNKjsiCi0gICAgIiRMQjIwTm9uQnJlYWtzICRDTSogKCRCQWNtIHwgJEhZY20g
fCAkTlNjbSk7ICIKLSAgICAiJEJCY20gW14kQ0JdOyIKLSAgICAiJEJCY20gJExCMjBOb25CcmVh
a3MgJENNKjsiCi0gICAgIiRITGNtICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/OyIKLSAgICAiJFNZ
Y20gJEhMY207IgotICAgICIoJEFMY20gfCAkSExjbSkgJElOY207IgotICAgICIkQ00rICRJTmNt
OyIKLSAgICAiJEVYY20gJElOY207IgotICAgICIkSURjbSAkSU5jbTsiCi0gICAgIiRJTmNtICRJ
TmNtOyIKLSAgICAiJE5VY20gJElOY207IgotICAgICIkSURjbSAkUE9jbTsiCi0gICAgIiRBTGNt
ICROVWNtOyIKLSAgICAiJEhMY20gJE5VY207IgotICAgICIkQ00rICROVWNtOyIKLSAgICAiJE5V
Y20gJEFMY207IgotICAgICIkTlVjbSAkSExjbTsiCi0gICAgIiRQUmNtICRJRGNtOyIKLSAgICAi
JFBSY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiJFBPY20gKCRBTGNtIHwgJEhMY20pOyIKLSAg
ICAiKCRQUmNtIHwgJFBPY20pPyAoJE9QY20gfCAkSFljbSk/ICROVWNtICgkTlVjbSB8ICRTWWNt
IHwgJElTY20pKiAoJENMY20gfCAkQ1BjbSk/ICgkUFJjbSB8ICRQT2NtKT87IgotICAgICIkSkxj
bSAoJEpMY20gfCAkSlZjbSB8ICRIMmNtIHwgJEgzY20pOyIKLSAgICAiKCRKVmNtIHwgJEgyY20p
ICgkSlZjbSB8ICRKVGNtKTsiCi0gICAgIigkSlRjbSB8ICRIM2NtKSAkSlRjbTsiCi0gICAgIigk
SkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsiCi0gICAgIigkSkxj
bSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkUE9jbTsiCi0gICAgIiRQUmNtICgk
SkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKTsiCi0gICAgIigkQUxjbSB8ICRI
TGNtKSAoJEFMY20gfCAkSExjbSk7IgotICAgICIkQ00rICgkQUxjbSB8ICRITGNtKTsiCi0gICAg
IiRJU2NtICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIigkQUxjbSB8ICRITGNtIHwgJE5VY20pICRP
UGNtOyIKLSAgICAiJENNKyAkT1BjbTsiCi0gICAgIiRDUGNtICgkQUxjbSB8ICRITGNtIHwgJE5V
Y20pOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJFJJY20gJFJJY207Igot
I2VuZGlmCi0gICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyI7Ci0KLXN0
YXRpYyBjb25zdCBjaGFyKiB1YXgxNFJldmVyc2UgPQotICAgICIhIXJldmVyc2U7IgotICAgICIk
Q00rICRBTFBsdXM7IgotICAgICIkQ00rICRCQTsiCi0gICAgIiRDTSsgJEJCOyIKLSAgICAiJENN
KyAkQjI7IgotICAgICIkQ00rICRDTDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJENNKyAkRVg7
IgotICAgICIkQ00rICRHTDsiCi0gICAgIiRDTSsgJEhMOyIKLSAgICAiJENNKyAkSFk7IgotICAg
ICIkQ00rICRIMjsiCi0gICAgIiRDTSsgJEgzOyIKLSAgICAiJENNKyAkSUQ7IgotICAgICIkQ00r
ICRJTjsiCi0gICAgIiRDTSsgJElTOyIKLSAgICAiJENNKyAkSkw7IgotICAgICIkQ00rICRKVjsi
Ci0gICAgIiRDTSsgJEpUOyIKLSAgICAiJENNKyAkTlM7IgotICAgICIkQ00rICROVTsiCi0gICAg
IiRDTSsgJE9QOyIKLSAgICAiJENNKyAkUE87IgotICAgICIkQ00rICRQUjsiCi0gICAgIiRDTSsg
JFFVOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJENNKyAkUkk7IgotI2Vu
ZGlmCi0gICAgIiRDTSsgJFNZOyIKLSAgICAiJENNKyAkV0o7IgotICAgICIkQ00rOyIKLSAgICAi
JEFMX0ZPTExPVyAkQ00rIC8gKFskQksgJENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENN
KyAkU1AgfCAkU1ArICRDTSogKFteJE9QICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsiCi0gICAg
IlskUFJdIC8gJENNKyBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1Age2VvZn1dOyIKLSAgICAiJExC
NEJyZWFrcyBbJExCNE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJExCNEJyZWFrcyAkQ00rICRDQU5f
Q007IgotICAgICIkTEYgJENSOyIKLSAgICAiWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRDTV07
IgotICAgICJbJFNQICRaV10gJENNKyAkQ0FOX0NNOyIKLSAgICAiJEVtb2ppRm9yU2VxcyAkWldK
ICRFbW9qaU1vZHM/ICRFbW9qaVZhcj8gJEVtb2ppRm9yU2VxczsiCi0gICAgIiRDTSsgJENBTl9D
TTsiCi0gICAgIiRDTSogJFdKICRDTSogJENBTl9DTTsiCi0gICAgIiRDTSogJFdKIFskTEI4Tm9u
QnJlYWtzLSRDTV07IgotICAgICIkQ0FOVF9DTSAkQ00qICRXSjsiCi0gICAgIiRDTSogJENBTl9D
TSAkQ00qICRXSjsiCi0gICAgIiRDTSogJEdMICRDTSogWyRMQjhOb25CcmVha3MtWyRDTSAkU1Ag
JEJBICRIWV1dOyIKLSAgICAiJENBTlRfQ00gJENNKiAkR0w7IgotICAgICIkQ00qICRDQU5fQ00g
JENNKiAkR0w7IgotICAgICIkQ0wgJENNKyAkQ0FOX0NNOyIKLSAgICAiJENQICRDTSsgJENBTl9D
TTsiCi0gICAgIiRFWCAkQ00rICRDQU5fQ007IgotICAgICIkSVMgJENNKyAkQ0FOX0NNOyIKLSAg
ICAiJFNZICRDTSsgJENBTl9DTTsiCi0gICAgIiRDTCBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAg
ICAiJENQIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkRVggWyRMQjhOb25CcmVha3MtJENN
XTsiCi0gICAgIiRJUyBbJExCOE5vbkJyZWFrcy0kQ01dOyIKLSAgICAiJFNZIFskTEI4Tm9uQnJl
YWtzLSRDTV07IgotICAgICJbJENMICRDUCAkRVggJElTICRTWV0gJENNKyAkU1ArICRDTSogJE9Q
OyAiCi0gICAgIiRDTSogJENBTl9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAiJENBTlRfQ00gJFNQ
KiAkQ00qICRPUDsiCi0gICAgIiRBTF9GT0xMT1c/ICRDTSsgJFNQICRTUCogJENNKiAkT1A7Igot
ICAgICIkQUxfRk9MTE9XX05PQ00gJENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJENNKiAkQUxf
Rk9MTE9XX0NNICRDTSsgJFNQKyAkQ00qICRPUDsiCi0gICAgIiRTWSAkQ00gJFNQKyAkT1A7Igot
ICAgICIkQ00qICRPUCAkU1AqICRDTSogJFFVOyIKLSAgICAiJENNKiAkTlMgJFNQKiAkQ00qICgk
Q0wgfCAkQ1ApOyIKLSAgICAiJENNKiAkQjIgJFNQKiAkQ00qICRCMjsiCi0gICAgIiRDTSogJFFV
ICRDTSogJENBTl9DTTsiCi0gICAgIiRDTSogJFFVICRMQjE4Tm9uQnJlYWtzOyIKLSAgICAiJENN
KiAkQ0FOX0NNICRDTSogJFFVOyIKLSAgICAiJENBTlRfQ00gJENNKiAkUVU7IgotICAgICIkQ00q
ICgkQkEgfCAkSFkgfCAkTlMpICRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV07IgotICAgICIkQ00q
IFskTEIyME5vbkJyZWFrcy0kQ01dICRDTSogJEJCOyIKLSAgICAiW14kQ0JdICRDTSogJEJCOyIK
LSAgICAiW14kQ0JdICRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIkQ00qICRITCAk
Q00qICRTWTsiCi0gICAgIiRDTSogJElOICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENN
KiAkSU4gJENNKiAkRVg7IgotICAgICIkQ00qICRJTiAkQ00qICRJRDsiCi0gICAgIiRDTSogJElO
ICRDTSogJElOOyIKLSAgICAiJENNKiAkSU4gJENNKiAkTlU7IgotICAgICIkQ00qICRQTyAkQ00q
ICRJRDsiCi0gICAgIiRDTSogJE5VICRDTSogKCRBTFBsdXMgfCAkSEwpOyIKLSAgICAiJENNKiAo
JEFMUGx1cyB8ICRITCkgJENNKiAkTlU7IgotICAgICIkQ00qICRJRCAkQ00qICRQUjsiCi0gICAg
IiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRI
TCkgJENNKiAkUE87IgotICAgICIoJENNKiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAkQ1Ap
KT8gKCRDTSogKCROVSB8ICRJUyB8ICRTWSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZKSk/
ICgkQ00qICgkUFIgfCAkUE8pKT87IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwp
ICRDTSogJEpMOyIKLSAgICAiJENNKiAoJEpUIHwgJEpWKSAkQ00qICgkSDIgfCAkSlYpOyIKLSAg
ICAiJENNKiAkSlQgJENNKiAoJEgzIHwgJEpUKTsiCi0gICAgIiRDTSogJElOICRDTSogKCRIMyB8
ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7IgotICAgICIkQ00qICRQTyAkQ00qICgkSDMgfCAkSDIg
fCAkSlQgfCAkSlYgfCAkSkwpOyIKLSAgICAiJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwg
JEpMKSAkQ00qICRQUjsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMg
fCAkSEwpOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkSVM7IgotICAgICIkQ00q
ICRPUCAkQ00qICgkQUxQbHVzIHwgJEhMIHwgJE5VKTsiCi0gICAgIiRDTSogKCRBTFBsdXMgfCAk
SEwgfCAkTlUpICRDTSogJENQOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAi
JENNKiAkUkkgJENNKiAkUkk7IgotI2VuZGlmCi0gICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAk
RW1vamlGb3JNb2RzOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVGb3J3YXJkID0K
LSAgICAiISFzYWZlX2ZvcndhcmQ7IgotICAgICJbJENNICRPUCAkUVUgJENMICRDUCAkQjIgJFBS
ICRIWSAkQkEgJFNQICRkaWN0aW9uYXJ5XSsgW14kQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIg
JEhZICRCQSAkZGljdGlvbmFyeV07IgotICAgICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsiOwot
Ci1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRTYWZlUmV2ZXJzZSA9Ci0gICAgIiEhc2FmZV9yZXZl
cnNlOyIKLSAgICAiJENNKyBbXiRDTSAkQksgJENSICRMRiAkTkwgJFpXICRTUF07IgotICAgICIk
Q00rICRTUCAvIC47IgotICAgICIkU1ArICRDTSogJE9QOyIKLSAgICAiJFNQKyAkQ00qICRRVTsi
Ci0gICAgIiRTUCsgJENNKiAoJENMIHwgJENQKTsiCi0gICAgIiRTUCsgJENNKiAkQjI7IgotICAg
ICIkQ00qICgkSFkgfCAkQkEpICRDTSogJEhMOyIKLSAgICAiKCRDTSogKCRJUyB8ICRTWSkpKyAk
Q00qICROVTsiCi0gICAgIigkQ0wgfCAkQ1ApICRDTSogKCROVSB8ICRJUyB8ICRTWSk7IgotICAg
ICIkZGljdGlvbmFyeSAkZGljdGlvbmFyeTsiOwotCiBzdGF0aWMgU3RyaW5nIG1hcExpbmVJdGVy
YXRvck1vZGVUb1J1bGVzKExpbmVCcmVha0l0ZXJhdG9yTW9kZSBtb2RlLCBib29sIGlzQ0pLKQog
ewotICAgIFN0cmluZ0J1aWxkZXIgcnVsZXNCdWlsZGVyOwotICAgIHJ1bGVzQnVpbGRlci5hcHBl
bmQodWF4MTRQcm9sb2d1ZSk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1l
bnRzQmVmb3JlKTsKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAgICBjYXNlIExpbmVCcmVha0l0ZXJh
dG9yTW9kZTo6RGVmYXVsdDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVh
eDE0QXNzaWdubWVudHNDdXN0b21EZWZhdWx0Q0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbURl
ZmF1bHROb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
S1J1bGVzOwogICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpMb29zZToKLSAgICAgICAg
cnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZUNK
SyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21Mb29zZU5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOwor
ICAgICAgICByZXR1cm4gaXNDSksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSktSdWxl
cyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKS1J1bGVzOwogICAgIGNhc2UgTGlu
ZUJyZWFrSXRlcmF0b3JNb2RlOjpOb3JtYWw6Ci0gICAgICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQo
aXNDSksgPyB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsQ0pLIDogdWF4MTRBc3NpZ25tZW50
c0N1c3RvbU5vcm1hbE5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXND
SksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1v
ZGU6OlN0cmljdDoKLSAgICAgICAgcnVsZXNCdWlsZGVyLmFwcGVuZChpc0NKSyA/IHVheDE0QXNz
aWdubWVudHNDdXN0b21TdHJpY3RDSksgOiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Tm9u
Q0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3RDSktSdWxlcyA6IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RO
b25DSktSdWxlczsKICAgICB9Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEFzc2lnbm1l
bnRzQWZ0ZXIpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRGb3J3YXJkKTsKLSAgICBy
dWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0UmV2ZXJzZSk7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVu
ZCh1YXgxNFNhZmVGb3J3YXJkKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0U2FmZVJl
dmVyc2UpOwotICAgIHJldHVybiBydWxlc0J1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gIiI7CiB9CiAKIC8vIFJlY29nbml6ZSBCQ1A0NyBj
b21wbGlhbnQgcHJpbWFyeSBsYW5ndWFnZSB2YWx1ZXMgb2YgJ3poJywgJ2phJywgJ2tvJwpAQCAt
Nzg4LDkgKzI1MywyOSBAQCBVQnJlYWtJdGVyYXRvciogb3BlbkxpbmVCcmVha0l0ZXJhdG9yKGNv
bnN0IEF0b21pY1N0cmluZyYgbG9jYWxlLCBMaW5lQnJlYWtJdGVyYQogICAgIGlmIChtb2RlID09
IExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6RGVmYXVsdCkKICAgICAgICAgdWJya0l0ZXIgPSB1YnJr
X29wZW4oVUJSS19MSU5FLCBsb2NhbGVJc0VtcHR5ID8gY3VycmVudFRleHRCcmVha0xvY2FsZUlE
KCkgOiBsb2NhbGUuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgMCwgMCwgJm9wZW5TdGF0dXMpOwog
ICAgIGVsc2UgewotICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKLSAgICAgICAgYXV0
byBydWxlcyA9IG1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKG1vZGUsIGlzQ0pLKTsKLSAgICAg
ICAgdWJya0l0ZXIgPSB1YnJrX29wZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRl
ZENoYXJhY3RlcnMoKSwgcnVsZXMubGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5T
dGF0dXMpOworICAgICAgICBCcmVha2luZ1J1bGVTZXQgcnVsZVNldCA9IEJyZWFraW5nUnVsZVNl
dDo6VUFYMTROb25DSks7CisgICAgICAgIHN3aXRjaCAobW9kZSkgeworICAgICAgICBjYXNlIExp
bmVCcmVha0l0ZXJhdG9yTW9kZTo6RGVmYXVsdDoKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NK
SyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9u
Q0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JN
b2RlOjpMb29zZToKKyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNl
dDo6VUFYMTRMb29zZUNKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTRMb29zZU5vbkNKSzsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6Tm9y
bWFsOgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgx
NE5vcm1hbENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb3JtYWxOb25DSks7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6OlN0cmljdDoK
KyAgICAgICAgICAgIHJ1bGVTZXQgPSBpc0NKSyA/IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJp
Y3RDSksgOiBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0U3RyaWN0Tm9uQ0pLOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBjcmVhdGVJ
dGVyYXRvckZvclJ1bGVTZXQocnVsZVNldCkpCisgICAgICAgICAgICB1YnJrSXRlciA9IHJlaW50
ZXJwcmV0X2Nhc3Q8VUJyZWFrSXRlcmF0b3IqPihpdGVyYXRvcik7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgVVBhcnNlRXJyb3IgcGFyc2VTdGF0dXM7CisgICAgICAgICAgICBhdXRvIHJ1
bGVzID0gbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMobW9kZSwgaXNDSkspOworICAgICAgICAg
ICAgdWJya0l0ZXIgPSB1YnJrX29wZW5SdWxlcyhTdHJpbmdWaWV3KHJ1bGVzKS51cGNvbnZlcnRl
ZENoYXJhY3RlcnMoKSwgcnVsZXMubGVuZ3RoKCksIDAsIDAsICZwYXJzZVN0YXR1cywgJm9wZW5T
dGF0dXMpOworICAgICAgICB9CiAgICAgfQogICAgIC8vIGxvY2FsZSBjb21lcyBmcm9tIGEgd2Vi
IHBhZ2UgYW5kIGl0IGNhbiBiZSBpbnZhbGlkLCBsZWFkaW5nIElDVQogICAgIC8vIHRvIGZhaWws
IGluIHdoaWNoIGNhc2Ugd2UgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IGxvY2FsZS4KQEAgLTgx
MSw2ICsyOTYsNyBAQCB2b2lkIGNsb3NlTGluZUJyZWFrSXRlcmF0b3IoVUJyZWFrSXRlcmF0b3Iq
JiBpdGVyYXRvcikKIHsKICAgICBVQnJlYWtJdGVyYXRvciogdWJya0l0ZXIgPSBpdGVyYXRvcjsK
ICAgICBBU1NFUlQodWJya0l0ZXIpOworICAgIC8vIEZJWE1FOiBVc2UgUkFJSSB0byBkbyB0aGlz
IGluc3RlYWQuCiAgICAgdWJya19jbG9zZSh1YnJrSXRlcik7CiAgICAgaXRlcmF0b3IgPSBudWxs
cHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRv
ci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCmluZGV4IGJjZjQ0
YzA3YTRlYzkxYjUxNDY3YzI0ZjRmZTcxNmVkMzRkYmNjMTUuLjZmOGExZWZmNzQ5OWJjYmU5YTg4
MDI3YzAzMzE3ZWI2MmM0YjI2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4
dEJyZWFrSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmgKQEAgLTI5LDYgKzI5LDMwIEBAIG5hbWVzcGFjZSBXVEYgewogCiBlbnVtIGNsYXNzIExp
bmVCcmVha0l0ZXJhdG9yTW9kZSB7IERlZmF1bHQsIExvb3NlLCBOb3JtYWwsIFN0cmljdCB9Owog
CitlbnVtIGNsYXNzIEJyZWFraW5nUnVsZVNldCB7CisgICAgQ3Vyc29yTW92ZW1lbnQsCisgICAg
VUFYMTRDSkssCisgICAgVUFYMTROb25DSkssCisgICAgVUFYMTRMb29zZUNKSywKKyAgICBVQVgx
NExvb3NlTm9uQ0pLLAorICAgIFVBWDE0Tm9ybWFsQ0pLLAorICAgIFVBWDE0Tm9ybWFsTm9uQ0pL
LAorICAgIFVBWDE0U3RyaWN0Q0pLLAorICAgIFVBWDE0U3RyaWN0Tm9uQ0pLCit9OworCitleHRl
cm4gY29uc3QgY2hhciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzOworZXh0ZXJuIGNvbnN0
IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSktSdWxlczsKK2V4dGVybiBjb25zdCBjaGFy
KiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciog
bGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hhciog
bGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLUnVsZXM7CitleHRlcm4gY29uc3QgY2hh
ciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKS1J1bGVzOworZXh0ZXJuIGNvbnN0IGNo
YXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSktSdWxlczsKK2V4dGVybiBjb25z
dCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLUnVsZXM7CitleHRlcm4gY29u
c3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKS1J1bGVzOworCitVQnJl
YWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5nUnVsZVNldCk7CisK
IC8vIFRoaXMgaXMgc2ltaWxhciB0byBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgaW4gbW9zdCBj
YXNlcywgYnV0IGlzIHN1YmplY3QgdG8KIC8vIHBsYXRmb3JtIFVJIGNvbnZlbnRpb25zLiBPbmUg
bm90YWJsZSBleGFtcGxlIHdoZXJlIHRoaXMgY2FuIGJlIGRpZmZlcmVudAogLy8gZnJvbSBjaGFy
YWN0ZXIgYnJlYWsgaXRlcmF0b3IgaXMgVGhhaSBwcmVwZW5kIGNoYXJhY3RlcnMsIHNlZSBidWcg
MjQzNDIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVy
YXRvckludGVybmFsSUNVTWFjLm1tIGIvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFr
SXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQppbmRleCBiZWY1ZGFhNjQyODg4MjFlMjBmMjYyOGM2
ODU1ZWU4ZTg4YTM4OTJjLi45NzMyOWI1Zjc2NjRlNzA4Y2Y5NjA0NWFkY2MyMGE5YzZkZTYwNTBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvcklu
dGVybmFsSUNVTWFjLm1tCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0
ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KQEAgLTIxLDEyICsyMSwxODEgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgiCiAKKyNp
bmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5oIgorI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgor
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAorI2RlZmluZSBVU0VfUFJFQ09NUElMRURf
QlJFQUtJTkdfUlVMRVMgKFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmICgoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRG
T1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKSkp
CisKKyNpZiBVU0VfUFJFQ09NUElMRURfQlJFQUtJTkdfUlVMRVMKKyNpbmNsdWRlIDx1bmljb2Rl
L3VkYXRhLmg+CisjZW5kaWYKKworQGludGVyZmFjZSBXVEZCdW5kbGVGaW5kZXIgOiBOU09iamVj
dAorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV1RGQnVuZGxlRmluZGVyCitAZW5kCisKIG5hbWVz
cGFjZSBXVEYgewogCiBzdGF0aWMgY29uc3QgaW50IG1heExvY2FsZVN0cmluZ0xlbmd0aCA9IDMy
OwogCisjaWYgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JVTEVTCitzdGF0aWMgVURhdGFNZW1v
cnkqIGJyZWFrSXRlcmF0b3JSZXNvdXJjZShOU1N0cmluZyAqZmlsZU5hbWVCYXNlKQoreworICAg
IE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6W1dURkJ1bmRsZUZp
bmRlciBjbGFzc11dOworICAgIE5TU3RyaW5nICpwYXRoID0gW2J1bmRsZSBwYXRoRm9yUmVzb3Vy
Y2U6ZmlsZU5hbWVCYXNlIG9mVHlwZTpAImJyayIgaW5EaXJlY3Rvcnk6QCJCcmVha2luZ1J1bGVz
Il07CisgICAgaWYgKCFwYXRoKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIE5TU3Ry
aW5nICpkaXJlY3RvcnkgPSBbcGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRd
OworICAgIGlmICghZGlyZWN0b3J5KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworI2lmIFBM
QVRGT1JNKElPUykKKyAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAg
ICB1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEQVRBX0ZJTEVTX0ZJUlNULCAmZXJyb3JDb2RlKTsKKyAg
ICBpZiAoVV9GQUlMVVJFKGVycm9yQ29kZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworI2Vu
ZGlmCisKKyAgICBVRXJyb3JDb2RlIHVEYXRhRXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAg
IFVEYXRhTWVtb3J5KiByZXN1bHQgPSB1ZGF0YV9vcGVuKFtkaXJlY3RvcnkgVVRGOFN0cmluZ10s
ICJicmsiLCBbZmlsZU5hbWVCYXNlIFVURjhTdHJpbmddLCAmdURhdGFFcnJvckNvZGUpOworCisj
aWYgUExBVEZPUk0oSU9TKQorICAgIHVkYXRhX3NldEZpbGVBY2Nlc3MoVURBVEFfREVGQVVMVF9B
Q0NFU1MsICZlcnJvckNvZGUpOworICAgIGlmIChVX0ZBSUxVUkUoZXJyb3JDb2RlKSkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKKworICAgIGlmIChVX0ZBSUxVUkUodURhdGFFcnJv
ckNvZGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEo
VURhdGFNZW1vcnkqIGRhdGEpCit7CisgICAgaWYgKCFkYXRhKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAgIC8v
IEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMzA0MjE5NzE+IEl0IGlzIGltcG9zc2libGUgdG8gY29t
cHV0ZSB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRoaXMgZnVuY3Rpb24uCisgICAgVUJyZWFrSXRl
cmF0b3IqIHJlc3VsdCA9IHVicmtfb3BlbkJpbmFyeVJ1bGVzKHN0YXRpY19jYXN0PGNvbnN0IHVp
bnQ4X3QgKj4odWRhdGFfZ2V0TWVtb3J5KGRhdGEpKSwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQz
Ml90Pjo6bWF4KCksIG51bGxwdHIsIDAsICZlcnJvckNvZGUpOworCisgICAgaWYgKFVfRkFJTFVS
RShlcnJvckNvZGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRlcmF0b3IoKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShi
cmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMiKSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJ
dGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJu
IGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9y
eSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRv
clVBWDE0Q0pLIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+
IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQo
KSkpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJh
dG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJlc291cmNl
KEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNl
RGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9
CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pL
KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJjZURh
dGEoYnJlYWtJdGVyYXRvclJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pL
IikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9y
KGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAg
IHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBsaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJM
aW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJj
ZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOwor
fQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxD
SksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNl
RGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJh
dG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOwor
ICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBs
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJlc291cmNl
KEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSyIpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJl
c291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0
KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdENKSygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVz
b3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4g
aXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgp
KSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0
b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksoKQoreworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVz
b3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLIikpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JG
cm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBpdGVyYXRv
ci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBjbG9uZUl0ZXJhdG9yKFVCcmVh
a0l0ZXJhdG9yKiBpdGVyYXRvcikKK3sKKyAgICBpZiAoIWl0ZXJhdG9yKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAg
ICBpZiAoYXV0byogcmVzdWx0ID0gdWJya19zYWZlQ2xvbmUoaXRlcmF0b3IsIG51bGxwdHIsIDAs
ICZlcnJvckNvZGUpKSB7CisgICAgICAgIGlmIChVX1NVQ0NFU1MoZXJyb3JDb2RlKSkKKyAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorI2Vu
ZGlmCisKK1VCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtpbmdS
dWxlU2V0IHJ1bGVTZXQpCit7CisjaWYgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JVTEVTCisg
ICAgc3dpdGNoIChydWxlU2V0KSB7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OkN1cnNvck1v
dmVtZW50OgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihjdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENKSzoKKyAgICAgICAgcmV0
dXJuIGNsb25lSXRlcmF0b3IobGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSygpKTsKKyAgICBjYXNl
IEJyZWFraW5nUnVsZVNldDo6VUFYMTROb25DSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJh
dG9yKGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1
bGVTZXQ6OlVBWDE0TG9vc2VDSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSygpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6
VUFYMTRMb29zZU5vbkNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJyZWFr
SXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpV
QVgxNE5vcm1hbENKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSygpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRO
b3JtYWxOb25DSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGxpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxOb25DSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0
U3RyaWN0Q0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJdGVyYXRv
clVBWDE0U3RyaWN0Q0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgxNFN0cmlj
dE5vbkNKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJyZWFrSXRlcmF0b3JV
QVgxNFN0cmljdE5vbkNKSygpKTsKKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShydWxl
U2V0KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorfQorCiBzdGF0aWMgaW5saW5lIFJl
dGFpblB0cjxDRlN0cmluZ1JlZj4gdGV4dEJyZWFrTG9jYWxlUHJlZmVyZW5jZSgpCiB7CiAgICAg
UmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBsb2NhbGUgPSBhZG9wdENGKENGUHJlZmVyZW5j
ZXNDb3B5VmFsdWUoQ0ZTVFIoIkFwcGxlVGV4dEJyZWFrTG9jYWxlIiksCmRpZmYgLS1naXQgYS9T
b3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UK
aW5kZXggNTEzMGZmY2JjYzdjOWNlNzUxNGFmNGQ1NTNiZDhhNGYwNTAxNDU2ZC4uOWY4MzMwYWY3
ZmUzNjNkODAxM2VlZTM0YmVkZDdmYzE1Y2I3OTFlYSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtl
L1dlYktpdEZTLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQpAQCAtMjcs
NiArMjcsNyBAQCBpZiAoTk9UIFRPT0xTX0RJUikKIGVuZGlmICgpCiAKIHNldChERVJJVkVEX1NP
VVJDRVNfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzIikKK3NldChERVJJ
VkVEX1NPVVJDRVNfV1RGX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9X
VEYiKQogc2V0KERFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVIgIiR7Q01BS0VfQklO
QVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUiKQogc2V0KERFUklWRURfU09V
UkNFU19XRUJDT1JFX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUTEVHQUNZX0RJUiAiJHtDTUFLRV9CSU5B
UllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3kiKQpAQCAtMzUsNiArMzYsOCBAQCBz
ZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9E
SVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9yVUkiKQog
CiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJ
Un0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9KQorZmls
ZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVz
KQogZmlsZShNQUtFX0RJUkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9L1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lKQogCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VT
X1dFQklOU1BFQ1RPUlVJX0RJUn0pCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cK
aW5kZXggYjY1MjE1YmM5ZGE2N2NjMDE4MzE4NjRmYTEwZDg0MTk0ODA0NTM3Mi4uNjExMDQ4ZmY5
N2VhN2YyY2U4MzY5ZTY0MmE2NTZlNmYzMjUwZTQyOSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisr
KyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTAyLTA5ICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJQ1UgYnJlYWtp
bmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzEzMTA1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZToKKwogMjAxNy0w
Mi0wNyAgT2xpdmllciBCbGluICA8b2xpdmllci5ibGluQHNvZnRhdGhvbWUuY29tPgogCiAgICAg
ICAgIFtHVEtdW0VmbF0gRG8gbm90IHJlcXVpcmUgTGliWHNsdCBpZiBYU0xUIGlzIGRpc2FibGVk
Cg==
</data>
<flag name="review"
          id="322949"
          type_id="1"
          status="-"
          setter="mmaxfield"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301230</attachid>
            <date>2017-02-10 18:08:05 -0800</date>
            <delta_ts>2017-02-13 17:34:39 -0800</delta_ts>
            <desc>Reduce filesystem access</desc>
            <filename>bug-160629-20170210180540.patch</filename>
            <type>text/plain</type>
            <size>129988</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNiM2M4NDU1NTkwMTdmZDE3ODAwZGZm
Y2U5ZDViYzgyYzIyNGMwOWYuLjU3YTNiZDM1ZmQ0NTQ4MzkyMmQ2ZGNjZTBjZWM1MzgwMzNlYjMy
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsODQgQEAKKzIwMTctMDItMTAgIE15bGVzIEMuIE1heGZpZWxkICA8
bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21waWxlIElDVSBicmVha2luZyBpdGVy
YXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4gdGltZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjI5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MTMxMDU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoZSBtYWNPUyBhbmQgaU9TIFNES3MgaW5jbHVkZSBhIHRvb2wsIGljdWdlbmJy
aywgd2hpY2ggY29tcGlsZXMgSUNVIGJyayBicmVha2luZworICAgICAgICBydWxlcyBpbnRvIGJ5
dGVjb2RlLiBQcmV2aW91c2x5LCB0aGlzIGNvbXBpbGF0aW9uIHdhcyBkb25lIGF0IHJ1bnRpbWUg
aW5zaWRlIHRoZSBJQ1UKKyAgICAgICAgdWJya19vcGVuUnVsZXMoKSBmdW5jdGlvbi4gTW92aW5n
IHRoaXMgY29tcGlsYXRpb24gc3RlcCB0byBjb21waWxlIHRpbWUgcmF0aGVyIHRoYW4KKyAgICAg
ICAgYnVpbGQgdGltZSBjYXVzZXMgYSBwZXJmb3JtYW5jZSBib29zdC4KKworICAgICAgICBQcmV2
aW91c2x5LCB0aGUgc291cmNlIGZvciB0aGUgYnJlYWtpbmcgcnVsZXMgd2FzIGFzc2VtYmxlZCBi
eSBjb25jYXRlbmF0aW5nIEMgc3RyaW5ncworICAgICAgICBhdCBydW50aW1lLiBOb3csIHRoZSBz
b3VyY2UgaXMgY29udGFpbmVkIHdpdGhpbiBhIGZldyB0ZXh0IGZpbGVzIGluc2lkZQorICAgICAg
ICB3dGYvdGV4dC9CcmVha2luZ1J1bGVzLiBBIGJ1aWxkIHN0ZXAgKHVzaW5nIGEgTWFrZWZpbGUp
IHdpbGwgZ2VuZXJhdGUgc291cmNlIGNvZGUKKyAgICAgICAgY29udGFpbmluZyB0aGVzZSBzdHJp
bmdzLCBhbmQgV1RGIHdpbGwgaW5jbHVkZSB0aGVzZSBzb3VyY2UgZmlsZXMgaW4gdGhlIHNhbWUg
d2F5IGFueQorICAgICAgICBvZiBvdXIgcHJvamVjdHMgdXNlIGdlbmVyYXRlZCBzb3VyY2VzLiBB
ZGRpdGlvbmFsbHksIG9uIE9TZXMgd2hpY2ggc3VwcG9ydCBpdCwgdGhlc2UKKyAgICAgICAgc3Ry
aW5ncyBnZXQgY29tcGlsZWQgZGlyZWN0bHkgaW50byBJQ1UgYnl0ZWNvZGUsIGFuZCB0aGVuIGlu
Y2x1ZGVkIGluIHRoZSBmcmFtZXdvcmsKKyAgICAgICAgYnVuZGxlLiBCZWNhdXNlIFdURiBnZXRz
IHN0YXRpY2FsbHkgbGlua2VkIGludG8gSmF2YVNjcmlwdENvcmUsIHRoaXMgaXMgdGhlIGJ1bmRs
ZQorICAgICAgICB3aGljaCBpbmNsdWRlcyB0aGUgYnl0ZWNvZGUgZmlsZXMuCisKKyAgICAgICAg
QXQgcnVudGltZSwgd2UgZmlyc3QgY2hlY2sgaWYgd2UgaGF2ZSBhIGZpbGUgaW4gb3VyIGJ1bmRs
ZSBvZiB0aGUgYXBwcm9wcmlhdGUgbmFtZSwKKyAgICAgICAgYW5kIHRoZW4gc2VlIGlmIElDVSBj
YW4gb3BlbiBpdCB1c2luZyBpdHMgdWJya19vcGVuQmluYXJ5UnVsZXMoKSBpbnRlcmZhY2UgKHdo
aWNoCisgICAgICAgIGluY2x1ZGVzIGEgdmVyc2lvbiBjaGVjaykuIElmIGFueSBvZiB0aGVzZSBj
aGVja3MgZmFpbCwgb3IgaWYgd2UncmUgb24gYSBwb3J0IHdoaWNoCisgICAgICAgIGRvZXNuJ3Qg
aGF2ZSB0aGUgbm90aW9uIG9mIGJ1bmRsZXMsIHdlIHdpbGwgdXNlIHRoZSBDIHN0cmluZ3MgZ2Vu
ZXJhdGVkIGFib3ZlLCBhbmQKKyAgICAgICAgcGFzcyB0aGVtIHRvIHVicmtfb3BlblJ1bGVzKCkg
dGhlIHNhbWUgd2F5IHdlIHdlcmUgZG9pbmcgYmVmb3JlIHRoaXMgcGF0Y2guCisKKyAgICAgICAg
VGhlIHVicmtfb3BlbkJpbmFyeVJ1bGVzKCkgaW50ZXJmYWNlIGluIElDVSByZXF1aXJlcyBhZGRp
bmcgc29tZSBtb3JlIG9mIElDVSdzIHB1YmxpYworICAgICAgICBoZWFkZXJzIGludG8gV2ViS2l0
LgorCisgICAgICAgICogU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHk6IEFk
ZGVkLgorICAgICAgICAobWFpbik6IE91dHB1dCBDKysgZmlsZXMgcmVwcmVzZW50aW5nIHRoZSBi
cmVha2luZyBydWxlcyBzdHJpbmdzLgorICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOiBBZGQgYSBuZXcgRGVyaXZlZCBTb3VyY2VzIHRhcmdldCB3aGljaCB1c2VzIGEKKyAg
ICAgICAgRGVyaXZlZFNvdXJjZXMubWFrZSBNYWtlZmlsZSwgdGhlIHNhbWUgd2F5IFdlYktpdDIs
IFdlYkNvcmUsIGFuZCBKYXZhU2NyaXB0Q29yZSB3cm9rLgorICAgICAgICBBbHNvLCBhZGQgdGhl
IHJ1bGVzIHRleHQgZmlsZXMgdG8gdGhlIHByb2plY3QuIFRoZW4sIG1ha2UgV1RGIGRlcGVuZCBv
biB0aGlzIG5ldworICAgICAgICB0YXJnZXQuCisgICAgICAgICogaWN1L3VuaWNvZGUvdWJyay5o
OiBBZGQgZGVjbGFyYXRpb24gZm9yIHVicmtfb3BlbkJpbmFyeVJ1bGVzKCkuCisgICAgICAgICog
d3RmL0NNYWtlTGlzdHMudHh0OiBBZGQgYnVpbGQgc3RlcHMgZm9yIG90aGVyIHBvcnRzIHRvIGdl
bmVyYXRlIHRoZSBicmVha2luZworICAgICAgICBydWxlcyBzdHJpbmdzIHNvdXJjZSBmaWxlcy4K
KyAgICAgICAgKiB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTogQWRkZWQuIFRoaXMgaXMgdGhlIHBs
YWNlIHdoZXJlIGljdWdlbmJyayBpcyBhY3R1YWxseSAKKyAgICAgICAgaW52b2tlZC4gSXQgYWxz
byB0cmlnZ2VycyB0aGUgc2NyaXB0IChHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkpIHdo
aWNoIGdlbmVyYXRlcworICAgICAgICB0aGUgQysrIGNvZGUgZm9yIHRoZSBydWxlcyBzdHJpbmdz
LgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5l
QnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dDogQWRkZWQuCisgICAgICAg
ICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dDog
QWRkZWQuCisgICAgICAgICogd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRv
clVBWDE0TG9vc2VDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1
bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy50
eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0
Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdURjo6Y3JlYXRlSXRlcmF0
b3JGb3JSdWxlU2V0KTogVXNlZCBieSBvdGhlciBwb3J0cy4gUmV0dXJuaW5nIG51bGxwdHIgbWVh
bnMgd2UgY2FuJ3QKKyAgICAgICAgdXNlIHByZWNvbXBpbGVkIHJ1bGVzLgorICAgICAgICAoV1RG
OjpjcmVhdGVDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKTogVXNlZCBpbiBwbGFj
ZSBvZiB0aGUgaGFyZGNvZGVkIHJ1bGVzCisgICAgICAgIGluIGN1cnNvck1vdmVtZW50SXRlcmF0
b3IoKS4KKyAgICAgICAgKFdURjo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6IFJlbW92ZSBoYXJk
Y29kZWQgcnVsZXMuCisgICAgICAgIChXVEY6Om1hcExpbmVJdGVyYXRvck1vZGVUb1J1bGVzKTog
VXBkYXRlIHRvIHVzZSB0aGUgbmV3IGdlbmVyYXRlZCBDKysgc3RyaW5ncy4KKyAgICAgICAgKFdU
Rjo6b3BlbkxpbmVCcmVha0l0ZXJhdG9yKTogVGhlIGxvZ2ljIG9mIHRyeWluZyB0byB1c2UgYSBw
cmVjb21waWxlZCBieXRlY29kZSwgYW5kIGZhbGxpbmcKKyAgICAgICAgYmFjayB0byBDKysgc3Ry
aW5ncyBpZiBpdCBpc24ndCBwb3NzaWJsZS4KKyAgICAgICAgKFdURjo6Y2xvc2VMaW5lQnJlYWtJ
dGVyYXRvcik6CisgICAgICAgICogd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaDogSGVhZGVy
IGZvciBnZW5lcmF0ZWQgQysrIGNvZGUuCisgICAgICAgICogd3RmL3RleHQvbWFjL1RleHRCcmVh
a0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW06CisgICAgICAgIChXVEY6OmJyZWFrSXRlcmF0b3JS
ZXNvdXJjZSk6IFRoZSBhY3R1YWwgbG9naWMgZm9yIGxvb2tpbmcgaW5zaWRlIHRoZSBidW5kbGUg
Zm9yIHRoZQorICAgICAgICBwcmVjb21waWxlZCBieXRlY29kZS4KKyAgICAgICAgKFdURjo6YnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEpOiBEaXR0bworICAgICAgICAoV1RGOjpjdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yKTogQ2FsbHMgYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZSgpLgorICAg
ICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLKTogRGl0dG8KKyAgICAgICAgKFdU
Rjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSyk6IERpdHRvCisgICAgICAgIChXVEY6Omxp
bmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSyk6IERpdHRvCisgICAgICAgIChXVEY6OmxpbmVC
cmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSyk6IERpdHRvCisgICAgICAgIChXVEY6OmxpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSkspOiBEaXR0bworICAgICAgICAoV1RGOjpsaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLKTogRGl0dG8KKyAgICAgICAgKFdURjo6bGluZUJy
ZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSyk6IERpdHRvCisgICAgICAgIChXVEY6OmxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSkspOiBEaXR0bworICAgICAgICAoV1RGOjpjbG9uZUl0
ZXJhdG9yKToKKyAgICAgICAgKFdURjo6Y3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KTogQ2FsbHMg
dGhlIGFib3ZlIHN0YXRpYyBmdW5jdGlvbnMuCisKIDIwMTctMDItMTAgIENvbW1pdCBRdWV1ZSAg
PGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyMTIxMzkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvR2VuZXJhdGVCcmVh
a2luZ1J1bGVTdHJpbmdzLnB5IGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdS
dWxlU3RyaW5ncy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDY0YzBkNWVkMGQ4OTBkZWY3OWFmNDM0ZDFlYTZi
MGUzZGJkOGQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRl
QnJlYWtpbmdSdWxlU3RyaW5ncy5weQpAQCAtMCwwICsxLDEwOSBAQAorIyEvdXNyL2Jpbi9lbnYg
cHl0aG9uCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQg
c3lzCitpbXBvcnQgcmUKK2ltcG9ydCBhcmdwYXJzZQorCitoZWFkZXIgPSAiIiIvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8i
IiIKKworCitkZWYgbWFpbihhcmd2PU5vbmUpOgorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3Vt
ZW50UGFyc2VyKGRlc2NyaXB0aW9uPSdHZW5lcmF0ZSBicmVha2luZyBydWxlIHNvdXJjZSBzdHJp
bmdzIGluIEMrKyBzb3VyY2UgZm9tcmF0LicpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1p
bmNsdWRlRGVmaW5lcycsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIpCisgICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgnc3ltYm9sTmFtZScpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnZmlsZU5hbWVzJywg
bmFyZ3M9JysnKQorCisgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKworICAgIGluY2x1
ZGVEZWZpbmVzID0gYXJncy5pbmNsdWRlRGVmaW5lcworICAgIHN5bWJvbE5hbWUgPSBhcmdzLnN5
bWJvbE5hbWVbMF0ubG93ZXIoKSArIGFyZ3Muc3ltYm9sTmFtZVsxOl0KKyAgICBmaWxlTmFtZXMg
PSBhcmdzLmZpbGVOYW1lcworCisgICAgcHJpbnQoaGVhZGVyKQorICAgIHByaW50KCIiIgorLy8g
RE8gTk9UIEVESVQgVEhJUyBGSUxFLiBJdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSB0
aGUgc2NyaXB0CisvLyAlcworCisjaW5jbHVkZSBcImNvbmZpZy5oXCIKKyNpbmNsdWRlIDx1bmlj
b2RlL3V2ZXJudW0uaD4KKyIiIiAlIChzeXMuYXJndlswXSkpCisgICAgaWYgaW5jbHVkZURlZmlu
ZXM6CisgICAgICAgIHByaW50KCIiIiNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQ
TEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMTAwKSkKKyNkZWZpbmUgSEFWRV9FWFRSQV9JQ1VfTkFNRURfU0VUUyAo
KFVfSUNVX1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05V
TSA+PSA5KSkKKyIiIikKKyAgICBwcmludCgiIiJuYW1lc3BhY2UgV1RGIHsKKworY29uc3QgY2hh
ciogJXMgPSAiIiIgJSAoc3ltYm9sTmFtZSkpCisKKyAgICBmb3IgZmlsZU5hbWUgaW4gZmlsZU5h
bWVzOgorICAgICAgICBmb3IgbCBpbiBvcGVuKGZpbGVOYW1lLCAncicpOgorICAgICAgICAgICAg
bGluZSA9IGwucnN0cmlwKCkKKyAgICAgICAgICAgIGlmIHJlLm1hdGNoKCJeXHMqJCIsIGxpbmUp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRo
KCIjICIpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZSA9PSAi
IyI6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dp
dGgoIiMiKToKKyAgICAgICAgICAgICAgICBwcmludChsaW5lKQorICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICBtYXRjaCA9IHJlLm1hdGNoKCJeKC4qKTsoICMgLiopPyQiLCBsaW5l
KQorICAgICAgICAgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQg
PSAiXCIiICsgbWF0Y2guZ3JvdXAoMSkucmVwbGFjZSgiXFwiLCAiXFxcXCIpICsgIjtcIiIKKyAg
ICAgICAgICAgICAgICAgICAgaWYgbWF0Y2guZ3JvdXAoMik6CisgICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHQgKz0gIiAvLyAiICsgbWF0Y2guZ3JvdXAoMilbMzpdCisgICAgICAgICAgICAg
ICAgICAgIHByaW50KHJlc3VsdCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgICAgICBleGl0KDEpCisKKyAgICBwcmludCgiOyIpCisgICAgcHJpbnQoIn0iKQorCitpZiBf
X25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHN5cy5leGl0KG1haW4oc3lzLmFyZ3YpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTQyZTBhNWU5OTNkZDNj
ODE5MjkyMzBkNTE2Mjc2YjlmMDE1YzAzOS4uYTRiMDdmY2RmN2YxMjg3ODA1OGIwMzBjMWQwNDdl
NzhmZWUzMWRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC03LDYgKzcsMTcgQEAKIAlvYmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJn
ZXQgc2VjdGlvbiAqLworCQkxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3Vy
Y2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1
cmF0aW9uTGlzdCA9IDFDRDE4NzgzMUQ1NTY5NUMwMENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0
aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJ
CWJ1aWxkUGhhc2VzID0gKAorCQkJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0
ZSBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsK
KwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXByb2R1Y3ROYW1lID0gIkRlcml2ZWQg
U291cmNlcyI7CisJCX07CiAJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBI
ZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OwogCQkJYnVpbGRDb25m
aWd1cmF0aW9uTGlzdCA9IDY1QUZBMjg4MTYzMEI5NzcwMDNENzIzQyAvKiBCdWlsZCBjb25maWd1
cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiQ29weSBXVEYgSGVhZGVycyIgKi87
CkBAIC04NCw3ICs5NSw2IEBACiAJCTE0NDdBRUM2MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0
aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0NDdBRUM1MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAq
LzsgfTsKIAkJMTQ0N0FFQzcxOEZDRTU4MDAwQjNEN0ZGIC8qIGxpYldURi5hIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQyNDdCNjIxNDY4OUI4NjAw
RTc4Qjc2IC8qIGxpYldURi5hICovOyB9OwogCQkxNDQ3QUVDOTE4RkNFNTk0MDBCM0Q3RkYgLyog
bWJtYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTQ0N0FFQzgxOEZDRTU5NDAwQjNEN0ZGIC8qIG1ibWFsbG9jLmNwcCAqLzsgfTsKLQkJMTQ0
N0FFQ0IxOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDQTE4RkNFNUI5MDBCM0Q3
RkYgLyogbGliaWN1Y29yZS5keWxpYiAqLzsgfTsKIAkJMTQ2OTQxOTIxNkVBQUY2RDAwMjRFMTQ2
IC8qIFJ1bkxvb3BUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTQ2OTQxOTAxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTE0Njk0MTkzMTZFQUFGNkQwMDI0
RTE0NiAvKiBSdW5Mb29wVGltZXJDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDY5NDE5MTE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVy
Q0YuY3BwICovOyB9OwogCQkxNDY5NDE5NjE2RUFBRkY4MDAyNEUxNDYgLyogU2NoZWR1bGVQYWly
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDY5NDE5
NDE2RUFBRkY4MDAyNEUxNDYgLyogU2NoZWR1bGVQYWlyLmggKi87IH07CkBAIC0xMTcsNiArMTI3
LDE1IEBACiAJCTFDMTgxQzkzMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUMxODFD
OEQxRDMwN0FCODAwRjVGQTE2IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi87IH07CiAJCTFD
MTgxQzk0MUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMTgxQzhFMUQzMDdBQjgwMEY1
RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuaCAqLzsgfTsKIAkJMUMxODFDOTYxRDMwODAwQTAw
RjVGQTE2IC8qIFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzE4MUM5NTFEMzA4MDBBMDBGNUZB
MTYgLyogVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLzsgfTsKKwkJMUNGNDI0
NzcxRTRFQTJBQzAwMkJEN0M3IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGNDI0NkUxRTRFQTJB
QzAwMkJEN0M3IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5oICovOyB9OworCQkxQ0Y0
MjQ3ODFFNEVBMkFDMDAyQkQ3QzcgLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGNDI0NkYxRTRFQTJB
QzAwMkJEN0M3IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuaCAqLzsgfTsKKwkJMUNGNDI0
NzkxRTRFQTJBQzAwMkJEN0M3IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGNDI0NzAxRTRF
QTJBQzAwMkJEN0M3IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5oICovOyB9Owor
CQkxQ0Y0MjQ3QTFFNEVBMkFDMDAyQkQ3QzcgLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Tm9uQ0pLLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0Y0MjQ3MTFFNEVBMkFDMDAyQkQ3QzcgLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9u
Q0pLLmggKi87IH07CisJCTFDRjQyNDdCMUU0RUEyQUMwMDJCRDdDNyAvKiBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9uQ0pLLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0Y0MjQ3MjFFNEVBMkFDMDAyQkQ3QzcgLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NE5vbkNKSy5oICovOyB9OworCQkxQ0Y0MjQ3QzFFNEVBMkFDMDAyQkQ3QzcgLyogTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vcm1hbENKSy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNGNDI0NzMxRTRFQTJBQzAwMkJEN0M3IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxDSksuaCAqLzsgfTsKKwkJMUNGNDI0N0QxRTRFQTJBQzAwMkJEN0M3IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRjQyNDc0MUU0RUEyQUMwMDJCRDdDNyAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLmggKi87IH07CisJCTFDRjQyNDdFMUU0
RUEyQUMwMDJCRDdDNyAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0Y0MjQ3NTFFNEVBMkFD
MDAyQkQ3QzcgLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5oICovOyB9OworCQkx
Q0Y0MjQ3RjFFNEVBMkFDMDAyQkQ3QzcgLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5v
bkNKSy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNG
NDI0NzYxRTRFQTJBQzAwMkJEN0M3IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25D
SksuaCAqLzsgfTsKIAkJMUZBNDdDOEExNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUZBNDdD
ODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovOyB9OwogCQkxRkE0N0M4
QjE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUZBNDdDODkxNTI1MDJEQTAwNTY4RDFCIC8qIFdl
YkNvcmVUaHJlYWQuaCAqLzsgfTsKIAkJMjYxNDdCMEExNUREQ0NEQzAwRERCOTA3IC8qIEludGVn
ZXJUb1N0cmluZ0NvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI2MTQ3QjA4MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdD
b252ZXJzaW9uLmggKi87IH07CkBAIC0zNDAsNiArMzU5LDE2IEBACiAJCUFERjJDRTY2MUUzOUYx
MDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFERjJDRTY0MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlG
b290cHJpbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlBREYyQ0U2NzFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFERjJDRTY1MUUzOUYx
MDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnQuY3BwICovOyB9OwogCQlCMzhGRDdCRDE2ODk1
M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJl
RGVmaW5lcy5oICovOyB9OworCQlDMkJBNTQzRTFENTg2QUY0MDAwQTMzMzIgLyogbGliaWN1Y29y
ZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAvKiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OworCQlD
MkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0Uw
MUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovOyB9
OworCQlDMkNBMzdFQTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
Sy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkNB
MzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi87
IH07CisJCUMyQ0EzN0VCMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
TG9vc2VDSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZUNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VDMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4
NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U0MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RUUxRDU1
Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTUxRDU1Qzk3
MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwICovOyB9Owor
CQlDMkNBMzdFRjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bE5vbkNKSy5jcHAgKi87IH07CisJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJl
YWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0U3MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCAqLzsgfTsKKwkJQzJDQTM3RjExRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTgxRDU1Qzk3MTAwNDg2
Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuY3BwICovOyB9OwogCQlD
NEY4QTkzNzE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyog
U3RvcHdhdGNoLmggKi87IH07CiAJCUM4QjBFMUExRTAxQTQ4NkVCOTVFMEQxMSAvKiBJbmRleFNl
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzN0Ux
RDdEQkQ4NEFDMzhGQUU0RDM0IC8qIEluZGV4U2V0LmggKi87IH07CiAJCUM5MTZCOTc1RjAyRjRG
N0U4QjRBQjEyRCAvKiBJbmRleE1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNUI0MzM4M0E1RDBCNDYzQzk0MzNEOTMzIC8qIEluZGV4TWFwLmggKi87
IH07CkBAIC0zODEsNiArNDEwLDEzIEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDVEMjQ3
QjYxMTQ2ODlCODYwMEU3OEI3NjsKIAkJCXJlbW90ZUluZm8gPSBXVEY7CiAJCX07CisJCTFDRDE4
Nzg3MUQ1NTY5ODgwMENDN0RFQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CisJCQlp
c2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250YWluZXJQb3J0YWwgPSA1RDI0N0I1
OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94eVR5cGUgPSAx
OworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSAxQ0QxODc4MTFENTU2OTVDMDBDQzdERUM7CisJ
CQlyZW1vdGVJbmZvID0gIkRlcml2ZWQgU291cmNlcyI7CisJCX07CiAJCTY1QUZBMjhEMTYzMEI5
OUUwMDNENzIzQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhD
b250YWluZXJJdGVtUHJveHk7CiAJCQljb250YWluZXJQb3J0YWwgPSA1RDI0N0I1OTE0Njg5Qjg2
MDBFNzhCNzYgLyogUHJvamVjdCBvYmplY3QgKi87CkBAIC00OTIsNiArNTI4LDI4IEBACiAJCTFD
MTgxQzhEMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMxODFDOEUxRDMwN0FCODAwRjVGQTE2IC8qIFVU
ZXh0UHJvdmlkZXJVVEYxNi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVVGV4
dFByb3ZpZGVyVVRGMTYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMxODFDOTUx
RDMwODAwQTAwRjVGQTE2IC8qIFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXh0QnJlYWtJdGVyYXRvcklu
dGVybmFsSUNVTWFjLm1tOyBwYXRoID0gbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDNkJFMEZBMUUwMzRDOUEwMDIx
NzYxNyAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IHBhdGgg
PSBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFDQjRGQjk0MUQ1NTlBMEQwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Q0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pL
LnR4dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOTUxRDU1OUE2OTAwRjlG
RTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxQ0I0RkI5NjFENTU5QTkwMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0
b3JVQVgxNExvb3NlQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVy
YXRvclVBWDE0TG9vc2VDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0
RkI5NzFENTU5QUE4MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pL
LnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VO
b25DSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0I0RkI5ODFENTU5QUQy
MDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQ7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjk5MUQ1NTlBRUYwMEY5RkUzOCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pLLnR4dDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUNCNEZCOUExRDU1OUIyMzAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3RDSksudHh0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Q0I0RkI5QjFENTU5QjNFMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5v
bkNKSy50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0
cmljdE5vbkNKSy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQjRGQjlDMUQ1
NTlCNjcwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBMaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OEExRDU1OEFEMzAwQ0M3REVDIC8qIERlcml2ZWRTb3Vy
Y2VzLm1ha2UgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnhtbDsgbmFtZSA9IERlcml2ZWRTb3VyY2VzLm1ha2U7IHBhdGggPSB3dGYvRGVyaXZl
ZFNvdXJjZXMubWFrZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdXNlc1RhYnMgPSAxOyB9Owor
CQkxQ0QxODc5MjFENTU5OEUxMDBDQzdERUMgLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0OyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQ0QxODc5MzFENTU5OTY1MDBDQzdERUMgLyogTGluZUJyZWFrSXRl
cmF0b3JQcm9sb2d1ZS50eHQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTGluZUJyZWFrSXRlcmF0
b3JQcm9sb2d1ZS50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRjQyNDZFMUU0
RUEyQUMwMDJCRDdDNyAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmg7IHBh
dGggPSBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQ0Y0MjQ2RjFFNEVBMkFDMDAyQkQ3QzcgLyogTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNENKSy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLmg7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRDSksuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNGNDI0
NzAxRTRFQTJBQzAwMkJEN0M3IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNKSy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VDSksuaDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Q0pLLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRjQyNDcxMUU0RUEyQUMwMDJC
RDdDNyAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmg7
IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0Y0MjQ3MjFFNEVBMkFDMDAyQkQ3Qzcg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmg7IHBhdGggPSBCcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMUNGNDI0NzMxRTRFQTJBQzAwMkJEN0M3IC8qIExpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxDSksuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy5oOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJl
YWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFDRjQyNDc0MUU0RUEyQUMwMDJCRDdDNyAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Tm9uQ0pLLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpbmVCcmVha0l0ZXJh
dG9yVUFYMTROb3JtYWxOb25DSksuaDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
Q0Y0MjQ3NTFFNEVBMkFDMDAyQkQ3QzcgLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENK
Sy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0U3RyaWN0Q0pLLmg7IHBhdGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSksuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNGNDI0NzYxRTRF
QTJBQzAwMkJEN0M3IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmlj
dE5vbkNKSy5oOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Tm9uQ0pLLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg4MTUyNTAy
REEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxRkE0N0M4OTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTI2MTQ3QjA4MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2VyVG9TdHJp
bmdDb252ZXJzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludGVnZXJU
b1N0cmluZ0NvbnZlcnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcyNCw2
ICs3ODIsMTUgQEAKIAkJQURGMkNFNjQxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZvb3Rwcmlu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlGb290cHJpbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURGMkNFNjUxRTM5RjEwNjAwNjg4OURCIC8q
IE1lbW9yeUZvb3RwcmludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNZW1vcnlGb290cHJpbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMzhG
RDdCQzE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRmVhdHVyZURlZmluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNB
MzdFMTFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0
Q0pLLmNwcDsgcGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0UyMUQ1NUM5NzEwMDQ4NkI5
OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcDsg
cGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuY3Bw
OyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNDFENTVDOTcxMDA0ODZC
OTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmNwcDsgcGF0
aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U1MUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuY3BwOyBwYXRoID0g
QnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJDQTM3RTYxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5jcHA7IHBh
dGggPSBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMkNBMzdFNzFENTVDOTcxMDA0ODZCOTgg
LyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcDsg
cGF0aCA9IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyQ0EzN0U4MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksu
Y3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9u
Q0pLLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzRGOEE5MzYxOUM2NUVCNDAw
QjJCMTVEIC8qIFN0b3B3YXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
dG9wd2F0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUExNTg1N0Qw
MzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNZWRpYVRpbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0
OTdBQjE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhVGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NzYyLDcgKzgyOSw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmls
ZXMgPSAoCiAJCQkJMTQ0N0FFQzYxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8sCi0JCQkJMTQ0N0FFQ0IxOEZDRTVCOTAwQjNEN0ZGIC8qIGxp
YmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQlDMkJBNTQzRTFENTg2QUY0MDAw
QTMzMzIgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovLAogCQkJCTE0NDdBRUM3
MThGQ0U1ODAwMEIzRDdGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtNzk5LDYgKzg2Niwz
MiBAQAogCQkJcGF0aCA9IGljdTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJ
CTFDNkJFMEY5MUUwMzRDMkEwMDIxNzYxNyAvKiBTY3JpcHRzICovID0geworCQkJaXNhID0gUEJY
R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxQzZCRTBGQTFFMDM0QzlBMDAyMTc2MTcgLyog
R2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ICovLAorCQkJKTsKKwkJCXBhdGggPSBTY3Jp
cHRzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMUNEMTg3OTExRDU1OThF
MTAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RFQyAvKiBDdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMudHh0ICovLAorCQkJCTFDQjRGQjlDMUQ1NTlCNjcwMEY5RkUzOCAv
KiBMaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4dCAqLywKKwkJCQkxQ0QxODc5MzFENTU5OTY1
MDBDQzdERUMgLyogTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgKi8sCisJCQkJMUNCNEZC
OTQxRDU1OUEwRDAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksudHh0ICovLAor
CQkJCTFDQjRGQjk2MUQ1NTlBOTAwMEY5RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9v
c2VDSksudHh0ICovLAorCQkJCTFDQjRGQjk3MUQ1NTlBQTgwMEY5RkUzOCAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjk1MUQ1NTlBNjkwMEY5
RkUzOCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5
ODFENTU5QUQyMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQg
Ki8sCisJCQkJMUNCNEZCOTkxRDU1OUFFRjAwRjlGRTM4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFY
MTROb3JtYWxOb25DSksudHh0ICovLAorCQkJCTFDQjRGQjlBMUQ1NTlCMjMwMEY5RkUzOCAvKiBM
aW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLnR4dCAqLywKKwkJCQkxQ0I0RkI5QjFENTU5
QjNFMDBGOUZFMzggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQgKi8s
CisJCQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTgyMSw5ICs5MTQsMTIgQEAKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAw
RTc4Qjc2IC8qIENvbmZpZ3VyYXRpb25zICovLAorCQkJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5
OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMTQwMjJGM0YxOEY1QzNFNTAwN0ZGMEVCIC8q
IExpYnJhcmllcyAqLywKIAkJCQk1RDI0N0I2MzE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvZHVjdHMg
Ki8sCisJCQkJMUM2QkUwRjkxRTAzNEMyQTAwMjE3NjE3IC8qIFNjcmlwdHMgKi8sCiAJCQkJNUQy
NDdCNzYxNDY4OUQ3NjAwRTc4Qjc2IC8qIFNvdXJjZSAqLywKKwkJCQkxQ0QxODc4QTFENTU4QUQz
MDBDQzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3
MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVC
OTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtMTE4NSw2ICsxMjgx
LDcgQEAKIAkJQThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RF
QyAvKiBCcmVha2luZ1J1bGVzICovLAogCQkJCUE1QkExNUY2MTgyNDM1OUUwMEE4MkU2OSAvKiBj
ZiAqLywKIAkJCQkxQzE4MUM4ODFEMzA3QUI4MDBGNUZBMTYgLyogaWN1ICovLAogCQkJCUE1QkEx
NUYxMTgyNDMzOUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMjYzLDYgKzEzNjAsMzIgQEAKIAkJ
CXBhdGggPSBpY3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkNBMzdE
RjFENTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJY
R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkxQ0Y0MjQ2RTFFNEVBMkFDMDAyQkQ3QzcgLyog
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmggKi8sCisJCQkJMUNGNDI0NkYxRTRFQTJBQzAw
MkJEN0M3IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuaCAqLywKKwkJCQkxQ0Y0MjQ3MDFF
NEVBMkFDMDAyQkQ3QzcgLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLmggKi8sCisJ
CQkJMUNGNDI0NzExRTRFQTJBQzAwMkJEN0M3IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZU5vbkNKSy5oICovLAorCQkJCTFDRjQyNDcyMUU0RUEyQUMwMDJCRDdDNyAvKiBMaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Tm9uQ0pLLmggKi8sCisJCQkJMUNGNDI0NzMxRTRFQTJBQzAwMkJEN0M3IC8q
IExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksuaCAqLywKKwkJCQkxQ0Y0MjQ3NDFFNEVB
MkFDMDAyQkQ3QzcgLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5oICovLAor
CQkJCTFDRjQyNDc1MUU0RUEyQUMwMDJCRDdDNyAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3Ry
aWN0Q0pLLmggKi8sCisJCQkJMUNGNDI0NzYxRTRFQTJBQzAwMkJEN0M3IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksuaCAqLywKKwkJCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZC
OTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJCQlDMkNBMzdFMTFE
NTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSy5jcHAgKi8sCisJCQkJ
QzJDQTM3RTIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy5jcHAgKi8sCisJCQkJQzJDQTM3RTMxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJh
dG9yVUFYMTRMb29zZU5vbkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTQxRDU1Qzk3MTAwNDg2Qjk4
IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksuY3BwICovLAorCQkJCUMyQ0EzN0U1MUQ1
NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCAqLywK
KwkJCQlDMkNBMzdFNjFENTVDOTcxMDA0ODZCOTggLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5v
cm1hbE5vbkNKSy5jcHAgKi8sCisJCQkJQzJDQTM3RTcxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksuY3BwICovLAorCQkJCUMyQ0EzN0U4MUQ1NUM5NzEw
MDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLmNwcCAqLywKKwkJ
CSk7CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV1RGOworCQkJc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsKIAkJQ0U0
NjUxNkMxOURCMUZCNDAwM0VDQTA1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKQEAgLTEzNDgsNiArMTQ3MSw3IEBACiAJCQkJQThBNDc0MzgxNTFB
ODI1QjAwNDEyM0ZGIC8qIEF0b21pY1N0cmluZ0ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTlC
RDhGNDBCMTc2QzJCNDcwMDAyRDg2NSAvKiBBdG9taWNTdHJpbmdUYWJsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTQ2OTQxOUMxNkVBQjEwQTAwMjRFMTQ2IC8qIEF1dG9kcmFpbmVkUG9vbC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMUNGNDI0NzgxRTRFQTJBQzAwMkJEN0M3IC8qIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTRDSksuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDNEOEYyMURCNUFEREMwMDEw
OEZCNiAvKiBBdXRvbWF0aWNUaHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCURDRUUyMjA1MUNF
Qjk4NjkwMDBDMjM5NiAvKiBCYWNrd2FyZHNHcmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZC
MTRFMTkxODBGQTIxODAwOUI2QjREIC8qIEJhZy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzgzLDYg
KzE1MDcsNyBAQAogCQkJCUE4QTQ3NDhDMTUxQTgyNjQwMDQxMjNGRiAvKiBjb25maWcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGOEYyQjlDMTcyRjI1OTYwMDdEQkRBNSAvKiBDb252ZXJzaW9uTW9k
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE1Rjc5NEYxQ0ZDOUY0QTAwQ0NFRDkzIC8qIENyb3Nz
VGhyZWFkQ29waWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0Y0MjQ3RDFFNEVBMkFDMDAyQkQ3
QzcgLyogTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE1Rjc5NTYxQ0ZEM0E2OTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFkUXVldWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxNUY3OTUwMUNGQzlGNEEwMENDRUQ5MyAvKiBDcm9zc1RocmVhZFRh
c2suaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3MzlCMTUxQTgyNUIwMDQxMjNGRiAvKiBDcnlw
dG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNDA3LDkgKzE1
MzIsMTEgQEAKIAkJCQkxQUVBODhFMjFENkJCQ0Y0MDBFNUFENjQgLyogRW51bVRyYWl0cy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQUQ3QzQzNEIxREQyQTRBNzAwMjY4ODhCIC8qIEV4cGVjdGVkLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNDMTE1MUE4MjVCMDA0MTIzRkYgLyogRXhwb3J0TWFj
cm9zLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0Y0MjQ3RjFFNEVBMkFDMDAyQkQ3QzcgLyogTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThB
NDczQjQxNTFBODI1QjAwNDEyM0ZGIC8qIGZhc3QtZHRvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZEODFBQzUxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4QTQ3M0M0MTUxQTgyNUIwMDQxMjNGRiAvKiBGYXN0TWFsbG9jLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkxQ0Y0MjQ3OTFFNEVBMkFDMDAyQkQ3QzcgLyogTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlQ0pLLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMzhGRDdCRDE2ODk1M0U4MDA2NUM5
NjkgLyogRmVhdHVyZURlZmluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUQzMzYxMTY1REJB
NzMwMDVBRDM4NyAvKiBGaWxlUHJpbnRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3
M0I2MTUxQTgyNUIwMDQxMjNGRiAvKiBmaXhlZC1kdG9hLmggaW4gSGVhZGVycyAqLywKQEAgLTE0
MTksNiArMTU0Niw4IEBACiAJCQkJMUExRDhCOUMxNzMxODZDRTAwMTQxREE0IC8qIEZ1bmN0aW9u
RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQ0ExNTFBODI1QjAwNDEyM0ZG
IC8qIEdldFB0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg0QUYxQkQ4MjUzMTAwODBGRjc0
IC8qIEdyYXBoTm9kZVdvcmtsaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQ0Y0MjQ3NzFFNEVB
MkFDMDAyQkQ3QzcgLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkxQ0Y0MjQ3RTFFNEVBMkFDMDAyQkQ3QzcgLyogTGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdENKSy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkMwNTM4NTQxNUJDODE5MDAwRjIxQjk2
IC8qIEdyZWdvcmlhbkRhdGVUaW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNEMzE1MUE4
MjVCMDA0MTIzRkYgLyogSGFzaENvdW50ZWRTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3
NDJEMTUxQTgyNUIwMDQxMjNGRiAvKiBIYXNoZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ0OCw2
ICsxNTc3LDcgQEAKIAkJCQkwRjYwRjMzMDFERkNCRDFCMDA0MTZENkMgLyogTG9ja2VkUHJpbnRT
dHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0UzMTUxQTgyNUIwMDQxMjNGRiAvKiBM
b2NrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxM0UxNzBCMUNEN0Q1QkYwMEUzNjUwQiAvKiBM
b2dnaW5nQWNjdW11bGF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRjQyNDdBMUU0RUEyQUMw
MDJCRDdDNyAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4QTQ3M0U2MTUxQTgyNUIwMDQxMjNGRiAvKiBNYWluVGhyZWFkLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTIzM0M3RDE3REFBNkUzMDBBOTNBQ0YgLyogTWFsbG9jUHRyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzNFODE1MUE4MjVCMDA0MTIzRkYgLyogTWF0aEV4dHJhcy5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xNTA3LDYgKzE2MzcsNyBAQAogCQkJCTE0Njk0MTk2MTZFQUFG
RjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMzUyNEFC
MUQ2M0EyRkYwMDMxNzI5QiAvKiBTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg0QjEx
QkRBQ0QzOTAwODBGRjc0IC8qIFNjb3BlZExhbWJkYS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUNG
NDI0N0MxRTRFQTJBQzAwMkJEN0M3IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjZCMjhGMURDOTdCQUIwMDRBMUQzRiAvKiBTZWNvbmRz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTA5OEIwMjFDMTZBNEY5MDAwODc3OTcgLyogU2VjdXJp
dHlTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDFGMTUxQTgyNUIwMDQxMjNGRiAvKiBT
ZWdtZW50ZWRWZWN0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMTUzMyw2ICsxNjY0LDcgQEAKIAkJ
CQlBOEE0NzQzRjE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nSGFzaC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTc0ODc0NTQxN0EwQkRBRTAwRkEwNENCIC8qIFN0cmluZ0hhc2hEdW1wQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0NDExNTFBODI1QjAwNDEyM0ZGIC8qIFN0cmluZ0lt
cGwuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDRjQyNDdCMUU0RUEyQUMwMDJCRDdDNyAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ0MjE1
MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nT3BlcmF0b3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkREQkZBODE2NjZERkEzMDBDNTVGRUYgLyogU3RyaW5nUHJpbnRTdHJlYW0uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBNkVCMUUwMTg3RDBCRDMwMDMwMTI2RiAvKiBTdHJpbmdWaWV3LmggaW4gSGVh
ZGVycyAqLywKQEAgLTE2MTQsNiArMTc0Niw3IEBACiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsK
IAkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJY
VGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJY
VGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gV1RGOwpAQCAtMTY0NCwxMiAr
MTc3NywyNyBAQAogCQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYg
LyogV1RGICovLAogCQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFk
ZXJzICovLAorCQkJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMg
Ki8sCiAJCQkJMTQ0N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFsbG9jICovLAogCQkJKTsK
IAkJfTsKIC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU2hlbGxT
Y3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8q
IEdlbmVyYXRlIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0
QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9
ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUg
RGVyaXZlZCBTb3VyY2VzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsK
KwkJCXNoZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2
ZWRTb3VyY2VzL1dURlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNl
cy9XVEZcIlxuXG4vYmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV1RGXG5leHBvcnQgV1RGPVwi
V1RGXCJcblxuaWYgWyAhIC1kIEJyZWFraW5nUnVsZXMgXTsgdGhlblxuICAgIG1rZGlyIEJyZWFr
aW5nUnVsZXNcbmZpXG5cbmlmIFsgXCIkTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUXCIgPT0gXCIx
MC4xMFwiIF0gOyB0aGVuXG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0wXG5l
bHNlXG4gICAgZXhwb3J0IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0xXG5maVxuXG5pZiBbIFwi
JEhBVkVfSU5URVJOQUxfU0RLXCIgIT0gXCJZRVNcIiBdIHx8IFsgXCIkTUFDT1NYX0RFUExPWU1F
TlRfVEFSR0VUXCIgPT0gXCIxMC4xMFwiIF0gfHwgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJH
RVRcIiA9PSBcIjEwLjExXCIgXSB8fCBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09
IFwiMTAuMTJcIiBdIHx8IFsgXCIkU0RLX1ZFUlNJT05fTUFKT1JcIiA9PSBcIjkwMDAwXCIgXSB8
fCBbIFwiJFNES19WRVJTSU9OX01BSk9SXCIgPT0gXCIxMDAwMDBcIiBdOyB0aGVuXG4gICAgZXhw
b3J0IEhBVkVfSUNVR0VOQlJLPTBcbmVsc2VcbiAgICBleHBvcnQgSEFWRV9JQ1VHRU5CUks9MVxu
ZmlcblxuaWYgWyBcIiR7QUNUSU9OfVwiID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJT059XCIgPSBc
Imluc3RhbGxcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsaGRyc1wiIC1vIFwiJHtBQ1RJ
T059XCIgPSBcImluc3RhbGxhcGlcIiBdOyB0aGVuXG5tYWtlIC0tbm8tYnVpbHRpbi1ydWxlcyAt
ZiBcIldURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1u
IGh3LmFjdGl2ZWNwdWAgU0RLUk9PVD1cIiR7U0RLUk9PVH1cIlxuZmkiOworCQl9OwogCQk2NUFG
QTE3MDE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9
IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CkBAIC0xNzAyLDYgKzE4NTAsNyBAQAogCQkJCUUxNTU1NkY1MThBMENDMTgwMDZGNDhGQiAv
KiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDM5
MTUxQTgyNUIwMDQxMjNGRiAvKiBDU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3
MzlDMTUxQTgyNUIwMDQxMjNGRiAvKiBDdXJyZW50VGltZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlFMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRh
TG9nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0EwMTUxQTgyNUIwMDQxMjNGRiAvKiBE
YXRlTWF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNBMjE1MUE4MjVCMDA0MTIzRkYg
LyogRGVjaW1hbE51bWJlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE3MTgsNiArMTg2NywxNCBA
QAogCQkJCTFBMUQ4QjlFMTczMTg3OTgwMDE0MURBNCAvKiBGdW5jdGlvbkRpc3BhdGNoZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkNDRDg5MkExNUMwMzkwMjAwMjg1MDgzIC8qIEdyZWdvcmlh
bkRhdGVUaW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Q4MTUxQTgyNUIwMDQxMjNG
RiAvKiBIYXNoVGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzJDQTM3RUExRDU1Qzk3MTAw
NDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQzJDQTM3RUIxRDU1Qzk3MTAwNDg2Qjk4IC8qIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZUNKSy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFQzFENTVDOTcxMDA0ODZCOTggLyog
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUMyQ0EzN0VEMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0VFMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0Ez
N0VGMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsTm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0YwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5l
QnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Q0pLLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0Ez
N0YxMUQ1NUM5NzEwMDQ4NkI5OCAvKiBMaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pL
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRTE2NDZBMUI2RkZDOTYwMDQwMEU3QyAvKiBMb2Nr
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjBGMzJGMURGQ0JEMUIwMDQxNkQ2QyAvKiBMb2Nr
ZWRQcmludFN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNFNTE1MUE4MjVCMDA0
MTIzRkYgLyogTWFpblRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE3OTMsNiArMTk1MCwx
MSBAQAogCQkJdGFyZ2V0ID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLzsKIAkJ
CXRhcmdldFByb3h5ID0gMTQ0N0FFQzMxOEZDRTU3MDAwQjNEN0ZGIC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLzsKIAkJfTsKKwkJMUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdl
dERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFy
Z2V0ID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLzsKKwkJ
CXRhcmdldFByb3h5ID0gMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLzsKKwkJfTsKIAkJNjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdl
dERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFy
Z2V0ID0gNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi87CkBA
IC0xODIyLDYgKzE5ODQsMzAgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsK
KwkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENC
dWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3
QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWls
ZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9
OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQkxQ0QxODc4NTFENTU2OTVDMDBDQzdERUMgLyog
UmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNv
bmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdS
ZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05B
TUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9Owor
CQkxQ0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9
IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1
RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOworCQkJ
YnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwor
CQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDI0N0I2NDE0Njg5Qjg2MDBF
NzhCNzYgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJ
CWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8q
IERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKQEAgLTE5MDUsNiArMjA5MSwxNiBAQAogCQkJZGVm
YXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25O
YW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODMxRDU1Njk1QzAwQ0M3REVDIC8qIEJ1
aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNv
dXJjZXMiICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29u
ZmlndXJhdGlvbnMgPSAoCisJCQkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICov
LAorCQkJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovLAorCQkJCTFDRDE4
Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRD
b25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9
IFByb2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjVDMTQ2ODlCODYwMEU3OEI3NiAvKiBCdWlsZCBj
b25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldURiIgKi8gPSB7CiAJCQlpc2EgPSBY
Q0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWJyay5oIGIvU291cmNlL1dURi9pY3UvdW5pY29k
ZS91YnJrLmgKaW5kZXggZTljMGVmNjI3YjY3Mjc5Zjg2ZTQ2MDQ0YmYwZjI1NzEwMmUwYzZjZC4u
MTk3NWI5ZGJlZDQ0M2E5Mjc0MzZmMGEyNzkyOWJhNThhZjg3MTgyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9pY3UvdW5pY29kZS91YnJrLmgKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91
YnJrLmgKQEAgLTI0MSw2ICsyNDEsMzEgQEAgdWJya19vcGVuUnVsZXMoY29uc3QgVUNoYXIgICAg
ICpydWxlcywKICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgICAqc3RhdHVzKTsKIAogLyoq
CisgKiBPcGVuIGEgbmV3IFVCcmVha0l0ZXJhdG9yIGZvciBsb2NhdGluZyB0ZXh0IGJvdW5kYXJp
ZXMgdXNpbmcgcHJlY29tcGlsZWQgYmluYXJ5IHJ1bGVzLgorICogT3BlbmluZyBhIFVCcmVha0l0
ZXJhdG9yIHRoaXMgd2F5IGlzIHN1YnN0YW50aWFsbHkgZmFzdGVyIHRoYW4gdXNpbmcgdWJya19v
cGVuUnVsZXMuCisgKiBCaW5hcnkgcnVsZXMgbWF5IGJlIG9idGFpbmVkIHVzaW5nIHVicmtfZ2V0
QmluYXJ5UnVsZXMuIFRoZSBjb21waWxlZCBydWxlcyBhcmUgbm90CisgKiBjb21wYXRpYmxlIGFj
cm9zcyBkaWZmZXJlbnQgbWFqb3IgdmVyc2lvbnMgb2YgSUNVLCBub3IgYWNyb3NzIHBsYXRmb3Jt
cyBvZiBkaWZmZXJlbnQKKyAqIGVuZGlhbm5lc3Mgb3IgZGlmZmVyZW50IGJhc2UgY2hhcmFjdGVy
IHNldCBmYW1pbHkgKEFTQ0lJIHZzIEVCQ0RJQykuCisgKiBAcGFyYW0gYmluYXJ5UnVsZXMgQSBz
ZXQgb2YgY29tcGlsZWQgYmluYXJ5IHJ1bGVzIHNwZWNpZnlpbmcgdGhlIHRleHQgYnJlYWtpbmcK
KyAqICAgICAgICAgICAgICAgICAgICBjb252ZW50aW9ucy4gT3duZXJzaGlwIG9mIHRoZSBzdG9y
YWdlIGNvbnRhaW5pbmcgdGhlIGNvbXBpbGVkCisgKiAgICAgICAgICAgICAgICAgICAgcnVsZXMg
cmVtYWlucyB3aXRoIHRoZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbi4gVGhlIGNvbXBpbGVkCisg
KiAgICAgICAgICAgICAgICAgICAgcnVsZXMgbXVzdCBub3QgYmUgbW9kaWZpZWQgb3IgZGVsZXRl
ZCBkdXJpbmcgdGhlIGxpZmUgb2YgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaXRl
cmF0b3IuCisgKiBAcGFyYW0gcnVsZXNMZW5ndGggVGhlIGxlbmd0aCBvZiBiaW5hcnlSdWxlcyBp
biBieXRlczsgbXVzdCBiZSA+PSAwLgorICogQHBhcmFtIHRleHQgICAgICAgIFRoZSB0ZXh0IHRv
IGJlIGl0ZXJhdGVkIG92ZXIuICBNYXkgYmUgbnVsbCwgaW4gd2hpY2ggY2FzZQorICogICAgICAg
ICAgICAgICAgICAgIHVicmtfc2V0VGV4dCgpIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgdGV4dCB0
byBiZSBpdGVyYXRlZC4KKyAqIEBwYXJhbSB0ZXh0TGVuZ3RoICBUaGUgbnVtYmVyIG9mIGNoYXJh
Y3RlcnMgaW4gdGV4dCwgb3IgLTEgaWYgbnVsbC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHN0YXR1
cyAgICAgIFBvaW50ZXIgdG8gVUVycm9yQ29kZSB0byByZWNlaXZlIGFueSBlcnJvcnMuCisgKiBA
cmV0dXJuICAgICAgICAgICAgVUJyZWFrSXRlcmF0b3IgZm9yIHRoZSBzcGVjaWZpZWQgcnVsZXMu
CisgKiBAc2VlIHVicmtfZ2V0QmluYXJ5UnVsZXMKKyAqIEBkcmFmdCBJQ1UgNTkKKyAqLworVV9E
UkFGVCBVQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCit1YnJrX29wZW5CaW5hcnlSdWxlcyhjb25z
dCB1aW50OF90ICpiaW5hcnlSdWxlcywgaW50MzJfdCBydWxlc0xlbmd0aCwKKyAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFVDaGFyICogIHRleHQsIGludDMyX3QgdGV4dExlbmd0aCwKKyAgICAg
ICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgKiAgIHN0YXR1cyk7CisKKy8qKgogICogVGhyZWFk
IHNhZmUgY2xvbmluZyBvcGVyYXRpb24KICAqIEBwYXJhbSBiaSBpdGVyYXRvciB0byBiZSBjbG9u
ZWQKICAqIEBwYXJhbSBzdGFja0J1ZmZlciA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGFz
IG9mIElDVSA1MiwgdXNlIE5VTEwuPC9lbT48YnI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDgx
YWY5MTI3NjEwNmI4MTI4OTE3ZGI4Yzc5Y2YyNTRiMmU0ZDhjZjAuLjE1OTM0MGZiOGVkNjAwYzM2
OTk3NWFiYzc4OGE2ZWVjZTY5NjEzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC0zMDEsNiAr
MzAxLDQyIEBAIGlmIChOT1QgVVNFX1NZU1RFTV9NQUxMT0MpCiAgICAgbGlzdChBUFBFTkQgV1RG
X0xJQlJBUklFUyBibWFsbG9jKQogZW5kaWYgKCkKIAorc2V0KFdURl9CUkVBS0lOR19SVUxFU19T
T1VSQ0VTCisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksu
dHh0CisgICAgdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
Sy50eHQKKyAgICB0ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3Nl
Tm9uQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9uQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9ybWFsTm9uQ0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvclVBWDE0U3RyaWN0Q0pLLnR4dAorICAgIHRleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLLnR4dAorKQorCittYWNybyhHRU5FUkFURV9CUkVBS0lO
R19SVUxFUyBfaW5wdXQgX3N5bWJvbE5hbWUgX291dHB1dCkKKyAgICBhZGRfY3VzdG9tX2NvbW1h
bmQoCisgICAgICAgIE9VVFBVVCAke19vdXRwdXR9CisgICAgICAgIE1BSU5fREVQRU5ERU5DWSAk
e1dURl9ESVJ9L1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CisgICAgICAg
IERFUEVORFMgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9M
aW5lQnJlYWtJdGVyYXRvclByb2xvZ3VlLnR4dCAke19pbnB1dH0gJHtDTUFLRV9DVVJSRU5UX1NP
VVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvckVwaWxvZ3VlLnR4
dAorICAgICAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0vU2NyaXB0
cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgLS1pbmNsdWRlRGVmaW5lcyAke19zeW1i
b2xOYW1lfVJ1bGVzICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVs
ZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQgJHtfaW5wdXR9ICR7Q01BS0VfQ1VSUkVO
VF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1
ZS50eHQgPiAke19vdXRwdXR9CisgICAgICAgIFZFUkJBVElNKQorICAgIGxpc3QoQVBQRU5EIFdU
Rl9TT1VSQ0VTICR7X291dHB1dH0pCisgICAgQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtfaW5w
dXR9ICR7X291dHB1dH0pCitlbmRtYWNybygpCisKK2ZvcmVhY2ggKF9maWxlICR7V1RGX0JSRUFL
SU5HX1JVTEVTX1NPVVJDRVN9KQorICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtf
ZmlsZX0gTkFNRV9XRSkKKyAgICBHRU5FUkFURV9CUkVBS0lOR19SVUxFUygke0NNQUtFX0NVUlJF
TlRfU09VUkNFX0RJUn0vJHtfZmlsZX0gJHtfbmFtZX0gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJ
Un0vQnJlYWtpbmdSdWxlcy8ke19uYW1lfS5jcHApCitlbmRmb3JlYWNoICgpCisKK2FkZF9jdXN0
b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtp
bmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgTUFJTl9ERVBFTkRF
TkNZICR7V1RGX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKKyAg
ICBERVBFTkRTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMv
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorICAgIENPTU1BTkQgJHtQWVRIT05fRVhF
Q1VUQUJMRX0gJHtXVEZfRElSfS9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5w
eSAtLWluY2x1ZGVEZWZpbmVzIGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy50eHQgPiAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAKKyAgICBWRVJCQVRJTSkKK2xpc3QoQVBQRU5E
IFdURl9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCkKK0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7
Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLnR4dCAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1
bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHApCisKIGxpc3QoQVBQRU5EIFdURl9T
T1VSQ0VTCiAgICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1UuY3BwCiApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dURi93dGYvRGVyaXZl
ZFNvdXJjZXMubWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzkxNjI1NzVlYjdiNTdjZjU1YTk4MmRiYzAxOWJl
NTEzZmRiMjVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMCwwICsxLDgzIEBACisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMg
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCitCUkVBS0lOR19SVUxFU19GSUxFUyA9IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNv
ck1vdmVtZW50SXRlcmF0b3JSdWxlcy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNENKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy5icmsgXAorICAgIEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNExvb3NlQ0pLLmJyayBcCisgICAgQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb3JtYWxOb25DSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3RDSksuYnJrIFwKKyAgICBCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJh
dG9yVUFYMTRTdHJpY3ROb25DSksuYnJrCisKK0JSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TPSQo
QlJFQUtJTkdfUlVMRVNfRklMRVM6LmJyaz0uY3BwKQorCitCUkVBS0lOR19SVUxFU19TVFJJTkdT
X0ZJTEVTPSQoQlJFQUtJTkdfUlVMRVNfRklMRVM6LmJyaz0uaCkKKworaWZlcSAoJChzaGVsbCAk
KENDKSAtc3RkPWdudSsrMTEgLXggYysrIC1FIC1QIC1kTSAkKFNES19GTEFHUykgJChGUkFNRVdP
UktfRkxBR1MpICQoSEVBREVSX0ZMQUdTKSAtSSAkKFdURikgLWluY2x1ZGUgIiQoV1RGKS93dGYv
UGxhdGZvcm0uaCIgL2Rldi9udWxsIHwgZ3JlcCAnIFdURl9QTEFURk9STV9JT1MgJyB8IGN1dCAt
ZCcgJyAtZjMpLCAxKQorICAgIFdURl9QTEFURk9STV9JT1MgPSAxCitlbHNlCisgICAgV1RGX1BM
QVRGT1JNX0lPUyA9IDAKK2VuZGlmCisKK2lmZXEgKCQoV1RGX1BMQVRGT1JNX0lPUyksIDEpCisJ
QURESVRJT05BTF9FTU9KSV9TVVBQT1JUX0ZPUl9DVVJTT1JfTU9WRU1FTlQgPSAwCisJSEFWRV9F
WFRSQV9JQ1VfTkFNRURfU0VUUyA9IDAKK2Vsc2UKKwlBRERJVElPTkFMX0VNT0pJX1NVUFBPUlRf
Rk9SX0NVUlNPUl9NT1ZFTUVOVCA9ICQoQURESVRJT05BTF9FTU9KSV9TVVBQT1JUKQorCUhBVkVf
RVhUUkFfSUNVX05BTUVEX1NFVFMgPSAxCitlbmRpZgorCitERVBFTkRFTkNJRVMgPSAkKEJSRUFL
SU5HX1JVTEVTX0RFRklOSVRJT05TKQorCitpZmVxICgkKEhBVkVfSUNVR0VOQlJLKSwgMSkKK0RF
UEVOREVOQ0lFUyArPSAkKEJSRUFLSU5HX1JVTEVTX1NUUklOR1NfRklMRVMpCitlbmRpZgorCitY
WERfU0NSSVBUID0gL1VzZXJzL21tYXhmaWVsZC9zcmMvV2ViS2l0L09wZW5Tb3VyY2UvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NjcmlwdHMveHhkLnBsCisKK2FsbCA6ICQoREVQRU5ERU5DSUVTKQor
CitCcmVha2luZ1J1bGVzLyUuYnJrIDogQnJlYWtpbmdSdWxlcy8lLnBwCisJaWN1Z2VuYnJrIC1j
IC1yICQ8IC1vICRACisKK0JyZWFraW5nUnVsZXMvJS5oIDogQnJlYWtpbmdSdWxlcy8lLmJyayAk
KFhYRF9TQ1JJUFQpCisJcGVybCAkKFhYRF9TQ1JJUFQpICQqICQ8ICRACisKKyMgZ2VuYnJrIGRv
ZXNuJ3QgdW5kZXJzdGFuZCBwcmVwcm9jZXNzb3IgbWFjcm9zLCBzbyB3ZSBoYXZlIHRvIHVuaWZk
ZWYgbWFudWFsbHkgaGVyZS4KKyMgSG93ZXZlciwgc29tZSBwb3J0cyB3aGljaCBkb24ndCBoYXZl
IGdlbmJyayBhbHNvIGRvbid0IGhhdmUgdW5pZmRlZiwgc28gd2UgZG9uJ3QgdW5pZmRlZiB0aGUK
KyMgcnVsZXMgd2hpY2ggZ2V0IGNvbnZlcnRlZCB0byBDKysgc291cmNlLCBhbmQgd2UgcmVseSBv
biB0aGUgQysrIGNvbXBpbGVyJ3MgcHJlcHJvY2Vzc29yIHRvIGhhbmRsZQorIyB0aGUgZGlyZWN0
aXZlcyBpbnN0ZWFkLgorQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMu
Y3BwIDogQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMucHAKKwlweXRo
b24gJChXVEYpL1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGN1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcyAkPCA+ICRACisKK0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRl
cmF0b3IlLmNwcCA6IEJyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3IlLnBwCisJcHl0aG9u
ICQoV1RGKS9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBsaW5lQnJlYWtJ
dGVyYXRvciQqUnVsZXMgJDwgPiAkQAorCitCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy5wcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy50eHQKKwktdW5pZmRlZiAtREFERElUSU9OQUxfRU1PSklfU1VQUE9S
VD0kKEFERElUSU9OQUxfRU1PSklfU1VQUE9SVF9GT1JfQ1VSU09SX01PVkVNRU5UKSAtREhBVkVf
RVhUUkFfSUNVX05BTUVEX1NFVFM9JChIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTKSAtbyAkQCAk
PAorCitCcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS5wcCA6ICQoV1RGKS93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0ICQoV1RGKS93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yJS50eHQgJChXVEYpL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKKwktY2F0ICQ/IHwg
dW5pZmRlZiAtREFERElUSU9OQUxfRU1PSklfU1VQUE9SVD0kKEFERElUSU9OQUxfRU1PSklfU1VQ
UE9SVCkgLURIQVZFX0VYVFJBX0lDVV9OQU1FRF9TRVRTPSQoSEFWRV9FWFRSQV9JQ1VfTkFNRURf
U0VUUykgLW8gJEAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9C
cmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGRhYjhiNTc1Zjk1YzYyN2Y1ODk1ZTIzY2NkNGIxYTExMDVlYjhkOAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMudHh0CkBAIC0wLDAgKzEsMTc2IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJ
bmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFRoaXMgcnVs
ZSBzZXQgaXMgYmFzZWQgb24gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1
NworIyA8aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2ljdS90YWdzL3Jl
bGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KKyMgVGhlIG1ham9yIGRpZmZlcmVuY2Vz
IGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBiZWxvdzoKKyMgKiBSZXBsYWNlZCAn
W1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBTcGFjaW5nTWFya31dJyB3aXRoICdbXHB7R2Vu
ZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya30gLSAkRXh0ZW5kXScgZm9yIElDVSAzLjggb3Ig
ZWFybGllcjsKKyMgKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1v
dmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7CisjICogQWRkZWQgcnVs
ZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBv
ZiBJbmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7CisjICogQWRk
ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGJlZm9yZSBKYXBhbmVz
ZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJrcy4KKyMgKiBBZGRlZCBydWxlcyBmb3Ig
cmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCisKKyRDUiAgICAgID0gW1xwe0dyYXBoZW1lX0Ns
dXN0ZXJfQnJlYWsgPSBDUn1dOworJExGICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVh
ayA9IExGfV07CiskQ29udHJvbCA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJv
bH1dOworJFZvaWNlTWFya3MgPSBbXHVGRjlFXHVGRjlGXTsgIyBKYXBhbmVzZSBoYWxmLXdpZHRo
IGthdGFrYW5hIHZvaWNlZCBtYXJrcworJEV4dGVuZCAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9C
cmVhayA9IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXHUwRTMwIFx1MEUzMiBcdTBFNDUgXHUwRUIw
IFx1MEVCMl1dOworJFNwYWNpbmdNYXJrID0gW1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2lu
ZyBNYXJrfV0gLSAkRXh0ZW5kXTsKKyRMICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJl
YWsgPSBMfV07CiskViAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOwor
JFQgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFR9XTsKKyRMViAgICAgID0g
W1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOworJExWVCAgICAgPSBbXHB7R3JhcGhl
bWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1dOworJEhpbjAgICAgPSBbXHUwOTA1LVx1MDkzOV07ICMg
RGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEKKyRIaW5WICAgID0gXHUwOTREOyAjIERldmFuYWdh
cmkgU2lnbiBWaXJhbWEKKyRIaW4xICAgID0gW1x1MDkxNS1cdTA5MzldOyAjIERldmFuYWdhcmkg
TGV0dGVyIEthLC4uLixIYQorJEJlbjAgICAgPSBbXHUwOTg1LVx1MDlCOV07ICMgQmVuZ2FsaSBM
ZXR0ZXIgQSwuLi4sSGEKKyRCZW5WICAgID0gXHUwOUNEOyAjIEJlbmdhbGkgU2lnbiBWaXJhbWEK
KyRCZW4xICAgID0gW1x1MDk5NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVyIEthLC4uLixIYQor
JFBhbjAgICAgPSBbXHUwQTA1LVx1MEEzOV07ICMgR3VybXVraGkgTGV0dGVyIEEsLi4uLEhhCisk
UGFuViAgICA9IFx1MEE0RDsgIyBHdXJtdWtoaSBTaWduIFZpcmFtYQorJFBhbjEgICAgPSBbXHUw
QTE1LVx1MEEzOV07ICMgR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQorJEd1ajAgICAgPSBbXHUw
QTg1LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0dGVyIEEsLi4uLEhhCiskR3VqViAgICA9IFx1MEFD
RDsgIyBHdWphcmF0aSBTaWduIFZpcmFtYQorJEd1ajEgICAgPSBbXHUwQTk1LVx1MEFCOV07ICMg
R3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQorJE9yaTAgICAgPSBbXHUwQjA1LVx1MEIzOV07ICMg
T3JpeWEgTGV0dGVyIEEsLi4uLEhhCiskT3JpViAgICA9IFx1MEI0RDsgIyBPcml5YSBTaWduIFZp
cmFtYQorJE9yaTEgICAgPSBbXHUwQjE1LVx1MEIzOV07ICMgT3JpeWEgTGV0dGVyIEthLC4uLixI
YQorJFRlbDAgICAgPSBbXHUwQzA1LVx1MEMzOV07ICMgVGVsdWd1IExldHRlciBBLC4uLixIYQor
JFRlbFYgICAgPSBcdTBDNEQ7ICMgVGVsdWd1IFNpZ24gVmlyYW1hCiskVGVsMSAgICA9IFtcdTBD
MTQtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEthLC4uLixIYQorJEthbjAgICAgPSBbXHUwQzg1
LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKKyRLYW5WICAgID0gXHUwQ0NEOyAj
IEthbm5hZGEgU2lnbiBWaXJhbWEKKyRLYW4xICAgID0gW1x1MEM5NS1cdTBDQjldOyAjIEthbm5h
ZGEgTGV0dGVyIEEsLi4uLEhhCiskTWFsMCAgICA9IFtcdTBEMDUtXHUwRDM5XTsgIyBNYWxheWFs
YW0gTGV0dGVyIEEsLi4uLEhhIAorJE1hbFYgICAgPSBcdTBENEQ7ICMgTWFsYXlhbGFtIFNpZ24g
VmlyYW1hCiskTWFsMSAgICA9IFtcdTBEMTUtXHUwRDM5XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEs
Li4uLEhhCiskUkkgICAgICA9IFtcVTAwMDFGMUU2LVxVMDAwMUYxRkZdOyAjIEVtb2ppIHJlZ2lv
bmFsIGluZGljYXRvcnMKKyRaV0ogICAgID0gXHUyMDBEOyAjIFplcm8gd2lkdGggam9pbmVyCisk
RW1vamlWYXIgPSBbXHVGRTBGXTsgIyBFbW9qaS1zdHlsZSB2YXJpYXRpb24gc2VsZWN0b3IKKwor
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI2
NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUwMDAxRjMwOCBcVTAwMDFGM0MzLVxVMDAwMUYzQzQg
XFUwMDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAwMUYzRjMgXFUwMDAxRjQ0MSBcVTAwMDFGNDY2LVxV
MDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDZGIFxVMDAwMUY0NzEgXFUwMDAxRjQ3MyBcVTAw
MDFGNDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MiBcVTAwMDFGNDg2LVxVMDAwMUY0ODcgXFUwMDAx
RjQ4QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTggXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2
NEIgXFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2
IFx1MjY5NS1cdTI2OTYgXHUyNzA4IFxVMDAwMUYzM0UgXFUwMDAxRjM3MyBcVTAwMDFGMzkzIFxV
MDAwMUYzQTQgXFUwMDAxRjNBOCBcVTAwMDFGM0VCIFxVMDAwMUYzRUQgXFUwMDAxRjRCQi1cVTAw
MDFGNEJDIFxVMDAwMUY1MjcgXFUwMDAxRjUyQyBcVTAwMDFGNjgwIFxVMDAwMUY2OTIgXFUwMDAx
RjkyNiBcVTAwMDFGOTM3LVxVMDAwMUY5MzkgXFUwMDAxRjkzQy1cVTAwMDFGOTNFXTsgIyBFbW9q
aSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyAgICAkRW1vamlGb3JNb2RzID0g
W1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1MjcwRCBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAx
RjNDNCBcVTAwMDFGM0NBIFxVMDAwMUYzQ0IgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0
NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgx
LVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFGNDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU3NSBc
VTAwMDFGNTkwIFxVMDAwMUY1OTUgXFUwMDAxRjU5NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUw
MDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAw
MUY2QzAgXFUwMDAxRjkxOCBcVTAwMDFGM0MyIFxVMDAwMUYzQzcgXFUwMDAxRjNDQyBcVTAwMDFG
NTc0IFxVMDAwMUY1N0EgXFUwMDAxRjZDQyBcVTAwMDFGOTE5LVxVMDAwMUY5MUUgXFUwMDAxRjky
NiBcVTAwMDFGOTMwIFxVMDAwMUY5MzMtXFUwMDAxRjkzOSBcVTAwMDFGOTNDLVxVMDAwMUY5M0Vd
IDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCisKKyNlbHNlCisKKyAg
ICAkRW1vamlGb3JTZXFzID0gW1x1Mjc2NCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ4
Ql07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCisgICAgJEVtb2pp
Rm9yTW9kcyA9IFtcdTI2MUQgXHUyNzBBLVx1MjcwQyBcVTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUw
MDAxRjNDNCBcVTAwMDFGM0M3IFxVMDAwMUYzQ0EgXFUwMDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAw
MUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFG
NDc4IFxVMDAwMUY0N0MgXFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4
NyBcVTAwMDFGNEFBIFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAwMDFGNjQ3IFxVMDAwMUY2NEIt
XFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcVTAwMDFGNkMwXSA7
ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZW5kaWYKKworJEVt
b2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYzRkZdOyAjIEZpdHpwYXRyaWNrIG1vZGlmaWVy
cworISFjaGFpbjsKKworI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAorCisgICAgISFSSU5v
Q2hhaW47CisKKyNlbmRpZgorCishIWZvcndhcmQ7CiskQ1IgJExGOworJEwgKCRMIHwgJFYgfCAk
TFYgfCAkTFZUKTsKKygkTFYgfCAkVikgKCRWIHwgJFQpOworKCRMVlQgfCAkVCkgJFQ7CisKKyNp
ZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAgICRSSSAkUkkgJEV4dGVuZCogLyAkUkk7
CisgICAgJFJJICRSSSAkRXh0ZW5kKjsKKyAgICBbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7
CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7CisKKyNlbHNlCisKKyAgICBb
XiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7CisgICAgW14kQ29udHJvbCAkQ1IgJExGXSAkU3Bh
Y2luZ01hcms7CisgICAgJFJJICRSSSAvICRSSTsKKyAgICAkUkkgJFJJOworCisjZW5kaWYKKwor
JEhpbjAgJEhpblYgJEhpbjE7ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCiskQmVuMCAk
QmVuViAkQmVuMTsgIyBCZW5nYWxpIFZpcmFtYSAoZm9yd2FyZCkKKyRQYW4wICRQYW5WICRQYW4x
OyAjIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkKKyRHdWowICRHdWpWICRHdWoxOyAjIEd1amFy
YXRpIFZpcmFtYSAoZm9yd2FyZCkKKyRPcmkwICRPcmlWICRPcmkxOyAjIE9yaXlhIFZpcmFtYSAo
Zm9yd2FyZCkKKyRUZWwwICRUZWxWICRUZWwxOyAjIFRlbHVndSBWaXJhbWEgKGZvcndhcmQpCisk
S2FuMCAkS2FuViAkS2FuMTsgIyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKKyRNYWwwICRNYWxW
ICRNYWwxOyAjIE1hbGF5YWxhbSBWaXJhbWEgKGZvcndhcmQpCiskWldKICRFbW9qaUZvclNlcXM7
ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlGb3JNb2RzICRFbW9q
aVZhcj8gJEVtb2ppTW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBv
c3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIK
KyEhcmV2ZXJzZTsKKyRMRiAkQ1I7CisoJEwgfCAkViB8ICRMViB8ICRMVlQpICRMOworKCRWIHwg
JFQpICgkTFYgfCAkVik7CiskVCAoJExWVCB8ICRUKTsKKworI2lmIEFERElUSU9OQUxfRU1PSklf
U1VQUE9SVAorCisgICAgJEV4dGVuZCogJFJJICRSSSAvICRFeHRlbmQqICRSSSAkUkk7CisgICAg
JEV4dGVuZCogJFJJICRSSTsKKyAgICAkRXh0ZW5kICAgICAgW14kQ29udHJvbCAkQ1IgJExGXTsK
KyAgICAkU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsKKworI2Vsc2UKKworICAgICRF
eHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworICAgICRTcGFjaW5nTWFyayBbXiRDb250
cm9sICRDUiAkTEZdOworICAgICRSSSAkUkkgLyAkUkkgJFJJOworICAgICRSSSAkUkk7CisKKyNl
bmRpZgorCiskSGluMSAkSGluViAkSGluMDsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQp
CiskQmVuMSAkQmVuViAkQmVuMDsgIyBCZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQpCiskUGFuMSAk
UGFuViAkUGFuMDsgIyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQorJEd1ajEgJEd1alYgJEd1
ajA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRPcmkxICRPcmlWICRPcmkwOyAjIEd1
amFyYXRpIFZpcmFtYSAoYmFja3dhcmQpCiskVGVsMSAkVGVsViAkVGVsMDsgIyBUZWx1Z3UgVmly
YW1hIChiYWNrd2FyZCkKKyRLYW4xICRLYW5WICRLYW4wOyAjIEthbm5hZGEgVmlyYW1hIChiYWNr
d2FyZCkKKyRNYWwxICRNYWxWICRNYWwwOyAjIE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3YXJkKQor
JEVtb2ppRm9yU2VxcyAkWldKOyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwor
JEVtb2ppTW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVu
IHJlbGV2YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZp
dHpwYXRyaWNrIG1vZGlmaWVyCisKKyNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKKworICAg
ICEhc2FmZV9yZXZlcnNlOworICAgICRSSSAkUkkrOworICAgIFskRW1vamlWYXIgJEVtb2ppTW9k
c10rICRFbW9qaUZvck1vZHM7CisgICAgISFzYWZlX2ZvcndhcmQ7CisgICAgJFJJICRSSSs7Cisg
ICAgJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsKKworI2Vsc2UKKworICAg
IFskRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7CisgICAgJEVtb2ppRm9yTW9k
cyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsKKyAgICAhIXNhZmVfcmV2ZXJzZTsKKyAgICAhIXNh
ZmVfZm9yd2FyZDsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jy
ZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTRiMDg4ZDUwMDE0MmQyOWJkZDIwNWUzMTgwM2RmODRhNTJiMDJiZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVy
YXRvckVwaWxvZ3VlLnR4dApAQCAtMCwwICsxLDM3MiBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xs
IChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmls
ZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisj
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEFJID0g
WzpMaW5lQnJlYWsgPSBBbWJpZ3VvdXM6XTsKKyRBTCA9IFs6TGluZUJyZWFrID0gQWxwaGFiZXRp
YzpdOworJEJBID0gW1s6TGluZUJyZWFrID0gQnJlYWtfQWZ0ZXI6XSAtICRCQV9TVUJdOworJEJC
ID0gWzpMaW5lQnJlYWsgPSBCcmVha19CZWZvcmU6XTsKKyRCSyA9IFs6TGluZUJyZWFrID0gTWFu
ZGF0b3J5X0JyZWFrOl07CiskQjIgPSBbOkxpbmVCcmVhayA9IEJyZWFrX0JvdGg6XTsKKyRDQiA9
IFs6TGluZUJyZWFrID0gQ29udGluZ2VudF9CcmVhazpdOworJENMID0gWzpMaW5lQnJlYWsgPSBD
bG9zZV9QdW5jdHVhdGlvbjpdOworJENNID0gWzpMaW5lQnJlYWsgPSBDb21iaW5pbmdfTWFyazpd
OworJENQID0gWzpMaW5lQnJlYWsgPSBDbG9zZV9QYXJlbnRoZXNpczpdOworJENSID0gWzpMaW5l
QnJlYWsgPSBDYXJyaWFnZV9SZXR1cm46XTsKKyRFWCA9IFtbOkxpbmVCcmVhayA9IEV4Y2xhbWF0
aW9uOl0gLSAkRVhfU1VCXTsKKyRHTCA9IFs6TGluZUJyZWFrID0gR2x1ZTpdOworCisjaWYgSEFW
RV9FWFRSQV9JQ1VfTkFNRURfU0VUUworCisgICAgJEhMID0gWzpMaW5lQnJlYWsgPSBIZWJyZXdf
TGV0dGVyOl07CisKKyNlbHNlCisKKyAgICAkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1d
OworCisjZW5kaWYKKworJEhZID0gWzpMaW5lQnJlYWsgPSBIeXBoZW46XTsKKyRIMiA9IFs6TGlu
ZUJyZWFrID0gSDI6XTsKKyRIMyA9IFs6TGluZUJyZWFrID0gSDM6XTsKKyRJRCA9IFtbW1s6TGlu
ZUJyZWFrID0gSWRlb2dyYXBoaWM6XSAtICRDSl0gJElEX0FERF0gLSAkSURfU1VCXTsKKyRJTiA9
IFtbOkxpbmVCcmVhayA9IEluc2VwYXJhYmxlOl0gLSAkSU5fU1VCXTsKKyRJUyA9IFtbOkxpbmVC
cmVhayA9IEluZml4X051bWVyaWM6XSAtICRJU19TVUJdOworJEpMID0gWzpMaW5lQnJlYWsgPSBK
TDpdOworJEpWID0gWzpMaW5lQnJlYWsgPSBKVjpdOworJEpUID0gWzpMaW5lQnJlYWsgPSBKVDpd
OworJExGID0gWzpMaW5lQnJlYWsgPSBMaW5lX0ZlZWQ6XTsKKyROTCA9IFs6TGluZUJyZWFrID0g
TmV4dF9MaW5lOl07CiskTlMgPSBbW1tbOkxpbmVCcmVhayA9IE5vbnN0YXJ0ZXI6XSAtICRDSl0g
JE5TX0FERF0gLSAkTlNfU1VCXTsKKyROVSA9IFs6TGluZUJyZWFrID0gTnVtZXJpYzpdOworJE9Q
ID0gWzpMaW5lQnJlYWsgPSBPcGVuX1B1bmN0dWF0aW9uOl07CiskUE8gPSBbWzpMaW5lQnJlYWsg
PSBQb3N0Zml4X051bWVyaWM6XSAtICRQT19TVUJdOworJFBSID0gW1s6TGluZUJyZWFrID0gUHJl
Zml4X051bWVyaWM6XSAtICRQUl9TVUJdOworJFFVID0gWzpMaW5lQnJlYWsgPSBRdW90YXRpb246
XTsKKyRSSSA9IFtcVTAwMDFGMUU2LVxVMDAwMUYxRkZdOworJFNBID0gWzpMaW5lQnJlYWsgPSBD
b21wbGV4X0NvbnRleHQ6XTsKKyRTRyA9IFs6TGluZUJyZWFrID0gU3Vycm9nYXRlOl07CiskU1Ag
PSBbOkxpbmVCcmVhayA9IFNwYWNlOl07CiskU1kgPSBbOkxpbmVCcmVhayA9IEJyZWFrX1N5bWJv
bHM6XTsKKyRXSiA9IFs6TGluZUJyZWFrID0gV29yZF9Kb2luZXI6XTsKKyRYWCA9IFs6TGluZUJy
ZWFrID0gVW5rbm93bjpdOworJFpXID0gWzpMaW5lQnJlYWsgPSBaV1NwYWNlOl07CiskWldKID0g
XHUyMDBEOworJEVtb2ppVmFyID0gXHVGRTBGOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQ
T1JUCisKKyAgICAkRW1vamlGb3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBc
VTAwMDFGMzA4IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAwMUYzQ0MgXFUw
MDAxRjNGMyBcVTAwMDFGNDQxIFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAw
MUY0NkYgXFUwMDAxRjQ3MSBcVTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4MS1cVTAwMDFG
NDgyIFxVMDAwMUY0ODYtXFUwMDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUgXFUwMDAxRjVF
OCBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxVMDAwMUY2NEUg
XFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXHUyNjk1LVx1MjY5NiBcdTI3MDggXFUw
MDAxRjMzRSBcVTAwMDFGMzczIFxVMDAwMUYzOTMgXFUwMDAxRjNBNCBcVTAwMDFGM0E4IFxVMDAw
MUYzRUIgXFUwMDAxRjNFRCBcVTAwMDFGNEJCLVxVMDAwMUY0QkMgXFUwMDAxRjUyNyBcVTAwMDFG
NTJDIFxVMDAwMUY2ODAgXFUwMDAxRjY5MiBcVTAwMDFGOTI2IFxVMDAwMUY5MzctXFUwMDAxRjkz
OSBcVTAwMDFGOTNDLVxVMDAwMUY5M0VdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldK
IHNlcXVlbmNlcworICAgICRFbW9qaUZvck1vZHMgPSBbXHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUy
NzBEIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EgXFUwMDAxRjND
QiBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUwMDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYt
XFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxV
MDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFGNTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAw
MDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAx
RjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMCBcVTAwMDFGOTE4IFxVMDAwMUYz
QzIgXFUwMDAxRjNDNyBcVTAwMDFGM0NDIFxVMDAwMUY1NzQgXFUwMDAxRjU3QSBcVTAwMDFGNkND
IFxVMDAwMUY5MTktXFUwMDAxRjkxRSBcVTAwMDFGOTI2IFxVMDAwMUY5MzAgXFUwMDAxRjkzMy1c
VTAwMDFGOTM5IFxVMDAwMUY5M0MtXFUwMDAxRjkzRV07ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpw
YXRyaWNrIG1vZGlmaWVycworCisjZWxzZQorCisgICAgJEVtb2ppRm9yU2VxcyA9IFtcdTI3NjQg
XFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0OEJdOworICAgICRFbW9qaUZvck1vZHMgPSBb
XHUyNjFEIFx1MjcwQS1cdTI3MEMgXFUwMDAxRjM4NSBcVTAwMDFGM0MzLVxVMDAwMUYzQzQgXFUw
MDAxRjNDNyBcVTAwMDFGM0NBIFxVMDAwMUY0NDItXFUwMDAxRjQ0MyBcVTAwMDFGNDQ2LVxVMDAw
MUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAxRjQ3OCBcVTAwMDFG
NDdDIFxVMDAwMUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRB
QSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYg
XFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYgXFUwMDAxRjZDMF07ICMgRW1vamkgdGhh
dCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworCisjZW5kaWYKKworJEVtb2ppTW9kcyA9IFtc
VTAwMDFGM0ZCLVxVMDAwMUYzRkZdOworJGRpY3Rpb25hcnkgPSBbOkxpbmVCcmVhayA9IENvbXBs
ZXhfQ29udGV4dDpdOworJEFMUGx1cyA9IFskQUwgJEFJICRTQSAkU0cgJFhYXTsKKyRBTGNtID0g
JEFMUGx1cyAkQ00qOworJEJBY20gPSAkQkEgJENNKjsKKyRCQmNtID0gJEJCICRDTSo7CiskQjJj
bSA9ICRCMiAkQ00qOworJENMY20gPSAkQ0wgJENNKjsKKyRDUGNtID0gJENQICRDTSo7CiskRVhj
bSA9ICRFWCAkQ00qOworJEdMY20gPSAkR0wgJENNKjsKKyRITGNtID0gJEhMICRDTSo7CiskSFlj
bSA9ICRIWSAkQ00qOworJEgyY20gPSAkSDIgJENNKjsKKyRIM2NtID0gJEgzICRDTSo7CiskSURj
bSA9ICRJRCAkQ00qOworJElOY20gPSAkSU4gJENNKjsKKyRJU2NtID0gJElTICRDTSo7CiskSkxj
bSA9ICRKTCAkQ00qOworJEpWY20gPSAkSlYgJENNKjsKKyRKVGNtID0gJEpUICRDTSo7CiskTlNj
bSA9ICROUyAkQ00qOworJE5VY20gPSAkTlUgJENNKjsKKyRPUGNtID0gJE9QICRDTSo7CiskUE9j
bSA9ICRQTyAkQ00qOworJFBSY20gPSAkUFIgJENNKjsKKyRRVWNtID0gJFFVICRDTSo7CiskUklj
bSA9ICRSSSAkQ00qOworJFNZY20gPSAkU1kgJENNKjsKKyRXSmNtID0gJFdKICRDTSo7CisKKyEh
Zm9yd2FyZDsKKyRDQU5fQ00gPSBbXiRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07CiskQ0FO
VF9DTSA9IFskU1AgJEJLICRDUiAkTEYgJE5MICRaVyAkQ01dOworJEFMX0ZPTExPV19OT0NNID0g
WyRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsKKyRBTF9GT0xMT1dfQ00gPSBbJENMICRDUCAkRVgg
JEhMICRJUyAkU1kgJFdKICRHTCAkT1AgJFFVICRCQSAkSFkgJE5TICRJTiAkTlUgJEFMUGx1c107
CiskQUxfRk9MTE9XID0gWyRBTF9GT0xMT1dfTk9DTSAkQUxfRk9MTE9XX0NNXTsKKyRMQjRCcmVh
a3MgPSBbJEJLICRDUiAkTEYgJE5MXTsKKyRMQjROb25CcmVha3MgPSBbXiRCSyAkQ1IgJExGICRO
TF07CiskTEI4QnJlYWtzID0gWyRMQjRCcmVha3MgJFpXXTsKKyRMQjhOb25CcmVha3MgPSBbWyRM
QjROb25CcmVha3NdIC0gWyRaV11dOworJExCMThOb25CcmVha3MgPSBbJExCOE5vbkJyZWFrcyAt
IFskU1BdXTsKKyRMQjE4QnJlYWtzID0gWyRMQjhCcmVha3MgJFNQXTsKKyRMQjIwTm9uQnJlYWtz
ID0gWyRMQjE4Tm9uQnJlYWtzIC0gJENCXTsKKyRBTFBsdXMgJENNKzsKKyRCQSAkQ00rOworJEJC
ICRDTSs7CiskQjIgJENNKzsKKyRDTCAkQ00rOworJENQICRDTSs7CiskRVggJENNKzsKKyRHTCAk
Q00rOworJEhMICRDTSs7CiskSFkgJENNKzsKKyRIMiAkQ00rOworJEgzICRDTSs7CiskSUQgJENN
KzsKKyRJTiAkQ00rOworJElTICRDTSs7CiskSkwgJENNKzsKKyRKViAkQ00rOworJEpUICRDTSs7
CiskTlMgJENNKzsKKyROVSAkQ00rOworJE9QICRDTSs7CiskUE8gJENNKzsKKyRQUiAkQ00rOwor
JFFVICRDTSs7CiskUkkgJENNKzsKKyRTWSAkQ00rOworJFdKICRDTSs7CiskQ1IgJExGIHsxMDB9
OworJExCNE5vbkJyZWFrcz8gJExCNEJyZWFrcyB7MTAwfTsKKyRDQU5fQ00gJENNKiAkTEI0QnJl
YWtzIHsxMDB9OworJENNKyAkTEI0QnJlYWtzIHsxMDB9OworJExCNE5vbkJyZWFrcyBbJFNQICRa
V107CiskQ0FOX0NNICRDTSogWyRTUCAkWlddOworJENNKyBbJFNQICRaV107CiskRW1vamlGb3JT
ZXFzICRFbW9qaVZhcj8gJEVtb2ppTW9kcz8gJFpXSiAkRW1vamlGb3JTZXFzOworJENBTl9DTSAk
Q00rOworJENNKzsKKyRDQU5fQ00gJENNKiAkV0pjbTsKKyRMQjhOb25CcmVha3MgJFdKY207Cisk
Q00rICRXSmNtOworJFdKY20gJENBTlRfQ007CiskV0pjbSAkQ0FOX0NNICRDTSo7CiskR0xjbSAk
Q0FOX0NNICRDTSo7CiskR0xjbSAkQ0FOVF9DTTsKK1tbJExCOE5vbkJyZWFrc10gLSBbJFNQICRC
QSAkSFldXSAkQ00qICRHTGNtOworJENNKyBHTGNtOworJExCOE5vbkJyZWFrcyAkQ0w7CiskQ0FO
X0NNICRDTSogJENMOworJENNKyAkQ0w7CiskTEI4Tm9uQnJlYWtzICRDUDsKKyRDQU5fQ00gJENN
KiAkQ1A7CiskQ00rICRDUDsKKyRMQjhOb25CcmVha3MgJEVYOworJENBTl9DTSAkQ00qICRFWDsK
KyRDTSsgJEVYOworJExCOE5vbkJyZWFrcyAkSVM7CiskQ0FOX0NNICRDTSogJElTOworJENNKyAk
SVM7CiskTEI4Tm9uQnJlYWtzICRTWTsKKyRDQU5fQ00gJENNKiAkU1k7CiskQ00rICRTWTsKKyRP
UGNtICRTUCogJENBTl9DTSAkQ00qOworJE9QY20gJFNQKiAkQ0FOVF9DTTsKKyRPUGNtICRTUCsg
JENNKyAkQUxfRk9MTE9XPzsKKyRRVWNtICRTUCogJE9QY207CisoJENMY20gfCAkQ1BjbSkgJFNQ
KiAkTlNjbTsKKyRCMmNtICRTUCogJEIyY207CiskTEIxOE5vbkJyZWFrcyAkQ00qICRRVWNtOwor
JENNKyAkUVVjbTsKKyRRVWNtIC4/OworJFFVY20gJExCMThOb25CcmVha3MgJENNKjsKKyRMQjIw
Tm9uQnJlYWtzICRDTSogKCRCQWNtIHwgJEhZY20gfCAkTlNjbSk7IAorJEJCY20gW14kQ0JdOwor
JEJCY20gJExCMjBOb25CcmVha3MgJENNKjsKKyRITGNtICgkSFljbSB8ICRCQWNtKSBbXiRDQl0/
OworJFNZY20gJEhMY207CisoJEFMY20gfCAkSExjbSkgJElOY207CiskQ00rICRJTmNtOworJEVY
Y20gJElOY207CiskSURjbSAkSU5jbTsKKyRJTmNtICRJTmNtOworJE5VY20gJElOY207CiskSURj
bSAkUE9jbTsKKyRBTGNtICROVWNtOworJEhMY20gJE5VY207CiskQ00rICROVWNtOworJE5VY20g
JEFMY207CiskTlVjbSAkSExjbTsKKyRQUmNtICRJRGNtOworJFBSY20gKCRBTGNtIHwgJEhMY20p
OworJFBPY20gKCRBTGNtIHwgJEhMY20pOworKCRQUmNtIHwgJFBPY20pPyAoJE9QY20gfCAkSFlj
bSk/ICROVWNtICgkTlVjbSB8ICRTWWNtIHwgJElTY20pKiAoJENMY20gfCAkQ1BjbSk/ICgkUFJj
bSB8ICRQT2NtKT87CiskSkxjbSAoJEpMY20gfCAkSlZjbSB8ICRIMmNtIHwgJEgzY20pOworKCRK
VmNtIHwgJEgyY20pICgkSlZjbSB8ICRKVGNtKTsKKygkSlRjbSB8ICRIM2NtKSAkSlRjbTsKKygk
SkxjbSB8ICRKVmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkSU5jbTsKKygkSkxjbSB8ICRK
VmNtIHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKSAkUE9jbTsKKyRQUmNtICgkSkxjbSB8ICRKVmNt
IHwgJEpUY20gfCAkSDJjbSB8ICRIM2NtKTsKKygkQUxjbSB8ICRITGNtKSAoJEFMY20gfCAkSExj
bSk7CiskQ00rICgkQUxjbSB8ICRITGNtKTsKKyRJU2NtICgkQUxjbSB8ICRITGNtKTsKKygkQUxj
bSB8ICRITGNtIHwgJE5VY20pICRPUGNtOworJENNKyAkT1BjbTsKKyRDUGNtICgkQUxjbSB8ICRI
TGNtIHwgJE5VY20pOworCisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkUklj
bSAkUkljbTsKKworI2VuZGlmCisKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2Rz
OworCishIXJldmVyc2U7CiskQ00rICRBTFBsdXM7CiskQ00rICRCQTsKKyRDTSsgJEJCOworJENN
KyAkQjI7CiskQ00rICRDTDsKKyRDTSsgJENQOworJENNKyAkRVg7CiskQ00rICRHTDsKKyRDTSsg
JEhMOworJENNKyAkSFk7CiskQ00rICRIMjsKKyRDTSsgJEgzOworJENNKyAkSUQ7CiskQ00rICRJ
TjsKKyRDTSsgJElTOworJENNKyAkSkw7CiskQ00rICRKVjsKKyRDTSsgJEpUOworJENNKyAkTlM7
CiskQ00rICROVTsKKyRDTSsgJE9QOworJENNKyAkUE87CiskQ00rICRQUjsKKyRDTSsgJFFVOwor
CisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkQ00rICRSSTsKKworI2VuZGlm
CisKKyRDTSsgJFNZOworJENNKyAkV0o7CiskQ00rOworJEFMX0ZPTExPVyAkQ00rIC8gKFskQksg
JENSICRMRiAkTkwgJFpXIHtlb2Z9XSB8ICRTUCsgJENNKyAkU1AgfCAkU1ArICRDTSogKFteJE9Q
ICRDTSAkU1BdIHwgWyRBTCB7ZW9mfV0pKTsKK1skUFJdIC8gJENNKyBbJEJLICRDUiAkTEYgJE5M
ICRaVyAkU1Age2VvZn1dOworJExCNEJyZWFrcyBbJExCNE5vbkJyZWFrcy0kQ01dOworJExCNEJy
ZWFrcyAkQ00rICRDQU5fQ007CiskTEYgJENSOworWyRTUCAkWlddIFskTEI0Tm9uQnJlYWtzLSRD
TV07CitbJFNQICRaV10gJENNKyAkQ0FOX0NNOworJEVtb2ppRm9yU2VxcyAkWldKICRFbW9qaU1v
ZHM/ICRFbW9qaVZhcj8gJEVtb2ppRm9yU2VxczsKKyRDTSsgJENBTl9DTTsKKyRDTSogJFdKICRD
TSogJENBTl9DTTsKKyRDTSogJFdKIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskQ0FOVF9DTSAkQ00q
ICRXSjsKKyRDTSogJENBTl9DTSAkQ00qICRXSjsKKyRDTSogJEdMICRDTSogWyRMQjhOb25CcmVh
a3MtWyRDTSAkU1AgJEJBICRIWV1dOworJENBTlRfQ00gJENNKiAkR0w7CiskQ00qICRDQU5fQ00g
JENNKiAkR0w7CiskQ0wgJENNKyAkQ0FOX0NNOworJENQICRDTSsgJENBTl9DTTsKKyRFWCAkQ00r
ICRDQU5fQ007CiskSVMgJENNKyAkQ0FOX0NNOworJFNZICRDTSsgJENBTl9DTTsKKyRDTCBbJExC
OE5vbkJyZWFrcy0kQ01dOworJENQIFskTEI4Tm9uQnJlYWtzLSRDTV07CiskRVggWyRMQjhOb25C
cmVha3MtJENNXTsKKyRJUyBbJExCOE5vbkJyZWFrcy0kQ01dOworJFNZIFskTEI4Tm9uQnJlYWtz
LSRDTV07CitbJENMICRDUCAkRVggJElTICRTWV0gJENNKyAkU1ArICRDTSogJE9QOyAKKyRDTSog
JENBTl9DTSAkU1AqICRDTSogJE9QOworJENBTlRfQ00gJFNQKiAkQ00qICRPUDsKKyRBTF9GT0xM
T1c/ICRDTSsgJFNQICRTUCogJENNKiAkT1A7CiskQUxfRk9MTE9XX05PQ00gJENNKyAkU1ArICRD
TSogJE9QOworJENNKiAkQUxfRk9MTE9XX0NNICRDTSsgJFNQKyAkQ00qICRPUDsKKyRTWSAkQ00g
JFNQKyAkT1A7CiskQ00qICRPUCAkU1AqICRDTSogJFFVOworJENNKiAkTlMgJFNQKiAkQ00qICgk
Q0wgfCAkQ1ApOworJENNKiAkQjIgJFNQKiAkQ00qICRCMjsKKyRDTSogJFFVICRDTSogJENBTl9D
TTsKKyRDTSogJFFVICRMQjE4Tm9uQnJlYWtzOworJENNKiAkQ0FOX0NNICRDTSogJFFVOworJENB
TlRfQ00gJENNKiAkUVU7CiskQ00qICgkQkEgfCAkSFkgfCAkTlMpICRDTSogWyRMQjIwTm9uQnJl
YWtzLSRDTV07CiskQ00qIFskTEIyME5vbkJyZWFrcy0kQ01dICRDTSogJEJCOworW14kQ0JdICRD
TSogJEJCOworW14kQ0JdICRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7CiskQ00qICRITCAkQ00q
ICRTWTsKKyRDTSogJElOICRDTSogKCRBTFBsdXMgfCAkSEwpOworJENNKiAkSU4gJENNKiAkRVg7
CiskQ00qICRJTiAkQ00qICRJRDsKKyRDTSogJElOICRDTSogJElOOworJENNKiAkSU4gJENNKiAk
TlU7CiskQ00qICRQTyAkQ00qICRJRDsKKyRDTSogJE5VICRDTSogKCRBTFBsdXMgfCAkSEwpOwor
JENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkTlU7CiskQ00qICRJRCAkQ00qICRQUjsKKyRDTSog
KCRBTFBsdXMgfCAkSEwpICRDTSogJFBSOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUE87
CisoJENNKiAoJFBSIHwgJFBPKSk/ICgkQ00qICgkQ0wgfCAkQ1ApKT8gKCRDTSogKCROVSB8ICRJ
UyB8ICRTWSkpKiAkQ00qICROVSAoJENNKiAoJE9QIHwgJEhZKSk/ICgkQ00qICgkUFIgfCAkUE8p
KT87CiskQ00qICgkSDMgfCAkSDIgfCAkSlYgfCAkSkwpICRDTSogJEpMOworJENNKiAoJEpUIHwg
JEpWKSAkQ00qICgkSDIgfCAkSlYpOworJENNKiAkSlQgJENNKiAoJEgzIHwgJEpUKTsKKyRDTSog
JElOICRDTSogKCRIMyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7CiskQ00qICRQTyAkQ00qICgk
SDMgfCAkSDIgfCAkSlQgfCAkSlYgfCAkSkwpOworJENNKiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpW
IHwgJEpMKSAkQ00qICRQUjsKKyRDTSogKCRBTFBsdXMgfCAkSEwpICRDTSogKCRBTFBsdXMgfCAk
SEwpOworJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkSVM7CiskQ00qICRPUCAkQ00qICgkQUxQ
bHVzIHwgJEhMIHwgJE5VKTsKKyRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpICRDTSogJENQOwor
CisjaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCisKKyAgICAkQ00qICRSSSAkQ00qICRSSTsK
KworI2VuZGlmCisKKyRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOworCishIXNh
ZmVfZm9yd2FyZDsKK1skQ00gJE9QICRRVSAkQ0wgJENQICRCMiAkUFIgJEhZICRCQSAkU1AgJGRp
Y3Rpb25hcnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1AgJEIyICRQUiAkSFkgJEJBICRkaWN0aW9u
YXJ5XTsKKyRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OworICAgIAorISFzYWZlX3JldmVyc2U7Cisk
Q00rIFteJENNICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsKKyRDTSsgJFNQIC8gLjsKKyRTUCsg
JENNKiAkT1A7CiskU1ArICRDTSogJFFVOworJFNQKyAkQ00qICgkQ0wgfCAkQ1ApOworJFNQKyAk
Q00qICRCMjsKKyRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7CisoJENNKiAoJElTIHwgJFNZKSkr
ICRDTSogJE5VOworKCRDTCB8ICRDUCkgJENNKiAoJE5VIHwgJElTIHwgJFNZKTsKKyRkaWN0aW9u
YXJ5ICRkaWN0aW9uYXJ5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0IGIvU291cmNlL1dURi93dGYvdGV4
dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yUHJvbG9ndWUudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFiM2Y2NmY0MmFmMTM4ZWQ1OGZmNDIxZjY3NjhkOGZkNTgwMTI4MmMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQ
cm9sb2d1ZS50eHQKQEAgLTAsMCArMSwzOCBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9s
bEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5j
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworISFjaGFpbjsKKyEh
TEJDTU5vQ2hhaW47CishIWxvb2tBaGVhZEhhcmRCcmVhazsKKworI2lmIEhBVkVfRVhUUkFfSUNV
X05BTUVEX1NFVFMKKworICAgICRDSiA9IFs6TGluZUJyZWFrPUNvbmRpdGlvbmFsX0phcGFuZXNl
X1N0YXJ0ZXI6XTsKKworI2Vsc2UKKworICAgICRDSiA9IFtcdTMwNDFcdTMwNDNcdTMwNDVcdTMw
NDdcdTMwNDlcdTMwNjNcdTMwODNcdTMwODVcdTMwODdcdTMwOEVcdTMwOTVcdTMwOTZcdTMwQTFc
dTMwQTNcdTMwQTVcdTMwQTdcdTMwQTlcdTMwQzNcdTMwRTNcdTMwRTVcdTMwRTdcdTMwRUVcdTMw
RjVcdTMwRjZcdTMwRkNcdTMxRjBcdTMxRjFcdTMxRjJcdTMxRjNcdTMxRjRcdTMxRjVcdTMxRjZc
dTMxRjdcdTMxRjhcdTMxRjlcdTMxRkFcdTMxRkJcdTMxRkNcdTMxRkRcdTMxRkVcdTMxRkZcdUZG
NjdcdUZGNjhcdUZGNjlcdUZGNkFcdUZGNkJcdUZGNkNcdUZGNkRcdUZGNkVcdUZGNkZcdUZGNzBd
OworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxl
cy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDdj
MGNhNWFhN2IyZmZiZjhiMmNkOTA5MmFhNWYzZTFkYmE0MDkyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRD
SksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2Rl
Lm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9TVUIgPSBbXHUyMDEw
XHUyMDEzXTsKKyRFWF9TVUIgPSAnJzsKKyRJTl9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJ
U19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUzMDFDXHUzMEEwXTsKKyRQT19TVUIgPSAnJzsKKyRQ
Ul9TVUIgPSAnJzsKKyRJRF9BREQgPSBbJENKICRCQV9TVUIgJE5TX1NVQl07CiskTlNfQUREID0g
Jyc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFk
YjhmMGZmNTE4NTZkOTdjOWMxNGUxMjE2MzczNGZkZmM5N2M5Y2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgx
NExvb3NlQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJ
bmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0g
W1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gW1x1MDAyMVx1MDAzRlx1RkYwMVx1RkYxRl07Cisk
SURfU1VCID0gJyc7CiskSU5fU1VCID0gW1x1MjAyNVx1MjAyNl07CiskSVNfU1VCID0gW1x1MDAz
QVx1MDAzQl07CiskTlNfU1VCID0gW1x1MjAzQ1x1MjA0N1x1MjA0OFx1MjA0OVx1MzAwNVx1MzAx
Q1x1MzAzQlx1MzA5RFx1MzA5RVx1MzBBMFx1MzBGQlx1MzBGRFx1MzBGRVx1RkYxQVx1RkYxQlx1
RkY2NV07CiskUE9fU1VCID0gW1x1MDAyNVx1MDBBMlx1MDBCMFx1MjAzMFx1MjAzMlx1MjAzM1x1
MjEwM1x1RkYwNVx1RkZFMF07CiskUFJfU1VCID0gW1x1MDAyNFx1MDBBM1x1MDBBNVx1MjBBQ1x1
MjExNlx1RkYwNFx1RkZFMVx1RkZFNV07CiskSURfQUREID0gWyRDSiAkQkFfU1VCICRFWF9TVUIg
JElOX1NVQiAkSVNfU1VCICROU19TVUIgJFBPX1NVQiAkUFJfU1VCXTsKKyROU19BREQgPSAnJzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJ
dGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSy50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2NiYmM4YTg4MTVlNGQwZGNmYjk2MGMxMTJmNjBhODM4ZDNhNDI4NAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSksudHh0CkBAIC0wLDAgKzEsMzUgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9s
bCAoa25vbGxAa2RlLm9yZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2Jp
bGUsIEluYy4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
IyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyRCQV9T
VUIgPSAnJzsKKyRFWF9TVUIgPSAnJzsKKyRJRF9TVUIgPSAnJzsKKyRJTl9TVUIgPSBbXHUyMDI1
XHUyMDI2XTsKKyRJU19TVUIgPSAnJzsKKyROU19TVUIgPSBbXHUzMDA1XHUzMDNCXHUzMDlEXHUz
MDlFXHUzMEZEXHUzMEZFXTsKKyRQT19TVUIgPSAnJzsKKyRQUl9TVUIgPSAnJzsKKyRJRF9BREQg
PSBbJENKICRJTl9TVUIgJE5TX1NVQl07CiskTlNfQUREID0gJyc7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNK
Sy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0
b3JVQVgxNE5vbkNKSy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc0Mjg3OWRkMWY4MmViNjJkMjhkOGFhN2Jj
ZGRmNDQ2ZDA3Mzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLLnR4dApAQCAtMCwwICsxLDM1
IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0gJyc7CiskRVhfU1VCID0gJyc7CiskSURfU1VC
ID0gJyc7CiskSU5fU1VCID0gJyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gJyc7CiskUE9f
U1VCID0gJyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gJyc7CiskTlNfQUREID0gWyRDSl07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFr
SXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5n
UnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbENKSy50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA3
YzBjYTVhYTdiMmZmYmY4YjJjZDkwOTJhYTVmM2UxZGJhNDA5MgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0
Tm9ybWFsQ0pLLnR4dApAQCAtMCwwICsxLDM1IEBACisjIChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxlLCBJ
bmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCiskQkFfU1VCID0g
W1x1MjAxMFx1MjAxM107CiskRVhfU1VCID0gJyc7CiskSU5fU1VCID0gJyc7CiskSURfU1VCID0g
Jyc7CiskSVNfU1VCID0gJyc7CiskTlNfU1VCID0gW1x1MzAxQ1x1MzBBMF07CiskUE9fU1VCID0g
Jyc7CiskUFJfU1VCID0gJyc7CiskSURfQUREID0gWyRDSiAkQkFfU1VCICROU19TVUJdOworJE5T
X0FERCA9ICcnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0IGIvU291cmNlL1dURi93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkyY2Y2YTA4MjZhZGE0ZWRjZmNmMzk0M2I2ODlmOGMwNmUwYmQ3NDgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJy
ZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSy50eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0y
MDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisj
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcnOworJElO
X1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOwor
JFBSX1NVQiA9ICcnOworJElEX0FERCA9IFskQ0pdOworJE5TX0FERCA9ICcnOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFY
MTRTdHJpY3RDSksudHh0IGIvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVC
cmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3NDI4NzlkZDFmODJl
YjYyZDI4ZDhhYTdiY2RkZjQ0NmQwNzM4N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKSy50
eHQKQEAgLTAsMCArMSwzNSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3Jn
KQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisj
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NV
QiA9ICcnOworJElEX1NVQiA9ICcnOworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5T
X1NVQiA9ICcnOworJFBPX1NVQiA9ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOwor
JE5TX0FERCA9IFskQ0pdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2lu
Z1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0IGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25D
SksudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY3NDI4NzlkZDFmODJlYjYyZDI4ZDhhYTdiY2RkZjQ0NmQwNzM4
N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMv
TGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSy50eHQKQEAgLTAsMCArMSwzNSBAQAor
IyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykg
MjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworJEJBX1NVQiA9ICcnOworJEVYX1NVQiA9ICcnOworJElEX1NVQiA9ICcn
OworJElOX1NVQiA9ICcnOworJElTX1NVQiA9ICcnOworJE5TX1NVQiA9ICcnOworJFBPX1NVQiA9
ICcnOworJFBSX1NVQiA9ICcnOworJElEX0FERCA9ICcnOworJE5TX0FERCA9IFskQ0pdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcAppbmRleCBiMGRiZTU5N2YzOTFm
MTMyYzI4ZTY0MmY3ZDk3NWIxMTBmNzVmODI2Li41MjcwYTI1OTFhYzliYzgwMDU5M2M1MmQxYjVj
YmE3NTc0NzRhNjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0
ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNw
cApAQCAtMzEsOSArMzEsNiBAQAogI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAotLy8gRklYTUU6IFRoaXMgbmVlZHMgYSBiZXR0
ZXIgbmFtZQotI2RlZmluZSBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElPUykg
fHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDExMDApKQotCiBuYW1lc3BhY2UgV1RGIHsKIAogLy8gSXRlcmF0b3IgaW5pdGlhbGl6YXRpb24K
QEAgLTYxLDYgKzU4LDEyIEBAIHN0YXRpYyBVQnJlYWtJdGVyYXRvciogaW5pdGlhbGl6ZUl0ZXJh
dG9yV2l0aFJ1bGVzKGNvbnN0IGNoYXIqIGJyZWFrUnVsZXMpCiAKICNlbmRpZgogCisjaWYgIVBM
QVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKK1VCcmVha0l0ZXJhdG9yKiBjcmVhdGVJdGVy
YXRvckZvclJ1bGVTZXQoQnJlYWtpbmdSdWxlU2V0KQoreworICAgIHJldHVybiBudWxscHRyOwor
fQorI2VuZGlmCiAKIC8vIEl0ZXJhdG9yIHRleHQgc2V0dGluZwogCkBAIC0xNjQsMTQzICsxNjcs
MjcgQEAgVUJyZWFrSXRlcmF0b3IqIHNlbnRlbmNlQnJlYWtJdGVyYXRvcihTdHJpbmdWaWV3IHN0
cmluZykKICAgICByZXR1cm4gc2V0VGV4dEZvckl0ZXJhdG9yKCpzdGF0aWNTZW50ZW5jZUJyZWFr
SXRlcmF0b3IsIHN0cmluZyk7CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9TKQorc3RhdGljIFVCcmVh
a0l0ZXJhdG9yKiBjcmVhdGVDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKCkKK3sK
KyAgICBpZiAoYXV0byogaXRlcmF0b3IgPSBjcmVhdGVJdGVyYXRvckZvclJ1bGVTZXQoQnJlYWtp
bmdSdWxlU2V0OjpDdXJzb3JNb3ZlbWVudCkpCisgICAgICAgIHJldHVybiBpdGVyYXRvcjsKKyAg
ICByZXR1cm4gaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGN1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcyk7Cit9CisjZW5kaWYKKwogVUJyZWFrSXRlcmF0b3IqIGN1cnNvck1vdmVtZW50SXRl
cmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAvLyBU
aGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBv
ZiBJQ1UgNTcKLSAgICAvLyA8aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1
L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KLSAgICAvLyBUaGUg
bWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93
OgotICAgIC8vICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2lu
Z01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4
dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7Ci0gICAgLy8gKiBSZW1vdmVkIHJ1bGVzIHRo
YXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMg
KEJ1ZyAyNDM0Mik7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3Ig
ZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdlcyBleGNlcHQg
VGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKLSAgICAvLyAqIEFkZGVkIHJ1bGVzIHRoYXQgcHJldmVu
dCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2Fy
YSB2b2ljZWQgbWFya3MuCi0gICAgLy8gKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNh
dG9yIHN5bWJvbHMuCi0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGtSdWxlcyA9Ci0gICAgICAgICIk
Q1IgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07IgotICAgICAgICAi
JExGICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1dOyIKLSAgICAgICAg
IiRDb250cm9sID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJvbH1dOyIKLSAg
ICAgICAgIiRWb2ljZU1hcmtzID0gW1xcdUZGOUVcXHVGRjlGXTsiIC8vIEphcGFuZXNlIGhhbGYt
d2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCi0gICAgICAgICIkRXh0ZW5kICA9IFtcXHB7R3Jh
cGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXFx1MEUzMCBcXHUw
RTMyIFxcdTBFNDUgXFx1MEVCMCBcXHUwRUIyXV07IgotICAgICAgICAiJFNwYWNpbmdNYXJrID0g
W1tcXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31dIC0gJEV4dGVuZF07IgotICAg
ICAgICAiJEwgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMfV07IgotICAg
ICAgICAiJFYgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07IgotICAg
ICAgICAiJFQgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07IgotICAg
ICAgICAiJExWICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOyIKLSAg
ICAgICAgIiRMVlQgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZUfV07Igot
ICAgICAgICAiJEhpbjAgICAgPSBbXFx1MDkwNS1cXHUwOTM5XTsiIC8vIERldmFuYWdhcmkgTGV0
dGVyIEEsLi4uLEhhCi0gICAgICAgICIkSGluViAgICA9IFxcdTA5NEQ7IiAvLyBEZXZhbmFnYXJp
IFNpZ24gVmlyYW1hCi0gICAgICAgICIkSGluMSAgICA9IFtcXHUwOTE1LVxcdTA5MzldOyIgLy8g
RGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkQmVuMCAgICA9IFtcXHUwOTg1
LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRCZW5WICAg
ID0gXFx1MDlDRDsiIC8vIEJlbmdhbGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRCZW4xICAgID0g
W1xcdTA5OTUtXFx1MDlCOV07IiAvLyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEKLSAgICAgICAg
IiRQYW4wICAgID0gW1xcdTBBMDUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4s
SGEKLSAgICAgICAgIiRQYW5WICAgID0gXFx1MEE0RDsiIC8vIEd1cm11a2hpIFNpZ24gVmlyYW1h
Ci0gICAgICAgICIkUGFuMSAgICA9IFtcXHUwQTE1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0
dGVyIEthLC4uLixIYQotICAgICAgICAiJEd1ajAgICAgPSBbXFx1MEE4NS1cXHUwQUI5XTsiIC8v
IEd1amFyYXRpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEd1alYgICAgPSBcXHUwQUNEOyIg
Ly8gR3VqYXJhdGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRHdWoxICAgID0gW1xcdTBBOTUtXFx1
MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkT3JpMCAgICA9
IFtcXHUwQjA1LVxcdTBCMzldOyIgLy8gT3JpeWEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIk
T3JpViAgICA9IFxcdTBCNEQ7IiAvLyBPcml5YSBTaWduIFZpcmFtYQotICAgICAgICAiJE9yaTEg
ICAgPSBbXFx1MEIxNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBLYSwuLi4sSGEKLSAgICAg
ICAgIiRUZWwwICAgID0gW1xcdTBDMDUtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVyIEEsLi4u
LEhhCi0gICAgICAgICIkVGVsViAgICA9IFxcdTBDNEQ7IiAvLyBUZWx1Z3UgU2lnbiBWaXJhbWEK
LSAgICAgICAgIiRUZWwxICAgID0gW1xcdTBDMTQtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0dGVy
IEthLC4uLixIYQotICAgICAgICAiJEthbjAgICAgPSBbXFx1MEM4NS1cXHUwQ0I5XTsiIC8vIEth
bm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkS2FuViAgICA9IFxcdTBDQ0Q7IiAvLyBL
YW5uYWRhIFNpZ24gVmlyYW1hCi0gICAgICAgICIkS2FuMSAgICA9IFtcXHUwQzk1LVxcdTBDQjld
OyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWwwICAgID0gW1xcdTBE
MDUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFs
ViAgICA9IFxcdTBENEQ7IiAvLyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKLSAgICAgICAgIiRNYWwx
ICAgID0gW1xcdTBEMTUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0g
ICAgICAgICIkUkkgICAgICA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IiAvLyBFbW9qaSBy
ZWdpb25hbCBpbmRpY2F0b3JzCi0gICAgICAgICIkWldKICAgICA9IFxcdTIwMEQ7IiAvLyBaZXJv
IHdpZHRoIGpvaW5lcgotICAgICAgICAiJEVtb2ppVmFyID0gW1xcdUZFMEZdOyIgLy8gRW1vamkt
c3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0g
ICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUyNkY5IFxcdTI3NjQg
XFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0EtXFxVMDAwMUYz
Q0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAw
MUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxVMDAwMUY0NzcgXFxV
MDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcgXFxVMDAwMUY0OEIg
XFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2
NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAw
MUY2QjYgXFx1MjY5NS1cXHUyNjk2IFxcdTI3MDggXFxVMDAwMUYzM0UgXFxVMDAwMUYzNzMgXFxV
MDAwMUYzOTMgXFxVMDAwMUYzQTQgXFxVMDAwMUYzQTggXFxVMDAwMUYzRUIgXFxVMDAwMUYzRUQg
XFxVMDAwMUY0QkItXFxVMDAwMUY0QkMgXFxVMDAwMUY1MjcgXFxVMDAwMUY1MkMgXFxVMDAwMUY2
ODAgXFxVMDAwMUY2OTIgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzctXFxVMDAwMUY5MzkgXFxVMDAw
MUY5M0MtXFxVMDAwMUY5M0VdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2Vx
dWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZGOSBcXHUyNzBB
LVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0Eg
XFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYtXFxVMDAwMUY0
NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAw
MUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1NzUgXFxV
MDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcg
XFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQtXFxVMDAwMUY2
QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MTggXFxVMDAwMUYzQzIgXFxVMDAwMUYzQzcgXFxVMDAw
MUYzQ0MgXFxVMDAwMUY1NzQgXFxVMDAwMUY1N0EgXFxVMDAwMUY2Q0MgXFxVMDAwMUY5MTktXFxV
MDAwMUY5MUUgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzAgXFxVMDAwMUY5MzMtXFxVMDAwMUY5Mzkg
XFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmlj
ayBtb2RpZmllcnMKLSNlbHNlCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI3NjQgXFxV
MDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNp
cGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQg
XFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAw
MDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxc
VTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4
IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFG
NDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAw
MDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxc
VTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0j
ZW5kaWYKLSAgICAgICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAwMUYzRkZdOyIg
Ly8gRml0enBhdHJpY2sgbW9kaWZpZXJzCi0gICAgICAgICIhIWNoYWluOyIKLSNpZiBBRERJVElP
TkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEhUklOb0NoYWluOyIKLSNlbmRpZgotICAgICAg
ICAiISFmb3J3YXJkOyIKLSAgICAgICAgIiRDUiAkTEY7IgotICAgICAgICAiJEwgKCRMIHwgJFYg
fCAkTFYgfCAkTFZUKTsiCi0gICAgICAgICIoJExWIHwgJFYpICgkViB8ICRUKTsiCi0gICAgICAg
ICIoJExWVCB8ICRUKSAkVDsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAg
ICIkUkkgJFJJICRFeHRlbmQqIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCo7Igot
ICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAgIlteJENvbnRy
b2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSNlbHNlCi0gICAgICAgICJbXiRDb250cm9sICRD
UiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01h
cms7IgotICAgICAgICAiJFJJICRSSSAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJOyIKLSNlbmRp
ZgotICAgICAgICAiJEhpbjAgJEhpblYgJEhpbjE7IiAvLyBEZXZhbmFnYXJpIFZpcmFtYSAoZm9y
d2FyZCkKLSAgICAgICAgIiRCZW4wICRCZW5WICRCZW4xOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGZv
cndhcmQpCi0gICAgICAgICIkUGFuMCAkUGFuViAkUGFuMTsiIC8vIEd1cm11a2hpIFZpcmFtYSAo
Zm9yd2FyZCkKLSAgICAgICAgIiRHdWowICRHdWpWICRHdWoxOyIgLy8gR3VqYXJhdGkgVmlyYW1h
IChmb3J3YXJkKQotICAgICAgICAiJE9yaTAgJE9yaVYgJE9yaTE7IiAvLyBPcml5YSBWaXJhbWEg
KGZvcndhcmQpCi0gICAgICAgICIkVGVsMCAkVGVsViAkVGVsMTsiIC8vIFRlbHVndSBWaXJhbWEg
KGZvcndhcmQpCi0gICAgICAgICIkS2FuMCAkS2FuViAkS2FuMTsiIC8vIEthbm5hZGEgVmlyYW1h
IChmb3J3YXJkKQotICAgICAgICAiJE1hbDAgJE1hbFYgJE1hbDE7IiAvLyBNYWxheWFsYW0gVmly
YW1hIChmb3J3YXJkKQotICAgICAgICAiJFpXSiAkRW1vamlGb3JTZXFzOyIgLy8gRG9uJ3QgYnJl
YWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlW
YXI/ICRFbW9qaU1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChw
b3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVy
Ci0gICAgICAgICIhIXJldmVyc2U7IgotICAgICAgICAiJExGICRDUjsiCi0gICAgICAgICIoJEwg
fCAkViB8ICRMViB8ICRMVlQpICRMOyIKLSAgICAgICAgIigkViB8ICRUKSAoJExWIHwgJFYpOyIK
LSAgICAgICAgIiRUICgkTFZUIHwgJFQpOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQK
LSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAgICAg
IiRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENS
ICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07IgotI2Vs
c2UKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAg
IiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRSSSAkUkkgLyAk
UkkgJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIkSGluMSAkSGlu
ViAkSGluMDsiIC8vIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRCZW4x
ICRCZW5WICRCZW4wOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJFBh
bjEgJFBhblYgJFBhbjA7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAi
JEd1ajEgJEd1alYgJEd1ajA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAgICAg
ICAiJE9yaTEgJE9yaVYgJE9yaTA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQotICAg
ICAgICAiJFRlbDEgJFRlbFYgJFRlbDA7IiAvLyBUZWx1Z3UgVmlyYW1hIChiYWNrd2FyZCkKLSAg
ICAgICAgIiRLYW4xICRLYW5WICRLYW4wOyIgLy8gS2FubmFkYSBWaXJhbWEgKGJhY2t3YXJkKQot
ICAgICAgICAiJE1hbDEgJE1hbFYgJE1hbDA7IiAvLyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2Fy
ZCkKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgJFpXSjsiIC8vIERvbid0IGJyZWFrIGluIGVtb2pp
IFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAkRW1vamlGb3JN
b2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0
aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotI2lmIEFERElU
SU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAi
JFJJICRSSSs7IgotICAgICAgICAiWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9k
czsiCi0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0gICAg
ICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyI7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvciA9IGNyZWF0ZUN1cnNvck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2soKTsKICNlbHNl
Ci0gICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOyIKLSAgICAg
ICAgIiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IgotICAgICAgICAiISFz
YWZlX3JldmVyc2U7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IjsKLSNlbmRpZgotICAgIHN0
YXRpYyBVQnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRp
YWxpemVJdGVyYXRvcldpdGhSdWxlcyhrUnVsZXMpOwotI2Vsc2UgLy8gUExBVEZPUk0oSU9TKQog
ICAgIC8vIFVzZSB0aGUgc3BlY2lhbCBUaGFpIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBmb3Ig
YWxsIGxvY2FsZXMKLSAgICBzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVt
ZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3IoVUJSS19DSEFSQUNURVIsICJ0aCIpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IHN0YXRpY0N1cnNvck1v
dmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3IoVUJSS19DSEFSQUNURVIsICJ0aCIp
OwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAKLSAgICBpZiAoIXN0YXRpY0N1cnNvck1vdmVt
ZW50SXRlcmF0b3IpCisgICAgaWYgKCFzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yLmdldCgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBzZXRUZXh0Rm9ySXRlcmF0
b3IoKnN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IsIHN0cmluZyk7CisgICAgcmV0dXJuIHNl
dFRleHRGb3JJdGVyYXRvcigqKHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IuZ2V0KCkpLCBz
dHJpbmcpOwogfQogCiBVQnJlYWtJdGVyYXRvciogYWNxdWlyZUxpbmVCcmVha0l0ZXJhdG9yKFN0
cmluZ1ZpZXcgc3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSwgY29uc3QgVUNoYXIq
IHByaW9yQ29udGV4dCwgdW5zaWduZWQgcHJpb3JDb250ZXh0TGVuZ3RoLCBMaW5lQnJlYWtJdGVy
YXRvck1vZGUgbW9kZSwgYm9vbCBpc0NKSykKQEAgLTMxOSw0NDIgKzIwNiwyMCBAQCB2b2lkIHJl
bGVhc2VMaW5lQnJlYWtJdGVyYXRvcihVQnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCiAgICAgTGlu
ZUJyZWFrSXRlcmF0b3JQb29sOjpzaGFyZWRQb29sKCkucHV0KGl0ZXJhdG9yKTsKIH0KIAotc3Rh
dGljIGNvbnN0IGNoYXIqIHVheDE0UHJvbG9ndWUgPQotICAgICIhIWNoYWluOyIKLSAgICAiISFM
QkNNTm9DaGFpbjsiCi0gICAgIiEhbG9va0FoZWFkSGFyZEJyZWFrOyI7Ci0KLXN0YXRpYyBjb25z
dCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQmVmb3JlID0KLSAgICAvLyBleHBsaWNpdGx5IGVudW1l
cmF0ZSAkQ0ogc2luY2UgSUNVIHZlcnNpb25zIHByaW9yIHRvIDQ5IGRvbid0IHN1cHBvcnQgOkxp
bmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOgotICAgICIkQ0ogPSBbIgotI2lm
IChVX0lDVV9WRVJTSU9OX01BSk9SX05VTSA+PSA0KSAmJiAoVV9JQ1VfVkVSU0lPTl9NSU5PUl9O
VU0gPj0gOSkKLSAgICAiOkxpbmVCcmVhaz1Db25kaXRpb25hbF9KYXBhbmVzZV9TdGFydGVyOiIK
LSNlbHNlCi0gICAgIlxcdTMwNDFcXHUzMDQzXFx1MzA0NVxcdTMwNDdcXHUzMDQ5XFx1MzA2M1xc
dTMwODNcXHUzMDg1XFx1MzA4N1xcdTMwOEVcXHUzMDk1XFx1MzA5NlxcdTMwQTFcXHUzMEEzXFx1
MzBBNVxcdTMwQTciCi0gICAgIlxcdTMwQTlcXHUzMEMzXFx1MzBFM1xcdTMwRTVcXHUzMEU3XFx1
MzBFRVxcdTMwRjVcXHUzMEY2XFx1MzBGQyIKLSAgICAiXFx1MzFGMFxcdTMxRjFcXHUzMUYyXFx1
MzFGM1xcdTMxRjRcXHUzMUY1XFx1MzFGNlxcdTMxRjdcXHUzMUY4XFx1MzFGOVxcdTMxRkFcXHUz
MUZCXFx1MzFGQ1xcdTMxRkRcXHUzMUZFXFx1MzFGRiIKLSAgICAiXFx1RkY2N1xcdUZGNjhcXHVG
RjY5XFx1RkY2QVxcdUZGNkJcXHVGRjZDXFx1RkY2RFxcdUZGNkVcXHVGRjZGXFx1RkY3MCIKLSNl
bmRpZgotICAgICJdOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3Vz
dG9tTG9vc2VDSksgPQotICAgICIkQkFfU1VCID0gW1xcdTIwMTBcXHUyMDEzXTsiCi0gICAgIiRF
WF9TVUIgPSBbXFx1MDAyMVxcdTAwM0ZcXHVGRjAxXFx1RkYxRl07IgotICAgICIkSURfU1VCID0g
Jyc7IgotICAgICIkSU5fU1VCID0gW1xcdTIwMjVcXHUyMDI2XTsiCi0gICAgIiRJU19TVUIgPSBb
XFx1MDAzQVxcdTAwM0JdOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUyMDNDXFx1MjA0N1xcdTIwNDhc
XHUyMDQ5XFx1MzAwNVxcdTMwMUNcXHUzMDNCXFx1MzA5RFxcdTMwOUVcXHUzMEEwXFx1MzBGQlxc
dTMwRkRcXHUzMEZFXFx1RkYxQVxcdUZGMUJcXHVGRjY1XTsiCi0gICAgIiRQT19TVUIgPSBbXFx1
MDAyNVxcdTAwQTJcXHUwMEIwXFx1MjAzMFxcdTIwMzJcXHUyMDMzXFx1MjEwM1xcdUZGMDVcXHVG
RkUwXTsiCi0gICAgIiRQUl9TVUIgPSBbXFx1MDAyNFxcdTAwQTNcXHUwMEE1XFx1MjBBQ1xcdTIx
MTZcXHVGRjA0XFx1RkZFMVxcdUZGRTVdOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJEJBX1NVQiAk
RVhfU1VCICRJTl9TVUIgJElTX1NVQiAkTlNfU1VCICRQT19TVUIgJFBSX1NVQl07IgotICAgICIk
TlNfQUREID0gJyc7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0QXNzaWdubWVudHNDdXN0
b21Mb29zZU5vbkNKSyA9Ci0gICAgIiRCQV9TVUIgPSAnJzsiCi0gICAgIiRFWF9TVUIgPSAnJzsi
Ci0gICAgIiRJRF9TVUIgPSAnJzsiCi0gICAgIiRJTl9TVUIgPSBbXFx1MjAyNVxcdTIwMjZdOyIK
LSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDA1XFx1MzAzQlxcdTMw
OURcXHUzMDlFXFx1MzBGRFxcdTMwRkVdOyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBS
X1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9IFskQ0ogJElOX1NVQiAkTlNfU1VCXTsiCi0gICAg
IiROU19BREQgPSAnJzsiOwotCi1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRBc3NpZ25tZW50c0N1
c3RvbU5vcm1hbENKSyA9Ci0gICAgIiRCQV9TVUIgPSBbXFx1MjAxMFxcdTIwMTNdOyIKLSAgICAi
JEVYX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIK
LSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9IFtcXHUzMDFDXFx1MzBBMF07Igot
ICAgICIkUE9fU1VCID0gJyc7IgotICAgICIkUFJfU1VCID0gJyc7IgotICAgICIkSURfQUREID0g
WyRDSiAkQkFfU1VCICROU19TVUJdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBj
b25zdCBjaGFyKiB1YXgxNEFzc2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pLID0KLSAgICAiJEJB
X1NVQiA9ICcnOyIKLSAgICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAg
ICAiJElOX1NVQiA9ICcnOyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcn
OyIKLSAgICAiJFBPX1NVQiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FE
RCA9IFskQ0pdOyIKLSAgICAiJE5TX0FERCA9ICcnOyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1
YXgxNEFzc2lnbm1lbnRzQ3VzdG9tU3RyaWN0Q0pLID0KLSAgICAiJEJBX1NVQiA9ICcnOyIKLSAg
ICAiJEVYX1NVQiA9ICcnOyIKLSAgICAiJElEX1NVQiA9ICcnOyIKLSAgICAiJElOX1NVQiA9ICcn
OyIKLSAgICAiJElTX1NVQiA9ICcnOyIKLSAgICAiJE5TX1NVQiA9ICcnOyIKLSAgICAiJFBPX1NV
QiA9ICcnOyIKLSAgICAiJFBSX1NVQiA9ICcnOyIKLSAgICAiJElEX0FERCA9ICcnOyIKLSAgICAi
JE5TX0FERCA9IFskQ0pdOyI7Ci0KLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmlj
dE5vbkNKSyAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3RDSksKLSNkZWZpbmUgdWF4
MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHRDSksgICAgICAgIHVheDE0QXNzaWdubWVudHNDdXN0
b21Ob3JtYWxDSksKLSNkZWZpbmUgdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHROb25DSksg
ICAgIHVheDE0QXNzaWdubWVudHNDdXN0b21TdHJpY3ROb25DSksKLQotc3RhdGljIGNvbnN0IGNo
YXIqIHVheDE0QXNzaWdubWVudHNBZnRlciA9Ci0gICAgIiRBSSA9IFs6TGluZUJyZWFrID0gQW1i
aWd1b3VzOl07IgotICAgICIkQUwgPSBbOkxpbmVCcmVhayA9IEFscGhhYmV0aWM6XTsiCi0gICAg
IiRCQSA9IFtbOkxpbmVCcmVhayA9IEJyZWFrX0FmdGVyOl0gLSAkQkFfU1VCXTsiCi0gICAgIiRC
QiA9IFs6TGluZUJyZWFrID0gQnJlYWtfQmVmb3JlOl07IgotICAgICIkQksgPSBbOkxpbmVCcmVh
ayA9IE1hbmRhdG9yeV9CcmVhazpdOyIKLSAgICAiJEIyID0gWzpMaW5lQnJlYWsgPSBCcmVha19C
b3RoOl07IgotICAgICIkQ0IgPSBbOkxpbmVCcmVhayA9IENvbnRpbmdlbnRfQnJlYWs6XTsiCi0g
ICAgIiRDTCA9IFs6TGluZUJyZWFrID0gQ2xvc2VfUHVuY3R1YXRpb246XTsiCi0gICAgIiRDTSA9
IFs6TGluZUJyZWFrID0gQ29tYmluaW5nX01hcms6XTsiCi0gICAgIiRDUCA9IFs6TGluZUJyZWFr
ID0gQ2xvc2VfUGFyZW50aGVzaXM6XTsiCi0gICAgIiRDUiA9IFs6TGluZUJyZWFrID0gQ2Fycmlh
Z2VfUmV0dXJuOl07IgotICAgICIkRVggPSBbWzpMaW5lQnJlYWsgPSBFeGNsYW1hdGlvbjpdIC0g
JEVYX1NVQl07IgotICAgICIkR0wgPSBbOkxpbmVCcmVhayA9IEdsdWU6XTsiCi0jaWYgKFVfSUNV
X1ZFUlNJT05fTUFKT1JfTlVNID49IDQpICYmIChVX0lDVV9WRVJTSU9OX01JTk9SX05VTSA+PSA5
KQotICAgICIkSEwgPSBbOkxpbmVCcmVhayA9IEhlYnJld19MZXR0ZXI6XTsiCi0jZWxzZQotICAg
ICIkSEwgPSBbWzpIZWJyZXc6XSAmIFs6TGV0dGVyOl1dOyIKLSNlbmRpZgotICAgICIkSFkgPSBb
OkxpbmVCcmVhayA9IEh5cGhlbjpdOyIKLSAgICAiJEgyID0gWzpMaW5lQnJlYWsgPSBIMjpdOyIK
LSAgICAiJEgzID0gWzpMaW5lQnJlYWsgPSBIMzpdOyIKLSAgICAiJElEID0gW1tbWzpMaW5lQnJl
YWsgPSBJZGVvZ3JhcGhpYzpdIC0gJENKXSAkSURfQUREXSAtICRJRF9TVUJdOyIKLSAgICAiJElO
ID0gW1s6TGluZUJyZWFrID0gSW5zZXBhcmFibGU6XSAtICRJTl9TVUJdOyIKLSAgICAiJElTID0g
W1s6TGluZUJyZWFrID0gSW5maXhfTnVtZXJpYzpdIC0gJElTX1NVQl07IgotICAgICIkSkwgPSBb
OkxpbmVCcmVhayA9IEpMOl07IgotICAgICIkSlYgPSBbOkxpbmVCcmVhayA9IEpWOl07IgotICAg
ICIkSlQgPSBbOkxpbmVCcmVhayA9IEpUOl07IgotICAgICIkTEYgPSBbOkxpbmVCcmVhayA9IExp
bmVfRmVlZDpdOyIKLSAgICAiJE5MID0gWzpMaW5lQnJlYWsgPSBOZXh0X0xpbmU6XTsiCi0gICAg
IiROUyA9IFtbW1s6TGluZUJyZWFrID0gTm9uc3RhcnRlcjpdIC0gJENKXSAkTlNfQUREXSAtICRO
U19TVUJdOyIKLSAgICAiJE5VID0gWzpMaW5lQnJlYWsgPSBOdW1lcmljOl07IgotICAgICIkT1Ag
PSBbOkxpbmVCcmVhayA9IE9wZW5fUHVuY3R1YXRpb246XTsiCi0gICAgIiRQTyA9IFtbOkxpbmVC
cmVhayA9IFBvc3RmaXhfTnVtZXJpYzpdIC0gJFBPX1NVQl07IgotICAgICIkUFIgPSBbWzpMaW5l
QnJlYWsgPSBQcmVmaXhfTnVtZXJpYzpdIC0gJFBSX1NVQl07IgotICAgICIkUVUgPSBbOkxpbmVC
cmVhayA9IFF1b3RhdGlvbjpdOyIKLSAgICAiJFJJID0gW1xcVTAwMDFGMUU2LVxcVTAwMDFGMUZG
XTsiCi0gICAgIiRTQSA9IFs6TGluZUJyZWFrID0gQ29tcGxleF9Db250ZXh0Ol07IgotICAgICIk
U0cgPSBbOkxpbmVCcmVhayA9IFN1cnJvZ2F0ZTpdOyIKLSAgICAiJFNQID0gWzpMaW5lQnJlYWsg
PSBTcGFjZTpdOyIKLSAgICAiJFNZID0gWzpMaW5lQnJlYWsgPSBCcmVha19TeW1ib2xzOl07Igot
ICAgICIkV0ogPSBbOkxpbmVCcmVhayA9IFdvcmRfSm9pbmVyOl07IgotICAgICIkWFggPSBbOkxp
bmVCcmVhayA9IFVua25vd246XTsiCi0gICAgIiRaVyA9IFs6TGluZUJyZWFrID0gWldTcGFjZTpd
OyIKLSAgICAiJFpXSiA9IFxcdTIwMEQ7IgotICAgICIkRW1vamlWYXIgPSBcXHVGRTBGOyIKLSNp
ZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQw
IFxcdTI2NDIgXFx1MjZGOSBcXHUyNzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFG
M0M0IFxcVTAwMDFGM0NBLVxcVTAwMDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAw
MDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxc
VTAwMDFGNDczIFxcVTAwMDFGNDc3IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2
LVxcVTAwMDFGNDg3IFxcVTAwMDFGNDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFG
NjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAw
MDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcdTI2OTUtXFx1MjY5NiBcXHUyNzA4IFxc
VTAwMDFGMzNFIFxcVTAwMDFGMzczIFxcVTAwMDFGMzkzIFxcVTAwMDFGM0E0IFxcVTAwMDFGM0E4
IFxcVTAwMDFGM0VCIFxcVTAwMDFGM0VEIFxcVTAwMDFGNEJCLVxcVTAwMDFGNEJDIFxcVTAwMDFG
NTI3IFxcVTAwMDFGNTJDIFxcVTAwMDFGNjgwIFxcVTAwMDFGNjkyIFxcVTAwMDFGOTI2IFxcVTAw
MDFGOTM3LVxcVTAwMDFGOTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXTsiIC8vIEVtb2ppIHRo
YXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAgICIkRW1vamlGb3JNb2RzID0gW1xc
dTI2MUQgXFx1MjZGOSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxV
MDAwMUYzQzQgXFxVMDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMg
XFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NzggXFxVMDAwMUY0
N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAw
MUY0QUEgXFxVMDAwMUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxV
MDAwMUY2NDUtXFxVMDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMg
XFxVMDAwMUY2QjQtXFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MTggXFxVMDAwMUYz
QzIgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0MgXFxVMDAwMUY1NzQgXFxVMDAwMUY1N0EgXFxVMDAw
MUY2Q0MgXFxVMDAwMUY5MTktXFxVMDAwMUY5MUUgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzAgXFxV
MDAwMUY5MzMtXFxVMDAwMUY5MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdIDsiIC8vIEVtb2pp
IHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKLSNlbHNlCi0gICAgIiRFbW9qaUZvclNl
cXMgPSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IgotICAg
ICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxc
VTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQy
LVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFG
NDY5IFxcVTAwMDFGNDZFLVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAw
MDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxc
VTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEz
IFxcVTAwMDFGNkI0LVxcVTAwMDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRh
a2UgRml0enBhdHJpY2sgbW9kaWZpZXJzCi0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyA9IFtcXFUw
MDAxRjNGQi1cXFUwMDAxRjNGRl07IgotICAgICIkZGljdGlvbmFyeSA9IFs6TGluZUJyZWFrID0g
Q29tcGxleF9Db250ZXh0Ol07IgotICAgICIkQUxQbHVzID0gWyRBTCAkQUkgJFNBICRTRyAkWFhd
OyIKLSAgICAiJEFMY20gPSAkQUxQbHVzICRDTSo7IgotICAgICIkQkFjbSA9ICRCQSAkQ00qOyIK
LSAgICAiJEJCY20gPSAkQkIgJENNKjsiCi0gICAgIiRCMmNtID0gJEIyICRDTSo7IgotICAgICIk
Q0xjbSA9ICRDTCAkQ00qOyIKLSAgICAiJENQY20gPSAkQ1AgJENNKjsiCi0gICAgIiRFWGNtID0g
JEVYICRDTSo7IgotICAgICIkR0xjbSA9ICRHTCAkQ00qOyIKLSAgICAiJEhMY20gPSAkSEwgJENN
KjsiCi0gICAgIiRIWWNtID0gJEhZICRDTSo7IgotICAgICIkSDJjbSA9ICRIMiAkQ00qOyIKLSAg
ICAiJEgzY20gPSAkSDMgJENNKjsiCi0gICAgIiRJRGNtID0gJElEICRDTSo7IgotICAgICIkSU5j
bSA9ICRJTiAkQ00qOyIKLSAgICAiJElTY20gPSAkSVMgJENNKjsiCi0gICAgIiRKTGNtID0gJEpM
ICRDTSo7IgotICAgICIkSlZjbSA9ICRKViAkQ00qOyIKLSAgICAiJEpUY20gPSAkSlQgJENNKjsi
Ci0gICAgIiROU2NtID0gJE5TICRDTSo7IgotICAgICIkTlVjbSA9ICROVSAkQ00qOyIKLSAgICAi
JE9QY20gPSAkT1AgJENNKjsiCi0gICAgIiRQT2NtID0gJFBPICRDTSo7IgotICAgICIkUFJjbSA9
ICRQUiAkQ00qOyIKLSAgICAiJFFVY20gPSAkUVUgJENNKjsiCi0gICAgIiRSSWNtID0gJFJJICRD
TSo7IgotICAgICIkU1ljbSA9ICRTWSAkQ00qOyIKLSAgICAiJFdKY20gPSAkV0ogJENNKjsiOwot
Ci1zdGF0aWMgY29uc3QgY2hhciogdWF4MTRGb3J3YXJkID0KLSAgICAiISFmb3J3YXJkOyIKLSAg
ICAiJENBTl9DTSA9IFteJFNQICRCSyAkQ1IgJExGICROTCAkWlcgJENNXTsiCi0gICAgIiRDQU5U
X0NNID0gWyRTUCAkQksgJENSICRMRiAkTkwgJFpXICRDTV07IgotICAgICIkQUxfRk9MTE9XX05P
Q00gPSBbJEJLICRDUiAkTEYgJE5MICRaVyAkU1BdOyIKLSAgICAiJEFMX0ZPTExPV19DTSA9IFsk
Q0wgJENQICRFWCAkSEwgJElTICRTWSAkV0ogJEdMICRPUCAkUVUgJEJBICRIWSAkTlMgJElOICRO
VSAkQUxQbHVzXTsiCi0gICAgIiRBTF9GT0xMT1cgPSBbJEFMX0ZPTExPV19OT0NNICRBTF9GT0xM
T1dfQ01dOyIKLSAgICAiJExCNEJyZWFrcyA9IFskQksgJENSICRMRiAkTkxdOyIKLSAgICAiJExC
NE5vbkJyZWFrcyA9IFteJEJLICRDUiAkTEYgJE5MXTsiCi0gICAgIiRMQjhCcmVha3MgPSBbJExC
NEJyZWFrcyAkWlddOyIKLSAgICAiJExCOE5vbkJyZWFrcyA9IFtbJExCNE5vbkJyZWFrc10gLSBb
JFpXXV07IgotICAgICIkTEIxOE5vbkJyZWFrcyA9IFskTEI4Tm9uQnJlYWtzIC0gWyRTUF1dOyIK
LSAgICAiJExCMThCcmVha3MgPSBbJExCOEJyZWFrcyAkU1BdOyIKLSAgICAiJExCMjBOb25CcmVh
a3MgPSBbJExCMThOb25CcmVha3MgLSAkQ0JdOyIKLSAgICAiJEFMUGx1cyAkQ00rOyIKLSAgICAi
JEJBICRDTSs7IgotICAgICIkQkIgJENNKzsiCi0gICAgIiRCMiAkQ00rOyIKLSAgICAiJENMICRD
TSs7IgotICAgICIkQ1AgJENNKzsiCi0gICAgIiRFWCAkQ00rOyIKLSAgICAiJEdMICRDTSs7Igot
ICAgICIkSEwgJENNKzsiCi0gICAgIiRIWSAkQ00rOyIKLSAgICAiJEgyICRDTSs7IgotICAgICIk
SDMgJENNKzsiCi0gICAgIiRJRCAkQ00rOyIKLSAgICAiJElOICRDTSs7IgotICAgICIkSVMgJENN
KzsiCi0gICAgIiRKTCAkQ00rOyIKLSAgICAiJEpWICRDTSs7IgotICAgICIkSlQgJENNKzsiCi0g
ICAgIiROUyAkQ00rOyIKLSAgICAiJE5VICRDTSs7IgotICAgICIkT1AgJENNKzsiCi0gICAgIiRQ
TyAkQ00rOyIKLSAgICAiJFBSICRDTSs7IgotICAgICIkUVUgJENNKzsiCi0gICAgIiRSSSAkQ00r
OyIKLSAgICAiJFNZICRDTSs7IgotICAgICIkV0ogJENNKzsiCi0gICAgIiRDUiAkTEYgezEwMH07
IgotICAgICIkTEI0Tm9uQnJlYWtzPyAkTEI0QnJlYWtzIHsxMDB9OyIKLSAgICAiJENBTl9DTSAk
Q00qICRMQjRCcmVha3MgezEwMH07IgotICAgICIkQ00rICRMQjRCcmVha3MgezEwMH07IgotICAg
ICIkTEI0Tm9uQnJlYWtzIFskU1AgJFpXXTsiCi0gICAgIiRDQU5fQ00gJENNKiBbJFNQICRaV107
IgotICAgICIkQ00rIFskU1AgJFpXXTsiCi0gICAgIiRFbW9qaUZvclNlcXMgJEVtb2ppVmFyPyAk
RW1vamlNb2RzPyAkWldKICRFbW9qaUZvclNlcXM7IgotICAgICIkQ0FOX0NNICRDTSs7IgotICAg
ICIkQ00rOyIKLSAgICAiJENBTl9DTSAkQ00qICRXSmNtOyIKLSAgICAiJExCOE5vbkJyZWFrcyAk
V0pjbTsiCi0gICAgIiRDTSsgJFdKY207IgotICAgICIkV0pjbSAkQ0FOVF9DTTsiCi0gICAgIiRX
SmNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNtICRDQU5fQ00gJENNKjsiCi0gICAgIiRHTGNt
ICRDQU5UX0NNOyIKLSAgICAiW1skTEI4Tm9uQnJlYWtzXSAtIFskU1AgJEJBICRIWV1dICRDTSog
JEdMY207IgotICAgICIkQ00rIEdMY207IgotICAgICIkTEI4Tm9uQnJlYWtzICRDTDsiCi0gICAg
IiRDQU5fQ00gJENNKiAkQ0w7IgotICAgICIkQ00rICRDTDsiCi0gICAgIiRMQjhOb25CcmVha3Mg
JENQOyIKLSAgICAiJENBTl9DTSAkQ00qICRDUDsiCi0gICAgIiRDTSsgJENQOyIKLSAgICAiJExC
OE5vbkJyZWFrcyAkRVg7IgotICAgICIkQ0FOX0NNICRDTSogJEVYOyIKLSAgICAiJENNKyAkRVg7
IgotICAgICIkTEI4Tm9uQnJlYWtzICRJUzsiCi0gICAgIiRDQU5fQ00gJENNKiAkSVM7IgotICAg
ICIkQ00rICRJUzsiCi0gICAgIiRMQjhOb25CcmVha3MgJFNZOyIKLSAgICAiJENBTl9DTSAkQ00q
ICRTWTsiCi0gICAgIiRDTSsgJFNZOyIKLSAgICAiJE9QY20gJFNQKiAkQ0FOX0NNICRDTSo7Igot
ICAgICIkT1BjbSAkU1AqICRDQU5UX0NNOyIKLSAgICAiJE9QY20gJFNQKyAkQ00rICRBTF9GT0xM
T1c/OyIKLSAgICAiJFFVY20gJFNQKiAkT1BjbTsiCi0gICAgIigkQ0xjbSB8ICRDUGNtKSAkU1Aq
ICROU2NtOyIKLSAgICAiJEIyY20gJFNQKiAkQjJjbTsiCi0gICAgIiRMQjE4Tm9uQnJlYWtzICRD
TSogJFFVY207IgotICAgICIkQ00rICRRVWNtOyIKLSAgICAiJFFVY20gLj87IgotICAgICIkUVVj
bSAkTEIxOE5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJExCMjBOb25CcmVha3MgJENNKiAoJEJBY20g
fCAkSFljbSB8ICROU2NtKTsgIgotICAgICIkQkJjbSBbXiRDQl07IgotICAgICIkQkJjbSAkTEIy
ME5vbkJyZWFrcyAkQ00qOyIKLSAgICAiJEhMY20gKCRIWWNtIHwgJEJBY20pIFteJENCXT87Igot
ICAgICIkU1ljbSAkSExjbTsiCi0gICAgIigkQUxjbSB8ICRITGNtKSAkSU5jbTsiCi0gICAgIiRD
TSsgJElOY207IgotICAgICIkRVhjbSAkSU5jbTsiCi0gICAgIiRJRGNtICRJTmNtOyIKLSAgICAi
JElOY20gJElOY207IgotICAgICIkTlVjbSAkSU5jbTsiCi0gICAgIiRJRGNtICRQT2NtOyIKLSAg
ICAiJEFMY20gJE5VY207IgotICAgICIkSExjbSAkTlVjbTsiCi0gICAgIiRDTSsgJE5VY207Igot
ICAgICIkTlVjbSAkQUxjbTsiCi0gICAgIiROVWNtICRITGNtOyIKLSAgICAiJFBSY20gJElEY207
IgotICAgICIkUFJjbSAoJEFMY20gfCAkSExjbSk7IgotICAgICIkUE9jbSAoJEFMY20gfCAkSExj
bSk7IgotICAgICIoJFBSY20gfCAkUE9jbSk/ICgkT1BjbSB8ICRIWWNtKT8gJE5VY20gKCROVWNt
IHwgJFNZY20gfCAkSVNjbSkqICgkQ0xjbSB8ICRDUGNtKT8gKCRQUmNtIHwgJFBPY20pPzsiCi0g
ICAgIiRKTGNtICgkSkxjbSB8ICRKVmNtIHwgJEgyY20gfCAkSDNjbSk7IgotICAgICIoJEpWY20g
fCAkSDJjbSkgKCRKVmNtIHwgJEpUY20pOyIKLSAgICAiKCRKVGNtIHwgJEgzY20pICRKVGNtOyIK
LSAgICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRJTmNtOyIKLSAg
ICAiKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pICRQT2NtOyIKLSAgICAi
JFBSY20gKCRKTGNtIHwgJEpWY20gfCAkSlRjbSB8ICRIMmNtIHwgJEgzY20pOyIKLSAgICAiKCRB
TGNtIHwgJEhMY20pICgkQUxjbSB8ICRITGNtKTsiCi0gICAgIiRDTSsgKCRBTGNtIHwgJEhMY20p
OyIKLSAgICAiJElTY20gKCRBTGNtIHwgJEhMY20pOyIKLSAgICAiKCRBTGNtIHwgJEhMY20gfCAk
TlVjbSkgJE9QY207IgotICAgICIkQ00rICRPUGNtOyIKLSAgICAiJENQY20gKCRBTGNtIHwgJEhM
Y20gfCAkTlVjbSk7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkUkljbSAk
UkljbTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppRm9yTW9kcyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7
IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0UmV2ZXJzZSA9Ci0gICAgIiEhcmV2ZXJzZTsi
Ci0gICAgIiRDTSsgJEFMUGx1czsiCi0gICAgIiRDTSsgJEJBOyIKLSAgICAiJENNKyAkQkI7Igot
ICAgICIkQ00rICRCMjsiCi0gICAgIiRDTSsgJENMOyIKLSAgICAiJENNKyAkQ1A7IgotICAgICIk
Q00rICRFWDsiCi0gICAgIiRDTSsgJEdMOyIKLSAgICAiJENNKyAkSEw7IgotICAgICIkQ00rICRI
WTsiCi0gICAgIiRDTSsgJEgyOyIKLSAgICAiJENNKyAkSDM7IgotICAgICIkQ00rICRJRDsiCi0g
ICAgIiRDTSsgJElOOyIKLSAgICAiJENNKyAkSVM7IgotICAgICIkQ00rICRKTDsiCi0gICAgIiRD
TSsgJEpWOyIKLSAgICAiJENNKyAkSlQ7IgotICAgICIkQ00rICROUzsiCi0gICAgIiRDTSsgJE5V
OyIKLSAgICAiJENNKyAkT1A7IgotICAgICIkQ00rICRQTzsiCi0gICAgIiRDTSsgJFBSOyIKLSAg
ICAiJENNKyAkUVU7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICIkQ00rICRS
STsiCi0jZW5kaWYKLSAgICAiJENNKyAkU1k7IgotICAgICIkQ00rICRXSjsiCi0gICAgIiRDTSs7
IgotICAgICIkQUxfRk9MTE9XICRDTSsgLyAoWyRCSyAkQ1IgJExGICROTCAkWlcge2VvZn1dIHwg
JFNQKyAkQ00rICRTUCB8ICRTUCsgJENNKiAoW14kT1AgJENNICRTUF0gfCBbJEFMIHtlb2Z9XSkp
OyIKLSAgICAiWyRQUl0gLyAkQ00rIFskQksgJENSICRMRiAkTkwgJFpXICRTUCB7ZW9mfV07Igot
ICAgICIkTEI0QnJlYWtzIFskTEI0Tm9uQnJlYWtzLSRDTV07IgotICAgICIkTEI0QnJlYWtzICRD
TSsgJENBTl9DTTsiCi0gICAgIiRMRiAkQ1I7IgotICAgICJbJFNQICRaV10gWyRMQjROb25CcmVh
a3MtJENNXTsiCi0gICAgIlskU1AgJFpXXSAkQ00rICRDQU5fQ007IgotICAgICIkRW1vamlGb3JT
ZXFzICRaV0ogJEVtb2ppTW9kcz8gJEVtb2ppVmFyPyAkRW1vamlGb3JTZXFzOyIKLSAgICAiJENN
KyAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0ogJENNKiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkV0og
WyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRDQU5UX0NNICRDTSogJFdKOyIKLSAgICAiJENN
KiAkQ0FOX0NNICRDTSogJFdKOyIKLSAgICAiJENNKiAkR0wgJENNKiBbJExCOE5vbkJyZWFrcy1b
JENNICRTUCAkQkEgJEhZXV07IgotICAgICIkQ0FOVF9DTSAkQ00qICRHTDsiCi0gICAgIiRDTSog
JENBTl9DTSAkQ00qICRHTDsiCi0gICAgIiRDTCAkQ00rICRDQU5fQ007IgotICAgICIkQ1AgJENN
KyAkQ0FOX0NNOyIKLSAgICAiJEVYICRDTSsgJENBTl9DTTsiCi0gICAgIiRJUyAkQ00rICRDQU5f
Q007IgotICAgICIkU1kgJENNKyAkQ0FOX0NNOyIKLSAgICAiJENMIFskTEI4Tm9uQnJlYWtzLSRD
TV07IgotICAgICIkQ1AgWyRMQjhOb25CcmVha3MtJENNXTsiCi0gICAgIiRFWCBbJExCOE5vbkJy
ZWFrcy0kQ01dOyIKLSAgICAiJElTIFskTEI4Tm9uQnJlYWtzLSRDTV07IgotICAgICIkU1kgWyRM
QjhOb25CcmVha3MtJENNXTsiCi0gICAgIlskQ0wgJENQICRFWCAkSVMgJFNZXSAkQ00rICRTUCsg
JENNKiAkT1A7ICIKLSAgICAiJENNKiAkQ0FOX0NNICRTUCogJENNKiAkT1A7IgotICAgICIkQ0FO
VF9DTSAkU1AqICRDTSogJE9QOyIKLSAgICAiJEFMX0ZPTExPVz8gJENNKyAkU1AgJFNQKiAkQ00q
ICRPUDsiCi0gICAgIiRBTF9GT0xMT1dfTk9DTSAkQ00rICRTUCsgJENNKiAkT1A7IgotICAgICIk
Q00qICRBTF9GT0xMT1dfQ00gJENNKyAkU1ArICRDTSogJE9QOyIKLSAgICAiJFNZICRDTSAkU1Ar
ICRPUDsiCi0gICAgIiRDTSogJE9QICRTUCogJENNKiAkUVU7IgotICAgICIkQ00qICROUyAkU1Aq
ICRDTSogKCRDTCB8ICRDUCk7IgotICAgICIkQ00qICRCMiAkU1AqICRDTSogJEIyOyIKLSAgICAi
JENNKiAkUVUgJENNKiAkQ0FOX0NNOyIKLSAgICAiJENNKiAkUVUgJExCMThOb25CcmVha3M7Igot
ICAgICIkQ00qICRDQU5fQ00gJENNKiAkUVU7IgotICAgICIkQ0FOVF9DTSAkQ00qICRRVTsiCi0g
ICAgIiRDTSogKCRCQSB8ICRIWSB8ICROUykgJENNKiBbJExCMjBOb25CcmVha3MtJENNXTsiCi0g
ICAgIiRDTSogWyRMQjIwTm9uQnJlYWtzLSRDTV0gJENNKiAkQkI7IgotICAgICJbXiRDQl0gJENN
KiAkQkI7IgotICAgICJbXiRDQl0gJENNKiAoJEhZIHwgJEJBKSAkQ00qICRITDsiCi0gICAgIiRD
TSogJEhMICRDTSogJFNZOyIKLSAgICAiJENNKiAkSU4gJENNKiAoJEFMUGx1cyB8ICRITCk7Igot
ICAgICIkQ00qICRJTiAkQ00qICRFWDsiCi0gICAgIiRDTSogJElOICRDTSogJElEOyIKLSAgICAi
JENNKiAkSU4gJENNKiAkSU47IgotICAgICIkQ00qICRJTiAkQ00qICROVTsiCi0gICAgIiRDTSog
JFBPICRDTSogJElEOyIKLSAgICAiJENNKiAkTlUgJENNKiAoJEFMUGx1cyB8ICRITCk7IgotICAg
ICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICROVTsiCi0gICAgIiRDTSogJElEICRDTSogJFBS
OyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAkUFI7IgotICAgICIkQ00qICgkQUxQ
bHVzIHwgJEhMKSAkQ00qICRQTzsiCi0gICAgIigkQ00qICgkUFIgfCAkUE8pKT8gKCRDTSogKCRD
TCB8ICRDUCkpPyAoJENNKiAoJE5VIHwgJElTIHwgJFNZKSkqICRDTSogJE5VICgkQ00qICgkT1Ag
fCAkSFkpKT8gKCRDTSogKCRQUiB8ICRQTykpPzsiCi0gICAgIiRDTSogKCRIMyB8ICRIMiB8ICRK
ViB8ICRKTCkgJENNKiAkSkw7IgotICAgICIkQ00qICgkSlQgfCAkSlYpICRDTSogKCRIMiB8ICRK
Vik7IgotICAgICIkQ00qICRKVCAkQ00qICgkSDMgfCAkSlQpOyIKLSAgICAiJENNKiAkSU4gJENN
KiAoJEgzIHwgJEgyIHwgJEpUIHwgJEpWIHwgJEpMKTsiCi0gICAgIiRDTSogJFBPICRDTSogKCRI
MyB8ICRIMiB8ICRKVCB8ICRKViB8ICRKTCk7IgotICAgICIkQ00qICgkSDMgfCAkSDIgfCAkSlQg
fCAkSlYgfCAkSkwpICRDTSogJFBSOyIKLSAgICAiJENNKiAoJEFMUGx1cyB8ICRITCkgJENNKiAo
JEFMUGx1cyB8ICRITCk7IgotICAgICIkQ00qICgkQUxQbHVzIHwgJEhMKSAkQ00qICRJUzsiCi0g
ICAgIiRDTSogJE9QICRDTSogKCRBTFBsdXMgfCAkSEwgfCAkTlUpOyIKLSAgICAiJENNKiAoJEFM
UGx1cyB8ICRITCB8ICROVSkgJENNKiAkQ1A7IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAotICAgICIkQ00qICRSSSAkQ00qICRSSTsiCi0jZW5kaWYKLSAgICAiJEVtb2ppTW9kcyAkRW1v
amlWYXI/ICRFbW9qaUZvck1vZHM7IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIHVheDE0U2FmZUZv
cndhcmQgPQotICAgICIhIXNhZmVfZm9yd2FyZDsiCi0gICAgIlskQ00gJE9QICRRVSAkQ0wgJENQ
ICRCMiAkUFIgJEhZICRCQSAkU1AgJGRpY3Rpb25hcnldKyBbXiRDTSAkT1AgJFFVICRDTCAkQ1Ag
JEIyICRQUiAkSFkgJEJBICRkaWN0aW9uYXJ5XTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9u
YXJ5OyI7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB1YXgxNFNhZmVSZXZlcnNlID0KLSAgICAiISFz
YWZlX3JldmVyc2U7IgotICAgICIkQ00rIFteJENNICRCSyAkQ1IgJExGICROTCAkWlcgJFNQXTsi
Ci0gICAgIiRDTSsgJFNQIC8gLjsiCi0gICAgIiRTUCsgJENNKiAkT1A7IgotICAgICIkU1ArICRD
TSogJFFVOyIKLSAgICAiJFNQKyAkQ00qICgkQ0wgfCAkQ1ApOyIKLSAgICAiJFNQKyAkQ00qICRC
MjsiCi0gICAgIiRDTSogKCRIWSB8ICRCQSkgJENNKiAkSEw7IgotICAgICIoJENNKiAoJElTIHwg
JFNZKSkrICRDTSogJE5VOyIKLSAgICAiKCRDTCB8ICRDUCkgJENNKiAoJE5VIHwgJElTIHwgJFNZ
KTsiCi0gICAgIiRkaWN0aW9uYXJ5ICRkaWN0aW9uYXJ5OyI7Ci0KIHN0YXRpYyBTdHJpbmcgbWFw
TGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMoTGluZUJyZWFrSXRlcmF0b3JNb2RlIG1vZGUsIGJvb2wg
aXNDSkspCiB7Ci0gICAgU3RyaW5nQnVpbGRlciBydWxlc0J1aWxkZXI7Ci0gICAgcnVsZXNCdWls
ZGVyLmFwcGVuZCh1YXgxNFByb2xvZ3VlKTsKLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0
QXNzaWdubWVudHNCZWZvcmUpOwogICAgIHN3aXRjaCAobW9kZSkgewogICAgIGNhc2UgTGluZUJy
ZWFrSXRlcmF0b3JNb2RlOjpEZWZhdWx0OgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlz
Q0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3RvbURlZmF1bHRDSksgOiB1YXgxNEFzc2lnbm1lbnRz
Q3VzdG9tRGVmYXVsdE5vbkNKSyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gaXND
SksgPyBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Q0pLUnVsZXMgOiBsaW5lQnJlYWtJdGVyYXRvclVB
WDE0Tm9uQ0pLUnVsZXM7CiAgICAgY2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Okxvb3NlOgot
ICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8gdWF4MTRBc3NpZ25tZW50c0N1c3Rv
bUxvb3NlQ0pLIDogdWF4MTRBc3NpZ25tZW50c0N1c3RvbUxvb3NlTm9uQ0pLKTsKLSAgICAgICAg
YnJlYWs7CisgICAgICAgIHJldHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29z
ZUNKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLUnVsZXM7CiAgICAg
Y2FzZSBMaW5lQnJlYWtJdGVyYXRvck1vZGU6Ok5vcm1hbDoKLSAgICAgICAgcnVsZXNCdWlsZGVy
LmFwcGVuZChpc0NKSyA/IHVheDE0QXNzaWdubWVudHNDdXN0b21Ob3JtYWxDSksgOiB1YXgxNEFz
c2lnbm1lbnRzQ3VzdG9tTm9ybWFsTm9uQ0pLKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJl
dHVybiBpc0NKSyA/IGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSktSdWxlcyA6IGxpbmVC
cmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSktSdWxlczsKICAgICBjYXNlIExpbmVCcmVha0l0
ZXJhdG9yTW9kZTo6U3RyaWN0OgotICAgICAgICBydWxlc0J1aWxkZXIuYXBwZW5kKGlzQ0pLID8g
dWF4MTRBc3NpZ25tZW50c0N1c3RvbVN0cmljdENKSyA6IHVheDE0QXNzaWdubWVudHNDdXN0b21T
dHJpY3ROb25DSkspOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIGlzQ0pLID8gbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdENKS1J1bGVzIDogbGluZUJyZWFrSXRlcmF0b3JVQVgx
NFN0cmljdE5vbkNKS1J1bGVzOwogICAgIH0KLSAgICBydWxlc0J1aWxkZXIuYXBwZW5kKHVheDE0
QXNzaWdubWVudHNBZnRlcik7Ci0gICAgcnVsZXNCdWlsZGVyLmFwcGVuZCh1YXgxNEZvcndhcmQp
OwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4MTRSZXZlcnNlKTsKLSAgICBydWxlc0J1aWxk
ZXIuYXBwZW5kKHVheDE0U2FmZUZvcndhcmQpOwotICAgIHJ1bGVzQnVpbGRlci5hcHBlbmQodWF4
MTRTYWZlUmV2ZXJzZSk7Ci0gICAgcmV0dXJuIHJ1bGVzQnVpbGRlci50b1N0cmluZygpOworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAiIjsKIH0KIAogLy8gUmVjb2duaXpl
IEJDUDQ3IGNvbXBsaWFudCBwcmltYXJ5IGxhbmd1YWdlIHZhbHVlcyBvZiAnemgnLCAnamEnLCAn
a28nCkBAIC03ODgsOSArMjUzLDI5IEBAIFVCcmVha0l0ZXJhdG9yKiBvcGVuTGluZUJyZWFrSXRl
cmF0b3IoY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUsIExpbmVCcmVha0l0ZXJhCiAgICAgaWYg
KG1vZGUgPT0gTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpEZWZhdWx0KQogICAgICAgICB1YnJrSXRl
ciA9IHVicmtfb3BlbihVQlJLX0xJTkUsIGxvY2FsZUlzRW1wdHkgPyBjdXJyZW50VGV4dEJyZWFr
TG9jYWxlSUQoKSA6IGxvY2FsZS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCAwLCAwLCAmb3BlblN0
YXR1cyk7CiAgICAgZWxzZSB7Ci0gICAgICAgIFVQYXJzZUVycm9yIHBhcnNlU3RhdHVzOwotICAg
ICAgICBhdXRvIHJ1bGVzID0gbWFwTGluZUl0ZXJhdG9yTW9kZVRvUnVsZXMobW9kZSwgaXNDSksp
OwotICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlblJ1bGVzKFN0cmluZ1ZpZXcocnVsZXMpLnVw
Y29udmVydGVkQ2hhcmFjdGVycygpLCBydWxlcy5sZW5ndGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVz
LCAmb3BlblN0YXR1cyk7CisgICAgICAgIEJyZWFraW5nUnVsZVNldCBydWxlU2V0ID0gQnJlYWtp
bmdSdWxlU2V0OjpVQVgxNE5vbkNKSzsKKyAgICAgICAgc3dpdGNoIChtb2RlKSB7CisgICAgICAg
IGNhc2UgTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpEZWZhdWx0OgorICAgICAgICAgICAgcnVsZVNl
dCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpVQVgxNENKSyA6IEJyZWFraW5nUnVsZVNldDo6
VUFYMTROb25DSks7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMaW5lQnJlYWtJ
dGVyYXRvck1vZGU6Okxvb3NlOgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtp
bmdSdWxlU2V0OjpVQVgxNExvb3NlQ0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNExvb3NlTm9u
Q0pLOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTGluZUJyZWFrSXRlcmF0b3JN
b2RlOjpOb3JtYWw6CisgICAgICAgICAgICBydWxlU2V0ID0gaXNDSksgPyBCcmVha2luZ1J1bGVT
ZXQ6OlVBWDE0Tm9ybWFsQ0pLIDogQnJlYWtpbmdSdWxlU2V0OjpVQVgxNE5vcm1hbE5vbkNKSzsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExpbmVCcmVha0l0ZXJhdG9yTW9kZTo6
U3RyaWN0OgorICAgICAgICAgICAgcnVsZVNldCA9IGlzQ0pLID8gQnJlYWtpbmdSdWxlU2V0OjpV
QVgxNFN0cmljdENKSyA6IEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJpY3ROb25DSks7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhdXRvKiBpdGVyYXRvciA9
IGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChydWxlU2V0KSkKKyAgICAgICAgICAgIHVicmtJdGVy
ID0gcmVpbnRlcnByZXRfY2FzdDxVQnJlYWtJdGVyYXRvcio+KGl0ZXJhdG9yKTsKKyAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICBVUGFyc2VFcnJvciBwYXJzZVN0YXR1czsKKyAgICAgICAgICAg
IGF1dG8gcnVsZXMgPSBtYXBMaW5lSXRlcmF0b3JNb2RlVG9SdWxlcyhtb2RlLCBpc0NKSyk7Cisg
ICAgICAgICAgICB1YnJrSXRlciA9IHVicmtfb3BlblJ1bGVzKFN0cmluZ1ZpZXcocnVsZXMpLnVw
Y29udmVydGVkQ2hhcmFjdGVycygpLCBydWxlcy5sZW5ndGgoKSwgMCwgMCwgJnBhcnNlU3RhdHVz
LCAmb3BlblN0YXR1cyk7CisgICAgICAgIH0KICAgICB9CiAgICAgLy8gbG9jYWxlIGNvbWVzIGZy
b20gYSB3ZWIgcGFnZSBhbmQgaXQgY2FuIGJlIGludmFsaWQsIGxlYWRpbmcgSUNVCiAgICAgLy8g
dG8gZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgbG9jYWxl
LgpAQCAtODExLDYgKzI5Niw3IEBAIHZvaWQgY2xvc2VMaW5lQnJlYWtJdGVyYXRvcihVQnJlYWtJ
dGVyYXRvciomIGl0ZXJhdG9yKQogewogICAgIFVCcmVha0l0ZXJhdG9yKiB1YnJrSXRlciA9IGl0
ZXJhdG9yOwogICAgIEFTU0VSVCh1YnJrSXRlcik7CisgICAgLy8gRklYTUU6IFVzZSBSQUlJIHRv
IGRvIHRoaXMgaW5zdGVhZC4KICAgICB1YnJrX2Nsb3NlKHVicmtJdGVyKTsKICAgICBpdGVyYXRv
ciA9IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVh
a0l0ZXJhdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKaW5k
ZXggYmNmNDRjMDdhNGVjOTFiNTE0NjdjMjRmNGZlNzE2ZWQzNGRiY2MxNS4uYjY5NGI5MjNhMzRm
NDAwMzNkNDY0YjgzMGNjMzUzNGVlZDkzZWMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
dGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJy
ZWFrSXRlcmF0b3IuaApAQCAtMjksNiArMjksNDAgQEAgbmFtZXNwYWNlIFdURiB7CiAKIGVudW0g
Y2xhc3MgTGluZUJyZWFrSXRlcmF0b3JNb2RlIHsgRGVmYXVsdCwgTG9vc2UsIE5vcm1hbCwgU3Ry
aWN0IH07CiAKK2VudW0gY2xhc3MgQnJlYWtpbmdSdWxlU2V0IHsKKyAgICBDdXJzb3JNb3ZlbWVu
dCwKKyAgICBVQVgxNENKSywKKyAgICBVQVgxNE5vbkNKSywKKyAgICBVQVgxNExvb3NlQ0pLLAor
ICAgIFVBWDE0TG9vc2VOb25DSkssCisgICAgVUFYMTROb3JtYWxDSkssCisgICAgVUFYMTROb3Jt
YWxOb25DSkssCisgICAgVUFYMTRTdHJpY3RDSkssCisgICAgVUFYMTRTdHJpY3ROb25DSksKK307
CisKK2V4dGVybiBjb25zdCBjaGFyKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXM7CitleHRl
cm4gY29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNENKS1J1bGVzOworZXh0ZXJuIGNv
bnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSktSdWxlczsKK2V4dGVybiBjb25z
dCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSktSdWxlczsKK2V4dGVybiBjb25z
dCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSktSdWxlczsKK2V4dGVybiBj
b25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLUnVsZXM7CitleHRlcm4g
Y29uc3QgY2hhciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKS1J1bGVzOworZXh0
ZXJuIGNvbnN0IGNoYXIqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSktSdWxlczsKK2V4
dGVybiBjb25zdCBjaGFyKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLUnVsZXM7
CisKK2V4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxl
c1tdOworZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGNoYXIgTGluZUJyZWFrSXRlcmF0b3JVQVgxNENK
S1tdOworZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGNoYXIgTGluZUJyZWFrSXRlcmF0b3JVQVgxNExv
b3NlQ0pLW107CitleHRlcm4gY29uc3QgdW5zaWduZWQgY2hhciBMaW5lQnJlYWtJdGVyYXRvclVB
WDE0TG9vc2VOb25DSktbXTsKK2V4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyIExpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb25DSktbXTsKK2V4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyIExpbmVCcmVh
a0l0ZXJhdG9yVUFYMTROb3JtYWxDSktbXTsKK2V4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyIExp
bmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSktbXTsKK2V4dGVybiBjb25zdCB1bnNpZ25l
ZCBjaGFyIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSktbXTsKK2V4dGVybiBjb25zdCB1
bnNpZ25lZCBjaGFyIExpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSktbXTsKKworVUJy
ZWFrSXRlcmF0b3IqIGNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldChCcmVha2luZ1J1bGVTZXQpOwor
CiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGluIG1vc3Qg
Y2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRvCiAvLyBwbGF0Zm9ybSBVSSBjb252ZW50aW9ucy4gT25l
IG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0aGlzIGNhbiBiZSBkaWZmZXJlbnQKIC8vIGZyb20gY2hh
cmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlzIFRoYWkgcHJlcGVuZCBjaGFyYWN0ZXJzLCBzZWUgYnVn
IDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRl
cmF0b3JJbnRlcm5hbElDVU1hYy5tbSBiL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVh
a0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KaW5kZXggYmVmNWRhYTY0Mjg4ODIxZTIwZjI2Mjhj
Njg1NWVlOGU4OGEzODkyYy4uOTczMjliNWY3NjY0ZTcwOGNmOTYwNDVhZGNjMjBhOWM2ZGU2MDUw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVU1hYy5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJ
dGVyYXRvckludGVybmFsSUNVTWFjLm1tCkBAIC0yMSwxMiArMjEsMTgxIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVS5oIgogCisj
aW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKKyNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4K
KyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKKyNkZWZpbmUgVVNFX1BSRUNPTVBJTEVE
X0JSRUFLSU5HX1JVTEVTIChVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiAoKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFU
Rk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkp
KQorCisjaWYgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JVTEVTCisjaW5jbHVkZSA8dW5pY29k
ZS91ZGF0YS5oPgorI2VuZGlmCisKK0BpbnRlcmZhY2UgV1RGQnVuZGxlRmluZGVyIDogTlNPYmpl
Y3QKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdURkJ1bmRsZUZpbmRlcgorQGVuZAorCiBuYW1l
c3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0IGludCBtYXhMb2NhbGVTdHJpbmdMZW5ndGggPSAz
MjsKIAorI2lmIFVTRV9QUkVDT01QSUxFRF9CUkVBS0lOR19SVUxFUworc3RhdGljIFVEYXRhTWVt
b3J5KiBicmVha0l0ZXJhdG9yUmVzb3VyY2UoTlNTdHJpbmcgKmZpbGVOYW1lQmFzZSkKK3sKKyAg
ICBOU0J1bmRsZSAqYnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXVEZCdW5kbGVG
aW5kZXIgY2xhc3NdXTsKKyAgICBOU1N0cmluZyAqcGF0aCA9IFtidW5kbGUgcGF0aEZvclJlc291
cmNlOmZpbGVOYW1lQmFzZSBvZlR5cGU6QCJicmsiIGluRGlyZWN0b3J5OkAiQnJlYWtpbmdSdWxl
cyJdOworICAgIGlmICghcGF0aCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBOU1N0
cmluZyAqZGlyZWN0b3J5ID0gW3BhdGggc3RyaW5nQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50
XTsKKyAgICBpZiAoIWRpcmVjdG9yeSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7Cisg
ICAgdWRhdGFfc2V0RmlsZUFjY2VzcyhVREFUQV9GSUxFU19GSVJTVCwgJmVycm9yQ29kZSk7Cisg
ICAgaWYgKFVfRkFJTFVSRShlcnJvckNvZGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNl
bmRpZgorCisgICAgVUVycm9yQ29kZSB1RGF0YUVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAg
ICBVRGF0YU1lbW9yeSogcmVzdWx0ID0gdWRhdGFfb3BlbihbZGlyZWN0b3J5IFVURjhTdHJpbmdd
LCAiYnJrIiwgW2ZpbGVOYW1lQmFzZSBVVEY4U3RyaW5nXSwgJnVEYXRhRXJyb3JDb2RlKTsKKwor
I2lmIFBMQVRGT1JNKElPUykKKyAgICB1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEQVRBX0RFRkFVTFRf
QUNDRVNTLCAmZXJyb3JDb2RlKTsKKyAgICBpZiAoVV9GQUlMVVJFKGVycm9yQ29kZSkpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCisKKyAgICBpZiAoVV9GQUlMVVJFKHVEYXRhRXJy
b3JDb2RlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRh
KFVEYXRhTWVtb3J5KiBkYXRhKQoreworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAgICAv
LyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzMwNDIxOTcxPiBJdCBpcyBpbXBvc3NpYmxlIHRvIGNv
bXB1dGUgdGhlIHNlY29uZCBhcmd1bWVudCB0byB0aGlzIGZ1bmN0aW9uLgorICAgIFVCcmVha0l0
ZXJhdG9yKiByZXN1bHQgPSB1YnJrX29wZW5CaW5hcnlSdWxlcyhzdGF0aWNfY2FzdDxjb25zdCB1
aW50OF90ICo+KHVkYXRhX2dldE1lbW9yeShkYXRhKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50
MzJfdD46Om1heCgpLCBudWxscHRyLCAwLCAmZXJyb3JDb2RlKTsKKworICAgIGlmIChVX0ZBSUxV
UkUoZXJyb3JDb2RlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yKCkK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJjZURhdGEo
YnJlYWtJdGVyYXRvclJlc291cmNlKEAiQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzIikpOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFr
SXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVy
biBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJ
dGVyYXRvclVBWDE0Q0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1v
cnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0
b3JVQVgxNENKSyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3Iq
PiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0
KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVy
YXRvciogbGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vbkNKSygpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJj
ZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSksiKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJj
ZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOwor
fQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
SygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VE
YXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTRMb29zZUNK
SyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRv
cihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAg
ICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogbGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJlc291cmNlKEAi
TGluZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlTm9uQ0pLIikpOworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3Vy
Y2VEYXRhKHJlc291cmNlRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsK
K30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFs
Q0pLKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJj
ZURhdGEoYnJlYWtJdGVyYXRvclJlc291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1h
bENKSyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVy
YXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsK
KyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciog
bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSygpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJj
ZShAIkxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksiKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21S
ZXNvdXJjZURhdGEocmVzb3VyY2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdl
dCgpOworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRT
dHJpY3RDSksoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVRGF0YU1lbW9yeSo+IHJl
c291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJMaW5lQnJlYWtJdGVyYXRvclVBWDE0
U3RyaWN0Q0pLIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+
IGl0ZXJhdG9yKGJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKHJlc291cmNlRGF0YS5nZXQo
KSkpOworICAgIHJldHVybiBpdGVyYXRvci5nZXQoKTsKK30KKworc3RhdGljIFVCcmVha0l0ZXJh
dG9yKiBsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8VURhdGFNZW1vcnkqPiByZXNvdXJjZURhdGEoYnJlYWtJdGVyYXRvclJl
c291cmNlKEAiTGluZUJyZWFrSXRlcmF0b3JVQVgxNFN0cmljdE5vbkNKSyIpKTsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9y
RnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0
b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogY2xvbmVJdGVyYXRvcihVQnJl
YWtJdGVyYXRvciogaXRlcmF0b3IpCit7CisgICAgaWYgKCFpdGVyYXRvcikKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7Cisg
ICAgaWYgKGF1dG8qIHJlc3VsdCA9IHVicmtfc2FmZUNsb25lKGl0ZXJhdG9yLCBudWxscHRyLCAw
LCAmZXJyb3JDb2RlKSkgeworICAgICAgICBpZiAoVV9TVUNDRVNTKGVycm9yQ29kZSkpCisgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNl
bmRpZgorCitVQnJlYWtJdGVyYXRvciogY3JlYXRlSXRlcmF0b3JGb3JSdWxlU2V0KEJyZWFraW5n
UnVsZVNldCBydWxlU2V0KQoreworI2lmIFVTRV9QUkVDT01QSUxFRF9CUkVBS0lOR19SVUxFUwor
ICAgIHN3aXRjaCAocnVsZVNldCkgeworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpDdXJzb3JN
b3ZlbWVudDoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IoY3Vyc29yTW92ZW1lbnRJdGVy
YXRvcigpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRDSks6CisgICAgICAgIHJl
dHVybiBjbG9uZUl0ZXJhdG9yKGxpbmVCcmVha0l0ZXJhdG9yVUFYMTRDSksoKSk7CisgICAgY2Fz
ZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0Tm9uQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVy
YXRvcihsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9uQ0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdS
dWxlU2V0OjpVQVgxNExvb3NlQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5l
QnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6
OlVBWDE0TG9vc2VOb25DSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGxpbmVCcmVh
a0l0ZXJhdG9yVUFYMTRMb29zZU5vbkNKSygpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6
VUFYMTROb3JtYWxDSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGxpbmVCcmVha0l0
ZXJhdG9yVUFYMTROb3JtYWxDSksoKSk7CisgICAgY2FzZSBCcmVha2luZ1J1bGVTZXQ6OlVBWDE0
Tm9ybWFsTm9uQ0pLOgorICAgICAgICByZXR1cm4gY2xvbmVJdGVyYXRvcihsaW5lQnJlYWtJdGVy
YXRvclVBWDE0Tm9ybWFsTm9uQ0pLKCkpOworICAgIGNhc2UgQnJlYWtpbmdSdWxlU2V0OjpVQVgx
NFN0cmljdENKSzoKKyAgICAgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IobGluZUJyZWFrSXRlcmF0
b3JVQVgxNFN0cmljdENKSygpKTsKKyAgICBjYXNlIEJyZWFraW5nUnVsZVNldDo6VUFYMTRTdHJp
Y3ROb25DSks6CisgICAgICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGxpbmVCcmVha0l0ZXJhdG9y
VUFYMTRTdHJpY3ROb25DSksoKSk7CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocnVs
ZVNldCk7CisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKwogc3RhdGljIGlubGluZSBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHRleHRCcmVha0xvY2FsZVByZWZlcmVuY2UoKQogewogICAg
IFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gbG9jYWxlID0gYWRvcHRDRihDRlByZWZlcmVu
Y2VzQ29weVZhbHVlKENGU1RSKCJBcHBsZVRleHRCcmVha0xvY2FsZSIpLApkaWZmIC0tZ2l0IGEv
U291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtl
CmluZGV4IDUxMzBmZmNiY2M3YzljZTc1MTRhZjRkNTUzYmQ4YTRmMDUwMTQ1NmQuLjlmODMzMGFm
N2ZlMzYzZDgwMTNlZWUzNGJlZGQ3ZmMxNWNiNzkxZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFr
ZS9XZWJLaXRGUy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKQEAgLTI3
LDYgKzI3LDcgQEAgaWYgKE5PVCBUT09MU19ESVIpCiBlbmRpZiAoKQogCiBzZXQoREVSSVZFRF9T
T1VSQ0VTX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcyIpCitzZXQoREVS
SVZFRF9TT1VSQ0VTX1dURl9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMv
V1RGIikKIHNldChERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSICIke0NNQUtFX0JJ
TkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlIikKIHNldChERVJJVkVEX1NP
VVJDRVNfV0VCQ09SRV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZSIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVExFR0FDWV9ESVIgIiR7Q01BS0VfQklO
QVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0TGVnYWN5IikKQEAgLTM1LDYgKzM2LDggQEAg
c2V0KERFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlf
RElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkluc3BlY3RvclVJIikK
IAogZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9E
SVJ9KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfSkKK2Zp
bGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxl
cykKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtDTUFLRV9CSU5BUllfRElSfS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZSkKIAogZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNF
U19XRUJJTlNQRUNUT1JVSV9ESVJ9KQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9n
CmluZGV4IDNhNmNhNzgyZWUxNDEzY2FjZmY4YWQ4OWYwYWQ3ZTFhNDY1YjE4NzMuLjcyYTc2ZDc4
NWJlNTY2M2JmOTEzNTk2MzYyMjlmMmIwYjY0MjBiZDEgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZwor
KysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wMi0xMCAgTXlsZXMgQy4gTWF4
ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFr
aW5nIGl0ZXJhdG9ycyBhdCBidWlsZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcxMzEwNTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2U6CisKIDIwMTct
MDItMTAgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGJhc2lj
IGRlYnVnZ2luZyBtYWNyb3MgZm9yIENNYWtlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301367</attachid>
            <date>2017-02-13 11:54:54 -0800</date>
            <delta_ts>2017-02-13 17:34:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20170213115222.patch</filename>
            <type>text/plain</type>
            <size>58171</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NjkxNWNjNTYzZTQ0NDI2YzBhNzAyNTIxN2VhOTRjYzVjZWEyNjU0Li4yNjk1M2JlZGNmZDNiMDAw
NTU2ZjEzMTI1NGM3MTA3MmQ3ZWUzYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wMi0xMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzEw
NTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5j
bHVkZSB0aGUgYnl0ZWNvZGUgZmlsZXMgaW5zaWRlIHRoZSBKYXZhU2NyaXB0Q29yZSBidW5kbGUu
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDE3LTAyLTEyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IEMgbG9vcCBidWlsZCBmaXggYXR0ZW1wdCBhZnRlciByMjEyMjA3LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA5MmU3Y2Y3ZTc3
MjNkZGI3MzBhNDBhNjM2M2E1NzE2ODA1NTk4ZDg0Li41ZmE1NjI4NzYyYzcxYmI5NjExYzNkMTRh
NjUxZmMyOWQ2NTM1MGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDg2IEBACiAyMDE3LTAyLTEzICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgQ29tcGlsZSBJQ1Ug
YnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzEzMTA1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbWFjT1MgYW5kIGlPUyBTREtzIGluY2x1ZGUgYSB0
b29sLCBpY3VnZW5icmssIHdoaWNoIGNvbXBpbGVzIElDVSBicmsgYnJlYWtpbmcKKyAgICAgICAg
cnVsZXMgaW50byBieXRlY29kZS4gUHJldmlvdXNseSwgdGhpcyBjb21waWxhdGlvbiB3YXMgZG9u
ZSBhdCBydW50aW1lIGluc2lkZSB0aGUgSUNVCisgICAgICAgIHVicmtfb3BlblJ1bGVzKCkgZnVu
Y3Rpb24uIE1vdmluZyB0aGlzIGNvbXBpbGF0aW9uIHN0ZXAgdG8gY29tcGlsZSB0aW1lIHJhdGhl
ciB0aGFuCisgICAgICAgIGJ1aWxkIHRpbWUgY2F1c2VzIGEgcGVyZm9ybWFuY2UgYm9vc3QuCisK
KyAgICAgICAgUHJldmlvdXNseSwgdGhlIHNvdXJjZSBmb3IgdGhlIGJyZWFraW5nIHJ1bGVzIHdh
cyBhc3NlbWJsZWQgYnkgY29uY2F0ZW5hdGluZyBDIHN0cmluZ3MKKyAgICAgICAgYXQgcnVudGlt
ZS4gTm93LCB0aGUgc291cmNlIGlzIGNvbnRhaW5lZCB3aXRoaW4gYSBmZXcgdGV4dCBmaWxlcyBp
bnNpZGUKKyAgICAgICAgd3RmL3RleHQvQnJlYWtpbmdSdWxlcy4gQSBidWlsZCBzdGVwICh1c2lu
ZyBhIE1ha2VmaWxlKSB3aWxsIGdlbmVyYXRlIHNvdXJjZSBjb2RlCisgICAgICAgIGNvbnRhaW5p
bmcgdGhlc2Ugc3RyaW5ncywgYW5kIFdURiB3aWxsIGluY2x1ZGUgdGhlc2Ugc291cmNlIGZpbGVz
IGluIHRoZSBzYW1lIHdheSBhbnkKKyAgICAgICAgb2Ygb3VyIHByb2plY3RzIHVzZSBnZW5lcmF0
ZWQgc291cmNlcy4gQWRkaXRpb25hbGx5LCBvbiBPU2VzIHdoaWNoIHN1cHBvcnQgaXQsIHRoZXNl
CisgICAgICAgIHN0cmluZ3MgZ2V0IGNvbXBpbGVkIGRpcmVjdGx5IGludG8gSUNVIGJ5dGVjb2Rl
LCBhbmQgdGhlbiBpbmNsdWRlZCBpbiB0aGUgZnJhbWV3b3JrCisgICAgICAgIGJ1bmRsZS4gQmVj
YXVzZSBXVEYgZ2V0cyBzdGF0aWNhbGx5IGxpbmtlZCBpbnRvIEphdmFTY3JpcHRDb3JlLCB0aGlz
IGlzIHRoZSBidW5kbGUKKyAgICAgICAgd2hpY2ggaW5jbHVkZXMgdGhlIGJ5dGVjb2RlIGZpbGVz
LgorCisgICAgICAgIEF0IHJ1bnRpbWUsIHdlIGZpcnN0IGNoZWNrIGlmIHdlIGhhdmUgYSBmaWxl
IGluIG91ciBidW5kbGUgb2YgdGhlIGFwcHJvcHJpYXRlIG5hbWUsCisgICAgICAgIGFuZCB0aGVu
IHNlZSBpZiBJQ1UgY2FuIG9wZW4gaXQgdXNpbmcgaXRzIHVicmtfb3BlbkJpbmFyeVJ1bGVzKCkg
aW50ZXJmYWNlICh3aGljaAorICAgICAgICBpbmNsdWRlcyBhIHZlcnNpb24gY2hlY2spLiBJZiBh
bnkgb2YgdGhlc2UgY2hlY2tzIGZhaWwsIG9yIGlmIHdlJ3JlIG9uIGEgcG9ydCB3aGljaAorICAg
ICAgICBkb2Vzbid0IGhhdmUgdGhlIG5vdGlvbiBvZiBidW5kbGVzLCB3ZSB3aWxsIHVzZSB0aGUg
QyBzdHJpbmdzIGdlbmVyYXRlZCBhYm92ZSwgYW5kCisgICAgICAgIHBhc3MgdGhlbSB0byB1YnJr
X29wZW5SdWxlcygpIHRoZSBzYW1lIHdheSB3ZSB3ZXJlIGRvaW5nIGJlZm9yZSB0aGlzIHBhdGNo
LgorCisgICAgICAgIFRoZSB1YnJrX29wZW5CaW5hcnlSdWxlcygpIGludGVyZmFjZSBpbiBJQ1Ug
cmVxdWlyZXMgYWRkaW5nIHNvbWUgbW9yZSBvZiBJQ1UncyBwdWJsaWMKKyAgICAgICAgaGVhZGVy
cyBpbnRvIFdlYktpdC4KKworICAgICAgICAqIFNjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVT
dHJpbmdzLnB5OiBBZGRlZC4KKyAgICAgICAgKG1haW4pOiBPdXRwdXQgQysrIGZpbGVzIHJlcHJl
c2VudGluZyB0aGUgYnJlYWtpbmcgcnVsZXMgc3RyaW5ncy4KKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajogQWRkIGEgbmV3IERlcml2ZWQgU291cmNlcyB0YXJnZXQgd2hp
Y2ggdXNlcyBhCisgICAgICAgIERlcml2ZWRTb3VyY2VzLm1ha2UgTWFrZWZpbGUsIHRoZSBzYW1l
IHdheSBXZWJLaXQyLCBXZWJDb3JlLCBhbmQgSmF2YVNjcmlwdENvcmUgd3Jvay4KKyAgICAgICAg
QWxzbywgYWRkIHRoZSBydWxlcyB0ZXh0IGZpbGVzIHRvIHRoZSBwcm9qZWN0LiBUaGVuLCBtYWtl
IFdURiBkZXBlbmQgb24gdGhpcyBuZXcKKyAgICAgICAgdGFyZ2V0LgorICAgICAgICAqIGljdS91
bmljb2RlL3VicmsuaDogQWRkIGRlY2xhcmF0aW9uIGZvciB1YnJrX29wZW5CaW5hcnlSdWxlcygp
LgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDogQWRkIGJ1aWxkIHN0ZXBzIGZvciBvdGhl
ciBwb3J0cyB0byBnZW5lcmF0ZSB0aGUgYnJlYWtpbmcKKyAgICAgICAgcnVsZXMgc3RyaW5ncyBz
b3VyY2UgZmlsZXMuCisgICAgICAgICogd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkLiBU
aGlzIGlzIHRoZSBwbGFjZSB3aGVyZSBpY3VnZW5icmsgaXMgYWN0dWFsbHkgCisgICAgICAgIGlu
dm9rZWQuIEl0IGFsc28gdHJpZ2dlcnMgdGhlIHNjcmlwdCAoR2VuZXJhdGVCcmVha2luZ1J1bGVT
dHJpbmdzLnB5KSB3aGljaCBnZW5lcmF0ZXMKKyAgICAgICAgdGhlIEMrKyBjb2RlIGZvciB0aGUg
cnVsZXMgc3RyaW5ncy4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQ6IEFkZGVkLgorICAgICAgICAq
IHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHA6CisgICAgICAgIChXVEY6
OmNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldCk6IFVzZWQgYnkgb3RoZXIgcG9ydHMuIFJldHVybmlu
ZyBudWxscHRyIG1lYW5zIHdlIGNhbid0CisgICAgICAgIHVzZSBwcmVjb21waWxlZCBydWxlcy4K
KyAgICAgICAgKFdURjo6Y3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjayk6
IFVzZWQgaW4gcGxhY2Ugb2YgdGhlIGhhcmRjb2RlZCBydWxlcworICAgICAgICBpbiBjdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yKCkuCisgICAgICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3Ip
OiBSZW1vdmUgaGFyZGNvZGVkIHJ1bGVzLgorICAgICAgICAoV1RGOjptYXBMaW5lSXRlcmF0b3JN
b2RlVG9SdWxlcyk6IFVwZGF0ZSB0byB1c2UgdGhlIG5ldyBnZW5lcmF0ZWQgQysrIHN0cmluZ3Mu
CisgICAgICAgIChXVEY6Om9wZW5MaW5lQnJlYWtJdGVyYXRvcik6IFRoZSBsb2dpYyBvZiB0cnlp
bmcgdG8gdXNlIGEgcHJlY29tcGlsZWQgYnl0ZWNvZGUsIGFuZCBmYWxsaW5nCisgICAgICAgIGJh
Y2sgdG8gQysrIHN0cmluZ3MgaWYgaXQgaXNuJ3QgcG9zc2libGUuCisgICAgICAgIChXVEY6OmNs
b3NlTGluZUJyZWFrSXRlcmF0b3IpOgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmg6IEhlYWRlciBmb3IgZ2VuZXJhdGVkIEMrKyBjb2RlLgorICAgICAgICAqIHd0Zi90ZXh0
L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAgICAgICAoV1RGOjpi
cmVha0l0ZXJhdG9yUmVzb3VyY2UpOiBUaGUgYWN0dWFsIGxvZ2ljIGZvciBsb29raW5nIGluc2lk
ZSB0aGUgYnVuZGxlIGZvciB0aGUKKyAgICAgICAgcHJlY29tcGlsZWQgYnl0ZWNvZGUuCisgICAg
ICAgIChXVEY6OmJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKTogRGl0dG8KKyAgICAgICAg
KFdURjo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6IENhbGxzIGJyZWFrSXRlcmF0b3JGcm9tUmVz
b3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSyk6IERpdHRv
CisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSkspOiBEaXR0bworICAg
ICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSkspOiBEaXR0bworICAgICAg
ICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSkspOiBEaXR0bworICAgICAg
ICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKTogRGl0dG8KKyAgICAgICAg
KFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSyk6IERpdHRvCisgICAgICAg
IChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSkspOiBEaXR0bworICAgICAgICAo
V1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLKTogRGl0dG8KKyAgICAgICAg
KFdURjo6Y2xvbmVJdGVyYXRvcik6CisgICAgICAgIChXVEY6OmNyZWF0ZUl0ZXJhdG9yRm9yUnVs
ZVNldCk6IENhbGxzIHRoZSBhYm92ZSBzdGF0aWMgZnVuY3Rpb25zLgorCisyMDE3LTAyLTEzICBN
eWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKICAgICAgICAgVXBkYXRl
IGN1c3RvbSBsaW5lIGJyZWFraW5nIGl0ZXJhdG9ycyB0byB0aGUgbGF0ZXN0IHZlcnNpb24gb2Yg
VW5pY29kZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY4MTgyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGZlNGI1ZjA1ZmRhNDkz
Yzk2MGY3ZmJmOTdlMjY3M2M4ZGE1NDFjNy4uNmZlNmM3ZDhiZTNkYzU1YjY0MDg1Mjg5ZmU4ZjQ2
ZDkxMGMzZDkxMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMjgsNiArMTIy
OCw3IEBACiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjhENEE3
MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTg4MjZCMTY1M0M0Q0QxQTY0Mjk4
M0IgLyogVGVtcGxhdGVSZWdpc3RyeUtleVRhYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhCNDdGMjM0MzY2QzRCNzJBQzg1MkE3RSAvKiBUZW1w
bGF0ZVJlZ2lzdHJ5S2V5VGFibGUuY3BwICovOyB9OwogCQkxQUNGNzM3NzE3MUNBNkZCMDBDOUJC
MUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgKi87IH07CisJCTFDRDE4
NzkwMUQ1NTk2MTIwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyog
QnJlYWtpbmdSdWxlcyAqLzsgfTsKIAkJMjYwMEI1QTYxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3Ry
aW5nSm9pbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI2MDBCNUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi87IH07
CiAJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYwMEI1QTUxNTJCQUFBNzAw
OTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi87IH07CiAJCTI2MkQ4NUI2MUMwRDY1MEYwMDZB
Q0I2MSAvKiBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRDg1QjQxQzBENjUwRjAwNkFDQjYxIC8q
IEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi87IH07CkBAIC0zNjU4LDYgKzM2NTks
NyBAQAogCQkxQzkwNTE0NTBCQTlFOEE3MDA4MUU5RDAgLyogQmFzZS54Y2NvbmZpZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQ0FBOEI0QTBEMzJDMzlBMDA0MUJDRkYgLyogSmF2YVNjcmlwdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRCMEQzMkMzOUEwMDQxQkNGRiAvKiBKYXZhU2NyaXB0
Q29yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0Q29yZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMg
LyogQnJlYWtpbmdSdWxlcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEJyZWFraW5nUnVsZXM7IHBhdGggPSAuLi9XVEYvQnJl
YWtpbmdSdWxlczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYwMEI1QTQxNTJCQUFB
NzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjYwMEI1QTUxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nSm9pbmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTI2MkQ4NUI0MUMwRDY1MEYwMDZBQ0I2MSAvKiBBaXJGaXhQYXJ0
aWFsUmVnaXN0ZXJTdGFsbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcDsgcGF0aCA9IGIzL2Fpci9BaXJGaXhQ
YXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjAxNSw2ICs2MDE3LDcgQEAKIAkJNjUwRkRGOEQwOUQwRkNBNzAwNzY5RTU0IC8qIERlcml2ZWQg
U291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
MUNEMTg3OEYxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgKi8sCiAJCQkJMEY2MTgz
MzIxQzQ1RjM1QzAwNzI0NTBCIC8qIEFpck9wY29kZS5oICovLAogCQkJCTBGNjE4MzM0MUM0NUYz
QjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVHZW5lcmF0ZWQuaCAqLywKIAkJCQkwRjYxODMzNTFDNDVG
M0I2MDA3MjQ1MEIgLyogQWlyT3Bjb2RlVXRpbHMuaCAqLywKQEAgLTk0MzEsNiArOTQzNCw3IEBA
CiAJCQlpc2EgPSBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCTFDRDE4NzkwMUQ1NTk2MTIwMENDN0RFQyAv
KiBCcmVha2luZ1J1bGVzIGluIFJlc291cmNlcyAqLywKIAkJCQlBNTNGMUFDMDE4QzkwRjhGMDA3
MkVCNkQgLyogZnJhbWV3b3JrLnNiIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
U2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgYi9Tb3VyY2UvV1RGL1Njcmlw
dHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3NTRiZTU2ZGY5
ZWQzODYxOTE1YjZjM2QxNTBkODUyNDk2NTg0YzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5CkBAIC0wLDAgKzEsMTAz
IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMg
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKK2ltcG9ydCBzeXMKK2ltcG9ydCByZQoraW1wb3J0IGFyZ3BhcnNlCisKK2hl
YWRlciA9ICIiIi8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLyIiIgorCisKK2RlZiBtYWluKGFyZ3Y9Tm9uZSk6CisgICAgcGFy
c2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249J0dlbmVyYXRlIGJyZWFr
aW5nIHJ1bGUgc291cmNlIHN0cmluZ3MgaW4gQysrIHNvdXJjZSBmb21yYXQuJykKKyAgICBwYXJz
ZXIuYWRkX2FyZ3VtZW50KCdzeW1ib2xOYW1lJykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdm
aWxlTmFtZXMnLCBuYXJncz0nKycpCisKKyAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQor
CisgICAgc3ltYm9sTmFtZSA9IGFyZ3Muc3ltYm9sTmFtZVswXS5sb3dlcigpICsgYXJncy5zeW1i
b2xOYW1lWzE6XQorICAgIGZpbGVOYW1lcyA9IGFyZ3MuZmlsZU5hbWVzCisKKyAgICBwcmludCho
ZWFkZXIpCisgICAgcHJpbnQoIiIiCisvLyBETyBOT1QgRURJVCBUSElTIEZJTEUuIEl0IGlzIGF1
dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHRoZSBzY3JpcHQKKy8vICVzCisKKyNpbmNsdWRlIFwi
Y29uZmlnLmhcIgorI2luY2x1ZGUgPHVuaWNvZGUvdXZlcm51bS5oPgorIiIiICUgKHN5cy5hcmd2
WzBdKSkKKyAgICBwcmludCgiIiJuYW1lc3BhY2UgV1RGIHsKKworY29uc3QgY2hhciogJXMgPSAi
IiIgJSAoc3ltYm9sTmFtZSkpCisKKyAgICBmb3IgZmlsZU5hbWUgaW4gZmlsZU5hbWVzOgorICAg
ICAgICBmb3IgbCBpbiBvcGVuKGZpbGVOYW1lLCAncicpOgorICAgICAgICAgICAgbGluZSA9IGwu
cnN0cmlwKCkKKyAgICAgICAgICAgIGlmIHJlLm1hdGNoKCJeXHMqJCIsIGxpbmUpOgorICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjICIpOgor
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgbGluZSA9PSAiIyI6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoIiMiKToK
KyAgICAgICAgICAgICAgICBwcmludChsaW5lKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICBtYXRjaCA9IHJlLm1hdGNoKCJeKC4qKTsoICMgLiopPyQiLCBsaW5lKQorICAgICAg
ICAgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAiXCIiICsg
bWF0Y2guZ3JvdXAoMSkucmVwbGFjZSgiXFwiLCAiXFxcXCIpICsgIjtcIiIKKyAgICAgICAgICAg
ICAgICAgICAgaWYgbWF0Y2guZ3JvdXAoMik6CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1
bHQgKz0gIiAvLyAiICsgbWF0Y2guZ3JvdXAoMilbMzpdCisgICAgICAgICAgICAgICAgICAgIHBy
aW50KHJlc3VsdCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBl
eGl0KDEpCisKKyAgICBwcmludCgiOyIpCisgICAgcHJpbnQoIn0iKQorCitpZiBfX25hbWVfXyA9
PSAnX19tYWluX18nOgorICAgIHN5cy5leGl0KG1haW4oc3lzLmFyZ3YpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDI1MzliMTQ5NzliNmViZWQxZjMyNDQx
OGQ4YzJiN2Y3Yzg0YzlhNC4uMDJmN2M5MzQ1ODVjZDMyM2E4MTQ1MDNmZGE0MTYzN2ZiYjZkZWJk
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03LDYgKzcs
MTcgQEAKIAlvYmplY3RzID0gewogCiAvKiBCZWdpbiBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlv
biAqLworCQkxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMgLyogRGVyaXZlZCBTb3VyY2VzICovID0g
eworCQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlz
dCA9IDFDRDE4NzgzMUQ1NTY5NUMwMENDN0RFQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3Qg
Zm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2VzIiAqLzsKKwkJCWJ1aWxkUGhh
c2VzID0gKAorCQkJCTFDRDE4NzgyMUQ1NTY5NUMwMENDN0RFQyAvKiBHZW5lcmF0ZSBEZXJpdmVk
IFNvdXJjZXMgKi8sCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUg
PSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXByb2R1Y3ROYW1lID0gIkRlcml2ZWQgU291cmNlcyI7
CisJCX07CiAJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICov
ID0gewogCQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1cmF0aW9u
TGlzdCA9IDY1QUZBMjg4MTYzMEI5NzcwMDNENzIzQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxp
c3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiQ29weSBXVEYgSGVhZGVycyIgKi87CkBAIC04NCw3
ICs5NSw2IEBACiAJCTE0NDdBRUM2MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1l
d29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
NDdBRUM1MThGQ0U1NzcwMEIzRDdGRiAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKIAkJ
MTQ0N0FFQzcxOEZDRTU4MDAwQjNEN0ZGIC8qIGxpYldURi5hIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQyNDdCNjIxNDY4OUI4NjAwRTc4Qjc2IC8q
IGxpYldURi5hICovOyB9OwogCQkxNDQ3QUVDOTE4RkNFNTk0MDBCM0Q3RkYgLyogbWJtYWxsb2Mu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FF
QzgxOEZDRTU5NDAwQjNEN0ZGIC8qIG1ibWFsbG9jLmNwcCAqLzsgfTsKLQkJMTQ0N0FFQ0IxOEZD
RTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3QUVDQTE4RkNFNUI5MDBCM0Q3RkYgLyogbGli
aWN1Y29yZS5keWxpYiAqLzsgfTsKIAkJMTQ2OTQxOTIxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxv
b3BUaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTQ2OTQxOTAxNkVBQUY2RDAwMjRFMTQ2IC8qIFJ1bkxvb3BUaW1lci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTE0Njk0MTkzMTZFQUFGNkQwMDI0RTE0NiAvKiBS
dW5Mb29wVGltZXJDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNDY5NDE5MTE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyQ0YuY3BwICov
OyB9OwogCQkxNDY5NDE5NjE2RUFBRkY4MDAyNEUxNDYgLyogU2NoZWR1bGVQYWlyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDY5NDE5NDE2RUFBRkY4
MDAyNEUxNDYgLyogU2NoZWR1bGVQYWlyLmggKi87IH07CkBAIC0zNDAsNiArMzUwLDggQEAKIAkJ
QURGMkNFNjYxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURGMkNFNjQxRTM5RjEwNjAwNjg4
OURCIC8qIE1lbW9yeUZvb3RwcmludC5oICovOyB9OwogCQlBREYyQ0U2NzFFMzlGMTA2MDA2ODg5
REIgLyogTWVtb3J5Rm9vdHByaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFERjJDRTY1MUUzOUYxMDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJp
bnQuY3BwICovOyB9OwogCQlCMzhGRDdCRDE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmlu
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOEZE
N0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovOyB9OworCQlDMkJBNTQz
RTFENTg2QUY0MDAwQTMzMzIgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdGRiAv
KiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OworCQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyog
Q3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQ0EzN0UwMUQ1NUM5NzEwMDQ4NkI5OCAvKiBDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwICovOyB9OwogCQlDNEY4QTkzNzE5QzY1RUI0MDBCMkIx
NUQgLyogU3RvcHdhdGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi87IH07CiAJ
CUM4QjBFMUExRTAxQTQ4NkVCOTVFMEQxMSAvKiBJbmRleFNldC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzN0UxRDdEQkQ4NEFDMzhGQUU0RDM0IC8q
IEluZGV4U2V0LmggKi87IH07CiAJCUM5MTZCOTc1RjAyRjRGN0U4QjRBQjEyRCAvKiBJbmRleE1h
cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUI0MzM4
M0E1RDBCNDYzQzk0MzNEOTMzIC8qIEluZGV4TWFwLmggKi87IH07CkBAIC0zODEsNiArMzkzLDEz
IEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDVEMjQ3QjYxMTQ2ODlCODYwMEU3OEI3NjsK
IAkJCXJlbW90ZUluZm8gPSBXVEY7CiAJCX07CisJCTFDRDE4Nzg3MUQ1NTY5ODgwMENDN0RFQyAv
KiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CisJCQlpc2EgPSBQQlhDb250YWluZXJJdGVt
UHJveHk7CisJCQljb250YWluZXJQb3J0YWwgPSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyog
UHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94eVR5cGUgPSAxOworCQkJcmVtb3RlR2xvYmFsSURT
dHJpbmcgPSAxQ0QxODc4MTFENTU2OTVDMDBDQzdERUM7CisJCQlyZW1vdGVJbmZvID0gIkRlcml2
ZWQgU291cmNlcyI7CisJCX07CiAJCTY1QUZBMjhEMTYzMEI5OUUwMDNENzIzQyAvKiBQQlhDb250
YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CiAJ
CQljb250YWluZXJQb3J0YWwgPSA1RDI0N0I1OTE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvamVjdCBv
YmplY3QgKi87CkBAIC00OTIsNiArNTExLDkgQEAKIAkJMUMxODFDOEQxRDMwN0FCODAwRjVGQTE2
IC8qIFVUZXh0UHJvdmlkZXJVVEYxNi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBVVGV4dFByb3ZpZGVyVVRGMTYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQzE4MUM4RTFEMzA3QUI4MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzE4MUM5NTFEMzA4MDBBMDBGNUZBMTYgLyogVGV4
dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IFRleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW07IHBhdGgg
PSBtYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUM2QkUwRkExRTAzNEM5QTAwMjE3NjE3IC8qIEdlbmVyYXRlQnJlYWtp
bmdSdWxlU3RyaW5ncy5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IEdlbmVyYXRlQnJlYWtpbmdSdWxl
U3RyaW5ncy5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUNEMTg3OEExRDU1OEFE
MzAwQ0M3REVDIC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhtbDsgbmFtZSA9IERlcml2ZWRTb3VyY2Vz
Lm1ha2U7IHBhdGggPSB3dGYvRGVyaXZlZFNvdXJjZXMubWFrZTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdXNlc1RhYnMgPSAxOyB9OworCQkxQ0QxODc5MjFENTU5OEUxMDBDQzdERUMgLyogQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9y
UnVsZXMudHh0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4ODE1MjUwMkRB
MDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUZBNDdDODkxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyNjE0N0IwODE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3RyaW5n
Q29udmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlZ2VyVG9T
dHJpbmdDb252ZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjQsNiAr
NzQ2LDcgQEAKIAkJQURGMkNFNjQxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9yeUZvb3RwcmludC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlGb290cHJpbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQURGMkNFNjUxRTM5RjEwNjAwNjg4OURCIC8qIE1l
bW9yeUZvb3RwcmludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
ZW1vcnlGb290cHJpbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMzhGRDdC
QzE2ODk1M0U4MDA2NUM5NjkgLyogRmVhdHVyZURlZmluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRmVhdHVyZURlZmluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JS
dWxlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMuY3BwOyBwYXRoID0gQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNEY4QTkz
NjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0
OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC03NjIsNyArNzg1LDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQkxNDQ3QUVDNjE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRh
dGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCQkxNDQ3QUVDQjE4RkNFNUI5MDBC
M0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovLAorCQkJCUMyQkE1NDNF
MUQ1ODZBRjQwMDBBMzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8sCiAJ
CQkJMTQ0N0FFQzcxOEZDRTU4MDAwQjNEN0ZGIC8qIGxpYldURi5hIGluIEZyYW1ld29ya3MgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC03
OTksNiArODIyLDIyIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKIAkJfTsKKwkJMUM2QkUwRjkxRTAzNEMyQTAwMjE3NjE3IC8qIFNjcmlwdHMgKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTFDNkJFMEZBMUUwMzRDOUEw
MDIxNzYxNyAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgKi8sCisJCQkpOworCQkJ
cGF0aCA9IFNjcmlwdHM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkxQ0Qx
ODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OTIxRDU1OThFMTAwQ0M3REVDIC8q
IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8sCisJCQkpOworCQkJcGF0aCA9IEJy
ZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkxRkE0N0M4
NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKQEAgLTgyMSw5ICs4NjAsMTIgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAwRTc4Qjc2IC8qIENvbmZpZ3VyYXRp
b25zICovLAorCQkJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAvKiBEZXJpdmVkIFNvdXJjZXMg
Ki8sCiAJCQkJMTQwMjJGM0YxOEY1QzNFNTAwN0ZGMEVCIC8qIExpYnJhcmllcyAqLywKIAkJCQk1
RDI0N0I2MzE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvZHVjdHMgKi8sCisJCQkJMUM2QkUwRjkxRTAz
NEMyQTAwMjE3NjE3IC8qIFNjcmlwdHMgKi8sCiAJCQkJNUQyNDdCNzYxNDY4OUQ3NjAwRTc4Qjc2
IC8qIFNvdXJjZSAqLywKKwkJCQkxQ0QxODc4QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNv
dXJjZXMubWFrZSAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3MDBCM0Q3RkYgLyogRm91bmRhdGlv
bi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVCOTAwQjNEN0ZGIC8qIGxpYmljdWNv
cmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtMTE4NSw2ICsxMjI3LDcgQEAKIAkJQThBNDczMUIxNTFB
ODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICov
LAogCQkJCUE1QkExNUY2MTgyNDM1OUUwMEE4MkU2OSAvKiBjZiAqLywKIAkJCQkxQzE4MUM4ODFE
MzA3QUI4MDBGNUZBMTYgLyogaWN1ICovLAogCQkJCUE1QkExNUYxMTgyNDMzOUYwMEE4MkU2OSAv
KiBtYWMgKi8sCkBAIC0xMjYzLDYgKzEzMDYsMTUgQEAKIAkJCXBhdGggPSBpY3U7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkNBMzdERjFENTVDOEQ4MDA0ODZCOTggLyog
RGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV1RGOworCQkJc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsKKwkJfTsKIAkJQ0U0NjUxNkMxOURCMUZCNDAwM0VDQTA1IC8qIGNvY29hICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE2MTQsNiArMTY2Niw3IEBA
CiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCQkxQ0Qx
ODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk2NUFG
QTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJ
CQluYW1lID0gV1RGOwpAQCAtMTY0NCwxMiArMTY5NywyNyBAQAogCQkJdGFyZ2V0cyA9ICgKIAkJ
CQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovLAogCQkJCTY1QUZBMTZGMTYzMEI5
NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovLAorCQkJCTFDRDE4NzgxMUQ1NTY5NUMw
MENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMTQ0N0FFQkQxOEZDRTU2OTAwQjNE
N0ZGIC8qIG1ibWFsbG9jICovLAogCQkJKTsKIAkJfTsKIC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rp
b24gKi8KIAogLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJ
MUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVyYXRlIERlcml2ZWQgU291cmNlcyAqLyA9
IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFz
ayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAor
CQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgRGVyaXZlZCBTb3VyY2VzIjsKKwkJCW91dHB1dFBh
dGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwi
JHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dURlwiXG5jZCBcIiR7QlVJTFRf
UFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuXG4vYmluL2xuIC1zZmggXCIke1NS
Q1JPT1R9XCIgV1RGXG5leHBvcnQgV1RGPVwiV1RGXCJcblxuaWYgWyAhIC1kIEJyZWFraW5nUnVs
ZXMgXTsgdGhlblxuICAgIG1rZGlyIEJyZWFraW5nUnVsZXNcbmZpXG5cbmlmIFsgXCIkSEFWRV9J
TlRFUk5BTF9TREtcIiAhPSBcIllFU1wiIF0gfHwgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJH
RVRcIiA9PSBcIjEwLjExXCIgXSB8fCBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09
IFwiMTAuMTJcIiBdIHx8IFsgXCIkU0RLX1ZFUlNJT05fTUFKT1JcIiA9PSBcIjkwMDAwXCIgXSB8
fCBbIFwiJFNES19WRVJTSU9OX01BSk9SXCIgPT0gXCIxMDAwMDBcIiBdOyB0aGVuXG4gICAgZXhw
b3J0IEhBVkVfSUNVR0VOQlJLPTBcbmVsc2VcbiAgICBleHBvcnQgSEFWRV9JQ1VHRU5CUks9MVxu
ZmlcblxuaWYgWyBcIiR7QUNUSU9OfVwiID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJT059XCIgPSBc
Imluc3RhbGxcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsaGRyc1wiIC1vIFwiJHtBQ1RJ
T059XCIgPSBcImluc3RhbGxhcGlcIiBdOyB0aGVuXG5tYWtlIC0tbm8tYnVpbHRpbi1ydWxlcyAt
ZiBcIldURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1u
IGh3LmFjdGl2ZWNwdWAgU0RLUk9PVD1cIiR7U0RLUk9PVH1cIlxuZmkiOworCQl9OwogCQk2NUFG
QTE3MDE2MzBCOTc3MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9
IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CkBAIC0xNzAyLDYgKzE3NzAsNyBAQAogCQkJCUUxNTU1NkY1MThBMENDMTgwMDZGNDhGQiAv
KiBDcnlwdG9ncmFwaGljVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDM5
MTUxQTgyNUIwMDQxMjNGRiAvKiBDU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3
MzlDMTUxQTgyNUIwMDQxMjNGRiAvKiBDdXJyZW50VGltZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlDMkNBMzdFOTFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlFMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRh
TG9nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0EwMTUxQTgyNUIwMDQxMjNGRiAvKiBE
YXRlTWF0aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNBMjE1MUE4MjVCMDA0MTIzRkYg
LyogRGVjaW1hbE51bWJlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE3OTMsNiArMTg2MiwxMSBA
QAogCQkJdGFyZ2V0ID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLzsKIAkJCXRh
cmdldFByb3h5ID0gMTQ0N0FFQzMxOEZDRTU3MDAwQjNEN0ZGIC8qIFBCWENvbnRhaW5lckl0ZW1Q
cm94eSAqLzsKIAkJfTsKKwkJMUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERl
cGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0
ID0gMUNEMTg3ODExRDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLzsKKwkJCXRh
cmdldFByb3h5ID0gMUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Q
cm94eSAqLzsKKwkJfTsKIAkJNjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERl
cGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0
ID0gNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi87CkBAIC0x
ODIyLDYgKzE4OTYsMzAgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJ
MUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWls
ZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3Qjcw
MTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNl
dHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9Owor
CQkJbmFtZSA9IERlYnVnOworCQl9OworCQkxQ0QxODc4NTFENTU2OTVDMDBDQzdERUMgLyogUmVs
ZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZp
Z3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxl
YXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUg
PSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OworCQkx
Q0QxODc4NjFENTU2OTVDMDBDQzdERUMgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhD
QnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0
N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVp
bGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJ
fTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDI0N0I2NDE0Njg5Qjg2MDBFNzhC
NzYgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJh
c2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERl
YnVnUmVsZWFzZS54Y2NvbmZpZyAqLzsKQEAgLTE5MDUsNiArMjAwMywxNiBAQAogCQkJZGVmYXVs
dENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1l
ID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODMxRDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxk
IGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJj
ZXMiICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmln
dXJhdGlvbnMgPSAoCisJCQkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICovLAor
CQkJCTFDRDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovLAorCQkJCTFDRDE4Nzg2
MUQ1NTY5NUMwMENDN0RFQyAvKiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25m
aWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFBy
b2R1Y3Rpb247CisJCX07CiAJCTVEMjQ3QjVDMTQ2ODlCODYwMEU3OEI3NiAvKiBCdWlsZCBjb25m
aWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldURiIgKi8gPSB7CiAJCQlpc2EgPSBYQ0Nv
bmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvaWN1L3VuaWNvZGUvdWJyay5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91
YnJrLmgKaW5kZXggZTljMGVmNjI3YjY3Mjc5Zjg2ZTQ2MDQ0YmYwZjI1NzEwMmUwYzZjZC4uMTk3
NWI5ZGJlZDQ0M2E5Mjc0MzZmMGEyNzkyOWJhNThhZjg3MTgyNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9pY3UvdW5pY29kZS91YnJrLmgKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91YnJr
LmgKQEAgLTI0MSw2ICsyNDEsMzEgQEAgdWJya19vcGVuUnVsZXMoY29uc3QgVUNoYXIgICAgICpy
dWxlcywKICAgICAgICAgICAgICAgIFVFcnJvckNvZGUgICAgICAqc3RhdHVzKTsKIAogLyoqCisg
KiBPcGVuIGEgbmV3IFVCcmVha0l0ZXJhdG9yIGZvciBsb2NhdGluZyB0ZXh0IGJvdW5kYXJpZXMg
dXNpbmcgcHJlY29tcGlsZWQgYmluYXJ5IHJ1bGVzLgorICogT3BlbmluZyBhIFVCcmVha0l0ZXJh
dG9yIHRoaXMgd2F5IGlzIHN1YnN0YW50aWFsbHkgZmFzdGVyIHRoYW4gdXNpbmcgdWJya19vcGVu
UnVsZXMuCisgKiBCaW5hcnkgcnVsZXMgbWF5IGJlIG9idGFpbmVkIHVzaW5nIHVicmtfZ2V0Qmlu
YXJ5UnVsZXMuIFRoZSBjb21waWxlZCBydWxlcyBhcmUgbm90CisgKiBjb21wYXRpYmxlIGFjcm9z
cyBkaWZmZXJlbnQgbWFqb3IgdmVyc2lvbnMgb2YgSUNVLCBub3IgYWNyb3NzIHBsYXRmb3JtcyBv
ZiBkaWZmZXJlbnQKKyAqIGVuZGlhbm5lc3Mgb3IgZGlmZmVyZW50IGJhc2UgY2hhcmFjdGVyIHNl
dCBmYW1pbHkgKEFTQ0lJIHZzIEVCQ0RJQykuCisgKiBAcGFyYW0gYmluYXJ5UnVsZXMgQSBzZXQg
b2YgY29tcGlsZWQgYmluYXJ5IHJ1bGVzIHNwZWNpZnlpbmcgdGhlIHRleHQgYnJlYWtpbmcKKyAq
ICAgICAgICAgICAgICAgICAgICBjb252ZW50aW9ucy4gT3duZXJzaGlwIG9mIHRoZSBzdG9yYWdl
IGNvbnRhaW5pbmcgdGhlIGNvbXBpbGVkCisgKiAgICAgICAgICAgICAgICAgICAgcnVsZXMgcmVt
YWlucyB3aXRoIHRoZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbi4gVGhlIGNvbXBpbGVkCisgKiAg
ICAgICAgICAgICAgICAgICAgcnVsZXMgbXVzdCBub3QgYmUgbW9kaWZpZWQgb3IgZGVsZXRlZCBk
dXJpbmcgdGhlIGxpZmUgb2YgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaXRlcmF0
b3IuCisgKiBAcGFyYW0gcnVsZXNMZW5ndGggVGhlIGxlbmd0aCBvZiBiaW5hcnlSdWxlcyBpbiBi
eXRlczsgbXVzdCBiZSA+PSAwLgorICogQHBhcmFtIHRleHQgICAgICAgIFRoZSB0ZXh0IHRvIGJl
IGl0ZXJhdGVkIG92ZXIuICBNYXkgYmUgbnVsbCwgaW4gd2hpY2ggY2FzZQorICogICAgICAgICAg
ICAgICAgICAgIHVicmtfc2V0VGV4dCgpIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgdGV4dCB0byBi
ZSBpdGVyYXRlZC4KKyAqIEBwYXJhbSB0ZXh0TGVuZ3RoICBUaGUgbnVtYmVyIG9mIGNoYXJhY3Rl
cnMgaW4gdGV4dCwgb3IgLTEgaWYgbnVsbC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHN0YXR1cyAg
ICAgIFBvaW50ZXIgdG8gVUVycm9yQ29kZSB0byByZWNlaXZlIGFueSBlcnJvcnMuCisgKiBAcmV0
dXJuICAgICAgICAgICAgVUJyZWFrSXRlcmF0b3IgZm9yIHRoZSBzcGVjaWZpZWQgcnVsZXMuCisg
KiBAc2VlIHVicmtfZ2V0QmluYXJ5UnVsZXMKKyAqIEBkcmFmdCBJQ1UgNTkKKyAqLworVV9EUkFG
VCBVQnJlYWtJdGVyYXRvciogVV9FWFBPUlQyCit1YnJrX29wZW5CaW5hcnlSdWxlcyhjb25zdCB1
aW50OF90ICpiaW5hcnlSdWxlcywgaW50MzJfdCBydWxlc0xlbmd0aCwKKyAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFVDaGFyICogIHRleHQsIGludDMyX3QgdGV4dExlbmd0aCwKKyAgICAgICAg
ICAgICAgICAgICAgIFVFcnJvckNvZGUgKiAgIHN0YXR1cyk7CisKKy8qKgogICogVGhyZWFkIHNh
ZmUgY2xvbmluZyBvcGVyYXRpb24KICAqIEBwYXJhbSBiaSBpdGVyYXRvciB0byBiZSBjbG9uZWQK
ICAqIEBwYXJhbSBzdGFja0J1ZmZlciA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGFzIG9m
IElDVSA1MiwgdXNlIE5VTEwuPC9lbT48YnI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDgxYWY5
MTI3NjEwNmI4MTI4OTE3ZGI4Yzc5Y2YyNTRiMmU0ZDhjZjAuLmQxNzU5NWM5MzhmYzY4OWI1MGUw
OTNkNmFjZmQzZmY5ZDhjYzFiMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC0zMDEsNiArMzAx
LDE1IEBAIGlmIChOT1QgVVNFX1NZU1RFTV9NQUxMT0MpCiAgICAgbGlzdChBUFBFTkQgV1RGX0xJ
QlJBUklFUyBibWFsbG9jKQogZW5kaWYgKCkKIAorYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9V
VFBVVCAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy5jcHAKKyAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElSfS9TY3Jp
cHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weQorICAgIERFUEVORFMgJHtDTUFLRV9D
VVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMudHh0CisgICAgQ09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dURl9ESVJ9
L1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGN1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVz
L0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgPiAke0RFUklWRURfU09VUkNFU19XVEZf
RElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAKKyAgICBW
RVJCQVRJTSkKK2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dURl9E
SVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCkKK0FERF9T
T1VSQ0VfREVQRU5ERU5DSUVTKCR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFr
aW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCAke0RFUklWRURfU09VUkNF
U19XVEZfRElSfS9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAp
CisKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgdW5pY29kZS9pY3UvQ29sbGF0b3JJQ1Uu
Y3BwCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDY2NmFmZmZh
NzZhNzBkYTYwZWFlMzYxNjc2Y2Q3ZDUwMmRiNTE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMCwwICsxLDUwIEBACisjIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitCUkVBS0lOR19SVUxFU19GSUxFUyA9IFwKKyAg
ICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5icmsKKworQlJFQUtJ
TkdfUlVMRVNfREVGSU5JVElPTlM9JChCUkVBS0lOR19SVUxFU19GSUxFUzouYnJrPS5jcHApCisK
K2lmZXEgKCQoc2hlbGwgJChDQykgLXN0ZD1nbnUrKzExIC14IGMrKyAtRSAtUCAtZE0gJChTREtf
RkxBR1MpICQoRlJBTUVXT1JLX0ZMQUdTKSAkKEhFQURFUl9GTEFHUykgLUkgJChXVEYpIC1pbmNs
dWRlICIkKFdURikvd3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8IGdyZXAgJyBXVEZfUExBVEZP
Uk1fSU9TICcgfCBjdXQgLWQnICcgLWYzKSwgMSkKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMQor
ZWxzZQorICAgIFdURl9QTEFURk9STV9JT1MgPSAwCitlbmRpZgorCitpZmVxICgkKFdURl9QTEFU
Rk9STV9JT1MpLCAxKQorCURFUEVOREVOQ0lFUyA9CitlbHNlCisJREVQRU5ERU5DSUVTID0gJChC
UkVBS0lOR19SVUxFU19ERUZJTklUSU9OUykKKwlpZmVxICgkKEhBVkVfSUNVR0VOQlJLKSwgMSkK
KwkJREVQRU5ERU5DSUVTICs9ICQoQlJFQUtJTkdfUlVMRVNfRklMRVMpCisJZW5kaWYKK2VuZGlm
CisKK2FsbCA6ICQoREVQRU5ERU5DSUVTKQorCitCcmVha2luZ1J1bGVzLyUuYnJrIDogJChXVEYp
L3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAor
CWljdWdlbmJyayAtYyAtciAkPCAtbyAkQAorCitCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy5jcHAgOiAkKFdURikvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0CisJcHl0aG9uICQoV1RGKS9TY3JpcHRzL0dlbmVyYXRl
QnJlYWtpbmdSdWxlU3RyaW5ncy5weSBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMgJDwgPiAk
QApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVs
ZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjM2ZWE4MTI3
ZmYzY2NlYTE3NTkxZmZjYjUxMTJlOWUwNWQxY2I0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50
eHQKQEAgLTAsMCArMSwxMjkgQEAKKyMgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9y
ZykKKyMgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBydWxlIHNldCBpcyBi
YXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVsZXMgb2YgSUNVIDU3CisjIDxodHRw
Oi8vc291cmNlLmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0x
L3NvdXJjZS9kYXRhL2Jya2l0ci8+LgorIyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUg
b3JpZ2luYWwgb25lcyBhcmUgbGlzdGVkIGJlbG93OgorIyAqIFJlcGxhY2VkICdbXHB7R3JhcGhl
bWVfQ2x1c3Rlcl9CcmVhayA9IFNwYWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVn
b3J5ID0gU3BhY2luZyBNYXJrfSAtICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOwor
IyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVy
IHByZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKKyMgKiBBZGRlZCBydWxlcyB0aGF0IHBy
ZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxh
bmd1YWdlcyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKKyMgKiBBZGRlZCBydWxlcyB0
aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lk
dGgga2F0YWthcmEgdm9pY2VkIG1hcmtzLgorIyAqIEFkZGVkIHJ1bGVzIGZvciByZWdpb25hbCBp
bmRpY2F0b3Igc3ltYm9scy4KKworJENSICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVh
ayA9IENSfV07CiskTEYgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsK
KyRDb250cm9sID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDb250cm9sfV07CiskVm9p
Y2VNYXJrcyA9IFtcdUZGOUVcdUZGOUZdOyAjIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0YWthbmEg
dm9pY2VkIG1hcmtzCiskRXh0ZW5kICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0
ZW5kfSAkVm9pY2VNYXJrcyAtIFtcdTBFMzAgXHUwRTMyIFx1MEU0NSBcdTBFQjAgXHUwRUIyXV07
CiskU3BhY2luZ01hcmsgPSBbW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAt
ICRFeHRlbmRdOworJEwgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEx9XTsK
KyRWICAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBWfV07CiskVCAgICAgICA9
IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOworJExWICAgICAgPSBbXHB7R3JhcGhl
bWVfQ2x1c3Rlcl9CcmVhayA9IExWfV07CiskTFZUICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVy
X0JyZWFrID0gTFZUfV07CiskSGluMCAgICA9IFtcdTA5MDUtXHUwOTM5XTsgIyBEZXZhbmFnYXJp
IExldHRlciBBLC4uLixIYQorJEhpblYgICAgPSBcdTA5NEQ7ICMgRGV2YW5hZ2FyaSBTaWduIFZp
cmFtYQorJEhpbjEgICAgPSBbXHUwOTE1LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgS2Es
Li4uLEhhCiskQmVuMCAgICA9IFtcdTA5ODUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBBLC4u
LixIYQorJEJlblYgICAgPSBcdTA5Q0Q7ICMgQmVuZ2FsaSBTaWduIFZpcmFtYQorJEJlbjEgICAg
PSBbXHUwOTk1LVx1MDlCOV07ICMgQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCiskUGFuMCAgICA9
IFtcdTBBMDUtXHUwQTM5XTsgIyBHdXJtdWtoaSBMZXR0ZXIgQSwuLi4sSGEKKyRQYW5WICAgID0g
XHUwQTREOyAjIEd1cm11a2hpIFNpZ24gVmlyYW1hCiskUGFuMSAgICA9IFtcdTBBMTUtXHUwQTM5
XTsgIyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCiskR3VqMCAgICA9IFtcdTBBODUtXHUwQUI5
XTsgIyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKKyRHdWpWICAgID0gXHUwQUNEOyAjIEd1amFy
YXRpIFNpZ24gVmlyYW1hCiskR3VqMSAgICA9IFtcdTBBOTUtXHUwQUI5XTsgIyBHdWphcmF0aSBM
ZXR0ZXIgS2EsLi4uLEhhCiskT3JpMCAgICA9IFtcdTBCMDUtXHUwQjM5XTsgIyBPcml5YSBMZXR0
ZXIgQSwuLi4sSGEKKyRPcmlWICAgID0gXHUwQjREOyAjIE9yaXlhIFNpZ24gVmlyYW1hCiskT3Jp
MSAgICA9IFtcdTBCMTUtXHUwQjM5XTsgIyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCiskVGVsMCAg
ICA9IFtcdTBDMDUtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEEsLi4uLEhhCiskVGVsViAgICA9
IFx1MEM0RDsgIyBUZWx1Z3UgU2lnbiBWaXJhbWEKKyRUZWwxICAgID0gW1x1MEMxNC1cdTBDMzld
OyAjIFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCiskS2FuMCAgICA9IFtcdTBDODUtXHUwQ0I5XTsg
IyBLYW5uYWRhIExldHRlciBBLC4uLixIYQorJEthblYgICAgPSBcdTBDQ0Q7ICMgS2FubmFkYSBT
aWduIFZpcmFtYQorJEthbjEgICAgPSBbXHUwQzk1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIg
QSwuLi4sSGEKKyRNYWwwICAgID0gW1x1MEQwNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIg
QSwuLi4sSGEgCiskTWFsViAgICA9IFx1MEQ0RDsgIyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKKyRN
YWwxICAgID0gW1x1MEQxNS1cdTBEMzldOyAjIE1hbGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKKyRS
SSAgICAgID0gW1xVMDAwMUYxRTYtXFUwMDAxRjFGRl07ICMgRW1vamkgcmVnaW9uYWwgaW5kaWNh
dG9ycworJFpXSiAgICAgPSBcdTIwMEQ7ICMgWmVybyB3aWR0aCBqb2luZXIKKyRFbW9qaVZhciA9
IFtcdUZFMEZdOyAjIEVtb2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgorJEVtb2ppRm9yU2Vx
cyA9IFtcdTI2NDAgXHUyNjQyIFx1MjZGOSBcdTI3NjQgXFUwMDAxRjMwOCBcVTAwMDFGM0MzLVxV
MDAwMUYzQzQgXFUwMDAxRjNDQS1cVTAwMDFGM0NDIFxVMDAwMUYzRjMgXFUwMDAxRjQ0MSBcVTAw
MDFGNDY2LVxVMDAwMUY0NjkgXFUwMDAxRjQ2RS1cVTAwMDFGNDZGIFxVMDAwMUY0NzEgXFUwMDAx
RjQ3MyBcVTAwMDFGNDc3IFxVMDAwMUY0ODEtXFUwMDAxRjQ4MiBcVTAwMDFGNDg2LVxVMDAwMUY0
ODcgXFUwMDAxRjQ4QiBcVTAwMDFGNTc1IFxVMDAwMUY1RTggXFUwMDAxRjY0NS1cVTAwMDFGNjQ3
IFxVMDAwMUY2NEIgXFUwMDAxRjY0RC1cVTAwMDFGNjRFIFxVMDAwMUY2QTMgXFUwMDAxRjZCNC1c
VTAwMDFGNkI2IFx1MjY5NS1cdTI2OTYgXHUyNzA4IFxVMDAwMUYzM0UgXFUwMDAxRjM3MyBcVTAw
MDFGMzkzIFxVMDAwMUYzQTQgXFUwMDAxRjNBOCBcVTAwMDFGM0VCIFxVMDAwMUYzRUQgXFUwMDAx
RjRCQi1cVTAwMDFGNEJDIFxVMDAwMUY1MjcgXFUwMDAxRjUyQyBcVTAwMDFGNjgwIFxVMDAwMUY2
OTIgXFUwMDAxRjkyNiBcVTAwMDFGOTM3LVxVMDAwMUY5MzkgXFUwMDAxRjkzQy1cVTAwMDFGOTNF
XTsgIyBFbW9qaSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaUZvck1v
ZHMgPSBbXHUyNjFEIFx1MjZGOSBcdTI3MEEtXHUyNzBEIFxVMDAwMUYzODUgXFUwMDAxRjNDMy1c
VTAwMDFGM0M0IFxVMDAwMUYzQ0EgXFUwMDAxRjNDQiBcVTAwMDFGNDQyLVxVMDAwMUY0NDMgXFUw
MDAxRjQ0Ni1cVTAwMDFGNDUwIFxVMDAwMUY0NjYtXFUwMDAxRjQ3OCBcVTAwMDFGNDdDIFxVMDAw
MUY0ODEtXFUwMDAxRjQ4MyBcVTAwMDFGNDg1LVxVMDAwMUY0ODcgXFUwMDAxRjRBQSBcVTAwMDFG
NTc1IFxVMDAwMUY1OTAgXFUwMDAxRjU5NSBcVTAwMDFGNTk2IFxVMDAwMUY2NDUtXFUwMDAxRjY0
NyBcVTAwMDFGNjRCLVxVMDAwMUY2NEYgXFUwMDAxRjZBMyBcVTAwMDFGNkI0LVxVMDAwMUY2QjYg
XFUwMDAxRjZDMCBcVTAwMDFGOTE4IFxVMDAwMUYzQzIgXFUwMDAxRjNDNyBcVTAwMDFGM0NDIFxV
MDAwMUY1NzQgXFUwMDAxRjU3QSBcVTAwMDFGNkNDIFxVMDAwMUY5MTktXFUwMDAxRjkxRSBcVTAw
MDFGOTI2IFxVMDAwMUY5MzAgXFUwMDAxRjkzMy1cVTAwMDFGOTM5IFxVMDAwMUY5M0MtXFUwMDAx
RjkzRV0gOyAjIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmljayBtb2RpZmllcnMKKyRFbW9qaU1v
ZHMgPSBbXFUwMDAxRjNGQi1cVTAwMDFGM0ZGXTsgIyBGaXR6cGF0cmljayBtb2RpZmllcnMKKwor
ISFjaGFpbjsKKyEhUklOb0NoYWluOworISFmb3J3YXJkOworCiskQ1IgJExGOworJEwgKCRMIHwg
JFYgfCAkTFYgfCAkTFZUKTsKKygkTFYgfCAkVikgKCRWIHwgJFQpOworKCRMVlQgfCAkVCkgJFQ7
CisKKyRSSSAkUkkgJEV4dGVuZCogLyAkUkk7CiskUkkgJFJJICRFeHRlbmQqOworW14kQ29udHJv
bCAkQ1IgJExGXSAkRXh0ZW5kOworW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7CisK
KyRIaW4wICRIaW5WICRIaW4xOyAjIERldmFuYWdhcmkgVmlyYW1hIChmb3J3YXJkKQorJEJlbjAg
JEJlblYgJEJlbjE7ICMgQmVuZ2FsaSBWaXJhbWEgKGZvcndhcmQpCiskUGFuMCAkUGFuViAkUGFu
MTsgIyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCiskR3VqMCAkR3VqViAkR3VqMTsgIyBHdWph
cmF0aSBWaXJhbWEgKGZvcndhcmQpCiskT3JpMCAkT3JpViAkT3JpMTsgIyBPcml5YSBWaXJhbWEg
KGZvcndhcmQpCiskVGVsMCAkVGVsViAkVGVsMTsgIyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQor
JEthbjAgJEthblYgJEthbjE7ICMgS2FubmFkYSBWaXJhbWEgKGZvcndhcmQpCiskTWFsMCAkTWFs
ViAkTWFsMTsgIyBNYWxheWFsYW0gVmlyYW1hIChmb3J3YXJkKQorJFpXSiAkRW1vamlGb3JTZXFz
OyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2ppRm9yTW9kcyAkRW1v
amlWYXI/ICRFbW9qaU1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2ppIChw
b3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlmaWVy
CisKKyEhcmV2ZXJzZTsKKyRMRiAkQ1I7CisoJEwgfCAkViB8ICRMViB8ICRMVlQpICRMOworKCRW
IHwgJFQpICgkTFYgfCAkVik7CiskVCAoJExWVCB8ICRUKTsKKworJEV4dGVuZCogJFJJICRSSSAv
ICRFeHRlbmQqICRSSSAkUkk7CiskRXh0ZW5kKiAkUkkgJFJJOworJEV4dGVuZCAgICAgIFteJENv
bnRyb2wgJENSICRMRl07CiskU3BhY2luZ01hcmsgW14kQ29udHJvbCAkQ1IgJExGXTsKKworJEhp
bjEgJEhpblYgJEhpbjA7ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQorJEJlbjEgJEJl
blYgJEJlbjA7ICMgQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQorJFBhbjEgJFBhblYgJFBhbjA7
ICMgR3VybXVraGkgVmlyYW1hIChiYWNrd2FyZCkKKyRHdWoxICRHdWpWICRHdWowOyAjIEd1amFy
YXRpIFZpcmFtYSAoYmFja3dhcmQpCiskT3JpMSAkT3JpViAkT3JpMDsgIyBHdWphcmF0aSBWaXJh
bWEgKGJhY2t3YXJkKQorJFRlbDEgJFRlbFYgJFRlbDA7ICMgVGVsdWd1IFZpcmFtYSAoYmFja3dh
cmQpCiskS2FuMSAkS2FuViAkS2FuMDsgIyBLYW5uYWRhIFZpcmFtYSAoYmFja3dhcmQpCiskTWFs
MSAkTWFsViAkTWFsMDsgIyBNYWxheWFsYW0gVmlyYW1hIChiYWNrd2FyZCkKKyRFbW9qaUZvclNl
cXMgJFpXSjsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKKyRFbW9qaU1vZHMg
JEVtb2ppVmFyPyAkRW1vamlGb3JNb2RzOyAjIERvbnQgYnJlYWsgYmV0d2VlbiByZWxldmFudCBl
bW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBt
b2RpZmllcgorCishIXNhZmVfcmV2ZXJzZTsKKyRSSSAkUkkrOworWyRFbW9qaVZhciAkRW1vamlN
b2RzXSsgJEVtb2ppRm9yTW9kczsKKyEhc2FmZV9mb3J3YXJkOworJFJJICRSSSs7CiskRW1vamlG
b3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRC
cmVha0l0ZXJhdG9yLmNwcAppbmRleCAxZWRjMzJhNWQ1YmIwNmRlMDcyMWNjMGI0MThjMjdjMGRl
YjhkNTExLi4yNDkwZTM0Nzg5ZjIyZjEzZTA2ZTJiNTE1NDAxZjhjZmMxYmEwMDdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcApAQCAtMzEsOSArMzEsNiBAQAog
I2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KIAotLy8gRklYTUU6IFRoaXMgbmVlZHMgYSBiZXR0ZXIgbmFtZQotI2RlZmluZSBBRERJ
VElPTkFMX0VNT0pJX1NVUFBPUlQgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDApKQotCiBuYW1lc3BhY2Ug
V1RGIHsKIAogLy8gSXRlcmF0b3IgaW5pdGlhbGl6YXRpb24KQEAgLTYxLDYgKzU4LDEyIEBAIHN0
YXRpYyBVQnJlYWtJdGVyYXRvciogaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGNvbnN0IGNo
YXIqIGJyZWFrUnVsZXMpCiAKICNlbmRpZgogCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRG
T1JNKElPUykKK1VCcmVha0l0ZXJhdG9yKiBjcmVhdGVDdXJzb3JQcmVjb21waWxlZEl0ZXJhdG9y
KCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgogCiAvLyBJdGVyYXRvciB0ZXh0
IHNldHRpbmcKIApAQCAtMTY0LDE0MyArMTY3LDI3IEBAIFVCcmVha0l0ZXJhdG9yKiBzZW50ZW5j
ZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiAgICAgcmV0dXJuIHNldFRleHRGb3JJ
dGVyYXRvcigqc3RhdGljU2VudGVuY2VCcmVha0l0ZXJhdG9yLCBzdHJpbmcpOwogfQogCisjaWYg
IVBMQVRGT1JNKElPUykKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogY3JlYXRlQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvcldpdGhGYWxsYmFjaygpCit7CisgICAgaWYgKGF1dG8qIGl0ZXJhdG9yID0gY3Jl
YXRlQ3Vyc29yUHJlY29tcGlsZWRJdGVyYXRvcigpKQorICAgICAgICByZXR1cm4gaXRlcmF0b3I7
CisgICAgcmV0dXJuIGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhjdXJzb3JNb3ZlbWVudEl0
ZXJhdG9yUnVsZXMpOworfQorI2VuZGlmCisKIFVCcmVha0l0ZXJhdG9yKiBjdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQogewogI2lmICFQTEFURk9STShJT1MpCi0gICAg
Ly8gVGhpcyBydWxlIHNldCBpcyBiYXNlZCBvbiBjaGFyYWN0ZXItYnJlYWsgaXRlcmF0b3IgcnVs
ZXMgb2YgSUNVIDU3Ci0gICAgLy8gPGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9z
L2ljdS9pY3UvdGFncy9yZWxlYXNlLTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCi0gICAgLy8g
VGhlIG1ham9yIGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBi
ZWxvdzoKLSAgICAvLyAqIFJlcGxhY2VkICdbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFNw
YWNpbmdNYXJrfV0nIHdpdGggJ1tccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2luZyBNYXJrfSAt
ICRFeHRlbmRdJyBmb3IgSUNVIDMuOCBvciBlYXJsaWVyOwotICAgIC8vICogUmVtb3ZlZCBydWxl
cyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgcHJlcGVuZCBjaGFyYWN0
ZXJzIChCdWcgMjQzNDIpOwotICAgIC8vICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vy
c29yIGZyb20gbW92aW5nIGFmdGVyIHZpcmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhj
ZXB0IFRhbWlsIChCdWcgMTU3OTApLCBhbmQ7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHBy
ZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3ZpbmcgYmVmb3JlIEphcGFuZXNlIGhhbGYtd2lkdGgga2F0
YWthcmEgdm9pY2VkIG1hcmtzLgotICAgIC8vICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lvbmFsIGlu
ZGljYXRvciBzeW1ib2xzLgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBrUnVsZXMgPQotICAgICAg
ICAiJENSICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOyIKLSAgICAg
ICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsiCi0gICAg
ICAgICIkQ29udHJvbCA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsi
Ci0gICAgICAgICIkVm9pY2VNYXJrcyA9IFtcXHVGRjlFXFx1RkY5Rl07IiAvLyBKYXBhbmVzZSBo
YWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcwotICAgICAgICAiJEV4dGVuZCAgPSBbXFxw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1xcdTBFMzAg
XFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVCMl1dOyIKLSAgICAgICAgIiRTcGFjaW5nTWFy
ayA9IFtbXFxwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9XSAtICRFeHRlbmRdOyIK
LSAgICAgICAgIiRMICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTH1dOyIK
LSAgICAgICAgIiRWICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVn1dOyIK
LSAgICAgICAgIiRUICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gVH1dOyIK
LSAgICAgICAgIiRMViAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsi
Ci0gICAgICAgICIkTFZUICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1d
OyIKLSAgICAgICAgIiRIaW4wICAgID0gW1xcdTA5MDUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJp
IExldHRlciBBLC4uLixIYQotICAgICAgICAiJEhpblYgICAgPSBcXHUwOTREOyIgLy8gRGV2YW5h
Z2FyaSBTaWduIFZpcmFtYQotICAgICAgICAiJEhpbjEgICAgPSBbXFx1MDkxNS1cXHUwOTM5XTsi
IC8vIERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEJlbjAgICAgPSBbXFx1
MDk4NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkQmVu
ViAgICA9IFxcdTA5Q0Q7IiAvLyBCZW5nYWxpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkQmVuMSAg
ICA9IFtcXHUwOTk1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAg
ICAgICIkUGFuMCAgICA9IFtcXHUwQTA1LVxcdTBBMzldOyIgLy8gR3VybXVraGkgTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkUGFuViAgICA9IFxcdTBBNEQ7IiAvLyBHdXJtdWtoaSBTaWduIFZp
cmFtYQotICAgICAgICAiJFBhbjEgICAgPSBbXFx1MEExNS1cXHUwQTM5XTsiIC8vIEd1cm11a2hp
IExldHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRHdWowICAgID0gW1xcdTBBODUtXFx1MEFCOV07
IiAvLyBHdWphcmF0aSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRHdWpWICAgID0gXFx1MEFD
RDsiIC8vIEd1amFyYXRpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkR3VqMSAgICA9IFtcXHUwQTk1
LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJE9yaTAg
ICAgPSBbXFx1MEIwNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBBLC4uLixIYQotICAgICAg
ICAiJE9yaVYgICAgPSBcXHUwQjREOyIgLy8gT3JpeWEgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRP
cmkxICAgID0gW1xcdTBCMTUtXFx1MEIzOV07IiAvLyBPcml5YSBMZXR0ZXIgS2EsLi4uLEhhCi0g
ICAgICAgICIkVGVsMCAgICA9IFtcXHUwQzA1LVxcdTBDMzldOyIgLy8gVGVsdWd1IExldHRlciBB
LC4uLixIYQotICAgICAgICAiJFRlbFYgICAgPSBcXHUwQzREOyIgLy8gVGVsdWd1IFNpZ24gVmly
YW1hCi0gICAgICAgICIkVGVsMSAgICA9IFtcXHUwQzE0LVxcdTBDMzldOyIgLy8gVGVsdWd1IExl
dHRlciBLYSwuLi4sSGEKLSAgICAgICAgIiRLYW4wICAgID0gW1xcdTBDODUtXFx1MENCOV07IiAv
LyBLYW5uYWRhIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEthblYgICAgPSBcXHUwQ0NEOyIg
Ly8gS2FubmFkYSBTaWduIFZpcmFtYQotICAgICAgICAiJEthbjEgICAgPSBbXFx1MEM5NS1cXHUw
Q0I5XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkTWFsMCAgICA9IFtc
XHUwRDA1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixIYQotICAgICAgICAi
JE1hbFYgICAgPSBcXHUwRDREOyIgLy8gTWFsYXlhbGFtIFNpZ24gVmlyYW1hCi0gICAgICAgICIk
TWFsMSAgICA9IFtcXHUwRDE1LVxcdTBEMzldOyIgLy8gTWFsYXlhbGFtIExldHRlciBBLC4uLixI
YQotICAgICAgICAiJFJJICAgICAgPSBbXFxVMDAwMUYxRTYtXFxVMDAwMUYxRkZdOyIgLy8gRW1v
amkgcmVnaW9uYWwgaW5kaWNhdG9ycwotICAgICAgICAiJFpXSiAgICAgPSBcXHUyMDBEOyIgLy8g
WmVybyB3aWR0aCBqb2luZXIKLSAgICAgICAgIiRFbW9qaVZhciA9IFtcXHVGRTBGXTsiIC8vIEVt
b2ppLXN0eWxlIHZhcmlhdGlvbiBzZWxlY3RvcgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9S
VAotICAgICAgICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNjQwIFxcdTI2NDIgXFx1MjZGOSBcXHUy
NzY0IFxcVTAwMDFGMzA4IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFGM0NBLVxcVTAw
MDFGM0NDIFxcVTAwMDFGM0YzIFxcVTAwMDFGNDQxIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxc
VTAwMDFGNDZFLVxcVTAwMDFGNDZGIFxcVTAwMDFGNDcxIFxcVTAwMDFGNDczIFxcVTAwMDFGNDc3
IFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgyIFxcVTAwMDFGNDg2LVxcVTAwMDFGNDg3IFxcVTAwMDFG
NDhCIFxcVTAwMDFGNTc1IFxcVTAwMDFGNUU4IFxcVTAwMDFGNjQ1LVxcVTAwMDFGNjQ3IFxcVTAw
MDFGNjRCIFxcVTAwMDFGNjRELVxcVTAwMDFGNjRFIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxc
VTAwMDFGNkI2IFxcdTI2OTUtXFx1MjY5NiBcXHUyNzA4IFxcVTAwMDFGMzNFIFxcVTAwMDFGMzcz
IFxcVTAwMDFGMzkzIFxcVTAwMDFGM0E0IFxcVTAwMDFGM0E4IFxcVTAwMDFGM0VCIFxcVTAwMDFG
M0VEIFxcVTAwMDFGNEJCLVxcVTAwMDFGNEJDIFxcVTAwMDFGNTI3IFxcVTAwMDFGNTJDIFxcVTAw
MDFGNjgwIFxcVTAwMDFGNjkyIFxcVTAwMDFGOTI2IFxcVTAwMDFGOTM3LVxcVTAwMDFGOTM5IFxc
VTAwMDFGOTNDLVxcVTAwMDFGOTNFXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldK
IHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI2RjkgXFx1
MjcwQS1cXHUyNzBEIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFGM0M0IFxcVTAwMDFG
M0NBIFxcVTAwMDFGM0NCIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAwMDFGNDQ2LVxcVTAw
MDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxc
VTAwMDFGNDgzIFxcVTAwMDFGNDg1LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTc1
IFxcVTAwMDFGNTkwIFxcVTAwMDFGNTk1IFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFG
NjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAw
MDFGNkI2IFxcVTAwMDFGNkMwIFxcVTAwMDFGOTE4IFxcVTAwMDFGM0MyIFxcVTAwMDFGM0M3IFxc
VTAwMDFGM0NDIFxcVTAwMDFGNTc0IFxcVTAwMDFGNTdBIFxcVTAwMDFGNkNDIFxcVTAwMDFGOTE5
LVxcVTAwMDFGOTFFIFxcVTAwMDFGOTI2IFxcVTAwMDFGOTMwIFxcVTAwMDFGOTMzLVxcVTAwMDFG
OTM5IFxcVTAwMDFGOTNDLVxcVTAwMDFGOTNFXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBh
dHJpY2sgbW9kaWZpZXJzCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVha0l0ZXJhdG9y
Kj4gc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGNyZWF0ZUN1cnNvck1vdmVtZW50SXRl
cmF0b3JXaXRoRmFsbGJhY2soKTsKICNlbHNlCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xc
dTI3NjQgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0OEJdOyIgLy8gRW1vamkgdGhh
dCBwYXJ0aWNpcGF0ZSBpbiBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0g
W1xcdTI2MUQgXFx1MjcwQS1cXHUyNzBDIFxcVTAwMDFGMzg1IFxcVTAwMDFGM0MzLVxcVTAwMDFG
M0M0IFxcVTAwMDFGM0M3IFxcVTAwMDFGM0NBIFxcVTAwMDFGNDQyLVxcVTAwMDFGNDQzIFxcVTAw
MDFGNDQ2LVxcVTAwMDFGNDUwIFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAwMDFGNDZFLVxc
VTAwMDFGNDc4IFxcVTAwMDFGNDdDIFxcVTAwMDFGNDgxLVxcVTAwMDFGNDgzIFxcVTAwMDFGNDg1
LVxcVTAwMDFGNDg3IFxcVTAwMDFGNEFBIFxcVTAwMDFGNTk2IFxcVTAwMDFGNjQ1LVxcVTAwMDFG
NjQ3IFxcVTAwMDFGNjRCLVxcVTAwMDFGNjRGIFxcVTAwMDFGNkEzIFxcVTAwMDFGNkI0LVxcVTAw
MDFGNkI2IFxcVTAwMDFGNkMwXSA7IiAvLyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJpY2sgbW9k
aWZpZXJzCi0jZW5kaWYKLSAgICAgICAgIiRFbW9qaU1vZHMgPSBbXFxVMDAwMUYzRkItXFxVMDAw
MUYzRkZdOyIgLy8gRml0enBhdHJpY2sgbW9kaWZpZXJzCi0gICAgICAgICIhIWNoYWluOyIKLSNp
ZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiEhUklOb0NoYWluOyIKLSNlbmRp
ZgotICAgICAgICAiISFmb3J3YXJkOyIKLSAgICAgICAgIiRDUiAkTEY7IgotICAgICAgICAiJEwg
KCRMIHwgJFYgfCAkTFYgfCAkTFZUKTsiCi0gICAgICAgICIoJExWIHwgJFYpICgkViB8ICRUKTsi
Ci0gICAgICAgICIoJExWVCB8ICRUKSAkVDsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JU
Ci0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqIC8gJFJJOyIKLSAgICAgICAgIiRSSSAkUkkgJEV4
dGVuZCo7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAg
IlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSNlbHNlCi0gICAgICAgICJbXiRD
b250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAk
U3BhY2luZ01hcms7IgotICAgICAgICAiJFJJICRSSSAvICRSSTsiCi0gICAgICAgICIkUkkgJFJJ
OyIKLSNlbmRpZgotICAgICAgICAiJEhpbjAgJEhpblYgJEhpbjE7IiAvLyBEZXZhbmFnYXJpIFZp
cmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRCZW4wICRCZW5WICRCZW4xOyIgLy8gQmVuZ2FsaSBW
aXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkUGFuMCAkUGFuViAkUGFuMTsiIC8vIEd1cm11a2hp
IFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRHdWowICRHdWpWICRHdWoxOyIgLy8gR3VqYXJh
dGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE9yaTAgJE9yaVYgJE9yaTE7IiAvLyBPcml5
YSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkVGVsMCAkVGVsViAkVGVsMTsiIC8vIFRlbHVn
dSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkS2FuMCAkS2FuViAkS2FuMTsiIC8vIEthbm5h
ZGEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJE1hbDAgJE1hbFYgJE1hbDE7IiAvLyBNYWxh
eWFsYW0gVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFpXSiAkRW1vamlGb3JTZXFzOyIgLy8g
RG9uJ3QgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppRm9yTW9k
cyAkRW1vamlWYXI/ICRFbW9qaU1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50
IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNr
IG1vZGlmaWVyCi0gICAgICAgICIhIXJldmVyc2U7IgotICAgICAgICAiJExGICRDUjsiCi0gICAg
ICAgICIoJEwgfCAkViB8ICRMViB8ICRMVlQpICRMOyIKLSAgICAgICAgIigkViB8ICRUKSAoJExW
IHwgJFYpOyIKLSAgICAgICAgIiRUICgkTFZUIHwgJFQpOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJ
X1NVUFBPUlQKLSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOyIK
LSAgICAgICAgIiRFeHRlbmQqICRSSSAkUkk7IgotICAgICAgICAiJEV4dGVuZCAgICAgIFteJENv
bnRyb2wgJENSICRMRl07IgotICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRM
Rl07IgotI2Vsc2UKLSAgICAgICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIK
LSAgICAgICAgIiRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRS
SSAkUkkgLyAkUkkgJFJJOyIKLSAgICAgICAgIiRSSSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIk
SGluMSAkSGluViAkSGluMDsiIC8vIERldmFuYWdhcmkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAg
ICAgIiRCZW4xICRCZW5WICRCZW4wOyIgLy8gQmVuZ2FsaSBWaXJhbWEgKGJhY2t3YXJkKQotICAg
ICAgICAiJFBhbjEgJFBhblYgJFBhbjA7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQot
ICAgICAgICAiJEd1ajEgJEd1alYgJEd1ajA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJk
KQotICAgICAgICAiJE9yaTEgJE9yaVYgJE9yaTA7IiAvLyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3
YXJkKQotICAgICAgICAiJFRlbDEgJFRlbFYgJFRlbDA7IiAvLyBUZWx1Z3UgVmlyYW1hIChiYWNr
d2FyZCkKLSAgICAgICAgIiRLYW4xICRLYW5WICRLYW4wOyIgLy8gS2FubmFkYSBWaXJhbWEgKGJh
Y2t3YXJkKQotICAgICAgICAiJE1hbDEgJE1hbFYgJE1hbDA7IiAvLyBNYWxheWFsYW0gVmlyYW1h
IChiYWNrd2FyZCkKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgJFpXSjsiIC8vIERvbid0IGJyZWFr
IGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaU1vZHMgJEVtb2ppVmFyPyAk
RW1vamlGb3JNb2RzOyIgLy8gRG9uJ3QgYnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9z
c2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgot
I2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiISFzYWZlX3JldmVyc2U7Igot
ICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVt
b2ppRm9yTW9kczsiCi0gICAgICAgICIhIXNhZmVfZm9yd2FyZDsiCi0gICAgICAgICIkUkkgJFJJ
KzsiCi0gICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyI7Ci0j
ZWxzZQotICAgICAgICAiWyRFbW9qaVZhciAkRW1vamlNb2RzXSsgJEVtb2ppRm9yTW9kczsiCi0g
ICAgICAgICIkRW1vamlGb3JNb2RzIFskRW1vamlWYXIgJEVtb2ppTW9kc10rOyIKLSAgICAgICAg
IiEhc2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiEhc2FmZV9mb3J3YXJkOyI7Ci0jZW5kaWYKLSAg
ICBzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBp
bml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoa1J1bGVzKTsKLSNlbHNlIC8vIFBMQVRGT1JNKElP
UykKICAgICAvLyBVc2UgdGhlIHNwZWNpYWwgVGhhaSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3Ig
Zm9yIGFsbCBsb2NhbGVzCi0gICAgc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yKFVCUktfQ0hBUkFDVEVSLCAidGgi
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBzdGF0aWNDdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yKFVCUktfQ0hBUkFDVEVSLCAi
dGgiKTsKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogCi0gICAgaWYgKCFzdGF0aWNDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yKQorICAgIGlmICghc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvci5n
ZXQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICByZXR1cm4gc2V0VGV4dEZvckl0
ZXJhdG9yKCpzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yLCBzdHJpbmcpOworICAgIHJldHVy
biBzZXRUZXh0Rm9ySXRlcmF0b3IoKihzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yLmdldCgp
KSwgc3RyaW5nKTsKIH0KIAogVUJyZWFrSXRlcmF0b3IqIGFjcXVpcmVMaW5lQnJlYWtJdGVyYXRv
cihTdHJpbmdWaWV3IHN0cmluZywgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbGUsIGNvbnN0IFVD
aGFyKiBwcmlvckNvbnRleHQsIHVuc2lnbmVkIHByaW9yQ29udGV4dExlbmd0aCwgTGluZUJyZWFr
SXRlcmF0b3JNb2RlIG1vZGUpCkBAIC0zNDMsNiArMjMwLDcgQEAgdm9pZCBjbG9zZUxpbmVCcmVh
a0l0ZXJhdG9yKFVCcmVha0l0ZXJhdG9yKiYgaXRlcmF0b3IpCiB7CiAgICAgVUJyZWFrSXRlcmF0
b3IqIHVicmtJdGVyID0gaXRlcmF0b3I7CiAgICAgQVNTRVJUKHVicmtJdGVyKTsKKyAgICAvLyBG
SVhNRTogVXNlIFJBSUkgdG8gZG8gdGhpcyBpbnN0ZWFkLgogICAgIHVicmtfY2xvc2UodWJya0l0
ZXIpOwogICAgIGl0ZXJhdG9yID0gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJy
ZWFrSXRlcmF0b3IuaAppbmRleCAyYmI1ZjljYTRjNWMwZTUwZDNlMDJhNTI3MDdjNDFhZDdjMzMw
NmE4Li44YjU4MzUzNGRiMmFjZTg2MmQ1MDQ1MWU5Yjg4Mzc3YmQ2YmE2MjBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oCkBAIC0yOSw2ICsyOSwxMCBAQCBuYW1lc3Bh
Y2UgV1RGIHsKIAogZW51bSBjbGFzcyBMaW5lQnJlYWtJdGVyYXRvck1vZGUgeyBEZWZhdWx0LCBM
b29zZSwgTm9ybWFsLCBTdHJpY3QgfTsKIAorZXh0ZXJuIGNvbnN0IGNoYXIqIGN1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlczsKKworVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUN1cnNvclByZWNvbXBp
bGVkSXRlcmF0b3IoKTsKKwogLy8gVGhpcyBpcyBzaW1pbGFyIHRvIGNoYXJhY3RlciBicmVhayBp
dGVyYXRvciBpbiBtb3N0IGNhc2VzLCBidXQgaXMgc3ViamVjdCB0bwogLy8gcGxhdGZvcm0gVUkg
Y29udmVudGlvbnMuIE9uZSBub3RhYmxlIGV4YW1wbGUgd2hlcmUgdGhpcyBjYW4gYmUgZGlmZmVy
ZW50CiAvLyBmcm9tIGNoYXJhY3RlciBicmVhayBpdGVyYXRvciBpcyBUaGFpIHByZXBlbmQgY2hh
cmFjdGVycywgc2VlIGJ1ZyAyNDM0Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
bWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0gYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCmluZGV4IGJlZjVkYWE2
NDI4ODgyMWUyMGYyNjI4YzY4NTVlZThlODhhMzg5MmMuLjQxOGU3YmM3YzI5YTI3MWI5YjNjOGU4
YWU1MmJmYjc3OWYzYjU3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1Rl
eHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQpAQCAtMjEsMTIgKzIxLDEw
NSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9ySW50
ZXJuYWxJQ1UuaCIKIAorI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCisjaW5jbHVkZSA8
dW5pY29kZS91YnJrLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCisjZGVmaW5l
IFVTRV9QUkVDT01QSUxFRF9CUkVBS0lOR19SVUxFUyAoVVNFKEFQUExFX0lOVEVSTkFMX1NESykg
JiYgKChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMTAwMDApKSkKKworI2lmIFVTRV9QUkVDT01QSUxFRF9CUkVBS0lOR19SVUxFUwor
I2luY2x1ZGUgPHVuaWNvZGUvdWRhdGEuaD4KKyNlbmRpZgorCitAaW50ZXJmYWNlIFdURkJ1bmRs
ZUZpbmRlciA6IE5TT2JqZWN0CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXVEZCdW5kbGVGaW5k
ZXIKK0BlbmQKKwogbmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBjb25zdCBpbnQgbWF4TG9jYWxl
U3RyaW5nTGVuZ3RoID0gMzI7CiAKKyNpZiBVU0VfUFJFQ09NUElMRURfQlJFQUtJTkdfUlVMRVMK
K3N0YXRpYyBVRGF0YU1lbW9yeSogYnJlYWtJdGVyYXRvclJlc291cmNlKE5TU3RyaW5nICpmaWxl
TmFtZUJhc2UpCit7CisgICAgTlNCdW5kbGUgKmJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JD
bGFzczpbV1RGQnVuZGxlRmluZGVyIGNsYXNzXV07CisgICAgTlNTdHJpbmcgKnBhdGggPSBbYnVu
ZGxlIHBhdGhGb3JSZXNvdXJjZTpmaWxlTmFtZUJhc2Ugb2ZUeXBlOkAiYnJrIiBpbkRpcmVjdG9y
eTpAIkJyZWFraW5nUnVsZXMiXTsKKyAgICBpZiAoIXBhdGgpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgTlNTdHJpbmcgKmRpcmVjdG9yeSA9IFtwYXRoIHN0cmluZ0J5RGVsZXRpbmdM
YXN0UGF0aENvbXBvbmVudF07CisgICAgaWYgKCFkaXJlY3RvcnkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0g
VV9aRVJPX0VSUk9SOworICAgIHVkYXRhX3NldEZpbGVBY2Nlc3MoVURBVEFfRklMRVNfRklSU1Qs
ICZlcnJvckNvZGUpOworICAgIGlmIChVX0ZBSUxVUkUoZXJyb3JDb2RlKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisjZW5kaWYKKworICAgIFVFcnJvckNvZGUgdURhdGFFcnJvckNvZGUgPSBV
X1pFUk9fRVJST1I7CisgICAgVURhdGFNZW1vcnkqIHJlc3VsdCA9IHVkYXRhX29wZW4oW2RpcmVj
dG9yeSBVVEY4U3RyaW5nXSwgImJyayIsIFtmaWxlTmFtZUJhc2UgVVRGOFN0cmluZ10sICZ1RGF0
YUVycm9yQ29kZSk7CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgdWRhdGFfc2V0RmlsZUFjY2Vz
cyhVREFUQV9ERUZBVUxUX0FDQ0VTUywgJmVycm9yQ29kZSk7CisgICAgaWYgKFVfRkFJTFVSRShl
cnJvckNvZGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorCisgICAgaWYgKFVf
RkFJTFVSRSh1RGF0YUVycm9yQ29kZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9y
RnJvbVJlc291cmNlRGF0YShVRGF0YU1lbW9yeSogZGF0YSkKK3sKKyAgICBpZiAoIWRhdGEpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pF
Uk9fRVJST1I7CisgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8zMDQyMTk3MT4gSXQgaXMg
aW1wb3NzaWJsZSB0byBjb21wdXRlIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gdGhpcyBmdW5jdGlv
bi4KKyAgICBVQnJlYWtJdGVyYXRvciogcmVzdWx0ID0gdWJya19vcGVuQmluYXJ5UnVsZXMoc3Rh
dGljX2Nhc3Q8Y29uc3QgdWludDhfdCAqPih1ZGF0YV9nZXRNZW1vcnkoZGF0YSkpLCBzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSwgbnVsbHB0ciwgMCwgJmVycm9yQ29kZSk7CisK
KyAgICBpZiAoVV9GQUlMVVJFKGVycm9yQ29kZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogY3Vyc29yTW92
ZW1lbnRJdGVyYXRvcigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5
Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JSZXNvdXJjZShAIkN1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3Iq
PiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0
KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVy
YXRvciogY2xvbmVJdGVyYXRvcihVQnJlYWtJdGVyYXRvciogaXRlcmF0b3IpCit7CisgICAgaWYg
KCFpdGVyYXRvcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgVUVycm9yQ29kZSBlcnJv
ckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAgaWYgKGF1dG8qIHJlc3VsdCA9IHVicmtfc2FmZUNs
b25lKGl0ZXJhdG9yLCBudWxscHRyLCAwLCAmZXJyb3JDb2RlKSkgeworICAgICAgICBpZiAoVV9T
VUNDRVNTKGVycm9yQ29kZSkpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCitVQnJlYWtJdGVyYXRvciogY3JlYXRlQ3Vy
c29yUHJlY29tcGlsZWRJdGVyYXRvcigpCit7CisjaWYgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5H
X1JVTEVTCisgICAgcmV0dXJuIGNsb25lSXRlcmF0b3IoY3Vyc29yTW92ZW1lbnRJdGVyYXRvcigp
KTsKKyNlbHNlCisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKwogc3RhdGljIGlubGlu
ZSBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHRleHRCcmVha0xvY2FsZVByZWZlcmVuY2UoKQogewog
ICAgIFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gbG9jYWxlID0gYWRvcHRDRihDRlByZWZl
cmVuY2VzQ29weVZhbHVlKENGU1RSKCJBcHBsZVRleHRCcmVha0xvY2FsZSIpLApkaWZmIC0tZ2l0
IGEvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdEZTLmNt
YWtlCmluZGV4IDUxMzBmZmNiY2M3YzljZTc1MTRhZjRkNTUzYmQ4YTRmMDUwMTQ1NmQuLjlmODMz
MGFmN2ZlMzYzZDgwMTNlZWUzNGJlZGQ3ZmMxNWNiNzkxZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9j
bWFrZS9XZWJLaXRGUy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKQEAg
LTI3LDYgKzI3LDcgQEAgaWYgKE5PVCBUT09MU19ESVIpCiBlbmRpZiAoKQogCiBzZXQoREVSSVZF
RF9TT1VSQ0VTX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcyIpCitzZXQo
REVSSVZFRF9TT1VSQ0VTX1dURl9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJj
ZXMvV1RGIikKIHNldChERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSICIke0NNQUtF
X0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlIikKIHNldChERVJJVkVE
X1NPVVJDRVNfV0VCQ09SRV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZSIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dFQktJVExFR0FDWV9ESVIgIiR7Q01BS0Vf
QklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0TGVnYWN5IikKQEAgLTM1LDYgKzM2LDgg
QEAgc2V0KERFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9S
VUlfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkluc3BlY3RvclVJ
IikKIAogZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09S
RV9ESVJ9KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XVEZfRElSfSkK
K2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdS
dWxlcykKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtDTUFLRV9CSU5BUllfRElSfS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZSkKIAogZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09V
UkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9KQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdl
TG9nCmluZGV4IDNhNmNhNzgyZWUxNDEzY2FjZmY4YWQ4OWYwYWQ3ZTFhNDY1YjE4NzMuLjcxYmNi
OWZmMGM5NTg4NmE2MzA5YzQ5NjlhZDRkZThlZjc1ZjIxOTggMTAwNjQ0Ci0tLSBhL0NoYW5nZUxv
ZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wMi0xMyAgTXlsZXMgQy4g
TWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJy
ZWFraW5nIGl0ZXJhdG9ycyBhdCBidWlsZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzEwNTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2U6CisKIDIw
MTctMDItMTAgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGJh
c2ljIGRlYnVnZ2luZyBtYWNyb3MgZm9yIENNYWtlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301425</attachid>
            <date>2017-02-13 17:34:56 -0800</date>
            <delta_ts>2017-02-13 17:37:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20170213173224.patch</filename>
            <type>text/plain</type>
            <size>58483</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NjkxNWNjNTYzZTQ0NDI2YzBhNzAyNTIxN2VhOTRjYzVjZWEyNjU0Li4yNjk1M2JlZGNmZDNiMDAw
NTU2ZjEzMTI1NGM3MTA3MmQ3ZWUzYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wMi0xMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzEw
NTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5j
bHVkZSB0aGUgYnl0ZWNvZGUgZmlsZXMgaW5zaWRlIHRoZSBKYXZhU2NyaXB0Q29yZSBidW5kbGUu
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDE3LTAyLTEyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IEMgbG9vcCBidWlsZCBmaXggYXR0ZW1wdCBhZnRlciByMjEyMjA3LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBlNjljOGQ2Yzk2
ZWEwZDAwMjhmZWM0NGVjMDQ3OGFmYzk1NWI5ZGUyLi41ZDhhYWQ2OGUwMzhmMDMxNzZhMjk2MDA3
Y2I1ZmNkNGQzNzQzN2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDE3LTAyLTEzICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJQ1Ug
YnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzEzMTA1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbWFjT1MgYW5kIGlPUyBTREtzIGluY2x1ZGUgYSB0
b29sLCBpY3VnZW5icmssIHdoaWNoIGNvbXBpbGVzIElDVSBicmsgYnJlYWtpbmcKKyAgICAgICAg
cnVsZXMgaW50byBieXRlY29kZS4gUHJldmlvdXNseSwgdGhpcyBjb21waWxhdGlvbiB3YXMgZG9u
ZSBhdCBydW50aW1lIGluc2lkZSB0aGUgSUNVCisgICAgICAgIHVicmtfb3BlblJ1bGVzKCkgZnVu
Y3Rpb24uIE1vdmluZyB0aGlzIGNvbXBpbGF0aW9uIHN0ZXAgdG8gY29tcGlsZSB0aW1lIHJhdGhl
ciB0aGFuCisgICAgICAgIGJ1aWxkIHRpbWUgY2F1c2VzIGEgcGVyZm9ybWFuY2UgYm9vc3QuCisK
KyAgICAgICAgUHJldmlvdXNseSwgdGhlIHNvdXJjZSBmb3IgdGhlIGJyZWFraW5nIHJ1bGVzIHdh
cyBhc3NlbWJsZWQgYnkgY29uY2F0ZW5hdGluZyBDIHN0cmluZ3MKKyAgICAgICAgYXQgcnVudGlt
ZS4gTm93LCB0aGUgc291cmNlIGlzIGNvbnRhaW5lZCB3aXRoaW4gYSBmZXcgdGV4dCBmaWxlcyBp
bnNpZGUKKyAgICAgICAgd3RmL3RleHQvQnJlYWtpbmdSdWxlcy4gQSBidWlsZCBzdGVwICh1c2lu
ZyBhIE1ha2VmaWxlKSB3aWxsIGdlbmVyYXRlIHNvdXJjZSBjb2RlCisgICAgICAgIGNvbnRhaW5p
bmcgdGhlc2Ugc3RyaW5ncywgYW5kIFdURiB3aWxsIGluY2x1ZGUgdGhlc2Ugc291cmNlIGZpbGVz
IGluIHRoZSBzYW1lIHdheSBhbnkKKyAgICAgICAgb2Ygb3VyIHByb2plY3RzIHVzZSBnZW5lcmF0
ZWQgc291cmNlcy4gQWRkaXRpb25hbGx5LCBvbiBPU2VzIHdoaWNoIHN1cHBvcnQgaXQsIHRoZXNl
CisgICAgICAgIHN0cmluZ3MgZ2V0IGNvbXBpbGVkIGRpcmVjdGx5IGludG8gSUNVIGJ5dGVjb2Rl
LCBhbmQgdGhlbiBpbmNsdWRlZCBpbiB0aGUgZnJhbWV3b3JrCisgICAgICAgIGJ1bmRsZS4gQmVj
YXVzZSBXVEYgZ2V0cyBzdGF0aWNhbGx5IGxpbmtlZCBpbnRvIEphdmFTY3JpcHRDb3JlLCB0aGlz
IGlzIHRoZSBidW5kbGUKKyAgICAgICAgd2hpY2ggaW5jbHVkZXMgdGhlIGJ5dGVjb2RlIGZpbGVz
LgorCisgICAgICAgIEF0IHJ1bnRpbWUsIHdlIGZpcnN0IGNoZWNrIGlmIHdlIGhhdmUgYSBmaWxl
IGluIG91ciBidW5kbGUgb2YgdGhlIGFwcHJvcHJpYXRlIG5hbWUsCisgICAgICAgIGFuZCB0aGVu
IHNlZSBpZiBJQ1UgY2FuIG9wZW4gaXQgdXNpbmcgaXRzIHVicmtfb3BlbkJpbmFyeVJ1bGVzKCkg
aW50ZXJmYWNlICh3aGljaAorICAgICAgICBpbmNsdWRlcyBhIHZlcnNpb24gY2hlY2spLiBJZiBh
bnkgb2YgdGhlc2UgY2hlY2tzIGZhaWwsIG9yIGlmIHdlJ3JlIG9uIGEgcG9ydCB3aGljaAorICAg
ICAgICBkb2Vzbid0IGhhdmUgdGhlIG5vdGlvbiBvZiBidW5kbGVzLCB3ZSB3aWxsIHVzZSB0aGUg
QyBzdHJpbmdzIGdlbmVyYXRlZCBhYm92ZSwgYW5kCisgICAgICAgIHBhc3MgdGhlbSB0byB1YnJr
X29wZW5SdWxlcygpIHRoZSBzYW1lIHdheSB3ZSB3ZXJlIGRvaW5nIGJlZm9yZSB0aGlzIHBhdGNo
LgorCisgICAgICAgIFRoZSB1YnJrX29wZW5CaW5hcnlSdWxlcygpIGludGVyZmFjZSBpbiBJQ1Ug
cmVxdWlyZXMgYWRkaW5nIHNvbWUgbW9yZSBvZiBJQ1UncyBwdWJsaWMKKyAgICAgICAgaGVhZGVy
cyBpbnRvIFdlYktpdC4KKworICAgICAgICAqIFNjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVT
dHJpbmdzLnB5OiBBZGRlZC4KKyAgICAgICAgKG1haW4pOiBPdXRwdXQgQysrIGZpbGVzIHJlcHJl
c2VudGluZyB0aGUgYnJlYWtpbmcgcnVsZXMgc3RyaW5ncy4KKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajogQWRkIGEgbmV3IERlcml2ZWQgU291cmNlcyB0YXJnZXQgd2hp
Y2ggdXNlcyBhCisgICAgICAgIERlcml2ZWRTb3VyY2VzLm1ha2UgTWFrZWZpbGUsIHRoZSBzYW1l
IHdheSBXZWJLaXQyLCBXZWJDb3JlLCBhbmQgSmF2YVNjcmlwdENvcmUgd3Jvay4KKyAgICAgICAg
QWxzbywgYWRkIHRoZSBydWxlcyB0ZXh0IGZpbGVzIHRvIHRoZSBwcm9qZWN0LiBUaGVuLCBtYWtl
IFdURiBkZXBlbmQgb24gdGhpcyBuZXcKKyAgICAgICAgdGFyZ2V0LgorICAgICAgICAqIGljdS91
bmljb2RlL3VicmsuaDogQWRkIGRlY2xhcmF0aW9uIGZvciB1YnJrX29wZW5CaW5hcnlSdWxlcygp
LgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDogQWRkIGJ1aWxkIHN0ZXBzIGZvciBvdGhl
ciBwb3J0cyB0byBnZW5lcmF0ZSB0aGUgYnJlYWtpbmcKKyAgICAgICAgcnVsZXMgc3RyaW5ncyBz
b3VyY2UgZmlsZXMuCisgICAgICAgICogd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkLiBU
aGlzIGlzIHRoZSBwbGFjZSB3aGVyZSBpY3VnZW5icmsgaXMgYWN0dWFsbHkgCisgICAgICAgIGlu
dm9rZWQuIEl0IGFsc28gdHJpZ2dlcnMgdGhlIHNjcmlwdCAoR2VuZXJhdGVCcmVha2luZ1J1bGVT
dHJpbmdzLnB5KSB3aGljaCBnZW5lcmF0ZXMKKyAgICAgICAgdGhlIEMrKyBjb2RlIGZvciB0aGUg
cnVsZXMgc3RyaW5ncy4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQ6IEFkZGVkLgorICAgICAgICAq
IHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHA6CisgICAgICAgIChXVEY6
OmNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldCk6IFVzZWQgYnkgb3RoZXIgcG9ydHMuIFJldHVybmlu
ZyBudWxscHRyIG1lYW5zIHdlIGNhbid0CisgICAgICAgIHVzZSBwcmVjb21waWxlZCBydWxlcy4K
KyAgICAgICAgKFdURjo6Y3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjayk6
IFVzZWQgaW4gcGxhY2Ugb2YgdGhlIGhhcmRjb2RlZCBydWxlcworICAgICAgICBpbiBjdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yKCkuCisgICAgICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3Ip
OiBSZW1vdmUgaGFyZGNvZGVkIHJ1bGVzLgorICAgICAgICAoV1RGOjptYXBMaW5lSXRlcmF0b3JN
b2RlVG9SdWxlcyk6IFVwZGF0ZSB0byB1c2UgdGhlIG5ldyBnZW5lcmF0ZWQgQysrIHN0cmluZ3Mu
CisgICAgICAgIChXVEY6Om9wZW5MaW5lQnJlYWtJdGVyYXRvcik6IFRoZSBsb2dpYyBvZiB0cnlp
bmcgdG8gdXNlIGEgcHJlY29tcGlsZWQgYnl0ZWNvZGUsIGFuZCBmYWxsaW5nCisgICAgICAgIGJh
Y2sgdG8gQysrIHN0cmluZ3MgaWYgaXQgaXNuJ3QgcG9zc2libGUuCisgICAgICAgIChXVEY6OmNs
b3NlTGluZUJyZWFrSXRlcmF0b3IpOgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmg6IEhlYWRlciBmb3IgZ2VuZXJhdGVkIEMrKyBjb2RlLgorICAgICAgICAqIHd0Zi90ZXh0
L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAgICAgICAoV1RGOjpi
cmVha0l0ZXJhdG9yUmVzb3VyY2UpOiBUaGUgYWN0dWFsIGxvZ2ljIGZvciBsb29raW5nIGluc2lk
ZSB0aGUgYnVuZGxlIGZvciB0aGUKKyAgICAgICAgcHJlY29tcGlsZWQgYnl0ZWNvZGUuCisgICAg
ICAgIChXVEY6OmJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKTogRGl0dG8KKyAgICAgICAg
KFdURjo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6IENhbGxzIGJyZWFrSXRlcmF0b3JGcm9tUmVz
b3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSyk6IERpdHRv
CisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSkspOiBEaXR0bworICAg
ICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSkspOiBEaXR0bworICAgICAg
ICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSkspOiBEaXR0bworICAgICAg
ICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKTogRGl0dG8KKyAgICAgICAg
KFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSyk6IERpdHRvCisgICAgICAg
IChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSkspOiBEaXR0bworICAgICAgICAo
V1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLKTogRGl0dG8KKyAgICAgICAg
KFdURjo6Y2xvbmVJdGVyYXRvcik6CisgICAgICAgIChXVEY6OmNyZWF0ZUl0ZXJhdG9yRm9yUnVs
ZVNldCk6IENhbGxzIHRoZSBhYm92ZSBzdGF0aWMgZnVuY3Rpb25zLgorCiAyMDE3LTAyLTEzICBC
cmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBGb2xsb3d1cCB0bzog
UmVwbGFjZSBhbGwgV2ViS2l0IExpYnJhcnkgVmVyc2lvbiBjaGVja3MgaW4gV0syIHdpdGggU0RL
IHZlcnNpb24gY2hlY2tzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwZmU0YjVm
MDVmZGE0OTNjOTYwZjdmYmY5N2UyNjczYzhkYTU0MWM3Li42ZmU2YzdkOGJlM2RjNTViNjQwODUy
ODlmZThmNDZkOTEwYzNkOTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIy
OCw2ICsxMjI4LDcgQEAKIAkJMUEyOEQ0QTgxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVm
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUEyOEQ0QTcxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVmUHJpdmF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBODgyNkIxNjUzQzRD
RDFBNjQyOTgzQiAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5VGFibGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEI0N0YyMzQzNjZDNEI3MkFDODUyQTdF
IC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgKi87IH07CiAJCTFBQ0Y3Mzc3MTcxQ0E2
RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBQ0Y3Mzc2MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCAqLzsgfTsK
KwkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRDE4NzhGMUQ1NTk2MTIwMEND
N0RFQyAvKiBCcmVha2luZ1J1bGVzICovOyB9OwogCQkyNjAwQjVBNjE1MkJBQUE3MDA5MUVFNUYg
LyogSlNTdHJpbmdKb2luZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNw
cCAqLzsgfTsKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNTE1
MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLzsgfTsKIAkJMjYyRDg1QjYxQzBE
NjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjJEODVCNDFDMEQ2NTBGMDA2
QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLzsgfTsKQEAgLTM2NTgs
NiArMzY1OSw3IEBACiAJCTFDOTA1MTQ1MEJBOUU4QTcwMDgxRTlEMCAvKiBCYXNlLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRBMEQzMkMzOUEwMDQxQkNGRiAvKiBKYXZhU2Ny
aXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEIwRDMyQzM5QTAwNDFCQ0ZGIC8qIEph
dmFTY3JpcHRDb3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3Jp
cHRDb3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhGMUQ1NTk2MTIw
MENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gZm9sZGVyOyBuYW1lID0gQnJlYWtpbmdSdWxlczsgcGF0aCA9IC4u
L1dURi9CcmVha2luZ1J1bGVzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVB
NDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYyRDg1QjQxQzBENjUwRjAwNkFDQjYxIC8qIEFp
ckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBwYXRoID0gYjMvYWly
L0FpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC02MDE1LDYgKzYwMTcsNyBAQAogCQk2NTBGREY4RDA5RDBGQ0E3MDA3NjlFNTQgLyog
RGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJ
CQkwRjYxODMzMjFDNDVGMzVDMDA3MjQ1MEIgLyogQWlyT3Bjb2RlLmggKi8sCiAJCQkJMEY2MTgz
MzQxQzQ1RjNCNjAwNzI0NTBCIC8qIEFpck9wY29kZUdlbmVyYXRlZC5oICovLAogCQkJCTBGNjE4
MzM1MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVVdGlscy5oICovLApAQCAtOTQzMSw2ICs5
NDM0LDcgQEAKIAkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAw
Q0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJCUE1M0YxQUMwMThD
OTBGOEYwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBiL1NvdXJjZS9X
VEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTc1
NGJlNTZkZjllZDM4NjE5MTViNmMzZDE1MGQ4NTI0OTY1ODRjMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKQEAgLTAs
MCArMSwxMDMgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5cworaW1wb3J0IHJlCitpbXBvcnQgYXJncGFy
c2UKKworaGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisKKworZGVmIG1haW4oYXJndj1Ob25lKToK
KyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0nR2VuZXJh
dGUgYnJlYWtpbmcgcnVsZSBzb3VyY2Ugc3RyaW5ncyBpbiBDKysgc291cmNlIGZvbXJhdC4nKQor
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ3N5bWJvbE5hbWUnKQorICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoJ2ZpbGVOYW1lcycsIG5hcmdzPScrJykKKworICAgIGFyZ3MgPSBwYXJzZXIucGFyc2Vf
YXJncygpCisKKyAgICBzeW1ib2xOYW1lID0gYXJncy5zeW1ib2xOYW1lWzBdLmxvd2VyKCkgKyBh
cmdzLnN5bWJvbE5hbWVbMTpdCisgICAgZmlsZU5hbWVzID0gYXJncy5maWxlTmFtZXMKKworICAg
IHByaW50KGhlYWRlcikKKyAgICBwcmludCgiIiIKKy8vIERPIE5PVCBFRElUIFRISVMgRklMRS4g
SXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIHNjcmlwdAorLy8gJXMKKworI2lu
Y2x1ZGUgXCJjb25maWcuaFwiCisjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+CisiIiIgJSAo
c3lzLmFyZ3ZbMF0pKQorICAgIHByaW50KCIiIm5hbWVzcGFjZSBXVEYgeworCitjb25zdCBjaGFy
KiAlcyA9ICIiIiAlIChzeW1ib2xOYW1lKSkKKworICAgIGZvciBmaWxlTmFtZSBpbiBmaWxlTmFt
ZXM6CisgICAgICAgIGZvciBsIGluIG9wZW4oZmlsZU5hbWUsICdyJyk6CisgICAgICAgICAgICBs
aW5lID0gbC5yc3RyaXAoKQorICAgICAgICAgICAgaWYgcmUubWF0Y2goIl5ccyokIiwgbGluZSk6
CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgo
IiMgIik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lID09ICIj
IjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0
aCgiIyIpOgorICAgICAgICAgICAgICAgIHByaW50KGxpbmUpCisgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgIG1hdGNoID0gcmUubWF0Y2goIl4oLiopOyggIyAuKik/JCIsIGxpbmUp
CisgICAgICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9
ICJcIiIgKyBtYXRjaC5ncm91cCgxKS5yZXBsYWNlKCJcXCIsICJcXFxcIikgKyAiO1wiIgorICAg
ICAgICAgICAgICAgICAgICBpZiBtYXRjaC5ncm91cCgyKToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdCArPSAiIC8vICIgKyBtYXRjaC5ncm91cCgyKVszOl0KKyAgICAgICAgICAgICAg
ICAgICAgcHJpbnQocmVzdWx0KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgICAgIGV4aXQoMSkKKworICAgIHByaW50KCI7IikKKyAgICBwcmludCgifSIpCisKK2lmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6CisgICAgc3lzLmV4aXQobWFpbihzeXMuYXJndikpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0MjUzOWIxNDk3OWI2ZWJl
ZDFmMzI0NDE4ZDhjMmI3ZjdjODRjOWE0Li4yMTk2YWZiYWZmMjI1NzcyOTZmNDQwNzFlOWY5N2Vm
OTQwN2U3ZGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTcsNiArNywxNyBAQAogCW9iamVjdHMgPSB7CiAKIC8qIEJlZ2luIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCBzZWN0aW9uICovCisJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJj
ZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3Vy
YXRpb25MaXN0ID0gMUNEMTg3ODMxRDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovOworCQkJ
YnVpbGRQaGFzZXMgPSAoCisJCQkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVyYXRl
IERlcml2ZWQgU291cmNlcyAqLywKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkpOwor
CQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQkJcHJvZHVjdE5hbWUgPSAiRGVyaXZlZCBT
b3VyY2VzIjsKKwkJfTsKIAkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhl
YWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CiAJCQlidWlsZENvbmZp
Z3VyYXRpb25MaXN0ID0gNjVBRkEyODgxNjMwQjk3NzAwM0Q3MjNDIC8qIEJ1aWxkIGNvbmZpZ3Vy
YXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJDb3B5IFdURiBIZWFkZXJzIiAqLzsK
QEAgLTg0LDcgKzk1LDYgQEAKIAkJMTQ0N0FFQzYxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRp
b24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTQ0N0FFQzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICov
OyB9OwogCQkxNDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3b3Jr
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDI0N0I2MjE0Njg5Qjg2MDBF
NzhCNzYgLyogbGliV1RGLmEgKi87IH07CiAJCTE0NDdBRUM5MThGQ0U1OTQwMEIzRDdGRiAvKiBt
Ym1hbGxvYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDQ3QUVDODE4RkNFNTk0MDBCM0Q3RkYgLyogbWJtYWxsb2MuY3BwICovOyB9OwotCQkxNDQ3
QUVDQjE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdG
RiAvKiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OwogCQkxNDY5NDE5MjE2RUFBRjZEMDAyNEUxNDYg
LyogUnVuTG9vcFRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNDY5NDE5MDE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJMTQ2OTQxOTMxNkVBQUY2RDAwMjRF
MTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0Njk0MTkxMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXJD
Ri5jcHAgKi87IH07CiAJCTE0Njk0MTk2MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTk0
MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXIuaCAqLzsgfTsKQEAgLTM0MCw2ICszNTAs
OCBAQAogCQlBREYyQ0U2NjFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREYyQ0U2NDFFMzlG
MTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggKi87IH07CiAJCUFERjJDRTY3MUUzOUYx
MDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURGMkNFNjUxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9y
eUZvb3RwcmludC5jcHAgKi87IH07CiAJCUIzOEZEN0JEMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0
dXJlRGVmaW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggKi87IH07CisJ
CUMyQkE1NDNFMUQ1ODZBRjQwMDBBMzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAw
QjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi87IH07CisJCUMyQ0EzN0U5MUQ1NUM5NzEwMDQ4
NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8q
IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi87IH07CiAJCUM0RjhBOTM3MTlDNjVF
QjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAq
LzsgfTsKIAkJQzhCMEUxQTFFMDFBNDg2RUI5NUUwRDExIC8qIEluZGV4U2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM3RTFEN0RCRDg0QUMzOEZB
RTREMzQgLyogSW5kZXhTZXQuaCAqLzsgfTsKIAkJQzkxNkI5NzVGMDJGNEY3RThCNEFCMTJEIC8q
IEluZGV4TWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QjQzMzgzQTVEMEI0NjNDOTQzM0Q5MzMgLyogSW5kZXhNYXAuaCAqLzsgfTsKQEAgLTM4MSw2
ICszOTMsMTMgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAw
RTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAw
Q0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRh
aW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3
OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVH
bG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8g
PSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Q
cm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQ
cm9qZWN0IG9iamVjdCAqLzsKQEAgLTQ5Miw2ICs1MTEsOSBAQAogCQkxQzE4MUM4RDFEMzA3QUI4
MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDMTgxQzhFMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRG
MTYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzk1MUQzMDgwMEEwMEY1RkEx
NiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5t
bTsgcGF0aCA9IG1hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzZCRTBGQTFFMDM0QzlBMDAyMTc2MTcgLyogR2VuZXJh
dGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gR2VuZXJhdGVCcmVh
a2luZ1J1bGVTdHJpbmdzLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4
QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZl
ZFNvdXJjZXMubWFrZTsgcGF0aCA9IHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB1c2VzVGFicyA9IDE7IH07CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RF
QyAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg4
MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxRkE0N0M4OTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MTQ3QjA4MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2Vy
VG9TdHJpbmdDb252ZXJzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
dGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTcyNCw2ICs3NDYsNyBAQAogCQlBREYyQ0U2NDFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9v
dHByaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUZvb3Rwcmlu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREYyQ0U2NTFFMzlGMTA2MDA2ODg5
REIgLyogTWVtb3J5Rm9vdHByaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1lbW9yeUZvb3RwcmludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzV29ya2lu
Z0Rpci9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRp
YVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NjIsNyArNzg1LDcgQEAKIAkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQkxNDQ3QUVDNjE4RkNFNTc3
MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCQkx
NDQ3QUVDQjE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtz
ICovLAorCQkJCUMyQkE1NDNFMUQ1ODZBRjQwMDBBMzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGlu
IEZyYW1ld29ya3MgKi8sCiAJCQkJMTQ0N0FFQzcxOEZDRTU4MDAwQjNEN0ZGIC8qIGxpYldURi5h
IGluIEZyYW1ld29ya3MgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CkBAIC03OTksNiArODIyLDIyIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUM2QkUwRjkxRTAzNEMyQTAwMjE3NjE3IC8q
IFNjcmlwdHMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJ
CTFDNkJFMEZBMUUwMzRDOUEwMDIxNzYxNyAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3Mu
cHkgKi8sCisJCQkpOworCQkJcGF0aCA9IFNjcmlwdHM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OworCQkxQ0QxODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OTIx
RDU1OThFMTAwQ0M3REVDIC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8sCisJ
CQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTgyMSw5ICs4NjAsMTIgQEAKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAwRTc4
Qjc2IC8qIENvbmZpZ3VyYXRpb25zICovLAorCQkJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAv
KiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMTQwMjJGM0YxOEY1QzNFNTAwN0ZGMEVCIC8qIExp
YnJhcmllcyAqLywKIAkJCQk1RDI0N0I2MzE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvZHVjdHMgKi8s
CisJCQkJMUM2QkUwRjkxRTAzNEMyQTAwMjE3NjE3IC8qIFNjcmlwdHMgKi8sCiAJCQkJNUQyNDdC
NzYxNDY4OUQ3NjAwRTc4Qjc2IC8qIFNvdXJjZSAqLywKKwkJCQkxQ0QxODc4QTFENTU4QUQzMDBD
QzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3MDBC
M0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVCOTAw
QjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtMTE4NSw2ICsxMjI3LDcg
QEAKIAkJQThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAv
KiBCcmVha2luZ1J1bGVzICovLAogCQkJCUE1QkExNUY2MTgyNDM1OUUwMEE4MkU2OSAvKiBjZiAq
LywKIAkJCQkxQzE4MUM4ODFEMzA3QUI4MDBGNUZBMTYgLyogaWN1ICovLAogCQkJCUE1QkExNUYx
MTgyNDMzOUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMjYzLDYgKzEzMDYsMTUgQEAKIAkJCXBh
dGggPSBpY3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkNBMzdERjFE
NTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gIkRlcml2
ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvV1RGOworCQkJc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsKIAkJQ0U0NjUxNkMxOURCMUZCNDAwM0VDQTA1
IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAg
LTE2MTQsNiArMTY2Niw3IEBACiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRlcGVuZGVu
Y2llcyA9ICgKKwkJCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5k
ZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5k
ZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gV1RGOwpAQCAtMTY0NCwxMiArMTY5NywyNyBAQAog
CQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovLAog
CQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovLAorCQkJ
CTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMTQ0
N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFsbG9jICovLAogCQkJKTsKIAkJfTsKIC8qIEVu
ZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRCdWlsZFBo
YXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVyYXRlIERl
cml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsK
KwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJ
CQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgRGVyaXZlZCBTb3Vy
Y2VzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2Ny
aXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dU
RlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuXG4v
YmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV1RGXG5leHBvcnQgV1RGPVwiV1RGXCJcblxuaWYg
WyAhIC1kIEJyZWFraW5nUnVsZXMgXTsgdGhlblxuICAgIG1rZGlyIEJyZWFraW5nUnVsZXNcbmZp
XG5cbmlmIFsgISAtZCBCcmVha2luZ1J1bGVzV29ya2luZ0RpciBdOyB0aGVuXG4gICAgbWtkaXIg
QnJlYWtpbmdSdWxlc1dvcmtpbmdEaXJcbmZpXG5cbmlmIFsgXCIkSEFWRV9JTlRFUk5BTF9TREtc
IiAhPSBcIllFU1wiIF0gfHwgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEw
LjExXCIgXSB8fCBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTJcIiBd
IHx8IFsgXCIkU0RLX1ZFUlNJT05fTUFKT1JcIiA9PSBcIjkwMDAwXCIgXSB8fCBbIFwiJFNES19W
RVJTSU9OX01BSk9SXCIgPT0gXCIxMDAwMDBcIiBdOyB0aGVuXG4gICAgZXhwb3J0IEhBVkVfSUNV
R0VOQlJLPTBcbmVsc2VcbiAgICBleHBvcnQgSEFWRV9JQ1VHRU5CUks9MVxuZmlcblxuaWYgWyBc
IiR7QUNUSU9OfVwiID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxcIiAt
byBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsaGRyc1wiIC1vIFwiJHtBQ1RJT059XCIgPSBcImlu
c3RhbGxhcGlcIiBdOyB0aGVuXG5tYWtlIC0tbm8tYnVpbHRpbi1ydWxlcyAtZiBcIldURi93dGYv
RGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNw
dWAgU0RLUk9PVD1cIiR7U0RLUk9PVH1cIlxuaWYgWyAhIC1mIFwiQnJlYWtpbmdSdWxlc1dvcmtp
bmdEaXIvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcFwiIF07IHRoZW5cbiAgICB0b3Vj
aCBcIkJyZWFraW5nUnVsZXNXb3JraW5nRGlyL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5j
cHBcIjtcbmZpXG5maSI7CisJCX07CiAJCTY1QUZBMTcwMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5
IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE3MDIsNiArMTc3MCw3IEBACiAJ
CQkJRTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzkxNTFBODI1QjAwNDEyM0ZGIC8qIENTdHJpbmcu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUMxNTFBODI1QjAwNDEyM0ZGIC8qIEN1cnJl
bnRUaW1lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0U5MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDczOUUxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGFMb2cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QThBNDczQTAxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGVNYXRoLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QTQ3M0EyMTUxQTgyNUIwMDQxMjNGRiAvKiBEZWNpbWFsTnVtYmVyLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTc5Myw2ICsxODYyLDExIEBACiAJCQl0YXJnZXQgPSA1RDI0N0I2MTE0Njg5
Qjg2MDBFNzhCNzYgLyogV1RGICovOwogCQkJdGFyZ2V0UHJveHkgPSAxNDQ3QUVDMzE4RkNFNTcw
MDBCM0Q3RkYgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9OworCQkxQ0QxODc4ODFE
NTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBC
WFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQgPSAxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMg
LyogRGVyaXZlZCBTb3VyY2VzICovOworCQkJdGFyZ2V0UHJveHkgPSAxQ0QxODc4NzFENTU2OTg4
MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9OwogCQk2NUFGQTI4RTE2
MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBC
WFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSA2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0Mg
LyogQ29weSBXVEYgSGVhZGVycyAqLzsKQEAgLTE4MjIsNiArMTg5NiwzMCBAQAogCQkJfTsKIAkJ
CW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyog
RGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25m
aWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVs
ZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1F
ID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTFD
RDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWls
ZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3Qjcw
MTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNl
dHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9Owor
CQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQ
cm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNl
Q29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1
Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1Rf
TkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJ
CX07CiAJCTVEMjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9
IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1
RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOwpAQCAt
MTkwNSw2ICsyMDAzLDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7
CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0Qx
ODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhB
Z2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZp
Z3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkxQ0QxODc4NDFE
NTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVD
IC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rp
b24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJ
ZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdCNUMx
NDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVj
dCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENv
bmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91YnJr
LmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaAppbmRleCBlOWMwZWY2MjdiNjcyNzlm
ODZlNDYwNDRiZjBmMjU3MTAyZTBjNmNkLi4xOTc1YjlkYmVkNDQzYTkyNzQzNmYwYTI3OTI5YmE1
OGFmODcxODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaAorKysg
Yi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaApAQCAtMjQxLDYgKzI0MSwzMSBAQCB1YnJr
X29wZW5SdWxlcyhjb25zdCBVQ2hhciAgICAgKnJ1bGVzLAogICAgICAgICAgICAgICAgVUVycm9y
Q29kZSAgICAgICpzdGF0dXMpOwogCiAvKioKKyAqIE9wZW4gYSBuZXcgVUJyZWFrSXRlcmF0b3Ig
Zm9yIGxvY2F0aW5nIHRleHQgYm91bmRhcmllcyB1c2luZyBwcmVjb21waWxlZCBiaW5hcnkgcnVs
ZXMuCisgKiBPcGVuaW5nIGEgVUJyZWFrSXRlcmF0b3IgdGhpcyB3YXkgaXMgc3Vic3RhbnRpYWxs
eSBmYXN0ZXIgdGhhbiB1c2luZyB1YnJrX29wZW5SdWxlcy4KKyAqIEJpbmFyeSBydWxlcyBtYXkg
YmUgb2J0YWluZWQgdXNpbmcgdWJya19nZXRCaW5hcnlSdWxlcy4gVGhlIGNvbXBpbGVkIHJ1bGVz
IGFyZSBub3QKKyAqIGNvbXBhdGlibGUgYWNyb3NzIGRpZmZlcmVudCBtYWpvciB2ZXJzaW9ucyBv
ZiBJQ1UsIG5vciBhY3Jvc3MgcGxhdGZvcm1zIG9mIGRpZmZlcmVudAorICogZW5kaWFubmVzcyBv
ciBkaWZmZXJlbnQgYmFzZSBjaGFyYWN0ZXIgc2V0IGZhbWlseSAoQVNDSUkgdnMgRUJDRElDKS4K
KyAqIEBwYXJhbSBiaW5hcnlSdWxlcyBBIHNldCBvZiBjb21waWxlZCBiaW5hcnkgcnVsZXMgc3Bl
Y2lmeWluZyB0aGUgdGV4dCBicmVha2luZworICogICAgICAgICAgICAgICAgICAgIGNvbnZlbnRp
b25zLiBPd25lcnNoaXAgb2YgdGhlIHN0b3JhZ2UgY29udGFpbmluZyB0aGUgY29tcGlsZWQKKyAq
ICAgICAgICAgICAgICAgICAgICBydWxlcyByZW1haW5zIHdpdGggdGhlIGNhbGxlciBvZiB0aGlz
IGZ1bmN0aW9uLiBUaGUgY29tcGlsZWQKKyAqICAgICAgICAgICAgICAgICAgICBydWxlcyBtdXN0
IG5vdCBiZSBtb2RpZmllZCBvciBkZWxldGVkIGR1cmluZyB0aGUgbGlmZSBvZiB0aGUKKyAqICAg
ICAgICAgICAgICAgICAgICBicmVhayBpdGVyYXRvci4KKyAqIEBwYXJhbSBydWxlc0xlbmd0aCBU
aGUgbGVuZ3RoIG9mIGJpbmFyeVJ1bGVzIGluIGJ5dGVzOyBtdXN0IGJlID49IDAuCisgKiBAcGFy
YW0gdGV4dCAgICAgICAgVGhlIHRleHQgdG8gYmUgaXRlcmF0ZWQgb3Zlci4gIE1heSBiZSBudWxs
LCBpbiB3aGljaCBjYXNlCisgKiAgICAgICAgICAgICAgICAgICAgdWJya19zZXRUZXh0KCkgaXMg
dXNlZCB0byBzcGVjaWZ5IHRoZSB0ZXh0IHRvIGJlIGl0ZXJhdGVkLgorICogQHBhcmFtIHRleHRM
ZW5ndGggIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0ZXh0LCBvciAtMSBpZiBudWxsLXRl
cm1pbmF0ZWQuCisgKiBAcGFyYW0gc3RhdHVzICAgICAgUG9pbnRlciB0byBVRXJyb3JDb2RlIHRv
IHJlY2VpdmUgYW55IGVycm9ycy4KKyAqIEByZXR1cm4gICAgICAgICAgICBVQnJlYWtJdGVyYXRv
ciBmb3IgdGhlIHNwZWNpZmllZCBydWxlcy4KKyAqIEBzZWUgdWJya19nZXRCaW5hcnlSdWxlcwor
ICogQGRyYWZ0IElDVSA1OQorICovCitVX0RSQUZUIFVCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIK
K3Vicmtfb3BlbkJpbmFyeVJ1bGVzKGNvbnN0IHVpbnQ4X3QgKmJpbmFyeVJ1bGVzLCBpbnQzMl90
IHJ1bGVzTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKiAgdGV4dCwg
aW50MzJfdCB0ZXh0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqICAg
c3RhdHVzKTsKKworLyoqCiAgKiBUaHJlYWQgc2FmZSBjbG9uaW5nIG9wZXJhdGlvbgogICogQHBh
cmFtIGJpIGl0ZXJhdG9yIHRvIGJlIGNsb25lZAogICogQHBhcmFtIHN0YWNrQnVmZmVyIDxlbT5E
ZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUyLCB1c2UgTlVMTC48L2VtPjxicj4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggODFhZjkxMjc2MTA2YjgxMjg5MTdkYjhjNzljZjI1NGIy
ZTRkOGNmMC4uZDE3NTk1YzkzOGZjNjg5YjUwZTA5M2Q2YWNmZDNmZjlkOGNjMWIyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQKQEAgLTMwMSw2ICszMDEsMTUgQEAgaWYgKE5PVCBVU0VfU1lTVEVNX01B
TExPQykKICAgICBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTIGJtYWxsb2MpCiBlbmRpZiAoKQog
CithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dURl9E
SVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcAorICAgIE1B
SU5fREVQRU5ERU5DWSAke1dURl9ESVJ9L1NjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVTdHJp
bmdzLnB5CisgICAgREVQRU5EUyAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVh
a2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKyAgICBDT01NQU5EICR7
UFlUSE9OX0VYRUNVVEFCTEV9ICR7V1RGX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVs
ZVN0cmluZ3MucHkgY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzICR7Q01BS0VfQ1VSUkVOVF9T
T1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVz
LnR4dCA+ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcAorICAgIFZFUkJBVElNKQorbGlzdChBUFBFTkQgV1RGX1NP
VVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3Zl
bWVudEl0ZXJhdG9yUnVsZXMuY3BwKQorQUREX1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtDTUFLRV9D
VVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMudHh0ICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXMvQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCkKKwogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMK
ICAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNl
cy5tYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ3NjY0NjdhM2YyZThlM2U0NWJjMmQ2ODQyMThkMjUwMTg2OTlm
MmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC0wLDAgKzEsNTAgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0Ogor
IyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
K0JSRUFLSU5HX1JVTEVTX0ZJTEVTID0gXAorICAgIEJyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzLmJyaworCitCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUz0kKEJSRUFL
SU5HX1JVTEVTX0ZJTEVTOkJyZWFraW5nUnVsZXMvJS5icms9QnJlYWtpbmdSdWxlc1dvcmtpbmdE
aXIvJS5jcHApCisKK2lmZXEgKCQoc2hlbGwgJChDQykgLXN0ZD1nbnUrKzExIC14IGMrKyAtRSAt
UCAtZE0gJChTREtfRkxBR1MpICQoRlJBTUVXT1JLX0ZMQUdTKSAkKEhFQURFUl9GTEFHUykgLUkg
JChXVEYpIC1pbmNsdWRlICIkKFdURikvd3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8IGdyZXAg
JyBXVEZfUExBVEZPUk1fSU9TICcgfCBjdXQgLWQnICcgLWYzKSwgMSkKKyAgICBXVEZfUExBVEZP
Uk1fSU9TID0gMQorZWxzZQorICAgIFdURl9QTEFURk9STV9JT1MgPSAwCitlbmRpZgorCitpZmVx
ICgkKFdURl9QTEFURk9STV9JT1MpLCAxKQorCURFUEVOREVOQ0lFUyA9CitlbHNlCisJREVQRU5E
RU5DSUVTID0gJChCUkVBS0lOR19SVUxFU19ERUZJTklUSU9OUykKKwlpZmVxICgkKEhBVkVfSUNV
R0VOQlJLKSwgMSkKKwkJREVQRU5ERU5DSUVTICs9ICQoQlJFQUtJTkdfUlVMRVNfRklMRVMpCisJ
ZW5kaWYKK2VuZGlmCisKK2FsbCA6ICQoREVQRU5ERU5DSUVTKQorCitCcmVha2luZ1J1bGVzLyUu
YnJrIDogJChXVEYpL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLnR4dAorCWljdWdlbmJyayAtYyAtciAkPCAtbyAkQAorCitCcmVha2luZ1J1bGVzV29y
a2luZ0Rpci9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIDogJChXVEYpL3d0Zi90ZXh0
L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dAorCXB5dGhvbiAk
KFdURikvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkgY3Vyc29yTW92ZW1l
bnRJdGVyYXRvclJ1bGVzICQ8ID4gJEAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
QnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0IGIvU291cmNlL1dU
Ri93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGIzNmVhODEyN2ZmM2NjZWExNzU5MWZmY2I1MTEyZTllMDVkMWNiNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0CkBAIC0wLDAgKzEsMTI5IEBACisjIChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisjIENvcHlyaWdodCAoQykgMjAwNC0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9y
Y2ggTW9iaWxlLCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisjIFRoaXMgcnVsZSBzZXQgaXMgYmFzZWQgb24gY2hhcmFjdGVyLWJyZWFrIGl0ZXJhdG9yIHJ1
bGVzIG9mIElDVSA1NworIyA8aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1
L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KKyMgVGhlIG1ham9y
IGRpZmZlcmVuY2VzIGZyb20gdGhlIG9yaWdpbmFsIG9uZXMgYXJlIGxpc3RlZCBiZWxvdzoKKyMg
KiBSZXBsYWNlZCAnW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBTcGFjaW5nTWFya31dJyB3
aXRoICdbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya30gLSAkRXh0ZW5kXScgZm9y
IElDVSAzLjggb3IgZWFybGllcjsKKyMgKiBSZW1vdmVkIHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1
cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNoYXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Cisj
ICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGFmdGVyIHZp
cmFtYSBzaWducyBvZiBJbmRpYyBsYW5ndWFnZXMgZXhjZXB0IFRhbWlsIChCdWcgMTU3OTApLCBh
bmQ7CisjICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGJl
Zm9yZSBKYXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJrcy4KKyMgKiBBZGRl
ZCBydWxlcyBmb3IgcmVnaW9uYWwgaW5kaWNhdG9yIHN5bWJvbHMuCisKKyRDUiAgICAgID0gW1xw
e0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBDUn1dOworJExGICAgICAgPSBbXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IExGfV07CiskQ29udHJvbCA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gQ29udHJvbH1dOworJFZvaWNlTWFya3MgPSBbXHVGRjlFXHVGRjlGXTsgIyBKYXBhbmVz
ZSBoYWxmLXdpZHRoIGthdGFrYW5hIHZvaWNlZCBtYXJrcworJEV4dGVuZCAgPSBbXHB7R3JhcGhl
bWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXHUwRTMwIFx1MEUzMiBc
dTBFNDUgXHUwRUIwIFx1MEVCMl1dOworJFNwYWNpbmdNYXJrID0gW1tccHtHZW5lcmFsX0NhdGVn
b3J5ID0gU3BhY2luZyBNYXJrfV0gLSAkRXh0ZW5kXTsKKyRMICAgICAgID0gW1xwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBMfV07CiskViAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0Jy
ZWFrID0gVn1dOworJFQgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFR9XTsK
KyRMViAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMVn1dOworJExWVCAgICAg
PSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IExWVH1dOworJEhpbjAgICAgPSBbXHUwOTA1
LVx1MDkzOV07ICMgRGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEKKyRIaW5WICAgID0gXHUwOTRE
OyAjIERldmFuYWdhcmkgU2lnbiBWaXJhbWEKKyRIaW4xICAgID0gW1x1MDkxNS1cdTA5MzldOyAj
IERldmFuYWdhcmkgTGV0dGVyIEthLC4uLixIYQorJEJlbjAgICAgPSBbXHUwOTg1LVx1MDlCOV07
ICMgQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEKKyRCZW5WICAgID0gXHUwOUNEOyAjIEJlbmdhbGkg
U2lnbiBWaXJhbWEKKyRCZW4xICAgID0gW1x1MDk5NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVy
IEthLC4uLixIYQorJFBhbjAgICAgPSBbXHUwQTA1LVx1MEEzOV07ICMgR3VybXVraGkgTGV0dGVy
IEEsLi4uLEhhCiskUGFuViAgICA9IFx1MEE0RDsgIyBHdXJtdWtoaSBTaWduIFZpcmFtYQorJFBh
bjEgICAgPSBbXHUwQTE1LVx1MEEzOV07ICMgR3VybXVraGkgTGV0dGVyIEthLC4uLixIYQorJEd1
ajAgICAgPSBbXHUwQTg1LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0dGVyIEEsLi4uLEhhCiskR3Vq
ViAgICA9IFx1MEFDRDsgIyBHdWphcmF0aSBTaWduIFZpcmFtYQorJEd1ajEgICAgPSBbXHUwQTk1
LVx1MEFCOV07ICMgR3VqYXJhdGkgTGV0dGVyIEthLC4uLixIYQorJE9yaTAgICAgPSBbXHUwQjA1
LVx1MEIzOV07ICMgT3JpeWEgTGV0dGVyIEEsLi4uLEhhCiskT3JpViAgICA9IFx1MEI0RDsgIyBP
cml5YSBTaWduIFZpcmFtYQorJE9yaTEgICAgPSBbXHUwQjE1LVx1MEIzOV07ICMgT3JpeWEgTGV0
dGVyIEthLC4uLixIYQorJFRlbDAgICAgPSBbXHUwQzA1LVx1MEMzOV07ICMgVGVsdWd1IExldHRl
ciBBLC4uLixIYQorJFRlbFYgICAgPSBcdTBDNEQ7ICMgVGVsdWd1IFNpZ24gVmlyYW1hCiskVGVs
MSAgICA9IFtcdTBDMTQtXHUwQzM5XTsgIyBUZWx1Z3UgTGV0dGVyIEthLC4uLixIYQorJEthbjAg
ICAgPSBbXHUwQzg1LVx1MENCOV07ICMgS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKKyRLYW5WICAg
ID0gXHUwQ0NEOyAjIEthbm5hZGEgU2lnbiBWaXJhbWEKKyRLYW4xICAgID0gW1x1MEM5NS1cdTBD
QjldOyAjIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCiskTWFsMCAgICA9IFtcdTBEMDUtXHUwRDM5
XTsgIyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhIAorJE1hbFYgICAgPSBcdTBENEQ7ICMgTWFs
YXlhbGFtIFNpZ24gVmlyYW1hCiskTWFsMSAgICA9IFtcdTBEMTUtXHUwRDM5XTsgIyBNYWxheWFs
YW0gTGV0dGVyIEEsLi4uLEhhCiskUkkgICAgICA9IFtcVTAwMDFGMUU2LVxVMDAwMUYxRkZdOyAj
IEVtb2ppIHJlZ2lvbmFsIGluZGljYXRvcnMKKyRaV0ogICAgID0gXHUyMDBEOyAjIFplcm8gd2lk
dGggam9pbmVyCiskRW1vamlWYXIgPSBbXHVGRTBGXTsgIyBFbW9qaS1zdHlsZSB2YXJpYXRpb24g
c2VsZWN0b3IKKyRFbW9qaUZvclNlcXMgPSBbXHUyNjQwIFx1MjY0MiBcdTI2RjkgXHUyNzY0IFxV
MDAwMUYzMDggXFUwMDAxRjNDMy1cVTAwMDFGM0M0IFxVMDAwMUYzQ0EtXFUwMDAxRjNDQyBcVTAw
MDFGM0YzIFxVMDAwMUY0NDEgXFUwMDAxRjQ2Ni1cVTAwMDFGNDY5IFxVMDAwMUY0NkUtXFUwMDAx
RjQ2RiBcVTAwMDFGNDcxIFxVMDAwMUY0NzMgXFUwMDAxRjQ3NyBcVTAwMDFGNDgxLVxVMDAwMUY0
ODIgXFUwMDAxRjQ4Ni1cVTAwMDFGNDg3IFxVMDAwMUY0OEIgXFUwMDAxRjU3NSBcVTAwMDFGNUU4
IFxVMDAwMUY2NDUtXFUwMDAxRjY0NyBcVTAwMDFGNjRCIFxVMDAwMUY2NEQtXFUwMDAxRjY0RSBc
VTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAxRjZCNiBcdTI2OTUtXHUyNjk2IFx1MjcwOCBcVTAw
MDFGMzNFIFxVMDAwMUYzNzMgXFUwMDAxRjM5MyBcVTAwMDFGM0E0IFxVMDAwMUYzQTggXFUwMDAx
RjNFQiBcVTAwMDFGM0VEIFxVMDAwMUY0QkItXFUwMDAxRjRCQyBcVTAwMDFGNTI3IFxVMDAwMUY1
MkMgXFUwMDAxRjY4MCBcVTAwMDFGNjkyIFxVMDAwMUY5MjYgXFUwMDAxRjkzNy1cVTAwMDFGOTM5
IFxVMDAwMUY5M0MtXFUwMDAxRjkzRV07ICMgRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBpbiBaV0og
c2VxdWVuY2VzCiskRW1vamlGb3JNb2RzID0gW1x1MjYxRCBcdTI2RjkgXHUyNzBBLVx1MjcwRCBc
VTAwMDFGMzg1IFxVMDAwMUYzQzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBIFxVMDAwMUYzQ0IgXFUw
MDAxRjQ0Mi1cVTAwMDFGNDQzIFxVMDAwMUY0NDYtXFUwMDAxRjQ1MCBcVTAwMDFGNDY2LVxVMDAw
MUY0NzggXFUwMDAxRjQ3QyBcVTAwMDFGNDgxLVxVMDAwMUY0ODMgXFUwMDAxRjQ4NS1cVTAwMDFG
NDg3IFxVMDAwMUY0QUEgXFUwMDAxRjU3NSBcVTAwMDFGNTkwIFxVMDAwMUY1OTUgXFUwMDAxRjU5
NiBcVTAwMDFGNjQ1LVxVMDAwMUY2NDcgXFUwMDAxRjY0Qi1cVTAwMDFGNjRGIFxVMDAwMUY2QTMg
XFUwMDAxRjZCNC1cVTAwMDFGNkI2IFxVMDAwMUY2QzAgXFUwMDAxRjkxOCBcVTAwMDFGM0MyIFxV
MDAwMUYzQzcgXFUwMDAxRjNDQyBcVTAwMDFGNTc0IFxVMDAwMUY1N0EgXFUwMDAxRjZDQyBcVTAw
MDFGOTE5LVxVMDAwMUY5MUUgXFUwMDAxRjkyNiBcVTAwMDFGOTMwIFxVMDAwMUY5MzMtXFUwMDAx
RjkzOSBcVTAwMDFGOTNDLVxVMDAwMUY5M0VdIDsgIyBFbW9qaSB0aGF0IHRha2UgRml0enBhdHJp
Y2sgbW9kaWZpZXJzCiskRW1vamlNb2RzID0gW1xVMDAwMUYzRkItXFUwMDAxRjNGRl07ICMgRml0
enBhdHJpY2sgbW9kaWZpZXJzCisKKyEhY2hhaW47CishIVJJTm9DaGFpbjsKKyEhZm9yd2FyZDsK
KworJENSICRMRjsKKyRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7CisoJExWIHwgJFYpICgkViB8
ICRUKTsKKygkTFZUIHwgJFQpICRUOworCiskUkkgJFJJICRFeHRlbmQqIC8gJFJJOworJFJJICRS
SSAkRXh0ZW5kKjsKK1teJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsKK1teJENvbnRyb2wgJENS
ICRMRl0gJFNwYWNpbmdNYXJrOworCiskSGluMCAkSGluViAkSGluMTsgIyBEZXZhbmFnYXJpIFZp
cmFtYSAoZm9yd2FyZCkKKyRCZW4wICRCZW5WICRCZW4xOyAjIEJlbmdhbGkgVmlyYW1hIChmb3J3
YXJkKQorJFBhbjAgJFBhblYgJFBhbjE7ICMgR3VybXVraGkgVmlyYW1hIChmb3J3YXJkKQorJEd1
ajAgJEd1alYgJEd1ajE7ICMgR3VqYXJhdGkgVmlyYW1hIChmb3J3YXJkKQorJE9yaTAgJE9yaVYg
JE9yaTE7ICMgT3JpeWEgVmlyYW1hIChmb3J3YXJkKQorJFRlbDAgJFRlbFYgJFRlbDE7ICMgVGVs
dWd1IFZpcmFtYSAoZm9yd2FyZCkKKyRLYW4wICRLYW5WICRLYW4xOyAjIEthbm5hZGEgVmlyYW1h
IChmb3J3YXJkKQorJE1hbDAgJE1hbFYgJE1hbDE7ICMgTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2Fy
ZCkKKyRaV0ogJEVtb2ppRm9yU2VxczsgIyBEb250IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5j
ZXMKKyRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyAjIERvbnQgYnJlYWsgYmV0
d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2VsZWN0b3IpIGFu
ZCBGaXR6cGF0cmljayBtb2RpZmllcgorCishIXJldmVyc2U7CiskTEYgJENSOworKCRMIHwgJFYg
fCAkTFYgfCAkTFZUKSAkTDsKKygkViB8ICRUKSAoJExWIHwgJFYpOworJFQgKCRMVlQgfCAkVCk7
CisKKyRFeHRlbmQqICRSSSAkUkkgLyAkRXh0ZW5kKiAkUkkgJFJJOworJEV4dGVuZCogJFJJICRS
STsKKyRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOworJFNwYWNpbmdNYXJrIFteJENv
bnRyb2wgJENSICRMRl07CisKKyRIaW4xICRIaW5WICRIaW4wOyAjIERldmFuYWdhcmkgVmlyYW1h
IChiYWNrd2FyZCkKKyRCZW4xICRCZW5WICRCZW4wOyAjIEJlbmdhbGkgVmlyYW1hIChiYWNrd2Fy
ZCkKKyRQYW4xICRQYW5WICRQYW4wOyAjIEd1cm11a2hpIFZpcmFtYSAoYmFja3dhcmQpCiskR3Vq
MSAkR3VqViAkR3VqMDsgIyBHdWphcmF0aSBWaXJhbWEgKGJhY2t3YXJkKQorJE9yaTEgJE9yaVYg
JE9yaTA7ICMgR3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRUZWwxICRUZWxWICRUZWwwOyAj
IFRlbHVndSBWaXJhbWEgKGJhY2t3YXJkKQorJEthbjEgJEthblYgJEthbjA7ICMgS2FubmFkYSBW
aXJhbWEgKGJhY2t3YXJkKQorJE1hbDEgJE1hbFYgJE1hbDA7ICMgTWFsYXlhbGFtIFZpcmFtYSAo
YmFja3dhcmQpCiskRW1vamlGb3JTZXFzICRaV0o7ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0og
c2VxdWVuY2VzCiskRW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsgIyBEb250IGJy
ZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVj
dG9yKSBhbmQgRml0enBhdHJpY2sgbW9kaWZpZXIKKworISFzYWZlX3JldmVyc2U7CiskUkkgJFJJ
KzsKK1skRW1vamlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7CishIXNhZmVfZm9yd2Fy
ZDsKKyRSSSAkUkkrOworJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRFbW9qaU1vZHNdKzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwIGIvU291
cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHAKaW5kZXggMWVkYzMyYTVkNWJi
MDZkZTA3MjFjYzBiNDE4YzI3YzBkZWI4ZDUxMS4uMjQ5MGUzNDc4OWYyMmYxM2UwNmUyYjUxNTQw
MWY4Y2ZjMWJhMDA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJ
dGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5j
cHAKQEAgLTMxLDkgKzMxLDYgQEAKICNpbmNsdWRlIDx1bmljb2RlL3VicmsuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLS8vIEZJWE1FOiBUaGlzIG5lZWRzIGEgYmV0
dGVyIG5hbWUKLSNkZWZpbmUgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUIChQTEFURk9STShJT1Mp
IHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMTAwKSkKLQogbmFtZXNwYWNlIFdURiB7CiAKIC8vIEl0ZXJhdG9yIGluaXRpYWxpemF0aW9u
CkBAIC02MSw2ICs1OCwxMiBAQCBzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIGluaXRpYWxpemVJdGVy
YXRvcldpdGhSdWxlcyhjb25zdCBjaGFyKiBicmVha1J1bGVzKQogCiAjZW5kaWYKIAorI2lmICFQ
TEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCitVQnJlYWtJdGVyYXRvciogY3JlYXRlQ3Vy
c29yUHJlY29tcGlsZWRJdGVyYXRvcigpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5k
aWYKIAogLy8gSXRlcmF0b3IgdGV4dCBzZXR0aW5nCiAKQEAgLTE2NCwxNDMgKzE2NywyNyBAQCBV
QnJlYWtJdGVyYXRvciogc2VudGVuY2VCcmVha0l0ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nKQog
ICAgIHJldHVybiBzZXRUZXh0Rm9ySXRlcmF0b3IoKnN0YXRpY1NlbnRlbmNlQnJlYWtJdGVyYXRv
ciwgc3RyaW5nKTsKIH0KIAorI2lmICFQTEFURk9STShJT1MpCitzdGF0aWMgVUJyZWFrSXRlcmF0
b3IqIGNyZWF0ZUN1cnNvck1vdmVtZW50SXRlcmF0b3JXaXRoRmFsbGJhY2soKQoreworICAgIGlm
IChhdXRvKiBpdGVyYXRvciA9IGNyZWF0ZUN1cnNvclByZWNvbXBpbGVkSXRlcmF0b3IoKSkKKyAg
ICAgICAgcmV0dXJuIGl0ZXJhdG9yOworICAgIHJldHVybiBpbml0aWFsaXplSXRlcmF0b3JXaXRo
UnVsZXMoY3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzKTsKK30KKyNlbmRpZgorCiBVQnJlYWtJ
dGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZykKIHsKICNp
ZiAhUExBVEZPUk0oSU9TKQotICAgIC8vIFRoaXMgcnVsZSBzZXQgaXMgYmFzZWQgb24gY2hhcmFj
dGVyLWJyZWFrIGl0ZXJhdG9yIHJ1bGVzIG9mIElDVSA1NwotICAgIC8vIDxodHRwOi8vc291cmNl
LmljdS1wcm9qZWN0Lm9yZy9yZXBvcy9pY3UvaWN1L3RhZ3MvcmVsZWFzZS01Ny0xL3NvdXJjZS9k
YXRhL2Jya2l0ci8+LgotICAgIC8vIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9tIHRoZSBvcmln
aW5hbCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6Ci0gICAgLy8gKiBSZXBsYWNlZCAnW1xwe0dyYXBo
ZW1lX0NsdXN0ZXJfQnJlYWsgPSBTcGFjaW5nTWFya31dJyB3aXRoICdbXHB7R2VuZXJhbF9DYXRl
Z29yeSA9IFNwYWNpbmcgTWFya30gLSAkRXh0ZW5kXScgZm9yIElDVSAzLjggb3IgZWFybGllcjsK
LSAgICAvLyAqIFJlbW92ZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5n
IGFmdGVyIHByZXBlbmQgY2hhcmFjdGVycyAoQnVnIDI0MzQyKTsKLSAgICAvLyAqIEFkZGVkIHJ1
bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciB2aXJhbWEgc2lnbnMg
b2YgSW5kaWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwgYW5kOwotICAgIC8v
ICogQWRkZWQgcnVsZXMgdGhhdCBwcmV2ZW50IGEgY3Vyc29yIGZyb20gbW92aW5nIGJlZm9yZSBK
YXBhbmVzZSBoYWxmLXdpZHRoIGthdGFrYXJhIHZvaWNlZCBtYXJrcy4KLSAgICAvLyAqIEFkZGVk
IHJ1bGVzIGZvciByZWdpb25hbCBpbmRpY2F0b3Igc3ltYm9scy4KLSAgICBzdGF0aWMgY29uc3Qg
Y2hhcioga1J1bGVzID0KLSAgICAgICAgIiRDUiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVy
X0JyZWFrID0gQ1J9XTsiCi0gICAgICAgICIkTEYgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rl
cl9CcmVhayA9IExGfV07IgotICAgICAgICAiJENvbnRyb2wgPSBbXFxwe0dyYXBoZW1lX0NsdXN0
ZXJfQnJlYWsgPSBDb250cm9sfV07IgotICAgICAgICAiJFZvaWNlTWFya3MgPSBbXFx1RkY5RVxc
dUZGOUZdOyIgLy8gSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRha2FuYSB2b2ljZWQgbWFya3MKLSAg
ICAgICAgIiRFeHRlbmQgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSAk
Vm9pY2VNYXJrcyAtIFtcXHUwRTMwIFxcdTBFMzIgXFx1MEU0NSBcXHUwRUIwIFxcdTBFQjJdXTsi
Ci0gICAgICAgICIkU3BhY2luZ01hcmsgPSBbW1xccHtHZW5lcmFsX0NhdGVnb3J5ID0gU3BhY2lu
ZyBNYXJrfV0gLSAkRXh0ZW5kXTsiCi0gICAgICAgICIkTCAgICAgICA9IFtcXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IEx9XTsiCi0gICAgICAgICIkViAgICAgICA9IFtcXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IFZ9XTsiCi0gICAgICAgICIkVCAgICAgICA9IFtcXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IFR9XTsiCi0gICAgICAgICIkTFYgICAgICA9IFtcXHB7R3JhcGhlbWVf
Q2x1c3Rlcl9CcmVhayA9IExWfV07IgotICAgICAgICAiJExWVCAgICAgPSBbXFxwe0dyYXBoZW1l
X0NsdXN0ZXJfQnJlYWsgPSBMVlR9XTsiCi0gICAgICAgICIkSGluMCAgICA9IFtcXHUwOTA1LVxc
dTA5MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRIaW5WICAg
ID0gXFx1MDk0RDsiIC8vIERldmFuYWdhcmkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRIaW4xICAg
ID0gW1xcdTA5MTUtXFx1MDkzOV07IiAvLyBEZXZhbmFnYXJpIExldHRlciBLYSwuLi4sSGEKLSAg
ICAgICAgIiRCZW4wICAgID0gW1xcdTA5ODUtXFx1MDlCOV07IiAvLyBCZW5nYWxpIExldHRlciBB
LC4uLixIYQotICAgICAgICAiJEJlblYgICAgPSBcXHUwOUNEOyIgLy8gQmVuZ2FsaSBTaWduIFZp
cmFtYQotICAgICAgICAiJEJlbjEgICAgPSBbXFx1MDk5NS1cXHUwOUI5XTsiIC8vIEJlbmdhbGkg
TGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJFBhbjAgICAgPSBbXFx1MEEwNS1cXHUwQTM5XTsi
IC8vIEd1cm11a2hpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJFBhblYgICAgPSBcXHUwQTRE
OyIgLy8gR3VybXVraGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRQYW4xICAgID0gW1xcdTBBMTUt
XFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkR3VqMCAg
ICA9IFtcXHUwQTg1LVxcdTBBQjldOyIgLy8gR3VqYXJhdGkgTGV0dGVyIEEsLi4uLEhhCi0gICAg
ICAgICIkR3VqViAgICA9IFxcdTBBQ0Q7IiAvLyBHdWphcmF0aSBTaWduIFZpcmFtYQotICAgICAg
ICAiJEd1ajEgICAgPSBbXFx1MEE5NS1cXHUwQUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBLYSwu
Li4sSGEKLSAgICAgICAgIiRPcmkwICAgID0gW1xcdTBCMDUtXFx1MEIzOV07IiAvLyBPcml5YSBM
ZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRPcmlWICAgID0gXFx1MEI0RDsiIC8vIE9yaXlhIFNp
Z24gVmlyYW1hCi0gICAgICAgICIkT3JpMSAgICA9IFtcXHUwQjE1LVxcdTBCMzldOyIgLy8gT3Jp
eWEgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJFRlbDAgICAgPSBbXFx1MEMwNS1cXHUwQzM5
XTsiIC8vIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRUZWxWICAgID0gXFx1MEM0
RDsiIC8vIFRlbHVndSBTaWduIFZpcmFtYQotICAgICAgICAiJFRlbDEgICAgPSBbXFx1MEMxNC1c
XHUwQzM5XTsiIC8vIFRlbHVndSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkS2FuMCAgICA9
IFtcXHUwQzg1LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAg
IiRLYW5WICAgID0gXFx1MENDRDsiIC8vIEthbm5hZGEgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRL
YW4xICAgID0gW1xcdTBDOTUtXFx1MENCOV07IiAvLyBLYW5uYWRhIExldHRlciBBLC4uLixIYQot
ICAgICAgICAiJE1hbDAgICAgPSBbXFx1MEQwNS1cXHUwRDM5XTsiIC8vIE1hbGF5YWxhbSBMZXR0
ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWxWICAgID0gXFx1MEQ0RDsiIC8vIE1hbGF5YWxhbSBT
aWduIFZpcmFtYQotICAgICAgICAiJE1hbDEgICAgPSBbXFx1MEQxNS1cXHUwRDM5XTsiIC8vIE1h
bGF5YWxhbSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRSSSAgICAgID0gW1xcVTAwMDFGMUU2
LVxcVTAwMDFGMUZGXTsiIC8vIEVtb2ppIHJlZ2lvbmFsIGluZGljYXRvcnMKLSAgICAgICAgIiRa
V0ogICAgID0gXFx1MjAwRDsiIC8vIFplcm8gd2lkdGggam9pbmVyCi0gICAgICAgICIkRW1vamlW
YXIgPSBbXFx1RkUwRl07IiAvLyBFbW9qaS1zdHlsZSB2YXJpYXRpb24gc2VsZWN0b3IKLSNpZiBB
RERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAgICAgIiRFbW9qaUZvclNlcXMgPSBbXFx1MjY0
MCBcXHUyNjQyIFxcdTI2RjkgXFx1Mjc2NCBcXFUwMDAxRjMwOCBcXFUwMDAxRjNDMy1cXFUwMDAx
RjNDNCBcXFUwMDAxRjNDQS1cXFUwMDAxRjNDQyBcXFUwMDAxRjNGMyBcXFUwMDAxRjQ0MSBcXFUw
MDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ2RiBcXFUwMDAxRjQ3MSBc
XFUwMDAxRjQ3MyBcXFUwMDAxRjQ3NyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MiBcXFUwMDAxRjQ4
Ni1cXFUwMDAxRjQ4NyBcXFUwMDAxRjQ4QiBcXFUwMDAxRjU3NSBcXFUwMDAxRjVFOCBcXFUwMDAx
RjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0QiBcXFUwMDAxRjY0RC1cXFUwMDAxRjY0RSBcXFUw
MDAxRjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXHUyNjk1LVxcdTI2OTYgXFx1MjcwOCBc
XFUwMDAxRjMzRSBcXFUwMDAxRjM3MyBcXFUwMDAxRjM5MyBcXFUwMDAxRjNBNCBcXFUwMDAxRjNB
OCBcXFUwMDAxRjNFQiBcXFUwMDAxRjNFRCBcXFUwMDAxRjRCQi1cXFUwMDAxRjRCQyBcXFUwMDAx
RjUyNyBcXFUwMDAxRjUyQyBcXFUwMDAxRjY4MCBcXFUwMDAxRjY5MiBcXFUwMDAxRjkyNiBcXFUw
MDAxRjkzNy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV07IiAvLyBFbW9qaSB0
aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1vZHMg
PSBbXFx1MjYxRCBcXHUyNkY5IFxcdTI3MEEtXFx1MjcwRCBcXFUwMDAxRjM4NSBcXFUwMDAxRjND
My1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDQSBcXFUwMDAxRjNDQiBcXFUwMDAxRjQ0Mi1cXFUwMDAx
RjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ3OCBcXFUw
MDAxRjQ3QyBcXFUwMDAxRjQ4MS1cXFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBc
XFUwMDAxRjRBQSBcXFUwMDAxRjU3NSBcXFUwMDAxRjU5MCBcXFUwMDAxRjU5NSBcXFUwMDAxRjU5
NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAx
RjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMCBcXFUwMDAxRjkxOCBcXFUw
MDAxRjNDMiBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQyBcXFUwMDAxRjU3NCBcXFUwMDAxRjU3QSBc
XFUwMDAxRjZDQyBcXFUwMDAxRjkxOS1cXFUwMDAxRjkxRSBcXFUwMDAxRjkyNiBcXFUwMDAxRjkz
MCBcXFUwMDAxRjkzMy1cXFUwMDAxRjkzOSBcXFUwMDAxRjkzQy1cXFUwMDAxRjkzRV0gOyIgLy8g
RW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBj
cmVhdGVDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKCk7CiAjZWxzZQotICAgICAg
ICAiJEVtb2ppRm9yU2VxcyA9IFtcXHUyNzY0IFxcVTAwMDFGNDY2LVxcVTAwMDFGNDY5IFxcVTAw
MDFGNDhCXTsiIC8vIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcwotICAg
ICAgICAiJEVtb2ppRm9yTW9kcyA9IFtcXHUyNjFEIFxcdTI3MEEtXFx1MjcwQyBcXFUwMDAxRjM4
NSBcXFUwMDAxRjNDMy1cXFUwMDAxRjNDNCBcXFUwMDAxRjNDNyBcXFUwMDAxRjNDQSBcXFUwMDAx
RjQ0Mi1cXFUwMDAxRjQ0MyBcXFUwMDAxRjQ0Ni1cXFUwMDAxRjQ1MCBcXFUwMDAxRjQ2Ni1cXFUw
MDAxRjQ2OSBcXFUwMDAxRjQ2RS1cXFUwMDAxRjQ3OCBcXFUwMDAxRjQ3QyBcXFUwMDAxRjQ4MS1c
XFUwMDAxRjQ4MyBcXFUwMDAxRjQ4NS1cXFUwMDAxRjQ4NyBcXFUwMDAxRjRBQSBcXFUwMDAxRjU5
NiBcXFUwMDAxRjY0NS1cXFUwMDAxRjY0NyBcXFUwMDAxRjY0Qi1cXFUwMDAxRjY0RiBcXFUwMDAx
RjZBMyBcXFUwMDAxRjZCNC1cXFUwMDAxRjZCNiBcXFUwMDAxRjZDMF0gOyIgLy8gRW1vamkgdGhh
dCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycwotI2VuZGlmCi0gICAgICAgICIkRW1vamlNb2Rz
ID0gW1xcVTAwMDFGM0ZCLVxcVTAwMDFGM0ZGXTsiIC8vIEZpdHpwYXRyaWNrIG1vZGlmaWVycwot
ICAgICAgICAiISFjaGFpbjsiCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAg
ICIhIVJJTm9DaGFpbjsiCi0jZW5kaWYKLSAgICAgICAgIiEhZm9yd2FyZDsiCi0gICAgICAgICIk
Q1IgJExGOyIKLSAgICAgICAgIiRMICgkTCB8ICRWIHwgJExWIHwgJExWVCk7IgotICAgICAgICAi
KCRMViB8ICRWKSAoJFYgfCAkVCk7IgotICAgICAgICAiKCRMVlQgfCAkVCkgJFQ7IgotI2lmIEFE
RElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsi
Ci0gICAgICAgICIkUkkgJFJJICRFeHRlbmQqOyIKLSAgICAgICAgIlteJENvbnRyb2wgJENSICRM
Rl0gJEV4dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFyazsi
Ci0jZWxzZQotICAgICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkRXh0ZW5kOyIKLSAgICAgICAg
IlteJENvbnRyb2wgJENSICRMRl0gJFNwYWNpbmdNYXJrOyIKLSAgICAgICAgIiRSSSAkUkkgLyAk
Ukk7IgotICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAgICAgIiRIaW4wICRIaW5WICRI
aW4xOyIgLy8gRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkQmVuMCAkQmVu
ViAkQmVuMTsiIC8vIEJlbmdhbGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFBhbjAgJFBh
blYgJFBhbjE7IiAvLyBHdXJtdWtoaSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkR3VqMCAk
R3VqViAkR3VqMTsiIC8vIEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRPcmkw
ICRPcmlWICRPcmkxOyIgLy8gT3JpeWEgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJFRlbDAg
JFRlbFYgJFRlbDE7IiAvLyBUZWx1Z3UgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEthbjAg
JEthblYgJEthbjE7IiAvLyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRNYWww
ICRNYWxWICRNYWwxOyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRa
V0ogJEVtb2ppRm9yU2VxczsiIC8vIERvbid0IGJyZWFrIGluIGVtb2ppIFpXSiBzZXF1ZW5jZXMK
LSAgICAgICAgIiRFbW9qaUZvck1vZHMgJEVtb2ppVmFyPyAkRW1vamlNb2RzOyIgLy8gRG9uJ3Qg
YnJlYWsgYmV0d2VlbiByZWxldmFudCBlbW9qaSAocG9zc2libHkgd2l0aCB2YXJpYXRpb24gc2Vs
ZWN0b3IpIGFuZCBGaXR6cGF0cmljayBtb2RpZmllcgotICAgICAgICAiISFyZXZlcnNlOyIKLSAg
ICAgICAgIiRMRiAkQ1I7IgotICAgICAgICAiKCRMIHwgJFYgfCAkTFYgfCAkTFZUKSAkTDsiCi0g
ICAgICAgICIoJFYgfCAkVCkgKCRMViB8ICRWKTsiCi0gICAgICAgICIkVCAoJExWVCB8ICRUKTsi
Ci0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJ
IC8gJEV4dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kKiAkUkkgJFJJOyIKLSAgICAg
ICAgIiRFeHRlbmQgICAgICBbXiRDb250cm9sICRDUiAkTEZdOyIKLSAgICAgICAgIiRTcGFjaW5n
TWFyayBbXiRDb250cm9sICRDUiAkTEZdOyIKLSNlbHNlCi0gICAgICAgICIkRXh0ZW5kICAgICAg
W14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAk
Q1IgJExGXTsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJICRSSTsiCi0gICAgICAgICIkUkkgJFJJ
OyIKLSNlbmRpZgotICAgICAgICAiJEhpbjEgJEhpblYgJEhpbjA7IiAvLyBEZXZhbmFnYXJpIFZp
cmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkQmVuMSAkQmVuViAkQmVuMDsiIC8vIEJlbmdhbGkg
VmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRQYW4xICRQYW5WICRQYW4wOyIgLy8gR3VybXVr
aGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRHdWoxICRHdWpWICRHdWowOyIgLy8gR3Vq
YXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRPcmkxICRPcmlWICRPcmkwOyIgLy8g
R3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRUZWwxICRUZWxWICRUZWwwOyIg
Ly8gVGVsdWd1IFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkS2FuMSAkS2FuViAkS2FuMDsi
IC8vIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkKLSAgICAgICAgIiRNYWwxICRNYWxWICRNYWww
OyIgLy8gTWFsYXlhbGFtIFZpcmFtYSAoYmFja3dhcmQpCi0gICAgICAgICIkRW1vamlGb3JTZXFz
ICRaV0o7IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIk
RW1vamlNb2RzICRFbW9qaVZhcj8gJEVtb2ppRm9yTW9kczsiIC8vIERvbid0IGJyZWFrIGJldHdl
ZW4gcmVsZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQg
Rml0enBhdHJpY2sgbW9kaWZpZXIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NVUFBPUlQKLSAgICAg
ICAgIiEhc2FmZV9yZXZlcnNlOyIKLSAgICAgICAgIiRSSSAkUkkrOyIKLSAgICAgICAgIlskRW1v
amlWYXIgJEVtb2ppTW9kc10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiISFzYWZlX2Zvcndh
cmQ7IgotICAgICAgICAiJFJJICRSSSs7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2pp
VmFyICRFbW9qaU1vZHNdKzsiOwotI2Vsc2UKLSAgICAgICAgIlskRW1vamlWYXIgJEVtb2ppTW9k
c10rICRFbW9qaUZvck1vZHM7IgotICAgICAgICAiJEVtb2ppRm9yTW9kcyBbJEVtb2ppVmFyICRF
bW9qaU1vZHNdKzsiCi0gICAgICAgICIhIXNhZmVfcmV2ZXJzZTsiCi0gICAgICAgICIhIXNhZmVf
Zm9yd2FyZDsiOwotI2VuZGlmCi0gICAgc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBzdGF0aWNDdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yID0gaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGtSdWxlcyk7
Ci0jZWxzZSAvLyBQTEFURk9STShJT1MpCiAgICAgLy8gVXNlIHRoZSBzcGVjaWFsIFRoYWkgY2hh
cmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGZvciBhbGwgbG9jYWxlcwotICAgIHN0YXRpYyBVQnJlYWtJ
dGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVyYXRv
cihVQlJLX0NIQVJBQ1RFUiwgInRoIik7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVh
a0l0ZXJhdG9yKj4gc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvciA9IGluaXRpYWxpemVJdGVy
YXRvcihVQlJLX0NIQVJBQ1RFUiwgInRoIik7CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIAot
ICAgIGlmICghc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcikKKyAgICBpZiAoIXN0YXRpY0N1
cnNvck1vdmVtZW50SXRlcmF0b3IuZ2V0KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0g
ICAgcmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
ciwgc3RyaW5nKTsKKyAgICByZXR1cm4gc2V0VGV4dEZvckl0ZXJhdG9yKCooc3RhdGljQ3Vyc29y
TW92ZW1lbnRJdGVyYXRvci5nZXQoKSksIHN0cmluZyk7CiB9CiAKIFVCcmVha0l0ZXJhdG9yKiBh
Y3F1aXJlTGluZUJyZWFrSXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcsIGNvbnN0IEF0b21pY1N0
cmluZyYgbG9jYWxlLCBjb25zdCBVQ2hhciogcHJpb3JDb250ZXh0LCB1bnNpZ25lZCBwcmlvckNv
bnRleHRMZW5ndGgsIExpbmVCcmVha0l0ZXJhdG9yTW9kZSBtb2RlKQpAQCAtMzQzLDYgKzIzMCw3
IEBAIHZvaWQgY2xvc2VMaW5lQnJlYWtJdGVyYXRvcihVQnJlYWtJdGVyYXRvciomIGl0ZXJhdG9y
KQogewogICAgIFVCcmVha0l0ZXJhdG9yKiB1YnJrSXRlciA9IGl0ZXJhdG9yOwogICAgIEFTU0VS
VCh1YnJrSXRlcik7CisgICAgLy8gRklYTUU6IFVzZSBSQUlJIHRvIGRvIHRoaXMgaW5zdGVhZC4K
ICAgICB1YnJrX2Nsb3NlKHVicmtJdGVyKTsKICAgICBpdGVyYXRvciA9IG51bGxwdHI7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKaW5kZXggMmJiNWY5Y2E0YzVjMGU1
MGQzZTAyYTUyNzA3YzQxYWQ3YzMzMDZhOC4uOGI1ODM1MzRkYjJhY2U4NjJkNTA0NTFlOWI4ODM3
N2JkNmJhNjIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVy
YXRvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaApAQCAt
MjksNiArMjksMTAgQEAgbmFtZXNwYWNlIFdURiB7CiAKIGVudW0gY2xhc3MgTGluZUJyZWFrSXRl
cmF0b3JNb2RlIHsgRGVmYXVsdCwgTG9vc2UsIE5vcm1hbCwgU3RyaWN0IH07CiAKK2V4dGVybiBj
b25zdCBjaGFyKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXM7CisKK1VCcmVha0l0ZXJhdG9y
KiBjcmVhdGVDdXJzb3JQcmVjb21waWxlZEl0ZXJhdG9yKCk7CisKIC8vIFRoaXMgaXMgc2ltaWxh
ciB0byBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0b3IgaW4gbW9zdCBjYXNlcywgYnV0IGlzIHN1Ympl
Y3QgdG8KIC8vIHBsYXRmb3JtIFVJIGNvbnZlbnRpb25zLiBPbmUgbm90YWJsZSBleGFtcGxlIHdo
ZXJlIHRoaXMgY2FuIGJlIGRpZmZlcmVudAogLy8gZnJvbSBjaGFyYWN0ZXIgYnJlYWsgaXRlcmF0
b3IgaXMgVGhhaSBwcmVwZW5kIGNoYXJhY3RlcnMsIHNlZSBidWcgMjQzNDIuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFj
Lm1tIGIvU291cmNlL1dURi93dGYvdGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElD
VU1hYy5tbQppbmRleCBiZWY1ZGFhNjQyODg4MjFlMjBmMjYyOGM2ODU1ZWU4ZTg4YTM4OTJjLi4w
MjQyNTUyNzVkMjI2MjFjODliYjgyMGU1NzIyMzhlMDViMmEyYmJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VN
YWMubW0KQEAgLTIxLDEyICsyMSwxMDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVLmgiCiAKKyNpbmNsdWRlICJUZXh0QnJlYWtJ
dGVyYXRvci5oIgorI2luY2x1ZGUgPHVuaWNvZGUvdWJyay5oPgorI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KIAorI2RlZmluZSBVU0VfUFJFQ09NUElMRURfQlJFQUtJTkdfUlVMRVMgKFVT
RShBUFBMRV9JTlRFUk5BTF9TREspICYmICgoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhP
TkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKSkpCisKKyNpZiBVU0VfUFJFQ09N
UElMRURfQlJFQUtJTkdfUlVMRVMKKyNpbmNsdWRlIDx1bmljb2RlL3VkYXRhLmg+CisjZW5kaWYK
KworQGludGVyZmFjZSBXVEZCdW5kbGVGaW5kZXIgOiBOU09iamVjdAorQGVuZAorCitAaW1wbGVt
ZW50YXRpb24gV1RGQnVuZGxlRmluZGVyCitAZW5kCisKIG5hbWVzcGFjZSBXVEYgewogCiBzdGF0
aWMgY29uc3QgaW50IG1heExvY2FsZVN0cmluZ0xlbmd0aCA9IDMyOwogCisjaWYgVVNFX1BSRUNP
TVBJTEVEX0JSRUFLSU5HX1JVTEVTCitzdGF0aWMgVURhdGFNZW1vcnkqIGJyZWFrSXRlcmF0b3JS
ZXNvdXJjZShOU1N0cmluZyAqZmlsZU5hbWVCYXNlKQoreworICAgIC8vIEZJWE1FOiBEbyB0aGlz
IGluIGEgd2F5IHRoYXQgZG9lc24ndCByZXF1aXJlIGZpbGUgSU8uCisgICAgTlNCdW5kbGUgKmJ1
bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV1RGQnVuZGxlRmluZGVyIGNsYXNzXV07
CisgICAgTlNTdHJpbmcgKnBhdGggPSBbYnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpmaWxlTmFtZUJh
c2Ugb2ZUeXBlOkAiYnJrIiBpbkRpcmVjdG9yeTpAIkJyZWFraW5nUnVsZXMiXTsKKyAgICBpZiAo
IXBhdGgpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgTlNTdHJpbmcgKmRpcmVjdG9y
eSA9IFtwYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF07CisgICAgaWYgKCFk
aXJlY3RvcnkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisjaWYgUExBVEZPUk0oSU9TKQor
ICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAgIHVkYXRhX3NldEZp
bGVBY2Nlc3MoVURBVEFfRklMRVNfRklSU1QsICZlcnJvckNvZGUpOworICAgIGlmIChVX0ZBSUxV
UkUoZXJyb3JDb2RlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKKworICAgIFVF
cnJvckNvZGUgdURhdGFFcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAgVURhdGFNZW1vcnkq
IHJlc3VsdCA9IHVkYXRhX29wZW4oW2RpcmVjdG9yeSBVVEY4U3RyaW5nXSwgImJyayIsIFtmaWxl
TmFtZUJhc2UgVVRGOFN0cmluZ10sICZ1RGF0YUVycm9yQ29kZSk7CisKKyNpZiBQTEFURk9STShJ
T1MpCisgICAgdWRhdGFfc2V0RmlsZUFjY2VzcyhVREFUQV9ERUZBVUxUX0FDQ0VTUywgJmVycm9y
Q29kZSk7CisgICAgaWYgKFVfRkFJTFVSRShlcnJvckNvZGUpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyNlbmRpZgorCisgICAgaWYgKFVfRkFJTFVSRSh1RGF0YUVycm9yQ29kZSkpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFVC
cmVha0l0ZXJhdG9yKiBicmVha0l0ZXJhdG9yRnJvbVJlc291cmNlRGF0YShVRGF0YU1lbW9yeSog
ZGF0YSkKK3sKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
VUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAgLy8gRklYTUU6IDxyZGFy
Oi8vcHJvYmxlbS8zMDQyMTk3MT4gSXQgaXMgaW1wb3NzaWJsZSB0byBjb21wdXRlIHRoZSBzZWNv
bmQgYXJndW1lbnQgdG8gdGhpcyBmdW5jdGlvbi4KKyAgICBVQnJlYWtJdGVyYXRvciogcmVzdWx0
ID0gdWJya19vcGVuQmluYXJ5UnVsZXMoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCAqPih1ZGF0
YV9nZXRNZW1vcnkoZGF0YSkpLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSwg
bnVsbHB0ciwgMCwgJmVycm9yQ29kZSk7CisKKyAgICBpZiAoVV9GQUlMVVJFKGVycm9yQ29kZSkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRp
YyBVQnJlYWtJdGVyYXRvciogY3Vyc29yTW92ZW1lbnRJdGVyYXRvcigpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFVEYXRhTWVtb3J5Kj4gcmVzb3VyY2VEYXRhKGJyZWFrSXRlcmF0b3JS
ZXNvdXJjZShAIkN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyIpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8VUJyZWFrSXRlcmF0b3IqPiBpdGVyYXRvcihicmVha0l0ZXJhdG9yRnJvbVJl
c291cmNlRGF0YShyZXNvdXJjZURhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gaXRlcmF0b3IuZ2V0
KCk7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogY2xvbmVJdGVyYXRvcihVQnJlYWtJdGVy
YXRvciogaXRlcmF0b3IpCit7CisgICAgaWYgKCFpdGVyYXRvcikKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CisgICAgaWYg
KGF1dG8qIHJlc3VsdCA9IHVicmtfc2FmZUNsb25lKGl0ZXJhdG9yLCBudWxscHRyLCAwLCAmZXJy
b3JDb2RlKSkgeworICAgICAgICBpZiAoVV9TVUNDRVNTKGVycm9yQ29kZSkpCisgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgor
CitVQnJlYWtJdGVyYXRvciogY3JlYXRlQ3Vyc29yUHJlY29tcGlsZWRJdGVyYXRvcigpCit7Cisj
aWYgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JVTEVTCisgICAgcmV0dXJuIGNsb25lSXRlcmF0
b3IoY3Vyc29yTW92ZW1lbnRJdGVyYXRvcigpKTsKKyNlbHNlCisgICAgcmV0dXJuIG51bGxwdHI7
CisjZW5kaWYKK30KKwogc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHRleHRC
cmVha0xvY2FsZVByZWZlcmVuY2UoKQogewogICAgIFJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJl
Zj4gbG9jYWxlID0gYWRvcHRDRihDRlByZWZlcmVuY2VzQ29weVZhbHVlKENGU1RSKCJBcHBsZVRl
eHRCcmVha0xvY2FsZSIpLApkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtl
IGIvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlCmluZGV4IDUxMzBmZmNiY2M3YzljZTc1MTRh
ZjRkNTUzYmQ4YTRmMDUwMTQ1NmQuLjlmODMzMGFmN2ZlMzYzZDgwMTNlZWUzNGJlZGQ3ZmMxNWNi
NzkxZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQorKysgYi9Tb3Vy
Y2UvY21ha2UvV2ViS2l0RlMuY21ha2UKQEAgLTI3LDYgKzI3LDcgQEAgaWYgKE5PVCBUT09MU19E
SVIpCiBlbmRpZiAoKQogCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0RJUiAiJHtDTUFLRV9CSU5BUllf
RElSfS9EZXJpdmVkU291cmNlcyIpCitzZXQoREVSSVZFRF9TT1VSQ0VTX1dURl9ESVIgIiR7Q01B
S0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV1RGIikKIHNldChERVJJVkVEX1NPVVJDRVNf
SkFWQVNDUklQVENPUkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL0ph
dmFTY3JpcHRDb3JlIikKIHNldChERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVIgIiR7Q01BS0Vf
QklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViQ29yZSIpCiBzZXQoREVSSVZFRF9TT1VSQ0VT
X1dFQktJVExFR0FDWV9ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0TGVnYWN5IikKQEAgLTM1LDYgKzM2LDggQEAgc2V0KERFUklWRURfU09VUkNFU19XRUJLSVQy
X0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXQyIikKIHNldChE
RVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rl
cml2ZWRTb3VyY2VzL1dlYkluc3BlY3RvclVJIikKIAogZmlsZShNQUtFX0RJUkVDVE9SWSAke0RF
UklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9KQorZmlsZShNQUtFX0RJUkVDVE9SWSAk
e0RFUklWRURfU09VUkNFU19XVEZfRElSfSkKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVE
X1NPVVJDRVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlcykKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtD
TUFLRV9CSU5BUllfRElSfS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZSkKIAogZmlsZShN
QUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9KQpkaWZm
IC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDNhNmNhNzgyZWUxNDEzY2FjZmY4
YWQ4OWYwYWQ3ZTFhNDY1YjE4NzMuLjcxYmNiOWZmMGM5NTg4NmE2MzA5YzQ5NjlhZDRkZThlZjc1
ZjIxOTggMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxNy0wMi0xMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWlsZCB0aW1l
IHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjA2MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzEwNTc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2Uv
Y21ha2UvV2ViS2l0RlMuY21ha2U6CisKIDIwMTctMDItMTAgIEJyaWFuIEJ1cmcgIDxiYnVyZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIGJhc2ljIGRlYnVnZ2luZyBtYWNyb3MgZm9yIENNYWtl
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301426</attachid>
            <date>2017-02-13 17:37:23 -0800</date>
            <delta_ts>2017-02-13 17:55:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20170213173451.patch</filename>
            <type>text/plain</type>
            <size>58523</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NjkxNWNjNTYzZTQ0NDI2YzBhNzAyNTIxN2VhOTRjYzVjZWEyNjU0Li4yNjk1M2JlZGNmZDNiMDAw
NTU2ZjEzMTI1NGM3MTA3MmQ3ZWUzYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wMi0xMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzEw
NTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5j
bHVkZSB0aGUgYnl0ZWNvZGUgZmlsZXMgaW5zaWRlIHRoZSBKYXZhU2NyaXB0Q29yZSBidW5kbGUu
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDE3LTAyLTEyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IEMgbG9vcCBidWlsZCBmaXggYXR0ZW1wdCBhZnRlciByMjEyMjA3LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBlNjljOGQ2Yzk2
ZWEwZDAwMjhmZWM0NGVjMDQ3OGFmYzk1NWI5ZGUyLi41ZDhhYWQ2OGUwMzhmMDMxNzZhMjk2MDA3
Y2I1ZmNkNGQzNzQzN2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDE3LTAyLTEzICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJQ1Ug
YnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzEzMTA1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbWFjT1MgYW5kIGlPUyBTREtzIGluY2x1ZGUgYSB0
b29sLCBpY3VnZW5icmssIHdoaWNoIGNvbXBpbGVzIElDVSBicmsgYnJlYWtpbmcKKyAgICAgICAg
cnVsZXMgaW50byBieXRlY29kZS4gUHJldmlvdXNseSwgdGhpcyBjb21waWxhdGlvbiB3YXMgZG9u
ZSBhdCBydW50aW1lIGluc2lkZSB0aGUgSUNVCisgICAgICAgIHVicmtfb3BlblJ1bGVzKCkgZnVu
Y3Rpb24uIE1vdmluZyB0aGlzIGNvbXBpbGF0aW9uIHN0ZXAgdG8gY29tcGlsZSB0aW1lIHJhdGhl
ciB0aGFuCisgICAgICAgIGJ1aWxkIHRpbWUgY2F1c2VzIGEgcGVyZm9ybWFuY2UgYm9vc3QuCisK
KyAgICAgICAgUHJldmlvdXNseSwgdGhlIHNvdXJjZSBmb3IgdGhlIGJyZWFraW5nIHJ1bGVzIHdh
cyBhc3NlbWJsZWQgYnkgY29uY2F0ZW5hdGluZyBDIHN0cmluZ3MKKyAgICAgICAgYXQgcnVudGlt
ZS4gTm93LCB0aGUgc291cmNlIGlzIGNvbnRhaW5lZCB3aXRoaW4gYSBmZXcgdGV4dCBmaWxlcyBp
bnNpZGUKKyAgICAgICAgd3RmL3RleHQvQnJlYWtpbmdSdWxlcy4gQSBidWlsZCBzdGVwICh1c2lu
ZyBhIE1ha2VmaWxlKSB3aWxsIGdlbmVyYXRlIHNvdXJjZSBjb2RlCisgICAgICAgIGNvbnRhaW5p
bmcgdGhlc2Ugc3RyaW5ncywgYW5kIFdURiB3aWxsIGluY2x1ZGUgdGhlc2Ugc291cmNlIGZpbGVz
IGluIHRoZSBzYW1lIHdheSBhbnkKKyAgICAgICAgb2Ygb3VyIHByb2plY3RzIHVzZSBnZW5lcmF0
ZWQgc291cmNlcy4gQWRkaXRpb25hbGx5LCBvbiBPU2VzIHdoaWNoIHN1cHBvcnQgaXQsIHRoZXNl
CisgICAgICAgIHN0cmluZ3MgZ2V0IGNvbXBpbGVkIGRpcmVjdGx5IGludG8gSUNVIGJ5dGVjb2Rl
LCBhbmQgdGhlbiBpbmNsdWRlZCBpbiB0aGUgZnJhbWV3b3JrCisgICAgICAgIGJ1bmRsZS4gQmVj
YXVzZSBXVEYgZ2V0cyBzdGF0aWNhbGx5IGxpbmtlZCBpbnRvIEphdmFTY3JpcHRDb3JlLCB0aGlz
IGlzIHRoZSBidW5kbGUKKyAgICAgICAgd2hpY2ggaW5jbHVkZXMgdGhlIGJ5dGVjb2RlIGZpbGVz
LgorCisgICAgICAgIEF0IHJ1bnRpbWUsIHdlIGZpcnN0IGNoZWNrIGlmIHdlIGhhdmUgYSBmaWxl
IGluIG91ciBidW5kbGUgb2YgdGhlIGFwcHJvcHJpYXRlIG5hbWUsCisgICAgICAgIGFuZCB0aGVu
IHNlZSBpZiBJQ1UgY2FuIG9wZW4gaXQgdXNpbmcgaXRzIHVicmtfb3BlbkJpbmFyeVJ1bGVzKCkg
aW50ZXJmYWNlICh3aGljaAorICAgICAgICBpbmNsdWRlcyBhIHZlcnNpb24gY2hlY2spLiBJZiBh
bnkgb2YgdGhlc2UgY2hlY2tzIGZhaWwsIG9yIGlmIHdlJ3JlIG9uIGEgcG9ydCB3aGljaAorICAg
ICAgICBkb2Vzbid0IGhhdmUgdGhlIG5vdGlvbiBvZiBidW5kbGVzLCB3ZSB3aWxsIHVzZSB0aGUg
QyBzdHJpbmdzIGdlbmVyYXRlZCBhYm92ZSwgYW5kCisgICAgICAgIHBhc3MgdGhlbSB0byB1YnJr
X29wZW5SdWxlcygpIHRoZSBzYW1lIHdheSB3ZSB3ZXJlIGRvaW5nIGJlZm9yZSB0aGlzIHBhdGNo
LgorCisgICAgICAgIFRoZSB1YnJrX29wZW5CaW5hcnlSdWxlcygpIGludGVyZmFjZSBpbiBJQ1Ug
cmVxdWlyZXMgYWRkaW5nIHNvbWUgbW9yZSBvZiBJQ1UncyBwdWJsaWMKKyAgICAgICAgaGVhZGVy
cyBpbnRvIFdlYktpdC4KKworICAgICAgICAqIFNjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVT
dHJpbmdzLnB5OiBBZGRlZC4KKyAgICAgICAgKG1haW4pOiBPdXRwdXQgQysrIGZpbGVzIHJlcHJl
c2VudGluZyB0aGUgYnJlYWtpbmcgcnVsZXMgc3RyaW5ncy4KKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajogQWRkIGEgbmV3IERlcml2ZWQgU291cmNlcyB0YXJnZXQgd2hp
Y2ggdXNlcyBhCisgICAgICAgIERlcml2ZWRTb3VyY2VzLm1ha2UgTWFrZWZpbGUsIHRoZSBzYW1l
IHdheSBXZWJLaXQyLCBXZWJDb3JlLCBhbmQgSmF2YVNjcmlwdENvcmUgd3Jvay4KKyAgICAgICAg
QWxzbywgYWRkIHRoZSBydWxlcyB0ZXh0IGZpbGVzIHRvIHRoZSBwcm9qZWN0LiBUaGVuLCBtYWtl
IFdURiBkZXBlbmQgb24gdGhpcyBuZXcKKyAgICAgICAgdGFyZ2V0LgorICAgICAgICAqIGljdS91
bmljb2RlL3VicmsuaDogQWRkIGRlY2xhcmF0aW9uIGZvciB1YnJrX29wZW5CaW5hcnlSdWxlcygp
LgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDogQWRkIGJ1aWxkIHN0ZXBzIGZvciBvdGhl
ciBwb3J0cyB0byBnZW5lcmF0ZSB0aGUgYnJlYWtpbmcKKyAgICAgICAgcnVsZXMgc3RyaW5ncyBz
b3VyY2UgZmlsZXMuCisgICAgICAgICogd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkLiBU
aGlzIGlzIHRoZSBwbGFjZSB3aGVyZSBpY3VnZW5icmsgaXMgYWN0dWFsbHkgCisgICAgICAgIGlu
dm9rZWQuIEl0IGFsc28gdHJpZ2dlcnMgdGhlIHNjcmlwdCAoR2VuZXJhdGVCcmVha2luZ1J1bGVT
dHJpbmdzLnB5KSB3aGljaCBnZW5lcmF0ZXMKKyAgICAgICAgdGhlIEMrKyBjb2RlIGZvciB0aGUg
cnVsZXMgc3RyaW5ncy4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQ6IEFkZGVkLgorICAgICAgICAq
IHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHA6CisgICAgICAgIChXVEY6
OmNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldCk6IFVzZWQgYnkgb3RoZXIgcG9ydHMuIFJldHVybmlu
ZyBudWxscHRyIG1lYW5zIHdlIGNhbid0CisgICAgICAgIHVzZSBwcmVjb21waWxlZCBydWxlcy4K
KyAgICAgICAgKFdURjo6Y3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjayk6
IFVzZWQgaW4gcGxhY2Ugb2YgdGhlIGhhcmRjb2RlZCBydWxlcworICAgICAgICBpbiBjdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yKCkuCisgICAgICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3Ip
OiBSZW1vdmUgaGFyZGNvZGVkIHJ1bGVzLgorICAgICAgICAoV1RGOjptYXBMaW5lSXRlcmF0b3JN
b2RlVG9SdWxlcyk6IFVwZGF0ZSB0byB1c2UgdGhlIG5ldyBnZW5lcmF0ZWQgQysrIHN0cmluZ3Mu
CisgICAgICAgIChXVEY6Om9wZW5MaW5lQnJlYWtJdGVyYXRvcik6IFRoZSBsb2dpYyBvZiB0cnlp
bmcgdG8gdXNlIGEgcHJlY29tcGlsZWQgYnl0ZWNvZGUsIGFuZCBmYWxsaW5nCisgICAgICAgIGJh
Y2sgdG8gQysrIHN0cmluZ3MgaWYgaXQgaXNuJ3QgcG9zc2libGUuCisgICAgICAgIChXVEY6OmNs
b3NlTGluZUJyZWFrSXRlcmF0b3IpOgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmg6IEhlYWRlciBmb3IgZ2VuZXJhdGVkIEMrKyBjb2RlLgorICAgICAgICAqIHd0Zi90ZXh0
L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAgICAgICAoV1RGOjpi
cmVha0l0ZXJhdG9yUmVzb3VyY2UpOiBUaGUgYWN0dWFsIGxvZ2ljIGZvciBsb29raW5nIGluc2lk
ZSB0aGUgYnVuZGxlIGZvciB0aGUKKyAgICAgICAgcHJlY29tcGlsZWQgYnl0ZWNvZGUuCisgICAg
ICAgIChXVEY6OmJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKTogRGl0dG8KKyAgICAgICAg
KFdURjo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6IENhbGxzIGJyZWFrSXRlcmF0b3JGcm9tUmVz
b3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSyk6IERpdHRv
CisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSkspOiBEaXR0bworICAg
ICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSkspOiBEaXR0bworICAgICAg
ICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSkspOiBEaXR0bworICAgICAg
ICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKTogRGl0dG8KKyAgICAgICAg
KFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSyk6IERpdHRvCisgICAgICAg
IChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSkspOiBEaXR0bworICAgICAgICAo
V1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLKTogRGl0dG8KKyAgICAgICAg
KFdURjo6Y2xvbmVJdGVyYXRvcik6CisgICAgICAgIChXVEY6OmNyZWF0ZUl0ZXJhdG9yRm9yUnVs
ZVNldCk6IENhbGxzIHRoZSBhYm92ZSBzdGF0aWMgZnVuY3Rpb25zLgorCiAyMDE3LTAyLTEzICBC
cmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBGb2xsb3d1cCB0bzog
UmVwbGFjZSBhbGwgV2ViS2l0IExpYnJhcnkgVmVyc2lvbiBjaGVja3MgaW4gV0syIHdpdGggU0RL
IHZlcnNpb24gY2hlY2tzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwZmU0YjVm
MDVmZGE0OTNjOTYwZjdmYmY5N2UyNjczYzhkYTU0MWM3Li42ZmU2YzdkOGJlM2RjNTViNjQwODUy
ODlmZThmNDZkOTEwYzNkOTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIy
OCw2ICsxMjI4LDcgQEAKIAkJMUEyOEQ0QTgxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVm
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUEyOEQ0QTcxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVmUHJpdmF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBODgyNkIxNjUzQzRD
RDFBNjQyOTgzQiAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5VGFibGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEI0N0YyMzQzNjZDNEI3MkFDODUyQTdF
IC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgKi87IH07CiAJCTFBQ0Y3Mzc3MTcxQ0E2
RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBQ0Y3Mzc2MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCAqLzsgfTsK
KwkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRDE4NzhGMUQ1NTk2MTIwMEND
N0RFQyAvKiBCcmVha2luZ1J1bGVzICovOyB9OwogCQkyNjAwQjVBNjE1MkJBQUE3MDA5MUVFNUYg
LyogSlNTdHJpbmdKb2luZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNw
cCAqLzsgfTsKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNTE1
MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLzsgfTsKIAkJMjYyRDg1QjYxQzBE
NjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjJEODVCNDFDMEQ2NTBGMDA2
QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLzsgfTsKQEAgLTM2NTgs
NiArMzY1OSw3IEBACiAJCTFDOTA1MTQ1MEJBOUU4QTcwMDgxRTlEMCAvKiBCYXNlLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRBMEQzMkMzOUEwMDQxQkNGRiAvKiBKYXZhU2Ny
aXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEIwRDMyQzM5QTAwNDFCQ0ZGIC8qIEph
dmFTY3JpcHRDb3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3Jp
cHRDb3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhGMUQ1NTk2MTIw
MENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gZm9sZGVyOyBuYW1lID0gQnJlYWtpbmdSdWxlczsgcGF0aCA9IC4u
L1dURi9CcmVha2luZ1J1bGVzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVB
NDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYyRDg1QjQxQzBENjUwRjAwNkFDQjYxIC8qIEFp
ckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBwYXRoID0gYjMvYWly
L0FpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC02MDE1LDYgKzYwMTcsNyBAQAogCQk2NTBGREY4RDA5RDBGQ0E3MDA3NjlFNTQgLyog
RGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJ
CQkwRjYxODMzMjFDNDVGMzVDMDA3MjQ1MEIgLyogQWlyT3Bjb2RlLmggKi8sCiAJCQkJMEY2MTgz
MzQxQzQ1RjNCNjAwNzI0NTBCIC8qIEFpck9wY29kZUdlbmVyYXRlZC5oICovLAogCQkJCTBGNjE4
MzM1MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVVdGlscy5oICovLApAQCAtOTQzMSw2ICs5
NDM0LDcgQEAKIAkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAw
Q0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJCUE1M0YxQUMwMThD
OTBGOEYwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBiL1NvdXJjZS9X
VEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTc1
NGJlNTZkZjllZDM4NjE5MTViNmMzZDE1MGQ4NTI0OTY1ODRjMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKQEAgLTAs
MCArMSwxMDMgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5cworaW1wb3J0IHJlCitpbXBvcnQgYXJncGFy
c2UKKworaGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisKKworZGVmIG1haW4oYXJndj1Ob25lKToK
KyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0nR2VuZXJh
dGUgYnJlYWtpbmcgcnVsZSBzb3VyY2Ugc3RyaW5ncyBpbiBDKysgc291cmNlIGZvbXJhdC4nKQor
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ3N5bWJvbE5hbWUnKQorICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoJ2ZpbGVOYW1lcycsIG5hcmdzPScrJykKKworICAgIGFyZ3MgPSBwYXJzZXIucGFyc2Vf
YXJncygpCisKKyAgICBzeW1ib2xOYW1lID0gYXJncy5zeW1ib2xOYW1lWzBdLmxvd2VyKCkgKyBh
cmdzLnN5bWJvbE5hbWVbMTpdCisgICAgZmlsZU5hbWVzID0gYXJncy5maWxlTmFtZXMKKworICAg
IHByaW50KGhlYWRlcikKKyAgICBwcmludCgiIiIKKy8vIERPIE5PVCBFRElUIFRISVMgRklMRS4g
SXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIHNjcmlwdAorLy8gJXMKKworI2lu
Y2x1ZGUgXCJjb25maWcuaFwiCisjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+CisiIiIgJSAo
c3lzLmFyZ3ZbMF0pKQorICAgIHByaW50KCIiIm5hbWVzcGFjZSBXVEYgeworCitjb25zdCBjaGFy
KiAlcyA9ICIiIiAlIChzeW1ib2xOYW1lKSkKKworICAgIGZvciBmaWxlTmFtZSBpbiBmaWxlTmFt
ZXM6CisgICAgICAgIGZvciBsIGluIG9wZW4oZmlsZU5hbWUsICdyJyk6CisgICAgICAgICAgICBs
aW5lID0gbC5yc3RyaXAoKQorICAgICAgICAgICAgaWYgcmUubWF0Y2goIl5ccyokIiwgbGluZSk6
CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgo
IiMgIik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lID09ICIj
IjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0
aCgiIyIpOgorICAgICAgICAgICAgICAgIHByaW50KGxpbmUpCisgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgIG1hdGNoID0gcmUubWF0Y2goIl4oLiopOyggIyAuKik/JCIsIGxpbmUp
CisgICAgICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9
ICJcIiIgKyBtYXRjaC5ncm91cCgxKS5yZXBsYWNlKCJcXCIsICJcXFxcIikgKyAiO1wiIgorICAg
ICAgICAgICAgICAgICAgICBpZiBtYXRjaC5ncm91cCgyKToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdCArPSAiIC8vICIgKyBtYXRjaC5ncm91cCgyKVszOl0KKyAgICAgICAgICAgICAg
ICAgICAgcHJpbnQocmVzdWx0KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgICAgIGV4aXQoMSkKKworICAgIHByaW50KCI7IikKKyAgICBwcmludCgifSIpCisKK2lmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6CisgICAgc3lzLmV4aXQobWFpbihzeXMuYXJndikpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0MjUzOWIxNDk3OWI2ZWJl
ZDFmMzI0NDE4ZDhjMmI3ZjdjODRjOWE0Li4yMTk2YWZiYWZmMjI1NzcyOTZmNDQwNzFlOWY5N2Vm
OTQwN2U3ZGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTcsNiArNywxNyBAQAogCW9iamVjdHMgPSB7CiAKIC8qIEJlZ2luIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCBzZWN0aW9uICovCisJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJj
ZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3Vy
YXRpb25MaXN0ID0gMUNEMTg3ODMxRDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovOworCQkJ
YnVpbGRQaGFzZXMgPSAoCisJCQkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVyYXRl
IERlcml2ZWQgU291cmNlcyAqLywKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkpOwor
CQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQkJcHJvZHVjdE5hbWUgPSAiRGVyaXZlZCBT
b3VyY2VzIjsKKwkJfTsKIAkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhl
YWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CiAJCQlidWlsZENvbmZp
Z3VyYXRpb25MaXN0ID0gNjVBRkEyODgxNjMwQjk3NzAwM0Q3MjNDIC8qIEJ1aWxkIGNvbmZpZ3Vy
YXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJDb3B5IFdURiBIZWFkZXJzIiAqLzsK
QEAgLTg0LDcgKzk1LDYgQEAKIAkJMTQ0N0FFQzYxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRp
b24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTQ0N0FFQzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICov
OyB9OwogCQkxNDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3b3Jr
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDI0N0I2MjE0Njg5Qjg2MDBF
NzhCNzYgLyogbGliV1RGLmEgKi87IH07CiAJCTE0NDdBRUM5MThGQ0U1OTQwMEIzRDdGRiAvKiBt
Ym1hbGxvYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDQ3QUVDODE4RkNFNTk0MDBCM0Q3RkYgLyogbWJtYWxsb2MuY3BwICovOyB9OwotCQkxNDQ3
QUVDQjE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdG
RiAvKiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OwogCQkxNDY5NDE5MjE2RUFBRjZEMDAyNEUxNDYg
LyogUnVuTG9vcFRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNDY5NDE5MDE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJMTQ2OTQxOTMxNkVBQUY2RDAwMjRF
MTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0Njk0MTkxMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXJD
Ri5jcHAgKi87IH07CiAJCTE0Njk0MTk2MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTk0
MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXIuaCAqLzsgfTsKQEAgLTM0MCw2ICszNTAs
OCBAQAogCQlBREYyQ0U2NjFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREYyQ0U2NDFFMzlG
MTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggKi87IH07CiAJCUFERjJDRTY3MUUzOUYx
MDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURGMkNFNjUxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9y
eUZvb3RwcmludC5jcHAgKi87IH07CiAJCUIzOEZEN0JEMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0
dXJlRGVmaW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggKi87IH07CisJ
CUMyQkE1NDNFMUQ1ODZBRjQwMDBBMzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAw
QjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi87IH07CisJCUMyQ0EzN0U5MUQ1NUM5NzEwMDQ4
NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8q
IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi87IH07CiAJCUM0RjhBOTM3MTlDNjVF
QjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAq
LzsgfTsKIAkJQzhCMEUxQTFFMDFBNDg2RUI5NUUwRDExIC8qIEluZGV4U2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM3RTFEN0RCRDg0QUMzOEZB
RTREMzQgLyogSW5kZXhTZXQuaCAqLzsgfTsKIAkJQzkxNkI5NzVGMDJGNEY3RThCNEFCMTJEIC8q
IEluZGV4TWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QjQzMzgzQTVEMEI0NjNDOTQzM0Q5MzMgLyogSW5kZXhNYXAuaCAqLzsgfTsKQEAgLTM4MSw2
ICszOTMsMTMgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAw
RTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAw
Q0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRh
aW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3
OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVH
bG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8g
PSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Q
cm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQ
cm9qZWN0IG9iamVjdCAqLzsKQEAgLTQ5Miw2ICs1MTEsOSBAQAogCQkxQzE4MUM4RDFEMzA3QUI4
MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDMTgxQzhFMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRG
MTYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzk1MUQzMDgwMEEwMEY1RkEx
NiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5t
bTsgcGF0aCA9IG1hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzZCRTBGQTFFMDM0QzlBMDAyMTc2MTcgLyogR2VuZXJh
dGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gR2VuZXJhdGVCcmVh
a2luZ1J1bGVTdHJpbmdzLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4
QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZl
ZFNvdXJjZXMubWFrZTsgcGF0aCA9IHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB1c2VzVGFicyA9IDE7IH07CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RF
QyAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg4
MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxRkE0N0M4OTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MTQ3QjA4MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2Vy
VG9TdHJpbmdDb252ZXJzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
dGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTcyNCw2ICs3NDYsNyBAQAogCQlBREYyQ0U2NDFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9v
dHByaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUZvb3Rwcmlu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREYyQ0U2NTFFMzlGMTA2MDA2ODg5
REIgLyogTWVtb3J5Rm9vdHByaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1lbW9yeUZvb3RwcmludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzV29ya2lu
Z0Rpci9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRp
YVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NjIsNyArNzg1LDcgQEAKIAkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQkxNDQ3QUVDNjE4RkNFNTc3
MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCQkx
NDQ3QUVDQjE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtz
ICovLAorCQkJCUMyQkE1NDNFMUQ1ODZBRjQwMDBBMzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGlu
IEZyYW1ld29ya3MgKi8sCiAJCQkJMTQ0N0FFQzcxOEZDRTU4MDAwQjNEN0ZGIC8qIGxpYldURi5h
IGluIEZyYW1ld29ya3MgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CkBAIC03OTksNiArODIyLDIyIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUM2QkUwRjkxRTAzNEMyQTAwMjE3NjE3IC8q
IFNjcmlwdHMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJ
CTFDNkJFMEZBMUUwMzRDOUEwMDIxNzYxNyAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3Mu
cHkgKi8sCisJCQkpOworCQkJcGF0aCA9IFNjcmlwdHM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OworCQkxQ0QxODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OTIx
RDU1OThFMTAwQ0M3REVDIC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8sCisJ
CQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTgyMSw5ICs4NjAsMTIgQEAKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAwRTc4
Qjc2IC8qIENvbmZpZ3VyYXRpb25zICovLAorCQkJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAv
KiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMTQwMjJGM0YxOEY1QzNFNTAwN0ZGMEVCIC8qIExp
YnJhcmllcyAqLywKIAkJCQk1RDI0N0I2MzE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvZHVjdHMgKi8s
CisJCQkJMUM2QkUwRjkxRTAzNEMyQTAwMjE3NjE3IC8qIFNjcmlwdHMgKi8sCiAJCQkJNUQyNDdC
NzYxNDY4OUQ3NjAwRTc4Qjc2IC8qIFNvdXJjZSAqLywKKwkJCQkxQ0QxODc4QTFENTU4QUQzMDBD
QzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3MDBC
M0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVCOTAw
QjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtMTE4NSw2ICsxMjI3LDcg
QEAKIAkJQThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAv
KiBCcmVha2luZ1J1bGVzICovLAogCQkJCUE1QkExNUY2MTgyNDM1OUUwMEE4MkU2OSAvKiBjZiAq
LywKIAkJCQkxQzE4MUM4ODFEMzA3QUI4MDBGNUZBMTYgLyogaWN1ICovLAogCQkJCUE1QkExNUYx
MTgyNDMzOUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMjYzLDYgKzEzMDYsMTUgQEAKIAkJCXBh
dGggPSBpY3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkNBMzdERjFE
NTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gIkRlcml2
ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvV1RGOworCQkJc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsKIAkJQ0U0NjUxNkMxOURCMUZCNDAwM0VDQTA1
IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAg
LTE2MTQsNiArMTY2Niw3IEBACiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRlcGVuZGVu
Y2llcyA9ICgKKwkJCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5k
ZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5k
ZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gV1RGOwpAQCAtMTY0NCwxMiArMTY5NywyNyBAQAog
CQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovLAog
CQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovLAorCQkJ
CTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMTQ0
N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFsbG9jICovLAogCQkJKTsKIAkJfTsKIC8qIEVu
ZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRCdWlsZFBo
YXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVyYXRlIERl
cml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsK
KwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJ
CQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgRGVyaXZlZCBTb3Vy
Y2VzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2Ny
aXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dU
RlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuXG4v
YmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV1RGXG5leHBvcnQgV1RGPVwiV1RGXCJcblxuaWYg
WyAhIC1kIEJyZWFraW5nUnVsZXMgXTsgdGhlblxuICAgIG1rZGlyIEJyZWFraW5nUnVsZXNcbmZp
XG5cbmlmIFsgISAtZCBCcmVha2luZ1J1bGVzV29ya2luZ0RpciBdOyB0aGVuXG4gICAgbWtkaXIg
QnJlYWtpbmdSdWxlc1dvcmtpbmdEaXJcbmZpXG5cbmlmIFsgXCIkSEFWRV9JTlRFUk5BTF9TREtc
IiAhPSBcIllFU1wiIF0gfHwgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEw
LjExXCIgXSB8fCBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTJcIiBd
IHx8IFsgXCIkU0RLX1ZFUlNJT05fTUFKT1JcIiA9PSBcIjkwMDAwXCIgXSB8fCBbIFwiJFNES19W
RVJTSU9OX01BSk9SXCIgPT0gXCIxMDAwMDBcIiBdOyB0aGVuXG4gICAgZXhwb3J0IEhBVkVfSUNV
R0VOQlJLPTBcbmVsc2VcbiAgICBleHBvcnQgSEFWRV9JQ1VHRU5CUks9MVxuZmlcblxuaWYgWyBc
IiR7QUNUSU9OfVwiID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxcIiAt
byBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsaGRyc1wiIC1vIFwiJHtBQ1RJT059XCIgPSBcImlu
c3RhbGxhcGlcIiBdOyB0aGVuXG5tYWtlIC0tbm8tYnVpbHRpbi1ydWxlcyAtZiBcIldURi93dGYv
RGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNw
dWAgU0RLUk9PVD1cIiR7U0RLUk9PVH1cIlxuaWYgWyAhIC1mIFwiQnJlYWtpbmdSdWxlc1dvcmtp
bmdEaXIvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcFwiIF07IHRoZW5cbiAgICB0b3Vj
aCBcIkJyZWFraW5nUnVsZXNXb3JraW5nRGlyL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5j
cHBcIjtcbmZpXG5maSI7CisJCX07CiAJCTY1QUZBMTcwMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5
IFdURiBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE3MDIsNiArMTc3MCw3IEBACiAJ
CQkJRTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDc0MzkxNTFBODI1QjAwNDEyM0ZGIC8qIENTdHJpbmcu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczOUMxNTFBODI1QjAwNDEyM0ZGIC8qIEN1cnJl
bnRUaW1lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMyQ0EzN0U5MUQ1NUM5NzEwMDQ4NkI5OCAv
KiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThB
NDczOUUxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGFMb2cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QThBNDczQTAxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGVNYXRoLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QTQ3M0EyMTUxQTgyNUIwMDQxMjNGRiAvKiBEZWNpbWFsTnVtYmVyLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTc5Myw2ICsxODYyLDExIEBACiAJCQl0YXJnZXQgPSA1RDI0N0I2MTE0Njg5
Qjg2MDBFNzhCNzYgLyogV1RGICovOwogCQkJdGFyZ2V0UHJveHkgPSAxNDQ3QUVDMzE4RkNFNTcw
MDBCM0Q3RkYgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9OworCQkxQ0QxODc4ODFE
NTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBC
WFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQgPSAxQ0QxODc4MTFENTU2OTVDMDBDQzdERUMg
LyogRGVyaXZlZCBTb3VyY2VzICovOworCQkJdGFyZ2V0UHJveHkgPSAxQ0QxODc4NzFENTU2OTg4
MDBDQzdERUMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9OwogCQk2NUFGQTI4RTE2
MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBC
WFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSA2NUFGQTE2RjE2MzBCOTc3MDAzRDcyM0Mg
LyogQ29weSBXVEYgSGVhZGVycyAqLzsKQEAgLTE4MjIsNiArMTg5NiwzMCBAQAogCQkJfTsKIAkJ
CW5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0QxODc4NDFENTU2OTVDMDBDQzdERUMgLyog
RGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25m
aWd1cmF0aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVs
ZWFzZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1F
ID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTFD
RDE4Nzg1MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWls
ZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3Qjcw
MTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNl
dHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9Owor
CQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTFDRDE4Nzg2MUQ1NTY5NUMwMENDN0RFQyAvKiBQ
cm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNl
Q29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1
Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1Rf
TkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJ
CX07CiAJCTVEMjQ3QjY0MTQ2ODlCODYwMEU3OEI3NiAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9
IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1
RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOwpAQCAt
MTkwNSw2ICsyMDAzLDE2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7
CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkxQ0Qx
ODc4MzFENTU2OTVDMDBDQzdERUMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhB
Z2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZp
Z3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkxQ0QxODc4NDFE
NTU2OTVDMDBDQzdERUMgLyogRGVidWcgKi8sCisJCQkJMUNEMTg3ODUxRDU1Njk1QzAwQ0M3REVD
IC8qIFJlbGVhc2UgKi8sCisJCQkJMUNEMTg3ODYxRDU1Njk1QzAwQ0M3REVDIC8qIFByb2R1Y3Rp
b24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJ
ZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQyNDdCNUMx
NDY4OUI4NjAwRTc4Qjc2IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVj
dCAiV1RGIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENv
bmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9pY3UvdW5pY29kZS91YnJr
LmggYi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaAppbmRleCBlOWMwZWY2MjdiNjcyNzlm
ODZlNDYwNDRiZjBmMjU3MTAyZTBjNmNkLi4xOTc1YjlkYmVkNDQzYTkyNzQzNmYwYTI3OTI5YmE1
OGFmODcxODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaAorKysg
Yi9Tb3VyY2UvV1RGL2ljdS91bmljb2RlL3VicmsuaApAQCAtMjQxLDYgKzI0MSwzMSBAQCB1YnJr
X29wZW5SdWxlcyhjb25zdCBVQ2hhciAgICAgKnJ1bGVzLAogICAgICAgICAgICAgICAgVUVycm9y
Q29kZSAgICAgICpzdGF0dXMpOwogCiAvKioKKyAqIE9wZW4gYSBuZXcgVUJyZWFrSXRlcmF0b3Ig
Zm9yIGxvY2F0aW5nIHRleHQgYm91bmRhcmllcyB1c2luZyBwcmVjb21waWxlZCBiaW5hcnkgcnVs
ZXMuCisgKiBPcGVuaW5nIGEgVUJyZWFrSXRlcmF0b3IgdGhpcyB3YXkgaXMgc3Vic3RhbnRpYWxs
eSBmYXN0ZXIgdGhhbiB1c2luZyB1YnJrX29wZW5SdWxlcy4KKyAqIEJpbmFyeSBydWxlcyBtYXkg
YmUgb2J0YWluZWQgdXNpbmcgdWJya19nZXRCaW5hcnlSdWxlcy4gVGhlIGNvbXBpbGVkIHJ1bGVz
IGFyZSBub3QKKyAqIGNvbXBhdGlibGUgYWNyb3NzIGRpZmZlcmVudCBtYWpvciB2ZXJzaW9ucyBv
ZiBJQ1UsIG5vciBhY3Jvc3MgcGxhdGZvcm1zIG9mIGRpZmZlcmVudAorICogZW5kaWFubmVzcyBv
ciBkaWZmZXJlbnQgYmFzZSBjaGFyYWN0ZXIgc2V0IGZhbWlseSAoQVNDSUkgdnMgRUJDRElDKS4K
KyAqIEBwYXJhbSBiaW5hcnlSdWxlcyBBIHNldCBvZiBjb21waWxlZCBiaW5hcnkgcnVsZXMgc3Bl
Y2lmeWluZyB0aGUgdGV4dCBicmVha2luZworICogICAgICAgICAgICAgICAgICAgIGNvbnZlbnRp
b25zLiBPd25lcnNoaXAgb2YgdGhlIHN0b3JhZ2UgY29udGFpbmluZyB0aGUgY29tcGlsZWQKKyAq
ICAgICAgICAgICAgICAgICAgICBydWxlcyByZW1haW5zIHdpdGggdGhlIGNhbGxlciBvZiB0aGlz
IGZ1bmN0aW9uLiBUaGUgY29tcGlsZWQKKyAqICAgICAgICAgICAgICAgICAgICBydWxlcyBtdXN0
IG5vdCBiZSBtb2RpZmllZCBvciBkZWxldGVkIGR1cmluZyB0aGUgbGlmZSBvZiB0aGUKKyAqICAg
ICAgICAgICAgICAgICAgICBicmVhayBpdGVyYXRvci4KKyAqIEBwYXJhbSBydWxlc0xlbmd0aCBU
aGUgbGVuZ3RoIG9mIGJpbmFyeVJ1bGVzIGluIGJ5dGVzOyBtdXN0IGJlID49IDAuCisgKiBAcGFy
YW0gdGV4dCAgICAgICAgVGhlIHRleHQgdG8gYmUgaXRlcmF0ZWQgb3Zlci4gIE1heSBiZSBudWxs
LCBpbiB3aGljaCBjYXNlCisgKiAgICAgICAgICAgICAgICAgICAgdWJya19zZXRUZXh0KCkgaXMg
dXNlZCB0byBzcGVjaWZ5IHRoZSB0ZXh0IHRvIGJlIGl0ZXJhdGVkLgorICogQHBhcmFtIHRleHRM
ZW5ndGggIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0ZXh0LCBvciAtMSBpZiBudWxsLXRl
cm1pbmF0ZWQuCisgKiBAcGFyYW0gc3RhdHVzICAgICAgUG9pbnRlciB0byBVRXJyb3JDb2RlIHRv
IHJlY2VpdmUgYW55IGVycm9ycy4KKyAqIEByZXR1cm4gICAgICAgICAgICBVQnJlYWtJdGVyYXRv
ciBmb3IgdGhlIHNwZWNpZmllZCBydWxlcy4KKyAqIEBzZWUgdWJya19nZXRCaW5hcnlSdWxlcwor
ICogQGRyYWZ0IElDVSA1OQorICovCitVX0RSQUZUIFVCcmVha0l0ZXJhdG9yKiBVX0VYUE9SVDIK
K3Vicmtfb3BlbkJpbmFyeVJ1bGVzKGNvbnN0IHVpbnQ4X3QgKmJpbmFyeVJ1bGVzLCBpbnQzMl90
IHJ1bGVzTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIgKiAgdGV4dCwg
aW50MzJfdCB0ZXh0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgVUVycm9yQ29kZSAqICAg
c3RhdHVzKTsKKworLyoqCiAgKiBUaHJlYWQgc2FmZSBjbG9uaW5nIG9wZXJhdGlvbgogICogQHBh
cmFtIGJpIGl0ZXJhdG9yIHRvIGJlIGNsb25lZAogICogQHBhcmFtIHN0YWNrQnVmZmVyIDxlbT5E
ZXByZWNhdGVkIGZ1bmN0aW9uYWxpdHkgYXMgb2YgSUNVIDUyLCB1c2UgTlVMTC48L2VtPjxicj4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggODFhZjkxMjc2MTA2YjgxMjg5MTdkYjhjNzljZjI1NGIy
ZTRkOGNmMC4uYTM3OGVjZGQ1NzE1NmQ3MTQ3ZWJiZmQyYjk3OGZmYjQxMjViODUyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQKQEAgLTMwMSw2ICszMDEsMTUgQEAgaWYgKE5PVCBVU0VfU1lTVEVNX01B
TExPQykKICAgICBsaXN0KEFQUEVORCBXVEZfTElCUkFSSUVTIGJtYWxsb2MpCiBlbmRpZiAoKQog
CithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dURl9E
SVJ9L0JyZWFraW5nUnVsZXNXb3JraW5nRGlyL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5j
cHAKKyAgICBNQUlOX0RFUEVOREVOQ1kgJHtXVEZfRElSfS9TY3JpcHRzL0dlbmVyYXRlQnJlYWtp
bmdSdWxlU3RyaW5ncy5weQorICAgIERFUEVORFMgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9
L3RleHQvQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0CisgICAg
Q09NTUFORCAke1BZVEhPTl9FWEVDVVRBQkxFfSAke1dURl9ESVJ9L1NjcmlwdHMvR2VuZXJhdGVC
cmVha2luZ1J1bGVTdHJpbmdzLnB5IGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyAke0NNQUtF
X0NVUlJFTlRfU09VUkNFX0RJUn0vdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRl
cmF0b3JSdWxlcy50eHQgPiAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVz
V29ya2luZ0Rpci9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgVkVSQkFUSU0p
CitsaXN0KEFQUEVORCBXVEZfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVh
a2luZ1J1bGVzV29ya2luZ0Rpci9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwKQorQURE
X1NPVVJDRV9ERVBFTkRFTkNJRVMoJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJl
YWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICR7REVSSVZFRF9TT1VS
Q0VTX1dURl9ESVJ9L0JyZWFraW5nUnVsZXNXb3JraW5nRGlyL0N1cnNvck1vdmVtZW50SXRlcmF0
b3JSdWxlcy5jcHApCisKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCiAgICAgdW5pY29kZS9pY3Uv
Q29sbGF0b3JJQ1UuY3BwCiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EZXJpdmVkU291
cmNlcy5tYWtlIGIvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40NzY2NDY3YTNmMmU4ZTNlNDViYzJkNjg0MjE4ZDI1MDE4Njk5ZjJiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dURi93dGYvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMCwwICsxLDUwIEBA
CisjIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitCUkVBS0lOR19SVUxFU19G
SUxFUyA9IFwKKyAgICBCcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5i
cmsKKworQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlM9JChCUkVBS0lOR19SVUxFU19GSUxFUzpC
cmVha2luZ1J1bGVzLyUuYnJrPUJyZWFraW5nUnVsZXNXb3JraW5nRGlyLyUuY3BwKQorCitpZmVx
ICgkKHNoZWxsICQoQ0MpIC1zdGQ9Z251KysxMSAteCBjKysgLUUgLVAgLWRNICQoU0RLX0ZMQUdT
KSAkKEZSQU1FV09SS19GTEFHUykgJChIRUFERVJfRkxBR1MpIC1JICQoV1RGKSAtaW5jbHVkZSAi
JChXVEYpL3d0Zi9QbGF0Zm9ybS5oIiAvZGV2L251bGwgfCBncmVwICcgV1RGX1BMQVRGT1JNX0lP
UyAnIHwgY3V0IC1kJyAnIC1mMyksIDEpCisgICAgV1RGX1BMQVRGT1JNX0lPUyA9IDEKK2Vsc2UK
KyAgICBXVEZfUExBVEZPUk1fSU9TID0gMAorZW5kaWYKKworaWZlcSAoJChXVEZfUExBVEZPUk1f
SU9TKSwgMSkKKwlERVBFTkRFTkNJRVMgPQorZWxzZQorCURFUEVOREVOQ0lFUyA9ICQoQlJFQUtJ
TkdfUlVMRVNfREVGSU5JVElPTlMpCisJaWZlcSAoJChIQVZFX0lDVUdFTkJSSyksIDEpCisJCURF
UEVOREVOQ0lFUyArPSAkKEJSRUFLSU5HX1JVTEVTX0ZJTEVTKQorCWVuZGlmCitlbmRpZgorCith
bGwgOiAkKERFUEVOREVOQ0lFUykKKworQnJlYWtpbmdSdWxlcy8lLmJyayA6ICQoV1RGKS93dGYv
dGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKwlpY3Vn
ZW5icmsgLWMgLXIgJDwgLW8gJEAKKworQnJlYWtpbmdSdWxlc1dvcmtpbmdEaXIvQ3Vyc29yTW92
ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQKKwlweXRob24gJChXVEYpL1NjcmlwdHMvR2Vu
ZXJhdGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5IGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyAk
PCA+ICRACmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMzZl
YTgxMjdmZjNjY2VhMTc1OTFmZmNiNTExMmU5ZTA1ZDFjYjQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLnR4dApAQCAtMCwwICsxLDEyOSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBUaGlzIHJ1bGUgc2V0
IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKKyMg
PGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNl
LTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCisjIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9t
IHRoZSBvcmlnaW5hbCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6CisjICogUmVwbGFjZWQgJ1tccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxf
Q2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxp
ZXI7CisjICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3Zpbmcg
YWZ0ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOworIyAqIEFkZGVkIHJ1bGVzIHRo
YXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciB2aXJhbWEgc2lnbnMgb2YgSW5k
aWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwgYW5kOworIyAqIEFkZGVkIHJ1
bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFs
Zi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCisjICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lv
bmFsIGluZGljYXRvciBzeW1ib2xzLgorCiskQ1IgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVy
X0JyZWFrID0gQ1J9XTsKKyRMRiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBM
Rn1dOworJENvbnRyb2wgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsK
KyRWb2ljZU1hcmtzID0gW1x1RkY5RVx1RkY5Rl07ICMgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRh
a2FuYSB2b2ljZWQgbWFya3MKKyRFeHRlbmQgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1x1MEUzMCBcdTBFMzIgXHUwRTQ1IFx1MEVCMCBcdTBF
QjJdXTsKKyRTcGFjaW5nTWFyayA9IFtbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFy
a31dIC0gJEV4dGVuZF07CiskTCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
TH1dOworJFYgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFZ9XTsKKyRUICAg
ICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07CiskTFYgICAgICA9IFtccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsKKyRMVlQgICAgID0gW1xwe0dyYXBoZW1lX0Ns
dXN0ZXJfQnJlYWsgPSBMVlR9XTsKKyRIaW4wICAgID0gW1x1MDkwNS1cdTA5MzldOyAjIERldmFu
YWdhcmkgTGV0dGVyIEEsLi4uLEhhCiskSGluViAgICA9IFx1MDk0RDsgIyBEZXZhbmFnYXJpIFNp
Z24gVmlyYW1hCiskSGluMSAgICA9IFtcdTA5MTUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRl
ciBLYSwuLi4sSGEKKyRCZW4wICAgID0gW1x1MDk4NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVy
IEEsLi4uLEhhCiskQmVuViAgICA9IFx1MDlDRDsgIyBCZW5nYWxpIFNpZ24gVmlyYW1hCiskQmVu
MSAgICA9IFtcdTA5OTUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEKKyRQYW4w
ICAgID0gW1x1MEEwNS1cdTBBMzldOyAjIEd1cm11a2hpIExldHRlciBBLC4uLixIYQorJFBhblYg
ICAgPSBcdTBBNEQ7ICMgR3VybXVraGkgU2lnbiBWaXJhbWEKKyRQYW4xICAgID0gW1x1MEExNS1c
dTBBMzldOyAjIEd1cm11a2hpIExldHRlciBLYSwuLi4sSGEKKyRHdWowICAgID0gW1x1MEE4NS1c
dTBBQjldOyAjIEd1amFyYXRpIExldHRlciBBLC4uLixIYQorJEd1alYgICAgPSBcdTBBQ0Q7ICMg
R3VqYXJhdGkgU2lnbiBWaXJhbWEKKyRHdWoxICAgID0gW1x1MEE5NS1cdTBBQjldOyAjIEd1amFy
YXRpIExldHRlciBLYSwuLi4sSGEKKyRPcmkwICAgID0gW1x1MEIwNS1cdTBCMzldOyAjIE9yaXlh
IExldHRlciBBLC4uLixIYQorJE9yaVYgICAgPSBcdTBCNEQ7ICMgT3JpeWEgU2lnbiBWaXJhbWEK
KyRPcmkxICAgID0gW1x1MEIxNS1cdTBCMzldOyAjIE9yaXlhIExldHRlciBLYSwuLi4sSGEKKyRU
ZWwwICAgID0gW1x1MEMwNS1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKKyRUZWxW
ICAgID0gXHUwQzREOyAjIFRlbHVndSBTaWduIFZpcmFtYQorJFRlbDEgICAgPSBbXHUwQzE0LVx1
MEMzOV07ICMgVGVsdWd1IExldHRlciBLYSwuLi4sSGEKKyRLYW4wICAgID0gW1x1MEM4NS1cdTBD
QjldOyAjIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCiskS2FuViAgICA9IFx1MENDRDsgIyBLYW5u
YWRhIFNpZ24gVmlyYW1hCiskS2FuMSAgICA9IFtcdTBDOTUtXHUwQ0I5XTsgIyBLYW5uYWRhIExl
dHRlciBBLC4uLixIYQorJE1hbDAgICAgPSBbXHUwRDA1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExl
dHRlciBBLC4uLixIYSAKKyRNYWxWICAgID0gXHUwRDREOyAjIE1hbGF5YWxhbSBTaWduIFZpcmFt
YQorJE1hbDEgICAgPSBbXHUwRDE1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExldHRlciBBLC4uLixI
YQorJFJJICAgICAgPSBbXFUwMDAxRjFFNi1cVTAwMDFGMUZGXTsgIyBFbW9qaSByZWdpb25hbCBp
bmRpY2F0b3JzCiskWldKICAgICA9IFx1MjAwRDsgIyBaZXJvIHdpZHRoIGpvaW5lcgorJEVtb2pp
VmFyID0gW1x1RkUwRl07ICMgRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCiskRW1vamlG
b3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBcVTAwMDFGMzA4IFxVMDAwMUYz
QzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAwMUYzQ0MgXFUwMDAxRjNGMyBcVTAwMDFGNDQx
IFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NkYgXFUwMDAxRjQ3MSBc
VTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4MS1cVTAwMDFGNDgyIFxVMDAwMUY0ODYtXFUw
MDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUgXFUwMDAxRjVFOCBcVTAwMDFGNjQ1LVxVMDAw
MUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxVMDAwMUY2NEUgXFUwMDAxRjZBMyBcVTAwMDFG
NkI0LVxVMDAwMUY2QjYgXHUyNjk1LVx1MjY5NiBcdTI3MDggXFUwMDAxRjMzRSBcVTAwMDFGMzcz
IFxVMDAwMUYzOTMgXFUwMDAxRjNBNCBcVTAwMDFGM0E4IFxVMDAwMUYzRUIgXFUwMDAxRjNFRCBc
VTAwMDFGNEJCLVxVMDAwMUY0QkMgXFUwMDAxRjUyNyBcVTAwMDFGNTJDIFxVMDAwMUY2ODAgXFUw
MDAxRjY5MiBcVTAwMDFGOTI2IFxVMDAwMUY5MzctXFUwMDAxRjkzOSBcVTAwMDFGOTNDLVxVMDAw
MUY5M0VdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworJEVtb2pp
Rm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFG
M0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0
MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDc4IFxVMDAwMUY0N0Mg
XFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxV
MDAwMUY1NzUgXFUwMDAxRjU5MCBcVTAwMDFGNTk1IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAw
MDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAx
RjZCNiBcVTAwMDFGNkMwIFxVMDAwMUY5MTggXFUwMDAxRjNDMiBcVTAwMDFGM0M3IFxVMDAwMUYz
Q0MgXFUwMDAxRjU3NCBcVTAwMDFGNTdBIFxVMDAwMUY2Q0MgXFUwMDAxRjkxOS1cVTAwMDFGOTFF
IFxVMDAwMUY5MjYgXFUwMDAxRjkzMCBcVTAwMDFGOTMzLVxVMDAwMUY5MzkgXFUwMDAxRjkzQy1c
VTAwMDFGOTNFXSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworJEVt
b2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYzRkZdOyAjIEZpdHpwYXRyaWNrIG1vZGlmaWVy
cworCishIWNoYWluOworISFSSU5vQ2hhaW47CishIWZvcndhcmQ7CisKKyRDUiAkTEY7CiskTCAo
JEwgfCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8ICRWKSAoJFYgfCAkVCk7CisoJExWVCB8ICRU
KSAkVDsKKworJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsKKyRSSSAkUkkgJEV4dGVuZCo7CitbXiRD
b250cm9sICRDUiAkTEZdICRFeHRlbmQ7CitbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFy
azsKKworJEhpbjAgJEhpblYgJEhpbjE7ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCisk
QmVuMCAkQmVuViAkQmVuMTsgIyBCZW5nYWxpIFZpcmFtYSAoZm9yd2FyZCkKKyRQYW4wICRQYW5W
ICRQYW4xOyAjIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkKKyRHdWowICRHdWpWICRHdWoxOyAj
IEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKKyRPcmkwICRPcmlWICRPcmkxOyAjIE9yaXlhIFZp
cmFtYSAoZm9yd2FyZCkKKyRUZWwwICRUZWxWICRUZWwxOyAjIFRlbHVndSBWaXJhbWEgKGZvcndh
cmQpCiskS2FuMCAkS2FuViAkS2FuMTsgIyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKKyRNYWww
ICRNYWxWICRNYWwxOyAjIE1hbGF5YWxhbSBWaXJhbWEgKGZvcndhcmQpCiskWldKICRFbW9qaUZv
clNlcXM7ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlGb3JNb2Rz
ICRFbW9qaVZhcj8gJEVtb2ppTW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1v
amkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9k
aWZpZXIKKworISFyZXZlcnNlOworJExGICRDUjsKKygkTCB8ICRWIHwgJExWIHwgJExWVCkgJEw7
CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRUICgkTFZUIHwgJFQpOworCiskRXh0ZW5kKiAkUkkg
JFJJIC8gJEV4dGVuZCogJFJJICRSSTsKKyRFeHRlbmQqICRSSSAkUkk7CiskRXh0ZW5kICAgICAg
W14kQ29udHJvbCAkQ1IgJExGXTsKKyRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOwor
CiskSGluMSAkSGluViAkSGluMDsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCiskQmVu
MSAkQmVuViAkQmVuMDsgIyBCZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQpCiskUGFuMSAkUGFuViAk
UGFuMDsgIyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQorJEd1ajEgJEd1alYgJEd1ajA7ICMg
R3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRPcmkxICRPcmlWICRPcmkwOyAjIEd1amFyYXRp
IFZpcmFtYSAoYmFja3dhcmQpCiskVGVsMSAkVGVsViAkVGVsMDsgIyBUZWx1Z3UgVmlyYW1hIChi
YWNrd2FyZCkKKyRLYW4xICRLYW5WICRLYW4wOyAjIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkK
KyRNYWwxICRNYWxWICRNYWwwOyAjIE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3YXJkKQorJEVtb2pp
Rm9yU2VxcyAkWldKOyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2pp
TW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2
YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRy
aWNrIG1vZGlmaWVyCisKKyEhc2FmZV9yZXZlcnNlOworJFJJICRSSSs7CitbJEVtb2ppVmFyICRF
bW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOworISFzYWZlX2ZvcndhcmQ7CiskUkkgJFJJKzsKKyRF
bW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IDFlZGMzMmE1ZDViYjA2ZGUwNzIxY2MwYjQxOGMy
N2MwZGViOGQ1MTEuLjI0OTBlMzQ3ODlmMjJmMTNlMDZlMmI1MTU0MDFmOGNmYzFiYTAwN2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCkBAIC0zMSw5ICszMSw2
IEBACiAjaW5jbHVkZSA8dW5pY29kZS91YnJrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogCi0vLyBGSVhNRTogVGhpcyBuZWVkcyBhIGJldHRlciBuYW1lCi0jZGVmaW5l
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkpCi0KIG5hbWVz
cGFjZSBXVEYgewogCiAvLyBJdGVyYXRvciBpbml0aWFsaXphdGlvbgpAQCAtNjEsNiArNTgsMTIg
QEAgc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoY29u
c3QgY2hhciogYnJlYWtSdWxlcykKIAogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oTUFDKSAmJiAh
UExBVEZPUk0oSU9TKQorVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUN1cnNvclByZWNvbXBpbGVkSXRl
cmF0b3IoKQoreworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCiAKIC8vIEl0ZXJhdG9y
IHRleHQgc2V0dGluZwogCkBAIC0xNjQsMTQzICsxNjcsMjcgQEAgVUJyZWFrSXRlcmF0b3IqIHNl
bnRlbmNlQnJlYWtJdGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZykKICAgICByZXR1cm4gc2V0VGV4
dEZvckl0ZXJhdG9yKCpzdGF0aWNTZW50ZW5jZUJyZWFrSXRlcmF0b3IsIHN0cmluZyk7CiB9CiAK
KyNpZiAhUExBVEZPUk0oSU9TKQorc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBjcmVhdGVDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKCkKK3sKKyAgICBpZiAoYXV0byogaXRlcmF0b3Ig
PSBjcmVhdGVDdXJzb3JQcmVjb21waWxlZEl0ZXJhdG9yKCkpCisgICAgICAgIHJldHVybiBpdGVy
YXRvcjsKKyAgICByZXR1cm4gaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGN1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcyk7Cit9CisjZW5kaWYKKwogVUJyZWFrSXRlcmF0b3IqIGN1cnNvck1v
dmVtZW50SXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykK
LSAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRv
ciBydWxlcyBvZiBJQ1UgNTcKLSAgICAvLyA8aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcv
cmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KLSAg
ICAvLyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlz
dGVkIGJlbG93OgotICAgIC8vICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1h
cmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7Ci0gICAgLy8gKiBSZW1vdmVk
IHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNo
YXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQg
YSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdl
cyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKLSAgICAvLyAqIEFkZGVkIHJ1bGVzIHRo
YXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0
aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0gICAgLy8gKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9u
YWwgaW5kaWNhdG9yIHN5bWJvbHMuCi0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGtSdWxlcyA9Ci0g
ICAgICAgICIkQ1IgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07Igot
ICAgICAgICAiJExGICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1dOyIK
LSAgICAgICAgIiRDb250cm9sID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJv
bH1dOyIKLSAgICAgICAgIiRWb2ljZU1hcmtzID0gW1xcdUZGOUVcXHVGRjlGXTsiIC8vIEphcGFu
ZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCi0gICAgICAgICIkRXh0ZW5kICA9
IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXFx1
MEUzMCBcXHUwRTMyIFxcdTBFNDUgXFx1MEVCMCBcXHUwRUIyXV07IgotICAgICAgICAiJFNwYWNp
bmdNYXJrID0gW1tcXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31dIC0gJEV4dGVu
ZF07IgotICAgICAgICAiJEwgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBM
fV07IgotICAgICAgICAiJFYgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBW
fV07IgotICAgICAgICAiJFQgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBU
fV07IgotICAgICAgICAiJExWICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBM
Vn1dOyIKLSAgICAgICAgIiRMVlQgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
TFZUfV07IgotICAgICAgICAiJEhpbjAgICAgPSBbXFx1MDkwNS1cXHUwOTM5XTsiIC8vIERldmFu
YWdhcmkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkSGluViAgICA9IFxcdTA5NEQ7IiAvLyBE
ZXZhbmFnYXJpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkSGluMSAgICA9IFtcXHUwOTE1LVxcdTA5
MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkQmVuMCAgICA9
IFtcXHUwOTg1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAg
IiRCZW5WICAgID0gXFx1MDlDRDsiIC8vIEJlbmdhbGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRC
ZW4xICAgID0gW1xcdTA5OTUtXFx1MDlCOV07IiAvLyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEK
LSAgICAgICAgIiRQYW4wICAgID0gW1xcdTBBMDUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0
ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRQYW5WICAgID0gXFx1MEE0RDsiIC8vIEd1cm11a2hpIFNp
Z24gVmlyYW1hCi0gICAgICAgICIkUGFuMSAgICA9IFtcXHUwQTE1LVxcdTBBMzldOyIgLy8gR3Vy
bXVraGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEd1ajAgICAgPSBbXFx1MEE4NS1cXHUw
QUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEd1alYgICAgPSBc
XHUwQUNEOyIgLy8gR3VqYXJhdGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRHdWoxICAgID0gW1xc
dTBBOTUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIk
T3JpMCAgICA9IFtcXHUwQjA1LVxcdTBCMzldOyIgLy8gT3JpeWEgTGV0dGVyIEEsLi4uLEhhCi0g
ICAgICAgICIkT3JpViAgICA9IFxcdTBCNEQ7IiAvLyBPcml5YSBTaWduIFZpcmFtYQotICAgICAg
ICAiJE9yaTEgICAgPSBbXFx1MEIxNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBLYSwuLi4s
SGEKLSAgICAgICAgIiRUZWwwICAgID0gW1xcdTBDMDUtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0
dGVyIEEsLi4uLEhhCi0gICAgICAgICIkVGVsViAgICA9IFxcdTBDNEQ7IiAvLyBUZWx1Z3UgU2ln
biBWaXJhbWEKLSAgICAgICAgIiRUZWwxICAgID0gW1xcdTBDMTQtXFx1MEMzOV07IiAvLyBUZWx1
Z3UgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEthbjAgICAgPSBbXFx1MEM4NS1cXHUwQ0I5
XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkS2FuViAgICA9IFxcdTBD
Q0Q7IiAvLyBLYW5uYWRhIFNpZ24gVmlyYW1hCi0gICAgICAgICIkS2FuMSAgICA9IFtcXHUwQzk1
LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWwwICAg
ID0gW1xcdTBEMDUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAg
ICAgICIkTWFsViAgICA9IFxcdTBENEQ7IiAvLyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKLSAgICAg
ICAgIiRNYWwxICAgID0gW1xcdTBEMTUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkUkkgICAgICA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IiAv
LyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCi0gICAgICAgICIkWldKICAgICA9IFxcdTIwMEQ7
IiAvLyBaZXJvIHdpZHRoIGpvaW5lcgotICAgICAgICAiJEVtb2ppVmFyID0gW1xcdUZFMEZdOyIg
Ly8gRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCi0jaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUyNkY5
IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0Et
XFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAwMUY0
NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxVMDAw
MUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcgXFxV
MDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcg
XFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAwMUY2
QjQtXFxVMDAwMUY2QjYgXFx1MjY5NS1cXHUyNjk2IFxcdTI3MDggXFxVMDAwMUYzM0UgXFxVMDAw
MUYzNzMgXFxVMDAwMUYzOTMgXFxVMDAwMUYzQTQgXFxVMDAwMUYzQTggXFxVMDAwMUYzRUIgXFxV
MDAwMUYzRUQgXFxVMDAwMUY0QkItXFxVMDAwMUY0QkMgXFxVMDAwMUY1MjcgXFxVMDAwMUY1MkMg
XFxVMDAwMUY2ODAgXFxVMDAwMUY2OTIgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzctXFxVMDAwMUY5
MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBp
biBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZG
OSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxV
MDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYt
XFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0
ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAw
MUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxV
MDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQt
XFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MTggXFxVMDAwMUYzQzIgXFxVMDAwMUYz
QzcgXFxVMDAwMUYzQ0MgXFxVMDAwMUY1NzQgXFxVMDAwMUY1N0EgXFxVMDAwMUY2Q0MgXFxVMDAw
MUY5MTktXFxVMDAwMUY5MUUgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzAgXFxVMDAwMUY5MzMtXFxV
MDAwMUY5MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBG
aXR6cGF0cmljayBtb2RpZmllcnMKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRl
cmF0b3IqPiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gY3JlYXRlQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvcldpdGhGYWxsYmFjaygpOwogI2Vsc2UKLSAgICAgICAgIiRFbW9qaUZvclNlcXMg
PSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IiAvLyBFbW9q
aSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1v
ZHMgPSBbXFx1MjYxRCBcXHUyNzBBLVxcdTI3MEMgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxV
MDAwMUYzQzQgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0EgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMg
XFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0
NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAw
MUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxV
MDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQt
XFxVMDAwMUY2QjYgXFxVMDAwMUY2QzBdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmlj
ayBtb2RpZmllcnMKLSNlbmRpZgotICAgICAgICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1c
XFUwMDAxRjNGRl07IiAvLyBGaXR6cGF0cmljayBtb2RpZmllcnMKLSAgICAgICAgIiEhY2hhaW47
IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiISFSSU5vQ2hhaW47Igot
I2VuZGlmCi0gICAgICAgICIhIWZvcndhcmQ7IgotICAgICAgICAiJENSICRMRjsiCi0gICAgICAg
ICIkTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOyIKLSAgICAgICAgIigkTFYgfCAkVikgKCRWIHwg
JFQpOyIKLSAgICAgICAgIigkTFZUIHwgJFQpICRUOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCogLyAkUkk7IgotICAgICAgICAiJFJJICRS
SSAkRXh0ZW5kKjsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAg
ICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotI2Vsc2UKLSAgICAgICAg
IlteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAk
TEZdICRTcGFjaW5nTWFyazsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJOyIKLSAgICAgICAgIiRS
SSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIkSGluMCAkSGluViAkSGluMTsiIC8vIERldmFuYWdh
cmkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEJlbjAgJEJlblYgJEJlbjE7IiAvLyBCZW5n
YWxpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRQYW4wICRQYW5WICRQYW4xOyIgLy8gR3Vy
bXVraGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEd1ajAgJEd1alYgJEd1ajE7IiAvLyBH
dWphcmF0aSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkT3JpMCAkT3JpViAkT3JpMTsiIC8v
IE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRUZWwwICRUZWxWICRUZWwxOyIgLy8g
VGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRLYW4wICRLYW5WICRLYW4xOyIgLy8g
S2FubmFkYSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkTWFsMCAkTWFsViAkTWFsMTsiIC8v
IE1hbGF5YWxhbSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkWldKICRFbW9qaUZvclNlcXM7
IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlG
b3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4gcmVs
ZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBh
dHJpY2sgbW9kaWZpZXIKLSAgICAgICAgIiEhcmV2ZXJzZTsiCi0gICAgICAgICIkTEYgJENSOyIK
LSAgICAgICAgIigkTCB8ICRWIHwgJExWIHwgJExWVCkgJEw7IgotICAgICAgICAiKCRWIHwgJFQp
ICgkTFYgfCAkVik7IgotICAgICAgICAiJFQgKCRMVlQgfCAkVCk7IgotI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAotICAgICAgICAiJEV4dGVuZCogJFJJICRSSSAvICRFeHRlbmQqICRSSSAk
Ukk7IgotICAgICAgICAiJEV4dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kICAgICAg
W14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAk
Q1IgJExGXTsiCi0jZWxzZQotICAgICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRM
Rl07IgotICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAg
ICAiJFJJICRSSSAvICRSSSAkUkk7IgotICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAg
ICAgIiRIaW4xICRIaW5WICRIaW4wOyIgLy8gRGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQot
ICAgICAgICAiJEJlbjEgJEJlblYgJEJlbjA7IiAvLyBCZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQp
Ci0gICAgICAgICIkUGFuMSAkUGFuViAkUGFuMDsiIC8vIEd1cm11a2hpIFZpcmFtYSAoYmFja3dh
cmQpCi0gICAgICAgICIkR3VqMSAkR3VqViAkR3VqMDsiIC8vIEd1amFyYXRpIFZpcmFtYSAoYmFj
a3dhcmQpCi0gICAgICAgICIkT3JpMSAkT3JpViAkT3JpMDsiIC8vIEd1amFyYXRpIFZpcmFtYSAo
YmFja3dhcmQpCi0gICAgICAgICIkVGVsMSAkVGVsViAkVGVsMDsiIC8vIFRlbHVndSBWaXJhbWEg
KGJhY2t3YXJkKQotICAgICAgICAiJEthbjEgJEthblYgJEthbjA7IiAvLyBLYW5uYWRhIFZpcmFt
YSAoYmFja3dhcmQpCi0gICAgICAgICIkTWFsMSAkTWFsViAkTWFsMDsiIC8vIE1hbGF5YWxhbSBW
aXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEVtb2ppRm9yU2VxcyAkWldKOyIgLy8gRG9uJ3Qg
YnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppTW9kcyAkRW1vamlW
YXI/ICRFbW9qaUZvck1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2pp
IChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlm
aWVyCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIhIXNhZmVfcmV2ZXJz
ZTsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0gICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNd
KyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAgIiEhc2FmZV9mb3J3YXJkOyIKLSAgICAgICAgIiRS
SSAkUkkrOyIKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7
IjsKLSNlbHNlCi0gICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2Rz
OyIKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IgotICAg
ICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IjsKLSNlbmRp
ZgotICAgIHN0YXRpYyBVQnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
ciA9IGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhrUnVsZXMpOwotI2Vsc2UgLy8gUExBVEZP
Uk0oSU9TKQogICAgIC8vIFVzZSB0aGUgc3BlY2lhbCBUaGFpIGNoYXJhY3RlciBicmVhayBpdGVy
YXRvciBmb3IgYWxsIGxvY2FsZXMKLSAgICBzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1
cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3IoVUJSS19DSEFSQUNURVIs
ICJ0aCIpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IHN0YXRp
Y0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3IoVUJSS19DSEFSQUNU
RVIsICJ0aCIpOwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAKLSAgICBpZiAoIXN0YXRpY0N1
cnNvck1vdmVtZW50SXRlcmF0b3IpCisgICAgaWYgKCFzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yLmdldCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBzZXRUZXh0
Rm9ySXRlcmF0b3IoKnN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IsIHN0cmluZyk7CisgICAg
cmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqKHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3Iu
Z2V0KCkpLCBzdHJpbmcpOwogfQogCiBVQnJlYWtJdGVyYXRvciogYWNxdWlyZUxpbmVCcmVha0l0
ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSwgY29u
c3QgVUNoYXIqIHByaW9yQ29udGV4dCwgdW5zaWduZWQgcHJpb3JDb250ZXh0TGVuZ3RoLCBMaW5l
QnJlYWtJdGVyYXRvck1vZGUgbW9kZSkKQEAgLTM0Myw2ICsyMzAsNyBAQCB2b2lkIGNsb3NlTGlu
ZUJyZWFrSXRlcmF0b3IoVUJyZWFrSXRlcmF0b3IqJiBpdGVyYXRvcikKIHsKICAgICBVQnJlYWtJ
dGVyYXRvciogdWJya0l0ZXIgPSBpdGVyYXRvcjsKICAgICBBU1NFUlQodWJya0l0ZXIpOworICAg
IC8vIEZJWE1FOiBVc2UgUkFJSSB0byBkbyB0aGlzIGluc3RlYWQuCiAgICAgdWJya19jbG9zZSh1
YnJrSXRlcik7CiAgICAgaXRlcmF0b3IgPSBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5oCmluZGV4IDJiYjVmOWNhNGM1YzBlNTBkM2UwMmE1MjcwN2M0MWFk
N2MzMzA2YTguLjhiNTgzNTM0ZGIyYWNlODYyZDUwNDUxZTliODgzNzdiZDZiYTYyMGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKQEAgLTI5LDYgKzI5LDEwIEBAIG5h
bWVzcGFjZSBXVEYgewogCiBlbnVtIGNsYXNzIExpbmVCcmVha0l0ZXJhdG9yTW9kZSB7IERlZmF1
bHQsIExvb3NlLCBOb3JtYWwsIFN0cmljdCB9OwogCitleHRlcm4gY29uc3QgY2hhciogY3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzOworCitVQnJlYWtJdGVyYXRvciogY3JlYXRlQ3Vyc29yUHJl
Y29tcGlsZWRJdGVyYXRvcigpOworCiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8gY2hhcmFjdGVyIGJy
ZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRvCiAvLyBwbGF0Zm9y
bSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0aGlzIGNhbiBiZSBk
aWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlzIFRoYWkgcHJlcGVu
ZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KaW5kZXggYmVm
NWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVlOGU4OGEzODkyYy4uMDI0MjU1Mjc1ZDIyNjIxYzg5
YmI4MjBlNTcyMjM4ZTA1YjJhMmJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9t
YWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCkBAIC0yMSwxMiAr
MjEsMTA2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0
b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKKyNpbmNs
dWRlIDx1bmljb2RlL3VicmsuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKKyNk
ZWZpbmUgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JVTEVTIChVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKSAmJiAoKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDExMDAwMCkpKQorCisjaWYgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JV
TEVTCisjaW5jbHVkZSA8dW5pY29kZS91ZGF0YS5oPgorI2VuZGlmCisKK0BpbnRlcmZhY2UgV1RG
QnVuZGxlRmluZGVyIDogTlNPYmplY3QKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdURkJ1bmRs
ZUZpbmRlcgorQGVuZAorCiBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0IGludCBtYXhM
b2NhbGVTdHJpbmdMZW5ndGggPSAzMjsKIAorI2lmIFVTRV9QUkVDT01QSUxFRF9CUkVBS0lOR19S
VUxFUworc3RhdGljIFVEYXRhTWVtb3J5KiBicmVha0l0ZXJhdG9yUmVzb3VyY2UoTlNTdHJpbmcg
KmZpbGVOYW1lQmFzZSkKK3sKKyAgICAvLyBGSVhNRTogRG8gdGhpcyBpbiBhIHdheSB0aGF0IGRv
ZXNuJ3QgcmVxdWlyZSBmaWxlIElPLgorICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUg
YnVuZGxlRm9yQ2xhc3M6W1dURkJ1bmRsZUZpbmRlciBjbGFzc11dOworICAgIE5TU3RyaW5nICpw
YXRoID0gW2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6ZmlsZU5hbWVCYXNlIG9mVHlwZTpAImJyayIg
aW5EaXJlY3Rvcnk6QCJCcmVha2luZ1J1bGVzIl07CisgICAgaWYgKCFwYXRoKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIE5TU3RyaW5nICpkaXJlY3RvcnkgPSBbcGF0aCBzdHJpbmdC
eURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOworICAgIGlmICghZGlyZWN0b3J5KQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICBVRXJyb3JDb2RlIGVy
cm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAgICB1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEQVRBX0ZJ
TEVTX0ZJUlNULCAmZXJyb3JDb2RlKTsKKyAgICBpZiAoVV9GQUlMVVJFKGVycm9yQ29kZSkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCisKKyAgICBVRXJyb3JDb2RlIHVEYXRhRXJy
b3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAgIFVEYXRhTWVtb3J5KiByZXN1bHQgPSB1ZGF0YV9v
cGVuKFtkaXJlY3RvcnkgVVRGOFN0cmluZ10sICJicmsiLCBbZmlsZU5hbWVCYXNlIFVURjhTdHJp
bmddLCAmdURhdGFFcnJvckNvZGUpOworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHVkYXRhX3Nl
dEZpbGVBY2Nlc3MoVURBVEFfREVGQVVMVF9BQ0NFU1MsICZlcnJvckNvZGUpOworICAgIGlmIChV
X0ZBSUxVUkUoZXJyb3JDb2RlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKKwor
ICAgIGlmIChVX0ZBSUxVUkUodURhdGFFcnJvckNvZGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEoVURhdGFNZW1vcnkqIGRhdGEpCit7CisgICAgaWYg
KCFkYXRhKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFVFcnJvckNvZGUgZXJyb3JD
b2RlID0gVV9aRVJPX0VSUk9SOworICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMzA0MjE5
NzE+IEl0IGlzIGltcG9zc2libGUgdG8gY29tcHV0ZSB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRo
aXMgZnVuY3Rpb24uCisgICAgVUJyZWFrSXRlcmF0b3IqIHJlc3VsdCA9IHVicmtfb3BlbkJpbmFy
eVJ1bGVzKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QgKj4odWRhdGFfZ2V0TWVtb3J5KGRhdGEp
KSwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCksIG51bGxwdHIsIDAsICZlcnJv
ckNvZGUpOworCisgICAgaWYgKFVfRkFJTFVSRShlcnJvckNvZGUpKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3Iq
IGN1cnNvck1vdmVtZW50SXRlcmF0b3IoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxV
RGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVh
a0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3Vy
Y2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMg
VUJyZWFrSXRlcmF0b3IqIGNsb25lSXRlcmF0b3IoVUJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQor
eworICAgIGlmICghaXRlcmF0b3IpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIFVFcnJv
ckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAgIGlmIChhdXRvKiByZXN1bHQgPSB1
YnJrX3NhZmVDbG9uZShpdGVyYXRvciwgbnVsbHB0ciwgMCwgJmVycm9yQ29kZSkpIHsKKyAgICAg
ICAgaWYgKFVfU1VDQ0VTUyhlcnJvckNvZGUpKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKworVUJyZWFrSXRlcmF0b3Iq
IGNyZWF0ZUN1cnNvclByZWNvbXBpbGVkSXRlcmF0b3IoKQoreworI2lmIFVTRV9QUkVDT01QSUxF
RF9CUkVBS0lOR19SVUxFUworICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGN1cnNvck1vdmVtZW50
SXRlcmF0b3IoKSk7CisjZWxzZQorICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKIHN0
YXRpYyBpbmxpbmUgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVmZXJl
bmNlKCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFkb3B0
Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlWYWx1ZShDRlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUiKSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9X
ZWJLaXRGUy5jbWFrZQppbmRleCA1MTMwZmZjYmNjN2M5Y2U3NTE0YWY0ZDU1M2JkOGE0ZjA1MDE0
NTZkLi45ZjgzMzBhZjdmZTM2M2Q4MDEzZWVlMzRiZWRkN2ZjMTVjYjc5MWVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZT
LmNtYWtlCkBAIC0yNyw2ICsyNyw3IEBAIGlmIChOT1QgVE9PTFNfRElSKQogZW5kaWYgKCkKIAog
c2V0KERFUklWRURfU09VUkNFU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJj
ZXMiKQorc2V0KERFUklWRURfU09VUkNFU19XVEZfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rl
cml2ZWRTb3VyY2VzL1dURiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJ
UiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZSIpCiBz
ZXQoREVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJLSVRMRUdBQ1lfRElS
ICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIpCkBAIC0z
NSw2ICszNiw4IEBAIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVIgIiR7Q01BS0VfQklO
QVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0MiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dF
QklOU1BFQ1RPUlVJX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJJ
bnNwZWN0b3JVSSIpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfSkFW
QVNDUklQVENPUkVfRElSfSkKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNf
V1RGX0RJUn0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9
L0JyZWFraW5nUnVsZXMpCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0v
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfSkKZGlmZiAtLWdpdCBhL0NoYW5nZUxv
ZyBiL0NoYW5nZUxvZwppbmRleCAzYTZjYTc4MmVlMTQxM2NhY2ZmOGFkODlmMGFkN2UxYTQ2NWIx
ODczLi43MWJjYjlmZjBjOTU4ODZhNjMwOWM0OTY5YWQ0ZGU4ZWY3NWYyMTk4IDEwMDY0NAotLS0g
YS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDItMTMg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21w
aWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4g
dGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYw
NjI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTMxMDU3PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdEZTLmNt
YWtlOgorCiAyMDE3LTAyLTEwICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBiYXNpYyBkZWJ1Z2dpbmcgbWFjcm9zIGZvciBDTWFrZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301429</attachid>
            <date>2017-02-13 17:56:00 -0800</date>
            <delta_ts>2017-03-05 14:41:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160629-20170213175328.patch</filename>
            <type>text/plain</type>
            <size>58466</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NjkxNWNjNTYzZTQ0NDI2YzBhNzAyNTIxN2VhOTRjYzVjZWEyNjU0Li4yNjk1M2JlZGNmZDNiMDAw
NTU2ZjEzMTI1NGM3MTA3MmQ3ZWUzYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wMi0xMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBw
bGUuY29tPgorCisgICAgICAgIENvbXBpbGUgSUNVIGJyZWFraW5nIGl0ZXJhdG9ycyBhdCBidWls
ZCB0aW1lIHJhdGhlciB0aGFuIHJ1biB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzEw
NTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5j
bHVkZSB0aGUgYnl0ZWNvZGUgZmlsZXMgaW5zaWRlIHRoZSBKYXZhU2NyaXB0Q29yZSBidW5kbGUu
CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDE3LTAyLTEyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IEMgbG9vcCBidWlsZCBmaXggYXR0ZW1wdCBhZnRlciByMjEyMjA3LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBlNjljOGQ2Yzk2
ZWEwZDAwMjhmZWM0NGVjMDQ3OGFmYzk1NWI5ZGUyLi41ZDhhYWQ2OGUwMzhmMDMxNzZhMjk2MDA3
Y2I1ZmNkNGQzNzQzN2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDE3LTAyLTEzICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGlsZSBJQ1Ug
YnJlYWtpbmcgaXRlcmF0b3JzIGF0IGJ1aWxkIHRpbWUgcmF0aGVyIHRoYW4gcnVuIHRpbWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDYyOQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzEzMTA1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbWFjT1MgYW5kIGlPUyBTREtzIGluY2x1ZGUgYSB0
b29sLCBpY3VnZW5icmssIHdoaWNoIGNvbXBpbGVzIElDVSBicmsgYnJlYWtpbmcKKyAgICAgICAg
cnVsZXMgaW50byBieXRlY29kZS4gUHJldmlvdXNseSwgdGhpcyBjb21waWxhdGlvbiB3YXMgZG9u
ZSBhdCBydW50aW1lIGluc2lkZSB0aGUgSUNVCisgICAgICAgIHVicmtfb3BlblJ1bGVzKCkgZnVu
Y3Rpb24uIE1vdmluZyB0aGlzIGNvbXBpbGF0aW9uIHN0ZXAgdG8gY29tcGlsZSB0aW1lIHJhdGhl
ciB0aGFuCisgICAgICAgIGJ1aWxkIHRpbWUgY2F1c2VzIGEgcGVyZm9ybWFuY2UgYm9vc3QuCisK
KyAgICAgICAgUHJldmlvdXNseSwgdGhlIHNvdXJjZSBmb3IgdGhlIGJyZWFraW5nIHJ1bGVzIHdh
cyBhc3NlbWJsZWQgYnkgY29uY2F0ZW5hdGluZyBDIHN0cmluZ3MKKyAgICAgICAgYXQgcnVudGlt
ZS4gTm93LCB0aGUgc291cmNlIGlzIGNvbnRhaW5lZCB3aXRoaW4gYSBmZXcgdGV4dCBmaWxlcyBp
bnNpZGUKKyAgICAgICAgd3RmL3RleHQvQnJlYWtpbmdSdWxlcy4gQSBidWlsZCBzdGVwICh1c2lu
ZyBhIE1ha2VmaWxlKSB3aWxsIGdlbmVyYXRlIHNvdXJjZSBjb2RlCisgICAgICAgIGNvbnRhaW5p
bmcgdGhlc2Ugc3RyaW5ncywgYW5kIFdURiB3aWxsIGluY2x1ZGUgdGhlc2Ugc291cmNlIGZpbGVz
IGluIHRoZSBzYW1lIHdheSBhbnkKKyAgICAgICAgb2Ygb3VyIHByb2plY3RzIHVzZSBnZW5lcmF0
ZWQgc291cmNlcy4gQWRkaXRpb25hbGx5LCBvbiBPU2VzIHdoaWNoIHN1cHBvcnQgaXQsIHRoZXNl
CisgICAgICAgIHN0cmluZ3MgZ2V0IGNvbXBpbGVkIGRpcmVjdGx5IGludG8gSUNVIGJ5dGVjb2Rl
LCBhbmQgdGhlbiBpbmNsdWRlZCBpbiB0aGUgZnJhbWV3b3JrCisgICAgICAgIGJ1bmRsZS4gQmVj
YXVzZSBXVEYgZ2V0cyBzdGF0aWNhbGx5IGxpbmtlZCBpbnRvIEphdmFTY3JpcHRDb3JlLCB0aGlz
IGlzIHRoZSBidW5kbGUKKyAgICAgICAgd2hpY2ggaW5jbHVkZXMgdGhlIGJ5dGVjb2RlIGZpbGVz
LgorCisgICAgICAgIEF0IHJ1bnRpbWUsIHdlIGZpcnN0IGNoZWNrIGlmIHdlIGhhdmUgYSBmaWxl
IGluIG91ciBidW5kbGUgb2YgdGhlIGFwcHJvcHJpYXRlIG5hbWUsCisgICAgICAgIGFuZCB0aGVu
IHNlZSBpZiBJQ1UgY2FuIG9wZW4gaXQgdXNpbmcgaXRzIHVicmtfb3BlbkJpbmFyeVJ1bGVzKCkg
aW50ZXJmYWNlICh3aGljaAorICAgICAgICBpbmNsdWRlcyBhIHZlcnNpb24gY2hlY2spLiBJZiBh
bnkgb2YgdGhlc2UgY2hlY2tzIGZhaWwsIG9yIGlmIHdlJ3JlIG9uIGEgcG9ydCB3aGljaAorICAg
ICAgICBkb2Vzbid0IGhhdmUgdGhlIG5vdGlvbiBvZiBidW5kbGVzLCB3ZSB3aWxsIHVzZSB0aGUg
QyBzdHJpbmdzIGdlbmVyYXRlZCBhYm92ZSwgYW5kCisgICAgICAgIHBhc3MgdGhlbSB0byB1YnJr
X29wZW5SdWxlcygpIHRoZSBzYW1lIHdheSB3ZSB3ZXJlIGRvaW5nIGJlZm9yZSB0aGlzIHBhdGNo
LgorCisgICAgICAgIFRoZSB1YnJrX29wZW5CaW5hcnlSdWxlcygpIGludGVyZmFjZSBpbiBJQ1Ug
cmVxdWlyZXMgYWRkaW5nIHNvbWUgbW9yZSBvZiBJQ1UncyBwdWJsaWMKKyAgICAgICAgaGVhZGVy
cyBpbnRvIFdlYktpdC4KKworICAgICAgICAqIFNjcmlwdHMvR2VuZXJhdGVCcmVha2luZ1J1bGVT
dHJpbmdzLnB5OiBBZGRlZC4KKyAgICAgICAgKG1haW4pOiBPdXRwdXQgQysrIGZpbGVzIHJlcHJl
c2VudGluZyB0aGUgYnJlYWtpbmcgcnVsZXMgc3RyaW5ncy4KKyAgICAgICAgKiBXVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajogQWRkIGEgbmV3IERlcml2ZWQgU291cmNlcyB0YXJnZXQgd2hp
Y2ggdXNlcyBhCisgICAgICAgIERlcml2ZWRTb3VyY2VzLm1ha2UgTWFrZWZpbGUsIHRoZSBzYW1l
IHdheSBXZWJLaXQyLCBXZWJDb3JlLCBhbmQgSmF2YVNjcmlwdENvcmUgd3Jvay4KKyAgICAgICAg
QWxzbywgYWRkIHRoZSBydWxlcyB0ZXh0IGZpbGVzIHRvIHRoZSBwcm9qZWN0LiBUaGVuLCBtYWtl
IFdURiBkZXBlbmQgb24gdGhpcyBuZXcKKyAgICAgICAgdGFyZ2V0LgorICAgICAgICAqIGljdS91
bmljb2RlL3VicmsuaDogQWRkIGRlY2xhcmF0aW9uIGZvciB1YnJrX29wZW5CaW5hcnlSdWxlcygp
LgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDogQWRkIGJ1aWxkIHN0ZXBzIGZvciBvdGhl
ciBwb3J0cyB0byBnZW5lcmF0ZSB0aGUgYnJlYWtpbmcKKyAgICAgICAgcnVsZXMgc3RyaW5ncyBz
b3VyY2UgZmlsZXMuCisgICAgICAgICogd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkLiBU
aGlzIGlzIHRoZSBwbGFjZSB3aGVyZSBpY3VnZW5icmsgaXMgYWN0dWFsbHkgCisgICAgICAgIGlu
dm9rZWQuIEl0IGFsc28gdHJpZ2dlcnMgdGhlIHNjcmlwdCAoR2VuZXJhdGVCcmVha2luZ1J1bGVT
dHJpbmdzLnB5KSB3aGljaCBnZW5lcmF0ZXMKKyAgICAgICAgdGhlIEMrKyBjb2RlIGZvciB0aGUg
cnVsZXMgc3RyaW5ncy4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1v
dmVtZW50SXRlcmF0b3JSdWxlcy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFr
aW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JFcGlsb2d1ZS50eHQ6IEFkZGVkLgorICAgICAgICAq
IHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JQcm9sb2d1ZS50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGluZUJyZWFrSXRlcmF0b3JV
QVgxNENKSy50eHQ6IEFkZGVkLgorICAgICAgICAqIHd0Zi90ZXh0L0JyZWFraW5nUnVsZXMvTGlu
ZUJyZWFrSXRlcmF0b3JVQVgxNExvb3NlQ0pLLnR4dDogQWRkZWQuCisgICAgICAgICogd3RmL3Rl
eHQvQnJlYWtpbmdSdWxlcy9MaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSksudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9y
VUFYMTROb25DSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVz
L0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTROb3JtYWxOb25DSksu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVha2luZ1J1bGVzL0xpbmVCcmVha0l0
ZXJhdG9yVUFYMTRTdHJpY3RDSksudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9CcmVh
a2luZ1J1bGVzL0xpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3ROb25DSksudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5jcHA6CisgICAgICAgIChXVEY6
OmNyZWF0ZUl0ZXJhdG9yRm9yUnVsZVNldCk6IFVzZWQgYnkgb3RoZXIgcG9ydHMuIFJldHVybmlu
ZyBudWxscHRyIG1lYW5zIHdlIGNhbid0CisgICAgICAgIHVzZSBwcmVjb21waWxlZCBydWxlcy4K
KyAgICAgICAgKFdURjo6Y3JlYXRlQ3Vyc29yTW92ZW1lbnRJdGVyYXRvcldpdGhGYWxsYmFjayk6
IFVzZWQgaW4gcGxhY2Ugb2YgdGhlIGhhcmRjb2RlZCBydWxlcworICAgICAgICBpbiBjdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yKCkuCisgICAgICAgIChXVEY6OmN1cnNvck1vdmVtZW50SXRlcmF0b3Ip
OiBSZW1vdmUgaGFyZGNvZGVkIHJ1bGVzLgorICAgICAgICAoV1RGOjptYXBMaW5lSXRlcmF0b3JN
b2RlVG9SdWxlcyk6IFVwZGF0ZSB0byB1c2UgdGhlIG5ldyBnZW5lcmF0ZWQgQysrIHN0cmluZ3Mu
CisgICAgICAgIChXVEY6Om9wZW5MaW5lQnJlYWtJdGVyYXRvcik6IFRoZSBsb2dpYyBvZiB0cnlp
bmcgdG8gdXNlIGEgcHJlY29tcGlsZWQgYnl0ZWNvZGUsIGFuZCBmYWxsaW5nCisgICAgICAgIGJh
Y2sgdG8gQysrIHN0cmluZ3MgaWYgaXQgaXNuJ3QgcG9zc2libGUuCisgICAgICAgIChXVEY6OmNs
b3NlTGluZUJyZWFrSXRlcmF0b3IpOgorICAgICAgICAqIHd0Zi90ZXh0L1RleHRCcmVha0l0ZXJh
dG9yLmg6IEhlYWRlciBmb3IgZ2VuZXJhdGVkIEMrKyBjb2RlLgorICAgICAgICAqIHd0Zi90ZXh0
L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOgorICAgICAgICAoV1RGOjpi
cmVha0l0ZXJhdG9yUmVzb3VyY2UpOiBUaGUgYWN0dWFsIGxvZ2ljIGZvciBsb29raW5nIGluc2lk
ZSB0aGUgYnVuZGxlIGZvciB0aGUKKyAgICAgICAgcHJlY29tcGlsZWQgYnl0ZWNvZGUuCisgICAg
ICAgIChXVEY6OmJyZWFrSXRlcmF0b3JGcm9tUmVzb3VyY2VEYXRhKTogRGl0dG8KKyAgICAgICAg
KFdURjo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6IENhbGxzIGJyZWFrSXRlcmF0b3JGcm9tUmVz
b3VyY2UoKS4KKyAgICAgICAgKFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNENKSyk6IERpdHRv
CisgICAgICAgIChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTROb25DSkspOiBEaXR0bworICAg
ICAgICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VDSkspOiBEaXR0bworICAgICAg
ICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0TG9vc2VOb25DSkspOiBEaXR0bworICAgICAg
ICAoV1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0Tm9ybWFsQ0pLKTogRGl0dG8KKyAgICAgICAg
KFdURjo6bGluZUJyZWFrSXRlcmF0b3JVQVgxNE5vcm1hbE5vbkNKSyk6IERpdHRvCisgICAgICAg
IChXVEY6OmxpbmVCcmVha0l0ZXJhdG9yVUFYMTRTdHJpY3RDSkspOiBEaXR0bworICAgICAgICAo
V1RGOjpsaW5lQnJlYWtJdGVyYXRvclVBWDE0U3RyaWN0Tm9uQ0pLKTogRGl0dG8KKyAgICAgICAg
KFdURjo6Y2xvbmVJdGVyYXRvcik6CisgICAgICAgIChXVEY6OmNyZWF0ZUl0ZXJhdG9yRm9yUnVs
ZVNldCk6IENhbGxzIHRoZSBhYm92ZSBzdGF0aWMgZnVuY3Rpb25zLgorCiAyMDE3LTAyLTEzICBC
cmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBGb2xsb3d1cCB0bzog
UmVwbGFjZSBhbGwgV2ViS2l0IExpYnJhcnkgVmVyc2lvbiBjaGVja3MgaW4gV0syIHdpdGggU0RL
IHZlcnNpb24gY2hlY2tzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwZmU0YjVm
MDVmZGE0OTNjOTYwZjdmYmY5N2UyNjczYzhkYTU0MWM3Li42ZmU2YzdkOGJlM2RjNTViNjQwODUy
ODlmZThmNDZkOTEwYzNkOTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIy
OCw2ICsxMjI4LDcgQEAKIAkJMUEyOEQ0QTgxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVm
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUEyOEQ0QTcxNzdCNzFDODAwMDdGQTNDIC8qIEpTU3RyaW5nUmVmUHJpdmF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBODgyNkIxNjUzQzRD
RDFBNjQyOTgzQiAvKiBUZW1wbGF0ZVJlZ2lzdHJ5S2V5VGFibGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEI0N0YyMzQzNjZDNEI3MkFDODUyQTdF
IC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgKi87IH07CiAJCTFBQ0Y3Mzc3MTcxQ0E2
RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBQ0Y3Mzc2MTcxQ0E2RkIwMEM5QkIxRSAvKiBXZWFrLmNwcCAqLzsgfTsK
KwkJMUNEMTg3OTAxRDU1OTYxMjAwQ0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRDE4NzhGMUQ1NTk2MTIwMEND
N0RFQyAvKiBCcmVha2luZ1J1bGVzICovOyB9OwogCQkyNjAwQjVBNjE1MkJBQUE3MDA5MUVFNUYg
LyogSlNTdHJpbmdKb2luZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjYwMEI1QTQxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmNw
cCAqLzsgfTsKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNTE1
MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLzsgfTsKIAkJMjYyRDg1QjYxQzBE
NjUwRjAwNkFDQjYxIC8qIEFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjJEODVCNDFDMEQ2NTBGMDA2
QUNCNjEgLyogQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmNwcCAqLzsgfTsKQEAgLTM2NTgs
NiArMzY1OSw3IEBACiAJCTFDOTA1MTQ1MEJBOUU4QTcwMDgxRTlEMCAvKiBCYXNlLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRBMEQzMkMzOUEwMDQxQkNGRiAvKiBKYXZhU2Ny
aXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEIwRDMyQzM5QTAwNDFCQ0ZGIC8qIEph
dmFTY3JpcHRDb3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3Jp
cHRDb3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDRDE4NzhGMUQ1NTk2MTIw
MENDN0RFQyAvKiBCcmVha2luZ1J1bGVzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gZm9sZGVyOyBuYW1lID0gQnJlYWtpbmdSdWxlczsgcGF0aCA9IC4u
L1dURi9CcmVha2luZ1J1bGVzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVB
NDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYyRDg1QjQxQzBENjUwRjAwNkFDQjYxIC8qIEFp
ckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuY3BwOyBwYXRoID0gYjMvYWly
L0FpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC02MDE1LDYgKzYwMTcsNyBAQAogCQk2NTBGREY4RDA5RDBGQ0E3MDA3NjlFNTQgLyog
RGVyaXZlZCBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQkxQ0QxODc4RjFENTU5NjEyMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAqLywKIAkJ
CQkwRjYxODMzMjFDNDVGMzVDMDA3MjQ1MEIgLyogQWlyT3Bjb2RlLmggKi8sCiAJCQkJMEY2MTgz
MzQxQzQ1RjNCNjAwNzI0NTBCIC8qIEFpck9wY29kZUdlbmVyYXRlZC5oICovLAogCQkJCTBGNjE4
MzM1MUM0NUYzQjYwMDcyNDUwQiAvKiBBaXJPcGNvZGVVdGlscy5oICovLApAQCAtOTQzMSw2ICs5
NDM0LDcgQEAKIAkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlv
bk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJMUNEMTg3OTAxRDU1OTYxMjAw
Q0M3REVDIC8qIEJyZWFraW5nUnVsZXMgaW4gUmVzb3VyY2VzICovLAogCQkJCUE1M0YxQUMwMThD
OTBGOEYwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9TY3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBiL1NvdXJjZS9X
VEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTc1
NGJlNTZkZjllZDM4NjE5MTViNmMzZDE1MGQ4NTI0OTY1ODRjMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XVEYvU2NyaXB0cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKQEAgLTAs
MCArMSwxMDMgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisj
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHN5cworaW1wb3J0IHJlCitpbXBvcnQgYXJncGFy
c2UKKworaGVhZGVyID0gIiIiLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovIiIiCisKKworZGVmIG1haW4oYXJndj1Ob25lKToK
KyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0nR2VuZXJh
dGUgYnJlYWtpbmcgcnVsZSBzb3VyY2Ugc3RyaW5ncyBpbiBDKysgc291cmNlIGZvbXJhdC4nKQor
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ3N5bWJvbE5hbWUnKQorICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoJ2ZpbGVOYW1lcycsIG5hcmdzPScrJykKKworICAgIGFyZ3MgPSBwYXJzZXIucGFyc2Vf
YXJncygpCisKKyAgICBzeW1ib2xOYW1lID0gYXJncy5zeW1ib2xOYW1lWzBdLmxvd2VyKCkgKyBh
cmdzLnN5bWJvbE5hbWVbMTpdCisgICAgZmlsZU5hbWVzID0gYXJncy5maWxlTmFtZXMKKworICAg
IHByaW50KGhlYWRlcikKKyAgICBwcmludCgiIiIKKy8vIERPIE5PVCBFRElUIFRISVMgRklMRS4g
SXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgdGhlIHNjcmlwdAorLy8gJXMKKworI2lu
Y2x1ZGUgXCJjb25maWcuaFwiCisjaW5jbHVkZSA8dW5pY29kZS91dmVybnVtLmg+CisiIiIgJSAo
c3lzLmFyZ3ZbMF0pKQorICAgIHByaW50KCIiIm5hbWVzcGFjZSBXVEYgeworCitjb25zdCBjaGFy
KiAlcyA9ICIiIiAlIChzeW1ib2xOYW1lKSkKKworICAgIGZvciBmaWxlTmFtZSBpbiBmaWxlTmFt
ZXM6CisgICAgICAgIGZvciBsIGluIG9wZW4oZmlsZU5hbWUsICdyJyk6CisgICAgICAgICAgICBs
aW5lID0gbC5yc3RyaXAoKQorICAgICAgICAgICAgaWYgcmUubWF0Y2goIl5ccyokIiwgbGluZSk6
CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgo
IiMgIik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBsaW5lID09ICIj
IjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0
aCgiIyIpOgorICAgICAgICAgICAgICAgIHByaW50KGxpbmUpCisgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgIG1hdGNoID0gcmUubWF0Y2goIl4oLiopOyggIyAuKik/JCIsIGxpbmUp
CisgICAgICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9
ICJcIiIgKyBtYXRjaC5ncm91cCgxKS5yZXBsYWNlKCJcXCIsICJcXFxcIikgKyAiO1wiIgorICAg
ICAgICAgICAgICAgICAgICBpZiBtYXRjaC5ncm91cCgyKToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdCArPSAiIC8vICIgKyBtYXRjaC5ncm91cCgyKVszOl0KKyAgICAgICAgICAgICAg
ICAgICAgcHJpbnQocmVzdWx0KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgICAgIGV4aXQoMSkKKworICAgIHByaW50KCI7IikKKyAgICBwcmludCgifSIpCisKK2lmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6CisgICAgc3lzLmV4aXQobWFpbihzeXMuYXJndikpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0MjUzOWIxNDk3OWI2ZWJl
ZDFmMzI0NDE4ZDhjMmI3ZjdjODRjOWE0Li5mMTNkNWYwYjMwZDViMDBlNzQ5ZTI0YTZkNWIxOTY2
OTc2MzNhNTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTcsNiArNywxNyBAQAogCW9iamVjdHMgPSB7CiAKIC8qIEJlZ2luIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCBzZWN0aW9uICovCisJCTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJj
ZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3Vy
YXRpb25MaXN0ID0gMUNEMTg3ODMxRDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovOworCQkJ
YnVpbGRQaGFzZXMgPSAoCisJCQkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVyYXRl
IERlcml2ZWQgU291cmNlcyAqLywKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkpOwor
CQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQkJcHJvZHVjdE5hbWUgPSAiRGVyaXZlZCBT
b3VyY2VzIjsKKwkJfTsKIAkJNjVBRkExNkYxNjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhl
YWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CiAJCQlidWlsZENvbmZp
Z3VyYXRpb25MaXN0ID0gNjVBRkEyODgxNjMwQjk3NzAwM0Q3MjNDIC8qIEJ1aWxkIGNvbmZpZ3Vy
YXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJDb3B5IFdURiBIZWFkZXJzIiAqLzsK
QEAgLTg0LDcgKzk1LDYgQEAKIAkJMTQ0N0FFQzYxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRp
b24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTQ0N0FFQzUxOEZDRTU3NzAwQjNEN0ZGIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICov
OyB9OwogCQkxNDQ3QUVDNzE4RkNFNTgwMDBCM0Q3RkYgLyogbGliV1RGLmEgaW4gRnJhbWV3b3Jr
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDI0N0I2MjE0Njg5Qjg2MDBF
NzhCNzYgLyogbGliV1RGLmEgKi87IH07CiAJCTE0NDdBRUM5MThGQ0U1OTQwMEIzRDdGRiAvKiBt
Ym1hbGxvYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDQ3QUVDODE4RkNFNTk0MDBCM0Q3RkYgLyogbWJtYWxsb2MuY3BwICovOyB9OwotCQkxNDQ3
QUVDQjE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDdBRUNBMThGQ0U1QjkwMEIzRDdG
RiAvKiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OwogCQkxNDY5NDE5MjE2RUFBRjZEMDAyNEUxNDYg
LyogUnVuTG9vcFRpbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNDY5NDE5MDE2RUFBRjZEMDAyNEUxNDYgLyogUnVuTG9vcFRpbWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJMTQ2OTQxOTMxNkVBQUY2RDAwMjRF
MTQ2IC8qIFJ1bkxvb3BUaW1lckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0Njk0MTkxMTZFQUFGNkQwMDI0RTE0NiAvKiBSdW5Mb29wVGltZXJD
Ri5jcHAgKi87IH07CiAJCTE0Njk0MTk2MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0Njk0MTk0
MTZFQUFGRjgwMDI0RTE0NiAvKiBTY2hlZHVsZVBhaXIuaCAqLzsgfTsKQEAgLTM0MCw2ICszNTAs
OCBAQAogCQlBREYyQ0U2NjFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBREYyQ0U2NDFFMzlG
MTA2MDA2ODg5REIgLyogTWVtb3J5Rm9vdHByaW50LmggKi87IH07CiAJCUFERjJDRTY3MUUzOUYx
MDYwMDY4ODlEQiAvKiBNZW1vcnlGb290cHJpbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQURGMkNFNjUxRTM5RjEwNjAwNjg4OURCIC8qIE1lbW9y
eUZvb3RwcmludC5jcHAgKi87IH07CiAJCUIzOEZEN0JEMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0
dXJlRGVmaW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggKi87IH07CisJ
CUMyQkE1NDNFMUQ1ODZBRjQwMDBBMzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0N0FFQ0ExOEZDRTVCOTAw
QjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi87IH07CisJCUMyQ0EzN0U5MUQ1NUM5NzEwMDQ4
NkI5OCAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJDQTM3RTAxRDU1Qzk3MTAwNDg2Qjk4IC8q
IEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgKi87IH07CiAJCUM0RjhBOTM3MTlDNjVF
QjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM0RjhBOTM2MTlDNjVFQjQwMEIyQjE1RCAvKiBTdG9wd2F0Y2guaCAq
LzsgfTsKIAkJQzhCMEUxQTFFMDFBNDg2RUI5NUUwRDExIC8qIEluZGV4U2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM3RTFEN0RCRDg0QUMzOEZB
RTREMzQgLyogSW5kZXhTZXQuaCAqLzsgfTsKIAkJQzkxNkI5NzVGMDJGNEY3RThCNEFCMTJEIC8q
IEluZGV4TWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QjQzMzgzQTVEMEI0NjNDOTQzM0Q5MzMgLyogSW5kZXhNYXAuaCAqLzsgfTsKQEAgLTM4MSw2
ICszOTMsMTMgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNUQyNDdCNjExNDY4OUI4NjAw
RTc4Qjc2OwogCQkJcmVtb3RlSW5mbyA9IFdURjsKIAkJfTsKKwkJMUNEMTg3ODcxRDU1Njk4ODAw
Q0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRh
aW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3
OEI3NiAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVH
bG9iYWxJRFN0cmluZyA9IDFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQzsKKwkJCXJlbW90ZUluZm8g
PSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsKIAkJNjVBRkEyOEQxNjMwQjk5RTAwM0Q3MjNDIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Q
cm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDVEMjQ3QjU5MTQ2ODlCODYwMEU3OEI3NiAvKiBQ
cm9qZWN0IG9iamVjdCAqLzsKQEAgLTQ5Miw2ICs1MTEsOSBAQAogCQkxQzE4MUM4RDFEMzA3QUI4
MDBGNUZBMTYgLyogVVRleHRQcm92aWRlclVURjE2LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFVUZXh0UHJvdmlkZXJVVEYxNi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFDMTgxQzhFMUQzMDdBQjgwMEY1RkExNiAvKiBVVGV4dFByb3ZpZGVyVVRG
MTYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVRleHRQcm92aWRlclVURjE2
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDMTgxQzk1MUQzMDgwMEEwMEY1RkEx
NiAvKiBUZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5t
bTsgcGF0aCA9IG1hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQzZCRTBGQTFFMDM0QzlBMDAyMTc2MTcgLyogR2VuZXJh
dGVCcmVha2luZ1J1bGVTdHJpbmdzLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gR2VuZXJhdGVCcmVh
a2luZ1J1bGVTdHJpbmdzLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQ0QxODc4
QTFENTU4QUQzMDBDQzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBuYW1lID0gRGVyaXZl
ZFNvdXJjZXMubWFrZTsgcGF0aCA9IHd0Zi9EZXJpdmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB1c2VzVGFicyA9IDE7IH07CisJCTFDRDE4NzkyMUQ1NTk4RTEwMENDN0RF
QyAvKiBDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEN1cnNvck1vdmVtZW50
SXRlcmF0b3JSdWxlcy50eHQ7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGQTQ3Qzg4
MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxRkE0N0M4OTE1MjUwMkRBMDA1NjhEMUIgLyogV2ViQ29yZVRocmVhZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVGhyZWFkLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MTQ3QjA4MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2Vy
VG9TdHJpbmdDb252ZXJzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
dGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTcyNCw2ICs3NDYsNyBAQAogCQlBREYyQ0U2NDFFMzlGMTA2MDA2ODg5REIgLyogTWVtb3J5Rm9v
dHByaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUZvb3Rwcmlu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBREYyQ0U2NTFFMzlGMTA2MDA2ODg5
REIgLyogTWVtb3J5Rm9vdHByaW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE1lbW9yeUZvb3RwcmludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUIzOEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJ
dGVyYXRvclJ1bGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1
cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHA7IHBhdGggPSBCcmVha2luZ1J1bGVzV29ya2lu
Z0Rpci9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDNEY4QTkzNjE5QzY1RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3B3YXRjaC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRp
YVRpbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUaW1lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NjIsNyArNzg1LDcgQEAKIAkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQkxNDQ3QUVDNjE4RkNFNTc3
MDBCM0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCQkx
NDQ3QUVDQjE4RkNFNUI5MDBCM0Q3RkYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtz
ICovLAorCQkJCUMyQkE1NDNFMUQ1ODZBRjQwMDBBMzMzMiAvKiBsaWJpY3Vjb3JlLmR5bGliIGlu
IEZyYW1ld29ya3MgKi8sCiAJCQkJMTQ0N0FFQzcxOEZDRTU4MDAwQjNEN0ZGIC8qIGxpYldURi5h
IGluIEZyYW1ld29ya3MgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CkBAIC03OTksNiArODIyLDIyIEBACiAJCQlwYXRoID0gaWN1OwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUM2QkUwRjkxRTAzNEMyQTAwMjE3NjE3IC8q
IFNjcmlwdHMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJ
CTFDNkJFMEZBMUUwMzRDOUEwMDIxNzYxNyAvKiBHZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3Mu
cHkgKi8sCisJCQkpOworCQkJcGF0aCA9IFNjcmlwdHM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OworCQkxQ0QxODc5MTFENTU5OEUxMDBDQzdERUMgLyogQnJlYWtpbmdSdWxlcyAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUNEMTg3OTIx
RDU1OThFMTAwQ0M3REVDIC8qIEN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy50eHQgKi8sCisJ
CQkpOworCQkJcGF0aCA9IEJyZWFraW5nUnVsZXM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OworCQl9OwogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIgLyogaW9zICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTgyMSw5ICs4NjAsMTIgQEAKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNUQyNDdCNkQxNDY4OUM0NzAwRTc4
Qjc2IC8qIENvbmZpZ3VyYXRpb25zICovLAorCQkJCUMyQ0EzN0RGMUQ1NUM4RDgwMDQ4NkI5OCAv
KiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMTQwMjJGM0YxOEY1QzNFNTAwN0ZGMEVCIC8qIExp
YnJhcmllcyAqLywKIAkJCQk1RDI0N0I2MzE0Njg5Qjg2MDBFNzhCNzYgLyogUHJvZHVjdHMgKi8s
CisJCQkJMUM2QkUwRjkxRTAzNEMyQTAwMjE3NjE3IC8qIFNjcmlwdHMgKi8sCiAJCQkJNUQyNDdC
NzYxNDY4OUQ3NjAwRTc4Qjc2IC8qIFNvdXJjZSAqLywKKwkJCQkxQ0QxODc4QTFENTU4QUQzMDBD
QzdERUMgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKIAkJCQkxNDQ3QUVDNTE4RkNFNTc3MDBC
M0Q3RkYgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi8sCiAJCQkJMTQ0N0FFQ0ExOEZDRTVCOTAw
QjNEN0ZGIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkpOwpAQCAtMTE4NSw2ICsxMjI3LDcg
QEAKIAkJQThBNDczMUIxNTFBODI1QjAwNDEyM0ZGIC8qIHRleHQgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFDRDE4NzkxMUQ1NTk4RTEwMENDN0RFQyAv
KiBCcmVha2luZ1J1bGVzICovLAogCQkJCUE1QkExNUY2MTgyNDM1OUUwMEE4MkU2OSAvKiBjZiAq
LywKIAkJCQkxQzE4MUM4ODFEMzA3QUI4MDBGNUZBMTYgLyogaWN1ICovLAogCQkJCUE1QkExNUYx
MTgyNDMzOUYwMEE4MkU2OSAvKiBtYWMgKi8sCkBAIC0xMjYzLDYgKzEzMDYsMTUgQEAKIAkJCXBh
dGggPSBpY3U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDMkNBMzdERjFE
NTVDOEQ4MDA0ODZCOTggLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDMkNBMzdFMDFENTVDOTcxMDA0ODZCOTggLyogQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gIkRlcml2
ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvV1RGOworCQkJc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsKIAkJQ0U0NjUxNkMxOURCMUZCNDAwM0VDQTA1
IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAg
LTE2MTQsNiArMTY2Niw3IEBACiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsKIAkJCWRlcGVuZGVu
Y2llcyA9ICgKKwkJCQkxQ0QxODc4ODFENTU2OTg4MDBDQzdERUMgLyogUEJYVGFyZ2V0RGVwZW5k
ZW5jeSAqLywKIAkJCQk2NUFGQTI4RTE2MzBCOTlFMDAzRDcyM0MgLyogUEJYVGFyZ2V0RGVwZW5k
ZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gV1RGOwpAQCAtMTY0NCwxMiArMTY5NywyNyBAQAog
CQkJdGFyZ2V0cyA9ICgKIAkJCQk1RDI0N0I2MTE0Njg5Qjg2MDBFNzhCNzYgLyogV1RGICovLAog
CQkJCTY1QUZBMTZGMTYzMEI5NzcwMDNENzIzQyAvKiBDb3B5IFdURiBIZWFkZXJzICovLAorCQkJ
CTFDRDE4NzgxMUQ1NTY5NUMwMENDN0RFQyAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMTQ0
N0FFQkQxOEZDRTU2OTAwQjNEN0ZGIC8qIG1ibWFsbG9jICovLAogCQkJKTsKIAkJfTsKIC8qIEVu
ZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYU2hlbGxTY3JpcHRCdWlsZFBo
YXNlIHNlY3Rpb24gKi8KKwkJMUNEMTg3ODIxRDU1Njk1QzAwQ0M3REVDIC8qIEdlbmVyYXRlIERl
cml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsK
KwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJ
CQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgRGVyaXZlZCBTb3Vy
Y2VzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2Ny
aXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dU
RlwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XVEZcIlxuXG4v
YmluL2xuIC1zZmggXCIke1NSQ1JPT1R9XCIgV1RGXG5leHBvcnQgV1RGPVwiV1RGXCJcblxuaWYg
WyAhIC1kIEJyZWFraW5nUnVsZXMgXTsgdGhlblxuICAgIG1rZGlyIEJyZWFraW5nUnVsZXNcbmZp
XG5cbmlmIFsgISAtZCBCcmVha2luZ1J1bGVzV29ya2luZ0RpciBdOyB0aGVuXG4gICAgbWtkaXIg
QnJlYWtpbmdSdWxlc1dvcmtpbmdEaXJcbmZpXG5cbmlmIFsgXCIkSEFWRV9JTlRFUk5BTF9TREtc
IiAhPSBcIllFU1wiIF0gfHwgWyBcIiRNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVRcIiA9PSBcIjEw
LjExXCIgXSB8fCBbIFwiJE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVFwiID09IFwiMTAuMTJcIiBd
IHx8IFsgXCIkU0RLX1ZFUlNJT05fTUFKT1JcIiA9PSBcIjkwMDAwXCIgXSB8fCBbIFwiJFNES19W
RVJTSU9OX01BSk9SXCIgPT0gXCIxMDAwMDBcIiBdOyB0aGVuXG4gICAgZXhwb3J0IEhBVkVfSUNV
R0VOQlJLPTBcbmVsc2VcbiAgICBleHBvcnQgSEFWRV9JQ1VHRU5CUks9MVxuZmlcblxuaWYgWyBc
IiR7QUNUSU9OfVwiID0gXCJidWlsZFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3RhbGxcIiAt
byBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsaGRyc1wiIC1vIFwiJHtBQ1RJT059XCIgPSBcImlu
c3RhbGxhcGlcIiBdOyB0aGVuXG5tYWtlIC0tbm8tYnVpbHRpbi1ydWxlcyAtZiBcIldURi93dGYv
RGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNw
dWAgU0RLUk9PVD1cIiR7U0RLUk9PVH1cIlxuZmkiOworCQl9OwogCQk2NUFGQTE3MDE2MzBCOTc3
MDAzRDcyM0MgLyogQ29weSBXVEYgSGVhZGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2Ny
aXB0QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNzAy
LDYgKzE3NzAsNyBAQAogCQkJCUUxNTU1NkY1MThBMENDMTgwMDZGNDhGQiAvKiBDcnlwdG9ncmFw
aGljVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3NDM5MTUxQTgyNUIwMDQx
MjNGRiAvKiBDU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlDMTUxQTgyNUIw
MDQxMjNGRiAvKiBDdXJyZW50VGltZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMkNBMzdFOTFE
NTVDOTcxMDA0ODZCOTggLyogQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE4QTQ3MzlFMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRhTG9nLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0EwMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRlTWF0aC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNBMjE1MUE4MjVCMDA0MTIzRkYgLyogRGVjaW1hbE51
bWJlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE3OTMsNiArMTg2MiwxMSBAQAogCQkJdGFyZ2V0
ID0gNUQyNDdCNjExNDY4OUI4NjAwRTc4Qjc2IC8qIFdURiAqLzsKIAkJCXRhcmdldFByb3h5ID0g
MTQ0N0FFQzMxOEZDRTU3MDAwQjNEN0ZGIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJ
fTsKKwkJMUNEMTg3ODgxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8g
PSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gMUNEMTg3ODEx
RDU1Njk1QzAwQ0M3REVDIC8qIERlcml2ZWQgU291cmNlcyAqLzsKKwkJCXRhcmdldFByb3h5ID0g
MUNEMTg3ODcxRDU1Njk4ODAwQ0M3REVDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJ
fTsKIAkJNjVBRkEyOEUxNjMwQjk5RTAwM0Q3MjNDIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8g
PSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gNjVBRkExNkYx
NjMwQjk3NzAwM0Q3MjNDIC8qIENvcHkgV1RGIEhlYWRlcnMgKi87CkBAIC0xODIyLDYgKzE4OTYs
MzAgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJMUNEMTg3ODQxRDU1
Njk1QzAwQ0M3REVDIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRp
b247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVEMjQ3QjcwMTQ2ODlDNDcwMEU3
OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0gewor
CQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IERl
YnVnOworCQl9OworCQkxQ0QxODc4NTFENTU2OTVDMDBDQzdERUMgLyogUmVsZWFzZSAqLyA9IHsK
KwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZl
cmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmln
ICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRf
TkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OworCQkxQ0QxODc4NjFENTU2
OTVDMDBDQzdERUMgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1
cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDI0N0I3MDE0Njg5QzQ3
MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9
IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUg
PSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDI0N0I2NDE0Njg5Qjg2MDBFNzhCNzYgLyogRGVidWcg
Ki8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0
aW9uUmVmZXJlbmNlID0gNUQyNDdCNzAxNDY4OUM0NzAwRTc4Qjc2IC8qIERlYnVnUmVsZWFzZS54
Y2NvbmZpZyAqLzsKQEAgLTE5MDUsNiArMjAwMywxNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRp
b25Jc1Zpc2libGUgPSAwOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlv
bjsKIAkJfTsKKwkJMUNEMTg3ODMxRDU1Njk1QzAwQ0M3REVDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovID0gewor
CQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAo
CisJCQkJMUNEMTg3ODQxRDU1Njk1QzAwQ0M3REVDIC8qIERlYnVnICovLAorCQkJCTFDRDE4Nzg1
MUQ1NTY5NUMwMENDN0RFQyAvKiBSZWxlYXNlICovLAorCQkJCTFDRDE4Nzg2MUQ1NTY5NUMwMEND
N0RFQyAvKiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNW
aXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CisJ
CX07CiAJCTVEMjQ3QjVDMTQ2ODlCODYwMEU3OEI3NiAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxp
c3QgZm9yIFBCWFByb2plY3QgIldURiIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25M
aXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
aWN1L3VuaWNvZGUvdWJyay5oIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91YnJrLmgKaW5kZXgg
ZTljMGVmNjI3YjY3Mjc5Zjg2ZTQ2MDQ0YmYwZjI1NzEwMmUwYzZjZC4uMTk3NWI5ZGJlZDQ0M2E5
Mjc0MzZmMGEyNzkyOWJhNThhZjg3MTgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9pY3UvdW5p
Y29kZS91YnJrLmgKKysrIGIvU291cmNlL1dURi9pY3UvdW5pY29kZS91YnJrLmgKQEAgLTI0MSw2
ICsyNDEsMzEgQEAgdWJya19vcGVuUnVsZXMoY29uc3QgVUNoYXIgICAgICpydWxlcywKICAgICAg
ICAgICAgICAgIFVFcnJvckNvZGUgICAgICAqc3RhdHVzKTsKIAogLyoqCisgKiBPcGVuIGEgbmV3
IFVCcmVha0l0ZXJhdG9yIGZvciBsb2NhdGluZyB0ZXh0IGJvdW5kYXJpZXMgdXNpbmcgcHJlY29t
cGlsZWQgYmluYXJ5IHJ1bGVzLgorICogT3BlbmluZyBhIFVCcmVha0l0ZXJhdG9yIHRoaXMgd2F5
IGlzIHN1YnN0YW50aWFsbHkgZmFzdGVyIHRoYW4gdXNpbmcgdWJya19vcGVuUnVsZXMuCisgKiBC
aW5hcnkgcnVsZXMgbWF5IGJlIG9idGFpbmVkIHVzaW5nIHVicmtfZ2V0QmluYXJ5UnVsZXMuIFRo
ZSBjb21waWxlZCBydWxlcyBhcmUgbm90CisgKiBjb21wYXRpYmxlIGFjcm9zcyBkaWZmZXJlbnQg
bWFqb3IgdmVyc2lvbnMgb2YgSUNVLCBub3IgYWNyb3NzIHBsYXRmb3JtcyBvZiBkaWZmZXJlbnQK
KyAqIGVuZGlhbm5lc3Mgb3IgZGlmZmVyZW50IGJhc2UgY2hhcmFjdGVyIHNldCBmYW1pbHkgKEFT
Q0lJIHZzIEVCQ0RJQykuCisgKiBAcGFyYW0gYmluYXJ5UnVsZXMgQSBzZXQgb2YgY29tcGlsZWQg
YmluYXJ5IHJ1bGVzIHNwZWNpZnlpbmcgdGhlIHRleHQgYnJlYWtpbmcKKyAqICAgICAgICAgICAg
ICAgICAgICBjb252ZW50aW9ucy4gT3duZXJzaGlwIG9mIHRoZSBzdG9yYWdlIGNvbnRhaW5pbmcg
dGhlIGNvbXBpbGVkCisgKiAgICAgICAgICAgICAgICAgICAgcnVsZXMgcmVtYWlucyB3aXRoIHRo
ZSBjYWxsZXIgb2YgdGhpcyBmdW5jdGlvbi4gVGhlIGNvbXBpbGVkCisgKiAgICAgICAgICAgICAg
ICAgICAgcnVsZXMgbXVzdCBub3QgYmUgbW9kaWZpZWQgb3IgZGVsZXRlZCBkdXJpbmcgdGhlIGxp
ZmUgb2YgdGhlCisgKiAgICAgICAgICAgICAgICAgICAgYnJlYWsgaXRlcmF0b3IuCisgKiBAcGFy
YW0gcnVsZXNMZW5ndGggVGhlIGxlbmd0aCBvZiBiaW5hcnlSdWxlcyBpbiBieXRlczsgbXVzdCBi
ZSA+PSAwLgorICogQHBhcmFtIHRleHQgICAgICAgIFRoZSB0ZXh0IHRvIGJlIGl0ZXJhdGVkIG92
ZXIuICBNYXkgYmUgbnVsbCwgaW4gd2hpY2ggY2FzZQorICogICAgICAgICAgICAgICAgICAgIHVi
cmtfc2V0VGV4dCgpIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgdGV4dCB0byBiZSBpdGVyYXRlZC4K
KyAqIEBwYXJhbSB0ZXh0TGVuZ3RoICBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGV4dCwg
b3IgLTEgaWYgbnVsbC10ZXJtaW5hdGVkLgorICogQHBhcmFtIHN0YXR1cyAgICAgIFBvaW50ZXIg
dG8gVUVycm9yQ29kZSB0byByZWNlaXZlIGFueSBlcnJvcnMuCisgKiBAcmV0dXJuICAgICAgICAg
ICAgVUJyZWFrSXRlcmF0b3IgZm9yIHRoZSBzcGVjaWZpZWQgcnVsZXMuCisgKiBAc2VlIHVicmtf
Z2V0QmluYXJ5UnVsZXMKKyAqIEBkcmFmdCBJQ1UgNTkKKyAqLworVV9EUkFGVCBVQnJlYWtJdGVy
YXRvciogVV9FWFBPUlQyCit1YnJrX29wZW5CaW5hcnlSdWxlcyhjb25zdCB1aW50OF90ICpiaW5h
cnlSdWxlcywgaW50MzJfdCBydWxlc0xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFVDaGFyICogIHRleHQsIGludDMyX3QgdGV4dExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAg
IFVFcnJvckNvZGUgKiAgIHN0YXR1cyk7CisKKy8qKgogICogVGhyZWFkIHNhZmUgY2xvbmluZyBv
cGVyYXRpb24KICAqIEBwYXJhbSBiaSBpdGVyYXRvciB0byBiZSBjbG9uZWQKICAqIEBwYXJhbSBz
dGFja0J1ZmZlciA8ZW0+RGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGFzIG9mIElDVSA1MiwgdXNl
IE5VTEwuPC9lbT48YnI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDgxYWY5MTI3NjEwNmI4MTI4
OTE3ZGI4Yzc5Y2YyNTRiMmU0ZDhjZjAuLmEzNzhlY2RkNTcxNTZkNzE0N2ViYmZkMmI5NzhmZmI0
MTI1Yjg1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC0zMDEsNiArMzAxLDE1IEBAIGlmIChO
T1QgVVNFX1NZU1RFTV9NQUxMT0MpCiAgICAgbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUyBibWFs
bG9jKQogZW5kaWYgKCkKIAorYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklW
RURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzV29ya2luZ0Rpci9DdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMuY3BwCisgICAgTUFJTl9ERVBFTkRFTkNZICR7V1RGX0RJUn0vU2NyaXB0
cy9HZW5lcmF0ZUJyZWFraW5nUnVsZVN0cmluZ3MucHkKKyAgICBERVBFTkRTICR7Q01BS0VfQ1VS
UkVOVF9TT1VSQ0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLnR4dAorICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VUQUJMRX0gJHtXVEZfRElSfS9T
Y3JpcHRzL0dlbmVyYXRlQnJlYWtpbmdSdWxlU3RyaW5ncy5weSBjdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yUnVsZXMgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L3RleHQvQnJlYWtpbmdSdWxlcy9D
dXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0ID4gJHtERVJJVkVEX1NPVVJDRVNfV1RGX0RJ
Un0vQnJlYWtpbmdSdWxlc1dvcmtpbmdEaXIvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLmNw
cAorICAgIFZFUkJBVElNKQorbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJD
RVNfV1RGX0RJUn0vQnJlYWtpbmdSdWxlc1dvcmtpbmdEaXIvQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
clJ1bGVzLmNwcCkKK0FERF9TT1VSQ0VfREVQRU5ERU5DSUVTKCR7Q01BS0VfQ1VSUkVOVF9TT1VS
Q0VfRElSfS90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4
dCAke0RFUklWRURfU09VUkNFU19XVEZfRElSfS9CcmVha2luZ1J1bGVzV29ya2luZ0Rpci9DdXJz
b3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMuY3BwKQorCiBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwog
ICAgIHVuaWNvZGUvaWN1L0NvbGxhdG9ySUNVLmNwcAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDE1ZDkzYmMxYmNjOTY0NWU4ZmIwOWU5Yzg0YzZlNmQ5NzA1NWI3
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTAsMCArMSw1NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
QlJFQUtJTkdfUlVMRVNfRklMRVMgPSBcCisgICAgQnJlYWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVu
dEl0ZXJhdG9yUnVsZXMuYnJrCisKK0JSRUFLSU5HX1JVTEVTX0RFRklOSVRJT05TPSQoQlJFQUtJ
TkdfUlVMRVNfRklMRVM6QnJlYWtpbmdSdWxlcy8lLmJyaz1CcmVha2luZ1J1bGVzV29ya2luZ0Rp
ci8lLmNwcCkKKworaWZlcSAoJChzaGVsbCAkKENDKSAtc3RkPWdudSsrMTEgLXggYysrIC1FIC1Q
IC1kTSAkKFNES19GTEFHUykgJChGUkFNRVdPUktfRkxBR1MpICQoSEVBREVSX0ZMQUdTKSAtSSAk
KFdURikgLWluY2x1ZGUgIiQoV1RGKS93dGYvUGxhdGZvcm0uaCIgL2Rldi9udWxsIHwgZ3JlcCAn
IFdURl9QTEFURk9STV9JT1MgJyB8IGN1dCAtZCcgJyAtZjMpLCAxKQorICAgIFdURl9QTEFURk9S
TV9JT1MgPSAxCitlbHNlCisgICAgV1RGX1BMQVRGT1JNX0lPUyA9IDAKK2VuZGlmCisKK0RFUEVO
REVOQ0lFUyA9ICQoQlJFQUtJTkdfUlVMRVNfREVGSU5JVElPTlMpCitpZmVxICgkKFdURl9QTEFU
Rk9STV9JT1MpLCAwKQorCWlmZXEgKCQoSEFWRV9JQ1VHRU5CUkspLCAxKQorCQlERVBFTkRFTkNJ
RVMgKz0gJChCUkVBS0lOR19SVUxFU19GSUxFUykKKwllbmRpZgorZW5kaWYKKworYWxsIDogJChE
RVBFTkRFTkNJRVMpCisKK0JyZWFraW5nUnVsZXMvJS5icmsgOiAkKFdURikvd3RmL3RleHQvQnJl
YWtpbmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0CisJaWN1Z2VuYnJrIC1j
IC1yICQ8IC1vICRACisKK2lmZXEgKCQoV1RGX1BMQVRGT1JNX0lPUyksIDEpCisKK0JyZWFraW5n
UnVsZXNXb3JraW5nRGlyL0N1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcy5jcHAgOgorCXRvdWNo
ICRACisKK2Vsc2UKKworQnJlYWtpbmdSdWxlc1dvcmtpbmdEaXIvQ3Vyc29yTW92ZW1lbnRJdGVy
YXRvclJ1bGVzLmNwcCA6ICQoV1RGKS93dGYvdGV4dC9CcmVha2luZ1J1bGVzL0N1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcy50eHQKKwlweXRob24gJChXVEYpL1NjcmlwdHMvR2VuZXJhdGVCcmVh
a2luZ1J1bGVTdHJpbmdzLnB5IGN1cnNvck1vdmVtZW50SXRlcmF0b3JSdWxlcyAkPCA+ICRACisK
K2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vy
c29yTW92ZW1lbnRJdGVyYXRvclJ1bGVzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQnJlYWtp
bmdSdWxlcy9DdXJzb3JNb3ZlbWVudEl0ZXJhdG9yUnVsZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMzZl
YTgxMjdmZjNjY2VhMTc1OTFmZmNiNTExMmU5ZTA1ZDFjYjQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi90ZXh0L0JyZWFraW5nUnVsZXMvQ3Vyc29yTW92ZW1lbnRJdGVyYXRvclJ1
bGVzLnR4dApAQCAtMCwwICsxLDEyOSBAQAorIyAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQorIyBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworIyBUaGlzIHJ1bGUgc2V0
IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRvciBydWxlcyBvZiBJQ1UgNTcKKyMg
PGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9pY3UvdGFncy9yZWxlYXNl
LTU3LTEvc291cmNlL2RhdGEvYnJraXRyLz4uCisjIFRoZSBtYWpvciBkaWZmZXJlbmNlcyBmcm9t
IHRoZSBvcmlnaW5hbCBvbmVzIGFyZSBsaXN0ZWQgYmVsb3c6CisjICogUmVwbGFjZWQgJ1tccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxf
Q2F0ZWdvcnkgPSBTcGFjaW5nIE1hcmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxp
ZXI7CisjICogUmVtb3ZlZCBydWxlcyB0aGF0IHByZXZlbnQgYSBjdXJzb3IgZnJvbSBtb3Zpbmcg
YWZ0ZXIgcHJlcGVuZCBjaGFyYWN0ZXJzIChCdWcgMjQzNDIpOworIyAqIEFkZGVkIHJ1bGVzIHRo
YXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciB2aXJhbWEgc2lnbnMgb2YgSW5k
aWMgbGFuZ3VhZ2VzIGV4Y2VwdCBUYW1pbCAoQnVnIDE1NzkwKSwgYW5kOworIyAqIEFkZGVkIHJ1
bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFs
Zi13aWR0aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCisjICogQWRkZWQgcnVsZXMgZm9yIHJlZ2lv
bmFsIGluZGljYXRvciBzeW1ib2xzLgorCiskQ1IgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVy
X0JyZWFrID0gQ1J9XTsKKyRMRiAgICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBM
Rn1dOworJENvbnRyb2wgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsK
KyRWb2ljZU1hcmtzID0gW1x1RkY5RVx1RkY5Rl07ICMgSmFwYW5lc2UgaGFsZi13aWR0aCBrYXRh
a2FuYSB2b2ljZWQgbWFya3MKKyRFeHRlbmQgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsg
PSBFeHRlbmR9ICRWb2ljZU1hcmtzIC0gW1x1MEUzMCBcdTBFMzIgXHUwRTQ1IFx1MEVCMCBcdTBF
QjJdXTsKKyRTcGFjaW5nTWFyayA9IFtbXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFy
a31dIC0gJEV4dGVuZF07CiskTCAgICAgICA9IFtccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
TH1dOworJFYgICAgICAgPSBbXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IFZ9XTsKKyRUICAg
ICAgID0gW1xwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBUfV07CiskTFYgICAgICA9IFtccHtH
cmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTFZ9XTsKKyRMVlQgICAgID0gW1xwe0dyYXBoZW1lX0Ns
dXN0ZXJfQnJlYWsgPSBMVlR9XTsKKyRIaW4wICAgID0gW1x1MDkwNS1cdTA5MzldOyAjIERldmFu
YWdhcmkgTGV0dGVyIEEsLi4uLEhhCiskSGluViAgICA9IFx1MDk0RDsgIyBEZXZhbmFnYXJpIFNp
Z24gVmlyYW1hCiskSGluMSAgICA9IFtcdTA5MTUtXHUwOTM5XTsgIyBEZXZhbmFnYXJpIExldHRl
ciBLYSwuLi4sSGEKKyRCZW4wICAgID0gW1x1MDk4NS1cdTA5QjldOyAjIEJlbmdhbGkgTGV0dGVy
IEEsLi4uLEhhCiskQmVuViAgICA9IFx1MDlDRDsgIyBCZW5nYWxpIFNpZ24gVmlyYW1hCiskQmVu
MSAgICA9IFtcdTA5OTUtXHUwOUI5XTsgIyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEKKyRQYW4w
ICAgID0gW1x1MEEwNS1cdTBBMzldOyAjIEd1cm11a2hpIExldHRlciBBLC4uLixIYQorJFBhblYg
ICAgPSBcdTBBNEQ7ICMgR3VybXVraGkgU2lnbiBWaXJhbWEKKyRQYW4xICAgID0gW1x1MEExNS1c
dTBBMzldOyAjIEd1cm11a2hpIExldHRlciBLYSwuLi4sSGEKKyRHdWowICAgID0gW1x1MEE4NS1c
dTBBQjldOyAjIEd1amFyYXRpIExldHRlciBBLC4uLixIYQorJEd1alYgICAgPSBcdTBBQ0Q7ICMg
R3VqYXJhdGkgU2lnbiBWaXJhbWEKKyRHdWoxICAgID0gW1x1MEE5NS1cdTBBQjldOyAjIEd1amFy
YXRpIExldHRlciBLYSwuLi4sSGEKKyRPcmkwICAgID0gW1x1MEIwNS1cdTBCMzldOyAjIE9yaXlh
IExldHRlciBBLC4uLixIYQorJE9yaVYgICAgPSBcdTBCNEQ7ICMgT3JpeWEgU2lnbiBWaXJhbWEK
KyRPcmkxICAgID0gW1x1MEIxNS1cdTBCMzldOyAjIE9yaXlhIExldHRlciBLYSwuLi4sSGEKKyRU
ZWwwICAgID0gW1x1MEMwNS1cdTBDMzldOyAjIFRlbHVndSBMZXR0ZXIgQSwuLi4sSGEKKyRUZWxW
ICAgID0gXHUwQzREOyAjIFRlbHVndSBTaWduIFZpcmFtYQorJFRlbDEgICAgPSBbXHUwQzE0LVx1
MEMzOV07ICMgVGVsdWd1IExldHRlciBLYSwuLi4sSGEKKyRLYW4wICAgID0gW1x1MEM4NS1cdTBD
QjldOyAjIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCiskS2FuViAgICA9IFx1MENDRDsgIyBLYW5u
YWRhIFNpZ24gVmlyYW1hCiskS2FuMSAgICA9IFtcdTBDOTUtXHUwQ0I5XTsgIyBLYW5uYWRhIExl
dHRlciBBLC4uLixIYQorJE1hbDAgICAgPSBbXHUwRDA1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExl
dHRlciBBLC4uLixIYSAKKyRNYWxWICAgID0gXHUwRDREOyAjIE1hbGF5YWxhbSBTaWduIFZpcmFt
YQorJE1hbDEgICAgPSBbXHUwRDE1LVx1MEQzOV07ICMgTWFsYXlhbGFtIExldHRlciBBLC4uLixI
YQorJFJJICAgICAgPSBbXFUwMDAxRjFFNi1cVTAwMDFGMUZGXTsgIyBFbW9qaSByZWdpb25hbCBp
bmRpY2F0b3JzCiskWldKICAgICA9IFx1MjAwRDsgIyBaZXJvIHdpZHRoIGpvaW5lcgorJEVtb2pp
VmFyID0gW1x1RkUwRl07ICMgRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCiskRW1vamlG
b3JTZXFzID0gW1x1MjY0MCBcdTI2NDIgXHUyNkY5IFx1Mjc2NCBcVTAwMDFGMzA4IFxVMDAwMUYz
QzMtXFUwMDAxRjNDNCBcVTAwMDFGM0NBLVxVMDAwMUYzQ0MgXFUwMDAxRjNGMyBcVTAwMDFGNDQx
IFxVMDAwMUY0NjYtXFUwMDAxRjQ2OSBcVTAwMDFGNDZFLVxVMDAwMUY0NkYgXFUwMDAxRjQ3MSBc
VTAwMDFGNDczIFxVMDAwMUY0NzcgXFUwMDAxRjQ4MS1cVTAwMDFGNDgyIFxVMDAwMUY0ODYtXFUw
MDAxRjQ4NyBcVTAwMDFGNDhCIFxVMDAwMUY1NzUgXFUwMDAxRjVFOCBcVTAwMDFGNjQ1LVxVMDAw
MUY2NDcgXFUwMDAxRjY0QiBcVTAwMDFGNjRELVxVMDAwMUY2NEUgXFUwMDAxRjZBMyBcVTAwMDFG
NkI0LVxVMDAwMUY2QjYgXHUyNjk1LVx1MjY5NiBcdTI3MDggXFUwMDAxRjMzRSBcVTAwMDFGMzcz
IFxVMDAwMUYzOTMgXFUwMDAxRjNBNCBcVTAwMDFGM0E4IFxVMDAwMUYzRUIgXFUwMDAxRjNFRCBc
VTAwMDFGNEJCLVxVMDAwMUY0QkMgXFUwMDAxRjUyNyBcVTAwMDFGNTJDIFxVMDAwMUY2ODAgXFUw
MDAxRjY5MiBcVTAwMDFGOTI2IFxVMDAwMUY5MzctXFUwMDAxRjkzOSBcVTAwMDFGOTNDLVxVMDAw
MUY5M0VdOyAjIEVtb2ppIHRoYXQgcGFydGljaXBhdGUgaW4gWldKIHNlcXVlbmNlcworJEVtb2pp
Rm9yTW9kcyA9IFtcdTI2MUQgXHUyNkY5IFx1MjcwQS1cdTI3MEQgXFUwMDAxRjM4NSBcVTAwMDFG
M0MzLVxVMDAwMUYzQzQgXFUwMDAxRjNDQSBcVTAwMDFGM0NCIFxVMDAwMUY0NDItXFUwMDAxRjQ0
MyBcVTAwMDFGNDQ2LVxVMDAwMUY0NTAgXFUwMDAxRjQ2Ni1cVTAwMDFGNDc4IFxVMDAwMUY0N0Mg
XFUwMDAxRjQ4MS1cVTAwMDFGNDgzIFxVMDAwMUY0ODUtXFUwMDAxRjQ4NyBcVTAwMDFGNEFBIFxV
MDAwMUY1NzUgXFUwMDAxRjU5MCBcVTAwMDFGNTk1IFxVMDAwMUY1OTYgXFUwMDAxRjY0NS1cVTAw
MDFGNjQ3IFxVMDAwMUY2NEItXFUwMDAxRjY0RiBcVTAwMDFGNkEzIFxVMDAwMUY2QjQtXFUwMDAx
RjZCNiBcVTAwMDFGNkMwIFxVMDAwMUY5MTggXFUwMDAxRjNDMiBcVTAwMDFGM0M3IFxVMDAwMUYz
Q0MgXFUwMDAxRjU3NCBcVTAwMDFGNTdBIFxVMDAwMUY2Q0MgXFUwMDAxRjkxOS1cVTAwMDFGOTFF
IFxVMDAwMUY5MjYgXFUwMDAxRjkzMCBcVTAwMDFGOTMzLVxVMDAwMUY5MzkgXFUwMDAxRjkzQy1c
VTAwMDFGOTNFXSA7ICMgRW1vamkgdGhhdCB0YWtlIEZpdHpwYXRyaWNrIG1vZGlmaWVycworJEVt
b2ppTW9kcyA9IFtcVTAwMDFGM0ZCLVxVMDAwMUYzRkZdOyAjIEZpdHpwYXRyaWNrIG1vZGlmaWVy
cworCishIWNoYWluOworISFSSU5vQ2hhaW47CishIWZvcndhcmQ7CisKKyRDUiAkTEY7CiskTCAo
JEwgfCAkViB8ICRMViB8ICRMVlQpOworKCRMViB8ICRWKSAoJFYgfCAkVCk7CisoJExWVCB8ICRU
KSAkVDsKKworJFJJICRSSSAkRXh0ZW5kKiAvICRSSTsKKyRSSSAkUkkgJEV4dGVuZCo7CitbXiRD
b250cm9sICRDUiAkTEZdICRFeHRlbmQ7CitbXiRDb250cm9sICRDUiAkTEZdICRTcGFjaW5nTWFy
azsKKworJEhpbjAgJEhpblYgJEhpbjE7ICMgRGV2YW5hZ2FyaSBWaXJhbWEgKGZvcndhcmQpCisk
QmVuMCAkQmVuViAkQmVuMTsgIyBCZW5nYWxpIFZpcmFtYSAoZm9yd2FyZCkKKyRQYW4wICRQYW5W
ICRQYW4xOyAjIEd1cm11a2hpIFZpcmFtYSAoZm9yd2FyZCkKKyRHdWowICRHdWpWICRHdWoxOyAj
IEd1amFyYXRpIFZpcmFtYSAoZm9yd2FyZCkKKyRPcmkwICRPcmlWICRPcmkxOyAjIE9yaXlhIFZp
cmFtYSAoZm9yd2FyZCkKKyRUZWwwICRUZWxWICRUZWwxOyAjIFRlbHVndSBWaXJhbWEgKGZvcndh
cmQpCiskS2FuMCAkS2FuViAkS2FuMTsgIyBLYW5uYWRhIFZpcmFtYSAoZm9yd2FyZCkKKyRNYWww
ICRNYWxWICRNYWwxOyAjIE1hbGF5YWxhbSBWaXJhbWEgKGZvcndhcmQpCiskWldKICRFbW9qaUZv
clNlcXM7ICMgRG9udCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCiskRW1vamlGb3JNb2Rz
ICRFbW9qaVZhcj8gJEVtb2ppTW9kczsgIyBEb250IGJyZWFrIGJldHdlZW4gcmVsZXZhbnQgZW1v
amkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBhdHJpY2sgbW9k
aWZpZXIKKworISFyZXZlcnNlOworJExGICRDUjsKKygkTCB8ICRWIHwgJExWIHwgJExWVCkgJEw7
CisoJFYgfCAkVCkgKCRMViB8ICRWKTsKKyRUICgkTFZUIHwgJFQpOworCiskRXh0ZW5kKiAkUkkg
JFJJIC8gJEV4dGVuZCogJFJJICRSSTsKKyRFeHRlbmQqICRSSSAkUkk7CiskRXh0ZW5kICAgICAg
W14kQ29udHJvbCAkQ1IgJExGXTsKKyRTcGFjaW5nTWFyayBbXiRDb250cm9sICRDUiAkTEZdOwor
CiskSGluMSAkSGluViAkSGluMDsgIyBEZXZhbmFnYXJpIFZpcmFtYSAoYmFja3dhcmQpCiskQmVu
MSAkQmVuViAkQmVuMDsgIyBCZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQpCiskUGFuMSAkUGFuViAk
UGFuMDsgIyBHdXJtdWtoaSBWaXJhbWEgKGJhY2t3YXJkKQorJEd1ajEgJEd1alYgJEd1ajA7ICMg
R3VqYXJhdGkgVmlyYW1hIChiYWNrd2FyZCkKKyRPcmkxICRPcmlWICRPcmkwOyAjIEd1amFyYXRp
IFZpcmFtYSAoYmFja3dhcmQpCiskVGVsMSAkVGVsViAkVGVsMDsgIyBUZWx1Z3UgVmlyYW1hIChi
YWNrd2FyZCkKKyRLYW4xICRLYW5WICRLYW4wOyAjIEthbm5hZGEgVmlyYW1hIChiYWNrd2FyZCkK
KyRNYWwxICRNYWxWICRNYWwwOyAjIE1hbGF5YWxhbSBWaXJhbWEgKGJhY2t3YXJkKQorJEVtb2pp
Rm9yU2VxcyAkWldKOyAjIERvbnQgYnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcworJEVtb2pp
TW9kcyAkRW1vamlWYXI/ICRFbW9qaUZvck1vZHM7ICMgRG9udCBicmVhayBiZXR3ZWVuIHJlbGV2
YW50IGVtb2ppIChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRy
aWNrIG1vZGlmaWVyCisKKyEhc2FmZV9yZXZlcnNlOworJFJJICRSSSs7CitbJEVtb2ppVmFyICRF
bW9qaU1vZHNdKyAkRW1vamlGb3JNb2RzOworISFzYWZlX2ZvcndhcmQ7CiskUkkgJFJJKzsKKyRF
bW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dEJyZWFrSXRlcmF0b3IuY3BwCmluZGV4IDFlZGMzMmE1ZDViYjA2ZGUwNzIxY2MwYjQxOGMy
N2MwZGViOGQ1MTEuLjI0OTBlMzQ3ODlmMjJmMTNlMDZlMmI1MTU0MDFmOGNmYzFiYTAwN2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuY3BwCkBAIC0zMSw5ICszMSw2
IEBACiAjaW5jbHVkZSA8dW5pY29kZS91YnJrLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogCi0vLyBGSVhNRTogVGhpcyBuZWVkcyBhIGJldHRlciBuYW1lCi0jZGVmaW5l
IEFERElUSU9OQUxfRU1PSklfU1VQUE9SVCAoUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMCkpCi0KIG5hbWVz
cGFjZSBXVEYgewogCiAvLyBJdGVyYXRvciBpbml0aWFsaXphdGlvbgpAQCAtNjEsNiArNTgsMTIg
QEAgc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBpbml0aWFsaXplSXRlcmF0b3JXaXRoUnVsZXMoY29u
c3QgY2hhciogYnJlYWtSdWxlcykKIAogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oTUFDKSAmJiAh
UExBVEZPUk0oSU9TKQorVUJyZWFrSXRlcmF0b3IqIGNyZWF0ZUN1cnNvclByZWNvbXBpbGVkSXRl
cmF0b3IoKQoreworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCiAKIC8vIEl0ZXJhdG9y
IHRleHQgc2V0dGluZwogCkBAIC0xNjQsMTQzICsxNjcsMjcgQEAgVUJyZWFrSXRlcmF0b3IqIHNl
bnRlbmNlQnJlYWtJdGVyYXRvcihTdHJpbmdWaWV3IHN0cmluZykKICAgICByZXR1cm4gc2V0VGV4
dEZvckl0ZXJhdG9yKCpzdGF0aWNTZW50ZW5jZUJyZWFrSXRlcmF0b3IsIHN0cmluZyk7CiB9CiAK
KyNpZiAhUExBVEZPUk0oSU9TKQorc3RhdGljIFVCcmVha0l0ZXJhdG9yKiBjcmVhdGVDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yV2l0aEZhbGxiYWNrKCkKK3sKKyAgICBpZiAoYXV0byogaXRlcmF0b3Ig
PSBjcmVhdGVDdXJzb3JQcmVjb21waWxlZEl0ZXJhdG9yKCkpCisgICAgICAgIHJldHVybiBpdGVy
YXRvcjsKKyAgICByZXR1cm4gaW5pdGlhbGl6ZUl0ZXJhdG9yV2l0aFJ1bGVzKGN1cnNvck1vdmVt
ZW50SXRlcmF0b3JSdWxlcyk7Cit9CisjZW5kaWYKKwogVUJyZWFrSXRlcmF0b3IqIGN1cnNvck1v
dmVtZW50SXRlcmF0b3IoU3RyaW5nVmlldyBzdHJpbmcpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykK
LSAgICAvLyBUaGlzIHJ1bGUgc2V0IGlzIGJhc2VkIG9uIGNoYXJhY3Rlci1icmVhayBpdGVyYXRv
ciBydWxlcyBvZiBJQ1UgNTcKLSAgICAvLyA8aHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcv
cmVwb3MvaWN1L2ljdS90YWdzL3JlbGVhc2UtNTctMS9zb3VyY2UvZGF0YS9icmtpdHIvPi4KLSAg
ICAvLyBUaGUgbWFqb3IgZGlmZmVyZW5jZXMgZnJvbSB0aGUgb3JpZ2luYWwgb25lcyBhcmUgbGlz
dGVkIGJlbG93OgotICAgIC8vICogUmVwbGFjZWQgJ1tccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFr
ID0gU3BhY2luZ01hcmt9XScgd2l0aCAnW1xwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1h
cmt9IC0gJEV4dGVuZF0nIGZvciBJQ1UgMy44IG9yIGVhcmxpZXI7Ci0gICAgLy8gKiBSZW1vdmVk
IHJ1bGVzIHRoYXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBhZnRlciBwcmVwZW5kIGNo
YXJhY3RlcnMgKEJ1ZyAyNDM0Mik7Ci0gICAgLy8gKiBBZGRlZCBydWxlcyB0aGF0IHByZXZlbnQg
YSBjdXJzb3IgZnJvbSBtb3ZpbmcgYWZ0ZXIgdmlyYW1hIHNpZ25zIG9mIEluZGljIGxhbmd1YWdl
cyBleGNlcHQgVGFtaWwgKEJ1ZyAxNTc5MCksIGFuZDsKLSAgICAvLyAqIEFkZGVkIHJ1bGVzIHRo
YXQgcHJldmVudCBhIGN1cnNvciBmcm9tIG1vdmluZyBiZWZvcmUgSmFwYW5lc2UgaGFsZi13aWR0
aCBrYXRha2FyYSB2b2ljZWQgbWFya3MuCi0gICAgLy8gKiBBZGRlZCBydWxlcyBmb3IgcmVnaW9u
YWwgaW5kaWNhdG9yIHN5bWJvbHMuCi0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGtSdWxlcyA9Ci0g
ICAgICAgICIkQ1IgICAgICA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENSfV07Igot
ICAgICAgICAiJExGICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBMRn1dOyIK
LSAgICAgICAgIiRDb250cm9sID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gQ29udHJv
bH1dOyIKLSAgICAgICAgIiRWb2ljZU1hcmtzID0gW1xcdUZGOUVcXHVGRjlGXTsiIC8vIEphcGFu
ZXNlIGhhbGYtd2lkdGgga2F0YWthbmEgdm9pY2VkIG1hcmtzCi0gICAgICAgICIkRXh0ZW5kICA9
IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IEV4dGVuZH0gJFZvaWNlTWFya3MgLSBbXFx1
MEUzMCBcXHUwRTMyIFxcdTBFNDUgXFx1MEVCMCBcXHUwRUIyXV07IgotICAgICAgICAiJFNwYWNp
bmdNYXJrID0gW1tcXHB7R2VuZXJhbF9DYXRlZ29yeSA9IFNwYWNpbmcgTWFya31dIC0gJEV4dGVu
ZF07IgotICAgICAgICAiJEwgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBM
fV07IgotICAgICAgICAiJFYgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBW
fV07IgotICAgICAgICAiJFQgICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBU
fV07IgotICAgICAgICAiJExWICAgICAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBM
Vn1dOyIKLSAgICAgICAgIiRMVlQgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0g
TFZUfV07IgotICAgICAgICAiJEhpbjAgICAgPSBbXFx1MDkwNS1cXHUwOTM5XTsiIC8vIERldmFu
YWdhcmkgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkSGluViAgICA9IFxcdTA5NEQ7IiAvLyBE
ZXZhbmFnYXJpIFNpZ24gVmlyYW1hCi0gICAgICAgICIkSGluMSAgICA9IFtcXHUwOTE1LVxcdTA5
MzldOyIgLy8gRGV2YW5hZ2FyaSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIkQmVuMCAgICA9
IFtcXHUwOTg1LVxcdTA5QjldOyIgLy8gQmVuZ2FsaSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAg
IiRCZW5WICAgID0gXFx1MDlDRDsiIC8vIEJlbmdhbGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRC
ZW4xICAgID0gW1xcdTA5OTUtXFx1MDlCOV07IiAvLyBCZW5nYWxpIExldHRlciBLYSwuLi4sSGEK
LSAgICAgICAgIiRQYW4wICAgID0gW1xcdTBBMDUtXFx1MEEzOV07IiAvLyBHdXJtdWtoaSBMZXR0
ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRQYW5WICAgID0gXFx1MEE0RDsiIC8vIEd1cm11a2hpIFNp
Z24gVmlyYW1hCi0gICAgICAgICIkUGFuMSAgICA9IFtcXHUwQTE1LVxcdTBBMzldOyIgLy8gR3Vy
bXVraGkgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEd1ajAgICAgPSBbXFx1MEE4NS1cXHUw
QUI5XTsiIC8vIEd1amFyYXRpIExldHRlciBBLC4uLixIYQotICAgICAgICAiJEd1alYgICAgPSBc
XHUwQUNEOyIgLy8gR3VqYXJhdGkgU2lnbiBWaXJhbWEKLSAgICAgICAgIiRHdWoxICAgID0gW1xc
dTBBOTUtXFx1MEFCOV07IiAvLyBHdWphcmF0aSBMZXR0ZXIgS2EsLi4uLEhhCi0gICAgICAgICIk
T3JpMCAgICA9IFtcXHUwQjA1LVxcdTBCMzldOyIgLy8gT3JpeWEgTGV0dGVyIEEsLi4uLEhhCi0g
ICAgICAgICIkT3JpViAgICA9IFxcdTBCNEQ7IiAvLyBPcml5YSBTaWduIFZpcmFtYQotICAgICAg
ICAiJE9yaTEgICAgPSBbXFx1MEIxNS1cXHUwQjM5XTsiIC8vIE9yaXlhIExldHRlciBLYSwuLi4s
SGEKLSAgICAgICAgIiRUZWwwICAgID0gW1xcdTBDMDUtXFx1MEMzOV07IiAvLyBUZWx1Z3UgTGV0
dGVyIEEsLi4uLEhhCi0gICAgICAgICIkVGVsViAgICA9IFxcdTBDNEQ7IiAvLyBUZWx1Z3UgU2ln
biBWaXJhbWEKLSAgICAgICAgIiRUZWwxICAgID0gW1xcdTBDMTQtXFx1MEMzOV07IiAvLyBUZWx1
Z3UgTGV0dGVyIEthLC4uLixIYQotICAgICAgICAiJEthbjAgICAgPSBbXFx1MEM4NS1cXHUwQ0I5
XTsiIC8vIEthbm5hZGEgTGV0dGVyIEEsLi4uLEhhCi0gICAgICAgICIkS2FuViAgICA9IFxcdTBD
Q0Q7IiAvLyBLYW5uYWRhIFNpZ24gVmlyYW1hCi0gICAgICAgICIkS2FuMSAgICA9IFtcXHUwQzk1
LVxcdTBDQjldOyIgLy8gS2FubmFkYSBMZXR0ZXIgQSwuLi4sSGEKLSAgICAgICAgIiRNYWwwICAg
ID0gW1xcdTBEMDUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEsLi4uLEhhCi0gICAg
ICAgICIkTWFsViAgICA9IFxcdTBENEQ7IiAvLyBNYWxheWFsYW0gU2lnbiBWaXJhbWEKLSAgICAg
ICAgIiRNYWwxICAgID0gW1xcdTBEMTUtXFx1MEQzOV07IiAvLyBNYWxheWFsYW0gTGV0dGVyIEEs
Li4uLEhhCi0gICAgICAgICIkUkkgICAgICA9IFtcXFUwMDAxRjFFNi1cXFUwMDAxRjFGRl07IiAv
LyBFbW9qaSByZWdpb25hbCBpbmRpY2F0b3JzCi0gICAgICAgICIkWldKICAgICA9IFxcdTIwMEQ7
IiAvLyBaZXJvIHdpZHRoIGpvaW5lcgotICAgICAgICAiJEVtb2ppVmFyID0gW1xcdUZFMEZdOyIg
Ly8gRW1vamktc3R5bGUgdmFyaWF0aW9uIHNlbGVjdG9yCi0jaWYgQURESVRJT05BTF9FTU9KSV9T
VVBQT1JUCi0gICAgICAgICIkRW1vamlGb3JTZXFzID0gW1xcdTI2NDAgXFx1MjY0MiBcXHUyNkY5
IFxcdTI3NjQgXFxVMDAwMUYzMDggXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxVMDAwMUYzQ0Et
XFxVMDAwMUYzQ0MgXFxVMDAwMUYzRjMgXFxVMDAwMUY0NDEgXFxVMDAwMUY0NjYtXFxVMDAwMUY0
NjkgXFxVMDAwMUY0NkUtXFxVMDAwMUY0NkYgXFxVMDAwMUY0NzEgXFxVMDAwMUY0NzMgXFxVMDAw
MUY0NzcgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODIgXFxVMDAwMUY0ODYtXFxVMDAwMUY0ODcgXFxV
MDAwMUY0OEIgXFxVMDAwMUY1NzUgXFxVMDAwMUY1RTggXFxVMDAwMUY2NDUtXFxVMDAwMUY2NDcg
XFxVMDAwMUY2NEIgXFxVMDAwMUY2NEQtXFxVMDAwMUY2NEUgXFxVMDAwMUY2QTMgXFxVMDAwMUY2
QjQtXFxVMDAwMUY2QjYgXFx1MjY5NS1cXHUyNjk2IFxcdTI3MDggXFxVMDAwMUYzM0UgXFxVMDAw
MUYzNzMgXFxVMDAwMUYzOTMgXFxVMDAwMUYzQTQgXFxVMDAwMUYzQTggXFxVMDAwMUYzRUIgXFxV
MDAwMUYzRUQgXFxVMDAwMUY0QkItXFxVMDAwMUY0QkMgXFxVMDAwMUY1MjcgXFxVMDAwMUY1MkMg
XFxVMDAwMUY2ODAgXFxVMDAwMUY2OTIgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzctXFxVMDAwMUY5
MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdOyIgLy8gRW1vamkgdGhhdCBwYXJ0aWNpcGF0ZSBp
biBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlGb3JNb2RzID0gW1xcdTI2MUQgXFx1MjZG
OSBcXHUyNzBBLVxcdTI3MEQgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxVMDAwMUYzQzQgXFxV
MDAwMUYzQ0EgXFxVMDAwMUYzQ0IgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMgXFxVMDAwMUY0NDYt
XFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0
ODEtXFxVMDAwMUY0ODMgXFxVMDAwMUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAw
MUY1NzUgXFxVMDAwMUY1OTAgXFxVMDAwMUY1OTUgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxV
MDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQt
XFxVMDAwMUY2QjYgXFxVMDAwMUY2QzAgXFxVMDAwMUY5MTggXFxVMDAwMUYzQzIgXFxVMDAwMUYz
QzcgXFxVMDAwMUYzQ0MgXFxVMDAwMUY1NzQgXFxVMDAwMUY1N0EgXFxVMDAwMUY2Q0MgXFxVMDAw
MUY5MTktXFxVMDAwMUY5MUUgXFxVMDAwMUY5MjYgXFxVMDAwMUY5MzAgXFxVMDAwMUY5MzMtXFxV
MDAwMUY5MzkgXFxVMDAwMUY5M0MtXFxVMDAwMUY5M0VdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBG
aXR6cGF0cmljayBtb2RpZmllcnMKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VUJyZWFrSXRl
cmF0b3IqPiBzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJhdG9yID0gY3JlYXRlQ3Vyc29yTW92ZW1l
bnRJdGVyYXRvcldpdGhGYWxsYmFjaygpOwogI2Vsc2UKLSAgICAgICAgIiRFbW9qaUZvclNlcXMg
PSBbXFx1Mjc2NCBcXFUwMDAxRjQ2Ni1cXFUwMDAxRjQ2OSBcXFUwMDAxRjQ4Ql07IiAvLyBFbW9q
aSB0aGF0IHBhcnRpY2lwYXRlIGluIFpXSiBzZXF1ZW5jZXMKLSAgICAgICAgIiRFbW9qaUZvck1v
ZHMgPSBbXFx1MjYxRCBcXHUyNzBBLVxcdTI3MEMgXFxVMDAwMUYzODUgXFxVMDAwMUYzQzMtXFxV
MDAwMUYzQzQgXFxVMDAwMUYzQzcgXFxVMDAwMUYzQ0EgXFxVMDAwMUY0NDItXFxVMDAwMUY0NDMg
XFxVMDAwMUY0NDYtXFxVMDAwMUY0NTAgXFxVMDAwMUY0NjYtXFxVMDAwMUY0NjkgXFxVMDAwMUY0
NkUtXFxVMDAwMUY0NzggXFxVMDAwMUY0N0MgXFxVMDAwMUY0ODEtXFxVMDAwMUY0ODMgXFxVMDAw
MUY0ODUtXFxVMDAwMUY0ODcgXFxVMDAwMUY0QUEgXFxVMDAwMUY1OTYgXFxVMDAwMUY2NDUtXFxV
MDAwMUY2NDcgXFxVMDAwMUY2NEItXFxVMDAwMUY2NEYgXFxVMDAwMUY2QTMgXFxVMDAwMUY2QjQt
XFxVMDAwMUY2QjYgXFxVMDAwMUY2QzBdIDsiIC8vIEVtb2ppIHRoYXQgdGFrZSBGaXR6cGF0cmlj
ayBtb2RpZmllcnMKLSNlbmRpZgotICAgICAgICAiJEVtb2ppTW9kcyA9IFtcXFUwMDAxRjNGQi1c
XFUwMDAxRjNGRl07IiAvLyBGaXR6cGF0cmljayBtb2RpZmllcnMKLSAgICAgICAgIiEhY2hhaW47
IgotI2lmIEFERElUSU9OQUxfRU1PSklfU1VQUE9SVAotICAgICAgICAiISFSSU5vQ2hhaW47Igot
I2VuZGlmCi0gICAgICAgICIhIWZvcndhcmQ7IgotICAgICAgICAiJENSICRMRjsiCi0gICAgICAg
ICIkTCAoJEwgfCAkViB8ICRMViB8ICRMVlQpOyIKLSAgICAgICAgIigkTFYgfCAkVikgKCRWIHwg
JFQpOyIKLSAgICAgICAgIigkTFZUIHwgJFQpICRUOyIKLSNpZiBBRERJVElPTkFMX0VNT0pJX1NV
UFBPUlQKLSAgICAgICAgIiRSSSAkUkkgJEV4dGVuZCogLyAkUkk7IgotICAgICAgICAiJFJJICRS
SSAkRXh0ZW5kKjsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAkTEZdICRFeHRlbmQ7IgotICAg
ICAgICAiW14kQ29udHJvbCAkQ1IgJExGXSAkU3BhY2luZ01hcms7IgotI2Vsc2UKLSAgICAgICAg
IlteJENvbnRyb2wgJENSICRMRl0gJEV4dGVuZDsiCi0gICAgICAgICJbXiRDb250cm9sICRDUiAk
TEZdICRTcGFjaW5nTWFyazsiCi0gICAgICAgICIkUkkgJFJJIC8gJFJJOyIKLSAgICAgICAgIiRS
SSAkUkk7IgotI2VuZGlmCi0gICAgICAgICIkSGluMCAkSGluViAkSGluMTsiIC8vIERldmFuYWdh
cmkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEJlbjAgJEJlblYgJEJlbjE7IiAvLyBCZW5n
YWxpIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRQYW4wICRQYW5WICRQYW4xOyIgLy8gR3Vy
bXVraGkgVmlyYW1hIChmb3J3YXJkKQotICAgICAgICAiJEd1ajAgJEd1alYgJEd1ajE7IiAvLyBH
dWphcmF0aSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkT3JpMCAkT3JpViAkT3JpMTsiIC8v
IE9yaXlhIFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRUZWwwICRUZWxWICRUZWwxOyIgLy8g
VGVsdWd1IFZpcmFtYSAoZm9yd2FyZCkKLSAgICAgICAgIiRLYW4wICRLYW5WICRLYW4xOyIgLy8g
S2FubmFkYSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkTWFsMCAkTWFsViAkTWFsMTsiIC8v
IE1hbGF5YWxhbSBWaXJhbWEgKGZvcndhcmQpCi0gICAgICAgICIkWldKICRFbW9qaUZvclNlcXM7
IiAvLyBEb24ndCBicmVhayBpbiBlbW9qaSBaV0ogc2VxdWVuY2VzCi0gICAgICAgICIkRW1vamlG
b3JNb2RzICRFbW9qaVZhcj8gJEVtb2ppTW9kczsiIC8vIERvbid0IGJyZWFrIGJldHdlZW4gcmVs
ZXZhbnQgZW1vamkgKHBvc3NpYmx5IHdpdGggdmFyaWF0aW9uIHNlbGVjdG9yKSBhbmQgRml0enBh
dHJpY2sgbW9kaWZpZXIKLSAgICAgICAgIiEhcmV2ZXJzZTsiCi0gICAgICAgICIkTEYgJENSOyIK
LSAgICAgICAgIigkTCB8ICRWIHwgJExWIHwgJExWVCkgJEw7IgotICAgICAgICAiKCRWIHwgJFQp
ICgkTFYgfCAkVik7IgotICAgICAgICAiJFQgKCRMVlQgfCAkVCk7IgotI2lmIEFERElUSU9OQUxf
RU1PSklfU1VQUE9SVAotICAgICAgICAiJEV4dGVuZCogJFJJICRSSSAvICRFeHRlbmQqICRSSSAk
Ukk7IgotICAgICAgICAiJEV4dGVuZCogJFJJICRSSTsiCi0gICAgICAgICIkRXh0ZW5kICAgICAg
W14kQ29udHJvbCAkQ1IgJExGXTsiCi0gICAgICAgICIkU3BhY2luZ01hcmsgW14kQ29udHJvbCAk
Q1IgJExGXTsiCi0jZWxzZQotICAgICAgICAiJEV4dGVuZCAgICAgIFteJENvbnRyb2wgJENSICRM
Rl07IgotICAgICAgICAiJFNwYWNpbmdNYXJrIFteJENvbnRyb2wgJENSICRMRl07IgotICAgICAg
ICAiJFJJICRSSSAvICRSSSAkUkk7IgotICAgICAgICAiJFJJICRSSTsiCi0jZW5kaWYKLSAgICAg
ICAgIiRIaW4xICRIaW5WICRIaW4wOyIgLy8gRGV2YW5hZ2FyaSBWaXJhbWEgKGJhY2t3YXJkKQot
ICAgICAgICAiJEJlbjEgJEJlblYgJEJlbjA7IiAvLyBCZW5nYWxpIFZpcmFtYSAoYmFja3dhcmQp
Ci0gICAgICAgICIkUGFuMSAkUGFuViAkUGFuMDsiIC8vIEd1cm11a2hpIFZpcmFtYSAoYmFja3dh
cmQpCi0gICAgICAgICIkR3VqMSAkR3VqViAkR3VqMDsiIC8vIEd1amFyYXRpIFZpcmFtYSAoYmFj
a3dhcmQpCi0gICAgICAgICIkT3JpMSAkT3JpViAkT3JpMDsiIC8vIEd1amFyYXRpIFZpcmFtYSAo
YmFja3dhcmQpCi0gICAgICAgICIkVGVsMSAkVGVsViAkVGVsMDsiIC8vIFRlbHVndSBWaXJhbWEg
KGJhY2t3YXJkKQotICAgICAgICAiJEthbjEgJEthblYgJEthbjA7IiAvLyBLYW5uYWRhIFZpcmFt
YSAoYmFja3dhcmQpCi0gICAgICAgICIkTWFsMSAkTWFsViAkTWFsMDsiIC8vIE1hbGF5YWxhbSBW
aXJhbWEgKGJhY2t3YXJkKQotICAgICAgICAiJEVtb2ppRm9yU2VxcyAkWldKOyIgLy8gRG9uJ3Qg
YnJlYWsgaW4gZW1vamkgWldKIHNlcXVlbmNlcwotICAgICAgICAiJEVtb2ppTW9kcyAkRW1vamlW
YXI/ICRFbW9qaUZvck1vZHM7IiAvLyBEb24ndCBicmVhayBiZXR3ZWVuIHJlbGV2YW50IGVtb2pp
IChwb3NzaWJseSB3aXRoIHZhcmlhdGlvbiBzZWxlY3RvcikgYW5kIEZpdHpwYXRyaWNrIG1vZGlm
aWVyCi0jaWYgQURESVRJT05BTF9FTU9KSV9TVVBQT1JUCi0gICAgICAgICIhIXNhZmVfcmV2ZXJz
ZTsiCi0gICAgICAgICIkUkkgJFJJKzsiCi0gICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNd
KyAkRW1vamlGb3JNb2RzOyIKLSAgICAgICAgIiEhc2FmZV9mb3J3YXJkOyIKLSAgICAgICAgIiRS
SSAkUkkrOyIKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7
IjsKLSNlbHNlCi0gICAgICAgICJbJEVtb2ppVmFyICRFbW9qaU1vZHNdKyAkRW1vamlGb3JNb2Rz
OyIKLSAgICAgICAgIiRFbW9qaUZvck1vZHMgWyRFbW9qaVZhciAkRW1vamlNb2RzXSs7IgotICAg
ICAgICAiISFzYWZlX3JldmVyc2U7IgotICAgICAgICAiISFzYWZlX2ZvcndhcmQ7IjsKLSNlbmRp
ZgotICAgIHN0YXRpYyBVQnJlYWtJdGVyYXRvciogc3RhdGljQ3Vyc29yTW92ZW1lbnRJdGVyYXRv
ciA9IGluaXRpYWxpemVJdGVyYXRvcldpdGhSdWxlcyhrUnVsZXMpOwotI2Vsc2UgLy8gUExBVEZP
Uk0oSU9TKQogICAgIC8vIFVzZSB0aGUgc3BlY2lhbCBUaGFpIGNoYXJhY3RlciBicmVhayBpdGVy
YXRvciBmb3IgYWxsIGxvY2FsZXMKLSAgICBzdGF0aWMgVUJyZWFrSXRlcmF0b3IqIHN0YXRpY0N1
cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3IoVUJSS19DSEFSQUNURVIs
ICJ0aCIpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVQnJlYWtJdGVyYXRvcio+IHN0YXRp
Y0N1cnNvck1vdmVtZW50SXRlcmF0b3IgPSBpbml0aWFsaXplSXRlcmF0b3IoVUJSS19DSEFSQUNU
RVIsICJ0aCIpOwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiAKLSAgICBpZiAoIXN0YXRpY0N1
cnNvck1vdmVtZW50SXRlcmF0b3IpCisgICAgaWYgKCFzdGF0aWNDdXJzb3JNb3ZlbWVudEl0ZXJh
dG9yLmdldCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBzZXRUZXh0
Rm9ySXRlcmF0b3IoKnN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3IsIHN0cmluZyk7CisgICAg
cmV0dXJuIHNldFRleHRGb3JJdGVyYXRvcigqKHN0YXRpY0N1cnNvck1vdmVtZW50SXRlcmF0b3Iu
Z2V0KCkpLCBzdHJpbmcpOwogfQogCiBVQnJlYWtJdGVyYXRvciogYWNxdWlyZUxpbmVCcmVha0l0
ZXJhdG9yKFN0cmluZ1ZpZXcgc3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSwgY29u
c3QgVUNoYXIqIHByaW9yQ29udGV4dCwgdW5zaWduZWQgcHJpb3JDb250ZXh0TGVuZ3RoLCBMaW5l
QnJlYWtJdGVyYXRvck1vZGUgbW9kZSkKQEAgLTM0Myw2ICsyMzAsNyBAQCB2b2lkIGNsb3NlTGlu
ZUJyZWFrSXRlcmF0b3IoVUJyZWFrSXRlcmF0b3IqJiBpdGVyYXRvcikKIHsKICAgICBVQnJlYWtJ
dGVyYXRvciogdWJya0l0ZXIgPSBpdGVyYXRvcjsKICAgICBBU1NFUlQodWJya0l0ZXIpOworICAg
IC8vIEZJWE1FOiBVc2UgUkFJSSB0byBkbyB0aGlzIGluc3RlYWQuCiAgICAgdWJya19jbG9zZSh1
YnJrSXRlcik7CiAgICAgaXRlcmF0b3IgPSBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRvci5oIGIvU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0QnJlYWtJdGVyYXRvci5oCmluZGV4IDJiYjVmOWNhNGM1YzBlNTBkM2UwMmE1MjcwN2M0MWFk
N2MzMzA2YTguLjhiNTgzNTM0ZGIyYWNlODYyZDUwNDUxZTliODgzNzdiZDZiYTYyMGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1RleHRCcmVha0l0ZXJhdG9yLmgKQEAgLTI5LDYgKzI5LDEwIEBAIG5h
bWVzcGFjZSBXVEYgewogCiBlbnVtIGNsYXNzIExpbmVCcmVha0l0ZXJhdG9yTW9kZSB7IERlZmF1
bHQsIExvb3NlLCBOb3JtYWwsIFN0cmljdCB9OwogCitleHRlcm4gY29uc3QgY2hhciogY3Vyc29y
TW92ZW1lbnRJdGVyYXRvclJ1bGVzOworCitVQnJlYWtJdGVyYXRvciogY3JlYXRlQ3Vyc29yUHJl
Y29tcGlsZWRJdGVyYXRvcigpOworCiAvLyBUaGlzIGlzIHNpbWlsYXIgdG8gY2hhcmFjdGVyIGJy
ZWFrIGl0ZXJhdG9yIGluIG1vc3QgY2FzZXMsIGJ1dCBpcyBzdWJqZWN0IHRvCiAvLyBwbGF0Zm9y
bSBVSSBjb252ZW50aW9ucy4gT25lIG5vdGFibGUgZXhhbXBsZSB3aGVyZSB0aGlzIGNhbiBiZSBk
aWZmZXJlbnQKIC8vIGZyb20gY2hhcmFjdGVyIGJyZWFrIGl0ZXJhdG9yIGlzIFRoYWkgcHJlcGVu
ZCBjaGFyYWN0ZXJzLCBzZWUgYnVnIDI0MzQyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9tYWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbSBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvbWFjL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VNYWMubW0KaW5kZXggYmVm
NWRhYTY0Mjg4ODIxZTIwZjI2MjhjNjg1NWVlOGU4OGEzODkyYy4uMDI0MjU1Mjc1ZDIyNjIxYzg5
YmI4MjBlNTcyMjM4ZTA1YjJhMmJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9t
YWMvVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVU1hYy5tbQorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L21hYy9UZXh0QnJlYWtJdGVyYXRvckludGVybmFsSUNVTWFjLm1tCkBAIC0yMSwxMiAr
MjEsMTA2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0
b3JJbnRlcm5hbElDVS5oIgogCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKKyNpbmNs
dWRlIDx1bmljb2RlL3VicmsuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKKyNk
ZWZpbmUgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JVTEVTIChVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKSAmJiAoKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDExMDAwMCkpKQorCisjaWYgVVNFX1BSRUNPTVBJTEVEX0JSRUFLSU5HX1JV
TEVTCisjaW5jbHVkZSA8dW5pY29kZS91ZGF0YS5oPgorI2VuZGlmCisKK0BpbnRlcmZhY2UgV1RG
QnVuZGxlRmluZGVyIDogTlNPYmplY3QKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdURkJ1bmRs
ZUZpbmRlcgorQGVuZAorCiBuYW1lc3BhY2UgV1RGIHsKIAogc3RhdGljIGNvbnN0IGludCBtYXhM
b2NhbGVTdHJpbmdMZW5ndGggPSAzMjsKIAorI2lmIFVTRV9QUkVDT01QSUxFRF9CUkVBS0lOR19S
VUxFUworc3RhdGljIFVEYXRhTWVtb3J5KiBicmVha0l0ZXJhdG9yUmVzb3VyY2UoTlNTdHJpbmcg
KmZpbGVOYW1lQmFzZSkKK3sKKyAgICAvLyBGSVhNRTogRG8gdGhpcyBpbiBhIHdheSB0aGF0IGRv
ZXNuJ3QgcmVxdWlyZSBmaWxlIElPLgorICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUg
YnVuZGxlRm9yQ2xhc3M6W1dURkJ1bmRsZUZpbmRlciBjbGFzc11dOworICAgIE5TU3RyaW5nICpw
YXRoID0gW2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6ZmlsZU5hbWVCYXNlIG9mVHlwZTpAImJyayIg
aW5EaXJlY3Rvcnk6QCJCcmVha2luZ1J1bGVzIl07CisgICAgaWYgKCFwYXRoKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIE5TU3RyaW5nICpkaXJlY3RvcnkgPSBbcGF0aCBzdHJpbmdC
eURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOworICAgIGlmICghZGlyZWN0b3J5KQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICBVRXJyb3JDb2RlIGVy
cm9yQ29kZSA9IFVfWkVST19FUlJPUjsKKyAgICB1ZGF0YV9zZXRGaWxlQWNjZXNzKFVEQVRBX0ZJ
TEVTX0ZJUlNULCAmZXJyb3JDb2RlKTsKKyAgICBpZiAoVV9GQUlMVVJFKGVycm9yQ29kZSkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCisKKyAgICBVRXJyb3JDb2RlIHVEYXRhRXJy
b3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAgIFVEYXRhTWVtb3J5KiByZXN1bHQgPSB1ZGF0YV9v
cGVuKFtkaXJlY3RvcnkgVVRGOFN0cmluZ10sICJicmsiLCBbZmlsZU5hbWVCYXNlIFVURjhTdHJp
bmddLCAmdURhdGFFcnJvckNvZGUpOworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHVkYXRhX3Nl
dEZpbGVBY2Nlc3MoVURBVEFfREVGQVVMVF9BQ0NFU1MsICZlcnJvckNvZGUpOworICAgIGlmIChV
X0ZBSUxVUkUoZXJyb3JDb2RlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKKwor
ICAgIGlmIChVX0ZBSUxVUkUodURhdGFFcnJvckNvZGUpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBVQnJlYWtJdGVyYXRvciogYnJl
YWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEoVURhdGFNZW1vcnkqIGRhdGEpCit7CisgICAgaWYg
KCFkYXRhKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFVFcnJvckNvZGUgZXJyb3JD
b2RlID0gVV9aRVJPX0VSUk9SOworICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMzA0MjE5
NzE+IEl0IGlzIGltcG9zc2libGUgdG8gY29tcHV0ZSB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHRo
aXMgZnVuY3Rpb24uCisgICAgVUJyZWFrSXRlcmF0b3IqIHJlc3VsdCA9IHVicmtfb3BlbkJpbmFy
eVJ1bGVzKHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QgKj4odWRhdGFfZ2V0TWVtb3J5KGRhdGEp
KSwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCksIG51bGxwdHIsIDAsICZlcnJv
ckNvZGUpOworCisgICAgaWYgKFVfRkFJTFVSRShlcnJvckNvZGUpKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgVUJyZWFrSXRlcmF0b3Iq
IGN1cnNvck1vdmVtZW50SXRlcmF0b3IoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxV
RGF0YU1lbW9yeSo+IHJlc291cmNlRGF0YShicmVha0l0ZXJhdG9yUmVzb3VyY2UoQCJDdXJzb3JN
b3ZlbWVudEl0ZXJhdG9yUnVsZXMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFVCcmVh
a0l0ZXJhdG9yKj4gaXRlcmF0b3IoYnJlYWtJdGVyYXRvckZyb21SZXNvdXJjZURhdGEocmVzb3Vy
Y2VEYXRhLmdldCgpKSk7CisgICAgcmV0dXJuIGl0ZXJhdG9yLmdldCgpOworfQorCitzdGF0aWMg
VUJyZWFrSXRlcmF0b3IqIGNsb25lSXRlcmF0b3IoVUJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yKQor
eworICAgIGlmICghaXRlcmF0b3IpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIFVFcnJv
ckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOworICAgIGlmIChhdXRvKiByZXN1bHQgPSB1
YnJrX3NhZmVDbG9uZShpdGVyYXRvciwgbnVsbHB0ciwgMCwgJmVycm9yQ29kZSkpIHsKKyAgICAg
ICAgaWYgKFVfU1VDQ0VTUyhlcnJvckNvZGUpKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKworVUJyZWFrSXRlcmF0b3Iq
IGNyZWF0ZUN1cnNvclByZWNvbXBpbGVkSXRlcmF0b3IoKQoreworI2lmIFVTRV9QUkVDT01QSUxF
RF9CUkVBS0lOR19SVUxFUworICAgIHJldHVybiBjbG9uZUl0ZXJhdG9yKGN1cnNvck1vdmVtZW50
SXRlcmF0b3IoKSk7CisjZWxzZQorICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKIHN0
YXRpYyBpbmxpbmUgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB0ZXh0QnJlYWtMb2NhbGVQcmVmZXJl
bmNlKCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZQcm9wZXJ0eUxpc3RSZWY+IGxvY2FsZSA9IGFkb3B0
Q0YoQ0ZQcmVmZXJlbmNlc0NvcHlWYWx1ZShDRlNUUigiQXBwbGVUZXh0QnJlYWtMb2NhbGUiKSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9X
ZWJLaXRGUy5jbWFrZQppbmRleCA1MTMwZmZjYmNjN2M5Y2U3NTE0YWY0ZDU1M2JkOGE0ZjA1MDE0
NTZkLi45ZjgzMzBhZjdmZTM2M2Q4MDEzZWVlMzRiZWRkN2ZjMTVjYjc5MWVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZT
LmNtYWtlCkBAIC0yNyw2ICsyNyw3IEBAIGlmIChOT1QgVE9PTFNfRElSKQogZW5kaWYgKCkKIAog
c2V0KERFUklWRURfU09VUkNFU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJj
ZXMiKQorc2V0KERFUklWRURfU09VUkNFU19XVEZfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rl
cml2ZWRTb3VyY2VzL1dURiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJ
UiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZSIpCiBz
ZXQoREVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUiKQogc2V0KERFUklWRURfU09VUkNFU19XRUJLSVRMRUdBQ1lfRElS
ICIke0NNQUtFX0JJTkFSWV9ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIpCkBAIC0z
NSw2ICszNiw4IEBAIHNldChERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVIgIiR7Q01BS0VfQklO
QVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0MiIpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX1dF
QklOU1BFQ1RPUlVJX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJpdmVkU291cmNlcy9XZWJJ
bnNwZWN0b3JVSSIpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfSkFW
QVNDUklQVENPUkVfRElSfSkKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNf
V1RGX0RJUn0pCitmaWxlKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dURl9ESVJ9
L0JyZWFraW5nUnVsZXMpCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0v
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUpCiAKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfSkKZGlmZiAtLWdpdCBhL0NoYW5nZUxv
ZyBiL0NoYW5nZUxvZwppbmRleCAzYTZjYTc4MmVlMTQxM2NhY2ZmOGFkODlmMGFkN2UxYTQ2NWIx
ODczLi43MWJjYjlmZjBjOTU4ODZhNjMwOWM0OTY5YWQ0ZGU4ZWY3NWYyMTk4IDEwMDY0NAotLS0g
YS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDItMTMg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBDb21w
aWxlIElDVSBicmVha2luZyBpdGVyYXRvcnMgYXQgYnVpbGQgdGltZSByYXRoZXIgdGhhbiBydW4g
dGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYw
NjI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTMxMDU3PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdEZTLmNt
YWtlOgorCiAyMDE3LTAyLTEwICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCBiYXNpYyBkZWJ1Z2dpbmcgbWFjcm9zIGZvciBDTWFrZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>